diff --git a/software/Print3r/LICENSE b/software/Print3r/LICENSE deleted file mode 100644 index f288702d..00000000 --- a/software/Print3r/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - 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 -. diff --git a/software/Print3r/Makefile b/software/Print3r/Makefile deleted file mode 100644 index 977636a6..00000000 --- a/software/Print3r/Makefile +++ /dev/null @@ -1,75 +0,0 @@ -NAME=Print3r -VERSION=0.3.20 -#DEST_BIN=~/bin/ -DEST_BIN=/usr/bin -DEST_SHARE=/usr/share -CMD=print3r -NICK=print3r -CPAN=cpan - -all:: - @echo "make requirements install deinstall" - @echo "-- on low RAM systems use 'apt install cpanminus' and then 'make CPAN=cpanm requirements'" - -requirements:: - sudo apt install libexpat-dev libcurses-perl libncurses5-dev libreadline-dev - sudo ${CPAN} File::Which IO::Zlib Time::HiRes Device::SerialPort XML::Simple JSON IO::Termios Term::ReadLine::Gnu Linux::Termios2 Algorithm::BinPack::2D - sudo apt install libgd-perl ser2net socat slic3r - sudo apt install yagv - -install:: - sudo cp ${CMD} ${DEST_BIN}/ - mkdir -p ${HOME}/.config/${NICK}; cd ${HOME}/.config/${NICK}; mkdir -p printer macro macro/filament slicer gconsole gconsole/commands - sudo mkdir -p ${DEST_SHARE}/${NICK} - cd settings; tar cf - printer/*.ini macro/*.ini macro/filament/*.ini slicer/*.json slicer/*/base.ini slicer/*/map.ini slicer/*/*.def.json slicer/*/strict.ini gconsole | (cd ${DEST_SHARE}/${NICK}/; sudo tar xf -) - -deinstall:: - sudo rm -f ${DEST_BIN}/${CMD} - -# --------------------------------------------------------------------------------------------------------------- -# -- developer(s) only: - -edit:: - dee4 print3r Makefile CHANGELOG README.md LICENSE settings/slicer/*.json settings/*/*.ini settings/*/*/*.ini settings/gconsole/commands/* - -backup:: - cd ..; tar cfz ${NAME}-${VERSION}.tar.gz "--exclude=*/slicers/*" ${NAME}; mv ${NAME}-${VERSION}.tar.gz ~/Backup; scp ~/Backup/${NAME}-${VERSION}.tar.gz backup:Backup/ - -backup-settings:: - cd ~/; tar cfz ${NAME}-Config-`date +%F`.tar.gz .config/print3r; mv ${NAME}-Config-`date +%F`.tar.gz ~/Backup/; scp ~/Backup/${NAME}-Config-`date +%F`.tar.gz backup:Backup/ - -change:: - git commit -am "..." - -pull:: - git pull - -push:: - git push -u origin master - -examples:: - ./print3r --fill-density=0 --output=examples/cube.png render Parts/cube.scad - ./print3r --fill-density=0 --scale=50mm --output=examples/cube-scaled1.png render Parts/cube.scad - ./print3r --fill-density=0 --scale=10mm,20mm,100mm --output=examples/cube-scaled2.png render Parts/cube.scad - ./print3r --fill-density=0 --output=examples/benchy.png render Parts/3DBenchy.stl - ./print3r --fill-density=0 --scale=0,0,150mm --output=examples/benchy-scaled.png render Parts/3DBenchy.stl - -logdb:: logdb-setup - sqltk --uri=pg://print3r --input=jsonl --filter=ascii --keys=@ -- "insert into parts (data) values (?)" < ~/.print3r/log.json - -logdb-setup:: - createdb print3r - sqltk --uri=pg://print3r "create table parts ( data jsonb )" - -logdb-test:: - sqltk --uri=pg://print3r --output=json "select data from parts where data->'uid' = ?" '"...."' - sqltk --uri=pg://print3r --output=json "select data from parts where data->'file_list' @> ?" '"cube.stl"' - -stuffdb:: stuffdb-setup - sqltk --uri=pg://mystuff --input=jsonl --filter=ascii --keys=@ -- "insert into print3r (data) values (?)" < ~/.print3r/log.json - -stuffdb-setup:: - sqltk --uri=pg://mystuff "drop table print3r" - sqltk --uri=pg://mystuff "create table print3r ( data jsonb )" - - diff --git a/software/Print3r/README.md b/software/Print3r/README.md deleted file mode 100644 index 12096b81..00000000 --- a/software/Print3r/README.md +++ /dev/null @@ -1,220 +0,0 @@ -# Print3r - -## Introduction - -**Print3r** is a command-line tool (without GUI) to print 3d parts (.gcode, .stl, .amf, .3mf, .obj, .off, .scad, .sscad, etc) -to 3d printers, utilizing a slicer of your choice (Slic3r, Slic3r PE, PrusaSlicer, SuperSlicer, CuraEngine 3.x, CuraEngine 4.x, CuraEngine 5.x, Cura 15.04 and a few more). - -### Examples -``` -print3r -p prusa-i3 print cube.scad -print3r -p ender3 -d /dev/ttyUSB1 print cube.stl -print3r preview cube.gcode -``` - -### Main Features -- **print** `.scad`, `.stl`\* or `.gcode` to 3d printers -- **slice** `.scad` or `.stl`\* saving `.gcode` without printing -- **preprocess parts** with `--scale=,,`, `--rotate=,,`, `--translate=,,`, `--random-placement`, `--auto-center`, `--multiply-part=` -- **use slicer-independent arguments** like `--temperature=`, `--layer-height=`, `--fill-density=`, `--perimeters=`, etc. -- **send Gcode** from command line arguments with **gcode** or console interactively with **gconsole** command -- **render Gcode** and sliced .stl, .scad into `.png` image with **render** command -- **preview Gcode** using `yagv` Gcode viewer with **preview** command -- **log** lists all past finished prints with all settings used - -\*) `.stl` (ascii & binary), and preliminary `.amf` and `.obj` supported as well. - -## Changelog -2022: -- 0.3.20: new `@revo-{yellow,red,blue,green,pink}` macros, `-o ` added -- 0.3.19: `--device/-d --printer/-p --slicer/-s` short-cuts added -- 0.3.18: support CuraEngine-5.x / cura5 better -- 0.3.17: adding locks for avoiding to print simulatenously to the same printer, better support for cura-slicer & CuraEngine 5.x -- 0.3.16: `--scad` with `--scad.`= to pass variables to OpenSCAD models, experimental support for `metatron-` and `enoch-slicer` (--slicer=`metatron` or `enoch`) -- 0.3.15: experimental support for voxgl-slicer (`--slicer=voxgl`) - -2021: -- 0.3.14: experimental support for `lab-slicer` and `vox3l-slicer` (`--slicer=lab` or `vox3l`) -- 0.3.13: supporting webcams via `webcam=[ ...]` and `webcam_snap=[ ...]` -- 0.3.12: more printer info in log-file, firmware and `M501` output -- 0.3.11: experimental support for `zplus-slicer` (`--slicer=zplus`) -- 0.3.10: each successful(ended) logged print contains new or `--uid=...` uid (to track printed parts) -- 0.3.9: 'log' lists all finished prints, incl. search with term or reference (see help) -- 0.3.6: support for `--post=[,...]` and `--post_=proc %i -o %o` -- 0.3.5: experimental support for --slicer=cura-slicer & 5dmaker -- 0.3.4: --cols= and --rows= in case --multiply-part is used -- 0.3.3: experimental support for `--slicer=mandoline` added -- 0.3.2: experimental support for `--slicer=slicer4rtn` added - -2019: -- 0.3.0: better pipeline of processing div. formats, preliminary 3mf and 3mj (new format) support -- 0.2.8: CuraEngine-4.2.0 support via `--slicer=cura4`, see wiki for install instructions -- 0.2.6: cleaner script-layer within Gcode processing, slic3r-*: better multi-extruder support `--toolmap` & `--toolremap` -- 0.2.5: preliminary `--slicer=prusa` support, additional inline functions support for gcode transformation: `&toolcolor(n,a,b,c,d,e)`, `&hsl2cmy(h,s,l)`, `&phases(n=2|3,p=3|4)` -- 0.2.3: support for `--prepend_gcode=...` for start-gcode addition, and `--layer-gcode=...` -- 0.2.2: support for `skirts`, `brims` and `rafts`, `support` and `seam` slicer-independent - -2018: -- 0.2.0: `client` command added, and `--device=tcp:[:]` added for remote printing capabilities -- 0.1.8: proper cleanup of temporary files (incl. CTRL-C abort) -- 0.1.7: more slicer-independent speed settings (`print/travel/infill/perimeter/small_perimeter/bridge/retract_speed`) -- 0.1.6: restructure the file layout of settings (e.g. at `/usr/share/print3r` & `~/.config/print3r/`) -- 0.1.5: new option `--scad=` to additionally execute openscad code -- 0.1.4: various improvements, remap() of general settings to slice-specific settings via `...//map.ini` -- 0.1.1: better support for `--slicer=cura` and `cura-legacy` -- 0.1.0: `--slicer=` with `--printer=` leads to `..//`, `@` leads to `settings/macro/` -- 0.0.9: preliminary `.amf` and `.obj` native support for preprocessing (scale,rotate,translate,mirror) -- 0.0.8: absolute scaling like `--scale=0,0,30mm` or `--scale=50mm`, and `--scale=50%` same as `--scale=0.5`, `--auto-center` to center print -- 0.0.7: `PRINT3R` enviromental variable considered, `'baudrate=auto'` probes baudrate. -- 0.0.6: publically released source on github - -### To Do / Planned -- ~~slicer agnostic, e.g. support of CuraEngine (just the slicer)~~: done since 0.1.6 with `slic3r`, `slic3r-pe`, `cura-legacy` and `cura` -- ~~network connectivity, distributed printing via tcp/ip~~: done since 0.2.0 with `client` command and `--device=tcp:[:]` (n=0 (default),1,2 etc) -- ~~preview gcode in OpenGL/WebGL zoomable views~~: done with 0.1.6 via external [`yagv` viewer](https://github.com/Spiritdude/yagv) -- multiple extruder support (preferably slicer-independent) - -## Platform -Primary focus in on **Linux** (Debian, Ubuntu) and alike platforms like FreeBSD and such. - -## Requirements -- install `openscad`, see [OpenSCAD.org](http://www.openscad.org/) -- install `slic3r`, Debian/Ubuntu: `apt install slic3r` -- optional: - - recommended: [install Slic3r PE](https://github.com/Spiritdude/Print3r/wiki/Print3r:-Slic3r-&-Slic3r-PE) - - recommended: [install CuraEngine](https://github.com/Spiritdude/Print3r/wiki/Print3r:-Cura) - - [install CuraEngine Legacy](https://github.com/Spiritdude/Print3r/wiki/Print3r:-Cura-Legacy) - - recommended: [install FreeCAD2Any](https://github.com/Spiritdude/FreeCAD2Any) which supports FCStd, IGES, STEP and Brep import as well - -## License -The software is licensed under GPLv3 - -## Download -``` -git clone https://github.com/Spiritdude/Print3r -cd Print3r -``` -## Install -``` -make requirements -make install -``` - -### Printer Configurations -See [Profiles](https://github.com/Spiritdude/Print3r/wiki/Print3r:-Profiles) how to setup a dedicated printer profile. - -## Usage -``` -Print3r (print3r) 0.3.20 USAGE: [] [<...>] - - options: - --verbose or -v or -vv increase verbosity - --quiet or -q no output except fatal errors - --baudrate= set baudrate, default: 115200 - -b - --device= set device, default: /dev/ttyUSB0 - -d - --slicer= set slicer, default: slic3r - -s - 5dmaker, cura, cura-legacy, cura-slicer, cura4, cura5, curax, enoch, goslice, kirimoto, lab, mandol -ine, metatron, prusa, slic3r, slic3r-pe, slicer4rtn, super, vox3l, voxgl, zplus - --printer= config of printer, default: default - -p - --version display version and exit - --output= define output file for 'slice' and 'render' command - -o - --scad consider all arguments as actual OpenSCAD code (not files) - --scadlib= define OpenSCAD files separated by "," or ":" - by default 'use ', change with --scadimport=include - --prepend-gcode=... add manually start-gcode - --layer-gcode=... insert gcode at layer change - --display_update=off turn built-in display updates off - --post_=... define a post-processing stage (use '%i' input file, '%o' output file) - --post=[,] apply post-processing stage(s) - part preprocessing: - --random-placement place print randomly on the bed - --auto-center place print in the center - --multiply-part= multiply part(s) - --rows= define rows for multiplied parts - --cols= define cols for multiplied parts - --scale=,, scale part x,y,z (absolute if 'mm' is appended) - --scale= scale part f,f,f - --rotate=,, rotate x,y,z - --translate=,, translate x,y,z - --mirror=,, mirror x,y,z (0=keep, 1=mirror) - --uid= define part unique id (default: auto generated uid) - --= include any valid slicer option (e.g. slic3r --help) - - commands: - print [...] print (convert & slice & print) part(s) (3mf, 3mj, 5mf, amf, brep, fcstd, iges, obj, off, step, stl) - slice [...] slice file(s) to gcode (same formats as 'print') - preview [...] slice & preview (same formats as 'print') - render [...] render an image (use '--output=sample.png' or so) - gcode [...] send gcode lines - gconsole start gcode console - client map USB connected printer to network (per device) - log [|<#num>] list log of finished prints, use -v for details or --format=json to dump JSON - use --output=[,] to list particular keys - if num is negative, the last entries are shown, e.g. '#-5' - help - - examples: - export PRINT3R "printer=my_printer" --OR-- setenv PRINT3R "printer=my_printer" - print3r slice cube.stl - print3r --layer-height=0.2 -o test.gcode slice cube.stl - print3r -p ender3 -d /dev/ttyUSB1 print test.gcode - print3r -p corexy -d /dev/ttyUSB2 --layer-height=0.3 --fill-density=0 print cube.stl - print3r -p ender3 -d tcp:192.168.0.2 --layer-height=0.25 print cube.stl - print3r print cube.scad - print3r print parametric.scad --scad.A=20 --scad.B=30 - print3r --scad print "cube(20)" - print3r --scad print "cube(a)" --scad.a=20 - print3r log - print3r --output=uid,layer_height log cube - print3r log -v '#12' - print3r gcode 'G28 X Y' 'G1 X60' 'G28 Z' - print3r gconsole - == Print3r: Gcode Console (gconsole) - use CTRL-C or 'exit' or 'quit' to exit - for valid Gcode see https://reprap.org/wiki/G-code - conf: device /dev/ttyUSB0, connected - > M115 - ... - -``` - -## More Examples -``` -print3r --fill-density=0 --layer-height=0.2 print cube.scad -print3r --print-center=100,100 print cube.scad -print3r --printer=ender3.ini --device=/dev/ttyUSB1 --random-placement --rotate=45,0,0 print cube.scad -print3r -p ender3.ini -d /dev/ttyUSB1 --random-placement --rotate=45,0,0 print cube.scad -print3r --multiply-part=3 --scale=50% print cube.scad -``` - -### Scaling Parts -``` -print3r --scale=2 print cube.scad -print3r --scale=1,4,0.5 print cube.scad -print3r --scale=30% print cube.scad -print3r --scale=50mm print cube.scad -print3r --scale=0,0,30mm print 3DBenchy.stl -``` - -### Environment Variable `PRINT3R` -You can set any option into PRINT3R environment variable, "<key>=<value>", combined with ":", like: -``` -export PRINT3R "printer=prusa-i3:temperature=190:..." -print3r print cube.scad -``` - -## Render Example -Instead to actually print parts, you can also let them render into .png image as well (e.g. for documentation purposes or preview): -``` -print3r --output=benchy.png render 3DBenchy.stl -``` -![](https://raw.githubusercontent.com/Spiritdude/Print3r/master/examples/benchy.png) - -## See Also -- **[Print3r Wiki](https://github.com/Spiritdude/Print3r/wiki)**, detailed documentation -- [Spiritdude's Public Notebook: Print3r](https://spiritdude.wordpress.com/tag/print3r/) - diff --git a/software/Print3r/examples/benchy-scaled.png b/software/Print3r/examples/benchy-scaled.png deleted file mode 100644 index aea1589b..00000000 Binary files a/software/Print3r/examples/benchy-scaled.png and /dev/null differ diff --git a/software/Print3r/examples/benchy.png b/software/Print3r/examples/benchy.png deleted file mode 100644 index 86de95c6..00000000 Binary files a/software/Print3r/examples/benchy.png and /dev/null differ diff --git a/software/Print3r/examples/cube-scaled1.png b/software/Print3r/examples/cube-scaled1.png deleted file mode 100644 index 01e6a46d..00000000 Binary files a/software/Print3r/examples/cube-scaled1.png and /dev/null differ diff --git a/software/Print3r/examples/cube-scaled2.png b/software/Print3r/examples/cube-scaled2.png deleted file mode 100644 index 6749321a..00000000 Binary files a/software/Print3r/examples/cube-scaled2.png and /dev/null differ diff --git a/software/Print3r/examples/cube.png b/software/Print3r/examples/cube.png deleted file mode 100644 index 0848d4f5..00000000 Binary files a/software/Print3r/examples/cube.png and /dev/null differ diff --git a/software/Print3r/misc/webcam_test b/software/Print3r/misc/webcam_test deleted file mode 100644 index d11abb13..00000000 --- a/software/Print3r/misc/webcam_test +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -ffmpeg -i "$1" -ss 5 -r 1 -vsync 1 -qscale 1 -frames:v 1 -f image2 snap-$$.jpg -convert snap-$$.jpg -rotate ${2:-0} images_$(date +%F_%H-%M-%S).jpg -rm -f snap-$$.jpg diff --git a/software/Print3r/models/Amf_Cube.amf b/software/Print3r/models/Amf_Cube.amf deleted file mode 100644 index a6ec8187..00000000 --- a/software/Print3r/models/Amf_Cube.amf +++ /dev/null @@ -1,233 +0,0 @@ - - - - Default - - - - - 1 - 1 - -1 - - - - - 1 - -1 - -1 - - - - - -1 - -1 - -1 - - - - - -1 - 1 - -1 - - - - - 1 - 0.999999 - 1 - - - - - 0.999999 - -1 - 1 - - - - - -1 - -1 - 1 - - - - - -1 - 1 - 1 - - - - - tmp - - 0.8 - 0.8 - 0.8 - - - 0 - 1 - 2 - - 0 - 1 - 1 - 0 - 0 - 1 - - - - 0 - 2 - 3 - - 0 - 1 - 0 - 0 - 1 - 1 - - - - 4 - 7 - 6 - - 0 - 1 - 1 - 0 - 0 - 1 - - - - 4 - 6 - 5 - - 0 - 1 - 0 - 0 - 1 - 1 - - - - 0 - 4 - 5 - - 0 - 1 - 1 - 0 - 0 - 1 - - - - 0 - 5 - 1 - - 0 - 1 - 0 - 0 - 1 - 1 - - - - 1 - 5 - 6 - - 0 - 1 - 1 - 0 - 0 - 1 - - - - 1 - 6 - 2 - - 0 - 1 - 0 - 0 - 1 - 1 - - - - 2 - 6 - 7 - - 0 - 1 - 1 - 0 - 0 - 1 - - - - 2 - 7 - 3 - - 0 - 1 - 0 - 0 - 1 - 1 - - - - 4 - 0 - 3 - - 0 - 1 - 1 - 0 - 0 - 1 - - - - 4 - 3 - 7 - - 0 - 1 - 0 - 0 - 1 - 1 - - - - - - //////////////////////7+/v7+/v7+///+/v7+/v7////+/v7+/v7+/v7+/v7+/v7+/v7+/v79/f39/f39/f39/fz8/Pz8+vr6+vn5+fn4+Pj4+fn5+fn5+fn5+fn5+fn5+vr6+vr6+vr7+/v7+/v7+/z8/P39/P39/f3+/v7+/v7+/v7////////////////////////+/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/v7+/v7+/v79/f39/v7+/f39/f39/f39/f39/f39/f39/f39/Pz8/f39/f38/Pv7+/v6+vn5+fj49/f39/f39/f39/f29vb29vb29vf39/f39/j4+Pj4+Pj4+fn6+vr6+/v7/Pv8/Pz9/f39/f39/f7+/v7+/v7+/v7+/v///////////v7+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v7+/f39/f39/Pz8/Pz8/Pz8/Pz7/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8+/r6+vn5+Pj39/f29vX19fT09PT09PT08/Pz8/Pz8/Pz8/P09PT09PX19fX19vb29/j4+Pn5+vr6+vr7+/z8/Pz8/P39/f39/f39/f3+/v7///////////7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v7+/v79/f38/f38/Pz7+/v7+/v7+/r6+vr6+vv7+/v7+/v8/Pz8/Pz8/Pz7+/v7+/r5+fj39/b29fX19PPz8/Ly8fHx8fHx8fDw8PDw8PDw8PDx8fHx8fHy8vPz8/T09PX19vb39/j4+fn5+vr7+/z7/Pz8/P39/f39/f39/f3+/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/v7+/v39/Pz8+/z8/Pv7+vr6+vr6+fn5+fn5+fn5+fr6+vv7+/v7/Pz8+/v7+/v6+vr5+Pj39vX09PPz8vLx8PDw7u7u7u7t7e3t7e3t7e3t7e7u7u7u7u/v8PDw8fHy8vLz8/P09fX29vf3+Pn5+vr7+vv7+/z8/f38/P39/f39/v39/f7+/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/f39/f38/Pv7+vr7+vr6+fj4+Pf39/f39/b29vb39/f4+Pj5+fn5+vr6+vr6+vn5+fj49/f29fTz8vHw8O/u7e3s7Ovq6urq6enp6enp6enp6enq6urq6urr6+zs7e3u7u/v7/Dw8fLy8/P19fb29/j4+fn5+fr6+/v7+/v7/Pz8/f38/P39/f7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f39/Pz8+/v6+vn5+Pj49/b29fX09PT09PTz8/Pz9PT19fX19vb39/f4+Pj4+Pf39vb29vX08/Lx8O/u7Ozr6+rp6Ojn5ubm5eXk5OTk5OTk5OTk5eXl5eXl5ubn6Ojp6erq6+vs7O3u7+/w8vLz8/T19vb29vf3+Pn5+fn5+vr6+/v7/Pz8/P39/v79/f7+/v7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pz8+/v6+vn4+Pf29vX09PPz8vLy8vLx8fHx8fLy8vPz8/T09fX29vb39vb19fX09PTz8/Lw7+7t7Orq6ejn5ubl5OTj4+Li4eHg4ODg4ODg4OHh4eHi4uLi5OTk5ebm5+fp6err7Ozt7e/w8PHy8/T09PT19fb39/j4+Pj5+fr6+vv7/Pz9/f7+/f39/f7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/f38/Pz8+/r5+Pj49/bx9PT08/T08/Ly8fDw8fLz7vTx8u/y7fTy8/T09fX19fX19fT08/Ly8vDv7Ovr6unl5OPi4eDf393d3Nva2tnZ2dnZ2tra2tvW1tjY2Nvb2+Dd3+Ti5Ofl4+Hm5ebo7Ozq6+3u7u/w8fHx8vP09fX29fb39/f4+fr6+vv7+/z8/Pz8/f39/f7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v79/f38/Pz8+/r5+Pf39vX08vHv7u3t7u7s6ujp7O3q5+jr5uvs8e3u8PDx8vLz8/Ly8vLy8fDw7/Hx7+3r6eno5+bl5OLh4N/f397d3Nva2tXV1NbX2Nnb19ja29zd3t/Y1tbb2tzg4ODf4+Tk5unn5+jq6uvs7e7u7u/w8fLz8/P09fb29vf4+Pn5+vr7+/v8/Pz9/f3+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/f38/Pz7+/r5+Pb19fTz8vPx7uvn5eTi5eTj4+Pk5eXl5eTn5eno6uzs7e7v7+/v7+/v7u7t7Ovu6ufk4uDf397e3NvZ19bW1tXV1NPS0dDR0M/O0NHS09TU1dXV19bW1NXW1dbZ2dvf4N/g3uDh4OLk5ebn5+nq6urr7O3u7/Dw8fPz8/T19vb39/j5+fr6+/z8/P39/v7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/vz8/Pz7+vn5+Pf19PPy8e/v7u3s6+ro5uXl4+Pi4uPj4eHj5ePl6Ono6err6+zs7Ozs7Ovr6uno6uDV0dLQz9DLy8rJx8bFxcPDw8LCwcHBwsHAv8DAwMDCw8TFxsjJycvNz8/T1dTW2dfU2Nfa3Nne3+Hi4uPl5ufn6Onq6+zt7e7w8fHy8/T19fb29/j5+fv7+/z9/f3+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v38/Pz7+vn49/f29PPy8O7t6enn6Ojo6Ofq5+Pj5OTg2efl5OTk4+Lf5eXm5+jp6enp6eno6Ofm5d3Gr6aloJuWkZGRkZCQj4+Ojo6Pj4+QkI6PkZOXmJiYnZ+ipquvs7TEwcTBwsTAwsvKwc/W2tfU2tvc3t7f4eLj5OXm5+jp6urr7e7v7/Hy8/T09ff4+fn6+vv7/P39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39+/v7+/r49vb29fPx7+7s6unm4+Li4eDf2dra1dDO09jU2NzZ3Nnc4ODh4uPk5eXl5OTk5OPj4uHYup6Znp2YlY+Pj4+QkJCQkZKSk5SVlpaampmYmJWSkJOSkpCOjI2Mj4OFg4OLiYygnZi5zNbSztTV19jZ2tzd3t/g4ePk5ebn6Orr7O3u8PHy8/T29/j4+fr6+/z9/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/fv7+/r59/b09PPw7u3r6efm497c2NLNyMLCvrKln6KovcTHxtXX2uLb29ze39/g4N/f39/e3d3c0rOYlpyempeXl5iYmZmampydnZ6foKGhn6ChoqKkpKSlpaSkoqGhoYhycW9pbGtsb2tnmLzPzc3Oz9HS09TW19na29zd3+Dg4+Tm5+jq6+3v8PHy9PX29/n5+vv8/P39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/f37+/v6+ff19PPx7+3r6ebl4t/XzMCvoJaMiYaIjY2IhIKAf5DA0tfZ19fY2tvc3Nzb3Nvb29rZ2NG0mpifn5mXnJycnZ2enp6goaGio6OkpKKkpKWlqKmpp6enp6ipqamEa3BybnZ1dm9nXJG3y8jIycvMzs/Q0tPV1tfY2tvc3eDi5OXm5+nr7u7v8fP09fb5+fr7+/z9/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38/Pv6+fj29PL0+Pbx8OTWya+ilI2Njo+OkJOUjoN2Z1lWWVRSlMPP19DS09PT09LS2NjY2NfV1NPGqpuZnZSZnZiZmpqampucnZ2en6ChoqKhoqOjpaWlpaakqKOnpailenBtcG9vcHB2b2OCtru4v8nIycvIyc3Nzc3NysnLz9TW3uLm5eTl6Onr7e/w8vP19vf5+vv7/f39/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+ff29fPx8u7q5dvFqZORj46PkJGQj5aOfGFLREZLUFddVXG/x9DJyszO0NDR0tHR0dHQzs3MwaeamZ2Ul5yYmZqampqbnJ2dnp+foKGioaKjo6WlpaWmpKijp6aoondvbXBvb3Bvc2tihbC4ubi5t7u+vbq0rKOfmpKPjpKUusja3dvg5e3n6ezu7/Hy8/X3+fr7+/z9/f3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pz6+ff29fPx7+3q5dCpko+OkJGRkpGOjY6QcU9AQENITlBVXFpeu77Gx8jJyszMzMzLzMzLysnHxr2hmZyelJaamJmampqam5ycnZ6fn6ChoaGio6OlpaWlpqSnpKenqJxxbm5vb29vbW1pYYWosLSttrSwpZSIiIeOjIqHhYaJioSYydjZ4N/j5efp7O3v8fL09vj5+vv8/f39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+vj39fTy8O7q5t7Dk4WMkJCQj46KiYuLhmRGQ0lCQUpPVVddXp+wvby+v8HExcbGxsbGxsXDwsG7n5mcnZSVmpiZmpqampucnJydnp+goaGhoqOjpaWlpaakp6Wnp6eTbG5vb25vbmxlZ1+Fp6uur7GwrqaYkJCSl5aSkY+RkZKEjsXS1d7b4OLk5+nr7e/x8/X3+Pn6/P39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38/Pr59/Xz8e/t7undwY2Fh4GFgoKCgX99fHpmT0dIRUVNS1NZW1xyqLK2uLq7vr/Cwr6+vr69vLq5vJyanJ2UlZmYmZqampqbnJycnZ6foKGhoaKjo6WlpaWmpKalp6emimltb21tbmxpYmhcfZyemaSjp6yhkYqTm5COiomKjY+RmZjJ09Xa1+Df4eXn6uzu8PLz9vf5+vv9/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38/Pz6+Pb08/Dt6+ns6MmKf4ODgX99fHt6dnR+dFpHSlNSTk5RV1hbXa2rrK6ztLa3ubq4uLi4t7W0s72bmJyelpWZmJmampqam5ycnZ6fn6ChoaGio6OlpaWlpqSmpaanpIBpbm5tbW1qaGNoXHSRmoyYsaebkIqOk5KKi42QkZKTlZKXydPS0tLc3N7i5efq7O7w8vX3+Pn7/P39/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pz8+ff18/Hu7Onf5ebUmISAf4F/fXt6e3t7dXhmT0tUWFhWUVVYXV2hqJ+ip6qsrbCzsrKysrGvrq2+mJecnpeUlpiZmpqampucnZ2en5+goaKhoqOjpaWlpaakpqWlpqJ4bG9ubG1raGdlZl9vj6ycoJKOi4uIi42NkZOSkY+NjI2Yn8rIyMnR2tnb3uLl5+rs7/H09vj5+/z9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+/j29PLw7ero2+Hi1ZmBe4J9fn58enh3dHt9bVdNTFFcVVRZW1lXhaitr7Cvqqinqqqrq6qpqKalvJaWm56XlJWYmZqampqbnJ2dnp+goaKioaKjo6WlpaWmpKWlpaWhdG5vbWxua2ZnaWRgaoq1opqfm5ucmZSPhYOAfXl6foeOmaXGvsHF0dXW2dzg4+bo6u/x8/b3+fv8/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f79+/r39vTx7+vo5eDg2tOnfHqEgYB+fHp5eHZ0eXFjZ2ZydX+AgoWIi42Oi4yPk5ieoqe0t7u6t7Owr52cmZWSkpWXl5eYmJmam5ubnJ2cnp+goKGjpqempaWlo6alp6WokGpvb29ubGpnZWJeYW2gpqGgoqOkpqWmiHJ3en18fISLkZWuuL7AxcnM0dXZ3eDk5+rt7/H09ff5+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/fv69/bz8e7r5+Tf3tvTrn58hoKAfnt6eXh1d3Z4h6SoqqahoJ2bmZeWlY+Pjo2Mi4yMiYuOjo6OkJKRkI6Mi4uMj42NjY6Oj4+PkY+QkJGQkZGTlpqdoKOmqKSnpqimpYhqbGxsa2lnZGJeY19nmaOhoaKjpqWmpYNyd3p9fH2EjJOXtrW6vMLGys/S19ve4ubp7O7x8/X3+fr8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz7+ff18/Du6ubj39rb1LWCf4WCgX58e3p3dnhydIurqKioqamnpqeoqKikpaWjoaCdnJiYlZOQj4+OkY+Ojo2MjIuOjo2NjYyMjI2Mi4qKiIeHh4iJioyOkZOmp6emp6J/bmdnZ2dlY2FfWmJabKCjoKCioqekqKN7cnh7fXx/hY+TmMGxtba+wcfMz9TY3N/k5+vt8PP19/n6/Pz9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38+vn29fLw7Onl4t7V2NK9h4CEg4B+fXx5eHd4c3SJpqKmrqenpaanqqytq6yurq+vrayrqailo6GdmpuYlpOUkY+Mjo2Mi4qJiIiHh4aEgoF+fX18e3p4d3d3nqOmp6mgeXBubm1raWZkYl9dWHemoKCio6Kpo6medHN5fX1+gIeQlJnGq7Cxu73EyczS1tre4uXq7O/y9Pf5+vz8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f39/Pr59vTx7+vn4+Dd09bQwY1/gYKAfnt6enl3enV0iKqnpaWpqKampaaoqKipqamnpqampaSjo6ShnpqempeUkpGPjIqJiIaFg4KCgoJ/fnx6eXh3dnZ2dXRzcpylqKipnXl1enx+gIGDg4OAeXONpZ2ioaSiqaSplnBzen19foCIkZWawqasrri6wcbKz9TY3OHk6evu8fT2+fr8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/fv6+PX08e7q5uLf3NDR0cKUgICCgHx7e3p4d3Z1dYerrKmnqKenpaWmqKmqq6qpqainpqmop6SjoJ6bmZeSkJCPjIyMi4qIhoWEg4GBgH59fHl4dnZ2dnZ0cnGUoqKkq6manZ+fnp2amJaVlpaXnqCdpaCko6ilqIxvdHt+f36CiZOYnLahqKu0uL7EyM3S19vg4+jq7vHz9vn6/Pz9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+fj18/Dt6eXh3trQztDCnIKBgX58e3p5eHd4eniFpKSlqamop6Wlpaanp6ipq6usq6uop6eloqGenZiVk5CRkI+NiYiHhoSDgoF/f357enl4dnd2dXV0cnBtmKyipKeoqaqnpqWjoZ+dnJabnZ6doKOipaSmp6aDcXV8f39/gouTmJ+onKSnrra6wcXL0NXa3+Ln6e3w8/b4+vz8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+/n49fPw7enl4N3Z0MvPwaGEg39+fHt5eXh3enl1hKenpqqqqqimpqWmpaqqrK+urq6upqalpqSgnpyYlpSSkpCPjYeHhoSDgoGAgIB9fHt4eHd0c3NzdHRycYqnoaeopqmlpKSkpaWlpaWspp+bnZ+dpaWkpamkfXN2fn9/f4KLlJmin5qho6q0t7/Dyc/T2N3h5+nt8PP2+Pr8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Ty7uvp5N/c0s7KybuyhHl+fXp4d3d2d3l2d4OpqKuopqipqampqamoqaurq6urqqempqSioZ6bmZaUkpCOjIqKiYeGhoWDgoGAf357enl4dnZ2dXVzcW+IqaemqKmoqaWmqKemp6eoqaWhoKCioqGhp6Slmm93fXyBgX+FkJmdrJCVnqKotba7wsjN09fb4eXo7PDy9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf08u7r6OTf29TMysm/uYl7gH15d3Z1eXl2dXiDpqerqaaoqampqampqKmqq6urqqqnpaWjoqGdm5iYlJKQjoyKiomHhoaFg4KBgH9+e3p5eHd2dnV1c3Fvhqenpaapp6ilp6enp6mpqqmmo6ChoqCfoqWlppRtd35+gICAhZCanLSNkZqeprCzusHHzNPX2+Hl6Ozv8vX3+fz8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7///39/fr39fLu6+jk39vXzczHv76NfX58enh4eX19e3t9iKWmq6qmqKmpqampqKipqqurrKqqpqelpKKhnZyYmJWRkY6MjIqJiIeGhYOCgYB/fnt6eXl3d3Z1dXRycH2ho6OjpaanqKiop6inqKmlo6Cgn6GhoaKkpqeLa3d/f4CAgIeRmZrAio6Xm6SrsrjAxsvS1trg5efs7/L19/n8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Xy7uvo5N7b2czMxL29k4KCgoGCgoSHiIeIipKop6qpp6ipqampqaipqaurqqurqaimpKOjoJ2bmpeVk5GPjo2LiYiHhoWDgoGBgH97enl5eHd2dnV0cnB6nqSlpaeoqaiop6inp6mqpKKgn56foJ6io6mog2p3gIB/f4GJk5mayImMlZqkqLO3vsTK0NXZ3+Tn6+/y9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf18u7r6OPe2tjNzcG6vKCUk5KQj4+RlJSVl5OaqqmpqKepqampqamoqamqrKuqqqinpqWjo6CdmpmXlJORj46Ni4qIh4aFhIKBgYB/e3p5eXl4dnZ1dHNxeJykpqWmp6aoqKmop6iqq6WkoqGhoZ6eoqSrp3tteIGCgH+Bi5SbncOGipOYoqextb3DyNDU2d/k5+vv8vX3+fz8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7///39/fr39fLu6+jj3trWzsrBvLyxq6SinZmXl5iZmpyYnqqpqaenqampqamoqKmqqqurqqmpp6akpKKgnJuZl5aTko+OjouKiIeGhYSDgYGAf3x7enl5eHd2dXVzcnSZo6elp6mnq6qpp6alpaWioqKjoqOkpKClqqNzcHeBgoCBhIyVnaCvgYiQlp+lrrS7wsjP1Njf4+bq7/L19/n8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Xy7uvn493Z08/Fwb28v7iwraqloZybmpyemaCpqqqop6mpqampqKeqqqqrqqqqqaempKSjn52amZeWk5KRjo6LioiHh4aEg4KBgH98e3p5enh3dnZ1c3J1maSpqKurp6WlpKKfnZ2enJ2eoKKkpaafpqicbHJ3gYKAgYWMl56jl36HjpWcpayzu8HHz9TY3+Pm6u7y9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf18u7r5+Pd2dPNwMC9ucS+t7e1saymn5ydoJuiqauqqKipqampqKinqaqqq6upqainpqSkop+dmpmXlZOSkY+Oi4qIh4eGhIOCgYB/fHt6eXp5d3Z2dXRzcpWepJ+fnpmZmpqbmpmbm5ydn56en56fnqemlmdzdoGDgoKFjZifpol9h46WnKers7rBx8/U2N/j5uru8vX3+fz8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pr49fLu6+fj3dnTzMe/ubDLuri4t7e3tbGupaOipaerq6mpqaiop6ipqqepqamqqqmopqamo6Gem5qbmZeUk5CPjYyLiYiHhoSDg4F+fX18eXh4eHh3dnV0c3l9hY6NiIiLjI6RlZiYlpSfoqOioqOioJaShnhwcXp9hYN/jo2dn61ze4OKk5ujrLO5wcjO09rf4+fr7/L0+Pr8/P3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz6+PXy7uvn493Z1M3HwLqxybu4uLe3t7WxrqupqKmqq6qpqamoqKeoqaqnqKmpqaqoqKanpaOgnpuam5mXlJOQj42Mi4mIh4aFg4OCfn19fHp4eHh4d3Z1dHN2cW5rZl9dX2VobnV8gYKDjY6Oi4eCfXhtbm1pa3N8gYOCgY6Pm5uxcnuCipObo6yzucHIzdPa3uPn6+/y9Pj6/Pz9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38+vj18u7r6OPe2tTNyMC6ssW8ubi3t7i1sq+uraysq6uqqKqpqKinqKmpp6ioqqmpqKinpqWjoZ6bmZuZl5STkI+NjIuJiIeGhYSDgn5+fXx6eXh4eHd2dXRzc2xmY15WT01PUVZcY2hqa2hoZ2RjZGRjZ2hpanB3f4GDgoKNkpqavnF6gomSmqOss7nByM3T2d7j5+zv8vX4+vz8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/Pr49fPv6+jk3trUzcjAurK/vLm4t7e3tbKwq6ysraqqqamqqaiop6ioqaioqKmqqKenpqako6CdnJuamJaUkpCPjYyLiYiIh4WEg4J/fn59enl5eHh3dnV0c2poZ21ubGhlaWhnZmZkYmFiYV9eX2JkZmhpZ2lweoKDhIKEjJScnctxeYGIkpqirLO5wcjN09ne4+fs8PL1+Pv8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/vz6+Pbz7+zp5N/b083IwLqyuLy7ubi3t7a0sqqrrKyqqqqqqqqoqKeoqKmnqKqpqqmopqWlpaOgnpyampiWlJKQj42MiomIiIeGhYSDf35+fXt6eXl4eHd1dHRxb2xsa2poaWZlZGVmZmVlYWFiY2NiYGBjY2NlbXqDh4aEh4yYnqHEcHmBiJKaoqyzucHIzdPa3uTn7PDy9fj7/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79+vn28/Ds6eTf29POyMC6s7O9u7m4tri2tbKtra6tq6qqqqqqqKinqKipp6ipqamop6empaSioZ6bmZmXlpOSkI+NjIqJiIiHhoWEg4B/fn57enl5eHh3dnR0bmxramlpamtoZ2ZlZWRjYmVkZWdnZ2doaGlnaXF7hIWEg4iPmJ2fq3B5gYiSmqOstLnByM7U2t/k5+zw8/X4+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fv59/Tw7enl39vUz8rBvLWwvru5uLi4trWzrq6traurqqqrqqmop6ioqKmoqampp6enpaWkpKGdm5qZl5WTkpCPjYyKiYmIiIaFhYOAf39+e3p5eXl4d3Z1dHJwbm1sa2lpaGdnZmdnZmVpZmNkZGRnamdpaWtyfIKFhIOHkZieopVweYGIkpqjrLS6wsnO1Nvf5Ofs8PP1+fv8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v37+ff08O3p5d/b1dHLwr22r8C8ubi3uLa1s62sq6uqq6uqq6qpqKeoqKipqKmpqaempqWlo6OgnZuamZeVk5KQj42MiomJiIiHhoWEgH9/fnx6eXl5eHd2dXR0b2ppamxra2loZ2dmZmRjZGJjZWVkZWdqbGtrcHiAg4WEh5KYoKeKcHmBiZKbpK20usLJz9Xb4OTo7PDz9fn7/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7//v78+/r39fHu6ubg3dTRzcPAta3Iuru5t7e3trSwrqyqqamqq6urqqqqqqioqKmpp6iop6alpKSioJ2bmZmYl5WSkJCPjIuIiIiHhIODgYB/f358e3p6enl4d3Z1cW9tbGxramlpaGhnZmVlZGVlZWVlZmdnZmdqcHd+hYeJgoqPnaCqcHJ7g4uVnaWutbvDytDV3OHl6e7x9Pb5/P39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+//7+/Pv69/Xx7uvm4d3W0s3Dwbaux7q7ube3t7a0sa+sqqmpqqyrq6qqqqqoqKipqKeoqKampaSjo6Cdm5uZmJeVkpCQj4yLiYiIh4SDg4KAf39+fXt6enp5eHd2dXFvbWxsa2ppaWhoZ2ZlZWVlZWVlZWZnZ2Zoa3B3f4WHh4OKkZyesWtye4SMlZ2mrra8xMvR1t3i5enu8fT2+fz9/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/////vz7+vj18e7r5+He2NPOxcG3sMS5urm3t7m3tbGvraqpqaqsq6uqqqqqqKioqaipp6empqSkpKKgnZybmZiXlZKQkI+MjImIiIeEg4OCgIB/fn18enp6eXh3dXVxb25sbGxramlpaGdmZmVlZWVlZWZmZ2doaGtxeH+Fh4eDjZSbnb9qc3yEjJaepq+4vcXM0tfe4ubq7vL09vn8/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79+/r49fLv7Ofi3tnUzsXBuLG/u7u6t7e5t7Wxr62rqamqrKurqqqqqqioqaioqKempaWkpKOin56cmpmYl5WSkJCPjYyJiYiHhYODgoGAgH99fHt6enl4d3V1cW9ubWxsa2ppaWhoZ2ZmZWZmZWZmZ2doaGhscXl/hYeJhY6Vm6DLcXR9ho6Xn6iwuL7GzdLY3uPn6u/y9Pf6/P39/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fv7+Pby7+zo49/a1M3Gwriyuby8urm3uLe2sa+tq6mpqqyrq6qqqqqoqKipqainp6akpKSjo6Cem5qZmJeVkpCQj42MiYmIiIWDhIOBgIB/fn17e3p5eHZ1dHFvbm1tbGtramlpaGdnZmZmZmZmZmdoaGlrbXN6goaJiYiPlZyhx3J2foePmKCpsrm+xs3S2N7i5+vv8/X3+vz9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38+/n28/Dt6eTg2tTNyMK5srO+vbq4trq5t7Gvrauqqaqsq6uqqqqqqKioqamopqalpaOjpKKgnZuamJeXlZKQkZCNjImJiYiFhISDgoGAgH59e3t6eXh2dXRxb25tbW1sa2pqaWloZ2ZmZ2ZmZmdnaGlrbG50eoKGiIeHkZeeoLBvd4CIkJqiqrO5v8fN09je4+jr8PP19/r8/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/Pv59vPw7enk4dvVzsrEu7SvwMC8t7W5ubexr62rqqqqrKurqqqqqqioqaioqKilpaWjpaSin56bmZiXl5WSkJGQjYyJiYmIhYSFg4KBgYB+fXt7enl4dnV0cW9ubW1tbGtqamppaGdnZmdnZ2dnaGhpa2xvdHuChoiHiJKXn6OZcniAiZGaoqu0u8DIz9TZ3+To7PDz9ff6/P39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////fz7+fbz8O7q5eHc1s/Mxby1rsHAvLe1uLm3sq+tq6qqq62rq6qqqqqoqKmoqKenpaSkpaSjoqCdm5mYl5eVkpCRkI2MiomJiIWEhYSCgYGAf317e3p5eHZ1dHBvbm1tbWxsa2pqaWhnZ2ZnZ2dnZ2hpaWtsb3V9goeIiImTlqCmjXh4gYmRm6OrtLzBydDV2uDk6ezw9PX3+vz9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pr39PHv6+bi3dbRzMS9t6/Ivb+6tbq8urOyr66rqqurq6uqqqqqqKinp6inp6alpaOjo6GfnJqZmZiXlpORj46LiomJiIiHhYSDgYCAf318e3p4eHd3dXRxcG9ubW1sbGtqaWlpaGZlZWVnZ2hpbG1qa291f4WHiYqOkJuhqXZxeYKLk52lrba9wsrQ1dvh5ert8fT3+fv9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz69/Tx7+vm493X0szEvrewxr2/urW6vLuzsq+uq6qrq6urqqqqqqiop6eop6elpaWjo6Khn5yamZmYl5aTkY+OjIuJiYiIh4WEg4GAgH99fHt6eHh3d3V0cXBvbm1tbW1ramppaWhmZWZmZ2doaWxta2tveH+FiImIj5Odna5wcnqDjJWepq63vsPL0dbb4ebr7fH09/n7/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fz8+vj08u/s5+Pe19LNxr+5scO+vru2uby7s7Kvrqyqq6urq6qqqqqoqKeoqKempaSkpKOjoqCdm5qZmJeWk5GPjoyLiomJiIeFhIOBgIB/fXx7enh4d3d1dHFwb25ubW1tbGtqamloZ2VmZmdoaGlsbWtscnmAhYiJiZCTnZ28bXR8hY6WoKevuL/EzNLX3OLn6+7x9ff5+/3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pr49fLw7Ojk39nUz8fBurK+vr67ubm8vrOyr66sq6urq6uqqqqqqKinqKempqSko6OjoqGfnZuZmZiXlpORj46Mi4qJiYiHhYSDgYCAf318e3p4eHd3dXRxcXBvbm1tbWxrampqaWdmZmZnaGlqbW1rbHJ5gYeIiIyQkZ6gym94fYaPl6GosLnAxc3T2N3j5+zu8vX3+fv9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz7+PXz8e3o5eDa1dDIwry0ur/Au7m5u720s6+urKusrKysq6urq6mpqKeoqKempKSioqKhn52bmZmYl5aTkY+OjYyKiYmIhoWDgoB/f358e3t6eHh3d3V0cnFwb25ubm5sbGtqamlnZmdnaGhpam1ubG9zeoKIiomMkZKeocZwen+IkJiiqbG6wMbN09jd4+fs7/L2+Pr8/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fz8+/n28/Hu6ebh29bRysS9trjCwb26uLq9tLOwrqyrrKysrKurq6upqaioqKimpaOjo6OioaCdm5qZmJeWk5GPjo2Mi4qJiIaFg4KAf39+fHt7enh4d3d1dHJycXBvbm5ubWxra2pqaGZnZ2hpamtubmxvdXyDiIqIi5KWn56xcHuBipKao6uyu8LHz9XZ3uTo7fDz9vj6/P3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pv59vTy7urm4tzX0svFv7e1w8G9vLe6vbSzsK+sq6ysrKyrq6urqamoqKinpqWlo6KioqGfnZuamZiXlpORj46OjIuKiYiGhYOCgH9/fnx7e3p4eHd3dXRycnFwb25ubm1sa2tramhnZ2doaWprbm5sb3Z9hIqKiIySmJ+gnXR8g4yVnKattb3EydHW2+Dl6u7w8/b4+vz9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz7+fb08u/q5+Pc2NPMxr+4tMPBvby2ub20s7CvrKusrKysq6urq6mpqKiop6alpKKioqKhn52bmpmYl5aTkY+Ojo2LiomIhoWDgoB/f358e3t6eHh3d3V0c3JxcG9vbm5tbGxra2poZ2dnaWlqa25vbHB2fYaKioqOkpaepJZ6foWOlp6nr7a/xcvS2Nzh5+vu8PT2+fr8/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pr49fLv6+jj39nUz8jBu7TJw8G9ura9uLazsK2tra2srKysqampqaiop6elpaSkpKSioZ+dmpmamJeVlJORj42MiomIh4aEgoGAgH9+fHt5eHd2dnZ1dHFwcG9vbm5tbW1sa2tqaWlpaWpqbW5vcG9xd36Gi4uMlJObnah/dn6JkZmhq7K4v8jM09jd4ufq7vH09/n7/P7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz6+Pbz7+vp5ODa1dDKw724x8DAvLu3u7i3s7Ctra2trKysrKmpqamoqKenpaWkpKSkoqGfnZqZmpiXlpWTkY+Mi4qJiIeFhIKBgIB/fnx7eXh3d3d2dXRxcHBvb25ubm1tbGxramlpampqam1ub3Bvcnh/h4uLio6WmZ6wen2Ai5Obo6yzusHJzdPZ3uLn6u/x9Pf5+/z+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+vj28/Ds6ebi3NfSzMW/u8K+wr27t7q5uLSwra2sraysrKyqqampqKinp6WlpKSkpKGgn52amZmYl5aVk5GPjIuKiYiHhYOCgYB/f358e3l4d3d3dnV0cXFwcG9vbm5ubW1sa2pqampqamtub3Bwb3J5goiMjImQmJqfvHJ8iI2WnqWvtbzDys7V2t/j6Ovv8vX3+fv8/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pv49vTx7evn493Y1M7Hwbu9vsW+vbm6u7i1sbCtrKysrKysqqqpqaiop6elpaSko6OhoJ6cmpiZmJeWlZORj4uKiomJh4SCgoGAf39+fHp6eXd3d3Z1dHFxcXBvb25ubm5tbWxrampra2trbm9wcW9zeYOKjI2KlJicnLh/fIqQmKCosbe9xczQ19zg5ens8PL1+Pr7/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+ff18u7s5+Pe2dXPyMO6ur/Gv726vby5t7Kwrqyrra2srKqqqqqpqaenpaWjo6KioJ+enJmYmJiXlpWTkI6JiYiIh4WDgYKBgH9/fnx6enl4d3d3dXRycnFxcG9vb29vbm1sbGtra2trbG9wcXFydHqCiY6OjJaUmqKyd42Ik5ujqrO5v8bO09ne4ubq7fHz9vj6+/3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+/n39fPv7ejk39rW0crFu7q8wb2+ur29u7ezsa2sq62trayqqqqqqamop6Wko6OioqCfnpyZmJiXlpaUko+NiYmIh4aFg4GBgX9/fn18enp5eHd3d3Z1cnJxcXBwb29vb29ubWxsa2xsbGxvcHFyc3V7hImOj4yPmqC0foSEkZefpq22vMLJ0NXa3+Pn6+7x8/b5+vz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pv5+Pbz8O7q5uDc2NPMx7+8t7m4wLm+vry5tbGtrKmtra2tqqqqqqmpqKelpKOjoaGfn56cmZiXlpaVlJKOjIqIh4aGhIOBgYB/f359e3p6eXh3d3d2dXJycnFxcHBvcHBvbm1tbGxsbGxtcHFycnR4fIWMjo2Kl468fXqDi5Kaoqmwub/Ey9LW3OHk6Ozv8vT3+fv8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+fj29PDu6+fi3trVzsnFvrKwtsC3vL68ubWxraypra2traqqqqqpqainpaSjo6Ghn5+dnJmYlpaVlZSRjoyKiIeGhYSDgYGAf39+fXt6enl4eHh3dnVzcnJxcXBwb3Bwb25ubWxsbG1tbXBxcnN1eX6HjY6MiKKgc3mBio2ZnKSss7vBxs3T193h5ent7/L09/n7/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pr59/Tx7+vo5ODc1tHMxL64sqikr8Cytbazsq2krKuura6xr7awqKeop6elo6Genp6dm5mYlZeXlpSUko+MjYqIhoaFg4CEg4GAf358enx6eHh4eHd2cXFwcnJyc3Nrbm9tbG5tamx0b3NxdHF4bnV7goyNoJ9tc3h+hYyTm6KnsLe9w8rO1Nje4ubp7fD09vn6+/z9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz7+ff18e/s6eXh3djSzsrCu7evpJ+gl7C/tK+wqKikqKupq6qpqKalp6empKOioqKgn52YlpSSkZGOjoyJh4mHhIOEgX99fHt6eXl4dnV4d3V1dXV1dHBxcXNycnFwdHV0cnBxcG5wb21yaW5wbXR7fp+6i2ZlcXd8gYmQlp6lq7O6wMbM0dba4OTn6+7x9Pb5+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38+/n49fLw7uvn4+Db1dHMxL26ta2inJaPiZKtvrOsqKinn6OlnJ+lpKSjoaCgn5+fn56cmpmYkpGPjo2MiIeHhYSDgoKAfn5+fX19fHt5dnV0c3Nzc3JxcXFxc3JxcHFxcW9xcnJxbmlmcG9tbnyftYlUXGRpbnZ8goePlZujqrC4v8TJ0NTZ3eLm6ezw8vX3+fv8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pv6+Pbz8e/s6OXi3djUz8rDvbawqaWgmJGHfHJ4kbS5u62lpqCppqekoqCenp6cnJqamZeWlpaVkpGQjYuJi4qHhoeFg4KCgYCAgIB+fXt6eXh3d3Z2cnJyc3NycnFra2tra2tsa2pndYCQtJ1cS1BXY2hnc3x7goeMlJqgqK+0vMLHzNLX29/k6Ort8PP19/r7/P39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz7+vn39PLv7enm49/a1s7Mx8C5squmpZuTi4mEe3pvZGZ3nLW6q6mop6Sgn56fmpqYl5aSkZCTkpGPjYuIhIeHhYWFgoGAgYB/f39+fHt8e3p5eHd3d3V1dHNzc3JybW5wdHZ2d3mboX5HQEtLVFJTXWhncXtzgIeMkZmfpayzuL/Fys7U2N3g5enr7vHz9vj6/P39/v7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+PXz8e7r6OXh3NnSzcfCvrqzraKfnZaRkIR9e3ZvYmNtqq2npqWhnpycnZmZmJaWlZSTkI6NjIuHhIJ/gIB+fn17eXx7enp6eXd2dnZ1dHNycnN0dXV2dnd4eH6CiI2Oj5OXkUg7SklMWVtYYmNqb3R3goWMkpefpKqxt7zDyc3R19vf4+fq7O/y9Pf5+/z9/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz7+vn29PLw7Orn5N/b3NXMx8O+uLStpaCZlI6Ghnp7eG9nZb6xqaemoZuZmJmcnJybm5ubmpiXl5WVk5CPiYmKiYiGhYOEg4ODg4OBgIOEhISDg4SGj4+QkY+OjYyMkJabmpygp3JHSE1NUFdaXGlqcXmAfIKLkpiepaqwt7zByM3R1dre4uXp7O7w8/X3+fv9/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38+/v59/Xz8e7r6ebh3dfU0M7IwLq4tKmlnpmTioeCe3NycGrOrbCvrKefm5qao6OhoKCenp2lpaWmpKSioZ6fnp6dmpmYnZycnZ6enZyjpKWlpaaoqpmZl5WRioWCfYSMk5Wbo6xXQUlMU1VaYWdrc3x3hYmNkJecoqmutLvAxcvQ1Njd4ePn6+7w8fT2+Pn7/f39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f38+vj39fPw7uvo5OLc2dTQzMbAvLWyrKahm5SQiYN+enNxsbCsqaeopJmWlJWVlJORkZGRk5SVlZeYl5ebnJycnJybm52dnJubmpqaj42NjIqKiYmDhYWDgX5+fnmGk5mWnJy9RUlOU1dcYmZrcHd9gYaNkZmdpKqvtbu/xsrP1Nfb4OPo6u3v8fP29/r6+/z9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/f39/Pr49/b08u/s6ebj39zY08/KxMC6trCrpZ+ZlY+Ig394c5+tq6mmp6OYlJKUlJOSkZCRkpCQkJGRkpGRkJCQkJCPj46MjIuKiYmJiYmIiYeHhoaHhIaFg4F/fn99iZSZlJunykhMUVZbYGZqcXZ9g4iNk5idoqiutLm/w8nN0tba3uLl6evu8fP19/j6+vv8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f39/fz6+fj39fPx7uvo5uPg3NjUz8nFwLy2saymoJuYjoqFgHiHr62rpaeimJSPkpOTkpCQkZKLi4uLjIyMjImJiYmIiIeGhIOCgYCAf3+FhISDg4SGhYWGhoSCf39/f4mVm5WYprhNUFZbYGZscHZ7goiNkpmdpKivtLq/xMjO0dba3eHl6Ovt8PL09vj5+vv7/P3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f38+/r5+Pb08vDt6ujm49/c2NTOysXBvLeyrKainpSRiod/erysq6WmpJiTkJGSk5ORkJKTjIyLioqKioqNjY2NjIuKiYqKiIeGhYWFhISDg4SEhoaGiIeEgoCAgICLlZqYnKKPUFRaX2VrcXZ7gYiOk5ieo6qvtbq/xMnN0tba3uHk6Ovt7vHz9ff4+vv7/Pz9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+vj39fPx7+zq6OXh3tvX0s7KxsG8t7KsqKKal4+MhnvIq62npaWclpKRkpOTkpKSk5GRkI2MjI2NkJCPj46OjYyOjYyLiomIiIWGhIWFhYaGh4mIhYOAgIGFj5iYmKCrdFNXXWNpcHZ7g4iPlZqgpquwtLq/xMjN0dfa3uHk5urt7vDy9Pb3+fr7+/z9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/fz8+/v59/b08/Hu7Orn5OLf29bTz8vGwb23sq6noJ6UkYyEx6ytp6ennpaSkZKSkpKSkpGSkZCQjo6OjYqKioqJiIiHiYiHhoWFhISGhoSEhYWGhomKiIaDgYGBhZSdmpifsWJXW2FnbnV8gYiNlJqfpaywtrq/xMnN0tXb3uLl5+ns7+/x8/X2+Pn6/Pz8/f7+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/Pz7+vn39vXz8e/t6+jl4+Db2NTQy8fCvbezraakmpeQjLessKimqJ6Xk5GQkJGRkpCPkI+PjIyKiYmIiIiIiIeHhoeGhYSEg4ODhoeHhoeHiYiKi4mGg4GBgoWUn5uYnrVYW19mbHN6goaMkZifpKqwtbzAxcrO0tba3uHl6Onr7vHx8/X3+Pn6/Pz8/f3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8/Pv6+Pf29fLx7+3q6Obj3tvX1M/KxsG7t7KrqZ6bko+nrLGopqidlZGRj46QkZGPjY2MjImJh4WEjY6Ojo6NjY2NjYyLioqKiomJiYmJiouMiouJhoSBgoKLlJuZmaK+W15iaXB3foaKkZeepKqvtrvAw8nN0dXa3eHk5+rr7fDy8/X3+Pn6/P38/P39/v7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38/Pz6+vn49/Xz8vHw7uvp5uLg29jUz8vFv7u3sqqloJeUmbCsrKSonpOQkJCQkI+PkJCNjYyLiYmJiYmKi4uKiomKiYiIh4eGhoWGhoeHiIqKi42Mi4iGhIOCjpiZm6OlxVxgZ210fIOJkJeepKmwtbnAxMjO09ba3uHl5+rs7vDy8/T1+Pr7/Pz8/f39/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+/v6+ff29PPz8fDu6+jl4t/c19PPycO/uLStp6KZk5W0qqiipJySjY6OjIyMi4yMjIyKiYmHh4eKi4yMjIuLjIiIiIeHhoaGh4aHh4mKiouNjYuIhoSDgo6XmZqhorRaY2pxd4CGjJSaoaets7i9xMjM0tba3eHk6Ons7vDx8/X19vj6/Pz8/P39/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f39/Pz7+/r59/b19fTy8O7s6Obi39rW0s3Hw7q4saqlnJSQuaikoKKakIuLi4uLiYmJiYiHh4aFhYWFh4iJiYmJiYqHh4aGhoaFhYeHiIeJioqLjo6MiYeFg4KPmJyZoaKdXGdudXuEi5GZn6essri9wsnN0dfb3+Lm6Ovt7/Hy9PX39/j5+/z8/Pz9/f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/f38/Pz7+vn39/b19PLx7uvp4+Dc2NTOycS9u7SspqCWj7umopyemJGJiIiIh4aGhoaDg4KCgYGBgYOEhYaGhoeIh4eHh4iIiIiHh4eHiYqMi4+OjYmHhYSDkpecmqOoiWNqcXh/iI6VnaSrsba9wcbN0tbb3+Ll6ezu7/Lz9PX3+Pn5+vv8/Pz8/v7+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/f39/Pv6+fj39vTz8u/s6uXi3trV0MrGv7y1rKahmZC4o5+ampWOhoSEg4OBgYGAgYGAgH5+fn5/gIGCgoOEhYWGhoaHh4eHh4aHiImKjI2Pjo2KiIaEg5KXm5ylrXZmbHN6gYqRmKCnrrS5wMXK0NXZ3uLl6Ovu8PL09fb2+Pn6+/v8/P39/f7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/v39/f38+/r59/b19PLv7Oro5eDc19LLx7+6tKykoJmQrJ6clZaRiYGBgYCAf35+fn19fXx7fHx8e3x9fn+AgoOCg4OEhIWGhoWGhYeIiouMjo2MiYiGhYSTmZqbpLFoZW52fYSNlZyjq7K4vcTJzdTY3OHl5+rt8PL09ff39/j5/Pz8/f39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v79/f39/Pv7+vj39vTy8O3q6OXg29bQysa+t7GqopyWj52Ymo+RioJ9fHt7enl5eHd4d3d1dXV0dXR1dnd4eXt9fX1+f3+AgYGDhIOFh4mMjI2MjImIhoWElJuXnKS4ZGhxeYCIkZigp6+2vMHIzdLY3N/k6Ort8PP19vj4+fn6+vz8/f39/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/f39/fz8+/r5+Pb18/Dt6ubj3tnUzsfDvLWwqqCZk42TlJeLjYZ8enJycnFwb29vcHBwb21ubm9vcHJyc3V3eXl6e3x9fn5/gYKChIaIi4yMjIuJh4aFhZSclp2nv2dsdHyDipSbo6qyub/Ey9DV297i5+rt7/L19vj5+vr6+/v8/f39/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v///fz8+/r5+vf18/Lv6+jp4dvUzsvFurmyqqagmZORi5SRiYqFdm1wbm1sbnBvbWdoam1ucHBxam9ycW9vdHdwd35+fX9+e319gIGGiYqMjo6MiIaGiImYmp2fn8NlbXV+h46XnqautbrCyM3S2d3i5ent8PL19vn5+fr7+/z8/Pz9/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///////v7//v38/Pv6+fn39fPx7urn4N7c08rFxMC2raWfmZCGgXmEhH5/fHJuZmVjY2ZmZWNpZ2ZjY2FiYGBcXWVrbm5wbmxtc3Vyc3d7fH6ChYiMjI2Ni4eFhYeJmJmboKbEam13gIiQmaCosLe8xMrP1dvf5Ofr7vH09vj5+vr7+/z8/f39/f7+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7//////////v38/Pv7+fj39fLw7uvn497Y0szGxMC6q6KZk42FfXlxf4OAfnl1dWVkY2NlZGNhYmBgXVtaWFhfXFxiYV5eY2hoa2xucXN1eXl7f4OGiYuMjIqIhISGiJmZm6CmumxweoOLk5yjqrO6wMfN0tfd4ubp7fHz9vj6+/v7/Pz9/f39/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+//////////79/Pv7+vj39PLu7Orm4d7W08zHwbu2sKSfmZSOhn9+kKG0wtDc4en6+fj7+/r6+Pj06t3Mva+oeG5kYF5fYWNnamtnaW52enN1eHt+gYWIjIqJh4SEhoqam5ygoadrc3uEjZWepa21vcLK0NXa4OTo6+/y9ff6+/z8/P39/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v////////7+/fz7+vn39fHv6+jl4dzY1s3AuLOvp6GemZabqL7Z7e/1+vv9/Pr69PTz9fX19PP29/n7+vr49/713ruWdWBTXVxgaGtnZmtvcXR4e3+DhomKiYaFhYiKmZyboKSZbHV9ho6Wn6eut77Ey9HW2+Hl6ezw8/b4+vz9/f3+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz6+fj28/Hu6+fj4NvV0cXDvLOspJ6fsMDZ8Pv9+/v4+Pf4+vz8//z8/Pv8+/r6/f36+Pf19PT5+PXy8u7dzIFyY11dXmJoam1xdXd7gISGhoaFg4SHipmbmaKrk3J3foeQmKGosLnAxc3T19zi5urt8fT3+fv8/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pv6+Pf18+/t6eXh3NjSzMe/vrWsqbHG2/n5+Pj5+fv//fn29vf3+fv6+vr5+fn4+PX09fb2+Pn89/n5+fz////216JyWFdjbGRoa3Bydnx+goKCgoGChoqZm5ikrIpzeH+IkZmjqrK7wcfO1Nnd4+fs7vL1+Pr8/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pv5+Pf18/Ds6uPf2tbRy8S/uK+pt9bu+f//+/v9/fj19f75+Pj49vf5+Pj49/b4+Pn6+/r6+fb19Pj39vb18/Lz+Pr88MWKWURdYWVpbHB2eX9/gH9/gISJmpyao6d/cHmBipKbpKy0vMPIz9Xa3uTo7fDz9/n7/f7+/v7////////////+/v7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/fz7+vfz8fDt6OTe2tPNysS4sbLE3vD5+vj4//38+/v6+vn8+vn4+fr5+Pr5+fj6+fj4+vr5+fn5+fn39/j5+Pj39/n29ff467+MU15eZWprcXd5fX19foCEipmdmKGtcnN6g4yUnKWttb7FytHX2+Dl6e7w9Pf5+/z9/////////////////////////////////////////////////////////////////v7+//////////////////39/f39/f39/Pz7+/v8/Pz8/Pz8/P3+/v7+/v7+/v7+/////////////////////////////////////////////v39/fz7+ff08O7s6OLd1s/Nxrq1ub/h6/b9/Pr49fz7+vr5+fj3+vj39vj39/b4+Pf39/f29vb29vb29vb29/f29/b39fbz9Pf6+fXo1btiU2JfZWt1dnp7e3yAgomYnJihrnJ0eoOMlZ2mrra+xcrR19zg5uru8PT3+vv8/f///////////////////////////////////////////////////////////////////////////v7+/v39/f39/f39/Pz8/Pv6+vr6+vr7+/v6+vv7/P39/f39/v7+/v7+/v///////////////////////////////////////v38/Pz6+ff08ezp5uHa1M7Lv7Wzt83q9vn7/Pz7+/z6+Pf49/j39vj29vT29vX19fX09PX19PT19fX19fX19fT09Pb19fX09vLz+Pr59vPo24FbZVxrc3B0dnd6fYCHlpqYoa9xdHqEjZaep6+2v8bL0tjc4ebr7vH0+Pr7/f7///////////////////////////////////////////////////////////////////////////38/Pz8+/v7+/v7+vr5+fj39vb19fb29vb29vb3+Pj5+vr6+/v8/P39/f7+/v7+/v////////////////////////////////79/Pv7+ff18e3p5eHb083GvriyvN34+/r8/Pz7+/v7+fj4+Pf39vX39fX29fb09vT09PX09PT09PT09PT19fX09fX19fX09Pjz8fb6+/j09/Pwm1pfW21tcnJ0d3uAhpSXmKKwcHR7hI6Xn6iwt7/GzNPZ3eLn6+7x9fj6+/3+//////////////////////////////////////////////////////////////////////7+/v78/Pv7+vr6+ff39/b19PPz8fHx8PDw8PHx8fHx8vPz9PX19vf4+fn6/Pz9/f3+/v7//////////////////////////////v7+/fz7+ff08u7q5eHc1czGt7W2y+36+fj+/Pv7+fj29fn4+Pf49/f2+Pf19fb29vX29fX19fX19fX19fX29vb29vb39/b29fX09vTy8PL3++v68POwXl9dam1vcXV3fYOSlZigsm90fIWOl6CpsLjAx8zT2d3i5+zu8fX4+vz9/v///////////////////////////////////////////////////////////////////v79/fz8/Pv7+vn49/f09PPy8O/v7u3t7Ovr6+vs7Ozs7e3u7/Dw8fLz9fb3+Pr6+/v8/f3+/v7+/////////////////////////v7+/fz7+vj18e7q5d/a1M3EvrS11fn/+vb3+vj19fX19vb5+Pf2+Pj39vj39fX29vb18/X19fb19fX09fX19vb29vX29vf39vb28/j27+vs7/Tu8vzv9sxqWGRpa21wdHl/j5KWnrFtdXyFjpigqrG4wMfM09nd4ujs7vH1+Pr8/f7////////////////////////////////////////////////////////////////+/v38/Pv6+vr5+Pf19PLy8O/u7evq6ejn5+bm5eXl5ubm5+fo6erq7Ozu7/Hz9PX29/j5+vv8/P39/v7+//////////////////////7+/v37+vj18e3q5eDZ0svDurPB4Pj7/Pv7/P369/X29/n59vX19PX29fX29fTz9PX08/Pz8vL09PT08vPz8/T09PX09Pb19vX29PH49/Pz8/H08/Xw9vP30WdcYmVnbHB2fo+PlZyxa3V9hY6YoKqxuMDHzNPZ3eLn7O/x9fj6/P3+/////////////////////////////////////////////////////////////////fz8+/r5+Pj29fTy8O7s7Ono5+Xk4uHg397d3dzc3Nzd3d3e3+Dh4uTl5+nr7e/v8vP09ff5+vr8/P39/v7+///////////////////+/v78+vn28+/r5+Lc1MzFvLKs7PX59/b9/ff7+ff29vf6+vTz8vLz9PT09PPy8fHy8vHw8PLy8vPz8/Dx8fHy8vPz8fLz8/T08/Pu9vj39fDx9/r08fT999jJWFxgY2hudHyOjpacsGp1foSOmKGqsbi/x8zT2d3i5+vv8fX4+/z9/v////////////////////////////////////////////////////////////////z8+/r5+Pf38/Lx7uzq6Ofi4uDf3dva2dfW1dXU1NTU1dXV1tfY2dre3+Di5efp6u/w8fP19/j5/Pz8/f3+/v7///////////7+/v7//vz7/Pj39e/r5+Hc2sy+uLG26f78+/r6+/z7+vj39/j49/f5+fj39vX19PTz8/Lx8fDw8vLy8vLy8vLx8vLz9PT19fLz8vPy8vHx8/T19fX18/L09PP08e/s6LxiV1tjW3CAiYuVlblocHqGkJmiq7K5wcfO09ng5Ojt7/H1+fv8/f7//////////////////////v7+//////////////7+/v/////////+///+/v/+/fz7+vr49vTz8u3s6eXi4N/e2NbV09LR0M/OzczLycnJycbIy8vLztDS1dbY2tvb29zn6evt7/L09ff4+fv9/v79/f///////////v7+//78+/v39fLs6OPc2M3Htq644vP8+vn4+vr6+ff39fX19vX09fXz8/Lx8vHz8/Py8fHx8PHx8fHx8fHx8PDx8fLy8/Py8vHx8fDx8fLz9PX08/Py8/Ty8/Du6ObMkFRaX2pkf4WIkZO3Z295ho+ZoauyucHHztPY3+Tn7e/y9vn7/P7+//////////////////////////////////////////////////////7+/f39/fz6+vr59/Tx7+7r6OTj49/Z1NfV0s/OycfFxcTCwMDAwMC9wMHDw8bKy8jLz9XY29rb4ePl6Ort7/H09ff5+/z8/Pz+/////v/////+///+/Pr69fLv6ePd1s7BurWx3vn7+fn49vj3+Pb49/Xz9PTz8vHw8fDw7+/v8/Pz8/Ly8vLx8fHx8fHx8e/v7/Dw8PDw8PHx8fDx8fHx8vP08/Pz8/T08vLv7Obk3sRtWWJrYXWAhI2StGdueoWPmKGrsbnBx87T2N/j5+zw8/b5+/z+/v///////////////////////////////////////v7+///////////9/Pz8/Pv5+Pj39fLv7Onn5+Tg3NbT0M/HxcG/vbu5uLe2tbSzs7S0uLe4tre2trbHxcLEydDW2dnc3+Ll6Ovt8fL09/j5+vr7/P7+/v7+//////7+/fv5+PPw7OXf2NDFurOy1vn6+/r5+Pf39/b1+Pf18/Tz8vLy8fHx7/Hx8fLy8vLy8vLy8fHx8fHx8fHv7+/v7+/v7/Hx8fLx8fHx8PHy8/Pz9PT08vPx7urk4OPXpWFfVWZpfIGKkLBmb3mFjpihqrG4wMfO09jf4+bs8PP2+fv8/v7///////////////////7+/v79/f39/Pz8/Pz8/Pz8+/z8/Pz8/f39/Pz7+/v59/b08u/s6eXi397b19LNx8PBure1srCwsLCnp6enpqalpaqrra6vsbKzr7a7vby9xcvQ09fb3uHm6ezu8fT29/n6+vz9/v7+/v////7+/fz5+Pbx7eni3NTLwLisxPP++/z6+vj4+fn39/n49PP09PPy8fHy8fHx8/Py8vLy8vLy8vLy8vLy8vLy8fHx8fHx8fHx8vLx8vLz8/Ly8vP09fPz8/Hx8O3o4t7d2NOJUkVjZHp+h46sZm53g42XoKmwuMDGzdLX3uLm6+/y9vn7/P3+///////////////+/v39/f39/Pz7+/r6+vr6+vn5+fn5+fr6+vr7+/v6+vn59/Xz8O7r5+Tg3NnSysPCw7+7uLCwsrfAzNfe9fX4+Pj39fXw6+Xbz8W8uKmoqauvtbvAxMjN0dXZ3uLn6u7x8/X3+fn7/P39/v/////+/fz6+Pb07enl3tfOxbqywOj3//r9+/r59/n3+Pf49vXy8vP09PHx8PDx8fLy8vLy8vLz8/Pz8/Pz8/Pz8/Ly8vHx8fHx8fHx8vPz8/Tx8fLz8/P09PPy8e/s5+Hd1NbfulhLWGl2fIGMpmNrdoCKlJ2nrrW9xMrQ1dzh5eru8PT3+vv9/v7+/v7+/v7+/v79/fz7+/v8/Pv6+vn4+Pf39/f39vb29/f39/j4+Pj39/b29fPw7uzq5eLe2tXSxcHAvrm0tLjP2Obz+/78/PX3+Pn6+Pf2/Pv6+fn39fTZzb6zr66sqrq/xcrO09nd4OPo7O/x9Pf4+fv8/f3+/////f37+ff08erl4dnRx72yteP3/Pr49/v5+Pf29vb19vPz8PHz8/Tw8O/x8fHx8fLy8vLx8fHx8/Pz8/Pz8/Px8fHx8fHx8fLy8vLy8vPz8fHx8vHy8vLx8fLw7Ofg3dHY2NaMWExrb3V6hp9fanN9h5CZo6uyusDHzNLa3uLo7O7y9vj6/P3+/v7+/v7+/v39/Pv6+vn5+Pj39/b19PTy8vLy8vLx8fLy8vPz8/T08vLx8O/t6ufm4t7Z1dDLxr64s7W7yNzt+Pn7/Pv+///5+fv7+vr6+f////79+/n2+Pn15s+6rKaus7q/w8nP1Njc4ebp7PDz9vf5+vv8/f7//v38+/n29O/o4t3VzMG3rc/u/vv59fP5+Pf09PX08/Pw8O/w8vPz8PDy8fHx8vLw8PDv7+/v7/Ly8vLy8vLy8PDx8fHx8fHw8PDy8vLy8/Dw8fDw8e/v8fDx8Ovn4NzU1dTayF1JaWtwdoGbXWhxeoSOl6Gor7i9xMrQ2N3h5urt8fX4+vz9/v7+/v7+/v78/Pv6+fn49/T08/Lx8fDv7e3t7e3t7Ozt7e3u7u/v7+7u7ezr6OXi4NzX0s3Hwb22s7nP6PX5+Pn6+vf08/Ly+vn5+fn5+Pry8fL09fX18/f5+vz569bGoaats7i9xMrS1tzh5ejt8PT2+Pn6+vv8///9/fz59fHr5eHayL25r8Pt9vj//f339/b29/f38/H08/Lx8PLy8vLy8vLx8fHx7u7u7+/v7+/w8PHx8vHx8fLy8fHx8fHx8vLy8vLy8vLy8vLy8vLy8vT08ezn4+Dc1tzX0NSkSFVqbHB9k19oc3V9iZGYnqivub7FzNLY3eHm6vD09vf6+/v7/Pz8/Pv6+/r5+Pj29PPu7evq6uno5+jn5+bl5eXl5OTm5+jr7e3o6Onl4OHg2tXWzcbDv7evv9jx+fr8//76+vr5+fz8+/v6+fn6+fr6+Pr5+fj49/n29/j49/f3+OvKqJ+pt7/Aw83X2tre5uzu8PP2+Pr7/P/+/Pv69/Pv6OPf0sW5sq/b8/b3/fr69vf19fb19fPv8/Px8fDy8vLy8vLy8vLy8vLy8vLy8vLy8fHy8vLy8vHx8fHx8fHx8fLy8vLy8vLy8vLy8vLy8vL08vHs5+Pg39fd3dLbvmJPWGBibYFSXGVvd4OOlp2kqLO5wMbN1Nvf5Oju8vT2+Pr7+/z8/Pv6+vj39vTz8vDu7Oro6Obk4uDg397e3d3d3dzc3d3d3N3d4d7f4N3c2NPPycS/uq+y0O/2+ff3/P79+fn4+Pn5+vr4+Pf49/f3+fj3+Pf39vf39fb39/b29vfq49S+qJ6svcHEy9HZ3+Lh6+3x9Pb5+/z+/Pv6+PXw7OTg2crAuK+88Pj0+Pv29/P29fT19PTx7/Lx8fHw8fLz8vLy8vLy8vLz8/Pz8/Pz8/Pz8/Pz8/Py8PDx8fHy8vLy8vLy8vLy8vLy8vLy8vLy8/Lw7Ofk4uDe3uHX4eGLSFdiZm19Uldeb3WAipOdpaqss7q/xc3V2d/j6e3w8vX3+fn6+vr5+Pf29fPx8O3r6eno5eLh3t3b3Nvb2tra2trY19fW1dTU0tjV1tfUz8zJxryzsrHC5fL5+Pf1+Pv8+fn39vb5+Pj59/b29fb29vb29vX19vX19fX09vb19fX07vj56MKkn6m1usDJ0tzd3Obp7fH09/n7/vz6+ffz7eni3NXFvbe31vf49fr59vbv9/b09fT08e/x8fHw8fHx8/Hx8vLy8vLy8vLy8vLy8vLx8fHx8fHw8PHx8fHy8vLy8vLy8vLy8vLy8vLy8vLy8vLx7uzp5uTi5OHj4OX4u0pTXGFqeE9SWmRqcnyGjpifpa21ub7HztLY3ePo6+7x8/X29/f39vTz8vHu7Orn5OHk4NvW0tHPzsnIyMfHx8fHz9DR0dLT09LOz8/MxsPCwL+ysbPK7vv/9/r7/Pz5+Pb5+Pj39/j5+Pf29fX29fb29fX19vb29fX19vX19vX08/X4/Pvt0bShpa23wMfP19zh5Oru8fT3+f78+vj28evm39fPw7m0xO/4+fn5+Pj47/n39vT19fLy8PDw8fHx8fLx8fHx8fHx8fDw8PDx8fHx7u7u7u7u7u7v7+/v7+/w8PLy8vLy8vLy8vLy8vLy8vLy8e7s6uno5erl5urp/eFkUVdbZHBLTllfaHR+hIyVm52krLK4wMjL09fe5Ojr7vHy8/T19PPx8O3r6OXi3tvY1dLPzMjGxMHExMPDwsLCwsLCwsLDxcXFwsbFwL29ubSrrLng9/j8+P////36+Pb3+vr4+Pj5+fj19/b29fb4+Pf39/f39/X19vb19vX29fT68/L6//PZw6OkqbC8xs/V2+Dm6+7x9Pf9/Pr39O/o49zTybyytNX8+fz7+Pf4+PT49vX09fTz8vLx8fHx8fHx8fHx8fDw8PDu7u7t7e3t7Orq6urq6+vs7u7u7u7u7+/y8vLy8vLy8vLy8vLy8vLy8vHu7ezr6uru7Ofw7fbzlEhOUVhiQ0dQXGRtc3h/h46VmqGpsLjAxM3R2N7j5+rt7/Dx8vHv7ezp5+Tg3NjU0cjHxMPAvLm2uLe2trW1tLWysrO1trm6urq8uLS1tKykorfl/vz8+vn9+vj4+/r59/r5+Pf4+Pj29vX09fb19vb29vb29fb29fX19vb29vX18vT2+fn18u/AsqOntcPIx9Ta4ebq7fL1/Pv49vLs5eDX0cK3rLro//n69/X3+Pb39vTy8fLz8fHy8vLx8fHx8fHx8fDw7+/u6ejn5uXk4+Lh4eHh4uLj5Onq6uvs7e7u8vLy8vLy8vLy8vLy8vLy8vLx7u3t7Ozs8fTu8fPt8846RUxRXEhISlpgaG5zeX6BkZGVnqastLvDyNDW29/j5unq6+zr6efm4+Hd2dTQy8jCwLy6uLm5uayrqqmop6ensrKwrq2rqamuramoqKOeoMLr/Pn5+/v4+vn4+fr7+fX5+Pb19fb19PL08/Py9PX19fX09fP08/Pz9PX29vb29e/1+Pfy8fX8682wpa+6vr7N09vi5urv8/v69/Xx6+Pe09C/tKnB9v339fLy9/j0+PPx7+/v8fDw8vLz8/Lx8fHx8fHw7+7u7uTj4uDe3Nra2tra2tvc3d7m5ujp6+zt7vLy8vLy8vLy8vLy8vLy8vLw7+7u7e3t7fP58/H35+74hqC4zu3w+fr19/b06trJvJCNjpeeo6qyu8DIztPY3N/j5OXm5ePh39rY08/KxcC9ubi3ucHN1977+vn49vb19e7n3M6/sKegoJ+en5yVmqn49/j2+fz5+fX29vPz9fTz9fX08/P08vHy8vHx8vLz8/Pz8/Py8vLy8/P09fX29vb69e/v8PP08v/kvqmlrLS5x87X3+Tp7vP8+vfy7ung2dHLt6mq8/3y+vf29fb39vP29PHx8fHw7/Lx8fHx8vLy7vDw8e/q5uPh3tfSzMnHxsbExMTIyc7T1tjc4eTn6uvt7u/v8fDx8vLy8vLy8vLy8fHw8PHx8vLz8/Tz8/X29/T29/j49vj3+fr6+Pn5+fj4586xnpmdo7K6vMPT1tHQ2d/g3+Lh3dnY08m/urm4uMrX6PT5+vz8/Pv6+/r5+vn4+Pj29/br37qlkIqHjbry+vn6/Pz6+fj5+fj4+fn5+Pn39fb19vX19fT09PPz8vLz8/Pz8/T19vb09fX08vLy9fX19vb18+/o6uHCpZymv7/I09jj6Ozv+vn18Ozn3tfOx7enuPT98vj29PT29fTz9PTy8PHw8O/x8fHx8fHy8u7v7+7r5eHe2NTNxsC8ubi5trW3u73Dyc/S2Nzi5enr7e7v7/Hx8fLy8vLy8vLy8vHx8fDx8fLy8fLy8/Pz9vfz9Pf39vb39/j5+Pf4+Pj48PLx6djBp5icq7i/xMTJ19jZ19bX1tDOy8G8uLW4zeby9Pf5+Pj6+fr5+Pn49/j39vf39vf59vDv272UhLDr//j5+Pn5+ff2+Pf19vb39vX18/Lx8vPy8fLy8vHx8fDw8fHx8fHy8/Tx8fHy8fHx8fXz8/Lw7Ojk1tTSvaWkqK62xM7V4eDi8fn49O7q5NvTyL+0ps30/fP39vTz9PTy8fPy8vHx8vLv8fHx8fHx8fHu7Ovp5uDZ087JwLiyq6impqWlqaywt73HytHX3uLm6uzt7+/x8fHy8vLy8vLy8vLx8fHx8fHy8vHw8vHz8/X28/T19/b29vX29/f39vb39/b5/f356tbHnKOtsrG0w9TKys3PzMrHwre2s7TH5fb3+vj29vj5+fb3+Pf39vb29vb3+fj49/n6+ff14NDr//L49vj3+Pf18/b18/Pz8/Ly8PHw8PDx7/Dx8fHx8PDw8PHx8fDx8fDx8PHy8/T09PT18u/r6OHb1sO8vbWqqKeotsPHz9zi5e759/Pt6OLZ0Ma5sarj8/v09/X09PX08vHy8vHw8vLy7/Hx8fLx8fHw7ezo5uDY0MvDu7GnoJmWk5OSk5ecoauyu8LL0tng5Ons7e/v8fHx8vLy8vLy8vLy8fHx8fHx8vLv8PHy8fL09fP09vf29fb29/f29fX29vb7+ff5+vn18Mu3op2msru7wsPGxL69u7avq7fb9/78/vv5+fv7+vf09/f49/f19fX49/r7+Pb19/36+/v6+fv69/f39/f29PP39fPy8vLy8fLx7/Dx8vHy8vHx8fHx8PDx8fLy8PDx8fHx8vT19fT18O3n4NjPxcCyqKKipJyZqbK6xNPV3ubq+ffy7Obf1s3Fs6y18fT59fn39fT09fTy8vHx8PHx8e/x8fLy8fHw8Ozp5OHa0ce/tKufk4qEgH17e3+EipGcpLO6xM3V3OPo6+3v8PLx8fLy8vLy8vLy8vLx8fHx8vLz8PDy8vHy8/Tz9fb29/b29vb29vX19vf49/bz8/X19/f72rWdnKerprm5uLOxtLOtrcLi+//6+f3///77+fn39/j39/j39/b4+Pb3+vv49/b3/fv7//v09/n49/f39/b09vX08/Hy8vHz8vHx8fPz8/Pz8vLy8vLy8/Pz8vLy8PDw7+/v7+3r6ePe1MzAtaqjnpCHhouDgpi3vr/N0dri6fj28erk3dPKw6+oyPf29fX6+PX19fT08fLx8fHy8fHv8fHy8vHx8O/q5+Hc08m7tKScjYB3cm1oaWluc3qFj5qqsb3H0dvi5+vs7/Dy8fHy8vLy8vLy8vLy8vHx8fLy8/Lx8vHy8vPz8/T29vf29/f29vX09fb3+PLw7+/v8vX5//rkv6CSmKWsraqprKyoqMrs//r1/v70+vr7+vn5+vr49/j49/f3+Pr39vn7+ff29/z8+fn6+fX4+Pf4+Pf29Pb28/Lz8/Pz8vDx8fLy8/Lz8/Pz8/Pz8/Pz8/Ly8u/v7+7r6Obi3trPyr6zppqPiIR3b2trb3B3i73CyM7f5O339e/o4trQx7+qotv6+fP2+vf29vT19PHy8vHy8vLx7/Hx8vLx8O/u6ePd1cy+sKaWi31wZmFbV1daXmRsd4aRoKm2ws7X4efq7O/w8vLy8vLy8vLy8vLy8vLx8fLy8/Pz8/Py8vHz8/H09Pb29fb39vX09PT19ffz8/T09PLz8vL8++fFoZGaoqGgoKKdprz69vf8/vv4+fj3+vr6+vn59vb39vb39/b39/b4+fb19fXz9fXz9fj29fX29/f39PT08/Hx8PLy8/Px8PDx8fHx8fHx8fHx8vLx8fHy7+/u7u3r5OHb1M7IuLGmmIx+dG1kYF1YV11fZGKxxsrO3ODt9vTu5+DYzsW8pqDo+/vz9/n49fT19PLx9PLz8vLy8e/x8fLy8fDv7uXh2tHGuKidioBvYllTTEpLTFBZYWx7h5ulssDL1uHn6uzv8PLy8vLy8vLy8vLy8vLy8vHy8vPz9fT18/Hy8vPw8vT09PT29PXz8/Lz9fb4+/n29fb29vXz8fD59MqXfpKUj5GUlrbs+/j4+fr6+Pf29PPz9fb29vX19PX19fX18PP19vb09PP08/T19vf29/Pz8/X29fTy8vHv7u/x8/Pz8vHx8vLy8e7u7+/v7+/v8PDu7+7s7Ovo5N7X0Mi+uKOcj4J1aF5ZSE5NSlBNTWOcv7nEzNfd6/fy7efe2M7Ctqex9/H79/X49/f39/Xz8fX08/Lx8fLy7/Dy8vLx7erh2M/EtaWVh3hrWUtGRkVESkdGS1NhdYKKo6q3xdzk4+7w8vPz8vLy8vLy8vLy8vLy8vLy8vLy8vLy8/Lz9PX08/T09PX09fX4+Pj39/f39ff49/Xz9PT19fHy9vjsun2Ih46CiLnx//z6+vv7+/r69/b19ff3+Pf49/b19vX19fX19vX29vX19/j4+fj39vX39fX19fT08vPx8PHx8fLy7e3u7u3t7Ozp6ejo6Ojp6u3s7e3r6OTg3NnSy8O3p5qPhHNmW1FKSEFBQUU+Ol+ZqLK9yNLa4en28evl3dbMwLWmt/jx+vf2+Pf29vb08vD19PPy8fHy8u/w8vLy8e3o3dXLwbCejX9nX1JJQjw6Ozg4OTxFVGl6jJ6quMHa4uPu8PLz8/Ly8vLy8vLy8vLy8vLy8vLy8vLx8vLx8/Pz9PPy8/P08/P09vb29fb29PT29vb18/L09Pjz8vb8+dmtc4B6eqHu//b5+fn5+vn49/f29fT19fb29fb19PT09PTz8/Tz8/T09Pb29/f29fTz9vTz9PP08vPy8fHw8PLx8e3t7evq6ejn4uHh4OHh4uPl5efn5OLd2tTRyb6zpZWIeXBgUEhEQ0E8Oz47Q26Xnqq1v8nT2uHp9e/q49rTyLyypML58/j29vb19PX08/Hw9PPy8vHx8vLv8vLy8vDr5drQxrimk4FxWE9IQjs2NDk1Njg7P0tdbI2crrnA1uHj7/Dy8/Py8vLy8vLy8vLy8vLy8vLy8vLy8fHy8vHx8vLy8vHx8vHy8fLz8/Lz8/Pz8fL08/Py8/T39PP2+//24YVwa47d+/3/+fj4+Pn29fP39vPz8/Lz8vX08/Pz8/P08PDx8vLz8/Tz8/T09PPy8fXz8vHz8/Lx8vLw7/Hx8PDq6ejk4+De3NjY19bX2NnZ3d3e393a1NHLxLqtoJB/c15RRkJBPjo5PT40SXuPkaauuMLL1dvi6fTv6eHY0Ma6sKLP+vX49Pb19fTz9PTy8PPz8vLx8fLy7/Lz8vHu5+LVzL+wnYl1Zk5IQjw5ODs+OTk7OzxBSVCEoba+xNPi5e7v8fLx8PDw8vLy8vLy8vLy8vLy8vLy8vDx8fDx7/Dw8PDx8PHw8fHx8fLy8fLy8vDx8fHw8fL09/Py9Pj+/vfMdHPL+vz3//j5+Pj49/Px9vbz8vLz8vHz8vPz8vPz8+/w8PHw8fLy8vLz8/Py8fHz8fHy8vLy8vPy8fDw7+7t5ePg3NjUz87KycjIyMnLzM/Q09PRzsjFvLSnmYp7a2BJRD88Ozk7QDk5WXyDjJyisbvFztfd4+v07ujh18/EuK2g3Pv29/P19PTz9fXz8e/z8vLy8fLy8vHy8/Lx7ebe0sa6qZWAbV5HQzw4OT9APzw8PD09PDw9aqG6w8zT5urv8fLz8vHw8PLy8vLy8vLy8vLy8vLy8vLw8PDw8PHw8PHx8fLx8fHx8fHy8PHy8fHx8vHx8fL08/b08vLz9Pb19bCy7fz8+vP6+vn5+Pb08fj28/Px8vLy8vHz8vLz8/Pw8PHx8vLy8vPz8/Pz8/Ly8/Hx8fPz9PP08/Hw7ezo59/d1tHMx8O+tra1tLW2uLm+v8LCwry3s6iekIFzY1ZOQEA/PT4+Ozg/Z3x/ipOdrrS+yNHa4Obt8+3n39bNwrasnef6+PXz9vX09PX08/Lw8vLy8vLy8vLx8vLx7+zj3MzBs6ONeWZXRD45NjtCQj9IR0VDQ0I/Ok6PvMrU2Ovu8fL09PPx8fDy8vLy8vLy8vLy8vLy8vLy8PDw8PDy8vLy8vLy8vLy8vLy8fHy8fLy8PHx8vLx8/T38/Hx7+/z8/ns8PH++fX1+vr4+vj29PL39fPy8/Lz8fLy8fHy8vPz8fHy8vLy8/Px8fHx8fHx8fHy8fLy9PPz8/Lw7erm4t/X08zFvreyrKWko6OjpaeorrCxsrGrpaCTiXpsXlJJRUA8PEI/ODxGbXeBh42aqbC6xM3V3uPo7/Ls5t7UzMG1q5zx+/r18/X19PT09PLx7/Hx8vLy8vLy8fLy8O/q4djJvK6ch3JfUEU8OD1CRERGT1FQTk1MSUU9dcHX3OLt9PHz9PTz8fDw8vLy8vLy8vLy8vLy8vLy8vDw8vLy8vLz8fHx8fLy8vLz8/Ly8/Hx8fLy8vHw8fL08vL08/Lx9fb7+fb8+P/29Pj39/f29vT09fXy8fPz8vPx8PDv8fHy8vPz8vLz8fHx8PDw8PDw8PHx8PDw8/Py8vLw7erl4drXzsi+tq2knZeUk5GRkZOVl52dn6CemJCLfHJkWU9HQ0JDPz89NDZQcXV/iJCao7C+wcrT2uLm6/Hx6+Xd08vAtK2b9vn69PP19PPz8/Pz8fDx8fHy8vLy8fHy8vDv6uHXx7mqmYNuW01IPTlBR0ZJU1NXWllYWVdWOWPF4eHq7/Xy8/X18/Lx8PLy8vLy8vLy8vLy8vLy8vLw8vLy8vPz8/Hx8fLy8vLz8/Pz8vLy8PDy8/Lx8PDx8u3x9vj39vn78PX+9vX6+/f29fT19fTz8vTz8PDx8fPz7+/v7+/x8fHy8vLy8fHx8fDw8PDw8PDw8PDv7/Ly8fDx7+zn4tzX0cW+tKugmI+JgoGAgICChIaLjY6QjYaAemlfU0pEQD9BOz87NkFbb3J3g46apbC5wsbP197k6Ozy8evk3NLJvbGfu/D68/P28/b09PP08/Hw8vLy8vLy8vLy8vHu7Obc1MO1pZB8aVhMSDU9Q0tSVFpZW1xcW1pVUVBLreXs8+vz8/Pz8vLy8vHy8vLy8vLy8vLy8vLy8vLy8fHy8vLy8vHz8/Ly8/Py8u3u7u7v7+7u8fLz8fDx8fLz8/T19fX29/T29fb39vf29fTz8/X09PT29fTy7+/v7/Hx8fHx8fHx7+/v7/Hx8fHy8vLy8vLy8vHx8fLx8fDw7u7r5+Da0cnCs6GWjoV4b25ta2hpbXBydXd5d3VyamVUS0RAOzxAP0U2MURgb3V9iZGcpq22v8bQ1d3j6Ozw8/Dq5NvRyL2wn7zw+vTz9/P29fT09PLw8PLy8vLy8vLy8vLx7uzm3NTBtKSPe2hYTEY4Q0dQWFpeYWNkZGNiXVhWTqXm7vXt8vT08/Py8vLx8vLy8vLy8vLy8vLy8vLy8vHx8vLy8vHx8/Lx8PHx8O/t7e3u7e3t7e/w8e/w8PHz8fP08/T09vbz9fT19fX19PHw8PDy8vLw9fTz8e7u7u3t7e3t7vDw8O/v7+/x8fHx8vLy8vLy8vLx8fHy8fHw8O7t6uPe1cvCt6mXin9zaF9fWldXWFleYmJjZWNhXVVNS0RCQDs4PEE1QlNlcnmCi5Wcp7C3vsfO1dng5uru8vTw6uPa0Me7r5+88Pnz9fb09fT09PPy8PDy8vLy8vLy8vLy8e7s5tvTvrGfjXloWUxFPEpOVl5iY2ZoaWloZmJdW1Ka5/H57vL19PLy8vHy8vLy8vLy8vLy8vLy8vLy8vLx8fLy8vHx8fHw7+/t7ezr6urp6ejo6Ojq6+zt7e7w8vDx8/Ly8/X18/Py8vLy8vLz9PLz9PLz8e/u7Ovp6Ojp6Ojp6uvs7O3u7u7v8fHx8fLy8vLy8vLy8fHx8vHx8PDu6+jf183BuKibh3dsYldOT0lGSUpHS1JSU1NTUU1FQD9BPz5APjk1Q1tyeX2DjZihp7G5wMfP1Nvg5uvu8fT27+ni2c/Guq6evvD59fX28/Tz8/P08/Dv8vLy8vLy8vLy8vHu7OXa0ryvnox4Z1lMQz9QUFtkaGpsbnBvbm1oY2BXjerz9/Dz8/Pz8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8fHy8vLx8fDx7uzq6ufm5ePi4eDf39/f4+bn6evs7/Lv8fLz8/Hz9PT08/Py8vLy9vT08/Py8e/o5ePh4N/f4ODh4+Xl6Ors7e3u7/Hx8vHy8vLy8vLy8vHx8fLx8fDw7Orj29DGua2bjHdmXVVNQ0I+PUBAPj9DSElKSUZCPjs+PT5DQjc4SmVyen2Ejpihq7G6wsjO1tvh5evv8fT2+O7o4dnOxbmtn8Dy+fT19fP19fPy8/Lx8PLy8vLy8vLy8fLx7uvl2dG5rJyLeGdaTkNDUlJcaG1vcnV2dnVzbmhiWn7t8vTw9PT08vPy8vPy8vLy8vLy8vLy8vLy8vLy8vHx8fLx8fDw7u3q5uTj4N7a2djW1dXW1tzd4OPn6e3x8PHy8/P08/T19vP08/Lz8vTy8PDu7Ono393Z19bV1tbX2d7f4uTp6uzt7u/x8vLy8vLy8vLy8vLx8fHy8fHw8Ovm4NbLvq+jjn1nWFBKQTg9PTs3Nzs+PkBCRUZCPzs7PEBAPTk6UXJ2e4CIlJ+mrLa8xMvR197i5unu8vT2+fvu6OHYzcS4rJ/B8/j19vbz9PT08/Py8fDy8vLy8vLy8vHy8e7r5NjPuKybi3hqXFBFRlZVYGtxcnd5e3t6d3JtZV9y8fHx8PT09PLy8vPz8vLy8vLy8vLy8vLy8vLy8vLx8fHx8fDw7+zq5uLf29fW0c/NzMvLzM3Q09fb4OTq7e/x8vTz8/P09fX08/Lz8/P08u/t6OXh3dPRz83Ly8zNztDW2d3g5efr7O3v8vLy8vLy8vLy8vLy8fHx8vHx8PDo5d3QxLakmIJwW05GQDczOEJMTU5ORjw9PD5AQUE/Pjo7NDRFYHN6eYGMlqGnr7m/xMvS2N3j5+ru8vX2+Pr87ujh2M3EuKufwvP49vb28/Pz8/Ly8/Hv8vLy8vLy8vLx8vHu6+TYz7iqnIt5bF9URUhYWWZxdHh6fX9+fXt1b2lhZ/Pz8vH19PT08vLy8fLy8vLy8vLy8vLy8vLy8vLy8fHx8fHw7+/q5uLe2dXQzcPCwL69vr/AxsnO09ng5erw8vLz8vLz8/Py8fLx8PDy8vDs5+Pd19THxcPBvr6/wMXJztTX3OHl6uvt7/Ly8vLy8vLy8vLy8vHx8fLx8fDw6OPZzL+unI56aFRIQDs7QVBRUlFTWFpaTUE3Njo8PDtANDhRbHt/fYSQm6GqsLjDyMzT2d7j6Ovw8vb3+Pn7/O7o4djNxLirnsL19/X39vTz8/Py9PLy7/Ly8vLy8vLy8fLx7uvj1864q5yMem1hVUZJWlxrdHd7gIOFhYSBe3VrY2Dy9fLz8/T08/Lz8vHy8vLy8vLy8vLy8vLy8vLy8vHx8fHx8O/v5+Tg29XPy8m5t7Wzs7S2t8DCyc/W3eLm7/Dz9PLy8vHy8e/v7u/w8O3q5eHc1M/Kvru4trW0tbXBxcrP1Nrg4+rr7e/y8vLy8vLy8vLy8vLx8fHy8fHw8Ojj2Mu7qpaHdGNQRDw8SFdQUVJXWlteX2xUPTQ4PDw6OkJfeXx5g5GSnaWrtb/EyNLW3OHm6u7x8/b4+fn5+/zu5+DXzcO3qp3A8/b09vX08vPz8vPy8vPy8vLy8vLy8vHy8u7o4dbMtqqdjnxuY1hOS1hibnB2gYKEhoaEgXt1cmdf7vXv9fH19PPy8fPy8vLy8vLy8vLy8vLy8vLy8vLv8fPy8fDt6+Te2tPLxL23rqymoqClrLK1u8bL0dbe8uvt7/Hx8fHx8vLx8fPz8fDp5t/X0MfAurOvqKalpamvsrrBydPW1djq7O/w8O/x8fLy8vLy8vLy8vLx8vLy7u3n4NTFsqGPfmZeUEQ3QFFRWF1jZmlsbm1uc2M3PkM9NzdmgX+FjZKaoKewucDHz9TY3ePo6+7y9Pj5+vv9/f7+7ufg18zDt6mdwPP29Pb19PLz8/Lz8vLz8vLy8vLy8vLx8vLu6OHWy7erno5+cGRaUU1bY3ByeIODhoiIhoN9d3RpYO/18PXy9vXz8/L08vHy8vLy8vLy8vLy8vLy8vLy7/Hz8vHw7eri3NXOxL21r6OemZWVm6Gmr7bFyM/V2+br7e/x8fHw8fHw8PDy8fDu5uLa0svCubOoopuYlZaanqqyusPN1dzj6evv8PDv8fHy8vLy8vLy8vLy8fLy8e7s5t3Tw7CfjHxmW09CPk1aW2JobnF0eHp6fHp7WTk2O1+AiYiIk5qfqKuyusLIz9bb3uLo7O/y9ff5+fv8/f7+/u7n39fMw7epncDy9vT29fTy8/Py8/Ly8/Ly8vLy8vLy8vPy7ujh1su3q56Rf3RnXlVPXGVyc3qFhomLiomGf3l1a2Lx9/H28/X09PPz8vLy8vLy8vLy8vLy8vLy8vLy8u/z8/Lx8Ovm3tbPxbuxqaKbk4yKi46VnKexv8XL1d7m6+3v8fHw8PDw7+/v8fDu7OLd1MvCuK+pmpSNi4qLkJWhrLW9yNHe6Onr7vDw8PLy8vLy8vLy8vLz8vHy8vHu7OPbzr+snIl3YlJKPEJXX2Fscnl9gISGh4iMjn43Q3KSkZCSmqSmqrG3vMTL0dbd4eXp7vH09vj6+vv8/f7+///u59/WzMO3qZ3A8vb09vXz8vPz8vPy8vPy8vLy8vLy8vLz8+7o4dbLt62gkoR2a2FaUlxlc3R8h4iLjYyLiIJ8d2xh8fXy9/T29fPz8/Py8vLy8vLy8vLy8vLy8vLy8vLv8vPy8O3n49nQyL2xpp2TiYF7fX+EjZWhrL3Fx8/c5uzu8PHx8PDw8fHx8e/t6+nf2M7Dua6hm46IgX19f4WLmqixucLO2+fp6+/w8fDy8vLy8vLy8vLy8/Lx8fLx7ezi2M29qpeEdWBPSDhFXWJldHuCh4qOkpOYkJmUa42emZecoqWnrra6wcbN09ne4+fs7/L19/n6/Pv8/f7/////7uff1szDtqmdv/L18/b18/Lz8/Lz8vLz8vLy8vLy8vLx8/Lu6OHWy7iuopSGeXFmYFRbY3J1fYiJjI6NjImCfHZrYfH18PXy9vX09PLz8vDy8vLy8vLy8vLy8vLy8vLy8fLz8vDs5t/WzcG0p5mPhX11cXJ0eYONlaG0w8jO2+Xt7/Hx8fDw8PPz8fHv7enn3NXIvLCjl459eHJwcnZ/h5OirLS9ydjl6uzw8fHx8vLy8vLy8vLy8vPy8fHx8e3r4djLuqeVg3NgUUo4TmNobnyEjJGVmp6gpKKfpKWyo5qqrbCvsrzDwczQ1tzh5uvu8fL19/n6+/z9/f7//////+3m39bMw7apnL/y9fP19PPy8/Py8/Ly8/Ly8vLy8vLy8fLy7uji1sy5sKSZioB2bmVXW2NxcnuKiIuNjYuIgnx1a2Hx9vH18/b09PLz8vLw8vLy8vLy8vLy8vLy8vLy8vHy8/Du6+Pd0sa5q5yPg3drZWFgYmhzfo2dq7zJ0d7o7vDy8vHw8PDz8/Py7+zp5tnQwrOlmYuCcWtkYmNmbXSCmau0usbV4uvt8fPy8fLy8vLy8vLy8vLz8vHx8fDs69/WybillIJyX1NHN1Rnb3eCi5SZnqOoq660rKywrK+vsLK3vsHEyczU193i5uvu8fT19/j6+/v8/f7+///////t5t/WzMK2qZy/8vXz9fTz8vPz8vPy8vPy8vLy8vLy8vDx8u7o4tfNu7KonZCGfHRtXF1ibnB6iIeKjIuKhoB6dGth8/fy9vP29fPy8vLx8PLy8vLy8vLy8vLy8vLy8vLx8vPw7unh2s3BsqKThXdsaF9URjw4PEF7nK68ytTh6+/x8vPy8fDw9PPz8u/r6OPUy7usno6AdmtjWlFKRkZJY4amuL/J2Ofs7/L08/Ly8vLy8vLy8vLy8/Lx8fHw7Ore1ci3pJJ/cWBTQzlebHd+ipOdoqetsra9tbq4t8HAvL/BxMfJydDb297i5+vu8fP3+Pn6+/z9/f7+///////+7ebf1svCtqicv/L18/X08/Lz8/Lz8vLz8vLy8vLy8vLw8fHu6eLXzby0qp+TiYF4cmBeYm5veIeGiYqKiYV/eXRrYvT48/fy9vXz8vLy8O/y8vLy8vLy8vLy8vLy8vLy8fLy8O7p4djIu62djX1xZF1WRjMiHB0hU4utwM/a5/Hw8fPz8/Hw8PPz8vHu6uXi0se3ppmJenBmXlNJPjY0NEFvobvGz+Dw7e/z9fTy8vLy8vLy8vLy8vPy8fHx8Ozq3NLHtqORf29mWUM9Z3J/hJKcpqywt73AycS+ysnLzMrHzMzO1djY2+Pm6e3w8/X3+vr7/P3+/v7+/v/////+/u3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8fHx7+vh19HDu7CmnZSKhYBlV2JrcXqFg4eJiIaDfnl0aV309fL49ff18/Ly8/Ly8vLy8vLy8vLy8vLy8vLy8vP08/Lu5tzTxbeoloN1amJeRysXIiUmIzJrvsvc2ebz8/Hx8PDx8fLy8vLw7+zj282+sJ+NfnVrYFJMQjw9PkFAR5vM1Nrm7/Lx8fHx8vHy8vLy8vLy8vLy8vLy8O/s6tvPwrOhkoN5ZlZLSWR2f4qWoqyzusDEyczNz9DQ0dHS1NXX2tzf4+Xq7O/y9ff4+fz8/P39/v7+///////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vHx8e/r4tjRxb2yq6KZkIuIaFZgaW13goKGiIeFgn14c2hc9Pbz+fX39fPy8vPy8vLy8vLy8vLy8vLy8vLy8vLz8/Pw7ebb08O1pZOBc2lgXEctGSMnKSUuYMTT4uHp9fTy8fHw8fHy8vLy8e7s49vLva6di31zaV1RS0M9QEFEQkiXz9vf6/Dz8fHx8PLx8vLy8vLy8vLy8vLy8vDv7Orb0cO0opSHe2lbT05neIKNm6axuMDGys/T1dfY2NjZ2dvc3uDj5ejr7e/y9ff5+vr8/P39/v7+////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLx8fHx6+Pa1cfCubCqo5yXlG5WXGZqdH9+goSDgn96dnBnW/X39Pr19/Xz8vLz8vLy8vLy8vLy8vLy8vLy8vLy8vPz8Ozl2tDAsaKQfnBnX1xIMBwjKy4pKU/L3evs7PTz8vHx8PDx8vLy8vHu6+Layrusm4h6cWdeUEpEQUZGSUZJktTj5fLx8vLx8fHw8vLy8vLy8vLy8vLy8vLw7+zq3dHFtqaXi4FxZFlYanuGkp+rtb3GzNHW29zf4ODg4eHj5Obo6ezu8PLz9fj6+/z8/f3+/v7//////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy7/Hx8ezl3djMyL+4sqynoqF0VFllaHB7e36BgH99eHRwZFr2+PP48/f18/Ly8/Ly8vLy8vLy8vLy8vLy8vLy8vLz8vDs5djOvK+ejHxvZl5bSDEiJC0xLCk/0+bw9e/08/Py8vDw8fLx8vLw7uvh2ce6qpmGeXBnXlBJRUVKTE1ITpHb6uj39PLy8/Lx8fLz8vLy8vLy8vLy8vLy8O/s6t3Rx7monJGGfHFmY2x7h5Ohrbe/yNDV29/h5OXm5ubn6Onr7e7v8fP29/j6+/z9/f7+/v/////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vDx8fDs5uDc0MzHwLu4s6+weVJWY2hud3d6fHx7eXVxbWNa+Pnz9fL39fPy8vPy8vLy8vLy8vLy8vLy8vLy8vLx8vHu6+PXzbqtm4t5b2ZfW0YyJyYvMy8tNdzr8/fw8vPz8fHx8fLy8fLy8O7q4NjGuKeWhnhvZ2FTSkdKUFBQSlOU4+7r9/Xy8vLy8vLz8/Ly8vLy8vLy8vLy8vDv7Orc08i7raGWjoR7c29te4eVoa24wMrS2N7h5Ofp6uvr7Ozu8PHy8/T2+Pn6+/z9/f3/////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLw7/Hw7eni39PRzMnFw8C/wIBPUGBmaG9ydXh4d3VybmpgWPj58vXx9/Xz8vLz8vLy8vLy8vLy8vLy8vLy8vLy8fHx7uni1su4q5uJeW9nYFtHNC8pMTQxNDXk7vL28PLz8/Dx8PHy8/Hy8vDu6d/WxbemlYN5cGlnVk5KT1ZWVVFZm+vx7vT08/Px8vHz8/Py8vLy8vLy8vLy8vLw7+zq39TKv7GnnpWMhYF7bXqHl6GtuMDK0tnf4+bq7e7v8PDx8vT29vf4+fr7+/z9/f7+/////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8PDx8O/q5ODY19LRz87NzM+HTEpaYWNoa29xcXFwbGlmXlb4+vL28ff18/Ly8/Ly8vLy8vLy8vLy8vLy8vLy8vDx8e3o4dXKtqiYiHlvaGNeSDc3LTI1Njk56+/y9PLx8/Ly8PHx8fPx8vLw7ene1sO2pZSDeXFqbVpRT1VdXFxYX6Lw9PLy8fPz8vHy8vL08vLy8vLy8vLy8vLy8O/s6uDWzMK1raWdlZCNhW51hJefq7a+yNHY3uPm6+7w8vPz9PX3+fn6+/z8/P39/v7////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8u/w8fDv6+bi29nY19XV1dXZi0pGV1xeYWlsbm9ubWpnZVtW+Pvz9vL39fPy8vPy8vLy8vLy8vLy8vLy8vLy8vLw8fHt6OHTybWnmIh4b2tjYUg6PDAzNTc+PO7x8/T08/Ly8fDx8fHz8fLy8O3p3tXCtaOTgnhxanBdU1FYYWFfYGKn8fb28O/y8vLy8vLz9PLy8vLy8vLy8vLy8vDv7Orh187FurKooZyal4ptc4GUnamzvMbO1dvi5eru8PLz9PT2+Pn6+/z9/f39/v7/////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLv7+/v7evp6OLi4eLl5+jp0pFTQE1aX2NdXWJue09mZWNaT/r49Pby9vXz8vPz8vLy8vLy8vLy8vLy8vLy8vLy8fHw7Ofg1Mm1qZiJe3JsaWVNOjo5MzU/OTrv6/jz9fTz8/Ly8/Ly8fHy8/Dt593SwrSklYd6c29ucE9UXGRiZGJjpu7w8PPx8vLy8vPz8vHy8vLy8vLy8vLx8fHx8e/t4tzSysG7tLCtpaSlZXKChp6nsbnDzdTd4OTp7vDx8vP3+fr7/Pz9/v///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8e/v7+7r6ejm5eXm6evt7v/56uzz8/Du//bw6sxpX1xfVkz59/T48vb18/Lz8/Ly8vLy8vLy8vLy8vLy8vLy8vHx8Ozn4NTJtamYiX50bW1pSTY+QTUzPj0+8+738vb28/Ty8/Py8vDx8vPw7efd0sK0pJWIe3RxcXNRV19mZGZkZajw8vL08/Py8vPz8/Pw8vLy8vLy8vLy8fHx8vHv7ePd1MzFv7q2rKynqmFvfIaQm6Stt7/J0tzg5uvu8PLz9/j6+/z9/v/////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vHx7+/u7Orp6Ojp6u3v8fLu7Ozx9/jy7f739vnTZFxfWlNI+fb0+PP29fPy8/Py8vLy8vLy8vLy8vLy8vLy8vLx8fDs5+DUybWpmYp/dXBwck45Qkc7NDk9QPfy+fD09fT08/P08/Hw8fLz8O3n3dLAtKSWiX93dXV4VVxiamhpZ2ep8vXy9vT08/Pz9PTx8fLy8vLy8vLy8vHx8vLx7+7k39jRzcjEwL/Ew8FkbHmIkJumr7nBytPW2+Lo6+7x8/b4+vv8/f7/////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLx8fHv7u3s6uvr7O3t7/Hy+PTu7vX49e7x7evsyF5YWlZPRvj29ff19vXz8vPz8vLy8vLy8vLy8vLy8vLy8vLy8fHw7Ofg1Mm1qZmMgXh1cnNVPkBJRDs6PD/48vry8vH08/T09PPy8PHy8/Dt593SwLWllouAe3l5e1heZWpobGhqq/T19Pb18/P09PX08vHy8vLy8vLy8vLx8fLy8fDu5OLd2NPQzs3NzcrLX2dxeoSPnKavtbzG0dbe5ens8PP19/n7/P3+/////////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8vHx8fDu7e3t7e3v7/Hy8/by7u3t7u/v9PPx78hXT0lVTEX49/X39Pb18/Lz8/Ly8vLy8vLy8vLy8vLy8vLy8vHx8Ozn4NTJtKmajYN7d3dzVT4+R0RBQEBB9/H78vHt9fTz8/Pz8vHx8vPw7efd0sG1pZmMg358fX1bYWdsam5paazz9fT29PP08/P08/Lx8vLy8vLy8vLy8fHy8vLw7+bk4N3a2tjY19jd2FpdbXh+i5eirLK5wczS2uHl6e7x8/X4+/z9/v/////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vLy8fHx8O7u7/Dx8vHy9PX28/Hz8/Hx9O3w8fLGUEhJUUpC+Pf09vT29fPy8/Py8vLy8vLy8vLy8vLy8vLy8vLx8fDs5+DUybSpmo2Efnl4e1Y9QEY+OT9FQ/bw+vLy8PX09PPz8vDv8fLz8O3n3dLBtaWZjYWAf3+AW2FnbWtuamqs9Pby9vP09PP09PPx7/Ly8vLy8vLy8vHx8vPy8O/n5eTi4eHi4u7p59thXWFkeYSRnKeusrrEy9Xc4OXq7vHz9/r8/f7/////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLy8vLx8fHx7/Lw8vLy8/T07fDz9/r48+/w9vb3ylFOUE1GP/b29PX09vXz8vPz8vLy8vLy8vLy8vLy8vLy8vLy8fHw7Ofg1Mm1qZqOhn56en5ZP0FFPDc7QUH18Pry9PP18/Tz8/Lw7/Hy8/Dt593SwLSlmY2FgYCAg15iaG1sb2lrrfT18/X09PLz9PTz8O/y8vLy8vLy8vHx8fLz8vHv6Ofo5+fo6uvx6+//2PP59uzy9vf28Ovru8PN1drg5uvv8vb5+/z+/////////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8vLy8vHx8fHx8fHx8fLy8u/09e7p5+jp5O7t7MFMSEJKQz319fP19Pb18/Lz8/Ly8vLy8vLy8vLy8vLy8vLy8vHx8Ozn4NTJtambjoZ+fHx5W0JAR0Q8ODY69PH68fPz8/Pz8/Py7+/x8vPw7efd0sG0pZmNhYGAg4NfZGlubXBqbK719fT19PPy8/P08/Du8vLy8vLy8vLx8fHy8/Lx8Ovr6urq7O3v9PPx/+b59vXt8vPz8erj4bS9yNDW3OPo7vH1+fv8/f7////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vLy8vLy8vLy8fHx8PHx8vHw8fHu6OHd2t7d39+6UEVER0E+9/fz9fH19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+flJARkZHRDYzLvjz8vP09fT09PPz8vLw8fLy8O3n3dPBtaeajoaBgICHXGRqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLw8O3s7e/w8fT29fHw7/Hw8/Lx7uzj0curtb/J0tnf5unv9Pb4+/7+////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLy8vLy8vLy8vDx8fDx8vLy8fHw6uLb1dLV09XVsklBP0Q/PPX28vTy9fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn5SQEZGR0U3My748/Lz9PX09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCAh1xkam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy8PDt7e7w8fLz9fTx8PDx8fPu7Ofj18W/prG7xc/W3OPo7vP2+Pv+/v///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8vLy8vLy8vLw8fHy8fHx8vPx7OPaz8nFx8XIxqhBOzxCPDv09vHz8vX08/Ly8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH5+U0JHRUdGOjQu+PPy8/T19PT08/Py8vDx8vLw7efd08G1p5qOhoGAgIdcZGptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8vDw7u7v8fLz8fTz8vDy8vH17ejg2cq3sp+qtb/K0djg5+3y9fj7/f7////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vLy8vLy8vLy8PDx8fLw8fH07uXbzcO8t7q5uruePTo9Pzw58/bx8/L19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+flNDSEVHRzw0L/jz8fP09vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgICHXGRqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLw8O7v8PLz9PDx8vHz8/Ty8+rh1sy8qaWYo7C7xs7W3+Xr8fX3+/3+////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLy8vLy8vLy8u/w8fHy8vHw8Ojd0MO4sa2vrq+wljg5PEA7OfP28/b09fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn5UQ0hFR0g9NS/48/Hy9Pb09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCAh1xkam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy8fHv8PHz8/Tw8fLy8/Tz8u3g1cm+rZuYkp+st8PL1N7j6fD09/v9/f///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8vLy8vLy8vLv7/Dx8fPy8uri1ca7saqnpaSmpo41ODxAOjr09vP29PX08/Ly8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH5+VERJRkdHPDYw+fPx8vT29PT08/Py8vDx8vLw7efd08G1p5qOhoGAgIdcZGptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8vHx8PDy8/P08vLz8fLy8O3k1ci7saCOjo2aqLS/yNLc4ejv8/f7/f3////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vLy8vLy8vLy7u/y8vLy8fHm3s/AtKulo6CgoaGLNTo9Pzs58/Xy9fP19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+f1RESUdHRzs2MPnz8fL09vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgICHXGRqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLy8vDx8vPz8/P08/Hv7erl2Mq7rqSUhIWJlqSwvMXP2uDn7vP2+v39////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLy8vLy8vLy8u7x8vLy8vHw5NrLu7Goo6Cgn5+gizY7Pj46OPP18fTy9fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn9URElHR0Y5NzD58/Hy9Pb09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCAh1xkam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy8vLw8fLz8vP09fPw7erk4M6+r6Oaint8hZOhrbnCzdff5u7y9vr9/f///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8vLy8vLy8vLw8PDx8vHw7+TbzL6ypZ6dnJmdnYo3Nz09Ojf09vH38vX08/Ly8vHy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH6CUD9LRj8+Ojw28/P19/Xw9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgIdcZGptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8vHx8fLz9PT07vHz8e3k2M3AsqOUjH5xc4GPnqu3wszX3uXt8vb6/f3////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vLy8vLy8vLy8fHx8fLy8O/l3M2/s6egnpyZnZ2JNjY8PTo39Pbx9/L19PPy8vLx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+gVA9SEU/QDw+N/Pz9ff18fT09PPz8vLw8fLy8O3n3dPBtaeajoaBgICHXGRqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLx8fHy8vPz9PDy8u/p39HFuKmajYR2aWyAjZyqt8HM197l7fL2+v39////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLy8vLy8vLy8vHx8fLy8vDv5dvOwLKnoJ6cmZ2ciTU2Oz06N/P28ffy9fTz8vLy8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58foBPOkZDQEI/Qjr08vT39fH09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCAh1xkam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy8fHx8fLy8vLx9PLr49bGu66fkIN7bmJkfYuaqLXAy9be5ezx9vr9/f///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8vLy8vLy8vLy8fHy8vLw7+Tazb+xpp6dnJmdnYk1Njs8OTbz9vH38vX08/Ly8vHy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH6ATThEQ0FFREc99fL09vXx9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgIdcZGptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8vHx8fHx8fHx8/Pw6N7Rv7OomYp9dWldX3uJmKa0v8rV3eTs8fX6/f7////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vLy8vLy8vLy8vHx8vLx8O7k2sy+saSenJyZnZ2JNjY8PDk28/bx9/L19PPy8vLx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+gU85RERDSklLQPby8/b18vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgICHXGRqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLx8fHx8fHx8fLy7+fdzr2xpZWHenNmWl56iJels77J1N3k7PH1+v3+////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLy8vLy8vLy8vHx8fHx8e/t49nMvrCln5ybmJyciTY3PDs5NvP28ffy9fTz8vLy8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58foNRO0dIR05MTUH38vP29fL09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCAh1xkam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy8fHx8fHx8fHw8O7n3c6+saSUhXlxZFldeoiXpbK9ydTc4+vx9fr9/v///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8vLy8vLy8vLx8fDx8fDu7eHXyryuopuamZebm4g1Njw7ODXy9fH38/X08/Ly8vHy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH6FUz9MS0xSUU5C9/Lz9/Xx9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgIdcZGptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8vHx8fHx8fHx7u/s5t3Pv7KklIV4cWZbXXqIl6WyvcjT3OPr8PX6/f7////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vLy8vLy8vLy8fDw8PHw7uze1MW5qp+Yl5iVmZqHNDU7Ozg18vXx9/P19PPy8vLx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+hlVBTk9OVFNOQvfy8/f18fT09PPz8vLw8fLy8O3n3dPBtaeajoaBgICHXGRqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLx8fHx8vLy8uzu6+bdzr+zp5iIe3NnXF97iJilsr3I09zj6/D1+v3+////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLx8vLy8PDv7+3u8O7r6uTg1cu7rJ+TjY2MioySfzM0ODs4N/P59vT09fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58foBZR09NU1dNT0P18/T09fD09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCBh1tjam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy8/Pz8vLy8vLv7ejh1se6sKOTgndvYlVee4mYprO+ydTb5Ovv9vr8/v///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8fHy8vDv7+/r7ezq5+Tf2c7Ds6WVioWDgoKGjH00Njo6ODbz+fb09PX08/Ly8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH6BV0dNTVFVTE9D9fP09PXx9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgYdbY2ptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8vLx8fDw8PDw7uzl3tLEtaycjX1zbV9TW3uImKWzvsnU2+Tr7/b6/P7////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vHx8vLw7+7u6uro5eHd1c7AtaaXiH54dnZ4fYV3MTU6Ojg28vj19PP19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+gVhHTU1RVUxPQ/Xz9PT18fT09PPz8vLw8fLy8O3n3dPBtaeajoaBgIGHW2NqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLx8PDv7ezs6+nn4NfMvK2jkYN2a2VaUFh6iJels77J1Nzl6/D2+vz+////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLx8fLy7+7t7ebm5N/Z08zDs6aXiHxxa2prbXN8czI1Ojs5N/L29PTz9fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn5WRkxNUFRLTkP18/T09fH09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCBh1tjam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy8fDt7Ovq5uXh3tbNwLCflYZ4amFdU0lTeoiXpbO+ydTc5evw9vr8/v///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8fHy8u/u7Ovl4+DZ0srAt6WZiHlsY15cXV5oc243O0A+PTry9fT08/X08/Ly8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH58VUVNTVFUS05C9fP09Pbx9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgYdbY2ptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8vHu7Orn5eLf2dTMwbKhkYd3a15XVEtETnuJmKa0v8rV3eXs8Pf6/P7////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vHx8vLv7evq4uHc08vBtKuai3lrX1RPTlNUYGxsO0BFREM+8/Xz8/P19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+fFVFTU9SVUxOQvXz9fT28vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgIGHW2NqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLv7erm5ODb2M/JwbSjk4J3aV1TTEtEP0t9i5qotb/L1d3m7PD3+vz+////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLx8fLy7+3r6d/d1szCt6idi31rXVJJRUJKS1llaT1ESkpIQfT08/Pz9fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn1VR05OUVJITkL18/X19vL09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCBh1tjam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy7uvo4+Db1dHDvbKllYNzaFxSSURGQD1Lf42cqbbAy9bd5uzx9/r8/v///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8fHy8u/s6une29LIvK+glX5xX1NKRD8/Q0JSYWlBSlFOTET19PLz8/X08/Ly8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH5+VkhQT1FRR05C9fP19fby9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgYdbY2ptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8u3q5OHe19LMurWomop4Zl5VS0I/Qj88SoGOnaq3wczW3ubt8ff6/P7////////////////////////////////t5t/Wy8G0ppu/8vbz9fTz9fX08/Px8fDy8vLy8vLy8vDy8fHx7ejh2tLJv6+fj4BvXEtDQT06Nj06RlxfUUpPTUxO7vb09PH19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+g1ZFT0tGSENMRPDx8fL68vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgIKHWmJpbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vHx8vLy8fDp5+Xg1s/GvbSpmox4ZVdMREM9PTs9PVCEk6CsucTO1t/l7fP3+vz+////////////////////////////////7ebf1svBtKabv/L28/X08/X19PPz8fHw8vLy8vLy8vLv8vHx8O3n4NfNxbinloZ4YlFBPT8/PDxBPEZYXlRNUVJPT+/19PTy9fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58foVWQEpHRkpITkXz8vPy+vD09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCBh1piaW10cXBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLx8fLy8vHw6OXj3NPLwLekmIl7aFhLQ0A/PD05OjpOh5WjrrvG0Njg5u3z9/r8/v///////////////////////////////+3m39bLwbSmm7/y9vP19PP19fTz8/Hx8PLy8vLy8vLy7/Lx8e/s5N7Qx7uvnYt5a15OPz0/QD89SUJIWF9WUFJXU1Hv9fP08vX08/Ly8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH6FUTtCREVPT09H9fT08vfv9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgYdaYmltdHFwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8fHy8vLx8Ofk39fLwresmYx7a1lKQjw7Ozg7OTc4Toyap7K+ydPb4ufu9Pf6/f7////////////////////////////////t5t/Wy8G0ppu/8vbz9fTz9fX08/Px8fDy8vLy8vLy8vHy8/Dv6uLbyr+zpZF/bF5PQDUzNjg4Njk3Pk9XVFNYWVRS7/Xz9PL19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+g043QURIU1RQSPj19PL37/T09PPz8vLw8fLy8O3n3dPBtaeajoaBgIGHWmJpbXNxcG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLx8fLx8O/m4dzTxrquoYx/bV9RR0FAPz48Pjs7PFSQnqu1wczV3OPo7/T4+v3/////////////////////////////////7ebf1svBtKabv/L28/X08/X19PPz8fHw8vLy8vLy8vLx8vPw7eff18W7rZ2JdWNTQzoyNDtCRUZLS1JaW1VTV1dUUvD29PTy9fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58foNNOEVJS1JRTkj49fTy9/D09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCBhllhaG1zcXBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8fHy8fDv5d/Yzb+xo5SCc2FSSEA7PD48Oz48PD9WlaOvucTN1t3l6vD1+Pv9/////////////////////////////////+3m39bLwbSmm7/y9vP19PP19fTz8/Hx8PLy8vLy8vLy8PLz8O3m3NTDt6iZhXBeTzs2MTM7RElLTE9XW1hTVVpWU1Lw9vT08vX08/Ly8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH6DTjxMTUlNS0tF9fT08vjw9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgYZZYWhsc3Fwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vHx8fHv7uTe1cm5qpmKfW5YSEA7ODk4Ojg5Njg5S5yptb3H0Njf5+vx9vn7/f/////////////////////////////////t5t/Wy8G0ppu/8vbz9fTz9fX08/Px8fDy8vLy8vLy8vDz8/Ds5dvRwrWml4FuXE09OjY3PENJTEpQV1pZVlpgV1RT8fb19fP19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+glA/Tk5JSUZIQvLy8/H68vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgIGGWWFobHNxcG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLx8fHx7+7j3NDEs6ORgW9gSj9AQkVJUVleZWt2eYujsLvDzNTc4unt8vb5+/3/////////////////////////////////7ebf1svBtKabv/L28/X08/X19PPz8fHw8vLy8vLy8vLx8/Pw6+TZ0MC1pZWAbVtNPz08PUFLUlVYXGFhXl1fZFlVU/H29fb09fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn9OP05OSElGRUHw8fHx+vX09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCAhllhaGxzcXBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8fHx8O/u4NjOwbGgjn1mV0I5QEdNVF5ob3iAjI+dqLS/x9DX3uXp7fP3+fv9/////////////////////////////////+3m4NbLwbSnmr/w9vPz9fL19fTz8/Hx8PLy8vLy8vLy8vPy8Ovj186+saKQe2lZTEI0Nz5KTFFbX2BkZWVkYV1fVlHw+PPz7vb18/Lz8/Ly8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH6CVD5DRUtORkI8+PTx9PT29PT08/Py8vDx8vLw7efd08G1p5qOhoGAgoZZYGdsc3Jvbq7y9PL29fP08/P08/Dv8vLy8vLy8vLy8vLy8O/s6uLXyryqmYp8ZFJJPUVLVl1mcHmCjZWep7K7xs/V3OPp7fH2+fr8/v/////////////////////////////////t5uDWy8G0p5q/8Pbz8/Xy9fX08/Px8fDy8vLy8vLy8vLz8vDr49fOvrGhkHppWUxGODtBTU9VX19jZmdnaWdjYlxW8/n09fL29fPy8/Py8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+gFQ+RERKTUNCPPj08fT09vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgIGGWWBnbHNxb26u8vTy9vXz9PPz9PPw7/Ly8vLy8vLy8vLy8vDv7Orh1sq7qZiIe2RSSj5JUFxkb3mCi5afqLG5wcvU2d/l6u7x9vn6/P7/////////////////////////////////7ebg1svBtKeav/D28/P18vX19PPz8fHw8vLy8vLy8vLy8/Lw6+PXzbyvno96a1tOQTQ5QlFTWWJiZmlqaWlnZGBbVfD19Pb09vXz8vPz8vLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn5UQEVER0o/Qjz49PH09Pb09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCBhlhgZ2xzcW9urvL08vb18/Tz8/Tz8O/y8vLy8vLy8vLy8vLw7+zq4NTIuKeWh3ljUks/T1dlbXiBi5SfqLC5wsnT2t/j6O3w8/f6+/z+/////////////////////////////////+3m4NbLwbSnmr/w9vPz9fL19fTz8/Hx8PLy8vLy8vLy8vPy8Orj1s25rp2MfGtbUUY2ODxJTVdkXmNoaWtrZ2NcWFPu9PP18/b18/Lz8/Ly8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH59UkBDQURIPkI8+PTx9PT29PT08/Py8vDx8vLw7efd08G1p5qOhoGAgYZYYGdrc3Fvbq7y9PL29fP08/P08/Dv8vLy8vLy8vLy8vLy8O/s6t/Ux7aklIN3Y1FKP1RdbHR/iZOcp6+4wcrQ2d/j5+zv8vT4+vv8/v/////////////////////////////////t5uDWy8G0p5q/8Pbz8/Xy9fX08/Px8fDy8vLy8vLy8vLz8vDq4tbNuKydjHxsX1NMQENJU1BSWltfZGZlZWNgW1ZU7/bz9fP29fPy8/Py8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+flI9QD5DRz5CPPj08fT09vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgIGGWF9ma3Nxb26u8vTy9vXz9PPz9PPw7/Ly8vLy8vLy8vLy8vDv7Ord08S1o5GCdWNQSj5ZYXJ6h5GbpbC4wMnQ1d3k5+vv8fT2+fv8/f7/////////////////////////////////7ebg1svBtKeav/D28/P18vX19PPz8fHw8vLy8vLy8vLy8/Lw6uLWzLeqnI19bmJWS0RPWGRfXWJbXmBhYGFhX1dRT+739PTz9vXz8vPz8vLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn5TPD4+Qkc+Qjz49PH09Pb09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCBhlhfZmtycW9urvL08vb18/Tz8/Tz8O/y8vLy8vLy8vLy8vLw7+zq3NDEtKKRg3VlUUs+XmZ4f42Xoau2vsbO1tvi6Ovu8fP3+Pr7/P3+/v///////////////////////////////+3m4NbLwbSnmr/w9vPz9fL19fTz8/Hx8PLy8vLy8vLy8vPy8Ori1cy4q52OfnBkWFFHT1lnanF8dndzbmljXllZT03v+fT08/b18/Lz8/Ly8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH5/UjxAQERJP0I8+PTx9PT29PT08/Py8vDx8vLw7efd08G1p5qOhoGAgYVYX2ZrcnFvbq7y9PL29fP08/P08/Dv8vLy8vLy8vLy8vLy8O/s6tzQxLShkoJ2Z1JNP2Rsf4aTnaiyvMTM1dzh5+zv8vT1+fn6/P3+/v7////////////////////////////////t5uDWy8G0p5q/8Pbz8/Xy9fX08/Px8fDy8vLy8vLy8vLz8vDq4tXLt6udjn9xZVtQSVVhbm5ye36ChIOAfHVwZFhT9Pvz8fL29fPy8/Py8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+gFM8QUJITEFCPPj08fT09vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgICFWF9ma3Jwb26u8vTy9vXz9PPz9PPw7/Ly8vLy8vLy8vLy8vDv7Orc0MO0opKDdmhUTkFncIOLm6WvucTM1Nzh5evv8vT19/r6+/z9/v7+////////////////////////////////7ebf1svBs6Wav/D28/X08vTz8vHw8PDu8vLy8vLy8vLw8fHt5+HVy7eqnZGAdWheW1FWXWpudX6DhIWEhYN+eHVqYfH28ff09PX09fX08vHx8fDw8PDw8PLy8vLy8vLy7vHv7Obf0smzqZuPhH57e4JMN0REQEZGQz368/Hz9PT09PTz8vLv7/Ly8u/t59zTv7Sjl42Efn19hFdgZ2txbm1trvLy8fX09fX19PX08/Lw8PDw8PDw8PPy8/Px8O3r28/Cs6GShHduXlJMbHuFkJ2qtr7I0Njf5urv8/b4+fn7+/z9/v///////////////////////////////////+3m39bLwbOlmb7y9fP19PP19PPx8fHx7/Hx8fHx8fHx8PPy8Ori1sy5rZ+Sg3drYltSWF9tcHiChIaGhoaFf3l4bGLy9vH28/X09fb29vLw8vHx8PDw8PHx8fHx8fHx8fDy8e3n39TJtaudkYd/e3yBSzdEREFHR0M9+fLx8/Pz9vT08/Py8O/y8vLx7ujc1MC1ppiNhICAfoVYYGdrcW5sbK3y8vL19Pb19fX19fLx8fHx8fHx8fHy8vHx8e7r6tvQw7SklYh7bl9TTm19h5SgrbnBy9Pb4uns8fX4+fr7+/z8/f7////////////////////////////////////t5t/Wy8GzpZm98fXy9fTz9fPz8fPx8fDz8/Pz8/Pz8/Hy8u/p4dbMuK6hlIZ5bmRcU1phcHR8hoaIiYmJh4F7em5k8/bx9vP09PT19PTx7/Tz8/Ly8vLy8/Pz8/Pz8/Px8vLu6ODTyrasnpKHf3x9gUs3Q0NBR0hCPPj08PPz9vb19PPz8u/v8vPy8e3n3tTBtqeajoaBgH+FWGBna3FvbGut8vPy9PT09PP09PPw7/Pz8/Pz8/Pz8/Pz8/Lx7uzb0cO1ppeJfm9hVlFwgIuYpbK9xs/Y3+bt8PX4+vv8/Pz8/f7+////////////////////////////////////7ebf1svBs6WZv/H38/X08/Xz8/Pz8vHw8/Pz8/Pz8/Px8vLv6uHWzbquoZWFem9jXVRbY3J2foeIioyMi4iDfXxvZfP38ff08fLz8vPy8O708/Py8vLz8/Pz8/Pz8/Pz8fLx7ujg08m2rJ2Rhn59fIJMN0NDQEdIQzz49PHz9fb19PPy8vHw7/Ly8vHt593Uw7emmo+GgH9/hlhgZ2txb25srfL08vX18vLy8vPw7+7z8/Pz8/Pz8/Tz8/Py8e/t3dHFtqWXin5wY1lUcoKOnKm2wcrT3OPq8PP3+/z9/f39/f7+/////////////////////////////////////+3m39bLwbOlmsDz9/X29vX29vT09PLy8PHx8fHx8fHx8fPy8Ori1s27rqKThXhtY15VXGRzdn6HiYyOjo2KhH98b2Xz9/H39fPy8/Tz8vDu8/Ly8fHx8fLx8fHx8fHx8fHy8e3n4NTJtqydkod/fX2CTDdEQ0BGRkQ++/Tx9fX29vX19fXz8fDy8vLx7ujc08G1p5qOhoGAfoVYYGdrcW5ubq709PP39fTz8/T08/Du8vLy8vLy8vLy8vHx8e7r6d3SxrWml4t/cmVaVXSEkJ6ruMTM1t7m7fL1+fz9/f39/v7+///////////////////////////////////////t5t/Wy8GzpZzA8/f19fX09/f19PXy8vLv7+/v7+/v7+/w8O3o39TKuK6gk4N3a2JdVVxkc3d+h4uOkI+NioWAfG9k8/bx9vT09fT19fXx7/Ly8fHw8fHx7+/v7+/v7+/v8O/s5t3RyLWqnZGHf3x9gkw4RERARkZFPvr08fT09/f39fX18/Lw7/Dv7url29G/tKWYjYSAgH2EV2Bna3Fub26u9PTz9vT39vb19fTx8PHx8fHx8fHx7+/v8O7t6+nc0MK0pJaKfnFkWlV1hpKfrbrFztfg5+7z9vr9/v7+/v//////////////////////////////////////////7ebf1svBs6Wcv/L38/Tz8vb08vLx8e7u6+vr6+vr6+vp6ujm4dnNxLOonI6Ac2hdXFRbZHR4gImMj5CPjYqGgX1wZPL17/Xy9PT09PTz8u/s6+vq6urr6+vr6+vr6+vr5+jo5N7Wy8GuppiLgnt4eX9KN0VFQkdHRD768/Hz9PX09PLy8vDw7efo6ufl39TKua+gk4mAe3p7gldgZ2twbW5urvPz8fT09fb09PTy8e7r6+vr6+vr6+vr6enp6OXj1cq8r56QhHlvYVdUdoeToK67x8/Z4enw9Pf7/v///////////////////////////////////////////////+3m39bLwbOlm8Dx9vLy8vDy8O7t7ezp6eDg4ODg4ODg4OPh39rSxr2to5aJem9lWltTW2V0eYGKjI+Rj4yKhoJ+cWTy9O7z8PLy8vLz8fDt4uLh4eHh4eHg4ODg4ODg4ODh4d7Xz8S5qp+Shn12dHV9STZFRkNISEU9+fLw8fPz8PDu7u7s7Ovh4eHg3tjMw7OomoyCenZ1eYFWYGhrcG1vba3y8u/z8vPz8fHx8O/s4eHh4eHh4eHh4eDh4d7c2s7CtaeZi391bV9VU3aIlaGvvMfQ2eLp8PX4/P/////////////////////////////////////////////////s5t/WysCzppfA8vj08PPx+PPu6OLb19PPz8/Pz8/Pz9DQzs3IwLSumpGGeXBmXFZOTVpldHeBiYqNj4+Oi4V/d3Bj+fP48/P29fXz8Ojf19LQz8/Q0NDPzs7Ozs7Ozs7Qz87LxbyvqJiOg3lxbGpsalM8P0VESUtGQPnz9fT08/f28u7p4NjR0tDPzsrDuLCil4uAdnBtbG5zXV1maG90bnCy9fny+PD39fTx6+LY09PT0tLS0tLSz8/Oz87LyMa3rqKWjH50bFxUTkp6h5aesLzH0Nri6e/2+Pz+////////////////////////////////////////////////7Obg18vBtaeZwPL38e7w7uzo4dnQysTBvb29vb29vb2+vby6tq6jm42FeG9kW1NNSklaZnN4foiKjY+PjouFf3lzZPjy9/Hw8e7q5uDWzMS/vr29vb69vbu7u7u7u7u7vb26ubSrn5iKg3dtZmFiZGZSPD9FRElLRD/38fLx7+zu6+Xg2c7Evb++vby5saeflYp+dGtlY2Robl1fampwdW5vsPP28Pfv7+3o4trRxr+/vr69vb29vr29u7y8ube1qaGUiH5zaWFWUEpHe4aXoLC8x9Da4+nv9vj8/v///////////////////////////////////////////////+3n4NfMwrapmsDw9u/r6+ff2dDHvbKsqKampqampqamp6ampaCYjod6c2hfV1BKRUZHWmd0eH6Hi42Pj46MhoB6dGb28PXu6+nl3tbMwbatqKelpaampqWmpqampqampqalpaSeloyFd3FmX1hUVVhfTjw/RkRHSUVB9vP18uvn497VzMK4raaop6elpJ2Ti4B2bWNdWFZYX2RfYWxscnRxc6/t8uzy6eXh2tHHvLGppaSko6Ojo6SnpqampqWinpSMgnVsY1tUTUhGQnuHmKCwvMjQ2+Pp7/b4/P7////////////////////////////////////////////////t5+DXzMO3qpzC7/Tr5OHdzMa9saaelZCPj4+Pj4+Pj4+Pko+Mg3p1Z2JaUkxHQz9DR1pmdXl/iIuOkJCPjIeBfHVq8/Dx6OTd1s3CuKufmpGQj4+PkI+Pj4+Pj4+Pj4+Pj4+OioJ5dGVgV1FNS01QVkw9QEdFR0lFRPHx8uzj3NHLwberoZeQj5GRkY6Jf3htZFxVUE5NUFVbX2NtbnN1c3ev5+vl6N7X0ci9saeclZCQj4+Ojo+PkpKQkJCOjIp9d29jXVVOSkdBQT58h5qhsb3I0dvk6vD2+Pz+////////////////////////////////////////////////7Obg18zEuKyfwe3u5dnTzLevpZqOhX55eHh4eHh4eHh3d3l4dW1mYlhTTUhFQT49QkdcaHR5gImNj5GRkI2Ignt3b/Hs697XysK3qZ6SiYJ7enh4eXl5eHh4eHh4eHh4eXl4d3FsZF5XUUtHRUNGSE9JP0JJR0hLQ0Tn5+be08u9t6uekYd/eXl4eHh2cWhjXFZOSUZFRkdMUmFlb3B1d3V6rd/h29rQxb2xpJqNhH97enp5eXl5enl4eHh4d3V0aWRdVU9LRUNDPT47f4mbobK/ytLc5Ovw9vj8/v///////////////////////////////////////////////+3n4NfNxbquob3k5djKv7SinJGFenBoZWRkZGRkZGRkYWNkZGFbVVFLSURBPj07OkBIXmp2e4KKjpGSkpGOiYR9eW/p4d7MxLiwoZKGfHNuZmVkZGVlZWRkZGRkZGRkZGRlZWNfWVJPSkVAPz4+P0NGR0BFTUpKTEdF29jUysC3q6KVh3xyamZkY2RkY11YU01HQ0A/Pj9BRktkaHN1eHt1e6fS08vIvrKpnI2Cd29raGhnZ2dnZ2dlZGRkY2NhYFVSTUlEQD08QDo9OoGKnqO1wcvU3eXr8fb4/P7////////////////////////////////////////////////u6OHZz8e8sKO62dTHtKebjYZ7cWZfWVVTU1NTU1NTU1JTVFNSTklHQ0E+PTw7Ojk/SWJueX6Ei5CSk5ORj4qFfnxx4dTLt6+jm4x9cWhhXVVUU1NTVFRTVVVVVVVVVVVUVFZVUUxIRkA+PDw7OzxAQkhDR1BMS01OR87Fv7SrpZaMgHJoYFtYU1NVVVNQTEhEPzw8PDs8Pj5FaG16e32Aen6jxMG3s6idlIV4bGRfW1dWVlVVVVVVVlVVU1RTUlBKRkRBPjw6OT85PDmFjaGmt8PN1d7m6/H2+Pz+////////////////////////////////////////////////7+ni2tDIvrKittLKuaaXi3p1bGJZUk1LSUlJSUlJSUlHR0lKR0RBPj8+PT08PDw6P0pkb3x/hIiQk5STkpCLhoB9cNvLvqqgkoh5bGFZU1BKSUhISElISEpKSkpKSkpKSEpKSUhDQT0/PDs8PDs8QEBHRUlRTkxOTkbDta2jnJeEem5hWFJOTkZISUpKSENAQDw6Ojo7PD46Q2pxf3+Bg4CDoby1qaOYiYBzZVxXUk9HR0ZGRUZGRkxKSUpKSUhHQ0I/Pjw7Ojo8OTw6h4+kqbjEztbf5uvx9vj8/v///////////////////////////////////////////////+/q5d7Ty8G2p7bEu6CPg3dmYFZPSUZDQUNDQ0NDQ0NDQkFBQEBAQEA5ODs+Pjw/QjtPbGx7iIqNkpWXlpWTjol/gnC9ubKal310Z1xTSkRBQUBAPz9AQEE/Pz8+Pj4+Pj4+Pj49PTw8Ozo6Ozs6PEA+UUdFTVFYSkVUqLOgmYB7cmpfVkxGQT5DQ0JBQUA/Pzs7Ozs7Ozs7QD9/d39+hYmDjZahrKSQiHVuY1lPSkNAQkJCQkJCQkJCQkJCQkJCQj08Ozs7PD09PEE7NJCUna29xdDZ4Oft8vf5/P7+/v/////////////////////////////////////////////v6+bf1c7EuayyuKyRfXVuVE5HQT89Ojk6Ojo5ODg3Nzo6OTg4ODg4Ozo5OTs8PTxCVnNygIyNjpOWl5eWlI+Kg4h1uK6hh35rY1hQSUI8Ojw8PDw8PDw8PDw8Ozs8PDw7Ozs7Ojo6Ojw8PT9APz07OU5JR1FVV1VYXqKjjolzcllVTUVAPDk2OTk5OTk5OTk9PT09PT4+PkI6gn2DiIyNhI6Qj5WOfXBgWlBIQj87OTk5OTk5OTk5OTk5OTk5OTk9PTw8PDs7O0FEPzWcnai1wMfR2+Lo7vL3+fz+/v7/////////////////////////////////////////////8Ozn4djRyL23rKKXgm9iVk5KRUFAPTs6PT09PT4+Pj48PDw8PD0+Pj1AQD45Nzk7O1d4eIGMi4yTlZeWlpSQi4CHeKqfkHdqWFBKRkRBPj09PT09PT09PT49PTw8PT0+PT09PT09PT0+QUE8Ozs7PTNRVU5XYGJqSk2Jj314ZmJQTklFQkA+PT09PT08PDw8PDw8PDw8PD04N4qLiI+TmJOZkoaCfmtcV1FLRkRBPzw8PDw8PDw8PD09PT09PT09PD09Pj4+Pj4+QT03oqexvsTL1N3j6e/z+Pr8/v7+//////////////////////////////////////////////Lt6ePa1MvBvqyXhHRnXVJCPzs5ODo5ODs6Ojo6Ojo5PDw7Ozs7OzxFQD1AQT44NS5Oc3mDiI2SkZSVlZWTj4qFinuViHtnXEpEPz49PDw8Pj4+PT0+Pj49PTw8PD09Pj09PT09PT4+Pj07Oj06ODkwRldZbHNUPVNTf4Bwa1xTQD89Ozs5Ojo7Ozw8PDw8PTQ1NTU0NDQ0Mj2Fj5OXmJykpZN9cmxeUkNAPTs8PT08Ojo6Ojo6Ojo7Ozs7Ozs7OzY2NjU0NDQ1NjY3PpyptLzIztff5erw9Pj6/f7//v7////////////////////////////////////////////07+vl3dfPxauvr6SXjYV6fHdvaWRhXVtaWFZVU1JPTkhGREE/PDs6NjQ8S1VZXmRsbnR1goeLio+Sk5OSkY2IgIF0fXRqYVdVUExJR0RCQkFAPj09PkBBPj49PT09Pj48PDw8PD0+Pz9DREhJRUhSZmtwW0pKSEdENkxGPkBCPkJCQkRFSElKSkxOUFJUV1hkZ21zeX+EiJCMm5acn6KllZudnZ2XjIGDf3p1dHFubGlpaWlpaWlpaWlpaWlpaWltb3J1eX6Dh4yXnpqsq7fGzNLb4ebr8PT5+/3+//7+////////////////////////////////////////////9fHt5+Db1Mq3u7WjmZiRhoN/eXJvbGlnZmNgXl1bWFVUU1BMSUZEQkRBQD8+Rl10bXF3eYaLj4+PkZKRkZCMh4eHfHNsZWFYXllTUU5KSUlJSUdGRkdJSUhISEhHR0dHRENDREVGR0hHSUhKUlNXYnVXTEhHT1FTV0VNSENJTkhHSEpKTU5QUVRXWlxeYWRmaW1zeH2Ch4uVmpmcp6iqq6eop6ajnZWSiYaBgH58enh2dnZ2dnZ2dnV1dXV1dXV1eHp7fX+DiY2NlqKmqK67xtHX3uTo7fL1+fv9///+/v////////////////////////////////////////////by7+rk4NnQy8e5qaaqoI+Tj4qEgX15d3d0cXBvbWpoYWBdWldVU1JRTkpHRkVHS1l0jY2OhouMj5CRkI+OioaCgn9xcmtsY2FdWVdUUU9QTk5NTU1NTk5NTk5OTUxLSkpKSkpLTU9QT1NVXm1oU0RNR05ZWVVVVldJT1FTVVlLWltcXFxdX2FkZ2psbW9ydXd7gYWJjpOXnaKora6xs7exsLCtqqWfnJ2ZlZGPjYqHhoaGhoaGhoaGhoaGhoaGhoKEh4mLj5SYl6GssbO5xtDW2+Ln6+/z9/n7/v///v7////////////////////////////////////////////28vDs5uPd1dPOwLGus6+km5iUkY+Lh4SCf3x5eHVxbmxraGRgXVtaW1taVlRWVFFTXGFje5CblJCSkpGQj4uGgoGEdHdsbWFrZ2JgXVlVVlVWV1dXV1ZVVFVVVVRTUVBUVFRUVVdZWm5xZVFKT1NWUVhYWVpZWVdkVVZZXWBnWGBhY2VkZmlsbHB0dnh7f4KFiY6TlpugpKelrbWzvbu9uru3s6+tqaWmop6cmpiTkZGRkZGRkZGRkpKSkpKSkpKSlZiZmp2hpaWsuLnCxNLa2d7k6u3w9fn6+/7////+////////////////////////////////////////////+fby7+zn4NzVz8jCvrmyrammop+bmJWTkY+Ni4iFgoB8end0cW5raGdlY2FhYF5dYV1eX2RpcIOVqKyfmZOHgYV/eXZzbmloaWZiX11dXFpcW1tbW1xeX1xcWVZZX2BeY2JqdHZrWVBSUVFSVVZXV1pbXFxcXF1eX2FjZWZoamxub3FzdXd5en+BhIeJjI6QlpicoKSorK+1uLy/wsPExcXEwsC9uri3sbCuq6ilpKOioqKioqKioqKioqKioqKio6Skpqirrq+1uL3CyM/U2ODj6O3x9fj6+/z9//////////////////////////////////////////////////j28/Hu6uTg3NfRzMjEvrq1s6+rqKWioZ+dm5iWk5COiYeEgH16d3RzcW5tbGtpaGlmZ2VlYmFsbHt+eoCKmqqjmY6IhYF9enVzcG9tbGtraGhqbG1tbGxtcXV3en97dmtiV1VXVVdZW1pZWVtcXFtcXFxcXWBjZmprbnBxc3V3eXt9f4GDhYeLjZCTlpianKKlqa2wtLi6vsHFyMrLzM3NzMvJxsPBwL28ure0srGwsLCwsLCwsLCwsLCwsLCwsLCxsbO1t7q7v8LGy9DW297k5+vv8/b4+vv8/v/////////////////////////////////////////////////59/Tz8e3p5eDc19PQzcjEwL67t7Wyr62sqqilo6Cdm5eVkY6Lh4SBf317eXd2dHNwb3FxcG1pbWx0dnVzc36Ngnt1d3+Fh4iSkJCRkIyLjo6Ni4mFf3dycG5nYV9hYl9jXVteX15cXFxcW1xdXl5eX19hYmVpbXB0dnh6fH6AgoWHiYuOkJKUmJqdoKOmqKqvsbS4u7/CxMfJzdDR09TV1NTS0M7MysjHxsTCwL69vb29vb29vb29vb29vb29vb28vb2/wcPFxsnMz9PX2+Di6ezv8vX3+fr8/f7/////////////////////////////////////////////////+fj29fPw7Orj4NvY1tPPzMnHxMG/vLq4trSysK6rqKajoZ6al5OQjouJhoSCgH59e3p6eHh3dHNwcW5sbWlpb3dzb3F2eXp6b21ucW9qaW1sbGxubmxmYmlraWdpa21qZGNiZGNdWFZZWVpbXV9hYWRmam5xdHh6fX+ChIaIi42QkpWXmZyfoaSmqa2vsrS2ubu+wcTHyszP0tXX2Nna29ra2djW1NLRzs7My8nIyMfGxsbGxsbGxsbGxsbGxsbGxsfHyMrMzc7S1Nfa3eHl5+3v8vT2+Pr7/f3+//////////////////////////////////////////////////r5+Pb08u/t6ufj4N3b2NXT0c/My8jGxMHAvry6t7SysK6qp6SgnZuYlpOQjoyKiIiGg4GAf357dnRwbG9va2pqamloaWpqa21rbG9tZ2ZpcG5sa2toZGFaXmJmaGloZGNfXVpWVFNUXF1eYGNmaGltb3N3e36Bg4iKjI+RlJaYnJ6ho6apq62wsra5u77AwsXHyczO0dPV2dvd3+Dh4uLi4uHg3t3b29jX1tXU09PT0dHR0dHR0dHR0dHR0dHR0dLS09TV1tjY293f4uXo6+3w8fT29/n7/P3+/v/////////////////////////////////////////////////7+vn49vPx8O7s6ebk4d/d2tnX1tTS0M7MysjGxMK/vbm3tLGuq6imoqCdm5iWlJORj4yMi4mKhH6Cgn5/fnl0a2tqZmNjZGVlY2NkYl5cXmZjYV9eXVtZVldYWlxfYWJaWlpcXV1eX2VmaGpsbnFzeXp9f4KGio2Rk5WYmp2goqaoq66ws7W3ury/wsTHycvP0dPV19nb3d/h4+Tk5ebn5ubl5eTj4uHg397d3dzc3Nra2tra2tra2tra2tra2trb3Nzd3t/g4OHi5efp6+7x8vT29/j6/P3+/v7/////////////////////////////////////////////////+/v7+ff29PTw7+zq6Obl5OHf3t3c2tjW1dPRz83LyMbDwb67uLWzsa2rqKWjoZ+em5mUlpKNjoiNjYqEgoGAf3Z2c25ramppaWdmZWRiYWFgYF9fX2BgYF9gYWJhYGBfZGRkZmdqbG5wcXN1d3l8foSGiIuNkZWXmpyfoqWnqqyxs7W4ur2/wcTGyczOz9LT19nb3N7f4ePl5ujo6enq6+rq6unp6Ofm5uXl5OPj4+Pi4uLi4uLi4uLi4uLi4uLi4uPj5OXl5ubn6Orr7e/x8/X3+Pn6+/z+//////////////////////////////////////////////////////z8+/r5+Pf28/Lw7u3s6urm5eTj4uHe3Nzb2dfV09DOzMrHxcLAvbu4trOwrqyqqKainaGdmJuWkY6Mi4iFgoB/f316eHh1cXBvbWtra2poampramppaWhtbWtsbW1ub3FxcXR1eHl5eXp9f4GEh4mLjpKVmJqcnqSmqayvsrW3u73AwsTHycvO0NPV19nb3N7g4uPk5efp7O3u7+/v8PDw8PDw7+7u7ezr6+rp6enp6enp6enp6enp6enp6enp6enp6urr6+zs7u/w8fL09vf4+fr7+/v9/v/////////////////////////////////////////////////////8+/v6+vn4+Pb29fTy8fDv6+vq6ejn5ubj4uHf3tza2NbU0c7MycfFwb+8ube0sa+wrqupp6WioJ2bmJaUkY6MiomGhIOBfn17enl4d3Z2dXR0dHNzdHR0dHR0dXZ3d3h6e3x9fX+BgoOFh4mLjZCRmJqdoKKlqKqsrrG0t7q9v8PFyMrNz9LU19ja3d/h4uLl5ufo6uvs7O/w8fPz8/Py9fT09PPy8vLx8fDw8PDv7/Dw8PHx8fHx8PDw8PDw8PDw8PDx8fLy8vPz9PX2+Pj5+/v7/Pz9/f3//////////////////////////////////////////////////////Pz7+/r5+fn4+Pf29PPy8vDw7+7t7Ovr6ejn5uTj4N/c2tjV09DOzMvJxsPBvru5trSxr62rqKelo6GenJqXlZSSkI6MioiHhISDgoGAgH9/fn5+fn5+f3+AgIGCg4ODhIWGh4eJi4yPkJOVl5mbnZ+hpKaprK+xtri7vsDDxsjKzM/R1NbZ297f4ePl5+jo6uvs7e7w8PHy8vT19vb19fb29vb19fX19fX19fT09PT09PT09PT19fT09PT09PT09PX19fb29/f19vf3+fn6+/v8/Pz9/f3+//////////////////////////////////////////////////////38/Pv7+vr6+vr5+Pf39vb19PTz8vHw8O/u7ezr6efl4+Hf3dvY1tTS0M3LyMbDwb68uri2tLGwrauopqSin52cm5mXlpSSkI6OjYyLioqJiYmIiIiIiYmKiouLjI2Njo6PkJGSk5WXmZqdn6CipKapqq2wsrW4ur7AwsXIys3P0tTX2dvd4OLk5efp6+3u7u/w8PLz9PX19fb3+Pn5+Pj5+fn4+Pj4+Pn5+fn5+Pj4+Pj5+fn5+fn5+fn5+fn5+fn5+fr6+vv7+fr6+/v8/Pz8/f39/f7+/v/////////////////////////////////////////////////////9/fz8/Pv7+/v7+vr5+fn49/f29fTz8/Py8fDv7u3r6efm4+Hg3tza1tTS0M7LycfFxMG/vry5uLSysK2sqqelpKOhn56dm5mYl5aVlJOTkpOTkpKSkpOTkpKSk5SVlZaYmZqbm52foKCipKanqautsrO2ubu9wMLDxcjKzM/R09ja3N7g4uXm6Onr7e7w8fHy8vP09fb29/j4+fr6+/r6+vr6+vv7+/v7+/v6+vr6+vz8/Pz9/f39/f39/f39/f37+/v8/Pz8/Pz8/f39/f7+/v7+/v7//////////////////////////////////////////////////////////f39/Pz8+/v7+/v6+vr6+vn4+Pf29vX19PPy8fHv7ezr6efl5OPg393b2dfV09DPy8nHxcTCv768uri2tbOwr62sqqmopqWjoqGgoJ6enZydnZycnJydnZycnZ2en6CgoqOkpaWnqaqqq62vsbK0trm6vb/Bw8bIy83P0dPW2Nrd3uHj5Obo6uvs7e/x8vLz9PX19vf3+Pj5+fr6+/v7+/v7+/v8/Pz8/Pz8/Pz8/Pz+/v7+/v////7+/v7+/v7+/f39/f7+/v7+/v7+/v7+/v7+//////////////////////////////////////////////////////////////39/fz8/Pz8+/v7+/r6+vr6+vr5+Pj39/b19PT08vHv7u3r6unn5uTi4N7c2tjW1dHPzcvKyMXEwcC+vLu5t7WzsrCvrq2sqqmpqKempaSkpKSkpKSkpKSkpaWmp6ioqamqq6ytrrCxsrO1t7i6vL6/wcPGx8nMzdHT1dfZ293f4uPl5+nq7O7u7/Dy8/T19ff3+Pj5+fn6+fr6+vr7+/v7+/v8/Pz8/P39/v7+/v7+/v7+/v///////////////////////////v7+/v7+/v7////////////////////////////////////////////////////////////////9/fz8/Pz8/Pv7+/v7+vr6+vr5+fj49/f39vb19fTz8fHv7uzs6+no5ePh397c2tjX1dPR0M7MysbFw8HAv727uri3trW0s7KxsK+uraysq6yrq6urq6usq6ysra6vr7CwsbKztLW3uLm6vL6/wMLExsjKzM7P0tPV19nb3d7h4uXm6Orr7e/w8PHy9PX19vb4+Pj5+fn6+vr6+vr6+vv7/Pz8/Pz8/f39/f7+/v7+//7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////Pz8/Pz8/Pz8/Pz7+/v7+vj4+Pf39vb29/b19fX08vHx7+7t7Ovq6Ojn5ePi4N7d29rY1tTT0c/Ny8nIx8XDwsHAv769vLu6ubi4t7a1tLS0s7Ozs7OztLKys7O0tba2uLm6u7u9v8C/wMLExcbIysvMz9DS1NbY2tvd3+Hj5ebm5+nq7O3v8PDx8vP09fX29/f3+Pj4+Pj6+vr6+vr7+/39/f39/f39/Pz8/P39/f3+/v7+/v///////////////////////v7//////////////////////////////////////////////////////////////////////////w== - //////////////////////7+/v7+/v7+///+/v7+/v7////+/v7+/v7+/v7+/v7+/v7+/v7+/v79/f39/f39/f39/fz8/Pz8+vr6+vn5+fn4+Pj4+fn5+fn5+fn5+fn5+fn5+vr6+vr6+vr7+/v7+/v7+/z8/P39/P39/f3+/v7+/v7+/v7////////////////////////+/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/v7+/v7+/v79/f39/v7+/f39/f39/f39/f39/f39/f39/f39/Pz8/f39/f38/Pv7+/v6+vn5+fj49/f39/f39/f39/f29vb29vb29vf39/f39/j4+Pj4+Pj4+fn6+vr6+/v7/Pv8/Pz9/f39/f39/f7+/v7+/v7+/v7+/v///////////v7+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v7+/f39/f39/Pz8/Pz8/Pz8/Pz7/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8+/r6+vn5+Pj39/f29vX19fT09PT09PT08/Pz8/Pz8/Pz8/P09PT09PX19fX19vb29/j4+Pn5+vr6+vr7+/z8/Pz8/P39/f39/f39/f3+/v7///////////7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v7+/v79/f38/f38/Pz7+/v7+/v7+/r6+vr6+vv7+/v7+/v8/Pz8/Pz8/Pz7+/v7+/r5+fj39/b29fX19PPz8/Ly8fHx8fHx8fDw8PDw8PDw8PDx8fHx8fHy8vPz8/T09PX19vb39/j4+fn5+vr7+/z7/Pz8/P39/f39/f39/f3+/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/v7+/v39/Pz8+/z8/Pv7+vr6+vr6+fn5+fn5+fn5+fr6+vv7+/v7/Pz8+/v7+/v6+vr5+Pj39vX09PPz8vLx8PDw7u7u7u7t7e3t7e3t7e3t7e7u7u7u7u/v8PDw8fHy8vLz8/P09fX29vf3+Pn5+vr7+vv7+/z8/f38/P39/f39/v39/f7+/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/f39/f38/Pv7+vr7+vr6+fj4+Pf39/f39/b29vb39/f4+Pj5+fn5+vr6+vr6+vn5+fj49/f29fTz8vHw8O/u7e3s7Ovq6urq6enp6enp6enp6enq6urq6urr6+zs7e3u7u/v7/Dw8fLy8/P19fb29/j4+fn5+fr6+/v7+/v7/Pz8/f38/P39/f7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f39/Pz8+/v6+vn5+Pj49/b29fX09PT09PTz8/Pz9PT19fX19vb39/f4+Pj4+Pf39vb29vX08/Lx8O/u7Ozr6+rp6Ojn5ubm5eXk5OTk5OTk5OTk5eXl5eXl5ubn6Ojp6erq6+vs7O3u7+/w8vLz8/T19vb29vf3+Pn5+fn5+vr6+/v7/Pz8/P39/v79/f7+/v7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pz8+/v6+vn4+Pf29vX09PPz8vLy8vLx8fHx8fLy8vPz8/T09fX29vb39vb19fX09PTz8/Lw7+7t7Orq6ejn5ubl5OTj4+Li4eHg4ODg4ODg4OHh4eHi4uLi5OTk5ebm5+fp6err7Ozt7e/w8PHy8/T09PT19fb39/j4+Pj5+fr6+vv7/Pz9/f7+/f39/f7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/f38/Pz8+/r5+Pj49/b19fXz8O/s6+7u7ezr7O3u6vDt8O3w7fTy8/T09fX19fX19fT08/Ly8vDu7e3t6ujm5eTj4uHg4N7e3dzb29ra3t7e3N3d3dzd3d3c3Nzc3ODd3eLg3+Lg6OTn5ebo6+jq6+3u7u/w8fHx8vP09fX29fb39/f4+fr6+vv7+/z8/Pz8/f39/f7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v79/f38/Pz8+/r5+Pf39vX08vPx8O/v8fHt6+nq7e3q5+3t6O3t8u7v8PDx8vLz8/Ly8vLy8fDw7+zs7e3r6ejn5OPi4d/e3dzb29ra2djX19LS0dHS09TU1dbW1tfY19jd29vd3N7h4d3c4OHi5Ofm5+jq6uvs7e7u7u/w8fLz8/P09fb29vf4+Pn5+vr7+/v8/Pz9/f3+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/f38/Pz7+/r5+Pb19fTz8vHx7u3s7Ovs6uno6Ojp6urr6+jr5+vq6uzs7e7v7+/v7+/v7u7t7Ovo5+fn5uHg4dzc2tnX1dTU1NPT0tHQz8/Pzs3MzM3Oz9HR0NDQ0M/P1dbV1dbX2NrZ293e3N7h4eLk5ebn5+nq6urr7O3u7/Dw8fPz8/T19vb39/j5+fr6+/z8/P39/v7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/vz8/Pz7+vn5+Pf19PPy8e/t7Ovs6unn5+Pi4ODh4eLi39/j5OLl6Ono6err6+zs7Ozs7Ovr6uno6+Xi4uHc297Y2NfW1NPS0tDQ0M/Pzs7O0M/OzcvMzMzKy8vMzc3OzsrMz83S1NHT1dnX29fa3N7e3+Hi4uPl5ufn6Onq6+zt7e7w8fHy8/T19fb29/j5+fv7+/z9/f3+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v38/Pz7+vn49/f29PPy8O7t6efl4+Ti397h3t3d39/b19/d3+Di4+Pg5eXm5+jp6enp6eno6Ofm5ePUxcG7sa2vra2traysq6uqqqqrrKytramqrK6wsbGxtLa5vsHFysvRzs/MztDLzc7TztnX19fZ2tvc3t7f4eLj5OXm5+jp6urr7e7v7/Hy8/T09ff4+fn6+vv7/P39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39+/v7+/r49vb29fPx7+7s6unm4+Hh4ODf29zc2dbX3ODU2Nza3dre4uDh4uPk5eXl5OTk5OPj4uHj0MLCwbm4vLu7u7u8vLy8vb6/wMHCw8PGxsXFwr+8uru6uLa0s7GwsaWmpKSqqKutsrDK0NLR09TV19jZ2tzd3t/g4ePk5ebn6Orr7O3u8PHy8/T29/j4+fr6+/z9/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/fv7+/r59/b09PPw7u3r6efl4+Lh4d7a2NTV0ci8t73D09fX0dzZ2t7b29ze39/g4N/f39/e3d3c28q/w8O8vMS/v8DAwcHCwsXGxsfIycrKz8/Q0dHQ0NHR0dDOzMrJybWfnpqUl5OUi46Ms8PJyc7Oz9HS09TW19na29zd3+Dg4+Tm5+jq6+3v8PHy9PX29/n5+vv8/P39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/f37+/v6+ff19PPx7+3r6ebl4d/b19DGvLOvrKuutbe0sKeinKLJ09HO19fY2tvc3Nzb3Nvb29rZ2NXGv8XEvLzGvb29vr6/v7/DxMTFxsbHx8vMzM3Nzc7Ozc3NzMvMzMyqkZSWkpeWl5eWjbTDxsPIycvMzs/Q0tPV1tfY2tvc3eDi5OXm5+nr7u7v8fP09fb5+fr7+/z9/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38/Pv6+fj29PLs7e3q6ubk3s7Etq+vsbKxsbS3s6mdjoJ/gX1+ts7HzdDS09XV1dfX2NjY2NfV1NPPxsPAwL3Bu76/wMDAwMHCxMTFxsnKy8vNzs/Pz8/Pz9DMz8rNy87KoJaTlpWVlpaVjYukwr3Bw8LCxcfGyc7Nz9HR0tDS1Nfd29vf4uXk5enr7e/w8vP19vf5+vv7/f39/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+ff29fPx8ezr6uHTwK2zsbCxs7SzsrewnoVxa290en6GgpTMw8jJyszO0NLT1NHR0dHQzs3MzcLCwMC9wbq+v8DAwMDBwsTExcbIycrLzc7Pz8/Pz8/PzM/KzczOx5yVk5aVlZaVlIyJpLm1vLa5u8PN0NDLw7+9ubSxsLK01NXg3tri5evn6ezu7/Hy8/X3+fr7+/z9/f3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pz6+ff29fPx7/Du8OG/sLKysrO0tbSzsrO0lXNlZ2xxd3x8hYSBzMDBxsfIycvMzMzLzMzLysnHxsq+wsC/vcC7vr/AwMDAwcLDxMXGyMnKys3Oz8/Pz8/Pz8zOzM3NzcCWk5SVlZWVk5OLiKGsqLGntLi/vrStraytrq2urq+xsrC22d3Z4+Di5efp7O3v8fL09vj5+vv8/f39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+vj39fTy8O7q5ufXsa23t7OzsrGvrrCyq4lqaW9qaXN7e3+Fgbe5ub29vsDDw8TExsbGxsXDwsHLvcLAv7u/u76/wMDAwMHCw8PExcjJysrNzs/Pz8/Pz8/Mzs3Nzcy3kZOUlZSVlJKPjIigqKKtqqiuur22sbCura6ur7CwsLCvqdHV1OHc3+Lk5+nr7e/x8/X3+Pn6/P39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38/Pr59/Xz8e/t6uPg0aqss6iop6enqKWjop+Kc2xtampydXt/hIKQuLG4uLq7vL2+vb6+vr69vLq5z77CwLy8v7u+v8DAwMDBwsPDxMXIycrKzc7Pz8/Pz8/PzM7Nzc3KrZCUlpSUlZOQjoyFmaCan6eirru7r6issbCwr7CvsLCwrZ7Izc/b2d/f4eXn6uzu8PLz9vf5+vv9/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38/Pz6+Pb08/Dt6+nm4s+hoqqmpqSioqGgnpyjmX5qbHVzb3d5fX+Eg8GrsLK0tba1t7i4uLi4t7W0s9S+w768vL+7vr/AwMDAwcLDxMXGyMnKys3Oz8/Pz8/PzszOzczNyKOQlZWUlJSRj4yMhZKboJ6qx765tbCwsq+wsrS0s6+rqY2JvsnQ1dPY3N7i5efq7O7w8vX3+Pn7/P39/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pz8+ff18/Hu7Onn4d7VqaeopKelo6Gio6OimpyIbWhxdXZ8eXt+iYi4qaaprK2trbCysrKysrGvrq3WvcG+vL2+u76/wMDAwMHCxMTFxsjJysvNzs/Pz8/Pz87Mzs3LzMaak5aVk5SSj46MiIiQn7u5vrSysbKwsrKwrq6tp56UjIiGirzEzdHS1Nnb3uLl5+rs7/H09vj5+/z9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+/j29PLw7ero6uDZ06ukp6mjpKSkop+enp6fjXNoZ2x1en5/gYiGn6u1t7e0rampqqqrq6qpqKal1bvAvby9vrq+v8DAwMDBwsTExcbJysvLzc7Pz8/Pz8/OzM3Ny8vFlpWWlJOVko2OjoaJjZzIxL/Bvr6/vLeyqqGel46FgH+AhJC8wM3Q0cvW2dzg4+bo6u/x8/b3+fv8/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f79+/r39vTx7+vo5eDg1M+3qKqpp6akoqKhoJ6coJaJjIuTlKSlp6qtsbO0sbKytbe8vsDKzc/OysTBwL69urazs7a4urq7u7y9vr6+v8DCxMXIyMrMz9DQz9DQzc7KzcvQuZOUlJSTkY+Ni46FhY7BysbHx8jIysjJqJGQkY6Ffn6ChX+ftr6/xcnL0dXZ3eDk5+rt7/H09ff5+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/fv69/bz8e7r5+Tf3tXPvKisqqimpKOioaCfn52ersvPzsnFxMTCwL69vLi2tbSysa+vqqysrKurrK63trSysbGysrOzs7S0tbW1tbW2tre4ubm7v8PGyc3Q0s7Py87MzK+QlZWVlJKQjYuHiYOIvMfGyMfIysnJyKORkJGOhX9+g4aBqLO6u8LGyc/S19ve4ubp7O7x8/X3+fr8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz7+ff18/Du6ubj39rXzsKorauop6ako6KhoJ+ZmrPT0s/Ozs7PztDR09PV1tbX19bV1NHPzMjEwsC/v728ube2tLO2trW1tbS0tLOys7KysrGxsbKztbe5vL7Rz8zLzMmlkpSUlJSSkI6MgIZ9jMLHxcfHx8vIy8abkZGSjIV+f4OGg7SvtbW+wcfMz9TY3N/k5+vt8PP19/n6/Pz9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38+vn29fLw7Onl4t7X18zFqKyqqaimpaSjoqGfmpqxz83O1c3Nzs/S1dja4eTo7fH19fb49vLv6+Xh3tDNycbEwLy5t7a1tLOysbGvr66urKurqqqpqKelpKSlys3LyszEnZKUlJORj4yKiIF/eJnKxcXGyMfNx8zBlJKQkYyEf3+EhoS6qbCxu73EyczS1tre4uXq7O/y9Pf5+vz8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f39/Pr59vTx7+vn4+Dd1dXJxampqKqopqakpKOjoZyasNLQy8rOzc7O0NPV2N/i5enu8vT29fTz8O7r5uHY1M7Lx8S/u7i3trSzsbCwrKysq6mpqKempaWlpKOiocjPzcvMwJuWmZudn6CioqKel5OvycLHxcnHzcjMuZCSkZGMhH+AhYeGuKSsrre6wcbKz9TY3OHk6evu8fT2+fr8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/fv6+PX08e7q5uLf29TRyMOsp6iqqKempaSko52cm67S1M7Ly8zMzdHV19ri4+bq7vL29/b18e3q5+He2NTOysXCvry6ubi2tLOysa6ura2sq6uqqKiop6elo6LAy8bHzMq8vrq6ube0srCvsbO3w8fFysLJyMzJy6+Pk5KSi4R/gYWHia2fqKuzuL7EyM3S19vg4+jq7vHz9vn6/Pz9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+fj18/Dt6eXh3tnUzse/saioqamnpqSlpKOfoZ2sy83Lzs3NzM/R1NfY3d7j6e3z9ff19PHt6eXi39jUz8rGw7+9uLe2tbOysbCurq2trKuqqauqqainpaOgxNXJx8jJyszHxsXDwL68u7K4vsTFyMjEysnKy8mmkZSTkYuDf4GFh4ygmqSorba7wcXL0NXa3+Ln6e3w8/b4+vz8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+/n49fPw7enl4N3Y1M3GvbSoqqqpp6alpaSjoJ+aq8/RzdDOzs7R09XY2dve4ujr7/Hx8/Px7+vn4uDY1tDMx8O/vbm5uLa1tLOyr6+vrq2srKuop6enqKelpLbQyMrKyMrFysrJysrKycnGxMHCx8fCx8rJyc3HoJOVkpGLg3+BhoiQmJihpKm0uL/Dyc/T2N3h5+nt8PP2+Pr8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Ty7uvp5N/c29XKxbi5o62pqKmpqKalo6ShoazRztDMz87Nzc/S1tnd4OTp7PDz9PTz8O3p5eLf2NXQzMbCvry5uLa1tbSysbCvrq2trKuqqKiop6elo6Gz0czHx8jHyMvMzMvKyMjJzMjEw8TGxsXJysjNxZiVkZOTjYN/hIiJnIuTnaOntba7wsjN09fb4eXo7PDy9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf08u7r6OTf29rRysW8waatqqmopqWko6Ohnp+qzs3Qzc/Ozc3P0tbZ3eDj5+zw8vT08u/s6eXh39fU0MzGwr68ubi2tbW0srGwr66trayrqqmoqKenpaOhsdDMyMfIyMnKysrKysnJyszJxsXFxsfGysjJzr+WlZKTkoyDf4SHiKWIj5mfpbCzusHHzNPX2+Hl6Ozv8vX3+fz8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7///39/fr39fLu6+jk39vXzsrDvsWnqaimpqSkoqKioqKjrs3Mz87Pzs3Nz9LW2N3e4+fs7/Ly8/Hv7Onl4d7X1M/LxsK+vLm4t7a1tLKxsK+ura2sq6upqainp6akoqvNy8jHycrLy8vLysjHyMnKyMXFxsjIyMrHys+2lJWTk5KKgoGFhoayhoyWnKOrsrjAxsvS1trg5efs7/L19/n8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Xy7uvo5N7b1cvKwLvCpqeop6ipqamop6usrLXNzc7N0M7Nzc/S1tjb3uLn6+7w8fLw7uvn5N/d1tPPysbCvr26uLe2tbSysbCwr66trKurqqmoqKempKKqzM7NycvNzszMy8nIyMjJycfFxMXGx8fKxs3QrpOVlJSQiYOBhYaGvIaKlJujqLO3vsTK0NXZ3+Tn6+/y9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf18u7r6OPe2tLMyr+5vKmsrq+wsLCxsbGytLO8zs7PzdDPzc3P0tbY297h5ent7/Dx8O3q5+Lf3NXTzsrGwr69urm3trW0s7GwsK+urayrq6uqqKinpqWjqMrOzsnKzMvMzMvKyMjKy8jHxcXGxsXFysfPz6aWlpWUj4iDg4aHhrmEiJGZoqextb3DyNDU2d/k5+vv8vX3+fz8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7///39/fr39fLu6+jj3trSzsrBubexsrS0s7Ozs7S1tLa0vcvOz8zQz83Nz9LV2Nvc4eTp6+7u8e7s6Obi3tvV0s7KxcK+vLq5t7a1tLOysLCvrq6trKurqqmop6elpKLEy8zIyszKzMvKyMXExMTBwcLDxMbHx8jIzsuemZWVlI+Ig4SHiYmngIaOl5+lrrS7wsjP1Njf4+bq7/L19/n8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Xy7uvn493Z0tHIwbqytbO0tbe4uLe2tbK1s77Kz9DN0M/Nzc/S1dfa3N/k6Ovt7u/u7Ojl4d3a1NLOyMXBvry6ube2trWzsrGwr66urayrrKqpqKinpaSgwsnMyMrLx8XFxMC9u7q5t7i7vcDCxcbHyczEl5uVlZOPh4SEhoqMkH6FjJacpayzu8HHz9TY3+Pm6u7y9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf18u7r5+Pd2dTRxMK5rLSxtLe8wMG/u7iztrO+ytDQzdHPzc3P0dXX2dzf5Ofq7O3v7uzo5OHd2tTSzcjFwb28urm3tra1s7KxsK+urq2sq6yrqaiop6alnbzCxL29vLe3uLi3trW1tbS1t7m5ury9xsrKvpKclJWUjoiEg4eLjoN9hYuXnKers7rBx8/U2N/j5uru8vX3+fz8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pr49fLu6+fj3dnTzMe/uq/Dq7S3usHHysvKxsTDxsvPz83Nzc7O0NHU1dnb3uLm6Orr6uro5ePe29nT0MzJxsO/vLu6uLe2tbOysrCwr6+uraysrKyrqqmop6Kgnp+bl5yjpaerr7Kzsa+ytbe2tre2tLi2r6ObmJmalo6Bh4KLiZ1ze4OKk5ujrLO5wcjO09rf4+fr7/L0+Pr8/P3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz6+PXy7uvn493Z1M3HwLuwway0t7rBx8rLyszKycrOz87Nzc3OztDR1NXZ2t7i5ejp6+rq5+Xi3tvZ09DMycbDv7y7uri3trW0srKxsK+vrq6srKysq6qpqKeil4qCeXV3fISHjZWcoaOkrq+vrKmkn5qUl5iXlpeZmZSLg4WCiYWicnuCipObo6yzucHIzdPa3uPn6+/y9Pj6/Pz9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38+vj18u7r6OPe2tTNyL+7sr6utbe6wcfKzMvPzs3Nz8/OzM7Nzs7Q0dTU2drd4eXn6enq6efl4d7a2NPQzMnGw7+8u7q4t7a1tLOysbCwr66uraysrKuqqainpZmMg3x2dHR3eX6FjJGTlZaWlZKSk5OSkZWYmJmZmJWUi4SFhYiFsHF6gomSmqOss7nByM3T2d7j5+zv8vX4+vz8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/Pr49fPv6+jk3trUzci/u7K5r7W3ur/GyszMzM3Nzs7Ozc3Ozc7O0NHT1Nja3eDj5ujo6ejm4+Dd2djSz8vJxcO/vLu6uLe3trSzsrGxsLCvrq2trKyrqqmop6KcmJqbmZeXmpmYl5eWlJOXlpSTlJeZm5eYmZiZmpaUlYuGhIeJiLxxeYGIkpqirLO5wcjN09ne4+fs8PL1+Pv8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/vz6+Pbz7+zp5N/b083Hv7uysrC1trm/xsnLzMzNzs7Ozs7Ozs7OztDR09TX2Nzg4+Xm5+fn5ePg29nW0s/LycXDv7y7ubi3t7a1tLOysbCwr6+ura2srKupqKiqpaKgn56en5mYmJmampmZlZWWl5eWlJSUlZWUlpiXlZSKhoSJioq3cHmBiJKaoqyzucHIzdPa3uTn7PDy9fj7/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79+vn28/Ds6eTf29POx7+7tK6ytba5vsTJzMzPz9DPz87Ozs7Ozs7Q0dPU19jb3uLk5eXn5uTi3tvX1dHOy8jFw7+8u7m4t7e2tbSzsrKxsLCvrq2trKyrqqioo6Ggn56en6CdnJybm5qZmJWUlZeWlpaXl5iZmJqbmJaSiIaGiYiJoHB5gYiSmqOstLnByM7U2t/k5+zw8/X4+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fv59/Tw7enl39vUz8nAvbass7W2ub3EyczN0NDPz8/Pzs7Pzs/O0NHT09bY297g4+Xl5uXk4d7a19XRzsrIxcO/vLu5uLi3t7W0tLKysbGwr66tra2sq6qpqKOjoaKhoJ2cnJubmpubmpmZlpOTk5OWmZSWmJmbnJuXkYiFiImJjIpweYGIkpqjrLS6wsnO1Nvf5Ofs8PP1+fv8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v37+ff08O3p5d/b1dHKwb63q7a2trm8xMnMzc/Ozc3Oz8/Oz87PztDR09PW2Nve4OPk5Obl4+Dd2tbV0c7KyMXDv7y7ubi4t7e2tbSzsrGxsLCura2trKuqqaikop+eoKCfnZuamZmYmJaVlpSVl5eWlpiUl5mZmZqZl5KJhYqJi5F/cHmBiZKbpK20usLJz9Xb4OTo7PDz9fn7/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7//v78+/r39fHu6ubg3dXQzcPAtqu/srW3usDHy8zMzM7Oz8/Ozc/P0NDQ0NHR1dbZ3N7h4uPi4eHf29jV087NysjFw8C/vLu6urq5uLe1s7KxsbCura6urq2sq6qppaOhoKCfnp2dnJybmpmZmJeXl5eXmJmZmZmZm5uamZeShYaGjY2ZbnJ7g4uVnaWutbvDytDV3OHl6e7x9Pb5/P39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+//7+/Pv69/Xx7uvm4d3X0c3DwbesvrK1t7rAx8vMzc3Ozs/Pzs7Pz9DQ0NDR0dXW2Nve4eHj4uHg39vY1dLOzcrIxcPAv7y7u7q6ubi3tbSysbGwr62urq6trKuqqaWjoaCgn56dnZycm5qZmZmXl5eXl5iZmZmampubm5mXkISGiIyLoWlye4SMlZ2mrra8xMvR1t3i5enu8fT2+fz9/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/////vz7+vj18e7r5+He2NLOxcC4r7yxtLe6wMjLy83Nz87Pz87Oz8/Q0NDQ0dHV1tjb3d/h4eHh4N7b2NTSzs3KyMXDwL+8vLu6urm4t7W0srKxsK+urq6urayrqamlo6KgoKCfnp2dnJuampmZl5eXl5iYmZmampqcnJuZl4+Eh4iKirBoc3yEjJaepq+4vcXM0tfe4ubq7vL09vn8/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79+/r49fLv7Ofi3tnTz8bAubC4sbO2usDIy8vNzc/Pz8/Ozs/P0NDQ0NHR1NXY2tze4ODh397d2tbU0c7NysjFw8C/vby7u7q5ube1tLOysrGvrq+urq2sq6mppaOioaCgn56dnZycm5qamZiYl5iYmZmampqbnJubmZeRhoiKioy+bHR9ho6Xn6iwuL7GzdLY3uPn6u/y9Pf6/P39/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fv7+Pby7+zo49/a1M7HwbiytLK0trm/x8vMzc3Pz8/Pzs7Pz9DQ0NDR0dPU1tnb3d7f39/e3NjW0s/OzcrIxcPAv728u7u6urm3trWzsrKxsK+vr66trKqpqKWjoqGhoJ+fnp2dnJubmpqYmJiYmJmampuam5ycm5iXjoaIioqNuW12foePmKCpsrm+xs3S2N7i5+vv8/X3+vz9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38+/n28/Dt6eTg2tTOycG5s6+0tba4vsbKy83Nz8/Qz87Oz8/Q0NDQ0dHT1NbY2tzd3d7e3dvY1dDPzczKyMXDwcC9vLu7u7q5uLa1tLOysrCvr6+urayqqailo6KhoaGgn56enZ2cm5qamZiYmJmZmpuam5ydnJuYloyFiYuLjaRrd4CIkJqiqrO5v8fN09je4+jr8PP19/r8/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/Pv59vPw7enk4drV0MvDu7WstLa2t73FysvNzc/P0NDOzs/P0NDQ0NHR0tPV2Nrb3d3e3dza19TQzs3MysjFw8HAvby7u7u6ubi3tbSzs7Kwr6+vrq2sqqmopaOioaGhoJ+enp6dnJubmpmZmZmZmpqbmpudnZ2bmJaLhoqLjI6ObHiAiZGaoqu0u8DIz9TZ3+To7PDz9ff6/P39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////fz7+fbz8O7q5eHb1tHNw7y2rLW2tre9xMrLzs3Pz9DQz8/Pz9DQ0NDR0dLT1dfY29zc3dzb2tbT0M7NzMrIxcPBwL28vLu7urm4t7a0s7Oysa+vr66trKqpqKSjoqGhoaCgn56enZybm5qZmZmZmZqbm5qbnZydm5iWjIeLio2Rg3J4gYmRm6OrtLzBydDV2uDk6ezw9PX3+vz9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pr39PHv6+bi3dbRzMS9t6+/sba6uMLJyc3Oz9DP0M/Pz8/Q0NDQ0dHS1NXX2drb29vb29nX1NLRzMvKycbEwsG9vLu7urq5t7i3tbS0s7Gwr66srKurqailpKOioaGgoJ+enZ2dnJqZmZmZmZqbm5yfnZycnZyZloqJho2OmHJweYKLk52lrba9wsrQ1dvh5ert8fT3+fv9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz69/Tx7+vm493X0szEvrewvrG2urjCycrNzs/Qz9DPz8/P0NDQ0NHR0tTV19jZ29vb29rZ19TS0MzLysnGxMLBvr27u7q6ube4t7W0tLOxsK+urKyrq6mopaSjoqGhoaGfnp6dnZyamZqamZmam5ucnp2cnJ2cmJaIiomPip9scXqDjJWepq63vsPL0dbb4ebr7fH09/n7/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fz8+vj08u/s5+Pe19LNxr+5sbqxtbm5wcnKzc7P0NDQz8/Pz9DQ0NDR0dLT1dfX2dra2tnZ2NbT0M/My8rJxsTCwb69vLu7urm3uLe1tLSzsbCvrqysq6upqKWko6KioaGhoJ+enp2cm5mampmampubnJ6enZ2enJiWiYqKj4quaXN8hY6WoKevuL/EzNLX3OLn6+7x9ff5+/3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pr49fLw7Ojk39nUz8fBurK2sra5ucDHy83Oz9DQ0c/Pz8/Q0NDQ0dHS09TW19jY2dnZ2NfV0tDOzMvKycbEwsG/vr28vLu6uLi3tbS0s7Gwr66srKurqailpaSjoqGhoaCfnp6enZuampqZmpucnJyenp2dnZuYlIuKiJCOvmx3fYaPl6GosLnAxc3T2N3j5+zu8vX3+fv9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz7+PXz8e3o5eDa1dDIwry0s7S1ubm+xsrOz8/Q0NHQ0NDQ0dHR0dLS0dLT1dbX2NjY2NjW1NLQzszLysnGxMLBwL+9vLy7ubi5uLa1tbSysa+urKyrq6mopqWko6KioqKgoJ+enp2bmpubmpqbnJydnp6enp6cl5OLi4mQj7tueX+IkJiiqbG6wMbN09jd4+fs7/L2+Pr8/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fz8+/n28/Hu6ebh29bRysS9tq+2t7i6vcXKzs/Q0NDR0NDQ0NHR0dHS0tHR09XV1tfX19fW1dTRzs3My8rJxsTCwcC/vr28u7m4ubi2tbW0srGvrqysq6upqKampaSjoqKioaCfn56enJqbm5qbnJ2dnZ6enp6enJaSioyOkY2obnqBipKao6uyu8LHz9XZ3uTo7fDz9vj6/P3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pv59vTy7urm4tzX0svFv7ett7e4urvDyM7P0NHQ0dDQ0NDR0dHR0tLR0dPU1dbW19bW1tXT0M7NzMvKycbEwsHBv769vLu5uLm4trW1tLKxr66srKurqaimpqWko6KioqGgn5+fnpybm5uam5ydnZ2enp+fn5yWkouLkJGPlXN7g4yVnKattb3EydHW2+Dl6u7w8/b4+vz9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz7+fb08u/q5+Pc2NPMxr+4rLi3uLq6wsjOz9DR0NHQ0NDQ0dHR0dLS0dHT09XW1dbW1tbV0tDOzczLysnGxMLBwcC+vby7ubi5uLa1tbSysa+urKyrq6mop6alpKOjoqKhoKCfn56cm5ubm5ucnZ2enp6fn5+clpGNi46Qk495fYWOlp6nr7a/xcvS2Nzh5+vu8PT2+fr8/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pr49fLv6+jj39nUz8jBu7K+tLW7vb/Kzs3P0NLS0tLS0tLS0tLS0tPT1NTU1NXV1dXW1dLQz87Ny8rIx8bEwsHAvr28u7q4uLe2trW0srGvrq2srKyrqqempqWlpKSjoaGgn5+enZ2bm5ycnJ2en6Ggn6CgnJaRjIuNi5p6d36JkZmhq7K4v8jM09jd4ufq7vH09/n7/P7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz6+Pbz7+vp5ODa1dDKw722vbK2u7y/yM7Oz9DS0tLS0tLS0tLS0tLT09TU1NTV1dXV1tXS0M/OzcvKycjGxMLAv769vLu5uLi3tra1tLKxr66tra2sq6qnpqalpaSkpKGhoKCfnp2dnJycnJydnp+hoaChoZyWjoeOi42jdX6Ai5Obo6yzusHJzdPZ3uLn6u/x9Pf5+/z+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+vj28/Ds6ebi3NfSzMW/u7uyubq8v8XNztDQ0tLS0tLS0tLT0tLS09PU1NTU1dXV1dXU0tDPzszLysnIxsTCwL++vby7ube4t7a1tbSysa+ura2trKuqp6empqWlpKSioaGgn56enpycnJ2dnp+foaGhoqGdlI2KkIyOsG59iI2WnqWvtbzDys7V2t/j6Ovv8vX3+fv8/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pv49vTx7evn493Y1M7Hwbu3s7y5u77DzM7P0dLS0tLS0tLS09PS0tPT1NTU1NXV1NTV1NHPz83My8rJyMbEwr++vr29u7i2uLe2tbW0srCwr62trayrqqenp6alpaSkoqKhoaCfnp6dnZ2dnZ6foKGgoaOinZSOjo+Mi659fomQmKCosbe9xczQ19zg5ens8PL1+Pr7/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+ff18u7s5+Pe2dXPyMO6tra8trm8w8zNztHS09LR09PS0tPT09PU1NTU1NTU1NPT1NPRz87Ny8vKycjGw8G/v76+vbu5t7i3trW1tLKwsK+ura2tq6qoqKenpqWlpaOjoqGgoJ+fnZ2dnp6foKCioaChoJyVjo+JipOrd4+Hk5ujqrO5v8bO09ne4ubq7fHz9vj6+/3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+/n39fPv7ejk39rW0crFu7e1ubW5usHKzM7S09PS0dPT09LT09PT1NTV1NTT1NTT09TT0c/OzcvKycnHxcLAv7++vby7ube3t7W1tLOysLCvrq2trayrqKinp6ampaWjo6OioaCgn56enp6en6Cho6OhoqCclI6IkZSqeoSGkJefpq22vMLJ0NXa3+Pn6+7x8/b5+vz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pv5+Pbz8O7q5uDc2NPMx8G7tbSzuri/yczP0dPT0tLT09PT09PT09TU1dTU09TU0tLT09HPzs3KycnIx8XBv8C+vby8urm3t7a1tbSzsbCwr66tra2sq6ioqKenpqalpKSjoqGhoKCenp6fn6ChoaSjoqOhm5KLkYm3enmCjJKaoqmwub/Ey9LW3OHk6Ozv8vT3+fv8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+fj29PDu6+fi3trVzsnGv7Ovsr22vcnMz9HT09LS09PT09PT09PU1NXU1NPU1NLS09PQz87NycnIyMfEwb/Avr28u7q5t7e2tbW0s7GwsK+urq6trKupqKinp6ampaSko6KioaCgnp+fn5+goaKlpKSloZuRiZ2fdXuBiI2anKSss7vBxs3T193h5ent7/L09/n7/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pr59/Tx7+vo5ODc1tHMxL65s6ijrLzCyM3P1NTQ2tTV09HSztLM1NPT0tLS09PR0dHS0M7Ny8bGxcXFw8DAwL27u7u6uLa6ube2tbSysK+tq6urq6qpqqqpqKampqakp6impKSjoJqinqGeoZ+lqqmjnpyVpaFtc3h+hYyTm6KnsLe9w8rO1Nje4ubp7fD09vn6+/z9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz7+ff18e/s6eXh3djSzsnCu7ivo52dnrzOy8zS0NLQ1NjU1tXU09XU09PT09PT0dHR0M7LycfIx8fHx8XEwsLAv76/v727urm4t7e2tLOzsrCwsLCwr6uqqqmopqWkpKWkoqCfnpyfn6CknKKlopuemLDFkGprcXd8gYmQlp6lq7O6wMbM0dba4OTn6+7x9Pb5+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38+/n49fLw7uvn4+Db1dHLxL27tq2hm5WQkJ/B2NLM0dPTztTb09bU09PS0tHR0M7Ozs3Ny8rJyMfHxsXEwsHBv769vb27ubm5uLi4t7a0sbCvrq6urq2qqqqqqainpqSkpKKhoqKhop6aoqGcnKuzxZRbX2Rpb3Z8goePlZujqrC4v8TJ0NTZ3eLm6ezw8vX3+fv8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pv6+Pbz8e/s6OXi3djUzsrDvrexqaWblJGMhYCJo87T2c/N0s/Z0dLT09HPz87Nzc7OzczLy8bFxcTDwsC+vLu6ubq6uLe1tLOzs7OxsLCvrq2srKurq6urqamoqKeoqKimpKSioZyZoqaxzbFvVllcZGdjb3p7goeMlJqgqK+0vMLHzNLX29/k6Ort8PP19/r7/P39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz7+vn39PLv7enm49/a1s3Mx8C6s6yno5mRi4mGfX90am6DrsnPwMbJzdDR0M7Pz8/Pzs3My8rIx8bGxMK/vry8u7u7u7q5t7a1tbW0srGysbCvrq2trampqKenp6ioqKioqKWjoaG2vJVXSk5JUFhYXmdmcXt0gIeMkZmfpayzuL/Fys7U2N3g5enr7vHz9vj6/P39/v7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+PXz8e7r6OXh3NnSzcfCvrqzrqShnZWQjX94d3BqYWNuqaewt7/GysvKy8zMy8vLysnJysrJyMfFwsC8vb29vby6urm4t7e3trSzsLCvrq2srK2kpaWmqKmqrKytrKuln56fj0g7SUhIVFZaYmJqb3Z8iIWMkpefpKqxt7zDyc3R19vf4+fq7O/y9Pf5+/z9/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz7+vn29PLw7Orn5N/b3NXMx8O+uLStpaCZkoyEhHp3dGxjXa+dn6e0vsPFxsfExMTExMTExcPCwsPDwcC/u7u8vby6ubi2tbW1tbWzsrCxsbGwsLGzuLq7vL2+vby1tLStopiVl2pBQ0pMT1daXWhob3eAfoeLkpiepaqwt7zByM3R1dre4uXp7O7w8/X3+fv9/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38+/v59/Xz8e7r6ebh3dfU0M3Hv7m4sKejnpqXjouIf3h2cmO/lpuksbzDxcbFwMDAv7++vr26urq7u7u5uLu8vLy7urm4urm5uru7urm4ubq6uru9v8HBwL68uLOwr66tqJ6WlZlYQUtPVVdcY2hqb3ZxgYiOkJecoqmutLvAxcvQ1Njd4ePn6+7w8fT2+Pn7/f39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f38+vj39fPw7uvo5OLc2dTQzMbAvLWyrKahm5SQioJ9enJwqZ2goqq5w8PJy8rKycjIyMjIwsPDw8LBwMC9vr6+vr69vb29vLu7urq6wcHBwsTGx8jIx8XBvLe0sq+xrKSbmY6tRUlOU1dcYmZrcHd9gYaNkZmdpKqvtbu/xsrP1Nfb4OPo6u3v8fP29/r6+/z9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/f39/Pr49/b08u/s6ebj39zY08/KxMC6trCrpZ+ZlZCHgn93cpibn6KpuMDCx8nJycjHyMfIycbGxsXFxMPDxsbGxsbFxcTCwsC/vr6+vr2+v8DCxMbHycjFwby4tLOzsq2kmZiZu0hMUVZbYGZqcXZ9g4iNk5idoqiutLm/w8nN0tba3uLl6evu8fP19/j6+vv8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f39/fz6+fj39fPx7uvo5uPg3NjUz8nFwLy2saymoJuZjYmFf3eAn5+iqLa/wMXGx8jIx8fHyMnKycnJx8fHx8vLy8vKysnIxcTDwsDAv7+7vb/Bw8bIysrIxsK9uLWzs7CspZmVmatNUFZbYGZscHZ7goiNkpmdpKivtLq/xMjO0dba3eHl6Ovt8PL09vj5+vv7/P3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f38+/r5+Pb08vDt6ujm49/c2NTOysXBvLeyrKain5ORioV+da6eoqayvsDDxcbHyMjIx8nKysrJyMjIyMjJycnJyMfGxcTEwcC/vr6+v7/Bw8bJy83Ly8jDvbm2tLKvqqOal5aEUFRaX2VrcXZ7gYiOk5ieo6qvtbq/xMnN0tba3uHk6Ovt7vHz9ff4+vv7/Pz9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+vj39fPx7+zq6OXh3tvX0s7KxsG8t7KsqKOZl4+KhXe8mqKlsb/BxcXGx8jIycnJysjIx8fGxsfHxsbFxcTEw8LDwsHAv769vcDBwsXHys3NzczJxL65trWzsaufmpuea1NXXWNpcHZ7g4iPlZqgpquwtLq/xMjN0dfa3uHk5urt7vDy9Pb3+fr7+/z9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/fz8+/v59/b08/Hu7Orn5OLf29bTz8vGwb23sq6on56Uj4uBvZqipbG/wcXFxsfHx8nJycjGxsXFxcXFxMfHx8fGxcXExMPCwcDAv7+/wcLEx8rLzs/NycW/u7e1sLSvn5eapVtXW2FnbnV8gYiNlJqfpaywtrq/xMnN0tXb3uLl5+ns7+/x8/X2+Pn6/Pz8/f7+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/Pz7+vn39vXz8e/t6+jl4+Db2NTQy8fCvbezrqakmpWPiq6aoqSvvcHDw8bFxcbIycfGxcbGxsbFxMTHx8fHx8bGxcXEw8LCwMDAwMHDxcjKzM7QzsrFv7u3tq2yrqCXmapTW19mbHN6goaMkZifpKqwtbzAxcrO0tba3uHl6Onr7vHx8/X3+Pn6/Pz8/f3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8/Pv6+Pf29fLx7+3q6Obj3tvX1M/KxsG7t7OrqZ6Zko2fmqOkrr3AwcHGxMPFyMjGxMfHx8fHx8bFxcbGxsbFxcXDw8LBwMDAwMDAw8XIy87P0M7KxcC7uLazsKqcl5uzV15iaXB3foaKkZeepKqvtrvAw8nN0dXa3eHk5+rr7fDy8/X3+Pn6/P38/P39/v7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38/Pz6+vn49/Xz8vHw7uvp5uLg29jUz8vFv7u3sqqloJeUmZ6coqe7vb/Fw8PDw8TExcXExMPCw8PDw8PExcXExMPExMPDwsLBwcC/wcLFyc3Q0dHPzMfAu7i2sbapm5mYv1xgZ210fIOJkJeepKmwtbnAxMjO09ba3uHl5+rs7vDy8/T1+Pr7/Pz8/f39/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+/v6+ff29PPz8fDu6+jl4t/c19PPycO/uLStp6KZk5Wimp6lt7u8wr+/wMDAwMHBwcHBwMDBwcHCw8TEw8LCw8LCwsDAv7+/wMHCxsrN0NHR0MzHwLu4trG1qZqXlq9aY2pxd4CGjJSaoaets7i9xMjM0tba3eHk6Ons7vDx8/X19vj6/Pz8/P39/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f39/Pz7+/r59/b19fTy8O7s6Obi39rW0s3Hw7q4saqlnJSQqJeaobK3ur28vLy8vb29vb69vby9vb29v8DBwcHBwMHBwcDAv7++vsDBxMbKzdDR0tHNyMG8uLays6iZmJeZXWdudXuEi5GZn6essri9wsnN0dfb3+Lm6Ovt7/Hy9PX39/j5+/z8/Pz9/f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/f38/Pz7+vn39/b19PLx7uvp4+Dc2NTOycS9u7SspqCWj6uWl56ssre3uLi4t7e3t7e3t7a2t7e3t7m6u7y8vL2+vr6+vr+/vr7AwcPGys3P0dPRzsjBvLm3srGompqbhGNqcXh/iI6VnaSrsba9wcbN0tbb3+Ll6ezu7/Lz9PX3+Pn5+vv8/Pz8/v7+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/f39/Pv6+fj39vTz8u/s6uXi3trV0MrGv7y1rKahmZCqlZWaqK6ysrKysbGxsbGws7OysrOzs7O1tre4uLm6u72+vb2+vr6+vsDBxMjLz9HT0c7Jwr25t7KxppqaoXJmbHN6gYqRmKCnrrS5wMXK0NXZ3uLl6Ovu8PL09fb2+Pn6+/v8/P39/f7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/v39/f38+/r59/b19PLv7Oro5eDc19LLx7+6tKykoJmQoJGTlaKnq6ytraysraysrK6urq2trq6usLGys7S0tre4ubm6ubq7u7y9v8PHy87Q0tDNyMK9urizsaOZmqZlZm52fYSNlZyjq7K4vcTJzdTY3OHl5+rt8PL09ff39/j5/Pz8/f39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v79/f39/Pv7+vj39vTy8O3q6OXg29bQysa+t7GqopyWj5KMj46coaOmp6ampqWlpqWmpaWmpqanqKmqq6ytrrCys7O0tbW1tra6u73BxsvO0NHPzcjCvbq4srOgmpusYmhxeYCIkZigp6+2vMHIzdLY3N/k6Ort8PP19vj4+fn6+vz8/f39/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/f39/fz8+/r5+Pb18/Dt6ubj3tnUzsfDvLWwqqCZk42JiY2LmJydoZ2dnZydnJycnp6enZ6fn6CioqSkpaepq62ur7CxsrKzuLm8wMbKzdDQz8zIwb26ubK0n5uctGNsdHyDipSbo6qyub/Ey9DV297i5+rt7/L19vj5+vr6+/v8/f39/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v///fz8+/r5+vf18/Lv6+jk39vY0s/Gu7ewqKGbk42Ig4iCf42ZmpmYlpOSlJSTkZOUlZaVlZWVlZqfnZudoaShp6qpqq2vr7O1uLzBxsrMz8/Mx8C7uLeyrKSZlLtmb3V+h46XnqautbrCyM3S2d3i5ent8PL19vn5+fr7+/z8/Pz9/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///////v7//v38/Pv6+fn39fPx7urn3t7c1crEvre3r6ehm5KIg3yDf3uFjpKTkI2Li4uMi4mJiYqLjI6QkZOQj5WZm5uao56fpaemqa6xsra6wMXJzM7Oy8a/ure3squimpm9aW93gIiQmaCosLe8xMrP1dvf5Ofr7vH09vj5+vr7+/z8/f39/f7+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7//////////v38/Pv7+fj39fLw7uvn497a1MzFv7avsKedl5OLg39yenp0d3t9goSDgoODgoF/f3+BgYSEhoaHhoiPkpCSmZeZnJ+go6Wmq66xtrzCx8nNzcrFvrm2trSroJuas2xweoOLk5yjqrO6wMfN0tfd4ubp7fHz9vj6+/v7/Pz9/f39/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+//////////79/Pv7+vj39PLu7Orm4d7X1dDLwruyqqegmJKKgHp2fIqYpbTEz9fOzczNzczKyMzJxb20qqGcjoV+fICEiIyNlJiYl5udnqOlqrC3vcPGysvJxL65trWzraGZlp9rc3uEjZWepa21vcLK0NXa4OTo6+/y9ff6+/z8/P39/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v////////7+/fz7+vn39fHv6+jl4dzY18/Evbq0qqWalI2Nlae/0dDU1NHRzs3Nzs7NzM3NysnExcfIx8bEw7+/uaiZjYaCiYOFi46Nkpqbn6Wrs7nAxMjIx8O9uLe2sqygmZeSbHV9ho6Wn6eut77Ey9HW2+Hl6ezw8/b4+vz9/f3+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz6+fj28/Hu6+fj4NvV0cbDvbewpZ+eoa7E1tvY09HU0c7Nzc3MzMnJycnIx8bGxsbGxMPCwcG/wb++v7yunYV/fYKJi4+SlZigp621vcHFxMTAu7i2trKrnJyejXF1foeQmKGosLnAxc3T19zi5urt8fT3+fv8/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pv6+Pf18+/t6eXh3NjSzMe/vrWooqW2ytvY1tXT0dLU1NHOzs7My8vJycnIx8fGxsXFw8PCwsHCvr67t7a3trK6rJaBeHyDiIuRmJ+mr7a7v8DAvbm2tbSyqpucoINydn+IkZmjqrK7wcfO1Nnd4+fs7vL1+Pr8/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pv5+Pf18/Ds6uPf2tbRy8S/ua+lrsTU2d3S0NDS09HOzsvJycvLx8XFxcXDwsHBwcK+v7+/vr69vL++vb26uLe4tbOzr5+Ifn+EipGYoKmxtry+vru3tLOzsaudm5t5b3eBipKbpKy0vMPIz9Xa3uTo7fDz9/n7/f7+/v7////////////+/v7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/fz7+vfz8fDt6OTf29LMycK4sKi3ytjb2tfX1dPT0M/OzMvKyMXFxMPCwsLBwcC/v76+vb28vLy8vLy6urm4t7W0srOxrquurJZ3foCKk5egrbG3urq2s6+sr6ypmpmhcXR8g4yUnKWttb7FytHX2+Dl6e7w9Pf5+/z9/////////////////////////////////////////////////////////////////v7+//////////////////39/f39/f39/Pz7+/v8/Pz8/Pz8/P3+/v7+/v7+/v7+/////////////////////////////////////////////v39/fz7+ff08O7s6OLd1c/OyryxsLLP1dvd2dXS0tLSz87Ny8jIx8XCwsHBv76+vr29u7u6urm5ubm5ubm5uLi3trW0srKur6+rqa2uqY19fIWPmKKosbW1s7Gtqq6rqJqZonF0fIOMlZ2mrra+xcrR19zg5uru8PT3+vv8/f///////////////////////////////////////////////////////////////////////////v7+/v39/f39/f39/Pz8/Pv6+vr6+vr7+/v6+vv7/P39/f39/v7+/v7+/v///////////////////////////////////////v38/Pz6+ff08ezp5uHa1MzMxLqzr7vS19jY1dPQ0tLPzcvKyMbEw8G/vry8urm6uLi3t7a2tbW0tLS0tLS0tLS0tLOysbGwsq6qqKWkp6qbmYh+h5WfoKqtr62sqqmtqaaamaNwdHyEjZaep6+2v8bL0tjc4ebr7vH0+Pr7/f7///////////////////////////////////////////////////////////////////////////38/Pz8+/v7+/v7+vr5+fj39vb19fb29vb29vb3+Pj5+vr6+/v8/P39/f7+/v7+/v////////////////////////////////79/Pv7+ff18e3p5eHb083Jwbmvssve29bW1dPT0dDQy8jGxcPBvr27ubi3tra0s7GxsrGwsK+vr6+vr6+wsLCwsLCwsLCvr7KsqqqppZ+bn6SZhX+KlJyip6mnqKemqqWjmpekb3R7hI6Xn6iwt7/GzNPZ3eLn6+7x9fj6+/3+//////////////////////////////////////////////////////////////////////7+/v78/Pv7+vr6+ff39/b19PPz8fHx8PDw8PHx8fHx8vPz9PX19vf4+fn6/Pz9/f3+/v7//////////////////////////////v7+/fz7+ff08u7q5eHc1czGu7WtutPd2djY1tbV09DMycbEwb+8uri2tLOxsK6vra2qqqqqqKioqKioqKipqampq6usq62trKypq6yqqKSioZ6cl5OLgIeYm6Gio6SjpKijn5iWpW10fIWOl6CpsLjAx8zT2d3i5+zu8fX4+vz9/v///////////////////////////////////////////////////////////////////v79/fz8/Pv7+vn49/f09PPy8O/v7u3t7Ovr6+vs7Ozs7e3u7/Dw8fLz9fb3+Pr6+/v8/f3+/v7+/////////////////////////v7+/fz7+vj18e7q5d/a1M3EvrCswNre1dPX09HQz83Kx8S/vLq3tbOvrauqqKempqWkoqGhoaGgoKCgoaGhoqKioqOkpqenqKioo6mopaWkop+fmZWVlIqEjJSZnJ2fn6CkoZyWlKRrc3yFjpigqrG4wMfM09nd4ujs7vH1+Pr8/f7////////////////////////////////////////////////////////////////+/v38/Pv6+vr5+Pf19PLy8O/u7evq6ejn5+bm5eXl5ubm5+fo6erq7Ozu7/Hz9PX29/j5+vv8/P39/v7+//////////////////////7+/v37+vj18e3q5eDZ0svDurOuytrZ1dTU19DPzcrHw767t7Syr6ypp6WioZ+enZycm5mZmJiXl5eXmJmZmZqampudnZ+goaGio6KjoaKnp6CcmpiVkIyPi36LkJSVmZucoZ6ZlZKkaXN8hY6YoKqxuMDHzNPZ3eLn7O/x9fj6/P3+/////////////////////////////////////////////////////////////////fz8+/r5+Pj29fTy8O7s7Ono5+Xk4uHg397d3dzc3Nzd3d3e3+Dh4uTl5+nr7e/v8vP09ff5+vr8/P39/v7+///////////////////+/v78+vn28+/r5+Lc1MzFvLKszdTY1dPW1MzLycjFwLu3tLGvrammpKCfnZqZl5eWlJOSkpKSkpGRkZKTk5OUlJWVl5iZmp2dnp6iop6doJ6amZeUlJGMi4yHhIqOkZaWmp+dmJOQo2hzfYSOmKGqsbi/x8zT2d3i5+vv8fX4+/z9/v////////////////////////////////////////////////////////////////z8+/r5+Pf38/Lx7uzq6Ofi4uDf3dva2dfW1dXU1NTU1dXV1tfY2dre3+Di5efp6u/w8fP19/j5/Pz8/f3+/v7///////////7+/v7//vz7/Pj39e/r5+HX1czEwrCmzdfX1tXU0c7MyMXBvLizraunpaOfm5iXlpGQkI+Ojo6OjIyMjIyMjIyKi4uMjY2OjpCQkZOVlpiYmZqbnZycnJuWlJKPjIuHhn6Ah4+PlJKWmJKSi7Fncn6GkJmiq7K5wcfO09ng5Ojt7/H1+fv8/f7//////////////////////v7+//////////////7+/v/////////+///+/v/+/fz7+vr49vTz8u/u6+fk4uHg3NrW1dLRz87My8rJycnJycjKy8zMztDT1dbW2Nrf5Ojn6evt7/L09ff4+fv9/v79/f///////////v7+//78+/v39fLs6OPc1s3JurCwzNLV1dTT0c7Lx8LBu7axrailoJ2cmZWTkpGOjo6NjIyMi4uLi4uLi4uLioqLi4yMjY2NjY+QkZOTlZaXl5iamZmYlZSRjouJhoSCfIKEjIyPlZWQj4mvZnF9ho+ZoauyucHHztPY3+Tn7e/y9vn7/P7+//////////////////////////////////////////////////////7+/f39/fz6+vr59/Tx7+7p5uLi4uDa1dPRzsvKyMbEw8LCwMDAwMDDw8TExMbHyMjLztHU19jZ4ePl6Ort7/H09ff5+/z8/Pz+/////v/////+///+/Pr69fLv6ePd1s/Fv7SnytnU0tLR0M7JxcK6t7KuqaSfnJeWlZKQjo2NioqKiomJiYmIiIiIiIiIiImJiYqKioqKiouLjI6OkJCRkpOUlZWVlZSSj42Kh4SCgnp8eoKGiZKQiouHqmZwfIWPmKGrsbnBx87T2N/j5+zw8/b5+/z+/v///////////////////////////////////////v7+///////////9/Pz8/Pv5+Pj39fLv7Onn4d7c2NXSz9DGxMG/vby6ube2tbSzs7S0sLK0tri7vb/BwcHFys7R0tnc3+Ll6Ovt8fL09/j5+vr7/P7+/v7+//////7+/fv5+PPw7OXf2NDJv7iqwdfR0NDQz83JxL67sq+ppaCcl5WSkZCPjY2LjIiIiIiIiIiIiIiIiIiIiIiKioqKioqKiomJiImLi4yMjY6PkJKSk5OTkY6LiIWCf356dnd4goSLjIiIhaZlb3uFjpihqrG4wMfO09jf4+bs8PP2+fv8/v7///////////////////7+/v79/f39/Pz8/Pz8/Pz8+/z8/Pz8/f39/Pz7+/v59/b08u/s6eXi39zZ1dLNx8PBwb66trGwr6+pqaeop6empqSlp6irra6vrLW+wsLBxcrQ09fb3uHm6ezu8fT29/n6+vz9/v7+/v////7+/fz5+Pbx7eni3NTLxbuqs9LSzNHQzszJxb+4tKqno56alpOQj4+NjYuMi4uIiIiIiIiIiYqKioqKioqKiYmJiYmJiYmHiIiJioqKioyMjY6PkJCQkY+MioeDf315fHZ0cHuDhIiFhIOjZG55g42XoKmwuMDGzdLX3uLm6+/y9vn7/P3+///////////////+/v39/f39/Pz7+/r6+vr6+vn5+fn5+fr6+vr7+/v6+vn59/Xz8O7r5+Tg3NnY0MfGxMC6t7Cvra6yucHFzs7Ozs3MysjMycS9tq+ppqioqq60usDCxMjN0dXZ3uLn6u7x8/X3+fn7/P39/v/////+/fz6+Pb07enl3tfOxbutr8vP0cvSy8vHw722sKukoZyZlZKPjYuLioqJiYqKiIiIiIiJiYmJiYmJiYmJiYqKiomJiYmJiYmJiomJiYqLi4yNjo6Pj46Oi4mGgn57e313b3BxgH2FgX5/m2FrdoCKlJ2nrrW9xMrQ1dzh5eru8PT3+vv9/v7+/v7+/v7+/v79/fz7+/v8/Pv6+vn4+Pf39/f39vb29/f39/j4+Pj39/b29fPw7uzq5eLe2tXSzsrEwLiurK67wszU19TPzMzMzc3LysfGxcTDwsC+vLu6sKSgpK61ubq/xcrO09nd4OPo7O/x9Pf4+fv8/f3+/////f37+ff08erl4dnRx72xp8jQ0M7OzsjFwbu1rqejnZqWk5COjYuKiomIiYmJiYmJiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYqKiomJi4uLjIyNjY2Ni4qIhoJ/e317dXJybHZ2fnp3eZRdaXN9h5CZo6uyusDHzNLa3uLo7O7y9vj6/P3+/v7+/v7+/v39/Pv6+vn5+Pj39/b19PTy8vLy8vLx8fLy8vPz8/T08vLx8O/t6ufm4t7Z1dDLxsK6sq6vt8jX1dbU09DQz9DNzc3Ly8jHxsDAv7+/v728vLy7s6iioqaus7q/w8nP1Njc4ebp7PDz9vf5+vv8/f7//v38+/n29O/o4t3VzMG3qb3Mz8vOzcvFwby3sKminZiWko+OjIqKioqJiIiIiYqKioqJiYmJiYiIiIiIiIiIh4eIiIiIiIiKioqJiYqKiYqKi4uLjI2Ni4qJiIWCfnx+enN6dGxpcHh1cnSQW2dxeoSOl6Gor7i9xMrQ2N3h5urt8fX4+vz9/v7+/v7+/v78/Pv6+fn49/T08/Lx8fDv7e3t7e3t7Ozt7e3u7u/v7+7u7ezr6OXi4NzX0s3Hwb21rrDC1NvZ2NTV1dTR0M/RzMvKx8bFxMPEw8HCwsLAvrm1srO0sKegoaats7i9xMrS1tzh5ejt8PT2+Pn6+vv8///9/fz59fHr5N/b0Me/rqjM0MrLx8jDwLy1r6mjnpqTkpCMioqIiIqKioqJiYmJiIiIiYmJiYqIiImJiomJiYqKiYmJiYmJioqKioqKioqKioqKioqKioqKiYeFgoB/fnl5fXlyXm9xcW1yhVJdZ3Z+iZOaoqyzub7FzNLY3eHm6vD09vf6+/v7/Pz8/Pv6+/r5+Pj29PP08+/u6+rn5uno6Ofm5ubm5eXm5+bn5+fo6Onl4OHg2tXWzcXDv7evqsLX3NjW1NHV1NHOzczJyMjHxsTDwsLCwL++vby7urq3trW0sq+urKSfn6qztrm/x8zT2eDn6uvu8PP2+Pr7/P/+/Pv69/Pv6eLc08vCtKm60M7JycTFwr24saqloJqXkpCPjIqKiIiKioqKioqKioqKioqKioqKiYmKioqKiomIiYmJiYmJiYqKioqKioqKioqKioqKioqKiomHhYKAf317fXt9fGJqbG9rboJWYWpweISPl56lqbO5wMbN1Nvf5Oju8vT2+Pr7+/z8/Pv6+vj39vTz8vDu7Oro5uXj4d/f3t3d3Nzc3OHh4uLi4uPj4d7f4N3c2NPOycXAuqypxNfd39rW19TR09DNzMvJyMbFxcPBwL+/vr28vLu6ubi4trW0s7Gurausp6Ken6eyur3DzNLW2+Ln6+3x9Pb5+/z+/Pv6+PXw7OXe2MzGuaquydDJycjBw8C3squkn5qUkZCPjIuKiYiJioqKioqKioqJiYmJiYmJiYmJiYmJiYmIh4eJiYmKioqKioqKioqKioqKioqKioqKiYqIhoWDgYB9gX97gYRqYWRqZ2h6Ul1kbnR8ho+YoKWss7q/xc3V2d/j6e3w8vX3+fn6+vr5+Pf29fPx8O3r6ePi397e3d3b1tXV1NTU1NTW1tbX2NnZ2djV1tfUz8zJwrq0s6620dfb2tfU09XT0M/NysjHxcPCwMC+vbu6urq5ubi4t7a2trW0s7KwrayrrqejoJuZoq6zvMXJzNPb4ubp7fH09/n7/vz6+ffz7eni2dPHwbOmvMnLx8jFv8C6sq2moJqWkY6MjIuKiImJiYmJioqKioqKiIiIiIiIiIiJiYmJiYmIiIiIiImKioqKioqKioqKioqKioqKioqKioqJiIaEhIKBfoWAf4OIeFlbYGBicE1XX2pweIGIkJmgpa21ub7HztLY3ePo6+7x8/X29/f39vTz8vHu7Orn5OHe3NfV0tHR0M3MzMvLy8vLyMnKzM3OztDOz8/MxsPCwL6wray92d3c1NTW1dPQzcvLycbEw8C+vbu6uri3trW2tLS1s7OzsrKzsrGwrqyrqqSkpKSfmpqeqbK6v8XN1trh5Oru8fT3+f78+vj28evm39TOxburq8nFx8jGwr28ta2popuXlJCNioqKiIiIiYqJiYmJiYmJiYiIiIiIiIiIiIiIiIiIiIiJiYmJiYmKioqKioqKioqKioqKioqKioqKiYiGhYSDg4CGgIWEiYpaVFVVWWVFTllfaHR9g4iRl52krLK4wMjL09fe5Ojr7vHy8/T19PPx8O3r6OXi3tvY1dTRzczKx8bDw8LCwcHBwcTEwsPCwsLDwsbFwL29ubSsqK3K2tbZ1tXV09HNycfHxsPAvry6uLe1tLSysbGwsK+vr6+vr7Cwrq+urayrqqmko6Gfnp2bmKClrLS9xMvQ2+Dm6+7x9Pf9/Pr39O/o49vRyMCyprPKxMjIwry6t7KqpJ6YlJKPjIqJiYmIiIiIiYmJiYiIiIiIiIiHhoaGhYWFhYWFhoaHiIiIiIiIiYmKioqKioqKioqKioqKioqKiomIh4aFhYWFhYSKiIuVbFNVU1RfRUtTV19ocHV8ho2VmqGpsLjAxM3R2N7j5+rt7/Dx8vHv7ezp5+Tg3NjU0czLyMTBvbi1trW0tLOzsrO4uLm6u72+vrq8uLS1tKyknavP3dXW1dbRzsvIyMbEw768uba0s7CvraysqqmpqKioqKioqKmpqqioqamoqKenqqOdnJyamJeXmaCstbvDy9Ta4ebq7fL1/Pv49vLs5eDW0MS6q6q/xMTGxL+7trCupqCZk5GOjYuIiIiJiYiIiImJiYiIh4eGh4aFg4KBgH6AgICAgYGCg4OEhIWGh4iIioqKioqKioqKioqKioqKioqJiIeHhoaGiYSLjY6RmohGTk9PWERERVFWYGpxeX+CkZGVnqastLvDyNDW29/j5unq6+zr6efm4+Hd2dTQy8jDv7q2s7Kxr6uqqainpqampqanqaiqq6uuramoqKOeoLDW39bS0tTT0c7Jx8XDwLu2s7CtrKmnpqWko6KhoKCgoKCgoaKjo6OjpKOkpKSko6Whn5yalpKOj5CWoaqyvMfN09vi5urv8/v69/Xx6+Pe0tDBt6iwy8DCwb+8u7SqqqOdl5GOjIyKiIiJiYqIiIiJiYmIh4aGhoOCgX98enh4enp6ent8fX6AgIKDhYaHiIqKioqKioqKioqKioqKioqKiYiIh4eHh4yFkY2VmJqdYnqMnLm7w8LDxMfGwLSkmpCNjpeeo6qyu8DIztPY3N/j5OXm5ePh39rY08/KxcC9trOusLW+x83R0M/OzMzLy8nFv7evpqCcoJ+en5yVmqna2djU1tXPzs7NycK9vLm2r62qp6WkoKCenp6cm5uam5qampydnZ+fn5+goaGioqKgoZ+cmJOOi4aJjZOeq7e9x87X3+Tp7vP8+vfy7ung2dPBwK+hu8DBwr+8urawqqadmpOOjIuKiYqJiYmJioqKiIeHh4aFg4F/fXt6eHd1dHFwcHN0dHd7eXx/goOFhYaHiImJiYiJioqKioqKioqKiIiHh4iIiYmKjY+SlZibnqeqr7O3ur6/wcLDxMLBvrzAtqWVkJWirLC7vr/IztPf2uDf297d2djPz83Iw721rrS+zNXW1NLQ0M/OzcrKyMfHx8XDxsfAtaCVj5GLiKXT19bV0tHOy8nGwr24ta+sqqWjoJ2amZeUlJOTk5KSkZGSkpKRk5SVlpqbm52dnZ+enJuYlpOQioeDfnyAlaettcPK09ji6Ozv+vn18Ozn3tfOwLyrqL7Av8C/ure0rqijnJeSjYuKiomJiYmJiYmKioiGhoWFgn99eHZycW9saWhnZmdpa2xucnR4fH+Bg4SGh4iJiYmJiYqKioqKioqKioiIiIeIiImJi42Pk5WZnaCoq6+ytrq9wMDBwcPBwL28ubi2squglY2nrK+5xsrJz9nZ19XW1dDOzMXAvLSvvdHZ2drZ1dPR0M7NzMvJyMbGw8TDwsTHyMTMwKyKep/O3NXU0dDNy8jFwL24s66qpaOenJmXlpOSj4+Pj46Ojo2Njo6OjpCRkpKUk5WWl5eXmZeVk5GNioN/fHN0c3uTpq+4xs7V4eDi8fn49O7q5NvTyL+1prLAvb+9ure0sKykoJmWkYyLioqJiYmJiYmJiYmIhoWDgX97eXNva2dkYV5cXVxeYGFkZ2xvc3d7f4GEhYaHiYmJiYmKioqKioqKioqIiIiIiIiJiYyNkZOWmp6hqKuwsra5vL6+v8DAv769u7q2sa+tqaKdnJ6ksbq+vsLJys3PzcvIxsK+s623zdjW2tjV1NPT0c7LysnIx8XDw8HDwsHBxMfKysvQwLLJ28rS0M3LyMXBwLe0r6qloZ2al5WSkI+OjYuLi4uLioqKiouLi4uMjI2Oj5CRkpOTk5KTkIyKh4F7dnNramRid5SttsPHz9zi5e759/Pt6OLZ0MS9rqO6v7m/uri1sa6noZyWko6LiYqKiYmJiYqJiYmIh4aEgX98eHRvamRfXFhVUlJTVFdaXF9laW50eXx/goSGh4mJiYmJioqKioqKioqKiIiIiIiIiYmMj5GUl5ufoairrrO1uLu9vby+v728urm4tK2rqqqpp5uZnaWss7e4vsLGxcLBv7q3q6/G2dzY2NTS09LT0s3Kx8jGxcTCwcHAv7/AwL/CxcfGyMvMzc/PzcvJxcO+urivrKainZmVk5OQjo6NjIuKiYiIiIiIh4eJiYmJioqLi4yMjY6Pj46MioiEgHx3cGtlY2BZVlp0n6+5xNPX3ubo+ffy7Obf1s3BvKeivby4vLi2sq+rpZ+ZkpCMiomJiYmJiYqKiYmIiIiEgoB8eXRvaGNcVFFNSkdHR0hMTlJYX2VqcHZ5fICDhYeJioqJiYqKioqKioqKiomIiIiIiYmKjY+SlJebnqCpqq2wsrW3urm7uru7ubi3s7Ozsa6pop+inZmZoKqwr7W4ube2uLStprXM3NzU09rW1NHOzcrJycXEw8HBv7++vLq5vb+9v8LAxMLDysnGy8jFw7+7uLSwqKWgnJeUkY6Pjo2Li4uLiomJiIiIiIiIiYmJioqJioqKiYmJiYeFgoB9eHNvZ2JcVVRST0tGUHKwu77P0tvi6Pj28erk3dPKv7ijp7u4uLm3tLGtqKOdl5GOi4iIiYmJiYmKiomJiIeFgn58eXRtZ2FaUUtGQz89PT1AREZKUllhZm10eHt/goWGiYqKiYmKioqKioqKioqJiYiIiImJio2OkZOVmZyepairrK+ws7W2tba3trW0tLKxr6yppqWlnqOhmpeZoaiorKutsKykobTS4dfO19vRzc3MysbFxcXAv728u7q6ubq4tbi8vL2+v8PDwL/FxcPBvru3tK+rqKGfm5aTkI6NjIqJiYqKiYiJiYmJiYmJiYmJiYqKiomJiYiGhoOBfHp3c21mYVpSTkhDREQ/Pj5Fg7bBydLg4un39e/o4trQx7uyoa+5tbm1tLGuqqagmpWPjYuIiIiJiYmJioqJiIeGhIB7d3NsZV9XUEc+Ojg0MTQ0Nzs+Q0tUW2JqcXZ5foKEhomKioqKioqKioqKioqKiYmIiImJioqNjpCSlJeanKGkpqmqrK+wsLGxsbGxsK+vrquppqSjopykp6SbkI+cnqGhpKOZnK7Z1dPW19TR0szLysjFwr69ubm3t7W0tLS3tLO0tre4uru5urq4u768ubazr6umo5+cmZWRj42Mi4uJiIiJiYmJiIiIiIiIiYmJiYmKiYmIiIiGg4F/enVxamZeWFBKQj86NjYzNDc1O1aoxc7S3d7p9vTu5+DYzsW5rqC1t7S7tLOwrailn5iTj42KiIiIiYmJiYqKiYiHhoJ+eHRuZ19YTEU8My8sKScqLC4yNTpETFddZ290eH6ChIaJioqKioqKioqKioqKiomJiYiJiYqKjI6QkpOVl5qfoaSmp6iqq62ura6tra2sq6mmpaSkoqGioaGoq5iGiZGUk5WUj6jZ19bU1tXQzcvNycTBv726t7S0s7KxsbCwrq+xsrK0tba5t7i6uri3tbOxrqmloZ2amJWRjo2Li4qKiYiIiYmJiIiIiYmJiYmJiIiIiYiIiIaDgX57eHNtaF5YUEdAOjMvLjApIyosMEWQtrjI0dvb5/fy7efe2M7Ct6ibuLa1srOzsKumoZyXlIyLiomJiYqKiYqKiIiJh4SDe3VwaWJZT0Q8MCoqKygjIyQmLDA0PUVPX2FucXd7g4WHiYqLioqKioqKioqKioqKioqKioqKioyMjo+SlJWWmpucn6GipaWmpqampqamp6empaOioKChoaGkpqmvnHmJhI2Eg6XQ3dbU09DPzcvJxMK+urezsK+srKuqqaioqKioqaqrqqysra6ur66trKupp6OhnpyYlpGQjoyLi4mIh4eIiIeHhoaHh4aGhoaHiImIh4eHhoWDgH14cm9sY1pQSUA6Ni8pJykmIiQjKlmdqLK9yNLa4en28evl3dbMwLSnnre1tLKzsK6ppaCblpOMi4qJiYmKiomKioiIiYeDgXlybWZcUkg7NCsoJiQjIyMkJystMjtGUFZfbW93fIOFh4mKioqKioqKioqKioqKioqKioqKioqLjI2OkJGTlJaYmJqdnp+goKCgoaKioqKioqKhn56fn6GipKSnsamUcX96eJTR2cvU0s/Oy8rHxb+8uLSyrqupp6alpKSioqKjo6SlpaaoqKmpqqqpqKempKKfnZuYlJOPjoyMioqIh4eHh4eFhIOCgYCAf4CAgYKCgoKCgYF/fnp3cGplYFZMR0E4LScnJSMjIiMhLmKUoKq1v8nT2uHp9e/q49rTyLyxpaO2tLKxsa+sp6OfmZORi4qJiYmJioqJioqIiIiGg352bmdfVUk9MywmIyIiJyw1Nzk5Nzg/R1JSXm1weH2BhoeJioqJioqKioqKioqKioqKioqKioqKi4uMjY6QkZGSkpOVlpeYmZiZmZmampycnJ2dnJybnJ2eoKWkpbC2rndsa4XE087S0M/MycfDv722s6+sqaShoJ2cnJyampqZnJucnZ+goKGhoaKioqGgn52cmZeVk5GOjYyKiYmJh4aGhIOCgH98fHp6eXh5enx8fHx8fXx8eXh0b2lgW1NJQDwxKCgoJCAdIycgOXGKkKauuMLL1dvi6fTv6eHY0Ma6rKSotrKvsa+sqqahnJeSj4qKiYmJiYqKiYqJiImIhYF8c2piWU5CNTEqIyEkLDc/Q0VJR0M/QEJRXGJudXp/goiJi4yLioqKioqKioqKioqKioqKioqKioqLi4uMjY2Njo6Pj5CRkZGRkZKSlJSUlJaXl5eYmZqcmp2kpqatt7eoYmu31c3H0MzLyMXBvLi1raqnop+cmZaVlJOTkpGRkZOUlJWXmJmZmZmampqZmJiWlZOSkY+NjIqJiYiIh4WEg4B/fHp3dXRycnFxcXJ0dXZ2dnZ3dXNxamZeVk5HPTUxLCYlIR8hJB8kS3eDjZ2jsbvFztfd4+v07ujh18/EuKihrbOwr7GtrKmloZyXkY+KiYmJiYqKiomKiYiJiIR+enBnX1RKPTItKSMiKztHS0lMT09PTEhFS2VmbXp6goaIi4yNjIuKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4yNjY2MjIyNjo+QkJCRkpSTlZaYmpiboaenrbK3vImXyczKy8fHxcK+u7awrKSinpuYlJKQj46OjY2MjY2Ojo+QkZGTk5OTk5OTk5KSkpCOj46Ni4qKiYmIh4aDgn99end1cm9saGhnZmdoamttbm9vb21qZ2BaUUlBODErJyckIiMjIR4rWXR/j5ierrS+yNHa4Obt8+3n39bNwralnrCxrq2xrKqopJ+blZGOiYmJiYqKioqJioiJiYeCfHdtZFpQRzsxJyUjKDVETlFXWFlZWllVUEliam99fYWIiouOjo2Li4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uMjY2Njo+QkZKUlpeZmqCkqKuwtLS0wMDIwsPHwL67trKtqKWcm5eVkpCOjIyMi4uJiYuLi4uMjI2Njo6Pj4+Pj4+Pj4+NjIyMi4qJiYiIh4aEgX19eXVxbmpmY19eXl5eYGJjZmZnaGdkYV1WTkU9Ny4oJCUfHyUkICY0Y25/ipCeqa+6xM3V3uPo7/Ls5t7UzMG1pJ6zrqutsamppqKfmpWQjYiIiYmKioqKiYqIiImIgXt2amBXTEQ5LiQhJjNBTFRaYGJiYmBfW1dTWHB4f4OHioyOj4+OjIuMioqKioqKioqKioqKioqKioqKioqKioqJiIiIiYiIiIiJiYqJiouLi4yMjo+PkJKUmZqdoqSorbC4t7nBvcK7vrm2s62ppKCdl5WSkI+NjIqLioqJiYmKiomJiYmKi4uLjIyMjIyMjI2NjIqKioqJiIiHh4aEgXx7d3NtaGRfW1dUU1FSUlRWWFpaW1xbV1NQSUI5My4oJCMlISEiHiVGanWBiZGbo6+9wcrT2uLm6/Hx6+Xd08vAtKOds6yqrLGpqKWhnpmTj4yIiIiJioqKiYmKiIiJiIF7dGleVEk/NiwkHyg9TFJbZmVpa2pnZWJeYlB5gH+IiImNjpCQjo2Mi4qKioqKioqKioqKioqKioqKioqKiomJiYiIiIiIiIiHiYmJiYmJioqKi4yNjo+Qk5eZnJ+hpKistLG5uLi3uLizsayno5+amJSRj46Ni4uJi4uJiYmJiYmIiIiIiIiIiIqKioqKioqKjIqJiYmJiIeHhoaFg397d3FtZmBbVVBMR0ZFRkZISkxNTE5OTElEQTs0LSknIiEiICQhHTBTbnaAiZOapKy0vcbP197k6Ozy8evk3NLJvbGjmqytq6qsrKWkoJyYk4+LioqKioqKioqJiomIiIV+d3JnXFNIQDUqKCA2RlJcZGxwcnNzcnFsaGRadIaGgZCPkJKRkpGPjYuKioqKioqKioqKioqKioqKiYmKioqKiomJiYiIiYmIiIeIiIiJiYiIiYqKi4uMj5CTlZibnqGkp62usbKzsq+vraqmop6alpONjIuJiYmJiYmJiYmJiIiIiYmJiYmJiYmKioqKioqKiomJiYqJiYiIiIiFgn98dnFtZ19aU0tFRD0+PT0+P0FBQ0ZGREJAPDcxKikoIyIiHSQdID5hdHl/iZGcpq22v8bQ1d3j6Ozw8/Dq5NvRyL2wpJqsraqqq6ylo6CbmJKOi4qKioqKioqKiYqJiIiFfndwZltSRz81KyYjPEpXYmpweHp7e3p5dG9qXXKHioeSkJGSk5OSj42LioqKioqKioqKioqKioqKiomJioqKiomJiYiHh4iIh4aHh4eIh4eHh4eHiImKi4yOkZOWmZufoqWoqautraypqaWin5yZlZCPjIuKiIiIiImHh4eHiIeHh4mJiYmJiYmJioqKioqKioqJiYmKiYmIiIiHhIF8eHRtZV9YT0c+ODUzMC8xMjE0Njg5OTc3NDAqKiUkJSEfISYbLkdhdH2Ei5Wcp7C3vsfO1dng5uru8vTw6uPa0Me7r6Kaq6yqqaqqpaKfm5eSjouKioqKioqKiomKiYiIhX12b2RZUEU9MyklJ0NQX2pyeICCg4OCgHx3cWJwio+OlZGTlJSUkpCNjIqKioqKioqKioqKioqKioqJiYqKiomJiYmIh4eHh4aFhYWEhIODg4OEhYaHh4iKjI+Qk5aYmp2goaOkpaWkoqCdnJmXlJGOjIiHhYSEg4OEg4OEhYWGhoeIiIiJiYmJiYqKioqKioqKiYmJiomJiIiIhoN+eXRtZltXTkM5MS0rLCgnKisoKi8vMDAwLy8qJyAhHx8jJSQiMk9reH6EjZahp7G5wMfP1Nvg5uvu8fT27+ni2c/Guq6im6urqaioqaShnpqWko6LioqKioqKioqJiomIiIR8dWxiWE9EPDQpJSxKVWNyeX+Fh4mIh4aBfHhocI+Sk5eTlZWVlZSRjYyKioqKioqKioqKioqKioqKiYmKioqJiYiJiIaGhoWEg4KBgH9+fn5+gYGChIWGiYmNjpGTlZeZm5udnp+enZuZl5WUkpGOi4mDgoB+fX5+f36AgoKDg4WGh4eIiYmJiomKioqKioqKiomJiYqJiYiIh4WAe3ZxaGBWUEU6Mi4qKCYkJScnJiUnJygpKCcnJiUkIR8kJB8oPV5teX6Fj5ifq7G6wsjO1tvh5evv8fT2+O7o4dnOxbmtoJqrqaiop6ejoZ6alZGMioqKioqKioqKiIqJiIeEe3RsYFZORDwzKiYxTlhndYCFjZCRkZCOiYN8bnGUlJaYmJeXmJeUkY6MioqKioqKioqKioqKioqKiomJiYqJiYiIiIeGhIOCgX9+fXx6eXl6enx9f4CChIeIi4yQkpOUlZaXmJmamZiVlJCPjYuKiIWCf317eXh5eXl5e35/gYGEhYaHiImJioqKioqKioqKioqJiYmKiYmIiIaEf3h0bmNbUUk9My0qJiQkJiYjIyYnJSEjJCUjISEjJSclIiAnRGp2fIGJlZ6kqra8xMvR197i5unu8vT2+fvu6OHYzcS4rJ+cqqiop6WloqCcmZWRjIqKioqKioqKioiKiYiHg3pya2BWTUQ8NSwnM1JbbHuEi5GTlZWUkYyHgXRympeZmZuampqYlpKOjIqKioqKioqKioqKioqKioqJiYmJiYiIh4eFhIF/fnt6enh2dXR0dXZ4eXt+f4KFh4mLjY+QkJKSkpSUlZSTkpCNjYqIhoJ+e3t5d3R0dHR1c3V5e31/g4WFhoeJioqKioqKioqKioqKiYmJiomJiIiGgn12cGlfVUtBNy4pIyIjJDA7P0A9NCglIiAhIiIhIyMkHx81VW11fYWNl6Gnrbe/xMvS2N3j5+ru8vX2+Pr87ujh2M3EuKugm6qmp6ekpaGfm5iUkIyJioqKioqKioqIiomIh4N6cmxhV01FPzYuKjdVYHKBiZGWmZuamZeRi4Z5cZ2anpqdm5ubmpaSj4yKioqKioqKioqKioqKioqKiYmJiYmIh4eFg4F+e3l2dXJxb21sbW5vc3V3ent/goWIioyNjY2Ojo6QkJGQj46NjIqIhYJ9eXV0cnBtbWxtbm1wc3d5fICDhIWHiYqKioqKioqKioqKiomJiYqJiYiIhYJ7c21lWU9DOjEqIyEpNEhLTk9RVFRSPTAjHh8hISAnHydFZXd9fYiSm6GprrjDyMzT2d7j6Ovw8vb3+Pn7/O7o4djNxLirn5uqpqampKShn5uYlI+MiYqKioqKioqKiIqJiIeCeXFsYldORkA4Lyo3V2N3hYyWnJ+hoaCdl5GLem+fnaKcnp2dnJqXko+MioqKioqKioqKioqKioqKiomJiYmJiIeHhIF+e3l1cnBraWdlZWZoaW9xdHd6fYGDh4iLjIyMjIyMjI2OjY2LioeGg4B8d3FubWxoZmVmZ2dpbXF1dnp/goSFh4mKioqKioqKioqKioqJiYmKiYmIiIWCenJrY1ZKPzYtJiAjNUpVVVtfYmRiZGZMMCIiJCIgIC1RdHx7hZGUnaSqtL7EytLW3OHm6u7x8/b4+fn5+/zu5+DXzcO3qpuZqKWmpaOkoaCcmJOPjIqKioqKioqKioiKioiGgXlzamJaUkhAOjMsPlpneoqVmaCipKSin5mTi4J1oqGfn6GdnJuZl5OQjIqKioqKioqKioqKioqKioqJi4uIh4iHhYN+fHlzcG1mZmVhX11eYGJqanB0fH57hoWHiYuLi4uLi4yLi4uLiIeHhH97d3JsaGhjYF5dXWBkZGptcHZ6foKFh4mKiomJiYqKioqKioqKiIiJiomJiIeFf3hwZV5TRz0zJyIfM0xRWF1jZmlsbm1ucVwmISIiIjdmgH6Ei5CYoKewucDHz9TY3ePo6+7y9Pj5+vv9/f7+7ufg18zDt6mbmailpqWjpKGgnJiTj4yKioqKioqKioqIioqIhoF5cmtjW1JIQTszLz5caX6Ml5uhpKampKGblY2EdqKhoKCinp2bmpiUkI2KioqKioqKioqKioqKioqKiYuLiIeIh4WBfHl1b2tnYlxZVlZWWFteZGVscXl+enyFh4mLi4uKi4qKioqKiYeFhIF9eHRuaWVfWldVVFVXXF5laW1yd3yDhIaJioqJiYmKioqKioqKioiIiYqJiIiGg312bmNcUkU8MSgjKEFWW2JobnF0eHp6fHp2TCEcJk+AiIeHkpidpquyusLIz9bb3uLo7O/y9ff5+fv8/f7+/u7n39fMw7epm5mnpaalo6ShoJyYk4+MioqKioqKioqKiYuKiIaBeXJrY1pSSUI7NDJAXWuAj5mdpKepqKeknZeQhXiko6GhoqCfnJyZlZCNioqKioqKioqKioqKioqKiomLi4iHiIaEfnh1cGlkYFpWUk5PUFBTWF9gaW10fYGBhYeJi4uKioqKiYmJiYiFg4F9eHJuaGJdWFRQT1BRVVpYX2ZqcHR4f4SGiIqKioqKioqKioqKioqJiImKiYiIhoJ7dGthWU9DOSwnIDBPX2Rscnl9gISGh4iMjXYoMmaNkI+RmaOkqK+3vMTL0dbd4eXp7vH09vj6+vv8/f7+///u59/WzMO3qZuZp6WmpaOjoaCcmJOPjIqKioqKioqKiomLi4iGgXlyamFbU0lDPDQzQV1tg5Gbn6apq6qppqCakYZ6pKOioqOhoJ6cmZaRjYqKioqKioqKioqKioqKioqJiomIiIeFgn12cWxkXllTS0ZDRkZHS1FdX2hsb3iAhIaIiouLioqKiIiJiYmHhYJ/enRuaWJcV1NOSUdHR0tQU1tiaHB1eHyEhomKi4qKioqKioqKioqKiYiJiYmIh4aBe3NpXldMQTksKSA4WWNqdHuCh4qOkpOWkZuTY4WanZidoqWnrra6wcbN09ne4+fs7/L19/n6/Pv8/f7/////7uff1szDtqmbmKekpaWjo6GgnJiTj4yKioqKioqKioqIi4qIhoF5cmpjWlNKRD83NUJcboOSnKGnqqyrqqegmpCHeaajoqKjoaCfnZqVkY6KioqKioqKioqKioqKioqKiYqJiIiHhH98dG1oX1lSS0lCQEBBQUZMV1piam91foOHiYuLi4qKiomJiYmJh4SCfnhxamRdVlFLRUA+P0JHTVBYXmVweXx/hYeKi4uLioqKioqKioqKiomIiYmIiIeFgXpzaV5WS0A5Li0kQl9pc3yEjJGVmp6go6OlpqKvpKGqrbCvsrzDwczQ1tzh5uvu8fL19/n6+/z9/f7//////+3m39bMw7apmpinpKWkoqOhoJyYk4+MioqKioqKioqKiIqKiIaCeXNrY11WTUhDPDlEXG2Ekpygpqmrq6mmoJqRhnmlpKOio6Kgn52blpGOioqKioqKioqKioqKioqKiomKiYiIhoJ9eXFpYllUTUQ+Ojk6PD5FTFddX2Zxdn6EiIqMjIuKioqJiYmKiYiEgXx1bWVgWE9KQj05ODk9Q0hPWV9kbnd8gIaIi42Mi4qKioqKioqKioqJiImJiIeGhYJ6cmheVUxBNS0qJUpjcHuCi5SZnqOoq6q1sbCvqK6zsLK3vsHEyczU193i5uvu8fT19/j6+/v8/f7+///////t5t/WzMK2qZqYp6SlpKKjoaCcmJOPjIqKioqKioqKioeJioiGgnp0bmZfWVFLSEE/Rl5ug5GbnqWoqqmopJ6Yj4Z7p6eko6OioZ+dmpaRjoqKioqKioqKioqKioqKioqJiomIiIeBfXZtZF1UTUY9PDgzLSgmKi9MYmZpcXd+g4mLjI2Mi4qKiImJiomGg4B6cmlgWlJJQz04NDIyMTY5RVRhZ292fICHioyOjYyKioqKioqKioqKiYiJiYiHhoSAeXFnXFVLPzUuJydUaHeAipOdoqetsra4tb+8try8u8DCxcnLy9Ld297i5+vu8fP3+Pn6+/z9/f7+///////+7ebf1svCtqiamKekpaSio6GgnJiTj4yKioqKioqKioqHiYmIh4J6dG9oYltUT0tEQ0pfboOQmZ2kp6iop6Odl4+GfKinpaSloqGfnZqWkI2KioqKioqKioqKioqKioqKiYqIiIiHgXxzamBZUElCODEvKiMdHCEmKFRpbXZ7gYeKi42NjYuKioeHiImIhYJ/d29lXVZORj42MjIyNDU5PTNMYGtzeH2CiIqNj46MioqKioqKioqKiomIiYmIh4aEgHhwZltUS0A5MicsXWx9hZKcpqywt73AxMTEzMbExsXIzc3P19ra3ePm6e3w8/X3+vr7/P3+/v7+/v/////+/u3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiYmJiYaBe3dvaWJdWVVOS0pNXXKBjZaaoaWnpqShnJeOhnirpaalo6Ohn52ZlZGNioqKioqKioqKioqKioqKiomIiYiIhX52cGdfV01GQDkvKyYcIyEmKShNaG95eoeJjo6Oj42Mi4qKioiIiYeCe3ZtZVxRSUM7NjIyNTk8PD49O2lwc31/iY2Pj5COjYuKioqKioqKioqKioqKiomGhH93b2ZbUktCPDMtKGZzf42WoqyzusDEyczNz9DQ0dHS1NXX2tzf4+Xq7O/y9ff4+fz8/P39/v7+///////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKiomJiYmGgXx3b2tkX11ZU09OUFxwfomTl56ipKOhnZiTi4V3q6anpqWjoZ+dmZWRjYqKioqKioqKioqKioqKioqJiYmIh4V9dm5lXlRLRD03MCwoHiQjKSspR2x0fX6KjY+PkJCPjIuKioqIiYiHgnt0bGNaT0hBOTYzNDg9QUFDQT1lc3mAhYmOj5CQj42LioqKioqKioqKioqKioqJhoR/d3BoXVRMRD40Lyxpd4KQm6axuMDGys/T1dfY2NjZ2dvc3uDj5ejr7e/y9ff5+vr8/P39/v7+////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqJiYmJhoJ8eXJuZ2NhXllWVVNdbnuFj5SanqCfnpuVkYiCdqynqKelo6GfnZmVkY2KioqKioqKioqKioqKioqKiImJiIiEfHZsY1pRR0E7NDAtKiIlJywuLT90e4OFjZCQkZGRj46LioqKiImIhoF6c2phWE5FPzc0NDg/REZHSUhDYniBhYqKj5GRkZCOjImKioqKioqKioqKioqKiYaEgHdwaF5WT0ZCOjQya3qGk5+rtb3GzNHW29zf4ODg4eHj5Obo6ezu8PLz9fj6+/z8/f3+/v7//////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiYmJiYaCfXp1cGtoZWNfXVxVW2t4gouSlZibmpmXko6Gf3WtqKmnpaOhn52ZlZGNioqKioqKioqKioqKioqKioiJiIiIhHx0amFZT0VAOjMwLisnJikvMTI4e4GHi5CTk5OSkpCOi4qJioiIiIaAeXJoXlZMRD43NDU8RUpNTU9OSWGAh4iPjZKSk5KRjoyKioqKioqKioqKioqKiomGhIB4cGlfWVFKSD86OW17h5Shrbe/yNDV29/h5OXm5ubn6Onr7e7v8fP29/j6+/z9/f7+/v/////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioqJiYiGhH98eHNwbGpoZWJhV1lodn6IjZKUlpaVk4+Lg3xzrKupp6SjoZ+dmZWRjYqKioqKioqKioqKioqKioqIiYmIh4N7c2lgV05FPzo0Mi4uLScrMTQ4NYSEjI6TlZWVlZORj4yKiYqIiIiFfnhxaF5WS0U/OTQ4QUpPUFFUU05khouLkZKUlJaUko+NioqKioqKioqKioqKioqJhoR/d3FpYlxVT0xEQEBsfYeVoa24wMrS2N7h5Ofp6uvr7Ozu8PHy8/T2+Pn6+/z9/f3/////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqKiYmIh4R/fnp3dHJwbmxralpWZXJ6goiLjpCQj42Khn55cayrqqelo6GfnZmVkY2KioqKioqKioqKioqKioqKiIiJiIeCenNqX1dNRT87NTUvMDQqLTI1OTWJiZCPlpaWlpaVk46Mi4mKiIeIhH12b2ZdVEtGQTs3O0ZPVFVWWVdSaYuOj5OVlpaXlpOQjIqKioqKioqKioqKioqKiYaEf3hxa2RgWlVPSEZHbXyIlqGtuMDK0tnf4+bq7e7v8PDx8vT29vf4+fr7+/z9/f7+/////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKioqJiIeEgX98e3l3d3V2dXRdU19sc3qBhIiKiYmIhIF6dG+srKqop6Ohn52ZlZGNioqKioqKioqKioqKioqKioeIiYeGgXhxaV5VTEQ/PDc5MDI7Li40ODc3j4yXkZmXmZiYl5SQjYuIioiHh4R8dW9lW1NLRkI8Nz5JVFdYWl5cVW+PkJWUmZmZmJeUkY2LioqKioqKioqKioqKiomGhIB4dG5nZGBZVk9NTmt5hZOfq7a+yNHY3uPm6+7w8vPz9PX3+fn6+/z8/P39/v7////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKiouKiYiHhYF/fn18e3t7e3t8YFFbZ291fH+ChIWEg4B9dnFsrK2rqaijoZ+dmZWRjYqKioqKioqKioqKioqKioqHiImHhoF5cGhdVUxDPzw3PDM0QDEvNDk1OpKPm5KcmJqamZaUkI2LiIqIh4eEfHRuZFtSSkVCPDg+S1ZbW11hYFdxj5KalZqZmZmYlJCOi4qKioqKioqKioqKioqJhoSBeXRwamdjXVtVU1Fqd4KQnamzvMbO1dvi5eru8PLz9PT2+Pn6+/z9/f39/v7/////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqJiYmJiIaEg39/fn+AgoOEhmZNUWBobXV1gYF5fnqBd3FuZrCrq6ikoqGfnZuVkY2KioqKioqKioqKioqKioqKiImIhoWAd3BpYFVNR0A+Pjk3Oj03MjU5PTWZmZacmpienJmWk4+MiIiKiYiHhH11bWZcVE1GQkA8QVBYXV9kY2NeeJqanpucn52bl5WSjYuKioqKioqKioqJiYmIiIaEgXx1cW1rZmReW1xZaXOEj5ijrLfByNDX4OTp7vDx8vP3+fr7/Pz9/v///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiYmJiYiGhIOEg4OEhIaIiYeFiI+TkJSaoKmurJ96dHFtamOvqqunpKKhn52blZGNioqKioqKioqKioqKioqKioiJiIaFgHdwaWBVTUdCPz89MzZAPjU1Oj85nZuXnZ6enp2Zl5OPjIqIiomIh4R9dW1mXFVOR0NCP0RSW2BhZmZkYHqbnJ+dnqCdm5iVko6MioqKioqKioqKiYmJiYiGhIJ9d3NwbmppaWlkYWdwe4aWoa22wMjP2Nzg5uvu8PLz9/j6+/z9/v/////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKiomJiYmIhoWEhoaHiIiKjI2MkJORj5CVmpefp62dbmlvaGVfrKmrqKWioZ+dm5WRjYqKioqKioqKioqKioqKioqIiYiGhYB3cGlgVk5IQ0FBRTk4Q0U8ODc+Op+fmp+gop+cmpaUkIyKiIqJiIeEfXVuZlxWT0lEREJHVl5jZWppZ2R9np6hnqChnpyYlpKPjYqKioqKioqKiomJiomIhoWDf3p3dHNxb2hua2tfaXSEjpmkrbe/yNHW2+Lo6+7x8/b4+vv8/f7/////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqJiYmJiIeGhYeHiImLjY+Qk5OSkJCUl5icoqKjlGpoaWVhXaupqqekoqGfnZuVkY2KioqKioqKioqKioqKioqKiImIhoWAd3BpYFZPSkVDQ0c+PUNFRkI6OzmfoZ2io6KgnpuXlJCNioiKiYiHhH11bmdeVk9KR0ZFSlhgZWhtbGtmf6CgoqGgoqCcmZeSkI2KioqKioqKioqJiYqJiIeFg4F9enl4d3Z1dHJ1Wmdye4iTnqavt8DK0dbe5ens8PP19/n7/P3+/////////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiImJiYiIh4eIiImLjY+RkouOkJKOjo+TlZqYnI9nZWFhXlusqaqlpKKhn52blZGNioqKioqKioqKioqKioqKioiJiIaFgHdwaWBXUEtGRERGPj1ARUlIQ0A8n6GgpKSioZ+cmZWSjYuIiomIh4R9dW9nXlZQS0dIRktZYWdqb25uaIGhoaSgoqKgnpqXk4+MioqKioqKioqKiYmKiYmHhoSBf318fHx8d3uCglRbbnqCjZaeqLG7xczS2uHl6e7x8/X4+/z9/v/////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioiIiYmJiIiIioqLjo+Rk5SVko+OioiLj5CUkpmKXFxeXVtYqqmppaSioZ+dm5WRjYqKioqKioqKioqKioqKioqIiYiGhYB3cGliV1BMR0VFSz06QkVDQkRIQKKjoaalo6GfnZmVkY6KiIqJiIeEfXVwZ15WUEpISEdMWmFna3Bwb2uDoqKkoqOjoJ6bl5OQjYqKioqKioqKiomJioqJh4aFg4F/f4CBgX+Di4JYVWVveoSLlJ+osrvEy9Xc4OXq7vHz9/r8/f7/////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqIiIiJiYmJiYqKjI2PkpKUkY+MiouJiIaKjYiPglVbXlpXVaioqKSioqGfnZuVkY2KioqKioqKioqKioqKioqKiImIhoWAd3BqYldRS0dGRk1APUVHQ0BARkGkpKKlo6Khn52ZlZGNioiKiYiHhH11cGheVlBKSUdITVpiaGtxcXJthKOjpaSko6Gem5eTj42KioqKioqKiomJiYqKiYiGhoWDgoKDhYeKiomJj5GUl5KUk5CPjY2Ru8PN1drg5uvv8vb5+/z+/////////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiIiIiImJiYmJiIuMjpCSkpKTkYqFhYWEg4iBhn1UWVZXVFOop6eko6Khn52blZGNioqKioqKioqKioqKioqKioiJiIaFgHdwamJYUUtHRUVIQUBFSU1IPj09paeipKKgop+cmZWRjIqIiomIh4R9dXFoXlZQSklHSE1bY2lscnJzboako6akpKOhnpqXk4+MioqKioqKioqJiYmKiomIh4eGhYWFhoeJiJKPh5ePjJSUlZGOjIiGiLS9yNDW3OPo7vH1+fv8/f7////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioqKioqKioqKi4uMjpCRkpSQkIyIgn99fH6AfoB1T1FVUlFQp6Smo6OhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGS0ZCREhIRkZDRKGjpqWkoaOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEhKXmRqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqHh4eGh4mLjI6RlJOUlpWUkZKRiYWCfoGrtb/J0tnf5unv9Pb4+/7+////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqKioqKioqKioqLjI6PkZKSkI+LhYB7eXh3enh6cEpOUU9PTqWjpaKioaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRktGQkRISEdHQ0Sho6alpKGjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhISl5kam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKh4eHh4iKjI2OkpSTlJSUkY2Mi4J+enR5prG7xc/W3OPo7vP2+Pv+/v///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKioqKioqKioqKi4uNj5CQkY6Mh4B6dXJxcHJwc2lGSk5NTEuioaShoqGgn52alZCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZLR0RFR0hISkREoaOmpaSho6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISEpeZGpucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKioeHiIiJi42OkZSVlJKSkY+MiYZ9d3JtcZ+qtb/K0djg5+3y9fj7/f7////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioqKioqKioqKioqLjI2Oj4+MiIN7dW9sa2hraWxkRUlOSkpJoaGkoaKhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGS0dFRkdISUxERaGjpaWkoqOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEhKXmRqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqHh4iJioyOj5KVlpWTko+MiISBeHFrZmqYo7C7xs7W3+Xr8fX3+/3+////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqKioqKioqKiomKi4uMjIyLiIN9dm9qZmRiZWNmYENJTEhJSaGhpKKioaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRktIRUZHSEpNRUWho6WkpKKjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhISl5kam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKiIiJiouNjo+SlZaUk5KNioF+eXBqY1xjkp+st8PL1N7j6fD09/v9/f///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKioqKioqKioqJiYqLi4uKioSAeXFrZWBfW19eYFxARUhISEigoKSio6Ggn52alZCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZLSEZHSEhJTEZGoqOlpKSio6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISEpeZGpucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKioiIioqMjY6PkpWVlJKQioV9eHRqZF1XXo2aqLS/yNLc4ejv8/f7/f3////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioqKioqKioqKiImKioqKiYeEfndvZ2JdW1hcW11YPUNGR0dHn5+joaKhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGTEhGR0lISUtGRqKjpaSkoqOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEhKXmRqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqJiYqLjI2OjpKTk5GPjIV/eXNuZF5WUViJlqSwvMXP2uDn7vP2+v39////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqKioqKioqKioiJioqKiIeGg353bmZgW1hYXFpeWD5DRUZGRp+foqChoaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkxIRkdJSEhJR0aio6WkpKKjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhISl5kam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKiYmKi4yNjY6SkpKQjYmCe3JtZ11XTklRhZOhrbnCzdff5u7y9vr9/f///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKioqKioqKioqIiIiJiYiHhoF7dG1lXllXWFlbWVdCQ0ZDRkWgoKKhoaGgn52alJCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZKS0pHSEtKSEVKoKWkpaOjo6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISEpeZGpucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKioiIiImKi4uLjo6Oi4iDfHVuZ2BXUEhDTIGPnqu3wszX3uXt8vb6/f3////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioqKioqKioqKiYmJiYmJh4aCfHVuZmBbWlhZW1lWQUJFQ0ZFoKCioaGhoJ+dmpSQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGS0tKSUlNTUtHS6ClpKWjpKOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEhKXmRqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqIiIiJiYqKi42NjImEf3dwaGBaUUpCPUeAjZyqt8HM197l7fL2+v39////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqKioqKioqKiomJiYqJiYeGhH11b2dgW1pYWVtYVkBCRENGRZ+goqGhoaCfnZqUkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkpMS0lMUFFPS06hpKSlo6SjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhISl5kam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKiIiIiImJiYmLi4mFgHpxamFaU0tEPDlCfYuaqLXAy9be5ezx9vr9/f///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKioqKioqKioqKiYmKiYmHhoN8dG1mXlpZWFlbWVZAQkNCRUSfoKKhoaGgn52alJCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZKTExLTlRWVFBRoqSkpKOjo6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISEpeZGpucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKioiIiIiIiIiIiYmGgn13bmVfVlBJQjs4QXuJmKa0v8rV3eTs8fX6/f7////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioqKioqKioqKiomJiomIh4WDfHVuZl9aWVhZW1lWQUJEQkVEn6CioaGhoJ+dmpSQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGSUxNTlJYWlhVVaOko6SjpKOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEhKXmRqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqJiYmJiYmJiYiIhYF7dW1kXVVPR0E6N0F6iJels77J1N3k7PH1+v3+////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqKioqKioqKiomJiYmIiIaEg311bmhgW1lXV1lYVkFDREFFRJ+goqGhoaCfnZqUkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRklMT1JXW11aV1alpKOko6SjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhISl5kam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKiYmJiYmJiYmIiIaAe3VsZFxTTUY/ODZAeoiXpbK9ydTc4+vx9fr9/v///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKioqKioqKioqJiYiJiIeFhIF7c2xlXVhXVVZYV1Q/QkRBREOen6KhoqGgn52alJCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZHTFFUWl5eW1lXpaSjpaOjo6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISEpeZGpucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKiomJiYmJiYmJiomGgXt0amNcU01FPzc1QHqIl6WyvcjT3OPr8PX6/f7////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioqKioqKioqKiYiIiIiHhYN+eHBpYVpVVFRUVlZTPkFDQURDnp+ioaKhoJ+dmpSQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGRkxRVltgX1pZV6Wko6Wjo6OgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEhKXmRqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqJiYmJioqKioqJhoF7c2piXVVNR0A5NkF7iJilsr3I09zj6/D1+v3+////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqJioqKioqJiYeIiIWFhYOAfHRrYlpTT09PU09TUUJCRENDQpygop+joaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkpLUVhdXl1fWlijpaSio6KjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhJSl1jam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKiYmJiIiIiIiKh4OAeXJpY1tUTERANjJBe4mYprO+ydTb5Ovv9vr8/v///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiYmKioqJiYmHh4aEgoF/e3dwZV1UTElISExKT05CREZCQ0GcoKKfo6Ggn52alZCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZLTFFZXV1dXlpYo6WkoqOjo6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISUpdY2pucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKioiJiYiHh4eHiIaDfnhwZ2BYUElBPTQxQHuImKWzvsnU2+Tr7/b6/P7////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKiomJioqKiYiIhYWDgH59eHVvZ11UTEZBQkJFRUlKQkJDQ0NBm5+hn6KhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGS01TWV1dXV5aWKOlpKKjo6OgnZmVkY2KiImIiIeFfXZwZ15XUUtJSElKXWNqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqJiIiGh4aGhIWCf3lzamFbUktEPTkxLz96iJels77J1Nzl6/D2+vz+////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqJiYqKiYiHh4SEgX57eXVvZl9UTEU/Ozw7Pj9DR0JCQ0RFQ5udoJ+ioaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRktNUllfX19gWVijpaSio6OjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhJSl1jam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKiYiHhoaFg4KAfXhzbGNZUkxFPjg0LCs7eoiXpbO+ydTc5evw9vr8/v///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiYmKiYmIhoWCgn97eHVwaWFZTEQ9ODU2Mzc5PkdJSUlISUabnKCfoqGgn52alZCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZLTlRbYGBhYllXo6WkoqSjo6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISUpdY2pucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKiomIhoWEhIB/e3hzbWVbUktEPTcxLicnOHuJmKa0v8rV3eXs8Pf6/P7////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKiomJiYmJh4WEgX98dnRvaWJbUUQ8NTEtLi8yNzpGTU5PTk9KnZyfnqKhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGS05WXWJjYmNZV6OlpaKkpKOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSElKXWNqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqJh4WEg4B9enh0bWZeU0pEOzYxKykjJDZ9i5qotb/L1d3m7PD3+vz+////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqJiImJiYeFg399eHFuaWFZUEY7My4rKCgsLjQ3RlFTVVVVTp6boJ6ioaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRk5RWGBkZGJiWVejpaWjpKSjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhJSl1jam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKiIeDgoB9eXRybWVdVEtBPDMvKyclISM2f42cqbbAy9bd5uzx9/r8/v///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiIiJiYmGhIN+e3Vva2RbU0c+MyspJyYmJigvM0ZVWVpZWVGfm5+eoqGgn52alZCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZPUlliZWRhYVlXo6Wlo6Sko6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISUpdY2pucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKioeGgoB+e3VybGdfVk1DOjUuKyckIyAkN4GOnaq3wczW3ubt8ff6/P7////////////////////////////////t5t/Wy8G0ppmYp6WlpKKjoJ2blpOOjIqKioqKioqKioqKiYeHh4N+fXVvamRdU0lEOzAsJiEhJSUrLjJFXmdiYmFel5qfn6KhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGSFNbX2FmZGBaVqilo6ahoqOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEpKXGJpbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKiomJioqKiIeHhYN/eHZya2ddVk5DOjQuJiUiIh8jIzaEk6CsucTO1t/l7fP3+vz+////////////////////////////////7ebf1svBtKaZmKelpaSio6Cdm5aTjoyKioqKioqKioqJiomHiIeCfXtybGdgWE5DMywmIyIgISUeJCYtRGBqZWZkX5iZoJ+joaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkpTWVxeY2FdWFSmpKOmoaOjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhJSlxiaW5wcXFshaWkpqKioqCempeTj42KioqKioqKioqJiYqKioiHhoOAfHZ0bmdfVUxEOTItKSYlIiMhIiI2h5WjrrvG0Njg5u3z9/r8/v///////////////////////////////+3m39bLwbSmmZinpaWkoqOgnZuWk46MioqKioqKioqKiYqJh4aGgX14b2lhWVBGOzAqJCMkISIlIiMkLkdjbGhraGGYmp+fo6Ggn52alZCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZKUVZYW2BeWVNRpKOipqGjo6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISUpcYmlucHFxbIWlpKaioqKgnpqXk4+NioqKioqKioqKiYmKioqIh4WCfnlzbmlhXFJHPDIpJSMhISAjISIiOIyap7K+ydPb4ufu9Pf6/f7////////////////////////////////t5t/Wy8G0ppmYp6WlpKKjoJ2blpOOjIqKioqKioqKiomKiYiGhYF7dW1kXVJJPjQoJSIjJSMjJB0gJTFKZG9sbGhimJqfn6OhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGSE5TV1teWlVPTqOjoqaho6OgnZmVkY2KiImIiIeFfXZwZ15XUUtJSElKXGJpbm9xcWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqJiYqJh4aDgHx2bmpiWVJIPTQtKCYlJCMhJSEhJDyQnqu1wczV3OPo7/T4+v3/////////////////////////////////7ebf1svBtKaZmKelpaSio6Cdm5aTjoyKioqKioqKioqJiomIh4R/eXRqYVhORDswKCktNDo9P0FJSkxRXWdraWlnYZmboJ+joaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkhNU1ZbXFdRTU6jo6KmoaSjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhJSVthaG5vcXFshaWkpqKioqCempeTj42KioqKioqKioqKiYmKiYeGhH96dGtmXlRHPzIrJyIgISEhICMhIiU8laOvucTN1t3l6vD1+Pv9/////////////////////////////////+3m39bLwbSmmZinpaWkoqOgnZuWk46MioqKioqKioqKiIqJiIeDfnhyaV5WS0E4LSgtNkBITVBTXV5gYmZnZ2dmZWCZmqCeoqGgn52alZCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZLTlBUWFlUT09PpKOipqKko6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISUlbYWhtb3FxbIWlpKaioqKgnpqXk4+NioqKioqKioqKiomJiYmGhYN+eXJpY1lNRTstJyYlIyUiJCIlISMkOZyptb3H0Njf5+vx9vn7/f/////////////////////////////////t5t/Wy8G0ppmYp6WlpKKjoJ2blpOOjIqKioqKioqKioiJiYiHhH13cWdcU0pBNywoMD1IUFVaXmNkZmpramlpZmVhmZqgn6OhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGTE1NTlJUVFNSUaWko6WhpaOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSElJW2FobW9xcWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqJiYmJhoWCfHZvZl9USj00KSkyODxBR09UXGJtcISjsLvDzNTc4unt8vb5+/3/////////////////////////////////7ebf1svBtKaZmKelpaSio6Cdm5aTjoyKioqKioqKioqHiYmHhoN9dm9kW1FJQDYsJTBATldgZmpubG1xcm9tbGhlYJmaoKCjoaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkxLSEpOU1dZU1OopaOloaWjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhISVthaG1vcXFshaWkpqKioqCempeTj42KioqKioqKioqKiYmJiIaFgHp0bWReU0c6MSgrO0dPVl5ob3mBjZChqLS/x9DX3uXp7fP3+fv9/////////////////////////////////+3m4NbLwbSnmJilpaWio6KgnZuWk46MioqKioqKioqKiImKiIeCe3NtYllQRz4zKSMxSlFcY21zd3t+f39/fHhwZ2Cbn6KeoaKhn52blZGNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZHRklQV1lYV1RSoaOlp6Sio6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISklbYGdtb3Jwa4WkpKaio6KgnpqXk4+NioqKioqKioqKioqKiomGhIF5cmtjW1BFODEmJEVQUl5mcHmCjZWep7K7xs/V3OPp7fH2+fr8/v/////////////////////////////////t5uDWy8G0p5iYpaWloqOioJ2blpOOjIqKioqKioqKioiJioiHgntzbWJYUEY+NCknNUxUXmVwdnp+gIGDhYOBe3JooKGjoKOioZ+dm5WRjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGSElMU1laWVdUUqGjpaekoqOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSElJW2BnbW9xcGuFpKSmoqOioJ6al5OPjYqKioqKioqKioqKioqJhoSCeHJqYlpORDgxJyVJVVhlb3mCi5afqLG5wcvU2d/l6u7x9vn6/P7/////////////////////////////////7ebg1svBtKeYmKWlpaKjoqCdm5aTjoyKioqKioqKioqIiYqIh4J7cmxiWE9GPTQqHy9KVGBmcHeAhIeIiYmHhH94bKKgo6GkoqGfnZuVkY2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkpKUFhbW1hXVFKho6WnpKKjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhJSVpgZ21vcXBrhaSkpqKjoqCempeTj42KioqKioqKioqKioqKiYaEgXhwamBYTUI3MSgmT1xhbniBi5SfqLC5wsnT2t/j6O3w8/f6+/z+/////////////////////////////////+3m4NbLwbSnmJilpaWio6KgnZuWk46MioqKioqKioqKiImKiIaCenJsYVdPRj00KiUxR0xXX212fYOIjI6OjIiAeW+ioaKgoqKhn52blZGNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZLTVFYW1pYWFRSoaOlp6Sio6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISUlaYGdsb3Fwa4WkpKaio6KgnpqXk4+NioqKioqKioqKioqKiomGhIB4b2hfVkxANzAnJlRiaHV/iZOcp6+4wcrQ2d/j5+zv8vT4+vv8/v/////////////////////////////////t5uDWy8G0p5iYpaWloqOioJ2blpOOjIqKioqKioqKioiJioiGgXpya2BXT0Y/Ni0pOFJXXl9kaHl9goSGhoWCgHlvpaKjoKOioZ+dm5WRjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGTE1RVVlZV1hUUqGjpaekoqOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSElJWl9mbG9xcGuFpKSmoqOioJ6al5OPjYqKioqKioqKioqKioqJhoSAdm5nXlVKQDcvJyVZZm57h5GbpbC4wMnQ1d3k5+vv8fT2+fv8/f7/////////////////////////////////7ebg1svBtKeYmKWlpaKjoqCdm5aTjoyKioqKioqKioqIiYqIhoF6cWthV1BHPzcuJztcZm1tbnFydXd4ent7eXZuZ6GjpKGmoqGfnZuVkY2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkxLTVNYWFdYVFKho6WnpKKjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhJSVpfZmxucXBrhaSkpqKjoqCempeTj42KioqKioqKioqKioqKiYaEf3ZuZ11VS0A5MCglXmt0gI2Xoau2vsbO1tvi6Ovu8fP3+Pr7/P3+/v///////////////////////////////+3m4NbLwbSnmJilpaWio6KgnZuWk46MioqKioqKioqKiImKiIaBeXFsYlhRSEE5MS0+XGVxeIOKiImHgn15c25wZmCeo6SiqaKhn52blZGNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZLSkxTV1hXV1RSoaOlp6Sio6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISUhaX2ZsbnFwa4WkpKaio6KgnpqXk4+NioqKioqKioqKioqKiomGhH92bmdeVkxBOzEqJmRxe4eTnaiyvMTM1dzh5+zv8vT1+fn6/P3+/v7////////////////////////////////t5uDWy8G0p5iYpaWloqOioJ2blpOOjIqKioqKioqKioiJioiGgXlwbWJYUUlDOzEsQGFteH2FipGVl5WUj4iDdmpioaWjoKiioZ+dm5WRjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGSklMUllZWFZUUqGjpaekoqOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEhIWl9mbG5wcGuFpKSmoqOioJ6al5OPjYqKioqKioqKioqKioqJhoR/dm1nX1ZNQzwzKyhndX+Mm6WvucTM1Nzh5evv8vT19/r6+/z9/v7+////////////////////////////////7ebf1svBs6WamKilpaSipaCem5eTj4yKiYmJiYmJiYmHiImHhYF4cmphWVJKQzw1MURjbXmCiY6XmJmXmJeSjIR9dKOlpaSko6GfnJiUkIyLi4qKioqKiomJiYmJiYmJiImJhoR/eHBoYlhSTEdHSEpLTFBWWFhVVFOjpaWnpKKjoZ2ZlZGNi4mKiomJhn52b2heVlFMSklJSVlfZWxwcnBshKWkp6SkoaCempeTjoyKioqKioqKioqJi4uLioeEfnZuZl1VTEM+NS8oa3aDkZ2qtr7I0Njf5urv8/b4+fn7+/z9/v///////////////////////////////////+3m39bLwbOlmZenpKWkoqOhn5yXlJCNi4mJiYmJiYmJh4mKiIWBeXFrYVpTS0U/NzFFZW98hIySmJqamZmZk42Hf3WkpqWjpKSjoJ2ZlpGOiomJiIiIiImJiYmJiYmJiYiKiYeFf3dwaWJZUUxIR0hJSkxQVllZVlRToqWmpqOhoqGdmZWRjoqJioqJiIV+d3BpX1dRTEpKSkpaX2VscHJva4OkpaakpKKhnpuXlI+MiYmJiYmJiYmIiImJiYiFg392bmdfVk5FPjYwKmx4hZagrbnBy9Pb4uns8fX4+fr7+/z8/f7////////////////////////////////////t5t/Wy8GzpZeWpqSkpKKjoZ6al5OQjIqJiYmJiYmJiYeIiIeFgHhxamFZU0xGQDgyRmdxf4iQlpqcnZycm5WPiYF3paalo6Sko6CdmZaRjoqJiYiIiIiIiYmJiYmJiYmHiImGg392b2hhWFFLR0VGSUpMT1VZWVdTUqGkpaajoaKgnZmVkIyKiImJiIeFfnZwaF5XUUxJSEtKWl9lbHBzb2qEpKOmo6SioJ6bmJOPjYmJiYmJiYmJiYmJioqJhYN9dG5nXlZPRj85NC5we4mapbK9xs/Y3+bt8PX4+vv8/Pz8/f7+////////////////////////////////////7ebf1svBs6WXlaakpaSio6CempeTj4yKiYmJiYmJiYmHiIiHhIB4cGphWVJLRj83M0doc4GKkpecnqCfnpyXkYuCeaanpaSlpKKfnZiWkI2KiYmIiIiJiYmJiYmJiYmJh4iIhoR/dm5oYVhQSkZFRkpLTE9VWFlXU1KhpKSmo6GhnpuXlI+LiIiIiYiHhX12cGddVk9KSEhLS1pfZWxwc29rhKSkpqSjoqGdm5aSjouJiYmJiYmJiYiJiYqKiYaEfXRtZl1XTkZBOzcxcn6Nnqm2wcrT3OPq8PP3+/z9/f39/f7+/////////////////////////////////////+3m39bLwbOlmZampKWkoqShn5yYlI+MiomJiYmJiYmJiImKiIWBeXJqYVpTS0U/NzRIaXSCipKXnaCioaCemJOLgnmmp6WkpqOin5yYlJCNiYiIh4eHh4iJiYmJiYmJiYmKiYeFgHdwaGFXUUtHRkdKS0xQVVhYVVRToqSkpaOhoqCcmJSQjImJioqJiIV+dnBnXldRTElISkpaX2VscHJva4OjpKWjo6KinpuYk4+LiIiIiIiIiIiIiImJiYiFgn91bmdeVk9HQz04MnSAj6GruMTM1t7m7fL1+fz9/f39/v7+///////////////////////////////////////t5t/Wy8GzpZiWpqSlo6GjoqCbmJSPjImJiYmJiYmJiYmKiomGgXpya2JbVEtFPzczSGl0gouSl5+ipKKgnpmUi4J4pqalo6WjoZ+cmJWQjYmJiIiHiIiIiYmJiYmJiYmJiomIhX94cGlhWVFMSEhJSktNUFZYWFVVU6GjpKSioaKfnJiVkI2KiYqJiIiFfnZvaF1XUUxKSklJWV9lbHBycGuDo6OloqKjoZ+bl5OPi4iIiIiIiIiIiYmJioqIhoSAdm5nX1dQSEI8ODJ1gpGhrbrFztfg5+7z9vr9/v7+/v//////////////////////////////////////////7ebf1svBs6WYlaWio6KfoZ+dmJSQjIiFhoaGhoaGhoaEhYaEgX12b2hfWFFJRD03MkdodIOMlJmgo6SioJ6alYyDeKWlo6OjoZ+dmZaSjYuHhoaFhYWGhoaGhoaGhoaGhYaGg4F8c21mX1VPSkZFRkdJTFFXWllWVFOhoqKkoJ+fnZqWko6Kh4SGhYWEgXpzbGRbVE5JR0hHR1lfZWxvcW9rg6KipKCgoJ+bmJSPi4iGhoaGhoaGhoaGh4eHhoSBe3NrZFxVTkY/OTUxdoKRoq67x8/Z4enw9Pf7/v///////////////////////////////////////////////+3m39bLwbOll5WkoaKgnp+bmZSPjIeDgH9/f39/f39/f4CAfn14cWlkW1NNRkE8NTFGaHWDjZWaoKOlop+empaNhHilpKKhoZ2bmZWTjoqHf39+fn5+fn5/f39/f39/f3+AgH97d29nYlpRS0ZDQkNFSEtRWFtaV1NSoKGhop+dm5mWko6KhoOAgIB/fnx1bmdgVk9KRkNERUZYX2Zsb3FuaoKhoaKenpyal5OQi4aEfn5+fn5+fn5+fn+AgH98enVtZV5WUUtCPTcyL3aDk6OvvMfQ2eLp8PX4/P/////////////////////////////////////////////////s5t/WysCzppuYn5mbnJuWk5GMiIN+eXZ3d3d3d3d3d3h2dnVzb2hjXFVMRUE7NTArRmp1gIqWnaGkpqWkopyWjoN3oJ+bm5iWlJCOi4eBfXp4d3d4eHh3eHh4eHh4eHh4d3h3dG9nYldQS0ZBPj5AQEVLU1VYW1ZVUJyanJyXl5WRjIiEgHt4eHZ1dnZya2ZdVk9JREA/QD5DVGJkbm5xc2l+m5qXm5eWko+MiYWAfHZ2dXV1dXV1d3d4eHd3dHJrZl1WUEpCPDU3Ky50h5KksLzH0Nri6e/2+Pz+////////////////////////////////////////////////7Obg18vBtaealZuVlpWUjomHgnx3cmxpaWlpaWlpaWlqaWhoZWFbVVJLRD04NDArKURqdoKLlZuhpKalpKKclpCEd5ublpWSkI2Hg356c29ramlpaWppaWlpaWlpaWlpaWloaWdiW1ZOSEI9OjY3OT5ES1NVWFtWVE+Wk5SUkZCNiIJ9eXRvbGloZ2hoZF5aVExGQT05ODk5P1VkZXBvcnNofZeWk5aSjoqFgX13cm5ramppaWlpamlpaWpqaWdlYlxUTEdBOzUwMygrdYiSpLC8x9Da4+nv9vj8/v///////////////////////////////////////////////+3n4NfMwrapmZKXkI+MiYR/e3dwamRfXFxcXFxcXFxcXVxcW1pUTklGQDgzMCwpJiRCa3eDi5WaoqSlpaSinZeRhHeVlpCNioiEfnhzbGZgXl1bW1xcXFtcXFxcXFxcXFxbW1xZVU5KQj04NDEvMDM5RExTVVhcVlZRkIyOjYmIg353cm1oYl9bWlpbW1hSTkhBOzc0MTEzNDlXZmdycXNzanuRkIyNiIN/enRwa2VhYF9fXl5eXl9dXFxeXl1ZWFVPR0E8NzEtKSsjKHWIk6awvMjQ2+Pp7/b4/P7////////////////////////////////////////////////t5+DXzMO3qpmQkouIg395c29pY19aVlNSUlJSUlJSUlJSUlFQS0VBOzcwLCooJSQhQmt4g4yWm6Klpqalop6YkYV4kJKLhoF9eHJtZ2JbV1RTUlJSU1JSUlJSUlJSUlJSUlJQT0tGQjk1MC4rKysuM0NNVFZZXFhYVIqHiIaAf3dybGdiXVhVUlFRUVBOSEM9ODMwLiwtLi80WmhocnJ0dW58jIqFg3x5dG9pZWBaVlRUU1NSUlNTUlJTU1JSUE5IRD03My8sKSQmHyR3iJWmsb3I0dvk6vD2+Pz+////////////////////////////////////////////////7Obg18zEuKyckI6Fgnx1bmdiXFZRTUpHRUVFRUVFRUVGRkZFRD86ODIvKycmJiQjIEJteoSOmZ6kpqenpqOfmZCFe4uMhH95cW1nYFtVT0xIR0VFRkZGRUVFRUVFRUVFRkZFREI+OjgxLiopKCYnKi9EUFZYWl5ZV1aCfn98dXJrZl9aVE9LSEZFRkZFQj05NTAsKykoKSorL11qaXR0dndxeoWCfnpzbWljXFdRTEhHRkZFRUVFRkdGRUVHRkRDPDkzLy0qKCUhJR8ieoqWp7K/ytLc5Ovw9vj8/v///////////////////////////////////////////////+3n4NfNxbquoI6HfHlza2NeWVFKRUA9PDo6Ojo6Ojo6Ozs6Ojk1MzAqKCUjIyMjIiFEcHyGkJqfpaioqKekoJuRh32GhXx1b2djW1VQSURAPDs6Ojs7Ozo6Ojo6Ojo6Ojw7Ozk3NDEvKSYlJiUjJCYsRFNZWl1gXFpZe3h4cmpmYlxWT0lEPjw8Ozs7OTczMSwpJiUmJSQmKStibW13d3p6dXd7eXVxamVgWVFLRT89Ojo5OTk5OTk8Ojo6Ozs5ODEuKygnJSMiICUfI36Omqm1wcvU3eXr8fb4/P7////////////////////////////////////////////////u6OHZz8e8sKSNgHBuZ2BYVE9HPzk1NDIwMDAwMDAwMDAxMTAvLCsqJiMjIiMhIiEgRXR/iZOcoKeoqamnpaCclIp+fntwamRdWFBKQz04NDIxMDAwMTEwLy8vLy8vLy8xMTAvLiwqKSUjIiQjISEjKUZWW11fY19eXHVyb2pgXVVQSUM+OjQxMTAvMDAuLConJCMkJCMjIyYoaHNxfX1/f3l0cW1pZV9aVU1GQDs1MTEwMC8vLy8vMC8vMDEwLy4pJyUkIyMiISAlISWDkZ2tt8PN1d7m6/H2+Pz+////////////////////////////////////////////////7+ni2tDIvrKmi3poZWFZUkZCOjMvLCopKCgoKCgoKCgoKCgnJSUjIiQjIiIjIyMjIEZ2g4yUnJ+nqaqpqKahnZaMfnl1aGJcUUxFPjg0LispKCcnJygnJycnJycnJycnJicnJiUkIyMkIiMkJCEhIylHWF1eYWRgXltwaWZgWFRIRDw3My8rKScnJicnJiUlJSMiJSUjIyMlJmt3doGBgoZ+dGpjYFxWTkhCOzUxLCkqKikpKCkpKScnJicnJyYlJiUkIyMkIyIgJSImh5SgsLjEztbf5uvx9vj8/v///////////////////////////////////////////////+/q5d7Ty8G2q4puYltZUEI+ODAqJyUkIyYmJiYmJiYmJSQkIyMjIyMlJCQlIyEhJCBIe4SOlpumqKutrKuppJ+XkIp0aWFaTUtDOTMwLCopKCcnJiYnJygmJiYlJSUlJSQkJCQjIyIiJSIiIyEeICQjS1tlZ2NsZGddZ1xbUlBHPjozLCgnJiQmJiUkJCMiIiEhISEhISEhIidydYOCh4iLg3BhXlhPTUI8NC8rKSgnJSUlJSUlJSUlJSUlJSUlJSMiISEhIiMjHCEgIouXprS9xdDZ4Oft8vf5/P7+/v/////////////////////////////////////////////v6+bf1c7Eua6IZ1pRSkM7NDErJyYlJCQkJCQjIiIhISQkIyIiIiIiIyAfHyEjIiEhSn6HkZufpqmsra2sqqWgmpGIbl9XUEQ/Ni0pJSIgICMjIyMjIyMjIyMjIiIjIyMiIiIiISEhISEhIiQlJCIgJUxdZGhiZmlwYmRVT0ZGQDMvKyYlJCUkIyMjIyMjIyMhISEhISIiIiUkdHuHjIyLjYZuV1FORUE6NS4pJyclJSMjIyMjIyMjIyMjIyMjIyMhISAgIB8fHyEiIB+TnKm2wMfR2+Lo7vL3+fz+/v7/////////////////////////////////////////////8Ozn4djRyL23hlxRS0A0KiwoJCMjIiIgIiIiIiMjIyMhISEhISIjIx4hJCIfHyEjIE2Ai5Scoairra+urqyoo5+Vh2lWTUY6NS4oJSUjIyQiIiIiIiIiIiMiIiEhIiIjIiIiIiIiIiIhJCQhICAhIyhSaGZpaWt5T0pTS0o/OjMsKickIyMjIiIiIiIhISEhIiIiIiIiIiMhJoCJjJOTlpWQdFRLSEA3Mi4nIyIiIiEhISEhISEhISIiIiIiIiIiIiMjJCQkJCQjIiAhl6KvuMTL1N3j6e/z+Pr8/v7+//////////////////////////////////////////////Lt6ePa1MvBuIdbTEU8MSsmIyEhIiQlJCMiIiIiIiIhJCQjIyMjIyQhHh0hJyUiIChShJCXnKavqq2urq6sqKOZkINpVExEOjIrJiQjIiMjIiIiISEiIiIhISAgICEhIiEhISEhISIiIiIgISMjIyQpSWVrenlaSEVFT0hHOTIpJiUjISEhIiIjIyQkJCQkJSMkJCQjIyMjIi99j5WZmJqakHBOPjw3MiomIyEiIyMiIiIiIiIiIiIjIyMjIyMjIyUlJSQjIyMkJCAhLpSptLjIztff5erw9Pj6/f7//v7////////////////////////////////////////////07+vl3dfPxca0pqCajoV/eHNuaGViYF5ZV1VUUlFOTUdFQ0A+Ozo5ODhBVGFmbXV5gI2Pmp+ipaqtrq6trKijn5qUhnl2cWtpZF1aWFRSU1BPTUxMTU9QTU1MTExMTU1LS0tLS0xNTlBUWFxdWl1nYmt5aVRPSUxNSktCRD5DQkJCQkNERUZHSUtNT1FTVldbXmRqcHZ7f4eFl5aeoaKjoqOclZSSjIaEgHl0cG1rZ2hoaGhoaGhoaGhoaGhoaGhkZmlscHV6foeOk5KusbvHzNLb4ebr8PT5+/3+//7+////////////////////////////////////////////9fHt5+Db1MrEu7Con5aPi4SAenZzcG1rZ2RhX15cWVZVVFFNSkdFQ0VCQkRFTmZ/gIWMj5yhpqirra6trayoo56Yk46Cfnd1cm1nY2FdWltaWlhXV1haWllZWVlYWFhYVFNTVFVWV1hZW1tdY2Roc3RZUlFOUFBTUlNPR0xGTVFMTU5OTk9SU1VYW11fYmVnaGxyd3yBhoqSlpmeqamoqKqnop2al5WTjYqFgX99enh3d3d3d3d3d3Z2dnZ2dnZ2d3l6fH6CiIyQlZ2mrrjByNHX3uTo7fL1+fv9///+/v////////////////////////////////////////////by7+rk4NnQzMG3sq+mmpOOioWAfXl1c3NwbWxraWZkXVxZVlNRT05QTUpJR0hMUGV/lpmcm6Onra6vrq2sqKSjmpWViYV8fXZybWtoZmRmYWFgYGBgYWFgYWFhYF9eXVxcXFxdX2FiXmJjanVvWUpSSE5bW1ZVWEtSU1FXUFRWVldYWFhZW11gY2ZoaWtucXl9g4eLkJWZnaOpr7GysbSxsK6rqKWhnpiUkIuJh4WCgoKCgoKCgoKCgoKCgoKCgoSGiYuNkZaaoKKqsbe/yMzW2+Ln6+/z9/n7/v///v7////////////////////////////////////////////28vDs5uPd1c3Fvbu3rqemnJmVkpCMiIWFgn98e3h0cXBvbGhkYV9eVllYVVRXVlRUXWFoiaa2sq2vr66trKijpJiSlYyIgIN8eHRyb2tqbGtsbW1tbWxramtra2ppZ2Zra2trbG5wcXl8bFVNT09TVldWWVtaWVlVXFpXX1pgZWFiZGZoam1wcHR4enx/g4aFiY6TlpugpKupsbe2vrm6vb67t7Ozr6ympJ+dmpiWlZSUlJSUlJSUlpaWlpaWlpaSlZiZmp2hpaytsrXDxs7P2d7k6u3w9fn6+/7////+////////////////////////////////////////////+fby7+zn4NzVz8jCvrmyrammop+bmJWTkY+Ni4iFgoB8end0cW5raGdlY2FhYF5dYV1eX2RpcIOjuL62tLKppKSemJWSjYiHhYJ+e3l5eHZ3dnd3d3h6e3h4dG5wdHZxdXR5goFzYFVSUVFSVVZXV1pbXFxcXF1eX2FjZWZoamxub3FzdXd5en+BhIeJjI6QlpicoKSorK+1uLy/wsPExcXEwsC9uri3sbCuq6ilpKOioqKioqKioqKioqKioqKio6Skpqirrq+1uL3CyM/U2ODj6O3x9fj6+/z9//////////////////////////////////////////////////j28/Hu6uTg3NfRzMjEvrq1s6+rqKWioZ+dm5iWk5COiYeEgH16d3RzcW5tbGtpaGlmZ2VlYmFsbHyDgouYqru2rKGbmJSQjYaEgYB+fXx8enp8fn9/fn6AhYaHiIuHgXdsYVxcWVlaW1pZWVtcXFtcXFxcXWBjZmprbnBxc3V3eXt9f4GDhYeLjZCTlpianKKlqa2wtLi6vsHFyMrLzM3NzMvJxsPBwL28ure0srGwsLCwsLCwsLCwsLCwsLCwsLCxsbO1t7q7v8LGy9DW297k5+vv8/b4+vv8/v/////////////////////////////////////////////////59/Tz8e3p5eDc19PQzcjEwL67t7Wyr62sqqilo6Cdm5eVkY6Lh4SBf317eXd2dHNwb3FxcG1pbWRscXFydH+PioN9f4eNj5CenJydnJiXmpuamJaSjIR/eXVuZmJlY2BmYFxfYF1bW1xcW1xdXl5eX19hYmVpbXB0dnh6fH6AgoWHiYuOkJKUmJqdoKOmqKqvsbS4u7/CxMfJzdDR09TV1NTS0M7MysjHxsTCwL69vb29vb29vb29vb29vb29vb28vb2/wcPFxsnMz9PX2+Di6ezv8vX3+fr8/f7/////////////////////////////////////////////////+fj29fPw7Orj4NvY1tPPzMnHxMG/vLq4trSysK6rqKajoZ6al5OQjouJhoSCgH59e3p6eHh3dHNucG1rbWtrcXZybnB1eHl4dnR1eHZxcHRzc3N1dnRuamtraWhoampnYF9gYmFcV1VZWVpbXV9hYWRmam5xdHh6fX+ChIaIi42QkpWXmZyfoaSmqa2vsrS2ubu+wcTHyszP0tXX2Nna29ra2djW1NLRzs7My8nIyMfGxsbGxsbGxsbGxsbGxsbGxsfHyMrMzc7S1Nfa3eHl5+3v8vT2+Pr7/f3+//////////////////////////////////////////////////r5+Pb08u/t6ufj4N3b2NXT0c/My8jGxMHAvry6t7SysK6qp6SgnZuYlpOQjoyKiIiGg4GAf357fHp0cHFxbWppaWhnZ2hoaW5sbXBuaGdqcG5sa2toZGFaXmJmaGlmYmBeXFtZWFhZXF1eYGNmaGltb3N3e36Bg4iKjI+RlJaYnJ6ho6apq62wsra5u77AwsXHyczO0dPV2dvd3+Dh4uLi4uHg3t3b29jX1tXU09PT0dHR0dHR0dHR0dHR0dHR0dLS09TV1tjY293f4uXo6+3w8fT29/n7/P3+/v/////////////////////////////////////////////////7+vn49vPx8O7s6ebk4d/d2tnX1tTS0M7MysjGxMK/vbm3tLGuq6imoqCdm5iWlJORj4yMi4mKhH6BgXx7eXRubm1saGVlZmdjYWFiYFxaXGNgXlxbWllXV1hZW11gYmNbW15gYmRlZmVmaGpsbnFzeXp9f4KGio2Rk5WYmp2goqaoq66ws7W3ury/wsTHycvP0dPV19nb3d/h4+Tk5ebn5ubl5eTj4uHg397d3dzc3Nra2tra2tra2tra2tra2trb3Nzd3t/g4OHi5efp6+7x8vT29/j6/P3+/v7/////////////////////////////////////////////////+/v7+ff29PTw7+zq6Obl5OHf3t3c2tjW1dPRz83LyMbDwb67uLWzsa2rqKWjoZ+em5mUlpKNjoiLi4iCfXx7end3dG9ramppaWdmZWRiYWFgYF9fX2FhYV9gYWJiYWFgZmZmZ2hrbW9wcXN1d3l8foSGiIuNkZWXmpyfoqWnqqyxs7W4ur2/wcTGyczOz9LT19nb3N7f4ePl5ujo6enq6+rq6unp6Ofm5uXl5OPj4+Pi4uLi4uLi4uLi4uLi4uLi4uPj5OXl5ubn6Orr7e/x8/X3+Pn6+/z+//////////////////////////////////////////////////////z8+/r5+Pf28/Lw7u3s6urm5eTj4uHe3Nzb2dfV09DOzMrHxcLAvbu4trOwrqyqqKainaGdmJuWlZORkI6MiYeAgH57eXl2cnFwbmxsbGtpbGxtbGxra2tqamprbG1ub3Bvb29wcXJxeXp9f4GEh4mLjpKVmJqcnqSmqayvsrW3u73AwsTHycvO0NPV19nb3N7g4uPk5efp7O3u7+/v8PDw8PDw7+7u7ezr6+rp6enp6enp6enp6enp6enp6enp6enp6urr6+zs7u/w8fL09vf4+fr7+/v9/v/////////////////////////////////////////////////////8+/v6+vn4+Pb29fTy8fDv6+vq6ejn5ubj4uHf3tza2NbU0c7MycfFwb+8ube0sa+wrqupp6WioJ2bmJaUkY6MiomGhIOBfn17enl4d3Z2dXR0dHNzdHR0dHR0dXZ3d3h6e3x9fX+BgoOFh4mLjZCRmJqdoKKlqKqsrrG0t7q9v8PFyMrNz9LU19ja3d/h4uLl5ufo6uvs7O/w8fPz8/Py9fT09PPy8vLx8fDw8PDv7/Dw8PHx8fHx8PDw8PDw8PDw8PDx8fLy8vPz9PX2+Pj5+/v7/Pz9/f3//////////////////////////////////////////////////////Pz7+/r5+fn4+Pf29PPy8vDw7+7t7Ovr6ejn5uTj4N/c2tjV09DOzMvJxsPBvru5trSxr62rqKelo6GenJqXlZSSkI6MioiHhISDgoGAgH9/fn5+fn5+f3+AgIGCg4ODhIWGh4eJi4yPkJOVl5mbnZ+hpKaprK+xtri7vsDDxsjKzM/R1NbZ297f4ePl5+jo6uvs7e7w8PHy8vT19vb19fb29vb19fX19fX19fT09PT09PT09PT19fT09PT09PT09PX19fb29/f19vf3+fn6+/v8/Pz9/f3+//////////////////////////////////////////////////////38/Pv7+vr6+vr5+Pf39vb19PTz8vHw8O/u7ezr6efl4+Hf3dvY1tTS0M3LyMbDwb68uri2tLGwrauopqSin52cm5mXlpSSkI6OjYyLioqJiYmIiIiIiYmKiouLjI2Njo6PkJGSk5WXmZqdn6CipKapqq2wsrW4ur7AwsXIys3P0tTX2dvd4OLk5efp6+3u7u/w8PLz9PX19fb3+Pn5+Pj5+fn4+Pj4+Pn5+fn5+Pj4+Pj5+fn5+fn5+fn5+fn5+fn5+fr6+vv7+fr6+/v8/Pz8/f39/f7+/v/////////////////////////////////////////////////////9/fz8/Pv7+/v7+vr5+fn49/f29fTz8/Py8fDv7u3r6efm4+Hg3tza1tTS0M7LycfFxMG/vry5uLSysK2sqqelpKOhn56dm5mYl5aVlJOTkpOTkpKSkpOTkpKSk5SVlZaYmZqbm52foKCipKanqautsrO2ubu9wMLDxcjKzM/R09ja3N7g4uXm6Onr7e7w8fHy8vP09fb29/j4+fr6+/r6+vr6+vv7+/v7+/v6+vr6+vz8/Pz9/f39/f39/f39/f37+/v8/Pz8/Pz8/f39/f7+/v7+/v7//////////////////////////////////////////////////////////f39/Pz8+/v7+/v6+vr6+vn4+Pf29vX19PPy8fHv7ezr6efl5OPg393b2dfV09DPy8nHxcTCv768uri2tbOwr62sqqmopqWjoqGgoJ6enZydnZycnJydnZycnZ2en6CgoqOkpaWnqaqqq62vsbK0trm6vb/Bw8bIy83P0dPW2Nrd3uHj5Obo6uvs7e/x8vLz9PX19vf3+Pj5+fr6+/v7+/v7+/v8/Pz8/Pz8/Pz8/Pz+/v7+/v////7+/v7+/v7+/f39/f7+/v7+/v7+/v7+/v7+//////////////////////////////////////////////////////////////39/fz8/Pz8+/v7+/r6+vr6+vr5+Pj39/b19PT08vHv7u3r6unn5uTi4N7c2tjW1dHPzcvKyMXEwcC+vLu5t7WzsrCvrq2sqqmpqKempaSkpKSkpKSkpKSkpaWmp6ioqamqq6ytrrCxsrO1t7i6vL6/wcPGx8nMzdHT1dfZ293f4uPl5+nq7O7u7/Dy8/T19ff3+Pj5+fn6+fr6+vr7+/v7+/v8/Pz8/P39/v7+/v7+/v7+/v///////////////////////////v7+/v7+/v7////////////////////////////////////////////////////////////////9/fz8/Pz8/Pv7+/v7+vr6+vr5+fj49/f39vb19fTz8fHv7uzs6+no5ePh397c2tjX1dPR0M7MysbFw8HAv727uri3trW0s7KxsK+uraysq6yrq6urq6usq6ysra6vr7CwsbKztLW3uLm6vL6/wMLExsjKzM7P0tPV19nb3d7h4uXm6Orr7e/w8PHy9PX19vb4+Pj5+fn6+vr6+vr6+vv7/Pz8/Pz8/f39/f7+/v7+//7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////Pz8/Pz8/Pz8/Pz7+/v7+vj4+Pf39vb29/b19fX08vHx7+7t7Ovq6Ojn5ePi4N7d29rY1tTT0c/Ny8nIx8XDwsHAv769vLu6ubi4t7a1tLS0s7Ozs7OztLKys7O0tba2uLm6u7u9v8C/wMLExcbIysvMz9DS1NbY2tvd3+Hj5ebm5+nq7O3v8PDx8vP09fX29/f3+Pj4+Pj6+vr6+vr7+/39/f39/f39/Pz8/P39/f3+/v7+/v///////////////////////v7//////////////////////////////////////////////////////////////////////////w== - //////////////////////7+/v7+/v7+///+/v7+/v7////+/v7+/v7+/v7+/v7+/v7+/v7+/v79/f39/f39/f39/fz8/Pz8+vr6+vn5+fn4+Pj4+fn5+fn5+fn5+fn5+fn5+vr6+vr6+vr7+/v7+/v7+/z8/P39/P39/f3+/v7+/v7+/v7////////////////////////+/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/v7+/v7+/v79/f39/v7+/f39/f39/f39/f39/f39/f39/f39/Pz8/f39/f38/Pv7+/v6+vn5+fj49/f39/f39/f39/f29vb29vb29vf39/f39/j4+Pj4+Pj4+fn6+vr6+/v7/Pv8/Pz9/f39/f39/f7+/v7+/v7+/v7+/v///////////v7+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v7+/f39/f39/Pz8/Pz8/Pz8/Pz7/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8+/r6+vn5+Pj39/f29vX19fT09PT09PT08/Pz8/Pz8/Pz8/P09PT09PX19fX19vb29/j4+Pn5+vr6+vr7+/z8/Pz8/P39/f39/f39/f3+/v7///////////7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v7+/v79/f38/f38/Pz7+/v7+/v7+/r6+vr6+vv7+/v7+/v8/Pz8/Pz8/Pz7+/v7+/r5+fj39/b29fX19PPz8/Ly8fHx8fHx8fDw8PDw8PDw8PDx8fHx8fHy8vPz8/T09PX19vb39/j4+fn5+vr7+/z7/Pz8/P39/f39/f39/f3+/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/v7+/v39/Pz8+/z8/Pv7+vr6+vr6+fn5+fn5+fn5+fr6+vv7+/v7/Pz8+/v7+/v6+vr5+Pj39vX09PPz8vLx8PDw7u7u7u7t7e3t7e3t7e3t7e7u7u7u7u/v8PDw8fHy8vLz8/P09fX29vf3+Pn5+vr7+vv7+/z8/f38/P39/f39/v39/f7+/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/f39/f38/Pv7+vr7+vr6+fj4+Pf39/f39/b29vb39/f4+Pj5+fn5+vr6+vr6+vn5+fj49/f29fTz8vHw8O/u7e3s7Ovq6urq6enp6enp6enp6enq6urq6urr6+zs7e3u7u/v7/Dw8fLy8/P19fb29/j4+fn5+fr6+/v7+/v7/Pz8/f38/P39/f7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f39/Pz8+/v6+vn5+Pj49/b29fX09PT09PTz8/Pz9PT19fX19vb39/f4+Pj4+Pf39vb29vX08/Lx8O/u7Ozr6+rp6Ojn5ubm5eXk5OTk5OTk5OTk5eXl5eXl5ubn6Ojp6erq6+vs7O3u7+/w8vLz8/T19vb29vf3+Pn5+fn5+vr6+/v7/Pz8/P39/v79/f7+/v7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pz8+/v6+vn4+Pf29vX09PPz8vLy8vLx8fHx8fLy8vPz8/T09fX29vb39vb19fX09PTz8/Lw7+7t7Orq6ejn5ubl5OTj4+Li4eHg4ODg4ODg4OHh4eHi4uLi5OTk5ebm5+fp6err7Ozt7e/w8PHy8/T09PT19fb39/j4+Pj5+fr6+vv7/Pz9/f7+/f39/f7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/f38/Pz8+/r5+Pj49/b29/f49/b39u3t7Ono6enq6/Hu8e7x7fTy8/T09fX19fX19fT08/Ly8u7p5+jq6OTq6ejn5uXk5OPi4eDd3dzc2NjY19bW1tTW1tnb3eDg4eLf4Ofl5unn4d3h4+bo6eXq6+3u7u/w8fHx8vP09fX29fb39/f4+fr6+vv7+/z8/Pz8/f39/f7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v79/f38/Pz8+/r5+Pf39vX08vLu7erq6urx7+3u7+/s6enq5ejo7enq8PDx8vLz8/Ly8vLy8fDw7/Dw8O3p6ebj397d3NrZ2NfY2NfV1NPS0NnZ2NjY2drb1tfX2tvc3t/X1dXY19nc3Obj5+jn6ejk5+jq6uvs7e7u7u/w8fLz8/P09fb29vf4+Pn5+vr7+/v8/Pz9/f3+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/f38/Pz7+/r5+Pb19fTz8vLx7Orm5eTj5OPi4uLj5OTp6efq5urp6uzs7e7v7+/v7+/v7u7t7Ovo7vHs6ebl4N3d29rY1tXV19bW1dLR0M3S0dDNzc7NzszMzMrKysfH2dra19bY1tjd4eLh3d/h4+Lk5ebn5+nq6urr7O3u7/Dw8fPz8/T19vb39/j5+fr6+/z8/P39/v7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/vz8/Pz7+vn5+Pf19PPy8e/u7+7u7+7t7Ojp5+fn5+jq4ODl6ejt8PPo6err6+zs7Ozs7Ovr6uno3ejr6ejq6+fp6ejn5eTj4+Pj4+Dg39/e09DPzs3MzMzV1tXU1dPS0s/R0c7Q0MzMys7Q1M/S2uHe3+Hi4uPl5ufn6Onq6+zt7e7w8fHy8/T19fb29/j5+fv7+/z9/f3+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v38/Pz7+vn49/f29PPy8O7t6+ro5+Xk4uHi39/f4+Pf3Nza3N/j5eXk5eXm5+jp6enp6eno6Ofm5fH7/vj1+fnx9vb29vX19PTz8/P08vLz8+zt7/Hy8/Pz6Orr7vL09vfx7u3o6Obh4dXc1trR0NXd2tvc3t7f4eLj5OXm5+jp6urr7e7v7/Hy8/T09ff4+fn6+vv7/P39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39+/v7+/r49vb29fPx7+7s6unm4d/d29jX1tfZ2NTW2+LU2NrV19LT1+Dh4uPk5eXl5OTk5OPj4uHl9fz4+////fj4+Pj5+fn5+vv6+/z7/Pz//////vv29Pn49vTy7u3s+Ozt6efr6ezk6d7m2c/P1tTV19jZ2tzd3t/g4ePk5ebn6Orr7O3u8PHy8/T29/j4+fr6+/z9/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/fv7+/r59/b09PPw7u3r6efj4+Xn6urq5/r9+fHm4+rw+Pjx4+TY0tPb29ze39/g4N/f39/e3d3c4PT//Pr///38/P39/v7///v8/P38/f7+/f3+//39/fv//////v79/fnj4t/Z3Nna3+DS4NPJxtDOz9HS09TW19na29zd3+Dg4+Tm5+jq6+3v8PHy9PX29/n5+vv8/P39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/f37+/v6+ff19PPx7+3r6ebl3eHm6/Hw7uvz8PH1/f//+/Xq2NLq59vS19fY2tvc3Nzb3Nvb29rZ2OD4///7//70///////////9/v7//v7//////////////P7+///////x2N7g3uTl5uzm0N7Pwr/KycvMzs/Q0tPV1tfY2tvc3eDi5OXm5+nr7u7v8fP09fb5+fr7+/z9/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38/Pv6+fj29PL7/eba7vLv+f//9e/v8fTz9Pf7+fDo3dLZx83V5tTFztLU1dTU0tPT2NjY2NfV1NPe+P/7///+///////////////+///////+//////////r////++P//6+He4d7e39/l1dPjtrDAxsnGxsbHy9PXztTa3+Pl6Orj7tHX6+fq7unr7e/w8vP19vf5+vv7/f39/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+ff29fPx7e/j5Pn46eby8fDx8/b19P735s+8uL/EzsnW18zcwMbJyszOzs/Q0dHR0dHQzs3M3ff/+//9/f///////////////v/+//7//v/////////7/////vv//urg3uHg3t/e4dPW57Suwbu3vs7g7vX07fHx8vHw7+/x6/Xg2eLf5ezn6ezu7/Hy8/X3+fr7+/z9/f3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pz6+ff29fPx7+Xv7Ovu8PL/8vP29/b39vf/48G1trzBycfL19rF6L++wsPEx8nMzMzLzMzLysnHxt32//z//fz////////////+//7//v/+/v7/////////+/////78//rk4d/g4ODe3NzT1+uvprirpbfS5+/x9PPu7u/x8O/v79/q5uDh2tjd5efp7O3v8fL09vj5+vv8/f39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+vj39fTy8O7o7u7v7/X7//X19PXz8vb3/Nq+vsS/vsXCztTa0uO+tre4urzBxMXHxsbGxsXDwsHk+f/8//z7/////////////v79/v7//v7+//////////3////8/P/13+Hi4N/g39vZ09jtqp2rppev1PH8/vv3+Pj39fPx8O708Onc3NjW2+Lk5+nr7e/x8/X3+Pn6/P39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38/Pr59/Xz8e/t6e3p6+z38uns6+3t7ezq6fDey8fIxcPKvdLU1NXMyK+ztri5vb6/wb6+vr69vLq57f3//P36+/////////////7+/f7+//7+/v/////////9/////P7/79/h4+Hh4N7b2dbV45+Rm6Coweb4+PDv7fv49fPz9PPz//To19nV2OXf4eXn6uzu8PLz9vf5+vv9/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38/Pz6+Pb08/Dt69/o5Ofl8+3q7Oro6ejn5uTx6tbIzdbSzMbQ0szUyuKrs7W2t7i2uLm4uLi4t7W0s/b///v8+/v////////////+//7//v/+/v7//////////////vn+/+ff5OLh4eHc2tvW1NudoKq28PD1+/n48+vu7e/w8PHx8vPo4NHVztfm3N7i5efq7O7w8vX3+Pn7/P39/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pz8+ff18/Hu7Onc4Nzq7vjt6u7s6urq6+vt4erfzc7X2djR0M7J1NbqrbCxsrKxr7CwsrKysrGvrq38///7/Pz6///////////////+//7//v/+//////////////74/f/i4uXk4OHf3Nnb0NfdrNDj8PHw8vX19/b09PP08u/u7u/279/FycTU4tnb3uLl5+rs7/H09vj5+/z9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+/j29PLw7ero5+Xc6e316Orq6+3s6urp6OLp4tTP0NPa1dTSys7W2rDCxMG6squmqKqrq6qpqKal/f//+vz7+v///////////////v///////v/////////////++Pz/4OTl4+Li39rb3M7Z3rTw///++Pb39vf28efk4d3e5e/5+/nevcO/z9bW2dzg4+bo6u/x8/b3+fv8/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f79+/r39vTx7+vo5d7e1uDq8/Tg7u3r6erp6Obi6+bU09Lk7uvs7fDx8vT18vPy9fj8///z9PTx6uLd2v///fn4+Pv9/v7////////+//////////////////39/f/+/Pj/++Pk5OTh393Y1tfS0dH3+vr+/v38/v7/5dHQ197i4+jt8f3yu7bHw8vQ0dXZ3eDk5+rt7/H09ff5+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/fv69/bz8e7r5+Td3Nfe6/L25O/t6+nq6ejn5+jp8//////////9+ff08/r5+PXz8O/v8fPy8u/t7e/19PLx8PLz9PT09PX19vb28/P09PX19vb29/v8/f////7///37//Tj5eXl5OHf3NrW2tHP9vn6//79/v3//+DR0Nfe4uTo7vL/97iywcLIzs/S19ve4ubp7O7x8/X3+fr8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz7+ff18/Du6ubj3djY3O7v+Onv7uzq6+rp6Ork4/D/+vj9//////79/v7////+/fr49f////79+/r58/Hw8PHw8fDz8/Ly8vHx8fHw8O/v7u3t6+zt7Ozu7/H+///////u6OXl5eXj4d/d1dzR1//7+v/+/P/8//7Y0dPY3+Lk6/Hy/Py0rbq+wcnMz9TY3N/k5+vt8PP19/n6/Pz9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38+vn29fLw7Onl4tzW1djs7ffr8O7s6+zr6unq5eHs+/Dy/vz8/Pv8////+/v+///////+/Pv6+vj28/r59vX19PPw7+7t7Ovq6enq6uno5uXk4+Xk4eDc29vZ9///////5+nn5+bk4t/f3drYz+P/+vz///z/+//50dLT2t/i5ezy9fn4rqizvb3EyczS1tre4uXq7O/y9Pf5+vz8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f39/Pr59vTx7+vn4+Db1NPR6Orz7fDu7Ovs7Ovq7Ofj7v/8+v7//////f3///7/////////8vP09vf49fP9+fX08/Pw7+zr6ujn5eTk5ubl5OLh4N/e3d3d3Nva1/X/////+uLn6evt7/L09fX07eb3//f+///8//z/8c3S1Nrf5Oft8/b37Kekrry6v8bKz9TY3OHk6evu8fT2+fr8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/fv6+PX08e7q5uLf2dPPzeHo8vDw7uzr7ezr6ujp5vH////////////////9/v78/f39+/z9/Pz8/fv59/Pw8O/x7+3u7ezq6Ofm5eXl5OPi4eDf3d3d39/d29rt///////7/////////f38/v/////5/////f/9/+fM09bb4eTo8Pb39diioKm5uLzEyM3S19vg4+jq7vHz9vn6/Pz9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+fj18/Dt6eXh3tfTzMra6vP17+7s6+zs6+rs8Ovv//v8///////+////9fb3+Pn5+Pf7/Pz7+/r5+fTz8e/w8PDu7Ovq6efm5eTk5OPi4eDf3t3c293c2tjV8/////v8///////////9/vP8///5+f////7+///eztTX3eHk6PH29/XFnZyjtba2wcXL0NXa3+Ln6e3w8/b4+vz8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+/n49fPw7enl4N3W1crH1Oz0+e/u7Ovs7Ovq8fDo7P/59v3//v38/f39/v///////////f3+/v37+ff08vLx8fLw7u7u7evq6ejn4+Pi4eDe3t3Y19nZ2tza2ef////69v3++fv9/v////////759/j5///+/f/92NDV193h5Orx9/r2uZuZnrG0s7/Dyc/T2N3h5+nt8PP2+Pr8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Ty7uvp5N/c2s7IxsHt9fbu7e3u7ezt7PLv7ez/+/3+/f/////////9/v///v////79/fz7+vf2+fb08vLx7+3t7Orp6+ro5+bl5OPi4eDf3d3d3Nza2Nbm///9/v/+//z9/v/+/f7////8/f7////9//z/+tDV1tbd4eTp9Pr89aGWmJuttba7wsjN09fb4eXo7PDy9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf08u7r6OTf29rLysbF8vb08vDu7u3s7+/v7ezr//r9//3//////////f7+/////v/+/Pz7+/r29vj29PLy8e/t7ezq6evq6Ofm5eTj4uHg397d3dzc2tjW5P///v3//v///////////////vz//////v79//TO1dfW3OLk6/T6+/qckpSXq7CzusHHzNPX2+Hl6Ozv8vX3+fz8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7///39/fr39fLu6+jk39vZyc3Ew/P08PLw8e/v8fLy7+/u7//5///9/////////v39/v/////+/fz8+/v6+Pb49vTx8vHv7e3s6+rr6ujn5uXk4+Lh4ODe3t3c3NvZ19z+/vz7/f7//////////////fr8/f////79/v/rzNXY2N7h5u31+fn/lY+SlKirsrjAxsvS1trg5efs7/L19/n8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Xy7uvo5N7b1snPwbzq8u7z9fX29vn5+ff69vX/+v7//v////////78/v///////f39+/r6+ff1+PX08fLx7+7u7Ovq6+ro5+bm5eTi4eDg397d3dzb2dfa/f///f////7///7+/v///v78+/z9/v3+/P//48vV2dve4ufu9vn3/I+NkpWoqLO3vsTK0NXZ3+Tn6+/y9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf18u7r6OPe2tLK0cC14PT2+/v7/f3+///+//78//v+//7////////+/v7///7+/v7+/fz8/Pr39vf18/Hy8e/u7u3r6uvq6efm5uXk4uHg4ODf3d3c29rY2Pv///3+///8/Pv6+/v9/v/////9/fz8/v3//9vO1tre4OPn8Pf6+O2HiZKTpKWxtb3DyNDU2d/k5+vv8vX3+fz8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7///39/fr39fLu6+jj3trPzNLBstf5///+/v38/f7////+/v/7/v/+///////+/v79//////79/vz7+/v6+Pb39PPx8vHv7u7t6+rr6uno5ubl5OPi4eDg397d3Nza2dT3///+//////79/fv6+/v///////////z+///T0dXa4ODj6fH4+vvOfIeRkqGjsLS7wsjP1Njf4+bq7/L19/n8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Xy7uvn493ZztDPwbHN/v/9/f39/Pr7+v3//f7//P///v///////v3+///////+/f39+/v7+fj19vTz8PLx7+7u7evq7Ovp6Ofm5eTj4uHg4d/e3d3c2tnV+P/////////////9+/z8/P39///////7///4zNPV2uHi5erx+Pv+r3SGkZGeo66zu8HHz9TY3+Pm6u7y9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf18u7r5+Pd2c7QzcGuxv3/+/3//////Pn+//3///3///////////79/f/////+/fz9/fv7+vn49fb08vDy8e/u7u3r6uzr6ejn5uXk4+Lh4OHg3t3d3Nva1PX8//n5+PP///////////z9/f78/fz9+v/+8sfU1Nri4ubq8/n8/51xhpKSnKWts7rBx8/U2N/j5uru8vX3+fz8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pr49fLu6+fj3dnTysnBtbT0//79/f////76+ff2+f3///////39/v////z+/v////7+/f3+/f369/j49/bz9fLw8O/u7Ovq6efm5uTj4uLh397e3t7d3Nva2drg7vv+/P3//////////vz+/////fz7+fXw5djS09re3Ofm+ev5//Zze4OKk5ujrLO5wcjO09rf4+fr7/L0+Pr8/P3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz6+PXy7uvn493Z1MvJwra18P/+/f3////++v/9/P3////////9/f7////8/f7//////v39/f38+vf4+Pf28/Xy8PDv7uzr6uno5ubl4+Li4eDe3t7e3dzb2tnj3t7g39rY2tfZ3+Ln6urr8/Ly7+nj3tnPz83LzdPb39rm6Pjs9//3cnuCipObo6yzucHIzdPa3uPn6+/y9Pj6/Pz9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38+vj18u7r6OPe2tTLysS2tOj///39//////v//////////v///f3+/////v39//////39/P39/Pr59/j39vP18vDw7+7s6+rp6Ofm5ePj4uHg397e3t3c29rZ4tzX1tLLxcO/v8PHzM/R0dHR0M3Ky8vIy8zMzNHW29zc6On17vj+/XF6gomSmqOss7nByM3T2d7j5+zv8vX4+vz8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/Pr49fPv6+jk3trUzcrEtrLf///9/f7////8//////////////39/v/+//7///////7+/P78/Pv5+Pf39vXz9PLw8O/u7Ovr6ujn5uXk4+Pi4N/f3t7d3Nva2dHO0NXW1M/M1dTS0c/Lx8bLysjHyMvLzc/OzMzR19vc3ert8/D8/f1xeYGIkpqirLO5wcjN09ne4+fs8PL1+Pv8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/vz6+Pbz7+zp5N/b083Mxbaw1Pz//fz+/////fz9/v7+/v7+///9/f7//v/9/v/////9/f39/v78+vj49/b18/Ty8PDv7ezr6+rp6Ofm5OPj4uHg39/e3t3b2trX09HQz87My87NysvKysnIxcXGycnIxsbMysjIztbc3t/s7vHw/f7tcHmBiJKaoqyzucHIzdPa3uTn7PDy9fj7/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79+vn28/Ds6eTf29POzMW2r8z3//38/f////3///////7+/v///f3+//7///7+/////vz9/P39+/r59/b19fL08vDw7+3s6+vq6ejn5uXk4+Ph4N/f3t7d3Nra2dfW1dTU1dbPzsvKysnHxsbFxsjKysrLz87MzNLY3d7d7PHx8P34y3B5gYiSmqOstLnByM7U2t/k5+zw8/X4+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fv59/Tw7enl39vSz8/GuLDF9f/9/P3////+/////////v7///79/v/+/v/+//////7+/P79/fv5+ff29fTy9PLw8O/t7Ozr6+no6Obl5OTj4eDf39/e3dzb2tva1tbV1tbVzs3NysvLysnJx8THx8nMz83NzM3T2d7f3+7w8fD/+axweYGIkpqjrLS6wsnO1Nvf5Ofs8PP1+fv8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v37+ff08O3p5d/b09HQybmxxPX//fz8/////v/+/f3+///+///+/f7//v7////////9/fz+/Pz6+fj39vX08vTy8PDv7ezs6+vq6ejn5eTk4+Lg39/f3t3c29rSzcnIzM/P0M7NzMzLy8nIx8XGyszLztDOzs3N0dfc3uDx8PHw//6dcHmBiZKbpK20usLJz9Xb4OTo7PDz9fn7/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7//v78+/r39fHu6ubg3dDVzcHCsbj4+/3///////z+/v7+/v7+/f///////////v///v///////v37+fj6+fb39fXy8vDw7ezr6+vq6Ofm5OPi4uHf3t7e3t3c29rZ19XT0tLR0M/Pzs7NzMvLysrKysrKy8zMzs7N0tfb4OLf7vTx+v/3c3J7g4uVnaWutbvDytDV3OHl6e7x9Pb5/P39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+//7+/Pv69/Xx7uvm4d3S1svBw7K39fv9///////8///+/v7+/v7///////////7//v////////78+/n4+vn29/X18vLw8O3s7Ovr6ujn5uXj4uLh4N7e3t7d3Nva2dfV09LS0dDPz87OzczLy8vKysrKysvMzM7PztLX3ODi3+708/n/+m5ye4SMlZ2mrra8xMvR1t3i5enu8fT2+fz9/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/////vz7+vj18e7r5+He1tfMw8Wzt+36/P///////P////7+/v7+///////////+//7////////+/Pr5+Pn59vf19fLy8PDt7ezr6+ro5+bl4+Pi4eDf3t7e3dzb2dnX1dTS0tLR0M/Pzs3MzMvLysrKysvLzMzPz87T2Nzg4uDu9fT6/f9tc3yEjJaepq+4vcXM0tfe4ubq7vL09vn8/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79+/r49fLv7Ofi3tnYysHGtLXh+vz///////z//////v7+/v////////////7///7//v7//fz7+Pn5+Pb39fXy8vDw7u3s7Ovq6efm5eTj4+Lg39/e3t3c29nZ19XU09LS0dDPz87OzczMy8vLysvLzMzNz8/P09jc4OLm8Pbz+v3/cHR9ho6Xn6iwuL7GzdLY3uPn6u/y9Pf6/P39/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fv7+Pby7+zo49/a1sjCx7ay1Pv9///////9//////7+/v7///////////7////////9///8+vn5+fn29/X18vLw8O7t7Ozr6+nn5+bk4+Pi4eDf397d3NrZ2NfV1NPT0tHR0M/Pzs3NzMzLy8vLy8zNzdDQz9TZ3eDi6fH48vr89HF2foePmKCpsrm+xs3S2N7i5+vv8/X3+vz9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38+/n28/Dt6eTg3NbGxMm3rsb9/v/+/////f///////v7+///////////+///////+/v/++/n5+Pj59fb19fLy8fHu7ezs7Ovp6Ofm5eTj4+Hg39/e3dza2djX1dTT09PS0dDQz8/OzczMzMvLy8zMzc7Q0dDV2d3g4erw+fH++NRsd4CIkJqiqrO5v8fN09je4+jr8PP19/r8/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/Pv59vPw7enk4d/XxcbLua+9/v///f7///3////////+/v///////////v7//////v7//v37+Pr4+PX29fXy8vHx7u3s7Ozr6ejo5uXk5OPh4N/f3t3c2tnY19XU09PT0tHQ0NDPzs3NzMzMzMzMzc3O0NHR1drd4OHu8frx//e2bniAiZGaoqu0u8DIz9TZ3+To7PDz9ff6/P39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////fz7+fbz8O7q5eHg2MbIzrquuv////3+///9///////////////////////+//////39//38+/j5+Pj19vX18vLx8e7t7ezs6+no6Ofl5OTj4uDf397d3NrZ2NbV1NPT09LS0dDQz87NzczMzMzMzM3OztDR0dXa3eDh8PT78P/6pnJ4gYmRm6OrtLzBydDV2uDk6ezw9PX3+vz9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pr39PHv6+bi3dbRzMS9t6/0///6+//+///////////////////////8/f7//v////7+/vz8+ff29/b39vPx8fDu7ezs6+vq6Ojn5eTk4+Hg397c3Nvb2djX1tXU09PS0tHQz8/PzszLy8vMzM3Oz9DT0tPV2+Dh5Ozw9/z/9INseYKLk52lrba9wsrQ1dvh5ert8fT3+fv9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz69/Tx7+vm493X0szEvrew8f//+v3//v///////////////////////f3+///+///+/v3+/Pn39/f29/bz8fHw7+7s7Ovr6ujo5+Xk5OPh4N/e3Nzb29nY19bV1NPT09PR0NDPz87My8zMzMzNzs/Q09LT1tvg4+Ts8fn+//R7bXqDjJWepq63vsPL0dbb4ebr7fH09/n7/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fz8+vj08u/s5+Pe19LNxr+5sen///r+//7///////////////////////3+/v////7+/v3//vz5+Pf39vf28/Hx8O/u7ezs6+ro6Ofl5OTj4eDf3tzc29vZ2NfW1dTU09PT0tHQ0M/OzcvMzMzNzc7P0NPT1Nfc4OPl7fT3/v77d298hY6WoKevuL/EzNLX3OLn6+7x9ff5+/3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pr49fLw7Ojk39nUz8fBurLf/P/6///9///////////////////////9/v7+/////f3//v37+vj29/b39vPx8fDu7ezr6+rp5+jn5eTk4+Hg397c3Nvb2djV1dTT0tHR0dLR0NDQz83MzMzMzc7P0NDT0dTX3uLl5vH28//+/3VzfYaPl6GosLnAxc3T2N3j5+zu8vX3+fv9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz7+PXz8e3o5eDa1dDIwry01fn/+v///P////////////////////////3+///////+/v7+/Pr4+Pf29/bz8fHw7+7s6+vq6Ofn5uTj4+Lg39/e3Nzb29nY1tXU09LS0tLS0tHQ0M/NzM3Nzc3Oz9DR0dLT2N/l5ujx9/L//fNzdX+IkJiiqbG6wMbN09jd4+fs7/L2+Pr8/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fz8+/n28/Hu6ebh29bRysS9tsz4//r///v//////////////////////////v////7+/v7+/fz5+fj39vf28/Hx8O/u7ezr6ujn5+bk4+Pi4N/f3tzc29vZ2NbW1dTT0tLS09LR0dDQzszNzc3Oz9DR0dHS1Nvh5ejp8vrz//fVb3iBipKao6uyu8LHz9XZ3uTo7fDz9vj6/P3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pv59vTy7urm4tzX0svFv7fF9f76///6/v/////////////////////////+/////v3+/v37+/n49/b39vPx8fDu7Ovq6ejm5efm5OPj4uDf397c3Nvb2djV1dTT0tHR0dPS0dHR0M7Nzc3Nzs/Q0dHR0tXc4ujq6fP79f/3unF5g4yVnKattb3EydHW2+Dl6u7w8/b4+vz9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz7+fb08u/q5+Pc2NPMxr+4w/T++v//+f7//////////////////////////////v7+/v79/fv5+Pf29/bz8fHw7u3r6uno5uXn5uTj4+Lg39/e3Nzb29nY1tXU09LS0dHT0tLR0dDOzc3Nzs7P0NHS0dLV3OLo6uv1+/H/+7B1e4WOlp6nr7a/xcvS2Nzh5+vu8PT2+fr8/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pr49fLv6+jj39nUz8jBu7P4///8/////////////////////v7+/v7+/v7+/v7+/v7+/f37+fj6+Pf19PPx7/Dv7ezr6unn5uXk5OPi4N/d3Nva2trZ2NbV1dTU09PS0NDQz8/Oz8/Ozs/P0NHS09LW3N3d4ejv+/L///GRcYCJkZmhq7K4v8jM09jd4ufq7vH09/n7/P7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz6+Pbz7+vp5ODa1dDKw7258v//9fz//f////////////////7+/v7+/v7+/v7+/v7+/v39+/n4+vj39vXz8e/v7u3s6+ro5+bl5OTj4uDf3dzb29va2djW1dXU1NPT09DQ0NDPzs/Pz8/Pz9DR0tPS193e3uLo7+7x+v/zi3iAi5Obo6yzusHJzdPZ3uLn6u/x9Pf5+/z+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+vj28/Ds6ebi3NfSzMW/vef6+vP8//3//////////////////v7+/v7+/v7+/v7+/v38/fv5+Pn49/b18/Hv7+7t7Ovq6Obm5eTj4+Lg393c29vb2tnY1tbV1dTU09PR0NHQz87Q0M/Pz9DR0tPT0tfe3+Hj6e7q8/3/+H11iI2WnqWvtbzDys7V2t/j6Ovv8vX3+fv8/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pv49vTx7evn493Y1M7Hwbvb9f/8///8///////////////////+/v7+/v7+/v7+/f39/Pz6+ff5+Pf29fPx7+7t7ezs6ufl5uXk4+Pi4N7e3dvb29rZ2NbW1tXU1NPT0dHR0dDP0NDQ0NDQ0dLT1NLX3uDi5ezx8Pz/++qAcY6QmKCosbe9xczQ19zg5ens8PL1+Pr7/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+ff18u7s5+Pe2dXPyMO60e///////f/////////+//////////////7+/v79/fz8/Pv8+vj3+Pj39vXz8O7t7ezs6+nn5ebl5OPj4uDe3t3c29vb2djX19bW1dTU1NLS0tHQ0NHR0NDQ0dLT1NTS2N7h4+fv8/f///jVb4KPk5ujqrO5v8bO09ne4ubq7fHz9vj6+/3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+/n39fPv7ejk39rW0crFucje9P////7//////////v///////////////v79/f38/Pz7/Pr49/j39vb08u/t7e3s6+rp5+Xl5ePj4uHg3t7d3Nvb29rZ19fW1tXV1NTS0tPS0dDS0dHR0dHS09TV09ff4uPn8PXy/vrxk3p7mJefpq22vMLJ0NXa3+Pn6+7x8/b5+vz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pv5+Pbz8O7q5uDc2NPMx8DAwtTp//7///////////7///////////////7+/f39+/v7+/z6+Pf39vb19PLu7O7s6+rq6Ofl5eTj4+Lh397e3dzb29va2dfX19bW1dXU09PT0tHR0tLR0dHS09TV1dTY4OPk6e719dvvl39+h5Saoqmwub/Ey9LW3OHk6Ozv8vT3+fv8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+fj29PDu6+fi3trVzsnIuq230/T4/v/////////+///////////////+/v39/fv7+/v7+vj39vb19fTx7uzu7Ovq6ejn5eXk4+Pi4d/e3t3c3Nzb2tnY19fW1tXV1NPT09LS0dLS0dLS0tPU1dbV2eLl5unv8/nYhHZ/jY+VnKSss7vBxs3T193h5ent7/L09/n7/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pr59/Tx7+vo5ODc1tHMxr60rqirvdP9//////31/P/++vf7/P/8///////7+fj+/v7+/Pr59/Dw7+7u7Ono7ero5+fm5OLo5+Xk4+Lg3t7c2tra2tnY19fW1tXV1dXR1NXT09PSz87TzNLV2NDPz9nh6Ore5dptc3h+hYyTm6KnsLe9w8rO1Nje4ubp7fD09vn6+/z9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz7+ff18e/s6eXh3djSzs7CubOtqKquuNbt7fT////////+///+/f/+///9/fv7/f38+/n29PL08/Py8vDu7O3r6ejp6Obk4+Lh4ODf3dzf3tzc3Nzc29fX19fW1dTT1NXU0tDQz83V0M/X1d7b1NTY0+byrXVrcXd8gYmQlp6lq7O6wMbM0dba4OTn6+7x9Pb5+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38+/n49fLw7uvn4+Db1dHQxru2sa2mo5GSmLDc+/77/f//+Pz/+v3+/f38+/r6+fj4+Pf29PPy9/b29fTz8O/p5+bl5eXj4eHh4ODg397c29rZ2NjY2NfX19fX19bV1NPT09HP0NDP3tLJ09TQzdXU5rBuaGJdXXZ8goePlZujqrC4v8TJ0NTZ3eLm6ezw8vX3+fv8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pv6+Pbz8e/s6OXi3djU08zBubGsp6WXkZGQjo2Zt+n0/fTw9fn//v/9/Pr6+vz29vb29fTz8/Tz8vHw7uzq5+bl5OXk4uHg397e3t7c29zb2tnY2NfX2NjY19fW1tXU1NTS0dHQz9fKycrS7MmAUlRWXmJgbnt7goeMlJqgqK+0vMLHzNLX29/k6Ort8PP19/r7/P39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz7+vn39PLv7enm49/a1tLOx761rqeipJqSiYeDeHl6eIGZxOr//////v38+/z/+fn49/b08/Lw7+7t6+nm5Ojo5+fn5uXk4+Lh4eHg3t3g397d3Nvb29nZ2NfX19fX1NbX2tvc297h2qdkVldMTVZUWWJhb314gIeMkZmfpayzuL/Fys7U2N3g5enr7vHz9vj6/P39/v7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+PXz8e7r6OXh3NnUzcfCvLixqaOem5GMiHlybnBuZm2K5f39/fz6+fn7/fn5+Pf39vX18O/u7ezq5+Xo6eno6Ofl5OXk4+Pj4uDf3t7d3Nva2tvV1tbX2drb3N7i5uvr7PD0pFI7RERHUVBmbGhsb3N4hIWMkpefpKqxt7zDyc3R19vf4+fq7O/y9Pf5+/z9/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz7+vn29PLw7Orn5N/b2tXMycXAuLSro56Xk42FhXJ0cWVgdPD///37+Pb09/n4+Pj4+Pj4+Pb19fX18/Hw7u7v7+7s6+rp6Ojo6Ojm5efo6Ojn5+jq7O3u7+/v7u3r7vT39/f9/3lFPUFHTVdYYW1tdHqCfYOLkpiepaqwt7zByM3R1dre4uXp7O7w8/X3+fv9/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38+/v59/Xz8e7r6ebh3dXS0tLMxL66saimoJyakY6IgHJoZXP//v////339/f4+vr5+Pj39/b9/f3+/v78+/f4+Pj39fTz9vX19vf39vX5+vv7+/z+//X19PLv6uXi4ujw9/n9//9tTUpIUlZbYGBlbnp1goaJkJecoqmutLvAxcvQ1Njd4ePn6+7w8fT2+Pn7/f39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f38+vj39fPw7uvo5OLc2dTQzMbAvLWyrKahm5SQhIqDeG5u0P////v+/PP08vT08/Lx8fHx9vf39/f39vb6+/v7+/v6+vb29/b29/f38vHw7uzr7Ovl5+jm5uTj4t3o7v35///2RUlOU1dcYmZrcHd9gYaNkZmdpKqvtbu/xsrP1Nfb4OPo6u3v8fP29/r6+/z9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/f39/Pr49/b08u/s6ebj39zY08/KxMC6trCrpZ+ZlYqPiH1zbrr////6/fry8vDz8/Lx8fDx8vX19fX19fT09fX19fX09PPx8fLx8PDy8u3t7evq6enq5ujo5uTl4+Ph6u/99////khMUVZbYGZqcXZ9g4iNk5idoqiutLm/w8nN0tba3uLl6evu8fP19/j6+vv8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f39/fz6+fj39fPx7uvo5uPg3NjUz8nFwLy2saymoJuTlY6DfXOf+P//+fv58/Dv8fLy8fDw8fLz8vLy8fHx8e7u7u7t7ezr7+7t7Ozs6+vq6uno5+jq6efo6efl4+Pj4+nv/vr8/+NNUFZbYGZscHZ7goiNkpmdpKivtLq/xMjO0dba3eHl6Ovt8PL09vj5+vv7/P3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f38+/r5+Pb08vDt6ujm49/c2NTOysXBvLeyrKaimZmTiIZ6jP3///n6+fPx7/Dx8vLx8PLz8fHw7+/v7+/u7u7u7ezr6uzs7Ovq6+vr6+vq6enq6uvo6Ojm5eTk5OXp6/7+/vivUFRaX2VrcXZ7gYiOk5ieo6qvtbq/xMnN0tba3uHk6Ovt7vHz9ff4+vv7/Pz9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+vj39fPx7+zq6OXh3tvX0s7KxsG8t7KsqJ2emY2LgIb8///5+fz18/Dw8fLy8vLy8+/v7u3s7O3t8vLx8fDw7+7r7Ovq6+rp6err6enp6enp5+np5+bk5OTn7u36///6iFNXXWNpcHZ7g4iPlZqgpquwtLq/xMjN0dfa3uHk5urt7vDy9Pb3+fr7+/z9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/fz8+/v59/b08/Hu7Orn5OLf29bTz8vGwb23sq6ipJ6SkoaK8f//+fn99/Py8PHx8fLy8vHu7u3t7Ozs6/Pz8/Py8fHw7Ovq6erq6enq6eno6eno5+nq6ejk4+Pk5/Hx/f//+WtXW2FnbnV8gYiNlJqfpaywtrq/xMnN0tXb3uLl5+ns7+/x8/X2+Pn6/Pz8/f7+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/Pz7+vn39vXz8e/t6+jl4+Db2NTQy8fCvbezqKiimJqKjdn///v6/Pfy8fDv7/Dx8vDv7+/v7u7t7Ozw8PDw8O/v7uzr7Ovr7Ozs6Ono6Ojn5+jq6ejo5OPj5ejw8f7///haW19mbHN6goaMkZifpKqwtbzAxcrO0tba3uHl6Onr7vHx8/X3+Pn6/Pz8/f3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8/Pv6+Pf29fLx7+3q6Obj3tvX1M/KxsG7t62tp5yeio7G///7+fz28u/w7u3v8fHv7e/v7+7u7ezr6uvr6+vq6urv7+7t7u7u7unn6enp6enq6uno5uXj5OXu7+37////WF5iaXB3foaKkZeepKqvtrvAw8nN0dXa3eHk5+rr7fDy8/X3+Pn6/P38/P39/v7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38/Pz6+vn49/Xz8vHw7uvp5uLg29jUz8vFv7u1sKqloJeWm/T///T28+zn7u7u7u7u7+/r6+rp6enp6ejp6uvq6uns7Ovt7Ozt7ezq6+rq6erq6ujp6Ojl5OTl6+r3/f//62ZgZ210fIOJkJeepKmwtbnAxMjO09ba3uHl5+rs7vDy8/T1+Pr7/Pz8/f39/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+/v6+ff29PPz8fDu6+jl4t/c19PPycO/trKtp6KZlZf2/P/08vLs5Ojo6Ojo6Onp6eno5+fn5+fn6Onp6unp6urq6uvr6uzs6+vq6erq6uro6ujo5eTk5evr9/z//NhiY2pxd4CGjJSaoaets7i9xMjM0tba3eHk6Ons7vDx8/X19vj6/Pz8/P39/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f39/Pz7+/r59/b19fTy8O7s6Obi39rW0s3Hw7i2saqlnJaS9vf78fDv6uDk5OTk5OTk5OTj4+Li4uLi4uPk5ubm5+jp6ejo6urp6evp6enq6urq6evp6ebl5OXs6vr7//e+YmdudXuEi5GZn6essri9wsnN0dfb3+Lm6Ovt7/Hy9PX39/j5+/z8/Pz9/f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/f38/Pz7+vn39/b19PLx7uvp4+Dc2NTOycS7ubSspqCYkfLu9evr7ejb4ODg39/f39/c3Nvb29vb29ve3+Di4uPk5eXl5+jo6urr6ejp6Ojp6urr6unm5eXm7er+/P/1pGVqcXh/iI6VnaSrsba9wcbN0tbb3+Ll6ezu7/Lz9PX3+Pn5+vv8/Pz8/v7+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/f39/Pv6+fj39vTz8u/s6uXi3trV0MrGvbq1rKahm5Ln5Ozk5efk1dbW1dXV1dXU1tbV1dXV1dXX2Nna3N3e4eLj5OTl5+fn5+jn6Ofn6ejq6+rq5+bl5u3s//3/84tkbHN6gYqRmKCnrrS5wMXK0NXZ3uLl6Ovu8PL09fb2+Pn6+/v8/P39/f7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/v39/f38+/r59/b19PLv7Oro5eDc19LLx724tKykoJuS0Nfk297g2c7S0tHR0dDQ0M/Pz87Oz8/P0NHU1dbZ29ze39/g4eLj4+Xk5OXm5+jn6erp6efm5ufu7//8+/J4YW52fYSNlZyjq7K4vcTJzdTY3OHl5+rt8PL09ff39/j5/Pz8/f39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v79/f39/Pv7+vj39vTy8O3q6OXg29bQysa8tbGqopyYkbrK29DU1dDEysnJycjIyMfHxsbGxsbGx8nKy8zP0NLU19fa29vd3t7j4uLj5eXm5+jp6enn5ubn7vP//fj0cGBxeYCIkZigp6+2vMHIzdLY3N/k6Ort8PP19vj4+fn6+vz8/f39/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/f39/fz8+/r5+Pb18/Dt6ubj3tnUzsfDurOwqqCZlY+rwdTJzs7Ivr+/v76+vb29v7+/vr6/v8DBw8XFxsrMztLT1NfY2drb4eDh4uLk5efn6ejp5ubm6O70/v74+HFidHyDipSbo6qyub/Ey9DV297i5+rt7/L19vj5+vr6+/v8/f39/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v///fz8+/r5+vf18/Lv6+jo4tvX0dDKwLy1raefl5GNm7bHxsK6tLS8uri2uLi1s7a3t7a0sK+vtbzAwL7ByMvJzc3Ly9HX19na29zh4+bn4+Xn5ubn6enr9vz//fRrbHV+h46XnqautbrCyM3S2d3i5ent8PL19vn5+fr7+/z8/Pz9/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///////v7//v38/Pv6+fn39fPx7urn4d7c0sjCvriyqqSemJGHgo+twcK/vLu/qaekpKWjoqCgoqSlqq2xsa6oqKyxsrKwxcHAxsrLz9XV1tnb3uLl5+Lk5uXk5ufp6/X6///zbmx3gIiQmaCosLe8xMrP1dvf5Ofr7vH09vj5+vr7+/z8/f39/f7+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7//////////v38/Pv7+fj39fLw7uvn497X0crBvLStrKOclpGLg3+HorOyqqGhpaCfnpydnJuXkZGUl5qcnqCgn6Ous7O5v7O3ur7BxMbH0NDT1dre4OLh4+Xk4+Pm6Ov3+///5m5weoOLk5yjqrO6wMfN0tfd4ubp7fHz9vj6+/v7/Pz9/f39/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+//////////79/Pv7+vj39PLu7Orm4d7S0s/KxL2zrK6lnZWLgHdzfZKmqaaioaefnpucnJqZl52em5eSjIeEm5OPkZmfp6ykrbW4ubq6uMfJy8/U19zd3+Hi4ePj5ujr+fz/9s5rc3uEjZWepa21vcLK0NXa4OTo6+/y9ff6+/z8/P39/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v////////7+/fz7+vn39fHv6+jl4dzY0crFwcC6r6ibkYiEh5WouaGpr6ukmpaWn5+enpycmpmRkpKRjo2KiXh/hYeIjZOWpqCgp6yxuca+wMXIztHV2drd4ODi4+Xn6vr8//O7and9ho6Wn6eut77Ey9HW2+Hl6ezw8/b4+vz9/f3+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz6+fj28/Hu6+fj4NvV0cDBv7qzp5qZjJaptbSsop+ysK6qpKGen5qampiYl5SUjo6Ni4qJiIiAgYGEhod6aYSFjp+utbi8t7q+wsfL0tTX2d3e3uDk5+r5+//2r216foeQmKGosLnAxc3T19zi5urt8fT3+fv8/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pv6+Pf18+/t6eXh3NjSzMe9vrWnnJefrrm1sKuknpyfpqCbmpqZmpuPjo6NjIqJiZSRjoyIhoSDh4aCe3h2cm18f4CEjZecnqyxtbu+w8rO0tXX29ze4+bq+/r/9KJte3+IkZmjqrK7wcfO1Nnd4+fs7vL1+Pr8/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pv5+Pf18/Ds6uPf2tbRy8S/u7Gmqba7sq+xrq6vraqlpaCZk5KSk5KTkJCPjIuLi4qCg4ODhIOCgXp5eHh2dnV2Z2Nka3J8kaelqK6yuL3DyM/Q1dfa3OHl5/z8/u2VanyBipKbpKy0vMPIz9Xa3uTo7fDz9/n7/f7+/v7////////////+/v7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/fz7+vfz8fDt6OTZ1s7Ix8W6tZ6msba1tLS2ramno6Cdm5mZlZOQjouJhoeEhIODgH9/fn59fX19fX15eXZ2c29ubWtmXlVZZ2pcoJynq67CybzGzM/T1dnd4/Hx8f71eXZ7g4yUnKWttb7FytHX2+Dl6e7w9Pf5+/z9/////////////////////////////////////////////////////////////////v7+//////////////////39/f39/f39/Pz7+/v8/Pz8/Pz8/P3+/v7+/v7+/v7+/////////////////////////////////////////////v39/fz7+ff08O7s6OLd0c3Qy7uuqaq7vb23r6urrKimpKGcmZeUkpCMiYiFhIF/f35+fHx7e3h4eHh4eHh4dXV0cnFubGtpamdcVFtlalyOmpulqba7wcfLztPX2+Lw8PH+9nd2e4OMlZ2mrra+xcrR19zg5uru8PT3+vv8/f///////////////////////////////////////////////////////////////////////////v7+/v39/f39/f39/Pz8/Pv6+vr6+vr7+/v6+vv7/P39/f39/v7+/v7+/v///////////////////////////////////////v38/Pz6+ff08ezp5uHa1M3OyL2xpKe4ureyqqWjpqiioJyZlJGNjImGg399e3p4d3d0dHNxcHBwcHBwcHBwcG1tbW1rampnZ2dlX1RKS0xNT4CSk6ass7i+w8nN09fe7e7x/vd2dnuEjZaep6+2v8bL0tjc4ebr7vH0+Pr7/f7///////////////////////////////////////////////////////////////////////////38/Pz8+/v7+/v7+vr5+fj39vb19fb29vb29vb3+Pj5+vr6+/v8/P39/f7+/v7+/v////////////////////////////////79/Pv7+ff18e3p5eHb083QxruqprO9tbKxrKWioaOjmpeTjoqFgYB8end0cW9sbGpqaGhnZWRkZGRkZGRlZWVlZWVlZWVkZF1cXF5YUEU/Rkg4YI+aqKawt73CyM7T2urr8f34dXZ7hI6Xn6iwt7/GzNPZ3eLn6+7x9fj6+/3+//////////////////////////////////////////////////////////////////////7+/v78/Pv7+vr6+ff39/b19PPz8fHx8PDw8PHx8fHx8vPz9PX19vf4+fn6/Pz9/f3+/v7//////////////////////////////v7+/fz7+ff08u7q5eHc1czGxLemqLi7sq+zr6yopJ+cmo+LiIJ9d3NvbWpoZWJhXltcWVlZWFZWVlZWVlZXV1dXWlpbXV5eXV1YWFhWVFFPS0Q4My1XjJGoqa+1vMLIz9Xo5u7593J0eoWOl6CpsLjAx8zT2d3i5+zu8fX4+vz9/v///////////////////////////////////////////////////////////////////v79/fz8/Pv7+vn49/f09PPy8O/v7u3t7Ovr6+vs7Ozs7e3u7/Dw8fLz9fb3+Pr6+/v8/f3+/v7+/////////////////////////v7+/fz7+vj18e7q5d/a1M3Evq+lrb24q6murKikoJyXk4+AfnlybmhjYFtYVlRRT0xLSUlJR0dGRUVGR0dHSEhISE1OT1BSU1NVXFxVTk9PSkQ6Pzg1KT6DmaCnrbS7wsnQ4+Ps9/ZwdHqFjpigqrG4wMfM09nd4ujs7vH1+Pr8/f7////////////////////////////////////////////////////////////////+/v38/Pv6+vr5+Pf19PLy8O/u7evq6ejn5+bm5eXl5ubm5+fo6erq7Ozu7/Hz9PX29/j5+vv8/P39/v7+//////////////////////7+/v37+vj18e3q5eDZ0svDurOds762rqmpq6ainZeRiYJ+dHBrZF9ZVFBKR0VDQD47Ojk5ODg3Nzc3ODk5OTo6OjtAQEJFRkdISlVSSklRT0Q6Njk8LCMgNnaVnaSstr3Dy+Hg6/X2bnR6hY6YoKqxuMDHzNPZ3eLn7O/x9fj6/P3+/////////////////////////////////////////////////////////////////fz8+/r5+Pj29fTy8O7s7Ono5+Xk4uHg397d3dzc3Nzd3d3e3+Dh4uTl5+nr7e/v8vP09ff5+vr8/P39/v7+///////////////////+/v78+vn28+/r5+Lc1MzFvLKsrrW3sK2tqJ+bmJSNhHxzbmpoYlxUT0hFQD47NzYzMC8wLi4uLiwsLC4vLy8wMDExNjg5PD5AQUNEQj5FTUo9NTwuLTMkHi4zj5eeqLC5wcng3+r09W10eYSOmKGqsbi/x8zT2d3i5+vv8fX4+/z9/v////////////////////////////////////////////////////////////////z8+/r5+Pf38/Lx7uzq6Ofi4uDf3dva2dfW1dXU1NTU1dXV1tfY2dre3+Di5efp6u/w8fP19/j5/Pz8/f3+/v7///////////7+/v7//vz7/Pj39e/r5+Hb2crAxLaXpa6trKunoZyYlY6FenBoYl9RTUlFPjg1NCsqKicmJiMjHh4eHh4eHh4hIiIjJCQlJSUoKCwuMTQ0OTo7PD4+PT42MCslIBwbGTOKnqScv8C/z+Dp7O1tcX2GkJmiq7K5wcfO09ng5Ojt7/H1+fv8/f7//////////////////////v7+//////////////7+/v/////////+///+/v/+/fz7+vr49vTz8u7t6ubj4eDf3dvY1NDPy8rNzMvKy8vLy9XX1dHQzs7O19jZ3d/g4eTn6evt7/L09ff4+fv9/v79/f///////////v7+//78+/v39fLs6OPc283Iva+ltK+sq6qnpZ+XkoyFe29mYFhWRkM/OTUvLComJiQjIiIgHx0dHR0dHR0dHh4fHyAgISEhIyQnKiwvMDM0Nzg5OTk4MzAqJB8dGRcrV5qUn6W8vsnb4+nrbHB8ho+ZoauyucHHztPY3+Tn7e/y9vn7/P7+//////////////////////////////////////////////////////7+/f39/fz6+vr59/Tx7+7s6ePg4NvVz9DOy8jHxMLCxMPCwMDCwsK5uru8vL7Cw8bJys7R1tve4ePl6Ort7/H09ff5+/z8/Pz+/////v/////+///+/Pr69fLv6ePd1tTGwrmdqbK1qammo56Xjol9d2thVk9JRzY1Mi4pJSIgHx8fHxwcHBwbGxsbGxsbGxoaGhsbGxsbHB0fIiMmJykrLC0wMTEzMzAtJyMeGxcXGyV3jZeXrbzD1N/n5mtve4WPmKGrsbnBx87T2N/j5+zw8/b5+/z+/v///////////////////////////////////////v7+///////////9/Pz8/Pv5+Pj39fLv7Onn5eLd19POysrEwsG/vb68u7e2tbSzs7S0ra6ztrzBxcjBvry/xM/X2tnc3+Ll6Ovt8fL09/j5+vr7/P7+/v7+//////7+/fv5+PPw7OXf2NDKw76opqmjraako52XjYN8bGVbUEY/OjgrKickIB4cGhsbGxoaGhgYGxsbGxsbGxsYGBgYGBgYGBoaGxwdHyAgJSYnKCsrLCwsKCQfHBkXFgoSQIWMn564vdDb4+Jqb3qFjpihqrG4wMfO09jf4+bs8PP2+fv8/v7///////////////////7+/v79/f39/Pz8/Pz8/Pz8+/z8/Pz8/f39/Pz7+/v59/b08u/s6eXi39/c2NTPycXDx8S+ubOwra2mpqWjoqKhoaanqaqsrq+ws7vDxcLAw8jQ09fb3uHm6ezu8fT29/n6+vz9/v7+/v////7+/fz5+Pbx7eni3NTLvsCvo6mhnqagn5uVjIB1bltVSkE6NC8tJCIhHhwaGBgaGhoaGBgYFhsbGxsbGxsbGBgYGBgYGBgZGhoaGxsdHSAgISQlJigoJiQgHBsZFxYJFRljiJ+crbfL1d/caWx4g42XoKmwuMDGzdLX3uLm6+/y9vn7/P3+///////////////+/v39/f39/Pz7+/r6+vr6+vn5+fn5+fr6+vr7+/v6+vn59/Xz8O7r5+Tg3NnWzsjJyMXCv66rp6WlqKyvp6WmpqOin56YmZmZmJiYmKSmrrW6vby9xMjN0dXZ3uLn6u7x8/X3+fn7/P39/v/////+/fz6+Pb07enl3tfOxbOqp6ueo52fmpeSiX9yZl9ORz41LisnJh8dHBsaGBkXGhoaGhgZGRkbGxsbGxsbGxkZGRgYGBgYGhoaGxsbGxwdHSAhIiIlJSIfHRsaGBgWExkUK3yIpJ6wxc3Z1WZpdoCKlJ2nrrW9xMrQ1dzh5eru8PT3+vv9/v7+/v7+/v7+/v79/fz7+/v8/Pv6+vn4+Pf39/f39vb29/f39/j4+Pj39/b29fPw7uzq5eLe2tXSy8fDvbauqq2jqrG1s6ylnqChoKCdmZeWjIuKiomHh4aLiImRoLC8wLq/xcrO09nd4OPo7O/x9Pf4+fv8/f3+/////f37+ff08erl4dnRx72tmqqlo6GempGMiH1xZFhRQzw2LCckISAeHhsbGhoaGhwcHBsaGhgYGxsbGxsbGxsaGhoaGhoaGhwcHBsbGxsbHR0dICAhIyMeHBsZGhgYFhocFxBNdaCSp7zE085gZ3N9h5CZo6uyusDHzNLa3uLo7O7y9vj6/P3+/v7+/v7+/v39/Pv6+vn5+Pj39/b19PTy8vLy8vLx8fLy8vPz8/T08vLx8O/t6ufm4t7Z1dDLxsW5rqahpbC/ra6rp6Ofnp+enpyal5OSj4+Mi4mGg4F9dnl8foGKmaaus7q/w8nP1Njc4ebp7PDz9vf5+vv8/f7//v38+/n29O/o4t3VzMG3qqWeoaOjnJiMiIB2aVtORj02MCgjIB0dHh4eHRsbHBscHBwbGhoaGhoaGhoaGhoaGhobGxsbGxseHBwcHBsbGxwcHR8fICIiHBsaGRcYGRgbHxUUGnGQjKK1vszIXmVxeoSOl6Gor7i9xMrQ2N3h5urt8fX4+vz9/v7+/v7+/v78/Pv6+fn49/T08/Lx8fDv7e3t7e3t7Ozt7e3u7u/v7+7u7ezr6OXi4NzX0s3Hwb27squyu7iwqaipqaqnpqeompmWko+Mi4qJiIaFg4F+fIB2aGRpdHl8oaats7i9xMrS1tzh5ejt8PT2+Pn6+vv8///9/fz59fHz39PW0sa9s42po5mcmJSJh31xY1dLQz0qKSUgHBsaGBsbGxsaGhoaGhoaGhoaGhgZGRoaGxoaGhsbGhoYGBgYGxsbGxsbGxsbGxsbGxsbGxoaGhsaGRkYHRQVIQc1g4qnqLC+wmxlcXF5h5CZoa20ub7FzNLY3eHm6vD09vf6+/v7/Pz8/Pv6+/r5+Pj29PPw8e7v7+/t7uTj4+Lh4eHh5+fo5+fo5+fo6Onl4OHg2tXWy8PDv7mxl6u8urOxsbCop6OhnpyamZOSj46LiYmJhYWCf316eXdycm9tZ2NhXmZ/mKartLm7ytHU19zk6enu8PP2+Pr7/P/+/Pv69/Pv7uDVzsvBsamZqJuVmZWPiH53alxQRTw2KSgkIBwbGhgbGxsbGxsbGxsbGxsbGxkZGhobGxsbGxobGhoaGhgYGBsbGxsbGxsbGxsbGxsbGxsaGxobGhkZGBwWFxwMMGyIkZiir7JiW2R0fIiUnKOqrrO5wMbN1Nvf5Oju8vT2+Pr7+/z8/Pv6+vj39vTz8vDu7Oro5+Ph393l5OPj4uLi4tvb3Nze3t/f4d7f4N3c2NPMycfCuqeguL2/vLKrrayqpqKgnZqYl5SOjoqJh4SEhIGAfnx7eHV1cXFubGZiYF9vXmeJoqSuwbzI0M3R2uTl6+3x9Pb5+/z+/Pv6+PXw7Onh1snEu6ajoJ+SkZONioF0a15SRDo0LyUkIh8cGhobGxsbGxsbGxsbGxsbGRkZGRsbGxsbGxsaGhoaGhobGRkbGxsbGxsbGxsbGxsbGxsbGRsZGBoaGBkcFxoYESVLgIaPnaqpXlNYbHJ7g4yVnKGss7q/xc3V2d/j6e3w8vX3+fn6+vr5+Pf29fPx8O3r6eXk39vZ2NXT2tnZ2NjY2NjZ29vb3d3f39jV1tfUz8zJw724tamouLm3tK6npqanpJ+dmZaUkI2Mh4SDgH98e3t6end3dHFxcW5tbGllYV9eVlVQWHKTp6q4u8HHzNTc4ubp7fH09/n7/vz6+ffz7enk4NjEwLSeo5iUiYuMh4R4Z2BTRjoyKicgIB8cGxoaGxoaGxsbGxsbGBgYGhoaGhoaGhoaGhoZGRsbGxobGxsZGxsbGxsbGxsbGxsbGxsbGxsaGhgYGRcYHBgaGBQYMXCCjZyrqWJTW2hudn2Di5Oapa21ub7HztLY3ePo6+7x8/X29/f39vTz8vHu7Orn5OHg3djT0M/Oy8zLy8rKysrK0NHR0tPS0tPOz8/MxsPCwMOzrKSsvLmyrq2sqqeioJ6XlZGNiYWCgXx7eHd0cXFvcHBubWxsa2tpaWhlYl9eW0lMSkVMYoGVtK6zxdDO0t3h5Oru8fT3+f78+vj28evm3dvUxLiml6KQjIaHhoN9bF9WSj0zKyUhHBwcGxsbGhsaGhoaGhoaGhkZGRkbGx0dGhoaGhoaGhodGxsbGxobGxsbGxsbGxsbGxsbGxsbGxsbGhoYGRgXGBoaGxkYEilZdXqFlZBPRFFfaHJ7f4WOlJ2krLK4wMjL09fe5Ojr7vHy8/T19PPx8O3r6OXi3tvY1dPQz8/NzMq+vr29vLy8vMPBwL69ubm3wsbFwL29ubSwpaGzurCvqbKvrqqknZmXjIqFf313dHNtbWppZmRkZGNjY2NjY2JiYmFgYF1aWVhXTEVEPTpQa5Gfsb/CxcrU2+Dm6+7x9Pf9/Pr39O/o49nUzcOwmZCXjoyHgoB9c2ZXTkE1LScgHhsaGhobGxsbGhoaGhkZGRkaGhobHR0fHhkZGRkZGhobHBwaGhoaGhobGxsbGxsbGxsbGxsbGxsbGxoaGRgXGRkYHB4cHBkxSICBho+KUk5cXmZvd36FjpWVmqGpsLjAxM3R2N7j5+rt7/Dx8vHv7ezp5+Tg3NjU0c3MycbDwb26ubi3t7a2tba4uLm9vsDBwbq8uLS1tKykl523uqypqayqp6Sgm5aOin97dnJtaGRhXl1aWVdVVVNWVlZWVldXV1ZWV1dVVVRUVlJJPTw9NytXg6evrbnHzNTa4ebq7fL1/Pv49vLs5eDUzMO/qZORiI6MhYF/eWhfT0Y7LygiHhwaGhoaGhsbGxoaGhkZGBgXGhkaGxwcGxwXFxcXGBgZGhcYGBcYGRoZGxsbGxsbGxsbGxsbGxsbGxsaGhkZGBgYFiAlHSIqPEJub3J2b0VBTExUXmlye4OHkZGVnqastLvDyNDW29/j5unq6+zr6efm4+Hd2dTQy8jHxLuzr6qmpamop6alpKSkmJqgpqyyt7iuramoqKOeoJi5v7Cnpqmno6Gblo+GfXJwbmhhXVlUU01NTElGRkVFRkZISUlKSkpMTU1OTk5OTU5HQ0FBOSobKFF/lqSwvcbN09vi5urv8/v69/Xx6+Pe0Mi+vqaUlH+OiIB+f3VhWExDNi0lIBwbGBgbGxsbGxsaGhoZGBcXFxgXGBgXFxcXExMTExQVFhcUFBYXFxgZGhsbGxsbGxsbGxsbGxsbGxscGxoaGRkZGRUiLB0qOUJCSFZnd4d1fYmIi4+SjoV3bZCNjpeeo6qyu8DIztPY3N/j5OXm5ePh39rY08/KxcC9v7mxq6mrrrOhoJ+enJybm5WVl5eYmpqZoJ+en5yVmqm0s7Kurqylo5eXkoh/dWtjZ2NfWVNPSkdEREI/Pjw8Oj4+Pj9CQkNDR0dISUdISEg/QUA+Ni8sLhIgS4WlqbC8x87X3+Tp7vP8+vfy7ung2dLJv62afoGJh4J9dm5iVk4/OS8mIB0bGhsaGhoaGxsbHBoaGhsdHh4UFBQWFhQSERcWGBoaGRgaGhkYGBgYGRoZGhsbGhkaGxsbGxsbGxsbGxsaGhsbHBwdISUrMTg+QFVcZW53e3+ChIeKiomGgn51dHl9h5ams6S9y83Oy9Li3OLd2Nva1tbIzNDPyL6upJ+otLi2r6ypo6CfnJmWk5KPj4yKjpGNg4eGjZmUhJS3ra6rqqadl5OPiYF4bmReWE1JRUE9OTUzLSwsLCsrKiorKyssLS4xMjc3Ojw+QkNEPjs4MiskHRgnDwo0fKuztMTJ0dbg6Ozx+vn18Ozn3tfOx7ismIKBhoN/enRqXlRMOzcsJR8cGxoaGhoaGhobGxoZGRgZGhocFBYVFhYVEhETERIUFBMTFRcXFxcWFhgcGRobGxoaGhsbGxsbGxsbGxsbGxobGxwcHyMnLTM5P0NVXGVtdnt+gIOGiImIhYF+gXlyb3J9iZGpsLS7xcjHzNvZ19PU09DOzsbDvbCmrby7u7izraelop+em5mVkpGOjI2KiY2SlpOkoph+bouwtKuqpqSgmZKLhX53bWRcU09BPzs3My8sKicnJyYmJiUlJiYmKCkqKy0tLzAzNjc3ODUxLSolHxcTGxQUHEF/p7S3xczT3+Di8/n49O7q5NvTysGwppSGgIN+e3ZtZVpPRTgzKiIdGxsaGhoaGhoaGhoaGBcVFxgZGBoXGBgZFhMREA8QExAQEBMVFBYUFRYZGxgZGxsaGhobGxsbGxsbGxsbGxsbGxscHCIlKi82PEFGV1xlbXZ6fX6BhIeHhoN+fHtvY1xfZ3BzlJqlr7W2usLHys3Pz83KycjBsaOntby3s6+qp6ainpucmZeUkY2MiouKiYiJjZSZkpqmmo6jrpelo6Ccl5CHgXRwZl1TS0NAMzIuKigmIiEfHx8fHh4eHh8fHyEiIiUmJicoKywsLC0oJSQhIBoVEBQZGgsNP4OztMHFzdzi5e759/Pt6OLZ0Me8qZ2MhXx9eXdwamBVSEEzLiYfHBsbGhoaGhsaGhoZGRgVFRYXFxUZGBYVFRQTEA4ODxAQDxETExQVFRUWFxoYGRsbGhoaGxsbGxsbGxsbGxsbGxsbHBwkJisyNz5ER1VcZGxzd3l6foCBg4B9e3hnZmRjYVtTS2t9l6eoq7S/u8DGx8XEwr26qaSxvbm0s6mnpqSioZuYlpSTkI2Jh4eHhoWGh4eNkouMk5qbnJ6cm5qXkoqDenRjX1ZNQzs1MSknIyEeHhwbHBsbGxsbGhoaGhwcHB4fHyAgISIjIyIhHBwcGhkWExATFRQMBBBKlqq1wtPW3ubp+ffy7Obf1s3CuaORg4F4d3RybGRcUEQ7LikiHBoaGhoaGhsbGhoZGRkYFRcYGBgWFBEODQ4NDAkNDQ8PDw0PFBMVFhUUFRgbFxkbHBsaGhsbGxsbGxsbGxwbGxsbHBwdJSYsMjc+Q0ZUWWBobXFydHh5e3x7eHVzbGxrZ15TRT5OXHSOo7GzrrK2u7q6u7atnKW1v7itrrSsqqekoJyYmI6NioiFgn9/gHx8foGDhomHjY2QmJiVnJCMioR8c2plU05IPzYwKiYgHx4cHBoaFxsbGhoaGhoaGRkbGxscHBwcGx0dHRsZGRgWFRUWFBAOEAsMDw0HG0uotLrO1N3i5vj28erk3dPKvregiHx7dXNxbWhhVkpANyomHxsaGhoaGhobGxoaGRgbGBYYGRkYFRIOCQkLCwsIDg4PEA0OERUUFRYWFBUZGhcYGxwbGhobGxsbGxsbGxscHBsbGxwcHSMmKi81Oz9DUFRaYWVoamtvcXN0c3Fta3RuZ11UUExNQ0ZSbpKppp2lqq2ws6yhm5y3wrGnrrOrpKSinJeVk5GFgoF+fHl3dnp1c3R5fX6BhoyMi42Rk5CBf3x1bWNaVEZCOjMtKCIfHRsaGhkZGRgbGxsbGxsbGxkZGxsbGxsbGxwaGxsaFxQWFhQUFBMRDwoKDw0QFQ0IeK69y9Xi4+j39e/o4trQx7i0n4B5dnBxbmlkXFNGOjInIx8aGBgaGhoaGxsaGRgXHBoWFxcWFBEQDAkJCQwLCgwNDg0MCg8VEBQWFRQVGBoWGBscGxsbGxsbGxsbGxsbHBwbGxwcHR0hJCgsMjc8P0hNU1leX2FiaGhqa2poZWNkYV5YVE9MSUdDRVZzhpCbm6Gjp6WWk6O4sq+vrqump5+cmpWPiYJ/enh3dHFubWpwbWxtb3J1eHt5fn58fH58c29sZV1USkQ7ODIrJiEdGhwaGRkaGhoaGxsbGxsbHBwYGhobGxsaGhwcGhscGhcUFxUSERIRDw4KDg8JDBINB0qfwc/V39/m9vTu5+DYzsW0saB8eHRwcGtmYVpQRDgxJyMdGhgYGhoaGhsbGhkYFxwZFxUVFRINDwsHBwkLCwkHBggJBgULEA4RFBQTFBgaFhgbHBsbGxsbGxsbGxsbGxwcHBscHB0dHyImKy81OjxESE9UV1pcXGFjZWVlY2BeVlRRUFBOSklRTERMXGd+m4+UlpiUiZ3Ks7GwsKumoJyZlI6GgXp0cHJwb2xqaGVlZGZmZ2lscHNtb3J2dHFqZ2tnY11USUA5NzItJyIdGhcdHBsbHBwcGxoaGxsbGxsbGRkZGxoZGRoZGRcYFxgUERMPDQsKCQkHDQwHBAUACCmCrbTJ1N7c5Pfy7efe2M7Csq2NdXBvb2dmYl1VSj40LR8eHRwaGhsbGxwbGBgaGRYSFBUWERETFBISEAcCAAACBAgNEBALDA4LFBQfGQ8OHRgaHB0cGxsbGxsbGxsbGxsbGxsbGxsbGyAgJCcrLjEyPj9CRUlMUFBSVFRUVFVVVVBQT01JSEhJQUhRUVpwem6Nf4uRiY2nt6+tqqaim5WPjYh+dG9oZGNeW1pZV1ZWVlZWWVlaXF1dYmNjZGNiYWBXVE1HQTo1MSwpIyAdHBwbGBgZGhkZGhocHBsbGRkaGxoZGBgYGRsbHRoXFBcbGBMJBwcJDAwICBELAwMFEUmPqLK9yNLa4en28evl3dbMwLCrinNvbm1lZGFbU0k9MSsfHh0cGhobGxscGxgYGhkXFBQWFREOEBAKCgoHAQAECwgLDw8LBQcKCAwOGhsSDh8aGhwdHRsbGxsbGxsbGxsbGxsbGxsbGxsfICMmKiwtMDc4Oz5AQ0VGSUlJSUxMTExKSkpHRURFRURJUVBUaXh1cn16e4uzrqCqqaWjnZaPioR9dWxkXlpZVFFQT01MTExMTE9QUFNUVFlZWlpZWFdWUExFQDo1MC0pJiAdGxsbGhgYGRgZGhkYGhkZFhcXFhcaGhgYGRobGxkWEhASExENDAsHAwQHCQcFAwUGGVSNnaq1v8nT2uHp9e/q49rTyLyvp4ZwbWxsY2FdV09FOS8nHh0cHBoaGxsbGxsYGBkaGBcWFxUPDA4LBgQDBAQJFiMrLzEtJBoZGw4JCRcbFg4cGxwcHR0cGxsbGxsbGxsbGxsbGxsbGxsbHx8gIyYpKiosLC8wMzY3ODg5OTs8PD8/QUJAPz8+P0BCSlJQTl5vdWxpa3alr6SipKOfm5aMg31ybWRcVE9LSkNCPz8+PDw8PD4/QEFEREVLS0xMTEtKSUM/OzYzLSomIyAcGhgaGhkXGBcXGBgXFhgYFxQVFhUVGxsZGhscHBwXFBAOEBANBw8IAgcKCQcFAggHKWiHla6uuMLL1dvi6fTv6eHY0Ma6raN9bWxqal9dWVRNQjcsJh0dHBwaGhsbGxsZGBoaGhgYGRkXEAwLCgkEBAYRIDRDT1FWU0tAOzkcDwwZGRYZGhwdHx4dHBwbGxsbGxsbGxsbGxsbGxsbGxwfHx8iIiUlIyMkJicnKioqKiwsLTAwMDU2Nzc3ODk7PUZRVFJbaXCIVmCUoaGfoJual5CJgHZvYFxTSUM/OzkzMi8vLiwsLCwvLzAxNDU1Ozs8PDw7Ojo2Mi8sKicjIB8cGhcXGBgZGBgYFhYXFRQYFRQUFBMVFhgWFxYXGRgXFhMRDw8OCwgPCgcGBgQIDAYPPnGDkaKosbvFztfd4+v07ujh18/EuKycdWdqZ2dZWlZSSUA0KiEdHBwcGhsbGxobGRgaHBkXGRkZFhAMDQ0IBgUNIjxPV1lcYGNjXFZSLB0QGBYUIhcfHyAhIB0cHBsbGxsbGxsbGxsbGxsbGxscHBwcHh8fHxwdHR4eHh4gICAhISQlJScrLC0vMDM1NjhBT1ZZX2duh2h5l46XoZiQj4qEfG9lXk5KQTo0MC4tJyYkIyMjISEjIyQlKCgpKS0tLS0tLSwsKykmJCQhHh0dGxgXGBgZGhkZFxcYGBcWFRUUExITFRYREhERExESERQRDg4OCwcFCQkHBQYICAUgUHGBk5ygrrS+yNHa4Obt8+3n39bNwraslm1kZ2VnVVdUT0g9MSghHBwcHBsbGxsaGxgaGxsZFRoXGRUNDA4NBQYLHTlRXF1cX2JmaGdjXkMpFhQTFCMZISIiIiEfHRwbGxsbGxsbGxsbGxsbGxsbHBwcHBwbGxsbGxsbGxsbGxsbHR0eHiEhIyQnKCstLzA3PEdSWmBpb3F7j4aKiZCVgYB8dWpgVE1BOzQuKSUkIiAgHR0cHBwcHR0eHiEhIiIkJCQkJCQkJCIhICAeHh0cGxoZGBcZGhgcGRgXGRgYFhcWExMTExUWEhESExISEA4XEg8PDgoHAwcBAQcJCBEgYm+Cj5Wfp6q6xM3V3uPo7/Ls5t7UzMG1rJNmYGZlZVFVU0xFOi4lHhsbHBwbGxsbGhsYGRsdGhQYFBUSCgkMCwMEEjFPYWNhZ2psbW5taWVgOB4OFxkZHSIkJSMiIB8dGxsbGxsbGxsbGxsbGxsbGxsbGxsbGRkZGxsbGhoaGhobGxscHR0dHx0eHyIkJystNTg+SVJbY2hxbXaHg4F5gnRybGRbUEY+NzErJSAfHh0dHBwbGhobGxsbHBwdHR8fHR0dHR0dHR4eHRwcHR0cGxsaGRcZGhgYGhgUFRUSERAUExEPDxERExQTFBUUExAOEhEMDg0LBwYJBQUHBxM6YHWAi5Odo627wcrT2uLm6/Hx6+Xd08vAtKyQYlxlZGVRVFBLQzktJBwbGxscGxsbGhobGBkbHRoWFhQSDwkHCgsEAxY+X2ppbHl9f358e3hzdkElDRwdDyQjJCYmIiEgHxsbGxsbGxsbGxsbGxsbGxsbGxsbGRkZGR0bGxsbGhoaGxsbHBwcHh4ZGh0eISQnKTQ1O0FKUllfbGBuf4FwanVsaGJcUUU8NzAsJiEdHBwbHBwbGxoaGhoaGhsbGx0dHRsbGxsbGxsbHBsaGxwcGxwaGRgYGRgYFxcUEQ8ODgsJCwoJBwcJCgwSEhESEhAODAoHBggJBgUGBQkIBx5IaXV9hY+Yoq24wcbP197k6Ozy8evk3NLJvbGseWVdX11XVFNNRj01LCQfGxsbGxsbGxscGxgZGRwcGBYVFxQODA0OAA09V2Joc4CAgoODgoF8eG9xLxgXICcdKissLConIR0bGxsbGxsbGxsbGxsbGxsbGhobGxsbGxocHBsbHBwbGxkaGhobGxoaGhsdHx8iJCUtMTU7QUdOUF9iZmlqZ2NhW1VORj05NDIiIR4cGxsaGhgYGhoaGxsbGxsbGxoaGhobGxsbGxsbGxoaGhsaGhkZGRoXGBgaGRcQExMUDwwMDwUGCQgJCwkJDg4NCwkLCAUJBwsOCwkIAQMADDJccHh8iZGcpq22v8bQ1d3j6Ozw8/Dq5NvRyL2wqndjW19dV1RTTUY9NSsjHxsbGxsbGxsbHBsYGRkcHBgVFBYTDQsNDAAQQ11pbnmEiIqLi4qJhH91dDMbGyUpISstLS0rJyEdGxsbGxsbGxsbGxsbGxsbGxoaGxsbGxoaGxoZGhsbGhkZGRkaGRkZGRgaGxseHyIkKy00OD1ESkxXW15hYV9bWFFNRDw1LisoISAfHRoaGhoZGRkZGhoaGhsbGxsaGhoaGxsbGxsbGxsaGhobGhoZGRoZGBYXGBcTExQVEwwICAsMCgsNDg0ODwgJCAYHCAQACwgICgYBAwgAFjdYcXyDiZWcp7C3vsfO1dng5uru8vTw6uPa0Me7r6d3YFpdXVZTUExFPTQrIx8bGxsbGxsbGxwbGBkZHBsXExITEQsKDAsAFktlcHaBi5GTlJSTkY2IfHs+ICQsLSYuMDAwLCchHhsbGxsbGxsbGxsbGxsbGxsaGhsbGxoaGhoZGBgZGRgXGxsaGhkZGRkWFxgZGxweICgpLTM4PENFS05RU1NRTUpGQjsyLSYiIB8eHBsaFxcYGRkYGRkaGBkaGhobGhoaGhsbGxsbGxsbGhoaGxoaGRkaGhkXFxYVEBMWFxEKBgcLDAkKDg8LCw8JCgoKCg0MCQsKBgMFBgUEIkNjdoCGj5ehp7G5wMfP1Nvg5uvu8fT27+ni2c/Guq6ldWBYXVpVUk9LRDw0KyMcGxsbGxsbGxscGxgZGRsaFhMSExAKBwoJAx5Ua3Z/iZKZm52cm5qVkISCTiYrMTEsMTMzMy0oIR4bGxsbGxsbGxsbGxsbGxsbGhobGxsaGhkaGRcXFxgXFhsaGRgXFxcXFhcYGBkYGxwiJiotMzY5PT1AQ0VEQj47OzcwKSQfHRsbGhgYFxcXGBkZGxoYGRkaGRkaGxoaGxobGxsbGxsbGxoaGhsaGhkZGxkYFRYXFhATFBINCAcKDQEBAwgIBAICCAcIBwoMDA4NCQMHCAURLFhpd4CJk5qgq7G6wsjO1tvh5evv8fT2+O7o4dnOxbmtonNdVFpaVFFPSUM5MSggHBsbGxsbGxsbGxsYGRgbGRUUEhEPCgcICAgnXHB7hY+aoqWmpqWjnpiJiWEsMjQ2NTc3NzQwKiQeGxsbGxsbGxsbGxsbGxsbGxoaGhsaGhkZGRkXFxgZFxUbGhkXFhYXFxYWGBgYGBkbHyAlKS0wMzQzNjg6OTczMC4qJR8bGRYWGxkXFxYWGRkZGRoZGhkaGRgZGhsaGxsbGxsbGxsbGxsaGhobGhoZGRwZGBYXGRUPDg0LBwMDCAkGBwkICAkIBwUGBQYGBQgLBggHBQoYPGd2foWNmaOnrba8xMvR197i5unu8vT2+fvu6OHYzcS4rJ1yW1FaWlNQTEhCOTEoIBwbGxsbGxsbGxsbGBkYGhgTExIREAgICgoLLGF1goqTn6iqrKyrqKOejZFyMzc3OD06Ojk3MSskHhsbGxsbGxsbGxsbGxsbGxsaGhoaGhkZGBsZGRgYFxYVGxkXFhUVFhcWGBgXGBcZGxsdISUoKCstKi0uMTAtKygmIx4cGRoYFhoYFhYXFxobFhgaGRcWGBgXGBkbGxsbGxsbGxsbGxsbGhoaGxoaGRkbGhcWFhcUDgsJBwUBAQUKGSYzNjc1Kh0NCQQEBQUFCAEEAgomT297foaPmaOpsLq/xMvS2N3j5+ru8vX2+Pr87ujh2M3EuKubcFtQWFpSUEtHQTgwKCAaGxsbGxsbGxsbGxgZGBoYExYUFBAJCAoKDzBmfIiRmqWusbOysa+po5SVfTg+PDtDPT09OTMrJB4bGxsbGxsbGxsbGxsbGxsbGhoaGhoZGBgbGxoYFxYVFBkYFhQTFBUWFRUWFhcYGhsZGx0fISMkJiIlJyopJiMhHhwZGBkZGRkWFhQTFBYZGhQWFhcVFRcYFhcZGxsbGxsbGxsbGxsbGxoaGhsaGhkZHRsXFRcWEgwLCQkIBQYTJEZLT1JUVVRQLRwLBAQEBAMJBBM5X3Z+f4eRm5+nr7jFyMzT2d7j6Ovw8vb3+Pn7/O7o4djNxLirmnBZTVdXUk9LR0E4MCcgGhsbGxsbGxsbGxsYGRgZFxIWFRQRCgkMCxIzan+PlZ2ptLe5ubi1r6mYmYI5Q0E/REBAPTk0KyQeGxsbGxsbGxsbGxsbGxsbGxoaGhoaGRgYHBsZFxYVFBIWFBIQEBETFBQVFxYXFxgbFhccHR4gICIgICIlJCIfHhgWFBUWFxcXEhAPDxATFRUSFBUVFBMWFxYXGRsbGxsbGxsbGxsbGxsaGhobGhoZGR0bGBYWFQ8JDQ0NDAgNJ0FRVFphZGNhYFo/HwwKCgcFCRpEbnp6go+Rm6CmsLzEydLW3OHm6u7x8/b4+fn5+/zu5+DXzcO3qp5wV0pTVE9NRkQ9Ny0nIB0bGxsbGxsbGxsbGRkZGhkVFA4MDAwMDAcHOG99iJeqs7i6vr68ubWvoZeKREdGTEJDQkE7Ni0lHhsbGxsbGxsbGxsbGxsbGxsbHRwYFxkZFxoXGBkZGBgUERMTEQ8ODA0ZGRkVEhITIxcZGx0dHR0dIiAdHBwcGxoaGRgYGRcUEhcXFhYVExMTDxUVFBYVFxsZGxscHBsaGhsbGxsbGxsbGhoaGxwcGhkaGBUVFRcVDgkJBwYDIEhZWF1jZmlsbm1wclQSAwEHDS9ee3qCjJOboKewucDHz9TY3ePo6+7y9Pj5+vv9/f7+7ufg18zDt6mecFdKU1RPTUZEPTctJyAdGxsbGxsbGxsbGxkZGRoZFBcRDQwMDQ0ICTlxf4uZrLW5vMDAvru3saOZi0ZHR01DRUNBPDcuJR4bGxsbGxsbGxsbGxsbGxsbGx0cGBcZGRkaFhYXFRcVEg4OEBETFBUUERMYFBYVExYXGRsdHR0cHSEeHBsbGhoaGRgWFxcWFBIQDhAREhEQEhMXGBgXFxYcGBobHBwbGhobGxsbGxsbGxoaGhscGxoYGxYWFBMVEwwKCQkHEDFTY2JobnF0eHp6fnpwOwcBEUB4g4KDkJmgqauyusLIz9bb3uLo7O/y9ff5+fv8/f7+/u7n39fMw7epnnBWSlNUT01GRD03LScgHRsbGxsbGxsbHBwZGRkaGRQXEQ8PDQ8OCgo5coGNna61vL/DwsG+ubOlnI9IS0pQRkZFQj84LiUhGxsbGxsbGxsbGxsbGxsbGxscHBgXGRoZGBQVFRMSEw4TEhEVGBcXGQsOFBQXGxkXFxkbHR0cHBweHRsaGhkYGBgWFRQUExIPDAwNEBERExYUGRsaGRcUFhgaGhwcHBsbGxsbGxsbGxsbGhobHBsaGBkVExEQExAJCwUJCBxCXW1scnl9gISGh4qOiWsVIFqHi4qNl6Glq7K3vMTL0dbd4eXp7vH09vj6+vv8/f7+///u59/WzMO3qZ5wVkpTVE9MRkQ9Ny0nIB0bGxsbGxsbGxwcGhkZGhkUGBMQEA8ODgoIOXGEkp+vt77BxcTDwLy2qJ+QSk1LUkdHRkM/OC8oIRsbGxsbGxsbGxsbGxsbGxsbGxkYGRkaGRoVFBMSEhIMDgoKDg8ODxIMDRUYGBsZFxgaHB0dHBwcHRsaGhoZGRkZFhQTFBQRDg8ODAsLCgsMERMVFhoZExIYGhscHRwbGxsbGxsbGxsbGxoaGhwbGRgaFBMREBAPCA4GCggoUGVwdHuCh4qOkpOXk5qOWHqXoJOYoKOnrra8wcbN09ne4+fs7/L19/n6/Pv8/f7/////7uff1szDtqmeb1ZJUlRPTEZEPTctJyAdGxsbGxsbGxsbHBkZGRoZFBcSEA8ODg4JCDZwhJOisLe/wsbFxMG8tqmfkUtNTVJHR0ZFQDkxKCEbGxsbGxsbGxsbGxsbGxsbGhsZGBkbGRgcFhMUExIRDA8JCAsKBgcKDgwQFhsbFxQZGx0dHRwcHBwcGhgaGRoaHBgUFBYVEhAQDAsJCggKDQwNCQkUGhcTGRscHR0dGxsbGxsbGxsbGxsaGhobGxkXGxYSEBEREAkQCA0MNlxrd3yEjJGVmp6goaWlo52qpqmoq66vsrzDwczQ1tzh5uvu8fL19/n6+/z9/f7//////+3m39bMw7apnW9WSVJTTkxGRD03LScgHRsbGxsbGxsbGxsZGRkbGRUWEQ8PDg8OCwg2cIaToa+3vsHFxcPAvLapoZNNUE5USkpIRUI6MSgjGxsbGxsbGxsbGxsbGxsbGxobGRkaGhkWGxYSExISEQsHBwgNDw4TGRsWCw8aGxgUGhweHh0cHBwbGxkZGhkaGRwYExMVFBEPDgwMDg8RExcWEgkFDhgYFRocHR8eHRsbGxsbGxsbGxsbGhoaGxoYFxsXExEQEhAJDQYIDUBicnyCi5SZnqOoq6e3tK+rpbO8sLK3vsHEyczU193i5uvu8fT19/j6+/v8/f7+///////t5t/WzMK2qZ1vVklSU05MRkQ9Ny0nIB0bGxsbGxsbGxoaGRkZGxoWFhIQEA4PDwoNOHCGlKCus73AxMPCvrq0qqGUUVJRVUpKSUVCOTEqIxsbGxsbGxsbGxsbGxsbGxsaGxkZGhwaFhkTERAPEA4JDw0QDxAQFBkeIxINFRoZFBsdHh8eHRwcGxsZGRoaGRoaFhMSExMQDAwNEBUaHB8iIx8TCxAYGRkbHh4gHx4bGxsbGxsbGxsbGxoaGhsaGBYcFhQSEBIRCgsEAg9LaXd9ipOdoqetsra1tcK7sri9wcLEx8jKytHc297i5+vu8fP3+Pn6+/z9/f7+///////+7ebf1svCtqidb1ZJUlNOTEZEPTctJyAdGxsbGxsbGxsaGhgZGhsaFhUSEBAPEA8LDzxxhpSfrLK8v8LCwb25s6qjlVJVUlhLSklFQjkxKSIbGxsbGxsbGxsbGxsbGxsbGhsYGRocGhcYEQ4ODw8MBwoOEhQXHCQqBRsUDRgdHRkcHR8fHx0cHBoYGBgZGRoZGhUREBISDQsICxMgKjA1OiYmHBQXGx8gHB4fISAeGxsbGxsbGxsbGxsaGhobGhgWGxcTEQ8TEQoQBwASVG5+f5Kcpqywt73AwMTEy8G+xsvKz8/R1tnZ3OPm6e3w8/X3+vr7/P3+/v7+/v/////+/u3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGBgYGxwaGBYXFRAQEhIPDA41aYmWoqutub2/vr67trGlmI1eXFJVT0tJRUI7MyojGxsbGxsbGxsbGxsbGxsbGxsbGRgZGhoWFhISEhESEAsBFSAWHSIoJR8pERgRKhkZJCYmJiUgHRsZGRgXGx0bFRcSEhUTExINEAAhLTBCPTk2PSoLFBMWJSEkJCcmIR0bGxsbGxsbGxsbGxsbHBsYFhgVExQTFBIMCgkJB2Nuf5KWoqyzusDEyczNz9DQ0dHS1NXX2tzf4+Xq7O/y9ff4+fz8/P39/v7+///////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxgYGBoaGhcWGBURERISEBAPNmiHk56oqrS6vLu5uLOuo5eMXl1TVlBLSUVCOzMqIxsbGxsbGxsbGxsbGxsbGxscGxkXGBwZFhQQEA8PEA4JARclGh8kKycjKBMYESkcHicnKSkmIB0bGRkYGBodGxUVERITERIQCw8BJjQzRkM/PEEmDhgUGSQkJCcnJiMdGxsbGxsbGxsbGxsbGxwbGBYYFhQUEhQSDAsJCQlkc4KVm6axuMDGys/T1dfY2NjZ2dvc3uDj5ejr7e/y9ff5+vr8/P39/v7+////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsYGBgaGhkYFhcUEREUExISEjZnhI6YpKewtLi3trOwrKCVi19eVFdQS0lFQjszKiMbGxsbGxsbGxsbGxsbGxsbGxsZFxkbGBUUEA4ODg0MBwEcLiIiKC8qLCYVGBAoHyEqKioqJiMdGxkZGBoaHBoUFhEQEQ8PDgkOBCw8PU5LR0VFIhEcFRsjJygqKikjIBwbGxsbGxsbGxsbGxscGxgWGRYVFRISEQ4MCgoNZnaGl5+rtb3GzNHW29zf4ODg4eHj5Obo6ezu8PLz9fj6+/z8/f3+/v7//////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGhgYGhoaFxYYFhERExQTEBE2ZYGJkZ6krK+ys7Kwq6mekopgX1RWUEtJRUI7MyojGxsbGxsbGxsbGxsbGxsbGxsbGBcZGxkUFA8ODgwMCwYDITUtJSowLTcoFxkRJyQoLS0sLCkjHRsaGRgZGhwZFRcSEBANDg0HDAY0R0RUUU5MTSEXIRcgJissLSwqJiAdGxsbGxsbGxsbGxsbHBsYFhkUExQSEhEMDwoLD2d5h5ahrbe/yNDV29/h5OXm5ubn6Onr7e7v8fP29/j6+/z9/f7+/v/////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxsaGhkYGRgWFxUTEhETEhASMmF+hYyZoqerra2srKikm5CJYGFUVU9LSUVCOzMqIxsbGxsbGxsbGxsbGxsbGxsbHBoZGBwYExcSDg8MDgsHBiQ/OykqMjA8KxobFiUrLTEzMi8qJB4bGhsaGRwdGRQXExEPDw4OCAsLPE9LWFVVUlQkHiUbIy0wMDMwLCchHRsbGxsbGxsbGxsbGxwbGBYYFBITERERDA8LCxJnfIeVoa24wMrS2N7h5Ofp6uvr7Ozu8PHy8/T2+Pn6+/z9/f3/////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsbGhoZGRgXFxYWExMTExITEzNeeoCFkZyhpKiop6WkoJeNh2BhVVVPS0lFQjszKiMbGxsbGxsbGxsbGxsbGxsbHRsaGRobFxIYExAODA4MCAgrSUguLDM0PTMeISEmNTE2NjUyLCYeHBobGhocHBgSGBQQEA4PDQoJDENVTlpYWldZKiQpIyw3NjY2My8qIx8bGxsbGxsbGxsbGxscGxgWGRUTERISEQ4QCQwVZXuKlKGtuMDK0tnf4+bq7e7v8PDx8vT29vf4+fr7+/z9/f7+/////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbHBsaGRgYGRgXFhUWFhcXGBkzW3R4fYiVmp6goaGgnJuTiYVgYlVWUEtJRUI7MyojGxsbGxsbGxsbGxsbGxsbGxwbGhgZGhgTGRMPDg4ODQoNLlBUMy0yNzg4IicuKz03OTg3My0nHhwbGxoaGxwXFBkTEA8ODw4KCA5GWlJcW11dXTAoMC40Qjk5ODYyKiMgGxsbGxsbGxsbGxsbHBsYFhoWExQSFRMQEw0PGGR6h5Kfq7a+yNHY3uPm6+7w8vPz9PX3+fn6+/z8/P39/v7////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxwbGhcYGRcXFxgXGBoaGxsdNVlwdHaDj5aZm5ycm5iVkIaDYGNWV1FLSUVCOzMqIxsbGxsbGxsbGxsbGxsbGxscGxoYGRoYEhoSDw4NDg4KEDJWWzYuMjg2PSUuNy9DOzk5ODUtJx4cGxsaGhscFxMYEw8ODQ4OCgcPSFxUXVxgYl8zKjQ1OEk7Ozs4MiskIBsbGxsbGxsbGxsbGxwbGBYbFxQVFRYVEhcQEhpjeISPnamzvMbO1dvi5eru8PLz9PT2+Pn6+/z9/f39/v7/////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsbGxsbHBoYFxcXFhcYGhscODM/WW91eIOPj4Z9hZyWj4uGdmldXFVSSklFQjoxKCMbGxsbGxsbGxsbGxsbGxsbGxoXFxoaGBYVEQ4PDg0MCwxEXk5CODM5QDs2Njs/QUFDPzszLScgGxsbGRcZHBkVGhQQEA4MCggHCVRZX2VfYWhYRDozOzpBQ0I+OjMrIR0bGxsbGxsbGxsaGhobGxkXGhgVFRUUEQ4TEBQfWG6DjpqksLrEzNHZ4OTp7vDx8vP3+fr7/Pz9/v///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGhsbGxoaGBcZGBgZGhweHw4WIy8vMkFRVFtkc36Kh4yHgnNoXFxVUkpJRUI6MSgjGxsbGxsbGxsbGxsbGxsbGxsaFxcaGhgWFREODw8PCw0MP1xXTz80OTw9OjtAQkREQ0A7NC0nIBwbGxkXGRwZFRoUEA4PDQsKCgxWXGJnYWRsWkg+OT8+RERCPjszKyQdGxsbGxsbGxsbGhoaHBsZFxsXFxcWFREREhANFFlreYSUn6y1v8fN1tzg5uvu8PLz9/j6+/z9/v/////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxoaGxsaGBkYFxcaGxweIiMfKS8qICEtOjg+S2JveHmGgntvZFlcU1JKSUVCOjEoIxsbGxsbGxsbGxsbGxsbGxsbGhcXGhoYFhURDxAQDg0NDEJgYV1OOzo4Oj1DRkZGRkVCPDYuKCAcGxsZFxkcGRUYFBAPDw0LDAsNWF1la2Vnb19MRD9GREpFQz87Ni0kHhsbGxsbGxsbGxoaGxwbGRgaGRgXGBgVExkZEhZlcHqDj5qlrrjAydLW2+Lo6+7x8/b4+vv8/f7/////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsaGhobGhkYGRcXGBocICIlISotLCYkJilBR0ZUZHZ4fHx3a2NXWVJSSklFQjoxKCMbGxsbGxsbGxsbGxsbGxsbGxoXFxoaGBYVEQ8QEQ4ODQhEZ2ZmX0xCNjtBSE1LR0VGQz03MCgjHhsbGRcZHBkVGBQQDxAODg8MD1hfZW1nanJjUkpFTEdNR0RCPDctJR4bGxsbGxsbGxsaGhscGxoYGBoZGhkXFhUeFg4OYGlsbYeSm6SttL/J0dbe5ens8PP19/n7/P3+/////////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGBoaGhkaGRkWFhkcICImJyksLCkiICguKzIwPlh3fXl3cmhhV1dPT0pJRUI6MSgjGxsbGxsbGxsbGxsbGxsbGxsaFxcaGhgWFhEQERIQDQ0FRGdnbGlbVEJDRUpPT0pFR0Q/ODErIx8bGxkXGRwZFRkUEBAREA8PDRBaX2dvaW5yZFZPSU9JUEdGQz43LScgGxsbGxsbGxsbGhobHBwaGRkZGBkaGhcXEBEXFVZecHeDjJSbpa+6xszS2uHl6e7x8/X4+/z9/v/////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxgYGhoaGRoaGBscHyQmKi03MywmHRsfJSgtKDVManRvc21lX1ZWTE1KSUVCOjEoIxsbGxsbGxsbGxsbGxsbGxsbGhcXGhoYFhYUEBERDwwMDUNlaG1pX2JXUUpLTU5NS0lFQDkxKiMeGxsZFxkcGRUXFBAPDw4PEAwQWF9ncGpvcmVVUExRSk5IRkM/OC8nIBsbGxsbGxsbGxoaGx0cGhkYGBkZGhkYFhYeKCRRU2Zzf4aLkZyotMDEy9Xc4OXq7vHz9/r8/f7/////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsYGBgaGhoaGxsbHiEnKy0uKiglISAdFhEcIhUeOF5sZ21pYF1VVEtMSklFQjoxKCMbGxsbGxsbGxsbGxsbGxsbGxoXFxoaGBYXFBASEQ4NDBJGZWhtbWdqZF1STEtNUVFJRUA5MyolIBsbGRcZHBkVFxIODw8OEBAND1dgaHBtcG9iVlFNUktNSkZEPzgvJiAbGxsbGxsbGxoaGhsdHBsZGRgZGhoZGRghIRoOMywoKTIyLikoKCsxu8PN1drg5uvv8vb5+/z+/////////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGBgYGBoaGhoaGx8iJisuLisqIhoWGB0cGiMUFzZfbV9qZl5aUlNLSkpJRUI6MSgjGxsbGxsbGxsbGxsbGxsbGxsaFxcaGhgWFxQREhEODAwOSmdjb3hycGdgVk5JSlBSSUU/OTMqJCAbGxkXGRwZFRgSDg8PDhAQDA9YX2lxbnFuY1VSTVFJTUpGRD44LyYfGxsbGxsbGxsaGhobHRwbGhgaGxsbGhkaGykkGTgrKDU2NSwmJCMmKrS9yNDW3OPo7vH1+fv8/f7////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxsbGxsbGxsbHR0gIycqKy0qJyIcFhQWGBgZHRQqXWFpZl5eUlRMT05JSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDEZoaW92bWpnXFFMUFJPSUpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw0RW2Jqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxsaGhkYGx0fICAnLS8xMjIxLiQhHxwXIDirtb/J0tnf5unv9Pb4+/7+////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsbGxsbGxsbGxwdICMkKCsrJyQhGRUVFhcVFhkRJlxfZWNcXFBTS05NSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQxGaGlvdm5rZ1xRTFBST0lKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsNEVtianJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbGhoZGRweICEkKi0vLy8tKygdGhoWEhkzprG7xc/W3OPo7vP2+Pv+/v///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGxsbGxsbGxscHR0hJCcnKCIgHRgUFBUXExQXDSRZXWJhWVpMUEhNS0lIRUI5MScjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0MR2pqbnZvbmhcUUxQUk9JSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDRFbYmpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxoaGhodHyEiKi4xMC4sKCQjGRcYFA4YMZ+qtb/K0djg5+3y9fj7/f7////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxsbGxsbGxsbHBwdICEjJCQdGhgXFBUXFxIWGA0kWlxgXldWS1BITUtJSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDEdra252cHBoXVFMT1JPSkpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw0RW2Jqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxsaGhobHiAiIy4wMTAtKSMeIBUTGBQPFzKYo7C7xs7W3+Xr8fX3+/3+////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsbGxsbGxsbGxscHR0eHiAfGRcWFRUXFRcSFhgNJFlZXFtUVktQSExMSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQxIa2tudnFxaV1RTE9RT0pKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsNEVtianJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbGxsbHB8hIiMuMDEwLCcfGxwREhYUDhUxkp+st8PL1N7j6fD09/v9/f///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGxsbGxsbGxsbGxwdHRwbGxYVFBQWFxUVEBQWCiFWVVRbU1VITUdMSklIRUI5MScjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0MSGxsb3ZwcGpeUkxPUU9KSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDRFbYmpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxsbHBwgISIjLC4xLSslHhYeERIYFg4WMI2aqLS/yNLc4ejv8/f7/f3////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxsbGxsbGxsbGhsbGxsbGhcXFxYWFRUTERATFgofVFJPWlNSR0xGS0lJSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDUhsbHB2cG9qXlJMT1FPSkpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw0RW2Jqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxscHBwdICEiIiksLSsoIxsTHxQUGRYNEi6JlqSwvMXP2uDn7vP2+v39////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsbGxsbGxsbGxoaGxsbGBcWGBcXFhUUEQ4QFRcKH1NQTVlSUUdMRUhISUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQ1IbGxwdm9ta15STE9RT0pKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsNEVtianJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbHBwcHSAhISInKispJiAXER0REhcTCA4nhZOhrbnCzdff5u7y9vr9/f///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGxsbGxsbGxsZGRkaHBsaGRkVExQTEA4PDxEPDiBGT1dZVFJITUVKRklIRUI5MCcjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0PSGpqbnNwb2ZlVFNSUU1LSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDRFbYmpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxsbGxwdHh4eJyYiHx4cGRQYFhkUEQwRIYGPnqu3wszX3uXt8vb6/f3////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxsbGxsbGxsbGhoaGhwcGhkaFhQVFBIQEQ8SDw4fRU5WWVRSSE1FSkZJSEVCOTAnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwND0hqaGxycHJmZFRTUlFNTEpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw0RW2Jqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxsbGxscHB0dHiUjIB0aGRcTExMTEgsJDB2AjZyqt8HM197l7fL2+v39////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsbGxsbGxsbGxoaGhscHBoZGxkXFhQSEBEPEhENH0ROVVlUUkdNRUpGSUhFQjkwJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQxHaWhrcnJxamdTUk9RTUxKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsNEVtianJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbGxsbGxwcHBwdHhwZGBcUEQ8PEA4LBwscfYuaqLXAy9be5ezx9vr9/f///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGxsbGxsbGxsbGhobHBwaGRwYFhcVEhEQDxIRECFGUFZYU1FHTUVKRklIRUI5MCcjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0MR2dnanRydW1pVFFPUE1OSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDRFbYmpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGRkYFhYXFRIQDxAPCwkMHXuJmKa0v8rV3eTs8fX6/f7////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxsbGxsbGxsbGxoaGxwbGhgcGBYXFRIREhESERAhR1BXWFNRR01FSkZJSEVCOTAnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDEVmZ2xzdHVwalNRTlBPT0pGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw0RW2Jqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxsaGhoaGhoaGhgYFxUWGRgUEQ4SDgwJDx96iJels77J1N3k7PH1+v3+////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsbGxsbGxsbGxoaGhobGxkXHBoYFxYTEhIQExIPIUdRV1dTUUdNRUpGSUhFQjkwJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQpGaGhudHR1cGlTT05QT09KRkA5MSojHh0cGBcZGhkWFRIRERIPDgsNEVtianJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbGhoaGhoaGhoXGRcXGBkaFhAPEA8KCQ4geoiXpbK9ydTc4+vx9fr9/v///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGxsbGxsbGxsaGhkaGxoYFxsYFhUWEhEQDhIRECJIUldXUlBGTEVKR0lIRUI5MCcjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0KRmlpb3Z0dG9oU09OUU9OSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDRFbYmpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGxsYFxgZFxQQDxAMCgkOIHqIl6WyvcjT3OPr8PX6/f7////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxsbGxsbGxsbGhkZGRsaGBYYFRMUEg8ODQ0QDw8hR1FYV1JQRkxFSkdJSEVCOTAnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNCUdqa3F2c3RvaFNPTlFPTkpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw0RW2Jqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxsaGhoaGxsbGx0dGhkYGBcTEg8RDgsIDx97iJilsr3I09zj6/D1+v3+////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsYGRkZGxsaGhkaGRgZGxwaGBUWFxUTEhIMEg4QIElNUlhZVj9GSk5HSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQxIamltdHN1cGtRUE1MTU1KRkA5MSojHh0cGBcZGhkWFRIRERIPDgsOEVphanJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbGRkZGhoaGxsYGBcZGRgXEw8PDg0MBwohe4mYprO+ydTb5Ovv9vr8/v///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGBgZGxsaGhsYGRgWGBsbGRYUExMSDw0MCRAMECBLUVRVV1M/RkpOR0lIRUI5MScjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0NRmppbXNydHBrUVBNTE1OSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDhFaYWpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxgYGhkaGhoaGRgYGBgYFRIPDw8MDAcLInuImKWzvsnU2+Tr7/b6/P7////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxgYGxsbGhoaGRkXFhgZGBcUEhAQDg0JCQkQDA0gTFJUVFVTPEVHTkZJSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNC0draW1zcnRwa1FQTUxNTkpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw4RWmFqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxsYGRkZGRoaGxYWFhcXFhMRDQ4PCwoFDCF6iJels77J1Nzl6/D2+vz+////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsYGhsbGhoZGRkZGRcXGRgVFBEOEA8MCgoLEA0MIE9SVFNVUzpBRkxGSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQpGaGltdHN1b2tRUE1MTU5KRkA5MSojHh0cGBcZGhkWFRIRERIPDgsOEVphanJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbGhkZGhobGxoXFhQTFBMRDA0ODQwIBQkfeoiXpbO+ydTc5evw9vr8/v///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGhobHBsaGBkaGxgXGBoZFhYSDhAPDQkJCQ4LCiBVVlhUV1Q6QEZMRklIRUI5MScjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0JRmlobnNydG9qUVBNTE5OSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDhFaYWpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxoaGBkcHRsZFxUVExMTDw0NDAwKBwMJIHuJmKa0v8rV3eXs8Pf6/P7////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxoaHBwbGRkYGhoYFhcZFhMYEg4ODQsHBwsNCwkhWVlZV1tWOj5FS0ZJSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNCERqanB1c3VvalFQTkxOT0pGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw4RWmFqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxsaGRkZHBoZGBkXFRQTEw8NCgsMCAYCCSF9i5qotb/L1d3m7PD3+vz+////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsaGxwcGxsZFxkZFhQUFhMOFA4LCwoJBgUKDAgFHlpaW1teVzk9REtGSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQpGbGxvdXJzb2pRUE5NTk9KRkA5MSojHh0cGBcZGhkWFRIRERIPDgsOEVphanJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbGhgXGRoZFhQZFhMREBAODQcJCQcGBAwjf42cqbbAy9bd5uzx9/r8/v///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGxscHB0aGBcYFxUREhEOCQ4JBgcICQcHBAcFAR5cYF9fYVk6PUNLRklIRUI5MScjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0LR2tucHVxcm9qUVBOTU5PSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDhFaYWpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxkXFxcYGBURFxQQDQ4NCQkFBQkHBgQMJoGOnaq3wczW3ubt8ff6/P7////////////////////////////////t5t/Wy8G0pppvVkpSUkxMRkM9Ni0mIBwbGxsbGxsbGxwbGhcZGxkWFhYXFxERFBERBgEDCQsLCw0OCAgkTWJeXVhdOEVCRUZJSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDExwbm5zcHB0bFRRTk5NS0pGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw8RWWBpcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGRgaGxsbGxoaGBgYFhgYFRURDxEPDw4KDAsHBwcKCh2Ek6CsucTO1t/l7fP3+vz+////////////////////////////////7ebf1svBtKaab1ZKUlJMTEZDPTYtJiAcGxsbGxsbGxsbGxoZGRsaFxYVGBYQDxEPBwAAAAQEAwUCAgACI1JmY2RdXjdCQEVGSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQ5MbWpsc3Fwc2tUUU5OTUtKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsOEVlgaXJtcXVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxkYGhsbGxsaGRgYFhYXGBIUDg0MCwsJCAsMCQoHCgoeh5WjrrvG0Njg5u3z9/r8/v///////////////////////////////+3m39bLwbSmmm9WSlJSTExGQz02LSYgHBsbGxsbGxsbGhsaGRkaGRYWFRcWDgwNCwwIBggJBAIDBQYACCtZbWZqY2A3QT1ERklIRUI5MScjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0OSWllaXFzcnBqU1FOTkxLSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDhFZYGlybXF1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsZGBobGxsbGhoXFxUSFBYQGRMODgkGBQQGBgYJBwcKIIyap7K+ydPb4ufu9Pf6/f7////////////////////////////////t5t/Wy8G0pppvVkpSUkxMRkM9Ni0mIBwbGxsbGxsbGxobGxkZGxoVGBcXEwsJCgoJChEUFRAQEA8SERk6Y3NtcmdiNz88REZJSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDEZoZWtzdHRuaFNRTk5MS0pGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw4RWWBpcmxxdWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGRkaGhsaGhkbFxYWFBUUDRMPDAoJCQgIBwYEBwYGCCCQnqu1wczV3OPo7/T4+v3/////////////////////////////////7ebf1svBtKaab1ZKUlJMTEZDPTYtJiAcGxsbGxsbGxsaGRkZGxwZFRkYFhMMCQoKChUnNDg6P0dOUExKXHN3bXVrZjhCPkVHSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQxFaGhvdnRzbGhTUU5OTExKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsOEFhfaHJscXVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxkZGhobGhoZGxgWFhMVEwwLBgQECAYDBAMDAwYEBwohlaOvucTN1t3l6vD1+Pv9/////////////////////////////////+3m39bLwbSmmm9WSlJSTExGQz02LSYgHBsbGxsbGxsbFxkZGRsbGhUXFxUSCwkLCggcOUlRVmBqb3VxbHF/fXB9cWk8Q0BHS0lIRUI5MScjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0ORmhpbnNxcmxoU1FOTk1MSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDhBYX2hxbHF1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsZGRoaGhoZGBwYFhUUFRIMCgYDCA8QDg0LDQsNDA4PJZyptb3H0Njf5+vx9vn7/f/////////////////////////////////t5t/Wy8G0pppvVkpSUkxMRkM9Ni0mIBwbGxsbGxsbGxcZGRkbHRkWGBUTEgoKCwsLJkVYW19qdnd9fXmBi4h6g3duP0VDSk5JSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDkZnZm1ycnVtaFNRTk1NTUpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw4QWF9ocWxxdWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGRkaGhoaGRgbGBUUFBQRCggHCBIlLjM2PUVLU1lmaXyjsLvDzNTc4unt8vb5+/3/////////////////////////////////7ebf1svBtKaab1ZKUlJMTEZDPTYtJiAcGxsbGxsbGxsXGRkaHBwaFRQTFBAJCQwNCihLXmJlcX18g4OBipWQg4l8cUBHRU1SSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQ1EZWVqc3R6bWlUUU5NTU5KRkA5MSojHh0cGBcZGhkWFRIRERIPDgsNEFhfaHFscXVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxkZGhoaGRkYGhYUExQUEQkLCg0eN0VOU15ob3uDj5SkqLS/x9DX3uXp7fP3+fv9/////////////////////////////////+3m4NbLwbSnmW9USlJQTUtGQz02LSYgHBsbGxsbGxsbGhsZFxgbGBYUExUTDQsMCwYqWGBocXl9g4aLjo6Qj4uKgXdARUlNRUpJRUI6MSgjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0NRWVja3Rzc2xnUlFPT01MSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDxBYXmdxbHJ0ZldRTVJKT0lIRD43LSQeGxsbGxsbGxsbGxsbHBsYFhYXGRkTEBEPCwgIBUdMU2BmcHmCjZWep7K7xs/V3OPp7fH2+fr8/v/////////////////////////////////t5uDWy8G0p5lvVEpSUE1LRkM9Ni0mIBwbGxsbGxsbGxobGRcYGxgWFBMUEwwLCgsKMFxlbnqFho+Tl5iZnZuZkYl8QkdKUEdKSUVCOjEoIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDUdnZmx0c3JsZ1JRT09NTEpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw4QWF5ncWxxdGZXUU1SSk9JSEQ+Ny0kHhsbGxsbGxsbGxsbGxwbGBYWFhkYEg8PDgsICQZLUVlnb3mCi5afqLG5wcvU2d/l6u7x9vn6/P7/////////////////////////////////7ebg1svBtKeZb1RKUlBNS0ZDPTYtJiAcGxsbGxsbGxsaGxkXGBsYFRMSExEMCQsKAytcaneEkJSanqGgoJ6cmZGKfEBFSlFLSklFQjoxKCMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQ5IamltdHJxbGdSUU9PTUxKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsOEFdeZ3FscXRmV1FNUkpPSUhEPjctJB4bGxsbGxsbGxsbGxscGxgWFRUXGBAPDgwKCAoHUVhicHiBi5SfqLC5wsnT2t/j6O3w8/f6+/z+/////////////////////////////////+3m4NbLwbSnmW9USlJQTUtGQz02LSYgHBsbGxsbGxsbGhsZFxcbFxUSERIQCgkJCQYtWmZ0hZaemZyhoqKhnpiQin1CRUlQSUpJRUI6MSgjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0OSWtpbHJxcWxnUlFPT01MSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDhBXXmdwbHF0ZldRTVJKT0lIRD43LSQeGxsbGxsbGxsbGxsbHBsYFhQVGBYRDQwKCgcJB1ZeaXd/iZOcp6+4wcrQ2d/j5+zv8vT4+vv8/v/////////////////////////////////t5uDWy8G0p5lvVEpSUE1LRkM9Ni0mIBwbGxsbGxsbGxobGRcXGhcVExISEAoICgkLNWV0foiSlZ+jpqinpaGek42CRkhMUEpKSUVCOjEoIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwND0lqZmpxcHFsZ1JRT09NTEpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw4QV11mcGxxdGZXUU1SSk9JSEQ+Ny0kHhsbGxsbGxsbGxsbGxwbGBYWFhcVEAwNDAoGCQZbYm99h5GbpbC4wMnQ1d3k5+vv8fT2+fv8/f7/////////////////////////////////7ebg1svBtKeZb1RKUlBNS0ZDPTYtJiAcGxsbGxsbGxsaGxkXFxoXFBMSEhEJBwoKBzZvgYyUmpyoq62sra6sqpOMgUdLTVFKSklFQjoxKCMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQ9IZ2RpcHBxbGdSUU9PTUxKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsOEFddZnBrcXRmV1FNUkpPSUhEPjctJB4bGxsbGxsbGxsbGxscGxgWFRUXFw8NDgwMBwoGYGd1go2Xoau2vsbO1tvi6Ovu8fP3+Pr7/P3+/v///////////////////////////////+3m4NbLwbSnmW9USlJQTUtGQz02LSYgHBsbGxsbGxsbGhsZFxcaFhQUExMSCgkMCgs3bH2Mm6mvuru5tbCrqKOaj4FMTk1QSkpJRUI6MSgjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0PR2ZkaXFxcWxnUlFPT01MSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDg9XXWZwa3F0ZldRTVJKT0lIRD43LSQeGxsbGxsbGxsbGxsbHBsYFhUVGRcQDg4NDggMB2ZtfImTnaiyvMTM1dzh5+zv8vT1+fn6/P3+/v7////////////////////////////////t5uDWy8G0p5lvVEpSUE1LRkM9Ni0mIBwbGxsbGxsbGxobGRcXGhYTFBMTEgsICwsKN3GDkZymq7G2uLm5t7CtqJqLUVJMTkdKSUVCOjEoIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDkdmZGtzcnFsZ1JRT09NTEpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw0PV11mcGtwdGZXUU1SSk9JSEQ+Ny0kHhsbGxsbGxsbGxsbGxwbGBYVFRgXEQ4PDg8KDQlpcYCOm6WvucTM1Nzh5evv8vT19/r6+/z9/v7+////////////////////////////////7ebf1svBs6Wcb1ZKUlNMTUpEPjYsJB0aHBwcHBwcHBwaGxoYGBsZFhgSEA8ODg0JBzx2h5CbqrC4u76/wLy1raWekk5TUVZLSEdEQDguJSAdHRwcHBwcHBwcHBwcHBwcGhoaFxkZGBYVFBETEQ8ODw1GZ2hucnBybmpUUE1PT1BIRT44LiggHBwbGxoaHRwXFhQREhMRDg0ND1ZdZnBscXVoWlNPUktPR0VBOTMsJCAcHBwcHBwcHB8cHBwcHBsbHhgWFBQSDwkQCQkIcX2Ik52qtr7I0Njf5urv8/b4+fn7+/z9/v///////////////////////////////////+3m39bLwbOlmW5WSVJSTExJRT82LSceGxoaGhoaGhoaGhsbGRkaGRQZEw8ODhAOCgc9eImTna20ub2/wcG+tq6on5NPUVFVSElIRkE6MighGxoaGRkZGRoaGhoaGhoaGhkbGBgYGRgUFRMQERIPDg4MRWdobnNxc25qU01LTk5PSEVAODEqIx4cGxkYGh0aGBcVERMSDw4ODhBXXWZwbHF0Z1lSTVJLT0pHQTszLSciGhoaGhoaGhobGhoYGBoZGhwWFBUUEw8JDggICHF+iJWgrbnBy9Pb4uns8fX4+fr7+/z8/f7////////////////////////////////////t5t/Wy8GzpZhtVUlRUkxMSUM8Ni0nIBsZGRkZGRkZGRkaGBYWGRYUFxENDw0PDgkIPnqLlqGxuLu/wsTEwLiwqqGVUFFPVUhLSkhDPDQqIxoZGRgYGBgYGRkZGRkZGRkZGBYVFxgWFBMQEA8PDAwNDEVnZ21zcXRtZ1FNSk5OTkpGQDkzKyQgGhkWFRgaGhYVExEREA0MCw8QV11mcGxydGZYUkxSSk9MSEM9NS0mIhkZGRkZGRkZGxsZFxkaGBgZFBMUEhIPCQ4IBwhyf4qXpbK9xs/Y3+bt8PX4+vv8/Pz8/f7+////////////////////////////////////7ebf1svBs6WYa1VIUFJMSkZDPDQtJyAcGRkZGRkZGRkZGhgWFhkWExUPDQwMDQ4ICT97jZijs7m9wcXHxsG6sqqilE5ST1RJTEtHQjszKSQaGRkYGBgZGRkZGRkZGRkZFxgVFRUYFhMTEA0ODAsKCg1GZ2dtcnF0bWdRTUpMTU5LR0E6MiojHxoYFhUYGhkWFBAODw8MCwgPEVddZnBscnRnWFJNUEtNS0hCPDYuJyMZGRkZGRkZGRsbGRcZGhkZGRQTEREQDwkNCAkJcn+Lmam2wcrT3OPq8PP3+/z9/f39/f7+/////////////////////////////////////+3m39bLwbOll2xUSFBQSktGQjs1LicgHBoaGhoaGhoaGxsbGRkaGRUYEQ4MDA4NCApAfI6Zo7O5vsPHycjDu7SqoJROUk9USkpJR0I7MikiGxoaGRkZGRoaGhoaGhoaGhoZGBgYGhgUExAPDw8MDQsNRmdobXJwcm1oUk1KTE1OSkZCOTMrJCAcGxkYGh0aFhUSEREQDQwLDhBXXWZwbHFzZlhRS1BJTUxJQz01LSYjGhoaGhoaGhobGhgYGBkZGRsVFBQSEhAKDQoKCnJ/i5qruMTM1t7m7fL1+fz9/f39/v7+///////////////////////////////////////t5t/Wy8GzpZdsVEhQT0lKRUE6NS0nIBwbGxsbGxsbGx0eHBobHRoYGRQQEQ4QDgoJQHyOmaSzucDFycrIw7y1qqCTTk9NU0hIR0VAOTEnIBwcGxsaGxsbGxsbGxsbGxsbHBoZHBsaFxUSEhESDw8PDUZoaG5ycHJuZk9KSEtMTEhFQDgxKiMeHRwaGRseHhkWFBETEg8ODg0PVl1mcGxxdGZWUUpQSExLR0I7MywkHxsbGxsbGxsbHR0bGxscHBwdFhQVFBQRDA4JCgp1g4+crbrFztfg5+7z9vr9/v7+/v//////////////////////////////////////////7ebf1svBs6WXa1NFTE5HRkA8NzApJBwaHBwcHBwcHBwcGxkZGhoZFRcSDxAQEBAKCD97jpqltbvBxsnKyMO9tqmhkU1OS1FGRURAPDQrIxwdHBwbGxscHBwcHBwcHBwcGhkZGBkbGRUSEQ8RERAODwpEZ2lvdHFzbWZPSUZISEpEQDkzLCMeGRwbGRgbHRoWFBEQERIQDQ0LDVZdZnBrcHNmVlBJTEZIRUI9NS4nHxocHBwcHBwcHB4cGhoaGx0cGxYSExITEg0OCAgLeIaSn667x8/Z4enw9Pf7/v///////////////////////////////////////////////+3m39bLwbOllmpSREtMRkQ8ODMrJR8XFRYWFhYWFhYWGBgXFRYXFhEVDwwODQ8OCQc+e4+apra8wcbKysfDvbeqopFLTUpPREA+OzYvJh4YFxcWFhYWFhYWFhYWFhYWFhYVFRUUFhUREA0NDw4ODQ4IQ2ZpcHVydG1lTkhFRkdIPjo0LScdGBQZFxUUFxkWExEODQ4PDQoKCQxVXWdwa3BzZVVPSEpERj88NzEpIRkVFhYWFhYWFhYYFhQVFRUWFhcSDg8PERELDAYIC3iHlKCvvMfQ2eLp8PX4/P/////////////////////////////////////////////////s5t/WysCzpp5kQT1HPC8tKSYfGhcXGRkVFRUVFRUVFRYVFBQYFhQQEw8MCw0OCgkNQHqMmKi1uMDEyMrJxLy1sKOcRjw+OTsvKyYiISAfHBgWFRUWFhYVFRUVFRUVFRUWFRUVGBUSDRcTEhEQDQ8RDkJgbHZzb3JsZz0+Qjg4KColIBwaGhsaFxUUFRYXEw8aFBERDw8ODxATT15pbnNsbHBWOj4+My8vKiUgHh0cGxYWFRUVFRUVFRUVFxYVFBIXFBAPEREPCw4NAwZ0h5OisLzH0Nri6e/2+Pz+////////////////////////////////////////////////7Obg18vBtaefYjo0OzEnJyEeGBQRERISExMTExMTExMSERIUFBMRDRAMCAgHCQoGCkB6jZmptLnAxMjKycS8tbKimD4yNTAwKSQfGxkXFRQVFBMTExQTExMTExMTExMTERESFBUTEAwSDgwMCwkMDg1DYmx2c290bmY1MzQsMSMkIBoXFRQUExIREBIWFBENFA8NDAsKCwwNEVJga3B0bW1vTjAyNCsqJyIdGBYWEhIVFBQTExMTFBETExQUFBIQFBENDQ4MCggLCwMEd4eWpbC8x9Da4+nv9vj8/v///////////////////////////////////////////////+3n4NfMwrapoV4vJCsiHB4bFxMPDg8PEBMTExMTExMTFBMTFBUTEQ4NCQcGBwgIBwg+fY6aqbW4wsTKysnHvbewnpU0JigiIyEdGBYVEhEOFRQSEhMTExITExMTExMTExMSEhQUExEODAsHCQYFBgkMRWVsdnNxdnJoKyUnISgcHRoVEhITERETEhISFhUSDw8LCAgIBgcJCgxUYm1ydm5wb0kiJSghIR4aFhQREg8NFRQUExMTExQUExMWFhUUEhIQCwgLCgkGCQkDBXmKl6awvMjQ2+Pp7/b4/P7////////////////////////////////////////////////t5+DXzMO3qqJbKBggGBQZFRIREBETExITExMTExMTExMTFBQUEg8PDgwGBwcJCQkFPn2Qnaq2ucLHy83Mx8C4sJ6TKiAfGRkZFhUTFRMQEBUUExMTFBMTExMTExMTExMTExMTExIPDwwKBwgGBQYJCUZnb3d0cXl4ayMaGxciGBcUEhITFBMTExMRExMUEA0MCQcGCAcHCQgJV2RscXdwcnNFFxkfFxkXFBMRERIQDxUVFBQTExQUFBQUFBUUEhASDwwKCwoJCAgIAwN+jJupsb3I0dvk6vD2+Pz+////////////////////////////////////////////////7Obg18zEuKylWCISHBQRFhIQDw8QEhESDAwMDAwMDAwMDA0MDAsJCA0LCAgJCwsMBD5/kp2tuLvEyMzOzcjBua+flSYbGxUVFRMSERQSEA4PDgwMDQ0NDAwMDAwMDAwMDQ0MCwoKCAcKCAcHCAYICAlKbHF5eHV8eG4aExYRHRQVFBERERIREA0MCwsLDAgHDAkHBwkICQgIB1xmbXN5cnR2RRMUHhQWExEQEBESDw8ODQ0MDAwMDQwLDAwNDgwLEg8LCgoLCgkICQMDgY6ap7K/ytLc5Ovw9vj8/v///////////////////////////////////////////////+3n4NfNxbquplYfERsWERQTEhEQERAQDggICAgICAgICggICAgIBgcLCQgHBggJCAVBhJSfr7y+x8rPz87Lwr2yopohGBkUFBUVExIUEhAOCgkICAkJCQgICAgICAgICAsJCQcGBwQGCAcHCAcGBgYJTXF0fHt4gHtyFxIVER0UFRQREhIQDQwJCAcHBwYGBAkHBgcIBwYICwVjaW90fHZ0eUYSGB4UFBUTEhISEA4MCQkICAgICAgICAgICAoIBw0KCAcJCAgHCQoFA4WPm6e1wcvU3eXr8fb4/P7////////////////////////////////////////////////u6OHZz8e8sKZWHA4cFQ4REQ8ODg8NCgoICAgICAgICAoLCQgJBwkKCAcGBQUGBgUEQoiZo7K+v8nN0NLQzMW+uaeeIBMXEhMVEhIRERAMCAoJCAgICQkICAgICAgICAgLCwkICAYICQcGBwoJBgQFClN0dn99fYWAdxcUFhMcExEREA8ODQkGCwgIBggIBgYHBgUICAcFBQoGanF0en97eH9KExcfEhATEhAREQ8LCQoJCQgICAgICQgICAsKCQgICAYGBgUGBQsKBgSIkJymt8PN1d7m6/H2+Pz+////////////////////////////////////////////////7+ni2tDIvrKlVBkNHBQMDQoJCQkJBwQDCQkJCQkJCQkLCwkJCQkLDAcGBQUFBQUEBEOKnKazvr7JztHS0c3Gv72toR4SExATDw0MDAwKBAEKCQgICAkICAkJCQkJCQkJCgsJCAkICwwHBwkKCgYEBQpTeHiAf36If3gUERQRGxAKCAcHBwUBAAoICAcHCgkKBwUGCgoHBQUKBm91eX6DfnyETRQXHA4MDAsKCwwKBwQKCgkJCAkJCQoJCAkLCwoJCAcGBQUFBAYKCgcFiZCdqLjEztbf5uvx9vj8/v///////////////////////////////////////////////+/q5d7Ty8G2rFkXEBYTDgwKBQEAAgYICQYGBgYGBgYGBwYGBQUFBQUEAwQHBgQFCANAjqausbfEzdDS0dDOycS9q6sOFBITDg4JBQUICAcHCQgIBwcICAkHBwcGBgYGBgsLCwsKCgkJDQoKCQgGCAwOVX6LiIeNe4p+FQ8OEhIODgoGBAQICQkICAcGBgUEBAYGBgYGBgYGAA9seoaDhIaWeksjEwwNFQsJBgcHCAoIBQUFBQUFBQUHBwcHBwcHBwgHBgYGBwgIDwwDDoiepay9xdDZ4Oft8vf5/P7+/v/////////////////////////////////////////////v6+bf1c7EuatYFQ4TCwgMDQkGBggLDQ8MDAwLCgoJCQwMCwoKCgoKCQcGBAYFBQQSSpCirbrH1s7R0tLRz8rFxLCoDxAQFxISDQoKCwsKCQUFBQUFBQUFBQUFBAQFBQUEBAQEAwMDAwQEBQcIBwUDCk94goiMkYyIexcNCg8NCw4KCAcICg0OCwsLCwsLCwsLCwsLCwwMDAMPcX6Ki4qMlHtJGgoHCAsNCwkKCg0NDAsLCwsLCwsLCwsLCwsLCwsLCwoKCgkJCQwGAQiOoquxwMfR2+Lo7vL3+fz+/v7/////////////////////////////////////////////8Ozn4djRyL2vWRQMEwwDBQcFAQEDBAQFBQUFBQYGBgYEBAQEBAUGBgoNDgwGAwUHDUuTq7W+xtDR09XU1NLOyc66phcRCQ4JCwgFBggHBgYHBwcHBwcHBwgHBwYGBwcIBAQEBAQEBAQDBgYDAwMGCAhUhoyPkoyMVVELDhESCwcICAQDBAUGBwUFBQUEBAQEAQEBAQEBAQICFH6MjZKRl5SBUB8LDA0KCAYDBQYFBAMEBAQEBAQEBAUFBQUFBQUFAQICAwMDAwMGAwAKkaayuMTL1N3j6e/z+Pr8/v7+//////////////////////////////////////////////Lt6ePa1MvBqF0dExcRDAwODQoJCgwMCwsKCgoKCgoJDAwLCwsLCwwJBQYMEA8LCxpTmLC6vcTN0tXW1tbU0Mu8spgiGAgEABAMCAkIBwUEDQ0NDAwNDQ0MDAsLCwwMDQsLCwsLCwwMDQ8NDRIREhMhXIqPl5NmQjo8ERcbGAoDDQ4MCgoJCgoLCwwMDAwMDQcICAgHBwcHCyR7kZSWmJ2Rf1AiDgwODAwLCgoLDAoJCgoKCgoKCgoLCwsLCwsLCwkJCQgHBwcIEAkKHpGrtrfIztff5erw9Pj6/f7//v7////////////////////////////////////////////07+vl3dfPxdGulZSTiYWFd3JsZGBcWVdVU1FQTk1KSUNBPzw6NzY1NzlFW212gImMmKuwvMXM1NXY2dnY19POy9PPlaOgpaCCf3l4dG5pZ2NiYF9fYGJjYGBfX19fYGBiYmJiYmNkZWxwc3d4dXiCeY2WclVTTkhWUzk5QEM+QUBAQD9AQEFCRUdJS01PUlNcX2VrcXd8gHh9lpibnKKosq6hk4+OjIl+enVyb2pmYWRkZGRkZGRkZGRkZGRkZGRlZ2ptcXZ7f4SJjY+rsbrCzNLb4ebr8PT5+/3+//7+////////////////////////////////////////////9fHt5+Db1MrKu6qinZeSj4iEfnd0cWxqaWZjYWBeW1hXVlNPTElHRT89QUdNW3eRoaq3vs3T3ODa3N3c3NvX0sDOxamzpqCXk46Kh4J7dHN2dnRzc3R2dnV1dXV0dHR0dnV1dnd4eXp9f3x9gYCCjYRuYk5GVFZRVlNKRUtNSVBPUFFPUFFRUldaXV9hZGdpbnJ4fYKHjJCJk5udpKOpr7GtpqCdmZeXjIuIhoOBenh5eXl5eXl5eXh4eHh4eHh4fX+AgoSIjpKXm6Gorre/w9HX3uTo7fL1+fv9///+/v////////////////////////////////////////////by7+rk4NnQzsW6saylmpSLh4J9enZycHBtamloZmNhWllWU1BOTEtMSUhIS01QVnOTs7/JytHS4eLj4uHg3NjM2Ma5vaiemJWRjoyJg39+goKBgYGBgoKBgoKCgYB/foCAgICBg4WGfX99gIh/ZVZLTVZYWFtXTU1PVlFWVk5SU1RVVVVWWFpdYGNlZmhrbnR4foKGi5CUm6Wtrqqssruvrq+uq6egm5KQjYuJh4J+f39/f39/f39/f39/f39/f3+BhIaIjJGVn6Sts7a9xcvW2+Ln6+/z9/n7/v///v7////////////////////////////////////////////28vDs5uPd1c3KxLy0q6WjnpuXlpSQjImKh4SBgH15dnNyb2tnZGJhWlpZU1JSUU1PWF9slr3U1uXn5+bl5ODb0tvBvsWvqqaqpqSkn5mVlZKTlJSUlJOSkZKSkpGQjo2NjY2NjpCSk42OfGBSUU5OUFxXT1NcWU5YVWNaXF5WXmNkZmprbXBzc3d7fX+ChomFiY6TlpugpKystLavtrrBtLe6uLazq6Sko6OioqCbmJmZmZmZmZmZmZmZmZmZmZmSlZiZmp2hpaSosrS+wc3T2d7k6u3w9fn6+/7////+////////////////////////////////////////////+fby7+zn4NzVz8jCvrmyrammop+bmJWTkY+Ni4iFgoB8end0cW5raGdlY2FhYF5dYV1eX2RpcIOwyNbY4ejm5trUzsvJxL++raqmo6GhoJ6ioZ+fn5+hoqinoZqan5+ZnZianJN+ZllSUVFSVVZXV1pbXFxcXF1eX2FjZWZoamxub3FzdXd5en+BhIeJjI6QlpicoKSorK+1uLy/wsPExcXEwsC9uri3sbCuq6ilpKOioqKioqKioqKioqKioqKio6Skpqirrq+1uL3CyM/U2ODj6O3x9fj6+/z9//////////////////////////////////////////////////j28/Hu6uTg3NfRzMjEvrq1s6+rqKWioZ+dm5iWk5COiYeEgH16d3RzcW5tbGtpaGlmZ2VlYmFsZHZ/hJGjus3e1MnDwr66t7q4tbSysbCwrKqsrq+trKyeoKKhoqOdl4N2amJfWFZVW1pZWVtcXFtcXFxcXWBjZmprbnBxc3V3eXt9f4GDhYeLjZCTlpianKKlqa2wtLi6vsHFyMrLzM3NzMvJxsPBwL28ure0srGwsLCwsLCwsLCwsLCwsLCwsLCxsbO1t7q7v8LGy9DW297k5+vv8/b4+vv8/v/////////////////////////////////////////////////59/Tz8e3p5eDc19PQzcjEwL67t7Wyr62sqqilo6Cdm5eVkY6Lh4SBf317eXd2dHNwb3FxcG1pbWJqbm5ub3qKjIV/gYqQkpO2tLS1tLCvsq6tq6mjnZWQgH10amdoZWJfWVZaW1lXV1xcW1xdXl5eX19hYmVpbXB0dnh6fH6AgoWHiYuOkJKUmJqdoKOmqKqvsbS4u7/CxMfJzdDR09TV1NTS0M7MysjHxsTCwL69vb29vb29vb29vb29vb29vb28vb2/wcPFxsnMz9PX2+Di6ezv8vX3+fr8/f7/////////////////////////////////////////////////+fj29fPw7Orj4NvY1tPPzMnHxMG/vLq4trSysK6rqKajoZ6al5OQjouJhoSCgH59e3p6eHh3dHN5eHVxb2pqbnJuamxzdnd5bmxtcG5paGxsa2tta2ljX2hpZ2NkZWViX2BhZWRhXVtZWVpbXV9hYWRmam5xdHh6fX+ChIaIi42QkpWXmZyfoaSmqa2vsrS2ubu+wcTHyszP0tXX2Nna29ra2djW1NLRzs7My8nIyMfGxsbGxsbGxsbGxsbGxsbGxsfHyMrMzc7S1Nfa3eHl5+3v8vT2+Pr7/f3+//////////////////////////////////////////////////r5+Pb08u/t6ufj4N3b2NXT0c/My8jGxMHAvry6t7SysK6qp6SgnZuYlpOQjoyKiIiGg4GAf357fHhzb25uamhnZ2ZlaGlpamlnaGtpY2JlcnBua2toZF9cXmJmaGlnY2dkYmBeW1tcXF1eYGNmaGltb3N3e36Bg4iKjI+RlJaYnJ6ho6apq62wsra5u77AwsXHyczO0dPV2dvd3+Dh4uLi4uHg3t3b29jX1tXU09PT0dHR0dHR0dHR0dHR0dHR0dLS09TV1tjY293f4uXo6+3w8fT29/n7/P3+/v/////////////////////////////////////////////////7+vn49vPx8O7s6ebk4d/d2tnX1tTS0M7MysjGxMK/vbm3tLGuq6imoqCdm5iWlJORj4yMi4mKhHx/f318fXhyZ2hnY2BiY2RkYmJjYV1bXWxpZ2NiYV5cXF1eYGJlZ2hdXV1fXl1dXmVmaGpsbnFzeXp9f4KGio2Rk5WYmp2goqaoq66ws7W3ury/wsTHycvP0dPV19nb3d/h4+Tk5ebn5ubl5eTj4uHg397d3dzc3Nra2tra2tra2tra2tra2trb3Nzd3t/g4OHi5efp6+7x8vT29/j6/P3+/v7/////////////////////////////////////////////////+/v7+ff29PTw7+zq6Obl5OHf3t3c2tjW1dPRz83LyMbDwb67uLWzsa2rqKWjoZ+em5mUlpKNjoiQkI2HhIOCgXx8eXRzcnJxZ2VkY2JgX19gXl1dXVxcXGFiY2RkY2VkY2NhYmNmaGpwcXN1d3l8foSGiIuNkZWXmpyfoqWnqqyxs7W4ur2/wcTGyczOz9LT19nb3N7f4ePl5ujo6enq6+rq6unp6Ofm5uXl5OPj4+Pi4uLi4uLi4uLi4uLi4uLi4uPj5OXl5ubn6Orr7e/x8/X3+Pn6+/z+//////////////////////////////////////////////////////z8+/r5+Pf28/Lw7u3s6urm5eTj4uHe3Nzb2dfV09DOzMrHxcLAvbu4trOwrqyqqKainaGdmJuWlI+NjIqFgoB6enh1dHRxbXNycG5ubm1raWlqZ2dmZmRlZWZnaGtsbW5wcHN2eXp8eXp9f4GEh4mLjpKVmJqcnqSmqayvsrW3u73AwsTHycvO0NPV19nb3N7g4uPk5efp7O3u7+/v8PDw8PDw7+7u7ezr6+rp6enp6enp6enp6enp6enp6enp6enp6urr6+zs7u/w8fL09vf4+fr7+/v9/v/////////////////////////////////////////////////////8+/v6+vn4+Pb29fTy8fDv6+vq6ejn5ubj4uHf3tza2NbU0c7MycfFwb+8ube0sa+wrqupp6WioJ2bmJaUkY6MiomGhIOBfn17enl4d3Z2dXR0dHNzdHR0dHR0dXZ3d3h6e3x9fX+BgoOFh4mLjZCRmJqdoKKlqKqsrrG0t7q9v8PFyMrNz9LU19ja3d/h4uLl5ufo6uvs7O/w8fPz8/Py9fT09PPy8vLx8fDw8PDv7/Dw8PHx8fHx8PDw8PDw8PDw8PDx8fLy8vPz9PX2+Pj5+/v7/Pz9/f3//////////////////////////////////////////////////////Pz7+/r5+fn4+Pf29PPy8vDw7+7t7Ovr6ejn5uTj4N/c2tjV09DOzMvJxsPBvru5trSxr62rqKelo6GenJqXlZSSkI6MioiHhISDgoGAgH9/fn5+fn5+f3+AgIGCg4ODhIWGh4eJi4yPkJOVl5mbnZ+hpKaprK+xtri7vsDDxsjKzM/R1NbZ297f4ePl5+jo6uvs7e7w8PHy8vT19vb19fb29vb19fX19fX19fT09PT09PT09PT19fT09PT09PT09PX19fb29/f19vf3+fn6+/v8/Pz9/f3+//////////////////////////////////////////////////////38/Pv7+vr6+vr5+Pf39vb19PTz8vHw8O/u7ezr6efl4+Hf3dvY1tTS0M3LyMbDwb68uri2tLGwrauopqSin52cm5mXlpSSkI6OjYyLioqJiYmIiIiIiYmKiouLjI2Njo6PkJGSk5WXmZqdn6CipKapqq2wsrW4ur7AwsXIys3P0tTX2dvd4OLk5efp6+3u7u/w8PLz9PX19fb3+Pn5+Pj5+fn4+Pj4+Pn5+fn5+Pj4+Pj5+fn5+fn5+fn5+fn5+fn5+fr6+vv7+fr6+/v8/Pz8/f39/f7+/v/////////////////////////////////////////////////////9/fz8/Pv7+/v7+vr5+fn49/f29fTz8/Py8fDv7u3r6efm4+Hg3tza1tTS0M7LycfFxMG/vry5uLSysK2sqqelpKOhn56dm5mYl5aVlJOTkpOTkpKSkpOTkpKSk5SVlZaYmZqbm52foKCipKanqautsrO2ubu9wMLDxcjKzM/R09ja3N7g4uXm6Onr7e7w8fHy8vP09fb29/j4+fr6+/r6+vr6+vv7+/v7+/v6+vr6+vz8/Pz9/f39/f39/f39/f37+/v8/Pz8/Pz8/f39/f7+/v7+/v7//////////////////////////////////////////////////////////f39/Pz8+/v7+/v6+vr6+vn4+Pf29vX19PPy8fHv7ezr6efl5OPg393b2dfV09DPy8nHxcTCv768uri2tbOwr62sqqmopqWjoqGgoJ6enZydnZycnJydnZycnZ2en6CgoqOkpaWnqaqqq62vsbK0trm6vb/Bw8bIy83P0dPW2Nrd3uHj5Obo6uvs7e/x8vLz9PX19vf3+Pj5+fr6+/v7+/v7+/v8/Pz8/Pz8/Pz8/Pz+/v7+/v////7+/v7+/v7+/f39/f7+/v7+/v7+/v7+/v7+//////////////////////////////////////////////////////////////39/fz8/Pz8+/v7+/r6+vr6+vr5+Pj39/b19PT08vHv7u3r6unn5uTi4N7c2tjW1dHPzcvKyMXEwcC+vLu5t7WzsrCvrq2sqqmpqKempaSkpKSkpKSkpKSkpaWmp6ioqamqq6ytrrCxsrO1t7i6vL6/wcPGx8nMzdHT1dfZ293f4uPl5+nq7O7u7/Dy8/T19ff3+Pj5+fn6+fr6+vr7+/v7+/v8/Pz8/P39/v7+/v7+/v7+/v///////////////////////////v7+/v7+/v7////////////////////////////////////////////////////////////////9/fz8/Pz8/Pv7+/v7+vr6+vr5+fj49/f39vb19fTz8fHv7uzs6+no5ePh397c2tjX1dPR0M7MysbFw8HAv727uri3trW0s7KxsK+uraysq6yrq6urq6usq6ysra6vr7CwsbKztLW3uLm6vL6/wMLExsjKzM7P0tPV19nb3d7h4uXm6Orr7e/w8PHy9PX19vb4+Pj5+fn6+vr6+vr6+vv7/Pz8/Pz8/f39/f7+/v7+//7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////Pz8/Pz8/Pz8/Pz7+/v7+vj4+Pf39vb29/b19fX08vHx7+7t7Ovq6Ojn5ePi4N7d29rY1tTT0c/Ny8nIx8XDwsHAv769vLu6ubi4t7a1tLS0s7Ozs7OztLKys7O0tba2uLm6u7u9v8C/wMLExcbIysvMz9DS1NbY2tvd3+Hj5ebm5+nq7O3v8PDx8vP09fX29/f3+Pj4+Pj6+vr6+vr7+/39/f39/f39/Pz8/P39/f3+/v7+/v///////////////////////v7//////////////////////////////////////////////////////////////////////////w== - diff --git a/software/Print3r/models/Amf_Cube_Gradient.amf b/software/Print3r/models/Amf_Cube_Gradient.amf deleted file mode 100644 index 2d14e197..00000000 --- a/software/Print3r/models/Amf_Cube_Gradient.amf +++ /dev/null @@ -1,272 +0,0 @@ - - - - Amf_Cube_Gradient - - Default - - - - - 10 - 10 - -10 - - - - - 10 - -10 - -10 - - - - - -10 - -10 - -10 - - - - - -10 - 10 - -10 - - - - - 10 - 9.99999 - 10 - - - - - 9.99999 - -10 - 10 - - - - - -10 - -10 - 10 - - - - - -10 - 10 - 10 - - - - - tmp - - 0.8 - 0.8 - 0.8 - - - 0 - 1 - 2 - - 0 - 1 - 1 - 0 - 0 - 1 - - - - 0 - 2 - 3 - - 0 - 1 - 0 - 0 - 1 - 1 - - - - 4 - 7 - 6 - - 0 - 1 - 1 - 0 - 0 - 1 - - - - 4 - 6 - 5 - - 0 - 1 - 0 - 0 - 1 - 1 - - - - 0 - 4 - 5 - - 0 - 1 - 1 - 0 - 0 - 1 - - - - 0 - 5 - 1 - - 0 - 1 - 0 - 0 - 1 - 1 - - - - 1 - 5 - 6 - - 0 - 1 - 1 - 0 - 0 - 1 - - - - 1 - 6 - 2 - - 0 - 1 - 0 - 0 - 1 - 1 - - - - 2 - 6 - 7 - - 0 - 1 - 1 - 0 - 0 - 1 - - - - 2 - 7 - 3 - - 0 - 1 - 0 - 0 - 1 - 1 - - - - 4 - 0 - 3 - - 0 - 1 - 1 - 0 - 0 - 1 - - - - 4 - 3 - 7 - - 0 - 1 - 0 - 0 - 1 - 1 - - - - - - - Master - - 10 - 10 - 10 - 0 - 0 - 0 - - - //////////////////////7+/v7+/v7+///+/v7+/v7////+/v7+/v7+/v7+/v7+/v7+/v7+/v79/f39/f39/f39/fz8/Pz8+vr6+vn5+fn4+Pj4+fn5+fn5+fn5+fn5+fn5+vr6+vr6+vr7+/v7+/v7+/z8/P39/P39/f3+/v7+/v7+/v7////////////////////////+/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/v7+/v7+/v79/f39/v7+/f39/f39/f39/f39/f39/f39/f39/Pz8/f39/f38/Pv7+/v6+vn5+fj49/f39/f39/f39/f29vb29vb29vf39/f39/j4+Pj4+Pj4+fn6+vr6+/v7/Pv8/Pz9/f39/f39/f7+/v7+/v7+/v7+/v///////////v7+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v7+/f39/f39/Pz8/Pz8/Pz8/Pz7/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8+/r6+vn5+Pj39/f29vX19fT09PT09PT08/Pz8/Pz8/Pz8/P09PT09PX19fX19vb29/j4+Pn5+vr6+vr7+/z8/Pz8/P39/f39/f39/f3+/v7///////////7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v7+/v79/f38/f38/Pz7+/v7+/v7+/r6+vr6+vv7+/v7+/v8/Pz8/Pz8/Pz7+/v7+/r5+fj39/b29fX19PPz8/Ly8fHx8fHx8fDw8PDw8PDw8PDx8fHx8fHy8vPz8/T09PX19vb39/j4+fn5+vr7+/z7/Pz8/P39/f39/f39/f3+/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/v7+/v39/Pz8+/z8/Pv7+vr6+vr6+fn5+fn5+fn5+fr6+vv7+/v7/Pz8+/v7+/v6+vr5+Pj39vX09PPz8vLx8PDw7u7u7u7t7e3t7e3t7e3t7e7u7u7u7u/v8PDw8fHy8vLz8/P09fX29vf3+Pn5+vr7+vv7+/z8/f38/P39/f39/v39/f7+/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/f39/f38/Pv7+vr7+vr6+fj4+Pf39/f39/b29vb39/f4+Pj5+fn5+vr6+vr6+vn5+fj49/f29fTz8vHw8O/u7e3s7Ovq6urq6enp6enp6enp6enq6urq6urr6+zs7e3u7u/v7/Dw8fLy8/P19fb29/j4+fn5+fr6+/v7+/v7/Pz8/f38/P39/f7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f39/Pz8+/v6+vn5+Pj49/b29fX09PT09PTz8/Pz9PT19fX19vb39/f4+Pj4+Pf39vb29vX08/Lx8O/u7Ozr6+rp6Ojn5ubm5eXk5OTk5OTk5OTk5eXl5eXl5ubn6Ojp6erq6+vs7O3u7+/w8vLz8/T19vb29vf3+Pn5+fn5+vr6+/v7/Pz8/P39/v79/f7+/v7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pz8+/v6+vn4+Pf29vX09PPz8vLy8vLx8fHx8fLy8vPz8/T09fX29vb39vb19fX09PTz8/Lw7+7t7Orq6ejn5ubl5OTj4+Li4eHg4ODg4ODg4OHh4eHi4uLi5OTk5ebm5+fp6err7Ozt7e/w8PHy8/T09PT19fb39/j4+Pj5+fr6+vv7/Pz9/f7+/f39/f7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/f38/Pz8+/r5+Pj49/bx9PT08/T08/Ly8fDw8fLz7vTx8u/y7fTy8/T09fX19fX19fT08/Ly8vDv7Ovr6unl5OPi4eDf393d3Nva2tnZ2dnZ2tra2tvW1tjY2Nvb2+Dd3+Ti5Ofl4+Hm5ebo7Ozq6+3u7u/w8fHx8vP09fX29fb39/f4+fr6+vv7+/z8/Pz8/f39/f7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v79/f38/Pz8+/r5+Pf39vX08vHv7u3t7u7s6ujp7O3q5+jr5uvs8e3u8PDx8vLz8/Ly8vLy8fDw7/Hx7+3r6eno5+bl5OLh4N/f397d3Nva2tXV1NbX2Nnb19ja29zd3t/Y1tbb2tzg4ODf4+Tk5unn5+jq6uvs7e7u7u/w8fLz8/P09fb29vf4+Pn5+vr7+/v8/Pz9/f3+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/f38/Pz7+/r5+Pb19fTz8vPx7uvn5eTi5eTj4+Pk5eXl5eTn5eno6uzs7e7v7+/v7+/v7u7t7Ovu6ufk4uDf397e3NvZ19bW1tXV1NPS0dDR0M/O0NHS09TU1dXV19bW1NXW1dbZ2dvf4N/g3uDh4OLk5ebn5+nq6urr7O3u7/Dw8fPz8/T19vb39/j5+fr6+/z8/P39/v7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/vz8/Pz7+vn5+Pf19PPy8e/v7u3s6+ro5uXl4+Pi4uPj4eHj5ePl6Ono6err6+zs7Ozs7Ovr6uno6uDV0dLQz9DLy8rJx8bFxcPDw8LCwcHBwsHAv8DAwMDCw8TFxsjJycvNz8/T1dTW2dfU2Nfa3Nne3+Hi4uPl5ufn6Onq6+zt7e7w8fHy8/T19fb29/j5+fv7+/z9/f3+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v38/Pz7+vn49/f29PPy8O7t6enn6Ojo6Ofq5+Pj5OTg2efl5OTk4+Lf5eXm5+jp6enp6eno6Ofm5d3Gr6aloJuWkZGRkZCQj4+Ojo6Pj4+QkI6PkZOXmJiYnZ+ipquvs7TEwcTBwsTAwsvKwc/W2tfU2tvc3t7f4eLj5OXm5+jp6urr7e7v7/Hy8/T09ff4+fn6+vv7/P39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39+/v7+/r49vb29fPx7+7s6unm4+Li4eDf2dra1dDO09jU2NzZ3Nnc4ODh4uPk5eXl5OTk5OPj4uHYup6Znp2YlY+Pj4+QkJCQkZKSk5SVlpaampmYmJWSkJOSkpCOjI2Mj4OFg4OLiYygnZi5zNbSztTV19jZ2tzd3t/g4ePk5ebn6Orr7O3u8PHy8/T29/j4+fr6+/z9/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/fv7+/r59/b09PPw7u3r6efm497c2NLNyMLCvrKln6KovcTHxtXX2uLb29ze39/g4N/f39/e3d3c0rOYlpyempeXl5iYmZmampydnZ6foKGhn6ChoqKkpKSlpaSkoqGhoYhycW9pbGtsb2tnmLzPzc3Oz9HS09TW19na29zd3+Dg4+Tm5+jq6+3v8PHy9PX29/n5+vv8/P39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/f37+/v6+ff19PPx7+3r6ebl4t/XzMCvoJaMiYaIjY2IhIKAf5DA0tfZ19fY2tvc3Nzb3Nvb29rZ2NG0mpifn5mXnJycnZ2enp6goaGio6OkpKKkpKWlqKmpp6enp6ipqamEa3BybnZ1dm9nXJG3y8jIycvMzs/Q0tPV1tfY2tvc3eDi5OXm5+nr7u7v8fP09fb5+fr7+/z9/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38/Pv6+fj29PL0+Pbx8OTWya+ilI2Njo+OkJOUjoN2Z1lWWVRSlMPP19DS09PT09LS2NjY2NfV1NPGqpuZnZSZnZiZmpqampucnZ2en6ChoqKhoqOjpaWlpaakqKOnpailenBtcG9vcHB2b2OCtru4v8nIycvIyc3Nzc3NysnLz9TW3uLm5eTl6Onr7e/w8vP19vf5+vv7/f39/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+ff29fPx8u7q5dvFqZORj46PkJGQj5aOfGFLREZLUFddVXG/x9DJyszO0NDR0tHR0dHQzs3MwaeamZ2Ul5yYmZqampqbnJ2dnp+foKGioaKjo6WlpaWmpKijp6aoondvbXBvb3Bvc2tihbC4ubi5t7u+vbq0rKOfmpKPjpKUusja3dvg5e3n6ezu7/Hy8/X3+fr7+/z9/f3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pz6+ff29fPx7+3q5dCpko+OkJGRkpGOjY6QcU9AQENITlBVXFpeu77Gx8jJyszMzMzLzMzLysnHxr2hmZyelJaamJmampqam5ycnZ6fn6ChoaGio6OlpaWlpqSnpKenqJxxbm5vb29vbW1pYYWosLSttrSwpZSIiIeOjIqHhYaJioSYydjZ4N/j5efp7O3v8fL09vj5+vv8/f39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+vj39fTy8O7q5t7Dk4WMkJCQj46KiYuLhmRGQ0lCQUpPVVddXp+wvby+v8HExcbGxsbGxsXDwsG7n5mcnZSVmpiZmpqampucnJydnp+goaGhoqOjpaWlpaakp6Wnp6eTbG5vb25vbmxlZ1+Fp6uur7GwrqaYkJCSl5aSkY+RkZKEjsXS1d7b4OLk5+nr7e/x8/X3+Pn6/P39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38/Pr59/Xz8e/t7undwY2Fh4GFgoKCgX99fHpmT0dIRUVNS1NZW1xyqLK2uLq7vr/Cwr6+vr69vLq5vJyanJ2UlZmYmZqampqbnJycnZ6foKGhoaKjo6WlpaWmpKalp6emimltb21tbmxpYmhcfZyemaSjp6yhkYqTm5COiomKjY+RmZjJ09Xa1+Df4eXn6uzu8PLz9vf5+vv9/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38/Pz6+Pb08/Dt6+ns6MmKf4ODgX99fHt6dnR+dFpHSlNSTk5RV1hbXa2rrK6ztLa3ubq4uLi4t7W0s72bmJyelpWZmJmampqam5ycnZ6fn6ChoaGio6OlpaWlpqSmpaanpIBpbm5tbW1qaGNoXHSRmoyYsaebkIqOk5KKi42QkZKTlZKXydPS0tLc3N7i5efq7O7w8vX3+Pn7/P39/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pz8+ff18/Hu7Onf5ebUmISAf4F/fXt6e3t7dXhmT0tUWFhWUVVYXV2hqJ+ip6qsrbCzsrKysrGvrq2+mJecnpeUlpiZmpqampucnZ2en5+goaKhoqOjpaWlpaakpqWlpqJ4bG9ubG1raGdlZl9vj6ycoJKOi4uIi42NkZOSkY+NjI2Yn8rIyMnR2tnb3uLl5+rs7/H09vj5+/z9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+/j29PLw7ero2+Hi1ZmBe4J9fn58enh3dHt9bVdNTFFcVVRZW1lXhaitr7Cvqqinqqqrq6qpqKalvJaWm56XlJWYmZqampqbnJ2dnp+goaKioaKjo6WlpaWmpKWlpaWhdG5vbWxua2ZnaWRgaoq1opqfm5ucmZSPhYOAfXl6foeOmaXGvsHF0dXW2dzg4+bo6u/x8/b3+fv8/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f79+/r39vTx7+vo5eDg2tOnfHqEgYB+fHp5eHZ0eXFjZ2ZydX+AgoWIi42Oi4yPk5ieoqe0t7u6t7Owr52cmZWSkpWXl5eYmJmam5ubnJ2cnp+goKGjpqempaWlo6alp6WokGpvb29ubGpnZWJeYW2gpqGgoqOkpqWmiHJ3en18fISLkZWuuL7AxcnM0dXZ3eDk5+rt7/H09ff5+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/fv69/bz8e7r5+Tf3tvTrn58hoKAfnt6eXh1d3Z4h6SoqqahoJ2bmZeWlY+Pjo2Mi4yMiYuOjo6OkJKRkI6Mi4uMj42NjY6Oj4+PkY+QkJGQkZGTlpqdoKOmqKSnpqimpYhqbGxsa2lnZGJeY19nmaOhoaKjpqWmpYNyd3p9fH2EjJOXtrW6vMLGys/S19ve4ubp7O7x8/X3+fr8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz7+ff18/Du6ubj39rb1LWCf4WCgX58e3p3dnhydIurqKioqamnpqeoqKikpaWjoaCdnJiYlZOQj4+OkY+Ojo2MjIuOjo2NjYyMjI2Mi4qKiIeHh4iJioyOkZOmp6emp6J/bmdnZ2dlY2FfWmJabKCjoKCioqekqKN7cnh7fXx/hY+TmMGxtba+wcfMz9TY3N/k5+vt8PP19/n6/Pz9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38+vn29fLw7Onl4t7V2NK9h4CEg4B+fXx5eHd4c3SJpqKmrqenpaanqqytq6yurq+vrayrqailo6GdmpuYlpOUkY+Mjo2Mi4qJiIiHh4aEgoF+fX18e3p4d3d3nqOmp6mgeXBubm1raWZkYl9dWHemoKCio6Kpo6medHN5fX1+gIeQlJnGq7Cxu73EyczS1tre4uXq7O/y9Pf5+vz8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f39/Pr59vTx7+vn4+Dd09bQwY1/gYKAfnt6enl3enV0iKqnpaWpqKampaaoqKipqamnpqampaSjo6ShnpqempeUkpGPjIqJiIaFg4KCgoJ/fnx6eXh3dnZ2dXRzcpylqKipnXl1enx+gIGDg4OAeXONpZ2ioaSiqaSplnBzen19foCIkZWawqasrri6wcbKz9TY3OHk6evu8fT2+fr8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/fv6+PX08e7q5uLf3NDR0cKUgICCgHx7e3p4d3Z1dYerrKmnqKenpaWmqKmqq6qpqainpqmop6SjoJ6bmZeSkJCPjIyMi4qIhoWEg4GBgH59fHl4dnZ2dnZ0cnGUoqKkq6manZ+fnp2amJaVlpaXnqCdpaCko6ilqIxvdHt+f36CiZOYnLahqKu0uL7EyM3S19vg4+jq7vHz9vn6/Pz9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+fj18/Dt6eXh3trQztDCnIKBgX58e3p5eHd4eniFpKSlqamop6Wlpaanp6ipq6usq6uop6eloqGenZiVk5CRkI+NiYiHhoSDgoF/f357enl4dnd2dXV0cnBtmKyipKeoqaqnpqWjoZ+dnJabnZ6doKOipaSmp6aDcXV8f39/gouTmJ+onKSnrra6wcXL0NXa3+Ln6e3w8/b4+vz8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+/n49fPw7enl4N3Z0MvPwaGEg39+fHt5eXh3enl1hKenpqqqqqimpqWmpaqqrK+urq6upqalpqSgnpyYlpSSkpCPjYeHhoSDgoGAgIB9fHt4eHd0c3NzdHRycYqnoaeopqmlpKSkpaWlpaWspp+bnZ+dpaWkpamkfXN2fn9/f4KLlJmin5qho6q0t7/Dyc/T2N3h5+nt8PP2+Pr8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Ty7uvp5N/c0s7KybuyhHl+fXp4d3d2d3l2d4OpqKuopqipqampqamoqaurq6urqqempqSioZ6bmZaUkpCOjIqKiYeGhoWDgoGAf357enl4dnZ2dXVzcW+IqaemqKmoqaWmqKemp6eoqaWhoKCioqGhp6Slmm93fXyBgX+FkJmdrJCVnqKotba7wsjN09fb4eXo7PDy9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf08u7r6OTf29TMysm/uYl7gH15d3Z1eXl2dXiDpqerqaaoqampqampqKmqq6urqqqnpaWjoqGdm5iYlJKQjoyKiomHhoaFg4KBgH9+e3p5eHd2dnV1c3Fvhqenpaapp6ilp6enp6mpqqmmo6ChoqCfoqWlppRtd35+gICAhZCanLSNkZqeprCzusHHzNPX2+Hl6Ozv8vX3+fz8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7///39/fr39fLu6+jk39vXzczHv76NfX58enh4eX19e3t9iKWmq6qmqKmpqampqKipqqurrKqqpqelpKKhnZyYmJWRkY6MjIqJiIeGhYOCgYB/fnt6eXl3d3Z1dXRycH2ho6OjpaanqKiop6inqKmlo6Cgn6GhoaKkpqeLa3d/f4CAgIeRmZrAio6Xm6SrsrjAxsvS1trg5efs7/L19/n8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Xy7uvo5N7b2czMxL29k4KCgoGCgoSHiIeIipKop6qpp6ipqampqaipqaurqqurqaimpKOjoJ2bmpeVk5GPjo2LiYiHhoWDgoGBgH97enl5eHd2dnV0cnB6nqSlpaeoqaiop6inp6mqpKKgn56foJ6io6mog2p3gIB/f4GJk5mayImMlZqkqLO3vsTK0NXZ3+Tn6+/y9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf18u7r6OPe2tjNzcG6vKCUk5KQj4+RlJSVl5OaqqmpqKepqampqamoqamqrKuqqqinpqWjo6CdmpmXlJORj46Ni4qIh4aFhIKBgYB/e3p5eXl4dnZ1dHNxeJykpqWmp6aoqKmop6iqq6WkoqGhoZ6eoqSrp3tteIGCgH+Bi5SbncOGipOYoqextb3DyNDU2d/k5+vv8vX3+fz8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7///39/fr39fLu6+jj3trWzsrBvLyxq6SinZmXl5iZmpyYnqqpqaenqampqamoqKmqqqurqqmpp6akpKKgnJuZl5aTko+OjouKiIeGhYSDgYGAf3x7enl5eHd2dXVzcnSZo6elp6mnq6qpp6alpaWioqKjoqOkpKClqqNzcHeBgoCBhIyVnaCvgYiQlp+lrrS7wsjP1Njf4+bq7/L19/n8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Xy7uvn493Z08/Fwb28v7iwraqloZybmpyemaCpqqqop6mpqampqKeqqqqrqqqqqaempKSjn52amZeWk5KRjo6LioiHh4aEg4KBgH98e3p5enh3dnZ1c3J1maSpqKurp6WlpKKfnZ2enJ2eoKKkpaafpqicbHJ3gYKAgYWMl56jl36HjpWcpayzu8HHz9TY3+Pm6u7y9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf18u7r5+Pd2dPNwMC9ucS+t7e1saymn5ydoJuiqauqqKipqampqKinqaqqq6upqainpqSkop+dmpmXlZOSkY+Oi4qIh4eGhIOCgYB/fHt6eXp5d3Z2dXRzcpWepJ+fnpmZmpqbmpmbm5ydn56en56fnqemlmdzdoGDgoKFjZifpol9h46WnKers7rBx8/U2N/j5uru8vX3+fz8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pr49fLu6+fj3dnTzMe/ubDLuri4t7e3tbGupaOipaerq6mpqaiop6ipqqepqamqqqmopqamo6Gem5qbmZeUk5CPjYyLiYiHhoSDg4F+fX18eXh4eHh3dnV0c3l9hY6NiIiLjI6RlZiYlpSfoqOioqOioJaShnhwcXp9hYN/jo2dn61ze4OKk5ujrLO5wcjO09rf4+fr7/L0+Pr8/P3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz6+PXy7uvn493Z1M3HwLqxybu4uLe3t7WxrqupqKmqq6qpqamoqKeoqaqnqKmpqaqoqKanpaOgnpuam5mXlJOQj42Mi4mIh4aFg4OCfn19fHp4eHh4d3Z1dHN2cW5rZl9dX2VobnV8gYKDjY6Oi4eCfXhtbm1pa3N8gYOCgY6Pm5uxcnuCipObo6yzucHIzdPa3uPn6+/y9Pj6/Pz9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38+vj18u7r6OPe2tTNyMC6ssW8ubi3t7i1sq+uraysq6uqqKqpqKinqKmpp6ioqqmpqKinpqWjoZ6bmZuZl5STkI+NjIuJiIeGhYSDgn5+fXx6eXh4eHd2dXRzc2xmY15WT01PUVZcY2hqa2hoZ2RjZGRjZ2hpanB3f4GDgoKNkpqavnF6gomSmqOss7nByM3T2d7j5+zv8vX4+vz8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/Pr49fPv6+jk3trUzcjAurK/vLm4t7e3tbKwq6ysraqqqamqqaiop6ioqaioqKmqqKenpqako6CdnJuamJaUkpCPjYyLiYiIh4WEg4J/fn59enl5eHh3dnV0c2poZ21ubGhlaWhnZmZkYmFiYV9eX2JkZmhpZ2lweoKDhIKEjJScnctxeYGIkpqirLO5wcjN09ne4+fs8PL1+Pv8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/vz6+Pbz7+zp5N/b083IwLqyuLy7ubi3t7a0sqqrrKyqqqqqqqqoqKeoqKmnqKqpqqmopqWlpaOgnpyampiWlJKQj42MiomIiIeGhYSDf35+fXt6eXl4eHd1dHRxb2xsa2poaWZlZGVmZmVlYWFiY2NiYGBjY2NlbXqDh4aEh4yYnqHEcHmBiJKaoqyzucHIzdPa3uTn7PDy9fj7/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79+vn28/Ds6eTf29POyMC6s7O9u7m4tri2tbKtra6tq6qqqqqqqKinqKipp6ipqamop6empaSioZ6bmZmXlpOSkI+NjIqJiIiHhoWEg4B/fn57enl5eHh3dnR0bmxramlpamtoZ2ZlZWRjYmVkZWdnZ2doaGlnaXF7hIWEg4iPmJ2fq3B5gYiSmqOstLnByM7U2t/k5+zw8/X4+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fv59/Tw7enl39vUz8rBvLWwvru5uLi4trWzrq6traurqqqrqqmop6ioqKmoqampp6enpaWkpKGdm5qZl5WTkpCPjYyKiYmIiIaFhYOAf39+e3p5eXl4d3Z1dHJwbm1sa2lpaGdnZmdnZmVpZmNkZGRnamdpaWtyfIKFhIOHkZieopVweYGIkpqjrLS6wsnO1Nvf5Ofs8PP1+fv8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v37+ff08O3p5d/b1dHLwr22r8C8ubi3uLa1s62sq6uqq6uqq6qpqKeoqKipqKmpqaempqWlo6OgnZuamZeVk5KQj42MiomJiIiHhoWEgH9/fnx6eXl5eHd2dXR0b2ppamxra2loZ2dmZmRjZGJjZWVkZWdqbGtrcHiAg4WEh5KYoKeKcHmBiZKbpK20usLJz9Xb4OTo7PDz9fn7/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7//v78+/r39fHu6ubg3dTRzcPAta3Iuru5t7e3trSwrqyqqamqq6urqqqqqqioqKmpp6iop6alpKSioJ2bmZmYl5WSkJCPjIuIiIiHhIODgYB/f358e3p6enl4d3Z1cW9tbGxramlpaGhnZmVlZGVlZWVlZmdnZmdqcHd+hYeJgoqPnaCqcHJ7g4uVnaWutbvDytDV3OHl6e7x9Pb5/P39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+//7+/Pv69/Xx7uvm4d3W0s3Dwbaux7q7ube3t7a0sa+sqqmpqqyrq6qqqqqoqKipqKeoqKampaSjo6Cdm5uZmJeVkpCQj4yLiYiIh4SDg4KAf39+fXt6enp5eHd2dXFvbWxsa2ppaWhoZ2ZlZWVlZWVlZWZnZ2Zoa3B3f4WHh4OKkZyesWtye4SMlZ2mrra8xMvR1t3i5enu8fT2+fz9/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/////vz7+vj18e7r5+He2NPOxcG3sMS5urm3t7m3tbGvraqpqaqsq6uqqqqqqKioqaipp6empqSkpKKgnZybmZiXlZKQkI+MjImIiIeEg4OCgIB/fn18enp6eXh3dXVxb25sbGxramlpaGdmZmVlZWVlZWZmZ2doaGtxeH+Fh4eDjZSbnb9qc3yEjJaepq+4vcXM0tfe4ubq7vL09vn8/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79+/r49fLv7Ofi3tnUzsXBuLG/u7u6t7e5t7Wxr62rqamqrKurqqqqqqioqaioqKempaWkpKOin56cmpmYl5WSkJCPjYyJiYiHhYODgoGAgH99fHt6enl4d3V1cW9ubWxsa2ppaWhoZ2ZmZWZmZWZmZ2doaGhscXl/hYeJhY6Vm6DLcXR9ho6Xn6iwuL7GzdLY3uPn6u/y9Pf6/P39/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fv7+Pby7+zo49/a1M3Gwriyuby8urm3uLe2sa+tq6mpqqyrq6qqqqqoqKipqainp6akpKSjo6Cem5qZmJeVkpCQj42MiYmIiIWDhIOBgIB/fn17e3p5eHZ1dHFvbm1tbGtramlpaGdnZmZmZmZmZmdoaGlrbXN6goaJiYiPlZyhx3J2foePmKCpsrm+xs3S2N7i5+vv8/X3+vz9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38+/n28/Dt6eTg2tTNyMK5srO+vbq4trq5t7Gvrauqqaqsq6uqqqqqqKioqamopqalpaOjpKKgnZuamJeXlZKQkZCNjImJiYiFhISDgoGAgH59e3t6eXh2dXRxb25tbW1sa2pqaWloZ2ZmZ2ZmZmdnaGlrbG50eoKGiIeHkZeeoLBvd4CIkJqiqrO5v8fN09je4+jr8PP19/r8/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/Pv59vPw7enk4dvVzsrEu7SvwMC8t7W5ubexr62rqqqqrKurqqqqqqioqaioqKilpaWjpaSin56bmZiXl5WSkJGQjYyJiYmIhYSFg4KBgYB+fXt7enl4dnV0cW9ubW1tbGtqamppaGdnZmdnZ2dnaGhpa2xvdHuChoiHiJKXn6OZcniAiZGaoqu0u8DIz9TZ3+To7PDz9ff6/P39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////fz7+fbz8O7q5eHc1s/Mxby1rsHAvLe1uLm3sq+tq6qqq62rq6qqqqqoqKmoqKenpaSkpaSjoqCdm5mYl5eVkpCRkI2MiomJiIWEhYSCgYGAf317e3p5eHZ1dHBvbm1tbWxsa2pqaWhnZ2ZnZ2dnZ2hpaWtsb3V9goeIiImTlqCmjXh4gYmRm6OrtLzBydDV2uDk6ezw9PX3+vz9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pr39PHv6+bi3dbRzMS9t6/Ivb+6tbq8urOyr66rqqurq6uqqqqqqKinp6inp6alpaOjo6GfnJqZmZiXlpORj46LiomJiIiHhYSDgYCAf318e3p4eHd3dXRxcG9ubW1sbGtqaWlpaGZlZWVnZ2hpbG1qa291f4WHiYqOkJuhqXZxeYKLk52lrba9wsrQ1dvh5ert8fT3+fv9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz69/Tx7+vm493X0szEvrewxr2/urW6vLuzsq+uq6qrq6urqqqqqqiop6eop6elpaWjo6Khn5yamZmYl5aTkY+OjIuJiYiIh4WEg4GAgH99fHt6eHh3d3V0cXBvbm1tbW1ramppaWhmZWZmZ2doaWxta2tveH+FiImIj5Odna5wcnqDjJWepq63vsPL0dbb4ebr7fH09/n7/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fz8+vj08u/s5+Pe19LNxr+5scO+vru2uby7s7Kvrqyqq6urq6qqqqqoqKeoqKempaSkpKOjoqCdm5qZmJeWk5GPjoyLiomJiIeFhIOBgIB/fXx7enh4d3d1dHFwb25ubW1tbGtqamloZ2VmZmdoaGlsbWtscnmAhYiJiZCTnZ28bXR8hY6WoKevuL/EzNLX3OLn6+7x9ff5+/3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pr49fLw7Ojk39nUz8fBurK+vr67ubm8vrOyr66sq6urq6uqqqqqqKinqKempqSko6OjoqGfnZuZmZiXlpORj46Mi4qJiYiHhYSDgYCAf318e3p4eHd3dXRxcXBvbm1tbWxrampqaWdmZmZnaGlqbW1rbHJ5gYeIiIyQkZ6gym94fYaPl6GosLnAxc3T2N3j5+zu8vX3+fv9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz7+PXz8e3o5eDa1dDIwry0ur/Au7m5u720s6+urKusrKysq6urq6mpqKeoqKempKSioqKhn52bmZmYl5aTkY+OjYyKiYmIhoWDgoB/f358e3t6eHh3d3V0cnFwb25ubm5sbGtqamlnZmdnaGhpam1ubG9zeoKIiomMkZKeocZwen+IkJiiqbG6wMbN09jd4+fs7/L2+Pr8/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fz8+/n28/Hu6ebh29bRysS9trjCwb26uLq9tLOwrqyrrKysrKurq6upqaioqKimpaOjo6OioaCdm5qZmJeWk5GPjo2Mi4qJiIaFg4KAf39+fHt7enh4d3d1dHJycXBvbm5ubWxra2pqaGZnZ2hpamtubmxvdXyDiIqIi5KWn56xcHuBipKao6uyu8LHz9XZ3uTo7fDz9vj6/P3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pv59vTy7urm4tzX0svFv7e1w8G9vLe6vbSzsK+sq6ysrKyrq6urqamoqKinpqWlo6KioqGfnZuamZiXlpORj46OjIuKiYiGhYOCgH9/fnx7e3p4eHd3dXRycnFwb25ubm1sa2tramhnZ2doaWprbm5sb3Z9hIqKiIySmJ+gnXR8g4yVnKattb3EydHW2+Dl6u7w8/b4+vz9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz7+fb08u/q5+Pc2NPMxr+4tMPBvby2ub20s7CvrKusrKysq6urq6mpqKiop6alpKKioqKhn52bmpmYl5aTkY+Ojo2LiomIhoWDgoB/f358e3t6eHh3d3V0c3JxcG9vbm5tbGxra2poZ2dnaWlqa25vbHB2fYaKioqOkpaepJZ6foWOlp6nr7a/xcvS2Nzh5+vu8PT2+fr8/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pr49fLv6+jj39nUz8jBu7TJw8G9ura9uLazsK2tra2srKysqampqaiop6elpaSkpKSioZ+dmpmamJeVlJORj42MiomIh4aEgoGAgH9+fHt5eHd2dnZ1dHFwcG9vbm5tbW1sa2tqaWlpaWpqbW5vcG9xd36Gi4uMlJObnah/dn6JkZmhq7K4v8jM09jd4ufq7vH09/n7/P7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz6+Pbz7+vp5ODa1dDKw724x8DAvLu3u7i3s7Ctra2trKysrKmpqamoqKenpaWkpKSkoqGfnZqZmpiXlpWTkY+Mi4qJiIeFhIKBgIB/fnx7eXh3d3d2dXRxcHBvb25ubm1tbGxramlpampqam1ub3Bvcnh/h4uLio6WmZ6wen2Ai5Obo6yzusHJzdPZ3uLn6u/x9Pf5+/z+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+vj28/Ds6ebi3NfSzMW/u8K+wr27t7q5uLSwra2sraysrKyqqampqKinp6WlpKSkpKGgn52amZmYl5aVk5GPjIuKiYiHhYOCgYB/f358e3l4d3d3dnV0cXFwcG9vbm5ubW1sa2pqampqamtub3Bwb3J5goiMjImQmJqfvHJ8iI2WnqWvtbzDys7V2t/j6Ovv8vX3+fv8/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pv49vTx7evn493Y1M7Hwbu9vsW+vbm6u7i1sbCtrKysrKysqqqpqaiop6elpaSko6OhoJ6cmpiZmJeWlZORj4uKiomJh4SCgoGAf39+fHp6eXd3d3Z1dHFxcXBvb25ubm5tbWxrampra2trbm9wcW9zeYOKjI2KlJicnLh/fIqQmKCosbe9xczQ19zg5ens8PL1+Pr7/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+ff18u7s5+Pe2dXPyMO6ur/Gv726vby5t7Kwrqyrra2srKqqqqqpqaenpaWjo6KioJ+enJmYmJiXlpWTkI6JiYiIh4WDgYKBgH9/fnx6enl4d3d3dXRycnFxcG9vb29vbm1sbGtra2trbG9wcXFydHqCiY6OjJaUmqKyd42Ik5ujqrO5v8bO09ne4ubq7fHz9vj6+/3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+/n39fPv7ejk39rW0crFu7q8wb2+ur29u7ezsa2sq62trayqqqqqqamop6Wko6OioqCfnpyZmJiXlpaUko+NiYmIh4aFg4GBgX9/fn18enp5eHd3d3Z1cnJxcXBwb29vb29ubWxsa2xsbGxvcHFyc3V7hImOj4yPmqC0foSEkZefpq22vMLJ0NXa3+Pn6+7x8/b5+vz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pv5+Pbz8O7q5uDc2NPMx7+8t7m4wLm+vry5tbGtrKmtra2tqqqqqqmpqKelpKOjoaGfn56cmZiXlpaVlJKOjIqIh4aGhIOBgYB/f359e3p6eXh3d3d2dXJycnFxcHBvcHBvbm1tbGxsbGxtcHFycnR4fIWMjo2Kl468fXqDi5Kaoqmwub/Ey9LW3OHk6Ozv8vT3+fv8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+fj29PDu6+fi3trVzsnFvrKwtsC3vL68ubWxraypra2traqqqqqpqainpaSjo6Ghn5+dnJmYlpaVlZSRjoyKiIeGhYSDgYGAf39+fXt6enl4eHh3dnVzcnJxcXBwb3Bwb25ubWxsbG1tbXBxcnN1eX6HjY6MiKKgc3mBio2ZnKSss7vBxs3T193h5ent7/L09/n7/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pr59/Tx7+vo5ODc1tHMxL64sqikr8Cytbazsq2krKuura6xr7awqKeop6elo6Genp6dm5mYlZeXlpSUko+MjYqIhoaFg4CEg4GAf358enx6eHh4eHd2cXFwcnJyc3Nrbm9tbG5tamx0b3NxdHF4bnV7goyNoJ9tc3h+hYyTm6KnsLe9w8rO1Nje4ubp7fD09vn6+/z9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz7+ff18e/s6eXh3djSzsrCu7evpJ+gl7C/tK+wqKikqKupq6qpqKalp6empKOioqKgn52YlpSSkZGOjoyJh4mHhIOEgX99fHt6eXl4dnV4d3V1dXV1dHBxcXNycnFwdHV0cnBxcG5wb21yaW5wbXR7fp+6i2ZlcXd8gYmQlp6lq7O6wMbM0dba4OTn6+7x9Pb5+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38+/n49fLw7uvn4+Db1dHMxL26ta2inJaPiZKtvrOsqKinn6OlnJ+lpKSjoaCgn5+fn56cmpmYkpGPjo2MiIeHhYSDgoKAfn5+fX19fHt5dnV0c3Nzc3JxcXFxc3JxcHFxcW9xcnJxbmlmcG9tbnyftYlUXGRpbnZ8goePlZujqrC4v8TJ0NTZ3eLm6ezw8vX3+fv8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pv6+Pbz8e/s6OXi3djUz8rDvbawqaWgmJGHfHJ4kbS5u62lpqCppqekoqCenp6cnJqamZeWlpaVkpGQjYuJi4qHhoeFg4KCgYCAgIB+fXt6eXh3d3Z2cnJyc3NycnFra2tra2tsa2pndYCQtJ1cS1BXY2hnc3x7goeMlJqgqK+0vMLHzNLX29/k6Ort8PP19/r7/P39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz7+vn39PLv7enm49/a1s7Mx8C5squmpZuTi4mEe3pvZGZ3nLW6q6mop6Sgn56fmpqYl5aSkZCTkpGPjYuIhIeHhYWFgoGAgYB/f39+fHt8e3p5eHd3d3V1dHNzc3JybW5wdHZ2d3mboX5HQEtLVFJTXWhncXtzgIeMkZmfpayzuL/Fys7U2N3g5enr7vHz9vj6/P39/v7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+PXz8e7r6OXh3NnSzcfCvrqzraKfnZaRkIR9e3ZvYmNtqq2npqWhnpycnZmZmJaWlZSTkI6NjIuHhIJ/gIB+fn17eXx7enp6eXd2dnZ1dHNycnN0dXV2dnd4eH6CiI2Oj5OXkUg7SklMWVtYYmNqb3R3goWMkpefpKqxt7zDyc3R19vf4+fq7O/y9Pf5+/z9/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz7+vn29PLw7Orn5N/b3NXMx8O+uLStpaCZlI6Ghnp7eG9nZb6xqaemoZuZmJmcnJybm5ubmpiXl5WVk5CPiYmKiYiGhYOEg4ODg4OBgIOEhISDg4SGj4+QkY+OjYyMkJabmpygp3JHSE1NUFdaXGlqcXmAfIKLkpiepaqwt7zByM3R1dre4uXp7O7w8/X3+fv9/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38+/v59/Xz8e7r6ebh3dfU0M7IwLq4tKmlnpmTioeCe3NycGrOrbCvrKefm5qao6OhoKCenp2lpaWmpKSioZ6fnp6dmpmYnZycnZ6enZyjpKWlpaaoqpmZl5WRioWCfYSMk5Wbo6xXQUlMU1VaYWdrc3x3hYmNkJecoqmutLvAxcvQ1Njd4ePn6+7w8fT2+Pn7/f39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f38+vj39fPw7uvo5OLc2dTQzMbAvLWyrKahm5SQiYN+enNxsbCsqaeopJmWlJWVlJORkZGRk5SVlZeYl5ebnJycnJybm52dnJubmpqaj42NjIqKiYmDhYWDgX5+fnmGk5mWnJy9RUlOU1dcYmZrcHd9gYaNkZmdpKqvtbu/xsrP1Nfb4OPo6u3v8fP29/r6+/z9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/f39/Pr49/b08u/s6ebj39zY08/KxMC6trCrpZ+ZlY+Ig394c5+tq6mmp6OYlJKUlJOSkZCRkpCQkJGRkpGRkJCQkJCPj46MjIuKiYmJiYmIiYeHhoaHhIaFg4F/fn99iZSZlJunykhMUVZbYGZqcXZ9g4iNk5idoqiutLm/w8nN0tba3uLl6evu8fP19/j6+vv8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f39/fz6+fj39fPx7uvo5uPg3NjUz8nFwLy2saymoJuYjoqFgHiHr62rpaeimJSPkpOTkpCQkZKLi4uLjIyMjImJiYmIiIeGhIOCgYCAf3+FhISDg4SGhYWGhoSCf39/f4mVm5WYprhNUFZbYGZscHZ7goiNkpmdpKivtLq/xMjO0dba3eHl6Ovt8PL09vj5+vv7/P3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f38+/r5+Pb08vDt6ujm49/c2NTOysXBvLeyrKainpSRiod/erysq6WmpJiTkJGSk5ORkJKTjIyLioqKioqNjY2NjIuKiYqKiIeGhYWFhISDg4SEhoaGiIeEgoCAgICLlZqYnKKPUFRaX2VrcXZ7gYiOk5ieo6qvtbq/xMnN0tba3uHk6Ovt7vHz9ff4+vv7/Pz9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+vj39fPx7+zq6OXh3tvX0s7KxsG8t7KsqKKal4+MhnvIq62npaWclpKRkpOTkpKSk5GRkI2MjI2NkJCPj46OjYyOjYyLiomIiIWGhIWFhYaGh4mIhYOAgIGFj5iYmKCrdFNXXWNpcHZ7g4iPlZqgpquwtLq/xMjN0dfa3uHk5urt7vDy9Pb3+fr7+/z9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/fz8+/v59/b08/Hu7Orn5OLf29bTz8vGwb23sq6noJ6UkYyEx6ytp6ennpaSkZKSkpKSkpGSkZCQjo6OjYqKioqJiIiHiYiHhoWFhISGhoSEhYWGhomKiIaDgYGBhZSdmpifsWJXW2FnbnV8gYiNlJqfpaywtrq/xMnN0tXb3uLl5+ns7+/x8/X2+Pn6/Pz8/f7+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/Pz7+vn39vXz8e/t6+jl4+Db2NTQy8fCvbezraakmpeQjLessKimqJ6Xk5GQkJGRkpCPkI+PjIyKiYmIiIiIiIeHhoeGhYSEg4ODhoeHhoeHiYiKi4mGg4GBgoWUn5uYnrVYW19mbHN6goaMkZifpKqwtbzAxcrO0tba3uHl6Onr7vHx8/X3+Pn6/Pz8/f3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8/Pv6+Pf29fLx7+3q6Obj3tvX1M/KxsG7t7KrqZ6bko+nrLGopqidlZGRj46QkZGPjY2MjImJh4WEjY6Ojo6NjY2NjYyLioqKiomJiYmJiouMiouJhoSBgoKLlJuZmaK+W15iaXB3foaKkZeepKqvtrvAw8nN0dXa3eHk5+rr7fDy8/X3+Pn6/P38/P39/v7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38/Pz6+vn49/Xz8vHw7uvp5uLg29jUz8vFv7u3sqqloJeUmbCsrKSonpOQkJCQkI+PkJCNjYyLiYmJiYmKi4uKiomKiYiIh4eGhoWGhoeHiIqKi42Mi4iGhIOCjpiZm6OlxVxgZ210fIOJkJeepKmwtbnAxMjO09ba3uHl5+rs7vDy8/T1+Pr7/Pz8/f39/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+/v6+ff29PPz8fDu6+jl4t/c19PPycO/uLStp6KZk5W0qqiipJySjY6OjIyMi4yMjIyKiYmHh4eKi4yMjIuLjIiIiIeHhoaGh4aHh4mKiouNjYuIhoSDgo6XmZqhorRaY2pxd4CGjJSaoaets7i9xMjM0tba3eHk6Ons7vDx8/X19vj6/Pz8/P39/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f39/Pz7+/r59/b19fTy8O7s6Obi39rW0s3Hw7q4saqlnJSQuaikoKKakIuLi4uLiYmJiYiHh4aFhYWFh4iJiYmJiYqHh4aGhoaFhYeHiIeJioqLjo6MiYeFg4KPmJyZoaKdXGdudXuEi5GZn6essri9wsnN0dfb3+Lm6Ovt7/Hy9PX39/j5+/z8/Pz9/f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/f38/Pz7+vn39/b19PLx7uvp4+Dc2NTOycS9u7SspqCWj7umopyemJGJiIiIh4aGhoaDg4KCgYGBgYOEhYaGhoeIh4eHh4iIiIiHh4eHiYqMi4+OjYmHhYSDkpecmqOoiWNqcXh/iI6VnaSrsba9wcbN0tbb3+Ll6ezu7/Lz9PX3+Pn5+vv8/Pz8/v7+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/f39/Pv6+fj39vTz8u/s6uXi3trV0MrGv7y1rKahmZC4o5+ampWOhoSEg4OBgYGAgYGAgH5+fn5/gIGCgoOEhYWGhoaHh4eHh4aHiImKjI2Pjo2KiIaEg5KXm5ylrXZmbHN6gYqRmKCnrrS5wMXK0NXZ3uLl6Ovu8PL09fb2+Pn6+/v8/P39/f7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/v39/f38+/r59/b19PLv7Oro5eDc19LLx7+6tKykoJmQrJ6clZaRiYGBgYCAf35+fn19fXx7fHx8e3x9fn+AgoOCg4OEhIWGhoWGhYeIiouMjo2MiYiGhYSTmZqbpLFoZW52fYSNlZyjq7K4vcTJzdTY3OHl5+rt8PL09ff39/j5/Pz8/f39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v79/f39/Pv7+vj39vTy8O3q6OXg29bQysa+t7GqopyWj52Ymo+RioJ9fHt7enl5eHd4d3d1dXV0dXR1dnd4eXt9fX1+f3+AgYGDhIOFh4mMjI2MjImIhoWElJuXnKS4ZGhxeYCIkZigp6+2vMHIzdLY3N/k6Ort8PP19vj4+fn6+vz8/f39/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/f39/fz8+/r5+Pb18/Dt6ubj3tnUzsfDvLWwqqCZk42TlJeLjYZ8enJycnFwb29vcHBwb21ubm9vcHJyc3V3eXl6e3x9fn5/gYKChIaIi4yMjIuJh4aFhZSclp2nv2dsdHyDipSbo6qyub/Ey9DV297i5+rt7/L19vj5+vr6+/v8/f39/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v///fz8+/r5+vf18/Lv6+jp4dvUzsvFurmyqqagmZORi5SRiYqFdm1wbm1sbnBvbWdoam1ucHBxam9ycW9vdHdwd35+fX9+e319gIGGiYqMjo6MiIaGiImYmp2fn8NlbXV+h46XnqautbrCyM3S2d3i5ent8PL19vn5+fr7+/z8/Pz9/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///////v7//v38/Pv6+fn39fPx7urn4N7c08rFxMC2raWfmZCGgXmEhH5/fHJuZmVjY2ZmZWNpZ2ZjY2FiYGBcXWVrbm5wbmxtc3Vyc3d7fH6ChYiMjI2Ni4eFhYeJmJmboKbEam13gIiQmaCosLe8xMrP1dvf5Ofr7vH09vj5+vr7+/z8/f39/f7+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7//////////v38/Pv7+fj39fLw7uvn497Y0szGxMC6q6KZk42FfXlxf4OAfnl1dWVkY2NlZGNhYmBgXVtaWFhfXFxiYV5eY2hoa2xucXN1eXl7f4OGiYuMjIqIhISGiJmZm6CmumxweoOLk5yjqrO6wMfN0tfd4ubp7fHz9vj6+/v7/Pz9/f39/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+//////////79/Pv7+vj39PLu7Orm4d7W08zHwbu2sKSfmZSOhn9+kKG0wtDc4en6+fj7+/r6+Pj06t3Mva+oeG5kYF5fYWNnamtnaW52enN1eHt+gYWIjIqJh4SEhoqam5ygoadrc3uEjZWepa21vcLK0NXa4OTo6+/y9ff6+/z8/P39/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v////////7+/fz7+vn39fHv6+jl4dzY1s3AuLOvp6GemZabqL7Z7e/1+vv9/Pr69PTz9fX19PP29/n7+vr49/713ruWdWBTXVxgaGtnZmtvcXR4e3+DhomKiYaFhYiKmZyboKSZbHV9ho6Wn6eut77Ey9HW2+Hl6ezw8/b4+vz9/f3+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz6+fj28/Hu6+fj4NvV0cXDvLOspJ6fsMDZ8Pv9+/v4+Pf4+vz8//z8/Pv8+/r6/f36+Pf19PT5+PXy8u7dzIFyY11dXmJoam1xdXd7gISGhoaFg4SHipmbmaKrk3J3foeQmKGosLnAxc3T19zi5urt8fT3+fv8/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pv6+Pf18+/t6eXh3NjSzMe/vrWsqbHG2/n5+Pj5+fv//fn29vf3+fv6+vr5+fn4+PX09fb2+Pn89/n5+fz////216JyWFdjbGRoa3Bydnx+goKCgoGChoqZm5ikrIpzeH+IkZmjqrK7wcfO1Nnd4+fs7vL1+Pr8/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pv5+Pf18/Ds6uPf2tbRy8S/uK+pt9bu+f//+/v9/fj19f75+Pj49vf5+Pj49/b4+Pn6+/r6+fb19Pj39vb18/Lz+Pr88MWKWURdYWVpbHB2eX9/gH9/gISJmpyao6d/cHmBipKbpKy0vMPIz9Xa3uTo7fDz9/n7/f7+/v7////////////+/v7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/fz7+vfz8fDt6OTe2tPNysS4sbLE3vD5+vj4//38+/v6+vn8+vn4+fr5+Pr5+fj6+fj4+vr5+fn5+fn39/j5+Pj39/n29ff467+MU15eZWprcXd5fX19foCEipmdmKGtcnN6g4yUnKWttb7FytHX2+Dl6e7w9Pf5+/z9/////////////////////////////////////////////////////////////////v7+//////////////////39/f39/f39/Pz7+/v8/Pz8/Pz8/P3+/v7+/v7+/v7+/////////////////////////////////////////////v39/fz7+ff08O7s6OLd1s/Nxrq1ub/h6/b9/Pr49fz7+vr5+fj3+vj39vj39/b4+Pf39/f29vb29vb29vb29/f29/b39fbz9Pf6+fXo1btiU2JfZWt1dnp7e3yAgomYnJihrnJ0eoOMlZ2mrra+xcrR19zg5uru8PT3+vv8/f///////////////////////////////////////////////////////////////////////////v7+/v39/f39/f39/Pz8/Pv6+vr6+vr7+/v6+vv7/P39/f39/v7+/v7+/v///////////////////////////////////////v38/Pz6+ff08ezp5uHa1M7Lv7Wzt83q9vn7/Pz7+/z6+Pf49/j39vj29vT29vX19fX09PX19PT19fX19fX19fT09Pb19fX09vLz+Pr59vPo24FbZVxrc3B0dnd6fYCHlpqYoa9xdHqEjZaep6+2v8bL0tjc4ebr7vH0+Pr7/f7///////////////////////////////////////////////////////////////////////////38/Pz8+/v7+/v7+vr5+fj39vb19fb29vb29vb3+Pj5+vr6+/v8/P39/f7+/v7+/v////////////////////////////////79/Pv7+ff18e3p5eHb083GvriyvN34+/r8/Pz7+/v7+fj4+Pf39vX39fX29fb09vT09PX09PT09PT09PT19fX09fX19fX09Pjz8fb6+/j09/Pwm1pfW21tcnJ0d3uAhpSXmKKwcHR7hI6Xn6iwt7/GzNPZ3eLn6+7x9fj6+/3+//////////////////////////////////////////////////////////////////////7+/v78/Pv7+vr6+ff39/b19PPz8fHx8PDw8PHx8fHx8vPz9PX19vf4+fn6/Pz9/f3+/v7//////////////////////////////v7+/fz7+ff08u7q5eHc1czGt7W2y+36+fj+/Pv7+fj29fn4+Pf49/f2+Pf19fb29vX29fX19fX19fX19fX29vb29vb39/b29fX09vTy8PL3++v68POwXl9dam1vcXV3fYOSlZigsm90fIWOl6CpsLjAx8zT2d3i5+zu8fX4+vz9/v///////////////////////////////////////////////////////////////////v79/fz8/Pv7+vn49/f09PPy8O/v7u3t7Ovr6+vs7Ozs7e3u7/Dw8fLz9fb3+Pr6+/v8/f3+/v7+/////////////////////////v7+/fz7+vj18e7q5d/a1M3EvrS11fn/+vb3+vj19fX19vb5+Pf2+Pj39vj39fX29vb18/X19fb19fX09fX19vb29vX29vf39vb28/j27+vs7/Tu8vzv9sxqWGRpa21wdHl/j5KWnrFtdXyFjpigqrG4wMfM09nd4ujs7vH1+Pr8/f7////////////////////////////////////////////////////////////////+/v38/Pv6+vr5+Pf19PLy8O/u7evq6ejn5+bm5eXl5ubm5+fo6erq7Ozu7/Hz9PX29/j5+vv8/P39/v7+//////////////////////7+/v37+vj18e3q5eDZ0svDurPB4Pj7/Pv7/P369/X29/n59vX19PX29fX29fTz9PX08/Pz8vL09PT08vPz8/T09PX09Pb19vX29PH49/Pz8/H08/Xw9vP30WdcYmVnbHB2fo+PlZyxa3V9hY6YoKqxuMDHzNPZ3eLn7O/x9fj6/P3+/////////////////////////////////////////////////////////////////fz8+/r5+Pj29fTy8O7s7Ono5+Xk4uHg397d3dzc3Nzd3d3e3+Dh4uTl5+nr7e/v8vP09ff5+vr8/P39/v7+///////////////////+/v78+vn28+/r5+Lc1MzFvLKs7PX59/b9/ff7+ff29vf6+vTz8vLz9PT09PPy8fHy8vHw8PLy8vPz8/Dx8fHy8vPz8fLz8/T08/Pu9vj39fDx9/r08fT999jJWFxgY2hudHyOjpacsGp1foSOmKGqsbi/x8zT2d3i5+vv8fX4+/z9/v////////////////////////////////////////////////////////////////z8+/r5+Pf38/Lx7uzq6Ofi4uDf3dva2dfW1dXU1NTU1dXV1tfY2dre3+Di5efp6u/w8fP19/j5/Pz8/f3+/v7///////////7+/v7//vz7/Pj39e/r5+Hc2sy+uLG26f78+/r6+/z7+vj39/j49/f5+fj39vX19PTz8/Lx8fDw8vLy8vLy8vLx8vLz9PT19fLz8vPy8vHx8/T19fX18/L09PP08e/s6LxiV1tjW3CAiYuVlblocHqGkJmiq7K5wcfO09ng5Ojt7/H1+fv8/f7//////////////////////v7+//////////////7+/v/////////+///+/v/+/fz7+vr49vTz8u3s6eXi4N/e2NbV09LR0M/OzczLycnJycbIy8vLztDS1dbY2tvb29zn6evt7/L09ff4+fv9/v79/f///////////v7+//78+/v39fLs6OPc2M3Htq644vP8+vn4+vr6+ff39fX19vX09fXz8/Lx8vHz8/Py8fHx8PHx8fHx8fHx8PDx8fLy8/Py8vHx8fDx8fLz9PX08/Py8/Ty8/Du6ObMkFRaX2pkf4WIkZO3Z295ho+ZoauyucHHztPY3+Tn7e/y9vn7/P7+//////////////////////////////////////////////////////7+/f39/fz6+vr59/Tx7+7r6OTj49/Z1NfV0s/OycfFxcTCwMDAwMC9wMHDw8bKy8jLz9XY29rb4ePl6Ort7/H09ff5+/z8/Pz+/////v/////+///+/Pr69fLv6ePd1s7BurWx3vn7+fn49vj3+Pb49/Xz9PTz8vHw8fDw7+/v8/Pz8/Ly8vLx8fHx8fHx8e/v7/Dw8PDw8PHx8fDx8fHx8vP08/Pz8/T08vLv7Obk3sRtWWJrYXWAhI2StGdueoWPmKGrsbnBx87T2N/j5+zw8/b5+/z+/v///////////////////////////////////////v7+///////////9/Pz8/Pv5+Pj39fLv7Onn5+Tg3NbT0M/HxcG/vbu5uLe2tbSzs7S0uLe4tre2trbHxcLEydDW2dnc3+Ll6Ovt8fL09/j5+vr7/P7+/v7+//////7+/fv5+PPw7OXf2NDFurOy1vn6+/r5+Pf39/b1+Pf18/Tz8vLy8fHx7/Hx8fLy8vLy8vLy8fHx8fHx8fHv7+/v7+/v7/Hx8fLx8fHx8PHy8/Pz9PT08vPx7urk4OPXpWFfVWZpfIGKkLBmb3mFjpihqrG4wMfO09jf4+bs8PP2+fv8/v7///////////////////7+/v79/f39/Pz8/Pz8/Pz8+/z8/Pz8/f39/Pz7+/v59/b08u/s6eXi397b19LNx8PBure1srCwsLCnp6enpqalpaqrra6vsbKzr7a7vby9xcvQ09fb3uHm6ezu8fT29/n6+vz9/v7+/v////7+/fz5+Pbx7eni3NTLwLisxPP++/z6+vj4+fn39/n49PP09PPy8fHy8fHx8/Py8vLy8vLy8vLy8vLy8vLy8fHx8fHx8fHx8vLx8vLz8/Ly8vP09fPz8/Hx8O3o4t7d2NOJUkVjZHp+h46sZm53g42XoKmwuMDGzdLX3uLm6+/y9vn7/P3+///////////////+/v39/f39/Pz7+/r6+vr6+vn5+fn5+fr6+vr7+/v6+vn59/Xz8O7r5+Tg3NnSysPCw7+7uLCwsrfAzNfe9fX4+Pj39fXw6+Xbz8W8uKmoqauvtbvAxMjN0dXZ3uLn6u7x8/X3+fn7/P39/v/////+/fz6+Pb07enl3tfOxbqywOj3//r9+/r59/n3+Pf49vXy8vP09PHx8PDx8fLy8vLy8vLz8/Pz8/Pz8/Pz8/Ly8vHx8fHx8fHx8vPz8/Tx8fLz8/P09PPy8e/s5+Hd1NbfulhLWGl2fIGMpmNrdoCKlJ2nrrW9xMrQ1dzh5eru8PT3+vv9/v7+/v7+/v7+/v79/fz7+/v8/Pv6+vn4+Pf39/f39vb29/f39/j4+Pj39/b29fPw7uzq5eLe2tXSxcHAvrm0tLjP2Obz+/78/PX3+Pn6+Pf2/Pv6+fn39fTZzb6zr66sqrq/xcrO09nd4OPo7O/x9Pf4+fv8/f3+/////f37+ff08erl4dnRx72yteP3/Pr49/v5+Pf29vb19vPz8PHz8/Tw8O/x8fHx8fLy8vLx8fHx8/Pz8/Pz8/Px8fHx8fHx8fLy8vLy8vPz8fHx8vHy8vLx8fLw7Ofg3dHY2NaMWExrb3V6hp9fanN9h5CZo6uyusDHzNLa3uLo7O7y9vj6/P3+/v7+/v7+/v39/Pv6+vn5+Pj39/b19PTy8vLy8vLx8fLy8vPz8/T08vLx8O/t6ufm4t7Z1dDLxr64s7W7yNzt+Pn7/Pv+///5+fv7+vr6+f////79+/n2+Pn15s+6rKaus7q/w8nP1Njc4ebp7PDz9vf5+vv8/f7//v38+/n29O/o4t3VzMG3rc/u/vv59fP5+Pf09PX08/Pw8O/w8vPz8PDy8fHx8vLw8PDv7+/v7/Ly8vLy8vLy8PDx8fHx8fHw8PDy8vLy8/Dw8fDw8e/v8fDx8Ovn4NzU1dTayF1JaWtwdoGbXWhxeoSOl6Gor7i9xMrQ2N3h5urt8fX4+vz9/v7+/v7+/v78/Pv6+fn49/T08/Lx8fDv7e3t7e3t7Ozt7e3u7u/v7+7u7ezr6OXi4NzX0s3Hwb22s7nP6PX5+Pn6+vf08/Ly+vn5+fn5+Pry8fL09fX18/f5+vz569bGoaats7i9xMrS1tzh5ejt8PT2+Pn6+vv8///9/fz59fHr5eHayL25r8Pt9vj//f339/b29/f38/H08/Lx8PLy8vLy8vLx8fHx7u7u7+/v7+/w8PHx8vHx8fLy8fHx8fHx8vLy8vLy8vLy8vLy8vLy8vT08ezn4+Dc1tzX0NSkSFVqbHB9k19oc3V9iZGYnqivub7FzNLY3eHm6vD09vf6+/v7/Pz8/Pv6+/r5+Pj29PPu7evq6uno5+jn5+bl5eXl5OTm5+jr7e3o6Onl4OHg2tXWzcbDv7evv9jx+fr8//76+vr5+fz8+/v6+fn6+fr6+Pr5+fj49/n29/j49/f3+OvKqJ+pt7/Aw83X2tre5uzu8PP2+Pr7/P/+/Pv69/Pv6OPf0sW5sq/b8/b3/fr69vf19fb19fPv8/Px8fDy8vLy8vLy8vLy8vLy8vLy8vLy8fHy8vLy8vHx8fHx8fHx8fLy8vLy8vLy8vLy8vLy8vL08vHs5+Pg39fd3dLbvmJPWGBibYFSXGVvd4OOlp2kqLO5wMbN1Nvf5Oju8vT2+Pr7+/z8/Pv6+vj39vTz8vDu7Oro6Obk4uDg397e3d3d3dzc3d3d3N3d4d7f4N3c2NPPycS/uq+y0O/2+ff3/P79+fn4+Pn5+vr4+Pf49/f3+fj3+Pf39vf39fb39/b29vfq49S+qJ6svcHEy9HZ3+Lh6+3x9Pb5+/z+/Pv6+PXw7OTg2crAuK+88Pj0+Pv29/P29fT19PTx7/Lx8fHw8fLz8vLy8vLy8vLz8/Pz8/Pz8/Pz8/Pz8/Py8PDx8fHy8vLy8vLy8vLy8vLy8vLy8vLy8/Lw7Ofk4uDe3uHX4eGLSFdiZm19Uldeb3WAipOdpaqss7q/xc3V2d/j6e3w8vX3+fn6+vr5+Pf29fPx8O3r6eno5eLh3t3b3Nvb2tra2trY19fW1dTU0tjV1tfUz8zJxryzsrHC5fL5+Pf1+Pv8+fn39vb5+Pj59/b29fb29vb29vX19vX19fX09vb19fX07vj56MKkn6m1usDJ0tzd3Obp7fH09/n7/vz6+ffz7eni3NXFvbe31vf49fr59vbv9/b09fT08e/x8fHw8fHx8/Hx8vLy8vLy8vLy8vLy8vLx8fHx8fHw8PHx8fHy8vLy8vLy8vLy8vLy8vLy8vLy8vLx7uzp5uTi5OHj4OX4u0pTXGFqeE9SWmRqcnyGjpifpa21ub7HztLY3ePo6+7x8/X29/f39vTz8vHu7Orn5OHk4NvW0tHPzsnIyMfHx8fHz9DR0dLT09LOz8/MxsPCwL+ysbPK7vv/9/r7/Pz5+Pb5+Pj39/j5+Pf29fX29fb29fX19vb29fX19vX19vX08/X4/Pvt0bShpa23wMfP19zh5Oru8fT3+f78+vj28evm39fPw7m0xO/4+fn5+Pj47/n39vT19fLy8PDw8fHx8fLx8fHx8fHx8fDw8PDx8fHx7u7u7u7u7u7v7+/v7+/w8PLy8vLy8vLy8vLy8vLy8vLy8e7s6uno5erl5urp/eFkUVdbZHBLTllfaHR+hIyVm52krLK4wMjL09fe5Ojr7vHy8/T19PPx8O3r6OXi3tvY1dLPzMjGxMHExMPDwsLCwsLCwsLDxcXFwsbFwL29ubSrrLng9/j8+P////36+Pb3+vr4+Pj5+fj19/b29fb4+Pf39/f39/X19vb19vX29fT68/L6//PZw6OkqbC8xs/V2+Dm6+7x9Pf9/Pr39O/o49zTybyytNX8+fz7+Pf4+PT49vX09fTz8vLx8fHx8fHx8fHx8fDw8PDu7u7t7e3t7Orq6urq6+vs7u7u7u7u7+/y8vLy8vLy8vLy8vLy8vLy8vHu7ezr6uru7Ofw7fbzlEhOUVhiQ0dQXGRtc3h/h46VmqGpsLjAxM3R2N7j5+rt7/Dx8vHv7ezp5+Tg3NjU0cjHxMPAvLm2uLe2trW1tLWysrO1trm6urq8uLS1tKykorfl/vz8+vn9+vj4+/r59/r5+Pf4+Pj29vX09fb19vb29vb29fb29fX19vb29vX18vT2+fn18u/AsqOntcPIx9Ta4ebq7fL1/Pv49vLs5eDX0cK3rLro//n69/X3+Pb39vTy8fLz8fHy8vLx8fHx8fHx8fDw7+/u6ejn5uXk4+Lh4eHh4uLj5Onq6uvs7e7u8vLy8vLy8vLy8vLy8vLy8vLx7u3t7Ozs8fTu8fPt8846RUxRXEhISlpgaG5zeX6BkZGVnqastLvDyNDW29/j5unq6+zr6efm4+Hd2dTQy8jCwLy6uLm5uayrqqmop6ensrKwrq2rqamuramoqKOeoMLr/Pn5+/v4+vn4+fr7+fX5+Pb19fb19PL08/Py9PX19fX09fP08/Pz9PX29vb29e/1+Pfy8fX8682wpa+6vr7N09vi5urv8/v69/Xx6+Pe09C/tKnB9v339fLy9/j0+PPx7+/v8fDw8vLz8/Lx8fHx8fHw7+7u7uTj4uDe3Nra2tra2tvc3d7m5ujp6+zt7vLy8vLy8vLy8vLy8vLy8vLw7+7u7e3t7fP58/H35+74hqC4zu3w+fr19/b06trJvJCNjpeeo6qyu8DIztPY3N/j5OXm5ePh39rY08/KxcC9ubi3ucHN1977+vn49vb19e7n3M6/sKegoJ+en5yVmqn49/j2+fz5+fX29vPz9fTz9fX08/P08vHy8vHx8vLz8/Pz8/Py8vLy8/P09fX29vb69e/v8PP08v/kvqmlrLS5x87X3+Tp7vP8+vfy7ung2dHLt6mq8/3y+vf29fb39vP29PHx8fHw7/Lx8fHx8vLy7vDw8e/q5uPh3tfSzMnHxsbExMTIyc7T1tjc4eTn6uvt7u/v8fDx8vLy8vLy8vLy8fHw8PHx8vLz8/Tz8/X29/T29/j49vj3+fr6+Pn5+fj4586xnpmdo7K6vMPT1tHQ2d/g3+Lh3dnY08m/urm4uMrX6PT5+vz8/Pv6+/r5+vn4+Pj29/br37qlkIqHjbry+vn6/Pz6+fj5+fj4+fn5+Pn39fb19vX19fT09PPz8vLz8/Pz8/T19vb09fX08vLy9fX19vb18+/o6uHCpZymv7/I09jj6Ozv+vn18Ozn3tfOx7enuPT98vj29PT29fTz9PTy8PHw8O/x8fHx8fHy8u7v7+7r5eHe2NTNxsC8ubi5trW3u73Dyc/S2Nzi5enr7e7v7/Hx8fLy8vLy8vLy8vHx8fDx8fLy8fLy8/Pz9vfz9Pf39vb39/j5+Pf4+Pj48PLx6djBp5icq7i/xMTJ19jZ19bX1tDOy8G8uLW4zeby9Pf5+Pj6+fr5+Pn49/j39vf39vf59vDv272UhLDr//j5+Pn5+ff2+Pf19vb39vX18/Lx8vPy8fLy8vHx8fDw8fHx8fHy8/Tx8fHy8fHx8fXz8/Lw7Ojk1tTSvaWkqK62xM7V4eDi8fn49O7q5NvTyL+0ps30/fP39vTz9PTy8fPy8vHx8vLv8fHx8fHx8fHu7Ovp5uDZ087JwLiyq6impqWlqaywt73HytHX3uLm6uzt7+/x8fHy8vLy8vLy8vLx8fHx8fHy8vHw8vHz8/X28/T19/b29vX29/f39vb39/b5/f356tbHnKOtsrG0w9TKys3PzMrHwre2s7TH5fb3+vj29vj5+fb3+Pf39vb29vb3+fj49/n6+ff14NDr//L49vj3+Pf18/b18/Pz8/Ly8PHw8PDx7/Dx8fHx8PDw8PHx8fDx8fDx8PHy8/T09PT18u/r6OHb1sO8vbWqqKeotsPHz9zi5e759/Pt6OLZ0Ma5sarj8/v09/X09PX08vHy8vHw8vLy7/Hx8fLx8fHw7ezo5uDY0MvDu7GnoJmWk5OSk5ecoauyu8LL0tng5Ons7e/v8fHx8vLy8vLy8vLy8fHx8fHx8vLv8PHy8fL09fP09vf29fb29/f29fX29vb7+ff5+vn18Mu3op2msru7wsPGxL69u7avq7fb9/78/vv5+fv7+vf09/f49/f19fX49/r7+Pb19/36+/v6+fv69/f39/f29PP39fPy8vLy8fLx7/Dx8vHy8vHx8fHx8PDx8fLy8PDx8fHx8vT19fT18O3n4NjPxcCyqKKipJyZqbK6xNPV3ubq+ffy7Obf1s3Fs6y18fT59fn39fT09fTy8vHx8PHx8e/x8fLy8fHw8Ozp5OHa0ce/tKufk4qEgH17e3+EipGcpLO6xM3V3OPo6+3v8PLx8fLy8vLy8vLy8vLx8fHx8vLz8PDy8vHy8/Tz9fb29/b29vb29vX19vf49/bz8/X19/f72rWdnKerprm5uLOxtLOtrcLi+//6+f3///77+fn39/j39/j39/b4+Pb3+vv49/b3/fv7//v09/n49/f39/b09vX08/Hy8vHz8vHx8fPz8/Pz8vLy8vLy8/Pz8vLy8PDw7+/v7+3r6ePe1MzAtaqjnpCHhouDgpi3vr/N0dri6fj28erk3dPKw6+oyPf29fX6+PX19fT08fLx8fHy8fHv8fHy8vHx8O/q5+Hc08m7tKScjYB3cm1oaWluc3qFj5qqsb3H0dvi5+vs7/Dy8fHy8vLy8vLy8vLy8vHx8fLy8/Lx8vHy8vPz8/T29vf29/f29vX09fb3+PLw7+/v8vX5//rkv6CSmKWsraqprKyoqMrs//r1/v70+vr7+vn5+vr49/j49/f3+Pr39vn7+ff29/z8+fn6+fX4+Pf4+Pf29Pb28/Lz8/Pz8vDx8fLy8/Lz8/Pz8/Pz8/Pz8/Ly8u/v7+7r6Obi3trPyr6zppqPiIR3b2trb3B3i73CyM7f5O339e/o4trQx7+qotv6+fP2+vf29vT19PHy8vHy8vLx7/Hx8vLx8O/u6ePd1cy+sKaWi31wZmFbV1daXmRsd4aRoKm2ws7X4efq7O/w8vLy8vLy8vLy8vLy8vLx8fLy8/Pz8/Py8vHz8/H09Pb29fb39vX09PT19ffz8/T09PLz8vL8++fFoZGaoqGgoKKdprz69vf8/vv4+fj3+vr6+vn59vb39vb39/b39/b4+fb19fXz9fXz9fj29fX29/f39PT08/Hx8PLy8/Px8PDx8fHx8fHx8fHx8vLx8fHy7+/u7u3r5OHb1M7IuLGmmIx+dG1kYF1YV11fZGKxxsrO3ODt9vTu5+DYzsW8pqDo+/vz9/n49fT19PLx9PLz8vLy8e/x8fLy8fDv7uXh2tHGuKidioBvYllTTEpLTFBZYWx7h5ulssDL1uHn6uzv8PLy8vLy8vLy8vLy8vLy8vHy8vPz9fT18/Hy8vPw8vT09PT29PXz8/Lz9fb4+/n29fb29vXz8fD59MqXfpKUj5GUlrbs+/j4+fr6+Pf29PPz9fb29vX19PX19fX18PP19vb09PP08/T19vf29/Pz8/X29fTy8vHv7u/x8/Pz8vHx8vLy8e7u7+/v7+/v8PDu7+7s7Ovo5N7X0Mi+uKOcj4J1aF5ZSE5NSlBNTWOcv7nEzNfd6/fy7efe2M7Ctqex9/H79/X49/f39/Xz8fX08/Lx8fLy7/Dy8vLx7erh2M/EtaWVh3hrWUtGRkVESkdGS1NhdYKKo6q3xdzk4+7w8vPz8vLy8vLy8vLy8vLy8vLy8vLy8vLy8/Lz9PX08/T09PX09fX4+Pj39/f39ff49/Xz9PT19fHy9vjsun2Ih46CiLnx//z6+vv7+/r69/b19ff3+Pf49/b19vX19fX19vX29vX19/j4+fj39vX39fX19fT08vPx8PHx8fLy7e3u7u3t7Ozp6ejo6Ojp6u3s7e3r6OTg3NnSy8O3p5qPhHNmW1FKSEFBQUU+Ol+ZqLK9yNLa4en28evl3dbMwLWmt/jx+vf2+Pf29vb08vD19PPy8fHy8u/w8vLy8e3o3dXLwbCejX9nX1JJQjw6Ozg4OTxFVGl6jJ6quMHa4uPu8PLz8/Ly8vLy8vLy8vLy8vLy8vLy8vLx8vLx8/Pz9PPy8/P08/P09vb29fb29PT29vb18/L09Pjz8vb8+dmtc4B6eqHu//b5+fn5+vn49/f29fT19fb29fb19PT09PTz8/Tz8/T09Pb29/f29fTz9vTz9PP08vPy8fHw8PLx8e3t7evq6ejn4uHh4OHh4uPl5efn5OLd2tTRyb6zpZWIeXBgUEhEQ0E8Oz47Q26Xnqq1v8nT2uHp9e/q49rTyLyypML58/j29vb19PX08/Hw9PPy8vHx8vLv8vLy8vDr5drQxrimk4FxWE9IQjs2NDk1Njg7P0tdbI2crrnA1uHj7/Dy8/Py8vLy8vLy8vLy8vLy8vLy8vLy8fHy8vHx8vLy8vHx8vHy8fLz8/Lz8/Pz8fL08/Py8/T39PP2+//24YVwa47d+/3/+fj4+Pn29fP39vPz8/Lz8vX08/Pz8/P08PDx8vLz8/Tz8/T09PPy8fXz8vHz8/Lx8vLw7/Hx8PDq6ejk4+De3NjY19bX2NnZ3d3e393a1NHLxLqtoJB/c15RRkJBPjo5PT40SXuPkaauuMLL1dvi6fTv6eHY0Ma6sKLP+vX49Pb19fTz9PTy8PPz8vLx8fLy7/Lz8vHu5+LVzL+wnYl1Zk5IQjw5ODs+OTk7OzxBSVCEoba+xNPi5e7v8fLx8PDw8vLy8vLy8vLy8vLy8vLy8vDx8fDx7/Dw8PDx8PHw8fHx8fLy8fLy8vDx8fHw8fL09/Py9Pj+/vfMdHPL+vz3//j5+Pj49/Px9vbz8vLz8vHz8vPz8vPz8+/w8PHw8fLy8vLz8/Py8fHz8fHy8vLy8vPy8fDw7+7t5ePg3NjUz87KycjIyMnLzM/Q09PRzsjFvLSnmYp7a2BJRD88Ozk7QDk5WXyDjJyisbvFztfd4+v07ujh18/EuK2g3Pv29/P19PTz9fXz8e/z8vLy8fLy8vHy8/Lx7ebe0sa6qZWAbV5HQzw4OT9APzw8PD09PDw9aqG6w8zT5urv8fLz8vHw8PLy8vLy8vLy8vLy8vLy8vLw8PDw8PHw8PHx8fLx8fHx8fHy8PHy8fHx8vHx8fL08/b08vLz9Pb19bCy7fz8+vP6+vn5+Pb08fj28/Px8vLy8vHz8vLz8/Pw8PHx8vLy8vPz8/Pz8/Ly8/Hx8fPz9PP08/Hw7ezo59/d1tHMx8O+tra1tLW2uLm+v8LCwry3s6iekIFzY1ZOQEA/PT4+Ozg/Z3x/ipOdrrS+yNHa4Obt8+3n39bNwrasnef6+PXz9vX09PX08/Lw8vLy8vLy8vLx8vLx7+zj3MzBs6ONeWZXRD45NjtCQj9IR0VDQ0I/Ok6PvMrU2Ovu8fL09PPx8fDy8vLy8vLy8vLy8vLy8vLy8PDw8PDy8vLy8vLy8vLy8vLy8fHy8fLy8PHx8vLx8/T38/Hx7+/z8/ns8PH++fX1+vr4+vj29PL39fPy8/Lz8fLy8fHy8vPz8fHy8vLy8/Px8fHx8fHx8fHy8fLy9PPz8/Lw7erm4t/X08zFvreyrKWko6OjpaeorrCxsrGrpaCTiXpsXlJJRUA8PEI/ODxGbXeBh42aqbC6xM3V3uPo7/Ls5t7UzMG1q5zx+/r18/X19PT09PLx7/Hx8vLy8vLy8fLy8O/q4djJvK6ch3JfUEU8OD1CRERGT1FQTk1MSUU9dcHX3OLt9PHz9PTz8fDw8vLy8vLy8vLy8vLy8vLy8vDw8vLy8vLz8fHx8fLy8vLz8/Ly8/Hx8fLy8vHw8fL08vL08/Lx9fb7+fb8+P/29Pj39/f29vT09fXy8fPz8vPx8PDv8fHy8vPz8vLz8fHx8PDw8PDw8PHx8PDw8/Py8vLw7erl4drXzsi+tq2knZeUk5GRkZOVl52dn6CemJCLfHJkWU9HQ0JDPz89NDZQcXV/iJCao7C+wcrT2uLm6/Hx6+Xd08vAtK2b9vn69PP19PPz8/Pz8fDx8fHy8vLy8fHy8vDv6uHXx7mqmYNuW01IPTlBR0ZJU1NXWllYWVdWOWPF4eHq7/Xy8/X18/Lx8PLy8vLy8vLy8vLy8vLy8vLw8vLy8vPz8/Hx8fLy8vLz8/Pz8vLy8PDy8/Lx8PDx8u3x9vj39vn78PX+9vX6+/f29fT19fTz8vTz8PDx8fPz7+/v7+/x8fHy8vLy8fHx8fDw8PDw8PDw8PDv7/Ly8fDx7+zn4tzX0cW+tKugmI+JgoGAgICChIaLjY6QjYaAemlfU0pEQD9BOz87NkFbb3J3g46apbC5wsbP197k6Ozy8evk3NLJvbGfu/D68/P28/b09PP08/Hw8vLy8vLy8vLy8vHu7Obc1MO1pZB8aVhMSDU9Q0tSVFpZW1xcW1pVUVBLreXs8+vz8/Pz8vLy8vHy8vLy8vLy8vLy8vLy8vLy8fHy8vLy8vHz8/Ly8/Py8u3u7u7v7+7u8fLz8fDx8fLz8/T19fX29/T29fb39vf29fTz8/X09PT29fTy7+/v7/Hx8fHx8fHx7+/v7/Hx8fHy8vLy8vLy8vHx8fLx8fDw7u7r5+Da0cnCs6GWjoV4b25ta2hpbXBydXd5d3VyamVUS0RAOzxAP0U2MURgb3V9iZGcpq22v8bQ1d3j6Ozw8/Dq5NvRyL2wn7zw+vTz9/P29fT09PLw8PLy8vLy8vLy8vLx7uzm3NTBtKSPe2hYTEY4Q0dQWFpeYWNkZGNiXVhWTqXm7vXt8vT08/Py8vLx8vLy8vLy8vLy8vLy8vLy8vHx8vLy8vHx8/Lx8PHx8O/t7e3u7e3t7e/w8e/w8PHz8fP08/T09vbz9fT19fX19PHw8PDy8vLw9fTz8e7u7u3t7e3t7vDw8O/v7+/x8fHx8vLy8vLy8vLx8fHy8fHw8O7t6uPe1cvCt6mXin9zaF9fWldXWFleYmJjZWNhXVVNS0RCQDs4PEE1QlNlcnmCi5Wcp7C3vsfO1dng5uru8vTw6uPa0Me7r5+88Pnz9fb09fT09PPy8PDy8vLy8vLy8vLy8e7s5tvTvrGfjXloWUxFPEpOVl5iY2ZoaWloZmJdW1Ka5/H57vL19PLy8vHy8vLy8vLy8vLy8vLy8vLy8vLx8fLy8vHx8fHw7+/t7ezr6urp6ejo6Ojq6+zt7e7w8vDx8/Ly8/X18/Py8vLy8vLz9PLz9PLz8e/u7Ovp6Ojp6Ojp6uvs7O3u7u7v8fHx8fLy8vLy8vLy8fHx8vHx8PDu6+jf183BuKibh3dsYldOT0lGSUpHS1JSU1NTUU1FQD9BPz5APjk1Q1tyeX2DjZihp7G5wMfP1Nvg5uvu8fT27+ni2c/Guq6evvD59fX28/Tz8/P08/Dv8vLy8vLy8vLy8vHu7OXa0ryvnox4Z1lMQz9QUFtkaGpsbnBvbm1oY2BXjerz9/Dz8/Pz8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8fHy8vLx8fDx7uzq6ufm5ePi4eDf39/f4+bn6evs7/Lv8fLz8/Hz9PT08/Py8vLy9vT08/Py8e/o5ePh4N/f4ODh4+Xl6Ors7e3u7/Hx8vHy8vLy8vLy8vHx8fLx8fDw7Orj29DGua2bjHdmXVVNQ0I+PUBAPj9DSElKSUZCPjs+PT5DQjc4SmVyen2Ejpihq7G6wsjO1tvh5evv8fT2+O7o4dnOxbmtn8Dy+fT19fP19fPy8/Lx8PLy8vLy8vLy8fLx7uvl2dG5rJyLeGdaTkNDUlJcaG1vcnV2dnVzbmhiWn7t8vTw9PT08vPy8vPy8vLy8vLy8vLy8vLy8vLy8vHx8fLx8fDw7u3q5uTj4N7a2djW1dXW1tzd4OPn6e3x8PHy8/P08/T19vP08/Lz8vTy8PDu7Ono393Z19bV1tbX2d7f4uTp6uzt7u/x8vLy8vLy8vLy8vLx8fHy8fHw8Ovm4NbLvq+jjn1nWFBKQTg9PTs3Nzs+PkBCRUZCPzs7PEBAPTk6UXJ2e4CIlJ+mrLa8xMvR197i5unu8vT2+fvu6OHYzcS4rJ/B8/j19vbz9PT08/Py8fDy8vLy8vLy8vHy8e7r5NjPuKybi3hqXFBFRlZVYGtxcnd5e3t6d3JtZV9y8fHx8PT09PLy8vPz8vLy8vLy8vLy8vLy8vLy8vLx8fHx8fDw7+zq5uLf29fW0c/NzMvLzM3Q09fb4OTq7e/x8vTz8/P09fX08/Lz8/P08u/t6OXh3dPRz83Ly8zNztDW2d3g5efr7O3v8vLy8vLy8vLy8vLy8fHx8vHx8PDo5d3QxLakmIJwW05GQDczOEJMTU5ORjw9PD5AQUE/Pjo7NDRFYHN6eYGMlqGnr7m/xMvS2N3j5+ru8vX2+Pr87ujh2M3EuKufwvP49vb28/Pz8/Ly8/Hv8vLy8vLy8vLx8vHu6+TYz7iqnIt5bF9URUhYWWZxdHh6fX9+fXt1b2lhZ/Pz8vH19PT08vLy8fLy8vLy8vLy8vLy8vLy8vLy8fHx8fHw7+/q5uLe2dXQzcPCwL69vr/AxsnO09ng5erw8vLz8vLz8/Py8fLx8PDy8vDs5+Pd19THxcPBvr6/wMXJztTX3OHl6uvt7/Ly8vLy8vLy8vLy8vHx8fLx8fDw6OPZzL+unI56aFRIQDs7QVBRUlFTWFpaTUE3Njo8PDtANDhRbHt/fYSQm6GqsLjDyMzT2d7j6Ovw8vb3+Pn7/O7o4djNxLirnsL19/X39vTz8/Py9PLy7/Ly8vLy8vLy8fLx7uvj1864q5yMem1hVUZJWlxrdHd7gIOFhYSBe3VrY2Dy9fLz8/T08/Lz8vHy8vLy8vLy8vLy8vLy8vLy8vHx8fHx8O/v5+Tg29XPy8m5t7Wzs7S2t8DCyc/W3eLm7/Dz9PLy8vHy8e/v7u/w8O3q5eHc1M/Kvru4trW0tbXBxcrP1Nrg4+rr7e/y8vLy8vLy8vLy8vLx8fHy8fHw8Ojj2Mu7qpaHdGNQRDw8SFdQUVJXWlteX2xUPTQ4PDw6OkJfeXx5g5GSnaWrtb/EyNLW3OHm6u7x8/b4+fn5+/zu5+DXzcO3qp3A8/b09vX08vPz8vPy8vPy8vLy8vLy8vHy8u7o4dbMtqqdjnxuY1hOS1hibnB2gYKEhoaEgXt1cmdf7vXv9fH19PPy8fPy8vLy8vLy8vLy8vLy8vLy8vLv8fPy8fDt6+Te2tPLxL23rqymoqClrLK1u8bL0dbe8uvt7/Hx8fHx8vLx8fPz8fDp5t/X0MfAurOvqKalpamvsrrBydPW1djq7O/w8O/x8fLy8vLy8vLy8vLx8vLy7u3n4NTFsqGPfmZeUEQ3QFFRWF1jZmlsbm1uc2M3PkM9NzdmgX+FjZKaoKewucDHz9TY3ePo6+7y9Pj5+vv9/f7+7ufg18zDt6mdwPP29Pb19PLz8/Lz8vLz8vLy8vLy8vLx8vLu6OHWy7erno5+cGRaUU1bY3ByeIODhoiIhoN9d3RpYO/18PXy9vXz8/L08vHy8vLy8vLy8vLy8vLy8vLy7/Hz8vHw7eri3NXOxL21r6OemZWVm6Gmr7bFyM/V2+br7e/x8fHw8fHw8PDy8fDu5uLa0svCubOoopuYlZaanqqyusPN1dzj6evv8PDv8fHy8vLy8vLy8vLy8fLy8e7s5t3Tw7CfjHxmW09CPk1aW2JobnF0eHp6fHp7WTk2O1+AiYiIk5qfqKuyusLIz9bb3uLo7O/y9ff5+fv8/f7+/u7n39fMw7epncDy9vT29fTy8/Py8/Ly8/Ly8vLy8vLy8vPy7ujh1su3q56Rf3RnXlVPXGVyc3qFhomLiomGf3l1a2Lx9/H28/X09PPz8vLy8vLy8vLy8vLy8vLy8vLy8u/z8/Lx8Ovm3tbPxbuxqaKbk4yKi46VnKexv8XL1d7m6+3v8fHw8PDw7+/v8fDu7OLd1MvCuK+pmpSNi4qLkJWhrLW9yNHe6Onr7vDw8PLy8vLy8vLy8vLz8vHy8vHu7OPbzr+snIl3YlJKPEJXX2Fscnl9gISGh4iMjn43Q3KSkZCSmqSmqrG3vMTL0dbd4eXp7vH09vj6+vv8/f7+///u59/WzMO3qZ3A8vb09vXz8vPz8vPy8vPy8vLy8vLy8vLz8+7o4dbLt62gkoR2a2FaUlxlc3R8h4iLjYyLiIJ8d2xh8fXy9/T29fPz8/Py8vLy8vLy8vLy8vLy8vLy8vLv8vPy8O3n49nQyL2xpp2TiYF7fX+EjZWhrL3Fx8/c5uzu8PHx8PDw8fHx8e/t6+nf2M7Dua6hm46IgX19f4WLmqixucLO2+fp6+/w8fDy8vLy8vLy8vLy8/Lx8fLx7ezi2M29qpeEdWBPSDhFXWJldHuCh4qOkpOYkJmUa42emZecoqWnrra6wcbN09ne4+fs7/L19/n6/Pv8/f7/////7uff1szDtqmdv/L18/b18/Lz8/Lz8vLz8vLy8vLy8vLx8/Lu6OHWy7iuopSGeXFmYFRbY3J1fYiJjI6NjImCfHZrYfH18PXy9vX09PLz8vDy8vLy8vLy8vLy8vLy8vLy8fLz8vDs5t/WzcG0p5mPhX11cXJ0eYONlaG0w8jO2+Xt7/Hx8fDw8PPz8fHv7enn3NXIvLCjl459eHJwcnZ/h5OirLS9ydjl6uzw8fHx8vLy8vLy8vLy8vPy8fHx8e3r4djLuqeVg3NgUUo4TmNobnyEjJGVmp6gpKKfpKWyo5qqrbCvsrzDwczQ1tzh5uvu8fL19/n6+/z9/f7//////+3m39bMw7apnL/y9fP19PPy8/Py8/Ly8/Ly8vLy8vLy8fLy7uji1sy5sKSZioB2bmVXW2NxcnuKiIuNjYuIgnx1a2Hx9vH18/b09PLz8vLw8vLy8vLy8vLy8vLy8vLy8vHy8/Du6+Pd0sa5q5yPg3drZWFgYmhzfo2dq7zJ0d7o7vDy8vHw8PDz8/Py7+zp5tnQwrOlmYuCcWtkYmNmbXSCmau0usbV4uvt8fPy8fLy8vLy8vLy8vLz8vHx8fDs69/WybillIJyX1NHN1Rnb3eCi5SZnqOoq660rKywrK+vsLK3vsHEyczU193i5uvu8fT19/j6+/v8/f7+///////t5t/WzMK2qZy/8vXz9fTz8vPz8vPy8vPy8vLy8vLy8vDx8u7o4tfNu7KonZCGfHRtXF1ibnB6iIeKjIuKhoB6dGth8/fy9vP29fPy8vLx8PLy8vLy8vLy8vLy8vLy8vLx8vPw7unh2s3BsqKThXdsaF9URjw4PEF7nK68ytTh6+/x8vPy8fDw9PPz8u/r6OPUy7usno6AdmtjWlFKRkZJY4amuL/J2Ofs7/L08/Ly8vLy8vLy8vLy8/Lx8fHw7Ore1ci3pJJ/cWBTQzlebHd+ipOdoqetsra9tbq4t8HAvL/BxMfJydDb297i5+vu8fP3+Pn6+/z9/f7+///////+7ebf1svCtqicv/L18/X08/Lz8/Lz8vLz8vLy8vLy8vLw8fHu6eLXzby0qp+TiYF4cmBeYm5veIeGiYqKiYV/eXRrYvT48/fy9vXz8vLy8O/y8vLy8vLy8vLy8vLy8vLy8fLy8O7p4djIu62djX1xZF1WRjMiHB0hU4utwM/a5/Hw8fPz8/Hw8PPz8vHu6uXi0se3ppmJenBmXlNJPjY0NEFvobvGz+Dw7e/z9fTy8vLy8vLy8vLy8vPy8fHx8Ozq3NLHtqORf29mWUM9Z3J/hJKcpqywt73AycS+ysnLzMrHzMzO1djY2+Pm6e3w8/X3+vr7/P3+/v7+/v/////+/u3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8fHx7+vh19HDu7CmnZSKhYBlV2JrcXqFg4eJiIaDfnl0aV309fL49ff18/Ly8/Ly8vLy8vLy8vLy8vLy8vLy8vP08/Lu5tzTxbeoloN1amJeRysXIiUmIzJrvsvc2ebz8/Hx8PDx8fLy8vLw7+zj282+sJ+NfnVrYFJMQjw9PkFAR5vM1Nrm7/Lx8fHx8vHy8vLy8vLy8vLy8vLy8O/s6tvPwrOhkoN5ZlZLSWR2f4qWoqyzusDEyczNz9DQ0dHS1NXX2tzf4+Xq7O/y9ff4+fz8/P39/v7+///////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vHx8e/r4tjRxb2yq6KZkIuIaFZgaW13goKGiIeFgn14c2hc9Pbz+fX39fPy8vPy8vLy8vLy8vLy8vLy8vLy8vLz8/Pw7ebb08O1pZOBc2lgXEctGSMnKSUuYMTT4uHp9fTy8fHw8fHy8vLy8e7s49vLva6di31zaV1RS0M9QEFEQkiXz9vf6/Dz8fHx8PLx8vLy8vLy8vLy8vLy8vDv7Orb0cO0opSHe2lbT05neIKNm6axuMDGys/T1dfY2NjZ2dvc3uDj5ejr7e/y9ff5+vr8/P39/v7+////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLx8fHx6+Pa1cfCubCqo5yXlG5WXGZqdH9+goSDgn96dnBnW/X39Pr19/Xz8vLz8vLy8vLy8vLy8vLy8vLy8vLy8vPz8Ozl2tDAsaKQfnBnX1xIMBwjKy4pKU/L3evs7PTz8vHx8PDx8vLy8vHu6+Layrusm4h6cWdeUEpEQUZGSUZJktTj5fLx8vLx8fHw8vLy8vLy8vLy8vLy8vLw7+zq3dHFtqaXi4FxZFlYanuGkp+rtb3GzNHW29zf4ODg4eHj5Obo6ezu8PLz9fj6+/z8/f3+/v7//////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy7/Hx8ezl3djMyL+4sqynoqF0VFllaHB7e36BgH99eHRwZFr2+PP48/f18/Ly8/Ly8vLy8vLy8vLy8vLy8vLy8vLz8vDs5djOvK+ejHxvZl5bSDEiJC0xLCk/0+bw9e/08/Py8vDw8fLx8vLw7uvh2ce6qpmGeXBnXlBJRUVKTE1ITpHb6uj39PLy8/Lx8fLz8vLy8vLy8vLy8vLy8O/s6t3Rx7monJGGfHFmY2x7h5Ohrbe/yNDV29/h5OXm5ubn6Onr7e7v8fP29/j6+/z9/f7+/v/////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vDx8fDs5uDc0MzHwLu4s6+weVJWY2hud3d6fHx7eXVxbWNa+Pnz9fL39fPy8vPy8vLy8vLy8vLy8vLy8vLy8vLx8vHu6+PXzbqtm4t5b2ZfW0YyJyYvMy8tNdzr8/fw8vPz8fHx8fLy8fLy8O7q4NjGuKeWhnhvZ2FTSkdKUFBQSlOU4+7r9/Xy8vLy8vLz8/Ly8vLy8vLy8vLy8vDv7Orc08i7raGWjoR7c29te4eVoa24wMrS2N7h5Ofp6uvr7Ozu8PHy8/T2+Pn6+/z9/f3/////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLw7/Hw7eni39PRzMnFw8C/wIBPUGBmaG9ydXh4d3VybmpgWPj58vXx9/Xz8vLz8vLy8vLy8vLy8vLy8vLy8vLy8fHx7uni1su4q5uJeW9nYFtHNC8pMTQxNDXk7vL28PLz8/Dx8PHy8/Hy8vDu6d/WxbemlYN5cGlnVk5KT1ZWVVFZm+vx7vT08/Px8vHz8/Py8vLy8vLy8vLy8vLw7+zq39TKv7GnnpWMhYF7bXqHl6GtuMDK0tnf4+bq7e7v8PDx8vT29vf4+fr7+/z9/f7+/////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8PDx8O/q5ODY19LRz87NzM+HTEpaYWNoa29xcXFwbGlmXlb4+vL28ff18/Ly8/Ly8vLy8vLy8vLy8vLy8vLy8vDx8e3o4dXKtqiYiHlvaGNeSDc3LTI1Njk56+/y9PLx8/Ly8PHx8fPx8vLw7ene1sO2pZSDeXFqbVpRT1VdXFxYX6Lw9PLy8fPz8vHy8vL08vLy8vLy8vLy8vLy8O/s6uDWzMK1raWdlZCNhW51hJefq7a+yNHY3uPm6+7w8vPz9PX3+fn6+/z8/P39/v7////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8u/w8fDv6+bi29nY19XV1dXZi0pGV1xeYWlsbm9ubWpnZVtW+Pvz9vL39fPy8vPy8vLy8vLy8vLy8vLy8vLy8vLw8fHt6OHTybWnmIh4b2tjYUg6PDAzNTc+PO7x8/T08/Ly8fDx8fHz8fLy8O3p3tXCtaOTgnhxanBdU1FYYWFfYGKn8fb28O/y8vLy8vLz9PLy8vLy8vLy8vLy8vDv7Orh187FurKooZyal4ptc4GUnamzvMbO1dvi5eru8PLz9PT2+Pn6+/z9/f39/v7/////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLv7+/v7evp6OLi4eLl5+jp0pFTQE1aX2NdXWJue09mZWNaT/r49Pby9vXz8vPz8vLy8vLy8vLy8vLy8vLy8vLy8fHw7Ofg1Mm1qZiJe3JsaWVNOjo5MzU/OTrv6/jz9fTz8/Ly8/Ly8fHy8/Dt593SwrSklYd6c29ucE9UXGRiZGJjpu7w8PPx8vLy8vPz8vHy8vLy8vLy8vLx8fHx8e/t4tzSysG7tLCtpaSlZXKChp6nsbnDzdTd4OTp7vDx8vP3+fr7/Pz9/v///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8e/v7+7r6ejm5eXm6evt7v/56uzz8/Du//bw6sxpX1xfVkz59/T48vb18/Lz8/Ly8vLy8vLy8vLy8vLy8vLy8vHx8Ozn4NTJtamYiX50bW1pSTY+QTUzPj0+8+738vb28/Ty8/Py8vDx8vPw7efd0sK0pJWIe3RxcXNRV19mZGZkZajw8vL08/Py8vPz8/Pw8vLy8vLy8vLy8fHx8vHv7ePd1MzFv7q2rKynqmFvfIaQm6Stt7/J0tzg5uvu8PLz9/j6+/z9/v/////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vHx7+/u7Orp6Ojp6u3v8fLu7Ozx9/jy7f739vnTZFxfWlNI+fb0+PP29fPy8/Py8vLy8vLy8vLy8vLy8vLy8vLx8fDs5+DUybWpmYp/dXBwck45Qkc7NDk9QPfy+fD09fT08/P08/Hw8fLz8O3n3dLAtKSWiX93dXV4VVxiamhpZ2ep8vXy9vT08/Pz9PTx8fLy8vLy8vLy8vHx8vLx7+7k39jRzcjEwL/Ew8FkbHmIkJumr7nBytPW2+Lo6+7x8/b4+vv8/f7/////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLx8fHv7u3s6uvr7O3t7/Hy+PTu7vX49e7x7evsyF5YWlZPRvj29ff19vXz8vPz8vLy8vLy8vLy8vLy8vLy8vLy8fHw7Ofg1Mm1qZmMgXh1cnNVPkBJRDs6PD/48vry8vH08/T09PPy8PHy8/Dt593SwLWllouAe3l5e1heZWpobGhqq/T19Pb18/P09PX08vHy8vLy8vLy8vLx8fLy8fDu5OLd2NPQzs3NzcrLX2dxeoSPnKavtbzG0dbe5ens8PP19/n7/P3+/////////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8vHx8fDu7e3t7e3v7/Hy8/by7u3t7u/v9PPx78hXT0lVTEX49/X39Pb18/Lz8/Ly8vLy8vLy8vLy8vLy8vLy8vHx8Ozn4NTJtKmajYN7d3dzVT4+R0RBQEBB9/H78vHt9fTz8/Pz8vHx8vPw7efd0sG1pZmMg358fX1bYWdsam5paazz9fT29PP08/P08/Lx8vLy8vLy8vLy8fHy8vLw7+bk4N3a2tjY19jd2FpdbXh+i5eirLK5wczS2uHl6e7x8/X4+/z9/v/////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vLy8fHx8O7u7/Dx8vHy9PX28/Hz8/Hx9O3w8fLGUEhJUUpC+Pf09vT29fPy8/Py8vLy8vLy8vLy8vLy8vLy8vLx8fDs5+DUybSpmo2Efnl4e1Y9QEY+OT9FQ/bw+vLy8PX09PPz8vDv8fLz8O3n3dLBtaWZjYWAf3+AW2FnbWtuamqs9Pby9vP09PP09PPx7/Ly8vLy8vLy8vHx8vPy8O/n5eTi4eHi4u7p59thXWFkeYSRnKeusrrEy9Xc4OXq7vHz9/r8/f7/////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLy8vLx8fHx7/Lw8vLy8/T07fDz9/r48+/w9vb3ylFOUE1GP/b29PX09vXz8vPz8vLy8vLy8vLy8vLy8vLy8vLy8fHw7Ofg1Mm1qZqOhn56en5ZP0FFPDc7QUH18Pry9PP18/Tz8/Lw7/Hy8/Dt593SwLSlmY2FgYCAg15iaG1sb2lrrfT18/X09PLz9PTz8O/y8vLy8vLy8vHx8fLz8vHv6Ofo5+fo6uvx6+//2PP59uzy9vf28Ovru8PN1drg5uvv8vb5+/z+/////////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8vLy8vHx8fHx8fHx8fLy8u/09e7p5+jp5O7t7MFMSEJKQz319fP19Pb18/Lz8/Ly8vLy8vLy8vLy8vLy8vLy8vHx8Ozn4NTJtambjoZ+fHx5W0JAR0Q8ODY69PH68fPz8/Pz8/Py7+/x8vPw7efd0sG0pZmNhYGAg4NfZGlubXBqbK719fT19PPy8/P08/Du8vLy8vLy8vLx8fHy8/Lx8Ovr6urq7O3v9PPx/+b59vXt8vPz8erj4bS9yNDW3OPo7vH1+fv8/f7////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vLy8vLy8vLy8fHx8PHx8vHw8fHu6OHd2t7d39+6UEVER0E+9/fz9fH19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+flJARkZHRDYzLvjz8vP09fT09PPz8vLw8fLy8O3n3dPBtaeajoaBgICHXGRqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLw8O3s7e/w8fT29fHw7/Hw8/Lx7uzj0curtb/J0tnf5unv9Pb4+/7+////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLy8vLy8vLy8vDx8fDx8vLy8fHw6uLb1dLV09XVsklBP0Q/PPX28vTy9fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn5SQEZGR0U3My748/Lz9PX09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCAh1xkam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy8PDt7e7w8fLz9fTx8PDx8fPu7Ofj18W/prG7xc/W3OPo7vP2+Pv+/v///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8vLy8vLy8vLw8fHy8fHx8vPx7OPaz8nFx8XIxqhBOzxCPDv09vHz8vX08/Ly8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH5+U0JHRUdGOjQu+PPy8/T19PT08/Py8vDx8vLw7efd08G1p5qOhoGAgIdcZGptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8vDw7u7v8fLz8fTz8vDy8vH17ejg2cq3sp+qtb/K0djg5+3y9fj7/f7////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vLy8vLy8vLy8PDx8fLw8fH07uXbzcO8t7q5uruePTo9Pzw58/bx8/L19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+flNDSEVHRzw0L/jz8fP09vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgICHXGRqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLw8O7v8PLz9PDx8vHz8/Ty8+rh1sy8qaWYo7C7xs7W3+Xr8fX3+/3+////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLy8vLy8vLy8u/w8fHy8vHw8Ojd0MO4sa2vrq+wljg5PEA7OfP28/b09fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn5UQ0hFR0g9NS/48/Hy9Pb09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCAh1xkam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy8fHv8PHz8/Tw8fLy8/Tz8u3g1cm+rZuYkp+st8PL1N7j6fD09/v9/f///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8vLy8vLy8vLv7/Dx8fPy8uri1ca7saqnpaSmpo41ODxAOjr09vP29PX08/Ly8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH5+VERJRkdHPDYw+fPx8vT29PT08/Py8vDx8vLw7efd08G1p5qOhoGAgIdcZGptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8vHx8PDy8/P08vLz8fLy8O3k1ci7saCOjo2aqLS/yNLc4ejv8/f7/f3////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vLy8vLy8vLy7u/y8vLy8fHm3s/AtKulo6CgoaGLNTo9Pzs58/Xy9fP19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+f1RESUdHRzs2MPnz8fL09vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgICHXGRqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLy8vDx8vPz8/P08/Hv7erl2Mq7rqSUhIWJlqSwvMXP2uDn7vP2+v39////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLy8vLy8vLy8u7x8vLy8vHw5NrLu7Goo6Cgn5+gizY7Pj46OPP18fTy9fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn9URElHR0Y5NzD58/Hy9Pb09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCAh1xkam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy8vLw8fLz8vP09fPw7erk4M6+r6Oaint8hZOhrbnCzdff5u7y9vr9/f///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8vLy8vLy8vLw8PDx8vHw7+TbzL6ypZ6dnJmdnYo3Nz09Ojf09vH38vX08/Ly8vHy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH6CUD9LRj8+Ojw28/P19/Xw9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgIdcZGptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8vHx8fLz9PT07vHz8e3k2M3AsqOUjH5xc4GPnqu3wszX3uXt8vb6/f3////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vLy8vLy8vLy8fHx8fLy8O/l3M2/s6egnpyZnZ2JNjY8PTo39Pbx9/L19PPy8vLx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+gVA9SEU/QDw+N/Pz9ff18fT09PPz8vLw8fLy8O3n3dPBtaeajoaBgICHXGRqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLx8fHy8vPz9PDy8u/p39HFuKmajYR2aWyAjZyqt8HM197l7fL2+v39////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLy8vLy8vLy8vHx8fLy8vDv5dvOwLKnoJ6cmZ2ciTU2Oz06N/P28ffy9fTz8vLy8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58foBPOkZDQEI/Qjr08vT39fH09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCAh1xkam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy8fHx8fLy8vLx9PLr49bGu66fkIN7bmJkfYuaqLXAy9be5ezx9vr9/f///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8vLy8vLy8vLy8fHy8vLw7+Tazb+xpp6dnJmdnYk1Njs8OTbz9vH38vX08/Ly8vHy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH6ATThEQ0FFREc99fL09vXx9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgIdcZGptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8vHx8fHx8fHx8/Pw6N7Rv7OomYp9dWldX3uJmKa0v8rV3eTs8fX6/f7////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vLy8vLy8vLy8vHx8vLx8O7k2sy+saSenJyZnZ2JNjY8PDk28/bx9/L19PPy8vLx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+gU85RERDSklLQPby8/b18vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgICHXGRqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLx8fHx8fHx8fLy7+fdzr2xpZWHenNmWl56iJels77J1N3k7PH1+v3+////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLy8vLy8vLy8vHx8fHx8e/t49nMvrCln5ybmJyciTY3PDs5NvP28ffy9fTz8vLy8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58foNRO0dIR05MTUH38vP29fL09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCAh1xkam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy8fHx8fHx8fHw8O7n3c6+saSUhXlxZFldeoiXpbK9ydTc4+vx9fr9/v///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8vLy8vLy8vLx8fDx8fDu7eHXyryuopuamZebm4g1Njw7ODXy9fH38/X08/Ly8vHy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH6FUz9MS0xSUU5C9/Lz9/Xx9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgIdcZGptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8vHx8fHx8fHx7u/s5t3Pv7KklIV4cWZbXXqIl6WyvcjT3OPr8PX6/f7////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vLy8vLy8vLy8fDw8PHw7uze1MW5qp+Yl5iVmZqHNDU7Ozg18vXx9/P19PPy8vLx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+hlVBTk9OVFNOQvfy8/f18fT09PPz8vLw8fLy8O3n3dPBtaeajoaBgICHXGRqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLx8fHx8vLy8uzu6+bdzr+zp5iIe3NnXF97iJilsr3I09zj6/D1+v3+////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLx8vLy8PDv7+3u8O7r6uTg1cu7rJ+TjY2MioySfzM0ODs4N/P59vT09fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58foBZR09NU1dNT0P18/T09fD09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCBh1tjam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy8/Pz8vLy8vLv7ejh1se6sKOTgndvYlVee4mYprO+ydTb5Ovv9vr8/v///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8fHy8vDv7+/r7ezq5+Tf2c7Ds6WVioWDgoKGjH00Njo6ODbz+fb09PX08/Ly8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH6BV0dNTVFVTE9D9fP09PXx9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgYdbY2ptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8vLx8fDw8PDw7uzl3tLEtaycjX1zbV9TW3uImKWzvsnU2+Tr7/b6/P7////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vHx8vLw7+7u6uro5eHd1c7AtaaXiH54dnZ4fYV3MTU6Ojg28vj19PP19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+gVhHTU1RVUxPQ/Xz9PT18fT09PPz8vLw8fLy8O3n3dPBtaeajoaBgIGHW2NqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLx8PDv7ezs6+nn4NfMvK2jkYN2a2VaUFh6iJels77J1Nzl6/D2+vz+////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLx8fLy7+7t7ebm5N/Z08zDs6aXiHxxa2prbXN8czI1Ojs5N/L29PTz9fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn5WRkxNUFRLTkP18/T09fH09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCBh1tjam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy8fDt7Ovq5uXh3tbNwLCflYZ4amFdU0lTeoiXpbO+ydTc5evw9vr8/v///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8fHy8u/u7Ovl4+DZ0srAt6WZiHlsY15cXV5oc243O0A+PTry9fT08/X08/Ly8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH58VUVNTVFUS05C9fP09Pbx9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgYdbY2ptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8vHu7Orn5eLf2dTMwbKhkYd3a15XVEtETnuJmKa0v8rV3eXs8Pf6/P7////////////////////////////////t5t/Wy8K1p5zA8Pb09PXy9fX08/Px8fDy8vLy8vLy8vHx8vLv7evq4uHc08vBtKuai3lrX1RPTlNUYGxsO0BFREM+8/Xz8/P19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+fFVFTU9SVUxOQvXz9fT28vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgIGHW2NqbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLy8vLy8vLv7erm5ODb2M/JwbSjk4J3aV1TTEtEP0t9i5qotb/L1d3m7PD3+vz+////////////////////////////////7ebf1svCtaecwPD29PT18vX19PPz8fHw8vLy8vLy8vLx8fLy7+3r6d/d1szCt6idi31rXVJJRUJKS1llaT1ESkpIQfT08/Pz9fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn1VR05OUVJITkL18/X19vL09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCBh1tjam10cnBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8vLy8vLy7uvo4+Db1dHDvbKllYNzaFxSSURGQD1Lf42cqbbAy9bd5uzx9/r8/v///////////////////////////////+3m39bLwrWnnMDw9vT09fL19fTz8/Hx8PLy8vLy8vLy8fHy8u/s6une29LIvK+glX5xX1NKRD8/Q0JSYWlBSlFOTET19PLz8/X08/Ly8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH5+VkhQT1FRR05C9fP19fby9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgYdbY2ptdHJwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vLy8vLy8u3q5OHe19LMurWomop4Zl5VS0I/Qj88SoGOnaq3wczW3ubt8ff6/P7////////////////////////////////t5t/Wy8G0ppu/8vbz9fTz9fX08/Px8fDy8vLy8vLy8vDy8fHx7ejh2tLJv6+fj4BvXEtDQT06Nj06RlxfUUpPTUxO7vb09PH19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+g1ZFT0tGSENMRPDx8fL68vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgIKHWmJpbXRycG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vHx8vLy8fDp5+Xg1s/GvbSpmox4ZVdMREM9PTs9PVCEk6CsucTO1t/l7fP3+vz+////////////////////////////////7ebf1svBtKabv/L28/X08/X19PPz8fHw8vLy8vLy8vLv8vHx8O3n4NfNxbinloZ4YlFBPT8/PDxBPEZYXlRNUVJPT+/19PTy9fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58foVWQEpHRkpITkXz8vPy+vD09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCBh1piaW10cXBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLx8fLy8vHw6OXj3NPLwLekmIl7aFhLQ0A/PD05OjpOh5WjrrvG0Njg5u3z9/r8/v///////////////////////////////+3m39bLwbSmm7/y9vP19PP19fTz8/Hx8PLy8vLy8vLy7/Lx8e/s5N7Qx7uvnYt5a15OPz0/QD89SUJIWF9WUFJXU1Hv9fP08vX08/Ly8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH6FUTtCREVPT09H9fT08vfv9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgYdaYmltdHFwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8fHy8vLx8Ofk39fLwresmYx7a1lKQjw7Ozg7OTc4Toyap7K+ydPb4ufu9Pf6/f7////////////////////////////////t5t/Wy8G0ppu/8vbz9fTz9fX08/Px8fDy8vLy8vLy8vHy8/Dv6uLbyr+zpZF/bF5PQDUzNjg4Njk3Pk9XVFNYWVRS7/Xz9PL19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+g043QURIU1RQSPj19PL37/T09PPz8vLw8fLy8O3n3dPBtaeajoaBgIGHWmJpbXNxcG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLx8fLx8O/m4dzTxrquoYx/bV9RR0FAPz48Pjs7PFSQnqu1wczV3OPo7/T4+v3/////////////////////////////////7ebf1svBtKabv/L28/X08/X19PPz8fHw8vLy8vLy8vLx8vPw7eff18W7rZ2JdWNTQzoyNDtCRUZLS1JaW1VTV1dUUvD29PTy9fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58foNNOEVJS1JRTkj49fTy9/D09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCBhllhaG1zcXBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8fHy8fDv5d/Yzb+xo5SCc2FSSEA7PD48Oz48PD9WlaOvucTN1t3l6vD1+Pv9/////////////////////////////////+3m39bLwbSmm7/y9vP19PP19fTz8/Hx8PLy8vLy8vLy8PLz8O3m3NTDt6iZhXBeTzs2MTM7RElLTE9XW1hTVVpWU1Lw9vT08vX08/Ly8/Hy8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH6DTjxMTUlNS0tF9fT08vjw9PT08/Py8vDx8vLw7efd08G1p5qOhoGAgYZZYWhsc3Fwb67z9PL29PP08/P08/Dv8vLy8vLy8vLy8vHx8fHv7uTe1cm5qpmKfW5YSEA7ODk4Ojg5Njg5S5yptb3H0Njf5+vx9vn7/f/////////////////////////////////t5t/Wy8G0ppu/8vbz9fTz9fX08/Px8fDy8vLy8vLy8vDz8/Ds5dvRwrWml4FuXE09OjY3PENJTEpQV1pZVlpgV1RT8fb19fP19PPy8vPx8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+glA/Tk5JSUZIQvLy8/H68vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgIGGWWFobHNxcG+u8/Ty9vTz9PPz9PPw7/Ly8vLy8vLy8vLx8fHx7+7j3NDEs6ORgW9gSj9AQkVJUVleZWt2eYujsLvDzNTc4unt8vb5+/3/////////////////////////////////7ebf1svBtKabv/L28/X08/X19PPz8fHw8vLy8vLy8vLx8/Pw6+TZ0MC1pZWAbVtNPz08PUFLUlVYXGFhXl1fZFlVU/H29fb09fTz8vLz8fLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn9OP05OSElGRUHw8fHx+vX09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCAhllhaGxzcXBvrvP08vb08/Tz8/Tz8O/y8vLy8vLy8vLy8fHx8O/u4NjOwbGgjn1mV0I5QEdNVF5ob3iAjI+dqLS/x9DX3uXp7fP3+fv9/////////////////////////////////+3m4NbLwbSnmr/w9vPz9fL19fTz8/Hx8PLy8vLy8vLy8vPy8Ovj186+saKQe2lZTEI0Nz5KTFFbX2BkZWVkYV1fVlHw+PPz7vb18/Lz8/Ly8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH6CVD5DRUtORkI8+PTx9PT29PT08/Py8vDx8vLw7efd08G1p5qOhoGAgoZZYGdsc3Jvbq7y9PL29fP08/P08/Dv8vLy8vLy8vLy8vLy8O/s6uLXyryqmYp8ZFJJPUVLVl1mcHmCjZWep7K7xs/V3OPp7fH2+fr8/v/////////////////////////////////t5uDWy8G0p5q/8Pbz8/Xy9fX08/Px8fDy8vLy8vLy8vLz8vDr49fOvrGhkHppWUxGODtBTU9VX19jZmdnaWdjYlxW8/n09fL29fPy8/Py8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+gFQ+RERKTUNCPPj08fT09vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgIGGWWBnbHNxb26u8vTy9vXz9PPz9PPw7/Ly8vLy8vLy8vLy8vDv7Orh1sq7qZiIe2RSSj5JUFxkb3mCi5afqLG5wcvU2d/l6u7x9vn6/P7/////////////////////////////////7ebg1svBtKeav/D28/P18vX19PPz8fHw8vLy8vLy8vLy8/Lw6+PXzbyvno96a1tOQTQ5QlFTWWJiZmlqaWlnZGBbVfD19Pb09vXz8vPz8vLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn5UQEVER0o/Qjz49PH09Pb09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCBhlhgZ2xzcW9urvL08vb18/Tz8/Tz8O/y8vLy8vLy8vLy8vLw7+zq4NTIuKeWh3ljUks/T1dlbXiBi5SfqLC5wsnT2t/j6O3w8/f6+/z+/////////////////////////////////+3m4NbLwbSnmr/w9vPz9fL19fTz8/Hx8PLy8vLy8vLy8vPy8Orj1s25rp2MfGtbUUY2ODxJTVdkXmNoaWtrZ2NcWFPu9PP18/b18/Lz8/Ly8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH59UkBDQURIPkI8+PTx9PT29PT08/Py8vDx8vLw7efd08G1p5qOhoGAgYZYYGdrc3Fvbq7y9PL29fP08/P08/Dv8vLy8vLy8vLy8vLy8O/s6t/Ux7aklIN3Y1FKP1RdbHR/iZOcp6+4wcrQ2d/j5+zv8vT4+vv8/v/////////////////////////////////t5uDWy8G0p5q/8Pbz8/Xy9fX08/Px8fDy8vLy8vLy8vLz8vDq4tbNuKydjHxsX1NMQENJU1BSWltfZGZlZWNgW1ZU7/bz9fP29fPy8/Py8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+flI9QD5DRz5CPPj08fT09vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgIGGWF9ma3Nxb26u8vTy9vXz9PPz9PPw7/Ly8vLy8vLy8vLy8vDv7Ord08S1o5GCdWNQSj5ZYXJ6h5GbpbC4wMnQ1d3k5+vv8fT2+fv8/f7/////////////////////////////////7ebg1svBtKeav/D28/P18vX19PPz8fHw8vLy8vLy8vLy8/Lw6uLWzLeqnI19bmJWS0RPWGRfXWJbXmBhYGFhX1dRT+739PTz9vXz8vPz8vLy8vLy8vLy8vLy8vLy8vLy8vLx7Ofg1Mi4rJyPhH58fn5TPD4+Qkc+Qjz49PH09Pb09PTz8/Ly8PHy8vDt593TwbWnmo6GgYCBhlhfZmtycW9urvL08vb18/Tz8/Tz8O/y8vLy8vLy8vLy8vLw7+zq3NDEtKKRg3VlUUs+XmZ4f42Xoau2vsbO1tvi6Ovu8fP3+Pr7/P3+/v///////////////////////////////+3m4NbLwbSnmr/w9vPz9fL19fTz8/Hx8PLy8vLy8vLy8vPy8Ori1cy4q52OfnBkWFFHT1lnanF8dndzbmljXllZT03v+fT08/b18/Lz8/Ly8vLy8vLy8vLy8vLy8vLy8vLy8ezn4NTIuKycj4R+fH5/UjxAQERJP0I8+PTx9PT29PT08/Py8vDx8vLw7efd08G1p5qOhoGAgYVYX2ZrcnFvbq7y9PL29fP08/P08/Dv8vLy8vLy8vLy8vLy8O/s6tzQxLShkoJ2Z1JNP2Rsf4aTnaiyvMTM1dzh5+zv8vT1+fn6/P3+/v7////////////////////////////////t5uDWy8G0p5q/8Pbz8/Xy9fX08/Px8fDy8vLy8vLy8vLz8vDq4tXLt6udjn9xZVtQSVVhbm5ye36ChIOAfHVwZFhT9Pvz8fL29fPy8/Py8vLy8vLy8vLy8vLy8vLy8vLy8vHs5+DUyLisnI+Efnx+gFM8QUJITEFCPPj08fT09vT09PPz8vLw8fLy8O3n3dPBtaeajoaBgICFWF9ma3Jwb26u8vTy9vXz9PPz9PPw7/Ly8vLy8vLy8vLy8vDv7Orc0MO0opKDdmhUTkFncIOLm6WvucTM1Nzh5evv8vT19/r6+/z9/v7+////////////////////////////////7ebf1svBs6Wav/D28/X08vTz8vHw8PDu8vLy8vLy8vLw8fHt5+HVy7eqnZGAdWheW1FWXWpudX6DhIWEhYN+eHVqYfH28ff09PX09fX08vHx8fDw8PDw8PLy8vLy8vLy7vHv7Obf0smzqZuPhH57e4JMN0REQEZGQz368/Hz9PT09PTz8vLv7/Ly8u/t59zTv7Sjl42Efn19hFdgZ2txbm1trvLy8fX09fX19PX08/Lw8PDw8PDw8PPy8/Px8O3r28/Cs6GShHduXlJMbHuFkJ2qtr7I0Njf5urv8/b4+fn7+/z9/v///////////////////////////////////+3m39bLwbOlmb7y9fP19PP19PPx8fHx7/Hx8fHx8fHx8PPy8Ori1sy5rZ+Sg3drYltSWF9tcHiChIaGhoaFf3l4bGLy9vH28/X09fb29vLw8vHx8PDw8PHx8fHx8fHx8fDy8e3n39TJtaudkYd/e3yBSzdEREFHR0M9+fLx8/Pz9vT08/Py8O/y8vLx7ujc1MC1ppiNhICAfoVYYGdrcW5sbK3y8vL19Pb19fX19fLx8fHx8fHx8fHy8vHx8e7r6tvQw7SklYh7bl9TTm19h5SgrbnBy9Pb4uns8fX4+fr7+/z8/f7////////////////////////////////////t5t/Wy8GzpZm98fXy9fTz9fPz8fPx8fDz8/Pz8/Pz8/Hy8u/p4dbMuK6hlIZ5bmRcU1phcHR8hoaIiYmJh4F7em5k8/bx9vP09PT19PTx7/Tz8/Ly8vLy8/Pz8/Pz8/Px8vLu6ODTyrasnpKHf3x9gUs3Q0NBR0hCPPj08PPz9vb19PPz8u/v8vPy8e3n3tTBtqeajoaBgH+FWGBna3FvbGut8vPy9PT09PP09PPw7/Pz8/Pz8/Pz8/Pz8/Lx7uzb0cO1ppeJfm9hVlFwgIuYpbK9xs/Y3+bt8PX4+vv8/Pz8/f7+////////////////////////////////////7ebf1svBs6WZv/H38/X08/Xz8/Pz8vHw8/Pz8/Pz8/Px8vLv6uHWzbquoZWFem9jXVRbY3J2foeIioyMi4iDfXxvZfP38ff08fLz8vPy8O708/Py8vLz8/Pz8/Pz8/Pz8fLx7ujg08m2rJ2Rhn59fIJMN0NDQEdIQzz49PHz9fb19PPy8vHw7/Ly8vHt593Uw7emmo+GgH9/hlhgZ2txb25srfL08vX18vLy8vPw7+7z8/Pz8/Pz8/Tz8/Py8e/t3dHFtqWXin5wY1lUcoKOnKm2wcrT3OPq8PP3+/z9/f39/f7+/////////////////////////////////////+3m39bLwbOlmsDz9/X29vX29vT09PLy8PHx8fHx8fHx8fPy8Ori1s27rqKThXhtY15VXGRzdn6HiYyOjo2KhH98b2Xz9/H39fPy8/Tz8vDu8/Ly8fHx8fLx8fHx8fHx8fHy8e3n4NTJtqydkod/fX2CTDdEQ0BGRkQ++/Tx9fX29vX19fXz8fDy8vLx7ujc08G1p5qOhoGAfoVYYGdrcW5ubq709PP39fTz8/T08/Du8vLy8vLy8vLy8vHx8e7r6d3SxrWml4t/cmVaVXSEkJ6ruMTM1t7m7fL1+fz9/f39/v7+///////////////////////////////////////t5t/Wy8GzpZzA8/f19fX09/f19PXy8vLv7+/v7+/v7+/w8O3o39TKuK6gk4N3a2JdVVxkc3d+h4uOkI+NioWAfG9k8/bx9vT09fT19fXx7/Ly8fHw8fHx7+/v7+/v7+/v8O/s5t3RyLWqnZGHf3x9gkw4RERARkZFPvr08fT09/f39fX18/Lw7/Dv7url29G/tKWYjYSAgH2EV2Bna3Fub26u9PTz9vT39vb19fTx8PHx8fHx8fHx7+/v8O7t6+nc0MK0pJaKfnFkWlV1hpKfrbrFztfg5+7z9vr9/v7+/v//////////////////////////////////////////7ebf1svBs6Wcv/L38/Tz8vb08vLx8e7u6+vr6+vr6+vp6ujm4dnNxLOonI6Ac2hdXFRbZHR4gImMj5CPjYqGgX1wZPL17/Xy9PT09PTz8u/s6+vq6urr6+vr6+vr6+vr5+jo5N7Wy8GuppiLgnt4eX9KN0VFQkdHRD768/Hz9PX09PLy8vDw7efo6ufl39TKua+gk4mAe3p7gldgZ2twbW5urvPz8fT09fb09PTy8e7r6+vr6+vr6+vr6enp6OXj1cq8r56QhHlvYVdUdoeToK67x8/Z4enw9Pf7/v///////////////////////////////////////////////+3m39bLwbOlm8Dx9vLy8vDy8O7t7ezp6eDg4ODg4ODg4OPh39rSxr2to5aJem9lWltTW2V0eYGKjI+Rj4yKhoJ+cWTy9O7z8PLy8vLz8fDt4uLh4eHh4eHg4ODg4ODg4ODh4d7Xz8S5qp+Shn12dHV9STZFRkNISEU9+fLw8fPz8PDu7u7s7Ovh4eHg3tjMw7OomoyCenZ1eYFWYGhrcG1vba3y8u/z8vPz8fHx8O/s4eHh4eHh4eHh4eDh4d7c2s7CtaeZi391bV9VU3aIlaGvvMfQ2eLp8PX4/P/////////////////////////////////////////////////s5t/WysCzppfA8vj08PPx+PPu6OLb19PPz8/Pz8/Pz9DQzs3IwLSumpGGeXBmXFZOTVpldHeBiYqNj4+Oi4V/d3Bj+fP48/P29fXz8Ojf19LQz8/Q0NDPzs7Ozs7Ozs7Qz87LxbyvqJiOg3lxbGpsalM8P0VESUtGQPnz9fT08/f28u7p4NjR0tDPzsrDuLCil4uAdnBtbG5zXV1maG90bnCy9fny+PD39fTx6+LY09PT0tLS0tLSz8/Oz87LyMa3rqKWjH50bFxUTkp6h5aesLzH0Nri6e/2+Pz+////////////////////////////////////////////////7Obg18vBtaeZwPL38e7w7uzo4dnQysTBvb29vb29vb2+vby6tq6jm42FeG9kW1NNSklaZnN4foiKjY+PjouFf3lzZPjy9/Hw8e7q5uDWzMS/vr29vb69vbu7u7u7u7u7vb26ubSrn5iKg3dtZmFiZGZSPD9FRElLRD/38fLx7+zu6+Xg2c7Evb++vby5saeflYp+dGtlY2Robl1fampwdW5vsPP28Pfv7+3o4trRxr+/vr69vb29vr29u7y8ube1qaGUiH5zaWFWUEpHe4aXoLC8x9Da4+nv9vj8/v///////////////////////////////////////////////+3n4NfMwrapmsDw9u/r6+ff2dDHvbKsqKampqampqamp6ampaCYjod6c2hfV1BKRUZHWmd0eH6Hi42Pj46MhoB6dGb28PXu6+nl3tbMwbatqKelpaampqWmpqampqampqalpaSeloyFd3FmX1hUVVhfTjw/RkRHSUVB9vP18uvn497VzMK4raaop6elpJ2Ti4B2bWNdWFZYX2RfYWxscnRxc6/t8uzy6eXh2tHHvLGppaSko6Ojo6SnpqampqWinpSMgnVsY1tUTUhGQnuHmKCwvMjQ2+Pp7/b4/P7////////////////////////////////////////////////t5+DXzMO3qpzC7/Tr5OHdzMa9saaelZCPj4+Pj4+Pj4+Pko+Mg3p1Z2JaUkxHQz9DR1pmdXl/iIuOkJCPjIeBfHVq8/Dx6OTd1s3CuKufmpGQj4+PkI+Pj4+Pj4+Pj4+Pj4+OioJ5dGVgV1FNS01QVkw9QEdFR0lFRPHx8uzj3NHLwberoZeQj5GRkY6Jf3htZFxVUE5NUFVbX2NtbnN1c3ev5+vl6N7X0ci9saeclZCQj4+Ojo+PkpKQkJCOjIp9d29jXVVOSkdBQT58h5qhsb3I0dvk6vD2+Pz+////////////////////////////////////////////////7Obg18zEuKyfwe3u5dnTzLevpZqOhX55eHh4eHh4eHh3d3l4dW1mYlhTTUhFQT49QkdcaHR5gImNj5GRkI2Ignt3b/Hs697XysK3qZ6SiYJ7enh4eXl5eHh4eHh4eHh4eXl4d3FsZF5XUUtHRUNGSE9JP0JJR0hLQ0Tn5+be08u9t6uekYd/eXl4eHh2cWhjXFZOSUZFRkdMUmFlb3B1d3V6rd/h29rQxb2xpJqNhH97enp5eXl5enl4eHh4d3V0aWRdVU9LRUNDPT47f4mbobK/ytLc5Ovw9vj8/v///////////////////////////////////////////////+3n4NfNxbquob3k5djKv7SinJGFenBoZWRkZGRkZGRkYWNkZGFbVVFLSURBPj07OkBIXmp2e4KKjpGSkpGOiYR9eW/p4d7MxLiwoZKGfHNuZmVkZGVlZWRkZGRkZGRkZGRlZWNfWVJPSkVAPz4+P0NGR0BFTUpKTEdF29jUysC3q6KVh3xyamZkY2RkY11YU01HQ0A/Pj9BRktkaHN1eHt1e6fS08vIvrKpnI2Cd29raGhnZ2dnZ2dlZGRkY2NhYFVSTUlEQD08QDo9OoGKnqO1wcvU3eXr8fb4/P7////////////////////////////////////////////////u6OHZz8e8sKO62dTHtKebjYZ7cWZfWVVTU1NTU1NTU1JTVFNSTklHQ0E+PTw7Ojk/SWJueX6Ei5CSk5ORj4qFfnxx4dTLt6+jm4x9cWhhXVVUU1NTVFRTVVVVVVVVVVVUVFZVUUxIRkA+PDw7OzxAQkhDR1BMS01OR87Fv7SrpZaMgHJoYFtYU1NVVVNQTEhEPzw8PDs8Pj5FaG16e32Aen6jxMG3s6idlIV4bGRfW1dWVlVVVVVVVlVVU1RTUlBKRkRBPjw6OT85PDmFjaGmt8PN1d7m6/H2+Pz+////////////////////////////////////////////////7+ni2tDIvrKittLKuaaXi3p1bGJZUk1LSUlJSUlJSUlHR0lKR0RBPj8+PT08PDw6P0pkb3x/hIiQk5STkpCLhoB9cNvLvqqgkoh5bGFZU1BKSUhISElISEpKSkpKSkpKSEpKSUhDQT0/PDs8PDs8QEBHRUlRTkxOTkbDta2jnJeEem5hWFJOTkZISUpKSENAQDw6Ojo7PD46Q2pxf3+Bg4CDoby1qaOYiYBzZVxXUk9HR0ZGRUZGRkxKSUpKSUhHQ0I/Pjw7Ojo8OTw6h4+kqbjEztbf5uvx9vj8/v///////////////////////////////////////////////+/q5d7Ty8G2p7bEu6CPg3dmYFZPSUZDQUNDQ0NDQ0NDQkFBQEBAQEA5ODs+Pjw/QjtPbGx7iIqNkpWXlpWTjol/gnC9ubKal310Z1xTSkRBQUBAPz9AQEE/Pz8+Pj4+Pj4+Pj49PTw8Ozo6Ozs6PEA+UUdFTVFYSkVUqLOgmYB7cmpfVkxGQT5DQ0JBQUA/Pzs7Ozs7Ozs7QD9/d39+hYmDjZahrKSQiHVuY1lPSkNAQkJCQkJCQkJCQkJCQkJCQj08Ozs7PD09PEE7NJCUna29xdDZ4Oft8vf5/P7+/v/////////////////////////////////////////////v6+bf1c7EuayyuKyRfXVuVE5HQT89Ojk6Ojo5ODg3Nzo6OTg4ODg4Ozo5OTs8PTxCVnNygIyNjpOWl5eWlI+Kg4h1uK6hh35rY1hQSUI8Ojw8PDw8PDw8PDw8Ozs8PDw7Ozs7Ojo6Ojw8PT9APz07OU5JR1FVV1VYXqKjjolzcllVTUVAPDk2OTk5OTk5OTk9PT09PT4+PkI6gn2DiIyNhI6Qj5WOfXBgWlBIQj87OTk5OTk5OTk5OTk5OTk5OTk9PTw8PDs7O0FEPzWcnai1wMfR2+Lo7vL3+fz+/v7/////////////////////////////////////////////8Ozn4djRyL23rKKXgm9iVk5KRUFAPTs6PT09PT4+Pj48PDw8PD0+Pj1AQD45Nzk7O1d4eIGMi4yTlZeWlpSQi4CHeKqfkHdqWFBKRkRBPj09PT09PT09PT49PTw8PT0+PT09PT09PT0+QUE8Ozs7PTNRVU5XYGJqSk2Jj314ZmJQTklFQkA+PT09PT08PDw8PDw8PDw8PD04N4qLiI+TmJOZkoaCfmtcV1FLRkRBPzw8PDw8PDw8PD09PT09PT09PD09Pj4+Pj4+QT03oqexvsTL1N3j6e/z+Pr8/v7+//////////////////////////////////////////////Lt6ePa1MvBvqyXhHRnXVJCPzs5ODo5ODs6Ojo6Ojo5PDw7Ozs7OzxFQD1AQT44NS5Oc3mDiI2SkZSVlZWTj4qFinuViHtnXEpEPz49PDw8Pj4+PT0+Pj49PTw8PD09Pj09PT09PT4+Pj07Oj06ODkwRldZbHNUPVNTf4Bwa1xTQD89Ozs5Ojo7Ozw8PDw8PTQ1NTU0NDQ0Mj2Fj5OXmJykpZN9cmxeUkNAPTs8PT08Ojo6Ojo6Ojo7Ozs7Ozs7OzY2NjU0NDQ1NjY3PpyptLzIztff5erw9Pj6/f7//v7////////////////////////////////////////////07+vl3dfPxauvr6SXjYV6fHdvaWRhXVtaWFZVU1JPTkhGREE/PDs6NjQ8S1VZXmRsbnR1goeLio+Sk5OSkY2IgIF0fXRqYVdVUExJR0RCQkFAPj09PkBBPj49PT09Pj48PDw8PD0+Pz9DREhJRUhSZmtwW0pKSEdENkxGPkBCPkJCQkRFSElKSkxOUFJUV1hkZ21zeX+EiJCMm5acn6KllZudnZ2XjIGDf3p1dHFubGlpaWlpaWlpaWlpaWlpaWltb3J1eX6Dh4yXnpqsq7fGzNLb4ebr8PT5+/3+//7+////////////////////////////////////////////9fHt5+Db1Mq3u7WjmZiRhoN/eXJvbGlnZmNgXl1bWFVUU1BMSUZEQkRBQD8+Rl10bXF3eYaLj4+PkZKRkZCMh4eHfHNsZWFYXllTUU5KSUlJSUdGRkdJSUhISEhHR0dHRENDREVGR0hHSUhKUlNXYnVXTEhHT1FTV0VNSENJTkhHSEpKTU5QUVRXWlxeYWRmaW1zeH2Ch4uVmpmcp6iqq6eop6ajnZWSiYaBgH58enh2dnZ2dnZ2dnV1dXV1dXV1eHp7fX+DiY2NlqKmqK67xtHX3uTo7fL1+fv9///+/v////////////////////////////////////////////by7+rk4NnQy8e5qaaqoI+Tj4qEgX15d3d0cXBvbWpoYWBdWldVU1JRTkpHRkVHS1l0jY2OhouMj5CRkI+OioaCgn9xcmtsY2FdWVdUUU9QTk5NTU1NTk5NTk5OTUxLSkpKSkpLTU9QT1NVXm1oU0RNR05ZWVVVVldJT1FTVVlLWltcXFxdX2FkZ2psbW9ydXd7gYWJjpOXnaKora6xs7exsLCtqqWfnJ2ZlZGPjYqHhoaGhoaGhoaGhoaGhoaGhoKEh4mLj5SYl6GssbO5xtDW2+Ln6+/z9/n7/v///v7////////////////////////////////////////////28vDs5uPd1dPOwLGus6+km5iUkY+Lh4SCf3x5eHVxbmxraGRgXVtaW1taVlRWVFFTXGFje5CblJCSkpGQj4uGgoGEdHdsbWFrZ2JgXVlVVlVWV1dXV1ZVVFVVVVRTUVBUVFRUVVdZWm5xZVFKT1NWUVhYWVpZWVdkVVZZXWBnWGBhY2VkZmlsbHB0dnh7f4KFiY6TlpugpKelrbWzvbu9uru3s6+tqaWmop6cmpiTkZGRkZGRkZGRkpKSkpKSkpKSlZiZmp2hpaWsuLnCxNLa2d7k6u3w9fn6+/7////+////////////////////////////////////////////+fby7+zn4NzVz8jCvrmyrammop+bmJWTkY+Ni4iFgoB8end0cW5raGdlY2FhYF5dYV1eX2RpcIOVqKyfmZOHgYV/eXZzbmloaWZiX11dXFpcW1tbW1xeX1xcWVZZX2BeY2JqdHZrWVBSUVFSVVZXV1pbXFxcXF1eX2FjZWZoamxub3FzdXd5en+BhIeJjI6QlpicoKSorK+1uLy/wsPExcXEwsC9uri3sbCuq6ilpKOioqKioqKioqKioqKioqKio6Skpqirrq+1uL3CyM/U2ODj6O3x9fj6+/z9//////////////////////////////////////////////////j28/Hu6uTg3NfRzMjEvrq1s6+rqKWioZ+dm5iWk5COiYeEgH16d3RzcW5tbGtpaGlmZ2VlYmFsbHt+eoCKmqqjmY6IhYF9enVzcG9tbGtraGhqbG1tbGxtcXV3en97dmtiV1VXVVdZW1pZWVtcXFtcXFxcXWBjZmprbnBxc3V3eXt9f4GDhYeLjZCTlpianKKlqa2wtLi6vsHFyMrLzM3NzMvJxsPBwL28ure0srGwsLCwsLCwsLCwsLCwsLCwsLCxsbO1t7q7v8LGy9DW297k5+vv8/b4+vv8/v/////////////////////////////////////////////////59/Tz8e3p5eDc19PQzcjEwL67t7Wyr62sqqilo6Cdm5eVkY6Lh4SBf317eXd2dHNwb3FxcG1pbWx0dnVzc36Ngnt1d3+Fh4iSkJCRkIyLjo6Ni4mFf3dycG5nYV9hYl9jXVteX15cXFxcW1xdXl5eX19hYmVpbXB0dnh6fH6AgoWHiYuOkJKUmJqdoKOmqKqvsbS4u7/CxMfJzdDR09TV1NTS0M7MysjHxsTCwL69vb29vb29vb29vb29vb29vb28vb2/wcPFxsnMz9PX2+Di6ezv8vX3+fr8/f7/////////////////////////////////////////////////+fj29fPw7Orj4NvY1tPPzMnHxMG/vLq4trSysK6rqKajoZ6al5OQjouJhoSCgH59e3p6eHh3dHNwcW5sbWlpb3dzb3F2eXp6b21ucW9qaW1sbGxubmxmYmlraWdpa21qZGNiZGNdWFZZWVpbXV9hYWRmam5xdHh6fX+ChIaIi42QkpWXmZyfoaSmqa2vsrS2ubu+wcTHyszP0tXX2Nna29ra2djW1NLRzs7My8nIyMfGxsbGxsbGxsbGxsbGxsbGxsfHyMrMzc7S1Nfa3eHl5+3v8vT2+Pr7/f3+//////////////////////////////////////////////////r5+Pb08u/t6ufj4N3b2NXT0c/My8jGxMHAvry6t7SysK6qp6SgnZuYlpOQjoyKiIiGg4GAf357dnRwbG9va2pqamloaWpqa21rbG9tZ2ZpcG5sa2toZGFaXmJmaGloZGNfXVpWVFNUXF1eYGNmaGltb3N3e36Bg4iKjI+RlJaYnJ6ho6apq62wsra5u77AwsXHyczO0dPV2dvd3+Dh4uLi4uHg3t3b29jX1tXU09PT0dHR0dHR0dHR0dHR0dHR0dLS09TV1tjY293f4uXo6+3w8fT29/n7/P3+/v/////////////////////////////////////////////////7+vn49vPx8O7s6ebk4d/d2tnX1tTS0M7MysjGxMK/vbm3tLGuq6imoqCdm5iWlJORj4yMi4mKhH6Cgn5/fnl0a2tqZmNjZGVlY2NkYl5cXmZjYV9eXVtZVldYWlxfYWJaWlpcXV1eX2VmaGpsbnFzeXp9f4KGio2Rk5WYmp2goqaoq66ws7W3ury/wsTHycvP0dPV19nb3d/h4+Tk5ebn5ubl5eTj4uHg397d3dzc3Nra2tra2tra2tra2tra2trb3Nzd3t/g4OHi5efp6+7x8vT29/j6/P3+/v7/////////////////////////////////////////////////+/v7+ff29PTw7+zq6Obl5OHf3t3c2tjW1dPRz83LyMbDwb67uLWzsa2rqKWjoZ+em5mUlpKNjoiNjYqEgoGAf3Z2c25ramppaWdmZWRiYWFgYF9fX2BgYF9gYWJhYGBfZGRkZmdqbG5wcXN1d3l8foSGiIuNkZWXmpyfoqWnqqyxs7W4ur2/wcTGyczOz9LT19nb3N7f4ePl5ujo6enq6+rq6unp6Ofm5uXl5OPj4+Pi4uLi4uLi4uLi4uLi4uLi4uPj5OXl5ubn6Orr7e/x8/X3+Pn6+/z+//////////////////////////////////////////////////////z8+/r5+Pf28/Lw7u3s6urm5eTj4uHe3Nzb2dfV09DOzMrHxcLAvbu4trOwrqyqqKainaGdmJuWkY6Mi4iFgoB/f316eHh1cXBvbWtra2poampramppaWhtbWtsbW1ub3FxcXR1eHl5eXp9f4GEh4mLjpKVmJqcnqSmqayvsrW3u73AwsTHycvO0NPV19nb3N7g4uPk5efp7O3u7+/v8PDw8PDw7+7u7ezr6+rp6enp6enp6enp6enp6enp6enp6enp6urr6+zs7u/w8fL09vf4+fr7+/v9/v/////////////////////////////////////////////////////8+/v6+vn4+Pb29fTy8fDv6+vq6ejn5ubj4uHf3tza2NbU0c7MycfFwb+8ube0sa+wrqupp6WioJ2bmJaUkY6MiomGhIOBfn17enl4d3Z2dXR0dHNzdHR0dHR0dXZ3d3h6e3x9fX+BgoOFh4mLjZCRmJqdoKKlqKqsrrG0t7q9v8PFyMrNz9LU19ja3d/h4uLl5ufo6uvs7O/w8fPz8/Py9fT09PPy8vLx8fDw8PDv7/Dw8PHx8fHx8PDw8PDw8PDw8PDx8fLy8vPz9PX2+Pj5+/v7/Pz9/f3//////////////////////////////////////////////////////Pz7+/r5+fn4+Pf29PPy8vDw7+7t7Ovr6ejn5uTj4N/c2tjV09DOzMvJxsPBvru5trSxr62rqKelo6GenJqXlZSSkI6MioiHhISDgoGAgH9/fn5+fn5+f3+AgIGCg4ODhIWGh4eJi4yPkJOVl5mbnZ+hpKaprK+xtri7vsDDxsjKzM/R1NbZ297f4ePl5+jo6uvs7e7w8PHy8vT19vb19fb29vb19fX19fX19fT09PT09PT09PT19fT09PT09PT09PX19fb29/f19vf3+fn6+/v8/Pz9/f3+//////////////////////////////////////////////////////38/Pv7+vr6+vr5+Pf39vb19PTz8vHw8O/u7ezr6efl4+Hf3dvY1tTS0M3LyMbDwb68uri2tLGwrauopqSin52cm5mXlpSSkI6OjYyLioqJiYmIiIiIiYmKiouLjI2Njo6PkJGSk5WXmZqdn6CipKapqq2wsrW4ur7AwsXIys3P0tTX2dvd4OLk5efp6+3u7u/w8PLz9PX19fb3+Pn5+Pj5+fn4+Pj4+Pn5+fn5+Pj4+Pj5+fn5+fn5+fn5+fn5+fn5+fr6+vv7+fr6+/v8/Pz8/f39/f7+/v/////////////////////////////////////////////////////9/fz8/Pv7+/v7+vr5+fn49/f29fTz8/Py8fDv7u3r6efm4+Hg3tza1tTS0M7LycfFxMG/vry5uLSysK2sqqelpKOhn56dm5mYl5aVlJOTkpOTkpKSkpOTkpKSk5SVlZaYmZqbm52foKCipKanqautsrO2ubu9wMLDxcjKzM/R09ja3N7g4uXm6Onr7e7w8fHy8vP09fb29/j4+fr6+/r6+vr6+vv7+/v7+/v6+vr6+vz8/Pz9/f39/f39/f39/f37+/v8/Pz8/Pz8/f39/f7+/v7+/v7//////////////////////////////////////////////////////////f39/Pz8+/v7+/v6+vr6+vn4+Pf29vX19PPy8fHv7ezr6efl5OPg393b2dfV09DPy8nHxcTCv768uri2tbOwr62sqqmopqWjoqGgoJ6enZydnZycnJydnZycnZ2en6CgoqOkpaWnqaqqq62vsbK0trm6vb/Bw8bIy83P0dPW2Nrd3uHj5Obo6uvs7e/x8vLz9PX19vf3+Pj5+fr6+/v7+/v7+/v8/Pz8/Pz8/Pz8/Pz+/v7+/v////7+/v7+/v7+/f39/f7+/v7+/v7+/v7+/v7+//////////////////////////////////////////////////////////////39/fz8/Pz8+/v7+/r6+vr6+vr5+Pj39/b19PT08vHv7u3r6unn5uTi4N7c2tjW1dHPzcvKyMXEwcC+vLu5t7WzsrCvrq2sqqmpqKempaSkpKSkpKSkpKSkpaWmp6ioqamqq6ytrrCxsrO1t7i6vL6/wcPGx8nMzdHT1dfZ293f4uPl5+nq7O7u7/Dy8/T19ff3+Pj5+fn6+fr6+vr7+/v7+/v8/Pz8/P39/v7+/v7+/v7+/v///////////////////////////v7+/v7+/v7////////////////////////////////////////////////////////////////9/fz8/Pz8/Pv7+/v7+vr6+vr5+fj49/f39vb19fTz8fHv7uzs6+no5ePh397c2tjX1dPR0M7MysbFw8HAv727uri3trW0s7KxsK+uraysq6yrq6urq6usq6ysra6vr7CwsbKztLW3uLm6vL6/wMLExsjKzM7P0tPV19nb3d7h4uXm6Orr7e/w8PHy9PX19vb4+Pj5+fn6+vr6+vr6+vv7/Pz8/Pz8/f39/f7+/v7+//7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////Pz8/Pz8/Pz8/Pz7+/v7+vj4+Pf39vb29/b19fX08vHx7+7t7Ovq6Ojn5ePi4N7d29rY1tTT0c/Ny8nIx8XDwsHAv769vLu6ubi4t7a1tLS0s7Ozs7OztLKys7O0tba2uLm6u7u9v8C/wMLExcbIysvMz9DS1NbY2tvd3+Hj5ebm5+nq7O3v8PDx8vP09fX29/f3+Pj4+Pj6+vr6+vr7+/39/f39/f39/Pz8/P39/f3+/v7+/v///////////////////////v7//////////////////////////////////////////////////////////////////////////w== - //////////////////////7+/v7+/v7+///+/v7+/v7////+/v7+/v7+/v7+/v7+/v7+/v7+/v79/f39/f39/f39/fz8/Pz8+vr6+vn5+fn4+Pj4+fn5+fn5+fn5+fn5+fn5+vr6+vr6+vr7+/v7+/v7+/z8/P39/P39/f3+/v7+/v7+/v7////////////////////////+/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/v7+/v7+/v79/f39/v7+/f39/f39/f39/f39/f39/f39/f39/Pz8/f39/f38/Pv7+/v6+vn5+fj49/f39/f39/f39/f29vb29vb29vf39/f39/j4+Pj4+Pj4+fn6+vr6+/v7/Pv8/Pz9/f39/f39/f7+/v7+/v7+/v7+/v///////////v7+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v7+/f39/f39/Pz8/Pz8/Pz8/Pz7/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8+/r6+vn5+Pj39/f29vX19fT09PT09PT08/Pz8/Pz8/Pz8/P09PT09PX19fX19vb29/j4+Pn5+vr6+vr7+/z8/Pz8/P39/f39/f39/f3+/v7///////////7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v7+/v79/f38/f38/Pz7+/v7+/v7+/r6+vr6+vv7+/v7+/v8/Pz8/Pz8/Pz7+/v7+/r5+fj39/b29fX19PPz8/Ly8fHx8fHx8fDw8PDw8PDw8PDx8fHx8fHy8vPz8/T09PX19vb39/j4+fn5+vr7+/z7/Pz8/P39/f39/f39/f3+/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/v7+/v39/Pz8+/z8/Pv7+vr6+vr6+fn5+fn5+fn5+fr6+vv7+/v7/Pz8+/v7+/v6+vr5+Pj39vX09PPz8vLx8PDw7u7u7u7t7e3t7e3t7e3t7e7u7u7u7u/v8PDw8fHy8vLz8/P09fX29vf3+Pn5+vr7+vv7+/z8/f38/P39/f39/v39/f7+/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/f39/f38/Pv7+vr7+vr6+fj4+Pf39/f39/b29vb39/f4+Pj5+fn5+vr6+vr6+vn5+fj49/f29fTz8vHw8O/u7e3s7Ovq6urq6enp6enp6enp6enq6urq6urr6+zs7e3u7u/v7/Dw8fLy8/P19fb29/j4+fn5+fr6+/v7+/v7/Pz8/f38/P39/f7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f39/Pz8+/v6+vn5+Pj49/b29fX09PT09PTz8/Pz9PT19fX19vb39/f4+Pj4+Pf39vb29vX08/Lx8O/u7Ozr6+rp6Ojn5ubm5eXk5OTk5OTk5OTk5eXl5eXl5ubn6Ojp6erq6+vs7O3u7+/w8vLz8/T19vb29vf3+Pn5+fn5+vr6+/v7/Pz8/P39/v79/f7+/v7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pz8+/v6+vn4+Pf29vX09PPz8vLy8vLx8fHx8fLy8vPz8/T09fX29vb39vb19fX09PTz8/Lw7+7t7Orq6ejn5ubl5OTj4+Li4eHg4ODg4ODg4OHh4eHi4uLi5OTk5ebm5+fp6err7Ozt7e/w8PHy8/T09PT19fb39/j4+Pj5+fr6+vv7/Pz9/f7+/f39/f7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/f38/Pz8+/r5+Pj49/b19fXz8O/s6+7u7ezr7O3u6vDt8O3w7fTy8/T09fX19fX19fT08/Ly8vDu7e3t6ujm5eTj4uHg4N7e3dzb29ra3t7e3N3d3dzd3d3c3Nzc3ODd3eLg3+Lg6OTn5ebo6+jq6+3u7u/w8fHx8vP09fX29fb39/f4+fr6+vv7+/z8/Pz8/f39/f7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v79/f38/Pz8+/r5+Pf39vX08vPx8O/v8fHt6+nq7e3q5+3t6O3t8u7v8PDx8vLz8/Ly8vLy8fDw7+zs7e3r6ejn5OPi4d/e3dzb29ra2djX19LS0dHS09TU1dbW1tfY19jd29vd3N7h4d3c4OHi5Ofm5+jq6uvs7e7u7u/w8fLz8/P09fb29vf4+Pn5+vr7+/v8/Pz9/f3+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/f38/Pz7+/r5+Pb19fTz8vHx7u3s7Ovs6uno6Ojp6urr6+jr5+vq6uzs7e7v7+/v7+/v7u7t7Ovo5+fn5uHg4dzc2tnX1dTU1NPT0tHQz8/Pzs3MzM3Oz9HR0NDQ0M/P1dbV1dbX2NrZ293e3N7h4eLk5ebn5+nq6urr7O3u7/Dw8fPz8/T19vb39/j5+fr6+/z8/P39/v7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/vz8/Pz7+vn5+Pf19PPy8e/t7Ovs6unn5+Pi4ODh4eLi39/j5OLl6Ono6err6+zs7Ozs7Ovr6uno6+Xi4uHc297Y2NfW1NPS0tDQ0M/Pzs7O0M/OzcvMzMzKy8vMzc3OzsrMz83S1NHT1dnX29fa3N7e3+Hi4uPl5ufn6Onq6+zt7e7w8fHy8/T19fb29/j5+fv7+/z9/f3+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v38/Pz7+vn49/f29PPy8O7t6efl4+Ti397h3t3d39/b19/d3+Di4+Pg5eXm5+jp6enp6eno6Ofm5ePUxcG7sa2vra2traysq6uqqqqrrKytramqrK6wsbGxtLa5vsHFysvRzs/MztDLzc7TztnX19fZ2tvc3t7f4eLj5OXm5+jp6urr7e7v7/Hy8/T09ff4+fn6+vv7/P39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39+/v7+/r49vb29fPx7+7s6unm4+Hh4ODf29zc2dbX3ODU2Nza3dre4uDh4uPk5eXl5OTk5OPj4uHj0MLCwbm4vLu7u7u8vLy8vb6/wMHCw8PGxsXFwr+8uru6uLa0s7GwsaWmpKSqqKutsrDK0NLR09TV19jZ2tzd3t/g4ePk5ebn6Orr7O3u8PHy8/T29/j4+fr6+/z9/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/fv7+/r59/b09PPw7u3r6efl4+Lh4d7a2NTV0ci8t73D09fX0dzZ2t7b29ze39/g4N/f39/e3d3c28q/w8O8vMS/v8DAwcHCwsXGxsfIycrKz8/Q0dHQ0NHR0dDOzMrJybWfnpqUl5OUi46Ms8PJyc7Oz9HS09TW19na29zd3+Dg4+Tm5+jq6+3v8PHy9PX29/n5+vv8/P39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/f37+/v6+ff19PPx7+3r6ebl4d/b19DGvLOvrKuutbe0sKeinKLJ09HO19fY2tvc3Nzb3Nvb29rZ2NXGv8XEvLzGvb29vr6/v7/DxMTFxsbHx8vMzM3Nzc7Ozc3NzMvMzMyqkZSWkpeWl5eWjbTDxsPIycvMzs/Q0tPV1tfY2tvc3eDi5OXm5+nr7u7v8fP09fb5+fr7+/z9/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38/Pv6+fj29PLs7e3q6ubk3s7Etq+vsbKxsbS3s6mdjoJ/gX1+ts7HzdDS09XV1dfX2NjY2NfV1NPPxsPAwL3Bu76/wMDAwMHCxMTFxsnKy8vNzs/Pz8/Pz9DMz8rNy87KoJaTlpWVlpaVjYukwr3Bw8LCxcfGyc7Nz9HR0tDS1Nfd29vf4uXk5enr7e/w8vP19vf5+vv7/f39/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+ff29fPx8ezr6uHTwK2zsbCxs7SzsrewnoVxa290en6GgpTMw8jJyszO0NLT1NHR0dHQzs3MzcLCwMC9wbq+v8DAwMDBwsTExcbIycrLzc7Pz8/Pz8/PzM/KzczOx5yVk5aVlZaVlIyJpLm1vLa5u8PN0NDLw7+9ubSxsLK01NXg3tri5evn6ezu7/Hy8/X3+fr7+/z9/f3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pz6+ff29fPx7/Du8OG/sLKysrO0tbSzsrO0lXNlZ2xxd3x8hYSBzMDBxsfIycvMzMzLzMzLysnHxsq+wsC/vcC7vr/AwMDAwcLDxMXGyMnKys3Oz8/Pz8/Pz8zOzM3NzcCWk5SVlZWVk5OLiKGsqLGntLi/vrStraytrq2urq+xsrC22d3Z4+Di5efp7O3v8fL09vj5+vv8/f39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+vj39fTy8O7q5ufXsa23t7OzsrGvrrCyq4lqaW9qaXN7e3+Fgbe5ub29vsDDw8TExsbGxsXDwsHLvcLAv7u/u76/wMDAwMHCw8PExcjJysrNzs/Pz8/Pz8/Mzs3Nzcy3kZOUlZSVlJKPjIigqKKtqqiuur22sbCura6ur7CwsLCvqdHV1OHc3+Lk5+nr7e/x8/X3+Pn6/P39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38/Pr59/Xz8e/t6uPg0aqss6iop6enqKWjop+Kc2xtampydXt/hIKQuLG4uLq7vL2+vb6+vr69vLq5z77CwLy8v7u+v8DAwMDBwsPDxMXIycrKzc7Pz8/Pz8/PzM7Nzc3KrZCUlpSUlZOQjoyFmaCan6eirru7r6issbCwr7CvsLCwrZ7Izc/b2d/f4eXn6uzu8PLz9vf5+vv9/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38/Pz6+Pb08/Dt6+nm4s+hoqqmpqSioqGgnpyjmX5qbHVzb3d5fX+Eg8GrsLK0tba1t7i4uLi4t7W0s9S+w768vL+7vr/AwMDAwcLDxMXGyMnKys3Oz8/Pz8/PzszOzczNyKOQlZWUlJSRj4yMhZKboJ6qx765tbCwsq+wsrS0s6+rqY2JvsnQ1dPY3N7i5efq7O7w8vX3+Pn7/P39/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pz8+ff18/Hu7Onn4d7VqaeopKelo6Gio6OimpyIbWhxdXZ8eXt+iYi4qaaprK2trbCysrKysrGvrq3WvcG+vL2+u76/wMDAwMHCxMTFxsjJysvNzs/Pz8/Pz87Mzs3LzMaak5aVk5SSj46MiIiQn7u5vrSysbKwsrKwrq6tp56UjIiGirzEzdHS1Nnb3uLl5+rs7/H09vj5+/z9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+/j29PLw7ero6uDZ06ukp6mjpKSkop+enp6fjXNoZ2x1en5/gYiGn6u1t7e0rampqqqrq6qpqKal1bvAvby9vrq+v8DAwMDBwsTExcbJysvLzc7Pz8/Pz8/OzM3Ny8vFlpWWlJOVko2OjoaJjZzIxL/Bvr6/vLeyqqGel46FgH+AhJC8wM3Q0cvW2dzg4+bo6u/x8/b3+fv8/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f79+/r39vTx7+vo5eDg1M+3qKqpp6akoqKhoJ6coJaJjIuTlKSlp6qtsbO0sbKytbe8vsDKzc/OysTBwL69urazs7a4urq7u7y9vr6+v8DCxMXIyMrMz9DQz9DQzc7KzcvQuZOUlJSTkY+Ni46FhY7BysbHx8jIysjJqJGQkY6Ffn6ChX+ftr6/xcnL0dXZ3eDk5+rt7/H09ff5+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/fv69/bz8e7r5+Tf3tXPvKisqqimpKOioaCfn52ersvPzsnFxMTCwL69vLi2tbSysa+vqqysrKurrK63trSysbGysrOzs7S0tbW1tbW2tre4ubm7v8PGyc3Q0s7Py87MzK+QlZWVlJKQjYuHiYOIvMfGyMfIysnJyKORkJGOhX9+g4aBqLO6u8LGyc/S19ve4ubp7O7x8/X3+fr8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz7+ff18/Du6ubj39rXzsKorauop6ako6KhoJ+ZmrPT0s/Ozs7PztDR09PV1tbX19bV1NHPzMjEwsC/v728ube2tLO2trW1tbS0tLOys7KysrGxsbKztbe5vL7Rz8zLzMmlkpSUlJSSkI6MgIZ9jMLHxcfHx8vIy8abkZGSjIV+f4OGg7SvtbW+wcfMz9TY3N/k5+vt8PP19/n6/Pz9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38+vn29fLw7Onl4t7X18zFqKyqqaimpaSjoqGfmpqxz83O1c3Nzs/S1dja4eTo7fH19fb49vLv6+Xh3tDNycbEwLy5t7a1tLOysbGvr66urKurqqqpqKelpKSlys3LyszEnZKUlJORj4yKiIF/eJnKxcXGyMfNx8zBlJKQkYyEf3+EhoS6qbCxu73EyczS1tre4uXq7O/y9Pf5+vz8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f39/Pr59vTx7+vn4+Dd1dXJxampqKqopqakpKOjoZyasNLQy8rOzc7O0NPV2N/i5enu8vT29fTz8O7r5uHY1M7Lx8S/u7i3trSzsbCwrKysq6mpqKempaWlpKOiocjPzcvMwJuWmZudn6CioqKel5OvycLHxcnHzcjMuZCSkZGMhH+AhYeGuKSsrre6wcbKz9TY3OHk6evu8fT2+fr8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/fv6+PX08e7q5uLf29TRyMOsp6iqqKempaSko52cm67S1M7Ly8zMzdHV19ri4+bq7vL29/b18e3q5+He2NTOysXCvry6ubi2tLOysa6ura2sq6uqqKiop6elo6LAy8bHzMq8vrq6ube0srCvsbO3w8fFysLJyMzJy6+Pk5KSi4R/gYWHia2fqKuzuL7EyM3S19vg4+jq7vHz9vn6/Pz9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+fj18/Dt6eXh3tnUzse/saioqamnpqSlpKOfoZ2sy83Lzs3NzM/R1NfY3d7j6e3z9ff19PHt6eXi39jUz8rGw7+9uLe2tbOysbCurq2trKuqqauqqainpaOgxNXJx8jJyszHxsXDwL68u7K4vsTFyMjEysnKy8mmkZSTkYuDf4GFh4ygmqSorba7wcXL0NXa3+Ln6e3w8/b4+vz8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+/n49fPw7enl4N3Y1M3GvbSoqqqpp6alpaSjoJ+aq8/RzdDOzs7R09XY2dve4ujr7/Hx8/Px7+vn4uDY1tDMx8O/vbm5uLa1tLOyr6+vrq2srKuop6enqKelpLbQyMrKyMrFysrJysrKycnGxMHCx8fCx8rJyc3HoJOVkpGLg3+BhoiQmJihpKm0uL/Dyc/T2N3h5+nt8PP2+Pr8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Ty7uvp5N/c29XKxbi5o62pqKmpqKalo6ShoazRztDMz87Nzc/S1tnd4OTp7PDz9PTz8O3p5eLf2NXQzMbCvry5uLa1tbSysbCvrq2trKuqqKiop6elo6Gz0czHx8jHyMvMzMvKyMjJzMjEw8TGxsXJysjNxZiVkZOTjYN/hIiJnIuTnaOntba7wsjN09fb4eXo7PDy9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf08u7r6OTf29rRysW8waatqqmopqWko6Ohnp+qzs3Qzc/Ozc3P0tbZ3eDj5+zw8vT08u/s6eXh39fU0MzGwr68ubi2tbW0srGwr66trayrqqmoqKenpaOhsdDMyMfIyMnKysrKysnJyszJxsXFxsfGysjJzr+WlZKTkoyDf4SHiKWIj5mfpbCzusHHzNPX2+Hl6Ozv8vX3+fz8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7///39/fr39fLu6+jk39vXzsrDvsWnqaimpqSkoqKioqKjrs3Mz87Pzs3Nz9LW2N3e4+fs7/Ly8/Hv7Onl4d7X1M/LxsK+vLm4t7a1tLKxsK+ura2sq6upqainp6akoqvNy8jHycrLy8vLysjHyMnKyMXFxsjIyMrHys+2lJWTk5KKgoGFhoayhoyWnKOrsrjAxsvS1trg5efs7/L19/n8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Xy7uvo5N7b1cvKwLvCpqeop6ipqamop6usrLXNzc7N0M7Nzc/S1tjb3uLn6+7w8fLw7uvn5N/d1tPPysbCvr26uLe2tbSysbCwr66trKurqqmoqKempKKqzM7NycvNzszMy8nIyMjJycfFxMXGx8fKxs3QrpOVlJSQiYOBhYaGvIaKlJujqLO3vsTK0NXZ3+Tn6+/y9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf18u7r6OPe2tLMyr+5vKmsrq+wsLCxsbGytLO8zs7PzdDPzc3P0tbY297h5ent7/Dx8O3q5+Lf3NXTzsrGwr69urm3trW0s7GwsK+urayrq6uqqKinpqWjqMrOzsnKzMvMzMvKyMjKy8jHxcXGxsXFysfPz6aWlpWUj4iDg4aHhrmEiJGZoqextb3DyNDU2d/k5+vv8vX3+fz8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7///39/fr39fLu6+jj3trSzsrBubexsrS0s7Ozs7S1tLa0vcvOz8zQz83Nz9LV2Nvc4eTp6+7u8e7s6Obi3tvV0s7KxcK+vLq5t7a1tLOysLCvrq6trKurqqmop6elpKLEy8zIyszKzMvKyMXExMTBwcLDxMbHx8jIzsuemZWVlI+Ig4SHiYmngIaOl5+lrrS7wsjP1Njf4+bq7/L19/n8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Xy7uvn493Z0tHIwbqytbO0tbe4uLe2tbK1s77Kz9DN0M/Nzc/S1dfa3N/k6Ovt7u/u7Ojl4d3a1NLOyMXBvry6ube2trWzsrGwr66urayrrKqpqKinpaSgwsnMyMrLx8XFxMC9u7q5t7i7vcDCxcbHyczEl5uVlZOPh4SEhoqMkH6FjJacpayzu8HHz9TY3+Pm6u7y9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf18u7r5+Pd2dTRxMK5rLSxtLe8wMG/u7iztrO+ytDQzdHPzc3P0dXX2dzf5Ofq7O3v7uzo5OHd2tTSzcjFwb28urm3tra1s7KxsK+urq2sq6yrqaiop6alnbzCxL29vLe3uLi3trW1tbS1t7m5ury9xsrKvpKclJWUjoiEg4eLjoN9hYuXnKers7rBx8/U2N/j5uru8vX3+fz8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pr49fLu6+fj3dnTzMe/uq/Dq7S3usHHysvKxsTDxsvPz83Nzc7O0NHU1dnb3uLm6Orr6uro5ePe29nT0MzJxsO/vLu6uLe2tbOysrCwr6+uraysrKyrqqmop6Kgnp+bl5yjpaerr7Kzsa+ytbe2tre2tLi2r6ObmJmalo6Bh4KLiZ1ze4OKk5ujrLO5wcjO09rf4+fr7/L0+Pr8/P3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz6+PXy7uvn493Z1M3HwLuwway0t7rBx8rLyszKycrOz87Nzc3OztDR1NXZ2t7i5ejp6+rq5+Xi3tvZ09DMycbDv7y7uri3trW0srKxsK+vrq6srKysq6qpqKeil4qCeXV3fISHjZWcoaOkrq+vrKmkn5qUl5iXlpeZmZSLg4WCiYWicnuCipObo6yzucHIzdPa3uPn6+/y9Pj6/Pz9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38+vj18u7r6OPe2tTNyL+7sr6utbe6wcfKzMvPzs3Nz8/OzM7Nzs7Q0dTU2drd4eXn6enq6efl4d7a2NPQzMnGw7+8u7q4t7a1tLOysbCwr66uraysrKuqqainpZmMg3x2dHR3eX6FjJGTlZaWlZKSk5OSkZWYmJmZmJWUi4SFhYiFsHF6gomSmqOss7nByM3T2d7j5+zv8vX4+vz8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/Pr49fPv6+jk3trUzci/u7K5r7W3ur/GyszMzM3Nzs7Ozc3Ozc7O0NHT1Nja3eDj5ujo6ejm4+Dd2djSz8vJxcO/vLu6uLe3trSzsrGxsLCvrq2trKyrqqmop6KcmJqbmZeXmpmYl5eWlJOXlpSTlJeZm5eYmZiZmpaUlYuGhIeJiLxxeYGIkpqirLO5wcjN09ne4+fs8PL1+Pv8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/vz6+Pbz7+zp5N/b083Hv7uysrC1trm/xsnLzMzNzs7Ozs7Ozs7OztDR09TX2Nzg4+Xm5+fn5ePg29nW0s/LycXDv7y7ubi3t7a1tLOysbCwr6+ura2srKupqKiqpaKgn56en5mYmJmampmZlZWWl5eWlJSUlZWUlpiXlZSKhoSJioq3cHmBiJKaoqyzucHIzdPa3uTn7PDy9fj7/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79+vn28/Ds6eTf29POx7+7tK6ytba5vsTJzMzPz9DPz87Ozs7Ozs7Q0dPU19jb3uLk5eXn5uTi3tvX1dHOy8jFw7+8u7m4t7e2tbSzsrKxsLCvrq2trKyrqqioo6Ggn56en6CdnJybm5qZmJWUlZeWlpaXl5iZmJqbmJaSiIaGiYiJoHB5gYiSmqOstLnByM7U2t/k5+zw8/X4+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fv59/Tw7enl39vUz8nAvbass7W2ub3EyczN0NDPz8/Pzs7Pzs/O0NHT09bY297g4+Xl5uXk4d7a19XRzsrIxcO/vLu5uLi3t7W0tLKysbGwr66tra2sq6qpqKOjoaKhoJ2cnJubmpubmpmZlpOTk5OWmZSWmJmbnJuXkYiFiImJjIpweYGIkpqjrLS6wsnO1Nvf5Ofs8PP1+fv8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v37+ff08O3p5d/b1dHKwb63q7a2trm8xMnMzc/Ozc3Oz8/Oz87PztDR09PW2Nve4OPk5Obl4+Dd2tbV0c7KyMXDv7y7ubi4t7e2tbSzsrGxsLCura2trKuqqaikop+eoKCfnZuamZmYmJaVlpSVl5eWlpiUl5mZmZqZl5KJhYqJi5F/cHmBiZKbpK20usLJz9Xb4OTo7PDz9fn7/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7//v78+/r39fHu6ubg3dXQzcPAtqu/srW3usDHy8zMzM7Oz8/Ozc/P0NDQ0NHR1dbZ3N7h4uPi4eHf29jV087NysjFw8C/vLu6urq5uLe1s7KxsbCura6urq2sq6qppaOhoKCfnp2dnJybmpmZmJeXl5eXmJmZmZmZm5uamZeShYaGjY2ZbnJ7g4uVnaWutbvDytDV3OHl6e7x9Pb5/P39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+//7+/Pv69/Xx7uvm4d3X0c3DwbesvrK1t7rAx8vMzc3Ozs/Pzs7Pz9DQ0NDR0dXW2Nve4eHj4uHg39vY1dLOzcrIxcPAv7y7u7q6ubi3tbSysbGwr62urq6trKuqqaWjoaCgn56dnZycm5qZmZmXl5eXl5iZmZmampubm5mXkISGiIyLoWlye4SMlZ2mrra8xMvR1t3i5enu8fT2+fz9/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/////vz7+vj18e7r5+He2NLOxcC4r7yxtLe6wMjLy83Nz87Pz87Oz8/Q0NDQ0dHV1tjb3d/h4eHh4N7b2NTSzs3KyMXDwL+8vLu6urm4t7W0srKxsK+urq6urayrqamlo6KgoKCfnp2dnJuampmZl5eXl5iYmZmampqcnJuZl4+Eh4iKirBoc3yEjJaepq+4vcXM0tfe4ubq7vL09vn8/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79+/r49fLv7Ofi3tnTz8bAubC4sbO2usDIy8vNzc/Pz8/Ozs/P0NDQ0NHR1NXY2tze4ODh397d2tbU0c7NysjFw8C/vby7u7q5ube1tLOysrGvrq+urq2sq6mppaOioaCgn56dnZycm5qamZiYl5iYmZmampqbnJubmZeRhoiKioy+bHR9ho6Xn6iwuL7GzdLY3uPn6u/y9Pf6/P39/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fv7+Pby7+zo49/a1M7HwbiytLK0trm/x8vMzc3Pz8/Pzs7Pz9DQ0NDR0dPU1tnb3d7f39/e3NjW0s/OzcrIxcPAv728u7u6urm3trWzsrKxsK+vr66trKqpqKWjoqGhoJ+fnp2dnJubmpqYmJiYmJmampuam5ycm5iXjoaIioqNuW12foePmKCpsrm+xs3S2N7i5+vv8/X3+vz9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38+/n28/Dt6eTg2tTOycG5s6+0tba4vsbKy83Nz8/Qz87Oz8/Q0NDQ0dHT1NbY2tzd3d7e3dvY1dDPzczKyMXDwcC9vLu7u7q5uLa1tLOysrCvr6+urayqqailo6KhoaGgn56enZ2cm5qamZiYmJmZmpuam5ydnJuYloyFiYuLjaRrd4CIkJqiqrO5v8fN09je4+jr8PP19/r8/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/Pv59vPw7enk4drV0MvDu7WstLa2t73FysvNzc/P0NDOzs/P0NDQ0NHR0tPV2Nrb3d3e3dza19TQzs3MysjFw8HAvby7u7u6ubi3tbSzs7Kwr6+vrq2sqqmopaOioaGhoJ+enp6dnJubmpmZmZmZmpqbmpudnZ2bmJaLhoqLjI6ObHiAiZGaoqu0u8DIz9TZ3+To7PDz9ff6/P39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////fz7+fbz8O7q5eHb1tHNw7y2rLW2tre9xMrLzs3Pz9DQz8/Pz9DQ0NDR0dLT1dfY29zc3dzb2tbT0M7NzMrIxcPBwL28vLu7urm4t7a0s7Oysa+vr66trKqpqKSjoqGhoaCgn56enZybm5qZmZmZmZqbm5qbnZydm5iWjIeLio2Rg3J4gYmRm6OrtLzBydDV2uDk6ezw9PX3+vz9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pr39PHv6+bi3dbRzMS9t6+/sba6uMLJyc3Oz9DP0M/Pz8/Q0NDQ0dHS1NXX2drb29vb29nX1NLRzMvKycbEwsG9vLu7urq5t7i3tbS0s7Gwr66srKurqailpKOioaGgoJ+enZ2dnJqZmZmZmZqbm5yfnZycnZyZloqJho2OmHJweYKLk52lrba9wsrQ1dvh5ert8fT3+fv9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz69/Tx7+vm493X0szEvrewvrG2urjCycrNzs/Qz9DPz8/P0NDQ0NHR0tTV19jZ29vb29rZ19TS0MzLysnGxMLBvr27u7q6ube4t7W0tLOxsK+urKyrq6mopaSjoqGhoaGfnp6dnZyamZqamZmam5ucnp2cnJ2cmJaIiomPip9scXqDjJWepq63vsPL0dbb4ebr7fH09/n7/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fz8+vj08u/s5+Pe19LNxr+5sbqxtbm5wcnKzc7P0NDQz8/Pz9DQ0NDR0dLT1dfX2dra2tnZ2NbT0M/My8rJxsTCwb69vLu7urm3uLe1tLSzsbCvrqysq6upqKWko6KioaGhoJ+enp2cm5mampmampubnJ6enZ2enJiWiYqKj4quaXN8hY6WoKevuL/EzNLX3OLn6+7x9ff5+/3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pr49fLw7Ojk39nUz8fBurK2sra5ucDHy83Oz9DQ0c/Pz8/Q0NDQ0dHS09TW19jY2dnZ2NfV0tDOzMvKycbEwsG/vr28vLu6uLi3tbS0s7Gwr66srKurqailpaSjoqGhoaCfnp6enZuampqZmpucnJyenp2dnZuYlIuKiJCOvmx3fYaPl6GosLnAxc3T2N3j5+zu8vX3+fv9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz7+PXz8e3o5eDa1dDIwry0s7S1ubm+xsrOz8/Q0NHQ0NDQ0dHR0dLS0dLT1dbX2NjY2NjW1NLQzszLysnGxMLBwL+9vLy7ubi5uLa1tbSysa+urKyrq6mopqWko6KioqKgoJ+enp2bmpubmpqbnJydnp6enp6cl5OLi4mQj7tueX+IkJiiqbG6wMbN09jd4+fs7/L2+Pr8/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fz8+/n28/Hu6ebh29bRysS9tq+2t7i6vcXKzs/Q0NDR0NDQ0NHR0dHS0tHR09XV1tfX19fW1dTRzs3My8rJxsTCwcC/vr28u7m4ubi2tbW0srGvrqysq6upqKampaSjoqKioaCfn56enJqbm5qbnJ2dnZ6enp6enJaSioyOkY2obnqBipKao6uyu8LHz9XZ3uTo7fDz9vj6/P3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pv59vTy7urm4tzX0svFv7ett7e4urvDyM7P0NHQ0dDQ0NDR0dHR0tLR0dPU1dbW19bW1tXT0M7NzMvKycbEwsHBv769vLu5uLm4trW1tLKxr66srKurqaimpqWko6KioqGgn5+fnpybm5uam5ydnZ2enp+fn5yWkouLkJGPlXN7g4yVnKattb3EydHW2+Dl6u7w8/b4+vz9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz7+fb08u/q5+Pc2NPMxr+4rLi3uLq6wsjOz9DR0NHQ0NDQ0dHR0dLS0dHT09XW1dbW1tbV0tDOzczLysnGxMLBwcC+vby7ubi5uLa1tbSysa+urKyrq6mop6alpKOjoqKhoKCfn56cm5ubm5ucnZ2enp6fn5+clpGNi46Qk495fYWOlp6nr7a/xcvS2Nzh5+vu8PT2+fr8/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pr49fLv6+jj39nUz8jBu7K+tLW7vb/Kzs3P0NLS0tLS0tLS0tLS0tPT1NTU1NXV1dXW1dLQz87Ny8rIx8bEwsHAvr28u7q4uLe2trW0srGvrq2srKyrqqempqWlpKSjoaGgn5+enZ2bm5ycnJ2en6Ggn6CgnJaRjIuNi5p6d36JkZmhq7K4v8jM09jd4ufq7vH09/n7/P7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz6+Pbz7+vp5ODa1dDKw722vbK2u7y/yM7Oz9DS0tLS0tLS0tLS0tLT09TU1NTV1dXV1tXS0M/OzcvKycjGxMLAv769vLu5uLi3tra1tLKxr66tra2sq6qnpqalpaSkpKGhoKCfnp2dnJycnJydnp+hoaChoZyWjoeOi42jdX6Ai5Obo6yzusHJzdPZ3uLn6u/x9Pf5+/z+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+vj28/Ds6ebi3NfSzMW/u7uyubq8v8XNztDQ0tLS0tLS0tLT0tLS09PU1NTU1dXV1dXU0tDPzszLysnIxsTCwL++vby7ube4t7a1tbSysa+ura2trKuqp6empqWlpKSioaGgn56enpycnJ2dnp+foaGhoqGdlI2KkIyOsG59iI2WnqWvtbzDys7V2t/j6Ovv8vX3+fv8/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pv49vTx7evn493Y1M7Hwbu3s7y5u77DzM7P0dLS0tLS0tLS09PS0tPT1NTU1NXV1NTV1NHPz83My8rJyMbEwr++vr29u7i2uLe2tbW0srCwr62trayrqqenp6alpaSkoqKhoaCfnp6dnZ2dnZ6foKGgoaOinZSOjo+Mi659fomQmKCosbe9xczQ19zg5ens8PL1+Pr7/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+ff18u7s5+Pe2dXPyMO6tra8trm8w8zNztHS09LR09PS0tPT09PU1NTU1NTU1NPT1NPRz87Ny8vKycjGw8G/v76+vbu5t7i3trW1tLKwsK+ura2tq6qoqKenpqWlpaOjoqGgoJ+fnZ2dnp6foKCioaChoJyVjo+JipOrd4+Hk5ujqrO5v8bO09ne4ubq7fHz9vj6+/3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+/n39fPv7ejk39rW0crFu7e1ubW5usHKzM7S09PS0dPT09LT09PT1NTV1NTT1NTT09TT0c/OzcvKycnHxcLAv7++vby7ube3t7W1tLOysLCvrq2trayrqKinp6ampaWjo6OioaCgn56enp6en6Cho6OhoqCclI6IkZSqeoSGkJefpq22vMLJ0NXa3+Pn6+7x8/b5+vz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pv5+Pbz8O7q5uDc2NPMx8G7tbSzuri/yczP0dPT0tLT09PT09PT09TU1dTU09TU0tLT09HPzs3KycnIx8XBv8C+vby8urm3t7a1tbSzsbCwr66tra2sq6ioqKenpqalpKSjoqGhoKCenp6fn6ChoaSjoqOhm5KLkYm3enmCjJKaoqmwub/Ey9LW3OHk6Ozv8vT3+fv8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+fj29PDu6+fi3trVzsnGv7Ovsr22vcnMz9HT09LS09PT09PT09PU1NXU1NPU1NLS09PQz87NycnIyMfEwb/Avr28u7q5t7e2tbW0s7GwsK+urq6trKupqKinp6ampaSko6KioaCgnp+fn5+goaKlpKSloZuRiZ2fdXuBiI2anKSss7vBxs3T193h5ent7/L09/n7/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pr59/Tx7+vo5ODc1tHMxL65s6ijrLzCyM3P1NTQ2tTV09HSztLM1NPT0tLS09PR0dHS0M7Ny8bGxcXFw8DAwL27u7u6uLa6ube2tbSysK+tq6urq6qpqqqpqKampqakp6impKSjoJqinqGeoZ+lqqmjnpyVpaFtc3h+hYyTm6KnsLe9w8rO1Nje4ubp7fD09vn6+/z9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz7+ff18e/s6eXh3djSzsnCu7ivo52dnrzOy8zS0NLQ1NjU1tXU09XU09PT09PT0dHR0M7LycfIx8fHx8XEwsLAv76/v727urm4t7e2tLOzsrCwsLCwr6uqqqmopqWkpKWkoqCfnpyfn6CknKKlopuemLDFkGprcXd8gYmQlp6lq7O6wMbM0dba4OTn6+7x9Pb5+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38+/n49fLw7uvn4+Db1dHLxL27tq2hm5WQkJ/B2NLM0dPTztTb09bU09PS0tHR0M7Ozs3Ny8rJyMfHxsXEwsHBv769vb27ubm5uLi4t7a0sbCvrq6urq2qqqqqqainpqSkpKKhoqKhop6aoqGcnKuzxZRbX2Rpb3Z8goePlZujqrC4v8TJ0NTZ3eLm6ezw8vX3+fv8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pv6+Pbz8e/s6OXi3djUzsrDvrexqaWblJGMhYCJo87T2c/N0s/Z0dLT09HPz87Nzc7OzczLy8bFxcTDwsC+vLu6ubq6uLe1tLOzs7OxsLCvrq2srKurq6urqamoqKeoqKimpKSioZyZoqaxzbFvVllcZGdjb3p7goeMlJqgqK+0vMLHzNLX29/k6Ort8PP19/r7/P39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz7+vn39PLv7enm49/a1s3Mx8C6s6yno5mRi4mGfX90am6DrsnPwMbJzdDR0M7Pz8/Pzs3My8rIx8bGxMK/vry8u7u7u7q5t7a1tbW0srGysbCvrq2trampqKenp6ioqKioqKWjoaG2vJVXSk5JUFhYXmdmcXt0gIeMkZmfpayzuL/Fys7U2N3g5enr7vHz9vj6/P39/v7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+PXz8e7r6OXh3NnSzcfCvrqzrqShnZWQjX94d3BqYWNuqaewt7/GysvKy8zMy8vLysnJysrJyMfFwsC8vb29vby6urm4t7e3trSzsLCvrq2srK2kpaWmqKmqrKytrKuln56fj0g7SUhIVFZaYmJqb3Z8iIWMkpefpKqxt7zDyc3R19vf4+fq7O/y9Pf5+/z9/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz7+vn29PLw7Orn5N/b3NXMx8O+uLStpaCZkoyEhHp3dGxjXa+dn6e0vsPFxsfExMTExMTExcPCwsPDwcC/u7u8vby6ubi2tbW1tbWzsrCxsbGwsLGzuLq7vL2+vby1tLStopiVl2pBQ0pMT1daXWhob3eAfoeLkpiepaqwt7zByM3R1dre4uXp7O7w8/X3+fv9/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38+/v59/Xz8e7r6ebh3dfU0M3Hv7m4sKejnpqXjouIf3h2cmO/lpuksbzDxcbFwMDAv7++vr26urq7u7u5uLu8vLy7urm4urm5uru7urm4ubq6uru9v8HBwL68uLOwr66tqJ6WlZlYQUtPVVdcY2hqb3ZxgYiOkJecoqmutLvAxcvQ1Njd4ePn6+7w8fT2+Pn7/f39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f38+vj39fPw7uvo5OLc2dTQzMbAvLWyrKahm5SQioJ9enJwqZ2goqq5w8PJy8rKycjIyMjIwsPDw8LBwMC9vr6+vr69vb29vLu7urq6wcHBwsTGx8jIx8XBvLe0sq+xrKSbmY6tRUlOU1dcYmZrcHd9gYaNkZmdpKqvtbu/xsrP1Nfb4OPo6u3v8fP29/r6+/z9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/f39/Pr49/b08u/s6ebj39zY08/KxMC6trCrpZ+ZlZCHgn93cpibn6KpuMDCx8nJycjHyMfIycbGxsXFxMPDxsbGxsbFxcTCwsC/vr6+vr2+v8DCxMbHycjFwby4tLOzsq2kmZiZu0hMUVZbYGZqcXZ9g4iNk5idoqiutLm/w8nN0tba3uLl6evu8fP19/j6+vv8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f39/fz6+fj39fPx7uvo5uPg3NjUz8nFwLy2saymoJuZjYmFf3eAn5+iqLa/wMXGx8jIx8fHyMnKycnJx8fHx8vLy8vKysnIxcTDwsDAv7+7vb/Bw8bIysrIxsK9uLWzs7CspZmVmatNUFZbYGZscHZ7goiNkpmdpKivtLq/xMjO0dba3eHl6Ovt8PL09vj5+vv7/P3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f38+/r5+Pb08vDt6ujm49/c2NTOysXBvLeyrKain5ORioV+da6eoqayvsDDxcbHyMjIx8nKysrJyMjIyMjJycnJyMfGxcTEwcC/vr6+v7/Bw8bJy83Ly8jDvbm2tLKvqqOal5aEUFRaX2VrcXZ7gYiOk5ieo6qvtbq/xMnN0tba3uHk6Ovt7vHz9ff4+vv7/Pz9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+vj39fPx7+zq6OXh3tvX0s7KxsG8t7KsqKOZl4+KhXe8mqKlsb/BxcXGx8jIycnJysjIx8fGxsfHxsbFxcTEw8LDwsHAv769vcDBwsXHys3NzczJxL65trWzsaufmpuea1NXXWNpcHZ7g4iPlZqgpquwtLq/xMjN0dfa3uHk5urt7vDy9Pb3+fr7+/z9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/fz8+/v59/b08/Hu7Orn5OLf29bTz8vGwb23sq6on56Uj4uBvZqipbG/wcXFxsfHx8nJycjGxsXFxcXFxMfHx8fGxcXExMPCwcDAv7+/wcLEx8rLzs/NycW/u7e1sLSvn5eapVtXW2FnbnV8gYiNlJqfpaywtrq/xMnN0tXb3uLl5+ns7+/x8/X2+Pn6/Pz8/f7+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/Pz7+vn39vXz8e/t6+jl4+Db2NTQy8fCvbezrqakmpWPiq6aoqSvvcHDw8bFxcbIycfGxcbGxsbFxMTHx8fHx8bGxcXEw8LCwMDAwMHDxcjKzM7QzsrFv7u3tq2yrqCXmapTW19mbHN6goaMkZifpKqwtbzAxcrO0tba3uHl6Onr7vHx8/X3+Pn6/Pz8/f3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8/Pv6+Pf29fLx7+3q6Obj3tvX1M/KxsG7t7OrqZ6Zko2fmqOkrr3AwcHGxMPFyMjGxMfHx8fHx8bFxcbGxsbFxcXDw8LBwMDAwMDAw8XIy87P0M7KxcC7uLazsKqcl5uzV15iaXB3foaKkZeepKqvtrvAw8nN0dXa3eHk5+rr7fDy8/X3+Pn6/P38/P39/v7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38/Pz6+vn49/Xz8vHw7uvp5uLg29jUz8vFv7u3sqqloJeUmZ6coqe7vb/Fw8PDw8TExcXExMPCw8PDw8PExcXExMPExMPDwsLBwcC/wcLFyc3Q0dHPzMfAu7i2sbapm5mYv1xgZ210fIOJkJeepKmwtbnAxMjO09ba3uHl5+rs7vDy8/T1+Pr7/Pz8/f39/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+/v6+ff29PPz8fDu6+jl4t/c19PPycO/uLStp6KZk5Wimp6lt7u8wr+/wMDAwMHBwcHBwMDBwcHCw8TEw8LCw8LCwsDAv7+/wMHCxsrN0NHR0MzHwLu4trG1qZqXlq9aY2pxd4CGjJSaoaets7i9xMjM0tba3eHk6Ons7vDx8/X19vj6/Pz8/P39/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f39/Pz7+/r59/b19fTy8O7s6Obi39rW0s3Hw7q4saqlnJSQqJeaobK3ur28vLy8vb29vb69vby9vb29v8DBwcHBwMHBwcDAv7++vsDBxMbKzdDR0tHNyMG8uLays6iZmJeZXWdudXuEi5GZn6essri9wsnN0dfb3+Lm6Ovt7/Hy9PX39/j5+/z8/Pz9/f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/f38/Pz7+vn39/b19PLx7uvp4+Dc2NTOycS9u7SspqCWj6uWl56ssre3uLi4t7e3t7e3t7a2t7e3t7m6u7y8vL2+vr6+vr+/vr7AwcPGys3P0dPRzsjBvLm3srGompqbhGNqcXh/iI6VnaSrsba9wcbN0tbb3+Ll6ezu7/Lz9PX3+Pn5+vv8/Pz8/v7+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/f39/Pv6+fj39vTz8u/s6uXi3trV0MrGv7y1rKahmZCqlZWaqK6ysrKysbGxsbGws7OysrOzs7O1tre4uLm6u72+vb2+vr6+vsDBxMjLz9HT0c7Jwr25t7KxppqaoXJmbHN6gYqRmKCnrrS5wMXK0NXZ3uLl6Ovu8PL09fb2+Pn6+/v8/P39/f7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/v39/f38+/r59/b19PLv7Oro5eDc19LLx7+6tKykoJmQoJGTlaKnq6ytraysraysrK6urq2trq6usLGys7S0tre4ubm6ubq7u7y9v8PHy87Q0tDNyMK9urizsaOZmqZlZm52fYSNlZyjq7K4vcTJzdTY3OHl5+rt8PL09ff39/j5/Pz8/f39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v79/f39/Pv7+vj39vTy8O3q6OXg29bQysa+t7GqopyWj5KMj46coaOmp6ampqWlpqWmpaWmpqanqKmqq6ytrrCys7O0tbW1tra6u73BxsvO0NHPzcjCvbq4srOgmpusYmhxeYCIkZigp6+2vMHIzdLY3N/k6Ort8PP19vj4+fn6+vz8/f39/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/f39/fz8+/r5+Pb18/Dt6ubj3tnUzsfDvLWwqqCZk42JiY2LmJydoZ2dnZydnJycnp6enZ6fn6CioqSkpaepq62ur7CxsrKzuLm8wMbKzdDQz8zIwb26ubK0n5uctGNsdHyDipSbo6qyub/Ey9DV297i5+rt7/L19vj5+vr6+/v8/f39/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v///fz8+/r5+vf18/Lv6+jk39vY0s/Gu7ewqKGbk42Ig4iCf42ZmpmYlpOSlJSTkZOUlZaVlZWVlZqfnZudoaShp6qpqq2vr7O1uLzBxsrMz8/Mx8C7uLeyrKSZlLtmb3V+h46XnqautbrCyM3S2d3i5ent8PL19vn5+fr7+/z8/Pz9/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///////v7//v38/Pv6+fn39fPx7urn3t7c1crEvre3r6ehm5KIg3yDf3uFjpKTkI2Li4uMi4mJiYqLjI6QkZOQj5WZm5uao56fpaemqa6xsra6wMXJzM7Oy8a/ure3squimpm9aW93gIiQmaCosLe8xMrP1dvf5Ofr7vH09vj5+vr7+/z8/f39/f7+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7//////////v38/Pv7+fj39fLw7uvn497a1MzFv7avsKedl5OLg39yenp0d3t9goSDgoODgoF/f3+BgYSEhoaHhoiPkpCSmZeZnJ+go6Wmq66xtrzCx8nNzcrFvrm2trSroJuas2xweoOLk5yjqrO6wMfN0tfd4ubp7fHz9vj6+/v7/Pz9/f39/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+//////////79/Pv7+vj39PLu7Orm4d7X1dDLwruyqqegmJKKgHp2fIqYpbTEz9fOzczNzczKyMzJxb20qqGcjoV+fICEiIyNlJiYl5udnqOlqrC3vcPGysvJxL65trWzraGZlp9rc3uEjZWepa21vcLK0NXa4OTo6+/y9ff6+/z8/P39/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v////////7+/fz7+vn39fHv6+jl4dzY18/Evbq0qqWalI2Nlae/0dDU1NHRzs3Nzs7NzM3NysnExcfIx8bEw7+/uaiZjYaCiYOFi46Nkpqbn6Wrs7nAxMjIx8O9uLe2sqygmZeSbHV9ho6Wn6eut77Ey9HW2+Hl6ezw8/b4+vz9/f3+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz6+fj28/Hu6+fj4NvV0cbDvbewpZ+eoa7E1tvY09HU0c7Nzc3MzMnJycnIx8bGxsbGxMPCwcG/wb++v7yunYV/fYKJi4+SlZigp621vcHFxMTAu7i2trKrnJyejXF1foeQmKGosLnAxc3T19zi5urt8fT3+fv8/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pv6+Pf18+/t6eXh3NjSzMe/vrWooqW2ytvY1tXT0dLU1NHOzs7My8vJycnIx8fGxsXFw8PCwsHCvr67t7a3trK6rJaBeHyDiIuRmJ+mr7a7v8DAvbm2tbSyqpucoINydn+IkZmjqrK7wcfO1Nnd4+fs7vL1+Pr8/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pv5+Pf18/Ds6uPf2tbRy8S/ua+lrsTU2d3S0NDS09HOzsvJycvLx8XFxcXDwsHBwcK+v7+/vr69vL++vb26uLe4tbOzr5+Ifn+EipGYoKmxtry+vru3tLOzsaudm5t5b3eBipKbpKy0vMPIz9Xa3uTo7fDz9/n7/f7+/v7////////////+/v7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/fz7+vfz8fDt6OTf29LMycK4sKi3ytjb2tfX1dPT0M/OzMvKyMXFxMPCwsLBwcC/v76+vb28vLy8vLy6urm4t7W0srOxrquurJZ3foCKk5egrbG3urq2s6+sr6ypmpmhcXR8g4yUnKWttb7FytHX2+Dl6e7w9Pf5+/z9/////////////////////////////////////////////////////////////////v7+//////////////////39/f39/f39/Pz7+/v8/Pz8/Pz8/P3+/v7+/v7+/v7+/////////////////////////////////////////////v39/fz7+ff08O7s6OLd1c/OyryxsLLP1dvd2dXS0tLSz87Ny8jIx8XCwsHBv76+vr29u7u6urm5ubm5ubm5uLi3trW0srKur6+rqa2uqY19fIWPmKKosbW1s7Gtqq6rqJqZonF0fIOMlZ2mrra+xcrR19zg5uru8PT3+vv8/f///////////////////////////////////////////////////////////////////////////v7+/v39/f39/f39/Pz8/Pv6+vr6+vr7+/v6+vv7/P39/f39/v7+/v7+/v///////////////////////////////////////v38/Pz6+ff08ezp5uHa1MzMxLqzr7vS19jY1dPQ0tLPzcvKyMbEw8G/vry8urm6uLi3t7a2tbW0tLS0tLS0tLS0tLOysbGwsq6qqKWkp6qbmYh+h5WfoKqtr62sqqmtqaaamaNwdHyEjZaep6+2v8bL0tjc4ebr7vH0+Pr7/f7///////////////////////////////////////////////////////////////////////////38/Pz8+/v7+/v7+vr5+fj39vb19fb29vb29vb3+Pj5+vr6+/v8/P39/f7+/v7+/v////////////////////////////////79/Pv7+ff18e3p5eHb083Jwbmvssve29bW1dPT0dDQy8jGxcPBvr27ubi3tra0s7GxsrGwsK+vr6+vr6+wsLCwsLCwsLCvr7KsqqqppZ+bn6SZhX+KlJyip6mnqKemqqWjmpekb3R7hI6Xn6iwt7/GzNPZ3eLn6+7x9fj6+/3+//////////////////////////////////////////////////////////////////////7+/v78/Pv7+vr6+ff39/b19PPz8fHx8PDw8PHx8fHx8vPz9PX19vf4+fn6/Pz9/f3+/v7//////////////////////////////v7+/fz7+ff08u7q5eHc1czGu7WtutPd2djY1tbV09DMycbEwb+8uri2tLOxsK6vra2qqqqqqKioqKioqKipqampq6usq62trKypq6yqqKSioZ6cl5OLgIeYm6Gio6SjpKijn5iWpW10fIWOl6CpsLjAx8zT2d3i5+zu8fX4+vz9/v///////////////////////////////////////////////////////////////////v79/fz8/Pv7+vn49/f09PPy8O/v7u3t7Ovr6+vs7Ozs7e3u7/Dw8fLz9fb3+Pr6+/v8/f3+/v7+/////////////////////////v7+/fz7+vj18e7q5d/a1M3EvrCswNre1dPX09HQz83Kx8S/vLq3tbOvrauqqKempqWkoqGhoaGgoKCgoaGhoqKioqOkpqenqKioo6mopaWkop+fmZWVlIqEjJSZnJ2fn6CkoZyWlKRrc3yFjpigqrG4wMfM09nd4ujs7vH1+Pr8/f7////////////////////////////////////////////////////////////////+/v38/Pv6+vr5+Pf19PLy8O/u7evq6ejn5+bm5eXl5ubm5+fo6erq7Ozu7/Hz9PX29/j5+vv8/P39/v7+//////////////////////7+/v37+vj18e3q5eDZ0svDurOuytrZ1dTU19DPzcrHw767t7Syr6ypp6WioZ+enZycm5mZmJiXl5eXmJmZmZqampudnZ+goaGio6KjoaKnp6CcmpiVkIyPi36LkJSVmZucoZ6ZlZKkaXN8hY6YoKqxuMDHzNPZ3eLn7O/x9fj6/P3+/////////////////////////////////////////////////////////////////fz8+/r5+Pj29fTy8O7s7Ono5+Xk4uHg397d3dzc3Nzd3d3e3+Dh4uTl5+nr7e/v8vP09ff5+vr8/P39/v7+///////////////////+/v78+vn28+/r5+Lc1MzFvLKszdTY1dPW1MzLycjFwLu3tLGvrammpKCfnZqZl5eWlJOSkpKSkpGRkZKTk5OUlJWVl5iZmp2dnp6iop6doJ6amZeUlJGMi4yHhIqOkZaWmp+dmJOQo2hzfYSOmKGqsbi/x8zT2d3i5+vv8fX4+/z9/v////////////////////////////////////////////////////////////////z8+/r5+Pf38/Lx7uzq6Ofi4uDf3dva2dfW1dXU1NTU1dXV1tfY2dre3+Di5efp6u/w8fP19/j5/Pz8/f3+/v7///////////7+/v7//vz7/Pj39e/r5+HX1czEwrCmzdfX1tXU0c7MyMXBvLizraunpaOfm5iXlpGQkI+Ojo6OjIyMjIyMjIyKi4uMjY2OjpCQkZOVlpiYmZqbnZycnJuWlJKPjIuHhn6Ah4+PlJKWmJKSi7Fncn6GkJmiq7K5wcfO09ng5Ojt7/H1+fv8/f7//////////////////////v7+//////////////7+/v/////////+///+/v/+/fz7+vr49vTz8u/u6+fk4uHg3NrW1dLRz87My8rJycnJycjKy8zMztDT1dbW2Nrf5Ojn6evt7/L09ff4+fv9/v79/f///////////v7+//78+/v39fLs6OPc1s3JurCwzNLV1dTT0c7Lx8LBu7axrailoJ2cmZWTkpGOjo6NjIyMi4uLi4uLi4uLioqLi4yMjY2NjY+QkZOTlZaXl5iamZmYlZSRjouJhoSCfIKEjIyPlZWQj4mvZnF9ho+ZoauyucHHztPY3+Tn7e/y9vn7/P7+//////////////////////////////////////////////////////7+/f39/fz6+vr59/Tx7+7p5uLi4uDa1dPRzsvKyMbEw8LCwMDAwMDDw8TExMbHyMjLztHU19jZ4ePl6Ort7/H09ff5+/z8/Pz+/////v/////+///+/Pr69fLv6ePd1s/Fv7SnytnU0tLR0M7JxcK6t7KuqaSfnJeWlZKQjo2NioqKiomJiYmIiIiIiIiIiImJiYqKioqKiouLjI6OkJCRkpOUlZWVlZSSj42Kh4SCgnp8eoKGiZKQiouHqmZwfIWPmKGrsbnBx87T2N/j5+zw8/b5+/z+/v///////////////////////////////////////v7+///////////9/Pz8/Pv5+Pj39fLv7Onn4d7c2NXSz9DGxMG/vby6ube2tbSzs7S0sLK0tri7vb/BwcHFys7R0tnc3+Ll6Ovt8fL09/j5+vr7/P7+/v7+//////7+/fv5+PPw7OXf2NDJv7iqwdfR0NDQz83JxL67sq+ppaCcl5WSkZCPjY2LjIiIiIiIiIiIiIiIiIiIiIiKioqKioqKiomJiImLi4yMjY6PkJKSk5OTkY6LiIWCf356dnd4goSLjIiIhaZlb3uFjpihqrG4wMfO09jf4+bs8PP2+fv8/v7///////////////////7+/v79/f39/Pz8/Pz8/Pz8+/z8/Pz8/f39/Pz7+/v59/b08u/s6eXi39zZ1dLNx8PBwb66trGwr6+pqaeop6empqSlp6irra6vrLW+wsLBxcrQ09fb3uHm6ezu8fT29/n6+vz9/v7+/v////7+/fz5+Pbx7eni3NTLxbuqs9LSzNHQzszJxb+4tKqno56alpOQj4+NjYuMi4uIiIiIiIiIiYqKioqKioqKiYmJiYmJiYmHiIiJioqKioyMjY6PkJCQkY+MioeDf315fHZ0cHuDhIiFhIOjZG55g42XoKmwuMDGzdLX3uLm6+/y9vn7/P3+///////////////+/v39/f39/Pz7+/r6+vr6+vn5+fn5+fr6+vr7+/v6+vn59/Xz8O7r5+Tg3NnY0MfGxMC6t7Cvra6yucHFzs7Ozs3MysjMycS9tq+ppqioqq60usDCxMjN0dXZ3uLn6u7x8/X3+fn7/P39/v/////+/fz6+Pb07enl3tfOxbutr8vP0cvSy8vHw722sKukoZyZlZKPjYuLioqJiYqKiIiIiIiJiYmJiYmJiYmJiYqKiomJiYmJiYmJiomJiYqLi4yNjo6Pj46Oi4mGgn57e313b3BxgH2FgX5/m2FrdoCKlJ2nrrW9xMrQ1dzh5eru8PT3+vv9/v7+/v7+/v7+/v79/fz7+/v8/Pv6+vn4+Pf39/f39vb29/f39/j4+Pj39/b29fPw7uzq5eLe2tXSzsrEwLiurK67wszU19TPzMzMzc3LysfGxcTDwsC+vLu6sKSgpK61ubq/xcrO09nd4OPo7O/x9Pf4+fv8/f3+/////f37+ff08erl4dnRx72xp8jQ0M7OzsjFwbu1rqejnZqWk5COjYuKiomIiYmJiYmJiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYqKiomJi4uLjIyNjY2Ni4qIhoJ/e317dXJybHZ2fnp3eZRdaXN9h5CZo6uyusDHzNLa3uLo7O7y9vj6/P3+/v7+/v7+/v39/Pv6+vn5+Pj39/b19PTy8vLy8vLx8fLy8vPz8/T08vLx8O/t6ufm4t7Z1dDLxsK6sq6vt8jX1dbU09DQz9DNzc3Ly8jHxsDAv7+/v728vLy7s6iioqaus7q/w8nP1Njc4ebp7PDz9vf5+vv8/f7//v38+/n29O/o4t3VzMG3qb3Mz8vOzcvFwby3sKminZiWko+OjIqKioqJiIiIiYqKioqJiYmJiYiIiIiIiIiIh4eIiIiIiIiKioqJiYqKiYqKi4uLjI2Ni4qJiIWCfnx+enN6dGxpcHh1cnSQW2dxeoSOl6Gor7i9xMrQ2N3h5urt8fX4+vz9/v7+/v7+/v78/Pv6+fn49/T08/Lx8fDv7e3t7e3t7Ozt7e3u7u/v7+7u7ezr6OXi4NzX0s3Hwb21rrDC1NvZ2NTV1dTR0M/RzMvKx8bFxMPEw8HCwsLAvrm1srO0sKegoaats7i9xMrS1tzh5ejt8PT2+Pn6+vv8///9/fz59fHr5N/b0Me/rqjM0MrLx8jDwLy1r6mjnpqTkpCMioqIiIqKioqJiYmJiIiIiYmJiYqIiImJiomJiYqKiYmJiYmJioqKioqKioqKioqKioqKioqKiYeFgoB/fnl5fXlyXm9xcW1yhVJdZ3Z+iZOaoqyzub7FzNLY3eHm6vD09vf6+/v7/Pz8/Pv6+/r5+Pj29PP08+/u6+rn5uno6Ofm5ubm5eXm5+bn5+fo6Onl4OHg2tXWzcXDv7evqsLX3NjW1NHV1NHOzczJyMjHxsTDwsLCwL++vby7urq3trW0sq+urKSfn6qztrm/x8zT2eDn6uvu8PP2+Pr7/P/+/Pv69/Pv6eLc08vCtKm60M7JycTFwr24saqloJqXkpCPjIqKiIiKioqKioqKioqKioqKioqKiYmKioqKiomIiYmJiYmJiYqKioqKioqKioqKioqKioqKiomHhYKAf317fXt9fGJqbG9rboJWYWpweISPl56lqbO5wMbN1Nvf5Oju8vT2+Pr7+/z8/Pv6+vj39vTz8vDu7Oro5uXj4d/f3t3d3Nzc3OHh4uLi4uPj4d7f4N3c2NPOycXAuqypxNfd39rW19TR09DNzMvJyMbFxcPBwL+/vr28vLu6ubi4trW0s7Gurausp6Ken6eyur3DzNLW2+Ln6+3x9Pb5+/z+/Pv6+PXw7OXe2MzGuaquydDJycjBw8C3squkn5qUkZCPjIuKiYiJioqKioqKioqJiYmJiYmJiYmJiYmJiYmIh4eJiYmKioqKioqKioqKioqKioqKioqKiYqIhoWDgYB9gX97gYRqYWRqZ2h6Ul1kbnR8ho+YoKWss7q/xc3V2d/j6e3w8vX3+fn6+vr5+Pf29fPx8O3r6ePi397e3d3b1tXV1NTU1NTW1tbX2NnZ2djV1tfUz8zJwrq0s6620dfb2tfU09XT0M/NysjHxcPCwMC+vbu6urq5ubi4t7a2trW0s7KwrayrrqejoJuZoq6zvMXJzNPb4ubp7fH09/n7/vz6+ffz7eni2dPHwbOmvMnLx8jFv8C6sq2moJqWkY6MjIuKiImJiYmJioqKioqKiIiIiIiIiIiJiYmJiYmIiIiIiImKioqKioqKioqKioqKioqKioqKioqJiIaEhIKBfoWAf4OIeFlbYGBicE1XX2pweIGIkJmgpa21ub7HztLY3ePo6+7x8/X29/f39vTz8vHu7Orn5OHe3NfV0tHR0M3MzMvLy8vLyMnKzM3OztDOz8/MxsPCwL6wray92d3c1NTW1dPQzcvLycbEw8C+vbu6uri3trW2tLS1s7OzsrKzsrGwrqyrqqSkpKSfmpqeqbK6v8XN1trh5Oru8fT3+f78+vj28evm39TOxburq8nFx8jGwr28ta2popuXlJCNioqKiIiIiYqJiYmJiYmJiYiIiIiIiIiIiIiIiIiIiIiJiYmJiYmKioqKioqKioqKioqKioqKioqKiYiGhYSDg4CGgIWEiYpaVFVVWWVFTllfaHR9g4iRl52krLK4wMjL09fe5Ojr7vHy8/T19PPx8O3r6OXi3tvY1dTRzczKx8bDw8LCwcHBwcTEwsPCwsLDwsbFwL29ubSsqK3K2tbZ1tXV09HNycfHxsPAvry6uLe1tLSysbGwsK+vr6+vr7Cwrq+urayrqqmko6Gfnp2bmKClrLS9xMvQ2+Dm6+7x9Pf9/Pr39O/o49vRyMCyprPKxMjIwry6t7KqpJ6YlJKPjIqJiYmIiIiIiYmJiYiIiIiIiIiHhoaGhYWFhYWFhoaHiIiIiIiIiYmKioqKioqKioqKioqKioqKiomIh4aFhYWFhYSKiIuVbFNVU1RfRUtTV19ocHV8ho2VmqGpsLjAxM3R2N7j5+rt7/Dx8vHv7ezp5+Tg3NjU0czLyMTBvbi1trW0tLOzsrO4uLm6u72+vrq8uLS1tKyknavP3dXW1dbRzsvIyMbEw768uba0s7CvraysqqmpqKioqKioqKmpqqioqamoqKenqqOdnJyamJeXmaCstbvDy9Ta4ebq7fL1/Pv49vLs5eDW0MS6q6q/xMTGxL+7trCupqCZk5GOjYuIiIiJiYiIiImJiYiIh4eGh4aFg4KBgH6AgICAgYGCg4OEhIWGh4iIioqKioqKioqKioqKioqKioqJiIeHhoaGiYSLjY6RmohGTk9PWERERVFWYGpxeX+CkZGVnqastLvDyNDW29/j5unq6+zr6efm4+Hd2dTQy8jDv7q2s7Kxr6uqqainpqampqanqaiqq6uuramoqKOeoLDW39bS0tTT0c7Jx8XDwLu2s7CtrKmnpqWko6KhoKCgoKCgoaKjo6OjpKOkpKSko6Whn5yalpKOj5CWoaqyvMfN09vi5urv8/v69/Xx6+Pe0tDBt6iwy8DCwb+8u7SqqqOdl5GOjIyKiIiJiYqIiIiJiYmIh4aGhoOCgX98enh4enp6ent8fX6AgIKDhYaHiIqKioqKioqKioqKioqKioqKiYiIh4eHh4yFkY2VmJqdYnqMnLm7w8LDxMfGwLSkmpCNjpeeo6qyu8DIztPY3N/j5OXm5ePh39rY08/KxcC9trOusLW+x83R0M/OzMzLy8nFv7evpqCcoJ+en5yVmqna2djU1tXPzs7NycK9vLm2r62qp6WkoKCenp6cm5uam5qampydnZ+fn5+goaGioqKgoZ+cmJOOi4aJjZOeq7e9x87X3+Tp7vP8+vfy7ung2dPBwK+hu8DBwr+8urawqqadmpOOjIuKiYqJiYmJioqKiIeHh4aFg4F/fXt6eHd1dHFwcHN0dHd7eXx/goOFhYaHiImJiYiJioqKioqKioqKiIiHh4iIiYmKjY+SlZibnqeqr7O3ur6/wcLDxMLBvrzAtqWVkJWirLC7vr/IztPf2uDf297d2djPz83Iw721rrS+zNXW1NLQ0M/OzcrKyMfHx8XDxsfAtaCVj5GLiKXT19bV0tHOy8nGwr24ta+sqqWjoJ2amZeUlJOTk5KSkZGSkpKRk5SVlpqbm52dnZ+enJuYlpOQioeDfnyAlaettcPK09ji6Ozv+vn18Ozn3tfOwLyrqL7Av8C/ure0rqijnJeSjYuKiomJiYmJiYmKioiGhoWFgn99eHZycW9saWhnZmdpa2xucnR4fH+Bg4SGh4iJiYmJiYqKioqKioqKioiIiIeIiImJi42Pk5WZnaCoq6+ytrq9wMDBwcPBwL28ubi2squglY2nrK+5xsrJz9nZ19XW1dDOzMXAvLSvvdHZ2drZ1dPR0M7NzMvJyMbGw8TDwsTHyMTMwKyKep/O3NXU0dDNy8jFwL24s66qpaOenJmXlpOSj4+Pj46Ojo2Njo6OjpCRkpKUk5WWl5eXmZeVk5GNioN/fHN0c3uTpq+4xs7V4eDi8fn49O7q5NvTyL+1prLAvb+9ure0sKykoJmWkYyLioqJiYmJiYmJiYmIhoWDgX97eXNva2dkYV5cXVxeYGFkZ2xvc3d7f4GEhYaHiYmJiYmKioqKioqKioqIiIiIiIiJiYyNkZOWmp6hqKuwsra5vL6+v8DAv769u7q2sa+tqaKdnJ6ksbq+vsLJys3PzcvIxsK+s623zdjW2tjV1NPT0c7LysnIx8XDw8HDwsHBxMfKysvQwLLJ28rS0M3LyMXBwLe0r6qloZ2al5WSkI+OjYuLi4uLioqKiouLi4uMjI2Oj5CRkpOTk5KTkIyKh4F7dnNramRid5SttsPHz9zi5e759/Pt6OLZ0MS9rqO6v7m/uri1sa6noZyWko6LiYqKiYmJiYqJiYmIh4aEgX98eHRvamRfXFhVUlJTVFdaXF9laW50eXx/goSGh4mJiYmJioqKioqKioqKiIiIiIiIiYmMj5GUl5ufoairrrO1uLu9vby+v728urm4tK2rqqqpp5uZnaWss7e4vsLGxcLBv7q3q6/G2dzY2NTS09LT0s3Kx8jGxcTCwcHAv7/AwL/CxcfGyMvMzc/PzcvJxcO+urivrKainZmVk5OQjo6NjIuKiYiIiIiIh4eJiYmJioqLi4yMjY6Pj46MioiEgHx3cGtlY2BZVlp0n6+5xNPX3ubo+ffy7Obf1s3BvKeivby4vLi2sq+rpZ+ZkpCMiomJiYmJiYqKiYmIiIiEgoB8eXRvaGNcVFFNSkdHR0hMTlJYX2VqcHZ5fICDhYeJioqJiYqKioqKioqKiomIiIiIiYmKjY+SlJebnqCpqq2wsrW3urm7uru7ubi3s7Ozsa6pop+inZmZoKqwr7W4ube2uLStprXM3NzU09rW1NHOzcrJycXEw8HBv7++vLq5vb+9v8LAxMLDysnGy8jFw7+7uLSwqKWgnJeUkY6Pjo2Li4uLiomJiIiIiIiIiYmJioqJioqKiYmJiYeFgoB9eHNvZ2JcVVRST0tGUHKwu77P0tvi6Pj28erk3dPKv7ijp7u4uLm3tLGtqKOdl5GOi4iIiYmJiYmKiomJiIeFgn58eXRtZ2FaUUtGQz89PT1AREZKUllhZm10eHt/goWGiYqKiYmKioqKioqKioqJiYiIiImJio2OkZOVmZyepairrK+ws7W2tba3trW0tLKxr6yppqWlnqOhmpeZoaiorKutsKykobTS4dfO19vRzc3MysbFxcXAv728u7q6ubq4tbi8vL2+v8PDwL/FxcPBvru3tK+rqKGfm5aTkI6NjIqJiYqKiYiJiYmJiYmJiYmJiYqKiomJiYiGhoOBfHp3c21mYVpSTkhDREQ/Pj5Fg7bBydLg4un39e/o4trQx7uyoa+5tbm1tLGuqqagmpWPjYuIiIiJiYmJioqJiIeGhIB7d3NsZV9XUEc+Ojg0MTQ0Nzs+Q0tUW2JqcXZ5foKEhomKioqKioqKioqKioqKiYmIiImJioqNjpCSlJeanKGkpqmqrK+wsLGxsbGxsK+vrquppqSjopykp6SbkI+cnqGhpKOZnK7Z1dPW19TR0szLysjFwr69ubm3t7W0tLS3tLO0tre4uru5urq4u768ubazr6umo5+cmZWRj42Mi4uJiIiJiYmJiIiIiIiIiYmJiYmKiYmIiIiGg4F/enVxamZeWFBKQj86NjYzNDc1O1aoxc7S3d7p9vTu5+DYzsW5rqC1t7S7tLOwrailn5iTj42KiIiIiYmJiYqKiYiHhoJ+eHRuZ19YTEU8My8sKScqLC4yNTpETFddZ290eH6ChIaJioqKioqKioqKioqKiomJiYiJiYqKjI6QkpOVl5qfoaSmp6iqq62ura6tra2sq6mmpaSkoqGioaGoq5iGiZGUk5WUj6jZ19bU1tXQzcvNycTBv726t7S0s7KxsbCwrq+xsrK0tba5t7i6uri3tbOxrqmloZ2amJWRjo2Li4qKiYiIiYmJiIiIiYmJiYmJiIiIiYiIiIaDgX57eHNtaF5YUEdAOjMvLjApIyosMEWQtrjI0dvb5/fy7efe2M7Ct6ibuLa1srOzsKumoZyXlIyLiomJiYqKiYqKiIiJh4SDe3VwaWJZT0Q8MCoqKygjIyQmLDA0PUVPX2FucXd7g4WHiYqLioqKioqKioqKioqKioqKioqKioyMjo+SlJWWmpucn6GipaWmpqampqamp6empaOioKChoaGkpqmvnHmJhI2Eg6XQ3dbU09DPzcvJxMK+urezsK+srKuqqaioqKioqaqrqqysra6ur66trKupp6OhnpyYlpGQjoyLi4mIh4eIiIeHhoaHh4aGhoaHiImIh4eHhoWDgH14cm9sY1pQSUA6Ni8pJykmIiQjKlmdqLK9yNLa4en28evl3dbMwLSnnre1tLKzsK6ppaCblpOMi4qJiYmKiomKioiIiYeDgXlybWZcUkg7NCsoJiQjIyMkJystMjtGUFZfbW93fIOFh4mKioqKioqKioqKioqKioqKioqKioqLjI2OkJGTlJaYmJqdnp+goKCgoaKioqKioqKhn56fn6GipKSnsamUcX96eJTR2cvU0s/Oy8rHxb+8uLSyrqupp6alpKSioqKjo6SlpaaoqKmpqqqpqKempKKfnZuYlJOPjoyMioqIh4eHh4eFhIOCgYCAf4CAgYKCgoKCgYF/fnp3cGplYFZMR0E4LScnJSMjIiMhLmKUoKq1v8nT2uHp9e/q49rTyLyxpaO2tLKxsa+sp6OfmZORi4qJiYmJioqJioqIiIiGg352bmdfVUk9MywmIyIiJyw1Nzk5Nzg/R1JSXm1weH2BhoeJioqJioqKioqKioqKioqKioqKioqKi4uMjY6QkZGSkpOVlpeYmZiZmZmampycnJ2dnJybnJ2eoKWkpbC2rndsa4XE087S0M/MycfDv722s6+sqaShoJ2cnJyampqZnJucnZ+goKGhoaKioqGgn52cmZeVk5GOjYyKiYmJh4aGhIOCgH98fHp6eXh5enx8fHx8fXx8eXh0b2lgW1NJQDwxKCgoJCAdIycgOXGKkKauuMLL1dvi6fTv6eHY0Ma6rKSotrKvsa+sqqahnJeSj4qKiYmJiYqKiYqJiImIhYF8c2piWU5CNTEqIyEkLDc/Q0VJR0M/QEJRXGJudXp/goiJi4yLioqKioqKioqKioqKioqKioqKioqLi4uMjY2Njo6Pj5CRkZGRkZKSlJSUlJaXl5eYmZqcmp2kpqatt7eoYmu31c3H0MzLyMXBvLi1raqnop+cmZaVlJOTkpGRkZOUlJWXmJmZmZmampqZmJiWlZOSkY+NjIqJiYiIh4WEg4B/fHp3dXRycnFxcXJ0dXZ2dnZ3dXNxamZeVk5HPTUxLCYlIR8hJB8kS3eDjZ2jsbvFztfd4+v07ujh18/EuKihrbOwr7GtrKmloZyXkY+KiYmJiYqKiomKiYiJiIR+enBnX1RKPTItKSMiKztHS0lMT09PTEhFS2VmbXp6goaIi4yNjIuKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4yNjY2MjIyNjo+QkJCRkpSTlZaYmpiboaenrbK3vImXyczKy8fHxcK+u7awrKSinpuYlJKQj46OjY2MjY2Ojo+QkZGTk5OTk5OTk5KSkpCOj46Ni4qKiYmIh4aDgn99end1cm9saGhnZmdoamttbm9vb21qZ2BaUUlBODErJyckIiMjIR4rWXR/j5ierrS+yNHa4Obt8+3n39bNwralnrCxrq2xrKqopJ+blZGOiYmJiYqKioqJioiJiYeCfHdtZFpQRzsxJyUjKDVETlFXWFlZWllVUEliam99fYWIiouOjo2Li4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uMjY2Njo+QkZKUlpeZmqCkqKuwtLS0wMDIwsPHwL67trKtqKWcm5eVkpCOjIyMi4uJiYuLi4uMjI2Njo6Pj4+Pj4+Pj4+NjIyMi4qJiYiIh4aEgX19eXVxbmpmY19eXl5eYGJjZmZnaGdkYV1WTkU9Ny4oJCUfHyUkICY0Y25/ipCeqa+6xM3V3uPo7/Ls5t7UzMG1pJ6zrqutsamppqKfmpWQjYiIiYmKioqKiYqIiImIgXt2amBXTEQ5LiQhJjNBTFRaYGJiYmBfW1dTWHB4f4OHioyOj4+OjIuMioqKioqKioqKioqKioqKioqKioqKioqJiIiIiYiIiIiJiYqJiouLi4yMjo+PkJKUmZqdoqSorbC4t7nBvcK7vrm2s62ppKCdl5WSkI+NjIqLioqJiYmKiomJiYmKi4uLjIyMjIyMjI2NjIqKioqJiIiHh4aEgXx7d3NtaGRfW1dUU1FSUlRWWFpaW1xbV1NQSUI5My4oJCMlISEiHiVGanWBiZGbo6+9wcrT2uLm6/Hx6+Xd08vAtKOds6yqrLGpqKWhnpmTj4yIiIiJioqKiYmKiIiJiIF7dGleVEk/NiwkHyg9TFJbZmVpa2pnZWJeYlB5gH+IiImNjpCQjo2Mi4qKioqKioqKioqKioqKioqKioqKiomJiYiIiIiIiIiHiYmJiYmJioqKi4yNjo+Qk5eZnJ+hpKistLG5uLi3uLizsayno5+amJSRj46Ni4uJi4uJiYmJiYmIiIiIiIiIiIqKioqKioqKjIqJiYmJiIeHhoaFg397d3FtZmBbVVBMR0ZFRkZISkxNTE5OTElEQTs0LSknIiEiICQhHTBTbnaAiZOapKy0vcbP197k6Ozy8evk3NLJvbGjmqytq6qsrKWkoJyYk4+LioqKioqKioqJiomIiIV+d3JnXFNIQDUqKCA2RlJcZGxwcnNzcnFsaGRadIaGgZCPkJKRkpGPjYuKioqKioqKioqKioqKioqKiYmKioqKiomJiYiIiYmIiIeIiIiJiYiIiYqKi4uMj5CTlZibnqGkp62usbKzsq+vraqmop6alpONjIuJiYmJiYmJiYmJiIiIiYmJiYmJiYmKioqKioqKiomJiYqJiYiIiIiFgn98dnFtZ19aU0tFRD0+PT0+P0FBQ0ZGREJAPDcxKikoIyIiHSQdID5hdHl/iZGcpq22v8bQ1d3j6Ozw8/Dq5NvRyL2wpJqsraqqq6ylo6CbmJKOi4qKioqKioqKiYqJiIiFfndwZltSRz81KyYjPEpXYmpweHp7e3p5dG9qXXKHioeSkJGSk5OSj42LioqKioqKioqKioqKioqKiomJioqKiomJiYiHh4iIh4aHh4eIh4eHh4eHiImKi4yOkZOWmZufoqWoqautraypqaWin5yZlZCPjIuKiIiIiImHh4eHiIeHh4mJiYmJiYmJioqKioqKioqJiYmKiYmIiIiHhIF8eHRtZV9YT0c+ODUzMC8xMjE0Njg5OTc3NDAqKiUkJSEfISYbLkdhdH2Ei5Wcp7C3vsfO1dng5uru8vTw6uPa0Me7r6Kaq6yqqaqqpaKfm5eSjouKioqKioqKiomKiYiIhX12b2RZUEU9MyklJ0NQX2pyeICCg4OCgHx3cWJwio+OlZGTlJSUkpCNjIqKioqKioqKioqKioqKioqJiYqKiomJiYmIh4eHh4aFhYWEhIODg4OEhYaHh4iKjI+Qk5aYmp2goaOkpaWkoqCdnJmXlJGOjIiHhYSEg4OEg4OEhYWGhoeIiIiJiYmJiYqKioqKioqKiYmJiomJiIiIhoN+eXRtZltXTkM5MS0rLCgnKisoKi8vMDAwLy8qJyAhHx8jJSQiMk9reH6EjZahp7G5wMfP1Nvg5uvu8fT27+ni2c/Guq6im6urqaioqaShnpqWko6LioqKioqKioqJiomIiIR8dWxiWE9EPDQpJSxKVWNyeX+Fh4mIh4aBfHhocI+Sk5eTlZWVlZSRjYyKioqKioqKioqKioqKioqKiYmKioqJiYiJiIaGhoWEg4KBgH9+fn5+gYGChIWGiYmNjpGTlZeZm5udnp+enZuZl5WUkpGOi4mDgoB+fX5+f36AgoKDg4WGh4eIiYmJiomKioqKioqKiomJiYqJiYiIh4WAe3ZxaGBWUEU6Mi4qKCYkJScnJiUnJygpKCcnJiUkIR8kJB8oPV5teX6Fj5ifq7G6wsjO1tvh5evv8fT2+O7o4dnOxbmtoJqrqaiop6ejoZ6alZGMioqKioqKioqKiIqJiIeEe3RsYFZORDwzKiYxTlhndYCFjZCRkZCOiYN8bnGUlJaYmJeXmJeUkY6MioqKioqKioqKioqKioqKiomJiYqJiYiIiIeGhIOCgX9+fXx6eXl6enx9f4CChIeIi4yQkpOUlZaXmJmamZiVlJCPjYuKiIWCf317eXh5eXl5e35/gYGEhYaHiImJioqKioqKioqKioqJiYmKiYmIiIaEf3h0bmNbUUk9My0qJiQkJiYjIyYnJSEjJCUjISEjJSclIiAnRGp2fIGJlZ6kqra8xMvR197i5unu8vT2+fvu6OHYzcS4rJ+cqqiop6WloqCcmZWRjIqKioqKioqKioiKiYiHg3pya2BWTUQ8NSwnM1JbbHuEi5GTlZWUkYyHgXRympeZmZuampqYlpKOjIqKioqKioqKioqKioqKioqJiYmJiYiIh4eFhIF/fnt6enh2dXR0dXZ4eXt+f4KFh4mLjY+QkJKSkpSUlZSTkpCNjYqIhoJ+e3t5d3R0dHR1c3V5e31/g4WFhoeJioqKioqKioqKioqKiYmJiomJiIiGgn12cGlfVUtBNy4pIyIjJDA7P0A9NCglIiAhIiIhIyMkHx81VW11fYWNl6Gnrbe/xMvS2N3j5+ru8vX2+Pr87ujh2M3EuKugm6qmp6ekpaGfm5iUkIyJioqKioqKioqIiomIh4N6cmxhV01FPzYuKjdVYHKBiZGWmZuamZeRi4Z5cZ2anpqdm5ubmpaSj4yKioqKioqKioqKioqKioqKiYmJiYmIh4eFg4F+e3l2dXJxb21sbW5vc3V3ent/goWIioyNjY2Ojo6QkJGQj46NjIqIhYJ9eXV0cnBtbWxtbm1wc3d5fICDhIWHiYqKioqKioqKioqKiomJiYqJiYiIhYJ7c21lWU9DOjEqIyEpNEhLTk9RVFRSPTAjHh8hISAnHydFZXd9fYiSm6GprrjDyMzT2d7j6Ovw8vb3+Pn7/O7o4djNxLirn5uqpqampKShn5uYlI+MiYqKioqKioqKiIqJiIeCeXFsYldORkA4Lyo3V2N3hYyWnJ+hoaCdl5GLem+fnaKcnp2dnJqXko+MioqKioqKioqKioqKioqKiomJiYmJiIeHhIF+e3l1cnBraWdlZWZoaW9xdHd6fYGDh4iLjIyMjIyMjI2OjY2LioeGg4B8d3FubWxoZmVmZ2dpbXF1dnp/goSFh4mKioqKioqKioqKioqJiYmKiYmIiIWCenJrY1ZKPzYtJiAjNUpVVVtfYmRiZGZMMCIiJCIgIC1RdHx7hZGUnaSqtL7EytLW3OHm6u7x8/b4+fn5+/zu5+DXzcO3qpuZqKWmpaOkoaCcmJOPjIqKioqKioqKioiKioiGgXlzamJaUkhAOjMsPlpneoqVmaCipKSin5mTi4J1oqGfn6GdnJuZl5OQjIqKioqKioqKioqKioqKioqJi4uIh4iHhYN+fHlzcG1mZmVhX11eYGJqanB0fH57hoWHiYuLi4uLi4yLi4uLiIeHhH97d3JsaGhjYF5dXWBkZGptcHZ6foKFh4mKiomJiYqKioqKioqKiIiJiomJiIeFf3hwZV5TRz0zJyIfM0xRWF1jZmlsbm1ucVwmISIiIjdmgH6Ei5CYoKewucDHz9TY3ePo6+7y9Pj5+vv9/f7+7ufg18zDt6mbmailpqWjpKGgnJiTj4yKioqKioqKioqIioqIhoF5cmtjW1JIQTszLz5caX6Ml5uhpKampKGblY2EdqKhoKCinp2bmpiUkI2KioqKioqKioqKioqKioqKiYuLiIeIh4WBfHl1b2tnYlxZVlZWWFteZGVscXl+enyFh4mLi4uKi4qKioqKiYeFhIF9eHRuaWVfWldVVFVXXF5laW1yd3yDhIaJioqJiYmKioqKioqKioiIiYqJiIiGg312bmNcUkU8MSgjKEFWW2JobnF0eHp6fHp2TCEcJk+AiIeHkpidpquyusLIz9bb3uLo7O/y9ff5+fv8/f7+/u7n39fMw7epm5mnpaalo6ShoJyYk4+MioqKioqKioqKiYuKiIaBeXJrY1pSSUI7NDJAXWuAj5mdpKepqKeknZeQhXiko6GhoqCfnJyZlZCNioqKioqKioqKioqKioqKiomLi4iHiIaEfnh1cGlkYFpWUk5PUFBTWF9gaW10fYGBhYeJi4uKioqKiYmJiYiFg4F9eHJuaGJdWFRQT1BRVVpYX2ZqcHR4f4SGiIqKioqKioqKioqKioqJiImKiYiIhoJ7dGthWU9DOSwnIDBPX2Rscnl9gISGh4iMjXYoMmaNkI+RmaOkqK+3vMTL0dbd4eXp7vH09vj6+vv8/f7+///u59/WzMO3qZuZp6WmpaOjoaCcmJOPjIqKioqKioqKiomLi4iGgXlyamFbU0lDPDQzQV1tg5Gbn6apq6qppqCakYZ6pKOioqOhoJ6cmZaRjYqKioqKioqKioqKioqKioqJiomIiIeFgn12cWxkXllTS0ZDRkZHS1FdX2hsb3iAhIaIiouLioqKiIiJiYmHhYJ/enRuaWJcV1NOSUdHR0tQU1tiaHB1eHyEhomKi4qKioqKioqKioqKiYiJiYmIh4aBe3NpXldMQTksKSA4WWNqdHuCh4qOkpOWkZuTY4WanZidoqWnrra6wcbN09ne4+fs7/L19/n6/Pv8/f7/////7uff1szDtqmbmKekpaWjo6GgnJiTj4yKioqKioqKioqIi4qIhoF5cmpjWlNKRD83NUJcboOSnKGnqqyrqqegmpCHeaajoqKjoaCfnZqVkY6KioqKioqKioqKioqKioqKiYqJiIiHhH98dG1oX1lSS0lCQEBBQUZMV1piam91foOHiYuLi4qKiomJiYmJh4SCfnhxamRdVlFLRUA+P0JHTVBYXmVweXx/hYeKi4uLioqKioqKioqKiomIiYmIiIeFgXpzaV5WS0A5Li0kQl9pc3yEjJGVmp6go6OlpqKvpKGqrbCvsrzDwczQ1tzh5uvu8fL19/n6+/z9/f7//////+3m39bMw7apmpinpKWkoqOhoJyYk4+MioqKioqKioqKiIqKiIaCeXNrY11WTUhDPDlEXG2Ekpygpqmrq6mmoJqRhnmlpKOio6Kgn52blpGOioqKioqKioqKioqKioqKiomKiYiIhoJ9eXFpYllUTUQ+Ojk6PD5FTFddX2Zxdn6EiIqMjIuKioqJiYmKiYiEgXx1bWVgWE9KQj05ODk9Q0hPWV9kbnd8gIaIi42Mi4qKioqKioqKioqJiImJiIeGhYJ6cmheVUxBNS0qJUpjcHuCi5SZnqOoq6q1sbCvqK6zsLK3vsHEyczU193i5uvu8fT19/j6+/v8/f7+///////t5t/WzMK2qZqYp6SlpKKjoaCcmJOPjIqKioqKioqKioeJioiGgnp0bmZfWVFLSEE/Rl5ug5GbnqWoqqmopJ6Yj4Z7p6eko6OioZ+dmpaRjoqKioqKioqKioqKioqKioqJiomIiIeBfXZtZF1UTUY9PDgzLSgmKi9MYmZpcXd+g4mLjI2Mi4qKiImJiomGg4B6cmlgWlJJQz04NDIyMTY5RVRhZ292fICHioyOjYyKioqKioqKioqKiYiJiYiHhoSAeXFnXFVLPzUuJydUaHeAipOdoqetsra4tb+8try8u8DCxcnLy9Ld297i5+vu8fP3+Pn6+/z9/f7+///////+7ebf1svCtqiamKekpaSio6GgnJiTj4yKioqKioqKioqHiYmIh4J6dG9oYltUT0tEQ0pfboOQmZ2kp6iop6Odl4+GfKinpaSloqGfnZqWkI2KioqKioqKioqKioqKioqKiYqIiIiHgXxzamBZUElCODEvKiMdHCEmKFRpbXZ7gYeKi42NjYuKioeHiImIhYJ/d29lXVZORj42MjIyNDU5PTNMYGtzeH2CiIqNj46MioqKioqKioqKiomIiYmIh4aEgHhwZltUS0A5MicsXWx9hZKcpqywt73AxMTEzMbExsXIzc3P19ra3ePm6e3w8/X3+vr7/P3+/v7+/v/////+/u3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiYmJiYaBe3dvaWJdWVVOS0pNXXKBjZaaoaWnpqShnJeOhnirpaalo6Ohn52ZlZGNioqKioqKioqKioqKioqKiomIiYiIhX52cGdfV01GQDkvKyYcIyEmKShNaG95eoeJjo6Oj42Mi4qKioiIiYeCe3ZtZVxRSUM7NjIyNTk8PD49O2lwc31/iY2Pj5COjYuKioqKioqKioqKioqKiomGhH93b2ZbUktCPDMtKGZzf42WoqyzusDEyczNz9DQ0dHS1NXX2tzf4+Xq7O/y9ff4+fz8/P39/v7+///////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKiomJiYmGgXx3b2tkX11ZU09OUFxwfomTl56ipKOhnZiTi4V3q6anpqWjoZ+dmZWRjYqKioqKioqKioqKioqKioqJiYmIh4V9dm5lXlRLRD03MCwoHiQjKSspR2x0fX6KjY+PkJCPjIuKioqIiYiHgnt0bGNaT0hBOTYzNDg9QUFDQT1lc3mAhYmOj5CQj42LioqKioqKioqKioqKioqJhoR/d3BoXVRMRD40Lyxpd4KQm6axuMDGys/T1dfY2NjZ2dvc3uDj5ejr7e/y9ff5+vr8/P39/v7+////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqJiYmJhoJ8eXJuZ2NhXllWVVNdbnuFj5SanqCfnpuVkYiCdqynqKelo6GfnZmVkY2KioqKioqKioqKioqKioqKiImJiIiEfHZsY1pRR0E7NDAtKiIlJywuLT90e4OFjZCQkZGRj46LioqKiImIhoF6c2phWE5FPzc0NDg/REZHSUhDYniBhYqKj5GRkZCOjImKioqKioqKioqKioqKiYaEgHdwaF5WT0ZCOjQya3qGk5+rtb3GzNHW29zf4ODg4eHj5Obo6ezu8PLz9fj6+/z8/f3+/v7//////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiYmJiYaCfXp1cGtoZWNfXVxVW2t4gouSlZibmpmXko6Gf3WtqKmnpaOhn52ZlZGNioqKioqKioqKioqKioqKioiJiIiIhHx0amFZT0VAOjMwLisnJikvMTI4e4GHi5CTk5OSkpCOi4qJioiIiIaAeXJoXlZMRD43NDU8RUpNTU9OSWGAh4iPjZKSk5KRjoyKioqKioqKioqKioqKiomGhIB4cGlfWVFKSD86OW17h5Shrbe/yNDV29/h5OXm5ubn6Onr7e7v8fP29/j6+/z9/f7+/v/////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioqJiYiGhH98eHNwbGpoZWJhV1lodn6IjZKUlpaVk4+Lg3xzrKupp6SjoZ+dmZWRjYqKioqKioqKioqKioqKioqIiYmIh4N7c2lgV05FPzo0Mi4uLScrMTQ4NYSEjI6TlZWVlZORj4yKiYqIiIiFfnhxaF5WS0U/OTQ4QUpPUFFUU05khouLkZKUlJaUko+NioqKioqKioqKioqKioqJhoR/d3FpYlxVT0xEQEBsfYeVoa24wMrS2N7h5Ofp6uvr7Ozu8PHy8/T2+Pn6+/z9/f3/////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqKiYmIh4R/fnp3dHJwbmxralpWZXJ6goiLjpCQj42Khn55cayrqqelo6GfnZmVkY2KioqKioqKioqKioqKioqKiIiJiIeCenNqX1dNRT87NTUvMDQqLTI1OTWJiZCPlpaWlpaVk46Mi4mKiIeIhH12b2ZdVEtGQTs3O0ZPVFVWWVdSaYuOj5OVlpaXlpOQjIqKioqKioqKioqKioqKiYaEf3hxa2RgWlVPSEZHbXyIlqGtuMDK0tnf4+bq7e7v8PDx8vT29vf4+fr7+/z9/f7+/////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKioqJiIeEgX98e3l3d3V2dXRdU19sc3qBhIiKiYmIhIF6dG+srKqop6Ohn52ZlZGNioqKioqKioqKioqKioqKioeIiYeGgXhxaV5VTEQ/PDc5MDI7Li40ODc3j4yXkZmXmZiYl5SQjYuIioiHh4R8dW9lW1NLRkI8Nz5JVFdYWl5cVW+PkJWUmZmZmJeUkY2LioqKioqKioqKioqKiomGhIB4dG5nZGBZVk9NTmt5hZOfq7a+yNHY3uPm6+7w8vPz9PX3+fn6+/z8/P39/v7////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKiouKiYiHhYF/fn18e3t7e3t8YFFbZ291fH+ChIWEg4B9dnFsrK2rqaijoZ+dmZWRjYqKioqKioqKioqKioqKioqHiImHhoF5cGhdVUxDPzw3PDM0QDEvNDk1OpKPm5KcmJqamZaUkI2LiIqIh4eEfHRuZFtSSkVCPDg+S1ZbW11hYFdxj5KalZqZmZmYlJCOi4qKioqKioqKioqKioqJhoSBeXRwamdjXVtVU1Fqd4KQnamzvMbO1dvi5eru8PLz9PT2+Pn6+/z9/f39/v7/////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqJiYmJiIaEg39/fn+AgoOEhmZNUWBobXV1gYF5fnqBd3FuZrCrq6ikoqGfnZuVkY2KioqKioqKioqKioqKioqKiImIhoWAd3BpYFVNR0A+Pjk3Oj03MjU5PTWZmZacmpienJmWk4+MiIiKiYiHhH11bWZcVE1GQkA8QVBYXV9kY2NeeJqanpucn52bl5WSjYuKioqKioqKioqJiYmIiIaEgXx1cW1rZmReW1xZaXOEj5ijrLfByNDX4OTp7vDx8vP3+fr7/Pz9/v///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiYmJiYiGhIOEg4OEhIaIiYeFiI+TkJSaoKmurJ96dHFtamOvqqunpKKhn52blZGNioqKioqKioqKioqKioqKioiJiIaFgHdwaWBVTUdCPz89MzZAPjU1Oj85nZuXnZ6enp2Zl5OPjIqIiomIh4R9dW1mXFVOR0NCP0RSW2BhZmZkYHqbnJ+dnqCdm5iVko6MioqKioqKioqKiYmJiYiGhIJ9d3NwbmppaWlkYWdwe4aWoa22wMjP2Nzg5uvu8PLz9/j6+/z9/v/////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKiomJiYmIhoWEhoaHiIiKjI2MkJORj5CVmpefp62dbmlvaGVfrKmrqKWioZ+dm5WRjYqKioqKioqKioqKioqKioqIiYiGhYB3cGlgVk5IQ0FBRTk4Q0U8ODc+Op+fmp+gop+cmpaUkIyKiIqJiIeEfXVuZlxWT0lEREJHVl5jZWppZ2R9np6hnqChnpyYlpKPjYqKioqKioqKiomJiomIhoWDf3p3dHNxb2hua2tfaXSEjpmkrbe/yNHW2+Lo6+7x8/b4+vv8/f7/////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqJiYmJiIeGhYeHiImLjY+Qk5OSkJCUl5icoqKjlGpoaWVhXaupqqekoqGfnZuVkY2KioqKioqKioqKioqKioqKiImIhoWAd3BpYFZPSkVDQ0c+PUNFRkI6OzmfoZ2io6KgnpuXlJCNioiKiYiHhH11bmdeVk9KR0ZFSlhgZWhtbGtmf6CgoqGgoqCcmZeSkI2KioqKioqKioqJiYqJiIeFg4F9enl4d3Z1dHJ1Wmdye4iTnqavt8DK0dbe5ens8PP19/n7/P3+/////////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiImJiYiIh4eIiImLjY+RkouOkJKOjo+TlZqYnI9nZWFhXlusqaqlpKKhn52blZGNioqKioqKioqKioqKioqKioiJiIaFgHdwaWBXUEtGRERGPj1ARUlIQ0A8n6GgpKSioZ+cmZWSjYuIiomIh4R9dW9nXlZQS0dIRktZYWdqb25uaIGhoaSgoqKgnpqXk4+MioqKioqKioqKiYmKiYmHhoSBf318fHx8d3uCglRbbnqCjZaeqLG7xczS2uHl6e7x8/X4+/z9/v/////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioiIiYmJiIiIioqLjo+Rk5SVko+OioiLj5CUkpmKXFxeXVtYqqmppaSioZ+dm5WRjYqKioqKioqKioqKioqKioqIiYiGhYB3cGliV1BMR0VFSz06QkVDQkRIQKKjoaalo6GfnZmVkY6KiIqJiIeEfXVwZ15WUEpISEdMWmFna3Bwb2uDoqKkoqOjoJ6bl5OQjYqKioqKioqKiomJioqJh4aFg4F/f4CBgX+Di4JYVWVveoSLlJ+osrvEy9Xc4OXq7vHz9/r8/f7/////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqIiIiJiYmJiYqKjI2PkpKUkY+MiouJiIaKjYiPglVbXlpXVaioqKSioqGfnZuVkY2KioqKioqKioqKioqKioqKiImIhoWAd3BqYldRS0dGRk1APUVHQ0BARkGkpKKlo6Khn52ZlZGNioiKiYiHhH11cGheVlBKSUdITVpiaGtxcXJthKOjpaSko6Gem5eTj42KioqKioqKiomJiYqKiYiGhoWDgoKDhYeKiomJj5GUl5KUk5CPjY2Ru8PN1drg5uvv8vb5+/z+/////////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiIiIiImJiYmJiIuMjpCSkpKTkYqFhYWEg4iBhn1UWVZXVFOop6eko6Khn52blZGNioqKioqKioqKioqKioqKioiJiIaFgHdwamJYUUtHRUVIQUBFSU1IPj09paeipKKgop+cmZWRjIqIiomIh4R9dXFoXlZQSklHSE1bY2lscnJzboako6akpKOhnpqXk4+MioqKioqKioqJiYmKiomIh4eGhYWFhoeJiJKPh5ePjJSUlZGOjIiGiLS9yNDW3OPo7vH1+fv8/f7////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioqKioqKioqKi4uMjpCRkpSQkIyIgn99fH6AfoB1T1FVUlFQp6Smo6OhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGS0ZCREhIRkZDRKGjpqWkoaOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEhKXmRqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqHh4eGh4mLjI6RlJOUlpWUkZKRiYWCfoGrtb/J0tnf5unv9Pb4+/7+////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqKioqKioqKioqLjI6PkZKSkI+LhYB7eXh3enh6cEpOUU9PTqWjpaKioaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRktGQkRISEdHQ0Sho6alpKGjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhISl5kam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKh4eHh4iKjI2OkpSTlJSUkY2Mi4J+enR5prG7xc/W3OPo7vP2+Pv+/v///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKioqKioqKioqKi4uNj5CQkY6Mh4B6dXJxcHJwc2lGSk5NTEuioaShoqGgn52alZCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZLR0RFR0hISkREoaOmpaSho6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISEpeZGpucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKioeHiIiJi42OkZSVlJKSkY+MiYZ9d3JtcZ+qtb/K0djg5+3y9fj7/f7////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioqKioqKioqKioqLjI2Oj4+MiIN7dW9sa2hraWxkRUlOSkpJoaGkoaKhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGS0dFRkdISUxERaGjpaWkoqOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEhKXmRqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqHh4iJioyOj5KVlpWTko+MiISBeHFrZmqYo7C7xs7W3+Xr8fX3+/3+////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqKioqKioqKiomKi4uMjIyLiIN9dm9qZmRiZWNmYENJTEhJSaGhpKKioaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRktIRUZHSEpNRUWho6WkpKKjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhISl5kam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKiIiJiouNjo+SlZaUk5KNioF+eXBqY1xjkp+st8PL1N7j6fD09/v9/f///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKioqKioqKioqJiYqLi4uKioSAeXFrZWBfW19eYFxARUhISEigoKSio6Ggn52alZCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZLSEZHSEhJTEZGoqOlpKSio6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISEpeZGpucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKioiIioqMjY6PkpWVlJKQioV9eHRqZF1XXo2aqLS/yNLc4ejv8/f7/f3////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioqKioqKioqKiImKioqKiYeEfndvZ2JdW1hcW11YPUNGR0dHn5+joaKhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGTEhGR0lISUtGRqKjpaSkoqOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEhKXmRqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqJiYqLjI2OjpKTk5GPjIV/eXNuZF5WUViJlqSwvMXP2uDn7vP2+v39////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqKioqKioqKioiJioqKiIeGg353bmZgW1hYXFpeWD5DRUZGRp+foqChoaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkxIRkdJSEhJR0aio6WkpKKjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhISl5kam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKiYmKi4yNjY6SkpKQjYmCe3JtZ11XTklRhZOhrbnCzdff5u7y9vr9/f///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKioqKioqKioqIiIiJiYiHhoF7dG1lXllXWFlbWVdCQ0ZDRkWgoKKhoaGgn52alJCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZKS0pHSEtKSEVKoKWkpaOjo6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISEpeZGpucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKioiIiImKi4uLjo6Oi4iDfHVuZ2BXUEhDTIGPnqu3wszX3uXt8vb6/f3////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioqKioqKioqKiYmJiYmJh4aCfHVuZmBbWlhZW1lWQUJFQ0ZFoKCioaGhoJ+dmpSQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGS0tKSUlNTUtHS6ClpKWjpKOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEhKXmRqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqIiIiJiYqKi42NjImEf3dwaGBaUUpCPUeAjZyqt8HM197l7fL2+v39////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqKioqKioqKiomJiYqJiYeGhH11b2dgW1pYWVtYVkBCRENGRZ+goqGhoaCfnZqUkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkpMS0lMUFFPS06hpKSlo6SjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhISl5kam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKiIiIiImJiYmLi4mFgHpxamFaU0tEPDlCfYuaqLXAy9be5ezx9vr9/f///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKioqKioqKioqKiYmKiYmHhoN8dG1mXlpZWFlbWVZAQkNCRUSfoKKhoaGgn52alJCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZKTExLTlRWVFBRoqSkpKOjo6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISEpeZGpucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKioiIiIiIiIiIiYmGgn13bmVfVlBJQjs4QXuJmKa0v8rV3eTs8fX6/f7////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioqKioqKioqKiomJiomIh4WDfHVuZl9aWVhZW1lWQUJEQkVEn6CioaGhoJ+dmpSQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGSUxNTlJYWlhVVaOko6SjpKOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEhKXmRqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqJiYmJiYmJiYiIhYF7dW1kXVVPR0E6N0F6iJels77J1N3k7PH1+v3+////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqKioqKioqKiomJiYmIiIaEg311bmhgW1lXV1lYVkFDREFFRJ+goqGhoaCfnZqUkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRklMT1JXW11aV1alpKOko6SjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhISl5kam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKiYmJiYmJiYmIiIaAe3VsZFxTTUY/ODZAeoiXpbK9ydTc4+vx9fr9/v///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKioqKioqKioqJiYiJiIeFhIF7c2xlXVhXVVZYV1Q/QkRBREOen6KhoqGgn52alJCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZHTFFUWl5eW1lXpaSjpaOjo6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISEpeZGpucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKiomJiYmJiYmJiomGgXt0amNcU01FPzc1QHqIl6WyvcjT3OPr8PX6/f7////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKioqKioqKioqKiYiIiIiHhYN+eHBpYVpVVFRUVlZTPkFDQURDnp+ioaKhoJ+dmpSQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGRkxRVltgX1pZV6Wko6Wjo6OgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEhKXmRqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqJiYmJioqKioqJhoF7c2piXVVNR0A5NkF7iJilsr3I09zj6/D1+v3+////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqJioqKioqJiYeIiIWFhYOAfHRrYlpTT09PU09TUUJCRENDQpygop+joaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkpLUVhdXl1fWlijpaSio6KjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhJSl1jam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKiYmJiIiIiIiKh4OAeXJpY1tUTERANjJBe4mYprO+ydTb5Ovv9vr8/v///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiYmKioqJiYmHh4aEgoF/e3dwZV1UTElISExKT05CREZCQ0GcoKKfo6Ggn52alZCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZLTFFZXV1dXlpYo6WkoqOjo6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISUpdY2pucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKioiJiYiHh4eHiIaDfnhwZ2BYUElBPTQxQHuImKWzvsnU2+Tr7/b6/P7////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKiomJioqKiYiIhYWDgH59eHVvZ11UTEZBQkJFRUlKQkJDQ0NBm5+hn6KhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGS01TWV1dXV5aWKOlpKKjo6OgnZmVkY2KiImIiIeFfXZwZ15XUUtJSElKXWNqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqJiIiGh4aGhIWCf3lzamFbUktEPTkxLz96iJels77J1Nzl6/D2+vz+////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqJiYqKiYiHh4SEgX57eXVvZl9UTEU/Ozw7Pj9DR0JCQ0RFQ5udoJ+ioaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRktNUllfX19gWVijpaSio6OjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhJSl1jam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKiYiHhoaFg4KAfXhzbGNZUkxFPjg0LCs7eoiXpbO+ydTc5evw9vr8/v///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiYmKiYmIhoWCgn97eHVwaWFZTEQ9ODU2Mzc5PkdJSUlISUabnKCfoqGgn52alZCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZLTlRbYGBhYllXo6WkoqSjo6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISUpdY2pucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKiomIhoWEhIB/e3hzbWVbUktEPTcxLicnOHuJmKa0v8rV3eXs8Pf6/P7////////////////////////////////t5t/Wy8K1p5qZpaWmo6OioJ2blpOOjIqKioqKioqKiomJiYmJh4WEgX98dnRvaWJbUUQ8NTEtLi8yNzpGTU5PTk9KnZyfnqKhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGS05WXWJjYmNZV6OlpaKkpKOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSElKXWNqbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqKioqKioqJh4WEg4B9enh0bWZeU0pEOzYxKykjJDZ9i5qotb/L1d3m7PD3+vz+////////////////////////////////7ebf1svCtaeamaWlpqOjoqCdm5aTjoyKioqKioqKioqJiImJiYeFg399eHFuaWFZUEY7My4rKCgsLjQ3RlFTVVVVTp6boJ6ioaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRk5RWGBkZGJiWVejpaWjpKSjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhJSl1jam5wcnFshaWkpqKioqCempeTj42KioqKioqKioqKioqKioqKiIeDgoB9eXRybWVdVEtBPDMvKyclISM2f42cqbbAy9bd5uzx9/r8/v///////////////////////////////+3m39bLwrWnmpmlpaajo6KgnZuWk46MioqKioqKioqKiIiJiYmGhIN+e3Vva2RbU0c+MyspJyYmJigvM0ZVWVpZWVGfm5+eoqGgn52alZCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZPUlliZWRhYVlXo6Wlo6Sko6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISUpdY2pucHJxbIWlpKaioqKgnpqXk4+NioqKioqKioqKioqKioqKioeGgoB+e3VybGdfVk1DOjUuKyckIyAkN4GOnaq3wczW3ubt8ff6/P7////////////////////////////////t5t/Wy8G0ppmYp6WlpKKjoJ2blpOOjIqKioqKioqKioqKiYeHh4N+fXVvamRdU0lEOzAsJiEhJSUrLjJFXmdiYmFel5qfn6KhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGSFNbX2FmZGBaVqilo6ahoqOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEpKXGJpbnBycWyFpaSmoqKioJ6al5OPjYqKioqKioqKiomJioqKiIeHhYN/eHZya2ddVk5DOjQuJiUiIh8jIzaEk6CsucTO1t/l7fP3+vz+////////////////////////////////7ebf1svBtKaZmKelpaSio6Cdm5aTjoyKioqKioqKioqJiomHiIeCfXtybGdgWE5DMywmIyIgISUeJCYtRGBqZWZkX5iZoJ+joaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkpTWVxeY2FdWFSmpKOmoaOjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhJSlxiaW5wcXFshaWkpqKioqCempeTj42KioqKioqKioqJiYqKioiHhoOAfHZ0bmdfVUxEOTItKSYlIiMhIiI2h5WjrrvG0Njg5u3z9/r8/v///////////////////////////////+3m39bLwbSmmZinpaWkoqOgnZuWk46MioqKioqKioqKiYqJh4aGgX14b2lhWVBGOzAqJCMkISIlIiMkLkdjbGhraGGYmp+fo6Ggn52alZCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZKUVZYW2BeWVNRpKOipqGjo6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISUpcYmlucHFxbIWlpKaioqKgnpqXk4+NioqKioqKioqKiYmKioqIh4WCfnlzbmlhXFJHPDIpJSMhISAjISIiOIyap7K+ydPb4ufu9Pf6/f7////////////////////////////////t5t/Wy8G0ppmYp6WlpKKjoJ2blpOOjIqKioqKioqKiomKiYiGhYF7dW1kXVJJPjQoJSIjJSMjJB0gJTFKZG9sbGhimJqfn6OhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGSE5TV1teWlVPTqOjoqaho6OgnZmVkY2KiImIiIeFfXZwZ15XUUtJSElKXGJpbm9xcWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqJiYqJh4aDgHx2bmpiWVJIPTQtKCYlJCMhJSEhJDyQnqu1wczV3OPo7/T4+v3/////////////////////////////////7ebf1svBtKaZmKelpaSio6Cdm5aTjoyKioqKioqKioqJiomIh4R/eXRqYVhORDswKCktNDo9P0FJSkxRXWdraWlnYZmboJ+joaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkhNU1ZbXFdRTU6jo6KmoaSjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhJSVthaG5vcXFshaWkpqKioqCempeTj42KioqKioqKioqKiYmKiYeGhH96dGtmXlRHPzIrJyIgISEhICMhIiU8laOvucTN1t3l6vD1+Pv9/////////////////////////////////+3m39bLwbSmmZinpaWkoqOgnZuWk46MioqKioqKioqKiIqJiIeDfnhyaV5WS0E4LSgtNkBITVBTXV5gYmZnZ2dmZWCZmqCeoqGgn52alZCNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZLTlBUWFlUT09PpKOipqKko6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISUlbYWhtb3FxbIWlpKaioqKgnpqXk4+NioqKioqKioqKiomJiYmGhYN+eXJpY1lNRTstJyYlIyUiJCIlISMkOZyptb3H0Njf5+vx9vn7/f/////////////////////////////////t5t/Wy8G0ppmYp6WlpKKjoJ2blpOOjIqKioqKioqKioiJiYiHhH13cWdcU0pBNywoMD1IUFVaXmNkZmpramlpZmVhmZqgn6OhoJ+dmpWQjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGTE1NTlJUVFNSUaWko6WhpaOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSElJW2FobW9xcWyFpaSmoqKioJ6al5OPjYqKioqKioqKioqJiYmJhoWCfHZvZl9USj00KSkyODxBR09UXGJtcISjsLvDzNTc4unt8vb5+/3/////////////////////////////////7ebf1svBtKaZmKelpaSio6Cdm5aTjoyKioqKioqKioqHiYmHhoN9dm9kW1FJQDYsJTBATldgZmpubG1xcm9tbGhlYJmaoKCjoaCfnZqVkI2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkxLSEpOU1dZU1OopaOloaWjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhISVthaG1vcXFshaWkpqKioqCempeTj42KioqKioqKioqKiYmJiIaFgHp0bWReU0c6MSgrO0dPVl5ob3mBjZChqLS/x9DX3uXp7fP3+fv9/////////////////////////////////+3m4NbLwbSnmJilpaWio6KgnZuWk46MioqKioqKioqKiImKiIeCe3NtYllQRz4zKSMxSlFcY21zd3t+f39/fHhwZ2Cbn6KeoaKhn52blZGNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZHRklQV1lYV1RSoaOlp6Sio6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISklbYGdtb3Jwa4WkpKaio6KgnpqXk4+NioqKioqKioqKioqKiomGhIF5cmtjW1BFODEmJEVQUl5mcHmCjZWep7K7xs/V3OPp7fH2+fr8/v/////////////////////////////////t5uDWy8G0p5iYpaWloqOioJ2blpOOjIqKioqKioqKioiJioiHgntzbWJYUEY+NCknNUxUXmVwdnp+gIGDhYOBe3JooKGjoKOioZ+dm5WRjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGSElMU1laWVdUUqGjpaekoqOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSElJW2BnbW9xcGuFpKSmoqOioJ6al5OPjYqKioqKioqKioqKioqJhoSCeHJqYlpORDgxJyVJVVhlb3mCi5afqLG5wcvU2d/l6u7x9vn6/P7/////////////////////////////////7ebg1svBtKeYmKWlpaKjoqCdm5aTjoyKioqKioqKioqIiYqIh4J7cmxiWE9GPTQqHy9KVGBmcHeAhIeIiYmHhH94bKKgo6GkoqGfnZuVkY2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkpKUFhbW1hXVFKho6WnpKKjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhJSVpgZ21vcXBrhaSkpqKjoqCempeTj42KioqKioqKioqKioqKiYaEgXhwamBYTUI3MSgmT1xhbniBi5SfqLC5wsnT2t/j6O3w8/f6+/z+/////////////////////////////////+3m4NbLwbSnmJilpaWio6KgnZuWk46MioqKioqKioqKiImKiIaCenJsYVdPRj00KiUxR0xXX212fYOIjI6OjIiAeW+ioaKgoqKhn52blZGNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZLTVFYW1pYWFRSoaOlp6Sio6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISUlaYGdsb3Fwa4WkpKaio6KgnpqXk4+NioqKioqKioqKioqKiomGhIB4b2hfVkxANzAnJlRiaHV/iZOcp6+4wcrQ2d/j5+zv8vT4+vv8/v/////////////////////////////////t5uDWy8G0p5iYpaWloqOioJ2blpOOjIqKioqKioqKioiJioiGgXpya2BXT0Y/Ni0pOFJXXl9kaHl9goSGhoWCgHlvpaKjoKOioZ+dm5WRjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGTE1RVVlZV1hUUqGjpaekoqOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSElJWl9mbG9xcGuFpKSmoqOioJ6al5OPjYqKioqKioqKioqKioqJhoSAdm5nXlVKQDcvJyVZZm57h5GbpbC4wMnQ1d3k5+vv8fT2+fv8/f7/////////////////////////////////7ebg1svBtKeYmKWlpaKjoqCdm5aTjoyKioqKioqKioqIiYqIhoF6cWthV1BHPzcuJztcZm1tbnFydXd4ent7eXZuZ6GjpKGmoqGfnZuVkY2KioqKioqKioqKioqKioqKiYqJhoWAd29nYFhSTEdFRkxLTVNYWFdYVFKho6WnpKKjoJ2ZlZGNioiJiIiHhX12cGdeV1FLSUhJSVpfZmxucXBrhaSkpqKjoqCempeTj42KioqKioqKioqKioqKiYaEf3ZuZ11VS0A5MCglXmt0gI2Xoau2vsbO1tvi6Ovu8fP3+Pr7/P3+/v///////////////////////////////+3m4NbLwbSnmJilpaWio6KgnZuWk46MioqKioqKioqKiImKiIaBeXFsYlhRSEE5MS0+XGVxeIOKiImHgn15c25wZmCeo6SiqaKhn52blZGNioqKioqKioqKioqKioqKiomKiYaFgHdvZ2BYUkxHRUZLSkxTV1hXV1RSoaOlp6Sio6CdmZWRjYqIiYiIh4V9dnBnXldRS0lISUhaX2ZsbnFwa4WkpKaio6KgnpqXk4+NioqKioqKioqKioqKiomGhH92bmdeVkxBOzEqJmRxe4eTnaiyvMTM1dzh5+zv8vT1+fn6/P3+/v7////////////////////////////////t5uDWy8G0p5iYpaWloqOioJ2blpOOjIqKioqKioqKioiJioiGgXlwbWJYUUlDOzEsQGFteH2FipGVl5WUj4iDdmpioaWjoKiioZ+dm5WRjYqKioqKioqKioqKioqKioqJiomGhYB3b2dgWFJMR0VGSklMUllZWFZUUqGjpaekoqOgnZmVkY2KiImIiIeFfXZwZ15XUUtJSEhIWl9mbG5wcGuFpKSmoqOioJ6al5OPjYqKioqKioqKioqKioqJhoR/dm1nX1ZNQzwzKyhndX+Mm6WvucTM1Nzh5evv8vT19/r6+/z9/v7+////////////////////////////////7ebf1svBs6WamKilpaSipaCem5eTj4yKiYmJiYmJiYmHiImHhYF4cmphWVJKQzw1MURjbXmCiY6XmJmXmJeSjIR9dKOlpaSko6GfnJiUkIyLi4qKioqKiomJiYmJiYmJiImJhoR/eHBoYlhSTEdHSEpLTFBWWFhVVFOjpaWnpKKjoZ2ZlZGNi4mKiomJhn52b2heVlFMSklJSVlfZWxwcnBshKWkp6SkoaCempeTjoyKioqKioqKioqJi4uLioeEfnZuZl1VTEM+NS8oa3aDkZ2qtr7I0Njf5urv8/b4+fn7+/z9/v///////////////////////////////////+3m39bLwbOlmZenpKWkoqOhn5yXlJCNi4mJiYmJiYmJh4mKiIWBeXFrYVpTS0U/NzFFZW98hIySmJqamZmZk42Hf3WkpqWjpKSjoJ2ZlpGOiomJiIiIiImJiYmJiYmJiYiKiYeFf3dwaWJZUUxIR0hJSkxQVllZVlRToqWmpqOhoqGdmZWRjoqJioqJiIV+d3BpX1dRTEpKSkpaX2VscHJva4OkpaakpKKhnpuXlI+MiYmJiYmJiYmIiImJiYiFg392bmdfVk5FPjYwKmx4hZagrbnBy9Pb4uns8fX4+fr7+/z8/f7////////////////////////////////////t5t/Wy8GzpZeWpqSkpKKjoZ6al5OQjIqJiYmJiYmJiYeIiIeFgHhxamFZU0xGQDgyRmdxf4iQlpqcnZycm5WPiYF3paalo6Sko6CdmZaRjoqJiYiIiIiIiYmJiYmJiYmHiImGg392b2hhWFFLR0VGSUpMT1VZWVdTUqGkpaajoaKgnZmVkIyKiImJiIeFfnZwaF5XUUxJSEtKWl9lbHBzb2qEpKOmo6SioJ6bmJOPjYmJiYmJiYmJiYmJioqJhYN9dG5nXlZPRj85NC5we4mapbK9xs/Y3+bt8PX4+vv8/Pz8/f7+////////////////////////////////////7ebf1svBs6WXlaakpaSio6CempeTj4yKiYmJiYmJiYmHiIiHhIB4cGphWVJLRj83M0doc4GKkpecnqCfnpyXkYuCeaanpaSlpKKfnZiWkI2KiYmIiIiJiYmJiYmJiYmJh4iIhoR/dm5oYVhQSkZFRkpLTE9VWFlXU1KhpKSmo6GhnpuXlI+LiIiIiYiHhX12cGddVk9KSEhLS1pfZWxwc29rhKSkpqSjoqGdm5aSjouJiYmJiYmJiYiJiYqKiYaEfXRtZl1XTkZBOzcxcn6Nnqm2wcrT3OPq8PP3+/z9/f39/f7+/////////////////////////////////////+3m39bLwbOlmZampKWkoqShn5yYlI+MiomJiYmJiYmJiImKiIWBeXJqYVpTS0U/NzRIaXSCipKXnaCioaCemJOLgnmmp6WkpqOin5yYlJCNiYiIh4eHh4iJiYmJiYmJiYmKiYeFgHdwaGFXUUtHRkdKS0xQVVhYVVRToqSkpaOhoqCcmJSQjImJioqJiIV+dnBnXldRTElISkpaX2VscHJva4OjpKWjo6KinpuYk4+LiIiIiIiIiIiIiImJiYiFgn91bmdeVk9HQz04MnSAj6GruMTM1t7m7fL1+fz9/f39/v7+///////////////////////////////////////t5t/Wy8GzpZiWpqSlo6GjoqCbmJSPjImJiYmJiYmJiYmKiomGgXpya2JbVEtFPzczSGl0gouSl5+ipKKgnpmUi4J4pqalo6WjoZ+cmJWQjYmJiIiHiIiIiYmJiYmJiYmJiomIhX94cGlhWVFMSEhJSktNUFZYWFVVU6GjpKSioaKfnJiVkI2KiYqJiIiFfnZvaF1XUUxKSklJWV9lbHBycGuDo6OloqKjoZ+bl5OPi4iIiIiIiIiIiYmJioqIhoSAdm5nX1dQSEI8ODJ1gpGhrbrFztfg5+7z9vr9/v7+/v//////////////////////////////////////////7ebf1svBs6WYlaWio6KfoZ+dmJSQjIiFhoaGhoaGhoaEhYaEgX12b2hfWFFJRD03MkdodIOMlJmgo6SioJ6alYyDeKWlo6OjoZ+dmZaSjYuHhoaFhYWGhoaGhoaGhoaGhYaGg4F8c21mX1VPSkZFRkdJTFFXWllWVFOhoqKkoJ+fnZqWko6Kh4SGhYWEgXpzbGRbVE5JR0hHR1lfZWxvcW9rg6KipKCgoJ+bmJSPi4iGhoaGhoaGhoaGh4eHhoSBe3NrZFxVTkY/OTUxdoKRoq67x8/Z4enw9Pf7/v///////////////////////////////////////////////+3m39bLwbOll5WkoaKgnp+bmZSPjIeDgH9/f39/f39/f4CAfn14cWlkW1NNRkE8NTFGaHWDjZWaoKOlop+empaNhHilpKKhoZ2bmZWTjoqHf39+fn5+fn5/f39/f39/f3+AgH97d29nYlpRS0ZDQkNFSEtRWFtaV1NSoKGhop+dm5mWko6KhoOAgIB/fnx1bmdgVk9KRkNERUZYX2Zsb3FuaoKhoaKenpyal5OQi4aEfn5+fn5+fn5+fn+AgH98enVtZV5WUUtCPTcyL3aDk6OvvMfQ2eLp8PX4/P/////////////////////////////////////////////////s5t/WysCzppuYn5mbnJuWk5GMiIN+eXZ3d3d3d3d3d3h2dnVzb2hjXFVMRUE7NTArRmp1gIqWnaGkpqWkopyWjoN3oJ+bm5iWlJCOi4eBfXp4d3d4eHh3eHh4eHh4eHh4d3h3dG9nYldQS0ZBPj5AQEVLU1VYW1ZVUJyanJyXl5WRjIiEgHt4eHZ1dnZya2ZdVk9JREA/QD5DVGJkbm5xc2l+m5qXm5eWko+MiYWAfHZ2dXV1dXV1d3d4eHd3dHJrZl1WUEpCPDU3Ky50h5KksLzH0Nri6e/2+Pz+////////////////////////////////////////////////7Obg18vBtaealZuVlpWUjomHgnx3cmxpaWlpaWlpaWlqaWhoZWFbVVJLRD04NDArKURqdoKLlZuhpKalpKKclpCEd5ublpWSkI2Hg356c29ramlpaWppaWlpaWlpaWlpaWloaWdiW1ZOSEI9OjY3OT5ES1NVWFtWVE+Wk5SUkZCNiIJ9eXRvbGloZ2hoZF5aVExGQT05ODk5P1VkZXBvcnNofZeWk5aSjoqFgX13cm5ramppaWlpamlpaWpqaWdlYlxUTEdBOzUwMygrdYiSpLC8x9Da4+nv9vj8/v///////////////////////////////////////////////+3n4NfMwrapmZKXkI+MiYR/e3dwamRfXFxcXFxcXFxcXVxcW1pUTklGQDgzMCwpJiRCa3eDi5WaoqSlpaSinZeRhHeVlpCNioiEfnhzbGZgXl1bW1xcXFtcXFxcXFxcXFxbW1xZVU5KQj04NDEvMDM5RExTVVhcVlZRkIyOjYmIg353cm1oYl9bWlpbW1hSTkhBOzc0MTEzNDlXZmdycXNzanuRkIyNiIN/enRwa2VhYF9fXl5eXl9dXFxeXl1ZWFVPR0E8NzEtKSsjKHWIk6awvMjQ2+Pp7/b4/P7////////////////////////////////////////////////t5+DXzMO3qpmQkouIg395c29pY19aVlNSUlJSUlJSUlJSUlFQS0VBOzcwLCooJSQhQmt4g4yWm6Klpqalop6YkYV4kJKLhoF9eHJtZ2JbV1RTUlJSU1JSUlJSUlJSUlJSUlJQT0tGQjk1MC4rKysuM0NNVFZZXFhYVIqHiIaAf3dybGdiXVhVUlFRUVBOSEM9ODMwLiwtLi80WmhocnJ0dW58jIqFg3x5dG9pZWBaVlRUU1NSUlNTUlJTU1JSUE5IRD03My8sKSQmHyR3iJWmsb3I0dvk6vD2+Pz+////////////////////////////////////////////////7Obg18zEuKyckI6Fgnx1bmdiXFZRTUpHRUVFRUVFRUVGRkZFRD86ODIvKycmJiQjIEJteoSOmZ6kpqenpqOfmZCFe4uMhH95cW1nYFtVT0xIR0VFRkZGRUVFRUVFRUVFRkZFREI+OjgxLiopKCYnKi9EUFZYWl5ZV1aCfn98dXJrZl9aVE9LSEZFRkZFQj05NTAsKykoKSorL11qaXR0dndxeoWCfnpzbWljXFdRTEhHRkZFRUVFRkdGRUVHRkRDPDkzLy0qKCUhJR8ieoqWp7K/ytLc5Ovw9vj8/v///////////////////////////////////////////////+3n4NfNxbquoI6HfHlza2NeWVFKRUA9PDo6Ojo6Ojo6Ozs6Ojk1MzAqKCUjIyMjIiFEcHyGkJqfpaioqKekoJuRh32GhXx1b2djW1VQSURAPDs6Ojs7Ozo6Ojo6Ojo6Ojw7Ozk3NDEvKSYlJiUjJCYsRFNZWl1gXFpZe3h4cmpmYlxWT0lEPjw8Ozs7OTczMSwpJiUmJSQmKStibW13d3p6dXd7eXVxamVgWVFLRT89Ojo5OTk5OTk8Ojo6Ozs5ODEuKygnJSMiICUfI36Omqm1wcvU3eXr8fb4/P7////////////////////////////////////////////////u6OHZz8e8sKSNgHBuZ2BYVE9HPzk1NDIwMDAwMDAwMDAxMTAvLCsqJiMjIiMhIiEgRXR/iZOcoKeoqamnpaCclIp+fntwamRdWFBKQz04NDIxMDAwMTEwLy8vLy8vLy8xMTAvLiwqKSUjIiQjISEjKUZWW11fY19eXHVyb2pgXVVQSUM+OjQxMTAvMDAuLConJCMkJCMjIyYoaHNxfX1/f3l0cW1pZV9aVU1GQDs1MTEwMC8vLy8vMC8vMDEwLy4pJyUkIyMiISAlISWDkZ2tt8PN1d7m6/H2+Pz+////////////////////////////////////////////////7+ni2tDIvrKmi3poZWFZUkZCOjMvLCopKCgoKCgoKCgoKCgnJSUjIiQjIiIjIyMjIEZ2g4yUnJ+nqaqpqKahnZaMfnl1aGJcUUxFPjg0LispKCcnJygnJycnJycnJycnJicnJiUkIyMkIiMkJCEhIylHWF1eYWRgXltwaWZgWFRIRDw3My8rKScnJicnJiUlJSMiJSUjIyMlJmt3doGBgoZ+dGpjYFxWTkhCOzUxLCkqKikpKCkpKScnJicnJyYlJiUkIyMkIyIgJSImh5SgsLjEztbf5uvx9vj8/v///////////////////////////////////////////////+/q5d7Ty8G2q4puYltZUEI+ODAqJyUkIyYmJiYmJiYmJSQkIyMjIyMlJCQlIyEhJCBIe4SOlpumqKutrKuppJ+XkIp0aWFaTUtDOTMwLCopKCcnJiYnJygmJiYlJSUlJSQkJCQjIyIiJSIiIyEeICQjS1tlZ2NsZGddZ1xbUlBHPjozLCgnJiQmJiUkJCMiIiEhISEhISEhIidydYOCh4iLg3BhXlhPTUI8NC8rKSgnJSUlJSUlJSUlJSUlJSUlJSMiISEhIiMjHCEgIouXprS9xdDZ4Oft8vf5/P7+/v/////////////////////////////////////////////v6+bf1c7Eua6IZ1pRSkM7NDErJyYlJCQkJCQjIiIhISQkIyIiIiIiIyAfHyEjIiEhSn6HkZufpqmsra2sqqWgmpGIbl9XUEQ/Ni0pJSIgICMjIyMjIyMjIyMjIiIjIyMiIiIiISEhISEhIiQlJCIgJUxdZGhiZmlwYmRVT0ZGQDMvKyYlJCUkIyMjIyMjIyMhISEhISIiIiUkdHuHjIyLjYZuV1FORUE6NS4pJyclJSMjIyMjIyMjIyMjIyMjIyMhISAgIB8fHyEiIB+TnKm2wMfR2+Lo7vL3+fz+/v7/////////////////////////////////////////////8Ozn4djRyL23hlxRS0A0KiwoJCMjIiIgIiIiIiMjIyMhISEhISIjIx4hJCIfHyEjIE2Ai5Scoairra+urqyoo5+Vh2lWTUY6NS4oJSUjIyQiIiIiIiIiIiMiIiEhIiIjIiIiIiIiIiIhJCQhICAhIyhSaGZpaWt5T0pTS0o/OjMsKickIyMjIiIiIiIhISEhIiIiIiIiIiMhJoCJjJOTlpWQdFRLSEA3Mi4nIyIiIiEhISEhISEhISIiIiIiIiIiIiMjJCQkJCQjIiAhl6KvuMTL1N3j6e/z+Pr8/v7+//////////////////////////////////////////////Lt6ePa1MvBuIdbTEU8MSsmIyEhIiQlJCMiIiIiIiIhJCQjIyMjIyQhHh0hJyUiIChShJCXnKavqq2urq6sqKOZkINpVExEOjIrJiQjIiMjIiIiISEiIiIhISAgICEhIiEhISEhISIiIiIgISMjIyQpSWVrenlaSEVFT0hHOTIpJiUjISEhIiIjIyQkJCQkJSMkJCQjIyMjIi99j5WZmJqakHBOPjw3MiomIyEiIyMiIiIiIiIiIiIjIyMjIyMjIyUlJSQjIyMkJCAhLpSptLjIztff5erw9Pj6/f7//v7////////////////////////////////////////////07+vl3dfPxca0pqCajoV/eHNuaGViYF5ZV1VUUlFOTUdFQ0A+Ozo5ODhBVGFmbXV5gI2Pmp+ipaqtrq6trKijn5qUhnl2cWtpZF1aWFRSU1BPTUxMTU9QTU1MTExMTU1LS0tLS0xNTlBUWFxdWl1nYmt5aVRPSUxNSktCRD5DQkJCQkNERUZHSUtNT1FTVldbXmRqcHZ7f4eFl5aeoaKjoqOclZSSjIaEgHl0cG1rZ2hoaGhoaGhoaGhoaGhoaGhkZmlscHV6foeOk5KusbvHzNLb4ebr8PT5+/3+//7+////////////////////////////////////////////9fHt5+Db1MrEu7Con5aPi4SAenZzcG1rZ2RhX15cWVZVVFFNSkdFQ0VCQkRFTmZ/gIWMj5yhpqirra6trayoo56Yk46Cfnd1cm1nY2FdWltaWlhXV1haWllZWVlYWFhYVFNTVFVWV1hZW1tdY2Roc3RZUlFOUFBTUlNPR0xGTVFMTU5OTk9SU1VYW11fYmVnaGxyd3yBhoqSlpmeqamoqKqnop2al5WTjYqFgX99enh3d3d3d3d3d3Z2dnZ2dnZ2d3l6fH6CiIyQlZ2mrrjByNHX3uTo7fL1+fv9///+/v////////////////////////////////////////////by7+rk4NnQzMG3sq+mmpOOioWAfXl1c3NwbWxraWZkXVxZVlNRT05QTUpJR0hMUGV/lpmcm6Onra6vrq2sqKSjmpWViYV8fXZybWtoZmRmYWFgYGBgYWFgYWFhYF9eXVxcXFxdX2FiXmJjanVvWUpSSE5bW1ZVWEtSU1FXUFRWVldYWFhZW11gY2ZoaWtucXl9g4eLkJWZnaOpr7GysbSxsK6rqKWhnpiUkIuJh4WCgoKCgoKCgoKCgoKCgoKCgoSGiYuNkZaaoKKqsbe/yMzW2+Ln6+/z9/n7/v///v7////////////////////////////////////////////28vDs5uPd1c3Fvbu3rqemnJmVkpCMiIWFgn98e3h0cXBvbGhkYV9eVllYVVRXVlRUXWFoiaa2sq2vr66trKijpJiSlYyIgIN8eHRyb2tqbGtsbW1tbWxramtra2ppZ2Zra2trbG5wcXl8bFVNT09TVldWWVtaWVlVXFpXX1pgZWFiZGZoam1wcHR4enx/g4aFiY6TlpugpKupsbe2vrm6vb67t7Ozr6ympJ+dmpiWlZSUlJSUlJSUlpaWlpaWlpaSlZiZmp2hpaytsrXDxs7P2d7k6u3w9fn6+/7////+////////////////////////////////////////////+fby7+zn4NzVz8jCvrmyrammop+bmJWTkY+Ni4iFgoB8end0cW5raGdlY2FhYF5dYV1eX2RpcIOjuL62tLKppKSemJWSjYiHhYJ+e3l5eHZ3dnd3d3h6e3h4dG5wdHZxdXR5goFzYFVSUVFSVVZXV1pbXFxcXF1eX2FjZWZoamxub3FzdXd5en+BhIeJjI6QlpicoKSorK+1uLy/wsPExcXEwsC9uri3sbCuq6ilpKOioqKioqKioqKioqKioqKio6Skpqirrq+1uL3CyM/U2ODj6O3x9fj6+/z9//////////////////////////////////////////////////j28/Hu6uTg3NfRzMjEvrq1s6+rqKWioZ+dm5iWk5COiYeEgH16d3RzcW5tbGtpaGlmZ2VlYmFsbHyDgouYqru2rKGbmJSQjYaEgYB+fXx8enp8fn9/fn6AhYaHiIuHgXdsYVxcWVlaW1pZWVtcXFtcXFxcXWBjZmprbnBxc3V3eXt9f4GDhYeLjZCTlpianKKlqa2wtLi6vsHFyMrLzM3NzMvJxsPBwL28ure0srGwsLCwsLCwsLCwsLCwsLCwsLCxsbO1t7q7v8LGy9DW297k5+vv8/b4+vv8/v/////////////////////////////////////////////////59/Tz8e3p5eDc19PQzcjEwL67t7Wyr62sqqilo6Cdm5eVkY6Lh4SBf317eXd2dHNwb3FxcG1pbWRscXFydH+PioN9f4eNj5CenJydnJiXmpuamJaSjIR/eXVuZmJlY2BmYFxfYF1bW1xcW1xdXl5eX19hYmVpbXB0dnh6fH6AgoWHiYuOkJKUmJqdoKOmqKqvsbS4u7/CxMfJzdDR09TV1NTS0M7MysjHxsTCwL69vb29vb29vb29vb29vb29vb28vb2/wcPFxsnMz9PX2+Di6ezv8vX3+fr8/f7/////////////////////////////////////////////////+fj29fPw7Orj4NvY1tPPzMnHxMG/vLq4trSysK6rqKajoZ6al5OQjouJhoSCgH59e3p6eHh3dHNucG1rbWtrcXZybnB1eHl4dnR1eHZxcHRzc3N1dnRuamtraWhoampnYF9gYmFcV1VZWVpbXV9hYWRmam5xdHh6fX+ChIaIi42QkpWXmZyfoaSmqa2vsrS2ubu+wcTHyszP0tXX2Nna29ra2djW1NLRzs7My8nIyMfGxsbGxsbGxsbGxsbGxsbGxsfHyMrMzc7S1Nfa3eHl5+3v8vT2+Pr7/f3+//////////////////////////////////////////////////r5+Pb08u/t6ufj4N3b2NXT0c/My8jGxMHAvry6t7SysK6qp6SgnZuYlpOQjoyKiIiGg4GAf357fHp0cHFxbWppaWhnZ2hoaW5sbXBuaGdqcG5sa2toZGFaXmJmaGlmYmBeXFtZWFhZXF1eYGNmaGltb3N3e36Bg4iKjI+RlJaYnJ6ho6apq62wsra5u77AwsXHyczO0dPV2dvd3+Dh4uLi4uHg3t3b29jX1tXU09PT0dHR0dHR0dHR0dHR0dHR0dLS09TV1tjY293f4uXo6+3w8fT29/n7/P3+/v/////////////////////////////////////////////////7+vn49vPx8O7s6ebk4d/d2tnX1tTS0M7MysjGxMK/vbm3tLGuq6imoqCdm5iWlJORj4yMi4mKhH6BgXx7eXRubm1saGVlZmdjYWFiYFxaXGNgXlxbWllXV1hZW11gYmNbW15gYmRlZmVmaGpsbnFzeXp9f4KGio2Rk5WYmp2goqaoq66ws7W3ury/wsTHycvP0dPV19nb3d/h4+Tk5ebn5ubl5eTj4uHg397d3dzc3Nra2tra2tra2tra2tra2trb3Nzd3t/g4OHi5efp6+7x8vT29/j6/P3+/v7/////////////////////////////////////////////////+/v7+ff29PTw7+zq6Obl5OHf3t3c2tjW1dPRz83LyMbDwb67uLWzsa2rqKWjoZ+em5mUlpKNjoiLi4iCfXx7end3dG9ramppaWdmZWRiYWFgYF9fX2FhYV9gYWJiYWFgZmZmZ2hrbW9wcXN1d3l8foSGiIuNkZWXmpyfoqWnqqyxs7W4ur2/wcTGyczOz9LT19nb3N7f4ePl5ujo6enq6+rq6unp6Ofm5uXl5OPj4+Pi4uLi4uLi4uLi4uLi4uLi4uPj5OXl5ubn6Orr7e/x8/X3+Pn6+/z+//////////////////////////////////////////////////////z8+/r5+Pf28/Lw7u3s6urm5eTj4uHe3Nzb2dfV09DOzMrHxcLAvbu4trOwrqyqqKainaGdmJuWlZORkI6MiYeAgH57eXl2cnFwbmxsbGtpbGxtbGxra2tqamprbG1ub3Bvb29wcXJxeXp9f4GEh4mLjpKVmJqcnqSmqayvsrW3u73AwsTHycvO0NPV19nb3N7g4uPk5efp7O3u7+/v8PDw8PDw7+7u7ezr6+rp6enp6enp6enp6enp6enp6enp6enp6urr6+zs7u/w8fL09vf4+fr7+/v9/v/////////////////////////////////////////////////////8+/v6+vn4+Pb29fTy8fDv6+vq6ejn5ubj4uHf3tza2NbU0c7MycfFwb+8ube0sa+wrqupp6WioJ2bmJaUkY6MiomGhIOBfn17enl4d3Z2dXR0dHNzdHR0dHR0dXZ3d3h6e3x9fX+BgoOFh4mLjZCRmJqdoKKlqKqsrrG0t7q9v8PFyMrNz9LU19ja3d/h4uLl5ufo6uvs7O/w8fPz8/Py9fT09PPy8vLx8fDw8PDv7/Dw8PHx8fHx8PDw8PDw8PDw8PDx8fLy8vPz9PX2+Pj5+/v7/Pz9/f3//////////////////////////////////////////////////////Pz7+/r5+fn4+Pf29PPy8vDw7+7t7Ovr6ejn5uTj4N/c2tjV09DOzMvJxsPBvru5trSxr62rqKelo6GenJqXlZSSkI6MioiHhISDgoGAgH9/fn5+fn5+f3+AgIGCg4ODhIWGh4eJi4yPkJOVl5mbnZ+hpKaprK+xtri7vsDDxsjKzM/R1NbZ297f4ePl5+jo6uvs7e7w8PHy8vT19vb19fb29vb19fX19fX19fT09PT09PT09PT19fT09PT09PT09PX19fb29/f19vf3+fn6+/v8/Pz9/f3+//////////////////////////////////////////////////////38/Pv7+vr6+vr5+Pf39vb19PTz8vHw8O/u7ezr6efl4+Hf3dvY1tTS0M3LyMbDwb68uri2tLGwrauopqSin52cm5mXlpSSkI6OjYyLioqJiYmIiIiIiYmKiouLjI2Njo6PkJGSk5WXmZqdn6CipKapqq2wsrW4ur7AwsXIys3P0tTX2dvd4OLk5efp6+3u7u/w8PLz9PX19fb3+Pn5+Pj5+fn4+Pj4+Pn5+fn5+Pj4+Pj5+fn5+fn5+fn5+fn5+fn5+fr6+vv7+fr6+/v8/Pz8/f39/f7+/v/////////////////////////////////////////////////////9/fz8/Pv7+/v7+vr5+fn49/f29fTz8/Py8fDv7u3r6efm4+Hg3tza1tTS0M7LycfFxMG/vry5uLSysK2sqqelpKOhn56dm5mYl5aVlJOTkpOTkpKSkpOTkpKSk5SVlZaYmZqbm52foKCipKanqautsrO2ubu9wMLDxcjKzM/R09ja3N7g4uXm6Onr7e7w8fHy8vP09fb29/j4+fr6+/r6+vr6+vv7+/v7+/v6+vr6+vz8/Pz9/f39/f39/f39/f37+/v8/Pz8/Pz8/f39/f7+/v7+/v7//////////////////////////////////////////////////////////f39/Pz8+/v7+/v6+vr6+vn4+Pf29vX19PPy8fHv7ezr6efl5OPg393b2dfV09DPy8nHxcTCv768uri2tbOwr62sqqmopqWjoqGgoJ6enZydnZycnJydnZycnZ2en6CgoqOkpaWnqaqqq62vsbK0trm6vb/Bw8bIy83P0dPW2Nrd3uHj5Obo6uvs7e/x8vLz9PX19vf3+Pj5+fr6+/v7+/v7+/v8/Pz8/Pz8/Pz8/Pz+/v7+/v////7+/v7+/v7+/f39/f7+/v7+/v7+/v7+/v7+//////////////////////////////////////////////////////////////39/fz8/Pz8+/v7+/r6+vr6+vr5+Pj39/b19PT08vHv7u3r6unn5uTi4N7c2tjW1dHPzcvKyMXEwcC+vLu5t7WzsrCvrq2sqqmpqKempaSkpKSkpKSkpKSkpaWmp6ioqamqq6ytrrCxsrO1t7i6vL6/wcPGx8nMzdHT1dfZ293f4uPl5+nq7O7u7/Dy8/T19ff3+Pj5+fn6+fr6+vr7+/v7+/v8/Pz8/P39/v7+/v7+/v7+/v///////////////////////////v7+/v7+/v7////////////////////////////////////////////////////////////////9/fz8/Pz8/Pv7+/v7+vr6+vr5+fj49/f39vb19fTz8fHv7uzs6+no5ePh397c2tjX1dPR0M7MysbFw8HAv727uri3trW0s7KxsK+uraysq6yrq6urq6usq6ysra6vr7CwsbKztLW3uLm6vL6/wMLExsjKzM7P0tPV19nb3d7h4uXm6Orr7e/w8PHy9PX19vb4+Pj5+fn6+vr6+vr6+vv7/Pz8/Pz8/f39/f7+/v7+//7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////Pz8/Pz8/Pz8/Pz7+/v7+vj4+Pf39vb29/b19fX08vHx7+7t7Ovq6Ojn5ePi4N7d29rY1tTT0c/Ny8nIx8XDwsHAv769vLu6ubi4t7a1tLS0s7Ozs7OztLKys7O0tba2uLm6u7u9v8C/wMLExcbIysvMz9DS1NbY2tvd3+Hj5ebm5+nq7O3v8PDx8vP09fX29/f3+Pj4+Pj6+vr6+vr7+/39/f39/f39/Pz8/P39/f3+/v7+/v///////////////////////v7//////////////////////////////////////////////////////////////////////////w== - //////////////////////7+/v7+/v7+///+/v7+/v7////+/v7+/v7+/v7+/v7+/v7+/v7+/v79/f39/f39/f39/fz8/Pz8+vr6+vn5+fn4+Pj4+fn5+fn5+fn5+fn5+fn5+vr6+vr6+vr7+/v7+/v7+/z8/P39/P39/f3+/v7+/v7+/v7////////////////////////+/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/v7+/v7+/v79/f39/v7+/f39/f39/f39/f39/f39/f39/f39/Pz8/f39/f38/Pv7+/v6+vn5+fj49/f39/f39/f39/f29vb29vb29vf39/f39/j4+Pj4+Pj4+fn6+vr6+/v7/Pv8/Pz9/f39/f39/f7+/v7+/v7+/v7+/v///////////v7+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v7+/f39/f39/Pz8/Pz8/Pz8/Pz7/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8+/r6+vn5+Pj39/f29vX19fT09PT09PT08/Pz8/Pz8/Pz8/P09PT09PX19fX19vb29/j4+Pn5+vr6+vr7+/z8/Pz8/P39/f39/f39/f3+/v7///////////7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v7+/v79/f38/f38/Pz7+/v7+/v7+/r6+vr6+vv7+/v7+/v8/Pz8/Pz8/Pz7+/v7+/r5+fj39/b29fX19PPz8/Ly8fHx8fHx8fDw8PDw8PDw8PDx8fHx8fHy8vPz8/T09PX19vb39/j4+fn5+vr7+/z7/Pz8/P39/f39/f39/f3+/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/v7+/v39/Pz8+/z8/Pv7+vr6+vr6+fn5+fn5+fn5+fr6+vv7+/v7/Pz8+/v7+/v6+vr5+Pj39vX09PPz8vLx8PDw7u7u7u7t7e3t7e3t7e3t7e7u7u7u7u/v8PDw8fHy8vLz8/P09fX29vf3+Pn5+vr7+vv7+/z8/f38/P39/f39/v39/f7+/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/f39/f38/Pv7+vr7+vr6+fj4+Pf39/f39/b29vb39/f4+Pj5+fn5+vr6+vr6+vn5+fj49/f29fTz8vHw8O/u7e3s7Ovq6urq6enp6enp6enp6enq6urq6urr6+zs7e3u7u/v7/Dw8fLy8/P19fb29/j4+fn5+fr6+/v7+/v7/Pz8/f38/P39/f7+/v7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f39/Pz8+/v6+vn5+Pj49/b29fX09PT09PTz8/Pz9PT19fX19vb39/f4+Pj4+Pf39vb29vX08/Lx8O/u7Ozr6+rp6Ojn5ubm5eXk5OTk5OTk5OTk5eXl5eXl5ubn6Ojp6erq6+vs7O3u7+/w8vLz8/T19vb29vf3+Pn5+fn5+vr6+/v7/Pz8/P39/v79/f7+/v7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pz8+/v6+vn4+Pf29vX09PPz8vLy8vLx8fHx8fLy8vPz8/T09fX29vb39vb19fX09PTz8/Lw7+7t7Orq6ejn5ubl5OTj4+Li4eHg4ODg4ODg4OHh4eHi4uLi5OTk5ebm5+fp6err7Ozt7e/w8PHy8/T09PT19fb39/j4+Pj5+fr6+vv7/Pz9/f7+/f39/f7+/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/f38/Pz8+/r5+Pj49/b29/f49/b39u3t7Ono6enq6/Hu8e7x7fTy8/T09fX19fX19fT08/Ly8u7p5+jq6OTq6ejn5uXk5OPi4eDd3dzc2NjY19bW1tTW1tnb3eDg4eLf4Ofl5unn4d3h4+bo6eXq6+3u7u/w8fHx8vP09fX29fb39/f4+fr6+vv7+/z8/Pz8/f39/f7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v79/f38/Pz8+/r5+Pf39vX08vLu7erq6urx7+3u7+/s6enq5ejo7enq8PDx8vLz8/Ly8vLy8fDw7/Dw8O3p6ebj397d3NrZ2NfY2NfV1NPS0NnZ2NjY2drb1tfX2tvc3t/X1dXY19nc3Obj5+jn6ejk5+jq6uvs7e7u7u/w8fLz8/P09fb29vf4+Pn5+vr7+/v8/Pz9/f3+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/f38/Pz7+/r5+Pb19fTz8vLx7Orm5eTj5OPi4uLj5OTp6efq5urp6uzs7e7v7+/v7+/v7u7t7Ovo7vHs6ebl4N3d29rY1tXV19bW1dLR0M3S0dDNzc7NzszMzMrKysfH2dra19bY1tjd4eLh3d/h4+Lk5ebn5+nq6urr7O3u7/Dw8fPz8/T19vb39/j5+fr6+/z8/P39/v7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/vz8/Pz7+vn5+Pf19PPy8e/u7+7u7+7t7Ojp5+fn5+jq4ODl6ejt8PPo6err6+zs7Ozs7Ovr6uno3ejr6ejq6+fp6ejn5eTj4+Pj4+Dg39/e09DPzs3MzMzV1tXU1dPS0s/R0c7Q0MzMys7Q1M/S2uHe3+Hi4uPl5ufn6Onq6+zt7e7w8fHy8/T19fb29/j5+fv7+/z9/f3+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v38/Pz7+vn49/f29PPy8O7t6+ro5+Xk4uHi39/f4+Pf3Nza3N/j5eXk5eXm5+jp6enp6eno6Ofm5fH7/vj1+fnx9vb29vX19PTz8/P08vLz8+zt7/Hy8/Pz6Orr7vL09vfx7u3o6Obh4dXc1trR0NXd2tvc3t7f4eLj5OXm5+jp6urr7e7v7/Hy8/T09ff4+fn6+vv7/P39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39+/v7+/r49vb29fPx7+7s6unm4d/d29jX1tfZ2NTW2+LU2NrV19LT1+Dh4uPk5eXl5OTk5OPj4uHl9fz4+////fj4+Pj5+fn5+vv6+/z7/Pz//////vv29Pn49vTy7u3s+Ozt6efr6ezk6d7m2c/P1tTV19jZ2tzd3t/g4ePk5ebn6Orr7O3u8PHy8/T29/j4+fr6+/z9/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/fv7+/r59/b09PPw7u3r6efj4+Xn6urq5/r9+fHm4+rw+Pjx4+TY0tPb29ze39/g4N/f39/e3d3c4PT//Pr///38/P39/v7///v8/P38/f7+/f3+//39/fv//////v79/fnj4t/Z3Nna3+DS4NPJxtDOz9HS09TW19na29zd3+Dg4+Tm5+jq6+3v8PHy9PX29/n5+vv8/P39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/f37+/v6+ff19PPx7+3r6ebl3eHm6/Hw7uvz8PH1/f//+/Xq2NLq59vS19fY2tvc3Nzb3Nvb29rZ2OD4///7//70///////////9/v7//v7//////////////P7+///////x2N7g3uTl5uzm0N7Pwr/KycvMzs/Q0tPV1tfY2tvc3eDi5OXm5+nr7u7v8fP09fb5+fr7+/z9/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38/Pv6+fj29PL7/eba7vLv+f//9e/v8fTz9Pf7+fDo3dLZx83V5tTFztLU1dTU0tPT2NjY2NfV1NPe+P/7///+///////////////+///////+//////////r////++P//6+He4d7e39/l1dPjtrDAxsnGxsbHy9PXztTa3+Pl6Orj7tHX6+fq7unr7e/w8vP19vf5+vv7/f39/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+ff29fPx7e/j5Pn46eby8fDx8/b19P735s+8uL/EzsnW18zcwMbJyszOzs/Q0dHR0dHQzs3M3ff/+//9/f///////////////v/+//7//v/////////7/////vv//urg3uHg3t/e4dPW57Suwbu3vs7g7vX07fHx8vHw7+/x6/Xg2eLf5ezn6ezu7/Hy8/X3+fr7+/z9/f3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pz6+ff29fPx7+Xv7Ovu8PL/8vP29/b39vf/48G1trzBycfL19rF6L++wsPEx8nMzMzLzMzLysnHxt32//z//fz////////////+//7//v/+/v7/////////+/////78//rk4d/g4ODe3NzT1+uvprirpbfS5+/x9PPu7u/x8O/v79/q5uDh2tjd5efp7O3v8fL09vj5+vv8/f39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+vj39fTy8O7o7u7v7/X7//X19PXz8vb3/Nq+vsS/vsXCztTa0uO+tre4urzBxMXHxsbGxsXDwsHk+f/8//z7/////////////v79/v7//v7+//////////3////8/P/13+Hi4N/g39vZ09jtqp2rppev1PH8/vv3+Pj39fPx8O708Onc3NjW2+Lk5+nr7e/x8/X3+Pn6/P39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38/Pr59/Xz8e/t6e3p6+z38uns6+3t7ezq6fDey8fIxcPKvdLU1NXMyK+ztri5vb6/wb6+vr69vLq57f3//P36+/////////////7+/f7+//7+/v/////////9/////P7/79/h4+Hh4N7b2dbV45+Rm6Coweb4+PDv7fv49fPz9PPz//To19nV2OXf4eXn6uzu8PLz9vf5+vv9/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38/Pz6+Pb08/Dt69/o5Ofl8+3q7Oro6ejn5uTx6tbIzdbSzMbQ0szUyuKrs7W2t7i2uLm4uLi4t7W0s/b///v8+/v////////////+//7//v/+/v7//////////////vn+/+ff5OLh4eHc2tvW1NudoKq28PD1+/n48+vu7e/w8PHx8vPo4NHVztfm3N7i5efq7O7w8vX3+Pn7/P39/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pz8+ff18/Hu7Onc4Nzq7vjt6u7s6urq6+vt4erfzc7X2djR0M7J1NbqrbCxsrKxr7CwsrKysrGvrq38///7/Pz6///////////////+//7//v/+//////////////74/f/i4uXk4OHf3Nnb0NfdrNDj8PHw8vX19/b09PP08u/u7u/279/FycTU4tnb3uLl5+rs7/H09vj5+/z9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+/j29PLw7ero5+Xc6e316Orq6+3s6urp6OLp4tTP0NPa1dTSys7W2rDCxMG6squmqKqrq6qpqKal/f//+vz7+v///////////////v///////v/////////////++Pz/4OTl4+Li39rb3M7Z3rTw///++Pb39vf28efk4d3e5e/5+/nevcO/z9bW2dzg4+bo6u/x8/b3+fv8/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f79+/r39vTx7+vo5d7e1uDq8/Tg7u3r6erp6Obi6+bU09Lk7uvs7fDx8vT18vPy9fj8///z9PTx6uLd2v///fn4+Pv9/v7////////+//////////////////39/f/+/Pj/++Pk5OTh393Y1tfS0dH3+vr+/v38/v7/5dHQ197i4+jt8f3yu7bHw8vQ0dXZ3eDk5+rt7/H09ff5+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/fv69/bz8e7r5+Td3Nfe6/L25O/t6+nq6ejn5+jp8//////////9+ff08/r5+PXz8O/v8fPy8u/t7e/19PLx8PLz9PT09PX19vb28/P09PX19vb29/v8/f////7///37//Tj5eXl5OHf3NrW2tHP9vn6//79/v3//+DR0Nfe4uTo7vL/97iywcLIzs/S19ve4ubp7O7x8/X3+fr8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz7+ff18/Du6ubj3djY3O7v+Onv7uzq6+rp6Ork4/D/+vj9//////79/v7////+/fr49f////79+/r58/Hw8PHw8fDz8/Ly8vHx8fHw8O/v7u3t6+zt7Ozu7/H+///////u6OXl5eXj4d/d1dzR1//7+v/+/P/8//7Y0dPY3+Lk6/Hy/Py0rbq+wcnMz9TY3N/k5+vt8PP19/n6/Pz9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38+vn29fLw7Onl4tzW1djs7ffr8O7s6+zr6unq5eHs+/Dy/vz8/Pv8////+/v+///////+/Pv6+vj28/r59vX19PPw7+7t7Ovq6enq6uno5uXk4+Xk4eDc29vZ9///////5+nn5+bk4t/f3drYz+P/+vz///z/+//50dLT2t/i5ezy9fn4rqizvb3EyczS1tre4uXq7O/y9Pf5+vz8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f39/Pr59vTx7+vn4+Db1NPR6Orz7fDu7Ovs7Ovq7Ofj7v/8+v7//////f3///7/////////8vP09vf49fP9+fX08/Pw7+zr6ujn5eTk5ubl5OLh4N/e3d3d3Nva1/X/////+uLn6evt7/L09fX07eb3//f+///8//z/8c3S1Nrf5Oft8/b37Kekrry6v8bKz9TY3OHk6evu8fT2+fr8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/fv6+PX08e7q5uLf2dPPzeHo8vDw7uzr7ezr6ujp5vH////////////////9/v78/f39+/z9/Pz8/fv59/Pw8O/x7+3u7ezq6Ofm5eXl5OPi4eDf3d3d39/d29rt///////7/////////f38/v/////5/////f/9/+fM09bb4eTo8Pb39diioKm5uLzEyM3S19vg4+jq7vHz9vn6/Pz9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+fj18/Dt6eXh3tfTzMra6vP17+7s6+zs6+rs8Ovv//v8///////+////9fb3+Pn5+Pf7/Pz7+/r5+fTz8e/w8PDu7Ovq6efm5eTk5OPi4eDf3t3c293c2tjV8/////v8///////////9/vP8///5+f////7+///eztTX3eHk6PH29/XFnZyjtba2wcXL0NXa3+Ln6e3w8/b4+vz8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+/n49fPw7enl4N3W1crH1Oz0+e/u7Ovs7Ovq8fDo7P/59v3//v38/f39/v///////////f3+/v37+ff08vLx8fLw7u7u7evq6ejn4+Pi4eDe3t3Y19nZ2tza2ef////69v3++fv9/v////////759/j5///+/f/92NDV193h5Orx9/r2uZuZnrG0s7/Dyc/T2N3h5+nt8PP2+Pr8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Ty7uvp5N/c2s7IxsHt9fbu7e3u7ezt7PLv7ez/+/3+/f/////////9/v///v////79/fz7+vf2+fb08vLx7+3t7Orp6+ro5+bl5OPi4eDf3d3d3Nza2Nbm///9/v/+//z9/v/+/f7////8/f7////9//z/+tDV1tbd4eTp9Pr89aGWmJuttba7wsjN09fb4eXo7PDy9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf08u7r6OTf29rLysbF8vb08vDu7u3s7+/v7ezr//r9//3//////////f7+/////v/+/Pz7+/r29vj29PLy8e/t7ezq6evq6Ofm5eTj4uHg397d3dzc2tjW5P///v3//v///////////////vz//////v79//TO1dfW3OLk6/T6+/qckpSXq7CzusHHzNPX2+Hl6Ozv8vX3+fz8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7///39/fr39fLu6+jk39vZyc3Ew/P08PLw8e/v8fLy7+/u7//5///9/////////v39/v/////+/fz8+/v6+Pb49vTx8vHv7e3s6+rr6ujn5uXk4+Lh4ODe3t3c3NvZ19z+/vz7/f7//////////////fr8/f////79/v/rzNXY2N7h5u31+fn/lY+SlKirsrjAxsvS1trg5efs7/L19/n8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Xy7uvo5N7b1snPwbzq8u7z9fX29vn5+ff69vX/+v7//v////////78/v///////f39+/r6+ff1+PX08fLx7+7u7Ovq6+ro5+bm5eTi4eDg397d3dzb2dfa/f///f////7///7+/v///v78+/z9/v3+/P//48vV2dve4ufu9vn3/I+NkpWoqLO3vsTK0NXZ3+Tn6+/y9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf18u7r6OPe2tLK0cC14PT2+/v7/f3+///+//78//v+//7////////+/v7///7+/v7+/fz8/Pr39vf18/Hy8e/u7u3r6uvq6efm5uXk4uHg4ODf3d3c29rY2Pv///3+///8/Pv6+/v9/v/////9/fz8/v3//9vO1tre4OPn8Pf6+O2HiZKTpKWxtb3DyNDU2d/k5+vv8vX3+fz8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7///39/fr39fLu6+jj3trPzNLBstf5///+/v38/f7////+/v/7/v/+///////+/v79//////79/vz7+/v6+Pb39PPx8vHv7u7t6+rr6uno5ubl5OPi4eDg397d3Nza2dT3///+//////79/fv6+/v///////////z+///T0dXa4ODj6fH4+vvOfIeRkqGjsLS7wsjP1Njf4+bq7/L19/n8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+///9/f369/Xy7uvn493ZztDPwbHN/v/9/f39/Pr7+v3//f7//P///v///////v3+///////+/f39+/v7+fj19vTz8PLx7+7u7evq7Ovp6Ofm5eTj4uHg4d/e3d3c2tnV+P/////////////9+/z8/P39///////7///4zNPV2uHi5erx+Pv+r3SGkZGeo66zu8HHz9TY3+Pm6u7y9ff5/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///f39+vf18u7r5+Pd2c7QzcGuxv3/+/3//////Pn+//3///3///////////79/f/////+/fz9/fv7+vn49fb08vDy8e/u7u3r6uzr6ejn5uXk4+Lh4OHg3t3d3Nva1PX8//n5+PP///////////z9/f78/fz9+v/+8sfU1Nri4ubq8/n8/51xhpKSnKWts7rBx8/U2N/j5uru8vX3+fz8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pr49fLu6+fj3dnTysnBtbT0//79/f////76+ff2+f3///////39/v////z+/v////7+/f3+/f369/j49/bz9fLw8O/u7Ovq6efm5uTj4uLh397e3t7d3Nva2drg7vv+/P3//////////vz+/////fz7+fXw5djS09re3Ofm+ev5//Zze4OKk5ujrLO5wcjO09rf4+fr7/L0+Pr8/P3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz6+PXy7uvn493Z1MvJwra18P/+/f3////++v/9/P3////////9/f7////8/f7//////v39/f38+vf4+Pf28/Xy8PDv7uzr6uno5ubl4+Li4eDe3t7e3dzb2tnj3t7g39rY2tfZ3+Ln6urr8/Ly7+nj3tnPz83LzdPb39rm6Pjs9//3cnuCipObo6yzucHIzdPa3uPn6+/y9Pj6/Pz9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38+vj18u7r6OPe2tTLysS2tOj///39//////v//////////v///f3+/////v39//////39/P39/Pr59/j39vP18vDw7+7s6+rp6Ofm5ePj4uHg397e3t3c29rZ4tzX1tLLxcO/v8PHzM/R0dHR0M3Ky8vIy8zMzNHW29zc6On17vj+/XF6gomSmqOss7nByM3T2d7j5+zv8vX4+vz8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/Pr49fPv6+jk3trUzcrEtrLf///9/f7////8//////////////39/v/+//7///////7+/P78/Pv5+Pf39vXz9PLw8O/u7Ovr6ujn5uXk4+Pi4N/f3t7d3Nva2dHO0NXW1M/M1dTS0c/Lx8bLysjHyMvLzc/OzMzR19vc3ert8/D8/f1xeYGIkpqirLO5wcjN09ne4+fs8PL1+Pv8/P3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/vz6+Pbz7+zp5N/b083Mxbaw1Pz//fz+/////fz9/v7+/v7+///9/f7//v/9/v/////9/f39/v78+vj49/b18/Ty8PDv7ezr6+rp6Ofm5OPj4uHg39/e3t3b2trX09HQz87My87NysvKysnIxcXGycnIxsbMysjIztbc3t/s7vHw/f7tcHmBiJKaoqyzucHIzdPa3uTn7PDy9fj7/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79+vn28/Ds6eTf29POzMW2r8z3//38/f////3///////7+/v///f3+//7///7+/////vz9/P39+/r59/b19fL08vDw7+3s6+vq6ejn5uXk4+Ph4N/f3t7d3Nra2dfW1dTU1dbPzsvKysnHxsbFxsjKysrLz87MzNLY3d7d7PHx8P34y3B5gYiSmqOstLnByM7U2t/k5+zw8/X4+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fv59/Tw7enl39vSz8/GuLDF9f/9/P3////+/////////v7///79/v/+/v/+//////7+/P79/fv5+ff29fTy9PLw8O/t7Ozr6+no6Obl5OTj4eDf39/e3dzb2tva1tbV1tbVzs3NysvLysnJx8THx8nMz83NzM3T2d7f3+7w8fD/+axweYGIkpqjrLS6wsnO1Nvf5Ofs8PP1+fv8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v37+ff08O3p5d/b09HQybmxxPX//fz8/////v/+/f3+///+///+/f7//v7////////9/fz+/Pz6+fj39vX08vTy8PDv7ezs6+vq6ejn5eTk4+Lg39/f3t3c29rSzcnIzM/P0M7NzMzLy8nIx8XGyszLztDOzs3N0dfc3uDx8PHw//6dcHmBiZKbpK20usLJz9Xb4OTo7PDz9fn7/Pz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7//v78+/r39fHu6ubg3dDVzcHCsbj4+/3///////z+/v7+/v7+/f///////////v///v///////v37+fj6+fb39fXy8vDw7ezr6+vq6Ofm5OPi4uHf3t7e3t3c29rZ19XT0tLR0M/Pzs7NzMvLysrKysrKy8zMzs7N0tfb4OLf7vTx+v/3c3J7g4uVnaWutbvDytDV3OHl6e7x9Pb5/P39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+//7+/Pv69/Xx7uvm4d3S1svBw7K39fv9///////8///+/v7+/v7///////////7//v////////78+/n4+vn29/X18vLw8O3s7Ovr6ujn5uXj4uLh4N7e3t7d3Nva2dfV09LS0dDPz87OzczLy8vKysrKysvMzM7PztLX3ODi3+708/n/+m5ye4SMlZ2mrra8xMvR1t3i5enu8fT2+fz9/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/////vz7+vj18e7r5+He1tfMw8Wzt+36/P///////P////7+/v7+///////////+//7////////+/Pr5+Pn59vf19fLy8PDt7ezr6+ro5+bl4+Pi4eDf3t7e3dzb2dnX1dTS0tLR0M/Pzs3MzMvLysrKysvLzMzPz87T2Nzg4uDu9fT6/f9tc3yEjJaepq+4vcXM0tfe4ubq7vL09vn8/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79+/r49fLv7Ofi3tnYysHGtLXh+vz///////z//////v7+/v////////////7///7//v7//fz7+Pn5+Pb39fXy8vDw7u3s7Ovq6efm5eTj4+Lg39/e3t3c29nZ19XU09LS0dDPz87OzczMy8vLysvLzMzNz8/P09jc4OLm8Pbz+v3/cHR9ho6Xn6iwuL7GzdLY3uPn6u/y9Pf6/P39/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fv7+Pby7+zo49/a1sjCx7ay1Pv9///////9//////7+/v7///////////7////////9///8+vn5+fn29/X18vLw8O7t7Ozr6+nn5+bk4+Pi4eDf397d3NrZ2NfV1NPT0tHR0M/Pzs3NzMzLy8vLy8zNzdDQz9TZ3eDi6fH48vr89HF2foePmKCpsrm+xs3S2N7i5+vv8/X3+vz9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38+/n28/Dt6eTg3NbGxMm3rsb9/v/+/////f///////v7+///////////+///////+/v/++/n5+Pj59fb19fLy8fHu7ezs7Ovp6Ofm5eTj4+Hg39/e3dza2djX1dTT09PS0dDQz8/OzczMzMvLy8zMzc7Q0dDV2d3g4erw+fH++NRsd4CIkJqiqrO5v8fN09je4+jr8PP19/r8/f3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/Pv59vPw7enk4d/XxcbLua+9/v///f7///3////////+/v///////////v7//////v7//v37+Pr4+PX29fXy8vHx7u3s7Ozr6ejo5uXk5OPh4N/f3t3c2tnY19XU09PT0tHQ0NDPzs3NzMzMzMzMzc3O0NHR1drd4OHu8frx//e2bniAiZGaoqu0u8DIz9TZ3+To7PDz9ff6/P39/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////fz7+fbz8O7q5eHg2MbIzrquuv////3+///9///////////////////////+//////39//38+/j5+Pj19vX18vLx8e7t7ezs6+no6Ofl5OTj4uDf397d3NrZ2NbV1NPT09LS0dDQz87NzczMzMzMzM3OztDR0dXa3eDh8PT78P/6pnJ4gYmRm6OrtLzBydDV2uDk6ezw9PX3+vz9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pr39PHv6+bi3dbRzMS9t6/0///6+//+///////////////////////8/f7//v////7+/vz8+ff29/b39vPx8fDu7ezs6+vq6Ojn5eTk4+Hg397c3Nvb2djX1tXU09PS0tHQz8/PzszLy8vMzM3Oz9DT0tPV2+Dh5Ozw9/z/9INseYKLk52lrba9wsrQ1dvh5ert8fT3+fv9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz69/Tx7+vm493X0szEvrew8f//+v3//v///////////////////////f3+///+///+/v3+/Pn39/f29/bz8fHw7+7s7Ovr6ujo5+Xk5OPh4N/e3Nzb29nY19bV1NPT09PR0NDPz87My8zMzMzNzs/Q09LT1tvg4+Ts8fn+//R7bXqDjJWepq63vsPL0dbb4ebr7fH09/n7/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fz8+vj08u/s5+Pe19LNxr+5sen///r+//7///////////////////////3+/v////7+/v3//vz5+Pf39vf28/Hx8O/u7ezs6+ro6Ofl5OTj4eDf3tzc29vZ2NfW1dTU09PT0tHQ0M/OzcvMzMzNzc7P0NPT1Nfc4OPl7fT3/v77d298hY6WoKevuL/EzNLX3OLn6+7x9ff5+/3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pr49fLw7Ojk39nUz8fBurLf/P/6///9///////////////////////9/v7+/////f3//v37+vj29/b39vPx8fDu7ezr6+rp5+jn5eTk4+Hg397c3Nvb2djV1dTT0tHR0dLR0NDQz83MzMzMzc7P0NDT0dTX3uLl5vH28//+/3VzfYaPl6GosLnAxc3T2N3j5+zu8vX3+fv9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz7+PXz8e3o5eDa1dDIwry01fn/+v///P////////////////////////3+///////+/v7+/Pr4+Pf29/bz8fHw7+7s6+vq6Ofn5uTj4+Lg39/e3Nzb29nY1tXU09LS0tLS0tHQ0M/NzM3Nzc3Oz9DR0dLT2N/l5ujx9/L//fNzdX+IkJiiqbG6wMbN09jd4+fs7/L2+Pr8/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/fz8+/n28/Hu6ebh29bRysS9tsz4//r///v//////////////////////////v////7+/v7+/fz5+fj39vf28/Hx8O/u7ezr6ujn5+bk4+Pi4N/f3tzc29vZ2NbW1dTT0tLS09LR0dDQzszNzc3Oz9DR0dHS1Nvh5ejp8vrz//fVb3iBipKao6uyu8LHz9XZ3uTo7fDz9vj6/P3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pv59vTy7urm4tzX0svFv7fF9f76///6/v/////////////////////////+/////v3+/v37+/n49/b39vPx8fDu7Ovq6ejm5efm5OPj4uDf397c3Nvb2djV1dTT0tHR0dPS0dHR0M7Nzc3Nzs/Q0dHR0tXc4ujq6fP79f/3unF5g4yVnKattb3EydHW2+Dl6u7w8/b4+vz9/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/Pz7+fb08u/q5+Pc2NPMxr+4w/T++v//+f7//////////////////////////////v7+/v79/fv5+Pf29/bz8fHw7u3r6uno5uXn5uTj4+Lg39/e3Nzb29nY1tXU09LS0dHT0tLR0dDOzc3Nzs7P0NHS0dLV3OLo6uv1+/H/+7B1e4WOlp6nr7a/xcvS2Nzh5+vu8PT2+fr8/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pr49fLv6+jj39nUz8jBu7P4///8/////////////////////v7+/v7+/v7+/v7+/v7+/f37+fj6+Pf19PPx7/Dv7ezr6unn5uXk5OPi4N/d3Nva2trZ2NbV1dTU09PS0NDQz8/Oz8/Ozs/P0NHS09LW3N3d4ejv+/L///GRcYCJkZmhq7K4v8jM09jd4ufq7vH09/n7/P7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz6+Pbz7+vp5ODa1dDKw7258v//9fz//f////////////////7+/v7+/v7+/v7+/v7+/v39+/n4+vj39vXz8e/v7u3s6+ro5+bl5OTj4uDf3dzb29va2djW1dXU1NPT09DQ0NDPzs/Pz8/Pz9DR0tPS193e3uLo7+7x+v/zi3iAi5Obo6yzusHJzdPZ3uLn6u/x9Pf5+/z+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+vj28/Ds6ebi3NfSzMW/vef6+vP8//3//////////////////v7+/v7+/v7+/v7+/v38/fv5+Pn49/b18/Hv7+7t7Ovq6Obm5eTj4+Lg393c29vb2tnY1tbV1dTU09PR0NHQz87Q0M/Pz9DR0tPT0tfe3+Hj6e7q8/3/+H11iI2WnqWvtbzDys7V2t/j6Ovv8vX3+fv8/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pv49vTx7evn493Y1M7Hwbvb9f/8///8///////////////////+/v7+/v7+/v7+/f39/Pz6+ff5+Pf29fPx7+7t7ezs6ufl5uXk4+Pi4N7e3dvb29rZ2NbW1tXU1NPT0dHR0dDP0NDQ0NDQ0dLT1NLX3uDi5ezx8Pz/++qAcY6QmKCosbe9xczQ19zg5ens8PL1+Pr7/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+ff18u7s5+Pe2dXPyMO60e///////f/////////+//////////////7+/v79/fz8/Pv8+vj3+Pj39vXz8O7t7ezs6+nn5ebl5OPj4uDe3t3c29vb2djX19bW1dTU1NLS0tHQ0NHR0NDQ0dLT1NTS2N7h4+fv8/f///jVb4KPk5ujqrO5v8bO09ne4ubq7fHz9vj6+/3+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f38+/n39fPv7ejk39rW0crFucje9P////7//////////v///////////////v79/f38/Pz7/Pr49/j39vb08u/t7e3s6+rp5+Xl5ePj4uHg3t7d3Nvb29rZ19fW1tXV1NTS0tPS0dDS0dHR0dHS09TV09ff4uPn8PXy/vrxk3p7mJefpq22vMLJ0NXa3+Pn6+7x8/b5+vz9/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v39/Pv5+Pbz8O7q5uDc2NPMx8DAwtTp//7///////////7///////////////7+/f39+/v7+/z6+Pf39vb19PLu7O7s6+rq6Ofl5eTj4+Lh397e3dzb29va2dfX19bW1dXU09PT0tHR0tLR0dHS09TV1dTY4OPk6e719dvvl39+h5Saoqmwub/Ey9LW3OHk6Ozv8vT3+fv8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////79/fz7+fj29PDu6+fi3trVzsnIuq230/T4/v/////////+///////////////+/v39/fv7+/v7+vj39vb19fTx7uzu7Ovq6ejn5eXk4+Pi4d/e3t3c3Nzb2tnY19fW1tXV1NPT09LS0dLS0dLS0tPU1dbV2eLl5unv8/nYhHZ/jY+VnKSss7vBxs3T193h5ent7/L09/n7/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pr59/Tx7+vo5ODc1tHMxr60rqirvdP9//////31/P/++vf7/P/8///////7+fj+/v7+/Pr59/Dw7+7u7Ono7ero5+fm5OLo5+Xk4+Lg3t7c2tra2tnY19fW1tXV1dXR1NXT09PSz87TzNLV2NDPz9nh6Ore5dptc3h+hYyTm6KnsLe9w8rO1Nje4ubp7fD09vn6+/z9/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz7+ff18e/s6eXh3djSzs7CubOtqKquuNbt7fT////////+///+/f/+///9/fv7/f38+/n29PL08/Py8vDu7O3r6ejp6Obk4+Lh4ODf3dzf3tzc3Nzc29fX19fW1dTT1NXU0tDQz83V0M/X1d7b1NTY0+byrXVrcXd8gYmQlp6lq7O6wMbM0dba4OTn6+7x9Pb5+/z8/f7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38+/n49fLw7uvn4+Db1dHQxru2sa2mo5GSmLDc+/77/f//+Pz/+v3+/f38+/r6+fj4+Pf29PPy9/b29fTz8O/p5+bl5eXj4eHh4ODg397c29rZ2NjY2NfX19fX19bV1NPT09HP0NDP3tLJ09TQzdXU5rBuaGJdXXZ8goePlZujqrC4v8TJ0NTZ3eLm6ezw8vX3+fv8/P3+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pv6+Pbz8e/s6OXi3djU08zBubGsp6WXkZGQjo2Zt+n0/fTw9fn//v/9/Pr6+vz29vb29fTz8/Tz8vHw7uzq5+bl5OXk4uHg397e3t7c29zb2tnY2NfX2NjY19fW1tXU1NTS0dHQz9fKycrS7MmAUlRWXmJgbnt7goeMlJqgqK+0vMLHzNLX29/k6Ort8PP19/r7/P39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/fz7+vn39PLv7enm49/a1tLOx761rqeipJqSiYeDeHl6eIGZxOr//////v38+/z/+fn49/b08/Lw7+7t6+nm5Ojo5+fn5uXk4+Lh4eHg3t3g397d3Nvb29nZ2NfX19fX1NbX2tvc297h2qdkVldMTVZUWWJhb314gIeMkZmfpayzuL/Fys7U2N3g5enr7vHz9vj6/P39/v7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+PXz8e7r6OXh3NnUzcfCvLixqaOem5GMiHlybnBuZm2K5f39/fz6+fn7/fn5+Pf39vX18O/u7ezq5+Xo6eno6Ofl5OXk4+Pj4uDf3t7d3Nva2tvV1tbX2drb3N7i5uvr7PD0pFI7RERHUVBmbGhsb3N4hIWMkpefpKqxt7zDyc3R19vf4+fq7O/y9Pf5+/z9/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz7+vn29PLw7Orn5N/b2tXMycXAuLSro56Xk42FhXJ0cWVgdPD///37+Pb09/n4+Pj4+Pj4+Pb19fX18/Hw7u7v7+7s6+rp6Ojo6Ojm5efo6Ojn5+jq7O3u7+/v7u3r7vT39/f9/3lFPUFHTVdYYW1tdHqCfYOLkpiepaqwt7zByM3R1dre4uXp7O7w8/X3+fv9/f3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/f38+/v59/Xz8e7r6ebh3dXS0tLMxL66saimoJyakY6IgHJoZXP//v////339/f4+vr5+Pj39/b9/f3+/v78+/f4+Pj39fTz9vX19vf39vX5+vv7+/z+//X19PLv6uXi4ujw9/n9//9tTUpIUlZbYGBlbnp1goaJkJecoqmutLvAxcvQ1Njd4ePn6+7w8fT2+Pn7/f39/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f38+vj39fPw7uvo5OLc2dTQzMbAvLWyrKahm5SQhIqDeG5u0P////v+/PP08vT08/Lx8fHx9vf39/f39vb6+/v7+/v6+vb29/b29/f38vHw7uzr7Ovl5+jm5uTj4t3o7v35///2RUlOU1dcYmZrcHd9gYaNkZmdpKqvtbu/xsrP1Nfb4OPo6u3v8fP29/r6+/z9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/f39/Pr49/b08u/s6ebj39zY08/KxMC6trCrpZ+ZlYqPiH1zbrr////6/fry8vDz8/Lx8fDx8vX19fX19fT09fX19fX09PPx8fLx8PDy8u3t7evq6enq5ujo5uTl4+Ph6u/99////khMUVZbYGZqcXZ9g4iNk5idoqiutLm/w8nN0tba3uLl6evu8fP19/j6+vv8/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////f39/fz6+fj39fPx7uvo5uPg3NjUz8nFwLy2saymoJuTlY6DfXOf+P//+fv58/Dv8fLy8fDw8fLz8vLy8fHx8e7u7u7t7ezr7+7t7Ozs6+vq6uno5+jq6efo6efl4+Pj4+nv/vr8/+NNUFZbYGZscHZ7goiNkpmdpKivtLq/xMjO0dba3eHl6Ovt8PL09vj5+vv7/P3+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////39/f38+/r5+Pb08vDt6ujm49/c2NTOysXBvLeyrKaimZmTiIZ6jP3///n6+fPx7/Dx8vLx8PLz8fHw7+/v7+/u7u7u7ezr6uzs7Ovq6+vr6+vq6enq6uvo6Ojm5eTk5OXp6/7+/vivUFRaX2VrcXZ7gYiOk5ieo6qvtbq/xMnN0tba3uHk6Ovt7vHz9ff4+vv7/Pz9/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v39/Pv6+vj39fPx7+zq6OXh3tvX0s7KxsG8t7KsqJ2emY2LgIb8///5+fz18/Dw8fLy8vLy8+/v7u3s7O3t8vLx8fDw7+7r7Ovq6+rp6err6enp6enp5+np5+bk5OTn7u36///6iFNXXWNpcHZ7g4iPlZqgpquwtLq/xMjN0dfa3uHk5urt7vDy9Pb3+fr7+/z9/f7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/fz8+/v59/b08/Hu7Orn5OLf29bTz8vGwb23sq6ipJ6SkoaK8f//+fn99/Py8PHx8fLy8vHu7u3t7Ozs6/Pz8/Py8fHw7Ovq6erq6enq6eno6eno5+nq6ejk4+Pk5/Hx/f//+WtXW2FnbnV8gYiNlJqfpaywtrq/xMnN0tXb3uLl5+ns7+/x8/X2+Pn6/Pz8/f7+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/Pz7+vn39vXz8e/t6+jl4+Db2NTQy8fCvbezqKiimJqKjdn///v6/Pfy8fDv7/Dx8vDv7+/v7u7t7Ozw8PDw8O/v7uzr7Ovr7Ozs6Ono6Ojn5+jq6ejo5OPj5ejw8f7///haW19mbHN6goaMkZifpKqwtbzAxcrO0tba3uHl6Onr7vHx8/X3+Pn6/Pz8/f3+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8/Pv6+Pf29fLx7+3q6Obj3tvX1M/KxsG7t62tp5yeio7G///7+fz28u/w7u3v8fHv7e/v7+7u7ezr6uvr6+vq6urv7+7t7u7u7unn6enp6enq6uno5uXj5OXu7+37////WF5iaXB3foaKkZeepKqvtrvAw8nN0dXa3eHk5+rr7fDy8/X3+Pn6/P38/P39/v7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v38/Pz6+vn49/Xz8vHw7uvp5uLg29jUz8vFv7u1sKqloJeWm/T///T28+zn7u7u7u7u7+/r6+rp6enp6ejp6uvq6uns7Ovt7Ozt7ezq6+rq6erq6ujp6Ojl5OTl6+r3/f//62ZgZ210fIOJkJeepKmwtbnAxMjO09ba3uHl5+rs7vDy8/T1+Pr7/Pz8/f39/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz8+/v6+ff29PPz8fDu6+jl4t/c19PPycO/trKtp6KZlZf2/P/08vLs5Ojo6Ojo6Onp6eno5+fn5+fn6Onp6unp6urq6uvr6uzs6+vq6erq6uro6ujo5eTk5evr9/z//NhiY2pxd4CGjJSaoaets7i9xMjM0tba3eHk6Ons7vDx8/X19vj6/Pz8/P39/f7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/f39/Pz7+/r59/b19fTy8O7s6Obi39rW0s3Hw7i2saqlnJaS9vf78fDv6uDk5OTk5OTk5OTj4+Li4uLi4uPk5ubm5+jp6ejo6urp6evp6enq6urq6evp6ebl5OXs6vr7//e+YmdudXuEi5GZn6essri9wsnN0dfb3+Lm6Ovt7/Hy9PX39/j5+/z8/Pz9/f7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/f38/Pz7+vn39/b19PLx7uvp4+Dc2NTOycS7ubSspqCYkfLu9evr7ejb4ODg39/f39/c3Nvb29vb29ve3+Di4uPk5eXl5+jo6urr6ejp6Ojp6urr6unm5eXm7er+/P/1pGVqcXh/iI6VnaSrsba9wcbN0tbb3+Ll6ezu7/Lz9PX3+Pn5+vv8/Pz8/v7+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v39/f39/Pv6+fj39vTz8u/s6uXi3trV0MrGvbq1rKahm5Ln5Ozk5efk1dbW1dXV1dXU1tbV1dXV1dXX2Nna3N3e4eLj5OTl5+fn5+jn6Ofn6ejq6+rq5+bl5u3s//3/84tkbHN6gYqRmKCnrrS5wMXK0NXZ3uLl6Ovu8PL09fb2+Pn6+/v8/P39/f7+/v/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/v39/f38+/r59/b19PLv7Oro5eDc19LLx724tKykoJuS0Nfk297g2c7S0tHR0dDQ0M/Pz87Oz8/P0NHU1dbZ29ze39/g4eLj4+Xk5OXm5+jn6erp6efm5ufu7//8+/J4YW52fYSNlZyjq7K4vcTJzdTY3OHl5+rt8PL09ff39/j5/Pz8/f39/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v79/f39/Pv7+vj39vTy8O3q6OXg29bQysa8tbGqopyYkbrK29DU1dDEysnJycjIyMfHxsbGxsbGx8nKy8zP0NLU19fa29vd3t7j4uLj5eXm5+jp6enn5ubn7vP//fj0cGBxeYCIkZigp6+2vMHIzdLY3N/k6Ort8PP19vj4+fn6+vz8/f39/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+/v7+/f39/fz8+/r5+Pb18/Dt6ubj3tnUzsfDurOwqqCZlY+rwdTJzs7Ivr+/v76+vb29v7+/vr6/v8DBw8XFxsrMztLT1NfY2drb4eDh4uLk5efn6ejp5ubm6O70/v74+HFidHyDipSbo6qyub/Ey9DV297i5+rt7/L19vj5+vr6+/v8/f39/v7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7+/v///fz8+/r5+vf18/Lv6+jo4tvX0dDKwLy1raefl5GNm7bHxsK6tLS8uri2uLi1s7a3t7a0sK+vtbzAwL7ByMvJzc3Ly9HX19na29zh4+bn4+Xn5ubn6enr9vz//fRrbHV+h46XnqautbrCyM3S2d3i5ent8PL19vn5+fr7+/z8/Pz9/f7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v///////v7//v38/Pv6+fn39fPx7urn4d7c0sjCvriyqqSemJGHgo+twcK/vLu/qaekpKWjoqCgoqSlqq2xsa6oqKyxsrKwxcHAxsrLz9XV1tnb3uLl5+Lk5uXk5ufp6/X6///zbmx3gIiQmaCosLe8xMrP1dvf5Ofr7vH09vj5+vr7+/z8/f39/f7+/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////7//////////v38/Pv7+fj39fLw7uvn497X0crBvLStrKOclpGLg3+HorOyqqGhpaCfnpydnJuXkZGUl5qcnqCgn6Ous7O5v7O3ur7BxMbH0NDT1dre4OLh4+Xk4+Pm6Ov3+///5m5weoOLk5yjqrO6wMfN0tfd4ubp7fHz9vj6+/v7/Pz9/f39/v7+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+//////////79/Pv7+vj39PLu7Orm4d7S0s/KxL2zrK6lnZWLgHdzfZKmqaaioaefnpucnJqZl52em5eSjIeEm5OPkZmfp6ykrbW4ubq6uMfJy8/U19zd3+Hi4ePj5ujr+fz/9s5rc3uEjZWepa21vcLK0NXa4OTo6+/y9ff6+/z8/P39/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v////////7+/fz7+vn39fHv6+jl4dzY0crFwcC6r6ibkYiEh5WouaGpr6ukmpaWn5+enpycmpmRkpKRjo2KiXh/hYeIjZOWpqCgp6yxuca+wMXIztHV2drd4ODi4+Xn6vr8//O7and9ho6Wn6eut77Ey9HW2+Hl6ezw8/b4+vz9/f3+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/fz6+fj28/Hu6+fj4NvV0cDBv7qzp5qZjJaptbSsop+ysK6qpKGen5qampiYl5SUjo6Ni4qJiIiAgYGEhod6aYSFjp+utbi8t7q+wsfL0tTX2d3e3uDk5+r5+//2r216foeQmKGosLnAxc3T19zi5urt8fT3+fv8/v7+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v38/Pv6+Pf18+/t6eXh3NjSzMe9vrWnnJefrrm1sKuknpyfpqCbmpqZmpuPjo6NjIqJiZSRjoyIhoSDh4aCe3h2cm18f4CEjZecnqyxtbu+w8rO0tXX29ze4+bq+/r/9KJte3+IkZmjqrK7wcfO1Nnd4+fs7vL1+Pr8/v7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v79/Pv5+Pf18/Ds6uPf2tbRy8S/u7Gmqba7sq+xrq6vraqlpaCZk5KSk5KTkJCPjIuLi4qCg4ODhIOCgXp5eHh2dnV2Z2Nka3J8kaelqK6yuL3DyM/Q1dfa3OHl5/z8/u2VanyBipKbpKy0vMPIz9Xa3uTo7fDz9/n7/f7+/v7////////////+/v7+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////v7+/fz7+vfz8fDt6OTZ1s7Ix8W6tZ6msba1tLS2ramno6Cdm5mZlZOQjouJhoeEhIODgH9/fn59fX19fX15eXZ2c29ubWtmXlVZZ2pcoJynq67CybzGzM/T1dnd4/Hx8f71eXZ7g4yUnKWttb7FytHX2+Dl6e7w9Pf5+/z9/////////////////////////////////////////////////////////////////v7+//////////////////39/f39/f39/Pz7+/v8/Pz8/Pz8/P3+/v7+/v7+/v7+/////////////////////////////////////////////v39/fz7+ff08O7s6OLd0c3Qy7uuqaq7vb23r6urrKimpKGcmZeUkpCMiYiFhIF/f35+fHx7e3h4eHh4eHh4dXV0cnFubGtpamdcVFtlalyOmpulqba7wcfLztPX2+Lw8PH+9nd2e4OMlZ2mrra+xcrR19zg5uru8PT3+vv8/f///////////////////////////////////////////////////////////////////////////v7+/v39/f39/f39/Pz8/Pv6+vr6+vr7+/v6+vv7/P39/f39/v7+/v7+/v///////////////////////////////////////v38/Pz6+ff08ezp5uHa1M3OyL2xpKe4ureyqqWjpqiioJyZlJGNjImGg399e3p4d3d0dHNxcHBwcHBwcHBwcG1tbW1rampnZ2dlX1RKS0xNT4CSk6ass7i+w8nN09fe7e7x/vd2dnuEjZaep6+2v8bL0tjc4ebr7vH0+Pr7/f7///////////////////////////////////////////////////////////////////////////38/Pz8+/v7+/v7+vr5+fj39vb19fb29vb29vb3+Pj5+vr6+/v8/P39/f7+/v7+/v////////////////////////////////79/Pv7+ff18e3p5eHb083QxruqprO9tbKxrKWioaOjmpeTjoqFgYB8end0cW9sbGpqaGhnZWRkZGRkZGRlZWVlZWVlZWVkZF1cXF5YUEU/Rkg4YI+aqKawt73CyM7T2urr8f34dXZ7hI6Xn6iwt7/GzNPZ3eLn6+7x9fj6+/3+//////////////////////////////////////////////////////////////////////7+/v78/Pv7+vr6+ff39/b19PPz8fHx8PDw8PHx8fHx8vPz9PX19vf4+fn6/Pz9/f3+/v7//////////////////////////////v7+/fz7+ff08u7q5eHc1czGxLemqLi7sq+zr6yopJ+cmo+LiIJ9d3NvbWpoZWJhXltcWVlZWFZWVlZWVlZXV1dXWlpbXV5eXV1YWFhWVFFPS0Q4My1XjJGoqa+1vMLIz9Xo5u7593J0eoWOl6CpsLjAx8zT2d3i5+zu8fX4+vz9/v///////////////////////////////////////////////////////////////////v79/fz8/Pv7+vn49/f09PPy8O/v7u3t7Ovr6+vs7Ozs7e3u7/Dw8fLz9fb3+Pr6+/v8/f3+/v7+/////////////////////////v7+/fz7+vj18e7q5d/a1M3Evq+lrb24q6murKikoJyXk4+AfnlybmhjYFtYVlRRT0xLSUlJR0dGRUVGR0dHSEhISE1OT1BSU1NVXFxVTk9PSkQ6Pzg1KT6DmaCnrbS7wsnQ4+Ps9/ZwdHqFjpigqrG4wMfM09nd4ujs7vH1+Pr8/f7////////////////////////////////////////////////////////////////+/v38/Pv6+vr5+Pf19PLy8O/u7evq6ejn5+bm5eXl5ubm5+fo6erq7Ozu7/Hz9PX29/j5+vv8/P39/v7+//////////////////////7+/v37+vj18e3q5eDZ0svDurOds762rqmpq6ainZeRiYJ+dHBrZF9ZVFBKR0VDQD47Ojk5ODg3Nzc3ODk5OTo6OjtAQEJFRkdISlVSSklRT0Q6Njk8LCMgNnaVnaSstr3Dy+Hg6/X2bnR6hY6YoKqxuMDHzNPZ3eLn7O/x9fj6/P3+/////////////////////////////////////////////////////////////////fz8+/r5+Pj29fTy8O7s7Ono5+Xk4uHg397d3dzc3Nzd3d3e3+Dh4uTl5+nr7e/v8vP09ff5+vr8/P39/v7+///////////////////+/v78+vn28+/r5+Lc1MzFvLKsrrW3sK2tqJ+bmJSNhHxzbmpoYlxUT0hFQD47NzYzMC8wLi4uLiwsLC4vLy8wMDExNjg5PD5AQUNEQj5FTUo9NTwuLTMkHi4zj5eeqLC5wcng3+r09W10eYSOmKGqsbi/x8zT2d3i5+vv8fX4+/z9/v////////////////////////////////////////////////////////////////z8+/r5+Pf38/Lx7uzq6Ofi4uDf3dva2dfW1dXU1NTU1dXV1tfY2dre3+Di5efp6u/w8fP19/j5/Pz8/f3+/v7///////////7+/v7//vz7/Pj39e/r5+Hb2crAxLaXpa6trKunoZyYlY6FenBoYl9RTUlFPjg1NCsqKicmJiMjHh4eHh4eHh4hIiIjJCQlJSUoKCwuMTQ0OTo7PD4+PT42MCslIBwbGTOKnqScv8C/z+Dp7O1tcX2GkJmiq7K5wcfO09ng5Ojt7/H1+fv8/f7//////////////////////v7+//////////////7+/v/////////+///+/v/+/fz7+vr49vTz8u7t6ubj4eDf3dvY1NDPy8rNzMvKy8vLy9XX1dHQzs7O19jZ3d/g4eTn6evt7/L09ff4+fv9/v79/f///////////v7+//78+/v39fLs6OPc283Iva+ltK+sq6qnpZ+XkoyFe29mYFhWRkM/OTUvLComJiQjIiIgHx0dHR0dHR0dHh4fHyAgISEhIyQnKiwvMDM0Nzg5OTk4MzAqJB8dGRcrV5qUn6W8vsnb4+nrbHB8ho+ZoauyucHHztPY3+Tn7e/y9vn7/P7+//////////////////////////////////////////////////////7+/f39/fz6+vr59/Tx7+7s6ePg4NvVz9DOy8jHxMLCxMPCwMDCwsK5uru8vL7Cw8bJys7R1tve4ePl6Ort7/H09ff5+/z8/Pz+/////v/////+///+/Pr69fLv6ePd1tTGwrmdqbK1qammo56Xjol9d2thVk9JRzY1Mi4pJSIgHx8fHxwcHBwbGxsbGxsbGxoaGhsbGxsbHB0fIiMmJykrLC0wMTEzMzAtJyMeGxcXGyV3jZeXrbzD1N/n5mtve4WPmKGrsbnBx87T2N/j5+zw8/b5+/z+/v///////////////////////////////////////v7+///////////9/Pz8/Pv5+Pj39fLv7Onn5eLd19POysrEwsG/vb68u7e2tbSzs7S0ra6ztrzBxcjBvry/xM/X2tnc3+Ll6Ovt8fL09/j5+vr7/P7+/v7+//////7+/fv5+PPw7OXf2NDKw76opqmjraako52XjYN8bGVbUEY/OjgrKickIB4cGhsbGxoaGhgYGxsbGxsbGxsYGBgYGBgYGBoaGxwdHyAgJSYnKCsrLCwsKCQfHBkXFgoSQIWMn564vdDb4+Jqb3qFjpihqrG4wMfO09jf4+bs8PP2+fv8/v7///////////////////7+/v79/f39/Pz8/Pz8/Pz8+/z8/Pz8/f39/Pz7+/v59/b08u/s6eXi39/c2NTPycXDx8S+ubOwra2mpqWjoqKhoaanqaqsrq+ws7vDxcLAw8jQ09fb3uHm6ezu8fT29/n6+vz9/v7+/v////7+/fz5+Pbx7eni3NTLvsCvo6mhnqagn5uVjIB1bltVSkE6NC8tJCIhHhwaGBgaGhoaGBgYFhsbGxsbGxsbGBgYGBgYGBgZGhoaGxsdHSAgISQlJigoJiQgHBsZFxYJFRljiJ+crbfL1d/caWx4g42XoKmwuMDGzdLX3uLm6+/y9vn7/P3+///////////////+/v39/f39/Pz7+/r6+vr6+vn5+fn5+fr6+vr7+/v6+vn59/Xz8O7r5+Tg3NnWzsjJyMXCv66rp6WlqKyvp6WmpqOin56YmZmZmJiYmKSmrrW6vby9xMjN0dXZ3uLn6u7x8/X3+fn7/P39/v/////+/fz6+Pb07enl3tfOxbOqp6ueo52fmpeSiX9yZl9ORz41LisnJh8dHBsaGBkXGhoaGhgZGRkbGxsbGxsbGxkZGRgYGBgYGhoaGxsbGxwdHSAhIiIlJSIfHRsaGBgWExkUK3yIpJ6wxc3Z1WZpdoCKlJ2nrrW9xMrQ1dzh5eru8PT3+vv9/v7+/v7+/v7+/v79/fz7+/v8/Pv6+vn4+Pf39/f39vb29/f39/j4+Pj39/b29fPw7uzq5eLe2tXSy8fDvbauqq2jqrG1s6ylnqChoKCdmZeWjIuKiomHh4aLiImRoLC8wLq/xcrO09nd4OPo7O/x9Pf4+fv8/f3+/////f37+ff08erl4dnRx72tmqqlo6GempGMiH1xZFhRQzw2LCckISAeHhsbGhoaGhwcHBsaGhgYGxsbGxsbGxsaGhoaGhoaGhwcHBsbGxsbHR0dICAhIyMeHBsZGhgYFhocFxBNdaCSp7zE085gZ3N9h5CZo6uyusDHzNLa3uLo7O7y9vj6/P3+/v7+/v7+/v39/Pv6+vn5+Pj39/b19PTy8vLy8vLx8fLy8vPz8/T08vLx8O/t6ufm4t7Z1dDLxsW5rqahpbC/ra6rp6Ofnp+enpyal5OSj4+Mi4mGg4F9dnl8foGKmaaus7q/w8nP1Njc4ebp7PDz9vf5+vv8/f7//v38+/n29O/o4t3VzMG3qqWeoaOjnJiMiIB2aVtORj02MCgjIB0dHh4eHRsbHBscHBwbGhoaGhoaGhoaGhoaGhobGxsbGxseHBwcHBsbGxwcHR8fICIiHBsaGRcYGRgbHxUUGnGQjKK1vszIXmVxeoSOl6Gor7i9xMrQ2N3h5urt8fX4+vz9/v7+/v7+/v78/Pv6+fn49/T08/Lx8fDv7e3t7e3t7Ozt7e3u7u/v7+7u7ezr6OXi4NzX0s3Hwb27squyu7iwqaipqaqnpqeompmWko+Mi4qJiIaFg4F+fIB2aGRpdHl8oaats7i9xMrS1tzh5ejt8PT2+Pn6+vv8///9/fz59fHz39PW0sa9s42po5mcmJSJh31xY1dLQz0qKSUgHBsaGBsbGxsaGhoaGhoaGhoaGhgZGRoaGxoaGhsbGhoYGBgYGxsbGxsbGxsbGxsbGxsbGxoaGhsaGRkYHRQVIQc1g4qnqLC+wmxlcXF5h5CZoa20ub7FzNLY3eHm6vD09vf6+/v7/Pz8/Pv6+/r5+Pj29PPw8e7v7+/t7uTj4+Lh4eHh5+fo5+fo5+fo6Onl4OHg2tXWy8PDv7mxl6u8urOxsbCop6OhnpyamZOSj46LiYmJhYWCf316eXdycm9tZ2NhXmZ/mKartLm7ytHU19zk6enu8PP2+Pr7/P/+/Pv69/Pv7uDVzsvBsamZqJuVmZWPiH53alxQRTw2KSgkIBwbGhgbGxsbGxsbGxsbGxsbGxkZGhobGxsbGxobGhoaGhgYGBsbGxsbGxsbGxsbGxsbGxsaGxobGhkZGBwWFxwMMGyIkZiir7JiW2R0fIiUnKOqrrO5wMbN1Nvf5Oju8vT2+Pr7+/z8/Pv6+vj39vTz8vDu7Oro5+Ph393l5OPj4uLi4tvb3Nze3t/f4d7f4N3c2NPMycfCuqeguL2/vLKrrayqpqKgnZqYl5SOjoqJh4SEhIGAfnx7eHV1cXFubGZiYF9vXmeJoqSuwbzI0M3R2uTl6+3x9Pb5+/z+/Pv6+PXw7Onh1snEu6ajoJ+SkZONioF0a15SRDo0LyUkIh8cGhobGxsbGxsbGxsbGxsbGRkZGRsbGxsbGxsaGhoaGhobGRkbGxsbGxsbGxsbGxsbGxsbGRsZGBoaGBkcFxoYESVLgIaPnaqpXlNYbHJ7g4yVnKGss7q/xc3V2d/j6e3w8vX3+fn6+vr5+Pf29fPx8O3r6eXk39vZ2NXT2tnZ2NjY2NjZ29vb3d3f39jV1tfUz8zJw724tamouLm3tK6npqanpJ+dmZaUkI2Mh4SDgH98e3t6end3dHFxcW5tbGllYV9eVlVQWHKTp6q4u8HHzNTc4ubp7fH09/n7/vz6+ffz7enk4NjEwLSeo5iUiYuMh4R4Z2BTRjoyKicgIB8cGxoaGxoaGxsbGxsbGBgYGhoaGhoaGhoaGhoZGRsbGxobGxsZGxsbGxsbGxsbGxsbGxsbGxsaGhgYGRcYHBgaGBQYMXCCjZyrqWJTW2hudn2Di5Oapa21ub7HztLY3ePo6+7x8/X29/f39vTz8vHu7Orn5OHg3djT0M/Oy8zLy8rKysrK0NHR0tPS0tPOz8/MxsPCwMOzrKSsvLmyrq2sqqeioJ6XlZGNiYWCgXx7eHd0cXFvcHBubWxsa2tpaWhlYl9eW0lMSkVMYoGVtK6zxdDO0t3h5Oru8fT3+f78+vj28evm3dvUxLiml6KQjIaHhoN9bF9WSj0zKyUhHBwcGxsbGhsaGhoaGhoaGhkZGRkbGx0dGhoaGhoaGhodGxsbGxobGxsbGxsbGxsbGxsbGxsbGxsbGhoYGRgXGBoaGxkYEilZdXqFlZBPRFFfaHJ7f4WOlJ2krLK4wMjL09fe5Ojr7vHy8/T19PPx8O3r6OXi3tvY1dPQz8/NzMq+vr29vLy8vMPBwL69ubm3wsbFwL29ubSwpaGzurCvqbKvrqqknZmXjIqFf313dHNtbWppZmRkZGNjY2NjY2JiYmFgYF1aWVhXTEVEPTpQa5Gfsb/CxcrU2+Dm6+7x9Pf9/Pr39O/o49nUzcOwmZCXjoyHgoB9c2ZXTkE1LScgHhsaGhobGxsbGhoaGhkZGRkaGhobHR0fHhkZGRkZGhobHBwaGhoaGhobGxsbGxsbGxsbGxsbGxsbGxoaGRgXGRkYHB4cHBkxSICBho+KUk5cXmZvd36FjpWVmqGpsLjAxM3R2N7j5+rt7/Dx8vHv7ezp5+Tg3NjU0c3MycbDwb26ubi3t7a2tba4uLm9vsDBwbq8uLS1tKykl523uqypqayqp6Sgm5aOin97dnJtaGRhXl1aWVdVVVNWVlZWVldXV1ZWV1dVVVRUVlJJPTw9NytXg6evrbnHzNTa4ebq7fL1/Pv49vLs5eDUzMO/qZORiI6MhYF/eWhfT0Y7LygiHhwaGhoaGhsbGxoaGhkZGBgXGhkaGxwcGxwXFxcXGBgZGhcYGBcYGRoZGxsbGxsbGxsbGxsbGxsbGxsaGhkZGBgYFiAlHSIqPEJub3J2b0VBTExUXmlye4OHkZGVnqastLvDyNDW29/j5unq6+zr6efm4+Hd2dTQy8jHxLuzr6qmpamop6alpKSkmJqgpqyyt7iuramoqKOeoJi5v7Cnpqmno6Gblo+GfXJwbmhhXVlUU01NTElGRkVFRkZISUlKSkpMTU1OTk5OTU5HQ0FBOSobKFF/lqSwvcbN09vi5urv8/v69/Xx6+Pe0Mi+vqaUlH+OiIB+f3VhWExDNi0lIBwbGBgbGxsbGxsaGhoZGBcXFxgXGBgXFxcXExMTExQVFhcUFBYXFxgZGhsbGxsbGxsbGxsbGxsbGxscGxoaGRkZGRUiLB0qOUJCSFZnd4d1fYmIi4+SjoV3bZCNjpeeo6qyu8DIztPY3N/j5OXm5ePh39rY08/KxcC9v7mxq6mrrrOhoJ+enJybm5WVl5eYmpqZoJ+en5yVmqm0s7Kurqylo5eXkoh/dWtjZ2NfWVNPSkdEREI/Pjw8Oj4+Pj9CQkNDR0dISUdISEg/QUA+Ni8sLhIgS4WlqbC8x87X3+Tp7vP8+vfy7ung2dLJv62afoGJh4J9dm5iVk4/OS8mIB0bGhsaGhoaGxsbHBoaGhsdHh4UFBQWFhQSERcWGBoaGRgaGhkYGBgYGRoZGhsbGhkaGxsbGxsbGxsbGxsaGhsbHBwdISUrMTg+QFVcZW53e3+ChIeKiomGgn51dHl9h5ams6S9y83Oy9Li3OLd2Nva1tbIzNDPyL6upJ+otLi2r6ypo6CfnJmWk5KPj4yKjpGNg4eGjZmUhJS3ra6rqqadl5OPiYF4bmReWE1JRUE9OTUzLSwsLCsrKiorKyssLS4xMjc3Ojw+QkNEPjs4MiskHRgnDwo0fKuztMTJ0dbg6Ozx+vn18Ozn3tfOx7ismIKBhoN/enRqXlRMOzcsJR8cGxoaGhoaGhobGxoZGRgZGhocFBYVFhYVEhETERIUFBMTFRcXFxcWFhgcGRobGxoaGhsbGxsbGxsbGxsbGxobGxwcHyMnLTM5P0NVXGVtdnt+gIOGiImIhYF+gXlyb3J9iZGpsLS7xcjHzNvZ19PU09DOzsbDvbCmrby7u7izraelop+em5mVkpGOjI2KiY2SlpOkoph+bouwtKuqpqSgmZKLhX53bWRcU09BPzs3My8sKicnJyYmJiUlJiYmKCkqKy0tLzAzNjc3ODUxLSolHxcTGxQUHEF/p7S3xczT3+Di8/n49O7q5NvTysGwppSGgIN+e3ZtZVpPRTgzKiIdGxsaGhoaGhoaGhoaGBcVFxgZGBoXGBgZFhMREA8QExAQEBMVFBYUFRYZGxgZGxsaGhobGxsbGxsbGxsbGxsbGxscHCIlKi82PEFGV1xlbXZ6fX6BhIeHhoN+fHtvY1xfZ3BzlJqlr7W2usLHys3Pz83KycjBsaOntby3s6+qp6ainpucmZeUkY2MiouKiYiJjZSZkpqmmo6jrpelo6Ccl5CHgXRwZl1TS0NAMzIuKigmIiEfHx8fHh4eHh8fHyEiIiUmJicoKywsLC0oJSQhIBoVEBQZGgsNP4OztMHFzdzi5e759/Pt6OLZ0Me8qZ2MhXx9eXdwamBVSEEzLiYfHBsbGhoaGhsaGhoZGRgVFRYXFxUZGBYVFRQTEA4ODxAQDxETExQVFRUWFxoYGRsbGhoaGxsbGxsbGxsbGxsbGxsbHBwkJisyNz5ER1VcZGxzd3l6foCBg4B9e3hnZmRjYVtTS2t9l6eoq7S/u8DGx8XEwr26qaSxvbm0s6mnpqSioZuYlpSTkI2Jh4eHhoWGh4eNkouMk5qbnJ6cm5qXkoqDenRjX1ZNQzs1MSknIyEeHhwbHBsbGxsbGhoaGhwcHB4fHyAgISIjIyIhHBwcGhkWExATFRQMBBBKlqq1wtPW3ubp+ffy7Obf1s3CuaORg4F4d3RybGRcUEQ7LikiHBoaGhoaGhsbGhoZGRkYFRcYGBgWFBEODQ4NDAkNDQ8PDw0PFBMVFhUUFRgbFxkbHBsaGhsbGxsbGxsbGxwbGxsbHBwdJSYsMjc+Q0ZUWWBobXFydHh5e3x7eHVzbGxrZ15TRT5OXHSOo7GzrrK2u7q6u7atnKW1v7itrrSsqqekoJyYmI6NioiFgn9/gHx8foGDhomHjY2QmJiVnJCMioR8c2plU05IPzYwKiYgHx4cHBoaFxsbGhoaGhoaGRkbGxscHBwcGx0dHRsZGRgWFRUWFBAOEAsMDw0HG0uotLrO1N3i5vj28erk3dPKvregiHx7dXNxbWhhVkpANyomHxsaGhoaGhobGxoaGRgbGBYYGRkYFRIOCQkLCwsIDg4PEA0OERUUFRYWFBUZGhcYGxwbGhobGxsbGxsbGxscHBsbGxwcHSMmKi81Oz9DUFRaYWVoamtvcXN0c3Fta3RuZ11UUExNQ0ZSbpKppp2lqq2ws6yhm5y3wrGnrrOrpKSinJeVk5GFgoF+fHl3dnp1c3R5fX6BhoyMi42Rk5CBf3x1bWNaVEZCOjMtKCIfHRsaGhkZGRgbGxsbGxsbGxkZGxsbGxsbGxwaGxsaFxQWFhQUFBMRDwoKDw0QFQ0IeK69y9Xi4+j39e/o4trQx7i0n4B5dnBxbmlkXFNGOjInIx8aGBgaGhoaGxsaGRgXHBoWFxcWFBEQDAkJCQwLCgwNDg0MCg8VEBQWFRQVGBoWGBscGxsbGxsbGxsbGxsbHBwbGxwcHR0hJCgsMjc8P0hNU1leX2FiaGhqa2poZWNkYV5YVE9MSUdDRVZzhpCbm6Gjp6WWk6O4sq+vrqump5+cmpWPiYJ/enh3dHFubWpwbWxtb3J1eHt5fn58fH58c29sZV1USkQ7ODIrJiEdGhwaGRkaGhoaGxsbGxsbHBwYGhobGxsaGhwcGhscGhcUFxUSERIRDw4KDg8JDBINB0qfwc/V39/m9vTu5+DYzsW0saB8eHRwcGtmYVpQRDgxJyMdGhgYGhoaGhsbGhkYFxwZFxUVFRINDwsHBwkLCwkHBggJBgULEA4RFBQTFBgaFhgbHBsbGxsbGxsbGxsbGxwcHBscHB0dHyImKy81OjxESE9UV1pcXGFjZWVlY2BeVlRRUFBOSklRTERMXGd+m4+UlpiUiZ3Ks7GwsKumoJyZlI6GgXp0cHJwb2xqaGVlZGZmZ2lscHNtb3J2dHFqZ2tnY11USUA5NzItJyIdGhcdHBsbHBwcGxoaGxsbGxsbGRkZGxoZGRoZGRcYFxgUERMPDQsKCQkHDQwHBAUACCmCrbTJ1N7c5Pfy7efe2M7Csq2NdXBvb2dmYl1VSj40LR8eHRwaGhsbGxwbGBgaGRYSFBUWERETFBISEAcCAAACBAgNEBALDA4LFBQfGQ8OHRgaHB0cGxsbGxsbGxsbGxsbGxsbGxsbGyAgJCcrLjEyPj9CRUlMUFBSVFRUVFVVVVBQT01JSEhJQUhRUVpwem6Nf4uRiY2nt6+tqqaim5WPjYh+dG9oZGNeW1pZV1ZWVlZWWVlaXF1dYmNjZGNiYWBXVE1HQTo1MSwpIyAdHBwbGBgZGhkZGhocHBsbGRkaGxoZGBgYGRsbHRoXFBcbGBMJBwcJDAwICBELAwMFEUmPqLK9yNLa4en28evl3dbMwLCrinNvbm1lZGFbU0k9MSsfHh0cGhobGxscGxgYGhkXFBQWFREOEBAKCgoHAQAECwgLDw8LBQcKCAwOGhsSDh8aGhwdHRsbGxsbGxsbGxsbGxsbGxsbGxsfICMmKiwtMDc4Oz5AQ0VGSUlJSUxMTExKSkpHRURFRURJUVBUaXh1cn16e4uzrqCqqaWjnZaPioR9dWxkXlpZVFFQT01MTExMTE9QUFNUVFlZWlpZWFdWUExFQDo1MC0pJiAdGxsbGhgYGRgZGhkYGhkZFhcXFhcaGhgYGRobGxkWEhASExENDAsHAwQHCQcFAwUGGVSNnaq1v8nT2uHp9e/q49rTyLyvp4ZwbWxsY2FdV09FOS8nHh0cHBoaGxsbGxsYGBkaGBcWFxUPDA4LBgQDBAQJFiMrLzEtJBoZGw4JCRcbFg4cGxwcHR0cGxsbGxsbGxsbGxsbGxsbGxsbHx8gIyYpKiosLC8wMzY3ODg5OTs8PD8/QUJAPz8+P0BCSlJQTl5vdWxpa3alr6SipKOfm5aMg31ybWRcVE9LSkNCPz8+PDw8PD4/QEFEREVLS0xMTEtKSUM/OzYzLSomIyAcGhgaGhkXGBcXGBgXFhgYFxQVFhUVGxsZGhscHBwXFBAOEBANBw8IAgcKCQcFAggHKWiHla6uuMLL1dvi6fTv6eHY0Ma6raN9bWxqal9dWVRNQjcsJh0dHBwaGhsbGxsZGBoaGhgYGRkXEAwLCgkEBAYRIDRDT1FWU0tAOzkcDwwZGRYZGhwdHx4dHBwbGxsbGxsbGxsbGxsbGxsbGxwfHx8iIiUlIyMkJicnKioqKiwsLTAwMDU2Nzc3ODk7PUZRVFJbaXCIVmCUoaGfoJual5CJgHZvYFxTSUM/OzkzMi8vLiwsLCwvLzAxNDU1Ozs8PDw7Ojo2Mi8sKicjIB8cGhcXGBgZGBgYFhYXFRQYFRQUFBMVFhgWFxYXGRgXFhMRDw8OCwgPCgcGBgQIDAYPPnGDkaKosbvFztfd4+v07ujh18/EuKycdWdqZ2dZWlZSSUA0KiEdHBwcGhsbGxobGRgaHBkXGRkZFhAMDQ0IBgUNIjxPV1lcYGNjXFZSLB0QGBYUIhcfHyAhIB0cHBsbGxsbGxsbGxsbGxsbGxscHBwcHh8fHxwdHR4eHh4gICAhISQlJScrLC0vMDM1NjhBT1ZZX2duh2h5l46XoZiQj4qEfG9lXk5KQTo0MC4tJyYkIyMjISEjIyQlKCgpKS0tLS0tLSwsKykmJCQhHh0dGxgXGBgZGhkZFxcYGBcWFRUUExITFRYREhERExESERQRDg4OCwcFCQkHBQYICAUgUHGBk5ygrrS+yNHa4Obt8+3n39bNwraslm1kZ2VnVVdUT0g9MSghHBwcHBsbGxsaGxgaGxsZFRoXGRUNDA4NBQYLHTlRXF1cX2JmaGdjXkMpFhQTFCMZISIiIiEfHRwbGxsbGxsbGxsbGxsbGxsbHBwcHBwbGxsbGxsbGxsbGxsbHR0eHiEhIyQnKCstLzA3PEdSWmBpb3F7j4aKiZCVgYB8dWpgVE1BOzQuKSUkIiAgHR0cHBwcHR0eHiEhIiIkJCQkJCQkJCIhICAeHh0cGxoZGBcZGhgcGRgXGRgYFhcWExMTExUWEhESExISEA4XEg8PDgoHAwcBAQcJCBEgYm+Cj5Wfp6q6xM3V3uPo7/Ls5t7UzMG1rJNmYGZlZVFVU0xFOi4lHhsbHBwbGxsbGhsYGRsdGhQYFBUSCgkMCwMEEjFPYWNhZ2psbW5taWVgOB4OFxkZHSIkJSMiIB8dGxsbGxsbGxsbGxsbGxsbGxsbGxsbGRkZGxsbGhoaGhobGxscHR0dHx0eHyIkJystNTg+SVJbY2hxbXaHg4F5gnRybGRbUEY+NzErJSAfHh0dHBwbGhobGxsbHBwdHR8fHR0dHR0dHR4eHRwcHR0cGxsaGRcZGhgYGhgUFRUSERAUExEPDxERExQTFBUUExAOEhEMDg0LBwYJBQUHBxM6YHWAi5Odo627wcrT2uLm6/Hx6+Xd08vAtKyQYlxlZGVRVFBLQzktJBwbGxscGxsbGhobGBkbHRoWFhQSDwkHCgsEAxY+X2ppbHl9f358e3hzdkElDRwdDyQjJCYmIiEgHxsbGxsbGxsbGxsbGxsbGxsbGxsbGRkZGR0bGxsbGhoaGxsbHBwcHh4ZGh0eISQnKTQ1O0FKUllfbGBuf4FwanVsaGJcUUU8NzAsJiEdHBwbHBwbGxoaGhoaGhsbGx0dHRsbGxsbGxsbHBsaGxwcGxwaGRgYGRgYFxcUEQ8ODgsJCwoJBwcJCgwSEhESEhAODAoHBggJBgUGBQkIBx5IaXV9hY+Yoq24wcbP197k6Ozy8evk3NLJvbGseWVdX11XVFNNRj01LCQfGxsbGxsbGxscGxgZGRwcGBYVFxQODA0OAA09V2Joc4CAgoODgoF8eG9xLxgXICcdKissLConIR0bGxsbGxsbGxsbGxsbGxsbGhobGxsbGxocHBsbHBwbGxkaGhobGxoaGhsdHx8iJCUtMTU7QUdOUF9iZmlqZ2NhW1VORj05NDIiIR4cGxsaGhgYGhoaGxsbGxsbGxoaGhobGxsbGxsbGxoaGhsaGhkZGRoXGBgaGRcQExMUDwwMDwUGCQgJCwkJDg4NCwkLCAUJBwsOCwkIAQMADDJccHh8iZGcpq22v8bQ1d3j6Ozw8/Dq5NvRyL2wqndjW19dV1RTTUY9NSsjHxsbGxsbGxsbHBsYGRkcHBgVFBYTDQsNDAAQQ11pbnmEiIqLi4qJhH91dDMbGyUpISstLS0rJyEdGxsbGxsbGxsbGxsbGxsbGxoaGxsbGxoaGxoZGhsbGhkZGRkaGRkZGRgaGxseHyIkKy00OD1ESkxXW15hYV9bWFFNRDw1LisoISAfHRoaGhoZGRkZGhoaGhsbGxsaGhoaGxsbGxsbGxsaGhobGhoZGRoZGBYXGBcTExQVEwwICAsMCgsNDg0ODwgJCAYHCAQACwgICgYBAwgAFjdYcXyDiZWcp7C3vsfO1dng5uru8vTw6uPa0Me7r6d3YFpdXVZTUExFPTQrIx8bGxsbGxsbGxwbGBkZHBsXExITEQsKDAsAFktlcHaBi5GTlJSTkY2IfHs+ICQsLSYuMDAwLCchHhsbGxsbGxsbGxsbGxsbGxsaGhsbGxoaGhoZGBgZGRgXGxsaGhkZGRkWFxgZGxweICgpLTM4PENFS05RU1NRTUpGQjsyLSYiIB8eHBsaFxcYGRkYGRkaGBkaGhobGhoaGhsbGxsbGxsbGhoaGxoaGRkaGhkXFxYVEBMWFxEKBgcLDAkKDg8LCw8JCgoKCg0MCQsKBgMFBgUEIkNjdoCGj5ehp7G5wMfP1Nvg5uvu8fT27+ni2c/Guq6ldWBYXVpVUk9LRDw0KyMcGxsbGxsbGxscGxgZGRsaFhMSExAKBwoJAx5Ua3Z/iZKZm52cm5qVkISCTiYrMTEsMTMzMy0oIR4bGxsbGxsbGxsbGxsbGxsbGhobGxsaGhkaGRcXFxgXFhsaGRgXFxcXFhcYGBkYGxwiJiotMzY5PT1AQ0VEQj47OzcwKSQfHRsbGhgYFxcXGBkZGxoYGRkaGRkaGxoaGxobGxsbGxsbGxoaGhsaGhkZGxkYFRYXFhATFBINCAcKDQEBAwgIBAICCAcIBwoMDA4NCQMHCAURLFhpd4CJk5qgq7G6wsjO1tvh5evv8fT2+O7o4dnOxbmtonNdVFpaVFFPSUM5MSggHBsbGxsbGxsbGxsYGRgbGRUUEhEPCgcICAgnXHB7hY+aoqWmpqWjnpiJiWEsMjQ2NTc3NzQwKiQeGxsbGxsbGxsbGxsbGxsbGxoaGhsaGhkZGRkXFxgZFxUbGhkXFhYXFxYWGBgYGBkbHyAlKS0wMzQzNjg6OTczMC4qJR8bGRYWGxkXFxYWGRkZGRoZGhkaGRgZGhsaGxsbGxsbGxsbGxsaGhobGhoZGRwZGBYXGRUPDg0LBwMDCAkGBwkICAkIBwUGBQYGBQgLBggHBQoYPGd2foWNmaOnrba8xMvR197i5unu8vT2+fvu6OHYzcS4rJ1yW1FaWlNQTEhCOTEoIBwbGxsbGxsbGxsbGBkYGhgTExIREAgICgoLLGF1goqTn6iqrKyrqKOejZFyMzc3OD06Ojk3MSskHhsbGxsbGxsbGxsbGxsbGxsaGhoaGhkZGBsZGRgYFxYVGxkXFhUVFhcWGBgXGBcZGxsdISUoKCstKi0uMTAtKygmIx4cGRoYFhoYFhYXFxobFhgaGRcWGBgXGBkbGxsbGxsbGxsbGxsbGhoaGxoaGRkbGhcWFhcUDgsJBwUBAQUKGSYzNjc1Kh0NCQQEBQUFCAEEAgomT297foaPmaOpsLq/xMvS2N3j5+ru8vX2+Pr87ujh2M3EuKubcFtQWFpSUEtHQTgwKCAaGxsbGxsbGxsbGxgZGBoYExYUFBAJCAoKDzBmfIiRmqWusbOysa+po5SVfTg+PDtDPT09OTMrJB4bGxsbGxsbGxsbGxsbGxsbGhoaGhoZGBgbGxoYFxYVFBkYFhQTFBUWFRUWFhcYGhsZGx0fISMkJiIlJyopJiMhHhwZGBkZGRkWFhQTFBYZGhQWFhcVFRcYFhcZGxsbGxsbGxsbGxsbGxoaGhsaGhkZHRsXFRcWEgwLCQkIBQYTJEZLT1JUVVRQLRwLBAQEBAMJBBM5X3Z+f4eRm5+nr7jFyMzT2d7j6Ovw8vb3+Pn7/O7o4djNxLirmnBZTVdXUk9LR0E4MCcgGhsbGxsbGxsbGxsYGRgZFxIWFRQRCgkMCxIzan+PlZ2ptLe5ubi1r6mYmYI5Q0E/REBAPTk0KyQeGxsbGxsbGxsbGxsbGxsbGxoaGhoaGRgYHBsZFxYVFBIWFBIQEBETFBQVFxYXFxgbFhccHR4gICIgICIlJCIfHhgWFBUWFxcXEhAPDxATFRUSFBUVFBMWFxYXGRsbGxsbGxsbGxsbGxsaGhobGhoZGR0bGBYWFQ8JDQ0NDAgNJ0FRVFphZGNhYFo/HwwKCgcFCRpEbnp6go+Rm6CmsLzEydLW3OHm6u7x8/b4+fn5+/zu5+DXzcO3qp5wV0pTVE9NRkQ9Ny0nIB0bGxsbGxsbGxsbGRkZGhkVFA4MDAwMDAcHOG99iJeqs7i6vr68ubWvoZeKREdGTEJDQkE7Ni0lHhsbGxsbGxsbGxsbGxsbGxsbHRwYFxkZFxoXGBkZGBgUERMTEQ8ODA0ZGRkVEhITIxcZGx0dHR0dIiAdHBwcGxoaGRgYGRcUEhcXFhYVExMTDxUVFBYVFxsZGxscHBsaGhsbGxsbGxsbGhoaGxwcGhkaGBUVFRcVDgkJBwYDIEhZWF1jZmlsbm1wclQSAwEHDS9ee3qCjJOboKewucDHz9TY3ePo6+7y9Pj5+vv9/f7+7ufg18zDt6mecFdKU1RPTUZEPTctJyAdGxsbGxsbGxsbGxkZGRoZFBcRDQwMDQ0ICTlxf4uZrLW5vMDAvru3saOZi0ZHR01DRUNBPDcuJR4bGxsbGxsbGxsbGxsbGxsbGx0cGBcZGRkaFhYXFRcVEg4OEBETFBUUERMYFBYVExYXGRsdHR0cHSEeHBsbGhoaGRgWFxcWFBIQDhAREhEQEhMXGBgXFxYcGBobHBwbGhobGxsbGxsbGxoaGhscGxoYGxYWFBMVEwwKCQkHEDFTY2JobnF0eHp6fnpwOwcBEUB4g4KDkJmgqauyusLIz9bb3uLo7O/y9ff5+fv8/f7+/u7n39fMw7epnnBWSlNUT01GRD03LScgHRsbGxsbGxsbHBwZGRkaGRQXEQ8PDQ8OCgo5coGNna61vL/DwsG+ubOlnI9IS0pQRkZFQj84LiUhGxsbGxsbGxsbGxsbGxsbGxscHBgXGRoZGBQVFRMSEw4TEhEVGBcXGQsOFBQXGxkXFxkbHR0cHBweHRsaGhkYGBgWFRQUExIPDAwNEBERExYUGRsaGRcUFhgaGhwcHBsbGxsbGxsbGxsbGhobHBsaGBkVExEQExAJCwUJCBxCXW1scnl9gISGh4qOiWsVIFqHi4qNl6Glq7K3vMTL0dbd4eXp7vH09vj6+vv8/f7+///u59/WzMO3qZ5wVkpTVE9MRkQ9Ny0nIB0bGxsbGxsbGxwcGhkZGhkUGBMQEA8ODgoIOXGEkp+vt77BxcTDwLy2qJ+QSk1LUkdHRkM/OC8oIRsbGxsbGxsbGxsbGxsbGxsbGxkYGRkaGRoVFBMSEhIMDgoKDg8ODxIMDRUYGBsZFxgaHB0dHBwcHRsaGhoZGRkZFhQTFBQRDg8ODAsLCgsMERMVFhoZExIYGhscHRwbGxsbGxsbGxsbGxoaGhwbGRgaFBMREBAPCA4GCggoUGVwdHuCh4qOkpOXk5qOWHqXoJOYoKOnrra8wcbN09ne4+fs7/L19/n6/Pv8/f7/////7uff1szDtqmeb1ZJUlRPTEZEPTctJyAdGxsbGxsbGxsbHBkZGRoZFBcSEA8ODg4JCDZwhJOisLe/wsbFxMG8tqmfkUtNTVJHR0ZFQDkxKCEbGxsbGxsbGxsbGxsbGxsbGhsZGBkbGRgcFhMUExIRDA8JCAsKBgcKDgwQFhsbFxQZGx0dHRwcHBwcGhgaGRoaHBgUFBYVEhAQDAsJCggKDQwNCQkUGhcTGRscHR0dGxsbGxsbGxsbGxsaGhobGxkXGxYSEBEREAkQCA0MNlxrd3yEjJGVmp6goaWlo52qpqmoq66vsrzDwczQ1tzh5uvu8fL19/n6+/z9/f7//////+3m39bMw7apnW9WSVJTTkxGRD03LScgHRsbGxsbGxsbGxsZGRkbGRUWEQ8PDg8OCwg2cIaToa+3vsHFxcPAvLapoZNNUE5USkpIRUI6MSgjGxsbGxsbGxsbGxsbGxsbGxobGRkaGhkWGxYSExISEQsHBwgNDw4TGRsWCw8aGxgUGhweHh0cHBwbGxkZGhkaGRwYExMVFBEPDgwMDg8RExcWEgkFDhgYFRocHR8eHRsbGxsbGxsbGxsbGhoaGxoYFxsXExEQEhAJDQYIDUBicnyCi5SZnqOoq6e3tK+rpbO8sLK3vsHEyczU193i5uvu8fT19/j6+/v8/f7+///////t5t/WzMK2qZ1vVklSU05MRkQ9Ny0nIB0bGxsbGxsbGxoaGRkZGxoWFhIQEA4PDwoNOHCGlKCus73AxMPCvrq0qqGUUVJRVUpKSUVCOTEqIxsbGxsbGxsbGxsbGxsbGxsaGxkZGhwaFhkTERAPEA4JDw0QDxAQFBkeIxINFRoZFBsdHh8eHRwcGxsZGRoaGRoaFhMSExMQDAwNEBUaHB8iIx8TCxAYGRkbHh4gHx4bGxsbGxsbGxsbGxoaGhsaGBYcFhQSEBIRCgsEAg9LaXd9ipOdoqetsra1tcK7sri9wcLEx8jKytHc297i5+vu8fP3+Pn6+/z9/f7+///////+7ebf1svCtqidb1ZJUlNOTEZEPTctJyAdGxsbGxsbGxsaGhgZGhsaFhUSEBAPEA8LDzxxhpSfrLK8v8LCwb25s6qjlVJVUlhLSklFQjkxKSIbGxsbGxsbGxsbGxsbGxsbGhsYGRocGhcYEQ4ODw8MBwoOEhQXHCQqBRsUDRgdHRkcHR8fHx0cHBoYGBgZGRoZGhUREBISDQsICxMgKjA1OiYmHBQXGx8gHB4fISAeGxsbGxsbGxsbGxsaGhobGhgWGxcTEQ8TEQoQBwASVG5+f5Kcpqywt73AwMTEy8G+xsvKz8/R1tnZ3OPm6e3w8/X3+vr7/P3+/v7+/v/////+/u3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGBgYGxwaGBYXFRAQEhIPDA41aYmWoqutub2/vr67trGlmI1eXFJVT0tJRUI7MyojGxsbGxsbGxsbGxsbGxsbGxsbGRgZGhoWFhISEhESEAsBFSAWHSIoJR8pERgRKhkZJCYmJiUgHRsZGRgXGx0bFRcSEhUTExINEAAhLTBCPTk2PSoLFBMWJSEkJCcmIR0bGxsbGxsbGxsbGxsbHBsYFhgVExQTFBIMCgkJB2Nuf5KWoqyzusDEyczNz9DQ0dHS1NXX2tzf4+Xq7O/y9ff4+fz8/P39/v7+///////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxgYGBoaGhcWGBURERISEBAPNmiHk56oqrS6vLu5uLOuo5eMXl1TVlBLSUVCOzMqIxsbGxsbGxsbGxsbGxsbGxscGxkXGBwZFhQQEA8PEA4JARclGh8kKycjKBMYESkcHicnKSkmIB0bGRkYGBodGxUVERITERIQCw8BJjQzRkM/PEEmDhgUGSQkJCcnJiMdGxsbGxsbGxsbGxsbGxwbGBYYFhQUEhQSDAsJCQlkc4KVm6axuMDGys/T1dfY2NjZ2dvc3uDj5ejr7e/y9ff5+vr8/P39/v7+////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsYGBgaGhkYFhcUEREUExISEjZnhI6YpKewtLi3trOwrKCVi19eVFdQS0lFQjszKiMbGxsbGxsbGxsbGxsbGxsbGxsZFxkbGBUUEA4ODg0MBwEcLiIiKC8qLCYVGBAoHyEqKioqJiMdGxkZGBoaHBoUFhEQEQ8PDgkOBCw8PU5LR0VFIhEcFRsjJygqKikjIBwbGxsbGxsbGxsbGxscGxgWGRYVFRISEQ4MCgoNZnaGl5+rtb3GzNHW29zf4ODg4eHj5Obo6ezu8PLz9fj6+/z8/f3+/v7//////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGhgYGhoaFxYYFhERExQTEBE2ZYGJkZ6krK+ys7Kwq6mekopgX1RWUEtJRUI7MyojGxsbGxsbGxsbGxsbGxsbGxsbGBcZGxkUFA8ODgwMCwYDITUtJSowLTcoFxkRJyQoLS0sLCkjHRsaGRgZGhwZFRcSEBANDg0HDAY0R0RUUU5MTSEXIRcgJissLSwqJiAdGxsbGxsbGxsbGxsbHBsYFhkUExQSEhEMDwoLD2d5h5ahrbe/yNDV29/h5OXm5ubn6Onr7e7v8fP29/j6+/z9/f7+/v/////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxsaGhkYGRgWFxUTEhETEhASMmF+hYyZoqerra2srKikm5CJYGFUVU9LSUVCOzMqIxsbGxsbGxsbGxsbGxsbGxsbHBoZGBwYExcSDg8MDgsHBiQ/OykqMjA8KxobFiUrLTEzMi8qJB4bGhsaGRwdGRQXExEPDw4OCAsLPE9LWFVVUlQkHiUbIy0wMDMwLCchHRsbGxsbGxsbGxsbGxwbGBYYFBITERERDA8LCxJnfIeVoa24wMrS2N7h5Ofp6uvr7Ozu8PHy8/T2+Pn6+/z9/f3/////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsbGhoZGRgXFxYWExMTExITEzNeeoCFkZyhpKiop6WkoJeNh2BhVVVPS0lFQjszKiMbGxsbGxsbGxsbGxsbGxsbHRsaGRobFxIYExAODA4MCAgrSUguLDM0PTMeISEmNTE2NjUyLCYeHBobGhocHBgSGBQQEA4PDQoJDENVTlpYWldZKiQpIyw3NjY2My8qIx8bGxsbGxsbGxsbGxscGxgWGRUTERISEQ4QCQwVZXuKlKGtuMDK0tnf4+bq7e7v8PDx8vT29vf4+fr7+/z9/f7+/////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbHBsaGRgYGRgXFhUWFhcXGBkzW3R4fYiVmp6goaGgnJuTiYVgYlVWUEtJRUI7MyojGxsbGxsbGxsbGxsbGxsbGxwbGhgZGhgTGRMPDg4ODQoNLlBUMy0yNzg4IicuKz03OTg3My0nHhwbGxoaGxwXFBkTEA8ODw4KCA5GWlJcW11dXTAoMC40Qjk5ODYyKiMgGxsbGxsbGxsbGxsbHBsYFhoWExQSFRMQEw0PGGR6h5Kfq7a+yNHY3uPm6+7w8vPz9PX3+fn6+/z8/P39/v7////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxwbGhcYGRcXFxgXGBoaGxsdNVlwdHaDj5aZm5ycm5iVkIaDYGNWV1FLSUVCOzMqIxsbGxsbGxsbGxsbGxsbGxscGxoYGRoYEhoSDw4NDg4KEDJWWzYuMjg2PSUuNy9DOzk5ODUtJx4cGxsaGhscFxMYEw8ODQ4OCgcPSFxUXVxgYl8zKjQ1OEk7Ozs4MiskIBsbGxsbGxsbGxsbGxwbGBYbFxQVFRYVEhcQEhpjeISPnamzvMbO1dvi5eru8PLz9PT2+Pn6+/z9/f39/v7/////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsbGxsbHBoYFxcXFhcYGhscODM/WW91eIOPj4Z9hZyWj4uGdmldXFVSSklFQjoxKCMbGxsbGxsbGxsbGxsbGxsbGxoXFxoaGBYVEQ4PDg0MCwxEXk5CODM5QDs2Njs/QUFDPzszLScgGxsbGRcZHBkVGhQQEA4MCggHCVRZX2VfYWhYRDozOzpBQ0I+OjMrIR0bGxsbGxsbGxsaGhobGxkXGhgVFRUUEQ4TEBQfWG6DjpqksLrEzNHZ4OTp7vDx8vP3+fr7/Pz9/v///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGhsbGxoaGBcZGBgZGhweHw4WIy8vMkFRVFtkc36Kh4yHgnNoXFxVUkpJRUI6MSgjGxsbGxsbGxsbGxsbGxsbGxsaFxcaGhgWFREODw8PCw0MP1xXTz80OTw9OjtAQkREQ0A7NC0nIBwbGxkXGRwZFRoUEA4PDQsKCgxWXGJnYWRsWkg+OT8+RERCPjszKyQdGxsbGxsbGxsbGhoaHBsZFxsXFxcWFREREhANFFlreYSUn6y1v8fN1tzg5uvu8PLz9/j6+/z9/v/////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxoaGxsaGBkYFxcaGxweIiMfKS8qICEtOjg+S2JveHmGgntvZFlcU1JKSUVCOjEoIxsbGxsbGxsbGxsbGxsbGxsbGhcXGhoYFhURDxAQDg0NDEJgYV1OOzo4Oj1DRkZGRkVCPDYuKCAcGxsZFxkcGRUYFBAPDw0LDAsNWF1la2Vnb19MRD9GREpFQz87Ni0kHhsbGxsbGxsbGxoaGxwbGRgaGRgXGBgVExkZEhZlcHqDj5qlrrjAydLW2+Lo6+7x8/b4+vv8/f7/////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsaGhobGhkYGRcXGBocICIlISotLCYkJilBR0ZUZHZ4fHx3a2NXWVJSSklFQjoxKCMbGxsbGxsbGxsbGxsbGxsbGxoXFxoaGBYVEQ8QEQ4ODQhEZ2ZmX0xCNjtBSE1LR0VGQz03MCgjHhsbGRcZHBkVGBQQDxAODg8MD1hfZW1nanJjUkpFTEdNR0RCPDctJR4bGxsbGxsbGxsaGhscGxoYGBoZGhkXFhUeFg4OYGlsbYeSm6SttL/J0dbe5ens8PP19/n7/P3+/////////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGBoaGhkaGRkWFhkcICImJyksLCkiICguKzIwPlh3fXl3cmhhV1dPT0pJRUI6MSgjGxsbGxsbGxsbGxsbGxsbGxsaFxcaGhgWFhEQERIQDQ0FRGdnbGlbVEJDRUpPT0pFR0Q/ODErIx8bGxkXGRwZFRkUEBAREA8PDRBaX2dvaW5yZFZPSU9JUEdGQz43LScgGxsbGxsbGxsbGhobHBwaGRkZGBkaGhcXEBEXFVZecHeDjJSbpa+6xszS2uHl6e7x8/X4+/z9/v/////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxgYGhoaGRoaGBscHyQmKi03MywmHRsfJSgtKDVManRvc21lX1ZWTE1KSUVCOjEoIxsbGxsbGxsbGxsbGxsbGxsbGhcXGhoYFhYUEBERDwwMDUNlaG1pX2JXUUpLTU5NS0lFQDkxKiMeGxsZFxkcGRUXFBAPDw4PEAwQWF9ncGpvcmVVUExRSk5IRkM/OC8nIBsbGxsbGxsbGxoaGx0cGhkYGBkZGhkYFhYeKCRRU2Zzf4aLkZyotMDEy9Xc4OXq7vHz9/r8/f7/////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsYGBgaGhoaGxsbHiEnKy0uKiglISAdFhEcIhUeOF5sZ21pYF1VVEtMSklFQjoxKCMbGxsbGxsbGxsbGxsbGxsbGxoXFxoaGBYXFBASEQ4NDBJGZWhtbWdqZF1STEtNUVFJRUA5MyolIBsbGRcZHBkVFxIODw8OEBAND1dgaHBtcG9iVlFNUktNSkZEPzgvJiAbGxsbGxsbGxoaGhsdHBsZGRgZGhoZGRghIRoOMywoKTIyLikoKCsxu8PN1drg5uvv8vb5+/z+/////////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGBgYGBoaGhoaGx8iJisuLisqIhoWGB0cGiMUFzZfbV9qZl5aUlNLSkpJRUI6MSgjGxsbGxsbGxsbGxsbGxsbGxsaFxcaGhgWFxQREhEODAwOSmdjb3hycGdgVk5JSlBSSUU/OTMqJCAbGxkXGRwZFRgSDg8PDhAQDA9YX2lxbnFuY1VSTVFJTUpGRD44LyYfGxsbGxsbGxsaGhobHRwbGhgaGxsbGhkaGykkGTgrKDU2NSwmJCMmKrS9yNDW3OPo7vH1+fv8/f7////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxsbGxsbGxsbHR0gIycqKy0qJyIcFhQWGBgZHRQqXWFpZl5eUlRMT05JSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDEZoaW92bWpnXFFMUFJPSUpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw0RW2Jqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxsaGhkYGx0fICAnLS8xMjIxLiQhHxwXIDirtb/J0tnf5unv9Pb4+/7+////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsbGxsbGxsbGxwdICMkKCsrJyQhGRUVFhcVFhkRJlxfZWNcXFBTS05NSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQxGaGlvdm5rZ1xRTFBST0lKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsNEVtianJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbGhoZGRweICEkKi0vLy8tKygdGhoWEhkzprG7xc/W3OPo7vP2+Pv+/v///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGxsbGxsbGxscHR0hJCcnKCIgHRgUFBUXExQXDSRZXWJhWVpMUEhNS0lIRUI5MScjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0MR2pqbnZvbmhcUUxQUk9JSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDRFbYmpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxoaGhodHyEiKi4xMC4sKCQjGRcYFA4YMZ+qtb/K0djg5+3y9fj7/f7////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxsbGxsbGxsbHBwdICEjJCQdGhgXFBUXFxIWGA0kWlxgXldWS1BITUtJSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDEdra252cHBoXVFMT1JPSkpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw0RW2Jqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxsaGhobHiAiIy4wMTAtKSMeIBUTGBQPFzKYo7C7xs7W3+Xr8fX3+/3+////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsbGxsbGxsbGxscHR0eHiAfGRcWFRUXFRcSFhgNJFlZXFtUVktQSExMSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQxIa2tudnFxaV1RTE9RT0pKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsNEVtianJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbGxsbHB8hIiMuMDEwLCcfGxwREhYUDhUxkp+st8PL1N7j6fD09/v9/f///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGxsbGxsbGxsbGxwdHRwbGxYVFBQWFxUVEBQWCiFWVVRbU1VITUdMSklIRUI5MScjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0MSGxsb3ZwcGpeUkxPUU9KSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDRFbYmpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxsbHBwgISIjLC4xLSslHhYeERIYFg4WMI2aqLS/yNLc4ejv8/f7/f3////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxsbGxsbGxsbGhsbGxsbGhcXFxYWFRUTERATFgofVFJPWlNSR0xGS0lJSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDUhsbHB2cG9qXlJMT1FPSkpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw0RW2Jqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxscHBwdICEiIiksLSsoIxsTHxQUGRYNEi6JlqSwvMXP2uDn7vP2+v39////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsbGxsbGxsbGxoaGxsbGBcWGBcXFhUUEQ4QFRcKH1NQTVlSUUdMRUhISUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQ1IbGxwdm9ta15STE9RT0pKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsNEVtianJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbHBwcHSAhISInKispJiAXER0REhcTCA4nhZOhrbnCzdff5u7y9vr9/f///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGxsbGxsbGxsZGRkaHBsaGRkVExQTEA4PDxEPDiBGT1dZVFJITUVKRklIRUI5MCcjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0PSGpqbnNwb2ZlVFNSUU1LSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDRFbYmpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxsbGxwdHh4eJyYiHx4cGRQYFhkUEQwRIYGPnqu3wszX3uXt8vb6/f3////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxsbGxsbGxsbGhoaGhwcGhkaFhQVFBIQEQ8SDw4fRU5WWVRSSE1FSkZJSEVCOTAnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwND0hqaGxycHJmZFRTUlFNTEpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw0RW2Jqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxsbGxscHB0dHiUjIB0aGRcTExMTEgsJDB2AjZyqt8HM197l7fL2+v39////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsbGxsbGxsbGxoaGhscHBoZGxkXFhQSEBEPEhENH0ROVVlUUkdNRUpGSUhFQjkwJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQxHaWhrcnJxamdTUk9RTUxKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsNEVtianJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbGxsbGxwcHBwdHhwZGBcUEQ8PEA4LBwscfYuaqLXAy9be5ezx9vr9/f///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGxsbGxsbGxsbGhobHBwaGRwYFhcVEhEQDxIRECFGUFZYU1FHTUVKRklIRUI5MCcjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0MR2dnanRydW1pVFFPUE1OSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDRFbYmpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGRkYFhYXFRIQDxAPCwkMHXuJmKa0v8rV3eTs8fX6/f7////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxsbGxsbGxsbGxoaGxwbGhgcGBYXFRIREhESERAhR1BXWFNRR01FSkZJSEVCOTAnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDEVmZ2xzdHVwalNRTlBPT0pGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw0RW2Jqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxsaGhoaGhoaGhgYFxUWGRgUEQ4SDgwJDx96iJels77J1N3k7PH1+v3+////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsbGxsbGxsbGxoaGhobGxkXHBoYFxYTEhIQExIPIUdRV1dTUUdNRUpGSUhFQjkwJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQpGaGhudHR1cGlTT05QT09KRkA5MSojHh0cGBcZGhkWFRIRERIPDgsNEVtianJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbGhoaGhoaGhoXGRcXGBkaFhAPEA8KCQ4geoiXpbK9ydTc4+vx9fr9/v///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGxsbGxsbGxsaGhkaGxoYFxsYFhUWEhEQDhIRECJIUldXUlBGTEVKR0lIRUI5MCcjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0KRmlpb3Z0dG9oU09OUU9OSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDRFbYmpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxoaGhoaGhoaGxsYFxgZFxQQDxAMCgkOIHqIl6WyvcjT3OPr8PX6/f7////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxsbGxsbGxsbGhkZGRsaGBYYFRMUEg8ODQ0QDw8hR1FYV1JQRkxFSkdJSEVCOTAnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNCUdqa3F2c3RvaFNPTlFPTkpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw0RW2Jqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxsaGhoaGxsbGx0dGhkYGBcTEg8RDgsIDx97iJilsr3I09zj6/D1+v3+////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsYGRkZGxsaGhkaGRgZGxwaGBUWFxUTEhIMEg4QIElNUlhZVj9GSk5HSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQxIamltdHN1cGtRUE1MTU1KRkA5MSojHh0cGBcZGhkWFRIRERIPDgsOEVphanJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbGRkZGhoaGxsYGBcZGRgXEw8PDg0MBwohe4mYprO+ydTb5Ovv9vr8/v///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGBgZGxsaGhsYGRgWGBsbGRYUExMSDw0MCRAMECBLUVRVV1M/RkpOR0lIRUI5MScjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0NRmppbXNydHBrUVBNTE1OSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDhFaYWpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxgYGhkaGhoaGRgYGBgYFRIPDw8MDAcLInuImKWzvsnU2+Tr7/b6/P7////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxgYGxsbGhoaGRkXFhgZGBcUEhAQDg0JCQkQDA0gTFJUVFVTPEVHTkZJSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNC0draW1zcnRwa1FQTUxNTkpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw4RWmFqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxsYGRkZGRoaGxYWFhcXFhMRDQ4PCwoFDCF6iJels77J1Nzl6/D2+vz+////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsYGhsbGhoZGRkZGRcXGRgVFBEOEA8MCgoLEA0MIE9SVFNVUzpBRkxGSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQpGaGltdHN1b2tRUE1MTU5KRkA5MSojHh0cGBcZGhkWFRIRERIPDgsOEVphanJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbGhkZGhobGxoXFhQTFBMRDA0ODQwIBQkfeoiXpbO+ydTc5evw9vr8/v///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGhobHBsaGBkaGxgXGBoZFhYSDhAPDQkJCQ4LCiBVVlhUV1Q6QEZMRklIRUI5MScjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0JRmlobnNydG9qUVBNTE5OSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDhFaYWpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxoaGBkcHRsZFxUVExMTDw0NDAwKBwMJIHuJmKa0v8rV3eXs8Pf6/P7////////////////////////////////t5t/Wy8K1p5twVEpTUU1LRkM9Ni0mIBwbGxsbGxsbGxoaHBwbGRkYGhoYFhcZFhMYEg4ODQsHBwsNCwkhWVlZV1tWOj5FS0ZJSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNCERqanB1c3VvalFQTkxOT0pGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw4RWmFqcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGxsbGxsbGxsaGRkZHBoZGBkXFRQTEw8NCgsMCAYCCSF9i5qotb/L1d3m7PD3+vz+////////////////////////////////7ebf1svCtaebcFRKU1FNS0ZDPTYtJiAcGxsbGxsbGxsaGxwcGxsZFxkZFhQUFhMOFA4LCwoJBgUKDAgFHlpaW1teVzk9REtGSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQpGbGxvdXJzb2pRUE5NTk9KRkA5MSojHh0cGBcZGhkWFRIRERIPDgsOEVphanJtcnVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxsbGxsbGxsbGhgXGRoZFhQZFhMREBAODQcJCQcGBAwjf42cqbbAy9bd5uzx9/r8/v///////////////////////////////+3m39bLwrWnm3BUSlNRTUtGQz02LSYgHBsbGxsbGxsbGxscHB0aGBcYFxUREhEOCQ4JBgcICQcHBAcFAR5cYF9fYVk6PUNLRklIRUI5MScjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0LR2tucHVxcm9qUVBOTU5PSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDhFaYWpybXJ1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsbGxsbGxsbGxkXFxcYGBURFxQQDQ4NCQkFBQkHBgQMJoGOnaq3wczW3ubt8ff6/P7////////////////////////////////t5t/Wy8G0pppvVkpSUkxMRkM9Ni0mIBwbGxsbGxsbGxwbGhcZGxkWFhYXFxERFBERBgEDCQsLCw0OCAgkTWJeXVhdOEVCRUZJSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDExwbm5zcHB0bFRRTk5NS0pGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw8RWWBpcm1ydWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGRgaGxsbGxoaGBgYFhgYFRURDxEPDw4KDAsHBwcKCh2Ek6CsucTO1t/l7fP3+vz+////////////////////////////////7ebf1svBtKaab1ZKUlJMTEZDPTYtJiAcGxsbGxsbGxsbGxoZGRsaFxYVGBYQDxEPBwAAAAQEAwUCAgACI1JmY2RdXjdCQEVGSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQ5MbWpsc3Fwc2tUUU5OTUtKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsOEVlgaXJtcXVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxkYGhsbGxsaGRgYFhYXGBIUDg0MCwsJCAsMCQoHCgoeh5WjrrvG0Njg5u3z9/r8/v///////////////////////////////+3m39bLwbSmmm9WSlJSTExGQz02LSYgHBsbGxsbGxsbGhsaGRkaGRYWFRcWDgwNCwwIBggJBAIDBQYACCtZbWZqY2A3QT1ERklIRUI5MScjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0OSWllaXFzcnBqU1FOTkxLSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDhFZYGlybXF1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsZGBobGxsbGhoXFxUSFBYQGRMODgkGBQQGBgYJBwcKIIyap7K+ydPb4ufu9Pf6/f7////////////////////////////////t5t/Wy8G0pppvVkpSUkxMRkM9Ni0mIBwbGxsbGxsbGxobGxkZGxoVGBcXEwsJCgoJChEUFRAQEA8SERk6Y3NtcmdiNz88REZJSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDEZoZWtzdHRuaFNRTk5MS0pGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw4RWWBpcmxxdWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGRkaGhsaGhkbFxYWFBUUDRMPDAoJCQgIBwYEBwYGCCCQnqu1wczV3OPo7/T4+v3/////////////////////////////////7ebf1svBtKaab1ZKUlJMTEZDPTYtJiAcGxsbGxsbGxsaGRkZGxwZFRkYFhMMCQoKChUnNDg6P0dOUExKXHN3bXVrZjhCPkVHSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQxFaGhvdnRzbGhTUU5OTExKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsOEFhfaHJscXVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxkZGhobGhoZGxgWFhMVEwwLBgQECAYDBAMDAwYEBwohlaOvucTN1t3l6vD1+Pv9/////////////////////////////////+3m39bLwbSmmm9WSlJSTExGQz02LSYgHBsbGxsbGxsbFxkZGRsbGhUXFxUSCwkLCggcOUlRVmBqb3VxbHF/fXB9cWk8Q0BHS0lIRUI5MScjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0ORmhpbnNxcmxoU1FOTk1MSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDhBYX2hxbHF1Z1dSTVJKTklIRD43LSQeGxsbGxsbGxsZGRoaGhoZGBwYFhUUFRIMCgYDCA8QDg0LDQsNDA4PJZyptb3H0Njf5+vx9vn7/f/////////////////////////////////t5t/Wy8G0pppvVkpSUkxMRkM9Ni0mIBwbGxsbGxsbGxcZGRkbHRkWGBUTEgoKCwsLJkVYW19qdnd9fXmBi4h6g3duP0VDSk5JSEVCOTEnIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDkZnZm1ycnVtaFNRTk1NTUpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw4QWF9ocWxxdWdXUk1SSk5JSEQ+Ny0kHhsbGxsbGxsbGRkaGhoaGRgbGBUUFBQRCggHCBIlLjM2PUVLU1lmaXyjsLvDzNTc4unt8vb5+/3/////////////////////////////////7ebf1svBtKaab1ZKUlJMTEZDPTYtJiAcGxsbGxsbGxsXGRkaHBwaFRQTFBAJCQwNCihLXmJlcX18g4OBipWQg4l8cUBHRU1SSUhFQjkxJyMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQ1EZWVqc3R6bWlUUU5NTU5KRkA5MSojHh0cGBcZGhkWFRIRERIPDgsNEFhfaHFscXVnV1JNUkpOSUhEPjctJB4bGxsbGxsbGxkZGhoaGRkYGhYUExQUEQkLCg0eN0VOU15ob3uDj5SkqLS/x9DX3uXp7fP3+fv9/////////////////////////////////+3m4NbLwbSnmW9USlJQTUtGQz02LSYgHBsbGxsbGxsbGhsZFxgbGBYUExUTDQsMCwYqWGBocXl9g4aLjo6Qj4uKgXdARUlNRUpJRUI6MSgjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0NRWVja3Rzc2xnUlFPT01MSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDxBYXmdxbHJ0ZldRTVJKT0lIRD43LSQeGxsbGxsbGxsbGxsbHBsYFhYXGRkTEBEPCwgIBUdMU2BmcHmCjZWep7K7xs/V3OPp7fH2+fr8/v/////////////////////////////////t5uDWy8G0p5lvVEpSUE1LRkM9Ni0mIBwbGxsbGxsbGxobGRcYGxgWFBMUEwwLCgsKMFxlbnqFho+Tl5iZnZuZkYl8QkdKUEdKSUVCOjEoIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDUdnZmx0c3JsZ1JRT09NTEpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw4QWF5ncWxxdGZXUU1SSk9JSEQ+Ny0kHhsbGxsbGxsbGxsbGxwbGBYWFhkYEg8PDgsICQZLUVlnb3mCi5afqLG5wcvU2d/l6u7x9vn6/P7/////////////////////////////////7ebg1svBtKeZb1RKUlBNS0ZDPTYtJiAcGxsbGxsbGxsaGxkXGBsYFRMSExEMCQsKAytcaneEkJSanqGgoJ6cmZGKfEBFSlFLSklFQjoxKCMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQ5IamltdHJxbGdSUU9PTUxKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsOEFdeZ3FscXRmV1FNUkpPSUhEPjctJB4bGxsbGxsbGxsbGxscGxgWFRUXGBAPDgwKCAoHUVhicHiBi5SfqLC5wsnT2t/j6O3w8/f6+/z+/////////////////////////////////+3m4NbLwbSnmW9USlJQTUtGQz02LSYgHBsbGxsbGxsbGhsZFxcbFxUSERIQCgkJCQYtWmZ0hZaemZyhoqKhnpiQin1CRUlQSUpJRUI6MSgjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0OSWtpbHJxcWxnUlFPT01MSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDhBXXmdwbHF0ZldRTVJKT0lIRD43LSQeGxsbGxsbGxsbGxsbHBsYFhQVGBYRDQwKCgcJB1ZeaXd/iZOcp6+4wcrQ2d/j5+zv8vT4+vv8/v/////////////////////////////////t5uDWy8G0p5lvVEpSUE1LRkM9Ni0mIBwbGxsbGxsbGxobGRcXGhcVExISEAoICgkLNWV0foiSlZ+jpqinpaGek42CRkhMUEpKSUVCOjEoIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwND0lqZmpxcHFsZ1JRT09NTEpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw4QV11mcGxxdGZXUU1SSk9JSEQ+Ny0kHhsbGxsbGxsbGxsbGxwbGBYWFhcVEAwNDAoGCQZbYm99h5GbpbC4wMnQ1d3k5+vv8fT2+fv8/f7/////////////////////////////////7ebg1svBtKeZb1RKUlBNS0ZDPTYtJiAcGxsbGxsbGxsaGxkXFxoXFBMSEhEJBwoKBzZvgYyUmpyoq62sra6sqpOMgUdLTVFKSklFQjoxKCMbGxsbGxsbGxsbGxsbGxsbHBsYFxoaGBUVEg8RDw4MDQ9IZ2RpcHBxbGdSUU9PTUxKRkA5MSojHh0cGBcZGhkWFRIRERIPDgsOEFddZnBrcXRmV1FNUkpPSUhEPjctJB4bGxsbGxsbGxsbGxscGxgWFRUXFw8NDgwMBwoGYGd1go2Xoau2vsbO1tvi6Ovu8fP3+Pr7/P3+/v///////////////////////////////+3m4NbLwbSnmW9USlJQTUtGQz02LSYgHBsbGxsbGxsbGhsZFxcaFhQUExMSCgkMCgs3bH2Mm6mvuru5tbCrqKOaj4FMTk1QSkpJRUI6MSgjGxsbGxsbGxsbGxsbGxsbGxwbGBcaGhgVFRIPEQ8ODA0PR2ZkaXFxcWxnUlFPT01MSkZAOTEqIx4dHBgXGRoZFhUSERESDw4LDg9XXWZwa3F0ZldRTVJKT0lIRD43LSQeGxsbGxsbGxsbGxsbHBsYFhUVGRcQDg4NDggMB2ZtfImTnaiyvMTM1dzh5+zv8vT1+fn6/P3+/v7////////////////////////////////t5uDWy8G0p5lvVEpSUE1LRkM9Ni0mIBwbGxsbGxsbGxobGRcXGhYTFBMTEgsICwsKN3GDkZymq7G2uLm5t7CtqJqLUVJMTkdKSUVCOjEoIxsbGxsbGxsbGxsbGxsbGxscGxgXGhoYFRUSDxEPDgwNDkdmZGtzcnFsZ1JRT09NTEpGQDkxKiMeHRwYFxkaGRYVEhEREg8OCw0PV11mcGtwdGZXUU1SSk9JSEQ+Ny0kHhsbGxsbGxsbGxsbGxwbGBYVFRgXEQ4PDg8KDQlpcYCOm6WvucTM1Nzh5evv8vT19/r6+/z9/v7+////////////////////////////////7ebf1svBs6Wcb1ZKUlNMTUpEPjYsJB0aHBwcHBwcHBwaGxoYGBsZFhgSEA8ODg0JBzx2h5CbqrC4u76/wLy1raWekk5TUVZLSEdEQDguJSAdHRwcHBwcHBwcHBwcHBwcGhoaFxkZGBYVFBETEQ8ODw1GZ2hucnBybmpUUE1PT1BIRT44LiggHBwbGxoaHRwXFhQREhMRDg0ND1ZdZnBscXVoWlNPUktPR0VBOTMsJCAcHBwcHBwcHB8cHBwcHBsbHhgWFBQSDwkQCQkIcX2Ik52qtr7I0Njf5urv8/b4+fn7+/z9/v///////////////////////////////////+3m39bLwbOlmW5WSVJSTExJRT82LSceGxoaGhoaGhoaGhsbGRkaGRQZEw8ODhAOCgc9eImTna20ub2/wcG+tq6on5NPUVFVSElIRkE6MighGxoaGRkZGRoaGhoaGhoaGhkbGBgYGRgUFRMQERIPDg4MRWdobnNxc25qU01LTk5PSEVAODEqIx4cGxkYGh0aGBcVERMSDw4ODhBXXWZwbHF0Z1lSTVJLT0pHQTszLSciGhoaGhoaGhobGhoYGBoZGhwWFBUUEw8JDggICHF+iJWgrbnBy9Pb4uns8fX4+fr7+/z8/f7////////////////////////////////////t5t/Wy8GzpZhtVUlRUkxMSUM8Ni0nIBsZGRkZGRkZGRkaGBYWGRYUFxENDw0PDgkIPnqLlqGxuLu/wsTEwLiwqqGVUFFPVUhLSkhDPDQqIxoZGRgYGBgYGRkZGRkZGRkZGBYVFxgWFBMQEA8PDAwNDEVnZ21zcXRtZ1FNSk5OTkpGQDkzKyQgGhkWFRgaGhYVExEREA0MCw8QV11mcGxydGZYUkxSSk9MSEM9NS0mIhkZGRkZGRkZGxsZFxkaGBgZFBMUEhIPCQ4IBwhyf4qXpbK9xs/Y3+bt8PX4+vv8/Pz8/f7+////////////////////////////////////7ebf1svBs6WYa1VIUFJMSkZDPDQtJyAcGRkZGRkZGRkZGhgWFhkWExUPDQwMDQ4ICT97jZijs7m9wcXHxsG6sqqilE5ST1RJTEtHQjszKSQaGRkYGBgZGRkZGRkZGRkZFxgVFRUYFhMTEA0ODAsKCg1GZ2dtcnF0bWdRTUpMTU5LR0E6MiojHxoYFhUYGhkWFBAODw8MCwgPEVddZnBscnRnWFJNUEtNS0hCPDYuJyMZGRkZGRkZGRsbGRcZGhkZGRQTEREQDwkNCAkJcn+Lmam2wcrT3OPq8PP3+/z9/f39/f7+/////////////////////////////////////+3m39bLwbOll2xUSFBQSktGQjs1LicgHBoaGhoaGhoaGxsbGRkaGRUYEQ4MDA4NCApAfI6Zo7O5vsPHycjDu7SqoJROUk9USkpJR0I7MikiGxoaGRkZGRoaGhoaGhoaGhoZGBgYGhgUExAPDw8MDQsNRmdobXJwcm1oUk1KTE1OSkZCOTMrJCAcGxkYGh0aFhUSEREQDQwLDhBXXWZwbHFzZlhRS1BJTUxJQz01LSYjGhoaGhoaGhobGhgYGBkZGRsVFBQSEhAKDQoKCnJ/i5qruMTM1t7m7fL1+fz9/f39/v7+///////////////////////////////////////t5t/Wy8GzpZdsVEhQT0lKRUE6NS0nIBwbGxsbGxsbGx0eHBobHRoYGRQQEQ4QDgoJQHyOmaSzucDFycrIw7y1qqCTTk9NU0hIR0VAOTEnIBwcGxsaGxsbGxsbGxsbGxsbHBoZHBsaFxUSEhESDw8PDUZoaG5ycHJuZk9KSEtMTEhFQDgxKiMeHRwaGRseHhkWFBETEg8ODg0PVl1mcGxxdGZWUUpQSExLR0I7MywkHxsbGxsbGxsbHR0bGxscHBwdFhQVFBQRDA4JCgp1g4+crbrFztfg5+7z9vr9/v7+/v//////////////////////////////////////////7ebf1svBs6WXa1NFTE5HRkA8NzApJBwaHBwcHBwcHBwcGxkZGhoZFRcSDxAQEBAKCD97jpqltbvBxsnKyMO9tqmhkU1OS1FGRURAPDQrIxwdHBwbGxscHBwcHBwcHBwcGhkZGBkbGRUSEQ8RERAODwpEZ2lvdHFzbWZPSUZISEpEQDkzLCMeGRwbGRgbHRoWFBEQERIQDQ0LDVZdZnBrcHNmVlBJTEZIRUI9NS4nHxocHBwcHBwcHB4cGhoaGx0cGxYSExITEg0OCAgLeIaSn667x8/Z4enw9Pf7/v///////////////////////////////////////////////+3m39bLwbOllmpSREtMRkQ8ODMrJR8XFRYWFhYWFhYWGBgXFRYXFhEVDwwODQ8OCQc+e4+apra8wcbKysfDvbeqopFLTUpPREA+OzYvJh4YFxcWFhYWFhYWFhYWFhYWFhYVFRUUFhUREA0NDw4ODQ4IQ2ZpcHVydG1lTkhFRkdIPjo0LScdGBQZFxUUFxkWExEODQ4PDQoKCQxVXWdwa3BzZVVPSEpERj88NzEpIRkVFhYWFhYWFhYYFhQVFRUWFhcSDg8PERELDAYIC3iHlKCvvMfQ2eLp8PX4/P/////////////////////////////////////////////////s5t/WysCzpp5kQT1HPC8tKSYfGhcXGRkVFRUVFRUVFRYVFBQYFhQQEw8MCw0OCgkNQHqMmKi1uMDEyMrJxLy1sKOcRjw+OTsvKyYiISAfHBgWFRUWFhYVFRUVFRUVFRUWFRUVGBUSDRcTEhEQDQ8RDkJgbHZzb3JsZz0+Qjg4KColIBwaGhsaFxUUFRYXEw8aFBERDw8ODxATT15pbnNsbHBWOj4+My8vKiUgHh0cGxYWFRUVFRUVFRUVFxYVFBIXFBAPEREPCw4NAwZ0h5OisLzH0Nri6e/2+Pz+////////////////////////////////////////////////7Obg18vBtaefYjo0OzEnJyEeGBQRERISExMTExMTExMSERIUFBMRDRAMCAgHCQoGCkB6jZmptLnAxMjKycS8tbKimD4yNTAwKSQfGxkXFRQVFBMTExQTExMTExMTExMTERESFBUTEAwSDgwMCwkMDg1DYmx2c290bmY1MzQsMSMkIBoXFRQUExIREBIWFBENFA8NDAsKCwwNEVJga3B0bW1vTjAyNCsqJyIdGBYWEhIVFBQTExMTFBETExQUFBIQFBENDQ4MCggLCwMEd4eWpbC8x9Da4+nv9vj8/v///////////////////////////////////////////////+3n4NfMwrapoV4vJCsiHB4bFxMPDg8PEBMTExMTExMTFBMTFBUTEQ4NCQcGBwgIBwg+fY6aqbW4wsTKysnHvbewnpU0JigiIyEdGBYVEhEOFRQSEhMTExITExMTExMTExMSEhQUExEODAsHCQYFBgkMRWVsdnNxdnJoKyUnISgcHRoVEhITERETEhISFhUSDw8LCAgIBgcJCgxUYm1ydm5wb0kiJSghIR4aFhQREg8NFRQUExMTExQUExMWFhUUEhIQCwgLCgkGCQkDBXmKl6awvMjQ2+Pp7/b4/P7////////////////////////////////////////////////t5+DXzMO3qqJbKBggGBQZFRIREBETExITExMTExMTExMTFBQUEg8PDgwGBwcJCQkFPn2Qnaq2ucLHy83Mx8C4sJ6TKiAfGRkZFhUTFRMQEBUUExMTFBMTExMTExMTExMTExMTExIPDwwKBwgGBQYJCUZnb3d0cXl4ayMaGxciGBcUEhITFBMTExMRExMUEA0MCQcGCAcHCQgJV2RscXdwcnNFFxkfFxkXFBMRERIQDxUVFBQTExQUFBQUFBUUEhASDwwKCwoJCAgIAwN+jJupsb3I0dvk6vD2+Pz+////////////////////////////////////////////////7Obg18zEuKylWCISHBQRFhIQDw8QEhESDAwMDAwMDAwMDA0MDAsJCA0LCAgJCwsMBD5/kp2tuLvEyMzOzcjBua+flSYbGxUVFRMSERQSEA4PDgwMDQ0NDAwMDAwMDAwMDQ0MCwoKCAcKCAcHCAYICAlKbHF5eHV8eG4aExYRHRQVFBERERIREA0MCwsLDAgHDAkHBwkICQgIB1xmbXN5cnR2RRMUHhQWExEQEBESDw8ODQ0MDAwMDQwLDAwNDgwLEg8LCgoLCgkICQMDgY6ap7K/ytLc5Ovw9vj8/v///////////////////////////////////////////////+3n4NfNxbquplYfERsWERQTEhEQERAQDggICAgICAgICggICAgIBgcLCQgHBggJCAVBhJSfr7y+x8rPz87Lwr2yopohGBkUFBUVExIUEhAOCgkICAkJCQgICAgICAgICAsJCQcGBwQGCAcHCAcGBgYJTXF0fHt4gHtyFxIVER0UFRQREhIQDQwJCAcHBwYGBAkHBgcIBwYICwVjaW90fHZ0eUYSGB4UFBUTEhISEA4MCQkICAgICAgICAgICAoIBw0KCAcJCAgHCQoFA4WPm6e1wcvU3eXr8fb4/P7////////////////////////////////////////////////u6OHZz8e8sKZWHA4cFQ4REQ8ODg8NCgoICAgICAgICAoLCQgJBwkKCAcGBQUGBgUEQoiZo7K+v8nN0NLQzMW+uaeeIBMXEhMVEhIRERAMCAoJCAgICQkICAgICAgICAgLCwkICAYICQcGBwoJBgQFClN0dn99fYWAdxcUFhMcExEREA8ODQkGCwgIBggIBgYHBgUICAcFBQoGanF0en97eH9KExcfEhATEhAREQ8LCQoJCQgICAgICQgICAsKCQgICAYGBgUGBQsKBgSIkJymt8PN1d7m6/H2+Pz+////////////////////////////////////////////////7+ni2tDIvrKlVBkNHBQMDQoJCQkJBwQDCQkJCQkJCQkLCwkJCQkLDAcGBQUFBQUEBEOKnKazvr7JztHS0c3Gv72toR4SExATDw0MDAwKBAEKCQgICAkICAkJCQkJCQkJCgsJCAkICwwHBwkKCgYEBQpTeHiAf36If3gUERQRGxAKCAcHBwUBAAoICAcHCgkKBwUGCgoHBQUKBm91eX6DfnyETRQXHA4MDAsKCwwKBwQKCgkJCAkJCQoJCAkLCwoJCAcGBQUFBAYKCgcFiZCdqLjEztbf5uvx9vj8/v///////////////////////////////////////////////+/q5d7Ty8G2rFkXEBYTDgwKBQEAAgYICQYGBgYGBgYGBwYGBQUFBQUEAwQHBgQFCANAjqausbfEzdDS0dDOycS9q6sOFBITDg4JBQUICAcHCQgIBwcICAkHBwcGBgYGBgsLCwsKCgkJDQoKCQgGCAwOVX6LiIeNe4p+FQ8OEhIODgoGBAQICQkICAcGBgUEBAYGBgYGBgYGAA9seoaDhIaWeksjEwwNFQsJBgcHCAoIBQUFBQUFBQUHBwcHBwcHBwgHBgYGBwgIDwwDDoiepay9xdDZ4Oft8vf5/P7+/v/////////////////////////////////////////////v6+bf1c7EuatYFQ4TCwgMDQkGBggLDQ8MDAwLCgoJCQwMCwoKCgoKCQcGBAYFBQQSSpCirbrH1s7R0tLRz8rFxLCoDxAQFxISDQoKCwsKCQUFBQUFBQUFBQUFBAQFBQUEBAQEAwMDAwQEBQcIBwUDCk94goiMkYyIexcNCg8NCw4KCAcICg0OCwsLCwsLCwsLCwsLCwwMDAMPcX6Ki4qMlHtJGgoHCAsNCwkKCg0NDAsLCwsLCwsLCwsLCwsLCwsLCwoKCgkJCQwGAQiOoquxwMfR2+Lo7vL3+fz+/v7/////////////////////////////////////////////8Ozn4djRyL2vWRQMEwwDBQcFAQEDBAQFBQUFBQYGBgYEBAQEBAUGBgoNDgwGAwUHDUuTq7W+xtDR09XU1NLOyc66phcRCQ4JCwgFBggHBgYHBwcHBwcHBwgHBwYGBwcIBAQEBAQEBAQDBgYDAwMGCAhUhoyPkoyMVVELDhESCwcICAQDBAUGBwUFBQUEBAQEAQEBAQEBAQICFH6MjZKRl5SBUB8LDA0KCAYDBQYFBAMEBAQEBAQEBAUFBQUFBQUFAQICAwMDAwMGAwAKkaayuMTL1N3j6e/z+Pr8/v7+//////////////////////////////////////////////Lt6ePa1MvBqF0dExcRDAwODQoJCgwMCwsKCgoKCgoJDAwLCwsLCwwJBQYMEA8LCxpTmLC6vcTN0tXW1tbU0Mu8spgiGAgEABAMCAkIBwUEDQ0NDAwNDQ0MDAsLCwwMDQsLCwsLCwwMDQ8NDRIREhMhXIqPl5NmQjo8ERcbGAoDDQ4MCgoJCgoLCwwMDAwMDQcICAgHBwcHCyR7kZSWmJ2Rf1AiDgwODAwLCgoLDAoJCgoKCgoKCgoLCwsLCwsLCwkJCQgHBwcIEAkKHpGrtrfIztff5erw9Pj6/f7//v7////////////////////////////////////////////07+vl3dfPxdGulZSTiYWFd3JsZGBcWVdVU1FQTk1KSUNBPzw6NzY1NzlFW212gImMmKuwvMXM1NXY2dnY19POy9PPlaOgpaCCf3l4dG5pZ2NiYF9fYGJjYGBfX19fYGBiYmJiYmNkZWxwc3d4dXiCeY2WclVTTkhWUzk5QEM+QUBAQD9AQEFCRUdJS01PUlNcX2VrcXd8gHh9lpibnKKosq6hk4+OjIl+enVyb2pmYWRkZGRkZGRkZGRkZGRkZGRlZ2ptcXZ7f4SJjY+rsbrCzNLb4ebr8PT5+/3+//7+////////////////////////////////////////////9fHt5+Db1MrKu6qinZeSj4iEfnd0cWxqaWZjYWBeW1hXVlNPTElHRT89QUdNW3eRoaq3vs3T3ODa3N3c3NvX0sDOxamzpqCXk46Kh4J7dHN2dnRzc3R2dnV1dXV0dHR0dnV1dnd4eXp9f3x9gYCCjYRuYk5GVFZRVlNKRUtNSVBPUFFPUFFRUldaXV9hZGdpbnJ4fYKHjJCJk5udpKOpr7GtpqCdmZeXjIuIhoOBenh5eXl5eXl5eXh4eHh4eHh4fX+AgoSIjpKXm6Gorre/w9HX3uTo7fL1+fv9///+/v////////////////////////////////////////////by7+rk4NnQzsW6saylmpSLh4J9enZycHBtamloZmNhWllWU1BOTEtMSUhIS01QVnOTs7/JytHS4eLj4uHg3NjM2Ma5vaiemJWRjoyJg39+goKBgYGBgoKBgoKCgYB/foCAgICBg4WGfX99gIh/ZVZLTVZYWFtXTU1PVlFWVk5SU1RVVVVWWFpdYGNlZmhrbnR4foKGi5CUm6Wtrqqssruvrq+uq6egm5KQjYuJh4J+f39/f39/f39/f39/f39/f3+BhIaIjJGVn6Sts7a9xcvW2+Ln6+/z9/n7/v///v7////////////////////////////////////////////28vDs5uPd1c3KxLy0q6WjnpuXlpSQjImKh4SBgH15dnNyb2tnZGJhWlpZU1JSUU1PWF9slr3U1uXn5+bl5ODb0tvBvsWvqqaqpqSkn5mVlZKTlJSUlJOSkZKSkpGQjo2NjY2NjpCSk42OfGBSUU5OUFxXT1NcWU5YVWNaXF5WXmNkZmprbXBzc3d7fX+ChomFiY6TlpugpKystLavtrrBtLe6uLazq6Sko6OioqCbmJmZmZmZmZmZmZmZmZmZmZmSlZiZmp2hpaSosrS+wc3T2d7k6u3w9fn6+/7////+////////////////////////////////////////////+fby7+zn4NzVz8jCvrmyrammop+bmJWTkY+Ni4iFgoB8end0cW5raGdlY2FhYF5dYV1eX2RpcIOwyNbY4ejm5trUzsvJxL++raqmo6GhoJ6ioZ+fn5+hoqinoZqan5+ZnZianJN+ZllSUVFSVVZXV1pbXFxcXF1eX2FjZWZoamxub3FzdXd5en+BhIeJjI6QlpicoKSorK+1uLy/wsPExcXEwsC9uri3sbCuq6ilpKOioqKioqKioqKioqKioqKio6Skpqirrq+1uL3CyM/U2ODj6O3x9fj6+/z9//////////////////////////////////////////////////j28/Hu6uTg3NfRzMjEvrq1s6+rqKWioZ+dm5iWk5COiYeEgH16d3RzcW5tbGtpaGlmZ2VlYmFsZHZ/hJGjus3e1MnDwr66t7q4tbSysbCwrKqsrq+trKyeoKKhoqOdl4N2amJfWFZVW1pZWVtcXFtcXFxcXWBjZmprbnBxc3V3eXt9f4GDhYeLjZCTlpianKKlqa2wtLi6vsHFyMrLzM3NzMvJxsPBwL28ure0srGwsLCwsLCwsLCwsLCwsLCwsLCxsbO1t7q7v8LGy9DW297k5+vv8/b4+vv8/v/////////////////////////////////////////////////59/Tz8e3p5eDc19PQzcjEwL67t7Wyr62sqqilo6Cdm5eVkY6Lh4SBf317eXd2dHNwb3FxcG1pbWJqbm5ub3qKjIV/gYqQkpO2tLS1tLCvsq6tq6mjnZWQgH10amdoZWJfWVZaW1lXV1xcW1xdXl5eX19hYmVpbXB0dnh6fH6AgoWHiYuOkJKUmJqdoKOmqKqvsbS4u7/CxMfJzdDR09TV1NTS0M7MysjHxsTCwL69vb29vb29vb29vb29vb29vb28vb2/wcPFxsnMz9PX2+Di6ezv8vX3+fr8/f7/////////////////////////////////////////////////+fj29fPw7Orj4NvY1tPPzMnHxMG/vLq4trSysK6rqKajoZ6al5OQjouJhoSCgH59e3p6eHh3dHN5eHVxb2pqbnJuamxzdnd5bmxtcG5paGxsa2tta2ljX2hpZ2NkZWViX2BhZWRhXVtZWVpbXV9hYWRmam5xdHh6fX+ChIaIi42QkpWXmZyfoaSmqa2vsrS2ubu+wcTHyszP0tXX2Nna29ra2djW1NLRzs7My8nIyMfGxsbGxsbGxsbGxsbGxsbGxsfHyMrMzc7S1Nfa3eHl5+3v8vT2+Pr7/f3+//////////////////////////////////////////////////r5+Pb08u/t6ufj4N3b2NXT0c/My8jGxMHAvry6t7SysK6qp6SgnZuYlpOQjoyKiIiGg4GAf357fHhzb25uamhnZ2ZlaGlpamlnaGtpY2JlcnBua2toZF9cXmJmaGlnY2dkYmBeW1tcXF1eYGNmaGltb3N3e36Bg4iKjI+RlJaYnJ6ho6apq62wsra5u77AwsXHyczO0dPV2dvd3+Dh4uLi4uHg3t3b29jX1tXU09PT0dHR0dHR0dHR0dHR0dHR0dLS09TV1tjY293f4uXo6+3w8fT29/n7/P3+/v/////////////////////////////////////////////////7+vn49vPx8O7s6ebk4d/d2tnX1tTS0M7MysjGxMK/vbm3tLGuq6imoqCdm5iWlJORj4yMi4mKhHx/f318fXhyZ2hnY2BiY2RkYmJjYV1bXWxpZ2NiYV5cXF1eYGJlZ2hdXV1fXl1dXmVmaGpsbnFzeXp9f4KGio2Rk5WYmp2goqaoq66ws7W3ury/wsTHycvP0dPV19nb3d/h4+Tk5ebn5ubl5eTj4uHg397d3dzc3Nra2tra2tra2tra2tra2trb3Nzd3t/g4OHi5efp6+7x8vT29/j6/P3+/v7/////////////////////////////////////////////////+/v7+ff29PTw7+zq6Obl5OHf3t3c2tjW1dPRz83LyMbDwb67uLWzsa2rqKWjoZ+em5mUlpKNjoiQkI2HhIOCgXx8eXRzcnJxZ2VkY2JgX19gXl1dXVxcXGFiY2RkY2VkY2NhYmNmaGpwcXN1d3l8foSGiIuNkZWXmpyfoqWnqqyxs7W4ur2/wcTGyczOz9LT19nb3N7f4ePl5ujo6enq6+rq6unp6Ofm5uXl5OPj4+Pi4uLi4uLi4uLi4uLi4uLi4uPj5OXl5ubn6Orr7e/x8/X3+Pn6+/z+//////////////////////////////////////////////////////z8+/r5+Pf28/Lw7u3s6urm5eTj4uHe3Nzb2dfV09DOzMrHxcLAvbu4trOwrqyqqKainaGdmJuWlI+NjIqFgoB6enh1dHRxbXNycG5ubm1raWlqZ2dmZmRlZWZnaGtsbW5wcHN2eXp8eXp9f4GEh4mLjpKVmJqcnqSmqayvsrW3u73AwsTHycvO0NPV19nb3N7g4uPk5efp7O3u7+/v8PDw8PDw7+7u7ezr6+rp6enp6enp6enp6enp6enp6enp6enp6urr6+zs7u/w8fL09vf4+fr7+/v9/v/////////////////////////////////////////////////////8+/v6+vn4+Pb29fTy8fDv6+vq6ejn5ubj4uHf3tza2NbU0c7MycfFwb+8ube0sa+wrqupp6WioJ2bmJaUkY6MiomGhIOBfn17enl4d3Z2dXR0dHNzdHR0dHR0dXZ3d3h6e3x9fX+BgoOFh4mLjZCRmJqdoKKlqKqsrrG0t7q9v8PFyMrNz9LU19ja3d/h4uLl5ufo6uvs7O/w8fPz8/Py9fT09PPy8vLx8fDw8PDv7/Dw8PHx8fHx8PDw8PDw8PDw8PDx8fLy8vPz9PX2+Pj5+/v7/Pz9/f3//////////////////////////////////////////////////////Pz7+/r5+fn4+Pf29PPy8vDw7+7t7Ovr6ejn5uTj4N/c2tjV09DOzMvJxsPBvru5trSxr62rqKelo6GenJqXlZSSkI6MioiHhISDgoGAgH9/fn5+fn5+f3+AgIGCg4ODhIWGh4eJi4yPkJOVl5mbnZ+hpKaprK+xtri7vsDDxsjKzM/R1NbZ297f4ePl5+jo6uvs7e7w8PHy8vT19vb19fb29vb19fX19fX19fT09PT09PT09PT19fT09PT09PT09PX19fb29/f19vf3+fn6+/v8/Pz9/f3+//////////////////////////////////////////////////////38/Pv7+vr6+vr5+Pf39vb19PTz8vHw8O/u7ezr6efl4+Hf3dvY1tTS0M3LyMbDwb68uri2tLGwrauopqSin52cm5mXlpSSkI6OjYyLioqJiYmIiIiIiYmKiouLjI2Njo6PkJGSk5WXmZqdn6CipKapqq2wsrW4ur7AwsXIys3P0tTX2dvd4OLk5efp6+3u7u/w8PLz9PX19fb3+Pn5+Pj5+fn4+Pj4+Pn5+fn5+Pj4+Pj5+fn5+fn5+fn5+fn5+fn5+fr6+vv7+fr6+/v8/Pz8/f39/f7+/v/////////////////////////////////////////////////////9/fz8/Pv7+/v7+vr5+fn49/f29fTz8/Py8fDv7u3r6efm4+Hg3tza1tTS0M7LycfFxMG/vry5uLSysK2sqqelpKOhn56dm5mYl5aVlJOTkpOTkpKSkpOTkpKSk5SVlZaYmZqbm52foKCipKanqautsrO2ubu9wMLDxcjKzM/R09ja3N7g4uXm6Onr7e7w8fHy8vP09fb29/j4+fr6+/r6+vr6+vv7+/v7+/v6+vr6+vz8/Pz9/f39/f39/f39/f37+/v8/Pz8/Pz8/f39/f7+/v7+/v7//////////////////////////////////////////////////////////f39/Pz8+/v7+/v6+vr6+vn4+Pf29vX19PPy8fHv7ezr6efl5OPg393b2dfV09DPy8nHxcTCv768uri2tbOwr62sqqmopqWjoqGgoJ6enZydnZycnJydnZycnZ2en6CgoqOkpaWnqaqqq62vsbK0trm6vb/Bw8bIy83P0dPW2Nrd3uHj5Obo6uvs7e/x8vLz9PX19vf3+Pj5+fr6+/v7+/v7+/v8/Pz8/Pz8/Pz8/Pz+/v7+/v////7+/v7+/v7+/f39/f7+/v7+/v7+/v7+/v7+//////////////////////////////////////////////////////////////39/fz8/Pz8+/v7+/r6+vr6+vr5+Pj39/b19PT08vHv7u3r6unn5uTi4N7c2tjW1dHPzcvKyMXEwcC+vLu5t7WzsrCvrq2sqqmpqKempaSkpKSkpKSkpKSkpaWmp6ioqamqq6ytrrCxsrO1t7i6vL6/wcPGx8nMzdHT1dfZ293f4uPl5+nq7O7u7/Dy8/T19ff3+Pj5+fn6+fr6+vr7+/v7+/v8/Pz8/P39/v7+/v7+/v7+/v///////////////////////////v7+/v7+/v7////////////////////////////////////////////////////////////////9/fz8/Pz8/Pv7+/v7+vr6+vr5+fj49/f39vb19fTz8fHv7uzs6+no5ePh397c2tjX1dPR0M7MysbFw8HAv727uri3trW0s7KxsK+uraysq6yrq6urq6usq6ysra6vr7CwsbKztLW3uLm6vL6/wMLExsjKzM7P0tPV19nb3d7h4uXm6Orr7e/w8PHy9PX19vb4+Pj5+fn6+vr6+vr6+vv7/Pz8/Pz8/f39/f7+/v7+//7+/v7//////////////////////////////////////////////////////////////////////////////////////////////////////Pz8/Pz8/Pz8/Pz7+/v7+vj4+Pf39vb29/b19fX08vHx7+7t7Ovq6Ojn5ePi4N7d29rY1tTT0c/Ny8nIx8XDwsHAv769vLu6ubi4t7a1tLS0s7Ozs7OztLKys7O0tba2uLm6u7u9v8C/wMLExcbIysvMz9DS1NbY2tvd3+Hj5ebm5+nq7O3v8PDx8vP09fX29/f3+Pj4+Pj6+vr6+vr7+/39/f39/f39/Pz8/P39/f3+/v7+/v///////////////////////v7//////////////////////////////////////////////////////////////////////////w== - - White - - 1 - 1 - 1 - - - - Black - - 0 - 0 - 0 - - - - Gradient - - 0 - 0 - 0 - - - - - diff --git a/software/Print3r/models/Rook.amf b/software/Print3r/models/Rook.amf deleted file mode 100644 index ffa1bc40..00000000 --- a/software/Print3r/models/Rook.amf +++ /dev/null @@ -1,31324 +0,0 @@ - - - - Default - - - - - 1.01909 - 0 - 0 - - - - - 0.886075 - 0 - 0.0087185 - - - - - 1.15211 - 0 - 0.0087185 - - - - - 0.755333 - 0 - 0.0347248 - - - - - 1.28285 - 0 - 0.0347248 - - - - - 0.629103 - 0 - 0.0775739 - - - - - 1.40908 - 0 - 0.0775739 - - - - - 0.509547 - 0 - 0.136533 - - - - - 1.52864 - 0 - 0.136533 - - - - - 1.01909 - 3.46523 - 0.158005 - - - - - 1.01909 - 0.499815 - 0.16371 - - - - - 1.01909 - 0.532646 - 0.163966 - - - - - 0.896548 - 3.46523 - 0.166769 - - - - - 1.14164 - 3.46523 - 0.166769 - - - - - 0.932556 - 0.499815 - 0.168099 - - - - - 1.10563 - 0.499815 - 0.168099 - - - - - 0.932582 - 0.532646 - 0.168354 - - - - - 1.10561 - 0.532646 - 0.168354 - - - - - 1.01909 - 0.467414 - 0.169007 - - - - - 1.01909 - 0.56496 - 0.169768 - - - - - 0.933092 - 0.467414 - 0.173369 - - - - - 1.1051 - 0.467414 - 0.173369 - - - - - 0.933169 - 0.56496 - 0.174126 - - - - - 1.10502 - 0.56496 - 0.174126 - - - - - 0.769094 - 3.71523 - 0.17752 - - - - - 1.26909 - 3.71523 - 0.17752 - - - - - 0.772131 - 3.69362 - 0.178187 - - - - - 1.26606 - 3.69362 - 0.178187 - - - - - 1.01909 - 0.436374 - 0.179705 - - - - - 1.01909 - 0.59583 - 0.180949 - - - - - 0.846906 - 0.499815 - 0.18122 - - - - - 1.19128 - 0.499815 - 0.18122 - - - - - 0.846958 - 0.532646 - 0.181471 - - - - - 1.19123 - 0.532646 - 0.181471 - - - - - 0.934174 - 0.436374 - 0.184011 - - - - - 1.10401 - 0.436374 - 0.184011 - - - - - 0.9343 - 0.59583 - 0.18525 - - - - - 1.10389 - 0.59583 - 0.18525 - - - - - 0.804229 - 3.46523 - 0.185243 - - - - - 1.23396 - 3.46523 - 0.185243 - - - - - 0.847973 - 0.467414 - 0.186408 - - - - - 1.19021 - 0.467414 - 0.186408 - - - - - 0.848126 - 0.56496 - 0.187154 - - - - - 1.19006 - 0.56496 - 0.187154 - - - - - 1.01909 - 0.407589 - 0.195495 - - - - - 1.01909 - 2.90843 - 0.195495 - - - - - 0.850126 - 0.436374 - 0.196887 - - - - - 1.18806 - 0.436374 - 0.196887 - - - - - 1.01909 - 0.624364 - 0.197187 - - - - - 0.850377 - 0.59583 - 0.198106 - - - - - 1.18781 - 0.59583 - 0.198106 - - - - - 0.935772 - 0.407589 - 0.199721 - - - - - 1.10242 - 0.407589 - 0.199721 - - - - - 0.959125 - 2.90843 - 0.199784 - - - - - 1.07906 - 2.90843 - 0.199784 - - - - - 0.935943 - 0.624364 - 0.201404 - - - - - 1.10224 - 0.624364 - 0.201404 - - - - - 0.763023 - 0.499815 - 0.202939 - - - - - 1.27516 - 0.499815 - 0.202939 - - - - - 0.7631 - 0.532646 - 0.203183 - - - - - 1.27509 - 0.532646 - 0.203183 - - - - - 0.911725 - 0.407589 - 0.203405 - - - - - 1.12646 - 0.407589 - 0.203405 - - - - - 0.901883 - 2.90843 - 0.203878 - - - - - 1.1363 - 2.90843 - 0.203878 - - - - - 0.764609 - 0.467414 - 0.207993 - - - - - 1.27358 - 0.467414 - 0.207993 - - - - - 0.764837 - 0.56496 - 0.208719 - - - - - 1.27335 - 0.56496 - 0.208719 - - - - - 0.398709 - 0 - 0.210592 - - - - - 1.63948 - 0 - 0.210592 - - - - - 0.853305 - 0.407589 - 0.212354 - - - - - 1.18488 - 0.407589 - 0.212354 - - - - - 0.853645 - 0.624364 - 0.214012 - - - - - 1.18454 - 0.624364 - 0.214012 - - - - - 0.840462 - 2.90843 - 0.217239 - - - - - 1.19773 - 2.90843 - 0.217239 - - - - - 1.01909 - 0.649744 - 0.218015 - - - - - 0.767812 - 0.436374 - 0.2182 - - - - - 1.27038 - 0.436374 - 0.2182 - - - - - 0.768184 - 0.59583 - 0.219387 - - - - - 1.27 - 0.59583 - 0.219387 - - - - - 0.654392 - 3.71523 - 0.220508 - - - - - 1.3838 - 3.71523 - 0.220508 - - - - - 0.93805 - 0.649744 - 0.222125 - - - - - 1.10014 - 0.649744 - 0.222125 - - - - - 0.806188 - 0.407589 - 0.224553 - - - - - 1.232 - 0.407589 - 0.224553 - - - - - 0.787059 - 2.90843 - 0.228857 - - - - - 1.25113 - 2.90843 - 0.228857 - - - - - 0.681768 - 0.499815 - 0.233032 - - - - - 1.35642 - 0.499815 - 0.233032 - - - - - 0.772539 - 0.407589 - 0.233266 - - - - - 1.26565 - 0.407589 - 0.233266 - - - - - 0.681869 - 0.532646 - 0.233268 - - - - - 1.35632 - 0.532646 - 0.233268 - - - - - 0.857838 - 0.649744 - 0.234413 - - - - - 1.18035 - 0.649744 - 0.234413 - - - - - 0.773045 - 0.624364 - 0.23488 - - - - - 1.26514 - 0.624364 - 0.23488 - - - - - 0.683857 - 0.467414 - 0.2379 - - - - - 1.35433 - 0.467414 - 0.2379 - - - - - 0.684157 - 0.56496 - 0.2386 - - - - - 1.35403 - 0.56496 - 0.2386 - - - - - 1.01909 - 0.671238 - 0.242832 - - - - - 0.940561 - 0.671238 - 0.246815 - - - - - 1.09763 - 0.671238 - 0.246815 - - - - - 0.688076 - 0.436374 - 0.247731 - - - - - 1.35011 - 0.436374 - 0.247731 - - - - - 0.688567 - 0.59583 - 0.248874 - - - - - 1.34962 - 0.59583 - 0.248874 - - - - - 0.725602 - 2.90843 - 0.251779 - - - - - 1.31259 - 2.90843 - 0.251779 - - - - - 0.77928 - 0.649744 - 0.254753 - - - - - 1.25891 - 0.649744 - 0.254753 - - - - - 0.704077 - 0.407589 - 0.258621 - - - - - 1.33411 - 0.407589 - 0.258621 - - - - - 0.862834 - 0.671238 - 0.258723 - - - - - 1.17535 - 0.671238 - 0.258723 - - - - - 0.694303 - 0.407589 - 0.262241 - - - - - 1.34388 - 0.407589 - 0.262241 - - - - - 0.69497 - 0.624364 - 0.263796 - - - - - 1.34322 - 0.624364 - 0.263796 - - - - - 0.676959 - 2.90843 - 0.269922 - - - - - 1.36123 - 2.90843 - 0.269922 - - - - - 1.01909 - 0.688228 - 0.270926 - - - - - 0.603974 - 0.499815 - 0.271192 - - - - - 1.43421 - 0.499815 - 0.271192 - - - - - 0.604099 - 0.532646 - 0.271416 - - - - - 1.43409 - 0.532646 - 0.271416 - - - - - 0.943403 - 0.688228 - 0.274765 - - - - - 1.09478 - 0.688228 - 0.274765 - - - - - 0.606545 - 0.467414 - 0.275823 - - - - - 1.43164 - 0.467414 - 0.275823 - - - - - 0.606915 - 0.56496 - 0.276489 - - - - - 1.43127 - 0.56496 - 0.276489 - - - - - 0.78671 - 0.671238 - 0.278432 - - - - - 1.25148 - 0.671238 - 0.278432 - - - - - 0.544453 - 3.71523 - 0.280539 - - - - - 1.49373 - 3.71523 - 0.280539 - - - - - 0.703184 - 0.649744 - 0.282936 - - - - - 1.335 - 0.649744 - 0.282936 - - - - - 0.611737 - 0.436374 - 0.285177 - - - - - 1.42645 - 0.436374 - 0.285177 - - - - - 0.868489 - 0.688228 - 0.286241 - - - - - 1.1697 - 0.688228 - 0.286241 - - - - - 0.612341 - 0.59583 - 0.286265 - - - - - 1.42585 - 0.59583 - 0.286265 - - - - - 0.298486 - 0 - 0.298486 - - - - - 1.7397 - 0 - 0.298486 - - - - - 0.6194 - 0.407589 - 0.298983 - - - - - 1.41879 - 0.407589 - 0.298983 - - - - - 0.620221 - 0.624364 - 0.300462 - - - - - 1.41797 - 0.624364 - 0.300462 - - - - - 1.01909 - 0.700224 - 0.301488 - - - - - 0.616989 - 2.90843 - 0.302668 - - - - - 1.4212 - 2.90843 - 0.302668 - - - - - 0.946495 - 0.700224 - 0.30517 - - - - - 1.09169 - 0.700224 - 0.30517 - - - - - 0.79512 - 0.688228 - 0.305238 - - - - - 1.24307 - 0.688228 - 0.305238 - - - - - 0.712971 - 0.671238 - 0.305742 - - - - - 1.32522 - 0.671238 - 0.305742 - - - - - 0.607605 - 0.407589 - 0.306335 - - - - - 1.43058 - 0.407589 - 0.306335 - - - - - 0.874641 - 0.700224 - 0.316177 - - - - - 1.16355 - 0.700224 - 0.316177 - - - - - 0.53044 - 0.499815 - 0.317026 - - - - - 1.50775 - 0.499815 - 0.317026 - - - - - 0.530587 - 0.532646 - 0.317236 - - - - - 1.5076 - 0.532646 - 0.317236 - - - - - 0.630328 - 0.649744 - 0.318673 - - - - - 1.40786 - 0.649744 - 0.318673 - - - - - 0.533466 - 0.467414 - 0.321374 - - - - - 1.50472 - 0.467414 - 0.321374 - - - - - 0.533901 - 0.56496 - 0.321999 - - - - - 1.50429 - 0.56496 - 0.321999 - - - - - 0.573823 - 2.90843 - 0.326238 - - - - - 1.46436 - 2.90843 - 0.326238 - - - - - 0.539577 - 0.436374 - 0.330154 - - - - - 1.49861 - 0.436374 - 0.330154 - - - - - 0.540288 - 0.59583 - 0.331175 - - - - - 1.4979 - 0.59583 - 0.331175 - - - - - 0.72405 - 0.688228 - 0.331559 - - - - - 1.31414 - 0.688228 - 0.331559 - - - - - 1.01909 - 0.706882 - 0.333637 - - - - - 0.804269 - 0.700224 - 0.334398 - - - - - 1.23392 - 0.700224 - 0.334398 - - - - - 0.949773 - 0.706882 - 0.337601 - - - - - 1.08841 - 0.706882 - 0.337601 - - - - - 0.940958 - 0.706882 - 0.338105 - - - - - 1.09723 - 0.706882 - 0.338105 - - - - - 0.642373 - 0.671238 - 0.340372 - - - - - 1.39581 - 0.671238 - 0.340372 - - - - - 0.548598 - 0.407589 - 0.343114 - - - - - 1.48959 - 0.407589 - 0.343114 - - - - - 0.549565 - 0.624364 - 0.344503 - - - - - 1.48862 - 0.624364 - 0.344503 - - - - - 0.881246 - 0.706882 - 0.348439 - - - - - 1.15694 - 0.706882 - 0.348439 - - - - - 0.86384 - 0.706882 - 0.351451 - - - - - 1.17435 - 0.706882 - 0.351451 - - - - - 0.444177 - 3.71523 - 0.355605 - - - - - 1.59401 - 3.71523 - 0.355605 - - - - - 0.736102 - 0.700224 - 0.359644 - - - - - 1.30209 - 0.700224 - 0.359644 - - - - - 0.561463 - 0.649744 - 0.361597 - - - - - 1.47672 - 0.649744 - 0.361597 - - - - - 0.656007 - 0.688228 - 0.364936 - - - - - 1.38218 - 0.688228 - 0.364936 - - - - - 0.814176 - 0.706882 - 0.366034 - - - - - 1.22401 - 0.706882 - 0.366034 - - - - - 0.518361 - 0.407589 - 0.366519 - - - - - 1.51983 - 0.407589 - 0.366519 - - - - - 0.516934 - 2.90843 - 0.368825 - - - - - 1.52125 - 2.90843 - 0.368825 - - - - - 0.46192 - 0.499815 - 0.370065 - - - - - 1.57627 - 0.499815 - 0.370065 - - - - - 0.462087 - 0.532646 - 0.370259 - - - - - 1.5761 - 0.532646 - 0.370259 - - - - - 0.788747 - 0.706882 - 0.3735 - - - - - 1.24944 - 0.706882 - 0.3735 - - - - - 0.465371 - 0.467414 - 0.374084 - - - - - 1.57282 - 0.467414 - 0.374084 - - - - - 0.465867 - 0.56496 - 0.374661 - - - - - 1.57232 - 0.56496 - 0.374661 - - - - - 0.57564 - 0.671238 - 0.381967 - - - - - 1.46255 - 0.671238 - 0.381967 - - - - - 0.472339 - 0.436374 - 0.3822 - - - - - 1.56585 - 0.436374 - 0.3822 - - - - - 0.47315 - 0.59583 - 0.383145 - - - - - 1.56504 - 0.59583 - 0.383145 - - - - - 1.01909 - 0.891547 - 0.387359 - - - - - 0.749211 - 0.706882 - 0.390208 - - - - - 1.28898 - 0.706882 - 0.390208 - - - - - 0.769094 - 3.71523 - 0.39131 - - - - - 1.26909 - 3.71523 - 0.39131 - - - - - 0.947081 - 0.891547 - 0.391477 - - - - - 1.09111 - 0.891547 - 0.391477 - - - - - 0.670838 - 0.700224 - 0.391657 - - - - - 1.36735 - 0.700224 - 0.391657 - - - - - 0.482624 - 0.407589 - 0.394182 - - - - - 1.55556 - 0.407589 - 0.394182 - - - - - 0.483726 - 0.624364 - 0.395465 - - - - - 1.55446 - 0.624364 - 0.395465 - - - - - 0.479751 - 2.90843 - 0.396659 - - - - - 1.55844 - 2.90843 - 0.396659 - - - - - 0.75423 - 3.71523 - 0.397435 - - - - - 1.28396 - 3.71523 - 0.397435 - - - - - 0.210592 - 0 - 0.398709 - - - - - 1.8276 - 0 - 0.398709 - - - - - 0.876008 - 0.891547 - 0.403776 - - - - - 1.16218 - 0.891547 - 0.403776 - - - - - 0.716656 - 0.706882 - 0.403966 - - - - - 1.32153 - 0.706882 - 0.403966 - - - - - 0.59169 - 0.688228 - 0.405025 - - - - - 1.4465 - 0.688228 - 0.405025 - - - - - 0.497293 - 0.649744 - 0.411269 - - - - - 1.54089 - 0.649744 - 0.411269 - - - - - 0.686981 - 0.706882 - 0.420724 - - - - - 1.35121 - 0.706882 - 0.420724 - - - - - 0.8068 - 0.891547 - 0.424098 - - - - - 1.23139 - 0.891547 - 0.424098 - - - - - 0.971314 - 3.46523 - 0.427235 - - - - - 1.06687 - 3.46523 - 0.427235 - - - - - 0.399118 - 0.499815 - 0.429763 - - - - - 1.63907 - 0.499815 - 0.429763 - - - - - 0.399304 - 0.532646 - 0.429939 - - - - - 1.63888 - 0.532646 - 0.429939 - - - - - 0.513459 - 0.671238 - 0.430099 - - - - - 1.52473 - 0.671238 - 0.430099 - - - - - 0.609148 - 0.700224 - 0.430109 - - - - - 1.42904 - 0.700224 - 0.430109 - - - - - 1.01909 - 1.07829 - 0.433358 - - - - - 0.402957 - 0.467414 - 0.433412 - - - - - 1.63523 - 0.467414 - 0.433412 - - - - - 0.403509 - 0.56496 - 0.433937 - - - - - 1.63468 - 0.56496 - 0.433937 - - - - - 0.952325 - 1.07829 - 0.437176 - - - - - 1.08586 - 1.07829 - 0.437176 - - - - - 0.437268 - 0.407589 - 0.437296 - - - - - 1.60092 - 0.407589 - 0.437296 - - - - - 0.410711 - 0.436374 - 0.440782 - - - - - 1.62748 - 0.436374 - 0.440782 - - - - - 0.411613 - 0.59583 - 0.44164 - - - - - 1.62657 - 0.59583 - 0.44164 - - - - - 0.648508 - 0.706882 - 0.442451 - - - - - 1.38968 - 0.706882 - 0.442451 - - - - - 0.876992 - 3.46523 - 0.442563 - - - - - 1.1612 - 3.46523 - 0.442563 - - - - - 0.355605 - 3.71523 - 0.444177 - - - - - 1.68258 - 3.71523 - 0.444177 - - - - - 0.657939 - 3.71523 - 0.447972 - - - - - 1.38025 - 3.71523 - 0.447972 - - - - - 0.886427 - 1.07829 - 0.44858 - - - - - 1.15176 - 1.07829 - 0.44858 - - - - - 0.427569 - 2.90843 - 0.448842 - - - - - 1.61062 - 2.90843 - 0.448842 - - - - - 0.531758 - 0.688228 - 0.451416 - - - - - 1.50643 - 0.688228 - 0.451416 - - - - - 0.422155 - 0.407589 - 0.451662 - - - - - 1.61603 - 0.407589 - 0.451662 - - - - - 0.740359 - 0.891547 - 0.452176 - - - - - 1.29783 - 0.891547 - 0.452176 - - - - - 0.423382 - 0.624364 - 0.452827 - - - - - 1.61481 - 0.624364 - 0.452827 - - - - - 0.628089 - 0.706882 - 0.457287 - - - - - 1.4101 - 0.706882 - 0.457287 - - - - - 0.804229 - 3.46523 - 0.465548 - - - - - 1.23396 - 3.46523 - 0.465548 - - - - - 0.438477 - 0.649744 - 0.467177 - - - - - 1.59971 - 0.649744 - 0.467177 - - - - - 0.822258 - 1.07829 - 0.467422 - - - - - 1.21593 - 1.07829 - 0.467422 - - - - - 1.01909 - 1.26678 - 0.471556 - - - - - 0.551665 - 0.700224 - 0.474604 - - - - - 1.48652 - 0.700224 - 0.474604 - - - - - 0.956679 - 1.26678 - 0.475125 - - - - - 1.08151 - 1.26678 - 0.475125 - - - - - 0.396659 - 2.90843 - 0.479751 - - - - - 1.64153 - 2.90843 - 0.479751 - - - - - 0.456465 - 0.671238 - 0.484275 - - - - - 1.58172 - 0.671238 - 0.484275 - - - - - 0.895078 - 1.26678 - 0.485785 - - - - - 1.14311 - 1.26678 - 0.485785 - - - - - 0.677552 - 0.891547 - 0.487644 - - - - - 1.36064 - 0.891547 - 0.487644 - - - - - 0.585191 - 0.706882 - 0.488453 - - - - - 1.453 - 0.706882 - 0.488453 - - - - - 1.01909 - 2.79825 - 0.49123 - - - - - 0.980608 - 2.79825 - 0.493431 - - - - - 1.05758 - 2.79825 - 0.493431 - - - - - 0.760655 - 1.07829 - 0.493455 - - - - - 1.27753 - 1.07829 - 0.493455 - - - - - 0.958922 - 2.79825 - 0.494671 - - - - - 1.07927 - 2.79825 - 0.494671 - - - - - 0.342677 - 0.499815 - 0.495508 - - - - - 1.69551 - 0.499815 - 0.495508 - - - - - 0.34288 - 0.532646 - 0.495665 - - - - - 1.69531 - 0.532646 - 0.495665 - - - - - 0.346866 - 0.467414 - 0.498751 - - - - - 1.69132 - 0.467414 - 0.498751 - - - - - 0.347468 - 0.56496 - 0.499217 - - - - - 1.69072 - 0.56496 - 0.499217 - - - - - 0.573107 - 0.706882 - 0.499544 - - - - - 1.46508 - 0.706882 - 0.499544 - - - - - 1.01909 - 1.45669 - 0.501886 - - - - - 0.835094 - 1.26678 - 0.503398 - - - - - 1.20309 - 1.26678 - 0.503398 - - - - - 0.476827 - 0.688228 - 0.503631 - - - - - 1.56136 - 0.688228 - 0.503631 - - - - - 0.904364 - 2.79825 - 0.504112 - - - - - 1.13382 - 2.79825 - 0.504112 - - - - - 0.899534 - 2.79825 - 0.504948 - - - - - 1.13865 - 2.79825 - 0.504948 - - - - - 0.960137 - 1.45669 - 0.505257 - - - - - 1.07805 - 1.45669 - 0.505257 - - - - - 0.355325 - 0.436374 - 0.505299 - - - - - 1.68286 - 0.436374 - 0.505299 - - - - - 0.356309 - 0.59583 - 0.506061 - - - - - 1.68188 - 0.59583 - 0.506061 - - - - - 0.136533 - 0 - 0.509547 - - - - - 1.90165 - 0 - 0.509547 - - - - - 0.571001 - 3.71523 - 0.513302 - - - - - 1.46719 - 3.71523 - 0.513302 - - - - - 0.367812 - 0.407589 - 0.514964 - - - - - 1.67038 - 0.407589 - 0.514964 - - - - - 0.901948 - 1.45669 - 0.515327 - - - - - 1.13624 - 1.45669 - 0.515327 - - - - - 0.36915 - 0.624364 - 0.516 - - - - - 1.66904 - 0.624364 - 0.516 - - - - - 1.01909 - 2.60761 - 0.516671 - - - - - 0.365828 - 0.407589 - 0.517815 - - - - - 1.67236 - 0.407589 - 0.517815 - - - - - 0.961822 - 2.60761 - 0.519946 - - - - - 1.07637 - 2.60761 - 0.519946 - - - - - 0.841706 - 2.79825 - 0.521928 - - - - - 1.19648 - 2.79825 - 0.521928 - - - - - 1.01909 - 1.6477 - 0.524296 - - - - - 0.498978 - 0.700224 - 0.524687 - - - - - 1.53921 - 0.700224 - 0.524687 - - - - - 0.702421 - 1.07829 - 0.526341 - - - - - 1.33577 - 1.07829 - 0.526341 - - - - - 0.830737 - 2.79825 - 0.526564 - - - - - 1.20745 - 2.79825 - 0.526564 - - - - - 0.962691 - 1.6477 - 0.527521 - - - - - 1.0755 - 1.6477 - 0.527521 - - - - - 0.777508 - 1.26678 - 0.527734 - - - - - 1.26068 - 1.26678 - 0.527734 - - - - - 0.38562 - 0.649744 - 0.528748 - - - - - 1.65257 - 0.649744 - 0.528748 - - - - - 0.905297 - 2.60761 - 0.529728 - - - - - 1.13289 - 2.60761 - 0.529728 - - - - - 0.619198 - 0.891547 - 0.530041 - - - - - 1.41899 - 0.891547 - 0.530041 - - - - - 0.845286 - 1.45669 - 0.531964 - - - - - 1.1929 - 1.45669 - 0.531964 - - - - - 1.01909 - 2.41609 - 0.534167 - - - - - 0.907024 - 1.6477 - 0.537155 - - - - - 1.13116 - 1.6477 - 0.537155 - - - - - 0.963816 - 2.41609 - 0.537328 - - - - - 1.07437 - 2.41609 - 0.537328 - - - - - 1.01909 - 1.83948 - 0.538747 - - - - - 0.350796 - 2.90843 - 0.541018 - - - - - 1.68739 - 2.90843 - 0.541018 - - - - - 0.527531 - 0.706882 - 0.541373 - - - - - 1.51066 - 0.706882 - 0.541373 - - - - - 0.964338 - 1.83948 - 0.541878 - - - - - 1.07385 - 1.83948 - 0.541878 - - - - - 1.01909 - 2.22401 - 0.543687 - - - - - 0.405245 - 0.671238 - 0.54394 - - - - - 1.63294 - 0.671238 - 0.54394 - - - - - 0.280539 - 3.71523 - 0.544453 - - - - - 1.75765 - 3.71523 - 0.544453 - - - - - 1.01909 - 2.03169 - 0.545214 - - - - - 0.786189 - 2.79825 - 0.54539 - - - - - 1.252 - 2.79825 - 0.54539 - - - - - 0.850255 - 2.60761 - 0.54589 - - - - - 1.18793 - 2.60761 - 0.54589 - - - - - 0.964902 - 2.22401 - 0.546786 - - - - - 1.07329 - 2.22401 - 0.546786 - - - - - 0.909259 - 2.41609 - 0.546769 - - - - - 1.12893 - 2.41609 - 0.546769 - - - - - 0.522575 - 0.706882 - 0.547093 - - - - - 1.51561 - 0.706882 - 0.547093 - - - - - 0.965076 - 2.03169 - 0.548303 - - - - - 1.07311 - 2.03169 - 0.548303 - - - - - 0.910297 - 1.83948 - 0.55123 - - - - - 1.12789 - 1.83948 - 0.55123 - - - - - 0.852817 - 1.6477 - 0.553071 - - - - - 1.18537 - 1.6477 - 0.553071 - - - - - 1.01909 - 3.07104 - 0.554521 - - - - - 0.790891 - 1.45669 - 0.554952 - - - - - 1.2473 - 1.45669 - 0.554952 - - - - - 0.911416 - 2.22401 - 0.556042 - - - - - 1.12677 - 2.22401 - 0.556042 - - - - - 0.981711 - 3.07104 - 0.556027 - - - - - 1.05648 - 3.07104 - 0.556027 - - - - - 0.911762 - 2.03169 - 0.55753 - - - - - 1.12643 - 2.03169 - 0.55753 - - - - - 0.723072 - 1.26678 - 0.558475 - - - - - 1.31512 - 1.26678 - 0.558475 - - - - - 0.76117 - 2.79825 - 0.559518 - - - - - 1.27702 - 2.79825 - 0.559518 - - - - - 0.427461 - 0.688228 - 0.561136 - - - - - 1.61073 - 0.688228 - 0.561136 - - - - - 0.856134 - 2.41609 - 0.562368 - - - - - 1.18205 - 2.41609 - 0.562368 - - - - - 0.648316 - 1.07829 - 0.565651 - - - - - 1.38987 - 1.07829 - 0.565651 - - - - - 0.293177 - 0.499815 - 0.566627 - - - - - 1.74501 - 0.499815 - 0.566627 - - - - - 0.857674 - 1.83948 - 0.566682 - - - - - 1.18051 - 1.83948 - 0.566682 - - - - - 0.293395 - 0.532646 - 0.566762 - - - - - 1.74479 - 0.532646 - 0.566762 - - - - - 0.907914 - 3.07104 - 0.56802 - - - - - 1.13027 - 3.07104 - 0.56802 - - - - - 0.797414 - 2.60761 - 0.568221 - - - - - 1.24077 - 2.60761 - 0.568221 - - - - - 0.297673 - 0.467414 - 0.569429 - - - - - 1.74051 - 0.467414 - 0.569429 - - - - - 0.298319 - 0.56496 - 0.569831 - - - - - 1.73987 - 0.56496 - 0.569831 - - - - - 0.859334 - 2.22401 - 0.571334 - - - - - 1.17885 - 2.22401 - 0.571334 - - - - - 0.859847 - 2.03169 - 0.572773 - - - - - 1.17834 - 2.03169 - 0.572773 - - - - - 0.326238 - 2.90843 - 0.573823 - - - - - 1.71195 - 2.90843 - 0.573823 - - - - - 0.733709 - 2.79825 - 0.575027 - - - - - 1.30448 - 2.79825 - 0.575027 - - - - - 0.800778 - 1.6477 - 0.575063 - - - - - 1.23741 - 1.6477 - 0.575063 - - - - - 0.306751 - 0.436374 - 0.575087 - - - - - 1.73144 - 0.436374 - 0.575087 - - - - - 0.307807 - 0.59583 - 0.575745 - - - - - 1.73038 - 0.59583 - 0.575745 - - - - - 0.566056 - 0.891547 - 0.578814 - - - - - 1.47213 - 0.891547 - 0.578814 - - - - - 0.451628 - 0.700224 - 0.579843 - - - - - 1.58656 - 0.700224 - 0.579843 - - - - - 0.320152 - 0.407589 - 0.58344 - - - - - 1.71804 - 0.407589 - 0.58344 - - - - - 0.805134 - 2.41609 - 0.583921 - - - - - 1.23305 - 2.41609 - 0.583921 - - - - - 0.73947 - 1.45669 - 0.583991 - - - - - 1.29872 - 1.45669 - 0.583991 - - - - - 0.321587 - 0.624364 - 0.584335 - - - - - 1.7166 - 0.624364 - 0.584335 - - - - - 0.807155 - 1.83948 - 0.588031 - - - - - 1.23103 - 1.83948 - 0.588031 - - - - - 0.836997 - 3.07104 - 0.591696 - - - - - 1.20119 - 3.07104 - 0.591696 - - - - - 0.495669 - 3.71523 - 0.591731 - - - - - 1.54252 - 3.71523 - 0.591731 - - - - - 0.809334 - 2.22401 - 0.592464 - - - - - 1.22885 - 2.22401 - 0.592464 - - - - - 0.810008 - 2.03169 - 0.593835 - - - - - 1.22818 - 2.03169 - 0.593835 - - - - - 0.672495 - 1.26678 - 0.595222 - - - - - 1.36569 - 1.26678 - 0.595222 - - - - - 0.339263 - 0.649744 - 0.595352 - - - - - 1.69893 - 0.649744 - 0.595352 - - - - - 0.747464 - 2.60761 - 0.596429 - - - - - 1.29072 - 2.60761 - 0.596429 - - - - - 0.477105 - 0.706882 - 0.599568 - - - - - 1.56108 - 0.706882 - 0.599568 - - - - - 0.476279 - 0.706882 - 0.600521 - - - - - 1.56191 - 0.706882 - 0.600521 - - - - - 0.696851 - 2.79825 - 0.601806 - - - - - 1.34134 - 2.79825 - 0.601806 - - - - - 0.751586 - 1.6477 - 0.602843 - - - - - 1.2866 - 1.6477 - 0.602843 - - - - - 0.306658 - 0.407589 - 0.60775 - - - - - 1.73153 - 0.407589 - 0.60775 - - - - - 0.360324 - 0.671238 - 0.608479 - - - - - 1.67786 - 0.671238 - 0.608479 - - - - - 0.684949 - 2.79825 - 0.610452 - - - - - 1.35324 - 2.79825 - 0.610452 - - - - - 0.599044 - 1.07829 - 0.610873 - - - - - 1.43914 - 1.07829 - 0.610873 - - - - - 0.756923 - 2.41609 - 0.611147 - - - - - 1.28126 - 2.41609 - 0.611147 - - - - - 0.759399 - 1.83948 - 0.615 - - - - - 1.27879 - 1.83948 - 0.615 - - - - - 0.691695 - 1.45669 - 0.618702 - - - - - 1.34649 - 1.45669 - 0.618702 - - - - - 0.762069 - 2.22401 - 0.619156 - - - - - 1.27612 - 2.22401 - 0.619156 - - - - - 0.762895 - 2.03169 - 0.620441 - - - - - 1.27529 - 2.03169 - 0.620441 - - - - - 0.384166 - 0.688228 - 0.62334 - - - - - 1.65402 - 0.688228 - 0.62334 - - - - - 0.770795 - 3.07104 - 0.626441 - - - - - 1.26739 - 3.07104 - 0.626441 - - - - - 0.0775739 - 0 - 0.629103 - - - - - 1.96061 - 0 - 0.629103 - - - - - 0.701054 - 2.60761 - 0.630148 - - - - - 1.33713 - 2.60761 - 0.630148 - - - - - 0.518821 - 0.891547 - 0.633326 - - - - - 1.51937 - 0.891547 - 0.633326 - - - - - 0.70588 - 1.6477 - 0.63605 - - - - - 1.33231 - 1.6477 - 0.63605 - - - - - 0.626437 - 1.26678 - 0.637494 - - - - - 1.41175 - 1.26678 - 0.637494 - - - - - 0.410102 - 0.700224 - 0.639506 - - - - - 1.62809 - 0.700224 - 0.639506 - - - - - 0.251126 - 0.499815 - 0.642388 - - - - - 1.78706 - 0.499815 - 0.642388 - - - - - 0.251357 - 0.532646 - 0.642501 - - - - - 1.78683 - 0.532646 - 0.642501 - - - - - 0.28825 - 2.90843 - 0.643393 - - - - - 1.74994 - 2.90843 - 0.643393 - - - - - 0.712129 - 2.41609 - 0.643692 - - - - - 1.32606 - 2.41609 - 0.643692 - - - - - 0.255882 - 0.467414 - 0.644721 - - - - - 1.78231 - 0.467414 - 0.644721 - - - - - 0.256566 - 0.56496 - 0.645056 - - - - - 1.78162 - 0.56496 - 0.645056 - - - - - 0.715028 - 1.83948 - 0.647237 - - - - - 1.32316 - 1.83948 - 0.647237 - - - - - 0.265486 - 0.436374 - 0.649432 - - - - - 1.7727 - 0.436374 - 0.649432 - - - - - 0.266604 - 0.59583 - 0.64998 - - - - - 1.77158 - 0.59583 - 0.64998 - - - - - 0.718155 - 2.22401 - 0.651062 - - - - - 1.32003 - 2.22401 - 0.651062 - - - - - 0.640546 - 2.79825 - 0.651206 - - - - - 1.39764 - 2.79825 - 0.651206 - - - - - 0.719122 - 2.03169 - 0.652244 - - - - - 1.31907 - 2.03169 - 0.652244 - - - - - 0.63917 - 2.79825 - 0.652793 - - - - - 1.39902 - 2.79825 - 0.652793 - - - - - 0.220508 - 3.71523 - 0.654392 - - - - - 1.81768 - 3.71523 - 0.654392 - - - - - 0.279663 - 0.407589 - 0.656386 - - - - - 1.75852 - 0.407589 - 0.656386 - - - - - 0.4378 - 0.706882 - 0.656796 - - - - - 1.60039 - 0.706882 - 0.656796 - - - - - 0.281182 - 0.624364 - 0.657131 - - - - - 1.75701 - 0.624364 - 0.657131 - - - - - 0.648187 - 1.45669 - 0.658632 - - - - - 1.39 - 1.45669 - 0.658632 - - - - - 0.555248 - 1.07829 - 0.661415 - - - - - 1.48294 - 1.07829 - 0.661415 - - - - - 0.432104 - 0.706882 - 0.665126 - - - - - 1.60608 - 0.706882 - 0.665126 - - - - - 0.299881 - 0.649744 - 0.666303 - - - - - 1.73831 - 0.649744 - 0.666303 - - - - - 0.658791 - 2.60761 - 0.668937 - - - - - 1.3794 - 2.60761 - 0.668937 - - - - - 0.711025 - 3.07104 - 0.671356 - - - - - 1.32716 - 3.07104 - 0.671356 - - - - - 0.664258 - 1.6477 - 0.67425 - - - - - 1.37393 - 1.6477 - 0.67425 - - - - - 0.269922 - 2.90843 - 0.676959 - - - - - 1.76827 - 2.90843 - 0.676959 - - - - - 0.322163 - 0.671238 - 0.677233 - - - - - 1.71602 - 0.671238 - 0.677233 - - - - - 0.671337 - 2.41609 - 0.68113 - - - - - 1.36685 - 2.41609 - 0.68113 - - - - - 0.433893 - 3.71523 - 0.681228 - - - - - 1.60429 - 3.71523 - 0.681228 - - - - - 0.674622 - 1.83948 - 0.684322 - - - - - 1.36357 - 1.83948 - 0.684322 - - - - - 0.585497 - 1.26678 - 0.684741 - - - - - 1.45269 - 1.26678 - 0.684741 - - - - - 0.678164 - 2.22401 - 0.687765 - - - - - 1.36002 - 2.22401 - 0.687765 - - - - - 0.67926 - 2.03169 - 0.688829 - - - - - 1.35893 - 2.03169 - 0.688829 - - - - - 0.347386 - 0.688228 - 0.689605 - - - - - 1.6908 - 0.688228 - 0.689605 - - - - - 0.478108 - 0.891547 - 0.692867 - - - - - 1.56008 - 0.891547 - 0.692867 - - - - - 0.601077 - 2.79825 - 0.696755 - - - - - 1.43711 - 2.79825 - 0.696755 - - - - - 0.374824 - 0.700224 - 0.703064 - - - - - 1.66336 - 0.700224 - 0.703064 - - - - - 0.609516 - 1.45669 - 0.703262 - - - - - 1.42867 - 1.45669 - 0.703262 - - - - - 0.259099 - 0.407589 - 0.704307 - - - - - 1.77909 - 0.407589 - 0.704307 - - - - - 0.621224 - 2.60761 - 0.712291 - - - - - 1.41696 - 2.60761 - 0.712291 - - - - - 0.5904 - 2.79825 - 0.71237 - - - - - 1.44779 - 2.79825 - 0.71237 - - - - - 0.5175 - 1.07829 - 0.716621 - - - - - 1.52069 - 1.07829 - 0.716621 - - - - - 0.627262 - 1.6477 - 0.716946 - - - - - 1.41093 - 1.6477 - 0.716946 - - - - - 0.404413 - 0.706882 - 0.717605 - - - - - 1.63377 - 0.706882 - 0.717605 - - - - - 0.216956 - 0.499815 - 0.722015 - - - - - 1.82123 - 0.499815 - 0.722015 - - - - - 0.217196 - 0.532646 - 0.722104 - - - - - 1.82099 - 0.532646 - 0.722104 - - - - - 0.635079 - 2.41609 - 0.722974 - - - - - 1.40311 - 2.41609 - 0.722974 - - - - - 0.221923 - 0.467414 - 0.723854 - - - - - 1.81626 - 0.467414 - 0.723854 - - - - - 0.222637 - 0.56496 - 0.724119 - - - - - 1.81555 - 0.56496 - 0.724119 - - - - - 0.659233 - 3.07104 - 0.725277 - - - - - 1.37895 - 3.07104 - 0.725277 - - - - - 0.638706 - 1.83948 - 0.725771 - - - - - 1.39948 - 1.83948 - 0.725771 - - - - - 0.231955 - 0.436374 - 0.72757 - - - - - 1.80623 - 0.436374 - 0.72757 - - - - - 0.233122 - 0.59583 - 0.728002 - - - - - 1.80507 - 0.59583 - 0.728002 - - - - - 0.642618 - 2.22401 - 0.728788 - - - - - 1.39557 - 2.22401 - 0.728788 - - - - - 0.643828 - 2.03169 - 0.72972 - - - - - 1.39436 - 2.03169 - 0.72972 - - - - - 0.246762 - 0.407589 - 0.733054 - - - - - 1.79143 - 0.407589 - 0.733054 - - - - - 0.248349 - 0.624364 - 0.733641 - - - - - 1.78984 - 0.624364 - 0.733641 - - - - - 0.395581 - 0.706882 - 0.734345 - - - - - 1.64261 - 0.706882 - 0.734345 - - - - - 0.55021 - 1.26678 - 0.736347 - - - - - 1.48798 - 1.26678 - 0.736347 - - - - - 0.26788 - 0.649744 - 0.740875 - - - - - 1.77031 - 0.649744 - 0.740875 - - - - - 0.567058 - 2.79825 - 0.746506 - - - - - 1.47113 - 2.79825 - 0.746506 - - - - - 0.291153 - 0.671238 - 0.749494 - - - - - 1.74703 - 0.671238 - 0.749494 - - - - - 0.576183 - 1.45669 - 0.752009 - - - - - 1.462 - 1.45669 - 0.752009 - - - - - 0.241266 - 2.90843 - 0.753789 - - - - - 1.79692 - 2.90843 - 0.753789 - - - - - 0.0347248 - 0 - 0.755333 - - - - - 2.00346 - 0 - 0.755333 - - - - - 0.444447 - 0.891547 - 0.756662 - - - - - 1.59374 - 0.891547 - 0.756662 - - - - - 0.317498 - 0.688228 - 0.759251 - - - - - 1.72069 - 0.688228 - 0.759251 - - - - - 0.588845 - 2.60761 - 0.759644 - - - - - 1.44934 - 2.60761 - 0.759644 - - - - - 0.595374 - 1.6477 - 0.763581 - - - - - 1.44281 - 1.6477 - 0.763581 - - - - - 0.603827 - 2.41609 - 0.768679 - - - - - 1.43436 - 2.41609 - 0.768679 - - - - - 0.17752 - 3.71523 - 0.769094 - - - - - 0.39131 - 3.71523 - 0.769094 - - - - - 1.64688 - 3.71523 - 0.769094 - - - - - 1.86067 - 3.71523 - 0.769094 - - - - - 0.346157 - 0.700224 - 0.769866 - - - - - 1.69203 - 0.700224 - 0.769866 - - - - - 0.607749 - 1.83948 - 0.771044 - - - - - 1.43044 - 1.83948 - 0.771044 - - - - - 0.178187 - 3.69362 - 0.772131 - - - - - 1.86 - 3.69362 - 0.772131 - - - - - 0.61198 - 2.22401 - 0.773595 - - - - - 1.42621 - 2.22401 - 0.773595 - - - - - 0.613288 - 2.03169 - 0.774384 - - - - - 1.4249 - 2.03169 - 0.774384 - - - - - 0.48629 - 1.07829 - 0.77577 - - - - - 1.5519 - 1.07829 - 0.77577 - - - - - 0.550377 - 2.79825 - 0.77812 - - - - - 1.48781 - 2.79825 - 0.77812 - - - - - 0.377259 - 0.706882 - 0.781403 - - - - - 1.66093 - 0.706882 - 0.781403 - - - - - 0.616762 - 3.07104 - 0.786807 - - - - - 1.42143 - 3.07104 - 0.786807 - - - - - 0.228857 - 2.90843 - 0.787059 - - - - - 1.80933 - 2.90843 - 0.787059 - - - - - 0.521036 - 1.26678 - 0.791638 - - - - - 1.51715 - 1.26678 - 0.791638 - - - - - 0.538932 - 2.79825 - 0.799811 - - - - - 1.49926 - 2.79825 - 0.799811 - - - - - 0.548625 - 1.45669 - 0.804238 - - - - - 1.48956 - 1.45669 - 0.804238 - - - - - 0.185243 - 3.46523 - 0.804229 - - - - - 0.465548 - 3.46523 - 0.804229 - - - - - 1.57264 - 3.46523 - 0.804229 - - - - - 1.85294 - 3.46523 - 0.804229 - - - - - 0.191016 - 0.499815 - 0.80469 - - - - - 1.84717 - 0.499815 - 0.80469 - - - - - 0.191265 - 0.532646 - 0.804754 - - - - - 1.84692 - 0.532646 - 0.804754 - - - - - 0.223867 - 0.407589 - 0.806027 - - - - - 1.81432 - 0.407589 - 0.806027 - - - - - 0.196144 - 0.467414 - 0.806017 - - - - - 1.84204 - 0.467414 - 0.806017 - - - - - 0.196881 - 0.56496 - 0.806208 - - - - - 1.84131 - 0.56496 - 0.806208 - - - - - 0.367186 - 0.706882 - 0.807276 - - - - - 1.671 - 0.706882 - 0.807276 - - - - - 0.463895 - 3.46523 - 0.808535 - - - - - 1.57429 - 3.46523 - 0.808535 - - - - - 0.2065 - 0.436374 - 0.808699 - - - - - 1.83169 - 0.436374 - 0.808699 - - - - - 0.207705 - 0.59583 - 0.809011 - - - - - 1.83048 - 0.59583 - 0.809011 - - - - - 0.562074 - 2.60761 - 0.81038 - - - - - 1.47611 - 2.60761 - 0.81038 - - - - - 0.221787 - 0.407589 - 0.812657 - - - - - 1.8164 - 0.407589 - 0.812657 - - - - - 0.223425 - 0.624364 - 0.813081 - - - - - 1.81476 - 0.624364 - 0.813081 - - - - - 0.56901 - 1.6477 - 0.813547 - - - - - 1.46918 - 1.6477 - 0.813547 - - - - - 0.577989 - 2.41609 - 0.817648 - - - - - 1.4602 - 2.41609 - 0.817648 - - - - - 0.243587 - 0.649744 - 0.818301 - - - - - 1.7946 - 0.649744 - 0.818301 - - - - - 0.582155 - 1.83948 - 0.819551 - - - - - 1.45603 - 1.83948 - 0.819551 - - - - - 0.586648 - 2.22401 - 0.821603 - - - - - 1.45154 - 2.22401 - 0.821603 - - - - - 0.588038 - 2.03169 - 0.822237 - - - - - 1.45015 - 2.03169 - 0.822237 - - - - - 0.418278 - 0.891547 - 0.823877 - - - - - 1.61991 - 0.891547 - 0.823877 - - - - - 0.267613 - 0.671238 - 0.824522 - - - - - 1.77057 - 0.671238 - 0.824522 - - - - - 0.29481 - 0.688228 - 0.831564 - - - - - 1.74338 - 0.688228 - 0.831564 - - - - - 0.462026 - 1.07829 - 0.838091 - - - - - 1.57616 - 1.07829 - 0.838091 - - - - - 0.324396 - 0.700224 - 0.839224 - - - - - 1.71379 - 0.700224 - 0.839224 - - - - - 0.356596 - 0.706882 - 0.847565 - - - - - 1.68159 - 0.706882 - 0.847565 - - - - - 0.51986 - 2.79825 - 0.848796 - - - - - 1.51833 - 2.79825 - 0.848796 - - - - - 0.498354 - 1.26678 - 0.849895 - - - - - 1.53983 - 1.26678 - 0.849895 - - - - - 0.58471 - 3.07104 - 0.854354 - - - - - 1.45348 - 3.07104 - 0.854354 - - - - - 0.517065 - 2.79825 - 0.855975 - - - - - 1.52112 - 2.79825 - 0.855975 - - - - - 0.5272 - 1.45669 - 0.859268 - - - - - 1.51099 - 1.45669 - 0.859268 - - - - - 0.541262 - 2.60761 - 0.863837 - - - - - 1.49693 - 2.60761 - 0.863837 - - - - - 0.548513 - 1.6477 - 0.866193 - - - - - 1.48967 - 1.6477 - 0.866193 - - - - - 0.557901 - 2.41609 - 0.869243 - - - - - 1.48029 - 2.41609 - 0.869243 - - - - - 0.210845 - 2.90843 - 0.869857 - - - - - 1.82734 - 2.90843 - 0.869857 - - - - - 0.562257 - 1.83948 - 0.870658 - - - - - 1.47593 - 1.83948 - 0.870658 - - - - - 0.566955 - 2.22401 - 0.872185 - - - - - 1.47123 - 2.22401 - 0.872185 - - - - - 0.568408 - 2.03169 - 0.872657 - - - - - 1.46978 - 2.03169 - 0.872657 - - - - - 0.34729 - 0.706882 - 0.882969 - - - - - 1.6909 - 0.706882 - 0.882969 - - - - - 0.0087185 - 0 - 0.886075 - - - - - 2.02947 - 0 - 0.886075 - - - - - 0.173574 - 0.499815 - 0.889565 - - - - - 1.86461 - 0.499815 - 0.889565 - - - - - 0.173827 - 0.532646 - 0.889604 - - - - - 1.86436 - 0.532646 - 0.889604 - - - - - 0.17881 - 0.467414 - 0.890367 - - - - - 1.85938 - 0.467414 - 0.890367 - - - - - 0.179563 - 0.56496 - 0.890482 - - - - - 1.85863 - 0.56496 - 0.890482 - - - - - 0.189384 - 0.436374 - 0.891987 - - - - - 1.8488 - 0.436374 - 0.891987 - - - - - 0.190614 - 0.59583 - 0.892175 - - - - - 1.84757 - 0.59583 - 0.892175 - - - - - 0.399941 - 0.891547 - 0.893637 - - - - - 1.63825 - 0.891547 - 0.893637 - - - - - 0.204993 - 0.407589 - 0.894378 - - - - - 1.83319 - 0.407589 - 0.894378 - - - - - 0.206665 - 0.624364 - 0.894634 - - - - - 1.83152 - 0.624364 - 0.894634 - - - - - 0.166769 - 3.46523 - 0.896548 - - - - - 1.87142 - 3.46523 - 0.896548 - - - - - 0.227252 - 0.649744 - 0.897788 - - - - - 1.81094 - 0.649744 - 0.897788 - - - - - 0.437309 - 3.46523 - 0.900322 - - - - - 1.60088 - 3.46523 - 0.900322 - - - - - 0.251784 - 0.671238 - 0.901546 - - - - - 1.7864 - 0.671238 - 0.901546 - - - - - 0.203878 - 2.90843 - 0.901883 - - - - - 1.83431 - 2.90843 - 0.901883 - - - - - 0.445024 - 1.07829 - 0.902772 - - - - - 1.59316 - 1.07829 - 0.902772 - - - - - 0.279554 - 0.688228 - 0.9058 - - - - - 1.75863 - 0.688228 - 0.9058 - - - - - 0.482461 - 1.26678 - 0.910358 - - - - - 1.55573 - 1.26678 - 0.910358 - - - - - 0.309763 - 0.700224 - 0.910428 - - - - - 1.72842 - 0.700224 - 0.910428 - - - - - 0.203235 - 0.407589 - 0.911663 - - - - - 1.83495 - 0.407589 - 0.911663 - - - - - 0.501744 - 2.79825 - 0.914265 - - - - - 1.53644 - 2.79825 - 0.914265 - - - - - 0.34262 - 0.706882 - 0.915452 - - - - - 1.69557 - 0.706882 - 0.915452 - - - - - 0.512187 - 1.45669 - 0.916381 - - - - - 1.526 - 1.45669 - 0.916381 - - - - - 0.526678 - 2.60761 - 0.919317 - - - - - 1.51151 - 2.60761 - 0.919317 - - - - - 0.534151 - 1.6477 - 0.920832 - - - - - 1.50404 - 1.6477 - 0.920832 - - - - - 0.543826 - 2.41609 - 0.922792 - - - - - 1.49436 - 2.41609 - 0.922792 - - - - - 0.500448 - 2.79825 - 0.923277 - - - - - 1.53774 - 2.79825 - 0.923277 - - - - - 0.548314 - 1.83948 - 0.923702 - - - - - 1.48987 - 1.83948 - 0.923702 - - - - - 0.553156 - 2.22401 - 0.924683 - - - - - 1.48503 - 2.22401 - 0.924683 - - - - - 0.554653 - 2.03169 - 0.924986 - - - - - 1.48353 - 2.03169 - 0.924986 - - - - - 0.563909 - 3.07104 - 0.926167 - - - - - 1.47428 - 3.07104 - 0.926167 - - - - - 0.336152 - 0.706882 - 0.960436 - - - - - 1.70204 - 0.706882 - 0.960436 - - - - - 0.389676 - 0.891547 - 0.965033 - - - - - 1.64851 - 0.891547 - 0.965033 - - - - - 0.435507 - 1.07829 - 0.968969 - - - - - 1.60268 - 1.07829 - 0.968969 - - - - - 0.473564 - 1.26678 - 0.972238 - - - - - 1.56462 - 1.26678 - 0.972238 - - - - - 0.493166 - 2.79825 - 0.973922 - - - - - 1.54502 - 2.79825 - 0.973922 - - - - - 0.503783 - 1.45669 - 0.974834 - - - - - 1.5344 - 1.45669 - 0.974834 - - - - - 0.164808 - 0.499815 - 0.975769 - - - - - 1.87338 - 0.499815 - 0.975769 - - - - - 0.165064 - 0.532646 - 0.975782 - - - - - 1.87312 - 0.532646 - 0.975782 - - - - - 0.170098 - 0.467414 - 0.976038 - - - - - 1.86809 - 0.467414 - 0.976038 - - - - - 0.170859 - 0.56496 - 0.976076 - - - - - 1.86733 - 0.56496 - 0.976076 - - - - - 0.518514 - 2.60761 - 0.976099 - - - - - 1.51967 - 2.60761 - 0.976099 - - - - - 0.180782 - 0.436374 - 0.976579 - - - - - 1.85741 - 0.436374 - 0.976579 - - - - - 0.182025 - 0.59583 - 0.976642 - - - - - 1.85616 - 0.59583 - 0.976642 - - - - - 0.526111 - 1.6477 - 0.976751 - - - - - 1.51208 - 1.6477 - 0.976751 - - - - - 0.196552 - 0.407589 - 0.977379 - - - - - 1.84164 - 0.407589 - 0.977379 - - - - - 0.198242 - 0.624364 - 0.977465 - - - - - 1.83995 - 0.624364 - 0.977465 - - - - - 0.535946 - 2.41609 - 0.977596 - - - - - 1.50224 - 2.41609 - 0.977596 - - - - - 0.540509 - 1.83948 - 0.977988 - - - - - 1.49768 - 1.83948 - 0.977988 - - - - - 0.545431 - 2.22401 - 0.978411 - - - - - 1.49276 - 2.22401 - 0.978411 - - - - - 0.219043 - 0.649744 - 0.97852 - - - - - 1.81914 - 0.649744 - 0.97852 - - - - - 0.546953 - 2.03169 - 0.978542 - - - - - 1.49123 - 2.03169 - 0.978542 - - - - - 0.243829 - 0.671238 - 0.979777 - - - - - 1.79436 - 0.671238 - 0.979777 - - - - - 0.271887 - 0.688228 - 0.9812 - - - - - 1.7663 - 0.688228 - 0.9812 - - - - - 0.302409 - 0.700224 - 0.982748 - - - - - 1.73578 - 0.700224 - 0.982748 - - - - - 0.335467 - 0.706882 - 0.984403 - - - - - 1.70272 - 0.706882 - 0.984403 - - - - - 0.197638 - 2.90843 - 0.989128 - - - - - 1.84055 - 2.90843 - 0.989128 - - - - - 0.425791 - 3.46523 - 0.995184 - - - - - 1.6124 - 3.46523 - 0.995184 - - - - - 0.492426 - 2.79825 - 0.999839 - - - - - 1.54576 - 2.79825 - 0.999839 - - - - - 0.554897 - 3.07104 - 1.00039 - - - - - 1.48329 - 3.07104 - 1.00039 - - - - - 0 - 0 - 1.01909 - - - - - 2.03819 - 0 - 1.01909 - - - - - 0.196552 - 0.407589 - 1.01909 - - - - - 1.84164 - 0.407589 - 1.01909 - - - - - 0.195495 - 2.90843 - 1.01909 - - - - - 1.84269 - 2.90843 - 1.01909 - - - - - 0.158005 - 3.46523 - 1.01909 - - - - - 1.88018 - 3.46523 - 1.01909 - - - - - 0.545408 - 2.03169 - 1.03263 - - - - - 1.49278 - 2.03169 - 1.03263 - - - - - 0.543881 - 2.22401 - 1.03267 - - - - - 1.49431 - 2.22401 - 1.03267 - - - - - 0.538943 - 1.83948 - 1.03281 - - - - - 1.49924 - 1.83948 - 1.03281 - - - - - 0.534365 - 2.41609 - 1.03294 - - - - - 1.50382 - 2.41609 - 1.03294 - - - - - 0.524498 - 1.6477 - 1.03322 - - - - - 1.51369 - 1.6477 - 1.03322 - - - - - 0.516876 - 2.60761 - 1.03344 - - - - - 1.52131 - 2.60761 - 1.03344 - - - - - 0.502097 - 1.45669 - 1.03386 - - - - - 1.53609 - 1.45669 - 1.03386 - - - - - 0.491445 - 2.79825 - 1.03417 - - - - - 1.54674 - 2.79825 - 1.03417 - - - - - 0.471779 - 1.26678 - 1.03473 - - - - - 1.56641 - 1.26678 - 1.03473 - - - - - 0.433597 - 1.07829 - 1.03582 - - - - - 1.60459 - 1.07829 - 1.03582 - - - - - 0.387616 - 0.891547 - 1.03713 - - - - - 1.65057 - 0.891547 - 1.03713 - - - - - 0.333917 - 0.706882 - 1.03867 - - - - - 1.70427 - 0.706882 - 1.03867 - - - - - 0.335212 - 0.706882 - 1.05375 - - - - - 1.70298 - 0.706882 - 1.05375 - - - - - 0.302409 - 0.700224 - 1.05544 - - - - - 1.73578 - 0.700224 - 1.05544 - - - - - 0.271887 - 0.688228 - 1.05699 - - - - - 1.7663 - 0.688228 - 1.05699 - - - - - 0.243829 - 0.671238 - 1.05841 - - - - - 1.79436 - 0.671238 - 1.05841 - - - - - 0.219043 - 0.649744 - 1.05967 - - - - - 1.81914 - 0.649744 - 1.05967 - - - - - 0.198242 - 0.624364 - 1.06072 - - - - - 1.83995 - 0.624364 - 1.06072 - - - - - 0.196552 - 0.407589 - 1.06081 - - - - - 1.84164 - 0.407589 - 1.06081 - - - - - 0.182025 - 0.59583 - 1.06155 - - - - - 1.85616 - 0.59583 - 1.06155 - - - - - 0.180782 - 0.436374 - 1.06161 - - - - - 1.85741 - 0.436374 - 1.06161 - - - - - 0.170859 - 0.56496 - 1.06211 - - - - - 1.86733 - 0.56496 - 1.06211 - - - - - 0.170098 - 0.467414 - 1.06215 - - - - - 1.86809 - 0.467414 - 1.06215 - - - - - 0.164808 - 0.499815 - 1.06242 - - - - - 1.87338 - 0.499815 - 1.06242 - - - - - 0.165064 - 0.532646 - 1.06241 - - - - - 1.87312 - 0.532646 - 1.06241 - - - - - 0.557908 - 3.07104 - 1.07509 - - - - - 1.48028 - 3.07104 - 1.07509 - - - - - 0.495104 - 2.79825 - 1.07677 - - - - - 1.54308 - 2.79825 - 1.07677 - - - - - 0.550038 - 2.03169 - 1.08653 - - - - - 1.48815 - 2.03169 - 1.08653 - - - - - 0.548526 - 2.22401 - 1.08675 - - - - - 1.48966 - 2.22401 - 1.08675 - - - - - 0.543636 - 1.83948 - 1.08745 - - - - - 1.49455 - 1.83948 - 1.08745 - - - - - 0.539103 - 2.41609 - 1.08811 - - - - - 1.49908 - 2.41609 - 1.08811 - - - - - 0.529332 - 1.6477 - 1.08951 - - - - - 1.50886 - 1.6477 - 1.08951 - - - - - 0.521785 - 2.60761 - 1.0906 - - - - - 1.5164 - 2.60761 - 1.0906 - - - - - 0.429639 - 3.46523 - 1.09067 - - - - - 1.60855 - 3.46523 - 1.09067 - - - - - 0.50715 - 1.45669 - 1.0927 - - - - - 1.53104 - 1.45669 - 1.0927 - - - - - 0.496603 - 2.79825 - 1.09422 - - - - - 1.54158 - 2.79825 - 1.09422 - - - - - 0.477129 - 1.26678 - 1.09702 - - - - - 1.56106 - 1.26678 - 1.09702 - - - - - 0.43932 - 1.07829 - 1.10245 - - - - - 1.59887 - 1.07829 - 1.10245 - - - - - 0.393789 - 0.891547 - 1.109 - - - - - 1.6444 - 0.891547 - 1.109 - - - - - 0.20193 - 2.90843 - 1.10906 - - - - - 1.83626 - 2.90843 - 1.10906 - - - - - 0.340614 - 0.706882 - 1.11664 - - - - - 1.69757 - 0.706882 - 1.11664 - - - - - 0.341867 - 0.706882 - 1.12283 - - - - - 1.69632 - 0.706882 - 1.12283 - - - - - 0.203235 - 0.407589 - 1.12652 - - - - - 1.83495 - 0.407589 - 1.12652 - - - - - 0.309763 - 0.700224 - 1.12776 - - - - - 1.72842 - 0.700224 - 1.12776 - - - - - 0.279554 - 0.688228 - 1.13239 - - - - - 1.75863 - 0.688228 - 1.13239 - - - - - 0.203878 - 2.90843 - 1.1363 - - - - - 1.83431 - 2.90843 - 1.1363 - - - - - 0.251784 - 0.671238 - 1.13664 - - - - - 1.7864 - 0.671238 - 1.13664 - - - - - 0.560783 - 2.03169 - 1.13956 - - - - - 1.4774 - 2.03169 - 1.13956 - - - - - 0.559305 - 2.22401 - 1.13995 - - - - - 1.47888 - 2.22401 - 1.13995 - - - - - 0.227252 - 0.649744 - 1.1404 - - - - - 1.81094 - 0.649744 - 1.1404 - - - - - 0.554528 - 1.83948 - 1.14121 - - - - - 1.48366 - 1.83948 - 1.14121 - - - - - 0.166769 - 3.46523 - 1.14164 - - - - - 1.87142 - 3.46523 - 1.14164 - - - - - 0.550098 - 2.41609 - 1.14237 - - - - - 1.48809 - 2.41609 - 1.14237 - - - - - 0.206665 - 0.624364 - 1.14355 - - - - - 1.83152 - 0.624364 - 1.14355 - - - - - 0.204993 - 0.407589 - 1.14381 - - - - - 1.83319 - 0.407589 - 1.14381 - - - - - 0.540551 - 1.6477 - 1.14488 - - - - - 1.49764 - 1.6477 - 1.14488 - - - - - 0.190614 - 0.59583 - 1.14601 - - - - - 1.84757 - 0.59583 - 1.14601 - - - - - 0.189384 - 0.436374 - 1.1462 - - - - - 1.8488 - 0.436374 - 1.1462 - - - - - 0.533177 - 2.60761 - 1.14682 - - - - - 1.50501 - 2.60761 - 1.14682 - - - - - 0.179563 - 0.56496 - 1.14771 - - - - - 1.85863 - 0.56496 - 1.14771 - - - - - 0.17881 - 0.467414 - 1.14782 - - - - - 1.85938 - 0.467414 - 1.14782 - - - - - 0.572863 - 3.07104 - 1.14835 - - - - - 1.46532 - 3.07104 - 1.14835 - - - - - 0.173827 - 0.532646 - 1.14858 - - - - - 1.86436 - 0.532646 - 1.14858 - - - - - 0.173574 - 0.499815 - 1.14862 - - - - - 1.86461 - 0.499815 - 1.14862 - - - - - 0.518878 - 1.45669 - 1.15058 - - - - - 1.51931 - 1.45669 - 1.15058 - - - - - 0.0087185 - 0 - 1.15211 - - - - - 2.02947 - 0 - 1.15211 - - - - - 0.508433 - 2.79825 - 1.1526 - - - - - 1.52975 - 2.79825 - 1.1526 - - - - - 0.508572 - 2.79825 - 1.15329 - - - - - 1.52962 - 2.79825 - 1.15329 - - - - - 0.489544 - 1.26678 - 1.15829 - - - - - 1.54864 - 1.26678 - 1.15829 - - - - - 0.452601 - 1.07829 - 1.168 - - - - - 1.58559 - 1.07829 - 1.168 - - - - - 0.408113 - 0.891547 - 1.17969 - - - - - 1.63007 - 0.891547 - 1.17969 - - - - - 0.448753 - 3.46523 - 1.1843 - - - - - 1.58943 - 3.46523 - 1.1843 - - - - - 0.355656 - 0.706882 - 1.19088 - - - - - 1.68253 - 0.706882 - 1.19088 - - - - - 0.577503 - 2.03169 - 1.19102 - - - - - 1.46068 - 2.03169 - 1.19102 - - - - - 0.576079 - 2.22401 - 1.19158 - - - - - 1.46211 - 2.22401 - 1.19158 - - - - - 0.356157 - 0.706882 - 1.19335 - - - - - 1.68203 - 0.706882 - 1.19335 - - - - - 0.571476 - 1.83948 - 1.19337 - - - - - 1.46671 - 1.83948 - 1.19337 - - - - - 0.567208 - 2.41609 - 1.19503 - - - - - 1.47098 - 2.41609 - 1.19503 - - - - - 0.558009 - 1.6477 - 1.19861 - - - - - 1.48018 - 1.6477 - 1.19861 - - - - - 0.324396 - 0.700224 - 1.19896 - - - - - 1.71379 - 0.700224 - 1.19896 - - - - - 0.550904 - 2.60761 - 1.20138 - - - - - 1.48728 - 2.60761 - 1.20138 - - - - - 0.29481 - 0.688228 - 1.20662 - - - - - 1.74338 - 0.688228 - 1.20662 - - - - - 0.537126 - 1.45669 - 1.20674 - - - - - 1.50106 - 1.45669 - 1.20674 - - - - - 0.527197 - 2.79825 - 1.21061 - - - - - 1.51099 - 2.79825 - 1.21061 - - - - - 0.267613 - 0.671238 - 1.21367 - - - - - 1.77057 - 0.671238 - 1.21367 - - - - - 0.508863 - 1.26678 - 1.21774 - - - - - 1.52932 - 1.26678 - 1.21774 - - - - - 0.599375 - 3.07104 - 1.21825 - - - - - 1.43881 - 3.07104 - 1.21825 - - - - - 0.243587 - 0.649744 - 1.21989 - - - - - 1.7946 - 0.649744 - 1.21989 - - - - - 0.223425 - 0.624364 - 1.22511 - - - - - 1.81476 - 0.624364 - 1.22511 - - - - - 0.53389 - 2.79825 - 1.22526 - - - - - 1.5043 - 2.79825 - 1.22526 - - - - - 0.221787 - 0.407589 - 1.22553 - - - - - 1.8164 - 0.407589 - 1.22553 - - - - - 0.223633 - 2.90843 - 1.22711 - - - - - 1.81455 - 2.90843 - 1.22711 - - - - - 0.207705 - 0.59583 - 1.22918 - - - - - 1.83048 - 0.59583 - 1.22918 - - - - - 0.2065 - 0.436374 - 1.22949 - - - - - 1.83169 - 0.436374 - 1.22949 - - - - - 0.473268 - 1.07829 - 1.2316 - - - - - 1.56492 - 1.07829 - 1.2316 - - - - - 0.196881 - 0.56496 - 1.23198 - - - - - 1.84131 - 0.56496 - 1.23198 - - - - - 0.223867 - 0.407589 - 1.23216 - - - - - 1.81432 - 0.407589 - 1.23216 - - - - - 0.196144 - 0.467414 - 1.23217 - - - - - 1.84204 - 0.467414 - 1.23217 - - - - - 0.191265 - 0.532646 - 1.23343 - - - - - 1.84692 - 0.532646 - 1.23343 - - - - - 0.191016 - 0.499815 - 1.2335 - - - - - 1.84717 - 0.499815 - 1.2335 - - - - - 0.185243 - 3.46523 - 1.23396 - - - - - 0.465548 - 3.46523 - 1.23396 - - - - - 1.57264 - 3.46523 - 1.23396 - - - - - 1.85294 - 3.46523 - 1.23396 - - - - - 0.599979 - 2.03169 - 1.24024 - - - - - 1.43821 - 2.03169 - 1.24024 - - - - - 0.598628 - 2.22401 - 1.24095 - - - - - 1.43956 - 2.22401 - 1.24095 - - - - - 0.594259 - 1.83948 - 1.24326 - - - - - 1.44393 - 1.83948 - 1.24326 - - - - - 0.590209 - 2.41609 - 1.24539 - - - - - 1.44798 - 2.41609 - 1.24539 - - - - - 0.430403 - 0.891547 - 1.24829 - - - - - 1.60778 - 0.891547 - 1.24829 - - - - - 0.581478 - 1.6477 - 1.25 - - - - - 1.45671 - 1.6477 - 1.25 - - - - - 0.228857 - 2.90843 - 1.25113 - - - - - 1.80933 - 2.90843 - 1.25113 - - - - - 0.574735 - 2.60761 - 1.25356 - - - - - 1.46345 - 2.60761 - 1.25356 - - - - - 0.376833 - 0.706882 - 1.25698 - - - - - 1.66135 - 0.706882 - 1.25698 - - - - - 0.561658 - 1.45669 - 1.26046 - - - - - 1.47653 - 1.45669 - 1.26046 - - - - - 0.552234 - 2.79825 - 1.26543 - - - - - 1.48595 - 2.79825 - 1.26543 - - - - - 0.178187 - 3.69362 - 1.26606 - - - - - 1.86 - 3.69362 - 1.26606 - - - - - 0.380342 - 0.706882 - 1.26778 - - - - - 1.65785 - 0.706882 - 1.26778 - - - - - 0.346157 - 0.700224 - 1.26832 - - - - - 1.69203 - 0.700224 - 1.26832 - - - - - 0.17752 - 3.71523 - 1.26909 - - - - - 0.39131 - 3.71523 - 1.26909 - - - - - 1.64688 - 3.71523 - 1.26909 - - - - - 1.86067 - 3.71523 - 1.26909 - - - - - 0.534833 - 1.26678 - 1.27461 - - - - - 1.50335 - 1.26678 - 1.27461 - - - - - 0.317498 - 0.688228 - 1.27894 - - - - - 1.72069 - 0.688228 - 1.27894 - - - - - 0.0347248 - 0 - 1.28285 - - - - - 2.00346 - 0 - 1.28285 - - - - - 0.636758 - 3.07104 - 1.283 - - - - - 1.40143 - 3.07104 - 1.283 - - - - - 0.62792 - 2.03169 - 1.28657 - - - - - 1.41027 - 2.03169 - 1.28657 - - - - - 0.626659 - 2.22401 - 1.28743 - - - - - 1.41153 - 2.22401 - 1.28743 - - - - - 0.291153 - 0.671238 - 1.28869 - - - - - 1.74703 - 0.671238 - 1.28869 - - - - - 0.622581 - 1.83948 - 1.29022 - - - - - 1.41561 - 1.83948 - 1.29022 - - - - - 0.50105 - 1.07829 - 1.29244 - - - - - 1.53714 - 1.07829 - 1.29244 - - - - - 0.6188 - 2.41609 - 1.29281 - - - - - 1.41939 - 2.41609 - 1.29281 - - - - - 0.569244 - 2.79825 - 1.29364 - - - - - 1.46894 - 2.79825 - 1.29364 - - - - - 0.26788 - 0.649744 - 1.29731 - - - - - 1.77031 - 0.649744 - 1.29731 - - - - - 0.610652 - 1.6477 - 1.29838 - - - - - 1.42754 - 1.6477 - 1.29838 - - - - - 0.604358 - 2.60761 - 1.30268 - - - - - 1.43383 - 2.60761 - 1.30268 - - - - - 0.248349 - 0.624364 - 1.30455 - - - - - 1.78984 - 0.624364 - 1.30455 - - - - - 0.246762 - 0.407589 - 1.30513 - - - - - 1.79143 - 0.407589 - 1.30513 - - - - - 0.408604 - 3.71523 - 1.30877 - - - - - 1.62958 - 3.71523 - 1.30877 - - - - - 0.233122 - 0.59583 - 1.31019 - - - - - 1.80507 - 0.59583 - 1.31019 - - - - - 0.231955 - 0.436374 - 1.31062 - - - - - 1.80623 - 0.436374 - 1.31062 - - - - - 0.592153 - 1.45669 - 1.31103 - - - - - 1.44603 - 1.45669 - 1.31103 - - - - - 0.460366 - 0.891547 - 1.3139 - - - - - 1.57782 - 0.891547 - 1.3139 - - - - - 0.222637 - 0.56496 - 1.31407 - - - - - 1.81555 - 0.56496 - 1.31407 - - - - - 0.221923 - 0.467414 - 1.31433 - - - - - 1.81626 - 0.467414 - 1.31433 - - - - - 0.217196 - 0.532646 - 1.31608 - - - - - 1.82099 - 0.532646 - 1.31608 - - - - - 0.216956 - 0.499815 - 1.31617 - - - - - 1.82123 - 0.499815 - 1.31617 - - - - - 0.583357 - 2.79825 - 1.31704 - - - - - 1.45483 - 2.79825 - 1.31704 - - - - - 0.404467 - 0.706882 - 1.32061 - - - - - 1.63372 - 0.706882 - 1.32061 - - - - - 0.567116 - 1.26678 - 1.32815 - - - - - 1.47107 - 1.26678 - 1.32815 - - - - - 0.66096 - 2.03169 - 1.32942 - - - - - 1.37723 - 2.03169 - 1.32942 - - - - - 0.659805 - 2.22401 - 1.33042 - - - - - 1.37838 - 2.22401 - 1.33042 - - - - - 0.656072 - 1.83948 - 1.33365 - - - - - 1.38212 - 1.83948 - 1.33365 - - - - - 0.259099 - 0.407589 - 1.33388 - - - - - 1.77909 - 0.407589 - 1.33388 - - - - - 0.374824 - 0.700224 - 1.33512 - - - - - 1.66336 - 0.700224 - 1.33512 - - - - - 0.652611 - 2.41609 - 1.33665 - - - - - 1.38558 - 2.41609 - 1.33665 - - - - - 0.412853 - 0.706882 - 1.33897 - - - - - 1.62533 - 0.706882 - 1.33897 - - - - - 0.262289 - 2.90843 - 1.34076 - - - - - 1.7759 - 2.90843 - 1.34076 - - - - - 0.684043 - 3.07104 - 1.34091 - - - - - 1.35415 - 3.07104 - 1.34091 - - - - - 0.64515 - 1.6477 - 1.34312 - - - - - 1.39304 - 1.6477 - 1.34312 - - - - - 0.639388 - 2.60761 - 1.34811 - - - - - 1.3988 - 2.60761 - 1.34811 - - - - - 0.347386 - 0.688228 - 1.34858 - - - - - 1.6908 - 0.688228 - 1.34858 - - - - - 0.535585 - 1.07829 - 1.34971 - - - - - 1.5026 - 1.07829 - 1.34971 - - - - - 0.613745 - 2.79825 - 1.35645 - - - - - 1.42444 - 2.79825 - 1.35645 - - - - - 0.628214 - 1.45669 - 1.35779 - - - - - 1.40997 - 1.45669 - 1.35779 - - - - - 0.322163 - 0.671238 - 1.36095 - - - - - 1.71602 - 0.671238 - 1.36095 - - - - - 0.269922 - 2.90843 - 1.36123 - - - - - 1.76827 - 2.90843 - 1.36123 - - - - - 0.620161 - 2.79825 - 1.36477 - - - - - 1.41803 - 2.79825 - 1.36477 - - - - - 0.698668 - 2.03169 - 1.36822 - - - - - 1.33952 - 2.03169 - 1.36822 - - - - - 0.697636 - 2.22401 - 1.36935 - - - - - 1.34055 - 2.22401 - 1.36935 - - - - - 0.299881 - 0.649744 - 1.37188 - - - - - 1.73831 - 0.649744 - 1.37188 - - - - - 0.694295 - 1.83948 - 1.37299 - - - - - 1.34389 - 1.83948 - 1.37299 - - - - - 0.497614 - 0.891547 - 1.37567 - - - - - 1.54057 - 0.891547 - 1.37567 - - - - - 0.691199 - 2.41609 - 1.37636 - - - - - 1.34699 - 2.41609 - 1.37636 - - - - - 0.605292 - 1.26678 - 1.37765 - - - - - 1.4329 - 1.26678 - 1.37765 - - - - - 0.281182 - 0.624364 - 1.38106 - - - - - 1.75701 - 0.624364 - 1.38106 - - - - - 0.438279 - 0.706882 - 1.38114 - - - - - 1.59991 - 0.706882 - 1.38114 - - - - - 0.279663 - 0.407589 - 1.3818 - - - - - 1.75852 - 0.407589 - 1.3818 - - - - - 0.684524 - 1.6477 - 1.38363 - - - - - 1.35366 - 1.6477 - 1.38363 - - - - - 0.220508 - 3.71523 - 1.3838 - - - - - 1.81768 - 3.71523 - 1.3838 - - - - - 0.266604 - 0.59583 - 1.38821 - - - - - 1.77158 - 0.59583 - 1.38821 - - - - - 0.265486 - 0.436374 - 1.38876 - - - - - 1.7727 - 0.436374 - 1.38876 - - - - - 0.679368 - 2.60761 - 1.38925 - - - - - 1.35882 - 2.60761 - 1.38925 - - - - - 0.740005 - 3.07104 - 1.39049 - - - - - 1.29818 - 3.07104 - 1.39049 - - - - - 0.256566 - 0.56496 - 1.39313 - - - - - 1.78162 - 0.56496 - 1.39313 - - - - - 0.255882 - 0.467414 - 1.39347 - - - - - 1.78231 - 0.467414 - 1.39347 - - - - - 0.251357 - 0.532646 - 1.39569 - - - - - 1.78683 - 0.532646 - 1.39569 - - - - - 0.251126 - 0.499815 - 1.3958 - - - - - 1.78706 - 0.499815 - 1.3958 - - - - - 0.410102 - 0.700224 - 1.39868 - - - - - 1.62809 - 0.700224 - 1.39868 - - - - - 0.669371 - 1.45669 - 1.40014 - - - - - 1.36882 - 1.45669 - 1.40014 - - - - - 0.740555 - 2.03169 - 1.40247 - - - - - 1.29763 - 2.03169 - 1.40247 - - - - - 0.576424 - 1.07829 - 1.40267 - - - - - 1.46176 - 1.07829 - 1.40267 - - - - - 0.462978 - 3.71523 - 1.40295 - - - - - 1.57521 - 3.71523 - 1.40295 - - - - - 0.739657 - 2.22401 - 1.40371 - - - - - 1.29853 - 2.22401 - 1.40371 - - - - - 0.453269 - 0.706882 - 1.406 - - - - - 1.58492 - 0.706882 - 1.406 - - - - - 0.736753 - 1.83948 - 1.4077 - - - - - 1.30143 - 1.83948 - 1.4077 - - - - - 0.662166 - 2.79825 - 1.40799 - - - - - 1.37602 - 2.79825 - 1.40799 - - - - - 0.0775739 - 0 - 1.40908 - - - - - 1.96061 - 0 - 1.40908 - - - - - 0.734061 - 2.41609 - 1.41141 - - - - - 1.30413 - 2.41609 - 1.41141 - - - - - 0.667045 - 2.79825 - 1.41198 - - - - - 1.37114 - 2.79825 - 1.41198 - - - - - 0.384166 - 0.688228 - 1.41485 - - - - - 1.65402 - 0.688228 - 1.41485 - - - - - 0.728259 - 1.6477 - 1.41939 - - - - - 1.30993 - 1.6477 - 1.41939 - - - - - 0.648862 - 1.26678 - 1.42249 - - - - - 1.38933 - 1.26678 - 1.42249 - - - - - 0.723777 - 2.60761 - 1.42556 - - - - - 1.31441 - 2.60761 - 1.42556 - - - - - 0.360324 - 0.671238 - 1.42971 - - - - - 1.67786 - 0.671238 - 1.42971 - - - - - 0.306658 - 0.407589 - 1.43044 - - - - - 1.73153 - 0.407589 - 1.43044 - - - - - 0.803196 - 3.07104 - 1.43045 - - - - - 1.23499 - 3.07104 - 1.43045 - - - - - 0.786072 - 2.03169 - 1.43172 - - - - - 1.25212 - 2.03169 - 1.43172 - - - - - 0.54166 - 0.891547 - 1.43279 - - - - - 1.49653 - 0.891547 - 1.43279 - - - - - 0.785321 - 2.22401 - 1.43305 - - - - - 1.25287 - 2.22401 - 1.43305 - - - - - 0.782891 - 1.83948 - 1.43735 - - - - - 1.2553 - 1.83948 - 1.43735 - - - - - 0.715087 - 1.45669 - 1.43752 - - - - - 1.3231 - 1.45669 - 1.43752 - - - - - 0.477936 - 0.706882 - 1.43798 - - - - - 1.56025 - 0.706882 - 1.43798 - - - - - 0.780639 - 2.41609 - 1.44134 - - - - - 1.25755 - 2.41609 - 1.44134 - - - - - 0.339263 - 0.649744 - 1.44284 - - - - - 1.69893 - 0.649744 - 1.44284 - - - - - 0.708823 - 2.79825 - 1.44614 - - - - - 1.32936 - 2.79825 - 1.44614 - - - - - 0.31708 - 2.90843 - 1.44759 - - - - - 1.72111 - 2.90843 - 1.44759 - - - - - 0.775785 - 1.6477 - 1.44994 - - - - - 1.2624 - 1.6477 - 1.44994 - - - - - 0.623034 - 1.07829 - 1.45063 - - - - - 1.41515 - 1.07829 - 1.45063 - - - - - 0.321587 - 0.624364 - 1.45385 - - - - - 1.7166 - 0.624364 - 1.45385 - - - - - 0.320152 - 0.407589 - 1.45475 - - - - - 1.71804 - 0.407589 - 1.45475 - - - - - 0.834627 - 2.03169 - 1.4556 - - - - - 1.20356 - 2.03169 - 1.4556 - - - - - 0.772036 - 2.60761 - 1.45658 - - - - - 1.26615 - 2.60761 - 1.45658 - - - - - 0.834032 - 2.22401 - 1.457 - - - - - 1.20416 - 2.22401 - 1.457 - - - - - 0.451628 - 0.700224 - 1.45834 - - - - - 1.58656 - 0.700224 - 1.45834 - - - - - 0.728276 - 2.79825 - 1.45865 - - - - - 1.30991 - 2.79825 - 1.45865 - - - - - 0.871978 - 3.07104 - 1.45976 - - - - - 1.16621 - 3.07104 - 1.45976 - - - - - 0.832109 - 1.83948 - 1.46155 - - - - - 1.20608 - 1.83948 - 1.46155 - - - - - 0.697259 - 1.26678 - 1.46206 - - - - - 1.34093 - 1.26678 - 1.46206 - - - - - 0.307807 - 0.59583 - 1.46244 - - - - - 1.73038 - 0.59583 - 1.46244 - - - - - 0.306751 - 0.436374 - 1.4631 - - - - - 1.73144 - 0.436374 - 1.4631 - - - - - 0.326238 - 2.90843 - 1.46436 - - - - - 1.71195 - 2.90843 - 1.46436 - - - - - 0.830326 - 2.41609 - 1.46577 - - - - - 1.20786 - 2.41609 - 1.46577 - - - - - 0.50106 - 0.706882 - 1.46797 - - - - - 1.53713 - 0.706882 - 1.46797 - - - - - 0.298319 - 0.56496 - 1.46836 - - - - - 1.73987 - 0.56496 - 1.46836 - - - - - 0.297673 - 0.467414 - 1.46876 - - - - - 1.74051 - 0.467414 - 1.46876 - - - - - 0.764766 - 1.45669 - 1.46945 - - - - - 1.27342 - 1.45669 - 1.46945 - - - - - 0.293395 - 0.532646 - 1.47143 - - - - - 1.74479 - 0.532646 - 1.47143 - - - - - 0.293177 - 0.499815 - 1.47156 - - - - - 1.74501 - 0.499815 - 1.47156 - - - - - 0.885587 - 2.03169 - 1.47378 - - - - - 1.1526 - 2.03169 - 1.47378 - - - - - 0.826484 - 1.6477 - 1.47486 - - - - - 1.2117 - 1.6477 - 1.47486 - - - - - 0.885156 - 2.22401 - 1.47524 - - - - - 1.15303 - 2.22401 - 1.47524 - - - - - 0.427461 - 0.688228 - 1.47705 - - - - - 1.61073 - 0.688228 - 1.47705 - - - - - 0.944571 - 3.07104 - 1.47765 - - - - - 1.09362 - 3.07104 - 1.47765 - - - - - 0.759526 - 2.79825 - 1.47873 - - - - - 1.27866 - 2.79825 - 1.47873 - - - - - 0.883765 - 1.83948 - 1.47998 - - - - - 1.15442 - 1.83948 - 1.47998 - - - - - 0.823516 - 2.60761 - 1.48189 - - - - - 1.21467 - 2.60761 - 1.48189 - - - - - 1.01909 - 3.07104 - 1.48367 - - - - - 0.882474 - 2.41609 - 1.48438 - - - - - 1.15571 - 2.41609 - 1.48438 - - - - - 0.59193 - 0.891547 - 1.48452 - - - - - 1.44626 - 0.891547 - 1.48452 - - - - - 0.938287 - 2.03169 - 1.48603 - - - - - 1.0999 - 2.03169 - 1.48603 - - - - - 0.531755 - 3.71523 - 1.48719 - - - - - 1.50643 - 3.71523 - 1.48719 - - - - - 0.938026 - 2.22401 - 1.48754 - - - - - 1.10016 - 2.22401 - 1.48754 - - - - - 0.523052 - 0.706882 - 1.4906 - - - - - 1.51514 - 0.706882 - 1.4906 - - - - - 0.992041 - 2.03169 - 1.4922 - - - - - 1.04615 - 2.03169 - 1.4922 - - - - - 0.937184 - 1.83948 - 1.49241 - - - - - 1.101 - 1.83948 - 1.49241 - - - - - 0.674807 - 1.07829 - 1.49296 - - - - - 1.36338 - 1.07829 - 1.49296 - - - - - 0.991953 - 2.22401 - 1.49373 - - - - - 1.04623 - 2.22401 - 1.49373 - - - - - 0.280539 - 3.71523 - 1.49373 - - - - - 1.75765 - 3.71523 - 1.49373 - - - - - 0.879693 - 1.6477 - 1.49385 - - - - - 1.15849 - 1.6477 - 1.49385 - - - - - 0.405245 - 0.671238 - 1.49425 - - - - - 1.63294 - 0.671238 - 1.49425 - - - - - 0.81776 - 1.45669 - 1.49551 - - - - - 1.22043 - 1.45669 - 1.49551 - - - - - 0.749851 - 1.26678 - 1.49586 - - - - - 1.28834 - 1.26678 - 1.49586 - - - - - 0.795378 - 2.79825 - 1.49636 - - - - - 1.24281 - 2.79825 - 1.49636 - - - - - 0.936403 - 2.41609 - 1.49692 - - - - - 1.10178 - 2.41609 - 1.49692 - - - - - 0.991671 - 1.83948 - 1.49866 - - - - - 1.04652 - 1.83948 - 1.49866 - - - - - 0.877545 - 2.60761 - 1.50116 - - - - - 1.16064 - 2.60761 - 1.50116 - - - - - 0.99141 - 2.41609 - 1.50323 - - - - - 1.04678 - 2.41609 - 1.50323 - - - - - 0.813612 - 2.79825 - 1.50532 - - - - - 1.22458 - 2.79825 - 1.50532 - - - - - 0.93472 - 1.6477 - 1.50664 - - - - - 1.10347 - 1.6477 - 1.50664 - - - - - 0.38562 - 0.649744 - 1.50944 - - - - - 1.65257 - 0.649744 - 1.50944 - - - - - 0.990846 - 1.6477 - 1.51308 - - - - - 1.04734 - 1.6477 - 1.51308 - - - - - 0.498978 - 0.700224 - 1.5135 - - - - - 1.53921 - 0.700224 - 1.5135 - - - - - 0.93342 - 2.60761 - 1.51416 - - - - - 1.10477 - 2.60761 - 1.51416 - - - - - 0.873379 - 1.45669 - 1.51535 - - - - - 1.16481 - 1.45669 - 1.51535 - - - - - 0.365828 - 0.407589 - 1.52037 - - - - - 1.67236 - 0.407589 - 1.52037 - - - - - 0.990411 - 2.60761 - 1.5207 - - - - - 1.04778 - 2.60761 - 1.5207 - - - - - 0.36915 - 0.624364 - 1.52219 - - - - - 1.66904 - 0.624364 - 1.52219 - - - - - 0.367812 - 0.407589 - 1.52322 - - - - - 1.67038 - 0.407589 - 1.52322 - - - - - 0.805954 - 1.26678 - 1.52344 - - - - - 1.23223 - 1.26678 - 1.52344 - - - - - 0.555605 - 0.706882 - 1.5241 - - - - - 1.48258 - 0.706882 - 1.5241 - - - - - 0.86708 - 2.79825 - 1.5244 - - - - - 1.17111 - 2.79825 - 1.5244 - - - - - 0.870377 - 2.79825 - 1.52558 - - - - - 1.16781 - 2.79825 - 1.52558 - - - - - 0.136533 - 0 - 1.52864 - - - - - 1.90165 - 0 - 1.52864 - - - - - 0.930898 - 1.45669 - 1.52873 - - - - - 1.10729 - 1.45669 - 1.52873 - - - - - 0.731068 - 1.07829 - 1.52912 - - - - - 1.30712 - 1.07829 - 1.52912 - - - - - 0.647769 - 0.891547 - 1.53018 - - - - - 1.39042 - 0.891547 - 1.53018 - - - - - 0.356309 - 0.59583 - 1.53213 - - - - - 1.68188 - 0.59583 - 1.53213 - - - - - 0.355325 - 0.436374 - 1.53289 - - - - - 1.68286 - 0.436374 - 1.53289 - - - - - 0.476827 - 0.688228 - 1.53456 - - - - - 1.56136 - 0.688228 - 1.53456 - - - - - 0.989567 - 1.45669 - 1.53546 - - - - - 1.04862 - 1.45669 - 1.53546 - - - - - 0.573189 - 0.706882 - 1.53848 - - - - - 1.465 - 0.706882 - 1.53848 - - - - - 0.347468 - 0.56496 - 1.53897 - - - - - 1.69072 - 0.56496 - 1.53897 - - - - - 0.929081 - 2.79825 - 1.53923 - - - - - 1.10911 - 2.79825 - 1.53923 - - - - - 0.346866 - 0.467414 - 1.53944 - - - - - 1.69132 - 0.467414 - 1.53944 - - - - - 0.942304 - 2.79825 - 1.54074 - - - - - 1.09588 - 2.79825 - 1.54074 - - - - - 0.34288 - 0.532646 - 1.54252 - - - - - 1.69531 - 0.532646 - 1.54252 - - - - - 0.342677 - 0.499815 - 1.54268 - - - - - 1.69551 - 0.499815 - 1.54268 - - - - - 0.864834 - 1.26678 - 1.54445 - - - - - 1.17335 - 1.26678 - 1.54445 - - - - - 0.386844 - 2.90843 - 1.54532 - - - - - 1.65134 - 2.90843 - 1.54532 - - - - - 0.988959 - 2.79825 - 1.5461 - - - - - 1.01909 - 2.79825 - 1.5461 - - - - - 1.04923 - 2.79825 - 1.5461 - - - - - 0.456465 - 0.671238 - 1.55391 - - - - - 1.58172 - 0.671238 - 1.55391 - - - - - 0.396659 - 2.90843 - 1.55844 - - - - - 1.64153 - 2.90843 - 1.55844 - - - - - 0.791084 - 1.07829 - 1.55863 - - - - - 1.2471 - 1.07829 - 1.55863 - - - - - 0.925726 - 1.26678 - 1.55861 - - - - - 1.11246 - 1.26678 - 1.55861 - - - - - 0.613153 - 3.71523 - 1.5593 - - - - - 1.42503 - 3.71523 - 1.5593 - - - - - 0.551665 - 0.700224 - 1.56358 - - - - - 1.48652 - 0.700224 - 1.56358 - - - - - 0.987836 - 1.26678 - 1.56574 - - - - - 1.05035 - 1.26678 - 1.56574 - - - - - 0.708449 - 0.891547 - 1.56917 - - - - - 1.32974 - 0.891547 - 1.56917 - - - - - 0.438477 - 0.649744 - 1.57101 - - - - - 1.59971 - 0.649744 - 1.57101 - - - - - 0.804229 - 3.46523 - 1.57264 - - - - - 1.23396 - 3.46523 - 1.57264 - - - - - 0.616193 - 0.706882 - 1.57364 - - - - - 1.42199 - 0.706882 - 1.57364 - - - - - 0.854073 - 1.07829 - 1.5811 - - - - - 1.18411 - 1.07829 - 1.5811 - - - - - 0.627867 - 0.706882 - 1.58114 - - - - - 1.41032 - 0.706882 - 1.58114 - - - - - 0.831061 - 3.46523 - 1.58232 - - - - - 1.20713 - 3.46523 - 1.58232 - - - - - 0.423382 - 0.624364 - 1.58536 - - - - - 1.61481 - 0.624364 - 1.58536 - - - - - 0.422155 - 0.407589 - 1.58653 - - - - - 1.61603 - 0.407589 - 1.58653 - - - - - 0.531758 - 0.688228 - 1.58677 - - - - - 1.50643 - 0.688228 - 1.58677 - - - - - 0.355605 - 3.71523 - 1.59401 - - - - - 1.68258 - 3.71523 - 1.59401 - - - - - 0.919213 - 1.07829 - 1.59625 - - - - - 1.11897 - 1.07829 - 1.59625 - - - - - 0.411613 - 0.59583 - 1.59655 - - - - - 1.62657 - 0.59583 - 1.59655 - - - - - 0.410711 - 0.436374 - 1.59741 - - - - - 1.62748 - 0.436374 - 1.59741 - - - - - 0.437268 - 0.407589 - 1.60089 - - - - - 1.60092 - 0.407589 - 1.60089 - - - - - 0.773178 - 0.891547 - 1.601 - - - - - 1.26501 - 0.891547 - 1.601 - - - - - 0.985655 - 1.07829 - 1.60387 - - - - - 1.05253 - 1.07829 - 1.60387 - - - - - 0.403509 - 0.56496 - 1.60425 - - - - - 1.63468 - 0.56496 - 1.60425 - - - - - 0.402957 - 0.467414 - 1.60478 - - - - - 1.63523 - 0.467414 - 1.60478 - - - - - 0.923844 - 3.46523 - 1.60519 - - - - - 1.11434 - 3.46523 - 1.60519 - - - - - 0.513459 - 0.671238 - 1.60809 - - - - - 1.52473 - 0.671238 - 1.60809 - - - - - 0.609148 - 0.700224 - 1.60808 - - - - - 1.42904 - 0.700224 - 1.60808 - - - - - 0.399304 - 0.532646 - 1.60825 - - - - - 1.63888 - 0.532646 - 1.60825 - - - - - 0.399118 - 0.499815 - 1.60842 - - - - - 1.63907 - 0.499815 - 1.60842 - - - - - 1.01909 - 3.46523 - 1.61288 - - - - - 0.682032 - 0.706882 - 1.61595 - - - - - 1.35616 - 0.706882 - 1.61595 - - - - - 0.705066 - 3.71523 - 1.61742 - - - - - 1.33312 - 3.71523 - 1.61742 - - - - - 0.686559 - 0.706882 - 1.61818 - - - - - 1.35163 - 0.706882 - 1.61818 - - - - - 0.841113 - 0.891547 - 1.62524 - - - - - 1.19707 - 0.891547 - 1.62524 - - - - - 0.497293 - 0.649744 - 1.62692 - - - - - 1.54089 - 0.649744 - 1.62692 - - - - - 0.470101 - 2.90843 - 1.63188 - - - - - 1.56809 - 2.90843 - 1.63188 - - - - - 0.59169 - 0.688228 - 1.63316 - - - - - 1.4465 - 0.688228 - 1.63316 - - - - - 0.210592 - 0 - 1.63948 - - - - - 1.8276 - 0 - 1.63948 - - - - - 0.479751 - 2.90843 - 1.64153 - - - - - 1.55844 - 2.90843 - 1.64153 - - - - - 0.911369 - 0.891547 - 1.64158 - - - - - 1.12682 - 0.891547 - 1.64158 - - - - - 0.483726 - 0.624364 - 1.64272 - - - - - 1.55446 - 0.624364 - 1.64272 - - - - - 0.482624 - 0.407589 - 1.64401 - - - - - 1.55556 - 0.407589 - 1.64401 - - - - - 0.670838 - 0.700224 - 1.64653 - - - - - 1.36735 - 0.700224 - 1.64653 - - - - - 0.769094 - 3.71523 - 1.64688 - - - - - 1.26909 - 3.71523 - 1.64688 - - - - - 0.748871 - 0.706882 - 1.64881 - - - - - 1.28932 - 0.706882 - 1.64881 - - - - - 0.983029 - 0.891547 - 1.6498 - - - - - 1.05516 - 0.891547 - 1.6498 - - - - - 0.752266 - 0.706882 - 1.65048 - - - - - 1.28592 - 0.706882 - 1.65048 - - - - - 0.47315 - 0.59583 - 1.65504 - - - - - 1.56504 - 0.59583 - 1.65504 - - - - - 0.472339 - 0.436374 - 1.65599 - - - - - 1.56585 - 0.436374 - 1.65599 - - - - - 0.57564 - 0.671238 - 1.65622 - - - - - 1.46255 - 0.671238 - 1.65622 - - - - - 0.465867 - 0.56496 - 1.66353 - - - - - 1.57232 - 0.56496 - 1.66353 - - - - - 0.465371 - 0.467414 - 1.6641 - - - - - 1.57282 - 0.467414 - 1.6641 - - - - - 0.462087 - 0.532646 - 1.66793 - - - - - 1.5761 - 0.532646 - 1.66793 - - - - - 0.46192 - 0.499815 - 1.66812 - - - - - 1.57627 - 0.499815 - 1.66812 - - - - - 0.518361 - 0.407589 - 1.67167 - - - - - 1.51983 - 0.407589 - 1.67167 - - - - - 0.814097 - 0.706882 - 1.67255 - - - - - 1.22409 - 0.706882 - 1.67255 - - - - - 0.656007 - 0.688228 - 1.67325 - - - - - 1.38218 - 0.688228 - 1.67325 - - - - - 0.561463 - 0.649744 - 1.67659 - - - - - 1.47672 - 0.649744 - 1.67659 - - - - - 0.825978 - 0.706882 - 1.67678 - - - - - 1.21221 - 0.706882 - 1.67678 - - - - - 0.736102 - 0.700224 - 1.67854 - - - - - 1.30209 - 0.700224 - 1.67854 - - - - - 0.444177 - 3.71523 - 1.68258 - - - - - 1.59401 - 3.71523 - 1.68258 - - - - - 0.881314 - 0.706882 - 1.68965 - - - - - 1.15687 - 0.706882 - 1.68965 - - - - - 0.549565 - 0.624364 - 1.69368 - - - - - 1.48862 - 0.624364 - 1.69368 - - - - - 0.902208 - 0.706882 - 1.69451 - - - - - 1.13598 - 0.706882 - 1.69451 - - - - - 0.548598 - 0.407589 - 1.69507 - - - - - 1.48959 - 0.407589 - 1.69507 - - - - - 0.642373 - 0.671238 - 1.69782 - - - - - 1.39581 - 0.671238 - 1.69782 - - - - - 0.949868 - 0.706882 - 1.69998 - - - - - 1.08832 - 0.706882 - 1.69998 - - - - - 0.979962 - 0.706882 - 1.70343 - - - - - 1.01909 - 0.706882 - 1.70343 - - - - - 1.05823 - 0.706882 - 1.70343 - - - - - 0.804269 - 0.700224 - 1.70379 - - - - - 1.23392 - 0.700224 - 1.70379 - - - - - 0.565083 - 2.90843 - 1.70541 - - - - - 1.4731 - 2.90843 - 1.70541 - - - - - 0.72405 - 0.688228 - 1.70663 - - - - - 1.31414 - 0.688228 - 1.70663 - - - - - 0.540288 - 0.59583 - 1.70701 - - - - - 1.4979 - 0.59583 - 1.70701 - - - - - 0.539577 - 0.436374 - 1.70803 - - - - - 1.49861 - 0.436374 - 1.70803 - - - - - 0.573823 - 2.90843 - 1.71195 - - - - - 1.46436 - 2.90843 - 1.71195 - - - - - 0.533901 - 0.56496 - 1.71619 - - - - - 1.50429 - 0.56496 - 1.71619 - - - - - 0.533466 - 0.467414 - 1.71681 - - - - - 1.50472 - 0.467414 - 1.71681 - - - - - 0.630328 - 0.649744 - 1.71951 - - - - - 1.40786 - 0.649744 - 1.71951 - - - - - 0.530587 - 0.532646 - 1.72095 - - - - - 1.5076 - 0.532646 - 1.72095 - - - - - 0.53044 - 0.499815 - 1.72116 - - - - - 1.50775 - 0.499815 - 1.72116 - - - - - 0.874641 - 0.700224 - 1.72201 - - - - - 1.16355 - 0.700224 - 1.72201 - - - - - 0.607605 - 0.407589 - 1.73185 - - - - - 1.43058 - 0.407589 - 1.73185 - - - - - 0.712971 - 0.671238 - 1.73245 - - - - - 1.32522 - 0.671238 - 1.73245 - - - - - 0.79512 - 0.688228 - 1.73295 - - - - - 1.24307 - 0.688228 - 1.73295 - - - - - 0.946495 - 0.700224 - 1.73302 - - - - - 1.09169 - 0.700224 - 1.73302 - - - - - 1.01909 - 0.700224 - 1.7367 - - - - - 0.620221 - 0.624364 - 1.73773 - - - - - 1.41797 - 0.624364 - 1.73773 - - - - - 0.6194 - 0.407589 - 1.7392 - - - - - 1.41879 - 0.407589 - 1.7392 - - - - - 0.298486 - 0 - 1.7397 - - - - - 1.7397 - 0 - 1.7397 - - - - - 0.612341 - 0.59583 - 1.75192 - - - - - 1.42585 - 0.59583 - 1.75192 - - - - - 0.868489 - 0.688228 - 1.75195 - - - - - 1.1697 - 0.688228 - 1.75195 - - - - - 0.611737 - 0.436374 - 1.75301 - - - - - 1.42645 - 0.436374 - 1.75301 - - - - - 0.703184 - 0.649744 - 1.75525 - - - - - 1.335 - 0.649744 - 1.75525 - - - - - 0.544453 - 3.71523 - 1.75765 - - - - - 1.49373 - 3.71523 - 1.75765 - - - - - 0.78671 - 0.671238 - 1.75976 - - - - - 1.25148 - 0.671238 - 1.75976 - - - - - 0.606915 - 0.56496 - 1.7617 - - - - - 1.43127 - 0.56496 - 1.7617 - - - - - 0.606545 - 0.467414 - 1.76236 - - - - - 1.43164 - 0.467414 - 1.76236 - - - - - 0.943403 - 0.688228 - 1.76342 - - - - - 1.09478 - 0.688228 - 1.76342 - - - - - 0.669773 - 2.90843 - 1.76434 - - - - - 1.36841 - 2.90843 - 1.76434 - - - - - 0.604099 - 0.532646 - 1.76677 - - - - - 1.43409 - 0.532646 - 1.76677 - - - - - 0.603974 - 0.499815 - 1.767 - - - - - 1.43421 - 0.499815 - 1.767 - - - - - 1.01909 - 0.688228 - 1.76726 - - - - - 0.676959 - 2.90843 - 1.76827 - - - - - 1.36123 - 2.90843 - 1.76827 - - - - - 0.69497 - 0.624364 - 1.77439 - - - - - 1.34322 - 0.624364 - 1.77439 - - - - - 0.694303 - 0.407589 - 1.77595 - - - - - 1.34388 - 0.407589 - 1.77595 - - - - - 0.862834 - 0.671238 - 1.77946 - - - - - 1.17535 - 0.671238 - 1.77946 - - - - - 0.704077 - 0.407589 - 1.77957 - - - - - 1.33411 - 0.407589 - 1.77957 - - - - - 0.77928 - 0.649744 - 1.78343 - - - - - 1.25891 - 0.649744 - 1.78343 - - - - - 0.688567 - 0.59583 - 1.78931 - - - - - 1.34962 - 0.59583 - 1.78931 - - - - - 0.688076 - 0.436374 - 1.79046 - - - - - 1.35011 - 0.436374 - 1.79046 - - - - - 0.940561 - 0.671238 - 1.79137 - - - - - 1.09763 - 0.671238 - 1.79137 - - - - - 1.01909 - 0.671238 - 1.79536 - - - - - 0.684157 - 0.56496 - 1.79959 - - - - - 1.35403 - 0.56496 - 1.79959 - - - - - 0.683857 - 0.467414 - 1.80029 - - - - - 1.35433 - 0.467414 - 1.80029 - - - - - 0.773045 - 0.624364 - 1.80331 - - - - - 1.26514 - 0.624364 - 1.80331 - - - - - 0.857838 - 0.649744 - 1.80377 - - - - - 1.18035 - 0.649744 - 1.80377 - - - - - 0.772539 - 0.407589 - 1.80492 - - - - - 1.26565 - 0.407589 - 1.80492 - - - - - 0.681869 - 0.532646 - 1.80492 - - - - - 1.35632 - 0.532646 - 1.80492 - - - - - 0.681768 - 0.499815 - 1.80516 - - - - - 1.35642 - 0.499815 - 1.80516 - - - - - 0.781946 - 2.90843 - 1.80742 - - - - - 1.25624 - 2.90843 - 1.80742 - - - - - 0.787059 - 2.90843 - 1.80933 - - - - - 1.25113 - 2.90843 - 1.80933 - - - - - 0.806188 - 0.407589 - 1.81363 - - - - - 1.232 - 0.407589 - 1.81363 - - - - - 0.93805 - 0.649744 - 1.81606 - - - - - 1.10014 - 0.649744 - 1.81606 - - - - - 0.654392 - 3.71523 - 1.81768 - - - - - 1.3838 - 3.71523 - 1.81768 - - - - - 0.768184 - 0.59583 - 1.8188 - - - - - 1.27 - 0.59583 - 1.8188 - - - - - 0.767812 - 0.436374 - 1.81999 - - - - - 1.27038 - 0.436374 - 1.81999 - - - - - 1.01909 - 0.649744 - 1.82017 - - - - - 0.853645 - 0.624364 - 1.82418 - - - - - 1.18454 - 0.624364 - 1.82418 - - - - - 0.853305 - 0.407589 - 1.82583 - - - - - 1.18488 - 0.407589 - 1.82583 - - - - - 0.398709 - 0 - 1.8276 - - - - - 1.63948 - 0 - 1.8276 - - - - - 0.764837 - 0.56496 - 1.82947 - - - - - 1.27335 - 0.56496 - 1.82947 - - - - - 0.764609 - 0.467414 - 1.83019 - - - - - 1.27358 - 0.467414 - 1.83019 - - - - - 0.899217 - 2.90843 - 1.83373 - - - - - 1.13897 - 2.90843 - 1.83373 - - - - - 0.901883 - 2.90843 - 1.83431 - - - - - 1.1363 - 2.90843 - 1.83431 - - - - - 0.911725 - 0.407589 - 1.83478 - - - - - 1.12646 - 0.407589 - 1.83478 - - - - - 0.7631 - 0.532646 - 1.835 - - - - - 1.27509 - 0.532646 - 1.835 - - - - - 0.763023 - 0.499815 - 1.83525 - - - - - 1.27516 - 0.499815 - 1.83525 - - - - - 0.935943 - 0.624364 - 1.83678 - - - - - 1.10224 - 0.624364 - 1.83678 - - - - - 0.935772 - 0.407589 - 1.83847 - - - - - 1.10242 - 0.407589 - 1.83847 - - - - - 0.850377 - 0.59583 - 1.84008 - - - - - 1.18781 - 0.59583 - 1.84008 - - - - - 1.01909 - 0.624364 - 1.841 - - - - - 0.850126 - 0.436374 - 1.8413 - - - - - 1.18806 - 0.436374 - 1.8413 - - - - - 1.01909 - 0.407589 - 1.84269 - - - - - 1.01909 - 2.90843 - 1.84269 - - - - - 0.848126 - 0.56496 - 1.85103 - - - - - 1.19006 - 0.56496 - 1.85103 - - - - - 0.847973 - 0.467414 - 1.85178 - - - - - 1.19021 - 0.467414 - 1.85178 - - - - - 0.9343 - 0.59583 - 1.85294 - - - - - 1.10389 - 0.59583 - 1.85294 - - - - - 0.804229 - 3.46523 - 1.85294 - - - - - 1.23396 - 3.46523 - 1.85294 - - - - - 0.934174 - 0.436374 - 1.85418 - - - - - 1.10401 - 0.436374 - 1.85418 - - - - - 0.846958 - 0.532646 - 1.85672 - - - - - 1.19123 - 0.532646 - 1.85672 - - - - - 0.846906 - 0.499815 - 1.85697 - - - - - 1.19128 - 0.499815 - 1.85697 - - - - - 1.01909 - 0.59583 - 1.85724 - - - - - 1.01909 - 0.436374 - 1.85848 - - - - - 0.772131 - 3.69362 - 1.86 - - - - - 1.26606 - 3.69362 - 1.86 - - - - - 0.769094 - 3.71523 - 1.86067 - - - - - 1.26909 - 3.71523 - 1.86067 - - - - - 0.933169 - 0.56496 - 1.86406 - - - - - 1.10502 - 0.56496 - 1.86406 - - - - - 0.933092 - 0.467414 - 1.86482 - - - - - 1.1051 - 0.467414 - 1.86482 - - - - - 1.01909 - 0.56496 - 1.86842 - - - - - 1.01909 - 0.467414 - 1.86918 - - - - - 0.932582 - 0.532646 - 1.86983 - - - - - 1.10561 - 0.532646 - 1.86983 - - - - - 0.932556 - 0.499815 - 1.87009 - - - - - 1.10563 - 0.499815 - 1.87009 - - - - - 0.896548 - 3.46523 - 1.87142 - - - - - 1.14164 - 3.46523 - 1.87142 - - - - - 1.01909 - 0.532646 - 1.87422 - - - - - 1.01909 - 0.499815 - 1.87448 - - - - - 1.01909 - 3.46523 - 1.88018 - - - - - 0.509547 - 0 - 1.90165 - - - - - 1.52864 - 0 - 1.90165 - - - - - 0.629103 - 0 - 1.96061 - - - - - 1.40908 - 0 - 1.96061 - - - - - 0.755333 - 0 - 2.00346 - - - - - 1.28285 - 0 - 2.00346 - - - - - 0.886075 - 0 - 2.02947 - - - - - 1.15211 - 0 - 2.02947 - - - - - 1.01909 - 0 - 2.03819 - - - - - Default - - 1582 - 1606 - 1818 - - - 1157 - 1156 - 1273 - - - 1273 - 1156 - 1191 - - - 1273 - 1191 - 1430 - - - 1430 - 1191 - 1299 - - - 1430 - 1299 - 1551 - - - 1551 - 1299 - 1416 - - - 1551 - 1416 - 1640 - - - 1640 - 1416 - 1525 - - - 1640 - 1525 - 1704 - - - 1704 - 1525 - 1582 - - - 1704 - 1582 - 1762 - - - 1762 - 1582 - 1818 - - - 1155 - 1154 - 1190 - - - 1190 - 1154 - 1272 - - - 1190 - 1272 - 1298 - - - 1298 - 1272 - 1429 - - - 1298 - 1429 - 1415 - - - 1415 - 1429 - 1550 - - - 1415 - 1550 - 1524 - - - 1817 - 1605 - 1761 - - - 1761 - 1605 - 1581 - - - 1761 - 1581 - 1703 - - - 1703 - 1581 - 1524 - - - 1703 - 1524 - 1639 - - - 1639 - 1524 - 1550 - - - 686 - 687 - 574 - - - 574 - 687 - 602 - - - 235 - 24 - 247 - - - 247 - 24 - 82 - - - 247 - 82 - 292 - - - 292 - 82 - 138 - - - 292 - 138 - 363 - - - 363 - 138 - 202 - - - 363 - 202 - 494 - - - 494 - 202 - 290 - - - 494 - 290 - 602 - - - 602 - 290 - 412 - - - 602 - 412 - 574 - - - 536 - 361 - 249 - - - 1840 - 1838 - 1836 - - - 1308 - 1162 - 1052 - - - 7 - 5 - 69 - - - 69 - 5 - 149 - - - 69 - 149 - 148 - - - 1693 - 1593 - 1594 - - - 1594 - 1593 - 1479 - - - 1594 - 1479 - 1308 - - - 1308 - 1052 - 1594 - - - 1594 - 1052 - 914 - - - 1594 - 914 - 794 - - - 1163 - 1309 - 1053 - - - 1053 - 1309 - 1480 - - - 1053 - 1480 - 249 - - - 249 - 1480 - 1594 - - - 249 - 1594 - 536 - - - 536 - 1594 - 794 - - - 536 - 794 - 674 - - - 0 - 2 - 1 - - - 1 - 2 - 149 - - - 1 - 149 - 3 - - - 3 - 149 - 5 - - - 70 - 149 - 8 - - - 8 - 149 - 2 - - - 8 - 2 - 6 - - - 6 - 2 - 4 - - - 148 - 149 - 249 - - - 249 - 149 - 250 - - - 249 - 250 - 362 - - - 915 - 1053 - 795 - - - 795 - 1053 - 249 - - - 795 - 249 - 675 - - - 675 - 249 - 362 - - - 675 - 362 - 537 - - - 1772 - 1693 - 1834 - - - 1834 - 1693 - 1594 - - - 1834 - 1594 - 1836 - - - 1836 - 1594 - 1694 - - - 1836 - 1694 - 1840 - - - 1840 - 1694 - 1773 - - - 1840 - 1773 - 1835 - - - 1842 - 1840 - 1841 - - - 1841 - 1840 - 1835 - - - 1841 - 1835 - 1839 - - - 1839 - 1835 - 1837 - - - 366 - 373 - 250 - - - 1103 - 1115 - 1163 - - - 1725 - 1729 - 1837 - - - 1790 - 1782 - 1840 - - - 1469 - 1463 - 1593 - - - 740 - 724 - 674 - - - 119 - 115 - 5 - - - 3 - 86 - 71 - - - 3 - 71 - 1 - - - 5 - 115 - 3 - - - 3 - 115 - 92 - - - 3 - 92 - 86 - - - 119 - 5 - 150 - - - 150 - 5 - 7 - - - 150 - 7 - 163 - - - 163 - 7 - 194 - - - 194 - 7 - 69 - - - 194 - 69 - 212 - - - 249 - 372 - 365 - - - 249 - 365 - 148 - - - 365 - 300 - 148 - - - 148 - 300 - 280 - - - 148 - 280 - 69 - - - 69 - 280 - 241 - - - 69 - 241 - 212 - - - 372 - 249 - 482 - - - 482 - 249 - 361 - - - 482 - 361 - 514 - - - 514 - 361 - 576 - - - 576 - 361 - 536 - - - 576 - 536 - 622 - - - 674 - 724 - 536 - - - 536 - 724 - 656 - - - 536 - 656 - 622 - - - 740 - 674 - 810 - - - 810 - 674 - 794 - - - 810 - 794 - 832 - - - 832 - 794 - 884 - - - 884 - 794 - 914 - - - 884 - 914 - 916 - - - 1162 - 1114 - 1102 - - - 1162 - 1102 - 1052 - - - 1102 - 1030 - 1052 - - - 1052 - 1030 - 1006 - - - 1052 - 1006 - 914 - - - 914 - 1006 - 958 - - - 914 - 958 - 916 - - - 1114 - 1162 - 1188 - - - 1188 - 1162 - 1308 - - - 1188 - 1308 - 1220 - - - 1593 - 1463 - 1479 - - - 1463 - 1354 - 1479 - - - 1479 - 1354 - 1324 - - - 1479 - 1324 - 1308 - - - 1308 - 1324 - 1268 - - - 1308 - 1268 - 1220 - - - 1469 - 1593 - 1546 - - - 1546 - 1593 - 1693 - - - 1546 - 1693 - 1558 - - - 1558 - 1693 - 1601 - - - 1601 - 1693 - 1772 - - - 1601 - 1772 - 1627 - - - 1836 - 1728 - 1724 - - - 1836 - 1724 - 1834 - - - 1724 - 1691 - 1834 - - - 1834 - 1691 - 1680 - - - 1834 - 1680 - 1772 - - - 1772 - 1680 - 1647 - - - 1772 - 1647 - 1627 - - - 1728 - 1836 - 1747 - - - 1747 - 1836 - 1838 - - - 1747 - 1838 - 1757 - - - 1840 - 1782 - 1838 - - - 1838 - 1782 - 1770 - - - 1838 - 1770 - 1757 - - - 1790 - 1840 - 1797 - - - 1797 - 1840 - 1842 - - - 1797 - 1842 - 1791 - - - 1791 - 1842 - 1841 - - - 1791 - 1841 - 1783 - - - 1783 - 1841 - 1771 - - - 1771 - 1841 - 1839 - - - 1771 - 1839 - 1758 - - - 1837 - 1729 - 1839 - - - 1839 - 1729 - 1748 - - - 1839 - 1748 - 1758 - - - 1725 - 1837 - 1692 - - - 1692 - 1837 - 1835 - - - 1692 - 1835 - 1681 - - - 1681 - 1835 - 1648 - - - 1648 - 1835 - 1773 - - - 1648 - 1773 - 1628 - - - 1594 - 1464 - 1470 - - - 1594 - 1470 - 1694 - - - 1470 - 1547 - 1694 - - - 1694 - 1547 - 1559 - - - 1694 - 1559 - 1773 - - - 1773 - 1559 - 1602 - - - 1773 - 1602 - 1628 - - - 1464 - 1594 - 1355 - - - 1355 - 1594 - 1480 - - - 1355 - 1480 - 1325 - - - 1325 - 1480 - 1269 - - - 1269 - 1480 - 1309 - - - 1269 - 1309 - 1221 - - - 1163 - 1115 - 1309 - - - 1309 - 1115 - 1189 - - - 1309 - 1189 - 1221 - - - 1103 - 1163 - 1031 - - - 1031 - 1163 - 1053 - - - 1031 - 1053 - 1007 - - - 1007 - 1053 - 959 - - - 959 - 1053 - 915 - - - 959 - 915 - 917 - - - 675 - 725 - 741 - - - 675 - 741 - 795 - - - 741 - 811 - 795 - - - 795 - 811 - 833 - - - 795 - 833 - 915 - - - 915 - 833 - 885 - - - 915 - 885 - 917 - - - 725 - 675 - 657 - - - 657 - 675 - 537 - - - 657 - 537 - 623 - - - 250 - 373 - 362 - - - 373 - 483 - 362 - - - 362 - 483 - 515 - - - 362 - 515 - 537 - - - 537 - 515 - 577 - - - 537 - 577 - 623 - - - 366 - 250 - 301 - - - 301 - 250 - 149 - - - 301 - 149 - 281 - - - 281 - 149 - 242 - - - 242 - 149 - 70 - - - 242 - 70 - 213 - - - 6 - 116 - 120 - - - 6 - 120 - 8 - - - 120 - 151 - 8 - - - 8 - 151 - 164 - - - 8 - 164 - 70 - - - 70 - 164 - 195 - - - 70 - 195 - 213 - - - 116 - 6 - 93 - - - 93 - 6 - 4 - - - 93 - 4 - 87 - - - 2 - 62 - 4 - - - 4 - 62 - 72 - - - 4 - 72 - 87 - - - 71 - 61 - 1 - - - 1 - 61 - 51 - - - 1 - 51 - 0 - - - 0 - 51 - 44 - - - 0 - 44 - 2 - - - 2 - 44 - 52 - - - 2 - 52 - 62 - - - 254 - 260 - 240 - - - 287 - 307 - 272 - - - 328 - 345 - 316 - - - 406 - 424 - 380 - - - 793 - 837 - 831 - - - 857 - 905 - 903 - - - 945 - 947 - 949 - - - 1003 - 1005 - 1009 - - - 1381 - 1420 - 1458 - - - 1474 - 1496 - 1527 - - - 1537 - 1541 - 1573 - - - 1580 - 1584 - 1604 - - - 1653 - 1651 - 1686 - - - 1645 - 1641 - 1678 - - - 1635 - 1629 - 1656 - - - 1611 - 1607 - 1637 - - - 1302 - 1266 - 1290 - - - 1226 - 1210 - 1222 - - - 1150 - 1142 - 1152 - - - 1072 - 1066 - 1080 - - - 730 - 704 - 690 - - - 660 - 632 - 618 - - - 586 - 578 - 546 - - - 508 - 506 - 480 - - - 220 - 210 - 186 - - - 200 - 198 - 165 - - - 190 - 188 - 157 - - - 52 - 44 - 28 - - - 62 - 52 - 35 - - - 164 - 151 - 143 - - - 373 - 366 - 358 - - - 833 - 811 - 805 - - - 1115 - 1103 - 1109 - - - 1559 - 1547 - 1557 - - - 1729 - 1725 - 1735 - - - 1790 - 1797 - 1814 - - - 1782 - 1790 - 1807 - - - 1680 - 1691 - 1699 - - - 1463 - 1469 - 1489 - - - 1006 - 1030 - 1036 - - - 724 - 740 - 734 - - - 280 - 300 - 282 - - - 115 - 119 - 107 - - - 44 - 51 - 34 - - - 34 - 51 - 61 - - - 61 - 71 - 46 - - - 46 - 71 - 86 - - - 86 - 92 - 78 - - - 78 - 92 - 115 - - - 119 - 150 - 142 - - - 142 - 150 - 163 - - - 163 - 194 - 179 - - - 179 - 194 - 212 - - - 212 - 241 - 228 - - - 228 - 241 - 280 - - - 300 - 365 - 357 - - - 357 - 365 - 372 - - - 372 - 482 - 474 - - - 474 - 482 - 514 - - - 514 - 576 - 562 - - - 562 - 576 - 622 - - - 622 - 656 - 648 - - - 648 - 656 - 724 - - - 740 - 810 - 804 - - - 804 - 810 - 832 - - - 832 - 884 - 878 - - - 878 - 884 - 916 - - - 916 - 958 - 962 - - - 962 - 958 - 1006 - - - 1030 - 1102 - 1108 - - - 1108 - 1102 - 1114 - - - 1114 - 1188 - 1194 - - - 1194 - 1188 - 1220 - - - 1220 - 1268 - 1276 - - - 1276 - 1268 - 1324 - - - 1324 - 1354 - 1374 - - - 1374 - 1354 - 1463 - - - 1469 - 1546 - 1556 - - - 1556 - 1546 - 1558 - - - 1558 - 1601 - 1615 - - - 1615 - 1601 - 1627 - - - 1627 - 1647 - 1664 - - - 1664 - 1647 - 1680 - - - 1691 - 1724 - 1734 - - - 1734 - 1724 - 1728 - - - 1728 - 1747 - 1765 - - - 1765 - 1747 - 1757 - - - 1757 - 1770 - 1795 - - - 1795 - 1770 - 1782 - - - 1797 - 1791 - 1808 - - - 1808 - 1791 - 1783 - - - 1783 - 1771 - 1796 - - - 1796 - 1771 - 1758 - - - 1758 - 1748 - 1766 - - - 1766 - 1748 - 1729 - - - 1725 - 1692 - 1700 - - - 1700 - 1692 - 1681 - - - 1681 - 1648 - 1665 - - - 1665 - 1648 - 1628 - - - 1628 - 1602 - 1616 - - - 1616 - 1602 - 1559 - - - 1547 - 1470 - 1490 - - - 1490 - 1470 - 1464 - - - 1464 - 1355 - 1375 - - - 1375 - 1355 - 1325 - - - 1325 - 1269 - 1277 - - - 1277 - 1269 - 1221 - - - 1221 - 1189 - 1195 - - - 1195 - 1189 - 1115 - - - 1103 - 1031 - 1037 - - - 1037 - 1031 - 1007 - - - 1007 - 959 - 963 - - - 963 - 959 - 917 - - - 917 - 885 - 879 - - - 879 - 885 - 833 - - - 811 - 741 - 735 - - - 735 - 741 - 725 - - - 725 - 657 - 649 - - - 649 - 657 - 623 - - - 623 - 577 - 563 - - - 563 - 577 - 515 - - - 515 - 483 - 475 - - - 475 - 483 - 373 - - - 366 - 301 - 283 - - - 283 - 301 - 281 - - - 281 - 242 - 229 - - - 229 - 242 - 213 - - - 213 - 195 - 180 - - - 180 - 195 - 164 - - - 151 - 120 - 108 - - - 108 - 120 - 116 - - - 116 - 93 - 79 - - - 79 - 93 - 87 - - - 87 - 72 - 47 - - - 47 - 72 - 62 - - - 44 - 34 - 28 - - - 28 - 34 - 20 - - - 28 - 20 - 18 - - - 18 - 20 - 14 - - - 18 - 14 - 10 - - - 10 - 14 - 16 - - - 10 - 16 - 11 - - - 11 - 16 - 22 - - - 11 - 22 - 19 - - - 19 - 22 - 36 - - - 19 - 36 - 29 - - - 29 - 36 - 55 - - - 29 - 55 - 48 - - - 48 - 55 - 84 - - - 48 - 84 - 77 - - - 77 - 84 - 105 - - - 77 - 105 - 104 - - - 104 - 105 - 130 - - - 104 - 130 - 125 - - - 125 - 130 - 157 - - - 125 - 157 - 154 - - - 154 - 157 - 188 - - - 154 - 188 - 185 - - - 61 - 46 - 34 - - - 34 - 46 - 40 - - - 34 - 40 - 20 - - - 20 - 40 - 30 - - - 20 - 30 - 14 - - - 14 - 30 - 32 - - - 14 - 32 - 16 - - - 16 - 32 - 42 - - - 16 - 42 - 22 - - - 22 - 42 - 49 - - - 22 - 49 - 36 - - - 36 - 49 - 73 - - - 36 - 73 - 55 - - - 55 - 73 - 96 - - - 55 - 96 - 84 - - - 84 - 96 - 117 - - - 84 - 117 - 105 - - - 105 - 117 - 144 - - - 105 - 144 - 130 - - - 130 - 144 - 165 - - - 130 - 165 - 157 - - - 157 - 165 - 198 - - - 157 - 198 - 190 - - - 86 - 78 - 46 - - - 46 - 78 - 65 - - - 46 - 65 - 40 - - - 40 - 65 - 57 - - - 40 - 57 - 30 - - - 30 - 57 - 59 - - - 30 - 59 - 32 - - - 32 - 59 - 67 - - - 32 - 67 - 42 - - - 42 - 67 - 80 - - - 42 - 80 - 49 - - - 49 - 80 - 98 - - - 49 - 98 - 73 - - - 73 - 98 - 113 - - - 73 - 113 - 96 - - - 96 - 113 - 136 - - - 96 - 136 - 117 - - - 117 - 136 - 159 - - - 117 - 159 - 144 - - - 144 - 159 - 186 - - - 144 - 186 - 165 - - - 165 - 186 - 210 - - - 165 - 210 - 200 - - - 115 - 107 - 78 - - - 78 - 107 - 100 - - - 78 - 100 - 65 - - - 65 - 100 - 90 - - - 65 - 90 - 57 - - - 57 - 90 - 94 - - - 57 - 94 - 59 - - - 59 - 94 - 102 - - - 59 - 102 - 67 - - - 67 - 102 - 109 - - - 67 - 109 - 80 - - - 80 - 109 - 121 - - - 80 - 121 - 98 - - - 98 - 121 - 140 - - - 98 - 140 - 113 - - - 113 - 140 - 161 - - - 113 - 161 - 136 - - - 136 - 161 - 183 - - - 136 - 183 - 159 - - - 159 - 183 - 204 - - - 159 - 204 - 186 - - - 186 - 204 - 233 - - - 186 - 233 - 220 - - - 239 - 259 - 253 - - - 119 - 142 - 107 - - - 107 - 142 - 132 - - - 107 - 132 - 100 - - - 100 - 132 - 126 - - - 100 - 126 - 90 - - - 90 - 126 - 128 - - - 90 - 128 - 94 - - - 94 - 128 - 134 - - - 94 - 134 - 102 - - - 102 - 134 - 146 - - - 102 - 146 - 109 - - - 109 - 146 - 152 - - - 109 - 152 - 121 - - - 121 - 152 - 171 - - - 121 - 171 - 140 - - - 140 - 171 - 192 - - - 140 - 192 - 161 - - - 161 - 192 - 208 - - - 161 - 208 - 183 - - - 183 - 208 - 239 - - - 183 - 239 - 204 - - - 204 - 239 - 253 - - - 204 - 253 - 233 - - - 271 - 306 - 286 - - - 163 - 179 - 142 - - - 142 - 179 - 173 - - - 142 - 173 - 132 - - - 132 - 173 - 167 - - - 132 - 167 - 126 - - - 126 - 167 - 169 - - - 126 - 169 - 128 - - - 128 - 169 - 175 - - - 128 - 175 - 134 - - - 134 - 175 - 181 - - - 134 - 181 - 146 - - - 146 - 181 - 196 - - - 146 - 196 - 152 - - - 152 - 196 - 206 - - - 152 - 206 - 171 - - - 171 - 206 - 226 - - - 171 - 226 - 192 - - - 192 - 226 - 255 - - - 192 - 255 - 208 - - - 208 - 255 - 271 - - - 208 - 271 - 239 - - - 239 - 271 - 286 - - - 239 - 286 - 259 - - - 315 - 344 - 327 - - - 212 - 228 - 179 - - - 179 - 228 - 222 - - - 179 - 222 - 173 - - - 173 - 222 - 216 - - - 173 - 216 - 167 - - - 167 - 216 - 218 - - - 167 - 218 - 169 - - - 169 - 218 - 224 - - - 169 - 224 - 175 - - - 175 - 224 - 230 - - - 175 - 230 - 181 - - - 181 - 230 - 243 - - - 181 - 243 - 196 - - - 196 - 243 - 257 - - - 196 - 257 - 206 - - - 206 - 257 - 269 - - - 206 - 269 - 226 - - - 226 - 269 - 298 - - - 226 - 298 - 255 - - - 255 - 298 - 315 - - - 255 - 315 - 271 - - - 271 - 315 - 327 - - - 271 - 327 - 306 - - - 379 - 423 - 405 - - - 280 - 282 - 228 - - - 228 - 282 - 274 - - - 228 - 274 - 222 - - - 222 - 274 - 265 - - - 222 - 265 - 216 - - - 216 - 265 - 267 - - - 216 - 267 - 218 - - - 218 - 267 - 276 - - - 218 - 276 - 224 - - - 224 - 276 - 284 - - - 224 - 284 - 230 - - - 230 - 284 - 304 - - - 230 - 304 - 243 - - - 243 - 304 - 310 - - - 243 - 310 - 257 - - - 257 - 310 - 321 - - - 257 - 321 - 269 - - - 269 - 321 - 349 - - - 269 - 349 - 298 - - - 298 - 349 - 379 - - - 298 - 379 - 315 - - - 315 - 379 - 405 - - - 315 - 405 - 344 - - - 300 - 357 - 282 - - - 282 - 357 - 340 - - - 282 - 340 - 274 - - - 274 - 340 - 336 - - - 274 - 336 - 265 - - - 265 - 336 - 338 - - - 265 - 338 - 267 - - - 267 - 338 - 342 - - - 267 - 342 - 276 - - - 276 - 342 - 359 - - - 276 - 359 - 284 - - - 284 - 359 - 369 - - - 284 - 369 - 304 - - - 304 - 369 - 389 - - - 304 - 389 - 310 - - - 310 - 389 - 410 - - - 310 - 410 - 321 - - - 321 - 410 - 444 - - - 321 - 444 - 349 - - - 349 - 444 - 480 - - - 349 - 480 - 379 - - - 379 - 480 - 506 - - - 379 - 506 - 423 - - - 372 - 474 - 357 - - - 357 - 474 - 460 - - - 357 - 460 - 340 - - - 340 - 460 - 450 - - - 340 - 450 - 336 - - - 336 - 450 - 454 - - - 336 - 454 - 338 - - - 338 - 454 - 462 - - - 338 - 462 - 342 - - - 342 - 462 - 476 - - - 342 - 476 - 359 - - - 359 - 476 - 488 - - - 359 - 488 - 369 - - - 369 - 488 - 502 - - - 369 - 502 - 389 - - - 389 - 502 - 516 - - - 389 - 516 - 410 - - - 410 - 516 - 532 - - - 410 - 532 - 444 - - - 444 - 532 - 546 - - - 444 - 546 - 480 - - - 480 - 546 - 578 - - - 480 - 578 - 508 - - - 514 - 562 - 474 - - - 474 - 562 - 556 - - - 474 - 556 - 460 - - - 460 - 556 - 548 - - - 460 - 548 - 450 - - - 450 - 548 - 550 - - - 450 - 550 - 454 - - - 454 - 550 - 558 - - - 454 - 558 - 462 - - - 462 - 558 - 564 - - - 462 - 564 - 476 - - - 476 - 564 - 580 - - - 476 - 580 - 488 - - - 488 - 580 - 588 - - - 488 - 588 - 502 - - - 502 - 588 - 598 - - - 502 - 598 - 516 - - - 516 - 598 - 612 - - - 516 - 612 - 532 - - - 532 - 612 - 618 - - - 532 - 618 - 546 - - - 546 - 618 - 632 - - - 546 - 632 - 586 - - - 622 - 648 - 562 - - - 562 - 648 - 640 - - - 562 - 640 - 556 - - - 556 - 640 - 634 - - - 556 - 634 - 548 - - - 548 - 634 - 636 - - - 548 - 636 - 550 - - - 550 - 636 - 642 - - - 550 - 642 - 558 - - - 558 - 642 - 650 - - - 558 - 650 - 564 - - - 564 - 650 - 658 - - - 564 - 658 - 580 - - - 580 - 658 - 664 - - - 580 - 664 - 588 - - - 588 - 664 - 668 - - - 588 - 668 - 598 - - - 598 - 668 - 678 - - - 598 - 678 - 612 - - - 612 - 678 - 690 - - - 612 - 690 - 618 - - - 618 - 690 - 704 - - - 618 - 704 - 660 - - - 724 - 734 - 648 - - - 648 - 734 - 726 - - - 648 - 726 - 640 - - - 640 - 726 - 720 - - - 640 - 720 - 634 - - - 634 - 720 - 722 - - - 634 - 722 - 636 - - - 636 - 722 - 728 - - - 636 - 728 - 642 - - - 642 - 728 - 736 - - - 642 - 736 - 650 - - - 650 - 736 - 742 - - - 650 - 742 - 658 - - - 658 - 742 - 748 - - - 658 - 748 - 664 - - - 664 - 748 - 758 - - - 664 - 758 - 668 - - - 668 - 758 - 760 - - - 668 - 760 - 678 - - - 678 - 760 - 764 - - - 678 - 764 - 690 - - - 690 - 764 - 766 - - - 690 - 766 - 730 - - - 830 - 836 - 792 - - - 740 - 804 - 734 - - - 734 - 804 - 800 - - - 734 - 800 - 726 - - - 726 - 800 - 796 - - - 726 - 796 - 720 - - - 720 - 796 - 798 - - - 720 - 798 - 722 - - - 722 - 798 - 802 - - - 722 - 802 - 728 - - - 728 - 802 - 806 - - - 728 - 806 - 736 - - - 736 - 806 - 812 - - - 736 - 812 - 742 - - - 742 - 812 - 816 - - - 742 - 816 - 748 - - - 748 - 816 - 820 - - - 748 - 820 - 758 - - - 758 - 820 - 826 - - - 758 - 826 - 760 - - - 760 - 826 - 830 - - - 760 - 830 - 764 - - - 764 - 830 - 792 - - - 764 - 792 - 766 - - - 902 - 904 - 856 - - - 832 - 878 - 804 - - - 804 - 878 - 872 - - - 804 - 872 - 800 - - - 800 - 872 - 868 - - - 800 - 868 - 796 - - - 796 - 868 - 870 - - - 796 - 870 - 798 - - - 798 - 870 - 874 - - - 798 - 874 - 802 - - - 802 - 874 - 880 - - - 802 - 880 - 806 - - - 806 - 880 - 886 - - - 806 - 886 - 812 - - - 812 - 886 - 894 - - - 812 - 894 - 816 - - - 816 - 894 - 898 - - - 816 - 898 - 820 - - - 820 - 898 - 900 - - - 820 - 900 - 826 - - - 826 - 900 - 902 - - - 826 - 902 - 830 - - - 830 - 902 - 856 - - - 830 - 856 - 836 - - - 948 - 946 - 944 - - - 916 - 962 - 878 - - - 878 - 962 - 966 - - - 878 - 966 - 872 - - - 872 - 966 - 968 - - - 872 - 968 - 868 - - - 868 - 968 - 970 - - - 868 - 970 - 870 - - - 870 - 970 - 964 - - - 870 - 964 - 874 - - - 874 - 964 - 960 - - - 874 - 960 - 880 - - - 880 - 960 - 956 - - - 880 - 956 - 886 - - - 886 - 956 - 954 - - - 886 - 954 - 894 - - - 894 - 954 - 952 - - - 894 - 952 - 898 - - - 898 - 952 - 950 - - - 898 - 950 - 900 - - - 900 - 950 - 948 - - - 900 - 948 - 902 - - - 902 - 948 - 944 - - - 902 - 944 - 904 - - - 1008 - 1004 - 1002 - - - 1006 - 1036 - 962 - - - 962 - 1036 - 1042 - - - 962 - 1042 - 966 - - - 966 - 1042 - 1048 - - - 966 - 1048 - 968 - - - 968 - 1048 - 1046 - - - 968 - 1046 - 970 - - - 970 - 1046 - 1040 - - - 970 - 1040 - 964 - - - 964 - 1040 - 1034 - - - 964 - 1034 - 960 - - - 960 - 1034 - 1028 - - - 960 - 1028 - 956 - - - 956 - 1028 - 1020 - - - 956 - 1020 - 954 - - - 954 - 1020 - 1014 - - - 954 - 1014 - 952 - - - 952 - 1014 - 1010 - - - 952 - 1010 - 950 - - - 950 - 1010 - 1008 - - - 950 - 1008 - 948 - - - 948 - 1008 - 1002 - - - 948 - 1002 - 946 - - - 1030 - 1108 - 1036 - - - 1036 - 1108 - 1116 - - - 1036 - 1116 - 1042 - - - 1042 - 1116 - 1120 - - - 1042 - 1120 - 1048 - - - 1048 - 1120 - 1118 - - - 1048 - 1118 - 1046 - - - 1046 - 1118 - 1112 - - - 1046 - 1112 - 1040 - - - 1040 - 1112 - 1106 - - - 1040 - 1106 - 1034 - - - 1034 - 1106 - 1098 - - - 1034 - 1098 - 1028 - - - 1028 - 1098 - 1096 - - - 1028 - 1096 - 1020 - - - 1020 - 1096 - 1090 - - - 1020 - 1090 - 1014 - - - 1014 - 1090 - 1084 - - - 1014 - 1084 - 1010 - - - 1010 - 1084 - 1080 - - - 1010 - 1080 - 1008 - - - 1008 - 1080 - 1066 - - - 1008 - 1066 - 1004 - - - 1114 - 1194 - 1108 - - - 1108 - 1194 - 1202 - - - 1108 - 1202 - 1116 - - - 1116 - 1202 - 1206 - - - 1116 - 1206 - 1120 - - - 1120 - 1206 - 1204 - - - 1120 - 1204 - 1118 - - - 1118 - 1204 - 1200 - - - 1118 - 1200 - 1112 - - - 1112 - 1200 - 1192 - - - 1112 - 1192 - 1106 - - - 1106 - 1192 - 1186 - - - 1106 - 1186 - 1098 - - - 1098 - 1186 - 1180 - - - 1098 - 1180 - 1096 - - - 1096 - 1180 - 1170 - - - 1096 - 1170 - 1090 - - - 1090 - 1170 - 1160 - - - 1090 - 1160 - 1084 - - - 1084 - 1160 - 1152 - - - 1084 - 1152 - 1080 - - - 1080 - 1152 - 1142 - - - 1080 - 1142 - 1072 - - - 1220 - 1276 - 1194 - - - 1194 - 1276 - 1284 - - - 1194 - 1284 - 1202 - - - 1202 - 1284 - 1288 - - - 1202 - 1288 - 1206 - - - 1206 - 1288 - 1286 - - - 1206 - 1286 - 1204 - - - 1204 - 1286 - 1282 - - - 1204 - 1282 - 1200 - - - 1200 - 1282 - 1274 - - - 1200 - 1274 - 1192 - - - 1192 - 1274 - 1264 - - - 1192 - 1264 - 1186 - - - 1186 - 1264 - 1254 - - - 1186 - 1254 - 1180 - - - 1180 - 1254 - 1244 - - - 1180 - 1244 - 1170 - - - 1170 - 1244 - 1236 - - - 1170 - 1236 - 1160 - - - 1160 - 1236 - 1222 - - - 1160 - 1222 - 1152 - - - 1152 - 1222 - 1210 - - - 1152 - 1210 - 1150 - - - 1324 - 1374 - 1276 - - - 1276 - 1374 - 1384 - - - 1276 - 1384 - 1284 - - - 1284 - 1384 - 1390 - - - 1284 - 1390 - 1288 - - - 1288 - 1390 - 1388 - - - 1288 - 1388 - 1286 - - - 1286 - 1388 - 1382 - - - 1286 - 1382 - 1282 - - - 1282 - 1382 - 1372 - - - 1282 - 1372 - 1274 - - - 1274 - 1372 - 1352 - - - 1274 - 1352 - 1264 - - - 1264 - 1352 - 1342 - - - 1264 - 1342 - 1254 - - - 1254 - 1342 - 1322 - - - 1254 - 1322 - 1244 - - - 1244 - 1322 - 1314 - - - 1244 - 1314 - 1236 - - - 1236 - 1314 - 1290 - - - 1236 - 1290 - 1222 - - - 1222 - 1290 - 1266 - - - 1222 - 1266 - 1226 - - - 1463 - 1489 - 1374 - - - 1374 - 1489 - 1501 - - - 1374 - 1501 - 1384 - - - 1384 - 1501 - 1507 - - - 1384 - 1507 - 1390 - - - 1390 - 1507 - 1505 - - - 1390 - 1505 - 1388 - - - 1388 - 1505 - 1497 - - - 1388 - 1497 - 1382 - - - 1382 - 1497 - 1487 - - - 1382 - 1487 - 1372 - - - 1372 - 1487 - 1467 - - - 1372 - 1467 - 1352 - - - 1352 - 1467 - 1453 - - - 1352 - 1453 - 1342 - - - 1342 - 1453 - 1433 - - - 1342 - 1433 - 1322 - - - 1322 - 1433 - 1398 - - - 1322 - 1398 - 1314 - - - 1314 - 1398 - 1362 - - - 1314 - 1362 - 1290 - - - 1290 - 1362 - 1338 - - - 1290 - 1338 - 1302 - - - 1457 - 1419 - 1380 - - - 1469 - 1556 - 1489 - - - 1489 - 1556 - 1566 - - - 1489 - 1566 - 1501 - - - 1501 - 1566 - 1576 - - - 1501 - 1576 - 1507 - - - 1507 - 1576 - 1574 - - - 1507 - 1574 - 1505 - - - 1505 - 1574 - 1564 - - - 1505 - 1564 - 1497 - - - 1497 - 1564 - 1554 - - - 1497 - 1554 - 1487 - - - 1487 - 1554 - 1544 - - - 1487 - 1544 - 1467 - - - 1467 - 1544 - 1532 - - - 1467 - 1532 - 1453 - - - 1453 - 1532 - 1516 - - - 1453 - 1516 - 1433 - - - 1433 - 1516 - 1491 - - - 1433 - 1491 - 1398 - - - 1398 - 1491 - 1457 - - - 1398 - 1457 - 1362 - - - 1362 - 1457 - 1380 - - - 1362 - 1380 - 1338 - - - 1526 - 1495 - 1473 - - - 1558 - 1615 - 1556 - - - 1556 - 1615 - 1621 - - - 1556 - 1621 - 1566 - - - 1566 - 1621 - 1625 - - - 1566 - 1625 - 1576 - - - 1576 - 1625 - 1623 - - - 1576 - 1623 - 1574 - - - 1574 - 1623 - 1619 - - - 1574 - 1619 - 1564 - - - 1564 - 1619 - 1613 - - - 1564 - 1613 - 1554 - - - 1554 - 1613 - 1599 - - - 1554 - 1599 - 1544 - - - 1544 - 1599 - 1587 - - - 1544 - 1587 - 1532 - - - 1532 - 1587 - 1570 - - - 1532 - 1570 - 1516 - - - 1516 - 1570 - 1548 - - - 1516 - 1548 - 1491 - - - 1491 - 1548 - 1526 - - - 1491 - 1526 - 1457 - - - 1457 - 1526 - 1473 - - - 1457 - 1473 - 1419 - - - 1572 - 1540 - 1536 - - - 1627 - 1664 - 1615 - - - 1615 - 1664 - 1670 - - - 1615 - 1670 - 1621 - - - 1621 - 1670 - 1676 - - - 1621 - 1676 - 1625 - - - 1625 - 1676 - 1674 - - - 1625 - 1674 - 1623 - - - 1623 - 1674 - 1668 - - - 1623 - 1668 - 1619 - - - 1619 - 1668 - 1662 - - - 1619 - 1662 - 1613 - - - 1613 - 1662 - 1643 - - - 1613 - 1643 - 1599 - - - 1599 - 1643 - 1633 - - - 1599 - 1633 - 1587 - - - 1587 - 1633 - 1617 - - - 1587 - 1617 - 1570 - - - 1570 - 1617 - 1591 - - - 1570 - 1591 - 1548 - - - 1548 - 1591 - 1572 - - - 1548 - 1572 - 1526 - - - 1526 - 1572 - 1536 - - - 1526 - 1536 - 1495 - - - 1603 - 1583 - 1579 - - - 1680 - 1699 - 1664 - - - 1664 - 1699 - 1709 - - - 1664 - 1709 - 1670 - - - 1670 - 1709 - 1717 - - - 1670 - 1717 - 1676 - - - 1676 - 1717 - 1715 - - - 1676 - 1715 - 1674 - - - 1674 - 1715 - 1707 - - - 1674 - 1707 - 1668 - - - 1668 - 1707 - 1695 - - - 1668 - 1695 - 1662 - - - 1662 - 1695 - 1689 - - - 1662 - 1689 - 1643 - - - 1643 - 1689 - 1672 - - - 1643 - 1672 - 1633 - - - 1633 - 1672 - 1649 - - - 1633 - 1649 - 1617 - - - 1617 - 1649 - 1631 - - - 1617 - 1631 - 1591 - - - 1591 - 1631 - 1603 - - - 1591 - 1603 - 1572 - - - 1572 - 1603 - 1579 - - - 1572 - 1579 - 1540 - - - 1691 - 1734 - 1699 - - - 1699 - 1734 - 1741 - - - 1699 - 1741 - 1709 - - - 1709 - 1741 - 1751 - - - 1709 - 1751 - 1717 - - - 1717 - 1751 - 1749 - - - 1717 - 1749 - 1715 - - - 1715 - 1749 - 1739 - - - 1715 - 1739 - 1707 - - - 1707 - 1739 - 1732 - - - 1707 - 1732 - 1695 - - - 1695 - 1732 - 1722 - - - 1695 - 1722 - 1689 - - - 1689 - 1722 - 1701 - - - 1689 - 1701 - 1672 - - - 1672 - 1701 - 1682 - - - 1672 - 1682 - 1649 - - - 1649 - 1682 - 1660 - - - 1649 - 1660 - 1631 - - - 1631 - 1660 - 1637 - - - 1631 - 1637 - 1603 - - - 1603 - 1637 - 1607 - - - 1603 - 1607 - 1583 - - - 1728 - 1765 - 1734 - - - 1734 - 1765 - 1776 - - - 1734 - 1776 - 1741 - - - 1741 - 1776 - 1786 - - - 1741 - 1786 - 1751 - - - 1751 - 1786 - 1784 - - - 1751 - 1784 - 1749 - - - 1749 - 1784 - 1774 - - - 1749 - 1774 - 1739 - - - 1739 - 1774 - 1763 - - - 1739 - 1763 - 1732 - - - 1732 - 1763 - 1743 - - - 1732 - 1743 - 1722 - - - 1722 - 1743 - 1730 - - - 1722 - 1730 - 1701 - - - 1701 - 1730 - 1705 - - - 1701 - 1705 - 1682 - - - 1682 - 1705 - 1684 - - - 1682 - 1684 - 1660 - - - 1660 - 1684 - 1656 - - - 1660 - 1656 - 1637 - - - 1637 - 1656 - 1629 - - - 1637 - 1629 - 1611 - - - 1757 - 1795 - 1765 - - - 1765 - 1795 - 1801 - - - 1765 - 1801 - 1776 - - - 1776 - 1801 - 1811 - - - 1776 - 1811 - 1786 - - - 1786 - 1811 - 1809 - - - 1786 - 1809 - 1784 - - - 1784 - 1809 - 1799 - - - 1784 - 1799 - 1774 - - - 1774 - 1799 - 1792 - - - 1774 - 1792 - 1763 - - - 1763 - 1792 - 1768 - - - 1763 - 1768 - 1743 - - - 1743 - 1768 - 1745 - - - 1743 - 1745 - 1730 - - - 1730 - 1745 - 1726 - - - 1730 - 1726 - 1705 - - - 1705 - 1726 - 1697 - - - 1705 - 1697 - 1684 - - - 1684 - 1697 - 1678 - - - 1684 - 1678 - 1656 - - - 1656 - 1678 - 1641 - - - 1656 - 1641 - 1635 - - - 1782 - 1807 - 1795 - - - 1795 - 1807 - 1821 - - - 1795 - 1821 - 1801 - - - 1801 - 1821 - 1827 - - - 1801 - 1827 - 1811 - - - 1811 - 1827 - 1825 - - - 1811 - 1825 - 1809 - - - 1809 - 1825 - 1819 - - - 1809 - 1819 - 1799 - - - 1799 - 1819 - 1803 - - - 1799 - 1803 - 1792 - - - 1792 - 1803 - 1788 - - - 1792 - 1788 - 1768 - - - 1768 - 1788 - 1759 - - - 1768 - 1759 - 1745 - - - 1745 - 1759 - 1736 - - - 1745 - 1736 - 1726 - - - 1726 - 1736 - 1711 - - - 1726 - 1711 - 1697 - - - 1697 - 1711 - 1686 - - - 1697 - 1686 - 1678 - - - 1678 - 1686 - 1651 - - - 1678 - 1651 - 1645 - - - 1790 - 1814 - 1807 - - - 1807 - 1814 - 1824 - - - 1807 - 1824 - 1821 - - - 1821 - 1824 - 1832 - - - 1821 - 1832 - 1827 - - - 1827 - 1832 - 1831 - - - 1827 - 1831 - 1825 - - - 1825 - 1831 - 1823 - - - 1825 - 1823 - 1819 - - - 1819 - 1823 - 1813 - - - 1819 - 1813 - 1803 - - - 1803 - 1813 - 1794 - - - 1803 - 1794 - 1788 - - - 1788 - 1794 - 1767 - - - 1788 - 1767 - 1759 - - - 1759 - 1767 - 1738 - - - 1759 - 1738 - 1736 - - - 1736 - 1738 - 1719 - - - 1736 - 1719 - 1711 - - - 1711 - 1719 - 1688 - - - 1711 - 1688 - 1686 - - - 1686 - 1688 - 1654 - - - 1686 - 1654 - 1653 - - - 1687 - 1652 - 1655 - - - 1797 - 1808 - 1814 - - - 1814 - 1808 - 1822 - - - 1814 - 1822 - 1824 - - - 1824 - 1822 - 1828 - - - 1824 - 1828 - 1832 - - - 1832 - 1828 - 1826 - - - 1832 - 1826 - 1831 - - - 1831 - 1826 - 1820 - - - 1831 - 1820 - 1823 - - - 1823 - 1820 - 1804 - - - 1823 - 1804 - 1813 - - - 1813 - 1804 - 1789 - - - 1813 - 1789 - 1794 - - - 1794 - 1789 - 1760 - - - 1794 - 1760 - 1767 - - - 1767 - 1760 - 1737 - - - 1767 - 1737 - 1738 - - - 1738 - 1737 - 1712 - - - 1738 - 1712 - 1719 - - - 1719 - 1712 - 1687 - - - 1719 - 1687 - 1688 - - - 1688 - 1687 - 1655 - - - 1688 - 1655 - 1654 - - - 1679 - 1642 - 1646 - - - 1783 - 1796 - 1808 - - - 1808 - 1796 - 1802 - - - 1808 - 1802 - 1822 - - - 1822 - 1802 - 1812 - - - 1822 - 1812 - 1828 - - - 1828 - 1812 - 1810 - - - 1828 - 1810 - 1826 - - - 1826 - 1810 - 1800 - - - 1826 - 1800 - 1820 - - - 1820 - 1800 - 1793 - - - 1820 - 1793 - 1804 - - - 1804 - 1793 - 1769 - - - 1804 - 1769 - 1789 - - - 1789 - 1769 - 1746 - - - 1789 - 1746 - 1760 - - - 1760 - 1746 - 1727 - - - 1760 - 1727 - 1737 - - - 1737 - 1727 - 1698 - - - 1737 - 1698 - 1712 - - - 1712 - 1698 - 1679 - - - 1712 - 1679 - 1687 - - - 1687 - 1679 - 1646 - - - 1687 - 1646 - 1652 - - - 1657 - 1630 - 1636 - - - 1758 - 1766 - 1796 - - - 1796 - 1766 - 1777 - - - 1796 - 1777 - 1802 - - - 1802 - 1777 - 1787 - - - 1802 - 1787 - 1812 - - - 1812 - 1787 - 1785 - - - 1812 - 1785 - 1810 - - - 1810 - 1785 - 1775 - - - 1810 - 1775 - 1800 - - - 1800 - 1775 - 1764 - - - 1800 - 1764 - 1793 - - - 1793 - 1764 - 1744 - - - 1793 - 1744 - 1769 - - - 1769 - 1744 - 1731 - - - 1769 - 1731 - 1746 - - - 1746 - 1731 - 1706 - - - 1746 - 1706 - 1727 - - - 1727 - 1706 - 1685 - - - 1727 - 1685 - 1698 - - - 1698 - 1685 - 1657 - - - 1698 - 1657 - 1679 - - - 1679 - 1657 - 1636 - - - 1679 - 1636 - 1642 - - - 1638 - 1608 - 1612 - - - 1729 - 1735 - 1766 - - - 1766 - 1735 - 1742 - - - 1766 - 1742 - 1777 - - - 1777 - 1742 - 1752 - - - 1777 - 1752 - 1787 - - - 1787 - 1752 - 1750 - - - 1787 - 1750 - 1785 - - - 1785 - 1750 - 1740 - - - 1785 - 1740 - 1775 - - - 1775 - 1740 - 1733 - - - 1775 - 1733 - 1764 - - - 1764 - 1733 - 1723 - - - 1764 - 1723 - 1744 - - - 1744 - 1723 - 1702 - - - 1744 - 1702 - 1731 - - - 1731 - 1702 - 1683 - - - 1731 - 1683 - 1706 - - - 1706 - 1683 - 1661 - - - 1706 - 1661 - 1685 - - - 1685 - 1661 - 1638 - - - 1685 - 1638 - 1657 - - - 1657 - 1638 - 1612 - - - 1657 - 1612 - 1630 - - - 1725 - 1700 - 1735 - - - 1735 - 1700 - 1710 - - - 1735 - 1710 - 1742 - - - 1742 - 1710 - 1718 - - - 1742 - 1718 - 1752 - - - 1752 - 1718 - 1716 - - - 1752 - 1716 - 1750 - - - 1750 - 1716 - 1708 - - - 1750 - 1708 - 1740 - - - 1740 - 1708 - 1696 - - - 1740 - 1696 - 1733 - - - 1733 - 1696 - 1690 - - - 1733 - 1690 - 1723 - - - 1723 - 1690 - 1673 - - - 1723 - 1673 - 1702 - - - 1702 - 1673 - 1650 - - - 1702 - 1650 - 1683 - - - 1683 - 1650 - 1632 - - - 1683 - 1632 - 1661 - - - 1661 - 1632 - 1604 - - - 1661 - 1604 - 1638 - - - 1638 - 1604 - 1584 - - - 1638 - 1584 - 1608 - - - 1681 - 1665 - 1700 - - - 1700 - 1665 - 1671 - - - 1700 - 1671 - 1710 - - - 1710 - 1671 - 1677 - - - 1710 - 1677 - 1718 - - - 1718 - 1677 - 1675 - - - 1718 - 1675 - 1716 - - - 1716 - 1675 - 1669 - - - 1716 - 1669 - 1708 - - - 1708 - 1669 - 1663 - - - 1708 - 1663 - 1696 - - - 1696 - 1663 - 1644 - - - 1696 - 1644 - 1690 - - - 1690 - 1644 - 1634 - - - 1690 - 1634 - 1673 - - - 1673 - 1634 - 1618 - - - 1673 - 1618 - 1650 - - - 1650 - 1618 - 1592 - - - 1650 - 1592 - 1632 - - - 1632 - 1592 - 1573 - - - 1632 - 1573 - 1604 - - - 1604 - 1573 - 1541 - - - 1604 - 1541 - 1580 - - - 1628 - 1616 - 1665 - - - 1665 - 1616 - 1622 - - - 1665 - 1622 - 1671 - - - 1671 - 1622 - 1626 - - - 1671 - 1626 - 1677 - - - 1677 - 1626 - 1624 - - - 1677 - 1624 - 1675 - - - 1675 - 1624 - 1620 - - - 1675 - 1620 - 1669 - - - 1669 - 1620 - 1614 - - - 1669 - 1614 - 1663 - - - 1663 - 1614 - 1600 - - - 1663 - 1600 - 1644 - - - 1644 - 1600 - 1588 - - - 1644 - 1588 - 1634 - - - 1634 - 1588 - 1571 - - - 1634 - 1571 - 1618 - - - 1618 - 1571 - 1549 - - - 1618 - 1549 - 1592 - - - 1592 - 1549 - 1527 - - - 1592 - 1527 - 1573 - - - 1573 - 1527 - 1496 - - - 1573 - 1496 - 1537 - - - 1559 - 1557 - 1616 - - - 1616 - 1557 - 1567 - - - 1616 - 1567 - 1622 - - - 1622 - 1567 - 1577 - - - 1622 - 1577 - 1626 - - - 1626 - 1577 - 1575 - - - 1626 - 1575 - 1624 - - - 1624 - 1575 - 1565 - - - 1624 - 1565 - 1620 - - - 1620 - 1565 - 1555 - - - 1620 - 1555 - 1614 - - - 1614 - 1555 - 1545 - - - 1614 - 1545 - 1600 - - - 1600 - 1545 - 1533 - - - 1600 - 1533 - 1588 - - - 1588 - 1533 - 1517 - - - 1588 - 1517 - 1571 - - - 1571 - 1517 - 1492 - - - 1571 - 1492 - 1549 - - - 1549 - 1492 - 1458 - - - 1549 - 1458 - 1527 - - - 1527 - 1458 - 1420 - - - 1527 - 1420 - 1474 - - - 1547 - 1490 - 1557 - - - 1557 - 1490 - 1502 - - - 1557 - 1502 - 1567 - - - 1567 - 1502 - 1508 - - - 1567 - 1508 - 1577 - - - 1577 - 1508 - 1506 - - - 1577 - 1506 - 1575 - - - 1575 - 1506 - 1498 - - - 1575 - 1498 - 1565 - - - 1565 - 1498 - 1488 - - - 1565 - 1488 - 1555 - - - 1555 - 1488 - 1468 - - - 1555 - 1468 - 1545 - - - 1545 - 1468 - 1454 - - - 1545 - 1454 - 1533 - - - 1533 - 1454 - 1434 - - - 1533 - 1434 - 1517 - - - 1517 - 1434 - 1399 - - - 1517 - 1399 - 1492 - - - 1492 - 1399 - 1363 - - - 1492 - 1363 - 1458 - - - 1458 - 1363 - 1339 - - - 1458 - 1339 - 1381 - - - 1291 - 1267 - 1303 - - - 1464 - 1375 - 1490 - - - 1490 - 1375 - 1385 - - - 1490 - 1385 - 1502 - - - 1502 - 1385 - 1391 - - - 1502 - 1391 - 1508 - - - 1508 - 1391 - 1389 - - - 1508 - 1389 - 1506 - - - 1506 - 1389 - 1383 - - - 1506 - 1383 - 1498 - - - 1498 - 1383 - 1373 - - - 1498 - 1373 - 1488 - - - 1488 - 1373 - 1353 - - - 1488 - 1353 - 1468 - - - 1468 - 1353 - 1343 - - - 1468 - 1343 - 1454 - - - 1454 - 1343 - 1323 - - - 1454 - 1323 - 1434 - - - 1434 - 1323 - 1315 - - - 1434 - 1315 - 1399 - - - 1399 - 1315 - 1291 - - - 1399 - 1291 - 1363 - - - 1363 - 1291 - 1303 - - - 1363 - 1303 - 1339 - - - 1223 - 1211 - 1227 - - - 1325 - 1277 - 1375 - - - 1375 - 1277 - 1285 - - - 1375 - 1285 - 1385 - - - 1385 - 1285 - 1289 - - - 1385 - 1289 - 1391 - - - 1391 - 1289 - 1287 - - - 1391 - 1287 - 1389 - - - 1389 - 1287 - 1283 - - - 1389 - 1283 - 1383 - - - 1383 - 1283 - 1275 - - - 1383 - 1275 - 1373 - - - 1373 - 1275 - 1265 - - - 1373 - 1265 - 1353 - - - 1353 - 1265 - 1255 - - - 1353 - 1255 - 1343 - - - 1343 - 1255 - 1245 - - - 1343 - 1245 - 1323 - - - 1323 - 1245 - 1237 - - - 1323 - 1237 - 1315 - - - 1315 - 1237 - 1223 - - - 1315 - 1223 - 1291 - - - 1291 - 1223 - 1227 - - - 1291 - 1227 - 1267 - - - 1153 - 1143 - 1151 - - - 1221 - 1195 - 1277 - - - 1277 - 1195 - 1203 - - - 1277 - 1203 - 1285 - - - 1285 - 1203 - 1207 - - - 1285 - 1207 - 1289 - - - 1289 - 1207 - 1205 - - - 1289 - 1205 - 1287 - - - 1287 - 1205 - 1201 - - - 1287 - 1201 - 1283 - - - 1283 - 1201 - 1193 - - - 1283 - 1193 - 1275 - - - 1275 - 1193 - 1187 - - - 1275 - 1187 - 1265 - - - 1265 - 1187 - 1181 - - - 1265 - 1181 - 1255 - - - 1255 - 1181 - 1171 - - - 1255 - 1171 - 1245 - - - 1245 - 1171 - 1161 - - - 1245 - 1161 - 1237 - - - 1237 - 1161 - 1153 - - - 1237 - 1153 - 1223 - - - 1223 - 1153 - 1151 - - - 1223 - 1151 - 1211 - - - 1081 - 1067 - 1073 - - - 1115 - 1109 - 1195 - - - 1195 - 1109 - 1117 - - - 1195 - 1117 - 1203 - - - 1203 - 1117 - 1121 - - - 1203 - 1121 - 1207 - - - 1207 - 1121 - 1119 - - - 1207 - 1119 - 1205 - - - 1205 - 1119 - 1113 - - - 1205 - 1113 - 1201 - - - 1201 - 1113 - 1107 - - - 1201 - 1107 - 1193 - - - 1193 - 1107 - 1099 - - - 1193 - 1099 - 1187 - - - 1187 - 1099 - 1097 - - - 1187 - 1097 - 1181 - - - 1181 - 1097 - 1091 - - - 1181 - 1091 - 1171 - - - 1171 - 1091 - 1085 - - - 1171 - 1085 - 1161 - - - 1161 - 1085 - 1081 - - - 1161 - 1081 - 1153 - - - 1153 - 1081 - 1073 - - - 1153 - 1073 - 1143 - - - 1103 - 1037 - 1109 - - - 1109 - 1037 - 1043 - - - 1109 - 1043 - 1117 - - - 1117 - 1043 - 1049 - - - 1117 - 1049 - 1121 - - - 1121 - 1049 - 1047 - - - 1121 - 1047 - 1119 - - - 1119 - 1047 - 1041 - - - 1119 - 1041 - 1113 - - - 1113 - 1041 - 1035 - - - 1113 - 1035 - 1107 - - - 1107 - 1035 - 1029 - - - 1107 - 1029 - 1099 - - - 1099 - 1029 - 1021 - - - 1099 - 1021 - 1097 - - - 1097 - 1021 - 1015 - - - 1097 - 1015 - 1091 - - - 1091 - 1015 - 1011 - - - 1091 - 1011 - 1085 - - - 1085 - 1011 - 1009 - - - 1085 - 1009 - 1081 - - - 1081 - 1009 - 1005 - - - 1081 - 1005 - 1067 - - - 1007 - 963 - 1037 - - - 1037 - 963 - 967 - - - 1037 - 967 - 1043 - - - 1043 - 967 - 969 - - - 1043 - 969 - 1049 - - - 1049 - 969 - 971 - - - 1049 - 971 - 1047 - - - 1047 - 971 - 965 - - - 1047 - 965 - 1041 - - - 1041 - 965 - 961 - - - 1041 - 961 - 1035 - - - 1035 - 961 - 957 - - - 1035 - 957 - 1029 - - - 1029 - 957 - 955 - - - 1029 - 955 - 1021 - - - 1021 - 955 - 953 - - - 1021 - 953 - 1015 - - - 1015 - 953 - 951 - - - 1015 - 951 - 1011 - - - 1011 - 951 - 949 - - - 1011 - 949 - 1009 - - - 1009 - 949 - 947 - - - 1009 - 947 - 1003 - - - 917 - 879 - 963 - - - 963 - 879 - 873 - - - 963 - 873 - 967 - - - 967 - 873 - 869 - - - 967 - 869 - 969 - - - 969 - 869 - 871 - - - 969 - 871 - 971 - - - 971 - 871 - 875 - - - 971 - 875 - 965 - - - 965 - 875 - 881 - - - 965 - 881 - 961 - - - 961 - 881 - 887 - - - 961 - 887 - 957 - - - 957 - 887 - 895 - - - 957 - 895 - 955 - - - 955 - 895 - 899 - - - 955 - 899 - 953 - - - 953 - 899 - 901 - - - 953 - 901 - 951 - - - 951 - 901 - 903 - - - 951 - 903 - 949 - - - 949 - 903 - 905 - - - 949 - 905 - 945 - - - 833 - 805 - 879 - - - 879 - 805 - 801 - - - 879 - 801 - 873 - - - 873 - 801 - 797 - - - 873 - 797 - 869 - - - 869 - 797 - 799 - - - 869 - 799 - 871 - - - 871 - 799 - 803 - - - 871 - 803 - 875 - - - 875 - 803 - 807 - - - 875 - 807 - 881 - - - 881 - 807 - 813 - - - 881 - 813 - 887 - - - 887 - 813 - 817 - - - 887 - 817 - 895 - - - 895 - 817 - 821 - - - 895 - 821 - 899 - - - 899 - 821 - 827 - - - 899 - 827 - 901 - - - 901 - 827 - 831 - - - 901 - 831 - 903 - - - 903 - 831 - 837 - - - 903 - 837 - 857 - - - 811 - 735 - 805 - - - 805 - 735 - 727 - - - 805 - 727 - 801 - - - 801 - 727 - 721 - - - 801 - 721 - 797 - - - 797 - 721 - 723 - - - 797 - 723 - 799 - - - 799 - 723 - 729 - - - 799 - 729 - 803 - - - 803 - 729 - 737 - - - 803 - 737 - 807 - - - 807 - 737 - 743 - - - 807 - 743 - 813 - - - 813 - 743 - 749 - - - 813 - 749 - 817 - - - 817 - 749 - 759 - - - 817 - 759 - 821 - - - 821 - 759 - 761 - - - 821 - 761 - 827 - - - 827 - 761 - 765 - - - 827 - 765 - 831 - - - 831 - 765 - 767 - - - 831 - 767 - 793 - - - 691 - 705 - 731 - - - 725 - 649 - 735 - - - 735 - 649 - 641 - - - 735 - 641 - 727 - - - 727 - 641 - 635 - - - 727 - 635 - 721 - - - 721 - 635 - 637 - - - 721 - 637 - 723 - - - 723 - 637 - 643 - - - 723 - 643 - 729 - - - 729 - 643 - 651 - - - 729 - 651 - 737 - - - 737 - 651 - 659 - - - 737 - 659 - 743 - - - 743 - 659 - 665 - - - 743 - 665 - 749 - - - 749 - 665 - 669 - - - 749 - 669 - 759 - - - 759 - 669 - 679 - - - 759 - 679 - 761 - - - 761 - 679 - 691 - - - 761 - 691 - 765 - - - 765 - 691 - 731 - - - 765 - 731 - 767 - - - 619 - 633 - 661 - - - 623 - 563 - 649 - - - 649 - 563 - 557 - - - 649 - 557 - 641 - - - 641 - 557 - 549 - - - 641 - 549 - 635 - - - 635 - 549 - 551 - - - 635 - 551 - 637 - - - 637 - 551 - 559 - - - 637 - 559 - 643 - - - 643 - 559 - 565 - - - 643 - 565 - 651 - - - 651 - 565 - 581 - - - 651 - 581 - 659 - - - 659 - 581 - 589 - - - 659 - 589 - 665 - - - 665 - 589 - 599 - - - 665 - 599 - 669 - - - 669 - 599 - 613 - - - 669 - 613 - 679 - - - 679 - 613 - 619 - - - 679 - 619 - 691 - - - 691 - 619 - 661 - - - 691 - 661 - 705 - - - 547 - 579 - 587 - - - 515 - 475 - 563 - - - 563 - 475 - 461 - - - 563 - 461 - 557 - - - 557 - 461 - 451 - - - 557 - 451 - 549 - - - 549 - 451 - 455 - - - 549 - 455 - 551 - - - 551 - 455 - 463 - - - 551 - 463 - 559 - - - 559 - 463 - 477 - - - 559 - 477 - 565 - - - 565 - 477 - 489 - - - 565 - 489 - 581 - - - 581 - 489 - 503 - - - 581 - 503 - 589 - - - 589 - 503 - 517 - - - 589 - 517 - 599 - - - 599 - 517 - 533 - - - 599 - 533 - 613 - - - 613 - 533 - 547 - - - 613 - 547 - 619 - - - 619 - 547 - 587 - - - 619 - 587 - 633 - - - 481 - 507 - 509 - - - 373 - 358 - 475 - - - 475 - 358 - 341 - - - 475 - 341 - 461 - - - 461 - 341 - 337 - - - 461 - 337 - 451 - - - 451 - 337 - 339 - - - 451 - 339 - 455 - - - 455 - 339 - 343 - - - 455 - 343 - 463 - - - 463 - 343 - 360 - - - 463 - 360 - 477 - - - 477 - 360 - 370 - - - 477 - 370 - 489 - - - 489 - 370 - 390 - - - 489 - 390 - 503 - - - 503 - 390 - 411 - - - 503 - 411 - 517 - - - 517 - 411 - 445 - - - 517 - 445 - 533 - - - 533 - 445 - 481 - - - 533 - 481 - 547 - - - 547 - 481 - 509 - - - 547 - 509 - 579 - - - 366 - 283 - 358 - - - 358 - 283 - 275 - - - 358 - 275 - 341 - - - 341 - 275 - 266 - - - 341 - 266 - 337 - - - 337 - 266 - 268 - - - 337 - 268 - 339 - - - 339 - 268 - 277 - - - 339 - 277 - 343 - - - 343 - 277 - 285 - - - 343 - 285 - 360 - - - 360 - 285 - 305 - - - 360 - 305 - 370 - - - 370 - 305 - 311 - - - 370 - 311 - 390 - - - 390 - 311 - 322 - - - 390 - 322 - 411 - - - 411 - 322 - 350 - - - 411 - 350 - 445 - - - 445 - 350 - 380 - - - 445 - 380 - 481 - - - 481 - 380 - 424 - - - 481 - 424 - 507 - - - 281 - 229 - 283 - - - 283 - 229 - 223 - - - 283 - 223 - 275 - - - 275 - 223 - 217 - - - 275 - 217 - 266 - - - 266 - 217 - 219 - - - 266 - 219 - 268 - - - 268 - 219 - 225 - - - 268 - 225 - 277 - - - 277 - 225 - 231 - - - 277 - 231 - 285 - - - 285 - 231 - 244 - - - 285 - 244 - 305 - - - 305 - 244 - 258 - - - 305 - 258 - 311 - - - 311 - 258 - 270 - - - 311 - 270 - 322 - - - 322 - 270 - 299 - - - 322 - 299 - 350 - - - 350 - 299 - 316 - - - 350 - 316 - 380 - - - 380 - 316 - 345 - - - 380 - 345 - 406 - - - 213 - 180 - 229 - - - 229 - 180 - 174 - - - 229 - 174 - 223 - - - 223 - 174 - 168 - - - 223 - 168 - 217 - - - 217 - 168 - 170 - - - 217 - 170 - 219 - - - 219 - 170 - 176 - - - 219 - 176 - 225 - - - 225 - 176 - 182 - - - 225 - 182 - 231 - - - 231 - 182 - 197 - - - 231 - 197 - 244 - - - 244 - 197 - 207 - - - 244 - 207 - 258 - - - 258 - 207 - 227 - - - 258 - 227 - 270 - - - 270 - 227 - 256 - - - 270 - 256 - 299 - - - 299 - 256 - 272 - - - 299 - 272 - 316 - - - 316 - 272 - 307 - - - 316 - 307 - 328 - - - 164 - 143 - 180 - - - 180 - 143 - 133 - - - 180 - 133 - 174 - - - 174 - 133 - 127 - - - 174 - 127 - 168 - - - 168 - 127 - 129 - - - 168 - 129 - 170 - - - 170 - 129 - 135 - - - 170 - 135 - 176 - - - 176 - 135 - 147 - - - 176 - 147 - 182 - - - 182 - 147 - 153 - - - 182 - 153 - 197 - - - 197 - 153 - 172 - - - 197 - 172 - 207 - - - 207 - 172 - 193 - - - 207 - 193 - 227 - - - 227 - 193 - 209 - - - 227 - 209 - 256 - - - 256 - 209 - 240 - - - 256 - 240 - 272 - - - 272 - 240 - 260 - - - 272 - 260 - 287 - - - 151 - 108 - 143 - - - 143 - 108 - 101 - - - 143 - 101 - 133 - - - 133 - 101 - 91 - - - 133 - 91 - 127 - - - 127 - 91 - 95 - - - 127 - 95 - 129 - - - 129 - 95 - 103 - - - 129 - 103 - 135 - - - 135 - 103 - 110 - - - 135 - 110 - 147 - - - 147 - 110 - 122 - - - 147 - 122 - 153 - - - 153 - 122 - 141 - - - 153 - 141 - 172 - - - 172 - 141 - 162 - - - 172 - 162 - 193 - - - 193 - 162 - 184 - - - 193 - 184 - 209 - - - 209 - 184 - 205 - - - 209 - 205 - 240 - - - 240 - 205 - 234 - - - 240 - 234 - 254 - - - 187 - 211 - 221 - - - 116 - 79 - 108 - - - 108 - 79 - 66 - - - 108 - 66 - 101 - - - 101 - 66 - 58 - - - 101 - 58 - 91 - - - 91 - 58 - 60 - - - 91 - 60 - 95 - - - 95 - 60 - 68 - - - 95 - 68 - 103 - - - 103 - 68 - 81 - - - 103 - 81 - 110 - - - 110 - 81 - 99 - - - 110 - 99 - 122 - - - 122 - 99 - 114 - - - 122 - 114 - 141 - - - 141 - 114 - 137 - - - 141 - 137 - 162 - - - 162 - 137 - 160 - - - 162 - 160 - 184 - - - 184 - 160 - 187 - - - 184 - 187 - 205 - - - 205 - 187 - 221 - - - 205 - 221 - 234 - - - 166 - 199 - 201 - - - 87 - 47 - 79 - - - 79 - 47 - 41 - - - 79 - 41 - 66 - - - 66 - 41 - 31 - - - 66 - 31 - 58 - - - 58 - 31 - 33 - - - 58 - 33 - 60 - - - 60 - 33 - 43 - - - 60 - 43 - 68 - - - 68 - 43 - 50 - - - 68 - 50 - 81 - - - 81 - 50 - 74 - - - 81 - 74 - 99 - - - 99 - 74 - 97 - - - 99 - 97 - 114 - - - 114 - 97 - 118 - - - 114 - 118 - 137 - - - 137 - 118 - 145 - - - 137 - 145 - 160 - - - 160 - 145 - 166 - - - 160 - 166 - 187 - - - 187 - 166 - 201 - - - 187 - 201 - 211 - - - 158 - 189 - 191 - - - 62 - 35 - 47 - - - 47 - 35 - 21 - - - 47 - 21 - 41 - - - 41 - 21 - 15 - - - 41 - 15 - 31 - - - 31 - 15 - 17 - - - 31 - 17 - 33 - - - 33 - 17 - 23 - - - 33 - 23 - 43 - - - 43 - 23 - 37 - - - 43 - 37 - 50 - - - 50 - 37 - 56 - - - 50 - 56 - 74 - - - 74 - 56 - 85 - - - 74 - 85 - 97 - - - 97 - 85 - 106 - - - 97 - 106 - 118 - - - 118 - 106 - 131 - - - 118 - 131 - 145 - - - 145 - 131 - 158 - - - 145 - 158 - 166 - - - 166 - 158 - 191 - - - 166 - 191 - 199 - - - 52 - 28 - 35 - - - 35 - 28 - 18 - - - 35 - 18 - 21 - - - 21 - 18 - 10 - - - 21 - 10 - 15 - - - 15 - 10 - 11 - - - 15 - 11 - 17 - - - 17 - 11 - 19 - - - 17 - 19 - 23 - - - 23 - 19 - 29 - - - 23 - 29 - 37 - - - 37 - 29 - 48 - - - 37 - 48 - 56 - - - 56 - 48 - 77 - - - 56 - 77 - 85 - - - 85 - 77 - 104 - - - 85 - 104 - 106 - - - 106 - 104 - 125 - - - 106 - 125 - 131 - - - 131 - 125 - 154 - - - 131 - 154 - 158 - - - 158 - 154 - 185 - - - 158 - 185 - 189 - - - 331 - 335 - 375 - - - 443 - 471 - 505 - - - 627 - 667 - 681 - - - 703 - 713 - 739 - - - 911 - 937 - 933 - - - 975 - 993 - 987 - - - 1179 - 1209 - 1185 - - - 1365 - 1403 - 1359 - - - 1440 - 1450 - 1407 - - - 1514 - 1513 - 1465 - - - 1439 - 1402 - 1358 - - - 1364 - 1344 - 1320 - - - 1178 - 1146 - 1140 - - - 974 - 936 - 932 - - - 910 - 864 - 876 - - - 702 - 666 - 680 - - - 626 - 616 - 624 - - - 442 - 415 - 458 - - - 330 - 329 - 371 - - - 189 - 185 - 232 - - - 199 - 191 - 238 - - - 211 - 201 - 252 - - - 234 - 221 - 262 - - - 260 - 254 - 303 - - - 307 - 287 - 326 - - - 345 - 328 - 394 - - - 424 - 406 - 479 - - - 633 - 587 - 615 - - - 705 - 661 - 677 - - - 767 - 731 - 757 - - - 837 - 793 - 809 - - - 905 - 857 - 859 - - - 947 - 945 - 943 - - - 1005 - 1003 - 999 - - - 1211 - 1151 - 1135 - - - 1267 - 1227 - 1199 - - - 1339 - 1303 - 1259 - - - 1420 - 1381 - 1331 - - - 1496 - 1474 - 1412 - - - 1541 - 1537 - 1486 - - - 1584 - 1580 - 1531 - - - 1642 - 1636 - 1586 - - - 1652 - 1646 - 1598 - - - 1654 - 1655 - 1610 - - - 1651 - 1653 - 1609 - - - 1641 - 1645 - 1597 - - - 1629 - 1635 - 1585 - - - 1607 - 1611 - 1560 - - - 1495 - 1536 - 1485 - - - 1419 - 1473 - 1411 - - - 1338 - 1380 - 1330 - - - 1266 - 1302 - 1258 - - - 1210 - 1226 - 1198 - - - 1142 - 1150 - 1134 - - - 1066 - 1072 - 1062 - - - 904 - 944 - 942 - - - 836 - 856 - 858 - - - 766 - 792 - 808 - - - 704 - 730 - 756 - - - 632 - 660 - 676 - - - 578 - 586 - 614 - - - 506 - 508 - 540 - - - 306 - 327 - 393 - - - 259 - 286 - 325 - - - 233 - 253 - 302 - - - 210 - 220 - 261 - - - 198 - 200 - 251 - - - 188 - 190 - 237 - - - 344 - 405 - 478 - - - 478 - 405 - 423 - - - 946 - 1002 - 998 - - - 998 - 1002 - 1004 - - - 1540 - 1579 - 1530 - - - 1530 - 1579 - 1583 - - - 1630 - 1612 - 1561 - - - 1561 - 1612 - 1608 - - - 1143 - 1073 - 1063 - - - 1063 - 1073 - 1067 - - - 579 - 509 - 541 - - - 541 - 509 - 507 - - - 507 - 424 - 541 - - - 541 - 424 - 479 - - - 541 - 479 - 521 - - - 521 - 479 - 449 - - - 521 - 449 - 501 - - - 501 - 449 - 441 - - - 501 - 441 - 487 - - - 487 - 441 - 433 - - - 487 - 433 - 473 - - - 473 - 433 - 430 - - - 473 - 430 - 453 - - - 453 - 430 - 428 - - - 453 - 428 - 439 - - - 439 - 428 - 426 - - - 439 - 426 - 420 - - - 420 - 426 - 409 - - - 420 - 409 - 397 - - - 397 - 409 - 400 - - - 397 - 400 - 374 - - - 374 - 400 - 391 - - - 406 - 345 - 479 - - - 479 - 345 - 394 - - - 479 - 394 - 449 - - - 449 - 394 - 382 - - - 449 - 382 - 441 - - - 441 - 382 - 388 - - - 441 - 388 - 433 - - - 433 - 388 - 396 - - - 433 - 396 - 430 - - - 430 - 396 - 399 - - - 430 - 399 - 428 - - - 428 - 399 - 408 - - - 428 - 408 - 426 - - - 426 - 408 - 414 - - - 426 - 414 - 409 - - - 409 - 414 - 419 - - - 409 - 419 - 400 - - - 400 - 419 - 421 - - - 400 - 421 - 391 - - - 391 - 421 - 417 - - - 391 - 417 - 376 - - - 376 - 417 - 383 - - - 254 - 234 - 303 - - - 303 - 234 - 262 - - - 303 - 262 - 313 - - - 313 - 262 - 295 - - - 313 - 295 - 324 - - - 324 - 295 - 318 - - - 324 - 318 - 356 - - - 356 - 318 - 346 - - - 356 - 346 - 378 - - - 378 - 346 - 385 - - - 378 - 385 - 407 - - - 407 - 385 - 427 - - - 407 - 427 - 438 - - - 438 - 427 - 466 - - - 438 - 466 - 464 - - - 464 - 466 - 496 - - - 464 - 496 - 484 - - - 484 - 496 - 522 - - - 484 - 522 - 504 - - - 504 - 522 - 538 - - - 221 - 211 - 262 - - - 262 - 211 - 252 - - - 262 - 252 - 295 - - - 295 - 252 - 279 - - - 295 - 279 - 318 - - - 318 - 279 - 314 - - - 318 - 314 - 346 - - - 346 - 314 - 355 - - - 346 - 355 - 385 - - - 385 - 355 - 398 - - - 385 - 398 - 427 - - - 427 - 398 - 452 - - - 427 - 452 - 466 - - - 466 - 452 - 498 - - - 466 - 498 - 496 - - - 496 - 498 - 528 - - - 496 - 528 - 522 - - - 522 - 528 - 554 - - - 522 - 554 - 538 - - - 538 - 554 - 590 - - - 538 - 590 - 568 - - - 568 - 590 - 572 - - - 190 - 198 - 237 - - - 237 - 198 - 251 - - - 237 - 251 - 294 - - - 294 - 251 - 312 - - - 294 - 312 - 347 - - - 347 - 312 - 387 - - - 347 - 387 - 432 - - - 432 - 387 - 486 - - - 432 - 486 - 512 - - - 512 - 486 - 542 - - - 512 - 542 - 560 - - - 560 - 542 - 604 - - - 560 - 604 - 610 - - - 610 - 604 - 654 - - - 610 - 654 - 652 - - - 652 - 654 - 696 - - - 652 - 696 - 684 - - - 684 - 696 - 746 - - - 684 - 746 - 738 - - - 738 - 746 - 778 - - - 200 - 210 - 251 - - - 251 - 210 - 261 - - - 251 - 261 - 312 - - - 312 - 261 - 332 - - - 312 - 332 - 387 - - - 387 - 332 - 440 - - - 387 - 440 - 486 - - - 486 - 440 - 526 - - - 486 - 526 - 542 - - - 542 - 526 - 594 - - - 542 - 594 - 604 - - - 604 - 594 - 646 - - - 604 - 646 - 654 - - - 654 - 646 - 698 - - - 654 - 698 - 696 - - - 696 - 698 - 752 - - - 696 - 752 - 746 - - - 746 - 752 - 782 - - - 746 - 782 - 778 - - - 778 - 782 - 840 - - - 778 - 840 - 834 - - - 834 - 840 - 846 - - - 423 - 506 - 478 - - - 478 - 506 - 540 - - - 478 - 540 - 584 - - - 584 - 540 - 628 - - - 584 - 628 - 662 - - - 662 - 628 - 710 - - - 662 - 710 - 714 - - - 714 - 710 - 776 - - - 714 - 776 - 780 - - - 780 - 776 - 842 - - - 780 - 842 - 848 - - - 848 - 842 - 890 - - - 848 - 890 - 896 - - - 896 - 890 - 922 - - - 896 - 922 - 924 - - - 924 - 922 - 978 - - - 924 - 978 - 982 - - - 982 - 978 - 1026 - - - 982 - 1026 - 1038 - - - 1038 - 1026 - 1082 - - - 1038 - 1082 - 1088 - - - 1088 - 1082 - 1100 - - - 660 - 704 - 676 - - - 676 - 704 - 756 - - - 676 - 756 - 762 - - - 762 - 756 - 824 - - - 762 - 824 - 828 - - - 828 - 824 - 862 - - - 828 - 862 - 866 - - - 866 - 862 - 934 - - - 866 - 934 - 930 - - - 930 - 934 - 984 - - - 930 - 984 - 980 - - - 980 - 984 - 1022 - - - 980 - 1022 - 1016 - - - 1016 - 1022 - 1068 - - - 1016 - 1068 - 1070 - - - 1070 - 1068 - 1128 - - - 1070 - 1128 - 1132 - - - 1132 - 1128 - 1176 - - - 1132 - 1176 - 1184 - - - 1184 - 1176 - 1234 - - - 730 - 766 - 756 - - - 756 - 766 - 808 - - - 756 - 808 - 824 - - - 824 - 808 - 860 - - - 824 - 860 - 862 - - - 862 - 860 - 938 - - - 862 - 938 - 934 - - - 934 - 938 - 990 - - - 934 - 990 - 984 - - - 984 - 990 - 1032 - - - 984 - 1032 - 1022 - - - 1022 - 1032 - 1074 - - - 1022 - 1074 - 1068 - - - 1068 - 1074 - 1126 - - - 1068 - 1126 - 1128 - - - 1128 - 1126 - 1168 - - - 1128 - 1168 - 1176 - - - 1176 - 1168 - 1224 - - - 1176 - 1224 - 1234 - - - 1234 - 1224 - 1278 - - - 1234 - 1278 - 1306 - - - 1306 - 1278 - 1312 - - - 1004 - 1066 - 998 - - - 998 - 1066 - 1062 - - - 998 - 1062 - 1060 - - - 1060 - 1062 - 1110 - - - 1060 - 1110 - 1092 - - - 1092 - 1110 - 1158 - - - 1092 - 1158 - 1144 - - - 1144 - 1158 - 1196 - - - 1144 - 1196 - 1182 - - - 1182 - 1196 - 1232 - - - 1182 - 1232 - 1218 - - - 1218 - 1232 - 1256 - - - 1218 - 1256 - 1250 - - - 1250 - 1256 - 1294 - - - 1250 - 1294 - 1300 - - - 1300 - 1294 - 1332 - - - 1300 - 1332 - 1340 - - - 1340 - 1332 - 1378 - - - 1340 - 1378 - 1406 - - - 1406 - 1378 - 1445 - - - 1072 - 1142 - 1062 - - - 1062 - 1142 - 1134 - - - 1062 - 1134 - 1110 - - - 1110 - 1134 - 1174 - - - 1110 - 1174 - 1158 - - - 1158 - 1174 - 1212 - - - 1158 - 1212 - 1196 - - - 1196 - 1212 - 1242 - - - 1196 - 1242 - 1232 - - - 1232 - 1242 - 1270 - - - 1232 - 1270 - 1256 - - - 1256 - 1270 - 1304 - - - 1256 - 1304 - 1294 - - - 1294 - 1304 - 1328 - - - 1294 - 1328 - 1332 - - - 1332 - 1328 - 1360 - - - 1332 - 1360 - 1378 - - - 1378 - 1360 - 1409 - - - 1378 - 1409 - 1445 - - - 1445 - 1409 - 1459 - - - 1445 - 1459 - 1499 - - - 1499 - 1459 - 1503 - - - 1302 - 1338 - 1258 - - - 1258 - 1338 - 1330 - - - 1258 - 1330 - 1296 - - - 1296 - 1330 - 1350 - - - 1296 - 1350 - 1318 - - - 1318 - 1350 - 1370 - - - 1318 - 1370 - 1336 - - - 1336 - 1370 - 1386 - - - 1336 - 1386 - 1348 - - - 1348 - 1386 - 1394 - - - 1348 - 1394 - 1368 - - - 1368 - 1394 - 1404 - - - 1368 - 1404 - 1392 - - - 1392 - 1404 - 1413 - - - 1392 - 1413 - 1417 - - - 1417 - 1413 - 1427 - - - 1417 - 1427 - 1447 - - - 1447 - 1427 - 1448 - - - 1447 - 1448 - 1466 - - - 1466 - 1448 - 1460 - - - 1380 - 1419 - 1330 - - - 1330 - 1419 - 1411 - - - 1330 - 1411 - 1350 - - - 1350 - 1411 - 1425 - - - 1350 - 1425 - 1370 - - - 1370 - 1425 - 1437 - - - 1370 - 1437 - 1386 - - - 1386 - 1437 - 1435 - - - 1386 - 1435 - 1394 - - - 1394 - 1435 - 1431 - - - 1394 - 1431 - 1404 - - - 1404 - 1431 - 1423 - - - 1404 - 1423 - 1413 - - - 1413 - 1423 - 1421 - - - 1413 - 1421 - 1427 - - - 1427 - 1421 - 1428 - - - 1427 - 1428 - 1448 - - - 1448 - 1428 - 1442 - - - 1448 - 1442 - 1460 - - - 1460 - 1442 - 1446 - - - 1460 - 1446 - 1478 - - - 1478 - 1446 - 1476 - - - 1611 - 1629 - 1560 - - - 1560 - 1629 - 1585 - - - 1560 - 1585 - 1538 - - - 1538 - 1585 - 1552 - - - 1538 - 1552 - 1522 - - - 1522 - 1552 - 1528 - - - 1522 - 1528 - 1493 - - - 1493 - 1528 - 1494 - - - 1493 - 1494 - 1456 - - - 1456 - 1494 - 1452 - - - 1456 - 1452 - 1424 - - - 1424 - 1452 - 1405 - - - 1424 - 1405 - 1393 - - - 1393 - 1405 - 1357 - - - 1393 - 1357 - 1361 - - - 1361 - 1357 - 1333 - - - 1361 - 1333 - 1341 - - - 1341 - 1333 - 1311 - - - 1341 - 1311 - 1321 - - - 1321 - 1311 - 1279 - - - 1635 - 1641 - 1585 - - - 1585 - 1641 - 1597 - - - 1585 - 1597 - 1552 - - - 1552 - 1597 - 1562 - - - 1552 - 1562 - 1528 - - - 1528 - 1562 - 1529 - - - 1528 - 1529 - 1494 - - - 1494 - 1529 - 1482 - - - 1494 - 1482 - 1452 - - - 1452 - 1482 - 1432 - - - 1452 - 1432 - 1405 - - - 1405 - 1432 - 1369 - - - 1405 - 1369 - 1357 - - - 1357 - 1369 - 1329 - - - 1357 - 1329 - 1333 - - - 1333 - 1329 - 1301 - - - 1333 - 1301 - 1311 - - - 1311 - 1301 - 1261 - - - 1311 - 1261 - 1279 - - - 1279 - 1261 - 1235 - - - 1279 - 1235 - 1249 - - - 1249 - 1235 - 1241 - - - 1655 - 1652 - 1610 - - - 1610 - 1652 - 1598 - - - 1610 - 1598 - 1553 - - - 1553 - 1598 - 1539 - - - 1553 - 1539 - 1510 - - - 1510 - 1539 - 1472 - - - 1510 - 1472 - 1436 - - - 1436 - 1472 - 1387 - - - 1436 - 1387 - 1349 - - - 1349 - 1387 - 1317 - - - 1349 - 1317 - 1305 - - - 1305 - 1317 - 1257 - - - 1305 - 1257 - 1251 - - - 1251 - 1257 - 1215 - - - 1251 - 1215 - 1217 - - - 1217 - 1215 - 1169 - - - 1217 - 1169 - 1177 - - - 1177 - 1169 - 1133 - - - 1177 - 1133 - 1141 - - - 1141 - 1133 - 1083 - - - 1646 - 1642 - 1598 - - - 1598 - 1642 - 1586 - - - 1598 - 1586 - 1539 - - - 1539 - 1586 - 1521 - - - 1539 - 1521 - 1472 - - - 1472 - 1521 - 1438 - - - 1472 - 1438 - 1387 - - - 1387 - 1438 - 1337 - - - 1387 - 1337 - 1317 - - - 1317 - 1337 - 1271 - - - 1317 - 1271 - 1257 - - - 1257 - 1271 - 1219 - - - 1257 - 1219 - 1215 - - - 1215 - 1219 - 1167 - - - 1215 - 1167 - 1169 - - - 1169 - 1167 - 1129 - - - 1169 - 1129 - 1133 - - - 1133 - 1129 - 1077 - - - 1133 - 1077 - 1083 - - - 1083 - 1077 - 1039 - - - 1083 - 1039 - 1057 - - - 1057 - 1039 - 1055 - - - 1537 - 1496 - 1486 - - - 1486 - 1496 - 1412 - - - 1486 - 1412 - 1351 - - - 1351 - 1412 - 1297 - - - 1351 - 1297 - 1263 - - - 1263 - 1297 - 1213 - - - 1263 - 1213 - 1197 - - - 1197 - 1213 - 1145 - - - 1197 - 1145 - 1137 - - - 1137 - 1145 - 1079 - - - 1137 - 1079 - 1075 - - - 1075 - 1079 - 1023 - - - 1075 - 1023 - 1017 - - - 1017 - 1023 - 977 - - - 1017 - 977 - 979 - - - 979 - 977 - 925 - - - 979 - 925 - 929 - - - 929 - 925 - 889 - - - 929 - 889 - 877 - - - 877 - 889 - 841 - - - 1474 - 1420 - 1412 - - - 1412 - 1420 - 1331 - - - 1412 - 1331 - 1297 - - - 1297 - 1331 - 1239 - - - 1297 - 1239 - 1213 - - - 1213 - 1239 - 1159 - - - 1213 - 1159 - 1145 - - - 1145 - 1159 - 1087 - - - 1145 - 1087 - 1079 - - - 1079 - 1087 - 1033 - - - 1079 - 1033 - 1023 - - - 1023 - 1033 - 981 - - - 1023 - 981 - 977 - - - 977 - 981 - 923 - - - 977 - 923 - 925 - - - 925 - 923 - 893 - - - 925 - 893 - 889 - - - 889 - 893 - 845 - - - 889 - 845 - 841 - - - 841 - 845 - 779 - - - 841 - 779 - 775 - - - 775 - 779 - 769 - - - 1151 - 1143 - 1135 - - - 1135 - 1143 - 1063 - - - 1135 - 1063 - 1061 - - - 1061 - 1063 - 997 - - - 1061 - 997 - 995 - - - 995 - 997 - 939 - - - 995 - 939 - 935 - - - 935 - 939 - 867 - - - 935 - 867 - 883 - - - 883 - 867 - 843 - - - 883 - 843 - 849 - - - 849 - 843 - 787 - - - 849 - 787 - 791 - - - 791 - 787 - 755 - - - 791 - 755 - 753 - - - 753 - 755 - 697 - - - 753 - 697 - 685 - - - 685 - 697 - 639 - - - 685 - 639 - 625 - - - 625 - 639 - 591 - - - 1067 - 1005 - 1063 - - - 1063 - 1005 - 999 - - - 1063 - 999 - 997 - - - 997 - 999 - 941 - - - 997 - 941 - 939 - - - 939 - 941 - 863 - - - 939 - 863 - 867 - - - 867 - 863 - 839 - - - 867 - 839 - 843 - - - 843 - 839 - 781 - - - 843 - 781 - 787 - - - 787 - 781 - 751 - - - 787 - 751 - 755 - - - 755 - 751 - 699 - - - 755 - 699 - 697 - - - 697 - 699 - 653 - - - 697 - 653 - 639 - - - 639 - 653 - 601 - - - 639 - 601 - 591 - - - 591 - 601 - 539 - - - 591 - 539 - 519 - - - 519 - 539 - 511 - - - 857 - 837 - 859 - - - 859 - 837 - 809 - - - 859 - 809 - 825 - - - 825 - 809 - 763 - - - 825 - 763 - 771 - - - 771 - 763 - 711 - - - 771 - 711 - 715 - - - 715 - 711 - 671 - - - 715 - 671 - 683 - - - 683 - 671 - 631 - - - 683 - 631 - 647 - - - 647 - 631 - 605 - - - 647 - 605 - 611 - - - 611 - 605 - 571 - - - 611 - 571 - 567 - - - 567 - 571 - 529 - - - 567 - 529 - 523 - - - 523 - 529 - 485 - - - 523 - 485 - 459 - - - 459 - 485 - 418 - - - 793 - 767 - 809 - - - 809 - 767 - 757 - - - 809 - 757 - 763 - - - 763 - 757 - 701 - - - 763 - 701 - 711 - - - 711 - 701 - 663 - - - 711 - 663 - 671 - - - 671 - 663 - 621 - - - 671 - 621 - 631 - - - 631 - 621 - 595 - - - 631 - 595 - 605 - - - 605 - 595 - 561 - - - 605 - 561 - 571 - - - 571 - 561 - 531 - - - 571 - 531 - 529 - - - 529 - 531 - 497 - - - 529 - 497 - 485 - - - 485 - 497 - 447 - - - 485 - 447 - 418 - - - 418 - 447 - 392 - - - 418 - 392 - 354 - - - 354 - 392 - 352 - - - 587 - 579 - 615 - - - 615 - 579 - 541 - - - 615 - 541 - 585 - - - 585 - 541 - 521 - - - 585 - 521 - 545 - - - 545 - 521 - 501 - - - 545 - 501 - 527 - - - 527 - 501 - 487 - - - 527 - 487 - 513 - - - 513 - 487 - 473 - - - 513 - 473 - 491 - - - 491 - 473 - 453 - - - 491 - 453 - 467 - - - 467 - 453 - 439 - - - 467 - 439 - 435 - - - 435 - 439 - 420 - - - 435 - 420 - 401 - - - 401 - 420 - 397 - - - 401 - 397 - 371 - - - 371 - 397 - 374 - - - 371 - 374 - 330 - - - 376 - 353 - 391 - - - 391 - 353 - 351 - - - 391 - 351 - 374 - - - 374 - 351 - 334 - - - 374 - 334 - 330 - - - 415 - 383 - 458 - - - 458 - 383 - 417 - - - 458 - 417 - 446 - - - 446 - 417 - 421 - - - 446 - 421 - 434 - - - 434 - 421 - 419 - - - 434 - 419 - 425 - - - 425 - 419 - 414 - - - 425 - 414 - 402 - - - 402 - 414 - 408 - - - 402 - 408 - 386 - - - 386 - 408 - 399 - - - 386 - 399 - 368 - - - 368 - 399 - 396 - - - 368 - 396 - 348 - - - 348 - 396 - 388 - - - 348 - 388 - 333 - - - 333 - 388 - 382 - - - 333 - 382 - 326 - - - 326 - 382 - 394 - - - 326 - 394 - 307 - - - 307 - 394 - 328 - - - 287 - 260 - 326 - - - 326 - 260 - 303 - - - 326 - 303 - 333 - - - 333 - 303 - 313 - - - 333 - 313 - 348 - - - 348 - 313 - 324 - - - 348 - 324 - 368 - - - 368 - 324 - 356 - - - 368 - 356 - 386 - - - 386 - 356 - 378 - - - 386 - 378 - 402 - - - 402 - 378 - 407 - - - 402 - 407 - 425 - - - 425 - 407 - 438 - - - 425 - 438 - 434 - - - 434 - 438 - 464 - - - 434 - 464 - 446 - - - 446 - 464 - 484 - - - 446 - 484 - 458 - - - 458 - 484 - 504 - - - 458 - 504 - 442 - - - 568 - 518 - 538 - - - 538 - 518 - 510 - - - 538 - 510 - 504 - - - 504 - 510 - 470 - - - 504 - 470 - 442 - - - 616 - 572 - 624 - - - 624 - 572 - 590 - - - 624 - 590 - 600 - - - 600 - 590 - 554 - - - 600 - 554 - 566 - - - 566 - 554 - 528 - - - 566 - 528 - 530 - - - 530 - 528 - 498 - - - 530 - 498 - 490 - - - 490 - 498 - 452 - - - 490 - 452 - 429 - - - 429 - 452 - 398 - - - 429 - 398 - 367 - - - 367 - 398 - 355 - - - 367 - 355 - 317 - - - 317 - 355 - 314 - - - 317 - 314 - 273 - - - 273 - 314 - 279 - - - 273 - 279 - 238 - - - 238 - 279 - 252 - - - 238 - 252 - 199 - - - 199 - 252 - 201 - - - 666 - 626 - 680 - - - 680 - 626 - 624 - - - 680 - 624 - 638 - - - 638 - 624 - 600 - - - 638 - 600 - 608 - - - 608 - 600 - 566 - - - 608 - 566 - 570 - - - 570 - 566 - 530 - - - 570 - 530 - 524 - - - 524 - 530 - 490 - - - 524 - 490 - 472 - - - 472 - 490 - 429 - - - 472 - 429 - 395 - - - 395 - 429 - 367 - - - 395 - 367 - 323 - - - 323 - 367 - 317 - - - 323 - 317 - 278 - - - 278 - 317 - 273 - - - 278 - 273 - 232 - - - 232 - 273 - 238 - - - 232 - 238 - 189 - - - 189 - 238 - 191 - - - 185 - 188 - 232 - - - 232 - 188 - 237 - - - 232 - 237 - 278 - - - 278 - 237 - 294 - - - 278 - 294 - 323 - - - 323 - 294 - 347 - - - 323 - 347 - 395 - - - 395 - 347 - 432 - - - 395 - 432 - 472 - - - 472 - 432 - 512 - - - 472 - 512 - 524 - - - 524 - 512 - 560 - - - 524 - 560 - 570 - - - 570 - 560 - 610 - - - 570 - 610 - 608 - - - 608 - 610 - 652 - - - 608 - 652 - 638 - - - 638 - 652 - 684 - - - 638 - 684 - 680 - - - 680 - 684 - 738 - - - 680 - 738 - 702 - - - 834 - 774 - 778 - - - 778 - 774 - 768 - - - 778 - 768 - 738 - - - 738 - 768 - 712 - - - 738 - 712 - 702 - - - 864 - 846 - 876 - - - 876 - 846 - 840 - - - 876 - 840 - 844 - - - 844 - 840 - 782 - - - 844 - 782 - 788 - - - 788 - 782 - 752 - - - 788 - 752 - 754 - - - 754 - 752 - 698 - - - 754 - 698 - 692 - - - 692 - 698 - 646 - - - 692 - 646 - 630 - - - 630 - 646 - 594 - - - 630 - 594 - 582 - - - 582 - 594 - 526 - - - 582 - 526 - 500 - - - 500 - 526 - 440 - - - 500 - 440 - 381 - - - 381 - 440 - 332 - - - 381 - 332 - 302 - - - 302 - 332 - 261 - - - 302 - 261 - 233 - - - 233 - 261 - 220 - - - 936 - 910 - 932 - - - 932 - 910 - 876 - - - 932 - 876 - 888 - - - 888 - 876 - 844 - - - 888 - 844 - 850 - - - 850 - 844 - 788 - - - 850 - 788 - 790 - - - 790 - 788 - 754 - - - 790 - 754 - 750 - - - 750 - 754 - 692 - - - 750 - 692 - 682 - - - 682 - 692 - 630 - - - 682 - 630 - 620 - - - 620 - 630 - 582 - - - 620 - 582 - 544 - - - 544 - 582 - 500 - - - 544 - 500 - 448 - - - 448 - 500 - 381 - - - 448 - 381 - 325 - - - 325 - 381 - 302 - - - 325 - 302 - 259 - - - 259 - 302 - 253 - - - 286 - 306 - 325 - - - 325 - 306 - 393 - - - 325 - 393 - 448 - - - 448 - 393 - 520 - - - 448 - 520 - 544 - - - 544 - 520 - 606 - - - 544 - 606 - 620 - - - 620 - 606 - 670 - - - 620 - 670 - 682 - - - 682 - 670 - 744 - - - 682 - 744 - 750 - - - 750 - 744 - 786 - - - 750 - 786 - 790 - - - 790 - 786 - 852 - - - 790 - 852 - 850 - - - 850 - 852 - 892 - - - 850 - 892 - 888 - - - 888 - 892 - 928 - - - 888 - 928 - 932 - - - 932 - 928 - 986 - - - 932 - 986 - 974 - - - 1056 - 1054 - 986 - - - 986 - 1054 - 992 - - - 986 - 992 - 974 - - - 327 - 344 - 393 - - - 393 - 344 - 478 - - - 393 - 478 - 520 - - - 520 - 478 - 584 - - - 520 - 584 - 606 - - - 606 - 584 - 662 - - - 606 - 662 - 670 - - - 670 - 662 - 714 - - - 670 - 714 - 744 - - - 744 - 714 - 780 - - - 744 - 780 - 786 - - - 786 - 780 - 848 - - - 786 - 848 - 852 - - - 852 - 848 - 896 - - - 852 - 896 - 892 - - - 892 - 896 - 924 - - - 892 - 924 - 928 - - - 928 - 924 - 982 - - - 928 - 982 - 986 - - - 986 - 982 - 1038 - - - 986 - 1038 - 1056 - - - 1056 - 1038 - 1088 - - - 1146 - 1100 - 1140 - - - 1140 - 1100 - 1082 - - - 1140 - 1082 - 1076 - - - 1076 - 1082 - 1026 - - - 1076 - 1026 - 1018 - - - 1018 - 1026 - 978 - - - 1018 - 978 - 976 - - - 976 - 978 - 922 - - - 976 - 922 - 926 - - - 926 - 922 - 890 - - - 926 - 890 - 882 - - - 882 - 890 - 842 - - - 882 - 842 - 838 - - - 838 - 842 - 776 - - - 838 - 776 - 770 - - - 770 - 776 - 710 - - - 770 - 710 - 700 - - - 700 - 710 - 628 - - - 700 - 628 - 614 - - - 614 - 628 - 540 - - - 614 - 540 - 578 - - - 578 - 540 - 508 - - - 586 - 632 - 614 - - - 614 - 632 - 676 - - - 614 - 676 - 700 - - - 700 - 676 - 762 - - - 700 - 762 - 770 - - - 770 - 762 - 828 - - - 770 - 828 - 838 - - - 838 - 828 - 866 - - - 838 - 866 - 882 - - - 882 - 866 - 930 - - - 882 - 930 - 926 - - - 926 - 930 - 980 - - - 926 - 980 - 976 - - - 976 - 980 - 1016 - - - 976 - 1016 - 1018 - - - 1018 - 1016 - 1070 - - - 1018 - 1070 - 1076 - - - 1076 - 1070 - 1132 - - - 1076 - 1132 - 1140 - - - 1140 - 1132 - 1184 - - - 1140 - 1184 - 1178 - - - 1306 - 1248 - 1234 - - - 1234 - 1248 - 1240 - - - 1234 - 1240 - 1184 - - - 1184 - 1240 - 1208 - - - 1184 - 1208 - 1178 - - - 1344 - 1312 - 1320 - - - 1320 - 1312 - 1278 - - - 1320 - 1278 - 1260 - - - 1260 - 1278 - 1224 - - - 1260 - 1224 - 1216 - - - 1216 - 1224 - 1168 - - - 1216 - 1168 - 1166 - - - 1166 - 1168 - 1126 - - - 1166 - 1126 - 1130 - - - 1130 - 1126 - 1074 - - - 1130 - 1074 - 1078 - - - 1078 - 1074 - 1032 - - - 1078 - 1032 - 1050 - - - 1050 - 1032 - 990 - - - 1050 - 990 - 994 - - - 994 - 990 - 938 - - - 994 - 938 - 940 - - - 940 - 938 - 860 - - - 940 - 860 - 858 - - - 858 - 860 - 808 - - - 858 - 808 - 836 - - - 836 - 808 - 792 - - - 1402 - 1364 - 1358 - - - 1358 - 1364 - 1320 - - - 1358 - 1320 - 1310 - - - 1310 - 1320 - 1260 - - - 1310 - 1260 - 1252 - - - 1252 - 1260 - 1216 - - - 1252 - 1216 - 1214 - - - 1214 - 1216 - 1166 - - - 1214 - 1166 - 1172 - - - 1172 - 1166 - 1130 - - - 1172 - 1130 - 1136 - - - 1136 - 1130 - 1078 - - - 1136 - 1078 - 1086 - - - 1086 - 1078 - 1050 - - - 1086 - 1050 - 1058 - - - 1058 - 1050 - 994 - - - 1058 - 994 - 996 - - - 996 - 994 - 940 - - - 996 - 940 - 942 - - - 942 - 940 - 858 - - - 942 - 858 - 904 - - - 904 - 858 - 856 - - - 944 - 946 - 942 - - - 942 - 946 - 998 - - - 942 - 998 - 996 - - - 996 - 998 - 1060 - - - 996 - 1060 - 1058 - - - 1058 - 1060 - 1092 - - - 1058 - 1092 - 1086 - - - 1086 - 1092 - 1144 - - - 1086 - 1144 - 1136 - - - 1136 - 1144 - 1182 - - - 1136 - 1182 - 1172 - - - 1172 - 1182 - 1218 - - - 1172 - 1218 - 1214 - - - 1214 - 1218 - 1250 - - - 1214 - 1250 - 1252 - - - 1252 - 1250 - 1300 - - - 1252 - 1300 - 1310 - - - 1310 - 1300 - 1340 - - - 1310 - 1340 - 1358 - - - 1358 - 1340 - 1406 - - - 1358 - 1406 - 1439 - - - 1499 - 1477 - 1445 - - - 1445 - 1477 - 1475 - - - 1445 - 1475 - 1406 - - - 1406 - 1475 - 1449 - - - 1406 - 1449 - 1439 - - - 1513 - 1503 - 1465 - - - 1465 - 1503 - 1459 - - - 1465 - 1459 - 1441 - - - 1441 - 1459 - 1409 - - - 1441 - 1409 - 1396 - - - 1396 - 1409 - 1360 - - - 1396 - 1360 - 1356 - - - 1356 - 1360 - 1328 - - - 1356 - 1328 - 1334 - - - 1334 - 1328 - 1304 - - - 1334 - 1304 - 1316 - - - 1316 - 1304 - 1270 - - - 1316 - 1270 - 1292 - - - 1292 - 1270 - 1242 - - - 1292 - 1242 - 1262 - - - 1262 - 1242 - 1212 - - - 1262 - 1212 - 1238 - - - 1238 - 1212 - 1174 - - - 1238 - 1174 - 1198 - - - 1198 - 1174 - 1134 - - - 1198 - 1134 - 1210 - - - 1210 - 1134 - 1150 - - - 1226 - 1266 - 1198 - - - 1198 - 1266 - 1258 - - - 1198 - 1258 - 1238 - - - 1238 - 1258 - 1296 - - - 1238 - 1296 - 1262 - - - 1262 - 1296 - 1318 - - - 1262 - 1318 - 1292 - - - 1292 - 1318 - 1336 - - - 1292 - 1336 - 1316 - - - 1316 - 1336 - 1348 - - - 1316 - 1348 - 1334 - - - 1334 - 1348 - 1368 - - - 1334 - 1368 - 1356 - - - 1356 - 1368 - 1392 - - - 1356 - 1392 - 1396 - - - 1396 - 1392 - 1417 - - - 1396 - 1417 - 1441 - - - 1441 - 1417 - 1447 - - - 1441 - 1447 - 1465 - - - 1465 - 1447 - 1466 - - - 1465 - 1466 - 1514 - - - 1478 - 1500 - 1460 - - - 1460 - 1500 - 1504 - - - 1460 - 1504 - 1466 - - - 1466 - 1504 - 1515 - - - 1466 - 1515 - 1514 - - - 1450 - 1476 - 1407 - - - 1407 - 1476 - 1446 - - - 1407 - 1446 - 1410 - - - 1410 - 1446 - 1442 - - - 1410 - 1442 - 1418 - - - 1418 - 1442 - 1428 - - - 1418 - 1428 - 1422 - - - 1422 - 1428 - 1421 - - - 1422 - 1421 - 1443 - - - 1443 - 1421 - 1423 - - - 1443 - 1423 - 1451 - - - 1451 - 1423 - 1431 - - - 1451 - 1431 - 1461 - - - 1461 - 1431 - 1435 - - - 1461 - 1435 - 1471 - - - 1471 - 1435 - 1437 - - - 1471 - 1437 - 1483 - - - 1483 - 1437 - 1425 - - - 1483 - 1425 - 1485 - - - 1485 - 1425 - 1411 - - - 1485 - 1411 - 1495 - - - 1495 - 1411 - 1473 - - - 1403 - 1440 - 1359 - - - 1359 - 1440 - 1407 - - - 1359 - 1407 - 1379 - - - 1379 - 1407 - 1410 - - - 1379 - 1410 - 1397 - - - 1397 - 1410 - 1418 - - - 1397 - 1418 - 1414 - - - 1414 - 1418 - 1422 - - - 1414 - 1422 - 1444 - - - 1444 - 1422 - 1443 - - - 1444 - 1443 - 1455 - - - 1455 - 1443 - 1451 - - - 1455 - 1451 - 1481 - - - 1481 - 1451 - 1461 - - - 1481 - 1461 - 1509 - - - 1509 - 1461 - 1471 - - - 1509 - 1471 - 1520 - - - 1520 - 1471 - 1483 - - - 1520 - 1483 - 1530 - - - 1530 - 1483 - 1485 - - - 1530 - 1485 - 1540 - - - 1540 - 1485 - 1536 - - - 1583 - 1607 - 1530 - - - 1530 - 1607 - 1560 - - - 1530 - 1560 - 1520 - - - 1520 - 1560 - 1538 - - - 1520 - 1538 - 1509 - - - 1509 - 1538 - 1522 - - - 1509 - 1522 - 1481 - - - 1481 - 1522 - 1493 - - - 1481 - 1493 - 1455 - - - 1455 - 1493 - 1456 - - - 1455 - 1456 - 1444 - - - 1444 - 1456 - 1424 - - - 1444 - 1424 - 1414 - - - 1414 - 1424 - 1393 - - - 1414 - 1393 - 1397 - - - 1397 - 1393 - 1361 - - - 1397 - 1361 - 1379 - - - 1379 - 1361 - 1341 - - - 1379 - 1341 - 1359 - - - 1359 - 1341 - 1321 - - - 1359 - 1321 - 1365 - - - 1249 - 1307 - 1279 - - - 1279 - 1307 - 1313 - - - 1279 - 1313 - 1321 - - - 1321 - 1313 - 1345 - - - 1321 - 1345 - 1365 - - - 1209 - 1241 - 1185 - - - 1185 - 1241 - 1235 - - - 1185 - 1235 - 1225 - - - 1225 - 1235 - 1261 - - - 1225 - 1261 - 1253 - - - 1253 - 1261 - 1301 - - - 1253 - 1301 - 1295 - - - 1295 - 1301 - 1329 - - - 1295 - 1329 - 1335 - - - 1335 - 1329 - 1369 - - - 1335 - 1369 - 1395 - - - 1395 - 1369 - 1432 - - - 1395 - 1432 - 1462 - - - 1462 - 1432 - 1482 - - - 1462 - 1482 - 1523 - - - 1523 - 1482 - 1529 - - - 1523 - 1529 - 1563 - - - 1563 - 1529 - 1562 - - - 1563 - 1562 - 1609 - - - 1609 - 1562 - 1597 - - - 1609 - 1597 - 1651 - - - 1651 - 1597 - 1645 - - - 1653 - 1654 - 1609 - - - 1609 - 1654 - 1610 - - - 1609 - 1610 - 1563 - - - 1563 - 1610 - 1553 - - - 1563 - 1553 - 1523 - - - 1523 - 1553 - 1510 - - - 1523 - 1510 - 1462 - - - 1462 - 1510 - 1436 - - - 1462 - 1436 - 1395 - - - 1395 - 1436 - 1349 - - - 1395 - 1349 - 1335 - - - 1335 - 1349 - 1305 - - - 1335 - 1305 - 1295 - - - 1295 - 1305 - 1251 - - - 1295 - 1251 - 1253 - - - 1253 - 1251 - 1217 - - - 1253 - 1217 - 1225 - - - 1225 - 1217 - 1177 - - - 1225 - 1177 - 1185 - - - 1185 - 1177 - 1141 - - - 1185 - 1141 - 1179 - - - 1057 - 1089 - 1083 - - - 1083 - 1089 - 1101 - - - 1083 - 1101 - 1141 - - - 1141 - 1101 - 1147 - - - 1141 - 1147 - 1179 - - - 993 - 1055 - 987 - - - 987 - 1055 - 1039 - - - 987 - 1039 - 1027 - - - 1027 - 1039 - 1077 - - - 1027 - 1077 - 1071 - - - 1071 - 1077 - 1129 - - - 1071 - 1129 - 1127 - - - 1127 - 1129 - 1167 - - - 1127 - 1167 - 1173 - - - 1173 - 1167 - 1219 - - - 1173 - 1219 - 1233 - - - 1233 - 1219 - 1271 - - - 1233 - 1271 - 1293 - - - 1293 - 1271 - 1337 - - - 1293 - 1337 - 1371 - - - 1371 - 1337 - 1438 - - - 1371 - 1438 - 1484 - - - 1484 - 1438 - 1521 - - - 1484 - 1521 - 1561 - - - 1561 - 1521 - 1586 - - - 1561 - 1586 - 1630 - - - 1630 - 1586 - 1636 - - - 937 - 975 - 933 - - - 933 - 975 - 987 - - - 933 - 987 - 983 - - - 983 - 987 - 1027 - - - 983 - 1027 - 1019 - - - 1019 - 1027 - 1071 - - - 1019 - 1071 - 1069 - - - 1069 - 1071 - 1127 - - - 1069 - 1127 - 1131 - - - 1131 - 1127 - 1173 - - - 1131 - 1173 - 1183 - - - 1183 - 1173 - 1233 - - - 1183 - 1233 - 1243 - - - 1243 - 1233 - 1293 - - - 1243 - 1293 - 1319 - - - 1319 - 1293 - 1371 - - - 1319 - 1371 - 1426 - - - 1426 - 1371 - 1484 - - - 1426 - 1484 - 1531 - - - 1531 - 1484 - 1561 - - - 1531 - 1561 - 1584 - - - 1584 - 1561 - 1608 - - - 1580 - 1541 - 1531 - - - 1531 - 1541 - 1486 - - - 1531 - 1486 - 1426 - - - 1426 - 1486 - 1351 - - - 1426 - 1351 - 1319 - - - 1319 - 1351 - 1263 - - - 1319 - 1263 - 1243 - - - 1243 - 1263 - 1197 - - - 1243 - 1197 - 1183 - - - 1183 - 1197 - 1137 - - - 1183 - 1137 - 1131 - - - 1131 - 1137 - 1075 - - - 1131 - 1075 - 1069 - - - 1069 - 1075 - 1017 - - - 1069 - 1017 - 1019 - - - 1019 - 1017 - 979 - - - 1019 - 979 - 983 - - - 983 - 979 - 929 - - - 983 - 929 - 933 - - - 933 - 929 - 877 - - - 933 - 877 - 911 - - - 775 - 835 - 841 - - - 841 - 835 - 847 - - - 841 - 847 - 877 - - - 877 - 847 - 865 - - - 877 - 865 - 911 - - - 713 - 769 - 739 - - - 739 - 769 - 779 - - - 739 - 779 - 783 - - - 783 - 779 - 845 - - - 783 - 845 - 851 - - - 851 - 845 - 893 - - - 851 - 893 - 897 - - - 897 - 893 - 923 - - - 897 - 923 - 927 - - - 927 - 923 - 981 - - - 927 - 981 - 985 - - - 985 - 981 - 1033 - - - 985 - 1033 - 1051 - - - 1051 - 1033 - 1087 - - - 1051 - 1087 - 1093 - - - 1093 - 1087 - 1159 - - - 1093 - 1159 - 1175 - - - 1175 - 1159 - 1239 - - - 1175 - 1239 - 1259 - - - 1259 - 1239 - 1331 - - - 1259 - 1331 - 1339 - - - 1339 - 1331 - 1381 - - - 667 - 703 - 681 - - - 681 - 703 - 739 - - - 681 - 739 - 747 - - - 747 - 739 - 783 - - - 747 - 783 - 789 - - - 789 - 783 - 851 - - - 789 - 851 - 853 - - - 853 - 851 - 897 - - - 853 - 897 - 891 - - - 891 - 897 - 927 - - - 891 - 927 - 931 - - - 931 - 927 - 985 - - - 931 - 985 - 991 - - - 991 - 985 - 1051 - - - 991 - 1051 - 1059 - - - 1059 - 1051 - 1093 - - - 1059 - 1093 - 1111 - - - 1111 - 1093 - 1175 - - - 1111 - 1175 - 1199 - - - 1199 - 1175 - 1259 - - - 1199 - 1259 - 1267 - - - 1267 - 1259 - 1303 - - - 1227 - 1211 - 1199 - - - 1199 - 1211 - 1135 - - - 1199 - 1135 - 1111 - - - 1111 - 1135 - 1061 - - - 1111 - 1061 - 1059 - - - 1059 - 1061 - 995 - - - 1059 - 995 - 991 - - - 991 - 995 - 935 - - - 991 - 935 - 931 - - - 931 - 935 - 883 - - - 931 - 883 - 891 - - - 891 - 883 - 849 - - - 891 - 849 - 853 - - - 853 - 849 - 791 - - - 853 - 791 - 789 - - - 789 - 791 - 753 - - - 789 - 753 - 747 - - - 747 - 753 - 685 - - - 747 - 685 - 681 - - - 681 - 685 - 625 - - - 681 - 625 - 627 - - - 519 - 569 - 591 - - - 591 - 569 - 573 - - - 591 - 573 - 625 - - - 625 - 573 - 617 - - - 625 - 617 - 627 - - - 471 - 511 - 505 - - - 505 - 511 - 539 - - - 505 - 539 - 555 - - - 555 - 539 - 601 - - - 555 - 601 - 609 - - - 609 - 601 - 653 - - - 609 - 653 - 655 - - - 655 - 653 - 699 - - - 655 - 699 - 693 - - - 693 - 699 - 751 - - - 693 - 751 - 745 - - - 745 - 751 - 781 - - - 745 - 781 - 777 - - - 777 - 781 - 839 - - - 777 - 839 - 829 - - - 829 - 839 - 863 - - - 829 - 863 - 861 - - - 861 - 863 - 941 - - - 861 - 941 - 943 - - - 943 - 941 - 999 - - - 943 - 999 - 947 - - - 947 - 999 - 1003 - - - 945 - 905 - 943 - - - 943 - 905 - 859 - - - 943 - 859 - 861 - - - 861 - 859 - 825 - - - 861 - 825 - 829 - - - 829 - 825 - 771 - - - 829 - 771 - 777 - - - 777 - 771 - 715 - - - 777 - 715 - 745 - - - 745 - 715 - 683 - - - 745 - 683 - 693 - - - 693 - 683 - 647 - - - 693 - 647 - 655 - - - 655 - 647 - 611 - - - 655 - 611 - 609 - - - 609 - 611 - 567 - - - 609 - 567 - 555 - - - 555 - 567 - 523 - - - 555 - 523 - 505 - - - 505 - 523 - 459 - - - 505 - 459 - 443 - - - 354 - 377 - 418 - - - 418 - 377 - 384 - - - 418 - 384 - 459 - - - 459 - 384 - 416 - - - 459 - 416 - 443 - - - 335 - 352 - 375 - - - 375 - 352 - 392 - - - 375 - 392 - 422 - - - 422 - 392 - 447 - - - 422 - 447 - 465 - - - 465 - 447 - 497 - - - 465 - 497 - 499 - - - 499 - 497 - 531 - - - 499 - 531 - 525 - - - 525 - 531 - 561 - - - 525 - 561 - 543 - - - 543 - 561 - 595 - - - 543 - 595 - 583 - - - 583 - 595 - 621 - - - 583 - 621 - 607 - - - 607 - 621 - 663 - - - 607 - 663 - 629 - - - 629 - 663 - 701 - - - 629 - 701 - 677 - - - 677 - 701 - 757 - - - 677 - 757 - 705 - - - 705 - 757 - 731 - - - 329 - 331 - 371 - - - 371 - 331 - 375 - - - 371 - 375 - 401 - - - 401 - 375 - 422 - - - 401 - 422 - 435 - - - 435 - 422 - 465 - - - 435 - 465 - 467 - - - 467 - 465 - 499 - - - 467 - 499 - 491 - - - 491 - 499 - 525 - - - 491 - 525 - 513 - - - 513 - 525 - 543 - - - 513 - 543 - 527 - - - 527 - 543 - 583 - - - 527 - 583 - 545 - - - 545 - 583 - 607 - - - 545 - 607 - 585 - - - 585 - 607 - 629 - - - 585 - 629 - 615 - - - 615 - 629 - 677 - - - 615 - 677 - 633 - - - 633 - 677 - 661 - - - 1778 - 1503 - 1780 - - - 1780 - 1503 - 1513 - - - 1780 - 1513 - 1798 - - - 1589 - 1312 - 1595 - - - 1595 - 1312 - 1344 - - - 1595 - 1344 - 1658 - - - 1658 - 1344 - 1364 - - - 1658 - 1364 - 1666 - - - 1666 - 1364 - 1402 - - - 1666 - 1402 - 1713 - - - 1713 - 1402 - 1439 - - - 1713 - 1439 - 1720 - - - 1720 - 1439 - 1449 - - - 1720 - 1449 - 1753 - - - 1753 - 1449 - 1475 - - - 1753 - 1475 - 1755 - - - 1755 - 1475 - 1477 - - - 1755 - 1477 - 1778 - - - 1778 - 1477 - 1499 - - - 1778 - 1499 - 1503 - - - 1228 - 1100 - 1246 - - - 1246 - 1100 - 1146 - - - 1246 - 1146 - 1346 - - - 1346 - 1146 - 1178 - - - 1346 - 1178 - 1376 - - - 1376 - 1178 - 1208 - - - 1376 - 1208 - 1511 - - - 1511 - 1208 - 1240 - - - 1511 - 1240 - 1518 - - - 1518 - 1240 - 1248 - - - 1518 - 1248 - 1589 - - - 1589 - 1248 - 1306 - - - 1589 - 1306 - 1312 - - - 672 - 774 - 708 - - - 708 - 774 - 834 - - - 708 - 834 - 784 - - - 784 - 834 - 846 - - - 784 - 846 - 822 - - - 822 - 846 - 864 - - - 822 - 864 - 906 - - - 906 - 864 - 910 - - - 906 - 910 - 918 - - - 918 - 910 - 936 - - - 918 - 936 - 1000 - - - 1000 - 936 - 974 - - - 1000 - 974 - 1012 - - - 1012 - 974 - 992 - - - 1012 - 992 - 1104 - - - 1104 - 992 - 1054 - - - 1104 - 1054 - 1138 - - - 1138 - 1054 - 1056 - - - 1138 - 1056 - 1228 - - - 1228 - 1056 - 1088 - - - 1228 - 1088 - 1100 - - - 214 - 518 - 245 - - - 245 - 518 - 568 - - - 245 - 568 - 296 - - - 296 - 568 - 572 - - - 296 - 572 - 319 - - - 319 - 572 - 616 - - - 319 - 616 - 403 - - - 403 - 616 - 626 - - - 403 - 626 - 468 - - - 468 - 626 - 666 - - - 468 - 666 - 552 - - - 552 - 666 - 702 - - - 552 - 702 - 596 - - - 596 - 702 - 712 - - - 596 - 712 - 672 - - - 672 - 712 - 768 - - - 672 - 768 - 774 - - - 75 - 353 - 88 - - - 88 - 353 - 376 - - - 88 - 376 - 111 - - - 111 - 376 - 383 - - - 111 - 383 - 123 - - - 123 - 383 - 415 - - - 123 - 415 - 155 - - - 155 - 415 - 442 - - - 155 - 442 - 177 - - - 177 - 442 - 470 - - - 177 - 470 - 214 - - - 214 - 470 - 510 - - - 214 - 510 - 518 - - - 112 - 377 - 89 - - - 89 - 377 - 354 - - - 89 - 354 - 76 - - - 76 - 354 - 352 - - - 76 - 352 - 64 - - - 64 - 352 - 335 - - - 64 - 335 - 54 - - - 54 - 335 - 331 - - - 54 - 331 - 45 - - - 45 - 331 - 329 - - - 45 - 329 - 53 - - - 53 - 329 - 330 - - - 53 - 330 - 63 - - - 63 - 330 - 334 - - - 63 - 334 - 75 - - - 75 - 334 - 351 - - - 75 - 351 - 353 - - - 404 - 617 - 320 - - - 320 - 617 - 573 - - - 320 - 573 - 297 - - - 297 - 573 - 569 - - - 297 - 569 - 246 - - - 246 - 569 - 519 - - - 246 - 519 - 215 - - - 215 - 519 - 511 - - - 215 - 511 - 178 - - - 178 - 511 - 471 - - - 178 - 471 - 156 - - - 156 - 471 - 443 - - - 156 - 443 - 124 - - - 124 - 443 - 416 - - - 124 - 416 - 112 - - - 112 - 416 - 384 - - - 112 - 384 - 377 - - - 907 - 865 - 823 - - - 823 - 865 - 847 - - - 823 - 847 - 785 - - - 785 - 847 - 835 - - - 785 - 835 - 709 - - - 709 - 835 - 775 - - - 709 - 775 - 673 - - - 673 - 775 - 769 - - - 673 - 769 - 597 - - - 597 - 769 - 713 - - - 597 - 713 - 553 - - - 553 - 713 - 703 - - - 553 - 703 - 469 - - - 469 - 703 - 667 - - - 469 - 667 - 404 - - - 404 - 667 - 627 - - - 404 - 627 - 617 - - - 1229 - 1089 - 1139 - - - 1139 - 1089 - 1057 - - - 1139 - 1057 - 1105 - - - 1105 - 1057 - 1055 - - - 1105 - 1055 - 1013 - - - 1013 - 1055 - 993 - - - 1013 - 993 - 1001 - - - 1001 - 993 - 975 - - - 1001 - 975 - 919 - - - 919 - 975 - 937 - - - 919 - 937 - 907 - - - 907 - 937 - 911 - - - 907 - 911 - 865 - - - 1659 - 1345 - 1596 - - - 1596 - 1345 - 1313 - - - 1596 - 1313 - 1590 - - - 1590 - 1313 - 1307 - - - 1590 - 1307 - 1519 - - - 1519 - 1307 - 1249 - - - 1519 - 1249 - 1512 - - - 1512 - 1249 - 1241 - - - 1512 - 1241 - 1377 - - - 1377 - 1241 - 1209 - - - 1377 - 1209 - 1347 - - - 1347 - 1209 - 1179 - - - 1347 - 1179 - 1247 - - - 1247 - 1179 - 1147 - - - 1247 - 1147 - 1229 - - - 1229 - 1147 - 1101 - - - 1229 - 1101 - 1089 - - - 1513 - 1514 - 1798 - - - 1798 - 1514 - 1515 - - - 1798 - 1515 - 1781 - - - 1781 - 1515 - 1504 - - - 1781 - 1504 - 1779 - - - 1779 - 1504 - 1500 - - - 1779 - 1500 - 1756 - - - 1756 - 1500 - 1478 - - - 1756 - 1478 - 1754 - - - 1754 - 1478 - 1476 - - - 1754 - 1476 - 1721 - - - 1721 - 1476 - 1450 - - - 1721 - 1450 - 1714 - - - 1714 - 1450 - 1440 - - - 1714 - 1440 - 1667 - - - 1667 - 1440 - 1403 - - - 1667 - 1403 - 1659 - - - 1659 - 1403 - 1365 - - - 1659 - 1365 - 1345 - - - 27 - 25 - 83 - - - 1149 - 1157 - 1273 - - - 1829 - 1798 - 1833 - - - 1833 - 1798 - 1781 - - - 1833 - 1781 - 1830 - - - 1756 - 1816 - 1806 - - - 1830 - 1781 - 1806 - - - 1806 - 1781 - 1779 - - - 1806 - 1779 - 1756 - - - 1816 - 1756 - 1818 - - - 1818 - 1756 - 1754 - - - 1818 - 1754 - 1762 - - - 1273 - 1229 - 1149 - - - 1149 - 1229 - 1139 - - - 1149 - 1139 - 1125 - - - 1125 - 1139 - 1105 - - - 1125 - 1105 - 1025 - - - 1105 - 1013 - 1025 - - - 1025 - 1013 - 1001 - - - 1025 - 1001 - 921 - - - 1001 - 919 - 921 - - - 921 - 919 - 907 - - - 921 - 907 - 815 - - - 907 - 823 - 815 - - - 815 - 823 - 785 - - - 815 - 785 - 719 - - - 719 - 785 - 709 - - - 719 - 709 - 695 - - - 695 - 709 - 689 - - - 689 - 709 - 673 - - - 689 - 673 - 575 - - - 83 - 112 - 27 - - - 27 - 112 - 89 - - - 27 - 89 - 39 - - - 39 - 89 - 76 - - - 39 - 76 - 13 - - - 76 - 64 - 13 - - - 13 - 64 - 54 - - - 13 - 54 - 9 - - - 54 - 45 - 9 - - - 9 - 45 - 53 - - - 9 - 53 - 12 - - - 88 - 111 - 24 - - - 24 - 111 - 82 - - - 53 - 63 - 12 - - - 12 - 63 - 75 - - - 12 - 75 - 38 - - - 38 - 75 - 88 - - - 38 - 88 - 26 - - - 26 - 88 - 24 - - - 906 - 920 - 814 - - - 906 - 918 - 920 - - - 920 - 918 - 1000 - - - 920 - 1000 - 1024 - - - 1138 - 1228 - 1154 - - - 1154 - 1228 - 1272 - - - 1000 - 1012 - 1024 - - - 1024 - 1012 - 1104 - - - 1024 - 1104 - 1122 - - - 1122 - 1104 - 1138 - - - 1122 - 1138 - 1148 - - - 1148 - 1138 - 1154 - - - 1703 - 1713 - 1761 - - - 1761 - 1713 - 1720 - - - 1761 - 1720 - 1817 - - - 1817 - 1720 - 1753 - - - 1817 - 1753 - 1815 - - - 1815 - 1753 - 1755 - - - 1815 - 1755 - 1805 - - - 1805 - 1755 - 1778 - - - 1805 - 1778 - 1829 - - - 1829 - 1778 - 1780 - - - 1829 - 1780 - 1798 - - - 1639 - 1658 - 1703 - - - 1703 - 1658 - 1666 - - - 1703 - 1666 - 1713 - - - 1550 - 1589 - 1639 - - - 1639 - 1589 - 1595 - - - 1639 - 1595 - 1658 - - - 1429 - 1511 - 1550 - - - 1550 - 1511 - 1518 - - - 1550 - 1518 - 1589 - - - 1228 - 1246 - 1272 - - - 1272 - 1246 - 1346 - - - 1272 - 1346 - 1429 - - - 1429 - 1346 - 1376 - - - 1429 - 1376 - 1511 - - - 412 - 552 - 574 - - - 574 - 552 - 596 - - - 574 - 596 - 686 - - - 686 - 596 - 672 - - - 686 - 672 - 694 - - - 694 - 672 - 708 - - - 694 - 708 - 716 - - - 716 - 708 - 784 - - - 716 - 784 - 814 - - - 814 - 784 - 822 - - - 814 - 822 - 906 - - - 290 - 403 - 412 - - - 412 - 403 - 468 - - - 412 - 468 - 552 - - - 202 - 296 - 290 - - - 290 - 296 - 319 - - - 290 - 319 - 403 - - - 138 - 214 - 202 - - - 202 - 214 - 245 - - - 202 - 245 - 296 - - - 111 - 123 - 82 - - - 82 - 123 - 155 - - - 82 - 155 - 138 - - - 138 - 155 - 177 - - - 138 - 177 - 214 - - - 139 - 156 - 83 - - - 83 - 156 - 124 - - - 83 - 124 - 112 - - - 203 - 215 - 139 - - - 139 - 215 - 178 - - - 139 - 178 - 156 - - - 291 - 297 - 203 - - - 203 - 297 - 246 - - - 203 - 246 - 215 - - - 413 - 404 - 291 - - - 291 - 404 - 320 - - - 291 - 320 - 297 - - - 673 - 597 - 575 - - - 575 - 597 - 553 - - - 575 - 553 - 413 - - - 413 - 553 - 469 - - - 413 - 469 - 404 - - - 1430 - 1347 - 1273 - - - 1273 - 1347 - 1247 - - - 1273 - 1247 - 1229 - - - 1551 - 1512 - 1430 - - - 1430 - 1512 - 1377 - - - 1430 - 1377 - 1347 - - - 1640 - 1590 - 1551 - - - 1551 - 1590 - 1519 - - - 1551 - 1519 - 1512 - - - 1704 - 1659 - 1640 - - - 1640 - 1659 - 1596 - - - 1640 - 1596 - 1590 - - - 1754 - 1721 - 1762 - - - 1762 - 1721 - 1714 - - - 1762 - 1714 - 1704 - - - 1704 - 1714 - 1667 - - - 1704 - 1667 - 1659 - - - 25 - 236 - 83 - - - 83 - 236 - 248 - - - 83 - 248 - 139 - - - 139 - 248 - 293 - - - 139 - 293 - 203 - - - 203 - 293 - 364 - - - 203 - 364 - 291 - - - 291 - 364 - 495 - - - 291 - 495 - 413 - - - 413 - 495 - 603 - - - 413 - 603 - 575 - - - 575 - 603 - 688 - - - 575 - 688 - 689 - - - 718 - 688 - 603 - - - 308 - 235 - 247 - - - 1123 - 1155 - 1190 - - - 1535 - 1606 - 1582 - - - 1327 - 1367 - 1543 - - - 1543 - 1367 - 1401 - - - 1543 - 1401 - 1569 - - - 1569 - 1401 - 1408 - - - 1569 - 1408 - 1578 - - - 1578 - 1408 - 1400 - - - 1578 - 1400 - 1568 - - - 1568 - 1400 - 1366 - - - 1568 - 1366 - 1542 - - - 1542 - 1366 - 1534 - - - 1534 - 1366 - 1326 - - - 1534 - 1326 - 1605 - - - 1094 - 1044 - 1064 - - - 1064 - 1044 - 972 - - - 1064 - 972 - 988 - - - 988 - 972 - 912 - - - 988 - 912 - 908 - - - 908 - 912 - 854 - - - 908 - 854 - 818 - - - 818 - 854 - 772 - - - 818 - 772 - 732 - - - 732 - 772 - 717 - - - 717 - 772 - 706 - - - 717 - 706 - 687 - - - 492 - 456 - 288 - - - 288 - 456 - 436 - - - 288 - 436 - 263 - - - 263 - 436 - 431 - - - 263 - 431 - 264 - - - 431 - 437 - 264 - - - 264 - 437 - 457 - - - 264 - 457 - 289 - - - 289 - 457 - 309 - - - 309 - 457 - 493 - - - 309 - 493 - 236 - - - 707 - 773 - 733 - - - 733 - 773 - 855 - - - 733 - 855 - 819 - - - 819 - 855 - 913 - - - 819 - 913 - 909 - - - 909 - 913 - 973 - - - 909 - 973 - 989 - - - 989 - 973 - 1045 - - - 989 - 1045 - 1065 - - - 1065 - 1045 - 1124 - - - 1124 - 1045 - 1095 - - - 1124 - 1095 - 1156 - - - 1064 - 1123 - 1094 - - - 1094 - 1123 - 1190 - - - 1094 - 1190 - 1164 - - - 1164 - 1190 - 1298 - - - 1164 - 1298 - 1230 - - - 1230 - 1298 - 1415 - - - 1230 - 1415 - 1280 - - - 1280 - 1415 - 1524 - - - 1280 - 1524 - 1326 - - - 1326 - 1524 - 1581 - - - 1326 - 1581 - 1605 - - - 288 - 308 - 492 - - - 492 - 308 - 247 - - - 492 - 247 - 534 - - - 534 - 247 - 292 - - - 534 - 292 - 592 - - - 592 - 292 - 363 - - - 592 - 363 - 644 - - - 644 - 363 - 494 - - - 644 - 494 - 706 - - - 706 - 494 - 602 - - - 706 - 602 - 687 - - - 733 - 718 - 707 - - - 707 - 718 - 603 - - - 707 - 603 - 645 - - - 645 - 603 - 495 - - - 645 - 495 - 593 - - - 593 - 495 - 364 - - - 593 - 364 - 535 - - - 535 - 364 - 293 - - - 535 - 293 - 493 - - - 493 - 293 - 248 - - - 493 - 248 - 236 - - - 1543 - 1535 - 1327 - - - 1327 - 1535 - 1582 - - - 1327 - 1582 - 1281 - - - 1281 - 1582 - 1525 - - - 1281 - 1525 - 1231 - - - 1231 - 1525 - 1416 - - - 1231 - 1416 - 1165 - - - 1165 - 1416 - 1299 - - - 1165 - 1299 - 1095 - - - 1095 - 1299 - 1191 - - - 1095 - 1191 - 1156 - - - 973 - 913 - 855 - - - 973 - 855 - 1045 - - - 1045 - 855 - 773 - - - 1045 - 773 - 1095 - - - 1095 - 773 - 707 - - - 1095 - 707 - 1165 - - - 1165 - 707 - 645 - - - 1165 - 645 - 1231 - - - 1231 - 645 - 593 - - - 1231 - 593 - 1281 - - - 1281 - 593 - 535 - - - 1281 - 535 - 1327 - - - 1327 - 535 - 493 - - - 1327 - 493 - 1367 - - - 1367 - 493 - 457 - - - 1367 - 457 - 1401 - - - 1401 - 457 - 437 - - - 1401 - 437 - 1408 - - - 1408 - 437 - 431 - - - 1408 - 431 - 436 - - - 456 - 492 - 436 - - - 436 - 492 - 1164 - - - 436 - 1164 - 1280 - - - 1280 - 1164 - 1230 - - - 1400 - 1408 - 1366 - - - 1366 - 1408 - 436 - - - 1366 - 436 - 1326 - - - 1326 - 436 - 1280 - - - 644 - 706 - 592 - - - 592 - 706 - 1164 - - - 592 - 1164 - 534 - - - 534 - 1164 - 492 - - - 1094 - 1164 - 1044 - - - 1044 - 1164 - 706 - - - 1044 - 706 - 972 - - - 972 - 706 - 772 - - - 972 - 772 - 912 - - - 912 - 772 - 854 - - - 1806 - 1535 - 1543 - - - 1806 - 1543 - 1830 - - - 1830 - 1543 - 1569 - - - 1830 - 1569 - 1833 - - - 1833 - 1569 - 1578 - - - 1833 - 1578 - 1829 - - - 1829 - 1578 - 1568 - - - 1829 - 1568 - 1805 - - - 1805 - 1568 - 1542 - - - 1805 - 1542 - 1534 - - - 1805 - 1534 - 1815 - - - 1815 - 1534 - 1605 - - - 1815 - 1605 - 1817 - - - 1818 - 1606 - 1816 - - - 1816 - 1606 - 1535 - - - 1816 - 1535 - 1806 - - - 1122 - 1123 - 1064 - - - 1122 - 1064 - 1024 - - - 1024 - 1064 - 988 - - - 1024 - 988 - 920 - - - 920 - 988 - 908 - - - 920 - 908 - 814 - - - 814 - 908 - 818 - - - 814 - 818 - 716 - - - 716 - 818 - 732 - - - 716 - 732 - 717 - - - 716 - 717 - 694 - - - 694 - 717 - 687 - - - 694 - 687 - 686 - - - 1154 - 1155 - 1148 - - - 1148 - 1155 - 1123 - - - 1148 - 1123 - 1122 - - - 38 - 308 - 288 - - - 38 - 288 - 12 - - - 12 - 288 - 263 - - - 12 - 263 - 9 - - - 9 - 263 - 264 - - - 9 - 264 - 13 - - - 13 - 264 - 39 - - - 39 - 264 - 289 - - - 39 - 289 - 309 - - - 39 - 309 - 27 - - - 27 - 309 - 236 - - - 27 - 236 - 25 - - - 24 - 235 - 26 - - - 26 - 235 - 308 - - - 26 - 308 - 38 - - - 718 - 733 - 719 - - - 719 - 733 - 819 - - - 719 - 819 - 815 - - - 815 - 819 - 909 - - - 815 - 909 - 921 - - - 921 - 909 - 1025 - - - 1025 - 909 - 989 - - - 1025 - 989 - 1125 - - - 1125 - 989 - 1065 - - - 1125 - 1065 - 1124 - - - 1125 - 1124 - 1149 - - - 1149 - 1124 - 1156 - - - 1149 - 1156 - 1157 - - - 689 - 688 - 695 - - - 695 - 688 - 718 - - - 695 - 718 - 719 - - - - - diff --git a/software/Print3r/models/Sphere20Face.amf b/software/Print3r/models/Sphere20Face.amf deleted file mode 100644 index 6ca2db70..00000000 --- a/software/Print3r/models/Sphere20Face.amf +++ /dev/null @@ -1,257 +0,0 @@ - - - - Sphere20 - - - - - - -2.62866 - 4.25325 - 0 - - - -0.525731 - 0.850651 - 0 - - - - - 2.62866 - 4.25325 - 0 - - - 0.525731 - 0.850651 - 0 - - - - - -2.62866 - -4.25325 - 0 - - - -0.525731 - -0.850651 - 0 - - - - - 2.62866 - -4.25325 - 0 - - - 0.525731 - -0.850651 - 0 - - - - - 0 - -2.62866 - 4.25325 - - - 0 - -0.525731 - 0.850651 - - - - - 0 - 2.62866 - 4.25325 - - - 0 - 0.525731 - 0.850651 - - - - - 0 - -2.62866 - -4.25325 - - - 0 - -0.525731 - -0.850651 - - - - - 0 - 2.62866 - -4.25325 - - - 0 - 0.525731 - -0.850651 - - - - - 4.25325 - 0 - -2.62866 - - - 0.850651 - 0 - -0.525731 - - - - - 4.25325 - 0 - 2.62866 - - - 0.850651 - 0 - 0.525731 - - - - - -4.25325 - 0 - -2.62866 - - - -0.850651 - 0 - -0.525731 - - - - - -4.25325 - 0 - 2.62866 - - - -0.850651 - 0 - 0.525731 - - - - - - 0 - 11 - 5 - - - 0 - 5 - 1 - - - 0 - 1 - 7 - - - 0 - 7 - 10 - - - 0 - 10 - 11 - - - 1 - 5 - 9 - - - 5 - 11 - 4 - - - 11 - 10 - 2 - - - 10 - 7 - 6 - - - 7 - 1 - 8 - - - 3 - 9 - 4 - - - 3 - 4 - 2 - - - 3 - 2 - 6 - - - 3 - 6 - 8 - - - 3 - 8 - 9 - - - 4 - 9 - 5 - - - 2 - 4 - 11 - - - 6 - 2 - 10 - - - 8 - 6 - 7 - - - 9 - 8 - 1 - - - - - diff --git a/software/Print3r/models/cow-nonormals.obj b/software/Print3r/models/cow-nonormals.obj deleted file mode 100644 index 99e92825..00000000 --- a/software/Print3r/models/cow-nonormals.obj +++ /dev/null @@ -1,10388 +0,0 @@ -# The units used in this file are centimeters. -v 2.229345 -0.992723 -0.862826 -v 2.292449 -0.871852 -0.882400 -v 2.410367 -0.777999 -0.841105 -v 2.407309 -0.974980 -0.805091 -v 2.539200 -0.727778 -0.750475 -v 2.520417 -0.954785 -0.739445 -v 2.637655 -0.768176 -0.637039 -v 2.669281 -0.930664 -0.557166 -v 2.514167 -1.077721 -0.706614 -v 2.386465 -1.116066 -0.761367 -v 2.180012 -1.130557 -0.821812 -v 2.354287 -1.193746 -0.735189 -v 2.158051 -1.209613 -0.783941 -v 2.318787 -1.294090 -0.673863 -v 2.126237 -1.330172 -0.721011 -v 2.274533 -1.433487 -0.567366 -v 2.486533 -1.274971 -0.627822 -v 2.457060 -1.400958 -0.539866 -v 2.549322 -1.335209 -0.535156 -v 2.617970 -1.235597 -0.520238 -v 2.510841 -1.158786 -0.678057 -v 2.670253 -1.108365 -0.544018 -v 2.710721 -0.830091 -0.532493 -v 2.857666 -0.930625 -0.391195 -v 2.757946 -1.099958 -0.471684 -v 2.847364 -1.103812 -0.402301 -v 2.803736 -1.255869 -0.438328 -v 2.740886 -1.339225 -0.463604 -v 2.663024 -1.440487 -0.478149 -v 2.515314 -1.507063 -0.483275 -v 2.422296 -1.510915 -0.494169 -v 2.249663 -1.492705 -0.531270 -v 2.079600 -1.473377 -0.654997 -v 2.960118 -0.941827 -0.284743 -v 2.928787 -1.107467 -0.312054 -v 2.893096 -1.302168 -0.332049 -v 2.824356 -1.407256 -0.355013 -v 2.721135 -1.520418 -0.362378 -v 2.545261 -1.593300 -0.386310 -v 2.396607 -1.593239 -0.389972 -v 2.243492 -1.584783 -0.431143 -v 2.048200 -1.581983 -0.555832 -v 2.970902 -0.959664 0.000000 -v 2.931756 -1.129655 0.000000 -v 2.896234 -1.319560 0.000000 -v 2.821376 -1.431534 0.000000 -v 2.706963 -1.528854 0.000000 -v 2.534227 -1.617078 0.000000 -v 2.348182 -1.624595 0.000000 -v 2.167167 -1.596326 0.000000 -v 1.920432 -1.567396 0.000000 -v 2.881063 -0.493146 -0.521968 -v 2.736198 -0.346225 -0.659345 -v 2.835437 -0.231101 -0.577890 -v 2.986408 -0.413503 -0.428964 -v 2.910769 -0.638444 -0.431191 -v 2.825540 -0.567578 -0.552597 -v 2.688131 -0.517509 -0.672975 -v 2.647368 -0.611550 -0.669485 -v 2.618307 -0.549092 -0.805491 -v 2.993075 -0.708434 -0.342596 -v 3.045715 -0.767786 -0.261741 -v 3.065544 -0.788768 0.000000 -v 3.107533 -0.691019 -0.264602 -v 3.118124 -0.703925 0.000000 -v 3.053144 -0.609681 -0.326931 -f 3 4 2 -f 1 2 4 -f 5 6 3 -f 4 3 6 -f 6 5 7 -f 7 8 6 -f 8 9 6 -f 10 4 9 -f 6 9 4 -f 11 1 10 -f 4 10 1 -f 10 12 11 -f 11 12 13 -f 13 12 15 -f 12 14 15 -f 15 14 16 -f 16 14 18 -f 14 17 18 -f 18 17 19 -f 19 17 20 -f 22 20 21 -f 20 17 21 -f 21 17 12 -f 17 14 12 -f 12 10 21 -f 10 9 21 -f 8 22 9 -f 21 9 22 -f 8 7 23 -f 22 24 25 -f 25 20 22 -f 20 25 27 -f 25 26 27 -f 26 25 24 -f 20 27 28 -f 20 28 19 -f 28 29 19 -f 30 18 29 -f 19 29 18 -f 18 30 31 -f 18 31 16 -f 31 32 16 -f 33 15 32 -f 16 32 15 -f 34 35 24 -f 24 35 26 -f 35 36 26 -f 26 36 27 -f 36 37 27 -f 27 37 28 -f 37 38 29 -f 39 30 38 -f 29 38 30 -f 40 31 39 -f 30 39 31 -f 32 31 41 -f 31 40 41 -f 41 42 32 -f 32 42 33 -f 44 35 43 -f 34 43 35 -f 45 36 44 -f 35 44 36 -f 37 36 46 -f 36 45 46 -f 47 38 46 -f 37 46 38 -f 48 39 47 -f 38 47 39 -f 49 40 48 -f 39 48 40 -f 50 41 49 -f 40 49 41 -f 42 41 51 -f 41 50 51 -f 52 53 54 -f 54 55 52 -f 52 55 56 -f 56 57 52 -f 52 57 58 -f 7 5 59 -f 59 5 60 -f 60 58 59 -f 56 23 57 -f 7 57 23 -f 23 56 24 -f 24 56 61 -f 24 61 34 -f 61 62 34 -f 34 62 43 -f 62 63 43 -f 64 65 62 -f 63 62 65 -f 24 22 8 -f 23 24 8 -f 59 58 57 -f 7 59 57 -f 55 66 56 -f 66 61 56 -f 66 64 61 -f 61 64 62 -v -2.033406 -0.910030 -0.964220 -v -2.119856 -1.128800 -0.970960 -v -2.306662 -1.116976 -0.961238 -v -2.031698 -1.097344 -0.966701 -v -1.782298 -1.020581 -0.943381 -v -2.462835 -1.305500 -0.966395 -v -2.337617 -1.334842 -0.966761 -v -2.161843 -1.325837 -0.957465 -v -2.042059 -1.312976 -0.940911 -v -1.776785 -1.275107 -0.914703 -v -1.709172 -1.283232 -0.897427 -v -1.456655 -1.295527 -0.894240 -v -2.591357 -1.510845 -0.885470 -v -2.417777 -1.553136 -0.887222 -v -2.223917 -1.541268 -0.879260 -v -2.049879 -1.562369 -0.829319 -v -1.777628 -1.473076 -0.845827 -v -1.778934 -1.550199 -0.776454 -v -1.686329 -1.414405 -0.869373 -v -1.592146 -1.408592 -0.838483 -v -1.552229 -1.555077 -0.735708 -v -1.659758 -1.544361 -0.788181 -v -1.366873 -1.340211 -0.907567 -v -1.376186 -1.661988 -0.718954 -v -1.198513 -1.456102 -0.885435 -v -1.200688 -1.577575 -0.799188 -v -0.953236 -1.545941 -0.899180 -f 67 68 69 -f 68 67 70 -f 70 67 71 -f 72 69 73 -f 73 69 74 -f 69 68 74 -f 75 74 70 -f 74 68 70 -f 71 76 70 -f 75 70 76 -f 76 71 77 -f 77 71 78 -f 79 72 80 -f 72 73 80 -f 81 80 74 -f 80 73 74 -f 82 81 75 -f 81 74 75 -f 75 83 82 -f 82 83 84 -f 83 75 76 -f 83 76 85 -f 76 77 85 -f 78 86 77 -f 85 77 86 -f 86 78 87 -f 87 88 86 -f 86 88 85 -f 88 84 85 -f 85 84 83 -f 90 87 89 -f 87 78 89 -f 90 89 92 -f 89 91 92 -f 92 91 93 -v -0.953236 -1.545941 -0.899180 -v -1.091175 -1.707120 -0.727242 -v -1.226563 -1.655159 -0.687343 -v -1.200688 -1.577575 -0.799188 -v -1.376186 -1.661988 -0.718954 -v -1.089642 -1.757196 -0.685154 -v -1.266738 -1.691944 -0.557922 -v -0.972089 -1.774507 -0.768570 -v -0.812845 -1.785424 -0.768511 -v -0.535144 -1.615983 -0.920556 -v -0.680046 -1.768325 -0.819080 -v -0.564074 -1.789401 -0.803191 -v -0.422877 -1.751200 -0.823423 -v -0.063012 -1.583021 -0.865082 -v -0.078470 -1.688266 -0.800230 -v -0.094135 -1.769086 -0.556924 -v -0.543078 -1.810473 -0.563825 -v -0.977375 -1.793126 -0.498747 -v -1.108758 -1.770749 -0.473033 -v -1.305099 -1.708460 -0.484230 -v -1.397474 -1.693815 -0.570541 -f 94 95 97 -f 95 96 97 -f 97 96 98 -f 100 96 99 -f 96 95 99 -f 95 94 101 -f 101 94 102 -f 103 104 94 -f 102 94 104 -f 104 103 105 -f 105 103 106 -f 103 107 106 -f 106 107 108 -f 110 106 109 -f 106 108 109 -f 110 105 106 -f 105 110 104 -f 111 102 110 -f 104 110 102 -f 99 95 101 -f 100 99 112 -f 99 111 112 -f 112 113 100 -f 100 98 96 -f 98 100 114 -v -1.397474 -1.693815 -0.570541 -v -1.480217 -1.656600 -0.606638 -v -1.376186 -1.661988 -0.718954 -v -1.552229 -1.555077 -0.735708 -v -1.601625 -1.593321 -0.605607 -v -1.519339 -1.653776 -0.501741 -v -1.406693 -1.697325 -0.450399 -v -1.576196 -1.696317 -0.358146 -v -1.386502 -1.718441 -0.350823 -f 115 116 117 -f 117 116 118 -f 118 116 119 -f 119 116 120 -f 121 120 115 -f 120 116 115 -f 119 120 122 -f 122 120 123 -f 120 121 123 -v -1.386502 -1.718441 -0.350823 -v -1.406693 -1.697325 -0.450399 -v -1.305099 -1.708460 -0.484230 -v -0.972514 -1.822778 -0.372649 -v -0.977375 -1.793126 -0.498747 -v -0.543078 -1.810473 -0.563825 -v -0.523838 -1.850065 -0.388007 -v -0.094135 -1.769086 -0.556924 -v -0.112666 -1.806584 -0.383324 -v 0.489819 -1.524947 -0.672392 -v 0.480235 -1.631521 -0.401961 -v 0.446550 -1.672950 0.000000 -v -0.155114 -1.828285 0.000000 -v -0.530369 -1.860806 0.000000 -v -0.956007 -1.825728 0.000000 -v -1.395728 -1.723811 0.000000 -f 124 125 126 -f 124 126 127 -f 129 130 128 -f 127 128 130 -f 131 132 129 -f 130 129 132 -f 133 134 131 -f 132 131 134 -f 134 135 132 -f 135 136 132 -f 132 136 130 -f 136 137 130 -f 130 137 127 -f 137 138 127 -f 138 139 127 -f 127 139 124 -v -1.386502 -1.718441 -0.350823 -v -1.395728 -1.723811 0.000000 -v -1.610025 -1.711571 0.000000 -v -1.576196 -1.696317 -0.358146 -v -1.799827 -1.753136 0.000000 -v -1.764045 -1.764987 -0.406586 -v -1.747790 -1.667608 -0.606340 -v -1.601625 -1.593321 -0.605607 -v -1.778934 -1.550199 -0.776454 -v -1.659758 -1.544361 -0.788181 -v -1.552229 -1.555077 -0.735708 -v -2.734184 -1.717948 -0.749581 -v -2.591357 -1.510845 -0.885470 -v -2.417777 -1.553136 -0.887222 -v -2.508885 -1.719933 -0.721675 -v -2.223917 -1.541268 -0.879260 -v -2.267049 -1.753901 -0.662106 -v -2.049879 -1.562369 -0.829319 -v -2.037371 -1.736360 -0.656787 -v -1.883160 -1.829718 -0.401567 -v -1.936032 -1.829617 -0.488916 -v -2.027242 -1.813012 -0.555232 -v -2.126375 -1.866497 -0.502895 -v -2.176551 -1.873816 -0.445782 -v -2.317557 -1.874200 -0.470587 -v -2.446375 -1.893261 -0.494110 -v -2.466779 -1.857679 -0.570461 -v -2.547737 -1.833025 -0.609321 -v -2.647220 -1.844010 -0.594347 -v -2.699966 -1.850397 -0.570070 -v -2.811581 -1.798210 -0.712737 -v -2.941731 -1.787431 -0.442574 -v -2.709403 -1.879947 -0.508775 -v -2.684452 -1.891207 -0.447388 -v -2.892162 -1.781087 0.000000 -v -2.614084 -1.905005 -0.404925 -v -2.656867 -1.853045 0.000000 -v -2.503818 -1.909806 -0.431456 -v -2.348005 -1.869142 0.000000 -v -2.147113 -1.903198 -0.362462 -v -2.062725 -1.884246 -0.307336 -v -2.092921 -1.839622 0.000000 -v -1.946306 -1.872735 -0.344251 -f 142 143 141 -f 140 141 143 -f 145 143 144 -f 143 142 144 -f 147 143 146 -f 145 146 143 -f 147 146 148 -f 148 149 147 -f 147 149 150 -f 151 152 154 -f 152 153 154 -f 156 154 155 -f 154 153 155 -f 156 155 158 -f 155 157 158 -f 157 148 158 -f 158 148 146 -f 159 160 145 -f 146 145 160 -f 158 146 161 -f 160 161 146 -f 162 156 161 -f 158 161 156 -f 164 156 163 -f 156 162 163 -f 164 165 156 -f 165 166 156 -f 154 156 167 -f 156 166 167 -f 151 154 168 -f 154 167 168 -f 168 169 151 -f 151 169 170 -f 172 173 171 -f 171 173 174 -f 173 175 174 -f 174 175 176 -f 176 175 178 -f 175 177 178 -f 164 178 165 -f 178 177 165 -f 164 163 178 -f 163 179 178 -f 180 181 179 -f 178 179 181 -f 181 180 144 -f 180 182 144 -f 145 144 159 -f 144 182 159 -v -1.089642 -1.757196 -0.685154 -v -0.972089 -1.774507 -0.768570 -v -0.977375 -1.793126 -0.498747 -v -0.812845 -1.785424 -0.768511 -f 183 184 185 -f 186 185 184 -v -3.139394 -1.687482 -0.638546 -v -3.120907 -1.707924 -0.431829 -v -3.314868 -1.599081 -0.439626 -v -3.304804 -1.582192 -0.643445 -v -3.442085 -1.484120 -0.406377 -v -3.387254 -1.486027 -0.672861 -v -3.557869 -1.325941 -0.378030 -v -3.533910 -1.330455 -0.568246 -v -3.639586 -1.140102 -0.333800 -v -3.631179 -1.157838 -0.505610 -v -3.686518 -0.955181 -0.320349 -v -3.667859 -0.964867 -0.464702 -v -3.676599 -0.729578 -0.330724 -v -3.665774 -0.734080 -0.446286 -v -3.616627 -0.350374 -0.338492 -v -3.595973 -0.346391 -0.426453 -v -3.570243 -0.060093 -0.344854 -v -3.529709 -0.065998 -0.437217 -v -3.535416 0.191408 -0.338478 -v -3.516840 0.149002 -0.430359 -v -3.536654 0.442277 -0.322000 -v -3.552320 0.219613 0.000000 -v -3.544507 0.467147 0.000000 -v -3.583763 -0.052271 0.000000 -v -3.637643 -0.356271 0.000000 -v -3.673607 -0.720796 0.000000 -v -3.678793 -0.926816 0.000000 -v -3.650579 -1.142448 0.000000 -v -3.522115 -1.366623 0.000000 -v -3.417689 -1.494416 0.000000 -v -3.271035 -1.609292 0.000000 -v -3.110300 -1.691720 0.000000 -v -2.941731 -1.787431 -0.442574 -v -2.892162 -1.781087 0.000000 -v -3.470778 -0.078218 -0.546398 -v -3.526766 -0.317542 -0.560837 -v -3.569993 -0.731989 -0.649435 -v -3.550120 -0.984868 -0.675228 -v -3.492599 -1.180646 -0.692282 -v -3.335942 -1.365685 -0.724590 -v -3.415655 -0.308965 -0.671045 -v -3.283698 -0.730967 -0.793898 -v -3.438226 -0.721479 -0.728141 -v -3.355398 -0.969157 -0.766213 -v -3.279790 -1.162072 -0.784602 -v -3.251210 -0.948205 -0.819868 -v -3.566995 0.656967 0.000000 -v -3.556552 0.704883 -0.280630 -v -3.599077 0.796217 0.000000 -v -3.578170 0.837714 -0.288502 -f 188 189 187 -f 187 189 190 -f 192 190 191 -f 190 189 191 -f 191 193 192 -f 192 193 194 -f 194 193 196 -f 193 195 196 -f 196 195 198 -f 195 197 198 -f 197 199 198 -f 198 199 200 -f 202 200 201 -f 200 199 201 -f 201 203 202 -f 202 203 204 -f 205 206 203 -f 204 203 206 -f 206 205 207 -f 205 208 207 -f 207 208 209 -f 208 205 210 -f 205 203 210 -f 201 199 211 -f 211 199 212 -f 199 197 212 -f 212 197 213 -f 213 197 214 -f 197 195 214 -f 215 214 193 -f 214 195 193 -f 191 216 193 -f 215 193 216 -f 189 217 191 -f 216 191 217 -f 189 188 217 -f 217 188 218 -f 220 218 219 -f 218 188 219 -f 203 201 210 -f 210 201 211 -f 206 221 204 -f 202 204 222 -f 204 221 222 -f 223 200 222 -f 202 222 200 -f 224 198 223 -f 200 223 198 -f 198 224 196 -f 224 225 196 -f 226 194 225 -f 196 225 194 -f 194 226 192 -f 227 228 229 -f 221 227 222 -f 222 227 223 -f 227 229 223 -f 230 224 229 -f 223 229 224 -f 225 224 231 -f 224 230 231 -f 225 231 226 -f 231 230 232 -f 234 207 233 -f 207 209 233 -f 235 236 233 -f 234 233 236 -f 230 229 232 -f 232 229 228 -v 1.734568 -2.965876 -0.986396 -v 1.718315 -2.775468 -0.921796 -v 1.771416 -2.769024 -0.946100 -v 1.806371 -2.949735 -0.984058 -v 1.911792 -2.895773 -0.950117 -v 1.880971 -2.733242 -0.890200 -v 1.960643 -2.712860 -0.900890 -v 2.021366 -2.881725 -0.945561 -v 1.994078 -2.713047 -0.824553 -v 2.057496 -2.887282 -0.844225 -v 1.735077 -3.022732 -0.972751 -v 1.802387 -3.089615 -0.961851 -v 1.721745 -3.116887 -0.979111 -v 1.811797 -3.135641 -0.933096 -f 237 238 240 -f 238 239 240 -f 244 241 243 -f 241 242 243 -f 246 244 245 -f 244 243 245 -f 237 240 247 -f 247 248 249 -f 249 248 250 -v 1.970051 -3.141862 -1.065178 -v 2.110033 -3.148257 -1.068816 -v 2.148880 -3.221616 -1.076203 -v 2.031262 -3.256709 -1.111122 -v 2.247981 -3.342804 -1.127459 -v 2.138771 -3.397683 -1.214726 -v 2.343303 -3.507846 -1.195262 -v 2.254361 -3.550931 -1.235118 -v 2.025468 -3.556842 -1.204841 -v 1.981186 -3.441282 -1.180532 -v 1.926176 -3.288880 -1.093746 -v 1.886443 -3.191742 -1.047318 -v 2.281229 -3.338250 -1.043475 -v 2.201939 -3.226457 -0.996503 -v 2.170039 -3.134504 -0.978866 -v 2.091539 -3.032437 -0.947029 -v 2.113587 -3.011851 -0.851648 -v 2.217369 -3.156093 -0.888927 -v 1.841888 -3.246003 -1.014774 -v 1.865135 -3.353827 -1.054981 -v 1.919391 -3.487078 -1.110869 -v 1.980621 -3.043895 -0.964237 -f 251 252 254 -f 252 253 254 -f 254 253 256 -f 253 255 256 -f 255 257 256 -f 256 257 258 -f 259 260 258 -f 258 260 256 -f 256 260 254 -f 260 261 254 -f 254 261 251 -f 261 262 251 -f 255 253 263 -f 263 253 264 -f 264 253 265 -f 253 252 265 -f 268 265 267 -f 265 266 267 -f 261 270 262 -f 269 262 270 -f 261 260 270 -f 271 270 260 -f 260 259 271 -f 272 265 252 -v 2.021366 -2.881725 -0.945561 -v 2.057496 -2.887282 -0.844225 -v 2.113587 -3.011851 -0.851648 -v 2.091539 -3.032437 -0.947029 -v 1.911792 -2.895773 -0.950117 -v 1.848272 -2.927260 -0.996966 -v 1.830669 -2.736121 -0.903313 -v 1.880971 -2.733242 -0.890200 -v 1.806371 -2.949735 -0.984058 -v 1.771416 -2.769024 -0.946100 -v 1.705953 -3.006628 -0.832630 -v 1.735077 -3.022732 -0.972751 -v 1.721745 -3.116887 -0.979111 -v 1.709173 -3.133145 -0.807940 -v 1.811797 -3.135641 -0.933096 -v 1.806407 -3.173343 -0.834455 -f 273 274 276 -f 274 275 276 -f 278 279 277 -f 277 279 280 -f 279 278 282 -f 281 282 278 -f 285 286 284 -f 283 284 286 -f 285 287 286 -f 286 287 288 -v 1.806407 -3.173343 -0.834455 -v 1.811797 -3.135641 -0.933096 -v 1.841888 -3.246003 -1.014774 -v 1.832790 -3.296508 -0.865078 -v 1.933899 -3.546253 -0.912438 -v 1.919391 -3.487078 -1.110869 -v 2.025468 -3.556842 -1.204841 -v 2.078928 -3.584991 -0.917088 -v 1.865135 -3.353827 -1.054981 -v 1.839523 -3.405292 -0.883488 -f 291 292 290 -f 289 290 292 -f 296 293 295 -f 293 294 295 -f 297 298 291 -f 292 291 298 -f 293 298 294 -f 298 297 294 -v 1.741854 -3.114181 -0.700705 -v 1.709173 -3.133145 -0.807940 -v 1.806407 -3.173343 -0.834455 -v 1.900481 -3.131932 -0.728621 -f 302 299 301 -f 299 300 301 -v 1.832790 -3.296508 -0.865078 -v 1.929730 -3.298418 -0.689538 -v 1.900481 -3.131932 -0.728621 -v 1.806407 -3.173343 -0.834455 -v 1.839523 -3.405292 -0.883488 -v 1.941325 -3.434803 -0.701314 -v 1.933899 -3.546253 -0.912438 -v 2.002745 -3.523420 -0.688103 -v 2.078928 -3.584991 -0.917088 -v 2.126553 -3.549679 -0.701005 -v 2.197935 -3.583948 -0.936437 -v 2.244147 -3.545557 -0.732888 -f 304 305 303 -f 303 305 306 -f 304 303 308 -f 303 307 308 -f 309 310 307 -f 308 307 310 -f 309 311 310 -f 310 311 312 -f 311 313 312 -f 312 313 314 -v 1.705953 -3.006628 -0.832630 -v 1.709173 -3.133145 -0.807940 -v 1.741854 -3.114181 -0.700705 -v 1.776024 -2.980086 -0.707575 -v 1.736425 -2.743683 -0.736866 -v 1.700797 -2.794792 -0.824250 -v 2.021366 -2.881725 -0.945561 -v 2.091539 -3.032437 -0.947029 -v 1.980621 -3.043895 -0.964237 -v 1.911792 -2.895773 -0.950117 -f 318 315 317 -f 315 316 317 -f 319 320 318 -f 318 320 315 -f 322 323 321 -f 321 323 324 -v 1.898573 -3.068274 -0.994338 -v 1.980621 -3.043895 -0.964237 -v 2.110033 -3.148257 -1.068816 -v 1.970051 -3.141862 -1.065178 -f 327 328 326 -f 325 326 328 -v 1.980621 -3.043895 -0.964237 -v 1.898573 -3.068274 -0.994338 -v 1.848272 -2.927260 -0.996966 -v 1.911792 -2.895773 -0.950117 -v 1.855134 -3.083228 -0.986129 -v 1.806371 -2.949735 -0.984058 -f 329 330 332 -f 330 331 332 -f 331 330 334 -f 330 333 334 -v 1.855134 -3.083228 -0.986129 -v 1.898573 -3.068274 -0.994338 -v 1.970051 -3.141862 -1.065178 -v 1.886443 -3.191742 -1.047318 -v 1.811797 -3.135641 -0.933096 -v 1.841888 -3.246003 -1.014774 -f 337 338 336 -f 335 336 338 -f 340 339 338 -f 339 335 338 -v 1.802387 -3.089615 -0.961851 -v 1.855134 -3.083228 -0.986129 -v 1.811797 -3.135641 -0.933096 -v 1.735077 -3.022732 -0.972751 -v 1.806371 -2.949735 -0.984058 -v 1.705953 -3.006628 -0.832630 -v 1.734568 -2.965876 -0.986396 -f 341 342 343 -f 345 342 344 -f 344 342 341 -f 344 346 347 -v 2.217369 -3.156093 -0.888927 -v 2.113587 -3.011851 -0.851648 -v 2.073690 -3.020848 -0.782654 -v 2.187495 -3.161535 -0.800285 -f 348 349 351 -f 349 350 351 -v 2.113587 -3.011851 -0.851648 -v 2.057496 -2.887282 -0.844225 -v 2.001343 -2.847715 -0.762517 -v 2.073690 -3.020848 -0.782654 -f 354 355 353 -f 352 353 355 -v 2.170039 -3.134504 -0.978866 -v 2.217369 -3.156093 -0.888927 -v 2.236407 -3.220054 -0.892030 -v 2.201939 -3.226457 -0.996503 -v 2.247981 -3.342804 -1.127459 -v 2.281229 -3.338250 -1.043475 -v 2.386827 -3.462222 -1.136480 -v 2.343303 -3.507846 -1.195262 -v 2.327021 -3.352317 -0.958234 -v 2.440236 -3.509564 -1.019417 -v 2.309358 -3.345468 -0.801508 -v 2.377814 -3.484109 -0.800332 -v 2.235942 -3.243103 -0.823955 -v 2.187495 -3.161535 -0.800285 -f 356 357 359 -f 357 358 359 -f 363 360 362 -f 360 361 362 -f 365 362 364 -f 362 361 364 -f 358 364 359 -f 364 361 359 -f 365 364 367 -f 364 366 367 -f 366 364 368 -f 364 358 368 -f 369 368 357 -f 368 358 357 -v 1.741854 -3.114181 -0.700705 -v 1.900481 -3.131932 -0.728621 -v 1.857471 -2.950722 -0.669988 -v 1.776024 -2.980086 -0.707575 -v 1.998099 -3.039955 -0.718855 -v 1.945632 -2.876710 -0.703118 -v 2.073690 -3.020848 -0.782654 -v 2.001343 -2.847715 -0.762517 -v 1.884318 -2.724404 -0.701999 -v 1.841282 -2.716008 -0.708009 -v 1.972647 -2.728848 -0.772496 -f 370 371 372 -f 370 372 373 -f 371 374 372 -f 374 375 372 -f 377 375 376 -f 374 376 375 -f 379 372 378 -f 372 375 378 -f 378 375 380 -f 375 377 380 -v 1.900481 -3.131932 -0.728621 -v 1.929730 -3.298418 -0.689538 -v 2.059222 -3.230076 -0.674936 -v 1.998099 -3.039955 -0.718855 -v 2.187495 -3.161535 -0.800285 -v 2.073690 -3.020848 -0.782654 -v 1.941325 -3.434803 -0.701314 -v 2.107985 -3.363571 -0.677007 -v 2.235942 -3.243103 -0.823955 -f 384 381 383 -f 381 382 383 -f 383 385 384 -f 384 385 386 -f 387 388 382 -f 382 388 383 -f 389 385 388 -f 383 388 385 -v 1.776024 -2.980086 -0.707575 -v 1.857471 -2.950722 -0.669988 -v 1.841282 -2.716008 -0.708009 -v 1.736425 -2.743683 -0.736866 -f 392 393 391 -f 390 391 393 -v 2.107985 -3.363571 -0.677007 -v 1.941325 -3.434803 -0.701314 -v 2.002745 -3.523420 -0.688103 -v 2.126553 -3.549679 -0.701005 -v 2.235942 -3.243103 -0.823955 -v 2.309358 -3.345468 -0.801508 -v 2.244147 -3.545557 -0.732888 -v 2.377814 -3.484109 -0.800332 -v 2.440236 -3.509564 -1.019417 -v 2.197935 -3.583948 -0.936437 -v 2.078928 -3.584991 -0.917088 -v 2.025468 -3.556842 -1.204841 -v 2.254361 -3.550931 -1.235118 -f 394 395 396 -f 397 394 396 -f 398 394 399 -f 397 400 394 -f 399 394 401 -f 401 394 400 -f 403 402 400 -f 402 401 400 -f 406 403 405 -f 404 405 403 -v -2.591357 -1.510845 -0.885470 -v -2.734184 -1.717948 -0.749581 -v -2.837147 -1.791733 -0.921563 -v -2.687162 -1.539807 -0.988048 -v -2.918293 -1.904184 -1.004659 -v -2.765069 -1.561164 -1.084313 -v -3.010917 -1.884498 -1.083510 -v -2.862576 -1.546894 -1.117139 -v -3.117476 -1.866892 -1.108034 -v -2.955052 -1.496840 -1.128812 -v -3.232610 -1.834299 -1.087832 -v -3.063133 -1.440555 -1.090926 -v -3.365990 -1.485170 -0.888076 -v -3.490520 -1.760417 -0.903104 -v -3.498521 -1.762078 -0.762472 -v -3.387254 -1.486027 -0.672861 -v -3.335942 -1.365685 -0.724590 -v -3.319817 -1.365015 -0.886015 -v -3.078699 -2.553982 -1.046834 -v -3.162498 -2.556375 -1.058409 -v -3.177824 -2.279173 -1.047580 -v -3.068444 -2.260195 -1.035070 -v -3.169489 -2.110039 -1.076796 -v -3.047974 -2.109628 -1.063497 -v -3.207447 -2.103206 -1.071366 -v -3.251541 -2.564050 -1.023627 -v -3.281816 -2.305055 -1.001878 -v -3.327526 -2.075729 -1.005328 -v -3.357996 -1.811803 -0.975625 -v -3.347304 -2.573628 -0.955211 -v -3.389388 -2.305625 -0.950348 -v -3.451965 -2.077314 -0.931974 -v -3.022819 -2.522240 -0.979148 -v -3.007483 -2.270712 -0.984279 -v -2.969687 -2.097941 -0.982836 -v -2.892438 -1.950810 -0.878120 -v -2.981187 -2.142718 -0.858353 -v -3.030605 -2.311222 -0.884330 -v -3.046610 -2.510881 -0.900772 -v -2.964215 -1.978727 -0.776572 -v -3.040398 -2.156239 -0.808208 -v -3.120761 -2.157770 -0.766432 -v -3.144012 -2.333635 -0.829994 -v -3.066022 -1.953125 -0.719516 -v -3.211005 -1.850398 -0.700723 -v -3.253309 -2.137354 -0.760713 -v -3.235873 -2.335338 -0.820588 -v -3.240554 -2.555467 -0.856262 -v -3.132772 -2.528669 -0.848639 -v -3.304804 -1.582192 -0.643445 -v -3.381262 -1.828189 -0.697034 -v -3.139394 -1.687482 -0.638546 -v -3.422698 -2.070796 -0.773898 -v -3.339489 -2.328145 -0.827572 -v -3.297886 -2.549020 -0.861657 -v -3.463753 -2.079892 -0.844667 -v -3.412068 -2.356105 -0.865813 -v -3.372066 -2.569159 -0.904785 -v -3.342096 -1.533989 -0.921628 -v 1.953911 -2.462233 -0.830594 -v 1.930747 -2.463535 -0.894743 -v 1.985330 -2.221319 -0.893145 -v 2.024530 -2.195334 -0.811284 -v 2.013095 -2.051912 -0.911043 -v 2.047696 -2.050138 -0.814712 -v 2.021591 -1.755289 -0.912093 -v 2.053108 -1.738285 -0.824853 -v 2.036036 -1.579080 -0.967151 -v 2.059844 -1.561331 -0.858957 -v 1.678986 -2.513137 -0.891745 -v 1.737623 -2.485017 -0.918334 -v 1.771416 -2.769024 -0.946100 -v 1.718315 -2.775468 -0.921796 -v 1.648793 -2.280014 -0.929365 -v 1.710406 -2.272223 -0.954296 -v 1.624900 -2.087301 -0.963391 -v 1.720031 -2.105568 -0.971354 -v 1.572979 -1.827591 -0.985823 -v 1.717145 -1.809530 -1.004092 -v 1.541750 -1.643613 -1.014190 -v 1.650318 -1.645881 -1.053347 -v 1.586321 -2.273752 -0.880969 -v 1.655948 -2.520927 -0.844269 -v 1.529305 -2.092083 -0.887353 -v 1.508714 -1.808578 -0.934359 -v 1.480629 -1.640132 -0.953447 -v 1.601290 -2.267132 -0.787696 -v 1.663494 -2.485963 -0.790773 -v 1.544087 -2.080722 -0.786432 -v 1.473886 -1.818947 -0.799576 -v 1.451825 -1.576856 -0.702758 -v 1.677597 -2.237953 -0.696318 -v 1.756349 -2.446399 -0.705428 -v 1.643403 -2.076583 -0.689565 -v 1.596751 -1.722028 -0.684655 -v 1.599889 -1.595526 -0.623185 -v 1.994078 -2.713047 -0.824553 -v 1.960643 -2.712860 -0.900890 -v 1.864064 -2.469953 -0.935601 -v 1.880971 -2.733242 -0.890200 -v 1.941767 -1.759457 -0.997454 -v 1.937009 -1.625419 -1.026843 -v 1.918641 -2.083654 -1.001275 -v 1.906370 -2.282284 -0.964887 -v 1.801127 -2.484690 -0.938593 -v 1.830669 -2.736121 -0.903313 -v 1.804927 -1.581954 -1.089198 -v 1.818846 -1.756976 -1.023593 -v 1.839224 -2.109267 -0.998351 -v 1.818266 -2.313852 -0.968652 -f 409 410 408 -f 407 408 410 -f 412 410 411 -f 410 409 411 -f 411 413 412 -f 412 413 414 -f 416 414 415 -f 414 413 415 -f 418 416 417 -f 416 415 417 -f 419 420 422 -f 420 421 422 -f 422 423 419 -f 423 424 419 -f 425 426 428 -f 426 427 428 -f 427 429 428 -f 428 429 430 -f 415 413 429 -f 430 429 413 -f 427 431 429 -f 429 431 415 -f 431 417 415 -f 426 432 427 -f 432 433 427 -f 434 431 433 -f 427 433 431 -f 435 417 434 -f 431 434 417 -f 437 433 436 -f 432 436 433 -f 438 434 437 -f 433 437 434 -f 420 435 438 -f 434 438 435 -f 428 440 425 -f 439 425 440 -f 440 428 441 -f 428 430 441 -f 413 411 430 -f 441 430 411 -f 442 411 409 -f 443 441 442 -f 411 442 441 -f 441 443 440 -f 443 444 440 -f 440 444 439 -f 444 445 439 -f 442 446 443 -f 446 447 443 -f 443 447 444 -f 444 447 449 -f 447 448 449 -f 450 448 446 -f 446 448 447 -f 451 452 450 -f 450 452 448 -f 452 453 448 -f 448 453 449 -f 454 455 453 -f 449 453 455 -f 422 421 456 -f 456 421 457 -f 456 457 458 -f 457 451 458 -f 452 451 459 -f 451 457 459 -f 459 460 452 -f 452 460 453 -f 453 460 454 -f 460 461 454 -f 462 459 421 -f 457 421 459 -f 462 463 459 -f 459 463 460 -f 460 463 461 -f 463 464 461 -f 462 438 463 -f 438 437 463 -f 436 464 437 -f 463 437 464 -f 421 420 462 -f 420 438 462 -f 419 465 420 -f 435 420 465 -f 469 466 468 -f 466 467 468 -f 468 470 469 -f 469 470 471 -f 471 470 473 -f 470 472 473 -f 474 475 472 -f 473 472 475 -f 478 479 477 -f 476 477 479 -f 476 480 477 -f 480 481 477 -f 480 482 481 -f 482 483 481 -f 483 482 485 -f 484 485 482 -f 485 484 487 -f 486 487 484 -f 489 488 476 -f 488 480 476 -f 482 480 490 -f 490 480 488 -f 490 491 482 -f 491 484 482 -f 484 491 486 -f 492 486 491 -f 488 489 493 -f 493 489 494 -f 490 488 495 -f 495 488 493 -f 491 490 496 -f 496 490 495 -f 492 491 497 -f 497 491 496 -f 499 498 494 -f 498 493 494 -f 495 493 500 -f 500 493 498 -f 501 496 500 -f 496 495 500 -f 497 496 502 -f 502 496 501 -f 504 467 503 -f 467 466 503 -f 506 505 504 -f 505 467 504 -f 474 472 508 -f 507 508 472 -f 509 507 470 -f 507 472 470 -f 468 467 510 -f 510 467 505 -f 510 509 468 -f 509 470 468 -f 477 511 478 -f 478 511 512 -f 505 506 511 -f 511 506 512 -f 513 514 487 -f 485 487 514 -f 514 515 485 -f 483 485 515 -f 515 516 483 -f 481 483 516 -f 481 516 477 -f 477 516 511 -f 514 513 507 -f 513 508 507 -f 515 514 509 -f 514 507 509 -f 516 515 510 -f 515 509 510 -f 510 505 516 -f 511 516 505 -v 1.980621 -3.043895 -0.964237 -v 2.091539 -3.032437 -0.947029 -v 2.170039 -3.134504 -0.978866 -v 2.197935 -3.583948 -0.936437 -v 2.254361 -3.550931 -1.235118 -v 2.343303 -3.507846 -1.195262 -v 2.386827 -3.462222 -1.136480 -v 2.440236 -3.509564 -1.019417 -f 517 518 519 -f 521 522 520 -f 522 523 520 -f 520 523 524 -v 1.841282 -2.716008 -0.708009 -v 1.756349 -2.446399 -0.705428 -v 1.663494 -2.485963 -0.790773 -v 1.736425 -2.743683 -0.736866 -v 1.740323 -1.679830 -0.664098 -v 1.721211 -1.590185 -0.601932 -v 1.599889 -1.595526 -0.623185 -v 1.596751 -1.722028 -0.684655 -v 1.747671 -2.067518 -0.638841 -v 1.643403 -2.076583 -0.689565 -v 1.772999 -2.230292 -0.644940 -v 1.677597 -2.237953 -0.696318 -v 1.655948 -2.520927 -0.844269 -v 1.700797 -2.794792 -0.824250 -v 2.057496 -2.887282 -0.844225 -v 1.994078 -2.713047 -0.824553 -v 1.972647 -2.728848 -0.772496 -v 2.001343 -2.847715 -0.762517 -v 1.828658 -2.477348 -0.673470 -v 1.884318 -2.724404 -0.701999 -v 1.947264 -2.443232 -0.732587 -v 1.921881 -2.157616 -0.692678 -v 1.953911 -2.462233 -0.830594 -v 1.991892 -1.748400 -0.652770 -v 1.963153 -1.588839 -0.612861 -v 1.945206 -2.015769 -0.672724 -v 2.053108 -1.738285 -0.824853 -v 2.059844 -1.561331 -0.858957 -v 2.047696 -2.050138 -0.814712 -v 2.024530 -2.195334 -0.811284 -v 2.111557 -1.376942 -0.896570 -v 2.141273 -1.234642 -0.941254 -v 2.158051 -1.209613 -0.783941 -v 2.126237 -1.330172 -0.721011 -v 2.071448 -1.410118 -1.006192 -v 2.099566 -1.259996 -1.055763 -v 1.974215 -1.469208 -1.068951 -v 1.966698 -1.228160 -1.153716 -v 1.801794 -1.465464 -1.129277 -v 1.805207 -1.268427 -1.165317 -v 1.612396 -1.485728 -1.099731 -v 1.601721 -1.262359 -1.141420 -v 1.516700 -1.453050 -1.068516 -v 1.497480 -1.283201 -1.088258 -v 1.454817 -1.430228 -0.976569 -v 1.430817 -1.301205 -1.024924 -v 1.328862 -1.352627 -0.758733 -v 1.348219 -1.282064 -0.845204 -v 2.177450 -1.127765 -0.974416 -v 2.180012 -1.130557 -0.821812 -v 2.148553 -1.103067 -1.065410 -v 2.024692 -1.074646 -1.172465 -v 1.838895 -1.087204 -1.201408 -v 1.645819 -1.087442 -1.173773 -v 1.524407 -1.125312 -1.142248 -v 1.438439 -1.148029 -1.098069 -v 1.310865 -1.136322 -0.914838 -v 2.079600 -1.473377 -0.654997 -v 2.048200 -1.581983 -0.555832 -v 1.804927 -1.581954 -1.089198 -v 1.650318 -1.645881 -1.053347 -v 1.937009 -1.625419 -1.026843 -v 2.036036 -1.579080 -0.967151 -v 2.222082 -0.957342 -1.014137 -v 2.229345 -0.992723 -0.862826 -v 1.635139 -0.965221 -1.184968 -v 1.867657 -0.920633 -1.206933 -v 2.058189 -0.931238 -1.163518 -v 2.158585 -0.955809 -1.113647 -v 1.480629 -1.640132 -0.953447 -v 1.451825 -1.576856 -0.702758 -v 1.337875 -0.945716 -1.021299 -v 1.428883 -0.986690 -1.133905 -v 1.541750 -1.643613 -1.014190 -v 1.536037 -0.985876 -1.185597 -v 3.233975 2.059193 -0.072431 -v 3.009101 1.971604 -0.034220 -v 2.985371 1.982663 0.000000 -v 3.247406 2.073333 0.000000 -v 3.252224 2.026347 -0.148215 -v 3.036361 1.913989 -0.169838 -v 3.276333 1.863773 -0.294266 -v 3.058366 1.773346 -0.297337 -v 3.337545 1.748927 -0.340210 -v 3.086666 1.632991 -0.338863 -v 3.377233 1.587800 -0.400781 -v 3.115383 1.492390 -0.380228 -v 3.473410 1.366149 -0.454658 -v 3.163181 1.209972 -0.462438 -v 3.528445 1.060127 -0.489443 -v 3.189664 0.907503 -0.500122 -v 3.559394 0.706516 -0.452535 -v 3.280681 0.510802 -0.499434 -v 3.619650 0.472046 -0.391742 -v 3.321825 0.266690 -0.465750 -v 3.641195 0.407454 -0.362198 -v 3.360040 0.165487 -0.412685 -v 3.674710 0.338839 -0.307840 -v 3.378799 0.073736 -0.355362 -v 3.700363 0.265794 -0.240762 -v 3.438950 -0.082580 -0.257015 -v 3.737014 0.181837 -0.176819 -v 3.514981 -0.121886 -0.187589 -v 3.731689 0.186391 0.000000 -v 3.486028 -0.141683 0.000000 -v 3.716360 2.343387 0.000000 -v 3.727093 2.308406 -0.150049 -v 3.458300 2.151656 -0.102662 -v 3.454971 2.169877 0.000000 -v 4.120842 0.627141 -0.185461 -v 4.126565 0.642027 0.000000 -v 3.929251 0.411689 0.000000 -v 3.955635 0.432417 -0.197586 -v 3.889626 0.475277 -0.247365 -v 4.105198 0.672581 -0.300001 -v 3.861841 0.560638 -0.311961 -v 4.068249 0.798926 -0.400813 -v 3.849352 0.664451 -0.387198 -v 4.041657 1.039756 -0.496922 -v 3.823137 0.853054 -0.461519 -v 3.988510 1.297806 -0.539537 -v 3.747724 1.184933 -0.518662 -v 3.886058 1.550141 -0.504830 -v 3.650974 1.463740 -0.478617 -v 3.881998 1.764428 -0.476337 -v 3.590526 1.701090 -0.411994 -v 3.814876 1.968416 -0.443000 -v 3.541188 1.849183 -0.386366 -v 3.758215 2.206683 -0.323051 -v 3.479418 1.978250 -0.317478 -v 3.745669 2.266001 -0.241930 -v 3.460196 2.103494 -0.180368 -v 3.118124 -0.703925 0.000000 -v 3.107533 -0.691019 -0.264602 -v 3.342159 -0.384674 -0.201349 -v 3.335210 -0.375755 0.000000 -v 2.361089 1.766660 -0.202595 -v 2.339597 1.807702 0.000000 -v 2.723503 1.898839 0.000000 -v 2.715712 1.828219 -0.167709 -v 2.406969 1.645328 -0.341479 -v 2.738132 1.687333 -0.295046 -v 2.519027 1.485931 -0.422962 -v 2.775680 1.538710 -0.352829 -v 2.553871 1.284278 -0.512335 -v 2.815366 1.377583 -0.413399 -v 2.637461 1.017260 -0.581611 -v 2.854291 1.093951 -0.494650 -v 2.747937 0.712253 -0.615674 -v 2.948387 0.783357 -0.515058 -v 2.811504 0.469098 -0.657443 -v 3.061090 0.397226 -0.574193 -v 2.898733 0.271916 -0.651298 -v 2.919870 0.084875 -0.642460 -v 3.136321 0.171237 -0.539896 -v 2.953029 -0.127690 -0.520499 -v 3.166160 0.021310 -0.457261 -v 2.986408 -0.413503 -0.428964 -v 3.199571 -0.153739 -0.380150 -v 3.053144 -0.609681 -0.326931 -v 3.286426 -0.300744 -0.276331 -v 2.835437 -0.231101 -0.577890 -v 2.753156 0.400829 -0.713141 -v 2.679445 0.687427 -0.720573 -v 2.790681 0.219187 -0.718263 -v 2.790657 0.044324 -0.717488 -v 2.736198 -0.346225 -0.659345 -v 2.743995 -0.129852 -0.718277 -v 2.514162 0.988713 -0.674527 -v 2.482917 0.997637 -0.702425 -v 2.396355 1.242239 -0.597722 -v 2.618307 -0.549092 -0.805491 -v 2.539200 -0.727778 -0.750475 -v 2.410367 -0.777999 -0.841105 -v 2.543372 -0.548031 -0.937182 -v 2.690576 -0.368057 -0.819343 -v 2.594499 -0.422948 -0.981263 -v 2.702577 -0.197406 -0.795611 -v 2.607430 -0.208248 -0.974218 -v 2.734183 0.038769 -0.865810 -v 2.649413 0.031535 -1.024796 -v 2.731512 0.219003 -0.891585 -v 2.668936 0.206182 -1.014371 -v 2.706960 0.393597 -0.849582 -v 2.616001 0.447717 -0.960748 -v 2.604217 0.728827 -0.769671 -v 2.570400 0.738683 -0.830405 -v 2.688131 -0.517509 -0.672975 -v 2.542439 0.999928 -0.648592 -v 2.132390 1.755821 -0.180271 -v 2.128139 1.788397 0.000000 -v 2.183003 1.654070 -0.341767 -v 2.301359 1.397721 -0.546015 -v 2.292449 -0.871852 -0.882400 -v 2.245624 -0.864372 -0.995778 -v 2.346081 -0.745350 -1.013296 -v 2.096552 1.678482 -0.326810 -v 2.069379 1.727818 -0.212746 -v 2.189848 1.468992 -0.517501 -v 2.266003 1.273253 -0.663332 -v 2.347317 1.066114 -0.758763 -v 2.399389 0.782091 -0.915279 -v 2.448969 0.529858 -1.037335 -v 2.495354 0.250522 -1.132081 -v 2.500490 -0.035029 -1.170179 -v 2.452588 -0.244072 -1.138797 -v 2.439827 -0.395385 -1.131324 -v 2.384638 -0.591919 -1.043058 -v 2.013534 -0.662303 -1.191491 -v 2.108912 -0.357128 -1.259691 -v 2.042206 1.777154 0.000000 -v 1.807583 1.756546 -0.177627 -v 1.794465 1.787719 0.000000 -v 2.136269 -0.187666 -1.278057 -v 2.141790 -0.055306 -1.295565 -v 2.081700 0.283249 -1.259461 -v 2.023441 0.529338 -1.144399 -v 1.975941 0.827957 -1.018423 -v 1.958254 1.130271 -0.861813 -v 1.859443 1.450393 -0.632222 -v 1.821946 1.618209 -0.403751 -v 1.798719 1.714447 -0.259352 -v 0.737904 1.604213 -0.281713 -v 0.223642 1.684075 -0.160743 -v 0.234527 1.730117 0.000000 -v 0.733818 1.740873 0.000000 -v 0.725959 1.478055 -0.461804 -v 0.237330 1.595746 -0.288672 -v 0.760722 1.205036 -0.700545 -v 0.289039 1.496446 -0.430055 -v 0.857323 0.985001 -0.874029 -v 0.305671 1.298417 -0.629719 -v 0.921312 0.755659 -0.999330 -v 0.243473 1.134082 -0.819993 -v 0.939271 0.379986 -1.185872 -v 0.316341 0.785311 -1.086260 -v 0.927775 0.195225 -1.233043 -v 0.539252 0.353984 -1.254493 -v 0.950215 0.042751 -1.256188 -v 0.539150 0.148262 -1.321014 -v 0.943855 -0.101127 -1.274771 -v 0.516872 -0.020713 -1.356627 -v 0.960321 -0.308052 -1.243133 -v 0.542386 -0.188227 -1.370375 -v 0.974530 -0.525273 -1.140353 -v 0.546875 -0.390940 -1.363244 -v 0.948819 -0.638568 -1.102958 -v 0.550658 -0.633015 -1.331311 -v 0.939974 -0.894739 -1.019809 -v 0.527724 -0.862854 -1.253811 -v 0.956456 -1.070504 -0.921063 -v 0.544825 -1.133123 -1.096902 -v 0.930660 -1.216516 -0.831196 -v 0.530629 -1.316423 -0.929842 -v 0.922703 -1.296032 -0.728307 -v 0.538756 -1.408602 -0.764911 -v 0.912699 -1.455066 -0.576185 -v 0.489819 -1.524947 -0.672392 -v 0.912989 -1.499314 -0.419547 -v 0.480235 -1.631521 -0.401961 -v 0.927497 -1.558489 0.000000 -v 0.446550 -1.672950 0.000000 -v -0.221516 1.686349 -0.151403 -v -0.559706 1.694180 -0.186107 -v -0.547248 1.742126 0.000000 -v -0.228904 1.734267 0.000000 -v -0.267035 1.627058 -0.266577 -v -0.557624 1.641278 -0.271462 -v -0.247999 1.565146 -0.389142 -v -0.626493 1.585426 -0.443136 -v -0.179548 1.471301 -0.544513 -v -0.597781 1.489620 -0.641047 -v -0.192546 1.305535 -0.700080 -v -0.674657 1.333008 -0.761059 -v -0.406155 1.005088 -0.971088 -v -0.910602 1.204118 -0.837740 -v -0.115190 0.458427 -1.346197 -v -0.969076 0.901205 -1.146223 -v 0.005537 0.163519 -1.472265 -v -0.752416 0.438132 -1.467349 -v 0.018086 0.002865 -1.523199 -v -0.645496 0.179261 -1.584316 -v 0.034087 -0.225059 -1.542949 -v -0.536767 -0.144454 -1.682232 -v 0.010486 -0.502317 -1.576297 -v -0.533528 -0.582280 -1.701405 -v 0.021051 -0.831931 -1.511548 -v -0.505045 -0.913827 -1.645612 -v -0.041570 -1.143825 -1.395176 -v -0.487217 -1.193519 -1.504026 -v -0.071941 -1.346991 -1.237379 -v -0.524231 -1.399266 -1.313019 -v -0.072300 -1.450245 -1.087397 -v -0.526127 -1.495000 -1.167736 -v -0.063012 -1.583021 -0.865082 -v -0.535144 -1.615983 -0.920556 -v -0.894132 1.712652 -0.151911 -v -1.215563 1.757097 -0.133494 -v -1.179474 1.786649 0.000000 -v -0.866132 1.754670 0.000000 -v -0.954897 1.677544 -0.293034 -v -1.227613 1.709095 -0.276029 -v -1.017767 1.607824 -0.541965 -v -1.292756 1.656509 -0.514030 -v -1.046070 1.509097 -0.761060 -v -1.338488 1.613735 -0.725441 -v -1.115594 1.392380 -0.819623 -v -1.403848 1.533059 -0.902827 -v -1.278903 1.192051 -0.946843 -v -1.551526 1.400025 -1.050193 -v -1.200768 0.978822 -1.103391 -v -1.552899 1.128654 -1.151040 -v -1.147922 0.807955 -1.254191 -v -1.454529 0.875045 -1.238858 -v -1.120716 0.424016 -1.456990 -v -1.405685 0.573835 -1.352181 -v -1.077307 0.165008 -1.553393 -v -1.479588 0.295746 -1.440042 -v -1.053434 -0.342553 -1.690245 -v -1.489699 -0.024215 -1.510987 -v -1.077209 -0.869649 -1.633144 -v -1.395501 -0.698702 -1.553257 -v -1.061272 -1.141877 -1.496230 -v -1.376176 -0.948757 -1.451608 -v -1.001366 -1.335897 -1.353338 -v -1.402349 -1.127845 -1.309055 -v -0.952525 -1.440582 -1.168650 -v -1.407658 -1.236026 -1.112930 -v 1.644178 -0.857872 -1.208494 -v 1.640095 -0.674556 -1.246804 -v 1.462507 1.745481 -0.222394 -v 1.456656 1.785879 0.000000 -v 1.483832 1.697594 -0.288781 -v 1.497138 1.618935 -0.401108 -v 1.504951 1.483493 -0.585976 -v 1.517126 1.334367 -0.741076 -v 1.570685 0.938327 -0.989108 -v 1.582203 0.771083 -1.068180 -v 1.630080 0.420236 -1.172369 -v 1.649027 0.224458 -1.211969 -v 1.660355 0.019397 -1.246002 -v 1.664159 -0.189659 -1.266729 -v 1.678622 -0.410061 -1.291177 -v 1.604939 -1.556997 0.000000 -v 1.920432 -1.567396 0.000000 -v 1.210555 -1.460061 -0.576841 -v 1.192040 -1.330605 -0.678707 -v 1.223415 -1.532658 -0.434522 -v 1.289448 -1.546597 0.000000 -v 1.219163 -1.218342 -0.823029 -v 1.252961 -0.928825 -1.001643 -v 1.373216 -0.564620 -1.106245 -v 1.230116 -1.085439 -0.894543 -v -0.078470 -1.688266 -0.800230 -v -0.094135 -1.769086 -0.556924 -v -0.953236 -1.545941 -0.899180 -v 2.881063 -0.493146 -0.521968 -v 2.663024 -1.440487 -0.478149 -v 2.740886 -1.339225 -0.463604 -v 2.824356 -1.407256 -0.355013 -v -1.365948 1.769608 -0.133901 -v -1.350950 1.807009 0.000000 -v -1.396332 1.723782 -0.267642 -v -1.417595 1.676180 -0.529265 -v -1.465432 1.655336 -0.722125 -v -1.582187 1.567542 -0.982349 -v -1.721806 1.391264 -1.113307 -v -1.733703 1.083864 -1.181489 -v -1.807421 0.657142 -1.209422 -v -1.796156 0.452382 -1.243643 -v -1.810920 0.287592 -1.292257 -v -1.795130 0.033439 -1.371160 -v -1.802864 -0.282523 -1.401315 -v -1.837859 -0.540871 -1.295851 -v -1.782928 -0.770786 -1.173619 -v -1.757573 -0.945337 -1.075832 -v -1.683863 1.789041 -0.121501 -v -1.676510 1.826886 0.000000 -v -1.714432 1.747956 -0.247594 -v -1.744732 1.734849 -0.433807 -v -1.929731 1.617188 -0.806390 -v -1.996117 1.387891 -1.064104 -v -1.980388 1.134038 -1.143196 -v -2.013663 0.810726 -1.158827 -v -2.030191 0.547622 -1.189762 -v -2.021159 0.411979 -1.234679 -v -1.932916 0.232972 -1.304589 -v -1.897394 0.037852 -1.365798 -v -1.950547 -0.275573 -1.377028 -v -2.033655 -0.526012 -1.277639 -v -2.050292 -0.755566 -1.114167 -v -2.043593 -0.875823 -1.028879 -v -1.782298 -1.020581 -0.943381 -v -2.033406 -0.910030 -0.964220 -v -1.198513 -1.456102 -0.885435 -v -1.456655 -1.295527 -0.894240 -v -1.366873 -1.340211 -0.907567 -v -2.079597 1.817785 -0.138375 -v -2.057387 1.841308 0.000000 -v -2.100170 1.789980 -0.229245 -v -2.137524 1.753182 -0.433142 -v -2.172139 1.623010 -0.805318 -v -2.205791 1.356023 -1.081662 -v -2.296056 1.062810 -1.171139 -v -2.298249 0.768333 -1.203884 -v -2.256285 0.547326 -1.238301 -v -2.158400 0.381542 -1.272962 -v -2.070413 0.207766 -1.335106 -v -2.064786 0.018789 -1.411866 -v -2.187634 -0.375454 -1.406902 -v -2.276341 -0.689823 -1.268026 -v -2.292049 -0.933921 -1.128136 -v -2.299356 -1.025449 -1.044687 -v -2.306662 -1.116976 -0.961238 -v -2.672899 1.905110 -0.067168 -v -2.629466 1.918204 0.000000 -v -2.697367 1.871291 -0.218796 -v -2.703112 1.825435 -0.395127 -v -2.715246 1.746763 -0.604653 -v -2.717480 1.576797 -0.875971 -v -2.684930 1.262021 -1.110490 -v -2.572286 0.835495 -1.252192 -v -2.536112 0.656633 -1.269661 -v -2.520947 0.559036 -1.273617 -v -2.473750 0.300945 -1.316695 -v -2.433366 0.078222 -1.371269 -v -2.414730 -0.108377 -1.395384 -v -2.382920 -0.417450 -1.375045 -v -2.430508 -0.822313 -1.254486 -v -2.566746 -1.211312 -1.167101 -v -3.053102 1.968810 -0.051104 -v -3.037562 2.001526 0.000000 -v -3.077669 1.871112 -0.217368 -v -3.075310 1.846000 -0.363149 -v -3.109047 1.789477 -0.565323 -v -3.085650 1.657340 -0.784479 -v -3.028932 1.461517 -0.941324 -v -2.930312 1.103580 -1.125876 -v -2.825835 0.755899 -1.209042 -v -2.790630 0.468810 -1.224273 -v -2.787011 0.264495 -1.237352 -v -2.687022 0.076781 -1.290565 -v -2.649338 -0.241719 -1.339644 -v -2.616467 -0.511373 -1.344133 -v -2.624856 -0.888200 -1.261176 -v -2.725776 -1.214862 -1.190384 -v -2.765069 -1.561164 -1.084313 -v -2.862576 -1.546894 -1.117139 -v -3.358510 1.810253 -0.380095 -v -3.519716 1.685231 -0.317130 -v -3.507689 1.700214 0.000000 -v -3.392806 1.769365 0.000000 -v -3.395381 1.726325 -0.554770 -v -3.527168 1.583508 -0.512679 -v -3.338742 1.598933 -0.689636 -v -3.512997 1.448050 -0.611386 -v -3.278080 1.432418 -0.853958 -v -3.476235 1.287798 -0.704766 -v -3.244771 1.195540 -0.910945 -v -3.442151 1.105486 -0.762934 -v -3.196410 0.797564 -0.985913 -v -3.379131 0.767915 -0.885996 -v -3.112555 0.457376 -1.084816 -v -3.306875 0.379713 -0.987620 -v -3.044646 0.224321 -1.164934 -v -3.251181 0.175063 -1.053445 -v -2.971546 0.032038 -1.215971 -v -3.160225 -0.018852 -1.113626 -v -2.907080 -0.345582 -1.281557 -v -3.101125 -0.354760 -1.162409 -v -2.901159 -0.619504 -1.284058 -v -3.096267 -0.668100 -1.140081 -v -2.937658 -1.002749 -1.219413 -v -3.122061 -0.998702 -1.065015 -v -2.982676 -1.264649 -1.133596 -v -3.150210 -1.259588 -1.001021 -v -3.063133 -1.440555 -1.090926 -v -3.188954 -1.408279 -0.963611 -v -3.734989 1.589433 -0.295202 -v -3.690685 1.602080 0.000000 -v -3.697974 1.466697 -0.433432 -v -3.684619 1.350690 -0.501428 -v -3.655148 1.190938 -0.573692 -v -3.639878 1.015186 -0.615203 -v -3.582867 0.734419 -0.697787 -v -3.504525 0.405574 -0.847066 -v -3.424258 0.158638 -0.918279 -v -3.365413 -0.113447 -0.952400 -v -3.290393 -0.424259 -0.984153 -v -3.233333 -0.683782 -1.015512 -v -3.238094 -0.979377 -0.961631 -v -3.277510 -1.177346 -0.915300 -v -3.319817 -1.365015 -0.886015 -v -3.709741 1.351194 -0.211745 -v -3.709827 1.417763 0.000000 -v -3.701634 1.272650 -0.270469 -v -3.695872 1.156978 -0.316829 -v -3.672431 1.044224 -0.364991 -v -3.664355 0.932851 -0.370749 -v -3.631292 0.701013 -0.420276 -v -3.570384 0.385564 -0.524480 -v -3.520188 0.140164 -0.618561 -v -3.458251 -0.125950 -0.731712 -v -3.406618 -0.343461 -0.746456 -v -3.283698 -0.730967 -0.793898 -v -2.687162 -1.539807 -0.988048 -v -2.462835 -1.305500 -0.966395 -v -2.591357 -1.510845 -0.885470 -v -2.955052 -1.496840 -1.128812 -v -3.232610 -1.834299 -1.087832 -v -3.357996 -1.811803 -0.975625 -v -3.342096 -1.533989 -0.921628 -v -3.365990 -1.485170 -0.888076 -v -2.892438 -1.950810 -0.878120 -v -2.734184 -1.717948 -0.749581 -v -2.811581 -1.798210 -0.712737 -v -2.964215 -1.978727 -0.776572 -v -2.837147 -1.791733 -0.921563 -v -3.030605 -2.311222 -0.884330 -v -3.144012 -2.333635 -0.829994 -v -3.132772 -2.528669 -0.848639 -v -3.046610 -2.510881 -0.900772 -v -3.302419 -3.017921 -1.128514 -v -3.320330 -2.827513 -1.063914 -v -3.261810 -2.821069 -1.088218 -v -3.223286 -3.001780 -1.126176 -v -3.107105 -2.947818 -1.092235 -v -3.141072 -2.785287 -1.032318 -v -3.053267 -2.764905 -1.043008 -v -2.986345 -2.933770 -1.087679 -v -3.016419 -2.765091 -0.966671 -v -2.946527 -2.939327 -0.986343 -v -3.301857 -3.074776 -1.114869 -v -3.227676 -3.141660 -1.103969 -v -3.316551 -3.168932 -1.121229 -v -3.217306 -3.187686 -1.075214 -f 526 527 525 -f 525 527 528 -f 529 530 532 -f 530 531 532 -f 529 532 533 -f 533 532 534 -f 533 534 535 -f 535 534 536 -f 528 527 538 -f 527 537 538 -f 540 541 539 -f 539 541 542 -f 541 545 544 -f 543 544 545 -f 545 546 543 -f 535 543 546 -f 526 525 543 -f 543 525 544 -f 543 535 526 -f 535 536 526 -f 545 541 547 -f 547 541 540 -f 549 530 548 -f 548 530 529 -f 533 550 529 -f 550 548 529 -f 549 548 552 -f 551 552 548 -f 551 548 553 -f 553 548 550 -f 550 546 553 -f 554 553 546 -f 546 545 554 -f 547 554 545 -f 558 555 557 -f 555 556 557 -f 560 556 559 -f 559 556 555 -f 562 560 561 -f 561 560 559 -f 561 563 562 -f 563 564 562 -f 566 564 565 -f 565 564 563 -f 566 565 568 -f 567 568 565 -f 568 567 570 -f 569 570 567 -f 569 571 570 -f 571 572 570 -f 556 573 557 -f 573 574 557 -f 575 573 560 -f 560 573 556 -f 576 575 562 -f 562 575 560 -f 577 576 564 -f 564 576 562 -f 566 578 564 -f 578 577 564 -f 578 566 579 -f 568 579 566 -f 570 580 568 -f 580 579 568 -f 580 570 581 -f 572 581 570 -f 552 582 549 -f 582 583 549 -f 565 563 585 -f 584 585 563 -f 586 584 561 -f 584 563 561 -f 587 586 559 -f 586 561 559 -f 552 587 555 -f 587 559 555 -f 552 555 582 -f 555 558 582 -f 573 588 574 -f 574 588 589 -f 591 577 590 -f 577 578 590 -f 577 591 576 -f 576 591 592 -f 575 576 593 -f 576 592 593 -f 573 575 588 -f 575 593 588 -f 595 571 594 -f 571 569 594 -f 581 596 580 -f 596 597 580 -f 567 565 598 -f 565 585 598 -f 569 567 594 -f 567 598 594 -f 579 599 578 -f 599 590 578 -f 580 597 579 -f 597 599 579 -f 603 600 602 -f 600 601 602 -f 601 600 605 -f 604 605 600 -f 604 606 605 -f 606 607 605 -f 609 607 608 -f 608 607 606 -f 608 610 609 -f 610 611 609 -f 613 611 612 -f 612 611 610 -f 615 613 614 -f 614 613 612 -f 617 615 616 -f 616 615 614 -f 619 617 618 -f 618 617 616 -f 619 618 621 -f 620 621 618 -f 623 621 622 -f 622 621 620 -f 625 623 624 -f 624 623 622 -f 624 626 625 -f 626 627 625 -f 629 627 628 -f 628 627 626 -f 631 632 630 -f 630 632 633 -f 635 636 634 -f 634 636 637 -f 634 637 638 -f 634 638 639 -f 639 638 640 -f 639 640 641 -f 641 640 642 -f 643 641 644 -f 641 642 644 -f 646 645 644 -f 645 643 644 -f 648 647 646 -f 647 645 646 -f 649 647 650 -f 647 648 650 -f 651 649 652 -f 649 650 652 -f 653 651 654 -f 651 652 654 -f 654 656 653 -f 655 653 656 -f 655 656 631 -f 631 656 632 -f 658 659 657 -f 657 659 660 -f 662 663 661 -f 661 663 664 -f 661 664 665 -f 665 664 666 -f 665 666 667 -f 667 666 668 -f 669 667 670 -f 667 668 670 -f 670 672 669 -f 671 669 672 -f 672 674 671 -f 673 671 674 -f 676 675 674 -f 675 673 674 -f 677 675 676 -f 676 679 677 -f 678 677 679 -f 680 678 681 -f 678 679 681 -f 682 680 683 -f 680 681 683 -f 684 682 685 -f 682 683 685 -f 658 684 659 -f 684 685 659 -f 600 603 632 -f 633 632 603 -f 627 629 659 -f 660 659 629 -f 663 602 601 -f 605 664 601 -f 664 663 601 -f 664 605 666 -f 666 605 607 -f 666 607 668 -f 668 607 609 -f 670 668 611 -f 668 609 611 -f 672 670 613 -f 670 611 613 -f 613 615 672 -f 674 672 615 -f 615 617 674 -f 676 674 617 -f 617 619 676 -f 679 676 619 -f 681 679 621 -f 679 619 621 -f 683 681 623 -f 681 621 623 -f 623 625 683 -f 685 683 625 -f 627 659 625 -f 659 685 625 -f 637 636 626 -f 636 628 626 -f 626 624 637 -f 638 637 624 -f 640 638 622 -f 638 624 622 -f 640 622 620 -f 640 620 642 -f 642 620 618 -f 618 616 642 -f 644 642 616 -f 616 614 644 -f 646 644 614 -f 614 612 646 -f 648 646 612 -f 650 648 610 -f 648 612 610 -f 610 608 650 -f 652 650 608 -f 654 652 606 -f 652 608 606 -f 606 604 654 -f 656 654 604 -f 632 656 600 -f 656 604 600 -f 682 686 680 -f 687 688 675 -f 688 673 675 -f 677 689 675 -f 689 687 675 -f 690 689 678 -f 689 677 678 -f 686 691 692 -f 692 678 686 -f 678 680 686 -f 692 690 678 -f 693 694 695 -f 698 699 697 -f 696 697 699 -f 700 696 701 -f 696 699 701 -f 701 703 700 -f 702 700 703 -f 702 703 704 -f 704 703 705 -f 704 705 706 -f 706 705 707 -f 709 708 707 -f 708 706 707 -f 708 709 710 -f 710 709 711 -f 694 693 711 -f 693 710 711 -f 696 700 712 -f 700 691 712 -f 693 695 713 -f 713 688 693 -f 710 693 688 -f 708 710 687 -f 710 688 687 -f 706 708 689 -f 708 687 689 -f 689 690 706 -f 704 706 690 -f 702 704 692 -f 704 690 692 -f 692 691 702 -f 700 702 691 -f 688 713 673 -f 713 671 673 -f 661 714 662 -f 714 715 662 -f 714 661 716 -f 716 661 665 -f 716 665 717 -f 717 665 667 -f 667 669 717 -f 695 717 669 -f 669 671 695 -f 713 695 671 -f 720 698 719 -f 718 719 698 -f 716 721 714 -f 721 722 714 -f 717 723 716 -f 723 721 716 -f 723 717 724 -f 724 717 695 -f 694 725 695 -f 725 724 695 -f 725 694 726 -f 726 694 711 -f 709 727 711 -f 727 726 711 -f 727 709 728 -f 728 709 707 -f 728 707 729 -f 729 707 705 -f 703 730 705 -f 730 729 705 -f 703 701 730 -f 731 730 701 -f 731 701 732 -f 732 701 699 -f 699 698 732 -f 720 732 698 -f 718 589 719 -f 589 588 719 -f 720 719 733 -f 734 732 733 -f 732 720 733 -f 722 736 735 -f 735 736 737 -f 732 734 731 -f 731 734 738 -f 730 731 738 -f 730 738 729 -f 729 738 739 -f 740 728 739 -f 728 729 739 -f 728 740 727 -f 727 740 741 -f 741 742 727 -f 726 727 742 -f 726 742 725 -f 725 742 743 -f 744 724 743 -f 724 725 743 -f 724 744 723 -f 723 744 745 -f 723 745 721 -f 721 745 746 -f 721 746 722 -f 722 746 736 -f 747 748 750 -f 748 749 750 -f 748 747 752 -f 751 752 747 -f 753 754 751 -f 754 752 751 -f 755 756 753 -f 756 754 753 -f 757 758 755 -f 758 756 755 -f 758 757 760 -f 759 760 757 -f 760 759 762 -f 761 762 759 -f 763 764 761 -f 764 762 761 -f 765 766 763 -f 766 764 763 -f 767 768 765 -f 768 766 765 -f 769 770 767 -f 770 768 767 -f 772 770 771 -f 771 770 769 -f 773 774 771 -f 774 772 771 -f 776 774 775 -f 775 774 773 -f 778 776 777 -f 777 776 775 -f 778 777 780 -f 779 780 777 -f 782 780 781 -f 781 780 779 -f 784 782 783 -f 783 782 781 -f 786 784 785 -f 785 784 783 -f 787 788 790 -f 788 789 790 -f 787 791 788 -f 791 792 788 -f 794 792 793 -f 793 792 791 -f 795 796 793 -f 796 794 793 -f 798 796 797 -f 797 796 795 -f 800 798 799 -f 799 798 797 -f 801 802 799 -f 802 800 799 -f 802 801 804 -f 803 804 801 -f 804 803 806 -f 805 806 803 -f 806 805 808 -f 807 808 805 -f 808 807 810 -f 809 810 807 -f 810 809 812 -f 811 812 809 -f 811 813 812 -f 813 814 812 -f 816 814 815 -f 815 814 813 -f 818 816 817 -f 817 816 815 -f 819 820 817 -f 820 818 817 -f 821 822 824 -f 822 823 824 -f 821 825 822 -f 825 826 822 -f 825 827 826 -f 827 828 826 -f 829 830 827 -f 830 828 827 -f 830 829 832 -f 831 832 829 -f 834 832 833 -f 833 832 831 -f 835 836 833 -f 836 834 833 -f 835 837 836 -f 837 838 836 -f 837 839 838 -f 839 840 838 -f 842 840 841 -f 841 840 839 -f 843 844 841 -f 844 842 841 -f 844 843 846 -f 845 846 843 -f 847 848 845 -f 848 846 845 -f 849 850 847 -f 850 848 847 -f 851 852 849 -f 852 850 849 -f 853 854 733 -f 855 856 736 -f 856 737 736 -f 736 746 855 -f 857 855 746 -f 745 858 746 -f 858 857 746 -f 744 859 745 -f 859 858 745 -f 743 860 744 -f 860 859 744 -f 860 743 861 -f 861 743 742 -f 862 861 742 -f 863 862 741 -f 862 742 741 -f 741 740 863 -f 864 863 740 -f 739 865 740 -f 865 864 740 -f 865 739 866 -f 866 739 738 -f 738 734 866 -f 867 866 734 -f 734 733 867 -f 854 867 733 -f 588 593 733 -f 593 592 733 -f 719 588 733 -f 590 853 733 -f 591 590 733 -f 592 591 733 -f 868 530 869 -f 530 549 869 -f 595 870 571 -f 870 871 571 -f 531 872 595 -f 872 870 595 -f 549 583 869 -f 531 868 872 -f 868 873 872 -f 868 531 530 -f 874 572 871 -f 871 572 571 -f 875 876 596 -f 581 877 596 -f 877 875 596 -f 572 874 581 -f 874 877 581 -f 853 590 599 -f 597 854 599 -f 854 853 599 -f 876 867 854 -f 876 854 597 -f 856 855 750 -f 873 785 872 -f 872 785 783 -f 872 783 870 -f 870 783 781 -f 779 871 781 -f 871 870 781 -f 871 779 874 -f 874 779 777 -f 777 775 874 -f 877 874 775 -f 773 875 775 -f 875 877 775 -f 876 875 771 -f 875 773 771 -f 876 771 769 -f 767 867 769 -f 867 876 769 -f 867 767 866 -f 866 767 765 -f 866 765 865 -f 865 765 763 -f 761 864 763 -f 864 865 763 -f 864 761 863 -f 863 761 759 -f 863 759 862 -f 862 759 757 -f 755 861 757 -f 861 862 757 -f 861 755 753 -f 861 753 860 -f 860 753 751 -f 860 751 859 -f 859 751 747 -f 858 859 747 -f 750 857 747 -f 857 858 747 -f 855 857 750 -f 790 749 787 -f 748 787 749 -f 752 791 748 -f 791 787 748 -f 754 793 752 -f 793 791 752 -f 793 754 795 -f 756 795 754 -f 795 756 797 -f 758 797 756 -f 760 799 758 -f 799 797 758 -f 799 760 801 -f 762 801 760 -f 801 762 803 -f 764 803 762 -f 803 764 805 -f 766 805 764 -f 805 766 807 -f 768 807 766 -f 770 809 768 -f 809 807 768 -f 809 770 811 -f 772 811 770 -f 813 811 774 -f 774 811 772 -f 815 813 776 -f 776 813 774 -f 776 778 815 -f 778 817 815 -f 817 778 819 -f 780 819 778 -f 819 780 878 -f 782 878 780 -f 782 879 878 -f 788 821 789 -f 821 824 789 -f 825 821 792 -f 792 821 788 -f 827 825 794 -f 794 825 792 -f 796 829 794 -f 829 827 794 -f 796 798 829 -f 798 831 829 -f 798 800 831 -f 800 833 831 -f 802 835 800 -f 835 833 800 -f 804 837 802 -f 837 835 802 -f 806 839 804 -f 839 837 804 -f 808 841 806 -f 841 839 806 -f 841 808 843 -f 810 843 808 -f 843 810 845 -f 812 845 810 -f 814 847 812 -f 847 845 812 -f 814 816 847 -f 816 849 847 -f 816 818 849 -f 818 851 849 -f 851 818 880 -f 820 880 818 -f 712 691 881 -f 882 883 884 -f 876 597 596 -f 823 822 886 -f 822 885 886 -f 887 885 826 -f 826 885 822 -f 826 828 887 -f 828 888 887 -f 830 889 828 -f 889 888 828 -f 889 830 890 -f 832 890 830 -f 891 890 834 -f 834 890 832 -f 892 891 836 -f 836 891 834 -f 893 892 838 -f 838 892 836 -f 838 840 893 -f 840 894 893 -f 840 842 894 -f 842 895 894 -f 844 896 842 -f 896 895 842 -f 846 897 844 -f 897 896 844 -f 848 898 846 -f 898 897 846 -f 898 848 899 -f 850 899 848 -f 899 850 900 -f 852 900 850 -f 886 885 902 -f 885 901 902 -f 903 901 887 -f 887 901 885 -f 888 904 887 -f 904 903 887 -f 905 904 889 -f 889 904 888 -f 906 905 890 -f 890 905 889 -f 890 891 906 -f 891 907 906 -f 908 907 892 -f 892 907 891 -f 892 893 908 -f 893 909 908 -f 894 910 893 -f 910 909 893 -f 910 894 911 -f 895 911 894 -f 895 896 911 -f 896 912 911 -f 897 913 896 -f 913 912 896 -f 914 913 898 -f 898 913 897 -f 899 915 898 -f 915 914 898 -f 900 916 899 -f 916 915 899 -f 900 917 916 -f 917 918 916 -f 852 851 919 -f 919 851 880 -f 852 920 900 -f 920 917 900 -f 921 920 852 -f 919 921 852 -f 922 923 901 -f 901 923 902 -f 901 903 922 -f 903 924 922 -f 925 924 904 -f 904 924 903 -f 904 905 925 -f 905 926 925 -f 927 926 906 -f 906 926 905 -f 928 927 907 -f 907 927 906 -f 907 908 928 -f 908 929 928 -f 908 909 929 -f 909 930 929 -f 930 909 931 -f 910 931 909 -f 911 932 910 -f 932 931 910 -f 933 932 912 -f 912 932 911 -f 933 912 934 -f 913 934 912 -f 935 934 914 -f 914 934 913 -f 936 935 915 -f 915 935 914 -f 915 916 936 -f 916 937 936 -f 918 938 916 -f 938 937 916 -f 939 940 922 -f 922 940 923 -f 941 939 924 -f 924 939 922 -f 924 925 941 -f 925 942 941 -f 926 943 925 -f 943 942 925 -f 927 944 926 -f 944 943 926 -f 944 927 945 -f 928 945 927 -f 945 928 946 -f 929 946 928 -f 930 947 929 -f 947 946 929 -f 931 948 930 -f 948 947 930 -f 949 948 932 -f 932 948 931 -f 932 933 949 -f 933 950 949 -f 934 951 933 -f 951 950 933 -f 935 952 934 -f 952 951 934 -f 952 935 953 -f 936 953 935 -f 953 936 954 -f 937 954 936 -f 940 939 956 -f 939 955 956 -f 955 939 957 -f 941 957 939 -f 942 958 941 -f 958 957 941 -f 943 959 942 -f 959 958 942 -f 943 944 959 -f 944 960 959 -f 945 961 944 -f 961 960 944 -f 946 962 945 -f 962 961 945 -f 962 946 963 -f 947 963 946 -f 963 947 964 -f 948 964 947 -f 949 965 948 -f 965 964 948 -f 949 950 965 -f 950 966 965 -f 966 950 967 -f 951 967 950 -f 952 968 951 -f 968 967 951 -f 953 969 952 -f 969 968 952 -f 954 970 953 -f 970 969 953 -f 971 972 954 -f 972 970 954 -f 973 974 976 -f 974 975 976 -f 978 974 977 -f 977 974 973 -f 980 978 979 -f 979 978 977 -f 982 980 981 -f 981 980 979 -f 981 983 982 -f 983 984 982 -f 983 985 984 -f 985 986 984 -f 986 985 988 -f 987 988 985 -f 989 990 987 -f 990 988 987 -f 990 989 992 -f 991 992 989 -f 991 993 992 -f 993 994 992 -f 996 994 995 -f 995 994 993 -f 995 997 996 -f 997 998 996 -f 997 999 998 -f 999 1000 998 -f 999 1001 1000 -f 1001 1002 1000 -f 1003 1004 974 -f 974 1004 975 -f 974 978 1003 -f 978 1005 1003 -f 978 980 1005 -f 980 1006 1005 -f 1007 1006 982 -f 982 1006 980 -f 1008 1007 984 -f 984 1007 982 -f 986 1009 984 -f 1009 1008 984 -f 988 1010 986 -f 1010 1009 986 -f 1010 988 1011 -f 990 1011 988 -f 992 1012 990 -f 1012 1011 990 -f 992 994 1012 -f 994 1013 1012 -f 994 996 1013 -f 996 1014 1013 -f 996 998 1014 -f 998 1015 1014 -f 1000 1016 998 -f 1016 1015 998 -f 1016 1000 1017 -f 1002 1017 1000 -f 1004 1003 1019 -f 1003 1018 1019 -f 1005 1020 1003 -f 1020 1018 1003 -f 1006 1021 1005 -f 1021 1020 1005 -f 1007 1022 1006 -f 1022 1021 1006 -f 1007 1008 1022 -f 1008 1023 1022 -f 1008 1009 1023 -f 1009 1024 1023 -f 1010 1025 1009 -f 1025 1024 1009 -f 1025 1010 1026 -f 1011 1026 1010 -f 1026 1011 1027 -f 1012 1027 1011 -f 1012 1013 1027 -f 1013 1028 1027 -f 1028 1013 1029 -f 1014 1029 1013 -f 969 970 997 -f 970 999 997 -f 969 997 968 -f 968 997 995 -f 968 995 967 -f 967 995 993 -f 993 991 967 -f 966 967 991 -f 966 991 965 -f 965 991 989 -f 987 964 989 -f 964 965 989 -f 985 963 987 -f 963 964 987 -f 963 985 962 -f 962 985 983 -f 961 962 981 -f 962 983 981 -f 960 961 979 -f 961 981 979 -f 959 960 977 -f 960 979 977 -f 958 959 973 -f 959 977 973 -f 971 954 1030 -f 937 938 954 -f 954 938 1031 -f 1030 954 1032 -f 954 1031 1032 -f 533 535 550 -f 546 550 535 -f 722 735 714 -f 735 715 714 -f 1033 970 972 -f 1035 1002 1034 -f 1034 1002 1001 -f 970 1033 999 -f 1033 1001 999 -f 1036 1037 1002 -f 1037 1017 1002 -f 1035 1036 1002 -f 1039 1040 1038 -f 1038 1040 1041 -f 1038 1042 1039 -f 1043 1044 1046 -f 1044 1045 1046 -f 1048 1049 1047 -f 1047 1049 1050 -f 1054 1051 1053 -f 1051 1052 1053 -f 1056 1054 1055 -f 1054 1053 1055 -f 1047 1050 1057 -f 1057 1058 1059 -f 1059 1058 1060 -v -3.042899 -3.193907 -1.207296 -v -2.888628 -3.200302 -1.210934 -v -2.845816 -3.273661 -1.218321 -v -2.975439 -3.308754 -1.253240 -v -2.736599 -3.394849 -1.269577 -v -2.856957 -3.449728 -1.356844 -v -2.631547 -3.559891 -1.337380 -v -2.729567 -3.602976 -1.377236 -v -2.981824 -3.608887 -1.346959 -v -3.030627 -3.493327 -1.322650 -v -3.091252 -3.340925 -1.235864 -v -3.135041 -3.243787 -1.189436 -v -2.699957 -3.390295 -1.185593 -v -2.787341 -3.278502 -1.138621 -v -2.822497 -3.186549 -1.120984 -v -2.909010 -3.084482 -1.089147 -v -2.884711 -3.063896 -0.993766 -v -2.770335 -3.208138 -1.031045 -v -3.184143 -3.298048 -1.156892 -v -3.158524 -3.405872 -1.197099 -v -3.098730 -3.539123 -1.252987 -v -3.031250 -3.095940 -1.106355 -f 1061 1062 1064 -f 1062 1063 1064 -f 1064 1063 1066 -f 1063 1065 1066 -f 1065 1067 1066 -f 1066 1067 1068 -f 1069 1070 1068 -f 1068 1070 1066 -f 1066 1070 1064 -f 1070 1071 1064 -f 1064 1071 1061 -f 1071 1072 1061 -f 1063 1074 1065 -f 1073 1065 1074 -f 1074 1063 1075 -f 1063 1062 1075 -f 1078 1075 1077 -f 1075 1076 1077 -f 1071 1080 1072 -f 1079 1072 1080 -f 1071 1070 1080 -f 1081 1080 1070 -f 1070 1069 1081 -f 1082 1075 1062 -v -2.986345 -2.933770 -1.087679 -v -2.946527 -2.939327 -0.986343 -v -2.884711 -3.063896 -0.993766 -v -2.909010 -3.084482 -1.089147 -v -3.107105 -2.947818 -1.092235 -v -3.177108 -2.979305 -1.139084 -v -3.196508 -2.788166 -1.045431 -v -3.141072 -2.785287 -1.032318 -v -3.223286 -3.001780 -1.126176 -v -3.261810 -2.821069 -1.088218 -v -3.333954 -3.058673 -0.974748 -v -3.301857 -3.074776 -1.114869 -v -3.316551 -3.168932 -1.121229 -v -3.330406 -3.185190 -0.950058 -v -3.217306 -3.187686 -1.075214 -v -3.223246 -3.225388 -0.976573 -f 1083 1084 1086 -f 1084 1085 1086 -f 1088 1089 1087 -f 1087 1089 1090 -f 1089 1088 1092 -f 1091 1092 1088 -f 1095 1096 1094 -f 1093 1094 1096 -f 1095 1097 1096 -f 1096 1097 1098 -v -3.223246 -3.225388 -0.976573 -v -3.217306 -3.187686 -1.075214 -v -3.184143 -3.298048 -1.156892 -v -3.194170 -3.348553 -1.007196 -v -3.082741 -3.598298 -1.054556 -v -3.098730 -3.539123 -1.252987 -v -2.981824 -3.608887 -1.346959 -v -2.922908 -3.637036 -1.059206 -v -3.158524 -3.405872 -1.197099 -v -3.186750 -3.457336 -1.025606 -f 1101 1102 1100 -f 1099 1100 1102 -f 1106 1103 1105 -f 1103 1104 1105 -f 1107 1108 1101 -f 1102 1101 1108 -f 1103 1108 1104 -f 1108 1107 1104 -v -3.294389 -3.166225 -0.842823 -v -3.330406 -3.185190 -0.950058 -v -3.223246 -3.225388 -0.976573 -v -3.119570 -3.183977 -0.870739 -f 1112 1109 1111 -f 1109 1110 1111 -v -3.194170 -3.348553 -1.007196 -v -3.087335 -3.350463 -0.831656 -v -3.119570 -3.183977 -0.870739 -v -3.223246 -3.225388 -0.976573 -v -3.186750 -3.457336 -1.025606 -v -3.074557 -3.486847 -0.843432 -v -3.082741 -3.598298 -1.054556 -v -3.006867 -3.575464 -0.830221 -v -2.922908 -3.637036 -1.059206 -v -2.870422 -3.601724 -0.843123 -v -2.791754 -3.635993 -1.078555 -v -2.740824 -3.597601 -0.875006 -f 1114 1115 1113 -f 1113 1115 1116 -f 1114 1113 1118 -f 1113 1117 1118 -f 1117 1119 1118 -f 1118 1119 1120 -f 1119 1121 1120 -f 1120 1121 1122 -f 1121 1123 1122 -f 1122 1123 1124 -v -3.333954 -3.058673 -0.974748 -v -3.330406 -3.185190 -0.950058 -v -3.294389 -3.166225 -0.842823 -v -3.256731 -3.032131 -0.849693 -v -3.300372 -2.795728 -0.878984 -v -3.339637 -2.846837 -0.966368 -v -2.986345 -2.933770 -1.087679 -v -2.909010 -3.084482 -1.089147 -v -3.031250 -3.095940 -1.106355 -v -3.107105 -2.947818 -1.092235 -f 1128 1125 1127 -f 1125 1126 1127 -f 1129 1130 1128 -f 1128 1130 1125 -f 1132 1133 1131 -f 1131 1133 1134 -v -3.121673 -3.120319 -1.136456 -v -3.031250 -3.095940 -1.106355 -v -2.888628 -3.200302 -1.210934 -v -3.042899 -3.193907 -1.207296 -f 1137 1138 1136 -f 1135 1136 1138 -v -3.031250 -3.095940 -1.106355 -v -3.121673 -3.120319 -1.136456 -v -3.177108 -2.979305 -1.139084 -v -3.107105 -2.947818 -1.092235 -v -3.169546 -3.135273 -1.128247 -v -3.223286 -3.001780 -1.126176 -f 1139 1140 1142 -f 1140 1141 1142 -f 1141 1140 1144 -f 1140 1143 1144 -v -3.169546 -3.135273 -1.128247 -v -3.121673 -3.120319 -1.136456 -v -3.042899 -3.193907 -1.207296 -v -3.135041 -3.243787 -1.189436 -v -3.217306 -3.187686 -1.075214 -v -3.184143 -3.298048 -1.156892 -f 1147 1148 1146 -f 1145 1146 1148 -f 1150 1149 1148 -f 1149 1145 1148 -v -3.227676 -3.141660 -1.103969 -v -3.169546 -3.135273 -1.128247 -v -3.217306 -3.187686 -1.075214 -v -3.301857 -3.074776 -1.114869 -v -3.223286 -3.001780 -1.126176 -v -3.333954 -3.058673 -0.974748 -v -3.302419 -3.017921 -1.128514 -v -3.339637 -2.846837 -0.966368 -v -3.320330 -2.827513 -1.063914 -f 1151 1152 1153 -f 1155 1152 1154 -f 1154 1152 1151 -f 1154 1156 1157 -f 1157 1156 1159 -f 1158 1159 1156 -v -2.770335 -3.208138 -1.031045 -v -2.884711 -3.063896 -0.993766 -v -2.928681 -3.072892 -0.924772 -v -2.803260 -3.213580 -0.942403 -f 1160 1161 1163 -f 1161 1162 1163 -v -2.884711 -3.063896 -0.993766 -v -2.946527 -2.939327 -0.986343 -v -3.008412 -2.899760 -0.904635 -v -2.928681 -3.072892 -0.924772 -f 1166 1167 1165 -f 1164 1165 1167 -v -2.822497 -3.186549 -1.120984 -v -2.770335 -3.208138 -1.031045 -v -2.749355 -3.272099 -1.034148 -v -2.787341 -3.278502 -1.138621 -v -2.736599 -3.394849 -1.269577 -v -2.699957 -3.390295 -1.185593 -v -2.583580 -3.514267 -1.278598 -v -2.631547 -3.559891 -1.337380 -v -2.649491 -3.404362 -1.100352 -v -2.524720 -3.561609 -1.161535 -v -2.668957 -3.397513 -0.943626 -v -2.593513 -3.536154 -0.942450 -v -2.749867 -3.295148 -0.966073 -v -2.803260 -3.213580 -0.942403 -f 1168 1169 1171 -f 1169 1170 1171 -f 1175 1172 1174 -f 1172 1173 1174 -f 1177 1174 1176 -f 1174 1173 1176 -f 1170 1176 1171 -f 1176 1173 1171 -f 1179 1177 1178 -f 1177 1176 1178 -f 1178 1176 1180 -f 1176 1170 1180 -f 1181 1180 1169 -f 1180 1170 1169 -v -3.294389 -3.166225 -0.842823 -v -3.119570 -3.183977 -0.870739 -v -3.166971 -3.002766 -0.812106 -v -3.256731 -3.032131 -0.849693 -v -3.011987 -3.092000 -0.860973 -v -3.069810 -2.928755 -0.845236 -v -2.928681 -3.072892 -0.924772 -v -3.008412 -2.899760 -0.904635 -v -3.137383 -2.776449 -0.844117 -v -3.184812 -2.768053 -0.850127 -v -3.040038 -2.780893 -0.914614 -f 1182 1183 1184 -f 1182 1184 1185 -f 1183 1186 1184 -f 1186 1187 1184 -f 1189 1187 1188 -f 1186 1188 1187 -f 1191 1184 1190 -f 1184 1187 1190 -f 1190 1187 1192 -f 1187 1189 1192 -v -3.119570 -3.183977 -0.870739 -v -3.087335 -3.350463 -0.831656 -v -2.944625 -3.282121 -0.817054 -v -3.011987 -3.092000 -0.860973 -v -2.803260 -3.213580 -0.942403 -v -2.928681 -3.072892 -0.924772 -v -3.074557 -3.486847 -0.843432 -v -2.890885 -3.415616 -0.819125 -v -2.749867 -3.295148 -0.966073 -f 1196 1193 1195 -f 1193 1194 1195 -f 1197 1198 1195 -f 1196 1195 1198 -f 1200 1195 1199 -f 1194 1199 1195 -f 1201 1197 1200 -f 1195 1200 1197 -v -3.256731 -3.032131 -0.849693 -v -3.166971 -3.002766 -0.812106 -v -3.184812 -2.768053 -0.850127 -v -3.300372 -2.795728 -0.878984 -f 1204 1205 1203 -f 1202 1203 1205 -v -2.890885 -3.415616 -0.819125 -v -3.074557 -3.486847 -0.843432 -v -3.006867 -3.575464 -0.830221 -v -2.870422 -3.601724 -0.843123 -v -2.749867 -3.295148 -0.966073 -v -2.668957 -3.397513 -0.943626 -v -2.740824 -3.597601 -0.875006 -v -2.593513 -3.536154 -0.942450 -v -2.524720 -3.561609 -1.161535 -v -2.791754 -3.635993 -1.078555 -v -2.922908 -3.637036 -1.059206 -v -2.981824 -3.608887 -1.346959 -v -2.729567 -3.602976 -1.377236 -v -3.031250 -3.095940 -1.106355 -v -2.909010 -3.084482 -1.089147 -v -2.822497 -3.186549 -1.120984 -v -2.631547 -3.559891 -1.337380 -v -2.583580 -3.514267 -1.278598 -f 1206 1207 1208 -f 1209 1206 1208 -f 1210 1206 1211 -f 1209 1212 1206 -f 1211 1206 1213 -f 1213 1206 1212 -f 1214 1213 1215 -f 1213 1212 1215 -f 1217 1218 1216 -f 1216 1218 1215 -f 1219 1220 1221 -f 1218 1222 1215 -f 1222 1223 1215 -f 1215 1223 1214 -v -2.946527 -2.939327 -0.986343 -v -3.016419 -2.765091 -0.966671 -v -3.040038 -2.780893 -0.914614 -v -3.008412 -2.899760 -0.904635 -v -3.053267 -2.764905 -1.043008 -v -3.141072 -2.785287 -1.032318 -v -3.162498 -2.556375 -1.058409 -v -3.078699 -2.553982 -1.046834 -v -3.320330 -2.827513 -1.063914 -v -3.339637 -2.846837 -0.966368 -v -3.372066 -2.569159 -0.904785 -v -3.347304 -2.573628 -0.955211 -v -3.261810 -2.821069 -1.088218 -v -3.251541 -2.564050 -1.023627 -v -3.196508 -2.788166 -1.045431 -v -3.022819 -2.522240 -0.979148 -v -3.297886 -2.549020 -0.861657 -v -3.300372 -2.795728 -0.878984 -v -3.240554 -2.555467 -0.856262 -v -3.184812 -2.768053 -0.850127 -v -3.132772 -2.528669 -0.848639 -v -3.137383 -2.776449 -0.844117 -v -3.046610 -2.510881 -0.900772 -v -3.279790 -1.162072 -0.784602 -v -3.277510 -1.177346 -0.915300 -v -3.319817 -1.365015 -0.886015 -v -3.335942 -1.365685 -0.724590 -v -3.251210 -0.948205 -0.819868 -v -3.283698 -0.730967 -0.793898 -v -3.233333 -0.683782 -1.015512 -v -3.238094 -0.979377 -0.961631 -v -3.415655 -0.308965 -0.671045 -v -3.406618 -0.343461 -0.746456 -v -3.556552 0.704883 -0.280630 -v -3.578170 0.837714 -0.288502 -v -3.664355 0.932851 -0.370749 -v -3.631292 0.701013 -0.420276 -v -3.536654 0.442277 -0.322000 -v -3.570384 0.385564 -0.524480 -v -3.516840 0.149002 -0.430359 -v -3.520188 0.140164 -0.618561 -v -3.470778 -0.078218 -0.546398 -v -3.458251 -0.125950 -0.731712 -v -3.623861 0.911561 0.000000 -v -3.599077 0.796217 0.000000 -v -3.601668 1.293049 0.000000 -v -3.709827 1.417763 0.000000 -v -3.709741 1.351194 -0.211745 -v -3.701634 1.272650 -0.270469 -v -3.608593 1.163581 0.000000 -v -3.695872 1.156978 -0.316829 -v -3.622326 1.005378 0.000000 -v -3.672431 1.044224 -0.364991 -v -3.900566 1.002504 0.000000 -v -3.887340 1.003866 -0.057635 -v -3.844470 0.498176 -0.053132 -v -3.856649 0.496801 0.000000 -v -3.875140 1.480358 0.000000 -v -3.860820 1.479723 -0.062137 -v -3.712832 1.794492 0.000000 -v -3.698925 1.787941 -0.066640 -v -3.478430 1.975409 0.000000 -v -3.469715 1.961504 -0.071141 -v -3.242148 2.021387 0.000000 -v -3.238225 2.005405 -0.075645 -v -3.851206 1.007586 -0.099831 -v -3.811194 0.501935 -0.092033 -v -3.821694 1.477989 -0.107631 -v -3.660928 1.770041 -0.115431 -v -3.445903 1.923509 -0.123229 -v -3.227504 1.961738 -0.131029 -v -3.801840 1.012668 -0.115288 -v -3.765736 0.507070 -0.106281 -v -3.768245 1.475619 -0.124295 -v -3.609021 1.745588 -0.133304 -v -3.413372 1.871604 -0.142309 -v -3.752468 1.017751 -0.099865 -v -3.720269 0.512205 -0.092064 -v -3.714787 1.473248 -0.107668 -v -3.557104 1.721130 -0.115470 -v -3.380836 1.819691 -0.123273 -v -3.716312 1.021474 -0.057693 -v -3.686972 0.515966 -0.053185 -v -3.675638 1.471512 -0.062201 -v -3.519086 1.703220 -0.066709 -v -3.357009 1.781675 -0.071216 -v -3.703058 1.022838 -0.000069 -v -3.674766 0.517345 -0.000063 -v -3.661286 1.470876 -0.000074 -v -3.507689 1.700214 0.000000 -v -3.348274 1.767738 -0.000085 -v -3.077669 1.871112 -0.217368 -v -3.037562 2.001526 0.000000 -v -3.053102 1.968810 -0.051104 -v -3.358510 1.810253 -0.380095 -v -3.075310 1.846000 -0.363149 -f 1224 1225 1227 -f 1225 1226 1227 -f 1230 1231 1229 -f 1228 1229 1231 -f 1234 1235 1233 -f 1232 1233 1235 -f 1235 1237 1232 -f 1236 1232 1237 -f 1237 1230 1236 -f 1238 1236 1230 -f 1229 1238 1230 -f 1225 1228 1239 -f 1231 1239 1228 -f 1233 1241 1234 -f 1240 1234 1241 -f 1241 1243 1240 -f 1242 1240 1243 -f 1245 1244 1243 -f 1244 1242 1243 -f 1226 1246 1245 -f 1246 1244 1245 -f 1226 1225 1246 -f 1239 1246 1225 -f 1247 1248 1250 -f 1248 1249 1250 -f 1253 1254 1252 -f 1251 1252 1254 -f 1247 1251 1248 -f 1251 1254 1248 -f 1255 1256 1252 -f 1259 1260 1258 -f 1257 1258 1260 -f 1262 1261 1260 -f 1261 1257 1260 -f 1263 1261 1264 -f 1261 1262 1264 -f 1264 1266 1263 -f 1265 1263 1266 -f 1265 1266 1255 -f 1255 1266 1256 -f 1259 1258 1267 -f 1267 1258 1268 -f 1269 1270 1271 -f 1269 1271 1272 -f 1274 1273 1272 -f 1273 1269 1272 -f 1276 1275 1274 -f 1275 1273 1274 -f 1276 1259 1275 -f 1267 1275 1259 -f 1278 1279 1277 -f 1277 1279 1280 -f 1277 1281 1278 -f 1281 1282 1278 -f 1283 1284 1281 -f 1284 1282 1281 -f 1283 1285 1284 -f 1285 1286 1284 -f 1285 1287 1286 -f 1287 1288 1286 -f 1289 1290 1278 -f 1278 1290 1279 -f 1278 1282 1289 -f 1282 1291 1289 -f 1282 1284 1291 -f 1284 1292 1291 -f 1284 1286 1292 -f 1286 1293 1292 -f 1288 1294 1286 -f 1294 1293 1286 -f 1295 1296 1289 -f 1289 1296 1290 -f 1289 1291 1295 -f 1291 1297 1295 -f 1292 1298 1291 -f 1298 1297 1291 -f 1293 1299 1292 -f 1299 1298 1292 -f 1294 1299 1293 -f 1300 1301 1295 -f 1295 1301 1296 -f 1295 1297 1300 -f 1297 1302 1300 -f 1297 1298 1302 -f 1298 1303 1302 -f 1299 1304 1298 -f 1304 1303 1298 -f 1305 1306 1300 -f 1300 1306 1301 -f 1300 1302 1305 -f 1302 1307 1305 -f 1302 1303 1307 -f 1303 1308 1307 -f 1303 1304 1308 -f 1304 1309 1308 -f 1310 1311 1305 -f 1305 1311 1306 -f 1305 1307 1310 -f 1307 1312 1310 -f 1307 1308 1312 -f 1308 1313 1312 -f 1309 1314 1308 -f 1314 1313 1308 -f 1294 1315 1299 -f 1287 1316 1288 -f 1288 1316 1317 -f 1294 1288 1317 -f 1294 1317 1315 -f 1315 1318 1299 -f 1315 1319 1318 -v -1.883160 -1.829718 -0.401567 -v -1.933565 -1.993029 -0.438902 -v -1.971059 -1.992958 -0.500845 -v -1.936032 -1.829617 -0.488916 -v -2.035740 -1.981182 -0.547873 -v -2.027242 -1.813012 -0.555232 -v -2.106039 -2.019111 -0.510759 -v -2.126375 -1.866497 -0.502895 -v -2.141621 -2.024301 -0.470257 -v -2.176551 -1.873816 -0.445782 -v -2.120746 -2.045137 -0.411171 -v -2.147113 -1.903198 -0.362462 -v -2.060902 -2.031698 -0.372079 -v -2.062725 -1.884246 -0.307336 -v -1.978344 -2.023535 -0.398257 -v -1.946306 -1.872735 -0.344251 -v -2.446375 -1.893261 -0.494110 -v -2.499138 -2.038090 -0.504529 -v -2.513608 -2.012858 -0.558673 -v -2.466779 -1.857679 -0.570461 -v -2.571019 -1.995375 -0.586230 -v -2.547737 -1.833025 -0.609321 -v -2.641567 -2.003164 -0.575611 -v -2.647220 -1.844010 -0.594347 -v -2.678971 -2.007694 -0.558395 -v -2.699966 -1.850397 -0.570070 -v -2.685663 -2.028649 -0.514928 -v -2.709403 -1.879947 -0.508775 -v -2.667969 -2.036634 -0.471396 -v -2.684452 -1.891207 -0.447388 -v -2.618068 -2.046419 -0.441284 -v -2.614084 -1.905005 -0.404925 -v -2.539874 -2.049824 -0.460098 -v -2.503818 -1.909806 -0.431456 -v -2.065655 -2.124623 -0.368720 -v -1.985123 -2.116661 -0.394256 -v -2.124030 -2.137733 -0.406853 -v -2.144393 -2.117408 -0.464489 -v -2.109684 -2.112345 -0.503997 -v -2.041110 -2.075348 -0.540201 -v -1.978016 -2.086834 -0.494327 -v -1.941442 -2.086904 -0.433904 -v -2.552923 -2.142304 -0.454579 -v -2.513187 -2.130859 -0.497920 -v -2.629199 -2.138983 -0.436227 -v -2.677875 -2.129439 -0.465600 -v -2.695135 -2.121650 -0.508064 -v -2.688607 -2.101208 -0.550465 -v -2.652120 -2.096790 -0.567258 -v -2.583303 -2.089191 -0.577616 -v -2.527301 -2.106246 -0.550735 -v -2.048681 -2.165282 -0.450843 -v -2.603284 -2.176802 -0.510638 -f 1320 1321 1323 -f 1321 1322 1323 -f 1325 1323 1324 -f 1323 1322 1324 -f 1325 1324 1327 -f 1324 1326 1327 -f 1329 1327 1328 -f 1327 1326 1328 -f 1329 1328 1331 -f 1328 1330 1331 -f 1333 1331 1332 -f 1331 1330 1332 -f 1333 1332 1335 -f 1332 1334 1335 -f 1320 1335 1321 -f 1335 1334 1321 -f 1336 1337 1339 -f 1337 1338 1339 -f 1341 1339 1340 -f 1339 1338 1340 -f 1341 1340 1343 -f 1340 1342 1343 -f 1345 1343 1344 -f 1343 1342 1344 -f 1345 1344 1347 -f 1344 1346 1347 -f 1347 1346 1349 -f 1346 1348 1349 -f 1349 1348 1351 -f 1348 1350 1351 -f 1353 1351 1352 -f 1351 1350 1352 -f 1336 1353 1337 -f 1353 1352 1337 -f 1334 1332 1355 -f 1332 1354 1355 -f 1356 1354 1330 -f 1330 1354 1332 -f 1328 1357 1330 -f 1357 1356 1330 -f 1326 1358 1328 -f 1358 1357 1328 -f 1324 1359 1326 -f 1359 1358 1326 -f 1322 1360 1324 -f 1360 1359 1324 -f 1361 1360 1321 -f 1321 1360 1322 -f 1321 1334 1361 -f 1334 1355 1361 -f 1362 1363 1352 -f 1352 1363 1337 -f 1352 1350 1362 -f 1350 1364 1362 -f 1348 1365 1350 -f 1365 1364 1350 -f 1346 1366 1348 -f 1366 1365 1348 -f 1344 1367 1346 -f 1367 1366 1346 -f 1342 1368 1344 -f 1368 1367 1344 -f 1369 1368 1340 -f 1340 1368 1342 -f 1338 1370 1340 -f 1370 1369 1340 -f 1338 1337 1370 -f 1337 1363 1370 -f 1360 1361 1371 -f 1359 1360 1371 -f 1358 1359 1371 -f 1357 1358 1371 -f 1356 1357 1371 -f 1354 1356 1371 -f 1355 1354 1371 -f 1361 1355 1371 -f 1370 1363 1372 -f 1369 1370 1372 -f 1368 1369 1372 -f 1367 1368 1372 -f 1366 1367 1372 -f 1365 1366 1372 -f 1364 1365 1372 -f 1362 1364 1372 -f 1363 1362 1372 -v 4.897808 1.946794 -0.628057 -v 4.925394 1.955229 -0.618837 -v 4.953739 1.952580 -0.592256 -v 4.971872 1.924079 -0.586026 -v 4.953403 1.907939 -0.605609 -v 4.925499 1.917814 -0.613413 -v 4.973133 1.992779 -0.533466 -v 5.001903 1.914398 -0.486724 -v 4.982364 1.873300 -0.536190 -v 4.926194 1.859813 -0.582137 -v 4.852578 1.889721 -0.605031 -v 4.824747 1.946835 -0.626358 -v 4.861611 2.001639 -0.621913 -v 4.935561 2.016016 -0.585700 -f 1373 1374 1378 -f 1374 1375 1378 -f 1378 1375 1377 -f 1375 1376 1377 -f 1375 1379 1376 -f 1379 1380 1376 -f 1380 1381 1376 -f 1376 1381 1377 -f 1377 1381 1382 -f 1383 1378 1382 -f 1378 1377 1382 -f 1384 1373 1383 -f 1373 1378 1383 -f 1373 1384 1385 -f 1379 1375 1386 -f 1386 1375 1374 -v 4.760921 1.881357 -0.613120 -v 4.824747 1.946835 -0.626358 -v 4.852578 1.889721 -0.605031 -v 4.861618 1.854067 -0.618095 -v 4.861611 2.001639 -0.621913 -v 4.842883 2.021333 -0.638025 -v 4.935880 2.051665 -0.572853 -v 4.935561 2.016016 -0.585700 -v 4.991746 2.009819 -0.523206 -v 5.001903 1.914398 -0.486724 -v 4.973133 1.992779 -0.533466 -v 4.926194 1.859813 -0.582137 -v 4.944706 1.840663 -0.575374 -v 4.982364 1.873300 -0.536190 -v 4.991709 1.844295 -0.520761 -v 4.908019 1.796041 -0.587882 -v 4.852582 1.816115 -0.603105 -v 4.963546 1.783161 -0.553515 -v 4.983034 1.806343 -0.505779 -v 5.011430 1.875569 -0.463205 -v 4.918466 2.084725 -0.532713 -v 4.964945 2.053575 -0.499903 -v 5.020077 1.978170 -0.480978 -v 4.825996 2.089176 -0.576083 -v 4.881574 2.094571 -0.539949 -v 4.788476 2.028047 -0.608619 -v 4.751519 2.039658 -0.634134 -v 4.798297 2.118191 -0.591085 -v 4.872539 2.159259 -0.542891 -v 4.927885 2.156560 -0.516579 -v 5.002440 2.105746 -0.468233 -v 5.057495 2.002751 -0.451974 -v 5.075994 1.900999 -0.443793 -v 5.030289 1.827419 -0.440803 -v 4.991904 1.760829 -0.510386 -v 4.936066 1.737668 -0.557276 -v 4.871155 1.741238 -0.592326 -v 4.816181 1.797860 -0.604026 -v 5.095375 1.961238 -0.401516 -v 5.085813 1.888503 -0.408327 -v 5.058179 1.788186 -0.417387 -v 5.019836 1.739907 -0.485562 -v 4.917973 1.681480 -0.544201 -v 4.862636 1.684144 -0.570155 -v 4.752337 1.723388 -0.591296 -v 4.697607 1.768061 -0.576663 -v 5.030641 2.102197 -0.432329 -v 5.067202 2.027704 -0.422291 -v 4.937950 2.181155 -0.486939 -v 4.881855 2.194544 -0.530288 -v 4.807794 2.143653 -0.570393 -v 4.728963 2.036146 -0.614307 -v 4.742358 1.882232 -0.621650 -v 4.744050 2.179337 -0.556057 -v 4.688114 2.046378 -0.604518 -v 4.837331 2.235678 -0.479332 -v 4.893850 2.220523 -0.417713 -v 4.995978 2.148785 -0.344534 -v 5.060840 2.053335 -0.309324 -v 5.097062 1.954206 -0.328795 -v 5.105589 1.864086 -0.347113 -v 4.697024 1.862575 -0.604048 -v 4.739441 2.299169 -0.369987 -v 4.832890 2.262727 -0.283787 -v 4.971394 2.146686 -0.224781 -v 5.072165 2.043630 -0.209228 -v 5.127157 1.942759 -0.211214 -v 5.152698 1.830661 -0.287042 -v 5.133171 1.715563 -0.334258 -v 5.103427 1.624404 -0.434275 -v 4.982822 1.503071 -0.507606 -v 4.927282 1.486953 -0.526327 -v 4.798410 1.473149 -0.570618 -v 4.715646 1.502195 -0.584339 -v 4.615408 1.639641 -0.577768 -v 4.560751 1.785154 -0.562428 -v 4.551484 1.841749 -0.575191 -v 4.533113 1.989009 -0.578975 -v 4.636582 2.263383 -0.471997 -v 4.561299 2.133066 -0.547248 -v 4.912303 2.162645 -0.000090 -v 5.049690 2.032731 0.000071 -v 5.156645 1.942902 -0.119993 -v 5.218821 1.803552 -0.199306 -v 5.216855 1.636645 -0.279797 -v 5.233176 1.442459 -0.362988 -v 4.679116 1.438434 -0.589658 -v 4.596478 1.512987 -0.598982 -v 4.560024 1.604023 -0.589333 -v 4.477781 1.687858 -0.597407 -v 4.459682 1.778884 -0.588185 -v 4.432610 1.878873 -0.577888 -v 4.433020 2.024714 -0.563794 -v 4.634996 2.369115 -0.140117 -v 4.747988 2.300163 -0.000276 -v 4.577573 2.389535 -0.256196 -v 4.472349 2.325133 -0.443764 -v 4.389484 2.190421 -0.473320 -v 5.223191 1.371491 -0.388069 -v 5.158322 1.236770 -0.418043 -v 4.955360 1.236724 -0.505230 -v 4.761601 1.363013 -0.571370 -v 5.177545 1.932323 0.000214 -v 5.321136 1.795562 -0.119606 -v 5.378289 1.768448 0.000441 -v 5.424281 1.721152 0.000496 -v 5.421809 1.685349 -0.123555 -v 5.383208 1.619661 -0.202452 -v 5.373133 1.541142 -0.246712 -v 5.334328 1.402713 -0.332639 -v 5.296963 1.322443 -0.357984 -v 5.260653 1.184173 -0.352062 -v 5.250485 1.123029 -0.385234 -v 4.991713 1.163096 -0.504149 -v 4.733657 1.227371 -0.592883 -v 4.641547 1.285422 -0.622034 -v 4.522247 1.398278 -0.644892 -v 4.430999 1.535753 -0.638888 -v 4.404221 1.662433 -0.616610 -v 4.386380 1.770868 -0.596666 -v 4.377095 1.871713 -0.595743 -v 5.588763 1.573846 0.000686 -v 5.604888 1.546091 -0.113773 -v 5.566339 1.498677 -0.190905 -v 5.528186 1.440180 -0.250666 -v 5.471928 1.345179 -0.313899 -v 5.425783 1.264372 -0.329687 -v 5.397967 1.174238 -0.346802 -v 5.388455 1.119419 -0.351883 -v 5.687035 1.499636 -0.110765 -v 5.741781 1.463956 -0.124891 -v 5.730427 1.435668 -0.209848 -v 5.685194 1.452202 -0.188749 -v 5.710154 1.360653 -0.290072 -v 5.608974 1.317869 -0.319719 -v 5.647186 1.394606 -0.257833 -v 5.681726 1.282503 -0.333871 -v 5.563253 1.235295 -0.317238 -v 5.672187 1.164767 -0.354080 -v 5.580797 1.174135 -0.351054 -v 5.680007 1.510009 0.000786 -v 5.479630 1.111310 -0.364188 -v 5.842092 1.427708 -0.130724 -v 5.915025 1.382159 -0.136820 -v 5.886832 1.385674 -0.172365 -v 5.813217 1.415581 -0.195261 -v 5.908842 1.388968 0.001026 -v 5.963117 1.307775 0.001098 -v 5.979357 1.325532 -0.125337 -v 5.941384 1.330818 -0.178936 -v 5.743997 1.482739 0.000851 -v 5.835498 1.436280 0.000946 -v 5.783731 1.341471 -0.284590 -v 5.847989 1.311569 -0.261476 -v 5.931474 1.233483 -0.215613 -v 5.998088 1.231874 -0.107334 -v 5.963527 1.232407 0.001121 -v 5.927110 1.131195 0.001118 -v 5.961686 1.110978 -0.090324 -v 5.908782 1.066916 0.001121 -v 5.934596 1.054796 -0.077039 -f 1390 1387 1389 -f 1387 1388 1389 -f 1393 1394 1392 -f 1391 1392 1394 -f 1395 1396 1397 -f 1399 1390 1398 -f 1398 1390 1389 -f 1398 1400 1399 -f 1400 1401 1399 -f 1399 1402 1390 -f 1390 1402 1403 -f 1401 1404 1399 -f 1399 1404 1402 -f 1401 1405 1404 -f 1401 1406 1405 -f 1395 1393 1408 -f 1407 1408 1393 -f 1408 1409 1395 -f 1395 1409 1406 -f 1393 1392 1411 -f 1392 1410 1411 -f 1387 1412 1392 -f 1410 1392 1412 -f 1413 1414 1412 -f 1414 1410 1412 -f 1414 1415 1410 -f 1415 1411 1410 -f 1415 1416 1411 -f 1416 1407 1411 -f 1416 1417 1407 -f 1417 1408 1407 -f 1418 1409 1417 -f 1417 1409 1408 -f 1406 1409 1419 -f 1418 1419 1409 -f 1419 1420 1406 -f 1420 1421 1406 -f 1406 1421 1405 -f 1422 1404 1421 -f 1405 1421 1404 -f 1423 1402 1422 -f 1402 1404 1422 -f 1424 1403 1423 -f 1403 1402 1423 -f 1387 1403 1424 -f 1419 1425 1426 -f 1426 1427 1419 -f 1419 1427 1420 -f 1421 1420 1428 -f 1420 1427 1428 -f 1429 1422 1428 -f 1421 1428 1422 -f 1422 1429 1423 -f 1423 1429 1430 -f 1431 1424 1430 -f 1424 1423 1430 -f 1387 1424 1432 -f 1424 1431 1432 -f 1418 1417 1434 -f 1417 1433 1434 -f 1433 1417 1435 -f 1435 1417 1416 -f 1435 1416 1436 -f 1436 1416 1415 -f 1414 1437 1415 -f 1436 1415 1437 -f 1437 1414 1438 -f 1414 1413 1438 -f 1413 1387 1438 -f 1439 1438 1387 -f 1439 1387 1432 -f 1440 1437 1441 -f 1437 1438 1441 -f 1442 1436 1440 -f 1440 1436 1437 -f 1443 1435 1442 -f 1442 1435 1436 -f 1444 1433 1443 -f 1443 1433 1435 -f 1444 1445 1433 -f 1445 1434 1433 -f 1445 1446 1434 -f 1446 1425 1434 -f 1446 1447 1425 -f 1425 1447 1426 -f 1426 1447 1427 -f 1448 1439 1432 -f 1450 1443 1449 -f 1442 1449 1443 -f 1451 1444 1450 -f 1450 1444 1443 -f 1451 1452 1444 -f 1452 1445 1444 -f 1446 1445 1453 -f 1452 1453 1445 -f 1453 1454 1446 -f 1454 1447 1446 -f 1455 1427 1454 -f 1447 1454 1427 -f 1456 1428 1455 -f 1427 1455 1428 -f 1456 1457 1428 -f 1428 1457 1429 -f 1430 1429 1458 -f 1429 1457 1458 -f 1430 1458 1459 -f 1431 1430 1460 -f 1430 1459 1460 -f 1460 1461 1431 -f 1432 1431 1461 -f 1461 1462 1432 -f 1448 1432 1462 -f 1462 1463 1448 -f 1463 1441 1448 -f 1464 1441 1463 -f 1465 1440 1466 -f 1440 1441 1466 -f 1466 1441 1464 -f 1467 1468 1451 -f 1468 1452 1451 -f 1468 1469 1452 -f 1469 1453 1452 -f 1469 1470 1453 -f 1470 1454 1453 -f 1471 1455 1470 -f 1470 1455 1454 -f 1455 1471 1472 -f 1455 1472 1456 -f 1461 1460 1474 -f 1460 1473 1474 -f 1461 1474 1475 -f 1462 1461 1476 -f 1461 1475 1476 -f 1476 1477 1462 -f 1463 1462 1477 -f 1464 1463 1478 -f 1478 1463 1477 -f 1466 1464 1479 -f 1479 1464 1478 -f 1481 1450 1480 -f 1480 1450 1449 -f 1480 1449 1482 -f 1482 1449 1465 -f 1483 1482 1465 -f 1484 1483 1466 -f 1483 1465 1466 -f 1484 1466 1479 -f 1485 1457 1472 -f 1456 1472 1457 -f 1458 1457 1486 -f 1457 1485 1486 -f 1486 1487 1458 -f 1458 1487 1459 -f 1487 1488 1459 -f 1459 1488 1460 -f 1460 1488 1473 -f 1489 1490 1469 -f 1490 1470 1469 -f 1489 1491 1490 -f 1493 1490 1492 -f 1491 1492 1490 -f 1494 1470 1493 -f 1470 1490 1493 -f 1470 1494 1471 -f 1494 1495 1471 -f 1471 1495 1472 -f 1495 1496 1472 -f 1472 1496 1485 -f 1496 1497 1485 -f 1498 1486 1497 -f 1485 1497 1486 -f 1486 1498 1499 -f 1499 1500 1486 -f 1486 1500 1487 -f 1500 1501 1487 -f 1488 1487 1501 -f 1473 1488 1502 -f 1488 1501 1502 -f 1502 1503 1473 -f 1474 1473 1503 -f 1503 1504 1474 -f 1475 1474 1504 -f 1475 1504 1476 -f 1476 1504 1505 -f 1505 1506 1476 -f 1506 1477 1476 -f 1477 1506 1478 -f 1507 1478 1506 -f 1493 1492 1509 -f 1492 1508 1509 -f 1509 1510 1493 -f 1493 1510 1494 -f 1494 1510 1495 -f 1510 1511 1495 -f 1495 1511 1496 -f 1511 1512 1496 -f 1512 1513 1496 -f 1496 1513 1497 -f 1497 1513 1498 -f 1513 1514 1498 -f 1499 1498 1515 -f 1498 1514 1515 -f 1516 1517 1519 -f 1517 1518 1519 -f 1520 1521 1522 -f 1524 1521 1523 -f 1521 1520 1523 -f 1525 1526 1523 -f 1524 1523 1526 -f 1527 1516 1508 -f 1516 1509 1508 -f 1510 1509 1519 -f 1509 1516 1519 -f 1522 1511 1519 -f 1519 1511 1510 -f 1512 1511 1521 -f 1511 1522 1521 -f 1521 1524 1512 -f 1512 1524 1513 -f 1526 1514 1524 -f 1513 1524 1514 -f 1526 1528 1514 -f 1514 1528 1515 -f 1529 1530 1532 -f 1530 1531 1532 -f 1534 1535 1533 -f 1533 1535 1530 -f 1536 1531 1535 -f 1530 1535 1531 -f 1529 1517 1538 -f 1537 1538 1517 -f 1517 1529 1518 -f 1529 1532 1518 -f 1532 1539 1518 -f 1518 1539 1520 -f 1531 1540 1532 -f 1532 1540 1539 -f 1541 1540 1536 -f 1531 1536 1540 -f 1535 1542 1536 -f 1535 1534 1542 -f 1534 1543 1542 -f 1536 1542 1541 -f 1542 1543 1545 -f 1543 1544 1545 -f 1544 1546 1545 -f 1546 1547 1545 -v 5.908782 1.066916 0.001121 -v 5.871947 1.021428 0.001102 -v 5.897758 1.009309 -0.080583 -v 5.934596 1.054796 -0.077039 -v 5.878630 0.986485 -0.128292 -v 5.923808 1.025283 -0.153084 -f 1549 1550 1548 -f 1548 1550 1551 -f 1551 1550 1553 -f 1550 1552 1553 -v 5.961686 1.110978 -0.090324 -v 5.934596 1.054796 -0.077039 -v 5.923808 1.025283 -0.153084 -v 5.950684 1.082725 -0.175648 -v 5.800778 1.078596 -0.319450 -v 5.884856 1.062202 -0.249545 -v 5.857750 0.997026 -0.236768 -v 5.755282 1.004149 -0.307505 -v 5.763952 1.062109 -0.338641 -v 5.912147 1.117911 -0.254197 -v 5.959462 1.157227 -0.187097 -f 1554 1555 1557 -f 1555 1556 1557 -f 1561 1562 1560 -f 1562 1558 1560 -f 1558 1559 1560 -f 1557 1559 1564 -f 1563 1564 1559 -f 1560 1559 1556 -f 1559 1557 1556 -v 5.923808 1.025283 -0.153084 -v 5.878630 0.986485 -0.128292 -v 5.757506 0.957900 -0.210732 -v 5.857750 0.997026 -0.236768 -v 5.755282 1.004149 -0.307505 -v 5.674999 0.950754 -0.227960 -f 1567 1568 1566 -f 1565 1566 1568 -f 1568 1567 1569 -f 1569 1567 1570 -v 5.800778 1.078596 -0.319450 -v 5.837875 1.141493 -0.305184 -v 5.912147 1.117911 -0.254197 -v 5.884856 1.062202 -0.249545 -v 5.672187 1.164767 -0.354080 -v 5.773410 1.225861 -0.323025 -v 5.681726 1.282503 -0.333871 -v 5.764774 1.279824 -0.308562 -v 5.710154 1.360653 -0.290072 -v 5.783731 1.341471 -0.284590 -f 1571 1572 1574 -f 1572 1573 1574 -f 1575 1576 1571 -f 1576 1572 1571 -f 1577 1578 1575 -f 1578 1576 1575 -f 1577 1579 1578 -f 1579 1580 1578 -v 5.895899 1.182730 -0.164705 -v 5.959462 1.157227 -0.187097 -v 5.912147 1.117911 -0.254197 -v 5.849792 1.193480 -0.181047 -v 5.837875 1.141493 -0.305184 -v 5.803425 1.260787 -0.210002 -v 5.840665 1.221942 -0.187128 -v 5.773410 1.225861 -0.323025 -v 5.764774 1.279824 -0.308562 -v 5.783731 1.341471 -0.284590 -v 5.847989 1.311569 -0.261476 -v 5.931474 1.233483 -0.215613 -v 5.998088 1.231874 -0.107334 -v 5.672385 1.007694 -0.341778 -v 5.755282 1.004149 -0.307505 -v 5.674999 0.950754 -0.227960 -v 5.573803 0.952578 -0.243886 -v 5.580727 0.999330 -0.349867 -v 5.535184 0.980180 -0.341257 -f 1581 1582 1583 -f 1585 1584 1583 -f 1584 1581 1583 -f 1587 1588 1586 -f 1586 1588 1589 -f 1586 1589 1590 -f 1586 1590 1591 -f 1592 1587 1591 -f 1586 1591 1587 -f 1587 1592 1584 -f 1593 1581 1592 -f 1592 1581 1584 -f 1594 1595 1597 -f 1595 1596 1597 -f 1598 1594 1597 -f 1598 1597 1599 -v 5.690122 1.092917 -0.370850 -v 5.763952 1.062109 -0.338641 -v 5.681086 1.054964 -0.355860 -v 5.672187 1.164767 -0.354080 -v 5.800778 1.078596 -0.319450 -v 5.580797 1.174135 -0.351054 -v 5.598282 1.094735 -0.386994 -v 5.479630 1.111310 -0.364188 -v 5.470775 1.009574 -0.355371 -v 5.580223 1.047470 -0.372696 -v 5.672385 1.007694 -0.341778 -v 5.580727 0.999330 -0.349867 -v 5.535184 0.980180 -0.341257 -v 5.388455 1.119419 -0.351883 -v 5.425352 1.035967 -0.342720 -v 5.434594 0.970412 -0.330823 -v 5.480649 0.941387 -0.316248 -v 5.379461 1.045817 -0.349748 -v 5.370709 0.980272 -0.337432 -v 5.373646 0.885375 -0.208840 -f 1600 1601 1602 -f 1604 1601 1603 -f 1603 1601 1600 -f 1605 1603 1606 -f 1603 1600 1606 -f 1605 1606 1607 -f 1607 1606 1608 -f 1602 1609 1600 -f 1606 1600 1609 -f 1602 1610 1609 -f 1609 1610 1611 -f 1609 1608 1606 -f 1608 1609 1612 -f 1609 1611 1612 -f 1613 1607 1614 -f 1607 1608 1614 -f 1614 1608 1615 -f 1608 1612 1615 -f 1612 1616 1615 -f 1613 1614 1617 -f 1618 1617 1615 -f 1617 1614 1615 -f 1615 1616 1619 -f 1618 1615 1619 -v 5.573803 0.952578 -0.243886 -v 5.674999 0.950754 -0.227960 -v 5.638369 0.904402 -0.222548 -v 5.546347 0.916044 -0.246782 -v 5.757506 0.957900 -0.210732 -v 5.748613 0.920490 -0.205099 -f 1621 1622 1620 -f 1620 1622 1623 -f 1625 1622 1624 -f 1621 1624 1622 -v 5.480649 0.941387 -0.316248 -v 5.546347 0.916044 -0.246782 -v 5.511556 0.863525 -0.177613 -v 5.373646 0.885375 -0.208840 -v 5.638369 0.904402 -0.222548 -v 5.603370 0.852748 -0.162335 -v 5.748613 0.920490 -0.205099 -v 5.704630 0.849158 -0.128130 -v 5.250485 1.123029 -0.385234 -v 5.388455 1.119419 -0.351883 -v 5.379461 1.045817 -0.349748 -v 5.241466 1.040469 -0.383965 -v 5.370709 0.980272 -0.337432 -v 5.223571 0.974029 -0.362117 -v 5.299005 0.908991 -0.260177 -v 5.197562 0.922406 -0.302473 -f 1629 1626 1628 -f 1626 1627 1628 -f 1628 1627 1631 -f 1627 1630 1631 -f 1633 1631 1632 -f 1630 1632 1631 -f 1637 1634 1636 -f 1634 1635 1636 -f 1639 1637 1638 -f 1637 1636 1638 -f 1638 1629 1640 -f 1638 1640 1639 -f 1639 1640 1641 -v 5.878630 0.986485 -0.128292 -v 5.851404 0.929008 -0.105362 -v 5.748613 0.920490 -0.205099 -v 5.757506 0.957900 -0.210732 -v 5.871947 1.021428 0.001102 -v 5.836005 0.945722 0.001092 -v 5.897758 1.009309 -0.080583 -f 1642 1643 1645 -f 1643 1644 1645 -f 1646 1647 1648 -f 1648 1647 1642 -f 1647 1643 1642 -v 5.836005 0.945722 0.001092 -v 5.780790 0.891286 0.001059 -v 5.797411 0.880032 -0.072306 -v 5.851404 0.929008 -0.105362 -v 5.704630 0.849158 -0.128130 -v 5.748613 0.920490 -0.205099 -v 5.679621 0.839500 0.000985 -v 5.568745 0.834653 -0.071390 -v 5.579253 0.837796 0.000896 -v 5.449164 0.847535 -0.103909 -v 5.603370 0.852748 -0.162335 -v 5.247762 0.848549 -0.108546 -v 5.213434 0.856784 0.000565 -v 5.112563 0.840686 0.000480 -v 5.137075 0.824518 -0.144842 -v 5.356900 0.851120 -0.138324 -v 5.511556 0.863525 -0.177613 -v 5.264430 0.855571 -0.181694 -v 5.373646 0.885375 -0.208840 -v 5.323232 0.866039 0.000660 -v 5.469641 0.838722 0.000798 -v 5.299005 0.908991 -0.260177 -v 5.197562 0.922406 -0.302473 -v 5.153735 0.831575 -0.218348 -v 4.920855 0.812339 0.000318 -v 4.963526 0.797382 -0.143440 -v 4.996710 0.810560 -0.280771 -v 4.712067 0.770512 -0.333393 -v 4.669690 0.738163 -0.188296 -v 4.655453 0.758022 0.000098 -v 5.004627 0.908637 -0.345273 -v 4.728809 0.878731 -0.405801 -v 5.011084 1.066770 -0.458562 -v 5.241466 1.040469 -0.383965 -v 5.223571 0.974029 -0.362117 -v 5.021254 0.951308 -0.405567 -v 4.733657 1.227371 -0.592883 -v 4.991713 1.163096 -0.504149 -v 4.743250 1.059210 -0.563421 -v 4.744871 0.950945 -0.491082 -v 4.641547 1.285422 -0.622034 -v 4.567896 1.149805 -0.642484 -v 4.496191 1.024566 -0.579491 -v 4.416475 0.921264 -0.458839 -v 4.333503 0.951176 -0.481517 -v 4.399629 0.850459 -0.391855 -v 4.297891 0.911506 -0.447987 -v 4.380854 0.704574 -0.000130 -v 4.359048 0.700414 -0.166651 -v 4.319799 0.731007 -0.291212 -v 4.216374 0.852328 -0.405873 -v 4.449011 1.260929 -0.647431 -v 4.366867 1.131136 -0.630581 -v 4.141189 1.008775 -0.499342 -v 4.277227 1.077746 -0.550819 -v 4.085564 1.288885 -0.544406 -v 4.175444 1.350332 -0.613988 -v 4.247733 1.381058 -0.649596 -v 4.329607 1.464801 -0.661485 -v 4.430999 1.535753 -0.638888 -v 4.522247 1.398278 -0.644892 -v 4.312225 1.683392 -0.639944 -v 4.404221 1.662433 -0.616610 -v 4.303615 1.799914 -0.610388 -v 4.386380 1.770868 -0.596666 -v 4.304562 1.906537 -0.572242 -v 4.377095 1.871713 -0.595743 -v 4.240116 1.770049 -0.583946 -v 4.221814 1.660769 -0.594090 -v 4.121121 1.614451 -0.587188 -v 4.067576 1.572668 -0.534997 -v 4.148883 1.759918 -0.573765 -v 4.076852 1.746601 -0.527436 -v 4.747988 2.300163 -0.000276 -v 4.912303 2.162645 -0.000090 -v 4.971394 2.146686 -0.224781 -v 4.832890 2.262727 -0.283787 -v 5.049690 2.032731 0.000071 -v 5.177545 1.932323 0.000214 -v 5.156645 1.942902 -0.119993 -v 5.680007 1.510009 0.000786 -v 5.743997 1.482739 0.000851 -v 5.741781 1.463956 -0.124891 -v 5.687035 1.499636 -0.110765 -v 5.835498 1.436280 0.000946 -v 5.908842 1.388968 0.001026 -v 5.915025 1.382159 -0.136820 -v 5.842092 1.427708 -0.130724 -v 4.342351 2.581176 -0.140317 -v 4.317602 2.588926 -0.000745 -v 4.454962 2.523303 -0.000603 -v 4.452383 2.524558 -0.130255 -v 4.332083 2.586481 -0.194917 -v 4.440143 2.510529 -0.269164 -v 4.339601 2.592642 -0.258891 -v 4.429895 2.495758 -0.306894 -v 4.187258 2.590221 -0.135844 -v 4.189883 2.606916 -0.000863 -v 4.203325 2.589186 -0.219164 -v 4.211652 2.602538 -0.264011 -v 4.209941 2.600612 -0.337597 -v 4.328606 2.563996 -0.343892 -v 4.410844 2.500167 -0.351972 -f 1652 1649 1651 -f 1649 1650 1651 -f 1654 1652 1653 -f 1652 1651 1653 -f 1651 1650 1655 -f 1656 1653 1655 -f 1651 1655 1653 -f 1655 1657 1656 -f 1658 1659 1656 -f 1653 1656 1659 -f 1663 1660 1662 -f 1660 1661 1662 -f 1659 1658 1665 -f 1658 1664 1665 -f 1665 1664 1667 -f 1664 1666 1667 -f 1668 1661 1660 -f 1658 1656 1669 -f 1656 1657 1669 -f 1660 1658 1668 -f 1658 1669 1668 -f 1664 1658 1660 -f 1664 1660 1666 -f 1670 1667 1666 -f 1671 1670 1672 -f 1670 1666 1672 -f 1660 1663 1666 -f 1666 1663 1672 -f 1673 1674 1662 -f 1663 1662 1674 -f 1675 1672 1674 -f 1672 1663 1674 -f 1674 1677 1675 -f 1676 1675 1677 -f 1674 1673 1677 -f 1673 1678 1677 -f 1679 1671 1675 -f 1671 1672 1675 -f 1680 1679 1676 -f 1679 1675 1676 -f 1682 1683 1681 -f 1681 1683 1684 -f 1684 1683 1679 -f 1683 1671 1679 -f 1685 1686 1687 -f 1686 1681 1687 -f 1688 1687 1684 -f 1687 1681 1684 -f 1688 1684 1680 -f 1684 1679 1680 -f 1687 1690 1685 -f 1689 1685 1690 -f 1688 1691 1687 -f 1690 1687 1691 -f 1692 1691 1680 -f 1691 1688 1680 -f 1694 1695 1692 -f 1693 1692 1695 -f 1677 1678 1697 -f 1678 1696 1697 -f 1698 1676 1697 -f 1676 1677 1697 -f 1694 1676 1698 -f 1698 1699 1694 -f 1694 1699 1695 -f 1676 1694 1680 -f 1694 1692 1680 -f 1691 1701 1690 -f 1700 1690 1701 -f 1702 1695 1699 -f 1703 1693 1702 -f 1702 1693 1695 -f 1705 1703 1704 -f 1704 1703 1702 -f 1693 1691 1692 -f 1693 1703 1691 -f 1703 1701 1691 -f 1703 1705 1701 -f 1705 1706 1701 -f 1701 1706 1700 -f 1706 1707 1700 -f 1700 1707 1709 -f 1707 1708 1709 -f 1707 1710 1708 -f 1710 1711 1708 -f 1712 1713 1710 -f 1713 1711 1710 -f 1714 1715 1712 -f 1715 1713 1712 -f 1717 1716 1710 -f 1716 1712 1710 -f 1706 1717 1707 -f 1717 1710 1707 -f 1717 1706 1718 -f 1718 1706 1705 -f 1704 1719 1705 -f 1719 1718 1705 -f 1718 1720 1717 -f 1720 1716 1717 -f 1719 1721 1718 -f 1721 1720 1718 -f 1722 1723 1725 -f 1723 1724 1725 -f 1726 1727 1728 -f 1731 1732 1730 -f 1729 1730 1732 -f 1735 1736 1734 -f 1733 1734 1736 -f 1738 1739 1737 -f 1737 1739 1740 -f 1742 1741 1740 -f 1741 1737 1740 -f 1741 1742 1743 -f 1743 1742 1744 -f 1737 1745 1738 -f 1745 1746 1738 -f 1737 1741 1745 -f 1747 1745 1741 -f 1743 1748 1741 -f 1748 1747 1741 -f 1750 1749 1743 -f 1749 1748 1743 -f 1743 1744 1750 -f 1750 1744 1751 -v 4.224730 2.624525 -0.491916 -v 4.209941 2.600612 -0.337597 -v 4.328606 2.563996 -0.343892 -v 4.344028 2.585635 -0.470949 -v 4.410844 2.500167 -0.351972 -v 4.407729 2.531640 -0.486692 -v 4.277169 2.652435 -0.591369 -v 4.359483 2.615839 -0.596817 -v 4.423033 2.561337 -0.603562 -v 4.356680 2.682996 -0.719050 -v 4.411541 2.663824 -0.713132 -v 4.476090 2.606654 -0.692301 -v 4.418954 2.707401 -0.782531 -v 4.465268 2.695425 -0.757267 -v 4.520603 2.639162 -0.745542 -v 4.509555 2.719807 -0.819972 -v 4.546655 2.709095 -0.803780 -v 4.574545 2.669863 -0.780363 -f 1752 1753 1755 -f 1753 1754 1755 -f 1754 1756 1755 -f 1755 1756 1757 -f 1752 1755 1758 -f 1758 1755 1759 -f 1755 1757 1759 -f 1759 1757 1760 -f 1758 1759 1761 -f 1761 1759 1762 -f 1762 1759 1763 -f 1759 1760 1763 -f 1764 1761 1765 -f 1761 1762 1765 -f 1763 1766 1762 -f 1762 1766 1765 -f 1765 1768 1764 -f 1767 1764 1768 -f 1766 1769 1765 -f 1765 1769 1768 -v 4.528082 2.467537 -0.000521 -v 4.747988 2.300163 -0.000276 -v 4.634996 2.369115 -0.140117 -v 4.452383 2.524558 -0.130255 -v 4.454962 2.523303 -0.000603 -v 4.577573 2.389535 -0.256196 -v 4.440143 2.510529 -0.269164 -v 4.429895 2.495758 -0.306894 -v 4.474318 2.418432 -0.361347 -v 4.410844 2.500167 -0.351972 -f 1770 1771 1772 -f 1775 1773 1772 -f 1772 1773 1770 -f 1773 1774 1770 -f 1776 1773 1775 -f 1777 1776 1775 -f 1778 1779 1777 -v 4.407729 2.531640 -0.486692 -v 4.410844 2.500167 -0.351972 -v 4.474318 2.418432 -0.361347 -v 4.443850 2.449921 -0.495432 -v 4.423033 2.561337 -0.603562 -v 4.440760 2.490353 -0.629287 -v 4.476090 2.606654 -0.692301 -v 4.484667 2.534451 -0.708888 -v 4.520603 2.639162 -0.745542 -v 4.520165 2.557971 -0.762427 -v 4.574545 2.669863 -0.780363 -v 4.592620 2.569879 -0.790452 -v 4.656565 2.680542 -0.799684 -v 4.674691 2.598833 -0.808006 -v 4.646703 2.728688 -0.822295 -v 4.546655 2.709095 -0.803780 -v 4.636909 2.750501 -0.856859 -v 4.509555 2.719807 -0.819972 -v 4.748031 2.683805 -0.800044 -v 4.729447 2.606204 -0.807513 -v 4.728931 2.721892 -0.832625 -v 4.719171 2.751091 -0.865965 -v 4.821325 2.691794 -0.791887 -v 4.821336 2.621498 -0.789636 -v 4.811798 2.728680 -0.815406 -v 4.801436 2.750224 -0.858918 -v 5.096148 2.759720 -0.774729 -f 1782 1783 1781 -f 1780 1781 1783 -f 1785 1784 1783 -f 1784 1780 1783 -f 1784 1785 1786 -f 1786 1785 1787 -f 1788 1786 1789 -f 1786 1787 1789 -f 1790 1788 1791 -f 1788 1789 1791 -f 1791 1793 1790 -f 1792 1790 1793 -f 1795 1790 1794 -f 1794 1790 1792 -f 1797 1795 1796 -f 1796 1795 1794 -f 1792 1793 1798 -f 1798 1793 1799 -f 1792 1798 1794 -f 1800 1794 1798 -f 1801 1796 1800 -f 1796 1794 1800 -f 1799 1803 1798 -f 1802 1798 1803 -f 1804 1800 1802 -f 1800 1798 1802 -f 1805 1801 1804 -f 1801 1800 1804 -f 1806 1805 1804 -f 1806 1804 1802 -f 1806 1802 1803 -v 4.474318 2.418432 -0.361347 -v 4.429895 2.495758 -0.306894 -v 4.577573 2.389535 -0.256196 -v 4.472349 2.325133 -0.443764 -f 1807 1808 1809 -f 1807 1809 1810 -v 4.442912 2.343263 -0.533220 -v 4.443850 2.449921 -0.495432 -v 4.474318 2.418432 -0.361347 -v 4.472349 2.325133 -0.443764 -v 4.440713 2.398472 -0.629128 -v 4.440760 2.490353 -0.629287 -v 4.484667 2.534451 -0.708888 -v 4.474625 2.465214 -0.751890 -v 4.314039 2.329460 -0.577510 -v 4.320630 2.385528 -0.682583 -v 4.296769 2.260422 -0.528796 -v 4.382053 2.433474 -0.798757 -v 4.520165 2.557971 -0.762427 -v 4.538177 2.513353 -0.776566 -v 4.444739 2.475795 -0.860515 -v 4.592620 2.569879 -0.790452 -v 4.601515 2.533324 -0.794193 -v 4.554459 2.511417 -0.850571 -v 4.674691 2.598833 -0.808006 -v 4.683344 2.554221 -0.821927 -v 4.681847 2.551036 -0.886235 -v 4.737893 2.564648 -0.830389 -v 4.755192 2.568818 -0.876311 -v 4.829566 2.580797 -0.821827 -v 4.856249 2.593812 -0.867067 -v 4.729447 2.606204 -0.807513 -v 4.821336 2.621498 -0.789636 -v 4.662221 2.556346 -0.940618 -v 4.497719 2.547480 -0.937659 -v 4.763337 2.590834 -0.929248 -v 4.883022 2.613658 -0.893163 -v 4.352603 2.524888 -0.890532 -v 4.262798 2.490674 -0.818316 -v 4.192789 2.411967 -0.668016 -v 4.193959 2.370476 -0.616705 -v 4.113935 2.334131 -0.526471 -v 5.096148 2.759720 -0.774729 -v 4.735139 2.645464 -0.950890 -v 4.854957 2.660227 -0.924310 -v 4.615662 2.633870 -0.977986 -v 4.460582 2.622875 -0.957002 -v 4.343217 2.589542 -0.893106 -v 4.244622 2.554467 -0.811726 -v 4.138687 2.474013 -0.642311 -v 4.121994 2.458034 -0.570029 -v 4.078510 2.411810 -0.472193 -v 4.235494 2.636171 -0.803613 -v 4.342998 2.664049 -0.904347 -v 4.460786 2.695616 -0.949972 -v 4.624800 2.708372 -0.989445 -v 4.138494 2.557838 -0.652651 -v 4.104292 2.537976 -0.543437 -v 4.088356 2.510913 -0.453793 -f 1813 1814 1812 -f 1811 1812 1814 -f 1812 1811 1816 -f 1815 1816 1811 -f 1815 1818 1816 -f 1817 1816 1818 -f 1820 1815 1819 -f 1815 1811 1819 -f 1814 1821 1811 -f 1819 1811 1821 -f 1820 1822 1815 -f 1818 1815 1822 -f 1818 1824 1817 -f 1823 1817 1824 -f 1824 1818 1825 -f 1818 1822 1825 -f 1826 1823 1827 -f 1823 1824 1827 -f 1825 1828 1824 -f 1827 1824 1828 -f 1830 1829 1827 -f 1829 1826 1827 -f 1828 1831 1827 -f 1830 1827 1831 -f 1833 1832 1831 -f 1832 1830 1831 -f 1833 1835 1832 -f 1834 1832 1835 -f 1832 1836 1830 -f 1836 1829 1830 -f 1837 1836 1834 -f 1836 1832 1834 -f 1839 1838 1828 -f 1838 1831 1828 -f 1840 1833 1838 -f 1831 1838 1833 -f 1841 1835 1840 -f 1835 1833 1840 -f 1842 1839 1825 -f 1828 1825 1839 -f 1843 1842 1822 -f 1842 1825 1822 -f 1843 1822 1844 -f 1822 1820 1844 -f 1819 1845 1820 -f 1844 1820 1845 -f 1821 1846 1819 -f 1846 1845 1819 -f 1841 1847 1835 -f 1841 1840 1849 -f 1840 1848 1849 -f 1850 1848 1838 -f 1838 1848 1840 -f 1838 1839 1850 -f 1839 1851 1850 -f 1839 1842 1851 -f 1842 1852 1851 -f 1853 1852 1843 -f 1843 1852 1842 -f 1853 1843 1854 -f 1844 1854 1843 -f 1841 1849 1847 -f 1855 1854 1845 -f 1854 1844 1845 -f 1845 1846 1855 -f 1855 1846 1856 -f 1857 1858 1853 -f 1853 1858 1852 -f 1852 1858 1851 -f 1858 1859 1851 -f 1859 1860 1851 -f 1851 1860 1850 -f 1854 1861 1853 -f 1861 1857 1853 -f 1862 1861 1855 -f 1861 1854 1855 -f 1855 1856 1862 -f 1863 1862 1856 -v 4.063205 2.509679 -0.342987 -v 4.088356 2.510913 -0.453793 -v 4.078510 2.411810 -0.472193 -v 4.043796 2.386524 -0.400392 -v 4.055262 2.505284 -0.297282 -v 4.035753 2.399538 -0.343957 -f 1864 1865 1867 -f 1865 1866 1867 -f 1864 1867 1868 -f 1868 1867 1869 -v 4.624800 2.708372 -0.989445 -v 4.753015 2.699695 -0.973279 -v 4.735139 2.645464 -0.950890 -v 4.615662 2.633870 -0.977986 -v 4.863709 2.722151 -0.936660 -v 4.854957 2.660227 -0.924310 -f 1871 1872 1870 -f 1870 1872 1873 -f 1872 1871 1875 -f 1871 1874 1875 -v 4.187258 2.590221 -0.135844 -v 4.084506 2.570978 -0.218168 -v 4.079812 2.571649 -0.000951 -v 4.189883 2.606916 -0.000863 -v 4.203325 2.589186 -0.219164 -v 4.101754 2.557092 -0.265856 -v 4.211652 2.602538 -0.264011 -v 4.100907 2.560626 -0.302396 -v 4.209941 2.600612 -0.337597 -v 4.117367 2.568514 -0.384500 -f 1877 1878 1876 -f 1876 1878 1879 -f 1876 1880 1877 -f 1880 1881 1877 -f 1883 1881 1882 -f 1882 1881 1880 -f 1883 1882 1885 -f 1884 1885 1882 -v 4.224730 2.624525 -0.491916 -v 4.151183 2.579059 -0.494606 -v 4.117367 2.568514 -0.384500 -v 4.209941 2.600612 -0.337597 -v 4.636909 2.750501 -0.856859 -v 4.616626 2.749486 -0.939333 -v 4.462368 2.725999 -0.882675 -v 4.509555 2.719807 -0.819972 -v 4.354196 2.711836 -0.826545 -v 4.418954 2.707401 -0.782531 -v 4.273414 2.686575 -0.753674 -v 4.356680 2.682996 -0.719050 -v 4.277169 2.652435 -0.591369 -v 4.176065 2.636883 -0.618384 -f 1889 1886 1888 -f 1886 1887 1888 -f 1891 1892 1890 -f 1890 1892 1893 -f 1892 1894 1893 -f 1893 1894 1895 -f 1896 1897 1894 -f 1895 1894 1897 -f 1887 1886 1899 -f 1886 1898 1899 -v 4.035753 2.399538 -0.343957 -v 4.000110 2.424158 -0.313254 -v 4.029016 2.519175 -0.249385 -v 4.055262 2.505284 -0.297282 -v 4.024214 2.527933 -0.000987 -v 3.988172 2.489642 -0.001008 -v 4.079812 2.571649 -0.000951 -v 4.084506 2.570978 -0.218168 -v 4.101754 2.557092 -0.265856 -v 4.100907 2.560626 -0.302396 -v 4.063205 2.509679 -0.342987 -v 4.117367 2.568514 -0.384500 -v 4.088356 2.510913 -0.453793 -f 1902 1903 1901 -f 1900 1901 1903 -f 1901 1905 1902 -f 1904 1902 1905 -f 1904 1906 1902 -f 1906 1907 1902 -f 1907 1908 1902 -f 1902 1908 1903 -f 1910 1903 1909 -f 1903 1908 1909 -f 1912 1910 1911 -f 1910 1909 1911 -v 4.088356 2.510913 -0.453793 -v 4.117367 2.568514 -0.384500 -v 4.151183 2.579059 -0.494606 -v 4.104292 2.537976 -0.543437 -v 4.176065 2.636883 -0.618384 -v 4.277169 2.652435 -0.591369 -v 4.356680 2.682996 -0.719050 -v 4.273414 2.686575 -0.753674 -v 4.138494 2.557838 -0.652651 -v 4.235494 2.636171 -0.803613 -v 4.354196 2.711836 -0.826545 -v 4.342998 2.664049 -0.904347 -v 4.462368 2.725999 -0.882675 -v 4.460786 2.695616 -0.949972 -v 4.636909 2.750501 -0.856859 -v 4.719171 2.751091 -0.865965 -v 4.735445 2.749285 -0.940329 -v 4.616626 2.749486 -0.939333 -v 4.801436 2.750224 -0.858918 -v 4.827733 2.754390 -0.905049 -v 5.096148 2.759720 -0.774729 -v 4.624800 2.708372 -0.989445 -v 4.753015 2.699695 -0.973279 -v 4.863709 2.722151 -0.936660 -f 1914 1915 1913 -f 1913 1915 1916 -f 1917 1918 1920 -f 1918 1919 1920 -f 1915 1917 1916 -f 1916 1917 1921 -f 1921 1917 1922 -f 1917 1920 1922 -f 1922 1920 1924 -f 1920 1923 1924 -f 1924 1923 1926 -f 1923 1925 1926 -f 1929 1930 1928 -f 1927 1928 1930 -f 1929 1928 1932 -f 1931 1932 1928 -f 1932 1931 1933 -f 1926 1925 1934 -f 1925 1930 1934 -f 1935 1934 1929 -f 1930 1929 1934 -f 1935 1929 1936 -f 1936 1929 1932 -f 1936 1932 1933 -v 3.787342 2.396113 -0.001159 -v 3.988172 2.489642 -0.001008 -v 4.000110 2.424158 -0.313254 -v 3.828001 2.352540 -0.233341 -v 3.961908 2.347745 -0.374747 -v 3.870548 2.292106 -0.368964 -v 4.035753 2.399538 -0.343957 -v 4.043796 2.386524 -0.400392 -v 4.025364 2.359300 -0.402597 -v 4.077563 2.305187 -0.510338 -v 3.967085 2.280648 -0.537643 -v 3.903911 2.241501 -0.512468 -v 3.857922 2.141554 -0.521067 -v 3.823349 2.141733 -0.428356 -v 4.078510 2.411810 -0.472193 -v 4.113935 2.334131 -0.526471 -v 4.112302 2.285832 -0.595500 -v 4.010847 2.270246 -0.622149 -v 3.928869 2.223919 -0.615683 -v 3.892378 2.149432 -0.603589 -v 4.146067 2.278102 -0.707372 -v 4.044730 2.254459 -0.744209 -v 3.990744 2.205448 -0.710795 -v 3.945464 2.130100 -0.689536 -v 4.296769 2.260422 -0.528796 -v 4.212974 2.303184 -0.587113 -v 4.212058 2.279450 -0.625927 -v 4.229332 2.274522 -0.672749 -v 4.172143 2.303394 -0.778972 -v 4.079122 2.264104 -0.845010 -v 4.024700 2.187859 -0.814219 -v 4.273005 2.310529 -0.762172 -v 4.215419 2.350484 -0.885764 -v 4.104864 2.298353 -0.915735 -v 4.059714 2.194906 -0.888152 -v 4.061989 2.231988 -1.178382 -v 4.102304 2.299960 -1.025862 -v 4.155551 2.388662 -1.091960 -v 4.097362 2.366600 -1.239986 -v 4.194233 2.408334 -1.008471 -v 4.307092 2.367482 -0.877202 -v 4.266263 2.421651 -1.054799 -v 4.228523 2.435029 -1.098575 -v 4.170470 2.458441 -1.241846 -v 4.094116 2.426172 -1.381032 -v 4.058311 2.293363 -1.338054 -v 4.046673 2.341349 -1.452530 -v 4.047406 2.207209 -1.015108 -v 3.989434 2.118832 -0.765086 -v 4.022592 2.123052 -0.903284 -v 4.020299 2.141675 -1.002365 -v 4.036947 1.992167 -1.072561 -v 4.024858 2.106568 -1.208099 -v 4.082988 2.175805 -1.450930 -v 4.103303 2.038565 -1.363737 -v 4.152166 1.868775 -1.225002 -v 4.031515 1.968248 -0.918460 -v 4.127903 1.828359 -1.090512 -v 3.922437 1.972461 -0.483563 -v 3.966639 1.969285 -0.549291 -v 3.982910 1.987391 -0.639809 -v 4.094112 1.889281 -0.578435 -v 4.059885 1.860460 -0.470087 -v 4.017509 1.996169 -0.731654 -v 4.150297 1.820575 -0.917046 -v 4.472349 2.325133 -0.443764 -v 4.389484 2.190421 -0.473320 -v 4.314791 2.142163 -0.540650 -v 4.342700 2.112281 -0.516692 -v 4.305411 2.059245 -0.539407 -v 4.433020 2.024714 -0.563794 -v 4.148927 2.388726 -1.376879 -v 4.101726 2.312318 -1.438163 -v 4.149438 2.340550 -1.353693 -v 4.169404 2.306276 -1.284031 -v 4.140097 2.295949 -1.367196 -v 4.129926 2.308770 -1.402259 -v 4.141759 2.279958 -1.295340 -v 4.197644 2.394643 -1.248646 -v 4.197516 2.349135 -1.253043 -v 4.199317 2.304652 -1.174540 -v 4.274886 2.220030 -0.679075 -v 4.267320 2.121987 -0.614940 -v 4.380990 2.207701 -0.839016 -v 4.354411 2.102985 -0.802580 -v 4.369751 2.298204 -0.921894 -v 4.303193 2.347123 -1.044413 -v 4.245861 2.375093 -1.141312 -v 4.218457 2.356834 -1.142444 -v 4.275405 2.319905 -1.046400 -v 4.296538 2.243779 -0.925459 -v 4.289048 2.172969 -0.858693 -v 4.211815 2.282490 -1.039137 -v 4.278045 1.976660 -0.537351 -v 4.290375 2.112337 -0.800190 -v 4.222795 2.228178 -0.952752 -v 4.197609 2.164063 -0.857433 -v 4.153175 2.084823 -0.799668 -v 4.151090 2.102939 -0.889759 -v 4.148865 2.148829 -0.986567 -v 4.154566 2.190480 -1.129552 -v 4.152557 2.235471 -1.217046 -v 4.131949 2.050757 -0.921856 -v 4.119993 2.063095 -1.049178 -v 4.126160 2.120930 -1.172520 -v 4.133175 2.175231 -1.259323 -v 4.137657 1.944837 -1.061024 -v 4.159229 1.949902 -0.923197 -v 4.143794 2.013720 -1.201386 -v 4.123290 2.086854 -1.295135 -v 4.112680 2.195089 -1.366908 -v 4.111934 2.234814 -1.399949 -v 4.304562 1.906537 -0.572242 -v 4.232341 1.903079 -0.534362 -v 4.240116 1.770049 -0.583946 -v 4.303615 1.799914 -0.610388 -v 4.377095 1.871713 -0.595743 -v 4.432610 1.878873 -0.577888 -v 4.148883 1.759918 -0.573765 -v 4.281287 2.055751 -0.787000 -v 4.354941 2.064161 -0.778851 -v 4.245225 2.008532 -0.772641 -f 1939 1940 1938 -f 1937 1938 1940 -f 1939 1941 1940 -f 1941 1942 1940 -f 1939 1943 1945 -f 1943 1944 1945 -f 1939 1945 1941 -f 1947 1941 1946 -f 1941 1945 1946 -f 1947 1948 1941 -f 1942 1941 1948 -f 1942 1948 1950 -f 1948 1949 1950 -f 1944 1951 1952 -f 1944 1952 1945 -f 1952 1946 1945 -f 1947 1946 1954 -f 1946 1953 1954 -f 1955 1948 1954 -f 1947 1954 1948 -f 1948 1955 1949 -f 1955 1956 1949 -f 1958 1954 1957 -f 1953 1957 1954 -f 1954 1958 1955 -f 1955 1958 1959 -f 1955 1959 1956 -f 1959 1960 1956 -f 1952 1961 1962 -f 1953 1946 1962 -f 1946 1952 1962 -f 1957 1953 1963 -f 1962 1963 1953 -f 1965 1957 1964 -f 1963 1964 1957 -f 1966 1958 1965 -f 1957 1965 1958 -f 1967 1959 1966 -f 1958 1966 1959 -f 1969 1965 1968 -f 1964 1968 1965 -f 1965 1969 1966 -f 1969 1970 1966 -f 1970 1971 1966 -f 1966 1971 1967 -f 1972 1973 1975 -f 1973 1974 1975 -f 1969 1976 1970 -f 1970 1976 1973 -f 1973 1976 1974 -f 1969 1968 1977 -f 1977 1978 1969 -f 1969 1978 1976 -f 1974 1976 1979 -f 1976 1978 1979 -f 1975 1974 1980 -f 1974 1979 1980 -f 1980 1981 1975 -f 1975 1981 1982 -f 1982 1981 1983 -f 1971 1970 1984 -f 1970 1973 1984 -f 1984 1973 1972 -f 1967 1985 1959 -f 1960 1959 1985 -f 1985 1967 1986 -f 1967 1971 1986 -f 1984 1987 1971 -f 1986 1971 1987 -f 1987 1984 1972 -f 1972 1975 1982 -f 1972 1989 1987 -f 1988 1987 1989 -f 1989 1972 1982 -f 1982 1983 1990 -f 1982 1990 1989 -f 1991 1989 1990 -f 1992 1988 1991 -f 1989 1991 1988 -f 1993 1988 1994 -f 1988 1992 1994 -f 1993 1986 1988 -f 1986 1987 1988 -f 1996 1995 1949 -f 1995 1950 1949 -f 1949 1956 1996 -f 1996 1956 1997 -f 1999 1995 1998 -f 1995 1996 1998 -f 1996 1997 1998 -f 2000 1985 1993 -f 1985 1986 1993 -f 2000 1960 1985 -f 1997 1956 2000 -f 1956 1960 2000 -f 1997 2000 1998 -f 2000 2001 1998 -f 2000 1993 2001 -f 1993 1994 2001 -f 1961 2002 2003 -f 2004 2003 2005 -f 2004 2005 2006 -f 2004 1961 2003 -f 2005 2003 2007 -f 2006 2005 2007 -f 1983 1981 2009 -f 1981 2008 2009 -f 2011 2012 2010 -f 2010 2012 2013 -f 2011 2014 2012 -f 1981 1980 2008 -f 1980 2015 2008 -f 2008 2015 2010 -f 2015 2016 2010 -f 2017 2011 2016 -f 2016 2011 2010 -f 1961 2004 2018 -f 2018 2004 2019 -f 2021 2020 2019 -f 2020 2018 2019 -f 1962 1961 1963 -f 1963 1961 1964 -f 1964 1961 2018 -f 1968 1964 2018 -f 1968 2018 1977 -f 2019 2004 2006 -f 2018 2020 1977 -f 1977 2020 2022 -f 1977 2022 1978 -f 2023 1978 2022 -f 2024 1979 2023 -f 1979 1978 2023 -f 1980 1979 2015 -f 2024 2015 1979 -f 2015 2024 2016 -f 2016 2024 2025 -f 2026 2025 2023 -f 2025 2024 2023 -f 2027 2026 2022 -f 2023 2022 2026 -f 2022 2020 2027 -f 2020 2028 2027 -f 2017 2016 2025 -f 2017 2025 2029 -f 2025 2026 2029 -f 2030 2021 2006 -f 2021 2019 2006 -f 2020 2021 2028 -f 2028 2021 2031 -f 2027 2032 2026 -f 2029 2026 2032 -f 2032 2027 2033 -f 2027 2028 2033 -f 2031 2034 2028 -f 2033 2028 2034 -f 2035 2033 2034 -f 2036 2032 2035 -f 2032 2033 2035 -f 2037 2029 2036 -f 2029 2032 2036 -f 2029 2037 2017 -f 2038 2017 2037 -f 2017 2038 2011 -f 2014 2011 2038 -f 2039 2035 2034 -f 2036 2035 2040 -f 2040 2035 2039 -f 2036 2040 2037 -f 2041 2037 2040 -f 2037 2041 2038 -f 2042 2038 2041 -f 2042 2014 2038 -f 2040 2039 2043 -f 2043 2039 2044 -f 2043 2045 2040 -f 2045 2041 2040 -f 2045 2046 2041 -f 2046 2042 2041 -f 2046 2047 2042 -f 2047 2014 2042 -f 2014 2047 2012 -f 2048 2012 2047 -f 2048 2013 2012 -f 2030 2049 2050 -f 2051 2050 2052 -f 2050 2049 2052 -f 2006 2053 2030 -f 2049 2030 2053 -f 2006 2007 2053 -f 2053 2007 2054 -f 1998 2050 2055 -f 2055 2050 2051 -f 2031 2021 2056 -f 2021 2057 2056 -f 2056 2057 2058 -f 2034 2031 2056 -f 2056 2044 2034 -f 2039 2034 2044 -f 2057 2021 2030 -f 2057 2030 2058 -f 2030 2050 2058 -f 2044 2056 2058 -v 5.998088 1.231874 -0.107334 -v 5.959462 1.157227 -0.187097 -v 5.895899 1.182730 -0.164705 -f 2059 2060 2061 -v 5.998088 1.231874 -0.107334 -v 5.961686 1.110978 -0.090324 -v 5.950684 1.082725 -0.175648 -v 5.959462 1.157227 -0.187097 -v 5.672385 1.007694 -0.341778 -v 5.681086 1.054964 -0.355860 -v 5.763952 1.062109 -0.338641 -v 5.755282 1.004149 -0.307505 -f 2062 2063 2065 -f 2063 2064 2065 -f 2068 2069 2067 -f 2066 2067 2069 -v 5.837875 1.141493 -0.305184 -v 5.773410 1.225861 -0.323025 -v 5.840665 1.221942 -0.187128 -v 5.849792 1.193480 -0.181047 -v 5.535184 0.980180 -0.341257 -v 5.573803 0.952578 -0.243886 -v 5.546347 0.916044 -0.246782 -v 5.480649 0.941387 -0.316248 -f 2073 2070 2072 -f 2070 2071 2072 -f 2077 2074 2076 -f 2074 2075 2076 -v 5.647186 1.394606 -0.257833 -v 5.685194 1.452202 -0.188749 -v 5.730427 1.435668 -0.209848 -v 5.710154 1.360653 -0.290072 -v 5.250485 1.123029 -0.385234 -v 5.241466 1.040469 -0.383965 -v 5.011084 1.066770 -0.458562 -v 4.991713 1.163096 -0.504149 -v 4.567896 1.149805 -0.642484 -v 4.449011 1.260929 -0.647431 -v 4.522247 1.398278 -0.644892 -v 4.641547 1.285422 -0.622034 -v 4.697024 1.862575 -0.604048 -v 4.688114 2.046378 -0.604518 -v 4.728963 2.036146 -0.614307 -v 4.742358 1.882232 -0.621650 -v 4.842883 2.021333 -0.638025 -v 4.861611 2.001639 -0.621913 -v 4.824747 1.946835 -0.626358 -v 4.760921 1.881357 -0.613120 -f 2081 2078 2080 -f 2078 2079 2080 -f 2082 2083 2085 -f 2083 2084 2085 -f 2088 2089 2087 -f 2086 2087 2089 -f 2091 2092 2090 -f 2090 2092 2093 -f 2097 2094 2096 -f 2094 2095 2096 -v 4.897808 1.946794 -0.628057 -v 4.861611 2.001639 -0.621913 -v 4.935561 2.016016 -0.585700 -v 4.925394 1.955229 -0.618837 -f 2100 2101 2099 -f 2098 2099 2101 -v 4.760921 1.881357 -0.613120 -v 4.861618 1.854067 -0.618095 -v 4.852582 1.816115 -0.603105 -v 4.935561 2.016016 -0.585700 -v 4.935880 2.051665 -0.572853 -v 4.991746 2.009819 -0.523206 -v 4.973133 1.992779 -0.533466 -v 4.751519 2.039658 -0.634134 -v 4.788476 2.028047 -0.608619 -v 4.982364 1.873300 -0.536190 -v 5.001903 1.914398 -0.486724 -v 5.011430 1.875569 -0.463205 -v 4.991709 1.844295 -0.520761 -v 4.881574 2.094571 -0.539949 -v 4.918466 2.084725 -0.532713 -v 4.636582 2.263383 -0.471997 -v 4.739441 2.299169 -0.369987 -v 4.837331 2.235678 -0.479332 -v 4.744050 2.179337 -0.556057 -v 5.057495 2.002751 -0.451974 -v 5.067202 2.027704 -0.422291 -v 5.095375 1.961238 -0.401516 -v 5.075994 1.900999 -0.443793 -v 4.082988 2.175805 -1.450930 -v 4.046673 2.341349 -1.452530 -v 4.101726 2.312318 -1.438163 -v 4.129926 2.308770 -1.402259 -v 4.111934 2.234814 -1.399949 -v 4.159229 1.949902 -0.923197 -v 4.245225 2.008532 -0.772641 -v 4.094112 1.889281 -0.578435 -v 4.150297 1.820575 -0.917046 -v 4.137657 1.944837 -1.061024 -v 4.127903 1.828359 -1.090512 -v 4.143794 2.013720 -1.201386 -v 4.152166 1.868775 -1.225002 -v 4.123290 2.086854 -1.295135 -v 4.103303 2.038565 -1.363737 -v 4.112680 2.195089 -1.366908 -f 2102 2103 2104 -f 2106 2107 2105 -f 2105 2107 2108 -f 2109 2110 2102 -f 2113 2114 2112 -f 2111 2112 2114 -f 2107 2113 2112 -f 2115 2116 2106 -f 2118 2119 2117 -f 2117 2119 2120 -f 2124 2121 2123 -f 2121 2122 2123 -f 2125 2126 2127 -f 2127 2128 2125 -f 2125 2128 2129 -f 2133 2130 2132 -f 2130 2131 2132 -f 2135 2134 2133 -f 2134 2130 2133 -f 2136 2134 2137 -f 2134 2135 2137 -f 2137 2139 2136 -f 2138 2136 2139 -f 2125 2140 2139 -f 2140 2138 2139 -f 2129 2140 2125 -v 4.854957 2.660227 -0.924310 -v 4.863709 2.722151 -0.936660 -v 5.096148 2.759720 -0.774729 -f 2141 2142 2143 -v 4.059885 1.860460 -0.470087 -v 4.094112 1.889281 -0.578435 -v 4.148883 1.759918 -0.573765 -v 4.076852 1.746601 -0.527436 -v 4.126565 0.642027 0.000000 -v 4.120842 0.627141 -0.185461 -v 4.359048 0.700414 -0.166651 -v 4.380854 0.704574 -0.000130 -v 3.881998 1.764428 -0.476337 -v 3.886058 1.550141 -0.504830 -v 4.067576 1.572668 -0.534997 -v 3.988510 1.297806 -0.539537 -v 4.085564 1.288885 -0.544406 -v 4.041657 1.039756 -0.496922 -v 4.141189 1.008775 -0.499342 -v 4.068249 0.798926 -0.400813 -v 4.216374 0.852328 -0.405873 -v 4.105198 0.672581 -0.300001 -v 4.319799 0.731007 -0.291212 -v 3.745669 2.266001 -0.241930 -v 3.828001 2.352540 -0.233341 -v 3.870548 2.292106 -0.368964 -v 3.758215 2.206683 -0.323051 -v 3.727093 2.308406 -0.150049 -v 3.716360 2.343387 0.000000 -v 3.787342 2.396113 -0.001159 -v 3.922437 1.972461 -0.483563 -v 3.814876 1.968416 -0.443000 -v 3.823349 2.141733 -0.428356 -f 2144 2145 2147 -f 2145 2146 2147 -f 2149 2150 2148 -f 2148 2150 2151 -f 2152 2144 2147 -f 2153 2152 2154 -f 2152 2147 2154 -f 2154 2156 2153 -f 2155 2153 2156 -f 2158 2157 2156 -f 2157 2155 2156 -f 2157 2158 2159 -f 2159 2158 2160 -f 2162 2161 2160 -f 2161 2159 2160 -f 2150 2149 2162 -f 2149 2161 2162 -f 2164 2165 2163 -f 2163 2165 2166 -f 2164 2167 2169 -f 2167 2168 2169 -f 2163 2167 2164 -f 2170 2144 2152 -f 2170 2152 2171 -f 2172 2170 2171 -f 2172 2171 2166 -f 2165 2172 2166 -v 4.821336 2.621498 -0.789636 -v 4.829566 2.580797 -0.821827 -v 5.096148 2.759720 -0.774729 -v 4.856249 2.593812 -0.867067 -f 2173 2174 2175 -f 2174 2176 2175 -v 4.245225 2.008532 -0.772641 -v 4.232341 1.903079 -0.534362 -v 4.094112 1.889281 -0.578435 -v 1.655948 -2.520927 -0.844269 -v 1.678986 -2.513137 -0.891745 -v 1.718315 -2.775468 -0.921796 -v 1.700797 -2.794792 -0.824250 -v 1.734568 -2.965876 -0.986396 -v 1.705953 -3.006628 -0.832630 -v -1.305099 -1.708460 -0.484230 -v -1.108758 -1.770749 -0.473033 -v -0.977375 -1.793126 -0.498747 -v -0.972514 -1.822778 -0.372649 -v -1.406693 -1.697325 -0.450399 -v -1.397474 -1.693815 -0.570541 -v -1.266738 -1.691944 -0.557922 -f 2177 2178 2179 -f 2183 2180 2182 -f 2180 2181 2182 -f 2184 2185 2182 -f 2182 2185 2183 -f 2186 2187 2189 -f 2187 2188 2189 -f 2190 2191 2186 -f 2191 2192 2186 -v -3.139394 -1.687482 -0.638546 -v -3.008323 -1.759271 -0.655672 -v -2.941731 -1.787431 -0.442574 -v -3.120907 -1.707924 -0.431829 -v -2.709403 -1.879947 -0.508775 -v -2.811581 -1.798210 -0.712737 -v -2.699966 -1.850397 -0.570070 -f 2195 2196 2194 -f 2193 2194 2196 -f 2194 2197 2195 -f 2197 2194 2199 -f 2194 2198 2199 -v -3.392806 1.769365 0.000000 -v -3.413372 1.871604 -0.142309 -v -3.358510 1.810253 -0.380095 -v -3.348274 1.767738 -0.000085 -v -3.380836 1.819691 -0.123273 -v 4.149438 2.340550 -1.353693 -v 4.129926 2.308770 -1.402259 -v 4.101726 2.312318 -1.438163 -v 4.148927 2.388726 -1.376879 -v -2.811581 -1.798210 -0.712737 -v -3.008323 -1.759271 -0.655672 -v -3.066022 -1.953125 -0.719516 -v -2.964215 -1.978727 -0.776572 -v -3.139394 -1.687482 -0.638546 -v -3.211005 -1.850398 -0.700723 -v 2.407309 -0.974980 0.805091 -v 2.410367 -0.777999 0.841105 -v 2.292449 -0.871852 0.882400 -v 2.229345 -0.992723 0.862826 -v 2.520417 -0.954785 0.739445 -v 2.539200 -0.727778 0.750475 -v 2.637655 -0.768176 0.637039 -v 2.514167 -1.077721 0.706614 -v 2.669281 -0.930664 0.557166 -v 2.386465 -1.116066 0.761367 -v 2.180012 -1.130557 0.821812 -v 2.158051 -1.209613 0.783941 -v 2.354287 -1.193746 0.735189 -v 2.126237 -1.330172 0.721011 -v 2.318787 -1.294090 0.673863 -v 2.274533 -1.433487 0.567366 -v 2.457060 -1.400958 0.539866 -v 2.486533 -1.274971 0.627822 -v 2.549322 -1.335209 0.535156 -v 2.617970 -1.235597 0.520238 -v 2.670253 -1.108365 0.544018 -v 2.510841 -1.158786 0.678057 -v 2.710721 -0.830091 0.532493 -v 2.757946 -1.099958 0.471684 -v 2.857666 -0.930625 0.391195 -v 2.803736 -1.255869 0.438328 -v 2.847364 -1.103812 0.402301 -v 2.740886 -1.339225 0.463604 -v 2.663024 -1.440487 0.478149 -v 2.515314 -1.507063 0.483275 -v 2.422296 -1.510915 0.494169 -v 2.249663 -1.492705 0.531270 -v 2.079600 -1.473377 0.654997 -v 2.928787 -1.107467 0.312054 -v 2.960118 -0.941827 0.284743 -v 2.893096 -1.302168 0.332049 -v 2.824356 -1.407256 0.355013 -v 2.721135 -1.520418 0.362378 -v 2.545261 -1.593300 0.386310 -v 2.396607 -1.593239 0.389972 -v 2.243492 -1.584783 0.431143 -v 2.048200 -1.581983 0.555832 -v 2.931756 -1.129655 0.000000 -v 2.970902 -0.959664 0.000000 -v 2.896234 -1.319560 0.000000 -v 2.821376 -1.431534 0.000000 -v 2.706963 -1.528854 0.000000 -v 2.534227 -1.617078 0.000000 -v 2.348182 -1.624595 0.000000 -v 2.167167 -1.596326 0.000000 -v 1.920432 -1.567396 0.000000 -v 2.835437 -0.231101 0.577890 -v 2.736198 -0.346225 0.659345 -v 2.881063 -0.493146 0.521968 -v 2.986408 -0.413503 0.428964 -v 2.910769 -0.638444 0.431191 -v 2.825540 -0.567578 0.552597 -v 2.688131 -0.517509 0.672975 -v 2.647368 -0.611550 0.669485 -v 2.618307 -0.549092 0.805491 -v 2.993075 -0.708434 0.342596 -v 3.045715 -0.767786 0.261741 -v 3.065544 -0.788768 0.000000 -v 3.118124 -0.703925 0.000000 -v 3.107533 -0.691019 0.264602 -v 3.053144 -0.609681 0.326931 -f 2200 2201 2202 -f 2201 2200 2204 -f 2203 2204 2200 -f 2207 2208 2206 -f 2205 2206 2208 -f 2209 2210 2212 -f 2210 2211 2212 -f 2210 2213 2211 -f 2213 2214 2211 -f 2216 2217 2215 -f 2215 2217 2218 -f 2220 2216 2219 -f 2219 2216 2215 -f 2221 2220 2219 -f 2222 2223 2219 -f 2219 2223 2221 -f 2224 2222 2215 -f 2215 2222 2219 -f 2225 2224 2218 -f 2218 2224 2215 -f 2224 2225 2227 -f 2226 2227 2225 -f 2226 2228 2227 -f 2228 2229 2227 -f 2230 2229 2228 -f 2230 2231 2229 -f 2231 2232 2229 -f 2233 2232 2231 -f 2234 2232 2233 -f 2235 2236 2234 -f 2236 2232 2234 -f 2229 2232 2227 -f 2227 2232 2236 -f 2227 2236 2224 -f 2236 2222 2224 -f 2223 2222 2235 -f 2235 2222 2236 -f 2237 2221 2223 -f 2238 2239 2235 -f 2235 2234 2238 -f 2234 2240 2238 -f 2240 2241 2238 -f 2239 2238 2241 -f 2242 2240 2234 -f 2243 2242 2233 -f 2233 2242 2234 -f 2244 2243 2231 -f 2231 2243 2233 -f 2245 2244 2231 -f 2231 2230 2245 -f 2230 2246 2245 -f 2247 2246 2228 -f 2228 2246 2230 -f 2249 2239 2248 -f 2241 2248 2239 -f 2248 2241 2250 -f 2240 2250 2241 -f 2250 2240 2251 -f 2242 2251 2240 -f 2243 2252 2251 -f 2253 2252 2244 -f 2244 2252 2243 -f 2254 2253 2245 -f 2245 2253 2244 -f 2246 2255 2245 -f 2255 2254 2245 -f 2255 2246 2256 -f 2247 2256 2246 -f 2248 2257 2249 -f 2257 2258 2249 -f 2259 2257 2250 -f 2250 2257 2248 -f 2251 2260 2250 -f 2260 2259 2250 -f 2261 2260 2252 -f 2252 2260 2251 -f 2262 2261 2253 -f 2253 2261 2252 -f 2263 2262 2254 -f 2254 2262 2253 -f 2264 2263 2255 -f 2255 2263 2254 -f 2256 2265 2255 -f 2265 2264 2255 -f 2266 2267 2268 -f 2268 2269 2266 -f 2270 2269 2268 -f 2268 2271 2270 -f 2272 2271 2268 -f 2273 2220 2221 -f 2274 2220 2273 -f 2273 2272 2274 -f 2270 2271 2237 -f 2237 2271 2221 -f 2239 2270 2237 -f 2275 2270 2239 -f 2239 2249 2275 -f 2249 2276 2275 -f 2249 2258 2276 -f 2258 2277 2276 -f 2279 2276 2278 -f 2278 2276 2277 -f 2223 2235 2239 -f 2223 2239 2237 -f 2271 2272 2273 -f 2271 2273 2221 -f 2269 2270 2280 -f 2270 2275 2280 -f 2280 2275 2279 -f 2276 2279 2275 -v -2.306662 -1.116976 0.961238 -v -2.119856 -1.128800 0.970960 -v -2.033406 -0.910030 0.964220 -v -2.031698 -1.097344 0.966701 -v -1.782298 -1.020581 0.943381 -v -2.337617 -1.334842 0.966761 -v -2.462835 -1.305500 0.966395 -v -2.161843 -1.325837 0.957465 -v -2.042059 -1.312976 0.940911 -v -1.776785 -1.275107 0.914703 -v -1.709172 -1.283232 0.897427 -v -1.456655 -1.295527 0.894240 -v -2.417777 -1.553136 0.887222 -v -2.591357 -1.510845 0.885470 -v -2.223917 -1.541268 0.879260 -v -2.049879 -1.562369 0.829319 -v -1.778934 -1.550199 0.776454 -v -1.777628 -1.473076 0.845827 -v -1.686329 -1.414405 0.869373 -v -1.592146 -1.408592 0.838483 -v -1.552229 -1.555077 0.735708 -v -1.659758 -1.544361 0.788181 -v -1.376186 -1.661988 0.718954 -v -1.366873 -1.340211 0.907567 -v -1.200688 -1.577575 0.799188 -v -1.198513 -1.456102 0.885435 -v -0.953236 -1.545941 0.899180 -f 2281 2282 2283 -f 2284 2283 2282 -f 2285 2283 2284 -f 2286 2281 2287 -f 2286 2288 2281 -f 2288 2282 2281 -f 2289 2284 2288 -f 2284 2282 2288 -f 2285 2284 2290 -f 2290 2284 2289 -f 2291 2285 2290 -f 2292 2285 2291 -f 2294 2293 2287 -f 2293 2286 2287 -f 2295 2288 2293 -f 2288 2286 2293 -f 2296 2289 2295 -f 2289 2288 2295 -f 2289 2296 2298 -f 2297 2298 2296 -f 2290 2289 2298 -f 2298 2299 2290 -f 2299 2291 2290 -f 2292 2291 2300 -f 2300 2291 2299 -f 2301 2292 2300 -f 2300 2302 2301 -f 2299 2302 2300 -f 2302 2299 2297 -f 2298 2297 2299 -f 2303 2304 2301 -f 2304 2292 2301 -f 2303 2305 2304 -f 2305 2306 2304 -f 2307 2306 2305 -v -1.200688 -1.577575 0.799188 -v -1.226563 -1.655159 0.687343 -v -1.091175 -1.707120 0.727242 -v -0.953236 -1.545941 0.899180 -v -1.376186 -1.661988 0.718954 -v -1.266738 -1.691944 0.557922 -v -1.089642 -1.757196 0.685154 -v -0.972089 -1.774507 0.768570 -v -0.812845 -1.785424 0.768511 -v -0.680046 -1.768325 0.819080 -v -0.535144 -1.615983 0.920556 -v -0.564074 -1.789401 0.803191 -v -0.422877 -1.751200 0.823423 -v -0.078470 -1.688266 0.800230 -v -0.063012 -1.583021 0.865082 -v -0.543078 -1.810473 0.563825 -v -0.094135 -1.769086 0.556924 -v -0.977375 -1.793126 0.498747 -v -1.108758 -1.770749 0.473033 -v -1.305099 -1.708460 0.484230 -v -1.397474 -1.693815 0.570541 -f 2311 2308 2310 -f 2308 2309 2310 -f 2312 2309 2308 -f 2313 2314 2309 -f 2314 2310 2309 -f 2315 2311 2310 -f 2316 2311 2315 -f 2318 2311 2317 -f 2317 2311 2316 -f 2319 2318 2317 -f 2320 2318 2319 -f 2318 2320 2322 -f 2321 2322 2320 -f 2323 2324 2320 -f 2324 2321 2320 -f 2320 2319 2323 -f 2317 2323 2319 -f 2325 2323 2316 -f 2316 2323 2317 -f 2315 2310 2314 -f 2313 2326 2314 -f 2326 2325 2314 -f 2313 2327 2326 -f 2309 2312 2313 -f 2328 2313 2312 -v -1.376186 -1.661988 0.718954 -v -1.480217 -1.656600 0.606638 -v -1.397474 -1.693815 0.570541 -v -1.552229 -1.555077 0.735708 -v -1.601625 -1.593321 0.605607 -v -1.519339 -1.653776 0.501741 -v -1.406693 -1.697325 0.450399 -v -1.576196 -1.696317 0.358146 -v -1.386502 -1.718441 0.350823 -f 2329 2330 2331 -f 2332 2330 2329 -f 2333 2330 2332 -f 2334 2330 2333 -f 2335 2331 2334 -f 2331 2330 2334 -f 2336 2334 2333 -f 2336 2337 2334 -f 2337 2335 2334 -v -1.305099 -1.708460 0.484230 -v -1.406693 -1.697325 0.450399 -v -1.386502 -1.718441 0.350823 -v -0.972514 -1.822778 0.372649 -v -0.523838 -1.850065 0.388007 -v -0.543078 -1.810473 0.563825 -v -0.977375 -1.793126 0.498747 -v -0.112666 -1.806584 0.383324 -v -0.094135 -1.769086 0.556924 -v 0.480235 -1.631521 0.401961 -v 0.489819 -1.524947 0.672392 -v -0.155114 -1.828285 0.000000 -v 0.446550 -1.672950 0.000000 -v -0.530369 -1.860806 0.000000 -v -0.956007 -1.825728 0.000000 -v -1.395728 -1.723811 0.000000 -f 2338 2339 2340 -f 2341 2338 2340 -f 2343 2344 2342 -f 2342 2344 2341 -f 2346 2343 2345 -f 2345 2343 2342 -f 2348 2346 2347 -f 2347 2346 2345 -f 2347 2345 2350 -f 2345 2349 2350 -f 2345 2342 2349 -f 2342 2351 2349 -f 2342 2341 2351 -f 2341 2352 2351 -f 2352 2341 2353 -f 2340 2353 2341 -v -1.576196 -1.696317 0.358146 -v -1.610025 -1.711571 0.000000 -v -1.395728 -1.723811 0.000000 -v -1.386502 -1.718441 0.350823 -v -1.764045 -1.764987 0.406586 -v -1.799827 -1.753136 0.000000 -v -1.601625 -1.593321 0.605607 -v -1.747790 -1.667608 0.606340 -v -1.778934 -1.550199 0.776454 -v -1.659758 -1.544361 0.788181 -v -1.552229 -1.555077 0.735708 -v -2.508885 -1.719933 0.721675 -v -2.417777 -1.553136 0.887222 -v -2.591357 -1.510845 0.885470 -v -2.734184 -1.717948 0.749581 -v -2.267049 -1.753901 0.662106 -v -2.223917 -1.541268 0.879260 -v -2.037371 -1.736360 0.656787 -v -2.049879 -1.562369 0.829319 -v -1.936032 -1.829617 0.488916 -v -1.883160 -1.829718 0.401567 -v -2.027242 -1.813012 0.555232 -v -2.126375 -1.866497 0.502895 -v -2.317557 -1.874200 0.470587 -v -2.176551 -1.873816 0.445782 -v -2.466779 -1.857679 0.570461 -v -2.446375 -1.893261 0.494110 -v -2.547737 -1.833025 0.609321 -v -2.647220 -1.844010 0.594347 -v -2.811581 -1.798210 0.712737 -v -2.699966 -1.850397 0.570070 -v -2.892162 -1.781087 0.000000 -v -2.684452 -1.891207 0.447388 -v -2.709403 -1.879947 0.508775 -v -2.941731 -1.787431 0.442574 -v -2.656867 -1.853045 0.000000 -v -2.614084 -1.905005 0.404925 -v -2.348005 -1.869142 0.000000 -v -2.503818 -1.909806 0.431456 -v -2.147113 -1.903198 0.362462 -v -2.092921 -1.839622 0.000000 -v -2.062725 -1.884246 0.307336 -v -1.946306 -1.872735 0.344251 -f 2355 2356 2354 -f 2354 2356 2357 -f 2358 2359 2354 -f 2359 2355 2354 -f 2360 2361 2354 -f 2354 2361 2358 -f 2362 2361 2360 -f 2360 2363 2362 -f 2364 2363 2360 -f 2368 2365 2367 -f 2365 2366 2367 -f 2369 2370 2365 -f 2370 2366 2365 -f 2369 2371 2370 -f 2371 2372 2370 -f 2361 2362 2371 -f 2362 2372 2371 -f 2374 2358 2373 -f 2373 2358 2361 -f 2371 2375 2361 -f 2361 2375 2373 -f 2376 2375 2369 -f 2369 2375 2371 -f 2377 2378 2369 -f 2378 2376 2369 -f 2377 2369 2380 -f 2369 2379 2380 -f 2365 2381 2369 -f 2381 2379 2369 -f 2368 2382 2365 -f 2382 2381 2365 -f 2383 2384 2368 -f 2384 2382 2368 -f 2387 2388 2386 -f 2385 2386 2388 -f 2386 2385 2390 -f 2389 2390 2385 -f 2389 2391 2390 -f 2391 2392 2390 -f 2377 2380 2391 -f 2380 2392 2391 -f 2377 2391 2378 -f 2391 2393 2378 -f 2395 2393 2394 -f 2394 2393 2391 -f 2394 2359 2395 -f 2359 2396 2395 -f 2358 2374 2359 -f 2374 2396 2359 -v -0.977375 -1.793126 0.498747 -v -0.972089 -1.774507 0.768570 -v -1.089642 -1.757196 0.685154 -v -0.812845 -1.785424 0.768511 -f 2397 2398 2399 -f 2398 2397 2400 -v -3.304804 -1.582192 0.643445 -v -3.314868 -1.599081 0.439626 -v -3.120907 -1.707924 0.431829 -v -3.139394 -1.687482 0.638546 -v -3.387254 -1.486027 0.672861 -v -3.442085 -1.484120 0.406377 -v -3.533910 -1.330455 0.568246 -v -3.557869 -1.325941 0.378030 -v -3.631179 -1.157838 0.505610 -v -3.639586 -1.140102 0.333800 -v -3.667859 -0.964867 0.464702 -v -3.686518 -0.955181 0.320349 -v -3.665774 -0.734080 0.446286 -v -3.676599 -0.729578 0.330724 -v -3.595973 -0.346391 0.426453 -v -3.616627 -0.350374 0.338492 -v -3.529709 -0.065998 0.437217 -v -3.570243 -0.060093 0.344854 -v -3.516840 0.149002 0.430359 -v -3.535416 0.191408 0.338478 -v -3.536654 0.442277 0.322000 -v -3.544507 0.467147 0.000000 -v -3.552320 0.219613 0.000000 -v -3.583763 -0.052271 0.000000 -v -3.673607 -0.720796 0.000000 -v -3.637643 -0.356271 0.000000 -v -3.678793 -0.926816 0.000000 -v -3.650579 -1.142448 0.000000 -v -3.522115 -1.366623 0.000000 -v -3.417689 -1.494416 0.000000 -v -3.271035 -1.609292 0.000000 -v -3.110300 -1.691720 0.000000 -v -2.892162 -1.781087 0.000000 -v -2.941731 -1.787431 0.442574 -v -3.470778 -0.078218 0.546398 -v -3.526766 -0.317542 0.560837 -v -3.569993 -0.731989 0.649435 -v -3.550120 -0.984868 0.675228 -v -3.492599 -1.180646 0.692282 -v -3.335942 -1.365685 0.724590 -v -3.438226 -0.721479 0.728141 -v -3.283698 -0.730967 0.793898 -v -3.415655 -0.308965 0.671045 -v -3.355398 -0.969157 0.766213 -v -3.279790 -1.162072 0.784602 -v -3.251210 -0.948205 0.819868 -v -3.556552 0.704883 0.280630 -v -3.566995 0.656967 0.000000 -v -3.578170 0.837714 0.288502 -v -3.599077 0.796217 0.000000 -f 2403 2404 2402 -f 2401 2402 2404 -f 2405 2406 2401 -f 2406 2402 2401 -f 2406 2405 2408 -f 2407 2408 2405 -f 2407 2409 2408 -f 2409 2410 2408 -f 2409 2411 2410 -f 2411 2412 2410 -f 2412 2411 2414 -f 2413 2414 2411 -f 2415 2416 2413 -f 2416 2414 2413 -f 2416 2415 2418 -f 2417 2418 2415 -f 2420 2418 2419 -f 2419 2418 2417 -f 2421 2420 2419 -f 2420 2421 2423 -f 2422 2423 2421 -f 2423 2424 2420 -f 2424 2418 2420 -f 2416 2426 2414 -f 2425 2414 2426 -f 2414 2425 2412 -f 2427 2412 2425 -f 2410 2412 2428 -f 2428 2412 2427 -f 2429 2408 2428 -f 2408 2410 2428 -f 2406 2408 2430 -f 2430 2408 2429 -f 2402 2406 2431 -f 2431 2406 2430 -f 2402 2431 2403 -f 2432 2403 2431 -f 2433 2434 2432 -f 2434 2403 2432 -f 2426 2416 2424 -f 2416 2418 2424 -f 2417 2435 2419 -f 2415 2436 2417 -f 2436 2435 2417 -f 2437 2436 2413 -f 2413 2436 2415 -f 2438 2437 2411 -f 2411 2437 2413 -f 2439 2438 2409 -f 2409 2438 2411 -f 2440 2439 2407 -f 2407 2439 2409 -f 2405 2440 2407 -f 2441 2442 2443 -f 2436 2443 2435 -f 2436 2437 2443 -f 2437 2441 2443 -f 2444 2441 2438 -f 2438 2441 2437 -f 2439 2445 2438 -f 2445 2444 2438 -f 2440 2445 2439 -f 2446 2444 2445 -f 2447 2448 2421 -f 2448 2422 2421 -f 2450 2448 2449 -f 2449 2448 2447 -f 2444 2446 2441 -f 2442 2441 2446 -v 1.806371 -2.949735 0.984058 -v 1.771416 -2.769024 0.946100 -v 1.718315 -2.775468 0.921796 -v 1.734568 -2.965876 0.986396 -v 2.021366 -2.881725 0.945561 -v 1.960643 -2.712860 0.900890 -v 1.880971 -2.733242 0.890200 -v 1.911792 -2.895773 0.950117 -v 2.057496 -2.887282 0.844225 -v 1.994078 -2.713047 0.824553 -v 1.735077 -3.022732 0.972751 -v 1.721745 -3.116887 0.979111 -v 1.802387 -3.089615 0.961851 -v 1.811797 -3.135641 0.933096 -f 2454 2451 2453 -f 2451 2452 2453 -f 2455 2456 2458 -f 2456 2457 2458 -f 2459 2460 2455 -f 2460 2456 2455 -f 2461 2451 2454 -f 2462 2463 2461 -f 2464 2463 2462 -v 2.031262 -3.256709 1.111122 -v 2.148880 -3.221616 1.076203 -v 2.110033 -3.148257 1.068816 -v 1.970051 -3.141862 1.065178 -v 2.138771 -3.397683 1.214726 -v 2.247981 -3.342804 1.127459 -v 2.254361 -3.550931 1.235118 -v 2.343303 -3.507846 1.195262 -v 1.981186 -3.441282 1.180532 -v 2.025468 -3.556842 1.204841 -v 1.926176 -3.288880 1.093746 -v 1.886443 -3.191742 1.047318 -v 2.201939 -3.226457 0.996503 -v 2.281229 -3.338250 1.043475 -v 2.170039 -3.134504 0.978866 -v 2.217369 -3.156093 0.888927 -v 2.113587 -3.011851 0.851648 -v 2.091539 -3.032437 0.947029 -v 1.865135 -3.353827 1.054981 -v 1.841888 -3.246003 1.014774 -v 1.919391 -3.487078 1.110869 -v 1.980621 -3.043895 0.964237 -f 2468 2465 2467 -f 2465 2466 2467 -f 2465 2469 2466 -f 2469 2470 2466 -f 2470 2469 2472 -f 2471 2472 2469 -f 2474 2471 2473 -f 2469 2473 2471 -f 2469 2465 2473 -f 2465 2475 2473 -f 2465 2468 2475 -f 2468 2476 2475 -f 2466 2470 2477 -f 2477 2470 2478 -f 2467 2466 2479 -f 2479 2466 2477 -f 2480 2481 2479 -f 2481 2482 2479 -f 2475 2476 2483 -f 2483 2476 2484 -f 2475 2483 2473 -f 2473 2483 2485 -f 2485 2474 2473 -f 2467 2479 2486 -v 2.091539 -3.032437 0.947029 -v 2.113587 -3.011851 0.851648 -v 2.057496 -2.887282 0.844225 -v 2.021366 -2.881725 0.945561 -v 1.880971 -2.733242 0.890200 -v 1.830669 -2.736121 0.903313 -v 1.848272 -2.927260 0.996966 -v 1.911792 -2.895773 0.950117 -v 1.771416 -2.769024 0.946100 -v 1.806371 -2.949735 0.984058 -v 1.709173 -3.133145 0.807940 -v 1.721745 -3.116887 0.979111 -v 1.735077 -3.022732 0.972751 -v 1.705953 -3.006628 0.832630 -v 1.806407 -3.173343 0.834455 -v 1.811797 -3.135641 0.933096 -f 2490 2487 2489 -f 2487 2488 2489 -f 2493 2494 2492 -f 2491 2492 2494 -f 2492 2495 2493 -f 2493 2495 2496 -f 2498 2499 2497 -f 2497 2499 2500 -f 2498 2497 2502 -f 2501 2502 2497 -v 1.832790 -3.296508 0.865078 -v 1.841888 -3.246003 1.014774 -v 1.811797 -3.135641 0.933096 -v 1.806407 -3.173343 0.834455 -v 2.078928 -3.584991 0.917088 -v 2.025468 -3.556842 1.204841 -v 1.919391 -3.487078 1.110869 -v 1.933899 -3.546253 0.912438 -v 1.839523 -3.405292 0.883488 -v 1.865135 -3.353827 1.054981 -f 2504 2505 2503 -f 2503 2505 2506 -f 2507 2508 2510 -f 2508 2509 2510 -f 2512 2504 2511 -f 2511 2504 2503 -f 2510 2509 2511 -f 2509 2512 2511 -v 1.900481 -3.131932 0.728621 -v 1.806407 -3.173343 0.834455 -v 1.709173 -3.133145 0.807940 -v 1.741854 -3.114181 0.700705 -f 2513 2514 2516 -f 2514 2515 2516 -v 1.806407 -3.173343 0.834455 -v 1.900481 -3.131932 0.728621 -v 1.929730 -3.298418 0.689538 -v 1.832790 -3.296508 0.865078 -v 1.941325 -3.434803 0.701314 -v 1.839523 -3.405292 0.883488 -v 2.002745 -3.523420 0.688103 -v 1.933899 -3.546253 0.912438 -v 2.126553 -3.549679 0.701005 -v 2.078928 -3.584991 0.917088 -v 2.244147 -3.545557 0.732888 -v 2.197935 -3.583948 0.936437 -f 2519 2520 2518 -f 2517 2518 2520 -f 2519 2521 2520 -f 2521 2522 2520 -f 2524 2522 2523 -f 2523 2522 2521 -f 2524 2523 2526 -f 2525 2526 2523 -f 2526 2525 2528 -f 2527 2528 2525 -v 1.776024 -2.980086 0.707575 -v 1.741854 -3.114181 0.700705 -v 1.709173 -3.133145 0.807940 -v 1.705953 -3.006628 0.832630 -v 1.700797 -2.794792 0.824250 -v 1.736425 -2.743683 0.736866 -v 1.911792 -2.895773 0.950117 -v 1.980621 -3.043895 0.964237 -v 2.091539 -3.032437 0.947029 -v 2.021366 -2.881725 0.945561 -f 2529 2530 2532 -f 2530 2531 2532 -f 2534 2529 2533 -f 2532 2533 2529 -f 2537 2538 2536 -f 2535 2536 2538 -v 1.970051 -3.141862 1.065178 -v 2.110033 -3.148257 1.068816 -v 1.980621 -3.043895 0.964237 -v 1.898573 -3.068274 0.994338 -f 2540 2541 2539 -f 2539 2541 2542 -v 1.911792 -2.895773 0.950117 -v 1.848272 -2.927260 0.996966 -v 1.898573 -3.068274 0.994338 -v 1.980621 -3.043895 0.964237 -v 1.806371 -2.949735 0.984058 -v 1.855134 -3.083228 0.986129 -f 2546 2543 2545 -f 2543 2544 2545 -f 2544 2547 2545 -f 2547 2548 2545 -v 1.886443 -3.191742 1.047318 -v 1.970051 -3.141862 1.065178 -v 1.898573 -3.068274 0.994338 -v 1.855134 -3.083228 0.986129 -v 1.841888 -3.246003 1.014774 -v 1.811797 -3.135641 0.933096 -f 2550 2551 2549 -f 2549 2551 2552 -f 2553 2549 2554 -f 2549 2552 2554 -v 1.811797 -3.135641 0.933096 -v 1.855134 -3.083228 0.986129 -v 1.802387 -3.089615 0.961851 -v 1.806371 -2.949735 0.984058 -v 1.735077 -3.022732 0.972751 -v 1.734568 -2.965876 0.986396 -v 1.705953 -3.006628 0.832630 -f 2555 2556 2557 -f 2558 2559 2556 -f 2557 2556 2559 -f 2560 2561 2559 -v 2.187495 -3.161535 0.800285 -v 2.073690 -3.020848 0.782654 -v 2.113587 -3.011851 0.851648 -v 2.217369 -3.156093 0.888927 -f 2565 2562 2564 -f 2562 2563 2564 -v 2.073690 -3.020848 0.782654 -v 2.001343 -2.847715 0.762517 -v 2.057496 -2.887282 0.844225 -v 2.113587 -3.011851 0.851648 -f 2567 2568 2566 -f 2566 2568 2569 -v 2.201939 -3.226457 0.996503 -v 2.236407 -3.220054 0.892030 -v 2.217369 -3.156093 0.888927 -v 2.170039 -3.134504 0.978866 -v 2.343303 -3.507846 1.195262 -v 2.386827 -3.462222 1.136480 -v 2.281229 -3.338250 1.043475 -v 2.247981 -3.342804 1.127459 -v 2.440236 -3.509564 1.019417 -v 2.327021 -3.352317 0.958234 -v 2.377814 -3.484109 0.800332 -v 2.309358 -3.345468 0.801508 -v 2.235942 -3.243103 0.823955 -v 2.187495 -3.161535 0.800285 -f 2573 2570 2572 -f 2570 2571 2572 -f 2574 2575 2577 -f 2575 2576 2577 -f 2578 2579 2575 -f 2579 2576 2575 -f 2571 2570 2579 -f 2570 2576 2579 -f 2578 2580 2579 -f 2580 2581 2579 -f 2581 2582 2579 -f 2582 2571 2579 -f 2583 2572 2582 -f 2572 2571 2582 -v 1.857471 -2.950722 0.669988 -v 1.900481 -3.131932 0.728621 -v 1.741854 -3.114181 0.700705 -v 1.776024 -2.980086 0.707575 -v 1.945632 -2.876710 0.703118 -v 1.998099 -3.039955 0.718855 -v 2.001343 -2.847715 0.762517 -v 2.073690 -3.020848 0.782654 -v 1.841282 -2.716008 0.708009 -v 1.884318 -2.724404 0.701999 -v 1.972647 -2.728848 0.772496 -f 2584 2585 2586 -f 2587 2584 2586 -f 2585 2584 2589 -f 2584 2588 2589 -f 2590 2591 2588 -f 2588 2591 2589 -f 2592 2593 2584 -f 2593 2588 2584 -f 2593 2594 2588 -f 2594 2590 2588 -v 1.998099 -3.039955 0.718855 -v 2.059222 -3.230076 0.674936 -v 1.929730 -3.298418 0.689538 -v 1.900481 -3.131932 0.728621 -v 2.073690 -3.020848 0.782654 -v 2.187495 -3.161535 0.800285 -v 2.107985 -3.363571 0.677007 -v 1.941325 -3.434803 0.701314 -v 2.235942 -3.243103 0.823955 -f 2595 2596 2598 -f 2596 2597 2598 -f 2596 2595 2600 -f 2599 2600 2595 -f 2602 2597 2601 -f 2596 2601 2597 -f 2603 2601 2600 -f 2600 2601 2596 -v 1.736425 -2.743683 0.736866 -v 1.841282 -2.716008 0.708009 -v 1.857471 -2.950722 0.669988 -v 1.776024 -2.980086 0.707575 -f 2605 2606 2604 -f 2604 2606 2607 -v 2.002745 -3.523420 0.688103 -v 1.941325 -3.434803 0.701314 -v 2.107985 -3.363571 0.677007 -v 2.126553 -3.549679 0.701005 -v 2.309358 -3.345468 0.801508 -v 2.235942 -3.243103 0.823955 -v 2.244147 -3.545557 0.732888 -v 2.377814 -3.484109 0.800332 -v 2.197935 -3.583948 0.936437 -v 2.440236 -3.509564 1.019417 -v 2.254361 -3.550931 1.235118 -v 2.025468 -3.556842 1.204841 -v 2.078928 -3.584991 0.917088 -f 2608 2609 2610 -f 2608 2610 2611 -f 2612 2610 2613 -f 2610 2614 2611 -f 2614 2610 2615 -f 2610 2612 2615 -f 2616 2614 2617 -f 2614 2615 2617 -f 2618 2619 2616 -f 2616 2619 2620 -v -2.687162 -1.539807 0.988048 -v -2.837147 -1.791733 0.921563 -v -2.734184 -1.717948 0.749581 -v -2.591357 -1.510845 0.885470 -v -2.765069 -1.561164 1.084313 -v -2.918293 -1.904184 1.004659 -v -2.862576 -1.546894 1.117139 -v -3.010917 -1.884498 1.083510 -v -2.955052 -1.496840 1.128812 -v -3.117476 -1.866892 1.108034 -v -3.063133 -1.440555 1.090926 -v -3.232610 -1.834299 1.087832 -v -3.387254 -1.486027 0.672861 -v -3.498521 -1.762078 0.762472 -v -3.490520 -1.760417 0.903104 -v -3.365990 -1.485170 0.888076 -v -3.319817 -1.365015 0.886015 -v -3.335942 -1.365685 0.724590 -v -3.068444 -2.260195 1.035070 -v -3.177824 -2.279173 1.047580 -v -3.162498 -2.556375 1.058409 -v -3.078699 -2.553982 1.046834 -v -3.047974 -2.109628 1.063497 -v -3.169489 -2.110039 1.076796 -v -3.207447 -2.103206 1.071366 -v -3.281816 -2.305055 1.001878 -v -3.251541 -2.564050 1.023627 -v -3.327526 -2.075729 1.005328 -v -3.357996 -1.811803 0.975625 -v -3.389388 -2.305625 0.950348 -v -3.347304 -2.573628 0.955211 -v -3.451965 -2.077314 0.931974 -v -3.007483 -2.270712 0.984279 -v -3.022819 -2.522240 0.979148 -v -2.969687 -2.097941 0.982836 -v -2.892438 -1.950810 0.878120 -v -2.981187 -2.142718 0.858353 -v -3.030605 -2.311222 0.884330 -v -3.046610 -2.510881 0.900772 -v -3.040398 -2.156239 0.808208 -v -2.964215 -1.978727 0.776572 -v -3.144012 -2.333635 0.829994 -v -3.120761 -2.157770 0.766432 -v -3.066022 -1.953125 0.719516 -v -3.253309 -2.137354 0.760713 -v -3.211005 -1.850398 0.700723 -v -3.235873 -2.335338 0.820588 -v -3.132772 -2.528669 0.848639 -v -3.240554 -2.555467 0.856262 -v -3.381262 -1.828189 0.697034 -v -3.304804 -1.582192 0.643445 -v -3.139394 -1.687482 0.638546 -v -3.422698 -2.070796 0.773898 -v -3.339489 -2.328145 0.827572 -v -3.297886 -2.549020 0.861657 -v -3.463753 -2.079892 0.844667 -v -3.412068 -2.356105 0.865813 -v -3.372066 -2.569159 0.904785 -v -3.342096 -1.533989 0.921628 -v 2.024530 -2.195334 0.811284 -v 1.985330 -2.221319 0.893145 -v 1.930747 -2.463535 0.894743 -v 1.953911 -2.462233 0.830594 -v 2.047696 -2.050138 0.814712 -v 2.013095 -2.051912 0.911043 -v 2.053108 -1.738285 0.824853 -v 2.021591 -1.755289 0.912093 -v 2.059844 -1.561331 0.858957 -v 2.036036 -1.579080 0.967151 -v 1.718315 -2.775468 0.921796 -v 1.771416 -2.769024 0.946100 -v 1.737623 -2.485017 0.918334 -v 1.678986 -2.513137 0.891745 -v 1.710406 -2.272223 0.954296 -v 1.648793 -2.280014 0.929365 -v 1.720031 -2.105568 0.971354 -v 1.624900 -2.087301 0.963391 -v 1.717145 -1.809530 1.004092 -v 1.572979 -1.827591 0.985823 -v 1.650318 -1.645881 1.053347 -v 1.541750 -1.643613 1.014190 -v 1.655948 -2.520927 0.844269 -v 1.586321 -2.273752 0.880969 -v 1.529305 -2.092083 0.887353 -v 1.508714 -1.808578 0.934359 -v 1.480629 -1.640132 0.953447 -v 1.663494 -2.485963 0.790773 -v 1.601290 -2.267132 0.787696 -v 1.544087 -2.080722 0.786432 -v 1.473886 -1.818947 0.799576 -v 1.451825 -1.576856 0.702758 -v 1.756349 -2.446399 0.705428 -v 1.677597 -2.237953 0.696318 -v 1.643403 -2.076583 0.689565 -v 1.596751 -1.722028 0.684655 -v 1.599889 -1.595526 0.623185 -v 1.960643 -2.712860 0.900890 -v 1.994078 -2.713047 0.824553 -v 1.880971 -2.733242 0.890200 -v 1.864064 -2.469953 0.935601 -v 1.937009 -1.625419 1.026843 -v 1.941767 -1.759457 0.997454 -v 1.918641 -2.083654 1.001275 -v 1.906370 -2.282284 0.964887 -v 1.830669 -2.736121 0.903313 -v 1.801127 -2.484690 0.938593 -v 1.818846 -1.756976 1.023593 -v 1.804927 -1.581954 1.089198 -v 1.839224 -2.109267 0.998351 -v 1.818266 -2.313852 0.968652 -f 2622 2623 2621 -f 2621 2623 2624 -f 2625 2626 2621 -f 2626 2622 2621 -f 2626 2625 2628 -f 2627 2628 2625 -f 2629 2630 2627 -f 2630 2628 2627 -f 2631 2632 2629 -f 2632 2630 2629 -f 2636 2633 2635 -f 2633 2634 2635 -f 2633 2636 2638 -f 2636 2637 2638 -f 2642 2639 2641 -f 2639 2640 2641 -f 2640 2639 2644 -f 2643 2644 2639 -f 2630 2644 2628 -f 2628 2644 2643 -f 2644 2645 2640 -f 2644 2630 2645 -f 2630 2632 2645 -f 2641 2640 2647 -f 2640 2646 2647 -f 2648 2646 2645 -f 2645 2646 2640 -f 2649 2648 2632 -f 2632 2648 2645 -f 2650 2651 2646 -f 2646 2651 2647 -f 2652 2650 2648 -f 2648 2650 2646 -f 2635 2652 2649 -f 2649 2652 2648 -f 2639 2642 2653 -f 2653 2642 2654 -f 2653 2655 2639 -f 2655 2643 2639 -f 2628 2643 2626 -f 2626 2643 2655 -f 2622 2626 2656 -f 2657 2656 2655 -f 2655 2656 2626 -f 2655 2653 2657 -f 2653 2658 2657 -f 2653 2654 2658 -f 2654 2659 2658 -f 2656 2657 2661 -f 2657 2660 2661 -f 2658 2660 2657 -f 2658 2662 2660 -f 2662 2663 2660 -f 2664 2661 2663 -f 2660 2663 2661 -f 2666 2664 2665 -f 2663 2665 2664 -f 2665 2663 2667 -f 2662 2667 2663 -f 2669 2667 2668 -f 2668 2667 2662 -f 2633 2671 2634 -f 2670 2634 2671 -f 2671 2672 2670 -f 2672 2666 2670 -f 2665 2673 2666 -f 2673 2670 2666 -f 2673 2665 2674 -f 2667 2674 2665 -f 2667 2669 2674 -f 2669 2675 2674 -f 2676 2634 2673 -f 2673 2634 2670 -f 2676 2673 2677 -f 2674 2677 2673 -f 2674 2675 2677 -f 2675 2678 2677 -f 2676 2677 2652 -f 2677 2650 2652 -f 2651 2650 2678 -f 2678 2650 2677 -f 2634 2676 2635 -f 2676 2652 2635 -f 2636 2635 2679 -f 2679 2635 2649 -f 2680 2681 2683 -f 2681 2682 2683 -f 2681 2680 2685 -f 2684 2685 2680 -f 2684 2686 2685 -f 2686 2687 2685 -f 2689 2687 2688 -f 2688 2687 2686 -f 2691 2692 2690 -f 2690 2692 2693 -f 2693 2692 2695 -f 2692 2694 2695 -f 2695 2694 2697 -f 2694 2696 2697 -f 2696 2698 2697 -f 2697 2698 2699 -f 2698 2700 2699 -f 2699 2700 2701 -f 2702 2693 2703 -f 2693 2695 2703 -f 2697 2704 2695 -f 2703 2695 2704 -f 2704 2697 2705 -f 2697 2699 2705 -f 2699 2701 2705 -f 2705 2701 2706 -f 2703 2708 2702 -f 2707 2702 2708 -f 2708 2703 2709 -f 2703 2704 2709 -f 2705 2710 2704 -f 2709 2704 2710 -f 2706 2711 2705 -f 2710 2705 2711 -f 2712 2707 2713 -f 2707 2708 2713 -f 2709 2714 2708 -f 2713 2708 2714 -f 2715 2714 2710 -f 2714 2709 2710 -f 2711 2716 2710 -f 2715 2710 2716 -f 2717 2718 2682 -f 2718 2683 2682 -f 2719 2717 2720 -f 2717 2682 2720 -f 2689 2721 2687 -f 2687 2721 2722 -f 2723 2685 2722 -f 2685 2687 2722 -f 2681 2724 2682 -f 2720 2682 2724 -f 2724 2681 2723 -f 2681 2685 2723 -f 2692 2691 2726 -f 2725 2726 2691 -f 2720 2726 2719 -f 2725 2719 2726 -f 2728 2700 2727 -f 2727 2700 2698 -f 2727 2698 2729 -f 2729 2698 2696 -f 2729 2696 2730 -f 2730 2696 2694 -f 2694 2692 2730 -f 2726 2730 2692 -f 2727 2722 2728 -f 2722 2721 2728 -f 2729 2723 2727 -f 2723 2722 2727 -f 2730 2724 2729 -f 2724 2723 2729 -f 2724 2730 2720 -f 2720 2730 2726 -v 2.170039 -3.134504 0.978866 -v 2.091539 -3.032437 0.947029 -v 1.980621 -3.043895 0.964237 -v 2.440236 -3.509564 1.019417 -v 2.386827 -3.462222 1.136480 -v 2.343303 -3.507846 1.195262 -v 2.254361 -3.550931 1.235118 -v 2.197935 -3.583948 0.936437 -f 2731 2732 2733 -f 2737 2738 2736 -f 2736 2738 2735 -f 2734 2735 2738 -v 1.736425 -2.743683 0.736866 -v 1.663494 -2.485963 0.790773 -v 1.756349 -2.446399 0.705428 -v 1.841282 -2.716008 0.708009 -v 1.596751 -1.722028 0.684655 -v 1.599889 -1.595526 0.623185 -v 1.721211 -1.590185 0.601932 -v 1.740323 -1.679830 0.664098 -v 1.643403 -2.076583 0.689565 -v 1.747671 -2.067518 0.638841 -v 1.677597 -2.237953 0.696318 -v 1.772999 -2.230292 0.644940 -v 1.700797 -2.794792 0.824250 -v 1.655948 -2.520927 0.844269 -v 2.001343 -2.847715 0.762517 -v 1.972647 -2.728848 0.772496 -v 1.994078 -2.713047 0.824553 -v 2.057496 -2.887282 0.844225 -v 1.947264 -2.443232 0.732587 -v 1.884318 -2.724404 0.701999 -v 1.828658 -2.477348 0.673470 -v 1.921881 -2.157616 0.692678 -v 1.953911 -2.462233 0.830594 -v 1.963153 -1.588839 0.612861 -v 1.991892 -1.748400 0.652770 -v 1.945206 -2.015769 0.672724 -v 2.059844 -1.561331 0.858957 -v 2.053108 -1.738285 0.824853 -v 2.047696 -2.050138 0.814712 -v 2.024530 -2.195334 0.811284 -v 2.126237 -1.330172 0.721011 -v 2.158051 -1.209613 0.783941 -v 2.141273 -1.234642 0.941254 -v 2.111557 -1.376942 0.896570 -v 2.099566 -1.259996 1.055763 -v 2.071448 -1.410118 1.006192 -v 1.966698 -1.228160 1.153716 -v 1.974215 -1.469208 1.068951 -v 1.805207 -1.268427 1.165317 -v 1.801794 -1.465464 1.129277 -v 1.601721 -1.262359 1.141420 -v 1.612396 -1.485728 1.099731 -v 1.497480 -1.283201 1.088258 -v 1.516700 -1.453050 1.068516 -v 1.430817 -1.301205 1.024924 -v 1.454817 -1.430228 0.976569 -v 1.348219 -1.282064 0.845204 -v 1.328862 -1.352627 0.758733 -v 2.180012 -1.130557 0.821812 -v 2.177450 -1.127765 0.974416 -v 2.148553 -1.103067 1.065410 -v 2.024692 -1.074646 1.172465 -v 1.838895 -1.087204 1.201408 -v 1.645819 -1.087442 1.173773 -v 1.524407 -1.125312 1.142248 -v 1.438439 -1.148029 1.098069 -v 1.310865 -1.136322 0.914838 -v 2.048200 -1.581983 0.555832 -v 2.079600 -1.473377 0.654997 -v 1.650318 -1.645881 1.053347 -v 1.804927 -1.581954 1.089198 -v 1.937009 -1.625419 1.026843 -v 2.036036 -1.579080 0.967151 -v 2.229345 -0.992723 0.862826 -v 2.222082 -0.957342 1.014137 -v 1.867657 -0.920633 1.206933 -v 1.635139 -0.965221 1.184968 -v 2.058189 -0.931238 1.163518 -v 2.158585 -0.955809 1.113647 -v 1.451825 -1.576856 0.702758 -v 1.480629 -1.640132 0.953447 -v 1.428883 -0.986690 1.133905 -v 1.337875 -0.945716 1.021299 -v 1.541750 -1.643613 1.014190 -v 1.536037 -0.985876 1.185597 -v 3.247406 2.073333 0.000000 -v 2.985371 1.982663 0.000000 -v 3.009101 1.971604 0.034220 -v 3.233975 2.059193 0.072431 -v 3.036361 1.913989 0.169838 -v 3.252224 2.026347 0.148215 -v 3.058366 1.773346 0.297337 -v 3.276333 1.863773 0.294266 -v 3.086666 1.632991 0.338863 -v 3.337545 1.748927 0.340210 -v 3.115383 1.492390 0.380228 -v 3.377233 1.587800 0.400781 -v 3.163181 1.209972 0.462438 -v 3.473410 1.366149 0.454658 -v 3.189664 0.907503 0.500122 -v 3.528445 1.060127 0.489443 -v 3.280681 0.510802 0.499434 -v 3.559394 0.706516 0.452535 -v 3.321825 0.266690 0.465750 -v 3.619650 0.472046 0.391742 -v 3.360040 0.165487 0.412685 -v 3.641195 0.407454 0.362198 -v 3.378799 0.073736 0.355362 -v 3.674710 0.338839 0.307840 -v 3.438950 -0.082580 0.257015 -v 3.700363 0.265794 0.240762 -v 3.514981 -0.121886 0.187589 -v 3.737014 0.181837 0.176819 -v 3.486028 -0.141683 0.000000 -v 3.731689 0.186391 0.000000 -v 3.454971 2.169877 0.000000 -v 3.458300 2.151656 0.102662 -v 3.727093 2.308406 0.150049 -v 3.716360 2.343387 0.000000 -v 3.955635 0.432417 0.197586 -v 3.929251 0.411689 0.000000 -v 4.126565 0.642027 0.000000 -v 4.120842 0.627141 0.185461 -v 3.889626 0.475277 0.247365 -v 3.861841 0.560638 0.311961 -v 4.105198 0.672581 0.300001 -v 3.849352 0.664451 0.387198 -v 4.068249 0.798926 0.400813 -v 3.823137 0.853054 0.461519 -v 4.041657 1.039756 0.496922 -v 3.747724 1.184933 0.518662 -v 3.988510 1.297806 0.539537 -v 3.650974 1.463740 0.478617 -v 3.886058 1.550141 0.504830 -v 3.590526 1.701090 0.411994 -v 3.881998 1.764428 0.476337 -v 3.541188 1.849183 0.386366 -v 3.814876 1.968416 0.443000 -v 3.479418 1.978250 0.317478 -v 3.758215 2.206683 0.323051 -v 3.460196 2.103494 0.180368 -v 3.745669 2.266001 0.241930 -v 3.335210 -0.375755 0.000000 -v 3.342159 -0.384674 0.201349 -v 3.107533 -0.691019 0.264602 -v 3.118124 -0.703925 0.000000 -v 2.715712 1.828219 0.167709 -v 2.723503 1.898839 0.000000 -v 2.339597 1.807702 0.000000 -v 2.361089 1.766660 0.202595 -v 2.738132 1.687333 0.295046 -v 2.406969 1.645328 0.341479 -v 2.775680 1.538710 0.352829 -v 2.519027 1.485931 0.422962 -v 2.815366 1.377583 0.413399 -v 2.553871 1.284278 0.512335 -v 2.854291 1.093951 0.494650 -v 2.637461 1.017260 0.581611 -v 2.948387 0.783357 0.515058 -v 2.747937 0.712253 0.615674 -v 3.061090 0.397226 0.574193 -v 2.811504 0.469098 0.657443 -v 2.898733 0.271916 0.651298 -v 3.136321 0.171237 0.539896 -v 2.919870 0.084875 0.642460 -v 3.166160 0.021310 0.457261 -v 2.953029 -0.127690 0.520499 -v 3.199571 -0.153739 0.380150 -v 2.986408 -0.413503 0.428964 -v 3.286426 -0.300744 0.276331 -v 3.053144 -0.609681 0.326931 -v 2.835437 -0.231101 0.577890 -v 2.679445 0.687427 0.720573 -v 2.753156 0.400829 0.713141 -v 2.790681 0.219187 0.718263 -v 2.790657 0.044324 0.717488 -v 2.743995 -0.129852 0.718277 -v 2.736198 -0.346225 0.659345 -v 2.396355 1.242239 0.597722 -v 2.482917 0.997637 0.702425 -v 2.514162 0.988713 0.674527 -v 2.543372 -0.548031 0.937182 -v 2.410367 -0.777999 0.841105 -v 2.539200 -0.727778 0.750475 -v 2.618307 -0.549092 0.805491 -v 2.594499 -0.422948 0.981263 -v 2.690576 -0.368057 0.819343 -v 2.607430 -0.208248 0.974218 -v 2.702577 -0.197406 0.795611 -v 2.649413 0.031535 1.024796 -v 2.734183 0.038769 0.865810 -v 2.668936 0.206182 1.014371 -v 2.731512 0.219003 0.891585 -v 2.616001 0.447717 0.960748 -v 2.706960 0.393597 0.849582 -v 2.570400 0.738683 0.830405 -v 2.604217 0.728827 0.769671 -v 2.688131 -0.517509 0.672975 -v 2.542439 0.999928 0.648592 -v 2.128139 1.788397 0.000000 -v 2.132390 1.755821 0.180271 -v 2.183003 1.654070 0.341767 -v 2.301359 1.397721 0.546015 -v 2.346081 -0.745350 1.013296 -v 2.245624 -0.864372 0.995778 -v 2.292449 -0.871852 0.882400 -v 2.069379 1.727818 0.212746 -v 2.096552 1.678482 0.326810 -v 2.189848 1.468992 0.517501 -v 2.266003 1.273253 0.663332 -v 2.347317 1.066114 0.758763 -v 2.399389 0.782091 0.915279 -v 2.448969 0.529858 1.037335 -v 2.495354 0.250522 1.132081 -v 2.500490 -0.035029 1.170179 -v 2.452588 -0.244072 1.138797 -v 2.439827 -0.395385 1.131324 -v 2.384638 -0.591919 1.043058 -v 2.013534 -0.662303 1.191491 -v 2.108912 -0.357128 1.259691 -v 1.794465 1.787719 0.000000 -v 1.807583 1.756546 0.177627 -v 2.042206 1.777154 0.000000 -v 2.136269 -0.187666 1.278057 -v 2.141790 -0.055306 1.295565 -v 2.081700 0.283249 1.259461 -v 2.023441 0.529338 1.144399 -v 1.975941 0.827957 1.018423 -v 1.958254 1.130271 0.861813 -v 1.859443 1.450393 0.632222 -v 1.821946 1.618209 0.403751 -v 1.798719 1.714447 0.259352 -v 0.733818 1.740873 0.000000 -v 0.234527 1.730117 0.000000 -v 0.223642 1.684075 0.160743 -v 0.737904 1.604213 0.281713 -v 0.237330 1.595746 0.288672 -v 0.725959 1.478055 0.461804 -v 0.289039 1.496446 0.430055 -v 0.760722 1.205036 0.700545 -v 0.305671 1.298417 0.629719 -v 0.857323 0.985001 0.874029 -v 0.243473 1.134082 0.819993 -v 0.921312 0.755659 0.999330 -v 0.316341 0.785311 1.086260 -v 0.939271 0.379986 1.185872 -v 0.539252 0.353984 1.254493 -v 0.927775 0.195225 1.233043 -v 0.539150 0.148262 1.321014 -v 0.950215 0.042751 1.256188 -v 0.516872 -0.020713 1.356627 -v 0.943855 -0.101127 1.274771 -v 0.542386 -0.188227 1.370375 -v 0.960321 -0.308052 1.243133 -v 0.546875 -0.390940 1.363244 -v 0.974530 -0.525273 1.140353 -v 0.550658 -0.633015 1.331311 -v 0.948819 -0.638568 1.102958 -v 0.527724 -0.862854 1.253811 -v 0.939974 -0.894739 1.019809 -v 0.544825 -1.133123 1.096902 -v 0.956456 -1.070504 0.921063 -v 0.530629 -1.316423 0.929842 -v 0.930660 -1.216516 0.831196 -v 0.538756 -1.408602 0.764911 -v 0.922703 -1.296032 0.728307 -v 0.489819 -1.524947 0.672392 -v 0.912699 -1.455066 0.576185 -v 0.480235 -1.631521 0.401961 -v 0.912989 -1.499314 0.419547 -v 0.446550 -1.672950 0.000000 -v 0.927497 -1.558489 0.000000 -v -0.228904 1.734267 0.000000 -v -0.547248 1.742126 0.000000 -v -0.559706 1.694180 0.186107 -v -0.221516 1.686349 0.151403 -v -0.557624 1.641278 0.271462 -v -0.267035 1.627058 0.266577 -v -0.626493 1.585426 0.443136 -v -0.247999 1.565146 0.389142 -v -0.597781 1.489620 0.641047 -v -0.179548 1.471301 0.544513 -v -0.674657 1.333008 0.761059 -v -0.192546 1.305535 0.700080 -v -0.910602 1.204118 0.837740 -v -0.406155 1.005088 0.971088 -v -0.969076 0.901205 1.146223 -v -0.115190 0.458427 1.346197 -v -0.752416 0.438132 1.467349 -v 0.005537 0.163519 1.472265 -v -0.645496 0.179261 1.584316 -v 0.018086 0.002865 1.523199 -v -0.536767 -0.144454 1.682232 -v 0.034087 -0.225059 1.542949 -v -0.533528 -0.582280 1.701405 -v 0.010486 -0.502317 1.576297 -v -0.505045 -0.913827 1.645612 -v 0.021051 -0.831931 1.511548 -v -0.487217 -1.193519 1.504026 -v -0.041570 -1.143825 1.395176 -v -0.524231 -1.399266 1.313019 -v -0.071941 -1.346991 1.237379 -v -0.526127 -1.495000 1.167736 -v -0.072300 -1.450245 1.087397 -v -0.535144 -1.615983 0.920556 -v -0.063012 -1.583021 0.865082 -v -0.866132 1.754670 0.000000 -v -1.179474 1.786649 0.000000 -v -1.215563 1.757097 0.133494 -v -0.894132 1.712652 0.151911 -v -1.227613 1.709095 0.276029 -v -0.954897 1.677544 0.293034 -v -1.292756 1.656509 0.514030 -v -1.017767 1.607824 0.541965 -v -1.338488 1.613735 0.725441 -v -1.046070 1.509097 0.761060 -v -1.403848 1.533059 0.902827 -v -1.115594 1.392380 0.819623 -v -1.551526 1.400025 1.050193 -v -1.278903 1.192051 0.946843 -v -1.552899 1.128654 1.151040 -v -1.200768 0.978822 1.103391 -v -1.454529 0.875045 1.238858 -v -1.147922 0.807955 1.254191 -v -1.405685 0.573835 1.352181 -v -1.120716 0.424016 1.456990 -v -1.479588 0.295746 1.440042 -v -1.077307 0.165008 1.553393 -v -1.489699 -0.024215 1.510987 -v -1.053434 -0.342553 1.690245 -v -1.395501 -0.698702 1.553257 -v -1.077209 -0.869649 1.633144 -v -1.376176 -0.948757 1.451608 -v -1.061272 -1.141877 1.496230 -v -1.402349 -1.127845 1.309055 -v -1.001366 -1.335897 1.353338 -v -1.407658 -1.236026 1.112930 -v -0.952525 -1.440582 1.168650 -v 1.640095 -0.674556 1.246804 -v 1.644178 -0.857872 1.208494 -v 1.456656 1.785879 0.000000 -v 1.462507 1.745481 0.222394 -v 1.483832 1.697594 0.288781 -v 1.497138 1.618935 0.401108 -v 1.504951 1.483493 0.585976 -v 1.517126 1.334367 0.741076 -v 1.570685 0.938327 0.989108 -v 1.582203 0.771083 1.068180 -v 1.630080 0.420236 1.172369 -v 1.649027 0.224458 1.211969 -v 1.660355 0.019397 1.246002 -v 1.664159 -0.189659 1.266729 -v 1.678622 -0.410061 1.291177 -v 1.920432 -1.567396 0.000000 -v 1.604939 -1.556997 0.000000 -v 1.192040 -1.330605 0.678707 -v 1.210555 -1.460061 0.576841 -v 1.223415 -1.532658 0.434522 -v 1.289448 -1.546597 0.000000 -v 1.219163 -1.218342 0.823029 -v 1.373216 -0.564620 1.106245 -v 1.252961 -0.928825 1.001643 -v 1.230116 -1.085439 0.894543 -v -0.078470 -1.688266 0.800230 -v -0.094135 -1.769086 0.556924 -v -0.953236 -1.545941 0.899180 -v 2.881063 -0.493146 0.521968 -v 2.824356 -1.407256 0.355013 -v 2.740886 -1.339225 0.463604 -v 2.663024 -1.440487 0.478149 -v -1.350950 1.807009 0.000000 -v -1.365948 1.769608 0.133901 -v -1.396332 1.723782 0.267642 -v -1.417595 1.676180 0.529265 -v -1.465432 1.655336 0.722125 -v -1.582187 1.567542 0.982349 -v -1.721806 1.391264 1.113307 -v -1.733703 1.083864 1.181489 -v -1.807421 0.657142 1.209422 -v -1.796156 0.452382 1.243643 -v -1.810920 0.287592 1.292257 -v -1.795130 0.033439 1.371160 -v -1.802864 -0.282523 1.401315 -v -1.837859 -0.540871 1.295851 -v -1.782928 -0.770786 1.173619 -v -1.757573 -0.945337 1.075832 -v -1.676510 1.826886 0.000000 -v -1.683863 1.789041 0.121501 -v -1.714432 1.747956 0.247594 -v -1.744732 1.734849 0.433807 -v -1.929731 1.617188 0.806390 -v -1.996117 1.387891 1.064104 -v -1.980388 1.134038 1.143196 -v -2.013663 0.810726 1.158827 -v -2.030191 0.547622 1.189762 -v -2.021159 0.411979 1.234679 -v -1.932916 0.232972 1.304589 -v -1.897394 0.037852 1.365798 -v -1.950547 -0.275573 1.377028 -v -2.033655 -0.526012 1.277639 -v -2.050292 -0.755566 1.114167 -v -2.043593 -0.875823 1.028879 -v -2.033406 -0.910030 0.964220 -v -1.782298 -1.020581 0.943381 -v -1.198513 -1.456102 0.885435 -v -1.456655 -1.295527 0.894240 -v -1.366873 -1.340211 0.907567 -v -2.057387 1.841308 0.000000 -v -2.079597 1.817785 0.138375 -v -2.100170 1.789980 0.229245 -v -2.137524 1.753182 0.433142 -v -2.172139 1.623010 0.805318 -v -2.205791 1.356023 1.081662 -v -2.296056 1.062810 1.171139 -v -2.298249 0.768333 1.203884 -v -2.256285 0.547326 1.238301 -v -2.158400 0.381542 1.272962 -v -2.070413 0.207766 1.335106 -v -2.064786 0.018789 1.411866 -v -2.187634 -0.375454 1.406902 -v -2.276341 -0.689823 1.268026 -v -2.292049 -0.933921 1.128136 -v -2.299356 -1.025449 1.044687 -v -2.306662 -1.116976 0.961238 -v -2.629466 1.918204 0.000000 -v -2.672899 1.905110 0.067168 -v -2.697367 1.871291 0.218796 -v -2.703112 1.825435 0.395127 -v -2.715246 1.746763 0.604653 -v -2.717480 1.576797 0.875971 -v -2.684930 1.262021 1.110490 -v -2.572286 0.835495 1.252192 -v -2.536112 0.656633 1.269661 -v -2.520947 0.559036 1.273617 -v -2.473750 0.300945 1.316695 -v -2.433366 0.078222 1.371269 -v -2.414730 -0.108377 1.395384 -v -2.382920 -0.417450 1.375045 -v -2.430508 -0.822313 1.254486 -v -2.566746 -1.211312 1.167101 -v -3.037562 2.001526 0.000000 -v -3.053102 1.968810 0.051104 -v -3.077669 1.871112 0.217368 -v -3.075310 1.846000 0.363149 -v -3.109047 1.789477 0.565323 -v -3.085650 1.657340 0.784479 -v -3.028932 1.461517 0.941324 -v -2.930312 1.103580 1.125876 -v -2.825835 0.755899 1.209042 -v -2.790630 0.468810 1.224273 -v -2.787011 0.264495 1.237352 -v -2.687022 0.076781 1.290565 -v -2.649338 -0.241719 1.339644 -v -2.616467 -0.511373 1.344133 -v -2.624856 -0.888200 1.261176 -v -2.725776 -1.214862 1.190384 -v -2.862576 -1.546894 1.117139 -v -2.765069 -1.561164 1.084313 -v -3.392806 1.769365 0.000000 -v -3.507689 1.700214 0.000000 -v -3.519716 1.685231 0.317130 -v -3.358510 1.810253 0.380095 -v -3.527168 1.583508 0.512679 -v -3.395381 1.726325 0.554770 -v -3.512997 1.448050 0.611386 -v -3.338742 1.598933 0.689636 -v -3.476235 1.287798 0.704766 -v -3.278080 1.432418 0.853958 -v -3.442151 1.105486 0.762934 -v -3.244771 1.195540 0.910945 -v -3.379131 0.767915 0.885996 -v -3.196410 0.797564 0.985913 -v -3.306875 0.379713 0.987620 -v -3.112555 0.457376 1.084816 -v -3.251181 0.175063 1.053445 -v -3.044646 0.224321 1.164934 -v -3.160225 -0.018852 1.113626 -v -2.971546 0.032038 1.215971 -v -3.101125 -0.354760 1.162409 -v -2.907080 -0.345582 1.281557 -v -3.096267 -0.668100 1.140081 -v -2.901159 -0.619504 1.284058 -v -3.122061 -0.998702 1.065015 -v -2.937658 -1.002749 1.219413 -v -3.150210 -1.259588 1.001021 -v -2.982676 -1.264649 1.133596 -v -3.188954 -1.408279 0.963611 -v -3.063133 -1.440555 1.090926 -v -3.690685 1.602080 0.000000 -v -3.734989 1.589433 0.295202 -v -3.697974 1.466697 0.433432 -v -3.684619 1.350690 0.501428 -v -3.655148 1.190938 0.573692 -v -3.639878 1.015186 0.615203 -v -3.582867 0.734419 0.697787 -v -3.504525 0.405574 0.847066 -v -3.424258 0.158638 0.918279 -v -3.365413 -0.113447 0.952400 -v -3.290393 -0.424259 0.984153 -v -3.233333 -0.683782 1.015512 -v -3.238094 -0.979377 0.961631 -v -3.277510 -1.177346 0.915300 -v -3.319817 -1.365015 0.886015 -v -3.709827 1.417763 0.000000 -v -3.709741 1.351194 0.211745 -v -3.701634 1.272650 0.270469 -v -3.695872 1.156978 0.316829 -v -3.672431 1.044224 0.364991 -v -3.664355 0.932851 0.370749 -v -3.631292 0.701013 0.420276 -v -3.570384 0.385564 0.524480 -v -3.520188 0.140164 0.618561 -v -3.458251 -0.125950 0.731712 -v -3.406618 -0.343461 0.746456 -v -3.283698 -0.730967 0.793898 -v -2.687162 -1.539807 0.988048 -v -2.462835 -1.305500 0.966395 -v -2.591357 -1.510845 0.885470 -v -2.955052 -1.496840 1.128812 -v -3.357996 -1.811803 0.975625 -v -3.232610 -1.834299 1.087832 -v -3.365990 -1.485170 0.888076 -v -3.342096 -1.533989 0.921628 -v -2.964215 -1.978727 0.776572 -v -2.811581 -1.798210 0.712737 -v -2.734184 -1.717948 0.749581 -v -2.892438 -1.950810 0.878120 -v -2.837147 -1.791733 0.921563 -v -3.046610 -2.510881 0.900772 -v -3.132772 -2.528669 0.848639 -v -3.144012 -2.333635 0.829994 -v -3.030605 -2.311222 0.884330 -v -3.223286 -3.001780 1.126176 -v -3.261810 -2.821069 1.088218 -v -3.320330 -2.827513 1.063914 -v -3.302419 -3.017921 1.128514 -v -2.986345 -2.933770 1.087679 -v -3.053267 -2.764905 1.043008 -v -3.141072 -2.785287 1.032318 -v -3.107105 -2.947818 1.092235 -v -2.946527 -2.939327 0.986343 -v -3.016419 -2.765091 0.966671 -v -3.301857 -3.074776 1.114869 -v -3.316551 -3.168932 1.121229 -v -3.227676 -3.141660 1.103969 -v -3.217306 -3.187686 1.075214 -f 2741 2742 2740 -f 2739 2740 2742 -f 2744 2745 2743 -f 2743 2745 2746 -f 2746 2748 2743 -f 2747 2743 2748 -f 2748 2750 2747 -f 2749 2747 2750 -f 2739 2751 2740 -f 2751 2752 2740 -f 2755 2756 2754 -f 2753 2754 2756 -f 2754 2758 2757 -f 2757 2758 2759 -f 2757 2759 2760 -f 2760 2759 2750 -f 2741 2759 2742 -f 2758 2742 2759 -f 2759 2741 2750 -f 2741 2749 2750 -f 2757 2761 2754 -f 2755 2754 2761 -f 2762 2763 2745 -f 2746 2745 2763 -f 2748 2746 2764 -f 2746 2763 2764 -f 2762 2765 2763 -f 2763 2765 2766 -f 2766 2767 2763 -f 2764 2763 2767 -f 2764 2767 2760 -f 2760 2767 2768 -f 2760 2768 2757 -f 2757 2768 2761 -f 2769 2770 2772 -f 2770 2771 2772 -f 2773 2774 2771 -f 2772 2771 2774 -f 2775 2776 2773 -f 2774 2773 2776 -f 2776 2775 2778 -f 2775 2777 2778 -f 2779 2780 2777 -f 2778 2777 2780 -f 2779 2781 2780 -f 2780 2781 2782 -f 2781 2783 2782 -f 2782 2783 2784 -f 2784 2783 2786 -f 2783 2785 2786 -f 2771 2770 2788 -f 2770 2787 2788 -f 2789 2773 2788 -f 2771 2788 2773 -f 2773 2789 2775 -f 2789 2790 2775 -f 2791 2777 2790 -f 2775 2790 2777 -f 2779 2777 2792 -f 2777 2791 2792 -f 2792 2793 2779 -f 2779 2793 2781 -f 2793 2794 2781 -f 2781 2794 2783 -f 2794 2795 2783 -f 2783 2795 2785 -f 2765 2762 2797 -f 2762 2796 2797 -f 2780 2798 2778 -f 2778 2798 2799 -f 2800 2776 2799 -f 2776 2778 2799 -f 2801 2774 2800 -f 2774 2776 2800 -f 2765 2772 2801 -f 2772 2774 2801 -f 2765 2797 2772 -f 2797 2769 2772 -f 2788 2787 2803 -f 2802 2803 2787 -f 2804 2805 2791 -f 2805 2792 2791 -f 2791 2790 2804 -f 2806 2804 2790 -f 2789 2807 2790 -f 2807 2806 2790 -f 2788 2803 2789 -f 2803 2807 2789 -f 2808 2809 2786 -f 2809 2784 2786 -f 2795 2794 2811 -f 2794 2810 2811 -f 2782 2812 2780 -f 2812 2798 2780 -f 2784 2809 2782 -f 2809 2812 2782 -f 2793 2792 2813 -f 2792 2805 2813 -f 2794 2793 2810 -f 2793 2813 2810 -f 2814 2815 2817 -f 2815 2816 2817 -f 2816 2818 2817 -f 2817 2818 2819 -f 2819 2818 2821 -f 2818 2820 2821 -f 2822 2823 2820 -f 2821 2820 2823 -f 2823 2822 2825 -f 2822 2824 2825 -f 2826 2827 2824 -f 2825 2824 2827 -f 2828 2829 2826 -f 2827 2826 2829 -f 2830 2831 2828 -f 2829 2828 2831 -f 2832 2833 2830 -f 2831 2830 2833 -f 2832 2834 2833 -f 2833 2834 2835 -f 2836 2837 2834 -f 2835 2834 2837 -f 2838 2839 2836 -f 2837 2836 2839 -f 2839 2838 2841 -f 2838 2840 2841 -f 2842 2843 2840 -f 2841 2840 2843 -f 2846 2847 2845 -f 2844 2845 2847 -f 2850 2851 2849 -f 2848 2849 2851 -f 2852 2848 2851 -f 2851 2854 2852 -f 2853 2852 2854 -f 2854 2856 2853 -f 2855 2853 2856 -f 2858 2857 2856 -f 2857 2855 2856 -f 2859 2857 2860 -f 2857 2858 2860 -f 2861 2859 2862 -f 2859 2860 2862 -f 2864 2863 2862 -f 2863 2861 2862 -f 2866 2865 2864 -f 2865 2863 2864 -f 2868 2867 2866 -f 2867 2865 2866 -f 2867 2868 2869 -f 2869 2868 2870 -f 2870 2846 2869 -f 2845 2869 2846 -f 2873 2874 2872 -f 2871 2872 2874 -f 2877 2878 2876 -f 2875 2876 2878 -f 2878 2880 2875 -f 2879 2875 2880 -f 2880 2882 2879 -f 2881 2879 2882 -f 2884 2883 2882 -f 2883 2881 2882 -f 2883 2884 2885 -f 2885 2884 2886 -f 2885 2886 2887 -f 2887 2886 2888 -f 2889 2887 2890 -f 2887 2888 2890 -f 2889 2890 2891 -f 2889 2891 2892 -f 2892 2891 2893 -f 2895 2894 2893 -f 2894 2892 2893 -f 2897 2896 2895 -f 2896 2894 2895 -f 2899 2898 2897 -f 2898 2896 2897 -f 2898 2899 2872 -f 2872 2899 2873 -f 2817 2845 2814 -f 2814 2845 2844 -f 2840 2872 2842 -f 2842 2872 2871 -f 2816 2815 2876 -f 2818 2816 2875 -f 2816 2876 2875 -f 2820 2818 2879 -f 2818 2875 2879 -f 2879 2881 2820 -f 2822 2820 2881 -f 2883 2824 2881 -f 2824 2822 2881 -f 2885 2826 2883 -f 2826 2824 2883 -f 2826 2885 2828 -f 2828 2885 2887 -f 2828 2887 2830 -f 2830 2887 2889 -f 2830 2889 2832 -f 2832 2889 2892 -f 2894 2834 2892 -f 2834 2832 2892 -f 2896 2836 2894 -f 2836 2834 2894 -f 2836 2896 2838 -f 2838 2896 2898 -f 2840 2838 2872 -f 2838 2898 2872 -f 2848 2841 2849 -f 2841 2843 2849 -f 2841 2848 2839 -f 2839 2848 2852 -f 2853 2837 2852 -f 2837 2839 2852 -f 2835 2837 2853 -f 2853 2855 2835 -f 2833 2835 2855 -f 2833 2855 2831 -f 2831 2855 2857 -f 2831 2857 2829 -f 2829 2857 2859 -f 2829 2859 2827 -f 2827 2859 2861 -f 2863 2825 2861 -f 2825 2827 2861 -f 2825 2863 2823 -f 2823 2863 2865 -f 2867 2821 2865 -f 2821 2823 2865 -f 2821 2867 2819 -f 2819 2867 2869 -f 2845 2817 2869 -f 2817 2819 2869 -f 2895 2900 2897 -f 2902 2890 2901 -f 2890 2888 2901 -f 2891 2890 2903 -f 2890 2902 2903 -f 2891 2903 2893 -f 2893 2903 2904 -f 2905 2906 2900 -f 2905 2900 2893 -f 2900 2895 2893 -f 2893 2904 2905 -f 2907 2908 2909 -f 2911 2912 2910 -f 2910 2912 2913 -f 2915 2914 2913 -f 2914 2910 2913 -f 2914 2915 2916 -f 2916 2915 2917 -f 2917 2919 2916 -f 2918 2916 2919 -f 2919 2921 2918 -f 2920 2918 2921 -f 2922 2920 2923 -f 2920 2921 2923 -f 2923 2925 2922 -f 2924 2922 2925 -f 2908 2924 2909 -f 2924 2925 2909 -f 2913 2926 2915 -f 2926 2906 2915 -f 2927 2907 2909 -f 2927 2909 2901 -f 2901 2909 2925 -f 2923 2902 2925 -f 2902 2901 2925 -f 2921 2903 2923 -f 2903 2902 2923 -f 2903 2921 2904 -f 2904 2921 2919 -f 2917 2905 2919 -f 2905 2904 2919 -f 2905 2917 2906 -f 2906 2917 2915 -f 2901 2888 2927 -f 2888 2886 2927 -f 2878 2877 2929 -f 2877 2928 2929 -f 2929 2930 2878 -f 2880 2878 2930 -f 2930 2931 2880 -f 2882 2880 2931 -f 2882 2931 2884 -f 2884 2931 2907 -f 2884 2907 2886 -f 2886 2907 2927 -f 2932 2933 2911 -f 2911 2933 2934 -f 2930 2929 2936 -f 2929 2935 2936 -f 2931 2930 2937 -f 2930 2936 2937 -f 2937 2938 2931 -f 2907 2931 2938 -f 2908 2907 2939 -f 2907 2938 2939 -f 2939 2940 2908 -f 2924 2908 2940 -f 2922 2924 2941 -f 2924 2940 2941 -f 2941 2942 2922 -f 2920 2922 2942 -f 2942 2943 2920 -f 2918 2920 2943 -f 2916 2918 2944 -f 2918 2943 2944 -f 2916 2944 2914 -f 2914 2944 2945 -f 2945 2946 2914 -f 2910 2914 2946 -f 2910 2946 2911 -f 2911 2946 2932 -f 2934 2933 2802 -f 2933 2803 2802 -f 2947 2933 2932 -f 2948 2947 2946 -f 2947 2932 2946 -f 2935 2951 2950 -f 2949 2950 2951 -f 2946 2945 2948 -f 2952 2948 2945 -f 2952 2945 2944 -f 2944 2943 2952 -f 2953 2952 2943 -f 2954 2953 2942 -f 2953 2943 2942 -f 2955 2954 2941 -f 2954 2942 2941 -f 2955 2941 2956 -f 2956 2941 2940 -f 2940 2939 2956 -f 2957 2956 2939 -f 2958 2957 2938 -f 2957 2939 2938 -f 2938 2937 2958 -f 2959 2958 2937 -f 2937 2936 2959 -f 2960 2959 2936 -f 2936 2935 2960 -f 2950 2960 2935 -f 2964 2961 2963 -f 2961 2962 2963 -f 2963 2965 2964 -f 2964 2965 2966 -f 2968 2966 2967 -f 2966 2965 2967 -f 2970 2968 2969 -f 2968 2967 2969 -f 2972 2970 2971 -f 2970 2969 2971 -f 2971 2973 2972 -f 2972 2973 2974 -f 2973 2975 2974 -f 2974 2975 2976 -f 2978 2976 2977 -f 2976 2975 2977 -f 2980 2978 2979 -f 2978 2977 2979 -f 2982 2980 2981 -f 2980 2979 2981 -f 2984 2982 2983 -f 2982 2981 2983 -f 2985 2986 2983 -f 2984 2983 2986 -f 2988 2986 2987 -f 2986 2985 2987 -f 2989 2990 2987 -f 2988 2987 2990 -f 2991 2992 2989 -f 2990 2989 2992 -f 2991 2993 2992 -f 2992 2993 2994 -f 2995 2996 2993 -f 2994 2993 2996 -f 2997 2998 2995 -f 2996 2995 2998 -f 2999 3000 2997 -f 2998 2997 3000 -f 3002 3003 3001 -f 3001 3003 3004 -f 3004 3003 3006 -f 3003 3005 3006 -f 3007 3008 3005 -f 3006 3005 3008 -f 3010 3008 3009 -f 3008 3007 3009 -f 3011 3012 3009 -f 3010 3009 3012 -f 3013 3014 3011 -f 3012 3011 3014 -f 3016 3014 3015 -f 3014 3013 3015 -f 3015 3017 3016 -f 3016 3017 3018 -f 3017 3019 3018 -f 3018 3019 3020 -f 3019 3021 3020 -f 3020 3021 3022 -f 3021 3023 3022 -f 3022 3023 3024 -f 3023 3025 3024 -f 3024 3025 3026 -f 3026 3025 3028 -f 3025 3027 3028 -f 3029 3030 3027 -f 3028 3027 3030 -f 3030 3029 3032 -f 3029 3031 3032 -f 3034 3032 3033 -f 3032 3031 3033 -f 3038 3035 3037 -f 3035 3036 3037 -f 3038 3037 3040 -f 3037 3039 3040 -f 3040 3039 3042 -f 3039 3041 3042 -f 3044 3042 3043 -f 3042 3041 3043 -f 3043 3045 3044 -f 3044 3045 3046 -f 3046 3045 3048 -f 3045 3047 3048 -f 3050 3048 3049 -f 3048 3047 3049 -f 3050 3049 3052 -f 3049 3051 3052 -f 3052 3051 3054 -f 3051 3053 3054 -f 3055 3056 3053 -f 3054 3053 3056 -f 3058 3056 3057 -f 3056 3055 3057 -f 3057 3059 3058 -f 3058 3059 3060 -f 3062 3060 3061 -f 3060 3059 3061 -f 3064 3062 3063 -f 3062 3061 3063 -f 3066 3064 3065 -f 3064 3063 3065 -f 2947 3067 3068 -f 3070 2950 3069 -f 2950 2949 3069 -f 2950 3070 2960 -f 2960 3070 3071 -f 2959 2960 3072 -f 2960 3071 3072 -f 2958 2959 3073 -f 2959 3072 3073 -f 2957 2958 3074 -f 2958 3073 3074 -f 3074 3075 2957 -f 2956 2957 3075 -f 2956 3075 3076 -f 3077 2955 3076 -f 2955 2956 3076 -f 2955 3077 2954 -f 2954 3077 3078 -f 2953 2954 3079 -f 2954 3078 3079 -f 3079 3080 2953 -f 2952 2953 3080 -f 2952 3080 2948 -f 2948 3080 3081 -f 2948 3081 2947 -f 2947 3081 3067 -f 2803 2947 2807 -f 2947 2806 2807 -f 2947 2803 2933 -f 2947 3068 2805 -f 2947 2805 2804 -f 2947 2804 2806 -f 3083 3082 2745 -f 3082 2762 2745 -f 2808 2786 3085 -f 2786 3084 3085 -f 2744 2808 3086 -f 2808 3085 3086 -f 3082 2796 2762 -f 2744 3086 3083 -f 3086 3087 3083 -f 2745 2744 3083 -f 3088 3084 2785 -f 2786 2785 3084 -f 2811 3089 3090 -f 2795 2811 3091 -f 2811 3090 3091 -f 2785 2795 3088 -f 2795 3091 3088 -f 2813 2805 3068 -f 2810 2813 3067 -f 2813 3068 3067 -f 3067 3081 3089 -f 2810 3067 3089 -f 2961 3070 3069 -f 3087 3086 3000 -f 2998 3000 3086 -f 3086 3085 2998 -f 2996 2998 3085 -f 2994 2996 3084 -f 2996 3085 3084 -f 3084 3088 2994 -f 2992 2994 3088 -f 2992 3088 2990 -f 2990 3088 3091 -f 2988 2990 3090 -f 2990 3091 3090 -f 3089 2986 3090 -f 2986 2988 3090 -f 2984 2986 3089 -f 2982 2984 3081 -f 2984 3089 3081 -f 2980 2982 3080 -f 2982 3081 3080 -f 3080 3079 2980 -f 2978 2980 3079 -f 2976 2978 3078 -f 2978 3079 3078 -f 3078 3077 2976 -f 2974 2976 3077 -f 2972 2974 3076 -f 2974 3077 3076 -f 2970 2972 3075 -f 2972 3076 3075 -f 2968 2970 3075 -f 3075 3074 2968 -f 2966 2968 3074 -f 3074 3073 2966 -f 2964 2966 3073 -f 2964 3073 3072 -f 2961 2964 3071 -f 2964 3072 3071 -f 2961 3071 3070 -f 3001 3004 2962 -f 2962 3004 2963 -f 2965 2963 3006 -f 2963 3004 3006 -f 2967 2965 3008 -f 2965 3006 3008 -f 3008 3010 2967 -f 2967 3010 2969 -f 3010 3012 2969 -f 2969 3012 2971 -f 2973 2971 3014 -f 2971 3012 3014 -f 3014 3016 2973 -f 2973 3016 2975 -f 3016 3018 2975 -f 2975 3018 2977 -f 3018 3020 2977 -f 2977 3020 2979 -f 3020 3022 2979 -f 2979 3022 2981 -f 3022 3024 2981 -f 2981 3024 2983 -f 3024 3026 2983 -f 2983 3026 2985 -f 3028 2987 3026 -f 2985 3026 2987 -f 3030 2989 3028 -f 2987 3028 2989 -f 2989 3030 2991 -f 3030 3032 2991 -f 3032 3034 2991 -f 2991 3034 2993 -f 3034 3092 2993 -f 2993 3092 2995 -f 3092 3093 2995 -f 3003 3002 3038 -f 3002 3035 3038 -f 3040 3005 3038 -f 3003 3038 3005 -f 3042 3007 3040 -f 3005 3040 3007 -f 3009 3007 3044 -f 3007 3042 3044 -f 3009 3044 3011 -f 3044 3046 3011 -f 3011 3046 3013 -f 3046 3048 3013 -f 3015 3013 3050 -f 3013 3048 3050 -f 3017 3015 3052 -f 3015 3050 3052 -f 3052 3054 3017 -f 3017 3054 3019 -f 3021 3019 3056 -f 3019 3054 3056 -f 3056 3058 3021 -f 3021 3058 3023 -f 3058 3060 3023 -f 3023 3060 3025 -f 3027 3025 3062 -f 3025 3060 3062 -f 3027 3062 3029 -f 3062 3064 3029 -f 3029 3064 3031 -f 3064 3066 3031 -f 3066 3094 3031 -f 3031 3094 3033 -f 3095 2906 2926 -f 3096 3097 3098 -f 2811 2810 3089 -f 3036 3099 3037 -f 3099 3100 3037 -f 3101 3039 3100 -f 3037 3100 3039 -f 3039 3101 3041 -f 3101 3102 3041 -f 3043 3041 3103 -f 3041 3102 3103 -f 3103 3104 3043 -f 3043 3104 3045 -f 3105 3047 3104 -f 3045 3104 3047 -f 3106 3049 3105 -f 3047 3105 3049 -f 3107 3051 3106 -f 3049 3106 3051 -f 3051 3107 3053 -f 3107 3108 3053 -f 3053 3108 3055 -f 3108 3109 3055 -f 3057 3055 3110 -f 3055 3109 3110 -f 3059 3057 3111 -f 3057 3110 3111 -f 3061 3059 3112 -f 3059 3111 3112 -f 3112 3113 3061 -f 3061 3113 3063 -f 3113 3114 3063 -f 3063 3114 3065 -f 3099 3115 3100 -f 3115 3116 3100 -f 3100 3116 3101 -f 3116 3117 3101 -f 3102 3101 3118 -f 3101 3117 3118 -f 3119 3103 3118 -f 3102 3118 3103 -f 3103 3119 3104 -f 3119 3120 3104 -f 3104 3120 3105 -f 3120 3121 3105 -f 3122 3106 3121 -f 3105 3121 3106 -f 3106 3122 3107 -f 3122 3123 3107 -f 3108 3107 3124 -f 3107 3123 3124 -f 3124 3125 3108 -f 3108 3125 3109 -f 3109 3125 3110 -f 3125 3126 3110 -f 3111 3110 3127 -f 3110 3126 3127 -f 3128 3112 3127 -f 3111 3127 3112 -f 3113 3112 3129 -f 3112 3128 3129 -f 3114 3113 3130 -f 3113 3129 3130 -f 3114 3130 3132 -f 3130 3131 3132 -f 3065 3133 3066 -f 3094 3066 3133 -f 3065 3114 3134 -f 3114 3132 3134 -f 3065 3134 3135 -f 3065 3135 3133 -f 3137 3116 3136 -f 3115 3136 3116 -f 3116 3137 3117 -f 3137 3138 3117 -f 3139 3118 3138 -f 3117 3138 3118 -f 3118 3139 3119 -f 3139 3140 3119 -f 3141 3120 3140 -f 3119 3140 3120 -f 3142 3121 3141 -f 3120 3141 3121 -f 3121 3142 3122 -f 3142 3143 3122 -f 3122 3143 3123 -f 3143 3144 3123 -f 3144 3145 3123 -f 3123 3145 3124 -f 3125 3124 3146 -f 3124 3145 3146 -f 3147 3126 3146 -f 3125 3146 3126 -f 3147 3148 3126 -f 3126 3148 3127 -f 3149 3128 3148 -f 3127 3148 3128 -f 3150 3129 3149 -f 3128 3149 3129 -f 3129 3150 3130 -f 3150 3151 3130 -f 3131 3130 3152 -f 3130 3151 3152 -f 3154 3137 3153 -f 3136 3153 3137 -f 3155 3138 3154 -f 3137 3154 3138 -f 3138 3155 3139 -f 3155 3156 3139 -f 3140 3139 3157 -f 3139 3156 3157 -f 3141 3140 3158 -f 3140 3157 3158 -f 3158 3159 3141 -f 3141 3159 3142 -f 3159 3160 3142 -f 3142 3160 3143 -f 3144 3143 3161 -f 3143 3160 3161 -f 3145 3144 3162 -f 3144 3161 3162 -f 3163 3146 3162 -f 3145 3162 3146 -f 3146 3163 3147 -f 3163 3164 3147 -f 3148 3147 3165 -f 3147 3164 3165 -f 3165 3166 3148 -f 3148 3166 3149 -f 3166 3167 3149 -f 3149 3167 3150 -f 3167 3168 3150 -f 3150 3168 3151 -f 3153 3169 3154 -f 3169 3170 3154 -f 3170 3171 3154 -f 3154 3171 3155 -f 3156 3155 3172 -f 3155 3171 3172 -f 3157 3156 3173 -f 3156 3172 3173 -f 3157 3173 3158 -f 3173 3174 3158 -f 3159 3158 3175 -f 3158 3174 3175 -f 3160 3159 3176 -f 3159 3175 3176 -f 3176 3177 3160 -f 3160 3177 3161 -f 3177 3178 3161 -f 3161 3178 3162 -f 3162 3178 3163 -f 3178 3179 3163 -f 3163 3179 3164 -f 3179 3180 3164 -f 3180 3181 3164 -f 3164 3181 3165 -f 3166 3165 3182 -f 3165 3181 3182 -f 3182 3183 3166 -f 3166 3183 3167 -f 3168 3167 3184 -f 3167 3183 3184 -f 3186 3168 3185 -f 3168 3184 3185 -f 3190 3187 3189 -f 3187 3188 3189 -f 3191 3192 3189 -f 3190 3189 3192 -f 3193 3194 3191 -f 3192 3191 3194 -f 3195 3196 3193 -f 3194 3193 3196 -f 3196 3195 3198 -f 3195 3197 3198 -f 3198 3197 3200 -f 3197 3199 3200 -f 3199 3201 3200 -f 3200 3201 3202 -f 3204 3202 3203 -f 3202 3201 3203 -f 3203 3205 3204 -f 3204 3205 3206 -f 3206 3205 3208 -f 3205 3207 3208 -f 3209 3210 3207 -f 3208 3207 3210 -f 3210 3209 3212 -f 3209 3211 3212 -f 3212 3211 3214 -f 3211 3213 3214 -f 3214 3213 3216 -f 3213 3215 3216 -f 3188 3217 3189 -f 3217 3218 3189 -f 3189 3218 3191 -f 3218 3219 3191 -f 3191 3219 3193 -f 3219 3220 3193 -f 3221 3195 3220 -f 3193 3220 3195 -f 3222 3197 3221 -f 3195 3221 3197 -f 3199 3197 3223 -f 3197 3222 3223 -f 3201 3199 3224 -f 3199 3223 3224 -f 3224 3225 3201 -f 3201 3225 3203 -f 3225 3226 3203 -f 3203 3226 3205 -f 3205 3226 3207 -f 3226 3227 3207 -f 3207 3227 3209 -f 3227 3228 3209 -f 3209 3228 3211 -f 3228 3229 3211 -f 3213 3211 3230 -f 3211 3229 3230 -f 3230 3231 3213 -f 3213 3231 3215 -f 3217 3232 3218 -f 3232 3233 3218 -f 3219 3218 3234 -f 3218 3233 3234 -f 3220 3219 3235 -f 3219 3234 3235 -f 3221 3220 3236 -f 3220 3235 3236 -f 3221 3236 3222 -f 3236 3237 3222 -f 3222 3237 3223 -f 3237 3238 3223 -f 3224 3223 3239 -f 3223 3238 3239 -f 3239 3240 3224 -f 3224 3240 3225 -f 3240 3241 3225 -f 3225 3241 3226 -f 3226 3241 3227 -f 3241 3242 3227 -f 3242 3243 3227 -f 3227 3243 3228 -f 3183 3212 3184 -f 3212 3214 3184 -f 3183 3182 3212 -f 3210 3212 3182 -f 3182 3181 3210 -f 3208 3210 3181 -f 3208 3181 3206 -f 3206 3181 3180 -f 3180 3179 3206 -f 3204 3206 3179 -f 3202 3204 3178 -f 3204 3179 3178 -f 3200 3202 3177 -f 3202 3178 3177 -f 3177 3176 3200 -f 3198 3200 3176 -f 3175 3196 3176 -f 3196 3198 3176 -f 3174 3194 3175 -f 3194 3196 3175 -f 3173 3192 3174 -f 3192 3194 3174 -f 3192 3173 3190 -f 3190 3173 3172 -f 3244 3168 3186 -f 3151 3168 3152 -f 3245 3152 3168 -f 3244 3246 3168 -f 3246 3245 3168 -f 2748 2764 2750 -f 2750 2764 2760 -f 2935 2929 2951 -f 2929 2928 2951 -f 3185 3184 3247 -f 3248 3249 3215 -f 3216 3215 3249 -f 3184 3214 3247 -f 3214 3216 3247 -f 3251 3215 3250 -f 3215 3231 3250 -f 3215 3251 3248 -f 3254 3255 3253 -f 3252 3253 3255 -f 3254 3256 3255 -f 3260 3257 3259 -f 3257 3258 3259 -f 3263 3264 3262 -f 3261 3262 3264 -f 3265 3266 3268 -f 3266 3267 3268 -f 3269 3270 3265 -f 3270 3266 3265 -f 3271 3261 3264 -f 3272 3273 3271 -f 3274 3273 3272 -v -2.975439 -3.308754 1.253240 -v -2.845816 -3.273661 1.218321 -v -2.888628 -3.200302 1.210934 -v -3.042899 -3.193907 1.207296 -v -2.856957 -3.449728 1.356844 -v -2.736599 -3.394849 1.269577 -v -2.729567 -3.602976 1.377236 -v -2.631547 -3.559891 1.337380 -v -3.030627 -3.493327 1.322650 -v -2.981824 -3.608887 1.346959 -v -3.091252 -3.340925 1.235864 -v -3.135041 -3.243787 1.189436 -v -2.787341 -3.278502 1.138621 -v -2.699957 -3.390295 1.185593 -v -2.822497 -3.186549 1.120984 -v -2.770335 -3.208138 1.031045 -v -2.884711 -3.063896 0.993766 -v -2.909010 -3.084482 1.089147 -v -3.158524 -3.405872 1.197099 -v -3.184143 -3.298048 1.156892 -v -3.098730 -3.539123 1.252987 -v -3.031250 -3.095940 1.106355 -f 3278 3275 3277 -f 3275 3276 3277 -f 3275 3279 3276 -f 3279 3280 3276 -f 3280 3279 3282 -f 3281 3282 3279 -f 3284 3281 3283 -f 3279 3283 3281 -f 3279 3275 3283 -f 3275 3285 3283 -f 3275 3278 3285 -f 3278 3286 3285 -f 3276 3280 3287 -f 3287 3280 3288 -f 3277 3276 3289 -f 3289 3276 3287 -f 3290 3291 3289 -f 3291 3292 3289 -f 3285 3286 3293 -f 3293 3286 3294 -f 3285 3293 3283 -f 3283 3293 3295 -f 3295 3284 3283 -f 3277 3289 3296 -v -2.909010 -3.084482 1.089147 -v -2.884711 -3.063896 0.993766 -v -2.946527 -2.939327 0.986343 -v -2.986345 -2.933770 1.087679 -v -3.141072 -2.785287 1.032318 -v -3.196508 -2.788166 1.045431 -v -3.177108 -2.979305 1.139084 -v -3.107105 -2.947818 1.092235 -v -3.261810 -2.821069 1.088218 -v -3.223286 -3.001780 1.126176 -v -3.330406 -3.185190 0.950058 -v -3.316551 -3.168932 1.121229 -v -3.301857 -3.074776 1.114869 -v -3.333954 -3.058673 0.974748 -v -3.223246 -3.225388 0.976573 -v -3.217306 -3.187686 1.075214 -f 3300 3297 3299 -f 3297 3298 3299 -f 3303 3304 3302 -f 3301 3302 3304 -f 3302 3305 3303 -f 3303 3305 3306 -f 3308 3309 3307 -f 3307 3309 3310 -f 3308 3307 3312 -f 3311 3312 3307 -v -3.194170 -3.348553 1.007196 -v -3.184143 -3.298048 1.156892 -v -3.217306 -3.187686 1.075214 -v -3.223246 -3.225388 0.976573 -v -2.922908 -3.637036 1.059206 -v -2.981824 -3.608887 1.346959 -v -3.098730 -3.539123 1.252987 -v -3.082741 -3.598298 1.054556 -v -3.186750 -3.457336 1.025606 -v -3.158524 -3.405872 1.197099 -f 3314 3315 3313 -f 3313 3315 3316 -f 3317 3318 3320 -f 3318 3319 3320 -f 3321 3322 3313 -f 3322 3314 3313 -f 3320 3319 3321 -f 3319 3322 3321 -v -3.119570 -3.183977 0.870739 -v -3.223246 -3.225388 0.976573 -v -3.330406 -3.185190 0.950058 -v -3.294389 -3.166225 0.842823 -f 3323 3324 3326 -f 3324 3325 3326 -v -3.223246 -3.225388 0.976573 -v -3.119570 -3.183977 0.870739 -v -3.087335 -3.350463 0.831656 -v -3.194170 -3.348553 1.007196 -v -3.074557 -3.486847 0.843432 -v -3.186750 -3.457336 1.025606 -v -3.006867 -3.575464 0.830221 -v -3.082741 -3.598298 1.054556 -v -2.870422 -3.601724 0.843123 -v -2.922908 -3.637036 1.059206 -v -2.740824 -3.597601 0.875006 -v -2.791754 -3.635993 1.078555 -f 3329 3330 3328 -f 3327 3328 3330 -f 3329 3331 3330 -f 3331 3332 3330 -f 3332 3331 3334 -f 3333 3334 3331 -f 3334 3333 3336 -f 3335 3336 3333 -f 3336 3335 3338 -f 3337 3338 3335 -v -3.256731 -3.032131 0.849693 -v -3.294389 -3.166225 0.842823 -v -3.330406 -3.185190 0.950058 -v -3.333954 -3.058673 0.974748 -v -3.339637 -2.846837 0.966368 -v -3.300372 -2.795728 0.878984 -v -3.107105 -2.947818 1.092235 -v -3.031250 -3.095940 1.106355 -v -2.909010 -3.084482 1.089147 -v -2.986345 -2.933770 1.087679 -f 3339 3340 3342 -f 3340 3341 3342 -f 3344 3339 3343 -f 3342 3343 3339 -f 3345 3346 3348 -f 3346 3347 3348 -v -3.042899 -3.193907 1.207296 -v -2.888628 -3.200302 1.210934 -v -3.031250 -3.095940 1.106355 -v -3.121673 -3.120319 1.136456 -f 3350 3351 3349 -f 3349 3351 3352 -v -3.107105 -2.947818 1.092235 -v -3.177108 -2.979305 1.139084 -v -3.121673 -3.120319 1.136456 -v -3.031250 -3.095940 1.106355 -v -3.223286 -3.001780 1.126176 -v -3.169546 -3.135273 1.128247 -f 3356 3353 3355 -f 3353 3354 3355 -f 3354 3357 3355 -f 3357 3358 3355 -v -3.135041 -3.243787 1.189436 -v -3.042899 -3.193907 1.207296 -v -3.121673 -3.120319 1.136456 -v -3.169546 -3.135273 1.128247 -v -3.184143 -3.298048 1.156892 -v -3.217306 -3.187686 1.075214 -f 3360 3361 3359 -f 3359 3361 3362 -f 3363 3359 3364 -f 3359 3362 3364 -v -3.217306 -3.187686 1.075214 -v -3.169546 -3.135273 1.128247 -v -3.227676 -3.141660 1.103969 -v -3.223286 -3.001780 1.126176 -v -3.301857 -3.074776 1.114869 -v -3.302419 -3.017921 1.128514 -v -3.333954 -3.058673 0.974748 -v -3.320330 -2.827513 1.063914 -v -3.339637 -2.846837 0.966368 -f 3365 3366 3367 -f 3368 3369 3366 -f 3367 3366 3369 -f 3370 3371 3369 -f 3370 3372 3371 -f 3371 3372 3373 -v -2.803260 -3.213580 0.942403 -v -2.928681 -3.072892 0.924772 -v -2.884711 -3.063896 0.993766 -v -2.770335 -3.208138 1.031045 -f 3375 3376 3374 -f 3374 3376 3377 -v -2.928681 -3.072892 0.924772 -v -3.008412 -2.899760 0.904635 -v -2.946527 -2.939327 0.986343 -v -2.884711 -3.063896 0.993766 -f 3379 3380 3378 -f 3378 3380 3381 -v -2.787341 -3.278502 1.138621 -v -2.749355 -3.272099 1.034148 -v -2.770335 -3.208138 1.031045 -v -2.822497 -3.186549 1.120984 -v -2.631547 -3.559891 1.337380 -v -2.583580 -3.514267 1.278598 -v -2.699957 -3.390295 1.185593 -v -2.736599 -3.394849 1.269577 -v -2.524720 -3.561609 1.161535 -v -2.649491 -3.404362 1.100352 -v -2.593513 -3.536154 0.942450 -v -2.668957 -3.397513 0.943626 -v -2.749867 -3.295148 0.966073 -v -2.803260 -3.213580 0.942403 -f 3385 3382 3384 -f 3382 3383 3384 -f 3386 3387 3389 -f 3387 3388 3389 -f 3390 3391 3387 -f 3391 3388 3387 -f 3383 3382 3391 -f 3382 3388 3391 -f 3392 3393 3390 -f 3393 3391 3390 -f 3393 3394 3391 -f 3394 3383 3391 -f 3395 3384 3394 -f 3384 3383 3394 -v -3.166971 -3.002766 0.812106 -v -3.119570 -3.183977 0.870739 -v -3.294389 -3.166225 0.842823 -v -3.256731 -3.032131 0.849693 -v -3.069810 -2.928755 0.845236 -v -3.011987 -3.092000 0.860973 -v -3.008412 -2.899760 0.904635 -v -2.928681 -3.072892 0.924772 -v -3.184812 -2.768053 0.850127 -v -3.137383 -2.776449 0.844117 -v -3.040038 -2.780893 0.914614 -f 3396 3397 3398 -f 3399 3396 3398 -f 3397 3396 3401 -f 3396 3400 3401 -f 3402 3403 3400 -f 3400 3403 3401 -f 3404 3405 3396 -f 3405 3400 3396 -f 3405 3406 3400 -f 3406 3402 3400 -v -3.011987 -3.092000 0.860973 -v -2.944625 -3.282121 0.817054 -v -3.087335 -3.350463 0.831656 -v -3.119570 -3.183977 0.870739 -v -2.928681 -3.072892 0.924772 -v -2.803260 -3.213580 0.942403 -v -2.890885 -3.415616 0.819125 -v -3.074557 -3.486847 0.843432 -v -2.749867 -3.295148 0.966073 -f 3407 3408 3410 -f 3408 3409 3410 -f 3412 3408 3411 -f 3411 3408 3407 -f 3413 3414 3408 -f 3408 3414 3409 -f 3415 3413 3412 -f 3412 3413 3408 -v -3.300372 -2.795728 0.878984 -v -3.184812 -2.768053 0.850127 -v -3.166971 -3.002766 0.812106 -v -3.256731 -3.032131 0.849693 -f 3417 3418 3416 -f 3416 3418 3419 -v -3.006867 -3.575464 0.830221 -v -3.074557 -3.486847 0.843432 -v -2.890885 -3.415616 0.819125 -v -2.870422 -3.601724 0.843123 -v -2.668957 -3.397513 0.943626 -v -2.749867 -3.295148 0.966073 -v -2.740824 -3.597601 0.875006 -v -2.593513 -3.536154 0.942450 -v -2.791754 -3.635993 1.078555 -v -2.524720 -3.561609 1.161535 -v -2.729567 -3.602976 1.377236 -v -2.981824 -3.608887 1.346959 -v -2.922908 -3.637036 1.059206 -v -2.822497 -3.186549 1.120984 -v -2.909010 -3.084482 1.089147 -v -3.031250 -3.095940 1.106355 -v -2.583580 -3.514267 1.278598 -v -2.631547 -3.559891 1.337380 -f 3420 3421 3422 -f 3420 3422 3423 -f 3424 3422 3425 -f 3422 3426 3423 -f 3426 3422 3427 -f 3422 3424 3427 -f 3429 3428 3427 -f 3428 3426 3427 -f 3431 3432 3430 -f 3428 3430 3432 -f 3433 3434 3435 -f 3430 3428 3437 -f 3437 3428 3436 -f 3429 3436 3428 -v -3.008412 -2.899760 0.904635 -v -3.040038 -2.780893 0.914614 -v -3.016419 -2.765091 0.966671 -v -2.946527 -2.939327 0.986343 -v -3.078699 -2.553982 1.046834 -v -3.162498 -2.556375 1.058409 -v -3.141072 -2.785287 1.032318 -v -3.053267 -2.764905 1.043008 -v -3.347304 -2.573628 0.955211 -v -3.372066 -2.569159 0.904785 -v -3.339637 -2.846837 0.966368 -v -3.320330 -2.827513 1.063914 -v -3.251541 -2.564050 1.023627 -v -3.261810 -2.821069 1.088218 -v -3.196508 -2.788166 1.045431 -v -3.022819 -2.522240 0.979148 -v -3.300372 -2.795728 0.878984 -v -3.297886 -2.549020 0.861657 -v -3.184812 -2.768053 0.850127 -v -3.240554 -2.555467 0.856262 -v -3.137383 -2.776449 0.844117 -v -3.132772 -2.528669 0.848639 -v -3.046610 -2.510881 0.900772 -v -3.335942 -1.365685 0.724590 -v -3.319817 -1.365015 0.886015 -v -3.277510 -1.177346 0.915300 -v -3.279790 -1.162072 0.784602 -v -3.238094 -0.979377 0.961631 -v -3.233333 -0.683782 1.015512 -v -3.283698 -0.730967 0.793898 -v -3.251210 -0.948205 0.819868 -v -3.406618 -0.343461 0.746456 -v -3.415655 -0.308965 0.671045 -v -3.631292 0.701013 0.420276 -v -3.664355 0.932851 0.370749 -v -3.578170 0.837714 0.288502 -v -3.556552 0.704883 0.280630 -v -3.570384 0.385564 0.524480 -v -3.536654 0.442277 0.322000 -v -3.520188 0.140164 0.618561 -v -3.516840 0.149002 0.430359 -v -3.458251 -0.125950 0.731712 -v -3.470778 -0.078218 0.546398 -v -3.599077 0.796217 0.000000 -v -3.623861 0.911561 0.000000 -v -3.709741 1.351194 0.211745 -v -3.709827 1.417763 0.000000 -v -3.601668 1.293049 0.000000 -v -3.701634 1.272650 0.270469 -v -3.695872 1.156978 0.316829 -v -3.608593 1.163581 0.000000 -v -3.672431 1.044224 0.364991 -v -3.622326 1.005378 0.000000 -f 3441 3438 3440 -f 3438 3439 3440 -f 3443 3444 3442 -f 3442 3444 3445 -f 3447 3448 3446 -f 3446 3448 3449 -f 3446 3449 3450 -f 3450 3449 3451 -f 3450 3451 3443 -f 3443 3451 3452 -f 3443 3452 3444 -f 3440 3453 3445 -f 3445 3453 3442 -f 3448 3447 3454 -f 3454 3447 3455 -f 3454 3455 3456 -f 3456 3455 3457 -f 3458 3456 3459 -f 3456 3457 3459 -f 3439 3458 3460 -f 3458 3459 3460 -f 3439 3460 3440 -f 3440 3460 3453 -f 3462 3463 3461 -f 3461 3463 3464 -f 3466 3467 3465 -f 3465 3467 3468 -f 3464 3463 3468 -f 3463 3465 3468 -f 3467 3469 3470 -f 3472 3473 3471 -f 3471 3473 3474 -f 3475 3471 3476 -f 3471 3474 3476 -f 3478 3477 3476 -f 3477 3475 3476 -f 3477 3478 3479 -f 3479 3478 3480 -f 3480 3470 3479 -f 3469 3479 3470 -f 3472 3482 3473 -f 3481 3473 3482 -f 3483 3484 3485 -f 3486 3483 3485 -f 3487 3486 3488 -f 3486 3485 3488 -f 3489 3487 3490 -f 3487 3488 3490 -f 3489 3490 3472 -f 3472 3490 3482 -v -3.676450 -0.551317 0.077574 -v -3.740631 -0.558176 0.085478 -v -3.729470 -0.869371 0.096946 -v -3.699784 -0.759901 0.088664 -v -3.697889 -0.951955 0.098793 -v -3.733767 -1.141917 0.111139 -v -3.666536 -1.140372 0.078261 -v -3.743747 -1.367219 0.100951 -v -3.639696 -1.242349 0.057190 -v -3.823638 -1.557534 0.081533 -v -3.581963 -1.413947 -0.104371 -v -3.683069 -1.591975 -0.115233 -v -3.890388 -1.750102 0.017612 -v -3.828485 -1.786559 -0.114095 -v -3.778908 -0.541975 0.064258 -v -3.805841 -0.798961 0.099237 -v -3.843256 -0.981402 0.116282 -v -3.884588 -1.261469 0.148322 -v -3.914006 -1.486854 0.149147 -v -4.015306 -1.659952 0.130331 -v -4.107191 -1.836520 0.120149 -v -3.818598 -0.522690 0.055572 -v -3.900964 -0.780883 0.091579 -v -3.949814 -0.963797 0.140806 -v -3.974499 -1.169600 0.164243 -v -4.018866 -1.413191 0.154149 -v -4.154334 -1.677827 0.165852 -v -4.207566 -1.922824 0.155104 -v -3.896204 -0.629183 0.077883 -v -3.978115 -0.823440 0.099280 -v -4.029726 -1.043238 0.136305 -v -4.129295 -1.228786 0.120745 -v -4.184154 -1.598080 0.151191 -v -4.297769 -1.889903 0.177707 -v -3.932489 -0.556566 0.037354 -v -4.070739 -0.947648 0.110554 -v -4.227645 -1.227895 0.069894 -v -4.229164 -1.473093 0.111560 -v -4.309744 -1.743848 0.150329 -v -4.405365 -1.921443 0.192978 -v -3.975337 -0.554961 -0.014407 -v -4.112449 -0.875765 0.016326 -v -4.233834 -1.166542 0.022074 -v -4.333831 -1.548255 0.056938 -v -4.424122 -1.831742 0.130839 -v -4.445835 -2.015127 0.189702 -v -3.921874 -0.538502 -0.145307 -v -4.042715 -0.876710 -0.168968 -v -4.216296 -1.160854 -0.104034 -v -4.252683 -1.437854 -0.145620 -v -4.331331 -1.692590 -0.043593 -v -4.387148 -1.967814 0.045602 -v -3.910546 -0.601719 -0.163159 -v -3.988138 -0.962789 -0.223649 -v -4.111927 -1.333141 -0.267160 -v -4.201904 -1.668554 -0.214859 -v -4.273069 -1.798884 -0.099878 -v -4.351543 -1.947675 0.025020 -v -3.873622 -0.759035 -0.197169 -v -3.917882 -1.082831 -0.289171 -v -4.001496 -1.375703 -0.285641 -v -4.073086 -1.649491 -0.238382 -v -4.175757 -1.808223 -0.140659 -v -4.321269 -1.963488 0.025072 -v -3.742608 -0.729374 -0.149361 -v -3.777709 -1.051411 -0.240495 -v -3.820370 -1.239135 -0.269807 -v -4.000019 -1.567512 -0.275350 -v -3.977657 -1.750845 -0.184909 -v -4.075028 -1.904403 -0.041324 -v -4.192486 -1.953852 0.017313 -f 3491 3492 3493 -f 3491 3493 3494 -f 3494 3493 3495 -f 3495 3493 3496 -f 3495 3496 3497 -f 3497 3496 3498 -f 3497 3498 3499 -f 3499 3498 3500 -f 3499 3500 3501 -f 3501 3500 3502 -f 3502 3500 3503 -f 3502 3503 3504 -f 3492 3505 3493 -f 3505 3506 3493 -f 3493 3506 3496 -f 3506 3507 3496 -f 3507 3508 3496 -f 3496 3508 3498 -f 3508 3509 3498 -f 3498 3509 3500 -f 3509 3510 3500 -f 3500 3510 3503 -f 3510 3511 3503 -f 3505 3512 3513 -f 3505 3513 3506 -f 3506 3513 3514 -f 3506 3514 3507 -f 3507 3514 3515 -f 3507 3515 3508 -f 3508 3515 3516 -f 3508 3516 3509 -f 3509 3516 3517 -f 3509 3517 3510 -f 3510 3517 3518 -f 3510 3518 3511 -f 3512 3519 3520 -f 3512 3520 3513 -f 3513 3520 3521 -f 3513 3521 3514 -f 3514 3521 3515 -f 3515 3521 3522 -f 3515 3522 3516 -f 3516 3522 3523 -f 3516 3523 3517 -f 3517 3523 3524 -f 3517 3524 3518 -f 3519 3525 3526 -f 3519 3526 3520 -f 3520 3526 3527 -f 3520 3527 3521 -f 3521 3527 3528 -f 3521 3528 3522 -f 3522 3528 3529 -f 3522 3529 3523 -f 3523 3529 3530 -f 3523 3530 3524 -f 3525 3531 3532 -f 3525 3532 3526 -f 3526 3532 3533 -f 3526 3533 3527 -f 3527 3533 3534 -f 3527 3534 3528 -f 3528 3534 3535 -f 3528 3535 3529 -f 3529 3535 3536 -f 3529 3536 3530 -f 3531 3537 3538 -f 3531 3538 3532 -f 3532 3538 3539 -f 3532 3539 3533 -f 3533 3539 3540 -f 3533 3540 3534 -f 3534 3540 3541 -f 3534 3541 3535 -f 3535 3541 3542 -f 3535 3542 3536 -f 3537 3543 3544 -f 3537 3544 3538 -f 3538 3544 3545 -f 3538 3545 3539 -f 3539 3545 3546 -f 3539 3546 3540 -f 3540 3546 3547 -f 3540 3547 3541 -f 3541 3547 3548 -f 3541 3548 3542 -f 3543 3549 3550 -f 3543 3550 3544 -f 3544 3550 3551 -f 3544 3551 3545 -f 3545 3551 3552 -f 3545 3552 3546 -f 3546 3552 3553 -f 3546 3553 3547 -f 3547 3553 3554 -f 3547 3554 3548 -f 3549 3555 3550 -f 3555 3556 3550 -f 3550 3556 3551 -f 3556 3557 3551 -f 3557 3558 3551 -f 3551 3558 3552 -f 3558 3559 3552 -f 3552 3559 3553 -f 3559 3560 3553 -f 3553 3560 3554 -f 3560 3561 3554 -v -3.860740 -0.188349 -0.024962 -v -3.845990 -0.188820 0.019164 -v -3.817430 0.150343 0.048629 -v -3.828633 0.149083 0.000000 -v -3.844470 0.498176 0.053132 -v -3.856649 0.496801 0.000000 -v -3.887340 1.003866 0.057635 -v -3.900566 1.002504 0.000000 -v -3.860820 1.479723 0.062137 -v -3.875140 1.480358 0.000000 -v -3.698925 1.787941 0.066640 -v -3.712832 1.794492 0.000000 -v -3.469715 1.961504 0.071141 -v -3.478430 1.975409 0.000000 -v -3.238225 2.005405 0.075645 -v -3.242148 2.021387 0.000000 -v -3.805688 -0.190106 0.051472 -v -3.786822 0.153783 0.084233 -v -3.811194 0.501935 0.092033 -v -3.851206 1.007586 0.099831 -v -3.821694 1.477989 0.107631 -v -3.660928 1.770041 0.115431 -v -3.445903 1.923509 0.123229 -v -3.227504 1.961738 0.131029 -v -3.750630 -0.191863 0.063305 -v -3.745007 0.158482 0.097274 -v -3.765736 0.507070 0.106281 -v -3.801840 1.012668 0.115288 -v -3.768245 1.475619 0.124295 -v -3.609021 1.745588 0.133304 -v -3.413372 1.871604 0.142309 -v -3.695565 -0.193620 0.051497 -v -3.703185 0.163182 0.084262 -v -3.720269 0.512205 0.092064 -v -3.752468 1.017751 0.099865 -v -3.714787 1.473248 0.107668 -v -3.557104 1.721130 0.115470 -v -3.380836 1.819691 0.123273 -v -3.655240 -0.194907 0.019209 -v -3.672559 0.166625 0.048678 -v -3.686972 0.515966 0.053185 -v -3.716312 1.021474 0.057693 -v -3.675638 1.471512 0.062201 -v -3.519086 1.703220 0.066709 -v -3.357009 1.781675 0.071216 -v -3.640457 -0.195379 -0.024909 -v -3.661331 0.167886 0.000058 -v -3.674766 0.517345 -0.000063 -v -3.703058 1.022838 -0.000069 -v -3.661286 1.470876 -0.000074 -v -3.507689 1.700214 0.000000 -v -3.348274 1.767738 -0.000085 -v -3.655175 -0.194909 -0.069044 -v -3.672510 0.166630 -0.048579 -v -3.686972 0.515966 -0.053185 -v -3.695452 -0.193624 -0.101369 -v -3.703099 0.163192 -0.084205 -v -3.720269 0.512205 -0.092064 -v -3.750500 -0.191867 -0.113230 -v -3.744907 0.158493 -0.097274 -v -3.765736 0.507070 -0.106281 -v -3.805575 -0.190109 -0.101447 -v -3.786736 0.153792 -0.084291 -v -3.811194 0.501935 -0.092033 -v -3.845923 -0.188822 -0.069180 -v -3.817381 0.150348 -0.048728 -v -3.844470 0.498176 -0.053132 -f 3564 3565 3563 -f 3562 3563 3565 -f 3564 3566 3565 -f 3565 3566 3567 -f 3567 3566 3569 -f 3566 3568 3569 -f 3569 3568 3571 -f 3568 3570 3571 -f 3573 3571 3572 -f 3571 3570 3572 -f 3573 3572 3575 -f 3572 3574 3575 -f 3575 3574 3577 -f 3574 3576 3577 -f 3578 3579 3563 -f 3563 3579 3564 -f 3579 3580 3564 -f 3564 3580 3566 -f 3566 3580 3568 -f 3580 3581 3568 -f 3568 3581 3570 -f 3581 3582 3570 -f 3570 3582 3572 -f 3582 3583 3572 -f 3572 3583 3574 -f 3583 3584 3574 -f 3576 3574 3585 -f 3574 3584 3585 -f 3586 3587 3578 -f 3578 3587 3579 -f 3587 3588 3579 -f 3579 3588 3580 -f 3580 3588 3581 -f 3588 3589 3581 -f 3581 3589 3582 -f 3589 3590 3582 -f 3583 3582 3591 -f 3582 3590 3591 -f 3584 3583 3592 -f 3583 3591 3592 -f 3584 3592 3585 -f 3594 3587 3593 -f 3586 3593 3587 -f 3587 3594 3588 -f 3594 3595 3588 -f 3588 3595 3589 -f 3595 3596 3589 -f 3589 3596 3590 -f 3596 3597 3590 -f 3590 3597 3591 -f 3597 3598 3591 -f 3592 3591 3599 -f 3591 3598 3599 -f 3601 3594 3600 -f 3593 3600 3594 -f 3602 3595 3601 -f 3594 3601 3595 -f 3595 3602 3596 -f 3602 3603 3596 -f 3596 3603 3597 -f 3603 3604 3597 -f 3597 3604 3598 -f 3604 3605 3598 -f 3598 3605 3599 -f 3605 3606 3599 -f 3607 3608 3600 -f 3600 3608 3601 -f 3601 3608 3602 -f 3608 3609 3602 -f 3602 3609 3603 -f 3609 3610 3603 -f 3603 3610 3604 -f 3610 3611 3604 -f 3604 3611 3605 -f 3611 3612 3605 -f 3606 3605 3613 -f 3605 3612 3613 -f 3608 3607 3615 -f 3607 3614 3615 -f 3615 3616 3608 -f 3608 3616 3609 -f 3615 3614 3618 -f 3614 3617 3618 -f 3616 3615 3619 -f 3615 3618 3619 -f 3618 3617 3621 -f 3617 3620 3621 -f 3621 3622 3618 -f 3618 3622 3619 -f 3620 3623 3621 -f 3623 3624 3621 -f 3621 3624 3622 -f 3624 3625 3622 -f 3623 3626 3624 -f 3626 3627 3624 -f 3624 3627 3625 -f 3627 3628 3625 -f 3626 3562 3627 -f 3562 3565 3627 -f 3627 3565 3628 -f 3565 3567 3628 -v -3.655240 -0.194907 0.019209 -v -3.695565 -0.193620 0.051497 -v -3.740631 -0.558176 0.085478 -v -3.676450 -0.551317 0.077574 -v -3.805688 -0.190106 0.051472 -v -3.975337 -0.554961 -0.014407 -v -3.932489 -0.556566 0.037354 -v -3.896204 -0.629183 0.077883 -v -3.818598 -0.522690 0.055572 -v -3.750630 -0.191863 0.063305 -v -3.778908 -0.541975 0.064258 -v -3.845990 -0.188820 0.019164 -v -3.860740 -0.188349 -0.024962 -v -3.695452 -0.193624 -0.101369 -v -3.742608 -0.729374 -0.149361 -v -3.873622 -0.759035 -0.197169 -v -3.750500 -0.191867 -0.113230 -v -3.805575 -0.190109 -0.101447 -v -3.910546 -0.601719 -0.163159 -v -3.921874 -0.538502 -0.145307 -v -3.845923 -0.188822 -0.069180 -v -3.655175 -0.194909 -0.069044 -v -3.640457 -0.195379 -0.024909 -v -3.569386 -0.761644 -0.035893 -v -3.697889 -0.951955 0.098793 -v -3.666536 -1.140372 0.078261 -v -3.820370 -1.239135 -0.269807 -v -3.777709 -1.051411 -0.240495 -v -3.581963 -1.413947 -0.104371 -v -3.639696 -1.242349 0.057190 -v -3.977657 -1.750845 -0.184909 -v -3.890388 -1.750102 0.017612 -v -4.075028 -1.904403 -0.041324 -v -4.000019 -1.567512 -0.275350 -v -3.683069 -1.591975 -0.115233 -v -3.828485 -1.786559 -0.114095 -v -4.107191 -1.836520 0.120149 -v -4.207566 -1.922824 0.155104 -v -4.405365 -1.921443 0.192978 -v -4.387148 -1.967814 0.045602 -v -4.297769 -1.889903 0.177707 -v -4.192486 -1.953852 0.017313 -v -4.321269 -1.963488 0.025072 -v -4.351543 -1.947675 0.025020 -v -4.445835 -2.015127 0.189702 -f 3631 3632 3630 -f 3629 3630 3632 -f 3633 3634 3635 -f 3633 3635 3636 -f 3633 3636 3637 -f 3638 3633 3637 -f 3638 3637 3639 -f 3630 3639 3631 -f 3640 3641 3634 -f 3642 3643 3644 -f 3645 3642 3644 -f 3646 3645 3644 -f 3646 3644 3647 -f 3646 3647 3648 -f 3649 3646 3648 -f 3641 3648 3634 -f 3643 3650 3651 -f 3643 3642 3650 -f 3629 3632 3652 -f 3652 3643 3651 -f 3632 3653 3654 -f 3655 3656 3657 -f 3652 3632 3654 -f 3652 3654 3658 -f 3652 3658 3657 -f 3643 3652 3657 -f 3656 3643 3657 -f 3659 3660 3661 -f 3659 3662 3655 -f 3655 3657 3663 -f 3655 3663 3664 -f 3655 3664 3660 -f 3659 3655 3660 -f 3660 3665 3661 -f 3665 3666 3661 -f 3667 3668 3669 -f 3670 3661 3666 -f 3670 3666 3669 -f 3671 3670 3669 -f 3672 3671 3669 -f 3668 3672 3669 -f 3667 3673 3668 -f 3630 3638 3639 -f 3633 3640 3634 -f 3641 3649 3648 -f 3652 3651 3629 -v -3.413372 1.871604 0.142309 -v -3.077669 1.871112 0.217368 -v -3.227504 1.961738 0.131029 -v -3.053102 1.968810 0.051104 -v -3.037562 2.001526 0.000000 -v -3.242148 2.021387 0.000000 -v -3.238225 2.005405 0.075645 -v -3.358510 1.810253 0.380095 -v -3.075310 1.846000 0.363149 -f 3674 3675 3676 -f 3679 3680 3678 -f 3677 3678 3680 -f 3677 3680 3676 -f 3675 3677 3676 -f 3674 3681 3675 -f 3681 3682 3675 -v -1.936032 -1.829617 0.488916 -v -1.971059 -1.992958 0.500845 -v -1.933565 -1.993029 0.438902 -v -1.883160 -1.829718 0.401567 -v -2.027242 -1.813012 0.555232 -v -2.035740 -1.981182 0.547873 -v -2.126375 -1.866497 0.502895 -v -2.106039 -2.019111 0.510759 -v -2.176551 -1.873816 0.445782 -v -2.141621 -2.024301 0.470257 -v -2.147113 -1.903198 0.362462 -v -2.120746 -2.045137 0.411171 -v -2.062725 -1.884246 0.307336 -v -2.060902 -2.031698 0.372079 -v -1.946306 -1.872735 0.344251 -v -1.978344 -2.023535 0.398257 -v -2.466779 -1.857679 0.570461 -v -2.513608 -2.012858 0.558673 -v -2.499138 -2.038090 0.504529 -v -2.446375 -1.893261 0.494110 -v -2.547737 -1.833025 0.609321 -v -2.571019 -1.995375 0.586230 -v -2.647220 -1.844010 0.594347 -v -2.641567 -2.003164 0.575611 -v -2.699966 -1.850397 0.570070 -v -2.678971 -2.007694 0.558395 -v -2.709403 -1.879947 0.508775 -v -2.685663 -2.028649 0.514928 -v -2.684452 -1.891207 0.447388 -v -2.667969 -2.036634 0.471396 -v -2.614084 -1.905005 0.404925 -v -2.618068 -2.046419 0.441284 -v -2.503818 -1.909806 0.431456 -v -2.539874 -2.049824 0.460098 -v -1.985123 -2.116661 0.394256 -v -2.065655 -2.124623 0.368720 -v -2.124030 -2.137733 0.406853 -v -2.144393 -2.117408 0.464489 -v -2.109684 -2.112345 0.503997 -v -2.041110 -2.075348 0.540201 -v -1.978016 -2.086834 0.494327 -v -1.941442 -2.086904 0.433904 -v -2.513187 -2.130859 0.497920 -v -2.552923 -2.142304 0.454579 -v -2.629199 -2.138983 0.436227 -v -2.677875 -2.129439 0.465600 -v -2.695135 -2.121650 0.508064 -v -2.688607 -2.101208 0.550465 -v -2.652120 -2.096790 0.567258 -v -2.583303 -2.089191 0.577616 -v -2.527301 -2.106246 0.550735 -v -2.048681 -2.165282 0.450843 -v -2.603284 -2.176802 0.510638 -f 3686 3683 3685 -f 3683 3684 3685 -f 3687 3688 3683 -f 3688 3684 3683 -f 3687 3689 3688 -f 3689 3690 3688 -f 3691 3692 3689 -f 3692 3690 3689 -f 3691 3693 3692 -f 3693 3694 3692 -f 3695 3696 3693 -f 3696 3694 3693 -f 3695 3697 3696 -f 3697 3698 3696 -f 3686 3685 3697 -f 3685 3698 3697 -f 3702 3699 3701 -f 3699 3700 3701 -f 3703 3704 3699 -f 3704 3700 3699 -f 3703 3705 3704 -f 3705 3706 3704 -f 3707 3708 3705 -f 3708 3706 3705 -f 3707 3709 3708 -f 3709 3710 3708 -f 3709 3711 3710 -f 3711 3712 3710 -f 3711 3713 3712 -f 3713 3714 3712 -f 3715 3716 3713 -f 3716 3714 3713 -f 3702 3701 3715 -f 3701 3716 3715 -f 3698 3717 3696 -f 3717 3718 3696 -f 3696 3718 3694 -f 3718 3719 3694 -f 3719 3720 3694 -f 3694 3720 3692 -f 3720 3721 3692 -f 3692 3721 3690 -f 3688 3690 3722 -f 3690 3721 3722 -f 3722 3723 3688 -f 3688 3723 3684 -f 3684 3723 3685 -f 3723 3724 3685 -f 3685 3724 3698 -f 3724 3717 3698 -f 3701 3725 3716 -f 3725 3726 3716 -f 3716 3726 3714 -f 3726 3727 3714 -f 3712 3714 3728 -f 3714 3727 3728 -f 3710 3712 3729 -f 3712 3728 3729 -f 3729 3730 3710 -f 3710 3730 3708 -f 3730 3731 3708 -f 3708 3731 3706 -f 3706 3731 3704 -f 3731 3732 3704 -f 3732 3733 3704 -f 3704 3733 3700 -f 3700 3733 3701 -f 3733 3725 3701 -f 3734 3724 3723 -f 3734 3723 3722 -f 3734 3722 3721 -f 3734 3721 3720 -f 3734 3720 3719 -f 3734 3719 3718 -f 3734 3718 3717 -f 3734 3717 3724 -f 3735 3725 3733 -f 3735 3733 3732 -f 3735 3732 3731 -f 3735 3731 3730 -f 3735 3730 3729 -f 3735 3729 3728 -f 3735 3728 3727 -f 3735 3727 3726 -f 3735 3726 3725 -v 4.925499 1.917814 0.613413 -v 4.953403 1.907939 0.605609 -v 4.971872 1.924079 0.586026 -v 4.953739 1.952580 0.592256 -v 4.925394 1.955229 0.618837 -v 4.897808 1.946794 0.628057 -v 5.001903 1.914398 0.486724 -v 4.973133 1.992779 0.533466 -v 4.982364 1.873300 0.536190 -v 4.926194 1.859813 0.582137 -v 4.852578 1.889721 0.605031 -v 4.824747 1.946835 0.626358 -v 4.861611 2.001639 0.621913 -v 4.935561 2.016016 0.585700 -f 3741 3736 3740 -f 3740 3736 3739 -f 3736 3737 3739 -f 3737 3738 3739 -f 3739 3738 3743 -f 3738 3742 3743 -f 3742 3738 3744 -f 3737 3744 3738 -f 3745 3744 3737 -f 3746 3745 3736 -f 3745 3737 3736 -f 3747 3746 3741 -f 3746 3736 3741 -f 3748 3747 3741 -f 3743 3749 3739 -f 3740 3739 3749 -v 4.861618 1.854067 0.618095 -v 4.852578 1.889721 0.605031 -v 4.824747 1.946835 0.626358 -v 4.760921 1.881357 0.613120 -v 4.935561 2.016016 0.585700 -v 4.935880 2.051665 0.572853 -v 4.842883 2.021333 0.638025 -v 4.861611 2.001639 0.621913 -v 4.973133 1.992779 0.533466 -v 5.001903 1.914398 0.486724 -v 4.991746 2.009819 0.523206 -v 4.944706 1.840663 0.575374 -v 4.926194 1.859813 0.582137 -v 4.991709 1.844295 0.520761 -v 4.982364 1.873300 0.536190 -v 4.852582 1.816115 0.603105 -v 4.908019 1.796041 0.587882 -v 4.963546 1.783161 0.553515 -v 4.983034 1.806343 0.505779 -v 5.011430 1.875569 0.463205 -v 4.964945 2.053575 0.499903 -v 4.918466 2.084725 0.532713 -v 5.020077 1.978170 0.480978 -v 4.881574 2.094571 0.539949 -v 4.825996 2.089176 0.576083 -v 4.788476 2.028047 0.608619 -v 4.798297 2.118191 0.591085 -v 4.751519 2.039658 0.634134 -v 4.872539 2.159259 0.542891 -v 4.927885 2.156560 0.516579 -v 5.002440 2.105746 0.468233 -v 5.057495 2.002751 0.451974 -v 5.075994 1.900999 0.443793 -v 5.030289 1.827419 0.440803 -v 4.991904 1.760829 0.510386 -v 4.936066 1.737668 0.557276 -v 4.871155 1.741238 0.592326 -v 4.816181 1.797860 0.604026 -v 5.085813 1.888503 0.408327 -v 5.095375 1.961238 0.401516 -v 5.058179 1.788186 0.417387 -v 5.019836 1.739907 0.485562 -v 4.917973 1.681480 0.544201 -v 4.862636 1.684144 0.570155 -v 4.752337 1.723388 0.591296 -v 4.697607 1.768061 0.576663 -v 5.067202 2.027704 0.422291 -v 5.030641 2.102197 0.432329 -v 4.937950 2.181155 0.486939 -v 4.881855 2.194544 0.530288 -v 4.807794 2.143653 0.570393 -v 4.728963 2.036146 0.614307 -v 4.742358 1.882232 0.621650 -v 4.688114 2.046378 0.604518 -v 4.744050 2.179337 0.556057 -v 4.837331 2.235678 0.479332 -v 4.893850 2.220523 0.417713 -v 4.995978 2.148785 0.344534 -v 5.060840 2.053335 0.309324 -v 5.097062 1.954206 0.328795 -v 5.105589 1.864086 0.347113 -v 4.697024 1.862575 0.604048 -v 4.832890 2.262727 0.283787 -v 4.739441 2.299169 0.369987 -v 4.971394 2.146686 0.224781 -v 5.072165 2.043630 0.209228 -v 5.127157 1.942759 0.211214 -v 5.152698 1.830661 0.287042 -v 5.133171 1.715563 0.334258 -v 5.103427 1.624404 0.434275 -v 4.982822 1.503071 0.507606 -v 4.927282 1.486953 0.526327 -v 4.798410 1.473149 0.570618 -v 4.715646 1.502195 0.584339 -v 4.615408 1.639641 0.577768 -v 4.560751 1.785154 0.562428 -v 4.551484 1.841749 0.575191 -v 4.533113 1.989009 0.578975 -v 4.561299 2.133066 0.547248 -v 4.636582 2.263383 0.471997 -v 5.049690 2.032731 0.000071 -v 4.912303 2.162645 -0.000090 -v 5.156645 1.942902 0.119993 -v 5.218821 1.803552 0.199306 -v 5.216855 1.636645 0.279797 -v 5.233176 1.442459 0.362988 -v 4.596478 1.512987 0.598982 -v 4.679116 1.438434 0.589658 -v 4.560024 1.604023 0.589333 -v 4.477781 1.687858 0.597407 -v 4.459682 1.778884 0.588185 -v 4.432610 1.878873 0.577888 -v 4.433020 2.024714 0.563794 -v 4.747988 2.300163 -0.000276 -v 4.634996 2.369115 0.140117 -v 4.577573 2.389535 0.256196 -v 4.472349 2.325133 0.443764 -v 4.389484 2.190421 0.473320 -v 5.223191 1.371491 0.388069 -v 5.158322 1.236770 0.418043 -v 4.955360 1.236724 0.505230 -v 4.761601 1.363013 0.571370 -v 5.321136 1.795562 0.119606 -v 5.177545 1.932323 0.000214 -v 5.378289 1.768448 0.000441 -v 5.421809 1.685349 0.123555 -v 5.424281 1.721152 0.000496 -v 5.383208 1.619661 0.202452 -v 5.373133 1.541142 0.246712 -v 5.334328 1.402713 0.332639 -v 5.296963 1.322443 0.357984 -v 5.260653 1.184173 0.352062 -v 5.250485 1.123029 0.385234 -v 4.991713 1.163096 0.504149 -v 4.733657 1.227371 0.592883 -v 4.641547 1.285422 0.622034 -v 4.522247 1.398278 0.644892 -v 4.430999 1.535753 0.638888 -v 4.404221 1.662433 0.616610 -v 4.386380 1.770868 0.596666 -v 4.377095 1.871713 0.595743 -v 5.604888 1.546091 0.113773 -v 5.588763 1.573846 0.000686 -v 5.566339 1.498677 0.190905 -v 5.528186 1.440180 0.250666 -v 5.471928 1.345179 0.313899 -v 5.425783 1.264372 0.329687 -v 5.397967 1.174238 0.346802 -v 5.388455 1.119419 0.351883 -v 5.685194 1.452202 0.188749 -v 5.730427 1.435668 0.209848 -v 5.741781 1.463956 0.124891 -v 5.687035 1.499636 0.110765 -v 5.647186 1.394606 0.257833 -v 5.608974 1.317869 0.319719 -v 5.710154 1.360653 0.290072 -v 5.563253 1.235295 0.317238 -v 5.681726 1.282503 0.333871 -v 5.580797 1.174135 0.351054 -v 5.672187 1.164767 0.354080 -v 5.680007 1.510009 0.000786 -v 5.479630 1.111310 0.364188 -v 5.813217 1.415581 0.195261 -v 5.886832 1.385674 0.172365 -v 5.915025 1.382159 0.136820 -v 5.842092 1.427708 0.130724 -v 5.979357 1.325532 0.125337 -v 5.963117 1.307775 0.001098 -v 5.908842 1.388968 0.001026 -v 5.941384 1.330818 0.178936 -v 5.835498 1.436280 0.000946 -v 5.743997 1.482739 0.000851 -v 5.783731 1.341471 0.284590 -v 5.847989 1.311569 0.261476 -v 5.931474 1.233483 0.215613 -v 5.998088 1.231874 0.107334 -v 5.963527 1.232407 0.001121 -v 5.961686 1.110978 0.090324 -v 5.927110 1.131195 0.001118 -v 5.934596 1.054796 0.077039 -v 5.908782 1.066916 0.001121 -f 3750 3751 3753 -f 3751 3752 3753 -f 3755 3756 3754 -f 3754 3756 3757 -f 3758 3759 3760 -f 3761 3762 3750 -f 3751 3750 3762 -f 3762 3761 3764 -f 3761 3763 3764 -f 3761 3750 3766 -f 3765 3766 3750 -f 3763 3761 3767 -f 3766 3767 3761 -f 3767 3768 3763 -f 3768 3769 3763 -f 3760 3770 3755 -f 3755 3770 3771 -f 3760 3772 3770 -f 3769 3772 3760 -f 3755 3773 3756 -f 3773 3774 3756 -f 3753 3756 3775 -f 3775 3756 3774 -f 3777 3775 3776 -f 3775 3774 3776 -f 3776 3774 3778 -f 3774 3773 3778 -f 3779 3778 3771 -f 3773 3771 3778 -f 3779 3771 3780 -f 3771 3770 3780 -f 3781 3780 3772 -f 3770 3772 3780 -f 3769 3782 3772 -f 3772 3782 3781 -f 3769 3783 3782 -f 3784 3783 3768 -f 3768 3783 3769 -f 3785 3784 3767 -f 3767 3784 3768 -f 3786 3785 3766 -f 3785 3767 3766 -f 3787 3786 3765 -f 3786 3766 3765 -f 3787 3765 3753 -f 3788 3789 3782 -f 3788 3782 3790 -f 3783 3790 3782 -f 3784 3791 3783 -f 3791 3790 3783 -f 3792 3791 3785 -f 3785 3791 3784 -f 3785 3786 3792 -f 3793 3792 3786 -f 3794 3793 3787 -f 3793 3786 3787 -f 3753 3795 3787 -f 3795 3794 3787 -f 3781 3796 3780 -f 3796 3797 3780 -f 3797 3798 3780 -f 3779 3780 3798 -f 3798 3799 3779 -f 3778 3779 3799 -f 3776 3778 3800 -f 3800 3778 3799 -f 3800 3801 3776 -f 3801 3777 3776 -f 3777 3801 3753 -f 3753 3801 3802 -f 3795 3753 3802 -f 3804 3803 3800 -f 3803 3801 3800 -f 3805 3804 3799 -f 3800 3799 3804 -f 3806 3805 3798 -f 3799 3798 3805 -f 3807 3806 3797 -f 3798 3797 3806 -f 3807 3797 3808 -f 3797 3796 3808 -f 3808 3796 3809 -f 3796 3789 3809 -f 3809 3789 3810 -f 3788 3810 3789 -f 3790 3810 3788 -f 3795 3802 3811 -f 3812 3813 3806 -f 3806 3813 3805 -f 3814 3812 3807 -f 3806 3807 3812 -f 3814 3807 3815 -f 3807 3808 3815 -f 3809 3816 3808 -f 3808 3816 3815 -f 3816 3809 3817 -f 3809 3810 3817 -f 3790 3818 3810 -f 3818 3817 3810 -f 3818 3790 3819 -f 3791 3819 3790 -f 3820 3819 3792 -f 3792 3819 3791 -f 3793 3821 3792 -f 3821 3820 3792 -f 3822 3821 3793 -f 3794 3823 3793 -f 3823 3822 3793 -f 3823 3794 3824 -f 3824 3794 3795 -f 3824 3795 3825 -f 3825 3795 3811 -f 3825 3811 3826 -f 3811 3803 3826 -f 3826 3803 3827 -f 3829 3828 3804 -f 3828 3803 3804 -f 3827 3803 3828 -f 3831 3814 3830 -f 3814 3815 3830 -f 3830 3815 3832 -f 3815 3816 3832 -f 3832 3816 3833 -f 3816 3817 3833 -f 3834 3833 3818 -f 3817 3818 3833 -f 3835 3834 3818 -f 3819 3835 3818 -f 3824 3836 3823 -f 3836 3837 3823 -f 3838 3836 3824 -f 3825 3839 3824 -f 3839 3838 3824 -f 3839 3825 3840 -f 3840 3825 3826 -f 3827 3841 3826 -f 3840 3826 3841 -f 3828 3842 3827 -f 3841 3827 3842 -f 3843 3844 3812 -f 3813 3812 3844 -f 3844 3845 3813 -f 3829 3813 3845 -f 3829 3845 3846 -f 3847 3828 3846 -f 3828 3829 3846 -f 3842 3828 3847 -f 3848 3835 3820 -f 3820 3835 3819 -f 3821 3849 3820 -f 3849 3848 3820 -f 3849 3821 3850 -f 3822 3850 3821 -f 3850 3822 3851 -f 3823 3851 3822 -f 3837 3851 3823 -f 3853 3832 3852 -f 3832 3833 3852 -f 3852 3854 3853 -f 3855 3856 3852 -f 3852 3856 3854 -f 3857 3855 3833 -f 3855 3852 3833 -f 3833 3834 3857 -f 3834 3858 3857 -f 3834 3835 3858 -f 3835 3859 3858 -f 3835 3848 3859 -f 3848 3860 3859 -f 3861 3860 3849 -f 3849 3860 3848 -f 3862 3861 3849 -f 3862 3849 3863 -f 3850 3863 3849 -f 3863 3850 3864 -f 3864 3850 3851 -f 3837 3865 3851 -f 3865 3864 3851 -f 3865 3837 3866 -f 3866 3837 3836 -f 3866 3836 3867 -f 3867 3836 3838 -f 3867 3838 3868 -f 3868 3838 3839 -f 3868 3839 3869 -f 3839 3840 3869 -f 3840 3841 3869 -f 3869 3841 3870 -f 3855 3871 3856 -f 3871 3872 3856 -f 3871 3855 3873 -f 3857 3873 3855 -f 3857 3858 3873 -f 3858 3874 3873 -f 3858 3859 3874 -f 3859 3875 3874 -f 3875 3859 3876 -f 3860 3876 3859 -f 3860 3861 3876 -f 3861 3877 3876 -f 3862 3878 3861 -f 3878 3877 3861 -f 3882 3879 3881 -f 3879 3880 3881 -f 3883 3884 3885 -f 3886 3887 3884 -f 3887 3885 3884 -f 3889 3887 3888 -f 3888 3887 3886 -f 3890 3872 3882 -f 3872 3871 3882 -f 3873 3879 3871 -f 3879 3882 3871 -f 3883 3879 3874 -f 3873 3874 3879 -f 3875 3884 3874 -f 3884 3883 3874 -f 3876 3886 3875 -f 3886 3884 3875 -f 3888 3886 3877 -f 3877 3886 3876 -f 3888 3877 3891 -f 3878 3891 3877 -f 3895 3892 3894 -f 3892 3893 3894 -f 3894 3896 3898 -f 3896 3897 3898 -f 3899 3896 3893 -f 3893 3896 3894 -f 3895 3900 3881 -f 3881 3900 3901 -f 3881 3880 3895 -f 3880 3892 3895 -f 3892 3880 3902 -f 3885 3902 3880 -f 3893 3892 3903 -f 3902 3903 3892 -f 3904 3899 3903 -f 3903 3899 3893 -f 3899 3905 3896 -f 3896 3905 3897 -f 3905 3906 3897 -f 3904 3905 3899 -f 3905 3907 3906 -f 3907 3908 3906 -f 3908 3907 3910 -f 3907 3909 3910 -v 5.934596 1.054796 0.077039 -v 5.897758 1.009309 0.080583 -v 5.871947 1.021428 0.001102 -v 5.908782 1.066916 0.001121 -v 5.923808 1.025283 0.153084 -v 5.878630 0.986485 0.128292 -f 3913 3914 3912 -f 3911 3912 3914 -f 3911 3915 3912 -f 3915 3916 3912 -v 5.950684 1.082725 0.175648 -v 5.923808 1.025283 0.153084 -v 5.934596 1.054796 0.077039 -v 5.961686 1.110978 0.090324 -v 5.763952 1.062109 0.338641 -v 5.755282 1.004149 0.307505 -v 5.857750 0.997026 0.236768 -v 5.884856 1.062202 0.249545 -v 5.800778 1.078596 0.319450 -v 5.959462 1.157227 0.187097 -v 5.912147 1.117911 0.254197 -f 3920 3917 3919 -f 3917 3918 3919 -f 3923 3924 3922 -f 3921 3922 3925 -f 3922 3924 3925 -f 3917 3926 3924 -f 3924 3926 3927 -f 3918 3917 3923 -f 3923 3917 3924 -v 5.857750 0.997026 0.236768 -v 5.757506 0.957900 0.210732 -v 5.878630 0.986485 0.128292 -v 5.923808 1.025283 0.153084 -v 5.674999 0.950754 0.227960 -v 5.755282 1.004149 0.307505 -f 3929 3930 3928 -f 3928 3930 3931 -f 3928 3933 3929 -f 3932 3929 3933 -v 5.884856 1.062202 0.249545 -v 5.912147 1.117911 0.254197 -v 5.837875 1.141493 0.305184 -v 5.800778 1.078596 0.319450 -v 5.773410 1.225861 0.323025 -v 5.672187 1.164767 0.354080 -v 5.764774 1.279824 0.308562 -v 5.681726 1.282503 0.333871 -v 5.783731 1.341471 0.284590 -v 5.710154 1.360653 0.290072 -f 3937 3934 3936 -f 3934 3935 3936 -f 3939 3937 3938 -f 3937 3936 3938 -f 3941 3939 3940 -f 3939 3938 3940 -f 3941 3940 3943 -f 3940 3942 3943 -v 5.912147 1.117911 0.254197 -v 5.959462 1.157227 0.187097 -v 5.895899 1.182730 0.164705 -v 5.837875 1.141493 0.305184 -v 5.849792 1.193480 0.181047 -v 5.764774 1.279824 0.308562 -v 5.773410 1.225861 0.323025 -v 5.840665 1.221942 0.187128 -v 5.803425 1.260787 0.210002 -v 5.783731 1.341471 0.284590 -v 5.847989 1.311569 0.261476 -v 5.931474 1.233483 0.215613 -v 5.998088 1.231874 0.107334 -v 5.573803 0.952578 0.243886 -v 5.674999 0.950754 0.227960 -v 5.755282 1.004149 0.307505 -v 5.672385 1.007694 0.341778 -v 5.580727 0.999330 0.349867 -v 5.535184 0.980180 0.341257 -f 3944 3945 3946 -f 3947 3944 3948 -f 3944 3946 3948 -f 3951 3952 3950 -f 3949 3950 3952 -f 3953 3949 3952 -f 3954 3953 3952 -f 3955 3954 3951 -f 3951 3954 3952 -f 3948 3955 3951 -f 3956 3955 3946 -f 3948 3946 3955 -f 3957 3958 3960 -f 3958 3959 3960 -f 3957 3960 3961 -f 3962 3957 3961 -v 5.681086 1.054964 0.355860 -v 5.763952 1.062109 0.338641 -v 5.690122 1.092917 0.370850 -v 5.800778 1.078596 0.319450 -v 5.672187 1.164767 0.354080 -v 5.598282 1.094735 0.386994 -v 5.580797 1.174135 0.351054 -v 5.479630 1.111310 0.364188 -v 5.470775 1.009574 0.355371 -v 5.580223 1.047470 0.372696 -v 5.580727 0.999330 0.349867 -v 5.672385 1.007694 0.341778 -v 5.535184 0.980180 0.341257 -v 5.425352 1.035967 0.342720 -v 5.388455 1.119419 0.351883 -v 5.434594 0.970412 0.330823 -v 5.480649 0.941387 0.316248 -v 5.379461 1.045817 0.349748 -v 5.370709 0.980272 0.337432 -v 5.373646 0.885375 0.208840 -f 3963 3964 3965 -f 3966 3967 3964 -f 3965 3964 3967 -f 3969 3968 3967 -f 3968 3965 3967 -f 3970 3968 3969 -f 3971 3968 3970 -f 3963 3965 3972 -f 3972 3965 3968 -f 3972 3973 3963 -f 3973 3974 3963 -f 3968 3971 3972 -f 3971 3975 3972 -f 3975 3973 3972 -f 3977 3976 3970 -f 3976 3971 3970 -f 3978 3971 3976 -f 3978 3975 3971 -f 3978 3979 3975 -f 3980 3976 3977 -f 3981 3978 3980 -f 3978 3976 3980 -f 3982 3979 3978 -f 3982 3978 3981 -v 5.546347 0.916044 0.246782 -v 5.638369 0.904402 0.222548 -v 5.674999 0.950754 0.227960 -v 5.573803 0.952578 0.243886 -v 5.748613 0.920490 0.205099 -v 5.757506 0.957900 0.210732 -f 3985 3986 3984 -f 3983 3984 3986 -f 3984 3987 3985 -f 3987 3988 3985 -v 5.373646 0.885375 0.208840 -v 5.511556 0.863525 0.177613 -v 5.546347 0.916044 0.246782 -v 5.480649 0.941387 0.316248 -v 5.603370 0.852748 0.162335 -v 5.638369 0.904402 0.222548 -v 5.704630 0.849158 0.128130 -v 5.748613 0.920490 0.205099 -v 5.241466 1.040469 0.383965 -v 5.379461 1.045817 0.349748 -v 5.388455 1.119419 0.351883 -v 5.250485 1.123029 0.385234 -v 5.223571 0.974029 0.362117 -v 5.370709 0.980272 0.337432 -v 5.299005 0.908991 0.260177 -v 5.197562 0.922406 0.302473 -f 3989 3990 3992 -f 3990 3991 3992 -f 3990 3993 3991 -f 3993 3994 3991 -f 3995 3996 3993 -f 3993 3996 3994 -f 3997 3998 4000 -f 3998 3999 4000 -f 4001 4002 3997 -f 4002 3998 3997 -f 4003 3989 4002 -f 4002 4001 4003 -f 4004 4003 4001 -v 5.757506 0.957900 0.210732 -v 5.748613 0.920490 0.205099 -v 5.851404 0.929008 0.105362 -v 5.878630 0.986485 0.128292 -v 5.897758 1.009309 0.080583 -v 5.836005 0.945722 0.001092 -v 5.871947 1.021428 0.001102 -f 4008 4005 4007 -f 4005 4006 4007 -f 4009 4010 4011 -f 4009 4008 4010 -f 4008 4007 4010 -v 5.851404 0.929008 0.105362 -v 5.797411 0.880032 0.072306 -v 5.780790 0.891286 0.001059 -v 5.836005 0.945722 0.001092 -v 5.748613 0.920490 0.205099 -v 5.704630 0.849158 0.128130 -v 5.679621 0.839500 0.000985 -v 5.568745 0.834653 0.071390 -v 5.579253 0.837796 0.000896 -v 5.603370 0.852748 0.162335 -v 5.449164 0.847535 0.103909 -v 5.137075 0.824518 0.144842 -v 5.112563 0.840686 0.000480 -v 5.213434 0.856784 0.000565 -v 5.247762 0.848549 0.108546 -v 5.511556 0.863525 0.177613 -v 5.356900 0.851120 0.138324 -v 5.373646 0.885375 0.208840 -v 5.264430 0.855571 0.181694 -v 5.323232 0.866039 0.000660 -v 5.469641 0.838722 0.000798 -v 5.299005 0.908991 0.260177 -v 5.153735 0.831575 0.218348 -v 5.197562 0.922406 0.302473 -v 4.963526 0.797382 0.143440 -v 4.920855 0.812339 0.000318 -v 4.996710 0.810560 0.280771 -v 4.669690 0.738163 0.188296 -v 4.712067 0.770512 0.333393 -v 4.655453 0.758022 0.000098 -v 5.004627 0.908637 0.345273 -v 4.728809 0.878731 0.405801 -v 5.021254 0.951308 0.405567 -v 5.223571 0.974029 0.362117 -v 5.241466 1.040469 0.383965 -v 5.011084 1.066770 0.458562 -v 4.743250 1.059210 0.563421 -v 4.991713 1.163096 0.504149 -v 4.733657 1.227371 0.592883 -v 4.744871 0.950945 0.491082 -v 4.567896 1.149805 0.642484 -v 4.641547 1.285422 0.622034 -v 4.496191 1.024566 0.579491 -v 4.416475 0.921264 0.458839 -v 4.297891 0.911506 0.447987 -v 4.399629 0.850459 0.391855 -v 4.333503 0.951176 0.481517 -v 4.359048 0.700414 0.166651 -v 4.380854 0.704574 -0.000130 -v 4.319799 0.731007 0.291212 -v 4.216374 0.852328 0.405873 -v 4.366867 1.131136 0.630581 -v 4.449011 1.260929 0.647431 -v 4.141189 1.008775 0.499342 -v 4.277227 1.077746 0.550819 -v 4.175444 1.350332 0.613988 -v 4.085564 1.288885 0.544406 -v 4.247733 1.381058 0.649596 -v 4.329607 1.464801 0.661485 -v 4.522247 1.398278 0.644892 -v 4.430999 1.535753 0.638888 -v 4.404221 1.662433 0.616610 -v 4.312225 1.683392 0.639944 -v 4.386380 1.770868 0.596666 -v 4.303615 1.799914 0.610388 -v 4.377095 1.871713 0.595743 -v 4.304562 1.906537 0.572242 -v 4.221814 1.660769 0.594090 -v 4.240116 1.770049 0.583946 -v 4.121121 1.614451 0.587188 -v 4.067576 1.572668 0.534997 -v 4.148883 1.759918 0.573765 -v 4.076852 1.746601 0.527436 -v 4.832890 2.262727 0.283787 -v 4.971394 2.146686 0.224781 -v 4.912303 2.162645 -0.000090 -v 4.747988 2.300163 -0.000276 -v 5.156645 1.942902 0.119993 -v 5.177545 1.932323 0.000214 -v 5.049690 2.032731 0.000071 -v 5.687035 1.499636 0.110765 -v 5.741781 1.463956 0.124891 -v 5.743997 1.482739 0.000851 -v 5.680007 1.510009 0.000786 -v 5.842092 1.427708 0.130724 -v 5.915025 1.382159 0.136820 -v 5.908842 1.388968 0.001026 -v 5.835498 1.436280 0.000946 -v 4.452383 2.524558 0.130255 -v 4.454962 2.523303 -0.000603 -v 4.317602 2.588926 -0.000745 -v 4.342351 2.581176 0.140317 -v 4.440143 2.510529 0.269164 -v 4.332083 2.586481 0.194917 -v 4.429895 2.495758 0.306894 -v 4.339601 2.592642 0.258891 -v 4.189883 2.606916 -0.000863 -v 4.187258 2.590221 0.135844 -v 4.203325 2.589186 0.219164 -v 4.211652 2.602538 0.264011 -v 4.328606 2.563996 0.343892 -v 4.209941 2.600612 0.337597 -v 4.410844 2.500167 0.351972 -f 4012 4013 4015 -f 4013 4014 4015 -f 4016 4017 4012 -f 4017 4013 4012 -f 4018 4014 4013 -f 4019 4018 4017 -f 4017 4018 4013 -f 4019 4020 4018 -f 4022 4019 4021 -f 4021 4019 4017 -f 4023 4024 4026 -f 4024 4025 4026 -f 4021 4027 4022 -f 4027 4028 4022 -f 4027 4029 4028 -f 4029 4030 4028 -f 4026 4025 4031 -f 4022 4032 4019 -f 4032 4020 4019 -f 4026 4031 4022 -f 4031 4032 4022 -f 4026 4022 4028 -f 4030 4026 4028 -f 4030 4029 4033 -f 4035 4034 4033 -f 4034 4030 4033 -f 4034 4023 4030 -f 4023 4026 4030 -f 4037 4024 4036 -f 4036 4024 4023 -f 4038 4036 4034 -f 4036 4023 4034 -f 4036 4038 4039 -f 4039 4038 4040 -f 4039 4041 4036 -f 4041 4037 4036 -f 4042 4038 4035 -f 4038 4034 4035 -f 4038 4042 4040 -f 4040 4042 4043 -f 4046 4047 4045 -f 4044 4045 4047 -f 4044 4042 4045 -f 4042 4035 4045 -f 4050 4048 4049 -f 4048 4047 4049 -f 4051 4044 4048 -f 4044 4047 4048 -f 4051 4043 4044 -f 4043 4042 4044 -f 4048 4050 4052 -f 4052 4050 4053 -f 4051 4048 4054 -f 4054 4048 4052 -f 4055 4043 4054 -f 4043 4051 4054 -f 4057 4055 4056 -f 4056 4055 4058 -f 4039 4059 4041 -f 4059 4060 4041 -f 4061 4059 4040 -f 4059 4039 4040 -f 4061 4040 4057 -f 4061 4057 4062 -f 4056 4062 4057 -f 4040 4043 4057 -f 4043 4055 4057 -f 4054 4052 4063 -f 4063 4052 4064 -f 4062 4056 4065 -f 4066 4065 4058 -f 4056 4058 4065 -f 4065 4066 4068 -f 4066 4067 4068 -f 4055 4054 4058 -f 4058 4054 4066 -f 4054 4063 4066 -f 4066 4063 4067 -f 4063 4069 4067 -f 4063 4064 4069 -f 4064 4070 4069 -f 4064 4071 4070 -f 4071 4072 4070 -f 4070 4072 4074 -f 4072 4073 4074 -f 4076 4074 4075 -f 4074 4073 4075 -f 4078 4076 4077 -f 4076 4075 4077 -f 4079 4074 4080 -f 4074 4076 4080 -f 4069 4070 4079 -f 4070 4074 4079 -f 4079 4081 4069 -f 4067 4069 4081 -f 4068 4067 4082 -f 4067 4081 4082 -f 4081 4079 4083 -f 4079 4080 4083 -f 4082 4081 4084 -f 4081 4083 4084 -f 4088 4085 4087 -f 4085 4086 4087 -f 4089 4090 4091 -f 4093 4094 4092 -f 4092 4094 4095 -f 4097 4098 4096 -f 4096 4098 4099 -f 4102 4103 4101 -f 4100 4101 4103 -f 4104 4100 4105 -f 4100 4103 4105 -f 4105 4107 4104 -f 4106 4104 4107 -f 4103 4102 4109 -f 4102 4108 4109 -f 4103 4109 4105 -f 4105 4109 4110 -f 4107 4105 4111 -f 4105 4110 4111 -f 4112 4107 4113 -f 4107 4111 4113 -f 4107 4112 4106 -f 4114 4106 4112 -v 4.344028 2.585635 0.470949 -v 4.328606 2.563996 0.343892 -v 4.209941 2.600612 0.337597 -v 4.224730 2.624525 0.491916 -v 4.407729 2.531640 0.486692 -v 4.410844 2.500167 0.351972 -v 4.359483 2.615839 0.596817 -v 4.277169 2.652435 0.591369 -v 4.423033 2.561337 0.603562 -v 4.411541 2.663824 0.713132 -v 4.356680 2.682996 0.719050 -v 4.476090 2.606654 0.692301 -v 4.465268 2.695425 0.757267 -v 4.418954 2.707401 0.782531 -v 4.520603 2.639162 0.745542 -v 4.546655 2.709095 0.803780 -v 4.509555 2.719807 0.819972 -v 4.574545 2.669863 0.780363 -f 4117 4118 4116 -f 4115 4116 4118 -f 4116 4115 4120 -f 4119 4120 4115 -f 4118 4122 4115 -f 4121 4115 4122 -f 4115 4121 4119 -f 4123 4119 4121 -f 4122 4125 4121 -f 4124 4121 4125 -f 4121 4124 4123 -f 4126 4123 4124 -f 4128 4127 4125 -f 4127 4124 4125 -f 4126 4124 4129 -f 4127 4129 4124 -f 4127 4128 4130 -f 4130 4128 4131 -f 4130 4132 4127 -f 4132 4129 4127 -v 4.634996 2.369115 0.140117 -v 4.747988 2.300163 -0.000276 -v 4.528082 2.467537 -0.000521 -v 4.577573 2.389535 0.256196 -v 4.454962 2.523303 -0.000603 -v 4.452383 2.524558 0.130255 -v 4.440143 2.510529 0.269164 -v 4.429895 2.495758 0.306894 -v 4.410844 2.500167 0.351972 -v 4.474318 2.418432 0.361347 -f 4133 4134 4135 -f 4136 4133 4138 -f 4133 4135 4138 -f 4135 4137 4138 -f 4136 4138 4139 -f 4136 4139 4140 -f 4140 4141 4142 -v 4.443850 2.449921 0.495432 -v 4.474318 2.418432 0.361347 -v 4.410844 2.500167 0.351972 -v 4.407729 2.531640 0.486692 -v 4.440760 2.490353 0.629287 -v 4.423033 2.561337 0.603562 -v 4.484667 2.534451 0.708888 -v 4.476090 2.606654 0.692301 -v 4.520165 2.557971 0.762427 -v 4.520603 2.639162 0.745542 -v 4.592620 2.569879 0.790452 -v 4.574545 2.669863 0.780363 -v 4.674691 2.598833 0.808006 -v 4.656565 2.680542 0.799684 -v 4.546655 2.709095 0.803780 -v 4.646703 2.728688 0.822295 -v 4.509555 2.719807 0.819972 -v 4.636909 2.750501 0.856859 -v 4.729447 2.606204 0.807513 -v 4.748031 2.683805 0.800044 -v 4.728931 2.721892 0.832625 -v 4.719171 2.751091 0.865965 -v 4.821336 2.621498 0.789636 -v 4.821325 2.691794 0.791887 -v 4.811798 2.728680 0.815406 -v 4.801436 2.750224 0.858918 -v 5.096148 2.759720 0.774729 -f 4144 4145 4143 -f 4143 4145 4146 -f 4147 4143 4148 -f 4143 4146 4148 -f 4148 4150 4147 -f 4149 4147 4150 -f 4152 4151 4150 -f 4151 4149 4150 -f 4154 4153 4152 -f 4153 4151 4152 -f 4153 4154 4155 -f 4155 4154 4156 -f 4157 4158 4154 -f 4156 4154 4158 -f 4159 4160 4157 -f 4158 4157 4160 -f 4156 4162 4155 -f 4161 4155 4162 -f 4156 4158 4162 -f 4162 4158 4163 -f 4164 4163 4160 -f 4163 4158 4160 -f 4161 4162 4165 -f 4165 4162 4166 -f 4167 4166 4163 -f 4166 4162 4163 -f 4168 4167 4164 -f 4167 4163 4164 -f 4167 4168 4169 -f 4166 4167 4169 -f 4165 4166 4169 -v 4.577573 2.389535 0.256196 -v 4.429895 2.495758 0.306894 -v 4.474318 2.418432 0.361347 -v 4.472349 2.325133 0.443764 -f 4170 4171 4172 -f 4173 4170 4172 -v 4.472349 2.325133 0.443764 -v 4.474318 2.418432 0.361347 -v 4.443850 2.449921 0.495432 -v 4.442912 2.343263 0.533220 -v 4.440760 2.490353 0.629287 -v 4.440713 2.398472 0.629128 -v 4.474625 2.465214 0.751890 -v 4.484667 2.534451 0.708888 -v 4.320630 2.385528 0.682583 -v 4.314039 2.329460 0.577510 -v 4.296769 2.260422 0.528796 -v 4.382053 2.433474 0.798757 -v 4.538177 2.513353 0.776566 -v 4.520165 2.557971 0.762427 -v 4.444739 2.475795 0.860515 -v 4.601515 2.533324 0.794193 -v 4.592620 2.569879 0.790452 -v 4.554459 2.511417 0.850571 -v 4.683344 2.554221 0.821927 -v 4.674691 2.598833 0.808006 -v 4.681847 2.551036 0.886235 -v 4.755192 2.568818 0.876311 -v 4.737893 2.564648 0.830389 -v 4.856249 2.593812 0.867067 -v 4.829566 2.580797 0.821827 -v 4.729447 2.606204 0.807513 -v 4.821336 2.621498 0.789636 -v 4.497719 2.547480 0.937659 -v 4.662221 2.556346 0.940618 -v 4.763337 2.590834 0.929248 -v 4.883022 2.613658 0.893163 -v 4.352603 2.524888 0.890532 -v 4.262798 2.490674 0.818316 -v 4.192789 2.411967 0.668016 -v 4.193959 2.370476 0.616705 -v 4.113935 2.334131 0.526471 -v 5.096148 2.759720 0.774729 -v 4.854957 2.660227 0.924310 -v 4.735139 2.645464 0.950890 -v 4.615662 2.633870 0.977986 -v 4.460582 2.622875 0.957002 -v 4.343217 2.589542 0.893106 -v 4.244622 2.554467 0.811726 -v 4.138687 2.474013 0.642311 -v 4.121994 2.458034 0.570029 -v 4.078510 2.411810 0.472193 -v 4.342998 2.664049 0.904347 -v 4.235494 2.636171 0.803613 -v 4.460786 2.695616 0.949972 -v 4.624800 2.708372 0.989445 -v 4.138494 2.557838 0.652651 -v 4.104292 2.537976 0.543437 -v 4.088356 2.510913 0.453793 -f 4175 4176 4174 -f 4174 4176 4177 -f 4176 4178 4177 -f 4177 4178 4179 -f 4179 4178 4180 -f 4180 4178 4181 -f 4182 4183 4179 -f 4183 4177 4179 -f 4174 4177 4184 -f 4184 4177 4183 -f 4182 4179 4185 -f 4185 4179 4180 -f 4180 4181 4186 -f 4186 4181 4187 -f 4186 4188 4180 -f 4188 4185 4180 -f 4190 4189 4187 -f 4189 4186 4187 -f 4188 4186 4191 -f 4191 4186 4189 -f 4192 4189 4193 -f 4189 4190 4193 -f 4191 4189 4194 -f 4194 4189 4192 -f 4195 4194 4196 -f 4194 4192 4196 -f 4195 4196 4197 -f 4197 4196 4198 -f 4196 4192 4199 -f 4192 4193 4199 -f 4200 4198 4199 -f 4198 4196 4199 -f 4201 4191 4202 -f 4191 4194 4202 -f 4203 4202 4195 -f 4195 4202 4194 -f 4204 4203 4197 -f 4203 4195 4197 -f 4205 4188 4201 -f 4201 4188 4191 -f 4206 4185 4205 -f 4185 4188 4205 -f 4206 4207 4185 -f 4207 4182 4185 -f 4183 4182 4208 -f 4208 4182 4207 -f 4184 4183 4209 -f 4183 4208 4209 -f 4197 4210 4204 -f 4204 4211 4203 -f 4211 4212 4203 -f 4213 4202 4212 -f 4203 4212 4202 -f 4202 4213 4201 -f 4213 4214 4201 -f 4201 4214 4205 -f 4214 4215 4205 -f 4216 4206 4215 -f 4205 4215 4206 -f 4216 4217 4206 -f 4206 4217 4207 -f 4210 4211 4204 -f 4218 4208 4217 -f 4208 4207 4217 -f 4208 4218 4209 -f 4219 4209 4218 -f 4221 4216 4220 -f 4215 4220 4216 -f 4215 4214 4220 -f 4214 4222 4220 -f 4222 4214 4223 -f 4213 4223 4214 -f 4217 4216 4224 -f 4216 4221 4224 -f 4225 4218 4224 -f 4218 4217 4224 -f 4218 4225 4219 -f 4219 4225 4226 -v 4.043796 2.386524 0.400392 -v 4.078510 2.411810 0.472193 -v 4.088356 2.510913 0.453793 -v 4.063205 2.509679 0.342987 -v 4.035753 2.399538 0.343957 -v 4.055262 2.505284 0.297282 -f 4230 4227 4229 -f 4227 4228 4229 -f 4230 4232 4227 -f 4231 4227 4232 -v 4.615662 2.633870 0.977986 -v 4.735139 2.645464 0.950890 -v 4.753015 2.699695 0.973279 -v 4.624800 2.708372 0.989445 -v 4.854957 2.660227 0.924310 -v 4.863709 2.722151 0.936660 -f 4233 4234 4236 -f 4234 4235 4236 -f 4234 4237 4235 -f 4237 4238 4235 -v 4.189883 2.606916 -0.000863 -v 4.079812 2.571649 -0.000951 -v 4.084506 2.570978 0.218168 -v 4.187258 2.590221 0.135844 -v 4.101754 2.557092 0.265856 -v 4.203325 2.589186 0.219164 -v 4.100907 2.560626 0.302396 -v 4.211652 2.602538 0.264011 -v 4.117367 2.568514 0.384500 -v 4.209941 2.600612 0.337597 -f 4241 4242 4240 -f 4239 4240 4242 -f 4242 4241 4244 -f 4241 4243 4244 -f 4245 4246 4243 -f 4244 4243 4246 -f 4245 4247 4246 -f 4246 4247 4248 -v 4.209941 2.600612 0.337597 -v 4.117367 2.568514 0.384500 -v 4.151183 2.579059 0.494606 -v 4.224730 2.624525 0.491916 -v 4.509555 2.719807 0.819972 -v 4.462368 2.725999 0.882675 -v 4.616626 2.749486 0.939333 -v 4.636909 2.750501 0.856859 -v 4.418954 2.707401 0.782531 -v 4.354196 2.711836 0.826545 -v 4.356680 2.682996 0.719050 -v 4.273414 2.686575 0.753674 -v 4.176065 2.636883 0.618384 -v 4.277169 2.652435 0.591369 -f 4249 4250 4252 -f 4250 4251 4252 -f 4255 4256 4254 -f 4253 4254 4256 -f 4254 4253 4258 -f 4257 4258 4253 -f 4260 4258 4259 -f 4259 4258 4257 -f 4251 4261 4252 -f 4261 4262 4252 -v 4.055262 2.505284 0.297282 -v 4.029016 2.519175 0.249385 -v 4.000110 2.424158 0.313254 -v 4.035753 2.399538 0.343957 -v 3.988172 2.489642 -0.001008 -v 4.024214 2.527933 -0.000987 -v 4.084506 2.570978 0.218168 -v 4.079812 2.571649 -0.000951 -v 4.101754 2.557092 0.265856 -v 4.063205 2.509679 0.342987 -v 4.100907 2.560626 0.302396 -v 4.088356 2.510913 0.453793 -v 4.117367 2.568514 0.384500 -f 4264 4265 4263 -f 4263 4265 4266 -f 4265 4264 4267 -f 4267 4264 4268 -f 4268 4264 4270 -f 4264 4269 4270 -f 4269 4264 4271 -f 4263 4271 4264 -f 4272 4273 4263 -f 4273 4271 4263 -f 4274 4275 4272 -f 4275 4273 4272 -v 4.104292 2.537976 0.543437 -v 4.151183 2.579059 0.494606 -v 4.117367 2.568514 0.384500 -v 4.088356 2.510913 0.453793 -v 4.273414 2.686575 0.753674 -v 4.356680 2.682996 0.719050 -v 4.277169 2.652435 0.591369 -v 4.176065 2.636883 0.618384 -v 4.138494 2.557838 0.652651 -v 4.235494 2.636171 0.803613 -v 4.342998 2.664049 0.904347 -v 4.354196 2.711836 0.826545 -v 4.460786 2.695616 0.949972 -v 4.462368 2.725999 0.882675 -v 4.616626 2.749486 0.939333 -v 4.735445 2.749285 0.940329 -v 4.719171 2.751091 0.865965 -v 4.636909 2.750501 0.856859 -v 4.827733 2.754390 0.905049 -v 4.801436 2.750224 0.858918 -v 5.096148 2.759720 0.774729 -v 4.624800 2.708372 0.989445 -v 4.753015 2.699695 0.973279 -v 4.863709 2.722151 0.936660 -f 4278 4279 4277 -f 4276 4277 4279 -f 4283 4280 4282 -f 4280 4281 4282 -f 4277 4276 4283 -f 4284 4283 4276 -f 4284 4285 4283 -f 4285 4280 4283 -f 4285 4286 4280 -f 4286 4287 4280 -f 4286 4288 4287 -f 4288 4289 4287 -f 4291 4292 4290 -f 4290 4292 4293 -f 4291 4294 4292 -f 4292 4294 4295 -f 4296 4295 4294 -f 4288 4297 4289 -f 4297 4290 4289 -f 4298 4291 4297 -f 4297 4291 4290 -f 4298 4299 4291 -f 4294 4291 4299 -f 4296 4294 4299 -v 3.828001 2.352540 0.233341 -v 4.000110 2.424158 0.313254 -v 3.988172 2.489642 -0.001008 -v 3.787342 2.396113 -0.001159 -v 3.870548 2.292106 0.368964 -v 3.961908 2.347745 0.374747 -v 4.025364 2.359300 0.402597 -v 4.043796 2.386524 0.400392 -v 4.035753 2.399538 0.343957 -v 3.967085 2.280648 0.537643 -v 4.077563 2.305187 0.510338 -v 3.903911 2.241501 0.512468 -v 3.823349 2.141733 0.428356 -v 3.857922 2.141554 0.521067 -v 4.113935 2.334131 0.526471 -v 4.078510 2.411810 0.472193 -v 4.010847 2.270246 0.622149 -v 4.112302 2.285832 0.595500 -v 3.928869 2.223919 0.615683 -v 3.892378 2.149432 0.603589 -v 4.044730 2.254459 0.744209 -v 4.146067 2.278102 0.707372 -v 3.990744 2.205448 0.710795 -v 3.945464 2.130100 0.689536 -v 4.212974 2.303184 0.587113 -v 4.296769 2.260422 0.528796 -v 4.212058 2.279450 0.625927 -v 4.172143 2.303394 0.778972 -v 4.229332 2.274522 0.672749 -v 4.079122 2.264104 0.845010 -v 4.024700 2.187859 0.814219 -v 4.215419 2.350484 0.885764 -v 4.273005 2.310529 0.762172 -v 4.104864 2.298353 0.915735 -v 4.059714 2.194906 0.888152 -v 4.097362 2.366600 1.239986 -v 4.155551 2.388662 1.091960 -v 4.102304 2.299960 1.025862 -v 4.061989 2.231988 1.178382 -v 4.194233 2.408334 1.008471 -v 4.307092 2.367482 0.877202 -v 4.266263 2.421651 1.054799 -v 4.228523 2.435029 1.098575 -v 4.170470 2.458441 1.241846 -v 4.058311 2.293363 1.338054 -v 4.094116 2.426172 1.381032 -v 4.046673 2.341349 1.452530 -v 4.047406 2.207209 1.015108 -v 3.989434 2.118832 0.765086 -v 4.022592 2.123052 0.903284 -v 4.020299 2.141675 1.002365 -v 4.024858 2.106568 1.208099 -v 4.036947 1.992167 1.072561 -v 4.082988 2.175805 1.450930 -v 4.103303 2.038565 1.363737 -v 4.152166 1.868775 1.225002 -v 4.127903 1.828359 1.090512 -v 4.031515 1.968248 0.918460 -v 3.966639 1.969285 0.549291 -v 3.922437 1.972461 0.483563 -v 3.982910 1.987391 0.639809 -v 4.059885 1.860460 0.470087 -v 4.094112 1.889281 0.578435 -v 4.017509 1.996169 0.731654 -v 4.150297 1.820575 0.917046 -v 4.389484 2.190421 0.473320 -v 4.472349 2.325133 0.443764 -v 4.342700 2.112281 0.516692 -v 4.314791 2.142163 0.540650 -v 4.305411 2.059245 0.539407 -v 4.433020 2.024714 0.563794 -v 4.101726 2.312318 1.438163 -v 4.148927 2.388726 1.376879 -v 4.129926 2.308770 1.402259 -v 4.140097 2.295949 1.367196 -v 4.169404 2.306276 1.284031 -v 4.149438 2.340550 1.353693 -v 4.141759 2.279958 1.295340 -v 4.197644 2.394643 1.248646 -v 4.197516 2.349135 1.253043 -v 4.199317 2.304652 1.174540 -v 4.267320 2.121987 0.614940 -v 4.274886 2.220030 0.679075 -v 4.354411 2.102985 0.802580 -v 4.380990 2.207701 0.839016 -v 4.369751 2.298204 0.921894 -v 4.303193 2.347123 1.044413 -v 4.245861 2.375093 1.141312 -v 4.218457 2.356834 1.142444 -v 4.275405 2.319905 1.046400 -v 4.296538 2.243779 0.925459 -v 4.289048 2.172969 0.858693 -v 4.211815 2.282490 1.039137 -v 4.278045 1.976660 0.537351 -v 4.290375 2.112337 0.800190 -v 4.222795 2.228178 0.952752 -v 4.197609 2.164063 0.857433 -v 4.153175 2.084823 0.799668 -v 4.151090 2.102939 0.889759 -v 4.148865 2.148829 0.986567 -v 4.154566 2.190480 1.129552 -v 4.152557 2.235471 1.217046 -v 4.131949 2.050757 0.921856 -v 4.119993 2.063095 1.049178 -v 4.126160 2.120930 1.172520 -v 4.133175 2.175231 1.259323 -v 4.159229 1.949902 0.923197 -v 4.137657 1.944837 1.061024 -v 4.143794 2.013720 1.201386 -v 4.123290 2.086854 1.295135 -v 4.112680 2.195089 1.366908 -v 4.111934 2.234814 1.399949 -v 4.232341 1.903079 0.534362 -v 4.304562 1.906537 0.572242 -v 4.303615 1.799914 0.610388 -v 4.240116 1.770049 0.583946 -v 4.377095 1.871713 0.595743 -v 4.432610 1.878873 0.577888 -v 4.148883 1.759918 0.573765 -v 4.281287 2.055751 0.787000 -v 4.354941 2.064161 0.778851 -v 4.245225 2.008532 0.772641 -f 4301 4302 4300 -f 4300 4302 4303 -f 4301 4300 4305 -f 4300 4304 4305 -f 4301 4306 4308 -f 4306 4307 4308 -f 4305 4306 4301 -f 4309 4310 4305 -f 4310 4306 4305 -f 4309 4305 4311 -f 4311 4305 4304 -f 4304 4312 4311 -f 4312 4313 4311 -f 4314 4315 4307 -f 4307 4306 4314 -f 4306 4310 4314 -f 4309 4316 4310 -f 4316 4317 4310 -f 4318 4316 4311 -f 4311 4316 4309 -f 4311 4313 4318 -f 4313 4319 4318 -f 4320 4321 4316 -f 4316 4321 4317 -f 4316 4318 4320 -f 4322 4320 4318 -f 4318 4319 4322 -f 4319 4323 4322 -f 4324 4325 4314 -f 4317 4324 4310 -f 4324 4314 4310 -f 4321 4326 4317 -f 4317 4326 4324 -f 4327 4328 4321 -f 4321 4328 4326 -f 4329 4327 4320 -f 4320 4327 4321 -f 4330 4329 4322 -f 4322 4329 4320 -f 4331 4332 4327 -f 4327 4332 4328 -f 4327 4329 4331 -f 4329 4333 4331 -f 4333 4329 4334 -f 4330 4334 4329 -f 4338 4335 4337 -f 4335 4336 4337 -f 4331 4333 4339 -f 4337 4339 4333 -f 4336 4339 4337 -f 4340 4332 4331 -f 4340 4331 4341 -f 4339 4341 4331 -f 4336 4342 4339 -f 4342 4341 4339 -f 4335 4343 4336 -f 4343 4342 4336 -f 4343 4335 4345 -f 4344 4345 4335 -f 4346 4345 4344 -f 4334 4347 4333 -f 4347 4337 4333 -f 4338 4337 4347 -f 4330 4322 4348 -f 4348 4322 4323 -f 4348 4349 4330 -f 4349 4334 4330 -f 4347 4334 4350 -f 4350 4334 4349 -f 4338 4347 4350 -f 4344 4335 4338 -f 4338 4350 4351 -f 4351 4350 4352 -f 4344 4338 4351 -f 4353 4346 4344 -f 4344 4351 4353 -f 4353 4351 4354 -f 4355 4354 4352 -f 4352 4354 4351 -f 4357 4356 4352 -f 4356 4355 4352 -f 4357 4352 4349 -f 4352 4350 4349 -f 4358 4313 4359 -f 4313 4312 4359 -f 4313 4358 4319 -f 4360 4319 4358 -f 4361 4362 4359 -f 4362 4358 4359 -f 4362 4360 4358 -f 4363 4357 4348 -f 4357 4349 4348 -f 4348 4323 4363 -f 4360 4363 4319 -f 4363 4323 4319 -f 4362 4363 4360 -f 4362 4364 4363 -f 4363 4364 4357 -f 4364 4356 4357 -f 4365 4366 4325 -f 4367 4365 4368 -f 4369 4367 4368 -f 4365 4325 4368 -f 4370 4365 4367 -f 4370 4367 4369 -f 4346 4371 4345 -f 4371 4372 4345 -f 4375 4376 4374 -f 4373 4374 4376 -f 4374 4377 4375 -f 4345 4372 4343 -f 4372 4378 4343 -f 4372 4376 4378 -f 4376 4379 4378 -f 4376 4375 4379 -f 4375 4380 4379 -f 4325 4382 4368 -f 4381 4368 4382 -f 4383 4381 4384 -f 4381 4382 4384 -f 4326 4325 4324 -f 4328 4325 4326 -f 4382 4325 4328 -f 4382 4328 4332 -f 4340 4382 4332 -f 4369 4368 4381 -f 4382 4340 4384 -f 4385 4384 4340 -f 4340 4341 4385 -f 4385 4341 4386 -f 4387 4386 4342 -f 4386 4341 4342 -f 4343 4378 4342 -f 4342 4378 4387 -f 4378 4379 4387 -f 4388 4387 4379 -f 4389 4386 4388 -f 4386 4387 4388 -f 4390 4385 4389 -f 4389 4385 4386 -f 4385 4390 4384 -f 4390 4391 4384 -f 4388 4379 4380 -f 4380 4392 4388 -f 4392 4389 4388 -f 4393 4369 4383 -f 4369 4381 4383 -f 4384 4391 4383 -f 4394 4383 4391 -f 4390 4389 4395 -f 4395 4389 4392 -f 4395 4396 4390 -f 4396 4391 4390 -f 4394 4391 4397 -f 4397 4391 4396 -f 4397 4396 4398 -f 4399 4398 4395 -f 4398 4396 4395 -f 4400 4399 4392 -f 4399 4395 4392 -f 4392 4380 4400 -f 4400 4380 4401 -f 4380 4375 4401 -f 4401 4375 4377 -f 4397 4398 4402 -f 4399 4403 4398 -f 4402 4398 4403 -f 4399 4400 4403 -f 4403 4400 4404 -f 4400 4401 4404 -f 4404 4401 4405 -f 4401 4377 4405 -f 4403 4407 4402 -f 4406 4402 4407 -f 4407 4403 4408 -f 4403 4404 4408 -f 4408 4404 4409 -f 4404 4405 4409 -f 4409 4405 4410 -f 4405 4377 4410 -f 4377 4374 4410 -f 4410 4374 4411 -f 4374 4373 4411 -f 4412 4413 4393 -f 4415 4414 4412 -f 4414 4413 4412 -f 4369 4393 4416 -f 4416 4393 4413 -f 4369 4416 4370 -f 4417 4370 4416 -f 4362 4418 4412 -f 4415 4412 4418 -f 4419 4383 4394 -f 4419 4420 4383 -f 4421 4420 4419 -f 4419 4394 4397 -f 4419 4397 4406 -f 4406 4397 4402 -f 4393 4383 4420 -f 4420 4421 4393 -f 4421 4412 4393 -f 4421 4419 4406 -v 5.895899 1.182730 0.164705 -v 5.959462 1.157227 0.187097 -v 5.998088 1.231874 0.107334 -f 4422 4423 4424 -v 5.959462 1.157227 0.187097 -v 5.950684 1.082725 0.175648 -v 5.961686 1.110978 0.090324 -v 5.998088 1.231874 0.107334 -v 5.755282 1.004149 0.307505 -v 5.763952 1.062109 0.338641 -v 5.681086 1.054964 0.355860 -v 5.672385 1.007694 0.341778 -f 4428 4425 4427 -f 4425 4426 4427 -f 4430 4431 4429 -f 4429 4431 4432 -v 5.849792 1.193480 0.181047 -v 5.840665 1.221942 0.187128 -v 5.773410 1.225861 0.323025 -v 5.837875 1.141493 0.305184 -v 5.480649 0.941387 0.316248 -v 5.546347 0.916044 0.246782 -v 5.573803 0.952578 0.243886 -v 5.535184 0.980180 0.341257 -f 4433 4434 4436 -f 4434 4435 4436 -f 4437 4438 4440 -f 4438 4439 4440 -v 5.710154 1.360653 0.290072 -v 5.730427 1.435668 0.209848 -v 5.685194 1.452202 0.188749 -v 5.647186 1.394606 0.257833 -v 4.991713 1.163096 0.504149 -v 5.011084 1.066770 0.458562 -v 5.241466 1.040469 0.383965 -v 5.250485 1.123029 0.385234 -v 4.641547 1.285422 0.622034 -v 4.522247 1.398278 0.644892 -v 4.449011 1.260929 0.647431 -v 4.567896 1.149805 0.642484 -v 4.742358 1.882232 0.621650 -v 4.728963 2.036146 0.614307 -v 4.688114 2.046378 0.604518 -v 4.697024 1.862575 0.604048 -v 4.760921 1.881357 0.613120 -v 4.824747 1.946835 0.626358 -v 4.861611 2.001639 0.621913 -v 4.842883 2.021333 0.638025 -f 4441 4442 4444 -f 4442 4443 4444 -f 4448 4445 4447 -f 4445 4446 4447 -f 4450 4451 4449 -f 4449 4451 4452 -f 4455 4456 4454 -f 4453 4454 4456 -f 4457 4458 4460 -f 4458 4459 4460 -v 4.925394 1.955229 0.618837 -v 4.935561 2.016016 0.585700 -v 4.861611 2.001639 0.621913 -v 4.897808 1.946794 0.628057 -f 4462 4463 4461 -f 4461 4463 4464 -v 4.852582 1.816115 0.603105 -v 4.861618 1.854067 0.618095 -v 4.760921 1.881357 0.613120 -v 4.973133 1.992779 0.533466 -v 4.991746 2.009819 0.523206 -v 4.935880 2.051665 0.572853 -v 4.935561 2.016016 0.585700 -v 4.788476 2.028047 0.608619 -v 4.751519 2.039658 0.634134 -v 4.991709 1.844295 0.520761 -v 5.011430 1.875569 0.463205 -v 5.001903 1.914398 0.486724 -v 4.982364 1.873300 0.536190 -v 4.918466 2.084725 0.532713 -v 4.881574 2.094571 0.539949 -v 4.744050 2.179337 0.556057 -v 4.837331 2.235678 0.479332 -v 4.739441 2.299169 0.369987 -v 4.636582 2.263383 0.471997 -v 5.075994 1.900999 0.443793 -v 5.095375 1.961238 0.401516 -v 5.067202 2.027704 0.422291 -v 5.057495 2.002751 0.451974 -v 4.101726 2.312318 1.438163 -v 4.046673 2.341349 1.452530 -v 4.082988 2.175805 1.450930 -v 4.111934 2.234814 1.399949 -v 4.129926 2.308770 1.402259 -v 4.150297 1.820575 0.917046 -v 4.094112 1.889281 0.578435 -v 4.245225 2.008532 0.772641 -v 4.159229 1.949902 0.923197 -v 4.127903 1.828359 1.090512 -v 4.137657 1.944837 1.061024 -v 4.152166 1.868775 1.225002 -v 4.143794 2.013720 1.201386 -v 4.103303 2.038565 1.363737 -v 4.123290 2.086854 1.295135 -v 4.112680 2.195089 1.366908 -f 4465 4466 4467 -f 4470 4471 4469 -f 4468 4469 4471 -f 4467 4472 4473 -f 4475 4476 4474 -f 4474 4476 4477 -f 4476 4475 4469 -f 4470 4478 4479 -f 4482 4483 4481 -f 4480 4481 4483 -f 4484 4485 4487 -f 4485 4486 4487 -f 4488 4489 4490 -f 4488 4490 4492 -f 4491 4492 4490 -f 4493 4494 4496 -f 4494 4495 4496 -f 4497 4493 4498 -f 4493 4496 4498 -f 4500 4499 4498 -f 4499 4497 4498 -f 4499 4500 4501 -f 4501 4500 4502 -f 4490 4501 4503 -f 4501 4502 4503 -f 4490 4503 4491 -v 5.096148 2.759720 0.774729 -v 4.863709 2.722151 0.936660 -v 4.854957 2.660227 0.924310 -f 4504 4505 4506 -v 4.076852 1.746601 0.527436 -v 4.148883 1.759918 0.573765 -v 4.094112 1.889281 0.578435 -v 4.059885 1.860460 0.470087 -v 4.380854 0.704574 -0.000130 -v 4.359048 0.700414 0.166651 -v 4.120842 0.627141 0.185461 -v 4.126565 0.642027 0.000000 -v 3.881998 1.764428 0.476337 -v 4.067576 1.572668 0.534997 -v 3.886058 1.550141 0.504830 -v 4.085564 1.288885 0.544406 -v 3.988510 1.297806 0.539537 -v 4.141189 1.008775 0.499342 -v 4.041657 1.039756 0.496922 -v 4.216374 0.852328 0.405873 -v 4.068249 0.798926 0.400813 -v 4.319799 0.731007 0.291212 -v 4.105198 0.672581 0.300001 -v 3.758215 2.206683 0.323051 -v 3.870548 2.292106 0.368964 -v 3.828001 2.352540 0.233341 -v 3.745669 2.266001 0.241930 -v 3.787342 2.396113 -0.001159 -v 3.716360 2.343387 0.000000 -v 3.727093 2.308406 0.150049 -v 3.922437 1.972461 0.483563 -v 3.814876 1.968416 0.443000 -v 3.823349 2.141733 0.428356 -f 4510 4507 4509 -f 4507 4508 4509 -f 4511 4512 4514 -f 4512 4513 4514 -f 4507 4510 4515 -f 4517 4516 4515 -f 4516 4507 4515 -f 4516 4517 4518 -f 4518 4517 4519 -f 4520 4518 4521 -f 4518 4519 4521 -f 4521 4523 4520 -f 4522 4520 4523 -f 4524 4522 4525 -f 4522 4523 4525 -f 4512 4524 4513 -f 4524 4525 4513 -f 4528 4529 4527 -f 4526 4527 4529 -f 4528 4530 4532 -f 4530 4531 4532 -f 4528 4532 4529 -f 4515 4510 4533 -f 4534 4515 4533 -f 4534 4533 4535 -f 4526 4534 4535 -f 4526 4535 4527 -v 5.096148 2.759720 0.774729 -v 4.829566 2.580797 0.821827 -v 4.821336 2.621498 0.789636 -v 4.856249 2.593812 0.867067 -f 4536 4537 4538 -f 4536 4539 4537 -v 4.094112 1.889281 0.578435 -v 4.232341 1.903079 0.534362 -v 4.245225 2.008532 0.772641 -v 1.700797 -2.794792 0.824250 -v 1.718315 -2.775468 0.921796 -v 1.678986 -2.513137 0.891745 -v 1.655948 -2.520927 0.844269 -v 1.705953 -3.006628 0.832630 -v 1.734568 -2.965876 0.986396 -v -0.972514 -1.822778 0.372649 -v -0.977375 -1.793126 0.498747 -v -1.108758 -1.770749 0.473033 -v -1.305099 -1.708460 0.484230 -v -1.266738 -1.691944 0.557922 -v -1.397474 -1.693815 0.570541 -v -1.406693 -1.697325 0.450399 -f 4540 4541 4542 -f 4543 4544 4546 -f 4544 4545 4546 -f 4548 4544 4547 -f 4543 4547 4544 -f 4552 4549 4551 -f 4549 4550 4551 -f 4555 4552 4554 -f 4552 4553 4554 -v -3.120907 -1.707924 0.431829 -v -2.941731 -1.787431 0.442574 -v -3.008323 -1.759271 0.655672 -v -3.139394 -1.687482 0.638546 -v -2.709403 -1.879947 0.508775 -v -2.699966 -1.850397 0.570070 -v -2.811581 -1.798210 0.712737 -v -3.697889 -0.951955 0.098793 -v -3.676450 -0.551317 0.077574 -v -3.699784 -0.759901 0.088664 -f 4557 4558 4556 -f 4556 4558 4559 -f 4557 4560 4558 -f 4560 4561 4558 -f 4561 4562 4558 -f 4563 4564 4565 -v -3.358510 1.810253 0.380095 -v -3.413372 1.871604 0.142309 -v -3.392806 1.769365 0.000000 -v -3.380836 1.819691 0.123273 -v -3.348274 1.767738 -0.000085 -v 4.148927 2.388726 1.376879 -v 4.101726 2.312318 1.438163 -v 4.129926 2.308770 1.402259 -v 4.149438 2.340550 1.353693 -v -2.964215 -1.978727 0.776572 -v -3.066022 -1.953125 0.719516 -v -3.008323 -1.759271 0.655672 -v -2.811581 -1.798210 0.712737 -v -3.211005 -1.850398 0.700723 -v -3.139394 -1.687482 0.638546 -v -3.357009 1.781675 0.071216 -v -3.357009 1.781675 -0.071216 -v -3.380836 1.819691 -0.123273 -f 4566 4567 4568 -f 4567 4569 4568 -f 4568 4569 4570 -f 4572 4573 4571 -f 4571 4573 4574 -f 4578 4575 4577 -f 4575 4576 4577 -f 4579 4580 4576 -f 4576 4580 4577 -f 4569 4581 4570 -f 4582 4583 4570 diff --git a/software/Print3r/models/cube.FCStd b/software/Print3r/models/cube.FCStd deleted file mode 100644 index 51cea26c..00000000 Binary files a/software/Print3r/models/cube.FCStd and /dev/null differ diff --git a/software/Print3r/models/cube.brep b/software/Print3r/models/cube.brep deleted file mode 100644 index d0ed9767..00000000 --- a/software/Print3r/models/cube.brep +++ /dev/null @@ -1,286 +0,0 @@ -DBRep_DrawableShape - -CASCADE Topology V1, (c) Matra-Datavision -Locations 1 -1 - 1 0 0 0 - 0 1 0 0 - 0 0 1 0 -Curve2ds 24 -1 0 0 1 0 -1 0 0 1 0 -1 20 0 0 -1 -1 0 0 0 1 -1 0 -20 1 0 -1 0 0 1 0 -1 0 0 0 -1 -1 0 0 0 1 -1 0 0 1 0 -1 0 20 1 0 -1 20 0 0 -1 -1 20 0 0 1 -1 0 -20 1 0 -1 0 20 1 0 -1 0 0 0 -1 -1 20 0 0 1 -1 0 0 0 1 -1 0 0 1 0 -1 20 0 0 1 -1 0 0 1 0 -1 0 0 0 1 -1 0 20 1 0 -1 20 0 0 1 -1 0 20 1 0 -Curves 12 -1 0 0 0 0 0 1 -1 0 0 20 -0 1 0 -1 0 20 0 0 0 1 -1 0 0 0 -0 1 0 -1 20 0 0 0 0 1 -1 20 0 20 -0 1 0 -1 20 20 0 0 0 1 -1 20 0 0 -0 1 0 -1 0 0 0 1 0 -0 -1 0 0 20 1 0 -0 -1 0 20 0 1 0 -0 -1 0 20 20 1 0 -0 -Polygon3D 0 -PolygonOnTriangulations 0 -Surfaces 6 -1 0 0 0 1 0 -0 0 0 1 0 -1 0 -1 0 0 0 -0 1 0 0 0 1 1 0 -0 -1 0 0 20 0 0 1 1 0 -0 -0 1 0 -1 0 20 0 -0 1 0 0 0 1 1 0 -0 -1 0 0 0 0 0 1 1 0 -0 -0 1 0 -1 20 0 0 1 0 -0 0 0 1 0 -1 0 -Triangulations 0 - -TShapes 34 -Ve -1e-07 -0 0 20 -0 0 - -0101101 -* -Ve -1e-07 -0 0 0 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 1 0 0 20 -2 1 1 0 0 20 -2 2 2 0 0 20 -0 - -0101000 --34 0 +33 0 * -Ve -1e-07 -0 20 20 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 2 0 0 20 -2 3 1 0 0 20 -2 4 3 0 0 20 -0 - -0101000 --31 0 +34 0 * -Ve -1e-07 -0 20 0 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 3 0 0 20 -2 5 1 0 0 20 -2 6 4 0 0 20 -0 - -0101000 --31 0 +29 0 * -Ed - 1e-07 1 1 0 -1 4 0 0 20 -2 7 1 0 0 20 -2 8 5 0 0 20 -0 - -0101000 --29 0 +33 0 * -Wi - -0101100 --32 0 -30 0 +28 0 +27 0 * -Fa -0 1e-07 1 0 - -0111000 -+26 0 * -Ve -1e-07 -20 0 20 -0 0 - -0101101 -* -Ve -1e-07 -20 0 0 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 5 0 0 20 -2 9 6 0 0 20 -2 10 2 0 0 20 -0 - -0101000 --24 0 +23 0 * -Ve -1e-07 -20 20 20 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 6 0 0 20 -2 11 6 0 0 20 -2 12 3 0 0 20 -0 - -0101000 --21 0 +24 0 * -Ve -1e-07 -20 20 0 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 7 0 0 20 -2 13 6 0 0 20 -2 14 4 0 0 20 -0 - -0101000 --21 0 +19 0 * -Ed - 1e-07 1 1 0 -1 8 0 0 20 -2 15 6 0 0 20 -2 16 5 0 0 20 -0 - -0101000 --19 0 +23 0 * -Wi - -0101100 --22 0 -20 0 +18 0 +17 0 * -Fa -0 1e-07 6 0 - -0111000 -+16 0 * -Ed - 1e-07 1 1 0 -1 9 0 0 20 -2 17 2 0 0 20 -2 18 5 0 0 20 -0 - -0101000 --23 0 +33 0 * -Ed - 1e-07 1 1 0 -1 10 0 0 20 -2 19 2 0 0 20 -2 20 3 0 0 20 -0 - -0101000 --24 0 +34 0 * -Wi - -0101100 --14 0 -22 0 +13 0 +32 0 * -Fa -0 1e-07 2 0 - -0111000 -+12 0 * -Ed - 1e-07 1 1 0 -1 11 0 0 20 -2 21 4 0 0 20 -2 22 5 0 0 20 -0 - -0101000 --19 0 +29 0 * -Ed - 1e-07 1 1 0 -1 12 0 0 20 -2 23 4 0 0 20 -2 24 3 0 0 20 -0 - -0101000 --21 0 +31 0 * -Wi - -0101100 --10 0 -18 0 +9 0 +28 0 * -Fa -0 1e-07 4 0 - -0111000 -+8 0 * -Wi - -0101100 --27 0 -10 0 +17 0 +14 0 * -Fa -0 1e-07 5 0 - -0111000 -+6 0 * -Wi - -0101100 --30 0 -9 0 +20 0 +13 0 * -Fa -0 1e-07 3 0 - -0111000 -+4 0 * -Sh - -0101100 --25 0 +15 0 -11 0 +7 0 -5 0 +3 0 * -So - -1100000 -+2 0 * - -+1 1 \ No newline at end of file diff --git a/software/Print3r/models/cube.iges b/software/Print3r/models/cube.iges deleted file mode 100644 index 83b1951b..00000000 --- a/software/Print3r/models/cube.iges +++ /dev/null @@ -1,153 +0,0 @@ - S0000001 -,,31HOpen CASCADE IGES processor 7.5,13HFilename.iges, G0000001 -16HOpen CASCADE 7.5,31HOpen CASCADE IGES processor 7.5,32,308,15,308,15,G0000002 -,1.,2,2HMM,1,0.01,15H20210816.062528,1E-07,20.,,,11,0, G0000003 -15H20210816.062528,; G0000004 - 402 1 0 0 0 0 0 000000000D0000001 - 402 0 0 1 1 0D0000002 - 144 2 0 0 0 0 0 000020000D0000003 - 144 0 0 1 0 0D0000004 - 108 3 0 0 0 0 0 000010000D0000005 - 108 0 0 1 0 0D0000006 - 142 4 0 0 0 0 0 000010500D0000007 - 142 0 0 1 0 0D0000008 - 102 5 0 0 0 0 0 000010000D0000009 - 102 0 0 1 0 0D0000010 - 110 6 0 0 0 0 0 000010000D0000011 - 110 0 0 1 0 0D0000012 - 110 7 0 0 0 0 0 000010000D0000013 - 110 0 0 1 0 0D0000014 - 110 8 0 0 0 0 0 000010000D0000015 - 110 0 0 1 0 0D0000016 - 110 9 0 0 0 0 0 000010000D0000017 - 110 0 0 1 0 0D0000018 - 144 10 0 0 0 0 0 000020000D0000019 - 144 0 0 1 0 0D0000020 - 108 11 0 0 0 0 0 000010000D0000021 - 108 0 0 1 0 0D0000022 - 142 12 0 0 0 0 0 000010500D0000023 - 142 0 0 1 0 0D0000024 - 102 13 0 0 0 0 0 000010000D0000025 - 102 0 0 1 0 0D0000026 - 110 14 0 0 0 0 0 000010000D0000027 - 110 0 0 1 0 0D0000028 - 110 15 0 0 0 0 0 000010000D0000029 - 110 0 0 1 0 0D0000030 - 110 16 0 0 0 0 0 000010000D0000031 - 110 0 0 1 0 0D0000032 - 110 17 0 0 0 0 0 000010000D0000033 - 110 0 0 1 0 0D0000034 - 144 18 0 0 0 0 0 000020000D0000035 - 144 0 0 1 0 0D0000036 - 108 19 0 0 0 0 0 000010000D0000037 - 108 0 0 1 0 0D0000038 - 142 20 0 0 0 0 0 000010500D0000039 - 142 0 0 1 0 0D0000040 - 102 21 0 0 0 0 0 000010000D0000041 - 102 0 0 1 0 0D0000042 - 110 22 0 0 0 0 0 000010000D0000043 - 110 0 0 1 0 0D0000044 - 110 23 0 0 0 0 0 000010000D0000045 - 110 0 0 1 0 0D0000046 - 110 24 0 0 0 0 0 000010000D0000047 - 110 0 0 1 0 0D0000048 - 110 25 0 0 0 0 0 000010000D0000049 - 110 0 0 1 0 0D0000050 - 144 26 0 0 0 0 0 000020000D0000051 - 144 0 0 1 0 0D0000052 - 108 27 0 0 0 0 0 000010000D0000053 - 108 0 0 1 0 0D0000054 - 142 28 0 0 0 0 0 000010500D0000055 - 142 0 0 1 0 0D0000056 - 102 29 0 0 0 0 0 000010000D0000057 - 102 0 0 1 0 0D0000058 - 110 30 0 0 0 0 0 000010000D0000059 - 110 0 0 1 0 0D0000060 - 110 31 0 0 0 0 0 000010000D0000061 - 110 0 0 1 0 0D0000062 - 110 32 0 0 0 0 0 000010000D0000063 - 110 0 0 1 0 0D0000064 - 110 33 0 0 0 0 0 000010000D0000065 - 110 0 0 1 0 0D0000066 - 144 34 0 0 0 0 0 000020000D0000067 - 144 0 0 1 0 0D0000068 - 108 35 0 0 0 0 0 000010000D0000069 - 108 0 0 1 0 0D0000070 - 142 36 0 0 0 0 0 000010500D0000071 - 142 0 0 1 0 0D0000072 - 102 37 0 0 0 0 0 000010000D0000073 - 102 0 0 1 0 0D0000074 - 110 38 0 0 0 0 0 000010000D0000075 - 110 0 0 1 0 0D0000076 - 110 39 0 0 0 0 0 000010000D0000077 - 110 0 0 1 0 0D0000078 - 110 40 0 0 0 0 0 000010000D0000079 - 110 0 0 1 0 0D0000080 - 110 41 0 0 0 0 0 000010000D0000081 - 110 0 0 1 0 0D0000082 - 144 42 0 0 0 0 0 000020000D0000083 - 144 0 0 1 0 0D0000084 - 108 43 0 0 0 0 0 000010000D0000085 - 108 0 0 1 0 0D0000086 - 142 44 0 0 0 0 0 000010500D0000087 - 142 0 0 1 0 0D0000088 - 102 45 0 0 0 0 0 000010000D0000089 - 102 0 0 1 0 0D0000090 - 110 46 0 0 0 0 0 000010000D0000091 - 110 0 0 1 0 0D0000092 - 110 47 0 0 0 0 0 000010000D0000093 - 110 0 0 1 0 0D0000094 - 110 48 0 0 0 0 0 000010000D0000095 - 110 0 0 1 0 0D0000096 - 110 49 0 0 0 0 0 000010000D0000097 - 110 0 0 1 0 0D0000098 -402,6,3,19,35,51,67,83; 0000001P0000001 -144,5,1,0,7; 0000003P0000002 -108,-1.,-0.,-0.,-0.,0,0.,0.,0.,0.; 0000005P0000003 -142,0,5,0,9,2; 0000007P0000004 -102,4,11,13,15,17; 0000009P0000005 -110,0.,20.,0.,0.,0.,0.; 0000011P0000006 -110,0.,0.,0.,0.,0.,20.; 0000013P0000007 -110,0.,0.,20.,0.,20.,20.; 0000015P0000008 -110,0.,20.,20.,0.,20.,0.; 0000017P0000009 -144,21,1,0,23; 0000019P0000010 -108,1.,0.,0.,20.,0,20.,0.,0.,0.; 0000021P0000011 -142,0,21,0,25,2; 0000023P0000012 -102,4,27,29,31,33; 0000025P0000013 -110,20.,0.,20.,20.,0.,0.; 0000027P0000014 -110,20.,0.,0.,20.,20.,0.; 0000029P0000015 -110,20.,20.,0.,20.,20.,20.; 0000031P0000016 -110,20.,20.,20.,20.,0.,20.; 0000033P0000017 -144,37,1,0,39; 0000035P0000018 -108,-0.,-1.,-0.,-0.,0,0.,0.,0.,0.; 0000037P0000019 -142,0,37,0,41,2; 0000039P0000020 -102,4,43,45,47,49; 0000041P0000021 -110,0.,0.,20.,0.,0.,0.; 0000043P0000022 -110,0.,0.,0.,20.,0.,0.; 0000045P0000023 -110,20.,0.,0.,20.,0.,20.; 0000047P0000024 -110,20.,0.,20.,0.,0.,20.; 0000049P0000025 -144,53,1,0,55; 0000051P0000026 -108,0.,1.,0.,20.,0,0.,20.,0.,0.; 0000053P0000027 -142,0,53,0,57,2; 0000055P0000028 -102,4,59,61,63,65; 0000057P0000029 -110,20.,20.,0.,0.,20.,0.; 0000059P0000030 -110,0.,20.,0.,0.,20.,20.; 0000061P0000031 -110,0.,20.,20.,20.,20.,20.; 0000063P0000032 -110,20.,20.,20.,20.,20.,0.; 0000065P0000033 -144,69,1,0,71; 0000067P0000034 -108,-0.,-0.,-1.,-0.,0,0.,0.,0.,0.; 0000069P0000035 -142,0,69,0,73,2; 0000071P0000036 -102,4,75,77,79,81; 0000073P0000037 -110,20.,0.,0.,0.,0.,0.; 0000075P0000038 -110,0.,0.,0.,0.,20.,0.; 0000077P0000039 -110,0.,20.,0.,20.,20.,0.; 0000079P0000040 -110,20.,20.,0.,20.,0.,0.; 0000081P0000041 -144,85,1,0,87; 0000083P0000042 -108,0.,0.,1.,20.,0,0.,0.,20.,0.; 0000085P0000043 -142,0,85,0,89,2; 0000087P0000044 -102,4,91,93,95,97; 0000089P0000045 -110,0.,20.,20.,0.,0.,20.; 0000091P0000046 -110,0.,0.,20.,20.,0.,20.; 0000093P0000047 -110,20.,0.,20.,20.,20.,20.; 0000095P0000048 -110,20.,20.,20.,0.,20.,20.; 0000097P0000049 -S 1G 4D 98P 49 T0000001 diff --git a/software/Print3r/models/cube.scad b/software/Print3r/models/cube.scad deleted file mode 100644 index 438994b8..00000000 --- a/software/Print3r/models/cube.scad +++ /dev/null @@ -1 +0,0 @@ -cube(20); diff --git a/software/Print3r/models/cube.step b/software/Print3r/models/cube.step deleted file mode 100644 index 42fcca36..00000000 --- a/software/Print3r/models/cube.step +++ /dev/null @@ -1,415 +0,0 @@ -ISO-10303-21; -HEADER; -FILE_DESCRIPTION(('FreeCAD Model'),'2;1'); -FILE_NAME('Open CASCADE Shape Model','2021-08-16T06:26:10',('FreeCAD'),( - 'FreeCAD'),'Open CASCADE STEP processor 7.5','FreeCAD','Unknown'); -FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }')); -ENDSEC; -DATA; -#1 = APPLICATION_PROTOCOL_DEFINITION('international standard', - 'automotive_design',2000,#2); -#2 = APPLICATION_CONTEXT( - 'core data for automotive mechanical design processes'); -#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10); -#4 = PRODUCT_DEFINITION_SHAPE('','',#5); -#5 = PRODUCT_DEFINITION('design','',#6,#9); -#6 = PRODUCT_DEFINITION_FORMATION('','',#7); -#7 = PRODUCT('Open CASCADE STEP translator 7.5 1', - 'Open CASCADE STEP translator 7.5 1','',(#8)); -#8 = PRODUCT_CONTEXT('',#2,'mechanical'); -#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design'); -#10 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#15),#345); -#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14); -#12 = CARTESIAN_POINT('',(0.,0.,0.)); -#13 = DIRECTION('',(0.,0.,1.)); -#14 = DIRECTION('',(1.,0.,-0.)); -#15 = MANIFOLD_SOLID_BREP('',#16); -#16 = CLOSED_SHELL('',(#17,#137,#237,#284,#331,#338)); -#17 = ADVANCED_FACE('',(#18),#32,.F.); -#18 = FACE_BOUND('',#19,.F.); -#19 = EDGE_LOOP('',(#20,#55,#83,#111)); -#20 = ORIENTED_EDGE('',*,*,#21,.F.); -#21 = EDGE_CURVE('',#22,#24,#26,.T.); -#22 = VERTEX_POINT('',#23); -#23 = CARTESIAN_POINT('',(0.,0.,0.)); -#24 = VERTEX_POINT('',#25); -#25 = CARTESIAN_POINT('',(0.,0.,20.)); -#26 = SURFACE_CURVE('',#27,(#31,#43),.PCURVE_S1.); -#27 = LINE('',#28,#29); -#28 = CARTESIAN_POINT('',(0.,0.,0.)); -#29 = VECTOR('',#30,1.); -#30 = DIRECTION('',(0.,0.,1.)); -#31 = PCURVE('',#32,#37); -#32 = PLANE('',#33); -#33 = AXIS2_PLACEMENT_3D('',#34,#35,#36); -#34 = CARTESIAN_POINT('',(0.,0.,0.)); -#35 = DIRECTION('',(1.,0.,0.)); -#36 = DIRECTION('',(0.,0.,1.)); -#37 = DEFINITIONAL_REPRESENTATION('',(#38),#42); -#38 = LINE('',#39,#40); -#39 = CARTESIAN_POINT('',(0.,0.)); -#40 = VECTOR('',#41,1.); -#41 = DIRECTION('',(1.,0.)); -#42 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#43 = PCURVE('',#44,#49); -#44 = PLANE('',#45); -#45 = AXIS2_PLACEMENT_3D('',#46,#47,#48); -#46 = CARTESIAN_POINT('',(0.,0.,0.)); -#47 = DIRECTION('',(0.,1.,0.)); -#48 = DIRECTION('',(0.,0.,1.)); -#49 = DEFINITIONAL_REPRESENTATION('',(#50),#54); -#50 = LINE('',#51,#52); -#51 = CARTESIAN_POINT('',(0.,0.)); -#52 = VECTOR('',#53,1.); -#53 = DIRECTION('',(1.,0.)); -#54 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#55 = ORIENTED_EDGE('',*,*,#56,.T.); -#56 = EDGE_CURVE('',#22,#57,#59,.T.); -#57 = VERTEX_POINT('',#58); -#58 = CARTESIAN_POINT('',(0.,20.,0.)); -#59 = SURFACE_CURVE('',#60,(#64,#71),.PCURVE_S1.); -#60 = LINE('',#61,#62); -#61 = CARTESIAN_POINT('',(0.,0.,0.)); -#62 = VECTOR('',#63,1.); -#63 = DIRECTION('',(0.,1.,0.)); -#64 = PCURVE('',#32,#65); -#65 = DEFINITIONAL_REPRESENTATION('',(#66),#70); -#66 = LINE('',#67,#68); -#67 = CARTESIAN_POINT('',(0.,0.)); -#68 = VECTOR('',#69,1.); -#69 = DIRECTION('',(0.,-1.)); -#70 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#71 = PCURVE('',#72,#77); -#72 = PLANE('',#73); -#73 = AXIS2_PLACEMENT_3D('',#74,#75,#76); -#74 = CARTESIAN_POINT('',(0.,0.,0.)); -#75 = DIRECTION('',(0.,0.,1.)); -#76 = DIRECTION('',(1.,0.,0.)); -#77 = DEFINITIONAL_REPRESENTATION('',(#78),#82); -#78 = LINE('',#79,#80); -#79 = CARTESIAN_POINT('',(0.,0.)); -#80 = VECTOR('',#81,1.); -#81 = DIRECTION('',(0.,1.)); -#82 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#83 = ORIENTED_EDGE('',*,*,#84,.T.); -#84 = EDGE_CURVE('',#57,#85,#87,.T.); -#85 = VERTEX_POINT('',#86); -#86 = CARTESIAN_POINT('',(0.,20.,20.)); -#87 = SURFACE_CURVE('',#88,(#92,#99),.PCURVE_S1.); -#88 = LINE('',#89,#90); -#89 = CARTESIAN_POINT('',(0.,20.,0.)); -#90 = VECTOR('',#91,1.); -#91 = DIRECTION('',(0.,0.,1.)); -#92 = PCURVE('',#32,#93); -#93 = DEFINITIONAL_REPRESENTATION('',(#94),#98); -#94 = LINE('',#95,#96); -#95 = CARTESIAN_POINT('',(0.,-20.)); -#96 = VECTOR('',#97,1.); -#97 = DIRECTION('',(1.,0.)); -#98 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#99 = PCURVE('',#100,#105); -#100 = PLANE('',#101); -#101 = AXIS2_PLACEMENT_3D('',#102,#103,#104); -#102 = CARTESIAN_POINT('',(0.,20.,0.)); -#103 = DIRECTION('',(0.,1.,0.)); -#104 = DIRECTION('',(0.,0.,1.)); -#105 = DEFINITIONAL_REPRESENTATION('',(#106),#110); -#106 = LINE('',#107,#108); -#107 = CARTESIAN_POINT('',(0.,0.)); -#108 = VECTOR('',#109,1.); -#109 = DIRECTION('',(1.,0.)); -#110 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#111 = ORIENTED_EDGE('',*,*,#112,.F.); -#112 = EDGE_CURVE('',#24,#85,#113,.T.); -#113 = SURFACE_CURVE('',#114,(#118,#125),.PCURVE_S1.); -#114 = LINE('',#115,#116); -#115 = CARTESIAN_POINT('',(0.,0.,20.)); -#116 = VECTOR('',#117,1.); -#117 = DIRECTION('',(0.,1.,0.)); -#118 = PCURVE('',#32,#119); -#119 = DEFINITIONAL_REPRESENTATION('',(#120),#124); -#120 = LINE('',#121,#122); -#121 = CARTESIAN_POINT('',(20.,0.)); -#122 = VECTOR('',#123,1.); -#123 = DIRECTION('',(0.,-1.)); -#124 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#125 = PCURVE('',#126,#131); -#126 = PLANE('',#127); -#127 = AXIS2_PLACEMENT_3D('',#128,#129,#130); -#128 = CARTESIAN_POINT('',(0.,0.,20.)); -#129 = DIRECTION('',(0.,0.,1.)); -#130 = DIRECTION('',(1.,0.,0.)); -#131 = DEFINITIONAL_REPRESENTATION('',(#132),#136); -#132 = LINE('',#133,#134); -#133 = CARTESIAN_POINT('',(0.,0.)); -#134 = VECTOR('',#135,1.); -#135 = DIRECTION('',(0.,1.)); -#136 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#137 = ADVANCED_FACE('',(#138),#152,.T.); -#138 = FACE_BOUND('',#139,.T.); -#139 = EDGE_LOOP('',(#140,#170,#193,#216)); -#140 = ORIENTED_EDGE('',*,*,#141,.F.); -#141 = EDGE_CURVE('',#142,#144,#146,.T.); -#142 = VERTEX_POINT('',#143); -#143 = CARTESIAN_POINT('',(20.,0.,0.)); -#144 = VERTEX_POINT('',#145); -#145 = CARTESIAN_POINT('',(20.,0.,20.)); -#146 = SURFACE_CURVE('',#147,(#151,#163),.PCURVE_S1.); -#147 = LINE('',#148,#149); -#148 = CARTESIAN_POINT('',(20.,0.,0.)); -#149 = VECTOR('',#150,1.); -#150 = DIRECTION('',(0.,0.,1.)); -#151 = PCURVE('',#152,#157); -#152 = PLANE('',#153); -#153 = AXIS2_PLACEMENT_3D('',#154,#155,#156); -#154 = CARTESIAN_POINT('',(20.,0.,0.)); -#155 = DIRECTION('',(1.,0.,0.)); -#156 = DIRECTION('',(0.,0.,1.)); -#157 = DEFINITIONAL_REPRESENTATION('',(#158),#162); -#158 = LINE('',#159,#160); -#159 = CARTESIAN_POINT('',(0.,0.)); -#160 = VECTOR('',#161,1.); -#161 = DIRECTION('',(1.,0.)); -#162 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#163 = PCURVE('',#44,#164); -#164 = DEFINITIONAL_REPRESENTATION('',(#165),#169); -#165 = LINE('',#166,#167); -#166 = CARTESIAN_POINT('',(0.,20.)); -#167 = VECTOR('',#168,1.); -#168 = DIRECTION('',(1.,0.)); -#169 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#170 = ORIENTED_EDGE('',*,*,#171,.T.); -#171 = EDGE_CURVE('',#142,#172,#174,.T.); -#172 = VERTEX_POINT('',#173); -#173 = CARTESIAN_POINT('',(20.,20.,0.)); -#174 = SURFACE_CURVE('',#175,(#179,#186),.PCURVE_S1.); -#175 = LINE('',#176,#177); -#176 = CARTESIAN_POINT('',(20.,0.,0.)); -#177 = VECTOR('',#178,1.); -#178 = DIRECTION('',(0.,1.,0.)); -#179 = PCURVE('',#152,#180); -#180 = DEFINITIONAL_REPRESENTATION('',(#181),#185); -#181 = LINE('',#182,#183); -#182 = CARTESIAN_POINT('',(0.,0.)); -#183 = VECTOR('',#184,1.); -#184 = DIRECTION('',(0.,-1.)); -#185 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#186 = PCURVE('',#72,#187); -#187 = DEFINITIONAL_REPRESENTATION('',(#188),#192); -#188 = LINE('',#189,#190); -#189 = CARTESIAN_POINT('',(20.,0.)); -#190 = VECTOR('',#191,1.); -#191 = DIRECTION('',(0.,1.)); -#192 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#193 = ORIENTED_EDGE('',*,*,#194,.T.); -#194 = EDGE_CURVE('',#172,#195,#197,.T.); -#195 = VERTEX_POINT('',#196); -#196 = CARTESIAN_POINT('',(20.,20.,20.)); -#197 = SURFACE_CURVE('',#198,(#202,#209),.PCURVE_S1.); -#198 = LINE('',#199,#200); -#199 = CARTESIAN_POINT('',(20.,20.,0.)); -#200 = VECTOR('',#201,1.); -#201 = DIRECTION('',(0.,0.,1.)); -#202 = PCURVE('',#152,#203); -#203 = DEFINITIONAL_REPRESENTATION('',(#204),#208); -#204 = LINE('',#205,#206); -#205 = CARTESIAN_POINT('',(0.,-20.)); -#206 = VECTOR('',#207,1.); -#207 = DIRECTION('',(1.,0.)); -#208 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#209 = PCURVE('',#100,#210); -#210 = DEFINITIONAL_REPRESENTATION('',(#211),#215); -#211 = LINE('',#212,#213); -#212 = CARTESIAN_POINT('',(0.,20.)); -#213 = VECTOR('',#214,1.); -#214 = DIRECTION('',(1.,0.)); -#215 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#216 = ORIENTED_EDGE('',*,*,#217,.F.); -#217 = EDGE_CURVE('',#144,#195,#218,.T.); -#218 = SURFACE_CURVE('',#219,(#223,#230),.PCURVE_S1.); -#219 = LINE('',#220,#221); -#220 = CARTESIAN_POINT('',(20.,0.,20.)); -#221 = VECTOR('',#222,1.); -#222 = DIRECTION('',(0.,1.,0.)); -#223 = PCURVE('',#152,#224); -#224 = DEFINITIONAL_REPRESENTATION('',(#225),#229); -#225 = LINE('',#226,#227); -#226 = CARTESIAN_POINT('',(20.,0.)); -#227 = VECTOR('',#228,1.); -#228 = DIRECTION('',(0.,-1.)); -#229 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#230 = PCURVE('',#126,#231); -#231 = DEFINITIONAL_REPRESENTATION('',(#232),#236); -#232 = LINE('',#233,#234); -#233 = CARTESIAN_POINT('',(20.,0.)); -#234 = VECTOR('',#235,1.); -#235 = DIRECTION('',(0.,1.)); -#236 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#237 = ADVANCED_FACE('',(#238),#44,.F.); -#238 = FACE_BOUND('',#239,.F.); -#239 = EDGE_LOOP('',(#240,#261,#262,#283)); -#240 = ORIENTED_EDGE('',*,*,#241,.F.); -#241 = EDGE_CURVE('',#22,#142,#242,.T.); -#242 = SURFACE_CURVE('',#243,(#247,#254),.PCURVE_S1.); -#243 = LINE('',#244,#245); -#244 = CARTESIAN_POINT('',(0.,0.,0.)); -#245 = VECTOR('',#246,1.); -#246 = DIRECTION('',(1.,0.,0.)); -#247 = PCURVE('',#44,#248); -#248 = DEFINITIONAL_REPRESENTATION('',(#249),#253); -#249 = LINE('',#250,#251); -#250 = CARTESIAN_POINT('',(0.,0.)); -#251 = VECTOR('',#252,1.); -#252 = DIRECTION('',(0.,1.)); -#253 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#254 = PCURVE('',#72,#255); -#255 = DEFINITIONAL_REPRESENTATION('',(#256),#260); -#256 = LINE('',#257,#258); -#257 = CARTESIAN_POINT('',(0.,0.)); -#258 = VECTOR('',#259,1.); -#259 = DIRECTION('',(1.,0.)); -#260 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#261 = ORIENTED_EDGE('',*,*,#21,.T.); -#262 = ORIENTED_EDGE('',*,*,#263,.T.); -#263 = EDGE_CURVE('',#24,#144,#264,.T.); -#264 = SURFACE_CURVE('',#265,(#269,#276),.PCURVE_S1.); -#265 = LINE('',#266,#267); -#266 = CARTESIAN_POINT('',(0.,0.,20.)); -#267 = VECTOR('',#268,1.); -#268 = DIRECTION('',(1.,0.,0.)); -#269 = PCURVE('',#44,#270); -#270 = DEFINITIONAL_REPRESENTATION('',(#271),#275); -#271 = LINE('',#272,#273); -#272 = CARTESIAN_POINT('',(20.,0.)); -#273 = VECTOR('',#274,1.); -#274 = DIRECTION('',(0.,1.)); -#275 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#276 = PCURVE('',#126,#277); -#277 = DEFINITIONAL_REPRESENTATION('',(#278),#282); -#278 = LINE('',#279,#280); -#279 = CARTESIAN_POINT('',(0.,0.)); -#280 = VECTOR('',#281,1.); -#281 = DIRECTION('',(1.,0.)); -#282 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#283 = ORIENTED_EDGE('',*,*,#141,.F.); -#284 = ADVANCED_FACE('',(#285),#100,.T.); -#285 = FACE_BOUND('',#286,.T.); -#286 = EDGE_LOOP('',(#287,#308,#309,#330)); -#287 = ORIENTED_EDGE('',*,*,#288,.F.); -#288 = EDGE_CURVE('',#57,#172,#289,.T.); -#289 = SURFACE_CURVE('',#290,(#294,#301),.PCURVE_S1.); -#290 = LINE('',#291,#292); -#291 = CARTESIAN_POINT('',(0.,20.,0.)); -#292 = VECTOR('',#293,1.); -#293 = DIRECTION('',(1.,0.,0.)); -#294 = PCURVE('',#100,#295); -#295 = DEFINITIONAL_REPRESENTATION('',(#296),#300); -#296 = LINE('',#297,#298); -#297 = CARTESIAN_POINT('',(0.,0.)); -#298 = VECTOR('',#299,1.); -#299 = DIRECTION('',(0.,1.)); -#300 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#301 = PCURVE('',#72,#302); -#302 = DEFINITIONAL_REPRESENTATION('',(#303),#307); -#303 = LINE('',#304,#305); -#304 = CARTESIAN_POINT('',(0.,20.)); -#305 = VECTOR('',#306,1.); -#306 = DIRECTION('',(1.,0.)); -#307 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#308 = ORIENTED_EDGE('',*,*,#84,.T.); -#309 = ORIENTED_EDGE('',*,*,#310,.T.); -#310 = EDGE_CURVE('',#85,#195,#311,.T.); -#311 = SURFACE_CURVE('',#312,(#316,#323),.PCURVE_S1.); -#312 = LINE('',#313,#314); -#313 = CARTESIAN_POINT('',(0.,20.,20.)); -#314 = VECTOR('',#315,1.); -#315 = DIRECTION('',(1.,0.,0.)); -#316 = PCURVE('',#100,#317); -#317 = DEFINITIONAL_REPRESENTATION('',(#318),#322); -#318 = LINE('',#319,#320); -#319 = CARTESIAN_POINT('',(20.,0.)); -#320 = VECTOR('',#321,1.); -#321 = DIRECTION('',(0.,1.)); -#322 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#323 = PCURVE('',#126,#324); -#324 = DEFINITIONAL_REPRESENTATION('',(#325),#329); -#325 = LINE('',#326,#327); -#326 = CARTESIAN_POINT('',(0.,20.)); -#327 = VECTOR('',#328,1.); -#328 = DIRECTION('',(1.,0.)); -#329 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#330 = ORIENTED_EDGE('',*,*,#194,.F.); -#331 = ADVANCED_FACE('',(#332),#72,.F.); -#332 = FACE_BOUND('',#333,.F.); -#333 = EDGE_LOOP('',(#334,#335,#336,#337)); -#334 = ORIENTED_EDGE('',*,*,#56,.F.); -#335 = ORIENTED_EDGE('',*,*,#241,.T.); -#336 = ORIENTED_EDGE('',*,*,#171,.T.); -#337 = ORIENTED_EDGE('',*,*,#288,.F.); -#338 = ADVANCED_FACE('',(#339),#126,.T.); -#339 = FACE_BOUND('',#340,.T.); -#340 = EDGE_LOOP('',(#341,#342,#343,#344)); -#341 = ORIENTED_EDGE('',*,*,#112,.F.); -#342 = ORIENTED_EDGE('',*,*,#263,.T.); -#343 = ORIENTED_EDGE('',*,*,#217,.T.); -#344 = ORIENTED_EDGE('',*,*,#310,.F.); -#345 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) -GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#349)) GLOBAL_UNIT_ASSIGNED_CONTEXT -((#346,#347,#348)) REPRESENTATION_CONTEXT('Context #1', - '3D Context with UNIT and UNCERTAINTY') ); -#346 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); -#347 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); -#348 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); -#349 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#346, - 'distance_accuracy_value','confusion accuracy'); -#350 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#7)); -ENDSEC; -END-ISO-10303-21; diff --git a/software/Print3r/models/cube.stl b/software/Print3r/models/cube.stl deleted file mode 100644 index 19ba57a9..00000000 --- a/software/Print3r/models/cube.stl +++ /dev/null @@ -1,86 +0,0 @@ -solid OpenSCAD_Model - facet normal -0 0 1 - outer loop - vertex 0 20 20 - vertex 20 0 20 - vertex 20 20 20 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20 0 20 - vertex 0 20 20 - vertex 0 0 20 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 0 0 0 - vertex 20 20 0 - vertex 20 0 0 - endloop - endfacet - facet normal -0 0 -1 - outer loop - vertex 20 20 0 - vertex 0 0 0 - vertex 0 20 0 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 0 0 0 - vertex 20 0 20 - vertex 0 0 20 - endloop - endfacet - facet normal 0 -1 -0 - outer loop - vertex 20 0 20 - vertex 0 0 0 - vertex 20 0 0 - endloop - endfacet - facet normal 1 -0 0 - outer loop - vertex 20 0 20 - vertex 20 20 0 - vertex 20 20 20 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 20 20 0 - vertex 20 0 20 - vertex 20 0 0 - endloop - endfacet - facet normal 0 1 -0 - outer loop - vertex 20 20 0 - vertex 0 20 20 - vertex 20 20 20 - endloop - endfacet - facet normal 0 1 0 - outer loop - vertex 0 20 20 - vertex 20 20 0 - vertex 0 20 0 - endloop - endfacet - facet normal -1 0 0 - outer loop - vertex 0 0 0 - vertex 0 20 20 - vertex 0 20 0 - endloop - endfacet - facet normal -1 -0 0 - outer loop - vertex 0 20 20 - vertex 0 0 0 - vertex 0 0 20 - endloop - endfacet -endsolid OpenSCAD_Model diff --git a/software/Print3r/models/cylinder.scad b/software/Print3r/models/cylinder.scad deleted file mode 100644 index 3c07f301..00000000 --- a/software/Print3r/models/cylinder.scad +++ /dev/null @@ -1 +0,0 @@ -cylinder(d=10,h=10,$fn=1000); diff --git a/software/Print3r/models/eggs minecraft-plain.3mf b/software/Print3r/models/eggs minecraft-plain.3mf deleted file mode 100644 index fc737755..00000000 Binary files a/software/Print3r/models/eggs minecraft-plain.3mf and /dev/null differ diff --git a/software/Print3r/models/example_01.amf b/software/Print3r/models/example_01.amf deleted file mode 100644 index 9bec0565..00000000 --- a/software/Print3r/models/example_01.amf +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - 000 - 100 - 010 - 110 - 0.50.51 - - - 210 - 014 - 412 - 042 - - - 231 - 134 - 432 - 421 - - - - diff --git a/software/Print3r/models/example_02.amf b/software/Print3r/models/example_02.amf deleted file mode 100644 index 0127d825..00000000 --- a/software/Print3r/models/example_02.amf +++ /dev/null @@ -1,38 +0,0 @@ - - - Split Pyramid - John Smith - - - - 000 - 100 - 010 - 110 - 0.50.51 - - - Hard side - 210 - 014 - 412 - 042 - - - Soft side - 231 - 134 - 432 - 421 - - - - - Hard material - 0.10.10.1 - - - Soft material - 00.90.90.5 - - diff --git a/software/Print3r/models/scad/washer.scad b/software/Print3r/models/scad/washer.scad deleted file mode 100644 index 36daf7ee..00000000 --- a/software/Print3r/models/scad/washer.scad +++ /dev/null @@ -1,10 +0,0 @@ -module washer(d,d2,t) { - d = d ? d : 5; - d2 = d2 ? d2 : d*1.8; - t = t ? t : 1; - $fn = 200; - difference() { - cylinder(d=d2,h=t); - cylinder(d=d+0.5,h=t); - } -} diff --git a/software/Print3r/models/teapot.obj b/software/Print3r/models/teapot.obj deleted file mode 100644 index c839837b..00000000 --- a/software/Print3r/models/teapot.obj +++ /dev/null @@ -1,9965 +0,0 @@ -v -3.000000 1.800000 0.000000 -v -2.991600 1.800000 -0.081000 -v -2.991600 1.800000 0.081000 -v -2.989450 1.666162 0.000000 -v -2.985000 1.921950 0.000000 -v -2.985000 1.921950 0.000000 -v -2.981175 1.667844 -0.081000 -v -2.981175 1.667844 0.081000 -v -2.976687 1.920243 -0.081000 -v -2.976687 1.920243 0.081000 -v -2.968800 1.800000 -0.144000 -v -2.968800 1.800000 0.144000 -v -2.958713 1.672406 -0.144000 -v -2.958713 1.672406 0.144000 -v -2.957600 1.534800 0.000000 -v -2.957600 1.534800 0.000000 -v -2.954122 1.915609 -0.144000 -v -2.954122 1.915609 0.144000 -v -2.949693 1.537790 -0.081000 -v -2.949693 1.537790 0.081000 -v -2.940000 2.019600 0.000000 -v -2.935200 1.800000 -0.189000 -v -2.935200 1.800000 0.189000 -v -2.931958 2.016526 0.081000 -v -2.931958 2.016526 -0.081000 -v -2.928230 1.545907 -0.144000 -v -2.928230 1.545907 0.144000 -v -2.925611 1.679131 -0.189000 -v -2.925611 1.679131 0.189000 -v -2.920870 1.908779 -0.189000 -v -2.920870 1.908779 0.189000 -v -2.910131 2.008181 -0.144000 -v -2.910131 2.008181 0.144000 -v -2.904150 1.406137 0.000000 -v -2.904150 1.406137 0.000000 -v -2.896846 1.410135 0.081000 -v -2.896846 1.410135 -0.081000 -v -2.896602 1.557869 -0.189000 -v -2.896602 1.557869 0.189000 -v -2.894400 1.800000 -0.216000 -v -2.894400 1.800000 0.216000 -v -2.885416 1.687296 -0.216000 -v -2.885416 1.687296 0.216000 -v -2.880491 1.900487 -0.216000 -v -2.880491 1.900487 0.216000 -v -2.877965 1.995883 -0.189000 -v -2.877965 1.995883 0.189000 -v -2.877022 1.420985 -0.144000 -v -2.877022 1.420985 0.144000 -v -2.865000 2.095650 0.000000 -v -2.858195 1.572394 0.216000 -v -2.858195 1.572394 -0.216000 -v -2.857432 2.091511 -0.081000 -v -2.857432 2.091511 0.081000 -v -2.850000 1.800000 -0.225000 -v -2.850000 1.800000 0.225000 -v -2.847806 1.436974 0.189000 -v -2.847806 1.436974 -0.189000 -v -2.841675 1.696181 0.225000 -v -2.841675 1.696181 -0.225000 -v -2.838906 1.980950 -0.216000 -v -2.838906 1.980950 0.216000 -v -2.836889 2.080276 -0.144000 -v -2.836889 2.080276 0.144000 -v -2.836550 1.891463 -0.225000 -v -2.836550 1.891463 0.225000 -v -2.828800 1.280400 0.000000 -v -2.822326 1.285171 -0.081000 -v -2.822326 1.285171 0.081000 -v -2.816400 1.588200 -0.225000 -v -2.816400 1.588200 0.225000 -v -2.812331 1.456390 0.216000 -v -2.812331 1.456390 -0.216000 -v -2.806615 2.063720 -0.189000 -v -2.806615 2.063720 0.189000 -v -2.805600 1.800000 -0.216000 -v -2.805600 1.800000 0.216000 -v -2.804755 1.298122 -0.144000 -v -2.804755 1.298122 0.144000 -v -2.797934 1.705067 -0.216000 -v -2.797934 1.705067 0.216000 -v -2.796400 1.964700 0.225000 -v -2.796400 1.964700 -0.225000 -v -2.792609 1.882438 -0.216000 -v -2.792609 1.882438 0.216000 -v -2.778861 1.317206 -0.189000 -v -2.778861 1.317206 0.189000 -v -2.774605 1.604006 0.216000 -v -2.774605 1.604006 -0.216000 -v -2.773725 1.477519 0.225000 -v -2.773725 1.477519 -0.225000 -v -2.769854 2.043616 -0.216000 -v -2.769854 2.043616 0.216000 -v -2.764800 1.800000 -0.189000 -v -2.764800 1.800000 0.189000 -v -2.760000 2.152800 0.000000 -v -2.760000 2.152800 0.000000 -v -2.757739 1.713232 -0.189000 -v -2.757739 1.713232 0.189000 -v -2.753894 1.948450 -0.216000 -v -2.753894 1.948450 0.216000 -v -2.753123 2.147861 -0.081000 -v -2.753123 2.147861 0.081000 -v -2.752230 1.874146 -0.189000 -v -2.752230 1.874146 0.189000 -v -2.747418 1.340381 -0.216000 -v -2.747418 1.340381 0.216000 -v -2.736198 1.618531 -0.189000 -v -2.736198 1.618531 0.189000 -v -2.735119 1.498648 0.216000 -v -2.735119 1.498648 -0.216000 -v -2.734458 2.134454 -0.144000 -v -2.734458 2.134454 0.144000 -v -2.731250 1.157813 0.000000 -v -2.731250 1.157813 0.000000 -v -2.731200 1.800000 -0.144000 -v -2.731200 1.800000 0.144000 -v -2.729850 2.021737 -0.225000 -v -2.729850 2.021737 0.225000 -v -2.725825 1.163194 0.081000 -v -2.725825 1.163194 -0.081000 -v -2.724637 1.719956 -0.144000 -v -2.724637 1.719956 0.144000 -v -2.718978 1.867316 -0.144000 -v -2.718978 1.867316 0.144000 -v -2.714835 1.933517 -0.189000 -v -2.714835 1.933517 0.189000 -v -2.713200 1.365600 -0.225000 -v -2.713200 1.365600 0.225000 -v -2.711100 1.177800 -0.144000 -v -2.711100 1.177800 0.144000 -v -2.708400 1.800000 -0.081000 -v -2.708400 1.800000 0.081000 -v -2.706950 2.114698 -0.189000 -v -2.706950 2.114698 0.189000 -v -2.704570 1.630493 -0.144000 -v -2.704570 1.630493 0.144000 -v -2.702175 1.724519 -0.081000 -v -2.702175 1.724519 0.081000 -v -2.700000 1.800000 0.000000 -v -2.699644 1.518063 0.189000 -v -2.699644 1.518063 -0.189000 -v -2.696413 1.862682 -0.081000 -v -2.696413 1.862682 0.081000 -v -2.693900 1.726200 0.000000 -v -2.689846 1.999859 -0.216000 -v -2.689846 1.999859 0.216000 -v -2.689400 1.199325 -0.189000 -v -2.689400 1.199325 0.189000 -v -2.688100 1.860975 0.000000 -v -2.688100 1.860975 0.000000 -v -2.683107 1.638610 -0.081000 -v -2.683107 1.638610 0.081000 -v -2.682669 1.921219 -0.144000 -v -2.682669 1.921219 0.144000 -v -2.678982 1.390819 -0.216000 -v -2.678982 1.390819 0.216000 -v -2.675200 1.641600 0.000000 -v -2.675200 1.641600 0.000000 -v -2.673549 2.090707 -0.216000 -v -2.673549 2.090707 0.216000 -v -2.670428 1.534053 -0.144000 -v -2.670428 1.534053 0.144000 -v -2.663050 1.225463 -0.216000 -v -2.663050 1.225463 0.216000 -v -2.660842 1.912874 0.081000 -v -2.660842 1.912874 -0.081000 -v -2.653085 1.979755 -0.189000 -v -2.653085 1.979755 0.189000 -v -2.652800 1.909800 0.000000 -v -2.652800 1.909800 0.000000 -v -2.650604 1.544903 0.081000 -v -2.650604 1.544903 -0.081000 -v -2.647539 1.413994 -0.189000 -v -2.647539 1.413994 0.189000 -v -2.643300 1.548900 0.000000 -v -2.637200 2.064600 -0.225000 -v -2.637200 2.064600 0.225000 -v -2.634375 1.253906 0.225000 -v -2.634375 1.253906 -0.225000 -v -2.625000 2.193750 0.000000 -v -2.622811 1.963199 -0.144000 -v -2.622811 1.963199 0.144000 -v -2.621645 1.433078 -0.144000 -v -2.621645 1.433078 0.144000 -v -2.619050 2.188238 -0.081000 -v -2.619050 2.188238 0.081000 -v -2.611200 1.038600 0.000000 -v -2.611200 1.038600 0.000000 -v -2.607034 1.044497 0.081000 -v -2.607034 1.044497 -0.081000 -v -2.605700 1.282350 -0.216000 -v -2.605700 1.282350 0.216000 -v -2.604074 1.446029 -0.081000 -v -2.604074 1.446029 0.081000 -v -2.602900 2.173275 -0.144000 -v -2.602900 2.173275 0.144000 -v -2.602268 1.951964 -0.081000 -v -2.602268 1.951964 0.081000 -v -2.600851 2.038493 -0.216000 -v -2.600851 2.038493 0.216000 -v -2.597600 1.450800 0.000000 -v -2.595725 1.060502 -0.144000 -v -2.595725 1.060502 0.144000 -v -2.594700 1.947825 0.000000 -v -2.579350 1.308488 -0.189000 -v -2.579350 1.308488 0.189000 -v -2.579100 2.151225 -0.189000 -v -2.579100 2.151225 0.189000 -v -2.579059 1.084090 -0.189000 -v -2.579059 1.084090 0.189000 -v -2.567450 2.014502 -0.189000 -v -2.567450 2.014502 0.189000 -v -2.558822 1.112731 0.216000 -v -2.558822 1.112731 -0.216000 -v -2.557650 1.330013 -0.144000 -v -2.557650 1.330013 0.144000 -v -2.550200 2.124450 -0.216000 -v -2.550200 2.124450 0.216000 -v -2.542925 1.344619 0.081000 -v -2.542925 1.344619 -0.081000 -v -2.539942 1.994746 -0.144000 -v -2.539942 1.994746 0.144000 -v -2.537500 1.350000 0.000000 -v -2.537500 1.350000 0.000000 -v -2.536800 1.143900 0.225000 -v -2.536800 1.143900 -0.225000 -v -2.521277 1.981339 -0.081000 -v -2.521277 1.981339 0.081000 -v -2.518750 2.095312 -0.225000 -v -2.518750 2.095312 0.225000 -v -2.514778 1.175069 0.216000 -v -2.514778 1.175069 -0.216000 -v -2.514400 1.976400 0.000000 -v -2.514400 1.976400 0.000000 -v -2.494541 1.203710 -0.189000 -v -2.494541 1.203710 0.189000 -v -2.487300 2.066175 -0.216000 -v -2.487300 2.066175 0.216000 -v -2.477875 1.227298 -0.144000 -v -2.477875 1.227298 0.144000 -v -2.468350 0.922987 0.000000 -v -2.466566 1.243303 0.081000 -v -2.466566 1.243303 -0.081000 -v -2.465644 0.929375 -0.081000 -v -2.465644 0.929375 0.081000 -v -2.462400 1.249200 0.000000 -v -2.462400 1.249200 0.000000 -v -2.460000 2.221200 0.000000 -v -2.460000 2.221200 0.000000 -v -2.458400 2.039400 -0.189000 -v -2.458400 2.039400 0.189000 -v -2.458298 0.946711 -0.144000 -v -2.458298 0.946711 0.144000 -v -2.455229 2.215303 -0.081000 -v -2.455229 2.215303 0.081000 -v -2.447474 0.972260 0.189000 -v -2.447474 0.972260 -0.189000 -v -2.442278 2.199298 -0.144000 -v -2.442278 2.199298 0.144000 -v -2.434600 2.017350 -0.144000 -v -2.434600 2.017350 0.144000 -v -2.434329 1.003283 -0.216000 -v -2.434329 1.003283 0.216000 -v -2.423194 2.175710 -0.189000 -v -2.423194 2.175710 0.189000 -v -2.420025 1.037044 -0.225000 -v -2.420025 1.037044 0.225000 -v -2.418450 2.002387 -0.081000 -v -2.418450 2.002388 0.081000 -v -2.412500 1.996875 0.000000 -v -2.412500 1.996875 0.000000 -v -2.405721 1.070804 -0.216000 -v -2.405721 1.070804 0.216000 -v -2.400019 2.147069 -0.216000 -v -2.400019 2.147069 0.216000 -v -2.392576 1.101828 -0.189000 -v -2.392576 1.101828 0.189000 -v -2.381752 1.127376 -0.144000 -v -2.381752 1.127376 0.144000 -v -2.374800 2.115900 -0.225000 -v -2.374800 2.115900 0.225000 -v -2.374406 1.144713 0.081000 -v -2.374406 1.144713 -0.081000 -v -2.371700 1.151100 0.000000 -v -2.349581 2.084731 -0.216000 -v -2.349581 2.084731 0.216000 -v -2.326406 2.056090 -0.189000 -v -2.326406 2.056090 0.189000 -v -2.307322 2.032502 -0.144000 -v -2.307322 2.032502 0.144000 -v -2.302400 0.811200 0.000000 -v -2.302400 0.811200 0.000000 -v -2.301347 0.818122 0.081000 -v -2.301347 0.818122 -0.081000 -v -2.298490 0.836909 0.144000 -v -2.298490 0.836909 -0.144000 -v -2.294371 2.016497 -0.081000 -v -2.294371 2.016497 0.081000 -v -2.294278 0.864595 0.189000 -v -2.294278 0.864595 -0.189000 -v -2.289600 2.010600 0.000000 -v -2.289600 2.010600 0.000000 -v -2.289165 0.898214 0.216000 -v -2.289165 0.898214 -0.216000 -v -2.283600 0.934800 0.225000 -v -2.283600 0.934800 -0.225000 -v -2.278035 0.971386 0.216000 -v -2.278035 0.971386 -0.216000 -v -2.272922 1.005005 0.189000 -v -2.272922 1.005005 -0.189000 -v -2.268710 1.032691 -0.144000 -v -2.268710 1.032691 0.144000 -v -2.265853 1.051478 0.081000 -v -2.265853 1.051478 -0.081000 -v -2.265000 2.237850 0.000000 -v -2.264800 1.058400 0.000000 -v -2.264800 1.058400 0.000000 -v -2.261676 2.231720 -0.081000 -v -2.261676 2.231720 0.081000 -v -2.252655 2.215082 -0.144000 -v -2.252655 2.215082 0.144000 -v -2.239361 2.190562 -0.189000 -v -2.239361 2.190562 0.189000 -v -2.223218 2.160788 -0.216000 -v -2.223218 2.160788 0.216000 -v -2.205650 2.128387 0.225000 -v -2.205650 2.128388 -0.225000 -v -2.188082 2.095987 -0.216000 -v -2.188082 2.095987 0.216000 -v -2.171939 2.066213 -0.189000 -v -2.171939 2.066213 0.189000 -v -2.158645 2.041693 -0.144000 -v -2.158645 2.041693 0.144000 -v -2.149624 2.025055 -0.081000 -v -2.149624 2.025055 0.081000 -v -2.146300 2.018925 0.000000 -v -2.141100 0.973800 0.000000 -v -2.141100 0.973800 0.000000 -v -2.140315 0.966231 0.081000 -v -2.140315 0.966231 -0.081000 -v -2.138183 0.945685 0.144000 -v -2.138183 0.945685 -0.144000 -v -2.135041 0.915407 0.189000 -v -2.135041 0.915407 -0.189000 -v -2.131226 0.878641 0.216000 -v -2.131226 0.878641 -0.216000 -v -2.127075 0.838631 0.225000 -v -2.127075 0.838631 -0.225000 -v -2.122924 0.798621 0.216000 -v -2.122924 0.798621 -0.216000 -v -2.119109 0.761855 0.189000 -v -2.119109 0.761855 -0.189000 -v -2.115967 0.731578 0.144000 -v -2.115967 0.731578 -0.144000 -v -2.113835 0.711032 0.081000 -v -2.113835 0.711032 -0.081000 -v -2.113050 0.703463 0.000000 -v -2.113050 0.703463 0.000000 -v -2.040000 2.246400 0.000000 -v -2.040000 2.246400 0.000000 -v -2.038410 2.240150 -0.081000 -v -2.038410 2.240150 0.081000 -v -2.034093 2.223187 -0.144000 -v -2.034093 2.223187 0.144000 -v -2.027731 2.198189 -0.189000 -v -2.027731 2.198189 0.189000 -v -2.020006 2.167834 0.216000 -v -2.020006 2.167834 -0.216000 -v -2.011600 2.134800 0.225000 -v -2.011600 2.134800 -0.225000 -v -2.003194 2.101766 0.216000 -v -2.003194 2.101766 -0.216000 -v -2.000000 0.900000 0.000000 -v -2.000000 0.900000 0.000000 -v -2.000000 0.900000 0.000000 -v -1.997200 0.891600 0.081000 -v -1.997200 0.891600 -0.081000 -v -1.995469 2.071411 -0.189000 -v -1.995469 2.071411 0.189000 -v -1.992750 1.037175 -0.000000 -v -1.992750 1.037175 0.000000 -v -1.989600 0.868800 0.144000 -v -1.989600 0.868800 -0.144000 -v -1.989107 2.046413 0.144000 -v -1.989107 2.046413 -0.144000 -v -1.986000 0.771675 0.000000 -v -1.986000 0.771675 0.000000 -v -1.984790 2.029450 -0.081000 -v -1.984790 2.029450 0.081000 -v -1.983200 2.023200 0.000000 -v -1.983200 2.023200 0.000000 -v -1.978400 0.835200 0.189000 -v -1.978400 0.835200 -0.189000 -v -1.974240 0.900000 -0.328160 -v -1.974240 0.900000 -0.328160 -v -1.974240 0.900000 0.328160 -v -1.972000 1.178400 -0.000000 -v -1.972000 1.178400 0.000000 -v -1.967083 1.037175 -0.326970 -v -1.967083 1.037175 0.326970 -v -1.964800 0.794400 0.216000 -v -1.964800 0.794400 -0.216000 -v -1.960420 0.771675 -0.325863 -v -1.960420 0.771675 0.325863 -v -1.950000 0.750000 -0.225000 -v -1.950000 0.750000 0.225000 -v -1.948000 0.656400 0.000000 -v -1.948000 0.656400 0.000000 -v -1.946601 1.178400 -0.323566 -v -1.946601 1.178400 0.323566 -v -1.939250 1.323225 0.000000 -v -1.939250 1.323225 0.000000 -v -1.935200 0.705600 0.216000 -v -1.935200 0.705600 -0.216000 -v -1.922910 0.656400 -0.319628 -v -1.922910 0.656400 0.319628 -v -1.921600 0.664800 0.189000 -v -1.921600 0.664800 -0.189000 -v -1.914272 1.323225 -0.318192 -v -1.914272 1.323225 0.318192 -v -1.910400 0.631200 0.144000 -v -1.910400 0.631200 -0.144000 -v -1.902800 0.608400 0.081000 -v -1.902800 0.608400 -0.081000 -v -1.900000 0.600000 0.000000 -v -1.900000 0.600000 0.000000 -v -1.899520 0.900000 -0.638080 -v -1.899520 0.900000 -0.638080 -v -1.899520 0.900000 0.638080 -v -1.899520 0.900000 0.638080 -v -1.896000 1.471200 0.000000 -v -1.896000 1.471200 0.000000 -v -1.892634 1.037175 -0.635767 -v -1.892634 1.037175 0.635767 -v -1.892000 0.553725 0.000000 -v -1.892000 0.553725 0.000000 -v -1.886223 0.771675 -0.633613 -v -1.886223 0.771675 0.633613 -v -1.872927 1.178400 -0.629147 -v -1.872927 1.178400 0.629147 -v -1.871580 1.471200 -0.311096 -v -1.871580 1.471200 0.311096 -v -1.867631 0.553725 -0.310439 -v -1.867631 0.553725 0.310439 -v -1.850132 0.656400 -0.621490 -v -1.850132 0.656400 0.621490 -v -1.843750 1.621875 0.000000 -v -1.843750 1.621875 0.000000 -v -1.841822 1.323225 -0.618698 -v -1.841822 1.323225 0.618698 -v -1.824000 0.463200 -0.000000 -v -1.824000 0.463200 0.000000 -v -1.820003 1.621875 -0.302522 -v -1.820003 1.621875 0.302523 -v -1.800900 2.024775 0.000000 -v -1.800745 1.471200 -0.604900 -v -1.800745 1.471200 0.604900 -v -1.800507 0.463200 -0.299282 -v -1.800507 0.463200 0.299282 -v -1.800455 2.031069 -0.081000 -v -1.800455 2.031069 0.081000 -v -1.799246 2.048152 -0.144000 -v -1.799246 2.048152 0.144000 -v -1.797466 2.073326 -0.189000 -v -1.797466 2.073326 0.189000 -v -1.796946 0.553725 -0.603624 -v -1.796946 0.553725 0.603624 -v -1.795303 2.103896 -0.216000 -v -1.795303 2.103896 0.216000 -v -1.792950 2.137163 -0.225000 -v -1.792950 2.137163 0.225000 -v -1.790597 2.170429 -0.216000 -v -1.790597 2.170429 0.216000 -v -1.788434 2.200999 -0.189000 -v -1.788434 2.200999 0.189000 -v -1.786654 2.226173 -0.144000 -v -1.786654 2.226173 0.144000 -v -1.785445 2.243256 -0.081000 -v -1.785445 2.243256 0.081000 -v -1.785000 2.249550 0.000000 -v -1.784000 1.774800 -0.000000 -v -1.784000 1.774800 0.000000 -v -1.779680 0.900000 -0.925920 -v -1.779680 0.900000 -0.925920 -v -1.779680 0.900000 0.925920 -v -1.779680 0.900000 0.925920 -v -1.773229 1.037175 -0.922564 -v -1.773229 1.037175 0.922564 -v -1.767222 0.771675 -0.919439 -v -1.767222 0.771675 0.919439 -v -1.761022 1.774800 -0.292719 -v -1.761022 1.774800 0.292719 -v -1.754764 1.178400 -0.912957 -v -1.754764 1.178400 0.912957 -v -1.751120 1.621875 -0.588230 -v -1.751120 1.621875 0.588230 -v -1.750000 0.384375 -0.000000 -v -1.750000 0.384375 0.000000 -v -1.733408 0.656400 -0.901846 -v -1.733408 0.656400 0.901846 -v -1.732362 0.463200 -0.581929 -v -1.732362 0.463200 0.581929 -v -1.727460 0.384375 -0.287140 -v -1.727460 0.384375 0.287140 -v -1.725622 1.323225 -0.897795 -v -1.725622 1.323225 0.897795 -v -1.718250 1.929525 -0.000000 -v -1.718250 1.929525 0.000000 -v -1.696119 1.929525 -0.281930 -v -1.696119 1.929525 0.281930 -v -1.694372 1.774800 -0.569167 -v -1.694372 1.774800 0.569167 -v -1.687137 1.471200 -0.877772 -v -1.687137 1.471200 0.877772 -v -1.683577 0.553725 -0.875920 -v -1.683577 0.553725 0.875920 -v -1.676000 0.316800 0.000000 -v -1.676000 0.316800 0.000000 -v -1.662080 0.384375 -0.558320 -v -1.662080 0.384375 0.558320 -v -1.654413 0.316800 -0.274998 -v -1.654413 0.316800 0.274998 -v -1.648000 2.085600 0.000000 -v -1.648000 2.085600 0.000000 -v -1.640643 1.621875 -0.853583 -v -1.640643 1.621875 0.853583 -v -1.631925 1.929525 -0.548190 -v -1.631925 1.929525 0.548190 -v -1.626774 2.085600 -0.270404 -v -1.626774 2.085600 0.270404 -v -1.623068 0.463200 -0.844439 -v -1.623068 0.463200 0.844439 -v -1.618560 0.900000 -1.187840 -v -1.618560 0.900000 -1.187840 -v -1.618560 0.900000 1.187840 -v -1.618560 0.900000 1.187840 -v -1.612693 1.037175 -1.183534 -v -1.612693 1.037175 1.183534 -v -1.608000 0.260025 -0.000000 -v -1.608000 0.260025 0.000000 -v -1.607230 0.771675 -1.179525 -v -1.607230 0.771675 1.179525 -v -1.600000 2.025000 0.000000 -v -1.597200 2.031300 -0.081000 -v -1.597200 2.031300 0.081000 -v -1.595900 1.178400 -1.171210 -v -1.595900 1.178400 1.171210 -v -1.591798 0.316800 -0.534711 -v -1.591798 0.316800 0.534711 -v -1.589600 2.048400 -0.144000 -v -1.589600 2.048400 0.144000 -v -1.587475 1.774800 -0.825921 -v -1.587475 1.774800 0.825921 -v -1.587289 0.260025 0.263841 -v -1.587289 0.260025 -0.263841 -v -1.578400 2.073600 -0.189000 -v -1.578400 2.073600 0.189000 -v -1.576477 0.656400 -1.156956 -v -1.576477 0.656400 1.156956 -v -1.574750 2.242575 0.000000 -v -1.574750 2.242575 0.000000 -v -1.569396 1.323225 -1.151759 -v -1.569396 1.323225 1.151759 -v -1.565204 2.085600 -0.525778 -v -1.565204 2.085600 0.525778 -v -1.564800 2.104200 -0.216000 -v -1.564800 2.104200 0.216000 -v -1.557220 0.384375 -0.810180 -v -1.557220 0.384375 0.810180 -v -1.554467 2.242575 -0.258385 -v -1.554467 2.242575 0.258385 -v -1.552000 0.213600 0.000000 -v -1.552000 0.213600 0.000000 -v -1.550000 2.137500 -0.225000 -v -1.550000 2.137500 0.225000 -v -1.535200 2.170800 -0.216000 -v -1.535200 2.170800 0.216000 -v -1.534395 1.471200 -1.126072 -v -1.534395 1.471200 1.126072 -v -1.532010 0.213600 0.254652 -v -1.532010 0.213600 -0.254652 -v -1.531158 0.553725 -1.123697 -v -1.531158 0.553725 1.123697 -v -1.528968 1.929525 -0.795481 -v -1.528968 1.929525 0.795481 -v -1.527214 0.260025 -0.513016 -v -1.527214 0.260025 0.513016 -v -1.521600 2.201400 -0.189000 -v -1.521600 2.201400 0.189000 -v -1.514000 0.177075 0.000000 -v -1.514000 0.177075 0.000000 -v -1.510400 2.226600 -0.144000 -v -1.510400 2.226600 0.144000 -v -1.502800 2.243700 -0.081000 -v -1.502800 2.243700 0.081000 -v -1.500000 2.400000 0.000000 -v -1.500000 0.150000 0.000000 -v -1.500000 2.250000 0.000000 -v -1.500000 2.400000 0.000000 -v -1.500000 0.150000 0.000000 -v -1.496475 0.127575 -0.000000 -v -1.496475 0.127575 0.000000 -v -1.495635 2.242575 -0.502408 -v -1.495635 2.242575 0.502408 -v -1.494500 0.177075 0.248417 -v -1.494500 0.177075 -0.248417 -v -1.492110 1.621875 -1.095040 -v -1.492110 1.621875 1.095040 -v -1.491372 0.316800 -0.775921 -v -1.491372 0.316800 0.775921 -v -1.480800 0.105600 0.000000 -v -1.480800 0.105600 -0.000000 -v -1.480680 2.400000 -0.246120 -v -1.480680 0.150000 0.246120 -v -1.480680 2.400000 0.246120 -v -1.480680 0.150000 -0.246120 -v -1.480680 0.150000 -0.246120 -v -1.480680 0.150000 0.246120 -v -1.480325 2.435437 0.000000 -v -1.480325 2.435437 0.000000 -v -1.477200 0.127575 0.245542 -v -1.477200 0.127575 -0.245542 -v -1.476127 0.463200 -1.083310 -v -1.476127 0.463200 1.083310 -v -1.474028 0.213600 0.495150 -v -1.474028 0.213600 -0.495150 -v -1.466456 2.085600 -0.762958 -v -1.466456 2.085600 0.762958 -v -1.461727 0.105600 -0.242970 -v -1.461727 0.105600 0.242970 -v -1.461258 2.435437 -0.242892 -v -1.461258 2.435437 0.242892 -v -1.459600 2.463000 0.000000 -v -1.459600 2.463000 0.000000 -v -1.445325 0.084525 0.000000 -v -1.445325 0.084525 0.000000 -v -1.443756 1.774800 -1.059553 -v -1.443756 1.774800 1.059553 -v -1.440800 2.463000 -0.239491 -v -1.440800 2.463000 0.239491 -v -1.439025 2.482687 0.000000 -v -1.437937 0.177075 0.483027 -v -1.437937 0.177075 -0.483027 -v -1.430863 0.260025 0.744440 -v -1.430863 0.260025 -0.744440 -v -1.426709 0.084525 -0.237149 -v -1.426709 0.084525 0.237149 -v -1.424640 2.400000 -0.478560 -v -1.424640 0.150000 -0.478560 -v -1.424640 0.150000 -0.478560 -v -1.424640 0.150000 0.478560 -v -1.424640 0.150000 0.478560 -v -1.424640 2.400000 0.478560 -v -1.421292 0.127575 0.477435 -v -1.421292 0.127575 -0.477435 -v -1.420490 2.482687 -0.236115 -v -1.420490 2.482687 0.236115 -v -1.420000 0.900000 -1.420000 -v -1.420000 0.900000 -1.420000 -v -1.420000 0.900000 1.420000 -v -1.420000 0.900000 1.420000 -v -1.419800 2.494500 0.000000 -v -1.419800 2.494500 0.000000 -v -1.416240 0.384375 -1.039360 -v -1.416240 0.384375 1.039360 -v -1.414853 1.037175 -1.414853 -v -1.414853 1.037175 1.414853 -v -1.410060 0.771675 -1.410060 -v -1.410060 0.771675 1.410060 -v -1.406405 0.105600 -0.472434 -v -1.406405 0.105600 0.472434 -v -1.405953 2.435437 -0.472283 -v -1.405953 2.435437 0.472283 -v -1.403125 2.498438 0.000000 -v -1.403125 2.498438 0.000000 -v -1.401513 2.494500 -0.232961 -v -1.401513 2.494500 0.232961 -v -1.401276 2.242575 -0.729046 -v -1.401276 2.242575 0.729046 -v -1.400120 1.178400 -1.400120 -v -1.400120 1.178400 1.400120 -v -1.400000 2.400000 0.000000 -v -1.400000 2.400000 0.000000 -v -1.390545 1.929525 -1.020503 -v -1.390545 1.929525 1.020503 -v -1.390200 2.494500 0.000000 -v -1.390200 2.494500 0.000000 -v -1.386270 2.463000 -0.465671 -v -1.386270 2.463000 0.465671 -v -1.385925 2.435437 0.000000 -v -1.385925 2.435437 0.000000 -v -1.385053 2.498438 -0.230225 -v -1.385053 2.498438 0.230225 -v -1.383080 0.656400 -1.383080 -v -1.383080 0.656400 1.383080 -v -1.382400 0.064800 -0.000000 -v -1.382400 0.064800 0.000000 -v -1.382225 2.482687 -0.000000 -v -1.382225 2.482687 0.000000 -v -1.381968 2.400000 -0.229712 -v -1.381968 2.400000 0.229712 -v -1.381032 0.213600 0.718514 -v -1.381032 0.213600 -0.718514 -v -1.380400 2.463000 0.000000 -v -1.380400 2.463000 0.000000 -v -1.376868 1.323225 -1.376867 -v -1.376867 1.323225 1.376868 -v -1.372712 0.084525 -0.461116 -v -1.372712 0.084525 0.461116 -v -1.372294 2.494500 -0.228104 -v -1.372294 2.494500 0.228104 -v -1.368074 2.435437 -0.227403 -v -1.368074 2.435437 0.227403 -v -1.366728 2.482687 -0.459107 -v -1.366728 2.482687 0.459107 -v -1.364595 0.064800 -0.226824 -v -1.364595 0.064800 0.226824 -v -1.364422 2.482687 -0.226795 -v -1.364422 2.482687 0.226795 -v -1.362620 2.463000 -0.226496 -v -1.362620 2.463000 0.226496 -v -1.356353 0.316800 -0.995410 -v -1.356353 0.316800 0.995410 -v -1.348469 2.494500 -0.452973 -v -1.348469 2.494500 0.452973 -v -1.347218 0.177075 0.700921 -v -1.347218 0.177075 -0.700921 -v -1.346160 1.471200 -1.346160 -v -1.346160 1.471200 1.346160 -v -1.343320 0.553725 -1.343320 -v -1.343320 0.553725 1.343320 -v -1.334760 2.400000 -0.694440 -v -1.334760 0.150000 -0.694440 -v -1.334760 0.150000 0.694440 -v -1.334760 0.150000 0.694440 -v -1.334760 2.400000 0.694440 -v -1.334760 0.150000 -0.694440 -v -1.333693 2.085600 -0.978780 -v -1.333693 2.085600 0.978780 -v -1.332632 2.498438 -0.447653 -v -1.332632 2.498438 0.447653 -v -1.331623 0.127575 0.692808 -v -1.331623 0.127575 -0.692808 -v -1.329664 2.400000 -0.446656 -v -1.329664 2.400000 0.446656 -v -1.320356 2.494500 -0.443529 -v -1.320356 2.494500 0.443529 -v -1.317675 0.105600 -0.685551 -v -1.317675 0.105600 0.685551 -v -1.317252 2.435437 -0.685331 -v -1.317252 2.435437 0.685331 -v -1.316296 2.435437 -0.442166 -v -1.316296 2.435437 0.442166 -v -1.312948 0.064800 0.441041 -v -1.312948 0.064800 -0.441041 -v -1.312782 2.482687 -0.440985 -v -1.312782 2.482687 0.440985 -v -1.311049 2.463000 -0.440403 -v -1.311049 2.463000 0.440403 -v -1.309063 1.621875 -1.309063 -v -1.309063 1.621875 1.309063 -v -1.301322 0.260025 0.955023 -v -1.301322 0.260025 -0.955023 -v -1.300000 2.400000 0.000000 -v -1.300000 2.400000 0.000000 -v -1.298810 2.463000 -0.675736 -v -1.298810 2.463000 0.675736 -v -1.295040 0.463200 -1.295040 -v -1.295040 0.463200 1.295040 -v -1.286108 0.084525 -0.669128 -v -1.286108 0.084525 0.669128 -v -1.284375 0.046875 0.000000 -v -1.284375 0.046875 0.000000 -v -1.283256 2.400000 -0.213304 -v -1.283256 2.400000 0.213304 -v -1.280502 2.482687 -0.666211 -v -1.280502 2.482687 0.666211 -v -1.274600 2.440800 0.000000 -v -1.274600 2.440800 0.000000 -v -1.274414 2.242575 -0.935276 -v -1.274414 2.242575 0.935276 -v -1.267832 0.046875 -0.210740 -v -1.267832 0.046875 0.210740 -v -1.266640 1.774800 -1.266640 -v -1.266640 1.774800 1.266640 -v -1.263395 2.494500 -0.657311 -v -1.263395 2.494500 0.657311 -v -1.258183 2.440800 0.209136 -v -1.258183 2.440800 -0.209136 -v -1.256003 0.213600 0.921764 -v -1.256003 0.213600 -0.921764 -v -1.248557 2.498438 -0.649591 -v -1.248557 2.498438 0.649591 -v -1.245776 2.400000 -0.648144 -v -1.245776 2.400000 0.648144 -v -1.242500 0.384375 -1.242500 -v -1.242500 0.384375 1.242500 -v -1.237056 2.494500 -0.643607 -v -1.237056 2.494500 0.643607 -v -1.234688 2.400000 -0.414752 -v -1.234688 2.400000 0.414752 -v -1.233252 2.435437 -0.641628 -v -1.233252 2.435437 0.641628 -v -1.230115 0.064800 -0.639996 -v -1.230115 0.064800 0.639996 -v -1.229959 2.482687 -0.639915 -v -1.229959 2.482687 0.639915 -v -1.228335 2.463000 -0.639070 -v -1.228335 2.463000 0.639070 -v -1.225250 0.177075 0.899195 -v -1.225250 0.177075 -0.899195 -v -1.219958 1.929525 1.219958 -v -1.219958 1.929525 -1.219958 -v -1.219848 0.046875 -0.409767 -v -1.219848 0.046875 0.409767 -v -1.213920 2.400000 -0.890880 -v -1.213920 0.150000 -0.890880 -v -1.213920 0.150000 -0.890880 -v -1.213920 0.150000 0.890880 -v -1.213920 0.150000 0.890880 -v -1.213920 2.400000 0.890880 -v -1.211067 0.127575 0.888786 -v -1.211067 0.127575 -0.888786 -v -1.210564 2.440800 0.406648 -v -1.210564 2.440800 -0.406648 -v -1.204800 2.474400 0.000000 -v -1.204800 2.474400 0.000000 -v -1.198382 0.105600 -0.879477 -v -1.198382 0.105600 0.879477 -v -1.197997 2.435437 -0.879195 -v -1.197997 2.435437 0.879195 -v -1.189960 0.316800 -1.189960 -v -1.189960 0.316800 1.189960 -v -1.189282 2.474400 -0.197684 -v -1.189282 2.474400 0.197684 -v -1.187840 0.900000 -1.618560 -v -1.187840 0.900000 -1.618560 -v -1.187840 0.900000 1.618560 -v -1.187840 0.900000 1.618560 -v -1.183534 1.037175 -1.612693 -v -1.183534 1.037175 1.612693 -v -1.181225 2.463000 -0.866886 -v -1.181225 2.463000 0.866886 -v -1.179525 0.771675 -1.607230 -v -1.179525 0.771675 1.607230 -v -1.171210 1.178400 -1.595900 -v -1.171210 1.178400 1.595900 -v -1.170080 2.085600 -1.170080 -v -1.170080 2.085600 1.170080 -v -1.169673 0.084525 -0.858407 -v -1.169673 0.084525 0.858407 -v -1.164574 2.482687 -0.854666 -v -1.164574 2.482687 0.854666 -v -1.156956 0.656400 -1.576477 -v -1.156956 0.656400 1.576477 -v -1.156792 2.400000 -0.601848 -v -1.156792 2.400000 0.601848 -v -1.151759 1.323225 -1.569396 -v -1.151759 1.323225 1.569396 -v -1.149016 2.494500 -0.843248 -v -1.149016 2.494500 0.843248 -v -1.144271 2.474400 -0.384379 -v -1.144271 2.474400 0.384379 -v -1.143600 0.031200 0.000000 -v -1.143600 0.031200 0.000000 -v -1.142888 0.046875 -0.594614 -v -1.142888 0.046875 0.594614 -v -1.141680 0.260025 1.141680 -v -1.141680 0.260025 -1.141680 -v -1.135521 2.498438 -0.833344 -v -1.135521 2.498438 0.833344 -v -1.134190 2.440800 0.590089 -v -1.134190 2.440800 -0.590089 -v -1.132992 2.400000 -0.831488 -v -1.132992 2.400000 0.831488 -v -1.128870 0.031200 -0.187642 -v -1.128870 0.031200 0.187642 -v -1.126072 1.471200 -1.534395 -v -1.126072 1.471200 1.534395 -v -1.125061 2.494500 -0.825668 -v -1.125061 2.494500 0.825668 -v -1.123697 0.553725 -1.531158 -v -1.123697 0.553725 1.531158 -v -1.121601 2.435437 -0.823129 -v -1.121601 2.435437 0.823129 -v -1.118749 0.064800 -0.821035 -v -1.118749 0.064800 0.821035 -v -1.118607 2.482687 -0.820931 -v -1.118607 2.482687 0.820931 -v -1.118073 2.242575 -1.118073 -v -1.118073 2.242575 1.118073 -v -1.117130 2.463000 -0.819847 -v -1.117130 2.463000 0.819847 -v -1.101920 0.213600 1.101920 -v -1.101920 0.213600 -1.101920 -v -1.100200 2.502600 0.000000 -v -1.100200 2.502600 0.000000 -v -1.095040 1.621875 -1.492110 -v -1.095040 1.621875 1.492110 -v -1.086146 0.031200 0.364854 -v -1.086146 0.031200 -0.364854 -v -1.086029 2.502600 0.180521 -v -1.086029 2.502600 -0.180521 -v -1.083310 0.463200 -1.476127 -v -1.083310 0.463200 1.476127 -v -1.074940 0.177075 -1.074940 -v -1.074940 0.177075 1.074940 -v -1.072079 2.474400 -0.557774 -v -1.072079 2.474400 0.557774 -v -1.065000 2.400000 -1.065000 -v -1.065000 0.150000 -1.065000 -v -1.065000 0.150000 1.065000 -v -1.065000 2.400000 1.065000 -v -1.062497 0.127575 1.062497 -v -1.062497 0.127575 -1.062497 -v -1.059553 1.774800 -1.443756 -v -1.059553 1.774800 1.443756 -v -1.052064 2.400000 -0.772096 -v -1.052064 2.400000 0.772096 -v -1.051368 0.105600 -1.051368 -v -1.051368 0.105600 1.051368 -v -1.051031 2.435437 -1.051031 -v -1.051031 2.435437 1.051031 -v -1.044926 2.502600 -0.351008 -v -1.044926 2.502600 0.351008 -v -1.039419 0.046875 -0.762816 -v -1.039419 0.046875 0.762816 -v -1.039360 0.384375 -1.416240 -v -1.039360 0.384375 1.416240 -v -1.036316 2.463000 -1.036316 -v -1.036316 2.463000 1.036316 -v -1.031508 2.440800 0.757010 -v -1.031508 2.440800 -0.757010 -v -1.026181 0.084525 -1.026181 -v -1.026181 0.084525 1.026181 -v -1.021708 2.482687 -1.021708 -v -1.021708 2.482687 1.021708 -v -1.020503 1.929525 -1.390545 -v -1.020503 1.929525 1.390545 -v -1.017621 0.031200 0.529441 -v -1.017621 0.031200 -0.529441 -v -1.008058 2.494500 -1.008058 -v -1.008058 2.494500 1.008058 -v -0.996219 2.498438 -0.996219 -v -0.996219 2.498438 0.996219 -v -0.995410 0.316800 -1.356353 -v -0.995410 0.316800 1.356353 -v -0.994000 2.400000 -0.994000 -v -0.994000 2.400000 0.994000 -v -0.987042 2.494500 -0.987042 -v -0.987042 2.494500 0.987042 -v -0.984007 2.435437 -0.984007 -v -0.984007 2.435437 0.984007 -v -0.981504 0.064800 0.981504 -v -0.981504 0.064800 -0.981504 -v -0.981380 2.482687 -0.981380 -v -0.981380 2.482687 0.981380 -v -0.980084 2.463000 -0.980084 -v -0.980084 2.463000 0.980084 -v -0.979002 2.502600 0.509349 -v -0.979002 2.502600 -0.509349 -v -0.978780 2.085600 -1.333693 -v -0.978780 2.085600 1.333693 -v -0.975021 2.474400 -0.715555 -v -0.975021 2.474400 0.715555 -v -0.970400 2.527200 0.000000 -v -0.970400 2.527200 0.000000 -v -0.957901 2.527200 -0.159223 -v -0.957901 2.527200 0.159223 -v -0.955023 0.260025 1.301322 -v -0.955023 0.260025 -1.301322 -v -0.952425 0.018225 -0.000000 -v -0.952425 0.018225 0.000000 -v -0.940158 0.018225 0.156274 -v -0.940158 0.018225 -0.156274 -v -0.935276 2.242575 -1.274414 -v -0.935276 2.242575 1.274414 -v -0.925920 0.900000 -1.779680 -v -0.925920 0.900000 1.779680 -v -0.925920 0.900000 1.779680 -v -0.925920 0.900000 -1.779680 -v -0.925493 0.031200 0.679207 -v -0.925493 0.031200 -0.679207 -v -0.923000 2.400000 -0.923000 -v -0.923000 2.400000 0.923000 -v -0.922564 1.037175 1.773229 -v -0.922564 1.037175 -1.773229 -v -0.921764 0.213600 1.256003 -v -0.921764 0.213600 -1.256003 -v -0.921647 2.527200 -0.309596 -v -0.921647 2.527200 0.309596 -v -0.919439 0.771675 -1.767222 -v -0.919439 0.771675 1.767222 -v -0.912957 1.178400 -1.754764 -v -0.912957 1.178400 1.754764 -v -0.911906 0.046875 -0.911906 -v -0.911906 0.046875 0.911906 -v -0.904966 2.440800 0.904966 -v -0.904966 2.440800 -0.904966 -v -0.904575 0.018225 0.303862 -v -0.904575 0.018225 -0.303862 -v -0.901846 0.656400 -1.733408 -v -0.901846 0.656400 1.733408 -v -0.899195 0.177075 1.225250 -v -0.899195 0.177075 -1.225250 -v -0.897795 1.323225 -1.725622 -v -0.897795 1.323225 1.725622 -v -0.890880 0.150000 -1.213920 -v -0.890880 0.150000 1.213920 -v -0.890880 2.400000 -1.213920 -v -0.890880 0.150000 -1.213920 -v -0.890880 0.150000 1.213920 -v -0.890880 2.400000 1.213920 -v -0.890370 2.502600 -0.653431 -v -0.890370 2.502600 0.653431 -v -0.888786 0.127575 1.211067 -v -0.888786 0.127575 -1.211067 -v -0.879477 0.105600 -1.198382 -v -0.879477 0.105600 1.198382 -v -0.879195 2.435437 -1.197997 -v -0.879195 2.435437 1.197997 -v -0.877772 1.471200 -1.687137 -v -0.877772 1.471200 1.687137 -v -0.875920 0.553725 -1.683577 -v -0.875920 0.553725 1.683577 -v -0.866886 2.463000 -1.181225 -v -0.866886 2.463000 1.181225 -v -0.863501 2.527200 -0.449256 -v -0.863501 2.527200 0.449256 -v -0.858407 0.084525 -1.169673 -v -0.858407 0.084525 1.169673 -v -0.855408 2.474400 -0.855408 -v -0.855408 2.474400 0.855408 -v -0.854666 2.482687 -1.164574 -v -0.854666 2.482687 1.164574 -v -0.853583 1.621875 -1.640643 -v -0.853583 1.621875 1.640643 -v -0.847506 0.018225 -0.440935 -v -0.847506 0.018225 0.440935 -v -0.844439 0.463200 1.623068 -v -0.844439 0.463200 -1.623068 -v -0.843248 2.494500 -1.149016 -v -0.843248 2.494500 1.149016 -v -0.833344 2.498438 -1.135521 -v -0.833344 2.498438 1.135521 -v -0.831488 2.400000 -1.132992 -v -0.831488 2.400000 1.132992 -v -0.825921 1.774800 1.587475 -v -0.825921 1.774800 -1.587475 -v -0.825668 2.494500 -1.125061 -v -0.825668 2.494500 1.125061 -v -0.825000 2.550000 0.000000 -v -0.825000 2.550000 0.000000 -v -0.823129 2.435437 -1.121601 -v -0.823129 2.435437 1.121601 -v -0.821035 0.064800 1.118749 -v -0.821035 0.064800 -1.118749 -v -0.820931 2.482687 1.118607 -v -0.820931 2.482687 -1.118607 -v -0.819847 2.463000 -1.117130 -v -0.819847 2.463000 1.117130 -v -0.814374 2.550000 -0.135366 -v -0.814374 2.550000 0.135366 -v -0.811956 0.031200 0.811956 -v -0.811956 0.031200 -0.811956 -v -0.810180 0.384375 1.557220 -v -0.810180 0.384375 -1.557220 -v -0.795481 1.929525 1.528968 -v -0.795481 1.929525 -1.528968 -v -0.785325 2.527200 -0.576340 -v -0.785325 2.527200 0.576340 -v -0.783552 2.550000 -0.263208 -v -0.783552 2.550000 0.263208 -v -0.781142 2.502600 -0.781142 -v -0.781142 2.502600 0.781142 -v -0.775921 0.316800 -1.491372 -v -0.775921 0.316800 1.491372 -v -0.772096 2.400000 -1.052064 -v -0.772096 2.400000 1.052064 -v -0.770779 0.018225 0.565664 -v -0.770779 0.018225 -0.565664 -v -0.762958 2.085600 -1.466456 -v -0.762958 2.085600 1.466456 -v -0.762816 0.046875 -1.039419 -v -0.762816 0.046875 1.039419 -v -0.757010 2.440800 1.031508 -v -0.757010 2.440800 -1.031508 -v -0.744440 0.260025 1.430863 -v -0.744440 0.260025 -1.430863 -v -0.734118 2.550000 -0.381942 -v -0.734118 2.550000 0.381942 -v -0.729046 2.242575 -1.401276 -v -0.729046 2.242575 1.401276 -v -0.718514 0.213600 1.381032 -v -0.718514 0.213600 -1.381032 -v -0.715555 2.474400 -0.975021 -v -0.715555 2.474400 0.975021 -v -0.703200 0.008400 0.000000 -v -0.700921 0.177075 1.347218 -v -0.700921 0.177075 -1.347218 -v -0.694440 0.150000 -1.334760 -v -0.694440 0.150000 1.334760 -v -0.694440 2.400000 1.334760 -v -0.694440 0.150000 1.334760 -v -0.694440 2.400000 -1.334760 -v -0.694440 0.150000 -1.334760 -v -0.694143 0.008400 -0.115381 -v -0.694143 0.008400 0.115381 -v -0.692808 0.127575 1.331623 -v -0.692808 0.127575 -1.331623 -v -0.688984 2.527200 -0.688984 -v -0.688984 2.527200 0.688984 -v -0.685551 0.105600 -1.317675 -v -0.685551 0.105600 1.317675 -v -0.685331 2.435437 -1.317252 -v -0.685331 2.435437 1.317252 -v -0.679207 0.031200 -0.925493 -v -0.679207 0.031200 0.925493 -v -0.676222 0.018225 0.676222 -v -0.676222 0.018225 -0.676222 -v -0.675736 2.463000 -1.298810 -v -0.675736 2.463000 1.298810 -v -0.673600 2.572800 0.000000 -v -0.673600 2.572800 0.000000 -v -0.669128 0.084525 -1.286108 -v -0.669128 0.084525 1.286108 -v -0.667871 0.008400 -0.224349 -v -0.667871 0.008400 0.224349 -v -0.667656 2.550000 -0.489984 -v -0.667656 2.550000 0.489984 -v -0.666211 2.482687 1.280502 -v -0.666211 2.482687 -1.280502 -v -0.664924 2.572800 -0.110524 -v -0.664924 2.572800 0.110524 -v -0.657311 2.494500 -1.263395 -v -0.657311 2.494500 1.263395 -v -0.653431 2.502600 -0.890370 -v -0.653431 2.502600 0.890370 -v -0.649591 2.498438 -1.248557 -v -0.649591 2.498438 1.248557 -v -0.648144 2.400000 -1.245776 -v -0.648144 2.400000 1.245776 -v -0.643607 2.494500 -1.237056 -v -0.643607 2.494500 1.237056 -v -0.641628 2.435437 -1.233252 -v -0.641628 2.435437 1.233252 -v -0.639996 0.064800 -1.230115 -v -0.639996 0.064800 1.230115 -v -0.639915 2.482687 1.229959 -v -0.639915 2.482687 -1.229959 -v -0.639758 2.572800 -0.214905 -v -0.639758 2.572800 0.214905 -v -0.639070 2.463000 -1.228335 -v -0.639070 2.463000 1.228335 -v -0.638080 0.900000 -1.899520 -v -0.638080 0.900000 -1.899520 -v -0.638080 0.900000 1.899520 -v -0.638080 0.900000 1.899520 -v -0.635767 1.037175 -1.892634 -v -0.635767 1.037175 1.892634 -v -0.633613 0.771675 -1.886223 -v -0.633613 0.771675 1.886223 -v -0.629147 1.178400 -1.872927 -v -0.629147 1.178400 1.872927 -v -0.625735 0.008400 0.325553 -v -0.625735 0.008400 -0.325553 -v -0.621490 0.656400 -1.850132 -v -0.621490 0.656400 1.850132 -v -0.618698 1.323225 -1.841822 -v -0.618698 1.323225 1.841822 -v -0.604900 1.471200 -1.800745 -v -0.604900 1.471200 1.800745 -v -0.603624 0.553725 -1.796946 -v -0.603624 0.553725 1.796946 -v -0.601848 2.400000 -1.156792 -v -0.601848 2.400000 1.156792 -v -0.599396 2.572800 -0.311850 -v -0.599396 2.572800 0.311850 -v -0.594614 0.046875 -1.142888 -v -0.594614 0.046875 1.142888 -v -0.590089 2.440800 1.134190 -v -0.590089 2.440800 -1.134190 -v -0.588230 1.621875 -1.751120 -v -0.588230 1.621875 1.751120 -v -0.585750 2.550000 -0.585750 -v -0.585750 2.550000 0.585750 -v -0.581929 0.463200 -1.732362 -v -0.581929 0.463200 1.732362 -v -0.576340 2.527200 -0.785325 -v -0.576340 2.527200 0.785325 -v -0.569167 1.774800 -1.694372 -v -0.569167 1.774800 1.694372 -v -0.569086 0.008400 -0.417645 -v -0.569086 0.008400 0.417645 -v -0.565664 0.018225 0.770779 -v -0.565664 0.018225 -0.770779 -v -0.558320 0.384375 -1.662080 -v -0.558320 0.384375 1.662080 -v -0.557774 2.474400 -1.072079 -v -0.557774 2.474400 1.072079 -v -0.548190 1.929525 -1.631925 -v -0.548190 1.929525 1.631925 -v -0.545131 2.572800 -0.400065 -v -0.545131 2.572800 0.400065 -v -0.534711 0.316800 -1.591798 -v -0.534711 0.316800 1.591798 -v -0.529441 0.031200 -1.017621 -v -0.529441 0.031200 1.017621 -v -0.525800 2.597400 0.000000 -v -0.525800 2.597400 0.000000 -v -0.525778 2.085600 -1.565204 -v -0.525778 2.085600 1.565204 -v -0.519028 2.597400 0.086273 -v -0.519028 2.597400 -0.086273 -v -0.513016 0.260025 -1.527214 -v -0.513016 0.260025 1.527214 -v -0.509349 2.502600 0.979002 -v -0.509349 2.502600 -0.979002 -v -0.502408 2.242575 -1.495635 -v -0.502408 2.242575 1.495635 -v -0.499384 2.597400 -0.167751 -v -0.499384 2.597400 0.167751 -v -0.499272 0.008400 -0.499272 -v -0.499272 0.008400 0.499272 -v -0.495150 0.213600 -1.474028 -v -0.495150 0.213600 1.474028 -v -0.489984 2.550000 -0.667656 -v -0.489984 2.550000 0.667656 -v -0.483027 0.177075 -1.437937 -v -0.483027 0.177075 1.437937 -v -0.478560 0.150000 1.424640 -v -0.478560 2.400000 -1.424640 -v -0.478560 0.150000 -1.424640 -v -0.478560 0.150000 -1.424640 -v -0.478560 0.150000 1.424640 -v -0.478560 2.400000 1.424640 -v -0.478256 2.572800 -0.478256 -v -0.478256 2.572800 0.478256 -v -0.477435 0.127575 1.421292 -v -0.477435 0.127575 -1.421292 -v -0.472434 0.105600 1.406405 -v -0.472434 0.105600 -1.406405 -v -0.472283 2.435437 -1.405953 -v -0.472283 2.435437 1.405953 -v -0.467878 2.597400 -0.243424 -v -0.467878 2.597400 0.243424 -v -0.465671 2.463000 -1.386270 -v -0.465671 2.463000 1.386270 -v -0.461116 0.084525 1.372712 -v -0.461116 0.084525 -1.372712 -v -0.459107 2.482687 -1.366728 -v -0.459107 2.482687 1.366728 -v -0.452973 2.494500 -1.348469 -v -0.452973 2.494500 1.348469 -v -0.449256 2.527200 -0.863501 -v -0.449256 2.527200 0.863501 -v -0.447653 2.498438 -1.332632 -v -0.447653 2.498438 1.332632 -v -0.446656 2.400000 -1.329664 -v -0.446656 2.400000 1.329664 -v -0.443529 2.494500 -1.320356 -v -0.443529 2.494500 1.320356 -v -0.442166 2.435437 -1.316296 -v -0.442166 2.435437 1.316296 -v -0.441041 0.064800 1.312948 -v -0.441041 0.064800 -1.312948 -v -0.440985 2.482687 -1.312782 -v -0.440985 2.482687 1.312782 -v -0.440935 0.018225 0.847506 -v -0.440935 0.018225 -0.847506 -v -0.440403 2.463000 -1.311049 -v -0.440403 2.463000 1.311049 -v -0.425519 2.597400 0.312283 -v -0.425519 2.597400 -0.312283 -v -0.417645 0.008400 -0.569086 -v -0.417645 0.008400 0.569086 -v -0.414752 2.400000 -1.234688 -v -0.414752 2.400000 1.234688 -v -0.409767 0.046875 1.219848 -v -0.409767 0.046875 -1.219848 -v -0.406648 2.440800 -1.210564 -v -0.406648 2.440800 1.210564 -v -0.400065 2.572800 -0.545131 -v -0.400065 2.572800 0.545131 -v -0.391200 2.625600 0.000000 -v -0.391200 2.625600 0.000000 -v -0.388275 0.002175 -0.000000 -v -0.388275 0.002175 0.000000 -v -0.386161 2.625600 -0.064188 -v -0.386161 2.625600 0.064188 -v -0.384379 2.474400 -1.144271 -v -0.384379 2.474400 1.144271 -v -0.383274 0.002175 -0.063708 -v -0.383274 0.002175 0.063708 -v -0.381942 2.550000 -0.734118 -v -0.381942 2.550000 0.734118 -v -0.373318 2.597400 -0.373318 -v -0.373318 2.597400 0.373318 -v -0.371546 2.625600 -0.124808 -v -0.371546 2.625600 0.124808 -v -0.368768 0.002175 -0.123875 -v -0.368768 0.002175 0.123875 -v -0.364854 0.031200 1.086146 -v -0.364854 0.031200 -1.086146 -v -0.358400 3.034800 0.000000 -v -0.358400 3.034800 0.000000 -v -0.358200 3.081150 0.000000 -v -0.358200 3.081150 0.000000 -v -0.353807 3.034800 -0.059016 -v -0.353807 3.034800 0.059016 -v -0.353610 3.081150 -0.058988 -v -0.353610 3.081150 0.058988 -v -0.351008 2.502600 -1.044926 -v -0.351008 2.502600 1.044926 -v -0.348105 2.625600 -0.181110 -v -0.348105 2.625600 0.181110 -v -0.345503 0.002175 -0.179756 -v -0.345503 0.002175 0.179756 -v -0.340477 3.034800 -0.114676 -v -0.340477 3.034800 0.114676 -v -0.340289 3.081150 -0.114619 -v -0.340289 3.081150 0.114619 -v -0.328160 0.900000 -1.974240 -v -0.328160 0.900000 1.974240 -v -0.328160 0.900000 1.974240 -v -0.326970 1.037175 -1.967083 -v -0.326970 1.037175 1.967083 -v -0.325863 0.771675 -1.960420 -v -0.325863 0.771675 1.960420 -v -0.325553 0.008400 -0.625735 -v -0.325553 0.008400 0.625735 -v -0.325000 2.981250 0.000000 -v -0.325000 2.981250 0.000000 -v -0.323566 1.178400 -1.946601 -v -0.323566 1.178400 1.946601 -v -0.320834 2.981250 -0.053508 -v -0.320834 2.981250 0.053508 -v -0.319628 0.656400 -1.922910 -v -0.319628 0.656400 1.922910 -v -0.319082 3.034800 -0.166306 -v -0.319082 3.034800 0.166306 -v -0.318907 3.081150 -0.166221 -v -0.318907 3.081150 0.166221 -v -0.318192 1.323225 -1.914272 -v -0.318192 1.323225 1.914272 -v -0.316590 2.625600 -0.232342 -v -0.316590 2.625600 0.232342 -v -0.314223 0.002175 -0.230604 -v -0.314223 0.002175 0.230604 -v -0.312283 2.597400 -0.425519 -v -0.312283 2.597400 0.425519 -v -0.311850 2.572800 -0.599396 -v -0.311850 2.572800 0.599396 -v -0.311096 1.471200 -1.871580 -v -0.311096 1.471200 1.871580 -v -0.310439 0.553725 -1.867631 -v -0.310439 0.553725 1.867631 -v -0.309596 2.527200 -0.921647 -v -0.309596 2.527200 0.921647 -v -0.308800 3.117600 0.000000 -v -0.308800 3.117600 0.000000 -v -0.308744 2.981250 -0.103976 -v -0.308744 2.981250 0.103976 -v -0.304843 3.117600 -0.050855 -v -0.304843 3.117600 0.050855 -v -0.303862 0.018225 0.904575 -v -0.303862 0.018225 -0.904575 -v -0.302523 1.621875 -1.820003 -v -0.302522 1.621875 1.820003 -v -0.299282 0.463200 -1.800507 -v -0.299282 0.463200 1.800507 -v -0.293360 3.117600 -0.098814 -v -0.293360 3.117600 0.098814 -v -0.292719 1.774800 -1.761022 -v -0.292719 1.774800 1.761022 -v -0.290295 3.034800 -0.213234 -v -0.290295 3.034800 0.213234 -v -0.290138 3.081150 -0.213123 -v -0.290138 3.081150 0.213123 -v -0.289340 2.981250 -0.150793 -v -0.289340 2.981250 0.150793 -v -0.287140 0.384375 -1.727460 -v -0.287140 0.384375 1.727460 -v -0.281930 1.929525 1.696119 -v -0.281930 1.929525 -1.696119 -v -0.279400 2.659200 0.000000 -v -0.277752 2.625600 -0.277752 -v -0.277752 2.625600 0.277752 -v -0.275801 2.659200 -0.045844 -v -0.275801 2.659200 0.045844 -v -0.275675 0.002175 -0.275675 -v -0.275675 0.002175 0.275675 -v -0.274998 0.316800 -1.654413 -v -0.274998 0.316800 1.654413 -v -0.274928 3.117600 -0.143301 -v -0.274928 3.117600 0.143301 -v -0.273600 2.923200 0.000000 -v -0.273600 2.923200 0.000000 -v -0.270404 2.085600 -1.626774 -v -0.270404 2.085600 1.626774 -v -0.270092 2.923200 -0.045032 -v -0.270092 2.923200 0.045032 -v -0.265363 2.659200 -0.089140 -v -0.265363 2.659200 0.089140 -v -0.263841 0.260025 1.587289 -v -0.263841 0.260025 -1.587289 -v -0.263232 2.981250 -0.193348 -v -0.263232 2.981250 0.193348 -v -0.263208 2.550000 -0.783552 -v -0.263208 2.550000 0.783552 -v -0.259910 2.923200 -0.087511 -v -0.259910 2.923200 0.087511 -v -0.258385 2.242575 -1.554467 -v -0.258385 2.242575 1.554467 -v -0.254788 3.034800 -0.254788 -v -0.254788 3.034800 0.254788 -v -0.254653 3.081150 -0.254653 -v -0.254653 3.081150 0.254653 -v -0.254652 0.213600 -1.532010 -v -0.254652 0.213600 1.532010 -v -0.250127 3.117600 -0.183734 -v -0.250127 3.117600 0.183734 -v -0.248621 2.659200 0.129351 -v -0.248621 2.659200 -0.129351 -v -0.248417 0.177075 -1.494500 -v -0.248417 0.177075 1.494500 -v -0.246120 0.150000 1.480680 -v -0.246120 2.400000 -1.480680 -v -0.246120 0.150000 -1.480680 -v -0.246120 0.150000 -1.480680 -v -0.246120 0.150000 1.480680 -v -0.246120 2.400000 1.480680 -v -0.245542 0.127575 1.477200 -v -0.245542 0.127575 -1.477200 -v -0.243569 2.923200 -0.126920 -v -0.243569 2.923200 0.126920 -v -0.243424 2.597400 0.467878 -v -0.243424 2.597400 -0.467878 -v -0.242970 0.105600 1.461727 -v -0.242970 0.105600 -1.461727 -v -0.242892 2.435437 -1.461258 -v -0.242892 2.435437 1.461258 -v -0.239491 2.463000 -1.440800 -v -0.239491 2.463000 1.440800 -v -0.237149 0.084525 1.426709 -v -0.237149 0.084525 -1.426709 -v -0.236115 2.482687 -1.420490 -v -0.236115 2.482687 1.420490 -v -0.232961 2.494500 -1.401513 -v -0.232961 2.494500 1.401513 -v -0.232342 2.625600 -0.316590 -v -0.232342 2.625600 0.316590 -v -0.231031 2.981250 -0.231031 -v -0.231031 2.981250 0.231031 -v -0.230604 0.002175 -0.314223 -v -0.230604 0.002175 0.314223 -v -0.230225 2.498438 -1.385053 -v -0.230225 2.498438 1.385053 -v -0.229712 2.400000 -1.381968 -v -0.229712 2.400000 1.381968 -v -0.228104 2.494500 -1.372294 -v -0.228104 2.494500 1.372294 -v -0.227403 2.435437 -1.368074 -v -0.227403 2.435437 1.368074 -v -0.226824 0.064800 1.364595 -v -0.226824 0.064800 -1.364595 -v -0.226795 2.482687 1.364422 -v -0.226795 2.482687 -1.364422 -v -0.226496 2.463000 -1.362620 -v -0.226496 2.463000 1.362620 -v -0.226113 2.659200 -0.165941 -v -0.226113 2.659200 0.165941 -v -0.224349 0.008400 0.667871 -v -0.224349 0.008400 -0.667871 -v -0.221585 2.923200 -0.162745 -v -0.221585 2.923200 0.162745 -v -0.219800 2.863350 0.000000 -v -0.219800 2.863350 0.000000 -v -0.219536 3.117600 -0.219536 -v -0.219536 3.117600 0.219536 -v -0.216979 2.863350 0.036157 -v -0.216979 2.863350 -0.036157 -v -0.214905 2.572800 -0.639758 -v -0.214905 2.572800 0.639758 -v -0.213304 2.400000 -1.283256 -v -0.213304 2.400000 1.283256 -v -0.213234 3.034800 -0.290295 -v -0.213234 3.034800 0.290295 -v -0.213123 3.081150 -0.290138 -v -0.213123 3.081150 0.290138 -v -0.210740 0.046875 -1.267832 -v -0.210740 0.046875 1.267832 -v -0.209136 2.440800 -1.258183 -v -0.209136 2.440800 1.258183 -v -0.208794 2.863350 0.070270 -v -0.208794 2.863350 -0.070270 -v -0.200000 2.700000 0.000000 -v -0.200000 2.700000 0.000000 -v -0.200000 2.700000 0.000000 -v -0.200000 2.700000 0.000000 -v -0.198374 2.659200 -0.198374 -v -0.198374 2.659200 0.198374 -v -0.197684 2.474400 -1.189282 -v -0.197684 2.474400 1.189282 -v -0.197424 2.700000 -0.032816 -v -0.197424 2.700000 0.032816 -v -0.197424 2.700000 0.032816 -v -0.197424 2.700000 -0.032816 -v -0.195658 2.863350 -0.101925 -v -0.195658 2.863350 0.101925 -v -0.194600 3.141450 0.000000 -v -0.194600 3.141450 0.000000 -v -0.194472 2.923200 -0.194472 -v -0.194472 2.923200 0.194472 -v -0.193348 2.981250 -0.263232 -v -0.193348 2.981250 0.263232 -v -0.192107 3.141450 -0.032048 -v -0.192107 3.141450 0.032048 -v -0.189952 2.700000 -0.063808 -v -0.189952 2.700000 0.063808 -v -0.189952 2.700000 0.063808 -v -0.189952 2.700000 -0.063808 -v -0.187642 0.031200 1.128870 -v -0.187642 0.031200 -1.128870 -v -0.184870 3.141450 -0.062272 -v -0.184870 3.141450 0.062272 -v -0.183734 3.117600 -0.250127 -v -0.183734 3.117600 0.250127 -v -0.181110 2.625600 0.348105 -v -0.181110 2.625600 -0.348105 -v -0.180521 2.502600 -1.086029 -v -0.180521 2.502600 1.086029 -v -0.179756 0.002175 -0.345503 -v -0.179756 0.002175 0.345503 -v -0.179200 2.804400 0.000000 -v -0.179200 2.804400 0.000000 -v -0.177989 2.863350 -0.130707 -v -0.177989 2.863350 0.130707 -v -0.177968 2.700000 -0.092592 -v -0.177968 2.700000 0.092592 -v -0.177968 2.700000 0.092592 -v -0.177968 2.700000 -0.092592 -v -0.176897 2.804400 0.029450 -v -0.176897 2.804400 -0.029450 -v -0.173255 3.141450 -0.090306 -v -0.173255 3.141450 0.090306 -v -0.170215 2.804400 0.057246 -v -0.170215 2.804400 -0.057246 -v -0.167751 2.597400 -0.499384 -v -0.167751 2.597400 0.499384 -v -0.167400 2.749050 0.000000 -v -0.167400 2.749050 0.000000 -v -0.166306 3.034800 -0.319082 -v -0.166306 3.034800 0.319082 -v -0.166221 3.081150 0.318907 -v -0.166221 3.081150 -0.318907 -v -0.165941 2.659200 -0.226113 -v -0.165941 2.659200 0.226113 -v -0.165245 2.749050 0.027480 -v -0.165245 2.749050 -0.027480 -v -0.162745 2.923200 -0.221585 -v -0.162745 2.923200 0.221585 -v -0.161856 2.700000 -0.118784 -v -0.161856 2.700000 0.118784 -v -0.161856 2.700000 0.118784 -v -0.161856 2.700000 -0.118784 -v -0.159496 2.804400 0.083047 -v -0.159496 2.804400 -0.083047 -v -0.159223 2.527200 -0.957901 -v -0.159223 2.527200 0.957901 -v -0.158995 2.749050 0.053428 -v -0.158995 2.749050 -0.053428 -v -0.157626 3.141450 -0.115787 -v -0.157626 3.141450 0.115787 -v -0.156274 0.018225 0.940158 -v -0.156274 0.018225 -0.940158 -v -0.156200 2.863350 -0.156200 -v -0.156200 2.863350 0.156200 -v -0.150793 2.981250 -0.289340 -v -0.150793 2.981250 0.289340 -v -0.148969 2.749050 0.077523 -v -0.148969 2.749050 -0.077523 -v -0.145078 2.804400 0.106513 -v -0.145078 2.804400 -0.106513 -v -0.143301 3.117600 -0.274928 -v -0.143301 3.117600 0.274928 -v -0.142000 2.700000 -0.142000 -v -0.142000 2.700000 0.142000 -v -0.142000 2.700000 0.142000 -v -0.142000 2.700000 -0.142000 -v -0.138348 3.141450 -0.138348 -v -0.138348 3.141450 0.138348 -v -0.135489 2.749050 0.099446 -v -0.135489 2.749050 -0.099446 -v -0.135366 2.550000 -0.814374 -v -0.135366 2.550000 0.814374 -v -0.130707 2.863350 -0.177989 -v -0.130707 2.863350 0.177989 -v -0.129351 2.659200 0.248621 -v -0.129351 2.659200 -0.248621 -v -0.127304 2.804400 0.127304 -v -0.127304 2.804400 -0.127304 -v -0.126920 2.923200 -0.243569 -v -0.126920 2.923200 0.243569 -v -0.124808 2.625600 -0.371546 -v -0.124808 2.625600 0.371546 -v -0.123875 0.002175 0.368768 -v -0.123875 0.002175 -0.368768 -v -0.118874 2.749050 0.118874 -v -0.118874 2.749050 -0.118874 -v -0.118784 2.700000 -0.161856 -v -0.118784 2.700000 0.161856 -v -0.118784 2.700000 0.161856 -v -0.118784 2.700000 -0.161856 -v -0.115787 3.141450 -0.157626 -v -0.115787 3.141450 0.157626 -v -0.115381 0.008400 0.694143 -v -0.115381 0.008400 -0.694143 -v -0.114676 3.034800 -0.340477 -v -0.114676 3.034800 0.340477 -v -0.114619 3.081150 -0.340289 -v -0.114619 3.081150 0.340289 -v -0.110524 2.572800 -0.664924 -v -0.110524 2.572800 0.664924 -v -0.106513 2.804400 -0.145078 -v -0.106513 2.804400 0.145078 -v -0.103976 2.981250 -0.308744 -v -0.103976 2.981250 0.308744 -v -0.101925 2.863350 -0.195658 -v -0.101925 2.863350 0.195658 -v -0.099446 2.749050 0.135489 -v -0.099446 2.749050 -0.135489 -v -0.098814 3.117600 -0.293360 -v -0.098814 3.117600 0.293360 -v -0.092592 2.700000 -0.177968 -v -0.092592 2.700000 0.177968 -v -0.092592 2.700000 -0.177968 -v -0.092592 2.700000 0.177968 -v -0.090306 3.141450 -0.173255 -v -0.090306 3.141450 0.173255 -v -0.089140 2.659200 -0.265363 -v -0.089140 2.659200 0.265363 -v -0.087511 2.923200 -0.259910 -v -0.087511 2.923200 0.259910 -v -0.086273 2.597400 -0.519028 -v -0.086273 2.597400 0.519028 -v -0.083047 2.804400 -0.159496 -v -0.083047 2.804400 0.159496 -v -0.077523 2.749050 -0.148969 -v -0.077523 2.749050 0.148969 -v -0.070270 2.863350 -0.208794 -v -0.070270 2.863350 0.208794 -v -0.064188 2.625600 -0.386161 -v -0.064188 2.625600 0.386161 -v -0.063808 2.700000 -0.189952 -v -0.063808 2.700000 0.189952 -v -0.063808 2.700000 -0.189952 -v -0.063808 2.700000 0.189952 -v -0.063708 0.002175 0.383274 -v -0.063708 0.002175 -0.383274 -v -0.062272 3.141450 -0.184870 -v -0.062272 3.141450 0.184870 -v -0.059016 3.034800 -0.353807 -v -0.059016 3.034800 0.353807 -v -0.058988 3.081150 -0.353610 -v -0.058988 3.081150 0.353610 -v -0.057246 2.804400 -0.170215 -v -0.057246 2.804400 0.170215 -v -0.053508 2.981250 -0.320834 -v -0.053508 2.981250 0.320834 -v -0.053428 2.749050 -0.158995 -v -0.053428 2.749050 0.158995 -v -0.050855 3.117600 -0.304843 -v -0.050855 3.117600 0.304843 -v -0.045844 2.659200 -0.275801 -v -0.045844 2.659200 0.275801 -v -0.045032 2.923200 -0.270092 -v -0.045032 2.923200 0.270092 -v -0.036157 2.863350 -0.216979 -v -0.036157 2.863350 0.216979 -v -0.032816 2.700000 -0.197424 -v -0.032816 2.700000 0.197424 -v -0.032816 2.700000 -0.197424 -v -0.032816 2.700000 0.197424 -v -0.032048 3.141450 -0.192107 -v -0.032048 3.141450 0.192107 -v -0.029450 2.804400 -0.176897 -v -0.029450 2.804400 0.176897 -v -0.027480 2.749050 -0.165245 -v -0.027480 2.749050 0.165245 -v -0.000000 0.260025 1.608000 -v -0.000000 1.929525 1.718250 -v -0.000000 2.085600 -1.648000 -v -0.000000 0.656400 -1.948000 -v -0.000000 0.771675 -1.986000 -v -0.000000 2.482687 1.382225 -v -0.000000 2.700000 -0.200000 -v -0.000000 0.127575 1.496475 -v -0.000000 2.474400 -1.204800 -v -0.000000 2.749050 -0.167400 -v -0.000000 0.018225 0.952425 -v -0.000000 0.046875 -1.284375 -v -0.000000 0.064800 1.382400 -v -0.000000 0.384375 1.750000 -v -0.000000 0.463200 1.824000 -v -0.000000 0.553725 -1.892000 -v -0.000000 1.037175 1.992750 -v -0.000000 1.178400 1.972000 -v -0.000000 1.323225 -1.939250 -v -0.000000 1.621875 -1.843750 -v -0.000000 1.774800 1.784000 -v -0.000000 2.400000 -1.300000 -v -0.000000 2.435437 -1.480325 -v -0.000000 2.435437 -1.385925 -v -0.000000 2.463000 -1.459600 -v -0.000000 2.463000 -1.380400 -v -0.000000 2.494500 -1.390200 -v -0.000000 2.502600 -1.100200 -v -0.000000 2.804400 -0.179200 -v -0.000000 2.863350 -0.219800 -v -0.000000 2.572800 -0.673600 -v -0.000000 0.105600 1.480800 -v -0.000000 0.177075 -1.514000 -v -0.000000 2.494500 -1.419800 -v -0.000000 2.527200 -0.970400 -v -0.000000 2.923200 -0.273600 -v -0.000000 3.117600 -0.308800 -v -0.000000 2.597400 -0.525800 -v -0.000000 2.700000 -0.200000 -v -0.000000 2.981250 -0.325000 -v -0.000000 3.141450 -0.194600 -v -0.000000 0.002175 0.388275 -v -0.000000 3.081150 -0.358200 -v 0.000000 0.000000 0.000000 -v 0.000000 0.002175 -0.388275 -v 0.000000 0.002175 0.388275 -v 0.000000 0.008400 -0.703200 -v 0.000000 0.008400 0.703200 -v 0.000000 0.018225 -0.952425 -v 0.000000 0.018225 0.952425 -v 0.000000 0.031200 -1.143600 -v 0.000000 0.031200 -1.143600 -v 0.000000 0.031200 1.143600 -v 0.000000 0.031200 1.143600 -v 0.000000 0.046875 -1.284375 -v 0.000000 0.046875 1.284375 -v 0.000000 0.064800 -1.382400 -v 0.000000 0.064800 1.382400 -v 0.000000 0.084525 -1.445325 -v 0.000000 0.084525 -1.445325 -v 0.000000 0.084525 1.445325 -v 0.000000 0.084525 1.445325 -v 0.000000 0.105600 -1.480800 -v 0.000000 0.105600 1.480800 -v 0.000000 0.127575 -1.496475 -v 0.000000 0.127575 1.496475 -v 0.000000 0.150000 -1.500000 -v 0.000000 0.150000 -1.500000 -v 0.000000 0.150000 1.500000 -v 0.000000 0.150000 1.500000 -v 0.000000 0.177075 -1.514000 -v 0.000000 0.177075 1.514000 -v 0.000000 0.213600 -1.552000 -v 0.000000 0.213600 -1.552000 -v 0.000000 0.213600 1.552000 -v 0.000000 0.213600 1.552000 -v 0.000000 0.260025 -1.608000 -v 0.000000 0.260025 1.608000 -v 0.000000 0.316800 -1.676000 -v 0.000000 0.316800 -1.676000 -v 0.000000 0.316800 1.676000 -v 0.000000 0.316800 1.676000 -v 0.000000 0.384375 -1.750000 -v 0.000000 0.384375 1.750000 -v 0.000000 0.463200 -1.824000 -v 0.000000 0.463200 1.824000 -v 0.000000 0.553725 -1.892000 -v 0.000000 0.553725 1.892000 -v 0.000000 0.656400 -1.948000 -v 0.000000 0.656400 1.948000 -v 0.000000 0.771675 -1.986000 -v 0.000000 0.771675 1.986000 -v 0.000000 0.900000 -2.000000 -v 0.000000 0.900000 -2.000000 -v 0.000000 0.900000 2.000000 -v 0.000000 0.900000 2.000000 -v 0.000000 1.037175 -1.992750 -v 0.000000 1.037175 1.992750 -v 0.000000 1.178400 -1.972000 -v 0.000000 1.178400 1.972000 -v 0.000000 1.323225 -1.939250 -v 0.000000 1.323225 1.939250 -v 0.000000 1.471200 -1.896000 -v 0.000000 1.471200 -1.896000 -v 0.000000 1.471200 1.896000 -v 0.000000 1.471200 1.896000 -v 0.000000 1.621875 -1.843750 -v 0.000000 1.621875 1.843750 -v 0.000000 1.774800 -1.784000 -v 0.000000 1.774800 1.784000 -v 0.000000 1.929525 -1.718250 -v 0.000000 1.929525 1.718250 -v 0.000000 2.085600 -1.648000 -v 0.000000 2.085600 1.648000 -v 0.000000 2.242575 -1.574750 -v 0.000000 2.242575 -1.574750 -v 0.000000 2.242575 1.574750 -v 0.000000 2.242575 1.574750 -v 0.000000 2.400000 -1.500000 -v 0.000000 2.400000 -1.500000 -v 0.000000 2.400000 -1.400000 -v 0.000000 2.400000 -1.400000 -v 0.000000 2.400000 -1.300000 -v 0.000000 2.400000 1.300000 -v 0.000000 2.400000 1.400000 -v 0.000000 2.400000 1.400000 -v 0.000000 2.400000 1.500000 -v 0.000000 2.400000 1.500000 -v 0.000000 2.435437 -1.480325 -v 0.000000 2.435437 -1.385925 -v 0.000000 2.435437 1.385925 -v 0.000000 2.435437 1.480325 -v 0.000000 2.440800 -1.274600 -v 0.000000 2.440800 -1.274600 -v 0.000000 2.440800 1.274600 -v 0.000000 2.440800 1.274600 -v 0.000000 2.463000 -1.459600 -v 0.000000 2.463000 -1.380400 -v 0.000000 2.463000 1.380400 -v 0.000000 2.463000 1.459600 -v 0.000000 2.474400 -1.204800 -v 0.000000 2.474400 1.204800 -v 0.000000 2.482687 -1.439025 -v 0.000000 2.482687 -1.382225 -v 0.000000 2.482687 1.382225 -v 0.000000 2.482687 1.439025 -v 0.000000 2.494500 -1.419800 -v 0.000000 2.494500 -1.390200 -v 0.000000 2.494500 1.390200 -v 0.000000 2.494500 1.419800 -v 0.000000 2.498438 -1.403125 -v 0.000000 2.498438 -1.403125 -v 0.000000 2.498438 1.403125 -v 0.000000 2.498438 1.403125 -v 0.000000 2.502600 -1.100200 -v 0.000000 2.502600 1.100200 -v 0.000000 2.527200 -0.970400 -v 0.000000 2.527200 0.970400 -v 0.000000 2.550000 -0.825000 -v 0.000000 2.550000 -0.825000 -v 0.000000 2.550000 0.825000 -v 0.000000 2.550000 0.825000 -v 0.000000 2.572800 -0.673600 -v 0.000000 2.572800 0.673600 -v 0.000000 2.597400 -0.525800 -v 0.000000 2.597400 0.525800 -v 0.000000 2.625600 -0.391200 -v 0.000000 2.625600 -0.391200 -v 0.000000 2.625600 0.391200 -v 0.000000 2.625600 0.391200 -v 0.000000 2.659200 -0.279400 -v 0.000000 2.659200 0.279400 -v 0.000000 2.700000 -0.200000 -v 0.000000 2.700000 -0.200000 -v 0.000000 2.700000 0.200000 -v 0.000000 2.700000 0.200000 -v 0.000000 2.749050 -0.167400 -v 0.000000 2.749050 0.167400 -v 0.000000 2.804400 -0.179200 -v 0.000000 2.804400 0.179200 -v 0.000000 2.863350 -0.219800 -v 0.000000 2.863350 0.219800 -v 0.000000 2.923200 -0.273600 -v 0.000000 2.923200 0.273600 -v 0.000000 2.981250 -0.325000 -v 0.000000 2.981250 0.325000 -v 0.000000 3.034800 -0.358400 -v 0.000000 3.034800 -0.358400 -v 0.000000 3.034800 0.358400 -v 0.000000 3.034800 0.358400 -v 0.000000 3.081150 -0.358200 -v 0.000000 3.081150 0.358200 -v 0.000000 3.117600 -0.308800 -v 0.000000 3.117600 0.308800 -v 0.000000 3.141450 -0.194600 -v 0.000000 3.141450 0.194600 -v 0.000000 3.150000 0.000000 -v 0.000000 0.002175 -0.388275 -v 0.000000 3.081150 0.358200 -v 0.000000 2.597400 0.525800 -v 0.000000 2.700000 0.200000 -v 0.000000 2.981250 0.325000 -v 0.000000 3.141450 0.194600 -v 0.000000 3.117600 0.308800 -v 0.000000 0.105600 -1.480800 -v 0.000000 0.177075 1.514000 -v 0.000000 2.494500 1.419800 -v 0.000000 2.527200 0.970400 -v 0.000000 2.923200 0.273600 -v 0.000000 2.572800 0.673600 -v 0.000000 2.863350 0.219800 -v 0.000000 0.018225 -0.952425 -v 0.000000 0.046875 1.284375 -v 0.000000 0.064800 -1.382400 -v 0.000000 0.384375 -1.750000 -v 0.000000 0.463200 -1.824000 -v 0.000000 0.553725 1.892000 -v 0.000000 1.037175 -1.992750 -v 0.000000 1.178400 -1.972000 -v 0.000000 1.323225 1.939250 -v 0.000000 1.621875 1.843750 -v 0.000000 1.774800 -1.784000 -v 0.000000 2.400000 1.300000 -v 0.000000 2.435437 1.385925 -v 0.000000 2.435437 1.480325 -v 0.000000 2.463000 1.380400 -v 0.000000 2.463000 1.459600 -v 0.000000 2.494500 1.390200 -v 0.000000 2.502600 1.100200 -v 0.000000 2.804400 0.179200 -v 0.000000 2.749050 0.167400 -v 0.000000 0.127575 -1.496475 -v 0.000000 2.474400 1.204800 -v 0.000000 0.656400 1.948000 -v 0.000000 0.771675 1.986000 -v 0.000000 2.482687 -1.382225 -v 0.000000 2.700000 0.200000 -v 0.000000 0.260025 -1.608000 -v 0.000000 1.929525 -1.718250 -v 0.000000 2.085600 1.648000 -v 0.027480 2.749050 -0.165245 -v 0.027480 2.749050 0.165245 -v 0.029450 2.804400 -0.176897 -v 0.029450 2.804400 0.176897 -v 0.032048 3.141450 -0.192107 -v 0.032048 3.141450 0.192107 -v 0.032816 2.700000 -0.197424 -v 0.032816 2.700000 0.197424 -v 0.032816 2.700000 -0.197424 -v 0.032816 2.700000 0.197424 -v 0.036157 2.863350 -0.216979 -v 0.036157 2.863350 0.216979 -v 0.045032 2.923200 -0.270092 -v 0.045032 2.923200 0.270092 -v 0.045844 2.659200 -0.275801 -v 0.045844 2.659200 0.275801 -v 0.050855 3.117600 -0.304843 -v 0.050855 3.117600 0.304843 -v 0.053428 2.749050 -0.158995 -v 0.053428 2.749050 0.158995 -v 0.053508 2.981250 -0.320834 -v 0.053508 2.981250 0.320834 -v 0.057246 2.804400 -0.170215 -v 0.057246 2.804400 0.170215 -v 0.058988 3.081150 -0.353610 -v 0.058988 3.081150 0.353610 -v 0.059016 3.034800 -0.353807 -v 0.059016 3.034800 0.353807 -v 0.062272 3.141450 -0.184870 -v 0.062272 3.141450 0.184870 -v 0.063708 0.002175 0.383274 -v 0.063708 0.002175 -0.383274 -v 0.063808 2.700000 -0.189952 -v 0.063808 2.700000 0.189952 -v 0.063808 2.700000 -0.189952 -v 0.063808 2.700000 0.189952 -v 0.064188 2.625600 -0.386161 -v 0.064188 2.625600 0.386161 -v 0.070270 2.863350 -0.208794 -v 0.070270 2.863350 0.208794 -v 0.077523 2.749050 -0.148969 -v 0.077523 2.749050 0.148969 -v 0.083047 2.804400 -0.159496 -v 0.083047 2.804400 0.159496 -v 0.086273 2.597400 -0.519028 -v 0.086273 2.597400 0.519028 -v 0.087511 2.923200 -0.259910 -v 0.087511 2.923200 0.259910 -v 0.089140 2.659200 -0.265363 -v 0.089140 2.659200 0.265363 -v 0.090306 3.141450 -0.173255 -v 0.090306 3.141450 0.173255 -v 0.092592 2.700000 -0.177968 -v 0.092592 2.700000 0.177968 -v 0.092592 2.700000 -0.177968 -v 0.092592 2.700000 0.177968 -v 0.098814 3.117600 -0.293360 -v 0.098814 3.117600 0.293360 -v 0.099446 2.749050 0.135489 -v 0.099446 2.749050 -0.135489 -v 0.101925 2.863350 -0.195658 -v 0.101925 2.863350 0.195658 -v 0.103976 2.981250 -0.308744 -v 0.103976 2.981250 0.308744 -v 0.106513 2.804400 -0.145078 -v 0.106513 2.804400 0.145078 -v 0.110524 2.572800 -0.664924 -v 0.110524 2.572800 0.664924 -v 0.114619 3.081150 -0.340289 -v 0.114619 3.081150 0.340289 -v 0.114676 3.034800 -0.340477 -v 0.114676 3.034800 0.340477 -v 0.115381 0.008400 0.694143 -v 0.115381 0.008400 -0.694143 -v 0.115787 3.141450 -0.157626 -v 0.115787 3.141450 0.157626 -v 0.118784 2.700000 0.161856 -v 0.118784 2.700000 -0.161856 -v 0.118784 2.700000 -0.161856 -v 0.118784 2.700000 0.161856 -v 0.118874 2.749050 0.118874 -v 0.118874 2.749050 -0.118874 -v 0.123875 0.002175 0.368768 -v 0.123875 0.002175 -0.368768 -v 0.124808 2.625600 -0.371546 -v 0.124808 2.625600 0.371546 -v 0.126920 2.923200 -0.243569 -v 0.126920 2.923200 0.243569 -v 0.127304 2.804400 0.127304 -v 0.127304 2.804400 -0.127304 -v 0.129351 2.659200 0.248621 -v 0.129351 2.659200 -0.248621 -v 0.130707 2.863350 -0.177989 -v 0.130707 2.863350 0.177989 -v 0.135366 2.550000 -0.814374 -v 0.135366 2.550000 0.814374 -v 0.135489 2.749050 0.099446 -v 0.135489 2.749050 -0.099446 -v 0.138348 3.141450 -0.138348 -v 0.138348 3.141450 0.138348 -v 0.142000 2.700000 0.142000 -v 0.142000 2.700000 -0.142000 -v 0.142000 2.700000 -0.142000 -v 0.142000 2.700000 0.142000 -v 0.143301 3.117600 -0.274928 -v 0.143301 3.117600 0.274928 -v 0.145078 2.804400 0.106513 -v 0.145078 2.804400 -0.106513 -v 0.148969 2.749050 0.077523 -v 0.148969 2.749050 -0.077523 -v 0.150793 2.981250 -0.289340 -v 0.150793 2.981250 0.289340 -v 0.156200 2.863350 -0.156200 -v 0.156200 2.863350 0.156200 -v 0.156274 0.018225 0.940158 -v 0.156274 0.018225 -0.940158 -v 0.157626 3.141450 -0.115787 -v 0.157626 3.141450 0.115787 -v 0.158995 2.749050 0.053428 -v 0.158995 2.749050 -0.053428 -v 0.159223 2.527200 -0.957901 -v 0.159223 2.527200 0.957901 -v 0.159496 2.804400 0.083047 -v 0.159496 2.804400 -0.083047 -v 0.161856 2.700000 0.118784 -v 0.161856 2.700000 -0.118784 -v 0.161856 2.700000 -0.118784 -v 0.161856 2.700000 0.118784 -v 0.162745 2.923200 -0.221585 -v 0.162745 2.923200 0.221585 -v 0.165245 2.749050 0.027480 -v 0.165245 2.749050 -0.027480 -v 0.165941 2.659200 -0.226113 -v 0.165941 2.659200 0.226113 -v 0.166221 3.081150 0.318907 -v 0.166221 3.081150 -0.318907 -v 0.166306 3.034800 -0.319082 -v 0.166306 3.034800 0.319082 -v 0.167400 2.749050 -0.000000 -v 0.167400 2.749050 0.000000 -v 0.167751 2.597400 -0.499384 -v 0.167751 2.597400 0.499384 -v 0.170215 2.804400 0.057246 -v 0.170215 2.804400 -0.057246 -v 0.173255 3.141450 -0.090306 -v 0.173255 3.141450 0.090306 -v 0.176897 2.804400 0.029450 -v 0.176897 2.804400 -0.029450 -v 0.177968 2.700000 0.092592 -v 0.177968 2.700000 -0.092592 -v 0.177968 2.700000 -0.092592 -v 0.177968 2.700000 0.092592 -v 0.177989 2.863350 -0.130707 -v 0.177989 2.863350 0.130707 -v 0.179200 2.804400 -0.000000 -v 0.179200 2.804400 0.000000 -v 0.179756 0.002175 -0.345503 -v 0.179756 0.002175 0.345503 -v 0.180521 2.502600 -1.086029 -v 0.180521 2.502600 1.086029 -v 0.181110 2.625600 0.348105 -v 0.181110 2.625600 -0.348105 -v 0.183734 3.117600 -0.250127 -v 0.183734 3.117600 0.250127 -v 0.184870 3.141450 -0.062272 -v 0.184870 3.141450 0.062272 -v 0.187642 0.031200 1.128870 -v 0.187642 0.031200 -1.128870 -v 0.189952 2.700000 0.063808 -v 0.189952 2.700000 -0.063808 -v 0.189952 2.700000 -0.063808 -v 0.189952 2.700000 0.063808 -v 0.192107 3.141450 -0.032048 -v 0.192107 3.141450 0.032048 -v 0.193348 2.981250 -0.263232 -v 0.193348 2.981250 0.263232 -v 0.194472 2.923200 -0.194472 -v 0.194472 2.923200 0.194472 -v 0.194600 3.141450 0.000000 -v 0.194600 3.141450 -0.000000 -v 0.195658 2.863350 -0.101925 -v 0.195658 2.863350 0.101925 -v 0.197424 2.700000 0.032816 -v 0.197424 2.700000 -0.032816 -v 0.197424 2.700000 -0.032816 -v 0.197424 2.700000 0.032816 -v 0.197684 2.474400 -1.189282 -v 0.197684 2.474400 1.189282 -v 0.198374 2.659200 -0.198374 -v 0.198374 2.659200 0.198374 -v 0.200000 2.700000 -0.000000 -v 0.200000 2.700000 0.000000 -v 0.200000 2.700000 0.000000 -v 0.200000 2.700000 -0.000000 -v 0.208794 2.863350 0.070270 -v 0.208794 2.863350 -0.070270 -v 0.209136 2.440800 -1.258183 -v 0.209136 2.440800 1.258183 -v 0.210740 0.046875 -1.267832 -v 0.210740 0.046875 1.267832 -v 0.213123 3.081150 -0.290138 -v 0.213123 3.081150 0.290138 -v 0.213234 3.034800 -0.290295 -v 0.213234 3.034800 0.290295 -v 0.213304 2.400000 -1.283256 -v 0.213304 2.400000 1.283256 -v 0.214905 2.572800 -0.639758 -v 0.214905 2.572800 0.639758 -v 0.216979 2.863350 0.036157 -v 0.216979 2.863350 -0.036157 -v 0.219536 3.117600 -0.219536 -v 0.219536 3.117600 0.219536 -v 0.219800 2.863350 -0.000000 -v 0.219800 2.863350 0.000000 -v 0.221585 2.923200 -0.162745 -v 0.221585 2.923200 0.162745 -v 0.224349 0.008400 0.667871 -v 0.224349 0.008400 -0.667871 -v 0.226113 2.659200 -0.165941 -v 0.226113 2.659200 0.165941 -v 0.226496 2.463000 -1.362620 -v 0.226496 2.463000 1.362620 -v 0.226795 2.482687 1.364422 -v 0.226795 2.482687 -1.364422 -v 0.226824 0.064800 1.364595 -v 0.226824 0.064800 -1.364595 -v 0.227403 2.435437 -1.368074 -v 0.227403 2.435437 1.368074 -v 0.228104 2.494500 -1.372294 -v 0.228104 2.494500 1.372294 -v 0.229712 2.400000 -1.381968 -v 0.229712 2.400000 1.381968 -v 0.230225 2.498438 -1.385053 -v 0.230225 2.498438 1.385053 -v 0.230604 0.002175 -0.314223 -v 0.230604 0.002175 0.314223 -v 0.231031 2.981250 -0.231031 -v 0.231031 2.981250 0.231031 -v 0.232342 2.625600 -0.316590 -v 0.232342 2.625600 0.316590 -v 0.232961 2.494500 -1.401513 -v 0.232961 2.494500 1.401513 -v 0.236115 2.482687 -1.420490 -v 0.236115 2.482687 1.420490 -v 0.237149 0.084525 1.426709 -v 0.237149 0.084525 -1.426709 -v 0.239491 2.463000 -1.440800 -v 0.239491 2.463000 1.440800 -v 0.242892 2.435437 -1.461258 -v 0.242892 2.435437 1.461258 -v 0.242970 0.105600 1.461727 -v 0.242970 0.105600 -1.461727 -v 0.243424 2.597400 0.467878 -v 0.243424 2.597400 -0.467878 -v 0.243569 2.923200 -0.126920 -v 0.243569 2.923200 0.126920 -v 0.245542 0.127575 1.477200 -v 0.245542 0.127575 -1.477200 -v 0.246120 0.150000 -1.480680 -v 0.246120 2.400000 -1.480680 -v 0.246120 0.150000 1.480680 -v 0.246120 0.150000 1.480680 -v 0.246120 2.400000 1.480680 -v 0.246120 0.150000 -1.480680 -v 0.248417 0.177075 -1.494500 -v 0.248417 0.177075 1.494500 -v 0.248621 2.659200 0.129351 -v 0.248621 2.659200 -0.129351 -v 0.250127 3.117600 -0.183734 -v 0.250127 3.117600 0.183734 -v 0.254652 0.213600 -1.532010 -v 0.254652 0.213600 1.532010 -v 0.254653 3.081150 -0.254653 -v 0.254653 3.081150 0.254653 -v 0.254788 3.034800 -0.254788 -v 0.254788 3.034800 0.254788 -v 0.258385 2.242575 -1.554467 -v 0.258385 2.242575 1.554467 -v 0.259910 2.923200 -0.087511 -v 0.259910 2.923200 0.087511 -v 0.263208 2.550000 -0.783552 -v 0.263208 2.550000 0.783552 -v 0.263232 2.981250 -0.193348 -v 0.263232 2.981250 0.193348 -v 0.263841 0.260025 1.587289 -v 0.263841 0.260025 -1.587289 -v 0.265363 2.659200 -0.089140 -v 0.265363 2.659200 0.089140 -v 0.270092 2.923200 -0.045032 -v 0.270092 2.923200 0.045032 -v 0.270404 2.085600 -1.626774 -v 0.270404 2.085600 1.626774 -v 0.273600 2.923200 -0.000000 -v 0.273600 2.923200 0.000000 -v 0.274928 3.117600 -0.143301 -v 0.274928 3.117600 0.143301 -v 0.274998 0.316800 -1.654413 -v 0.274998 0.316800 1.654413 -v 0.275675 0.002175 -0.275675 -v 0.275675 0.002175 0.275675 -v 0.275801 2.659200 -0.045844 -v 0.275801 2.659200 0.045844 -v 0.277752 2.625600 -0.277752 -v 0.277752 2.625600 0.277752 -v 0.279400 2.659200 0.000000 -v 0.281930 1.929525 1.696119 -v 0.281930 1.929525 -1.696119 -v 0.287140 0.384375 -1.727460 -v 0.287140 0.384375 1.727460 -v 0.289340 2.981250 -0.150793 -v 0.289340 2.981250 0.150793 -v 0.290138 3.081150 -0.213123 -v 0.290138 3.081150 0.213123 -v 0.290295 3.034800 -0.213234 -v 0.290295 3.034800 0.213234 -v 0.292719 1.774800 -1.761022 -v 0.292719 1.774800 1.761022 -v 0.293360 3.117600 -0.098814 -v 0.293360 3.117600 0.098814 -v 0.299282 0.463200 -1.800507 -v 0.299282 0.463200 1.800507 -v 0.302522 1.621875 -1.820003 -v 0.302523 1.621875 1.820003 -v 0.303862 0.018225 0.904575 -v 0.303862 0.018225 -0.904575 -v 0.304843 3.117600 -0.050855 -v 0.304843 3.117600 0.050855 -v 0.308744 2.981250 -0.103976 -v 0.308744 2.981250 0.103976 -v 0.308800 3.117600 0.000000 -v 0.308800 3.117600 -0.000000 -v 0.309596 2.527200 -0.921647 -v 0.309596 2.527200 0.921647 -v 0.310439 0.553725 -1.867631 -v 0.310439 0.553725 1.867631 -v 0.311096 1.471200 -1.871580 -v 0.311096 1.471200 1.871580 -v 0.311850 2.572800 -0.599396 -v 0.311850 2.572800 0.599396 -v 0.312283 2.597400 -0.425519 -v 0.312283 2.597400 0.425519 -v 0.314223 0.002175 -0.230604 -v 0.314223 0.002175 0.230604 -v 0.316590 2.625600 -0.232342 -v 0.316590 2.625600 0.232342 -v 0.318192 1.323225 -1.914272 -v 0.318192 1.323225 1.914272 -v 0.318907 3.081150 -0.166221 -v 0.318907 3.081150 0.166221 -v 0.319082 3.034800 -0.166306 -v 0.319082 3.034800 0.166306 -v 0.319628 0.656400 -1.922910 -v 0.319628 0.656400 1.922910 -v 0.320834 2.981250 -0.053508 -v 0.320834 2.981250 0.053508 -v 0.323566 1.178400 -1.946601 -v 0.323566 1.178400 1.946601 -v 0.325000 2.981250 0.000000 -v 0.325000 2.981250 -0.000000 -v 0.325553 0.008400 -0.625735 -v 0.325553 0.008400 0.625735 -v 0.325863 0.771675 -1.960420 -v 0.325863 0.771675 1.960420 -v 0.326970 1.037175 -1.967083 -v 0.326970 1.037175 1.967083 -v 0.328160 0.900000 -1.974240 -v 0.328160 0.900000 -1.974240 -v 0.328160 0.900000 1.974240 -v 0.340289 3.081150 -0.114619 -v 0.340289 3.081150 0.114619 -v 0.340477 3.034800 -0.114676 -v 0.340477 3.034800 0.114676 -v 0.345503 0.002175 -0.179756 -v 0.345503 0.002175 0.179756 -v 0.348105 2.625600 -0.181110 -v 0.348105 2.625600 0.181110 -v 0.351008 2.502600 -1.044926 -v 0.351008 2.502600 1.044926 -v 0.353610 3.081150 -0.058988 -v 0.353610 3.081150 0.058988 -v 0.353807 3.034800 -0.059016 -v 0.353807 3.034800 0.059016 -v 0.358200 3.081150 -0.000000 -v 0.358200 3.081150 0.000000 -v 0.358400 3.034800 0.000000 -v 0.358400 3.034800 0.000000 -v 0.364854 0.031200 1.086146 -v 0.364854 0.031200 -1.086146 -v 0.368768 0.002175 -0.123875 -v 0.368768 0.002175 0.123875 -v 0.371546 2.625600 -0.124808 -v 0.371546 2.625600 0.124808 -v 0.373318 2.597400 -0.373318 -v 0.373318 2.597400 0.373318 -v 0.381942 2.550000 -0.734118 -v 0.381942 2.550000 0.734118 -v 0.383274 0.002175 -0.063708 -v 0.383274 0.002175 0.063708 -v 0.384379 2.474400 -1.144271 -v 0.384379 2.474400 1.144271 -v 0.386161 2.625600 -0.064188 -v 0.386161 2.625600 0.064188 -v 0.388275 0.002175 0.000000 -v 0.388275 0.002175 0.000000 -v 0.391200 2.625600 0.000000 -v 0.391200 2.625600 0.000000 -v 0.400065 2.572800 -0.545131 -v 0.400065 2.572800 0.545131 -v 0.406648 2.440800 -1.210564 -v 0.406648 2.440800 1.210564 -v 0.409767 0.046875 1.219848 -v 0.409767 0.046875 -1.219848 -v 0.414752 2.400000 -1.234688 -v 0.414752 2.400000 1.234688 -v 0.417645 0.008400 -0.569086 -v 0.417645 0.008400 0.569086 -v 0.425519 2.597400 0.312283 -v 0.425519 2.597400 -0.312283 -v 0.440403 2.463000 -1.311049 -v 0.440403 2.463000 1.311049 -v 0.440935 0.018225 0.847506 -v 0.440935 0.018225 -0.847506 -v 0.440985 2.482687 -1.312782 -v 0.440985 2.482687 1.312782 -v 0.441041 0.064800 1.312948 -v 0.441041 0.064800 -1.312948 -v 0.442166 2.435437 -1.316296 -v 0.442166 2.435437 1.316296 -v 0.443529 2.494500 -1.320356 -v 0.443529 2.494500 1.320356 -v 0.446656 2.400000 -1.329664 -v 0.446656 2.400000 1.329664 -v 0.447653 2.498438 -1.332632 -v 0.447653 2.498438 1.332632 -v 0.449256 2.527200 -0.863501 -v 0.449256 2.527200 0.863501 -v 0.452973 2.494500 -1.348469 -v 0.452973 2.494500 1.348469 -v 0.459107 2.482687 -1.366728 -v 0.459107 2.482687 1.366728 -v 0.461116 0.084525 1.372712 -v 0.461116 0.084525 -1.372712 -v 0.465671 2.463000 -1.386270 -v 0.465671 2.463000 1.386270 -v 0.467878 2.597400 -0.243424 -v 0.467878 2.597400 0.243424 -v 0.472283 2.435437 -1.405953 -v 0.472283 2.435437 1.405953 -v 0.472434 0.105600 1.406405 -v 0.472434 0.105600 -1.406405 -v 0.477435 0.127575 1.421292 -v 0.477435 0.127575 -1.421292 -v 0.478256 2.572800 -0.478256 -v 0.478256 2.572800 0.478256 -v 0.478560 0.150000 -1.424640 -v 0.478560 2.400000 -1.424640 -v 0.478560 0.150000 1.424640 -v 0.478560 0.150000 1.424640 -v 0.478560 0.150000 -1.424640 -v 0.478560 2.400000 1.424640 -v 0.483027 0.177075 -1.437937 -v 0.483027 0.177075 1.437937 -v 0.489984 2.550000 -0.667656 -v 0.489984 2.550000 0.667656 -v 0.495150 0.213600 -1.474028 -v 0.495150 0.213600 1.474028 -v 0.499272 0.008400 -0.499272 -v 0.499272 0.008400 0.499272 -v 0.499384 2.597400 -0.167751 -v 0.499384 2.597400 0.167751 -v 0.502408 2.242575 -1.495635 -v 0.502408 2.242575 1.495635 -v 0.509349 2.502600 0.979002 -v 0.509349 2.502600 -0.979002 -v 0.513016 0.260025 -1.527214 -v 0.513016 0.260025 1.527214 -v 0.519028 2.597400 0.086273 -v 0.519028 2.597400 -0.086273 -v 0.525778 2.085600 -1.565204 -v 0.525778 2.085600 1.565204 -v 0.525800 2.597400 -0.000000 -v 0.525800 2.597400 0.000000 -v 0.529441 0.031200 -1.017621 -v 0.529441 0.031200 1.017621 -v 0.534711 0.316800 -1.591798 -v 0.534711 0.316800 1.591798 -v 0.545131 2.572800 -0.400065 -v 0.545131 2.572800 0.400065 -v 0.548190 1.929525 -1.631925 -v 0.548190 1.929525 1.631925 -v 0.557774 2.474400 -1.072079 -v 0.557774 2.474400 1.072079 -v 0.558320 0.384375 -1.662080 -v 0.558320 0.384375 1.662080 -v 0.565664 0.018225 0.770779 -v 0.565664 0.018225 -0.770779 -v 0.569086 0.008400 -0.417645 -v 0.569086 0.008400 0.417645 -v 0.569167 1.774800 -1.694372 -v 0.569167 1.774800 1.694372 -v 0.576340 2.527200 -0.785325 -v 0.576340 2.527200 0.785325 -v 0.581929 0.463200 -1.732362 -v 0.581929 0.463200 1.732362 -v 0.585750 2.550000 -0.585750 -v 0.585750 2.550000 0.585750 -v 0.588230 1.621875 -1.751120 -v 0.588230 1.621875 1.751120 -v 0.590089 2.440800 1.134190 -v 0.590089 2.440800 -1.134190 -v 0.594614 0.046875 -1.142888 -v 0.594614 0.046875 1.142888 -v 0.599396 2.572800 -0.311850 -v 0.599396 2.572800 0.311850 -v 0.601848 2.400000 -1.156792 -v 0.601848 2.400000 1.156792 -v 0.603624 0.553725 -1.796946 -v 0.603624 0.553725 1.796946 -v 0.604900 1.471200 -1.800745 -v 0.604900 1.471200 1.800745 -v 0.618698 1.323225 -1.841822 -v 0.618698 1.323225 1.841822 -v 0.621490 0.656400 -1.850132 -v 0.621490 0.656400 1.850132 -v 0.625735 0.008400 0.325553 -v 0.625735 0.008400 -0.325553 -v 0.629147 1.178400 -1.872927 -v 0.629147 1.178400 1.872927 -v 0.633613 0.771675 -1.886223 -v 0.633613 0.771675 1.886223 -v 0.635767 1.037175 -1.892634 -v 0.635767 1.037175 1.892634 -v 0.638080 0.900000 -1.899520 -v 0.638080 0.900000 -1.899520 -v 0.638080 0.900000 1.899520 -v 0.638080 0.900000 1.899520 -v 0.639070 2.463000 -1.228335 -v 0.639070 2.463000 1.228335 -v 0.639758 2.572800 -0.214905 -v 0.639758 2.572800 0.214905 -v 0.639915 2.482687 1.229959 -v 0.639915 2.482687 -1.229959 -v 0.639996 0.064800 -1.230115 -v 0.639996 0.064800 1.230115 -v 0.641628 2.435437 -1.233252 -v 0.641628 2.435437 1.233252 -v 0.643607 2.494500 -1.237056 -v 0.643607 2.494500 1.237056 -v 0.648144 2.400000 -1.245776 -v 0.648144 2.400000 1.245776 -v 0.649591 2.498438 -1.248557 -v 0.649591 2.498438 1.248557 -v 0.653431 2.502600 -0.890370 -v 0.653431 2.502600 0.890370 -v 0.657311 2.494500 -1.263395 -v 0.657311 2.494500 1.263395 -v 0.664924 2.572800 -0.110524 -v 0.664924 2.572800 0.110524 -v 0.666211 2.482687 1.280502 -v 0.666211 2.482687 -1.280502 -v 0.667656 2.550000 -0.489984 -v 0.667656 2.550000 0.489984 -v 0.667871 0.008400 -0.224349 -v 0.667871 0.008400 0.224349 -v 0.669128 0.084525 -1.286108 -v 0.669128 0.084525 1.286108 -v 0.673600 2.572800 0.000000 -v 0.673600 2.572800 -0.000000 -v 0.675736 2.463000 -1.298810 -v 0.675736 2.463000 1.298810 -v 0.676222 0.018225 0.676222 -v 0.676222 0.018225 -0.676222 -v 0.679207 0.031200 -0.925493 -v 0.679207 0.031200 0.925493 -v 0.685331 2.435437 -1.317252 -v 0.685331 2.435437 1.317252 -v 0.685551 0.105600 -1.317675 -v 0.685551 0.105600 1.317675 -v 0.688984 2.527200 -0.688984 -v 0.688984 2.527200 0.688984 -v 0.692808 0.127575 1.331623 -v 0.692808 0.127575 -1.331623 -v 0.694143 0.008400 -0.115381 -v 0.694143 0.008400 0.115381 -v 0.694440 0.150000 1.334760 -v 0.694440 0.150000 -1.334760 -v 0.694440 2.400000 1.334760 -v 0.694440 0.150000 -1.334760 -v 0.694440 0.150000 1.334760 -v 0.694440 2.400000 -1.334760 -v 0.700921 0.177075 1.347218 -v 0.700921 0.177075 -1.347218 -v 0.703200 0.008400 0.000000 -v 0.715555 2.474400 -0.975021 -v 0.715555 2.474400 0.975021 -v 0.718514 0.213600 1.381032 -v 0.718514 0.213600 -1.381032 -v 0.729046 2.242575 -1.401276 -v 0.729046 2.242575 1.401276 -v 0.734118 2.550000 -0.381942 -v 0.734118 2.550000 0.381942 -v 0.744440 0.260025 1.430863 -v 0.744440 0.260025 -1.430863 -v 0.757010 2.440800 1.031508 -v 0.757010 2.440800 -1.031508 -v 0.762816 0.046875 -1.039419 -v 0.762816 0.046875 1.039419 -v 0.762958 2.085600 -1.466456 -v 0.762958 2.085600 1.466456 -v 0.770779 0.018225 0.565664 -v 0.770779 0.018225 -0.565664 -v 0.772096 2.400000 -1.052064 -v 0.772096 2.400000 1.052064 -v 0.775921 0.316800 -1.491372 -v 0.775921 0.316800 1.491372 -v 0.781142 2.502600 -0.781142 -v 0.781142 2.502600 0.781142 -v 0.783552 2.550000 -0.263208 -v 0.783552 2.550000 0.263208 -v 0.785325 2.527200 -0.576340 -v 0.785325 2.527200 0.576340 -v 0.795481 1.929525 1.528968 -v 0.795481 1.929525 -1.528968 -v 0.810180 0.384375 1.557220 -v 0.810180 0.384375 -1.557220 -v 0.811956 0.031200 0.811956 -v 0.811956 0.031200 -0.811956 -v 0.814374 2.550000 -0.135366 -v 0.814374 2.550000 0.135366 -v 0.819847 2.463000 -1.117130 -v 0.819847 2.463000 1.117130 -v 0.820931 2.482687 1.118607 -v 0.820931 2.482687 -1.118607 -v 0.821035 0.064800 1.118749 -v 0.821035 0.064800 -1.118749 -v 0.823129 2.435437 -1.121601 -v 0.823129 2.435437 1.121601 -v 0.825000 2.550000 0.000000 -v 0.825000 2.550000 0.000000 -v 0.825668 2.494500 -1.125061 -v 0.825668 2.494500 1.125061 -v 0.825921 1.774800 1.587475 -v 0.825921 1.774800 -1.587475 -v 0.831488 2.400000 -1.132992 -v 0.831488 2.400000 1.132992 -v 0.833344 2.498438 -1.135521 -v 0.833344 2.498438 1.135521 -v 0.843248 2.494500 -1.149016 -v 0.843248 2.494500 1.149016 -v 0.844439 0.463200 1.623068 -v 0.844439 0.463200 -1.623068 -v 0.847506 0.018225 -0.440935 -v 0.847506 0.018225 0.440935 -v 0.853583 1.621875 -1.640643 -v 0.853583 1.621875 1.640643 -v 0.854666 2.482687 -1.164574 -v 0.854666 2.482687 1.164574 -v 0.855408 2.474400 -0.855408 -v 0.855408 2.474400 0.855408 -v 0.858407 0.084525 -1.169673 -v 0.858407 0.084525 1.169673 -v 0.863501 2.527200 -0.449256 -v 0.863501 2.527200 0.449256 -v 0.866886 2.463000 -1.181225 -v 0.866886 2.463000 1.181225 -v 0.875920 0.553725 -1.683577 -v 0.875920 0.553725 1.683577 -v 0.877772 1.471200 -1.687137 -v 0.877772 1.471200 1.687137 -v 0.879195 2.435437 -1.197997 -v 0.879195 2.435437 1.197997 -v 0.879477 0.105600 -1.198382 -v 0.879477 0.105600 1.198382 -v 0.888786 0.127575 1.211067 -v 0.888786 0.127575 -1.211067 -v 0.890370 2.502600 -0.653431 -v 0.890370 2.502600 0.653431 -v 0.890880 0.150000 -1.213920 -v 0.890880 0.150000 1.213920 -v 0.890880 2.400000 -1.213920 -v 0.890880 0.150000 -1.213920 -v 0.890880 0.150000 1.213920 -v 0.890880 2.400000 1.213920 -v 0.897795 1.323225 -1.725622 -v 0.897795 1.323225 1.725622 -v 0.899195 0.177075 1.225250 -v 0.899195 0.177075 -1.225250 -v 0.901846 0.656400 -1.733408 -v 0.901846 0.656400 1.733408 -v 0.904575 0.018225 0.303862 -v 0.904575 0.018225 -0.303862 -v 0.904966 2.440800 0.904966 -v 0.904966 2.440800 -0.904966 -v 0.911906 0.046875 -0.911906 -v 0.911906 0.046875 0.911906 -v 0.912957 1.178400 -1.754764 -v 0.912957 1.178400 1.754764 -v 0.919439 0.771675 -1.767222 -v 0.919439 0.771675 1.767222 -v 0.921647 2.527200 -0.309596 -v 0.921647 2.527200 0.309596 -v 0.921764 0.213600 1.256003 -v 0.921764 0.213600 -1.256003 -v 0.922564 1.037175 1.773229 -v 0.922564 1.037175 -1.773229 -v 0.923000 2.400000 -0.923000 -v 0.923000 2.400000 0.923000 -v 0.925493 0.031200 0.679207 -v 0.925493 0.031200 -0.679207 -v 0.925920 0.900000 1.779680 -v 0.925920 0.900000 -1.779680 -v 0.925920 0.900000 -1.779680 -v 0.925920 0.900000 1.779680 -v 0.935276 2.242575 -1.274414 -v 0.935276 2.242575 1.274414 -v 0.940158 0.018225 0.156274 -v 0.940158 0.018225 -0.156274 -v 0.952425 0.018225 0.000000 -v 0.952425 0.018225 0.000000 -v 0.955023 0.260025 1.301322 -v 0.955023 0.260025 -1.301322 -v 0.957901 2.527200 -0.159223 -v 0.957901 2.527200 0.159223 -v 0.970400 2.527200 0.000000 -v 0.970400 2.527200 -0.000000 -v 0.975021 2.474400 -0.715555 -v 0.975021 2.474400 0.715555 -v 0.978780 2.085600 -1.333693 -v 0.978780 2.085600 1.333693 -v 0.979002 2.502600 0.509349 -v 0.979002 2.502600 -0.509349 -v 0.980084 2.463000 -0.980084 -v 0.980084 2.463000 0.980084 -v 0.981380 2.482687 -0.981380 -v 0.981380 2.482687 0.981380 -v 0.981504 0.064800 0.981504 -v 0.981504 0.064800 -0.981504 -v 0.984007 2.435437 -0.984007 -v 0.984007 2.435437 0.984007 -v 0.987042 2.494500 -0.987042 -v 0.987042 2.494500 0.987042 -v 0.994000 2.400000 -0.994000 -v 0.994000 2.400000 0.994000 -v 0.995410 0.316800 -1.356353 -v 0.995410 0.316800 1.356353 -v 0.996219 2.498438 -0.996219 -v 0.996219 2.498438 0.996219 -v 1.008058 2.494500 -1.008058 -v 1.008058 2.494500 1.008058 -v 1.017621 0.031200 0.529441 -v 1.017621 0.031200 -0.529441 -v 1.020503 1.929525 -1.390545 -v 1.020503 1.929525 1.390545 -v 1.021708 2.482687 -1.021708 -v 1.021708 2.482687 1.021708 -v 1.026181 0.084525 -1.026181 -v 1.026181 0.084525 1.026181 -v 1.031508 2.440800 0.757010 -v 1.031508 2.440800 -0.757010 -v 1.036316 2.463000 -1.036316 -v 1.036316 2.463000 1.036316 -v 1.039360 0.384375 -1.416240 -v 1.039360 0.384375 1.416240 -v 1.039419 0.046875 -0.762816 -v 1.039419 0.046875 0.762816 -v 1.044926 2.502600 -0.351008 -v 1.044926 2.502600 0.351008 -v 1.051031 2.435437 -1.051031 -v 1.051031 2.435437 1.051031 -v 1.051368 0.105600 -1.051368 -v 1.051368 0.105600 1.051368 -v 1.052064 2.400000 -0.772096 -v 1.052064 2.400000 0.772096 -v 1.059553 1.774800 -1.443756 -v 1.059553 1.774800 1.443756 -v 1.062497 0.127575 1.062497 -v 1.062497 0.127575 -1.062497 -v 1.065000 0.150000 -1.065000 -v 1.065000 0.150000 1.065000 -v 1.065000 2.400000 -1.065000 -v 1.065000 2.400000 1.065000 -v 1.072079 2.474400 -0.557774 -v 1.072079 2.474400 0.557774 -v 1.074940 0.177075 -1.074940 -v 1.074940 0.177075 1.074940 -v 1.083310 0.463200 -1.476127 -v 1.083310 0.463200 1.476127 -v 1.086029 2.502600 0.180521 -v 1.086029 2.502600 -0.180521 -v 1.086146 0.031200 0.364854 -v 1.086146 0.031200 -0.364854 -v 1.095040 1.621875 -1.492110 -v 1.095040 1.621875 1.492110 -v 1.100200 2.502600 -0.000000 -v 1.100200 2.502600 0.000000 -v 1.101920 0.213600 1.101920 -v 1.101920 0.213600 -1.101920 -v 1.117130 2.463000 -0.819847 -v 1.117130 2.463000 0.819847 -v 1.118073 2.242575 -1.118073 -v 1.118073 2.242575 1.118073 -v 1.118607 2.482687 -0.820931 -v 1.118607 2.482687 0.820931 -v 1.118749 0.064800 -0.821035 -v 1.118749 0.064800 0.821035 -v 1.121601 2.435437 -0.823129 -v 1.121601 2.435437 0.823129 -v 1.123697 0.553725 -1.531158 -v 1.123697 0.553725 1.531158 -v 1.125061 2.494500 -0.825668 -v 1.125061 2.494500 0.825668 -v 1.126072 1.471200 -1.534395 -v 1.126072 1.471200 1.534395 -v 1.128870 0.031200 -0.187642 -v 1.128870 0.031200 0.187642 -v 1.132992 2.400000 -0.831488 -v 1.132992 2.400000 0.831488 -v 1.134190 2.440800 0.590089 -v 1.134190 2.440800 -0.590089 -v 1.135521 2.498438 -0.833344 -v 1.135521 2.498438 0.833344 -v 1.141680 0.260025 1.141680 -v 1.141680 0.260025 -1.141680 -v 1.142888 0.046875 -0.594614 -v 1.142888 0.046875 0.594614 -v 1.143600 0.031200 0.000000 -v 1.143600 0.031200 0.000000 -v 1.144271 2.474400 -0.384379 -v 1.144271 2.474400 0.384379 -v 1.149016 2.494500 -0.843248 -v 1.149016 2.494500 0.843248 -v 1.151759 1.323225 -1.569396 -v 1.151759 1.323225 1.569396 -v 1.156792 2.400000 -0.601848 -v 1.156792 2.400000 0.601848 -v 1.156956 0.656400 -1.576477 -v 1.156956 0.656400 1.576477 -v 1.164574 2.482687 -0.854666 -v 1.164574 2.482687 0.854666 -v 1.169673 0.084525 -0.858407 -v 1.169673 0.084525 0.858407 -v 1.170080 2.085600 -1.170080 -v 1.170080 2.085600 1.170080 -v 1.171210 1.178400 -1.595900 -v 1.171210 1.178400 1.595900 -v 1.179525 0.771675 -1.607230 -v 1.179525 0.771675 1.607230 -v 1.181225 2.463000 -0.866886 -v 1.181225 2.463000 0.866886 -v 1.183534 1.037175 -1.612693 -v 1.183534 1.037175 1.612693 -v 1.187840 0.900000 -1.618560 -v 1.187840 0.900000 -1.618560 -v 1.187840 0.900000 1.618560 -v 1.187840 0.900000 1.618560 -v 1.189282 2.474400 -0.197684 -v 1.189282 2.474400 0.197684 -v 1.189960 0.316800 -1.189960 -v 1.189960 0.316800 1.189960 -v 1.197997 2.435437 -0.879195 -v 1.197997 2.435437 0.879195 -v 1.198382 0.105600 -0.879477 -v 1.198382 0.105600 0.879477 -v 1.204800 2.474400 0.000000 -v 1.204800 2.474400 -0.000000 -v 1.210564 2.440800 0.406648 -v 1.210564 2.440800 -0.406648 -v 1.211067 0.127575 0.888786 -v 1.211067 0.127575 -0.888786 -v 1.213920 0.150000 -0.890880 -v 1.213920 0.150000 -0.890880 -v 1.213920 0.150000 0.890880 -v 1.213920 0.150000 0.890880 -v 1.213920 2.400000 -0.890880 -v 1.213920 2.400000 0.890880 -v 1.219848 0.046875 -0.409767 -v 1.219848 0.046875 0.409767 -v 1.219958 1.929525 1.219958 -v 1.219958 1.929525 -1.219958 -v 1.225250 0.177075 0.899195 -v 1.225250 0.177075 -0.899195 -v 1.228335 2.463000 -0.639070 -v 1.228335 2.463000 0.639070 -v 1.229959 2.482687 -0.639915 -v 1.229959 2.482687 0.639915 -v 1.230115 0.064800 -0.639996 -v 1.230115 0.064800 0.639996 -v 1.233252 2.435437 -0.641628 -v 1.233252 2.435437 0.641628 -v 1.234688 2.400000 -0.414752 -v 1.234688 2.400000 0.414752 -v 1.237056 2.494500 -0.643607 -v 1.237056 2.494500 0.643607 -v 1.242500 0.384375 -1.242500 -v 1.242500 0.384375 1.242500 -v 1.245776 2.400000 -0.648144 -v 1.245776 2.400000 0.648144 -v 1.248557 2.498438 -0.649591 -v 1.248557 2.498438 0.649591 -v 1.256003 0.213600 0.921764 -v 1.256003 0.213600 -0.921764 -v 1.258183 2.440800 0.209136 -v 1.258183 2.440800 -0.209136 -v 1.263395 2.494500 -0.657311 -v 1.263395 2.494500 0.657311 -v 1.266640 1.774800 -1.266640 -v 1.266640 1.774800 1.266640 -v 1.267832 0.046875 -0.210740 -v 1.267832 0.046875 0.210740 -v 1.274414 2.242575 -0.935276 -v 1.274414 2.242575 0.935276 -v 1.274600 2.440800 0.000000 -v 1.274600 2.440800 0.000000 -v 1.280502 2.482687 -0.666211 -v 1.280502 2.482687 0.666211 -v 1.283256 2.400000 -0.213304 -v 1.283256 2.400000 0.213304 -v 1.284375 0.046875 0.000000 -v 1.284375 0.046875 -0.000000 -v 1.286108 0.084525 -0.669128 -v 1.286108 0.084525 0.669128 -v 1.295040 0.463200 -1.295040 -v 1.295040 0.463200 1.295040 -v 1.298810 2.463000 -0.675736 -v 1.298810 2.463000 0.675736 -v 1.300000 2.400000 0.000000 -v 1.300000 2.400000 -0.000000 -v 1.301322 0.260025 0.955023 -v 1.301322 0.260025 -0.955023 -v 1.309063 1.621875 -1.309063 -v 1.309063 1.621875 1.309063 -v 1.311049 2.463000 -0.440403 -v 1.311049 2.463000 0.440403 -v 1.312782 2.482687 -0.440985 -v 1.312782 2.482687 0.440985 -v 1.312948 0.064800 0.441041 -v 1.312948 0.064800 -0.441041 -v 1.316296 2.435437 -0.442166 -v 1.316296 2.435437 0.442166 -v 1.317252 2.435437 -0.685331 -v 1.317252 2.435437 0.685331 -v 1.317675 0.105600 -0.685551 -v 1.317675 0.105600 0.685551 -v 1.320356 2.494500 -0.443529 -v 1.320356 2.494500 0.443529 -v 1.329664 2.400000 -0.446656 -v 1.329664 2.400000 0.446656 -v 1.331623 0.127575 0.692808 -v 1.331623 0.127575 -0.692808 -v 1.332632 2.498438 -0.447653 -v 1.332632 2.498438 0.447653 -v 1.333693 2.085600 -0.978780 -v 1.333693 2.085600 0.978780 -v 1.334760 0.150000 0.694440 -v 1.334760 0.150000 -0.694440 -v 1.334760 0.150000 -0.694440 -v 1.334760 0.150000 0.694440 -v 1.334760 2.400000 -0.694440 -v 1.334760 2.400000 0.694440 -v 1.343320 0.553725 -1.343320 -v 1.343320 0.553725 1.343320 -v 1.346160 1.471200 -1.346160 -v 1.346160 1.471200 1.346160 -v 1.347218 0.177075 0.700921 -v 1.347218 0.177075 -0.700921 -v 1.348469 2.494500 -0.452973 -v 1.348469 2.494500 0.452973 -v 1.356353 0.316800 -0.995410 -v 1.356353 0.316800 0.995410 -v 1.362620 2.463000 -0.226496 -v 1.362620 2.463000 0.226496 -v 1.364422 2.482687 -0.226795 -v 1.364422 2.482687 0.226795 -v 1.364595 0.064800 -0.226824 -v 1.364595 0.064800 0.226824 -v 1.366728 2.482687 -0.459107 -v 1.366728 2.482687 0.459107 -v 1.368074 2.435437 -0.227403 -v 1.368074 2.435437 0.227403 -v 1.372294 2.494500 -0.228104 -v 1.372294 2.494500 0.228104 -v 1.372712 0.084525 -0.461116 -v 1.372712 0.084525 0.461116 -v 1.376867 1.323225 -1.376868 -v 1.376868 1.323225 1.376867 -v 1.380400 2.463000 0.000000 -v 1.380400 2.463000 -0.000000 -v 1.381032 0.213600 0.718514 -v 1.381032 0.213600 -0.718514 -v 1.381968 2.400000 -0.229712 -v 1.381968 2.400000 0.229712 -v 1.382225 2.482687 0.000000 -v 1.382225 2.482687 0.000000 -v 1.382400 0.064800 0.000000 -v 1.382400 0.064800 0.000000 -v 1.383080 0.656400 -1.383080 -v 1.383080 0.656400 1.383080 -v 1.385053 2.498438 -0.230225 -v 1.385053 2.498438 0.230225 -v 1.385925 2.435437 0.000000 -v 1.385925 2.435437 -0.000000 -v 1.386270 2.463000 -0.465671 -v 1.386270 2.463000 0.465671 -v 1.390200 2.494500 0.000000 -v 1.390200 2.494500 -0.000000 -v 1.390545 1.929525 -1.020503 -v 1.390545 1.929525 1.020503 -v 1.400000 2.400000 0.000000 -v 1.400000 2.400000 0.000000 -v 1.400120 1.178400 -1.400120 -v 1.400120 1.178400 1.400120 -v 1.401276 2.242575 -0.729046 -v 1.401276 2.242575 0.729046 -v 1.401513 2.494500 -0.232961 -v 1.401513 2.494500 0.232961 -v 1.403125 2.498438 0.000000 -v 1.403125 2.498438 0.000000 -v 1.405953 2.435437 -0.472283 -v 1.405953 2.435437 0.472283 -v 1.406405 0.105600 -0.472434 -v 1.406405 0.105600 0.472434 -v 1.410060 0.771675 -1.410060 -v 1.410060 0.771675 1.410060 -v 1.414853 1.037175 -1.414853 -v 1.414853 1.037175 1.414853 -v 1.416240 0.384375 -1.039360 -v 1.416240 0.384375 1.039360 -v 1.419800 2.494500 0.000000 -v 1.419800 2.494500 -0.000000 -v 1.420000 0.900000 -1.420000 -v 1.420000 0.900000 -1.420000 -v 1.420000 0.900000 1.420000 -v 1.420000 0.900000 1.420000 -v 1.420490 2.482687 -0.236115 -v 1.420490 2.482687 0.236115 -v 1.421292 0.127575 0.477435 -v 1.421292 0.127575 -0.477435 -v 1.424640 0.150000 -0.478560 -v 1.424640 0.150000 -0.478560 -v 1.424640 0.150000 0.478560 -v 1.424640 0.150000 0.478560 -v 1.424640 2.400000 -0.478560 -v 1.424640 2.400000 0.478560 -v 1.426709 0.084525 -0.237149 -v 1.426709 0.084525 0.237149 -v 1.430863 0.260025 0.744440 -v 1.430863 0.260025 -0.744440 -v 1.437937 0.177075 0.483027 -v 1.437937 0.177075 -0.483027 -v 1.439025 2.482687 0.000000 -v 1.440800 2.463000 -0.239491 -v 1.440800 2.463000 0.239491 -v 1.443756 1.774800 -1.059553 -v 1.443756 1.774800 1.059553 -v 1.445325 0.084525 0.000000 -v 1.445325 0.084525 0.000000 -v 1.459600 2.463000 0.000000 -v 1.459600 2.463000 -0.000000 -v 1.461258 2.435437 -0.242892 -v 1.461258 2.435437 0.242892 -v 1.461727 0.105600 -0.242970 -v 1.461727 0.105600 0.242970 -v 1.466456 2.085600 -0.762958 -v 1.466456 2.085600 0.762958 -v 1.474028 0.213600 0.495150 -v 1.474028 0.213600 -0.495150 -v 1.476127 0.463200 -1.083310 -v 1.476127 0.463200 1.083310 -v 1.477200 0.127575 0.245542 -v 1.477200 0.127575 -0.245542 -v 1.480325 2.435437 0.000000 -v 1.480325 2.435437 -0.000000 -v 1.480680 0.150000 -0.246120 -v 1.480680 0.150000 0.246120 -v 1.480680 0.150000 0.246120 -v 1.480680 0.150000 -0.246120 -v 1.480680 2.400000 -0.246120 -v 1.480680 2.400000 0.246120 -v 1.480800 0.105600 0.000000 -v 1.480800 0.105600 0.000000 -v 1.491372 0.316800 -0.775921 -v 1.491372 0.316800 0.775921 -v 1.492110 1.621875 -1.095040 -v 1.492110 1.621875 1.095040 -v 1.494500 0.177075 0.248417 -v 1.494500 0.177075 -0.248417 -v 1.495635 2.242575 -0.502408 -v 1.495635 2.242575 0.502408 -v 1.496475 0.127575 0.000000 -v 1.496475 0.127575 0.000000 -v 1.500000 0.150000 0.000000 -v 1.500000 0.150000 0.000000 -v 1.500000 2.400000 0.000000 -v 1.500000 2.400000 0.000000 -v 1.514000 0.177075 -0.000000 -v 1.514000 0.177075 0.000000 -v 1.527214 0.260025 -0.513016 -v 1.527214 0.260025 0.513016 -v 1.528968 1.929525 -0.795481 -v 1.528968 1.929525 0.795481 -v 1.531158 0.553725 -1.123697 -v 1.531158 0.553725 1.123697 -v 1.532010 0.213600 0.254652 -v 1.532010 0.213600 -0.254652 -v 1.534395 1.471200 -1.126072 -v 1.534395 1.471200 1.126072 -v 1.552000 0.213600 0.000000 -v 1.552000 0.213600 0.000000 -v 1.554467 2.242575 -0.258385 -v 1.554467 2.242575 0.258385 -v 1.557220 0.384375 -0.810180 -v 1.557220 0.384375 0.810180 -v 1.565204 2.085600 -0.525778 -v 1.565204 2.085600 0.525778 -v 1.569396 1.323225 -1.151759 -v 1.569396 1.323225 1.151759 -v 1.574750 2.242575 0.000000 -v 1.574750 2.242575 0.000000 -v 1.576477 0.656400 -1.156956 -v 1.576477 0.656400 1.156956 -v 1.587289 0.260025 0.263841 -v 1.587289 0.260025 -0.263841 -v 1.587475 1.774800 -0.825921 -v 1.587475 1.774800 0.825921 -v 1.591798 0.316800 -0.534711 -v 1.591798 0.316800 0.534711 -v 1.595900 1.178400 -1.171210 -v 1.595900 1.178400 1.171210 -v 1.607230 0.771675 -1.179525 -v 1.607230 0.771675 1.179525 -v 1.608000 0.260025 0.000000 -v 1.608000 0.260025 0.000000 -v 1.612693 1.037175 -1.183534 -v 1.612693 1.037175 1.183534 -v 1.618560 0.900000 -1.187840 -v 1.618560 0.900000 -1.187840 -v 1.618560 0.900000 1.187840 -v 1.618560 0.900000 1.187840 -v 1.623068 0.463200 -0.844439 -v 1.623068 0.463200 0.844439 -v 1.626774 2.085600 -0.270404 -v 1.626774 2.085600 0.270404 -v 1.631925 1.929525 -0.548190 -v 1.631925 1.929525 0.548190 -v 1.640643 1.621875 -0.853583 -v 1.640643 1.621875 0.853583 -v 1.648000 2.085600 0.000000 -v 1.648000 2.085600 -0.000000 -v 1.654413 0.316800 -0.274998 -v 1.654413 0.316800 0.274998 -v 1.662080 0.384375 -0.558320 -v 1.662080 0.384375 0.558320 -v 1.676000 0.316800 0.000000 -v 1.676000 0.316800 0.000000 -v 1.683577 0.553725 -0.875920 -v 1.683577 0.553725 0.875920 -v 1.687137 1.471200 -0.877772 -v 1.687137 1.471200 0.877772 -v 1.694372 1.774800 -0.569167 -v 1.694372 1.774800 0.569167 -v 1.696119 1.929525 -0.281930 -v 1.696119 1.929525 0.281930 -v 1.700000 0.600000 0.000000 -v 1.700000 0.600000 0.000000 -v 1.700000 0.623100 0.178200 -v 1.700000 0.623100 -0.178200 -v 1.700000 0.685800 -0.316800 -v 1.700000 0.685800 0.316800 -v 1.700000 0.778200 0.415800 -v 1.700000 0.778200 -0.415800 -v 1.700000 0.890400 -0.475200 -v 1.700000 0.890400 0.475200 -v 1.700000 1.012500 -0.495000 -v 1.700000 1.012500 0.495000 -v 1.700000 1.134600 -0.475200 -v 1.700000 1.134600 0.475200 -v 1.700000 1.246800 0.415800 -v 1.700000 1.246800 -0.415800 -v 1.700000 1.339200 -0.316800 -v 1.700000 1.339200 0.316800 -v 1.700000 1.401900 0.178200 -v 1.700000 1.401900 -0.178200 -v 1.700000 1.425000 0.000000 -v 1.700000 1.425000 0.000000 -v 1.718250 1.929525 0.000000 -v 1.718250 1.929525 0.000000 -v 1.725622 1.323225 -0.897795 -v 1.725622 1.323225 0.897795 -v 1.727460 0.384375 -0.287140 -v 1.727460 0.384375 0.287140 -v 1.732362 0.463200 -0.581929 -v 1.732362 0.463200 0.581929 -v 1.733408 0.656400 -0.901846 -v 1.733408 0.656400 0.901846 -v 1.750000 0.384375 0.000000 -v 1.750000 0.384375 0.000000 -v 1.751120 1.621875 -0.588230 -v 1.751120 1.621875 0.588230 -v 1.754764 1.178400 -0.912957 -v 1.754764 1.178400 0.912957 -v 1.761022 1.774800 -0.292719 -v 1.761022 1.774800 0.292719 -v 1.767222 0.771675 -0.919439 -v 1.767222 0.771675 0.919439 -v 1.773229 1.037175 -0.922564 -v 1.773229 1.037175 0.922564 -v 1.779680 0.900000 -0.925920 -v 1.779680 0.900000 -0.925920 -v 1.779680 0.900000 0.925920 -v 1.779680 0.900000 0.925920 -v 1.784000 1.774800 0.000000 -v 1.784000 1.774800 0.000000 -v 1.796946 0.553725 -0.603624 -v 1.796946 0.553725 0.603624 -v 1.800507 0.463200 -0.299282 -v 1.800507 0.463200 0.299282 -v 1.800745 1.471200 -0.604900 -v 1.800745 1.471200 0.604900 -v 1.820003 1.621875 -0.302523 -v 1.820003 1.621875 0.302522 -v 1.824000 0.463200 0.000000 -v 1.824000 0.463200 0.000000 -v 1.841822 1.323225 -0.618698 -v 1.841822 1.323225 0.618698 -v 1.843750 1.621875 0.000000 -v 1.843750 1.621875 -0.000000 -v 1.850132 0.656400 -0.621490 -v 1.850132 0.656400 0.621490 -v 1.867631 0.553725 -0.310439 -v 1.867631 0.553725 0.310439 -v 1.871580 1.471200 -0.311096 -v 1.871580 1.471200 0.311096 -v 1.872927 1.178400 -0.629147 -v 1.872927 1.178400 0.629147 -v 1.886223 0.771675 -0.633613 -v 1.886223 0.771675 0.633613 -v 1.892000 0.553725 0.000000 -v 1.892000 0.553725 -0.000000 -v 1.892634 1.037175 -0.635767 -v 1.892634 1.037175 0.635767 -v 1.896000 1.471200 0.000000 -v 1.896000 1.471200 0.000000 -v 1.899520 0.900000 -0.638080 -v 1.899520 0.900000 -0.638080 -v 1.899520 0.900000 0.638080 -v 1.899520 0.900000 0.638080 -v 1.914272 1.323225 -0.318192 -v 1.914272 1.323225 0.318192 -v 1.922910 0.656400 -0.319628 -v 1.922910 0.656400 0.319628 -v 1.935900 1.444200 0.000000 -v 1.935900 1.444200 0.000000 -v 1.939250 1.323225 0.000000 -v 1.939250 1.323225 -0.000000 -v 1.939394 1.423221 -0.175100 -v 1.939394 1.423221 0.175100 -v 1.946601 1.178400 -0.323566 -v 1.946601 1.178400 0.323566 -v 1.948000 0.656400 0.000000 -v 1.948000 0.656400 -0.000000 -v 1.948879 1.366278 -0.311290 -v 1.948879 1.366278 0.311290 -v 1.960420 0.771675 -0.325863 -v 1.960420 0.771675 0.325863 -v 1.962857 1.282362 -0.408568 -v 1.962857 1.282362 0.408568 -v 1.967083 1.037175 -0.326970 -v 1.967083 1.037175 0.326970 -v 1.972000 1.178400 0.000000 -v 1.972000 1.178400 0.000000 -v 1.974240 0.900000 -0.328160 -v 1.974240 0.900000 0.328160 -v 1.974240 0.900000 0.328160 -v 1.979830 1.180464 -0.466934 -v 1.979830 1.180464 0.466934 -v 1.986000 0.771675 0.000000 -v 1.986000 0.771675 -0.000000 -v 1.992750 1.037175 0.000000 -v 1.992750 1.037175 0.000000 -v 1.998300 1.069575 -0.486390 -v 1.998300 1.069575 0.486390 -v 2.000000 0.900000 0.000000 -v 2.000000 0.900000 0.000000 -v 2.016770 0.958686 -0.466934 -v 2.016770 0.958686 0.466934 -v 2.033743 0.856788 -0.408568 -v 2.033743 0.856788 0.408568 -v 2.047721 0.772872 0.311290 -v 2.047721 0.772872 -0.311290 -v 2.057206 0.715929 0.175100 -v 2.057206 0.715929 -0.175100 -v 2.060700 0.694950 0.000000 -v 2.060700 0.694950 0.000000 -v 2.111200 1.497600 0.000000 -v 2.111200 1.497600 0.000000 -v 2.116979 1.479120 -0.166687 -v 2.116979 1.479120 0.166687 -v 2.132666 1.428960 -0.296333 -v 2.132666 1.428960 0.296333 -v 2.155782 1.355040 -0.388937 -v 2.155782 1.355040 0.388937 -v 2.183853 1.265280 -0.444499 -v 2.183853 1.265280 0.444499 -v 2.214400 1.167600 -0.463020 -v 2.214400 1.167600 0.463020 -v 2.237300 1.578900 0.000000 -v 2.237300 1.578900 0.000000 -v 2.244457 1.563171 -0.154289 -v 2.244457 1.563171 0.154289 -v 2.244947 1.069920 -0.444499 -v 2.244947 1.069920 0.444499 -v 2.263882 1.520478 -0.274291 -v 2.263882 1.520478 0.274291 -v 2.273018 0.980160 -0.388937 -v 2.273018 0.980160 0.388937 -v 2.292510 1.457562 -0.360007 -v 2.292510 1.457562 0.360007 -v 2.296134 0.906240 -0.296333 -v 2.296134 0.906240 0.296333 -v 2.311821 0.856080 -0.166687 -v 2.311821 0.856080 0.166687 -v 2.317600 0.837600 0.000000 -v 2.317600 0.837600 0.000000 -v 2.325600 1.681800 0.000000 -v 2.325600 1.681800 0.000000 -v 2.327271 1.381164 -0.411437 -v 2.327271 1.381164 0.411437 -v 2.333530 1.668948 -0.139234 -v 2.333530 1.668948 0.139234 -v 2.355053 1.634064 -0.247526 -v 2.355053 1.634064 0.247526 -v 2.365100 1.298025 -0.428580 -v 2.365100 1.298025 0.428580 -v 2.386771 1.582656 -0.324878 -v 2.386771 1.582656 0.324878 -v 2.387500 1.800000 0.000000 -v 2.387500 1.800000 0.000000 -v 2.395900 1.790025 0.122850 -v 2.395900 1.790025 -0.122850 -v 2.402929 1.214886 -0.411437 -v 2.402929 1.214886 0.411437 -v 2.418700 1.762950 -0.218400 -v 2.418700 1.762950 0.218400 -v 2.425286 1.520232 -0.371290 -v 2.425286 1.520232 0.371290 -v 2.434400 1.927200 0.000000 -v 2.434400 1.927200 0.000000 -v 2.437690 1.138488 -0.360007 -v 2.437690 1.138488 0.360007 -v 2.443270 1.919976 0.106466 -v 2.443270 1.919976 -0.106466 -v 2.452300 1.723050 -0.286650 -v 2.452300 1.723050 0.286650 -v 2.466318 1.075572 -0.274291 -v 2.466318 1.075572 0.274291 -v 2.467200 1.452300 -0.386760 -v 2.467200 1.452300 0.386760 -v 2.467347 1.900368 0.189274 -v 2.467347 1.900368 -0.189274 -v 2.477700 2.057100 0.000000 -v 2.477700 2.057100 0.000000 -v 2.485743 1.032879 -0.154289 -v 2.485743 1.032879 0.154289 -v 2.487343 2.052375 -0.091411 -v 2.487343 2.052375 0.091411 -v 2.492900 1.017150 0.000000 -v 2.492900 1.017150 0.000000 -v 2.493100 1.674600 -0.327600 -v 2.493100 1.674600 0.327600 -v 2.502829 1.871472 0.248422 -v 2.502829 1.871472 -0.248422 -v 2.509114 1.384368 -0.371290 -v 2.509114 1.384368 0.371290 -v 2.513518 2.039550 0.162509 -v 2.513518 2.039550 -0.162509 -v 2.528800 2.183400 0.000000 -v 2.537500 1.621875 -0.341250 -v 2.537500 1.621875 0.341250 -v 2.539821 2.180796 -0.079013 -v 2.539821 2.180796 0.079013 -v 2.545914 1.836384 -0.283910 -v 2.545914 1.836384 0.283910 -v 2.547629 1.321944 -0.324878 -v 2.547629 1.321944 0.324878 -v 2.552090 2.020650 -0.213293 -v 2.552090 2.020650 0.213293 -v 2.569734 2.173728 -0.140467 -v 2.569734 2.173728 0.140467 -v 2.579347 1.270536 -0.247526 -v 2.579347 1.270536 0.247526 -v 2.581900 1.569150 -0.327600 -v 2.581900 1.569150 0.327600 -v 2.592800 1.798200 -0.295740 -v 2.592800 1.798200 0.295740 -v 2.598929 1.997700 -0.243763 -v 2.598929 1.997700 0.243763 -v 2.599100 2.299800 0.000000 -v 2.599100 2.299800 0.000000 -v 2.600870 1.235652 -0.139234 -v 2.600870 1.235652 0.139234 -v 2.608800 1.222800 0.000000 -v 2.608800 1.222800 0.000000 -v 2.612406 2.298813 0.070600 -v 2.612406 2.298813 -0.070600 -v 2.613818 2.163312 -0.184363 -v 2.613818 2.163312 0.184363 -v 2.622700 1.520700 -0.286650 -v 2.622700 1.520700 0.286650 -v 2.639686 1.760016 -0.283910 -v 2.639686 1.760016 0.283910 -v 2.648521 2.296134 0.125510 -v 2.648521 2.296134 -0.125510 -v 2.649900 1.972725 0.253920 -v 2.649900 1.972725 -0.253920 -v 2.656300 1.480800 -0.218400 -v 2.656300 1.480800 0.218400 -v 2.667347 2.150664 -0.210701 -v 2.667347 2.150664 0.210701 -v 2.679100 1.453725 0.122850 -v 2.679100 1.453725 -0.122850 -v 2.682771 1.724928 0.248422 -v 2.682771 1.724928 -0.248422 -v 2.687500 1.443750 0.000000 -v 2.687500 1.443750 0.000000 -v 2.700000 2.400000 0.000000 -v 2.700000 2.400000 0.000000 -v 2.700000 2.400000 0.000000 -v 2.700871 1.947750 -0.243763 -v 2.700871 1.947750 0.243763 -v 2.701743 2.292186 0.164732 -v 2.701743 2.292186 -0.164732 -v 2.716800 2.400000 0.067500 -v 2.716800 2.400000 -0.067500 -v 2.716800 2.400000 -0.067500 -v 2.716800 2.400000 0.067500 -v 2.718253 1.696032 0.189274 -v 2.718253 1.696032 -0.189274 -v 2.725600 2.136900 -0.219480 -v 2.725600 2.136900 0.219480 -v 2.729800 2.420250 0.000000 -v 2.742330 1.676424 0.106466 -v 2.742330 1.676424 -0.106466 -v 2.747407 2.420406 -0.066744 -v 2.747407 2.420406 0.066744 -v 2.747710 1.924800 -0.213293 -v 2.747710 1.924800 0.213293 -v 2.751200 1.669200 0.000000 -v 2.751200 1.669200 0.000000 -v 2.758400 2.436000 0.000000 -v 2.762400 2.400000 0.120000 -v 2.762400 2.400000 -0.120000 -v 2.762400 2.400000 -0.120000 -v 2.762400 2.400000 0.120000 -v 2.766370 2.287392 0.188266 -v 2.766370 2.287392 -0.188266 -v 2.776365 2.436302 -0.064692 -v 2.776365 2.436302 0.064692 -v 2.783853 2.123136 -0.210701 -v 2.783853 2.123136 0.210701 -v 2.784600 2.447250 0.000000 -v 2.784600 2.447250 0.000000 -v 2.786282 1.905900 0.162509 -v 2.786282 1.905900 -0.162509 -v 2.795198 2.420829 -0.118656 -v 2.795198 2.420829 0.118656 -v 2.800000 2.400000 0.000000 -v 2.802528 2.447680 -0.061668 -v 2.802528 2.447680 0.061668 -v 2.807200 2.454000 0.000000 -v 2.811200 2.400000 -0.040500 -v 2.811200 2.400000 0.040500 -v 2.812457 1.893075 0.091411 -v 2.812457 1.893075 -0.091411 -v 2.822100 1.888350 0.000000 -v 2.822100 1.888350 0.000000 -v 2.824200 2.420250 0.000000 -v 2.824200 2.420250 0.000000 -v 2.824750 2.454529 -0.057996 -v 2.824750 2.454529 0.057996 -v 2.825000 2.456250 0.000000 -v 2.825000 2.456250 0.000000 -v 2.825126 2.437123 -0.115008 -v 2.825126 2.437123 0.115008 -v 2.829600 2.400000 0.157500 -v 2.829600 2.400000 -0.157500 -v 2.829600 2.400000 -0.157500 -v 2.829600 2.400000 0.157500 -v 2.836672 2.420519 -0.041256 -v 2.836672 2.420519 0.041256 -v 2.836700 2.282175 0.196110 -v 2.836700 2.282175 -0.196110 -v 2.836800 2.454000 0.000000 -v 2.836800 2.454000 0.000000 -v 2.837382 2.110488 -0.184363 -v 2.837382 2.110488 0.184363 -v 2.837600 2.436000 0.000000 -v 2.837600 2.436000 0.000000 -v 2.841400 2.447250 0.000000 -v 2.841400 2.447250 0.000000 -v 2.841600 2.400000 -0.072000 -v 2.841600 2.400000 0.072000 -v 2.841887 2.456841 -0.054000 -v 2.841887 2.456841 0.054000 -v 2.851189 2.448847 -0.109632 -v 2.851189 2.448847 0.109632 -v 2.851331 2.436454 -0.043308 -v 2.851331 2.436454 0.043308 -v 2.852794 2.454605 -0.050004 -v 2.852794 2.454605 0.050004 -v 2.856323 2.447812 -0.046332 -v 2.856323 2.447812 0.046332 -v 2.865626 2.421453 -0.155736 -v 2.865626 2.421453 0.155736 -v 2.870524 2.421250 -0.073344 -v 2.870524 2.421250 0.073344 -v 2.872387 2.455966 -0.103104 -v 2.872387 2.455966 0.103104 -v 2.881466 2.100072 -0.140467 -v 2.881466 2.100072 0.140467 -v 2.886400 2.400000 -0.094500 -v 2.886400 2.400000 0.094500 -v 2.887725 2.458444 -0.096000 -v 2.887725 2.458444 0.096000 -v 2.888602 2.437685 -0.076992 -v 2.888602 2.437685 0.076992 -v 2.896205 2.456246 0.088896 -v 2.896205 2.456246 -0.088896 -v 2.896829 2.449338 -0.082368 -v 2.896829 2.449338 0.082368 -v 2.896986 2.438333 -0.150948 -v 2.896986 2.438333 0.150948 -v 2.907030 2.276958 0.188266 -v 2.907030 2.276958 -0.188266 -v 2.911200 2.400000 -0.180000 -v 2.911200 2.400000 -0.180000 -v 2.911200 2.400000 0.180000 -v 2.911379 2.093004 -0.079013 -v 2.911379 2.093004 0.079013 -v 2.920412 2.422328 -0.096264 -v 2.920412 2.422328 0.096264 -v 2.922400 2.090400 0.000000 -v 2.922899 2.450567 -0.143892 -v 2.922899 2.450567 0.143892 -v 2.940800 2.400000 -0.108000 -v 2.940800 2.400000 0.108000 -v 2.942589 2.458082 -0.135324 -v 2.942589 2.458082 0.135324 -v 2.943526 2.439499 -0.101052 -v 2.943526 2.439499 0.101052 -v 2.951146 2.422210 -0.177984 -v 2.951146 2.422210 0.177984 -v 2.955275 2.460806 -0.126000 -v 2.955275 2.460806 0.126000 -v 2.956523 2.451588 -0.108108 -v 2.956523 2.451588 0.108108 -v 2.960179 2.458666 -0.116676 -v 2.960179 2.458666 0.116676 -v 2.971657 2.272164 0.164732 -v 2.971657 2.272164 -0.164732 -v 2.980990 2.423636 0.110016 -v 2.980990 2.423636 -0.110016 -v 2.984243 2.439802 -0.172512 -v 2.984243 2.439802 0.172512 -v 3.000000 2.400000 -0.187500 -v 3.000000 2.400000 -0.187500 -v 3.000000 2.400000 -0.112500 -v 3.000000 2.400000 0.112500 -v 3.000000 2.400000 0.187500 -v 3.009977 2.452655 -0.164448 -v 3.009977 2.452655 0.164448 -v 3.010221 2.441702 -0.115488 -v 3.010221 2.441702 0.115488 -v 3.024879 2.268216 0.125510 -v 3.024879 2.268216 -0.125510 -v 3.027834 2.460653 -0.154656 -v 3.027834 2.460653 0.154656 -v 3.029007 2.454319 -0.123552 -v 3.029007 2.454319 0.123552 -v 3.037300 2.463675 -0.144000 -v 3.037300 2.463675 0.144000 -v 3.037862 2.461603 0.133344 -v 3.037862 2.461603 -0.133344 -v 3.044212 2.423034 -0.185400 -v 3.044212 2.423034 0.185400 -v 3.046912 2.425059 0.114600 -v 3.046912 2.425059 -0.114600 -v 3.059200 2.400000 -0.108000 -v 3.059200 2.400000 0.108000 -v 3.060994 2.265537 0.070600 -v 3.060994 2.265537 -0.070600 -v 3.074300 2.264550 0.000000 -v 3.074300 2.264550 0.000000 -v 3.079200 2.441400 -0.179700 -v 3.079200 2.441400 0.179700 -v 3.082800 2.444100 -0.120300 -v 3.082800 2.444100 0.120300 -v 3.088800 2.400000 -0.180000 -v 3.088800 2.400000 -0.180000 -v 3.088800 2.400000 0.180000 -v 3.104737 2.454928 -0.171300 -v 3.104738 2.454928 0.171300 -v 3.107887 2.457291 -0.128700 -v 3.107887 2.457291 0.128700 -v 3.112835 2.426483 0.110016 -v 3.112835 2.426483 -0.110016 -v 3.113600 2.400000 -0.094500 -v 3.113600 2.400000 0.094500 -v 3.120600 2.463450 0.161100 -v 3.120600 2.463450 -0.161100 -v 3.122400 2.464800 0.138900 -v 3.122400 2.464800 -0.138900 -v 3.126562 2.466797 -0.150000 -v 3.126562 2.466797 0.150000 -v 3.137279 2.423859 -0.177984 -v 3.137279 2.423859 0.177984 -v 3.155379 2.446498 -0.115488 -v 3.155379 2.446498 0.115488 -v 3.158400 2.400000 -0.072000 -v 3.158400 2.400000 0.072000 -v 3.170400 2.400000 -0.157500 -v 3.170400 2.400000 0.157500 -v 3.170400 2.400000 -0.157500 -v 3.173413 2.427791 -0.096264 -v 3.173413 2.427791 0.096264 -v 3.174157 2.442998 -0.172512 -v 3.174157 2.442998 0.172512 -v 3.186768 2.460263 -0.123552 -v 3.186768 2.460263 0.123552 -v 3.188800 2.400000 -0.040500 -v 3.188800 2.400000 0.040500 -v 3.199498 2.457201 -0.164448 -v 3.199498 2.457201 0.164448 -v 3.200000 2.400000 0.000000 -v 3.206938 2.467997 0.133344 -v 3.206938 2.467997 -0.133344 -v 3.213366 2.466247 -0.154656 -v 3.213366 2.466247 0.154656 -v 3.215825 2.469919 -0.144000 -v 3.215825 2.469919 0.144000 -v 3.222074 2.448701 -0.101052 -v 3.222074 2.448701 0.101052 -v 3.222799 2.424616 -0.155736 -v 3.222799 2.424616 0.155736 -v 3.223301 2.428868 -0.073344 -v 3.223301 2.428868 0.073344 -v 3.237600 2.400000 -0.120000 -v 3.237600 2.400000 0.120000 -v 3.237600 2.400000 -0.120000 -v 3.257153 2.429599 -0.041256 -v 3.257153 2.429599 0.041256 -v 3.259252 2.462994 -0.108108 -v 3.259252 2.462994 0.108108 -v 3.261414 2.444467 -0.150948 -v 3.261414 2.444467 0.150948 -v 3.269625 2.429869 0.000000 -v 3.269625 2.429869 0.000000 -v 3.276998 2.450515 -0.076992 -v 3.276998 2.450515 0.076992 -v 3.283200 2.400000 -0.067500 -v 3.283200 2.400000 0.067500 -v 3.283200 2.400000 -0.067500 -v 3.284621 2.470934 -0.116676 -v 3.284621 2.470934 0.116676 -v 3.286576 2.459289 -0.143892 -v 3.286576 2.459289 0.143892 -v 3.293227 2.425240 -0.118656 -v 3.293227 2.425240 0.118656 -v 3.297850 2.472787 -0.126000 -v 3.297850 2.472788 0.126000 -v 3.298611 2.468818 -0.135324 -v 3.298611 2.468818 0.135324 -v 3.300000 2.400000 0.000000 -v 3.300000 2.400000 0.000000 -v 3.314269 2.451746 -0.043308 -v 3.314269 2.451746 0.043308 -v 3.318946 2.465243 -0.082368 -v 3.318946 2.465243 0.082368 -v 3.328000 2.452200 0.000000 -v 3.328000 2.452200 0.000000 -v 3.333274 2.445677 -0.115008 -v 3.333274 2.445677 0.115008 -v 3.341018 2.425663 -0.066744 -v 3.341018 2.425663 0.066744 -v 3.348595 2.473354 0.088896 -v 3.348595 2.473354 -0.088896 -v 3.358286 2.461009 -0.109632 -v 3.358286 2.461009 0.109632 -v 3.358625 2.425819 0.000000 -v 3.359452 2.466769 -0.046332 -v 3.359452 2.466769 0.046332 -v 3.365400 2.475150 -0.096000 -v 3.365400 2.475150 0.096000 -v 3.368813 2.470934 -0.103104 -v 3.368813 2.470934 0.103104 -v 3.374375 2.467331 0.000000 -v 3.374375 2.467331 0.000000 -v 3.382035 2.446498 -0.064692 -v 3.382035 2.446498 0.064692 -v 3.392006 2.474995 -0.050004 -v 3.392006 2.474995 0.050004 -v 3.400000 2.446800 0.000000 -v 3.406947 2.462176 -0.061668 -v 3.406947 2.462176 0.061668 -v 3.408000 2.475600 0.000000 -v 3.408000 2.475600 0.000000 -v 3.411237 2.476753 -0.054000 -v 3.411237 2.476753 0.054000 -v 3.416450 2.472371 -0.057996 -v 3.416450 2.472371 0.057996 -v 3.424875 2.462606 0.000000 -v 3.428125 2.477344 0.000000 -v 3.428125 2.477344 0.000000 -v 3.434000 2.472900 0.000000 - -f 2909 2921 2939 -f 2939 2931 2909 -f 2869 2877 2921 -f 2921 2909 2869 -f 2819 2827 2877 -f 2877 2869 2819 -f 2737 2747 2827 -f 2827 2819 2737 -f 2669 2673 2747 -f 2747 2737 2669 -f 2567 2575 2673 -f 2673 2669 2567 -f 2476 2480 2575 -f 2575 2567 2476 -f 2358 2362 2480 -f 2480 2476 2358 -f 2158 2162 2362 -f 2362 2358 2158 -f 1715 1812 2162 -f 2162 2158 1715 -f 2901 2909 2931 -f 2931 2917 2901 -f 2863 2869 2909 -f 2909 2901 2863 -f 2813 2819 2869 -f 2869 2863 2813 -f 2729 2737 2819 -f 2819 2813 2729 -f 2663 2669 2737 -f 2737 2729 2663 -f 2561 2567 2669 -f 2669 2663 2561 -f 2468 2476 2567 -f 2567 2561 2468 -f 2350 2358 2476 -f 2476 2468 2350 -f 2152 2158 2358 -f 2358 2350 2152 -f 1717 1715 2158 -f 2158 2152 1717 -f 2903 2901 2917 -f 2917 2923 2903 -f 2865 2863 2901 -f 2901 2903 2865 -f 2815 2813 2863 -f 2863 2865 2815 -f 2733 2729 2813 -f 2813 2815 2733 -f 2665 2663 2729 -f 2729 2733 2665 -f 2564 2561 2663 -f 2663 2665 2564 -f 2473 2468 2561 -f 2561 2564 2473 -f 2354 2350 2468 -f 2468 2473 2354 -f 2155 2152 2350 -f 2350 2354 2155 -f 1927 1717 2152 -f 2152 2155 1927 -f 2911 2903 2923 -f 2923 2935 2911 -f 2875 2865 2903 -f 2903 2911 2875 -f 2823 2815 2865 -f 2865 2875 2823 -f 2741 2733 2815 -f 2815 2823 2741 -f 2671 2665 2733 -f 2733 2741 2671 -f 2571 2564 2665 -f 2665 2671 2571 -f 2478 2473 2564 -f 2564 2571 2478 -f 2360 2354 2473 -f 2473 2478 2360 -f 2160 2155 2354 -f 2354 2360 2160 -f 1718 1927 2155 -f 2155 2160 1718 -f 2929 2911 2935 -f 2935 2947 2929 -f 2881 2875 2911 -f 2911 2929 2881 -f 2829 2823 2875 -f 2875 2881 2829 -f 2751 2741 2823 -f 2823 2829 2751 -f 2677 2671 2741 -f 2741 2751 2677 -f 2577 2571 2671 -f 2671 2677 2577 -f 2482 2478 2571 -f 2571 2577 2482 -f 2364 2360 2478 -f 2478 2482 2364 -f 2164 2160 2360 -f 2360 2364 2164 -f 1842 1718 2160 -f 2160 2164 1842 -f 2945 2929 2947 -f 2947 2959 2945 -f 2897 2881 2929 -f 2929 2945 2897 -f 2835 2829 2881 -f 2881 2897 2835 -f 2761 2751 2829 -f 2829 2835 2761 -f 2679 2677 2751 -f 2751 2761 2679 -f 2579 2577 2677 -f 2677 2679 2579 -f 2486 2482 2577 -f 2577 2579 2486 -f 2368 2364 2482 -f 2482 2486 2368 -f 2172 2164 2364 -f 2364 2368 2172 -f 1725 1842 2164 -f 2164 2172 1725 -f 2965 2945 2959 -f 2959 2981 2965 -f 2907 2897 2945 -f 2945 2965 2907 -f 2845 2835 2897 -f 2897 2907 2845 -f 2769 2761 2835 -f 2835 2845 2769 -f 2685 2679 2761 -f 2761 2769 2685 -f 2587 2579 2679 -f 2679 2685 2587 -f 2491 2486 2579 -f 2579 2587 2491 -f 2370 2368 2486 -f 2486 2491 2370 -f 2174 2172 2368 -f 2368 2370 2174 -f 1834 1725 2172 -f 2172 2174 1834 -f 2982 2965 2981 -f 2981 2988 2982 -f 2933 2907 2965 -f 2965 2982 2933 -f 2855 2845 2907 -f 2907 2933 2855 -f 2779 2769 2845 -f 2845 2855 2779 -f 2691 2685 2769 -f 2769 2779 2691 -f 2595 2587 2685 -f 2685 2691 2595 -f 2500 2491 2587 -f 2587 2595 2500 -f 2374 2370 2491 -f 2491 2500 2374 -f 2178 2174 2370 -f 2370 2374 2178 -f 1716 1834 2174 -f 2174 2178 1716 -f 2990 2982 2988 -f 2988 3002 2990 -f 2949 2933 2982 -f 2982 2990 2949 -f 2871 2855 2933 -f 2933 2949 2871 -f 2791 2779 2855 -f 2855 2871 2791 -f 2699 2691 2779 -f 2779 2791 2699 -f 2601 2595 2691 -f 2691 2699 2601 -f 2506 2500 2595 -f 2595 2601 2506 -f 2378 2374 2500 -f 2500 2506 2378 -f 2180 2178 2374 -f 2374 2378 2180 -f 1714 1716 2178 -f 2178 2180 1714 -f 3008 2990 3002 -f 3002 3024 3008 -f 2973 2949 2990 -f 2990 3008 2973 -f 2889 2871 2949 -f 2949 2973 2889 -f 2805 2791 2871 -f 2871 2889 2805 -f 2711 2699 2791 -f 2791 2805 2711 -f 2611 2601 2699 -f 2699 2711 2611 -f 2521 2506 2601 -f 2601 2611 2521 -f 2387 2378 2506 -f 2506 2521 2387 -f 2191 2180 2378 -f 2378 2387 2191 -f 1810 1714 2180 -f 2180 2191 1810 -f 1464 1460 1813 -f 1813 1821 1464 -f 1264 1260 1460 -f 1460 1464 1264 -f 1146 1142 1260 -f 1260 1264 1146 -f 1055 1047 1142 -f 1142 1146 1055 -f 953 949 1047 -f 1047 1055 953 -f 885 875 949 -f 949 953 885 -f 803 795 875 -f 875 885 803 -f 753 745 795 -f 795 803 753 -f 713 701 745 -f 745 753 713 -f 691 683 701 -f 701 713 691 -f 1470 1464 1821 -f 1821 1829 1470 -f 1272 1264 1464 -f 1464 1470 1272 -f 1154 1146 1264 -f 1264 1272 1154 -f 1061 1055 1146 -f 1146 1154 1061 -f 959 953 1055 -f 1055 1061 959 -f 893 885 953 -f 953 959 893 -f 809 803 885 -f 885 893 809 -f 759 753 803 -f 803 809 759 -f 721 713 753 -f 753 759 721 -f 705 691 713 -f 713 721 705 -f 1469 1470 1829 -f 1829 1835 1469 -f 1268 1272 1470 -f 1470 1469 1268 -f 1151 1154 1272 -f 1272 1268 1151 -f 1060 1061 1154 -f 1154 1151 1060 -f 957 959 1061 -f 1061 1060 957 -f 889 893 959 -f 959 957 889 -f 807 809 893 -f 893 889 807 -f 757 759 809 -f 809 807 757 -f 719 721 759 -f 759 757 719 -f 699 705 721 -f 721 719 699 -f 1462 1469 1835 -f 1835 1839 1462 -f 1262 1268 1469 -f 1469 1462 1262 -f 1144 1151 1268 -f 1268 1262 1144 -f 1051 1060 1151 -f 1151 1144 1051 -f 951 957 1060 -f 1060 1051 951 -f 881 889 957 -f 957 951 881 -f 799 807 889 -f 889 881 799 -f 747 757 807 -f 807 799 747 -f 711 719 757 -f 757 747 711 -f 687 699 719 -f 719 711 687 -f 1458 1462 1839 -f 1839 1843 1458 -f 1258 1262 1462 -f 1462 1458 1258 -f 1140 1144 1262 -f 1262 1258 1140 -f 1045 1051 1144 -f 1144 1140 1045 -f 945 951 1051 -f 1051 1045 945 -f 871 881 951 -f 951 945 871 -f 793 799 881 -f 881 871 793 -f 741 747 799 -f 799 793 741 -f 693 711 747 -f 747 741 693 -f 675 687 711 -f 711 693 675 -f 1450 1458 1843 -f 1843 1838 1450 -f 1254 1258 1458 -f 1458 1450 1254 -f 1136 1140 1258 -f 1258 1254 1136 -f 1043 1045 1140 -f 1140 1136 1043 -f 943 945 1045 -f 1045 1043 943 -f 861 871 945 -f 945 943 861 -f 787 793 871 -f 871 861 787 -f 725 741 793 -f 793 787 725 -f 677 693 741 -f 741 725 677 -f 663 675 693 -f 693 677 663 -f 1448 1450 1838 -f 1838 1834 1448 -f 1252 1254 1450 -f 1450 1448 1252 -f 1133 1136 1254 -f 1254 1252 1133 -f 1035 1043 1136 -f 1136 1133 1035 -f 937 943 1043 -f 1043 1035 937 -f 853 861 943 -f 943 937 853 -f 777 787 861 -f 861 853 777 -f 715 725 787 -f 787 777 715 -f 657 677 725 -f 725 715 657 -f 642 663 677 -f 677 657 642 -f 1444 1448 1834 -f 1834 1828 1444 -f 1248 1252 1448 -f 1448 1444 1248 -f 1122 1133 1252 -f 1252 1248 1122 -f 1027 1035 1133 -f 1133 1122 1027 -f 931 937 1035 -f 1035 1027 931 -f 843 853 937 -f 937 931 843 -f 767 777 853 -f 853 843 767 -f 689 715 777 -f 777 767 689 -f 640 657 715 -f 715 689 640 -f 634 642 657 -f 657 640 634 -f 1442 1444 1828 -f 1828 1820 1442 -f 1244 1248 1444 -f 1444 1442 1244 -f 1116 1122 1248 -f 1248 1244 1116 -f 1021 1027 1122 -f 1122 1116 1021 -f 923 931 1027 -f 1027 1021 923 -f 831 843 931 -f 931 923 831 -f 751 767 843 -f 843 831 751 -f 673 689 767 -f 767 751 673 -f 632 640 689 -f 689 673 632 -f 620 634 640 -f 640 632 620 -f 1429 1442 1820 -f 1820 1811 1429 -f 1233 1244 1442 -f 1442 1429 1233 -f 1106 1116 1244 -f 1244 1233 1106 -f 1011 1021 1116 -f 1116 1106 1011 -f 911 923 1021 -f 1021 1011 911 -f 817 831 923 -f 923 911 817 -f 733 751 831 -f 831 817 733 -f 649 673 751 -f 751 733 649 -f 614 632 673 -f 673 649 614 -f 597 620 632 -f 632 614 597 -f 714 702 684 -f 684 692 714 -f 754 746 702 -f 702 714 754 -f 804 796 746 -f 746 754 804 -f 886 876 796 -f 796 804 886 -f 954 950 876 -f 876 886 954 -f 1056 1048 950 -f 950 954 1056 -f 1147 1143 1048 -f 1048 1056 1147 -f 1265 1261 1143 -f 1143 1147 1265 -f 1465 1461 1261 -f 1261 1265 1465 -f 1915 1817 1461 -f 1461 1465 1915 -f 722 714 692 -f 692 706 722 -f 760 754 714 -f 714 722 760 -f 810 804 754 -f 754 760 810 -f 894 886 804 -f 804 810 894 -f 960 954 886 -f 886 894 960 -f 1062 1056 954 -f 954 960 1062 -f 1155 1147 1056 -f 1056 1062 1155 -f 1273 1265 1147 -f 1147 1155 1273 -f 1471 1465 1265 -f 1265 1273 1471 -f 1917 1915 1465 -f 1465 1471 1917 -f 720 722 706 -f 706 700 720 -f 758 760 722 -f 722 720 758 -f 808 810 760 -f 760 758 808 -f 890 894 810 -f 810 808 890 -f 958 960 894 -f 894 890 958 -f 1059 1062 960 -f 960 958 1059 -f 1150 1155 1062 -f 1062 1059 1150 -f 1269 1273 1155 -f 1155 1150 1269 -f 1468 1471 1273 -f 1273 1269 1468 -f 1697 1917 1471 -f 1471 1468 1697 -f 712 720 700 -f 700 688 712 -f 748 758 720 -f 720 712 748 -f 800 808 758 -f 758 748 800 -f 882 890 808 -f 808 800 882 -f 952 958 890 -f 890 882 952 -f 1052 1059 958 -f 958 952 1052 -f 1145 1150 1059 -f 1059 1052 1145 -f 1263 1269 1150 -f 1150 1145 1263 -f 1463 1468 1269 -f 1269 1263 1463 -f 1919 1697 1468 -f 1468 1463 1919 -f 694 712 688 -f 688 676 694 -f 742 748 712 -f 712 694 742 -f 794 800 748 -f 748 742 794 -f 872 882 800 -f 800 794 872 -f 946 952 882 -f 882 872 946 -f 1046 1052 952 -f 952 946 1046 -f 1141 1145 1052 -f 1052 1046 1141 -f 1259 1263 1145 -f 1145 1141 1259 -f 1459 1463 1263 -f 1263 1259 1459 -f 1845 1919 1463 -f 1463 1459 1845 -f 678 694 676 -f 676 664 678 -f 726 742 694 -f 694 678 726 -f 788 794 742 -f 742 726 788 -f 862 872 794 -f 794 788 862 -f 944 946 872 -f 872 862 944 -f 1044 1046 946 -f 946 944 1044 -f 1137 1141 1046 -f 1046 1044 1137 -f 1255 1259 1141 -f 1141 1137 1255 -f 1451 1459 1259 -f 1259 1255 1451 -f 1898 1845 1459 -f 1459 1451 1898 -f 658 678 664 -f 664 642 658 -f 716 726 678 -f 678 658 716 -f 778 788 726 -f 726 716 778 -f 854 862 788 -f 788 778 854 -f 938 944 862 -f 862 854 938 -f 1036 1044 944 -f 944 938 1036 -f 1132 1137 1044 -f 1044 1036 1132 -f 1253 1255 1137 -f 1137 1132 1253 -f 1449 1451 1255 -f 1255 1253 1449 -f 1837 1898 1451 -f 1451 1449 1837 -f 641 658 642 -f 642 635 641 -f 690 716 658 -f 658 641 690 -f 768 778 716 -f 716 690 768 -f 844 854 778 -f 778 768 844 -f 932 938 854 -f 854 844 932 -f 1028 1036 938 -f 938 932 1028 -f 1123 1132 1036 -f 1036 1028 1123 -f 1249 1253 1132 -f 1132 1123 1249 -f 1445 1449 1253 -f 1253 1249 1445 -f 1918 1837 1449 -f 1449 1445 1918 -f 633 641 635 -f 635 621 633 -f 674 690 641 -f 641 633 674 -f 752 768 690 -f 690 674 752 -f 832 844 768 -f 768 752 832 -f 924 932 844 -f 844 832 924 -f 1022 1028 932 -f 932 924 1022 -f 1117 1123 1028 -f 1028 1022 1117 -f 1245 1249 1123 -f 1123 1117 1245 -f 1443 1445 1249 -f 1249 1245 1443 -f 1916 1918 1445 -f 1445 1443 1916 -f 616 633 621 -f 621 600 616 -f 654 674 633 -f 633 616 654 -f 737 752 674 -f 674 654 737 -f 822 832 752 -f 752 737 822 -f 914 924 832 -f 832 822 914 -f 1014 1022 924 -f 924 914 1014 -f 1104 1117 1022 -f 1022 1014 1104 -f 1237 1245 1117 -f 1117 1104 1237 -f 1433 1443 1245 -f 1245 1237 1433 -f 1819 1916 1443 -f 1443 1433 1819 -f 2159 2163 1816 -f 1816 1822 2159 -f 2359 2363 2163 -f 2163 2159 2359 -f 2477 2481 2363 -f 2363 2359 2477 -f 2568 2576 2481 -f 2481 2477 2568 -f 2670 2674 2576 -f 2576 2568 2670 -f 2738 2748 2674 -f 2674 2670 2738 -f 2820 2828 2748 -f 2748 2738 2820 -f 2870 2878 2828 -f 2828 2820 2870 -f 2910 2922 2878 -f 2878 2870 2910 -f 2932 2940 2922 -f 2922 2910 2932 -f 2153 2159 1822 -f 1822 1830 2153 -f 2351 2359 2159 -f 2159 2153 2351 -f 2469 2477 2359 -f 2359 2351 2469 -f 2562 2568 2477 -f 2477 2469 2562 -f 2664 2670 2568 -f 2568 2562 2664 -f 2730 2738 2670 -f 2670 2664 2730 -f 2814 2820 2738 -f 2738 2730 2814 -f 2864 2870 2820 -f 2820 2814 2864 -f 2902 2910 2870 -f 2870 2864 2902 -f 2918 2932 2910 -f 2910 2902 2918 -f 2154 2153 1830 -f 1830 1836 2154 -f 2355 2351 2153 -f 2153 2154 2355 -f 2472 2469 2351 -f 2351 2355 2472 -f 2563 2562 2469 -f 2469 2472 2563 -f 2666 2664 2562 -f 2562 2563 2666 -f 2734 2730 2664 -f 2664 2666 2734 -f 2816 2814 2730 -f 2730 2734 2816 -f 2866 2864 2814 -f 2814 2816 2866 -f 2904 2902 2864 -f 2864 2866 2904 -f 2924 2918 2902 -f 2902 2904 2924 -f 2161 2154 1836 -f 1836 1840 2161 -f 2361 2355 2154 -f 2154 2161 2361 -f 2479 2472 2355 -f 2355 2361 2479 -f 2572 2563 2472 -f 2472 2479 2572 -f 2672 2666 2563 -f 2563 2572 2672 -f 2742 2734 2666 -f 2666 2672 2742 -f 2824 2816 2734 -f 2734 2742 2824 -f 2876 2866 2816 -f 2816 2824 2876 -f 2912 2904 2866 -f 2866 2876 2912 -f 2936 2924 2904 -f 2904 2912 2936 -f 2165 2161 1840 -f 1840 1844 2165 -f 2365 2361 2161 -f 2161 2165 2365 -f 2483 2479 2361 -f 2361 2365 2483 -f 2578 2572 2479 -f 2479 2483 2578 -f 2678 2672 2572 -f 2572 2578 2678 -f 2752 2742 2672 -f 2672 2678 2752 -f 2830 2824 2742 -f 2742 2752 2830 -f 2882 2876 2824 -f 2824 2830 2882 -f 2930 2912 2876 -f 2876 2882 2930 -f 2948 2936 2912 -f 2912 2930 2948 -f 2173 2165 1844 -f 1844 1841 2173 -f 2369 2365 2165 -f 2165 2173 2369 -f 2487 2483 2365 -f 2365 2369 2487 -f 2580 2578 2483 -f 2483 2487 2580 -f 2680 2678 2578 -f 2578 2580 2680 -f 2762 2752 2678 -f 2678 2680 2762 -f 2836 2830 2752 -f 2752 2762 2836 -f 2898 2882 2830 -f 2830 2836 2898 -f 2946 2930 2882 -f 2882 2898 2946 -f 2960 2948 2930 -f 2930 2946 2960 -f 2175 2173 1841 -f 1841 1837 2175 -f 2371 2369 2173 -f 2173 2175 2371 -f 2490 2487 2369 -f 2369 2371 2490 -f 2588 2580 2487 -f 2487 2490 2588 -f 2686 2680 2580 -f 2580 2588 2686 -f 2770 2762 2680 -f 2680 2686 2770 -f 2846 2836 2762 -f 2762 2770 2846 -f 2908 2898 2836 -f 2836 2846 2908 -f 2966 2946 2898 -f 2898 2908 2966 -f 2981 2960 2946 -f 2946 2966 2981 -f 2179 2175 1837 -f 1837 1831 2179 -f 2375 2371 2175 -f 2175 2179 2375 -f 2501 2490 2371 -f 2371 2375 2501 -f 2596 2588 2490 -f 2490 2501 2596 -f 2692 2686 2588 -f 2588 2596 2692 -f 2780 2770 2686 -f 2686 2692 2780 -f 2856 2846 2770 -f 2770 2780 2856 -f 2934 2908 2846 -f 2846 2856 2934 -f 2983 2966 2908 -f 2908 2934 2983 -f 2989 2981 2966 -f 2966 2983 2989 -f 2181 2179 1831 -f 1831 1823 2181 -f 2379 2375 2179 -f 2179 2181 2379 -f 2507 2501 2375 -f 2375 2379 2507 -f 2602 2596 2501 -f 2501 2507 2602 -f 2700 2692 2596 -f 2596 2602 2700 -f 2792 2780 2692 -f 2692 2700 2792 -f 2872 2856 2780 -f 2780 2792 2872 -f 2950 2934 2856 -f 2856 2872 2950 -f 2991 2983 2934 -f 2934 2950 2991 -f 3003 2989 2983 -f 2983 2991 3003 -f 2194 2181 1823 -f 1823 1818 2194 -f 2391 2379 2181 -f 2181 2194 2391 -f 2518 2507 2379 -f 2379 2391 2518 -f 2614 2602 2507 -f 2507 2518 2614 -f 2712 2700 2602 -f 2602 2614 2712 -f 2806 2792 2700 -f 2700 2712 2806 -f 2890 2872 2792 -f 2792 2806 2890 -f 2974 2950 2872 -f 2872 2890 2974 -f 3009 2991 2950 -f 2950 2974 3009 -f 3025 3003 2991 -f 2991 3009 3025 -f 3040 3008 3024 -f 3024 3048 3040 -f 3018 2973 3008 -f 3008 3040 3018 -f 2943 2889 2973 -f 2973 3018 2943 -f 2841 2805 2889 -f 2889 2943 2841 -f 2731 2711 2805 -f 2805 2841 2731 -f 2645 2611 2711 -f 2711 2731 2645 -f 2529 2521 2611 -f 2611 2645 2529 -f 2402 2387 2521 -f 2521 2529 2402 -f 2208 2191 2387 -f 2387 2402 2208 -f 1806 1810 2191 -f 2191 2208 1806 -f 3072 3040 3048 -f 3048 3078 3072 -f 3044 3018 3040 -f 3040 3072 3044 -f 2994 2943 3018 -f 3018 3044 2994 -f 2883 2841 2943 -f 2943 2994 2883 -f 2773 2731 2841 -f 2841 2883 2773 -f 2659 2645 2731 -f 2731 2773 2659 -f 2539 2529 2645 -f 2645 2659 2539 -f 2410 2402 2529 -f 2529 2539 2410 -f 2222 2208 2402 -f 2402 2410 2222 -f 1694 1806 2208 -f 2208 2222 1694 -f 3092 3072 3078 -f 3078 3116 3092 -f 3074 3044 3072 -f 3072 3092 3074 -f 3030 2994 3044 -f 3044 3074 3030 -f 2937 2883 2994 -f 2994 3030 2937 -f 2810 2773 2883 -f 2883 2937 2810 -f 2683 2659 2773 -f 2773 2810 2683 -f 2554 2539 2659 -f 2659 2683 2554 -f 2420 2410 2539 -f 2539 2554 2420 -f 2238 2222 2410 -f 2410 2420 2238 -f 1930 1694 2222 -f 2222 2238 1930 -f 3132 3092 3116 -f 3116 3142 3132 -f 3090 3074 3092 -f 3092 3132 3090 -f 3054 3030 3074 -f 3074 3090 3054 -f 2984 2937 3030 -f 3030 3054 2984 -f 2837 2810 2937 -f 2937 2984 2837 -f 2705 2683 2810 -f 2810 2837 2705 -f 2574 2554 2683 -f 2683 2705 2574 -f 2430 2420 2554 -f 2554 2574 2430 -f 2247 2238 2420 -f 2420 2430 2247 -f 1913 1930 2238 -f 2238 2247 1913 -f 3150 3132 3142 -f 3142 3156 3150 -f 3128 3090 3132 -f 3132 3150 3128 -f 3076 3054 3090 -f 3090 3128 3076 -f 3014 2984 3054 -f 3054 3076 3014 -f 2861 2837 2984 -f 2984 3014 2861 -f 2723 2705 2837 -f 2837 2861 2723 -f 2585 2574 2705 -f 2705 2723 2585 -f 2438 2430 2574 -f 2574 2585 2438 -f 2253 2247 2430 -f 2430 2438 2253 -f 1711 1913 2247 -f 2247 2253 1711 -f 3162 3150 3156 -f 3156 3172 3162 -f 3148 3128 3150 -f 3150 3162 3148 -f 3088 3076 3128 -f 3128 3148 3088 -f 3036 3014 3076 -f 3076 3088 3036 -f 2893 2861 3014 -f 3014 3036 2893 -f 2743 2723 2861 -f 2861 2893 2743 -f 2599 2585 2723 -f 2723 2743 2599 -f 2450 2438 2585 -f 2585 2599 2450 -f 2267 2253 2438 -f 2438 2450 2267 -f 1794 1711 2253 -f 2253 2267 1794 -f 3178 3162 3172 -f 3172 3184 3178 -f 3154 3148 3162 -f 3162 3178 3154 -f 3118 3088 3148 -f 3148 3154 3118 -f 3046 3036 3088 -f 3088 3118 3046 -f 2915 2893 3036 -f 3036 3046 2915 -f 2763 2743 2893 -f 2893 2915 2763 -f 2615 2599 2743 -f 2743 2763 2615 -f 2452 2450 2599 -f 2599 2615 2452 -f 2277 2267 2450 -f 2450 2452 2277 -f 1710 1794 2267 -f 2267 2277 1710 -f 3188 3178 3184 -f 3184 3200 3188 -f 3164 3154 3178 -f 3178 3188 3164 -f 3130 3118 3154 -f 3154 3164 3130 -f 3058 3046 3118 -f 3118 3130 3058 -f 2941 2915 3046 -f 3046 3058 2941 -f 2775 2763 2915 -f 2915 2941 2775 -f 2627 2615 2763 -f 2763 2775 2627 -f 2458 2452 2615 -f 2615 2627 2458 -f 2287 2277 2452 -f 2452 2458 2287 -f 1910 1710 2277 -f 2277 2287 1910 -f 3198 3188 3200 -f 3200 3209 3198 -f 3170 3164 3188 -f 3188 3198 3170 -f 3136 3130 3164 -f 3164 3170 3136 -f 3064 3058 3130 -f 3130 3136 3064 -f 2955 2941 3058 -f 3058 3064 2955 -f 2781 2775 2941 -f 2941 2955 2781 -f 2636 2627 2775 -f 2775 2781 2636 -f 2462 2458 2627 -f 2627 2636 2462 -f 2295 2287 2458 -f 2458 2462 2295 -f 1909 1910 2287 -f 2287 2295 1909 -f 3202 3198 3209 -f 3209 3213 3202 -f 3174 3170 3198 -f 3198 3202 3174 -f 3138 3136 3170 -f 3170 3174 3138 -f 3066 3064 3136 -f 3136 3138 3066 -f 2961 2955 3064 -f 3064 3066 2961 -f 2783 2781 2955 -f 2955 2961 2783 -f 2642 2636 2781 -f 2781 2783 2642 -f 2464 2462 2636 -f 2636 2642 2464 -f 2297 2295 2462 -f 2462 2464 2297 -f 1784 1909 2295 -f 2295 2297 1784 -f 1414 1429 1811 -f 1811 1807 1414 -f 1220 1233 1429 -f 1429 1414 1220 -f 1093 1106 1233 -f 1233 1220 1093 -f 977 1011 1106 -f 1106 1093 977 -f 891 911 1011 -f 1011 977 891 -f 781 817 911 -f 911 891 781 -f 679 733 817 -f 817 781 679 -f 604 649 733 -f 733 679 604 -f 571 614 649 -f 649 604 571 -f 561 597 614 -f 614 571 561 -f 1400 1414 1807 -f 1807 1804 1400 -f 1212 1220 1414 -f 1414 1400 1212 -f 1083 1093 1220 -f 1220 1212 1083 -f 963 977 1093 -f 1093 1083 963 -f 849 891 977 -f 977 963 849 -f 739 781 891 -f 891 849 739 -f 628 679 781 -f 781 739 628 -f 565 604 679 -f 679 628 565 -f 530 571 604 -f 604 565 530 -f 524 561 571 -f 571 530 524 -f 1386 1400 1804 -f 1804 1802 1386 -f 1202 1212 1400 -f 1400 1386 1202 -f 1070 1083 1212 -f 1212 1202 1070 -f 939 963 1083 -f 1083 1070 939 -f 814 849 963 -f 963 939 814 -f 685 739 849 -f 849 814 685 -f 585 628 739 -f 739 685 585 -f 528 565 628 -f 628 585 528 -f 510 530 565 -f 565 528 510 -f 508 524 530 -f 530 510 508 -f 1375 1386 1802 -f 1802 1800 1375 -f 1192 1202 1386 -f 1386 1375 1192 -f 1050 1070 1202 -f 1202 1192 1050 -f 917 939 1070 -f 1070 1050 917 -f 785 814 939 -f 939 917 785 -f 638 685 814 -f 814 785 638 -f 553 585 685 -f 685 638 553 -f 512 528 585 -f 585 553 512 -f 492 510 528 -f 528 512 492 -f 482 508 510 -f 510 492 482 -f 1369 1375 1800 -f 1800 1798 1369 -f 1184 1192 1375 -f 1375 1369 1184 -f 1037 1050 1192 -f 1192 1184 1037 -f 899 917 1050 -f 1050 1037 899 -f 761 785 917 -f 917 899 761 -f 608 638 785 -f 785 761 608 -f 526 553 638 -f 638 608 526 -f 496 512 553 -f 553 526 496 -f 454 492 512 -f 512 496 454 -f 448 482 492 -f 492 454 448 -f 1355 1369 1798 -f 1798 1795 1355 -f 1172 1184 1369 -f 1369 1355 1172 -f 1023 1037 1184 -f 1184 1172 1023 -f 879 899 1037 -f 1037 1023 879 -f 729 761 899 -f 899 879 729 -f 579 608 761 -f 761 729 579 -f 514 526 608 -f 608 579 514 -f 457 496 526 -f 526 514 457 -f 442 454 496 -f 496 457 442 -f 432 448 454 -f 454 442 432 -f 1345 1355 1795 -f 1795 1792 1345 -f 1170 1172 1355 -f 1355 1345 1170 -f 1007 1023 1172 -f 1172 1170 1007 -f 859 879 1023 -f 1023 1007 859 -f 707 729 879 -f 879 859 707 -f 563 579 729 -f 729 707 563 -f 506 514 579 -f 579 563 506 -f 450 457 514 -f 514 506 450 -f 420 442 457 -f 457 450 420 -f 412 432 442 -f 442 420 412 -f 1335 1345 1792 -f 1792 1790 1335 -f 1164 1170 1345 -f 1345 1335 1164 -f 995 1007 1170 -f 1170 1164 995 -f 847 859 1007 -f 1007 995 847 -f 681 707 859 -f 859 847 681 -f 547 563 707 -f 707 681 547 -f 494 506 563 -f 563 547 494 -f 440 450 506 -f 506 494 440 -f 410 420 450 -f 450 440 410 -f 398 412 420 -f 420 410 398 -f 1327 1335 1790 -f 1790 1788 1327 -f 1160 1164 1335 -f 1335 1327 1160 -f 988 995 1164 -f 1164 1160 988 -f 841 847 995 -f 995 988 841 -f 667 681 847 -f 847 841 667 -f 538 547 681 -f 681 667 538 -f 488 494 547 -f 547 538 488 -f 434 440 494 -f 494 488 434 -f 400 410 440 -f 440 434 400 -f 381 398 410 -f 410 400 381 -f 1324 1327 1788 -f 1788 1785 1324 -f 1156 1160 1327 -f 1327 1324 1156 -f 979 988 1160 -f 1160 1156 979 -f 837 841 988 -f 988 979 837 -f 659 667 841 -f 841 837 659 -f 534 538 667 -f 667 659 534 -f 484 488 538 -f 538 534 484 -f 428 434 488 -f 488 484 428 -f 395 400 434 -f 434 428 395 -f 374 381 400 -f 400 395 374 -f 572 616 600 -f 600 562 572 -f 605 654 616 -f 616 572 605 -f 680 737 654 -f 654 605 680 -f 782 822 737 -f 737 680 782 -f 892 914 822 -f 822 782 892 -f 978 1014 914 -f 914 892 978 -f 1094 1104 1014 -f 1014 978 1094 -f 1221 1237 1104 -f 1104 1094 1221 -f 1415 1433 1237 -f 1237 1221 1415 -f 1809 1819 1433 -f 1433 1415 1809 -f 531 572 562 -f 562 525 531 -f 566 605 572 -f 572 531 566 -f 629 680 605 -f 605 566 629 -f 740 782 680 -f 680 629 740 -f 850 892 782 -f 782 740 850 -f 964 978 892 -f 892 850 964 -f 1084 1094 978 -f 978 964 1084 -f 1213 1221 1094 -f 1094 1084 1213 -f 1401 1415 1221 -f 1221 1213 1401 -f 1931 1809 1415 -f 1415 1401 1931 -f 511 531 525 -f 525 509 511 -f 529 566 531 -f 531 511 529 -f 586 629 566 -f 566 529 586 -f 686 740 629 -f 629 586 686 -f 813 850 740 -f 740 686 813 -f 940 964 850 -f 850 813 940 -f 1069 1084 964 -f 964 940 1069 -f 1203 1213 1084 -f 1084 1069 1203 -f 1385 1401 1213 -f 1213 1203 1385 -f 1693 1931 1401 -f 1401 1385 1693 -f 493 511 509 -f 509 483 493 -f 513 529 511 -f 511 493 513 -f 554 586 529 -f 529 513 554 -f 639 686 586 -f 586 554 639 -f 786 813 686 -f 686 639 786 -f 918 940 813 -f 813 786 918 -f 1049 1069 940 -f 940 918 1049 -f 1193 1203 1069 -f 1069 1049 1193 -f 1376 1385 1203 -f 1203 1193 1376 -f 1712 1693 1385 -f 1385 1376 1712 -f 455 493 483 -f 483 449 455 -f 497 513 493 -f 493 455 497 -f 527 554 513 -f 513 497 527 -f 609 639 554 -f 554 527 609 -f 762 786 639 -f 639 609 762 -f 900 918 786 -f 786 762 900 -f 1038 1049 918 -f 918 900 1038 -f 1185 1193 1049 -f 1049 1038 1185 -f 1370 1376 1193 -f 1193 1185 1370 -f 1912 1712 1376 -f 1376 1370 1912 -f 443 455 449 -f 449 433 443 -f 458 497 455 -f 455 443 458 -f 515 527 497 -f 497 458 515 -f 580 609 527 -f 527 515 580 -f 730 762 609 -f 609 580 730 -f 880 900 762 -f 762 730 880 -f 1024 1038 900 -f 900 880 1024 -f 1173 1185 1038 -f 1038 1024 1173 -f 1356 1370 1185 -f 1185 1173 1356 -f 1797 1912 1370 -f 1370 1356 1797 -f 421 443 433 -f 433 413 421 -f 451 458 443 -f 443 421 451 -f 507 515 458 -f 458 451 507 -f 564 580 515 -f 515 507 564 -f 708 730 580 -f 580 564 708 -f 860 880 730 -f 730 708 860 -f 1008 1024 880 -f 880 860 1008 -f 1171 1173 1024 -f 1024 1008 1171 -f 1346 1356 1173 -f 1173 1171 1346 -f 1911 1797 1356 -f 1356 1346 1911 -f 411 421 413 -f 413 399 411 -f 441 451 421 -f 421 411 441 -f 495 507 451 -f 451 441 495 -f 548 564 507 -f 507 495 548 -f 682 708 564 -f 564 548 682 -f 848 860 708 -f 708 682 848 -f 996 1008 860 -f 860 848 996 -f 1165 1171 1008 -f 1008 996 1165 -f 1336 1346 1171 -f 1171 1165 1336 -f 1709 1911 1346 -f 1346 1336 1709 -f 401 411 399 -f 399 382 401 -f 435 441 411 -f 411 401 435 -f 489 495 441 -f 441 435 489 -f 539 548 495 -f 495 489 539 -f 668 682 548 -f 548 539 668 -f 842 848 682 -f 682 668 842 -f 987 996 848 -f 848 842 987 -f 1161 1165 996 -f 996 987 1161 -f 1328 1336 1165 -f 1165 1161 1328 -f 1708 1709 1336 -f 1336 1328 1708 -f 397 401 382 -f 382 376 397 -f 431 435 401 -f 401 397 431 -f 487 489 435 -f 435 431 487 -f 537 539 489 -f 489 487 537 -f 662 668 539 -f 539 537 662 -f 840 842 668 -f 668 662 840 -f 981 987 842 -f 842 840 981 -f 1159 1161 987 -f 987 981 1159 -f 1326 1328 1161 -f 1161 1159 1326 -f 1787 1708 1328 -f 1328 1326 1787 -f 2209 2194 1818 -f 1818 1808 2209 -f 2403 2391 2194 -f 2194 2209 2403 -f 2530 2518 2391 -f 2391 2403 2530 -f 2646 2614 2518 -f 2518 2530 2646 -f 2732 2712 2614 -f 2614 2646 2732 -f 2842 2806 2712 -f 2712 2732 2842 -f 2944 2890 2806 -f 2806 2842 2944 -f 3019 2974 2890 -f 2890 2944 3019 -f 3041 3009 2974 -f 2974 3019 3041 -f 3049 3025 3009 -f 3009 3041 3049 -f 2223 2209 1808 -f 1808 1805 2223 -f 2411 2403 2209 -f 2209 2223 2411 -f 2540 2530 2403 -f 2403 2411 2540 -f 2660 2646 2530 -f 2530 2540 2660 -f 2774 2732 2646 -f 2646 2660 2774 -f 2884 2842 2732 -f 2732 2774 2884 -f 2995 2944 2842 -f 2842 2884 2995 -f 3045 3019 2944 -f 2944 2995 3045 -f 3073 3041 3019 -f 3019 3045 3073 -f 3079 3049 3041 -f 3041 3073 3079 -f 2237 2223 1805 -f 1805 1803 2237 -f 2421 2411 2223 -f 2223 2237 2421 -f 2553 2540 2411 -f 2411 2421 2553 -f 2684 2660 2540 -f 2540 2553 2684 -f 2809 2774 2660 -f 2660 2684 2809 -f 2938 2884 2774 -f 2774 2809 2938 -f 3031 2995 2884 -f 2884 2938 3031 -f 3075 3045 2995 -f 2995 3031 3075 -f 3093 3073 3045 -f 3045 3075 3093 -f 3117 3079 3073 -f 3073 3093 3117 -f 2248 2237 1803 -f 1803 1801 2248 -f 2431 2421 2237 -f 2237 2248 2431 -f 2573 2553 2421 -f 2421 2431 2573 -f 2706 2684 2553 -f 2553 2573 2706 -f 2838 2809 2684 -f 2684 2706 2838 -f 2985 2938 2809 -f 2809 2838 2985 -f 3055 3031 2938 -f 2938 2985 3055 -f 3091 3075 3031 -f 3031 3055 3091 -f 3133 3093 3075 -f 3075 3091 3133 -f 3143 3117 3093 -f 3093 3133 3143 -f 2254 2248 1801 -f 1801 1799 2254 -f 2439 2431 2248 -f 2248 2254 2439 -f 2586 2573 2431 -f 2431 2439 2586 -f 2724 2706 2573 -f 2573 2586 2724 -f 2862 2838 2706 -f 2706 2724 2862 -f 3015 2985 2838 -f 2838 2862 3015 -f 3077 3055 2985 -f 2985 3015 3077 -f 3129 3091 3055 -f 3055 3077 3129 -f 3151 3133 3091 -f 3091 3129 3151 -f 3157 3143 3133 -f 3133 3151 3157 -f 2268 2254 1799 -f 1799 1796 2268 -f 2451 2439 2254 -f 2254 2268 2451 -f 2600 2586 2439 -f 2439 2451 2600 -f 2744 2724 2586 -f 2586 2600 2744 -f 2894 2862 2724 -f 2724 2744 2894 -f 3037 3015 2862 -f 2862 2894 3037 -f 3089 3077 3015 -f 3015 3037 3089 -f 3149 3129 3077 -f 3077 3089 3149 -f 3163 3151 3129 -f 3129 3149 3163 -f 3173 3157 3151 -f 3151 3163 3173 -f 2278 2268 1796 -f 1796 1793 2278 -f 2453 2451 2268 -f 2268 2278 2453 -f 2616 2600 2451 -f 2451 2453 2616 -f 2764 2744 2600 -f 2600 2616 2764 -f 2916 2894 2744 -f 2744 2764 2916 -f 3047 3037 2894 -f 2894 2916 3047 -f 3119 3089 3037 -f 3037 3047 3119 -f 3155 3149 3089 -f 3089 3119 3155 -f 3179 3163 3149 -f 3149 3155 3179 -f 3185 3173 3163 -f 3163 3179 3185 -f 2288 2278 1793 -f 1793 1791 2288 -f 2459 2453 2278 -f 2278 2288 2459 -f 2628 2616 2453 -f 2453 2459 2628 -f 2776 2764 2616 -f 2616 2628 2776 -f 2942 2916 2764 -f 2764 2776 2942 -f 3059 3047 2916 -f 2916 2942 3059 -f 3131 3119 3047 -f 3047 3059 3131 -f 3165 3155 3119 -f 3119 3131 3165 -f 3189 3179 3155 -f 3155 3165 3189 -f 3201 3185 3179 -f 3179 3189 3201 -f 2296 2288 1791 -f 1791 1789 2296 -f 2463 2459 2288 -f 2288 2296 2463 -f 2635 2628 2459 -f 2459 2463 2635 -f 2782 2776 2628 -f 2628 2635 2782 -f 2956 2942 2776 -f 2776 2782 2956 -f 3065 3059 2942 -f 2942 2956 3065 -f 3137 3131 3059 -f 3059 3065 3137 -f 3171 3165 3131 -f 3131 3137 3171 -f 3199 3189 3165 -f 3165 3171 3199 -f 3210 3201 3189 -f 3189 3199 3210 -f 2299 2296 1789 -f 1789 1786 2299 -f 2467 2463 2296 -f 2296 2299 2467 -f 2644 2635 2463 -f 2463 2467 2644 -f 2786 2782 2635 -f 2635 2644 2786 -f 2964 2956 2782 -f 2782 2786 2964 -f 3069 3065 2956 -f 2956 2964 3069 -f 3141 3137 3065 -f 3065 3069 3141 -f 3177 3171 3137 -f 3137 3141 3177 -f 3204 3199 3171 -f 3171 3177 3204 -f 3214 3210 3199 -f 3199 3204 3214 -f 3194 3202 3213 -f 3213 3207 3194 -f 3166 3175 3202 -f 3202 3194 3166 -f 3134 3139 3175 -f 3175 3166 3134 -f 3060 3067 3139 -f 3139 3134 3060 -f 2953 2962 3067 -f 3067 3060 2953 -f 2777 2784 2962 -f 2962 2953 2777 -f 2629 2643 2784 -f 2784 2777 2629 -f 2460 2465 2643 -f 2643 2629 2460 -f 2293 2298 2465 -f 2465 2460 2293 -f 1696 1785 2298 -f 2298 2293 1696 -f 3180 3194 3207 -f 3207 3190 3180 -f 3158 3166 3194 -f 3194 3180 3158 -f 3124 3134 3166 -f 3166 3158 3124 -f 3050 3060 3134 -f 3134 3124 3050 -f 2927 2953 3060 -f 3060 3050 2927 -f 2767 2777 2953 -f 2953 2927 2767 -f 2619 2629 2777 -f 2777 2767 2619 -f 2454 2460 2629 -f 2629 2619 2454 -f 2283 2293 2460 -f 2460 2454 2283 -f 1695 1696 2293 -f 2293 2283 1695 -f 3160 3180 3190 -f 3190 3168 3160 -f 3144 3158 3180 -f 3180 3160 3144 -f 3086 3124 3158 -f 3158 3144 3086 -f 3032 3050 3124 -f 3124 3086 3032 -f 2891 2927 3050 -f 3050 3032 2891 -f 2739 2767 2927 -f 2927 2891 2739 -f 2597 2619 2767 -f 2767 2739 2597 -f 2448 2454 2619 -f 2619 2597 2448 -f 2265 2283 2454 -f 2454 2448 2265 -f 1707 1695 2283 -f 2283 2265 1707 -f 3146 3160 3168 -f 3168 3152 3146 -f 3122 3144 3160 -f 3160 3146 3122 -f 3070 3086 3144 -f 3144 3122 3070 -f 2998 3032 3086 -f 3086 3070 2998 -f 2853 2891 3032 -f 3032 2998 2853 -f 2717 2739 2891 -f 2891 2853 2717 -f 2582 2597 2739 -f 2739 2717 2582 -f 2434 2448 2597 -f 2597 2582 2434 -f 2251 2265 2448 -f 2448 2434 2251 -f 1907 1707 2265 -f 2265 2251 1907 -f 3120 3146 3152 -f 3152 3126 3120 -f 3082 3122 3146 -f 3146 3120 3082 -f 3042 3070 3122 -f 3122 3082 3042 -f 2957 2998 3070 -f 3070 3042 2957 -f 2825 2853 2998 -f 2998 2957 2825 -f 2693 2717 2853 -f 2853 2825 2693 -f 2556 2582 2717 -f 2717 2693 2556 -f 2424 2434 2582 -f 2582 2556 2424 -f 2239 2251 2434 -f 2434 2424 2239 -f 1906 1907 2251 -f 2251 2239 1906 -f 3080 3120 3126 -f 3126 3084 3080 -f 3056 3082 3120 -f 3120 3080 3056 -f 3012 3042 3082 -f 3082 3056 3012 -f 2899 2957 3042 -f 3042 3012 2899 -f 2789 2825 2957 -f 2957 2899 2789 -f 2675 2693 2825 -f 2825 2789 2675 -f 2545 2556 2693 -f 2693 2675 2545 -f 2416 2424 2556 -f 2556 2545 2416 -f 2228 2239 2424 -f 2424 2416 2228 -f 1770 1906 2239 -f 2239 2228 1770 -f 3053 3080 3084 -f 3084 3062 3053 -f 3028 3056 3080 -f 3080 3053 3028 -f 2978 3012 3056 -f 3056 3028 2978 -f 2860 2899 3012 -f 3012 2978 2860 -f 2754 2789 2899 -f 2899 2860 2754 -f 2652 2675 2789 -f 2789 2754 2652 -f 2534 2545 2675 -f 2675 2652 2534 -f 2406 2416 2545 -f 2545 2534 2406 -f 2217 2228 2416 -f 2416 2406 2217 -f 1929 1770 2228 -f 2228 2217 1929 -f 3035 3053 3062 -f 3062 3039 3035 -f 2997 3028 3053 -f 3053 3035 2997 -f 2920 2978 3028 -f 3028 2997 2920 -f 2832 2860 2978 -f 2978 2920 2832 -f 2728 2754 2860 -f 2860 2832 2728 -f 2634 2652 2754 -f 2754 2728 2634 -f 2528 2534 2652 -f 2652 2634 2528 -f 2396 2406 2534 -f 2534 2528 2396 -f 2202 2217 2406 -f 2406 2396 2202 -f 1765 1929 2217 -f 2217 2202 1765 -f 3017 3035 3039 -f 3039 3027 3017 -f 2980 2997 3035 -f 3035 3017 2980 -f 2896 2920 2997 -f 2997 2980 2896 -f 2812 2832 2920 -f 2920 2896 2812 -f 2715 2728 2832 -f 2832 2812 2715 -f 2618 2634 2728 -f 2728 2715 2618 -f 2523 2528 2634 -f 2634 2618 2523 -f 2392 2396 2528 -f 2528 2523 2392 -f 2196 2202 2396 -f 2396 2392 2196 -f 1724 1765 2202 -f 2202 2196 1724 -f 3007 3017 3027 -f 3027 3023 3007 -f 2969 2980 3017 -f 3017 3007 2969 -f 2887 2896 2980 -f 2980 2969 2887 -f 2802 2812 2896 -f 2896 2887 2802 -f 2709 2715 2812 -f 2812 2802 2709 -f 2609 2618 2715 -f 2715 2709 2609 -f 2519 2523 2618 -f 2618 2609 2519 -f 2386 2392 2523 -f 2523 2519 2386 -f 2190 2196 2392 -f 2392 2386 2190 -f 1759 1724 2196 -f 2196 2190 1759 -f 1329 1324 1785 -f 1785 1782 1329 -f 1162 1157 1324 -f 1324 1329 1162 -f 993 982 1157 -f 1157 1162 993 -f 845 838 982 -f 982 993 845 -f 669 660 838 -f 838 845 669 -f 542 535 660 -f 660 669 542 -f 490 485 535 -f 535 542 490 -f 438 429 485 -f 485 490 438 -f 404 396 429 -f 429 438 404 -f 387 376 396 -f 396 404 387 -f 1339 1329 1782 -f 1782 1780 1339 -f 1168 1162 1329 -f 1329 1339 1168 -f 1003 993 1162 -f 1162 1168 1003 -f 855 845 993 -f 993 1003 855 -f 695 669 845 -f 845 855 695 -f 559 542 669 -f 669 695 559 -f 500 490 542 -f 542 559 500 -f 446 438 490 -f 490 500 446 -f 416 404 438 -f 438 446 416 -f 408 387 404 -f 404 416 408 -f 1357 1339 1780 -f 1780 1778 1357 -f 1174 1168 1339 -f 1339 1357 1174 -f 1025 1003 1168 -f 1168 1174 1025 -f 883 855 1003 -f 1003 1025 883 -f 731 695 855 -f 855 883 731 -f 583 559 695 -f 695 731 583 -f 516 500 559 -f 559 583 516 -f 467 446 500 -f 500 516 467 -f 444 416 446 -f 446 467 444 -f 436 408 416 -f 416 444 436 -f 1371 1357 1778 -f 1778 1776 1371 -f 1188 1174 1357 -f 1357 1371 1188 -f 1042 1025 1174 -f 1174 1188 1042 -f 905 883 1025 -f 1025 1042 905 -f 769 731 883 -f 883 905 769 -f 624 583 731 -f 731 769 624 -f 532 516 583 -f 583 624 532 -f 502 467 516 -f 516 532 502 -f 459 444 467 -f 467 502 459 -f 452 436 444 -f 444 459 452 -f 1383 1371 1776 -f 1776 1774 1383 -f 1198 1188 1371 -f 1371 1383 1198 -f 1068 1042 1188 -f 1188 1198 1068 -f 929 905 1042 -f 1042 1068 929 -f 797 769 905 -f 905 929 797 -f 665 624 769 -f 769 797 665 -f 569 532 624 -f 624 665 569 -f 520 502 532 -f 532 569 520 -f 504 459 502 -f 502 520 504 -f 498 452 459 -f 459 504 498 -f 1394 1383 1774 -f 1774 1771 1394 -f 1206 1198 1383 -f 1383 1394 1206 -f 1077 1068 1198 -f 1198 1206 1077 -f 947 929 1068 -f 1068 1077 947 -f 833 797 929 -f 929 947 833 -f 723 665 797 -f 797 833 723 -f 610 569 665 -f 665 723 610 -f 549 520 569 -f 569 610 549 -f 522 504 520 -f 520 549 522 -f 518 498 504 -f 504 522 518 -f 1407 1394 1771 -f 1771 1768 1407 -f 1216 1206 1394 -f 1394 1407 1216 -f 1090 1077 1206 -f 1206 1216 1090 -f 972 947 1077 -f 1077 1090 972 -f 870 833 947 -f 947 972 870 -f 764 723 833 -f 833 870 764 -f 646 610 723 -f 723 764 646 -f 587 549 610 -f 610 646 587 -f 556 522 549 -f 549 587 556 -f 540 518 522 -f 522 556 540 -f 1420 1407 1768 -f 1768 1764 1420 -f 1226 1216 1407 -f 1407 1420 1226 -f 1096 1090 1216 -f 1216 1226 1096 -f 990 972 1090 -f 1090 1096 990 -f 896 870 972 -f 972 990 896 -f 792 764 870 -f 870 896 792 -f 704 646 764 -f 764 792 704 -f 627 587 646 -f 646 704 627 -f 582 556 587 -f 587 627 582 -f 574 540 556 -f 556 582 574 -f 1426 1420 1764 -f 1764 1762 1426 -f 1230 1226 1420 -f 1420 1426 1230 -f 1101 1096 1226 -f 1226 1230 1101 -f 1006 990 1096 -f 1096 1101 1006 -f 907 896 990 -f 990 1006 907 -f 812 792 896 -f 896 907 812 -f 728 704 792 -f 792 812 728 -f 644 627 704 -f 704 728 644 -f 607 582 627 -f 627 644 607 -f 592 574 582 -f 582 607 592 -f 1430 1426 1762 -f 1762 1758 1430 -f 1234 1230 1426 -f 1426 1430 1234 -f 1107 1101 1230 -f 1230 1234 1107 -f 1012 1006 1101 -f 1101 1107 1012 -f 912 907 1006 -f 1006 1012 912 -f 819 812 907 -f 907 912 819 -f 738 728 812 -f 812 819 738 -f 651 644 728 -f 728 738 651 -f 618 607 644 -f 644 651 618 -f 601 592 607 -f 607 618 601 -f 405 397 376 -f 376 388 405 -f 439 430 397 -f 397 405 439 -f 491 486 430 -f 430 439 491 -f 543 536 486 -f 486 491 543 -f 670 661 536 -f 536 543 670 -f 846 839 661 -f 661 670 846 -f 994 980 839 -f 839 846 994 -f 1163 1158 980 -f 980 994 1163 -f 1330 1325 1158 -f 1158 1163 1330 -f 1926 1786 1325 -f 1325 1330 1926 -f 417 405 388 -f 388 409 417 -f 447 439 405 -f 405 417 447 -f 501 491 439 -f 439 447 501 -f 560 543 491 -f 491 501 560 -f 696 670 543 -f 543 560 696 -f 856 846 670 -f 670 696 856 -f 1004 994 846 -f 846 856 1004 -f 1169 1163 994 -f 994 1004 1169 -f 1340 1330 1163 -f 1163 1169 1340 -f 1925 1926 1330 -f 1330 1340 1925 -f 445 417 409 -f 409 437 445 -f 468 447 417 -f 417 445 468 -f 517 501 447 -f 447 468 517 -f 584 560 501 -f 501 517 584 -f 732 696 560 -f 560 584 732 -f 884 856 696 -f 696 732 884 -f 1026 1004 856 -f 856 884 1026 -f 1175 1169 1004 -f 1004 1026 1175 -f 1358 1340 1169 -f 1169 1175 1358 -f 1908 1925 1340 -f 1340 1358 1908 -f 460 445 437 -f 437 453 460 -f 503 468 445 -f 445 460 503 -f 533 517 468 -f 468 503 533 -f 625 584 517 -f 517 533 625 -f 770 732 584 -f 584 625 770 -f 906 884 732 -f 732 770 906 -f 1041 1026 884 -f 884 906 1041 -f 1189 1175 1026 -f 1026 1041 1189 -f 1372 1358 1175 -f 1175 1189 1372 -f 1706 1908 1358 -f 1358 1372 1706 -f 505 460 453 -f 453 499 505 -f 521 503 460 -f 460 505 521 -f 570 533 503 -f 503 521 570 -f 666 625 533 -f 533 570 666 -f 798 770 625 -f 625 666 798 -f 930 906 770 -f 770 798 930 -f 1067 1041 906 -f 906 930 1067 -f 1199 1189 1041 -f 1041 1067 1199 -f 1384 1372 1189 -f 1189 1199 1384 -f 1705 1706 1372 -f 1372 1384 1705 -f 523 505 499 -f 499 519 523 -f 550 521 505 -f 505 523 550 -f 611 570 521 -f 521 550 611 -f 724 666 570 -f 570 611 724 -f 834 798 666 -f 666 724 834 -f 948 930 798 -f 798 834 948 -f 1078 1067 930 -f 930 948 1078 -f 1207 1199 1067 -f 1067 1078 1207 -f 1395 1384 1199 -f 1199 1207 1395 -f 1773 1705 1384 -f 1384 1395 1773 -f 555 523 519 -f 519 541 555 -f 588 550 523 -f 523 555 588 -f 645 611 550 -f 550 588 645 -f 763 724 611 -f 611 645 763 -f 869 834 724 -f 724 763 869 -f 971 948 834 -f 834 869 971 -f 1089 1078 948 -f 948 971 1089 -f 1217 1207 1078 -f 1078 1089 1217 -f 1406 1395 1207 -f 1207 1217 1406 -f 1692 1773 1395 -f 1395 1406 1692 -f 581 555 541 -f 541 573 581 -f 626 588 555 -f 555 581 626 -f 703 645 588 -f 588 626 703 -f 791 763 645 -f 645 703 791 -f 895 869 763 -f 763 791 895 -f 989 971 869 -f 869 895 989 -f 1095 1089 971 -f 971 989 1095 -f 1227 1217 1089 -f 1089 1095 1227 -f 1421 1406 1217 -f 1217 1227 1421 -f 1766 1692 1406 -f 1406 1421 1766 -f 606 581 573 -f 573 591 606 -f 643 626 581 -f 581 606 643 -f 727 703 626 -f 626 643 727 -f 811 791 703 -f 703 727 811 -f 908 895 791 -f 791 811 908 -f 1005 989 895 -f 895 908 1005 -f 1100 1095 989 -f 989 1005 1100 -f 1231 1227 1095 -f 1095 1100 1231 -f 1427 1421 1227 -f 1227 1231 1427 -f 1897 1766 1421 -f 1421 1427 1897 -f 615 606 591 -f 591 598 615 -f 653 643 606 -f 606 615 653 -f 735 727 643 -f 643 653 735 -f 820 811 727 -f 727 735 820 -f 913 908 811 -f 811 820 913 -f 1013 1005 908 -f 908 913 1013 -f 1103 1100 1005 -f 1005 1013 1103 -f 1236 1231 1100 -f 1100 1103 1236 -f 1432 1427 1231 -f 1231 1236 1432 -f 1760 1897 1427 -f 1427 1432 1760 -f 2294 2299 1786 -f 1786 1783 2294 -f 2461 2466 2299 -f 2299 2294 2461 -f 2630 2641 2466 -f 2466 2461 2630 -f 2778 2785 2641 -f 2641 2630 2778 -f 2954 2963 2785 -f 2785 2778 2954 -f 3061 3068 2963 -f 2963 2954 3061 -f 3135 3140 3068 -f 3068 3061 3135 -f 3167 3176 3140 -f 3140 3135 3167 -f 3195 3203 3176 -f 3176 3167 3195 -f 3208 3213 3203 -f 3203 3195 3208 -f 2284 2294 1783 -f 1783 1781 2284 -f 2455 2461 2294 -f 2294 2284 2455 -f 2620 2630 2461 -f 2461 2455 2620 -f 2768 2778 2630 -f 2630 2620 2768 -f 2928 2954 2778 -f 2778 2768 2928 -f 3051 3061 2954 -f 2954 2928 3051 -f 3125 3135 3061 -f 3061 3051 3125 -f 3159 3167 3135 -f 3135 3125 3159 -f 3181 3195 3167 -f 3167 3159 3181 -f 3191 3208 3195 -f 3195 3181 3191 -f 2266 2284 1781 -f 1781 1779 2266 -f 2449 2455 2284 -f 2284 2266 2449 -f 2598 2620 2455 -f 2455 2449 2598 -f 2740 2768 2620 -f 2620 2598 2740 -f 2892 2928 2768 -f 2768 2740 2892 -f 3033 3051 2928 -f 2928 2892 3033 -f 3087 3125 3051 -f 3051 3033 3087 -f 3145 3159 3125 -f 3125 3087 3145 -f 3161 3181 3159 -f 3159 3145 3161 -f 3169 3191 3181 -f 3181 3161 3169 -f 2252 2266 1779 -f 1779 1777 2252 -f 2435 2449 2266 -f 2266 2252 2435 -f 2581 2598 2449 -f 2449 2435 2581 -f 2718 2740 2598 -f 2598 2581 2718 -f 2854 2892 2740 -f 2740 2718 2854 -f 2999 3033 2892 -f 2892 2854 2999 -f 3071 3087 3033 -f 3033 2999 3071 -f 3123 3145 3087 -f 3087 3071 3123 -f 3147 3161 3145 -f 3145 3123 3147 -f 3153 3169 3161 -f 3161 3147 3153 -f 2240 2252 1777 -f 1777 1775 2240 -f 2425 2435 2252 -f 2252 2240 2425 -f 2555 2581 2435 -f 2435 2425 2555 -f 2694 2718 2581 -f 2581 2555 2694 -f 2826 2854 2718 -f 2718 2694 2826 -f 2958 2999 2854 -f 2854 2826 2958 -f 3043 3071 2999 -f 2999 2958 3043 -f 3083 3123 3071 -f 3071 3043 3083 -f 3121 3147 3123 -f 3123 3083 3121 -f 3127 3153 3147 -f 3147 3121 3127 -f 2229 2240 1775 -f 1775 1772 2229 -f 2417 2425 2240 -f 2240 2229 2417 -f 2546 2555 2425 -f 2425 2417 2546 -f 2676 2694 2555 -f 2555 2546 2676 -f 2790 2826 2694 -f 2694 2676 2790 -f 2900 2958 2826 -f 2826 2790 2900 -f 3013 3043 2958 -f 2958 2900 3013 -f 3057 3083 3043 -f 3043 3013 3057 -f 3081 3121 3083 -f 3083 3057 3081 -f 3085 3127 3121 -f 3121 3081 3085 -f 2216 2229 1772 -f 1772 1769 2216 -f 2407 2417 2229 -f 2229 2216 2407 -f 2533 2546 2417 -f 2417 2407 2533 -f 2651 2676 2546 -f 2546 2533 2651 -f 2753 2790 2676 -f 2676 2651 2753 -f 2859 2900 2790 -f 2790 2753 2859 -f 2977 3013 2900 -f 2900 2859 2977 -f 3029 3057 3013 -f 3013 2977 3029 -f 3052 3081 3057 -f 3057 3029 3052 -f 3063 3085 3081 -f 3081 3052 3063 -f 2203 2216 1769 -f 1769 1767 2203 -f 2397 2407 2216 -f 2216 2203 2397 -f 2527 2533 2407 -f 2407 2397 2527 -f 2633 2651 2533 -f 2533 2527 2633 -f 2727 2753 2651 -f 2651 2633 2727 -f 2831 2859 2753 -f 2753 2727 2831 -f 2919 2977 2859 -f 2859 2831 2919 -f 2996 3029 2977 -f 2977 2919 2996 -f 3034 3052 3029 -f 3029 2996 3034 -f 3038 3063 3052 -f 3052 3034 3038 -f 2197 2203 1767 -f 1767 1763 2197 -f 2393 2397 2203 -f 2203 2197 2393 -f 2522 2527 2397 -f 2397 2393 2522 -f 2617 2633 2527 -f 2527 2522 2617 -f 2716 2727 2633 -f 2633 2617 2716 -f 2811 2831 2727 -f 2727 2716 2811 -f 2895 2919 2831 -f 2831 2811 2895 -f 2979 2996 2919 -f 2919 2895 2979 -f 3016 3034 2996 -f 2996 2979 3016 -f 3026 3038 3034 -f 3034 3016 3026 -f 2193 2197 1763 -f 1763 1761 2193 -f 2389 2393 2197 -f 2197 2193 2389 -f 2516 2522 2393 -f 2393 2389 2516 -f 2610 2617 2522 -f 2522 2516 2610 -f 2710 2716 2617 -f 2617 2610 2710 -f 2803 2811 2716 -f 2716 2710 2803 -f 2885 2895 2811 -f 2811 2803 2885 -f 2971 2979 2895 -f 2895 2885 2971 -f 3005 3016 2979 -f 2979 2971 3005 -f 3022 3026 3016 -f 3016 3005 3022 -f 461 545 544 -f 544 456 461 -f 463 551 545 -f 545 461 463 -f 465 557 551 -f 551 463 465 -f 469 567 557 -f 557 465 469 -f 471 575 567 -f 567 469 471 -f 473 577 575 -f 575 471 473 -f 475 589 577 -f 577 473 475 -f 477 593 589 -f 589 475 477 -f 479 595 593 -f 593 477 479 -f 481 599 595 -f 595 479 481 -f 389 461 456 -f 456 392 389 -f 386 463 461 -f 461 389 386 -f 379 465 463 -f 463 386 379 -f 373 469 465 -f 465 379 373 -f 371 471 469 -f 469 373 371 -f 369 473 471 -f 471 371 369 -f 366 475 473 -f 473 369 366 -f 364 477 475 -f 475 366 364 -f 362 479 477 -f 477 364 362 -f 361 481 479 -f 479 362 361 -f 335 389 392 -f 392 337 335 -f 333 386 389 -f 389 335 333 -f 331 379 386 -f 386 333 331 -f 329 373 379 -f 379 331 329 -f 328 371 373 -f 373 329 328 -f 325 369 371 -f 371 328 325 -f 323 366 369 -f 369 325 323 -f 321 364 366 -f 366 323 321 -f 319 362 364 -f 364 321 319 -f 316 361 362 -f 362 319 316 -f 298 335 337 -f 337 302 298 -f 290 333 335 -f 335 298 290 -f 288 331 333 -f 333 290 288 -f 286 329 331 -f 331 288 286 -f 281 328 329 -f 329 286 281 -f 275 325 328 -f 328 281 275 -f 265 323 325 -f 325 275 265 -f 259 321 323 -f 323 265 259 -f 255 319 321 -f 321 259 255 -f 249 316 319 -f 319 255 249 -f 269 298 302 -f 302 271 269 -f 261 290 298 -f 298 269 261 -f 251 288 290 -f 290 261 251 -f 238 286 288 -f 288 251 238 -f 230 281 286 -f 286 238 230 -f 218 275 281 -f 281 230 218 -f 208 265 275 -f 275 218 208 -f 196 259 265 -f 265 208 196 -f 186 255 259 -f 259 196 186 -f 181 249 255 -f 255 186 181 -f 228 269 271 -f 271 234 228 -f 222 261 269 -f 269 228 222 -f 212 251 261 -f 261 222 212 -f 200 238 251 -f 251 212 200 -f 177 230 238 -f 238 200 177 -f 160 218 230 -f 230 177 160 -f 134 208 218 -f 218 160 134 -f 112 196 208 -f 208 134 112 -f 102 186 196 -f 196 112 102 -f 96 181 186 -f 186 102 96 -f 198 228 234 -f 234 205 198 -f 182 222 228 -f 228 198 182 -f 168 212 222 -f 222 182 168 -f 146 200 212 -f 212 168 146 -f 118 177 200 -f 200 146 118 -f 92 160 177 -f 177 118 92 -f 74 134 160 -f 160 92 74 -f 63 112 134 -f 134 74 63 -f 53 102 112 -f 112 63 53 -f 50 96 102 -f 102 53 50 -f 167 198 205 -f 205 170 167 -f 154 182 198 -f 198 167 154 -f 126 168 182 -f 182 154 126 -f 100 146 168 -f 168 126 100 -f 83 118 146 -f 146 100 83 -f 61 92 118 -f 118 83 61 -f 46 74 92 -f 92 61 46 -f 32 63 74 -f 74 46 32 -f 25 53 63 -f 63 32 25 -f 21 50 53 -f 53 25 21 -f 143 167 170 -f 170 150 143 -f 124 154 167 -f 167 143 124 -f 104 126 154 -f 154 124 104 -f 84 100 126 -f 126 104 84 -f 65 83 100 -f 100 84 65 -f 44 61 83 -f 83 65 44 -f 30 46 61 -f 61 44 30 -f 17 32 46 -f 46 30 17 -f 9 25 32 -f 32 17 9 -f 5 21 25 -f 25 9 5 -f 132 143 150 -f 150 140 132 -f 116 124 143 -f 143 132 116 -f 94 104 124 -f 124 116 94 -f 76 84 104 -f 104 94 76 -f 55 65 84 -f 84 76 55 -f 40 44 65 -f 65 55 40 -f 22 30 44 -f 44 40 22 -f 11 17 30 -f 30 22 11 -f 2 9 17 -f 17 11 2 -f 1 5 9 -f 9 2 1 -f 480 596 599 -f 599 481 480 -f 478 594 596 -f 596 480 478 -f 476 590 594 -f 594 478 476 -f 474 578 590 -f 590 476 474 -f 472 576 578 -f 578 474 472 -f 470 568 576 -f 576 472 470 -f 466 558 568 -f 568 470 466 -f 464 552 558 -f 558 466 464 -f 462 546 552 -f 552 464 462 -f 456 544 546 -f 546 462 456 -f 363 480 481 -f 481 360 363 -f 365 478 480 -f 480 363 365 -f 367 476 478 -f 478 365 367 -f 368 474 476 -f 476 367 368 -f 370 472 474 -f 474 368 370 -f 372 470 472 -f 472 370 372 -f 380 466 470 -f 470 372 380 -f 385 464 466 -f 466 380 385 -f 390 462 464 -f 464 385 390 -f 391 456 462 -f 462 390 391 -f 320 363 360 -f 360 316 320 -f 322 365 363 -f 363 320 322 -f 324 367 365 -f 365 322 324 -f 326 368 367 -f 367 324 326 -f 327 370 368 -f 368 326 327 -f 330 372 370 -f 370 327 330 -f 332 380 372 -f 372 330 332 -f 334 385 380 -f 380 332 334 -f 336 390 385 -f 385 334 336 -f 337 391 390 -f 390 336 337 -f 256 320 316 -f 316 250 256 -f 260 322 320 -f 320 256 260 -f 266 324 322 -f 322 260 266 -f 276 326 324 -f 324 266 276 -f 282 327 326 -f 326 276 282 -f 287 330 327 -f 327 282 287 -f 289 332 330 -f 330 287 289 -f 291 334 332 -f 332 289 291 -f 299 336 334 -f 334 291 299 -f 303 337 336 -f 336 299 303 -f 187 256 250 -f 250 181 187 -f 197 260 256 -f 256 187 197 -f 209 266 260 -f 260 197 209 -f 219 276 266 -f 266 209 219 -f 231 282 276 -f 276 219 231 -f 239 287 282 -f 282 231 239 -f 252 289 287 -f 287 239 252 -f 262 291 289 -f 289 252 262 -f 270 299 291 -f 291 262 270 -f 272 303 299 -f 299 270 272 -f 103 187 181 -f 181 97 103 -f 113 197 187 -f 187 103 113 -f 135 209 197 -f 197 113 135 -f 161 219 209 -f 209 135 161 -f 178 231 219 -f 219 161 178 -f 201 239 231 -f 231 178 201 -f 213 252 239 -f 239 201 213 -f 223 262 252 -f 252 213 223 -f 229 270 262 -f 262 223 229 -f 235 272 270 -f 270 229 235 -f 54 103 97 -f 97 50 54 -f 64 113 103 -f 103 54 64 -f 75 135 113 -f 113 64 75 -f 93 161 135 -f 135 75 93 -f 119 178 161 -f 161 93 119 -f 147 201 178 -f 178 119 147 -f 169 213 201 -f 201 147 169 -f 183 223 213 -f 213 169 183 -f 199 229 223 -f 223 183 199 -f 205 235 229 -f 229 199 205 -f 24 54 50 -f 50 21 24 -f 33 64 54 -f 54 24 33 -f 47 75 64 -f 64 33 47 -f 62 93 75 -f 75 47 62 -f 82 119 93 -f 93 62 82 -f 101 147 119 -f 119 82 101 -f 127 169 147 -f 147 101 127 -f 155 183 169 -f 169 127 155 -f 166 199 183 -f 183 155 166 -f 171 205 199 -f 199 166 171 -f 10 24 21 -f 21 6 10 -f 18 33 24 -f 24 10 18 -f 31 47 33 -f 33 18 31 -f 45 62 47 -f 47 31 45 -f 66 82 62 -f 62 45 66 -f 85 101 82 -f 82 66 85 -f 105 127 101 -f 101 85 105 -f 125 155 127 -f 127 105 125 -f 144 166 155 -f 155 125 144 -f 151 171 166 -f 166 144 151 -f 3 10 6 -f 6 1 3 -f 12 18 10 -f 10 3 12 -f 23 31 18 -f 18 12 23 -f 41 45 31 -f 31 23 41 -f 56 66 45 -f 45 41 56 -f 77 85 66 -f 66 56 77 -f 95 105 85 -f 85 77 95 -f 117 125 105 -f 105 95 117 -f 133 144 125 -f 125 117 133 -f 140 151 144 -f 144 133 140 -f 138 132 140 -f 140 145 138 -f 122 116 132 -f 132 138 122 -f 98 94 116 -f 116 122 98 -f 80 76 94 -f 94 98 80 -f 60 55 76 -f 76 80 60 -f 42 40 55 -f 55 60 42 -f 28 22 40 -f 40 42 28 -f 13 11 22 -f 22 28 13 -f 7 2 11 -f 11 13 7 -f 4 1 2 -f 2 7 4 -f 152 138 145 -f 145 158 152 -f 136 122 138 -f 138 152 136 -f 108 98 122 -f 122 136 108 -f 89 80 98 -f 98 108 89 -f 70 60 80 -f 80 89 70 -f 52 42 60 -f 60 70 52 -f 38 28 42 -f 42 52 38 -f 26 13 28 -f 28 38 26 -f 19 7 13 -f 13 26 19 -f 15 4 7 -f 7 19 15 -f 173 152 158 -f 158 176 173 -f 162 136 152 -f 152 173 162 -f 142 108 136 -f 136 162 142 -f 111 89 108 -f 108 142 111 -f 91 70 89 -f 89 111 91 -f 73 52 70 -f 70 91 73 -f 58 38 52 -f 52 73 58 -f 48 26 38 -f 38 58 48 -f 37 19 26 -f 26 48 37 -f 35 15 19 -f 19 37 35 -f 194 173 176 -f 176 202 194 -f 184 162 173 -f 173 194 184 -f 174 142 162 -f 162 184 174 -f 156 111 142 -f 142 174 156 -f 128 91 111 -f 111 156 128 -f 106 73 91 -f 91 128 106 -f 86 58 73 -f 73 106 86 -f 78 48 58 -f 58 86 78 -f 68 37 48 -f 48 78 68 -f 67 35 37 -f 37 68 67 -f 221 194 202 -f 202 225 221 -f 216 184 194 -f 194 221 216 -f 206 174 184 -f 184 216 206 -f 192 156 174 -f 174 206 192 -f 180 128 156 -f 156 192 180 -f 164 106 128 -f 128 180 164 -f 148 86 106 -f 106 164 148 -f 130 78 86 -f 86 148 130 -f 121 68 78 -f 78 130 121 -f 115 67 68 -f 68 121 115 -f 244 221 225 -f 225 247 244 -f 240 216 221 -f 221 244 240 -f 236 206 216 -f 216 240 236 -f 233 192 206 -f 206 236 233 -f 227 180 192 -f 192 233 227 -f 215 164 180 -f 180 227 215 -f 210 148 164 -f 164 215 210 -f 203 130 148 -f 148 210 203 -f 191 121 130 -f 130 203 191 -f 188 115 121 -f 121 191 188 -f 284 244 247 -f 247 285 284 -f 279 240 244 -f 244 284 279 -f 277 236 240 -f 240 279 277 -f 273 233 236 -f 236 277 273 -f 267 227 233 -f 233 273 267 -f 263 215 227 -f 227 267 263 -f 258 210 215 -f 215 263 258 -f 253 203 210 -f 210 258 253 -f 245 191 203 -f 203 253 245 -f 242 188 191 -f 191 245 242 -f 315 284 285 -f 285 318 315 -f 312 279 284 -f 284 315 312 -f 311 277 279 -f 279 312 311 -f 309 273 277 -f 277 311 309 -f 307 267 273 -f 273 309 307 -f 305 263 267 -f 267 307 305 -f 301 258 263 -f 263 305 301 -f 297 253 258 -f 258 301 297 -f 295 245 253 -f 253 297 295 -f 293 242 245 -f 245 295 293 -f 341 315 318 -f 318 339 341 -f 343 312 315 -f 315 341 343 -f 345 311 312 -f 312 343 345 -f 347 309 311 -f 311 345 347 -f 349 307 309 -f 309 347 349 -f 351 305 307 -f 307 349 351 -f 353 301 305 -f 305 351 353 -f 355 297 301 -f 301 353 355 -f 357 295 297 -f 297 355 357 -f 359 293 295 -f 295 357 359 -f 378 341 339 -f 339 376 378 -f 384 343 341 -f 341 378 384 -f 394 345 343 -f 343 384 394 -f 403 347 345 -f 345 394 403 -f 406 349 347 -f 347 403 406 -f 415 351 349 -f 349 406 415 -f 419 353 351 -f 351 415 419 -f 423 355 353 -f 353 419 423 -f 425 357 355 -f 355 423 425 -f 427 359 357 -f 357 425 427 -f 8 3 1 -f 1 4 8 -f 14 12 3 -f 3 8 14 -f 29 23 12 -f 12 14 29 -f 43 41 23 -f 23 29 43 -f 59 56 41 -f 41 43 59 -f 81 77 56 -f 56 59 81 -f 99 95 77 -f 77 81 99 -f 123 117 95 -f 95 99 123 -f 139 133 117 -f 117 123 139 -f 145 140 133 -f 133 139 145 -f 20 8 4 -f 4 16 20 -f 27 14 8 -f 8 20 27 -f 39 29 14 -f 14 27 39 -f 51 43 29 -f 29 39 51 -f 71 59 43 -f 43 51 71 -f 88 81 59 -f 59 71 88 -f 109 99 81 -f 81 88 109 -f 137 123 99 -f 99 109 137 -f 153 139 123 -f 123 137 153 -f 159 145 139 -f 139 153 159 -f 36 20 16 -f 16 34 36 -f 49 27 20 -f 20 36 49 -f 57 39 27 -f 27 49 57 -f 72 51 39 -f 39 57 72 -f 90 71 51 -f 51 72 90 -f 110 88 71 -f 71 90 110 -f 141 109 88 -f 88 110 141 -f 163 137 109 -f 109 141 163 -f 172 153 137 -f 137 163 172 -f 176 159 153 -f 153 172 176 -f 69 36 34 -f 34 67 69 -f 79 49 36 -f 36 69 79 -f 87 57 49 -f 49 79 87 -f 107 72 57 -f 57 87 107 -f 129 90 72 -f 72 107 129 -f 157 110 90 -f 90 129 157 -f 175 141 110 -f 110 157 175 -f 185 163 141 -f 141 175 185 -f 195 172 163 -f 163 185 195 -f 202 176 172 -f 172 195 202 -f 120 69 67 -f 67 114 120 -f 131 79 69 -f 69 120 131 -f 149 87 79 -f 79 131 149 -f 165 107 87 -f 87 149 165 -f 179 129 107 -f 107 165 179 -f 193 157 129 -f 129 179 193 -f 207 175 157 -f 157 193 207 -f 217 185 175 -f 175 207 217 -f 220 195 185 -f 185 217 220 -f 224 202 195 -f 195 220 224 -f 190 120 114 -f 114 189 190 -f 204 131 120 -f 120 190 204 -f 211 149 131 -f 131 204 211 -f 214 165 149 -f 149 211 214 -f 226 179 165 -f 165 214 226 -f 232 193 179 -f 179 226 232 -f 237 207 193 -f 193 232 237 -f 241 217 207 -f 207 237 241 -f 243 220 217 -f 217 241 243 -f 248 224 220 -f 220 243 248 -f 246 190 189 -f 189 242 246 -f 254 204 190 -f 190 246 254 -f 257 211 204 -f 204 254 257 -f 264 214 211 -f 211 257 264 -f 268 226 214 -f 214 264 268 -f 274 232 226 -f 226 268 274 -f 278 237 232 -f 232 274 278 -f 280 241 237 -f 237 278 280 -f 283 243 241 -f 241 280 283 -f 285 248 243 -f 243 283 285 -f 294 246 242 -f 242 292 294 -f 296 254 246 -f 246 294 296 -f 300 257 254 -f 254 296 300 -f 304 264 257 -f 257 300 304 -f 306 268 264 -f 264 304 306 -f 308 274 268 -f 268 306 308 -f 310 278 274 -f 274 308 310 -f 313 280 278 -f 278 310 313 -f 314 283 280 -f 280 313 314 -f 317 285 283 -f 283 314 317 -f 356 294 292 -f 292 358 356 -f 354 296 294 -f 294 356 354 -f 352 300 296 -f 296 354 352 -f 350 304 300 -f 300 352 350 -f 348 306 304 -f 304 350 348 -f 346 308 306 -f 306 348 346 -f 344 310 308 -f 308 346 344 -f 342 313 310 -f 310 344 342 -f 340 314 313 -f 313 342 340 -f 338 317 314 -f 314 340 338 -f 424 356 358 -f 358 426 424 -f 422 354 356 -f 356 424 422 -f 418 352 354 -f 354 422 418 -f 414 350 352 -f 352 418 414 -f 407 348 350 -f 350 414 407 -f 402 346 348 -f 348 407 402 -f 393 344 346 -f 346 402 393 -f 383 342 344 -f 344 393 383 -f 377 340 342 -f 342 383 377 -f 375 338 340 -f 340 377 375 -f 3186 3113 3115 -f 3115 3182 3186 -f 3192 3110 3113 -f 3113 3186 3192 -f 3196 3109 3110 -f 3110 3192 3196 -f 3205 3106 3109 -f 3109 3196 3205 -f 3211 3104 3106 -f 3106 3205 3211 -f 3215 3102 3104 -f 3104 3211 3215 -f 3217 3101 3102 -f 3102 3215 3217 -f 3220 3098 3101 -f 3101 3217 3220 -f 3222 3097 3098 -f 3098 3220 3222 -f 3223 3095 3097 -f 3097 3222 3223 -f 3227 3186 3182 -f 3182 3225 3227 -f 3229 3192 3186 -f 3186 3227 3229 -f 3231 3196 3192 -f 3192 3229 3231 -f 3233 3205 3196 -f 3196 3231 3233 -f 3235 3211 3205 -f 3205 3233 3235 -f 3241 3215 3211 -f 3211 3235 3241 -f 3245 3217 3215 -f 3215 3241 3245 -f 3249 3220 3217 -f 3217 3245 3249 -f 3251 3222 3220 -f 3220 3249 3251 -f 3253 3223 3222 -f 3222 3251 3253 -f 3239 3227 3225 -f 3225 3237 3239 -f 3243 3229 3227 -f 3227 3239 3243 -f 3247 3231 3229 -f 3229 3243 3247 -f 3257 3233 3231 -f 3231 3247 3257 -f 3263 3235 3233 -f 3233 3257 3263 -f 3271 3241 3235 -f 3235 3263 3271 -f 3279 3245 3241 -f 3241 3271 3279 -f 3285 3249 3245 -f 3245 3279 3285 -f 3293 3251 3249 -f 3249 3285 3293 -f 3297 3253 3251 -f 3251 3293 3297 -f 3259 3239 3237 -f 3237 3255 3259 -f 3261 3243 3239 -f 3239 3259 3261 -f 3265 3247 3243 -f 3243 3261 3265 -f 3275 3257 3247 -f 3247 3265 3275 -f 3287 3263 3257 -f 3257 3275 3287 -f 3303 3271 3263 -f 3263 3287 3303 -f 3314 3279 3271 -f 3271 3303 3314 -f 3320 3285 3279 -f 3279 3314 3320 -f 3330 3293 3285 -f 3285 3320 3330 -f 3332 3297 3293 -f 3293 3330 3332 -f 3270 3259 3255 -f 3255 3268 3270 -f 3273 3261 3259 -f 3259 3270 3273 -f 3283 3265 3261 -f 3261 3273 3283 -f 3299 3275 3265 -f 3265 3283 3299 -f 3308 3287 3275 -f 3275 3299 3308 -f 3322 3303 3287 -f 3287 3308 3322 -f 3338 3314 3303 -f 3303 3322 3338 -f 3346 3320 3314 -f 3314 3338 3346 -f 3351 3330 3320 -f 3320 3346 3351 -f 3355 3332 3330 -f 3330 3351 3355 -f 3282 3270 3268 -f 3268 3278 3282 -f 3290 3273 3270 -f 3270 3282 3290 -f 3302 3283 3273 -f 3273 3290 3302 -f 3312 3299 3283 -f 3283 3302 3312 -f 3324 3308 3299 -f 3299 3312 3324 -f 3340 3322 3308 -f 3308 3324 3340 -f 3353 3338 3322 -f 3322 3340 3353 -f 3368 3346 3338 -f 3338 3353 3368 -f 3373 3351 3346 -f 3346 3368 3373 -f 3379 3355 3351 -f 3351 3373 3379 -f 3295 3282 3278 -f 3278 3292 3295 -f 3306 3290 3282 -f 3282 3295 3306 -f 3316 3302 3290 -f 3290 3306 3316 -f 3326 3312 3302 -f 3302 3316 3326 -f 3345 3324 3312 -f 3312 3326 3345 -f 3359 3340 3324 -f 3324 3345 3359 -f 3376 3353 3340 -f 3340 3359 3376 -f 3394 3368 3353 -f 3353 3376 3394 -f 3404 3373 3368 -f 3368 3394 3404 -f 3406 3379 3373 -f 3373 3404 3406 -f 3310 3295 3292 -f 3292 3307 3310 -f 3318 3306 3295 -f 3295 3310 3318 -f 3336 3316 3306 -f 3306 3318 3336 -f 3348 3326 3316 -f 3316 3336 3348 -f 3369 3345 3326 -f 3326 3348 3369 -f 3389 3359 3345 -f 3345 3369 3389 -f 3425 3376 3359 -f 3359 3389 3425 -f 3449 3394 3376 -f 3376 3425 3449 -f 3468 3404 3394 -f 3394 3449 3468 -f 3472 3406 3404 -f 3404 3468 3472 -f 3335 3310 3307 -f 3307 3329 3335 -f 3343 3318 3310 -f 3310 3335 3343 -f 3362 3336 3318 -f 3318 3343 3362 -f 3386 3348 3336 -f 3336 3362 3386 -f 3422 3369 3348 -f 3348 3386 3422 -f 3464 3389 3369 -f 3369 3422 3464 -f 3490 3425 3389 -f 3389 3464 3490 -f 3505 3449 3425 -f 3425 3490 3505 -f 3521 3468 3449 -f 3449 3505 3521 -f 3523 3472 3468 -f 3468 3521 3523 -f 3364 3335 3329 -f 3329 3357 3364 -f 3382 3343 3335 -f 3335 3364 3382 -f 3416 3362 3343 -f 3343 3382 3416 -f 3465 3386 3362 -f 3362 3416 3465 -f 3495 3422 3386 -f 3386 3465 3495 -f 3528 3464 3422 -f 3422 3495 3528 -f 3553 3490 3464 -f 3464 3528 3553 -f 3579 3505 3490 -f 3490 3553 3579 -f 3592 3521 3505 -f 3505 3579 3592 -f 3604 3523 3521 -f 3521 3592 3604 -f 3221 3096 3094 -f 3094 3224 3221 -f 3219 3099 3096 -f 3096 3221 3219 -f 3218 3100 3099 -f 3099 3219 3218 -f 3216 3103 3100 -f 3100 3218 3216 -f 3212 3105 3103 -f 3103 3216 3212 -f 3206 3107 3105 -f 3105 3212 3206 -f 3197 3108 3107 -f 3107 3206 3197 -f 3193 3111 3108 -f 3108 3197 3193 -f 3187 3112 3111 -f 3111 3193 3187 -f 3183 3114 3112 -f 3112 3187 3183 -f 3252 3221 3224 -f 3224 3254 3252 -f 3250 3219 3221 -f 3221 3252 3250 -f 3246 3218 3219 -f 3219 3250 3246 -f 3242 3216 3218 -f 3218 3246 3242 -f 3236 3212 3216 -f 3216 3242 3236 -f 3234 3206 3212 -f 3212 3236 3234 -f 3232 3197 3206 -f 3206 3234 3232 -f 3230 3193 3197 -f 3197 3232 3230 -f 3228 3187 3193 -f 3193 3230 3228 -f 3226 3183 3187 -f 3187 3228 3226 -f 3294 3252 3254 -f 3254 3298 3294 -f 3286 3250 3252 -f 3252 3294 3286 -f 3280 3246 3250 -f 3250 3286 3280 -f 3272 3242 3246 -f 3246 3280 3272 -f 3264 3236 3242 -f 3242 3272 3264 -f 3258 3234 3236 -f 3236 3264 3258 -f 3248 3232 3234 -f 3234 3258 3248 -f 3244 3230 3232 -f 3232 3248 3244 -f 3240 3228 3230 -f 3230 3244 3240 -f 3238 3226 3228 -f 3228 3240 3238 -f 3331 3294 3298 -f 3298 3333 3331 -f 3321 3286 3294 -f 3294 3331 3321 -f 3315 3280 3286 -f 3286 3321 3315 -f 3304 3272 3280 -f 3280 3315 3304 -f 3288 3264 3272 -f 3272 3304 3288 -f 3276 3258 3264 -f 3264 3288 3276 -f 3266 3248 3258 -f 3258 3276 3266 -f 3262 3244 3248 -f 3248 3266 3262 -f 3260 3240 3244 -f 3244 3262 3260 -f 3256 3238 3240 -f 3240 3260 3256 -f 3350 3331 3333 -f 3333 3354 3350 -f 3347 3321 3331 -f 3331 3350 3347 -f 3339 3315 3321 -f 3321 3347 3339 -f 3323 3304 3315 -f 3315 3339 3323 -f 3309 3288 3304 -f 3304 3323 3309 -f 3300 3276 3288 -f 3288 3309 3300 -f 3284 3266 3276 -f 3276 3300 3284 -f 3274 3262 3266 -f 3266 3284 3274 -f 3269 3260 3262 -f 3262 3274 3269 -f 3267 3256 3260 -f 3260 3269 3267 -f 3372 3350 3354 -f 3354 3378 3372 -f 3367 3347 3350 -f 3350 3372 3367 -f 3352 3339 3347 -f 3347 3367 3352 -f 3341 3323 3339 -f 3339 3352 3341 -f 3325 3309 3323 -f 3323 3341 3325 -f 3313 3300 3309 -f 3309 3325 3313 -f 3301 3284 3300 -f 3300 3313 3301 -f 3289 3274 3284 -f 3284 3301 3289 -f 3281 3269 3274 -f 3274 3289 3281 -f 3277 3267 3269 -f 3269 3281 3277 -f 3403 3372 3378 -f 3378 3405 3403 -f 3393 3367 3372 -f 3372 3403 3393 -f 3377 3352 3367 -f 3367 3393 3377 -f 3360 3341 3352 -f 3352 3377 3360 -f 3344 3325 3341 -f 3341 3360 3344 -f 3327 3313 3325 -f 3325 3344 3327 -f 3317 3301 3313 -f 3313 3327 3317 -f 3305 3289 3301 -f 3301 3317 3305 -f 3296 3281 3289 -f 3289 3305 3296 -f 3291 3277 3281 -f 3281 3296 3291 -f 3469 3403 3405 -f 3405 3472 3469 -f 3450 3393 3403 -f 3403 3469 3450 -f 3426 3377 3393 -f 3393 3450 3426 -f 3390 3360 3377 -f 3377 3426 3390 -f 3370 3344 3360 -f 3360 3390 3370 -f 3349 3327 3344 -f 3344 3370 3349 -f 3337 3317 3327 -f 3327 3349 3337 -f 3319 3305 3317 -f 3317 3337 3319 -f 3311 3296 3305 -f 3305 3319 3311 -f 3307 3291 3296 -f 3296 3311 3307 -f 3520 3469 3472 -f 3472 3522 3520 -f 3504 3450 3469 -f 3469 3520 3504 -f 3489 3426 3450 -f 3450 3504 3489 -f 3463 3390 3426 -f 3426 3489 3463 -f 3421 3370 3390 -f 3390 3463 3421 -f 3385 3349 3370 -f 3370 3421 3385 -f 3361 3337 3349 -f 3349 3385 3361 -f 3342 3319 3337 -f 3337 3361 3342 -f 3334 3311 3319 -f 3319 3342 3334 -f 3328 3307 3311 -f 3311 3334 3328 -f 3591 3520 3522 -f 3522 3603 3591 -f 3578 3504 3520 -f 3520 3591 3578 -f 3552 3489 3504 -f 3504 3578 3552 -f 3530 3463 3489 -f 3489 3552 3530 -f 3499 3421 3463 -f 3463 3530 3499 -f 3467 3385 3421 -f 3421 3499 3467 -f 3415 3361 3385 -f 3385 3467 3415 -f 3381 3342 3361 -f 3361 3415 3381 -f 3363 3334 3342 -f 3342 3381 3363 -f 3356 3328 3334 -f 3334 3363 3356 -f 3374 3365 3358 -f 3358 3371 3374 -f 3395 3383 3365 -f 3365 3374 3395 -f 3443 3417 3383 -f 3383 3395 3443 -f 3481 3466 3417 -f 3417 3443 3481 -f 3514 3496 3466 -f 3466 3481 3514 -f 3545 3529 3496 -f 3496 3514 3545 -f 3573 3551 3529 -f 3529 3545 3573 -f 3597 3577 3551 -f 3551 3573 3597 -f 3613 3590 3577 -f 3577 3597 3613 -f 3619 3603 3590 -f 3590 3613 3619 -f 3387 3374 3371 -f 3371 3380 3387 -f 3413 3395 3374 -f 3374 3387 3413 -f 3461 3443 3395 -f 3395 3413 3461 -f 3493 3481 3443 -f 3443 3461 3493 -f 3524 3514 3481 -f 3481 3493 3524 -f 3556 3545 3514 -f 3514 3524 3556 -f 3584 3573 3545 -f 3545 3556 3584 -f 3611 3597 3573 -f 3573 3584 3611 -f 3628 3613 3597 -f 3597 3611 3628 -f 3632 3619 3613 -f 3613 3628 3632 -f 3398 3387 3380 -f 3380 3391 3398 -f 3435 3413 3387 -f 3387 3398 3435 -f 3473 3461 3413 -f 3413 3435 3473 -f 3500 3493 3461 -f 3461 3473 3500 -f 3531 3524 3493 -f 3493 3500 3531 -f 3562 3556 3524 -f 3524 3531 3562 -f 3595 3584 3556 -f 3556 3562 3595 -f 3617 3611 3584 -f 3584 3595 3617 -f 3633 3628 3611 -f 3611 3617 3633 -f 3641 3632 3628 -f 3628 3633 3641 -f 3409 3398 3391 -f 3391 3400 3409 -f 3447 3435 3398 -f 3398 3409 3447 -f 3477 3473 3435 -f 3435 3447 3477 -f 3506 3500 3473 -f 3473 3477 3506 -f 3540 3531 3500 -f 3500 3506 3540 -f 3567 3562 3531 -f 3531 3540 3567 -f 3601 3595 3562 -f 3562 3567 3601 -f 3624 3617 3595 -f 3595 3601 3624 -f 3639 3633 3617 -f 3617 3624 3639 -f 3644 3641 3633 -f 3633 3639 3644 -f 3433 3409 3400 -f 3400 3411 3433 -f 3453 3447 3409 -f 3409 3433 3453 -f 3483 3477 3447 -f 3447 3453 3483 -f 3510 3506 3477 -f 3477 3483 3510 -f 3543 3540 3506 -f 3506 3510 3543 -f 3569 3567 3540 -f 3540 3543 3569 -f 3599 3601 3567 -f 3567 3569 3599 -f 3622 3624 3601 -f 3601 3599 3622 -f 3637 3639 3624 -f 3624 3622 3637 -f 3642 3644 3639 -f 3639 3637 3642 -f 3439 3433 3411 -f 3411 3424 3439 -f 3458 3453 3433 -f 3433 3439 3458 -f 3487 3483 3453 -f 3453 3458 3487 -f 3513 3510 3483 -f 3483 3487 3513 -f 3542 3543 3510 -f 3510 3513 3542 -f 3566 3569 3543 -f 3543 3542 3566 -f 3593 3599 3569 -f 3569 3566 3593 -f 3616 3622 3599 -f 3599 3593 3616 -f 3630 3637 3622 -f 3622 3616 3630 -f 3636 3642 3637 -f 3637 3630 3636 -f 3441 3439 3424 -f 3424 3429 3441 -f 3459 3458 3439 -f 3439 3441 3459 -f 3485 3487 3458 -f 3458 3459 3485 -f 3508 3513 3487 -f 3487 3485 3508 -f 3533 3542 3513 -f 3513 3508 3533 -f 3558 3566 3542 -f 3542 3533 3558 -f 3582 3593 3566 -f 3566 3558 3582 -f 3607 3616 3593 -f 3593 3582 3607 -f 3620 3630 3616 -f 3616 3607 3620 -f 3626 3636 3630 -f 3630 3620 3626 -f 3437 3441 3429 -f 3429 3427 3437 -f 3455 3459 3441 -f 3441 3437 3455 -f 3479 3485 3459 -f 3459 3455 3479 -f 3502 3508 3485 -f 3485 3479 3502 -f 3526 3533 3508 -f 3508 3502 3526 -f 3547 3558 3533 -f 3533 3526 3547 -f 3571 3582 3558 -f 3558 3547 3571 -f 3588 3607 3582 -f 3582 3571 3588 -f 3605 3620 3607 -f 3607 3588 3605 -f 3609 3626 3620 -f 3620 3605 3609 -f 3419 3437 3427 -f 3427 3408 3419 -f 3445 3455 3437 -f 3437 3419 3445 -f 3470 3479 3455 -f 3455 3445 3470 -f 3492 3502 3479 -f 3479 3470 3492 -f 3517 3526 3502 -f 3502 3492 3517 -f 3536 3547 3526 -f 3526 3517 3536 -f 3554 3571 3547 -f 3547 3536 3554 -f 3575 3588 3571 -f 3571 3554 3575 -f 3580 3605 3588 -f 3588 3575 3580 -f 3587 3609 3605 -f 3605 3580 3587 -f 3401 3419 3408 -f 3408 3397 3401 -f 3431 3445 3419 -f 3419 3401 3431 -f 3451 3470 3445 -f 3445 3431 3451 -f 3475 3492 3470 -f 3470 3451 3475 -f 3497 3517 3492 -f 3492 3475 3497 -f 3518 3536 3517 -f 3517 3497 3518 -f 3537 3554 3536 -f 3536 3518 3537 -f 3549 3575 3554 -f 3554 3537 3549 -f 3560 3580 3575 -f 3575 3549 3560 -f 3564 3587 3580 -f 3580 3560 3564 -f 3614 3591 3603 -f 3603 3619 3614 -f 3598 3578 3591 -f 3591 3614 3598 -f 3574 3552 3578 -f 3578 3598 3574 -f 3546 3530 3552 -f 3552 3574 3546 -f 3515 3499 3530 -f 3530 3546 3515 -f 3482 3467 3499 -f 3499 3515 3482 -f 3444 3418 3467 -f 3467 3482 3444 -f 3396 3384 3418 -f 3418 3444 3396 -f 3375 3366 3384 -f 3384 3396 3375 -f 3371 3358 3366 -f 3366 3375 3371 -f 3629 3614 3619 -f 3619 3632 3629 -f 3612 3598 3614 -f 3614 3629 3612 -f 3585 3574 3598 -f 3598 3612 3585 -f 3557 3546 3574 -f 3574 3585 3557 -f 3525 3515 3546 -f 3546 3557 3525 -f 3494 3482 3515 -f 3515 3525 3494 -f 3462 3444 3482 -f 3482 3494 3462 -f 3414 3396 3444 -f 3444 3462 3414 -f 3388 3375 3396 -f 3396 3414 3388 -f 3380 3371 3375 -f 3375 3388 3380 -f 3634 3629 3632 -f 3632 3641 3634 -f 3618 3612 3629 -f 3629 3634 3618 -f 3596 3585 3612 -f 3612 3618 3596 -f 3563 3557 3585 -f 3585 3596 3563 -f 3532 3525 3557 -f 3557 3563 3532 -f 3501 3494 3525 -f 3525 3532 3501 -f 3474 3462 3494 -f 3494 3501 3474 -f 3436 3414 3462 -f 3462 3474 3436 -f 3399 3388 3414 -f 3414 3436 3399 -f 3392 3380 3388 -f 3388 3399 3392 -f 3640 3634 3641 -f 3641 3644 3640 -f 3625 3618 3634 -f 3634 3640 3625 -f 3602 3596 3618 -f 3618 3625 3602 -f 3568 3563 3596 -f 3596 3602 3568 -f 3539 3532 3563 -f 3563 3568 3539 -f 3507 3501 3532 -f 3532 3539 3507 -f 3478 3474 3501 -f 3501 3507 3478 -f 3448 3436 3474 -f 3474 3478 3448 -f 3410 3399 3436 -f 3436 3448 3410 -f 3400 3392 3399 -f 3399 3410 3400 -f 3638 3640 3644 -f 3644 3643 3638 -f 3623 3625 3640 -f 3640 3638 3623 -f 3600 3602 3625 -f 3625 3623 3600 -f 3570 3568 3602 -f 3602 3600 3570 -f 3544 3539 3568 -f 3568 3570 3544 -f 3511 3507 3539 -f 3539 3544 3511 -f 3484 3478 3507 -f 3507 3511 3484 -f 3454 3448 3478 -f 3478 3484 3454 -f 3434 3410 3448 -f 3448 3454 3434 -f 3412 3400 3410 -f 3410 3434 3412 -f 3631 3638 3643 -f 3643 3635 3631 -f 3615 3623 3638 -f 3638 3631 3615 -f 3594 3600 3623 -f 3623 3615 3594 -f 3565 3570 3600 -f 3600 3594 3565 -f 3541 3544 3570 -f 3570 3565 3541 -f 3512 3511 3544 -f 3544 3541 3512 -f 3488 3484 3511 -f 3511 3512 3488 -f 3457 3454 3484 -f 3484 3488 3457 -f 3440 3434 3454 -f 3454 3457 3440 -f 3423 3412 3434 -f 3434 3440 3423 -f 3621 3631 3635 -f 3635 3627 3621 -f 3608 3615 3631 -f 3631 3621 3608 -f 3583 3594 3615 -f 3615 3608 3583 -f 3559 3565 3594 -f 3594 3583 3559 -f 3534 3541 3565 -f 3565 3559 3534 -f 3509 3512 3541 -f 3541 3534 3509 -f 3486 3488 3512 -f 3512 3509 3486 -f 3460 3457 3488 -f 3488 3486 3460 -f 3442 3440 3457 -f 3457 3460 3442 -f 3430 3423 3440 -f 3440 3442 3430 -f 3606 3621 3627 -f 3627 3610 3606 -f 3589 3608 3621 -f 3621 3606 3589 -f 3572 3583 3608 -f 3608 3589 3572 -f 3548 3559 3583 -f 3583 3572 3548 -f 3527 3534 3559 -f 3559 3548 3527 -f 3503 3509 3534 -f 3534 3527 3503 -f 3480 3486 3509 -f 3509 3503 3480 -f 3456 3460 3486 -f 3486 3480 3456 -f 3438 3442 3460 -f 3460 3456 3438 -f 3428 3430 3442 -f 3442 3438 3428 -f 3581 3606 3610 -f 3610 3586 3581 -f 3576 3589 3606 -f 3606 3581 3576 -f 3555 3572 3589 -f 3589 3576 3555 -f 3535 3548 3572 -f 3572 3555 3535 -f 3516 3527 3548 -f 3548 3535 3516 -f 3491 3503 3527 -f 3527 3516 3491 -f 3471 3480 3503 -f 3503 3491 3471 -f 3446 3456 3480 -f 3480 3471 3446 -f 3420 3438 3456 -f 3456 3446 3420 -f 3407 3428 3438 -f 3438 3420 3407 -f 3561 3581 3586 -f 3586 3564 3561 -f 3550 3576 3581 -f 3581 3561 3550 -f 3538 3555 3576 -f 3576 3550 3538 -f 3519 3535 3555 -f 3555 3538 3519 -f 3498 3516 3535 -f 3535 3519 3498 -f 3476 3491 3516 -f 3516 3498 3476 -f 3452 3471 3491 -f 3491 3476 3452 -f 3432 3446 3471 -f 3471 3452 3432 -f 3402 3420 3446 -f 3446 3432 3402 -f 3397 3407 3420 -f 3420 3402 3397 -f 1888 2110 2104 -f 1888 2104 2096 -f 1888 2096 2076 -f 1888 2076 2048 -f 1888 2048 2030 -f 1888 2030 2006 -f 1888 2006 1982 -f 1888 1982 1960 -f 1888 1960 1936 -f 1888 1936 1732 -f 2257 2104 2110 -f 2110 2261 2257 -f 2249 2096 2104 -f 2104 2257 2249 -f 2226 2076 2096 -f 2096 2249 2226 -f 2200 2048 2076 -f 2076 2226 2200 -f 2142 2030 2048 -f 2048 2200 2142 -f 2094 2006 2030 -f 2030 2142 2094 -f 2036 1982 2006 -f 2006 2094 2036 -f 1988 1960 1982 -f 1982 2036 1988 -f 1948 1936 1960 -f 1960 1988 1948 -f 1728 1732 1936 -f 1936 1948 1728 -f 2310 2257 2261 -f 2261 2315 2310 -f 2300 2249 2257 -f 2257 2310 2300 -f 2279 2226 2249 -f 2249 2300 2279 -f 2243 2200 2226 -f 2226 2279 2243 -f 2204 2142 2200 -f 2200 2243 2204 -f 2132 2094 2142 -f 2142 2204 2132 -f 2067 2036 2094 -f 2094 2132 2067 -f 2000 1988 2036 -f 2036 2067 2000 -f 1956 1948 1988 -f 1988 2000 1956 -f 1734 1728 1948 -f 1948 1956 1734 -f 2312 2310 2315 -f 2315 2316 2312 -f 2302 2300 2310 -f 2310 2312 2302 -f 2281 2279 2300 -f 2300 2302 2281 -f 2245 2243 2279 -f 2279 2281 2245 -f 2206 2204 2243 -f 2243 2245 2206 -f 2134 2132 2204 -f 2204 2206 2134 -f 2068 2067 2132 -f 2132 2134 2068 -f 2002 2000 2067 -f 2067 2068 2002 -f 1958 1956 2000 -f 2000 2002 1958 -f 1878 1734 1956 -f 1956 1958 1878 -f 2285 2312 2316 -f 2316 2289 2285 -f 2259 2302 2312 -f 2312 2285 2259 -f 2241 2281 2302 -f 2302 2259 2241 -f 2214 2245 2281 -f 2281 2241 2214 -f 2168 2206 2245 -f 2245 2214 2168 -f 2106 2134 2206 -f 2206 2168 2106 -f 2042 2068 2134 -f 2134 2106 2042 -f 1994 2002 2068 -f 2068 2042 1994 -f 1952 1958 2002 -f 2002 1994 1952 -f 1731 1878 1958 -f 1958 1952 1731 -f 2220 2285 2289 -f 2289 2225 2220 -f 2210 2259 2285 -f 2285 2220 2210 -f 2186 2241 2259 -f 2259 2210 2186 -f 2146 2214 2241 -f 2241 2186 2146 -f 2108 2168 2214 -f 2214 2146 2108 -f 2060 2106 2168 -f 2168 2108 2060 -f 2018 2042 2106 -f 2106 2060 2018 -f 1978 1994 2042 -f 2042 2018 1978 -f 1944 1952 1994 -f 1994 1978 1944 -f 1727 1731 1952 -f 1952 1944 1727 -f 2141 2220 2225 -f 2225 2145 2141 -f 2127 2210 2220 -f 2220 2141 2127 -f 2112 2186 2210 -f 2210 2127 2112 -f 2084 2146 2186 -f 2186 2112 2084 -f 2044 2108 2146 -f 2146 2084 2044 -f 2024 2060 2108 -f 2108 2044 2024 -f 1992 2018 2060 -f 2060 2024 1992 -f 1970 1978 2018 -f 2018 1992 1970 -f 1942 1944 1978 -f 1978 1970 1942 -f 1721 1727 1944 -f 1944 1942 1721 -f 2079 2141 2145 -f 2145 2087 2079 -f 2075 2127 2141 -f 2141 2079 2075 -f 2055 2112 2127 -f 2127 2075 2055 -f 2039 2084 2112 -f 2112 2055 2039 -f 2021 2044 2084 -f 2084 2039 2021 -f 1996 2024 2044 -f 2044 2021 1996 -f 1974 1992 2024 -f 2024 1996 1974 -f 1954 1970 1992 -f 1992 1974 1954 -f 1934 1942 1970 -f 1970 1954 1934 -f 1720 1721 1942 -f 1942 1934 1720 -f 2063 2079 2087 -f 2087 2071 2063 -f 2051 2075 2079 -f 2079 2063 2051 -f 2041 2055 2075 -f 2075 2051 2041 -f 2029 2039 2055 -f 2055 2041 2029 -f 2013 2021 2039 -f 2039 2029 2013 -f 1991 1996 2021 -f 2021 2013 1991 -f 1972 1974 1996 -f 1996 1991 1972 -f 1950 1954 1974 -f 1974 1972 1950 -f 1932 1934 1954 -f 1954 1950 1932 -f 1701 1720 1934 -f 1934 1932 1701 -f 2115 2063 2071 -f 2071 2123 2115 -f 2101 2051 2063 -f 2063 2115 2101 -f 2081 2041 2051 -f 2051 2101 2081 -f 2057 2029 2041 -f 2041 2081 2057 -f 2033 2013 2029 -f 2029 2057 2033 -f 2009 1991 2013 -f 2013 2033 2009 -f 1984 1972 1991 -f 1991 2009 1984 -f 1964 1950 1972 -f 1972 1984 1964 -f 1938 1932 1950 -f 1950 1964 1938 -f 1698 1701 1932 -f 1932 1938 1698 -f 1888 1886 1686 -f 1888 1686 1662 -f 1888 1662 1640 -f 1888 1640 1616 -f 1888 1616 1592 -f 1888 1592 1574 -f 1888 1574 1546 -f 1888 1546 1526 -f 1888 1526 1518 -f 1888 1518 1512 -f 1674 1686 1886 -f 1886 1884 1674 -f 1634 1662 1686 -f 1686 1674 1634 -f 1586 1640 1662 -f 1662 1634 1586 -f 1528 1616 1640 -f 1640 1586 1528 -f 1480 1592 1616 -f 1616 1528 1480 -f 1422 1574 1592 -f 1592 1480 1422 -f 1396 1546 1574 -f 1574 1422 1396 -f 1373 1526 1546 -f 1546 1396 1373 -f 1365 1518 1526 -f 1526 1373 1365 -f 1361 1512 1518 -f 1518 1365 1361 -f 1666 1674 1884 -f 1884 1882 1666 -f 1622 1634 1674 -f 1674 1666 1622 -f 1557 1586 1634 -f 1634 1622 1557 -f 1490 1528 1586 -f 1586 1557 1490 -f 1418 1480 1528 -f 1528 1490 1418 -f 1379 1422 1480 -f 1480 1418 1379 -f 1343 1396 1422 -f 1422 1379 1343 -f 1322 1373 1396 -f 1396 1343 1322 -f 1312 1365 1373 -f 1373 1322 1312 -f 1309 1361 1365 -f 1365 1312 1309 -f 1664 1666 1882 -f 1882 1879 1664 -f 1620 1622 1666 -f 1666 1664 1620 -f 1554 1557 1622 -f 1622 1620 1554 -f 1488 1490 1557 -f 1557 1554 1488 -f 1416 1418 1490 -f 1490 1488 1416 -f 1377 1379 1418 -f 1418 1416 1377 -f 1341 1343 1379 -f 1379 1377 1341 -f 1320 1322 1343 -f 1343 1341 1320 -f 1310 1312 1322 -f 1322 1320 1310 -f 1306 1309 1312 -f 1312 1310 1306 -f 1670 1664 1879 -f 1879 1876 1670 -f 1628 1620 1664 -f 1664 1670 1628 -f 1580 1554 1620 -f 1620 1628 1580 -f 1516 1488 1554 -f 1554 1580 1516 -f 1454 1416 1488 -f 1488 1516 1454 -f 1408 1377 1416 -f 1416 1454 1408 -f 1381 1341 1377 -f 1377 1408 1381 -f 1363 1320 1341 -f 1341 1381 1363 -f 1337 1310 1320 -f 1320 1363 1337 -f 1333 1306 1310 -f 1310 1337 1333 -f 1678 1670 1876 -f 1876 1874 1678 -f 1644 1628 1670 -f 1670 1678 1644 -f 1604 1580 1628 -f 1628 1644 1604 -f 1562 1516 1580 -f 1580 1604 1562 -f 1514 1454 1516 -f 1516 1562 1514 -f 1476 1408 1454 -f 1454 1514 1476 -f 1436 1381 1408 -f 1408 1476 1436 -f 1412 1363 1381 -f 1381 1436 1412 -f 1402 1337 1363 -f 1363 1412 1402 -f 1399 1333 1337 -f 1337 1402 1399 -f 1680 1678 1874 -f 1874 1872 1680 -f 1652 1644 1678 -f 1678 1680 1652 -f 1630 1604 1644 -f 1644 1652 1630 -f 1598 1562 1604 -f 1604 1630 1598 -f 1578 1514 1562 -f 1562 1598 1578 -f 1538 1476 1514 -f 1514 1578 1538 -f 1510 1436 1476 -f 1476 1538 1510 -f 1497 1412 1436 -f 1436 1510 1497 -f 1483 1402 1412 -f 1412 1497 1483 -f 1479 1399 1402 -f 1402 1483 1479 -f 1688 1680 1872 -f 1872 1870 1688 -f 1668 1652 1680 -f 1680 1688 1668 -f 1648 1630 1652 -f 1652 1668 1648 -f 1626 1598 1630 -f 1630 1648 1626 -f 1603 1578 1598 -f 1598 1626 1603 -f 1585 1538 1578 -f 1578 1603 1585 -f 1569 1510 1538 -f 1538 1585 1569 -f 1549 1497 1510 -f 1510 1569 1549 -f 1545 1483 1497 -f 1497 1549 1545 -f 1537 1479 1483 -f 1483 1545 1537 -f 1690 1688 1870 -f 1870 1868 1690 -f 1672 1668 1688 -f 1688 1690 1672 -f 1650 1648 1668 -f 1668 1672 1650 -f 1633 1626 1648 -f 1648 1650 1633 -f 1611 1603 1626 -f 1626 1633 1611 -f 1595 1585 1603 -f 1603 1611 1595 -f 1583 1569 1585 -f 1585 1595 1583 -f 1573 1549 1569 -f 1569 1583 1573 -f 1561 1545 1549 -f 1549 1573 1561 -f 1553 1537 1545 -f 1545 1561 1553 -f 1684 1690 1868 -f 1868 1865 1684 -f 1658 1672 1690 -f 1690 1684 1658 -f 1638 1650 1672 -f 1672 1658 1638 -f 1615 1633 1650 -f 1650 1638 1615 -f 1591 1611 1633 -f 1633 1615 1591 -f 1567 1595 1611 -f 1611 1591 1567 -f 1543 1583 1595 -f 1595 1567 1543 -f 1523 1573 1583 -f 1583 1543 1523 -f 1509 1561 1573 -f 1573 1523 1509 -f 1501 1553 1561 -f 1561 1509 1501 -f 1888 1513 1519 -f 1888 1519 1527 -f 1888 1527 1547 -f 1888 1547 1575 -f 1888 1575 1593 -f 1888 1593 1617 -f 1888 1617 1641 -f 1888 1641 1663 -f 1888 1663 1687 -f 1888 1687 1894 -f 1366 1519 1513 -f 1513 1362 1366 -f 1374 1527 1519 -f 1519 1366 1374 -f 1397 1547 1527 -f 1527 1374 1397 -f 1423 1575 1547 -f 1547 1397 1423 -f 1481 1593 1575 -f 1575 1423 1481 -f 1529 1617 1593 -f 1593 1481 1529 -f 1587 1641 1617 -f 1617 1529 1587 -f 1635 1663 1641 -f 1641 1587 1635 -f 1675 1687 1663 -f 1663 1635 1675 -f 1895 1894 1687 -f 1687 1675 1895 -f 1313 1366 1362 -f 1362 1308 1313 -f 1323 1374 1366 -f 1366 1313 1323 -f 1344 1397 1374 -f 1374 1323 1344 -f 1380 1423 1397 -f 1397 1344 1380 -f 1419 1481 1423 -f 1423 1380 1419 -f 1491 1529 1481 -f 1481 1419 1491 -f 1556 1587 1529 -f 1529 1491 1556 -f 1623 1635 1587 -f 1587 1556 1623 -f 1667 1675 1635 -f 1635 1623 1667 -f 1890 1895 1675 -f 1675 1667 1890 -f 1311 1313 1308 -f 1308 1307 1311 -f 1321 1323 1313 -f 1313 1311 1321 -f 1342 1344 1323 -f 1323 1321 1342 -f 1378 1380 1344 -f 1344 1342 1378 -f 1417 1419 1380 -f 1380 1378 1417 -f 1489 1491 1419 -f 1419 1417 1489 -f 1555 1556 1491 -f 1491 1489 1555 -f 1621 1623 1556 -f 1556 1555 1621 -f 1665 1667 1623 -f 1623 1621 1665 -f 1881 1890 1667 -f 1667 1665 1881 -f 1338 1311 1307 -f 1307 1334 1338 -f 1364 1321 1311 -f 1311 1338 1364 -f 1382 1342 1321 -f 1321 1364 1382 -f 1409 1378 1342 -f 1342 1382 1409 -f 1455 1417 1378 -f 1378 1409 1455 -f 1517 1489 1417 -f 1417 1455 1517 -f 1581 1555 1489 -f 1489 1517 1581 -f 1629 1621 1555 -f 1555 1581 1629 -f 1671 1665 1621 -f 1621 1629 1671 -f 1893 1881 1665 -f 1665 1671 1893 -f 1403 1338 1334 -f 1334 1398 1403 -f 1413 1364 1338 -f 1338 1403 1413 -f 1437 1382 1364 -f 1364 1413 1437 -f 1477 1409 1382 -f 1382 1437 1477 -f 1515 1455 1409 -f 1409 1477 1515 -f 1563 1517 1455 -f 1455 1515 1563 -f 1605 1581 1517 -f 1517 1563 1605 -f 1645 1629 1581 -f 1581 1605 1645 -f 1679 1671 1629 -f 1629 1645 1679 -f 1900 1893 1671 -f 1671 1679 1900 -f 1482 1403 1398 -f 1398 1478 1482 -f 1496 1413 1403 -f 1403 1482 1496 -f 1511 1437 1413 -f 1413 1496 1511 -f 1539 1477 1437 -f 1437 1511 1539 -f 1579 1515 1477 -f 1477 1539 1579 -f 1599 1563 1515 -f 1515 1579 1599 -f 1631 1605 1563 -f 1563 1599 1631 -f 1653 1645 1605 -f 1605 1631 1653 -f 1681 1679 1645 -f 1645 1653 1681 -f 1902 1900 1679 -f 1679 1681 1902 -f 1544 1482 1478 -f 1478 1536 1544 -f 1548 1496 1482 -f 1482 1544 1548 -f 1568 1511 1496 -f 1496 1548 1568 -f 1584 1539 1511 -f 1511 1568 1584 -f 1602 1579 1539 -f 1539 1584 1602 -f 1627 1599 1579 -f 1579 1602 1627 -f 1649 1631 1599 -f 1599 1627 1649 -f 1669 1653 1631 -f 1631 1649 1669 -f 1689 1681 1653 -f 1653 1669 1689 -f 1921 1902 1681 -f 1681 1689 1921 -f 1560 1544 1536 -f 1536 1552 1560 -f 1572 1548 1544 -f 1544 1560 1572 -f 1582 1568 1548 -f 1548 1572 1582 -f 1594 1584 1568 -f 1568 1582 1594 -f 1610 1602 1584 -f 1584 1594 1610 -f 1632 1627 1602 -f 1602 1610 1632 -f 1651 1649 1627 -f 1627 1632 1651 -f 1673 1669 1649 -f 1649 1651 1673 -f 1691 1689 1669 -f 1669 1673 1691 -f 1922 1921 1689 -f 1689 1691 1922 -f 1508 1560 1552 -f 1552 1500 1508 -f 1522 1572 1560 -f 1560 1508 1522 -f 1542 1582 1572 -f 1572 1522 1542 -f 1566 1594 1582 -f 1582 1542 1566 -f 1590 1610 1594 -f 1594 1566 1590 -f 1614 1632 1610 -f 1610 1590 1614 -f 1639 1651 1632 -f 1632 1614 1639 -f 1659 1673 1651 -f 1651 1639 1659 -f 1685 1691 1673 -f 1673 1659 1685 -f 1928 1922 1691 -f 1691 1685 1928 -f 1888 1887 1937 -f 1888 1937 1961 -f 1888 1961 1983 -f 1888 1983 2007 -f 1888 2007 2031 -f 1888 2031 2049 -f 1888 2049 2077 -f 1888 2077 2097 -f 1888 2097 2105 -f 1888 2105 2111 -f 1949 1937 1887 -f 1887 1885 1949 -f 1989 1961 1937 -f 1937 1949 1989 -f 2037 1983 1961 -f 1961 1989 2037 -f 2095 2007 1983 -f 1983 2037 2095 -f 2143 2031 2007 -f 2007 2095 2143 -f 2201 2049 2031 -f 2031 2143 2201 -f 2227 2077 2049 -f 2049 2201 2227 -f 2250 2097 2077 -f 2077 2227 2250 -f 2258 2105 2097 -f 2097 2250 2258 -f 2262 2111 2105 -f 2105 2258 2262 -f 1957 1949 1885 -f 1885 1883 1957 -f 2001 1989 1949 -f 1949 1957 2001 -f 2066 2037 1989 -f 1989 2001 2066 -f 2133 2095 2037 -f 2037 2066 2133 -f 2205 2143 2095 -f 2095 2133 2205 -f 2244 2201 2143 -f 2143 2205 2244 -f 2280 2227 2201 -f 2201 2244 2280 -f 2301 2250 2227 -f 2227 2280 2301 -f 2311 2258 2250 -f 2250 2301 2311 -f 2314 2262 2258 -f 2258 2311 2314 -f 1959 1957 1883 -f 1883 1880 1959 -f 2003 2001 1957 -f 1957 1959 2003 -f 2069 2066 2001 -f 2001 2003 2069 -f 2135 2133 2066 -f 2066 2069 2135 -f 2207 2205 2133 -f 2133 2135 2207 -f 2246 2244 2205 -f 2205 2207 2246 -f 2282 2280 2244 -f 2244 2246 2282 -f 2303 2301 2280 -f 2280 2282 2303 -f 2313 2311 2301 -f 2301 2303 2313 -f 2317 2314 2311 -f 2311 2313 2317 -f 1953 1959 1880 -f 1880 1877 1953 -f 1995 2003 1959 -f 1959 1953 1995 -f 2043 2069 2003 -f 2003 1995 2043 -f 2107 2135 2069 -f 2069 2043 2107 -f 2169 2207 2135 -f 2135 2107 2169 -f 2215 2246 2207 -f 2207 2169 2215 -f 2242 2282 2246 -f 2246 2215 2242 -f 2260 2303 2282 -f 2282 2242 2260 -f 2286 2313 2303 -f 2303 2260 2286 -f 2290 2317 2313 -f 2313 2286 2290 -f 1945 1953 1877 -f 1877 1875 1945 -f 1979 1995 1953 -f 1953 1945 1979 -f 2019 2043 1995 -f 1995 1979 2019 -f 2061 2107 2043 -f 2043 2019 2061 -f 2109 2169 2107 -f 2107 2061 2109 -f 2147 2215 2169 -f 2169 2109 2147 -f 2187 2242 2215 -f 2215 2147 2187 -f 2211 2260 2242 -f 2242 2187 2211 -f 2221 2286 2260 -f 2260 2211 2221 -f 2224 2290 2286 -f 2286 2221 2224 -f 1943 1945 1875 -f 1875 1873 1943 -f 1971 1979 1945 -f 1945 1943 1971 -f 1993 2019 1979 -f 1979 1971 1993 -f 2025 2061 2019 -f 2019 1993 2025 -f 2045 2109 2061 -f 2061 2025 2045 -f 2085 2147 2109 -f 2109 2045 2085 -f 2113 2187 2147 -f 2147 2085 2113 -f 2126 2211 2187 -f 2187 2113 2126 -f 2140 2221 2211 -f 2211 2126 2140 -f 2144 2224 2221 -f 2221 2140 2144 -f 1935 1943 1873 -f 1873 1871 1935 -f 1955 1971 1943 -f 1943 1935 1955 -f 1975 1993 1971 -f 1971 1955 1975 -f 1997 2025 1993 -f 1993 1975 1997 -f 2020 2045 2025 -f 2025 1997 2020 -f 2038 2085 2045 -f 2045 2020 2038 -f 2054 2113 2085 -f 2085 2038 2054 -f 2074 2126 2113 -f 2113 2054 2074 -f 2078 2140 2126 -f 2126 2074 2078 -f 2086 2144 2140 -f 2140 2078 2086 -f 1933 1935 1871 -f 1871 1869 1933 -f 1951 1955 1935 -f 1935 1933 1951 -f 1973 1975 1955 -f 1955 1951 1973 -f 1990 1997 1975 -f 1975 1973 1990 -f 2012 2020 1997 -f 1997 1990 2012 -f 2028 2038 2020 -f 2020 2012 2028 -f 2040 2054 2038 -f 2038 2028 2040 -f 2050 2074 2054 -f 2054 2040 2050 -f 2062 2078 2074 -f 2074 2050 2062 -f 2070 2086 2078 -f 2078 2062 2070 -f 1939 1933 1869 -f 1869 1866 1939 -f 1965 1951 1933 -f 1933 1939 1965 -f 1985 1973 1951 -f 1951 1965 1985 -f 2008 1990 1973 -f 1973 1985 2008 -f 2032 2012 1990 -f 1990 2008 2032 -f 2056 2028 2012 -f 2012 2032 2056 -f 2080 2040 2028 -f 2028 2056 2080 -f 2100 2050 2040 -f 2040 2080 2100 -f 2114 2062 2050 -f 2050 2100 2114 -f 2122 2070 2062 -f 2062 2114 2122 -f 2232 2116 2124 -f 2124 2236 2232 -f 2218 2102 2116 -f 2116 2232 2218 -f 2199 2082 2102 -f 2102 2218 2199 -f 2150 2058 2082 -f 2082 2199 2150 -f 2120 2034 2058 -f 2058 2150 2120 -f 2064 2010 2034 -f 2034 2120 2064 -f 2023 1986 2010 -f 2010 2064 2023 -f 1980 1966 1986 -f 1986 2023 1980 -f 1946 1940 1966 -f 1966 1980 1946 -f 1862 1730 1940 -f 1940 1946 1862 -f 2332 2232 2236 -f 2236 2336 2332 -f 2322 2218 2232 -f 2232 2332 2322 -f 2306 2199 2218 -f 2218 2322 2306 -f 2275 2150 2199 -f 2199 2306 2275 -f 2234 2120 2150 -f 2150 2275 2234 -f 2170 2064 2120 -f 2120 2234 2170 -f 2093 2023 2064 -f 2064 2170 2093 -f 2016 1980 2023 -f 2023 2093 2016 -f 1968 1946 1980 -f 1980 2016 1968 -f 1858 1862 1946 -f 1946 1968 1858 -f 2409 2332 2336 -f 2336 2413 2409 -f 2400 2322 2332 -f 2332 2409 2400 -f 2376 2306 2322 -f 2322 2400 2376 -f 2349 2275 2306 -f 2306 2376 2349 -f 2324 2234 2275 -f 2275 2349 2324 -f 2271 2170 2234 -f 2234 2324 2271 -f 2185 2093 2170 -f 2170 2271 2185 -f 2072 2016 2093 -f 2093 2185 2072 -f 1976 1968 2016 -f 2016 2072 1976 -f 1729 1858 1968 -f 1968 1976 1729 -f 2488 2409 2413 -f 2413 2498 2488 -f 2470 2400 2409 -f 2409 2488 2470 -f 2444 2376 2400 -f 2400 2470 2444 -f 2418 2349 2376 -f 2376 2444 2418 -f 2384 2324 2349 -f 2349 2418 2384 -f 2338 2271 2324 -f 2324 2384 2338 -f 2269 2185 2271 -f 2271 2338 2269 -f 2138 2072 2185 -f 2185 2269 2138 -f 1998 1976 2072 -f 2072 2138 1998 -f 1722 1729 1976 -f 1976 1998 1722 -f 2559 2488 2498 -f 2498 2569 2559 -f 2549 2470 2488 -f 2488 2559 2549 -f 2531 2444 2470 -f 2470 2549 2531 -f 2492 2418 2444 -f 2444 2531 2492 -f 2436 2384 2418 -f 2418 2492 2436 -f 2394 2338 2384 -f 2384 2436 2394 -f 2326 2269 2338 -f 2338 2394 2326 -f 2212 2138 2269 -f 2269 2326 2212 -f 2026 1998 2138 -f 2138 2212 2026 -f 1850 1722 1998 -f 1998 2026 1850 -f 2653 2559 2569 -f 2569 2655 2653 -f 2631 2549 2559 -f 2559 2653 2631 -f 2593 2531 2549 -f 2549 2631 2593 -f 2551 2492 2531 -f 2531 2593 2551 -f 2510 2436 2492 -f 2492 2551 2510 -f 2432 2394 2436 -f 2436 2510 2432 -f 2366 2326 2394 -f 2394 2432 2366 -f 2263 2212 2326 -f 2326 2366 2263 -f 2052 2026 2212 -f 2212 2263 2052 -f 1726 1850 2026 -f 2026 2052 1726 -f 2720 2653 2655 -f 2655 2726 2720 -f 2697 2631 2653 -f 2653 2720 2697 -f 2662 2593 2631 -f 2631 2697 2662 -f 2607 2551 2593 -f 2593 2662 2607 -f 2547 2510 2551 -f 2551 2607 2547 -f 2484 2432 2510 -f 2510 2547 2484 -f 2405 2366 2432 -f 2432 2484 2405 -f 2308 2263 2366 -f 2366 2405 2308 -f 2090 2052 2263 -f 2263 2308 2090 -f 1719 1726 2052 -f 2052 2090 1719 -f 2787 2720 2726 -f 2726 2795 2787 -f 2759 2697 2720 -f 2720 2787 2759 -f 2713 2662 2697 -f 2697 2759 2713 -f 2657 2607 2662 -f 2662 2713 2657 -f 2589 2547 2607 -f 2607 2657 2589 -f 2525 2484 2547 -f 2547 2589 2525 -f 2422 2405 2484 -f 2484 2525 2422 -f 2330 2308 2405 -f 2405 2422 2330 -f 2118 2090 2308 -f 2308 2330 2118 -f 1700 1719 2090 -f 2090 2118 1700 -f 2834 2787 2795 -f 2795 2844 2834 -f 2798 2759 2787 -f 2787 2834 2798 -f 2750 2713 2759 -f 2759 2798 2750 -f 2690 2657 2713 -f 2713 2750 2690 -f 2624 2589 2657 -f 2657 2690 2624 -f 2536 2525 2589 -f 2589 2624 2536 -f 2441 2422 2525 -f 2525 2536 2441 -f 2340 2330 2422 -f 2422 2441 2340 -f 2128 2118 2330 -f 2330 2340 2128 -f 1825 1700 2118 -f 2118 2128 1825 -f 2847 2834 2844 -f 2844 2857 2847 -f 2821 2798 2834 -f 2834 2847 2821 -f 2765 2750 2798 -f 2798 2821 2765 -f 2703 2690 2750 -f 2750 2765 2703 -f 2637 2624 2690 -f 2690 2703 2637 -f 2543 2536 2624 -f 2624 2637 2543 -f 2446 2441 2536 -f 2536 2543 2446 -f 2344 2340 2441 -f 2441 2446 2344 -f 2136 2128 2340 -f 2340 2344 2136 -f 1713 1825 2128 -f 2128 2136 1713 -f 1676 1682 1864 -f 1864 1862 1676 -f 1642 1656 1682 -f 1682 1676 1642 -f 1601 1636 1656 -f 1656 1642 1601 -f 1558 1612 1636 -f 1636 1601 1558 -f 1502 1588 1612 -f 1612 1558 1502 -f 1472 1564 1588 -f 1588 1502 1472 -f 1425 1540 1564 -f 1564 1472 1425 -f 1404 1520 1540 -f 1540 1425 1404 -f 1390 1506 1520 -f 1520 1404 1390 -f 1387 1498 1506 -f 1506 1390 1387 -f 1654 1676 1862 -f 1862 1859 1654 -f 1606 1642 1676 -f 1676 1654 1606 -f 1531 1601 1642 -f 1642 1606 1531 -f 1452 1558 1601 -f 1601 1531 1452 -f 1388 1502 1558 -f 1558 1452 1388 -f 1347 1472 1502 -f 1502 1388 1347 -f 1316 1425 1472 -f 1472 1347 1316 -f 1300 1404 1425 -f 1425 1316 1300 -f 1290 1390 1404 -f 1404 1300 1290 -f 1286 1387 1390 -f 1390 1290 1286 -f 1646 1654 1859 -f 1859 1856 1646 -f 1550 1606 1654 -f 1654 1646 1550 -f 1439 1531 1606 -f 1606 1550 1439 -f 1351 1452 1531 -f 1531 1439 1351 -f 1298 1388 1452 -f 1452 1351 1298 -f 1275 1347 1388 -f 1388 1298 1275 -f 1246 1316 1347 -f 1347 1275 1246 -f 1222 1300 1316 -f 1316 1246 1222 -f 1215 1290 1300 -f 1300 1222 1215 -f 1211 1286 1290 -f 1290 1215 1211 -f 1624 1646 1856 -f 1856 1854 1624 -f 1484 1550 1646 -f 1646 1624 1484 -f 1353 1439 1550 -f 1550 1484 1353 -f 1284 1351 1439 -f 1439 1353 1284 -f 1238 1298 1351 -f 1351 1284 1238 -f 1204 1275 1298 -f 1298 1238 1204 -f 1178 1246 1275 -f 1275 1204 1178 -f 1152 1222 1246 -f 1246 1178 1152 -f 1134 1215 1222 -f 1222 1152 1134 -f 1124 1211 1215 -f 1215 1134 1124 -f 1596 1624 1854 -f 1854 1851 1596 -f 1410 1484 1624 -f 1624 1596 1410 -f 1296 1353 1484 -f 1484 1410 1296 -f 1228 1284 1353 -f 1353 1296 1228 -f 1186 1238 1284 -f 1284 1228 1186 -f 1130 1204 1238 -f 1238 1186 1130 -f 1091 1178 1204 -f 1204 1130 1091 -f 1073 1152 1178 -f 1178 1091 1073 -f 1063 1134 1152 -f 1152 1073 1063 -f 1053 1124 1134 -f 1134 1063 1053 -f 1570 1596 1851 -f 1851 1848 1570 -f 1359 1410 1596 -f 1596 1570 1359 -f 1256 1296 1410 -f 1410 1359 1256 -f 1190 1228 1296 -f 1296 1256 1190 -f 1112 1186 1228 -f 1228 1190 1112 -f 1071 1130 1186 -f 1186 1112 1071 -f 1029 1091 1130 -f 1130 1071 1029 -f 991 1073 1091 -f 1091 1029 991 -f 969 1063 1073 -f 1073 991 969 -f 967 1053 1063 -f 1063 969 967 -f 1532 1570 1848 -f 1848 1846 1532 -f 1314 1359 1570 -f 1570 1532 1314 -f 1219 1256 1359 -f 1359 1314 1219 -f 1138 1190 1256 -f 1256 1219 1138 -f 1075 1112 1190 -f 1190 1138 1075 -f 1015 1071 1112 -f 1112 1075 1015 -f 962 1029 1071 -f 1071 1015 962 -f 925 991 1029 -f 1029 962 925 -f 904 969 991 -f 991 925 904 -f 898 967 969 -f 969 904 898 -f 1504 1532 1846 -f 1846 1832 1504 -f 1292 1314 1532 -f 1532 1504 1292 -f 1200 1219 1314 -f 1314 1292 1200 -f 1097 1138 1219 -f 1219 1200 1097 -f 1033 1075 1138 -f 1138 1097 1033 -f 965 1015 1075 -f 1075 1033 965 -f 909 962 1015 -f 1015 965 909 -f 863 925 962 -f 962 909 863 -f 835 904 925 -f 925 863 835 -f 827 898 904 -f 904 835 827 -f 1494 1504 1832 -f 1832 1824 1494 -f 1282 1292 1504 -f 1504 1494 1282 -f 1183 1200 1292 -f 1292 1282 1183 -f 1088 1097 1200 -f 1200 1183 1088 -f 1000 1033 1097 -f 1097 1088 1000 -f 934 965 1033 -f 1033 1000 934 -f 874 909 965 -f 965 934 874 -f 826 863 909 -f 909 874 826 -f 790 835 863 -f 863 826 790 -f 780 827 835 -f 835 790 780 -f 1486 1494 1824 -f 1824 1814 1486 -f 1278 1282 1494 -f 1494 1486 1278 -f 1176 1183 1282 -f 1282 1278 1176 -f 1079 1088 1183 -f 1183 1176 1079 -f 985 1000 1088 -f 1088 1079 985 -f 919 934 1000 -f 1000 985 919 -f 857 874 934 -f 934 919 857 -f 801 826 874 -f 874 857 801 -f 775 790 826 -f 826 801 775 -f 765 780 790 -f 790 775 765 -f 1391 1507 1499 -f 1499 1387 1391 -f 1405 1521 1507 -f 1507 1391 1405 -f 1424 1541 1521 -f 1521 1405 1424 -f 1473 1565 1541 -f 1541 1424 1473 -f 1503 1589 1565 -f 1565 1473 1503 -f 1559 1613 1589 -f 1589 1503 1559 -f 1600 1637 1613 -f 1613 1559 1600 -f 1643 1657 1637 -f 1637 1600 1643 -f 1677 1683 1657 -f 1657 1643 1677 -f 1863 1892 1683 -f 1683 1677 1863 -f 1291 1391 1387 -f 1387 1287 1291 -f 1301 1405 1391 -f 1391 1291 1301 -f 1317 1424 1405 -f 1405 1301 1317 -f 1348 1473 1424 -f 1424 1317 1348 -f 1389 1503 1473 -f 1473 1348 1389 -f 1453 1559 1503 -f 1503 1389 1453 -f 1530 1600 1559 -f 1559 1453 1530 -f 1607 1643 1600 -f 1600 1530 1607 -f 1655 1677 1643 -f 1643 1607 1655 -f 1861 1863 1677 -f 1677 1655 1861 -f 1214 1291 1287 -f 1287 1210 1214 -f 1223 1301 1291 -f 1291 1214 1223 -f 1247 1317 1301 -f 1301 1223 1247 -f 1274 1348 1317 -f 1317 1247 1274 -f 1299 1389 1348 -f 1348 1274 1299 -f 1352 1453 1389 -f 1389 1299 1352 -f 1438 1530 1453 -f 1453 1352 1438 -f 1551 1607 1530 -f 1530 1438 1551 -f 1647 1655 1607 -f 1607 1551 1647 -f 1891 1861 1655 -f 1655 1647 1891 -f 1135 1214 1210 -f 1210 1125 1135 -f 1153 1223 1214 -f 1214 1135 1153 -f 1179 1247 1223 -f 1223 1153 1179 -f 1205 1274 1247 -f 1247 1179 1205 -f 1239 1299 1274 -f 1274 1205 1239 -f 1285 1352 1299 -f 1299 1239 1285 -f 1354 1438 1352 -f 1352 1285 1354 -f 1485 1551 1438 -f 1438 1354 1485 -f 1625 1647 1551 -f 1551 1485 1625 -f 1901 1891 1647 -f 1647 1625 1901 -f 1064 1135 1125 -f 1125 1054 1064 -f 1074 1153 1135 -f 1135 1064 1074 -f 1092 1179 1153 -f 1153 1074 1092 -f 1131 1205 1179 -f 1179 1092 1131 -f 1187 1239 1205 -f 1205 1131 1187 -f 1229 1285 1239 -f 1239 1187 1229 -f 1297 1354 1285 -f 1285 1229 1297 -f 1411 1485 1354 -f 1354 1297 1411 -f 1597 1625 1485 -f 1485 1411 1597 -f 1853 1901 1625 -f 1625 1597 1853 -f 970 1064 1054 -f 1054 968 970 -f 992 1074 1064 -f 1064 970 992 -f 1030 1092 1074 -f 1074 992 1030 -f 1072 1131 1092 -f 1092 1030 1072 -f 1113 1187 1131 -f 1131 1072 1113 -f 1191 1229 1187 -f 1187 1113 1191 -f 1257 1297 1229 -f 1229 1191 1257 -f 1360 1411 1297 -f 1297 1257 1360 -f 1571 1597 1411 -f 1411 1360 1571 -f 1899 1853 1597 -f 1597 1571 1899 -f 903 970 968 -f 968 897 903 -f 926 992 970 -f 970 903 926 -f 961 1030 992 -f 992 926 961 -f 1016 1072 1030 -f 1030 961 1016 -f 1076 1113 1072 -f 1072 1016 1076 -f 1139 1191 1113 -f 1113 1076 1139 -f 1218 1257 1191 -f 1191 1139 1218 -f 1315 1360 1257 -f 1257 1218 1315 -f 1533 1571 1360 -f 1360 1315 1533 -f 1920 1899 1571 -f 1571 1533 1920 -f 836 903 897 -f 897 828 836 -f 864 926 903 -f 903 836 864 -f 910 961 926 -f 926 864 910 -f 966 1016 961 -f 961 910 966 -f 1034 1076 1016 -f 1016 966 1034 -f 1098 1139 1076 -f 1076 1034 1098 -f 1201 1218 1139 -f 1139 1098 1201 -f 1293 1315 1218 -f 1218 1201 1293 -f 1505 1533 1315 -f 1315 1293 1505 -f 1924 1920 1533 -f 1533 1505 1924 -f 789 836 828 -f 828 779 789 -f 825 864 836 -f 836 789 825 -f 873 910 864 -f 864 825 873 -f 933 966 910 -f 910 873 933 -f 999 1034 966 -f 966 933 999 -f 1087 1098 1034 -f 1034 999 1087 -f 1182 1201 1098 -f 1098 1087 1182 -f 1283 1293 1201 -f 1201 1182 1283 -f 1495 1505 1293 -f 1293 1283 1495 -f 1826 1924 1505 -f 1505 1495 1826 -f 776 789 779 -f 779 766 776 -f 802 825 789 -f 789 776 802 -f 858 873 825 -f 825 802 858 -f 920 933 873 -f 873 858 920 -f 986 999 933 -f 933 920 986 -f 1080 1087 999 -f 999 986 1080 -f 1177 1182 1087 -f 1087 1080 1177 -f 1279 1283 1182 -f 1182 1177 1279 -f 1487 1495 1283 -f 1283 1279 1487 -f 1914 1826 1495 -f 1495 1487 1914 -f 1947 1941 1867 -f 1867 1863 1947 -f 1981 1967 1941 -f 1941 1947 1981 -f 2022 1987 1967 -f 1967 1981 2022 -f 2065 2011 1987 -f 1987 2022 2065 -f 2121 2035 2011 -f 2011 2065 2121 -f 2151 2059 2035 -f 2035 2121 2151 -f 2198 2083 2059 -f 2059 2151 2198 -f 2219 2103 2083 -f 2083 2198 2219 -f 2233 2117 2103 -f 2103 2219 2233 -f 2236 2125 2117 -f 2117 2233 2236 -f 1969 1947 1863 -f 1863 1860 1969 -f 2017 1981 1947 -f 1947 1969 2017 -f 2092 2022 1981 -f 1981 2017 2092 -f 2171 2065 2022 -f 2022 2092 2171 -f 2235 2121 2065 -f 2065 2171 2235 -f 2276 2151 2121 -f 2121 2235 2276 -f 2307 2198 2151 -f 2151 2276 2307 -f 2323 2219 2198 -f 2198 2307 2323 -f 2333 2233 2219 -f 2219 2323 2333 -f 2337 2236 2233 -f 2233 2333 2337 -f 1977 1969 1860 -f 1860 1857 1977 -f 2073 2017 1969 -f 1969 1977 2073 -f 2184 2092 2017 -f 2017 2073 2184 -f 2272 2171 2092 -f 2092 2184 2272 -f 2325 2235 2171 -f 2171 2272 2325 -f 2348 2276 2235 -f 2235 2325 2348 -f 2377 2307 2276 -f 2276 2348 2377 -f 2401 2323 2307 -f 2307 2377 2401 -f 2408 2333 2323 -f 2323 2401 2408 -f 2412 2337 2333 -f 2333 2408 2412 -f 1999 1977 1857 -f 1857 1855 1999 -f 2139 2073 1977 -f 1977 1999 2139 -f 2270 2184 2073 -f 2073 2139 2270 -f 2339 2272 2184 -f 2184 2270 2339 -f 2385 2325 2272 -f 2272 2339 2385 -f 2419 2348 2325 -f 2325 2385 2419 -f 2445 2377 2348 -f 2348 2419 2445 -f 2471 2401 2377 -f 2377 2445 2471 -f 2489 2408 2401 -f 2401 2471 2489 -f 2499 2412 2408 -f 2408 2489 2499 -f 2027 1999 1855 -f 1855 1852 2027 -f 2213 2139 1999 -f 1999 2027 2213 -f 2327 2270 2139 -f 2139 2213 2327 -f 2395 2339 2270 -f 2270 2327 2395 -f 2437 2385 2339 -f 2339 2395 2437 -f 2493 2419 2385 -f 2385 2437 2493 -f 2532 2445 2419 -f 2419 2493 2532 -f 2550 2471 2445 -f 2445 2532 2550 -f 2560 2489 2471 -f 2471 2550 2560 -f 2570 2499 2489 -f 2489 2560 2570 -f 2053 2027 1852 -f 1852 1849 2053 -f 2264 2213 2027 -f 2027 2053 2264 -f 2367 2327 2213 -f 2213 2264 2367 -f 2433 2395 2327 -f 2327 2367 2433 -f 2511 2437 2395 -f 2395 2433 2511 -f 2552 2493 2437 -f 2437 2511 2552 -f 2594 2532 2493 -f 2493 2552 2594 -f 2632 2550 2532 -f 2532 2594 2632 -f 2654 2560 2550 -f 2550 2632 2654 -f 2656 2570 2560 -f 2560 2654 2656 -f 2091 2053 1849 -f 1849 1847 2091 -f 2309 2264 2053 -f 2053 2091 2309 -f 2404 2367 2264 -f 2264 2309 2404 -f 2485 2433 2367 -f 2367 2404 2485 -f 2548 2511 2433 -f 2433 2485 2548 -f 2608 2552 2511 -f 2511 2548 2608 -f 2661 2594 2552 -f 2552 2608 2661 -f 2698 2632 2594 -f 2594 2661 2698 -f 2719 2654 2632 -f 2632 2698 2719 -f 2725 2656 2654 -f 2654 2719 2725 -f 2119 2091 1847 -f 1847 1833 2119 -f 2331 2309 2091 -f 2091 2119 2331 -f 2423 2404 2309 -f 2309 2331 2423 -f 2526 2485 2404 -f 2404 2423 2526 -f 2590 2548 2485 -f 2485 2526 2590 -f 2658 2608 2548 -f 2548 2590 2658 -f 2714 2661 2608 -f 2608 2658 2714 -f 2760 2698 2661 -f 2661 2714 2760 -f 2788 2719 2698 -f 2698 2760 2788 -f 2796 2725 2719 -f 2719 2788 2796 -f 2129 2119 1833 -f 1833 1827 2129 -f 2341 2331 2119 -f 2119 2129 2341 -f 2440 2423 2331 -f 2331 2341 2440 -f 2535 2526 2423 -f 2423 2440 2535 -f 2623 2590 2526 -f 2526 2535 2623 -f 2689 2658 2590 -f 2590 2623 2689 -f 2749 2714 2658 -f 2658 2689 2749 -f 2797 2760 2714 -f 2714 2749 2797 -f 2833 2788 2760 -f 2760 2797 2833 -f 2843 2796 2788 -f 2788 2833 2843 -f 2137 2129 1827 -f 1827 1815 2137 -f 2345 2341 2129 -f 2129 2137 2345 -f 2447 2440 2341 -f 2341 2345 2447 -f 2544 2535 2440 -f 2440 2447 2544 -f 2638 2623 2535 -f 2535 2544 2638 -f 2704 2689 2623 -f 2623 2638 2704 -f 2766 2749 2689 -f 2689 2704 2766 -f 2822 2797 2749 -f 2749 2766 2822 -f 2848 2833 2797 -f 2797 2822 2848 -f 2858 2843 2833 -f 2833 2848 2858 -f 1735 2334 2329 -f 1735 2329 2321 -f 1735 2321 2305 -f 1735 2305 2274 -f 1735 2274 2231 -f 1735 2231 2167 -f 1735 2167 2089 -f 1735 2089 2014 -f 1735 2014 1962 -f 1735 1962 1733 -f 2515 2329 2334 -f 2334 2524 2515 -f 2495 2321 2329 -f 2329 2515 2495 -f 2456 2305 2321 -f 2321 2495 2456 -f 2429 2274 2305 -f 2305 2456 2429 -f 2399 2231 2274 -f 2274 2429 2399 -f 2347 2167 2231 -f 2231 2399 2347 -f 2292 2089 2167 -f 2167 2347 2292 -f 2148 2014 2089 -f 2089 2292 2148 -f 2004 1962 2014 -f 2014 2148 2004 -f 1739 1733 1962 -f 1962 2004 1739 -f 2647 2515 2524 -f 2524 2649 2647 -f 2621 2495 2515 -f 2515 2647 2621 -f 2584 2456 2495 -f 2495 2621 2584 -f 2541 2429 2456 -f 2456 2584 2541 -f 2502 2399 2429 -f 2429 2541 2502 -f 2426 2347 2399 -f 2399 2502 2426 -f 2352 2292 2347 -f 2347 2426 2352 -f 2255 2148 2292 -f 2292 2352 2255 -f 2046 2004 2148 -f 2148 2255 2046 -f 1702 1739 2004 -f 2004 2046 1702 -f 2746 2647 2649 -f 2649 2757 2746 -f 2721 2621 2647 -f 2647 2746 2721 -f 2681 2584 2621 -f 2621 2721 2681 -f 2639 2541 2584 -f 2584 2681 2639 -f 2557 2502 2541 -f 2541 2639 2557 -f 2505 2426 2502 -f 2502 2557 2505 -f 2415 2352 2426 -f 2426 2505 2415 -f 2318 2255 2352 -f 2352 2415 2318 -f 2098 2046 2255 -f 2255 2318 2098 -f 1745 1702 2046 -f 2046 2098 1745 -f 2840 2746 2757 -f 2757 2849 2840 -f 2808 2721 2746 -f 2746 2840 2808 -f 2756 2681 2721 -f 2721 2808 2756 -f 2696 2639 2681 -f 2681 2756 2696 -f 2626 2557 2639 -f 2639 2696 2626 -f 2538 2505 2557 -f 2557 2626 2538 -f 2443 2415 2505 -f 2505 2538 2443 -f 2342 2318 2415 -f 2415 2443 2342 -f 2131 2098 2318 -f 2318 2342 2131 -f 1904 1745 2098 -f 2098 2131 1904 -f 2906 2840 2849 -f 2849 2925 2906 -f 2867 2808 2840 -f 2840 2906 2867 -f 2818 2756 2808 -f 2808 2867 2818 -f 2736 2696 2756 -f 2756 2818 2736 -f 2667 2626 2696 -f 2696 2736 2667 -f 2565 2538 2626 -f 2626 2667 2565 -f 2475 2443 2538 -f 2538 2565 2475 -f 2356 2342 2443 -f 2443 2475 2356 -f 2156 2131 2342 -f 2342 2356 2156 -f 1704 1904 2131 -f 2131 2156 1704 -f 2976 2906 2925 -f 2925 2987 2976 -f 2914 2867 2906 -f 2906 2976 2914 -f 2852 2818 2867 -f 2867 2914 2852 -f 2772 2736 2818 -f 2818 2852 2772 -f 2688 2667 2736 -f 2736 2772 2688 -f 2592 2565 2667 -f 2667 2688 2592 -f 2497 2475 2565 -f 2565 2592 2497 -f 2372 2356 2475 -f 2475 2497 2372 -f 2176 2156 2356 -f 2356 2372 2176 -f 1752 1704 2156 -f 2156 2176 1752 -f 2993 2976 2987 -f 2987 3011 2993 -f 2952 2914 2976 -f 2976 2993 2952 -f 2874 2852 2914 -f 2914 2952 2874 -f 2794 2772 2852 -f 2852 2874 2794 -f 2702 2688 2772 -f 2772 2794 2702 -f 2604 2592 2688 -f 2688 2702 2604 -f 2509 2497 2592 -f 2592 2604 2509 -f 2380 2372 2497 -f 2497 2509 2380 -f 2182 2176 2372 -f 2372 2380 2182 -f 1723 1752 2176 -f 2176 2182 1723 -f 3000 2993 3011 -f 3011 3020 3000 -f 2967 2952 2993 -f 2993 3000 2967 -f 2879 2874 2952 -f 2952 2967 2879 -f 2799 2794 2874 -f 2874 2879 2799 -f 2707 2702 2794 -f 2794 2799 2707 -f 2605 2604 2702 -f 2702 2707 2605 -f 2512 2509 2604 -f 2604 2605 2512 -f 2382 2380 2509 -f 2509 2512 2382 -f 2188 2182 2380 -f 2380 2382 2188 -f 1699 1723 2182 -f 2182 2188 1699 -f 3006 3000 3020 -f 3020 3022 3006 -f 2972 2967 3000 -f 3000 3006 2972 -f 2888 2879 2967 -f 2967 2972 2888 -f 2804 2799 2879 -f 2879 2888 2804 -f 2710 2707 2799 -f 2799 2804 2710 -f 2613 2605 2707 -f 2707 2710 2613 -f 2520 2512 2605 -f 2605 2613 2520 -f 2388 2382 2512 -f 2512 2520 2388 -f 2192 2188 2382 -f 2382 2388 2192 -f 1760 1699 2188 -f 2188 2192 1760 -f 1735 1737 1660 -f 1735 1660 1608 -f 1735 1608 1535 -f 1735 1535 1457 -f 1735 1457 1393 -f 1735 1393 1350 -f 1735 1350 1319 -f 1735 1319 1303 -f 1735 1303 1295 -f 1735 1295 1288 -f 1618 1660 1737 -f 1737 1739 1618 -f 1474 1608 1660 -f 1660 1618 1474 -f 1332 1535 1608 -f 1608 1474 1332 -f 1277 1457 1535 -f 1535 1332 1277 -f 1225 1393 1457 -f 1457 1277 1225 -f 1195 1350 1393 -f 1393 1225 1195 -f 1166 1319 1350 -f 1350 1195 1166 -f 1129 1303 1319 -f 1319 1166 1129 -f 1109 1295 1303 -f 1303 1129 1109 -f 1099 1288 1295 -f 1295 1109 1099 -f 1576 1618 1739 -f 1739 1741 1576 -f 1367 1474 1618 -f 1618 1576 1367 -f 1270 1332 1474 -f 1474 1367 1270 -f 1196 1277 1332 -f 1332 1270 1196 -f 1120 1225 1277 -f 1277 1196 1120 -f 1081 1195 1225 -f 1225 1120 1081 -f 1040 1166 1195 -f 1195 1081 1040 -f 1001 1129 1166 -f 1166 1040 1001 -f 975 1109 1129 -f 1129 1001 975 -f 973 1099 1109 -f 1109 975 973 -f 1524 1576 1741 -f 1741 1744 1524 -f 1304 1367 1576 -f 1576 1524 1304 -f 1209 1270 1367 -f 1367 1304 1209 -f 1119 1196 1270 -f 1270 1209 1119 -f 1065 1120 1196 -f 1196 1119 1065 -f 983 1081 1120 -f 1120 1065 983 -f 941 1040 1081 -f 1081 983 941 -f 901 1001 1040 -f 1040 941 901 -f 878 975 1001 -f 1001 901 878 -f 865 973 975 -f 975 878 865 -f 1493 1524 1744 -f 1744 1747 1493 -f 1280 1304 1524 -f 1524 1493 1280 -f 1181 1209 1304 -f 1304 1280 1181 -f 1086 1119 1209 -f 1209 1181 1086 -f 998 1065 1119 -f 1119 1086 998 -f 928 983 1065 -f 1065 998 928 -f 868 941 983 -f 983 928 868 -f 816 901 941 -f 941 868 816 -f 784 878 901 -f 901 816 784 -f 773 865 878 -f 878 784 773 -f 1466 1493 1747 -f 1747 1749 1466 -f 1266 1280 1493 -f 1493 1466 1266 -f 1149 1181 1280 -f 1280 1266 1149 -f 1057 1086 1181 -f 1181 1149 1057 -f 955 998 1086 -f 1086 1057 955 -f 888 928 998 -f 998 955 888 -f 806 868 928 -f 928 888 806 -f 755 816 868 -f 868 806 755 -f 718 784 816 -f 816 755 718 -f 697 773 784 -f 784 718 697 -f 1446 1466 1749 -f 1749 1753 1446 -f 1250 1266 1466 -f 1466 1446 1250 -f 1127 1149 1266 -f 1266 1250 1127 -f 1032 1057 1149 -f 1149 1127 1032 -f 936 955 1057 -f 1057 1032 936 -f 852 888 955 -f 955 936 852 -f 772 806 888 -f 888 852 772 -f 710 755 806 -f 806 772 710 -f 648 718 755 -f 755 710 648 -f 637 697 718 -f 718 648 637 -f 1440 1446 1753 -f 1753 1755 1440 -f 1242 1250 1446 -f 1446 1440 1242 -f 1115 1127 1250 -f 1250 1242 1115 -f 1020 1032 1127 -f 1127 1115 1020 -f 922 936 1032 -f 1032 1020 922 -f 830 852 936 -f 936 922 830 -f 750 772 852 -f 852 830 750 -f 672 710 772 -f 772 750 672 -f 631 648 710 -f 710 672 631 -f 613 637 648 -f 648 631 613 -f 1434 1440 1755 -f 1755 1757 1434 -f 1240 1242 1440 -f 1440 1434 1240 -f 1110 1115 1242 -f 1242 1240 1110 -f 1017 1020 1115 -f 1115 1110 1017 -f 915 922 1020 -f 1020 1017 915 -f 823 830 922 -f 922 915 823 -f 743 750 830 -f 830 823 743 -f 655 672 750 -f 750 743 655 -f 622 631 672 -f 672 655 622 -f 602 613 631 -f 631 622 602 -f 1428 1434 1757 -f 1757 1760 1428 -f 1232 1240 1434 -f 1434 1428 1232 -f 1105 1110 1240 -f 1240 1232 1105 -f 1010 1017 1110 -f 1110 1105 1010 -f 913 915 1017 -f 1017 1010 913 -f 821 823 915 -f 915 913 821 -f 736 743 823 -f 823 821 736 -f 652 655 743 -f 743 736 652 -f 619 622 655 -f 655 652 619 -f 601 602 622 -f 622 619 601 -f 1735 1289 1294 -f 1735 1294 1302 -f 1735 1302 1318 -f 1735 1318 1349 -f 1735 1349 1392 -f 1735 1392 1456 -f 1735 1456 1534 -f 1735 1534 1609 -f 1735 1609 1661 -f 1735 1661 1889 -f 1108 1294 1289 -f 1289 1099 1108 -f 1128 1302 1294 -f 1294 1108 1128 -f 1167 1318 1302 -f 1302 1128 1167 -f 1194 1349 1318 -f 1318 1167 1194 -f 1224 1392 1349 -f 1349 1194 1224 -f 1276 1456 1392 -f 1392 1224 1276 -f 1331 1534 1456 -f 1456 1276 1331 -f 1475 1609 1534 -f 1534 1331 1475 -f 1619 1661 1609 -f 1609 1475 1619 -f 1738 1889 1661 -f 1661 1619 1738 -f 976 1108 1099 -f 1099 974 976 -f 1002 1128 1108 -f 1108 976 1002 -f 1039 1167 1128 -f 1128 1002 1039 -f 1082 1194 1167 -f 1167 1039 1082 -f 1121 1224 1194 -f 1194 1082 1121 -f 1197 1276 1224 -f 1224 1121 1197 -f 1271 1331 1276 -f 1276 1197 1271 -f 1368 1475 1331 -f 1331 1271 1368 -f 1577 1619 1475 -f 1475 1368 1577 -f 1903 1738 1619 -f 1619 1577 1903 -f 877 976 974 -f 974 866 877 -f 902 1002 976 -f 976 877 902 -f 942 1039 1002 -f 1002 902 942 -f 984 1082 1039 -f 1039 942 984 -f 1066 1121 1082 -f 1082 984 1066 -f 1118 1197 1121 -f 1121 1066 1118 -f 1208 1271 1197 -f 1197 1118 1208 -f 1305 1368 1271 -f 1271 1208 1305 -f 1525 1577 1368 -f 1368 1305 1525 -f 1742 1903 1577 -f 1577 1525 1742 -f 783 877 866 -f 866 774 783 -f 815 902 877 -f 877 783 815 -f 867 942 902 -f 902 815 867 -f 927 984 942 -f 942 867 927 -f 997 1066 984 -f 984 927 997 -f 1085 1118 1066 -f 1066 997 1085 -f 1180 1208 1118 -f 1118 1085 1180 -f 1281 1305 1208 -f 1208 1180 1281 -f 1492 1525 1305 -f 1305 1281 1492 -f 1703 1742 1525 -f 1525 1492 1703 -f 717 783 774 -f 774 698 717 -f 756 815 783 -f 783 717 756 -f 805 867 815 -f 815 756 805 -f 887 927 867 -f 867 805 887 -f 956 997 927 -f 927 887 956 -f 1058 1085 997 -f 997 956 1058 -f 1148 1180 1085 -f 1085 1058 1148 -f 1267 1281 1180 -f 1180 1148 1267 -f 1467 1492 1281 -f 1281 1267 1467 -f 1905 1703 1492 -f 1492 1467 1905 -f 647 717 698 -f 698 636 647 -f 709 756 717 -f 717 647 709 -f 771 805 756 -f 756 709 771 -f 851 887 805 -f 805 771 851 -f 935 956 887 -f 887 851 935 -f 1031 1058 956 -f 956 935 1031 -f 1126 1148 1058 -f 1058 1031 1126 -f 1251 1267 1148 -f 1148 1126 1251 -f 1447 1467 1267 -f 1267 1251 1447 -f 1751 1905 1467 -f 1467 1447 1751 -f 630 647 636 -f 636 612 630 -f 671 709 647 -f 647 630 671 -f 749 771 709 -f 709 671 749 -f 829 851 771 -f 771 749 829 -f 921 935 851 -f 851 829 921 -f 1019 1031 935 -f 935 921 1019 -f 1114 1126 1031 -f 1031 1019 1114 -f 1243 1251 1126 -f 1126 1114 1243 -f 1441 1447 1251 -f 1251 1243 1441 -f 1896 1751 1447 -f 1447 1441 1896 -f 623 630 612 -f 612 603 623 -f 656 671 630 -f 630 623 656 -f 744 749 671 -f 671 656 744 -f 824 829 749 -f 749 744 824 -f 916 921 829 -f 829 824 916 -f 1018 1019 921 -f 921 916 1018 -f 1111 1114 1019 -f 1019 1018 1111 -f 1241 1243 1114 -f 1114 1111 1241 -f 1435 1441 1243 -f 1243 1241 1435 -f 1923 1896 1441 -f 1441 1435 1923 -f 617 623 603 -f 603 601 617 -f 650 656 623 -f 623 617 650 -f 734 744 656 -f 656 650 734 -f 818 824 744 -f 744 734 818 -f 912 916 824 -f 824 818 912 -f 1009 1018 916 -f 916 912 1009 -f 1102 1111 1018 -f 1018 1009 1102 -f 1235 1241 1111 -f 1111 1102 1235 -f 1431 1435 1241 -f 1241 1235 1431 -f 1759 1923 1435 -f 1435 1431 1759 -f 1735 1736 1963 -f 1735 1963 2015 -f 1735 2015 2088 -f 1735 2088 2166 -f 1735 2166 2230 -f 1735 2230 2273 -f 1735 2273 2304 -f 1735 2304 2320 -f 1735 2320 2328 -f 1735 2328 2335 -f 2005 1963 1736 -f 1736 1738 2005 -f 2149 2015 1963 -f 1963 2005 2149 -f 2291 2088 2015 -f 2015 2149 2291 -f 2346 2166 2088 -f 2088 2291 2346 -f 2398 2230 2166 -f 2166 2346 2398 -f 2428 2273 2230 -f 2230 2398 2428 -f 2457 2304 2273 -f 2273 2428 2457 -f 2494 2320 2304 -f 2304 2457 2494 -f 2514 2328 2320 -f 2320 2494 2514 -f 2524 2335 2328 -f 2328 2514 2524 -f 2047 2005 1738 -f 1738 1740 2047 -f 2256 2149 2005 -f 2005 2047 2256 -f 2353 2291 2149 -f 2149 2256 2353 -f 2427 2346 2291 -f 2291 2353 2427 -f 2503 2398 2346 -f 2346 2427 2503 -f 2542 2428 2398 -f 2398 2503 2542 -f 2583 2457 2428 -f 2428 2542 2583 -f 2622 2494 2457 -f 2457 2583 2622 -f 2648 2514 2494 -f 2494 2622 2648 -f 2650 2524 2514 -f 2514 2648 2650 -f 2099 2047 1740 -f 1740 1743 2099 -f 2319 2256 2047 -f 2047 2099 2319 -f 2414 2353 2256 -f 2256 2319 2414 -f 2504 2427 2353 -f 2353 2414 2504 -f 2558 2503 2427 -f 2427 2504 2558 -f 2640 2542 2503 -f 2503 2558 2640 -f 2682 2583 2542 -f 2542 2640 2682 -f 2722 2622 2583 -f 2583 2682 2722 -f 2745 2648 2622 -f 2622 2722 2745 -f 2758 2650 2648 -f 2648 2745 2758 -f 2130 2099 1743 -f 1743 1746 2130 -f 2343 2319 2099 -f 2099 2130 2343 -f 2442 2414 2319 -f 2319 2343 2442 -f 2537 2504 2414 -f 2414 2442 2537 -f 2625 2558 2504 -f 2504 2537 2625 -f 2695 2640 2558 -f 2558 2625 2695 -f 2755 2682 2640 -f 2640 2695 2755 -f 2807 2722 2682 -f 2682 2755 2807 -f 2839 2745 2722 -f 2722 2807 2839 -f 2850 2758 2745 -f 2745 2839 2850 -f 2157 2130 1746 -f 1746 1748 2157 -f 2357 2343 2130 -f 2130 2157 2357 -f 2474 2442 2343 -f 2343 2357 2474 -f 2566 2537 2442 -f 2442 2474 2566 -f 2668 2625 2537 -f 2537 2566 2668 -f 2735 2695 2625 -f 2625 2668 2735 -f 2817 2755 2695 -f 2695 2735 2817 -f 2868 2807 2755 -f 2755 2817 2868 -f 2905 2839 2807 -f 2807 2868 2905 -f 2926 2850 2839 -f 2839 2905 2926 -f 2177 2157 1748 -f 1748 1750 2177 -f 2373 2357 2157 -f 2157 2177 2373 -f 2496 2474 2357 -f 2357 2373 2496 -f 2591 2566 2474 -f 2474 2496 2591 -f 2687 2668 2566 -f 2566 2591 2687 -f 2771 2735 2668 -f 2668 2687 2771 -f 2851 2817 2735 -f 2735 2771 2851 -f 2913 2868 2817 -f 2817 2851 2913 -f 2975 2905 2868 -f 2868 2913 2975 -f 2986 2926 2905 -f 2905 2975 2986 -f 2183 2177 1750 -f 1750 1754 2183 -f 2381 2373 2177 -f 2177 2183 2381 -f 2508 2496 2373 -f 2373 2381 2508 -f 2603 2591 2496 -f 2496 2508 2603 -f 2701 2687 2591 -f 2591 2603 2701 -f 2793 2771 2687 -f 2687 2701 2793 -f 2873 2851 2771 -f 2771 2793 2873 -f 2951 2913 2851 -f 2851 2873 2951 -f 2992 2975 2913 -f 2913 2951 2992 -f 3010 2986 2975 -f 2975 2992 3010 -f 2189 2183 1754 -f 1754 1756 2189 -f 2383 2381 2183 -f 2183 2189 2383 -f 2513 2508 2381 -f 2381 2383 2513 -f 2606 2603 2508 -f 2508 2513 2606 -f 2708 2701 2603 -f 2603 2606 2708 -f 2800 2793 2701 -f 2701 2708 2800 -f 2880 2873 2793 -f 2793 2800 2880 -f 2968 2951 2873 -f 2873 2880 2968 -f 3001 2992 2951 -f 2951 2968 3001 -f 3021 3010 2992 -f 2992 3001 3021 -f 2195 2189 1756 -f 1756 1759 2195 -f 2390 2383 2189 -f 2189 2195 2390 -f 2517 2513 2383 -f 2383 2390 2517 -f 2612 2606 2513 -f 2513 2517 2612 -f 2709 2708 2606 -f 2606 2612 2709 -f 2801 2800 2708 -f 2708 2709 2801 -f 2886 2880 2800 -f 2800 2801 2886 -f 2970 2968 2880 -f 2880 2886 2970 -f 3004 3001 2968 -f 2968 2970 3004 -f 3022 3021 3001 -f 3001 3004 3022 diff --git a/software/Print3r/models/teddy.obj b/software/Print3r/models/teddy.obj deleted file mode 100644 index 57ede687..00000000 --- a/software/Print3r/models/teddy.obj +++ /dev/null @@ -1,4790 +0,0 @@ -v -4.75738 8.49991 8.28592 -v -4.55816 11.4788 7.74909 -v -4.37277 13.9925 6.2828 -v -5.70826 13.6563 6.26488 -v -4.22943 15.6584 4.11027 -v -4.14648 15.5999 -0.973337 -v -5.89138 15.1606 -0.996753 -v -4.2195 13.8844 -3.11048 -v -5.55499 13.5482 -3.12841 -v -4.3579 11.3375 -4.52382 -v -4.54062 8.34704 -4.99819 -v -6.35434 10.256 7.73386 -v -7.69167 11.733 6.25465 -v -8.56579 12.7062 4.07349 -v -8.84361 13.0274 1.52244 -v -8.48283 12.6477 -1.01012 -v -7.5384 11.6249 -3.13864 -v -6.15408 10.1147 -4.53906 -v -8.97552 6.43001 6.29472 -v -8.77853 5.01807 6.31419 -v -10.2432 5.77752 4.12585 -v -9.98584 3.93274 4.15128 -v -10.6592 5.52786 1.57912 -v -10.3807 3.53107 1.60664 -v -10.1603 5.71902 -0.957758 -v -9.90289 3.87424 -0.932328 -v -8.82225 6.32192 -3.09856 -v -8.62526 4.90998 -3.0791 -v -6.38315 6.06753 7.78159 -v -7.74491 3.99382 6.34284 -v -8.63535 2.59448 4.18872 -v -8.9189 2.08256 1.64716 -v -8.5524 2.53598 -0.894892 -v -7.59164 3.88572 -3.05044 -v -6.18289 5.92629 -4.49133 -v -4.94011 5.5094 7.81156 -v -5.07851 2.96254 6.39822 -v -5.15153 1.24705 4.26107 -v -5.14804 0.624109 1.72548 -v -5.06858 1.18855 -0.82254 -v -4.92524 2.85444 -2.99507 -v -4.73985 5.36817 -4.46136 -v -7.0706 8.92177 7.73752 -v -9.01515 9.26777 6.26142 -v -10.295 9.48523 4.08234 -v -10.7153 9.54105 1.53202 -v -10.212 9.42673 -1.00127 -v -8.86188 9.15967 -3.13186 -v -6.87034 8.78053 -4.53539 -v 3.06689 7.44818 8.1781 -v 4.41256 5.15163 7.73953 -v 5.52882 6.07891 7.74708 -v 5.56925 3.1935 6.39422 -v 7.63182 4.9069 6.40816 -v 6.36086 1.87191 4.34698 -v 9.05574 4.11057 4.36519 -v 6.66688 1.38805 1.90947 -v 9.5838 3.81116 1.92918 -v 6.44072 1.81559 -0.547205 -v 9.1356 4.05425 -0.528994 -v 5.71681 3.08944 -2.64905 -v 7.77938 4.80283 -2.63511 -v 4.60536 5.01566 -4.07607 -v 5.72161 5.94294 -4.06852 -v 3.27557 7.30101 -4.61102 -v 5.50737 7.6147 7.72905 -v 7.59219 7.74466 6.37486 -v 9.00396 7.81828 4.32167 -v 9.52775 7.82435 1.88209 -v 9.08382 7.76196 -0.572506 -v 7.73975 7.64059 -2.66841 -v 5.70017 7.47873 -4.08655 -v 4.24481 2.57376 6.37974 -v 4.6304 1.06218 4.32806 -v 4.79385 0.511608 1.889 -v 4.71026 1.00586 -0.566123 -v 4.39237 2.4697 -2.66353 -v 1.56309 2.21691 -2.70678 -v 2.35738 4.54345 -4.10731 -v 5.3624 8.37733 7.71791 -v 7.32433 9.15382 6.35427 -v 8.65399 9.65944 4.29478 -v 9.14894 9.81721 1.85297 -v 8.73385 9.60312 -0.599405 -v 7.47189 9.04975 -2.689 -v 5.5552 8.24136 -4.09769 -v 5.02716 9.09409 7.70419 -v 6.70488 10.4782 6.32892 -v 7.84464 11.3899 4.26166 -v 8.27291 11.6902 1.81712 -v 7.9245 11.3335 -0.632524 -v 6.85244 10.3742 -2.71435 -v 5.21996 8.95812 -4.11141 -v 3.98509 10.2057 7.67439 -v 4.77938 12.5323 6.27386 -v 5.32885 14.0736 4.18972 -v 5.4087 14.0173 -0.704459 -v 4.92694 12.4282 -2.7694 -v 4.17788 10.0698 -4.1412 -v 1.43857 11.2904 7.99724 -v 1.22297 8.23418 8.54689 -v 1.63826 13.8694 6.49567 -v 1.79161 15.5785 4.27079 -v 1.87656 15.5186 -0.935478 -v 1.79523 13.7587 -3.12426 -v 1.64367 11.1457 -4.57181 -v 1.44496 8.07762 -5.05775 -v 1.22935 5.02143 -4.5081 -v 0.109369 11.5173 8.08861 -v 0.260966 8.39879 8.6545 -v -0.044623 16.484 1.62624 -v 0.318235 11.37 -4.71169 -v 0.48704 8.23935 -5.20045 -v 0.717506 0.806139 4.47118 -v 0.749946 2.4892 -3.10016 -v -1.13035 11.5006 8.13536 -v -1.74668 8.37122 8.69435 -v -3.79653 8.23863 8.48928 -v -0.590454 14.1412 6.59582 -v -0.209199 15.8912 4.31012 -v -0.121782 15.8295 -1.04724 -v -0.428928 14.0273 -3.30329 -v -0.919302 11.3517 -4.79846 -v -1.51825 8.21012 -5.30511 -v -3.57375 8.08151 -5.16403 -v -3.14315 0.751817 4.43647 -v -2.67448 2.44013 -3.20659 -v -3.40434 5.00201 -4.60597 -v -2.13458 5.08079 -4.74612 -v 3.10607 0.36081 1.86319 -v 2.01025 0.665233 3.46159 -v 0.728609 0.709777 4.08052 -v -1.27911 0.713773 4.19302 -v -2.4527 0.646962 3.97884 -v -3.16426 0.572725 3.70493 -v -4.45952 0.631882 2.51377 -v -4.85509 0.544053 1.73118 -v -4.94168 0.630623 1.46448 -v -4.99502 1.0372 -0.246242 -v -4.73528 1.10603 -0.838825 -v -3.67731 1.85411 -2.13205 -v -2.77592 1.97451 -2.59843 -v -2.0077 2.11522 -2.7512 -v -0.284175 2.16168 -2.72592 -v 0.760976 2.13345 -2.63729 -v 1.39634 1.8936 -2.29471 -v 2.51344 1.25355 -1.24982 -v 2.90047 0.885059 -0.688787 -v 3.1935 0.488349 1.32496 -v 3.83935 -0.805325 4.58296 -v 2.00029 -0.824144 5.45809 -v -0.869574 -0.948624 5.60322 -v -3.55014 -1.2731 4.8905 -v -5.39527 -1.27405 3.1765 -v -1.94658 0.998399 -4.33709 -v 2.00733 1.2043 -4.15243 -v 2.92803 0.903234 -3.65708 -v 9.82595 -8.19113 2.72638 -v 7.64818 -6.93235 6.48913 -v 4.84526 -6.13281 8.005 -v 0.361171 -5.01059 8.4029 -v -3.96892 -4.26932 7.40681 -v -6.91388 -3.39355 4.74932 -v -0.949578 -1.32975 -7.55666 -v 10.0569 -7.94343 1.47952 -v 10.2071 -10.3571 2.79878 -v 7.61595 -9.21649 6.92362 -v 4.42178 -8.65619 8.55787 -v -0.641765 -7.93569 8.93227 -v -5.47279 -7.61868 7.76927 -v -8.7732 -6.99782 4.78869 -v -9.83652 -7.07128 2.81003 -v -4.26344 -4.15053 -8.31429 -v -2.2802 -4.06586 -8.73671 -v 6.25629 -5.83678 -7.72208 -v 10.4502 -10.0603 1.42311 -v 10.1841 -12.4521 2.59144 -v 7.40739 -11.5505 6.73944 -v -1.07517 -11.069 8.67438 -v -5.96691 -11.227 7.4371 -v -9.32223 -10.9302 4.37455 -v -10.364 -11.112 2.35613 -v -10.5818 -10.8783 1.66786 -v -10.6979 -9.81779 -2.75388 -v -10.0272 -9.66673 -4.28938 -v -7.22975 -7.84599 -7.64571 -v -4.89419 -7.63186 -8.8633 -v -2.89632 -7.35156 -9.26823 -v 4.25954 -7.60605 -9.0104 -v 5.87931 -8.29567 -8.13353 -v 8.70924 -10.0734 -5.44796 -v 9.67635 -11.0689 -4.00322 -v 10.4167 -12.1307 1.19887 -v 10.0895 -14.4941 2.32402 -v -1.11324 -13.1148 8.37714 -v -9.31946 -12.9744 4.09894 -v -10.3562 -13.155 2.09057 -v -10.5728 -12.9224 1.40573 -v -10.6882 -11.8671 -2.99404 -v -10.0209 -11.717 -4.52194 -v -7.23691 -9.90601 -7.8617 -v -4.91294 -9.69358 -9.07332 -v -2.92492 -9.41523 -9.4763 -v 4.19535 -9.67042 -9.22 -v 10.321 -14.1744 0.938357 -v -10.6247 -13.9039 -3.19465 -v -9.97391 -13.7246 -4.67838 -v -7.33994 -11.822 -7.91513 -v -5.08362 -11.4958 -9.08055 -v -3.16253 -11.1221 -9.46079 -v 9.8982 -15.0515 0.769409 -v -10.0904 -14.7445 -3.20405 -v -9.4711 -14.576 -4.61638 -v -6.95922 -12.7741 -7.69776 -v -4.81125 -12.4712 -8.80781 -v -2.98184 -12.1221 -9.17046 -v -1.27805 -16.1844 6.71326 -v -9.54759 -15.5747 -3.18775 -v -8.96903 -15.4142 -4.50675 -v -6.62996 -13.7181 -7.38393 -v -4.62428 -13.424 -8.41959 -v -2.91689 -13.0884 -8.75724 -v -8.06873 -16.9821 -3.17874 -v -7.54861 -16.8065 -4.36302 -v -5.52178 -15.1527 -6.94087 -v -3.72828 -14.7762 -7.86041 -v -2.21008 -14.3786 -8.15337 -v -4.82157 -15.6691 -6.5723 -v -3.16841 -15.3106 -7.41945 -v -1.76986 -14.9342 -7.68865 -v -3.33284 -15.8714 -6.5609 -v -2.14617 -15.592 -6.79205 -v -7.06631 -17.0586 -4.24813 -v -5.82705 -16.7092 -5.12276 -v -4.75525 -16.185 -6.0021 -v -3.86775 -16.2455 -6.07221 -v -3.32466 -15.9573 -6.44984 -v -3.09409 -15.9621 -6.44236 -v -2.14977 -15.7519 -6.65138 -v -1.64671 -15.868 -6.56379 -v -0.105109 -15.9518 -6.4224 -v -2.2743 -17.7076 4.65422 -v -7.81608 -17.6062 -1.26796 -v -8.37523 -16.8563 -2.61072 -v -8.06944 -17.0008 -3.01084 -v -8.05699 -16.991 -3.16328 -v -8.05326 -16.9898 -3.17889 -v -7.3571 -17.0759 -3.95333 -v 2.41752 -18.5301 -1.49186 -v -6.96729 -17.2164 -3.80403 -v -4.66643 -17.2302 -4.72548 -v -1.06655 -18.8826 -0.00741184 -v -3.13164 -16.658 -5.68162 -v 1.96389 -18.0074 -3.31457 -v 0.221782 -18.5558 -2.03776 -v -2.81702 -18.6062 -2.32675 -v -0.481172 -16.3361 -6.11221 -v -1.55786 -18.2 3.58568 -v 0.272667 -17.8234 -4.01958 -v -3.08719 -17.9962 -3.91307 -v -1.55511 -18.6849 -1.77704 -v -2.40318 -18.8407 -1.07766 -v -2.801 -18.9854 -0.110608 -v -1.38095 -17.1394 -5.1761 -v -1.44724 -18.3031 -3.20154 -v 2.63897 6.1351 7.95529 -v 2.2415 6.52603 8.13076 -v 1.16574 7.35057 8.40694 -v 0.478433 7.47777 8.4854 -v -1.00641 7.51494 8.52513 -v -1.94848 7.31274 8.52364 -v -3.10822 6.81115 8.34621 -v -3.67003 6.14021 8.16263 -v -3.89517 5.22479 7.96594 -v -3.9036 4.7106 7.68634 -v -3.63053 3.16202 6.85597 -v -3.3914 2.65522 6.61963 -v -3.17161 2.36461 6.34011 -v -2.91497 2.09072 6.11252 -v -1.47501 1.49186 5.34954 -v -0.648239 1.47793 5.32492 -v 0.666655 1.52282 5.35938 -v 1.08281 1.59893 5.44738 -v 2.24838 1.99487 5.81618 -v 2.76341 2.44141 6.35709 -v 3.22414 3.60691 7.03159 -v 3.14859 4.88612 7.72196 -v 3.01294 5.69633 7.86877 -v 2.2052 6.28678 8.45224 -v 1.13716 7.11992 8.69955 -v -1.02469 7.29639 8.80526 -v -1.96335 7.09926 8.80657 -v -3.11946 6.60007 8.6408 -v -3.68112 5.92959 8.47579 -v -3.90868 5.01401 8.30595 -v -3.65094 2.92811 7.26233 -v -3.41443 2.41592 7.04268 -v -2.94109 1.83742 6.55607 -v -1.50798 1.21309 5.81901 -v 0.623994 1.23484 5.83492 -v 2.19915 1.71092 6.2809 -v 2.71211 2.16871 6.80783 -v 3.17381 3.34599 7.4466 -v 3.10213 4.63922 8.09611 -v 2.97024 5.45025 8.21819 -v 0.937956 5.77072 9.80431 -v 0.296637 6.35098 9.68917 -v -1.06291 6.55265 9.6228 -v -1.6649 6.47094 9.63976 -v -2.41474 6.17872 9.63116 -v -2.79699 5.76825 9.69004 -v -2.9794 5.20426 9.82267 -v -2.89133 3.72071 9.77564 -v -2.76104 3.36026 9.7917 -v -2.47878 2.88352 9.68015 -v -1.5873 2.28244 9.47233 -v -0.239985 2.22783 9.55589 -v 0.767781 2.56641 9.74771 -v 1.10213 2.95129 9.95104 -v 1.43493 3.78138 10.0291 -v 1.43594 4.69886 10.0629 -v 1.38746 5.20214 9.91659 -v 0.220628 5.43151 10.4831 -v -0.211049 5.8154 10.4491 -v -1.11504 5.93895 10.4276 -v -1.51334 5.87778 10.4375 -v -2.00788 5.67783 10.4178 -v -2.25702 5.39919 10.4325 -v -2.37161 5.0165 10.4846 -v -2.29948 4.04132 10.3566 -v -2.01868 3.49919 10.2363 -v -1.42339 3.12507 10.0541 -v -0.528769 3.09735 10.0967 -v 0.137774 3.31864 10.2386 -v 0.357399 3.56286 10.3956 -v 0.570804 4.10905 10.4988 -v 0.563019 4.71239 10.5808 -v 0.524973 5.05355 10.5173 -v -0.926686 3.93024 10.6759 -v 6.55398 13.5239 1.76797 -v 5.46971 14.2671 0.351879 -v 3.79463 14.9153 -0.000997424 -v 3.22951 15.1785 0.0496842 -v 1.87585 15.8786 0.527197 -v 1.45341 16.0884 1.08913 -v 1.37622 16.2425 1.6522 -v 1.41464 16.0988 2.24668 -v 1.82405 15.803 3.25928 -v 2.68577 15.3446 3.66849 -v 4.66328 14.4889 3.68011 -v 5.3746 14.1816 3.68242 -v 6.63791 13.1611 2.65707 -v 7.30438 13.9627 1.79605 -v 6.27645 14.7225 0.267931 -v 4.25863 15.7361 -0.209935 -v 3.63369 16.0727 -0.15054 -v 2.14165 16.9568 0.397597 -v 1.67574 17.221 1.03887 -v 1.59866 17.399 1.68087 -v 1.63318 17.2304 2.35726 -v 2.07967 16.8625 3.5088 -v 3.02914 16.282 3.97204 -v 6.00867 14.7807 3.98031 -v 7.37626 13.5408 2.80698 -v 7.62385 18.1897 1.89923 -v 6.54958 18.2986 0.56169 -v 4.60843 18.2157 0.124363 -v 3.99531 18.2125 0.167129 -v 2.49325 18.276 0.617373 -v 2.02344 18.2988 1.16372 -v 1.88356 18.4178 1.71247 -v 1.97139 18.322 2.30047 -v 2.44782 18.2585 3.30317 -v 3.40124 18.2254 3.71745 -v 6.27794 18.3265 3.76197 -v 7.84098 17.9263 2.78283 -v 6.90047 19.0397 1.90062 -v 6.04837 19.1606 0.836163 -v 4.50109 19.1527 0.488545 -v 4.01311 19.1682 0.522843 -v 2.81984 19.2621 0.882106 -v 2.44685 19.2932 1.3174 -v 2.33922 19.3909 1.75466 -v 2.40649 19.311 2.22267 -v 2.78407 19.2445 3.02081 -v 3.54193 19.1892 3.35026 -v 5.8341 19.1847 3.38473 -v 7.06579 18.822 2.60364 -v 6.21395 19.8874 1.91849 -v 5.65797 19.9193 1.22765 -v 4.65864 19.8353 1.00156 -v 4.34246 19.8208 1.02349 -v 3.56627 19.8228 1.25547 -v 3.32331 19.8255 1.53735 -v 3.29565 19.8379 2.1241 -v 3.54242 19.8164 2.64189 -v 4.03474 19.8199 2.85601 -v 5.51635 19.9323 2.87953 -v 6.3312 19.7573 2.37501 -v 4.18157 20.3118 1.88735 -v -2.58306 16.091 2.65485 -v -2.94553 16.2995 1.58103 -v -3.49391 16.1588 1.13726 -v -4.14889 16.0292 0.77394 -v -5.27386 15.6877 0.522317 -v -5.9751 15.4942 0.443762 -v -7.15823 14.6199 1.386 -v -7.17212 14.6482 1.53106 -v -7.00148 14.4255 3.20758 -v -6.80753 14.5827 3.34219 -v -5.98386 15.2974 3.709 -v -4.49802 15.6716 3.72825 -v -4.21436 15.7655 3.62701 -v -2.59426 16.0212 2.96948 -v -2.34862 16.9783 2.66933 -v -2.82784 17.1819 1.40039 -v -4.22087 16.6875 0.455503 -v -6.29961 15.7788 0.0843872 -v -7.54425 14.5528 1.21206 -v -7.56239 14.5823 1.38533 -v -7.32352 14.3118 3.30397 -v -6.22077 15.5043 3.96742 -v -4.52457 16.1748 3.97168 -v -2.34542 16.8903 3.0429 -v -3.01288 18.8235 2.54077 -v -3.50457 19.0292 1.24491 -v -4.9252 18.516 0.280331 -v -7.04332 17.5749 -0.0978523 -v -8.30637 16.3142 1.05432 -v -8.07792 16.0681 3.19106 -v -6.95838 17.2929 3.86872 -v -5.22981 17.9884 3.87227 -v -3.0088 18.7334 2.92234 -v -3.41289 19.7473 2.38718 -v -3.79589 19.9859 1.21049 -v -5.11829 19.7359 0.323344 -v -7.13414 19.2235 -0.0441719 -v -8.46645 18.3191 0.98391 -v -8.33636 18.0982 2.91231 -v -7.16604 19.0207 3.52728 -v -5.52726 19.37 3.55378 -v -3.42932 19.6727 2.73144 -v -4.10458 20.8934 1.19076 -v -5.24744 20.6272 0.424129 -v -6.98002 20.1039 0.111395 -v -8.09716 19.2622 1.00788 -v -7.96684 19.069 2.6834 -v -6.98379 19.9143 3.21642 -v -5.57386 20.2822 3.23366 -v -3.76702 20.6306 2.51063 -v -5.99411 20.8336 1.53989 -v -6.56552 20.6337 1.15261 -v -7.41877 20.2657 1.00029 -v -7.93136 19.7663 1.46214 -v -7.84192 19.6675 2.31912 -v -7.38792 20.1538 2.59092 -v -6.69177 20.425 2.59293 -v -5.79748 20.7134 2.21285 -v -7.75956 20.2563 1.94475 -v 4.48925 -0.397565 1.67891 -v 4.57894 -0.882098 3.27228 -v 5.27839 -2.27325 4.02403 -v 6.62658 -4.02433 4.06797 -v 7.87742 -5.27254 2.85548 -v 8.22375 -5.4852 2.27964 -v 8.57684 -5.65355 1.49826 -v 6.9201 -0.0256538 0.20717 -v 6.15406 0.402319 1.66312 -v 6.16107 -0.154891 3.60397 -v 6.7973 -1.69642 4.38487 -v 7.77466 -3.3153 4.5424 -v 8.07509 -3.67347 4.39685 -v 9.26668 -5.10215 3.07468 -v 9.94617 -5.56135 1.61311 -v 9.41036 -0.307409 -2.05757 -v 8.79848 0.353463 -1.14807 -v 7.21724 0.790581 1.26676 -v 7.07029 0.716171 1.68495 -v 10.2365 0.0688409 -2.1062 -v 9.50096 0.683983 -1.18244 -v 7.74608 0.96038 1.28048 -v 7.59074 0.867861 1.71164 -v 9.90186 0.897039 -0.833129 -v 8.25287 1.11061 1.43852 -v 8.10856 1.02133 1.83734 -v 8.29903 0.251361 4.66989 -v -6.36897 -2.08303 3.09681 -v -5.69707 -1.35701 2.56433 -v -5.57289 -0.658732 1.83414 -v -10.1489 -6.09284 -2.26788 -v -10.0235 -6.57983 -0.0838391 -v -9.95684 -6.46862 0.504061 -v -9.46798 -6.09282 2.09362 -v -9.10984 -5.67683 2.87062 -v -8.26308 -4.87005 3.72731 -v -7.45137 -3.37247 3.78015 -v -7.16428 -3.06783 3.67282 -v -6.67091 -0.662902 2.58258 -v -6.50936 -0.0829995 1.98202 -v -11.2538 -4.85307 -2.10646 -v -11.2033 -5.36352 0.0954123 -v -10.6177 -4.93125 2.17868 -v -10.2386 -4.55644 2.91991 -v -9.36367 -3.84182 3.73211 -v -8.48087 -2.46548 3.77105 -v -8.92779 -0.335116 2.33319 -v -8.76011 0.146913 1.81859 -v -8.78474 0.770169 -0.221074 -v -10.1688 -0.658255 -2.58451 -v -11.7086 -2.32491 -2.56433 -v -12.2362 -2.83833 -2.38518 -v -13.1129 -3.63074 -1.61759 -v -13.0839 -4.06319 0.260004 -v -12.5438 -3.72669 2.02999 -v -12.1932 -3.42937 2.65788 -v -11.3999 -2.87291 3.34162 -v -10.5661 -1.75596 3.36453 -v -10.9723 0.631453 2.3975 -v -10.8013 1.1406 1.83161 -v -10.8212 1.66155 0.00288689 -v -10.7461 1.33495 -1.13531 -v -11.6032 0.799209 -1.95499 -v -12.1555 0.351906 -2.20646 -v -13.6342 -1.17553 -2.18182 -v -14.1392 -1.64476 -2.01205 -v -14.9757 -2.36719 -1.28973 -v -14.9527 -2.77136 0.469803 -v -14.4345 -2.46653 2.12641 -v -14.0978 -2.19519 2.71349 -v -13.3407 -1.69077 3.35144 -v -12.5351 -0.662741 3.36961 -v -12.6167 2.19046 2.46841 -v -12.4681 2.59725 2.03055 -v -12.4837 3.12599 0.297094 -v -12.413 2.83047 -0.735134 -v -13.1867 2.34002 -1.47922 -v -13.6849 1.93135 -1.70776 -v -15.0174 0.537896 -1.68679 -v -15.4728 0.109514 -1.53329 -v -16.2279 -0.550468 -0.87897 -v -16.206 -0.917258 0.716651 -v -15.739 -0.638289 2.21944 -v -15.4356 -0.390463 2.75215 -v -14.7522 0.0710721 3.33135 -v -14.0274 1.00785 3.34862 -v -13.4888 3.11345 2.33796 -v -13.3071 3.42523 1.96002 -v -13.2698 3.86014 0.48542 -v -13.2826 3.59795 -0.389068 -v -14.0239 3.31552 -1.00019 -v -14.5113 3.0575 -1.18034 -v -15.8511 2.12023 -1.12333 -v -17.0215 1.41992 -0.404004 -v -17.0296 1.11811 0.952161 -v -16.562 1.27901 2.21493 -v -15.599 1.70969 3.13181 -v -14.8399 2.36841 3.12359 -v -13.9133 3.73789 2.07651 -v -13.7092 3.90976 1.77293 -v -13.6158 4.20632 0.624829 -v -13.7316 4.01734 -0.0456754 -v -14.3675 4.01993 -0.487899 -v -14.7976 3.97045 -0.606147 -v -15.0572 3.90165 -0.62649 -v -16.0229 3.67253 -0.500558 -v -16.4176 3.59725 -0.369986 -v -17.0348 3.50046 0.106818 -v -17.0743 3.29107 1.1601 -v -16.6449 3.28072 2.11708 -v -16.3642 3.31053 2.44668 -v -15.7964 3.32386 2.78544 -v -15.0653 3.58473 2.74197 -v -14.248 4.23078 1.80164 -v -14.0916 4.33262 1.58225 -v -14.012 4.53037 0.761832 -v -14.1192 4.40557 0.286213 -v -14.5735 4.4646 -0.0216396 -v -14.8833 4.46884 -0.100772 -v -15.7752 4.37124 -0.0102543 -v -16.0595 4.35469 0.0876166 -v -16.4988 4.34437 0.434824 -v -16.5335 4.203 1.18668 -v -16.2197 4.15892 1.86371 -v -15.6082 4.11329 2.33008 -v -15.0682 4.23032 2.28962 -v -15.9916 5.14779 1.11682 -v 10.6535 -0.287442 -2.38225 -v 10.5153 0.415482 -1.57533 -v 10.3469 0.894247 -0.640308 -v 10.1346 1.01274 0.475619 -v 9.88308 1.10515 1.7915 -v 9.69893 0.844946 2.71238 -v 9.33596 0.337692 4.52825 -v 9.08499 -1.17756 5.63304 -v 9.03461 -2.56465 5.73982 -v 9.51797 -4.31722 5.12965 -v 9.9375 -5.15482 3.94526 -v 10.1474 -5.47249 3.25563 -v 10.489 -5.76828 1.92136 -v 10.557 -5.79106 1.62117 -v 10.639 -5.68674 1.13277 -v 11.9973 -0.268931 -2.16815 -v 11.8638 0.457681 -1.33087 -v 11.6963 0.952322 -0.361661 -v 11.2215 1.16887 2.15601 -v 10.6491 0.373136 4.98643 -v 10.3723 -1.19507 6.12547 -v 10.3036 -2.6301 6.23188 -v 10.782 -4.4476 5.59469 -v 11.4173 -5.64501 3.65125 -v 11.8355 -5.9747 1.95844 -v 12.2301 -5.30485 -0.523642 -v 12.2942 -4.5346 -1.52329 -v 12.1835 -2.25059 -3.05643 -v 12.0874 -1.80598 -2.93556 -v 13.9572 -1.05232 -1.97531 -v 13.8364 -0.2831 -1.08139 -v 13.6739 0.239951 -0.0488139 -v 13.1815 0.465805 2.62666 -v 12.5597 -0.382192 5.62789 -v 12.2275 -2.04677 6.82773 -v 12.1173 -3.56872 6.93161 -v 12.5759 -5.50606 6.24222 -v 13.2144 -6.78088 4.16964 -v 13.6457 -7.13071 2.36929 -v 14.0763 -6.41394 -0.262485 -v 14.1621 -5.5916 -1.31896 -v 14.1008 -3.15462 -2.93161 -v 15.2963 -2.37617 -1.27917 -v 15.2619 -1.71736 -0.483102 -v 15.1714 -1.27162 0.429207 -v 14.7808 -1.0909 2.77069 -v 14.1901 -1.83818 5.37543 -v 13.7703 -3.28035 6.3905 -v 13.5478 -4.59416 6.45105 -v 13.7791 -6.29929 5.80659 -v 14.2127 -7.41529 3.96813 -v 14.5458 -7.71697 2.38764 -v 14.9621 -7.07538 0.103984 -v 15.0984 -6.34659 -0.801108 -v 15.2385 -4.1925 -2.15696 -v 16.2406 -3.8503 -0.47505 -v 16.3083 -3.36177 0.172286 -v 16.3055 -3.035 0.90512 -v 16.0481 -2.92233 2.75786 -v 15.5154 -3.51171 4.79124 -v 15.0088 -4.60883 5.55006 -v 14.6633 -5.60024 5.55943 -v 14.6115 -6.93099 4.9953 -v 14.7835 -7.7914 3.50789 -v 14.9873 -8.0159 2.25058 -v 15.3736 -7.49633 0.468936 -v 15.5672 -6.91874 -0.221758 -v 15.9477 -5.22139 -1.22188 -v 16.7955 -5.47703 0.304608 -v 16.9407 -5.19506 0.774473 -v 17.0089 -5.01218 1.29822 -v 16.878 -4.97963 2.59659 -v 16.4311 -5.37348 3.99579 -v 15.8915 -6.04891 4.48626 -v 15.4717 -6.64709 4.4569 -v 15.178 -7.49938 4.00698 -v 15.1136 -8.03382 2.93119 -v 15.1939 -8.1604 2.04281 -v 15.5321 -7.79802 0.818895 -v 15.764 -7.41426 0.360111 -v 16.3306 -6.30174 -0.268282 -v 16.8373 -6.37432 0.678351 -v 16.9739 -6.18606 1.03742 -v 17.0446 -6.06653 1.43575 -v 16.9581 -6.05941 2.41707 -v 16.5981 -6.34649 3.46837 -v 16.1379 -6.8164 3.82907 -v 15.7707 -7.2274 3.79816 -v 15.4731 -7.83051 3.44345 -v 15.3708 -8.20161 2.62121 -v 15.4139 -8.28384 1.94764 -v 15.6909 -8.01474 1.02891 -v 15.8952 -7.73726 0.688791 -v 16.4129 -6.93913 0.233048 -v 17.0743 -7.10653 2.04129 -v 7.34296 -13.1902 6.50867 -v 5.91079 -12.3487 7.32778 -v 4.08845 -11.9719 8.25934 -v 2.32839 -12.5529 8.27078 -v 1.85444 -13.2464 8.19529 -v 1.13496 -14.2265 7.77354 -v 0.856109 -15.8474 6.89498 -v 8.70611 -15.016 6.87116 -v 8.22512 -14.5234 7.9584 -v 6.69016 -13.6781 9.10954 -v 4.72019 -13.3159 10.247 -v 2.62295 -13.7927 10.1508 -v 2.01817 -14.4835 9.88869 -v 1.11002 -15.3695 9.17281 -v 0.636617 -16.8784 7.77461 -v 0.75201 -17.4806 6.43341 -v 9.11638 -18.3209 6.87457 -v 9.50146 -17.5945 6.97487 -v 9.43912 -15.9139 8.305 -v 8.85565 -15.1436 9.24869 -v 7.13062 -14.1264 10.1607 -v 5.00841 -13.6458 11.2142 -v 2.87891 -14.3975 11.2923 -v 2.33444 -15.2377 11.2513 -v 1.50657 -16.4485 10.8196 -v 1.21992 -18.4396 9.89118 -v 1.44059 -19.4406 8.73144 -v 2.00535 -20.2057 7.86012 -v 2.92835 -20.7018 6.553 -v 3.51329 -20.8754 5.80802 -v 4.90867 -20.7855 5.08494 -v 5.32743 -20.7163 5.03796 -v 5.72898 -20.6413 5.0824 -v 7.11086 -20.173 5.5667 -v 7.50689 -19.9746 5.80125 -v 8.86898 -18.7036 6.51928 -v 9.19698 -18.532 7.76905 -v 9.55847 -17.8557 7.8679 -v 9.50503 -16.2963 9.12182 -v 8.96256 -15.5825 10.0084 -v 7.35507 -14.6348 10.8674 -v 5.37533 -14.188 11.8547 -v 3.38531 -14.8844 11.9224 -v 2.87472 -15.667 11.878 -v 2.09849 -16.7918 11.4663 -v 1.82533 -18.643 10.5852 -v 2.02847 -19.5696 9.49529 -v 2.55349 -20.2791 8.67627 -v 3.41366 -20.7352 7.45234 -v 3.95916 -20.8934 6.75555 -v 5.26197 -20.8081 6.08103 -v 5.65308 -20.7443 6.03762 -v 6.02815 -20.6758 6.0796 -v 7.31953 -20.2459 6.53493 -v 7.6898 -20.0635 6.75527 -v 8.96493 -18.8859 7.43463 -v 9.81741 -18.6588 8.66122 -v 10.2449 -17.9746 8.86704 -v 10.2752 -16.5025 10.441 -v 9.73164 -15.8465 11.4981 -v 8.05644 -14.8763 12.5682 -v 5.95192 -14.4375 13.7013 -v 3.77198 -15.075 13.6806 -v 3.17795 -15.872 13.5177 -v 2.2792 -16.9622 12.9129 -v 1.88027 -18.7829 11.6941 -v 2.04709 -19.6151 10.3901 -v 2.57207 -20.2757 9.40587 -v 3.47268 -20.6244 8.02631 -v 4.05126 -20.718 7.25598 -v 5.45809 -20.5993 6.54148 -v 5.88236 -20.5472 6.50237 -v 6.28953 -20.5021 6.5551 -v 7.70204 -20.1878 7.09742 -v 8.11031 -20.0483 7.35761 -v 8.25899 -19.9517 7.48511 -v 9.54807 -18.9713 8.25246 -v 9.58057 -18.9569 9.05401 -v 9.96952 -18.3458 9.24909 -v 10.0051 -17.042 10.6882 -v 9.51895 -16.463 11.6502 -v 8.01482 -15.5952 12.6287 -v 6.12098 -15.2046 13.6564 -v 4.15315 -15.7669 13.6292 -v 3.61354 -16.4795 13.4713 -v 2.79767 -17.4484 12.9111 -v 2.42815 -19.0693 11.7871 -v 2.57375 -19.8014 10.6003 -v 3.04308 -20.3854 9.70385 -v 3.8525 -20.6848 8.45562 -v 4.37322 -20.7613 7.76005 -v 5.64145 -20.6517 7.11759 -v 6.02405 -20.6065 7.08297 -v 6.3912 -20.5688 7.13102 -v 7.66584 -20.3009 7.62376 -v 8.03454 -20.1812 7.86008 -v 8.16906 -20.0967 7.97629 -v 9.3361 -19.2313 8.68132 -v 9.16118 -17.9974 10.2502 -v 9.19505 -17.117 11.2743 -v 8.86106 -16.7285 11.9538 -v 7.82098 -16.1324 12.6503 -v 6.50661 -15.8664 13.3726 -v 5.13411 -16.2436 13.3443 -v 4.75392 -16.7325 13.2219 -v 4.17977 -17.3906 12.8153 -v 3.91152 -18.4949 12.0047 -v 4.00758 -18.9836 11.1663 -v 4.32987 -19.3768 10.5323 -v 4.89056 -19.568 9.65874 -v 5.25209 -19.6122 9.17352 -v 6.65683 -19.4807 8.73884 -v 7.89676 -19.1798 9.3344 -v 8.71449 -18.5986 9.83974 -v 6.64402 -18.7074 10.7009 -v -2.7598 -13.1675 7.96074 -v -3.4691 -12.1985 7.92087 -v -4.87975 -11.4074 7.68177 -v -5.80737 -11.289 7.468 -v -5.96726 -11.2781 7.42983 -v -6.64102 -11.1674 6.82182 -v -7.93342 -11.9029 5.52652 -v -8.47724 -13.0491 4.86764 -v -2.717 -16.3949 6.24832 -v -2.54372 -15.4002 6.82977 -v -2.29336 -14.0157 7.62177 -v -3.04888 -13.4592 9.21565 -v -3.76748 -12.4633 9.14836 -v -5.20626 -11.6499 8.8856 -v -6.31952 -11.5165 8.6285 -v -7.00931 -11.416 8.0074 -v -8.32452 -12.1629 6.73106 -v -8.91404 -13.3864 6.07149 -v -8.93624 -14.1109 5.64083 -v -3.03806 -16.8136 7.56161 -v -2.57962 -14.341 8.89267 -v -3.24346 -13.5306 10.835 -v -3.92455 -12.4866 10.4164 -v -5.40134 -11.6197 9.89744 -v -6.59156 -11.4632 9.63007 -v -7.36053 -11.5208 8.99618 -v -8.91596 -12.6001 8.05111 -v -9.69769 -14.0017 7.87677 -v -9.81594 -14.8817 7.72171 -v -10.0166 -16.5107 8.01671 -v -9.40699 -18.1108 7.8723 -v -8.24748 -19.5917 7.7336 -v -7.31257 -20.2074 7.80809 -v -5.98394 -20.4492 8.17118 -v -5.17774 -19.6177 9.30431 -v -3.64583 -17.4907 10.4527 -v -2.84537 -14.5801 10.8295 -v -3.54228 -13.4549 11.8096 -v -4.21392 -12.4257 11.4018 -v -5.66877 -11.5715 10.894 -v -6.84075 -11.4176 10.6306 -v -7.59743 -11.4723 10.0057 -v -9.12705 -12.5324 9.06897 -v -9.89496 -13.9126 8.89019 -v -10.0102 -14.7786 8.73328 -v -10.206 -16.3842 9.01595 -v -9.60367 -17.9583 8.86665 -v -8.46004 -19.4144 8.72389 -v -7.53877 -20.0199 8.79497 -v -6.23046 -20.2581 9.15224 -v -5.43841 -19.4437 10.2724 -v -3.93337 -17.3529 11.4142 -v -3.149 -14.4877 11.7995 -v -3.59656 -13.035 13.5552 -v -4.36284 -11.8849 13.2427 -v -5.97709 -10.9383 12.7791 -v -7.25975 -10.7756 12.4887 -v -8.07597 -10.774 11.7843 -v -9.68946 -11.8445 10.5858 -v -10.4734 -13.3432 10.1801 -v -10.5637 -14.2642 9.88523 -v -10.7218 -16.0524 9.96129 -v -10.0006 -17.717 9.59114 -v -8.69218 -19.2354 9.25694 -v -7.66306 -19.8694 9.26955 -v -6.2298 -20.132 9.65313 -v -5.41467 -19.3793 11.0011 -v -3.86887 -17.2202 12.5683 -v -3.12706 -14.1397 13.4076 -v -4.13339 -13.6667 13.8504 -v -4.83369 -12.6222 13.5908 -v -6.30076 -11.7635 13.187 -v -7.46319 -11.617 12.9233 -v -8.19881 -11.6037 12.284 -v -9.65267 -12.5564 11.167 -v -10.3529 -13.9095 10.7627 -v -10.4283 -14.7377 10.4743 -v -10.5611 -16.3604 10.502 -v -9.89648 -17.8558 10.1312 -v -8.70062 -19.216 9.79826 -v -7.76426 -19.7847 9.79869 -v -6.46503 -20.0229 10.145 -v -5.7351 -19.3669 11.386 -v -4.35209 -17.4374 12.8602 -v -3.70086 -14.6614 13.6931 -v -4.91278 -14.1321 14.0506 -v -5.49384 -13.2785 13.8794 -v -6.69692 -12.5784 13.578 -v -7.64451 -12.4606 13.3622 -v -8.24201 -12.4309 12.8364 -v -9.40828 -13.1741 11.8783 -v -9.96142 -14.2658 11.487 -v -10.0119 -14.9285 11.2164 -v -10.102 -16.2519 11.1689 -v -9.54123 -17.446 10.8074 -v -8.54925 -18.5259 10.486 -v -7.77963 -18.9785 10.468 -v -6.72001 -19.173 10.7481 -v -6.13968 -18.6841 11.791 -v -5.04276 -17.1614 13.0822 -v -4.5481 -14.9304 13.8829 -v -5.7059 -14.6758 13.6914 -v -6.12426 -14.0593 13.5622 -v -6.99242 -13.5534 13.3406 -v -7.677 -13.4681 13.1848 -v -8.10808 -13.449 12.8062 -v -8.95412 -13.9909 12.1198 -v -9.3562 -14.7814 11.8456 -v -9.39417 -15.262 11.655 -v -9.46181 -16.2182 11.6304 -v -9.05933 -17.0845 11.3773 -v -8.34505 -17.8689 11.1519 -v -7.78992 -18.1974 11.1415 -v -7.02448 -18.3379 11.3441 -v -6.60321 -17.9782 12.0934 -v -5.80653 -16.871 13.014 -v -5.44413 -15.2543 13.5757 -v -7.61104 -14.4841 13.0272 -v -2.36336 -9.27381 -9.43989 -v -0.857446 -7.68471 -9.2209 -v 1.1529 -7.85642 -9.15852 -v 1.54786 -8.2889 -9.18625 -v 2.12935 -9.59637 -9.29436 -v 2.26857 -10.644 -9.23577 -v 2.25022 -11.0267 -9.2308 -v 2.23927 -11.2545 -9.16711 -v 1.9765 -12.0524 -8.96194 -v 1.43696 -12.7215 -8.69051 -v 1.1865 -13.0077 -8.58188 -v -1.97388 -12.1079 -9.12807 -v -2.01864 -11.962 -9.16984 -v -2.27164 -11.1064 -9.42293 -v -2.48343 -10.2983 -9.44414 -v -2.74235 -8.71723 -10.2178 -v -0.968673 -6.83641 -10.1894 -v 1.39184 -7.03215 -10.0625 -v 1.85433 -7.54125 -10.0221 -v 2.5331 -9.08247 -9.93657 -v 2.66783 -10.7388 -9.63833 -v 2.6531 -10.9942 -9.52884 -v 2.33804 -11.8909 -9.16934 -v 1.40048 -12.9422 -8.58887 -v -1.06022 -13.3963 -8.47276 -v -1.73711 -13.0139 -8.75024 -v -2.30162 -11.9707 -9.40827 -v -2.64307 -10.8493 -9.9116 -v -2.888 -9.91082 -10.0649 -v -2.37497 -8.28297 -11.9537 -v -0.879504 -6.8486 -11.2672 -v 1.11645 -7.00475 -11.3198 -v 1.50851 -7.39556 -11.4986 -v 2.08559 -8.5767 -12.0453 -v 2.21133 -9.93494 -12.4593 -v 1.95073 -10.9869 -12.5375 -v 1.18125 -12.0158 -12.4745 -v -0.890045 -12.4433 -12.4849 -v -1.4712 -12.0608 -12.5262 -v -1.97157 -11.0335 -12.6041 -v -2.2784 -10.0029 -12.5427 -v -2.49131 -9.2421 -12.2912 -v -1.8619 -7.7257 -12.5409 -v -0.772848 -6.83707 -11.8227 -v 0.669533 -6.92442 -11.9181 -v 0.950917 -7.16305 -12.1201 -v 1.36183 -7.88691 -12.726 -v 1.44901 -8.76163 -13.2642 -v 1.26168 -9.48531 -13.506 -v 0.70872 -10.2217 -13.6372 -v -0.787859 -10.5319 -13.6907 -v -1.2095 -10.2603 -13.6413 -v -1.57475 -9.53026 -13.5017 -v -1.79785 -8.82194 -13.2669 -v -1.94936 -8.33646 -12.9495 -v -1.47495 -7.43161 -12.9047 -v -0.692286 -6.81428 -12.3671 -v 0.342475 -6.87314 -12.4415 -v 0.544019 -7.03825 -12.5939 -v 0.837798 -7.53959 -13.05 -v 0.899551 -8.15126 -13.4611 -v 0.764982 -8.66332 -13.6548 -v 0.368344 -9.18794 -13.7685 -v -0.705431 -9.40987 -13.812 -v -1.00801 -9.21685 -13.7678 -v -1.27019 -8.6977 -13.6459 -v -1.43012 -8.19674 -13.4568 -v -1.53834 -7.85787 -13.2149 -v -0.358819 -8.16598 -14.0506 -v -2.5032 -18.3093 3.42843 -v -2.72296 -17.9243 4.31298 -v -2.77037 -17.7981 4.52864 -v -3.17051 -16.9932 5.54093 -v -3.70045 -17.66 5.78613 -v -4.04795 -18.1936 5.96706 -v -4.35338 -18.6194 5.96883 -v -5.75755 -19.3271 5.65487 -v -3.10401 -18.9815 0.118243 -v -2.87316 -18.9613 0.919021 -v -2.43034 -18.9319 1.51088 -v -2.43755 -18.7311 2.16225 -v -2.45555 -18.6407 2.49948 -v -2.8819 -18.594 2.60579 -v -3.3477 -17.9951 4.22083 -v -4.73169 -18.5409 5.3324 -v -3.05025 -18.8868 1.32695 -v -4.20451 -18.5861 2.46404 -v 0.710033 -18.6592 -1.13716 -v 2.05913 -18.5918 -0.991563 -v 1.1849 -18.6772 -0.388354 -v 2.0053 -18.5954 -0.0572764 -v 6.39237 -19.2056 4.52445 -v 5.64925 -19.492 4.31942 -v 5.11194 -19.7103 4.19143 -v 4.94849 -19.6813 4.14407 -v 4.80878 -19.6293 4.11309 -v 2.31056 -18.5814 0.00696266 -v 2.31729 -18.5894 -0.199142 -v 2.43539 -18.5631 -0.843749 -v 2.44597 -18.5293 -1.4531 -v 2.45303 -18.5229 -1.48664 -v 2.49745 -18.5069 -1.51347 -v 5.1406 -18.077 0.480865 -v 4.07834 -18.3617 0.515857 -v 5.22713 -18.2215 2.5594 -v 5.81359 -17.8825 0.0851822 -v 3.00872 -18.5057 -0.0576055 -v 3.14933 -18.3627 -1.35805 -v 4.38525 -18.2252 -0.367964 -v 5.92121 -18.5314 3.73028 -v 4.34849 -18.3148 1.56501 -v 4.91719 -19.2931 3.9138 -v 5.37922 -18.0257 1.43056 -v 6.05171 -17.8258 1.75273 -v 5.97412 -17.8562 0.703995 -v 6.69838 -17.9455 3.8116 -v 6.21127 -17.8071 2.81881 -v -3.18127 -18.5547 -2.43093 -v -3.67717 -18.7671 -1.69418 -v -3.73708 -18.9004 -1.14441 -v -3.79848 -18.9199 -0.96519 -v -4.00371 -18.9244 -0.291902 -v -4.38725 -18.8175 1.00334 -v -4.56981 -18.6552 1.98117 -v -4.45477 -18.5806 2.4171 -v -4.61064 -18.5087 2.72066 -v -4.84134 -18.3394 3.59287 -v -5.04337 -18.3805 4.2763 -v -5.37729 -18.5271 4.81816 -v -6.32656 -18.9699 5.20353 -v -6.32757 -18.9726 5.201 -v -7.4415 -18.7064 5.42364 -v -7.80517 -17.6252 -1.22005 -v -7.80636 -17.6167 -1.25609 -v -7.78643 -17.6216 -1.28054 -v -7.08846 -17.7627 -2.27 -v -6.73389 -17.8435 -2.48148 -v -5.9734 -17.8601 -3.11616 -v -4.79512 -17.9834 -3.41273 -v -3.7544 -18.2241 -3.20044 -v -3.17943 -18.5076 -2.56594 -v -4.42543 -18.518 -2.23666 -v -6.06803 -18.5928 -0.0746953 -v -4.16776 -18.8596 -1.09056 -v -5.71127 -18.2094 -2.41264 -v -7.01376 -17.9698 -1.5307 -v -4.61365 -18.8628 -0.206156 -v -5.23479 -18.7167 1.11695 -v -7.44639 -17.9894 0.111755 -v -5.2859 -18.4952 2.47464 -v -6.35056 -18.4536 4.46211 -v -5.40649 -18.6302 -1.24815 -v -6.45558 -18.3957 1.31282 -v -4.07559 0.81435 -3.37321 -v -3.01328 0.917503 -3.98176 -v -2.64792 0.82237 -4.31244 -v -2.39854 0.502634 -4.88434 -v -2.43018 -0.562366 -6.31426 -v -1.81383 -1.28142 -7.33229 -v -2.7711 -2.45145 -7.83354 -v -3.89518 -3.07393 -7.81547 -v -4.38702 -3.44545 -7.83122 -v -5.07478 -2.52121 -6.56103 -v -3.59595 -0.128111 -4.91497 -v -3.01339 -1.61036 -7.06429 -v -11.9076 -3.05627 -2.44729 -v -11.4642 -2.59777 -2.63262 -v -11.3807 -2.50191 -2.66664 -v -10.9963 -2.45589 -2.73772 -v -9.54351 -1.92122 -3.00943 -v -9.02267 -1.69639 -3.10809 -v -6.46369 -1.96419 -4.76823 -v -5.91052 -2.75405 -6.16624 -v -5.69149 -3.01245 -6.68104 -v -5.69787 -3.48755 -7.19219 -v -5.7222 -3.6944 -7.32863 -v -5.78445 -4.13586 -7.49004 -v -6.33436 -5.09181 -7.45393 -v -7.1773 -6.32121 -7.1754 -v -8.30267 -6.81799 -5.85339 -v -9.49625 -6.19219 -3.83241 -v -9.72031 -5.83697 -3.05128 -v -9.88143 -5.50292 -2.78206 -v -10.2048 -5.25703 -2.54214 -v -11.0132 -4.37264 -2.38157 -v -10.3347 -3.28058 -2.84892 -v -8.89488 -3.64838 -3.78764 -v -7.39682 -5.1829 -6.51363 -v -7.09365 -2.91284 -5.2027 -v -8.5698 -5.68259 -5.16851 -v -6.25062 -3.7202 -6.81526 -v -7.74301 -4.1912 -5.61262 -v -8.70142 0.594052 -0.920757 -v -6.79699 0.703026 -0.316032 -v -5.87053 -0.099028 0.846976 -v -5.60934 -0.442833 1.28366 -v -5.60657 0.0888788 0.489344 -v -5.53102 0.293355 -0.0556779 -v -5.31261 0.422834 -0.443193 -v -5.21918 0.483345 -0.703625 -v -5.07961 0.530771 -1.05358 -v -5.02496 0.527718 -1.32527 -v -4.68414 0.55934 -2.41843 -v -4.43626 0.629863 -2.94323 -v -4.35969 0.506213 -3.32543 -v -3.97593 -0.133254 -4.57193 -v -4.01385 -0.263501 -4.71016 -v -5.49839 -1.61652 -5.14622 -v -7.7959 -1.95632 -3.82751 -v -8.28439 -1.74111 -3.39577 -v -8.50943 -1.55299 -3.23275 -v -9.24276 -1.10848 -2.90643 -v -9.51959 -0.734962 -2.68105 -v -9.94518 -0.509204 -2.52 -v -10.1194 0.130665 -2.12199 -v -9.9866 0.49603 -1.75844 -v -9.70319 0.877582 -1.27132 -v -9.08794 -0.0765847 -2.05766 -v -5.11385 -0.535856 -4.05713 -v -8.4666 -1.17976 -3.08942 -v -7.39512 0.204022 -1.26135 -v -4.87962 0.368914 -2.61413 -v -6.89682 -1.50643 -4.04277 -v -5.79997 0.354131 -0.842497 -v -6.80961 -0.358092 -2.51956 -v 11.1959 -3.85244 -1.97657 -v 11.5897 -4.46941 -1.60203 -v 11.635 -4.7573 -1.27203 -v 11.6143 -5.1247 -0.762655 -v 10.7871 -5.25766 0.0620276 -v 10.3689 -5.41321 0.683658 -v 9.82201 -5.34246 0.995192 -v 8.79574 -5.3899 1.07006 -v 8.63593 -5.55682 1.00629 -v 8.90097 -6.14035 0.232997 -v 4.1773 0.108464 -1.12358 -v 4.91844 -0.390622 0.436485 -v 4.91401 -0.456217 0.794712 -v 5.59278 -0.347554 0.546112 -v 6.82164 -0.114435 0.152843 -v 6.90477 -0.107049 0.092802 -v 7.95237 -0.263191 -0.902691 -v 6.83938 -2.92594 -6.38791 -v 7.06427 -3.82385 -6.47767 -v 8.75915 -6.01866 -0.508243 -v 9.00918 -6.51361 -0.8432 -v 9.6344 -7.67087 -1.17538 -v 9.91865 -8.29697 -1.41246 -v 9.9463 -8.98907 -2.42912 -v 9.71947 -9.7746 -3.8076 -v 9.26766 -9.31935 -4.56685 -v 8.84103 -8.93539 -5.16779 -v 8.30721 -7.8594 -5.61632 -v 9.68052 -9.04919 -3.54201 -v 9.71911 -8.32666 -2.45901 -v 9.03965 -8.0465 -4.1884 -v 9.05844 -6.98945 -2.35701 -v 8.69724 -0.416741 -1.47101 -v 8.93851 -0.484356 -1.70123 -v 9.193 -0.537614 -1.94412 -v 9.35822 -0.492823 -2.0412 -v 9.4429 -0.502044 -2.0943 -v 9.55262 -0.580751 -2.17612 -v 9.79774 -0.816638 -2.37472 -v 10.8493 -0.994233 -2.72748 -v 10.9286 -1.36502 -2.82725 -v 8.45234 -2.85819 -5.54703 -v 7.56359 -2.82224 -6.05728 -v 6.92526 -2.86857 -6.34005 -v 6.91333 -2.8751 -6.34783 -v 6.88812 -2.83535 -6.32688 -v 9.88231 -1.31778 -2.69931 -v 8.0728 -2.33546 -5.59427 -v 9.13902 -1.70408 -3.72959 -v 9.01551 -2.02018 -4.50899 -v 9.24112 -0.891202 -2.21326 -v 8.62813 -2.33031 -5.18904 -v 9.10216 -1.45939 -2.86325 -v 9.18097 -2.28716 -4.62239 -v 9.34959 -2.23342 -4.19029 -v 9.43874 -2.02307 -3.84721 -v 9.52262 -1.84962 -3.43672 -v 9.88858 -1.37055 -2.7356 -v 9.97292 -1.37318 -2.71743 -v 10.6578 -1.38478 -2.78418 -v 11.4262 -2.25161 -3.07977 -v 11.1491 -3.83057 -1.95336 -v 11.1613 -3.85052 -1.94696 -v 9.86232 -4.75237 0.238385 -v 9.54842 -4.94278 0.477411 -v 8.94152 -5.09735 0.654812 -v 8.53747 -5.22139 0.599743 -v 8.54208 -5.28375 0.192401 -v 8.59503 -5.52132 -0.210122 -v 8.63704 -5.63352 -0.625862 -v 8.67569 -5.7476 -0.761045 -v 8.78515 -5.91158 -1.3542 -v 8.8186 -5.997 -1.90537 -v 8.8466 -6.27868 -2.65807 -v 8.79388 -6.83838 -3.55363 -v 8.5458 -7.08197 -4.84782 -v 8.3055 -7.20489 -5.44861 -v 8.03506 -7.17013 -5.8263 -v 7.58687 -7.06429 -6.31421 -v 7.09222 -6.22165 -6.76013 -v 6.99566 -5.90388 -6.80994 -v 7.11769 -5.44676 -6.57199 -v 7.22574 -4.81445 -6.39822 -v 7.54531 -4.33099 -6.05524 -v 8.17145 -3.53496 -5.58414 -v 8.2829 -3.23598 -5.56374 -v 8.47891 -3.01988 -5.48988 -v 8.71172 -2.8384 -5.34014 -v 8.91588 -2.58714 -4.90522 -v 9.22905 -3.21626 -3.32277 -v 10.4072 -1.86699 -2.8685 -v 10.1464 -3.71109 -1.40823 -v 8.76579 -4.34929 -3.37235 -v 8.34496 -5.61151 -4.79166 -v 7.54086 -6.30524 -6.22704 -v 9.67781 -2.66327 -3.1221 -v 8.76442 -5.78391 -1.78126 -v 8.4693 -3.3148 -5.34054 -v 8.21386 -6.51046 -5.31223 -v 7.77806 -5.35658 -5.75691 -v 8.67782 -5.71098 -3.67877 -v 8.28761 -4.59537 -4.98945 -v 1.93589 -3.13639 -8.07559 -v 2.96972 -2.55539 -7.6485 -v 6.46168 -2.94844 -6.57555 -v 6.48287 -3.24998 -6.73225 -v 6.65251 -3.83651 -6.81666 -v 6.63047 -4.17491 -6.90402 -v 6.53577 -4.92629 -7.12199 -v 6.22202 -5.42954 -7.64814 -v 5.94225 -5.55822 -7.88632 -v 4.47588 -5.97224 -8.66282 -v 3.33678 -5.05508 -8.73225 -v 2.55473 -4.56142 -8.637 -v 2.14119 -3.75666 -8.33357 -v 2.93428 -3.48044 -8.15491 -v 4.72946 -4.99415 -8.39975 -v 4.02671 -2.4857 -7.40436 -v 6.03496 -2.76729 -6.59791 -v 5.79391 -4.84085 -7.7926 -v 3.77326 -4.36602 -8.44775 -v 3.58482 -2.80425 -7.76507 -v 6.08131 -4.03111 -7.22385 -v 4.94066 -4.30357 -8.12438 -v 4.30976 -3.3525 -7.85572 -v -6.69873 -18.1695 2.15848 -v -6.65123 -18.1303 2.61053 -v -6.65005 -18.1919 3.74706 -v -6.59452 -18.248 4.31753 -v -6.60953 -18.2719 4.46994 -v -7.52774 -18.1787 5.15636 -v -8.2386 -17.7983 5.57224 -v -8.99798 -16.0422 5.7175 -v -9.10489 -15.5564 5.6305 -v -8.94158 -14.8465 5.34916 -v -8.85115 -14.3736 5.28458 -v -8.76601 -14.0843 5.16017 -v -9.04013 -13.5063 4.185 -v -9.28124 -13.461 3.89239 -v -10.0332 -13.8429 2.5724 -v -10.2986 -14.034 2.00737 -v -10.4451 -14.0702 1.67098 -v -10.5103 -14.2304 1.23307 -v -10.4303 -14.8195 0.335175 -v -10.3283 -15.0238 -0.154214 -v -10.0309 -15.414 -0.568392 -v -9.81732 -15.7004 -0.680132 -v -9.46997 -16.1514 -0.614495 -v -9.0282 -16.6431 -0.617155 -v -8.59994 -17.1118 -0.389686 -v -8.29905 -17.4767 -0.173699 -v -7.83682 -17.7464 0.305225 -v -7.64837 -17.8425 0.522578 -v -7.12772 -18.0109 1.51616 -v -7.68025 -17.739 4.84566 -v -8.9023 -16.2534 2.43343 -v -7.10701 -17.8596 3.49777 -v -8.83115 -14.9454 4.63058 -v -7.33821 -17.7338 2.37078 -v -8.09006 -16.8863 3.76566 -v -8.23971 -17.3632 0.770131 -v -10.0971 -15.0126 1.4035 -v -8.58815 -16.421 5.16807 -v -9.00825 -16.7204 -0.00615466 -v -9.57552 -14.4795 3.00892 -v -9.33159 -16.2984 1.06898 -v -9.91096 -15.6249 0.0619866 -v 8.3814 -14.9799 6.27751 -v 8.46067 -15.464 5.98351 -v 8.76236 -16.8125 5.91722 -v 8.70327 -17.2075 5.77145 -v 8.45453 -17.6074 5.5089 -v 8.27515 -17.6796 5.34943 -v 7.74341 -18.0918 5.02783 -v 7.04471 -17.7767 4.3167 -v 6.81557 -17.816 3.82756 -v 6.796 -17.8101 3.7521 -v 6.78658 -17.7709 3.57246 -v 6.50413 -17.6945 2.80191 -v 6.61547 -17.6212 2.42455 -v 6.55059 -17.6512 1.96829 -v 6.8621 -17.6354 0.895469 -v 9.67798 -15.38 0.757261 -v 9.7305 -15.27 1.1189 -v 9.61029 -15.0268 2.19635 -v 9.51283 -14.6511 2.81565 -v 8.91128 -14.6703 3.53605 -v 8.01937 -14.2508 5.07888 -v 8.05359 -14.5364 5.5558 -v 8.29367 -15.2241 4.59372 -v 8.37049 -16.2972 2.59206 -v 8.33549 -16.8987 5.24999 -v 7.12357 -17.4404 3.25876 -v 8.85546 -15.2579 3.21689 -v 7.27742 -17.307 1.73947 -v 7.88345 -16.6415 3.88891 -v 3.2997 -20.3881 5.53909 -v 2.77006 -20.1195 6.00748 -v 2.39592 -19.7411 6.15724 -v 1.79724 -19.2007 6.60655 -v 0.903801 -17.5652 6.32278 -v 0.819213 -17.5132 6.3599 -v 0.816415 -17.3996 6.34521 -v 0.872976 -16.4585 6.16572 -v 0.773509 -16.3777 6.13872 -v -0.547262 -17.0551 5.50003 -v -0.973561 -17.5299 4.92954 -v -1.05401 -17.6253 4.77218 -v -1.12574 -17.9811 3.99315 -v -1.2152 -18.0645 3.81685 -v -1.35549 -18.194 3.5383 -v -1.28091 -18.2905 3.2334 -v -1.65231 -18.7287 2.03541 -v -1.52133 -18.7724 1.73952 -v -0.878568 -18.7952 0.622388 -v -0.801691 -18.8344 0.243165 -v -0.266011 -18.7777 0.116888 -v 0.487302 -18.7202 -0.0958914 -v 1.16724 -18.6452 -0.0797194 -v 1.797 -18.5832 0.119665 -v 1.98215 -18.5648 0.221307 -v 2.17779 -18.5519 0.285758 -v 2.36027 -18.5359 0.353912 -v 2.64294 -18.497 0.496052 -v 3.05615 -18.4491 0.756121 -v 3.32277 -18.4161 1.03429 -v 3.70831 -18.378 1.44073 -v 4.03184 -18.3639 1.75021 -v 4.23198 -18.3538 1.87329 -v 4.80725 -18.4013 2.6475 -v 4.70108 -19.2392 3.8415 -v 4.78113 -19.2989 3.9132 -v 4.65522 -19.4986 4.06368 -v 4.49572 -19.6828 4.27025 -v 4.07878 -19.8736 4.63943 -v 3.47393 -20.4479 5.41196 -v 1.77681 -18.6705 5.9658 -v -0.575064 -17.5636 4.78117 -v 0.0633911 -18.6297 0.802927 -v 2.4431 -18.5662 3.27254 -v 2.57915 -19.5432 5.59542 -v -0.585391 -18.574 1.66449 -v 1.23958 -18.587 0.367539 -v 2.84539 -18.4516 1.85583 -v 0.440148 -18.1498 3.5708 -v 3.82994 -18.6094 2.74043 -v 3.79623 -19.2412 4.06544 -v 2.05778 -18.5895 4.72207 -v -0.884839 -18.471 2.4305 -v 2.39938 -18.4968 0.690339 -v 1.4227 -18.4429 1.57717 -v -0.63572 -18.0995 3.62193 -v 0.573386 -17.8004 4.4211 -v 0.359991 -18.3453 2.53648 -v 1.20802 -18.2981 3.52746 -v 3.25102 -19.7958 5.08352 -v 1.62741 -18.4094 2.59641 -v 1.82982 1.1026 -4.29731 -v 2.14285 1.08445 -4.22759 -v 2.95076 0.877488 -3.66644 -v 2.98549 0.855517 -3.62364 -v 3.79793 0.319393 -2.71542 -v 4.12368 0.282059 -1.92775 -v 4.30384 0.0401254 -1.24999 -v 4.56875 -0.177317 -0.761825 -v 4.57058 -0.210269 -0.490365 -v 4.89702 -0.312656 -0.269487 -v 5.22304 -0.380424 0.181221 -v 5.68299 -0.366576 0.289866 -v 6.37003 -0.304144 0.00581551 -v 6.71185 -0.27473 -0.0149846 -v 7.05235 -0.330692 -0.290053 -v 7.89141 -0.313382 -0.890815 -v 7.93923 -0.314016 -0.920161 -v 7.9657 -0.340564 -0.959427 -v 8.22883 -0.450128 -1.21454 -v 8.43247 -0.515643 -1.37359 -v 8.61363 -0.580544 -1.54939 -v 8.73145 -0.656186 -1.6903 -v 8.76697 -0.720041 -1.76831 -v 8.7721 -0.849813 -1.89958 -v 8.75988 -1.10623 -2.26907 -v 8.87818 -1.4298 -2.80345 -v 8.8987 -1.47803 -2.92125 -v 8.92778 -1.64986 -3.58093 -v 8.85436 -1.68043 -3.74827 -v 8.68271 -1.82822 -4.30442 -v 8.55286 -1.90061 -4.57388 -v 8.26347 -2.03901 -5.01986 -v 8.01731 -2.2227 -5.49377 -v 7.84969 -2.24671 -5.59245 -v 7.42064 -2.56668 -5.97796 -v 6.97867 -2.68023 -6.205 -v 6.81232 -2.73732 -6.28186 -v 6.75379 -2.73715 -6.29925 -v 6.63527 -2.72835 -6.33767 -v 6.34126 -2.72592 -6.45932 -v 6.03572 -2.73712 -6.5759 -v 6.01617 -2.72636 -6.57869 -v 5.85948 -2.65841 -6.62155 -v 4.92149 -2.58451 -7.04933 -v 4.49181 -2.33052 -7.08995 -v 4.09961 -2.24 -7.16576 -v 3.52239 -2.00392 -7.02253 -v 2.86916 -1.16863 -6.488 -v 1.76171 0.735625 -4.68584 -v 1.66487 1.01053 -4.4289 -v 2.15187 0.158104 -5.18725 -v 2.7369 -0.0569637 -5.14276 -v 6.18456 -1.18102 -3.30694 -v 5.51754 -0.387007 -0.138093 -v 4.18287 -2.10341 -7.03172 -v 2.31117 -0.186015 -5.544 -v 2.24825 0.599224 -4.61691 -v 2.90344 0.52885 -4.1564 -v 3.42107 -1.02994 -6.21281 -v 6.59803 -1.59551 -5.07391 -v 4.43659 -0.538406 -4.23958 -v 5.33731 -0.6382 -1.96014 -v 7.06308 -1.19329 -1.89896 -v 7.55481 -1.52389 -3.50817 -v 2.74482 -0.569676 -5.86585 -v 3.65393 -1.55781 -6.66293 -v 7.64678 -1.90613 -5.13208 -v 7.18798 -2.17926 -5.72268 -v 6.47164 -2.47556 -6.22422 -v 6.33516 -1.27943 -4.08912 -v 4.30484 -1.22518 -6.06884 -v 3.50179 0.238598 -3.80412 -v 3.62937 -0.242691 -4.69546 -v 5.39263 -0.904666 -3.71166 -v 5.96089 -0.496581 -0.683191 -v 4.75553 -0.22563 -1.33388 -v 4.34791 -0.0232664 -2.25096 -v 5.76271 -0.971029 -2.68868 -v 8.28118 -0.886212 -1.76605 -v 7.38063 -0.591522 -0.964355 -v 6.30434 -0.995099 -1.77953 -v 6.56702 -1.26224 -2.60364 -v 8.45614 -1.47729 -3.02895 -v 7.37405 -1.39978 -2.67078 -v 8.17515 -1.72683 -4.25106 -v 6.86143 -1.38757 -3.41782 -v 7.19747 -1.53097 -4.23492 -v 5.28917 -2.12563 -6.51375 -v 5.4313 -1.34405 -5.44274 -v 4.37997 -1.92762 -6.79422 -v 4.43515 -0.779744 -5.1061 -v 3.86242 0.132564 -3.08555 -v 3.57339 -0.635712 -5.56185 -v 4.83279 -0.281533 -0.577737 -v 4.43921 -0.353131 -3.29897 -v 5.78873 -1.18099 -4.62828 -v 5.10968 -0.934761 -4.6543 -v 5.05985 -0.638208 -2.77254 -v 1.26048 -14.7571 -7.51923 -v 1.61391 -14.1222 -8.00175 -v 1.87284 -13.359 -8.42784 -v 2.11706 -12.859 -8.64877 -v 2.28411 -12.2549 -8.88643 -v 2.32232 -12.0841 -8.94502 -v 2.51235 -11.4023 -9.139 -v 2.64389 -11.2484 -9.17194 -v 2.6727 -11.0391 -9.21257 -v 2.75291 -10.7802 -9.22671 -v 3.10031 -10.3756 -9.23304 -v 4.02232 -9.79451 -9.22524 -v 4.19319 -9.74414 -9.21358 -v 4.49815 -9.97961 -9.06529 -v 5.90631 -9.90898 -8.27079 -v 7.10811 -10.9218 -7.30582 -v 8.2148 -11.3082 -6.29425 -v 8.7225 -11.0683 -5.63808 -v 9.23151 -11.7321 -4.93348 -v 9.622 -12.0219 -4.1483 -v 9.98076 -12.7315 -2.72422 -v 10.1977 -12.891 -0.97509 -v 10.1355 -14.1377 -0.176482 -v 9.787 -15.0687 0.180417 -v 9.6046 -15.4187 0.405968 -v 9.52341 -15.5428 0.486773 -v 9.3482 -15.726 0.605403 -v 9.18502 -15.861 0.750823 -v 8.94719 -16.0392 0.935572 -v 8.58174 -16.3696 1.06587 -v 8.10979 -16.7976 0.826284 -v 7.32337 -17.3813 0.673521 -v 7.03393 -17.5597 0.626916 -v 6.77719 -17.6594 0.335673 -v 6.23446 -17.8087 0.188258 -v 5.86473 -17.8769 0.032473 -v 5.81028 -17.8893 -0.0104367 -v 5.4056 -17.9996 -0.252929 -v 5.11535 -18.0645 -0.483824 -v 4.76998 -18.1185 -0.880798 -v 4.0931 -18.1705 -1.5634 -v 3.41899 -18.1839 -1.97881 -v 2.1625 -17.9792 -3.28478 -v 2.06931 -17.9565 -3.39523 -v 2.05876 -17.887 -3.56022 -v 1.25829 -17.4163 -4.55147 -v 1.05062 -16.7645 -5.43113 -v 0.679545 -16.3491 -5.91016 -v 0.60457 -16.211 -6.06796 -v 0.549024 -16.0492 -6.24893 -v 0.4998 -15.8555 -6.44711 -v 0.652087 -15.1767 -7.01164 -v 1.0161 -15.0351 -7.21567 -v 1.08058 -16.0998 -6.20413 -v 5.37179 -12.6779 -8.19881 -v 8.94052 -15.9579 -1.65372 -v 2.63421 -17.0526 -5.07103 -v 1.4188 -15.3119 -7.01011 -v 8.01085 -12.2902 -6.46064 -v 4.20867 -14.6544 -7.51708 -v 3.85656 -10.857 -9.0447 -v 3.34972 -12.4482 -8.71611 -v 5.7626 -11.141 -8.30145 -v 7.76815 -17.0312 -0.633836 -v 9.63139 -14.2495 -3.36863 -v 9.14863 -15.8788 0.309822 -v 9.71828 -14.9 -0.858731 -v 2.7183 -17.8794 -3.4075 -v 6.69445 -12.7828 -7.40435 -v 8.68633 -11.8452 -5.76163 -v 7.27725 -15.5686 -4.79375 -v 2.93507 -16.0795 -6.3643 -v 3.08804 -13.7476 -8.18434 -v 2.73452 -14.9041 -7.42998 -v 4.76409 -13.8018 -7.92785 -v 6.06211 -17.8126 -0.550002 -v 9.90044 -13.8497 -2.23479 -v 9.27031 -15.0742 -2.83079 -v 9.66072 -13.4775 -3.72397 -v 8.11617 -14.5399 -5.19457 -v 8.29662 -15.3594 -4.04683 -v 5.58873 -17.3002 -3.7367 -v 5.74754 -15.2857 -6.2188 -v 5.85778 -13.6544 -7.5684 -v 8.8628 -13.0972 -5.24432 -v 7.6291 -13.7026 -6.29806 -v 8.13551 -16.3413 -2.70127 -v 9.13848 -14.3695 -4.15261 -v 4.40254 -17.2081 -4.49678 -v 4.26564 -17.9077 -2.68561 -v 5.86252 -17.6355 -2.49267 -v 6.48562 -16.5955 -4.15049 -v 6.93278 -14.8793 -5.85708 -v 5.30878 -14.5859 -7.1558 -v 4.33214 -15.6151 -6.57886 -v 7.49304 -16.145 -3.85419 -v 3.89555 -16.6003 -5.65267 -v 7.1955 -17.2256 -2.10135 -v 5.50509 -16.7471 -4.66901 -v 6.13653 -15.9249 -5.25062 -v 6.29974 -17.1925 -3.43905 -v 6.44628 -14.1865 -6.82055 -v 5.00347 -16.345 -5.4749 -v 6.98854 -16.9314 -3.18964 -f 3 4 2 -f 8 9 7 -f 8 7 6 -f 10 9 8 -f 14 13 4 -f 7 16 15 -f 9 17 16 -f 9 16 7 -f 21 22 20 -f 21 20 19 -f 23 24 22 -f 23 22 21 -f 25 26 23 -f 26 24 23 -f 27 28 25 -f 28 26 25 -f 20 30 29 -f 22 31 30 -f 22 30 20 -f 24 32 31 -f 24 31 22 -f 26 33 24 -f 33 32 24 -f 28 34 26 -f 34 33 26 -f 35 34 28 -f 1 29 36 -f 30 37 36 -f 30 36 29 -f 31 38 37 -f 31 37 30 -f 32 39 38 -f 32 38 31 -f 33 40 32 -f 40 39 32 -f 34 41 33 -f 41 40 33 -f 35 42 34 -f 42 41 34 -f 42 35 11 -f 45 21 19 -f 45 19 44 -f 46 23 21 -f 46 21 45 -f 47 25 46 -f 25 23 46 -f 48 27 47 -f 27 25 47 -f 1 12 43 -f 13 44 12 -f 44 43 12 -f 14 45 13 -f 45 44 13 -f 15 46 14 -f 46 45 14 -f 16 47 46 -f 16 46 15 -f 17 48 47 -f 17 47 16 -f 18 49 48 -f 18 48 17 -f 49 18 11 -f 50 51 52 -f 53 54 52 -f 53 52 51 -f 55 56 54 -f 55 54 53 -f 57 58 56 -f 57 56 55 -f 59 60 57 -f 60 58 57 -f 61 62 59 -f 62 60 59 -f 63 64 61 -f 64 62 61 -f 64 63 65 -f 50 52 66 -f 54 67 52 -f 67 66 52 -f 56 68 54 -f 68 67 54 -f 58 69 56 -f 69 68 56 -f 60 70 69 -f 60 69 58 -f 62 71 70 -f 62 70 60 -f 64 72 71 -f 64 71 62 -f 72 64 65 -f 74 55 73 -f 55 53 73 -f 75 57 74 -f 57 55 74 -f 76 59 57 -f 76 57 75 -f 77 61 59 -f 77 59 76 -f 78 77 76 -f 79 77 78 -f 50 66 80 -f 67 81 80 -f 67 80 66 -f 68 82 81 -f 68 81 67 -f 69 83 82 -f 69 82 68 -f 70 84 69 -f 84 83 69 -f 71 85 70 -f 85 84 70 -f 72 86 71 -f 86 85 71 -f 86 72 65 -f 50 80 87 -f 81 88 87 -f 81 87 80 -f 82 89 88 -f 82 88 81 -f 83 90 89 -f 83 89 82 -f 84 91 83 -f 91 90 83 -f 85 92 84 -f 92 91 84 -f 86 93 85 -f 93 92 85 -f 93 86 65 -f 50 87 94 -f 88 95 94 -f 88 94 87 -f 89 96 95 -f 89 95 88 -f 90 96 89 -f 91 97 90 -f 92 98 91 -f 98 97 91 -f 93 99 92 -f 99 98 92 -f 99 93 65 -f 94 100 101 -f 94 101 50 -f 95 102 100 -f 95 100 94 -f 96 103 102 -f 96 102 95 -f 98 105 97 -f 105 104 97 -f 99 106 98 -f 106 105 98 -f 65 107 99 -f 107 106 99 -f 107 65 108 -f 65 79 108 -f 100 109 110 -f 100 110 101 -f 102 109 100 -f 106 112 105 -f 107 113 106 -f 113 112 106 -f 128 129 127 -f 125 124 129 -f 125 129 128 -f 36 118 1 -f 42 128 41 -f 11 125 42 -f 125 128 42 -f 129 115 127 -f 109 116 110 -f 116 117 110 -f 119 116 109 -f 112 123 122 -f 113 124 123 -f 113 123 112 -f 1 2 12 -f 4 13 2 -f 13 12 2 -f 10 17 9 -f 18 10 11 -f 10 18 17 -f 1 43 29 -f 19 20 29 -f 44 19 29 -f 44 29 43 -f 35 27 48 -f 35 28 27 -f 35 49 11 -f 49 35 48 -f 73 53 51 -f 63 61 77 -f 79 63 77 -f 63 79 65 -f 108 79 78 -f 108 78 115 -f 129 108 115 -f 113 107 108 -f 124 113 108 -f 124 108 129 -f 39 126 38 -f 128 127 41 -f 41 127 40 -f 116 2 117 -f 2 118 117 -f 2 1 118 -f 119 3 116 -f 3 2 116 -f 120 5 119 -f 5 3 119 -f 122 6 121 -f 122 8 6 -f 123 8 122 -f 123 10 8 -f 124 10 123 -f 124 125 10 -f 125 11 10 -f 102 119 109 -f 103 119 102 -f 103 120 119 -f 105 122 104 -f 112 122 105 -f 122 121 104 -f 75 74 114 -f 134 126 135 -f 137 39 138 -f 142 127 143 -f 130 131 150 -f 151 150 131 -f 131 132 151 -f 152 151 132 -f 132 133 152 -f 133 134 152 -f 153 152 134 -f 134 135 153 -f 154 153 135 -f 135 136 154 -f 136 137 154 -f 142 143 155 -f 143 144 155 -f 156 155 144 -f 144 145 156 -f 145 146 156 -f 157 156 146 -f 146 147 157 -f 150 151 160 -f 160 159 150 -f 151 152 161 -f 161 160 151 -f 152 153 162 -f 162 161 152 -f 153 154 163 -f 163 162 153 -f 165 158 176 -f 166 176 158 -f 158 159 167 -f 167 166 158 -f 159 160 168 -f 168 167 159 -f 160 161 168 -f 169 168 161 -f 161 162 169 -f 170 169 162 -f 162 163 170 -f 171 170 163 -f 176 166 193 -f 177 193 166 -f 166 167 178 -f 178 177 166 -f 169 170 179 -f 180 179 170 -f 170 171 180 -f 171 172 181 -f 182 181 172 -f 183 182 172 -f 173 174 188 -f 188 187 173 -f 189 188 174 -f 190 189 175 -f 193 192 176 -f 193 177 205 -f 194 205 177 -f 181 182 196 -f 197 196 182 -f 182 183 198 -f 198 197 182 -f 183 184 199 -f 199 198 183 -f 184 185 199 -f 200 199 185 -f 185 186 201 -f 201 200 185 -f 186 187 202 -f 202 201 186 -f 187 188 203 -f 203 202 187 -f 189 190 204 -f 205 194 211 -f 198 199 206 -f 199 200 207 -f 207 206 199 -f 200 201 208 -f 208 207 200 -f 201 202 209 -f 209 208 201 -f 202 203 210 -f 210 209 202 -f 206 207 212 -f 213 212 207 -f 207 208 214 -f 214 213 207 -f 208 209 214 -f 215 214 209 -f 209 210 216 -f 216 215 209 -f 212 213 218 -f 219 218 213 -f 213 214 220 -f 220 219 213 -f 214 215 221 -f 221 220 214 -f 215 216 222 -f 222 221 215 -f 218 219 223 -f 224 223 219 -f 219 220 225 -f 225 224 219 -f 220 221 225 -f 226 225 221 -f 221 222 226 -f 227 226 222 -f 225 226 228 -f 229 228 226 -f 226 227 229 -f 230 229 227 -f 228 229 231 -f 229 230 232 -f 232 231 229 -f 130 75 131 -f 114 132 131 -f 75 114 131 -f 132 114 133 -f 126 134 133 -f 114 126 133 -f 135 126 136 -f 39 137 136 -f 126 39 136 -f 138 39 139 -f 40 140 139 -f 39 40 139 -f 140 40 141 -f 127 142 141 -f 40 127 141 -f 143 127 144 -f 115 145 144 -f 127 115 144 -f 78 146 145 -f 145 115 78 -f 146 78 147 -f 76 148 147 -f 78 76 147 -f 75 130 149 -f 148 76 149 -f 76 75 149 -f 184 183 172 -f 234 228 235 -f 236 231 237 -f 237 231 238 -f 239 232 240 -f 240 232 241 -f 245 223 246 -f 246 223 247 -f 248 250 247 -f 247 250 246 -f 246 250 245 -f 236 251 235 -f 250 234 251 -f 235 251 234 -f 239 253 238 -f 238 253 237 -f 237 253 236 -f 251 236 253 -f 254 249 255 -f 257 240 241 -f 255 259 254 -f 253 260 251 -f 261 255 252 -f 252 262 261 -f 262 256 261 -f 252 263 262 -f 264 260 253 -f 257 264 240 -f 240 264 239 -f 253 239 264 -f 264 265 260 -f 261 256 265 -f 260 265 256 -f 265 264 259 -f 261 265 255 -f 259 255 265 -f 225 228 234 -f 228 231 236 -f 235 228 236 -f 232 239 238 -f 238 231 232 -f 241 232 230 -f 223 245 244 -f 218 223 244 -f 224 248 247 -f 247 223 224 -f 248 224 233 -f 234 250 233 -f 233 224 234 -f 224 225 234 -f 233 250 248 -f 266 50 267 -f 270 117 271 -f 272 118 273 -f 281 114 282 -f 282 114 283 -f 285 73 286 -f 288 266 305 -f 289 305 266 -f 266 267 289 -f 290 289 267 -f 267 268 290 -f 268 269 290 -f 291 290 269 -f 269 270 291 -f 270 271 291 -f 292 291 271 -f 271 272 292 -f 293 292 272 -f 272 273 293 -f 294 293 273 -f 273 274 294 -f 295 294 274 -f 274 275 295 -f 296 295 275 -f 275 276 296 -f 276 277 296 -f 297 296 277 -f 277 278 297 -f 298 297 278 -f 278 279 298 -f 299 298 279 -f 279 280 299 -f 280 281 299 -f 300 299 281 -f 281 282 300 -f 282 283 300 -f 301 300 283 -f 283 284 301 -f 284 285 301 -f 302 301 285 -f 303 302 285 -f 285 286 303 -f 304 303 286 -f 286 287 304 -f 287 288 304 -f 305 304 288 -f 305 289 322 -f 306 322 289 -f 289 290 306 -f 307 306 290 -f 290 291 307 -f 308 307 291 -f 291 292 308 -f 309 308 292 -f 292 293 310 -f 310 309 292 -f 293 294 311 -f 311 310 293 -f 294 295 312 -f 312 311 294 -f 295 296 313 -f 313 312 295 -f 296 297 314 -f 314 313 296 -f 297 298 315 -f 315 314 297 -f 298 299 316 -f 316 315 298 -f 299 300 317 -f 317 316 299 -f 300 301 317 -f 318 317 301 -f 301 302 318 -f 319 318 302 -f 302 303 319 -f 320 319 303 -f 303 304 320 -f 321 320 304 -f 304 305 321 -f 322 321 305 -f 322 306 338 -f 323 338 306 -f 306 307 323 -f 324 323 307 -f 307 308 324 -f 325 324 308 -f 308 309 325 -f 326 325 309 -f 309 310 327 -f 327 326 309 -f 310 311 327 -f 328 327 311 -f 311 312 328 -f 329 328 312 -f 312 313 330 -f 330 329 312 -f 314 315 331 -f 315 316 332 -f 332 331 315 -f 316 317 333 -f 333 332 316 -f 317 318 334 -f 334 333 317 -f 318 319 334 -f 335 334 319 -f 319 320 335 -f 336 335 320 -f 320 321 336 -f 337 336 321 -f 321 322 338 -f 338 337 321 -f 338 323 339 -f 323 324 339 -f 324 325 339 -f 325 326 339 -f 326 327 339 -f 327 328 339 -f 328 329 339 -f 329 330 339 -f 331 332 339 -f 332 333 339 -f 333 334 339 -f 334 335 339 -f 335 336 339 -f 336 337 339 -f 337 338 339 -f 50 101 268 -f 267 50 268 -f 101 110 269 -f 268 101 269 -f 110 117 270 -f 269 110 270 -f 118 272 271 -f 271 117 118 -f 36 274 273 -f 273 118 36 -f 36 37 275 -f 274 36 275 -f 37 277 276 -f 275 37 276 -f 37 38 278 -f 277 37 278 -f 38 126 279 -f 278 38 279 -f 279 126 280 -f 114 281 280 -f 126 114 280 -f 114 74 284 -f 283 114 284 -f 73 285 284 -f 284 74 73 -f 51 287 286 -f 286 73 51 -f 287 51 288 -f 50 266 288 -f 51 50 288 -f 313 314 330 -f 331 330 314 -f 330 331 339 -f 343 104 344 -f 348 103 349 -f 352 340 364 -f 353 364 340 -f 354 353 340 -f 341 342 355 -f 356 355 342 -f 342 343 356 -f 343 344 356 -f 357 356 344 -f 344 345 357 -f 358 357 345 -f 345 346 358 -f 359 358 346 -f 360 359 346 -f 346 347 360 -f 361 360 347 -f 347 348 361 -f 362 361 348 -f 348 349 362 -f 349 350 362 -f 363 362 350 -f 350 351 363 -f 351 352 363 -f 364 363 352 -f 364 353 376 -f 365 376 353 -f 353 354 365 -f 366 365 354 -f 355 356 367 -f 368 367 356 -f 356 357 368 -f 369 368 357 -f 357 358 369 -f 370 369 358 -f 358 359 370 -f 371 370 359 -f 359 360 372 -f 372 371 359 -f 360 361 373 -f 373 372 360 -f 361 362 374 -f 374 373 361 -f 362 363 375 -f 375 374 362 -f 363 364 376 -f 376 375 363 -f 376 365 388 -f 377 388 365 -f 365 366 377 -f 378 377 366 -f 367 368 379 -f 380 379 368 -f 368 369 381 -f 381 380 368 -f 369 370 382 -f 382 381 369 -f 370 371 382 -f 383 382 371 -f 371 372 384 -f 384 383 371 -f 372 373 385 -f 385 384 372 -f 373 374 385 -f 386 385 374 -f 374 375 387 -f 387 386 374 -f 375 376 388 -f 388 387 375 -f 388 377 399 -f 389 399 377 -f 377 378 389 -f 390 389 378 -f 379 380 392 -f 392 391 379 -f 380 381 393 -f 393 392 380 -f 381 382 394 -f 394 393 381 -f 382 383 394 -f 384 385 395 -f 396 395 385 -f 385 386 396 -f 397 396 386 -f 386 387 397 -f 398 397 387 -f 387 388 399 -f 399 398 387 -f 399 389 400 -f 389 390 400 -f 391 392 400 -f 392 393 400 -f 393 394 400 -f 395 396 400 -f 396 397 400 -f 397 398 400 -f 398 399 400 -f 340 90 97 -f 341 97 342 -f 104 343 342 -f 97 104 342 -f 121 345 344 -f 344 104 121 -f 111 346 345 -f 345 121 111 -f 111 120 347 -f 346 111 347 -f 120 103 348 -f 347 120 348 -f 349 103 96 -f 350 349 96 -f 96 351 350 -f 351 96 352 -f 90 340 352 -f 96 90 352 -f 340 341 354 -f 341 340 97 -f 355 354 341 -f 354 355 366 -f 367 366 355 -f 366 367 378 -f 379 378 367 -f 378 379 391 -f 391 390 378 -f 390 391 400 -f 383 384 394 -f 395 394 384 -f 394 395 400 -f 404 6 405 -f 412 5 413 -f 414 401 424 -f 415 424 401 -f 401 402 415 -f 416 415 402 -f 402 403 416 -f 417 416 403 -f 403 404 417 -f 404 405 417 -f 418 417 405 -f 405 406 418 -f 406 407 418 -f 419 418 407 -f 420 419 407 -f 407 408 420 -f 421 420 408 -f 410 411 422 -f 423 422 411 -f 411 412 423 -f 412 413 423 -f 413 414 423 -f 424 423 414 -f 424 415 433 -f 425 433 415 -f 415 416 425 -f 426 425 416 -f 416 417 426 -f 427 426 417 -f 417 418 428 -f 428 427 417 -f 418 419 429 -f 429 428 418 -f 419 420 429 -f 420 421 430 -f 422 423 432 -f 432 431 422 -f 423 424 433 -f 433 432 423 -f 433 425 442 -f 434 442 425 -f 425 426 434 -f 435 434 426 -f 426 427 436 -f 436 435 426 -f 427 428 437 -f 437 436 427 -f 428 429 438 -f 438 437 428 -f 431 432 440 -f 441 440 432 -f 432 433 441 -f 442 441 433 -f 442 434 450 -f 435 436 443 -f 444 443 436 -f 436 437 445 -f 445 444 436 -f 437 438 446 -f 446 445 437 -f 440 441 448 -f 449 448 441 -f 441 442 449 -f 450 449 442 -f 443 444 451 -f 452 451 444 -f 444 445 452 -f 453 452 445 -f 445 446 453 -f 454 453 446 -f 448 449 457 -f 457 456 448 -f 449 450 458 -f 458 457 449 -f 451 452 459 -f 452 453 459 -f 453 454 459 -f 456 457 459 -f 457 458 459 -f 111 402 401 -f 401 120 111 -f 121 403 402 -f 402 111 121 -f 6 404 403 -f 403 121 6 -f 7 406 405 -f 405 6 7 -f 406 7 407 -f 15 408 407 -f 7 15 407 -f 410 409 14 -f 413 5 414 -f 120 401 414 -f 5 120 414 -f 408 409 421 -f 408 15 409 -f 409 15 14 -f 5 411 3 -f 411 5 412 -f 411 4 3 -f 411 14 4 -f 14 411 410 -f 409 410 421 -f 422 421 410 -f 430 429 420 -f 429 430 439 -f 421 422 430 -f 431 430 422 -f 439 438 429 -f 438 439 447 -f 430 431 439 -f 440 439 431 -f 434 435 450 -f 443 450 435 -f 447 446 438 -f 446 447 455 -f 439 440 447 -f 448 447 440 -f 447 448 456 -f 450 443 458 -f 451 458 443 -f 458 451 459 -f 455 454 446 -f 454 455 459 -f 456 455 447 -f 455 456 459 -f 461 462 469 -f 470 469 462 -f 472 471 463 -f 463 464 472 -f 473 472 464 -f 464 465 473 -f 465 466 473 -f 474 473 466 -f 467 468 477 -f 477 476 467 -f 478 477 468 -f 475 476 480 -f 480 479 475 -f 476 477 481 -f 481 480 476 -f 477 478 482 -f 482 481 477 -f 480 481 484 -f 484 483 480 -f 481 482 485 -f 485 484 481 -f 486 485 482 -f 149 130 460 -f 130 150 461 -f 460 130 461 -f 461 150 462 -f 463 159 464 -f 158 465 464 -f 159 158 464 -f 158 165 466 -f 465 158 466 -f 462 463 470 -f 463 462 150 -f 471 470 463 -f 150 159 463 -f 460 461 468 -f 469 468 461 -f 468 469 478 -f 478 486 482 -f 486 478 469 -f 469 470 486 -f 487 154 488 -f 487 488 498 -f 490 491 501 -f 491 492 501 -f 502 501 492 -f 492 493 502 -f 493 494 502 -f 503 502 494 -f 504 503 494 -f 494 495 504 -f 495 496 504 -f 505 504 496 -f 496 497 505 -f 498 499 507 -f 507 506 498 -f 501 502 514 -f 514 513 501 -f 502 503 515 -f 515 514 502 -f 503 504 516 -f 516 515 503 -f 504 505 517 -f 517 516 504 -f 506 507 518 -f 520 519 508 -f 521 520 508 -f 523 522 509 -f 510 511 524 -f 525 524 511 -f 513 514 528 -f 528 527 513 -f 514 515 529 -f 529 528 514 -f 515 516 530 -f 530 529 515 -f 516 517 531 -f 531 530 516 -f 520 521 535 -f 535 534 520 -f 521 522 535 -f 536 535 522 -f 522 523 536 -f 537 536 523 -f 524 525 539 -f 539 538 524 -f 527 528 541 -f 542 541 528 -f 528 529 542 -f 543 542 529 -f 529 530 544 -f 544 543 529 -f 530 531 544 -f 545 544 531 -f 532 533 546 -f 547 546 533 -f 534 535 549 -f 549 548 534 -f 535 536 549 -f 550 549 536 -f 536 537 551 -f 551 550 536 -f 541 542 554 -f 555 554 542 -f 542 543 555 -f 543 544 556 -f 544 545 556 -f 557 556 545 -f 546 547 558 -f 559 558 547 -f 548 549 561 -f 561 560 548 -f 549 550 562 -f 562 561 549 -f 550 551 563 -f 563 562 550 -f 564 563 551 -f 566 565 552 -f 554 555 568 -f 569 568 555 -f 571 570 556 -f 556 557 571 -f 572 571 557 -f 558 559 573 -f 574 573 559 -f 560 561 576 -f 576 575 560 -f 561 562 576 -f 577 576 562 -f 562 563 578 -f 578 577 562 -f 564 565 579 -f 565 566 580 -f 580 579 565 -f 568 569 582 -f 583 582 569 -f 569 570 583 -f 571 572 584 -f 585 584 572 -f 573 574 586 -f 575 576 586 -f 576 577 586 -f 577 578 586 -f 579 580 586 -f 582 583 586 -f 584 585 586 -f 137 138 489 -f 490 184 491 -f 172 492 491 -f 184 172 491 -f 172 494 493 -f 492 172 493 -f 171 495 494 -f 494 172 171 -f 163 496 495 -f 495 171 163 -f 496 163 497 -f 487 497 163 -f 163 154 487 -f 488 489 498 -f 488 154 489 -f 154 137 489 -f 499 498 489 -f 490 185 184 -f 501 500 490 -f 500 501 513 -f 497 487 505 -f 498 505 487 -f 505 498 506 -f 507 508 519 -f 512 511 500 -f 511 512 525 -f 513 512 500 -f 512 513 527 -f 506 517 505 -f 517 506 518 -f 519 518 507 -f 518 519 533 -f 533 532 518 -f 509 510 523 -f 524 523 510 -f 523 524 538 -f 526 525 512 -f 525 526 539 -f 527 526 512 -f 526 527 541 -f 518 531 517 -f 531 518 532 -f 519 520 533 -f 534 533 520 -f 538 537 523 -f 537 538 552 -f 540 539 526 -f 541 540 526 -f 540 541 554 -f 532 545 531 -f 533 534 547 -f 548 547 534 -f 552 551 537 -f 551 552 565 -f 565 564 551 -f 538 539 552 -f 539 540 552 -f 553 552 540 -f 554 553 540 -f 553 554 568 -f 556 555 543 -f 555 556 570 -f 570 569 555 -f 545 532 557 -f 546 557 532 -f 547 548 559 -f 560 559 548 -f 567 566 552 -f 552 553 567 -f 568 567 553 -f 567 568 582 -f 557 546 572 -f 558 572 546 -f 559 560 574 -f 575 574 560 -f 574 575 586 -f 563 564 578 -f 579 578 564 -f 578 579 586 -f 566 567 581 -f 581 580 566 -f 580 581 586 -f 582 581 567 -f 581 582 586 -f 570 571 583 -f 584 583 571 -f 583 584 586 -f 572 558 585 -f 573 585 558 -f 585 573 586 -f 588 483 589 -f 589 483 590 -f 592 486 593 -f 593 486 594 -f 597 473 598 -f 599 474 600 -f 600 474 601 -f 480 483 588 -f 590 483 484 -f 484 485 591 -f 485 486 592 -f 591 485 592 -f 594 486 470 -f 472 473 597 -f 596 472 597 -f 474 599 598 -f 598 473 474 -f 479 480 588 -f 587 479 588 -f 484 591 590 -f 596 471 472 -f 595 471 596 -f 595 470 471 -f 470 595 594 -f 587 588 602 -f 603 602 588 -f 588 589 603 -f 604 603 589 -f 589 590 604 -f 605 604 590 -f 590 591 605 -f 591 592 605 -f 606 605 592 -f 592 593 606 -f 593 594 606 -f 607 606 594 -f 594 595 607 -f 608 607 595 -f 595 596 608 -f 609 608 596 -f 596 597 609 -f 610 609 597 -f 597 598 610 -f 598 599 610 -f 611 610 599 -f 599 600 611 -f 600 601 611 -f 612 611 601 -f 615 602 616 -f 602 603 617 -f 617 616 602 -f 603 604 618 -f 618 617 603 -f 604 605 619 -f 619 618 604 -f 605 606 619 -f 620 619 606 -f 606 607 620 -f 621 620 607 -f 607 608 621 -f 622 621 608 -f 608 609 622 -f 623 622 609 -f 609 610 623 -f 624 623 610 -f 610 611 624 -f 625 624 611 -f 611 612 626 -f 626 625 611 -f 612 613 627 -f 627 626 612 -f 613 614 628 -f 628 627 613 -f 616 617 630 -f 630 629 616 -f 617 618 631 -f 631 630 617 -f 618 619 632 -f 632 631 618 -f 619 620 632 -f 633 632 620 -f 620 621 633 -f 634 633 621 -f 621 622 634 -f 635 634 622 -f 622 623 635 -f 636 635 623 -f 623 624 636 -f 637 636 624 -f 624 625 637 -f 638 637 625 -f 625 626 639 -f 639 638 625 -f 626 627 640 -f 640 639 626 -f 627 628 641 -f 641 640 627 -f 629 630 643 -f 643 642 629 -f 630 631 644 -f 644 643 630 -f 631 632 645 -f 645 644 631 -f 632 633 646 -f 646 645 632 -f 633 634 646 -f 647 646 634 -f 634 635 647 -f 648 647 635 -f 635 636 648 -f 649 648 636 -f 636 637 649 -f 650 649 637 -f 637 638 650 -f 651 650 638 -f 638 639 652 -f 652 651 638 -f 639 640 653 -f 653 652 639 -f 640 641 654 -f 654 653 640 -f 642 643 656 -f 656 655 642 -f 643 644 657 -f 657 656 643 -f 644 645 658 -f 658 657 644 -f 645 646 659 -f 659 658 645 -f 646 647 659 -f 660 659 647 -f 647 648 660 -f 661 660 648 -f 648 649 661 -f 662 661 649 -f 649 650 662 -f 663 662 650 -f 650 651 663 -f 664 663 651 -f 651 652 665 -f 665 664 651 -f 652 653 666 -f 666 665 652 -f 653 654 667 -f 667 666 653 -f 655 656 669 -f 669 668 655 -f 656 657 670 -f 670 669 656 -f 657 658 671 -f 671 670 657 -f 658 659 672 -f 672 671 658 -f 659 660 672 -f 673 672 660 -f 660 661 673 -f 674 673 661 -f 661 662 674 -f 675 674 662 -f 662 663 675 -f 676 675 663 -f 663 664 676 -f 677 676 664 -f 664 665 678 -f 678 677 664 -f 665 666 679 -f 679 678 665 -f 666 667 680 -f 680 679 666 -f 668 669 681 -f 669 670 681 -f 670 671 681 -f 671 672 681 -f 672 673 681 -f 673 674 681 -f 674 675 681 -f 675 676 681 -f 676 677 681 -f 677 678 681 -f 678 679 681 -f 679 680 681 -f 616 628 615 -f 628 616 629 -f 614 615 628 -f 629 641 628 -f 641 629 642 -f 642 654 641 -f 654 642 655 -f 655 667 654 -f 667 655 668 -f 668 680 667 -f 680 668 681 -f 682 178 683 -f 686 195 687 -f 691 690 682 -f 682 683 691 -f 684 685 693 -f 685 686 693 -f 694 693 686 -f 686 687 694 -f 695 694 687 -f 697 696 688 -f 700 699 689 -f 689 690 700 -f 701 700 690 -f 690 691 702 -f 702 701 690 -f 691 692 702 -f 703 702 692 -f 693 694 704 -f 705 704 694 -f 694 695 706 -f 706 705 694 -f 695 696 707 -f 707 706 695 -f 696 697 708 -f 708 707 696 -f 709 708 697 -f 717 698 737 -f 718 737 698 -f 698 699 719 -f 719 718 698 -f 699 700 719 -f 720 719 700 -f 700 701 720 -f 721 720 701 -f 701 702 722 -f 722 721 701 -f 702 703 723 -f 723 722 702 -f 704 705 724 -f 725 724 705 -f 705 706 726 -f 726 725 705 -f 706 707 727 -f 727 726 706 -f 707 708 728 -f 728 727 707 -f 708 709 729 -f 729 728 708 -f 709 710 730 -f 730 729 709 -f 710 711 731 -f 731 730 710 -f 712 713 732 -f 733 732 713 -f 713 714 733 -f 734 733 714 -f 714 715 734 -f 735 734 715 -f 715 716 735 -f 736 735 716 -f 737 718 758 -f 738 758 718 -f 718 719 738 -f 739 738 719 -f 719 720 739 -f 740 739 720 -f 720 721 740 -f 741 740 721 -f 721 722 741 -f 742 741 722 -f 722 723 742 -f 743 742 723 -f 724 725 745 -f 745 744 724 -f 725 726 746 -f 746 745 725 -f 726 727 747 -f 747 746 726 -f 727 728 748 -f 748 747 727 -f 728 729 749 -f 749 748 728 -f 729 730 750 -f 750 749 729 -f 730 731 751 -f 751 750 730 -f 732 733 752 -f 753 752 733 -f 733 734 753 -f 754 753 734 -f 734 735 754 -f 755 754 735 -f 735 736 755 -f 756 755 736 -f 758 757 737 -f 758 738 779 -f 759 779 738 -f 738 739 760 -f 760 759 738 -f 739 740 761 -f 761 760 739 -f 740 741 762 -f 762 761 740 -f 741 742 763 -f 763 762 741 -f 742 743 764 -f 764 763 742 -f 744 745 765 -f 766 765 745 -f 745 746 766 -f 767 766 746 -f 746 747 767 -f 768 767 747 -f 747 748 768 -f 769 768 748 -f 748 749 769 -f 770 769 749 -f 749 750 771 -f 771 770 749 -f 750 751 772 -f 772 771 750 -f 752 753 773 -f 774 773 753 -f 753 754 774 -f 775 774 754 -f 754 755 775 -f 776 775 755 -f 755 756 776 -f 777 776 756 -f 756 757 777 -f 778 777 757 -f 757 758 779 -f 779 778 757 -f 779 759 795 -f 760 761 780 -f 781 780 761 -f 761 762 781 -f 782 781 762 -f 762 763 782 -f 783 782 763 -f 763 764 784 -f 784 783 763 -f 765 766 786 -f 786 785 765 -f 766 767 787 -f 787 786 766 -f 767 768 788 -f 788 787 767 -f 768 769 789 -f 789 788 768 -f 769 770 790 -f 790 789 769 -f 770 771 791 -f 791 790 770 -f 771 772 792 -f 792 791 771 -f 775 776 793 -f 778 779 794 -f 795 794 779 -f 780 781 796 -f 781 782 796 -f 782 783 796 -f 783 784 796 -f 785 786 796 -f 786 787 796 -f 787 788 796 -f 788 789 796 -f 789 790 796 -f 790 791 796 -f 791 792 796 -f 794 795 796 -f 195 686 685 -f 687 195 217 -f 682 177 178 -f 682 194 177 -f 690 689 682 -f 683 684 691 -f 692 691 684 -f 167 168 684 -f 168 169 684 -f 684 178 167 -f 683 178 684 -f 179 684 169 -f 684 179 195 -f 684 195 685 -f 687 688 695 -f 688 687 217 -f 696 695 688 -f 693 692 684 -f 692 693 704 -f 704 703 692 -f 703 704 724 -f 711 712 732 -f 724 723 703 -f 723 724 744 -f 732 731 711 -f 731 732 752 -f 716 717 736 -f 737 736 717 -f 736 737 757 -f 757 756 736 -f 744 743 723 -f 743 744 765 -f 752 751 731 -f 751 752 773 -f 765 764 743 -f 764 765 785 -f 773 772 751 -f 759 760 795 -f 780 795 760 -f 795 780 796 -f 785 784 764 -f 784 785 796 -f 772 773 792 -f 793 792 773 -f 773 774 793 -f 774 775 793 -f 792 793 796 -f 794 793 776 -f 793 794 796 -f 776 777 794 -f 777 778 794 -f 797 195 798 -f 800 180 801 -f 807 797 817 -f 808 817 797 -f 809 808 797 -f 797 798 809 -f 810 809 798 -f 798 799 810 -f 799 800 810 -f 811 810 800 -f 800 801 811 -f 812 811 801 -f 814 813 803 -f 803 804 814 -f 815 814 804 -f 817 808 833 -f 818 833 808 -f 808 809 819 -f 819 818 808 -f 809 810 820 -f 820 819 809 -f 810 811 820 -f 821 820 811 -f 811 812 822 -f 822 821 811 -f 813 814 823 -f 824 823 814 -f 814 815 824 -f 825 824 815 -f 832 831 816 -f 833 818 849 -f 834 849 818 -f 818 819 835 -f 835 834 818 -f 819 820 836 -f 836 835 819 -f 820 821 836 -f 837 836 821 -f 821 822 838 -f 838 837 821 -f 823 824 840 -f 840 839 823 -f 824 825 841 -f 841 840 824 -f 825 826 841 -f 842 841 826 -f 826 827 843 -f 843 842 826 -f 827 828 844 -f 844 843 827 -f 828 829 845 -f 845 844 828 -f 829 830 846 -f 846 845 829 -f 830 831 846 -f 847 846 831 -f 831 832 847 -f 848 847 832 -f 849 834 865 -f 850 865 834 -f 834 835 851 -f 851 850 834 -f 835 836 852 -f 852 851 835 -f 836 837 852 -f 853 852 837 -f 839 840 856 -f 856 855 839 -f 840 841 857 -f 857 856 840 -f 841 842 858 -f 858 857 841 -f 842 843 859 -f 859 858 842 -f 843 844 860 -f 860 859 843 -f 844 845 861 -f 861 860 844 -f 845 846 861 -f 862 861 846 -f 846 847 862 -f 863 862 847 -f 847 848 863 -f 864 863 848 -f 865 850 866 -f 866 881 865 -f 850 851 867 -f 867 866 850 -f 851 852 868 -f 868 867 851 -f 852 853 868 -f 869 868 853 -f 870 869 853 -f 855 856 871 -f 872 871 856 -f 856 857 872 -f 873 872 857 -f 857 858 873 -f 874 873 858 -f 858 859 874 -f 875 874 859 -f 859 860 876 -f 876 875 859 -f 860 861 877 -f 877 876 860 -f 861 862 878 -f 878 877 861 -f 862 863 878 -f 879 878 863 -f 863 864 880 -f 880 879 863 -f 881 866 897 -f 882 897 866 -f 866 867 883 -f 883 882 866 -f 867 868 883 -f 884 883 868 -f 868 869 884 -f 885 884 869 -f 871 872 887 -f 888 887 872 -f 872 873 889 -f 889 888 872 -f 873 874 889 -f 890 889 874 -f 874 875 891 -f 891 890 874 -f 875 876 892 -f 892 891 875 -f 876 877 893 -f 893 892 876 -f 877 878 894 -f 894 893 877 -f 878 879 894 -f 895 894 879 -f 879 880 895 -f 896 895 880 -f 897 882 898 -f 898 913 897 -f 882 883 899 -f 899 898 882 -f 883 884 899 -f 900 899 884 -f 884 885 900 -f 901 900 885 -f 902 901 885 -f 887 888 903 -f 904 903 888 -f 888 889 904 -f 905 904 889 -f 889 890 905 -f 906 905 890 -f 890 891 907 -f 907 906 890 -f 891 892 908 -f 908 907 891 -f 892 893 909 -f 909 908 892 -f 893 894 910 -f 910 909 893 -f 894 895 910 -f 911 910 895 -f 895 896 911 -f 912 911 896 -f 913 898 914 -f 898 899 914 -f 899 900 914 -f 900 901 914 -f 901 902 914 -f 903 904 914 -f 904 905 914 -f 905 906 914 -f 906 907 914 -f 907 908 914 -f 908 909 914 -f 909 910 914 -f 910 911 914 -f 911 912 914 -f 798 195 179 -f 180 800 799 -f 799 798 179 -f 179 180 799 -f 171 181 802 -f 181 196 804 -f 803 181 804 -f 806 217 807 -f 195 797 807 -f 217 195 807 -f 802 180 171 -f 801 180 802 -f 802 803 813 -f 802 181 803 -f 805 217 806 -f 801 802 812 -f 813 812 802 -f 812 813 823 -f 805 806 816 -f 806 807 816 -f 817 816 807 -f 823 822 812 -f 822 823 839 -f 816 817 832 -f 833 832 817 -f 839 838 822 -f 838 839 855 -f 855 854 838 -f 832 833 848 -f 849 848 833 -f 837 838 854 -f 854 853 837 -f 853 854 870 -f 848 849 864 -f 865 864 849 -f 864 865 881 -f 854 855 870 -f 871 870 855 -f 870 871 887 -f 887 886 870 -f 881 880 864 -f 880 881 897 -f 869 870 886 -f 886 885 869 -f 885 886 902 -f 897 896 880 -f 896 897 913 -f 886 887 902 -f 903 902 887 -f 902 903 914 -f 913 912 896 -f 912 913 914 -f 926 216 927 -f 915 916 930 -f 931 930 916 -f 932 931 916 -f 916 917 932 -f 933 932 917 -f 917 918 933 -f 934 933 918 -f 918 919 934 -f 935 934 919 -f 919 920 935 -f 936 935 920 -f 920 921 936 -f 921 922 936 -f 937 936 922 -f 922 923 937 -f 938 937 923 -f 923 924 938 -f 924 925 938 -f 939 938 925 -f 926 927 941 -f 927 928 941 -f 942 941 928 -f 928 929 942 -f 943 942 929 -f 943 930 956 -f 944 956 930 -f 930 931 944 -f 945 944 931 -f 931 932 946 -f 946 945 931 -f 932 933 947 -f 947 946 932 -f 933 934 948 -f 948 947 933 -f 934 935 949 -f 949 948 934 -f 936 937 950 -f 937 938 951 -f 951 950 937 -f 938 939 952 -f 952 951 938 -f 939 940 952 -f 953 952 940 -f 940 941 953 -f 954 953 941 -f 941 942 954 -f 955 954 942 -f 942 943 955 -f 956 955 943 -f 956 944 969 -f 957 969 944 -f 944 945 957 -f 958 957 945 -f 945 946 959 -f 959 958 945 -f 946 947 960 -f 960 959 946 -f 947 948 961 -f 961 960 947 -f 948 949 962 -f 962 961 948 -f 950 951 964 -f 964 963 950 -f 951 952 965 -f 965 964 951 -f 952 953 965 -f 966 965 953 -f 953 954 966 -f 967 966 954 -f 954 955 967 -f 968 967 955 -f 955 956 968 -f 969 968 956 -f 969 957 982 -f 970 982 957 -f 957 958 970 -f 971 970 958 -f 958 959 972 -f 972 971 958 -f 959 960 973 -f 973 972 959 -f 960 961 974 -f 974 973 960 -f 961 962 975 -f 975 974 961 -f 963 964 977 -f 977 976 963 -f 964 965 978 -f 978 977 964 -f 965 966 978 -f 979 978 966 -f 966 967 979 -f 980 979 967 -f 967 968 980 -f 981 980 968 -f 968 969 981 -f 982 981 969 -f 982 970 983 -f 970 971 983 -f 971 972 983 -f 972 973 983 -f 973 974 983 -f 974 975 983 -f 976 977 983 -f 977 978 983 -f 978 979 983 -f 979 980 983 -f 980 981 983 -f 981 982 983 -f 915 203 188 -f 916 915 188 -f 188 189 916 -f 917 916 189 -f 189 918 917 -f 189 204 919 -f 918 189 919 -f 216 210 928 -f 927 216 928 -f 928 210 929 -f 210 203 929 -f 203 915 929 -f 929 915 943 -f 930 943 915 -f 222 216 926 -f 941 940 926 -f 939 925 227 -f 940 222 926 -f 227 222 940 -f 940 939 227 -f 935 936 949 -f 950 949 936 -f 949 950 963 -f 963 962 949 -f 962 963 976 -f 976 975 962 -f 975 976 983 -f 985 242 986 -f 987 805 988 -f 992 263 993 -f 995 996 997 -f 984 997 996 -f 985 998 984 -f 997 984 998 -f 998 985 986 -f 989 999 988 -f 988 999 987 -f 998 987 999 -f 994 995 1000 -f 997 1000 995 -f 993 1000 992 -f 998 1001 997 -f 1000 997 1001 -f 258 242 985 -f 984 258 985 -f 816 989 988 -f 988 805 816 -f 831 830 990 -f 830 829 991 -f 993 263 252 -f 258 984 996 -f 995 258 996 -f 987 217 805 -f 986 987 998 -f 986 242 987 -f 242 217 987 -f 990 999 989 -f 989 816 990 -f 816 831 990 -f 990 991 999 -f 990 830 991 -f 994 1000 993 -f 252 994 993 -f 1003 1004 1002 -f 1003 1005 1004 -f 252 255 1002 -f 249 1003 1002 -f 1002 255 249 -f 1008 713 1009 -f 1011 1005 1012 -f 1014 249 1015 -f 1015 249 1016 -f 1013 1021 1012 -f 1012 1021 1011 -f 1016 1022 1015 -f 1015 1022 1014 -f 1021 1013 1022 -f 1022 1023 1021 -f 1018 1021 1023 -f 1018 1023 1017 -f 1006 1007 1024 -f 1025 1018 1017 -f 1009 1010 1026 -f 1026 1019 1024 -f 1009 1026 1008 -f 1024 1007 1026 -f 1017 1027 1025 -f 1027 1019 1025 -f 1028 1019 1027 -f 1029 1017 1020 -f 1017 1029 1027 -f 1028 1027 1029 -f 1024 1031 1030 -f 1028 1031 1019 -f 1031 1024 1019 -f 714 1007 1006 -f 1006 715 714 -f 712 1010 1009 -f 1009 713 712 -f 1003 1013 1012 -f 1012 1005 1003 -f 1016 249 254 -f 716 715 1006 -f 1024 1030 1006 -f 1008 714 713 -f 1007 714 1008 -f 1008 1026 1007 -f 1014 1022 1013 -f 1013 1003 1014 -f 1003 249 1014 -f 1032 256 1033 -f 1036 1000 1037 -f 1038 1001 1039 -f 1039 1001 1040 -f 1042 999 1043 -f 1043 999 1044 -f 1047 243 1048 -f 1048 243 1049 -f 1051 250 1052 -f 1032 1054 1055 -f 1053 1054 1056 -f 1033 1056 1032 -f 1054 1032 1056 -f 1035 1058 1034 -f 1034 1058 1033 -f 1056 1033 1058 -f 1059 1051 1052 -f 1056 1059 1053 -f 1052 1053 1059 -f 1049 1060 1048 -f 1048 1060 1047 -f 1059 1060 1051 -f 1050 1051 1060 -f 1061 1036 1037 -f 1038 1062 1037 -f 1037 1062 1061 -f 1057 1061 1062 -f 1057 1063 1060 -f 1060 1063 1047 -f 1039 1064 1038 -f 1062 1038 1064 -f 1064 1039 1040 -f 1040 1041 1064 -f 1065 1044 1045 -f 1044 1065 1043 -f 1042 1043 1065 -f 1064 1041 1065 -f 1042 1065 1041 -f 1066 1060 1059 -f 1058 1066 1056 -f 1059 1056 1066 -f 1066 1058 1061 -f 1061 1057 1066 -f 1060 1066 1057 -f 1063 1057 1067 -f 1062 1067 1057 -f 1067 1062 1064 -f 262 1034 1033 -f 1033 256 262 -f 262 263 1035 -f 1034 262 1035 -f 992 1000 1036 -f 1000 1001 1038 -f 1037 1000 1038 -f 1001 998 1041 -f 1040 1001 1041 -f 998 999 1042 -f 1041 998 1042 -f 991 1045 1044 -f 1044 999 991 -f 1045 991 829 -f 1049 243 244 -f 250 1051 1050 -f 1050 245 250 -f 251 1053 1052 -f 1052 250 251 -f 260 1054 1053 -f 1053 251 260 -f 1054 260 1055 -f 256 1032 1055 -f 260 256 1055 -f 263 992 1036 -f 1058 1036 1061 -f 1035 263 1036 -f 1036 1058 1035 -f 1046 829 828 -f 1045 1046 1065 -f 1045 829 1046 -f 1050 1060 1049 -f 244 1050 1049 -f 1050 244 245 -f 1068 142 1069 -f 1070 155 1071 -f 1075 173 1076 -f 1077 1075 1076 -f 1071 1078 1070 -f 1069 1070 1078 -f 1069 1078 1068 -f 1071 1072 1078 -f 1079 1073 1074 -f 1077 1079 1075 -f 1074 1075 1079 -f 1079 1077 1078 -f 1078 1072 1079 -f 1073 1079 1072 -f 141 142 1068 -f 155 1070 1069 -f 1069 142 155 -f 1071 155 164 -f 1072 1071 164 -f 164 1073 1072 -f 164 174 1074 -f 1073 164 1074 -f 174 173 1075 -f 1074 174 1075 -f 1081 510 1082 -f 1082 510 1083 -f 1087 1077 1088 -f 1090 173 1091 -f 1096 490 1097 -f 1097 490 1098 -f 1080 1081 1099 -f 1097 1098 1100 -f 1098 1099 1100 -f 1083 1100 1082 -f 1082 1100 1081 -f 1099 1081 1100 -f 1085 1101 1084 -f 1100 1084 1101 -f 1095 1096 1101 -f 1096 1097 1101 -f 1100 1101 1097 -f 1102 1092 1093 -f 1087 1103 1086 -f 1101 1104 1095 -f 1091 1092 1105 -f 1102 1105 1092 -f 1091 1105 1090 -f 1089 1090 1105 -f 1089 1105 1088 -f 1103 1087 1105 -f 1088 1105 1087 -f 1105 1106 1103 -f 1104 1101 1106 -f 1103 1106 1101 -f 1104 1106 1102 -f 1106 1105 1102 -f 510 1081 1080 -f 1080 511 510 -f 1083 510 509 -f 1077 1087 1086 -f 1077 1076 1089 -f 1088 1077 1089 -f 1076 173 1090 -f 1089 1076 1090 -f 173 187 1092 -f 1091 173 1092 -f 187 186 1093 -f 1092 187 1093 -f 1094 186 185 -f 490 1096 1095 -f 1095 185 490 -f 500 1099 1098 -f 1098 490 500 -f 1084 1100 1083 -f 509 1084 1083 -f 1094 1102 1093 -f 1093 186 1094 -f 1102 1094 1104 -f 1104 1094 1095 -f 1095 1094 185 -f 1099 500 1080 -f 500 511 1080 -f 1108 499 1109 -f 1112 139 1113 -f 1113 139 1114 -f 1115 140 1116 -f 1116 140 1117 -f 1118 1068 1119 -f 1120 1078 1121 -f 1123 1101 1124 -f 1127 509 1128 -f 1108 1109 1111 -f 1109 1110 1111 -f 1108 1111 1112 -f 1130 1132 1129 -f 1129 1132 1128 -f 1127 1128 1132 -f 1121 1133 1120 -f 1119 1120 1133 -f 1134 1123 1124 -f 1124 1125 1134 -f 1126 1127 1134 -f 1132 1134 1127 -f 1132 1107 1135 -f 1136 1116 1117 -f 1133 1136 1119 -f 1118 1119 1136 -f 1134 1137 1123 -f 1133 1122 1137 -f 1115 1116 1138 -f 1136 1138 1116 -f 1115 1138 1114 -f 1114 1138 1113 -f 1113 1138 1112 -f 1108 1112 1138 -f 1134 1139 1137 -f 1136 1133 1139 -f 1137 1139 1133 -f 1139 1134 1132 -f 1136 1139 1138 -f 1132 1135 1139 -f 1138 1139 1135 -f 507 499 1108 -f 499 489 1110 -f 1109 499 1110 -f 138 1111 1110 -f 1110 489 138 -f 139 1112 1111 -f 1111 138 139 -f 140 1115 1114 -f 1114 139 140 -f 1117 140 141 -f 1068 1078 1120 -f 1119 1068 1120 -f 1122 1077 1086 -f 1085 1125 1124 -f 1124 1101 1085 -f 1085 1084 1126 -f 1084 509 1127 -f 1126 1084 1127 -f 509 522 1129 -f 1128 509 1129 -f 522 521 1130 -f 1129 522 1130 -f 508 1107 1131 -f 521 508 1131 -f 508 507 1108 -f 1135 1108 1138 -f 1107 508 1108 -f 1108 1135 1107 -f 1117 1118 1136 -f 141 1118 1117 -f 1118 141 1068 -f 1122 1133 1121 -f 1121 1078 1122 -f 1078 1077 1122 -f 1086 1137 1122 -f 1123 1103 1101 -f 1103 1123 1086 -f 1123 1137 1086 -f 1125 1126 1134 -f 1125 1085 1126 -f 1130 1131 1132 -f 1130 521 1131 -f 1107 1132 1131 -f 1141 613 1142 -f 1144 601 1145 -f 1147 466 1148 -f 1140 1141 1144 -f 1141 1142 1144 -f 1142 1143 1144 -f 1140 1144 1145 -f 613 1141 1140 -f 1140 614 613 -f 612 601 1144 -f 1143 612 1144 -f 601 474 1146 -f 1145 601 1146 -f 474 466 1147 -f 1146 474 1147 -f 466 165 1149 -f 1148 466 1149 -f 1140 1145 1146 -f 1142 613 1143 -f 613 612 1143 -f 1154 467 1155 -f 1151 1152 1153 -f 149 460 1152 -f 1151 149 1152 -f 468 1153 1152 -f 1152 460 468 -f 467 476 1156 -f 1155 467 1156 -f 1153 468 1154 -f 468 467 1154 -f 1159 1149 1160 -f 1161 165 1162 -f 1165 191 1166 -f 1165 1168 1164 -f 1168 1163 1164 -f 1169 1161 1162 -f 1162 1163 1169 -f 1168 1169 1163 -f 1168 1170 1169 -f 1166 1167 1170 -f 1166 1170 1165 -f 1168 1165 1170 -f 1161 1171 1160 -f 1171 1161 1169 -f 1169 1170 1171 -f 1149 165 1161 -f 1160 1149 1161 -f 176 1163 1162 -f 1162 165 176 -f 192 1164 1163 -f 1163 176 192 -f 192 191 1165 -f 1164 192 1165 -f 191 190 1167 -f 1166 191 1167 -f 1173 475 1174 -f 1174 475 1175 -f 1175 475 1176 -f 1176 475 1177 -f 1177 475 1178 -f 1183 1157 1184 -f 1184 1157 1185 -f 1183 1184 1185 -f 1181 1182 1187 -f 1176 1177 1190 -f 1186 1190 1178 -f 1177 1178 1190 -f 1176 1190 1175 -f 1175 1190 1174 -f 1187 1191 1181 -f 1186 1192 1190 -f 476 475 1173 -f 1172 476 1173 -f 1178 475 479 -f 587 602 1179 -f 615 1180 1179 -f 1179 602 615 -f 1158 1157 1183 -f 1182 1158 1183 -f 1179 479 587 -f 479 1179 1178 -f 1178 1179 1186 -f 1193 1189 1194 -f 1195 1188 1196 -f 1197 1186 1198 -f 1201 1140 1202 -f 1206 1148 1207 -f 1209 1159 1210 -f 1212 1171 1213 -f 1214 1170 1215 -f 1216 1167 1217 -f 1219 175 1220 -f 1223 1158 1224 -f 1227 1191 1228 -f 1201 1202 1203 -f 1194 1229 1193 -f 1207 1229 1206 -f 1230 1196 1197 -f 1199 1230 1198 -f 1197 1198 1230 -f 1205 1231 1204 -f 1200 1231 1230 -f 1227 1228 1232 -f 1229 1232 1228 -f 1209 1232 1208 -f 1229 1207 1232 -f 1208 1232 1207 -f 1221 1234 1220 -f 1217 1218 1234 -f 1218 1219 1234 -f 1220 1234 1219 -f 1195 1196 1235 -f 1230 1235 1196 -f 1229 1194 1235 -f 1195 1235 1194 -f 1235 1230 1231 -f 1213 1236 1212 -f 1212 1236 1211 -f 1232 1209 1236 -f 1210 1236 1209 -f 1237 1224 1225 -f 1225 1226 1237 -f 1232 1237 1227 -f 1234 1238 1217 -f 1216 1217 1238 -f 1216 1238 1215 -f 1233 1214 1238 -f 1215 1238 1214 -f 1222 1239 1221 -f 1234 1221 1239 -f 1234 1239 1238 -f 1233 1238 1239 -f 1239 1222 1223 -f 1236 1240 1232 -f 1233 1240 1214 -f 1236 1213 1240 -f 1241 1233 1239 -f 1237 1241 1224 -f 1239 1223 1241 -f 1224 1241 1223 -f 1233 1241 1240 -f 1240 1241 1232 -f 1237 1232 1241 -f 1188 1195 1194 -f 1194 1189 1188 -f 1179 1199 1198 -f 1198 1186 1179 -f 1199 1179 1180 -f 1200 614 1140 -f 1202 1140 1203 -f 1140 1146 1203 -f 1146 1147 1205 -f 1204 1146 1205 -f 1147 1148 1206 -f 1149 1208 1207 -f 1207 1148 1149 -f 1159 1209 1208 -f 1208 1149 1159 -f 1160 1171 1212 -f 1211 1160 1212 -f 1171 1170 1214 -f 1167 1216 1215 -f 1215 1170 1167 -f 1167 190 1218 -f 1217 1167 1218 -f 190 175 1219 -f 1218 190 1219 -f 1158 1223 1222 -f 1182 1225 1224 -f 1224 1158 1182 -f 1181 1226 1225 -f 1225 1182 1181 -f 1181 1191 1227 -f 1196 1192 1197 -f 1196 1188 1192 -f 1186 1197 1192 -f 1199 1180 1230 -f 1200 615 614 -f 1180 615 1200 -f 1200 1230 1180 -f 1203 1146 1204 -f 1204 1231 1203 -f 1205 1206 1231 -f 1205 1147 1206 -f 1229 1235 1206 -f 1231 1206 1235 -f 1211 1236 1210 -f 1210 1159 1211 -f 1211 1159 1160 -f 1214 1240 1213 -f 1213 1171 1214 -f 1226 1227 1237 -f 1226 1181 1227 -f 1193 1229 1228 -f 1228 1191 1193 -f 1191 1189 1193 -f 1242 164 1243 -f 1244 1157 1245 -f 1246 1158 1247 -f 1249 175 1250 -f 1243 1255 1242 -f 1253 1254 1255 -f 1242 1255 1254 -f 1252 1256 1251 -f 1256 1250 1251 -f 1245 1258 1244 -f 1259 1248 1249 -f 1256 1259 1250 -f 1249 1250 1259 -f 1260 1256 1252 -f 1255 1260 1253 -f 1252 1253 1260 -f 1257 1261 1243 -f 1261 1255 1243 -f 1259 1262 1248 -f 1247 1262 1246 -f 1258 1245 1262 -f 1246 1262 1245 -f 1260 1263 1256 -f 1263 1259 1256 -f 1259 1263 1262 -f 1263 1264 1262 -f 1261 1257 1264 -f 1264 1263 1260 -f 1261 1264 1255 -f 1260 1255 1264 -f 1158 1246 1245 -f 1245 1157 1158 -f 1247 1158 1222 -f 1221 1220 1248 -f 1220 175 1249 -f 1248 1220 1249 -f 175 189 1251 -f 1250 175 1251 -f 1251 189 1252 -f 1253 1252 189 -f 189 174 1253 -f 1253 174 1254 -f 1242 1254 174 -f 174 164 1242 -f 1200 1201 1231 -f 1140 1201 1200 -f 1203 1231 1201 -f 1222 1221 1248 -f 1247 1248 1262 -f 1222 1248 1247 -f 1267 1065 1268 -f 1268 1065 1269 -f 1274 815 1275 -f 1275 815 1276 -f 1277 196 1278 -f 1279 197 1280 -f 1280 197 1281 -f 1284 212 1285 -f 1286 218 1287 -f 1291 1063 1292 -f 1268 1269 1294 -f 1270 1294 1269 -f 1296 1266 1267 -f 1267 1268 1296 -f 1294 1296 1268 -f 1297 1274 1275 -f 1275 1276 1297 -f 1274 1297 1273 -f 1265 1266 1298 -f 1296 1298 1266 -f 1295 1299 1297 -f 1299 1295 1298 -f 1294 1299 1296 -f 1298 1296 1299 -f 1295 1300 1298 -f 1290 1291 1300 -f 1291 1292 1300 -f 1292 1293 1300 -f 1298 1300 1293 -f 1282 1301 1281 -f 1280 1281 1301 -f 1282 1283 1301 -f 1302 1297 1299 -f 1299 1294 1302 -f 1294 1271 1302 -f 1297 1302 1273 -f 1303 1287 1288 -f 1288 1289 1303 -f 1304 1278 1279 -f 1279 1280 1304 -f 1301 1304 1280 -f 1297 1277 1304 -f 1278 1304 1277 -f 1297 1304 1295 -f 1301 1295 1304 -f 1301 1305 1295 -f 1305 1300 1295 -f 1300 1305 1303 -f 1306 1303 1305 -f 1305 1301 1306 -f 1283 1306 1301 -f 1285 1286 1306 -f 1286 1287 1306 -f 1303 1306 1287 -f 1285 1306 1284 -f 1283 1284 1306 -f 1064 1266 1265 -f 1265 1067 1064 -f 1064 1065 1267 -f 1266 1064 1267 -f 1046 1270 1269 -f 1269 1065 1046 -f 1272 827 826 -f 815 1274 1273 -f 1273 825 815 -f 1276 815 804 -f 196 197 1279 -f 1278 196 1279 -f 198 1282 1281 -f 1281 197 198 -f 198 206 1283 -f 1282 198 1283 -f 206 212 1284 -f 1283 206 1284 -f 212 218 1286 -f 1285 212 1286 -f 244 1288 1287 -f 1287 218 244 -f 243 1289 1288 -f 1288 244 243 -f 1063 1291 1290 -f 1290 1047 1063 -f 1067 1293 1292 -f 1292 1063 1067 -f 1271 828 827 -f 1046 828 1271 -f 1270 1271 1294 -f 1270 1046 1271 -f 1271 827 1272 -f 1302 1271 1272 -f 1272 1273 1302 -f 826 1273 1272 -f 1273 826 825 -f 1276 804 1297 -f 804 1277 1297 -f 196 1277 804 -f 1289 1290 1303 -f 1289 243 1290 -f 1290 243 1047 -f 1300 1303 1290 -f 1265 1298 1293 -f 1293 1067 1265 -f 1307 689 1308 -f 1309 699 1310 -f 1315 1030 1316 -f 1316 1030 1317 -f 1318 1031 1319 -f 1322 211 1323 -f 1324 194 1325 -f 1308 1328 1307 -f 1328 1308 1329 -f 1328 1329 1327 -f 1326 1327 1329 -f 1310 1311 1331 -f 1311 1312 1331 -f 1310 1331 1309 -f 1309 1331 1308 -f 1329 1308 1331 -f 1332 1316 1317 -f 1317 1318 1332 -f 1318 1319 1332 -f 1316 1332 1315 -f 1315 1332 1314 -f 1326 1333 1325 -f 1330 1324 1333 -f 1325 1333 1324 -f 1333 1326 1329 -f 1320 1334 1319 -f 1330 1332 1334 -f 1319 1334 1332 -f 1335 1329 1331 -f 1332 1335 1314 -f 1335 1332 1330 -f 1330 1333 1335 -f 1329 1335 1333 -f 689 699 1309 -f 1308 689 1309 -f 698 1311 1310 -f 1310 699 698 -f 717 1312 1311 -f 1311 698 717 -f 717 716 1313 -f 1312 717 1313 -f 1313 716 1006 -f 1030 1315 1314 -f 1314 1006 1030 -f 1031 1318 1317 -f 1317 1030 1031 -f 1028 1320 1319 -f 1319 1031 1028 -f 194 1324 1323 -f 1323 211 194 -f 1325 194 1326 -f 1327 1326 194 -f 1307 1328 682 -f 689 1307 682 -f 1327 682 1328 -f 682 1327 194 -f 1006 1314 1313 -f 1314 1331 1312 -f 1312 1313 1314 -f 1331 1314 1335 -f 1321 1028 1029 -f 1334 1320 1321 -f 1320 1028 1321 -f 1337 710 1338 -f 1341 697 1342 -f 1344 217 1345 -f 1346 242 1347 -f 1348 258 1349 -f 1349 258 1350 -f 1350 258 1351 -f 1354 252 1355 -f 1355 252 1356 -f 1357 1004 1358 -f 1359 1005 1360 -f 1360 1005 1361 -f 1363 1021 1364 -f 1366 1025 1367 -f 1367 1025 1368 -f 1373 712 1374 -f 1340 1341 1342 -f 1340 1342 1343 -f 1370 1371 1372 -f 1343 1376 1340 -f 1340 1376 1339 -f 1338 1339 1376 -f 1348 1377 1347 -f 1344 1345 1377 -f 1345 1346 1377 -f 1347 1377 1346 -f 1356 1378 1355 -f 1354 1355 1378 -f 1380 1336 1337 -f 1337 1338 1380 -f 1376 1380 1338 -f 1353 1354 1381 -f 1378 1381 1354 -f 1360 1382 1359 -f 1359 1382 1358 -f 1358 1382 1357 -f 1365 1366 1383 -f 1366 1367 1383 -f 1385 1369 1370 -f 1385 1379 1383 -f 1369 1385 1368 -f 1383 1367 1385 -f 1368 1385 1367 -f 1386 1379 1385 -f 1372 1373 1386 -f 1374 1386 1373 -f 1385 1370 1386 -f 1372 1386 1370 -f 1387 1376 1343 -f 1387 1379 1386 -f 1376 1387 1380 -f 1388 1351 1352 -f 1381 1388 1353 -f 1352 1353 1388 -f 1382 1360 1389 -f 1361 1389 1360 -f 1389 1361 1362 -f 1362 1363 1389 -f 1363 1364 1389 -f 1383 1389 1365 -f 1364 1365 1389 -f 1390 1378 1382 -f 1383 1390 1389 -f 1382 1389 1390 -f 1348 1391 1377 -f 1391 1348 1349 -f 1349 1350 1391 -f 1350 1351 1391 -f 1351 1388 1391 -f 1392 1344 1377 -f 1384 1392 1391 -f 1377 1391 1392 -f 1344 1392 1343 -f 1343 1392 1387 -f 1393 1378 1390 -f 1378 1393 1381 -f 1381 1393 1388 -f 1388 1393 1391 -f 1384 1391 1393 -f 1394 1379 1387 -f 1387 1392 1394 -f 1384 1394 1392 -f 1394 1384 1393 -f 1395 1336 1380 -f 1386 1395 1387 -f 1380 1387 1395 -f 1386 1374 1395 -f 1396 1379 1394 -f 1394 1393 1396 -f 1390 1396 1393 -f 1379 1396 1383 -f 1396 1390 1383 -f 711 710 1337 -f 1336 711 1337 -f 709 1339 1338 -f 1338 710 709 -f 1339 709 697 -f 1340 1339 697 -f 697 1341 1340 -f 697 688 1343 -f 1342 697 1343 -f 688 217 1344 -f 1343 688 1344 -f 217 242 1346 -f 1345 217 1346 -f 242 258 1348 -f 1347 242 1348 -f 995 1352 1351 -f 1351 258 995 -f 994 1353 1352 -f 1352 995 994 -f 994 252 1354 -f 1353 994 1354 -f 1356 252 1002 -f 1002 1004 1357 -f 1004 1005 1359 -f 1358 1004 1359 -f 1011 1362 1361 -f 1361 1005 1011 -f 1011 1021 1363 -f 1362 1011 1363 -f 1018 1365 1364 -f 1364 1021 1018 -f 1018 1025 1366 -f 1365 1018 1366 -f 1019 1369 1368 -f 1368 1025 1019 -f 1026 1370 1369 -f 1369 1019 1026 -f 1010 1372 1371 -f 1371 1026 1010 -f 1010 712 1373 -f 1372 1010 1373 -f 711 1336 1375 -f 1357 1378 1356 -f 1002 1357 1356 -f 1378 1357 1382 -f 1370 1026 1371 -f 1375 1395 1374 -f 1374 712 1375 -f 712 711 1375 -f 1375 1336 1395 -f 1400 157 1401 -f 1403 1150 1404 -f 1406 1151 1407 -f 1410 1155 1411 -f 1413 1156 1414 -f 1416 1172 1417 -f 1420 1190 1421 -f 1422 1192 1423 -f 1424 1188 1425 -f 1426 1189 1427 -f 1429 1187 1430 -f 1432 1185 1433 -f 1433 1185 1434 -f 1437 1258 1438 -f 1438 1258 1439 -f 1441 1257 1442 -f 1397 1445 1446 -f 1409 1450 1408 -f 1408 1450 1407 -f 1406 1407 1450 -f 1442 1451 1441 -f 1448 1452 1447 -f 1453 1448 1447 -f 1447 1445 1453 -f 1448 1453 1454 -f 1453 1398 1454 -f 1444 1461 1455 -f 1452 1448 1461 -f 1443 1444 1462 -f 1455 1462 1444 -f 1463 1428 1429 -f 1429 1430 1463 -f 1464 1456 1463 -f 1463 1430 1464 -f 1431 1464 1430 -f 1437 1465 1436 -f 1456 1464 1465 -f 1436 1465 1435 -f 1435 1465 1434 -f 1434 1465 1433 -f 1433 1465 1432 -f 1465 1437 1438 -f 1462 1455 1467 -f 1454 1399 1468 -f 1457 1469 1468 -f 1448 1454 1469 -f 1468 1469 1454 -f 1470 1449 1466 -f 1409 1471 1450 -f 1472 1403 1404 -f 1458 1472 1471 -f 1458 1473 1472 -f 1474 1449 1470 -f 1417 1418 1475 -f 1418 1419 1475 -f 1420 1475 1419 -f 1417 1475 1416 -f 1416 1475 1415 -f 1475 1420 1421 -f 1411 1476 1410 -f 1471 1410 1476 -f 1459 1476 1475 -f 1413 1476 1412 -f 1413 1414 1476 -f 1414 1415 1476 -f 1475 1476 1415 -f 1477 1458 1471 -f 1471 1476 1477 -f 1459 1477 1476 -f 1458 1477 1474 -f 1459 1478 1477 -f 1477 1478 1474 -f 1449 1474 1478 -f 1422 1479 1421 -f 1475 1421 1479 -f 1479 1422 1423 -f 1423 1424 1479 -f 1424 1425 1479 -f 1460 1480 1479 -f 1479 1480 1475 -f 1459 1475 1480 -f 1459 1480 1478 -f 1463 1481 1428 -f 1427 1428 1481 -f 1427 1481 1426 -f 1460 1479 1481 -f 1426 1481 1425 -f 1479 1425 1481 -f 1482 1449 1478 -f 1478 1480 1482 -f 1460 1482 1480 -f 1449 1482 1466 -f 1463 1483 1481 -f 1483 1460 1481 -f 1466 1482 1483 -f 1460 1483 1482 -f 1463 1456 1483 -f 1466 1483 1456 -f 1439 1484 1438 -f 1465 1438 1484 -f 1467 1485 1484 -f 1456 1465 1485 -f 1484 1485 1465 -f 1486 1467 1484 -f 1484 1440 1486 -f 1440 1441 1486 -f 1451 1486 1441 -f 1467 1486 1462 -f 1467 1487 1485 -f 1457 1487 1469 -f 1488 1401 1473 -f 1401 1488 1400 -f 1488 1468 1400 -f 1489 1469 1487 -f 1487 1467 1489 -f 1455 1489 1467 -f 1469 1489 1448 -f 1455 1461 1489 -f 1448 1489 1461 -f 1471 1472 1490 -f 1472 1404 1490 -f 1471 1490 1450 -f 1450 1490 1406 -f 1405 1406 1490 -f 1457 1491 1470 -f 1473 1491 1488 -f 1457 1468 1491 -f 1488 1491 1468 -f 1466 1492 1470 -f 1485 1492 1456 -f 1492 1466 1456 -f 1470 1493 1457 -f 1493 1487 1457 -f 1493 1470 1492 -f 1487 1493 1485 -f 1492 1485 1493 -f 1458 1494 1473 -f 1494 1491 1473 -f 1494 1458 1474 -f 1474 1470 1494 -f 1491 1494 1470 -f 1398 156 157 -f 1401 157 147 -f 148 149 1405 -f 1151 1406 1405 -f 1405 149 1151 -f 1153 1408 1407 -f 1407 1151 1153 -f 1153 1154 1409 -f 1408 1153 1409 -f 1154 1155 1410 -f 1156 476 1415 -f 1414 1156 1415 -f 1172 1416 1415 -f 1415 476 1172 -f 1172 1173 1418 -f 1417 1172 1418 -f 1173 1174 1419 -f 1418 1173 1419 -f 1174 1190 1420 -f 1419 1174 1420 -f 1192 1422 1421 -f 1421 1190 1192 -f 1192 1188 1424 -f 1423 1192 1424 -f 1188 1189 1426 -f 1425 1188 1426 -f 1191 1428 1427 -f 1427 1189 1191 -f 1191 1187 1429 -f 1428 1191 1429 -f 1182 1431 1430 -f 1430 1187 1182 -f 1183 1185 1432 -f 1157 1435 1434 -f 1434 1185 1157 -f 1244 1436 1435 -f 1435 1157 1244 -f 1258 1437 1436 -f 1436 1244 1258 -f 1439 1258 1262 -f 1257 1441 1440 -f 1440 1264 1257 -f 1243 164 1444 -f 1443 1243 1444 -f 1445 164 155 -f 155 156 1397 -f 1446 1445 155 -f 1397 1446 155 -f 1397 1398 1445 -f 1397 156 1398 -f 1398 1453 1445 -f 157 1399 1398 -f 1399 1454 1398 -f 1400 1468 1399 -f 1399 157 1400 -f 1401 1402 1473 -f 147 1402 1401 -f 1405 1490 1404 -f 1404 1150 1405 -f 1150 148 1405 -f 1409 1410 1471 -f 1409 1154 1410 -f 1476 1411 1412 -f 1411 1155 1412 -f 1155 1156 1412 -f 1412 1156 1413 -f 1464 1431 1432 -f 1431 1182 1432 -f 1182 1183 1432 -f 1464 1432 1465 -f 1484 1439 1440 -f 1262 1440 1439 -f 1440 1262 1264 -f 1443 1451 1442 -f 1442 1257 1443 -f 1257 1243 1443 -f 1451 1443 1486 -f 1462 1486 1443 -f 1461 1444 1452 -f 1444 164 1452 -f 1452 1445 1447 -f 164 1445 1452 -f 1496 227 1497 -f 1499 923 1500 -f 1501 922 1502 -f 1504 920 1505 -f 1506 204 1507 -f 1507 204 1508 -f 1513 192 1514 -f 1518 211 1519 -f 1520 1322 1521 -f 1526 1321 1527 -f 1527 1321 1528 -f 1530 1020 1531 -f 1533 1023 1534 -f 1537 254 1538 -f 1538 254 1539 -f 1540 259 1541 -f 1544 241 1545 -f 1541 1542 1548 -f 1542 1543 1548 -f 1543 1544 1548 -f 1544 1545 1548 -f 1539 1540 1551 -f 1548 1551 1541 -f 1540 1541 1551 -f 1495 1552 1547 -f 1547 1552 1546 -f 1511 1553 1510 -f 1508 1555 1507 -f 1507 1555 1506 -f 1505 1506 1555 -f 1505 1555 1504 -f 1504 1555 1503 -f 1503 1555 1502 -f 1549 1556 1555 -f 1499 1500 1556 -f 1500 1501 1556 -f 1555 1556 1502 -f 1501 1502 1556 -f 1499 1556 1498 -f 1557 1549 1555 -f 1509 1557 1508 -f 1555 1508 1557 -f 1557 1509 1510 -f 1526 1527 1558 -f 1528 1558 1527 -f 1526 1558 1525 -f 1560 1522 1523 -f 1550 1560 1558 -f 1523 1524 1560 -f 1558 1560 1525 -f 1524 1525 1560 -f 1522 1560 1521 -f 1521 1560 1520 -f 1520 1560 1519 -f 1519 1560 1518 -f 1550 1561 1560 -f 1560 1561 1518 -f 1538 1562 1537 -f 1538 1539 1562 -f 1551 1562 1539 -f 1563 1549 1557 -f 1557 1510 1563 -f 1553 1563 1510 -f 1513 1564 1512 -f 1553 1511 1564 -f 1512 1564 1511 -f 1566 1551 1548 -f 1548 1552 1566 -f 1497 1567 1496 -f 1556 1567 1498 -f 1554 1568 1567 -f 1567 1568 1496 -f 1552 1495 1568 -f 1552 1568 1566 -f 1549 1569 1556 -f 1556 1569 1567 -f 1554 1567 1569 -f 1534 1570 1533 -f 1533 1570 1532 -f 1532 1570 1531 -f 1531 1570 1530 -f 1530 1570 1529 -f 1558 1528 1570 -f 1529 1570 1528 -f 1516 1571 1515 -f 1550 1572 1561 -f 1561 1572 1571 -f 1559 1571 1572 -f 1573 1514 1515 -f 1559 1573 1571 -f 1515 1571 1573 -f 1575 1565 1574 -f 1563 1578 1549 -f 1578 1569 1549 -f 1513 1514 1579 -f 1573 1579 1514 -f 1513 1579 1564 -f 1564 1579 1553 -f 1580 1563 1553 -f 1574 1580 1579 -f 1553 1579 1580 -f 1558 1581 1550 -f 1550 1581 1572 -f 1575 1572 1581 -f 1582 1573 1559 -f 1575 1582 1572 -f 1559 1572 1582 -f 1573 1582 1579 -f 1579 1582 1574 -f 1575 1574 1582 -f 1551 1583 1562 -f 1584 1536 1562 -f 1576 1584 1583 -f 1562 1583 1584 -f 1576 1585 1584 -f 1570 1534 1585 -f 1584 1585 1535 -f 1534 1535 1585 -f 1587 1574 1565 -f 1574 1587 1580 -f 1588 1569 1578 -f 1569 1588 1554 -f 1577 1589 1588 -f 1554 1588 1589 -f 1554 1589 1568 -f 1566 1568 1589 -f 1565 1590 1586 -f 1581 1590 1575 -f 1590 1565 1575 -f 1591 1566 1589 -f 1566 1591 1551 -f 1591 1583 1551 -f 1558 1592 1581 -f 1585 1592 1570 -f 1592 1558 1570 -f 1583 1593 1576 -f 1593 1586 1576 -f 1586 1594 1565 -f 1565 1594 1587 -f 1577 1587 1594 -f 1594 1586 1593 -f 1586 1595 1576 -f 1595 1585 1576 -f 1578 1596 1588 -f 1587 1577 1596 -f 1588 1596 1577 -f 1587 1596 1580 -f 1580 1596 1563 -f 1578 1563 1596 -f 1597 1594 1593 -f 1593 1583 1597 -f 1591 1597 1583 -f 1597 1591 1589 -f 1594 1597 1577 -f 1589 1577 1597 -f 1581 1598 1590 -f 1595 1586 1598 -f 1590 1598 1586 -f 1598 1581 1592 -f 1592 1585 1598 -f 1595 1598 1585 -f 1497 227 925 -f 923 1499 1498 -f 1498 924 923 -f 923 922 1501 -f 1500 923 1501 -f 921 1503 1502 -f 1502 922 921 -f 920 1504 1503 -f 1503 921 920 -f 1505 920 919 -f 190 1509 1508 -f 1508 204 190 -f 190 191 1510 -f 1509 190 1510 -f 191 1512 1511 -f 1510 191 1511 -f 192 1513 1512 -f 1512 191 192 -f 1514 192 1515 -f 1516 1515 192 -f 192 193 1516 -f 1322 1520 1519 -f 1519 211 1322 -f 1322 1323 1522 -f 1521 1322 1522 -f 1323 1324 1523 -f 1522 1323 1523 -f 1330 1524 1523 -f 1523 1324 1330 -f 1334 1525 1524 -f 1524 1330 1334 -f 1334 1321 1526 -f 1525 1334 1526 -f 1029 1529 1528 -f 1528 1321 1029 -f 1020 1530 1529 -f 1529 1029 1020 -f 1020 1017 1532 -f 1531 1020 1532 -f 1017 1023 1533 -f 1532 1017 1533 -f 1023 1022 1535 -f 1534 1023 1535 -f 1022 1016 1536 -f 259 1540 1539 -f 1539 254 259 -f 264 1542 1541 -f 1541 259 264 -f 257 1543 1542 -f 1542 264 257 -f 241 1544 1543 -f 1543 257 241 -f 1495 1547 1546 -f 1546 230 1495 -f 1402 148 1150 -f 147 148 1402 -f 1402 1150 1403 -f 1403 1472 1402 -f 1472 1473 1402 -f 1496 1568 1495 -f 1495 230 1496 -f 1496 230 227 -f 1498 1567 1497 -f 925 1498 1497 -f 1498 925 924 -f 1506 1505 919 -f 919 204 1506 -f 1516 1517 1571 -f 1516 193 1517 -f 193 205 1517 -f 1561 1571 1517 -f 1517 1518 1561 -f 1517 205 1518 -f 205 211 1518 -f 1535 1022 1536 -f 1536 1584 1535 -f 1016 254 1537 -f 1562 1536 1537 -f 1536 1016 1537 -f 1546 1548 1545 -f 1545 241 1546 -f 241 230 1546 -f 1548 1546 1552 diff --git a/software/Print3r/models/xyzCalibration_cube.stl b/software/Print3r/models/xyzCalibration_cube.stl deleted file mode 100644 index 31e9f1a2..00000000 Binary files a/software/Print3r/models/xyzCalibration_cube.stl and /dev/null differ diff --git a/software/Print3r/models/xyzHollowCalibrationCube.scad b/software/Print3r/models/xyzHollowCalibrationCube.scad deleted file mode 100644 index 6ba79243..00000000 --- a/software/Print3r/models/xyzHollowCalibrationCube.scad +++ /dev/null @@ -1,19 +0,0 @@ -/* - * XYZ Hollow Calibration Cube - * - * Rene K. Mueller - * - * Description: - * Printable with 0% infill: "Z" at the bottom - * - * History: - * 2018/09/29: 0.0.1: first version - */ - -difference() { - cube(20); - translate([3,2,3]) rotate([90,0,0]) scale(1.5) linear_extrude(height=2) text("X"); - translate([20-2,3,3]) rotate([90,0,90]) scale(1.5) linear_extrude(height=2) text("Y"); - translate([3.5,14+3,0]) rotate([0,0,0]) scale([1.5,-1.5,1]) linear_extrude(height=2) text("Z"); -} - diff --git a/software/Print3r/models/xyzHollowCalibrationCube.stl b/software/Print3r/models/xyzHollowCalibrationCube.stl deleted file mode 100644 index da840677..00000000 --- a/software/Print3r/models/xyzHollowCalibrationCube.stl +++ /dev/null @@ -1,982 +0,0 @@ -solid OpenSCAD_Model - facet normal -1 0 0 - outer loop - vertex 0 0 0 - vertex 0 20 20 - vertex 0 20 0 - endloop - endfacet - facet normal -1 -0 0 - outer loop - vertex 0 20 20 - vertex 0 0 0 - vertex 0 0 20 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 0 20 20 - vertex 20 0 20 - vertex 20 20 20 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20 0 20 - vertex 0 20 20 - vertex 0 0 20 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 20 0 0 - vertex 20 8.97148 8.92799 - vertex 20 5.29548 14.512 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 20 20 20 - vertex 20 16.437 17.304 - vertex 20 20 0 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 20 20 20 - vertex 20 14.301 17.304 - vertex 20 16.437 17.304 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 20 14.301 17.304 - vertex 20 8.50248 12.754 - vertex 20 9.95698 10.479 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 20 14.301 17.304 - vertex 20 5.59348 17.304 - vertex 20 8.50248 12.754 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 20 20 20 - vertex 20 5.59348 17.304 - vertex 20 14.301 17.304 - endloop - endfacet - facet normal 1 -0 0 - outer loop - vertex 20 0 20 - vertex 20 5.59348 17.304 - vertex 20 20 20 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 20 5.59348 17.304 - vertex 20 0 20 - vertex 20 3.45749 17.304 - endloop - endfacet - facet normal 1 -0 0 - outer loop - vertex 20 10.9035 8.92799 - vertex 20 20 0 - vertex 20 16.437 17.304 - endloop - endfacet - facet normal 1 -0 0 - outer loop - vertex 20 10.9035 3 - vertex 20 20 0 - vertex 20 10.9035 8.92799 - endloop - endfacet - facet normal 1 -0 0 - outer loop - vertex 20 8.97148 3 - vertex 20 20 0 - vertex 20 10.9035 3 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 20 0 0 - vertex 20 5.29548 14.512 - vertex 20 3.45749 17.304 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 20 0 0 - vertex 20 3.45749 17.304 - vertex 20 0 20 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 20 8.97148 3 - vertex 20 0 0 - vertex 20 20 0 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 20 8.97148 8.92799 - vertex 20 0 0 - vertex 20 8.97148 3 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 20 0 0 - vertex 15.5735 15.464 0 - vertex 20 20 0 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 15.0965 4.0595 0 - vertex 20 0 0 - vertex 15.0965 2.69601 0 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 20 0 0 - vertex 4.90398 2.69601 0 - vertex 15.0965 2.69601 0 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 0 0 0 - vertex 4.90398 4.23201 0 - vertex 4.90398 2.69601 0 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 0 20 0 - vertex 4.16149 15.596 0 - vertex 0 0 0 - endloop - endfacet - facet normal -0 0 -1 - outer loop - vertex 4.90398 4.23201 0 - vertex 0 0 0 - vertex 4.16149 15.596 0 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 0 0 0 - vertex 4.90398 2.69601 0 - vertex 20 0 0 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 15.5735 17 0 - vertex 20 20 0 - vertex 15.5735 15.464 0 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 0 20 0 - vertex 15.5735 17 0 - vertex 4.16149 17 0 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 15.5735 17 0 - vertex 0 20 0 - vertex 20 20 0 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 4.16149 15.596 0 - vertex 0 20 0 - vertex 4.16149 17 0 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 20 0 0 - vertex 15.0965 4.0595 0 - vertex 15.5735 15.464 0 - endloop - endfacet - facet normal -0 0 -1 - outer loop - vertex 15.5735 15.464 0 - vertex 15.0965 4.0595 0 - vertex 6.36798 15.464 0 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 12.8885 4.23201 0 - vertex 4.90398 4.23201 0 - vertex 4.16149 15.596 0 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 6.03149 0 17.304 - vertex 10.0185 0 11.6895 - vertex 13.8945 0 17.304 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 6.03149 0 17.304 - vertex 0 0 20 - vertex 3.88499 0 17.304 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 3.46799 0 3 - vertex 3.88499 0 17.304 - vertex 0 0 20 - endloop - endfacet - facet normal 0 -1 -0 - outer loop - vertex 3.88499 0 17.304 - vertex 3.46799 0 3 - vertex 8.92049 0 10.431 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 0 0 0 - vertex 5.61449 0 3 - vertex 3.46799 0 3 - endloop - endfacet - facet normal 0 -1 -0 - outer loop - vertex 5.61449 0 3 - vertex 0 0 0 - vertex 14.3115 0 3 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 20 0 0 - vertex 14.3115 0 3 - vertex 0 0 0 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 0 0 0 - vertex 3.46799 0 3 - vertex 0 0 20 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 0 0 20 - vertex 6.03149 0 17.304 - vertex 20 0 20 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 13.8945 0 17.304 - vertex 20 0 20 - vertex 6.03149 0 17.304 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 16.041 0 17.304 - vertex 20 0 20 - vertex 13.8945 0 17.304 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 16.458 0 3 - vertex 16.041 0 17.304 - vertex 11.1375 0 10.5015 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 16.041 0 17.304 - vertex 16.458 0 3 - vertex 20 0 20 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 16.458 0 3 - vertex 20 0 0 - vertex 20 0 20 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 14.3115 0 3 - vertex 20 0 0 - vertex 16.458 0 3 - endloop - endfacet - facet normal 0 -1 -0 - outer loop - vertex 10.008 0 9.25349 - vertex 5.61449 0 3 - vertex 14.3115 0 3 - endloop - endfacet - facet normal 0 1 -0 - outer loop - vertex 20 20 0 - vertex 0 20 20 - vertex 20 20 20 - endloop - endfacet - facet normal 0 1 0 - outer loop - vertex 0 20 20 - vertex 20 20 0 - vertex 0 20 0 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 5.61449 2 3 - vertex 8.92049 2 10.431 - vertex 3.46799 2 3 - endloop - endfacet - facet normal 0 -1 -0 - outer loop - vertex 8.92049 2 10.431 - vertex 5.61449 2 3 - vertex 10.008 2 9.25349 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 8.92049 2 10.431 - vertex 6.03149 2 17.304 - vertex 3.88499 2 17.304 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 6.03149 2 17.304 - vertex 8.92049 2 10.431 - vertex 10.0185 2 11.6895 - endloop - endfacet - facet normal 0 -1 -0 - outer loop - vertex 10.0185 2 11.6895 - vertex 8.92049 2 10.431 - vertex 11.1375 2 10.5015 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 10.008 2 9.25349 - vertex 11.1375 2 10.5015 - vertex 8.92049 2 10.431 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 14.3115 2 3 - vertex 11.1375 2 10.5015 - vertex 10.008 2 9.25349 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 11.1375 2 10.5015 - vertex 14.3115 2 3 - vertex 16.458 2 3 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 11.1375 2 10.5015 - vertex 13.8945 2 17.304 - vertex 10.0185 2 11.6895 - endloop - endfacet - facet normal 0 -1 -0 - outer loop - vertex 13.8945 2 17.304 - vertex 11.1375 2 10.5015 - vertex 16.041 2 17.304 - endloop - endfacet - facet normal 0.823782 -0 0.566907 - outer loop - vertex 10.008 0 9.25349 - vertex 14.3115 2 3 - vertex 10.008 2 9.25349 - endloop - endfacet - facet normal 0.823782 0 0.566907 - outer loop - vertex 14.3115 2 3 - vertex 10.008 0 9.25349 - vertex 14.3115 0 3 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 14.3115 2 3 - vertex 16.458 0 3 - vertex 16.458 2 3 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 16.458 0 3 - vertex 14.3115 2 3 - vertex 14.3115 0 3 - endloop - endfacet - facet normal -0.815669 0 -0.57852 - outer loop - vertex 16.458 0 3 - vertex 11.1375 2 10.5015 - vertex 16.458 2 3 - endloop - endfacet - facet normal -0.815669 -0 -0.57852 - outer loop - vertex 11.1375 2 10.5015 - vertex 16.458 0 3 - vertex 11.1375 0 10.5015 - endloop - endfacet - facet normal -0.811212 0 0.584752 - outer loop - vertex 11.1375 0 10.5015 - vertex 16.041 2 17.304 - vertex 11.1375 2 10.5015 - endloop - endfacet - facet normal -0.811212 0 0.584752 - outer loop - vertex 16.041 2 17.304 - vertex 11.1375 0 10.5015 - vertex 16.041 0 17.304 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 13.8945 0 17.304 - vertex 16.041 2 17.304 - vertex 16.041 0 17.304 - endloop - endfacet - facet normal -0 0 -1 - outer loop - vertex 16.041 2 17.304 - vertex 13.8945 0 17.304 - vertex 13.8945 2 17.304 - endloop - endfacet - facet normal 0.822943 0 -0.568123 - outer loop - vertex 13.8945 0 17.304 - vertex 10.0185 2 11.6895 - vertex 13.8945 2 17.304 - endloop - endfacet - facet normal 0.822943 0 -0.568123 - outer loop - vertex 10.0185 2 11.6895 - vertex 13.8945 0 17.304 - vertex 10.0185 0 11.6895 - endloop - endfacet - facet normal -0.815334 0 -0.578991 - outer loop - vertex 10.0185 0 11.6895 - vertex 6.03149 2 17.304 - vertex 10.0185 2 11.6895 - endloop - endfacet - facet normal -0.815334 -0 -0.578991 - outer loop - vertex 6.03149 2 17.304 - vertex 10.0185 0 11.6895 - vertex 6.03149 0 17.304 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 3.88499 0 17.304 - vertex 6.03149 2 17.304 - vertex 6.03149 0 17.304 - endloop - endfacet - facet normal -0 0 -1 - outer loop - vertex 6.03149 2 17.304 - vertex 3.88499 0 17.304 - vertex 3.88499 2 17.304 - endloop - endfacet - facet normal 0.806668 -0 0.591005 - outer loop - vertex 3.88499 0 17.304 - vertex 8.92049 2 10.431 - vertex 3.88499 2 17.304 - endloop - endfacet - facet normal 0.806668 0 0.591005 - outer loop - vertex 8.92049 2 10.431 - vertex 3.88499 0 17.304 - vertex 8.92049 0 10.431 - endloop - endfacet - facet normal 0.806245 0 -0.591582 - outer loop - vertex 8.92049 0 10.431 - vertex 3.46799 2 3 - vertex 8.92049 2 10.431 - endloop - endfacet - facet normal 0.806245 0 -0.591582 - outer loop - vertex 3.46799 2 3 - vertex 8.92049 0 10.431 - vertex 3.46799 0 3 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 3.46799 2 3 - vertex 5.61449 0 3 - vertex 5.61449 2 3 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 5.61449 0 3 - vertex 3.46799 2 3 - vertex 3.46799 0 3 - endloop - endfacet - facet normal -0.818243 0 0.574872 - outer loop - vertex 5.61449 0 3 - vertex 10.008 2 9.25349 - vertex 5.61449 2 3 - endloop - endfacet - facet normal -0.818243 0 0.574872 - outer loop - vertex 10.008 2 9.25349 - vertex 5.61449 0 3 - vertex 10.008 0 9.25349 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 18 5.59348 17.304 - vertex 18 3.45749 17.304 - vertex 18 8.97148 8.92799 - endloop - endfacet - facet normal 1 -0 0 - outer loop - vertex 18 14.301 17.304 - vertex 18 10.9035 8.92799 - vertex 18 16.437 17.304 - endloop - endfacet - facet normal 1 -0 0 - outer loop - vertex 18 9.95698 10.479 - vertex 18 10.9035 8.92799 - vertex 18 14.301 17.304 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 18 8.97148 8.92799 - vertex 18 10.9035 8.92799 - vertex 18 9.95698 10.479 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 18 10.9035 8.92799 - vertex 18 8.97148 8.92799 - vertex 18 10.9035 3 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 18 10.9035 3 - vertex 18 8.97148 8.92799 - vertex 18 8.97148 3 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 18 9.95698 10.479 - vertex 18 5.59348 17.304 - vertex 18 8.97148 8.92799 - endloop - endfacet - facet normal 0 -0.834365 0.551212 - outer loop - vertex 18 10.9035 8.92799 - vertex 20 16.437 17.304 - vertex 18 16.437 17.304 - endloop - endfacet - facet normal 0 -0.834365 0.551212 - outer loop - vertex 20 16.437 17.304 - vertex 18 10.9035 8.92799 - vertex 20 10.9035 8.92799 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 18 14.301 17.304 - vertex 20 16.437 17.304 - vertex 20 14.301 17.304 - endloop - endfacet - facet normal -0 0 -1 - outer loop - vertex 20 16.437 17.304 - vertex 18 14.301 17.304 - vertex 18 16.437 17.304 - endloop - endfacet - facet normal 0 0.843615 -0.536949 - outer loop - vertex 20 9.95698 10.479 - vertex 18 14.301 17.304 - vertex 20 14.301 17.304 - endloop - endfacet - facet normal 0 0.843615 -0.536949 - outer loop - vertex 18 14.301 17.304 - vertex 20 9.95698 10.479 - vertex 18 9.95698 10.479 - endloop - endfacet - facet normal 4.38571e-16 -0.842524 -0.53866 - outer loop - vertex 18 9.95698 10.479 - vertex 20 8.50248 12.754 - vertex 18 5.59348 17.304 - endloop - endfacet - facet normal 0 -0.842524 -0.53866 - outer loop - vertex 20 8.50248 12.754 - vertex 18 9.95698 10.479 - vertex 20 9.95698 10.479 - endloop - endfacet - facet normal -0 -0.842524 -0.53866 - outer loop - vertex 20 5.59348 17.304 - vertex 18 5.59348 17.304 - vertex 20 8.50248 12.754 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 18 3.45749 17.304 - vertex 20 5.59348 17.304 - vertex 20 3.45749 17.304 - endloop - endfacet - facet normal -0 0 -1 - outer loop - vertex 20 5.59348 17.304 - vertex 18 3.45749 17.304 - vertex 18 5.59348 17.304 - endloop - endfacet - facet normal 0 0.835259 0.549856 - outer loop - vertex 20 5.29548 14.512 - vertex 18 3.45749 17.304 - vertex 20 3.45749 17.304 - endloop - endfacet - facet normal 1.86777e-06 0.835259 0.549857 - outer loop - vertex 18 3.45749 17.304 - vertex 20 5.29548 14.512 - vertex 18 8.97148 8.92799 - endloop - endfacet - facet normal 0 0.835258 0.549858 - outer loop - vertex 20 8.97148 8.92799 - vertex 18 8.97148 8.92799 - vertex 20 5.29548 14.512 - endloop - endfacet - facet normal 0 1 -0 - outer loop - vertex 20 8.97148 3 - vertex 18 8.97148 8.92799 - vertex 20 8.97148 8.92799 - endloop - endfacet - facet normal 0 1 0 - outer loop - vertex 18 8.97148 8.92799 - vertex 20 8.97148 3 - vertex 18 8.97148 3 - endloop - endfacet - facet normal -0 0 1 - outer loop - vertex 18 10.9035 3 - vertex 20 8.97148 3 - vertex 20 10.9035 3 - endloop - endfacet - facet normal 0 0 1 - outer loop - vertex 20 8.97148 3 - vertex 18 10.9035 3 - vertex 18 8.97148 3 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 18 10.9035 3 - vertex 20 10.9035 8.92799 - vertex 18 10.9035 8.92799 - endloop - endfacet - facet normal 0 -1 -0 - outer loop - vertex 20 10.9035 8.92799 - vertex 18 10.9035 3 - vertex 20 10.9035 3 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 15.0965 2.69601 2 - vertex 12.8885 4.23201 2 - vertex 15.0965 4.0595 2 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 4.90398 2.69601 2 - vertex 12.8885 4.23201 2 - vertex 15.0965 2.69601 2 - endloop - endfacet - facet normal -0 0 -1 - outer loop - vertex 12.8885 4.23201 2 - vertex 4.90398 2.69601 2 - vertex 4.90398 4.23201 2 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 12.8885 4.23201 2 - vertex 6.36798 15.464 2 - vertex 15.0965 4.0595 2 - endloop - endfacet - facet normal -0 -0 -1 - outer loop - vertex 6.36798 15.464 2 - vertex 12.8885 4.23201 2 - vertex 4.16149 15.596 2 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 6.36798 15.464 2 - vertex 15.5735 17 2 - vertex 15.5735 15.464 2 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 4.16149 17 2 - vertex 6.36798 15.464 2 - vertex 4.16149 15.596 2 - endloop - endfacet - facet normal 0 0 -1 - outer loop - vertex 6.36798 15.464 2 - vertex 4.16149 17 2 - vertex 15.5735 17 2 - endloop - endfacet - facet normal 0 1 -0 - outer loop - vertex 15.5735 15.464 0 - vertex 6.36798 15.464 2 - vertex 15.5735 15.464 2 - endloop - endfacet - facet normal 0 1 0 - outer loop - vertex 6.36798 15.464 2 - vertex 15.5735 15.464 0 - vertex 6.36798 15.464 0 - endloop - endfacet - facet normal -0.794108 -0.607777 0 - outer loop - vertex 15.0965 4.0595 0 - vertex 6.36798 15.464 2 - vertex 6.36798 15.464 0 - endloop - endfacet - facet normal -0.794108 -0.607777 0 - outer loop - vertex 6.36798 15.464 2 - vertex 15.0965 4.0595 0 - vertex 15.0965 4.0595 2 - endloop - endfacet - facet normal -1 0 0 - outer loop - vertex 15.0965 2.69601 0 - vertex 15.0965 4.0595 2 - vertex 15.0965 4.0595 0 - endloop - endfacet - facet normal -1 -0 0 - outer loop - vertex 15.0965 4.0595 2 - vertex 15.0965 2.69601 0 - vertex 15.0965 2.69601 2 - endloop - endfacet - facet normal 0 1 -0 - outer loop - vertex 15.0965 2.69601 0 - vertex 4.90398 2.69601 2 - vertex 15.0965 2.69601 2 - endloop - endfacet - facet normal 0 1 0 - outer loop - vertex 4.90398 2.69601 2 - vertex 15.0965 2.69601 0 - vertex 4.90398 2.69601 0 - endloop - endfacet - facet normal 1 -0 0 - outer loop - vertex 4.90398 2.69601 2 - vertex 4.90398 4.23201 0 - vertex 4.90398 4.23201 2 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 4.90398 4.23201 0 - vertex 4.90398 2.69601 2 - vertex 4.90398 2.69601 0 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 4.90398 4.23201 0 - vertex 12.8885 4.23201 2 - vertex 4.90398 4.23201 2 - endloop - endfacet - facet normal 0 -1 -0 - outer loop - vertex 12.8885 4.23201 2 - vertex 4.90398 4.23201 0 - vertex 12.8885 4.23201 0 - endloop - endfacet - facet normal 0.793113 0.609074 0 - outer loop - vertex 12.8885 4.23201 2 - vertex 4.16149 15.596 0 - vertex 4.16149 15.596 2 - endloop - endfacet - facet normal 0.793113 0.609074 0 - outer loop - vertex 4.16149 15.596 0 - vertex 12.8885 4.23201 2 - vertex 12.8885 4.23201 0 - endloop - endfacet - facet normal 1 -0 0 - outer loop - vertex 4.16149 15.596 2 - vertex 4.16149 17 0 - vertex 4.16149 17 2 - endloop - endfacet - facet normal 1 0 0 - outer loop - vertex 4.16149 17 0 - vertex 4.16149 15.596 2 - vertex 4.16149 15.596 0 - endloop - endfacet - facet normal 0 -1 0 - outer loop - vertex 4.16149 17 0 - vertex 15.5735 17 2 - vertex 4.16149 17 2 - endloop - endfacet - facet normal 0 -1 -0 - outer loop - vertex 15.5735 17 2 - vertex 4.16149 17 0 - vertex 15.5735 17 0 - endloop - endfacet - facet normal -1 0 0 - outer loop - vertex 15.5735 15.464 0 - vertex 15.5735 17 2 - vertex 15.5735 17 0 - endloop - endfacet - facet normal -1 -0 0 - outer loop - vertex 15.5735 17 2 - vertex 15.5735 15.464 0 - vertex 15.5735 15.464 2 - endloop - endfacet -endsolid OpenSCAD_Model diff --git a/software/Print3r/print3r b/software/Print3r/print3r deleted file mode 100644 index ef771aa7..00000000 --- a/software/Print3r/print3r +++ /dev/null @@ -1,4174 +0,0 @@ -#!/usr/bin/perl - -# == Print3r, written by Rene K. Mueller -# -# License: GPLv3 -# -# Description: -# Command line tool to print parts to 3d printers without GUI -# - slicing with multiple slicers (slic3r, cura, etc) backend -# - printing via USB & network -# - printing .scad, .stl, .amf, .obj, .off, .3mf, .3mj and .gcode ( .fcstd, .iges, .step, .brep with freecad2any) -# -# History: -# 2022/12/16: 0.3.20: new @revo-{yellow,red,blue,green,pink} macros, -o added -# 2022/11/27: 0.3.19: --device/-d --printer/-p --slicer/-s short-cuts added -# 2022/10/17: 0.3.18: support CuraEngine-5.x / cura5 better -# 2022/08/03: 0.3.17: adding locks for avoiding to print simulatenously to the same printer, better support for cura-slicer & CuraEngine 5.x -# 2022/04/27: 0.3.16: --scad with --scad.= to pass variables to OpenSCAD models, experimental support for metatron- and enoch-slicer -# 2022/01/17: 0.3.15: experimental support for voxgl-slicer (--slicer=voxgl) -# 2021/12/16: 0.3.14: experimental support for lab-slicer and vox3l-slicer (--slicer=lab or vox3l) -# 2021/12/05: 0.3.13: supporting webcams via webcam=[ ...] and webcam_snap=[ ...] -# 2021/11/09: 0.3.12: more printer info in log-file, firmware and M501 output -# 2021/10/23: 0.3.11: experimental support for zplus-slicer (--slicer=zplus) -# 2021/10/14: 0.3.10: each successful(ended) logged print contains new or --uid=... uid (to track printed parts) -# 2021/08/17: 0.3.9: if 'freecad2any' exists then .fcstd, .iges, .step and .brep is supported too, 'log' command takes arguments, either search term or '#' leading log entry number (see help) -# 2021/08/07: 0.3.8: --slicer=kirimoto support added, external helper for FCstd (FreeCAD) support using freecad2any -# 2021/07/25: 0.3.7: adding 'log' command, supporting --format=json in this context -# 2021/06/28: 0.3.6: support for --post=[,...] and --post_=proc %i -o %o -# 2021/06/24: 0.3.5: experimental support for --slicer=cura-slicer & 5dmaker -# 2021/06/21: 0.3.4: --cols= and --rows= in case --multiply-part is used -# 2021/04/06: 0.3.3: experimental support for --slicer=mandoline added -# 2021/03/08: 0.3.2: experimental support for --slicer=slicer4rtn added -# 2021/03/02: 0.3.1: --display_upate=off does not update display, e.g. raw g-code printing -# 2019/10/25: 0.3.0: better pipeline of processing div. formats, preliminary 3mf and 3mj (new format) support -# 2019/09/02: 0.2.8: CuraEngine-4.2.0 support via --slicer=cura4, see wiki for install instructions -# 2019/06/09: 0.2.7: cleaner read{STL,AMF,OBJ,OFF}(), and partTransform(), support of multiple volumes/colors/material in AMF -# 2019/05/28: 0.2.6: cleaner script-layer within Gcode processing, slic3r-*: better multi-extruder support '--toolmap' & '--toolremap' -# 2019/05/24: 0.2.5: preliminary slicer=prusa support, additional inline functions support for gcode transformation: &toolcolor(n,a,b,c,d,e), &hsl2cmy(h,s,l), &phases(n=2|3,p=3|4) -# 2019/04/10: 0.2.3: support for '--prepend_gcode=...' for start-gcode addition, and '--layer-gcode=...' -# 2019/03/19: 0.2.2: support for 'skirts', 'brims' and 'rafts', 'support' and 'seam' slicer-independent -# 2018/12/03: 0.2.0: `client` command added, and `--device=tcp:[:]` added for remote printing capabilities -# 2018/11/26: 0.1.8: proper cleanup of temporary files (incl. CTRL-C abort) -# 2018/11/17: 0.1.7: more slicer-independent speed settings (print/travel/infill/perimeter/small_perimeter/bridge/retract_speed) -# 2018/11/09: 0.1.6: restructure the file layout of settings (e.g. at /usr/share/print3r/ & ~/.config/print3r/) -# 2018/11/08: 0.1.5: new option '--scad=' to additionally execute openscad code -# 2018/11/04: 0.1.4: various improvements, remap() of general settings to slicer-specific settings via settings//map.ini -# 2018/10/22: 0.1.1: better support for '--slicer=cura' and 'cura-legacy' -# 2018/10/19: 0.1.0: '--slicer=' with '--printer=' leads to settings//, '@' leads to 'settings/' -# 2018/10/10: 0.0.9: '.amf' and '.obj' native support for preprocessing (scale,rotate,translate,mirror) -# 2018/10/07: 0.0.8: absolute scaling like --scale=0,0,30mm or --scale=50mm, and `--scale=50%` same as --scale=0.5 -# 2018/10/06: 0.0.7: `PRINT3R` enviromental variable considered, 'baudrate=auto' probes baudrate -# 2018/10/04: 0.0.6: 'scale', 'rotate', 'translate' and 'mirror' implemented -# 2018/09/30: 0.0.5: slicing .scad, preparing other slicers (like CuraEngine) -# 2018/09/27: 0.0.4: code cleanup, 'gconsole' added -# 2018/09/26: 0.0.3: renamed to Print3r, 'gcode' command added to send single lines -# 2018/09/24: 0.0.2: 'print' of scad, stl and gcode, 'render' of scad, stl and gcode -# 2018/09/22: 0.0.1: first version, barely functional: slice, print and slice+print works - -use strict; -use Time::HiRes qw(time sleep); -use Device::SerialPort; -use Math::Trig ':pi'; -# use Math::Matrix; -use JSON; -use XML::Simple; # -- reading .amf (XML) -use File::Which; -use IO::Socket::INET; -use IO::Zlib; -use Cwd; -use FileHandle; -# use Algorithm::BinPack::2D; - -my $NAME = "Print3r"; -my $VERSION = '0.3.20'; -my %conf; # -- parsed and fetched options/configuration from cli, settings, profiles, macros ... -my %conf_src; # -- source of configuration ('env','cli','printer','macro') -my %conf_ch; # -- conf changed from defaults -my $map; # -- slicer-depending setting maps (e.g. "wall_line_count" <= "perimeters") -my $process; # -- metadata of the process/task itself (e.g. elapsed time per stage) -my @f; # -- files to process -my @rm; # -- temp files to remove -my @post; # -- post processing - -my($me) = ($0=~/\/([^\/]+)$/); - -# -- defaults -$conf{device} = '/dev/ttyUSB0'; -$conf{slicer} = 'slic3r'; -$conf{timeout} = 10; -$conf{baudrate} = 115200; -$conf{auto_center} = '\1'; -$conf{gviewer} = 'yagv'; -$conf{serialif} = 'serialport'; -$conf{scadimport} = 'use'; - -my @paths = ('./settings',"$ENV{HOME}/.config/print3r","$ENV{HOME}/.print3r","/usr/share/print3r"); - -# -- short to long option mapping -my %s2l = ('q'=>'quiet','v'=>'verbose','b'=>'baudrate','d'=>'device','s'=>'slicer','p'=>'printer','k'=>'keep','o'=>'output'); -my %s2a = ('d'=>1, 'p'=>1, 's'=>1, 'b'=>1, 'o'=>'output'); - -# -- intern option (not to pass on to converters) -my %internOption = ('quiet'=>1,'verbose'=>1,'device'=>1,'baudrate'=>1,'printer'=>1,'slicer'=>1,'output'=>1, - 'auto_center'=>1,'random_placement'=>1,'placement'=>1,'multiply_part'=>1,'scale'=>1,'rotate'=>1,'translate'=>1,'mirror'=>1, - 'timeout'=>1,'scad'=>1,'scadlib'=>1,'scadimport'=>1,'gviewer'=>1,'serialif'=>1,'prepend_gcode'=>1,'layer_gcode'=>1,'stick_position'=>1, - 'display_update'=>1,'phase2_min'=>1,'phase3_min'=>1, 'webcam'=>1, 'webcam_settings'=>1, 'webcam_snap'=>1); - -# -- all formats we support for slicers (scad, sccad aside) -my %formats = ( "stl"=>1, "amf"=>1, "obj"=>1, "3mf"=>1, "3mj"=>1, "off"=>1, "5mf"=>1 ); - -if(which('freecad2any')) { - $formats{$_} = 1 foreach(qw(fcstd iges step brep)); -} - -# -- all slicer specific information (formats = native supported format by the slicer) -my $slicer; - -foreach my $p (@paths) { - if(-e "$p/slicer/slicers.json") { - local $/; - open(my $fh,"<","$p/slicer/slicers.json"); - my $c = <$fh>; - close $fh; - my $s = fromJSON($c); - if(ref($s)eq'HASH') { - foreach my $k (sort keys %$s) { # -- merge data cummulative - $slicer->{$k} = $s->{$k}; - } - } else { - print STDERR "$me: invalid JSON of $p/slicer/slicers.json, skipped\n"; - } - } -} - -my $printer; -$printer->{build}->{x} = 200; -$printer->{build}->{y} = 200; -$printer->{build}->{z} = 180; - -foreach (split(/:/,$ENV{PRINT3R})) { - my($k,$v); - $k = $1, $k =~ s/\-/_/g, $conf{$k} = '\1', $conf_src{$k} = 'env' if(/^([\w\-\.]+)$/); - ($k,$v) = ($1,$2), $k =~ s/\-/_/g, $v =~ s/\\n/\n/g, $conf{$k} = $v, $conf_src{$k} = 'env', next if(/^([\w\-\.]+)=(.*)$/); -} -#foreach (@ARGV) { # -- parse command-line arguments -while($_=shift(@ARGV)) { - if(/^-(\w+)$/) { - foreach my $f (split(/|/,$1)) { # -- '-v' or '-vv' -> "--verbose=2" - if($s2l{$f} && $s2a{$f}) { - $conf{$s2l{$f}} = shift(@ARGV); - } else { - $conf{$s2l{$f}}++; - } - $conf_src{$s2l{$f}} = 'cli'; - } - next; - } - my($k,$v); # -- NOTE: all options '-' => '_' for consistency, also all settings from macros or files - $k = $1, $k =~ s/\-/_/g, $conf{$k} = '\1', $conf_src{$k} = 'cli', next if(/^--([\w\-\.]+)$/); - ($k,$v) = ($1,$2), $k =~ s/\-/_/g, $v =~ s/\\n/\n/g, $conf{$k} .= $v, $conf_src{$k} = 'cli', next if(/^--([\w\-\.]+)\+=(.*)$/); - ($k,$v) = ($1,$2), $k =~ s/\-/_/g, $v =~ s/\\n/\n/g, $conf{$k} = $v, $conf_src{$k} = 'cli', next if(/^--([\w\-\.]+)=(.*)$/); - push(@f,$_); -} - -delete $conf{auto_center} if($conf{random_placement}); # -- resolve contradictions -delete $conf{random_placement}, delete $conf{auto_center} if($conf{translate}); # -- " " -delete $conf{random_placement}, delete $conf{auto_center} if($conf{placement}); -$conf{auto_center} = "\1" if($conf{placement}eq'center'); -$conf{random_placement} = "\1" if($conf{placement}eq'random'); - -$conf{printer} = 'default' if(!$conf{printer}); # -- no printer defined, let's get 'default.ini' if available (should be) - -if($conf{version}) { - print "$NAME $VERSION\n"; - if($conf{verbose}) { - foreach my $v (@{versions()}) { - print "- $v\n"; - } - } - exit 0; -} - -$| = 1; - -$process->{version} = "$NAME $VERSION"; - -if(!$conf_src{slicer}) { # -- slicer not set explicitly on cli - my $slicer_base; - foreach my $fn (@f) { # -- let's look at each file to slice - next if(!-e $fn); # -- we only check if the file actually exists - my $fext = ($fn =~ /\.(\w+)$/); - my $warn = 0; - if(!$slicer->{$conf{slicer}}->{formats}->{$fext}) { # -- default slicer doesn't support file to slice - foreach my $s ($conf{slicer},sort keys %$slicer) { # -- let's try to find appropriate slicer (first hit) - if($slicer->{$s}->{formats}->{$fext}) { - if($slicer_base && $slicer_base ne $s) { - $warn++, print "$me: WARN: you mix multiple formats for $fn ($fext) but contradicting slicer ($slicer_base chosen, $s needed)\n" if($warn<=0); - } - $conf{slicer} = $slicer_base = $s unless($slicer_base); - last; - } - } - } - } -} - -if($slicer->{$conf{slicer}}->{exe}) { - if(!which($slicer->{$conf{slicer}}->{exe})) { # -- probe selected slicer for availability - error("slicer '$conf{slicer}' executable ($slicer->{$conf{slicer}}->{exe}) not found"); - } -} else { - if(!which($conf{slicer})) { # -- slicer executable directly set? - error("slicer '$conf{slicer}' executable not defined and not found"); - } -} - -if($conf{slicer}) { # -- process ...//base.ini to $printer and fetch map-data - my %gc; - foreach my $p (@paths) { - foreach my $fn ( - "$p/slicer/$conf{slicer}/base.ini", - ) { - my $c = readSlicerConf($fn); - foreach my $k (sort keys %$c) { - $gc{$k} = $c->{$k}; - print "$fn: $k = $gc{$k}\n" if($conf{verbose}>1); - } - } - foreach my $k (keys %gc) { # -- transfer settings to $printer - #$conf{$k} = $gc{$k} unless(defined $conf{$k}); - $printer->{$k} = $gc{$k}; - } - $map = readSlicerConf("$p/slicer/$conf{slicer}/map.ini") if(-e "$p/slicer/$conf{slicer}/map.ini"); - } -} - -# -- process '--printer' setting -if($conf{printer}) { - my $done; - - # -- complex strategy: - # 1) merge all data - # 2) consider 'default.ini' regardless for sane base **slicer-independent** settings - # 3) gather printer specifics - - print "$me: combine printer profile:\n" if($conf{verbose}); - - foreach my $p (reverse @paths) { # -- **commulative merge** of data /usr/share/print3r goes FIRST - - foreach my $p2 (".",'printer',"slicer/$conf{slicer}") { # -- non-slicer and slicer-depending printer settings - - print "$me: ... $p/$p2\n" if($conf{verbose}); - - foreach my $pr ('default',$conf{printer}) { - if(-e "$p/$p2/$pr.ini") { # -- printer profile linked, extract useful information - print "$me: loading <$p/$p2/$pr> printer profile\n" if($conf{verbose}); - my $c = readSlicerConf("$p/$p2/$pr.ini"); - - if($c->{machine_width} && $c->{machine_height} && $c->{machine_depth}) { - ($printer->{build}->{x},$printer->{build}->{y},$printer->{build}->{z}) = ($c->{machine_width},$c->{machine_depth},$c->{machine_height}); - } elsif($c->{bed_shape}) { - my(@co) = split(/,/,$c->{bed_shape}); - ($printer->{build}->{x},$printer->{build}->{y}) = split(/x/,$co[2]); - } - - foreach my $k (sort keys %$c) { # -- merge data into conf - # -- override conf but not if 'cli' defined it already - if(!defined $conf{$k} || !defined $conf_src{$k} || $conf_src{$k}eq'printer') { - if($c->{$k}=~/\$\{\w+\}/||$c->{$k}=~/\$\w+/) { # -- any variable to replace? - $c->{$k} =~ s/\$\{(\w+)\}/defined $conf{$1} ? $conf{$1} : "\${$1\}" /eg; # -- only replace if variable is known - $c->{$k} =~ s/\$(\w+)/defined $conf{$1} ? $conf{$1} : "\$$1" /eg; # -- only replace if variable is known - } - $conf{$k} = $c->{$k}, $conf_src{$k} = 'printer'; - $conf_ch{$k}++; - } - } - foreach my $k (sort keys %conf) { # -- transfer command-line args to slicer config - next if($internOption{$k}); - $c->{$k} = $conf{$k}; - } - foreach my $k (sort keys %$c) { # -- transfer slicer config to printer settings (slicer independent - hopefully) - $printer->{$k} = $c->{$k}; - } - $done++ if($conf{printer}eq'default' || $pr ne 'default'); # -- if printer is defined, count only non-default entries - } - } - } - } - if(!$done) { - error("<$conf{printer}> settings not found, abort"); - } -} - -# -- evaluate macros (e.g. "@thin") -my @a; -foreach(@f) { -#while($_ = shift(@f)) { - if(/^@([\w\-\+\/]+)/) { # -- evaluate macros - my $m = $1; - my $done; - foreach my $d (@paths) { - if(-e "$d/macro/$m.ini") { - print "$me: eval macro $d/macro/$m\n" if($conf{verbose}); - push(@{$process->{macros}},"$d/macro/$m"); - open(my $fh,"<","$d/macro/$m.ini"); # -- let's read in order (readSlicerConf() would work, but returns unordered structure) - while(<$fh>) { - chop; - s/#.*$//; # -- remove comments - s/\s*$//; # -- remove trailing spaces - my($k,$v); - if(/^([\w\-\.]+)\s*$/) { - $k = $1; - my $k_ = $k; $k_ =~ s/\-/_/g; # -- printer has - => _ (yes, confusing) - $conf_ch{$k_}++, $conf{$k_} = '\1', $conf_src{$k_} = 'macro:'.$m if((!defined $conf{$k_}) || $conf_src{$k_}eq'printer'); # -- cli options superceed macros - next; - } elsif(/^([\w\-\/]+)\s*=\s*"([^"]+)"/||/^([\w\-\.]+)\s*=\s*(\S.*)\s*$/) { - $k = $1, $v = $2, $k =~ s/\-/_/g, $v = evalExpr($v); # -- options in macro _ => - - my $k_ = $k; $k_ =~ s/\-/_/g; # -- printer has - => _ (yes, confusing) - $conf_ch{$k_}++, $printer->{$k_} = $conf{$k_} = $v, $conf_src{$k_} = 'macro:'.$m if((!defined $conf{$k_}) || $conf_src{$k_}eq'printer'); # -- cli options superceed macros - next; - } - } - close $fh; - $done++; - } - } - if(!$done) { - error("settings <$m> not found in any of (@paths), abort"); - } - - } else { - push(@a,$_); - } -} -@f = @a; - -my $cmd = shift(@f); - -if(-f $cmd) { # -- is it a file? => missing any command? - unshift(@f,$cmd); # -- let's assume to print and put it back - $cmd = 'print'; - print "$me: WARN: missing (print, slice, preview, render, etc), therefore is assumed\n"; -} - -my @f_in = @f; # -- preserve original file list - -if($conf{verbose}) { - print "$me: conf from command-line and macros: ".toJSON(\%conf); - print "$me: command: '$cmd'\n"; - print "$me: files: @f\n"; -} - -$SIG{INT} = sub { - cleanup(); - exit -1; -}; - -if($conf{prepend_gcode}) { - $conf{start_gcode} .= "\n"; - foreach my $l (split(/(\\n|;)/,$conf{prepend_gcode})) { - $l =~ s/\$(\w+)/$conf{$1}/g; - $conf{start_gcode} .= $l."\n"; - } -} - -if($cmd eq 'analyze') { # -- not yet - foreach my $fn (@f) { - if($fn=~/\.(\w+)$/ && $formats{lc($1)}) { - my $i = partRead($fn); - if($i) { - if($conf{verbose}) { - print toJSON($i); # -- dump entire file - } else { - print "$fn:\n"; - print " size: ",toJSON($i->{size},{pretty=>0}),"\n"; - print " pos: ",toJSON($i->{min},{pretty=>0}),"\n"; - print " vertices: ",scalar @{$i->{vertices}},"\n"; - print " facets: ",scalar @{$i->{facets}},"\n"; - } - } - } else { - print "$me: WARN: file-format not supported: <$fn>, only ",join(", ",sort keys %formats),"\n"; - } - } - -} elsif($cmd eq 'slice') { - header(); - foreach my $fn (@f) { - $conf{output} = $fn, $conf{output} =~ s/\.\w+$/.gcode/, $conf{output} .= $conf{output}=~/\.gcode$/i? "" : ".gcode" if(!defined $conf{output}); - if($fn=~/\.scad$/i || $conf{scad} || $fn=~/^#scad\s*/) { - my $c_fn = $conf{output}; - $conf{output} = "/tmp/print3r-$$.stl"; - scadToSTL($fn,\%conf); - $fn = $conf{output}; - $conf{output} = $c_fn; - push(@rm,$fn); - } elsif($fn=~/\.sccad$/i || $conf{sccad} || $fn=~/^#sscad\s*/) { - my $c_fn = $conf{output}; - $conf{output} = "/tmp/print3r-$$.stl"; - sccadToSTL($fn,\%conf); - $fn = $conf{output}; - $conf{output} = $c_fn; - push(@rm,$fn); - } elsif($fn=~/\.(fcstd|iges|step|brep)$/i) { - my $c_fn = $conf{output}; - $conf{output} = "/tmp/print3r-$$.stl"; - fcstdToSTL($fn,\%conf); - $fn = $conf{output}; - $conf{output} = $c_fn; - push(@rm,$fn); - } elsif($fn=~/\.5mf$/i) { - $conf{slicer} = '5dmaker' unless($conf_ch{slicer}); - } - slicePart($fn,\%conf); - my $fno = processGcode($conf{output}); - rename($fno,$conf{output}) if($fno ne $conf{output}); - } - -} elsif($cmd eq 'print' || $cmd eq 'render' || $cmd eq 'preview') { - header(); - my(@fx); - my $o = $conf{output}; # -- preserve original setting - - my $n = 0; - BACK: - foreach my $fn (@f) { - $o = $fn, $o =~ s/\.\w+$/.png/ unless($o); - - if($fn=~/\.scad$/i || $conf{scad} || $fn=~/^#scad\s*/) { - $conf{output} = "/tmp/print3r-$$-$n.stl"; - scadToSTL($fn,\%conf); - $fn = $conf{output}; - push(@rm,$fn); - } elsif($fn=~/\.sccad$/i || $conf{sccad} || $fn=~/^#scad\s*/) { - $conf{output} = "/tmp/print3r-$$-$n.stl"; - sccadToSTL($fn,\%conf); - $fn = $conf{output}; - push(@rm,$fn); - } elsif($fn=~/\.(fcstd|iges|step|brep)$/i) { - my $c_fn = $conf{output}; - $conf{output} = "/tmp/print3r-$$.stl"; - fcstdToSTL($fn,\%conf); - $fn = $conf{output}; - $conf{output} = $c_fn; - push(@rm,$fn); - } elsif($fn=~/\.5mf$/i) { - $conf{slicer} = '5dmaker' unless($conf_ch{slicer}); - } - - if($fn=~/\.(\w+)$/ && ($formats{lc($1)} && !$slicer->{$conf{slicer}}->{formats}->{lc($1)})) { # -- conversion needed for slicer? - my $fmt = lc $1; - my $p = partRead($fn); - my $tmp = "/tmp/print3r-extra-$$-$n.".($p->{volumes}?"amf":($slicer->{$conf{slicer}}->{formats}->{obj}?"obj":"stl")); - partWrite($tmp,$p); - $fn = $tmp; - push(@rm,$tmp); - } - - if($fn=~/\.(\w+)$/ && $formats{lc($1)}) { - #$conf{output} = "/tmp/print3r-$$-$n.gcode"; - #slicePart($fn,\%conf); - #$fn = $conf{output}; - #push(@rm,$fn); - push(@fx,$fn); # -- we gather all parts (.stl,.amf,.obj, etc) - - } elsif($fn=~/\.gcode$/i) { # -- already .gcode, we print direct - if($cmd eq 'render') { - $conf{output} = $fn, $conf{output} =~ s/\.\w+$/.png/; - $conf{output} = $o if(defined $o); - renderGcode($fn,\%conf); - } elsif($cmd eq 'preview') { - print "$me: launch gcode viewer ($conf{gviewer})\n" unless($conf{quiet}); - if(fork()==0) { - exec($conf{gviewer},$fn); - } - wait; - } else { - printGcode($fn,\%conf); - } - } elsif($fn=~/^#(\d+)$/) { # -- reference past print job - logReference($1); - goto BACK; - - } else { - print "$me: WARN: file-format not supported: <$fn>, only scad, sccad, ",join(", ",sort keys %formats),", gcode\n"; - } - $n++; - } - if(@fx) { # -- slice all parts together and print then - my $fn = $conf{output} = "/tmp/print3r-$$.gcode"; - slicePart(\@fx,\%conf); - push(@rm,$fn); - if($cmd eq 'render') { - if(defined $o) { - $conf{output} = $o; - } else { - $conf{output} = $fn; - } - $conf{output} =~ s/\.[^\/\.]$/.png/; - renderGcode($fn,\%conf); - } elsif($cmd eq 'preview') { - print "$me: launch gcode viewer ($conf{gviewer})\n" unless($conf{quiet}); - if(fork()==0) { - exec($conf{gviewer},$fn); - } - wait; - } else { - printGcode($fn,\%conf); - } - } - -} elsif($cmd eq 'gcode') { - my $tmp = "/tmp/print3r-$$.gcode"; - open(my $fh,">",$tmp); - print $fh "G4 S1\n"; # -- wait 1 sec, required for Marlin otherwise following commands go nowhere - foreach (@f) { - s/\\n/\n/g; - print $fh $_."\n"; - } - print $fh "G4 S1\n"; # -- wait 1 sec at the end - print join("\n",@f)."\n" if($conf{verbose}); - close $fh; - - printGcode($tmp,\%conf); - unlink $tmp; - -} elsif($cmd eq 'gconsole') { - $| = 1; - print "== $NAME $VERSION: Gcode Console ($cmd) - use CTRL-C or 'exit' or 'quit' to exit\n"; - print " for valid Gcode see https://reprap.org/wiki/G-code\n"; - print "conf: device $conf{device}, "; - - my $com = openSerial($conf{device}); - - my $cpath; # -- find slicer base settings; cpath contains path - foreach my $p (reverse @paths) { - $cpath = $p, last if(-e "$p/gconsole"); - } - print "$me: commands found at $cpath\n" if($conf{verbose} && $cpath); - - if(!eval { require Term::ReadLine }) { - error("missing requirement Term::ReadLine::Gnu perl module, rerun `make requirements` from the installation directory"); - } - - my $t = new Term::ReadLine($me); - #$t->bind_key(ord "\cc", 'abort'); - - print "connected\n"; - while(1) { - my $ln; - if(0) { - print "> "; - $ln = readline(STDIN); - } else { - $ln = $t->readline(">",' '); # -- supports history (cursor-down/up) - } - my($cmd,$v) = gconsole($ln,$com,$cpath); - foreach my $l (split(/\n/,$cmd)) { - print "send <$l>\n" if($v || $conf{verbose}); - printerSend($com,$l."\n"); - my($resp) = printerResponse($com,$cmd); - print "-----\n$resp.\n"; - } - } - -} elsif($cmd eq 'client') { - my $fn = "/tmp/print3r-client-$$.cfg"; - if(!-e $conf{device}) { - error("can't open $conf{device} for remote access: $!"); - } - if(!which('ser2net')) { - error("ser2net not found or installed"); - } - if(open(my $fh,">",$fn)) { - my $p = 3380; - my $pp = 0; - - $pp = $1*1, $p += $pp if($conf{device}=~/(\d+)$/); - print $fh "$p:raw:600:$conf{device}:$conf{baudrate} 8DATABITS NONE 1STOPBIT -XONXOFF LOCAL -RTSCTS\n"; - close $fh; - - push(@rm,$fn); - - if(fork()==0) { - exec("ser2net","-n","-c",$fn); - } - if(!$conf{quiet}) { - print "$me: client started, use `--device=tcp:$ENV{HOST}:$pp` to connect\n"; - print "$me: use CTRL-C to kill/end gateway\n"; - print "$me: NOTE: anybody on your local network has the capability to access and \n$me: control this printer; it is YOUR RESPONSIBILITY to secure \n$me: your local network from unauthorized use of your printer(s)\n"; - } - wait; - - } else { - error("couldn't start ser2net job"); - } - -} elsif($cmd eq 'log') { - my $fn = "$ENV{HOME}/.print3r/log.json"; - open(my $fh,"<",$fn); - if(0 && (stat($fn))[7]>3000) { - seek($fh,-2000*50,2); - } - my $sum; - my $no = 1; - my(@ma); - my $disp = sub { - my($js,$no) = @_; - my $d = eval { from_json($js) }; - if($d && ref($d) eq 'HASH') { - print to_json($d,{pretty=>1, canonical=>1}) if($conf{verbose} || $conf{format}eq'json'); - if($conf{format}ne'json') { - print "#$no: "; - print join(", ",@{$d->{file_list}}).($d->{settings} && $d->{settings}->{multiply_part}?" x $d->{settings}->{multiply_part}":"") if($d->{file_list}); - my @t = localtime($d->{time}); - my $dt = time()-$d->{time}; - print sprintf(": %04d/%02d/%02d %02d:%02d:%02d (%s ago): %d mins printing",$t[5]+1900,$t[4]+1,$t[3],$t[2],$t[1],$t[0], - $dt > 60*60*24*365*1.5 ? sprintf("%.1f years",$dt/(60*60*24*365)) : $dt > 60*60*24*30*3 ? sprintf("%d months",$dt/(60*60*24*30)) : sprintf("%d days",$dt/(60*60*24)), $d->{duration}/60); - print sprintf(" on <%s>",$d->{settings}->{printer}) if(defined $d->{settings}->{printer}); - print sprintf(", %.2fm filament",$d->{process}->{filament_used}/1000) if(defined $d->{process}->{filament_used}); - if($conf{output}) { - my $e; - foreach my $k (split(/,/,$conf{output})) { - my $v = defined $d->{settings}->{$k} ? $d->{settings}->{$k} : defined $d->{process}->{$k} ? $d->{process}->{$k} : defined $d->{printer}->{$k} ? $d->{printer}->{$k} : $d->{$k}; - $e->{$k} = $v if(defined $v); - } - print ": ".toJSON($e,{pretty=>0}) if($e); - } - $sum->{filament} += $d->{process}->{filament_used} if($d->{process}); - $sum->{duration} += $d->{duration}; - $sum->{jobs}++; - print "\n"; - } - } - }; - while(<$fh>) { - my $m = 1; - if(@f>0) { - $m = 0; - if($f[0]=~/^#(-?\d+)/) { - $m++ if($1 >= 0 && $no == $1); - push(@ma,{data=>$_,no=>$no}), @ma > -$1 ? shift(@ma):0 if($1 < 0); - } else { - $m++, print "match: " if(/$f[0]/i); - } - } - &$disp($_,$no) if($m); - $no++; - } - if(@ma) { - foreach (@ma) { - &$disp($_->{data},$_->{no}); - } - } - close $fh; - print sprintf("== totals: %d jobs, %dm filament, %d days printing\n",$sum->{jobs},$sum->{filament}/1000,$sum->{duration}/60/60/24) if($conf{format}ne'json'); - exit 0; - -} elsif($cmd eq 'webgui') { - webgui(); - -} else { - # slic3r, slic3r-pe, prusa, cura-legacy, cura - # slicer4rtn, cura-slicer, 5dmaker, kirimoto - print "$NAME ($me) $VERSION USAGE: [] [<...>] - - options: - --verbose or -v or -vv increase verbosity - --quiet or -q no output except fatal errors - --baudrate= set baudrate, default: $conf{baudrate} - -b - --device= set device, default: $conf{device} - -d - --slicer= set slicer, default: $conf{slicer} - -s - ".join(", ",sort keys %$slicer)." - --printer= config of printer, default: $conf{printer} - -p - --version display version and exit - --output= define output file for 'slice' and 'render' command - -o - --scad consider all arguments as actual OpenSCAD code (not files) - --scadlib= define OpenSCAD files separated by \",\" or \":\" - by default '$conf{scadimport} ', change with --scadimport=include - --prepend-gcode=... add manually start-gcode - --layer-gcode=... insert gcode at layer change - --display_update=off turn built-in display updates off - --post_=... define a post-processing stage (use '%i' input file, '%o' output file) - --post=[,] apply post-processing stage(s) - part preprocessing: - --random-placement place print randomly on the bed - --auto-center place print in the center - --multiply-part= multiply part(s) - --rows= define rows for multiplied parts - --cols= define cols for multiplied parts - --scale=,, scale part x,y,z (absolute if 'mm' is appended) - --scale= scale part f,f,f - --rotate=,, rotate x,y,z - --translate=,, translate x,y,z - --mirror=,, mirror x,y,z (0=keep, 1=mirror) - --uid= define part unique id (default: auto generated uid) - --= include any valid slicer option (e.g. slic3r --help) - - commands: - print [...] print (convert & slice & print) part(s) (".join(', ',sort keys %formats).") - slice [...] slice file(s) to gcode (same formats as 'print') - preview [...] slice & preview (same formats as 'print') - render [...] render an image (use '--output=sample.png' or so) - gcode [...] send gcode lines - gconsole start gcode console - client map USB connected printer to network (per device) - log [|<#num>] list log of finished prints, use -v for details or --format=json to dump JSON - use --output=[,] to list particular keys - if num is negative, the last entries are shown, e.g. '#-5' - help - - examples: - export PRINT3R \"printer=my_printer\" --OR-- setenv PRINT3R \"printer=my_printer\" - $me slice cube.stl - $me --layer-height=0.2 -o test.gcode slice cube.stl - $me -p ender3 -d /dev/ttyUSB1 print test.gcode - $me -p corexy -d /dev/ttyUSB2 --layer-height=0.3 --fill-density=0 print cube.stl - $me -p ender3 -d tcp:192.168.0.2 --layer-height=0.25 print cube.stl - $me print cube.scad - $me print parametric.scad --scad.A=20 --scad.B=30 - $me --scad print \"cube(20)\" - $me --scad print \"cube(a)\" --scad.a=20 - $me log - $me --output=uid,layer_height log cube - $me log -v '#12' - $me gcode 'G28 X Y' 'G1 X60' 'G28 Z' - $me gconsole - == Print3r: Gcode Console (gconsole) - use CTRL-C or 'exit' or 'quit' to exit - for valid Gcode see https://reprap.org/wiki/G-code - conf: device /dev/ttyUSB0, connected - > M115 - ... - -"; -} - -cleanup(); - -# --------------------------------------------------------------------------------------------------------------- - -sub internOption { - my($k) = @_; - return 1 if($internOption{$k}); - return 1 if($k=~/^--scad\./); - return 0; -} - -sub error { - print STDERR "\n$me: ERROR: $_[0]\n"; - cleanup(); - exit -1; -} - -sub header { - if(!$conf{quiet}) { - print "== $NAME $VERSION == https://github.com/Spiritdude/Print3r\n"; - print "$me: conf: device $conf{device}"; - print ", $conf{machine_name}" if($printer->{machine_name}); - print ", build/v $printer->{build}->{x}x$printer->{build}->{y}x$printer->{build}->{z}mm"; - print ", nozzle/d $printer->{nozzle_diameter}mm" if($printer->{nozzle_diameter}); - print ", layer/h $printer->{layer_height}mm" if($printer->{layer_height}); - print ", filament/d $printer->{filament_diameter}mm" if($printer->{filament_diameter}); - print "\n"; - - } -} - -sub cleanup { - print "$me: cleanup\n" if($conf{verbose}); - if($conf{keep}) { - print "INFO: @rm files kept for debugging\n"; - } else { - unlink @rm if(@rm); - } - @rm = (); -} - -# --------------------------------------------------------------------------------------------------------------- - -sub scadToSTL { - my($fn) = shift; - my(%conf) = %{@_[0]}; - my $fno; - - if($conf{scad} || $fn=~s/^#scad\s*//) { # -- any code to execute as well? $fn isn't a filename but code itself - my $tmp = "/tmp/$me-$$-exec.scad"; - open(my $fh,">",$tmp) || error("can't create <$tmp>: $!"); - foreach my $l (split(/[,\:]/,$conf{scadlib})) { - $l = cwd()."/".$l unless($l =~ /^\//); - print $fh "$conf{scadimport} <$l>\n"; - } - $fno = $fn; - $fn .= ";" unless($fn=~/;\s*$/); - print $fh $fn; - close $fh; - push(@rm,$tmp); - $fn = $tmp; - } - - if(fork()==0) { - $conf{output} = $fn, $conf{output} =~ s/.\w+$/.stl/ unless($conf{output}); - unlink $conf{output}; - my(@a) = ('openscad'); - foreach my $k (sort keys %conf) { - push(@a,"-D","$1=$conf{$k}") if($k =~ /^scad\.(\w+)/); - } - push(@a,'-o',$conf{output},$fn); - unless($conf{verbose}) { - close STDOUT; - close STDERR; - } - exec(@a); - } - unless($conf{quiet}) { - if($conf{scad}) { - print "$me: scad to stl: '$fno'"; - print " with libraries: $conf{scadlib}" if($conf{scadlib}); - } else { - print "$me: scad to stl: <$fn>"; - } - } - wait(); - if($?) { - print "\n$me: openscad: ERROR (bad options/arguments?)\n"; - } else { - print ", done.\n" unless($conf{quiet}); - } -} - -sub sccadToSTL { - my($fn) = shift; - my(%conf) = %{@_[0]}; - my $fno; - - if($conf{sccad} || $fn=~s/^#sscad\s*//) { # -- any code to execute as well? $fn isn't a filename but code itself - my $tmp = "/tmp/$me-$$-exec.sccad"; - open(my $fh,">",$tmp) || error("can't create <$tmp>: $!"); - foreach my $l (split(/[,\:]/,$conf{sccadlib})) { - print $fh "include('$l');\n"; - } - $fno = $fn; - $fn .= ";" unless($fn=~/;\s*$/); - print $fh $fn; - close $fh; - push(@rm,$tmp); - $fn = $tmp; - } - - if(fork()==0) { - $conf{output} = $fn, $conf{output} =~ s/.\w+$/.stl/ unless($conf{output}); - unlink $conf{output}; - my(@a) = ('scriptcad','--merge','-o',$conf{output},$fn); - unless($conf{verbose}) { - close STDOUT; - close STDERR; - } - exec(@a); - } - unless($conf{quiet}) { - if($conf{sccad}) { - print "$me: sccad to stl: '$fno'"; - print " with libraries: $conf{sccadlib}" if($conf{sccadlib}); - } else { - print "$me: sccad to stl: <$fn>"; - } - } - wait(); - if($?) { - print "\n$me: scriptcad: ERROR (bad options/arguments?)\n"; - } else { - print ", done.\n" unless($conf{quiet}); - } -} - -sub fcstdToSTL { - my($fn) = shift; - my(%conf) = %{@_[0]}; - my $fno; - - if(fork()==0) { - $conf{output} = $fn, $conf{output} =~ s/.\w+$/.stl/ unless($conf{output}); - unlink $conf{output}; - my(@a) = ('freecad2any','-o',$conf{output},$fn); - unless($conf{verbose}) { - close STDOUT; - close STDERR; - } - exec(@a); - } - print "$me: freecad to stl: <$fn>" unless($conf{quiet}); - wait(); - if($?) { - print "\n$me: freecad2any: ERROR (bad options/arguments?)\n"; - } else { - print ", done.\n" unless($conf{quiet}); - } -} - -# --------------------------------------------------------------------------------------------------------------- - -sub readSlicerConf { - my($fn) = @_; - my $i; - my $n = 0; - - if(open(my $fh,"<",$fn)) { - my $kl; - while(<$fh>) { - if($n==0 && /^{/) { # -- is it JSON? - local $/; # -- read next in one go (not line-wise) - $_ .= <$fh>; - return fromJSON($_); - } - chop; - s/^\s*#.*$//; # -- remove comments - s/\s*$//; # -- remove trailing spaces - next if(/^\s*#/); - next if(/^\s*$/); - my($k,$v); - ($k,$v) = ($1,$2), $k =~ s/\-/_/g, $v =~ s/\\n/\n/g, $i->{$k} = $v, $kl = $k, next if(/^([\w\-\.]+)\s*=\s*"([^"]*)"/); # -- cura-like - ($k,$v) = ($1,$2), $k =~ s/\-/_/g, $v =~ s/\\n/\n/g, $v =~ s/#.*$//, $i->{$k} = $v, $kl = $k, next if(/^([\w\-\.]+)\s*=\s*(\S.*)$/); # -- slicer-like - if($kl && /^(\t| {3,})(\S.*)/) { # -- multi-line setting - $v = $2; - if($v=~/"([^"]+)"/) { - $v = $1; - } else { - $v =~ s/#.*$//; - } - $v =~ s/\\n/\n/g; - $i->{$kl} .= $v; - next; - } - $n++; - } - close $fh; - } - return $i; -} - -# --------------------------------------------------------------------------------------------------------------- - -sub remap { - my($c) = @_; - my $cn = { }; - my $done; - - print "$me: conf premap: ",toJSON(\%conf) if($conf{verbose}>1); - - foreach my $k (sort keys %$map) { # 1. apply all mapping - my $expr = $map->{$k}; - my $vars = $map->{$k}; - my %undef; - - if(1) { - while($vars =~ s/\$(\w+)//) { # -- sequentially replace variables - my $kx = $1; - if(defined $conf{$kx}) { - $expr =~ s/\$(\w+)/$conf{$kx}/; # -- replace in expr - } else { - $undef{$kx}++ # -- remember undefined variables - } - } - - if(keys %undef) { - print "\n$me: WARN: ",join(', ',sort keys %undef)," is undefined but required for expression '$k=$map->{$k}'\n"; - $cn->{$k} = $c->{$k}; - } else { - my $v = $expr; - $v =~ s/\{([^}]+)\}/eval($1)/eg; - if($@) { - print STDERR "\n$me ERROR: in evaluation of $k = '$expr': $@\n"; - } - $cn->{$k} = $v; - $done->{$k}++; - } - } - } - foreach my $k (sort keys %$c) { # -- 2. transfer non-mapped variables - unless($done->{$k}) { - my $v = defined $conf{$k} ? $conf{$k} : $c->{$k}; - $v =~ s/{([^}]+)\}/eval($1)/eg; - $cn->{$k} = $v; - } - } - print "$me: map & conf postmap: ",toJSON([$map,$cn]) if($conf{verbose}>1); - return $cn; -} - -# --------------------------------------------------------------------------------------------------------------- - -sub renderScad { - my($fn) = shift; - my(%conf) = %{@_[0]}; - - if(!$fn=~/\.scad$/i) { - print "$me: WARN: you can only render .scad files but not <$fn>\n"; - } - if(fork()==0) { - $conf{output} = "sample.png" unless($conf{output}); - unless($conf{verbose}) { - close STDERR; - close STDOUT; - } - unlink $conf{output}; - exec("openscad","-o",$conf{output},"--imgsize=512,512",$fn); - } - print "render png: "; - wait(); - if($?) { - print "openscad: ERROR (bad options/arguments?)\n"; - } else { - print "done.\n" unless($conf{quiet}); - } -} - -sub renderSTL { - my($fn) = shift; - my(%conf) = %{@_[0]}; - - if(!$fn=~/\.stl$/i) { - print "$me: WARN: you can only render .stl files but not <$fn>, skipped\n"; - return; - } - my $tmp = "./print3r-$$.stl"; - if(fork()==0) { - $conf{output} = $fn, $fn =~ s/\.\w+$/.png/ unless($conf{output}); - if(open(my $fh,">",$tmp)) { - print $fh "import(\"$fn\");\n"; - close $fh; - unless($conf{verbose}) { - close STDERR; - close STDOUT; - } - unlink $conf{output}; - exec("openscad","-o",$conf{output},"--imgsize","512,512",$tmp); - } - } - print "render stl: " unless($conf{quiet}); - wait(); - unlink $tmp; - if($?) { - print "\n$me: openscad: ERROR (bad options/arguments?)\n"; - } else { - print "done.\n" unless($conf{quiet}); - } -} - -sub _moveTo { - my($p) = @_; - print "$p->{x} $p->{y} $p->{z}\n"; -} - -sub _printTo { - my($p) = @_; - print "$p->{x} $p->{y} $p->{z}\n"; -} - -sub _3dto2d { - my($p,$pe,$im,$view) = @_; - my($x,$y); - my $loc; - - unless($view) { - $view->{x} = $printer->{build}->{x} / 2; - $view->{y} = -$printer->{build}->{y} * 1.5; - $view->{z} = $printer->{build}->{z} * 0.8; - } - - $loc->{x} = 0; - $loc->{y} = 0; - $loc->{z} = 0; - - if($pe eq 'side') { - $x = $p->{y}*$im->{width}/$printer->{build}->{y}; - $y = $im->{height} - $p->{z}*$im->{height}/$printer->{build}->{z}; - } elsif($pe eq 'front') { - $x = $p->{x}*$im->{width}/$printer->{build}->{x}; - $y = $im->{height} - $p->{z}*$im->{height}/$printer->{build}->{z}; - } elsif($pe eq 'top') { - $x = $p->{x}*$im->{width}/$printer->{build}->{x}; - $y = $im->{height} - $p->{y}*$im->{height}/$printer->{build}->{y}; - } else { - if(1) { - my $x_ = $p->{x} - $view->{x} - $loc->{x}; - my $y_ = $p->{z} - $view->{z} - $loc->{y}; - my $z_ = $p->{y} - $view->{y} - $loc->{z}; - $z_ = $z_ / 2; - $x = (+($x_ / $z_)) * $im->{width}/2 + $im->{width}/2; - $y = (-($y_ / $z_)) * $im->{height}/2 + $im->{height}/2 - 20; # -- leave some space for version/date - } else { - $x = $p->{x}*$im->{width}/$printer->{build}->{x} + $p->{z}*$im->{height}/$printer->{build}->{z}/2; - $y = $im->{height}-$p->{y}*$im->{height}/$printer->{build}->{y} - $p->{z}*$im->{height}/$printer->{build}->{z}/3; - } - } - ($x+$im->{xoff},$y+$im->{yoff}); -} - -sub renderGcode { - my($fn) = shift; - my(%conf) = %{@_[0]}; - - if(!$fn=~/\.gcode$/i) { - print "$me: WARN: you can only render .gcode files but not <$fn>, skipped\n"; - return; - } - - # $fn = processGcode($fn); - - my $fh; - if(!open($fh,"<",$fn)) { - error("<$fn> not found, abort."); - } - - seek($fh,4096,-1); # -- try to parse end of .gcode from slic3r to pick up metadata - my $tail; - while(<$fh>) { - chop; - if(/^; filament used = ([\d\.]+)/) { # -- slic3r* - $process->{filament_used} = $1; - $tail++; - } elsif(/^; filament used \[mm\] = ([\d\.]+)/) { # -- prusa - $process->{filament_used} = $1; - $tail++; - } elsif($tail && /^; (\w+) = (.*)/) { - $printer->{$1} = $2; - } - } - if($printer->{machine_width}) { - ($printer->{build}->{x},$printer->{build}->{y},$printer->{build}->{z}) = ($printer->{machine_width},$printer->{machine_depth},$printer->{machine_height}); - } elsif($printer->{bed_shape}) { - ($printer->{build}->{x},$printer->{build}->{y}) = split(/x/,(split(/,/,$printer->{bed_shape}))[2]); - } - - use GD; - - print "$me: render: read gcode" unless($conf{quiet}); - print ", reading <$fn>" if($conf{verbose}); - - my($w,$h) = (512+170,512); - my $im = new GD::Image($w,$h); - my $col; - - $col->{bg} = $im->colorAllocate(255,255,255); - $col->{extrusion} = $im->colorAllocate(128,200,128); - $col->{box} = $im->colorAllocate(240,240,240); - $col->{text} = $im->colorAllocate(128,128,128); - $col->{bed} = $im->colorAllocate(200,200,200); - $col->{bed_raster} = $im->colorAllocate(210,210,210); - $col->{bed_raster2} = $im->colorAllocate(220,220,220); - - foreach my $r (0..100) { - my $n = $im->colorAllocate($r/100*128+60,$r/100*128+127,$r/100*128+60); - $col->{depth} = $n unless($col->{depth}); - } - - my($w0,$h0); - my($w1,$h1); - my($w2,$h2); - my($w3,$h3); - - if($printer->{build}->{x} >= $printer->{build}->{y}) { - $w0 = 512, $h0 = $w0 / $printer->{build}->{x} * $printer->{build}->{y}; - $w3 = 512, $h3 = $w3 / $printer->{build}->{x} * $printer->{build}->{y}; - } else { - $h0 = 512, $w0 = $h0 / $printer->{build}->{y} * $printer->{build}->{x}; - $h3 = 512, $w3 = $h3 / $printer->{build}->{y} * $printer->{build}->{x}; - } - if($printer->{build}->{x} >= $printer->{build}->{z}) { - $w1 = 512, $h1 = $w1 / $printer->{build}->{x} * $printer->{build}->{z}; - } else { - $h1 = 512, $w1 = $h1 / $printer->{build}->{x} * $printer->{build}->{z}; - } - if($printer->{build}->{y} >= $printer->{build}->{z}) { - $w2 = 512, $h2 = $w2 / $printer->{build}->{y} * $printer->{build}->{z}; - } else { - $h2 = 512, $w2 = $h2 / $printer->{build}->{y} * $printer->{build}->{z}; - } - - my $wx = 171; - my $hx = 171; - - # -- beds - #$im->rectangle(0,0,$w0,$h0,$col->{bed}); - $im->setThickness(2); - $im->line(512,$h1/3+1,512+$w1/3,$h1/3+1,$col->{bed}); - $im->line(512,$hx+$h2/3+1,512+$w2/3,$hx+$h2/3+1,$col->{bed}); - $im->filledRectangle(512+1,$hx*2+1,512+$w2/3-1,$hx*2+$h3/3-1,$col->{bed}); - - # -- separating views - $im->line(512,0,512,512,$col->{box}); - $im->line(512,$hx,512+$wx,$hx,$col->{box}); - $im->line(512,$hx*2,512+$wx,$hx*2,$col->{box}); - - $im->setThickness(1); - $im->string(gdSmallFont,512+5,5,"front",$col->{text}); - $im->string(gdSmallFont,512+5,$hx+5,"side",$col->{text}); - $im->string(gdSmallFont,512+5,$hx*2+5,"top",$col->{text}); - - $im->clip(0,0,512,512); - - my $p = new GD::Polygon; # -- render bed with raster - $p->addPt( - _3dto2d({x=>0,y=>0,z=>0},'perspective',{width=>$w0,height=>$h0})); - $p->addPt( - _3dto2d({x=>$printer->{build}->{x},y=>0,z=>0},'perspective',{width=>$w0,height=>$h0})); - $p->addPt( - _3dto2d({x=>$printer->{build}->{x},y=>$printer->{build}->{y},z=>0},'perspective',{width=>$w0,height=>$h0})); - $p->addPt( - _3dto2d({x=>0,y=>$printer->{build}->{y},z=>0},'perspective',{width=>$w0,height=>$h0})); - $im->filledPolygon($p,$col->{bed}); - - for(my $i=0; $i<$printer->{build}->{x}; $i += 10) { - my $n = 1; - my $c = 'bed_raster'; - $n = 2, $c = 'bed_raster2' if($i%100==0); - for(my $j=0; $j<$n; $j++) { - $im->line( - _3dto2d({x=>$i,y=>0,z=>0},'perspective',{xoff=>$j,width=>$w0,height=>$h0}), - _3dto2d({x=>$i,y=>$printer->{build}->{y},z=>0},'perspective',{xoff=>$j,width=>$w0,height=>$h0}), - $col->{$c} - ); - } - } - for(my $i=0; $i<$printer->{build}->{y}; $i += 10) { - my $n = 1; - my $c = 'bed_raster'; - $n = 2, $c = 'bed_raster2' if($i%100==0); - for(my $j=0; $j<$n; $j++) { - $im->line( - _3dto2d({x=>0,y=>$i,z=>0},'perspective',{yoff=>$j,width=>$w0,height=>$h0}), - _3dto2d({x=>$printer->{build}->{x},y=>$i,z=>0},'perspective',{yoff=>$j,width=>$w0,height=>$h0}), - $col->{$c} - ); - } - } - $im->clip(0,0,512+170,512); - - seek($fh,0,0); # -- back to the beginning - - my($p,$lp); - - foreach my $i (qw(x y z e f)) { - $lp->{$i} = $p->{$i} = 0; - } - - my($z); - - my $line = sub { - my($n,$p,$x1,$y1,$x2,$y2,$c) = @_; - #if(!defined $z->[$n]->{$y1} || $z->[$n]->{$y1} > $p->{y}) { - $im->line($x1,$y1,$x2,$y2,$c); - #} - #$z->[$n]->{$y1} = $p->{z}; - }; - - my $fa; - - $fa++, $process->{filament_used} = 0 unless($process->{filament_used}); # -- filament usage known? if not, recalculate - - while(<$fh>) { - chop; - - #next if(/^;/ || /^\s*$/); - #s/;.*$//; - s/\*.*$//; - - my($c,$id) = (/^([MG])(\d+)/); - - if($c eq 'G' && ($id == 1 || $id == 0)) { # -- move or extrude - my $px; - foreach my $pa (split(/ /)) { - $px->{lc($1)} = $2 if($pa=~/([XYZEF])([\d\.]+)/); - } - foreach my $k (keys %$px) { # -- update $p - $p->{$k} = $px->{$k}; - } - if($px->{e}) { # -- move or extrude - #_printTo($p); - #$im->line($lx,$ly,$x,$y,$col->{extrusion}); - #$im->line(_3dto2d($lp,'perspective',{width=>$w0,height=>$h0}),_3dto2d($p,'perspective',{width=>$w0,height=>$h0}),$p->{z}/$printer->{build}->{z}*200+$col->{depth}); - # -- basic shading based on x/y angle - my $c = abs(atan2($lp->{y}-$p->{y},$lp->{x}-$p->{x})) * 3; $c = ($c % 30) / 30 * 100 + $col->{depth}; - &$line(0,$p,_3dto2d($lp,'perspective',{width=>$w0,height=>$h0}),_3dto2d($p,'perspective',{width=>$w0,height=>$h0}),$c); - &$line(1,$p,_3dto2d($lp,'front',{xoff=>512,yoff=>0,width=>$w1/3,height=>$h1/3-1}),_3dto2d($p,'front',{xoff=>512,yoff=>0,width=>$w1/3,height=>$h1/3-1}),$c); - &$line(2,$p,_3dto2d($lp,'side',{xoff=>512,yoff=>$hx,width=>$w2/3,height=>$h2/3-1}),_3dto2d($p,'side',{xoff=>512,yoff=>$hx,width=>$w2/3,height=>$h2/3-1}),$c); - &$line(3,$p,_3dto2d($lp,'top',{xoff=>512,yoff=>$hx*2,width=>$w3/3,height=>$h3/3-1}),_3dto2d($p,'top',{xoff=>512,yoff=>$hx*2,width=>$w3/3,height=>$h3/3-1}),$c); - $process->{filament_used} += abs($lp->{e}-$p->{e}) < 12 ? $p->{e}-$lp->{e} : 0 if($fa); - - } else { - #_moveTo($p); - } - foreach my $k (keys %$p) { - $lp->{$k} = $p->{$k}; - } - } - } - close $fh; - - my $l = 0; - my $print = sub { - $im->string(gdSmallFont,5,5+$l*15,$_[0],$col->{text}); - $l++; - }; - $im->clip(0,0,512,512); - &$print(sprintf("%15s %s","part".(@f_in>1?"s":""),join(' ',@f_in))); - &$print(sprintf("%15s %.fx%.fx%.fmm",'build',$printer->{build}->{x},$printer->{build}->{y},$printer->{build}->{z})); - &$print(sprintf("%15s %.2fmm",'nozzle/d',$printer->{nozzle_diameter})) if($printer->{nozzle_diameter}); - &$print(sprintf("%15s %.2fmm",'layer/h',$printer->{layer_height})) if($printer->{layer_height}); - &$print(sprintf("%15s %.2fmm",'filament/d',$printer->{filament_diameter})) if($printer->{filament_diameter}); - &$print(sprintf("%15s %.2fm",'filament used',$process->{filament_used}/1000)) if($process->{filament_used}); - &$print(sprintf("%15s %s%s",'slicer',$conf{slicer},$process->{time}->{slice}?sprintf(" (%dm %ds)",int($process->{time}->{slice}/60),$process->{time}->{slice}%60):"")); - - $im->string(gdSmallFont,15,512-15,"$NAME $VERSION",$col->{bed}); - @_ = localtime(); - $im->string(gdSmallFont,512-135,512-15,sprintf("%04d/%02d/%02d %02d:%02d:%02d",$_[5]+1900,$_[4]+1,$_[3],$_[2],$_[1],$_[0]),$col->{bed}); - - print ", write '$conf{output}'" unless($conf{quiet}); - $conf{output} = $fn, $conf{output} =~ s/\.\w+$/.png/ unless($conf{output}); - open(my $fh,">",$conf{output}); - binmode($fh); - print $fh $im->png(); - close $fh; - - print ", done.\n" unless($conf{quiet}); -} - -# --------------------------------------------------------------------------------------------------------------- - -sub slicePart { - my($fn) = shift; - my(%conf) = %{@_[0]}; - my $st = time(); - - if(!ref($fn) && $fn=~/\.(\w+)$/ && ($formats{lc($1)} && !$slicer->{$conf{slicer}}->{formats}->{lc($1)}) ) { - my $p = partRead($fn); - my $tmp = "/tmp/print3r-extra-$$.".($p->{volumes}?"amf":($slicer->{$conf{slicer}}->{formats}->{obj}?"obj":"stl")); - partWrite($tmp,$p); - push(@rm,$tmp); - $fn = $tmp; - } - if(!ref($fn) && $fn=~/\.(\w+)$/ && !$formats{lc($1)}) { - my $f = join(", ",keys %formats); - print "$me: WARN: you can only slice $f files but not <$fn>, skipped\n"; - return; - } - - if(1) { # -- check existence of all file(s) - foreach my $f (ref($fn)?@$fn:$fn) { - error("cannot slice '$f': file not found") if(!-e $f); - } - } - my $tmp = "/tmp/print3r-$$.gcode"; - - my @a = ($slicer->{$conf{slicer}}->{exe}||$conf{slicer}); - - print "$me: slice ($conf{slicer}) part".(ref($fn) && @$fn>1?"s":"")." <".join(", ",ref($fn)?@$fn:$fn)."> to gcode: " unless($conf{quiet}); - - if($conf{scale} || $conf{rotate} || $conf{translate} || $conf{mirror}) { - my @fx = (); - my $n = 0; - foreach my $f (ref($fn)?@$fn:$fn) { - print ", " if($n); - printf "read %s",$f=~/^\/tmp/?"part":"'$f'" unless($conf{quiet}); - my $p = partRead($f); - $p = partRecenter($p,[1,1,$conf{rotate}?1:-1]); - $p = partMirror($p,[split(/,/,$conf{mirror})]) if(defined $conf{mirror}); - $p = partScale($p,[split(/,/,$conf{scale})]) if(defined $conf{scale}); - $p = partRotate($p,[split(/,/,$conf{rotate})]) if(defined $conf{rotate}); - $p = partTranslate($p,[split(/,/,$conf{translate})]) if(defined $conf{translate}); - $p = partRecenter($p,[0,0,-1]) if($conf{slicer}=~/cura/); # -- cura needs part to reside z=0 - printf ", size %.1fx%.1fx%.1f",$p->{size}->[0],$p->{size}->[1],$p->{size}->[2] if($conf{scale} && !$conf{quiet}); - my $tmp = "/tmp/print3r-$$-0-$n.".($p->{volumes}?"amf":($slicer->{$conf{slicer}}->{formats}->{obj}?"obj":"stl")); - partWrite($tmp,$p); - push(@fx,$tmp); - $n++; - } - $fn = \@fx; - push(@rm,@fx); - - } else { - print "prepare" unless($conf{quiet}); - } - - # -- multiply parts (slic3r supports it built-in, otherwise we have to duplicate & reposition parts) - if(!($conf{slicer}=~/(slic3r|prusa|super)/) && $conf{multiply_part}>1 ) { - my @pa; - foreach my $f (ref($fn)?@$fn:$fn) { - push(@pa,partRead($f)); - } - my @fx; - my $j = 0; - foreach my $p (@pa) { - my($w,$h) = ($p->{size}->[0],$p->{size}->[1]); - my $p0 = { }; - my $n = $conf{multiply_part}; - my $ry = $w / $h; - my $xn = $conf{cols} || ($conf{rows} ? int($n / $conf{rows} + 0.5) : int(sqrt($n)) ); - print ", multiply ${n}x ($xn cols)" unless($conf{quiet}); - my @pb; - foreach my $i (0..$n-1) { - my $pn = partTranslate(partRecenter($p,[1,1,0]),[($w+5)*($i%$xn),($h+5)*int($i/$xn),0]); - partMerge($p0,$pn); - } - my $tmp = "/tmp/print3r-$$-ar-$j.".($p->{volumes}?"amf":($slicer->{$conf{slicer}}->{formats}->{obj}?"obj":"stl")); - partWrite($tmp,$p0); - push(@fx,$tmp); - $j++; - } - $fn = \@fx; - push(@rm,@fx); - } - - if((!$conf{stick_position}) && !($conf{slicer}=~/(slic3r|prusa|super)/) && ref($fn) && @{$fn} > 1) { # -- non-slic3r we have to merge/pack now - print ", arrange ",scalar @{$fn}," parts" unless($conf{quiet} || @{$fn}==1); - my @pa; - foreach my $f (@$fn) { - push(@pa,partRead($f)); # -- a bit wasteful, but we don't necessarly have read it already - } - my $p = partsArrange(@pa,$printer); - my $tmp = "/tmp/print3r-$$-ar.".($p->{volumes}?"amf":($slicer->{$conf{slicer}}->{formats}->{obj}?"obj":"stl")); - partWrite($tmp,$p); - push(@rm,$tmp); - $fn = $tmp; # -- back to a single part - } - - # -- replace parts (slic3r supports it built-in, otherwise we have to reposition part(s)) - if((!($conf{slicer}=~/(slic3r|prusa|super|rtn|mandoline|zplus|5dmaker|lab|vox3l|voxgl)/)) && ($conf{auto_center}||$conf{random_placement})) { - my $n = 0; - my @fx; - foreach my $f (ref($fn)?@$fn:$fn) { - my $p = partRead($f); - $p = partRecenter($p,[1,1,0]); # -- required for repositioning - my($x,$y); - if($conf{random_placement}) { - ($x,$y) = ($printer->{build}->{x}*(rand()*0.5+0.5/2),$printer->{build}->{y}*(rand()*0.5+0.5/2)); - print ", reposition [",int($x),",",int($y),"]" if(!$conf{quiet}); - } else { - ($x,$y) = ($printer->{build}->{x}/2,$printer->{build}->{y}/2); - } - $x -= $printer->{build}->{x}/2, $y -= $printer->{build}->{y}/2 if($conf{slicer}=~/cura/); # -- cura assumes 0,0 at center of plate - $p = partTranslate($p,[int($x),int($y),0]); - my $tmp = "/tmp/print3r-$$-1-$n.".($p->{volumes}?"amf":($slicer->{$conf{slicer}}->{formats}->{obj}?"obj":"stl")); - partWrite($tmp,$p); - push(@fx,$tmp); - $n++; - } - $fn = \@fx; - push(@rm,@fx); - } - - my($exit,$out); - - my $cpath; # -- find slicer base settings; cpath contains path - foreach my $p (@paths) { - $cpath = $p, last if(-e "$p/slicer/$conf{slicer}/base.ini"); - } - - print "$me: main base settings found at [$cpath]/slicer/$conf{slicer}/base.ini\n" if($conf{verbose}); - - print "$me: settings for slicing:\n".toJSON(\%conf)."\n" if($conf{verbose}); - - if($conf{slicer}=~/slic3r/||$conf{slicer}eq'prusa'||$conf{slicer}eq'super') { # -- slic3r, slic3r-pe, prusa, superslicer - # -- compose argument list for slic3r - if(1) { - # -- note: slic3r and slic3r-pe won't support all settings coming from command line - # solution: we compose a temporary settings file which merges command line options - my $tmp = "/tmp/print3r-$$-setting.ini"; - my $c = readSlicerConf("$cpath/slicer/$conf{slicer}/base.ini"); - - $c = remap($c); - - open(my $fh,">",$tmp); - - foreach my $k (sort keys %$c) { # -- write from existing base configuration - unless(defined $conf{$k}) { - my $d = $c->{$k}; $d =~ s/\n/\\n/g; - $d = 1 if($d eq "\\1"); - $d = ($d*1)."%" if($k eq 'fill_density'); # -- prusa & super are picky - print $fh "$k = $d\n" unless($conf{$k}); - } - } - - foreach my $k (sort keys %conf) { # -- command line arguments & macros - unless(internOption($k)) { - my $d = $conf{$k}; $d =~ s/\n/\\n/g; - $d = 1 if($d eq "\\1"); - $d = ($d*1)."%" if($k eq 'fill_density'); # -- prusa & super are picky - print $fh "$k = $d\n"; - } - } - close $fh; - push(@a,'--export-gcode') if($conf{slicer}eq'prusa'||$conf{slicer}eq'super'); - push(@a,'--load',$tmp); - push(@rm,$tmp); - #push(@a,'--gcode-comments'); - push(@a,'--before-layer-gcode=;LAYER:[layer_num]'); # -- make it Cura compatible a bit - } - if(defined $conf{output}) { - unlink $conf{output}; - push(@a,'--output',$conf{output}); - } else { - push(@a,'--output',$tmp); - push(@rm,$tmp); - } - if($conf{random_placement}) { - my(@pos) = (int($printer->{build}->{x}*(rand()*0.5+0.5/2)),int($printer->{build}->{y}*(rand()*0.5+0.5/2))); - # -- TODO: check if new printer works with size of part (we have to read the part(s) to know its dimension) - # in case there are multiple parts, we don't know how slic3r combines them ... - push(@a,$conf{slicer}eq'prusa'||$conf{slicer}eq'super'?'--center':'--print-center',join(",",@pos)); - print ", reposition [$pos[0],$pos[1]]" unless($conf{quiet}); - } elsif($conf{auto_center}) { - push(@a,$conf{slicer}eq'prusa'||$conf{slicer}eq'super'?'--center':'--print-center',($printer->{build}->{x}/2).",".($printer->{build}->{y}/2)); - } - if(0) { - foreach my $k (sort keys %conf) { # -- likely not needed, since we rewrote temporary config with all setttings - next if(internOption($k)); - if($conf{$k} eq '\1') { - push(@a,"--$k"); - } else { - push(@a,"--$k",$conf{$k}); - } - } - } - if($conf{multiply_part}>1) { - push(@a,"--merge"); - print ", multiply $conf{multiply_part}x" unless($conf{quiet}); - foreach(1..$conf{multiply_part}) { - push(@a,ref($fn)?@$fn:$fn); - } - } else { - if(ref($fn)eq'ARRAY') { - push(@a,"--merge") if(@$fn>1); - push(@a,@$fn); - } else { - push(@a,$fn); - } - } - print ", slice" unless($conf{quiet}); - print ", exec: @a\n" if($conf{verbose}); - ($exit,$out) = execProgram(@a); - - } elsif($conf{slicer}=~/rtn/) { # -- slicer4rtn - my(%iconf) = ( - slicer => 'slic3r', - mode => 'outside', - axis => 4, - angle => 45, - center => "0,0", - bed_center => "100,100", - zoff => 0, - max_speed => 0, - motion_minz => 0.2, - erate => 1.0, - efmax => 3, - efmin => 0.01, - inter_steps => 2, - subdivide => 2, - output => 1, - keep => 1, - recenter => 1, - rot_gcode => 'A', - rot_revolv => 1, - rot_offset => 0, - rot_fixed => 0, - tilt_gcode => 'B', - layer_height => 0.2, - start_gcode => 1, - end_gcode => 1 - ); - if(1) { - my $tmp = "/tmp/print3r-$$-setting.ini"; - my $c = readSlicerConf("$cpath/slicer/$conf{slicer}/base.ini"); - $c = remap($c); - - open(my $fh,">",$tmp); - foreach my $k (sort keys %$c) { # -- write from existing base configuration - unless(defined $conf{$k}) { - my $d = $c->{$k}; $d =~ s/\n/\\n/g; - $d = 1 if($d eq "\\1"); - print $fh "$k = $d\n" unless(defined $conf{$k} || defined $iconf{$k} || $k =~ /^slicer4rtn\./); - } - } - - foreach my $k (sort keys %conf) { # -- command line arguments & macros - unless(internOption($k)) { - my $d = $conf{$k}; $d =~ s/\n/\\n/g; - $d = 1 if($d eq "\\1"); - print $fh "$k = $d\n" unless(defined $iconf{$k} || $k =~ /^slicer4rtn\./); - } - } - close $fh; - push(@a,"--slicer.load=$tmp"); - push(@rm,$tmp); - } - if(defined $conf{output}) { - unlink $conf{output}; - push(@a,"--output=$conf{output}"); - } else { - push(@a,"--output=$tmp"); - push(@rm,$tmp); - } - #push(@a,"--slicer=prusa-slicer"); - if($conf{random_placement}) { - my(@pos) = (int($printer->{build}->{x}*(rand()*0.5+0.5/2)),int($printer->{build}->{y}*(rand()*0.5+0.5/2))); - # -- TODO: check if new printer works with size of part (we have to read the part(s) to know its dimension) - # in case there are multiple parts, we don't know how slic3r combines them ... - push(@a,($conf{slicer}eq'prusa'||$conf{slicer}eq'super'?'--center':'--bed-center')."=".join(",",@pos)); - print ", reposition [$pos[0],$pos[1]]" unless($conf{quiet}); - } elsif($conf{auto_center}) { - push(@a,($conf{slicer}eq'prusa'||$conf{slicer}eq'super'?'--center':'--bed-center')."=".($printer->{build}->{x}/2).",".($printer->{build}->{y}/2)); - } - foreach my $k (sort keys %conf) { # -- pass slicer4rtn native args by command line - my $k0 = $k; - $k =~ s/^slicer4rtn\.//; - if(defined $iconf{$k} && $k0 ne 'slicer') { - my $k_ = $k; - $k_ =~ s/_/-/g; - my $v = $conf{$k0}; - $v =~ s/\n/\\n/g; - push(@a,"--$k_=$v") - } - } - push(@a,"-v") if($conf{verbose}); - if(ref($fn)eq'ARRAY') { - push(@a,"--merge") if(@$fn>1); - push(@a,@$fn); - } else { - push(@a,$fn); - } - print ", slice" unless($conf{quiet}); - print ", exec: @a\n" if($conf{verbose}); - ($exit,$out) = execProgram(@a); - - } elsif($conf{slicer}eq'mandoline') { # -- mandoline - if(defined $conf{output}) { - unlink $conf{output}; - push(@a,"-o",$conf{output}); - } else { - push(@a,"-o",$tmp); - push(@rm,$tmp); - } - if(open(my $fh,"<","$cpath/slicer/$conf{slicer}/base.ini")) { # -- use some sane settings, we read it sequentially to keep order (!!) - while(<$fh>) { - chop; - next if(/^\s*#/); - if(/(\w+)="([^"]*)"/||/(\w+)=(\S.*)/) { - my($k,$v) = ($1,$2); - $v =~ s/\\n/\n/g; - push(@a,"-S","$k=$v") unless($conf{$k}); - } - } - close $fh; - } else { - print "$me: WARN: no base.ini found in @paths\n"; - } - my $c; - foreach my $k (sort keys %conf) { - next if(internOption($k)); - $c->{$k} = $conf{$k}; # -- just copy - } - $c = remap($c); - foreach my $k (sort keys %$c) { - my $v = $c->{$k}; $v =~ s/\\n/\n/g; - push(@a,"-S","$k=$v"); - } - if($conf{random_placement}) { - my(@pos) = (int($printer->{build}->{x}*(rand()*0.5+0.5/2)),int($printer->{build}->{y}*(rand()*0.5+0.5/2))); - # -- TODO: check if new printer works with size of part (we have to read the part(s) to know its dimension) - # in case there are multiple parts, we don't know how slic3r combines them ... - push(@a,("-S","bed_center_x=$pos[0]","-S","bed_center_y=$pos[1]")); - print ", reposition [$pos[0],$pos[1]]" unless($conf{quiet}); - } elsif($conf{auto_center}) { - push(@a,('-S','bed_center_x='.($printer->{build}->{x}/2),'-S','bed_center_y='.($printer->{build}->{y}/2))); - } - foreach(1..$conf{verbose}) { - push(@a,"-v"); - } - if(ref($fn)eq'ARRAY') { - #push(@a,"--merge") if(@$fn>1); - push(@a,@$fn); - } else { - push(@a,$fn); - } - print ", slice" unless($conf{quiet}); - print ", exec: @a\n" if($conf{verbose}); - ($exit,$out) = execProgram(@a); - - } elsif($conf{slicer}eq'cura-legacy') { # -- cura-legacy - push(@a,"-v"); # -- verbose - #push(@a,'-c',"$cpath/slicer/cura-legacy/base.ini"); - if(0) { - if($conf{random_placement}) { - my(@pos) = (int($printer->{build}->{x}*(rand()*0.5+0.5/2)),int($printer->{build}->{y}*(rand()*0.5+0.5/2))); - $conf{'position.X'} = $pos[0]; - $conf{'position.Y'} = $pos[1]; - print ", reposition [$pos[0],$pos[1]]" unless($conf{quiet}); - } elsif($conf{auto_center}) { - $conf{'position.X'} = $printer->{build}->{x}/2; - $conf{'position.Y'} = $printer->{build}->{y}/2; - } - } - if($conf{output}) { - push(@a,'-o',$conf{output}); - } else { - push(@a,'-o',$tmp); - push(@rm,$tmp); - } - my $c; - foreach my $k (sort keys %conf) { - next if(internOption($k)); - $c->{$k} = $conf{$k}; # -- just copy - } - $c = remap($c); - # -- manually add setting temperatures so we don't have to in start/end_gcode to stay flexible - $c->{startCode} = "; $NAME $VERSION\nG90\n".$c->{startCode}; - $c->{startCode} .= "M109 S$c->{temperature}\n" if($c->{temperature}); - $c->{startCode} .= "M140 S$c->{bed_temperature}\n" if($c->{bed_temperature}); - foreach my $k (sort keys %$c) { - my $v = $c->{$k}; $v =~ s/\\n/\n/g; - push(@a,"-s","$k=$v"); - } - if($conf{multiply_part}>1) { - foreach(1..$conf{multiply_part}) { - foreach(ref($fn)?@$fn:$fn) { - push(@a,$_); - } - } - } else { - if(ref($fn)eq'ARRAY') { - foreach(ref($fn)?@$fn:$fn) { - push(@a,$_); - } - } else { - push(@a,$fn); - } - } - print ", slice" unless($conf{quiet}); - print ", exec: @a\n" if($conf{verbose}); - ($exit,$out) = execProgram(@a,{close_stderr=>1,log_stderr=>1}); - - } elsif($conf{slicer}=~/cura/i && $conf{slicer}ne'cura-slicer') { # -- cura, cura4, cura5 & curax - push(@a,"slice"); - #push(@a,"-p"); # -- progress - push(@a,"-v") if $conf{slicer} ne 'cura5'; # -- verbose - #push(@a,'-j',"slicers/Cura/resources/definitions/fdmprinter.def.json"); - push(@a,'-j',"$cpath/slicer/$conf{slicer}/fdmprinter.def.json"); - #push(@a,'-j',"slicers/Cura/resources/definitions/fdmextruder.def.json"); - #push(@a,'-j',"slicers/Cura/resources/definitions/prusa_i3.def.json"); - #push(@a,'-j',$conf{printer}) if($conf{printer}); - #push(@a,"-g"); - foreach my $n (0..($conf{extruder_count}||1)-1) { - #push(@a,"-e$n"); # -- doesn't work, throws error - push(@a,"-s","extruder_nr=$n"); - my @ks; - if(open(my $fh,"<","$cpath/slicer/$conf{slicer}/base.ini")) { # -- use some sane settings, we read it sequentially to keep order (!!) - while(<$fh>) { - chop; - if(/(\w+)="([^"]*)"/||/(\w+)=(\S.*)/) { - my($k,$v) = ($1,$2); - $v =~ s/\\n/\n/g; - push(@a,"-s","$k=$v") unless($conf{$k}); - } - } - close $fh; - } else { - print "$me: WARN: no base.ini found in @paths\n"; - } - my $c; - foreach my $k (sort keys %conf) { - next if(internOption($k)); - $c->{$k} = $conf{$k}; # -- just copy - } - $c = remap($c); - foreach my $k (sort keys %$c) { - my $v = $c->{$k}; $v =~ s/\\n/\n/g; - push(@a,"-s","$k=$v"); - } - } - if(ref($fn)eq'ARRAY') { - my $n = 0; - foreach my $o (ref($fn)?@$fn:$fn) { - #push(@a,"-e$n"); - #push(@a,"-s","extruder_nr=$n"); $n++; - push(@a,"-l",$o); - # push(@a,'--next'); - } - } else { - push(@a,"-l",$fn); - } - if($conf{output}) { - push(@a,'-o',$conf{output}); - } else { - push(@a,'-o',$tmp); - push(@rm,$tmp); - } - print ", slice" unless($conf{quiet}); - print ", exec: @a\n" if($conf{verbose}); - if($conf{slicer}eq'cura5') { - ($exit,$out) = execProgram(@a,{close_stderr=>1,close_stdout=>1,log_stderr=>'/dev/null',log_stdout=>$conf{verbose}<2?'/dev/null':0}); - } else { - ($exit,$out) = execProgram(@a,{close_stderr=>1,log_stderr=>1}); # -- CuraEngine-3.x & 4.x won't like closed/redirected stdout - } - - } else { - unless($conf{slicer}=~/(cura-slicer|5dmaker|kirimoto|zplus|lab|vox3l|voxgl|enoch|goslice)/) { - print "WARN: slicer '$conf{slicer}' not officially supported, but trying to launch it\n"; - } - if(defined $conf{output}) { - unlink $conf{output}; - push(@a,"-o",$conf{output}); - } else { - push(@a,"-o",$tmp); - push(@rm,$tmp); - } - # -- Note: in general all variables are using _ as spacer, if the slicer reqiures '-' again, make it so (like for `goslice`) - if(open(my $fh,"<","$cpath/slicer/$conf{slicer}/base.ini")) { # -- use some sane settings, we read it sequentially to keep order (!!) - while(<$fh>) { - chop; - next if(/^\s*#/); - if(/([\w\-]+)="([^"]*)"/||/([\w\-]+)=(\S.*)/) { - my($k,$v) = ($1,$2); - #$v =~ s/\\n/\n/g; - $k =~ s/_/-/g if($conf{slicer}eq'goslice'); - push(@a,"--$k=$v") unless(defined $conf{$k}); - } - } - close $fh; - } else { - print "$me: WARN: no base.ini found in @paths\n"; - } - - my %strict; - if(open(my $fh,"<","$cpath/slicer/$conf{slicer}/strict.ini")) { # -- has it strict behaviour? only certain settings otherwise fails? - while(<$fh>) { - chop; - next if(/^\s*#/); - if(/^([\w\-]+)/) { - $strict{$1}++; - } - } - close $fh; - } - - foreach my $k (sort keys %conf) { # -- pass .* native args by command line - my $k0 = $k; - my $sl = $conf{slicer}; - $sl =~ s/-/_/g; - if($k =~ s/^$sl\.//) { - my $k_ = $k; - $k_ =~ s/_/-/g; - my $v = $conf{$k0}; - $v =~ s/\n/\\n/g; - next if(%strict && !defined $strict{$k_}); - #$k_ =~ s/_/-/g if($conf{slicer}eq'goslice'); # -- done already above - push(@a,"--$k_=$v") - } - } - my $c; - foreach my $k (sort keys %conf) { - next if(internOption($k)); - my $v = $conf{$k}; - $v =~ s/\n/\\n/g unless($conf{slicer}eq'goslice'); - $v = 1 if($v eq '\1'); - next if(%strict && !defined $strict{$k}); - $c->{$k} = $v; # -- just copy - } - $c = remap($c); - foreach my $k (sort keys %$c) { - my $v = $c->{$k}; - $v =~ s/\n/\\n/g unless($conf{slicer}eq'goslice'); - $v = 1 if($v eq '\1'); - next if(%strict && !defined $strict{$k}); - $k =~ s/_/-/g if($conf{slicer}eq'goslice'); - push(@a,"--$k=$v"); - } - if($conf{random_placement}) { - my(@pos) = (int($printer->{build}->{x}*(rand()*0.5+0.5/2)),int($printer->{build}->{y}*(rand()*0.5+0.5/2))); - # -- TODO: check if new printer works with size of part (we have to read the part(s) to know its dimension) - # in case there are multiple parts, we don't know how slic3r combines them ... - if($conf{slicer}eq'kirimoto') { - push(@a,"--bedOrigin=$pos[0],$pos[1]","--outputOriginCenter=true"); - } elsif($conf{slicer}eq'goslice') { - push(@a,"--center=".($pos[0]*1000)."_".($pos[1]*1000)."_0"); - } else { - push(@a,"--bed_center=$pos[0],$pos[1]"); - } - print ", reposition [$pos[0],$pos[1]]" unless($conf{quiet}); - } elsif($conf{auto_center} && $conf{slicer}ne'goslice') { - push(@a,'--bed_center='.($printer->{build}->{x}/2).','.($printer->{build}->{y}/2)); - } - foreach(1..$conf{verbose}) { - next if($conf{slicer}eq'goslice'); - push(@a,"-v"); - } - if(ref($fn)eq'ARRAY') { - #push(@a,"--merge") if(@$fn>1); - push(@a,@$fn); - } else { - push(@a,$fn); - } - print ", slice" unless($conf{quiet}); - print ", exec: @a\n" if($conf{verbose}); - ($exit,$out) = execProgram(@a,{close_stdout=>!($slicer->{$conf{'slicer'}}->{stdout}),close_stderr=>1,log_stderr=>1}); - } - - $process->{time}->{slice} = time()-$st; - - if($out=~/filament (used|required)\s*[=:]\s*([\d\.]+)\s*(\w+)/i) { # -- cura or slic3r* - $process->{filament_used} = $2 * ($3 eq 'm' ? 1000:1); # -- filament_used [mm] always - } elsif($out=~/filament used\s\[mm\]\s=\s([\d\.]+)/i) { # -- prusa or superslicer - $process->{filament_used} = $1; - } elsif($out=~/Filament:\s*([\d\.]+)/i) { # -- cura-legacy - $process->{filament_used} = $1; - } else { - open(my $fh,"<",$conf{output}); - seek($fh,4096,-1); # -- try to parse end of .gcode to pick up metadata - my $tail; - while(<$fh>) { - chop; - if(/^; filament used = ([\d\.]+)/) { # -- slic3r* - $process->{filament_used} = $1; - $tail++; - } elsif(/^; filament used \[mm\] = ([\d\.]+)/) { # -- prusa - $process->{filament_used} = $1; - $tail++; - } elsif(/^;.+filament used\s*[:=]\s*([\d\.]+)/) { # -- others - $process->{filament_used} = $1; - $tail++; - } elsif($tail && /^; (\w+) = (.*)/) { - $printer->{$1} = $2; - } - } - close $fh; - } - - if($exit) { - print "\n$a[0]: ERROR (bad options/arguments?)\n"; - foreach my $l (split(/\n/,$out)) { - print "$me: '$l'\n"; - } - exit -1; - } - if(!-e $conf{output}) { - error("slicer [$conf{slicer}] created no gcode, abort."); - } - printf ", filament usage %.2fm",$process->{filament_used}/1000 if($process->{filament_used} && !$conf{quiet}); - if(defined $conf{post}) { - foreach my $p (split(/,/,$conf{post})) { - if(defined $conf{"post_$p"}) { - my $tmp = "/tmp/print3r-post-$$.gcode"; - print ", post ($p)" unless($conf{quiet}||$conf{verbose}); - my(@cmd) = split(/ +/,$conf{"post_$p"}); - @cmd = map { $_ =~ s/%i/$conf{output}/; $_ =~ s/%o/$tmp/; $_ } @cmd; - print ", exec: @cmd\n" if($conf{verbose}); - execProgram(@cmd); - if(!-e $tmp) { - error("post processing '$p' (".$conf{"post_$p"}.") did not create any gcode, abort."); - } - rename($tmp,$conf{output}); - } else { - print "$me: WARN: post processing '$p' is not defined (post_$p) anywhere, ignored.\n"; - } - } - } - print ", done.\n" unless($conf{quiet}); - #($exit,$version) = execProgram($slicer->{$conf{slicer}}->{exe}||$conf{slicer},"--version"); -} - -sub processGcodeLine { - my($l) = @_; - - $process->{tool} = $1 if($l=~/^T(\d+)/); - - if($conf{verbose}>1 && !$conf{quiet}) { - print "\tprocess:\n"; - foreach my $k (sort keys %$process) { - print "\t\t$k = '$process->{$k}'\n"; - } - } - if($l=~/^T\d+/ && $conf{toolmap}) { # -- only map tool select (but not /M182 T\d+/) - if(1) { - foreach my $t (split(/,/,$conf{toolmap})) { # -- simple toolmap - my($a,$b,$c) = split(/[:=]/,$t); - if($l =~ s/$a/$b/) { - print "$me: replace '$a' with '$b'\n" if($conf{verbose}>1 && !$conf{quiet}); - last; # -- only one replacement - } - } - } else { - my %cnt; # -- FUTURE: sophisticated toolmap with conditions ($c = "once" || "always") - foreach my $t (split(/,/,$conf{toolmap})) { - my($a,$b,$c) = split(/[:=]/,$t); - if($l =~ /$a/ && ($c && $c eq 'once' && $cnt{$a} < 1)) { - if($l =~ s/$a/$b/) { - print "$me: replace '$a' with '$b'\n" if($conf{verbose}>1 && !$conf{quiet}); - $cnt{$a}++; - } - } - } - } - } - if($l=~/(^|\n)T\d+/ && $conf{toolremap}) { # -- additional tool (re)mapping - # -- we implement a two step re-mapping, this way the order of mapping doesn't matter - my $p = "XX0A"; # -- pattern which unlikely is used anywhere - my $n = 0; - my %rep; - foreach my $t (split(/,/,$conf{toolremap})) { - my($a,$b) = split(/[:=]/,$t); - if($l =~ s/$a/$p$n/gm) { - #print "$me: replace '$a' with '$b'\n" if($conf{verbose}>1 && !$conf{quiet}); - $rep{$a} = "$p$n"; - $n++; - } - } - $n = 0; - foreach my $t (split(/,/,$conf{toolremap})) { - my($a,$b) = split(/[:=]/,$t); - if($rep{$a} && $l =~ s/$rep{$a}/$b/gm) { - print "$me: replace '$a' with '$b'\n" if($conf{verbose}>1 && !$conf{quiet}); - $n++; - } - } - } - - # -- update various variables (after toolmap & toolremap) - foreach (split(/\n/,$l)) { - $process->{tool_current} = $process->{tool} = $1 if(/^T(\d+)/); - } - - if($conf{toolchange_gcode}) { - } - - # -- short lines but are quite powerful: - $l =~ s/\$\{([^\}]+)\}/defined $conf{$1} ? $conf{$1} : $process->{$1}/eg; # -- replace variables "${var}" forcefully (setting or live variable) - $l =~ s/\{([^\}]+)\}/eval($1)/eg; # -- eval expressions "{expr}" forcefully - if($@) { - print STDERR "$me: WARN: eval in '$l' failed: $@\n"; - } - $l =~ s/&(\w+)\(([^\)]+)\)/inline_function($1,inline_args("$2"))/eg; # -- call functions - if($@) { - print STDERR "$me: WARN: inline function in '$l' failed: $@\n"; - } - $l =~ s/\\n/\n/g; - $l .= "\n" unless($l=~/\n$/); # -- ensure "\n" at the end (always) - return $l; -} - -sub processGcode { - my($fn) = @_; - - if(1 && ($conf{toolmap} || $conf{layer_gcode} || $conf{position_gcode})) { - my $tmp = "/tmp/print3r-$$-gcode-process.gcode"; - if(open(my $fhr,"<",$fn)) { - if($conf{layer_gcode} && $conf{slicer}=~/slic3r/) { # -- we need to find total count of layers - my @s = stat($fn); - my $p = $s[7] * 0.9; - $p = $s[7] < 2000 ? 0 : $p; - seek($fhr,$p,-1); - my $tail; - while(<$fhr>) { - chop; - $process->{layer_total} = $1 if(/LAYER:(\d+)/); - } - seek($fhr,0,0); - $process->{layer_total}++; # -- count is +1 of last layer number (starts with 0) - } - - if(open(my $fhw,">",$tmp)) { - $process->{layer_current} = 0; - - while(<$fhr>) { - $process->{layer_total} = $1 if(/;\s*LAYER_COUNT:\s*(\d+)/); - if($process->{layer_total} && /;\s*LAYER:\s*(\d+)/) { - $process->{layer_current} = $1; - layerScript(), $_ = $conf{layer_gcode} if($conf{layer_gcode}); - } - my $l = processGcodeLine($_); - print $fhw $l; - } - close $fhw; - close $fhr; - } else { - error("processGcode: could not write '$tmp'"); - } - } else { - error("processGcode: could not read '$fn'"); - } - push(@rm,$tmp); - $fn = $tmp; - print "\n" unless($conf{quiet}); - } - return $fn; -} - -sub layerScript { - $process->{layer_percent} = 100/$process->{layer_total} * $process->{layer_current}; - $process->{layer_relative} = 1/$process->{layer_total} * $process->{layer_current}; - my $r = 1/$process->{layer_total} * $process->{layer_current}; - $process->{a2} = 1-$r; # 1..0 - $process->{b2} = $r; # 0..1 - $process->{a22} = $r < 1/2 ? 1-$r*2 : ($r-1/2)*2; # 1..0..1 - $process->{b22} = $r < 1/2 ? $r*2 : 1-($r-1/2)*2; # 0..1..0 - $process->{a3} = $r < 1/2 ? 1-$r*2 : 0; # 1..0..0 - $process->{b3} = $r < 1/2 ? $r*2 : 1 - ($r-1/2)*2; # 0..1..0 - $process->{c3} = $r >= 1/2 ? ($r-1/2)*2 : 0; # 0..0..1 - $process->{a34} = $r < 1/3 ? 1-$r*3 : $r >= 2/3 ? ($r-2/3)*3 : 0; # 1..0..0..1 - $process->{b34} = $r < 1/3 ? $r*3 : $r <= 2/3 ? 1 - ($r-1/3)*3 : 0; # 0..1..0..0 - $process->{c34} = $r >= 1/3 && $r < 2/3 ? ($r-1/3)*3 : $r >= 2/3 ? 1 - ($r-2/3)*3 : 0; # 0..0..1..0 -} - -sub printGcode { - my($fn) = shift; - my(%conf) = %{@_[0]}; - - my $lock = $conf{device}; - $lock =~ s/\W/_/g; - $lock = "/var/lock/print3r-$lock"; - - if(-e $lock && (stat($lock))[9] > time()-3*60) { - print "ERROR: printer at $conf{device} is busy (locked with $lock), abort.\n"; - #print " HINT: if you are absolutely sure no print job is going on, you can remove the lock $lock or\n"; - #print " wait max 3mins so the lock is no longer considered\n"; - cleanup(); - exit -1; - } - my $com = openSerial($conf{device}); - - my $tlock = time(); # -- time of lock - open(my $lfh,">$lock"); - print $lfh time(); - close($lfh); - - my $st = time(); - my $st_e; - - # $fn = processGcode($fn); - - open(my $fh,"<",$fn); - return if(!$fh); - - webcam_snap([$fh,$com]) if($conf{webcam}); - - if($conf{layer_gcode} && $conf{slicer}=~/slic3r/) { # -- we need to find total count of layers - my @s = stat($fn); - my $p = $s[7] * 0.9; - $p = $s[7] < 2000 ? 0 : $p; - seek($fh,$p,-1); - my $tail; - while(<$fh>) { - chop; - $process->{layer_total} = $1 if(/LAYER:(\d+)/); - } - seek($fh,0,0); - $process->{layer_total}++; # -- count is +1 of last layer number (starts with 0) - } - - my $pos = 0; - my $pos_tot = (stat($fn))[7]; - my $pos_t = 'abs'; - my $lcur_z; - my $cur_z = 0; - my $tot_e = 0; - my $cur_e = 0; - my $layer = 0; - - my $cpath; # -- find slicer base settings; cpath contains path - foreach my $p (@paths) { - $cpath = $p, last if(-e "$p/gcode"); - } - - $SIG{INT} = sub { - print "\n\taborting print (max $conf{timeout}s) ...\n"; - sleep 1; - - if(!$conf{abort_gcode}) { - print "\n$me: WARN: no abort_gcode defined, nozzle/bed might be still heating/hot\n"; - } else { - foreach my $l (split(/\n/,$conf{abort_gcode})) { - next if($l=~/^\s*;/); - $l .= "\n"; - printerSend($com,$l); - - my($resp) = printerResponse($com,$l,{timeout=>$conf{timeout}}); - last if($resp eq 'abort'); - } - } - unlink $lock; - cleanup(); - exit -1; - }; - - my $status = "init"; - my $lst; - - my($min,$max,$sz,$cp); - - my $positionScript = sub { - my($rx,$ry,$rz) = ($cp->{x}/$sz->{x},$cp->{y}/$sz->{y},$cp->{z}/$sz->{z}); - my $r = atan2($ry-0.50001,$rx-0.50001) / (2*pi); - my($a,$b,$c); - $a = $r < 1/3 ? 1-$r*3 : $r >= 2/3 ? ($r-2/3)*3 : 0; - $b = $r < 1/3 ? $r*3 : $r < 2/3 ? 1-($r-1/3)*3 : 0; - $c = $r >= 1/3 && $r < 2/3 ? ($r-1/3)*3 : $r >= 2/3 ? 1-($r-2/3)*3 : 0; - my $l = "M165 A$a B$b C$c"; - print "$me: gcode insert (post-gcode): $l\n" if(1||$conf{verbose}>1 && !$conf{quiet}); - printerSend($com,"$l\n"); - printerResponse($com); - }; - - if($conf{position_gcode}) { # -- FUTURE: any position-gcode? we need determine min/max to calculate relative x,y,z - $min->{x} = $min->{y} = $min->{z} = 1e38; - $max->{x} = $max->{y} = $max->{z} = -1e38; - while(<$fh>) { - my($c,$id) = (/^([MG])(\d+)/); - if($c eq 'G' && ($id == 1 || $id == 0)) { # -- move or extrude - my $px; - foreach my $pa (split(/ /)) { - $px->{lc($1)} = $2 if($pa=~/([XYZE])([\d\.]+)/); - } - if($px->{e}) { - foreach my $k (keys %$px) { - $max->{$k} = $px->{$k} if($max->{$k}<$px->{$k}); - $min->{$k} = $px->{$k} if($min->{$k}>$px->{$k}); - } - } elsif(defined $px->{z}) { - my $k = 'z'; - $max->{$k} = $px->{$k} if($max->{$k}<$px->{$k}); - $min->{$k} = $px->{$k} if($min->{$k}>$px->{$k}); - } - } - } - $sz->{x} = $max->{x}-$min->{x}; - $sz->{y} = $max->{y}-$min->{y}; - $sz->{z} = $max->{z}-$min->{z}; - print "$me: extruding space: +$min->{x}+$min->{y} $sz->{x}x$sz->{y}x$sz->{z}\n" unless($conf{quiet}); - seek($fh,0,0); - } - - $process->{layer_current} = 0; - - while(<$fh>) { - my $l = $_; - $pos += length($l); - - my $eta = (time()-$st) / $pos * $pos_tot; # -- total time - $eta = (($st + $eta) - time()) / 60; # -- relative - my $now = (time()-$st)/60; - - webcam_snap([$fh,$com]) if($conf{webcam}); - - if($cur_e && $st_e && $process->{filament_used}) { # -- estimated arrival/end based on extrusion (without heating up), more precise but depends on "filament_used" data - $eta = (time()-$st_e) / $cur_e * $process->{filament_used}; - $eta = (($st_e + $eta) - time()) / 60; - } - - # -- rudimentary catch layer changes, if small change then it's a layer change - $cur_z = $1 if($l=~/^G[01] .*Z(\S+)/); - - # -- determine current Z layer nr - if($process->{non_planar} || $conf{slicer} eq 'slicer4rtn' || $conf{slicer} eq '5dmaker' || $conf{slicer} eq 'zplus') { # -- slicer4rtn & 5dmaker are non-planar, rely on G-code info - $layer = $1 if($l =~ /^;\s*LAYER:\s*(\d+)/); - } else { # -- determine via heuristic & nummerical the actual Z layer - $layer++, $lcur_z = $cur_z if($cur_z > 0 && ($cur_z - $lcur_z) < 1 && $lcur_z != $cur_z); - } - $pos_t = 'abs' if(/^G90\b?$/||/^M82\b?$/); - $pos_t = 'rel' if(/^G91\b?$/||/^M83\b?$/); - - # -- $tot_e is the absolute extrusion length (regardless of extrusion mode abs/rel) - # $cur_e is also in absolute extrusion length (easier to calculate) - if($pos_t eq 'abs') { - $tot_e = $cur_e, $cur_e = $1*1 + $tot_e if($l=~/^G92 E(-?[\d\.]+)/); - $status = "printing", $cur_e = $1*1 + $tot_e, $st_e = $st_e ? $st_e : time() if($l=~/G1\s.*E(\-?[\d\.]+)/); - } else { - $tot_e = $cur_e, $cur_e = $1*1 + $tot_e if($l=~/^G92 E(-?[\d\.]+)/); - $status = "printing", $cur_e += $1*1, $st_e = $st_e ? $st_e : time() if($l=~/G1\s.*E(\-?[\d\.]+)/); - } - $status = "heating" if($l=~/^M109/); - - # -- status line - if(!$conf{quiet}) { - if($status ne 'printing') { - printf "$me: print: %s: %dh %02dm elapsed\r",$status,int($now/60),$now%60; - } else { - printf "$me: print: %dh %02dm elapsed,%s %.1f%% complete, z=%.2fmm, layer #%d, filament %.2fm %s", - int($now/60),$now%60,$eta?sprintf(" eta %dh %02dm,",int($eta/60),$eta%60):"",100*$pos/$pos_tot,$cur_z,$layer,$cur_e/1000,$conf{verbose}?"\n":"\r" - } - } - - if($conf{position_gcode} && $l =~ /^G1\s+(\S.+)/) { - my $c = $1; - my $e = 0; - foreach my $p (split(/ /,$c)) { - my($a,$u) = ($p=~/([XYE])([\d\.]+)/); - $cp->{lc($a)} = $u - $min->{lc($a)} if($a); - $e++ if($a eq 'E'); - } - &$positionScript() if($e); - } - $process->{layer_total} = $1 if(/;\s*LAYER_COUNT:\s*(\d+)/); - - if($process->{layer_total} && /;\s*LAYER:\s*(\d+)/) { - $process->{layer_current} = $1; - layerScript(); - $l = $conf{layer_gcode} if($conf{layer_gcode}); - } - - $process->{non_planar}++ if(/;\s*NON_PLANAR/||/;\s*NONPLANAR/); - - next if($l=~/^;/ || $l=~/^\s*$/); # -- comments or empty lines are not sent - - if(0 && $l=~/^T\d+/ && $conf{toolmap}) { - foreach my $t (split(/:/,$conf{toolmap})) { - my($a,$b) = split(/[=]/,$t); - if($l =~ s/$a/$b/) { - print "$me: replace '$a' with '$b'\n" if($conf{verbose}>1 && !$conf{quiet}); - last; - } - } - print " in: '$l'\n"; - $l = processGcodeLine($l); - print "out: '$l'\n"; - if(0) { - $l =~ s/\\n/\n/g; - if($l=~/\n/) { - foreach my $l_ (split(/\n/,$l)) { - print "$me: gcode change (toolmap): $l_\n" if($conf{verbose}>1 && !$conf{quiet}); - printerSend($com,$l_."\n"); - my($resp) = printerResponse($com,$l_); - } - next; - } else { - $l .= "\n"; - } - } - print "$me: gcode change (toolmap): $l\n" if($conf{verbose}>1 && !$conf{quiet}); - } else { - #print " in: '$l'\n"; - $l = processGcodeLine($l); - #print " out: '$l'\n"; - } - - if(0 && $l=~/\$\{(\w+)\}/) { # -- any variable to replace? - $l =~ s/\$\{(\w+)\}/defined $conf{$1} ? $conf{$1} : $process->{$1}/eg; - print "$me: gcode change (variables): $l\n" if($conf{verbose}>1 && !$conf{quiet}); - } - - print "send: '$l'" if($conf{verbose}); - - foreach my $l_ (split(/\n/,$l)) { # -- we might have multiple lines (as result of processGcodeLine()) - $l_ .= "\n"; - printerSend($com,$l_); - my($resp) = printerResponse($com,$l_,{callback=>sub { - my($mesg,$com,$cmd) = @_; - my $now = (time()-$st)/60; - if(!$conf{quiet} && $status ne 'printing') { - # ... e.g. parse while heating up the temperature(s) - # " T:202.32 /205.00 B:25.28 /0.00 @:60 B@:0 W:?" - if($status eq 'heating') { - if($mesg=~/(T:[\d\.]+ \/[\d\.]+) (B:[\d\.]+ \/[\d\.]+)/) { - printf "$me: print: %s (%s, %s): %dh %02dm elapsed\r",$status,$1,$2,int($now/60),$now%60; - } else { - ; - } - } else { - printf "$me: print: %s: %dh %02dm elapsed\r",$status,int($now/60),$now%60; - } - } - }}); - } - - if($conf{display_update}ne'off' && time()-$lst>3) { # -- update printer display - printerSend($com,sprintf("M117 %d%% eta %s l#%d%s\n",100*$pos/$pos_tot, - $eta ? ($eta > 60 ? sprintf("%.1fh",$eta/60) : int($eta)."m" ) : "-", - $layer,defined $process->{tool}?" T".$process->{tool}:"")); - printerResponse($com); - #printerSend($com,"M31\n"); - #printerResponse($com); - $lst = time(); - } - - if($tlock < time()-20) { # -- update lock every 20s - open(my $lfh,">$lock"); - print $lfh time(); - close $lfh; - $tlock = time(); - } - } - close $fh; - - my $tot = int((time() - $st + 30)/60); - printerSend($com,"M117 completed: " . sprintf("%dh %02dm",int($tot/60),$tot%60) . "\n") if($conf{display_update}ne'off'); - printerResponse($com); - - if($conf{webcam}) { - webcam_snap([$com],1); # -- force - my $w = webcam_snapconf(); - - sleep(3+$w->{delay}); # -- make sure last webcam snap is done - - my $dir = "$ENV{HOME}/.print3r/snaps/"; # -- review all snaps - my(@se,@sm); - foreach my $fn (@{$process->{webcam}->{snaps}}) { - if(-e "$dir/$fn") { - push(@se,$fn); - } else { - push(@sm,$fn); - } - } - if(@se==0) { - delete $process->{webcam}; - print "\n" unless($conf{verbose}); - print "$me: WARN: webcam(s) failed to capture any images"; - } else { - my $tot = @{$process->{webcam}->{snaps}}; - $process->{webcam}->{snaps} = \@se; # -- list only existing images - delete $process->{webcam}->{last}; - if(@sm>0) { - print "\n" unless($conf{verbose}); - my $p = 100 / $tot * @sm; - printf("$me: WARN: webcam(s) missed to capture some images (%d out of %d, %d%%)",scalar @sm,$tot,$p); - } - } - } else { - sleep 3; # -- give it time - } - print "\n" if(!$conf{quiet}); - - unlink $lock; - - # -- log printjob - $process->{time}->{print} = time()-$st; - mkdir $ENV{HOME}."/.print3r" unless(-e $ENV{HOME}."/.print3r"); - open(my $lfh,">>",$ENV{HOME}."/.print3r/log.json"); - print $lfh toJSON({ - version => "$NAME $VERSION", - internals => { versions => versions() }, - settings => \%conf, - printer => $printer, - time => time(), - file_list => \@f_in, - part => $fn, - size => (stat($fn))[7], - process => $process, - duration => $process->{time}->{print}, - uid => defined $conf{uid}?$conf{uid}:uid() - },{pretty=>0})."\n"; - - close $lfh; -} - -sub printerSend { - my($com,$msg) = @_; - - $msg =~ s/;.*$//; - - if($conf{serialif}eq'termios') { - print $com $msg; - } else { - $com->write($msg); - } -} - -sub printerResponse { - my($com,$cmd,$arg) = @_; - my $await_ok = ($cmd=~/^[GM]/); - my $resp = ''; - my $st = time(); - - if($conf{serialif}eq'termios') { - my $ln = ""; - while(1) { - my $rd; - - if(read($com,$rd,3)) { # -- minimal read (e.g. "ok\n") - print ">> '$rd'\n" if($conf{verbose}>2); - - $ln .= $rd; - $resp .= $rd; - - &{$arg->{callback}}($ln,$com,$cmd), $ln = '' if($ln =~ /\n/ && defined $arg->{callback} && ref($arg->{callback})eq'CODE'); - - $arg->{timeout} = 0.5, next if($resp =~ /^start/i); - - if($await_ok) { - print "> '$resp'\n" if($conf{verbose}>2); - last if($resp =~ /ok/i); - sleep 0.005; - } elsif($resp=~/\n/) { - last; - } - - } elsif($arg->{timeout} && time()-$st > $arg->{timeout}) { - return 'abort'; - - } else { - sleep 0.005; - } - } - return $resp; - } - - while(1) { - my($in,$out); - (undef,$in,$out,undef) = $com->status(); - - if($in) { - print "# in:$in out:$out\n" if($conf{verbose}>1); - my($n,$rd) = $com->read($in); - $resp .= $rd; - - &{$arg->{callback}}($rd,$com,$cmd) if(defined $arg->{callback} && ref($arg->{callback})eq'CODE'); - - if($await_ok) { - print "> '$resp'\n" if($conf{verbose}>2); - last if($resp =~ /ok/i); - last if($resp =~ /start/i); - sleep 0.005; - } else { - last; - } - - } elsif($arg->{timeout} && time()-$st > $arg->{timeout}) { - return 'abort'; - - } else { - sleep 0.005; - } - } - - return $resp; -} - -sub webcam_conf { - my($c) = @_; - my $w; - - foreach my $kv (split(/[;,]/,$c)) { - my($k,$v) = split(/:/,$kv); - $w->{$k} = $v; - } - return $w; -} - -sub webcam_snapconf { - my $w = webcam_conf($conf{webcam_snap}); - - $w->{time} = 60 unless(defined $w->{time}); - $w->{delay} = 5 unless(defined $w->{delay}); - $w->{time} = $w->{delay}+1 if($w->{time}<$w->{delay}); # -- sanity check - - return $w; -} - -sub webcam_snap { - my($fh,$force) = @_; - - if($conf{webcam}) { - my $w = webcam_snapconf(); - - if($force || ($process->{webcam}->{last} + $w->{time} < time())) { - my $dir = "$ENV{HOME}/.print3r/snaps"; - mkdir $dir unless(-e $dir); - - $conf{webcam} =~ s/^\s+$//; - $conf{webcam} =~ s/\s+$//; - - my @wcs = split(/\s+/,$conf{webcam}); # -- support multiple webcams - my $wcn = 0; - - foreach my $wc (@wcs) { - next if(!$wc); - - my @t = localtime(); - my $fn = sprintf("%04d%02d%02d %02d%02d%02d - ",$t[5]+1900,$t[4]+1,$t[3],$t[2],$t[1],$t[0]); - my $nick = $conf{machine_name} || $$; - - $nick =~ s/[\W ]+/_/g; - $fn .= $nick; - $fn .= ".$wcn" if(@wcs>1); - $fn .= ".jpg"; - - print "$me: take webcam snap #$wcn ($wc, ".toJSON($w,{pretty=>0}).")\n" if($conf{verbose}>0); - - local $SIG{CHLD} = 'IGNORE'; - my $pid = $$; - if(fork()==0) { - # -- perl & fork: a pain to deal with (it matters): close all open handles ($com,$fh) - # otherwise it screws up $fh and/or $com and stalls print - # -- this is a hack, but it seems nothing else works (e.g. below with $fd->close won't do it) - if(1) { - foreach my $fd (0..10) { - POSIX::close($fd); - } - } - #foreach my $fd (@$fh) { - # $fd->close; - # #close $fd; - #} - #close STDIN; - #close STDOUT; # -- needs to be closed, otherwise interferes with $com/$fh higher up (no output about webcam not providing snaps) - #close STDERR; - - if(fork()==0) { - if(fork()==0) { - close STDOUT; # -- ffmpeg is chatty - close STDERR; - exec("ffmpeg","-i",$wc,"-ss",$w->{delay},"-r",1,"-vsync",1,"-qscale",1,"-frames:v",1,"-f","image2","$dir/$fn"); - exit; - } - wait; - print "$me: WARN: webcam #$wcn did not capture an image ($wc, ".toJSON($w,{pretty=>0}).")\n" unless(-e "$dir/$fn"); - my $ws = webcam_conf($conf{webcam_settings}); - if(@wcs>1 && $conf{webcam_settings} =~ /\S+ \S+/) { # -- multiple webcams-settings? - my @s = split(/\s+/,$conf{webcam_settings}); - $ws = webcam_conf($s[$wcn]); - } - if(-e "$dir/$fn" && $ws->{rotate}!=0) { - my $nn = $$.".$wcn"; - if(fork()==0) { - #exec("jpegtran","-rotate",$ws->{rotate},"-outfile","$dir/$fn","$dir/$fn"); # -- gives artefacts with my webcams (bottom 16px row is not rotated), avoid it - exec("convert","$dir/$fn","-rotate",$ws->{rotate},"$dir/tmp-$nn.jpg"); # -- not optimal, but works - exit; - } - wait; - rename("$dir/tmp-$nn.jpg","$dir/$fn"); - exit; - } - print "$me: webcam #$wcn snap saved\n" if($conf{verbose}>0); - exit; - } - wait; - exit; - } - # -- no wait (continue printing), let the child take its time - print "$me: webcam #$wcn done.\n" if($conf{verbose}>0); - push(@{$process->{webcam}->{snaps}},$fn); - $wcn++; - } - $process->{webcam}->{last} = time(); - } - } -} - -# --------------------------------------------------------------------------------------------------------------- - -my $n_log = 0; - -sub execProgram { - my(@a) = @_; - my $arg = ref(@a[$#a]) eq 'HASH' ? pop(@a) : { close_stdout=>1, close_stderr=>1, log_stdout=>1, log_stderr=>1 }; - - $n_log++; - my $ltmp = "/tmp/$me-$$-${n_log}.log"; - - # print "EXEC ".join(' ',@a)."\n"; - - if(fork()==0) { - close STDOUT if($arg->{close_stdout}); - close STDERR if($arg->{close_stderr}); - open(LOG,">",$ltmp); # -- open log file - select LOG; $| = 1; - if($arg->{log_stderr}) { - if($arg->{log_stderr} =~ /^\d+$/) { - *STDERR = *LOG; - } else { - open(LOG,">",$arg->{log_stderr}); - *STDERR = *LOG; - } - } - if($arg->{log_stdout}) { - if($arg->{log_stdout} =~ /^\d+$/) { - *STDOUT = *LOG; - } else { - open(LOG,">",$arg->{log_stdout}); - *STDOUT = *LOG; - } - } - exec(@a); - # -- never reaches here - } - wait; - - open(my $fh,"<",$ltmp); # -- read log file - local $/; - my $out = <$fh>; - close $fh; - - unlink $ltmp; - - if($conf{verbose}) { - foreach my $l (split(/\n/,$out)) { - print "$me: '$l'\n"; - } - } - return($?>>8,$out); -} - -# --------------------------------------------------------------------------------------------------------------- - -sub readSTL { - my($fn) = @_; - my $p = { }; - print ", stl read <$fn>\n" if($conf{verbose}); - - my(@min,@max); - $min[0] = $min[1] = $min[2] = 1e6; - $max[0] = $max[1] = $max[2] = -1e6; - - if(open(my $fh,"<",$fn)) { - my $buff; - read($fh,$buff,256); - seek($fh,0,0); - if($buff=~/facet/) { # -- ascii - my $v; - my %vx; # -- vertex cache as associative array ",," - my $vxn = 0; - my $n = 0; - while(<$fh>) { - chop; - push(@$v,[split(/\s+/,$1)]) if(/vertex\s+(\S.+)/); # -- be more linient - if(/endloop/) { - my @px; - $px[0] = join(",",map { $_*1.0 } @{$v->[0]}); # -- $_*1.0 parses also "1.0e1" => 10.0 - $px[1] = join(",",map { $_*1.0 } @{$v->[1]}); - $px[2] = join(",",map { $_*1.0 } @{$v->[2]}); - $vx{$px[0]} = $vxn++ unless(defined $vx{$px[0]}); - $vx{$px[1]} = $vxn++ unless(defined $vx{$px[1]}); - $vx{$px[2]} = $vxn++ unless(defined $vx{$px[2]}); - #push(@{$p->{facets}},$v); - @px = map { $vx{$_} } @px; - push(@{$p->{facets}},\@px); - for(my $i=0; $i<3; $i++) { - for(my $j=0; $j<3; $j++) { - # -- update min/max - $min[$j] = $v->[$i]->[$j] if($v->[$i]->[$j]<$min[$j]); - $max[$j] = $v->[$i]->[$j] if($v->[$i]->[$j]>$max[$j]); - } - } - $v = [], $n++; - } - } - foreach my $q (sort { $vx{$a}-$vx{$b} } keys %vx) { - my($x,$y,$z) = split(/,/,$q); - push(@{$p->{vertices}},[$x*1,$y*1,$z*1]); - } - #print toJSON($p); - print "$fn: $n facets\n" if($conf{verbose}); - } else { # -- binary - my $n; - read($fh,$buff,80); - read($fh,$n,4); - $n = unpack('L',$n); - print "$fn: $n facets\n" if($conf{verbose}); - my $fu = 'f f f'; - my %vx; - my $vxn = 0; - for(my $i=0; $i<$n; $i++) { - my($nr,$v1,$v2,$v3,$at); - read($fh,$nr,4*3); - read($fh,$v1,4*3); - read($fh,$v2,4*3); - read($fh,$v3,4*3); - read($fh,$at,2); - $at = unpack('S',$at); - my $v; - push(@$v,[unpack($fu,$v1)]); - push(@$v,[unpack($fu,$v2)]); - push(@$v,[unpack($fu,$v3)]); - #print " @{@v[0]} @{@v[1]} @{@v[2]}\n"; - #push(@{$p->{facets}},$v); - - my @px; - $px[0] = join(",",@{$v->[0]}); - $px[1] = join(",",@{$v->[1]}); - $px[2] = join(",",@{$v->[2]}); - $vx{$px[0]} = $vxn++ unless(defined $vx{$px[0]}); - $vx{$px[1]} = $vxn++ unless(defined $vx{$px[1]}); - $vx{$px[2]} = $vxn++ unless(defined $vx{$px[2]}); - #push(@{$p->{facets}},$v); - @px = map { $vx{$_} } @px; - push(@{$p->{facets}},\@px); - - for(my $i=0; $i<3; $i++) { - for(my $j=0; $j<3; $j++) { - # -- update min/max - $min[$j] = $v->[$i]->[$j] if($v->[$i]->[$j]<$min[$j]); - $max[$j] = $v->[$i]->[$j] if($v->[$i]->[$j]>$max[$j]); - } - } - } - foreach my $q (sort { $vx{$a}-$vx{$b} } keys %vx) { - my($x,$y,$z) = split(/,/,$q); - push(@{$p->{vertices}},[$x*1,$y*1,$z*1]); - } - } - close $fh; - # -- keep min/max/size up-to-date - $p->{min} = \@min; - $p->{max} = \@max; - $p->{size} = [$max[0]-$min[0],$max[1]-$min[1],$max[2]-$min[2]]; - return $p; - } else { - print STDERR "$me: only .stl supported, abort.\n"; - exit; - } -} - -sub writeSTL { - my($fn,$p) = @_; - print ", stl writing <$fn>\n" if($conf{verbose}); - if(open(my $fh,">",$fn)) { - if(0) { # -- ascii, very verbose - print $fh "solid\n"; - foreach my $f (@{$p->{facets}}) { - print $fh "facet normal 0 0 0\n\touter loop\n"; - if(0) { - foreach my $v (@$f) { - print $fh "\t\tvertex ",join(" ",@$v),"\n"; - } - } else { - foreach my $vi ($f) { - for(my $i=0; $i<3; $i++) { - if(!$p->{vertices}->[$vi->[$i]]) { - error("malformed geometry, cannot export faces: ".toJSON($vi->[$i])); - } - my $vp = $p->{vertices}->[$vi->[$i]] ; - print $fh "\t\tvertex ",join(" ",@$vp),"\n"; - } - } - } - print $fh "\tendloop\nendfacet\n"; - } - print $fh "endsolid\n"; - close $fh; - } else { # -- hammer the binary format out, still wasteful - print $fh " "x80; - print $fh pack("L",scalar @{$p->{facets}}); - foreach my $f (@{$p->{facets}}) { - print $fh pack("f3",0,0,0); # -- normals - my $i = 0; - print $fh pack("f3",@{$p->{vertices}->[$f->[$i]]}); $i++; - print $fh pack("f3",@{$p->{vertices}->[$f->[$i]]}); $i++; - print $fh pack("f3",@{$p->{vertices}->[$f->[$i]]}); - print $fh pack("S",0); - } - close $fh; - } - } -} - -sub readAMF { - my($fn) = @_; - my $p = { }; - print ", amf read <$fn>\n" if($conf{verbose}); - - my(@min,@max); - $min[0] = $min[1] = $min[2] = 1e6; - $max[0] = $max[1] = $max[2] = -1e6; - - if(open(my $fh,"<",$fn)) { - local $/; - my $buff = <$fh>; - close $fh; - - my $xml = XMLin($buff); - my $fa = 1; - $fa = 25.4 if($xml->{unit}eq'inch'); - $fa = 1000 if($xml->{unit}eq'meter'); - $fa = 100 if($xml->{unit}eq'cm'); - $fa = 10 if($xml->{unit}eq'dm'); - foreach my $o (ref($xml->{object})eq'ARRAY'?@{$xml->{object}}:$xml->{object}) { - foreach my $m (ref($o->{mesh})eq'ARRAY'?${$o->{mesh}}:$o->{mesh}) { - my @vs; - foreach my $v (ref($m->{vertices}->{vertex})?@{$m->{vertices}->{vertex}}:$m->{vertices}->{vertex}) { - my(@p) = ($v->{coordinates}->{x}*$fa,$v->{coordinates}->{y}*$fa,$v->{coordinates}->{z}*$fa); - for(my $i=0; $i<3; $i++) { - $min[$i] = $p[$i] if($p[$i]<$min[$i]); - $max[$i] = $p[$i] if($p[$i]>$max[$i]); - } - push(@vs,\@p); - } - $p->{vertices} = \@vs; - my $vn = 0; - foreach my $t (ref($m->{volume})eq'ARRAY'?@{$m->{volume}}:$m->{volume}) { - foreach my $c (@{$t->{triangle}}) { - push(@{$p->{facets}},[$c->{v1},$c->{v2},$c->{v3}]); - push(@{$p->{volumes}->[$vn]},$#{$p->{facets}}); - } - $vn++; - } - } - } - # -- keep min/max/size up-to-date - $p->{min} = \@min; - $p->{max} = \@max; - $p->{size} = [$max[0]-$min[0],$max[1]-$min[1],$max[2]-$min[2]]; - return $p; - - } else { - print STDERR "$me: only .amf supported, abort.\n"; - exit; - } -} - -sub writeAMF { - my($fn,$p) = @_; - print ", amf writing <$fn>\n" if($conf{verbose}); - - if(open(my $fh,">",$fn)) { - print $fh "\n"; - print $fh "\n"; - print $fh " $me $VERSION\n"; - print $fh " \n"; - print $fh " \n"; - print $fh " \n"; - foreach my $v (@{$p->{vertices}}) { - print $fh sprintf(" %.5f%.5f%.5f\n",$v->[0],$v->[1],$v->[2]); - } - print $fh " \n"; - my $mi = 2; - my $ei = 1; - if($p->{volumes}) { # -- multiple volumes (multiple color/material) - foreach my $v (@{$p->{volumes}}) { - print $fh " \n"; - print $fh " $ei\n"; # -- essential for slic3r & slic3r-pe (and prusa-slicer as well) - foreach my $f (@$v) { - print $fh sprintf(" %d%d%d\n",$p->{facets}->[$f]->[0],$p->{facets}->[$f]->[1],$p->{facets}->[$f]->[2]); - } - print $fh " \n"; - $mi++; - $ei++; - } - } else { # -- single volume (single color/material) - print $fh " \n"; - foreach my $f (@{$p->{facets}}) { - print $fh sprintf(" %d%d%d\n",$f->[0],$f->[1],$f->[2]); - } - print $fh " \n"; - } - print $fh " \n"; - print $fh " \n"; - if($p->{volumes}) { - $mi = 2; - foreach my $v (@{$p->{volumes}}) { # -- listing materials (slice3r / slic3r-pe ignore it) - print $fh " \n"; - print $fh " \n"; - $mi++; - } - } - print $fh "\n"; - close $fh; - } -} - -sub read3MF { - # -- supporting .3mf files (zip-file with multiple files) - not yet fully functional - my($fn) = @_; - print ", 3mf read <$fn>\n" if($conf{verbose}); - - my $err; - - require Archive::Zip; - require XML::Simple; - - # require HTML::TreeBuilder::XPath; -- fails on me - my $mr = sub { - my($m) = @_; - my $r = @$m; - my $c = @{$m->[0]}; - return ($r,$c); - }; - my $mm = sub { - my($r_mat1,$r_mat2) = @_; - my($r_product); - my($r1,$c1) = &$mr($r_mat1); - my($r2,$c2) = &$mr($r_mat2); - - die "$me: matrix 1 has $c1 columns and matrix 2 has $r2 rows, cannot multiply\n" unless ($c1 == $r2); - - for (my $i = 0; $i < $r1; $i++) { - for (my $j = 0; $j < $c2; $j++) { - my $sum = 0; - for (my $k = 0; $k < $c1; $k++) { - $sum += $r_mat1->[$i][$k] * $r_mat2->[$k][$j]; - } - $r_product->[$i][$j] = $sum; - } - } - $r_product; - }; - my $zip = Archive::Zip->new($fn); - - if($zip) { - my $m = $zip->memberNamed('3D/3dmodel.model'); - if($m && length($m->contents)) { - my $xml = $m->contents; - - $xml =~ s/^<[^>]+>//; # -- needed - - my $c = XMLin($xml); # -- this seems to work - my $vn = 0; - - my @ps; - - # print ", build" unless($conf{quiet}||$conf{verbose}); - foreach my $b ($c->{build} && ref($c->{build}->{item})eq'ARRAY' ? @{$c->{build}->{item}} : $c->{resources}->{object}) { - # -- NOTE: we treat each build as separate model (independent of each other) - my $o = $b->{objectid} && $c->{resources}->{object}->{$b->{objectid}} || $b; - my $mv = $c->{build} && ref($c->{build}->{item})eq'ARRAY' ? @{$c->{build}->{item}} : 0; - my $t; - - my $fi = 0; - my $p = { }; - - my(@min,@max); - $min[0] = $min[1] = $min[2] = 1e6; - $max[0] = $max[1] = $max[2] = -1e6; - - # print " #$vn" unless($conf{quiet}||$conf{verbose}); - if($b->{transform}) { - my @tr = split(/\s+/,$b->{transform}); - for(my $i=0; $i<4; $i++) { # -- rows - for(my $j=0; $j<3; $j++) { # -- cols - $t->[$i][$j] = $tr[$j+$i*3]; - } - } - $t->[0][3] = 0; - $t->[1][3] = 0; - $t->[2][3] = 0; - $t->[3][3] = 1; - } - my $voff = 0; # @{$p->{vertices}}; - my(@off); - foreach my $c (@{$o->{mesh}->{vertices}->{vertex}}) { - my(@p) = ($c->{x},$c->{y},$c->{z}); - if($t) { - my $q = &$mm($t,[[$p[0]],[$p[1]],[$p[2]],[0]]); - #my $p = &$mm($t,[[$p[0],$p[1],$p[2],0]]); - @p = ($q->[0][0],$q->[1][0],-$q->[2][0]); # -- for some bizarre reason z is inverted, revert it again - #@p = ($q->[0][0],$q->[0][1],$q->[0][2]); - } else { - @p = map { $_*1 } @p; - } - #$p[0] += $off[0]; - #$p[1] += $off[1]; - for(my $i=0; $i<3; $i++) { - $min[$i] = $p[$i] if($p[$i]<$min[$i]); - $max[$i] = $p[$i] if($p[$i]>$max[$i]); - } - push(@{$p->{vertices}},\@p); - } - foreach my $t (@{$o->{mesh}->{triangles}->{triangle}}) { - push(@{$p->{facets}},[$t->{v1}+$voff,$t->{v2}+$voff,$t->{v3}+$voff]); - #push(@{$p->{volumes}->[$vn]},$fi) if($mv); - $fi++; - } - $vn++; - $p->{min} = \@min; - $p->{max} = \@max; - $p->{size} = [$max[0]-$min[0],$max[1]-$min[1],$max[2]-$min[2]]; - $p = partRecenter($p,[1,1,-1]); # -- ensure centered and z=0 - push(@ps,$p); - } - return partsArrange(@ps,$printer); - - } else { - error("$fn: internal format mismatch (no 3D/3dmodel.model)"); - } - - } else { - error("$fn: error decoding zip format"); - } - return { }; -} - -sub write3MF { - # -- not yet -} - -sub readOBJ { - my($fn) = @_; - my $p = { }; - print ", obj read <$fn>\n" if($conf{verbose}); - - my $err; - - my(@min,@max); - $min[0] = $min[1] = $min[2] = 1e6; - $max[0] = $max[1] = $max[2] = -1e6; - - if(open(my $fh,"<",$fn)) { - my(@vs); - while(<$fh>) { - chop; - next if(/^\s*#/); - if(/^v /) { - my(@c) = split(/ +/); - shift(@c); - push(@{$p->{vertices}},[$c[0]*1,$c[1]*1,$c[2]*1]); - for(my $i=0; $i<3; $i++) { - $min[$i] = $c[$i] if($min[$i]>$c[$i]); - $max[$i] = $c[$i] if($max[$i]<$c[$i]); - } - } elsif(/^f /) { - my(@c) = split(/ +/); - shift(@c); - @c = map { $_-1 } @c; - foreach my $i (0..$#c-2) { - push(@{$p->{facets}},[$c[0],$c[$i+1],$c[$i+2]]); - } - } elsif(/^\s*$/) { - ; - } elsif(/^(\S+)/) { - print "$me: WARN: '$1' in <$fn> not supported yet, ignored\n" if(!$err->{$1}); - $err->{$1}++; - } - } - close $fh; - - # -- keep min/max/size up-to-date - $p->{min} = \@min; - $p->{max} = \@max; - $p->{size} = [$max[0]-$min[0],$max[1]-$min[1],$max[2]-$min[2]]; - #print toJSON($p); - return $p; - - } else { - print STDERR "$me: only .obj supported, abort.\n"; - exit; - } -} - -sub writeOBJ { - my($fn,$p) = @_; - print ", obj writing <$fn>\n" if($conf{verbose}); - if(open(my $fh,">",$fn)) { - foreach my $v (@{$p->{vertices}}) { - print $fh sprintf("v %.5f %.5f %.5f\n",$v->[0],$v->[1],$v->[2]); - } - if($p->{volumes}) { # -- multiple volumes (multiple color/material) - foreach my $v (@{$p->{volumes}}) { - foreach my $f (@$v) { - print $fh sprintf("f %d %d %d\n",$p->{facets}->[$f]->[0]+1,$p->{facets}->[$f]->[1]+1,$p->{facets}->[$f]->[2]+1); - } - } - } else { # -- single volume (single color/material) - foreach my $f (@{$p->{facets}}) { - print $fh sprintf("f %d %d %d\n",$f->[0]+1,$f->[1]+1,$f->[2]+1); - } - } - close $fh; - } -} - -sub readOFF { - my($fn) = @_; - my $p = { }; - print ", off read <$fn>\n" if($conf{verbose}); - - my $err; - - my(@min,@max); - $min[0] = $min[1] = $min[2] = 1e6; - $max[0] = $max[1] = $max[2] = -1e6; - - if(open(my $fh,"<",$fn)) { - my($nv,$nf); - my $t = 0; - while(<$fh>) { - s/\n$//; - next if(/^\s*#/||/^\s*$/); - $t++, next if($t==0 && /^OFF/); - $t++, $nv = $1, $nf = $2, next if($t==1 && /^(\d+)\s+(\d+)/); - if($t==2 && $nv > 0) { - s/^\s+//; - my(@c) = split(/\s+/); - @c = map { $_ * 1 } @c; - push(@{$p->{vertices}},[$c[0],$c[1],$c[2]]); - for(my $i=0; $i<3; $i++) { - $min[$i] = $c[$i] if($min[$i]>$c[$i]); - $max[$i] = $c[$i] if($max[$i]<$c[$i]); - } - $nv--; - } elsif($t==2 && $nv == 0 && $nf > 0) { - s/^\s+//; - my(@v) = split(/\s+/); - @v = map { $_ * 1 } @v; - shift(@v); # -- we don't need the first - for(my $i=0; $i<$#v-2; $i++) { - push(@{$p->{facets}},[$v[0],$v[$i+1],$v[$i+2]]); - } - $nf--; - } elsif($t==2 && $nv == 0 && $nf == 0) { - last; - } - } - close $fh; - # -- keep min/max/size up-to-date - $p->{min} = \@min; - $p->{max} = \@max; - $p->{size} = [$max[0]-$min[0],$max[1]-$min[1],$max[2]-$min[2]]; - return $p; - - } else { - print STDERR "$me: only .off supported, abort.\n"; - exit; - } -} - -sub read3MJ { - my($fn) = @_; - my $p = { }; - print ", 3mj read <$fn>\n" if($conf{verbose}); - - my $err; - - my(@min,@max); - $min[0] = $min[1] = $min[2] = 1e6; - $max[0] = $max[1] = $max[2] = -1e6; - - - if(-e $fn) { - my $s; - - my $buff; # -- probe header - open(my $fh,"<",$fn); - read($fh,$buff,256); - close $fh; - - local $/; - if($buff=~/^\x1f\x8b/) { # -- compressed - my $fh = new IO::Zlib; - $fh->open($fn,"rb"); - $s = <$fh>; - $fh->close; - } else { - open(my $fh,"<",$fn); - $s = <$fh>; - close $fh; - } - my $e = fromJSON($s); - unless($e && $e->{format} && $e->{format}=~/^3MJ\/\d\.\d/) { - print STDERR "$me: invalid 3MJ format of \"$fn\"\n"; - exit -1; - } - foreach my $v (@{$e->{vertices}}) { - my @c = @{$v->{c}}; - for(my $i=0; $i<3; $i++) { - $min[$i] = $c[$i] if($min[$i]>$c[$i]); - $max[$i] = $c[$i] if($max[$i]<$c[$i]); - } - push(@{$p->{vertices}},\@c); - } - my $vid = 0; - my $fid = 0; - foreach my $v (@{$e->{volumes}}) { - foreach my $f (@{$v->{triangles}}) { - push(@{$p->{facets}},$f->{v}); - push(@{$p->{volumes}->[$vid]},$fid++) if(@{$e->{volumes}}>1); - } - $vid++; - } - close $fh; - - # -- keep min/max/size up-to-date - $p->{min} = \@min; - $p->{max} = \@max; - $p->{size} = [$max[0]-$min[0],$max[1]-$min[1],$max[2]-$min[2]]; - return $p; - - } else { - print STDERR "$me: only .3mj supported, abort.\n"; - exit; - } -} - -# --------------------------------------------------------------------------------------------------------------- - -sub partWrite { - my($fn,$p) = @_; - if($fn=~/\.amf$/i) { - return writeAMF($fn,$p); - } elsif($fn=~/\.obj$/i) { - return writeOBJ($fn,$p); - } else { - return writeSTL($fn,$p); - } -} - -sub partRead { - my($fn) = @_; - my $p; - - if(!-e $fn) { - error("file <$fn> not found, abort"); - } - if($fn=~/\.stl$/i) { - $p = readSTL($fn); - } elsif($fn=~/\.amf$/i) { - $p = readAMF($fn); - } elsif($fn=~/\.obj$/i) { - $p = readOBJ($fn); - } elsif($fn=~/\.off$/i) { - $p = readOFF($fn); - } elsif($fn=~/\.3mj$/i) { - $p = read3MJ($fn); - } elsif($fn=~/\.3mf$/i) { - $p = read3MF($fn); - } else { - error("for internal preprocessing (scale,rotate,etc) only .stl, .amf, .obj, .off, .3mj, .3mf; no support for <$fn>"); - } - $p->{filename} = $fn; - $p->{atime} = time(); - $p->{mtime} = (stat($fn))[9]; - - if($p->{min}->[2]>0 || $p->{min}->[2]<0) { # -- min.z > 0? - $p = partRecenter($p,[0,0,-1]); # -- ensure min.z is 0 - } - return $p; -} - -# --------------------------------------------------------------------------------------------------------------- - -sub partsArrange { # -- arrange multiple parts (same or different sizes) - my(@ps) = @_; - my($c) = pop(@ps); - - return $ps[0] if(@ps<=1); - - my $s = 10; # -- space between parts - - if(1) { - my $p0; - my($x,$y) = (0,0); - my $h = 0; - - my(@avg); - foreach my $p (@ps) { - for(my $i=0; $i<3; $i++) { - $avg[$i] += $p->{size}->[$i]; - } - } - $avg[0] /= @ps; - $avg[1] /= @ps; - $avg[2] /= @ps; - - my($xl,$yl) = ($c->{build}->{x}/$avg[0],$c->{build}->{y}/$avg[1]); - my($xi); - - $xl = int(sqrt($avg[0]*$avg[1])*@ps); - - foreach my $p (@ps) { - $p = partTranslate($p,[-$p->{min}->[0],-$p->{min}->[1],0]); # -- align for packing - if($p->{size}->[0] > $c->{build}->{x} || $y+$p->{size}->[1] > $c->{build}->{y}) { - error("too many parts on build plate, exceeds its dimension"); - } - $p0 = partMerge($p0,partTranslate($p,[$x,$y,0])); - $x += $p->{size}->[0]+$s; - $xi++; - $h = $p->{size}->[1]+$s if($h < $p->{size}->[1]+$s); - if($x > $c->{build}->{x}-$s || $xi > $xl) { - $x = $s; - $y += $h; - $h = 0; - $xi = 0; - } - } - return partRecenter($p0,[1,1,0]); - - } else { - my $bp = Algorithm::BinPack::2D->new(binwidth => $c->{build}->{x}, binheight => $c->{build}->{y}); - my $i = 0; - foreach my $p (@ps) { - $p = partTranslate($p,[-$p->{min}->[0],-$p->{min}->[1],0]); # -- align for packing - $bp->add_item(label=>"".++$i,width=>$p->{size}->[0]+$s,height=>$p->{size}->[1]+$s); # -- hint: it won't like "0" as label, so we start with 1 - } - my $p0 = { }; - my @pb; - my @b = $bp->pack_bins; - if(@b>1) { - error("too many parts on the build-plate, exceeds its size"); - } else { - foreach my $i (@{$b[0]->{items}}) { - my $p = $ps[$i->{label}*1-1]; - $p0 = partMerge($p0,partTranslate($p,[$i->{x}+$s/2,$i->{y}+$s/2,0])); - } - return partRecenter($p0,[1,1,0]); - } - } -} - -sub partMerge { # -- merge part to another one - my($p0,$c) = @_; - - unless($p0 && $p0->{facets}) { - $p0->{facets} = []; - $p0->{vertices} = []; - $p0->{min} = [1e6,1e6,1e6]; - $p0->{max} = [-1e6,-1e6,-1e6]; - $p0->{size} = [0,0,0]; - } - if(0) { - push(@{$p0->{facets}},@{$c->{facets}}); - } else { - my $off = @{$p0->{vertices}}; - my(@a) = map { [$_->[0] + $off,$_->[1] + $off, $_->[2] + $off] } @{$c->{facets}}; - my(@b); @b = map { [$_->[0] + $off,$_->[1] + $off, $_->[2] + $off] } @{$c->{volumes}} if($c->{volumes}); - push(@{$p0->{facets}},@a); - push(@{$p0->{vertices}},@{$c->{vertices}}); - push(@{$p0->{volumes}},@b) if($c->{volumes}); - } - - for(my $i=0; $i<3; $i++) { - $p0->{min}->[$i] = $c->{min}->[$i] if($p0->{min}->[$i]>$c->{min}->[$i]); - $p0->{max}->[$i] = $c->{max}->[$i] if($p0->{max}->[$i]<$c->{max}->[$i]); - } - $p0->{size}->[0] = $p0->{max}->[0]-$p0->{min}->[0]; - $p0->{size}->[1] = $p0->{max}->[1]-$p0->{min}->[1]; - $p0->{size}->[2] = $p0->{max}->[2]-$p0->{min}->[2]; - - return $p0; -} - -# --------------------------------------------------------------------------------------------------------------- - -sub partTransform { - my($p,$t) = @_; - my $n = 0; - my $nn = 0; - my $pn = { }; - - my(@min,@max); - $min[0] = $min[1] = $min[2] = 1e6; - $max[0] = $max[1] = $max[2] = -1e6; - - if(1) { - my @np; - my $n = 0; - foreach my $v (@{$p->{vertices}}) { - my @nv = &$t(@$v); # -- per vertex - for(my $j=0; $j<3; $j++) { # -- x,y,z - # -- update min/max - $min[$j] = $nv[$j] if($nv[$j]<$min[$j]); - $max[$j] = $nv[$j] if($nv[$j]>$max[$j]); - } - push(@np,\@nv); - $n++; - } - $pn->{facets} = $p->{facets}; - $pn->{vertices} = \@np; - $pn->{volumes} = $p->{volumes} if($p->{volumes}); - print ", $n vertices transformed\n" if($conf{verbose}); - - } else { - foreach my $f (@{$p->{facets}}) { - my @nf; - foreach my $v (@$f) { - my @nv = &$t(@$v); # -- per vertex - push(@nf,\@nv) if(@nv==3); - } - if(@nf==3) { - $pn->{facets}->[$n++] = \@nf; - $nn++; - } else { - $pn->{facets}->[$n++] = $f; - @nf = @$f; - } - for(my $i=0; $i<3; $i++) { # -- 3 vertices per face - for(my $j=0; $j<3; $j++) { # -- x,y,z - # -- update min/max - $min[$j] = $nf[$i]->[$j] if($nf[$i]->[$j]<$min[$j]); - $max[$j] = $nf[$i]->[$j] if($nf[$i]->[$j]>$max[$j]); - } - } - } - print ", $nn of $n facets transformed\n" if($conf{verbose}); - } - # -- keep min/max/size up-to-date - $pn->{min} = \@min; - $pn->{max} = \@max; - $pn->{size} = [$max[0]-$min[0],$max[1]-$min[1],$max[2]-$min[2]]; - $pn->{process} = (); - - push(@{$pn->{process}},@{$p->{process}}) if($p->{process}); - - return $pn; -} - -sub partRecenter { - my($p,$s) = @_; - - printf ", recenter: %d,%d,%d ",$s->[0],$s->[1],$s->[2] if($conf{verbose}); - print "min @{$p->{min}}, max @{$p->{max}}, " if($conf{verbose}); - $s = [1,1,1] unless($s); - my $n = 0; - my $pn = partTransform($p,sub { - my(@p) = @_; - $p[0] -= $p->{min}->[0] + $p->{size}->[0]/2 if($s->[0]); - $p[1] -= $p->{min}->[1] + $p->{size}->[1]/2 if($s->[1]); - $p[2] -= $p->{min}->[2] + $p->{size}->[2]/2 if($s->[2]>0); - $p[2] -= $p->{min}->[2] if($s->[2]<0); - return(@p); - }); - print "=> min @{$pn->{min}}, max @{$pn->{max}}, " if($conf{verbose}); - push(@{$pn->{process}},{type=>'recenter',data=>$s,time=>time()}); - return $pn; -} - -sub partScale { - my($p,$s) = @_; - - $s = [@$s[0],@$s[0],@$s[0]] if(ref($s)ne'ARRAY' || @$s!=3); - - my $ns = 1; # -- normalized value - my $adj; - - print ", scale: @$s" if($conf{verbose}); - for(my $i=0; $i<3; $i++) { # -- check any absolute dimension or percentage - $ns = $s->[$i] = $s->[$i]/$p->{size}->[$i], $adj++ if($s->[$i] && $s->[$i]=~/mm$/); - $ns = $s->[$i] = $s->[$i]/100, $adj++ if($s->[$i] && $s->[$i]=~/%$/); - } - for(my $i=0; $i<3; $i++) { # -- adjust any non-set scale factors - $s->[$i] = $ns, $adj++ if($s->[$i]==0); - } - printf ", scale %.2f,%.2f,%.2f",$s->[0],$s->[1],$s->[2] if(!$conf{verbose} && !$conf{quiet}); - print ", adjusted scale: @$s, " if($conf{verbose} && $adj); - for(my $i=0; $i<3; $i++) { # -- update size - $p->{size}->[$i] *= $s->[$i]; - } - my $pn = partTransform($p,sub { - my(@p) = @_; - return ($p[0]*$s->[0],$p[1]*$s->[1],$p[2]*$s->[2]); - }); - push(@{$pn->{process}},{type=>'scale',data=>$s,time=>time()}); - return $pn; -} - -sub partRotate { - my($p,$s) = @_; - my(@r) = ($s->[0] * pi/180,$s->[1] * pi/180,$s->[2] * pi/180); - printf ", rotate %.1f,%.1f,%.1f",$s->[0],$s->[1],$s->[2] if(!$conf{verbose} && !$conf{quiet}); - print ", rotate: @$s" if($conf{verbose}); - my $pn = partTransform($p,sub { - my(@p) = @_; - my(@pn); - # -- https://ch.mathworks.com/matlabcentral/answers/123763-how-to-rotate-entire-3d-data-with-x-y-z-values-along-a-particular-axis-say-x-axis - # -- x - $pn[0] = $p[0]; - $pn[1] = $p[1]*cos($r[0]) - $p[2]*sin($r[0]); - $pn[2] = $p[1]*sin($r[0]) + $p[2]*cos($r[0]); - @p = @pn; - # -- y - $pn[0] = $p[0]*cos($r[1]) + $p[2]*sin($r[1]); - $pn[1] = $p[1]; - $pn[2] = $p[2]*cos($r[1]) - $p[0]*sin($r[1]); - @p = @pn; - # -- z - $pn[0] = $p[0]*cos($r[2]) - $p[1]*sin($r[2]); - $pn[1] = $p[0]*sin($r[2]) + $p[1]*cos($r[2]); - $pn[2] = $p[2]; - return (@pn); - }); - push(@{$pn->{process}},{type=>'rotate',data=>$s,time=>time()}); - return $pn; -} - -sub partTranslate { - my($p,$s) = @_; - printf ", translate %.1f,%.1f,%.1f",$s->[0],$s->[1],$s->[2] if(!$conf{verbose} && !$conf{quiet}); - print ", translate: @$s" if($conf{verbose}); - my $pn = partTransform($p,sub { - my(@p) = @_; - return ($p[0]+$s->[0],$p[1]+$s->[1],$p[2]+$s->[2]); - }); - push(@{$pn->{process}},{type=>'translate',data=>$s}); - return $pn; -} - -sub partMirror { - my($p,$s) = @_; - printf ", mirror %d,%d,%d",$s->[0],$s->[1],$s->[2] if(!$conf{verbose} && !$conf{quiet}); - print ", mirror: @$s" if($conf{verbose}); - my $pn = partTransform($p,sub { - my(@p) = @_; - return ($p[0]*($s->[0]?-1:1),$p[1]*($s->[1]?-1:1),$p[2]*($s->[2]?-1:1)); - }); - push(@{$pn->{process}},{type=>'mirror',data=>$s}); - return $pn; -} - -# --------------------------------------------------------------------------------------------------------------- - -sub evalExpr { - my($e) = @_; - - # { ... } eval expression - # $ replace variable - $e =~ s#\{([^}]+)\}# - my $ex = $1; - $ex =~ s"\$(\w+)" - my $k = $1; - if(!(defined $conf{$k} ||$printer->{$k})) { - print \"$me: variable \$$k not defined for '$e'\n\"; - exit -1; - } - $conf{$k} || $printer->{$k}; - "eg; - eval($ex); - #eg; - return $e; -} - -# --------------------------------------------------------------------------------------------------------------- - -sub gconsole { - my($cmd,$com,$cpath) = @_; - - $cmd =~ s/^\s+//; - $cmd =~ s/\s+$//; - - my(@a) = split(/\s+/,$cmd); - - if(lc($a[0]) eq 'quit' || lc($a[0]) eq 'exit') { - exit 0; - - } elsif(lc($a[0]) eq 'help' ) { - my @h; - push(@h,"quit","exit","reset"); - foreach my $p (".",@paths) { - opendir(my $dh,"$p/gconsole/commands/"); - push(@h,grep(!/^\./,readdir($dh))); - closedir($dh); - } - print "available commands: ",join(", ",sort @h),"\n"; - return("",0); - - } elsif(lc($a[0]) eq 'reset' ) { - # -- reset board - if($conf{serialif}eq'termios') { - print "WARN: command not available with serialif=$conf{serialif}\n"; - } else { - $com->pulse_dtr_on(100); - } - return("",0); - - } elsif(-e "$cpath/gconsole/commands/$a[0]") { - my(@o); - print "$me: execute command <$a[0]>\n" if($conf{verbose}); - open(my $fh,"<","$cpath/gconsole/commands/$a[0]"); - while(<$fh>) { - chop; - s/\$(\d+)/$a[$1]/g; - push(@o,$_); - } - close $fh; - return (join("\n",@o),1); - - } else { - return ($cmd,0); - } -} - -sub uid { # -- 00000000-00000000-00000000-00000000 - return join("-",map { sprintf("%08x",(rand()*(1<<32))&0xffffffff) } (0..3)); -} - -# --------------------------------------------------------------------------------------------------------------- - -sub openSerial { - my($d,$uuid) = @_; - my $com; - - $uuid = $uuid || $conf{machine_uuid}; - - if($d=~/^auto/i) { # -- help out via machine-uuid - if(!$conf{machine_uuid}) { - error("define machine-uuid in command-line or printer profile, otherwise machine cannot be found"); - } - if($d=~/auto:([\w\.,]+)/) { # -- extract hostname(s) - my $hs = $1; - foreach my $h (split(/,/,$hs)) { - my $p = 0; - while(tcpPing($h,3380+$p)) { - my $c = openSerial("tcp:$h:$p",$uuid); - return $c if($c); - } - } - } else { # -- probe locally only - my $p = 0; - while(-e "/dev/ttyUSB$p") { # -- local - my $c = openSerial("/dev/ttyUSB$p",$uuid); - return $c if($c); - $p++; - } - } - error("wasn't able to find machine with uuid:$conf{machine_uuid}"); - - } elsif($d=~/^tcp:(\S+)/i) { # -- tcp device? - $d = $1; - my $sdev = "/tmp/print3r-device-$d"; - $SIG{CHLD} = 'IGNORE'; - my $p = 3380; - $p += $1*1 if($d=~s/:(\d+)$//); - if(!which('socat')) { - error("socat not found or installed"); - } - print "$me: connect $d:$p (socat)\n" if($conf{verbose}); - if(!-e $sdev) { - if(fork()==0) { - if(fork()==0) { - print "$me: launch socat $d:$p\n" if($conf{verbose}); - exec("socat","pty,raw,echo=0,b$conf{baudrate},link=$sdev","tcp:$d:$p"); - } - wait; - print "$me: socat ended\n" if($conf{verbose}); - unlink $sdev; - exit 0; - } - #wait; - sleep 0.5; - } - print "$me: reroute $d:$p => $sdev\n" if($conf{verbose}); - $d = $sdev; - } - $com = Device::SerialPort->new($d || $conf{device}, 1); - error("can't open $conf{device}") if(!$com); - - my $done; - foreach my $b ($com->baudrate) { # -- we check availability of baudrate to set - if($b*1==$conf{baudrate}*1) { - $done++; - last; - } - } - - if(!$done || $conf{serialif}eq'termios') { - $com->close(); - - $conf{serialif} = 'termios'; - - print "$me: using termios interface to connect\n" if($conf{verbose}); - - # -- Note: Device::SerialPort does NOT support arbitrary baudrates like default 250000 in Marlin, but 230400 or 115200 - # as alternative IO::Termios and Linux::Termios2 - # $com->read() works, but $com->status() doesn't exist - require IO::Termios; - require Linux::Termios2; - use Fcntl qw( O_NOCTTY O_NDELAY ); - - $com = IO::Termios->open($conf{device},$conf{baudrate}.",8,n,1",O_NOCTTY|O_NDELAY); - - error("can't open $conf{device}") if(!$com); - - $com->setflag_echo(0); - $com->blocking(0); - $com->autoflush(); - - #sleep 1; # -- essential wait - # - #my $buff; - #while(read($com,$buff,3)) { # -- slurp the manifest - # sleep 0.005; - #} - - } else { - $com = Device::SerialPort->new($d || $conf{device}, 1); - error("can't open $conf{device}") if(!$com); - - if($conf{baudrate} && $conf{baudrate}ne'auto') { - if($com->can_arbitrary_baud) { - $com->baudrate($conf{baudrate}*1); - } else { - my $done; - foreach my $b ($com->baudrate) { - if($b == $conf{baudrate}) { - $com->baudrate($conf{baudrate}*1); - $done++; - } - } - unless($done) { - error("could not set $conf{baudrate}, as it's not valid baudrate (only ".join(",",sort { $a<=>$b } $com->baudrate)." available)"); - } - } - - } else { - # -- probe baudrate (not yet used, mostly untested) - my $bb; - print "$me: print: configure serial\r" if(!$conf{quiet}); - foreach my $b (sort { $b<=>$a } $com->baudrate) { - my $st = time(); - - $com->purge_all; - $com->baudrate($b); - - sleep 0.5; - - print "probe $b\n" if($conf{verbose}>1); - - printerSend($com,"M115\n"); - - sleep 0.2; - - my($rd) = printerResponse($com,"M115\n",{timeout => 1, callback => sub { - my($rd,$com,$cmd) = @_; - $rd =~ s/[\t\r\n]//g; - print "> $rd\n" if($conf{verbose}>2); - }}); - - if($rd=~/echo/) { - $bb = $b; - last; - } elsif($rd=~/[\0-\037]/) { # -- gibberish - last; - } else { - #$bb = $b; - #last; - } - - last if($bb); - - sleep 0.3; - } - print "baudrate: $bb\n" if($conf{verbose}); - sleep 0.1; - if(!$bb) { - error("no viable baudrate for $conf{device} found, abort."); - } - } - } - - sleep 2; # -- allow the board to (re)boot - - $process->{serial_backend} = $conf{serialif}; - printerResponse($com,"M115\n",{timeout=>1.5, callback=>sub { - my($m) = @_; - # -- slurp manifest ... (whatever is left to get) - }}); - - # -- retrieve (again) the firmware version & uuid of the machine - foreach my $gcode ("M115\n","M122\n") { # -- Marlin uses M115, RRF uses M122 to report UUID - sleep 0.8; - printerSend($com,$gcode); - my($resp) = printerResponse($com,$gcode,{timeout=>1.5}); - $printer->{firmware} = $resp, $printer->{uuid} = $1, last if($resp=~/UUID\s*:\s*(\S+)/); # Marlin - $printer->{firmware} = $resp, $printer->{uuid} = $1, last if($resp=~/Board ID\s*:\s*(\S+)/); # RRF [1] - $printer->{firmware} = $resp, $printer->{uuid} = $1, last if($resp=~/MAC address\s*(\S+)/); # RRF [2]: as last resort we get MAC address (ethernet or wifi) - } - - if($uuid) { # -- metadata like UUID requested - if($printer->{uuid} && $printer->{uuid} ne $uuid) { - if($conf{device}) { - error("UUID mismatch: '$conf{machine_uuid}' != '$printer->{uuid}', abort\n"); - } else { - return undef; # -- no device=... set, therefore we are probing devices, and fail with 'undef' - } - } elsif(!defined $printer->{uuid}) { - print "$me: WARN: retrieve of machine-uuid (UUID) failed, ignored\n"; - } else { - print "$me: authenticated \"$conf{machine_name}\" ($conf{machine_uuid}) at $conf{device}\n"; - } - } - - foreach my $gcode ("M503\n") { # -- read out EEPROM/settings - sleep 0.8; - printerSend($com,$gcode); - my($resp) = printerResponse($com,$gcode,{timeout=>1.5}); - $printer->{firmware_eeprom} = $resp; - } - - return $com; -} - -sub tcpPing { - my($h,$p) = @_; - print "$me: probing $h:$p\n" if($conf{verbose}>1); - my $s = new IO::Socket::INET(PeerHost=>$h, PeerPort=>$p, Proto=>'tcp'); - return $s && $s->close() || 0; -} - -# --------------------------------------------------------------------------------------------------------------- - -sub webgui { - my $server = IO::Socket::INET->new( - LocalPort => $conf{webgui_port} || 9082, - Type => SOCK_STREAM, - Reuse => 1, - Listen => 10 ) # or SOMAXCONN - or die "can't start a tcp server on port $conf{webgui_port}: $!\n"; - - use IO::Socket; - use IO::Select; - - print STDERR "$me: listening port $conf{webgui_port}\n" if($conf{verbose}); - - $SIG{PIPE} = 'IGNORE'; - $SIG{CHLD} = 'IGNORE'; - - my(%g); - my $info; - - my $rs = new IO::Select(); - $rs->add($server); - while(1) { - my($rhs) = IO::Select->select($rs,undef,undef,0.1); - foreach my $rh (@$rhs) { - if($rh==$server) { - my $c = $rh->accept(); - $rs->add($c); - - } else { - processRequestHeader($rh); - $rs->remove($rh); - } - } - } -} - -sub processRequestHeader { - my($client) = @_; - - $client->autoflush(1); - $_ = <$client>; - if($_) { - my($i); - - s/[\n\r]$//g; - - my($cmd) = ($_=~/^(\S+)/); - - # -- first line of request, "GET / HTTP/1.1" - $i->{Header}->{RequestType} = $1, - $i->{Header}->{RequestURL} = $2, - $i->{Header}->{Version} = $3 if(/^(\S+)\s*(\S*)\s*(\S*)/); - $i->{Header}->{RemoteAddr} = $client->peerhost(); - - if($i->{Header}->{RequestURL}=~s/\?(\S*)//) { - $i->{Header}->{QueryString} = $1; - foreach my $kv (split(/&/,$i->{Header}->{QueryString})) { - my($k,$v) = split(/=/,$kv); - $v =~ s/\+/ /g; $v =~ s/%(\X\X)/sprintf("%c",hex($1))/eg; $v =~ s/%%/%/g; - $i->{Variable}->{$k} = $v; - } - } - while(<$client>) { - s/[\r\n]//g; - if($cmd eq 'PUT'||$cmd eq 'POST'&&length($_)==0) { # -- end of PUT header - read($client,$i->{Content}->{Body},$i->{Header}->{'Content-Length'}); - $i->{Content}->{Length} = $i->{Header}->{'Content-Length'}; - - if($cmd eq 'POST') { - foreach my $kv (split(/&/,$i->{Content}->{Body})) { - my($k,$v) = split(/=/,$kv); - $v =~ s/\+/ /g; $v =~ s/%(\X\X)/sprintf("%c",hex($1))/eg; $v =~ s/%%/%/g; - $i->{Variable}->{$k} = $v; - } - } - print "C: $i->{Content}->{Body}\n" if($conf{verbose}>1); - last; - - } elsif(length($_)==0) { # -- end of header (of any command) - last; - } - } - if(fork()==0) { - processRequest($client,$i); - close $client; - exit 0; - } - } - close $client; -} - -sub processRequest { - my($c,$i) = @_; - print toJSON($i) if($conf{verbose}>1); - my $p = $i->{Header}->{RequestURL}; - $p .= "index.html" if($p=~/\/$/); - if(-f "$conf{webgui_root}/www/$p") { # -- something locally and static? - processLocalStatic($c,$p); - } else { - print $c "HTTP/1.1 404 NOT FOUND\n\n"; - } -} - -sub processLocalStatic { - my($c,$p) = @_; - my $mime = "text/plain"; - - $mime = "text/html" if($p=~/\.html$/i); - $mime = "image/jpeg" if($p=~/\.jpg$/i); - $mime = "image/png" if($p=~/\.png$/i); - - if(open(my $fh,'<',"$conf{webgui_root}/www/$p")) { - print $c "HTTP/1.1 200 OK\nContent-Type: $mime\n\n"; - binmode($fh); - my $buff; - my $n; - while($n=read($fh,$buff,4096)) { - print $c $buff; - } - close($fh); - - } else { - print $c "HTTP/1.1 404 NOT FOUND\n\n"; - } -} - -# --------------------------------------------------------------------------------------------------------------- - -sub logReference { - my($no) = @_; - my $n = 1; - open(my $fh,"<","$ENV{HOME}/.print3r/log.json"); - while(<$fh>) { - if($no == $n) { - my $d = eval { from_json($_); }; - #print to_json($d,{pretty=>1,canonical=>1}); - #%conf = %{$d->{settings}}; - foreach my $k (keys %{$d->{settings}}) { - next if $k eq 'device'; - next if $k eq 'uuid'; - $conf{$k} = $d->{settings}->{$k}; - } - @f = (); - push(@f,@{$d->{file_list}}); - last; - } - $n++; - } - close $fh; -} - -sub versions { - my(@vs); - my $fnc = "$ENV{HOME}/.print3r/versions.json"; - - # -- cache it for 24 hrs, as probing is slow (can take several seconds) - if((!-e "$ENV{HOME}/.print3r/versions.json") || (stat($fnc))[9] < time()-24*60*60) { - my(@apps) = map { $slicer->{$_}->{exe} } keys %$slicer; - push(@apps,'openscad','scriptcad'); # -- TODO: openscad reports version to stderr - #push(@apps,$conf{gviewer}) if($conf{gviewer}); - foreach my $a (@apps) { - my $v = `$a --version 2> /dev/null`; - chop($v); - $v =~ s/\n.*//mg; - $v = '?.?.?' if(!($v=~/\d\./)); - $v = "$a $v" if($v=~/^\d\./ || $v =~ /^\?/); - push(@vs,$v); - } - writeJSON($fnc,\@vs); - return \@vs; - } else { - my $v = readJSON($fnc); - return $v; - } -} - -# --------------------------------------------------------------------------------------------------------------- - -sub fromJSON { - return eval { JSON->new->allow_nonref->relaxed([1])->decode($_[0]) }; -} - -sub toJSON { - my($v,$a) = @_; - my $j = JSON->new->allow_nonref->allow_blessed->canonical; - $j = $j->pretty unless($a&&!$a->{pretty}); - return $j->encode($v); -} - -sub readJSON { - my($fn) = @_; - local $/; - open(my $fh,"<",$fn); - my($d) = <$fh>; - close $fh; - return fromJSON($d); -} - -sub writeJSON { - my($fn,$d) = @_; - if(open(my $fh,">",$fn)) { - print $fh toJSON($d); - close $fh; - } else { - die "$NAME: ERROR: cannot write to $fn: $@\n"; - } -} - -# ---------------------------------------------------------------------------------------------------------------- - -sub inline_args { - my($s) = @_; - return split(/,/,$s); -} - -sub inline_function { - my($n) = shift; - print "$me: calling inline_$n() with @_\n" if($conf{verbose}); - @_ = eval("inline_$n(\@_)"); - print "$me: => results: @_\n" if($conf{verbose}); - print "$me: ERROR: inline_$n() failed: $@\n" if($@); - return "@_"; -} - -sub inline_phases { - my($r,$n,$p,$opts) = @_; - my %v; - my(%m) = ('A'=>'a', 'B'=>'b', 'C'=>'c'); - - if($conf{multicolor_map}) { - (%m) = map { /(\w+)\s*[:=]\s*(\S+)/; ($1, $2); } split(/,/,$conf{multicolor_map}); - } - - if($n==2) { - if($n==2) { - $v{'a'} = $r < 1/2 ? 1-$r*2 : ($r-1/2)*2; # 1..0..1 - $v{'b'} = $r < 1/2 ? $r*2 : 1-($r-1/2)*2; # 0..1..0 - } else { - $v{'a'} = 1 - $r; - $v{'b'} = $r; - } - return "A$v{$m{'B'}} B$v{$m{'B'}}"; - } else { - if($p==3) { - $v{'a'} = $r < 1/2 ? 1-$r*2 : 0; # 1..0..0 - $v{'b'} = $r < 1/2 ? $r*2 : 1 - ($r-1/2)*2; # 0..1..0 - $v{'c'} = $r >= 1/2 ? ($r-1/2)*2 : 0; # 0..0..1 - } else { - $v{'a'} = $r < 1/3 ? 1-$r*3 : $r >= 2/3 ? ($r-2/3)*3 : 0; # 1..0..0..1 - $v{'b'} = $r < 1/3 ? $r*3 : $r <= 2/3 ? 1 - ($r-1/3)*3 : 0; # 0..1..0..0 - $v{'c'} = $r >= 1/3 && $r < 2/3 ? ($r-1/3)*3 : $r >= 2/3 ? 1 - ($r-2/3)*3 : 0; # 0..0..1..0 - } - return "A$v{$m{'A'}} B$v{$m{'B'}} C$v{$m{'C'}}"; - } -} - -sub inline_hsl2cmy { - my($h,$s,$l,$opts) = @_; - my $r = (($h+180)%360)/360; - my %v; - my(%m) = ('A'=>'c', 'B'=>'m', 'C'=>'y', 'D'=>'k', 'E'=>'w'); - - if($conf{multicolor_cmymap}) { - (%m) = map { /(\w+)\s*[:=]\s*(\S+)/; ($1, $2); } split(/,/,$conf{multicolor_cmymap}); - } - $v{'c'} = $r < 1/3 ? 1-$r*3 : $r >= 2/3 ? ($r-2/3)*3 : 0; # 1..0..0..1 - $v{'m'} = $r < 1/3 ? $r*3 : $r <= 2/3 ? 1 - ($r-1/3)*3 : 0; # 0..1..0..0 - $v{'y'} = $r >= 1/3 && $r < 2/3 ? ($r-1/3)*3 : $r >= 2/3 ? 1 - ($r-2/3)*3 : 0; # 0..0..1..0 - $v{'k'} = 0; - $v{'w'} = 0; - return "A$v{$m{'A'}} B$v{$m{'B'}} C$v{$m{'Y'}} D$v{$m{'K'}} E$v{$m{'W'}}"; -} - -sub inline_toolcolor { - my($n,$a,$b,$c,$d,$e) = @_; - $a = $a || 0; - $b = $b || 0; - $c = $c || 0; - $d = $d || 0; - $e = $e || 0; - my $f = 1.0; - $a *= $f; - $b *= $f; - $c *= $f; - $d *= $f; - $e *= $f; - return "M163 S0 P$a\nM163 S1 P$b\nM163 S2 P$c\nM163 S3 P$d\nM163 S4 P$e\nM164 S$n\n"; -} diff --git a/software/Print3r/settings/gconsole/commands/back b/software/Print3r/settings/gconsole/commands/back deleted file mode 100644 index d3c7b0c2..00000000 --- a/software/Print3r/settings/gconsole/commands/back +++ /dev/null @@ -1,2 +0,0 @@ -G91 -G1 Y$1 diff --git a/software/Print3r/settings/gconsole/commands/bed b/software/Print3r/settings/gconsole/commands/bed deleted file mode 100644 index 1352d3fa..00000000 --- a/software/Print3r/settings/gconsole/commands/bed +++ /dev/null @@ -1 +0,0 @@ -M140 S$1 diff --git a/software/Print3r/settings/gconsole/commands/down b/software/Print3r/settings/gconsole/commands/down deleted file mode 100644 index 186e94d9..00000000 --- a/software/Print3r/settings/gconsole/commands/down +++ /dev/null @@ -1,2 +0,0 @@ -G91 -G1 Z-$1 diff --git a/software/Print3r/settings/gconsole/commands/fan b/software/Print3r/settings/gconsole/commands/fan deleted file mode 100644 index 4b5231f0..00000000 --- a/software/Print3r/settings/gconsole/commands/fan +++ /dev/null @@ -1 +0,0 @@ -M106 S$1 diff --git a/software/Print3r/settings/gconsole/commands/forward b/software/Print3r/settings/gconsole/commands/forward deleted file mode 100644 index e24dde68..00000000 --- a/software/Print3r/settings/gconsole/commands/forward +++ /dev/null @@ -1,2 +0,0 @@ -G91 -G1 Y-$1 diff --git a/software/Print3r/settings/gconsole/commands/home b/software/Print3r/settings/gconsole/commands/home deleted file mode 100644 index 89e9e093..00000000 --- a/software/Print3r/settings/gconsole/commands/home +++ /dev/null @@ -1 +0,0 @@ -G28 X Y Z diff --git a/software/Print3r/settings/gconsole/commands/homex b/software/Print3r/settings/gconsole/commands/homex deleted file mode 100644 index 8b5d65f6..00000000 --- a/software/Print3r/settings/gconsole/commands/homex +++ /dev/null @@ -1 +0,0 @@ -G28 X diff --git a/software/Print3r/settings/gconsole/commands/homey b/software/Print3r/settings/gconsole/commands/homey deleted file mode 100644 index 6382b826..00000000 --- a/software/Print3r/settings/gconsole/commands/homey +++ /dev/null @@ -1 +0,0 @@ -G28 Y diff --git a/software/Print3r/settings/gconsole/commands/homez b/software/Print3r/settings/gconsole/commands/homez deleted file mode 100644 index c52d5f37..00000000 --- a/software/Print3r/settings/gconsole/commands/homez +++ /dev/null @@ -1 +0,0 @@ -G28 Z diff --git a/software/Print3r/settings/gconsole/commands/hx b/software/Print3r/settings/gconsole/commands/hx deleted file mode 100644 index 8b5d65f6..00000000 --- a/software/Print3r/settings/gconsole/commands/hx +++ /dev/null @@ -1 +0,0 @@ -G28 X diff --git a/software/Print3r/settings/gconsole/commands/hy b/software/Print3r/settings/gconsole/commands/hy deleted file mode 100644 index 6382b826..00000000 --- a/software/Print3r/settings/gconsole/commands/hy +++ /dev/null @@ -1 +0,0 @@ -G28 Y diff --git a/software/Print3r/settings/gconsole/commands/hz b/software/Print3r/settings/gconsole/commands/hz deleted file mode 100644 index c52d5f37..00000000 --- a/software/Print3r/settings/gconsole/commands/hz +++ /dev/null @@ -1 +0,0 @@ -G28 Z diff --git a/software/Print3r/settings/gconsole/commands/left b/software/Print3r/settings/gconsole/commands/left deleted file mode 100644 index 88dca6c7..00000000 --- a/software/Print3r/settings/gconsole/commands/left +++ /dev/null @@ -1,2 +0,0 @@ -G91 -G1 X-$1 diff --git a/software/Print3r/settings/gconsole/commands/nozzle b/software/Print3r/settings/gconsole/commands/nozzle deleted file mode 100644 index 8393dffb..00000000 --- a/software/Print3r/settings/gconsole/commands/nozzle +++ /dev/null @@ -1 +0,0 @@ -M104 S$1 diff --git a/software/Print3r/settings/gconsole/commands/off b/software/Print3r/settings/gconsole/commands/off deleted file mode 100644 index e21cb72c..00000000 --- a/software/Print3r/settings/gconsole/commands/off +++ /dev/null @@ -1,3 +0,0 @@ -M84 -M104 S0 -M140 S0 diff --git a/software/Print3r/settings/gconsole/commands/right b/software/Print3r/settings/gconsole/commands/right deleted file mode 100644 index ff9c5f2a..00000000 --- a/software/Print3r/settings/gconsole/commands/right +++ /dev/null @@ -1,2 +0,0 @@ -G91 -G1 X$1 diff --git a/software/Print3r/settings/gconsole/commands/stop b/software/Print3r/settings/gconsole/commands/stop deleted file mode 100644 index 26326667..00000000 --- a/software/Print3r/settings/gconsole/commands/stop +++ /dev/null @@ -1 +0,0 @@ -M84 diff --git a/software/Print3r/settings/gconsole/commands/up b/software/Print3r/settings/gconsole/commands/up deleted file mode 100644 index beae902f..00000000 --- a/software/Print3r/settings/gconsole/commands/up +++ /dev/null @@ -1,2 +0,0 @@ -G91 -G1 Z$1 diff --git a/software/Print3r/settings/gconsole/commands/x b/software/Print3r/settings/gconsole/commands/x deleted file mode 100644 index 34b0363f..00000000 --- a/software/Print3r/settings/gconsole/commands/x +++ /dev/null @@ -1,2 +0,0 @@ -G92 -G1 X$1 diff --git a/software/Print3r/settings/gconsole/commands/y b/software/Print3r/settings/gconsole/commands/y deleted file mode 100644 index 02cde819..00000000 --- a/software/Print3r/settings/gconsole/commands/y +++ /dev/null @@ -1,2 +0,0 @@ -G92 -G1 Y$1 diff --git a/software/Print3r/settings/gconsole/commands/z b/software/Print3r/settings/gconsole/commands/z deleted file mode 100644 index 2dc5afa4..00000000 --- a/software/Print3r/settings/gconsole/commands/z +++ /dev/null @@ -1,2 +0,0 @@ -G92 -G1 Z$1 diff --git a/software/Print3r/settings/macro/coarse.ini b/software/Print3r/settings/macro/coarse.ini deleted file mode 100644 index b58ac915..00000000 --- a/software/Print3r/settings/macro/coarse.ini +++ /dev/null @@ -1 +0,0 @@ -layer-height={int($nozzle_diameter*0.8*100)/100} diff --git a/software/Print3r/settings/macro/feather.ini b/software/Print3r/settings/macro/feather.ini deleted file mode 100644 index 377f5046..00000000 --- a/software/Print3r/settings/macro/feather.ini +++ /dev/null @@ -1,4 +0,0 @@ -top-layers=1 -bottom-layers=1 -perimeters=1 -infill-density=15 diff --git a/software/Print3r/settings/macro/filament/noveste.ini b/software/Print3r/settings/macro/filament/noveste.ini deleted file mode 100644 index 4f8cf62b..00000000 --- a/software/Print3r/settings/macro/filament/noveste.ini +++ /dev/null @@ -1,2 +0,0 @@ -temperature = 200 -first-layer-temperature = 210 diff --git a/software/Print3r/settings/macro/filament/sienoc.ini b/software/Print3r/settings/macro/filament/sienoc.ini deleted file mode 100644 index 858f0944..00000000 --- a/software/Print3r/settings/macro/filament/sienoc.ini +++ /dev/null @@ -1,2 +0,0 @@ -temperature = 195 -first-layer-temperature = 210 diff --git a/software/Print3r/settings/macro/fine.ini b/software/Print3r/settings/macro/fine.ini deleted file mode 100644 index 0fec462f..00000000 --- a/software/Print3r/settings/macro/fine.ini +++ /dev/null @@ -1 +0,0 @@ -layer-height={int($nozzle_diameter*0.5*0.5*100)/100} diff --git a/software/Print3r/settings/macro/heavy.ini b/software/Print3r/settings/macro/heavy.ini deleted file mode 100644 index db05c11d..00000000 --- a/software/Print3r/settings/macro/heavy.ini +++ /dev/null @@ -1,4 +0,0 @@ -top-thickness=1.5 -bottom-thickness=1.5 -wall-thickness=1.5 -fill-density=30 diff --git a/software/Print3r/settings/macro/hollow.ini b/software/Print3r/settings/macro/hollow.ini deleted file mode 100644 index c1352147..00000000 --- a/software/Print3r/settings/macro/hollow.ini +++ /dev/null @@ -1 +0,0 @@ -fill-density=0 diff --git a/software/Print3r/settings/macro/light.ini b/software/Print3r/settings/macro/light.ini deleted file mode 100644 index 50342da0..00000000 --- a/software/Print3r/settings/macro/light.ini +++ /dev/null @@ -1,4 +0,0 @@ -top-thickness=0.8 -bottom-thickness=0.8 -wall-thickness=0.8 -fill-density=20 diff --git a/software/Print3r/settings/macro/medium.ini b/software/Print3r/settings/macro/medium.ini deleted file mode 100644 index 69d8ada7..00000000 --- a/software/Print3r/settings/macro/medium.ini +++ /dev/null @@ -1 +0,0 @@ -layer-height={int($nozzle_diameter*0.5*100)/100} diff --git a/software/Print3r/settings/macro/revo-blue.ini b/software/Print3r/settings/macro/revo-blue.ini deleted file mode 100644 index a0cb933a..00000000 --- a/software/Print3r/settings/macro/revo-blue.ini +++ /dev/null @@ -1,2 +0,0 @@ -nozzle-diameter=0.6 -layer-height=0.45 diff --git a/software/Print3r/settings/macro/revo-green.ini b/software/Print3r/settings/macro/revo-green.ini deleted file mode 100644 index b99b7e75..00000000 --- a/software/Print3r/settings/macro/revo-green.ini +++ /dev/null @@ -1,2 +0,0 @@ -nozzle-diameter=0.8 -layer-height=0.50 diff --git a/software/Print3r/settings/macro/revo-pink.ini b/software/Print3r/settings/macro/revo-pink.ini deleted file mode 100644 index 20fbb39f..00000000 --- a/software/Print3r/settings/macro/revo-pink.ini +++ /dev/null @@ -1,2 +0,0 @@ -nozzle-diameter=0.15 -layer-height=0.1 diff --git a/software/Print3r/settings/macro/revo-red.ini b/software/Print3r/settings/macro/revo-red.ini deleted file mode 100644 index 5c7b2ec1..00000000 --- a/software/Print3r/settings/macro/revo-red.ini +++ /dev/null @@ -1,2 +0,0 @@ -nozzle-diameter=0.4 -layer-height=0.25 diff --git a/software/Print3r/settings/macro/revo-yellow.ini b/software/Print3r/settings/macro/revo-yellow.ini deleted file mode 100644 index 00c187e4..00000000 --- a/software/Print3r/settings/macro/revo-yellow.ini +++ /dev/null @@ -1,2 +0,0 @@ -nozzle-diameter=0.25 -layer-height=0.2 diff --git a/software/Print3r/settings/macro/thin.ini b/software/Print3r/settings/macro/thin.ini deleted file mode 100644 index 0133fce4..00000000 --- a/software/Print3r/settings/macro/thin.ini +++ /dev/null @@ -1,3 +0,0 @@ -perimeters=1 -top-layers=2 -bottom-layers=2 diff --git a/software/Print3r/settings/printer/ashtar-k-40x30.ini b/software/Print3r/settings/printer/ashtar-k-40x30.ini deleted file mode 100644 index 0bd70998..00000000 --- a/software/Print3r/settings/printer/ashtar-k-40x30.ini +++ /dev/null @@ -1,36 +0,0 @@ -# -- slicer independent settings -machine-name = "Ashtar K 38x30x33" -machine-width = 348 -machine-height = 330 -machine-depth = 300 - -filament-diameter = 1.75 -nozzle-diameter = 0.5 -layer-height = 0.4 - -fill-density = 20 - -temperature = 195 -first-layer-temperature = 210 -bed-temperature = 0 - -first-layer-height = 0.25 -first-layer-speed = 20 - -skirts = 2 - -# -- init values so no warnings are thrown -top-thickness = 0 -bottom-thickness = 0 -wall-thickness = 0 - -# -- absolutely define layers top/bottom/wall as default -perimeters = 2 -top-layers = 3 -bottom-layers = 3 - -# -- Note: either define z_offset for each slicer (cura 3.5.x doesn't have this feature yet) OR define M206 Z0.15 -start-gcode = "G28 X0 Y0\nG1 X180 F6000\nG28 Z0\nM206 X0 Y-25 Z0.15\n" -end-gcode = "G1 Y290 F6000\nM104 S0\nM140 S0\nM84\n" - -retraction-length = 2 diff --git a/software/Print3r/settings/printer/ctc-diy-i3.ini b/software/Print3r/settings/printer/ctc-diy-i3.ini deleted file mode 100644 index 20403e91..00000000 --- a/software/Print3r/settings/printer/ctc-diy-i3.ini +++ /dev/null @@ -1,39 +0,0 @@ -# -- slicer independent settings -machine-name = "CTC DIY I3 Pro B" -machine-width = 200 -machine-depth = 200 -machine-height = 180 -baudrate = 250000 - -temperature = 195 -first-layer-temperature = 210 -bed-temperature = 55 - -filament-diameter = 1.75 -nozzle-diameter = 0.4 -layer-height = 0.3 - -fill-density = 20 - -first-layer-height = 0.25 -first-layer-speed = 20 - -skirts = 2 -fill-density = 20 - -# -- init values so no warnings are thrown -top-thickness = 0 -bottom-thickness = 0 -wall-thickness = 0 - -# -- absolutely define layers top/bottom/wall as default -perimeters = 3 -top-layers = 3 -bottom-layers = 3 - -# -- Note: either define z_offset for each slicer (cura 3.5.x doesn't have this feature yet) OR define M206 Z0.15 (older Marlin Z-0.15 required) -start-gcode = "G21\nG90\nM92 X100 Y100 E95 Z3200\nM206 X0 Y0 Z0.15\nG28 X0 Y0\nG1 X100 F6000\nG28 Z0\n" -end-gcode = "G1 Y180 F6000\nM104 S0\nM140 S0\nM84\n" - -retraction-length = 4 - diff --git a/software/Print3r/settings/printer/default.ini b/software/Print3r/settings/printer/default.ini deleted file mode 100644 index 1b2ef462..00000000 --- a/software/Print3r/settings/printer/default.ini +++ /dev/null @@ -1,61 +0,0 @@ -# -- slicer independent settings - -machine-name = "Prusa i3" -machine-width = 200 -machine-depth = 200 -machine-height = 180 - -filament-diameter = 1.75 -nozzle-diameter = 0.4 -layer-height = 0.3 - -fill-density = 20 - -temperature = 200 -first-layer-temperature = 210 -bed-temperature = 60 - -first-layer-height = 0.25 -first-layer-speed = 20 - -skirts = 2 -brims = 0 -rafts = 0 - -support = none -support_angle = 60 - -seam = aligned - -# -- init values so no warnings are thrown -top-thickness = 0 -bottom-thickness = 0 -wall-thickness = 0 - -perimeters = 2 -top-layers = 2 -bottom-layers = 2 - -# -- Note: either define z_offset for each slicer (cura 3.5.x doesn't have this feature yet) OR define M206 Z0.15 -start-gcode = "G28 X0 Y0\nG1 X100 F6000\nG28 Z0\nM206 X0 Y-25 Z0.15\n" -end-gcode = "G1 Y290 F6000\nM104 S0\nM140 S0\nM84\n" -abort-gcode ="M104 S0 ; extruder heater off\nM140 S0 ; heated bed heater off (if you have it)\nG1 X10 F9000 ; go way to the left\nM84 ; motors off\n" - -retraction-length = 2 - -print-speed = 60 -travel-speed = 130 - -perimeter-speed = 60 -small-perimeter-speed = 15 - -infill-speed = 80 -bridge-speed = 60 -retract-speed = 40 - -extruders-count = 1 - -cool_fan_speed = 100 -cool_fan_speed_min = 30 -cool_fan_speed_max = 100 - diff --git a/software/Print3r/settings/slicer/5dmaker/base.ini b/software/Print3r/settings/slicer/5dmaker/base.ini deleted file mode 100644 index 2c7ed931..00000000 --- a/software/Print3r/settings/slicer/5dmaker/base.ini +++ /dev/null @@ -1 +0,0 @@ -retract_speed=120 diff --git a/software/Print3r/settings/slicer/5dmaker/map.ini b/software/Print3r/settings/slicer/5dmaker/map.ini deleted file mode 100644 index e2c46e68..00000000 --- a/software/Print3r/settings/slicer/5dmaker/map.ini +++ /dev/null @@ -1,47 +0,0 @@ -#infill_line_distance={$fill_density==0?0:$nozzle_diameter*100/$fill_density*2} -#machine_nozzle_diameter=$nozzle_diameter -#machine_material_diameter=$filament_diameter -top_layers={$top_thickness>0?int($top_thickness/$layer_height+0.5):$top_layers} -bottom_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -#wall_line_count={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} -retraction_amount=$retraction_length -#machine_start_gcode=$start_gcode -#machine_end_gcode=$end_gcode -#retraction_amount=$retraction_length -layer_height_0={$first_layer_height>0?$first_layer_height:$layer_height} -print_speed_layer_0=$first_layer_speed -material_print_temperature_layer_0={$first_layer_bed_temparature?$first_layer_bed_temperature:$bed_temperature} -#line_width=$nozzle_diameter -#infill_line_width=$nozzle_diameter -#prime_tower_line_width=$nozzle_diameter -#raft_surface_line_width=$nozzle_diameter -#roofing_line_width=$nozzle_diameter -#skin_line_width=$nozzle_diameter -#skirt_brim_line_width=$nozzle_diameter -#support_bottom_line_width=$nozzle_diameter -#support_interface_line_width=$nozzle_diameter -#support_line_width=$nozzle_diameter -#support_roof_line_width=$nozzle_diameter -#wall_line_width_0=$nozzle_diameter -#wall_line_width=$nozzle_diameter -#wall_line_width_x=$nozzle_diameter -#default_material_print_temperature=$temperature -#default_material_print_bed_temperature=$bed_temperature -#material_print_temperature=$temperature -#material_print_bed_temperature=$bed_temperature -#material_bed_temperature_layer_0=$bed_temperature -#material_print_temperature_layer_0=$first_layer_temperature -#print_temperature=$temperature -#print_bed_temperature=$bed_temperature -#speed_print=$print_speed -#speed_wall={$perimeter_speed?$perimeter_speed:$print_speed*0.8} -#speed_infill={$infill_speed?$infill_speed:$print_speed*1.5} -retraction_speed={$retract_speed?$retract_speed:80} -speed_travel=$travel_speed -adhesion_type={$rafts>0?"raft":$brims>0?"brim":"skirt"} -#brim_line_count=$brims -#skirt_line_count=$skirts -#raft_surface_layers=$rafts -support_enable={'$support' ne 'none' && '$support' ne '0' ? 1 : 0} -support_type={'$support' eq "bed"?"buildplate":"everywhere"} -z_seam_type={'$seam' eq 'aligned' ? 'sharpest_corner' : '$seam' eq 'nearest' ? "shortest" : '$seam' eq 'rear'? 'back' : '$seam'} diff --git a/software/Print3r/settings/slicer/cura-legacy/base.ini b/software/Print3r/settings/slicer/cura-legacy/base.ini deleted file mode 100644 index 5ef8a0ed..00000000 --- a/software/Print3r/settings/slicer/cura-legacy/base.ini +++ /dev/null @@ -1,11 +0,0 @@ -nozzleSize=400 -filamentDiameter=1750 -sparseInfillLineDistance=2000 -layerThickness=200 -startCode="M107\nM104 S200\nG28 X0 Y0\nG1 X100\nG28 Z0\nM109 S200" -printSpeed=60 -infillSpeed=80 -skinSpeed=20 -autoCenter=0 -upSkinCount=3 -downSkinCount=3 diff --git a/software/Print3r/settings/slicer/cura-legacy/map.ini b/software/Print3r/settings/slicer/cura-legacy/map.ini deleted file mode 100644 index 5ed1bf85..00000000 --- a/software/Print3r/settings/slicer/cura-legacy/map.ini +++ /dev/null @@ -1,22 +0,0 @@ -layerThickness={$layer_height*1000} -filamentDiameter{$filament_diameter*1000} -#sparseInfillLineDistance={1/($fill_density+0.001)} -sparseInfillLineDistance={$fill_density==0?2000000:$nozzle_diameter*100/$fill_density*1000} -nozzleSize={$nozzle_diameter*1000} -filamentDiameter={$filament_diameter*1000} -startCode=$start_gcode -endCode=$end_gcode -upSkinCount={$top_thickness?int($top_thickness/$layer_height+0.5):$top_layers} -downSkinCount={$bottom_thickness?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -insetCount={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} -retractionAmount={$retraction_length*1000} -printSpeed=$print_speed -initialLayerSpeed=$first_layer_speed -skinSpeed={$perimeter_speed?$perimeter_speed*0.5:$print_speed*0.8} -insetXSpeed=$perimeter_speed -inset0Speed=$perimeter_speed -infillSpeed={$infill_speed?$infill_speed:$print_speed*1.5} -retractionSpeed={$retract_speed?$retract_speed:40} -moveSpeed=$travel_speed -supportEverywhere={'$support' eq 'bed' ? 0 : 1 } -supportAngle={'$support'ne'none'?50:-1} diff --git a/software/Print3r/settings/slicer/cura-slicer/base.ini b/software/Print3r/settings/slicer/cura-slicer/base.ini deleted file mode 100644 index 7ef6e53a..00000000 --- a/software/Print3r/settings/slicer/cura-slicer/base.ini +++ /dev/null @@ -1,531 +0,0 @@ -acceleration_enabled="False" -acceleration_infill="3000" -acceleration_ironing="3000" -acceleration_layer_0="3000" -acceleration_prime_tower="3000" -acceleration_print="3000" -acceleration_print_layer_0="3000" -acceleration_roofing="3000" -acceleration_skirt_brim="3000" -acceleration_support="3000" -acceleration_support_bottom="3000" -acceleration_support_infill="3000" -acceleration_support_interface="3000" -acceleration_support_roof="3000" -acceleration_topbottom="3000" -acceleration_travel="5000" -acceleration_travel_layer_0="5000.0" -acceleration_wall="3000" -acceleration_wall_0="3000" -acceleration_wall_x="3000" -adaptive_layer_height_enabled="False" -adaptive_layer_height_threshold="200.0" -adaptive_layer_height_variation="0.1" -adaptive_layer_height_variation_step="0.01" -adhesion_extruder_nr="0" -adhesion_type="skirt" -alternate_carve_order="True" -alternate_extra_perimeter="False" -anti_overhang_mesh="False" -blackmagic="0" -bottom_layers="2" -bottom_skin_expand_distance="1.0" -bottom_skin_preshrink="1.0" -bottom_thickness="0.8" -bridge_enable_more_layers="True" -bridge_fan_speed="100" -bridge_fan_speed_2="0" -bridge_fan_speed_3="0" -bridge_settings_enabled="False" -bridge_skin_density="100" -bridge_skin_density_2="75" -bridge_skin_density_3="80" -bridge_skin_material_flow="60" -bridge_skin_material_flow_2="100" -bridge_skin_material_flow_3="110" -bridge_skin_speed="15.0" -bridge_skin_speed_2="15.0" -bridge_skin_speed_3="15.0" -bridge_skin_support_threshold="50" -bridge_wall_coast="100" -bridge_wall_material_flow="50" -bridge_wall_min_length="5" -bridge_wall_speed="15.0" -brim_line_count="20" -brim_outside_only="True" -brim_width="8.0" -carve_multiple_volumes="False" -center_object="False" -coasting_enable="False" -coasting_min_volume="0.8" -coasting_speed="90" -coasting_volume="0.064" -command_line_settings="0" -conical_overhang_angle="50" -conical_overhang_enabled="False" -connect_infill_polygons="False" -connect_skin_polygons="False" -cool_fan_enabled="True" -cool_fan_full_at_height="0.35" -cool_fan_full_layer="2" -cool_fan_speed="100.0" -cool_fan_speed_0="0" -cool_fan_speed_max="100.0" -cool_fan_speed_min="100.0" -cool_lift_head="False" -cool_min_layer_time="5" -cool_min_layer_time_fan_speed_max="10" -cool_min_speed="10" -cooling="0" -cross_infill_pocket_size="4.0" -cutting_mesh="False" -date="14-10-2018" -day="Sun" -default_material_bed_temperature="60" -default_material_print_temperature="210" -draft_shield_dist="10" -draft_shield_enabled="False" -draft_shield_height="10" -draft_shield_height_limitation="full" -dual="0" -expand_skins_expand_distance="1.0" -experimental="0" -extruder_nr="0" -extruder_prime_pos_abs="False" -extruder_prime_pos_x="0" -extruder_prime_pos_y="0" -extruder_prime_pos_z="0" -extruders_enabled_count="1" -fill_outline_gaps="False" -fill_perimeter_gaps="everywhere" -filter_out_tiny_gaps="True" -flow_rate_extrusion_offset_factor="100" -flow_rate_max_extrusion_offset="0" -gantry_height="55" -gradual_infill_step_height="1.5" -gradual_infill_steps="0" -gradual_support_infill_step_height="1" -gradual_support_infill_steps="0" -infill="0" -infill_angles="[ ]" -infill_before_walls="True" -infill_enable_travel_optimization="False" -infill_extruder_nr="-1" -infill_line_distance="4.0" -infill_line_width="0.5" -infill_mesh="False" -infill_mesh_order="0" -infill_multiplier="1" -infill_offset_x="0" -infill_offset_y="0" -infill_overlap="10" -infill_overlap_mm="0.05" -infill_pattern="grid" -infill_sparse_density="20" -infill_sparse_thickness="0.4" -infill_support_angle="40" -infill_support_enabled="False" -infill_wall_line_count="0" -infill_wipe_dist="0.125" -initial_extruder_nr="0" -initial_layer_line_width_factor="100.0" -ironing_enabled="False" -ironing_flow="10.0" -ironing_inset="0.25" -ironing_line_spacing="0.1" -ironing_only_highest_layer="False" -ironing_pattern="zigzag" -jerk_enabled="False" -jerk_infill="20" -jerk_ironing="20" -jerk_layer_0="20" -jerk_prime_tower="20" -jerk_print="20" -jerk_print_layer_0="20" -jerk_roofing="20" -jerk_skirt_brim="20" -jerk_support="20" -jerk_support_bottom="20" -jerk_support_infill="20" -jerk_support_interface="20" -jerk_support_roof="20" -jerk_topbottom="20" -jerk_travel="30" -jerk_travel_layer_0="30.0" -jerk_wall="20" -jerk_wall_0="20" -jerk_wall_x="20" -layer_0_z_overlap="0.15" -layer_height="0.4" -layer_height_0="0.35" -layer_start_x="0.0" -layer_start_y="0.0" -limit_support_retractions="True" -line_width="0.5" -machine_acceleration="4000" -machine_buildplate_type="glass" -machine_center_is_zero="False" -machine_depth="200" -machine_disallowed_areas="[]" -machine_end_gcode="M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\n;G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nG28 X0\nG90\nG1 Y290 F9000\nM84 ;steppers off\nG90 ;absolute positioning" -machine_endstop_positive_direction_x="False" -machine_endstop_positive_direction_y="False" -machine_endstop_positive_direction_z="True" -machine_extruder_count="1" -machine_extruder_cooling_fan_number="0" -machine_extruder_end_pos_abs="False" -machine_extruder_end_pos_x="0" -machine_extruder_end_pos_y="0" -machine_extruder_start_pos_abs="False" -machine_extruder_start_pos_x="0" -machine_extruder_start_pos_y="0" -machine_feeder_wheel_diameter="10.0" -machine_filament_park_distance="16" -machine_firmware_retract="False" -machine_gcode_flavor="RepRap (Marlin/Sprinter)" -machine_head_polygon="[[-75, -18], [-75, 35], [18, 35], [18, -18]]" -machine_head_with_fans_polygon="[[-75, -18], [-75, 35], [18, 35], [18, -18]]" -machine_heat_zone_length="16" -machine_heated_bed="True" -machine_height="210" -machine_max_acceleration_e="10000" -machine_max_acceleration_x="9000" -machine_max_acceleration_y="9000" -machine_max_acceleration_z="100" -machine_max_feedrate_e="299792458000" -machine_max_feedrate_x="500" -machine_max_feedrate_y="500" -machine_max_feedrate_z="5" -machine_max_jerk_e="5.0" -machine_max_jerk_xy="20.0" -machine_max_jerk_z="0.4" -machine_min_cool_heat_time_window="50.0" -machine_minimum_feedrate="0.0" -machine_name="Prusa i3" -machine_nozzle_cool_down_speed="2.0" -machine_nozzle_expansion_angle="45" -machine_nozzle_head_distance="3" -machine_nozzle_heat_up_speed="2.0" -machine_nozzle_id="unknown" -machine_nozzle_offset_x="0" -machine_nozzle_offset_y="0" -machine_nozzle_size="0.5" -machine_nozzle_temp_enabled="True" -machine_nozzle_tip_outer_diameter="1" -machine_settings="0" -machine_shape="rectangular" -machine_show_variants="False" -machine_start_gcode="G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nM206 X0 Y0\n;M92 X100 Y100 E95 ; metal 16 teeth pulley\n;M92 Z3200; M6 z-axis\n;G1 Z15; move up\nG28 X0 Y0 ;move X/Y to min endstops\nG1 X40; move away to avoid crashing into bed mount\nG28 Z0 ;move Z to min endstops\n;G1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 Y-3.0 F1000.0 ; go outside print area\nG1 X10.0 E9.0 F1000.0 ; intro line\nG1 X60.0 E21.5 F1000.0 ; intro line\nG1 X20.0 E30.0 F1000\nG92 E0 ;zero the extruded length again\n;G1 F9000\n;Put printing message on LCD screen\nM117 Printing..." -machine_steps_per_mm_e="1600" -machine_steps_per_mm_x="50" -machine_steps_per_mm_y="50" -machine_steps_per_mm_z="50" -machine_use_extruder_offset_to_offset_coords="True" -machine_width="210" -magic_fuzzy_skin_enabled="False" -magic_fuzzy_skin_point_density="1.25" -magic_fuzzy_skin_point_dist="0.8" -magic_fuzzy_skin_thickness="0.3" -magic_mesh_surface_mode="normal" -magic_spiralize="False" -material="0" -material_adhesion_tendency="10" -material_bed_temp_prepend="True" -material_bed_temp_wait="True" -material_bed_temperature="0" -material_bed_temperature_layer_0="0" -material_diameter="1.75" -material_extrusion_cool_down_speed="0.7" -material_final_print_temperature="195" -material_flow="100" -material_flow_dependent_temperature="False" -material_flow_layer_0="100" -material_flow_temp_graph="[[3.5,200],[7.0,240]]" -material_guid="0ff92885-617b-4144-a03c-9989872454bc" -material_initial_print_temperature="200" -material_print_temp_prepend="True" -material_print_temp_wait="True" -material_print_temperature="210" -material_print_temperature_layer_0="210" -material_shrinkage_percentage="0" -material_standby_temperature="175" -material_surface_energy="100" -max_feedrate_z_override="0" -max_skin_angle_for_expansion="90" -mesh_position_x="0" -mesh_position_y="0" -mesh_position_z="0" -mesh_rotation_matrix="[[1,0,0], [0,1,0], [0,0,1]]" -meshfix="0" -meshfix_extensive_stitching="False" -meshfix_keep_open_polygons="False" -meshfix_maximum_resolution="0.01" -meshfix_maximum_travel_resolution="0.02" -meshfix_union_all="True" -meshfix_union_all_remove_holes="False" -min_infill_area="0" -min_skin_width_for_expansion="4.898587196589413e-17" -minimum_polygon_circumference="1.0" -mold_angle="40" -mold_enabled="False" -mold_roof_height="0.5" -mold_width="5" -multiple_mesh_overlap="0.15" -nozzle_disallowed_areas="[]" -ooze_shield_angle="60" -ooze_shield_dist="2" -ooze_shield_enabled="False" -optimize_wall_printing_order="False" -outer_inset_first="False" -platform_adhesion="0" -prime_blob_enable="True" -prime_tower_circular="True" -prime_tower_enable="False" -prime_tower_flow="100" -prime_tower_line_width="0.5" -prime_tower_min_volume="6" -prime_tower_position_x="375.3" -prime_tower_position_y="275.3" -prime_tower_size="20" -prime_tower_wipe_enabled="True" -print_bed_temperature="0" -print_sequence="all_at_once" -print_temperature="210" -raft_acceleration="3000" -raft_airgap="0.3" -raft_base_acceleration="3000" -raft_base_fan_speed="0" -raft_base_jerk="20" -raft_base_line_spacing="2.0" -raft_base_line_width="1.0" -raft_base_speed="22.5" -raft_base_thickness="0.42" -raft_fan_speed="0" -raft_interface_acceleration="3000" -raft_interface_fan_speed="0" -raft_interface_jerk="20" -raft_interface_line_spacing="1.2" -raft_interface_line_width="1.0" -raft_interface_speed="22.5" -raft_interface_thickness="0.6000000000000001" -raft_jerk="20" -raft_margin="15" -raft_smoothing="5" -raft_speed="30.0" -raft_surface_acceleration="3000" -raft_surface_fan_speed="0" -raft_surface_jerk="20" -raft_surface_layers="2" -raft_surface_line_spacing="0.5" -raft_surface_line_width="0.5" -raft_surface_speed="30.0" -raft_surface_thickness="0.4" -relative_extrusion="False" -remove_empty_first_layers="True" -resolution="0" -retract_at_layer_change="False" -retraction_amount="6.5" -retraction_combing="all" -retraction_combing_max_distance="0" -retraction_count_max="90" -retraction_enable="True" -retraction_extra_prime_amount="0" -retraction_extrusion_window="6.5" -retraction_hop="1" -retraction_hop_after_extruder_switch="True" -retraction_hop_enabled="False" -retraction_hop_only_when_collides="False" -retraction_min_travel="1.0" -retraction_prime_speed="35" -retraction_retract_speed="35" -retraction_speed="35" -roofing_angles="[ ]" -roofing_extruder_nr="-1" -roofing_layer_count="0" -roofing_line_width="0.5" -roofing_pattern="lines" -shell="0" -skin_alternate_rotation="False" -skin_angles="[ ]" -skin_line_width="0.5" -skin_no_small_gaps_heuristic="True" -skin_outline_count="1" -skin_overlap="5" -skin_overlap_mm="0.025" -skin_preshrink="1.0" -skirt_brim_line_width="0.5" -skirt_brim_minimal_length="250" -skirt_brim_speed="30.0" -skirt_gap="3" -skirt_line_count="1" -slicing_tolerance="middle" -smooth_spiralized_contours="True" -spaghetti_flow="20" -spaghetti_infill_enabled="False" -spaghetti_infill_extra_volume="0" -spaghetti_infill_stepped="True" -spaghetti_inset="0.2" -spaghetti_max_height="2.0" -spaghetti_max_infill_angle="10" -speed="0" -speed_equalize_flow_enabled="False" -speed_equalize_flow_max="150" -speed_infill="80" -speed_ironing="20.0" -speed_layer_0="30.0" -speed_prime_tower="60" -speed_print="60" -speed_print_layer_0="30.0" -speed_roofing="30.0" -speed_slowdown_layers="2" -speed_support="60" -speed_support_bottom="40.0" -speed_support_infill="60" -speed_support_interface="40.0" -speed_support_roof="40.0" -speed_topbottom="30.0" -speed_travel="120" -speed_travel_layer_0="60.0" -speed_wall="30.0" -speed_wall_0="30.0" -speed_wall_x="60.0" -start_layers_at_same_position="False" -sub_div_rad_add="0.5" -support="0" -support_angle="50" -support_bottom_density="100" -support_bottom_distance="0" -support_bottom_enable="False" -support_bottom_extruder_nr="0" -support_bottom_height="1" -support_bottom_line_distance="0.5" -support_bottom_line_width="0.5" -support_bottom_pattern="concentric" -support_bottom_stair_step_height="0.3" -support_bottom_stair_step_width="5.0" -support_conical_angle="30" -support_conical_enabled="False" -support_conical_min_width="5.0" -support_connect_zigzags="True" -support_enable="False" -support_extruder_nr="0" -support_extruder_nr_layer_0="0" -support_fan_enable="False" -support_infill_angle="0" -support_infill_extruder_nr="0" -support_infill_rate="15" -support_infill_sparse_thickness="0.4" -support_initial_layer_line_distance="3.3333333333333335" -support_interface_density="100" -support_interface_enable="False" -support_interface_extruder_nr="0" -support_interface_height="1" -support_interface_line_width="0.5" -support_interface_pattern="concentric" -support_interface_skip_height="0.3" -support_join_distance="2.0" -support_line_distance="3.3333333333333335" -support_line_width="0.5" -support_mesh="False" -support_mesh_drop_down="True" -support_minimal_diameter="3.0" -support_offset="0.2" -support_pattern="zigzag" -support_roof_density="100" -support_roof_enable="False" -support_roof_extruder_nr="0" -support_roof_height="1" -support_roof_line_distance="0.5" -support_roof_line_width="0.5" -support_roof_pattern="concentric" -support_skip_some_zags="False" -support_skip_zag_per_mm="20" -support_supported_skin_fan_speed="100" -support_top_distance="0.1" -support_tower_diameter="3.0" -support_tower_roof_angle="65" -support_tree_angle="40" -support_tree_branch_diameter="2" -support_tree_branch_diameter_angle="5" -support_tree_branch_distance="1" -support_tree_collision_resolution="0.25" -support_tree_enable="False" -support_tree_wall_count="1" -support_tree_wall_thickness="0.5" -support_type="buildplate" -support_use_towers="True" -support_wall_count="0" -support_xy_distance="0.7" -support_xy_distance_overhang="0.25" -support_xy_overrides_z="z_overrides_xy" -support_z_distance="0.1" -support_zag_skip_count="8" -switch_extruder_prime_speed="20" -switch_extruder_retraction_amount="16" -switch_extruder_retraction_speed="20" -switch_extruder_retraction_speeds="20" -time="09:46:45" -top_bottom_extruder_nr="-1" -top_bottom_pattern="lines" -top_bottom_pattern_0="lines" -top_bottom_thickness="0.8" -top_layers="2" -top_skin_expand_distance="1.0" -top_skin_preshrink="1.0" -top_thickness="0.8" -travel="0" -travel_avoid_distance="0.625" -travel_avoid_other_parts="True" -travel_avoid_supports="False" -travel_compensate_overlapping_walls_0_enabled="True" -travel_compensate_overlapping_walls_enabled="True" -travel_compensate_overlapping_walls_x_enabled="True" -travel_retract_before_outer_wall="False" -wall_0_extruder_nr="-1" -wall_0_inset="0" -wall_0_wipe_dist="0.25" -wall_extruder_nr="-1" -wall_line_count="2" -wall_line_width="0.5" -wall_line_width_0="0.5" -wall_line_width_x="0.5" -wall_min_flow="0" -wall_min_flow_retract="False" -wall_overhang_angle="90" -wall_overhang_speed_factor="100" -wall_thickness="0.8" -wall_x_extruder_nr="-1" -wireframe_bottom_delay="0" -wireframe_drag_along="0.6" -wireframe_enabled="False" -wireframe_fall_down="0.5" -wireframe_flat_delay="0.1" -wireframe_flow="100" -wireframe_flow_connection="100" -wireframe_flow_flat="100" -wireframe_height="3" -wireframe_nozzle_clearance="1" -wireframe_printspeed="5" -wireframe_printspeed_bottom="5" -wireframe_printspeed_down="5" -wireframe_printspeed_flat="5" -wireframe_printspeed_up="5" -wireframe_roof_drag_along="0.8" -wireframe_roof_fall_down="2" -wireframe_roof_inset="3" -wireframe_roof_outer_delay="0.2" -wireframe_straight_before_down="20" -wireframe_strategy="compensate" -wireframe_top_delay="0" -wireframe_top_jump="0.6" -wireframe_up_half_speed="0.3" -xy_offset="0" -xy_offset_layer_0="0" -z_seam_corner="z_seam_corner_inner" -z_seam_relative="False" -z_seam_type="sharpest_corner" -z_seam_x="190.0" -z_seam_y="900" -zig_zaggify_infill="False" -zig_zaggify_support="False" -machine_extruder_start_code="" diff --git a/software/Print3r/settings/slicer/cura-slicer/map.ini b/software/Print3r/settings/slicer/cura-slicer/map.ini deleted file mode 100644 index 266160e0..00000000 --- a/software/Print3r/settings/slicer/cura-slicer/map.ini +++ /dev/null @@ -1,49 +0,0 @@ -infill_line_distance={$fill_density==0?0:$nozzle_diameter*100/$fill_density*2} -machine_nozzle_diameter=$nozzle_diameter -machine_material_diameter=$filament_diameter -material_diameter=$filament_diameter -top_layers={$top_thickness>0?int($top_thickness/$layer_height+0.5):$top_layers} -bottom_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -initial_bottom_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -wall_line_count={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} -retraction_amount=$retraction_length -machine_start_gcode=$start_gcode -machine_end_gcode=$end_gcode -retraction_amount=$retraction_length -layer_height_0={$first_layer_height>0?$first_layer_height:$layer_height} -speed_print_layer_0=$first_layer_speed -material_bed_temperature_layer_0={$first_layer_bed_temparature?$first_layer_bed_temperature:$bed_temperature} -line_width=$nozzle_diameter -infill_line_width=$nozzle_diameter -prime_tower_line_width=$nozzle_diameter -raft_surface_line_width=$nozzle_diameter -roofing_line_width=$nozzle_diameter -skin_line_width=$nozzle_diameter -skirt_brim_line_width=$nozzle_diameter -support_bottom_line_width=$nozzle_diameter -support_interface_line_width=$nozzle_diameter -support_line_width=$nozzle_diameter -support_roof_line_width=$nozzle_diameter -wall_line_width_0=$nozzle_diameter -wall_line_width=$nozzle_diameter -wall_line_width_x=$nozzle_diameter -#default_material_print_temperature=$temperature -#default_material_print_bed_temperature=$bed_temperature -material_print_temperature=$temperature -material_print_bed_temperature=$bed_temperature -material_bed_temperature_layer_0=$bed_temperature -material_print_temperature_layer_0=$first_layer_temperature -#print_temperature=$temperature -#print_bed_temperature=$bed_temperature -speed_print=$print_speed -speed_wall={$perimeter_speed?$perimeter_speed:$print_speed*0.8} -speed_infill={$infill_speed?$infill_speed:$print_speed*1.5} -retraction_speed={$retract_speed?$retract_speed:40} -speed_travel=$travel_speed -adhesion_type={$rafts>0?"raft":$brims>0?"brim":"skirt"} -brim_line_count=$brims -skirt_line_count=$skirts -raft_surface_layers=$rafts -support_enable={'$support' ne 'none' && '$support' ne '0' ? 1 : 0} -support_type={'$support' eq "bed"?"buildplate":"everywhere"} -z_seam_type={'$seam' eq 'aligned' ? 'sharpest_corner' : '$seam' eq 'nearest' ? "shortest" : '$seam' eq 'rear'? 'back' : '$seam'} diff --git a/software/Print3r/settings/slicer/cura/base.ini b/software/Print3r/settings/slicer/cura/base.ini deleted file mode 100644 index bad474e9..00000000 --- a/software/Print3r/settings/slicer/cura/base.ini +++ /dev/null @@ -1,555 +0,0 @@ -acceleration_enabled="False" -acceleration_infill="3000" -acceleration_ironing="3000" -acceleration_layer_0="3000" -acceleration_prime_tower="3000" -acceleration_print="3000" -acceleration_print_layer_0="3000" -acceleration_roofing="3000" -acceleration_skirt_brim="3000" -acceleration_support="3000" -acceleration_support_bottom="3000" -acceleration_support_infill="3000" -acceleration_support_interface="3000" -acceleration_support_roof="3000" -acceleration_topbottom="3000" -acceleration_travel="5000" -acceleration_travel_layer_0="5000.0" -acceleration_wall="3000" -acceleration_wall_0="3000" -acceleration_wall_x="3000" -adaptive_layer_height_enabled="False" -adaptive_layer_height_threshold="200.0" -adaptive_layer_height_variation="0.1" -adaptive_layer_height_variation_step="0.01" -adhesion_extruder_nr="0" -adhesion_type="skirt" -alternate_carve_order="True" -alternate_extra_perimeter="False" -anti_overhang_mesh="False" -blackmagic="0" -bottom_layers="2" -bottom_skin_expand_distance="1.0" -bottom_skin_preshrink="1.0" -bottom_thickness="0.8" -bridge_enable_more_layers="True" -bridge_fan_speed="100" -bridge_fan_speed_2="0" -bridge_fan_speed_3="0" -bridge_settings_enabled="False" -bridge_skin_density="100" -bridge_skin_density_2="75" -bridge_skin_density_3="80" -bridge_skin_material_flow="60" -bridge_skin_material_flow_2="100" -bridge_skin_material_flow_3="110" -bridge_skin_speed="15.0" -bridge_skin_speed_2="15.0" -bridge_skin_speed_3="15.0" -bridge_skin_support_threshold="50" -bridge_wall_coast="100" -bridge_wall_material_flow="50" -bridge_wall_min_length="5" -bridge_wall_speed="15.0" -brim_line_count="20" -brim_outside_only="True" -brim_width="8.0" -carve_multiple_volumes="False" -center_object="False" -coasting_enable="False" -coasting_min_volume="0.8" -coasting_speed="90" -coasting_volume="0.064" -command_line_settings="0" -conical_overhang_angle="50" -conical_overhang_enabled="False" -connect_infill_polygons="False" -connect_skin_polygons="False" -cool_fan_enabled="True" -cool_fan_full_at_height="0.35" -cool_fan_full_layer="2" -cool_fan_speed="100.0" -cool_fan_speed_0="0" -cool_fan_speed_max="100.0" -cool_fan_speed_min="100.0" -cool_lift_head="False" -cool_min_layer_time="5" -cool_min_layer_time_fan_speed_max="10" -cool_min_speed="10" -cooling="0" -cross_infill_pocket_size="4.0" -cutting_mesh="False" -date="14-10-2018" -day="Sun" -default_material_bed_temperature="60" -default_material_print_temperature="210" -draft_shield_dist="10" -draft_shield_enabled="False" -draft_shield_height="10" -draft_shield_height_limitation="full" -dual="0" -expand_skins_expand_distance="1.0" -experimental="0" -extruder_nr="0" -extruder_prime_pos_abs="False" -extruder_prime_pos_x="0" -extruder_prime_pos_y="0" -extruder_prime_pos_z="0" -extruders_enabled_count="1" -fill_outline_gaps="False" -fill_perimeter_gaps="everywhere" -filter_out_tiny_gaps="True" -flow_rate_extrusion_offset_factor="100" -flow_rate_max_extrusion_offset="0" -gantry_height="55" -gradual_infill_step_height="1.5" -gradual_infill_steps="0" -gradual_support_infill_step_height="1" -gradual_support_infill_steps="0" -infill="0" -infill_angles="[ ]" -infill_before_walls="True" -infill_enable_travel_optimization="False" -infill_extruder_nr="-1" -infill_line_distance="4.0" -infill_line_width="0.5" -infill_mesh="False" -infill_mesh_order="0" -infill_multiplier="1" -infill_offset_x="0" -infill_offset_y="0" -infill_overlap="10" -infill_overlap_mm="0.05" -infill_pattern="grid" -infill_sparse_density="20" -infill_sparse_thickness="0.4" -infill_support_angle="40" -infill_support_enabled="False" -infill_wall_line_count="0" -infill_wipe_dist="0.125" -initial_extruder_nr="0" -initial_layer_line_width_factor="100.0" -ironing_enabled="False" -ironing_flow="10.0" -ironing_inset="0.25" -ironing_line_spacing="0.1" -ironing_only_highest_layer="False" -ironing_pattern="zigzag" -jerk_enabled="False" -jerk_infill="20" -jerk_ironing="20" -jerk_layer_0="20" -jerk_prime_tower="20" -jerk_print="20" -jerk_print_layer_0="20" -jerk_roofing="20" -jerk_skirt_brim="20" -jerk_support="20" -jerk_support_bottom="20" -jerk_support_infill="20" -jerk_support_interface="20" -jerk_support_roof="20" -jerk_topbottom="20" -jerk_travel="30" -jerk_travel_layer_0="30.0" -jerk_wall="20" -jerk_wall_0="20" -jerk_wall_x="20" -layer_0_z_overlap="0.15" -layer_height="0.4" -layer_height_0="0.35" -layer_start_x="0.0" -layer_start_y="0.0" -limit_support_retractions="True" -line_width="0.5" -machine_acceleration="4000" -machine_buildplate_type="glass" -machine_center_is_zero="False" -machine_depth="200" -machine_disallowed_areas="[]" -machine_end_gcode="M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\n;G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nG28 X0\nG90\nG1 Y290 F9000\nM84 ;steppers off\nG90 ;absolute positioning" -machine_endstop_positive_direction_x="False" -machine_endstop_positive_direction_y="False" -machine_endstop_positive_direction_z="True" -machine_extruder_count="1" -machine_extruder_cooling_fan_number="0" -machine_extruder_end_pos_abs="False" -machine_extruder_end_pos_x="0" -machine_extruder_end_pos_y="0" -machine_extruder_start_pos_abs="False" -machine_extruder_start_pos_x="0" -machine_extruder_start_pos_y="0" -machine_feeder_wheel_diameter="10.0" -machine_filament_park_distance="16" -machine_firmware_retract="False" -machine_gcode_flavor="RepRap (Marlin/Sprinter)" -machine_head_polygon="[[-75, -18], [-75, 35], [18, 35], [18, -18]]" -machine_head_with_fans_polygon="[[-75, -18], [-75, 35], [18, 35], [18, -18]]" -machine_heat_zone_length="16" -machine_heated_bed="True" -machine_height="210" -machine_max_acceleration_e="10000" -machine_max_acceleration_x="9000" -machine_max_acceleration_y="9000" -machine_max_acceleration_z="100" -machine_max_feedrate_e="299792458000" -machine_max_feedrate_x="500" -machine_max_feedrate_y="500" -machine_max_feedrate_z="5" -machine_max_jerk_e="5.0" -machine_max_jerk_xy="20.0" -machine_max_jerk_z="0.4" -machine_min_cool_heat_time_window="50.0" -machine_minimum_feedrate="0.0" -machine_name="Prusa i3" -machine_nozzle_cool_down_speed="2.0" -machine_nozzle_expansion_angle="45" -machine_nozzle_head_distance="3" -machine_nozzle_heat_up_speed="2.0" -machine_nozzle_id="unknown" -machine_nozzle_offset_x="0" -machine_nozzle_offset_y="0" -machine_nozzle_size="0.5" -machine_nozzle_temp_enabled="True" -machine_nozzle_tip_outer_diameter="1" -machine_settings="0" -machine_shape="rectangular" -machine_show_variants="False" -machine_start_gcode="G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nM206 X0 Y0\n;M92 X100 Y100 E95 ; metal 16 teeth pulley\n;M92 Z3200; M6 z-axis\n;G1 Z15; move up\nG28 X0 Y0 ;move X/Y to min endstops\nG1 X40; move away to avoid crashing into bed mount\nG28 Z0 ;move Z to min endstops\n;G1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 Y-3.0 F1000.0 ; go outside print area\nG1 X10.0 E9.0 F1000.0 ; intro line\nG1 X60.0 E21.5 F1000.0 ; intro line\nG1 X20.0 E30.0 F1000\nG92 E0 ;zero the extruded length again\n;G1 F9000\n;Put printing message on LCD screen\nM117 Printing..." -machine_steps_per_mm_e="1600" -machine_steps_per_mm_x="50" -machine_steps_per_mm_y="50" -machine_steps_per_mm_z="50" -machine_use_extruder_offset_to_offset_coords="True" -machine_width="210" -magic_fuzzy_skin_enabled="False" -magic_fuzzy_skin_point_density="1.25" -magic_fuzzy_skin_point_dist="0.8" -magic_fuzzy_skin_thickness="0.3" -magic_mesh_surface_mode="normal" -magic_spiralize="False" -material="0" -material_adhesion_tendency="10" -material_bed_temp_prepend="True" -material_bed_temp_wait="True" -material_bed_temperature="0" -material_bed_temperature_layer_0="0" -material_diameter="1.75" -material_extrusion_cool_down_speed="0.7" -material_final_print_temperature="195" -material_flow="100" -material_flow_dependent_temperature="False" -material_flow_layer_0="100" -material_flow_temp_graph="[[3.5,200],[7.0,240]]" -material_guid="0ff92885-617b-4144-a03c-9989872454bc" -material_initial_print_temperature="200" -material_print_temp_prepend="True" -material_print_temp_wait="True" -material_print_temperature="210" -material_print_temperature_layer_0="210" -material_shrinkage_percentage="0" -material_standby_temperature="175" -material_surface_energy="100" -max_feedrate_z_override="0" -max_skin_angle_for_expansion="90" -mesh_position_x="0" -mesh_position_y="0" -mesh_position_z="0" -mesh_rotation_matrix="[[1,0,0], [0,1,0], [0,0,1]]" -meshfix="0" -meshfix_extensive_stitching="False" -meshfix_keep_open_polygons="False" -meshfix_maximum_resolution="0.01" -meshfix_maximum_travel_resolution="0.02" -meshfix_union_all="True" -meshfix_union_all_remove_holes="False" -min_infill_area="0" -min_skin_width_for_expansion="4.898587196589413e-17" -minimum_polygon_circumference="1.0" -mold_angle="40" -mold_enabled="False" -mold_roof_height="0.5" -mold_width="5" -multiple_mesh_overlap="0.15" -nozzle_disallowed_areas="[]" -ooze_shield_angle="60" -ooze_shield_dist="2" -ooze_shield_enabled="False" -optimize_wall_printing_order="False" -outer_inset_first="False" -platform_adhesion="0" -prime_blob_enable="True" -prime_tower_circular="True" -prime_tower_enable="False" -prime_tower_flow="100" -prime_tower_line_width="0.5" -prime_tower_min_volume="6" -prime_tower_position_x="375.3" -prime_tower_position_y="275.3" -prime_tower_size="20" -prime_tower_wipe_enabled="True" -print_bed_temperature="0" -print_sequence="all_at_once" -print_temperature="210" -raft_acceleration="3000" -raft_airgap="0.3" -raft_base_acceleration="3000" -raft_base_fan_speed="0" -raft_base_jerk="20" -raft_base_line_spacing="2.0" -raft_base_line_width="1.0" -raft_base_speed="22.5" -raft_base_thickness="0.42" -raft_fan_speed="0" -raft_interface_acceleration="3000" -raft_interface_fan_speed="0" -raft_interface_jerk="20" -raft_interface_line_spacing="1.2" -raft_interface_line_width="1.0" -raft_interface_speed="22.5" -raft_interface_thickness="0.6000000000000001" -raft_jerk="20" -raft_margin="15" -raft_smoothing="5" -raft_speed="30.0" -raft_surface_acceleration="3000" -raft_surface_fan_speed="0" -raft_surface_jerk="20" -raft_surface_layers="2" -raft_surface_line_spacing="0.5" -raft_surface_line_width="0.5" -raft_surface_speed="30.0" -raft_surface_thickness="0.4" -relative_extrusion="False" -remove_empty_first_layers="True" -resolution="0" -retract_at_layer_change="False" -retraction_amount="6.5" -retraction_combing="all" -retraction_combing_max_distance="0" -retraction_count_max="90" -retraction_enable="True" -retraction_extra_prime_amount="0" -retraction_extrusion_window="6.5" -retraction_hop="1" -retraction_hop_after_extruder_switch="True" -retraction_hop_enabled="False" -retraction_hop_only_when_collides="False" -retraction_min_travel="1.0" -retraction_prime_speed="35" -retraction_retract_speed="35" -retraction_speed="35" -roofing_angles="[ ]" -roofing_extruder_nr="-1" -roofing_layer_count="0" -roofing_line_width="0.5" -roofing_pattern="lines" -shell="0" -skin_alternate_rotation="False" -skin_angles="[ ]" -skin_line_width="0.5" -skin_no_small_gaps_heuristic="True" -skin_outline_count="1" -skin_overlap="5" -skin_overlap_mm="0.025" -skin_preshrink="1.0" -skirt_brim_line_width="0.5" -skirt_brim_minimal_length="250" -skirt_brim_speed="30.0" -skirt_gap="3" -skirt_line_count="1" -slicing_tolerance="middle" -smooth_spiralized_contours="True" -spaghetti_flow="20" -spaghetti_infill_enabled="False" -spaghetti_infill_extra_volume="0" -spaghetti_infill_stepped="True" -spaghetti_inset="0.2" -spaghetti_max_height="2.0" -spaghetti_max_infill_angle="10" -speed="0" -speed_equalize_flow_enabled="False" -speed_equalize_flow_max="150" -speed_infill="80" -speed_ironing="20.0" -speed_layer_0="30.0" -speed_prime_tower="60" -speed_print="60" -speed_print_layer_0="30.0" -speed_roofing="30.0" -speed_slowdown_layers="2" -speed_support="60" -speed_support_bottom="40.0" -speed_support_infill="60" -speed_support_interface="40.0" -speed_support_roof="40.0" -speed_topbottom="30.0" -speed_travel="120" -speed_travel_layer_0="60.0" -speed_wall="30.0" -speed_wall_0="30.0" -speed_wall_x="60.0" -start_layers_at_same_position="False" -sub_div_rad_add="0.5" -support="0" -support_angle="50" -support_bottom_density="100" -support_bottom_distance="0" -support_bottom_enable="False" -support_bottom_extruder_nr="0" -support_bottom_height="1" -support_bottom_line_distance="0.5" -support_bottom_line_width="0.5" -support_bottom_pattern="concentric" -support_bottom_stair_step_height="0.3" -support_bottom_stair_step_width="5.0" -support_conical_angle="30" -support_conical_enabled="False" -support_conical_min_width="5.0" -support_connect_zigzags="True" -support_enable="False" -support_extruder_nr="0" -support_extruder_nr_layer_0="0" -support_fan_enable="False" -support_infill_angle="0" -support_infill_extruder_nr="0" -support_infill_rate="15" -support_infill_sparse_thickness="0.4" -support_initial_layer_line_distance="3.3333333333333335" -support_interface_density="100" -support_interface_enable="False" -support_interface_extruder_nr="0" -support_interface_height="1" -support_interface_line_width="0.5" -support_interface_pattern="concentric" -support_interface_skip_height="0.3" -support_join_distance="2.0" -support_line_distance="3.3333333333333335" -support_line_width="0.5" -support_mesh="False" -support_mesh_drop_down="True" -support_minimal_diameter="3.0" -support_offset="0.2" -support_pattern="zigzag" -support_roof_density="100" -support_roof_enable="False" -support_roof_extruder_nr="0" -support_roof_height="1" -support_roof_line_distance="0.5" -support_roof_line_width="0.5" -support_roof_pattern="concentric" -support_skip_some_zags="False" -support_skip_zag_per_mm="20" -support_supported_skin_fan_speed="100" -support_top_distance="0.1" -support_tower_diameter="3.0" -support_tower_roof_angle="65" -support_tree_angle="40" -support_tree_branch_diameter="2" -support_tree_branch_diameter_angle="5" -support_tree_branch_distance="1" -support_tree_collision_resolution="0.25" -support_tree_enable="False" -support_tree_wall_count="1" -support_tree_wall_thickness="0.5" -support_type="buildplate" -support_use_towers="True" -support_wall_count="0" -support_xy_distance="0.7" -support_xy_distance_overhang="0.25" -support_xy_overrides_z="z_overrides_xy" -support_z_distance="0.1" -support_zag_skip_count="8" -switch_extruder_prime_speed="20" -switch_extruder_retraction_amount="16" -switch_extruder_retraction_speed="20" -switch_extruder_retraction_speeds="20" -time="09:46:45" -top_bottom_extruder_nr="-1" -top_bottom_pattern="lines" -top_bottom_pattern_0="lines" -top_bottom_thickness="0.8" -top_layers="2" -top_skin_expand_distance="1.0" -top_skin_preshrink="1.0" -top_thickness="0.8" -travel="0" -travel_avoid_distance="0.625" -travel_avoid_other_parts="True" -travel_avoid_supports="False" -travel_compensate_overlapping_walls_0_enabled="True" -travel_compensate_overlapping_walls_enabled="True" -travel_compensate_overlapping_walls_x_enabled="True" -travel_retract_before_outer_wall="False" -wall_0_extruder_nr="-1" -wall_0_inset="0" -wall_0_wipe_dist="0.25" -wall_extruder_nr="-1" -wall_line_count="2" -wall_line_width="0.5" -wall_line_width_0="0.5" -wall_line_width_x="0.5" -wall_min_flow="0" -wall_min_flow_retract="False" -wall_overhang_angle="90" -wall_overhang_speed_factor="100" -wall_thickness="0.8" -wall_x_extruder_nr="-1" -wireframe_bottom_delay="0" -wireframe_drag_along="0.6" -wireframe_enabled="False" -wireframe_fall_down="0.5" -wireframe_flat_delay="0.1" -wireframe_flow="100" -wireframe_flow_connection="100" -wireframe_flow_flat="100" -wireframe_height="3" -wireframe_nozzle_clearance="1" -wireframe_printspeed="5" -wireframe_printspeed_bottom="5" -wireframe_printspeed_down="5" -wireframe_printspeed_flat="5" -wireframe_printspeed_up="5" -wireframe_roof_drag_along="0.8" -wireframe_roof_fall_down="2" -wireframe_roof_inset="3" -wireframe_roof_outer_delay="0.2" -wireframe_straight_before_down="20" -wireframe_strategy="compensate" -wireframe_top_delay="0" -wireframe_top_jump="0.6" -wireframe_up_half_speed="0.3" -xy_offset="0" -xy_offset_layer_0="0" -z_seam_corner="z_seam_corner_inner" -z_seam_relative="False" -z_seam_type="sharpest_corner" -z_seam_x="190.0" -z_seam_y="900" -zig_zaggify_infill="False" -zig_zaggify_support="False" -machine_extruders_share_nozzle="false" -machine_always_write_active_tool="false" -machine_heated_build_volume="false" -retraction_hop_after_extruder_switch_height="false" -wipe_retraction_enable="false" -wipe_retraction_amount="0" -wipe_retraction_retract_speed="60" -wipe_retraction_prime_speed="60" -wipe_retraction_extra_prime_amount="60" -wipe_pause="0" -wipe_hop_enable="false" -wipe_hop_amount="0" -wipe_hop_speed="60" -wipe_brush_pos_x="0" -wipe_repeat_count="3" -wipe_move_distance="5" -max_extrusion_before_wipe="10" -clean_between_layers="false" -machine_extruders_share_heater="false" -machine_extruder_start_code="" -machine_extruder_end_code="" -support_infill_angles="[60,30]" -support_roof_angles="[60,30]" -support_bottom_angles="[60,30]" - diff --git a/software/Print3r/settings/slicer/cura/fdmprinter.def.json b/software/Print3r/settings/slicer/cura/fdmprinter.def.json deleted file mode 100644 index 823635a6..00000000 --- a/software/Print3r/settings/slicer/cura/fdmprinter.def.json +++ /dev/null @@ -1,6825 +0,0 @@ -{ - "name": "FDM Printer Base Description", - "version": 2, - "metadata": - { - "type": "machine", - "author": "Ultimaker", - "category": "Other", - "manufacturer": "Unknown", - "setting_version": 1, - "file_formats": "text/x-gcode;application/x-stl-ascii;application/x-stl-binary;application/x-wavefront-obj;application/x3g", - "visible": false, - "has_materials": true, - "preferred_material": "generic_pla", - "preferred_quality_type": "normal", - "machine_extruder_trains": - { - "0": "fdmextruder" - }, - "supports_usb_connection": true - }, - "settings": - { - "machine_settings": - { - "label": "Machine", - "type": "category", - "description": "Machine specific settings", - "icon": "category_machine", - "children": - { - "machine_name": - { - "label": "Machine Type", - "description": "The name of your 3D printer model.", - "default_value": "Unknown", - "type": "str", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_show_variants": - { - "label": "Show Machine Variants", - "description": "Whether to show the different variants of this machine, which are described in separate json files.", - "default_value": false, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_start_gcode": - { - "label": "Start G-code", - "description": "G-code commands to be executed at the very start - separated by \\n.", - "default_value": "G28 ;Home\nG1 Z15.0 F6000 ;Move the platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0", - "type": "str", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_end_gcode": - { - "label": "End G-code", - "description": "G-code commands to be executed at the very end - separated by \\n.", - "default_value": "M104 S0\nM140 S0\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84", - "type": "str", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_guid": - { - "label": "Material GUID", - "description": "GUID of the material. This is set automatically. ", - "default_value": "", - "type": "str", - "enabled": false - }, - "material_diameter": - { - "label": "Diameter", - "description": "Adjusts the diameter of the filament used. Match this value with the diameter of the used filament.", - "unit": "mm", - "type": "float", - "default_value": 2.85, - "minimum_value": "0.0001", - "minimum_value_warning": "0.4", - "maximum_value_warning": "3.5", - "enabled": "machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_bed_temp_wait": - { - "label": "Wait for Build Plate Heatup", - "description": "Whether to insert a command to wait until the build plate temperature is reached at the start.", - "default_value": true, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_print_temp_wait": - { - "label": "Wait for Nozzle Heatup", - "description": "Whether to wait until the nozzle temperature is reached at the start.", - "default_value": true, - "type": "bool", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_print_temp_prepend": - { - "label": "Include Material Temperatures", - "description": "Whether to include nozzle temperature commands at the start of the gcode. When the start_gcode already contains nozzle temperature commands Cura frontend will automatically disable this setting.", - "default_value": true, - "type": "bool", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_bed_temp_prepend": - { - "label": "Include Build Plate Temperature", - "description": "Whether to include build plate temperature commands at the start of the gcode. When the start_gcode already contains build plate temperature commands Cura frontend will automatically disable this setting.", - "default_value": true, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_width": - { - "label": "Machine Width", - "description": "The width (X-direction) of the printable area.", - "default_value": 100, - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_depth": - { - "label": "Machine Depth", - "description": "The depth (Y-direction) of the printable area.", - "default_value": 100, - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_shape": - { - "label": "Build Plate Shape", - "description": "The shape of the build plate without taking unprintable areas into account.", - "default_value": "rectangular", - "type": "enum", - "options": - { - "rectangular": "Rectangular", - "elliptic": "Elliptic" - }, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_buildplate_type": - { - "label": "Build Plate Material", - "description": "The material of the build plate installed on the printer.", - "default_value": "glass", - "type": "enum", - "options": - { - "glass": "Glass", - "aluminum": "Aluminum" - }, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_height": - { - "label": "Machine Height", - "description": "The height (Z-direction) of the printable area.", - "default_value": 100, - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_heated_bed": - { - "label": "Has Heated Build Plate", - "description": "Whether the machine has a heated build plate present.", - "default_value": false, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_center_is_zero": - { - "label": "Is Center Origin", - "description": "Whether the X/Y coordinates of the zero position of the printer is at the center of the printable area.", - "default_value": false, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_extruder_count": - { - "label": "Number of Extruders", - "description": "Number of extruder trains. An extruder train is the combination of a feeder, bowden tube, and nozzle.", - "default_value": 1, - "minimum_value": "1", - "maximum_value": "16", - "type": "int", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "extruders_enabled_count": - { - "label": "Number of Extruders that are enabled", - "description": "Number of extruder trains that are enabled; automatically set in software", - "value": "machine_extruder_count", - "default_value": 1, - "minimum_value": "1", - "maximum_value": "16", - "type": "int", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_nozzle_tip_outer_diameter": - { - "label": "Outer nozzle diameter", - "description": "The outer diameter of the tip of the nozzle.", - "unit": "mm", - "default_value": 1, - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "machine_nozzle_head_distance": - { - "label": "Nozzle length", - "description": "The height difference between the tip of the nozzle and the lowest part of the print head.", - "unit": "mm", - "default_value": 3, - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "machine_nozzle_expansion_angle": - { - "label": "Nozzle angle", - "description": "The angle between the horizontal plane and the conical part right above the tip of the nozzle.", - "unit": "°", - "type": "int", - "default_value": 45, - "maximum_value": "89", - "minimum_value": "1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_heat_zone_length": - { - "label": "Heat zone length", - "description": "The distance from the tip of the nozzle in which heat from the nozzle is transferred to the filament.", - "unit": "mm", - "default_value": 16, - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "machine_filament_park_distance": - { - "label": "Filament Park Distance", - "description": "The distance from the tip of the nozzle where to park the filament when an extruder is no longer used.", - "unit": "mm", - "default_value": 16, - "value": "machine_heat_zone_length", - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "machine_nozzle_temp_enabled": - { - "label": "Enable Nozzle Temperature Control", - "description": "Whether to control temperature from Cura. Turn this off to control nozzle temperature from outside of Cura.", - "default_value": true, - "value": "machine_gcode_flavor != \"UltiGCode\"", - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "machine_nozzle_heat_up_speed": - { - "label": "Heat up speed", - "description": "The speed (°C/s) by which the nozzle heats up averaged over the window of normal printing temperatures and the standby temperature.", - "default_value": 2.0, - "unit": "°C/s", - "type": "float", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_nozzle_cool_down_speed": - { - "label": "Cool down speed", - "description": "The speed (°C/s) by which the nozzle cools down averaged over the window of normal printing temperatures and the standby temperature.", - "default_value": 2.0, - "unit": "°C/s", - "type": "float", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_min_cool_heat_time_window": - { - "label": "Minimal Time Standby Temperature", - "description": "The minimal time an extruder has to be inactive before the nozzle is cooled. Only when an extruder is not used for longer than this time will it be allowed to cool down to the standby temperature.", - "default_value": 50.0, - "unit": "s", - "type": "float", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_gcode_flavor": - { - "label": "G-code flavour", - "description": "The type of g-code to be generated.", - "type": "enum", - "options": - { - "RepRap (Marlin/Sprinter)": "Marlin", - "RepRap (Volumetric)": "Marlin (Volumetric)", - "RepRap (RepRap)": "RepRap", - "UltiGCode": "Ultimaker 2", - "Griffin": "Griffin", - "Makerbot": "Makerbot", - "BFB": "Bits from Bytes", - "MACH3": "Mach3", - "Repetier": "Repetier" - }, - "default_value": "RepRap (Marlin/Sprinter)", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_firmware_retract": - { - "label": "Firmware Retraction", - "description": "Whether to use firmware retract commands (G10/G11) instead of using the E property in G1 commands to retract the material.", - "type": "bool", - "default_value": false, - "value": "machine_gcode_flavor == 'RepRap (Volumetric)' or machine_gcode_flavor == 'UltiGCode' or machine_gcode_flavor == 'BFB'", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_disallowed_areas": - { - "label": "Disallowed areas", - "description": "A list of polygons with areas the print head is not allowed to enter.", - "type": "polygons", - "default_value": - [ - ], - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "nozzle_disallowed_areas": - { - "label": "Nozzle Disallowed Areas", - "description": "A list of polygons with areas the nozzle is not allowed to enter.", - "type": "polygons", - "default_value": - [ - ], - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_head_polygon": - { - "label": "Machine head polygon", - "description": "A 2D silhouette of the print head (fan caps excluded).", - "type": "polygon", - "default_value": - [ - [ - -1, - 1 - ], - [ - -1, - -1 - ], - [ - 1, - -1 - ], - [ - 1, - 1 - ] - ], - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_head_with_fans_polygon": - { - "label": "Machine head & Fan polygon", - "description": "A 2D silhouette of the print head (fan caps included).", - "type": "polygon", - "default_value": - [ - [ - -20, - 10 - ], - [ - 10, - 10 - ], - [ - 10, - -10 - ], - [ - -20, - -10 - ] - ], - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "gantry_height": - { - "label": "Gantry height", - "description": "The height difference between the tip of the nozzle and the gantry system (X and Y axes).", - "default_value": 99999999999, - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_nozzle_id": - { - "label": "Nozzle ID", - "description": "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\".", - "type": "str", - "default_value": "unknown", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_nozzle_size": - { - "label": "Nozzle Diameter", - "description": "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "minimum_value": "0.001", - "maximum_value_warning": "10", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_use_extruder_offset_to_offset_coords": - { - "label": "Offset With Extruder", - "description": "Apply the extruder offset to the coordinate system.", - "type": "bool", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "extruder_prime_pos_z": - { - "label": "Extruder Prime Z Position", - "description": "The Z coordinate of the position where the nozzle primes at the start of printing.", - "type": "float", - "unit": "mm", - "default_value": 0, - "minimum_value_warning": "0", - "maximum_value": "machine_height", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "extruder_prime_pos_abs": - { - "label": "Absolute Extruder Prime Position", - "description": "Make the extruder prime position absolute rather than relative to the last-known location of the head.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_max_feedrate_x": - { - "label": "Maximum Speed X", - "description": "The maximum speed for the motor of the X-direction.", - "unit": "mm/s", - "type": "float", - "default_value": 500, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_feedrate_y": - { - "label": "Maximum Speed Y", - "description": "The maximum speed for the motor of the Y-direction.", - "unit": "mm/s", - "type": "float", - "default_value": 500, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_feedrate_z": - { - "label": "Maximum Speed Z", - "description": "The maximum speed for the motor of the Z-direction.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_feedrate_e": - { - "label": "Maximum Feedrate", - "description": "The maximum speed of the filament.", - "unit": "mm/s", - "type": "float", - "default_value": 299792458000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_acceleration_x": - { - "label": "Maximum Acceleration X", - "description": "Maximum acceleration for the motor of the X-direction", - "unit": "mm/s²", - "type": "float", - "default_value": 9000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_acceleration_y": - { - "label": "Maximum Acceleration Y", - "description": "Maximum acceleration for the motor of the Y-direction.", - "unit": "mm/s²", - "type": "float", - "default_value": 9000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_acceleration_z": - { - "label": "Maximum Acceleration Z", - "description": "Maximum acceleration for the motor of the Z-direction.", - "unit": "mm/s²", - "type": "float", - "default_value": 100, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_acceleration_e": - { - "label": "Maximum Filament Acceleration", - "description": "Maximum acceleration for the motor of the filament.", - "unit": "mm/s²", - "type": "float", - "default_value": 10000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_acceleration": - { - "label": "Default Acceleration", - "description": "The default acceleration of print head movement.", - "unit": "mm/s²", - "type": "float", - "default_value": 4000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_jerk_xy": - { - "label": "Default X-Y Jerk", - "description": "Default jerk for movement in the horizontal plane.", - "unit": "mm/s", - "type": "float", - "default_value": 20.0, - "minimum_value": "0", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_jerk_z": - { - "label": "Default Z Jerk", - "description": "Default jerk for the motor of the Z-direction.", - "unit": "mm/s", - "type": "float", - "default_value": 0.4, - "minimum_value": "0", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_jerk_e": - { - "label": "Default Filament Jerk", - "description": "Default jerk for the motor of the filament.", - "unit": "mm/s", - "type": "float", - "default_value": 5.0, - "minimum_value": "0", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_steps_per_mm_x": - { - "label": "Steps per Millimeter (X)", - "description": "How many steps of the stepper motor will result in one millimeter of movement in the X direction.", - "type": "int", - "default_value": 50, - "minimum_value": "0.0000001", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_steps_per_mm_y": - { - "label": "Steps per Millimeter (Y)", - "description": "How many steps of the stepper motor will result in one millimeter of movement in the Y direction.", - "type": "int", - "default_value": 50, - "minimum_value": "0.0000001", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_steps_per_mm_z": - { - "label": "Steps per Millimeter (Z)", - "description": "How many steps of the stepper motor will result in one millimeter of movement in the Z direction.", - "type": "int", - "default_value": 50, - "minimum_value": "0.0000001", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_steps_per_mm_e": - { - "label": "Steps per Millimeter (E)", - "description": "How many steps of the stepper motors will result in one millimeter of extrusion.", - "type": "int", - "default_value": 1600, - "minimum_value": "0.0000001", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_endstop_positive_direction_x": - { - "label": "X Endstop in Positive Direction", - "description": "Whether the endstop of the X axis is in the positive direction (high X coordinate) or negative (low X coordinate).", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_endstop_positive_direction_y": - { - "label": "Y Endstop in Positive Direction", - "description": "Whether the endstop of the Y axis is in the positive direction (high Y coordinate) or negative (low Y coordinate).", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_endstop_positive_direction_z": - { - "label": "Z Endstop in Positive Direction", - "description": "Whether the endstop of the Z axis is in the positive direction (high Z coordinate) or negative (low Z coordinate).", - "type": "bool", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_minimum_feedrate": - { - "label": "Minimum Feedrate", - "description": "The minimal movement speed of the print head.", - "unit": "mm/s", - "type": "float", - "default_value": 0.0, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_feeder_wheel_diameter": - { - "label": "Feeder Wheel Diameter", - "description": "The diameter of the wheel that drives the material in the feeder.", - "unit": "mm", - "type": "float", - "default_value": 10.0, - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "resolution": - { - "label": "Quality", - "type": "category", - "icon": "category_layer_height", - "description": "All settings that influence the resolution of the print. These settings have a large impact on the quality (and print time)", - "children": - { - "layer_height": - { - "label": "Layer Height", - "description": "The height of each layer in mm. Higher values produce faster prints in lower resolution, lower values produce slower prints in higher resolution.", - "unit": "mm", - "type": "float", - "default_value": 0.1, - "minimum_value": "0.001", - "minimum_value_warning": "0.04", - "maximum_value_warning": "0.8 * min(extruderValues('machine_nozzle_size'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "layer_height_0": - { - "label": "Initial Layer Height", - "description": "The height of the initial layer in mm. A thicker initial layer makes adhesion to the build plate easier.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "resolve": "min(extruderValues('layer_height_0'))", - "minimum_value": "0.001", - "minimum_value_warning": "0.1", - "maximum_value_warning": "0.8 * min(extruderValues('machine_nozzle_size'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "line_width": - { - "label": "Line Width", - "description": "Width of a single line. Generally, the width of each line should correspond to the width of the nozzle. However, slightly reducing this value could produce better prints.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "machine_nozzle_size", - "settable_per_mesh": true, - "children": - { - "wall_line_width": - { - "label": "Wall Line Width", - "description": "Width of a single wall line.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "value": "line_width", - "default_value": 0.4, - "type": "float", - "limit_to_extruder": "wall_0_extruder_nr if wall_x_extruder_nr == wall_0_extruder_nr else -1", - "settable_per_mesh": true, - "children": - { - "wall_line_width_0": - { - "label": "Outer Wall Line Width", - "description": "Width of the outermost wall line. By lowering this value, higher levels of detail can be printed.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "(0.1 + 0.4 * machine_nozzle_size) if outer_inset_first else 0.1 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "value": "wall_line_width", - "type": "float", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "wall_line_width_x": - { - "label": "Inner Wall(s) Line Width", - "description": "Width of a single wall line for all wall lines except the outermost one.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "value": "wall_line_width", - "type": "float", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "skin_line_width": - { - "label": "Top/Bottom Line Width", - "description": "Width of a single top/bottom line.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "line_width", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "infill_line_width": - { - "label": "Infill Line Width", - "description": "Width of a single infill line.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "3 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "line_width", - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "skirt_brim_line_width": - { - "label": "Skirt/Brim Line Width", - "description": "Width of a single skirt or brim line.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "3 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "line_width", - "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_line_width": - { - "label": "Support Line Width", - "description": "Width of a single support structure line.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "3 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "enabled": "support_enable", - "value": "line_width", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_interface_line_width": - { - "label": "Support Interface Line Width", - "description": "Width of a single line of support roof or floor.", - "unit": "mm", - "default_value": 0.4, - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "type": "float", - "enabled": "support_enable and support_interface_enable", - "limit_to_extruder": "support_interface_extruder_nr", - "value": "line_width", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_line_width": - { - "label": "Support Roof Line Width", - "description": "Width of a single support roof line.", - "unit": "mm", - "default_value": 0.4, - "minimum_value": "0.001", - "minimum_value_warning": "0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "type": "float", - "enabled": "support_enable and support_roof_enable", - "limit_to_extruder": "support_roof_extruder_nr", - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_line_width')", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_bottom_line_width": - { - "label": "Support Floor Line Width", - "description": "Width of a single support floor line.", - "unit": "mm", - "default_value": 0.4, - "minimum_value": "0.001", - "minimum_value_warning": "0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "type": "float", - "enabled": "support_enable and support_bottom_enable", - "limit_to_extruder": "support_bottom_extruder_nr", - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_line_width')", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "prime_tower_line_width": - { - "label": "Prime Tower Line Width", - "description": "Width of a single prime tower line.", - "type": "float", - "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 0.4, - "value": "line_width", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "initial_layer_line_width_factor": - { - "label": "Initial Layer Line Width", - "description": "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion.", - "type": "float", - "unit": "%", - "default_value": 100.0, - "minimum_value": "0.001", - "maximum_value_warning": "150", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - } - } - }, - "shell": - { - "label": "Shell", - "icon": "category_shell", - "description": "Shell", - "type": "category", - "children": - { - "wall_extruder_nr": - { - "label": "Wall Extruder", - "description": "The extruder train used for printing the walls. This is used in multi-extrusion.", - "type": "optional_extruder", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1", - "children": { - "wall_0_extruder_nr": - { - "label": "Outer Wall Extruder", - "description": "The extruder train used for printing the outer wall. This is used in multi-extrusion.", - "type": "optional_extruder", - "value": "wall_extruder_nr", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1" - }, - "wall_x_extruder_nr": - { - "label": "Inner Wall Extruder", - "description": "The extruder train used for printing the inner walls. This is used in multi-extrusion.", - "type": "optional_extruder", - "value": "wall_extruder_nr", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1" - } - } - }, - "wall_thickness": - { - "label": "Wall Thickness", - "description": "The thickness of the walls in the horizontal direction. This value divided by the wall line width defines the number of walls.", - "unit": "mm", - "default_value": 0.8, - "minimum_value": "0", - "minimum_value_warning": "line_width", - "maximum_value_warning": "10 * line_width", - "type": "float", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true, - "children": - { - "wall_line_count": - { - "label": "Wall Line Count", - "description": "The number of walls. When calculated by the wall thickness, this value is rounded to a whole number.", - "default_value": 2, - "minimum_value": "0", - "minimum_value_warning": "1", - "maximum_value_warning": "10", - "type": "int", - "value": "1 if magic_spiralize else max(1, round((wall_thickness - wall_line_width_0) / wall_line_width_x) + 1) if wall_thickness != 0 else 0", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "wall_0_wipe_dist": - { - "label": "Outer Wall Wipe Distance", - "description": "Distance of a travel move inserted after the outer wall, to hide the Z seam better.", - "unit": "mm", - "type": "float", - "default_value": 0.2, - "value": "machine_nozzle_size / 2", - "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size * 2", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "roofing_extruder_nr": - { - "label": "Top Surface Skin Extruder", - "description": "The extruder train used for printing the top most skin. This is used in multi-extrusion.", - "type": "optional_extruder", - "default_value": "-1", - "value": "top_bottom_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1 and max(extruderValues('roofing_layer_count')) > 0 and max(extruderValues('top_layers')) > 0" - }, - "roofing_layer_count": - { - "label": "Top Surface Skin Layers", - "description": "The number of top most skin layers. Usually only one top most layer is sufficient to generate higher quality top surfaces.", - "default_value": 0, - "minimum_value": "0", - "maximum_value_warning": "top_layers - 1", - "type": "int", - "value": "0", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "top_layers > 0" - }, - "top_bottom_extruder_nr": - { - "label": "Top/Bottom Extruder", - "description": "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion.", - "type": "optional_extruder", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1" - }, - "top_bottom_thickness": - { - "label": "Top/Bottom Thickness", - "description": "The thickness of the top/bottom layers in the print. This value divided by the layer height defines the number of top/bottom layers.", - "unit": "mm", - "default_value": 0.8, - "minimum_value": "0", - "minimum_value_warning": "0.6", - "maximum_value": "machine_height", - "type": "float", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "top_thickness": - { - "label": "Top Thickness", - "description": "The thickness of the top layers in the print. This value divided by the layer height defines the number of top layers.", - "unit": "mm", - "default_value": 0.8, - "minimum_value": "0", - "minimum_value_warning": "0.2 + resolveOrValue('layer_height')", - "maximum_value": "machine_height", - "type": "float", - "value": "top_bottom_thickness", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "top_layers": - { - "label": "Top Layers", - "description": "The number of top layers. When calculated by the top thickness, this value is rounded to a whole number.", - "default_value": 8, - "minimum_value": "0", - "maximum_value_warning": "100", - "type": "int", - "minimum_value_warning": "2", - "value": "0 if infill_sparse_density == 100 else math.ceil(round(top_thickness / resolveOrValue('layer_height'), 4))", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - }, - "bottom_thickness": - { - "label": "Bottom Thickness", - "description": "The thickness of the bottom layers in the print. This value divided by the layer height defines the number of bottom layers.", - "unit": "mm", - "default_value": 0.6, - "minimum_value": "0", - "minimum_value_warning": "0.2 + resolveOrValue('layer_height')", - "type": "float", - "value": "top_bottom_thickness", - "maximum_value": "machine_height", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "bottom_layers": - { - "label": "Bottom Layers", - "description": "The number of bottom layers. When calculated by the bottom thickness, this value is rounded to a whole number.", - "minimum_value": "0", - "minimum_value_warning": "2", - "default_value": 6, - "type": "int", - "value": "999999 if infill_sparse_density == 100 else math.ceil(round(bottom_thickness / resolveOrValue('layer_height'), 4))", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - } - } - }, - "top_bottom_pattern": - { - "label": "Top/Bottom Pattern", - "description": "The pattern of the top/bottom layers.", - "type": "enum", - "options": - { - "lines": "Lines", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "lines", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "top_bottom_pattern_0": - { - "label": "Bottom Pattern Initial Layer", - "description": "The pattern on the bottom of the print on the first layer.", - "type": "enum", - "options": - { - "lines": "Lines", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "lines", - "value": "top_bottom_pattern", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "connect_skin_polygons": - { - "label": "Connect Top/Bottom Polygons", - "description": "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happend midway over infill this feature can reduce the top surface quality.", - "type": "bool", - "default_value": false, - "enabled": "top_bottom_pattern == 'concentric'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "skin_angles": - { - "label": "Top/Bottom Line Directions", - "description": "A list of integer line directions to use when the top/bottom layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees).", - "type": "[int]", - "default_value": "[ ]", - "enabled": "top_bottom_pattern != 'concentric'", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "wall_0_inset": - { - "label": "Outer Wall Inset", - "description": "Inset applied to the path of the outer wall. If the outer wall is smaller than the nozzle, and printed after the inner walls, use this offset to get the hole in the nozzle to overlap with the inner walls instead of the outside of the model.", - "unit": "mm", - "type": "float", - "default_value": 0.0, - "value": "(machine_nozzle_size - wall_line_width_0) / 2 if (wall_line_width_0 < machine_nozzle_size and not outer_inset_first) else 0", - "minimum_value_warning": "0", - "maximum_value_warning": "machine_nozzle_size", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "optimize_wall_printing_order": - { - "label": "Optimize Wall Printing Order", - "description": "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization. First layer is not optimized when choosing brim as build plate adhesion type.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, - "outer_inset_first": - { - "label": "Outer Before Inner Walls", - "description": "Prints walls in order of outside to inside when enabled. This can help improve dimensional accuracy in X and Y when using a high viscosity plastic like ABS; however it can decrease outer surface print quality, especially on overhangs.", - "type": "bool", - "default_value": false, - "enabled": "wall_0_extruder_nr == wall_x_extruder_nr", - "settable_per_mesh": true - }, - "alternate_extra_perimeter": - { - "label": "Alternate Extra Wall", - "description": "Prints an extra wall at every other layer. This way infill gets caught between these extra walls, resulting in stronger prints.", - "type": "bool", - "default_value": false, - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "travel_compensate_overlapping_walls_enabled": - { - "label": "Compensate Wall Overlaps", - "description": "Compensate the flow for parts of a wall being printed where there is already a wall in place.", - "type": "bool", - "default_value": true, - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true, - "children": - { - "travel_compensate_overlapping_walls_0_enabled": - { - "label": "Compensate Outer Wall Overlaps", - "description": "Compensate the flow for parts of an outer wall being printed where there is already a wall in place.", - "type": "bool", - "default_value": true, - "value": "travel_compensate_overlapping_walls_enabled", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "travel_compensate_overlapping_walls_x_enabled": - { - "label": "Compensate Inner Wall Overlaps", - "description": "Compensate the flow for parts of an inner wall being printed where there is already a wall in place.", - "type": "bool", - "default_value": true, - "value": "travel_compensate_overlapping_walls_enabled", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "wall_min_flow": - { - "label": "Minimum Wall Flow", - "description": "Minimum allowed percentage flow for a wall line. The wall overlap compensation reduces a wall's flow when it lies close to an existing wall. Walls whose flow is less than this value will be replaced with a travel move. When using this setting, you must enable the wall overlap compensation and print the outer wall before inner walls.", - "unit": "%", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "type": "float", - "enabled": "travel_compensate_overlapping_walls_0_enabled or travel_compensate_overlapping_walls_x_enabled", - "settable_per_mesh": true, - "settable_per_extruder": false - }, - "wall_min_flow_retract": - { - "label": "Prefer Retract", - "description": "If enabled, retraction is used rather than combing for travel moves that replace walls whose flow is below the minimum flow threshold.", - "type": "bool", - "default_value": false, - "enabled": "(travel_compensate_overlapping_walls_0_enabled or travel_compensate_overlapping_walls_x_enabled) and wall_min_flow > 0", - "settable_per_mesh": true, - "settable_per_extruder": false - }, - "fill_perimeter_gaps": - { - "label": "Fill Gaps Between Walls", - "description": "Fills the gaps between walls where no walls fit.", - "type": "enum", - "options": { - "nowhere": "Nowhere", - "everywhere": "Everywhere" - }, - "default_value": "everywhere", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "filter_out_tiny_gaps": - { - "label": "Filter Out Tiny Gaps", - "description": "Filter out tiny gaps to reduce blobs on outside of model.", - "type": "bool", - "default_value": true, - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "fill_outline_gaps": { - "label": "Print Thin Walls", - "description": "Print pieces of the model which are horizontally thinner than the nozzle size.", - "type": "bool", - "default_value": false, - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "xy_offset": - { - "label": "Horizontal Expansion", - "description": "Amount of offset applied to all polygons in each layer. Positive values can compensate for too big holes; negative values can compensate for too small holes.", - "unit": "mm", - "type": "float", - "minimum_value_warning": "-1", - "maximum_value_warning": "1", - "default_value": 0, - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "xy_offset_layer_0": - { - "label": "Initial Layer Horizontal Expansion", - "description": "Amount of offset applied to all polygons in the first layer. A negative value can compensate for squishing of the first layer known as \"elephant's foot\".", - "unit": "mm", - "type": "float", - "minimum_value_warning": "-1", - "maximum_value_warning": "1", - "default_value": 0, - "value": "xy_offset", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "z_seam_type": - { - "label": "Z Seam Alignment", - "description": "Starting point of each path in a layer. When paths in consecutive layers start at the same point a vertical seam may show on the print. When aligning these near a user specified location, the seam is easiest to remove. When placed randomly the inaccuracies at the paths' start will be less noticeable. When taking the shortest path the print will be quicker.", - "type": "enum", - "options": - { - "back": "User Specified", - "shortest": "Shortest", - "random": "Random", - "sharpest_corner": "Sharpest Corner" - }, - "default_value": "sharpest_corner", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "z_seam_x": - { - "label": "Z Seam X", - "description": "The X coordinate of the position near where to start printing each part in a layer.", - "unit": "mm", - "type": "float", - "default_value": 100.0, - "value": "machine_width / 2", - "enabled": "z_seam_type == 'back'", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "z_seam_y": - { - "label": "Z Seam Y", - "description": "The Y coordinate of the position near where to start printing each part in a layer.", - "unit": "mm", - "type": "float", - "default_value": 100.0, - "value": "machine_depth * 3", - "enabled": "z_seam_type == 'back'", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "z_seam_corner": - { - "label": "Seam Corner Preference", - "description": "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner.", - "type": "enum", - "options": - { - "z_seam_corner_none": "None", - "z_seam_corner_inner": "Hide Seam", - "z_seam_corner_outer": "Expose Seam", - "z_seam_corner_any": "Hide or Expose Seam" - }, - "default_value": "z_seam_corner_inner", - "enabled": "z_seam_type != 'random'", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "z_seam_relative": - { - "label": "Z Seam Relative", - "description": "When enabled, the z seam coordinates are relative to each part's centre. When disabled, the coordinates define an absolute position on the build plate.", - "unit": "mm", - "type": "bool", - "default_value": false, - "enabled": "z_seam_type == 'back'", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "skin_no_small_gaps_heuristic": - { - "label": "Ignore Small Z Gaps", - "description": "When the model has small vertical gaps, about 5% extra computation time can be spent on generating top and bottom skin in these narrow spaces. In such case, disable the setting.", - "type": "bool", - "default_value": false, - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "skin_outline_count": - { - "label": "Extra Skin Wall Count", - "description": "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material.", - "default_value": 1, - "minimum_value": "0", - "maximum_value_warning": "10", - "type": "int", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_enabled": - { - "label": "Enable Ironing", - "description": "Go over the top surface one additional time, but without extruding material. This is meant to melt the plastic on top further, creating a smoother surface.", - "type": "bool", - "default_value": false, - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_only_highest_layer": - { - "label": "Iron Only Highest Layer", - "description": "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish.", - "type": "bool", - "default_value": false, - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_pattern": - { - "label": "Ironing Pattern", - "description": "The pattern to use for ironing top surfaces.", - "type": "enum", - "options": - { - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "zigzag", - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_line_spacing": - { - "label": "Ironing Line Spacing", - "description": "The distance between the lines of ironing.", - "type": "float", - "unit": "mm", - "default_value": 0.1, - "minimum_value": "0.001", - "maximum_value_warning": "machine_nozzle_tip_outer_diameter", - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_flow": - { - "label": "Ironing Flow", - "description": "The amount of material, relative to a normal skin line, to extrude during ironing. Keeping the nozzle filled helps filling some of the crevices of the top surface, but too much results in overextrusion and blips on the side of the surface.", - "type": "float", - "unit": "%", - "default_value": 10.0, - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_inset": - { - "label": "Ironing Inset", - "description": "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print.", - "type": "float", - "unit": "mm", - "default_value": 0.35, - "value": "wall_line_width_0 / 2", - "minimum_value_warning": "0", - "maximum_value_warning": "wall_line_width_0", - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "speed_ironing": - { - "label": "Ironing Speed", - "description": "The speed at which to pass over the top surface.", - "type": "float", - "unit": "mm/s", - "default_value": 20.0, - "value": "speed_topbottom * 20 / 30", - "minimum_value": "0.001", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "100", - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "acceleration_ironing": - { - "label": "Ironing Acceleration", - "description": "The acceleration with which ironing is performed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_topbottom", - "enabled": "resolveOrValue('acceleration_enabled') and ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "jerk_ironing": - { - "label": "Ironing Jerk", - "description": "The maximum instantaneous velocity change while performing ironing.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_topbottom", - "enabled": "resolveOrValue('jerk_enabled') and ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - }, - "infill": - { - "label": "Infill", - "icon": "category_infill", - "description": "Infill", - "type": "category", - "children": - { - "infill_extruder_nr": - { - "label": "Infill Extruder", - "description": "The extruder train used for printing infill. This is used in multi-extrusion.", - "type": "optional_extruder", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1" - }, - "infill_sparse_density": - { - "label": "Infill Density", - "description": "Adjusts the density of infill of the print.", - "unit": "%", - "type": "float", - "default_value": 20, - "minimum_value": "0", - "maximum_value_warning": "100", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true, - "children": - { - "infill_line_distance": - { - "label": "Infill Line Distance", - "description": "Distance between the printed infill lines. This setting is calculated by the infill density and the infill line width.", - "unit": "mm", - "type": "float", - "default_value": 2, - "minimum_value": "0", - "minimum_value_warning": "infill_line_width", - "value": "0 if infill_sparse_density == 0 else (infill_line_width * 100) / infill_sparse_density * (2 if infill_pattern == 'grid' else (3 if infill_pattern == 'triangles' or infill_pattern == 'trihexagon' or infill_pattern == 'cubic' or infill_pattern == 'cubicsubdiv' else (2 if infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' else (1 if infill_pattern == 'cross' or infill_pattern == 'cross_3d' else 1))))", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - } - } - }, - "infill_pattern": - { - "label": "Infill Pattern", - "description": "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction.", - "type": "enum", - "options": - { - "grid": "Grid", - "lines": "Lines", - "triangles": "Triangles", - "trihexagon": "Tri-Hexagon", - "cubic": "Cubic", - "cubicsubdiv": "Cubic Subdivision", - "tetrahedral": "Octet", - "quarter_cubic": "Quarter Cubic", - "concentric": "Concentric", - "zigzag": "Zig Zag", - "cross": "Cross", - "cross_3d": "Cross 3D" - }, - "default_value": "grid", - "enabled": "infill_sparse_density > 0", - "value": "'lines' if infill_sparse_density > 25 else 'grid'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "zig_zaggify_infill": - { - "label": "Connect Infill Lines", - "description": "Connect the ends where the infill pattern meets the inner wall using a line which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduce the effects of infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used.", - "type": "bool", - "default_value": false, - "value": "infill_pattern == 'cross' or infill_pattern == 'cross_3d'", - "enabled": "infill_pattern == 'lines' or infill_pattern == 'grid' or infill_pattern == 'triangles' or infill_pattern == 'trihexagon' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'cross' or infill_pattern == 'cross_3d'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "connect_infill_polygons": - { - "label": "Connect Infill Polygons", - "description": "Connect infill paths where they run next to each other. For infill patterns which consist of several closed polygons, enabling this setting greatly reduces the travel time.", - "type": "bool", - "default_value": true, - "value": "infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_multiplier % 2 == 0", - "enabled": "infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_multiplier % 2 == 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_angles": - { - "label": "Infill Line Directions", - "description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees for the lines and zig zag patterns and 45 degrees for all other patterns).", - "type": "[int]", - "default_value": "[ ]", - "enabled": "infill_pattern != 'concentric' and infill_pattern != 'cubicsubdiv' and infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_offset_x": - { - "label": "Infill X Offset", - "description": "The infill pattern is moved this distance along the X axis.", - "unit": "mm", - "type": "float", - "default_value": 0, - "enabled": "infill_pattern == 'grid' or infill_pattern == 'lines' or infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'zigzag'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_offset_y": - { - "label": "Infill Y Offset", - "description": "The infill pattern is moved this distance along the Y axis.", - "unit": "mm", - "type": "float", - "default_value": 0, - "enabled": "infill_pattern == 'grid' or infill_pattern == 'lines' or infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'zigzag'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_multiplier": - { - "label": "Infill Line Multiplier", - "description": "Convert each infill line to this many lines. The extra lines do not cross over each other, but avoid each other. This makes the infill stiffer, but increases print time and material usage.", - "default_value": 1, - "type": "int", - "minimum_value": "1", - "maximum_value_warning": "infill_line_distance / infill_line_width", - "enabled": "infill_sparse_density > 0 and not spaghetti_infill_enabled and infill_pattern != 'zigzag'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_wall_line_count": - { - "label": "Extra Infill Wall Count", - "description": "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\nThis feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right.", - "default_value": 0, - "type": "int", - "minimum_value": "0", - "enabled": "infill_sparse_density > 0 and not spaghetti_infill_enabled", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "sub_div_rad_add": - { - "label": "Cubic Subdivision Shell", - "description": "An addition to the radius from the center of each cube to check for the boundary of the model, as to decide whether this cube should be subdivided. Larger values lead to a thicker shell of small cubes near the boundary of the model.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "value": "wall_line_width_x", - "minimum_value_warning": "-1 * infill_line_distance", - "maximum_value_warning": "5 * infill_line_distance", - "enabled": "infill_sparse_density > 0 and infill_pattern == 'cubicsubdiv'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_overlap": - { - "label": "Infill Overlap Percentage", - "description": "The amount of overlap between the infill and the walls as a percentage of the infill line width. A slight overlap allows the walls to connect firmly to the infill.", - "unit": "%", - "type": "float", - "default_value": 10, - "value": "10 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0", - "minimum_value_warning": "-50", - "maximum_value_warning": "100", - "enabled": "infill_sparse_density > 0 and infill_pattern != 'concentric'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true, - "children": - { - "infill_overlap_mm": - { - "label": "Infill Overlap", - "description": "The amount of overlap between the infill and the walls. A slight overlap allows the walls to connect firmly to the infill.", - "unit": "mm", - "type": "float", - "default_value": 0.04, - "minimum_value_warning": "-0.5 * machine_nozzle_size", - "maximum_value_warning": "machine_nozzle_size", - "value": "0.5 * (infill_line_width + (wall_line_width_x if wall_line_count > 1 else wall_line_width_0)) * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0", - "enabled": "infill_sparse_density > 0 and infill_pattern != 'concentric'", - "settable_per_mesh": true - } - } - }, - "skin_overlap": - { - "label": "Skin Overlap Percentage", - "description": "The amount of overlap between the skin and the walls as a percentage of the skin line width. A slight overlap allows the walls to connect firmly to the skin. This is a percentage of the average line widths of the skin lines and the innermost wall.", - "unit": "%", - "type": "float", - "default_value": 5, - "minimum_value_warning": "-50", - "maximum_value_warning": "100", - "value": "5 if top_bottom_pattern != 'concentric' else 0", - "enabled": "top_bottom_pattern != 'concentric'", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "skin_overlap_mm": - { - "label": "Skin Overlap", - "description": "The amount of overlap between the skin and the walls. A slight overlap allows the walls to connect firmly to the skin.", - "unit": "mm", - "type": "float", - "default_value": 0.02, - "minimum_value_warning": "-0.5 * machine_nozzle_size", - "maximum_value_warning": "machine_nozzle_size", - "value": "0.5 * (skin_line_width + (wall_line_width_x if wall_line_count > 1 else wall_line_width_0)) * skin_overlap / 100 if top_bottom_pattern != 'concentric' else 0", - "enabled": "top_bottom_pattern != 'concentric'", - "settable_per_mesh": true - } - } - }, - "infill_wipe_dist": - { - "label": "Infill Wipe Distance", - "description": "Distance of a travel move inserted after every infill line, to make the infill stick to the walls better. This option is similar to infill overlap, but without extrusion and only on one end of the infill line.", - "unit": "mm", - "type": "float", - "default_value": 0.04, - "value": "wall_line_width_0 / 4 if wall_line_count == 1 else wall_line_width_x / 4", - "minimum_value_warning": "0", - "maximum_value_warning": "machine_nozzle_size", - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_sparse_thickness": - { - "label": "Infill Layer Thickness", - "description": "The thickness per layer of infill material. This value should always be a multiple of the layer height and is otherwise rounded.", - "unit": "mm", - "type": "float", - "default_value": 0.1, - "minimum_value": "resolveOrValue('layer_height') if infill_line_distance > 0 else -999999", - "maximum_value_warning": "0.75 * machine_nozzle_size", - "maximum_value": "resolveOrValue('layer_height') * (1.45 if spaghetti_infill_enabled else 8) if infill_line_distance > 0 else 999999", - "value": "resolveOrValue('layer_height')", - "enabled": "infill_sparse_density > 0 and not spaghetti_infill_enabled", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "gradual_infill_steps": - { - "label": "Gradual Infill Steps", - "description": "Number of times to reduce the infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Infill Density.", - "default_value": 0, - "type": "int", - "minimum_value": "0", - "maximum_value_warning": "1 if (infill_pattern == 'cross' or infill_pattern == 'cross_3d' or support_pattern == 'concentric') else 5", - "maximum_value": "0 if spaghetti_infill_enabled else (999999 if infill_line_distance == 0 else (20 - math.log(infill_line_distance) / math.log(2)))", - "enabled": "infill_sparse_density > 0 and infill_pattern != 'cubicsubdiv' and not spaghetti_infill_enabled", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "gradual_infill_step_height": - { - "label": "Gradual Infill Step Height", - "description": "The height of infill of a given density before switching to half the density.", - "unit": "mm", - "type": "float", - "default_value": 1.5, - "minimum_value": "0.0001", - "minimum_value_warning": "3 * resolveOrValue('layer_height')", - "enabled": "infill_sparse_density > 0 and gradual_infill_steps > 0 and infill_pattern != 'cubicsubdiv'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_before_walls": - { - "label": "Infill Before Walls", - "description": "Print the infill before printing the walls. Printing the walls first may lead to more accurate walls, but overhangs print worse. Printing the infill first leads to sturdier walls, but the infill pattern might sometimes show through the surface.", - "type": "bool", - "default_value": true, - "enabled": "infill_sparse_density > 0 and wall_x_extruder_nr == infill_extruder_nr", - "settable_per_mesh": true - }, - "min_infill_area": - { - "label": "Minimum Infill Area", - "description": "Don't generate areas of infill smaller than this (use skin instead).", - "unit": "mm²", - "type": "float", - "minimum_value": "0", - "default_value": 0, - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_support_enabled": - { - "label": "Infill Support", - "description": "Print infill structures only where tops of the model should be supported. Enabling this reduces print time and material usage, but leads to ununiform object strength.", - "type": "bool", - "default_value": false, - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_support_angle": - { - "label": "Infill Overhang Angle", - "description": "The minimum angle of internal overhangs for which infill is added. At a value of 0° objects are totally filled with infill, 90° will not provide any infill.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "2", - "maximum_value": "90", - "default_value": 40, - "enabled": "infill_sparse_density > 0 and infill_support_enabled", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "skin_preshrink": - { - "label": "Skin Removal Width", - "description": "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model.", - "unit": "mm", - "type": "float", - "default_value": 0, - "value": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", - "minimum_value": "0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "top_skin_preshrink": - { - "label": "Top Skin Removal Width", - "description": "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model.", - "unit": "mm", - "type": "float", - "default_value": 0, - "value": "skin_preshrink", - "minimum_value": "0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "bottom_skin_preshrink": - { - "label": "Bottom Skin Removal Width", - "description": "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model.", - "unit": "mm", - "type": "float", - "default_value": 0, - "value": "skin_preshrink", - "minimum_value": "0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - }, - "expand_skins_expand_distance": - { - "label": "Skin Expand Distance", - "description": "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used.", - "unit": "mm", - "type": "float", - "default_value": 2.8, - "value": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", - "minimum_value": "-skin_preshrink", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "top_skin_expand_distance": - { - "label": "Top Skin Expand Distance", - "description": "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used.", - "unit": "mm", - "type": "float", - "default_value": 2.8, - "value": "expand_skins_expand_distance", - "minimum_value": "-top_skin_preshrink", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "bottom_skin_expand_distance": - { - "label": "Bottom Skin Expand Distance", - "description": "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used.", - "unit": "mm", - "type": "float", - "default_value": 2.8, - "value": "expand_skins_expand_distance", - "minimum_value": "-bottom_skin_preshrink", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - }, - "max_skin_angle_for_expansion": - { - "label": "Maximum Skin Angle for Expansion", - "description": "Top and/or bottom surfaces of your object with an angle larger than this setting, won't have their top/bottom skin expanded. This avoids expanding the narrow skin areas that are created when the model surface has a near vertical slope. An angle of 0° is horizontal, while an angle of 90° is vertical.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "2", - "maximum_value": "90", - "default_value": 90, - "enabled": "top_skin_expand_distance > 0 or bottom_skin_expand_distance > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "min_skin_width_for_expansion": - { - "label": "Minimum Skin Width for Expansion", - "description": "Skin areas narrower than this are not expanded. This avoids expanding the narrow skin areas that are created when the model surface has a slope close to the vertical.", - "unit": "mm", - "type": "float", - "default_value": 2.24, - "value": "top_layers * layer_height / math.tan(math.radians(max_skin_angle_for_expansion))", - "minimum_value": "0", - "enabled": "top_skin_expand_distance > 0 or bottom_skin_expand_distance > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - } - } - }, - "material": - { - "label": "Material", - "icon": "category_material", - "description": "Material", - "type": "category", - "children": - { - "default_material_print_temperature": - { - "label": "Default Printing Temperature", - "description": "The default temperature used for printing. This should be the \"base\" temperature of a material. All other print temperatures should use offsets based on this value", - "unit": "°C", - "type": "float", - "default_value": 210, - "minimum_value_warning": "0", - "maximum_value_warning": "285", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_extruder": true, - "settable_per_mesh": false, - "minimum_value": "-273.15" - }, - "material_print_temperature": - { - "label": "Printing Temperature", - "description": "The temperature used for printing.", - "unit": "°C", - "type": "float", - "default_value": 210, - "value": "default_material_print_temperature", - "minimum_value": "-273.15", - "minimum_value_warning": "0", - "maximum_value_warning": "285", - "enabled": "machine_nozzle_temp_enabled and not (material_flow_dependent_temperature)", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_print_temperature_layer_0": - { - "label": "Printing Temperature Initial Layer", - "description": "The temperature used for printing the first layer. Set at 0 to disable special handling of the initial layer.", - "unit": "°C", - "type": "float", - "default_value": 215, - "value": "material_print_temperature", - "minimum_value": "-273.15", - "minimum_value_warning": "0", - "maximum_value_warning": "285", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_initial_print_temperature": - { - "label": "Initial Printing Temperature", - "description": "The minimal temperature while heating up to the Printing Temperature at which printing can already start.", - "unit": "°C", - "type": "float", - "default_value": 200, - "value": "max(-273.15, material_print_temperature - 10)", - "minimum_value": "-273.15", - "minimum_value_warning": "material_standby_temperature", - "maximum_value_warning": "material_print_temperature", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_final_print_temperature": - { - "label": "Final Printing Temperature", - "description": "The temperature to which to already start cooling down just before the end of printing.", - "unit": "°C", - "type": "float", - "default_value": 195, - "value": "max(-273.15, material_print_temperature - 15)", - "minimum_value": "-273.15", - "minimum_value_warning": "material_standby_temperature", - "maximum_value_warning": "material_print_temperature", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_extrusion_cool_down_speed": - { - "label": "Extrusion Cool Down Speed Modifier", - "description": "The extra speed by which the nozzle cools while extruding. The same value is used to signify the heat up speed lost when heating up while extruding.", - "unit": "°C/s", - "type": "float", - "default_value": 0.7, - "minimum_value": "0", - "maximum_value_warning": "10.0", - "maximum_value": "machine_nozzle_heat_up_speed", - "enabled": "material_flow_dependent_temperature or (extruders_enabled_count > 1 and material_final_print_temperature != material_print_temperature)", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "default_material_bed_temperature": - { - "label": "Default Build Plate Temperature", - "description": "The default temperature used for the heated build plate. This should be the \"base\" temperature of a build plate. All other print temperatures should use offsets based on this value", - "unit": "°C", - "type": "float", - "resolve": "max(extruderValues('default_material_bed_temperature'))", - "default_value": 60, - "minimum_value": "-273.15", - "minimum_value_warning": "0", - "maximum_value_warning": "130", - "enabled": "machine_heated_bed and machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_bed_temperature": - { - "label": "Build Plate Temperature", - "description": "The temperature used for the heated build plate. If this is 0, the bed temperature will not be adjusted.", - "unit": "°C", - "type": "float", - "default_value": 60, - "value": "default_material_bed_temperature", - "resolve": "max(extruderValues('material_bed_temperature'))", - "minimum_value": "-273.15", - "minimum_value_warning": "0", - "maximum_value_warning": "130", - "enabled": "machine_heated_bed and machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_bed_temperature_layer_0": - { - "label": "Build Plate Temperature Initial Layer", - "description": "The temperature used for the heated build plate at the first layer.", - "unit": "°C", - "type": "float", - "resolve": "max(extruderValues('material_bed_temperature_layer_0'))", - "default_value": 60, - "value": "resolveOrValue('material_bed_temperature')", - "minimum_value": "-273.15", - "minimum_value_warning": "max(extruderValues('material_bed_temperature'))", - "maximum_value_warning": "130", - "enabled": "machine_heated_bed and machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_adhesion_tendency": - { - "label": "Adhesion Tendency", - "description": "Surface adhesion tendency.", - "type": "int", - "default_value": 10, - "minimum_value": "0", - "maximum_value": "10", - "enabled": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_surface_energy": - { - "label": "Surface Energy", - "description": "Surface energy.", - "unit": "%", - "type": "int", - "default_value": 100, - "minimum_value": "0", - "maximum_value": "100", - "enabled": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_shrinkage_percentage": - { - "label": "Shrinkage Ratio", - "description": "Shrinkage ratio in percentage.", - "unit": "%", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "maximum_value": "100", - "enabled": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_flow": - { - "label": "Flow", - "description": "Flow compensation: the amount of material extruded is multiplied by this value.", - "unit": "%", - "default_value": 100, - "type": "float", - "minimum_value": "5", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": true - }, - "material_flow_layer_0": - { - "label": "Initial Layer Flow", - "description": "Flow compensation for the first layer: the amount of material extruded on the initial layer is multiplied by this value.", - "unit": "%", - "default_value": 100, - "value": "material_flow", - "type": "float", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "settable_per_mesh": true - }, - "retraction_enable": - { - "label": "Enable Retraction", - "description": "Retract the filament when the nozzle is moving over a non-printed area. ", - "type": "bool", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retract_at_layer_change": - { - "label": "Retract at Layer Change", - "description": "Retract the filament when the nozzle is moving to the next layer.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_amount": - { - "label": "Retraction Distance", - "description": "The length of material retracted during a retraction move.", - "unit": "mm", - "type": "float", - "default_value": 6.5, - "minimum_value_warning": "-0.0001", - "maximum_value_warning": "10.0", - "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_speed": - { - "label": "Retraction Speed", - "description": "The speed at which the filament is retracted and primed during a retraction move.", - "unit": "mm/s", - "type": "float", - "default_value": 25, - "minimum_value": "0.0001", - "minimum_value_warning": "1", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "maximum_value_warning": "70", - "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "retraction_retract_speed": - { - "label": "Retraction Retract Speed", - "description": "The speed at which the filament is retracted during a retraction move.", - "unit": "mm/s", - "type": "float", - "default_value": 25, - "minimum_value": "0.0001", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "minimum_value_warning": "1", - "maximum_value_warning": "70", - "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"", - "value": "retraction_speed", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_prime_speed": - { - "label": "Retraction Prime Speed", - "description": "The speed at which the filament is primed during a retraction move.", - "unit": "mm/s", - "type": "float", - "default_value": 25, - "minimum_value": "0.0001", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "minimum_value_warning": "1", - "maximum_value_warning": "70", - "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"", - "value": "retraction_speed", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "retraction_extra_prime_amount": - { - "label": "Retraction Extra Prime Amount", - "description": "Some material can ooze away during a travel move, which can be compensated for here.", - "unit": "mm³", - "type": "float", - "default_value": 0, - "minimum_value_warning": "-0.0001", - "maximum_value_warning": "5.0", - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_min_travel": - { - "label": "Retraction Minimum Travel", - "description": "The minimum distance of travel needed for a retraction to happen at all. This helps to get fewer retractions in a small area.", - "unit": "mm", - "type": "float", - "default_value": 1.5, - "value": "line_width * 2", - "minimum_value": "0", - "minimum_value_warning": "line_width * 1.5", - "maximum_value_warning": "10", - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_count_max": - { - "label": "Maximum Retraction Count", - "description": "This setting limits the number of retractions occurring within the minimum extrusion distance window. Further retractions within this window will be ignored. This avoids retracting repeatedly on the same piece of filament, as that can flatten the filament and cause grinding issues.", - "default_value": 90, - "minimum_value": "0", - "maximum_value_warning": "100", - "type": "int", - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_extrusion_window": - { - "label": "Minimum Extrusion Distance Window", - "description": "The window in which the maximum retraction count is enforced. This value should be approximately the same as the retraction distance, so that effectively the number of times a retraction passes the same patch of material is limited.", - "unit": "mm", - "type": "float", - "default_value": 4.5, - "minimum_value": "0", - "maximum_value_warning": "retraction_amount * 2", - "value": "retraction_amount", - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "limit_support_retractions": - { - "label": "Limit Support Retractions", - "description": "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excesive stringing within the support structure.", - "type": "bool", - "default_value": true, - "enabled": "retraction_enable and support_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_standby_temperature": - { - "label": "Standby Temperature", - "description": "The temperature of the nozzle when another nozzle is currently used for printing.", - "type": "float", - "unit": "°C", - "default_value": 150, - "minimum_value": "-273.15", - "minimum_value_warning": "0", - "maximum_value_warning": "260", - "enabled": "extruders_enabled_count > 1 and machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "switch_extruder_retraction_amount": - { - "label": "Nozzle Switch Retraction Distance", - "description": "The amount of retraction: Set at 0 for no retraction at all. This should generally be the same as the length of the heat zone.", - "type": "float", - "unit": "mm", - "enabled": "retraction_enable", - "default_value": 20, - "value": "machine_heat_zone_length", - "minimum_value_warning": "0", - "maximum_value_warning": "100", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "switch_extruder_retraction_speeds": - { - "label": "Nozzle Switch Retraction Speed", - "description": "The speed at which the filament is retracted. A higher retraction speed works better, but a very high retraction speed can lead to filament grinding.", - "type": "float", - "unit": "mm/s", - "enabled": "retraction_enable", - "default_value": 20, - "minimum_value": "0.1", - "minimum_value_warning": "1", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "maximum_value_warning": "70", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "switch_extruder_retraction_speed": - { - "label": "Nozzle Switch Retract Speed", - "description": "The speed at which the filament is retracted during a nozzle switch retract.", - "type": "float", - "unit": "mm/s", - "enabled": "retraction_enable", - "default_value": 20, - "value": "switch_extruder_retraction_speeds", - "minimum_value": "0.1", - "minimum_value_warning": "1", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "maximum_value_warning": "70", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "switch_extruder_prime_speed": - { - "label": "Nozzle Switch Prime Speed", - "description": "The speed at which the filament is pushed back after a nozzle switch retraction.", - "type": "float", - "unit": "mm/s", - "enabled": "retraction_enable", - "default_value": 20, - "value": "switch_extruder_retraction_speeds", - "minimum_value": "0.1", - "minimum_value_warning": "1", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "maximum_value_warning": "70", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - } - } - }, - "speed": - { - "label": "Speed", - "icon": "category_speed", - "description": "Speed", - "type": "category", - "children": - { - "speed_print": - { - "label": "Print Speed", - "description": "The speed at which printing happens.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value_warning": "150", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "default_value": 60, - "settable_per_mesh": true, - "children": - { - "speed_infill": - { - "label": "Infill Speed", - "description": "The speed at which infill is printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 60, - "value": "speed_print", - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "speed_wall": - { - "label": "Wall Speed", - "description": "The speed at which the walls are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 30, - "value": "speed_print / 2", - "settable_per_mesh": true, - "children": - { - "speed_wall_0": - { - "label": "Outer Wall Speed", - "description": "The speed at which the outermost walls are printed. Printing the outer wall at a lower speed improves the final skin quality. However, having a large difference between the inner wall speed and the outer wall speed will affect quality in a negative way.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 30, - "value": "speed_wall", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "speed_wall_x": - { - "label": "Inner Wall Speed", - "description": "The speed at which all inner walls are printed. Printing the inner wall faster than the outer wall will reduce printing time. It works well to set this in between the outer wall speed and the infill speed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 60, - "value": "speed_wall * 2", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "speed_roofing": - { - "label": "Top Surface Skin Speed", - "description": "The speed at which top surface skin layers are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 25, - "value": "speed_topbottom", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0" - }, - "speed_topbottom": - { - "label": "Top/Bottom Speed", - "description": "The speed at which top/bottom layers are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 30, - "value": "speed_print / 2", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "speed_support": - { - "label": "Support Speed", - "description": "The speed at which the support structure is printed. Printing support at higher speeds can greatly reduce printing time. The surface quality of the support structure is not important since it is removed after printing.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 60, - "value": "speed_print", - "enabled": "support_enable", - "settable_per_mesh": false, - "limit_to_extruder": "support_extruder_nr", - "settable_per_extruder": true, - "children": - { - "speed_support_infill": - { - "label": "Support Infill Speed", - "description": "The speed at which the infill of support is printed. Printing the infill at lower speeds improves stability.", - "unit": "mm/s", - "type": "float", - "default_value": 60, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "value": "speed_support", - "enabled": "support_enable", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "speed_support_interface": - { - "label": "Support Interface Speed", - "description": "The speed at which the roofs and floors of support are printed. Printing them at lower speeds can improve overhang quality.", - "unit": "mm/s", - "type": "float", - "default_value": 40, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "enabled": "support_interface_enable and support_enable", - "limit_to_extruder": "support_interface_extruder_nr", - "value": "speed_support / 1.5", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "speed_support_roof": - { - "label": "Support Roof Speed", - "description": "The speed at which the roofs of support are printed. Printing them at lower speeds can improve overhang quality.", - "unit": "mm/s", - "type": "float", - "default_value": 40, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "enabled": "support_roof_enable and support_enable", - "limit_to_extruder": "support_roof_extruder_nr", - "value": "extruderValue(support_roof_extruder_nr, 'speed_support_interface')", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "speed_support_bottom": - { - "label": "Support Floor Speed", - "description": "The speed at which the floor of support is printed. Printing it at lower speed can improve adhesion of support on top of your model.", - "unit": "mm/s", - "type": "float", - "default_value": 40, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "enabled": "support_bottom_enable and support_enable", - "limit_to_extruder": "support_bottom_extruder_nr", - "value": "extruderValue(support_bottom_extruder_nr, 'speed_support_interface')", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - } - } - }, - "speed_prime_tower": - { - "label": "Prime Tower Speed", - "description": "The speed at which the prime tower is printed. Printing the prime tower slower can make it more stable when the adhesion between the different filaments is suboptimal.", - "type": "float", - "unit": "mm/s", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 60, - "value": "speed_print", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "speed_travel": - { - "label": "Travel Speed", - "description": "The speed at which travel moves are made.", - "unit": "mm/s", - "type": "float", - "default_value": 120, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "value": "speed_print if magic_spiralize else 120", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "speed_layer_0": - { - "label": "Initial Layer Speed", - "description": "The speed for the initial layer. A lower value is advised to improve adhesion to the build plate.", - "unit": "mm/s", - "type": "float", - "default_value": 30, - "value": "speed_print * 30 / 60", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "settable_per_mesh": true, - "children": - { - "speed_print_layer_0": - { - "label": "Initial Layer Print Speed", - "description": "The speed of printing for the initial layer. A lower value is advised to improve adhesion to the build plate.", - "unit": "mm/s", - "type": "float", - "default_value": 30, - "value": "speed_layer_0", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "settable_per_mesh": true - }, - "speed_travel_layer_0": - { - "label": "Initial Layer Travel Speed", - "description": "The speed of travel moves in the initial layer. A lower value is advised to prevent pulling previously printed parts away from the build plate. The value of this setting can automatically be calculated from the ratio between the Travel Speed and the Print Speed.", - "unit": "mm/s", - "type": "float", - "default_value": 60, - "value": "speed_layer_0 * speed_travel / speed_print", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "settable_per_extruder": true, - "settable_per_mesh": false - } - } - }, - "skirt_brim_speed": - { - "label": "Skirt/Brim Speed", - "description": "The speed at which the skirt and brim are printed. Normally this is done at the initial layer speed, but sometimes you might want to print the skirt or brim at a different speed.", - "unit": "mm/s", - "type": "float", - "default_value": 30, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "value": "speed_layer_0", - "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "max_feedrate_z_override": - { - "label": "Maximum Z Speed", - "description": "The maximum speed with which the build plate is moved. Setting this to zero causes the print to use the firmware defaults for the maximum z speed.", - "unit": "mm/s", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "maximum_value": "299792458000", - "maximum_value_warning": "machine_max_feedrate_z", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "speed_slowdown_layers": - { - "label": "Number of Slower Layers", - "description": "The first few layers are printed slower than the rest of the model, to get better adhesion to the build plate and improve the overall success rate of prints. The speed is gradually increased over these layers.", - "type": "int", - "default_value": 2, - "resolve": "round(sum(extruderValues('speed_slowdown_layers')) / len(extruderValues('speed_slowdown_layers')))", - "minimum_value": "0", - "maximum_value_warning": "3.2 / resolveOrValue('layer_height')", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "speed_equalize_flow_enabled": - { - "label": "Equalize Filament Flow", - "description": "Print thinner than normal lines faster so that the amount of material extruded per second remains the same. Thin pieces in your model might require lines printed with smaller line width than provided in the settings. This setting controls the speed changes for such lines.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "speed_equalize_flow_max": - { - "label": "Maximum Speed for Flow Equalization", - "description": "Maximum print speed when adjusting the print speed in order to equalize flow.", - "type": "float", - "unit": "mm/s", - "enabled": "speed_equalize_flow_enabled", - "default_value": 150, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "acceleration_enabled": - { - "label": "Enable Acceleration Control", - "description": "Enables adjusting the print head acceleration. Increasing the accelerations can reduce printing time at the cost of print quality.", - "type": "bool", - "default_value": false, - "resolve": "any(extruderValues('acceleration_enabled'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "acceleration_print": - { - "label": "Print Acceleration", - "description": "The acceleration with which printing happens.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_mesh": true, - "children": - { - "acceleration_infill": - { - "label": "Infill Acceleration", - "description": "The acceleration with which infill is printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_print", - "enabled": "resolveOrValue('acceleration_enabled') and infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "acceleration_wall": - { - "label": "Wall Acceleration", - "description": "The acceleration with which the walls are printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_print", - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_mesh": true, - "children": - { - "acceleration_wall_0": - { - "label": "Outer Wall Acceleration", - "description": "The acceleration with which the outermost walls are printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_wall", - "enabled": "resolveOrValue('acceleration_enabled')", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "acceleration_wall_x": - { - "label": "Inner Wall Acceleration", - "description": "The acceleration with which all inner walls are printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_wall", - "enabled": "resolveOrValue('acceleration_enabled')", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "acceleration_roofing": - { - "label": "Top Surface Skin Acceleration", - "description": "The acceleration with which top surface skin layers are printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_topbottom", - "enabled": "resolveOrValue('acceleration_enabled') and roofing_layer_count > 0 and top_layers > 0", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true - }, - "acceleration_topbottom": - { - "label": "Top/Bottom Acceleration", - "description": "The acceleration with which top/bottom layers are printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_print", - "enabled": "resolveOrValue('acceleration_enabled')", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "acceleration_support": - { - "label": "Support Acceleration", - "description": "The acceleration with which the support structure is printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_print", - "enabled": "resolveOrValue('acceleration_enabled') and support_enable", - "settable_per_mesh": false, - "limit_to_extruder": "support_extruder_nr", - "settable_per_extruder": true, - "children": - { - "acceleration_support_infill": - { - "label": "Support Infill Acceleration", - "description": "The acceleration with which the infill of support is printed.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_support", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled') and support_enable", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "acceleration_support_interface": - { - "label": "Support Interface Acceleration", - "description": "The acceleration with which the roofs and floors of support are printed. Printing them at lower acceleration can improve overhang quality.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_support", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled') and support_interface_enable and support_enable", - "limit_to_extruder": "support_interface_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "acceleration_support_roof": - { - "label": "Support Roof Acceleration", - "description": "The acceleration with which the roofs of support are printed. Printing them at lower acceleration can improve overhang quality.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "extruderValue(support_roof_extruder_nr, 'acceleration_support_interface')", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "acceleration_enabled and support_roof_enable and support_enable", - "limit_to_extruder": "support_roof_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "acceleration_support_bottom": - { - "label": "Support Floor Acceleration", - "description": "The acceleration with which the floors of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface')", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "acceleration_enabled and support_bottom_enable and support_enable", - "limit_to_extruder": "support_bottom_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - } - } - }, - "acceleration_prime_tower": - { - "label": "Prime Tower Acceleration", - "description": "The acceleration with which the prime tower is printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_print", - "enabled": "resolveOrValue('prime_tower_enable') and resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false - } - } - }, - "acceleration_travel": - { - "label": "Travel Acceleration", - "description": "The acceleration with which travel moves are made.", - "unit": "mm/s²", - "type": "float", - "default_value": 5000, - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "value": "acceleration_print if magic_spiralize else 5000", - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false - }, - "acceleration_layer_0": - { - "label": "Initial Layer Acceleration", - "description": "The acceleration for the initial layer.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_print", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_mesh": true, - "children": - { - "acceleration_print_layer_0": - { - "label": "Initial Layer Print Acceleration", - "description": "The acceleration during the printing of the initial layer.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_layer_0", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_mesh": true - }, - "acceleration_travel_layer_0": - { - "label": "Initial Layer Travel Acceleration", - "description": "The acceleration for travel moves in the initial layer.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_layer_0 * acceleration_travel / acceleration_print", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_extruder": true, - "settable_per_mesh": false - } - } - }, - "acceleration_skirt_brim": - { - "label": "Skirt/Brim Acceleration", - "description": "The acceleration with which the skirt and brim are printed. Normally this is done with the initial layer acceleration, but sometimes you might want to print the skirt or brim at a different acceleration.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_layer_0", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "jerk_enabled": - { - "label": "Enable Jerk Control", - "description": "Enables adjusting the jerk of print head when the velocity in the X or Y axis changes. Increasing the jerk can reduce printing time at the cost of print quality.", - "type": "bool", - "default_value": false, - "resolve": "any(extruderValues('jerk_enabled'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "jerk_print": - { - "label": "Print Jerk", - "description": "The maximum instantaneous velocity change of the print head.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_mesh": true, - "children": - { - "jerk_infill": - { - "label": "Infill Jerk", - "description": "The maximum instantaneous velocity change with which infill is printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_print", - "enabled": "resolveOrValue('jerk_enabled') and infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "jerk_wall": - { - "label": "Wall Jerk", - "description": "The maximum instantaneous velocity change with which the walls are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_print", - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_mesh": true, - "children": - { - "jerk_wall_0": - { - "label": "Outer Wall Jerk", - "description": "The maximum instantaneous velocity change with which the outermost walls are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_wall", - "enabled": "resolveOrValue('jerk_enabled')", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "jerk_wall_x": - { - "label": "Inner Wall Jerk", - "description": "The maximum instantaneous velocity change with which all inner walls are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_wall", - "enabled": "resolveOrValue('jerk_enabled')", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "jerk_roofing": - { - "label": "Top Surface Skin Jerk", - "description": "The maximum instantaneous velocity change with which top surface skin layers are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_topbottom", - "enabled": "resolveOrValue('jerk_enabled') and roofing_layer_count > 0 and top_layers > 0", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true - }, - "jerk_topbottom": - { - "label": "Top/Bottom Jerk", - "description": "The maximum instantaneous velocity change with which top/bottom layers are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_print", - "enabled": "resolveOrValue('jerk_enabled')", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "jerk_support": - { - "label": "Support Jerk", - "description": "The maximum instantaneous velocity change with which the support structure is printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_print", - "enabled": "resolveOrValue('jerk_enabled') and support_enable", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "support_extruder_nr", - "children": - { - "jerk_support_infill": - { - "label": "Support Infill Jerk", - "description": "The maximum instantaneous velocity change with which the infill of support is printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_support", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and support_enable", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "jerk_support_interface": - { - "label": "Support Interface Jerk", - "description": "The maximum instantaneous velocity change with which the roofs and floors of support are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_support", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and support_interface_enable and support_enable", - "limit_to_extruder": "support_interface_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "jerk_support_roof": - { - "label": "Support Roof Jerk", - "description": "The maximum instantaneous velocity change with which the roofs of support are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "extruderValue(support_roof_extruder_nr, 'jerk_support_interface')", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and support_roof_enable and support_enable", - "limit_to_extruder": "support_roof_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "jerk_support_bottom": - { - "label": "Support Floor Jerk", - "description": "The maximum instantaneous velocity change with which the floors of support are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "extruderValue(support_roof_extruder_nr, 'jerk_support_interface')", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and support_bottom_enable and support_enable", - "limit_to_extruder": "support_bottom_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - } - } - }, - "jerk_prime_tower": - { - "label": "Prime Tower Jerk", - "description": "The maximum instantaneous velocity change with which the prime tower is printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_print", - "enabled": "resolveOrValue('prime_tower_enable') and resolveOrValue('jerk_enabled')", - "settable_per_mesh": false - } - } - }, - "jerk_travel": - { - "label": "Travel Jerk", - "description": "The maximum instantaneous velocity change with which travel moves are made.", - "unit": "mm/s", - "type": "float", - "default_value": 30, - "minimum_value": "0", - "maximum_value_warning": "50", - "value": "jerk_print if magic_spiralize else 30", - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_mesh": false - }, - "jerk_layer_0": - { - "label": "Initial Layer Jerk", - "description": "The print maximum instantaneous velocity change for the initial layer.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_print", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_mesh": true, - "children": - { - "jerk_print_layer_0": - { - "label": "Initial Layer Print Jerk", - "description": "The maximum instantaneous velocity change during the printing of the initial layer.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_layer_0", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_mesh": true - }, - "jerk_travel_layer_0": - { - "label": "Initial Layer Travel Jerk", - "description": "The acceleration for travel moves in the initial layer.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_layer_0 * jerk_travel / jerk_print", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_extruder": true, - "settable_per_mesh": false - } - } - }, - "jerk_skirt_brim": - { - "label": "Skirt/Brim Jerk", - "description": "The maximum instantaneous velocity change with which the skirt and brim are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "minimum_value": "0", - "maximum_value_warning": "50", - "value": "jerk_layer_0", - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - } - } - }, - "travel": - { - "label": "Travel", - "icon": "category_travel", - "description": "travel", - "type": "category", - "children": - { - "retraction_combing": - { - "label": "Combing Mode", - "description": "Combing keeps the nozzle within already printed areas when traveling. This results in slightly longer travel moves but reduces the need for retractions. If combing is off, the material will retract and the nozzle moves in a straight line to the next point. It is also possible to avoid combing over top/bottom skin areas and also to only comb within the infill. Note that the 'Within Infill' option behaves exactly like the 'Not in Skin' option in earlier Cura releases.", - "type": "enum", - "options": - { - "off": "Off", - "all": "All", - "noskin": "Not in Skin", - "infill": "Within Infill" - }, - "default_value": "all", - "resolve": "'noskin' if 'noskin' in extruderValues('retraction_combing') else ('all' if 'all' in extruderValues('retraction_combing') else 'off')", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "retraction_combing_max_distance": - { - "label": "Max Comb Distance With No Retract", - "description": "When non-zero, combing travel moves that are longer than this distance will use retraction.", - "unit": "mm", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "enabled": "resolveOrValue('retraction_combing') != 'off'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "travel_retract_before_outer_wall": - { - "label": "Retract Before Outer Wall", - "description": "Always retract when moving to start an outer wall.", - "type": "bool", - "default_value": false, - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "travel_avoid_other_parts": - { - "label": "Avoid Printed Parts When Traveling", - "description": "The nozzle avoids already printed parts when traveling. This option is only available when combing is enabled.", - "type": "bool", - "default_value": true, - "enabled": "resolveOrValue('retraction_combing') != 'off'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "travel_avoid_supports": - { - "label": "Avoid Supports When Traveling", - "description": "The nozzle avoids already printed supports when traveling. This option is only available when combing is enabled.", - "type": "bool", - "default_value": false, - "enabled": "resolveOrValue('retraction_combing') != 'off' and travel_avoid_other_parts", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "travel_avoid_distance": - { - "label": "Travel Avoid Distance", - "description": "The distance between the nozzle and already printed parts when avoiding during travel moves.", - "unit": "mm", - "type": "float", - "default_value": 0.625, - "value": "machine_nozzle_tip_outer_diameter / 2 * 1.25", - "minimum_value": "0", - "minimum_value_warning": "machine_nozzle_tip_outer_diameter * 0.5", - "maximum_value_warning": "machine_nozzle_tip_outer_diameter * 5", - "enabled": "resolveOrValue('retraction_combing') != 'off' and travel_avoid_other_parts", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "start_layers_at_same_position": - { - "label": "Start Layers with the Same Part", - "description": "In each layer start with printing the object near the same point, so that we don't start a new layer with printing the piece which the previous layer ended with. This makes for better overhangs and small parts, but increases printing time.", - "type": "bool", - "default_value": false, - "enabled": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true - }, - "layer_start_x": - { - "label": "Layer Start X", - "description": "The X coordinate of the position near where to find the part to start printing each layer.", - "unit": "mm", - "type": "float", - "default_value": 0.0, - "minimum_value": "machine_width / -2 if machine_center_is_zero else 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": true - }, - "layer_start_y": - { - "label": "Layer Start Y", - "description": "The Y coordinate of the position near where to find the part to start printing each layer.", - "unit": "mm", - "type": "float", - "default_value": 0.0, - "minimum_value": "machine_depth / -2 if machine_center_is_zero else 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": true - }, - "retraction_hop_enabled": { - "label": "Z Hop When Retracted", - "description": "Whenever a retraction is done, the build plate is lowered to create clearance between the nozzle and the print. It prevents the nozzle from hitting the print during travel moves, reducing the chance to knock the print from the build plate.", - "type": "bool", - "default_value": false, - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_hop_only_when_collides": { - "label": "Z Hop Only Over Printed Parts", - "description": "Only perform a Z Hop when moving over printed parts which cannot be avoided by horizontal motion by Avoid Printed Parts when Traveling.", - "type": "bool", - "default_value": false, - "enabled": "retraction_enable and retraction_hop_enabled and travel_avoid_other_parts", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_hop": { - "label": "Z Hop Height", - "description": "The height difference when performing a Z Hop.", - "unit": "mm", - "type": "float", - "default_value": 1, - "minimum_value_warning": "0", - "maximum_value_warning": "10", - "enabled": "retraction_enable and retraction_hop_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_hop_after_extruder_switch": { - "label": "Z Hop After Extruder Switch", - "description": "After the machine switched from one extruder to the other, the build plate is lowered to create clearance between the nozzle and the print. This prevents the nozzle from leaving oozed material on the outside of a print.", - "type": "bool", - "default_value": true, - "enabled": "retraction_hop_enabled and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "cooling": - { - "label": "Cooling", - "icon": "category_cool", - "description": "Cooling", - "type": "category", - "children": - { - "cool_fan_enabled": - { - "label": "Enable Print Cooling", - "description": "Enables the print cooling fans while printing. The fans improve print quality on layers with short layer times and bridging / overhangs.", - "type": "bool", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_fan_speed": - { - "label": "Fan Speed", - "description": "The speed at which the print cooling fans spin.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 100, - "value": "100.0 if cool_fan_enabled else 0.0", - "enabled": "cool_fan_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "cool_fan_speed_min": - { - "label": "Regular Fan Speed", - "description": "The speed at which the fans spin before hitting the threshold. When a layer prints faster than the threshold, the fan speed gradually inclines towards the maximum fan speed.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "value": "cool_fan_speed", - "default_value": 100, - "enabled": "cool_fan_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_fan_speed_max": - { - "label": "Maximum Fan Speed", - "description": "The speed at which the fans spin on the minimum layer time. The fan speed gradually increases between the regular fan speed and maximum fan speed when the threshold is hit.", - "unit": "%", - "type": "float", - "minimum_value": "max(0, cool_fan_speed_min)", - "maximum_value": "100", - "default_value": 100, - "enabled": "cool_fan_enabled", - "value": "cool_fan_speed", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "cool_min_layer_time_fan_speed_max": - { - "label": "Regular/Maximum Fan Speed Threshold", - "description": "The layer time which sets the threshold between regular fan speed and maximum fan speed. Layers that print slower than this time use regular fan speed. For faster layers the fan speed gradually increases towards the maximum fan speed.", - "unit": "s", - "type": "float", - "default_value": 10, - "maximum_value_warning": "600", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_fan_speed_0": - { - "label": "Initial Fan Speed", - "description": "The speed at which the fans spin at the start of the print. In subsequent layers the fan speed is gradually increased up to the layer corresponding to Regular Fan Speed at Height.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "enabled": "cool_fan_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_fan_full_at_height": - { - "label": "Regular Fan Speed at Height", - "description": "The height at which the fans spin on regular fan speed. At the layers below the fan speed gradually increases from Initial Fan Speed to Regular Fan Speed.", - "unit": "mm", - "type": "float", - "default_value": 0.5, - "value": "0 if resolveOrValue('adhesion_type') == 'raft' else resolveOrValue('layer_height_0')", - "minimum_value": "0", - "maximum_value_warning": "10.0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "cool_fan_full_layer": - { - "label": "Regular Fan Speed at Layer", - "description": "The layer at which the fans spin on regular fan speed. If regular fan speed at height is set, this value is calculated and rounded to a whole number.", - "type": "int", - "default_value": 2, - "minimum_value": "1", - "maximum_value_warning": "10 / resolveOrValue('layer_height')", - "value": "max(1, int(math.floor((cool_fan_full_at_height - resolveOrValue('layer_height_0')) / resolveOrValue('layer_height')) + 2))", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "cool_min_layer_time": - { - "label": "Minimum Layer Time", - "description": "The minimum time spent in a layer. This forces the printer to slow down, to at least spend the time set here in one layer. This allows the printed material to cool down properly before printing the next layer. Layers may still take shorter than the minimal layer time if Lift Head is disabled and if the Minimum Speed would otherwise be violated.", - "unit": "s", - "type": "float", - "default_value": 5, - "minimum_value": "0", - "maximum_value_warning": "600", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_min_speed": - { - "label": "Minimum Speed", - "description": "The minimum print speed, despite slowing down due to the minimum layer time. When the printer would slow down too much, the pressure in the nozzle would be too low and result in bad print quality.", - "unit": "mm/s", - "type": "float", - "default_value": 10, - "minimum_value": "0", - "maximum_value_warning": "100", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_lift_head": - { - "label": "Lift Head", - "description": "When the minimum speed is hit because of minimum layer time, lift the head away from the print and wait the extra time until the minimum layer time is reached.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "support": - { - "label": "Support", - "type": "category", - "icon": "category_support", - "description": "Support", - "children": - { - "support_enable": - { - "label": "Generate Support", - "description": "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false - }, - "support_extruder_nr": - { - "label": "Support Extruder", - "description": "The extruder train to use for printing the support. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "defaultExtruderPosition()", - "enabled": "(support_enable or support_tree_enable) and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "children": { - "support_infill_extruder_nr": - { - "label": "Support Infill Extruder", - "description": "The extruder train to use for printing the infill of the support. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "support_extruder_nr", - "enabled": "(support_enable or support_tree_enable) and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "support_extruder_nr_layer_0": - { - "label": "First Layer Support Extruder", - "description": "The extruder train to use for printing the first layer of support infill. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "support_extruder_nr", - "enabled": "(support_enable or support_tree_enable) and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "support_interface_extruder_nr": - { - "label": "Support Interface Extruder", - "description": "The extruder train to use for printing the roofs and floors of the support. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "support_extruder_nr", - "enabled": "(support_enable or support_tree_enable) and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "children": - { - "support_roof_extruder_nr": - { - "label": "Support Roof Extruder", - "description": "The extruder train to use for printing the roofs of the support. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "support_interface_extruder_nr", - "enabled": "(support_enable or support_tree_enable) and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "support_bottom_extruder_nr": - { - "label": "Support Floor Extruder", - "description": "The extruder train to use for printing the floors of the support. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "support_interface_extruder_nr", - "enabled": "(support_enable or support_tree_enable) and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": false - } - } - } - } - }, - "support_type": - { - "label": "Support Placement", - "description": "Adjusts the placement of the support structures. The placement can be set to touching build plate or everywhere. When set to everywhere the support structures will also be printed on the model.", - "type": "enum", - "options": - { - "buildplate": "Touching Buildplate", - "everywhere": "Everywhere" - }, - "default_value": "everywhere", - "resolve": "'everywhere' if 'everywhere' in extruderValues('support_type') else 'buildplate'", - "enabled": "support_enable or support_tree_enable", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "support_angle": - { - "label": "Support Overhang Angle", - "description": "The minimum angle of overhangs for which support is added. At a value of 0° all overhangs are supported, 90° will not provide any support.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "maximum_value": "90", - "maximum_value_warning": "80", - "default_value": 50, - "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", - "enabled": "support_enable or support_tree_enable", - "settable_per_mesh": true - }, - "support_pattern": - { - "label": "Support Pattern", - "description": "The pattern of the support structures of the print. The different options available result in sturdy or easy to remove support.", - "type": "enum", - "options": - { - "lines": "Lines", - "grid": "Grid", - "triangles": "Triangles", - "concentric": "Concentric", - "zigzag": "Zig Zag", - "cross": "Cross" - }, - "default_value": "zigzag", - "enabled": "support_enable or support_tree_enable", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_wall_count": - { - "label": "Support Wall Line Count", - "description": "The number of walls with which to surround support infill. Adding a wall can make support print more reliably and can support overhangs better, but increases print time and material used.", - "default_value": 1, - "minimum_value": "0", - "minimum_value_warning": "1 if support_pattern == 'concentric' else 0", - "maximum_value_warning": "3", - "type": "int", - "value": "1 if (support_pattern == 'grid' or support_pattern == 'triangles' or support_pattern == 'concentric') else 0", - "enabled": "support_enable", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "zig_zaggify_support": - { - "label": "Connect Support Lines", - "description": "Connect the ends of the support lines together. Enabling this setting can make your support more sturdy and reduce underextrusion, but it will cost more material.", - "type": "bool", - "default_value": false, - "value": "support_pattern == 'cross'", - "enabled": "support_pattern == 'grid' or support_pattern == 'triangles' or support_pattern == 'cross'", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_connect_zigzags": - { - "label": "Connect Support ZigZags", - "description": "Connect the ZigZags. This will increase the strength of the zig zag support structure.", - "type": "bool", - "default_value": true, - "enabled": "(support_enable or support_tree_enable) and support_pattern == 'zigzag'", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_infill_rate": - { - "label": "Support Density", - "description": "Adjusts the density of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "100", - "default_value": 15, - "value": "15 if support_enable else 0 if support_tree_enable else 15", - "enabled": "support_enable or support_tree_enable", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_line_distance": - { - "label": "Support Line Distance", - "description": "Distance between the printed support structure lines. This setting is calculated by the support density.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "support_line_width", - "default_value": 2.66, - "enabled": "support_enable or support_tree_enable", - "value": "0 if support_infill_rate == 0 else (support_line_width * 100) / support_infill_rate * (2 if support_pattern == 'grid' else (3 if support_pattern == 'triangles' else 1))", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_initial_layer_line_distance": - { - "label": "Initial Layer Support Line Distance", - "description": "Distance between the printed initial layer support structure lines. This setting is calculated by the support density.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "support_line_width", - "default_value": 2.66, - "enabled": "support_enable or support_tree_enable", - "value": "support_line_distance", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "support_infill_angle": - { - "label": "Support Infill Line Direction", - "description": "Orientation of the infill pattern for supports. The support infill pattern is rotated in the horizontal plane.", - "unit": "°", - "type": "float", - "minimum_value": "-180", - "maximum_value": "180", - "default_value": 0, - "enabled": "support_enable and support_pattern != 'concentric' and support_infill_rate > 0", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_z_distance": - { - "label": "Support Z Distance", - "description": "Distance from the top/bottom of the support structure to the print. This gap provides clearance to remove the supports after the model is printed. This value is rounded up to a multiple of the layer height.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size", - "default_value": 0.1, - "limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", - "enabled": "support_enable or support_tree_enable", - "settable_per_mesh": true, - "children": - { - "support_top_distance": - { - "label": "Support Top Distance", - "description": "Distance from the top of the support to the print.", - "unit": "mm", - "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size", - "default_value": 0.1, - "type": "float", - "enabled": "support_enable or support_tree_enable", - "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance')", - "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", - "settable_per_mesh": true - }, - "support_bottom_distance": - { - "label": "Support Bottom Distance", - "description": "Distance from the print to the bottom of the support.", - "unit": "mm", - "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size", - "default_value": 0.1, - "value": "extruderValue(support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr, 'support_z_distance') if support_type == 'everywhere' else 0", - "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", - "type": "float", - "enabled": "(support_enable or support_tree_enable) and resolveOrValue('support_type') == 'everywhere'", - "settable_per_mesh": true - } - } - }, - "support_xy_distance": - { - "label": "Support X/Y Distance", - "description": "Distance of the support structure from the print in the X/Y directions.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "1.5 * machine_nozzle_tip_outer_diameter", - "default_value": 0.7, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable or support_tree_enable", - "settable_per_mesh": true - }, - "support_xy_overrides_z": - { - "label": "Support Distance Priority", - "description": "Whether the Support X/Y Distance overrides the Support Z Distance or vice versa. When X/Y overrides Z the X/Y distance can push away the support from the model, influencing the actual Z distance to the overhang. We can disable this by not applying the X/Y distance around overhangs.", - "type": "enum", - "options": - { - "xy_overrides_z": "X/Y overrides Z", - "z_overrides_xy": "Z overrides X/Y" - }, - "default_value": "z_overrides_xy", - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable", - "settable_per_mesh": true - }, - "support_xy_distance_overhang": - { - "label": "Minimum Support X/Y Distance", - "description": "Distance of the support structure from the overhang in the X/Y directions. ", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "support_xy_distance", - "default_value": 0.2, - "value": "machine_nozzle_size / 2", - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_xy_overrides_z == 'z_overrides_xy'", - "settable_per_mesh": true - }, - "support_bottom_stair_step_height": - { - "label": "Support Stair Step Height", - "description": "The height of the steps of the stair-like bottom of support resting on the model. A low value makes the support harder to remove, but too high values can lead to unstable support structures. Set to zero to turn off the stair-like behaviour.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", - "minimum_value": "0", - "maximum_value_warning": "1.0", - "enabled": "support_enable", - "settable_per_mesh": true - }, - "support_bottom_stair_step_width": - { - "label": "Support Stair Step Maximum Width", - "description": "The maximum width of the steps of the stair-like bottom of support resting on the model. A low value makes the support harder to remove, but too high values can lead to unstable support structures.", - "unit": "mm", - "type": "float", - "default_value": 5.0, - "limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", - "minimum_value": "0", - "maximum_value_warning": "10.0", - "enabled": "support_enable", - "settable_per_mesh": true - }, - "support_join_distance": - { - "label": "Support Join Distance", - "description": "The maximum distance between support structures in the X/Y directions. When seperate structures are closer together than this value, the structures merge into one.", - "unit": "mm", - "type": "float", - "default_value": 2.0, - "limit_to_extruder": "support_infill_extruder_nr", - "minimum_value_warning": "0", - "maximum_value_warning": "10", - "enabled": "support_enable", - "settable_per_mesh": true - }, - "support_offset": - { - "label": "Support Horizontal Expansion", - "description": "Amount of offset applied to all support polygons in each layer. Positive values can smooth out the support areas and result in more sturdy support.", - "unit": "mm", - "type": "float", - "default_value": 0.2, - "limit_to_extruder": "support_infill_extruder_nr", - "minimum_value_warning": "-1 * machine_nozzle_size", - "maximum_value_warning": "10 * machine_nozzle_size", - "enabled": "support_enable", - "settable_per_mesh": true - }, - "support_infill_sparse_thickness": - { - "label": "Support Infill Layer Thickness", - "description": "The thickness per layer of support infill material. This value should always be a multiple of the layer height and is otherwise rounded.", - "unit": "mm", - "type": "float", - "default_value": 0.1, - "minimum_value": "resolveOrValue('layer_height')", - "maximum_value_warning": "0.75 * machine_nozzle_size", - "maximum_value": "resolveOrValue('layer_height') * 8", - "value": "resolveOrValue('layer_height')", - "enabled": "(support_enable or support_tree_enable) and support_infill_rate > 0", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false - }, - "gradual_support_infill_steps": - { - "label": "Gradual Support Infill Steps", - "description": "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density.", - "default_value": 0, - "type": "int", - "minimum_value": "0", - "maximum_value_warning": "1 if (support_pattern == 'cross' or support_pattern == 'lines' or support_pattern == 'zigzag' or support_pattern == 'concentric') else 5", - "maximum_value": "999999 if support_line_distance == 0 else (20 - math.log(support_line_distance) / math.log(2))", - "enabled": "(support_enable or support_tree_enable) and support_infill_rate > 0", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false - }, - "gradual_support_infill_step_height": - { - "label": "Gradual Support Infill Step Height", - "description": "The height of support infill of a given density before switching to half the density.", - "unit": "mm", - "type": "float", - "default_value": 1, - "minimum_value": "0.0001", - "minimum_value_warning": "3 * resolveOrValue('layer_height')", - "enabled": "(support_enable or support_tree_enable) and support_infill_rate > 0 and gradual_support_infill_steps > 0", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false - }, - "support_interface_enable": - { - "label": "Enable Support Interface", - "description": "Generate a dense interface between the model and the support. This will create a skin at the top of the support on which the model is printed and at the bottom of the support, where it rests on the model.", - "type": "bool", - "default_value": false, - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_enable or support_tree_enable", - "settable_per_mesh": true, - "children": - { - "support_roof_enable": - { - "label": "Enable Support Roof", - "description": "Generate a dense slab of material between the top of support and the model. This will create a skin between the model and support.", - "type": "bool", - "default_value": false, - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_enable')", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_enable or support_tree_enable", - "settable_per_mesh": true - }, - "support_bottom_enable": - { - "label": "Enable Support Floor", - "description": "Generate a dense slab of material between the bottom of the support and the model. This will create a skin between the model and support.", - "type": "bool", - "default_value": false, - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable')", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_enable or support_tree_enable", - "settable_per_mesh": true - } - } - }, - "support_interface_height": - { - "label": "Support Interface Thickness", - "description": "The thickness of the interface of the support where it touches with the model on the bottom or the top.", - "unit": "mm", - "type": "float", - "default_value": 1, - "minimum_value": "0", - "minimum_value_warning": "0.2 + layer_height", - "maximum_value_warning": "10", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_tree_enable)", - "settable_per_mesh": true, - "children": - { - "support_roof_height": - { - "label": "Support Roof Thickness", - "description": "The thickness of the support roofs. This controls the amount of dense layers at the top of the support on which the model rests.", - "unit": "mm", - "type": "float", - "default_value": 1, - "minimum_value": "0", - "minimum_value_warning": "0.2 + layer_height", - "maximum_value_warning": "10", - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_height')", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_tree_enable)", - "settable_per_mesh": true - }, - "support_bottom_height": - { - "label": "Support Floor Thickness", - "description": "The thickness of the support floors. This controls the number of dense layers that are printed on top of places of a model on which support rests.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_height')", - "minimum_value": "0", - "minimum_value_warning": "min(0.2 + layer_height, support_bottom_stair_step_height)", - "maximum_value_warning": "10", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_tree_enable)", - "settable_per_mesh": true - } - } - }, - "support_interface_skip_height": { - "label": "Support Interface Resolution", - "description": "When checking where there's model above and below the support, take steps of the given height. Lower values will slice slower, while higher values may cause normal support to be printed in some places where there should have been support interface.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "minimum_value": "0", - "maximum_value_warning": "support_interface_height", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and support_enable", - "settable_per_mesh": true - }, - "support_interface_density": - { - "label": "Support Interface Density", - "description": "Adjusts the density of the roofs and floors of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", - "unit": "%", - "type": "float", - "default_value": 100, - "minimum_value": "0", - "maximum_value_warning": "100", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_tree_enable)", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_density": - { - "label": "Support Roof Density", - "description": "The density of the roofs of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", - "unit": "%", - "type": "float", - "default_value": 100, - "minimum_value": "0", - "maximum_value": "100", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_tree_enable)", - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_density')", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_line_distance": - { - "label": "Support Roof Line Distance", - "description": "Distance between the printed support roof lines. This setting is calculated by the Support Roof Density, but can be adjusted separately.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "minimum_value": "0", - "minimum_value_warning": "support_roof_line_width - 0.0001", - "value": "0 if support_roof_density == 0 else (support_roof_line_width * 100) / support_roof_density * (2 if support_roof_pattern == 'grid' else (3 if support_roof_pattern == 'triangles' else 1))", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_tree_enable)", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "support_bottom_density": - { - "label": "Support Floor Density", - "description": "The density of the floors of the support structure. A higher value results in better adhesion of the support on top of the model.", - "unit": "%", - "type": "float", - "default_value": 100, - "minimum_value": "0", - "maximum_value": "100", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_tree_enable)", - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_density')", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_bottom_line_distance": - { - "label": "Support Floor Line Distance", - "description": "Distance between the printed support floor lines. This setting is calculated by the Support Floor Density, but can be adjusted separately.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "minimum_value": "0", - "minimum_value_warning": "support_bottom_line_width - 0.0001", - "value": "0 if support_bottom_density == 0 else (support_bottom_line_width * 100) / support_bottom_density * (2 if support_bottom_pattern == 'grid' else (3 if support_bottom_pattern == 'triangles' else 1))", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_tree_enable)", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - } - } - }, - "support_interface_pattern": - { - "label": "Support Interface Pattern", - "description": "The pattern with which the interface of the support with the model is printed.", - "type": "enum", - "options": - { - "lines": "Lines", - "grid": "Grid", - "triangles": "Triangles", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "concentric", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_tree_enable)", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_pattern": - { - "label": "Support Roof Pattern", - "description": "The pattern with which the roofs of the support are printed.", - "type": "enum", - "options": - { - "lines": "Lines", - "grid": "Grid", - "triangles": "Triangles", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "concentric", - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_pattern')", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_tree_enable)", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_bottom_pattern": - { - "label": "Support Floor Pattern", - "description": "The pattern with which the floors of the support are printed.", - "type": "enum", - "options": - { - "lines": "Lines", - "grid": "Grid", - "triangles": "Triangles", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "concentric", - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_pattern')", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_tree_enable)", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "support_fan_enable": - { - "label": "Fan Speed Override", - "description": "When enabled, the print cooling fan speed is altered for the skin regions immediately above the support.", - "type": "bool", - "default_value": false, - "enabled": "support_enable", - "settable_per_mesh": false - }, - "support_supported_skin_fan_speed": - { - "label": "Supported Skin Fan Speed", - "description": "Percentage fan speed to use when printing the skin regions immediately above the support. Using a high fan speed can make the support easier to remove.", - "unit": "%", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 100, - "type": "float", - "enabled": "support_enable and support_fan_enable", - "settable_per_mesh": false - }, - "support_use_towers": - { - "label": "Use Towers", - "description": "Use specialized towers to support tiny overhang areas. These towers have a larger diameter than the region they support. Near the overhang the towers' diameter decreases, forming a roof.", - "type": "bool", - "default_value": true, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable", - "settable_per_mesh": true - }, - "support_tower_diameter": - { - "label": "Tower Diameter", - "description": "The diameter of a special tower.", - "unit": "mm", - "type": "float", - "default_value": 3.0, - "limit_to_extruder": "support_infill_extruder_nr", - "minimum_value": "0", - "minimum_value_warning": "2 * machine_nozzle_size", - "maximum_value_warning": "20", - "enabled": "support_enable and support_use_towers", - "settable_per_mesh": true - }, - "support_minimal_diameter": - { - "label": "Minimum Diameter", - "description": "Minimum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower.", - "unit": "mm", - "type": "float", - "default_value": 3.0, - "limit_to_extruder": "support_infill_extruder_nr", - "minimum_value": "0", - "minimum_value_warning": "2 * machine_nozzle_size", - "maximum_value_warning": "20", - "maximum_value": "support_tower_diameter", - "enabled": "support_enable and support_use_towers", - "settable_per_mesh": true - }, - "support_tower_roof_angle": - { - "label": "Tower Roof Angle", - "description": "The angle of a rooftop of a tower. A higher value results in pointed tower roofs, a lower value results in flattened tower roofs.", - "unit": "°", - "type": "int", - "minimum_value": "0", - "maximum_value": "90", - "default_value": 65, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_use_towers", - "settable_per_mesh": true - }, - "support_mesh_drop_down": - { - "label": "Drop Down Support Mesh", - "description": "Make support everywhere below the support mesh, so that there's no overhang in the support mesh.", - "type": "bool", - "default_value": true, - "enabled": "support_mesh", - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - } - } - }, - "platform_adhesion": - { - "label": "Build Plate Adhesion", - "type": "category", - "icon": "category_adhesion", - "description": "Adhesion", - "children": - { - "prime_blob_enable": - { - "label": "Enable Prime Blob", - "description": "Whether to prime the filament with a blob before printing. Turning this setting on will ensure that the extruder will have material ready at the nozzle before printing. Printing Brim or Skirt can act like priming too, in which case turning this setting off saves some time.", - "type": "bool", - "resolve": "any(extruderValues('prime_blob_enable'))", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": true, - "enabled": false - }, - "extruder_prime_pos_x": - { - "label": "Extruder Prime X Position", - "description": "The X coordinate of the position where the nozzle primes at the start of printing.", - "type": "float", - "unit": "mm", - "default_value": 0, - "minimum_value_warning": "machine_width / -2 if machine_center_is_zero else 0", - "maximum_value_warning": "machine_width / 2 if machine_center_is_zero else machine_width", - "settable_per_mesh": false, - "settable_per_extruder": true, - "enabled": false - }, - "extruder_prime_pos_y": - { - "label": "Extruder Prime Y Position", - "description": "The Y coordinate of the position where the nozzle primes at the start of printing.", - "type": "float", - "unit": "mm", - "default_value": 0, - "minimum_value_warning": "machine_depth / -2 if machine_center_is_zero else 0", - "maximum_value_warning": "machine_depth / 2 if machine_center_is_zero else machine_depth", - "settable_per_mesh": false, - "settable_per_extruder": true, - "enabled": false - }, - "adhesion_type": - { - "label": "Build Plate Adhesion Type", - "description": "Different options that help to improve both priming your extrusion and adhesion to the build plate. Brim adds a single layer flat area around the base of your model to prevent warping. Raft adds a thick grid with a roof below the model. Skirt is a line printed around the model, but not connected to the model.", - "type": "enum", - "options": - { - "skirt": "Skirt", - "brim": "Brim", - "raft": "Raft", - "none": "None" - }, - "default_value": "brim", - "resolve": "extruderValue(adhesion_extruder_nr, 'adhesion_type')", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "adhesion_extruder_nr": - { - "label": "Build Plate Adhesion Extruder", - "description": "The extruder train to use for printing the skirt/brim/raft. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "defaultExtruderPosition()", - "enabled": "extruders_enabled_count > 1 and resolveOrValue('adhesion_type') != 'none'", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "skirt_line_count": - { - "label": "Skirt Line Count", - "description": "Multiple skirt lines help to prime your extrusion better for small models. Setting this to 0 will disable the skirt.", - "type": "int", - "default_value": 1, - "minimum_value": "0", - "maximum_value_warning": "10", - "enabled": "resolveOrValue('adhesion_type') == 'skirt'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "skirt_gap": - { - "label": "Skirt Distance", - "description": "The horizontal distance between the skirt and the first layer of the print.\nThis is the minimum distance. Multiple skirt lines will extend outwards from this distance.", - "unit": "mm", - "type": "float", - "default_value": 3, - "minimum_value_warning": "max(extruderValues('machine_nozzle_size'))", - "maximum_value_warning": "10", - "enabled": "resolveOrValue('adhesion_type') == 'skirt'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "skirt_brim_minimal_length": - { - "label": "Skirt/Brim Minimum Length", - "description": "The minimum length of the skirt or brim. If this length is not reached by all skirt or brim lines together, more skirt or brim lines will be added until the minimum length is reached. Note: If the line count is set to 0 this is ignored.", - "unit": "mm", - "type": "float", - "default_value": 250, - "minimum_value": "0", - "minimum_value_warning": "25", - "maximum_value_warning": "2500", - "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "brim_width": - { - "label": "Brim Width", - "description": "The distance from the model to the outermost brim line. A larger brim enhances adhesion to the build plate, but also reduces the effective print area.", - "type": "float", - "unit": "mm", - "default_value": 8.0, - "minimum_value": "0.0", - "maximum_value_warning": "50.0", - "enabled": "resolveOrValue('adhesion_type') == 'brim'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr", - "children": - { - "brim_line_count": - { - "label": "Brim Line Count", - "description": "The number of lines used for a brim. More brim lines enhance adhesion to the build plate, but also reduces the effective print area.", - "type": "int", - "default_value": 20, - "minimum_value": "0", - "maximum_value_warning": "50 / skirt_brim_line_width", - "value": "math.ceil(brim_width / (skirt_brim_line_width * initial_layer_line_width_factor / 100.0))", - "enabled": "resolveOrValue('adhesion_type') == 'brim'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - } - } - }, - "brim_outside_only": - { - "label": "Brim Only on Outside", - "description": "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much.", - "type": "bool", - "default_value": true, - "enabled": "resolveOrValue('adhesion_type') == 'brim'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_margin": - { - "label": "Raft Extra Margin", - "description": "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print.", - "unit": "mm", - "type": "float", - "default_value": 15, - "minimum_value_warning": "raft_interface_line_width", - "maximum_value_warning": "20", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "adhesion_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "raft_smoothing": - { - "label": "Raft Smoothing", - "description": "This setting controls how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle.", - "unit": "mm", - "type": "float", - "default_value": 5, - "minimum_value": "0", - "minimum_value_warning": "raft_interface_line_width", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "adhesion_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "raft_airgap": - { - "label": "Raft Air Gap", - "description": "The gap between the final raft layer and the first layer of the model. Only the first layer is raised by this amount to lower the bonding between the raft layer and the model. Makes it easier to peel off the raft.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "minimum_value": "0", - "maximum_value_warning": "min(extruderValues('machine_nozzle_size'))", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "layer_0_z_overlap": - { - "label": "Initial Layer Z Overlap", - "description": "Make the first and second layer of the model overlap in the Z direction to compensate for the filament lost in the airgap. All models above the first model layer will be shifted down by this amount.", - "unit": "mm", - "type": "float", - "default_value": 0.22, - "value": "raft_airgap / 2", - "minimum_value": "0", - "maximum_value_warning": "raft_airgap", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_surface_layers": - { - "label": "Raft Top Layers", - "description": "The number of top layers on top of the 2nd raft layer. These are fully filled layers that the model sits on. 2 layers result in a smoother top surface than 1.", - "type": "int", - "default_value": 2, - "minimum_value": "0", - "maximum_value_warning": "20", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_surface_thickness": - { - "label": "Raft Top Layer Thickness", - "description": "Layer thickness of the top raft layers.", - "unit": "mm", - "type": "float", - "default_value": 0.1, - "value": "resolveOrValue('layer_height')", - "minimum_value": "0.001", - "minimum_value_warning": "0.04", - "maximum_value_warning": "0.75 * machine_nozzle_size", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_surface_line_width": - { - "label": "Raft Top Line Width", - "description": "Width of the lines in the top surface of the raft. These can be thin lines so that the top of the raft becomes smooth.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "value": "line_width", - "minimum_value": "0.001", - "minimum_value_warning": "machine_nozzle_size * 0.1", - "maximum_value_warning": "machine_nozzle_size * 2", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_surface_line_spacing": - { - "label": "Raft Top Spacing", - "description": "The distance between the raft lines for the top raft layers. The spacing should be equal to the line width, so that the surface is solid.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "minimum_value": "0", - "minimum_value_warning": "raft_surface_line_width", - "maximum_value_warning": "raft_surface_line_width * 3", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "value": "raft_surface_line_width", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_interface_thickness": - { - "label": "Raft Middle Thickness", - "description": "Layer thickness of the middle raft layer.", - "unit": "mm", - "type": "float", - "default_value": 0.15, - "value": "resolveOrValue('layer_height') * 1.5", - "minimum_value": "0.001", - "minimum_value_warning": "0.04", - "maximum_value_warning": "0.75 * machine_nozzle_size", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_interface_line_width": - { - "label": "Raft Middle Line Width", - "description": "Width of the lines in the middle raft layer. Making the second layer extrude more causes the lines to stick to the build plate.", - "unit": "mm", - "type": "float", - "default_value": 0.7, - "value": "line_width * 2", - "minimum_value": "0.001", - "minimum_value_warning": "machine_nozzle_size * 0.5", - "maximum_value_warning": "machine_nozzle_size * 3", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_interface_line_spacing": - { - "label": "Raft Middle Spacing", - "description": "The distance between the raft lines for the middle raft layer. The spacing of the middle should be quite wide, while being dense enough to support the top raft layers.", - "unit": "mm", - "type": "float", - "default_value": 0.9, - "value": "raft_interface_line_width + 0.2", - "minimum_value": "0", - "minimum_value_warning": "raft_interface_line_width", - "maximum_value_warning": "15.0", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_base_thickness": - { - "label": "Raft Base Thickness", - "description": "Layer thickness of the base raft layer. This should be a thick layer which sticks firmly to the printer build plate.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "value": "resolveOrValue('layer_height_0') * 1.2", - "minimum_value": "0.001", - "minimum_value_warning": "0.04", - "maximum_value_warning": "0.75 * raft_base_line_width", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_base_line_width": - { - "label": "Raft Base Line Width", - "description": "Width of the lines in the base raft layer. These should be thick lines to assist in build plate adhesion.", - "unit": "mm", - "type": "float", - "default_value": 0.8, - "minimum_value": "0.001", - "value": "machine_nozzle_size * 2", - "minimum_value_warning": "machine_nozzle_size * 0.5", - "maximum_value_warning": "machine_nozzle_size * 3", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_base_line_spacing": - { - "label": "Raft Base Line Spacing", - "description": "The distance between the raft lines for the base raft layer. Wide spacing makes for easy removal of the raft from the build plate.", - "unit": "mm", - "type": "float", - "default_value": 1.6, - "value": "raft_base_line_width * 2", - "minimum_value": "0", - "minimum_value_warning": "raft_base_line_width", - "maximum_value_warning": "100", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_speed": - { - "label": "Raft Print Speed", - "description": "The speed at which the raft is printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "200", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "value": "speed_print / 60 * 30", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr", - "children": - { - "raft_surface_speed": - { - "label": "Raft Top Print Speed", - "description": "The speed at which the top raft layers are printed. These should be printed a bit slower, so that the nozzle can slowly smooth out adjacent surface lines.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "100", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "value": "raft_speed", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_interface_speed": - { - "label": "Raft Middle Print Speed", - "description": "The speed at which the middle raft layer is printed. This should be printed quite slowly, as the volume of material coming out of the nozzle is quite high.", - "unit": "mm/s", - "type": "float", - "default_value": 15, - "value": "raft_speed * 0.75", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_base_speed": - { - "label": "Raft Base Print Speed", - "description": "The speed at which the base raft layer is printed. This should be printed quite slowly, as the volume of material coming out of the nozzle is quite high.", - "unit": "mm/s", - "type": "float", - "default_value": 15, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "200", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "value": "0.75 * raft_speed", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - } - } - }, - "raft_acceleration": - { - "label": "Raft Print Acceleration", - "description": "The acceleration with which the raft is printed.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "value": "acceleration_print", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr", - "children": - { - "raft_surface_acceleration": - { - "label": "Raft Top Print Acceleration", - "description": "The acceleration with which the top raft layers are printed.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "raft_acceleration", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_interface_acceleration": - { - "label": "Raft Middle Print Acceleration", - "description": "The acceleration with which the middle raft layer is printed.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "raft_acceleration", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_base_acceleration": - { - "label": "Raft Base Print Acceleration", - "description": "The acceleration with which the base raft layer is printed.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "raft_acceleration", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - } - } - }, - "raft_jerk": - { - "label": "Raft Print Jerk", - "description": "The jerk with which the raft is printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "minimum_value": "0", - "minimum_value_warning": "5", - "maximum_value_warning": "50", - "value": "jerk_print", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr", - "children": - { - "raft_surface_jerk": - { - "label": "Raft Top Print Jerk", - "description": "The jerk with which the top raft layers are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "raft_jerk", - "minimum_value": "0", - "minimum_value_warning": "5", - "maximum_value_warning": "100", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_interface_jerk": - { - "label": "Raft Middle Print Jerk", - "description": "The jerk with which the middle raft layer is printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "raft_jerk", - "minimum_value": "0", - "minimum_value_warning": "5", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_base_jerk": - { - "label": "Raft Base Print Jerk", - "description": "The jerk with which the base raft layer is printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "raft_jerk", - "minimum_value": "0", - "minimum_value_warning": "5", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - } - } - }, - "raft_fan_speed": - { - "label": "Raft Fan Speed", - "description": "The fan speed for the raft.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "settable_per_mesh": false, - "settable_per_extruder": true, - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "adhesion_extruder_nr", - "children": - { - "raft_surface_fan_speed": - { - "label": "Raft Top Fan Speed", - "description": "The fan speed for the top raft layers.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "value": "raft_fan_speed", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_interface_fan_speed": - { - "label": "Raft Middle Fan Speed", - "description": "The fan speed for the middle raft layer.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "value": "raft_fan_speed", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_base_fan_speed": - { - "label": "Raft Base Fan Speed", - "description": "The fan speed for the base raft layer.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "value": "raft_fan_speed", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - } - } - } - } - }, - "dual": - { - "label": "Dual Extrusion", - "type": "category", - "icon": "category_dual", - "description": "Settings used for printing with multiple extruders.", - "children": - { - "prime_tower_enable": - { - "label": "Enable Prime Tower", - "description": "Print a tower next to the print which serves to prime the material after each nozzle switch.", - "type": "bool", - "enabled": "extruders_enabled_count > 1", - "default_value": false, - "resolve": "any(extruderValues('prime_tower_enable'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "prime_tower_circular": - { - "label": "Circular Prime Tower", - "description": "Make the prime tower as a circular shape.", - "type": "bool", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": true, - "resolve": "any(extruderValues('prime_tower_circular'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "prime_tower_size": - { - "label": "Prime Tower Size", - "description": "The width of the prime tower.", - "type": "float", - "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 20, - "resolve": "max(extruderValues('prime_tower_size'))", - "minimum_value": "0", - "maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)", - "minimum_value_warning": "max(extruderValues('prime_tower_line_width')) * 2", - "maximum_value_warning": "20", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "prime_tower_min_volume": - { - "label": "Prime Tower Minimum Volume", - "description": "The minimum volume for each layer of the prime tower in order to purge enough material.", - "unit": "mm³", - "type": "float", - "default_value": 6, - "minimum_value": "0", - "maximum_value_warning": "((resolveOrValue('prime_tower_size') * 0.5) ** 2 * 3.14159 * resolveOrValue('layer_height') if prime_tower_circular else resolveOrValue('prime_tower_size') ** 2 * resolveOrValue('layer_height')) - sum(extruderValues('prime_tower_min_volume')) + prime_tower_min_volume", - "enabled": "resolveOrValue('prime_tower_enable')", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "prime_tower_position_x": - { - "label": "Prime Tower X Position", - "description": "The x coordinate of the position of the prime tower.", - "type": "float", - "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 200, - "value": "machine_width - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - 1", - "maximum_value": "machine_width / 2 if machine_center_is_zero else machine_width", - "minimum_value": "resolveOrValue('prime_tower_size') - machine_width / 2 if machine_center_is_zero else resolveOrValue('prime_tower_size')", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "prime_tower_position_y": - { - "label": "Prime Tower Y Position", - "description": "The y coordinate of the position of the prime tower.", - "type": "float", - "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 200, - "value": "machine_depth - prime_tower_size - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - 1", - "maximum_value": "machine_depth / 2 - resolveOrValue('prime_tower_size') if machine_center_is_zero else machine_depth - resolveOrValue('prime_tower_size')", - "minimum_value": "machine_depth / -2 if machine_center_is_zero else 0", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "prime_tower_flow": - { - "label": "Prime Tower Flow", - "description": "Flow compensation: the amount of material extruded is multiplied by this value.", - "type": "float", - "unit": "%", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 100, - "value": "material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "prime_tower_wipe_enabled": - { - "label": "Wipe Inactive Nozzle on Prime Tower", - "description": "After printing the prime tower with one nozzle, wipe the oozed material from the other nozzle off on the prime tower.", - "type": "bool", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "ooze_shield_enabled": - { - "label": "Enable Ooze Shield", - "description": "Enable exterior ooze shield. This will create a shell around the model which is likely to wipe a second nozzle if it's at the same height as the first nozzle.", - "type": "bool", - "resolve": "any(extruderValues('ooze_shield_enabled'))", - "enabled": "extruders_enabled_count > 1", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "ooze_shield_angle": - { - "label": "Ooze Shield Angle", - "description": "The maximum angle a part in the ooze shield will have. With 0 degrees being vertical, and 90 degrees being horizontal. A smaller angle leads to less failed ooze shields, but more material.", - "type": "float", - "unit": "°", - "enabled": "resolveOrValue('ooze_shield_enabled')", - "default_value": 60, - "resolve": "min(extruderValues('ooze_shield_angle'))", - "minimum_value": "0", - "maximum_value": "90", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "ooze_shield_dist": - { - "label": "Ooze Shield Distance", - "description": "Distance of the ooze shield from the print, in the X/Y directions.", - "type": "float", - "unit": "mm", - "enabled": "resolveOrValue('ooze_shield_enabled')", - "default_value": 2, - "resolve": "max(extruderValues('ooze_shield_dist'))", - "minimum_value": "0", - "maximum_value_warning": "20", - "settable_per_mesh": false, - "settable_per_extruder": false - } - } - }, - "meshfix": - { - "label": "Mesh Fixes", - "type": "category", - "icon": "category_fixes", - "description": "category_fixes", - "children": - { - "meshfix_union_all": - { - "label": "Union Overlapping Volumes", - "description": "Ignore the internal geometry arising from overlapping volumes within a mesh and print the volumes as one. This may cause unintended internal cavities to disappear.", - "type": "bool", - "default_value": true, - "settable_per_mesh": true - }, - "meshfix_union_all_remove_holes": - { - "label": "Remove All Holes", - "description": "Remove the holes in each layer and keep only the outside shape. This will ignore any invisible internal geometry. However, it also ignores layer holes which can be viewed from above or below.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, - "meshfix_extensive_stitching": - { - "label": "Extensive Stitching", - "description": "Extensive stitching tries to stitch up open holes in the mesh by closing the hole with touching polygons. This option can introduce a lot of processing time.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, - "meshfix_keep_open_polygons": - { - "label": "Keep Disconnected Faces", - "description": "Normally Cura tries to stitch up small holes in the mesh and remove parts of a layer with big holes. Enabling this option keeps those parts which cannot be stitched. This option should be used as a last resort option when everything else fails to produce proper g-code.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, - "multiple_mesh_overlap": - { - "label": "Merged Meshes Overlap", - "description": "Make meshes which are touching each other overlap a bit. This makes them bond together better.", - "type": "float", - "unit": "mm", - "default_value": 0.15, - "minimum_value": "0", - "maximum_value_warning": "1.0", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "carve_multiple_volumes": - { - "label": "Remove Mesh Intersection", - "description": "Remove areas where multiple meshes are overlapping with each other. This may be used if merged dual material objects overlap with each other.", - "type": "bool", - "default_value": true, - "value": "extruders_enabled_count > 1", - "enabled": "all(p != 'surface' for p in extruderValues('magic_mesh_surface_mode'))", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true - }, - "alternate_carve_order": - { - "label": "Alternate Mesh Removal", - "description": "Switch to which mesh intersecting volumes will belong with every layer, so that the overlapping meshes become interwoven. Turning this setting off will cause one of the meshes to obtain all of the volume in the overlap, while it is removed from the other meshes.", - "type": "bool", - "default_value": true, - "enabled": "carve_multiple_volumes and all(p != 'surface' for p in extruderValues('magic_mesh_surface_mode'))", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true - }, - "remove_empty_first_layers": - { - "label": "Remove Empty First Layers", - "description": "Remove empty layers beneath the first printed layer if they are present. Disabling this setting can cause empty first layers if the Slicing Tolerance setting is set to Exclusive or Middle.", - "type": "bool", - "default_value": true, - "enabled": "not support_enable", - "settable_per_mesh": false, - "settable_per_extruder": false - } - } - }, - "blackmagic": - { - "label": "Special Modes", - "type": "category", - "icon": "category_blackmagic", - "description": "category_blackmagic", - "children": - { - "print_sequence": - { - "label": "Print Sequence", - "description": "Whether to print all models one layer at a time or to wait for one model to finish, before moving on to the next. One at a time mode is only possible if all models are separated in such a way that the whole print head can move in between and all models are lower than the distance between the nozzle and the X/Y axes.", - "type": "enum", - "options": - { - "all_at_once": "All at Once", - "one_at_a_time": "One at a Time" - }, - "default_value": "all_at_once", - "enabled": "extruders_enabled_count == 1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "infill_mesh": - { - "label": "Infill Mesh", - "description": "Use this mesh to modify the infill of other meshes with which it overlaps. Replaces infill regions of other meshes with regions for this mesh. It's suggested to only print one Wall and no Top/Bottom Skin for this mesh.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "infill_mesh_order": - { - "label": "Infill Mesh Order", - "description": "Determines which infill mesh is inside the infill of another infill mesh. An infill mesh with a higher order will modify the infill of infill meshes with lower order and normal meshes.", - "default_value": 0, - "value": "1 if infill_mesh else 0", - "minimum_value_warning": "1", - "maximum_value_warning": "50", - "type": "int", - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "cutting_mesh": - { - "label": "Cutting Mesh", - "description": "Limit the volume of this mesh to within other meshes. You can use this to make certain areas of one mesh print with different settings and with a whole different extruder.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "mold_enabled": - { - "label": "Mold", - "description": "Print models as a mold, which can be cast in order to get a model which resembles the models on the build plate.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, - "mold_width": - { - "label": "Minimal Mold Width", - "description": "The minimal distance between the ouside of the mold and the outside of the model.", - "unit": "mm", - "type": "float", - "minimum_value_warning": "wall_line_width_0 * 2", - "maximum_value_warning": "100", - "default_value": 5, - "settable_per_mesh": true, - "enabled": "mold_enabled" - }, - "mold_roof_height": - { - "label": "Mold Roof Height", - "description": "The height above horizontal parts in your model which to print mold.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "5", - "default_value": 0.5, - "settable_per_mesh": true, - "enabled": "mold_enabled" - }, - "mold_angle": - { - "label": "Mold Angle", - "description": "The angle of overhang of the outer walls created for the mold. 0° will make the outer shell of the mold vertical, while 90° will make the outside of the model follow the contour of the model.", - "unit": "°", - "type": "float", - "minimum_value": "-89", - "minimum_value_warning": "0", - "maximum_value_warning": "support_angle", - "maximum_value": "90", - "default_value": 40, - "settable_per_mesh": true, - "enabled": "mold_enabled" - }, - "support_mesh": - { - "label": "Support Mesh", - "description": "Use this mesh to specify support areas. This can be used to generate support structure.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "anti_overhang_mesh": - { - "label": "Anti Overhang Mesh", - "description": "Use this mesh to specify where no part of the model should be detected as overhang. This can be used to remove unwanted support structure.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "magic_mesh_surface_mode": - { - "label": "Surface Mode", - "description": "Treat the model as a surface only, a volume, or volumes with loose surfaces. The normal print mode only prints enclosed volumes. \"Surface\" prints a single wall tracing the mesh surface with no infill and no top/bottom skin. \"Both\" prints enclosed volumes like normal and any remaining polygons as surfaces.", - "type": "enum", - "options": - { - "normal": "Normal", - "surface": "Surface", - "both": "Both" - }, - "default_value": "normal", - "settable_per_mesh": true - }, - "magic_spiralize": - { - "label": "Spiralize Outer Contour", - "description": "Spiralize smooths out the Z move of the outer edge. This will create a steady Z increase over the whole print. This feature turns a solid model into a single walled print with a solid bottom. This feature should only be enabled when each layer only contains a single part.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "smooth_spiralized_contours": - { - "label": "Smooth Spiralized Contours", - "description": "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z-seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details.", - "type": "bool", - "default_value": true, - "enabled": "magic_spiralize", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "relative_extrusion": - { - "label": "Relative Extrusion", - "description": "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the g-code. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any g-code script is output.", - "type": "bool", - "default_value": false, - "value": "machine_gcode_flavor==\"RepRap (RepRap)\"", - "settable_per_mesh": false, - "settable_per_extruder": false - } - } - }, - "experimental": - { - "label": "Experimental", - "type": "category", - "icon": "category_experimental", - "description": "experimental!", - "children": - { - "support_tree_enable": - { - "label": "Tree Support", - "description": "Generate a tree-like support with branches that support your print. This may reduce material usage and print time, but greatly increases slicing time.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false - }, - "support_tree_angle": - { - "label": "Tree Support Branch Angle", - "description": "The angle of the branches. Use a lower angle to make them more vertical and more stable. Use a higher angle to be able to have more reach.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "maximum_value": "90", - "maximum_value_warning": "60", - "default_value": 40, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_tree_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_tree_branch_distance": - { - "label": "Tree Support Branch Distance", - "description": "How far apart the branches need to be when they touch the model. Making this distance small will cause the tree support to touch the model at more points, causing better overhang but making support harder to remove.", - "unit": "mm", - "type": "float", - "minimum_value": "0.001", - "default_value": 1, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_tree_enable", - "settable_per_mesh": true - }, - "support_tree_branch_diameter": - { - "label": "Tree Support Branch Diameter", - "description": "The diameter of the thinnest branches of tree support. Thicker branches are more sturdy. Branches towards the base will be thicker than this.", - "unit": "mm", - "type": "float", - "minimum_value": "0.001", - "minimum_value_warning": "support_line_width * 2", - "default_value": 2, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_tree_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_tree_branch_diameter_angle": - { - "label": "Tree Support Branch Diameter Angle", - "description": "The angle of the branches' diameter as they gradually become thicker towards the bottom. An angle of 0 will cause the branches to have uniform thickness over their length. A bit of an angle can increase stability of the tree support.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "maximum_value": "89.9999", - "maximum_value_warning": "15", - "default_value": 5, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_tree_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_tree_collision_resolution": - { - "label": "Tree Support Collision Resolution", - "description": "Resolution to compute collisions with to avoid hitting the model. Setting this lower will produce more accurate trees that fail less often, but increases slicing time dramatically.", - "unit": "mm", - "type": "float", - "minimum_value": "0.001", - "minimum_value_warning": "support_line_width / 4", - "maximum_value_warning": "support_line_width * 2", - "default_value": 0.4, - "value": "support_line_width / 2", - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_tree_enable and support_tree_branch_diameter_angle > 0", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_tree_wall_thickness": - { - "label": "Tree Support Wall Thickness", - "description": "The thickness of the walls of the branches of tree support. Thicker walls take longer to print but don't fall over as easily.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "wall_line_width", - "default_value": 0.8, - "value": "support_line_width", - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_tree_enable", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_tree_wall_count": - { - "label": "Tree Support Wall Line Count", - "description": "The number of walls of the branches of tree support. Thicker walls take longer to print but don't fall over as easily.", - "type": "int", - "minimum_value": "0", - "minimum_value_warning": "1", - "default_value": 1, - "value": "round(support_tree_wall_thickness / support_line_width)", - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_tree_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "slicing_tolerance": - { - "label": "Slicing Tolerance", - "description": "How to slice layers with diagonal surfaces. The areas of a layer can be generated based on where the middle of the layer intersects the surface (Middle). Alternatively each layer can have the areas which fall inside of the volume throughout the height of the layer (Exclusive) or a layer has the areas which fall inside anywhere within the layer (Inclusive). Exclusive retains the most details, Inclusive makes for the best fit and Middle takes the least time to process.", - "type": "enum", - "options": - { - "middle": "Middle", - "exclusive": "Exclusive", - "inclusive": "Inclusive" - }, - "default_value": "middle", - "settable_per_mesh": true - }, - "roofing_line_width": - { - "label": "Top Surface Skin Line Width", - "description": "Width of a single line of the areas at the top of the print.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "skin_line_width", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0" - }, - "roofing_pattern": - { - "label": "Top Surface Skin Pattern", - "description": "The pattern of the top most layers.", - "type": "enum", - "options": - { - "lines": "Lines", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "lines", - "value": "top_bottom_pattern", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0" - }, - "roofing_angles": - { - "label": "Top Surface Skin Line Directions", - "description": "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees).", - "type": "[int]", - "default_value": "[ ]", - "value": "skin_angles", - "enabled": "roofing_pattern != 'concentric' and roofing_layer_count > 0 and top_layers > 0", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true - }, - "infill_enable_travel_optimization": - { - "label": "Infill Travel Optimization", - "description": "When enabled, the order in which the infill lines are printed is optimized to reduce the distance travelled. The reduction in travel time achieved very much depends on the model being sliced, infill pattern, density, etc. Note that, for some models that have many small areas of infill, the time to slice the model may be greatly increased.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, - "material_flow_dependent_temperature": - { - "label": "Auto Temperature", - "description": "Change the temperature for each layer automatically with the average flow speed of that layer.", - "type": "bool", - "default_value": false, - "enabled": "machine_nozzle_temp_enabled and False", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_flow_temp_graph": - { - "label": "Flow Temperature Graph", - "description": "Data linking material flow (in mm3 per second) to temperature (degrees Celsius).", - "unit": "[[mm³,°C]]", - "type": "str", - "default_value": "[[3.5,200],[7.0,240]]", - "enabled": "False and machine_nozzle_temp_enabled and material_flow_dependent_temperature", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "minimum_polygon_circumference": - { - "label": "Minimum Polygon Circumference", - "description": "Polygons in sliced layers that have a circumference smaller than this amount will be filtered out. Lower values lead to higher resolution mesh at the cost of slicing time. It is meant mostly for high resolution SLA printers and very tiny 3D models with a lot of details.", - "unit": "mm", - "type": "float", - "default_value": 1.0, - "minimum_value": "0.001", - "minimum_value_warning": "0.05", - "maximum_value_warning": "1.0", - "settable_per_mesh": true, - "settable_per_extruder": false - }, - "meshfix_maximum_resolution": - { - "label": "Maximum Resolution", - "description": "The minimum size of a line segment after slicing. If you increase this, the mesh will have a lower resolution. This may allow the printer to keep up with the speed it has to process g-code and will increase slice speed by removing details of the mesh that it can't process anyway.", - "type": "float", - "unit": "mm", - "default_value": 0.01, - "minimum_value": "0.001", - "minimum_value_warning": "0.005", - "maximum_value_warning": "0.1", - "settable_per_mesh": true - }, - "meshfix_maximum_travel_resolution": - { - "label": "Maximum Travel Resolution", - "description": "The minimum size of a travel line segment after slicing. If you increase this, the travel moves will have less smooth corners. This may allow the printer to keep up with the speed it has to process g-code, but it may cause model avoidance to become less accurate.", - "type": "float", - "unit": "mm", - "default_value": 0.02, - "value": "meshfix_maximum_resolution * speed_travel / speed_print", - "minimum_value": "0.001", - "minimum_value_warning": "0.005", - "maximum_value_warning": "1", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_skip_some_zags": - { - "label": "Break Up Support In Chunks", - "description": "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern.", - "type": "bool", - "default_value": false, - "enabled": "support_enable and (support_pattern == 'zigzag')", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_skip_zag_per_mm": - { - "label": "Support Chunk Size", - "description": "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away.", - "type": "float", - "unit": "mm", - "default_value": 20, - "minimum_value": "0", - "minimum_value_warning": "support_line_distance", - "enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_zag_skip_count": - { - "label": "Support Chunk Line Count", - "description": "Skip one in every N connection lines to make the support structure easier to break away.", - "type": "int", - "default_value": 5, - "value": "0 if support_line_distance == 0 else round(support_skip_zag_per_mm / support_line_distance)", - "minimum_value": "1", - "minimum_value_warning": "3", - "enabled": "support_enable and (support_pattern == 'zigzag') and support_skip_some_zags", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "draft_shield_enabled": - { - "label": "Enable Draft Shield", - "description": "This will create a wall around the model, which traps (hot) air and shields against exterior airflow. Especially useful for materials which warp easily.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "draft_shield_dist": - { - "label": "Draft Shield X/Y Distance", - "description": "Distance of the draft shield from the print, in the X/Y directions.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "10", - "default_value": 10, - "resolve": "max(extruderValues('draft_shield_dist'))", - "enabled": "draft_shield_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "draft_shield_height_limitation": - { - "label": "Draft Shield Limitation", - "description": "Set the height of the draft shield. Choose to print the draft shield at the full height of the model or at a limited height.", - "type": "enum", - "options": - { - "full": "Full", - "limited": "Limited" - }, - "default_value": "full", - "resolve": "'full' if 'full' in extruderValues('draft_shield_height_limitation') else 'limited'", - "enabled": "draft_shield_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "draft_shield_height": - { - "label": "Draft Shield Height", - "description": "Height limitation of the draft shield. Above this height no draft shield will be printed.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "9999", - "default_value": 10, - "value": "10", - "enabled": "draft_shield_enabled and draft_shield_height_limitation == 'limited'", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "conical_overhang_enabled": - { - "label": "Make Overhang Printable", - "description": "Change the geometry of the printed model such that minimal support is required. Steep overhangs will become shallow overhangs. Overhanging areas will drop down to become more vertical.", - "type": "bool", - "default_value": false - }, - "conical_overhang_angle": - { - "label": "Maximum Model Angle", - "description": "The maximum angle of overhangs after the they have been made printable. At a value of 0° all overhangs are replaced by a piece of model connected to the build plate, 90° will not change the model in any way.", - "unit": "°", - "type": "float", - "minimum_value": "-89", - "minimum_value_warning": "0", - "maximum_value": "89", - "default_value": 50, - "enabled": "conical_overhang_enabled" - }, - "coasting_enable": - { - "label": "Enable Coasting", - "description": "Coasting replaces the last part of an extrusion path with a travel path. The oozed material is used to print the last piece of the extrusion path in order to reduce stringing.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "coasting_volume": - { - "label": "Coasting Volume", - "description": "The volume otherwise oozed. This value should generally be close to the nozzle diameter cubed.", - "unit": "mm³", - "type": "float", - "default_value": 0.064, - "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size * 5", - "enabled": "coasting_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "coasting_min_volume": - { - "label": "Minimum Volume Before Coasting", - "description": "The smallest volume an extrusion path should have before allowing coasting. For smaller extrusion paths, less pressure has been built up in the bowden tube and so the coasted volume is scaled linearly. This value should always be larger than the Coasting Volume.", - "unit": "mm³", - "type": "float", - "default_value": 0.8, - "minimum_value": "0", - "maximum_value_warning": "10.0", - "enabled": "coasting_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "coasting_speed": - { - "label": "Coasting Speed", - "description": "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops.", - "unit": "%", - "type": "float", - "default_value": 90, - "minimum_value": "0.0001", - "maximum_value_warning": "100", - "enabled": "coasting_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "skin_alternate_rotation": - { - "label": "Alternate Skin Rotation", - "description": "Alternate the direction in which the top/bottom layers are printed. Normally they are printed diagonally only. This setting adds the X-only and Y-only directions.", - "type": "bool", - "default_value": false, - "enabled": "top_bottom_pattern != 'concentric'", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "cross_infill_pocket_size": - { - "label": "Cross 3D Pocket Size", - "description": "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself.", - "unit": "mm", - "type": "float", - "default_value": 2.0, - "value": "infill_line_distance", - "minimum_value": "0", - "maximum_value_warning": "infill_line_distance * math.sqrt(2)", - "enabled": "infill_pattern == 'cross_3d'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "cross_infill_density_image": - { - "label": "Cross Infill Density Image", - "description": "The file location of an image of which the brightness values determine the minimal density at the corresponding location in the infill of the print.", - "type": "str", - "default_value": "", - "enabled": "infill_pattern == 'cross' or infill_pattern == 'cross_3d'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "cross_support_density_image": - { - "label": "Cross Fill Density Image for Support", - "description": "The file location of an image of which the brightness values determine the minimal density at the corresponding location in the support.", - "type": "str", - "default_value": "", - "enabled": "support_pattern == 'cross' or support_pattern == 'cross_3d'", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "spaghetti_infill_enabled": - { - "label": "Spaghetti Infill", - "description": "Print the infill every so often, so that the filament will curl up chaotically inside the object. This reduces print time, but the behaviour is rather unpredictable.", - "type": "bool", - "default_value": false, - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "spaghetti_infill_stepped": - { - "label": "Spaghetti Infill Stepping", - "description": "Whether to print spaghetti infill in steps or extrude all the infill filament at the end of the print.", - "type": "bool", - "default_value": true, - "enabled": "infill_sparse_density > 0 and spaghetti_infill_enabled", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "spaghetti_max_infill_angle": - { - "label": "Spaghetti Maximum Infill Angle", - "description": "The maximum angle w.r.t. the Z axis of the inside of the print for areas which are to be filled with spaghetti infill afterwards. Lowering this value causes more angled parts in your model to be filled on each layer.", - "unit": "°", - "type": "float", - "default_value": 10, - "minimum_value": "0", - "maximum_value": "90", - "maximum_value_warning": "45", - "enabled": "infill_sparse_density > 0 and spaghetti_infill_enabled and spaghetti_infill_stepped", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "spaghetti_max_height": - { - "label": "Spaghetti Infill Maximum Height", - "description": "The maximum height of inside space which can be combined and filled from the top.", - "unit": "mm", - "type": "float", - "default_value": 2.0, - "minimum_value": "layer_height", - "maximum_value_warning": "10.0", - "enabled": "infill_sparse_density > 0 and spaghetti_infill_enabled and spaghetti_infill_stepped", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "spaghetti_inset": - { - "label": "Spaghetti Inset", - "description": "The offset from the walls from where the spaghetti infill will be printed.", - "unit": "mm", - "type": "float", - "default_value": 0.2, - "minimum_value_warning": "0", - "maximum_value_warning": "5.0", - "enabled": "infill_sparse_density > 0 and spaghetti_infill_enabled", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "spaghetti_flow": - { - "label": "Spaghetti Flow", - "description": "Adjusts the density of the spaghetti infill. Note that the Infill Density only controls the line spacing of the filling pattern, not the amount of extrusion for spaghetti infill.", - "unit": "%", - "type": "float", - "default_value": 20, - "minimum_value": "0", - "maximum_value_warning": "100", - "enabled": "infill_sparse_density > 0 and spaghetti_infill_enabled", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "spaghetti_infill_extra_volume": - { - "label": "Spaghetti Infill Extra Volume", - "description": "A correction term to adjust the total volume being extruded each time when filling spaghetti.", - "unit": "mm³", - "type": "float", - "default_value": 0, - "minimum_value_warning": "0", - "maximum_value_warning": "100", - "enabled": "infill_sparse_density > 0 and spaghetti_infill_enabled", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "support_conical_enabled": - { - "label": "Enable Conical Support", - "description": "Experimental feature: Make support areas smaller at the bottom than at the overhang.", - "type": "bool", - "default_value": false, - "enabled": "support_enable", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": true - }, - "support_conical_angle": - { - "label": "Conical Support Angle", - "description": "The angle of the tilt of conical support. With 0 degrees being vertical, and 90 degrees being horizontal. Smaller angles cause the support to be more sturdy, but consist of more material. Negative angles cause the base of the support to be wider than the top.", - "unit": "°", - "type": "float", - "minimum_value": "-90", - "minimum_value_warning": "-45", - "maximum_value_warning": "45", - "maximum_value": "90", - "default_value": 30, - "enabled": "support_conical_enabled and support_enable", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": true - }, - "support_conical_min_width": - { - "label": "Conical Support Minimum Width", - "description": "Minimum width to which the base of the conical support area is reduced. Small widths can lead to unstable support structures.", - "unit": "mm", - "default_value": 5.0, - "minimum_value": "0", - "minimum_value_warning": "machine_nozzle_size * 3", - "maximum_value_warning": "100.0", - "type": "float", - "enabled": "support_conical_enabled and support_enable", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": true - }, - "magic_fuzzy_skin_enabled": - { - "label": "Fuzzy Skin", - "description": "Randomly jitter while printing the outer wall, so that the surface has a rough and fuzzy look.", - "type": "bool", - "default_value": false, - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "magic_fuzzy_skin_thickness": - { - "label": "Fuzzy Skin Thickness", - "description": "The width within which to jitter. It's advised to keep this below the outer wall width, since the inner walls are unaltered.", - "type": "float", - "unit": "mm", - "default_value": 0.3, - "minimum_value": "0.001", - "maximum_value_warning": "wall_line_width_0", - "enabled": "magic_fuzzy_skin_enabled", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "magic_fuzzy_skin_point_density": - { - "label": "Fuzzy Skin Density", - "description": "The average density of points introduced on each polygon in a layer. Note that the original points of the polygon are discarded, so a low density results in a reduction of the resolution.", - "type": "float", - "unit": "1/mm", - "default_value": 1.25, - "minimum_value": "0.008", - "minimum_value_warning": "0.1", - "maximum_value_warning": "10", - "maximum_value": "2 / magic_fuzzy_skin_thickness", - "enabled": "magic_fuzzy_skin_enabled", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true, - "children": - { - "magic_fuzzy_skin_point_dist": - { - "label": "Fuzzy Skin Point Distance", - "description": "The average distance between the random points introduced on each line segment. Note that the original points of the polygon are discarded, so a high smoothness results in a reduction of the resolution. This value must be higher than half the Fuzzy Skin Thickness.", - "type": "float", - "unit": "mm", - "default_value": 0.8, - "minimum_value": "magic_fuzzy_skin_thickness / 2", - "minimum_value_warning": "0.1", - "maximum_value_warning": "10", - "value": "10000 if magic_fuzzy_skin_point_density == 0 else 1 / magic_fuzzy_skin_point_density", - "enabled": "magic_fuzzy_skin_enabled", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - } - } - }, - "flow_rate_max_extrusion_offset": - { - "label": "Flow rate compensation max extrusion offset", - "description": "The maximum distance in mm to compensate.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "10", - "default_value": 0, - "value": "0", - "enabled": true, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "flow_rate_extrusion_offset_factor": - { - "label": "Flow rate compensation factor", - "description": "The multiplication factor for the flow rate -> distance translation.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "100", - "default_value": 100, - "value": "100", - "enabled": true, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_enabled": - { - "label": "Wire Printing", - "description": "Print only the outside surface with a sparse webbed structure, printing 'in thin air'. This is realized by horizontally printing the contours of the model at given Z intervals which are connected via upward and diagonally downward lines.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_height": - { - "label": "WP Connection Height", - "description": "The height of the upward and diagonally downward lines between two horizontal parts. This determines the overall density of the net structure. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 3, - "value": "machine_nozzle_head_distance", - "minimum_value": "0.0001", - "maximum_value_warning": "20", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_roof_inset": - { - "label": "WP Roof Inset Distance", - "description": "The distance covered when making a connection from a roof outline inward. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 3, - "minimum_value": "0", - "minimum_value_warning": "machine_nozzle_size", - "maximum_value_warning": "20", - "enabled": "wireframe_enabled", - "value": "wireframe_height", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_printspeed": - { - "label": "WP Speed", - "description": "Speed at which the nozzle moves when extruding material. Only applies to Wire Printing.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)", - "maximum_value_warning": "50", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "children": - { - "wireframe_printspeed_bottom": - { - "label": "WP Bottom Printing Speed", - "description": "Speed of printing the first layer, which is the only layer touching the build platform. Only applies to Wire Printing.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "50", - "enabled": "wireframe_enabled", - "value": "wireframe_printspeed", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_printspeed_up": - { - "label": "WP Upward Printing Speed", - "description": "Speed of printing a line upward 'in thin air'. Only applies to Wire Printing.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)", - "maximum_value_warning": "50", - "enabled": "wireframe_enabled", - "value": "wireframe_printspeed", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_printspeed_down": - { - "label": "WP Downward Printing Speed", - "description": "Speed of printing a line diagonally downward. Only applies to Wire Printing.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + max(max_feedrate_z_override, machine_max_feedrate_z) ** 2)", - "maximum_value_warning": "50", - "enabled": "wireframe_enabled", - "value": "wireframe_printspeed", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_printspeed_flat": - { - "label": "WP Horizontal Printing Speed", - "description": "Speed of printing the horizontal contours of the model. Only applies to Wire Printing.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "100", - "value": "wireframe_printspeed", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - } - } - }, - "wireframe_flow": - { - "label": "WP Flow", - "description": "Flow compensation: the amount of material extruded is multiplied by this value. Only applies to Wire Printing.", - "unit": "%", - "default_value": 100, - "minimum_value": "0", - "maximum_value_warning": "100", - "type": "float", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "children": - { - "wireframe_flow_connection": - { - "label": "WP Connection Flow", - "description": "Flow compensation when going up or down. Only applies to Wire Printing.", - "unit": "%", - "default_value": 100, - "minimum_value": "0", - "maximum_value_warning": "100", - "type": "float", - "enabled": "wireframe_enabled", - "value": "wireframe_flow", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_flow_flat": - { - "label": "WP Flat Flow", - "description": "Flow compensation when printing flat lines. Only applies to Wire Printing.", - "unit": "%", - "default_value": 100, - "minimum_value": "0", - "maximum_value_warning": "100", - "type": "float", - "enabled": "wireframe_enabled", - "value": "wireframe_flow", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - } - } - }, - "wireframe_top_delay": - { - "label": "WP Top Delay", - "description": "Delay time after an upward move, so that the upward line can harden. Only applies to Wire Printing.", - "unit": "s", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "maximum_value_warning": "1", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_bottom_delay": - { - "label": "WP Bottom Delay", - "description": "Delay time after a downward move. Only applies to Wire Printing.", - "unit": "s", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "maximum_value_warning": "1", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_flat_delay": - { - "label": "WP Flat Delay", - "description": "Delay time between two horizontal segments. Introducing such a delay can cause better adhesion to previous layers at the connection points, while too long delays cause sagging. Only applies to Wire Printing.", - "unit": "s", - "type": "float", - "default_value": 0.1, - "minimum_value": "0", - "maximum_value_warning": "0.5", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_up_half_speed": - { - "label": "WP Ease Upward", - "description": "Distance of an upward move which is extruded with half speed.\nThis can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 0.3, - "minimum_value": "0", - "maximum_value_warning": "5.0", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_top_jump": - { - "label": "WP Knot Size", - "description": "Creates a small knot at the top of an upward line, so that the consecutive horizontal layer has a better chance to connect to it. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 0.6, - "minimum_value": "0", - "maximum_value_warning": "2.0", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_fall_down": - { - "label": "WP Fall Down", - "description": "Distance with which the material falls down after an upward extrusion. This distance is compensated for. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 0.5, - "minimum_value": "0", - "maximum_value_warning": "wireframe_height", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_drag_along": - { - "label": "WP Drag Along", - "description": "Distance with which the material of an upward extrusion is dragged along with the diagonally downward extrusion. This distance is compensated for. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 0.6, - "minimum_value": "0", - "maximum_value_warning": "wireframe_height", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_strategy": - { - "label": "WP Strategy", - "description": "Strategy for making sure two consecutive layers connect at each connection point. Retraction lets the upward lines harden in the right position, but may cause filament grinding. A knot can be made at the end of an upward line to heighten the chance of connecting to it and to let the line cool; however, it may require slow printing speeds. Another strategy is to compensate for the sagging of the top of an upward line; however, the lines won't always fall down as predicted.", - "type": "enum", - "options": - { - "compensate": "Compensate", - "knot": "Knot", - "retract": "Retract" - }, - "default_value": "compensate", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_straight_before_down": - { - "label": "WP Straighten Downward Lines", - "description": "Percentage of a diagonally downward line which is covered by a horizontal line piece. This can prevent sagging of the top most point of upward lines. Only applies to Wire Printing.", - "type": "float", - "unit": "%", - "default_value": 20, - "minimum_value": "0", - "maximum_value": "100", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_roof_fall_down": - { - "label": "WP Roof Fall Down", - "description": "The distance which horizontal roof lines printed 'in thin air' fall down when being printed. This distance is compensated for. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 2, - "minimum_value_warning": "0", - "maximum_value_warning": "wireframe_roof_inset", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_roof_drag_along": - { - "label": "WP Roof Drag Along", - "description": "The distance of the end piece of an inward line which gets dragged along when going back to the outer outline of the roof. This distance is compensated for. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 0.8, - "minimum_value": "0", - "maximum_value_warning": "10", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_roof_outer_delay": - { - "label": "WP Roof Outer Delay", - "description": "Time spent at the outer perimeters of hole which is to become a roof. Longer times can ensure a better connection. Only applies to Wire Printing.", - "type": "float", - "unit": "s", - "default_value": 0.2, - "minimum_value": "0", - "maximum_value_warning": "2.0", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_nozzle_clearance": - { - "label": "WP Nozzle Clearance", - "description": "Distance between the nozzle and horizontally downward lines. Larger clearance results in diagonally downward lines with a less steep angle, which in turn results in less upward connections with the next layer. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 1, - "minimum_value_warning": "0", - "maximum_value_warning": "10.0", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "adaptive_layer_height_enabled": - { - "label": "Use adaptive layers", - "description": "Adaptive layers computes the layer heights depending on the shape of the model.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "adaptive_layer_height_variation": - { - "label": "Adaptive layers maximum variation", - "description": "The maximum allowed height different from the base layer height.", - "type": "float", - "enabled": "adaptive_layer_height_enabled", - "unit": "mm", - "default_value": 0.1, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "adaptive_layer_height_variation_step": - { - "label": "Adaptive layers variation step size", - "description": "The difference in height of the next layer height compared to the previous one.", - "type": "float", - "enabled": "adaptive_layer_height_enabled", - "default_value": 0.01, - "unit": "mm", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "adaptive_layer_height_threshold": - { - "label": "Adaptive layers threshold", - "description": "Threshold whether to use a smaller layer or not. This number is compared to the tan of the steepest slope in a layer.", - "type": "float", - "enabled": "adaptive_layer_height_enabled", - "default_value": 200.0, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wall_overhang_angle": - { - "label": "Overhanging Wall Angle", - "description": "Walls that overhang more than this angle will be printed using overhanging wall settings. When the value is 90, no walls will be treated as overhanging.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "2", - "maximum_value": "90", - "default_value": 90, - "settable_per_mesh": true - }, - "wall_overhang_speed_factor": - { - "label": "Overhanging Wall Speed", - "description": "Overhanging walls will be printed at this percentage of their normal print speed.", - "unit": "%", - "type": "float", - "default_value": 100, - "minimum_value": "10", - "minimum_value_warning": "25", - "maximum_value": "100", - "settable_per_mesh": true - }, - "bridge_settings_enabled": - { - "label": "Enable Bridge Settings", - "description": "Detect bridges and modify print speed, flow and fan settings while bridges are printed.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "bridge_wall_min_length": - { - "label": "Minimum Bridge Wall Length", - "description": "Unsupported walls shorter than this will be printed using the normal wall settings. Longer unsupported walls will be printed using the bridge wall settings.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "default_value": 5, - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true, - "settable_per_extruder": false - }, - "bridge_skin_support_threshold": - { - "label": "Bridge Skin Support Threshold", - "description": "If a skin region is supported for less than this percentage of its area, print it using the bridge settings. Otherwise it is printed using the normal skin settings.", - "unit": "%", - "default_value": 50, - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_wall_coast": - { - "label": "Bridge Wall Coasting", - "description": "This controls the distance the extruder should coast immediately before a bridge wall begins. Coasting before the bridge starts can reduce the pressure in the nozzle and may produce a flatter bridge.", - "unit": "%", - "default_value": 100, - "type": "float", - "minimum_value": "0", - "maximum_value": "500", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_wall_speed": - { - "label": "Bridge Wall Speed", - "description": "The speed at which the bridge walls are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "cool_min_speed", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "default_value": 15, - "value": "max(cool_min_speed, speed_wall_0 / 2)", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_wall_material_flow": - { - "label": "Bridge Wall Flow", - "description": "When printing bridge walls, the amount of material extruded is multiplied by this value.", - "unit": "%", - "default_value": 50, - "type": "float", - "minimum_value": "5", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_skin_speed": - { - "label": "Bridge Skin Speed", - "description": "The speed at which bridge skin regions are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "cool_min_speed", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "default_value": 15, - "value": "max(cool_min_speed, speed_topbottom / 2)", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_skin_material_flow": - { - "label": "Bridge Skin Flow", - "description": "When printing bridge skin regions, the amount of material extruded is multiplied by this value.", - "unit": "%", - "default_value": 60, - "type": "float", - "minimum_value": "5", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_skin_density": - { - "label": "Bridge Skin Density", - "description": "The density of the bridge skin layer. Values less than 100 will increase the gaps between the skin lines.", - "unit": "%", - "default_value": 100, - "type": "float", - "minimum_value": "5", - "maximum_value": "100", - "minimum_value_warning": "20", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_fan_speed": - { - "label": "Bridge Fan Speed", - "description": "Percentage fan speed to use when printing bridge walls and skin.", - "unit": "%", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 100, - "type": "float", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_enable_more_layers": - { - "label": "Bridge Has Multiple Layers", - "description": "If enabled, the second and third layers above the air are printed using the following settings. Otherwise, those layers are printed using the normal settings.", - "type": "bool", - "default_value": true, - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_skin_speed_2": - { - "label": "Bridge Second Skin Speed", - "description": "Print speed to use when printing the second bridge skin layer.", - "unit": "mm/s", - "type": "float", - "minimum_value": "cool_min_speed", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "default_value": 25, - "value": "bridge_skin_speed", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_skin_material_flow_2": - { - "label": "Bridge Second Skin Flow", - "description": "When printing the second bridge skin layer, the amount of material extruded is multiplied by this value.", - "unit": "%", - "default_value": 100, - "type": "float", - "minimum_value": "5", - "maximum_value": "500", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_skin_density_2": - { - "label": "Bridge Second Skin Density", - "description": "The density of the second bridge skin layer. Values less than 100 will increase the gaps between the skin lines.", - "unit": "%", - "default_value": 75, - "type": "float", - "minimum_value": "5", - "maximum_value": "100", - "minimum_value_warning": "20", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_fan_speed_2": - { - "label": "Bridge Second Skin Fan Speed", - "description": "Percentage fan speed to use when printing the second bridge skin layer.", - "unit": "%", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "type": "float", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_skin_speed_3": - { - "label": "Bridge Third Skin Speed", - "description": "Print speed to use when printing the third bridge skin layer.", - "unit": "mm/s", - "type": "float", - "minimum_value": "cool_min_speed", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "default_value": 15, - "value": "bridge_skin_speed", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_skin_material_flow_3": - { - "label": "Bridge Third Skin Flow", - "description": "When printing the third bridge skin layer, the amount of material extruded is multiplied by this value.", - "unit": "%", - "default_value": 110, - "type": "float", - "minimum_value": "5", - "maximum_value": "500", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_skin_density_3": - { - "label": "Bridge Third Skin Density", - "description": "The density of the third bridge skin layer. Values less than 100 will increase the gaps between the skin lines.", - "unit": "%", - "default_value": 80, - "type": "float", - "minimum_value": "5", - "maximum_value": "100", - "minimum_value_warning": "20", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_fan_speed_3": - { - "label": "Bridge Third Skin Fan Speed", - "description": "Percentage fan speed to use when printing the third bridge skin layer.", - "unit": "%", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "type": "float", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - } - } - }, - "command_line_settings": { - "label": "Command Line Settings", - "description": "Settings which are only used if CuraEngine isn't called from the Cura frontend.", - "type": "category", - "enabled": false, - "children": { - "center_object": { - "description": "Whether to center the object on the middle of the build platform (0,0), instead of using the coordinate system in which the object was saved.", - "type": "bool", - "label": "Center Object", - "default_value": false, - "enabled": false - }, - "mesh_position_x": { - "description": "Offset applied to the object in the x direction.", - "type": "float", - "label": "Mesh Position X", - "default_value": 0, - "enabled": false - }, - "mesh_position_y": { - "description": "Offset applied to the object in the y direction.", - "type": "float", - "label": "Mesh Position Y", - "default_value": 0, - "enabled": false - }, - "mesh_position_z": { - "description": "Offset applied to the object in the z direction. With this you can perform what was used to be called 'Object Sink'.", - "type": "float", - "label": "Mesh Position Z", - "default_value": 0, - "enabled": false - }, - "mesh_rotation_matrix": { - "label": "Mesh Rotation Matrix", - "description": "Transformation matrix to be applied to the model when loading it from file.", - "type": "str", - "default_value": "[[1,0,0], [0,1,0], [0,0,1]]", - "enabled": false - } - } - } - } -} diff --git a/software/Print3r/settings/slicer/cura/map.ini b/software/Print3r/settings/slicer/cura/map.ini deleted file mode 100644 index f3b43753..00000000 --- a/software/Print3r/settings/slicer/cura/map.ini +++ /dev/null @@ -1,48 +0,0 @@ -infill_line_distance={$fill_density==0?0:$nozzle_diameter*100/$fill_density*2} -machine_nozzle_diameter=$nozzle_diameter -machine_material_diameter=$filament_diameter -top_layers={$top_thickness>0?int($top_thickness/$layer_height+0.5):$top_layers} -bottom_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -initial_bottom_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -wall_line_count={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} -retraction_amount=$retraction_length -machine_start_gcode=$start_gcode -machine_end_gcode=$end_gcode -retraction_amount=$retraction_length -layer_height_0={$first_layer_height>0?$first_layer_height:$layer_height} -speed_print_layer_0=$first_layer_speed -material_bed_temperature_layer_0={$first_layer_bed_temparature?$first_layer_bed_temperature:$bed_temperature} -line_width=$nozzle_diameter -infill_line_width=$nozzle_diameter -prime_tower_line_width=$nozzle_diameter -raft_surface_line_width=$nozzle_diameter -roofing_line_width=$nozzle_diameter -skin_line_width=$nozzle_diameter -skirt_brim_line_width=$nozzle_diameter -support_bottom_line_width=$nozzle_diameter -support_interface_line_width=$nozzle_diameter -support_line_width=$nozzle_diameter -support_roof_line_width=$nozzle_diameter -wall_line_width_0=$nozzle_diameter -wall_line_width=$nozzle_diameter -wall_line_width_x=$nozzle_diameter -#default_material_print_temperature=$temperature -#default_material_print_bed_temperature=$bed_temperature -material_print_temperature=$temperature -material_print_bed_temperature=$bed_temperature -material_bed_temperature_layer_0=$bed_temperature -material_print_temperature_layer_0=$first_layer_temperature -#print_temperature=$temperature -#print_bed_temperature=$bed_temperature -speed_print=$print_speed -speed_wall={$perimeter_speed?$perimeter_speed:$print_speed*0.8} -speed_infill={$infill_speed?$infill_speed:$print_speed*1.5} -retraction_speed={$retract_speed?$retract_speed:40} -speed_travel=$travel_speed -adhesion_type={$rafts>0?"raft":$brims>0?"brim":"skirt"} -brim_line_count=$brims -skirt_line_count=$skirts -raft_surface_layers=$rafts -support_enable={'$support' ne 'none' && '$support' ne '0' ? 1 : 0} -support_type={'$support' eq "bed"?"buildplate":"everywhere"} -z_seam_type={'$seam' eq 'aligned' ? 'sharpest_corner' : '$seam' eq 'nearest' ? "shortest" : '$seam' eq 'rear'? 'back' : '$seam'} diff --git a/software/Print3r/settings/slicer/cura4/base.ini b/software/Print3r/settings/slicer/cura4/base.ini deleted file mode 100644 index 7ef6e53a..00000000 --- a/software/Print3r/settings/slicer/cura4/base.ini +++ /dev/null @@ -1,531 +0,0 @@ -acceleration_enabled="False" -acceleration_infill="3000" -acceleration_ironing="3000" -acceleration_layer_0="3000" -acceleration_prime_tower="3000" -acceleration_print="3000" -acceleration_print_layer_0="3000" -acceleration_roofing="3000" -acceleration_skirt_brim="3000" -acceleration_support="3000" -acceleration_support_bottom="3000" -acceleration_support_infill="3000" -acceleration_support_interface="3000" -acceleration_support_roof="3000" -acceleration_topbottom="3000" -acceleration_travel="5000" -acceleration_travel_layer_0="5000.0" -acceleration_wall="3000" -acceleration_wall_0="3000" -acceleration_wall_x="3000" -adaptive_layer_height_enabled="False" -adaptive_layer_height_threshold="200.0" -adaptive_layer_height_variation="0.1" -adaptive_layer_height_variation_step="0.01" -adhesion_extruder_nr="0" -adhesion_type="skirt" -alternate_carve_order="True" -alternate_extra_perimeter="False" -anti_overhang_mesh="False" -blackmagic="0" -bottom_layers="2" -bottom_skin_expand_distance="1.0" -bottom_skin_preshrink="1.0" -bottom_thickness="0.8" -bridge_enable_more_layers="True" -bridge_fan_speed="100" -bridge_fan_speed_2="0" -bridge_fan_speed_3="0" -bridge_settings_enabled="False" -bridge_skin_density="100" -bridge_skin_density_2="75" -bridge_skin_density_3="80" -bridge_skin_material_flow="60" -bridge_skin_material_flow_2="100" -bridge_skin_material_flow_3="110" -bridge_skin_speed="15.0" -bridge_skin_speed_2="15.0" -bridge_skin_speed_3="15.0" -bridge_skin_support_threshold="50" -bridge_wall_coast="100" -bridge_wall_material_flow="50" -bridge_wall_min_length="5" -bridge_wall_speed="15.0" -brim_line_count="20" -brim_outside_only="True" -brim_width="8.0" -carve_multiple_volumes="False" -center_object="False" -coasting_enable="False" -coasting_min_volume="0.8" -coasting_speed="90" -coasting_volume="0.064" -command_line_settings="0" -conical_overhang_angle="50" -conical_overhang_enabled="False" -connect_infill_polygons="False" -connect_skin_polygons="False" -cool_fan_enabled="True" -cool_fan_full_at_height="0.35" -cool_fan_full_layer="2" -cool_fan_speed="100.0" -cool_fan_speed_0="0" -cool_fan_speed_max="100.0" -cool_fan_speed_min="100.0" -cool_lift_head="False" -cool_min_layer_time="5" -cool_min_layer_time_fan_speed_max="10" -cool_min_speed="10" -cooling="0" -cross_infill_pocket_size="4.0" -cutting_mesh="False" -date="14-10-2018" -day="Sun" -default_material_bed_temperature="60" -default_material_print_temperature="210" -draft_shield_dist="10" -draft_shield_enabled="False" -draft_shield_height="10" -draft_shield_height_limitation="full" -dual="0" -expand_skins_expand_distance="1.0" -experimental="0" -extruder_nr="0" -extruder_prime_pos_abs="False" -extruder_prime_pos_x="0" -extruder_prime_pos_y="0" -extruder_prime_pos_z="0" -extruders_enabled_count="1" -fill_outline_gaps="False" -fill_perimeter_gaps="everywhere" -filter_out_tiny_gaps="True" -flow_rate_extrusion_offset_factor="100" -flow_rate_max_extrusion_offset="0" -gantry_height="55" -gradual_infill_step_height="1.5" -gradual_infill_steps="0" -gradual_support_infill_step_height="1" -gradual_support_infill_steps="0" -infill="0" -infill_angles="[ ]" -infill_before_walls="True" -infill_enable_travel_optimization="False" -infill_extruder_nr="-1" -infill_line_distance="4.0" -infill_line_width="0.5" -infill_mesh="False" -infill_mesh_order="0" -infill_multiplier="1" -infill_offset_x="0" -infill_offset_y="0" -infill_overlap="10" -infill_overlap_mm="0.05" -infill_pattern="grid" -infill_sparse_density="20" -infill_sparse_thickness="0.4" -infill_support_angle="40" -infill_support_enabled="False" -infill_wall_line_count="0" -infill_wipe_dist="0.125" -initial_extruder_nr="0" -initial_layer_line_width_factor="100.0" -ironing_enabled="False" -ironing_flow="10.0" -ironing_inset="0.25" -ironing_line_spacing="0.1" -ironing_only_highest_layer="False" -ironing_pattern="zigzag" -jerk_enabled="False" -jerk_infill="20" -jerk_ironing="20" -jerk_layer_0="20" -jerk_prime_tower="20" -jerk_print="20" -jerk_print_layer_0="20" -jerk_roofing="20" -jerk_skirt_brim="20" -jerk_support="20" -jerk_support_bottom="20" -jerk_support_infill="20" -jerk_support_interface="20" -jerk_support_roof="20" -jerk_topbottom="20" -jerk_travel="30" -jerk_travel_layer_0="30.0" -jerk_wall="20" -jerk_wall_0="20" -jerk_wall_x="20" -layer_0_z_overlap="0.15" -layer_height="0.4" -layer_height_0="0.35" -layer_start_x="0.0" -layer_start_y="0.0" -limit_support_retractions="True" -line_width="0.5" -machine_acceleration="4000" -machine_buildplate_type="glass" -machine_center_is_zero="False" -machine_depth="200" -machine_disallowed_areas="[]" -machine_end_gcode="M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\n;G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nG28 X0\nG90\nG1 Y290 F9000\nM84 ;steppers off\nG90 ;absolute positioning" -machine_endstop_positive_direction_x="False" -machine_endstop_positive_direction_y="False" -machine_endstop_positive_direction_z="True" -machine_extruder_count="1" -machine_extruder_cooling_fan_number="0" -machine_extruder_end_pos_abs="False" -machine_extruder_end_pos_x="0" -machine_extruder_end_pos_y="0" -machine_extruder_start_pos_abs="False" -machine_extruder_start_pos_x="0" -machine_extruder_start_pos_y="0" -machine_feeder_wheel_diameter="10.0" -machine_filament_park_distance="16" -machine_firmware_retract="False" -machine_gcode_flavor="RepRap (Marlin/Sprinter)" -machine_head_polygon="[[-75, -18], [-75, 35], [18, 35], [18, -18]]" -machine_head_with_fans_polygon="[[-75, -18], [-75, 35], [18, 35], [18, -18]]" -machine_heat_zone_length="16" -machine_heated_bed="True" -machine_height="210" -machine_max_acceleration_e="10000" -machine_max_acceleration_x="9000" -machine_max_acceleration_y="9000" -machine_max_acceleration_z="100" -machine_max_feedrate_e="299792458000" -machine_max_feedrate_x="500" -machine_max_feedrate_y="500" -machine_max_feedrate_z="5" -machine_max_jerk_e="5.0" -machine_max_jerk_xy="20.0" -machine_max_jerk_z="0.4" -machine_min_cool_heat_time_window="50.0" -machine_minimum_feedrate="0.0" -machine_name="Prusa i3" -machine_nozzle_cool_down_speed="2.0" -machine_nozzle_expansion_angle="45" -machine_nozzle_head_distance="3" -machine_nozzle_heat_up_speed="2.0" -machine_nozzle_id="unknown" -machine_nozzle_offset_x="0" -machine_nozzle_offset_y="0" -machine_nozzle_size="0.5" -machine_nozzle_temp_enabled="True" -machine_nozzle_tip_outer_diameter="1" -machine_settings="0" -machine_shape="rectangular" -machine_show_variants="False" -machine_start_gcode="G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nM206 X0 Y0\n;M92 X100 Y100 E95 ; metal 16 teeth pulley\n;M92 Z3200; M6 z-axis\n;G1 Z15; move up\nG28 X0 Y0 ;move X/Y to min endstops\nG1 X40; move away to avoid crashing into bed mount\nG28 Z0 ;move Z to min endstops\n;G1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 Y-3.0 F1000.0 ; go outside print area\nG1 X10.0 E9.0 F1000.0 ; intro line\nG1 X60.0 E21.5 F1000.0 ; intro line\nG1 X20.0 E30.0 F1000\nG92 E0 ;zero the extruded length again\n;G1 F9000\n;Put printing message on LCD screen\nM117 Printing..." -machine_steps_per_mm_e="1600" -machine_steps_per_mm_x="50" -machine_steps_per_mm_y="50" -machine_steps_per_mm_z="50" -machine_use_extruder_offset_to_offset_coords="True" -machine_width="210" -magic_fuzzy_skin_enabled="False" -magic_fuzzy_skin_point_density="1.25" -magic_fuzzy_skin_point_dist="0.8" -magic_fuzzy_skin_thickness="0.3" -magic_mesh_surface_mode="normal" -magic_spiralize="False" -material="0" -material_adhesion_tendency="10" -material_bed_temp_prepend="True" -material_bed_temp_wait="True" -material_bed_temperature="0" -material_bed_temperature_layer_0="0" -material_diameter="1.75" -material_extrusion_cool_down_speed="0.7" -material_final_print_temperature="195" -material_flow="100" -material_flow_dependent_temperature="False" -material_flow_layer_0="100" -material_flow_temp_graph="[[3.5,200],[7.0,240]]" -material_guid="0ff92885-617b-4144-a03c-9989872454bc" -material_initial_print_temperature="200" -material_print_temp_prepend="True" -material_print_temp_wait="True" -material_print_temperature="210" -material_print_temperature_layer_0="210" -material_shrinkage_percentage="0" -material_standby_temperature="175" -material_surface_energy="100" -max_feedrate_z_override="0" -max_skin_angle_for_expansion="90" -mesh_position_x="0" -mesh_position_y="0" -mesh_position_z="0" -mesh_rotation_matrix="[[1,0,0], [0,1,0], [0,0,1]]" -meshfix="0" -meshfix_extensive_stitching="False" -meshfix_keep_open_polygons="False" -meshfix_maximum_resolution="0.01" -meshfix_maximum_travel_resolution="0.02" -meshfix_union_all="True" -meshfix_union_all_remove_holes="False" -min_infill_area="0" -min_skin_width_for_expansion="4.898587196589413e-17" -minimum_polygon_circumference="1.0" -mold_angle="40" -mold_enabled="False" -mold_roof_height="0.5" -mold_width="5" -multiple_mesh_overlap="0.15" -nozzle_disallowed_areas="[]" -ooze_shield_angle="60" -ooze_shield_dist="2" -ooze_shield_enabled="False" -optimize_wall_printing_order="False" -outer_inset_first="False" -platform_adhesion="0" -prime_blob_enable="True" -prime_tower_circular="True" -prime_tower_enable="False" -prime_tower_flow="100" -prime_tower_line_width="0.5" -prime_tower_min_volume="6" -prime_tower_position_x="375.3" -prime_tower_position_y="275.3" -prime_tower_size="20" -prime_tower_wipe_enabled="True" -print_bed_temperature="0" -print_sequence="all_at_once" -print_temperature="210" -raft_acceleration="3000" -raft_airgap="0.3" -raft_base_acceleration="3000" -raft_base_fan_speed="0" -raft_base_jerk="20" -raft_base_line_spacing="2.0" -raft_base_line_width="1.0" -raft_base_speed="22.5" -raft_base_thickness="0.42" -raft_fan_speed="0" -raft_interface_acceleration="3000" -raft_interface_fan_speed="0" -raft_interface_jerk="20" -raft_interface_line_spacing="1.2" -raft_interface_line_width="1.0" -raft_interface_speed="22.5" -raft_interface_thickness="0.6000000000000001" -raft_jerk="20" -raft_margin="15" -raft_smoothing="5" -raft_speed="30.0" -raft_surface_acceleration="3000" -raft_surface_fan_speed="0" -raft_surface_jerk="20" -raft_surface_layers="2" -raft_surface_line_spacing="0.5" -raft_surface_line_width="0.5" -raft_surface_speed="30.0" -raft_surface_thickness="0.4" -relative_extrusion="False" -remove_empty_first_layers="True" -resolution="0" -retract_at_layer_change="False" -retraction_amount="6.5" -retraction_combing="all" -retraction_combing_max_distance="0" -retraction_count_max="90" -retraction_enable="True" -retraction_extra_prime_amount="0" -retraction_extrusion_window="6.5" -retraction_hop="1" -retraction_hop_after_extruder_switch="True" -retraction_hop_enabled="False" -retraction_hop_only_when_collides="False" -retraction_min_travel="1.0" -retraction_prime_speed="35" -retraction_retract_speed="35" -retraction_speed="35" -roofing_angles="[ ]" -roofing_extruder_nr="-1" -roofing_layer_count="0" -roofing_line_width="0.5" -roofing_pattern="lines" -shell="0" -skin_alternate_rotation="False" -skin_angles="[ ]" -skin_line_width="0.5" -skin_no_small_gaps_heuristic="True" -skin_outline_count="1" -skin_overlap="5" -skin_overlap_mm="0.025" -skin_preshrink="1.0" -skirt_brim_line_width="0.5" -skirt_brim_minimal_length="250" -skirt_brim_speed="30.0" -skirt_gap="3" -skirt_line_count="1" -slicing_tolerance="middle" -smooth_spiralized_contours="True" -spaghetti_flow="20" -spaghetti_infill_enabled="False" -spaghetti_infill_extra_volume="0" -spaghetti_infill_stepped="True" -spaghetti_inset="0.2" -spaghetti_max_height="2.0" -spaghetti_max_infill_angle="10" -speed="0" -speed_equalize_flow_enabled="False" -speed_equalize_flow_max="150" -speed_infill="80" -speed_ironing="20.0" -speed_layer_0="30.0" -speed_prime_tower="60" -speed_print="60" -speed_print_layer_0="30.0" -speed_roofing="30.0" -speed_slowdown_layers="2" -speed_support="60" -speed_support_bottom="40.0" -speed_support_infill="60" -speed_support_interface="40.0" -speed_support_roof="40.0" -speed_topbottom="30.0" -speed_travel="120" -speed_travel_layer_0="60.0" -speed_wall="30.0" -speed_wall_0="30.0" -speed_wall_x="60.0" -start_layers_at_same_position="False" -sub_div_rad_add="0.5" -support="0" -support_angle="50" -support_bottom_density="100" -support_bottom_distance="0" -support_bottom_enable="False" -support_bottom_extruder_nr="0" -support_bottom_height="1" -support_bottom_line_distance="0.5" -support_bottom_line_width="0.5" -support_bottom_pattern="concentric" -support_bottom_stair_step_height="0.3" -support_bottom_stair_step_width="5.0" -support_conical_angle="30" -support_conical_enabled="False" -support_conical_min_width="5.0" -support_connect_zigzags="True" -support_enable="False" -support_extruder_nr="0" -support_extruder_nr_layer_0="0" -support_fan_enable="False" -support_infill_angle="0" -support_infill_extruder_nr="0" -support_infill_rate="15" -support_infill_sparse_thickness="0.4" -support_initial_layer_line_distance="3.3333333333333335" -support_interface_density="100" -support_interface_enable="False" -support_interface_extruder_nr="0" -support_interface_height="1" -support_interface_line_width="0.5" -support_interface_pattern="concentric" -support_interface_skip_height="0.3" -support_join_distance="2.0" -support_line_distance="3.3333333333333335" -support_line_width="0.5" -support_mesh="False" -support_mesh_drop_down="True" -support_minimal_diameter="3.0" -support_offset="0.2" -support_pattern="zigzag" -support_roof_density="100" -support_roof_enable="False" -support_roof_extruder_nr="0" -support_roof_height="1" -support_roof_line_distance="0.5" -support_roof_line_width="0.5" -support_roof_pattern="concentric" -support_skip_some_zags="False" -support_skip_zag_per_mm="20" -support_supported_skin_fan_speed="100" -support_top_distance="0.1" -support_tower_diameter="3.0" -support_tower_roof_angle="65" -support_tree_angle="40" -support_tree_branch_diameter="2" -support_tree_branch_diameter_angle="5" -support_tree_branch_distance="1" -support_tree_collision_resolution="0.25" -support_tree_enable="False" -support_tree_wall_count="1" -support_tree_wall_thickness="0.5" -support_type="buildplate" -support_use_towers="True" -support_wall_count="0" -support_xy_distance="0.7" -support_xy_distance_overhang="0.25" -support_xy_overrides_z="z_overrides_xy" -support_z_distance="0.1" -support_zag_skip_count="8" -switch_extruder_prime_speed="20" -switch_extruder_retraction_amount="16" -switch_extruder_retraction_speed="20" -switch_extruder_retraction_speeds="20" -time="09:46:45" -top_bottom_extruder_nr="-1" -top_bottom_pattern="lines" -top_bottom_pattern_0="lines" -top_bottom_thickness="0.8" -top_layers="2" -top_skin_expand_distance="1.0" -top_skin_preshrink="1.0" -top_thickness="0.8" -travel="0" -travel_avoid_distance="0.625" -travel_avoid_other_parts="True" -travel_avoid_supports="False" -travel_compensate_overlapping_walls_0_enabled="True" -travel_compensate_overlapping_walls_enabled="True" -travel_compensate_overlapping_walls_x_enabled="True" -travel_retract_before_outer_wall="False" -wall_0_extruder_nr="-1" -wall_0_inset="0" -wall_0_wipe_dist="0.25" -wall_extruder_nr="-1" -wall_line_count="2" -wall_line_width="0.5" -wall_line_width_0="0.5" -wall_line_width_x="0.5" -wall_min_flow="0" -wall_min_flow_retract="False" -wall_overhang_angle="90" -wall_overhang_speed_factor="100" -wall_thickness="0.8" -wall_x_extruder_nr="-1" -wireframe_bottom_delay="0" -wireframe_drag_along="0.6" -wireframe_enabled="False" -wireframe_fall_down="0.5" -wireframe_flat_delay="0.1" -wireframe_flow="100" -wireframe_flow_connection="100" -wireframe_flow_flat="100" -wireframe_height="3" -wireframe_nozzle_clearance="1" -wireframe_printspeed="5" -wireframe_printspeed_bottom="5" -wireframe_printspeed_down="5" -wireframe_printspeed_flat="5" -wireframe_printspeed_up="5" -wireframe_roof_drag_along="0.8" -wireframe_roof_fall_down="2" -wireframe_roof_inset="3" -wireframe_roof_outer_delay="0.2" -wireframe_straight_before_down="20" -wireframe_strategy="compensate" -wireframe_top_delay="0" -wireframe_top_jump="0.6" -wireframe_up_half_speed="0.3" -xy_offset="0" -xy_offset_layer_0="0" -z_seam_corner="z_seam_corner_inner" -z_seam_relative="False" -z_seam_type="sharpest_corner" -z_seam_x="190.0" -z_seam_y="900" -zig_zaggify_infill="False" -zig_zaggify_support="False" -machine_extruder_start_code="" diff --git a/software/Print3r/settings/slicer/cura4/fdmprinter.def.json b/software/Print3r/settings/slicer/cura4/fdmprinter.def.json deleted file mode 100644 index abdb03c5..00000000 --- a/software/Print3r/settings/slicer/cura4/fdmprinter.def.json +++ /dev/null @@ -1,7793 +0,0 @@ -{ - "name": "FDM Printer Base Description", - "version": 2, - "metadata": - { - "type": "machine", - "author": "Ultimaker", - "manufacturer": "Unknown", - "setting_version": 17, - "file_formats": "text/x-gcode;model/stl;application/x-wavefront-obj;application/x3g", - "visible": false, - "has_materials": true, - "has_variants": false, - "has_machine_quality": false, - "preferred_material": "generic_pla", - "preferred_quality_type": "normal", - "machine_extruder_trains": - { - "0": "fdmextruder" - }, - "supports_usb_connection": true, - "supports_network_connection": false - }, - "settings": - { - "machine_settings": - { - "label": "Machine", - "type": "category", - "description": "Machine specific settings", - "icon": "Printer", - "children": - { - "machine_name": - { - "label": "Machine Type", - "description": "The name of your 3D printer model.", - "default_value": "Unknown", - "type": "str", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_show_variants": - { - "label": "Show Machine Variants", - "description": "Whether to show the different variants of this machine, which are described in separate json files.", - "default_value": false, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_start_gcode": - { - "label": "Start G-code", - "description": "G-code commands to be executed at the very start - separated by \\n.", - "default_value": "G28 ;Home\nG1 Z15.0 F6000 ;Move the platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0", - "type": "str", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_end_gcode": - { - "label": "End G-code", - "description": "G-code commands to be executed at the very end - separated by \\n.", - "default_value": "M104 S0\nM140 S0\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84", - "type": "str", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_guid": - { - "label": "Material GUID", - "description": "GUID of the material. This is set automatically.", - "default_value": "", - "type": "str", - "enabled": false - }, - "material_diameter": - { - "label": "Diameter", - "description": "Adjusts the diameter of the filament used. Match this value with the diameter of the used filament.", - "unit": "mm", - "type": "float", - "default_value": 2.85, - "minimum_value": "0.0001", - "minimum_value_warning": "0.4", - "maximum_value_warning": "3.5", - "enabled": "machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_bed_temp_wait": - { - "label": "Wait for Build Plate Heatup", - "description": "Whether to insert a command to wait until the build plate temperature is reached at the start.", - "default_value": true, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_print_temp_wait": - { - "label": "Wait for Nozzle Heatup", - "description": "Whether to wait until the nozzle temperature is reached at the start.", - "default_value": true, - "type": "bool", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_print_temp_prepend": - { - "label": "Include Material Temperatures", - "description": "Whether to include nozzle temperature commands at the start of the gcode. When the start_gcode already contains nozzle temperature commands Cura frontend will automatically disable this setting.", - "default_value": true, - "type": "bool", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_bed_temp_prepend": - { - "label": "Include Build Plate Temperature", - "description": "Whether to include build plate temperature commands at the start of the gcode. When the start_gcode already contains build plate temperature commands Cura frontend will automatically disable this setting.", - "default_value": true, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_width": - { - "label": "Machine Width", - "description": "The width (X-direction) of the printable area.", - "default_value": 100, - "type": "float", - "minimum_value": "0.001", - "maximum_value": "2000000", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_depth": - { - "label": "Machine Depth", - "description": "The depth (Y-direction) of the printable area.", - "default_value": 100, - "type": "float", - "minimum_value": "0.001", - "maximum_value": "2000000", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_shape": - { - "label": "Build Plate Shape", - "description": "The shape of the build plate without taking unprintable areas into account.", - "default_value": "rectangular", - "type": "enum", - "options": - { - "rectangular": "Rectangular", - "elliptic": "Elliptic" - }, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_buildplate_type": - { - "label": "Build Plate Material", - "description": "The material of the build plate installed on the printer.", - "default_value": "glass", - "type": "enum", - "options": - { - "glass": "Glass", - "aluminum": "Aluminum" - }, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_height": - { - "label": "Machine Height", - "description": "The height (Z-direction) of the printable area.", - "default_value": 100, - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_heated_bed": - { - "label": "Has Heated Build Plate", - "description": "Whether the machine has a heated build plate present.", - "default_value": false, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_heated_build_volume": - { - "label": "Has Build Volume Temperature Stabilization", - "description": "Whether the machine is able to stabilize the build volume temperature.", - "default_value": false, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_always_write_active_tool": - { - "label": "Always Write Active Tool", - "description": "Write active tool after sending temp commands to inactive tool. Required for Dual Extruder printing with Smoothie or other firmware with modal tool commands.", - "default_value": false, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_center_is_zero": - { - "label": "Is Center Origin", - "description": "Whether the X/Y coordinates of the zero position of the printer is at the center of the printable area.", - "default_value": false, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_extruder_count": - { - "label": "Number of Extruders", - "description": "Number of extruder trains. An extruder train is the combination of a feeder, bowden tube, and nozzle.", - "default_value": 1, - "minimum_value": "1", - "maximum_value": "16", - "type": "int", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "extruders_enabled_count": - { - "label": "Number of Extruders That Are Enabled", - "description": "Number of extruder trains that are enabled; automatically set in software", - "value": "machine_extruder_count", - "default_value": 1, - "minimum_value": "1", - "maximum_value": "16", - "type": "int", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_nozzle_tip_outer_diameter": - { - "label": "Outer Nozzle Diameter", - "description": "The outer diameter of the tip of the nozzle.", - "unit": "mm", - "default_value": 1, - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "machine_nozzle_head_distance": - { - "label": "Nozzle Length", - "description": "The height difference between the tip of the nozzle and the lowest part of the print head.", - "unit": "mm", - "default_value": 3, - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "machine_nozzle_expansion_angle": - { - "label": "Nozzle Angle", - "description": "The angle between the horizontal plane and the conical part right above the tip of the nozzle.", - "unit": "°", - "type": "int", - "default_value": 45, - "maximum_value": "89", - "minimum_value": "1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_heat_zone_length": - { - "label": "Heat Zone Length", - "description": "The distance from the tip of the nozzle in which heat from the nozzle is transferred to the filament.", - "unit": "mm", - "default_value": 16, - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "machine_nozzle_temp_enabled": - { - "label": "Enable Nozzle Temperature Control", - "description": "Whether to control temperature from Cura. Turn this off to control nozzle temperature from outside of Cura.", - "default_value": true, - "value": "machine_gcode_flavor != \"UltiGCode\"", - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "machine_nozzle_heat_up_speed": - { - "label": "Heat Up Speed", - "description": "The speed (°C/s) by which the nozzle heats up averaged over the window of normal printing temperatures and the standby temperature.", - "default_value": 2.0, - "unit": "°C/s", - "type": "float", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_nozzle_cool_down_speed": - { - "label": "Cool Down Speed", - "description": "The speed (°C/s) by which the nozzle cools down averaged over the window of normal printing temperatures and the standby temperature.", - "default_value": 2.0, - "unit": "°C/s", - "type": "float", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_min_cool_heat_time_window": - { - "label": "Minimal Time Standby Temperature", - "description": "The minimal time an extruder has to be inactive before the nozzle is cooled. Only when an extruder is not used for longer than this time will it be allowed to cool down to the standby temperature.", - "default_value": 50.0, - "unit": "s", - "type": "float", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_gcode_flavor": - { - "label": "G-code Flavor", - "description": "The type of g-code to be generated.", - "type": "enum", - "options": - { - "RepRap (Marlin/Sprinter)": "Marlin", - "RepRap (Volumetric)": "Marlin (Volumetric)", - "RepRap (RepRap)": "RepRap", - "UltiGCode": "Ultimaker 2", - "Griffin": "Griffin", - "Makerbot": "Makerbot", - "BFB": "Bits from Bytes", - "MACH3": "Mach3", - "Repetier": "Repetier" - }, - "default_value": "RepRap (Marlin/Sprinter)", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_firmware_retract": - { - "label": "Firmware Retraction", - "description": "Whether to use firmware retract commands (G10/G11) instead of using the E property in G1 commands to retract the material.", - "type": "bool", - "default_value": false, - "value": "machine_gcode_flavor == 'RepRap (Volumetric)' or machine_gcode_flavor == 'UltiGCode' or machine_gcode_flavor == 'BFB'", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_extruders_share_heater": - { - "label": "Extruders Share Heater", - "description": "Whether the extruders share a single heater rather than each extruder having its own heater.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_extruders_share_nozzle": - { - "label": "Extruders Share Nozzle", - "description": "Whether the extruders share a single nozzle rather than each extruder having its own nozzle. When set to true, it is expected that the printer-start gcode script properly sets up all extruders in an initial retraction state that is known and mutually compatible (either zero or one filament not retracted); in that case the initial retraction status is described, per extruder, by the 'machine_extruders_shared_nozzle_initial_retraction' parameter.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_extruders_shared_nozzle_initial_retraction": - { - "label": "Shared Nozzle Initial Retraction", - "description": "How much the filament of each extruder is assumed to have been retracted from the shared nozzle tip at the completion of the printer-start gcode script; the value should be equal to or greater than the length of the common part of the nozzle's ducts.", - "unit": "mm", - "default_value": 0, - "minimum_value": "0", - "type": "float", - "enabled": "machine_extruders_share_nozzle", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "machine_disallowed_areas": - { - "label": "Disallowed Areas", - "description": "A list of polygons with areas the print head is not allowed to enter.", - "type": "polygons", - "default_value": - [ - ], - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "nozzle_disallowed_areas": - { - "label": "Nozzle Disallowed Areas", - "description": "A list of polygons with areas the nozzle is not allowed to enter.", - "type": "polygons", - "default_value": - [ - ], - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_head_with_fans_polygon": - { - "label": "Machine Head & Fan Polygon", - "description": "A 2D silhouette of the print head (fan caps included).", - "type": "polygon", - "default_value": - [ - [ - -20, - 10 - ], - [ - 10, - 10 - ], - [ - 10, - -10 - ], - [ - -20, - -10 - ] - ], - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "gantry_height": - { - "label": "Gantry Height", - "description": "The height difference between the tip of the nozzle and the gantry system (X and Y axes).", - "default_value": 99999999999, - "value": "machine_height", - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_nozzle_id": - { - "label": "Nozzle ID", - "description": "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\".", - "type": "str", - "default_value": "unknown", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_nozzle_size": - { - "label": "Nozzle Diameter", - "description": "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "minimum_value": "0.001", - "maximum_value_warning": "10", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_use_extruder_offset_to_offset_coords": - { - "label": "Offset with Extruder", - "description": "Apply the extruder offset to the coordinate system. Affects all extruders.", - "type": "bool", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "extruder_prime_pos_z": - { - "label": "Extruder Prime Z Position", - "description": "The Z coordinate of the position where the nozzle primes at the start of printing.", - "type": "float", - "unit": "mm", - "default_value": 0, - "minimum_value_warning": "0", - "maximum_value": "machine_height", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "extruder_prime_pos_abs": - { - "label": "Absolute Extruder Prime Position", - "description": "Make the extruder prime position absolute rather than relative to the last-known location of the head.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_max_feedrate_x": - { - "label": "Maximum Speed X", - "description": "The maximum speed for the motor of the X-direction.", - "unit": "mm/s", - "type": "float", - "default_value": 299792458000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_feedrate_y": - { - "label": "Maximum Speed Y", - "description": "The maximum speed for the motor of the Y-direction.", - "unit": "mm/s", - "type": "float", - "default_value": 299792458000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_feedrate_z": - { - "label": "Maximum Speed Z", - "description": "The maximum speed for the motor of the Z-direction.", - "unit": "mm/s", - "type": "float", - "default_value": 299792458000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_feedrate_e": - { - "label": "Maximum Feedrate", - "description": "The maximum speed of the filament.", - "unit": "mm/s", - "type": "float", - "default_value": 299792458000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_acceleration_x": - { - "label": "Maximum Acceleration X", - "description": "Maximum acceleration for the motor of the X-direction", - "unit": "mm/s²", - "type": "float", - "default_value": 9000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_acceleration_y": - { - "label": "Maximum Acceleration Y", - "description": "Maximum acceleration for the motor of the Y-direction.", - "unit": "mm/s²", - "type": "float", - "default_value": 9000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_acceleration_z": - { - "label": "Maximum Acceleration Z", - "description": "Maximum acceleration for the motor of the Z-direction.", - "unit": "mm/s²", - "type": "float", - "default_value": 100, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_acceleration_e": - { - "label": "Maximum Filament Acceleration", - "description": "Maximum acceleration for the motor of the filament.", - "unit": "mm/s²", - "type": "float", - "default_value": 10000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_acceleration": - { - "label": "Default Acceleration", - "description": "The default acceleration of print head movement.", - "unit": "mm/s²", - "type": "float", - "default_value": 4000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_jerk_xy": - { - "label": "Default X-Y Jerk", - "description": "Default jerk for movement in the horizontal plane.", - "unit": "mm/s", - "type": "float", - "default_value": 20.0, - "minimum_value": "0", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_jerk_z": - { - "label": "Default Z Jerk", - "description": "Default jerk for the motor of the Z-direction.", - "unit": "mm/s", - "type": "float", - "default_value": 0.4, - "minimum_value": "0", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_jerk_e": - { - "label": "Default Filament Jerk", - "description": "Default jerk for the motor of the filament.", - "unit": "mm/s", - "type": "float", - "default_value": 5.0, - "minimum_value": "0", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_steps_per_mm_x": - { - "label": "Steps per Millimeter (X)", - "description": "How many steps of the stepper motor will result in one millimeter of movement in the X direction.", - "type": "float", - "default_value": 50, - "minimum_value": "0.0000001", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_steps_per_mm_y": - { - "label": "Steps per Millimeter (Y)", - "description": "How many steps of the stepper motor will result in one millimeter of movement in the Y direction.", - "type": "float", - "default_value": 50, - "minimum_value": "0.0000001", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_steps_per_mm_z": - { - "label": "Steps per Millimeter (Z)", - "description": "How many steps of the stepper motor will result in one millimeter of movement in the Z direction.", - "type": "float", - "default_value": 50, - "minimum_value": "0.0000001", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_steps_per_mm_e": - { - "label": "Steps per Millimeter (E)", - "description": "How many steps of the stepper motors will result in moving the feeder wheel by one millimeter around its circumference.", - "type": "float", - "default_value": 1600, - "minimum_value": "0.0000001", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_endstop_positive_direction_x": - { - "label": "X Endstop in Positive Direction", - "description": "Whether the endstop of the X axis is in the positive direction (high X coordinate) or negative (low X coordinate).", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_endstop_positive_direction_y": - { - "label": "Y Endstop in Positive Direction", - "description": "Whether the endstop of the Y axis is in the positive direction (high Y coordinate) or negative (low Y coordinate).", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_endstop_positive_direction_z": - { - "label": "Z Endstop in Positive Direction", - "description": "Whether the endstop of the Z axis is in the positive direction (high Z coordinate) or negative (low Z coordinate).", - "type": "bool", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_minimum_feedrate": - { - "label": "Minimum Feedrate", - "description": "The minimal movement speed of the print head.", - "unit": "mm/s", - "type": "float", - "default_value": 0.0, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_feeder_wheel_diameter": - { - "label": "Feeder Wheel Diameter", - "description": "The diameter of the wheel that drives the material in the feeder.", - "unit": "mm", - "type": "float", - "default_value": 10.0, - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "resolution": - { - "label": "Quality", - "type": "category", - "icon": "PrintQuality", - "description": "All settings that influence the resolution of the print. These settings have a large impact on the quality (and print time)", - "children": - { - "layer_height": - { - "label": "Layer Height", - "description": "The height of each layer in mm. Higher values produce faster prints in lower resolution, lower values produce slower prints in higher resolution.", - "unit": "mm", - "type": "float", - "default_value": 0.1, - "minimum_value": "0.001", - "minimum_value_warning": "0.04", - "maximum_value_warning": "0.8 * min(extruderValues('machine_nozzle_size'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "layer_height_0": - { - "label": "Initial Layer Height", - "description": "The height of the initial layer in mm. A thicker initial layer makes adhesion to the build plate easier.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "resolve": "min(extruderValues('layer_height_0'))", - "minimum_value": "0.001", - "minimum_value_warning": "0.1", - "maximum_value_warning": "0.8 * min(extruderValues('machine_nozzle_size'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "line_width": - { - "label": "Line Width", - "description": "Width of a single line. Generally, the width of each line should correspond to the width of the nozzle. However, slightly reducing this value could produce better prints.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "machine_nozzle_size", - "settable_per_mesh": true, - "children": - { - "wall_line_width": - { - "label": "Wall Line Width", - "description": "Width of a single wall line.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "value": "line_width", - "default_value": 0.4, - "type": "float", - "limit_to_extruder": "wall_0_extruder_nr if wall_x_extruder_nr == wall_0_extruder_nr else -1", - "settable_per_mesh": true, - "children": - { - "wall_line_width_0": - { - "label": "Outer Wall Line Width", - "description": "Width of the outermost wall line. By lowering this value, higher levels of detail can be printed.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "(0.1 + 0.4 * machine_nozzle_size) if outer_inset_first else 0.1 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "value": "wall_line_width", - "type": "float", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "wall_line_width_x": - { - "label": "Inner Wall(s) Line Width", - "description": "Width of a single wall line for all wall lines except the outermost one.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "value": "wall_line_width", - "type": "float", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "skin_line_width": - { - "label": "Top/Bottom Line Width", - "description": "Width of a single top/bottom line.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "line_width", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "infill_line_width": - { - "label": "Infill Line Width", - "description": "Width of a single infill line.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "3 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "line_width", - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "skirt_brim_line_width": - { - "label": "Skirt/Brim Line Width", - "description": "Width of a single skirt or brim line.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "3 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "line_width", - "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable') or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled')", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_line_width": - { - "label": "Support Line Width", - "description": "Width of a single support structure line.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "3 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "enabled": "(support_enable or support_meshes_present)", - "value": "line_width", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_interface_line_width": - { - "label": "Support Interface Line Width", - "description": "Width of a single line of support roof or floor.", - "unit": "mm", - "default_value": 0.4, - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "type": "float", - "enabled": "(support_enable or support_meshes_present) and support_interface_enable", - "limit_to_extruder": "support_interface_extruder_nr", - "value": "line_width", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_line_width": - { - "label": "Support Roof Line Width", - "description": "Width of a single support roof line.", - "unit": "mm", - "default_value": 0.4, - "minimum_value": "0.001", - "minimum_value_warning": "0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "type": "float", - "enabled": "(support_enable or support_meshes_present) and support_roof_enable", - "limit_to_extruder": "support_roof_extruder_nr", - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_line_width')", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_bottom_line_width": - { - "label": "Support Floor Line Width", - "description": "Width of a single support floor line.", - "unit": "mm", - "default_value": 0.4, - "minimum_value": "0.001", - "minimum_value_warning": "0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "type": "float", - "enabled": "(support_enable or support_meshes_present) and support_bottom_enable", - "limit_to_extruder": "support_bottom_extruder_nr", - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_line_width')", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "prime_tower_line_width": - { - "label": "Prime Tower Line Width", - "description": "Width of a single prime tower line.", - "type": "float", - "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 0.4, - "value": "line_width", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "initial_layer_line_width_factor": - { - "label": "Initial Layer Line Width", - "description": "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion.", - "type": "float", - "unit": "%", - "default_value": 100.0, - "minimum_value": "0.001", - "maximum_value_warning": "150", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "shell": - { - "label": "Walls", - "icon": "PrintShell", - "description": "Shell", - "type": "category", - "children": - { - "wall_extruder_nr": - { - "label": "Wall Extruder", - "description": "The extruder train used for printing the walls. This is used in multi-extrusion.", - "type": "optional_extruder", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1", - "children": { - "wall_0_extruder_nr": - { - "label": "Outer Wall Extruder", - "description": "The extruder train used for printing the outer wall. This is used in multi-extrusion.", - "type": "optional_extruder", - "value": "wall_extruder_nr", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1" - }, - "wall_x_extruder_nr": - { - "label": "Inner Wall Extruder", - "description": "The extruder train used for printing the inner walls. This is used in multi-extrusion.", - "type": "optional_extruder", - "value": "wall_extruder_nr", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1" - } - } - }, - "wall_thickness": - { - "label": "Wall Thickness", - "description": "The thickness of the walls in the horizontal direction. This value divided by the wall line width defines the number of walls.", - "unit": "mm", - "default_value": 0.8, - "value": "wall_line_width_0 if magic_spiralize else 0.8", - "minimum_value": "0", - "minimum_value_warning": "line_width", - "maximum_value_warning": "10 * line_width", - "type": "float", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true, - "children": - { - "wall_line_count": - { - "label": "Wall Line Count", - "description": "The number of walls. When calculated by the wall thickness, this value is rounded to a whole number.", - "default_value": 2, - "minimum_value": "0", - "minimum_value_warning": "1", - "maximum_value_warning": "10", - "type": "int", - "value": "1 if magic_spiralize else max(1, round((wall_thickness - wall_line_width_0) / wall_line_width_x) + 1) if wall_thickness != 0 else 0", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "wall_0_wipe_dist": - { - "label": "Outer Wall Wipe Distance", - "description": "Distance of a travel move inserted after the outer wall, to hide the Z seam better.", - "unit": "mm", - "type": "float", - "default_value": 0.2, - "value": "machine_nozzle_size / 2", - "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size * 2", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "wall_0_inset": - { - "label": "Outer Wall Inset", - "description": "Inset applied to the path of the outer wall. If the outer wall is smaller than the nozzle, and printed after the inner walls, use this offset to get the hole in the nozzle to overlap with the inner walls instead of the outside of the model.", - "unit": "mm", - "type": "float", - "default_value": 0.0, - "value": "(machine_nozzle_size - wall_line_width_0) / 2 if (wall_line_width_0 < machine_nozzle_size and not outer_inset_first) else 0", - "minimum_value_warning": "0", - "maximum_value_warning": "machine_nozzle_size", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "optimize_wall_printing_order": - { - "label": "Optimize Wall Printing Order", - "description": "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization. First layer is not optimized when choosing brim as build plate adhesion type.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, - "outer_inset_first": - { - "label": "Outer Before Inner Walls", - "description": "Prints walls in order of outside to inside when enabled. This can help improve dimensional accuracy in X and Y when using a high viscosity plastic like ABS; however it can decrease outer surface print quality, especially on overhangs.", - "type": "bool", - "default_value": false, - "enabled": "wall_0_extruder_nr == wall_x_extruder_nr", - "settable_per_mesh": true - }, - "alternate_extra_perimeter": - { - "label": "Alternate Extra Wall", - "description": "Prints an extra wall at every other layer. This way infill gets caught between these extra walls, resulting in stronger prints.", - "type": "bool", - "default_value": false, - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "travel_compensate_overlapping_walls_enabled": - { - "label": "Compensate Wall Overlaps", - "description": "Compensate the flow for parts of a wall being printed where there is already a wall in place.", - "type": "bool", - "default_value": true, - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true, - "children": - { - "travel_compensate_overlapping_walls_0_enabled": - { - "label": "Compensate Outer Wall Overlaps", - "description": "Compensate the flow for parts of an outer wall being printed where there is already a wall in place.", - "type": "bool", - "default_value": true, - "value": "travel_compensate_overlapping_walls_enabled", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "travel_compensate_overlapping_walls_x_enabled": - { - "label": "Compensate Inner Wall Overlaps", - "description": "Compensate the flow for parts of an inner wall being printed where there is already a wall in place.", - "type": "bool", - "default_value": true, - "value": "travel_compensate_overlapping_walls_enabled", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "wall_min_flow": - { - "label": "Minimum Wall Flow", - "description": "Minimum allowed percentage flow for a wall line. The wall overlap compensation reduces a wall's flow when it lies close to an existing wall. Walls whose flow is less than this value will be replaced with a travel move. When using this setting, you must enable the wall overlap compensation and print the outer wall before inner walls.", - "unit": "%", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "type": "float", - "enabled": "travel_compensate_overlapping_walls_0_enabled or travel_compensate_overlapping_walls_x_enabled", - "settable_per_mesh": true - }, - "wall_min_flow_retract": - { - "label": "Prefer Retract", - "description": "If enabled, retraction is used rather than combing for travel moves that replace walls whose flow is below the minimum flow threshold.", - "type": "bool", - "default_value": false, - "enabled": "(travel_compensate_overlapping_walls_0_enabled or travel_compensate_overlapping_walls_x_enabled) and wall_min_flow > 0", - "settable_per_mesh": true - }, - "fill_perimeter_gaps": - { - "label": "Fill Gaps Between Walls", - "description": "Fills the gaps between walls where no walls fit.", - "type": "enum", - "options": { - "nowhere": "Nowhere", - "everywhere": "Everywhere" - }, - "default_value": "everywhere", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "filter_out_tiny_gaps": - { - "label": "Filter Out Tiny Gaps", - "description": "Filter out tiny gaps to reduce blobs on outside of model.", - "type": "bool", - "default_value": true, - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "fill_outline_gaps": { - "label": "Print Thin Walls", - "description": "Print pieces of the model which are horizontally thinner than the nozzle size.", - "type": "bool", - "default_value": false, - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "xy_offset": - { - "label": "Horizontal Expansion", - "description": "Amount of offset applied to all polygons in each layer. Positive values can compensate for too big holes; negative values can compensate for too small holes.", - "unit": "mm", - "type": "float", - "minimum_value_warning": "-1", - "maximum_value_warning": "1", - "default_value": 0, - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "xy_offset_layer_0": - { - "label": "Initial Layer Horizontal Expansion", - "description": "Amount of offset applied to all polygons in the first layer. A negative value can compensate for squishing of the first layer known as \"elephant's foot\".", - "unit": "mm", - "type": "float", - "minimum_value_warning": "-1", - "maximum_value_warning": "1", - "default_value": 0, - "value": "xy_offset", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "hole_xy_offset": - { - "label": "Hole Horizontal Expansion", - "description": "Amount of offset applied to all holes in each layer. Positive values increase the size of the holes, negative values reduce the size of the holes.", - "unit": "mm", - "type": "float", - "minimum_value_warning": "-1", - "maximum_value_warning": "1", - "default_value": 0, - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "z_seam_type": - { - "label": "Z Seam Alignment", - "description": "Starting point of each path in a layer. When paths in consecutive layers start at the same point a vertical seam may show on the print. When aligning these near a user specified location, the seam is easiest to remove. When placed randomly the inaccuracies at the paths' start will be less noticeable. When taking the shortest path the print will be quicker.", - "type": "enum", - "options": - { - "back": "User Specified", - "shortest": "Shortest", - "random": "Random", - "sharpest_corner": "Sharpest Corner" - }, - "default_value": "sharpest_corner", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "z_seam_position": - { - "label": "Z Seam Position", - "description": "The position near where to start printing each part in a layer.", - "type": "enum", - "options": - { - "backleft": "Back Left", - "back": "Back", - "backright": "Back Right", - "right": "Right", - "frontright": "Front Right", - "front": "Front", - "frontleft": "Front Left", - "left": "Left" - }, - "enabled": "z_seam_type == 'back'", - "default_value": "back", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true, - "children": - { - "z_seam_x": - { - "label": "Z Seam X", - "description": "The X coordinate of the position near where to start printing each part in a layer.", - "unit": "mm", - "type": "float", - "default_value": 100.0, - "value": "(0 if (z_seam_position == 'frontleft' or z_seam_position == 'left' or z_seam_position == 'backleft') else machine_width / 2 if (z_seam_position == 'front' or z_seam_position == 'back') else machine_width) - (machine_width / 2 if z_seam_relative or machine_center_is_zero else 0)", - "enabled": "z_seam_type == 'back'", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "z_seam_y": - { - "label": "Z Seam Y", - "description": "The Y coordinate of the position near where to start printing each part in a layer.", - "unit": "mm", - "type": "float", - "default_value": 100.0, - "value": "(0 if (z_seam_position == 'frontleft' or z_seam_position == 'front' or z_seam_position == 'frontright') else machine_depth / 2 if (z_seam_position == 'left' or z_seam_position == 'right') else machine_depth) - (machine_depth / 2 if z_seam_relative or machine_center_is_zero else 0)", - "enabled": "z_seam_type == 'back'", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - } - } - }, - "z_seam_corner": - { - "label": "Seam Corner Preference", - "description": "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner. Smart Hiding allows both inside and outside corners, but chooses inside corners more frequently, if appropriate.", - "type": "enum", - "options": - { - "z_seam_corner_none": "None", - "z_seam_corner_inner": "Hide Seam", - "z_seam_corner_outer": "Expose Seam", - "z_seam_corner_any": "Hide or Expose Seam", - "z_seam_corner_weighted": "Smart Hiding" - }, - "default_value": "z_seam_corner_inner", - "enabled": "z_seam_type != 'random'", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "z_seam_relative": - { - "label": "Z Seam Relative", - "description": "When enabled, the z seam coordinates are relative to each part's centre. When disabled, the coordinates define an absolute position on the build plate.", - "unit": "mm", - "type": "bool", - "default_value": false, - "enabled": "z_seam_type == 'back'", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - } - } - }, - "top_bottom": - { - "label": "Top/Bottom", - "icon": "PrintTopBottom", - "description": "Top/Bottom", - "type": "category", - "children": - { - "roofing_extruder_nr": - { - "label": "Top Surface Skin Extruder", - "description": "The extruder train used for printing the top most skin. This is used in multi-extrusion.", - "type": "optional_extruder", - "default_value": "-1", - "value": "top_bottom_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1 and max(extruderValues('roofing_layer_count')) > 0 and max(extruderValues('top_layers')) > 0" - }, - "roofing_layer_count": - { - "label": "Top Surface Skin Layers", - "description": "The number of top most skin layers. Usually only one top most layer is sufficient to generate higher quality top surfaces.", - "default_value": 0, - "minimum_value": "0", - "maximum_value_warning": "top_layers - 1", - "type": "int", - "value": "0", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "top_layers > 0" - }, - "top_bottom_extruder_nr": - { - "label": "Top/Bottom Extruder", - "description": "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion.", - "type": "optional_extruder", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1" - }, - "top_bottom_thickness": - { - "label": "Top/Bottom Thickness", - "description": "The thickness of the top/bottom layers in the print. This value divided by the layer height defines the number of top/bottom layers.", - "unit": "mm", - "default_value": 0.8, - "minimum_value": "0", - "minimum_value_warning": "0.6", - "maximum_value": "machine_height", - "type": "float", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "top_thickness": - { - "label": "Top Thickness", - "description": "The thickness of the top layers in the print. This value divided by the layer height defines the number of top layers.", - "unit": "mm", - "default_value": 0.8, - "minimum_value": "0", - "minimum_value_warning": "0.2 + resolveOrValue('layer_height')", - "maximum_value": "machine_height", - "type": "float", - "value": "top_bottom_thickness", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "top_layers": - { - "label": "Top Layers", - "description": "The number of top layers. When calculated by the top thickness, this value is rounded to a whole number.", - "default_value": 8, - "minimum_value": "0", - "maximum_value_warning": "100", - "type": "int", - "minimum_value_warning": "2", - "value": "0 if infill_sparse_density == 100 else math.ceil(round(top_thickness / resolveOrValue('layer_height'), 4))", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - }, - "bottom_thickness": - { - "label": "Bottom Thickness", - "description": "The thickness of the bottom layers in the print. This value divided by the layer height defines the number of bottom layers.", - "unit": "mm", - "default_value": 0.6, - "minimum_value": "0", - "minimum_value_warning": "0.2 + resolveOrValue('layer_height')", - "type": "float", - "value": "top_bottom_thickness", - "maximum_value": "machine_height", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "bottom_layers": - { - "label": "Bottom Layers", - "description": "The number of bottom layers. When calculated by the bottom thickness, this value is rounded to a whole number.", - "minimum_value": "0", - "minimum_value_warning": "2", - "default_value": 6, - "type": "int", - "value": "999999 if infill_sparse_density == 100 else math.ceil(round(bottom_thickness / resolveOrValue('layer_height'), 4))", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "initial_bottom_layers": - { - "label": "Initial Bottom Layers", - "description": "The number of initial bottom layers, from the build-plate upwards. When calculated by the bottom thickness, this value is rounded to a whole number.", - "minimum_value": "0", - "minimum_value_warning": "2", - "default_value": 6, - "type": "int", - "value": "bottom_layers", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - } - } - }, - "top_bottom_pattern": - { - "label": "Top/Bottom Pattern", - "description": "The pattern of the top/bottom layers.", - "type": "enum", - "options": - { - "lines": "Lines", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "lines", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "top_bottom_pattern_0": - { - "label": "Bottom Pattern Initial Layer", - "description": "The pattern on the bottom of the print on the first layer.", - "type": "enum", - "options": - { - "lines": "Lines", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "lines", - "enabled": "top_layers > 0 or bottom_layers > 0", - "value": "top_bottom_pattern", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "connect_skin_polygons": - { - "label": "Connect Top/Bottom Polygons", - "description": "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality.", - "type": "bool", - "default_value": false, - "enabled": "((top_layers > 0 or bottom_layers > 0) and top_bottom_pattern == 'concentric') or (initial_bottom_layers > 0 and top_bottom_pattern_0 == 'concentric') or (roofing_layer_count > 0 and roofing_pattern == 'concentric')", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "skin_monotonic": - { - "label": "Monotonic Top/Bottom Order", - "description": "Print top/bottom lines in an ordering that causes them to always overlap with adjacent lines in a single direction. This takes slightly more time to print, but makes flat surfaces look more consistent.", - "type": "bool", - "default_value": false, - "enabled": "(top_layers > 0 or bottom_layers > 0) and (top_bottom_pattern != 'concentric' or top_bottom_pattern_0 != 'concentric')", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "skin_angles": - { - "label": "Top/Bottom Line Directions", - "description": "A list of integer line directions to use when the top/bottom layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees).", - "type": "[int]", - "default_value": "[ ]", - "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "skin_no_small_gaps_heuristic": - { - "label": "No Skin in Z Gaps", - "description": "When the model has small vertical gaps of only a few layers, there should normally be skin around those layers in the narrow space. Enable this setting to not generate skin if the vertical gap is very small. This improves printing time and slicing time, but technically leaves infill exposed to the air.", - "type": "bool", - "default_value": false, - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "skin_outline_count": - { - "label": "Extra Skin Wall Count", - "description": "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material.", - "value": "0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1", - "default_value": 1, - "minimum_value": "0", - "maximum_value_warning": "10", - "type": "int", - "enabled": "(top_layers > 0 or bottom_layers > 0) and (top_bottom_pattern != 'concentric' or top_bottom_pattern_0 != 'concentric' or (roofing_layer_count > 0 and roofing_pattern != 'concentric'))", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_enabled": - { - "label": "Enable Ironing", - "description": "Go over the top surface one additional time, but this time extruding very little material. This is meant to melt the plastic on top further, creating a smoother surface. The pressure in the nozzle chamber is kept high so that the creases in the surface are filled with material.", - "type": "bool", - "default_value": false, - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_only_highest_layer": - { - "label": "Iron Only Highest Layer", - "description": "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish.", - "type": "bool", - "default_value": false, - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_pattern": - { - "label": "Ironing Pattern", - "description": "The pattern to use for ironing top surfaces.", - "type": "enum", - "options": - { - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "zigzag", - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_monotonic": - { - "label": "Monotonic Ironing Order", - "description": "Print ironing lines in an ordering that causes them to always overlap with adjacent lines in a single direction. This takes slightly more time to print, but makes flat surfaces look more consistent.", - "type": "bool", - "default_value": false, - "enabled": "ironing_enabled and ironing_pattern != 'concentric'", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_line_spacing": - { - "label": "Ironing Line Spacing", - "description": "The distance between the lines of ironing.", - "type": "float", - "unit": "mm", - "default_value": 0.1, - "minimum_value": "0.001", - "maximum_value_warning": "machine_nozzle_tip_outer_diameter", - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_flow": - { - "label": "Ironing Flow", - "description": "The amount of material, relative to a normal skin line, to extrude during ironing. Keeping the nozzle filled helps filling some of the crevices of the top surface, but too much results in overextrusion and blips on the side of the surface.", - "type": "float", - "unit": "%", - "default_value": 10.0, - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_inset": - { - "label": "Ironing Inset", - "description": "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print.", - "type": "float", - "unit": "mm", - "default_value": 0.35, - "value": "wall_line_width_0 / 2 + (ironing_line_spacing - skin_line_width * (1.0 + ironing_flow / 100) / 2 if ironing_pattern == 'concentric' else skin_line_width * (1.0 - ironing_flow / 100) / 2)", - "minimum_value_warning": "0", - "maximum_value_warning": "wall_line_width_0", - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "speed_ironing": - { - "label": "Ironing Speed", - "description": "The speed at which to pass over the top surface.", - "type": "float", - "unit": "mm/s", - "default_value": 20.0, - "value": "speed_topbottom * 20 / 30", - "minimum_value": "0.001", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "100", - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "acceleration_ironing": - { - "label": "Ironing Acceleration", - "description": "The acceleration with which ironing is performed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_topbottom", - "enabled": "resolveOrValue('acceleration_enabled') and ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "jerk_ironing": - { - "label": "Ironing Jerk", - "description": "The maximum instantaneous velocity change while performing ironing.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_topbottom", - "enabled": "resolveOrValue('jerk_enabled') and ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "skin_overlap": - { - "label": "Skin Overlap Percentage", - "description": "Adjust the amount of overlap between the walls and (the endpoints of) the skin-centerlines, as a percentage of the line widths of the skin lines and the innermost wall. A slight overlap allows the walls to connect firmly to the skin. Note that, given an equal skin and wall line-width, any percentage over 50% may already cause any skin to go past the wall, because at that point the position of the nozzle of the skin-extruder may already reach past the middle of the wall.", - "unit": "%", - "type": "float", - "default_value": 5, - "minimum_value_warning": "-50", - "maximum_value_warning": "100", - "value": "5 if top_bottom_pattern != 'concentric' else 0", - "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "skin_overlap_mm": - { - "label": "Skin Overlap", - "description": "Adjust the amount of overlap between the walls and (the endpoints of) the skin-centerlines. A slight overlap allows the walls to connect firmly to the skin. Note that, given an equal skin and wall line-width, any value over half the width of the wall may already cause any skin to go past the wall, because at that point the position of the nozzle of the skin-extruder may already reach past the middle of the wall.", - "unit": "mm", - "type": "float", - "default_value": 0.02, - "minimum_value_warning": "-0.5 * machine_nozzle_size", - "maximum_value_warning": "machine_nozzle_size", - "value": "0.5 * (skin_line_width + (wall_line_width_x if wall_line_count > 1 else wall_line_width_0)) * skin_overlap / 100 if top_bottom_pattern != 'concentric' else 0", - "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'", - "settable_per_mesh": true - } - } - }, - "skin_preshrink": - { - "label": "Skin Removal Width", - "description": "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", - "minimum_value": "0", - "maximum_value_warning": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "top_skin_preshrink": - { - "label": "Top Skin Removal Width", - "description": "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "skin_preshrink", - "maximum_value_warning": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", - "minimum_value": "0", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "bottom_skin_preshrink": - { - "label": "Bottom Skin Removal Width", - "description": "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "skin_preshrink", - "maximum_value_warning": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", - "minimum_value": "0", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - }, - "expand_skins_expand_distance": - { - "label": "Skin Expand Distance", - "description": "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", - "minimum_value": "-skin_preshrink", - "limit_to_extruder": "top_bottom_extruder_nr", - "enabled": "top_layers > 0 or bottom_layers > 0", - "settable_per_mesh": true, - "children": - { - "top_skin_expand_distance": - { - "label": "Top Skin Expand Distance", - "description": "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "expand_skins_expand_distance", - "minimum_value": "-top_skin_preshrink", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "bottom_skin_expand_distance": - { - "label": "Bottom Skin Expand Distance", - "description": "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "expand_skins_expand_distance", - "minimum_value": "-bottom_skin_preshrink", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - }, - "max_skin_angle_for_expansion": - { - "label": "Maximum Skin Angle for Expansion", - "description": "Top and/or bottom surfaces of your object with an angle larger than this setting, won't have their top/bottom skin expanded. This avoids expanding the narrow skin areas that are created when the model surface has a near vertical slope. An angle of 0° is horizontal and will cause no skin to be expanded, while an angle of 90° is vertical and will cause all skin to be expanded.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "2", - "maximum_value": "90", - "default_value": 90, - "enabled": "(top_layers > 0 or bottom_layers > 0) and (top_skin_expand_distance > 0 or bottom_skin_expand_distance > 0)", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "min_skin_width_for_expansion": - { - "label": "Minimum Skin Width for Expansion", - "description": "Skin areas narrower than this are not expanded. This avoids expanding the narrow skin areas that are created when the model surface has a slope close to the vertical.", - "unit": "mm", - "type": "float", - "default_value": 0, - "value": "top_layers * layer_height / math.tan(math.radians(max_skin_angle_for_expansion))", - "minimum_value": "0", - "enabled": "(top_layers > 0 or bottom_layers > 0) and (top_skin_expand_distance > 0 or bottom_skin_expand_distance > 0)", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - } - } - }, - "infill": - { - "label": "Infill", - "icon": "Infill1", - "description": "Infill", - "type": "category", - "children": - { - "infill_extruder_nr": - { - "label": "Infill Extruder", - "description": "The extruder train used for printing infill. This is used in multi-extrusion.", - "type": "optional_extruder", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1" - }, - "infill_sparse_density": - { - "label": "Infill Density", - "description": "Adjusts the density of infill of the print.", - "unit": "%", - "type": "float", - "default_value": 20, - "minimum_value": "0", - "maximum_value_warning": "100", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true, - "children": - { - "infill_line_distance": - { - "label": "Infill Line Distance", - "description": "Distance between the printed infill lines. This setting is calculated by the infill density and the infill line width.", - "unit": "mm", - "type": "float", - "default_value": 2, - "minimum_value": "0", - "minimum_value_warning": "infill_line_width", - "value": "0 if infill_sparse_density == 0 else (infill_line_width * 100) / infill_sparse_density * (2 if infill_pattern == 'grid' else (3 if infill_pattern == 'triangles' or infill_pattern == 'trihexagon' or infill_pattern == 'cubic' or infill_pattern == 'cubicsubdiv' else (2 if infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' else (1 if infill_pattern == 'cross' or infill_pattern == 'cross_3d' else 1))))", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - } - } - }, - "infill_pattern": - { - "label": "Infill Pattern", - "description": "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction.", - "type": "enum", - "options": - { - "grid": "Grid", - "lines": "Lines", - "triangles": "Triangles", - "trihexagon": "Tri-Hexagon", - "cubic": "Cubic", - "cubicsubdiv": "Cubic Subdivision", - "tetrahedral": "Octet", - "quarter_cubic": "Quarter Cubic", - "concentric": "Concentric", - "zigzag": "Zig Zag", - "cross": "Cross", - "cross_3d": "Cross 3D", - "gyroid": "Gyroid" - }, - "default_value": "grid", - "enabled": "infill_line_distance > 0", - "value": "'lines' if infill_sparse_density > 25 else 'grid'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "zig_zaggify_infill": - { - "label": "Connect Infill Lines", - "description": "Connect the ends where the infill pattern meets the inner wall using a line which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduce the effects of infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used.", - "type": "bool", - "default_value": false, - "value": "infill_pattern == 'cross' or infill_pattern == 'cross_3d'", - "enabled": "infill_pattern == 'lines' or infill_pattern == 'grid' or infill_pattern == 'triangles' or infill_pattern == 'trihexagon' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_pattern == 'gyroid'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "connect_infill_polygons": - { - "label": "Connect Infill Polygons", - "description": "Connect infill paths where they run next to each other. For infill patterns which consist of several closed polygons, enabling this setting greatly reduces the travel time.", - "type": "bool", - "default_value": true, - "value": "(infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_multiplier % 2 == 0) and infill_wall_line_count > 0", - "enabled": "infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_pattern == 'concentric' or infill_multiplier % 2 == 0 or infill_wall_line_count > 1", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_angles": - { - "label": "Infill Line Directions", - "description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees for the lines and zig zag patterns and 45 degrees for all other patterns).", - "type": "[int]", - "default_value": "[ ]", - "enabled": "infill_pattern != 'concentric' and infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_offset_x": - { - "label": "Infill X Offset", - "description": "The infill pattern is moved this distance along the X axis.", - "unit": "mm", - "type": "float", - "default_value": 0, - "enabled": "infill_pattern == 'grid' or infill_pattern == 'lines' or infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'zigzag'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_offset_y": - { - "label": "Infill Y Offset", - "description": "The infill pattern is moved this distance along the Y axis.", - "unit": "mm", - "type": "float", - "default_value": 0, - "enabled": "infill_pattern == 'grid' or infill_pattern == 'lines' or infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'zigzag'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_randomize_start_location": - { - "label": "Randomize Infill Start", - "description": "Randomize which infill line is printed first. This prevents one segment becoming the strongest, but it does so at the cost of an additional travel move.", - "type": "bool", - "default_value": false, - "warning_value": "True if infill_pattern not in ('grid', 'triangles', 'trihexagon', 'cubic', 'cubicsubdiv', 'tetrahedral', 'quarter_cubic') else None", - "enabled": "not ((infill_pattern == 'cross' and connect_infill_polygons) or infill_pattern == 'concentric')", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_multiplier": - { - "label": "Infill Line Multiplier", - "description": "Convert each infill line to this many lines. The extra lines do not cross over each other, but avoid each other. This makes the infill stiffer, but increases print time and material usage.", - "default_value": 1, - "type": "int", - "minimum_value": "1", - "maximum_value_warning": "infill_line_distance / infill_line_width", - "enabled": "infill_sparse_density > 0 and infill_pattern != 'zigzag' and (gradual_infill_steps == 0 or not zig_zaggify_infill)", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_wall_line_count": - { - "label": "Extra Infill Wall Count", - "description": "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\nThis feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right.", - "default_value": 0, - "type": "int", - "minimum_value": "0", - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "sub_div_rad_add": - { - "label": "Cubic Subdivision Shell", - "description": "An addition to the radius from the center of each cube to check for the boundary of the model, as to decide whether this cube should be subdivided. Larger values lead to a thicker shell of small cubes near the boundary of the model.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "value": "wall_line_width_x", - "minimum_value_warning": "-1 * infill_line_distance", - "maximum_value_warning": "5 * infill_line_distance", - "enabled": "infill_sparse_density > 0 and infill_pattern == 'cubicsubdiv'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_overlap": - { - "label": "Infill Overlap Percentage", - "description": "The amount of overlap between the infill and the walls as a percentage of the infill line width. A slight overlap allows the walls to connect firmly to the infill.", - "unit": "%", - "type": "float", - "default_value": 10, - "value": "10 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0", - "minimum_value_warning": "-50", - "maximum_value_warning": "100", - "enabled": "infill_sparse_density > 0 and infill_pattern != 'concentric'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true, - "children": - { - "infill_overlap_mm": - { - "label": "Infill Overlap", - "description": "The amount of overlap between the infill and the walls. A slight overlap allows the walls to connect firmly to the infill.", - "unit": "mm", - "type": "float", - "default_value": 0.04, - "minimum_value_warning": "-0.5 * machine_nozzle_size", - "maximum_value_warning": "machine_nozzle_size", - "value": "0.5 * (infill_line_width + (wall_line_width_x if wall_line_count > 1 else wall_line_width_0)) * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0", - "enabled": "infill_sparse_density > 0 and infill_pattern != 'concentric'", - "settable_per_mesh": true - } - } - }, - "infill_wipe_dist": - { - "label": "Infill Wipe Distance", - "description": "Distance of a travel move inserted after every infill line, to make the infill stick to the walls better. This option is similar to infill overlap, but without extrusion and only on one end of the infill line.", - "unit": "mm", - "type": "float", - "default_value": 0.04, - "value": "wall_line_width_0 / 4 if wall_line_count == 1 else wall_line_width_x / 4", - "minimum_value_warning": "0", - "maximum_value_warning": "machine_nozzle_size", - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_sparse_thickness": - { - "label": "Infill Layer Thickness", - "description": "The thickness per layer of infill material. This value should always be a multiple of the layer height and is otherwise rounded.", - "unit": "mm", - "type": "float", - "default_value": 0.1, - "minimum_value": "resolveOrValue('layer_height') / 2 if infill_line_distance > 0 else -999999", - "maximum_value_warning": "0.75 * machine_nozzle_size", - "maximum_value": "resolveOrValue('layer_height') * 8 if infill_line_distance > 0 else 999999", - "value": "resolveOrValue('layer_height')", - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "gradual_infill_steps": - { - "label": "Gradual Infill Steps", - "description": "Number of times to reduce the infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Infill Density.", - "default_value": 0, - "type": "int", - "minimum_value": "0", - "maximum_value_warning": "1 if (infill_pattern == 'cross' or infill_pattern == 'cross_3d' or support_pattern == 'concentric') else 5", - "maximum_value": "999999 if infill_line_distance == 0 else (20 - math.log(infill_line_distance) / math.log(2))", - "enabled": "infill_sparse_density > 0 and infill_pattern != 'cubicsubdiv'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "gradual_infill_step_height": - { - "label": "Gradual Infill Step Height", - "description": "The height of infill of a given density before switching to half the density.", - "unit": "mm", - "type": "float", - "default_value": 1.5, - "minimum_value": "0.0001", - "minimum_value_warning": "3 * resolveOrValue('layer_height')", - "enabled": "infill_sparse_density > 0 and gradual_infill_steps > 0 and infill_pattern != 'cubicsubdiv'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_before_walls": - { - "label": "Infill Before Walls", - "description": "Print the infill before printing the walls. Printing the walls first may lead to more accurate walls, but overhangs print worse. Printing the infill first leads to sturdier walls, but the infill pattern might sometimes show through the surface.", - "type": "bool", - "default_value": true, - "enabled": "infill_sparse_density > 0 and wall_x_extruder_nr == infill_extruder_nr", - "settable_per_mesh": true - }, - "min_infill_area": - { - "label": "Minimum Infill Area", - "description": "Don't generate areas of infill smaller than this (use skin instead).", - "unit": "mm²", - "type": "float", - "minimum_value": "0", - "default_value": 0, - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_support_enabled": - { - "label": "Infill Support", - "description": "Print infill structures only where tops of the model should be supported. Enabling this reduces print time and material usage, but leads to ununiform object strength.", - "type": "bool", - "default_value": false, - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_support_angle": - { - "label": "Infill Overhang Angle", - "description": "The minimum angle of internal overhangs for which infill is added. At a value of 0° objects are totally filled with infill, 90° will not provide any infill.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "2", - "maximum_value": "90", - "default_value": 40, - "enabled": "infill_sparse_density > 0 and infill_support_enabled", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "skin_edge_support_thickness": - { - "label": "Skin Edge Support Thickness", - "description": "The thickness of the extra infill that supports skin edges.", - "unit": "mm", - "default_value": 0.8, - "minimum_value": "0", - "maximum_value": "machine_height", - "maximum_value_warning": "resolveOrValue('infill_sparse_thickness') * 10", - "type": "float", - "value": "0 if infill_sparse_density > 0 else 0", - "limit_to_extruder": "infill_extruder_nr", - "enabled": "infill_sparse_density > 0", - "settable_per_mesh": true, - "children": - { - "skin_edge_support_layers": - { - "label": "Skin Edge Support Layers", - "description": "The number of infill layers that supports skin edges.", - "default_value": 4, - "minimum_value": "0", - "maximum_value_warning": "10", - "type": "int", - "value": "math.ceil(round(skin_edge_support_thickness / resolveOrValue('infill_sparse_thickness'), 4))", - "limit_to_extruder": "infill_extruder_nr", - "enabled": "infill_sparse_density > 0", - "settable_per_mesh": true - } - } - } - } - }, - "material": - { - "label": "Material", - "icon": "Spool", - "description": "Material", - "type": "category", - "children": - { - "default_material_print_temperature": - { - "label": "Default Printing Temperature", - "description": "The default temperature used for printing. This should be the \"base\" temperature of a material. All other print temperatures should use offsets based on this value", - "unit": "°C", - "type": "float", - "default_value": 210, - "minimum_value_warning": "0", - "maximum_value_warning": "285", - "maximum_value": "365", - "enabled": false, - "settable_per_extruder": true, - "settable_per_mesh": false, - "minimum_value": "-273.15" - }, - "build_volume_temperature": - { - "label": "Build Volume Temperature", - "description": "The temperature of the environment to print in. If this is 0, the build volume temperature will not be adjusted.", - "unit": "°C", - "type": "float", - "default_value": 0, - "resolve": "min(extruderValues('build_volume_temperature'))", - "minimum_value": "-273.15", - "minimum_value_warning": "0", - "maximum_value_warning": "285", - "enabled": "machine_heated_build_volume", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "material_print_temperature": - { - "label": "Printing Temperature", - "description": "The temperature used for printing.", - "unit": "°C", - "type": "float", - "default_value": 210, - "value": "default_material_print_temperature", - "minimum_value": "-273.15", - "minimum_value_warning": "0", - "maximum_value_warning": "285", - "maximum_value": "365", - "enabled": "machine_nozzle_temp_enabled and not (material_flow_dependent_temperature)", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_print_temperature_layer_0": - { - "label": "Printing Temperature Initial Layer", - "description": "The temperature used for printing the first layer. Set at 0 to disable special handling of the initial layer.", - "unit": "°C", - "type": "float", - "default_value": 215, - "value": "material_print_temperature", - "minimum_value": "-273.15", - "minimum_value_warning": "0", - "maximum_value_warning": "285", - "maximum_value": "365", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_initial_print_temperature": - { - "label": "Initial Printing Temperature", - "description": "The minimal temperature while heating up to the Printing Temperature at which printing can already start.", - "unit": "°C", - "type": "float", - "default_value": 200, - "value": "max(-273.15, material_print_temperature - 10)", - "minimum_value": "-273.15", - "minimum_value_warning": "material_standby_temperature", - "maximum_value_warning": "material_print_temperature", - "maximum_value": "365", - "enabled": "machine_nozzle_temp_enabled and not machine_extruders_share_heater", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_final_print_temperature": - { - "label": "Final Printing Temperature", - "description": "The temperature to which to already start cooling down just before the end of printing.", - "unit": "°C", - "type": "float", - "default_value": 195, - "value": "max(-273.15, material_print_temperature - 15)", - "minimum_value": "-273.15", - "minimum_value_warning": "material_standby_temperature", - "maximum_value_warning": "material_print_temperature", - "maximum_value": "365", - "enabled": "machine_nozzle_temp_enabled and not machine_extruders_share_heater", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_extrusion_cool_down_speed": - { - "label": "Extrusion Cool Down Speed Modifier", - "description": "The extra speed by which the nozzle cools while extruding. The same value is used to signify the heat up speed lost when heating up while extruding.", - "unit": "°C/s", - "type": "float", - "default_value": 0.7, - "minimum_value": "0", - "maximum_value_warning": "10.0", - "maximum_value": "machine_nozzle_heat_up_speed", - "enabled": "material_flow_dependent_temperature or (extruders_enabled_count > 1 and material_final_print_temperature != material_print_temperature)", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "default_material_bed_temperature": - { - "label": "Default Build Plate Temperature", - "description": "The default temperature used for the heated build plate. This should be the \"base\" temperature of a build plate. All other print temperatures should use offsets based on this value", - "unit": "°C", - "type": "float", - "resolve": "max(extruderValues('default_material_bed_temperature'))", - "default_value": 60, - "minimum_value": "-273.15", - "minimum_value_warning": "build_volume_temperature", - "maximum_value_warning": "130", - "maximum_value": "200", - "enabled": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_bed_temperature": - { - "label": "Build Plate Temperature", - "description": "The temperature used for the heated build plate. If this is 0, the build plate is left unheated.", - "unit": "°C", - "type": "float", - "default_value": 60, - "value": "default_material_bed_temperature", - "resolve": "max(extruderValues('material_bed_temperature'))", - "minimum_value": "-273.15", - "minimum_value_warning": "build_volume_temperature", - "maximum_value_warning": "130", - "maximum_value": "200", - "enabled": "machine_heated_bed and machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_bed_temperature_layer_0": - { - "label": "Build Plate Temperature Initial Layer", - "description": "The temperature used for the heated build plate at the first layer. If this is 0, the build plate is left unheated during the first layer.", - "unit": "°C", - "type": "float", - "resolve": "max(extruderValues('material_bed_temperature_layer_0'))", - "default_value": 60, - "value": "resolveOrValue('material_bed_temperature')", - "minimum_value": "-273.15", - "minimum_value_warning": "max(build_volume_temperature, max(extruderValues('material_bed_temperature')))", - "maximum_value_warning": "130", - "maximum_value": "200", - "enabled": "machine_heated_bed and machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_adhesion_tendency": - { - "label": "Adhesion Tendency", - "description": "Surface adhesion tendency.", - "type": "int", - "default_value": 10, - "minimum_value": "0", - "maximum_value": "10", - "enabled": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_surface_energy": - { - "label": "Surface Energy", - "description": "Surface energy.", - "unit": "%", - "type": "int", - "default_value": 100, - "minimum_value": "0", - "maximum_value": "100", - "enabled": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_shrinkage_percentage": - { - "label": "Scaling Factor Shrinkage Compensation", - "description": "To compensate for the shrinkage of the material as it cools down, the model will be scaled with this factor.", - "unit": "%", - "type": "float", - "default_value": 100.0, - "enabled": false, - "minimum_value": "0.001", - "minimum_value_warning": "100", - "maximum_value_warning": "120", - "settable_per_mesh": false, - "settable_per_extruder": false, - "resolve": "sum(extruderValues(\"material_shrinkage_percentage\")) / len(extruderValues(\"material_shrinkage_percentage\"))" - }, - "material_crystallinity": - { - "label": "Crystalline Material", - "description": "Is this material the type that breaks off cleanly when heated (crystalline), or is it the type that produces long intertwined polymer chains (non-crystalline)?", - "type": "bool", - "default_value": false, - "enabled": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_anti_ooze_retracted_position": - { - "label": "Anti-ooze Retracted Position", - "description": "How far the material needs to be retracted before it stops oozing.", - "type": "float", - "unit": "mm", - "default_value": -4, - "enabled": false, - "minimum_value_warning": "-switch_extruder_retraction_amount", - "maximum_value": "0", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_anti_ooze_retraction_speed": - { - "label": "Anti-ooze Retraction Speed", - "description": "How fast the material needs to be retracted during a filament switch to prevent oozing.", - "type": "float", - "unit": "mm/s", - "default_value": 5, - "enabled": false, - "minimum_value": "0", - "maximum_value": "machine_max_feedrate_e", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_break_preparation_retracted_position": - { - "label": "Break Preparation Retracted Position", - "description": "How far the filament can be stretched before it breaks, while heated.", - "type": "float", - "unit": "mm", - "default_value": -16, - "enabled": false, - "minimum_value_warning": "-retraction_amount * 4", - "maximum_value": "0", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_break_preparation_speed": - { - "label": "Break Preparation Retraction Speed", - "description": "How fast the filament needs to be retracted just before breaking it off in a retraction.", - "type": "float", - "unit": "mm/s", - "default_value": 2, - "enabled": false, - "minimum_value": "0", - "maximum_value": "machine_max_feedrate_e", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_break_preparation_temperature": - { - "label": "Break Preparation Temperature", - "description": "The temperature used to purge material, should be roughly equal to the highest possible printing temperature.", - "type": "float", - "unit": "°C", - "default_value": 50, - "value": "material_print_temperature", - "enabled": false, - "minimum_value": "-273.15", - "maximum_value_warning": "300", - "maximum_value": "365", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_break_retracted_position": - { - "label": "Break Retracted Position", - "description": "How far to retract the filament in order to break it cleanly.", - "type": "float", - "unit": "mm", - "default_value": -50, - "enabled": false, - "minimum_value_warning": "-100", - "maximum_value": "0", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_break_speed": - { - "label": "Break Retraction Speed", - "description": "The speed at which to retract the filament in order to break it cleanly.", - "type": "float", - "unit": "mm/s", - "default_value": 25, - "enabled": false, - "minimum_value": "0", - "maximum_value": "machine_max_feedrate_e", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_break_temperature": - { - "label": "Break Temperature", - "description": "The temperature at which the filament is broken for a clean break.", - "type": "float", - "unit": "°C", - "default_value": 50, - "enabled": false, - "minimum_value": "-273.15", - "maximum_value": "365", - "maximum_value_warning": "300", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_flush_purge_speed": - { - "label": "Flush Purge Speed", - "description": "How fast to prime the material after switching to a different material.", - "type": "float", - "default_value": 0.5, - "enabled": false - }, - "material_flush_purge_length": - { - "label": "Flush Purge Length", - "description": "How much material to use to purge the previous material out of the nozzle (in length of filament) when switching to a different material.", - "type": "float", - "default_value": 60, - "enabled": false - }, - "material_end_of_filament_purge_speed": - { - "label": "End of Filament Purge Speed", - "description": "How fast to prime the material after replacing an empty spool with a fresh spool of the same material.", - "type": "float", - "default_value": 0.5, - "enabled": false - }, - "material_end_of_filament_purge_length": - { - "label": "End of Filament Purge Length", - "description": "How much material to use to purge the previous material out of the nozzle (in length of filament) when replacing an empty spool with a fresh spool of the same material.", - "type": "float", - "default_value": 20, - "enabled": false - }, - "material_maximum_park_duration": - { - "label": "Maximum Park Duration", - "description": "How long the material can be kept out of dry storage safely.", - "type": "float", - "default_value": 300, - "enabled": false - }, - "material_no_load_move_factor": - { - "label": "No Load Move Factor", - "description": "A factor indicating how much the filament gets compressed between the feeder and the nozzle chamber, used to determine how far to move the material for a filament switch.", - "type": "float", - "default_value": 0.940860215, - "enabled": false - }, - "material_flow": - { - "label": "Flow", - "description": "Flow compensation: the amount of material extruded is multiplied by this value.", - "unit": "%", - "default_value": 100, - "type": "float", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": true, - "children": - { - "wall_material_flow": - { - "label": "Wall Flow", - "description": "Flow compensation on wall lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "limit_to_extruder": "wall_0_extruder_nr if wall_x_extruder_nr == wall_0_extruder_nr else -1", - "settable_per_mesh": true, - "children": - { - "wall_0_material_flow": - { - "label": "Outer Wall Flow", - "description": "Flow compensation on the outermost wall line.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "wall_material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "wall_x_material_flow": - { - "label": "Inner Wall(s) Flow", - "description": "Flow compensation on wall lines for all wall lines except the outermost one.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "wall_material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "skin_material_flow": - { - "label": "Top/Bottom Flow", - "description": "Flow compensation on top/bottom lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "roofing_material_flow": - { - "label": "Top Surface Skin Flow", - "description": "Flow compensation on lines of the areas at the top of the print.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "skin_material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0" - }, - "infill_material_flow": - { - "label": "Infill Flow", - "description": "Flow compensation on infill lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "skirt_brim_material_flow": - { - "label": "Skirt/Brim Flow", - "description": "Flow compensation on skirt or brim lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled')", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_material_flow": - { - "label": "Support Flow", - "description": "Flow compensation on support structure lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "support_enable or support_meshes_present", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_interface_material_flow": - { - "label": "Support Interface Flow", - "description": "Flow compensation on lines of support roof or floor.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "(support_enable or support_meshes_present) and support_interface_enable", - "limit_to_extruder": "support_interface_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_material_flow": - { - "label": "Support Roof Flow", - "description": "Flow compensation on support roof lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_material_flow')", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "(support_enable or support_meshes_present) and support_roof_enable", - "limit_to_extruder": "support_roof_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_bottom_material_flow": - { - "label": "Support Floor Flow", - "description": "Flow compensation on support floor lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_material_flow')", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "(support_enable or support_meshes_present) and support_bottom_enable", - "limit_to_extruder": "support_bottom_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "prime_tower_flow": - { - "label": "Prime Tower Flow", - "description": "Flow compensation on prime tower lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "material_flow_layer_0": - { - "label": "Initial Layer Flow", - "description": "Flow compensation for the first layer: the amount of material extruded on the initial layer is multiplied by this value.", - "unit": "%", - "default_value": 100, - "type": "float", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "settable_per_mesh": true - }, - "material_standby_temperature": - { - "label": "Standby Temperature", - "description": "The temperature of the nozzle when another nozzle is currently used for printing.", - "type": "float", - "unit": "°C", - "default_value": 150, - "minimum_value": "-273.15", - "minimum_value_warning": "0", - "maximum_value_warning": "260", - "maximum_value": "365", - "enabled": "extruders_enabled_count > 1 and machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "speed": - { - "label": "Speed", - "icon": "SpeedOMeter", - "description": "Speed", - "type": "category", - "children": - { - "speed_print": - { - "label": "Print Speed", - "description": "The speed at which printing happens.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value_warning": "150", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "default_value": 60, - "settable_per_mesh": true, - "children": - { - "speed_infill": - { - "label": "Infill Speed", - "description": "The speed at which infill is printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 60, - "value": "speed_print", - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "speed_wall": - { - "label": "Wall Speed", - "description": "The speed at which the walls are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 30, - "value": "speed_print / 2", - "settable_per_mesh": true, - "children": - { - "speed_wall_0": - { - "label": "Outer Wall Speed", - "description": "The speed at which the outermost walls are printed. Printing the outer wall at a lower speed improves the final skin quality. However, having a large difference between the inner wall speed and the outer wall speed will affect quality in a negative way.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 30, - "value": "speed_wall", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "speed_wall_x": - { - "label": "Inner Wall Speed", - "description": "The speed at which all inner walls are printed. Printing the inner wall faster than the outer wall will reduce printing time. It works well to set this in between the outer wall speed and the infill speed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 60, - "value": "speed_wall * 2", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "speed_roofing": - { - "label": "Top Surface Skin Speed", - "description": "The speed at which top surface skin layers are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 25, - "value": "speed_topbottom", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0" - }, - "speed_topbottom": - { - "label": "Top/Bottom Speed", - "description": "The speed at which top/bottom layers are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 30, - "value": "speed_print / 2", - "limit_to_extruder": "top_bottom_extruder_nr", - "enabled": "top_layers > 0 or bottom_layers > 0", - "settable_per_mesh": true - }, - "speed_support": - { - "label": "Support Speed", - "description": "The speed at which the support structure is printed. Printing support at higher speeds can greatly reduce printing time. The surface quality of the support structure is not important since it is removed after printing.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 60, - "value": "speed_print", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": false, - "limit_to_extruder": "support_extruder_nr", - "settable_per_extruder": true, - "children": - { - "speed_support_infill": - { - "label": "Support Infill Speed", - "description": "The speed at which the infill of support is printed. Printing the infill at lower speeds improves stability.", - "unit": "mm/s", - "type": "float", - "default_value": 60, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "value": "speed_support", - "enabled": "support_enable or support_meshes_present", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "speed_support_interface": - { - "label": "Support Interface Speed", - "description": "The speed at which the roofs and floors of support are printed. Printing them at lower speeds can improve overhang quality.", - "unit": "mm/s", - "type": "float", - "default_value": 40, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "enabled": "support_interface_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_interface_extruder_nr", - "value": "speed_support / 1.5", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "speed_support_roof": - { - "label": "Support Roof Speed", - "description": "The speed at which the roofs of support are printed. Printing them at lower speeds can improve overhang quality.", - "unit": "mm/s", - "type": "float", - "default_value": 40, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "enabled": "support_roof_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_roof_extruder_nr", - "value": "extruderValue(support_roof_extruder_nr, 'speed_support_interface')", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "speed_support_bottom": - { - "label": "Support Floor Speed", - "description": "The speed at which the floor of support is printed. Printing it at lower speed can improve adhesion of support on top of your model.", - "unit": "mm/s", - "type": "float", - "default_value": 40, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "enabled": "support_bottom_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_bottom_extruder_nr", - "value": "extruderValue(support_bottom_extruder_nr, 'speed_support_interface')", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - } - } - }, - "speed_prime_tower": - { - "label": "Prime Tower Speed", - "description": "The speed at which the prime tower is printed. Printing the prime tower slower can make it more stable when the adhesion between the different filaments is suboptimal.", - "type": "float", - "unit": "mm/s", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 60, - "value": "speed_print", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "speed_travel": - { - "label": "Travel Speed", - "description": "The speed at which travel moves are made.", - "unit": "mm/s", - "type": "float", - "default_value": 120, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "value": "speed_print if magic_spiralize else 120", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "speed_layer_0": - { - "label": "Initial Layer Speed", - "description": "The speed for the initial layer. A lower value is advised to improve adhesion to the build plate. Does not affect the build plate adhesion structures themselves, like brim and raft.", - "unit": "mm/s", - "type": "float", - "enabled": "speed_slowdown_layers > 0", - "default_value": 30, - "value": "speed_print * 30 / 60", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "settable_per_mesh": true, - "children": - { - "speed_print_layer_0": - { - "label": "Initial Layer Print Speed", - "description": "The speed of printing for the initial layer. A lower value is advised to improve adhesion to the build plate.", - "unit": "mm/s", - "type": "float", - "enabled": "speed_slowdown_layers > 0", - "default_value": 30, - "value": "speed_layer_0", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "settable_per_mesh": true - }, - "speed_travel_layer_0": - { - "label": "Initial Layer Travel Speed", - "description": "The speed of travel moves in the initial layer. A lower value is advised to prevent pulling previously printed parts away from the build plate. The value of this setting can automatically be calculated from the ratio between the Travel Speed and the Print Speed.", - "unit": "mm/s", - "type": "float", - "enabled": "speed_slowdown_layers > 0", - "default_value": 60, - "value": "speed_layer_0 * speed_travel / speed_print", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "settable_per_extruder": true, - "settable_per_mesh": false - } - } - }, - "skirt_brim_speed": - { - "label": "Skirt/Brim Speed", - "description": "The speed at which the skirt and brim are printed. Normally this is done at the initial layer speed, but sometimes you might want to print the skirt or brim at a different speed.", - "unit": "mm/s", - "type": "float", - "default_value": 30, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "value": "speed_layer_0", - "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled')", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "speed_z_hop": - { - "label": "Z Hop Speed", - "description": "The speed at which the vertical Z movement is made for Z Hops. This is typically lower than the print speed since the build plate or machine's gantry is harder to move.", - "unit": "mm/s", - "type": "float", - "default_value": 10, - "minimum_value": "0", - "maximum_value": "machine_max_feedrate_z", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "speed_slowdown_layers": - { - "label": "Number of Slower Layers", - "description": "The first few layers are printed slower than the rest of the model, to get better adhesion to the build plate and improve the overall success rate of prints. The speed is gradually increased over these layers.", - "type": "int", - "default_value": 2, - "resolve": "round(sum(extruderValues('speed_slowdown_layers')) / len(extruderValues('speed_slowdown_layers')))", - "minimum_value": "0", - "maximum_value_warning": "3.2 / resolveOrValue('layer_height')", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "speed_equalize_flow_enabled": - { - "label": "Equalize Filament Flow", - "description": "Print thinner than normal lines faster so that the amount of material extruded per second remains the same. Thin pieces in your model might require lines printed with smaller line width than provided in the settings. This setting controls the speed changes for such lines.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "speed_equalize_flow_max": - { - "label": "Maximum Speed for Flow Equalization", - "description": "Maximum print speed when adjusting the print speed in order to equalize flow.", - "type": "float", - "unit": "mm/s", - "enabled": "speed_equalize_flow_enabled", - "default_value": 150, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "acceleration_enabled": - { - "label": "Enable Acceleration Control", - "description": "Enables adjusting the print head acceleration. Increasing the accelerations can reduce printing time at the cost of print quality.", - "type": "bool", - "default_value": false, - "resolve": "any(extruderValues('acceleration_enabled'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "acceleration_print": - { - "label": "Print Acceleration", - "description": "The acceleration with which printing happens.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_mesh": true, - "children": - { - "acceleration_infill": - { - "label": "Infill Acceleration", - "description": "The acceleration with which infill is printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_print", - "enabled": "resolveOrValue('acceleration_enabled') and infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "acceleration_wall": - { - "label": "Wall Acceleration", - "description": "The acceleration with which the walls are printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_print", - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_mesh": true, - "children": - { - "acceleration_wall_0": - { - "label": "Outer Wall Acceleration", - "description": "The acceleration with which the outermost walls are printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_wall", - "enabled": "resolveOrValue('acceleration_enabled')", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "acceleration_wall_x": - { - "label": "Inner Wall Acceleration", - "description": "The acceleration with which all inner walls are printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_wall", - "enabled": "resolveOrValue('acceleration_enabled')", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "acceleration_roofing": - { - "label": "Top Surface Skin Acceleration", - "description": "The acceleration with which top surface skin layers are printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_topbottom", - "enabled": "resolveOrValue('acceleration_enabled') and roofing_layer_count > 0 and top_layers > 0", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true - }, - "acceleration_topbottom": - { - "label": "Top/Bottom Acceleration", - "description": "The acceleration with which top/bottom layers are printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_print", - "enabled": "resolveOrValue('acceleration_enabled')", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "acceleration_support": - { - "label": "Support Acceleration", - "description": "The acceleration with which the support structure is printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_print", - "enabled": "resolveOrValue('acceleration_enabled') and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "limit_to_extruder": "support_extruder_nr", - "settable_per_extruder": true, - "children": - { - "acceleration_support_infill": - { - "label": "Support Infill Acceleration", - "description": "The acceleration with which the infill of support is printed.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_support", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled') and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "acceleration_support_interface": - { - "label": "Support Interface Acceleration", - "description": "The acceleration with which the roofs and floors of support are printed. Printing them at lower acceleration can improve overhang quality.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_support", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled') and support_interface_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_interface_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "acceleration_support_roof": - { - "label": "Support Roof Acceleration", - "description": "The acceleration with which the roofs of support are printed. Printing them at lower acceleration can improve overhang quality.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "extruderValue(support_roof_extruder_nr, 'acceleration_support_interface')", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "acceleration_enabled and support_roof_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_roof_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "acceleration_support_bottom": - { - "label": "Support Floor Acceleration", - "description": "The acceleration with which the floors of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface')", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "acceleration_enabled and support_bottom_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_bottom_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - } - } - }, - "acceleration_prime_tower": - { - "label": "Prime Tower Acceleration", - "description": "The acceleration with which the prime tower is printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_print", - "enabled": "resolveOrValue('prime_tower_enable') and resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false - } - } - }, - "acceleration_travel": - { - "label": "Travel Acceleration", - "description": "The acceleration with which travel moves are made.", - "unit": "mm/s²", - "type": "float", - "default_value": 5000, - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "value": "acceleration_print if magic_spiralize else 5000", - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false - }, - "acceleration_layer_0": - { - "label": "Initial Layer Acceleration", - "description": "The acceleration for the initial layer.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_print", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_mesh": true, - "children": - { - "acceleration_print_layer_0": - { - "label": "Initial Layer Print Acceleration", - "description": "The acceleration during the printing of the initial layer.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_layer_0", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_mesh": true - }, - "acceleration_travel_layer_0": - { - "label": "Initial Layer Travel Acceleration", - "description": "The acceleration for travel moves in the initial layer.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_layer_0 * acceleration_travel / acceleration_print", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_extruder": true, - "settable_per_mesh": false - } - } - }, - "acceleration_skirt_brim": - { - "label": "Skirt/Brim Acceleration", - "description": "The acceleration with which the skirt and brim are printed. Normally this is done with the initial layer acceleration, but sometimes you might want to print the skirt or brim at a different acceleration.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_layer_0", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled') and (resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled'))", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "jerk_enabled": - { - "label": "Enable Jerk Control", - "description": "Enables adjusting the jerk of print head when the velocity in the X or Y axis changes. Increasing the jerk can reduce printing time at the cost of print quality.", - "type": "bool", - "default_value": false, - "resolve": "any(extruderValues('jerk_enabled'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "jerk_print": - { - "label": "Print Jerk", - "description": "The maximum instantaneous velocity change of the print head.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_mesh": true, - "children": - { - "jerk_infill": - { - "label": "Infill Jerk", - "description": "The maximum instantaneous velocity change with which infill is printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_print", - "enabled": "resolveOrValue('jerk_enabled') and infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "jerk_wall": - { - "label": "Wall Jerk", - "description": "The maximum instantaneous velocity change with which the walls are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_print", - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_mesh": true, - "children": - { - "jerk_wall_0": - { - "label": "Outer Wall Jerk", - "description": "The maximum instantaneous velocity change with which the outermost walls are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_wall", - "enabled": "resolveOrValue('jerk_enabled')", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "jerk_wall_x": - { - "label": "Inner Wall Jerk", - "description": "The maximum instantaneous velocity change with which all inner walls are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_wall", - "enabled": "resolveOrValue('jerk_enabled')", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "jerk_roofing": - { - "label": "Top Surface Skin Jerk", - "description": "The maximum instantaneous velocity change with which top surface skin layers are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_topbottom", - "enabled": "resolveOrValue('jerk_enabled') and roofing_layer_count > 0 and top_layers > 0", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true - }, - "jerk_topbottom": - { - "label": "Top/Bottom Jerk", - "description": "The maximum instantaneous velocity change with which top/bottom layers are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_print", - "enabled": "(top_layers > 0 or bottom_layers > 0) and resolveOrValue('jerk_enabled')", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "jerk_support": - { - "label": "Support Jerk", - "description": "The maximum instantaneous velocity change with which the support structure is printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_print", - "enabled": "resolveOrValue('jerk_enabled') and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "support_extruder_nr", - "children": - { - "jerk_support_infill": - { - "label": "Support Infill Jerk", - "description": "The maximum instantaneous velocity change with which the infill of support is printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_support", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "jerk_support_interface": - { - "label": "Support Interface Jerk", - "description": "The maximum instantaneous velocity change with which the roofs and floors of support are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_support", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and support_interface_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_interface_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "jerk_support_roof": - { - "label": "Support Roof Jerk", - "description": "The maximum instantaneous velocity change with which the roofs of support are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "extruderValue(support_roof_extruder_nr, 'jerk_support_interface')", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and support_roof_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_roof_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "jerk_support_bottom": - { - "label": "Support Floor Jerk", - "description": "The maximum instantaneous velocity change with which the floors of support are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "extruderValue(support_roof_extruder_nr, 'jerk_support_interface')", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and support_bottom_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_bottom_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - } - } - }, - "jerk_prime_tower": - { - "label": "Prime Tower Jerk", - "description": "The maximum instantaneous velocity change with which the prime tower is printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_print", - "enabled": "resolveOrValue('prime_tower_enable') and resolveOrValue('jerk_enabled')", - "settable_per_mesh": false - } - } - }, - "jerk_travel": - { - "label": "Travel Jerk", - "description": "The maximum instantaneous velocity change with which travel moves are made.", - "unit": "mm/s", - "type": "float", - "default_value": 30, - "minimum_value": "0", - "maximum_value_warning": "50", - "value": "jerk_print if magic_spiralize else 30", - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_mesh": false - }, - "jerk_layer_0": - { - "label": "Initial Layer Jerk", - "description": "The print maximum instantaneous velocity change for the initial layer.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_print", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_mesh": true, - "children": - { - "jerk_print_layer_0": - { - "label": "Initial Layer Print Jerk", - "description": "The maximum instantaneous velocity change during the printing of the initial layer.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_layer_0", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_mesh": true - }, - "jerk_travel_layer_0": - { - "label": "Initial Layer Travel Jerk", - "description": "The acceleration for travel moves in the initial layer.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_layer_0 * jerk_travel / jerk_print", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_extruder": true, - "settable_per_mesh": false - } - } - }, - "jerk_skirt_brim": - { - "label": "Skirt/Brim Jerk", - "description": "The maximum instantaneous velocity change with which the skirt and brim are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "minimum_value": "0", - "maximum_value_warning": "50", - "value": "jerk_layer_0", - "enabled": "resolveOrValue('jerk_enabled') and (resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled'))", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - } - } - }, - "travel": - { - "label": "Travel", - "icon": "PrintTravel", - "description": "travel", - "type": "category", - "children": - { - "retraction_enable": - { - "label": "Enable Retraction", - "description": "Retract the filament when the nozzle is moving over a non-printed area.", - "type": "bool", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retract_at_layer_change": - { - "label": "Retract at Layer Change", - "description": "Retract the filament when the nozzle is moving to the next layer.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_amount": - { - "label": "Retraction Distance", - "description": "The length of material retracted during a retraction move.", - "unit": "mm", - "type": "float", - "default_value": 6.5, - "minimum_value_warning": "-0.0001", - "maximum_value_warning": "10.0", - "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_speed": - { - "label": "Retraction Speed", - "description": "The speed at which the filament is retracted and primed during a retraction move.", - "unit": "mm/s", - "type": "float", - "default_value": 25, - "minimum_value": "0.0001", - "minimum_value_warning": "1", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "maximum_value_warning": "70", - "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "retraction_retract_speed": - { - "label": "Retraction Retract Speed", - "description": "The speed at which the filament is retracted during a retraction move.", - "unit": "mm/s", - "type": "float", - "default_value": 25, - "minimum_value": "0.0001", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "minimum_value_warning": "1", - "maximum_value_warning": "70", - "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"", - "value": "retraction_speed", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_prime_speed": - { - "label": "Retraction Prime Speed", - "description": "The speed at which the filament is primed during a retraction move.", - "unit": "mm/s", - "type": "float", - "default_value": 25, - "minimum_value": "0.0001", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "minimum_value_warning": "1", - "maximum_value_warning": "70", - "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"", - "value": "retraction_speed", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "retraction_extra_prime_amount": - { - "label": "Retraction Extra Prime Amount", - "description": "Some material can ooze away during a travel move, which can be compensated for here.", - "unit": "mm³", - "type": "float", - "default_value": 0, - "minimum_value_warning": "-0.0001", - "maximum_value_warning": "5.0", - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_min_travel": - { - "label": "Retraction Minimum Travel", - "description": "The minimum distance of travel needed for a retraction to happen at all. This helps to get fewer retractions in a small area.", - "unit": "mm", - "type": "float", - "default_value": 1.5, - "value": "line_width * 2", - "minimum_value": "0", - "minimum_value_warning": "line_width * 1.5", - "maximum_value_warning": "10", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_count_max": - { - "label": "Maximum Retraction Count", - "description": "This setting limits the number of retractions occurring within the minimum extrusion distance window. Further retractions within this window will be ignored. This avoids retracting repeatedly on the same piece of filament, as that can flatten the filament and cause grinding issues.", - "default_value": 90, - "minimum_value": "0", - "maximum_value_warning": "100", - "type": "int", - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_extrusion_window": - { - "label": "Minimum Extrusion Distance Window", - "description": "The window in which the maximum retraction count is enforced. This value should be approximately the same as the retraction distance, so that effectively the number of times a retraction passes the same patch of material is limited.", - "unit": "mm", - "type": "float", - "default_value": 4.5, - "minimum_value": "0", - "maximum_value_warning": "retraction_amount * 2", - "value": "retraction_amount", - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "limit_support_retractions": - { - "label": "Limit Support Retractions", - "description": "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excessive stringing within the support structure.", - "type": "bool", - "default_value": true, - "enabled": "retraction_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_combing": - { - "label": "Combing Mode", - "description": "Combing keeps the nozzle within already printed areas when traveling. This results in slightly longer travel moves but reduces the need for retractions. If combing is off, the material will retract and the nozzle moves in a straight line to the next point. It is also possible to avoid combing over top/bottom skin areas or to only comb within the infill.", - "type": "enum", - "options": - { - "off": "Off", - "all": "All", - "noskin": "Not in Skin", - "infill": "Within Infill" - }, - "default_value": "all", - "resolve": "'noskin' if 'noskin' in extruderValues('retraction_combing') else ('infill' if 'infill' in extruderValues('retraction_combing') else ('all' if 'all' in extruderValues('retraction_combing') else 'off'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "retraction_combing_max_distance": - { - "label": "Max Comb Distance With No Retract", - "description": "When greater than zero, combing travel moves that are longer than this distance will use retraction. If set to zero, there is no maximum and combing moves will not use retraction.", - "unit": "mm", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "enabled": "resolveOrValue('retraction_combing') != 'off'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "travel_retract_before_outer_wall": - { - "label": "Retract Before Outer Wall", - "description": "Always retract when moving to start an outer wall.", - "type": "bool", - "default_value": false, - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "travel_avoid_other_parts": - { - "label": "Avoid Printed Parts When Traveling", - "description": "The nozzle avoids already printed parts when traveling. This option is only available when combing is enabled.", - "type": "bool", - "default_value": true, - "enabled": "resolveOrValue('retraction_combing') != 'off'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "travel_avoid_supports": - { - "label": "Avoid Supports When Traveling", - "description": "The nozzle avoids already printed supports when traveling. This option is only available when combing is enabled.", - "type": "bool", - "default_value": false, - "enabled": "resolveOrValue('retraction_combing') != 'off' and travel_avoid_other_parts", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "travel_avoid_distance": - { - "label": "Travel Avoid Distance", - "description": "The distance between the nozzle and already printed parts when avoiding during travel moves.", - "unit": "mm", - "type": "float", - "default_value": 0.625, - "value": "machine_nozzle_tip_outer_diameter / 2 * 1.25", - "minimum_value": "0", - "minimum_value_warning": "machine_nozzle_tip_outer_diameter * 0.5", - "maximum_value_warning": "machine_nozzle_tip_outer_diameter * 5", - "enabled": "resolveOrValue('retraction_combing') != 'off' and travel_avoid_other_parts", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "layer_start_x": - { - "label": "Layer Start X", - "description": "The X coordinate of the position near where to find the part to start printing each layer.", - "unit": "mm", - "type": "float", - "default_value": 0.0, - "minimum_value": "machine_width / -2 if machine_center_is_zero else 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": true - }, - "layer_start_y": - { - "label": "Layer Start Y", - "description": "The Y coordinate of the position near where to find the part to start printing each layer.", - "unit": "mm", - "type": "float", - "default_value": 0.0, - "minimum_value": "machine_depth / -2 if machine_center_is_zero else 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": true - }, - "retraction_hop_enabled": { - "label": "Z Hop When Retracted", - "description": "Whenever a retraction is done, the build plate is lowered to create clearance between the nozzle and the print. It prevents the nozzle from hitting the print during travel moves, reducing the chance to knock the print from the build plate.", - "type": "bool", - "default_value": false, - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_hop_only_when_collides": { - "label": "Z Hop Only Over Printed Parts", - "description": "Only perform a Z Hop when moving over printed parts which cannot be avoided by horizontal motion by Avoid Printed Parts when Traveling.", - "type": "bool", - "default_value": false, - "enabled": "retraction_enable and retraction_hop_enabled and travel_avoid_other_parts", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_hop": { - "label": "Z Hop Height", - "description": "The height difference when performing a Z Hop.", - "unit": "mm", - "type": "float", - "default_value": 1, - "minimum_value_warning": "0", - "maximum_value_warning": "10", - "enabled": "retraction_enable and retraction_hop_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_hop_after_extruder_switch": { - "label": "Z Hop After Extruder Switch", - "description": "After the machine switched from one extruder to the other, the build plate is lowered to create clearance between the nozzle and the print. This prevents the nozzle from leaving oozed material on the outside of a print.", - "type": "bool", - "default_value": true, - "enabled": "retraction_hop_enabled and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_hop_after_extruder_switch_height": - { - "label": "Z Hop After Extruder Switch Height", - "description": "The height difference when performing a Z Hop after extruder switch.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "retraction_hop", - "minimum_value_warning": "0", - "maximum_value_warning": "10", - "enabled": "retraction_enable and retraction_hop_after_extruder_switch and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "cooling": - { - "label": "Cooling", - "icon": "Fan", - "description": "Cooling", - "type": "category", - "children": - { - "cool_fan_enabled": - { - "label": "Enable Print Cooling", - "description": "Enables the print cooling fans while printing. The fans improve print quality on layers with short layer times and bridging / overhangs.", - "type": "bool", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_fan_speed": - { - "label": "Fan Speed", - "description": "The speed at which the print cooling fans spin.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 100, - "value": "100.0 if cool_fan_enabled else 0.0", - "enabled": "cool_fan_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "cool_fan_speed_min": - { - "label": "Regular Fan Speed", - "description": "The speed at which the fans spin before hitting the threshold. When a layer prints faster than the threshold, the fan speed gradually inclines towards the maximum fan speed.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "value": "cool_fan_speed", - "default_value": 100, - "enabled": "cool_fan_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_fan_speed_max": - { - "label": "Maximum Fan Speed", - "description": "The speed at which the fans spin on the minimum layer time. The fan speed gradually increases between the regular fan speed and maximum fan speed when the threshold is hit.", - "unit": "%", - "type": "float", - "minimum_value": "max(0, cool_fan_speed_min)", - "maximum_value": "100", - "default_value": 100, - "enabled": "cool_fan_enabled", - "value": "cool_fan_speed", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "cool_min_layer_time_fan_speed_max": - { - "label": "Regular/Maximum Fan Speed Threshold", - "description": "The layer time which sets the threshold between regular fan speed and maximum fan speed. Layers that print slower than this time use regular fan speed. For faster layers the fan speed gradually increases towards the maximum fan speed.", - "unit": "s", - "type": "float", - "default_value": 10, - "maximum_value_warning": "600", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_fan_speed_0": - { - "label": "Initial Fan Speed", - "description": "The speed at which the fans spin at the start of the print. In subsequent layers the fan speed is gradually increased up to the layer corresponding to Regular Fan Speed at Height.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "enabled": "cool_fan_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_fan_full_at_height": - { - "label": "Regular Fan Speed at Height", - "description": "The height at which the fans spin on regular fan speed. At the layers below the fan speed gradually increases from Initial Fan Speed to Regular Fan Speed.", - "unit": "mm", - "type": "float", - "default_value": 0.5, - "value": "0 if resolveOrValue('adhesion_type') == 'raft' else resolveOrValue('layer_height_0')", - "minimum_value": "0", - "maximum_value_warning": "10.0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "cool_fan_full_layer": - { - "label": "Regular Fan Speed at Layer", - "description": "The layer at which the fans spin on regular fan speed. If regular fan speed at height is set, this value is calculated and rounded to a whole number.", - "type": "int", - "default_value": 2, - "minimum_value": "1", - "maximum_value_warning": "10 / resolveOrValue('layer_height')", - "value": "max(1, int(math.floor((cool_fan_full_at_height - resolveOrValue('layer_height_0')) / resolveOrValue('layer_height')) + 2))", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "cool_min_layer_time": - { - "label": "Minimum Layer Time", - "description": "The minimum time spent in a layer. This forces the printer to slow down, to at least spend the time set here in one layer. This allows the printed material to cool down properly before printing the next layer. Layers may still take shorter than the minimal layer time if Lift Head is disabled and if the Minimum Speed would otherwise be violated.", - "unit": "s", - "type": "float", - "default_value": 5, - "minimum_value": "0", - "maximum_value_warning": "600", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_min_speed": - { - "label": "Minimum Speed", - "description": "The minimum print speed, despite slowing down due to the minimum layer time. When the printer would slow down too much, the pressure in the nozzle would be too low and result in bad print quality.", - "unit": "mm/s", - "type": "float", - "default_value": 10, - "minimum_value": "0", - "maximum_value_warning": "100", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_lift_head": - { - "label": "Lift Head", - "description": "When the minimum speed is hit because of minimum layer time, lift the head away from the print and wait the extra time until the minimum layer time is reached.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "support": - { - "label": "Support", - "type": "category", - "icon": "Support", - "description": "Support", - "children": - { - "support_enable": - { - "label": "Generate Support", - "description": "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false - }, - "support_extruder_nr": - { - "label": "Support Extruder", - "description": "The extruder train to use for printing the support. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "int(defaultExtruderPosition())", - "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "children": { - "support_infill_extruder_nr": - { - "label": "Support Infill Extruder", - "description": "The extruder train to use for printing the infill of the support. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "support_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "support_extruder_nr_layer_0": - { - "label": "First Layer Support Extruder", - "description": "The extruder train to use for printing the first layer of support infill. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "support_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "support_interface_extruder_nr": - { - "label": "Support Interface Extruder", - "description": "The extruder train to use for printing the roofs and floors of the support. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "support_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "children": - { - "support_roof_extruder_nr": - { - "label": "Support Roof Extruder", - "description": "The extruder train to use for printing the roofs of the support. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "support_interface_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "support_bottom_extruder_nr": - { - "label": "Support Floor Extruder", - "description": "The extruder train to use for printing the floors of the support. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "support_interface_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": false - } - } - } - } - }, - "support_structure": - { - "label": "Support Structure", - "description": "Chooses between the techniques available to generate support. \"Normal\" support creates a support structure directly below the overhanging parts and drops those areas straight down. \"Tree\" support creates branches towards the overhanging areas that support the model on the tips of those branches, and allows the branches to crawl around the model to support it from the build plate as much as possible.", - "type": "enum", - "options": - { - "normal": "Normal", - "tree": "Tree" - }, - "enabled": "support_enable", - "default_value": "normal", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "support_tree_angle": - { - "label": "Tree Support Branch Angle", - "description": "The angle of the branches. Use a lower angle to make them more vertical and more stable. Use a higher angle to be able to have more reach.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "maximum_value": "90", - "maximum_value_warning": "60", - "default_value": 40, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_structure=='tree'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_tree_branch_distance": - { - "label": "Tree Support Branch Distance", - "description": "How far apart the branches need to be when they touch the model. Making this distance small will cause the tree support to touch the model at more points, causing better overhang but making support harder to remove.", - "unit": "mm", - "type": "float", - "minimum_value": "0.001", - "default_value": 1, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_structure=='tree'", - "settable_per_mesh": true - }, - "support_tree_branch_diameter": - { - "label": "Tree Support Branch Diameter", - "description": "The diameter of the thinnest branches of tree support. Thicker branches are more sturdy. Branches towards the base will be thicker than this.", - "unit": "mm", - "type": "float", - "minimum_value": "0.001", - "minimum_value_warning": "support_line_width * 2", - "default_value": 2, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_structure=='tree'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_tree_branch_diameter_angle": - { - "label": "Tree Support Branch Diameter Angle", - "description": "The angle of the branches' diameter as they gradually become thicker towards the bottom. An angle of 0 will cause the branches to have uniform thickness over their length. A bit of an angle can increase stability of the tree support.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "maximum_value": "89.9999", - "maximum_value_warning": "15", - "default_value": 5, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_structure=='tree'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_tree_collision_resolution": - { - "label": "Tree Support Collision Resolution", - "description": "Resolution to compute collisions with to avoid hitting the model. Setting this lower will produce more accurate trees that fail less often, but increases slicing time dramatically.", - "unit": "mm", - "type": "float", - "minimum_value": "0.001", - "minimum_value_warning": "support_line_width / 4", - "maximum_value_warning": "support_line_width * 2", - "default_value": 0.4, - "value": "support_line_width / 2", - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_structure=='tree' and support_tree_branch_diameter_angle > 0", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_type": - { - "label": "Support Placement", - "description": "Adjusts the placement of the support structures. The placement can be set to touching build plate or everywhere. When set to everywhere the support structures will also be printed on the model.", - "type": "enum", - "options": - { - "buildplate": "Touching Buildplate", - "everywhere": "Everywhere" - }, - "default_value": "everywhere", - "resolve": "'everywhere' if 'everywhere' in extruderValues('support_type') else 'buildplate'", - "enabled": "support_enable", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "support_angle": - { - "label": "Support Overhang Angle", - "description": "The minimum angle of overhangs for which support is added. At a value of 0° all overhangs are supported, 90° will not provide any support.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "maximum_value": "90", - "maximum_value_warning": "80", - "default_value": 50, - "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", - "enabled": "support_enable", - "settable_per_mesh": true - }, - "support_pattern": - { - "label": "Support Pattern", - "description": "The pattern of the support structures of the print. The different options available result in sturdy or easy to remove support.", - "type": "enum", - "options": - { - "lines": "Lines", - "grid": "Grid", - "triangles": "Triangles", - "concentric": "Concentric", - "zigzag": "Zig Zag", - "cross": "Cross", - "gyroid": "Gyroid" - }, - "default_value": "zigzag", - "enabled": "support_enable or support_meshes_present", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_wall_count": - { - "label": "Support Wall Line Count", - "description": "The number of walls with which to surround support infill. Adding a wall can make support print more reliably and can support overhangs better, but increases print time and material used.", - "default_value": 1, - "minimum_value": "0", - "minimum_value_warning": "1 if support_pattern == 'concentric' else 0", - "maximum_value_warning": "0 if (support_skip_some_zags and support_pattern == 'zigzag') else 3", - "type": "int", - "value": "1 if support_enable and support_structure == 'tree' else (1 if (support_pattern == 'grid' or support_pattern == 'triangles' or support_pattern == 'concentric') else 0)", - "enabled": "support_enable or support_meshes_present", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "zig_zaggify_support": - { - "label": "Connect Support Lines", - "description": "Connect the ends of the support lines together. Enabling this setting can make your support more sturdy and reduce underextrusion, but it will cost more material.", - "type": "bool", - "default_value": false, - "value": "support_pattern == 'cross' or support_pattern == 'gyroid'", - "enabled": "(support_enable or support_meshes_present) and (support_pattern == 'lines' or support_pattern == 'grid' or support_pattern == 'triangles' or support_pattern == 'cross' or support_pattern == 'gyroid')", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_connect_zigzags": - { - "label": "Connect Support ZigZags", - "description": "Connect the ZigZags. This will increase the strength of the zig zag support structure.", - "type": "bool", - "default_value": true, - "enabled": "(support_enable or support_meshes_present) and support_pattern == 'zigzag'", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_infill_rate": - { - "label": "Support Density", - "description": "Adjusts the density of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "100", - "default_value": 15, - "value": "15 if support_enable and support_structure == 'normal' else 0 if support_enable and support_structure == 'tree' else 15", - "enabled": "support_enable or support_meshes_present", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_line_distance": - { - "label": "Support Line Distance", - "description": "Distance between the printed support structure lines. This setting is calculated by the support density.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "support_line_width", - "default_value": 2.66, - "enabled": "support_enable or support_meshes_present", - "value": "0 if support_infill_rate == 0 else (support_line_width * 100) / support_infill_rate * (2 if support_pattern == 'grid' else (3 if support_pattern == 'triangles' else 1))", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_initial_layer_line_distance": - { - "label": "Initial Layer Support Line Distance", - "description": "Distance between the printed initial layer support structure lines. This setting is calculated by the support density.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "support_line_width", - "default_value": 2.66, - "enabled": "support_enable or support_meshes_present", - "value": "support_line_distance", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "support_infill_angles": - { - "label": "Support Infill Line Directions", - "description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the default angle 0 degrees.", - "type": "[int]", - "default_value": "[ ]", - "enabled": "(support_enable or support_meshes_present) and support_pattern != 'concentric' and support_infill_rate > 0", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_brim_enable": - { - "label": "Enable Support Brim", - "description": "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate.", - "type": "bool", - "default_value": false, - "value": "support_structure == 'tree'", - "enabled": "support_enable or support_meshes_present", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_brim_width": - { - "label": "Support Brim Width", - "description": "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material.", - "type": "float", - "unit": "mm", - "default_value": 8.0, - "minimum_value": "0.0", - "maximum_value_warning": "50.0", - "enabled": "(support_enable or support_meshes_present) and support_brim_enable", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "support_infill_extruder_nr", - "children": - { - "support_brim_line_count": - { - "label": "Support Brim Line Count", - "description": "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material.", - "type": "int", - "default_value": 20, - "minimum_value": "0", - "maximum_value_warning": "50 / skirt_brim_line_width", - "value": "math.ceil(support_brim_width / (skirt_brim_line_width * initial_layer_line_width_factor / 100.0))", - "enabled": "(support_enable or support_meshes_present) and support_brim_enable", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "support_infill_extruder_nr" - } - } - }, - "support_z_distance": - { - "label": "Support Z Distance", - "description": "Distance from the top/bottom of the support structure to the print. This gap provides clearance to remove the supports after the model is printed. This value is rounded up to a multiple of the layer height.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size", - "default_value": 0.1, - "limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true, - "children": - { - "support_top_distance": - { - "label": "Support Top Distance", - "description": "Distance from the top of the support to the print.", - "unit": "mm", - "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size", - "default_value": 0.1, - "type": "float", - "enabled": "support_enable or support_meshes_present", - "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance')", - "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", - "settable_per_mesh": true - }, - "support_bottom_distance": - { - "label": "Support Bottom Distance", - "description": "Distance from the print to the bottom of the support.", - "unit": "mm", - "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size", - "default_value": 0.1, - "value": "extruderValue(support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr, 'support_z_distance') if support_type == 'everywhere' else 0", - "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", - "type": "float", - "enabled": "(support_enable or support_meshes_present) and resolveOrValue('support_type') == 'everywhere'", - "settable_per_mesh": true - } - } - }, - "support_xy_distance": - { - "label": "Support X/Y Distance", - "description": "Distance of the support structure from the print in the X/Y directions.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "1.5 * machine_nozzle_tip_outer_diameter", - "default_value": 0.7, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true - }, - "support_xy_overrides_z": - { - "label": "Support Distance Priority", - "description": "Whether the Support X/Y Distance overrides the Support Z Distance or vice versa. When X/Y overrides Z the X/Y distance can push away the support from the model, influencing the actual Z distance to the overhang. We can disable this by not applying the X/Y distance around overhangs.", - "type": "enum", - "options": - { - "xy_overrides_z": "X/Y overrides Z", - "z_overrides_xy": "Z overrides X/Y" - }, - "default_value": "z_overrides_xy", - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true - }, - "support_xy_distance_overhang": - { - "label": "Minimum Support X/Y Distance", - "description": "Distance of the support structure from the overhang in the X/Y directions.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "support_xy_distance - support_line_width * 2", - "maximum_value_warning": "support_xy_distance", - "default_value": 0.2, - "value": "machine_nozzle_size / 2", - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and support_xy_overrides_z == 'z_overrides_xy'", - "settable_per_mesh": true - }, - "support_bottom_stair_step_height": - { - "label": "Support Stair Step Height", - "description": "The height of the steps of the stair-like bottom of support resting on the model. A low value makes the support harder to remove, but too high values can lead to unstable support structures. Set to zero to turn off the stair-like behaviour.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", - "minimum_value": "0", - "maximum_value_warning": "1.0", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true - }, - "support_bottom_stair_step_width": - { - "label": "Support Stair Step Maximum Width", - "description": "The maximum width of the steps of the stair-like bottom of support resting on the model. A low value makes the support harder to remove, but too high values can lead to unstable support structures.", - "unit": "mm", - "type": "float", - "default_value": 5.0, - "limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", - "minimum_value": "0", - "maximum_value_warning": "10.0", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true - }, - "support_bottom_stair_step_min_slope": - { - "label": "Support Stair Step Minimum Slope Angle", - "description": "The minimum slope of the area for stair-stepping to take effect. Low values should make support easier to remove on shallower slopes, but really low values may result in some very counter-intuitive results on other parts of the model.", - "unit": "°", - "type": "float", - "default_value": 10.0, - "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", - "minimum_value": "0.01", - "maximum_value": "89.99", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true - }, - "support_join_distance": - { - "label": "Support Join Distance", - "description": "The maximum distance between support structures in the X/Y directions. When separate structures are closer together than this value, the structures merge into one.", - "unit": "mm", - "type": "float", - "default_value": 2.0, - "limit_to_extruder": "support_infill_extruder_nr", - "minimum_value_warning": "0", - "maximum_value_warning": "10", - "enabled": "(support_enable and support_structure == 'normal') or support_meshes_present", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_offset": - { - "label": "Support Horizontal Expansion", - "description": "Amount of offset applied to all support polygons in each layer. Positive values can smooth out the support areas and result in more sturdy support.", - "unit": "mm", - "type": "float", - "default_value": 0, - "limit_to_extruder": "support_infill_extruder_nr", - "minimum_value_warning": "-1 * machine_nozzle_size", - "maximum_value_warning": "10 * machine_nozzle_size", - "enabled": "(support_enable and support_structure == 'normal') or support_meshes_present", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_infill_sparse_thickness": - { - "label": "Support Infill Layer Thickness", - "description": "The thickness per layer of support infill material. This value should always be a multiple of the layer height and is otherwise rounded.", - "unit": "mm", - "type": "float", - "default_value": 0.1, - "minimum_value": "resolveOrValue('layer_height')", - "maximum_value_warning": "0.75 * machine_nozzle_size", - "maximum_value": "resolveOrValue('layer_height') * 8", - "value": "resolveOrValue('layer_height')", - "enabled": "(support_enable or support_meshes_present) and support_infill_rate > 0", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "gradual_support_infill_steps": - { - "label": "Gradual Support Infill Steps", - "description": "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density.", - "default_value": 0, - "type": "int", - "minimum_value": "0", - "maximum_value_warning": "1 if (support_pattern == 'cross' or support_pattern == 'lines' or support_pattern == 'zigzag' or support_pattern == 'concentric') else 5", - "maximum_value": "999999 if support_line_distance == 0 else (20 - math.log(support_line_distance) / math.log(2))", - "enabled": "(support_enable or support_meshes_present) and support_infill_rate > 0", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "gradual_support_infill_step_height": - { - "label": "Gradual Support Infill Step Height", - "description": "The height of support infill of a given density before switching to half the density.", - "unit": "mm", - "type": "float", - "default_value": 1, - "minimum_value": "0.0001", - "minimum_value_warning": "3 * resolveOrValue('layer_height')", - "enabled": "(support_enable or support_meshes_present) and support_infill_rate > 0 and gradual_support_infill_steps > 0", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "minimum_support_area": - { - "label": "Minimum Support Area", - "description": "Minimum area size for support polygons. Polygons which have an area smaller than this value will not be generated.", - "unit": "mm²", - "type": "float", - "default_value": 0.0, - "minimum_value": "0", - "maximum_value_warning": "5", - "enabled": "(support_enable or support_meshes_present) and support_structure == 'normal'", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": true - }, - "support_interface_enable": - { - "label": "Enable Support Interface", - "description": "Generate a dense interface between the model and the support. This will create a skin at the top of the support on which the model is printed and at the bottom of the support, where it rests on the model.", - "type": "bool", - "default_value": false, - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true, - "children": - { - "support_roof_enable": - { - "label": "Enable Support Roof", - "description": "Generate a dense slab of material between the top of support and the model. This will create a skin between the model and support.", - "type": "bool", - "default_value": false, - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_enable')", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true - }, - "support_bottom_enable": - { - "label": "Enable Support Floor", - "description": "Generate a dense slab of material between the bottom of the support and the model. This will create a skin between the model and support.", - "type": "bool", - "default_value": false, - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable')", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true - } - } - }, - "support_interface_height": - { - "label": "Support Interface Thickness", - "description": "The thickness of the interface of the support where it touches with the model on the bottom or the top.", - "unit": "mm", - "type": "float", - "default_value": 1, - "minimum_value": "0", - "minimum_value_warning": "0.2 + layer_height", - "maximum_value_warning": "10", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": true, - "children": - { - "support_roof_height": - { - "label": "Support Roof Thickness", - "description": "The thickness of the support roofs. This controls the amount of dense layers at the top of the support on which the model rests.", - "unit": "mm", - "type": "float", - "default_value": 1, - "minimum_value": "0", - "minimum_value_warning": "support_top_distance + layer_height", - "maximum_value_warning": "10", - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_height')", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": true - }, - "support_bottom_height": - { - "label": "Support Floor Thickness", - "description": "The thickness of the support floors. This controls the number of dense layers that are printed on top of places of a model on which support rests.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_height')", - "minimum_value": "0", - "minimum_value_warning": "min(support_bottom_distance + layer_height, support_bottom_stair_step_height)", - "maximum_value_warning": "10", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": true - } - } - }, - "support_interface_skip_height": { - "label": "Support Interface Resolution", - "description": "When checking where there's model above and below the support, take steps of the given height. Lower values will slice slower, while higher values may cause normal support to be printed in some places where there should have been support interface.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "minimum_value": "0", - "maximum_value_warning": "support_interface_height", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": true - }, - "support_interface_density": - { - "label": "Support Interface Density", - "description": "Adjusts the density of the roofs and floors of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", - "unit": "%", - "type": "float", - "default_value": 100, - "minimum_value": "0", - "maximum_value_warning": "100", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_density": - { - "label": "Support Roof Density", - "description": "The density of the roofs of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", - "unit": "%", - "type": "float", - "default_value": 100, - "minimum_value": "0", - "maximum_value": "100", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_meshes_present)", - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_density')", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_line_distance": - { - "label": "Support Roof Line Distance", - "description": "Distance between the printed support roof lines. This setting is calculated by the Support Roof Density, but can be adjusted separately.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "minimum_value": "0", - "minimum_value_warning": "support_roof_line_width - 0.0001", - "value": "0 if support_roof_density == 0 else (support_roof_line_width * 100) / support_roof_density * (2 if support_roof_pattern == 'grid' else (3 if support_roof_pattern == 'triangles' else 1))", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "support_bottom_density": - { - "label": "Support Floor Density", - "description": "The density of the floors of the support structure. A higher value results in better adhesion of the support on top of the model.", - "unit": "%", - "type": "float", - "default_value": 100, - "minimum_value": "0", - "maximum_value": "100", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_meshes_present)", - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_density')", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_bottom_line_distance": - { - "label": "Support Floor Line Distance", - "description": "Distance between the printed support floor lines. This setting is calculated by the Support Floor Density, but can be adjusted separately.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "minimum_value": "0", - "minimum_value_warning": "support_bottom_line_width - 0.0001", - "value": "0 if support_bottom_density == 0 else (support_bottom_line_width * 100) / support_bottom_density * (2 if support_bottom_pattern == 'grid' else (3 if support_bottom_pattern == 'triangles' else 1))", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - } - } - }, - "support_interface_pattern": - { - "label": "Support Interface Pattern", - "description": "The pattern with which the interface of the support with the model is printed.", - "type": "enum", - "options": - { - "lines": "Lines", - "grid": "Grid", - "triangles": "Triangles", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "concentric", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_pattern": - { - "label": "Support Roof Pattern", - "description": "The pattern with which the roofs of the support are printed.", - "type": "enum", - "options": - { - "lines": "Lines", - "grid": "Grid", - "triangles": "Triangles", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "concentric", - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_pattern')", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_bottom_pattern": - { - "label": "Support Floor Pattern", - "description": "The pattern with which the floors of the support are printed.", - "type": "enum", - "options": - { - "lines": "Lines", - "grid": "Grid", - "triangles": "Triangles", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "concentric", - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_pattern')", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "minimum_interface_area": - { - "label": "Minimum Support Interface Area", - "description": "Minimum area size for support interface polygons. Polygons which have an area smaller than this value will be printed as normal support.", - "unit": "mm²", - "type": "float", - "default_value": 1.0, - "minimum_value": "0", - "minimum_value_warning": "minimum_support_area", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": true, - "children": - { - "minimum_roof_area": - { - "label": "Minimum Support Roof Area", - "description": "Minimum area size for the roofs of the support. Polygons which have an area smaller than this value will be printed as normal support.", - "unit": "mm²", - "type": "float", - "default_value": 1.0, - "value": "extruderValue(support_roof_extruder_nr, 'minimum_interface_area')", - "minimum_value": "0", - "minimum_value_warning": "minimum_support_area", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": true - }, - "minimum_bottom_area": - { - "label": "Minimum Support Floor Area", - "description": "Minimum area size for the floors of the support. Polygons which have an area smaller than this value will be printed as normal support.", - "unit": "mm²", - "type": "float", - "default_value": 1.0, - "value": "extruderValue(support_bottom_extruder_nr, 'minimum_interface_area')", - "minimum_value": "0", - "minimum_value_warning": "minimum_support_area", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": true - } - } - }, - "support_interface_offset": - { - "label": "Support Interface Horizontal Expansion", - "description": "Amount of offset applied to the support interface polygons.", - "unit": "mm", - "type": "float", - "default_value": 0.0, - "maximum_value": "extruderValue(support_extruder_nr, 'support_offset')", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_offset": - { - "label": "Support Roof Horizontal Expansion", - "description": "Amount of offset applied to the roofs of the support.", - "unit": "mm", - "type": "float", - "default_value": 0.0, - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_offset')", - "maximum_value": "extruderValue(support_extruder_nr, 'support_offset')", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_bottom_offset": - { - "label": "Support Floor Horizontal Expansion", - "description": "Amount of offset applied to the floors of the support.", - "unit": "mm", - "type": "float", - "default_value": 0.0, - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_offset')", - "maximum_value": "extruderValue(support_extruder_nr, 'support_offset')", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "support_interface_angles": - { - "label": "Support Interface Line Directions", - "description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the default angles (alternates between 45 and 135 degrees if interfaces are quite thick or 90 degrees).", - "type": "[int]", - "default_value": "[ ]", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and support_interface_enable and support_interface_pattern != 'concentric'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_angles": - { - "label": "Support Roof Line Directions", - "description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the default angles (alternates between 45 and 135 degrees if interfaces are quite thick or 90 degrees).", - "type": "[int]", - "default_value": "[ ]", - "value": "support_interface_angles", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and support_roof_enable and support_roof_pattern != 'concentric'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_bottom_angles": - { - "label": "Support Floor Line Directions", - "description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the default angles (alternates between 45 and 135 degrees if interfaces are quite thick or 90 degrees).", - "type": "[int]", - "default_value": "[ ]", - "value": "support_interface_angles", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and support_bottom_enable and support_bottom_pattern != 'concentric'", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "support_fan_enable": - { - "label": "Fan Speed Override", - "description": "When enabled, the print cooling fan speed is altered for the skin regions immediately above the support.", - "type": "bool", - "default_value": false, - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": false - }, - "support_supported_skin_fan_speed": - { - "label": "Supported Skin Fan Speed", - "description": "Percentage fan speed to use when printing the skin regions immediately above the support. Using a high fan speed can make the support easier to remove.", - "unit": "%", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 100, - "type": "float", - "enabled": "(support_enable or support_meshes_present) and support_fan_enable", - "settable_per_mesh": false - }, - "support_use_towers": - { - "label": "Use Towers", - "description": "Use specialized towers to support tiny overhang areas. These towers have a larger diameter than the region they support. Near the overhang the towers' diameter decreases, forming a roof.", - "type": "bool", - "default_value": true, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_structure == 'normal'", - "settable_per_mesh": true - }, - "support_tower_diameter": - { - "label": "Tower Diameter", - "description": "The diameter of a special tower.", - "unit": "mm", - "type": "float", - "default_value": 3.0, - "limit_to_extruder": "support_infill_extruder_nr", - "minimum_value": "0", - "minimum_value_warning": "2 * machine_nozzle_size", - "maximum_value_warning": "20", - "enabled": "support_enable and support_structure == 'normal' and support_use_towers", - "settable_per_mesh": true - }, - "support_tower_maximum_supported_diameter": - { - "label": "Maximum Tower-Supported Diameter", - "description": "Maximum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower.", - "unit": "mm", - "type": "float", - "default_value": 3.0, - "limit_to_extruder": "support_infill_extruder_nr", - "minimum_value": "0", - "minimum_value_warning": "2 * machine_nozzle_size", - "maximum_value_warning": "20", - "maximum_value": "support_tower_diameter", - "enabled": "support_enable and support_structure == 'normal' and support_use_towers", - "settable_per_mesh": true - }, - "support_tower_roof_angle": - { - "label": "Tower Roof Angle", - "description": "The angle of a rooftop of a tower. A higher value results in pointed tower roofs, a lower value results in flattened tower roofs.", - "unit": "°", - "type": "int", - "minimum_value": "0", - "maximum_value": "90", - "default_value": 65, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_structure == 'normal' and support_use_towers", - "settable_per_mesh": true - }, - "support_mesh_drop_down": - { - "label": "Drop Down Support Mesh", - "description": "Make support everywhere below the support mesh, so that there's no overhang in the support mesh.", - "type": "bool", - "default_value": true, - "enabled": "support_mesh", - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "support_meshes_present": - { - "label": "Scene Has Support Meshes", - "description": "There are support meshes present in the scene. This setting is controlled by Cura.", - "type": "bool", - "default_value": false, - "enabled": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - } - } - }, - "platform_adhesion": - { - "label": "Build Plate Adhesion", - "type": "category", - "icon": "Adhesion", - "description": "Adhesion", - "children": - { - "prime_blob_enable": - { - "label": "Enable Prime Blob", - "description": "Whether to prime the filament with a blob before printing. Turning this setting on will ensure that the extruder will have material ready at the nozzle before printing. Printing Brim or Skirt can act like priming too, in which case turning this setting off saves some time.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true, - "enabled": false, - "warning_value": "True if resolveOrValue('print_sequence') == 'one_at_a_time' else None" - }, - "extruder_prime_pos_x": - { - "label": "Extruder Prime X Position", - "description": "The X coordinate of the position where the nozzle primes at the start of printing.", - "type": "float", - "unit": "mm", - "default_value": 0, - "minimum_value_warning": "machine_width / -2 if machine_center_is_zero else 0", - "maximum_value_warning": "machine_width / 2 if machine_center_is_zero else machine_width", - "settable_per_mesh": false, - "settable_per_extruder": true, - "enabled": false - }, - "extruder_prime_pos_y": - { - "label": "Extruder Prime Y Position", - "description": "The Y coordinate of the position where the nozzle primes at the start of printing.", - "type": "float", - "unit": "mm", - "default_value": 0, - "minimum_value_warning": "machine_depth / -2 if machine_center_is_zero else 0", - "maximum_value_warning": "machine_depth / 2 if machine_center_is_zero else machine_depth", - "settable_per_mesh": false, - "settable_per_extruder": true, - "enabled": false - }, - "adhesion_type": - { - "label": "Build Plate Adhesion Type", - "description": "Different options that help to improve both priming your extrusion and adhesion to the build plate. Brim adds a single layer flat area around the base of your model to prevent warping. Raft adds a thick grid with a roof below the model. Skirt is a line printed around the model, but not connected to the model.", - "type": "enum", - "options": - { - "skirt": "Skirt", - "brim": "Brim", - "raft": "Raft", - "none": "None" - }, - "default_value": "brim", - "resolve": "extruderValue(adhesion_extruder_nr, 'adhesion_type')", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "adhesion_extruder_nr": - { - "label": "Build Plate Adhesion Extruder", - "description": "The extruder train to use for printing the skirt/brim/raft. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "int(defaultExtruderPosition())", - "enabled": "extruders_enabled_count > 1 and (resolveOrValue('adhesion_type') != 'none' or resolveOrValue('prime_tower_brim_enable'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "skirt_line_count": - { - "label": "Skirt Line Count", - "description": "Multiple skirt lines help to prime your extrusion better for small models. Setting this to 0 will disable the skirt.", - "type": "int", - "default_value": 1, - "minimum_value": "0", - "maximum_value_warning": "10", - "enabled": "resolveOrValue('adhesion_type') == 'skirt'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "skirt_gap": - { - "label": "Skirt Distance", - "description": "The horizontal distance between the skirt and the first layer of the print.\nThis is the minimum distance. Multiple skirt lines will extend outwards from this distance.", - "unit": "mm", - "type": "float", - "default_value": 3, - "minimum_value_warning": "max(extruderValues('machine_nozzle_size'))", - "maximum_value_warning": "10", - "enabled": "resolveOrValue('adhesion_type') == 'skirt'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "skirt_brim_minimal_length": - { - "label": "Skirt/Brim Minimum Length", - "description": "The minimum length of the skirt or brim. If this length is not reached by all skirt or brim lines together, more skirt or brim lines will be added until the minimum length is reached. Note: If the line count is set to 0 this is ignored.", - "unit": "mm", - "type": "float", - "default_value": 250, - "minimum_value": "0", - "minimum_value_warning": "25", - "maximum_value_warning": "2500", - "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "brim_width": - { - "label": "Brim Width", - "description": "The distance from the model to the outermost brim line. A larger brim enhances adhesion to the build plate, but also reduces the effective print area.", - "type": "float", - "unit": "mm", - "default_value": 8.0, - "minimum_value": "0.0", - "maximum_value_warning": "50.0", - "maximum_value": "0.5 * min(machine_width, machine_depth)", - "enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr", - "children": - { - "brim_line_count": - { - "label": "Brim Line Count", - "description": "The number of lines used for a brim. More brim lines enhance adhesion to the build plate, but also reduces the effective print area.", - "type": "int", - "default_value": 20, - "minimum_value": "0", - "maximum_value_warning": "50 / skirt_brim_line_width", - "maximum_value": "0.5 * min(machine_width, machine_depth) / skirt_brim_line_width", - "value": "math.ceil(brim_width / (skirt_brim_line_width * initial_layer_line_width_factor / 100.0))", - "enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - } - } - }, - "brim_gap": - { - "label": "Brim Distance", - "description": "The horizontal distance between the first brim line and the outline of the first layer of the print. A small gap can make the brim easier to remove while still providing the thermal benefits.", - "unit": "mm", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "maximum_value_warning": "skirt_brim_line_width", - "enabled": "resolveOrValue('adhesion_type') == 'brim'", - "settable_per_mesh": true, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "brim_replaces_support": - { - "label": "Brim Replaces Support", - "description": "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions.", - "type": "bool", - "default_value": true, - "enabled": "resolveOrValue('adhesion_type') == 'brim' and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "support_infill_extruder_nr" - }, - "brim_outside_only": - { - "label": "Brim Only on Outside", - "description": "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much.", - "type": "bool", - "default_value": true, - "enabled": "resolveOrValue('adhesion_type') == 'brim'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_margin": - { - "label": "Raft Extra Margin", - "description": "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print.", - "unit": "mm", - "type": "float", - "default_value": 15, - "minimum_value_warning": "raft_interface_line_width", - "maximum_value_warning": "20", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "adhesion_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "raft_smoothing": - { - "label": "Raft Smoothing", - "description": "This setting controls how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle.", - "unit": "mm", - "type": "float", - "default_value": 5, - "minimum_value": "0", - "minimum_value_warning": "raft_interface_line_width", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "adhesion_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "raft_airgap": - { - "label": "Raft Air Gap", - "description": "The gap between the final raft layer and the first layer of the model. Only the first layer is raised by this amount to lower the bonding between the raft layer and the model. Makes it easier to peel off the raft.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "minimum_value": "0", - "maximum_value_warning": "min(extruderValues('machine_nozzle_size'))", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "layer_0_z_overlap": - { - "label": "Initial Layer Z Overlap", - "description": "Make the first and second layer of the model overlap in the Z direction to compensate for the filament lost in the airgap. All models above the first model layer will be shifted down by this amount.", - "unit": "mm", - "type": "float", - "default_value": 0.22, - "value": "raft_airgap / 2", - "minimum_value": "0", - "maximum_value_warning": "raft_airgap", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_surface_layers": - { - "label": "Raft Top Layers", - "description": "The number of top layers on top of the 2nd raft layer. These are fully filled layers that the model sits on. 2 layers result in a smoother top surface than 1.", - "type": "int", - "default_value": 2, - "minimum_value": "0", - "maximum_value_warning": "20", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_surface_thickness": - { - "label": "Raft Top Layer Thickness", - "description": "Layer thickness of the top raft layers.", - "unit": "mm", - "type": "float", - "default_value": 0.1, - "value": "resolveOrValue('layer_height')", - "minimum_value": "0.001", - "minimum_value_warning": "0.04", - "maximum_value_warning": "0.75 * machine_nozzle_size", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_surface_line_width": - { - "label": "Raft Top Line Width", - "description": "Width of the lines in the top surface of the raft. These can be thin lines so that the top of the raft becomes smooth.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "value": "line_width", - "minimum_value": "0.001", - "minimum_value_warning": "machine_nozzle_size * 0.1", - "maximum_value_warning": "machine_nozzle_size * 2", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_surface_line_spacing": - { - "label": "Raft Top Spacing", - "description": "The distance between the raft lines for the top raft layers. The spacing should be equal to the line width, so that the surface is solid.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "minimum_value": "0", - "minimum_value_warning": "raft_surface_line_width", - "maximum_value_warning": "raft_surface_line_width * 3", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "value": "raft_surface_line_width", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_interface_thickness": - { - "label": "Raft Middle Thickness", - "description": "Layer thickness of the middle raft layer.", - "unit": "mm", - "type": "float", - "default_value": 0.15, - "value": "resolveOrValue('layer_height') * 1.5", - "minimum_value": "0.001", - "minimum_value_warning": "0.04", - "maximum_value_warning": "0.75 * machine_nozzle_size", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_interface_line_width": - { - "label": "Raft Middle Line Width", - "description": "Width of the lines in the middle raft layer. Making the second layer extrude more causes the lines to stick to the build plate.", - "unit": "mm", - "type": "float", - "default_value": 0.7, - "value": "line_width * 2", - "minimum_value": "0.001", - "minimum_value_warning": "machine_nozzle_size * 0.5", - "maximum_value_warning": "machine_nozzle_size * 3", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_interface_line_spacing": - { - "label": "Raft Middle Spacing", - "description": "The distance between the raft lines for the middle raft layer. The spacing of the middle should be quite wide, while being dense enough to support the top raft layers.", - "unit": "mm", - "type": "float", - "default_value": 0.9, - "value": "raft_interface_line_width + 0.2", - "minimum_value": "0", - "minimum_value_warning": "raft_interface_line_width", - "maximum_value_warning": "15.0", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_base_thickness": - { - "label": "Raft Base Thickness", - "description": "Layer thickness of the base raft layer. This should be a thick layer which sticks firmly to the printer build plate.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "value": "resolveOrValue('layer_height_0') * 1.2", - "minimum_value": "0.001", - "minimum_value_warning": "0.04", - "maximum_value_warning": "0.75 * raft_base_line_width", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_base_line_width": - { - "label": "Raft Base Line Width", - "description": "Width of the lines in the base raft layer. These should be thick lines to assist in build plate adhesion.", - "unit": "mm", - "type": "float", - "default_value": 0.8, - "minimum_value": "0.001", - "value": "machine_nozzle_size * 2", - "minimum_value_warning": "machine_nozzle_size * 0.5", - "maximum_value_warning": "machine_nozzle_size * 3", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_base_line_spacing": - { - "label": "Raft Base Line Spacing", - "description": "The distance between the raft lines for the base raft layer. Wide spacing makes for easy removal of the raft from the build plate.", - "unit": "mm", - "type": "float", - "default_value": 1.6, - "value": "raft_base_line_width * 2", - "minimum_value": "0", - "minimum_value_warning": "raft_base_line_width", - "maximum_value_warning": "100", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_speed": - { - "label": "Raft Print Speed", - "description": "The speed at which the raft is printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "200", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "value": "speed_print / 60 * 30", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr", - "children": - { - "raft_surface_speed": - { - "label": "Raft Top Print Speed", - "description": "The speed at which the top raft layers are printed. These should be printed a bit slower, so that the nozzle can slowly smooth out adjacent surface lines.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "100", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "value": "raft_speed", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_interface_speed": - { - "label": "Raft Middle Print Speed", - "description": "The speed at which the middle raft layer is printed. This should be printed quite slowly, as the volume of material coming out of the nozzle is quite high.", - "unit": "mm/s", - "type": "float", - "default_value": 15, - "value": "raft_speed * 0.75", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_base_speed": - { - "label": "Raft Base Print Speed", - "description": "The speed at which the base raft layer is printed. This should be printed quite slowly, as the volume of material coming out of the nozzle is quite high.", - "unit": "mm/s", - "type": "float", - "default_value": 15, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "200", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "value": "0.75 * raft_speed", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - } - } - }, - "raft_acceleration": - { - "label": "Raft Print Acceleration", - "description": "The acceleration with which the raft is printed.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "value": "acceleration_print", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr", - "children": - { - "raft_surface_acceleration": - { - "label": "Raft Top Print Acceleration", - "description": "The acceleration with which the top raft layers are printed.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "raft_acceleration", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_interface_acceleration": - { - "label": "Raft Middle Print Acceleration", - "description": "The acceleration with which the middle raft layer is printed.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "raft_acceleration", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_base_acceleration": - { - "label": "Raft Base Print Acceleration", - "description": "The acceleration with which the base raft layer is printed.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "raft_acceleration", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - } - } - }, - "raft_jerk": - { - "label": "Raft Print Jerk", - "description": "The jerk with which the raft is printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "minimum_value": "0", - "minimum_value_warning": "5", - "maximum_value_warning": "50", - "value": "jerk_print", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr", - "children": - { - "raft_surface_jerk": - { - "label": "Raft Top Print Jerk", - "description": "The jerk with which the top raft layers are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "raft_jerk", - "minimum_value": "0", - "minimum_value_warning": "5", - "maximum_value_warning": "100", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_interface_jerk": - { - "label": "Raft Middle Print Jerk", - "description": "The jerk with which the middle raft layer is printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "raft_jerk", - "minimum_value": "0", - "minimum_value_warning": "5", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_base_jerk": - { - "label": "Raft Base Print Jerk", - "description": "The jerk with which the base raft layer is printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "raft_jerk", - "minimum_value": "0", - "minimum_value_warning": "5", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr" - } - } - }, - "raft_fan_speed": - { - "label": "Raft Fan Speed", - "description": "The fan speed for the raft.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "settable_per_mesh": false, - "settable_per_extruder": true, - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "adhesion_extruder_nr", - "children": - { - "raft_surface_fan_speed": - { - "label": "Raft Top Fan Speed", - "description": "The fan speed for the top raft layers.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "value": "raft_fan_speed", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_interface_fan_speed": - { - "label": "Raft Middle Fan Speed", - "description": "The fan speed for the middle raft layer.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "value": "raft_fan_speed", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - }, - "raft_base_fan_speed": - { - "label": "Raft Base Fan Speed", - "description": "The fan speed for the base raft layer.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "value": "raft_fan_speed", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr" - } - } - } - } - }, - "dual": - { - "label": "Dual Extrusion", - "type": "category", - "icon": "DualExtrusion", - "description": "Settings used for printing with multiple extruders.", - "children": - { - "prime_tower_enable": - { - "label": "Enable Prime Tower", - "description": "Print a tower next to the print which serves to prime the material after each nozzle switch.", - "type": "bool", - "enabled": "extruders_enabled_count > 1", - "default_value": false, - "resolve": "(extruders_enabled_count > 1) and any(extruderValues('prime_tower_enable'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "prime_tower_size": - { - "label": "Prime Tower Size", - "description": "The width of the prime tower.", - "type": "float", - "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 20, - "resolve": "max(extruderValues('prime_tower_size'))", - "minimum_value": "0", - "maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)", - "minimum_value_warning": "max(extruderValues('prime_tower_line_width')) * 2", - "maximum_value_warning": "42", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "prime_tower_min_volume": - { - "label": "Prime Tower Minimum Volume", - "description": "The minimum volume for each layer of the prime tower in order to purge enough material.", - "unit": "mm³", - "type": "float", - "default_value": 6, - "minimum_value": "0", - "maximum_value_warning": "(resolveOrValue('prime_tower_size') * 0.5) ** 2 * 3.14159 * resolveOrValue('layer_height') - sum(extruderValues('prime_tower_min_volume')) + prime_tower_min_volume", - "enabled": "resolveOrValue('prime_tower_enable')", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "prime_tower_position_x": - { - "label": "Prime Tower X Position", - "description": "The x coordinate of the position of the prime tower.", - "type": "float", - "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 200, - "value": "machine_width - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' or (prime_tower_brim_enable and adhesion_type != 'raft') else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - max(map(abs, extruderValues('machine_nozzle_offset_x'))) - 1", - "maximum_value": "machine_width / 2 if machine_center_is_zero else machine_width", - "minimum_value": "resolveOrValue('prime_tower_size') - machine_width / 2 if machine_center_is_zero else resolveOrValue('prime_tower_size')", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "prime_tower_position_y": - { - "label": "Prime Tower Y Position", - "description": "The y coordinate of the position of the prime tower.", - "type": "float", - "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 200, - "value": "machine_depth - prime_tower_size - max(extruderValue(adhesion_extruder_nr, 'brim_width') * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' or (prime_tower_brim_enable and adhesion_type != 'raft') else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(adhesion_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(adhesion_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - max(map(abs, extruderValues('machine_nozzle_offset_y'))) - 3", - "maximum_value": "machine_depth / 2 - resolveOrValue('prime_tower_size') if machine_center_is_zero else machine_depth - resolveOrValue('prime_tower_size')", - "minimum_value": "machine_depth / -2 if machine_center_is_zero else 0", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "prime_tower_wipe_enabled": - { - "label": "Wipe Inactive Nozzle on Prime Tower", - "description": "After printing the prime tower with one nozzle, wipe the oozed material from the other nozzle off on the prime tower.", - "type": "bool", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "prime_tower_brim_enable": - { - "label": "Prime Tower Brim", - "description": "Prime-towers might need the extra adhesion afforded by a brim even if the model doesn't. Presently can't be used with the 'Raft' adhesion-type.", - "type": "bool", - "enabled": "resolveOrValue('prime_tower_enable') and (resolveOrValue('adhesion_type') != 'raft')", - "resolve": "resolveOrValue('prime_tower_enable') and (resolveOrValue('adhesion_type') in ('none', 'skirt'))", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "ooze_shield_enabled": - { - "label": "Enable Ooze Shield", - "description": "Enable exterior ooze shield. This will create a shell around the model which is likely to wipe a second nozzle if it's at the same height as the first nozzle.", - "type": "bool", - "resolve": "any(extruderValues('ooze_shield_enabled'))", - "enabled": "extruders_enabled_count > 1", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "ooze_shield_angle": - { - "label": "Ooze Shield Angle", - "description": "The maximum angle a part in the ooze shield will have. With 0 degrees being vertical, and 90 degrees being horizontal. A smaller angle leads to less failed ooze shields, but more material.", - "type": "float", - "unit": "°", - "enabled": "resolveOrValue('ooze_shield_enabled')", - "default_value": 60, - "resolve": "min(extruderValues('ooze_shield_angle'))", - "minimum_value": "0", - "maximum_value": "90", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "ooze_shield_dist": - { - "label": "Ooze Shield Distance", - "description": "Distance of the ooze shield from the print, in the X/Y directions.", - "type": "float", - "unit": "mm", - "enabled": "resolveOrValue('ooze_shield_enabled')", - "default_value": 2, - "resolve": "max(extruderValues('ooze_shield_dist'))", - "minimum_value": "0", - "maximum_value_warning": "20", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "switch_extruder_retraction_amount": - { - "label": "Nozzle Switch Retraction Distance", - "description": "The amount of retraction when switching extruders. Set to 0 for no retraction at all. This should generally be the same as the length of the heat zone.", - "type": "float", - "unit": "mm", - "enabled": "retraction_enable and extruders_enabled_count > 1", - "default_value": 20, - "value": "machine_heat_zone_length", - "minimum_value_warning": "0", - "maximum_value_warning": "100", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "switch_extruder_retraction_speeds": - { - "label": "Nozzle Switch Retraction Speed", - "description": "The speed at which the filament is retracted. A higher retraction speed works better, but a very high retraction speed can lead to filament grinding.", - "type": "float", - "unit": "mm/s", - "enabled": "retraction_enable and extruders_enabled_count > 1", - "default_value": 20, - "minimum_value": "0.1", - "minimum_value_warning": "1", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "maximum_value_warning": "70", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "switch_extruder_retraction_speed": - { - "label": "Nozzle Switch Retract Speed", - "description": "The speed at which the filament is retracted during a nozzle switch retract.", - "type": "float", - "unit": "mm/s", - "enabled": "retraction_enable and extruders_enabled_count > 1", - "default_value": 20, - "value": "switch_extruder_retraction_speeds", - "minimum_value": "0.1", - "minimum_value_warning": "1", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "maximum_value_warning": "70", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "switch_extruder_prime_speed": - { - "label": "Nozzle Switch Prime Speed", - "description": "The speed at which the filament is pushed back after a nozzle switch retraction.", - "type": "float", - "unit": "mm/s", - "enabled": "retraction_enable and extruders_enabled_count > 1", - "default_value": 20, - "value": "switch_extruder_retraction_speeds", - "minimum_value": "0.1", - "minimum_value_warning": "1", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "maximum_value_warning": "70", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "switch_extruder_extra_prime_amount": - { - "label": "Nozzle Switch Extra Prime Amount", - "description": "Extra material to prime after nozzle switching.", - "type": "float", - "unit": "mm³", - "default_value": 0, - "minimum_value_warning": "0", - "maximum_value_warning": "100", - "enabled": "retraction_enable and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "meshfix": - { - "label": "Mesh Fixes", - "type": "category", - "icon": "Bandage", - "description": "Make the meshes more suited for 3D printing.", - "children": - { - "meshfix_union_all": - { - "label": "Union Overlapping Volumes", - "description": "Ignore the internal geometry arising from overlapping volumes within a mesh and print the volumes as one. This may cause unintended internal cavities to disappear.", - "type": "bool", - "default_value": true, - "value": "magic_mesh_surface_mode != 'surface'", - "settable_per_mesh": true - }, - "meshfix_union_all_remove_holes": - { - "label": "Remove All Holes", - "description": "Remove the holes in each layer and keep only the outside shape. This will ignore any invisible internal geometry. However, it also ignores layer holes which can be viewed from above or below.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, - "meshfix_extensive_stitching": - { - "label": "Extensive Stitching", - "description": "Extensive stitching tries to stitch up open holes in the mesh by closing the hole with touching polygons. This option can introduce a lot of processing time.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, - "meshfix_keep_open_polygons": - { - "label": "Keep Disconnected Faces", - "description": "Normally Cura tries to stitch up small holes in the mesh and remove parts of a layer with big holes. Enabling this option keeps those parts which cannot be stitched. This option should be used as a last resort option when everything else fails to produce proper g-code.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, - "multiple_mesh_overlap": - { - "label": "Merged Meshes Overlap", - "description": "Make meshes which are touching each other overlap a bit. This makes them bond together better.", - "type": "float", - "unit": "mm", - "default_value": 0.15, - "minimum_value": "0", - "maximum_value_warning": "1.0", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "carve_multiple_volumes": - { - "label": "Remove Mesh Intersection", - "description": "Remove areas where multiple meshes are overlapping with each other. This may be used if merged dual material objects overlap with each other.", - "type": "bool", - "default_value": true, - "value": "extruders_enabled_count > 1", - "enabled": "all(p != 'surface' for p in extruderValues('magic_mesh_surface_mode'))", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true - }, - "alternate_carve_order": - { - "label": "Alternate Mesh Removal", - "description": "Switch to which mesh intersecting volumes will belong with every layer, so that the overlapping meshes become interwoven. Turning this setting off will cause one of the meshes to obtain all of the volume in the overlap, while it is removed from the other meshes.", - "type": "bool", - "default_value": true, - "enabled": "carve_multiple_volumes and all(p != 'surface' for p in extruderValues('magic_mesh_surface_mode'))", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true - }, - "remove_empty_first_layers": - { - "label": "Remove Empty First Layers", - "description": "Remove empty layers beneath the first printed layer if they are present. Disabling this setting can cause empty first layers if the Slicing Tolerance setting is set to Exclusive or Middle.", - "type": "bool", - "default_value": true, - "enabled": "not (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "meshfix_maximum_resolution": - { - "label": "Maximum Resolution", - "description": "The minimum size of a line segment after slicing. If you increase this, the mesh will have a lower resolution. This may allow the printer to keep up with the speed it has to process g-code and will increase slice speed by removing details of the mesh that it can't process anyway.", - "type": "float", - "unit": "mm", - "default_value": 0.5, - "minimum_value": "0.001", - "minimum_value_warning": "0.01", - "maximum_value_warning": "3", - "settable_per_mesh": true - }, - "meshfix_maximum_travel_resolution": - { - "label": "Maximum Travel Resolution", - "description": "The minimum size of a travel line segment after slicing. If you increase this, the travel moves will have less smooth corners. This may allow the printer to keep up with the speed it has to process g-code, but it may cause model avoidance to become less accurate.", - "type": "float", - "unit": "mm", - "default_value": 1.0, - "value": "min(meshfix_maximum_resolution * speed_travel / speed_print, 2 * line_width)", - "minimum_value": "0.001", - "minimum_value_warning": "0.05", - "maximum_value_warning": "10", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "meshfix_maximum_deviation": - { - "label": "Maximum Deviation", - "description": "The maximum deviation allowed when reducing the resolution for the Maximum Resolution setting. If you increase this, the print will be less accurate, but the g-code will be smaller. Maximum Deviation is a limit for Maximum Resolution, so if the two conflict the Maximum Deviation will always be held true.", - "type": "float", - "unit": "mm", - "default_value": 0.025, - "minimum_value": "0.001", - "minimum_value_warning": "0.01", - "maximum_value_warning": "0.3", - "settable_per_mesh": true - } - } - }, - "blackmagic": - { - "label": "Special Modes", - "type": "category", - "icon": "BlackMagic", - "description": "Non-traditional ways to print your models.", - "children": - { - "print_sequence": - { - "label": "Print Sequence", - "description": "Whether to print all models one layer at a time or to wait for one model to finish, before moving on to the next. One at a time mode is possible if a) only one extruder is enabled and b) all models are separated in such a way that the whole print head can move in between and all models are lower than the distance between the nozzle and the X/Y axes.", - "type": "enum", - "options": - { - "all_at_once": "All at Once", - "one_at_a_time": "One at a Time" - }, - "default_value": "all_at_once", - "enabled": "extruders_enabled_count == 1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "infill_mesh": - { - "label": "Infill Mesh", - "description": "Use this mesh to modify the infill of other meshes with which it overlaps. Replaces infill regions of other meshes with regions for this mesh. It's suggested to only print one Wall and no Top/Bottom Skin for this mesh.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "infill_mesh_order": - { - "label": "Mesh Processing Rank", - "description": "Determines the priority of this mesh when considering multiple overlapping infill meshes. Areas where multiple infill meshes overlap will take on the settings of the mesh with the highest rank. An infill mesh with a higher rank will modify the infill of infill meshes with lower rank and normal meshes.", - "default_value": 0, - "value": "1 if infill_mesh else 0", - "minimum_value_warning": "1", - "maximum_value_warning": "50", - "type": "int", - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "cutting_mesh": - { - "label": "Cutting Mesh", - "description": "Limit the volume of this mesh to within other meshes. You can use this to make certain areas of one mesh print with different settings and with a whole different extruder.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "mold_enabled": - { - "label": "Mold", - "description": "Print models as a mold, which can be cast in order to get a model which resembles the models on the build plate.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, - "mold_width": - { - "label": "Minimal Mold Width", - "description": "The minimal distance between the ouside of the mold and the outside of the model.", - "unit": "mm", - "type": "float", - "minimum_value_warning": "wall_line_width_0 * 2", - "maximum_value_warning": "100", - "default_value": 5, - "settable_per_mesh": true, - "enabled": "mold_enabled" - }, - "mold_roof_height": - { - "label": "Mold Roof Height", - "description": "The height above horizontal parts in your model which to print mold.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "5", - "default_value": 0.5, - "settable_per_mesh": true, - "enabled": "mold_enabled" - }, - "mold_angle": - { - "label": "Mold Angle", - "description": "The angle of overhang of the outer walls created for the mold. 0° will make the outer shell of the mold vertical, while 90° will make the outside of the model follow the contour of the model.", - "unit": "°", - "type": "float", - "minimum_value": "-89", - "minimum_value_warning": "0", - "maximum_value_warning": "support_angle", - "maximum_value": "90", - "default_value": 40, - "settable_per_mesh": true, - "enabled": "mold_enabled" - }, - "support_mesh": - { - "label": "Support Mesh", - "description": "Use this mesh to specify support areas. This can be used to generate support structure.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "anti_overhang_mesh": - { - "label": "Anti Overhang Mesh", - "description": "Use this mesh to specify where no part of the model should be detected as overhang. This can be used to remove unwanted support structure.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "magic_mesh_surface_mode": - { - "label": "Surface Mode", - "description": "Treat the model as a surface only, a volume, or volumes with loose surfaces. The normal print mode only prints enclosed volumes. \"Surface\" prints a single wall tracing the mesh surface with no infill and no top/bottom skin. \"Both\" prints enclosed volumes like normal and any remaining polygons as surfaces.", - "type": "enum", - "options": - { - "normal": "Normal", - "surface": "Surface", - "both": "Both" - }, - "default_value": "normal", - "settable_per_mesh": true - }, - "magic_spiralize": - { - "label": "Spiralize Outer Contour", - "description": "Spiralize smooths out the Z move of the outer edge. This will create a steady Z increase over the whole print. This feature turns a solid model into a single walled print with a solid bottom. This feature should only be enabled when each layer only contains a single part.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "smooth_spiralized_contours": - { - "label": "Smooth Spiralized Contours", - "description": "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details.", - "type": "bool", - "default_value": true, - "enabled": "magic_spiralize", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "relative_extrusion": - { - "label": "Relative Extrusion", - "description": "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the g-code. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any g-code script is output.", - "type": "bool", - "default_value": false, - "value": "machine_gcode_flavor==\"RepRap (RepRap)\"", - "settable_per_mesh": false, - "settable_per_extruder": false - } - } - }, - "experimental": - { - "label": "Experimental", - "type": "category", - "icon": "Experiment", - "description": "Features that haven't completely been fleshed out yet.", - "children": - { - "slicing_tolerance": - { - "label": "Slicing Tolerance", - "description": "Vertical tolerance in the sliced layers. The contours of a layer are normally generated by taking cross sections through the middle of each layer's thickness (Middle). Alternatively each layer can have the areas which fall inside of the volume throughout the entire thickness of the layer (Exclusive) or a layer has the areas which fall inside anywhere within the layer (Inclusive). Inclusive retains the most details, Exclusive makes for the best fit and Middle stays closest to the original surface.", - "type": "enum", - "options": - { - "middle": "Middle", - "exclusive": "Exclusive", - "inclusive": "Inclusive" - }, - "default_value": "middle", - "settable_per_mesh": true - }, - "roofing_line_width": - { - "label": "Top Surface Skin Line Width", - "description": "Width of a single line of the areas at the top of the print.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "skin_line_width", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0" - }, - "roofing_pattern": - { - "label": "Top Surface Skin Pattern", - "description": "The pattern of the top most layers.", - "type": "enum", - "options": - { - "lines": "Lines", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "lines", - "value": "top_bottom_pattern", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0" - }, - "roofing_monotonic": - { - "label": "Monotonic Top Surface Order", - "description": "Print top surface lines in an ordering that causes them to always overlap with adjacent lines in a single direction. This takes slightly more time to print, but makes flat surfaces look more consistent.", - "type": "bool", - "default_value": false, - "value": "skin_monotonic", - "enabled": "roofing_layer_count > 0 and top_layers > 0 and roofing_pattern != 'concentric'", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true - }, - "roofing_angles": - { - "label": "Top Surface Skin Line Directions", - "description": "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees).", - "type": "[int]", - "default_value": "[ ]", - "value": "skin_angles", - "enabled": "roofing_pattern != 'concentric' and roofing_layer_count > 0 and top_layers > 0", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true - }, - "infill_enable_travel_optimization": - { - "label": "Infill Travel Optimization", - "description": "When enabled, the order in which the infill lines are printed is optimized to reduce the distance travelled. The reduction in travel time achieved very much depends on the model being sliced, infill pattern, density, etc. Note that, for some models that have many small areas of infill, the time to slice the model may be greatly increased.", - "type": "bool", - "enabled": "resolveOrValue('retraction_combing') != 'off'", - "default_value": false, - "settable_per_mesh": true - }, - "material_flow_dependent_temperature": - { - "label": "Auto Temperature", - "description": "Change the temperature for each layer automatically with the average flow speed of that layer.", - "type": "bool", - "default_value": false, - "enabled": "machine_nozzle_temp_enabled and False", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_flow_temp_graph": - { - "label": "Flow Temperature Graph", - "description": "Data linking material flow (in mm3 per second) to temperature (degrees Celsius).", - "unit": "[[mm³,°C]]", - "type": "str", - "default_value": "[[3.5,200],[7.0,240]]", - "enabled": "False and machine_nozzle_temp_enabled and material_flow_dependent_temperature", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "minimum_polygon_circumference": - { - "label": "Minimum Polygon Circumference", - "description": "Polygons in sliced layers that have a circumference smaller than this amount will be filtered out. Lower values lead to higher resolution mesh at the cost of slicing time. It is meant mostly for high resolution SLA printers and very tiny 3D models with a lot of details.", - "unit": "mm", - "type": "float", - "default_value": 1.0, - "minimum_value": "0", - "minimum_value_warning": "0.05", - "maximum_value_warning": "1.0", - "settable_per_mesh": true, - "settable_per_extruder": false - }, - "support_skip_some_zags": - { - "label": "Break Up Support In Chunks", - "description": "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern.", - "type": "bool", - "default_value": false, - "enabled": "(support_enable or support_meshes_present) and support_pattern == 'zigzag'", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_skip_zag_per_mm": - { - "label": "Support Chunk Size", - "description": "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away.", - "type": "float", - "unit": "mm", - "default_value": 20, - "minimum_value": "0", - "minimum_value_warning": "support_line_distance", - "enabled": "(support_enable or support_meshes_present) and support_pattern == 'zigzag' and support_skip_some_zags", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_zag_skip_count": - { - "label": "Support Chunk Line Count", - "description": "Skip one in every N connection lines to make the support structure easier to break away.", - "type": "int", - "default_value": 5, - "value": "0 if support_line_distance == 0 else round(support_skip_zag_per_mm / support_line_distance)", - "minimum_value": "1", - "minimum_value_warning": "3", - "enabled": "(support_enable or support_meshes_present) and support_pattern == 'zigzag' and support_skip_some_zags", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "draft_shield_enabled": - { - "label": "Enable Draft Shield", - "description": "This will create a wall around the model, which traps (hot) air and shields against exterior airflow. Especially useful for materials which warp easily.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "draft_shield_dist": - { - "label": "Draft Shield X/Y Distance", - "description": "Distance of the draft shield from the print, in the X/Y directions.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "10", - "default_value": 10, - "resolve": "max(extruderValues('draft_shield_dist'))", - "enabled": "draft_shield_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "draft_shield_height_limitation": - { - "label": "Draft Shield Limitation", - "description": "Set the height of the draft shield. Choose to print the draft shield at the full height of the model or at a limited height.", - "type": "enum", - "options": - { - "full": "Full", - "limited": "Limited" - }, - "default_value": "full", - "resolve": "'full' if 'full' in extruderValues('draft_shield_height_limitation') else 'limited'", - "enabled": "draft_shield_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "draft_shield_height": - { - "label": "Draft Shield Height", - "description": "Height limitation of the draft shield. Above this height no draft shield will be printed.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "9999", - "default_value": 10, - "value": "10", - "enabled": "draft_shield_enabled and draft_shield_height_limitation == 'limited'", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "conical_overhang_enabled": - { - "label": "Make Overhang Printable", - "description": "Change the geometry of the printed model such that minimal support is required. Steep overhangs will become shallow overhangs. Overhanging areas will drop down to become more vertical.", - "type": "bool", - "default_value": false - }, - "conical_overhang_angle": - { - "label": "Maximum Model Angle", - "description": "The maximum angle of overhangs after the they have been made printable. At a value of 0° all overhangs are replaced by a piece of model connected to the build plate, 90° will not change the model in any way.", - "unit": "°", - "type": "float", - "minimum_value": "-89", - "minimum_value_warning": "0", - "maximum_value": "89", - "default_value": 50, - "enabled": "conical_overhang_enabled" - }, - "conical_overhang_hole_size": - { - "label": "Maximum Overhang Hole Area", - "description": "The maximum area of a hole in the base of the model before it's removed by Make Overhang Printable. Holes smaller than this will be retained. A value of 0 mm² will fill all holes in the models base.", - "unit": "mm²", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "0", - "default_value": 0, - "enabled": "conical_overhang_enabled" - }, - "coasting_enable": - { - "label": "Enable Coasting", - "description": "Coasting replaces the last part of an extrusion path with a travel path. The oozed material is used to print the last piece of the extrusion path in order to reduce stringing.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "coasting_volume": - { - "label": "Coasting Volume", - "description": "The volume otherwise oozed. This value should generally be close to the nozzle diameter cubed.", - "unit": "mm³", - "type": "float", - "default_value": 0.064, - "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size * 5", - "enabled": "coasting_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "coasting_min_volume": - { - "label": "Minimum Volume Before Coasting", - "description": "The smallest volume an extrusion path should have before allowing coasting. For smaller extrusion paths, less pressure has been built up in the bowden tube and so the coasted volume is scaled linearly. This value should always be larger than the Coasting Volume.", - "unit": "mm³", - "type": "float", - "default_value": 0.8, - "minimum_value": "0", - "maximum_value_warning": "10.0", - "enabled": "coasting_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "coasting_speed": - { - "label": "Coasting Speed", - "description": "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops.", - "unit": "%", - "type": "float", - "default_value": 90, - "minimum_value": "0.0001", - "maximum_value_warning": "100", - "enabled": "coasting_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cross_infill_pocket_size": - { - "label": "Cross 3D Pocket Size", - "description": "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself.", - "unit": "mm", - "type": "float", - "default_value": 2.0, - "value": "infill_line_distance", - "minimum_value": "0", - "maximum_value_warning": "infill_line_distance * math.sqrt(2)", - "enabled": "infill_pattern == 'cross_3d'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "cross_infill_density_image": - { - "label": "Cross Infill Density Image", - "description": "The file location of an image of which the brightness values determine the minimal density at the corresponding location in the infill of the print.", - "type": "str", - "default_value": "", - "enabled": "infill_pattern == 'cross' or infill_pattern == 'cross_3d'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "cross_support_density_image": - { - "label": "Cross Fill Density Image for Support", - "description": "The file location of an image of which the brightness values determine the minimal density at the corresponding location in the support.", - "type": "str", - "default_value": "", - "enabled": "support_pattern == 'cross' or support_pattern == 'cross_3d'", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_conical_enabled": - { - "label": "Enable Conical Support", - "description": "Make support areas smaller at the bottom than at the overhang.", - "type": "bool", - "default_value": false, - "enabled": "support_enable and support_structure != 'tree'", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": true - }, - "support_conical_angle": - { - "label": "Conical Support Angle", - "description": "The angle of the tilt of conical support. With 0 degrees being vertical, and 90 degrees being horizontal. Smaller angles cause the support to be more sturdy, but consist of more material. Negative angles cause the base of the support to be wider than the top.", - "unit": "°", - "type": "float", - "minimum_value": "-90", - "minimum_value_warning": "-45", - "maximum_value_warning": "45", - "maximum_value": "90", - "default_value": 30, - "enabled": "support_conical_enabled and support_enable and support_structure != 'tree'", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": true - }, - "support_conical_min_width": - { - "label": "Conical Support Minimum Width", - "description": "Minimum width to which the base of the conical support area is reduced. Small widths can lead to unstable support structures.", - "unit": "mm", - "default_value": 5.0, - "minimum_value": "0", - "minimum_value_warning": "machine_nozzle_size * 3", - "maximum_value_warning": "100.0", - "type": "float", - "enabled": "support_conical_enabled and support_enable and support_structure != 'tree' and support_conical_angle > 0", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": true - }, - "magic_fuzzy_skin_enabled": - { - "label": "Fuzzy Skin", - "description": "Randomly jitter while printing the outer wall, so that the surface has a rough and fuzzy look.", - "type": "bool", - "default_value": false, - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "magic_fuzzy_skin_outside_only": - { - "label": "Fuzzy Skin Outside Only", - "description": "Jitter only the parts' outlines and not the parts' holes.", - "type": "bool", - "default_value": false, - "enabled": "magic_fuzzy_skin_enabled", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "magic_fuzzy_skin_thickness": - { - "label": "Fuzzy Skin Thickness", - "description": "The width within which to jitter. It's advised to keep this below the outer wall width, since the inner walls are unaltered.", - "type": "float", - "unit": "mm", - "default_value": 0.3, - "minimum_value": "0.001", - "maximum_value_warning": "wall_line_width_0", - "enabled": "magic_fuzzy_skin_enabled", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "magic_fuzzy_skin_point_density": - { - "label": "Fuzzy Skin Density", - "description": "The average density of points introduced on each polygon in a layer. Note that the original points of the polygon are discarded, so a low density results in a reduction of the resolution.", - "type": "float", - "unit": "1/mm", - "default_value": 1.25, - "minimum_value": "0.008", - "minimum_value_warning": "0.1", - "maximum_value_warning": "10", - "maximum_value": "2 / magic_fuzzy_skin_thickness", - "enabled": "magic_fuzzy_skin_enabled", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true, - "children": - { - "magic_fuzzy_skin_point_dist": - { - "label": "Fuzzy Skin Point Distance", - "description": "The average distance between the random points introduced on each line segment. Note that the original points of the polygon are discarded, so a high smoothness results in a reduction of the resolution. This value must be higher than half the Fuzzy Skin Thickness.", - "type": "float", - "unit": "mm", - "default_value": 0.8, - "minimum_value": "magic_fuzzy_skin_thickness / 2", - "minimum_value_warning": "0.1", - "maximum_value_warning": "10", - "value": "10000 if magic_fuzzy_skin_point_density == 0 else 1 / magic_fuzzy_skin_point_density", - "enabled": "magic_fuzzy_skin_enabled", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - } - } - }, - "flow_rate_max_extrusion_offset": - { - "label": "Flow Rate Compensation Max Extrusion Offset", - "description": "The maximum distance in mm to move the filament to compensate for changes in flow rate.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "10", - "default_value": 0, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "flow_rate_extrusion_offset_factor": - { - "label": "Flow Rate Compensation Factor", - "description": "How far to move the filament in order to compensate for changes in flow rate, as a percentage of how far the filament would move in one second of extrusion.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "100", - "default_value": 100, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_enabled": - { - "label": "Wire Printing", - "description": "Print only the outside surface with a sparse webbed structure, printing 'in thin air'. This is realized by horizontally printing the contours of the model at given Z intervals which are connected via upward and diagonally downward lines.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_height": - { - "label": "WP Connection Height", - "description": "The height of the upward and diagonally downward lines between two horizontal parts. This determines the overall density of the net structure. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 3, - "value": "machine_nozzle_head_distance", - "minimum_value": "0.001", - "maximum_value_warning": "20", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_roof_inset": - { - "label": "WP Roof Inset Distance", - "description": "The distance covered when making a connection from a roof outline inward. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 3, - "minimum_value": "0", - "minimum_value_warning": "machine_nozzle_size", - "maximum_value_warning": "20", - "enabled": "wireframe_enabled", - "value": "wireframe_height", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_printspeed": - { - "label": "WP Speed", - "description": "Speed at which the nozzle moves when extruding material. Only applies to Wire Printing.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "minimum_value": "0.05", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + machine_max_feedrate_z ** 2)", - "maximum_value_warning": "50", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "children": - { - "wireframe_printspeed_bottom": - { - "label": "WP Bottom Printing Speed", - "description": "Speed of printing the first layer, which is the only layer touching the build platform. Only applies to Wire Printing.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "minimum_value": "0.05", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "50", - "enabled": "wireframe_enabled", - "value": "wireframe_printspeed_flat", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_printspeed_up": - { - "label": "WP Upward Printing Speed", - "description": "Speed of printing a line upward 'in thin air'. Only applies to Wire Printing.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "minimum_value": "0.05", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + machine_max_feedrate_z ** 2)", - "maximum_value_warning": "50", - "enabled": "wireframe_enabled", - "value": "wireframe_printspeed", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_printspeed_down": - { - "label": "WP Downward Printing Speed", - "description": "Speed of printing a line diagonally downward. Only applies to Wire Printing.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "minimum_value": "0.05", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + machine_max_feedrate_z ** 2)", - "maximum_value_warning": "50", - "enabled": "wireframe_enabled", - "value": "wireframe_printspeed", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_printspeed_flat": - { - "label": "WP Horizontal Printing Speed", - "description": "Speed of printing the horizontal contours of the model. Only applies to Wire Printing.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "minimum_value": "0.05", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "100", - "value": "wireframe_printspeed", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - } - } - }, - "wireframe_flow": - { - "label": "WP Flow", - "description": "Flow compensation: the amount of material extruded is multiplied by this value. Only applies to Wire Printing.", - "unit": "%", - "default_value": 100, - "minimum_value": "0", - "maximum_value_warning": "100", - "type": "float", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "children": - { - "wireframe_flow_connection": - { - "label": "WP Connection Flow", - "description": "Flow compensation when going up or down. Only applies to Wire Printing.", - "unit": "%", - "default_value": 100, - "minimum_value": "0", - "maximum_value_warning": "100", - "type": "float", - "enabled": "wireframe_enabled", - "value": "wireframe_flow", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_flow_flat": - { - "label": "WP Flat Flow", - "description": "Flow compensation when printing flat lines. Only applies to Wire Printing.", - "unit": "%", - "default_value": 100, - "minimum_value": "0", - "maximum_value_warning": "100", - "type": "float", - "enabled": "wireframe_enabled", - "value": "wireframe_flow", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - } - } - }, - "wireframe_top_delay": - { - "label": "WP Top Delay", - "description": "Delay time after an upward move, so that the upward line can harden. Only applies to Wire Printing.", - "unit": "s", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "maximum_value_warning": "1", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_bottom_delay": - { - "label": "WP Bottom Delay", - "description": "Delay time after a downward move. Only applies to Wire Printing.", - "unit": "s", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "maximum_value_warning": "1", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_flat_delay": - { - "label": "WP Flat Delay", - "description": "Delay time between two horizontal segments. Introducing such a delay can cause better adhesion to previous layers at the connection points, while too long delays cause sagging. Only applies to Wire Printing.", - "unit": "s", - "type": "float", - "default_value": 0.1, - "minimum_value": "0", - "maximum_value_warning": "0.5", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_up_half_speed": - { - "label": "WP Ease Upward", - "description": "Distance of an upward move which is extruded with half speed.\nThis can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 0.3, - "minimum_value": "0", - "maximum_value_warning": "5.0", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_top_jump": - { - "label": "WP Knot Size", - "description": "Creates a small knot at the top of an upward line, so that the consecutive horizontal layer has a better chance to connect to it. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 0.6, - "minimum_value": "0", - "maximum_value_warning": "2.0", - "enabled": "wireframe_enabled and wireframe_strategy == 'knot'", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_fall_down": - { - "label": "WP Fall Down", - "description": "Distance with which the material falls down after an upward extrusion. This distance is compensated for. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 0.5, - "minimum_value": "0", - "maximum_value_warning": "wireframe_height", - "enabled": "wireframe_enabled and wireframe_strategy == 'compensate'", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_drag_along": - { - "label": "WP Drag Along", - "description": "Distance with which the material of an upward extrusion is dragged along with the diagonally downward extrusion. This distance is compensated for. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 0.6, - "minimum_value": "0", - "maximum_value_warning": "wireframe_height", - "enabled": "wireframe_enabled and wireframe_strategy == 'compensate'", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_strategy": - { - "label": "WP Strategy", - "description": "Strategy for making sure two consecutive layers connect at each connection point. Retraction lets the upward lines harden in the right position, but may cause filament grinding. A knot can be made at the end of an upward line to heighten the chance of connecting to it and to let the line cool; however, it may require slow printing speeds. Another strategy is to compensate for the sagging of the top of an upward line; however, the lines won't always fall down as predicted.", - "type": "enum", - "options": - { - "compensate": "Compensate", - "knot": "Knot", - "retract": "Retract" - }, - "default_value": "compensate", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_straight_before_down": - { - "label": "WP Straighten Downward Lines", - "description": "Percentage of a diagonally downward line which is covered by a horizontal line piece. This can prevent sagging of the top most point of upward lines. Only applies to Wire Printing.", - "type": "float", - "unit": "%", - "default_value": 20, - "minimum_value": "0", - "maximum_value": "100", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_roof_fall_down": - { - "label": "WP Roof Fall Down", - "description": "The distance which horizontal roof lines printed 'in thin air' fall down when being printed. This distance is compensated for. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 2, - "minimum_value_warning": "0", - "maximum_value_warning": "wireframe_roof_inset", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_roof_drag_along": - { - "label": "WP Roof Drag Along", - "description": "The distance of the end piece of an inward line which gets dragged along when going back to the outer outline of the roof. This distance is compensated for. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 0.8, - "minimum_value": "0", - "maximum_value_warning": "10", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_roof_outer_delay": - { - "label": "WP Roof Outer Delay", - "description": "Time spent at the outer perimeters of hole which is to become a roof. Longer times can ensure a better connection. Only applies to Wire Printing.", - "type": "float", - "unit": "s", - "default_value": 0.2, - "minimum_value": "0", - "maximum_value_warning": "2.0", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_nozzle_clearance": - { - "label": "WP Nozzle Clearance", - "description": "Distance between the nozzle and horizontally downward lines. Larger clearance results in diagonally downward lines with a less steep angle, which in turn results in less upward connections with the next layer. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 1, - "minimum_value_warning": "0", - "maximum_value_warning": "10.0", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "adaptive_layer_height_enabled": - { - "label": "Use Adaptive Layers", - "description": "Adaptive layers computes the layer heights depending on the shape of the model.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "adaptive_layer_height_variation": - { - "label": "Adaptive Layers Maximum Variation", - "description": "The maximum allowed height different from the base layer height.", - "type": "float", - "enabled": "adaptive_layer_height_enabled", - "unit": "mm", - "default_value": 0.1, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "adaptive_layer_height_variation_step": - { - "label": "Adaptive Layers Variation Step Size", - "description": "The difference in height of the next layer height compared to the previous one.", - "type": "float", - "enabled": "adaptive_layer_height_enabled", - "default_value": 0.01, - "unit": "mm", - "settable_per_mesh": false, - "minimum_value": "0.001", - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "adaptive_layer_height_threshold": - { - "label": "Adaptive Layers Topography Size", - "description": "Target horizontal distance between two adjacent layers. Reducing this setting causes thinner layers to be used to bring the edges of the layers closer together.", - "type": "float", - "enabled": "adaptive_layer_height_enabled", - "default_value": 0.2, - "unit": "mm", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wall_overhang_angle": - { - "label": "Overhanging Wall Angle", - "description": "Walls that overhang more than this angle will be printed using overhanging wall settings. When the value is 90, no walls will be treated as overhanging. Overhang that gets supported by support will not be treated as overhang either.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "2", - "maximum_value": "90", - "default_value": 90, - "settable_per_mesh": true - }, - "wall_overhang_speed_factor": - { - "label": "Overhanging Wall Speed", - "description": "Overhanging walls will be printed at this percentage of their normal print speed.", - "unit": "%", - "type": "float", - "default_value": 100, - "minimum_value": "0.001", - "minimum_value_warning": "25", - "settable_per_mesh": true - }, - "bridge_settings_enabled": - { - "label": "Enable Bridge Settings", - "description": "Detect bridges and modify print speed, flow and fan settings while bridges are printed.", - "type": "bool", - "default_value": false, - "resolve": "any(extruderValues('bridge_settings_enabled'))", - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "bridge_wall_min_length": - { - "label": "Minimum Bridge Wall Length", - "description": "Unsupported walls shorter than this will be printed using the normal wall settings. Longer unsupported walls will be printed using the bridge wall settings.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "default_value": 5, - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true, - "settable_per_extruder": false - }, - "bridge_skin_support_threshold": - { - "label": "Bridge Skin Support Threshold", - "description": "If a skin region is supported for less than this percentage of its area, print it using the bridge settings. Otherwise it is printed using the normal skin settings.", - "unit": "%", - "default_value": 50, - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_sparse_infill_max_density": - { - "label": "Bridge Sparse Infill Max Density", - "description": "Maximum density of infill considered to be sparse. Skin over sparse infill is considered to be unsupported and so may be treated as a bridge skin.", - "unit": "%", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_wall_coast": - { - "label": "Bridge Wall Coasting", - "description": "This controls the distance the extruder should coast immediately before a bridge wall begins. Coasting before the bridge starts can reduce the pressure in the nozzle and may produce a flatter bridge.", - "unit": "%", - "default_value": 100, - "type": "float", - "minimum_value": "0", - "maximum_value": "500", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_wall_speed": - { - "label": "Bridge Wall Speed", - "description": "The speed at which the bridge walls are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "cool_min_speed", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "default_value": 15, - "value": "max(cool_min_speed, speed_wall_0 / 2)", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_wall_material_flow": - { - "label": "Bridge Wall Flow", - "description": "When printing bridge walls, the amount of material extruded is multiplied by this value.", - "unit": "%", - "default_value": 50, - "type": "float", - "minimum_value": "5", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_skin_speed": - { - "label": "Bridge Skin Speed", - "description": "The speed at which bridge skin regions are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "cool_min_speed", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "default_value": 15, - "value": "max(cool_min_speed, speed_topbottom / 2)", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_skin_material_flow": - { - "label": "Bridge Skin Flow", - "description": "When printing bridge skin regions, the amount of material extruded is multiplied by this value.", - "unit": "%", - "default_value": 60, - "type": "float", - "minimum_value": "5", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_skin_density": - { - "label": "Bridge Skin Density", - "description": "The density of the bridge skin layer. Values less than 100 will increase the gaps between the skin lines.", - "unit": "%", - "default_value": 100, - "type": "float", - "minimum_value": "5", - "maximum_value": "100", - "minimum_value_warning": "20", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_fan_speed": - { - "label": "Bridge Fan Speed", - "description": "Percentage fan speed to use when printing bridge walls and skin.", - "unit": "%", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 100, - "type": "float", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_enable_more_layers": - { - "label": "Bridge Has Multiple Layers", - "description": "If enabled, the second and third layers above the air are printed using the following settings. Otherwise, those layers are printed using the normal settings.", - "type": "bool", - "default_value": true, - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_skin_speed_2": - { - "label": "Bridge Second Skin Speed", - "description": "Print speed to use when printing the second bridge skin layer.", - "unit": "mm/s", - "type": "float", - "minimum_value": "cool_min_speed", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "default_value": 25, - "value": "bridge_skin_speed", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_skin_material_flow_2": - { - "label": "Bridge Second Skin Flow", - "description": "When printing the second bridge skin layer, the amount of material extruded is multiplied by this value.", - "unit": "%", - "default_value": 100, - "type": "float", - "minimum_value": "5", - "maximum_value": "500", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_skin_density_2": - { - "label": "Bridge Second Skin Density", - "description": "The density of the second bridge skin layer. Values less than 100 will increase the gaps between the skin lines.", - "unit": "%", - "default_value": 75, - "type": "float", - "minimum_value": "5", - "maximum_value": "100", - "minimum_value_warning": "20", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_fan_speed_2": - { - "label": "Bridge Second Skin Fan Speed", - "description": "Percentage fan speed to use when printing the second bridge skin layer.", - "unit": "%", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "type": "float", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_skin_speed_3": - { - "label": "Bridge Third Skin Speed", - "description": "Print speed to use when printing the third bridge skin layer.", - "unit": "mm/s", - "type": "float", - "minimum_value": "cool_min_speed", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "default_value": 15, - "value": "bridge_skin_speed", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_skin_material_flow_3": - { - "label": "Bridge Third Skin Flow", - "description": "When printing the third bridge skin layer, the amount of material extruded is multiplied by this value.", - "unit": "%", - "default_value": 110, - "type": "float", - "minimum_value": "5", - "maximum_value": "500", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_skin_density_3": - { - "label": "Bridge Third Skin Density", - "description": "The density of the third bridge skin layer. Values less than 100 will increase the gaps between the skin lines.", - "unit": "%", - "default_value": 80, - "type": "float", - "minimum_value": "5", - "maximum_value": "100", - "minimum_value_warning": "20", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_fan_speed_3": - { - "label": "Bridge Third Skin Fan Speed", - "description": "Percentage fan speed to use when printing the third bridge skin layer.", - "unit": "%", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "type": "float", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "clean_between_layers": - { - "label": "Wipe Nozzle Between Layers", - "description": "Whether to include nozzle wipe G-Code between layers (maximum 1 per layer). Enabling this setting could influence behavior of retract at layer change. Please use Wipe Retraction settings to control retraction at layers where the wipe script will be working.", - "default_value": false, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "max_extrusion_before_wipe": - { - "label": "Material Volume Between Wipes", - "description": "Maximum material that can be extruded before another nozzle wipe is initiated. If this value is less than the volume of material required in a layer, the setting has no effect in this layer, i.e. it is limited to one wipe per layer.", - "default_value": 10, - "type": "float", - "unit": "mm³", - "enabled": "clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_retraction_enable": - { - "label": "Wipe Retraction Enable", - "description": "Retract the filament when the nozzle is moving over a non-printed area.", - "type": "bool", - "default_value": true, - "value": "retraction_enable", - "enabled": "clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_retraction_amount": - { - "label": "Wipe Retraction Distance", - "description": "Amount to retract the filament so it does not ooze during the wipe sequence.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "retraction_amount", - "minimum_value_warning": "-0.0001", - "maximum_value_warning": "10.0", - "enabled": "wipe_retraction_enable and clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_retraction_extra_prime_amount": - { - "label": "Wipe Retraction Extra Prime Amount", - "description": "Some material can ooze away during a wipe travel moves, which can be compensated for here.", - "unit": "mm³", - "type": "float", - "default_value": 0, - "value": "retraction_extra_prime_amount", - "minimum_value_warning": "-0.0001", - "maximum_value_warning": "10.0", - "enabled": "wipe_retraction_enable and clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "wipe_retraction_speed": - { - "label": "Wipe Retraction Speed", - "description": "The speed at which the filament is retracted and primed during a wipe retraction move.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "value": "retraction_speed", - "minimum_value": "0", - "minimum_value_warning": "1", - "maximum_value": "machine_max_feedrate_e", - "maximum_value_warning": "70", - "enabled": "wipe_retraction_enable and clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "wipe_retraction_retract_speed": - { - "label": "Wipe Retraction Retract Speed", - "description": "The speed at which the filament is retracted during a wipe retraction move.", - "unit": "mm/s", - "type": "float", - "default_value": 3, - "minimum_value": "0", - "maximum_value": "machine_max_feedrate_e", - "minimum_value_warning": "1", - "maximum_value_warning": "70", - "enabled": "wipe_retraction_enable and clean_between_layers", - "value": "wipe_retraction_speed", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "wipe_retraction_prime_speed": - { - "label": "Wipe Retraction Prime Speed", - "description": "The speed at which the filament is primed during a wipe retraction move.", - "unit": "mm/s", - "type": "float", - "default_value": 2, - "minimum_value": "0", - "maximum_value": "machine_max_feedrate_e", - "minimum_value_warning": "1", - "maximum_value_warning": "70", - "enabled": "wipe_retraction_enable and clean_between_layers", - "value": "wipe_retraction_speed", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "wipe_pause": - { - "label": "Wipe Pause", - "description": "Pause after the unretract.", - "unit": "s", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "enabled": "clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_hop_enable": - { - "label": "Wipe Z Hop", - "description": "When wiping, the build plate is lowered to create clearance between the nozzle and the print. It prevents the nozzle from hitting the print during travel moves, reducing the chance to knock the print from the build plate.", - "type": "bool", - "default_value": true, - "value": "retraction_hop_enabled", - "enabled": "clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_hop_amount": - { - "label": "Wipe Z Hop Height", - "description": "The height difference when performing a Z Hop.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "retraction_hop", - "enabled": "wipe_hop_enable and clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_hop_speed": - { - "label": "Wipe Hop Speed", - "description": "Speed to move the z-axis during the hop.", - "unit": "mm/s", - "type": "float", - "default_value": 10, - "value": "speed_z_hop", - "minimum_value": "0", - "minimum_value_warning": "1", - "enabled": "wipe_hop_enable and clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_brush_pos_x": - { - "label": "Wipe Brush X Position", - "description": "X location where wipe script will start.", - "type": "float", - "unit": "mm", - "default_value": 100, - "minimum_value_warning": "0", - "enabled": "clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_repeat_count": - { - "label": "Wipe Repeat Count", - "description": "Number of times to move the nozzle across the brush.", - "type": "int", - "minimum_value": "0", - "default_value": 5, - "enabled": "clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_move_distance": - { - "label": "Wipe Move Distance", - "description": "The distance to move the head back and forth across the brush.", - "unit": "mm", - "type": "float", - "default_value": 20, - "enabled": "clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "small_hole_max_size": - { - "label": "Small Hole Max Size", - "description": "Holes and part outlines with a diameter smaller than this will be printed using Small Feature Speed.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "default_value": 0, - "settable_per_mesh": true, - "children": - { - "small_feature_max_length": - { - "label": "Small Feature Max Length", - "description": "Feature outlines that are shorter than this length will be printed using Small Feature Speed.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "default_value": 0, - "value": "small_hole_max_size * math.pi", - "settable_per_mesh": true - } - } - }, - "small_feature_speed_factor": - { - "label": "Small Feature Speed", - "description": "Small features will be printed at this percentage of their normal print speed. Slower printing can help with adhesion and accuracy.", - "unit": "%", - "type": "float", - "default_value": 50, - "minimum_value": "1", - "minimum_value_warning": "25", - "maximum_value_warning": "100", - "settable_per_mesh": true - }, - "small_feature_speed_factor_0": - { - "label": "Small Feature Initial Layer Speed", - "description": "Small features on the first layer will be printed at this percentage of their normal print speed. Slower printing can help with adhesion and accuracy.", - "unit": "%", - "type": "float", - "default_value": 50, - "value": "small_feature_speed_factor", - "minimum_value": "1", - "minimum_value_warning": "25", - "maximum_value_warning": "100", - "settable_per_mesh": true - } - } - }, - "command_line_settings": - { - "label": "Command Line Settings", - "description": "Settings which are only used if CuraEngine isn't called from the Cura frontend.", - "type": "category", - "enabled": false, - "children": { - "center_object": - { - "description": "Whether to center the object on the middle of the build platform (0,0), instead of using the coordinate system in which the object was saved.", - "type": "bool", - "label": "Center Object", - "default_value": false, - "enabled": false - }, - "mesh_position_x": - { - "description": "Offset applied to the object in the x direction.", - "type": "float", - "label": "Mesh Position X", - "default_value": 0, - "enabled": false - }, - "mesh_position_y": - { - "description": "Offset applied to the object in the y direction.", - "type": "float", - "label": "Mesh Position Y", - "default_value": 0, - "enabled": false - }, - "mesh_position_z": - { - "description": "Offset applied to the object in the z direction. With this you can perform what was used to be called 'Object Sink'.", - "type": "float", - "label": "Mesh Position Z", - "default_value": 0, - "enabled": false - }, - "mesh_rotation_matrix": - { - "label": "Mesh Rotation Matrix", - "description": "Transformation matrix to be applied to the model when loading it from file.", - "type": "str", - "default_value": "[[1,0,0], [0,1,0], [0,0,1]]", - "enabled": false - } - } - } - } -} diff --git a/software/Print3r/settings/slicer/cura4/map.ini b/software/Print3r/settings/slicer/cura4/map.ini deleted file mode 100644 index 69e9abe7..00000000 --- a/software/Print3r/settings/slicer/cura4/map.ini +++ /dev/null @@ -1,49 +0,0 @@ -infill_line_distance={$fill_density==0?0:$nozzle_diameter*100/$fill_density*2} -machine_nozzle_diameter=$nozzle_diameter -machine_material_diameter=$filament_diameter -material_diameter=$filament_diameter -top_layers={$top_thickness>0?int($top_thickness/$layer_height+0.5):$top_layers} -bottom_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -initial_bottom_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -wall_line_count={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} -retraction_amount=$retraction_amount -machine_start_gcode=$start_gcode -machine_end_gcode=$end_gcode -retraction_amount=$retraction_length -layer_height_0={$first_layer_height>0?$first_layer_height:$layer_height} -speed_print_layer_0=$first_layer_speed -material_bed_temperature_layer_0={$first_layer_bed_temparature?$first_layer_bed_temperature:$bed_temperature} -line_width=$nozzle_diameter -infill_line_width=$nozzle_diameter -prime_tower_line_width=$nozzle_diameter -raft_surface_line_width=$nozzle_diameter -roofing_line_width=$nozzle_diameter -skin_line_width=$nozzle_diameter -skirt_brim_line_width=$nozzle_diameter -support_bottom_line_width=$nozzle_diameter -support_interface_line_width=$nozzle_diameter -support_line_width=$nozzle_diameter -support_roof_line_width=$nozzle_diameter -wall_line_width_0=$nozzle_diameter -wall_line_width=$nozzle_diameter -wall_line_width_x=$nozzle_diameter -#default_material_print_temperature=$temperature -#default_material_print_bed_temperature=$bed_temperature -material_print_temperature=$temperature -material_print_bed_temperature=$bed_temperature -material_bed_temperature_layer_0=$bed_temperature -material_print_temperature_layer_0=$first_layer_temperature -#print_temperature=$temperature -#print_bed_temperature=$bed_temperature -speed_print=$print_speed -speed_wall={$perimeter_speed?$perimeter_speed:$print_speed*0.8} -speed_infill={$infill_speed?$infill_speed:$print_speed*1.5} -retraction_speed={$retract_speed?$retract_speed:40} -speed_travel=$travel_speed -adhesion_type={$rafts>0?"raft":$brims>0?"brim":"skirt"} -brim_line_count=$brims -skirt_line_count=$skirts -raft_surface_layers=$rafts -support_enable={'$support' ne 'none' && '$support' ne '0' ? 1 : 0} -support_type={'$support' eq "bed"?"buildplate":"everywhere"} -z_seam_type={'$seam' eq 'aligned' ? 'sharpest_corner' : '$seam' eq 'nearest' ? "shortest" : '$seam' eq 'rear'? 'back' : '$seam'} diff --git a/software/Print3r/settings/slicer/cura5/base.ini b/software/Print3r/settings/slicer/cura5/base.ini deleted file mode 100644 index 1ff53230..00000000 --- a/software/Print3r/settings/slicer/cura5/base.ini +++ /dev/null @@ -1,532 +0,0 @@ -acceleration_enabled="False" -acceleration_infill="3000" -acceleration_ironing="3000" -acceleration_layer_0="3000" -acceleration_prime_tower="3000" -acceleration_print="3000" -acceleration_print_layer_0="3000" -acceleration_roofing="3000" -acceleration_skirt_brim="3000" -acceleration_support="3000" -acceleration_support_bottom="3000" -acceleration_support_infill="3000" -acceleration_support_interface="3000" -acceleration_support_roof="3000" -acceleration_topbottom="3000" -acceleration_travel="5000" -acceleration_travel_layer_0="5000.0" -acceleration_wall="3000" -acceleration_wall_0="3000" -acceleration_wall_x="3000" -adaptive_layer_height_enabled="False" -adaptive_layer_height_threshold="200.0" -adaptive_layer_height_variation="0.1" -adaptive_layer_height_variation_step="0.01" -adhesion_extruder_nr="0" -adhesion_type="skirt" -alternate_carve_order="True" -alternate_extra_perimeter="False" -anti_overhang_mesh="False" -blackmagic="0" -bottom_layers="2" -bottom_skin_expand_distance="1.0" -bottom_skin_preshrink="1.0" -bottom_thickness="0.8" -bridge_enable_more_layers="True" -bridge_fan_speed="100" -bridge_fan_speed_2="0" -bridge_fan_speed_3="0" -bridge_settings_enabled="False" -bridge_skin_density="100" -bridge_skin_density_2="75" -bridge_skin_density_3="80" -bridge_skin_material_flow="60" -bridge_skin_material_flow_2="100" -bridge_skin_material_flow_3="110" -bridge_skin_speed="15.0" -bridge_skin_speed_2="15.0" -bridge_skin_speed_3="15.0" -bridge_skin_support_threshold="50" -bridge_wall_coast="100" -bridge_wall_material_flow="50" -bridge_wall_min_length="5" -bridge_wall_speed="15.0" -brim_line_count="20" -brim_outside_only="True" -brim_width="8.0" -carve_multiple_volumes="False" -center_object="False" -coasting_enable="False" -coasting_min_volume="0.8" -coasting_speed="90" -coasting_volume="0.064" -command_line_settings="0" -conical_overhang_angle="50" -conical_overhang_enabled="False" -connect_infill_polygons="False" -connect_skin_polygons="False" -cool_fan_enabled="True" -cool_fan_full_at_height="0.35" -cool_fan_full_layer="2" -cool_fan_speed="100.0" -cool_fan_speed_0="0" -cool_fan_speed_max="100.0" -cool_fan_speed_min="100.0" -cool_lift_head="False" -cool_min_layer_time="5" -cool_min_layer_time_fan_speed_max="10" -cool_min_speed="10" -cooling="0" -cross_infill_pocket_size="4.0" -cutting_mesh="False" -date="14-10-2018" -day="Sun" -default_material_bed_temperature="60" -default_material_print_temperature="210" -draft_shield_dist="10" -draft_shield_enabled="False" -draft_shield_height="10" -draft_shield_height_limitation="full" -dual="0" -expand_skins_expand_distance="1.0" -experimental="0" -extruder_nr="0" -extruder_prime_pos_abs="False" -extruder_prime_pos_x="0" -extruder_prime_pos_y="0" -extruder_prime_pos_z="0" -extruders_enabled_count="1" -fill_outline_gaps="False" -fill_perimeter_gaps="everywhere" -filter_out_tiny_gaps="True" -flow_rate_extrusion_offset_factor="100" -flow_rate_max_extrusion_offset="0" -gantry_height="55" -gradual_infill_step_height="1.5" -gradual_infill_steps="0" -gradual_support_infill_step_height="1" -gradual_support_infill_steps="0" -infill="0" -infill_angles="[ ]" -infill_before_walls="True" -infill_enable_travel_optimization="False" -infill_extruder_nr="-1" -infill_line_distance="4.0" -infill_line_width="0.5" -infill_mesh="False" -infill_mesh_order="0" -infill_multiplier="1" -infill_offset_x="0" -infill_offset_y="0" -infill_overlap="10" -infill_overlap_mm="0.05" -infill_pattern="grid" -infill_sparse_density="20" -infill_sparse_thickness="0.4" -infill_support_angle="40" -infill_support_enabled="False" -infill_wall_line_count="0" -infill_wipe_dist="0.125" -initial_extruder_nr="0" -initial_layer_line_width_factor="100.0" -ironing_enabled="False" -ironing_flow="10.0" -ironing_inset="0.25" -ironing_line_spacing="0.1" -ironing_only_highest_layer="False" -ironing_pattern="zigzag" -jerk_enabled="False" -jerk_infill="20" -jerk_ironing="20" -jerk_layer_0="20" -jerk_prime_tower="20" -jerk_print="20" -jerk_print_layer_0="20" -jerk_roofing="20" -jerk_skirt_brim="20" -jerk_support="20" -jerk_support_bottom="20" -jerk_support_infill="20" -jerk_support_interface="20" -jerk_support_roof="20" -jerk_topbottom="20" -jerk_travel="30" -jerk_travel_layer_0="30.0" -jerk_wall="20" -jerk_wall_0="20" -jerk_wall_x="20" -layer_0_z_overlap="0.15" -layer_height="0.4" -layer_height_0="0.35" -layer_start_x="0.0" -layer_start_y="0.0" -limit_support_retractions="True" -line_width="0.5" -machine_acceleration="4000" -machine_buildplate_type="glass" -machine_center_is_zero="False" -machine_depth="200" -machine_disallowed_areas="[]" -machine_end_gcode="M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\n;G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nG28 X0\nG90\nG1 Y290 F9000\nM84 ;steppers off\nG90 ;absolute positioning" -machine_endstop_positive_direction_x="False" -machine_endstop_positive_direction_y="False" -machine_endstop_positive_direction_z="True" -machine_extruder_count="1" -machine_extruder_cooling_fan_number="0" -machine_extruder_end_pos_abs="False" -machine_extruder_end_pos_x="0" -machine_extruder_end_pos_y="0" -machine_extruder_start_pos_abs="False" -machine_extruder_start_pos_x="0" -machine_extruder_start_pos_y="0" -machine_feeder_wheel_diameter="10.0" -machine_filament_park_distance="16" -machine_firmware_retract="False" -machine_gcode_flavor="RepRap (Marlin/Sprinter)" -machine_head_polygon="[[-75, -18], [-75, 35], [18, 35], [18, -18]]" -machine_head_with_fans_polygon="[[-75, -18], [-75, 35], [18, 35], [18, -18]]" -machine_heat_zone_length="16" -machine_heated_bed="True" -machine_height="210" -machine_max_acceleration_e="10000" -machine_max_acceleration_x="9000" -machine_max_acceleration_y="9000" -machine_max_acceleration_z="100" -machine_max_feedrate_e="299792458000" -machine_max_feedrate_x="500" -machine_max_feedrate_y="500" -machine_max_feedrate_z="5" -machine_max_jerk_e="5.0" -machine_max_jerk_xy="20.0" -machine_max_jerk_z="0.4" -machine_min_cool_heat_time_window="50.0" -machine_minimum_feedrate="0.0" -machine_name="Prusa i3" -machine_nozzle_cool_down_speed="2.0" -machine_nozzle_expansion_angle="45" -machine_nozzle_head_distance="3" -machine_nozzle_heat_up_speed="2.0" -machine_nozzle_id="unknown" -machine_nozzle_offset_x="0" -machine_nozzle_offset_y="0" -machine_nozzle_size="0.5" -machine_nozzle_temp_enabled="True" -machine_nozzle_tip_outer_diameter="1" -machine_settings="0" -machine_shape="rectangular" -machine_show_variants="False" -machine_start_gcode="G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nM206 X0 Y0\n;M92 X100 Y100 E95 ; metal 16 teeth pulley\n;M92 Z3200; M6 z-axis\n;G1 Z15; move up\nG28 X0 Y0 ;move X/Y to min endstops\nG1 X40; move away to avoid crashing into bed mount\nG28 Z0 ;move Z to min endstops\n;G1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 Y-3.0 F1000.0 ; go outside print area\nG1 X10.0 E9.0 F1000.0 ; intro line\nG1 X60.0 E21.5 F1000.0 ; intro line\nG1 X20.0 E30.0 F1000\nG92 E0 ;zero the extruded length again\n;G1 F9000\n;Put printing message on LCD screen\nM117 Printing..." -machine_steps_per_mm_e="1600" -machine_steps_per_mm_x="50" -machine_steps_per_mm_y="50" -machine_steps_per_mm_z="50" -machine_use_extruder_offset_to_offset_coords="True" -machine_width="210" -magic_fuzzy_skin_enabled="False" -magic_fuzzy_skin_point_density="1.25" -magic_fuzzy_skin_point_dist="0.8" -magic_fuzzy_skin_thickness="0.3" -magic_mesh_surface_mode="normal" -magic_spiralize="False" -material="0" -material_adhesion_tendency="10" -material_bed_temp_prepend="True" -material_bed_temp_wait="True" -material_bed_temperature="0" -material_bed_temperature_layer_0="0" -material_diameter="1.75" -material_extrusion_cool_down_speed="0.7" -material_final_print_temperature="195" -material_flow="100" -material_flow_dependent_temperature="False" -material_flow_layer_0="100" -material_flow_temp_graph="[[3.5,200],[7.0,240]]" -material_guid="0ff92885-617b-4144-a03c-9989872454bc" -material_initial_print_temperature="200" -material_print_temp_prepend="True" -material_print_temp_wait="True" -material_print_temperature="210" -material_print_temperature_layer_0="210" -material_shrinkage_percentage="0" -material_standby_temperature="175" -material_surface_energy="100" -max_feedrate_z_override="0" -max_skin_angle_for_expansion="90" -mesh_position_x="0" -mesh_position_y="0" -mesh_position_z="0" -mesh_rotation_matrix="[[1,0,0], [0,1,0], [0,0,1]]" -meshfix="0" -meshfix_extensive_stitching="False" -meshfix_keep_open_polygons="False" -meshfix_maximum_resolution="0.01" -meshfix_maximum_travel_resolution="0.02" -meshfix_union_all="True" -meshfix_union_all_remove_holes="False" -min_infill_area="0" -min_skin_width_for_expansion="4.898587196589413e-17" -minimum_polygon_circumference="1.0" -mold_angle="40" -mold_enabled="False" -mold_roof_height="0.5" -mold_width="5" -multiple_mesh_overlap="0.15" -nozzle_disallowed_areas="[]" -ooze_shield_angle="60" -ooze_shield_dist="2" -ooze_shield_enabled="False" -optimize_wall_printing_order="False" -outer_inset_first="False" -platform_adhesion="0" -prime_blob_enable="True" -prime_tower_circular="True" -prime_tower_enable="False" -prime_tower_flow="100" -prime_tower_line_width="0.5" -prime_tower_min_volume="6" -prime_tower_position_x="375.3" -prime_tower_position_y="275.3" -prime_tower_size="20" -prime_tower_wipe_enabled="True" -print_bed_temperature="0" -print_sequence="all_at_once" -print_temperature="210" -raft_acceleration="3000" -raft_airgap="0.3" -raft_base_acceleration="3000" -raft_base_fan_speed="0" -raft_base_jerk="20" -raft_base_line_spacing="2.0" -raft_base_line_width="1.0" -raft_base_speed="22.5" -raft_base_thickness="0.42" -raft_fan_speed="0" -raft_interface_acceleration="3000" -raft_interface_fan_speed="0" -raft_interface_jerk="20" -raft_interface_line_spacing="1.2" -raft_interface_line_width="1.0" -raft_interface_speed="22.5" -raft_interface_thickness="0.6000000000000001" -raft_jerk="20" -raft_margin="15" -raft_smoothing="5" -raft_speed="30.0" -raft_surface_acceleration="3000" -raft_surface_fan_speed="0" -raft_surface_jerk="20" -raft_surface_layers="2" -raft_surface_line_spacing="0.5" -raft_surface_line_width="0.5" -raft_surface_speed="30.0" -raft_surface_thickness="0.4" -relative_extrusion="False" -remove_empty_first_layers="True" -resolution="0" -retract_at_layer_change="False" -retraction_amount="6.5" -retraction_combing="all" -retraction_combing_max_distance="0" -retraction_count_max="90" -retraction_enable="True" -retraction_extra_prime_amount="0" -retraction_extrusion_window="6.5" -retraction_hop="1" -retraction_hop_after_extruder_switch="True" -retraction_hop_enabled="False" -retraction_hop_only_when_collides="False" -retraction_min_travel="1.0" -retraction_prime_speed="35" -retraction_retract_speed="35" -retraction_speed="35" -roofing_angles="[ ]" -roofing_extruder_nr="-1" -roofing_layer_count="0" -roofing_line_width="0.5" -roofing_pattern="lines" -shell="0" -skin_alternate_rotation="False" -skin_angles="[ ]" -skin_line_width="0.5" -skin_no_small_gaps_heuristic="True" -skin_outline_count="1" -skin_overlap="5" -skin_overlap_mm="0.025" -skin_preshrink="1.0" -skirt_brim_line_width="0.5" -skirt_brim_minimal_length="250" -skirt_brim_speed="30.0" -skirt_gap="3" -skirt_line_count="1" -slicing_tolerance="middle" -smooth_spiralized_contours="True" -spaghetti_flow="20" -spaghetti_infill_enabled="False" -spaghetti_infill_extra_volume="0" -spaghetti_infill_stepped="True" -spaghetti_inset="0.2" -spaghetti_max_height="2.0" -spaghetti_max_infill_angle="10" -speed="0" -speed_equalize_flow_enabled="False" -speed_equalize_flow_max="150" -speed_infill="80" -speed_ironing="20.0" -speed_layer_0="30.0" -speed_prime_tower="60" -speed_print="60" -speed_print_layer_0="30.0" -speed_roofing="30.0" -speed_slowdown_layers="2" -speed_support="60" -speed_support_bottom="40.0" -speed_support_infill="60" -speed_support_interface="40.0" -speed_support_roof="40.0" -speed_topbottom="30.0" -speed_travel="120" -speed_travel_layer_0="60.0" -speed_wall="30.0" -speed_wall_0="30.0" -speed_wall_x="60.0" -start_layers_at_same_position="False" -sub_div_rad_add="0.5" -support="0" -support_angle="50" -support_bottom_density="100" -support_bottom_distance="0" -support_bottom_enable="False" -support_bottom_extruder_nr="0" -support_bottom_height="1" -support_bottom_line_distance="0.5" -support_bottom_line_width="0.5" -support_bottom_pattern="concentric" -support_bottom_stair_step_height="0.3" -support_bottom_stair_step_width="5.0" -support_conical_angle="30" -support_conical_enabled="False" -support_conical_min_width="5.0" -support_connect_zigzags="True" -support_enable="False" -support_extruder_nr="0" -support_extruder_nr_layer_0="0" -support_fan_enable="False" -support_infill_angle="0" -support_infill_extruder_nr="0" -support_infill_rate="15" -support_infill_sparse_thickness="0.4" -support_initial_layer_line_distance="3.3333333333333335" -support_interface_density="100" -support_interface_enable="False" -support_interface_extruder_nr="0" -support_interface_height="1" -support_interface_line_width="0.5" -support_interface_pattern="concentric" -support_interface_skip_height="0.3" -support_join_distance="2.0" -support_line_distance="3.3333333333333335" -support_line_width="0.5" -support_mesh="False" -support_mesh_drop_down="True" -support_minimal_diameter="3.0" -support_offset="0.2" -support_pattern="zigzag" -support_roof_density="100" -support_roof_enable="False" -support_roof_extruder_nr="0" -support_roof_height="1" -support_roof_line_distance="0.5" -support_roof_line_width="0.5" -support_roof_pattern="concentric" -support_skip_some_zags="False" -support_skip_zag_per_mm="20" -support_supported_skin_fan_speed="100" -support_top_distance="0.1" -support_tower_diameter="3.0" -support_tower_roof_angle="65" -support_tree_angle="40" -support_tree_branch_diameter="2" -support_tree_branch_diameter_angle="5" -support_tree_branch_distance="1" -support_tree_collision_resolution="0.25" -support_tree_enable="False" -support_tree_wall_count="1" -support_tree_wall_thickness="0.5" -support_type="buildplate" -support_use_towers="True" -support_wall_count="0" -support_xy_distance="0.7" -support_xy_distance_overhang="0.25" -support_xy_overrides_z="z_overrides_xy" -support_z_distance="0.1" -support_zag_skip_count="8" -switch_extruder_prime_speed="20" -switch_extruder_retraction_amount="16" -switch_extruder_retraction_speed="20" -switch_extruder_retraction_speeds="20" -time="09:46:45" -top_bottom_extruder_nr="-1" -top_bottom_pattern="lines" -top_bottom_pattern_0="lines" -top_bottom_thickness="0.8" -top_layers="2" -top_skin_expand_distance="1.0" -top_skin_preshrink="1.0" -top_thickness="0.8" -travel="0" -travel_avoid_distance="0.625" -travel_avoid_other_parts="True" -travel_avoid_supports="False" -travel_compensate_overlapping_walls_0_enabled="True" -travel_compensate_overlapping_walls_enabled="True" -travel_compensate_overlapping_walls_x_enabled="True" -travel_retract_before_outer_wall="False" -wall_0_extruder_nr="-1" -wall_0_inset="0" -wall_0_wipe_dist="0.25" -wall_extruder_nr="-1" -wall_line_count="2" -wall_line_width="0.5" -wall_line_width_0="0.5" -wall_line_width_x="0.5" -wall_min_flow="0" -wall_min_flow_retract="False" -wall_overhang_angle="90" -wall_overhang_speed_factor="100" -wall_thickness="0.8" -wall_x_extruder_nr="-1" -wireframe_bottom_delay="0" -wireframe_drag_along="0.6" -wireframe_enabled="False" -wireframe_fall_down="0.5" -wireframe_flat_delay="0.1" -wireframe_flow="100" -wireframe_flow_connection="100" -wireframe_flow_flat="100" -wireframe_height="3" -wireframe_nozzle_clearance="1" -wireframe_printspeed="5" -wireframe_printspeed_bottom="5" -wireframe_printspeed_down="5" -wireframe_printspeed_flat="5" -wireframe_printspeed_up="5" -wireframe_roof_drag_along="0.8" -wireframe_roof_fall_down="2" -wireframe_roof_inset="3" -wireframe_roof_outer_delay="0.2" -wireframe_straight_before_down="20" -wireframe_strategy="compensate" -wireframe_top_delay="0" -wireframe_top_jump="0.6" -wireframe_up_half_speed="0.3" -xy_offset="0" -xy_offset_layer_0="0" -z_seam_corner="z_seam_corner_inner" -z_seam_relative="False" -z_seam_type="sharpest_corner" -z_seam_x="190.0" -z_seam_y="900" -zig_zaggify_infill="False" -zig_zaggify_support="False" -machine_extruder_start_code="" -roofing_monotonic=0 diff --git a/software/Print3r/settings/slicer/cura5/fdmprinter.def.json b/software/Print3r/settings/slicer/cura5/fdmprinter.def.json deleted file mode 100644 index b8fd5fa7..00000000 --- a/software/Print3r/settings/slicer/cura5/fdmprinter.def.json +++ /dev/null @@ -1,8145 +0,0 @@ -{ - "name": "FDM Printer Base Description", - "version": 2, - "metadata": - { - "type": "machine", - "author": "Unknown", - "manufacturer": "Unknown", - "setting_version": 20, - "file_formats": "text/x-gcode;model/stl;application/x-wavefront-obj;application/x3g", - "visible": false, - "has_materials": true, - "has_variants": false, - "has_machine_quality": false, - "preferred_material": "generic_pla", - "preferred_quality_type": "normal", - "machine_extruder_trains": - { - "0": "fdmextruder" - }, - "supports_usb_connection": true, - "supports_network_connection": false - }, - "settings": - { - "machine_settings": - { - "label": "Machine", - "type": "category", - "description": "Machine specific settings", - "icon": "Printer", - "children": - { - "machine_name": - { - "label": "Machine Type", - "description": "The name of your 3D printer model.", - "default_value": "Unknown", - "type": "str", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_show_variants": - { - "label": "Show Machine Variants", - "description": "Whether to show the different variants of this machine, which are described in separate json files.", - "default_value": false, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_start_gcode": - { - "label": "Start G-code", - "description": "G-code commands to be executed at the very start - separated by \\n.", - "default_value": "G28 ;Home\nG1 Z15.0 F6000 ;Move the platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0", - "type": "str", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_end_gcode": - { - "label": "End G-code", - "description": "G-code commands to be executed at the very end - separated by \\n.", - "default_value": "M104 S0\nM140 S0\n;Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84", - "type": "str", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_guid": - { - "label": "Material GUID", - "description": "GUID of the material. This is set automatically.", - "default_value": "", - "type": "str", - "enabled": false - }, - "material_diameter": - { - "label": "Diameter", - "description": "Adjusts the diameter of the filament used. Match this value with the diameter of the used filament.", - "unit": "mm", - "type": "float", - "default_value": 2.85, - "minimum_value": "0.0001", - "minimum_value_warning": "0.4", - "maximum_value_warning": "3.5", - "enabled": "machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_bed_temp_wait": - { - "label": "Wait for Build Plate Heatup", - "description": "Whether to insert a command to wait until the build plate temperature is reached at the start.", - "default_value": true, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_print_temp_wait": - { - "label": "Wait for Nozzle Heatup", - "description": "Whether to wait until the nozzle temperature is reached at the start.", - "default_value": true, - "type": "bool", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_print_temp_prepend": - { - "label": "Include Material Temperatures", - "description": "Whether to include nozzle temperature commands at the start of the gcode. When the start_gcode already contains nozzle temperature commands Cura frontend will automatically disable this setting.", - "default_value": true, - "type": "bool", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_bed_temp_prepend": - { - "label": "Include Build Plate Temperature", - "description": "Whether to include build plate temperature commands at the start of the gcode. When the start_gcode already contains build plate temperature commands Cura frontend will automatically disable this setting.", - "default_value": true, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_width": - { - "label": "Machine Width", - "description": "The width (X-direction) of the printable area.", - "default_value": 100, - "type": "float", - "minimum_value": "0.001", - "maximum_value": "2000000", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_depth": - { - "label": "Machine Depth", - "description": "The depth (Y-direction) of the printable area.", - "default_value": 100, - "type": "float", - "minimum_value": "0.001", - "maximum_value": "2000000", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_height": - { - "label": "Machine Height", - "description": "The height (Z-direction) of the printable area.", - "default_value": 100, - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_shape": - { - "label": "Build Plate Shape", - "description": "The shape of the build plate without taking unprintable areas into account.", - "default_value": "rectangular", - "type": "enum", - "options": - { - "rectangular": "Rectangular", - "elliptic": "Elliptic" - }, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_buildplate_type": - { - "label": "Build Plate Material", - "description": "The material of the build plate installed on the printer.", - "default_value": "glass", - "type": "enum", - "options": - { - "glass": "Glass", - "aluminum": "Aluminum" - }, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_heated_bed": - { - "label": "Has Heated Build Plate", - "description": "Whether the machine has a heated build plate present.", - "default_value": false, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_heated_build_volume": - { - "label": "Has Build Volume Temperature Stabilization", - "description": "Whether the machine is able to stabilize the build volume temperature.", - "default_value": false, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_always_write_active_tool": - { - "label": "Always Write Active Tool", - "description": "Write active tool after sending temp commands to inactive tool. Required for Dual Extruder printing with Smoothie or other firmware with modal tool commands.", - "default_value": false, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_center_is_zero": - { - "label": "Is Center Origin", - "description": "Whether the X/Y coordinates of the zero position of the printer is at the center of the printable area.", - "default_value": false, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_extruder_count": - { - "label": "Number of Extruders", - "description": "Number of extruder trains. An extruder train is the combination of a feeder, bowden tube, and nozzle.", - "default_value": 1, - "minimum_value": "1", - "maximum_value": "16", - "type": "int", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "extruders_enabled_count": - { - "label": "Number of Extruders That Are Enabled", - "description": "Number of extruder trains that are enabled; automatically set in software", - "value": "machine_extruder_count", - "default_value": 1, - "minimum_value": "1", - "maximum_value": "16", - "type": "int", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_nozzle_tip_outer_diameter": - { - "label": "Outer Nozzle Diameter", - "description": "The outer diameter of the tip of the nozzle.", - "unit": "mm", - "default_value": 1, - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "machine_nozzle_head_distance": - { - "label": "Nozzle Length", - "description": "The height difference between the tip of the nozzle and the lowest part of the print head.", - "unit": "mm", - "default_value": 3, - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "machine_nozzle_expansion_angle": - { - "label": "Nozzle Angle", - "description": "The angle between the horizontal plane and the conical part right above the tip of the nozzle.", - "unit": "°", - "type": "int", - "default_value": 45, - "maximum_value": "89", - "minimum_value": "1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_heat_zone_length": - { - "label": "Heat Zone Length", - "description": "The distance from the tip of the nozzle in which heat from the nozzle is transferred to the filament.", - "unit": "mm", - "default_value": 16, - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "machine_nozzle_temp_enabled": - { - "label": "Enable Nozzle Temperature Control", - "description": "Whether to control temperature from Cura. Turn this off to control nozzle temperature from outside of Cura.", - "default_value": true, - "value": "machine_gcode_flavor != \"UltiGCode\"", - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "machine_nozzle_heat_up_speed": - { - "label": "Heat Up Speed", - "description": "The speed (°C/s) by which the nozzle heats up averaged over the window of normal printing temperatures and the standby temperature.", - "default_value": 2.0, - "unit": "°C/s", - "type": "float", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_nozzle_cool_down_speed": - { - "label": "Cool Down Speed", - "description": "The speed (°C/s) by which the nozzle cools down averaged over the window of normal printing temperatures and the standby temperature.", - "default_value": 2.0, - "unit": "°C/s", - "type": "float", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_min_cool_heat_time_window": - { - "label": "Minimal Time Standby Temperature", - "description": "The minimal time an extruder has to be inactive before the nozzle is cooled. Only when an extruder is not used for longer than this time will it be allowed to cool down to the standby temperature.", - "default_value": 50.0, - "unit": "s", - "type": "float", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_gcode_flavor": - { - "label": "G-code Flavor", - "description": "The type of g-code to be generated.", - "type": "enum", - "options": - { - "RepRap (Marlin/Sprinter)": "Marlin", - "RepRap (Volumetric)": "Marlin (Volumetric)", - "RepRap (RepRap)": "RepRap", - "UltiGCode": "Ultimaker 2", - "Griffin": "Griffin", - "Makerbot": "Makerbot", - "BFB": "Bits from Bytes", - "MACH3": "Mach3", - "Repetier": "Repetier" - }, - "default_value": "RepRap (Marlin/Sprinter)", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_firmware_retract": - { - "label": "Firmware Retraction", - "description": "Whether to use firmware retract commands (G10/G11) instead of using the E property in G1 commands to retract the material.", - "type": "bool", - "default_value": false, - "value": "machine_gcode_flavor == 'RepRap (Volumetric)' or machine_gcode_flavor == 'UltiGCode' or machine_gcode_flavor == 'BFB'", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_extruders_share_heater": - { - "label": "Extruders Share Heater", - "description": "Whether the extruders share a single heater rather than each extruder having its own heater.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_extruders_share_nozzle": - { - "label": "Extruders Share Nozzle", - "description": "Whether the extruders share a single nozzle rather than each extruder having its own nozzle. When set to true, it is expected that the printer-start gcode script properly sets up all extruders in an initial retraction state that is known and mutually compatible (either zero or one filament not retracted); in that case the initial retraction status is described, per extruder, by the 'machine_extruders_shared_nozzle_initial_retraction' parameter.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_extruders_shared_nozzle_initial_retraction": - { - "label": "Shared Nozzle Initial Retraction", - "description": "How much the filament of each extruder is assumed to have been retracted from the shared nozzle tip at the completion of the printer-start gcode script; the value should be equal to or greater than the length of the common part of the nozzle's ducts.", - "unit": "mm", - "default_value": 0, - "minimum_value": "0", - "type": "float", - "enabled": "machine_extruders_share_nozzle", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "machine_disallowed_areas": - { - "label": "Disallowed Areas", - "description": "A list of polygons with areas the print head is not allowed to enter.", - "type": "polygons", - "default_value": [], - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "nozzle_disallowed_areas": - { - "label": "Nozzle Disallowed Areas", - "description": "A list of polygons with areas the nozzle is not allowed to enter.", - "type": "polygons", - "default_value": [], - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_head_with_fans_polygon": - { - "label": "Machine Head & Fan Polygon", - "description": "The shape of the print head. These are coordinates relative to the position of the print head, which is usually the position of its first extruder. The dimensions left and in front of the print head must be negative coordinates.", - "type": "polygon", - "default_value": - [ - [ -20, 10 ], - [ 10, 10 ], - [ 10, -10 ], - [ -20, -10 ] - ], - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "gantry_height": - { - "label": "Gantry Height", - "description": "The height difference between the tip of the nozzle and the gantry system (X and Y axes).", - "default_value": 99999999999, - "value": "machine_height", - "type": "float", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_nozzle_id": - { - "label": "Nozzle ID", - "description": "The nozzle ID for an extruder train, such as \"AA 0.4\" and \"BB 0.8\".", - "type": "str", - "default_value": "unknown", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_nozzle_size": - { - "label": "Nozzle Diameter", - "description": "The inner diameter of the nozzle. Change this setting when using a non-standard nozzle size.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "minimum_value": "0.001", - "maximum_value_warning": "10", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_use_extruder_offset_to_offset_coords": - { - "label": "Offset with Extruder", - "description": "Apply the extruder offset to the coordinate system. Affects all extruders.", - "type": "bool", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "extruder_prime_pos_z": - { - "label": "Extruder Prime Z Position", - "description": "The Z coordinate of the position where the nozzle primes at the start of printing.", - "type": "float", - "unit": "mm", - "default_value": 0, - "minimum_value_warning": "0", - "maximum_value": "machine_height", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "extruder_prime_pos_abs": - { - "label": "Absolute Extruder Prime Position", - "description": "Make the extruder prime position absolute rather than relative to the last-known location of the head.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_max_feedrate_x": - { - "label": "Maximum Speed X", - "description": "The maximum speed for the motor of the X-direction.", - "unit": "mm/s", - "type": "float", - "default_value": 299792458000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_feedrate_y": - { - "label": "Maximum Speed Y", - "description": "The maximum speed for the motor of the Y-direction.", - "unit": "mm/s", - "type": "float", - "default_value": 299792458000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_feedrate_z": - { - "label": "Maximum Speed Z", - "description": "The maximum speed for the motor of the Z-direction.", - "unit": "mm/s", - "type": "float", - "default_value": 299792458000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_feedrate_e": - { - "label": "Maximum Speed E", - "description": "The maximum speed of the filament.", - "unit": "mm/s", - "type": "float", - "default_value": 299792458000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_acceleration_x": - { - "label": "Maximum Acceleration X", - "description": "Maximum acceleration for the motor of the X-direction", - "unit": "mm/s²", - "type": "float", - "default_value": 9000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_acceleration_y": - { - "label": "Maximum Acceleration Y", - "description": "Maximum acceleration for the motor of the Y-direction.", - "unit": "mm/s²", - "type": "float", - "default_value": 9000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_acceleration_z": - { - "label": "Maximum Acceleration Z", - "description": "Maximum acceleration for the motor of the Z-direction.", - "unit": "mm/s²", - "type": "float", - "default_value": 100, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_acceleration_e": - { - "label": "Maximum Filament Acceleration", - "description": "Maximum acceleration for the motor of the filament.", - "unit": "mm/s²", - "type": "float", - "default_value": 10000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_acceleration": - { - "label": "Default Acceleration", - "description": "The default acceleration of print head movement.", - "unit": "mm/s²", - "type": "float", - "default_value": 4000, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_jerk_xy": - { - "label": "Default X-Y Jerk", - "description": "Default jerk for movement in the horizontal plane.", - "unit": "mm/s", - "type": "float", - "default_value": 20.0, - "minimum_value": "0", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_jerk_z": - { - "label": "Default Z Jerk", - "description": "Default jerk for the motor of the Z-direction.", - "unit": "mm/s", - "type": "float", - "default_value": 0.4, - "minimum_value": "0", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_max_jerk_e": - { - "label": "Default Filament Jerk", - "description": "Default jerk for the motor of the filament.", - "unit": "mm/s", - "type": "float", - "default_value": 5.0, - "minimum_value": "0", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_steps_per_mm_x": - { - "label": "Steps per Millimeter (X)", - "description": "How many steps of the stepper motor will result in one millimeter of movement in the X direction.", - "type": "float", - "default_value": 50, - "minimum_value": "0.0000001", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_steps_per_mm_y": - { - "label": "Steps per Millimeter (Y)", - "description": "How many steps of the stepper motor will result in one millimeter of movement in the Y direction.", - "type": "float", - "default_value": 50, - "minimum_value": "0.0000001", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_steps_per_mm_z": - { - "label": "Steps per Millimeter (Z)", - "description": "How many steps of the stepper motor will result in one millimeter of movement in the Z direction.", - "type": "float", - "default_value": 50, - "minimum_value": "0.0000001", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_steps_per_mm_e": - { - "label": "Steps per Millimeter (E)", - "description": "How many steps of the stepper motors will result in moving the feeder wheel by one millimeter around its circumference.", - "type": "float", - "default_value": 1600, - "minimum_value": "0.0000001", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_endstop_positive_direction_x": - { - "label": "X Endstop in Positive Direction", - "description": "Whether the endstop of the X axis is in the positive direction (high X coordinate) or negative (low X coordinate).", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_endstop_positive_direction_y": - { - "label": "Y Endstop in Positive Direction", - "description": "Whether the endstop of the Y axis is in the positive direction (high Y coordinate) or negative (low Y coordinate).", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_endstop_positive_direction_z": - { - "label": "Z Endstop in Positive Direction", - "description": "Whether the endstop of the Z axis is in the positive direction (high Z coordinate) or negative (low Z coordinate).", - "type": "bool", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_minimum_feedrate": - { - "label": "Minimum Feedrate", - "description": "The minimal movement speed of the print head.", - "unit": "mm/s", - "type": "float", - "default_value": 0.0, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "machine_feeder_wheel_diameter": - { - "label": "Feeder Wheel Diameter", - "description": "The diameter of the wheel that drives the material in the feeder.", - "unit": "mm", - "type": "float", - "default_value": 10.0, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "machine_scale_fan_speed_zero_to_one": - { - "label": "Scale Fan Speed To 0-1", - "description": "Scale the fan speed to be between 0 and 1 instead of between 0 and 256.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - } - } - }, - "resolution": - { - "label": "Quality", - "type": "category", - "icon": "PrintQuality", - "description": "All settings that influence the resolution of the print. These settings have a large impact on the quality (and print time)", - "children": - { - "layer_height": - { - "label": "Layer Height", - "description": "The height of each layer in mm. Higher values produce faster prints in lower resolution, lower values produce slower prints in higher resolution.", - "unit": "mm", - "type": "float", - "default_value": 0.1, - "minimum_value": "0.001", - "minimum_value_warning": "0.04", - "maximum_value_warning": "0.8 * min(extruderValues('machine_nozzle_size'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "layer_height_0": - { - "label": "Initial Layer Height", - "description": "The height of the initial layer in mm. A thicker initial layer makes adhesion to the build plate easier.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "resolve": "min(extruderValues('layer_height_0'))", - "minimum_value": "0.001", - "minimum_value_warning": "0.1", - "maximum_value_warning": "0.8 * min(extruderValues('machine_nozzle_size'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "line_width": - { - "label": "Line Width", - "description": "Width of a single line. Generally, the width of each line should correspond to the width of the nozzle. However, slightly reducing this value could produce better prints.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "machine_nozzle_size", - "settable_per_mesh": true, - "children": - { - "wall_line_width": - { - "label": "Wall Line Width", - "description": "Width of a single wall line.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "value": "line_width", - "default_value": 0.4, - "type": "float", - "limit_to_extruder": "wall_0_extruder_nr if wall_x_extruder_nr == wall_0_extruder_nr else -1", - "settable_per_mesh": true, - "children": - { - "wall_line_width_0": - { - "label": "Outer Wall Line Width", - "description": "Width of the outermost wall line. By lowering this value, higher levels of detail can be printed.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "(0.1 + 0.4 * machine_nozzle_size) if inset_direction == \"outside_in\" else 0.1 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "value": "wall_line_width", - "type": "float", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "wall_line_width_x": - { - "label": "Inner Wall(s) Line Width", - "description": "Width of a single wall line for all wall lines except the outermost one.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "value": "wall_line_width", - "type": "float", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "skin_line_width": - { - "label": "Top/Bottom Line Width", - "description": "Width of a single top/bottom line.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "line_width", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "infill_line_width": - { - "label": "Infill Line Width", - "description": "Width of a single infill line.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "3 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "line_width", - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "skirt_brim_line_width": - { - "label": "Skirt/Brim Line Width", - "description": "Width of a single skirt or brim line.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "3 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "line_width", - "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable') or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled')", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_line_width": - { - "label": "Support Line Width", - "description": "Width of a single support structure line.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "3 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "enabled": "(support_enable or support_meshes_present)", - "value": "line_width", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_interface_line_width": - { - "label": "Support Interface Line Width", - "description": "Width of a single line of support roof or floor.", - "unit": "mm", - "default_value": 0.4, - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "type": "float", - "enabled": "(support_enable or support_meshes_present) and support_interface_enable", - "limit_to_extruder": "support_interface_extruder_nr", - "value": "line_width", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_line_width": - { - "label": "Support Roof Line Width", - "description": "Width of a single support roof line.", - "unit": "mm", - "default_value": 0.4, - "minimum_value": "0.001", - "minimum_value_warning": "0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "type": "float", - "enabled": "(support_enable or support_meshes_present) and support_roof_enable", - "limit_to_extruder": "support_roof_extruder_nr", - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_line_width')", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_bottom_line_width": - { - "label": "Support Floor Line Width", - "description": "Width of a single support floor line.", - "unit": "mm", - "default_value": 0.4, - "minimum_value": "0.001", - "minimum_value_warning": "0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "type": "float", - "enabled": "(support_enable or support_meshes_present) and support_bottom_enable", - "limit_to_extruder": "support_bottom_extruder_nr", - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_line_width')", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "prime_tower_line_width": - { - "label": "Prime Tower Line Width", - "description": "Width of a single prime tower line.", - "type": "float", - "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 0.4, - "value": "line_width", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "initial_layer_line_width_factor": - { - "label": "Initial Layer Line Width", - "description": "Multiplier of the line width on the first layer. Increasing this could improve bed adhesion.", - "type": "float", - "unit": "%", - "default_value": 100.0, - "minimum_value": "0.001", - "maximum_value_warning": "150", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "shell": - { - "label": "Walls", - "icon": "PrintShell", - "description": "Shell", - "type": "category", - "children": - { - "wall_extruder_nr": - { - "label": "Wall Extruder", - "description": "The extruder train used for printing the walls. This is used in multi-extrusion.", - "type": "optional_extruder", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1", - "children": - { - "wall_0_extruder_nr": - { - "label": "Outer Wall Extruder", - "description": "The extruder train used for printing the outer wall. This is used in multi-extrusion.", - "type": "optional_extruder", - "value": "wall_extruder_nr", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1" - }, - "wall_x_extruder_nr": - { - "label": "Inner Wall Extruder", - "description": "The extruder train used for printing the inner walls. This is used in multi-extrusion.", - "type": "optional_extruder", - "value": "wall_extruder_nr", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1" - } - } - }, - "wall_thickness": - { - "label": "Wall Thickness", - "description": "The thickness of the walls in the horizontal direction. This value divided by the wall line width defines the number of walls.", - "unit": "mm", - "default_value": 0.8, - "value": "wall_line_width_0 if magic_spiralize else 0.8", - "minimum_value": "0", - "minimum_value_warning": "line_width", - "maximum_value_warning": "10 * line_width", - "maximum_value": "999999 * line_width", - "type": "float", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true, - "children": - { - "wall_line_count": - { - "label": "Wall Line Count", - "description": "The number of walls. When calculated by the wall thickness, this value is rounded to a whole number.", - "default_value": 2, - "minimum_value": "0", - "minimum_value_warning": "1", - "maximum_value_warning": "10", - "maximum_value": "999999", - "type": "int", - "value": "1 if magic_spiralize else max(1, round((wall_thickness - wall_line_width_0) / wall_line_width_x) + 1) if wall_thickness != 0 else 0", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "wall_transition_length": - { - "label": "Wall Transition Length", - "description": "When transitioning between different numbers of walls as the part becomes thinner, a certain amount of space is allotted to split or join the wall lines.", - "type": "float", - "unit": "mm", - "default_value": 0.4, - "value": "line_width", - "minimum_value": "0.001", - "minimum_value_warning": "0.5 * line_width", - "maximum_value_warning": "2 * line_width", - "maximum_value": "min_bead_width * 3 * math.pi" - }, - "wall_distribution_count": - { - "label": "Wall Distribution Count", - "description": "The number of walls, counted from the center, over which the variation needs to be spread. Lower values mean that the outer walls don't change in width.", - "type": "int", - "maximum_value": "999999", - "default_value": 1, - "minimum_value": "1" - }, - "wall_transition_angle": - { - "label": "Wall Transitioning Threshold Angle", - "description": "When to create transitions between even and odd numbers of walls. A wedge shape with an angle greater than this setting will not have transitions and no walls will be printed in the center to fill the remaining space. Reducing this setting reduces the number and length of these center walls, but may leave gaps or overextrude.", - "type": "float", - "unit": "°", - "default_value": 10, - "minimum_value": "1", - "minimum_value_warning": "5", - "maximum_value_warning": "50", - "maximum_value": "59" - }, - "wall_transition_filter_distance": - { - "label": "Wall Transitioning Filter Distance", - "description": "If it would be transitioning back and forth between different numbers of walls in quick succession, don't transition at all. Remove transitions if they are closer together than this distance.", - "type": "float", - "unit": "mm", - "value": "100", - "enabled": false, - "default_value": 100, - "minimum_value": "wall_transition_length", - "minimum_value_warning": "math.cos(wall_transition_angle / 180 * math.pi) * wall_line_width_x", - "maximum_value": "999999" - }, - "wall_transition_filter_deviation": - { - "label": "Wall Transitioning Filter Margin", - "description": "Prevent transitioning back and forth between one extra wall and one less. This margin extends the range of line widths which follow to [Minimum Wall Line Width - Margin, 2 * Minimum Wall Line Width + Margin]. Increasing this margin reduces the number of transitions, which reduces the number of extrusion starts/stops and travel time. However, large line width variation can lead to under- or overextrusion problems.", - "type": "float", - "unit": "mm", - "default_value": 0.1, - "value": ".25 * machine_nozzle_size", - "minimum_value": "0", - "minimum_value_warning": ".01", - "maximum_value_warning": "machine_nozzle_size" - }, - "wall_0_wipe_dist": - { - "label": "Outer Wall Wipe Distance", - "description": "Distance of a travel move inserted after the outer wall, to hide the Z seam better.", - "unit": "mm", - "type": "float", - "default_value": 0.2, - "value": "machine_nozzle_size / 2", - "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size * 2", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "wall_0_inset": - { - "label": "Outer Wall Inset", - "description": "Inset applied to the path of the outer wall. If the outer wall is smaller than the nozzle, and printed after the inner walls, use this offset to get the hole in the nozzle to overlap with the inner walls instead of the outside of the model.", - "unit": "mm", - "type": "float", - "default_value": 0.0, - "value": "(machine_nozzle_size - wall_line_width_0) / 2 if (wall_line_width_0 < machine_nozzle_size and inset_direction != \"outside_in\") else 0", - "minimum_value_warning": "0", - "maximum_value_warning": "machine_nozzle_size", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "optimize_wall_printing_order": - { - "label": "Optimize Wall Printing Order", - "description": "Optimize the order in which walls are printed so as to reduce the number of retractions and the distance travelled. Most parts will benefit from this being enabled but some may actually take longer so please compare the print time estimates with and without optimization. First layer is not optimized when choosing brim as build plate adhesion type.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, - "inset_direction": - { - "label": "Wall Ordering", - "description": "Determines the order in which walls are printed. Printing outer walls earlier helps with dimensional accuracy, as faults from inner walls cannot propagate to the outside. However printing them later allows them to stack better when overhangs are printed. When there is an uneven amount of total innner walls, the 'center last line' is always printed last.", - "type": "enum", - "options": - { - "inside_out": "Inside To Outside", - "outside_in": "Outside To Inside" - }, - "default_value": "inside_out", - "settable_per_mesh": true - }, - "alternate_extra_perimeter": - { - "label": "Alternate Extra Wall", - "description": "Prints an extra wall at every other layer. This way infill gets caught between these extra walls, resulting in stronger prints.", - "type": "bool", - "default_value": false, - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "min_wall_line_width": - { - "label": "Minimum Wall Line Width", - "description": "For thin structures around once or twice the nozzle size, the line widths need to be altered to adhere to the thickness of the model. This setting controls the minimum line width allowed for the walls. The minimum line widths inherently also determine the maximum line widths, since we transition from N to N+1 walls at some geometry thickness where the N walls are wide and the N+1 walls are narrow. The widest possible wall line is twice the Minimum Wall Line Width.", - "unit": "mm", - "minimum_value_warning": ".5 * max(wall_line_width_0, wall_line_width_x)", - "maximum_value_warning": "min(wall_line_width_0, wall_line_width_x)", - "default_value": 0.3, - "value": "machine_nozzle_size * .85", - "type": "float", - "settable_per_mesh": true, - "children": - { - "min_even_wall_line_width": - { - "label": "Minimum Even Wall Line Width", - "description": "The minimum line width for normal polygonal walls. This setting determines at which model thickness we switch from printing a single thin wall line, to printing two wall lines. A higher Minimum Even Wall Line Width leads to a higher maximum odd wall line width. The maximum even wall line width is calculated as Outer Wall Line Width + 0.5 * Minimum Odd Wall Line Width.", - "unit": "mm", - "minimum_value_warning": ".5 * max(wall_line_width_0, wall_line_width_x)", - "maximum_value_warning": "min(wall_line_width_0, wall_line_width_x)", - "default_value": 0.3, - "value": "min_wall_line_width", - "type": "float", - "settable_per_mesh": true - }, - "min_odd_wall_line_width": - { - "label": "Minimum Odd Wall Line Width", - "description": "The minimum line width for middle line gap filler polyline walls. This setting determines at which model thickness we switch from printing two wall lines, to printing two outer walls and a single central wall in the middle. A higher Minimum Odd Wall Line Width leads to a higher maximum even wall line width. The maximum odd wall line width is calculated as 2 * Minimum Even Wall Line Width.", - "unit": "mm", - "minimum_value_warning": ".5 * max(wall_line_width_0, wall_line_width_x)", - "maximum_value_warning": "min(wall_line_width_0, wall_line_width_x)", - "default_value": 0.3, - "value": "min_wall_line_width", - "type": "float", - "settable_per_mesh": true - } - } - }, - "fill_outline_gaps": - { - "label": "Print Thin Walls", - "description": "Print pieces of the model which are horizontally thinner than the nozzle size.", - "type": "bool", - "default_value": true, - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "min_feature_size": - { - "label": "Minimum Feature Size", - "description": "Minimum thickness of thin features. Model features that are thinner than this value will not be printed, while features thicker than the Minimum Feature Size will be widened to the Minimum Wall Line Width.", - "unit": "mm", - "default_value": 0.1, - "value": "wall_line_width_0 / 4", - "minimum_value": "0", - "maximum_value": "wall_line_width_0", - "type": "float", - "limit_to_extruder": "wall_0_extruder_nr", - "enabled": "fill_outline_gaps", - "settable_per_mesh": true - }, - "min_bead_width": - { - "label": "Minimum Thin Wall Line Width", - "description": "Width of the wall that will replace thin features (according to the Minimum Feature Size) of the model. If the Minimum Wall Line Width is thinner than the thickness of the feature, the wall will become as thick as the feature itself.", - "unit": "mm", - "value": "min_wall_line_width", - "default_value": 0.2, - "minimum_value": "0.001", - "minimum_value_warning": "min_feature_size", - "maximum_value_warning": "wall_line_width_0", - "type": "float", - "limit_to_extruder": "wall_0_extruder_nr", - "enabled": "fill_outline_gaps", - "settable_per_mesh": true - }, - "xy_offset": - { - "label": "Horizontal Expansion", - "description": "Amount of offset applied to all polygons in each layer. Positive values can compensate for too big holes; negative values can compensate for too small holes.", - "unit": "mm", - "type": "float", - "minimum_value_warning": "-1", - "maximum_value_warning": "1", - "default_value": 0, - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "xy_offset_layer_0": - { - "label": "Initial Layer Horizontal Expansion", - "description": "Amount of offset applied to all polygons in the first layer. A negative value can compensate for squishing of the first layer known as \"elephant's foot\".", - "unit": "mm", - "type": "float", - "minimum_value_warning": "-1", - "maximum_value_warning": "1", - "default_value": 0, - "value": "xy_offset", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "hole_xy_offset": - { - "label": "Hole Horizontal Expansion", - "description": "Amount of offset applied to all holes in each layer. Positive values increase the size of the holes, negative values reduce the size of the holes.", - "unit": "mm", - "type": "float", - "minimum_value_warning": "-1", - "maximum_value_warning": "1", - "default_value": 0, - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "z_seam_type": - { - "label": "Z Seam Alignment", - "description": "Starting point of each path in a layer. When paths in consecutive layers start at the same point a vertical seam may show on the print. When aligning these near a user specified location, the seam is easiest to remove. When placed randomly the inaccuracies at the paths' start will be less noticeable. When taking the shortest path the print will be quicker.", - "type": "enum", - "options": - { - "back": "User Specified", - "shortest": "Shortest", - "random": "Random", - "sharpest_corner": "Sharpest Corner" - }, - "default_value": "sharpest_corner", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "z_seam_position": - { - "label": "Z Seam Position", - "description": "The position near where to start printing each part in a layer.", - "type": "enum", - "options": - { - "backleft": "Back Left", - "back": "Back", - "backright": "Back Right", - "right": "Right", - "frontright": "Front Right", - "front": "Front", - "frontleft": "Front Left", - "left": "Left" - }, - "enabled": "z_seam_type == 'back'", - "default_value": "back", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true, - "children": - { - "z_seam_x": - { - "label": "Z Seam X", - "description": "The X coordinate of the position near where to start printing each part in a layer.", - "unit": "mm", - "type": "float", - "default_value": 100.0, - "value": "(0 if (z_seam_position == 'frontleft' or z_seam_position == 'left' or z_seam_position == 'backleft') else machine_width / 2 if (z_seam_position == 'front' or z_seam_position == 'back') else machine_width) - (machine_width / 2 if z_seam_relative or machine_center_is_zero else 0)", - "enabled": "z_seam_type == 'back'", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "z_seam_y": - { - "label": "Z Seam Y", - "description": "The Y coordinate of the position near where to start printing each part in a layer.", - "unit": "mm", - "type": "float", - "default_value": 100.0, - "value": "(0 if (z_seam_position == 'frontleft' or z_seam_position == 'front' or z_seam_position == 'frontright') else machine_depth / 2 if (z_seam_position == 'left' or z_seam_position == 'right') else machine_depth) - (machine_depth / 2 if z_seam_relative or machine_center_is_zero else 0)", - "enabled": "z_seam_type == 'back'", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - } - } - }, - "z_seam_corner": - { - "label": "Seam Corner Preference", - "description": "Control whether corners on the model outline influence the position of the seam. None means that corners have no influence on the seam position. Hide Seam makes the seam more likely to occur on an inside corner. Expose Seam makes the seam more likely to occur on an outside corner. Hide or Expose Seam makes the seam more likely to occur at an inside or outside corner. Smart Hiding allows both inside and outside corners, but chooses inside corners more frequently, if appropriate.", - "type": "enum", - "options": - { - "z_seam_corner_none": "None", - "z_seam_corner_inner": "Hide Seam", - "z_seam_corner_outer": "Expose Seam", - "z_seam_corner_any": "Hide or Expose Seam", - "z_seam_corner_weighted": "Smart Hiding" - }, - "default_value": "z_seam_corner_inner", - "enabled": "z_seam_type != 'random'", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "z_seam_relative": - { - "label": "Z Seam Relative", - "description": "When enabled, the z seam coordinates are relative to each part's centre. When disabled, the coordinates define an absolute position on the build plate.", - "unit": "mm", - "type": "bool", - "default_value": false, - "enabled": "z_seam_type == 'back'", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - } - } - }, - "top_bottom": - { - "label": "Top/Bottom", - "icon": "PrintTopBottom", - "description": "Top/Bottom", - "type": "category", - "children": - { - "roofing_extruder_nr": - { - "label": "Top Surface Skin Extruder", - "description": "The extruder train used for printing the top most skin. This is used in multi-extrusion.", - "type": "optional_extruder", - "default_value": "-1", - "value": "top_bottom_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1 and max(extruderValues('roofing_layer_count')) > 0 and max(extruderValues('top_layers')) > 0" - }, - "roofing_layer_count": - { - "label": "Top Surface Skin Layers", - "description": "The number of top most skin layers. Usually only one top most layer is sufficient to generate higher quality top surfaces.", - "default_value": 0, - "minimum_value": "0", - "maximum_value_warning": "top_layers - 1", - "type": "int", - "maximum_value": "999999", - "value": "0", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "top_layers > 0", - "children": - { - "roofing_line_width": - { - "label": "Top Surface Skin Line Width", - "description": "Width of a single line of the areas at the top of the print.", - "unit": "mm", - "minimum_value": "0.001", - "minimum_value_warning": "0.1 + 0.4 * machine_nozzle_size", - "maximum_value_warning": "2 * machine_nozzle_size", - "default_value": 0.4, - "type": "float", - "value": "skin_line_width", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0" - }, - "roofing_pattern": - { - "label": "Top Surface Skin Pattern", - "description": "The pattern of the top most layers.", - "type": "enum", - "options": - { - "lines": "Lines", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "lines", - "value": "top_bottom_pattern", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0" - }, - "roofing_monotonic": - { - "label": "Monotonic Top Surface Order", - "description": "Print top surface lines in an ordering that causes them to always overlap with adjacent lines in a single direction. This takes slightly more time to print, but makes flat surfaces look more consistent.", - "type": "bool", - "value": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0 and roofing_pattern != 'concentric'", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true - }, - "roofing_angles": - { - "label": "Top Surface Skin Line Directions", - "description": "A list of integer line directions to use when the top surface skin layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees).", - "type": "[int]", - "default_value": "[ ]", - "value": "skin_angles", - "enabled": "roofing_pattern != 'concentric' and roofing_layer_count > 0 and top_layers > 0", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true - } - } - }, - "top_bottom_extruder_nr": - { - "label": "Top/Bottom Extruder", - "description": "The extruder train used for printing the top and bottom skin. This is used in multi-extrusion.", - "type": "optional_extruder", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1" - }, - "top_bottom_thickness": - { - "label": "Top/Bottom Thickness", - "description": "The thickness of the top/bottom layers in the print. This value divided by the layer height defines the number of top/bottom layers.", - "unit": "mm", - "default_value": 0.8, - "minimum_value": "0", - "minimum_value_warning": "0.6", - "maximum_value": "machine_height", - "type": "float", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "top_thickness": - { - "label": "Top Thickness", - "description": "The thickness of the top layers in the print. This value divided by the layer height defines the number of top layers.", - "unit": "mm", - "default_value": 0.8, - "minimum_value": "0", - "minimum_value_warning": "0.2 + resolveOrValue('layer_height')", - "maximum_value": "machine_height", - "type": "float", - "value": "top_bottom_thickness", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "top_layers": - { - "label": "Top Layers", - "description": "The number of top layers. When calculated by the top thickness, this value is rounded to a whole number.", - "default_value": 8, - "minimum_value": "0", - "maximum_value_warning": "100", - "maximum_value": "999999", - "type": "int", - "minimum_value_warning": "2", - "value": "0 if infill_sparse_density == 100 else math.ceil(round(top_thickness / resolveOrValue('layer_height'), 4))", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - }, - "bottom_thickness": - { - "label": "Bottom Thickness", - "description": "The thickness of the bottom layers in the print. This value divided by the layer height defines the number of bottom layers.", - "unit": "mm", - "default_value": 0.6, - "minimum_value": "0", - "minimum_value_warning": "0.2 + resolveOrValue('layer_height')", - "type": "float", - "value": "top_bottom_thickness", - "maximum_value": "machine_height", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "bottom_layers": - { - "label": "Bottom Layers", - "description": "The number of bottom layers. When calculated by the bottom thickness, this value is rounded to a whole number.", - "minimum_value": "0", - "minimum_value_warning": "2", - "default_value": 6, - "maximum_value": "999999", - "type": "int", - "value": "999999 if infill_sparse_density == 100 and not magic_spiralize else math.ceil(round(bottom_thickness / resolveOrValue('layer_height'), 4))", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "initial_bottom_layers": - { - "label": "Initial Bottom Layers", - "description": "The number of initial bottom layers, from the build-plate upwards. When calculated by the bottom thickness, this value is rounded to a whole number.", - "minimum_value": "0", - "minimum_value_warning": "2", - "maximum_value": "999999", - "default_value": 6, - "type": "int", - "value": "bottom_layers", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - } - } - }, - "top_bottom_pattern": - { - "label": "Top/Bottom Pattern", - "description": "The pattern of the top/bottom layers.", - "type": "enum", - "options": - { - "lines": "Lines", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "lines", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "top_bottom_pattern_0": - { - "label": "Bottom Pattern Initial Layer", - "description": "The pattern on the bottom of the print on the first layer.", - "type": "enum", - "options": - { - "lines": "Lines", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "lines", - "enabled": "top_layers > 0 or bottom_layers > 0", - "value": "top_bottom_pattern", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "connect_skin_polygons": - { - "label": "Connect Top/Bottom Polygons", - "description": "Connect top/bottom skin paths where they run next to each other. For the concentric pattern enabling this setting greatly reduces the travel time, but because the connections can happen midway over infill this feature can reduce the top surface quality.", - "type": "bool", - "default_value": false, - "enabled": "((top_layers > 0 or bottom_layers > 0) and top_bottom_pattern == 'concentric') or (initial_bottom_layers > 0 and top_bottom_pattern_0 == 'concentric') or (roofing_layer_count > 0 and roofing_pattern == 'concentric')", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "skin_monotonic": - { - "label": "Monotonic Top/Bottom Order", - "description": "Print top/bottom lines in an ordering that causes them to always overlap with adjacent lines in a single direction. This takes slightly more time to print, but makes flat surfaces look more consistent.", - "type": "bool", - "default_value": false, - "enabled": "(top_layers > 0 or bottom_layers > 0) and (top_bottom_pattern != 'concentric' or top_bottom_pattern_0 != 'concentric')", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "skin_angles": - { - "label": "Top/Bottom Line Directions", - "description": "A list of integer line directions to use when the top/bottom layers use the lines or zig zag pattern. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees).", - "type": "[int]", - "default_value": "[ ]", - "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "skin_no_small_gaps_heuristic": - { - "label": "No Skin in Z Gaps", - "description": "When the model has small vertical gaps of only a few layers, there should normally be skin around those layers in the narrow space. Enable this setting to not generate skin if the vertical gap is very small. This improves printing time and slicing time, but technically leaves infill exposed to the air.", - "type": "bool", - "default_value": false, - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "skin_outline_count": - { - "label": "Extra Skin Wall Count", - "description": "Replaces the outermost part of the top/bottom pattern with a number of concentric lines. Using one or two lines improves roofs that start on infill material.", - "value": "0 if top_bottom_pattern == 'concentric' and top_bottom_pattern_0 == 'concentric' and roofing_layer_count <= 0 else 1", - "default_value": 1, - "minimum_value": "0", - "maximum_value_warning": "10", - "maximum_value": "999999", - "type": "int", - "enabled": "(top_layers > 0 or bottom_layers > 0) and (top_bottom_pattern != 'concentric' or top_bottom_pattern_0 != 'concentric' or (roofing_layer_count > 0 and roofing_pattern != 'concentric'))", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_enabled": - { - "label": "Enable Ironing", - "description": "Go over the top surface one additional time, but this time extruding very little material. This is meant to melt the plastic on top further, creating a smoother surface. The pressure in the nozzle chamber is kept high so that the creases in the surface are filled with material.", - "type": "bool", - "default_value": false, - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_only_highest_layer": - { - "label": "Iron Only Highest Layer", - "description": "Only perform ironing on the very last layer of the mesh. This saves time if the lower layers don't need a smooth surface finish.", - "type": "bool", - "default_value": false, - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_pattern": - { - "label": "Ironing Pattern", - "description": "The pattern to use for ironing top surfaces.", - "type": "enum", - "options": - { - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "zigzag", - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_monotonic": - { - "label": "Monotonic Ironing Order", - "description": "Print ironing lines in an ordering that causes them to always overlap with adjacent lines in a single direction. This takes slightly more time to print, but makes flat surfaces look more consistent.", - "type": "bool", - "default_value": false, - "enabled": "ironing_enabled and ironing_pattern != 'concentric'", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_line_spacing": - { - "label": "Ironing Line Spacing", - "description": "The distance between the lines of ironing.", - "type": "float", - "unit": "mm", - "default_value": 0.1, - "minimum_value": "0.001", - "maximum_value_warning": "machine_nozzle_tip_outer_diameter", - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_flow": - { - "label": "Ironing Flow", - "description": "The amount of material, relative to a normal skin line, to extrude during ironing. Keeping the nozzle filled helps filling some of the crevices of the top surface, but too much results in overextrusion and blips on the side of the surface.", - "type": "float", - "unit": "%", - "default_value": 10.0, - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "ironing_inset": - { - "label": "Ironing Inset", - "description": "A distance to keep from the edges of the model. Ironing all the way to the edge of the mesh may result in a jagged edge on your print.", - "type": "float", - "unit": "mm", - "default_value": 0.35, - "value": "wall_line_width_0 / 2 + (ironing_line_spacing - skin_line_width * (1.0 + ironing_flow / 100) / 2 if ironing_pattern == 'concentric' else skin_line_width * (1.0 - ironing_flow / 100) / 2)", - "minimum_value_warning": "0", - "maximum_value_warning": "wall_line_width_0", - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "speed_ironing": - { - "label": "Ironing Speed", - "description": "The speed at which to pass over the top surface.", - "type": "float", - "unit": "mm/s", - "default_value": 20.0, - "value": "speed_topbottom * 20 / 30", - "minimum_value": "0.001", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "100", - "enabled": "ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "acceleration_ironing": - { - "label": "Ironing Acceleration", - "description": "The acceleration with which ironing is performed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_topbottom", - "enabled": "resolveOrValue('acceleration_enabled') and ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "jerk_ironing": - { - "label": "Ironing Jerk", - "description": "The maximum instantaneous velocity change while performing ironing.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_topbottom", - "enabled": "resolveOrValue('jerk_enabled') and ironing_enabled", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "skin_overlap": - { - "label": "Skin Overlap Percentage", - "description": "Adjust the amount of overlap between the walls and (the endpoints of) the skin-centerlines, as a percentage of the line widths of the skin lines and the innermost wall. A slight overlap allows the walls to connect firmly to the skin. Note that, given an equal skin and wall line-width, any percentage over 50% may already cause any skin to go past the wall, because at that point the position of the nozzle of the skin-extruder may already reach past the middle of the wall.", - "unit": "%", - "type": "float", - "default_value": 5, - "minimum_value_warning": "-50", - "maximum_value_warning": "100", - "value": "5 if top_bottom_pattern != 'concentric' else 0", - "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "skin_overlap_mm": - { - "label": "Skin Overlap", - "description": "Adjust the amount of overlap between the walls and (the endpoints of) the skin-centerlines. A slight overlap allows the walls to connect firmly to the skin. Note that, given an equal skin and wall line-width, any value over half the width of the wall may already cause any skin to go past the wall, because at that point the position of the nozzle of the skin-extruder may already reach past the middle of the wall.", - "unit": "mm", - "type": "float", - "default_value": 0.02, - "minimum_value_warning": "-0.5 * machine_nozzle_size", - "maximum_value_warning": "machine_nozzle_size", - "value": "0.5 * (skin_line_width + (wall_line_width_x if wall_line_count > 1 else wall_line_width_0)) * skin_overlap / 100 if top_bottom_pattern != 'concentric' else 0", - "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'", - "settable_per_mesh": true - } - } - }, - "skin_preshrink": - { - "label": "Skin Removal Width", - "description": "The largest width of skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top/bottom skin at slanted surfaces in the model.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", - "minimum_value": "0", - "maximum_value_warning": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "top_skin_preshrink": - { - "label": "Top Skin Removal Width", - "description": "The largest width of top skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing top skin at slanted surfaces in the model.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "skin_preshrink", - "maximum_value_warning": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", - "minimum_value": "0", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "bottom_skin_preshrink": - { - "label": "Bottom Skin Removal Width", - "description": "The largest width of bottom skin areas which are to be removed. Every skin area smaller than this value will disappear. This can help in limiting the amount of time and material spent on printing bottom skin at slanted surfaces in the model.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "skin_preshrink", - "maximum_value_warning": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", - "minimum_value": "0", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - }, - "expand_skins_expand_distance": - { - "label": "Skin Expand Distance", - "description": "The distance the skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on neighboring layers adhere better to the skin. Lower values save amount of material used.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "wall_line_width_0 + (wall_line_count - 1) * wall_line_width_x", - "minimum_value": "-skin_preshrink", - "limit_to_extruder": "top_bottom_extruder_nr", - "enabled": "top_layers > 0 or bottom_layers > 0", - "settable_per_mesh": true, - "children": - { - "top_skin_expand_distance": - { - "label": "Top Skin Expand Distance", - "description": "The distance the top skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the walls on the layer above adhere better to the skin. Lower values save amount of material used.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "expand_skins_expand_distance", - "minimum_value": "-top_skin_preshrink", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "bottom_skin_expand_distance": - { - "label": "Bottom Skin Expand Distance", - "description": "The distance the bottom skins are expanded into the infill. Higher values makes the skin attach better to the infill pattern and makes the skin adhere better to the walls on the layer below. Lower values save amount of material used.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "expand_skins_expand_distance", - "minimum_value": "-bottom_skin_preshrink", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - }, - "max_skin_angle_for_expansion": - { - "label": "Maximum Skin Angle for Expansion", - "description": "Top and/or bottom surfaces of your object with an angle larger than this setting, won't have their top/bottom skin expanded. This avoids expanding the narrow skin areas that are created when the model surface has a near vertical slope. An angle of 0° is horizontal and will cause no skin to be expanded, while an angle of 90° is vertical and will cause all skin to be expanded.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "2", - "maximum_value": "90", - "default_value": 90, - "enabled": "(top_layers > 0 or bottom_layers > 0) and (top_skin_expand_distance > 0 or bottom_skin_expand_distance > 0)", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true, - "children": - { - "min_skin_width_for_expansion": - { - "label": "Minimum Skin Width for Expansion", - "description": "Skin areas narrower than this are not expanded. This avoids expanding the narrow skin areas that are created when the model surface has a slope close to the vertical.", - "unit": "mm", - "type": "float", - "default_value": 0, - "value": "top_layers * layer_height / math.tan(math.radians(max_skin_angle_for_expansion))", - "minimum_value": "0", - "enabled": "(top_layers > 0 or bottom_layers > 0) and (top_skin_expand_distance > 0 or bottom_skin_expand_distance > 0)", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - } - } - } - } - }, - "infill": - { - "label": "Infill", - "icon": "Infill1", - "description": "Infill", - "type": "category", - "children": - { - "infill_extruder_nr": - { - "label": "Infill Extruder", - "description": "The extruder train used for printing infill. This is used in multi-extrusion.", - "type": "optional_extruder", - "default_value": "-1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true, - "settable_globally": true, - "enabled": "extruders_enabled_count > 1" - }, - "infill_sparse_density": - { - "label": "Infill Density", - "description": "Adjusts the density of infill of the print.", - "unit": "%", - "type": "float", - "default_value": 20, - "minimum_value": "0", - "maximum_value_warning": "100", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true, - "children": - { - "infill_line_distance": - { - "label": "Infill Line Distance", - "description": "Distance between the printed infill lines. This setting is calculated by the infill density and the infill line width.", - "unit": "mm", - "type": "float", - "default_value": 2, - "minimum_value": "0", - "minimum_value_warning": "infill_line_width", - "value": "0 if infill_sparse_density == 0 else (infill_line_width * 100) / infill_sparse_density * (2 if infill_pattern == 'grid' else (3 if infill_pattern == 'triangles' or infill_pattern == 'trihexagon' or infill_pattern == 'cubic' or infill_pattern == 'cubicsubdiv' else (2 if infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' else (1 if infill_pattern == 'cross' or infill_pattern == 'cross_3d' else (1.6 if infill_pattern == 'lightning' else 1)))))", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - } - } - }, - "infill_pattern": - { - "label": "Infill Pattern", - "description": "The pattern of the infill material of the print. The line and zig zag infill swap direction on alternate layers, reducing material cost. The grid, triangle, tri-hexagon, cubic, octet, quarter cubic, cross and concentric patterns are fully printed every layer. Gyroid, cubic, quarter cubic and octet infill change with every layer to provide a more equal distribution of strength over each direction. Lightning infill tries to minimize the infill, by only supporting the ceiling of the object.", - "type": "enum", - "options": - { - "grid": "Grid", - "lines": "Lines", - "triangles": "Triangles", - "trihexagon": "Tri-Hexagon", - "cubic": "Cubic", - "cubicsubdiv": "Cubic Subdivision", - "tetrahedral": "Octet", - "quarter_cubic": "Quarter Cubic", - "concentric": "Concentric", - "zigzag": "Zig Zag", - "cross": "Cross", - "cross_3d": "Cross 3D", - "gyroid": "Gyroid", - "lightning": "Lightning" - }, - "default_value": "grid", - "enabled": "infill_line_distance > 0", - "value": "'lines' if infill_sparse_density > 25 else 'grid'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "zig_zaggify_infill": - { - "label": "Connect Infill Lines", - "description": "Connect the ends where the infill pattern meets the inner wall using a line which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduce the effects of infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used.", - "type": "bool", - "default_value": false, - "value": "infill_pattern == 'cross' or infill_pattern == 'cross_3d'", - "enabled": "infill_pattern == 'lines' or infill_pattern == 'grid' or infill_pattern == 'triangles' or infill_pattern == 'trihexagon' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_pattern == 'gyroid'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "connect_infill_polygons": - { - "label": "Connect Infill Polygons", - "description": "Connect infill paths where they run next to each other. For infill patterns which consist of several closed polygons, enabling this setting greatly reduces the travel time.", - "type": "bool", - "default_value": true, - "value": "(infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_multiplier % 2 == 0) and infill_wall_line_count > 0", - "enabled": "infill_pattern != 'lightning' and infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_pattern == 'concentric' or infill_multiplier % 2 == 0 or infill_wall_line_count > 1", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_angles": - { - "label": "Infill Line Directions", - "description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the traditional default angles (45 and 135 degrees for the lines and zig zag patterns and 45 degrees for all other patterns).", - "type": "[int]", - "default_value": "[ ]", - "enabled": "infill_pattern not in ('concentric', 'cross', 'cross_3d', 'gyroid', 'lightning') and infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_offset_x": - { - "label": "Infill X Offset", - "description": "The infill pattern is moved this distance along the X axis.", - "unit": "mm", - "type": "float", - "default_value": 0, - "enabled": "infill_pattern != 'lightning' and infill_pattern == 'grid' or infill_pattern == 'lines' or infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'zigzag'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_offset_y": - { - "label": "Infill Y Offset", - "description": "The infill pattern is moved this distance along the Y axis.", - "unit": "mm", - "type": "float", - "default_value": 0, - "enabled": "infill_pattern != 'lightning' and infill_pattern == 'grid' or infill_pattern == 'lines' or infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' or infill_pattern == 'zigzag'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_randomize_start_location": - { - "label": "Randomize Infill Start", - "description": "Randomize which infill line is printed first. This prevents one segment becoming the strongest, but it does so at the cost of an additional travel move.", - "type": "bool", - "default_value": false, - "warning_value": "True if infill_pattern not in ('grid', 'triangles', 'trihexagon', 'cubic', 'cubicsubdiv', 'tetrahedral', 'quarter_cubic') else None", - "enabled": "not (infill_pattern == 'lightning' or (infill_pattern == 'cross' and connect_infill_polygons) or infill_pattern == 'concentric')", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_multiplier": - { - "label": "Infill Line Multiplier", - "description": "Convert each infill line to this many lines. The extra lines do not cross over each other, but avoid each other. This makes the infill stiffer, but increases print time and material usage.", - "default_value": 1, - "type": "int", - "maximum_value": "999999", - "minimum_value": "1", - "maximum_value_warning": "infill_line_distance / infill_line_width", - "enabled": "infill_sparse_density > 0 and infill_pattern != 'zigzag' and (gradual_infill_steps == 0 or not zig_zaggify_infill)", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_wall_line_count": - { - "label": "Extra Infill Wall Count", - "description": "Add extra walls around the infill area. Such walls can make top/bottom skin lines sag down less which means you need less top/bottom skin layers for the same quality at the cost of some extra material.\nThis feature can combine with the Connect Infill Polygons to connect all the infill into a single extrusion path without the need for travels or retractions if configured right.", - "default_value": 0, - "type": "int", - "minimum_value": "0", - "maximum_value": "999999", - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "sub_div_rad_add": - { - "label": "Cubic Subdivision Shell", - "description": "An addition to the radius from the center of each cube to check for the boundary of the model, as to decide whether this cube should be subdivided. Larger values lead to a thicker shell of small cubes near the boundary of the model.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "value": "wall_line_width_x", - "minimum_value_warning": "-1 * infill_line_distance", - "maximum_value_warning": "5 * infill_line_distance", - "enabled": "infill_sparse_density > 0 and infill_pattern == 'cubicsubdiv'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_overlap": - { - "label": "Infill Overlap Percentage", - "description": "The amount of overlap between the infill and the walls as a percentage of the infill line width. A slight overlap allows the walls to connect firmly to the infill.", - "unit": "%", - "type": "float", - "default_value": 10, - "value": "10 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0", - "minimum_value_warning": "-50", - "maximum_value_warning": "100", - "enabled": "infill_sparse_density > 0 and infill_pattern != 'concentric'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true, - "children": - { - "infill_overlap_mm": - { - "label": "Infill Overlap", - "description": "The amount of overlap between the infill and the walls. A slight overlap allows the walls to connect firmly to the infill.", - "unit": "mm", - "type": "float", - "default_value": 0.04, - "minimum_value_warning": "-0.5 * machine_nozzle_size", - "maximum_value_warning": "machine_nozzle_size", - "value": "0.5 * (infill_line_width + (wall_line_width_x if wall_line_count > 1 else wall_line_width_0)) * infill_overlap / 100 if infill_sparse_density < 95 and infill_pattern != 'concentric' else 0", - "enabled": "infill_sparse_density > 0 and infill_pattern != 'concentric'", - "settable_per_mesh": true - } - } - }, - "infill_wipe_dist": - { - "label": "Infill Wipe Distance", - "description": "Distance of a travel move inserted after every infill line, to make the infill stick to the walls better. This option is similar to infill overlap, but without extrusion and only on one end of the infill line.", - "unit": "mm", - "type": "float", - "default_value": 0.04, - "value": "wall_line_width_0 / 4 if wall_line_count == 1 else wall_line_width_x / 4", - "minimum_value_warning": "0", - "maximum_value_warning": "machine_nozzle_size", - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_sparse_thickness": - { - "label": "Infill Layer Thickness", - "description": "The thickness per layer of infill material. This value should always be a multiple of the layer height and is otherwise rounded.", - "unit": "mm", - "type": "float", - "default_value": 0.1, - "minimum_value": "resolveOrValue('layer_height') / 2 if infill_line_distance > 0 else -999999", - "maximum_value_warning": "0.75 * machine_nozzle_size", - "maximum_value": "resolveOrValue('layer_height') * 8 if infill_line_distance > 0 else 999999", - "value": "resolveOrValue('layer_height')", - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "gradual_infill_steps": - { - "label": "Gradual Infill Steps", - "description": "Number of times to reduce the infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Infill Density.", - "default_value": 0, - "type": "int", - "minimum_value": "0", - "maximum_value_warning": "1 if (infill_pattern == 'cross' or infill_pattern == 'cross_3d' or infill_pattern == 'concentric') else 5", - "maximum_value": "999999 if infill_line_distance == 0 else (20 - math.log(infill_line_distance) / math.log(2))", - "enabled": "infill_sparse_density > 0 and infill_pattern not in ['cubicsubdiv', 'cross', 'cross_3d', 'lightning']", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "gradual_infill_step_height": - { - "label": "Gradual Infill Step Height", - "description": "The height of infill of a given density before switching to half the density.", - "unit": "mm", - "type": "float", - "default_value": 1.5, - "minimum_value": "0.0001", - "minimum_value_warning": "3 * resolveOrValue('layer_height')", - "enabled": "infill_sparse_density > 0 and gradual_infill_steps > 0 and infill_pattern not in ['cubicsubdiv', 'cross', 'cross_3d', 'lightning']", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_before_walls": - { - "label": "Infill Before Walls", - "description": "Print the infill before printing the walls. Printing the walls first may lead to more accurate walls, but overhangs print worse. Printing the infill first leads to sturdier walls, but the infill pattern might sometimes show through the surface.", - "type": "bool", - "default_value": true, - "enabled": "infill_sparse_density > 0 and wall_x_extruder_nr == infill_extruder_nr", - "settable_per_mesh": true - }, - "min_infill_area": - { - "label": "Minimum Infill Area", - "description": "Don't generate areas of infill smaller than this (use skin instead).", - "unit": "mm²", - "type": "float", - "minimum_value": "0", - "default_value": 0, - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_support_enabled": - { - "label": "Infill Support", - "description": "Print infill structures only where tops of the model should be supported. Enabling this reduces print time and material usage, but leads to ununiform object strength.", - "type": "bool", - "default_value": false, - "enabled": "infill_pattern != 'lightning' and infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "infill_support_angle": - { - "label": "Infill Overhang Angle", - "description": "The minimum angle of internal overhangs for which infill is added. At a value of 0° objects are totally filled with infill, 90° will not provide any infill.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "2", - "maximum_value": "90", - "default_value": 40, - "enabled": "infill_pattern != 'lightning' and infill_sparse_density > 0 and infill_support_enabled", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "skin_edge_support_thickness": - { - "label": "Skin Edge Support Thickness", - "description": "The thickness of the extra infill that supports skin edges.", - "unit": "mm", - "default_value": 0.8, - "minimum_value": "0", - "maximum_value": "machine_height", - "maximum_value_warning": "resolveOrValue('infill_sparse_thickness') * 10", - "type": "float", - "value": "0", - "limit_to_extruder": "infill_extruder_nr", - "enabled": "infill_sparse_density > 0", - "settable_per_mesh": true, - "children": - { - "skin_edge_support_layers": - { - "label": "Skin Edge Support Layers", - "description": "The number of infill layers that supports skin edges.", - "default_value": 4, - "minimum_value": "0", - "maximum_value_warning": "10", - "type": "int", - "maximum_value": "999999", - "value": "math.ceil(round(skin_edge_support_thickness / resolveOrValue('infill_sparse_thickness'), 4))", - "limit_to_extruder": "infill_extruder_nr", - "enabled": "infill_sparse_density > 0", - "settable_per_mesh": true - } - } - }, - "lightning_infill_support_angle": - { - "label": "Lightning Infill Support Angle", - "description": "Determines when a lightning infill layer has to support anything above it. Measured in the angle given the thickness of a layer.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "maximum_value": "90", - "maximum_value_warning": "75", - "default_value": 40, - "limit_to_extruder": "infill_extruder_nr", - "enabled": "infill_pattern == 'lightning'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "lightning_infill_overhang_angle": - { - "label": "Lightning Infill Overhang Angle", - "description": "Determines when a lightning infill layer has to support the model above it. Measured in the angle given the thickness.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "maximum_value": "90", - "maximum_value_warning": "75", - "default_value": 40, - "limit_to_extruder": "infill_extruder_nr", - "enabled": "infill_pattern == 'lightning'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "value": "lightning_infill_support_angle" - }, - "lightning_infill_prune_angle": - { - "label": "Lightning Infill Prune Angle", - "description": "The endpoints of infill lines are shortened to save on material. This setting is the angle of overhang of the endpoints of these lines.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "maximum_value": "90", - "maximum_value_warning": "75", - "default_value": 40, - "limit_to_extruder": "infill_extruder_nr", - "enabled": "infill_pattern == 'lightning'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "value": "lightning_infill_support_angle" - }, - "lightning_infill_straightening_angle": - { - "label": "Lightning Infill Straightening Angle", - "description": "The infill lines are straightened out to save on printing time. This is the maximum angle of overhang allowed across the length of the infill line.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "maximum_value": "90", - "maximum_value_warning": "75", - "default_value": 40, - "limit_to_extruder": "infill_extruder_nr", - "enabled": "infill_pattern == 'lightning'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "value": "lightning_infill_support_angle" - } - } - } - } - }, - "material": - { - "label": "Material", - "icon": "Spool", - "description": "Material", - "type": "category", - "children": - { - "default_material_print_temperature": - { - "label": "Default Printing Temperature", - "description": "The default temperature used for printing. This should be the \"base\" temperature of a material. All other print temperatures should use offsets based on this value", - "unit": "°C", - "type": "float", - "default_value": 210, - "minimum_value_warning": "0", - "maximum_value_warning": "285", - "maximum_value": "365", - "enabled": false, - "settable_per_extruder": true, - "settable_per_mesh": false, - "minimum_value": "-273.15" - }, - "build_volume_temperature": - { - "label": "Build Volume Temperature", - "description": "The temperature of the environment to print in. If this is 0, the build volume temperature will not be adjusted.", - "unit": "°C", - "type": "float", - "default_value": 0, - "resolve": "min(extruderValues('build_volume_temperature'))", - "minimum_value": "-273.15", - "minimum_value_warning": "0", - "maximum_value_warning": "285", - "enabled": "machine_heated_build_volume", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "material_print_temperature": - { - "label": "Printing Temperature", - "description": "The temperature used for printing.", - "unit": "°C", - "type": "float", - "default_value": 210, - "value": "default_material_print_temperature", - "minimum_value": "-273.15", - "minimum_value_warning": "0", - "maximum_value_warning": "285", - "maximum_value": "365", - "enabled": "machine_nozzle_temp_enabled and not (material_flow_dependent_temperature)", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_print_temperature_layer_0": - { - "label": "Printing Temperature Initial Layer", - "description": "The temperature used for printing the first layer. Set at 0 to disable special handling of the initial layer.", - "unit": "°C", - "type": "float", - "default_value": 215, - "value": "material_print_temperature", - "minimum_value": "-273.15", - "minimum_value_warning": "0", - "maximum_value_warning": "285", - "maximum_value": "365", - "enabled": "machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_initial_print_temperature": - { - "label": "Initial Printing Temperature", - "description": "The minimal temperature while heating up to the Printing Temperature at which printing can already start.", - "unit": "°C", - "type": "float", - "default_value": 200, - "value": "max(-273.15, material_print_temperature - 10)", - "minimum_value": "-273.15", - "minimum_value_warning": "material_standby_temperature", - "maximum_value_warning": "material_print_temperature", - "maximum_value": "365", - "enabled": "machine_nozzle_temp_enabled and not machine_extruders_share_heater", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_final_print_temperature": - { - "label": "Final Printing Temperature", - "description": "The temperature to which to already start cooling down just before the end of printing.", - "unit": "°C", - "type": "float", - "default_value": 195, - "value": "max(-273.15, material_print_temperature - 15)", - "minimum_value": "-273.15", - "minimum_value_warning": "material_standby_temperature", - "maximum_value_warning": "material_print_temperature", - "maximum_value": "365", - "enabled": "machine_nozzle_temp_enabled and not machine_extruders_share_heater", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_extrusion_cool_down_speed": - { - "label": "Extrusion Cool Down Speed Modifier", - "description": "The extra speed by which the nozzle cools while extruding. The same value is used to signify the heat up speed lost when heating up while extruding.", - "unit": "°C/s", - "type": "float", - "default_value": 0.7, - "minimum_value": "0", - "maximum_value_warning": "10.0", - "maximum_value": "machine_nozzle_heat_up_speed", - "enabled": "material_flow_dependent_temperature or (extruders_enabled_count > 1 and material_final_print_temperature != material_print_temperature)", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "default_material_bed_temperature": - { - "label": "Default Build Plate Temperature", - "description": "The default temperature used for the heated build plate. This should be the \"base\" temperature of a build plate. All other print temperatures should use offsets based on this value", - "unit": "°C", - "type": "float", - "resolve": "max(extruderValues('default_material_bed_temperature'))", - "default_value": 60, - "minimum_value": "-273.15", - "minimum_value_warning": "build_volume_temperature", - "maximum_value_warning": "130", - "maximum_value": "200", - "enabled": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_bed_temperature": - { - "label": "Build Plate Temperature", - "description": "The temperature used for the heated build plate. If this is 0, the build plate is left unheated.", - "unit": "°C", - "type": "float", - "default_value": 60, - "value": "default_material_bed_temperature", - "resolve": "max(extruderValues('material_bed_temperature'))", - "minimum_value": "-273.15", - "minimum_value_warning": "build_volume_temperature", - "maximum_value_warning": "130", - "maximum_value": "200", - "enabled": "machine_heated_bed and machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_bed_temperature_layer_0": - { - "label": "Build Plate Temperature Initial Layer", - "description": "The temperature used for the heated build plate at the first layer. If this is 0, the build plate is left unheated during the first layer.", - "unit": "°C", - "type": "float", - "resolve": "max(extruderValues('material_bed_temperature_layer_0'))", - "default_value": 60, - "value": "resolveOrValue('material_bed_temperature')", - "minimum_value": "-273.15", - "minimum_value_warning": "max(build_volume_temperature, max(extruderValues('material_bed_temperature')))", - "maximum_value_warning": "130", - "maximum_value": "200", - "enabled": "machine_heated_bed and machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "material_adhesion_tendency": - { - "label": "Adhesion Tendency", - "description": "Surface adhesion tendency.", - "type": "int", - "default_value": 10, - "minimum_value": "0", - "maximum_value": "10", - "enabled": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_surface_energy": - { - "label": "Surface Energy", - "description": "Surface energy.", - "unit": "%", - "type": "int", - "default_value": 100, - "minimum_value": "0", - "maximum_value": "100", - "enabled": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_shrinkage_percentage": - { - "label": "Scaling Factor Shrinkage Compensation", - "description": "To compensate for the shrinkage of the material as it cools down, the model will be scaled with this factor.", - "unit": "%", - "type": "float", - "default_value": 100.0, - "enabled": true, - "minimum_value": "0.001", - "minimum_value_warning": "100", - "maximum_value_warning": "120", - "settable_per_mesh": false, - "settable_per_extruder": false, - "resolve": "sum(extruderValues(\"material_shrinkage_percentage\")) / len(extruderValues(\"material_shrinkage_percentage\"))", - "children": - { - "material_shrinkage_percentage_xy": - { - "label": "Horizontal Scaling Factor Shrinkage Compensation", - "description": "To compensate for the shrinkage of the material as it cools down, the model will be scaled with this factor in the XY-direction (horizontally).", - "unit": "%", - "type": "float", - "default_value": 100.0, - "enabled": true, - "minimum_value": "0.001", - "minimum_value_warning": "100", - "maximum_value_warning": "120", - "settable_per_mesh": false, - "settable_per_extruder": false, - "resolve": "sum(extruderValues(\"material_shrinkage_percentage_xy\")) / len(extruderValues(\"material_shrinkage_percentage_xy\"))", - "value": "material_shrinkage_percentage" - }, - "material_shrinkage_percentage_z": - { - "label": "Vertical Scaling Factor Shrinkage Compensation", - "description": "To compensate for the shrinkage of the material as it cools down, the model will be scaled with this factor in the Z-direction (vertically).", - "unit": "%", - "type": "float", - "default_value": 100.0, - "enabled": true, - "minimum_value": "0.001", - "minimum_value_warning": "100", - "maximum_value_warning": "120", - "settable_per_mesh": false, - "settable_per_extruder": false, - "resolve": "sum(extruderValues(\"material_shrinkage_percentage_z\")) / len(extruderValues(\"material_shrinkage_percentage_z\"))", - "value": "material_shrinkage_percentage" - } - } - }, - "material_crystallinity": - { - "label": "Crystalline Material", - "description": "Is this material the type that breaks off cleanly when heated (crystalline), or is it the type that produces long intertwined polymer chains (non-crystalline)?", - "type": "bool", - "default_value": false, - "enabled": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_anti_ooze_retracted_position": - { - "label": "Anti-ooze Retracted Position", - "description": "How far the material needs to be retracted before it stops oozing.", - "type": "float", - "unit": "mm", - "default_value": -4, - "enabled": false, - "minimum_value_warning": "-switch_extruder_retraction_amount", - "maximum_value": "0", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_anti_ooze_retraction_speed": - { - "label": "Anti-ooze Retraction Speed", - "description": "How fast the material needs to be retracted during a filament switch to prevent oozing.", - "type": "float", - "unit": "mm/s", - "default_value": 5, - "enabled": false, - "minimum_value": "0", - "maximum_value": "machine_max_feedrate_e", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_break_preparation_retracted_position": - { - "label": "Break Preparation Retracted Position", - "description": "How far the filament can be stretched before it breaks, while heated.", - "type": "float", - "unit": "mm", - "default_value": -16, - "enabled": false, - "minimum_value_warning": "-retraction_amount * 4", - "maximum_value": "0", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_break_preparation_speed": - { - "label": "Break Preparation Retraction Speed", - "description": "How fast the filament needs to be retracted just before breaking it off in a retraction.", - "type": "float", - "unit": "mm/s", - "default_value": 2, - "enabled": false, - "minimum_value": "0", - "maximum_value": "machine_max_feedrate_e", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_break_preparation_temperature": - { - "label": "Break Preparation Temperature", - "description": "The temperature used to purge material, should be roughly equal to the highest possible printing temperature.", - "type": "float", - "unit": "°C", - "default_value": 50, - "value": "material_print_temperature", - "enabled": false, - "minimum_value": "-273.15", - "maximum_value_warning": "300", - "maximum_value": "365", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_break_retracted_position": - { - "label": "Break Retracted Position", - "description": "How far to retract the filament in order to break it cleanly.", - "type": "float", - "unit": "mm", - "default_value": -50, - "enabled": false, - "minimum_value_warning": "-100", - "maximum_value": "0", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_break_speed": - { - "label": "Break Retraction Speed", - "description": "The speed at which to retract the filament in order to break it cleanly.", - "type": "float", - "unit": "mm/s", - "default_value": 25, - "enabled": false, - "minimum_value": "0", - "maximum_value": "machine_max_feedrate_e", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_break_temperature": - { - "label": "Break Temperature", - "description": "The temperature at which the filament is broken for a clean break.", - "type": "float", - "unit": "°C", - "default_value": 50, - "enabled": false, - "minimum_value": "-273.15", - "maximum_value": "365", - "maximum_value_warning": "300", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_flush_purge_speed": - { - "label": "Flush Purge Speed", - "description": "How fast to prime the material after switching to a different material.", - "type": "float", - "default_value": 0.5, - "enabled": false - }, - "material_flush_purge_length": - { - "label": "Flush Purge Length", - "description": "How much material to use to purge the previous material out of the nozzle (in length of filament) when switching to a different material.", - "type": "float", - "default_value": 60, - "enabled": false - }, - "material_end_of_filament_purge_speed": - { - "label": "End of Filament Purge Speed", - "description": "How fast to prime the material after replacing an empty spool with a fresh spool of the same material.", - "type": "float", - "default_value": 0.5, - "enabled": false - }, - "material_end_of_filament_purge_length": - { - "label": "End of Filament Purge Length", - "description": "How much material to use to purge the previous material out of the nozzle (in length of filament) when replacing an empty spool with a fresh spool of the same material.", - "type": "float", - "default_value": 20, - "enabled": false - }, - "material_maximum_park_duration": - { - "label": "Maximum Park Duration", - "description": "How long the material can be kept out of dry storage safely.", - "type": "float", - "default_value": 300, - "enabled": false - }, - "material_no_load_move_factor": - { - "label": "No Load Move Factor", - "description": "A factor indicating how much the filament gets compressed between the feeder and the nozzle chamber, used to determine how far to move the material for a filament switch.", - "type": "float", - "default_value": 0.940860215, - "enabled": false - }, - "material_flow": - { - "label": "Flow", - "description": "Flow compensation: the amount of material extruded is multiplied by this value.", - "unit": "%", - "default_value": 100, - "type": "float", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": true, - "children": - { - "wall_material_flow": - { - "label": "Wall Flow", - "description": "Flow compensation on wall lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "limit_to_extruder": "wall_0_extruder_nr if wall_x_extruder_nr == wall_0_extruder_nr else -1", - "settable_per_mesh": true, - "children": - { - "wall_0_material_flow": - { - "label": "Outer Wall Flow", - "description": "Flow compensation on the outermost wall line.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "wall_material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "wall_x_material_flow": - { - "label": "Inner Wall(s) Flow", - "description": "Flow compensation on wall lines for all wall lines except the outermost one.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "wall_material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "skin_material_flow": - { - "label": "Top/Bottom Flow", - "description": "Flow compensation on top/bottom lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "top_layers > 0 or bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "roofing_material_flow": - { - "label": "Top Surface Skin Flow", - "description": "Flow compensation on lines of the areas at the top of the print.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "skin_material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0" - }, - "infill_material_flow": - { - "label": "Infill Flow", - "description": "Flow compensation on infill lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "skirt_brim_material_flow": - { - "label": "Skirt/Brim Flow", - "description": "Flow compensation on skirt or brim lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled')", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_material_flow": - { - "label": "Support Flow", - "description": "Flow compensation on support structure lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "support_enable or support_meshes_present", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_interface_material_flow": - { - "label": "Support Interface Flow", - "description": "Flow compensation on lines of support roof or floor.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "(support_enable or support_meshes_present) and support_interface_enable", - "limit_to_extruder": "support_interface_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_material_flow": - { - "label": "Support Roof Flow", - "description": "Flow compensation on support roof lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_material_flow')", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "(support_enable or support_meshes_present) and support_roof_enable", - "limit_to_extruder": "support_roof_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_bottom_material_flow": - { - "label": "Support Floor Flow", - "description": "Flow compensation on support floor lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_material_flow')", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "(support_enable or support_meshes_present) and support_bottom_enable", - "limit_to_extruder": "support_bottom_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "prime_tower_flow": - { - "label": "Prime Tower Flow", - "description": "Flow compensation on prime tower lines.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "material_flow_layer_0": - { - "label": "Initial Layer Flow", - "description": "Flow compensation for the first layer: the amount of material extruded on the initial layer is multiplied by this value.", - "unit": "%", - "default_value": 100, - "type": "float", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "settable_per_mesh": true - }, - "wall_x_material_flow_layer_0": - { - "label": "Initial Layer Inner Wall Flow", - "description": "Flow compensation on wall lines for all wall lines except the outermost one, but only for the first layer", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow_layer_0", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - }, - "wall_0_material_flow_layer_0": - { - "label": "Initial Layer Outer Wall Flow", - "description": "Flow compensation on the outermost wall line of the first layer.", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow_layer_0", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "skin_material_flow_layer_0": - { - "label": "Initial Layer Bottom Flow", - "description": "Flow compensation on bottom lines of the first layer", - "unit": "%", - "type": "float", - "default_value": 100, - "value": "material_flow_layer_0", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "bottom_layers > 0", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "material_standby_temperature": - { - "label": "Standby Temperature", - "description": "The temperature of the nozzle when another nozzle is currently used for printing.", - "type": "float", - "unit": "°C", - "default_value": 150, - "minimum_value": "-273.15", - "minimum_value_warning": "0", - "maximum_value_warning": "260", - "maximum_value": "365", - "enabled": "extruders_enabled_count > 1 and machine_nozzle_temp_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "speed": - { - "label": "Speed", - "icon": "SpeedOMeter", - "description": "Speed", - "type": "category", - "children": - { - "speed_print": - { - "label": "Print Speed", - "description": "The speed at which printing happens.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value_warning": "150", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "default_value": 60, - "settable_per_mesh": true, - "children": - { - "speed_infill": - { - "label": "Infill Speed", - "description": "The speed at which infill is printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 60, - "value": "speed_print", - "enabled": "infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "speed_wall": - { - "label": "Wall Speed", - "description": "The speed at which the walls are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 30, - "value": "speed_print / 2", - "settable_per_mesh": true, - "children": - { - "speed_wall_0": - { - "label": "Outer Wall Speed", - "description": "The speed at which the outermost walls are printed. Printing the outer wall at a lower speed improves the final skin quality. However, having a large difference between the inner wall speed and the outer wall speed will affect quality in a negative way.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 30, - "value": "speed_wall", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "speed_wall_x": - { - "label": "Inner Wall Speed", - "description": "The speed at which all inner walls are printed. Printing the inner wall faster than the outer wall will reduce printing time. It works well to set this in between the outer wall speed and the infill speed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 60, - "value": "speed_wall * 2", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "speed_roofing": - { - "label": "Top Surface Skin Speed", - "description": "The speed at which top surface skin layers are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 25, - "value": "speed_topbottom", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true, - "enabled": "roofing_layer_count > 0 and top_layers > 0" - }, - "speed_topbottom": - { - "label": "Top/Bottom Speed", - "description": "The speed at which top/bottom layers are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 30, - "value": "speed_print / 2", - "limit_to_extruder": "top_bottom_extruder_nr", - "enabled": "top_layers > 0 or bottom_layers > 0", - "settable_per_mesh": true - }, - "speed_support": - { - "label": "Support Speed", - "description": "The speed at which the support structure is printed. Printing support at higher speeds can greatly reduce printing time. The surface quality of the support structure is not important since it is removed after printing.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "default_value": 60, - "value": "speed_print", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": false, - "limit_to_extruder": "support_extruder_nr", - "settable_per_extruder": true, - "children": - { - "speed_support_infill": - { - "label": "Support Infill Speed", - "description": "The speed at which the infill of support is printed. Printing the infill at lower speeds improves stability.", - "unit": "mm/s", - "type": "float", - "default_value": 60, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "value": "speed_support", - "enabled": "support_enable or support_meshes_present", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "speed_support_interface": - { - "label": "Support Interface Speed", - "description": "The speed at which the roofs and floors of support are printed. Printing them at lower speeds can improve overhang quality.", - "unit": "mm/s", - "type": "float", - "default_value": 40, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "enabled": "support_interface_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_interface_extruder_nr", - "value": "speed_support / 1.5", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "speed_support_roof": - { - "label": "Support Roof Speed", - "description": "The speed at which the roofs of support are printed. Printing them at lower speeds can improve overhang quality.", - "unit": "mm/s", - "type": "float", - "default_value": 40, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "enabled": "support_roof_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_roof_extruder_nr", - "value": "extruderValue(support_roof_extruder_nr, 'speed_support_interface')", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "speed_support_bottom": - { - "label": "Support Floor Speed", - "description": "The speed at which the floor of support is printed. Printing it at lower speed can improve adhesion of support on top of your model.", - "unit": "mm/s", - "type": "float", - "default_value": 40, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "enabled": "support_bottom_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_bottom_extruder_nr", - "value": "extruderValue(support_bottom_extruder_nr, 'speed_support_interface')", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - } - } - }, - "speed_prime_tower": - { - "label": "Prime Tower Speed", - "description": "The speed at which the prime tower is printed. Printing the prime tower slower can make it more stable when the adhesion between the different filaments is suboptimal.", - "type": "float", - "unit": "mm/s", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 60, - "value": "speed_print", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "speed_travel": - { - "label": "Travel Speed", - "description": "The speed at which travel moves are made.", - "unit": "mm/s", - "type": "float", - "default_value": 120, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "value": "speed_print if magic_spiralize else 120", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "speed_layer_0": - { - "label": "Initial Layer Speed", - "description": "The speed for the initial layer. A lower value is advised to improve adhesion to the build plate. Does not affect the build plate adhesion structures themselves, like brim and raft.", - "unit": "mm/s", - "type": "float", - "enabled": "speed_slowdown_layers > 0", - "default_value": 30, - "value": "speed_print * 30 / 60", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "settable_per_mesh": true, - "children": - { - "speed_print_layer_0": - { - "label": "Initial Layer Print Speed", - "description": "The speed of printing for the initial layer. A lower value is advised to improve adhesion to the build plate.", - "unit": "mm/s", - "type": "float", - "enabled": "speed_slowdown_layers > 0", - "default_value": 30, - "value": "speed_layer_0", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "settable_per_mesh": true - }, - "speed_travel_layer_0": - { - "label": "Initial Layer Travel Speed", - "description": "The speed of travel moves in the initial layer. A lower value is advised to prevent pulling previously printed parts away from the build plate. The value of this setting can automatically be calculated from the ratio between the Travel Speed and the Print Speed.", - "unit": "mm/s", - "type": "float", - "enabled": "speed_slowdown_layers > 0", - "default_value": 60, - "value": "speed_layer_0 * speed_travel / speed_print", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "settable_per_extruder": true, - "settable_per_mesh": false - } - } - }, - "skirt_brim_speed": - { - "label": "Skirt/Brim Speed", - "description": "The speed at which the skirt and brim are printed. Normally this is done at the initial layer speed, but sometimes you might want to print the skirt or brim at a different speed.", - "unit": "mm/s", - "type": "float", - "default_value": 30, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "value": "speed_layer_0", - "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled')", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "skirt_brim_extruder_nr" - }, - "speed_z_hop": - { - "label": "Z Hop Speed", - "description": "The speed at which the vertical Z movement is made for Z Hops. This is typically lower than the print speed since the build plate or machine's gantry is harder to move.", - "unit": "mm/s", - "type": "float", - "default_value": 10, - "minimum_value": "0", - "maximum_value": "machine_max_feedrate_z", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "speed_slowdown_layers": - { - "label": "Number of Slower Layers", - "description": "The first few layers are printed slower than the rest of the model, to get better adhesion to the build plate and improve the overall success rate of prints. The speed is gradually increased over these layers.", - "type": "int", - "default_value": 2, - "resolve": "round(sum(extruderValues('speed_slowdown_layers')) / len(extruderValues('speed_slowdown_layers')))", - "minimum_value": "0", - "maximum_value": "999999", - "maximum_value_warning": "3.2 / resolveOrValue('layer_height')", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "speed_equalize_flow_width_factor": - { - "label": "Flow Equalization Ratio", - "description": "Extrusion width based correction factor on the speed. At 0% the movement speed is kept constant at the Print Speed. At 100% the movement speed is adjusted so that the flow (in mm³/s) is kept constant, i.e. lines half the normal Line Width are printed twice as fast and lines twice as wide are printed half as fast. A value larger than 100% can help to compensate for the higher pressure required to extrude wide lines.", - "type": "float", - "unit": "%", - "default_value": 100.0, - "minimum_value": "0.0", - "maximum_value_warning": "200.0", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "acceleration_enabled": - { - "label": "Enable Acceleration Control", - "description": "Enables adjusting the print head acceleration. Increasing the accelerations can reduce printing time at the cost of print quality.", - "type": "bool", - "default_value": false, - "resolve": "any(extruderValues('acceleration_enabled'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "acceleration_travel_enabled": - { - "label": "Enable Travel Acceleration", - "description": "Use a separate acceleration rate for travel moves. If disabled, travel moves will use the acceleration value of the printed line at their destination.", - "type": "bool", - "default_value": true, - "resolve": "any(extruderValues('acceleration_travel_enabled'))", - "enabled": "acceleration_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "acceleration_print": - { - "label": "Print Acceleration", - "description": "The acceleration with which printing happens.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_mesh": true, - "children": - { - "acceleration_infill": - { - "label": "Infill Acceleration", - "description": "The acceleration with which infill is printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_print", - "enabled": "resolveOrValue('acceleration_enabled') and infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "acceleration_wall": - { - "label": "Wall Acceleration", - "description": "The acceleration with which the walls are printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_print", - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_mesh": true, - "children": - { - "acceleration_wall_0": - { - "label": "Outer Wall Acceleration", - "description": "The acceleration with which the outermost walls are printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_wall", - "enabled": "resolveOrValue('acceleration_enabled')", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "acceleration_wall_x": - { - "label": "Inner Wall Acceleration", - "description": "The acceleration with which all inner walls are printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_wall", - "enabled": "resolveOrValue('acceleration_enabled')", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "acceleration_roofing": - { - "label": "Top Surface Skin Acceleration", - "description": "The acceleration with which top surface skin layers are printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_topbottom", - "enabled": "resolveOrValue('acceleration_enabled') and roofing_layer_count > 0 and top_layers > 0", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true - }, - "acceleration_topbottom": - { - "label": "Top/Bottom Acceleration", - "description": "The acceleration with which top/bottom layers are printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_print", - "enabled": "resolveOrValue('acceleration_enabled')", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "acceleration_support": - { - "label": "Support Acceleration", - "description": "The acceleration with which the support structure is printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_print", - "enabled": "resolveOrValue('acceleration_enabled') and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "limit_to_extruder": "support_extruder_nr", - "settable_per_extruder": true, - "children": - { - "acceleration_support_infill": - { - "label": "Support Infill Acceleration", - "description": "The acceleration with which the infill of support is printed.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_support", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled') and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "acceleration_support_interface": - { - "label": "Support Interface Acceleration", - "description": "The acceleration with which the roofs and floors of support are printed. Printing them at lower acceleration can improve overhang quality.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_support", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled') and support_interface_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_interface_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "acceleration_support_roof": - { - "label": "Support Roof Acceleration", - "description": "The acceleration with which the roofs of support are printed. Printing them at lower acceleration can improve overhang quality.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "extruderValue(support_roof_extruder_nr, 'acceleration_support_interface')", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "acceleration_enabled and support_roof_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_roof_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "acceleration_support_bottom": - { - "label": "Support Floor Acceleration", - "description": "The acceleration with which the floors of support are printed. Printing them at lower acceleration can improve adhesion of support on top of your model.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "extruderValue(support_bottom_extruder_nr, 'acceleration_support_interface')", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "acceleration_enabled and support_bottom_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_bottom_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - } - } - }, - "acceleration_prime_tower": - { - "label": "Prime Tower Acceleration", - "description": "The acceleration with which the prime tower is printed.", - "unit": "mm/s²", - "type": "float", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "default_value": 3000, - "value": "acceleration_print", - "enabled": "resolveOrValue('prime_tower_enable') and resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false - } - } - }, - "acceleration_travel": - { - "label": "Travel Acceleration", - "description": "The acceleration with which travel moves are made.", - "unit": "mm/s²", - "type": "float", - "default_value": 5000, - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "value": "acceleration_print if magic_spiralize else 5000", - "enabled": "resolveOrValue('acceleration_enabled') and resolveOrValue('acceleration_travel_enabled')", - "settable_per_mesh": false - }, - "acceleration_layer_0": - { - "label": "Initial Layer Acceleration", - "description": "The acceleration for the initial layer.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_print", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_mesh": true, - "children": - { - "acceleration_print_layer_0": - { - "label": "Initial Layer Print Acceleration", - "description": "The acceleration during the printing of the initial layer.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_layer_0", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled')", - "settable_per_mesh": true - }, - "acceleration_travel_layer_0": - { - "label": "Initial Layer Travel Acceleration", - "description": "The acceleration for travel moves in the initial layer.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_layer_0 * acceleration_travel / acceleration_print", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled') and resolveOrValue('acceleration_travel_enabled')", - "settable_per_extruder": true, - "settable_per_mesh": false - } - } - }, - "acceleration_skirt_brim": - { - "label": "Skirt/Brim Acceleration", - "description": "The acceleration with which the skirt and brim are printed. Normally this is done with the initial layer acceleration, but sometimes you might want to print the skirt or brim at a different acceleration.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "acceleration_layer_0", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('acceleration_enabled') and (resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled'))", - "settable_per_mesh": false, - "limit_to_extruder": "skirt_brim_extruder_nr" - }, - "jerk_enabled": - { - "label": "Enable Jerk Control", - "description": "Enables adjusting the jerk of print head when the velocity in the X or Y axis changes. Increasing the jerk can reduce printing time at the cost of print quality.", - "type": "bool", - "default_value": false, - "resolve": "any(extruderValues('jerk_enabled'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "jerk_travel_enabled": - { - "label": "Enable Travel Jerk", - "description": "Use a separate jerk rate for travel moves. If disabled, travel moves will use the jerk value of the printed line at their destination.", - "type": "bool", - "default_value": true, - "resolve": "any(extruderValues('jerk_travel_enabled'))", - "enabled": "jerk_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "jerk_print": - { - "label": "Print Jerk", - "description": "The maximum instantaneous velocity change of the print head.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_mesh": true, - "children": - { - "jerk_infill": - { - "label": "Infill Jerk", - "description": "The maximum instantaneous velocity change with which infill is printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_print", - "enabled": "resolveOrValue('jerk_enabled') and infill_sparse_density > 0", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "jerk_wall": - { - "label": "Wall Jerk", - "description": "The maximum instantaneous velocity change with which the walls are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_print", - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_mesh": true, - "children": - { - "jerk_wall_0": - { - "label": "Outer Wall Jerk", - "description": "The maximum instantaneous velocity change with which the outermost walls are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_wall", - "enabled": "resolveOrValue('jerk_enabled')", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "jerk_wall_x": - { - "label": "Inner Wall Jerk", - "description": "The maximum instantaneous velocity change with which all inner walls are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_wall", - "enabled": "resolveOrValue('jerk_enabled')", - "limit_to_extruder": "wall_x_extruder_nr", - "settable_per_mesh": true - } - } - }, - "jerk_roofing": - { - "label": "Top Surface Skin Jerk", - "description": "The maximum instantaneous velocity change with which top surface skin layers are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_topbottom", - "enabled": "resolveOrValue('jerk_enabled') and roofing_layer_count > 0 and top_layers > 0", - "limit_to_extruder": "roofing_extruder_nr", - "settable_per_mesh": true - }, - "jerk_topbottom": - { - "label": "Top/Bottom Jerk", - "description": "The maximum instantaneous velocity change with which top/bottom layers are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_print", - "enabled": "(top_layers > 0 or bottom_layers > 0) and resolveOrValue('jerk_enabled')", - "limit_to_extruder": "top_bottom_extruder_nr", - "settable_per_mesh": true - }, - "jerk_support": - { - "label": "Support Jerk", - "description": "The maximum instantaneous velocity change with which the support structure is printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_print", - "enabled": "resolveOrValue('jerk_enabled') and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "support_extruder_nr", - "children": - { - "jerk_support_infill": - { - "label": "Support Infill Jerk", - "description": "The maximum instantaneous velocity change with which the infill of support is printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_support", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "jerk_support_interface": - { - "label": "Support Interface Jerk", - "description": "The maximum instantaneous velocity change with which the roofs and floors of support are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_support", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and support_interface_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_interface_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "jerk_support_roof": - { - "label": "Support Roof Jerk", - "description": "The maximum instantaneous velocity change with which the roofs of support are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "extruderValue(support_roof_extruder_nr, 'jerk_support_interface')", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and support_roof_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_roof_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "jerk_support_bottom": - { - "label": "Support Floor Jerk", - "description": "The maximum instantaneous velocity change with which the floors of support are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "extruderValue(support_roof_extruder_nr, 'jerk_support_interface')", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and support_bottom_enable and (support_enable or support_meshes_present)", - "limit_to_extruder": "support_bottom_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - } - } - }, - "jerk_prime_tower": - { - "label": "Prime Tower Jerk", - "description": "The maximum instantaneous velocity change with which the prime tower is printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "50", - "default_value": 20, - "value": "jerk_print", - "enabled": "resolveOrValue('prime_tower_enable') and resolveOrValue('jerk_enabled')", - "settable_per_mesh": false - } - } - }, - "jerk_travel": - { - "label": "Travel Jerk", - "description": "The maximum instantaneous velocity change with which travel moves are made.", - "unit": "mm/s", - "type": "float", - "default_value": 30, - "minimum_value": "0", - "maximum_value_warning": "50", - "value": "jerk_print if magic_spiralize else 30", - "enabled": "resolveOrValue('jerk_enabled') and resolveOrValue('jerk_travel_enabled')", - "settable_per_mesh": false - }, - "jerk_layer_0": - { - "label": "Initial Layer Jerk", - "description": "The print maximum instantaneous velocity change for the initial layer.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_print", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_mesh": true, - "children": - { - "jerk_print_layer_0": - { - "label": "Initial Layer Print Jerk", - "description": "The maximum instantaneous velocity change during the printing of the initial layer.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_layer_0", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled')", - "settable_per_mesh": true - }, - "jerk_travel_layer_0": - { - "label": "Initial Layer Travel Jerk", - "description": "The acceleration for travel moves in the initial layer.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "jerk_layer_0 * jerk_travel / jerk_print", - "minimum_value": "0", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('jerk_enabled') and resolveOrValue('jerk_travel_enabled')", - "settable_per_extruder": true, - "settable_per_mesh": false - } - } - }, - "jerk_skirt_brim": - { - "label": "Skirt/Brim Jerk", - "description": "The maximum instantaneous velocity change with which the skirt and brim are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "minimum_value": "0", - "maximum_value_warning": "50", - "value": "jerk_layer_0", - "enabled": "resolveOrValue('jerk_enabled') and (resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('draft_shield_enabled') or resolveOrValue('ooze_shield_enabled'))", - "settable_per_mesh": false, - "limit_to_extruder": "skirt_brim_extruder_nr" - } - } - }, - "travel": - { - "label": "Travel", - "icon": "PrintTravel", - "description": "travel", - "type": "category", - "children": - { - "retraction_enable": - { - "label": "Enable Retraction", - "description": "Retract the filament when the nozzle is moving over a non-printed area.", - "type": "bool", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retract_at_layer_change": - { - "label": "Retract at Layer Change", - "description": "Retract the filament when the nozzle is moving to the next layer.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_amount": - { - "label": "Retraction Distance", - "description": "The length of material retracted during a retraction move.", - "unit": "mm", - "type": "float", - "default_value": 6.5, - "minimum_value_warning": "-0.0001", - "maximum_value_warning": "10.0", - "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_speed": - { - "label": "Retraction Speed", - "description": "The speed at which the filament is retracted and primed during a retraction move.", - "unit": "mm/s", - "type": "float", - "default_value": 25, - "minimum_value": "0.0001", - "minimum_value_warning": "1", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "maximum_value_warning": "70", - "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "retraction_retract_speed": - { - "label": "Retraction Retract Speed", - "description": "The speed at which the filament is retracted during a retraction move.", - "unit": "mm/s", - "type": "float", - "default_value": 25, - "minimum_value": "0.0001", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "minimum_value_warning": "1", - "maximum_value_warning": "70", - "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"", - "value": "retraction_speed", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_prime_speed": - { - "label": "Retraction Prime Speed", - "description": "The speed at which the filament is primed during a retraction move.", - "unit": "mm/s", - "type": "float", - "default_value": 25, - "minimum_value": "0.0001", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "minimum_value_warning": "1", - "maximum_value_warning": "70", - "enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\"", - "value": "retraction_speed", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "retraction_extra_prime_amount": - { - "label": "Retraction Extra Prime Amount", - "description": "Some material can ooze away during a travel move, which can be compensated for here.", - "unit": "mm³", - "type": "float", - "default_value": 0, - "minimum_value_warning": "-0.0001", - "maximum_value_warning": "5.0", - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_min_travel": - { - "label": "Retraction Minimum Travel", - "description": "The minimum distance of travel needed for a retraction to happen at all. This helps to get fewer retractions in a small area.", - "unit": "mm", - "type": "float", - "default_value": 1.5, - "value": "line_width * 2", - "minimum_value": "0", - "minimum_value_warning": "line_width * 1.5", - "maximum_value_warning": "10", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_count_max": - { - "label": "Maximum Retraction Count", - "description": "This setting limits the number of retractions occurring within the minimum extrusion distance window. Further retractions within this window will be ignored. This avoids retracting repeatedly on the same piece of filament, as that can flatten the filament and cause grinding issues.", - "default_value": 90, - "minimum_value": "0", - "maximum_value_warning": "100", - "maximum_value": 999999999, - "type": "int", - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_extrusion_window": - { - "label": "Minimum Extrusion Distance Window", - "description": "The window in which the maximum retraction count is enforced. This value should be approximately the same as the retraction distance, so that effectively the number of times a retraction passes the same patch of material is limited.", - "unit": "mm", - "type": "float", - "default_value": 4.5, - "minimum_value": "0", - "maximum_value_warning": "retraction_amount * 2", - "value": "retraction_amount", - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "limit_support_retractions": - { - "label": "Limit Support Retractions", - "description": "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excessive stringing within the support structure.", - "type": "bool", - "default_value": true, - "enabled": "retraction_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_combing": - { - "label": "Combing Mode", - "description": "Combing keeps the nozzle within already printed areas when traveling. This results in slightly longer travel moves but reduces the need for retractions. If combing is off, the material will retract and the nozzle moves in a straight line to the next point. It is also possible to avoid combing over top/bottom skin areas or to only comb within the infill.", - "type": "enum", - "options": - { - "off": "Off", - "all": "All", - "no_outer_surfaces": "Not on Outer Surface", - "noskin": "Not in Skin", - "infill": "Within Infill" - }, - "default_value": "all", - "value": "'no_outer_surfaces' if (any(extruderValues('skin_monotonic')) or any(extruderValues('ironing_enabled')) or (any(extruderValues('roofing_monotonic')) and any(extruderValues('roofing_layer_count')))) else 'all'", - "resolve": "'noskin' if 'noskin' in extruderValues('retraction_combing') else ('infill' if 'infill' in extruderValues('retraction_combing') else ('all' if 'all' in extruderValues('retraction_combing') else ('no_outer_surfaces' if 'no_outer_surfaces' in extruderValues('retraction_combing') else 'off')))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "retraction_combing_max_distance": - { - "label": "Max Comb Distance With No Retract", - "description": "When greater than zero, combing travel moves that are longer than this distance will use retraction. If set to zero, there is no maximum and combing moves will not use retraction.", - "unit": "mm", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "enabled": "resolveOrValue('retraction_combing') != 'off'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "travel_retract_before_outer_wall": - { - "label": "Retract Before Outer Wall", - "description": "Always retract when moving to start an outer wall.", - "type": "bool", - "default_value": false, - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "travel_avoid_other_parts": - { - "label": "Avoid Printed Parts When Traveling", - "description": "The nozzle avoids already printed parts when traveling. This option is only available when combing is enabled.", - "type": "bool", - "default_value": true, - "enabled": "resolveOrValue('retraction_combing') != 'off'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "travel_avoid_supports": - { - "label": "Avoid Supports When Traveling", - "description": "The nozzle avoids already printed supports when traveling. This option is only available when combing is enabled.", - "type": "bool", - "default_value": false, - "enabled": "resolveOrValue('retraction_combing') != 'off' and travel_avoid_other_parts", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "travel_avoid_distance": - { - "label": "Travel Avoid Distance", - "description": "The distance between the nozzle and already printed parts when avoiding during travel moves.", - "unit": "mm", - "type": "float", - "default_value": 0.625, - "value": "machine_nozzle_tip_outer_diameter / 2 * 1.25", - "minimum_value": "0", - "minimum_value_warning": "machine_nozzle_tip_outer_diameter * 0.5", - "maximum_value_warning": "machine_nozzle_tip_outer_diameter * 5", - "enabled": "resolveOrValue('retraction_combing') != 'off' and travel_avoid_other_parts", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "layer_start_x": - { - "label": "Layer Start X", - "description": "The X coordinate of the position near where to find the part to start printing each layer.", - "unit": "mm", - "type": "float", - "default_value": 0.0, - "minimum_value": "machine_width / -2 if machine_center_is_zero else 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": true - }, - "layer_start_y": - { - "label": "Layer Start Y", - "description": "The Y coordinate of the position near where to find the part to start printing each layer.", - "unit": "mm", - "type": "float", - "default_value": 0.0, - "minimum_value": "machine_depth / -2 if machine_center_is_zero else 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": true - }, - "retraction_hop_enabled": { - "label": "Z Hop When Retracted", - "description": "Whenever a retraction is done, the build plate is lowered to create clearance between the nozzle and the print. It prevents the nozzle from hitting the print during travel moves, reducing the chance to knock the print from the build plate.", - "type": "bool", - "default_value": false, - "enabled": "retraction_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_hop_only_when_collides": { - "label": "Z Hop Only Over Printed Parts", - "description": "Only perform a Z Hop when moving over printed parts which cannot be avoided by horizontal motion by Avoid Printed Parts when Traveling.", - "type": "bool", - "default_value": false, - "enabled": "retraction_enable and retraction_hop_enabled and travel_avoid_other_parts", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_hop": { - "label": "Z Hop Height", - "description": "The height difference when performing a Z Hop.", - "unit": "mm", - "type": "float", - "default_value": 1, - "minimum_value_warning": "0", - "maximum_value_warning": "10", - "enabled": "retraction_enable and retraction_hop_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_hop_after_extruder_switch": { - "label": "Z Hop After Extruder Switch", - "description": "After the machine switched from one extruder to the other, the build plate is lowered to create clearance between the nozzle and the print. This prevents the nozzle from leaving oozed material on the outside of a print.", - "type": "bool", - "default_value": true, - "enabled": "retraction_hop_enabled and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "retraction_hop_after_extruder_switch_height": - { - "label": "Z Hop After Extruder Switch Height", - "description": "The height difference when performing a Z Hop after extruder switch.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "retraction_hop", - "minimum_value_warning": "0", - "maximum_value_warning": "10", - "enabled": "retraction_enable and retraction_hop_after_extruder_switch and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "cooling": - { - "label": "Cooling", - "icon": "Fan", - "description": "Cooling", - "type": "category", - "children": - { - "cool_fan_enabled": - { - "label": "Enable Print Cooling", - "description": "Enables the print cooling fans while printing. The fans improve print quality on layers with short layer times and bridging / overhangs.", - "type": "bool", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_fan_speed": - { - "label": "Fan Speed", - "description": "The speed at which the print cooling fans spin.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 100, - "value": "100.0 if cool_fan_enabled else 0.0", - "enabled": "cool_fan_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "cool_fan_speed_min": - { - "label": "Regular Fan Speed", - "description": "The speed at which the fans spin before hitting the threshold. When a layer prints faster than the threshold, the fan speed gradually inclines towards the maximum fan speed.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "value": "cool_fan_speed", - "default_value": 100, - "enabled": "cool_fan_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_fan_speed_max": - { - "label": "Maximum Fan Speed", - "description": "The speed at which the fans spin on the minimum layer time. The fan speed gradually increases between the regular fan speed and maximum fan speed when the threshold is hit.", - "unit": "%", - "type": "float", - "minimum_value": "max(0, cool_fan_speed_min)", - "maximum_value": "100", - "default_value": 100, - "enabled": "cool_fan_enabled", - "value": "cool_fan_speed", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "cool_min_layer_time_fan_speed_max": - { - "label": "Regular/Maximum Fan Speed Threshold", - "description": "The layer time which sets the threshold between regular fan speed and maximum fan speed. Layers that print slower than this time use regular fan speed. For faster layers the fan speed gradually increases towards the maximum fan speed.", - "unit": "s", - "type": "float", - "default_value": 10, - "maximum_value_warning": "600", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_fan_speed_0": - { - "label": "Initial Fan Speed", - "description": "The speed at which the fans spin at the start of the print. In subsequent layers the fan speed is gradually increased up to the layer corresponding to Regular Fan Speed at Height.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "enabled": "cool_fan_enabled", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_fan_full_at_height": - { - "label": "Regular Fan Speed at Height", - "description": "The height at which the fans spin on regular fan speed. At the layers below the fan speed gradually increases from Initial Fan Speed to Regular Fan Speed.", - "unit": "mm", - "type": "float", - "default_value": 0.5, - "value": "0 if resolveOrValue('adhesion_type') == 'raft' else resolveOrValue('layer_height_0')", - "minimum_value": "0", - "maximum_value_warning": "10.0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "cool_fan_full_layer": - { - "label": "Regular Fan Speed at Layer", - "description": "The layer at which the fans spin on regular fan speed. If regular fan speed at height is set, this value is calculated and rounded to a whole number.", - "type": "int", - "default_value": 2, - "minimum_value": "1", - "maximum_value_warning": "10 / resolveOrValue('layer_height')", - "value": "max(1, int(math.floor((cool_fan_full_at_height - resolveOrValue('layer_height_0')) / resolveOrValue('layer_height')) + 2))", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "cool_min_layer_time": - { - "label": "Minimum Layer Time", - "description": "The minimum time spent in a layer. This forces the printer to slow down, to at least spend the time set here in one layer. This allows the printed material to cool down properly before printing the next layer. Layers may still take shorter than the minimal layer time if Lift Head is disabled and if the Minimum Speed would otherwise be violated.", - "unit": "s", - "type": "float", - "default_value": 5, - "minimum_value": "0", - "maximum_value_warning": "600", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_min_speed": - { - "label": "Minimum Speed", - "description": "The minimum print speed, despite slowing down due to the minimum layer time. When the printer would slow down too much, the pressure in the nozzle would be too low and result in bad print quality.", - "unit": "mm/s", - "type": "float", - "default_value": 10, - "minimum_value": "0", - "maximum_value_warning": "100", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cool_lift_head": - { - "label": "Lift Head", - "description": "When the minimum speed is hit because of minimum layer time, lift the head away from the print and wait the extra time until the minimum layer time is reached.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "support": - { - "label": "Support", - "type": "category", - "icon": "Support", - "description": "Support", - "children": - { - "support_enable": - { - "label": "Generate Support", - "description": "Generate structures to support parts of the model which have overhangs. Without these structures, such parts would collapse during printing.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false - }, - "support_extruder_nr": - { - "label": "Support Extruder", - "description": "The extruder train to use for printing the support. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "int(defaultExtruderPosition())", - "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "children": - { - "support_infill_extruder_nr": - { - "label": "Support Infill Extruder", - "description": "The extruder train to use for printing the infill of the support. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "support_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "support_extruder_nr_layer_0": - { - "label": "First Layer Support Extruder", - "description": "The extruder train to use for printing the first layer of support infill. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "support_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "support_interface_extruder_nr": - { - "label": "Support Interface Extruder", - "description": "The extruder train to use for printing the roofs and floors of the support. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "support_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", - "resolve": "max(extruderValues('support_interface_extruder_nr'))", - "settable_per_mesh": false, - "settable_per_extruder": false, - "children": - { - "support_roof_extruder_nr": - { - "label": "Support Roof Extruder", - "description": "The extruder train to use for printing the roofs of the support. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "support_interface_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", - "resolve": "max(extruderValues('support_roof_extruder_nr'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "support_bottom_extruder_nr": - { - "label": "Support Floor Extruder", - "description": "The extruder train to use for printing the floors of the support. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "support_interface_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and extruders_enabled_count > 1", - "resolve": "max(extruderValues('support_bottom_extruder_nr'))", - "settable_per_mesh": false, - "settable_per_extruder": false - } - } - } - } - }, - "support_structure": - { - "label": "Support Structure", - "description": "Chooses between the techniques available to generate support. \"Normal\" support creates a support structure directly below the overhanging parts and drops those areas straight down. \"Tree\" support creates branches towards the overhanging areas that support the model on the tips of those branches, and allows the branches to crawl around the model to support it from the build plate as much as possible.", - "type": "enum", - "options": - { - "normal": "Normal", - "tree": "Tree" - }, - "enabled": "support_enable", - "default_value": "normal", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "support_tree_angle": - { - "label": "Tree Support Branch Angle", - "description": "The angle of the branches. Use a lower angle to make them more vertical and more stable. Use a higher angle to be able to have more reach.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "maximum_value": "90", - "maximum_value_warning": "60", - "default_value": 40, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_structure=='tree'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_tree_branch_distance": - { - "label": "Tree Support Branch Distance", - "description": "How far apart the branches need to be when they touch the model. Making this distance small will cause the tree support to touch the model at more points, causing better overhang but making support harder to remove.", - "unit": "mm", - "type": "float", - "minimum_value": "0.001", - "default_value": 1, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_structure=='tree'", - "settable_per_mesh": true - }, - "support_tree_branch_diameter": - { - "label": "Tree Support Branch Diameter", - "description": "The diameter of the thinnest branches of tree support. Thicker branches are more sturdy. Branches towards the base will be thicker than this.", - "unit": "mm", - "type": "float", - "minimum_value": "0.001", - "minimum_value_warning": "support_line_width * 2", - "default_value": 2, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_structure=='tree'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_tree_max_diameter": - { - "label": "Tree Support Trunk Diameter", - "description": "The diameter of the widest branches of tree support. A thicker trunk is more sturdy; a thinner trunk takes up less space on the build plate.", - "unit": "mm", - "type": "float", - "minimum_value": "support_tree_branch_diameter", - "minimum_value_warning": "support_line_width * 5", - "default_value": 15, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_structure=='tree'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_tree_branch_diameter_angle": - { - "label": "Tree Support Branch Diameter Angle", - "description": "The angle of the branches' diameter as they gradually become thicker towards the bottom. An angle of 0 will cause the branches to have uniform thickness over their length. A bit of an angle can increase stability of the tree support.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "maximum_value": "89.9999", - "maximum_value_warning": "15", - "default_value": 5, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_structure=='tree'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_tree_collision_resolution": - { - "label": "Tree Support Collision Resolution", - "description": "Resolution to compute collisions with to avoid hitting the model. Setting this lower will produce more accurate trees that fail less often, but increases slicing time dramatically.", - "unit": "mm", - "type": "float", - "minimum_value": "0.001", - "minimum_value_warning": "support_line_width / 4", - "maximum_value_warning": "support_line_width * 2", - "default_value": 0.4, - "value": "support_line_width / 2", - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_structure=='tree' and support_tree_branch_diameter_angle > 0", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_type": - { - "label": "Support Placement", - "description": "Adjusts the placement of the support structures. The placement can be set to touching build plate or everywhere. When set to everywhere the support structures will also be printed on the model.", - "type": "enum", - "options": - { - "buildplate": "Touching Buildplate", - "everywhere": "Everywhere" - }, - "default_value": "everywhere", - "resolve": "'everywhere' if 'everywhere' in extruderValues('support_type') else 'buildplate'", - "enabled": "support_enable", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "support_angle": - { - "label": "Support Overhang Angle", - "description": "The minimum angle of overhangs for which support is added. At a value of 0° all overhangs are supported, 90° will not provide any support.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "maximum_value": "90", - "maximum_value_warning": "80", - "default_value": 50, - "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", - "enabled": "support_enable", - "settable_per_mesh": true - }, - "support_pattern": - { - "label": "Support Pattern", - "description": "The pattern of the support structures of the print. The different options available result in sturdy or easy to remove support.", - "type": "enum", - "options": - { - "lines": "Lines", - "grid": "Grid", - "triangles": "Triangles", - "concentric": "Concentric", - "zigzag": "Zig Zag", - "cross": "Cross", - "gyroid": "Gyroid" - }, - "default_value": "zigzag", - "enabled": "support_enable or support_meshes_present", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_wall_count": - { - "label": "Support Wall Line Count", - "description": "The number of walls with which to surround support infill. Adding a wall can make support print more reliably and can support overhangs better, but increases print time and material used.", - "default_value": 1, - "minimum_value": "0", - "minimum_value_warning": "1 if support_pattern == 'concentric' else 0", - "maximum_value_warning": "0 if (support_skip_some_zags and support_pattern == 'zigzag') else 3", - "maximum_value": "999999", - "type": "int", - "value": "1 if support_enable and support_structure == 'tree' else (1 if (support_pattern == 'grid' or support_pattern == 'triangles' or support_pattern == 'concentric') else 0)", - "enabled": "support_enable or support_meshes_present", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "zig_zaggify_support": - { - "label": "Connect Support Lines", - "description": "Connect the ends of the support lines together. Enabling this setting can make your support more sturdy and reduce underextrusion, but it will cost more material.", - "type": "bool", - "default_value": false, - "value": "support_pattern == 'cross' or support_pattern == 'gyroid'", - "enabled": "(support_enable or support_meshes_present) and (support_pattern == 'lines' or support_pattern == 'grid' or support_pattern == 'triangles' or support_pattern == 'cross' or support_pattern == 'gyroid')", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_connect_zigzags": - { - "label": "Connect Support ZigZags", - "description": "Connect the ZigZags. This will increase the strength of the zig zag support structure.", - "type": "bool", - "default_value": true, - "enabled": "(support_enable or support_meshes_present) and support_pattern == 'zigzag'", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_infill_rate": - { - "label": "Support Density", - "description": "Adjusts the density of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "100", - "default_value": 15, - "value": "15 if support_enable and support_structure == 'normal' else 0 if support_enable and support_structure == 'tree' else 15", - "enabled": "support_enable or support_meshes_present", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_line_distance": - { - "label": "Support Line Distance", - "description": "Distance between the printed support structure lines. This setting is calculated by the support density.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "support_line_width", - "default_value": 2.66, - "enabled": "support_enable or support_meshes_present", - "value": "0 if support_infill_rate == 0 else (support_line_width * 100) / support_infill_rate * (2 if support_pattern == 'grid' else (3 if support_pattern == 'triangles' else 1))", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_initial_layer_line_distance": - { - "label": "Initial Layer Support Line Distance", - "description": "Distance between the printed initial layer support structure lines. This setting is calculated by the support density.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "support_line_width", - "default_value": 2.66, - "enabled": "support_enable or support_meshes_present", - "value": "support_line_distance", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "support_infill_angles": - { - "label": "Support Infill Line Directions", - "description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the default angle 0 degrees.", - "type": "[int]", - "default_value": "[ ]", - "enabled": "(support_enable or support_meshes_present) and support_pattern != 'concentric' and support_infill_rate > 0", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_brim_enable": - { - "label": "Enable Support Brim", - "description": "Generate a brim within the support infill regions of the first layer. This brim is printed underneath the support, not around it. Enabling this setting increases the adhesion of support to the build plate.", - "type": "bool", - "default_value": false, - "value": "support_structure == 'tree'", - "enabled": "support_enable or support_meshes_present", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_brim_width": - { - "label": "Support Brim Width", - "description": "The width of the brim to print underneath the support. A larger brim enhances adhesion to the build plate, at the cost of some extra material.", - "type": "float", - "unit": "mm", - "default_value": 8.0, - "minimum_value": "0.0", - "maximum_value_warning": "50.0", - "maximum_value": "0.5 * min(machine_width, machine_depth)", - "enabled": "(support_enable or support_meshes_present) and support_brim_enable", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "support_infill_extruder_nr", - "children": - { - "support_brim_line_count": - { - "label": "Support Brim Line Count", - "description": "The number of lines used for the support brim. More brim lines enhance adhesion to the build plate, at the cost of some extra material.", - "type": "int", - "default_value": 20, - "minimum_value": "0", - "maximum_value_warning": "50 / skirt_brim_line_width", - "maximum_value": "0.5 * min(machine_width, machine_depth) / skirt_brim_line_width", - "value": "math.ceil(support_brim_width / (skirt_brim_line_width * initial_layer_line_width_factor / 100.0))", - "enabled": "(support_enable or support_meshes_present) and support_brim_enable", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "support_infill_extruder_nr" - } - } - }, - "support_z_distance": - { - "label": "Support Z Distance", - "description": "Distance from the top/bottom of the support structure to the print. This gap provides clearance to remove the supports after the model is printed. This value is rounded up to a multiple of the layer height.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size", - "default_value": 0.1, - "limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true, - "children": - { - "support_top_distance": - { - "label": "Support Top Distance", - "description": "Distance from the top of the support to the print.", - "unit": "mm", - "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size", - "default_value": 0.1, - "type": "float", - "enabled": "support_enable or support_meshes_present", - "value": "extruderValue(support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr, 'support_z_distance') + (layer_height if support_structure == 'tree' else 0)", - "limit_to_extruder": "support_roof_extruder_nr if support_roof_enable else support_infill_extruder_nr", - "settable_per_mesh": true - }, - "support_bottom_distance": - { - "label": "Support Bottom Distance", - "description": "Distance from the print to the bottom of the support.", - "unit": "mm", - "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size", - "default_value": 0.1, - "value": "extruderValue(support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr, 'support_z_distance') if support_type == 'everywhere' else 0", - "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", - "type": "float", - "enabled": "(support_enable or support_meshes_present) and resolveOrValue('support_type') == 'everywhere'", - "settable_per_mesh": true - } - } - }, - "support_xy_distance": - { - "label": "Support X/Y Distance", - "description": "Distance of the support structure from the print in the X/Y directions.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "1.5 * machine_nozzle_tip_outer_diameter", - "default_value": 0.7, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true - }, - "support_xy_overrides_z": - { - "label": "Support Distance Priority", - "description": "Whether the Support X/Y Distance overrides the Support Z Distance or vice versa. When X/Y overrides Z the X/Y distance can push away the support from the model, influencing the actual Z distance to the overhang. We can disable this by not applying the X/Y distance around overhangs.", - "type": "enum", - "options": - { - "xy_overrides_z": "X/Y overrides Z", - "z_overrides_xy": "Z overrides X/Y" - }, - "default_value": "z_overrides_xy", - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true - }, - "support_xy_distance_overhang": - { - "label": "Minimum Support X/Y Distance", - "description": "Distance of the support structure from the overhang in the X/Y directions.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "support_xy_distance - support_line_width * 2", - "maximum_value_warning": "support_xy_distance", - "default_value": 0.2, - "value": "machine_nozzle_size / 2", - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and support_xy_overrides_z == 'z_overrides_xy'", - "settable_per_mesh": true - }, - "support_bottom_stair_step_height": - { - "label": "Support Stair Step Height", - "description": "The height of the steps of the stair-like bottom of support resting on the model. A low value makes the support harder to remove, but too high values can lead to unstable support structures. Set to zero to turn off the stair-like behaviour.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", - "minimum_value": "0", - "maximum_value_warning": "1.0", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true - }, - "support_bottom_stair_step_width": - { - "label": "Support Stair Step Maximum Width", - "description": "The maximum width of the steps of the stair-like bottom of support resting on the model. A low value makes the support harder to remove, but too high values can lead to unstable support structures.", - "unit": "mm", - "type": "float", - "default_value": 5.0, - "limit_to_extruder": "support_interface_extruder_nr if support_interface_enable else support_infill_extruder_nr", - "minimum_value": "0", - "maximum_value_warning": "10.0", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true - }, - "support_bottom_stair_step_min_slope": - { - "label": "Support Stair Step Minimum Slope Angle", - "description": "The minimum slope of the area for stair-stepping to take effect. Low values should make support easier to remove on shallower slopes, but really low values may result in some very counter-intuitive results on other parts of the model.", - "unit": "°", - "type": "float", - "default_value": 10.0, - "limit_to_extruder": "support_bottom_extruder_nr if support_bottom_enable else support_infill_extruder_nr", - "minimum_value": "0.01", - "maximum_value": "89.99", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true - }, - "support_join_distance": - { - "label": "Support Join Distance", - "description": "The maximum distance between support structures in the X/Y directions. When separate structures are closer together than this value, the structures merge into one.", - "unit": "mm", - "type": "float", - "default_value": 2.0, - "limit_to_extruder": "support_infill_extruder_nr", - "minimum_value_warning": "0", - "maximum_value_warning": "10", - "enabled": "(support_enable and support_structure == 'normal') or support_meshes_present", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_offset": - { - "label": "Support Horizontal Expansion", - "description": "Amount of offset applied to all support polygons in each layer. Positive values can smooth out the support areas and result in more sturdy support.", - "unit": "mm", - "type": "float", - "default_value": 0, - "limit_to_extruder": "support_infill_extruder_nr", - "minimum_value_warning": "-1 * machine_nozzle_size", - "maximum_value_warning": "10 * machine_nozzle_size", - "enabled": "(support_enable and support_structure == 'normal') or support_meshes_present", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_infill_sparse_thickness": - { - "label": "Support Infill Layer Thickness", - "description": "The thickness per layer of support infill material. This value should always be a multiple of the layer height and is otherwise rounded.", - "unit": "mm", - "type": "float", - "default_value": 0.1, - "minimum_value": "resolveOrValue('layer_height')", - "maximum_value_warning": "0.75 * machine_nozzle_size", - "maximum_value": "resolveOrValue('layer_height') * 8", - "value": "resolveOrValue('layer_height')", - "enabled": "(support_enable or support_meshes_present) and support_infill_rate > 0", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "gradual_support_infill_steps": - { - "label": "Gradual Support Infill Steps", - "description": "Number of times to reduce the support infill density by half when getting further below top surfaces. Areas which are closer to top surfaces get a higher density, up to the Support Infill Density.", - "default_value": 0, - "type": "int", - "minimum_value": "0", - "maximum_value_warning": "1 if (support_pattern == 'cross' or support_pattern == 'lines' or support_pattern == 'concentric') else 5", - "maximum_value": "999999 if support_line_distance == 0 else (20 - math.log(support_line_distance) / math.log(2))", - "enabled": "(support_enable or support_meshes_present) and support_infill_rate > 0", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "gradual_support_infill_step_height": - { - "label": "Gradual Support Infill Step Height", - "description": "The height of support infill of a given density before switching to half the density.", - "unit": "mm", - "type": "float", - "default_value": 1, - "minimum_value": "0.0001", - "minimum_value_warning": "3 * resolveOrValue('layer_height')", - "enabled": "(support_enable or support_meshes_present) and support_infill_rate > 0 and gradual_support_infill_steps > 0", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "minimum_support_area": - { - "label": "Minimum Support Area", - "description": "Minimum area size for support polygons. Polygons which have an area smaller than this value will not be generated.", - "unit": "mm²", - "type": "float", - "default_value": 0.0, - "minimum_value": "0", - "maximum_value_warning": "10", - "enabled": "(support_enable or support_meshes_present) and support_structure == 'normal'", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": true - }, - "support_interface_enable": - { - "label": "Enable Support Interface", - "description": "Generate a dense interface between the model and the support. This will create a skin at the top of the support on which the model is printed and at the bottom of the support, where it rests on the model.", - "type": "bool", - "default_value": false, - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true, - "children": - { - "support_roof_enable": - { - "label": "Enable Support Roof", - "description": "Generate a dense slab of material between the top of support and the model. This will create a skin between the model and support.", - "type": "bool", - "default_value": false, - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_enable')", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true - }, - "support_bottom_enable": - { - "label": "Enable Support Floor", - "description": "Generate a dense slab of material between the bottom of the support and the model. This will create a skin between the model and support.", - "type": "bool", - "default_value": false, - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_enable')", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": true - } - } - }, - "support_interface_height": - { - "label": "Support Interface Thickness", - "description": "The thickness of the interface of the support where it touches with the model on the bottom or the top.", - "unit": "mm", - "type": "float", - "default_value": 1, - "minimum_value": "0", - "minimum_value_warning": "0.2 + layer_height", - "maximum_value_warning": "10", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": true, - "children": - { - "support_roof_height": - { - "label": "Support Roof Thickness", - "description": "The thickness of the support roofs. This controls the amount of dense layers at the top of the support on which the model rests.", - "unit": "mm", - "type": "float", - "default_value": 1, - "minimum_value": "0", - "minimum_value_warning": "support_top_distance + layer_height", - "maximum_value_warning": "10", - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_height')", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": true - }, - "support_bottom_height": - { - "label": "Support Floor Thickness", - "description": "The thickness of the support floors. This controls the number of dense layers that are printed on top of places of a model on which support rests.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_height')", - "minimum_value": "0", - "minimum_value_warning": "min(support_bottom_distance + layer_height, support_bottom_stair_step_height)", - "maximum_value_warning": "10", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": true - } - } - }, - "support_interface_skip_height": { - "label": "Support Interface Resolution", - "description": "When checking where there's model above and below the support, take steps of the given height. Lower values will slice slower, while higher values may cause normal support to be printed in some places where there should have been support interface.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "minimum_value": "0", - "maximum_value_warning": "support_interface_height", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": true - }, - "support_interface_density": - { - "label": "Support Interface Density", - "description": "Adjusts the density of the roofs and floors of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", - "unit": "%", - "type": "float", - "default_value": 100, - "minimum_value": "0", - "maximum_value_warning": "100", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_density": - { - "label": "Support Roof Density", - "description": "The density of the roofs of the support structure. A higher value results in better overhangs, but the supports are harder to remove.", - "unit": "%", - "type": "float", - "default_value": 100, - "minimum_value": "0", - "maximum_value": "100", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_meshes_present)", - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_density')", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_line_distance": - { - "label": "Support Roof Line Distance", - "description": "Distance between the printed support roof lines. This setting is calculated by the Support Roof Density, but can be adjusted separately.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "minimum_value": "0", - "minimum_value_warning": "support_roof_line_width - 0.0001", - "value": "0 if support_roof_density == 0 else (support_roof_line_width * 100) / support_roof_density * (2 if support_roof_pattern == 'grid' else (3 if support_roof_pattern == 'triangles' else 1))", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "support_bottom_density": - { - "label": "Support Floor Density", - "description": "The density of the floors of the support structure. A higher value results in better adhesion of the support on top of the model.", - "unit": "%", - "type": "float", - "default_value": 100, - "minimum_value": "0", - "maximum_value": "100", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_meshes_present)", - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_density')", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_bottom_line_distance": - { - "label": "Support Floor Line Distance", - "description": "Distance between the printed support floor lines. This setting is calculated by the Support Floor Density, but can be adjusted separately.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "minimum_value": "0", - "minimum_value_warning": "support_bottom_line_width - 0.0001", - "value": "0 if support_bottom_density == 0 else (support_bottom_line_width * 100) / support_bottom_density * (2 if support_bottom_pattern == 'grid' else (3 if support_bottom_pattern == 'triangles' else 1))", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - } - } - }, - "support_interface_pattern": - { - "label": "Support Interface Pattern", - "description": "The pattern with which the interface of the support with the model is printed.", - "type": "enum", - "options": - { - "lines": "Lines", - "grid": "Grid", - "triangles": "Triangles", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "concentric", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_pattern": - { - "label": "Support Roof Pattern", - "description": "The pattern with which the roofs of the support are printed.", - "type": "enum", - "options": - { - "lines": "Lines", - "grid": "Grid", - "triangles": "Triangles", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "concentric", - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_pattern')", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_bottom_pattern": - { - "label": "Support Floor Pattern", - "description": "The pattern with which the floors of the support are printed.", - "type": "enum", - "options": - { - "lines": "Lines", - "grid": "Grid", - "triangles": "Triangles", - "concentric": "Concentric", - "zigzag": "Zig Zag" - }, - "default_value": "concentric", - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_pattern')", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "minimum_interface_area": - { - "label": "Minimum Support Interface Area", - "description": "Minimum area size for support interface polygons. Polygons which have an area smaller than this value will be printed as normal support.", - "unit": "mm²", - "type": "float", - "default_value": 1.0, - "minimum_value": "0", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": true, - "children": - { - "minimum_roof_area": - { - "label": "Minimum Support Roof Area", - "description": "Minimum area size for the roofs of the support. Polygons which have an area smaller than this value will be printed as normal support.", - "unit": "mm²", - "type": "float", - "default_value": 1.0, - "value": "extruderValue(support_roof_extruder_nr, 'minimum_interface_area')", - "minimum_value": "0", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": true - }, - "minimum_bottom_area": - { - "label": "Minimum Support Floor Area", - "description": "Minimum area size for the floors of the support. Polygons which have an area smaller than this value will be printed as normal support.", - "unit": "mm²", - "type": "float", - "default_value": 1.0, - "value": "extruderValue(support_bottom_extruder_nr, 'minimum_interface_area')", - "minimum_value": "0", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": true - } - } - }, - "support_interface_offset": - { - "label": "Support Interface Horizontal Expansion", - "description": "Amount of offset applied to the support interface polygons.", - "unit": "mm", - "type": "float", - "default_value": 0.0, - "maximum_value": "extruderValue(support_extruder_nr, 'support_offset')", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "support_interface_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_offset": - { - "label": "Support Roof Horizontal Expansion", - "description": "Amount of offset applied to the roofs of the support.", - "unit": "mm", - "type": "float", - "default_value": 0.0, - "value": "extruderValue(support_roof_extruder_nr, 'support_interface_offset')", - "maximum_value": "extruderValue(support_extruder_nr, 'support_offset')", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "support_roof_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_bottom_offset": - { - "label": "Support Floor Horizontal Expansion", - "description": "Amount of offset applied to the floors of the support.", - "unit": "mm", - "type": "float", - "default_value": 0.0, - "value": "extruderValue(support_bottom_extruder_nr, 'support_interface_offset')", - "maximum_value": "extruderValue(support_extruder_nr, 'support_offset')", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "support_bottom_enable and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "support_interface_angles": - { - "label": "Support Interface Line Directions", - "description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the default angles (alternates between 45 and 135 degrees if interfaces are quite thick or 90 degrees).", - "type": "[int]", - "default_value": "[ ]", - "limit_to_extruder": "support_interface_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and support_interface_enable and support_interface_pattern != 'concentric'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_roof_angles": - { - "label": "Support Roof Line Directions", - "description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the default angles (alternates between 45 and 135 degrees if interfaces are quite thick or 90 degrees).", - "type": "[int]", - "default_value": "[ ]", - "value": "support_interface_angles", - "limit_to_extruder": "support_roof_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and support_roof_enable and support_roof_pattern != 'concentric'", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_bottom_angles": - { - "label": "Support Floor Line Directions", - "description": "A list of integer line directions to use. Elements from the list are used sequentially as the layers progress and when the end of the list is reached, it starts at the beginning again. The list items are separated by commas and the whole list is contained in square brackets. Default is an empty list which means use the default angles (alternates between 45 and 135 degrees if interfaces are quite thick or 90 degrees).", - "type": "[int]", - "default_value": "[ ]", - "value": "support_interface_angles", - "limit_to_extruder": "support_bottom_extruder_nr", - "enabled": "(support_enable or support_meshes_present) and support_bottom_enable and support_bottom_pattern != 'concentric'", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "support_fan_enable": - { - "label": "Fan Speed Override", - "description": "When enabled, the print cooling fan speed is altered for the skin regions immediately above the support.", - "type": "bool", - "default_value": false, - "enabled": "support_enable or support_meshes_present", - "settable_per_mesh": false - }, - "support_supported_skin_fan_speed": - { - "label": "Supported Skin Fan Speed", - "description": "Percentage fan speed to use when printing the skin regions immediately above the support. Using a high fan speed can make the support easier to remove.", - "unit": "%", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 100, - "type": "float", - "enabled": "(support_enable or support_meshes_present) and support_fan_enable", - "settable_per_mesh": false - }, - "support_use_towers": - { - "label": "Use Towers", - "description": "Use specialized towers to support tiny overhang areas. These towers have a larger diameter than the region they support. Near the overhang the towers' diameter decreases, forming a roof.", - "type": "bool", - "default_value": true, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_structure == 'normal'", - "settable_per_mesh": true - }, - "support_tower_diameter": - { - "label": "Tower Diameter", - "description": "The diameter of a special tower.", - "unit": "mm", - "type": "float", - "default_value": 3.0, - "limit_to_extruder": "support_infill_extruder_nr", - "minimum_value": "0", - "minimum_value_warning": "2 * machine_nozzle_size", - "maximum_value_warning": "20", - "enabled": "support_enable and support_structure == 'normal' and support_use_towers", - "settable_per_mesh": true - }, - "support_tower_maximum_supported_diameter": - { - "label": "Maximum Tower-Supported Diameter", - "description": "Maximum diameter in the X/Y directions of a small area which is to be supported by a specialized support tower.", - "unit": "mm", - "type": "float", - "default_value": 3.0, - "limit_to_extruder": "support_infill_extruder_nr", - "minimum_value": "0", - "minimum_value_warning": "2 * machine_nozzle_size", - "maximum_value_warning": "20", - "maximum_value": "support_tower_diameter", - "enabled": "support_enable and support_structure == 'normal' and support_use_towers", - "settable_per_mesh": true - }, - "support_tower_roof_angle": - { - "label": "Tower Roof Angle", - "description": "The angle of a rooftop of a tower. A higher value results in pointed tower roofs, a lower value results in flattened tower roofs.", - "unit": "°", - "type": "int", - "minimum_value": "0", - "maximum_value": "90", - "default_value": 65, - "limit_to_extruder": "support_infill_extruder_nr", - "enabled": "support_enable and support_structure == 'normal' and support_use_towers", - "settable_per_mesh": true - }, - "support_mesh_drop_down": - { - "label": "Drop Down Support Mesh", - "description": "Make support everywhere below the support mesh, so that there's no overhang in the support mesh.", - "type": "bool", - "default_value": true, - "enabled": "support_mesh", - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "support_meshes_present": - { - "label": "Scene Has Support Meshes", - "description": "There are support meshes present in the scene. This setting is controlled by Cura.", - "type": "bool", - "default_value": false, - "enabled": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - } - } - }, - "platform_adhesion": - { - "label": "Build Plate Adhesion", - "type": "category", - "icon": "Adhesion", - "description": "Adhesion", - "children": - { - "prime_blob_enable": - { - "label": "Enable Prime Blob", - "description": "Whether to prime the filament with a blob before printing. Turning this setting on will ensure that the extruder will have material ready at the nozzle before printing. Printing Brim or Skirt can act like priming too, in which case turning this setting off saves some time.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true, - "enabled": false, - "warning_value": "True if resolveOrValue('print_sequence') == 'one_at_a_time' else None" - }, - "extruder_prime_pos_x": - { - "label": "Extruder Prime X Position", - "description": "The X coordinate of the position where the nozzle primes at the start of printing.", - "type": "float", - "unit": "mm", - "default_value": 0, - "minimum_value_warning": "machine_width / -2 if machine_center_is_zero else 0", - "maximum_value_warning": "machine_width / 2 if machine_center_is_zero else machine_width", - "settable_per_mesh": false, - "settable_per_extruder": true, - "enabled": false - }, - "extruder_prime_pos_y": - { - "label": "Extruder Prime Y Position", - "description": "The Y coordinate of the position where the nozzle primes at the start of printing.", - "type": "float", - "unit": "mm", - "default_value": 0, - "minimum_value_warning": "machine_depth / -2 if machine_center_is_zero else 0", - "maximum_value_warning": "machine_depth / 2 if machine_center_is_zero else machine_depth", - "settable_per_mesh": false, - "settable_per_extruder": true, - "enabled": false - }, - "adhesion_type": - { - "label": "Build Plate Adhesion Type", - "description": "Different options that help to improve both priming your extrusion and adhesion to the build plate. Brim adds a single layer flat area around the base of your model to prevent warping. Raft adds a thick grid with a roof below the model. Skirt is a line printed around the model, but not connected to the model.", - "type": "enum", - "options": - { - "skirt": "Skirt", - "brim": "Brim", - "raft": "Raft", - "none": "None" - }, - "default_value": "brim", - "resolve": "extruderValue(adhesion_extruder_nr, 'adhesion_type')", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "adhesion_extruder_nr": - { - "label": "Build Plate Adhesion Extruder", - "description": "The extruder train to use for printing the skirt/brim/raft. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "int(defaultExtruderPosition())", - "enabled": "extruders_enabled_count > 1 and (resolveOrValue('adhesion_type') != 'none' or resolveOrValue('prime_tower_brim_enable'))", - "resolve": "max(extruderValues('adhesion_extruder_nr'))", - "settable_per_mesh": false, - "settable_per_extruder": false, - "children": - { - "skirt_brim_extruder_nr": - { - "label": "Skirt/Brim Extruder", - "description": "The extruder train to use for printing the skirt or brim. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "adhesion_extruder_nr", - "enabled": "extruders_enabled_count > 1 and (resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "raft_base_extruder_nr": - { - "label": "Raft Base Extruder", - "description": "The extruder train to use for printing the first layer of the raft. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "adhesion_extruder_nr", - "enabled": "extruders_enabled_count > 1 and resolveOrValue('adhesion_type') == 'raft'", - "resolve": "max(extruderValues('raft_base_extruder_nr'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "raft_interface_extruder_nr": - { - "label": "Raft Middle Extruder", - "description": "The extruder train to use for printing the middle layer of the raft. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "adhesion_extruder_nr", - "enabled": "extruders_enabled_count > 1 and resolveOrValue('adhesion_type') == 'raft'", - "resolve": "max(extruderValues('raft_interface_extruder_nr'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "raft_surface_extruder_nr": - { - "label": "Raft Top Extruder", - "description": "The extruder train to use for printing the top layer(s) of the raft. This is used in multi-extrusion.", - "type": "extruder", - "default_value": "0", - "value": "adhesion_extruder_nr", - "enabled": "extruders_enabled_count > 1 and resolveOrValue('adhesion_type') == 'raft'", - "resolve": "max(extruderValues('raft_surface_extruder_nr'))", - "settable_per_mesh": false, - "settable_per_extruder": false - } - } - }, - "skirt_line_count": - { - "label": "Skirt Line Count", - "description": "Multiple skirt lines help to prime your extrusion better for small models. Setting this to 0 will disable the skirt.", - "type": "int", - "default_value": 1, - "minimum_value": "0", - "maximum_value_warning": "10", - "maximum_value": "0.5 * min(machine_width, machine_depth) / skirt_brim_line_width", - "enabled": "resolveOrValue('adhesion_type') == 'skirt'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "skirt_brim_extruder_nr" - }, - "skirt_gap": - { - "label": "Skirt Distance", - "description": "The horizontal distance between the skirt and the first layer of the print.\nThis is the minimum distance. Multiple skirt lines will extend outwards from this distance.", - "unit": "mm", - "type": "float", - "default_value": 3, - "minimum_value_warning": "max(extruderValues('machine_nozzle_size'))", - "maximum_value_warning": "10", - "enabled": "resolveOrValue('adhesion_type') == 'skirt'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "skirt_brim_extruder_nr" - }, - "skirt_brim_minimal_length": - { - "label": "Skirt/Brim Minimum Length", - "description": "The minimum length of the skirt or brim. If this length is not reached by all skirt or brim lines together, more skirt or brim lines will be added until the minimum length is reached. Note: If the line count is set to 0 this is ignored.", - "unit": "mm", - "type": "float", - "default_value": 250, - "minimum_value": "0", - "minimum_value_warning": "25", - "maximum_value_warning": "2500", - "enabled": "resolveOrValue('adhesion_type') == 'skirt' or resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "brim_width": - { - "label": "Brim Width", - "description": "The distance from the model to the outermost brim line. A larger brim enhances adhesion to the build plate, but also reduces the effective print area.", - "type": "float", - "unit": "mm", - "default_value": 8.0, - "minimum_value": "0.0", - "maximum_value_warning": "50.0", - "maximum_value": "0.5 * min(machine_width, machine_depth)", - "enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "skirt_brim_extruder_nr", - "children": - { - "brim_line_count": - { - "label": "Brim Line Count", - "description": "The number of lines used for a brim. More brim lines enhance adhesion to the build plate, but also reduces the effective print area.", - "type": "int", - "default_value": 20, - "minimum_value": "0", - "maximum_value_warning": "50 / skirt_brim_line_width", - "maximum_value": "0.5 * min(machine_width, machine_depth) / skirt_brim_line_width", - "value": "math.ceil(brim_width / (skirt_brim_line_width * initial_layer_line_width_factor / 100.0))", - "enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "skirt_brim_extruder_nr" - } - } - }, - "brim_gap": - { - "label": "Brim Distance", - "description": "The horizontal distance between the first brim line and the outline of the first layer of the print. A small gap can make the brim easier to remove while still providing the thermal benefits.", - "unit": "mm", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "maximum_value_warning": "skirt_brim_line_width", - "enabled": "resolveOrValue('adhesion_type') == 'brim'", - "settable_per_mesh": true, - "settable_per_extruder": true, - "limit_to_extruder": "skirt_brim_extruder_nr" - }, - "brim_replaces_support": - { - "label": "Brim Replaces Support", - "description": "Enforce brim to be printed around the model even if that space would otherwise be occupied by support. This replaces some regions of the first layer of support by brim regions.", - "type": "bool", - "default_value": true, - "enabled": "resolveOrValue('adhesion_type') == 'brim' and (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "support_infill_extruder_nr" - }, - "brim_outside_only": - { - "label": "Brim Only on Outside", - "description": "Only print the brim on the outside of the model. This reduces the amount of brim you need to remove afterwards, while it doesn't reduce the bed adhesion that much.", - "type": "bool", - "default_value": true, - "enabled": "resolveOrValue('adhesion_type') == 'brim'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "skirt_brim_extruder_nr" - }, - "raft_margin": - { - "label": "Raft Extra Margin", - "description": "If the raft is enabled, this is the extra raft area around the model which is also given a raft. Increasing this margin will create a stronger raft while using more material and leaving less area for your print.", - "unit": "mm", - "type": "float", - "default_value": 15, - "minimum_value_warning": "raft_interface_line_width", - "maximum_value_warning": "20", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "adhesion_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "raft_smoothing": - { - "label": "Raft Smoothing", - "description": "This setting controls how much inner corners in the raft outline are rounded. Inward corners are rounded to a semi circle with a radius equal to the value given here. This setting also removes holes in the raft outline which are smaller than such a circle.", - "unit": "mm", - "type": "float", - "default_value": 5, - "minimum_value": "0", - "minimum_value_warning": "raft_interface_line_width", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and not raft_remove_inside_corners", - "limit_to_extruder": "adhesion_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "raft_airgap": - { - "label": "Raft Air Gap", - "description": "The gap between the final raft layer and the first layer of the model. Only the first layer is raised by this amount to lower the bonding between the raft layer and the model. Makes it easier to peel off the raft.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "minimum_value": "0", - "maximum_value_warning": "min(extruderValues('machine_nozzle_size'))", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_surface_extruder_nr" - }, - "layer_0_z_overlap": - { - "label": "Initial Layer Z Overlap", - "description": "Make the first and second layer of the model overlap in the Z direction to compensate for the filament lost in the airgap. All models above the first model layer will be shifted down by this amount.", - "unit": "mm", - "type": "float", - "default_value": 0.22, - "value": "raft_airgap / 2", - "minimum_value": "0", - "maximum_value_warning": "raft_airgap", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_surface_extruder_nr" - }, - "raft_surface_layers": - { - "label": "Raft Top Layers", - "description": "The number of top layers on top of the 2nd raft layer. These are fully filled layers that the model sits on. 2 layers result in a smoother top surface than 1.", - "type": "int", - "default_value": 2, - "minimum_value": "0", - "maximum_value_warning": "20", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_surface_extruder_nr" - }, - "raft_surface_thickness": - { - "label": "Raft Top Layer Thickness", - "description": "Layer thickness of the top raft layers.", - "unit": "mm", - "type": "float", - "default_value": 0.1, - "value": "resolveOrValue('layer_height')", - "minimum_value": "0.001", - "minimum_value_warning": "0.04", - "maximum_value_warning": "0.75 * machine_nozzle_size", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_surface_extruder_nr" - }, - "raft_surface_line_width": - { - "label": "Raft Top Line Width", - "description": "Width of the lines in the top surface of the raft. These can be thin lines so that the top of the raft becomes smooth.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "value": "line_width", - "minimum_value": "0.001", - "minimum_value_warning": "machine_nozzle_size * 0.1", - "maximum_value_warning": "machine_nozzle_size * 2", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_surface_extruder_nr" - }, - "raft_surface_line_spacing": - { - "label": "Raft Top Spacing", - "description": "The distance between the raft lines for the top raft layers. The spacing should be equal to the line width, so that the surface is solid.", - "unit": "mm", - "type": "float", - "default_value": 0.4, - "minimum_value": "0", - "minimum_value_warning": "raft_surface_line_width", - "maximum_value_warning": "raft_surface_line_width * 3", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", - "value": "raft_surface_line_width", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_surface_extruder_nr" - }, - "raft_interface_layers": - { - "label": "Raft Middle Layers", - "description": "The number of layers between the base and the surface of the raft. These comprise the main thickness of the raft. Increasing this creates a thicker, sturdier raft.", - "type": "int", - "default_value": 1, - "minimum_value": "0", - "maximum_value_warning": "10", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_interface_extruder_nr" - }, - "raft_interface_thickness": - { - "label": "Raft Middle Thickness", - "description": "Layer thickness of the middle raft layer.", - "unit": "mm", - "type": "float", - "default_value": 0.15, - "value": "resolveOrValue('layer_height') * 1.5", - "minimum_value": "0.001", - "minimum_value_warning": "0.04", - "maximum_value_warning": "0.75 * machine_nozzle_size", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_interface_layers > 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_interface_extruder_nr" - }, - "raft_interface_line_width": - { - "label": "Raft Middle Line Width", - "description": "Width of the lines in the middle raft layer. Making the second layer extrude more causes the lines to stick to the build plate.", - "unit": "mm", - "type": "float", - "default_value": 0.7, - "value": "line_width * 2", - "minimum_value": "0.001", - "minimum_value_warning": "machine_nozzle_size * 0.5", - "maximum_value_warning": "machine_nozzle_size * 3", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_interface_layers > 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_interface_extruder_nr" - }, - "raft_interface_line_spacing": - { - "label": "Raft Middle Spacing", - "description": "The distance between the raft lines for the middle raft layer. The spacing of the middle should be quite wide, while being dense enough to support the top raft layers.", - "unit": "mm", - "type": "float", - "default_value": 0.9, - "value": "raft_interface_line_width + 0.2", - "minimum_value": "0", - "minimum_value_warning": "raft_interface_line_width", - "maximum_value_warning": "15.0", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_interface_layers > 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_interface_extruder_nr" - }, - "raft_base_thickness": - { - "label": "Raft Base Thickness", - "description": "Layer thickness of the base raft layer. This should be a thick layer which sticks firmly to the printer build plate.", - "unit": "mm", - "type": "float", - "default_value": 0.3, - "value": "resolveOrValue('layer_height_0') * 1.2", - "minimum_value": "0.001", - "minimum_value_warning": "0.04", - "maximum_value_warning": "0.75 * raft_base_line_width", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_base_extruder_nr" - }, - "raft_base_line_width": - { - "label": "Raft Base Line Width", - "description": "Width of the lines in the base raft layer. These should be thick lines to assist in build plate adhesion.", - "unit": "mm", - "type": "float", - "default_value": 0.8, - "minimum_value": "0.001", - "value": "machine_nozzle_size * 2", - "minimum_value_warning": "machine_nozzle_size * 0.5", - "maximum_value_warning": "machine_nozzle_size * 3", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_base_extruder_nr" - }, - "raft_base_line_spacing": - { - "label": "Raft Base Line Spacing", - "description": "The distance between the raft lines for the base raft layer. Wide spacing makes for easy removal of the raft from the build plate.", - "unit": "mm", - "type": "float", - "default_value": 1.6, - "value": "raft_base_line_width * 2", - "minimum_value": "0", - "minimum_value_warning": "raft_base_line_width", - "maximum_value_warning": "100", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_base_extruder_nr" - }, - "raft_speed": - { - "label": "Raft Print Speed", - "description": "The speed at which the raft is printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "200", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "value": "speed_print / 60 * 30", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "adhesion_extruder_nr", - "children": - { - "raft_surface_speed": - { - "label": "Raft Top Print Speed", - "description": "The speed at which the top raft layers are printed. These should be printed a bit slower, so that the nozzle can slowly smooth out adjacent surface lines.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "100", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", - "value": "raft_speed", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_surface_extruder_nr" - }, - "raft_interface_speed": - { - "label": "Raft Middle Print Speed", - "description": "The speed at which the middle raft layer is printed. This should be printed quite slowly, as the volume of material coming out of the nozzle is quite high.", - "unit": "mm/s", - "type": "float", - "default_value": 15, - "value": "raft_speed * 0.75", - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "150", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_interface_layers > 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_interface_extruder_nr" - }, - "raft_base_speed": - { - "label": "Raft Base Print Speed", - "description": "The speed at which the base raft layer is printed. This should be printed quite slowly, as the volume of material coming out of the nozzle is quite high.", - "unit": "mm/s", - "type": "float", - "default_value": 15, - "minimum_value": "0.1", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "200", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "value": "0.75 * raft_speed", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_base_extruder_nr" - } - } - }, - "raft_acceleration": - { - "label": "Raft Print Acceleration", - "description": "The acceleration with which the raft is printed.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "value": "acceleration_print", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr", - "children": - { - "raft_surface_acceleration": - { - "label": "Raft Top Print Acceleration", - "description": "The acceleration with which the top raft layers are printed.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "raft_acceleration", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled') and raft_surface_layers > 0", - "settable_per_mesh": false, - "limit_to_extruder": "raft_surface_extruder_nr" - }, - "raft_interface_acceleration": - { - "label": "Raft Middle Print Acceleration", - "description": "The acceleration with which the middle raft layer is printed.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "raft_acceleration", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled') and raft_interface_layers > 0", - "settable_per_mesh": false, - "limit_to_extruder": "raft_interface_extruder_nr" - }, - "raft_base_acceleration": - { - "label": "Raft Base Print Acceleration", - "description": "The acceleration with which the base raft layer is printed.", - "unit": "mm/s²", - "type": "float", - "default_value": 3000, - "value": "raft_acceleration", - "minimum_value": "0.1", - "minimum_value_warning": "100", - "maximum_value_warning": "10000", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('acceleration_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "raft_base_extruder_nr" - } - } - }, - "raft_jerk": - { - "label": "Raft Print Jerk", - "description": "The jerk with which the raft is printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "minimum_value": "0", - "minimum_value_warning": "5", - "maximum_value_warning": "50", - "value": "jerk_print", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "adhesion_extruder_nr", - "children": - { - "raft_surface_jerk": - { - "label": "Raft Top Print Jerk", - "description": "The jerk with which the top raft layers are printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "raft_jerk", - "minimum_value": "0", - "minimum_value_warning": "5", - "maximum_value_warning": "100", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled') and raft_surface_layers > 0", - "settable_per_mesh": false, - "limit_to_extruder": "raft_surface_extruder_nr" - }, - "raft_interface_jerk": - { - "label": "Raft Middle Print Jerk", - "description": "The jerk with which the middle raft layer is printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "raft_jerk", - "minimum_value": "0", - "minimum_value_warning": "5", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled') and raft_interface_layers > 0", - "settable_per_mesh": false, - "limit_to_extruder": "raft_interface_extruder_nr" - }, - "raft_base_jerk": - { - "label": "Raft Base Print Jerk", - "description": "The jerk with which the base raft layer is printed.", - "unit": "mm/s", - "type": "float", - "default_value": 20, - "value": "raft_jerk", - "minimum_value": "0", - "minimum_value_warning": "5", - "maximum_value_warning": "50", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and resolveOrValue('jerk_enabled')", - "settable_per_mesh": false, - "limit_to_extruder": "raft_base_extruder_nr" - } - } - }, - "raft_fan_speed": - { - "label": "Raft Fan Speed", - "description": "The fan speed for the raft.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "settable_per_mesh": false, - "settable_per_extruder": true, - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "limit_to_extruder": "adhesion_extruder_nr", - "children": - { - "raft_surface_fan_speed": - { - "label": "Raft Top Fan Speed", - "description": "The fan speed for the top raft layers.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "value": "raft_fan_speed", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_surface_layers > 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_surface_extruder_nr" - }, - "raft_interface_fan_speed": - { - "label": "Raft Middle Fan Speed", - "description": "The fan speed for the middle raft layer.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "value": "raft_fan_speed", - "enabled": "resolveOrValue('adhesion_type') == 'raft' and raft_interface_layers > 0", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_interface_extruder_nr" - }, - "raft_base_fan_speed": - { - "label": "Raft Base Fan Speed", - "description": "The fan speed for the base raft layer.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "value": "raft_fan_speed", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": true, - "limit_to_extruder": "raft_base_extruder_nr" - } - } - } - } - }, - "dual": - { - "label": "Dual Extrusion", - "type": "category", - "icon": "DualExtrusion", - "description": "Settings used for printing with multiple extruders.", - "children": - { - "prime_tower_enable": - { - "label": "Enable Prime Tower", - "description": "Print a tower next to the print which serves to prime the material after each nozzle switch.", - "type": "bool", - "enabled": "extruders_enabled_count > 1", - "default_value": false, - "resolve": "(extruders_enabled_count > 1) and any(extruderValues('prime_tower_enable'))", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "prime_tower_size": - { - "label": "Prime Tower Size", - "description": "The width of the prime tower.", - "type": "float", - "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 20, - "resolve": "max(extruderValues('prime_tower_size'))", - "minimum_value": "0", - "maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)", - "minimum_value_warning": "max(extruderValues('prime_tower_line_width')) * 2", - "maximum_value_warning": "42", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "prime_tower_min_volume": - { - "label": "Prime Tower Minimum Volume", - "description": "The minimum volume for each layer of the prime tower in order to purge enough material.", - "unit": "mm³", - "type": "float", - "default_value": 6, - "minimum_value": "0", - "maximum_value_warning": "(resolveOrValue('prime_tower_size') * 0.5) ** 2 * 3.14159 * resolveOrValue('layer_height') - sum(extruderValues('prime_tower_min_volume')) + prime_tower_min_volume", - "enabled": "resolveOrValue('prime_tower_enable')", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "prime_tower_position_x": - { - "label": "Prime Tower X Position", - "description": "The x coordinate of the position of the prime tower.", - "type": "float", - "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 200, - "value": "machine_width - max(extruderValue(skirt_brim_extruder_nr, 'brim_width') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' or (prime_tower_brim_enable and adhesion_type != 'raft') else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - max(map(abs, extruderValues('machine_nozzle_offset_x'))) - 1", - "maximum_value": "machine_width / 2 if machine_center_is_zero else machine_width", - "minimum_value": "resolveOrValue('prime_tower_size') - machine_width / 2 if machine_center_is_zero else resolveOrValue('prime_tower_size')", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "prime_tower_position_y": - { - "label": "Prime Tower Y Position", - "description": "The y coordinate of the position of the prime tower.", - "type": "float", - "unit": "mm", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": 200, - "value": "machine_depth - prime_tower_size - max(extruderValue(skirt_brim_extruder_nr, 'brim_width') * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 if adhesion_type == 'brim' or (prime_tower_brim_enable and adhesion_type != 'raft') else (extruderValue(adhesion_extruder_nr, 'raft_margin') if adhesion_type == 'raft' else (extruderValue(skirt_brim_extruder_nr, 'skirt_gap') if adhesion_type == 'skirt' else 0)), max(extruderValues('travel_avoid_distance'))) - max(extruderValues('support_offset')) - sum(extruderValues('skirt_brim_line_width')) * extruderValue(skirt_brim_extruder_nr, 'initial_layer_line_width_factor') / 100 - (resolveOrValue('draft_shield_dist') if resolveOrValue('draft_shield_enabled') else 0) - max(map(abs, extruderValues('machine_nozzle_offset_y'))) - 3", - "maximum_value": "machine_depth / 2 - resolveOrValue('prime_tower_size') if machine_center_is_zero else machine_depth - resolveOrValue('prime_tower_size')", - "minimum_value": "machine_depth / -2 if machine_center_is_zero else 0", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "prime_tower_wipe_enabled": - { - "label": "Wipe Inactive Nozzle on Prime Tower", - "description": "After printing the prime tower with one nozzle, wipe the oozed material from the other nozzle off on the prime tower.", - "type": "bool", - "enabled": "resolveOrValue('prime_tower_enable')", - "default_value": true, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "prime_tower_brim_enable": - { - "label": "Prime Tower Brim", - "description": "Prime-towers might need the extra adhesion afforded by a brim even if the model doesn't. Presently can't be used with the 'Raft' adhesion-type.", - "type": "bool", - "enabled": "resolveOrValue('prime_tower_enable') and (resolveOrValue('adhesion_type') != 'raft')", - "resolve": "resolveOrValue('prime_tower_enable') and (resolveOrValue('adhesion_type') in ('none', 'skirt'))", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "ooze_shield_enabled": - { - "label": "Enable Ooze Shield", - "description": "Enable exterior ooze shield. This will create a shell around the model which is likely to wipe a second nozzle if it's at the same height as the first nozzle.", - "type": "bool", - "resolve": "any(extruderValues('ooze_shield_enabled'))", - "enabled": "extruders_enabled_count > 1", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "ooze_shield_angle": - { - "label": "Ooze Shield Angle", - "description": "The maximum angle a part in the ooze shield will have. With 0 degrees being vertical, and 90 degrees being horizontal. A smaller angle leads to less failed ooze shields, but more material.", - "type": "float", - "unit": "°", - "enabled": "resolveOrValue('ooze_shield_enabled')", - "default_value": 60, - "resolve": "min(extruderValues('ooze_shield_angle'))", - "minimum_value": "0", - "maximum_value": "90", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "ooze_shield_dist": - { - "label": "Ooze Shield Distance", - "description": "Distance of the ooze shield from the print, in the X/Y directions.", - "type": "float", - "unit": "mm", - "enabled": "resolveOrValue('ooze_shield_enabled')", - "default_value": 2, - "resolve": "max(extruderValues('ooze_shield_dist'))", - "minimum_value": "0", - "maximum_value_warning": "20", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "switch_extruder_retraction_amount": - { - "label": "Nozzle Switch Retraction Distance", - "description": "The amount of retraction when switching extruders. Set to 0 for no retraction at all. This should generally be the same as the length of the heat zone.", - "type": "float", - "unit": "mm", - "enabled": "retraction_enable and extruders_enabled_count > 1", - "default_value": 20, - "value": "machine_heat_zone_length", - "minimum_value_warning": "0", - "maximum_value_warning": "100", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "switch_extruder_retraction_speeds": - { - "label": "Nozzle Switch Retraction Speed", - "description": "The speed at which the filament is retracted. A higher retraction speed works better, but a very high retraction speed can lead to filament grinding.", - "type": "float", - "unit": "mm/s", - "enabled": "retraction_enable and extruders_enabled_count > 1", - "default_value": 20, - "minimum_value": "0.1", - "minimum_value_warning": "1", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "maximum_value_warning": "70", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "switch_extruder_retraction_speed": - { - "label": "Nozzle Switch Retract Speed", - "description": "The speed at which the filament is retracted during a nozzle switch retract.", - "type": "float", - "unit": "mm/s", - "enabled": "retraction_enable and extruders_enabled_count > 1", - "default_value": 20, - "value": "switch_extruder_retraction_speeds", - "minimum_value": "0.1", - "minimum_value_warning": "1", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "maximum_value_warning": "70", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "switch_extruder_prime_speed": - { - "label": "Nozzle Switch Prime Speed", - "description": "The speed at which the filament is pushed back after a nozzle switch retraction.", - "type": "float", - "unit": "mm/s", - "enabled": "retraction_enable and extruders_enabled_count > 1", - "default_value": 20, - "value": "switch_extruder_retraction_speeds", - "minimum_value": "0.1", - "minimum_value_warning": "1", - "maximum_value": "machine_max_feedrate_e if retraction_enable else float('inf')", - "maximum_value_warning": "70", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "switch_extruder_extra_prime_amount": - { - "label": "Nozzle Switch Extra Prime Amount", - "description": "Extra material to prime after nozzle switching.", - "type": "float", - "unit": "mm³", - "default_value": 0, - "minimum_value_warning": "0", - "maximum_value_warning": "100", - "enabled": "retraction_enable and extruders_enabled_count > 1", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "meshfix": - { - "label": "Mesh Fixes", - "type": "category", - "icon": "Bandage", - "description": "Make the meshes more suited for 3D printing.", - "children": - { - "meshfix_union_all": - { - "label": "Union Overlapping Volumes", - "description": "Ignore the internal geometry arising from overlapping volumes within a mesh and print the volumes as one. This may cause unintended internal cavities to disappear.", - "type": "bool", - "default_value": true, - "value": "magic_mesh_surface_mode != 'surface'", - "settable_per_mesh": true - }, - "meshfix_union_all_remove_holes": - { - "label": "Remove All Holes", - "description": "Remove the holes in each layer and keep only the outside shape. This will ignore any invisible internal geometry. However, it also ignores layer holes which can be viewed from above or below.", - "type": "bool", - "default_value": false, - "value": "magic_spiralize", - "settable_per_mesh": true - }, - "meshfix_extensive_stitching": - { - "label": "Extensive Stitching", - "description": "Extensive stitching tries to stitch up open holes in the mesh by closing the hole with touching polygons. This option can introduce a lot of processing time.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, - "meshfix_keep_open_polygons": - { - "label": "Keep Disconnected Faces", - "description": "Normally Cura tries to stitch up small holes in the mesh and remove parts of a layer with big holes. Enabling this option keeps those parts which cannot be stitched. This option should be used as a last resort option when everything else fails to produce proper g-code.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, - "multiple_mesh_overlap": - { - "label": "Merged Meshes Overlap", - "description": "Make meshes which are touching each other overlap a bit. This makes them bond together better.", - "type": "float", - "unit": "mm", - "default_value": 0.15, - "minimum_value": "0", - "maximum_value_warning": "1.0", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "carve_multiple_volumes": - { - "label": "Remove Mesh Intersection", - "description": "Remove areas where multiple meshes are overlapping with each other. This may be used if merged dual material objects overlap with each other.", - "type": "bool", - "default_value": true, - "value": "extruders_enabled_count > 1", - "enabled": "all(p != 'surface' for p in extruderValues('magic_mesh_surface_mode'))", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true - }, - "alternate_carve_order": - { - "label": "Alternate Mesh Removal", - "description": "Switch to which mesh intersecting volumes will belong with every layer, so that the overlapping meshes become interwoven. Turning this setting off will cause one of the meshes to obtain all of the volume in the overlap, while it is removed from the other meshes.", - "type": "bool", - "default_value": true, - "enabled": "carve_multiple_volumes and all(p != 'surface' for p in extruderValues('magic_mesh_surface_mode'))", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": true - }, - "remove_empty_first_layers": - { - "label": "Remove Empty First Layers", - "description": "Remove empty layers beneath the first printed layer if they are present. Disabling this setting can cause empty first layers if the Slicing Tolerance setting is set to Exclusive or Middle.", - "type": "bool", - "default_value": true, - "enabled": "not (support_enable or support_meshes_present)", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "meshfix_maximum_resolution": - { - "label": "Maximum Resolution", - "description": "The minimum size of a line segment after slicing. If you increase this, the mesh will have a lower resolution. This may allow the printer to keep up with the speed it has to process g-code and will increase slice speed by removing details of the mesh that it can't process anyway.", - "type": "float", - "unit": "mm", - "default_value": 0.5, - "minimum_value": "0.001", - "minimum_value_warning": "0.01", - "maximum_value_warning": "3", - "settable_per_mesh": true - }, - "meshfix_maximum_travel_resolution": - { - "label": "Maximum Travel Resolution", - "description": "The minimum size of a travel line segment after slicing. If you increase this, the travel moves will have less smooth corners. This may allow the printer to keep up with the speed it has to process g-code, but it may cause model avoidance to become less accurate.", - "type": "float", - "unit": "mm", - "default_value": 1.0, - "value": "min(meshfix_maximum_resolution * speed_travel / speed_print, 2 * line_width)", - "minimum_value": "0.001", - "minimum_value_warning": "0.05", - "maximum_value_warning": "10", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "meshfix_maximum_deviation": - { - "label": "Maximum Deviation", - "description": "The maximum deviation allowed when reducing the resolution for the Maximum Resolution setting. If you increase this, the print will be less accurate, but the g-code will be smaller. Maximum Deviation is a limit for Maximum Resolution, so if the two conflict the Maximum Deviation will always be held true.", - "type": "float", - "unit": "mm", - "default_value": 0.025, - "minimum_value": "0.001", - "minimum_value_warning": "0.01", - "maximum_value_warning": "0.3", - "settable_per_mesh": true - }, - "meshfix_maximum_extrusion_area_deviation": - { - "label": "Maximum Extrusion Area Deviation", - "description": "The maximum extrusion area deviation allowed when removing intermediate points from a straight line. An intermediate point may serve as width-changing point in a long straight line. Therefore, if it is removed, it will cause the line to have a uniform width and, as a result, lose (or gain) a bit of extrusion area. If you increase this you may notice slight under- (or over-) extrusion in between straight parallel walls, as more intermediate width-changing points will be allowed to be removed. Your print will be less accurate, but the g-code will be smaller.", - "type": "float", - "unit": "μm²", - "default_value": 50000, - "minimum_value": "0", - "minimum_value_warning": "500", - "maximum_value_warning": "100000", - "settable_per_mesh": true - } - } - }, - "blackmagic": - { - "label": "Special Modes", - "type": "category", - "icon": "BlackMagic", - "description": "Non-traditional ways to print your models.", - "children": - { - "print_sequence": - { - "label": "Print Sequence", - "description": "Whether to print all models one layer at a time or to wait for one model to finish, before moving on to the next. One at a time mode is possible if a) only one extruder is enabled and b) all models are separated in such a way that the whole print head can move in between and all models are lower than the distance between the nozzle and the X/Y axes.", - "type": "enum", - "options": - { - "all_at_once": "All at Once", - "one_at_a_time": "One at a Time" - }, - "default_value": "all_at_once", - "enabled": "extruders_enabled_count == 1", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "infill_mesh": - { - "label": "Infill Mesh", - "description": "Use this mesh to modify the infill of other meshes with which it overlaps. Replaces infill regions of other meshes with regions for this mesh. It's suggested to only print one Wall and no Top/Bottom Skin for this mesh.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "infill_mesh_order": - { - "label": "Mesh Processing Rank", - "description": "Determines the priority of this mesh when considering multiple overlapping infill meshes. Areas where multiple infill meshes overlap will take on the settings of the mesh with the highest rank. An infill mesh with a higher rank will modify the infill of infill meshes with lower rank and normal meshes.", - "default_value": 0, - "value": "1 if infill_mesh else 0", - "minimum_value_warning": "1", - "maximum_value_warning": "50", - "type": "int", - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "cutting_mesh": - { - "label": "Cutting Mesh", - "description": "Limit the volume of this mesh to within other meshes. You can use this to make certain areas of one mesh print with different settings and with a whole different extruder.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "mold_enabled": - { - "label": "Mold", - "description": "Print models as a mold, which can be cast in order to get a model which resembles the models on the build plate.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true - }, - "mold_width": - { - "label": "Minimal Mold Width", - "description": "The minimal distance between the outside of the mold and the outside of the model.", - "unit": "mm", - "type": "float", - "minimum_value_warning": "wall_line_width_0 * 2", - "maximum_value_warning": "100", - "default_value": 5, - "settable_per_mesh": true, - "enabled": "mold_enabled" - }, - "mold_roof_height": - { - "label": "Mold Roof Height", - "description": "The height above horizontal parts in your model which to print mold.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "5", - "default_value": 0.5, - "settable_per_mesh": true, - "enabled": "mold_enabled" - }, - "mold_angle": - { - "label": "Mold Angle", - "description": "The angle of overhang of the outer walls created for the mold. 0° will make the outer shell of the mold vertical, while 90° will make the outside of the model follow the contour of the model.", - "unit": "°", - "type": "float", - "minimum_value": "-89", - "minimum_value_warning": "0", - "maximum_value_warning": "support_angle", - "maximum_value": "90", - "default_value": 40, - "settable_per_mesh": true, - "enabled": "mold_enabled" - }, - "support_mesh": - { - "label": "Support Mesh", - "description": "Use this mesh to specify support areas. This can be used to generate support structure.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "anti_overhang_mesh": - { - "label": "Anti Overhang Mesh", - "description": "Use this mesh to specify where no part of the model should be detected as overhang. This can be used to remove unwanted support structure.", - "type": "bool", - "default_value": false, - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "settable_globally": false - }, - "magic_mesh_surface_mode": - { - "label": "Surface Mode", - "description": "Treat the model as a surface only, a volume, or volumes with loose surfaces. The normal print mode only prints enclosed volumes. \"Surface\" prints a single wall tracing the mesh surface with no infill and no top/bottom skin. \"Both\" prints enclosed volumes like normal and any remaining polygons as surfaces.", - "type": "enum", - "options": - { - "normal": "Normal", - "surface": "Surface", - "both": "Both" - }, - "default_value": "normal", - "settable_per_mesh": true - }, - "magic_spiralize": - { - "label": "Spiralize Outer Contour", - "description": "Spiralize smooths out the Z move of the outer edge. This will create a steady Z increase over the whole print. This feature turns a solid model into a single walled print with a solid bottom. This feature should only be enabled when each layer only contains a single part.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "smooth_spiralized_contours": - { - "label": "Smooth Spiralized Contours", - "description": "Smooth the spiralized contours to reduce the visibility of the Z seam (the Z seam should be barely visible on the print but will still be visible in the layer view). Note that smoothing will tend to blur fine surface details.", - "type": "bool", - "default_value": true, - "enabled": "magic_spiralize", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "relative_extrusion": - { - "label": "Relative Extrusion", - "description": "Use relative extrusion rather than absolute extrusion. Using relative E-steps makes for easier post-processing of the g-code. However, it's not supported by all printers and it may produce very slight deviations in the amount of deposited material compared to absolute E-steps. Irrespective of this setting, the extrusion mode will always be set to absolute before any g-code script is output.", - "type": "bool", - "default_value": false, - "value": "machine_gcode_flavor==\"RepRap (RepRap)\"", - "settable_per_mesh": false, - "settable_per_extruder": false - } - } - }, - "experimental": - { - "label": "Experimental", - "type": "category", - "icon": "Experiment", - "description": "Features that haven't completely been fleshed out yet.", - "children": - { - "slicing_tolerance": - { - "label": "Slicing Tolerance", - "description": "Vertical tolerance in the sliced layers. The contours of a layer are normally generated by taking cross sections through the middle of each layer's thickness (Middle). Alternatively each layer can have the areas which fall inside of the volume throughout the entire thickness of the layer (Exclusive) or a layer has the areas which fall inside anywhere within the layer (Inclusive). Inclusive retains the most details, Exclusive makes for the best fit and Middle stays closest to the original surface.", - "type": "enum", - "options": - { - "middle": "Middle", - "exclusive": "Exclusive", - "inclusive": "Inclusive" - }, - "default_value": "middle", - "settable_per_mesh": true - }, - "infill_enable_travel_optimization": - { - "label": "Infill Travel Optimization", - "description": "When enabled, the order in which the infill lines are printed is optimized to reduce the distance travelled. The reduction in travel time achieved very much depends on the model being sliced, infill pattern, density, etc. Note that, for some models that have many small areas of infill, the time to slice the model may be greatly increased.", - "type": "bool", - "enabled": "resolveOrValue('retraction_combing') != 'off'", - "default_value": false, - "settable_per_mesh": true - }, - "material_flow_dependent_temperature": - { - "label": "Auto Temperature", - "description": "Change the temperature for each layer automatically with the average flow speed of that layer.", - "type": "bool", - "default_value": false, - "enabled": "machine_nozzle_temp_enabled and False", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "material_flow_temp_graph": - { - "label": "Flow Temperature Graph", - "description": "Data linking material flow (in mm3 per second) to temperature (degrees Celsius).", - "unit": "[[mm³,°C]]", - "type": "str", - "default_value": "[[3.5,200],[7.0,240]]", - "enabled": "False and machine_nozzle_temp_enabled and material_flow_dependent_temperature", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "minimum_polygon_circumference": - { - "label": "Minimum Polygon Circumference", - "description": "Polygons in sliced layers that have a circumference smaller than this amount will be filtered out. Lower values lead to higher resolution mesh at the cost of slicing time. It is meant mostly for high resolution SLA printers and very tiny 3D models with a lot of details.", - "unit": "mm", - "type": "float", - "default_value": 1.0, - "minimum_value": "0", - "minimum_value_warning": "0.05", - "maximum_value_warning": "1.0", - "settable_per_mesh": true, - "settable_per_extruder": false - }, - "support_skip_some_zags": - { - "label": "Break Up Support In Chunks", - "description": "Skip some support line connections to make the support structure easier to break away. This setting is applicable to the Zig Zag support infill pattern.", - "type": "bool", - "default_value": false, - "enabled": "(support_enable or support_meshes_present) and support_pattern == 'zigzag'", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_skip_zag_per_mm": - { - "label": "Support Chunk Size", - "description": "Leave out a connection between support lines once every N millimeter to make the support structure easier to break away.", - "type": "float", - "unit": "mm", - "default_value": 20, - "minimum_value": "0", - "minimum_value_warning": "support_line_distance", - "enabled": "(support_enable or support_meshes_present) and support_pattern == 'zigzag' and support_skip_some_zags", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "support_zag_skip_count": - { - "label": "Support Chunk Line Count", - "description": "Skip one in every N connection lines to make the support structure easier to break away.", - "type": "int", - "default_value": 5, - "value": "0 if support_line_distance == 0 else round(support_skip_zag_per_mm / support_line_distance)", - "minimum_value": "1", - "minimum_value_warning": "3", - "enabled": "(support_enable or support_meshes_present) and support_pattern == 'zigzag' and support_skip_some_zags", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "draft_shield_enabled": - { - "label": "Enable Draft Shield", - "description": "This will create a wall around the model, which traps (hot) air and shields against exterior airflow. Especially useful for materials which warp easily.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "draft_shield_dist": - { - "label": "Draft Shield X/Y Distance", - "description": "Distance of the draft shield from the print, in the X/Y directions.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "10", - "default_value": 10, - "resolve": "max(extruderValues('draft_shield_dist'))", - "enabled": "draft_shield_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "draft_shield_height_limitation": - { - "label": "Draft Shield Limitation", - "description": "Set the height of the draft shield. Choose to print the draft shield at the full height of the model or at a limited height.", - "type": "enum", - "options": - { - "full": "Full", - "limited": "Limited" - }, - "default_value": "full", - "resolve": "'full' if 'full' in extruderValues('draft_shield_height_limitation') else 'limited'", - "enabled": "draft_shield_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "draft_shield_height": - { - "label": "Draft Shield Height", - "description": "Height limitation of the draft shield. Above this height no draft shield will be printed.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "9999", - "default_value": 10, - "value": "10", - "enabled": "draft_shield_enabled and draft_shield_height_limitation == 'limited'", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "conical_overhang_enabled": - { - "label": "Make Overhang Printable", - "description": "Change the geometry of the printed model such that minimal support is required. Steep overhangs will become shallow overhangs. Overhanging areas will drop down to become more vertical.", - "type": "bool", - "default_value": false - }, - "conical_overhang_angle": - { - "label": "Maximum Model Angle", - "description": "The maximum angle of overhangs after the they have been made printable. At a value of 0° all overhangs are replaced by a piece of model connected to the build plate, 90° will not change the model in any way.", - "unit": "°", - "type": "float", - "minimum_value": "-89", - "minimum_value_warning": "0", - "maximum_value": "89", - "default_value": 50, - "enabled": "conical_overhang_enabled" - }, - "conical_overhang_hole_size": - { - "label": "Maximum Overhang Hole Area", - "description": "The maximum area of a hole in the base of the model before it's removed by Make Overhang Printable. Holes smaller than this will be retained. A value of 0 mm² will fill all holes in the models base.", - "unit": "mm²", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "0", - "default_value": 0, - "enabled": "conical_overhang_enabled" - }, - "coasting_enable": - { - "label": "Enable Coasting", - "description": "Coasting replaces the last part of an extrusion path with a travel path. The oozed material is used to print the last piece of the extrusion path in order to reduce stringing.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "coasting_volume": - { - "label": "Coasting Volume", - "description": "The volume otherwise oozed. This value should generally be close to the nozzle diameter cubed.", - "unit": "mm³", - "type": "float", - "default_value": 0.064, - "minimum_value": "0", - "maximum_value_warning": "machine_nozzle_size * 5", - "enabled": "coasting_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "coasting_min_volume": - { - "label": "Minimum Volume Before Coasting", - "description": "The smallest volume an extrusion path should have before allowing coasting. For smaller extrusion paths, less pressure has been built up in the bowden tube and so the coasted volume is scaled linearly. This value should always be larger than the Coasting Volume.", - "unit": "mm³", - "type": "float", - "default_value": 0.8, - "minimum_value": "0", - "maximum_value_warning": "10.0", - "enabled": "coasting_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "coasting_speed": - { - "label": "Coasting Speed", - "description": "The speed by which to move during coasting, relative to the speed of the extrusion path. A value slightly under 100% is advised, since during the coasting move the pressure in the bowden tube drops.", - "unit": "%", - "type": "float", - "default_value": 90, - "minimum_value": "0.0001", - "maximum_value_warning": "100", - "enabled": "coasting_enable", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "cross_infill_pocket_size": - { - "label": "Cross 3D Pocket Size", - "description": "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself.", - "unit": "mm", - "type": "float", - "default_value": 2.0, - "value": "infill_line_distance", - "minimum_value": "0", - "maximum_value_warning": "infill_line_distance * math.sqrt(2)", - "enabled": "infill_pattern == 'cross_3d'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "cross_infill_density_image": - { - "label": "Cross Infill Density Image", - "description": "The file location of an image of which the brightness values determine the minimal density at the corresponding location in the infill of the print.", - "type": "str", - "default_value": "", - "enabled": "infill_pattern == 'cross' or infill_pattern == 'cross_3d'", - "limit_to_extruder": "infill_extruder_nr", - "settable_per_mesh": true - }, - "cross_support_density_image": - { - "label": "Cross Fill Density Image for Support", - "description": "The file location of an image of which the brightness values determine the minimal density at the corresponding location in the support.", - "type": "str", - "default_value": "", - "enabled": "support_pattern == 'cross' or support_pattern == 'cross_3d'", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "support_conical_enabled": - { - "label": "Enable Conical Support", - "description": "Make support areas smaller at the bottom than at the overhang.", - "type": "bool", - "default_value": false, - "enabled": "support_enable and support_structure != 'tree'", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": true - }, - "support_conical_angle": - { - "label": "Conical Support Angle", - "description": "The angle of the tilt of conical support. With 0 degrees being vertical, and 90 degrees being horizontal. Smaller angles cause the support to be more sturdy, but consist of more material. Negative angles cause the base of the support to be wider than the top.", - "unit": "°", - "type": "float", - "minimum_value": "-90", - "minimum_value_warning": "-45", - "maximum_value_warning": "45", - "maximum_value": "90", - "default_value": 30, - "enabled": "support_conical_enabled and support_enable and support_structure != 'tree'", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": true - }, - "support_conical_min_width": - { - "label": "Conical Support Minimum Width", - "description": "Minimum width to which the base of the conical support area is reduced. Small widths can lead to unstable support structures.", - "unit": "mm", - "default_value": 5.0, - "minimum_value": "0", - "minimum_value_warning": "machine_nozzle_size * 3", - "maximum_value_warning": "100.0", - "type": "float", - "enabled": "support_conical_enabled and support_enable and support_structure != 'tree' and support_conical_angle > 0", - "limit_to_extruder": "support_infill_extruder_nr", - "settable_per_mesh": true - }, - "magic_fuzzy_skin_enabled": - { - "label": "Fuzzy Skin", - "description": "Randomly jitter while printing the outer wall, so that the surface has a rough and fuzzy look.", - "type": "bool", - "default_value": false, - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "magic_fuzzy_skin_outside_only": - { - "label": "Fuzzy Skin Outside Only", - "description": "Jitter only the parts' outlines and not the parts' holes.", - "type": "bool", - "default_value": false, - "enabled": "magic_fuzzy_skin_enabled", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "magic_fuzzy_skin_thickness": - { - "label": "Fuzzy Skin Thickness", - "description": "The width within which to jitter. It's advised to keep this below the outer wall width, since the inner walls are unaltered.", - "type": "float", - "unit": "mm", - "default_value": 0.3, - "minimum_value": "0.001", - "maximum_value_warning": "wall_line_width_0", - "enabled": "magic_fuzzy_skin_enabled", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - }, - "magic_fuzzy_skin_point_density": - { - "label": "Fuzzy Skin Density", - "description": "The average density of points introduced on each polygon in a layer. Note that the original points of the polygon are discarded, so a low density results in a reduction of the resolution.", - "type": "float", - "unit": "1/mm", - "default_value": 1.25, - "minimum_value": "0.008", - "minimum_value_warning": "0.1", - "maximum_value_warning": "10", - "maximum_value": "2 / magic_fuzzy_skin_thickness", - "enabled": "magic_fuzzy_skin_enabled", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true, - "children": - { - "magic_fuzzy_skin_point_dist": - { - "label": "Fuzzy Skin Point Distance", - "description": "The average distance between the random points introduced on each line segment. Note that the original points of the polygon are discarded, so a high smoothness results in a reduction of the resolution. This value must be higher than half the Fuzzy Skin Thickness.", - "type": "float", - "unit": "mm", - "default_value": 0.8, - "minimum_value": "magic_fuzzy_skin_thickness / 2", - "minimum_value_warning": "0.1", - "maximum_value_warning": "10", - "value": "10000 if magic_fuzzy_skin_point_density == 0 else 1 / magic_fuzzy_skin_point_density", - "enabled": "magic_fuzzy_skin_enabled", - "limit_to_extruder": "wall_0_extruder_nr", - "settable_per_mesh": true - } - } - }, - "flow_rate_max_extrusion_offset": - { - "label": "Flow Rate Compensation Max Extrusion Offset", - "description": "The maximum distance in mm to move the filament to compensate for changes in flow rate.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "10", - "default_value": 0, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "flow_rate_extrusion_offset_factor": - { - "label": "Flow Rate Compensation Factor", - "description": "How far to move the filament in order to compensate for changes in flow rate, as a percentage of how far the filament would move in one second of extrusion.", - "unit": "%", - "type": "float", - "minimum_value": "0", - "maximum_value_warning": "100", - "default_value": 100, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_enabled": - { - "label": "Wire Printing", - "description": "Print only the outside surface with a sparse webbed structure, printing 'in thin air'. This is realized by horizontally printing the contours of the model at given Z intervals which are connected via upward and diagonally downward lines.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_height": - { - "label": "WP Connection Height", - "description": "The height of the upward and diagonally downward lines between two horizontal parts. This determines the overall density of the net structure. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 3, - "value": "machine_nozzle_head_distance", - "minimum_value": "0.001", - "maximum_value_warning": "20", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_roof_inset": - { - "label": "WP Roof Inset Distance", - "description": "The distance covered when making a connection from a roof outline inward. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 3, - "minimum_value": "0", - "minimum_value_warning": "machine_nozzle_size", - "maximum_value_warning": "20", - "enabled": "wireframe_enabled", - "value": "wireframe_height", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_printspeed": - { - "label": "WP Speed", - "description": "Speed at which the nozzle moves when extruding material. Only applies to Wire Printing.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "minimum_value": "0.05", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + machine_max_feedrate_z ** 2)", - "maximum_value_warning": "50", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "children": - { - "wireframe_printspeed_bottom": - { - "label": "WP Bottom Printing Speed", - "description": "Speed of printing the first layer, which is the only layer touching the build platform. Only applies to Wire Printing.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "minimum_value": "0.05", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "50", - "enabled": "wireframe_enabled", - "value": "wireframe_printspeed_flat", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_printspeed_up": - { - "label": "WP Upward Printing Speed", - "description": "Speed of printing a line upward 'in thin air'. Only applies to Wire Printing.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "minimum_value": "0.05", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + machine_max_feedrate_z ** 2)", - "maximum_value_warning": "50", - "enabled": "wireframe_enabled", - "value": "wireframe_printspeed", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_printspeed_down": - { - "label": "WP Downward Printing Speed", - "description": "Speed of printing a line diagonally downward. Only applies to Wire Printing.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "minimum_value": "0.05", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2 + machine_max_feedrate_z ** 2)", - "maximum_value_warning": "50", - "enabled": "wireframe_enabled", - "value": "wireframe_printspeed", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_printspeed_flat": - { - "label": "WP Horizontal Printing Speed", - "description": "Speed of printing the horizontal contours of the model. Only applies to Wire Printing.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "minimum_value": "0.05", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "100", - "value": "wireframe_printspeed", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - } - } - }, - "wireframe_flow": - { - "label": "WP Flow", - "description": "Flow compensation: the amount of material extruded is multiplied by this value. Only applies to Wire Printing.", - "unit": "%", - "default_value": 100, - "minimum_value": "0", - "maximum_value_warning": "100", - "type": "float", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false, - "children": - { - "wireframe_flow_connection": - { - "label": "WP Connection Flow", - "description": "Flow compensation when going up or down. Only applies to Wire Printing.", - "unit": "%", - "default_value": 100, - "minimum_value": "0", - "maximum_value_warning": "100", - "type": "float", - "enabled": "wireframe_enabled", - "value": "wireframe_flow", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_flow_flat": - { - "label": "WP Flat Flow", - "description": "Flow compensation when printing flat lines. Only applies to Wire Printing.", - "unit": "%", - "default_value": 100, - "minimum_value": "0", - "maximum_value_warning": "100", - "type": "float", - "enabled": "wireframe_enabled", - "value": "wireframe_flow", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - } - } - }, - "wireframe_top_delay": - { - "label": "WP Top Delay", - "description": "Delay time after an upward move, so that the upward line can harden. Only applies to Wire Printing.", - "unit": "s", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "maximum_value_warning": "1", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_bottom_delay": - { - "label": "WP Bottom Delay", - "description": "Delay time after a downward move. Only applies to Wire Printing.", - "unit": "s", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "maximum_value_warning": "1", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_flat_delay": - { - "label": "WP Flat Delay", - "description": "Delay time between two horizontal segments. Introducing such a delay can cause better adhesion to previous layers at the connection points, while too long delays cause sagging. Only applies to Wire Printing.", - "unit": "s", - "type": "float", - "default_value": 0.1, - "minimum_value": "0", - "maximum_value_warning": "0.5", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_up_half_speed": - { - "label": "WP Ease Upward", - "description": "Distance of an upward move which is extruded with half speed.\nThis can cause better adhesion to previous layers, while not heating the material in those layers too much. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 0.3, - "minimum_value": "0", - "maximum_value_warning": "5.0", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_top_jump": - { - "label": "WP Knot Size", - "description": "Creates a small knot at the top of an upward line, so that the consecutive horizontal layer has a better chance to connect to it. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 0.6, - "minimum_value": "0", - "maximum_value_warning": "2.0", - "enabled": "wireframe_enabled and wireframe_strategy == 'knot'", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_fall_down": - { - "label": "WP Fall Down", - "description": "Distance with which the material falls down after an upward extrusion. This distance is compensated for. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 0.5, - "minimum_value": "0", - "maximum_value_warning": "wireframe_height", - "enabled": "wireframe_enabled and wireframe_strategy == 'compensate'", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_drag_along": - { - "label": "WP Drag Along", - "description": "Distance with which the material of an upward extrusion is dragged along with the diagonally downward extrusion. This distance is compensated for. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 0.6, - "minimum_value": "0", - "maximum_value_warning": "wireframe_height", - "enabled": "wireframe_enabled and wireframe_strategy == 'compensate'", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_strategy": - { - "label": "WP Strategy", - "description": "Strategy for making sure two consecutive layers connect at each connection point. Retraction lets the upward lines harden in the right position, but may cause filament grinding. A knot can be made at the end of an upward line to heighten the chance of connecting to it and to let the line cool; however, it may require slow printing speeds. Another strategy is to compensate for the sagging of the top of an upward line; however, the lines won't always fall down as predicted.", - "type": "enum", - "options": - { - "compensate": "Compensate", - "knot": "Knot", - "retract": "Retract" - }, - "default_value": "compensate", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_straight_before_down": - { - "label": "WP Straighten Downward Lines", - "description": "Percentage of a diagonally downward line which is covered by a horizontal line piece. This can prevent sagging of the top most point of upward lines. Only applies to Wire Printing.", - "type": "float", - "unit": "%", - "default_value": 20, - "minimum_value": "0", - "maximum_value": "100", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_roof_fall_down": - { - "label": "WP Roof Fall Down", - "description": "The distance which horizontal roof lines printed 'in thin air' fall down when being printed. This distance is compensated for. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 2, - "minimum_value_warning": "0", - "maximum_value_warning": "wireframe_roof_inset", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_roof_drag_along": - { - "label": "WP Roof Drag Along", - "description": "The distance of the end piece of an inward line which gets dragged along when going back to the outer outline of the roof. This distance is compensated for. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 0.8, - "minimum_value": "0", - "maximum_value_warning": "10", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_roof_outer_delay": - { - "label": "WP Roof Outer Delay", - "description": "Time spent at the outer perimeters of hole which is to become a roof. Longer times can ensure a better connection. Only applies to Wire Printing.", - "type": "float", - "unit": "s", - "default_value": 0.2, - "minimum_value": "0", - "maximum_value_warning": "2.0", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wireframe_nozzle_clearance": - { - "label": "WP Nozzle Clearance", - "description": "Distance between the nozzle and horizontally downward lines. Larger clearance results in diagonally downward lines with a less steep angle, which in turn results in less upward connections with the next layer. Only applies to Wire Printing.", - "type": "float", - "unit": "mm", - "default_value": 1, - "minimum_value_warning": "0", - "maximum_value_warning": "10.0", - "enabled": "wireframe_enabled", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "adaptive_layer_height_enabled": - { - "label": "Use Adaptive Layers", - "description": "Adaptive layers computes the layer heights depending on the shape of the model.", - "type": "bool", - "default_value": false, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "adaptive_layer_height_variation": - { - "label": "Adaptive Layers Maximum Variation", - "description": "The maximum allowed height different from the base layer height.", - "type": "float", - "enabled": "adaptive_layer_height_enabled", - "unit": "mm", - "default_value": 0.1, - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "adaptive_layer_height_variation_step": - { - "label": "Adaptive Layers Variation Step Size", - "description": "The difference in height of the next layer height compared to the previous one.", - "type": "float", - "enabled": "adaptive_layer_height_enabled", - "default_value": 0.01, - "unit": "mm", - "settable_per_mesh": false, - "minimum_value": "0.001", - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "adaptive_layer_height_threshold": - { - "label": "Adaptive Layers Topography Size", - "description": "Target horizontal distance between two adjacent layers. Reducing this setting causes thinner layers to be used to bring the edges of the layers closer together.", - "type": "float", - "enabled": "adaptive_layer_height_enabled", - "default_value": 0.2, - "unit": "mm", - "settable_per_mesh": false, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "wall_overhang_angle": - { - "label": "Overhanging Wall Angle", - "description": "Walls that overhang more than this angle will be printed using overhanging wall settings. When the value is 90, no walls will be treated as overhanging. Overhang that gets supported by support will not be treated as overhang either.", - "unit": "°", - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "2", - "maximum_value": "90", - "default_value": 90, - "settable_per_mesh": true - }, - "wall_overhang_speed_factor": - { - "label": "Overhanging Wall Speed", - "description": "Overhanging walls will be printed at this percentage of their normal print speed.", - "unit": "%", - "type": "float", - "default_value": 100, - "minimum_value": "0.001", - "minimum_value_warning": "25", - "settable_per_mesh": true - }, - "bridge_settings_enabled": - { - "label": "Enable Bridge Settings", - "description": "Detect bridges and modify print speed, flow and fan settings while bridges are printed.", - "type": "bool", - "default_value": false, - "resolve": "any(extruderValues('bridge_settings_enabled'))", - "settable_per_mesh": true, - "settable_per_extruder": false, - "settable_per_meshgroup": false - }, - "bridge_wall_min_length": - { - "label": "Minimum Bridge Wall Length", - "description": "Unsupported walls shorter than this will be printed using the normal wall settings. Longer unsupported walls will be printed using the bridge wall settings.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "default_value": 5, - "value": "line_width + support_xy_distance + 1.0", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true, - "settable_per_extruder": false - }, - "bridge_skin_support_threshold": - { - "label": "Bridge Skin Support Threshold", - "description": "If a skin region is supported for less than this percentage of its area, print it using the bridge settings. Otherwise it is printed using the normal skin settings.", - "unit": "%", - "default_value": 50, - "type": "float", - "minimum_value": "0", - "maximum_value": "100", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_sparse_infill_max_density": - { - "label": "Bridge Sparse Infill Max Density", - "description": "Maximum density of infill considered to be sparse. Skin over sparse infill is considered to be unsupported and so may be treated as a bridge skin.", - "unit": "%", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_wall_coast": - { - "label": "Bridge Wall Coasting", - "description": "This controls the distance the extruder should coast immediately before a bridge wall begins. Coasting before the bridge starts can reduce the pressure in the nozzle and may produce a flatter bridge.", - "unit": "%", - "default_value": 100, - "type": "float", - "minimum_value": "0", - "maximum_value": "500", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_wall_speed": - { - "label": "Bridge Wall Speed", - "description": "The speed at which the bridge walls are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "cool_min_speed", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "default_value": 15, - "value": "max(cool_min_speed, speed_wall_0 / 2)", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_wall_material_flow": - { - "label": "Bridge Wall Flow", - "description": "When printing bridge walls, the amount of material extruded is multiplied by this value.", - "unit": "%", - "default_value": 50, - "type": "float", - "minimum_value": "5", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_skin_speed": - { - "label": "Bridge Skin Speed", - "description": "The speed at which bridge skin regions are printed.", - "unit": "mm/s", - "type": "float", - "minimum_value": "cool_min_speed", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "default_value": 15, - "value": "max(cool_min_speed, speed_topbottom / 2)", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_skin_material_flow": - { - "label": "Bridge Skin Flow", - "description": "When printing bridge skin regions, the amount of material extruded is multiplied by this value.", - "unit": "%", - "default_value": 60, - "type": "float", - "minimum_value": "5", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_skin_density": - { - "label": "Bridge Skin Density", - "description": "The density of the bridge skin layer. Values less than 100 will increase the gaps between the skin lines.", - "unit": "%", - "default_value": 100, - "type": "float", - "minimum_value": "5", - "minimum_value_warning": "20", - "maximum_value_warning": "100", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_fan_speed": - { - "label": "Bridge Fan Speed", - "description": "Percentage fan speed to use when printing bridge walls and skin.", - "unit": "%", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 100, - "type": "float", - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_enable_more_layers": - { - "label": "Bridge Has Multiple Layers", - "description": "If enabled, the second and third layers above the air are printed using the following settings. Otherwise, those layers are printed using the normal settings.", - "type": "bool", - "default_value": true, - "enabled": "bridge_settings_enabled", - "settable_per_mesh": true - }, - "bridge_skin_speed_2": - { - "label": "Bridge Second Skin Speed", - "description": "Print speed to use when printing the second bridge skin layer.", - "unit": "mm/s", - "type": "float", - "minimum_value": "cool_min_speed", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "default_value": 25, - "value": "bridge_skin_speed", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_skin_material_flow_2": - { - "label": "Bridge Second Skin Flow", - "description": "When printing the second bridge skin layer, the amount of material extruded is multiplied by this value.", - "unit": "%", - "default_value": 100, - "type": "float", - "minimum_value": "0.0001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_skin_density_2": - { - "label": "Bridge Second Skin Density", - "description": "The density of the second bridge skin layer. Values less than 100 will increase the gaps between the skin lines.", - "unit": "%", - "default_value": 75, - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "20", - "maximum_value_warning": "100", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_fan_speed_2": - { - "label": "Bridge Second Skin Fan Speed", - "description": "Percentage fan speed to use when printing the second bridge skin layer.", - "unit": "%", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "type": "float", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_skin_speed_3": - { - "label": "Bridge Third Skin Speed", - "description": "Print speed to use when printing the third bridge skin layer.", - "unit": "mm/s", - "type": "float", - "minimum_value": "cool_min_speed", - "maximum_value": "math.sqrt(machine_max_feedrate_x ** 2 + machine_max_feedrate_y ** 2)", - "maximum_value_warning": "300", - "default_value": 15, - "value": "bridge_skin_speed", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_skin_material_flow_3": - { - "label": "Bridge Third Skin Flow", - "description": "When printing the third bridge skin layer, the amount of material extruded is multiplied by this value.", - "unit": "%", - "default_value": 110, - "type": "float", - "minimum_value": "0.001", - "minimum_value_warning": "50", - "maximum_value_warning": "150", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_skin_density_3": - { - "label": "Bridge Third Skin Density", - "description": "The density of the third bridge skin layer. Values less than 100 will increase the gaps between the skin lines.", - "unit": "%", - "default_value": 80, - "type": "float", - "minimum_value": "0", - "minimum_value_warning": "20", - "maximum_value_warning": "100", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "bridge_fan_speed_3": - { - "label": "Bridge Third Skin Fan Speed", - "description": "Percentage fan speed to use when printing the third bridge skin layer.", - "unit": "%", - "minimum_value": "0", - "maximum_value": "100", - "default_value": 0, - "type": "float", - "enabled": "bridge_settings_enabled and bridge_enable_more_layers", - "settable_per_mesh": true - }, - "clean_between_layers": - { - "label": "Wipe Nozzle Between Layers", - "description": "Whether to include nozzle wipe G-Code between layers (maximum 1 per layer). Enabling this setting could influence behavior of retract at layer change. Please use Wipe Retraction settings to control retraction at layers where the wipe script will be working.", - "default_value": false, - "type": "bool", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "max_extrusion_before_wipe": - { - "label": "Material Volume Between Wipes", - "description": "Maximum material that can be extruded before another nozzle wipe is initiated. If this value is less than the volume of material required in a layer, the setting has no effect in this layer, i.e. it is limited to one wipe per layer.", - "default_value": 10, - "type": "float", - "unit": "mm³", - "enabled": "clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_retraction_enable": - { - "label": "Wipe Retraction Enable", - "description": "Retract the filament when the nozzle is moving over a non-printed area.", - "type": "bool", - "default_value": true, - "value": "retraction_enable", - "enabled": "clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_retraction_amount": - { - "label": "Wipe Retraction Distance", - "description": "Amount to retract the filament so it does not ooze during the wipe sequence.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "retraction_amount", - "minimum_value_warning": "-0.0001", - "maximum_value_warning": "10.0", - "enabled": "wipe_retraction_enable and clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_retraction_extra_prime_amount": - { - "label": "Wipe Retraction Extra Prime Amount", - "description": "Some material can ooze away during a wipe travel moves, which can be compensated for here.", - "unit": "mm³", - "type": "float", - "default_value": 0, - "value": "retraction_extra_prime_amount", - "minimum_value_warning": "-0.0001", - "maximum_value_warning": "10.0", - "enabled": "wipe_retraction_enable and clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "wipe_retraction_speed": - { - "label": "Wipe Retraction Speed", - "description": "The speed at which the filament is retracted and primed during a wipe retraction move.", - "unit": "mm/s", - "type": "float", - "default_value": 5, - "value": "retraction_speed", - "minimum_value": "0", - "minimum_value_warning": "1", - "maximum_value": "machine_max_feedrate_e", - "maximum_value_warning": "70", - "enabled": "wipe_retraction_enable and clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "children": - { - "wipe_retraction_retract_speed": - { - "label": "Wipe Retraction Retract Speed", - "description": "The speed at which the filament is retracted during a wipe retraction move.", - "unit": "mm/s", - "type": "float", - "default_value": 3, - "minimum_value": "0", - "maximum_value": "machine_max_feedrate_e", - "minimum_value_warning": "1", - "maximum_value_warning": "70", - "enabled": "wipe_retraction_enable and clean_between_layers", - "value": "wipe_retraction_speed", - "settable_per_mesh": false, - "settable_per_extruder": true - }, - "wipe_retraction_prime_speed": - { - "label": "Wipe Retraction Prime Speed", - "description": "The speed at which the filament is primed during a wipe retraction move.", - "unit": "mm/s", - "type": "float", - "default_value": 2, - "minimum_value": "0", - "maximum_value": "machine_max_feedrate_e", - "minimum_value_warning": "1", - "maximum_value_warning": "70", - "enabled": "wipe_retraction_enable and clean_between_layers", - "value": "wipe_retraction_speed", - "settable_per_mesh": false, - "settable_per_extruder": true - } - } - }, - "wipe_pause": - { - "label": "Wipe Pause", - "description": "Pause after the unretract.", - "unit": "s", - "type": "float", - "default_value": 0, - "minimum_value": "0", - "enabled": "clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_hop_enable": - { - "label": "Wipe Z Hop", - "description": "When wiping, the build plate is lowered to create clearance between the nozzle and the print. It prevents the nozzle from hitting the print during travel moves, reducing the chance to knock the print from the build plate.", - "type": "bool", - "default_value": true, - "value": "retraction_hop_enabled", - "enabled": "clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_hop_amount": - { - "label": "Wipe Z Hop Height", - "description": "The height difference when performing a Z Hop.", - "unit": "mm", - "type": "float", - "default_value": 1, - "value": "retraction_hop", - "enabled": "wipe_hop_enable and clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_hop_speed": - { - "label": "Wipe Hop Speed", - "description": "Speed to move the z-axis during the hop.", - "unit": "mm/s", - "type": "float", - "default_value": 10, - "value": "speed_z_hop", - "minimum_value": "0", - "minimum_value_warning": "1", - "enabled": "wipe_hop_enable and clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_brush_pos_x": - { - "label": "Wipe Brush X Position", - "description": "X location where wipe script will start.", - "type": "float", - "unit": "mm", - "default_value": 100, - "minimum_value_warning": "0", - "enabled": "clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_repeat_count": - { - "label": "Wipe Repeat Count", - "description": "Number of times to move the nozzle across the brush.", - "type": "int", - "minimum_value": "0", - "default_value": 5, - "enabled": "clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "wipe_move_distance": - { - "label": "Wipe Move Distance", - "description": "The distance to move the head back and forth across the brush.", - "unit": "mm", - "type": "float", - "default_value": 20, - "enabled": "clean_between_layers", - "settable_per_mesh": false, - "settable_per_extruder": true, - "settable_per_meshgroup": false - }, - "small_hole_max_size": - { - "label": "Small Hole Max Size", - "description": "Holes and part outlines with a diameter smaller than this will be printed using Small Feature Speed.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "default_value": 0, - "settable_per_mesh": true, - "children": - { - "small_feature_max_length": - { - "label": "Small Feature Max Length", - "description": "Feature outlines that are shorter than this length will be printed using Small Feature Speed.", - "unit": "mm", - "type": "float", - "minimum_value": "0", - "default_value": 0, - "value": "small_hole_max_size * math.pi", - "settable_per_mesh": true - } - } - }, - "small_feature_speed_factor": - { - "label": "Small Feature Speed", - "description": "Small features will be printed at this percentage of their normal print speed. Slower printing can help with adhesion and accuracy.", - "unit": "%", - "type": "float", - "default_value": 50, - "minimum_value": "1", - "minimum_value_warning": "25", - "maximum_value_warning": "100", - "settable_per_mesh": true - }, - "small_feature_speed_factor_0": - { - "label": "Small Feature Initial Layer Speed", - "description": "Small features on the first layer will be printed at this percentage of their normal print speed. Slower printing can help with adhesion and accuracy.", - "unit": "%", - "type": "float", - "default_value": 50, - "value": "small_feature_speed_factor", - "minimum_value": "1", - "minimum_value_warning": "25", - "maximum_value_warning": "100", - "settable_per_mesh": true - }, - "material_alternate_walls": - { - "label": "Alternate Wall Directions", - "description": "Alternate wall directions every other layer and inset. Useful for materials that can build up stress, like for metal printing.", - "type": "bool", - "default_value": false, - "enabled": true, - "settable_per_mesh": true, - "settable_per_extruder": true - }, - "raft_remove_inside_corners": - { - "label": "Remove Raft Inside Corners", - "description": "Remove inside corners from the raft, causing the raft to become convex.", - "type": "bool", - "default_value": false, - "resolve": "any(extruderValues('raft_remove_inside_corners'))", - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "settable_per_mesh": false, - "settable_per_extruder": false - }, - "raft_base_wall_count": - { - "label": "Raft Base Wall Count", - "description": "The number of contours to print around the linear pattern in the base layer of the raft.", - "type": "int", - "default_value": 1, - "enabled": "resolveOrValue('adhesion_type') == 'raft'", - "resolve": "max(extruderValues('raft_base_wall_count'))", - "settable_per_mesh": false, - "settable_per_extruder": false - } - } - }, - "command_line_settings": - { - "label": "Command Line Settings", - "description": "Settings which are only used if CuraEngine isn't called from the Cura frontend.", - "type": "category", - "enabled": false, - "children": - { - "center_object": - { - "description": "Whether to center the object on the middle of the build platform (0,0), instead of using the coordinate system in which the object was saved.", - "type": "bool", - "label": "Center Object", - "default_value": false, - "enabled": false - }, - "mesh_position_x": - { - "description": "Offset applied to the object in the x direction.", - "type": "float", - "label": "Mesh Position X", - "default_value": 0, - "enabled": false - }, - "mesh_position_y": - { - "description": "Offset applied to the object in the y direction.", - "type": "float", - "label": "Mesh Position Y", - "default_value": 0, - "enabled": false - }, - "mesh_position_z": - { - "description": "Offset applied to the object in the z direction. With this you can perform what was used to be called 'Object Sink'.", - "type": "float", - "label": "Mesh Position Z", - "default_value": 0, - "enabled": false - }, - "mesh_rotation_matrix": - { - "label": "Mesh Rotation Matrix", - "description": "Transformation matrix to be applied to the model when loading it from file.", - "type": "str", - "default_value": "[[1,0,0], [0,1,0], [0,0,1]]", - "enabled": false - } - } - } - } -} diff --git a/software/Print3r/settings/slicer/cura5/map.ini b/software/Print3r/settings/slicer/cura5/map.ini deleted file mode 100644 index 69e9abe7..00000000 --- a/software/Print3r/settings/slicer/cura5/map.ini +++ /dev/null @@ -1,49 +0,0 @@ -infill_line_distance={$fill_density==0?0:$nozzle_diameter*100/$fill_density*2} -machine_nozzle_diameter=$nozzle_diameter -machine_material_diameter=$filament_diameter -material_diameter=$filament_diameter -top_layers={$top_thickness>0?int($top_thickness/$layer_height+0.5):$top_layers} -bottom_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -initial_bottom_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -wall_line_count={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} -retraction_amount=$retraction_amount -machine_start_gcode=$start_gcode -machine_end_gcode=$end_gcode -retraction_amount=$retraction_length -layer_height_0={$first_layer_height>0?$first_layer_height:$layer_height} -speed_print_layer_0=$first_layer_speed -material_bed_temperature_layer_0={$first_layer_bed_temparature?$first_layer_bed_temperature:$bed_temperature} -line_width=$nozzle_diameter -infill_line_width=$nozzle_diameter -prime_tower_line_width=$nozzle_diameter -raft_surface_line_width=$nozzle_diameter -roofing_line_width=$nozzle_diameter -skin_line_width=$nozzle_diameter -skirt_brim_line_width=$nozzle_diameter -support_bottom_line_width=$nozzle_diameter -support_interface_line_width=$nozzle_diameter -support_line_width=$nozzle_diameter -support_roof_line_width=$nozzle_diameter -wall_line_width_0=$nozzle_diameter -wall_line_width=$nozzle_diameter -wall_line_width_x=$nozzle_diameter -#default_material_print_temperature=$temperature -#default_material_print_bed_temperature=$bed_temperature -material_print_temperature=$temperature -material_print_bed_temperature=$bed_temperature -material_bed_temperature_layer_0=$bed_temperature -material_print_temperature_layer_0=$first_layer_temperature -#print_temperature=$temperature -#print_bed_temperature=$bed_temperature -speed_print=$print_speed -speed_wall={$perimeter_speed?$perimeter_speed:$print_speed*0.8} -speed_infill={$infill_speed?$infill_speed:$print_speed*1.5} -retraction_speed={$retract_speed?$retract_speed:40} -speed_travel=$travel_speed -adhesion_type={$rafts>0?"raft":$brims>0?"brim":"skirt"} -brim_line_count=$brims -skirt_line_count=$skirts -raft_surface_layers=$rafts -support_enable={'$support' ne 'none' && '$support' ne '0' ? 1 : 0} -support_type={'$support' eq "bed"?"buildplate":"everywhere"} -z_seam_type={'$seam' eq 'aligned' ? 'sharpest_corner' : '$seam' eq 'nearest' ? "shortest" : '$seam' eq 'rear'? 'back' : '$seam'} diff --git a/software/Print3r/settings/slicer/enoch/base.ini b/software/Print3r/settings/slicer/enoch/base.ini deleted file mode 100644 index e69de29b..00000000 diff --git a/software/Print3r/settings/slicer/enoch/map.ini b/software/Print3r/settings/slicer/enoch/map.ini deleted file mode 100644 index 782ed66f..00000000 --- a/software/Print3r/settings/slicer/enoch/map.ini +++ /dev/null @@ -1,47 +0,0 @@ -infill_line_distance={$fill_density==0?0:$nozzle_diameter*100/$fill_density*2} -machine_nozzle_diameter=$nozzle_diameter -machine_material_diameter=$filament_diameter -top_layers={$top_thickness>0?int($top_thickness/$layer_height+0.5):$top_layers} -bottom_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -wall_line_count={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} -retraction_amount=$retraction_length -machine_start_gcode=$start_gcode -machine_end_gcode=$end_gcode -retraction_amount=$retraction_length -layer_height_0={$first_layer_height>0?$first_layer_height:$layer_height} -print_speed_layer_0=$first_layer_speed -material_bed_temperature_layer_0={$first_layer_bed_temparature?$first_layer_bed_temperature:$bed_temperature} -line_width=$nozzle_diameter -infill_line_width=$nozzle_diameter -prime_tower_line_width=$nozzle_diameter -raft_surface_line_width=$nozzle_diameter -roofing_line_width=$nozzle_diameter -skin_line_width=$nozzle_diameter -skirt_brim_line_width=$nozzle_diameter -support_bottom_line_width=$nozzle_diameter -support_interface_line_width=$nozzle_diameter -support_line_width=$nozzle_diameter -support_roof_line_width=$nozzle_diameter -wall_line_width_0=$nozzle_diameter -wall_line_width=$nozzle_diameter -wall_line_width_x=$nozzle_diameter -#default_material_print_temperature=$temperature -#default_material_print_bed_temperature=$bed_temperature -material_print_temperature=$temperature -material_print_bed_temperature=$bed_temperature -material_bed_temperature_layer_0=$bed_temperature -material_print_temperature_layer_0=$first_layer_temperature -#print_temperature=$temperature -#print_bed_temperature=$bed_temperature -speed_print=$print_speed -speed_wall={$perimeter_speed?$perimeter_speed:$print_speed*0.8} -speed_infill={$infill_speed?$infill_speed:$print_speed*1.5} -retraction_speed={$retract_speed?$retract_speed:40} -speed_travel=$travel_speed -adhesion_type={$rafts>0?"raft":$brims>0?"brim":"skirt"} -brim_line_count=$brims -skirt_line_count=$skirts -raft_surface_layers=$rafts -support_enable={'$support' ne 'none' && '$support' ne '0' ? 1 : 0} -support_type={'$support' eq "bed"?"buildplate":"everywhere"} -z_seam_type={'$seam' eq 'aligned' ? 'sharpest_corner' : '$seam' eq 'nearest' ? "shortest" : '$seam' eq 'rear'? 'back' : '$seam'} diff --git a/software/Print3r/settings/slicer/goslice/base.ini b/software/Print3r/settings/slicer/goslice/base.ini deleted file mode 100644 index 43776e92..00000000 --- a/software/Print3r/settings/slicer/goslice/base.ini +++ /dev/null @@ -1,2 +0,0 @@ -#force-safe-gcode=0 -initial-bed-temperature=0 diff --git a/software/Print3r/settings/slicer/goslice/map.ini b/software/Print3r/settings/slicer/goslice/map.ini deleted file mode 100644 index f543c9f7..00000000 --- a/software/Print3r/settings/slicer/goslice/map.ini +++ /dev/null @@ -1,21 +0,0 @@ -inset-count={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} -brim-count=$brims -skirt-count=$skirts -filament-diameter={$filament_diameter*1000} -extrusion-width={$nozzle_diameter*1000} -hot-end-temperature=$temperature -has-heated-bed={$bed_temperature>0?1:0} -bed-temperature=$bed_temperature -#initial-hot-end-temperture=$first_layer_temperature -#initial-bed-temperature=$first_layer_bed_temperature -layer-speed=$print_speed -layer-thickness={$layer_height*1000} -move-speed=$travel_speed -number-bottom-layers=$bottom_layers -number-top-layers=$top_layers -retraction-length=$retraction_length -start-gcode=$start_gcode -end-gcode=$end_gcode -retraction-speed=$retract_speed -support-enabled={'$support' ne 'none'?1:0} -infill-percent=$fill_density diff --git a/software/Print3r/settings/slicer/goslice/strict.ini b/software/Print3r/settings/slicer/goslice/strict.ini deleted file mode 100644 index bca6b85e..00000000 --- a/software/Print3r/settings/slicer/goslice/strict.ini +++ /dev/null @@ -1,43 +0,0 @@ -additional_internal_infill_overlap_percent -bed_temperature -brim_count -center -end_gcode -extrusion_multiplier -extrusion_width -fan_speed -filament_diameter -finish_polygon_snap_distance -force_safe_gcode -has_heated_bed -hot_end_temperature -infill_overlap_percent -infill_percent -infill_rotation_degree -infill_zig_zag -initial_bed_temperature -initial_hot_end_temperature -initial_layer_speed -initial_layer_thickness -initial_temperature_layer_count -inset_count -join_polygon_snap_distance -layer_speed -layer_thickness -meld_distance -move_speed -number_bottom_layers -number_top_layers -outer_perimeter_speed -output -retraction_length -retraction_speed -skirt_count -skirt_distance -start_gcode -support_enabled -support_gap -support_interface_layers -support_pattern_spacing -support_threshold_angle -support_top_gap_layers diff --git a/software/Print3r/settings/slicer/kirimoto/base.ini b/software/Print3r/settings/slicer/kirimoto/base.ini deleted file mode 100644 index 08b0cee7..00000000 --- a/software/Print3r/settings/slicer/kirimoto/base.ini +++ /dev/null @@ -1 +0,0 @@ -# empty for now as KiriMotoSlicer has sane defaults diff --git a/software/Print3r/settings/slicer/kirimoto/map.ini b/software/Print3r/settings/slicer/kirimoto/map.ini deleted file mode 100644 index aea35a53..00000000 --- a/software/Print3r/settings/slicer/kirimoto/map.ini +++ /dev/null @@ -1,25 +0,0 @@ -sliceHeight=$layer_height -firstSliceHeight={$first_layer_height>0 ? $first_layer_height : $layer_height} -sliceShells={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} -sliceFillSparse={$fill_density / 100} -sliceBottomLayers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -sliceTopLayers={$top_thickness>0?int($top_thickness/$layer_height+0.5):$top_layers} -sliceSkirtCount=$skirts -sliceSupportEnable={'$support' eq 'bed' || '$support' eq 'everywhere' ? 'true' : 'false'} -bedWidth=$machine_width -bedDepth=$machine_depth -maxHeight=$machine_height -outputTemp=$temperature -outputBedTemp=$bed_temperature -outputFeedrate=$print_speed -outputFinishrate=$print_speed -outputSeekrate=$travel_speed -#outputShellMult=1.25 -#outputFillMult=1.25 -#outputSparseMult=1.25 -outputRetractDist=$retraction_length -outputRetractSpeed=$retract_speed -##outputRetractDwell=... -gcodePre=$start_gcode -gcodePost=$end_gcode -deviceName=$machine_name diff --git a/software/Print3r/settings/slicer/lab/base.ini b/software/Print3r/settings/slicer/lab/base.ini deleted file mode 100644 index e69de29b..00000000 diff --git a/software/Print3r/settings/slicer/lab/map.ini b/software/Print3r/settings/slicer/lab/map.ini deleted file mode 100644 index 74398616..00000000 --- a/software/Print3r/settings/slicer/lab/map.ini +++ /dev/null @@ -1,3 +0,0 @@ -walls={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} - -retraction_speed=$retract_speed diff --git a/software/Print3r/settings/slicer/mandoline/base.ini b/software/Print3r/settings/slicer/mandoline/base.ini deleted file mode 100644 index e69de29b..00000000 diff --git a/software/Print3r/settings/slicer/mandoline/map.ini b/software/Print3r/settings/slicer/mandoline/map.ini deleted file mode 100644 index 2f1fa147..00000000 --- a/software/Print3r/settings/slicer/mandoline/map.ini +++ /dev/null @@ -1,14 +0,0 @@ -nozzle_0_diameter=$nozzle_diameter -retract_length=$retraction_length -skirt_lines=$skirts -skirt_layers={$skirts>0?1:0} -shell_count=$perimeters -bed_size_x=$machine_width -bed_size_y=$machine_depth -bed_center_x={$machine_width/2} -bed_center_y={$machine_depth/2} -nozzle_0_max_speed=$print_speed -bed_temp=$bed_temperature -infill_density=$fill_density -nozzle_0_temp=$temperature -shell_count=$perimeters diff --git a/software/Print3r/settings/slicer/metatron/base.ini b/software/Print3r/settings/slicer/metatron/base.ini deleted file mode 100644 index e69de29b..00000000 diff --git a/software/Print3r/settings/slicer/metatron/map.ini b/software/Print3r/settings/slicer/metatron/map.ini deleted file mode 100644 index 74398616..00000000 --- a/software/Print3r/settings/slicer/metatron/map.ini +++ /dev/null @@ -1,3 +0,0 @@ -walls={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} - -retraction_speed=$retract_speed diff --git a/software/Print3r/settings/slicer/prusa/base.ini b/software/Print3r/settings/slicer/prusa/base.ini deleted file mode 100644 index e22ea1f3..00000000 --- a/software/Print3r/settings/slicer/prusa/base.ini +++ /dev/null @@ -1,188 +0,0 @@ -# generated by Slic3r Prusa Edition 1.40.1+linux64 on 2018-10-14 at 18:48:34 -avoid_crossing_perimeters = 0 -#bed_shape = 32x25,332x25,332x325,32x325 -bed_temperature = 0 -before_layer_gcode = -between_objects_gcode = -bottom_solid_layers = 3 -bridge_acceleration = 0 -bridge_angle = 0 -bridge_fan_speed = 100 -bridge_flow_ratio = 1 -bridge_speed = 60 -brim_width = 0 -clip_multipart_objects = 0 -complete_objects = 0 -cooling = 1 -cooling_tube_length = 5 -cooling_tube_retraction = 91.5 -default_acceleration = 0 -default_filament_profile = "" -default_print_profile = -deretract_speed = 0 -disable_fan_first_layers = 3 -dont_support_bridges = 1 -duplicate_distance = 6 -elefant_foot_compensation = 0 -end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" -end_gcode = M104 S0 ; turn off temperature\nG28 X0 ; home X axis\nM84 ; disable motors\n -ensure_vertical_shell_thickness = 0 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0 -external_perimeter_speed = 50% -external_perimeters_first = 0 -extra_perimeters = 1 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extruder_colour = "" -extruder_offset = 0x0 -extrusion_axis = E -extrusion_multiplier = 1 -extrusion_width = 0 -fan_always_on = 0 -fan_below_layer_time = 60 -filament_colour = #7729B2 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_loading_speed = 28 -filament_max_volumetric_speed = 0 -filament_notes = "" -filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" -filament_settings_id = "" -filament_soluble = 0 -filament_toolchange_delay = 0 -filament_type = PLA -filament_unloading_speed = 90 -fill_angle = 45 -fill_density = 20% -#fill_pattern = rectlinear -fill_pattern = stars -first_layer_acceleration = 0 -first_layer_bed_temperature = 0 -first_layer_extrusion_width = 100% -first_layer_height = 0.25 -first_layer_speed = 30 -first_layer_temperature = 210 -gap_fill_speed = 20 -gcode_comments = 0 -gcode_flavor = marlin -infill_acceleration = 0 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 80 -inherits = -interface_shells = 0 -layer_gcode = -layer_height = 0.4 -max_fan_speed = 100 -max_layer_height = 0 -max_print_height = 200 -max_print_speed = 80 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_fan_speed = 35 -min_layer_height = 0.07 -min_print_speed = 10 -min_skirt_length = 0 -notes = -nozzle_diameter = 0.5 -octoprint_apikey = -octoprint_cafile = -octoprint_host = -only_retract_when_crossing_perimeters = 1 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -parking_pos_retraction = 92 -perimeter_acceleration = 0 -perimeter_extruder = 1 -perimeter_extrusion_width = 0 -perimeter_speed = 60 -perimeters = 3 -post_process = -print_settings_id = -printer_model = -printer_notes = -printer_settings_id = -printer_variant = -printer_vendor = -raft_layers = 0 -resolution = 0 -retract_before_travel = 2 -retract_before_wipe = 0% -retract_layer_change = 0 -retract_length = 2 -retract_length_toolchange = 10 -retract_lift = 0 -retract_lift_above = 0 -retract_lift_below = 0 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 40 -seam_position = aligned -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 0 -skirt_distance = 6 -skirt_height = 1 -skirts = 1 -slowdown_below_layer_time = 5 -small_perimeter_speed = 15 -solid_infill_below_area = 70 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0 -solid_infill_speed = 20 -spiral_vase = 0 -standby_temperature_delta = -5 -start_filament_gcode = "; Filament gcode\n" -start_gcode = G28 ; home all axes\nG1 Z5 F5000 ; lift nozzle\n -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.2 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 3 -support_material_interface_spacing = 0 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2.5 -support_material_speed = 60 -support_material_synchronize_layers = 0 -support_material_threshold = 0 -support_material_with_sheath = 1 -support_material_xy_spacing = 50% -temperature = 195 -thin_walls = 1 -threads = 8 -toolchange_gcode = -top_infill_extrusion_width = 0 -top_solid_infill_speed = 15 -top_solid_layers = 3 -travel_speed = 130 -use_firmware_retraction = 0 -use_relative_e_distances = 0 -use_volumetric_e = 0 -variable_layer_height = 1 -wipe = 0 -wipe_tower = 0 -wipe_tower_bridging = 10 -wipe_tower_rotation_angle = 0 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -wiping_volumes_extruders = 70,70 -wiping_volumes_matrix = 0 -xy_size_compensation = 0 -z_offset = 0 -machine_limits_usage = ignore diff --git a/software/Print3r/settings/slicer/prusa/map.ini b/software/Print3r/settings/slicer/prusa/map.ini deleted file mode 100644 index 334d2502..00000000 --- a/software/Print3r/settings/slicer/prusa/map.ini +++ /dev/null @@ -1,16 +0,0 @@ -top_solid_layers={$top_thickness>0?int($top_thickness/$layer_height+0.5):$top_layers} -bottom_solid_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -perimeters={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} -first_layer_bed_temperature=$bed_temperature -#first_layer_bed_temperature={$first_layer_bed_temperature?$first_layer_bed_temperature:$bed_temperature} -max_print_speed={$print_speed*1.2} -brim_width={$brims>0?$nozzle_diameter*$brims:0} -raft_layers=$rafts -skirts={$brims>0||$rafts>0?0:$skirts} -skirt_height={$brims>0||$rafts>0?0:($skirts>0?1:0)} -support_material={'$support' eq 'bed' || '$support' eq 'everywhere' ? 1 : 0} -support_material_angle=$support_angle -support_material_buildplate_only={'$support' eq 'bed' ? 1 : 0 } -seam_position={'$seam' eq 'sharpest_corner' ? 'aligned' : '$seam' } -max_fan_speed=$cool_fan_speed_max -min_fan_speed=$cool_fan_speed_min diff --git a/software/Print3r/settings/slicer/slic3r-pe/base.ini b/software/Print3r/settings/slicer/slic3r-pe/base.ini deleted file mode 100644 index 5efa659b..00000000 --- a/software/Print3r/settings/slicer/slic3r-pe/base.ini +++ /dev/null @@ -1,187 +0,0 @@ -# generated by Slic3r Prusa Edition 1.40.1+linux64 on 2018-10-14 at 18:48:34 -avoid_crossing_perimeters = 0 -#bed_shape = 32x25,332x25,332x325,32x325 -bed_temperature = 0 -before_layer_gcode = -between_objects_gcode = -bottom_solid_layers = 3 -bridge_acceleration = 0 -bridge_angle = 0 -bridge_fan_speed = 100 -bridge_flow_ratio = 1 -bridge_speed = 60 -brim_width = 0 -clip_multipart_objects = 0 -complete_objects = 0 -cooling = 1 -cooling_tube_length = 5 -cooling_tube_retraction = 91.5 -default_acceleration = 0 -default_filament_profile = "" -default_print_profile = -deretract_speed = 0 -disable_fan_first_layers = 3 -dont_support_bridges = 1 -duplicate_distance = 6 -elefant_foot_compensation = 0 -end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" -end_gcode = M104 S0 ; turn off temperature\nG28 X0 ; home X axis\nM84 ; disable motors\n -ensure_vertical_shell_thickness = 0 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0 -external_perimeter_speed = 50% -external_perimeters_first = 0 -extra_perimeters = 1 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extruder_colour = "" -extruder_offset = 0x0 -extrusion_axis = E -extrusion_multiplier = 1 -extrusion_width = 0 -fan_always_on = 0 -fan_below_layer_time = 60 -filament_colour = #7729B2 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_loading_speed = 28 -filament_max_volumetric_speed = 0 -filament_notes = "" -filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" -filament_settings_id = "" -filament_soluble = 0 -filament_toolchange_delay = 0 -filament_type = PLA -filament_unloading_speed = 90 -fill_angle = 45 -fill_density = 20% -#fill_pattern = rectlinear -fill_pattern = stars -first_layer_acceleration = 0 -first_layer_bed_temperature = 0 -first_layer_extrusion_width = 100% -first_layer_height = 0.25 -first_layer_speed = 30 -first_layer_temperature = 210 -gap_fill_speed = 20 -gcode_comments = 0 -gcode_flavor = marlin -infill_acceleration = 0 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 80 -inherits = -interface_shells = 0 -layer_gcode = -layer_height = 0.4 -max_fan_speed = 100 -max_layer_height = 0 -max_print_height = 200 -max_print_speed = 80 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_fan_speed = 35 -min_layer_height = 0.07 -min_print_speed = 10 -min_skirt_length = 0 -notes = -nozzle_diameter = 0.5 -octoprint_apikey = -octoprint_cafile = -octoprint_host = -only_retract_when_crossing_perimeters = 1 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -parking_pos_retraction = 92 -perimeter_acceleration = 0 -perimeter_extruder = 1 -perimeter_extrusion_width = 0 -perimeter_speed = 60 -perimeters = 3 -post_process = -print_settings_id = -printer_model = -printer_notes = -printer_settings_id = -printer_variant = -printer_vendor = -raft_layers = 0 -resolution = 0 -retract_before_travel = 2 -retract_before_wipe = 0% -retract_layer_change = 0 -retract_length = 2 -retract_length_toolchange = 10 -retract_lift = 0 -retract_lift_above = 0 -retract_lift_below = 0 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 40 -seam_position = aligned -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 0 -skirt_distance = 6 -skirt_height = 1 -skirts = 1 -slowdown_below_layer_time = 5 -small_perimeter_speed = 15 -solid_infill_below_area = 70 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0 -solid_infill_speed = 20 -spiral_vase = 0 -standby_temperature_delta = -5 -start_filament_gcode = "; Filament gcode\n" -start_gcode = G28 ; home all axes\nG1 Z5 F5000 ; lift nozzle\n -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.2 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 3 -support_material_interface_spacing = 0 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2.5 -support_material_speed = 60 -support_material_synchronize_layers = 0 -support_material_threshold = 0 -support_material_with_sheath = 1 -support_material_xy_spacing = 50% -temperature = 195 -thin_walls = 1 -threads = 8 -toolchange_gcode = -top_infill_extrusion_width = 0 -top_solid_infill_speed = 15 -top_solid_layers = 3 -travel_speed = 130 -use_firmware_retraction = 0 -use_relative_e_distances = 0 -use_volumetric_e = 0 -variable_layer_height = 1 -wipe = 0 -wipe_tower = 0 -wipe_tower_bridging = 10 -wipe_tower_rotation_angle = 0 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -#wiping_volumes_extruders = 70,70 -#wiping_volumes_matrix = 0 -xy_size_compensation = 0 -z_offset = 0 diff --git a/software/Print3r/settings/slicer/slic3r-pe/map.ini b/software/Print3r/settings/slicer/slic3r-pe/map.ini deleted file mode 100644 index e428b9cf..00000000 --- a/software/Print3r/settings/slicer/slic3r-pe/map.ini +++ /dev/null @@ -1,20 +0,0 @@ -top_solid_layers={$top_thickness>0?int($top_thickness/$layer_height+0.5):$top_layers} -bottom_solid_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -perimeters={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} -first_layer_bed_temperature=$bed_temperature -#first_layer_bed_temperature={$first_layer_bed_temperature?$first_layer_bed_temperature:$bed_temperature} -max_print_speed={$print_speed*1.2} -brim_width={$brims>0?$nozzle_diameter*$brims:0} -raft_layers=$rafts -skirts={$brims>0||$rafts>0?0:$skirts} -skirt_height={$brims>0||$rafts>0?0:$skirts} -support_material={'$support' eq 'bed' || '$support' eq 'everywhere' ? 1 : 0} -support_material_angle=$support_angle -support_material_buildplate_only={'$support' eq 'bed' ? 1 : 0 } -seam_position={'$seam' eq 'sharpest_corner' ? 'aligned' : '$seam' } -nozzle_diameter={$extruders_count>1?join(',',("$nozzle_diameter")x$extruders_count):$nozzle_diameter} -filament_diameter={$extruders_count>1?join(',',("$filament_diameter")x$extruders_count):$filament_diameter} -temperature={$extruders_count>1?join(',',("$temperature")x$extruders_count):$temperature} -first_layer_temperature={$extruders_count>1?join(',',("$first_layer_temperature")x$extruders_count):$first_layer_temperature} -max_fan_speed=$cool_fan_speed_max -min_fan_speed=$cool_fan_speed_min diff --git a/software/Print3r/settings/slicer/slic3r-pe/vase.ini b/software/Print3r/settings/slicer/slic3r-pe/vase.ini deleted file mode 100644 index c2fe8188..00000000 --- a/software/Print3r/settings/slicer/slic3r-pe/vase.ini +++ /dev/null @@ -1 +0,0 @@ -../slic3r/vase.ini \ No newline at end of file diff --git a/software/Print3r/settings/slicer/slic3r/base.ini b/software/Print3r/settings/slicer/slic3r/base.ini deleted file mode 100644 index 9aa9514c..00000000 --- a/software/Print3r/settings/slicer/slic3r/base.ini +++ /dev/null @@ -1,187 +0,0 @@ -# generated by Slic3r Prusa Edition 1.40.1+linux64 on 2018-10-14 at 18:48:34 -avoid_crossing_perimeters = 0 -#bed_shape = 32x25,332x25,332x325,32x325 -bed_temperature = 0 -before_layer_gcode = -between_objects_gcode = -bottom_solid_layers = 3 -bridge_acceleration = 0 -bridge_angle = 0 -bridge_fan_speed = 100 -bridge_flow_ratio = 1 -bridge_speed = 60 -brim_width = 0 -clip_multipart_objects = 0 -complete_objects = 0 -cooling = 1 -cooling_tube_length = 5 -cooling_tube_retraction = 91.5 -default_acceleration = 0 -default_filament_profile = "" -default_print_profile = -deretract_speed = 0 -disable_fan_first_layers = 3 -dont_support_bridges = 1 -duplicate_distance = 6 -elefant_foot_compensation = 0 -end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" -end_gcode = M104 S0 ; turn off temperature\nG28 X0 ; home X axis\nM84 ; disable motors\n -ensure_vertical_shell_thickness = 0 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0 -external_perimeter_speed = 50% -external_perimeters_first = 0 -extra_perimeters = 1 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extruder_colour = "" -extruder_offset = 0x0 -extrusion_axis = E -extrusion_multiplier = 1 -extrusion_width = 0 -fan_always_on = 0 -fan_below_layer_time = 60 -filament_colour = #7729B2 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_loading_speed = 28 -filament_max_volumetric_speed = 0 -filament_notes = "" -filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" -filament_settings_id = "" -filament_soluble = 0 -filament_toolchange_delay = 0 -filament_type = PLA -filament_unloading_speed = 90 -fill_angle = 45 -fill_density = 20% -#fill_pattern = rectlinear -fill_pattern = stars -first_layer_acceleration = 0 -first_layer_bed_temperature = 0 -first_layer_extrusion_width = 200% -first_layer_height = 0.25 -first_layer_speed = 30 -first_layer_temperature = 210 -gap_fill_speed = 20 -gcode_comments = 0 -gcode_flavor = marlin -infill_acceleration = 0 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 80 -inherits = -interface_shells = 0 -layer_gcode = -layer_height = 0.4 -max_fan_speed = 100 -max_layer_height = 0 -max_print_height = 200 -max_print_speed = 80 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_fan_speed = 35 -min_layer_height = 0.07 -min_print_speed = 10 -min_skirt_length = 0 -notes = -nozzle_diameter = 0.5 -octoprint_apikey = -octoprint_cafile = -octoprint_host = -only_retract_when_crossing_perimeters = 1 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -parking_pos_retraction = 92 -perimeter_acceleration = 0 -perimeter_extruder = 1 -perimeter_extrusion_width = 0 -perimeter_speed = 60 -perimeters = 3 -post_process = -print_settings_id = -printer_model = -printer_notes = -printer_settings_id = -printer_variant = -printer_vendor = -raft_layers = 0 -resolution = 0 -retract_before_travel = 2 -retract_before_wipe = 0% -retract_layer_change = 0 -retract_length = 2 -retract_length_toolchange = 10 -retract_lift = 0 -retract_lift_above = 0 -retract_lift_below = 0 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 40 -seam_position = aligned -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 0 -skirt_distance = 6 -skirt_height = 1 -skirts = 1 -slowdown_below_layer_time = 5 -small_perimeter_speed = 15 -solid_infill_below_area = 70 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0 -solid_infill_speed = 20 -spiral_vase = 0 -standby_temperature_delta = -5 -start_filament_gcode = "; Filament gcode\n" -start_gcode = G28 ; home all axes\nG1 Z5 F5000 ; lift nozzle\n -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.2 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 3 -support_material_interface_spacing = 0 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2.5 -support_material_speed = 60 -support_material_synchronize_layers = 0 -support_material_threshold = 0 -support_material_with_sheath = 1 -support_material_xy_spacing = 50% -temperature = 195 -thin_walls = 1 -threads = 8 -toolchange_gcode = -top_infill_extrusion_width = 0 -top_solid_infill_speed = 15 -top_solid_layers = 3 -travel_speed = 130 -use_firmware_retraction = 0 -use_relative_e_distances = 0 -use_volumetric_e = 0 -variable_layer_height = 1 -wipe = 0 -wipe_tower = 0 -wipe_tower_bridging = 10 -wipe_tower_rotation_angle = 0 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -wiping_volumes_extruders = 70,70 -wiping_volumes_matrix = 0 -xy_size_compensation = 0 -z_offset = 0 diff --git a/software/Print3r/settings/slicer/slic3r/map.ini b/software/Print3r/settings/slicer/slic3r/map.ini deleted file mode 100644 index a3fa4d19..00000000 --- a/software/Print3r/settings/slicer/slic3r/map.ini +++ /dev/null @@ -1,20 +0,0 @@ -top_solid_layers={$top_thickness>0?int($top_thickness/$layer_height+0.5):$top_layers} -bottom_solid_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -perimeters={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} -first_layer_bed_temperature=$bed_temperature -#first_layer_bed_temperature={$first_layer_bed_temperature?$first_layer_bed_temperature:$bed_temperature} -max_print_speed={$print_speed*1.2} -brim_width={$brims>0?$nozzle_diameter*$brims:0} -raft_layers=$rafts -skirts={$brims>0||$rafts>0?0:$skirts} -skirt_height={$brims>0||$rafts>0?0:1} -support_material={'$support' eq 'bed' || '$support' eq 'everywhere' ? 1 : 0} -support_material_buildplate_only={'$support' eq 'bed' ? 1 : 0 } -support_material_angle=$support_angle -seam_position={'$seam' eq 'rear' ? 'aligned' : '$seam' eq 'sharpest_corner' ? 'aligned' : '$seam'} -nozzle_diameter={$extruders_count>1?join(',',("$nozzle_diameter")x$extruders_count):$nozzle_diameter} -filament_diameter={$extruders_count>1?join(',',("$filament_diameter")x$extruders_count):$filament_diameter} -max_fan_speed=$cool_fan_speed_max -min_fan_speed=$cool_fan_speed_min -retract_length=$retraction_length?$retraction_length:2 -retract_speed=$retraction_speed?$retraction_speed:80 diff --git a/software/Print3r/settings/slicer/slicer4rtn/base.ini b/software/Print3r/settings/slicer/slicer4rtn/base.ini deleted file mode 100644 index 9aa9514c..00000000 --- a/software/Print3r/settings/slicer/slicer4rtn/base.ini +++ /dev/null @@ -1,187 +0,0 @@ -# generated by Slic3r Prusa Edition 1.40.1+linux64 on 2018-10-14 at 18:48:34 -avoid_crossing_perimeters = 0 -#bed_shape = 32x25,332x25,332x325,32x325 -bed_temperature = 0 -before_layer_gcode = -between_objects_gcode = -bottom_solid_layers = 3 -bridge_acceleration = 0 -bridge_angle = 0 -bridge_fan_speed = 100 -bridge_flow_ratio = 1 -bridge_speed = 60 -brim_width = 0 -clip_multipart_objects = 0 -complete_objects = 0 -cooling = 1 -cooling_tube_length = 5 -cooling_tube_retraction = 91.5 -default_acceleration = 0 -default_filament_profile = "" -default_print_profile = -deretract_speed = 0 -disable_fan_first_layers = 3 -dont_support_bridges = 1 -duplicate_distance = 6 -elefant_foot_compensation = 0 -end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" -end_gcode = M104 S0 ; turn off temperature\nG28 X0 ; home X axis\nM84 ; disable motors\n -ensure_vertical_shell_thickness = 0 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0 -external_perimeter_speed = 50% -external_perimeters_first = 0 -extra_perimeters = 1 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extruder_colour = "" -extruder_offset = 0x0 -extrusion_axis = E -extrusion_multiplier = 1 -extrusion_width = 0 -fan_always_on = 0 -fan_below_layer_time = 60 -filament_colour = #7729B2 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_loading_speed = 28 -filament_max_volumetric_speed = 0 -filament_notes = "" -filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" -filament_settings_id = "" -filament_soluble = 0 -filament_toolchange_delay = 0 -filament_type = PLA -filament_unloading_speed = 90 -fill_angle = 45 -fill_density = 20% -#fill_pattern = rectlinear -fill_pattern = stars -first_layer_acceleration = 0 -first_layer_bed_temperature = 0 -first_layer_extrusion_width = 200% -first_layer_height = 0.25 -first_layer_speed = 30 -first_layer_temperature = 210 -gap_fill_speed = 20 -gcode_comments = 0 -gcode_flavor = marlin -infill_acceleration = 0 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 80 -inherits = -interface_shells = 0 -layer_gcode = -layer_height = 0.4 -max_fan_speed = 100 -max_layer_height = 0 -max_print_height = 200 -max_print_speed = 80 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_fan_speed = 35 -min_layer_height = 0.07 -min_print_speed = 10 -min_skirt_length = 0 -notes = -nozzle_diameter = 0.5 -octoprint_apikey = -octoprint_cafile = -octoprint_host = -only_retract_when_crossing_perimeters = 1 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -parking_pos_retraction = 92 -perimeter_acceleration = 0 -perimeter_extruder = 1 -perimeter_extrusion_width = 0 -perimeter_speed = 60 -perimeters = 3 -post_process = -print_settings_id = -printer_model = -printer_notes = -printer_settings_id = -printer_variant = -printer_vendor = -raft_layers = 0 -resolution = 0 -retract_before_travel = 2 -retract_before_wipe = 0% -retract_layer_change = 0 -retract_length = 2 -retract_length_toolchange = 10 -retract_lift = 0 -retract_lift_above = 0 -retract_lift_below = 0 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 40 -seam_position = aligned -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 0 -skirt_distance = 6 -skirt_height = 1 -skirts = 1 -slowdown_below_layer_time = 5 -small_perimeter_speed = 15 -solid_infill_below_area = 70 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0 -solid_infill_speed = 20 -spiral_vase = 0 -standby_temperature_delta = -5 -start_filament_gcode = "; Filament gcode\n" -start_gcode = G28 ; home all axes\nG1 Z5 F5000 ; lift nozzle\n -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.2 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 3 -support_material_interface_spacing = 0 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2.5 -support_material_speed = 60 -support_material_synchronize_layers = 0 -support_material_threshold = 0 -support_material_with_sheath = 1 -support_material_xy_spacing = 50% -temperature = 195 -thin_walls = 1 -threads = 8 -toolchange_gcode = -top_infill_extrusion_width = 0 -top_solid_infill_speed = 15 -top_solid_layers = 3 -travel_speed = 130 -use_firmware_retraction = 0 -use_relative_e_distances = 0 -use_volumetric_e = 0 -variable_layer_height = 1 -wipe = 0 -wipe_tower = 0 -wipe_tower_bridging = 10 -wipe_tower_rotation_angle = 0 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -wiping_volumes_extruders = 70,70 -wiping_volumes_matrix = 0 -xy_size_compensation = 0 -z_offset = 0 diff --git a/software/Print3r/settings/slicer/slicer4rtn/map.ini b/software/Print3r/settings/slicer/slicer4rtn/map.ini deleted file mode 100644 index 86c52ef9..00000000 --- a/software/Print3r/settings/slicer/slicer4rtn/map.ini +++ /dev/null @@ -1,19 +0,0 @@ -top_solid_layers={$top_thickness>0?int($top_thickness/$layer_height+0.5):$top_layers} -bottom_solid_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -perimeters={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} -first_layer_bed_temperature=$bed_temperature -#first_layer_bed_temperature={$first_layer_bed_temperature?$first_layer_bed_temperature:$bed_temperature} -max_print_speed={$print_speed*1.2} -brim_width={$brims>0?$nozzle_diameter*$brims:0} -raft_layers=$rafts -skirts={$brims>0||$rafts>0?0:$skirts} -skirt_height={$brims>0||$rafts>0?0:$skirts} -support_material={'$support' eq 'bed' || '$support' eq 'everywhere' ? 1 : 0} -support_material_buildplate_only={'$support' eq 'bed' ? 1 : 0 } -support_material_angle=$support_angle -seam_position={'$seam' eq 'rear' ? 'aligned' : '$seam' eq 'sharpest_corner' ? 'aligned' : '$seam'} -nozzle_diameter={$extruders_count>1?join(',',("$nozzle_diameter")x$extruders_count):$nozzle_diameter} -filament_diameter={$extruders_count>1?join(',',("$filament_diameter")x$extruders_count):$filament_diameter} -max_fan_speed=$cool_fan_speed_max -min_fan_speed=$cool_fan_speed_min - diff --git a/software/Print3r/settings/slicer/slicers.json b/software/Print3r/settings/slicer/slicers.json deleted file mode 100644 index 3d3275a9..00000000 --- a/software/Print3r/settings/slicer/slicers.json +++ /dev/null @@ -1,157 +0,0 @@ -{ - "cura" : { - "exe" : "CuraEngine", - "formats" : { - "stl" : 1 - } - }, - "cura-legacy" : { - "exe" : "CuraEngineLegacy", - "formats" : { - "stl" : 1 - } - }, - "cura4" : { - "exe" : "CuraEngine4", - "formats" : { - "stl" : 1 - } - }, - "cura5" : { - "exe" : "CuraEngine5", - "formats" : { - "stl" : 1 - } - }, - "curax" : { - "exe" : "CuraEngineX", - "formats" : { - "stl" : 1, - "obj" : 1, - "off" : 1 - } - }, - "prusa" : { - "exe" : "prusa-slicer", - "formats" : { - "obj" : 1, - "3mf" : 1, - "amf" : 1, - "stl" : 1 - } - }, - "slic3r" : { - "exe" : "slic3r", - "formats" : { - "obj" : 1, - "amf" : 1, - "stl" : 1 - } - }, - "slic3r-pe" : { - "exe" : "slic3r-prusa3d", - "formats" : { - "obj" : 1, - "amf" : 1, - "stl" : 1 - } - }, - "slicer4rtn": { - "exe" : "slicer4rtn", - "format": { - "stl": 1 - } - }, - "cura-slicer" : { - "exe" : "cura-slicer", - "formats" : { - "stl" : 1 - } - }, - "super": { - "exe": "superslicer", - "formats": { - "obj" : 1, - "3mf" : 1, - "amf" : 1, - "stl" : 1 - } - }, - "mandoline" : { - "exe" : "mandoline", - "formats" : { - "stl" : 1 - } - }, - "5dmaker": { - "exe": "5dmaker", - "formats": { - "stl": 1, - "5mf": 1 - } - }, - "kirimoto": { - "exe": "kirimoto-slicer", - "formats": { - "stl": 1 - } - }, - "zplus": { - "exe": "zplus-slicer", - "formats": { - "stl": 1 - } - }, - "lab": { - "exe": "lab-slicer", - "formats": { - "stl": 1, - "obj": 1, - "3mj": 1, - "3mf": 1 - } - }, - "vox3l": { - "exe": "vox3l-slicer", - "formats": { - "stl": 1, - "obj": 1, - "3mj": 1, - "3mf": 1 - } - }, - "voxgl": { - "exe": "voxgl-slicer", - "formats": { - "stl": 1, - "off": 1, - "3mj": 1, - "3mf": 1 - }, - "stdout": 1 - }, - "metatron": { - "exe": "metatron-slicer", - "formats": { - "stl": 1, - "off": 1, - "3mj": 1, - "3mf": 1 - } - }, - "enoch": { - "exe": "enoch-slicer", - "formats": { - "stl": 1, - "off": 1, - "3mj": 1, - "3mf": 1 - } - }, - "goslice": { - "exe": "goslice", - "formats": { - "stl": 1 - } - } -} diff --git a/software/Print3r/settings/slicer/super/base.ini b/software/Print3r/settings/slicer/super/base.ini deleted file mode 100644 index c98d3a91..00000000 --- a/software/Print3r/settings/slicer/super/base.ini +++ /dev/null @@ -1,187 +0,0 @@ -# generated by Slic3r Prusa Edition 1.40.1+linux64 on 2018-10-14 at 18:48:34 -avoid_crossing_perimeters = 0 -#bed_shape = 32x25,332x25,332x325,32x325 -bed_temperature = 0 -before_layer_gcode = -between_objects_gcode = -bottom_solid_layers = 3 -bridge_acceleration = 0 -bridge_angle = 0 -bridge_fan_speed = 100 -bridge_flow_ratio = 1 -bridge_speed = 60 -brim_width = 0 -clip_multipart_objects = 0 -complete_objects = 0 -cooling = 1 -cooling_tube_length = 5 -cooling_tube_retraction = 91.5 -default_acceleration = 0 -default_filament_profile = "" -default_print_profile = -deretract_speed = 0 -disable_fan_first_layers = 3 -dont_support_bridges = 1 -duplicate_distance = 6 -elefant_foot_compensation = 0 -end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" -end_gcode = M104 S0 ; turn off temperature\nG28 X0 ; home X axis\nM84 ; disable motors\n -ensure_vertical_shell_thickness = 0 -external_fill_pattern = rectilinear -external_perimeter_extrusion_width = 0 -external_perimeter_speed = 50% -external_perimeters_first = 0 -extra_perimeters = 1 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extruder_colour = "" -extruder_offset = 0x0 -extrusion_axis = E -extrusion_multiplier = 1 -extrusion_width = 0 -fan_always_on = 0 -fan_below_layer_time = 60 -filament_colour = #7729B2 -filament_cost = 0 -filament_density = 0 -filament_diameter = 1.75 -filament_loading_speed = 28 -filament_max_volumetric_speed = 0 -filament_notes = "" -filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" -filament_settings_id = "" -filament_soluble = 0 -filament_toolchange_delay = 0 -filament_type = PLA -filament_unloading_speed = 90 -fill_angle = 45 -fill_density = 20% -#fill_pattern = rectlinear -fill_pattern = stars -first_layer_acceleration = 0 -first_layer_bed_temperature = 0 -first_layer_extrusion_width = 100% -first_layer_height = 0.25 -first_layer_speed = 30 -first_layer_temperature = 210 -gap_fill_speed = 20 -gcode_comments = 0 -gcode_flavor = marlin -infill_acceleration = 0 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 25% -infill_speed = 80 -inherits = -interface_shells = 0 -layer_gcode = -layer_height = 0.4 -max_fan_speed = 100 -max_layer_height = 0 -max_print_height = 200 -max_print_speed = 80 -max_volumetric_extrusion_rate_slope_negative = 0 -max_volumetric_extrusion_rate_slope_positive = 0 -max_volumetric_speed = 0 -min_fan_speed = 35 -min_layer_height = 0.07 -min_print_speed = 10 -min_skirt_length = 0 -notes = -nozzle_diameter = 0.5 -octoprint_apikey = -octoprint_cafile = -octoprint_host = -only_retract_when_crossing_perimeters = 1 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -parking_pos_retraction = 92 -perimeter_acceleration = 0 -perimeter_extruder = 1 -perimeter_extrusion_width = 0 -perimeter_speed = 60 -perimeters = 3 -post_process = -print_settings_id = -printer_model = -printer_notes = -printer_settings_id = -printer_variant = -printer_vendor = -raft_layers = 0 -resolution = 0 -retract_before_travel = 2 -retract_before_wipe = 0% -retract_layer_change = 0 -retract_length = 2 -retract_length_toolchange = 10 -retract_lift = 0 -retract_lift_above = 0 -retract_lift_below = 0 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 40 -seam_position = aligned -serial_port = -serial_speed = 250000 -single_extruder_multi_material = 0 -skirt_distance = 6 -skirt_height = 1 -skirts = 1 -slowdown_below_layer_time = 5 -small_perimeter_speed = 15 -solid_infill_below_area = 70 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0 -solid_infill_speed = 20 -spiral_vase = 0 -standby_temperature_delta = -5 -start_filament_gcode = "; Filament gcode\n" -start_gcode = G28 ; home all axes\nG1 Z5 F5000 ; lift nozzle\n -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.2 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0 -support_material_interface_contact_loops = 0 -support_material_interface_extruder = 1 -support_material_interface_layers = 3 -support_material_interface_spacing = 0 -support_material_interface_speed = 100% -support_material_pattern = rectilinear -support_material_spacing = 2.5 -support_material_speed = 60 -support_material_synchronize_layers = 0 -support_material_threshold = 0 -support_material_with_sheath = 1 -support_material_xy_spacing = 50% -temperature = 195 -thin_walls = 1 -threads = 8 -toolchange_gcode = -top_infill_extrusion_width = 0 -top_solid_infill_speed = 15 -top_solid_layers = 3 -travel_speed = 130 -use_firmware_retraction = 0 -use_relative_e_distances = 0 -use_volumetric_e = 0 -variable_layer_height = 1 -wipe = 0 -wipe_tower = 0 -wipe_tower_bridging = 10 -wipe_tower_rotation_angle = 0 -wipe_tower_width = 60 -wipe_tower_x = 180 -wipe_tower_y = 140 -wiping_volumes_extruders = 70,70 -wiping_volumes_matrix = 0 -xy_size_compensation = 0 -z_offset = 0 diff --git a/software/Print3r/settings/slicer/super/map.ini b/software/Print3r/settings/slicer/super/map.ini deleted file mode 100644 index 985a1c6b..00000000 --- a/software/Print3r/settings/slicer/super/map.ini +++ /dev/null @@ -1,16 +0,0 @@ -top_solid_layers={$top_thickness>0?int($top_thickness/$layer_height+0.5):$top_layers} -bottom_solid_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -perimeters={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} -first_layer_bed_temperature=$bed_temperature -#first_layer_bed_temperature={$first_layer_bed_temperature?$first_layer_bed_temperature:$bed_temperature} -max_print_speed={$print_speed*1.2} -brim_width={$brims>0?$nozzle_diameter*$brims:0} -raft_layers=$rafts -skirts={$brims>0||$rafts>0?0:$skirts} -skirt_height={$brims>0||$rafts>0?0:$skirts} -support_material={'$support' eq 'bed' || '$support' eq 'everywhere' ? 1 : 0} -support_material_angle=$support_angle -support_material_buildplate_only={'$support' eq 'bed' ? 1 : 0 } -seam_position={'$seam' eq 'sharpest_corner' ? 'aligned' : '$seam' } -max_fan_speed=$cool_fan_speed_max -min_fan_speed=$cool_fan_speed_min diff --git a/software/Print3r/settings/slicer/vox3l/base.ini b/software/Print3r/settings/slicer/vox3l/base.ini deleted file mode 100644 index e69de29b..00000000 diff --git a/software/Print3r/settings/slicer/vox3l/map.ini b/software/Print3r/settings/slicer/vox3l/map.ini deleted file mode 100644 index 74398616..00000000 --- a/software/Print3r/settings/slicer/vox3l/map.ini +++ /dev/null @@ -1,3 +0,0 @@ -walls={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} - -retraction_speed=$retract_speed diff --git a/software/Print3r/settings/slicer/voxgl/base.ini b/software/Print3r/settings/slicer/voxgl/base.ini deleted file mode 100644 index e69de29b..00000000 diff --git a/software/Print3r/settings/slicer/voxgl/map.ini b/software/Print3r/settings/slicer/voxgl/map.ini deleted file mode 100644 index 74398616..00000000 --- a/software/Print3r/settings/slicer/voxgl/map.ini +++ /dev/null @@ -1,3 +0,0 @@ -walls={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} - -retraction_speed=$retract_speed diff --git a/software/Print3r/settings/slicer/zplus/base.ini b/software/Print3r/settings/slicer/zplus/base.ini deleted file mode 100644 index e69de29b..00000000 diff --git a/software/Print3r/settings/slicer/zplus/map.ini b/software/Print3r/settings/slicer/zplus/map.ini deleted file mode 100644 index 927c2363..00000000 --- a/software/Print3r/settings/slicer/zplus/map.ini +++ /dev/null @@ -1,47 +0,0 @@ -#infill_line_distance={$fill_density==0?0:$nozzle_diameter*100/$fill_density*2} -#machine_nozzle_diameter=$nozzle_diameter -#machine_material_diameter=$filament_diameter -top_layers={$top_thickness>0?int($top_thickness/$layer_height+0.5):$top_layers} -bottom_layers={$bottom_thickness>0?int($bottom_thickness/$layer_height+0.5):$bottom_layers} -#wall_line_count={$wall_thickness>0?int($wall_thickness/$nozzle_diameter+0.5):$perimeters} -retraction_amount=$retraction_length -#machine_start_gcode=$start_gcode -#machine_end_gcode=$end_gcode -#retraction_amount=$retraction_length -layer_height_0={$first_layer_height>0?$first_layer_height:$layer_height} -print_speed_layer_0=$first_layer_speed -material_bed_temperature_layer_0={$first_layer_bed_temparature?$first_layer_bed_temperature:$bed_temperature} -#line_width=$nozzle_diameter -#infill_line_width=$nozzle_diameter -#prime_tower_line_width=$nozzle_diameter -#raft_surface_line_width=$nozzle_diameter -#roofing_line_width=$nozzle_diameter -#skin_line_width=$nozzle_diameter -#skirt_brim_line_width=$nozzle_diameter -#support_bottom_line_width=$nozzle_diameter -#support_interface_line_width=$nozzle_diameter -#support_line_width=$nozzle_diameter -#support_roof_line_width=$nozzle_diameter -#wall_line_width_0=$nozzle_diameter -#wall_line_width=$nozzle_diameter -#wall_line_width_x=$nozzle_diameter -#default_material_print_temperature=$temperature -#default_material_print_bed_temperature=$bed_temperature -#material_print_temperature=$temperature -#material_print_bed_temperature=$bed_temperature -#material_bed_temperature_layer_0=$bed_temperature -#material_print_temperature_layer_0=$first_layer_temperature -#print_temperature=$temperature -#print_bed_temperature=$bed_temperature -#speed_print=$print_speed -#speed_wall={$perimeter_speed?$perimeter_speed:$print_speed*0.8} -#speed_infill={$infill_speed?$infill_speed:$print_speed*1.5} -retraction_speed={$retract_speed?$retract_speed:80} -speed_travel=$travel_speed -adhesion_type={$rafts>0?"raft":$brims>0?"brim":"skirt"} -#brim_line_count=$brims -#skirt_line_count=$skirts -#raft_surface_layers=$rafts -support_enable={'$support' ne 'none' && '$support' ne '0' ? 1 : 0} -support_type={'$support' eq "bed"?"buildplate":"everywhere"} -z_seam_type={'$seam' eq 'aligned' ? 'sharpest_corner' : '$seam' eq 'nearest' ? "shortest" : '$seam' eq 'rear'? 'back' : '$seam'} diff --git a/software/Slic3r-1.3.0.64bit/MANIFEST b/software/Slic3r-1.3.0.64bit/MANIFEST deleted file mode 100644 index 52667ed6..00000000 --- a/software/Slic3r-1.3.0.64bit/MANIFEST +++ /dev/null @@ -1,2894 +0,0 @@ - -MANIFEST -META.yml -Slic3r-console.exe -Slic3r-debug-console.exe -Slic3r.exe -freeglut.dll -lib/AutoLoader.pm -lib/B.pm -lib/B/Deparse.pm -lib/CPAN/Config.pm -lib/Carp.pm -lib/Carp/Heavy.pm -lib/Class/Accessor.pm -lib/Class/Method/Modifiers.pm -lib/Class/Struct.pm -lib/Compress/Raw/Bzip2.pm -lib/Compress/Raw/Zlib.pm -lib/Config.pm -lib/Config_git.pl -lib/Config_heavy.pl -lib/Crypt/CBC.pm -lib/Cwd.pm -lib/Data/Dumper.pm -lib/Data/OptList.pm -lib/Devel/GlobalDestruction.pm -lib/Digest.pm -lib/Digest/MD5.pm -lib/Digest/SHA.pm -lib/Digest/base.pm -lib/DynaLoader.pm -lib/Encode.pm -lib/Encode/Alias.pm -lib/Encode/Byte.pm -lib/Encode/Config.pm -lib/Encode/Encoding.pm -lib/Encode/Locale.pm -lib/Encode/MIME/Name.pm -lib/Errno.pm -lib/Exporter.pm -lib/Exporter/Heavy.pm -lib/Fcntl.pm -lib/File/Basename.pm -lib/File/Glob.pm -lib/File/GlobMapper.pm -lib/File/Listing.pm -lib/File/Spec.pm -lib/File/Spec/Unix.pm -lib/File/Spec/Win32.pm -lib/File/stat.pm -lib/FileHandle.pm -lib/FindBin.pm -lib/Getopt/Long.pm -lib/HTML/Entities.pm -lib/HTML/HeadParser.pm -lib/HTML/Parser.pm -lib/HTTP/Config.pm -lib/HTTP/Cookies.pm -lib/HTTP/Cookies/Netscape.pm -lib/HTTP/Date.pm -lib/HTTP/Headers.pm -lib/HTTP/Headers/Util.pm -lib/HTTP/Message.pm -lib/HTTP/Negotiate.pm -lib/HTTP/Request.pm -lib/HTTP/Request/Common.pm -lib/HTTP/Response.pm -lib/HTTP/Status.pm -lib/IO.pm -lib/IO/Compress/Adapter/Bzip2.pm -lib/IO/Compress/Adapter/Deflate.pm -lib/IO/Compress/Base.pm -lib/IO/Compress/Base/Common.pm -lib/IO/Compress/Bzip2.pm -lib/IO/Compress/Deflate.pm -lib/IO/Compress/Gzip.pm -lib/IO/Compress/Gzip/Constants.pm -lib/IO/Compress/RawDeflate.pm -lib/IO/Compress/Zlib/Constants.pm -lib/IO/Compress/Zlib/Extra.pm -lib/IO/Dir.pm -lib/IO/File.pm -lib/IO/HTML.pm -lib/IO/Handle.pm -lib/IO/Pipe.pm -lib/IO/Seekable.pm -lib/IO/Select.pm -lib/IO/Socket.pm -lib/IO/Socket/INET.pm -lib/IO/Socket/INET6.pm -lib/IO/Socket/IP.pm -lib/IO/Socket/SSL.pm -lib/IO/Socket/SSL/PublicSuffix.pm -lib/IO/Socket/UNIX.pm -lib/IO/Uncompress/Adapter/Bunzip2.pm -lib/IO/Uncompress/Adapter/Inflate.pm -lib/IO/Uncompress/Base.pm -lib/IO/Uncompress/Bunzip2.pm -lib/IO/Uncompress/Gunzip.pm -lib/IO/Uncompress/Inflate.pm -lib/IO/Uncompress/RawInflate.pm -lib/LWP.pm -lib/LWP/Authen/Basic.pm -lib/LWP/Authen/Digest.pm -lib/LWP/Authen/Ntlm.pm -lib/LWP/ConnCache.pm -lib/LWP/MediaTypes.pm -lib/LWP/MemberMixin.pm -lib/LWP/Protocol.pm -lib/LWP/Protocol/cpan.pm -lib/LWP/Protocol/data.pm -lib/LWP/Protocol/file.pm -lib/LWP/Protocol/ftp.pm -lib/LWP/Protocol/gopher.pm -lib/LWP/Protocol/http.pm -lib/LWP/Protocol/https.pm -lib/LWP/Protocol/loopback.pm -lib/LWP/Protocol/mailto.pm -lib/LWP/Protocol/nntp.pm -lib/LWP/Protocol/nogo.pm -lib/LWP/UserAgent.pm -lib/LWP/media.types -lib/List/Util.pm -lib/MIME/Base64.pm -lib/MIME/QuotedPrint.pm -lib/Math/BigFloat.pm -lib/Math/BigFloat/Trace.pm -lib/Math/BigInt.pm -lib/Math/BigInt/Calc.pm -lib/Math/BigInt/CalcEmu.pm -lib/Math/BigInt/FastCalc.pm -lib/Math/BigInt/Lib.pm -lib/Math/BigInt/Trace.pm -lib/Math/Complex.pm -lib/Math/Trig.pm -lib/Method/Generate/Accessor.pm -lib/Method/Generate/BuildAll.pm -lib/Method/Generate/Constructor.pm -lib/Method/Generate/DemolishAll.pm -lib/Module/Runtime.pm -lib/Moo.pm -lib/Moo/HandleMoose.pm -lib/Moo/HandleMoose/FakeMetaClass.pm -lib/Moo/HandleMoose/_TypeMap.pm -lib/Moo/Object.pm -lib/Moo/Role.pm -lib/Moo/_Utils.pm -lib/Moo/_mro.pm -lib/Moo/_strictures.pm -lib/Moo/sification.pm -lib/Mozilla/CA.pm -lib/Mozilla/CA/cacert.pem -lib/Net/Cmd.pm -lib/Net/Config.pm -lib/Net/Domain.pm -lib/Net/FTP.pm -lib/Net/FTP/A.pm -lib/Net/FTP/E.pm -lib/Net/FTP/I.pm -lib/Net/FTP/L.pm -lib/Net/FTP/dataconn.pm -lib/Net/HTTP.pm -lib/Net/HTTP/Methods.pm -lib/Net/HTTPS.pm -lib/Net/NNTP.pm -lib/Net/Netrc.pm -lib/Net/SSLeay.pm -lib/POSIX.pm -lib/Params/Util.pm -lib/Pod/Escapes.pm -lib/Pod/Simple.pm -lib/Pod/Simple/BlackBox.pm -lib/Pod/Simple/LinkSection.pm -lib/Pod/Simple/TiedOutFH.pm -lib/Pod/Simple/Transcode.pm -lib/Pod/Simple/TranscodeDumb.pm -lib/Pod/Simple/TranscodeSmart.pm -lib/Pod/Text.pm -lib/Pod/Usage.pm -lib/Role/Tiny.pm -lib/Scalar/Util.pm -lib/SelectSaver.pm -lib/Slic3r.pm -lib/Slic3r/Config.pm -lib/Slic3r/ExPolygon.pm -lib/Slic3r/ExtrusionLoop.pm -lib/Slic3r/ExtrusionPath.pm -lib/Slic3r/Flow.pm -lib/Slic3r/GCode/ArcFitting.pm -lib/Slic3r/GCode/MotionPlanner.pm -lib/Slic3r/GCode/PressureRegulator.pm -lib/Slic3r/GCode/Reader.pm -lib/Slic3r/GCode/VibrationLimit.pm -lib/Slic3r/GUI.pm -lib/Slic3r/GUI/2DBed.pm -lib/Slic3r/GUI/3DScene.pm -lib/Slic3r/GUI/AboutDialog.pm -lib/Slic3r/GUI/BedShapeDialog.pm -lib/Slic3r/GUI/BonjourBrowser.pm -lib/Slic3r/GUI/ColorScheme.pm -lib/Slic3r/GUI/ConfigWizard.pm -lib/Slic3r/GUI/Controller.pm -lib/Slic3r/GUI/Controller/ManualControlDialog.pm -lib/Slic3r/GUI/Controller/PrinterPanel.pm -lib/Slic3r/GUI/MainFrame.pm -lib/Slic3r/GUI/Notifier.pm -lib/Slic3r/GUI/OptionsGroup.pm -lib/Slic3r/GUI/OptionsGroup/Field.pm -lib/Slic3r/GUI/Plater.pm -lib/Slic3r/GUI/Plater/2D.pm -lib/Slic3r/GUI/Plater/2DToolpaths.pm -lib/Slic3r/GUI/Plater/3D.pm -lib/Slic3r/GUI/Plater/3DPreview.pm -lib/Slic3r/GUI/Plater/LambdaObjectDialog.pm -lib/Slic3r/GUI/Plater/ObjectCutDialog.pm -lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm -lib/Slic3r/GUI/Plater/ObjectSettingsDialog.pm -lib/Slic3r/GUI/Plater/OverrideSettingsPanel.pm -lib/Slic3r/GUI/Plater/SplineControl.pm -lib/Slic3r/GUI/Preferences.pm -lib/Slic3r/GUI/Preset.pm -lib/Slic3r/GUI/PresetEditor.pm -lib/Slic3r/GUI/PresetEditorDialog.pm -lib/Slic3r/GUI/ProgressStatusBar.pm -lib/Slic3r/GUI/Projector.pm -lib/Slic3r/GUI/ReloadDialog.pm -lib/Slic3r/GUI/SLAPrintOptions.pm -lib/Slic3r/Geometry.pm -lib/Slic3r/Geometry/Clipper.pm -lib/Slic3r/Layer.pm -lib/Slic3r/Line.pm -lib/Slic3r/Model.pm -lib/Slic3r/Point.pm -lib/Slic3r/Polygon.pm -lib/Slic3r/Polyline.pm -lib/Slic3r/Print.pm -lib/Slic3r/Print/GCode.pm -lib/Slic3r/Print/Object.pm -lib/Slic3r/Print/Simple.pm -lib/Slic3r/Print/State.pm -lib/Slic3r/Print/SupportMaterial.pm -lib/Slic3r/SVG.pm -lib/Slic3r/Surface.pm -lib/Slic3r/Test.pm -lib/Slic3r/Test/SectionCut.pm -lib/Socket.pm -lib/Socket6.pm -lib/Storable.pm -lib/Sub/Defer.pm -lib/Sub/Exporter.pm -lib/Sub/Exporter/Progressive.pm -lib/Sub/Install.pm -lib/Sub/Quote.pm -lib/Symbol.pm -lib/Term/Cap.pm -lib/Text/ParseWords.pm -lib/Thread.pm -lib/Thread/Queue.pm -lib/Thread/Semaphore.pm -lib/Tie/Handle.pm -lib/Tie/Hash.pm -lib/Tie/StdHandle.pm -lib/Time/HiRes.pm -lib/Time/Local.pm -lib/Try/Tiny.pm -lib/URI.pm -lib/URI/Escape.pm -lib/URI/Heuristic.pm -lib/URI/IRI.pm -lib/URI/QueryParam.pm -lib/URI/Split.pm -lib/URI/URL.pm -lib/URI/WithBase.pm -lib/URI/_foreign.pm -lib/URI/_generic.pm -lib/URI/_idna.pm -lib/URI/_ldap.pm -lib/URI/_login.pm -lib/URI/_punycode.pm -lib/URI/_query.pm -lib/URI/_segment.pm -lib/URI/_server.pm -lib/URI/_userpass.pm -lib/URI/data.pm -lib/URI/file.pm -lib/URI/file/Base.pm -lib/URI/file/FAT.pm -lib/URI/file/Mac.pm -lib/URI/file/OS2.pm -lib/URI/file/QNX.pm -lib/URI/file/Unix.pm -lib/URI/file/Win32.pm -lib/URI/ftp.pm -lib/URI/gopher.pm -lib/URI/http.pm -lib/URI/https.pm -lib/URI/ldap.pm -lib/URI/ldapi.pm -lib/URI/ldaps.pm -lib/URI/mailto.pm -lib/URI/mms.pm -lib/URI/news.pm -lib/URI/nntp.pm -lib/URI/pop.pm -lib/URI/rlogin.pm -lib/URI/rsync.pm -lib/URI/rtsp.pm -lib/URI/rtspu.pm -lib/URI/sftp.pm -lib/URI/sip.pm -lib/URI/sips.pm -lib/URI/snews.pm -lib/URI/ssh.pm -lib/URI/telnet.pm -lib/URI/tn3270.pm -lib/Unicode/Normalize.pm -lib/Win32.pm -lib/Win32/API.pm -lib/Win32/API/Struct.pm -lib/Win32/API/Type.pm -lib/Win32/Console.pm -lib/Win32/TieRegistry.pm -lib/Win32/WinError.pm -lib/Win32API/File.pm -lib/Win32API/File/cFile.pc -lib/Win32API/Registry.pm -lib/Win32API/Registry/cRegistry.pc -lib/XSLoader.pm -lib/attributes.pm -lib/auto/B/B.xs.dll -lib/auto/Compress/Raw/Bzip2/Bzip2.xs.dll -lib/auto/Compress/Raw/Zlib/Zlib.xs.dll -lib/auto/Cwd/Cwd.xs.dll -lib/auto/Data/Dumper/Dumper.xs.dll -lib/auto/Digest/MD5/MD5.xs.dll -lib/auto/Digest/SHA/SHA.xs.dll -lib/auto/Encode/Byte/Byte.xs.dll -lib/auto/Encode/Encode.xs.dll -lib/auto/Fcntl/Fcntl.xs.dll -lib/auto/File/Glob/Glob.xs.dll -lib/auto/HTML/Parser/Parser.xs.dll -lib/auto/IO/IO.xs.dll -lib/auto/List/Util/Util.xs.dll -lib/auto/MIME/Base64/Base64.xs.dll -lib/auto/Math/BigInt/FastCalc/FastCalc.xs.dll -lib/auto/Net/SSLeay/SSLeay.xs.dll -lib/auto/Net/SSLeay/autosplit.ix -lib/auto/Net/SSLeay/debug_read.al -lib/auto/Net/SSLeay/do_https.al -lib/auto/Net/SSLeay/do_https2.al -lib/auto/Net/SSLeay/do_https3.al -lib/auto/Net/SSLeay/do_https4.al -lib/auto/Net/SSLeay/do_httpx2.al -lib/auto/Net/SSLeay/do_httpx3.al -lib/auto/Net/SSLeay/do_httpx4.al -lib/auto/Net/SSLeay/dump_peer_certificate.al -lib/auto/Net/SSLeay/get_http.al -lib/auto/Net/SSLeay/get_http3.al -lib/auto/Net/SSLeay/get_http4.al -lib/auto/Net/SSLeay/get_https.al -lib/auto/Net/SSLeay/get_https3.al -lib/auto/Net/SSLeay/get_https4.al -lib/auto/Net/SSLeay/get_httpx.al -lib/auto/Net/SSLeay/get_httpx3.al -lib/auto/Net/SSLeay/get_httpx4.al -lib/auto/Net/SSLeay/head_http.al -lib/auto/Net/SSLeay/head_http3.al -lib/auto/Net/SSLeay/head_http4.al -lib/auto/Net/SSLeay/head_https.al -lib/auto/Net/SSLeay/head_https3.al -lib/auto/Net/SSLeay/head_https4.al -lib/auto/Net/SSLeay/head_httpx.al -lib/auto/Net/SSLeay/head_httpx3.al -lib/auto/Net/SSLeay/head_httpx4.al -lib/auto/Net/SSLeay/http_cat.al -lib/auto/Net/SSLeay/https_cat.al -lib/auto/Net/SSLeay/httpx_cat.al -lib/auto/Net/SSLeay/initialize.al -lib/auto/Net/SSLeay/make_form.al -lib/auto/Net/SSLeay/make_headers.al -lib/auto/Net/SSLeay/new_x_ctx.al -lib/auto/Net/SSLeay/open_proxy_tcp_connection.al -lib/auto/Net/SSLeay/open_tcp_connection.al -lib/auto/Net/SSLeay/post_http.al -lib/auto/Net/SSLeay/post_http3.al -lib/auto/Net/SSLeay/post_http4.al -lib/auto/Net/SSLeay/post_https.al -lib/auto/Net/SSLeay/post_https3.al -lib/auto/Net/SSLeay/post_https4.al -lib/auto/Net/SSLeay/post_httpx.al -lib/auto/Net/SSLeay/post_httpx3.al -lib/auto/Net/SSLeay/post_httpx4.al -lib/auto/Net/SSLeay/put_http.al -lib/auto/Net/SSLeay/put_http3.al -lib/auto/Net/SSLeay/put_http4.al -lib/auto/Net/SSLeay/put_https.al -lib/auto/Net/SSLeay/put_https3.al -lib/auto/Net/SSLeay/put_https4.al -lib/auto/Net/SSLeay/put_httpx.al -lib/auto/Net/SSLeay/put_httpx3.al -lib/auto/Net/SSLeay/put_httpx4.al -lib/auto/Net/SSLeay/randomize.al -lib/auto/Net/SSLeay/set_cert_and_key.al -lib/auto/Net/SSLeay/set_proxy.al -lib/auto/Net/SSLeay/set_server_cert_and_key.al -lib/auto/Net/SSLeay/ssl_read_CRLF.al -lib/auto/Net/SSLeay/ssl_read_all.al -lib/auto/Net/SSLeay/ssl_read_until.al -lib/auto/Net/SSLeay/ssl_write_CRLF.al -lib/auto/Net/SSLeay/ssl_write_all.al -lib/auto/Net/SSLeay/sslcat.al -lib/auto/Net/SSLeay/tcp_read_CRLF.al -lib/auto/Net/SSLeay/tcp_read_all.al -lib/auto/Net/SSLeay/tcp_read_until.al -lib/auto/Net/SSLeay/tcp_write_CRLF.al -lib/auto/Net/SSLeay/tcp_write_all.al -lib/auto/Net/SSLeay/tcpcat.al -lib/auto/Net/SSLeay/tcpxcat.al -lib/auto/Net/SSLeay/want_X509_lookup.al -lib/auto/Net/SSLeay/want_nothing.al -lib/auto/Net/SSLeay/want_read.al -lib/auto/Net/SSLeay/want_write.al -lib/auto/POSIX/POSIX.xs.dll -lib/auto/Params/Util/Util.xs.dll -lib/auto/Socket/Socket.xs.dll -lib/auto/Socket6/Socket6.xs.dll -lib/auto/Storable/Storable.xs.dll -lib/auto/Time/HiRes/HiRes.xs.dll -lib/auto/Unicode/Normalize/Normalize.xs.dll -lib/auto/Win32/API/API.xs.dll -lib/auto/Win32/Console/Console.xs.dll -lib/auto/Win32/Win32.xs.dll -lib/auto/Win32/WinError/WinError.xs.dll -lib/auto/Win32API/File/File.xs.dll -lib/auto/Win32API/Registry/Registry.xs.dll -lib/auto/attributes/attributes.xs.dll -lib/auto/mro/mro.xs.dll -lib/auto/re/re.xs.dll -lib/auto/threads/shared/shared.xs.dll -lib/auto/threads/threads.xs.dll -lib/base.pm -lib/bytes.pm -lib/bytes_heavy.pl -lib/constant.pm -lib/feature.pm -lib/integer.pm -lib/lib.pm -lib/local/lib.pm -lib/locale.pm -lib/mro.pm -lib/overload.pm -lib/overload/numbers.pm -lib/overloading.pm -lib/parent.pm -lib/re.pm -lib/strict.pm -lib/threads.pm -lib/threads/shared.pm -lib/unicore/Blocks.txt -lib/unicore/CombiningClass.pl -lib/unicore/Decomposition.pl -lib/unicore/Heavy.pl -lib/unicore/Name.pl -lib/unicore/Name.pm -lib/unicore/NamedSequences.txt -lib/unicore/SpecialCasing.txt -lib/unicore/To/Age.pl -lib/unicore/To/Bc.pl -lib/unicore/To/Bmg.pl -lib/unicore/To/Bpb.pl -lib/unicore/To/Bpt.pl -lib/unicore/To/Cf.pl -lib/unicore/To/Digit.pl -lib/unicore/To/Ea.pl -lib/unicore/To/Fold.pl -lib/unicore/To/GCB.pl -lib/unicore/To/Gc.pl -lib/unicore/To/Hst.pl -lib/unicore/To/InPC.pl -lib/unicore/To/InSC.pl -lib/unicore/To/Isc.pl -lib/unicore/To/Jg.pl -lib/unicore/To/Jt.pl -lib/unicore/To/Lb.pl -lib/unicore/To/Lc.pl -lib/unicore/To/Lower.pl -lib/unicore/To/NFCQC.pl -lib/unicore/To/NFDQC.pl -lib/unicore/To/NFKCCF.pl -lib/unicore/To/NFKCQC.pl -lib/unicore/To/NFKDQC.pl -lib/unicore/To/Na1.pl -lib/unicore/To/NameAlia.pl -lib/unicore/To/Nt.pl -lib/unicore/To/Nv.pl -lib/unicore/To/PerlDeci.pl -lib/unicore/To/SB.pl -lib/unicore/To/Sc.pl -lib/unicore/To/Scx.pl -lib/unicore/To/Tc.pl -lib/unicore/To/Title.pl -lib/unicore/To/Uc.pl -lib/unicore/To/Upper.pl -lib/unicore/To/WB.pl -lib/unicore/To/_PerlLB.pl -lib/unicore/To/_PerlWB.pl -lib/unicore/UCD.pl -lib/unicore/lib/Age/NA.pl -lib/unicore/lib/Age/V11.pl -lib/unicore/lib/Age/V20.pl -lib/unicore/lib/Age/V30.pl -lib/unicore/lib/Age/V31.pl -lib/unicore/lib/Age/V32.pl -lib/unicore/lib/Age/V40.pl -lib/unicore/lib/Age/V41.pl -lib/unicore/lib/Age/V50.pl -lib/unicore/lib/Age/V51.pl -lib/unicore/lib/Age/V52.pl -lib/unicore/lib/Age/V60.pl -lib/unicore/lib/Age/V61.pl -lib/unicore/lib/Age/V70.pl -lib/unicore/lib/Age/V80.pl -lib/unicore/lib/Alpha/Y.pl -lib/unicore/lib/Bc/AL.pl -lib/unicore/lib/Bc/AN.pl -lib/unicore/lib/Bc/B.pl -lib/unicore/lib/Bc/BN.pl -lib/unicore/lib/Bc/CS.pl -lib/unicore/lib/Bc/EN.pl -lib/unicore/lib/Bc/ES.pl -lib/unicore/lib/Bc/ET.pl -lib/unicore/lib/Bc/L.pl -lib/unicore/lib/Bc/NSM.pl -lib/unicore/lib/Bc/ON.pl -lib/unicore/lib/Bc/R.pl -lib/unicore/lib/Bc/WS.pl -lib/unicore/lib/BidiC/Y.pl -lib/unicore/lib/BidiM/Y.pl -lib/unicore/lib/Blk/NB.pl -lib/unicore/lib/Bpt/C.pl -lib/unicore/lib/Bpt/N.pl -lib/unicore/lib/Bpt/O.pl -lib/unicore/lib/CE/Y.pl -lib/unicore/lib/CI/Y.pl -lib/unicore/lib/CWCF/Y.pl -lib/unicore/lib/CWCM/Y.pl -lib/unicore/lib/CWKCF/Y.pl -lib/unicore/lib/CWL/Y.pl -lib/unicore/lib/CWT/Y.pl -lib/unicore/lib/CWU/Y.pl -lib/unicore/lib/Cased/Y.pl -lib/unicore/lib/Ccc/A.pl -lib/unicore/lib/Ccc/AR.pl -lib/unicore/lib/Ccc/ATAR.pl -lib/unicore/lib/Ccc/B.pl -lib/unicore/lib/Ccc/BR.pl -lib/unicore/lib/Ccc/DB.pl -lib/unicore/lib/Ccc/NK.pl -lib/unicore/lib/Ccc/NR.pl -lib/unicore/lib/Ccc/OV.pl -lib/unicore/lib/Ccc/VR.pl -lib/unicore/lib/CompEx/Y.pl -lib/unicore/lib/DI/Y.pl -lib/unicore/lib/Dash/Y.pl -lib/unicore/lib/Dep/Y.pl -lib/unicore/lib/Dia/Y.pl -lib/unicore/lib/Dt/Com.pl -lib/unicore/lib/Dt/Enc.pl -lib/unicore/lib/Dt/Fin.pl -lib/unicore/lib/Dt/Font.pl -lib/unicore/lib/Dt/Init.pl -lib/unicore/lib/Dt/Iso.pl -lib/unicore/lib/Dt/Med.pl -lib/unicore/lib/Dt/Nar.pl -lib/unicore/lib/Dt/Nb.pl -lib/unicore/lib/Dt/NonCanon.pl -lib/unicore/lib/Dt/Sqr.pl -lib/unicore/lib/Dt/Sub.pl -lib/unicore/lib/Dt/Sup.pl -lib/unicore/lib/Dt/Vert.pl -lib/unicore/lib/Ea/A.pl -lib/unicore/lib/Ea/H.pl -lib/unicore/lib/Ea/N.pl -lib/unicore/lib/Ea/Na.pl -lib/unicore/lib/Ea/W.pl -lib/unicore/lib/Ext/Y.pl -lib/unicore/lib/GCB/CN.pl -lib/unicore/lib/GCB/EX.pl -lib/unicore/lib/GCB/LV.pl -lib/unicore/lib/GCB/LVT.pl -lib/unicore/lib/GCB/SM.pl -lib/unicore/lib/GCB/XX.pl -lib/unicore/lib/Gc/C.pl -lib/unicore/lib/Gc/Cf.pl -lib/unicore/lib/Gc/Cn.pl -lib/unicore/lib/Gc/L.pl -lib/unicore/lib/Gc/LC.pl -lib/unicore/lib/Gc/Ll.pl -lib/unicore/lib/Gc/Lm.pl -lib/unicore/lib/Gc/Lo.pl -lib/unicore/lib/Gc/Lu.pl -lib/unicore/lib/Gc/M.pl -lib/unicore/lib/Gc/Mc.pl -lib/unicore/lib/Gc/Me.pl -lib/unicore/lib/Gc/Mn.pl -lib/unicore/lib/Gc/N.pl -lib/unicore/lib/Gc/Nd.pl -lib/unicore/lib/Gc/Nl.pl -lib/unicore/lib/Gc/No.pl -lib/unicore/lib/Gc/P.pl -lib/unicore/lib/Gc/Pd.pl -lib/unicore/lib/Gc/Pe.pl -lib/unicore/lib/Gc/Pf.pl -lib/unicore/lib/Gc/Pi.pl -lib/unicore/lib/Gc/Po.pl -lib/unicore/lib/Gc/Ps.pl -lib/unicore/lib/Gc/S.pl -lib/unicore/lib/Gc/Sc.pl -lib/unicore/lib/Gc/Sk.pl -lib/unicore/lib/Gc/Sm.pl -lib/unicore/lib/Gc/So.pl -lib/unicore/lib/Gc/Z.pl -lib/unicore/lib/Gc/Zs.pl -lib/unicore/lib/GrBase/Y.pl -lib/unicore/lib/Hex/Y.pl -lib/unicore/lib/Hst/NA.pl -lib/unicore/lib/Hyphen/T.pl -lib/unicore/lib/IDC/Y.pl -lib/unicore/lib/IDS/Y.pl -lib/unicore/lib/Ideo/Y.pl -lib/unicore/lib/In/2_0.pl -lib/unicore/lib/In/2_1.pl -lib/unicore/lib/In/3_0.pl -lib/unicore/lib/In/3_1.pl -lib/unicore/lib/In/3_2.pl -lib/unicore/lib/In/4_0.pl -lib/unicore/lib/In/4_1.pl -lib/unicore/lib/In/5_0.pl -lib/unicore/lib/In/5_1.pl -lib/unicore/lib/In/5_2.pl -lib/unicore/lib/In/6_0.pl -lib/unicore/lib/In/6_1.pl -lib/unicore/lib/In/6_2.pl -lib/unicore/lib/In/6_3.pl -lib/unicore/lib/In/7_0.pl -lib/unicore/lib/In/8_0.pl -lib/unicore/lib/InPC/Bottom.pl -lib/unicore/lib/InPC/Left.pl -lib/unicore/lib/InPC/LeftAndR.pl -lib/unicore/lib/InPC/NA.pl -lib/unicore/lib/InPC/Overstru.pl -lib/unicore/lib/InPC/Right.pl -lib/unicore/lib/InPC/Top.pl -lib/unicore/lib/InPC/TopAndBo.pl -lib/unicore/lib/InPC/TopAndL2.pl -lib/unicore/lib/InPC/TopAndLe.pl -lib/unicore/lib/InPC/TopAndRi.pl -lib/unicore/lib/InPC/VisualOr.pl -lib/unicore/lib/InSC/Avagraha.pl -lib/unicore/lib/InSC/Bindu.pl -lib/unicore/lib/InSC/Cantilla.pl -lib/unicore/lib/InSC/Consona2.pl -lib/unicore/lib/InSC/Consona3.pl -lib/unicore/lib/InSC/Consona4.pl -lib/unicore/lib/InSC/Consona5.pl -lib/unicore/lib/InSC/Consona6.pl -lib/unicore/lib/InSC/Consonan.pl -lib/unicore/lib/InSC/Invisibl.pl -lib/unicore/lib/InSC/Nukta.pl -lib/unicore/lib/InSC/Number.pl -lib/unicore/lib/InSC/Other.pl -lib/unicore/lib/InSC/PureKill.pl -lib/unicore/lib/InSC/Syllable.pl -lib/unicore/lib/InSC/ToneMark.pl -lib/unicore/lib/InSC/Virama.pl -lib/unicore/lib/InSC/Visarga.pl -lib/unicore/lib/InSC/Vowel.pl -lib/unicore/lib/InSC/VowelDep.pl -lib/unicore/lib/InSC/VowelInd.pl -lib/unicore/lib/Jg/Ain.pl -lib/unicore/lib/Jg/Alef.pl -lib/unicore/lib/Jg/Beh.pl -lib/unicore/lib/Jg/Dal.pl -lib/unicore/lib/Jg/FarsiYeh.pl -lib/unicore/lib/Jg/Feh.pl -lib/unicore/lib/Jg/Gaf.pl -lib/unicore/lib/Jg/Hah.pl -lib/unicore/lib/Jg/Kaf.pl -lib/unicore/lib/Jg/Lam.pl -lib/unicore/lib/Jg/NoJoinin.pl -lib/unicore/lib/Jg/Qaf.pl -lib/unicore/lib/Jg/Reh.pl -lib/unicore/lib/Jg/Sad.pl -lib/unicore/lib/Jg/Seen.pl -lib/unicore/lib/Jg/Waw.pl -lib/unicore/lib/Jg/Yeh.pl -lib/unicore/lib/Jt/C.pl -lib/unicore/lib/Jt/D.pl -lib/unicore/lib/Jt/R.pl -lib/unicore/lib/Jt/T.pl -lib/unicore/lib/Jt/U.pl -lib/unicore/lib/Lb/AI.pl -lib/unicore/lib/Lb/AL.pl -lib/unicore/lib/Lb/BA.pl -lib/unicore/lib/Lb/BB.pl -lib/unicore/lib/Lb/CJ.pl -lib/unicore/lib/Lb/CL.pl -lib/unicore/lib/Lb/CM.pl -lib/unicore/lib/Lb/EX.pl -lib/unicore/lib/Lb/GL.pl -lib/unicore/lib/Lb/ID.pl -lib/unicore/lib/Lb/IN.pl -lib/unicore/lib/Lb/IS.pl -lib/unicore/lib/Lb/NS.pl -lib/unicore/lib/Lb/OP.pl -lib/unicore/lib/Lb/PO.pl -lib/unicore/lib/Lb/PR.pl -lib/unicore/lib/Lb/QU.pl -lib/unicore/lib/Lb/SA.pl -lib/unicore/lib/Lb/XX.pl -lib/unicore/lib/Lower/Y.pl -lib/unicore/lib/Math/Y.pl -lib/unicore/lib/NFCQC/M.pl -lib/unicore/lib/NFCQC/Y.pl -lib/unicore/lib/NFDQC/N.pl -lib/unicore/lib/NFDQC/Y.pl -lib/unicore/lib/NFKCQC/N.pl -lib/unicore/lib/NFKCQC/Y.pl -lib/unicore/lib/NFKDQC/N.pl -lib/unicore/lib/NFKDQC/Y.pl -lib/unicore/lib/Nt/Di.pl -lib/unicore/lib/Nt/None.pl -lib/unicore/lib/Nt/Nu.pl -lib/unicore/lib/Nv/0.pl -lib/unicore/lib/Nv/1.pl -lib/unicore/lib/Nv/10.pl -lib/unicore/lib/Nv/100.pl -lib/unicore/lib/Nv/1000.pl -lib/unicore/lib/Nv/10000.pl -lib/unicore/lib/Nv/11.pl -lib/unicore/lib/Nv/12.pl -lib/unicore/lib/Nv/13.pl -lib/unicore/lib/Nv/14.pl -lib/unicore/lib/Nv/15.pl -lib/unicore/lib/Nv/16.pl -lib/unicore/lib/Nv/17.pl -lib/unicore/lib/Nv/18.pl -lib/unicore/lib/Nv/19.pl -lib/unicore/lib/Nv/1_2.pl -lib/unicore/lib/Nv/1_3.pl -lib/unicore/lib/Nv/1_4.pl -lib/unicore/lib/Nv/1_8.pl -lib/unicore/lib/Nv/2.pl -lib/unicore/lib/Nv/20.pl -lib/unicore/lib/Nv/200.pl -lib/unicore/lib/Nv/2_3.pl -lib/unicore/lib/Nv/3.pl -lib/unicore/lib/Nv/30.pl -lib/unicore/lib/Nv/300.pl -lib/unicore/lib/Nv/3_4.pl -lib/unicore/lib/Nv/4.pl -lib/unicore/lib/Nv/40.pl -lib/unicore/lib/Nv/400.pl -lib/unicore/lib/Nv/5.pl -lib/unicore/lib/Nv/50.pl -lib/unicore/lib/Nv/500.pl -lib/unicore/lib/Nv/5000.pl -lib/unicore/lib/Nv/50000.pl -lib/unicore/lib/Nv/6.pl -lib/unicore/lib/Nv/60.pl -lib/unicore/lib/Nv/600.pl -lib/unicore/lib/Nv/7.pl -lib/unicore/lib/Nv/70.pl -lib/unicore/lib/Nv/700.pl -lib/unicore/lib/Nv/8.pl -lib/unicore/lib/Nv/80.pl -lib/unicore/lib/Nv/800.pl -lib/unicore/lib/Nv/9.pl -lib/unicore/lib/Nv/90.pl -lib/unicore/lib/Nv/900.pl -lib/unicore/lib/PatSyn/Y.pl -lib/unicore/lib/Perl/Alnum.pl -lib/unicore/lib/Perl/Assigned.pl -lib/unicore/lib/Perl/Blank.pl -lib/unicore/lib/Perl/Graph.pl -lib/unicore/lib/Perl/PerlWord.pl -lib/unicore/lib/Perl/PosixPun.pl -lib/unicore/lib/Perl/Print.pl -lib/unicore/lib/Perl/SpacePer.pl -lib/unicore/lib/Perl/Title.pl -lib/unicore/lib/Perl/Word.pl -lib/unicore/lib/Perl/XPosixPu.pl -lib/unicore/lib/Perl/_PerlAny.pl -lib/unicore/lib/Perl/_PerlCh2.pl -lib/unicore/lib/Perl/_PerlCha.pl -lib/unicore/lib/Perl/_PerlFol.pl -lib/unicore/lib/Perl/_PerlIDC.pl -lib/unicore/lib/Perl/_PerlIDS.pl -lib/unicore/lib/Perl/_PerlNch.pl -lib/unicore/lib/Perl/_PerlPat.pl -lib/unicore/lib/Perl/_PerlPr2.pl -lib/unicore/lib/Perl/_PerlPro.pl -lib/unicore/lib/Perl/_PerlQuo.pl -lib/unicore/lib/QMark/Y.pl -lib/unicore/lib/SB/AT.pl -lib/unicore/lib/SB/CL.pl -lib/unicore/lib/SB/EX.pl -lib/unicore/lib/SB/FO.pl -lib/unicore/lib/SB/LE.pl -lib/unicore/lib/SB/LO.pl -lib/unicore/lib/SB/NU.pl -lib/unicore/lib/SB/SC.pl -lib/unicore/lib/SB/ST.pl -lib/unicore/lib/SB/Sp.pl -lib/unicore/lib/SB/UP.pl -lib/unicore/lib/SB/XX.pl -lib/unicore/lib/SD/Y.pl -lib/unicore/lib/STerm/Y.pl -lib/unicore/lib/Sc/Arab.pl -lib/unicore/lib/Sc/Armn.pl -lib/unicore/lib/Sc/Beng.pl -lib/unicore/lib/Sc/Cham.pl -lib/unicore/lib/Sc/Cprt.pl -lib/unicore/lib/Sc/Cyrl.pl -lib/unicore/lib/Sc/Deva.pl -lib/unicore/lib/Sc/Dupl.pl -lib/unicore/lib/Sc/Ethi.pl -lib/unicore/lib/Sc/Geor.pl -lib/unicore/lib/Sc/Gran.pl -lib/unicore/lib/Sc/Grek.pl -lib/unicore/lib/Sc/Gujr.pl -lib/unicore/lib/Sc/Guru.pl -lib/unicore/lib/Sc/Han.pl -lib/unicore/lib/Sc/Hang.pl -lib/unicore/lib/Sc/Hebr.pl -lib/unicore/lib/Sc/Hira.pl -lib/unicore/lib/Sc/Hmng.pl -lib/unicore/lib/Sc/Kana.pl -lib/unicore/lib/Sc/Khar.pl -lib/unicore/lib/Sc/Khmr.pl -lib/unicore/lib/Sc/Knda.pl -lib/unicore/lib/Sc/Lana.pl -lib/unicore/lib/Sc/Lao.pl -lib/unicore/lib/Sc/Latn.pl -lib/unicore/lib/Sc/Limb.pl -lib/unicore/lib/Sc/Linb.pl -lib/unicore/lib/Sc/Mlym.pl -lib/unicore/lib/Sc/Mong.pl -lib/unicore/lib/Sc/Mult.pl -lib/unicore/lib/Sc/Orya.pl -lib/unicore/lib/Sc/Sinh.pl -lib/unicore/lib/Sc/Talu.pl -lib/unicore/lib/Sc/Taml.pl -lib/unicore/lib/Sc/Telu.pl -lib/unicore/lib/Sc/Tibt.pl -lib/unicore/lib/Sc/Xsux.pl -lib/unicore/lib/Sc/Zinh.pl -lib/unicore/lib/Sc/Zyyy.pl -lib/unicore/lib/Sc/Zzzz.pl -lib/unicore/lib/Scx/Arab.pl -lib/unicore/lib/Scx/Armn.pl -lib/unicore/lib/Scx/Beng.pl -lib/unicore/lib/Scx/Bopo.pl -lib/unicore/lib/Scx/Cakm.pl -lib/unicore/lib/Scx/Copt.pl -lib/unicore/lib/Scx/Cprt.pl -lib/unicore/lib/Scx/Cyrl.pl -lib/unicore/lib/Scx/Deva.pl -lib/unicore/lib/Scx/Dupl.pl -lib/unicore/lib/Scx/Geor.pl -lib/unicore/lib/Scx/Glag.pl -lib/unicore/lib/Scx/Gran.pl -lib/unicore/lib/Scx/Grek.pl -lib/unicore/lib/Scx/Gujr.pl -lib/unicore/lib/Scx/Guru.pl -lib/unicore/lib/Scx/Han.pl -lib/unicore/lib/Scx/Hang.pl -lib/unicore/lib/Scx/Hira.pl -lib/unicore/lib/Scx/Kana.pl -lib/unicore/lib/Scx/Knda.pl -lib/unicore/lib/Scx/Latn.pl -lib/unicore/lib/Scx/Limb.pl -lib/unicore/lib/Scx/Linb.pl -lib/unicore/lib/Scx/Mlym.pl -lib/unicore/lib/Scx/Mong.pl -lib/unicore/lib/Scx/Mult.pl -lib/unicore/lib/Scx/Mymr.pl -lib/unicore/lib/Scx/Orya.pl -lib/unicore/lib/Scx/Phlp.pl -lib/unicore/lib/Scx/Shrd.pl -lib/unicore/lib/Scx/Sind.pl -lib/unicore/lib/Scx/Sinh.pl -lib/unicore/lib/Scx/Syrc.pl -lib/unicore/lib/Scx/Tagb.pl -lib/unicore/lib/Scx/Takr.pl -lib/unicore/lib/Scx/Taml.pl -lib/unicore/lib/Scx/Telu.pl -lib/unicore/lib/Scx/Thaa.pl -lib/unicore/lib/Scx/Tirh.pl -lib/unicore/lib/Scx/Yi.pl -lib/unicore/lib/Scx/Zinh.pl -lib/unicore/lib/Scx/Zyyy.pl -lib/unicore/lib/Term/Y.pl -lib/unicore/lib/UIdeo/Y.pl -lib/unicore/lib/Upper/Y.pl -lib/unicore/lib/WB/EX.pl -lib/unicore/lib/WB/FO.pl -lib/unicore/lib/WB/HL.pl -lib/unicore/lib/WB/KA.pl -lib/unicore/lib/WB/LE.pl -lib/unicore/lib/WB/MB.pl -lib/unicore/lib/WB/ML.pl -lib/unicore/lib/WB/MN.pl -lib/unicore/lib/WB/NU.pl -lib/unicore/lib/WB/XX.pl -lib/unicore/lib/XIDC/Y.pl -lib/unicore/lib/XIDS/Y.pl -lib/unicore/version -lib/utf8.pm -lib/utf8_heavy.pl -lib/vars.pm -lib/warnings.pm -lib/warnings/register.pm -libgcc_s_seh-1.dll -libglut-0__.dll -libstdc++-6.dll -libwinpthread-1.dll -local-lib/bin/cpanm -local-lib/bin/cpanm.bat -local-lib/bin/enc2xs -local-lib/bin/enc2xs.bat -local-lib/bin/encguess -local-lib/bin/encguess.bat -local-lib/bin/instmodsh -local-lib/bin/instmodsh.bat -local-lib/bin/lwp-download -local-lib/bin/lwp-download.bat -local-lib/bin/lwp-dump -local-lib/bin/lwp-dump.bat -local-lib/bin/lwp-mirror -local-lib/bin/lwp-mirror.bat -local-lib/bin/lwp-request -local-lib/bin/lwp-request.bat -local-lib/bin/piconv -local-lib/bin/piconv.bat -local-lib/bin/prove -local-lib/bin/prove.bat -local-lib/bin/scandeps.bat -local-lib/bin/scandeps.pl -local-lib/bin/use-devel-checklib -local-lib/bin/use-devel-checklib.bat -local-lib/bin/wxperl_overload -local-lib/bin/wxperl_overload.bat -local-lib/bin/xspp -local-lib/bin/xspp.bat -local-lib/bin/xsubpp -local-lib/bin/xsubpp.bat -local-lib/lib/perl5/App/Prove.pm -local-lib/lib/perl5/App/Prove/State.pm -local-lib/lib/perl5/App/Prove/State/Result.pm -local-lib/lib/perl5/App/Prove/State/Result/Test.pm -local-lib/lib/perl5/App/cpanminus.pm -local-lib/lib/perl5/App/cpanminus/fatscript.pm -local-lib/lib/perl5/Crypt/CBC.pm -local-lib/lib/perl5/Devel/CheckLib.pm -local-lib/lib/perl5/Digest/HMAC.pm -local-lib/lib/perl5/Digest/HMAC_MD5.pm -local-lib/lib/perl5/Digest/HMAC_SHA1.pm -local-lib/lib/perl5/ExtUtils/Command.pm -local-lib/lib/perl5/ExtUtils/Command/MM.pm -local-lib/lib/perl5/ExtUtils/CppGuess.pm -local-lib/lib/perl5/ExtUtils/Install.pm -local-lib/lib/perl5/ExtUtils/Installed.pm -local-lib/lib/perl5/ExtUtils/Liblist.pm -local-lib/lib/perl5/ExtUtils/Liblist/Kid.pm -local-lib/lib/perl5/ExtUtils/MM.pm -local-lib/lib/perl5/ExtUtils/MM_AIX.pm -local-lib/lib/perl5/ExtUtils/MM_Any.pm -local-lib/lib/perl5/ExtUtils/MM_BeOS.pm -local-lib/lib/perl5/ExtUtils/MM_Cygwin.pm -local-lib/lib/perl5/ExtUtils/MM_DOS.pm -local-lib/lib/perl5/ExtUtils/MM_Darwin.pm -local-lib/lib/perl5/ExtUtils/MM_MacOS.pm -local-lib/lib/perl5/ExtUtils/MM_NW5.pm -local-lib/lib/perl5/ExtUtils/MM_OS2.pm -local-lib/lib/perl5/ExtUtils/MM_QNX.pm -local-lib/lib/perl5/ExtUtils/MM_UWIN.pm -local-lib/lib/perl5/ExtUtils/MM_Unix.pm -local-lib/lib/perl5/ExtUtils/MM_VMS.pm -local-lib/lib/perl5/ExtUtils/MM_VOS.pm -local-lib/lib/perl5/ExtUtils/MM_Win32.pm -local-lib/lib/perl5/ExtUtils/MM_Win95.pm -local-lib/lib/perl5/ExtUtils/MY.pm -local-lib/lib/perl5/ExtUtils/MakeMaker.pm -local-lib/lib/perl5/ExtUtils/MakeMaker/Config.pm -local-lib/lib/perl5/ExtUtils/MakeMaker/FAQ.pod -local-lib/lib/perl5/ExtUtils/MakeMaker/Locale.pm -local-lib/lib/perl5/ExtUtils/MakeMaker/Tutorial.pod -local-lib/lib/perl5/ExtUtils/MakeMaker/version.pm -local-lib/lib/perl5/ExtUtils/MakeMaker/version/regex.pm -local-lib/lib/perl5/ExtUtils/MakeMaker/version/vpp.pm -local-lib/lib/perl5/ExtUtils/Mkbootstrap.pm -local-lib/lib/perl5/ExtUtils/Mksymlists.pm -local-lib/lib/perl5/ExtUtils/Packlist.pm -local-lib/lib/perl5/ExtUtils/ParseXS.pm -local-lib/lib/perl5/ExtUtils/ParseXS.pod -local-lib/lib/perl5/ExtUtils/ParseXS/Constants.pm -local-lib/lib/perl5/ExtUtils/ParseXS/CountLines.pm -local-lib/lib/perl5/ExtUtils/ParseXS/Eval.pm -local-lib/lib/perl5/ExtUtils/ParseXS/Utilities.pm -local-lib/lib/perl5/ExtUtils/Typemap/Basic.pm -local-lib/lib/perl5/ExtUtils/Typemap/Default.pm -local-lib/lib/perl5/ExtUtils/Typemap/ObjectMap.pm -local-lib/lib/perl5/ExtUtils/Typemap/STL.pm -local-lib/lib/perl5/ExtUtils/Typemap/STL/String.pm -local-lib/lib/perl5/ExtUtils/Typemap/STL/Vector.pm -local-lib/lib/perl5/ExtUtils/Typemaps.pm -local-lib/lib/perl5/ExtUtils/Typemaps/Basic.pm -local-lib/lib/perl5/ExtUtils/Typemaps/Cmd.pm -local-lib/lib/perl5/ExtUtils/Typemaps/Default.pm -local-lib/lib/perl5/ExtUtils/Typemaps/InputMap.pm -local-lib/lib/perl5/ExtUtils/Typemaps/ObjectMap.pm -local-lib/lib/perl5/ExtUtils/Typemaps/OutputMap.pm -local-lib/lib/perl5/ExtUtils/Typemaps/STL.pm -local-lib/lib/perl5/ExtUtils/Typemaps/STL/List.pm -local-lib/lib/perl5/ExtUtils/Typemaps/STL/String.pm -local-lib/lib/perl5/ExtUtils/Typemaps/STL/Vector.pm -local-lib/lib/perl5/ExtUtils/Typemaps/Type.pm -local-lib/lib/perl5/ExtUtils/XSpp.pm -local-lib/lib/perl5/ExtUtils/XSpp.pod -local-lib/lib/perl5/ExtUtils/XSpp/Cmd.pm -local-lib/lib/perl5/ExtUtils/XSpp/Driver.pm -local-lib/lib/perl5/ExtUtils/XSpp/Exception.pm -local-lib/lib/perl5/ExtUtils/XSpp/Exception/code.pm -local-lib/lib/perl5/ExtUtils/XSpp/Exception/object.pm -local-lib/lib/perl5/ExtUtils/XSpp/Exception/perlcode.pm -local-lib/lib/perl5/ExtUtils/XSpp/Exception/simple.pm -local-lib/lib/perl5/ExtUtils/XSpp/Exception/stdmessage.pm -local-lib/lib/perl5/ExtUtils/XSpp/Exception/unknown.pm -local-lib/lib/perl5/ExtUtils/XSpp/Grammar.pm -local-lib/lib/perl5/ExtUtils/XSpp/Lexer.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/Access.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/Argument.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/Class.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/Comment.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/Constructor.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/Destructor.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/Enum.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/EnumValue.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/File.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/Function.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/Member.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/Method.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/Module.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/Package.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/PercAny.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/Preprocessor.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/Raw.pm -local-lib/lib/perl5/ExtUtils/XSpp/Node/Type.pm -local-lib/lib/perl5/ExtUtils/XSpp/Parser.pm -local-lib/lib/perl5/ExtUtils/XSpp/Plugin.pod -local-lib/lib/perl5/ExtUtils/XSpp/Plugin/feature/default_xs_typemap.pm -local-lib/lib/perl5/ExtUtils/XSpp/Typemap.pm -local-lib/lib/perl5/ExtUtils/XSpp/Typemap/parsed.pm -local-lib/lib/perl5/ExtUtils/XSpp/Typemap/reference.pm -local-lib/lib/perl5/ExtUtils/XSpp/Typemap/simple.pm -local-lib/lib/perl5/ExtUtils/XSpp/Typemap/wrapper.pm -local-lib/lib/perl5/ExtUtils/testlib.pm -local-lib/lib/perl5/ExtUtils/xsubpp -local-lib/lib/perl5/Getopt/ArgvFile.pm -local-lib/lib/perl5/Getopt/Long.pm -local-lib/lib/perl5/Growl/GNTP.pm -local-lib/lib/perl5/IO/AtomicFile.pm -local-lib/lib/perl5/IO/CaptureOutput.pm -local-lib/lib/perl5/IO/InnerFile.pm -local-lib/lib/perl5/IO/Lines.pm -local-lib/lib/perl5/IO/Scalar.pm -local-lib/lib/perl5/IO/ScalarArray.pm -local-lib/lib/perl5/IO/Stringy.pm -local-lib/lib/perl5/IO/Wrap.pm -local-lib/lib/perl5/IO/WrapTie.pm -local-lib/lib/perl5/LWP.pm -local-lib/lib/perl5/LWP/Authen/Basic.pm -local-lib/lib/perl5/LWP/Authen/Digest.pm -local-lib/lib/perl5/LWP/Authen/Ntlm.pm -local-lib/lib/perl5/LWP/ConnCache.pm -local-lib/lib/perl5/LWP/Debug.pm -local-lib/lib/perl5/LWP/Debug/TraceHTTP.pm -local-lib/lib/perl5/LWP/DebugFile.pm -local-lib/lib/perl5/LWP/MemberMixin.pm -local-lib/lib/perl5/LWP/Protocol.pm -local-lib/lib/perl5/LWP/Protocol/cpan.pm -local-lib/lib/perl5/LWP/Protocol/data.pm -local-lib/lib/perl5/LWP/Protocol/file.pm -local-lib/lib/perl5/LWP/Protocol/ftp.pm -local-lib/lib/perl5/LWP/Protocol/gopher.pm -local-lib/lib/perl5/LWP/Protocol/http.pm -local-lib/lib/perl5/LWP/Protocol/loopback.pm -local-lib/lib/perl5/LWP/Protocol/mailto.pm -local-lib/lib/perl5/LWP/Protocol/nntp.pm -local-lib/lib/perl5/LWP/Protocol/nogo.pm -local-lib/lib/perl5/LWP/RobotUA.pm -local-lib/lib/perl5/LWP/Simple.pm -local-lib/lib/perl5/LWP/UserAgent.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7043/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7043/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7044/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7044/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Crypt-CBC-2.33/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Crypt-CBC-2.33/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Data-UUID-1.221/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Data-UUID-1.221/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.09/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.09/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.10/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.10/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.11/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.11/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Digest-HMAC-1.03/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Digest-HMAC-1.03/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.89/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.89/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.98/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.98/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.11/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.11/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.12/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.12/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-MakeMaker-7.34/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-MakeMaker-7.34/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.30/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.30/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.35/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.35/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-Typemaps-Default-1.05/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-Typemaps-Default-1.05/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-XSpp-0.18/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-XSpp-0.18/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-ArgvFile-1.11/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-ArgvFile-1.11/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-Long-2.50/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-Long-2.50/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Growl-GNTP-0.21/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Growl-GNTP-0.21/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-CaptureOutput-1.1104/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-CaptureOutput-1.1104/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-stringy-2.111/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-stringy-2.111/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Mock-Config-0.03/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Mock-Config-0.03/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-Build-WithXSpp-0.14/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-Build-WithXSpp-0.14/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-ScanDeps-1.23/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-ScanDeps-1.23/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003002/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003002/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003004/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003004/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-Bonjour-0.96/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-Bonjour-0.96/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-DNS-1.09/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-DNS-1.09/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-1.014/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-1.014/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-Dist-0.49/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-Dist-0.49/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Parse-Binary-0.11/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Parse-Binary-0.11/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PathTools-3.74/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PathTools-3.74/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Scalar-List-Utils-1.50/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Scalar-List-Utils-1.50/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Differences-0.64/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Differences-0.64/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.39/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.39/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.42/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.42/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302078/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302078/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302083/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302083/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302085/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302085/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302136/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302136/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9742/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9742/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9758/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9758/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Win32-IPHelper-0.08/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Win32-IPHelper-0.08/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Wx-GLCanvas-0.09/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Wx-GLCanvas-0.09/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-NamespaceSupport-1.11/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-NamespaceSupport-1.11/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-0.99/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-0.99/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-Base-1.08/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-Base-1.08/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/enum-1.11/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/enum-1.11/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/libwww-perl-6.26/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/libwww-perl-6.26/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-2.21/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-2.21/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-shared-1.58/MYMETA.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-shared-1.58/install.json -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/Config/msw_3_1_0_uni_gcc_3_4.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/Utility.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aboutdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/accel.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/access.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/activityindicator.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/addremovectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/affinematrix2d.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/affinematrix2dbase.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/afterstd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/android/chkconf.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/android/config_android.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/android/setup.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/anidecod.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/animate.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/animdecod.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/any.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/anybutton.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/anystr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/app.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/appprogress.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/apptrait.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/archive.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/arrimpl.cpp -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/arrstr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/artprov.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/atomic.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/aui.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/auibar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/auibook.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/barartmsw.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/dockart.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/floatpane.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/framemanager.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabart.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabartgtk.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabartmsw.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabmdi.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bannerwindow.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/base64.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/beforestd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bitmap.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bmpbuttn.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bmpcbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bookctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/brush.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/buffer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/build.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/busyinfo.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/button.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/calctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/caret.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/chartype.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/checkbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/checkeddelete.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/checklst.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/chkconf.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/choicdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/choice.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/choicebk.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/clipbrd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/clntdata.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/clrpicker.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmdargs.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmdline.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmdproc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmndata.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/collheaderctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/collpane.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/colordlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/colour.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/colourdata.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/combo.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/combobox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/commandlinkbutton.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/compiler.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/compositewin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/confbase.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/config.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/containr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/control.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/convauto.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cpp.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cppunit.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/crt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cshelp.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ctrlsub.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cursor.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/custombgwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dataobj.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dataview.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dateevt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datetime.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datetimectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datstrm.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcbuffer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcclient.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcgraph.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcmemory.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcmirror.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcprint.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcps.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcscreen.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcsvg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dde.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/debug.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/debugrpt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/defs.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dialog.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dialup.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dir.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dirctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dirdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/display.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/display_impl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dlimpexp.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dlist.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dnd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/docmdi.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/docview.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dragimag.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dvrenderers.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dynarray.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dynlib.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dynload.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/editlbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/effects.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/encconv.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/encinfo.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/event.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/eventfilter.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/evtloop.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/evtloopsrc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/except.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fdrepdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/features.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ffile.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/file.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fileconf.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filedlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filefn.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filehistory.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filename.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filepicker.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filesys.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/flags.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fmappriv.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/font.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontdata.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontenc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontenum.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontmap.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontpicker.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontutil.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/frame.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_arc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_filter.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_inet.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_mem.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_zip.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fswatcher.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gauge.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gbsizer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gdicmn.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gdiobj.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/aboutdlgg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/accel.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/activityindicator.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/animate.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/bmpcbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/busyinfo.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/buttonbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/calctrlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/caret.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/choicdgg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/clrpickerg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/collheaderctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/collpaneg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/colour.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/colrdlgg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/combo.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/ctrlsub.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/custombgwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dataview.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/datectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dcpsg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dirctrlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dirdlgg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dragimgg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dvrenderer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dvrenderers.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fdrepdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/filectrlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/filedlgg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/filepickerg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fontdlgg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fontpickerg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fswatcher.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/grid.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/gridctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/grideditors.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/gridsel.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/headerctrlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/helpext.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/hyperlink.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/icon.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/imaglist.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/infobar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/laywin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/listctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/logg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/mask.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/mdig.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/msgdlgg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/notebook.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/notifmsg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/numdlgg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/paletteg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/panelg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/printps.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/addremovectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/grid.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/listctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/markuptext.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/notifmsg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/richtooltip.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/textmeasure.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/timer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/widthcalc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/prntdlgg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/progdlgg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/propdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/region.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/richmsgdlgg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/sashwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/scrolwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/spinctlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/splash.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/splitter.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/srchctlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/statbmpg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/statline.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/stattextg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/statusbr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/tabg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/textdlgg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/timectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/treectlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/wizard.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/geometry.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gifdecod.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/glcanvas.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/graphics.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/grid.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hash.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hashmap.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hashset.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/headercol.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/headerctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/help.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/helpbase.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/helphtml.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/helpwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/forcelnk.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpdata.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpfrm.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpwnd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlcell.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmldefs.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlfilt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlpars.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlproc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmltag.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmprint.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/m_templ.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/styleparams.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/webkit.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/winpars.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/htmllbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hyperlink.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/icon.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/iconbndl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/iconloc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagbmp.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/image.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imaggif.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagiff.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagjpeg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imaglist.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagpcx.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagpng.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagpnm.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagtga.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagtiff.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagxpm.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/infobar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/init.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/intl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/iosfwrap.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ioswrap.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ipc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ipcbase.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/itemid.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/joystick.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/kbdstate.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/language.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/layout.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/laywin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/link.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/list.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listbase.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listbook.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listimpl.cpp -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/log.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/longlong.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/math.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/matrix.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mdi.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mediactrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/memconf.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/memory.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/memtext.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/menu.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/menuitem.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/convertible.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/if.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/implicitconversion.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/int2type.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/movable.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/pod.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/removeref.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/metafile.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mimetype.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/minifram.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/modalhook.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/module.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mousemanager.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mousestate.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msgdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msgout.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msgqueue.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mstream.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/accel.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/amd64.manifest -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/anybutton.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/app.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/appprogress.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/apptbase.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/apptrait.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bitmap.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/blank.cur -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bmpbuttn.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bmpcbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/brush.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bullseye.cur -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/button.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/calctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/caret.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/cdrom.ico -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/checkbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/checklst.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/child.ico -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/chkconf.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/choice.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/clipbrd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/colordlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/colour.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/colours.bmp -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/combo.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/combobox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/commandlinkbutton.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/computer.ico -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/control.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/crashrpt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/cross.cur -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/csquery.bmp -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ctrlsub.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/cursor.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/custombgwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/datectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/datetimectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcclient.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcmemory.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcprint.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcscreen.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dde.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/debughlp.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dialog.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dib.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dirdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dragimag.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/drive.ico -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/enhmeta.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/evtloop.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/evtloopconsole.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/fdrepdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/file1.ico -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/filedlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/floppy.ico -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/folder1.ico -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/folder2.ico -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/font.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/fontdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/frame.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/fswatcher.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/gauge.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/gccpriv.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/gdiimage.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/genrcdefs.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/glcanvas.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/hand.cur -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/headerctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/helpbest.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/helpchm.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/helpwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/htmlhelp.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/hyperlink.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ia64.manifest -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/icon.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/imaglist.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/iniconf.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/init.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/joystick.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/libraries.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/listbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/listctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/magnif1.cur -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/mdi.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/mdi.ico -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/menu.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/menuitem.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/metafile.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/mimetype.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/minifram.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/missing.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/msgdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/msvcrt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/nonownedwnd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/notebook.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/access.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/activex.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/automtn.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dataform.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dataobj.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dataobj2.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dropsrc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/droptgt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/oleutils.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/safearray.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/uuid.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ownerdrawnbutton.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ownerdrw.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/palette.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/panel.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pbrush.cur -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pen.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pencil.cur -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pntleft.cur -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pntright.cur -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/popupwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/printdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/printwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/button.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/comptr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/datecontrols.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/dc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/event.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/fswatcher.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/hiddenwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/keyboard.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/metrics.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/msgdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/pipestream.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/sockmsw.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/textmeasure.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/timer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/progdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/question.ico -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/radiobox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/radiobut.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/rcdefs.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/regconf.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/region.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/registry.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/removble.ico -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/richmsgdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/roller.cur -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/rt/private/notifmsg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/rt/utils.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/scrolbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/seh.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/setup.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/setup_inc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/slider.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/sound.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/spinbutt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/spinctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/stackwalk.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statbmp.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statline.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/stattext.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statusbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/std.ico -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/stdpaths.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/subwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/taskbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/taskbarbutton.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/textctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/textentry.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/tglbtn.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/timectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/tls.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/toolbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/tooltip.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/toplevel.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/treectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/uxtheme.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/uxthemep.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/webview_ie.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/webview_missing.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/webviewhistoryitem_ie.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/window.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/winundef.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapcctl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapcdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapgdip.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapshl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wx.manifest -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wx.rc -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/nativewin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/nonownedwnd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/notebook.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/notifmsg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/numdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/numformatter.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/object.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/odcombo.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/accel.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/activityindicator.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/anybutton.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/app.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/appprogress.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/bitmap.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/bmpbuttn.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/brush.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/button.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/carbon/private/overlay.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/carbon/private/print.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/carbon/region.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/checkbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/checklst.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/chkconf.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/choice.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/clipbrd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/chkconf.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/dataview.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/evtloop.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/date.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/markuptoattr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/overlay.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/textimpl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/stdpaths.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/colordlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/colour.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/combobox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/config_xcode.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/control.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/cfdataref.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/cfref.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/cfstring.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/colour.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/dataview.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/evtloop.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/hid.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/joystick.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/mimetype.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/objcid.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private/datetimectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private/strconv_cf.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private/timer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cursor.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataform.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataobj.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataobj2.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataview.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/datectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/datetimectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcclient.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcmemory.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcprint.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcscreen.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dialog.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dirdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dnd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dvrenderer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dvrenderers.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/evtloop.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/evtloopsrc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/filedlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/font.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/fontdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/frame.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/fswatcher_fsevents.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/gauge.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/glcanvas.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/icon.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/imaglist.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/iphone/chkconf.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/iphone/private.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/iphone/private/textimpl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/joystick.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/listbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/listctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/mdi.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/menu.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/menuitem.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/metafile.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/mimetype.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/minifram.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/msgdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/nonownedwnd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/notebook.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/palette.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/pen.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/popupwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/printdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/printmac.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private/addremovectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private/print.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private/timer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/radiobox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/radiobut.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/region.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/scrolbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/setup.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/slider.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/sound.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/spinbutt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/srchctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statbmp.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statline.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/stattext.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statusbr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/taskbarosx.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/textctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/textentry.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/tglbtn.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/timectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/toolbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/tooltip.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/toplevel.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/uma.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/webview_webkit.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/webviewhistoryitem_webkit.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/window.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/overlay.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ownerdrw.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/palette.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/panel.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/paper.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/pen.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/bookctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/splitter.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/toplevel.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/treebook.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/window.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/pickerbase.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/platform.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/platinfo.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/popupwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/position.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/power.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/preferences.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/print.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/printdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/addremovectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/eventloopsourcesmanager.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdiodispatcher.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdioeventloopsourcehandler.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdiohandler.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdiomanager.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fileback.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/filename.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/flagscheck.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fontmgr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fswatcher.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/graphics.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/launchbrowser.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/markupparser.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/markupparserattr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/notifmsg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/overlay.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/pipestream.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/preferences.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/richtooltip.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/sckaddr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/selectdispatcher.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/socket.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/streamtempinput.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/textmeasure.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/threadinfo.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/timer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/window.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/wxprintf.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/prntbase.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/process.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/progdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/advprops.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/editors.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/manager.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/property.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgrid.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgriddefs.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgridiface.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgridpagestate.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/props.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/file.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/ftp.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/http.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/log.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/protocol.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ptr_scpd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ptr_shrd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/accel.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/anybutton.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/app.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/bitmap.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/bmpbuttn.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/brush.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/button.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/calctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/checkbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/checklst.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/choice.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/clipbrd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/clrpicker.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/colordlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/colour.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/combobox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/control.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/ctrlsub.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/cursor.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataform.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataobj.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataobj2.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataview.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcclient.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcmemory.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcprint.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcscreen.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/defs.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dialog.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dirdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dnd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dvrenderer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dvrenderers.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/evtloop.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/filedlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/font.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/fontdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/frame.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/gauge.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/glcanvas.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/listbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/listctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/mdi.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/menu.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/menuitem.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/minifram.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/msgdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/notebook.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/palette.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/pen.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/popupwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/printdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/printqt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/converter.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/pointer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/utils.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/winevent.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/radiobox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/radiobut.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/region.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/scrolbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/slider.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/spinbutt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/spinctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statbmp.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statline.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/stattext.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statusbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/taskbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/textctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/textentry.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/tglbtn.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/timer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/toolbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/tooltip.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/toplevel.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/treectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/window.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/quantize.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/radiobox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/radiobut.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/range.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/rawbmp.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/rearrangectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/recguard.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/regex.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/region.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/renderer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/art.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/art_internal.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/bar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/buttonbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/control.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/gallery.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/page.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/panel.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/toolbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richmsgdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/bitmaps/image_placeholder24x24.xpm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextbackgroundpage.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextborderspage.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextbuffer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextbulletspage.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextdialogpage.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextfontpage.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextformatdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtexthtml.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextimagedlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextindentspage.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextliststylepage.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextmarginspage.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextprint.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextsizepage.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextstyledlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextstylepage.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextstyles.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextsymboldlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtexttabspage.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextuicustomization.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextxml.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtooltip.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/rtti.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sashwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sckaddr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sckipc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sckstrm.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scopedarray.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scopedptr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scopeguard.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scrolbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scrolwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/selstore.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/settings.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/setup_inc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/setup_redirect.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sharedptr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/simplebook.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sizer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/slider.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/snglinst.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/socket.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sound.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/spinbutt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/spinctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/splash.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/splitter.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/srchctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sstream.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stack.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stackwalk.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statbmp.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statline.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stattext.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statusbr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stc/private.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stc/stc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stdpaths.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stdstream.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stockitem.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stopwatch.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/strconv.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stream.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/string.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stringimpl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stringops.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/strvararg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sysopt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/systhemectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tarstrm.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/taskbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/taskbarbutton.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tbarbase.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/testing.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textbuf.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textcompleter.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textentry.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textfile.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textwrapper.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tglbtn.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/thread.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/thrimpl.cpp -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/time.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/timectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/timer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tipdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tipwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tls.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tokenzr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/toolbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/toolbook.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tooltip.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/toplevel.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tracker.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/translation.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treebase.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treebook.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treelist.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/txtstrm.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/typeinfo.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/types.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/uiaction.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/unichar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/uri.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/url.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ustring.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/utils.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/valgen.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/validate.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/valnum.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/valtext.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/variant.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/variantbase.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vector.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/version.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/versioninfo.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vidmode.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vlbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vms_x_fix.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/volume.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vscroll.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/weakref.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/webview.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/webviewarchivehandler.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/webviewfshandler.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wfstream.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/window.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/windowid.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/windowptr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/withimages.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wizard.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wrapsizer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wupdlock.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wx.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxchar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxcrt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxcrtbase.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxcrtvararg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxhtml.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxprec.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xlocale.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xml/xml.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xpmdecod.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xpmhand.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_activityindicator.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_all.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_animatctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_auinotbk.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_auitoolb.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bannerwindow.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bmp.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bmpbt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bmpcbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bttn.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_cald.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_chckb.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_chckl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_choic.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_choicbk.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_clrpicker.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_cmdlinkbn.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_collpane.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_combo.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_comboctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_datectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_dirpicker.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_dlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_editlbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_filectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_filepicker.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_fontpicker.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_frame.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_gauge.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_gdctl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_grid.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_html.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_htmllbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_hyperlink.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_listb.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_listbk.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_listc.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_mdi.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_menu.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_notbk.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_odcombo.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_panel.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_propdlg.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_radbt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_radbx.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_ribbon.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_richtext.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_scrol.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_scwin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_simplebook.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_sizer.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_slidr.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_spin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_split.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_srchctrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_statbar.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_stbmp.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_stbox.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_stlin.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_sttxt.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_text.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_tglbtn.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_timectrl.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_toolb.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_toolbk.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_tree.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_treebk.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_unkwn.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_wizrd.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xmlres.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xmlreshandler.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xti.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xti2.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtictor.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtihandler.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtiprop.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtistrm.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtitypes.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtixml.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/zipstrm.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/zstream.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/build.cfg -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libgcc_s_seh-1.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libstdc++-6.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxbase31u.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxbase31u_net.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxbase31u_xml.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxexpat.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxjpeg.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_adv.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_aui.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_core.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_gl.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_html.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_media.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_propgrid.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_ribbon.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_richtext.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_stc.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_webview.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_xrc.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxpng.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxregexu.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxtiff.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxzlib.a -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wx/setup.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxbase310u_gcc_custom.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxbase310u_net_gcc_custom.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxbase310u_xml_gcc_custom.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_adv_gcc_custom.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_aui_gcc_custom.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_core_gcc_custom.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_gl_gcc_custom.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_html_gcc_custom.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_media_gcc_custom.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_propgrid_gcc_custom.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_ribbon_gcc_custom.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_richtext_gcc_custom.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_stc_gcc_custom.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_webview_gcc_custom.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_xrc_gcc_custom.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/Cwd.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Data/UUID.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Alias.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Byte.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/CJKConstants.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/CN.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/CN/HZ.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Changes.e2x -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Config.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/ConfigLocal_PM.e2x -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/EBCDIC.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Encoder.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Encoding.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/GSM0338.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Guess.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/JP.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/JP/H2Z.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/JP/JIS7.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/KR.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/KR/2022_KR.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/MIME/Header.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/MIME/Header/ISO_2022_JP.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/MIME/Name.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Makefile_PL.e2x -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/PerlIO.pod -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/README.e2x -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Supported.pod -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Symbol.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/TW.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Unicode.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Unicode/UTF7.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/_PM.e2x -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/_T.e2x -local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/encode.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/AmigaOS.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Cygwin.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Epoc.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Functions.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Mac.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/OS2.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Unix.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/VMS.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Win32.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/List/Util.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/List/Util/XS.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL.pod -local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL/Array.pod -local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL/Config.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL/Tessellation.pod -local-lib/lib/perl5/MSWin32-x64-multi-thread/Scalar/Util.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Slic3r/XS.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Sub/Util.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Time/HiRes.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/AUI.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Api.pod -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/App.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/ArtProvider.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Calendar.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/DND.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/DataView.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/DateTime.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/DemoModules/wxGLCanvas.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/DocView.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/DropSource.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Event.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/FS.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/GLCanvas.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Grid.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Help.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Html.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/IPC.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Loader.pod -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Locale.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/MDI.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Media.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Menu.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Mini.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/NewClass.pod -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Overload/Driver.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Overload/Handle.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Perl/Carp.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Perl/SplashFast.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Perl/TextValidator.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/PerlTest.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Print.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/PropertyGrid.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/RadioBox.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Ribbon.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/RichText.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/STC.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Socket.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Thread.pod -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Timer.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/WebView.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/Wx_Exp.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/XRC.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/XSP/Enum.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/XSP/Event.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/XSP/Overload.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/XSP/Virtual.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/build/MakeMaker.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/build/MakeMaker/Any_OS.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/build/MakeMaker/Any_wx_config.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/build/MakeMaker/Core.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/build/MakeMaker/Hacks.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/build/MakeMaker/MacOSX_GCC.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/build/MakeMaker/Win32.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/build/MakeMaker/Win32_MSVC.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/build/MakeMaker/Win32_MinGW.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/build/Opt.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/build/Options.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/build/Utils.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/cpp/chkconfig.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/cpp/compat.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/cpp/constants.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/cpp/e_cback.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/cpp/event.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/cpp/helpers.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/cpp/overload.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/cpp/setup.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/cpp/streams.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/cpp/v_cback.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/cpp/v_cback_def.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/cpp/wxapi.h -local-lib/lib/perl5/MSWin32-x64-multi-thread/Wx/typemap -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Alien/wxWidgets/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/App/cpanminus/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Crypt/CBC/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Cwd/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Cwd/Cwd.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Data/UUID/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Data/UUID/UUID.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Devel/CheckLib/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Digest/HMAC/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Encode/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Encode/Byte/Byte.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Encode/CN/CN.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Encode/EBCDIC/EBCDIC.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Encode/Encode.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Encode/Encode.xs.dll.AAA -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Encode/JP/JP.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Encode/KR/KR.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Encode/Symbol/Symbol.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Encode/TW/TW.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Encode/Unicode/Unicode.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/ExtUtils/CppGuess/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/ExtUtils/MakeMaker/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/ExtUtils/ParseXS/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/ExtUtils/Typemaps/Default/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/ExtUtils/XSpp/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Getopt/ArgvFile/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Getopt/Long/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Growl/GNTP/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/IO/CaptureOutput/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/IO/Stringy/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/List/Util/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/List/Util/Util.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Mock/Config/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Module/Build/WithXSpp/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Module/ScanDeps/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Moo/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Net/Bonjour/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Net/DNS/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/OpenGL/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/OpenGL/OpenGL.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/OpenGL/autosplit.ix -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/OpenGL/freeglut.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/PAR/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/PAR/Dist/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Parse/Binary/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Slic3r/XS/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Slic3r/XS/XS.bs -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Slic3r/XS/XS.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Test/Differences/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Test/Harness/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Test/Simple/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Time/HiRes/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Time/HiRes/HiRes.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Win32/IPHelper/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/AUI/AUI.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/Calendar/Calendar.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/DND/DND.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/DataView/DataView.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/DateTime/DateTime.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/DocView/DocView.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/FS/FS.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/GLCanvas/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/GLCanvas/GLCanvas.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/Grid/Grid.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/Help/Help.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/Html/Html.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/IPC/IPC.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/MDI/MDI.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/Media/Media.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/PerlTest/PerlTest.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/Print/Print.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/PropertyGrid/PropertyGrid.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/Ribbon/Ribbon.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/RichText/RichText.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/STC/STC.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/Socket/Socket.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/WebView/WebView.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/Wx.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/Wx/XRC/XRC.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/XML/NamespaceSupport/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/XML/SAX/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/XML/SAX/Base/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/enum/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/libwww/perl/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/threads/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/threads/shared/.packlist -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/threads/shared/shared.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/auto/threads/threads.xs.dll -local-lib/lib/perl5/MSWin32-x64-multi-thread/encoding.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/perllocal.pod -local-lib/lib/perl5/MSWin32-x64-multi-thread/threads.pm -local-lib/lib/perl5/MSWin32-x64-multi-thread/threads/shared.pm -local-lib/lib/perl5/Method/Generate/Accessor.pm -local-lib/lib/perl5/Method/Generate/BuildAll.pm -local-lib/lib/perl5/Method/Generate/Constructor.pm -local-lib/lib/perl5/Method/Generate/DemolishAll.pm -local-lib/lib/perl5/Mock/Config.pm -local-lib/lib/perl5/Module/Build/WithXSpp.pm -local-lib/lib/perl5/Module/ScanDeps.pm -local-lib/lib/perl5/Module/ScanDeps/Cache.pm -local-lib/lib/perl5/Moo.pm -local-lib/lib/perl5/Moo/HandleMoose.pm -local-lib/lib/perl5/Moo/HandleMoose/FakeMetaClass.pm -local-lib/lib/perl5/Moo/HandleMoose/_TypeMap.pm -local-lib/lib/perl5/Moo/Object.pm -local-lib/lib/perl5/Moo/Role.pm -local-lib/lib/perl5/Moo/_Utils.pm -local-lib/lib/perl5/Moo/_mro.pm -local-lib/lib/perl5/Moo/_strictures.pm -local-lib/lib/perl5/Moo/sification.pm -local-lib/lib/perl5/Net/Bonjour.pm -local-lib/lib/perl5/Net/Bonjour/Entry.pm -local-lib/lib/perl5/Net/DNS.pm -local-lib/lib/perl5/Net/DNS/Domain.pm -local-lib/lib/perl5/Net/DNS/DomainName.pm -local-lib/lib/perl5/Net/DNS/FAQ.pod -local-lib/lib/perl5/Net/DNS/Header.pm -local-lib/lib/perl5/Net/DNS/Mailbox.pm -local-lib/lib/perl5/Net/DNS/Nameserver.pm -local-lib/lib/perl5/Net/DNS/Packet.pm -local-lib/lib/perl5/Net/DNS/Parameters.pm -local-lib/lib/perl5/Net/DNS/Question.pm -local-lib/lib/perl5/Net/DNS/RR.pm -local-lib/lib/perl5/Net/DNS/RR/A.pm -local-lib/lib/perl5/Net/DNS/RR/AAAA.pm -local-lib/lib/perl5/Net/DNS/RR/AFSDB.pm -local-lib/lib/perl5/Net/DNS/RR/APL.pm -local-lib/lib/perl5/Net/DNS/RR/CAA.pm -local-lib/lib/perl5/Net/DNS/RR/CDNSKEY.pm -local-lib/lib/perl5/Net/DNS/RR/CDS.pm -local-lib/lib/perl5/Net/DNS/RR/CERT.pm -local-lib/lib/perl5/Net/DNS/RR/CNAME.pm -local-lib/lib/perl5/Net/DNS/RR/CSYNC.pm -local-lib/lib/perl5/Net/DNS/RR/DHCID.pm -local-lib/lib/perl5/Net/DNS/RR/DLV.pm -local-lib/lib/perl5/Net/DNS/RR/DNAME.pm -local-lib/lib/perl5/Net/DNS/RR/DNSKEY.pm -local-lib/lib/perl5/Net/DNS/RR/DS.pm -local-lib/lib/perl5/Net/DNS/RR/EUI48.pm -local-lib/lib/perl5/Net/DNS/RR/EUI64.pm -local-lib/lib/perl5/Net/DNS/RR/GPOS.pm -local-lib/lib/perl5/Net/DNS/RR/HINFO.pm -local-lib/lib/perl5/Net/DNS/RR/HIP.pm -local-lib/lib/perl5/Net/DNS/RR/IPSECKEY.pm -local-lib/lib/perl5/Net/DNS/RR/ISDN.pm -local-lib/lib/perl5/Net/DNS/RR/KEY.pm -local-lib/lib/perl5/Net/DNS/RR/KX.pm -local-lib/lib/perl5/Net/DNS/RR/L32.pm -local-lib/lib/perl5/Net/DNS/RR/L64.pm -local-lib/lib/perl5/Net/DNS/RR/LOC.pm -local-lib/lib/perl5/Net/DNS/RR/LP.pm -local-lib/lib/perl5/Net/DNS/RR/MB.pm -local-lib/lib/perl5/Net/DNS/RR/MG.pm -local-lib/lib/perl5/Net/DNS/RR/MINFO.pm -local-lib/lib/perl5/Net/DNS/RR/MR.pm -local-lib/lib/perl5/Net/DNS/RR/MX.pm -local-lib/lib/perl5/Net/DNS/RR/NAPTR.pm -local-lib/lib/perl5/Net/DNS/RR/NID.pm -local-lib/lib/perl5/Net/DNS/RR/NS.pm -local-lib/lib/perl5/Net/DNS/RR/NSEC.pm -local-lib/lib/perl5/Net/DNS/RR/NSEC3.pm -local-lib/lib/perl5/Net/DNS/RR/NSEC3PARAM.pm -local-lib/lib/perl5/Net/DNS/RR/NULL.pm -local-lib/lib/perl5/Net/DNS/RR/OPENPGPKEY.pm -local-lib/lib/perl5/Net/DNS/RR/OPT.pm -local-lib/lib/perl5/Net/DNS/RR/PTR.pm -local-lib/lib/perl5/Net/DNS/RR/PX.pm -local-lib/lib/perl5/Net/DNS/RR/RP.pm -local-lib/lib/perl5/Net/DNS/RR/RRSIG.pm -local-lib/lib/perl5/Net/DNS/RR/RT.pm -local-lib/lib/perl5/Net/DNS/RR/SIG.pm -local-lib/lib/perl5/Net/DNS/RR/SMIMEA.pm -local-lib/lib/perl5/Net/DNS/RR/SOA.pm -local-lib/lib/perl5/Net/DNS/RR/SPF.pm -local-lib/lib/perl5/Net/DNS/RR/SRV.pm -local-lib/lib/perl5/Net/DNS/RR/SSHFP.pm -local-lib/lib/perl5/Net/DNS/RR/TKEY.pm -local-lib/lib/perl5/Net/DNS/RR/TLSA.pm -local-lib/lib/perl5/Net/DNS/RR/TSIG.pm -local-lib/lib/perl5/Net/DNS/RR/TXT.pm -local-lib/lib/perl5/Net/DNS/RR/URI.pm -local-lib/lib/perl5/Net/DNS/RR/X25.pm -local-lib/lib/perl5/Net/DNS/Resolver.pm -local-lib/lib/perl5/Net/DNS/Resolver/Base.pm -local-lib/lib/perl5/Net/DNS/Resolver/MSWin32.pm -local-lib/lib/perl5/Net/DNS/Resolver/Recurse.pm -local-lib/lib/perl5/Net/DNS/Resolver/UNIX.pm -local-lib/lib/perl5/Net/DNS/Resolver/android.pm -local-lib/lib/perl5/Net/DNS/Resolver/cygwin.pm -local-lib/lib/perl5/Net/DNS/Resolver/os2.pm -local-lib/lib/perl5/Net/DNS/Text.pm -local-lib/lib/perl5/Net/DNS/Update.pm -local-lib/lib/perl5/Net/DNS/ZoneFile.pm -local-lib/lib/perl5/Net/Rendezvous.pm -local-lib/lib/perl5/Net/Rendezvous/Entry.pm -local-lib/lib/perl5/PAR.pm -local-lib/lib/perl5/PAR/Dist.pm -local-lib/lib/perl5/PAR/Environment.pod -local-lib/lib/perl5/PAR/FAQ.pod -local-lib/lib/perl5/PAR/Heavy.pm -local-lib/lib/perl5/PAR/SetupProgname.pm -local-lib/lib/perl5/PAR/SetupTemp.pm -local-lib/lib/perl5/PAR/Tutorial.pod -local-lib/lib/perl5/Parse/Binary.pm -local-lib/lib/perl5/Parse/Binary/FixedFormat.pm -local-lib/lib/perl5/Parse/Binary/FixedFormat/Variants.pm -local-lib/lib/perl5/TAP/Base.pm -local-lib/lib/perl5/TAP/Formatter/Base.pm -local-lib/lib/perl5/TAP/Formatter/Color.pm -local-lib/lib/perl5/TAP/Formatter/Console.pm -local-lib/lib/perl5/TAP/Formatter/Console/ParallelSession.pm -local-lib/lib/perl5/TAP/Formatter/Console/Session.pm -local-lib/lib/perl5/TAP/Formatter/File.pm -local-lib/lib/perl5/TAP/Formatter/File/Session.pm -local-lib/lib/perl5/TAP/Formatter/Session.pm -local-lib/lib/perl5/TAP/Harness.pm -local-lib/lib/perl5/TAP/Harness/Beyond.pod -local-lib/lib/perl5/TAP/Harness/Env.pm -local-lib/lib/perl5/TAP/Object.pm -local-lib/lib/perl5/TAP/Parser.pm -local-lib/lib/perl5/TAP/Parser/Aggregator.pm -local-lib/lib/perl5/TAP/Parser/Grammar.pm -local-lib/lib/perl5/TAP/Parser/Iterator.pm -local-lib/lib/perl5/TAP/Parser/Iterator/Array.pm -local-lib/lib/perl5/TAP/Parser/Iterator/Process.pm -local-lib/lib/perl5/TAP/Parser/Iterator/Stream.pm -local-lib/lib/perl5/TAP/Parser/IteratorFactory.pm -local-lib/lib/perl5/TAP/Parser/Multiplexer.pm -local-lib/lib/perl5/TAP/Parser/Result.pm -local-lib/lib/perl5/TAP/Parser/Result/Bailout.pm -local-lib/lib/perl5/TAP/Parser/Result/Comment.pm -local-lib/lib/perl5/TAP/Parser/Result/Plan.pm -local-lib/lib/perl5/TAP/Parser/Result/Pragma.pm -local-lib/lib/perl5/TAP/Parser/Result/Test.pm -local-lib/lib/perl5/TAP/Parser/Result/Unknown.pm -local-lib/lib/perl5/TAP/Parser/Result/Version.pm -local-lib/lib/perl5/TAP/Parser/Result/YAML.pm -local-lib/lib/perl5/TAP/Parser/ResultFactory.pm -local-lib/lib/perl5/TAP/Parser/Scheduler.pm -local-lib/lib/perl5/TAP/Parser/Scheduler/Job.pm -local-lib/lib/perl5/TAP/Parser/Scheduler/Spinner.pm -local-lib/lib/perl5/TAP/Parser/Source.pm -local-lib/lib/perl5/TAP/Parser/SourceHandler.pm -local-lib/lib/perl5/TAP/Parser/SourceHandler/Executable.pm -local-lib/lib/perl5/TAP/Parser/SourceHandler/File.pm -local-lib/lib/perl5/TAP/Parser/SourceHandler/Handle.pm -local-lib/lib/perl5/TAP/Parser/SourceHandler/Perl.pm -local-lib/lib/perl5/TAP/Parser/SourceHandler/RawTAP.pm -local-lib/lib/perl5/TAP/Parser/YAMLish/Reader.pm -local-lib/lib/perl5/TAP/Parser/YAMLish/Writer.pm -local-lib/lib/perl5/Test/Builder.pm -local-lib/lib/perl5/Test/Builder/Formatter.pm -local-lib/lib/perl5/Test/Builder/IO/Scalar.pm -local-lib/lib/perl5/Test/Builder/Module.pm -local-lib/lib/perl5/Test/Builder/Tester.pm -local-lib/lib/perl5/Test/Builder/Tester/Color.pm -local-lib/lib/perl5/Test/Builder/TodoDiag.pm -local-lib/lib/perl5/Test/Differences.pm -local-lib/lib/perl5/Test/HACKING.pod -local-lib/lib/perl5/Test/Harness.pm -local-lib/lib/perl5/Test/More.pm -local-lib/lib/perl5/Test/Simple.pm -local-lib/lib/perl5/Test/Tester.pm -local-lib/lib/perl5/Test/Tester/Capture.pm -local-lib/lib/perl5/Test/Tester/CaptureRunner.pm -local-lib/lib/perl5/Test/Tester/Delegate.pm -local-lib/lib/perl5/Test/Tutorial.pod -local-lib/lib/perl5/Test/use/ok.pm -local-lib/lib/perl5/Test2.pm -local-lib/lib/perl5/Test2/API.pm -local-lib/lib/perl5/Test2/API/Breakage.pm -local-lib/lib/perl5/Test2/API/Context.pm -local-lib/lib/perl5/Test2/API/Instance.pm -local-lib/lib/perl5/Test2/API/Stack.pm -local-lib/lib/perl5/Test2/Event.pm -local-lib/lib/perl5/Test2/Event/Bail.pm -local-lib/lib/perl5/Test2/Event/Diag.pm -local-lib/lib/perl5/Test2/Event/Encoding.pm -local-lib/lib/perl5/Test2/Event/Exception.pm -local-lib/lib/perl5/Test2/Event/Fail.pm -local-lib/lib/perl5/Test2/Event/Generic.pm -local-lib/lib/perl5/Test2/Event/Info.pm -local-lib/lib/perl5/Test2/Event/Note.pm -local-lib/lib/perl5/Test2/Event/Ok.pm -local-lib/lib/perl5/Test2/Event/Pass.pm -local-lib/lib/perl5/Test2/Event/Plan.pm -local-lib/lib/perl5/Test2/Event/Skip.pm -local-lib/lib/perl5/Test2/Event/Subtest.pm -local-lib/lib/perl5/Test2/Event/TAP/Version.pm -local-lib/lib/perl5/Test2/Event/V2.pm -local-lib/lib/perl5/Test2/Event/Waiting.pm -local-lib/lib/perl5/Test2/EventFacet.pm -local-lib/lib/perl5/Test2/EventFacet/About.pm -local-lib/lib/perl5/Test2/EventFacet/Amnesty.pm -local-lib/lib/perl5/Test2/EventFacet/Assert.pm -local-lib/lib/perl5/Test2/EventFacet/Control.pm -local-lib/lib/perl5/Test2/EventFacet/Error.pm -local-lib/lib/perl5/Test2/EventFacet/Hub.pm -local-lib/lib/perl5/Test2/EventFacet/Info.pm -local-lib/lib/perl5/Test2/EventFacet/Meta.pm -local-lib/lib/perl5/Test2/EventFacet/Parent.pm -local-lib/lib/perl5/Test2/EventFacet/Plan.pm -local-lib/lib/perl5/Test2/EventFacet/Render.pm -local-lib/lib/perl5/Test2/EventFacet/Trace.pm -local-lib/lib/perl5/Test2/Formatter.pm -local-lib/lib/perl5/Test2/Formatter/TAP.pm -local-lib/lib/perl5/Test2/Hub.pm -local-lib/lib/perl5/Test2/Hub/Interceptor.pm -local-lib/lib/perl5/Test2/Hub/Interceptor/Terminator.pm -local-lib/lib/perl5/Test2/Hub/Subtest.pm -local-lib/lib/perl5/Test2/IPC.pm -local-lib/lib/perl5/Test2/IPC/Driver.pm -local-lib/lib/perl5/Test2/IPC/Driver/Files.pm -local-lib/lib/perl5/Test2/Tools/Tiny.pm -local-lib/lib/perl5/Test2/Transition.pod -local-lib/lib/perl5/Test2/Util.pm -local-lib/lib/perl5/Test2/Util/ExternalMeta.pm -local-lib/lib/perl5/Test2/Util/Facets2Legacy.pm -local-lib/lib/perl5/Test2/Util/HashBase.pm -local-lib/lib/perl5/Test2/Util/Trace.pm -local-lib/lib/perl5/Win32/IPHelper.pm -local-lib/lib/perl5/XML/NamespaceSupport.pm -local-lib/lib/perl5/XML/SAX.pm -local-lib/lib/perl5/XML/SAX/Base.pm -local-lib/lib/perl5/XML/SAX/BuildSAXBase.pl -local-lib/lib/perl5/XML/SAX/DocumentLocator.pm -local-lib/lib/perl5/XML/SAX/Exception.pm -local-lib/lib/perl5/XML/SAX/Intro.pod -local-lib/lib/perl5/XML/SAX/ParserDetails.ini -local-lib/lib/perl5/XML/SAX/ParserFactory.pm -local-lib/lib/perl5/XML/SAX/PurePerl.pm -local-lib/lib/perl5/XML/SAX/PurePerl/DTDDecls.pm -local-lib/lib/perl5/XML/SAX/PurePerl/DebugHandler.pm -local-lib/lib/perl5/XML/SAX/PurePerl/DocType.pm -local-lib/lib/perl5/XML/SAX/PurePerl/EncodingDetect.pm -local-lib/lib/perl5/XML/SAX/PurePerl/Exception.pm -local-lib/lib/perl5/XML/SAX/PurePerl/NoUnicodeExt.pm -local-lib/lib/perl5/XML/SAX/PurePerl/Productions.pm -local-lib/lib/perl5/XML/SAX/PurePerl/Reader.pm -local-lib/lib/perl5/XML/SAX/PurePerl/Reader/NoUnicodeExt.pm -local-lib/lib/perl5/XML/SAX/PurePerl/Reader/Stream.pm -local-lib/lib/perl5/XML/SAX/PurePerl/Reader/String.pm -local-lib/lib/perl5/XML/SAX/PurePerl/Reader/URI.pm -local-lib/lib/perl5/XML/SAX/PurePerl/Reader/UnicodeExt.pm -local-lib/lib/perl5/XML/SAX/PurePerl/UnicodeExt.pm -local-lib/lib/perl5/XML/SAX/PurePerl/XMLDecl.pm -local-lib/lib/perl5/enum.pm -local-lib/lib/perl5/libwww/lwpcook.pod -local-lib/lib/perl5/libwww/lwptut.pod -local-lib/lib/perl5/newgetopt.pl -local-lib/lib/perl5/ok.pm -local-lib/lib/perl5/oo.pm -perl524.dll -pthreadGC2-w64.dll -script/main.pl -script/slic3r.pl -slic3r.pl -var/Slic3r.icns -var/Slic3r.ico -var/Slic3r.png -var/Slic3r_128px.png -var/Slic3r_192px.png -var/Slic3r_192px_transparent.png -var/add.png -var/application_view_tile.png -var/arrow_down.png -var/arrow_in.png -var/arrow_left.png -var/arrow_out.png -var/arrow_redo.png -var/arrow_refresh.png -var/arrow_right.png -var/arrow_rotate_anticlockwise.png -var/arrow_rotate_clockwise.png -var/arrow_undo.png -var/arrow_up.png -var/box.png -var/brick.png -var/brick_add.png -var/brick_delete.png -var/brick_go.png -var/bricks.png -var/building.png -var/bullet_black.png -var/bullet_blue.png -var/bullet_green.png -var/bullet_red.png -var/bullet_white.png -var/cog.png -var/cog_go.png -var/control_pause.png -var/control_pause_blue.png -var/control_play.png -var/control_play_blue.png -var/control_stop.png -var/control_stop_blue.png -var/cross.png -var/delete.png -var/disk.png -var/error.png -var/film.png -var/funnel.png -var/gcode.icns -var/gcode.ico -var/hourglass.png -var/house.png -var/infill.png -var/joystick.png -var/layers.png -var/lorry_add.png -var/lorry_go.png -var/lorry_import.png -var/map_add.png -var/note.png -var/package.png -var/package_green.png -var/page_white_go.png -var/plugin.png -var/plugin_add.png -var/plugin_go.png -var/printer_empty.png -var/script.png -var/shape_flip_horizontal.png -var/shape_handles.png -var/shape_ungroup.png -var/slt.ico -var/spool.png -var/stl.icns -var/tag_blue.png -var/textfield.png -var/tick.png -var/time.png -var/variable_layer_height.png -var/wand.png -var/wrench.png -var/zoom.png -var/zoom_in.png -var/zoom_out.png - # \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/META.yml b/software/Slic3r-1.3.0.64bit/META.yml deleted file mode 100644 index 423a4691..00000000 --- a/software/Slic3r-1.3.0.64bit/META.yml +++ /dev/null @@ -1,12 +0,0 @@ -build_requires: {} -conflicts: {} -dist_name: C:\projects\slic3r\package\win\..\..\slic3r.par -distribution_type: par -dynamic_config: 0 -generated_by: 'PAR::Packer version 1.043' -license: unknown -par: - clean: 0 - signature: '' - verbatim: 0 - version: 1.014 diff --git a/software/Slic3r-1.3.0.64bit/Slic3r-console.exe b/software/Slic3r-1.3.0.64bit/Slic3r-console.exe deleted file mode 100644 index 156c1a42..00000000 --- a/software/Slic3r-1.3.0.64bit/Slic3r-console.exe +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:faa62d6e82d632c317a2eaf3bf48769d0e7659670b694eb996cd69b24e308230 -size 415349 diff --git a/software/Slic3r-1.3.0.64bit/Slic3r-debug-console.exe b/software/Slic3r-1.3.0.64bit/Slic3r-debug-console.exe deleted file mode 100644 index d8378ea1..00000000 --- a/software/Slic3r-1.3.0.64bit/Slic3r-debug-console.exe +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:61a827194c9a63f7daae4f872f5fc0af027f31d9341fab2ce2b05df97036b3aa -size 415861 diff --git a/software/Slic3r-1.3.0.64bit/Slic3r.exe b/software/Slic3r-1.3.0.64bit/Slic3r.exe deleted file mode 100644 index ae779f49..00000000 --- a/software/Slic3r-1.3.0.64bit/Slic3r.exe +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:96860ac6b6ac8d3961a69ff0d80017dcd26b49f7b687ee8aadd20623b0582b79 -size 415861 diff --git a/software/Slic3r-1.3.0.64bit/config.ini b/software/Slic3r-1.3.0.64bit/config.ini deleted file mode 100644 index 3173e717..00000000 --- a/software/Slic3r-1.3.0.64bit/config.ini +++ /dev/null @@ -1,167 +0,0 @@ -# generated by Slic3r 1.3.0 on -adaptive_slicing = 0 -adaptive_slicing_quality = 75% -avoid_crossing_perimeters = 0 -bed_shape = 0x0,200x0,200x200,0x200 -bed_temperature = 100 -before_layer_gcode = -between_objects_gcode = -bottom_infill_pattern = rectilinear -bottom_solid_layers = 3 -bridge_acceleration = 0 -bridge_fan_speed = 100 -bridge_flow_ratio = 1 -bridge_speed = 60 -brim_connections_width = 0 -brim_width = 0 -compatible_printers = -complete_objects = 0 -cooling = 1 -default_acceleration = 0 -disable_fan_first_layers = 3 -dont_support_bridges = 1 -duplicate_distance = 6 -end_filament_gcode = "; Filament-specific end gcode \n;END gcode for filament\n" -end_gcode = M104 S0 ; turn off temperature\nG28 X0 ; home X axis\nM84 ; disable motors\n -external_perimeter_extrusion_width = 0 -external_perimeter_speed = 50% -external_perimeters_first = 0 -extra_perimeters = 1 -extruder_clearance_height = 20 -extruder_clearance_radius = 20 -extruder_offset = 0x0 -extrusion_axis = E -extrusion_multiplier = 1 -extrusion_width = 0 -fan_always_on = 0 -fan_below_layer_time = 60 -filament_colour = #FFFFFF -filament_cost = 0 -filament_density = 0 -filament_diameter = 3 -filament_max_volumetric_speed = 0 -filament_notes = "" -filament_settings_id = -fill_angle = 45 -fill_density = 20% -fill_gaps = 1 -fill_pattern = stars -first_layer_acceleration = 0 -first_layer_bed_temperature = 105 -first_layer_extrusion_width = 200% -first_layer_height = 4 -first_layer_speed = 30 -first_layer_temperature = 205 -gap_fill_speed = 20 -gcode_arcs = 0 -gcode_comments = 0 -gcode_flavor = reprap -has_heatbed = 1 -host_type = octoprint -infill_acceleration = 0 -infill_every_layers = 1 -infill_extruder = 1 -infill_extrusion_width = 0 -infill_first = 0 -infill_only_where_needed = 0 -infill_overlap = 55% -infill_speed = 80 -interface_shells = 0 -interior_brim_width = 0 -layer_gcode = -layer_height = 3.9 -match_horizontal_surfaces = 0 -max_fan_speed = 100 -max_layer_height = 0.3 -max_print_speed = 80 -max_volumetric_speed = 0 -min_fan_speed = 35 -min_layer_height = 0.15 -min_print_speed = 10 -min_skirt_length = 0 -notes = -nozzle_diameter = 5 -octoprint_apikey = -only_retract_when_crossing_perimeters = 1 -ooze_prevention = 0 -output_filename_format = [input_filename_base].gcode -overhangs = 1 -perimeter_acceleration = 0 -perimeter_extruder = 1 -perimeter_extrusion_width = 0 -perimeter_speed = 60 -perimeters = 3 -post_process = -pressure_advance = 0 -print_host = -print_settings_id = -printer_notes = -printer_settings_id = -raft_layers = 0 -regions_overlap = 0 -resolution = 0 -retract_before_travel = 2 -retract_layer_change = 0 -retract_length = 2 -retract_length_toolchange = 10 -retract_lift = 0 -retract_lift_above = 0 -retract_lift_below = 0 -retract_restart_extra = 0 -retract_restart_extra_toolchange = 0 -retract_speed = 40 -seam_position = aligned -sequential_print_priority = 0 -serial_port = -serial_speed = 250000 -shortcuts = support_material -skirt_distance = 6 -skirt_height = 1 -skirts = 1 -slowdown_below_layer_time = 5 -small_perimeter_speed = 15 -solid_infill_below_area = 70 -solid_infill_every_layers = 0 -solid_infill_extruder = 1 -solid_infill_extrusion_width = 0 -solid_infill_speed = 20 -spiral_vase = 0 -standby_temperature_delta = -5 -start_filament_gcode = "; Filament gcode\n" -start_gcode = G28 ; home all axes\nG1 Z5 F5000 ; lift nozzle\n -support_material = 0 -support_material_angle = 0 -support_material_buildplate_only = 0 -support_material_contact_distance = 0.2 -support_material_enforce_layers = 0 -support_material_extruder = 1 -support_material_extrusion_width = 0 -support_material_interface_extruder = 1 -support_material_interface_extrusion_width = 0 -support_material_interface_layers = 3 -support_material_interface_spacing = 0 -support_material_interface_speed = 100% -support_material_max_layers = 0 -support_material_pattern = pillars -support_material_spacing = 2.5 -support_material_speed = 60 -support_material_threshold = 60% -temperature = 200 -thin_walls = 1 -threads = 16 -toolchange_gcode = -top_infill_extrusion_width = 0 -top_infill_pattern = rectilinear -top_solid_infill_speed = 15 -top_solid_layers = 3 -travel_speed = 130 -use_firmware_retraction = 0 -use_relative_e_distances = 0 -use_set_and_wait_bed = 0 -use_set_and_wait_extruder = 0 -use_volumetric_e = 0 -vibration_limit = 0 -wipe = 0 -xy_size_compensation = 0 -z_offset = 0 -z_steps_per_mm = 0 diff --git a/software/Slic3r-1.3.0.64bit/freeglut.dll b/software/Slic3r-1.3.0.64bit/freeglut.dll deleted file mode 100644 index bd65133f..00000000 Binary files a/software/Slic3r-1.3.0.64bit/freeglut.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/help.txt b/software/Slic3r-1.3.0.64bit/help.txt deleted file mode 100644 index ab1bbd96..00000000 --- a/software/Slic3r-1.3.0.64bit/help.txt +++ /dev/null @@ -1,307 +0,0 @@ -Slic3r 1.3.0 is a STL-to-GCODE translator for RepRap 3D printers -written by Alessandro Ranellucci - http://slic3r.org/ - -Usage: slic3r.pl [ OPTIONS ] [ file.stl ] [ file2.stl ] ... - - --help Output this usage screen and exit - --version Output the version of Slic3r and exit - --save Save configuration to the specified file - --load Load configuration from the specified file. It can be used - more than once to load options from multiple files. - --datadir Load and store settings at the given directory. - This is useful for maintaining different profiles or including - configurations from a network storage. - -o, --output File to output gcode to (by default, the file will be saved - into the same directory as the input file using the - --output-filename-format to generate the filename.) If a - directory is specified for this option, the output will - be saved under that directory, and the filename will be - generated by --output-filename-format. - - Non-slicing actions (no G-code will be generated): - --repair Repair given STL files and save them as _fixed.obj - --cut Cut given input files at given Z (relative) and export - them as _upper.stl and _lower.stl - --split Split the shells contained in given STL file into several STL files - --info Output information about the supplied file(s) and exit - - -j, --threads Number of threads to use - - GUI options: - --gui Forces the GUI launch instead of command line slicing (if you - supply a model file, it will be loaded into the plater) - --no-gui Forces the command line slicing instead of gui. - This takes precedence over --gui if both are present. - --autosave Automatically export current configuration to the specified file - - Output options: - --output-filename-format - Output file name format; all config options enclosed in brackets - will be replaced by their values, as well as [input_filename_base] - and [input_filename] (default: [input_filename_base].gcode) - --post-process Generated G-code will be processed with the supplied script; - call this more than once to process through multiple scripts. - --export-svg Export a SVG file containing slices instead of G-code. - -m, --merge If multiple files are supplied, they will be composed into a single - print rather than processed individually. - - Printer options: - --nozzle-diameter Diameter of nozzle in mm (default: 0.5) - --print-center Coordinates in mm of the point to center the print around - (default: 100,100) - --z-offset Additional height in mm to add to vertical coordinates - (+/-, default: 0) - --z-steps-per-mm Number of full steps per mm of the Z axis. Experimental feature for - preventing rounding issues. - --gcode-flavor The type of G-code to generate (reprap/teacup/repetier/makerware/sailfish/mach3/machinekit/smoothie/no-extrusion, - default: reprap) - --use-relative-e-distances Enable this to get relative E values (default: no) - --use-firmware-retraction Enable firmware-controlled retraction using G10/G11 (default: no) - --use-volumetric-e Express E in cubic millimeters and prepend M200 (default: no) - --gcode-arcs Use G2/G3 commands for native arcs (experimental, not supported - by all firmwares) - --gcode-comments Make G-code verbose by adding comments (default: no) - --vibration-limit Limit the frequency of moves on X and Y axes (Hz, set zero to disable; - default: 0) - --pressure-advance Adjust pressure using the experimental advance algorithm (K constant, - set zero to disable; default: 0) - - Filament options: - --filament-diameter Diameter in mm of your raw filament (default: 3) - --extrusion-multiplier - Change this to alter the amount of plastic extruded. There should be - very little need to change this value, which is only useful to - compensate for filament packing (default: 1) - --temperature Extrusion temperature in degree Celsius, set 0 to disable (default: 200) - --first-layer-temperature Extrusion temperature for the first layer, in degree Celsius, - set 0 to disable (default: same as --temperature) - --bed-temperature Heated bed temperature in degree Celsius, set 0 to disable (default: 0) - --first-layer-bed-temperature Heated bed temperature for the first layer, in degree Celsius, - set 0 to disable (default: same as --bed-temperature) - - Speed options: - --travel-speed Speed of non-print moves in mm/s (default: 130) - --perimeter-speed Speed of print moves for perimeters in mm/s (default: 60) - --small-perimeter-speed - Speed of print moves for small perimeters in mm/s or % over perimeter speed - (default: 15) - --external-perimeter-speed - Speed of print moves for the external perimeter in mm/s or % over perimeter speed - (default: 50%) - --infill-speed Speed of print moves in mm/s (default: 80) - --solid-infill-speed Speed of print moves for solid surfaces in mm/s or % over infill speed - (default: 20) - --top-solid-infill-speed Speed of print moves for top surfaces in mm/s or % over solid infill speed - (default: 15) - --support-material-speed - Speed of support material print moves in mm/s (default: 60) - --support-material-interface-speed - Speed of support material interface print moves in mm/s or % over support material - speed (default: 100%) - --bridge-speed Speed of bridge print moves in mm/s (default: 60) - --gap-fill-speed Speed of gap fill print moves in mm/s (default: 20) - --first-layer-speed Speed of print moves for bottom layer, expressed either as an absolute - value or as a percentage over normal speeds (default: 30) - - Acceleration options: - --perimeter-acceleration - Overrides firmware's default acceleration for perimeters. (mm/s^2, set zero - to disable; default: 0) - --infill-acceleration - Overrides firmware's default acceleration for infill. (mm/s^2, set zero - to disable; default: 0) - --bridge-acceleration - Overrides firmware's default acceleration for bridges. (mm/s^2, set zero - to disable; default: 0) - --first-layer-acceleration - Overrides firmware's default acceleration for first layer. (mm/s^2, set zero - to disable; default: 0) - --default-acceleration - Acceleration will be reset to this value after the specific settings above - have been applied. (mm/s^2, set zero to disable; default: 0) - - Accuracy options: - --layer-height Layer height in mm (default: 0.3) - --first-layer-height Layer height for first layer (mm or %, default: 0.35) - --infill-every-layers - Infill every N layers (default: 1) - --solid-infill-every-layers - Force a solid layer every N layers (default: 0) - - Print options: - --perimeters Number of perimeters/horizontal skins (range: 0+, default: 3) - --top-solid-layers Number of solid layers to do for top surfaces (range: 0+, default: 3) - --bottom-solid-layers Number of solid layers to do for bottom surfaces (range: 0+, default: 3) - --solid-layers Shortcut for setting the two options above at once - --fill-density Infill density (range: 0%-100%, default: 20%) - --fill-angle Infill angle in degrees (range: 0-90, default: 45) - --fill-pattern Pattern to use to fill non-solid layers (default: stars) - --fill-gaps Fill gaps with single passes (default: yes) - --external-infill-pattern Pattern to use to fill solid layers. - (Shortcut for --top-infill-pattern and --bottom-infill-pattern) - --top-infill-pattern Pattern to use to fill top solid layers (default: rectilinear) - --bottom-infill-pattern Pattern to use to fill bottom solid layers (default: rectilinear) - --start-gcode Load initial G-code from the supplied file. This will overwrite - the default command (home all axes [G28]). - --end-gcode Load final G-code from the supplied file. This will overwrite - the default commands (turn off temperature [M104 S0], - home X axis [G28 X], disable motors [M84]). - --before-layer-gcode Load before-layer-change G-code from the supplied file (default: nothing). - --layer-gcode Load layer-change G-code from the supplied file (default: nothing). - --toolchange-gcode Load tool-change G-code from the supplied file (default: nothing). - --seam-position Position of loop starting points (random/nearest/aligned, default: aligned). - --external-perimeters-first Reverse perimeter order. (default: no) - --spiral-vase Experimental option to raise Z gradually when printing single-walled vases - (default: no) - --only-retract-when-crossing-perimeters - Disable retraction when travelling between infill paths inside the same island. - (default: no) - --solid-infill-below-area - Force solid infill when a region has a smaller area than this threshold - (mm^2, default: 70) - --infill-only-where-needed - Only infill under ceilings (default: no) - --infill-first Make infill before perimeters (default: no) - - Quality options (slower slicing): - --extra-perimeters Add more perimeters when needed (default: yes) - --avoid-crossing-perimeters Optimize travel moves so that no perimeters are crossed (default: no) - --thin-walls Detect single-width walls (default: yes) - --detect-bridging-perimeters Detect bridging perimeters and apply bridge flow, speed and fan - (default: yes) - - Support material options: - --support-material Generate support material for overhangs - --support-material-threshold - Overhang threshold angle (range: 0-90, set 0 for automatic detection, - default: 60%) - --support-material-pattern - Pattern to use for support material (default: pillars) - --support-material-spacing - Spacing between pattern lines (mm, default: 2.5) - --support-material-angle - Support material angle in degrees (range: 0-90, default: 0) - --support-material-contact-distance - Vertical distance between object and support material (0+, default: 0.2) - --support-material-interface-layers - Number of perpendicular layers between support material and object (0+, default: 3) - --support-material-interface-spacing - Spacing between interface pattern lines (mm, set 0 to get a solid layer, default: 0) - --raft-layers Number of layers to raise the printed objects by (range: 0+, default: 0) - --support-material-enforce-layers - Enforce support material on the specified number of layers from bottom, - regardless of --support-material and threshold (0+, default: 0) - --support-material-buildplate-only - Only create support if it lies on a build plate. Don't create support on a print. (default: no) - --dont-support-bridges - Experimental option for preventing support material from being generated under bridged areas (default: yes) - - Retraction options: - --retract-length Length of retraction in mm when pausing extrusion (default: 2) - --retract-speed Speed for retraction in mm/s (default: 40) - --retract-restart-extra - Additional amount of filament in mm to push after - compensating retraction (default: 0) - --retract-before-travel - Only retract before travel moves of this length in mm (default: 2) - --retract-lift Lift Z by the given distance in mm when retracting (default: 0) - --retract-lift-above Only lift Z when above the specified height (default: 0) - --retract-lift-below Only lift Z when below the specified height (default: 0) - --retract-layer-change - Enforce a retraction before each Z move (default: no) - --wipe Wipe the nozzle while doing a retraction (default: no) - - Retraction options for multi-extruder setups: - --retract-length-toolchange - Length of retraction in mm when disabling tool (default: 10) - --retract-restart-extra-toolchange - Additional amount of filament in mm to push after - switching tool (default: 0) - - Cooling options: - --cooling Enable fan and cooling control - --min-fan-speed Minimum fan speed (default: 35%) - --max-fan-speed Maximum fan speed (default: 100%) - --bridge-fan-speed Fan speed to use when bridging (default: 100%) - --fan-below-layer-time Enable fan if layer print time is below this approximate number - of seconds (default: 60) - --slowdown-below-layer-time Slow down if layer print time is below this approximate number - of seconds (default: 5) - --min-print-speed Minimum print speed (mm/s, default: 10) - --disable-fan-first-layers Disable fan for the first N layers (default: 3) - --fan-always-on Keep fan always on at min fan speed, even for layers that don't need - cooling - - Skirt options: - --skirts Number of skirts to draw (0+, default: 1) - --skirt-distance Distance in mm between innermost skirt and object - (default: 6) - --skirt-height Height of skirts to draw (expressed in layers, 0+, default: 1) - --min-skirt-length Generate no less than the number of loops required to consume this length - of filament on the first layer, for each extruder (mm, 0+, default: 0) - --brim-width Width of the brim that will get added to each object to help adhesion - (mm, default: 0) - --interior-brim-width Width of the brim that will get printed inside object holes to help adhesion - (mm, default: 0) - - Transform options: - --scale Factor for scaling input object (default: 1) - --rotate Rotation angle in degrees (0-360, default: 0) - --duplicate Number of items with auto-arrange (1+, default: 1) - --duplicate-grid Number of items with grid arrangement (default: 1,1) - --duplicate-distance Distance in mm between copies (default: 6) - --dont-arrange Don't arrange the objects on the build plate. The model coordinates - define the absolute positions on the build plate. - The option --print-center will be ignored. - --xy-size-compensation - Grow/shrink objects by the configured absolute distance (mm, default: 0) - - Sequential printing options: - --complete-objects When printing multiple objects and/or copies, complete each one before - starting the next one; watch out for extruder collisions (default: no) - --extruder-clearance-radius Radius in mm above which extruder won't collide with anything - (default: 20) - --extruder-clearance-height Maximum vertical extruder depth; i.e. vertical distance from - extruder tip and carriage bottom (default: 20) - - Miscellaneous options: - --notes Notes to be added as comments to the output file - --resolution Minimum detail resolution (mm, set zero for full resolution, default: 0) - - Flow options (advanced): - --extrusion-width Set extrusion width manually; it accepts either an absolute value in mm - (like 0.65) or a percentage over layer height (like 200%) - --first-layer-extrusion-width - Set a different extrusion width for first layer - --perimeter-extrusion-width - Set a different extrusion width for perimeters - --external-perimeter-extrusion-width - Set a different extrusion width for external perimeters - --infill-extrusion-width - Set a different extrusion width for infill - --solid-infill-extrusion-width - Set a different extrusion width for solid infill - --top-infill-extrusion-width - Set a different extrusion width for top infill - --support-material-extrusion-width - Set a different extrusion width for support material - --infill-overlap Overlap between infill and perimeters (default: 55%) - --bridge-flow-ratio Multiplier for extrusion when bridging (> 0, default: 1) - - Multiple extruder options: - --extruder-offset Offset of each extruder, if firmware doesn't handle the displacement - (can be specified multiple times, default: 0x0) - --perimeter-extruder - Extruder to use for perimeters and brim (1+, default: 1) - --infill-extruder Extruder to use for infill (1+, default: 1) - --solid-infill-extruder Extruder to use for solid infill (1+, default: 1) - --support-material-extruder - Extruder to use for support material, raft and skirt (1+, default: 1) - --support-material-interface-extruder - Extruder to use for support material interface (1+, default: 1) - --ooze-prevention Drop temperature and park extruders outside a full skirt for automatic wiping - (default: no) - --standby-temperature-delta - Temperature difference to be applied when an extruder is not active and - --ooze-prevention is enabled (default: -5) - diff --git a/software/Slic3r-1.3.0.64bit/lib/AutoLoader.pm b/software/Slic3r-1.3.0.64bit/lib/AutoLoader.pm deleted file mode 100644 index 6ba3d05e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/AutoLoader.pm +++ /dev/null @@ -1,208 +0,0 @@ -#line 1 "AutoLoader.pm" -package AutoLoader; - -use strict; -use 5.006_001; - -our($VERSION, $AUTOLOAD); - -my $is_dosish; -my $is_epoc; -my $is_vms; -my $is_macos; - -BEGIN { - $is_dosish = $^O eq 'cygwin' || $^O eq 'dos' || $^O eq 'os2' || $^O eq 'MSWin32' || $^O eq 'NetWare'; - $is_epoc = $^O eq 'epoc'; - $is_vms = $^O eq 'VMS'; - $is_macos = $^O eq 'MacOS'; - $VERSION = '5.74'; -} - -AUTOLOAD { - my $sub = $AUTOLOAD; - autoload_sub($sub); - goto &$sub; -} - -sub autoload_sub { - my $sub = shift; - - my $filename = AutoLoader::find_filename( $sub ); - - my $save = $@; - local $!; # Do not munge the value. - eval { local $SIG{__DIE__}; require $filename }; - if ($@) { - if (substr($sub,-9) eq '::DESTROY') { - no strict 'refs'; - *$sub = sub {}; - $@ = undef; - } elsif ($@ =~ /^Can't locate/) { - # The load might just have failed because the filename was too - # long for some old SVR3 systems which treat long names as errors. - # If we can successfully truncate a long name then it's worth a go. - # There is a slight risk that we could pick up the wrong file here - # but autosplit should have warned about that when splitting. - if ($filename =~ s/(\w{12,})\.al$/substr($1,0,11).".al"/e){ - eval { local $SIG{__DIE__}; require $filename }; - } - } - if ($@){ - $@ =~ s/ at .*\n//; - my $error = $@; - require Carp; - Carp::croak($error); - } - } - $@ = $save; - - return 1; -} - -sub find_filename { - my $sub = shift; - my $filename; - # Braces used to preserve $1 et al. - { - # Try to find the autoloaded file from the package-qualified - # name of the sub. e.g., if the sub needed is - # Getopt::Long::GetOptions(), then $INC{Getopt/Long.pm} is - # something like '/usr/lib/perl5/Getopt/Long.pm', and the - # autoload file is '/usr/lib/perl5/auto/Getopt/Long/GetOptions.al'. - # - # However, if @INC is a relative path, this might not work. If, - # for example, @INC = ('lib'), then $INC{Getopt/Long.pm} is - # 'lib/Getopt/Long.pm', and we want to require - # 'auto/Getopt/Long/GetOptions.al' (without the leading 'lib'). - # In this case, we simple prepend the 'auto/' and let the - # C take care of the searching for us. - - my ($pkg,$func) = ($sub =~ /(.*)::([^:]+)$/); - $pkg =~ s#::#/#g; - if (defined($filename = $INC{"$pkg.pm"})) { - if ($is_macos) { - $pkg =~ tr#/#:#; - $filename = undef - unless $filename =~ s#^(.*)$pkg\.pm\z#$1auto:$pkg:$func.al#s; - } else { - $filename = undef - unless $filename =~ s#^(.*)$pkg\.pm\z#$1auto/$pkg/$func.al#s; - } - - # if the file exists, then make sure that it is a - # a fully anchored path (i.e either '/usr/lib/auto/foo/bar.al', - # or './lib/auto/foo/bar.al'. This avoids C searching - # (and failing) to find the 'lib/auto/foo/bar.al' because it - # looked for 'lib/lib/auto/foo/bar.al', given @INC = ('lib'). - - if (defined $filename and -r $filename) { - unless ($filename =~ m|^/|s) { - if ($is_dosish) { - unless ($filename =~ m{^([a-z]:)?[\\/]}is) { - if ($^O ne 'NetWare') { - $filename = "./$filename"; - } else { - $filename = "$filename"; - } - } - } - elsif ($is_epoc) { - unless ($filename =~ m{^([a-z?]:)?[\\/]}is) { - $filename = "./$filename"; - } - } - elsif ($is_vms) { - # XXX todo by VMSmiths - $filename = "./$filename"; - } - elsif (!$is_macos) { - $filename = "./$filename"; - } - } - } - else { - $filename = undef; - } - } - unless (defined $filename) { - # let C do the searching - $filename = "auto/$sub.al"; - $filename =~ s#::#/#g; - } - } - return $filename; -} - -sub import { - my $pkg = shift; - my $callpkg = caller; - - # - # Export symbols, but not by accident of inheritance. - # - - if ($pkg eq 'AutoLoader') { - if ( @_ and $_[0] =~ /^&?AUTOLOAD$/ ) { - no strict 'refs'; - *{ $callpkg . '::AUTOLOAD' } = \&AUTOLOAD; - } - } - - # - # Try to find the autosplit index file. Eg., if the call package - # is POSIX, then $INC{POSIX.pm} is something like - # '/usr/local/lib/perl5/POSIX.pm', and the autosplit index file is in - # '/usr/local/lib/perl5/auto/POSIX/autosplit.ix', so we require that. - # - # However, if @INC is a relative path, this might not work. If, - # for example, @INC = ('lib'), then - # $INC{POSIX.pm} is 'lib/POSIX.pm', and we want to require - # 'auto/POSIX/autosplit.ix' (without the leading 'lib'). - # - - (my $calldir = $callpkg) =~ s#::#/#g; - my $path = $INC{$calldir . '.pm'}; - if (defined($path)) { - # Try absolute path name, but only eval it if the - # transformation from module path to autosplit.ix path - # succeeded! - my $replaced_okay; - if ($is_macos) { - (my $malldir = $calldir) =~ tr#/#:#; - $replaced_okay = ($path =~ s#^(.*)$malldir\.pm\z#$1auto:$malldir:autosplit.ix#s); - } else { - $replaced_okay = ($path =~ s#^(.*)$calldir\.pm\z#$1auto/$calldir/autosplit.ix#); - } - - eval { require $path; } if $replaced_okay; - # If that failed, try relative path with normal @INC searching. - if (!$replaced_okay or $@) { - $path ="auto/$calldir/autosplit.ix"; - eval { require $path; }; - } - if ($@) { - my $error = $@; - require Carp; - Carp::carp($error); - } - } -} - -sub unimport { - my $callpkg = caller; - - no strict 'refs'; - - for my $exported (qw( AUTOLOAD )) { - my $symname = $callpkg . '::' . $exported; - undef *{ $symname } if \&{ $symname } == \&{ $exported }; - *{ $symname } = \&{ $symname }; - } -} - -1; - -__END__ - -#line 454 diff --git a/software/Slic3r-1.3.0.64bit/lib/B.pm b/software/Slic3r-1.3.0.64bit/lib/B.pm deleted file mode 100644 index 9dd9d9f1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/B.pm +++ /dev/null @@ -1,282 +0,0 @@ -#line 1 "B.pm" -# B.pm -# -# Copyright (c) 1996, 1997, 1998 Malcolm Beattie -# -# You may distribute under the terms of either the GNU General Public -# License or the Artistic License, as specified in the README file. -# -package B; -use strict; - -require Exporter; -@B::ISA = qw(Exporter); - -# walkoptree_slow comes from B.pm (you are there), -# walkoptree comes from B.xs - -BEGIN { - $B::VERSION = '1.62'; - @B::EXPORT_OK = (); - - # Our BOOT code needs $VERSION set, and will append to @EXPORT_OK. - # Want our constants loaded before the compiler meets OPf_KIDS below, as - # the combination of having the constant stay a Proxy Constant Subroutine - # and its value being inlined saves a little over .5K - - require XSLoader; - XSLoader::load(); -} - -push @B::EXPORT_OK, (qw(minus_c ppname save_BEGINs - class peekop cast_I32 cstring cchar hash threadsv_names - main_root main_start main_cv svref_2object opnumber - sub_generation amagic_generation perlstring - walkoptree_slow walkoptree walkoptree_exec walksymtable - parents comppadlist sv_undef compile_stats timing_info - begin_av init_av check_av end_av regex_padav dowarn - defstash curstash warnhook diehook inc_gv @optype - @specialsv_name unitcheck_av safename)); - -@B::SV::ISA = 'B::OBJECT'; -@B::NULL::ISA = 'B::SV'; -@B::PV::ISA = 'B::SV'; -@B::IV::ISA = 'B::SV'; -@B::NV::ISA = 'B::SV'; -# RV is eliminated with 5.11.0, but effectively is a specialisation of IV now. -@B::RV::ISA = $] >= 5.011 ? 'B::IV' : 'B::SV'; -@B::PVIV::ISA = qw(B::PV B::IV); -@B::PVNV::ISA = qw(B::PVIV B::NV); -@B::PVMG::ISA = 'B::PVNV'; -@B::REGEXP::ISA = 'B::PVMG' if $] >= 5.011; -@B::INVLIST::ISA = 'B::PV' if $] >= 5.019; -@B::PVLV::ISA = 'B::GV'; -@B::BM::ISA = 'B::GV'; -@B::AV::ISA = 'B::PVMG'; -@B::GV::ISA = 'B::PVMG'; -@B::HV::ISA = 'B::PVMG'; -@B::CV::ISA = 'B::PVMG'; -@B::IO::ISA = 'B::PVMG'; -@B::FM::ISA = 'B::CV'; - -@B::OP::ISA = 'B::OBJECT'; -@B::UNOP::ISA = 'B::OP'; -@B::UNOP_AUX::ISA = 'B::UNOP'; -@B::BINOP::ISA = 'B::UNOP'; -@B::LOGOP::ISA = 'B::UNOP'; -@B::LISTOP::ISA = 'B::BINOP'; -@B::SVOP::ISA = 'B::OP'; -@B::PADOP::ISA = 'B::OP'; -@B::PVOP::ISA = 'B::OP'; -@B::LOOP::ISA = 'B::LISTOP'; -@B::PMOP::ISA = 'B::LISTOP'; -@B::COP::ISA = 'B::OP'; -@B::METHOP::ISA = 'B::OP'; - -@B::SPECIAL::ISA = 'B::OBJECT'; - -@B::optype = qw(OP UNOP BINOP LOGOP LISTOP PMOP SVOP PADOP PVOP LOOP COP - METHOP UNOP_AUX); -# bytecode.pl contained the following comment: -# Nullsv *must* come first in the following so that the condition -# ($$sv == 0) can continue to be used to test (sv == Nullsv). -@B::specialsv_name = qw(Nullsv &PL_sv_undef &PL_sv_yes &PL_sv_no - (SV*)pWARN_ALL (SV*)pWARN_NONE (SV*)pWARN_STD); - -{ - # Stop "-w" from complaining about the lack of a real B::OBJECT class - package B::OBJECT; -} - -sub B::GV::SAFENAME { - safename(shift()->NAME); -} - -sub safename { - my $name = shift; - - # The regex below corresponds to the isCONTROLVAR macro - # from toke.c - - $name =~ s/^\c?/^?/ - or $name =~ s/^([\cA-\cZ\c\\c[\c]\c_\c^])/ - "^" . chr( utf8::unicode_to_native( 64 ^ ord($1) ))/e; - - # When we say unicode_to_native we really mean ascii_to_native, - # which matters iff this is a non-ASCII platform (EBCDIC). '\c?' would - # not have to be special cased, except for non-ASCII. - - return $name; -} - -sub B::IV::int_value { - my ($self) = @_; - return (($self->FLAGS() & SVf_IVisUV()) ? $self->UVX : $self->IV); -} - -sub B::NULL::as_string() {""} -*B::IV::as_string = \*B::IV::int_value; -*B::PV::as_string = \*B::PV::PV; - -# The input typemap checking makes no distinction between different SV types, -# so the XS body will generate the same C code, despite the different XS -# "types". So there is no change in behaviour from doing "newXS" like this, -# compared with the old approach of having a (near) duplicate XS body. -# We should fix the typemap checking. -*B::IV::RV = \*B::PV::RV if $] > 5.012; - -my $debug; -my $op_count = 0; -my @parents = (); - -sub debug { - my ($class, $value) = @_; - $debug = $value; - walkoptree_debug($value); -} - -sub class { - my $obj = shift; - my $name = ref $obj; - $name =~ s/^.*:://; - return $name; -} - -sub parents { \@parents } - -# For debugging -sub peekop { - my $op = shift; - return sprintf("%s (0x%x) %s", class($op), $$op, $op->name); -} - -sub walkoptree_slow { - my($op, $method, $level) = @_; - $op_count++; # just for statistics - $level ||= 0; - warn(sprintf("walkoptree: %d. %s\n", $level, peekop($op))) if $debug; - $op->$method($level) if $op->can($method); - if ($$op && ($op->flags & OPf_KIDS)) { - my $kid; - unshift(@parents, $op); - for ($kid = $op->first; $$kid; $kid = $kid->sibling) { - walkoptree_slow($kid, $method, $level + 1); - } - shift @parents; - } - if (class($op) eq 'PMOP' - && ref($op->pmreplroot) - && ${$op->pmreplroot} - && $op->pmreplroot->isa( 'B::OP' )) - { - unshift(@parents, $op); - walkoptree_slow($op->pmreplroot, $method, $level + 1); - shift @parents; - } -} - -sub compile_stats { - return "Total number of OPs processed: $op_count\n"; -} - -sub timing_info { - my ($sec, $min, $hr) = localtime; - my ($user, $sys) = times; - sprintf("%02d:%02d:%02d user=$user sys=$sys", - $hr, $min, $sec, $user, $sys); -} - -my %symtable; - -sub clearsym { - %symtable = (); -} - -sub savesym { - my ($obj, $value) = @_; -# warn(sprintf("savesym: sym_%x => %s\n", $$obj, $value)); # debug - $symtable{sprintf("sym_%x", $$obj)} = $value; -} - -sub objsym { - my $obj = shift; - return $symtable{sprintf("sym_%x", $$obj)}; -} - -sub walkoptree_exec { - my ($op, $method, $level) = @_; - $level ||= 0; - my ($sym, $ppname); - my $prefix = " " x $level; - for (; $$op; $op = $op->next) { - $sym = objsym($op); - if (defined($sym)) { - print $prefix, "goto $sym\n"; - return; - } - savesym($op, sprintf("%s (0x%lx)", class($op), $$op)); - $op->$method($level); - $ppname = $op->name; - if ($ppname =~ - /^(d?or(assign)?|and(assign)?|mapwhile|grepwhile|entertry|range|cond_expr)$/) - { - print $prefix, uc($1), " => {\n"; - walkoptree_exec($op->other, $method, $level + 1); - print $prefix, "}\n"; - } elsif ($ppname eq "match" || $ppname eq "subst") { - my $pmreplstart = $op->pmreplstart; - if ($$pmreplstart) { - print $prefix, "PMREPLSTART => {\n"; - walkoptree_exec($pmreplstart, $method, $level + 1); - print $prefix, "}\n"; - } - } elsif ($ppname eq "substcont") { - print $prefix, "SUBSTCONT => {\n"; - walkoptree_exec($op->other->pmreplstart, $method, $level + 1); - print $prefix, "}\n"; - $op = $op->other; - } elsif ($ppname eq "enterloop") { - print $prefix, "REDO => {\n"; - walkoptree_exec($op->redoop, $method, $level + 1); - print $prefix, "}\n", $prefix, "NEXT => {\n"; - walkoptree_exec($op->nextop, $method, $level + 1); - print $prefix, "}\n", $prefix, "LAST => {\n"; - walkoptree_exec($op->lastop, $method, $level + 1); - print $prefix, "}\n"; - } elsif ($ppname eq "subst") { - my $replstart = $op->pmreplstart; - if ($$replstart) { - print $prefix, "SUBST => {\n"; - walkoptree_exec($replstart, $method, $level + 1); - print $prefix, "}\n"; - } - } - } -} - -sub walksymtable { - my ($symref, $method, $recurse, $prefix) = @_; - my $sym; - my $ref; - my $fullname; - no strict 'refs'; - $prefix = '' unless defined $prefix; - foreach my $sym ( sort keys %$symref ) { - $ref= $symref->{$sym}; - $fullname = "*main::".$prefix.$sym; - if ($sym =~ /::$/) { - $sym = $prefix . $sym; - if (svref_2object(\*$sym)->NAME ne "main::" && $sym ne "::" && &$recurse($sym)) { - walksymtable(\%$fullname, $method, $recurse, $sym); - } - } else { - svref_2object(\*$fullname)->$method(); - } - } -} - -1; - -__END__ - -#line 1419 diff --git a/software/Slic3r-1.3.0.64bit/lib/B/Deparse.pm b/software/Slic3r-1.3.0.64bit/lib/B/Deparse.pm deleted file mode 100644 index b1ebd47a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/B/Deparse.pm +++ /dev/null @@ -1,5779 +0,0 @@ -#line 1 "B/Deparse.pm" -# B::Deparse.pm -# Copyright (c) 1998-2000, 2002, 2003, 2004, 2005, 2006 Stephen McCamant. -# All rights reserved. -# This module is free software; you can redistribute and/or modify -# it under the same terms as Perl itself. - -# This is based on the module of the same name by Malcolm Beattie, -# but essentially none of his code remains. - -package B::Deparse; -use Carp; -use B qw(class main_root main_start main_cv svref_2object opnumber perlstring - OPf_WANT OPf_WANT_VOID OPf_WANT_SCALAR OPf_WANT_LIST - OPf_KIDS OPf_REF OPf_STACKED OPf_SPECIAL OPf_MOD OPf_PARENS - OPpLVAL_INTRO OPpOUR_INTRO OPpENTERSUB_AMPER OPpSLICE OPpCONST_BARE - OPpTRANS_SQUASH OPpTRANS_DELETE OPpTRANS_COMPLEMENT OPpTARGET_MY - OPpEXISTS_SUB OPpSORT_NUMERIC OPpSORT_INTEGER OPpREPEAT_DOLIST - OPpSORT_REVERSE OPpMULTIDEREF_EXISTS OPpMULTIDEREF_DELETE - SVf_IOK SVf_NOK SVf_ROK SVf_POK SVpad_OUR SVf_FAKE SVs_RMG SVs_SMG - SVs_PADTMP SVpad_TYPED - CVf_METHOD CVf_LVALUE - PMf_KEEP PMf_GLOBAL PMf_CONTINUE PMf_EVAL PMf_ONCE - PMf_MULTILINE PMf_SINGLELINE PMf_FOLD PMf_EXTENDED PMf_EXTENDED_MORE - PADNAMEt_OUTER - MDEREF_reload - MDEREF_AV_pop_rv2av_aelem - MDEREF_AV_gvsv_vivify_rv2av_aelem - MDEREF_AV_padsv_vivify_rv2av_aelem - MDEREF_AV_vivify_rv2av_aelem - MDEREF_AV_padav_aelem - MDEREF_AV_gvav_aelem - MDEREF_HV_pop_rv2hv_helem - MDEREF_HV_gvsv_vivify_rv2hv_helem - MDEREF_HV_padsv_vivify_rv2hv_helem - MDEREF_HV_vivify_rv2hv_helem - MDEREF_HV_padhv_helem - MDEREF_HV_gvhv_helem - MDEREF_ACTION_MASK - MDEREF_INDEX_none - MDEREF_INDEX_const - MDEREF_INDEX_padsv - MDEREF_INDEX_gvsv - MDEREF_INDEX_MASK - MDEREF_FLAG_last - MDEREF_MASK - MDEREF_SHIFT - ); - -$VERSION = '1.37'; -use strict; -use vars qw/$AUTOLOAD/; -use warnings (); -require feature; - -BEGIN { - # List version-specific constants here. - # Easiest way to keep this code portable between version looks to - # be to fake up a dummy constant that will never actually be true. - foreach (qw(OPpSORT_INPLACE OPpSORT_DESCEND OPpITER_REVERSED OPpCONST_NOVER - OPpPAD_STATE PMf_SKIPWHITE RXf_SKIPWHITE - PMf_CHARSET PMf_KEEPCOPY PMf_NOCAPTURE CVf_ANONCONST - CVf_LOCKED OPpREVERSE_INPLACE OPpSUBSTR_REPL_FIRST - PMf_NONDESTRUCT OPpCONST_ARYBASE OPpEVAL_BYTES - OPpLVREF_TYPE OPpLVREF_SV OPpLVREF_AV OPpLVREF_HV - OPpLVREF_CV OPpLVREF_ELEM SVpad_STATE)) { - eval { B->import($_) }; - no strict 'refs'; - *{$_} = sub () {0} unless *{$_}{CODE}; - } -} - -# Changes between 0.50 and 0.51: -# - fixed nulled leave with live enter in sort { } -# - fixed reference constants (\"str") -# - handle empty programs gracefully -# - handle infinite loops (for (;;) {}, while (1) {}) -# - differentiate between 'for my $x ...' and 'my $x; for $x ...' -# - various minor cleanups -# - moved globals into an object -# - added '-u', like B::C -# - package declarations using cop_stash -# - subs, formats and code sorted by cop_seq -# Changes between 0.51 and 0.52: -# - added pp_threadsv (special variables under USE_5005THREADS) -# - added documentation -# Changes between 0.52 and 0.53: -# - many changes adding precedence contexts and associativity -# - added '-p' and '-s' output style options -# - various other minor fixes -# Changes between 0.53 and 0.54: -# - added support for new 'for (1..100)' optimization, -# thanks to Gisle Aas -# Changes between 0.54 and 0.55: -# - added support for new qr// construct -# - added support for new pp_regcreset OP -# Changes between 0.55 and 0.56: -# - tested on base/*.t, cmd/*.t, comp/*.t, io/*.t -# - fixed $# on non-lexicals broken in last big rewrite -# - added temporary fix for change in opcode of OP_STRINGIFY -# - fixed problem in 0.54's for() patch in 'for (@ary)' -# - fixed precedence in conditional of ?: -# - tweaked list paren elimination in 'my($x) = @_' -# - made continue-block detection trickier wrt. null ops -# - fixed various prototype problems in pp_entersub -# - added support for sub prototypes that never get GVs -# - added unquoting for special filehandle first arg in truncate -# - print doubled rv2gv (a bug) as '*{*GV}' instead of illegal '**GV' -# - added semicolons at the ends of blocks -# - added -l '#line' declaration option -- fixes cmd/subval.t 27,28 -# Changes between 0.56 and 0.561: -# - fixed multiply-declared my var in pp_truncate (thanks to Sarathy) -# - used new B.pm symbolic constants (done by Nick Ing-Simmons) -# Changes between 0.561 and 0.57: -# - stylistic changes to symbolic constant stuff -# - handled scope in s///e replacement code -# - added unquote option for expanding "" into concats, etc. -# - split method and proto parts of pp_entersub into separate functions -# - various minor cleanups -# Changes after 0.57: -# - added parens in \&foo (patch by Albert Dvornik) -# Changes between 0.57 and 0.58: -# - fixed '0' statements that weren't being printed -# - added methods for use from other programs -# (based on patches from James Duncan and Hugo van der Sanden) -# - added -si and -sT to control indenting (also based on a patch from Hugo) -# - added -sv to print something else instead of '???' -# - preliminary version of utf8 tr/// handling -# Changes after 0.58: -# - uses of $op->ppaddr changed to new $op->name (done by Sarathy) -# - added support for Hugo's new OP_SETSTATE (like nextstate) -# Changes between 0.58 and 0.59 -# - added support for Chip's OP_METHOD_NAMED -# - added support for Ilya's OPpTARGET_MY optimization -# - elided arrows before '()' subscripts when possible -# Changes between 0.59 and 0.60 -# - support for method attributes was added -# - some warnings fixed -# - separate recognition of constant subs -# - rewrote continue block handling, now recognizing for loops -# - added more control of expanding control structures -# Changes between 0.60 and 0.61 (mostly by Robin Houston) -# - many bug-fixes -# - support for pragmas and 'use' -# - support for the little-used $[ variable -# - support for __DATA__ sections -# - UTF8 support -# - BEGIN, CHECK, INIT and END blocks -# - scoping of subroutine declarations fixed -# - compile-time output from the input program can be suppressed, so that the -# output is just the deparsed code. (a change to O.pm in fact) -# - our() declarations -# - *all* the known bugs are now listed in the BUGS section -# - comprehensive test mechanism (TEST -deparse) -# Changes between 0.62 and 0.63 (mostly by Rafael Garcia-Suarez) -# - bug-fixes -# - new switch -P -# - support for command-line switches (-l, -0, etc.) -# Changes between 0.63 and 0.64 -# - support for //, CHECK blocks, and assertions -# - improved handling of foreach loops and lexicals -# - option to use Data::Dumper for constants -# - more bug fixes -# - discovered lots more bugs not yet fixed -# -# ... -# -# Changes between 0.72 and 0.73 -# - support new switch constructs - -# Todo: -# (See also BUGS section at the end of this file) -# -# - finish tr/// changes -# - add option for even more parens (generalize \&foo change) -# - left/right context -# - copy comments (look at real text with $^P?) -# - avoid semis in one-statement blocks -# - associativity of &&=, ||=, ?: -# - ',' => '=>' (auto-unquote?) -# - break long lines ("\r" as discretionary break?) -# - configurable syntax highlighting: ANSI color, HTML, TeX, etc. -# - more style options: brace style, hex vs. octal, quotes, ... -# - print big ints as hex/octal instead of decimal (heuristic?) -# - handle 'my $x if 0'? -# - version using op_next instead of op_first/sibling? -# - avoid string copies (pass arrays, one big join?) -# - here-docs? - -# Current test.deparse failures -# comp/hints 6 - location of BEGIN blocks wrt. block openings -# run/switchI 1 - missing -I switches entirely -# perl -Ifoo -e 'print @INC' -# op/caller 2 - warning mask propagates backwards before warnings::register -# 'use warnings; BEGIN {${^WARNING_BITS} eq "U"x12;} use warnings::register' -# op/getpid 2 - can't assign to shared my() declaration (threads only) -# 'my $x : shared = 5' -# op/override 7 - parens on overridden require change v-string interpretation -# 'BEGIN{*CORE::GLOBAL::require=sub {}} require v5.6' -# c.f. 'BEGIN { *f = sub {0} }; f 2' -# op/pat 774 - losing Unicode-ness of Latin1-only strings -# 'use charnames ":short"; $x="\N{latin:a with acute}"' -# op/recurse 12 - missing parens on recursive call makes it look like method -# 'sub f { f($x) }' -# op/subst 90 - inconsistent handling of utf8 under "use utf8" -# op/taint 29 - "use re 'taint'" deparsed in the wrong place wrt. block open -# op/tiehandle compile - "use strict" deparsed in the wrong place -# uni/tr_ several -# ext/B/t/xref 11 - line numbers when we add newlines to one-line subs -# ext/Data/Dumper/t/dumper compile -# ext/DB_file/several -# ext/Encode/several -# ext/Ernno/Errno warnings -# ext/IO/lib/IO/t/io_sel 23 -# ext/PerlIO/t/encoding compile -# ext/POSIX/t/posix 6 -# ext/Socket/Socket 8 -# ext/Storable/t/croak compile -# lib/Attribute/Handlers/t/multi compile -# lib/bignum/ several -# lib/charnames 35 -# lib/constant 32 -# lib/English 40 -# lib/ExtUtils/t/bytes 4 -# lib/File/DosGlob compile -# lib/Filter/Simple/t/data 1 -# lib/Math/BigInt/t/constant 1 -# lib/Net/t/config Deparse-warning -# lib/overload compile -# lib/Switch/ several -# lib/Symbol 4 -# lib/Test/Simple several -# lib/Term/Complete -# lib/Tie/File/t/29_downcopy 5 -# lib/vars 22 - -# Object fields: -# -# in_coderef2text: -# True when deparsing via $deparse->coderef2text; false when deparsing the -# main program. -# -# avoid_local: -# (local($a), local($b)) and local($a, $b) have the same internal -# representation but the short form looks better. We notice we can -# use a large-scale local when checking the list, but need to prevent -# individual locals too. This hash holds the addresses of OPs that -# have already had their local-ness accounted for. The same thing -# is done with my(). -# -# curcv: -# CV for current sub (or main program) being deparsed -# -# curcvlex: -# Cached hash of lexical variables for curcv: keys are -# names prefixed with "m" or "o" (representing my/our), and -# each value is an array with two elements indicating the cop_seq -# of scopes in which a var of that name is valid and a third ele- -# ment referencing the pad name. -# -# curcop: -# COP for statement being deparsed -# -# curstash: -# name of the current package for deparsed code -# -# subs_todo: -# array of [cop_seq, CV, is_format?, name] for subs and formats we still -# want to deparse. The fourth element is a pad name thingy for lexical -# subs or a string for special blocks. For other subs, it is undef. For -# lexical subs, CV may be undef, indicating a stub declaration. -# -# protos_todo: -# as above, but [name, prototype] for subs that never got a GV -# -# subs_done, forms_done: -# keys are addresses of GVs for subs and formats we've already -# deparsed (or at least put into subs_todo) -# -# subs_declared -# keys are names of subs for which we've printed declarations. -# That means we can omit parentheses from the arguments. It also means we -# need to put CORE:: on core functions of the same name. -# -# in_subst_repl -# True when deparsing the replacement part of a substitution. -# -# in_refgen -# True when deparsing the argument to \. -# -# parens: -p -# linenums: -l -# unquote: -q -# cuddle: ' ' or '\n', depending on -sC -# indent_size: -si -# use_tabs: -sT -# ex_const: -sv - -# A little explanation of how precedence contexts and associativity -# work: -# -# deparse() calls each per-op subroutine with an argument $cx (short -# for context, but not the same as the cx* in the perl core), which is -# a number describing the op's parents in terms of precedence, whether -# they're inside an expression or at statement level, etc. (see -# chart below). When ops with children call deparse on them, they pass -# along their precedence. Fractional values are used to implement -# associativity ('($x + $y) + $z' => '$x + $y + $y') and related -# parentheses hacks. The major disadvantage of this scheme is that -# it doesn't know about right sides and left sides, so say if you -# assign a listop to a variable, it can't tell it's allowed to leave -# the parens off the listop. - -# Precedences: -# 26 [TODO] inside interpolation context ("") -# 25 left terms and list operators (leftward) -# 24 left -> -# 23 nonassoc ++ -- -# 22 right ** -# 21 right ! ~ \ and unary + and - -# 20 left =~ !~ -# 19 left * / % x -# 18 left + - . -# 17 left << >> -# 16 nonassoc named unary operators -# 15 nonassoc < > <= >= lt gt le ge -# 14 nonassoc == != <=> eq ne cmp -# 13 left & -# 12 left | ^ -# 11 left && -# 10 left || -# 9 nonassoc .. ... -# 8 right ?: -# 7 right = += -= *= etc. -# 6 left , => -# 5 nonassoc list operators (rightward) -# 4 right not -# 3 left and -# 2 left or xor -# 1 statement modifiers -# 0.5 statements, but still print scopes as do { ... } -# 0 statement level -# -1 format body - -# Nonprinting characters with special meaning: -# \cS - steal parens (see maybe_parens_unop) -# \n - newline and indent -# \t - increase indent -# \b - decrease indent ('outdent') -# \f - flush left (no indent) -# \cK - kill following semicolon, if any - -# Semicolon handling: -# - Individual statements are not deparsed with trailing semicolons. -# (If necessary, \cK is tacked on to the end.) -# - Whatever code joins statements together or emits them (lineseq, -# scopeop, deparse_root) is responsible for adding semicolons where -# necessary. -# - use statements are deparsed with trailing semicolons because they are -# immediately concatenated with the following statement. -# - indent() removes semicolons wherever it sees \cK. - - -BEGIN { for (qw[ const stringify rv2sv list glob pushmark null aelem - nextstate dbstate rv2av rv2hv helem custom ]) { - eval "sub OP_\U$_ () { " . opnumber($_) . "}" -}} - -# _pessimise_walk(): recursively walk the optree of a sub, -# possibly undoing optimisations along the way. - -sub _pessimise_walk { - my ($self, $startop) = @_; - - return unless $$startop; - my ($op, $prevop); - for ($op = $startop; $$op; $prevop = $op, $op = $op->sibling) { - my $ppname = $op->name; - - # pessimisations start here - - if ($ppname eq "padrange") { - # remove PADRANGE: - # the original optimisation either (1) changed this: - # pushmark -> (various pad and list and null ops) -> the_rest - # or (2), for the = @_ case, changed this: - # pushmark -> gv[_] -> rv2av -> (pad stuff) -> the_rest - # into this: - # padrange ----------------------------------------> the_rest - # so we just need to convert the padrange back into a - # pushmark, and in case (1), set its op_next to op_sibling, - # which is the head of the original chain of optimised-away - # pad ops, or for (2), set it to sibling->first, which is - # the original gv[_]. - - $B::overlay->{$$op} = { - type => OP_PUSHMARK, - name => 'pushmark', - private => ($op->private & OPpLVAL_INTRO), - }; - } - - # pessimisations end here - - if (class($op) eq 'PMOP' - && ref($op->pmreplroot) - && ${$op->pmreplroot} - && $op->pmreplroot->isa( 'B::OP' )) - { - $self-> _pessimise_walk($op->pmreplroot); - } - - if ($op->flags & OPf_KIDS) { - $self-> _pessimise_walk($op->first); - } - - } -} - - -# _pessimise_walk_exe(): recursively walk the op_next chain of a sub, -# possibly undoing optimisations along the way. - -sub _pessimise_walk_exe { - my ($self, $startop, $visited) = @_; - - return unless $$startop; - return if $visited->{$$startop}; - my ($op, $prevop); - for ($op = $startop; $$op; $prevop = $op, $op = $op->next) { - last if $visited->{$$op}; - $visited->{$$op} = 1; - my $ppname = $op->name; - if ($ppname =~ - /^((and|d?or)(assign)?|(map|grep)while|range|cond_expr|once)$/ - # entertry is also a logop, but its op_other invariably points - # into the same chain as the main execution path, so we skip it - ) { - $self->_pessimise_walk_exe($op->other, $visited); - } - elsif ($ppname eq "subst") { - $self->_pessimise_walk_exe($op->pmreplstart, $visited); - } - elsif ($ppname =~ /^(enter(loop|iter))$/) { - # redoop and nextop will already be covered by the main block - # of the loop - $self->_pessimise_walk_exe($op->lastop, $visited); - } - - # pessimisations start here - } -} - -# Go through an optree and "remove" some optimisations by using an -# overlay to selectively modify or un-null some ops. Deparsing in the -# absence of those optimisations is then easier. -# -# Note that older optimisations are not removed, as Deparse was already -# written to recognise them before the pessimise/overlay system was added. - -sub pessimise { - my ($self, $root, $start) = @_; - - # walk tree in root-to-branch order - $self->_pessimise_walk($root); - - my %visited; - # walk tree in execution order - $self->_pessimise_walk_exe($start, \%visited); -} - - -sub null { - my $op = shift; - return class($op) eq "NULL"; -} - -sub todo { - my $self = shift; - my($cv, $is_form, $name) = @_; - my $cvfile = $cv->FILE//''; - return unless ($cvfile eq $0 || exists $self->{files}{$cvfile}); - my $seq; - if ($cv->OUTSIDE_SEQ) { - $seq = $cv->OUTSIDE_SEQ; - } elsif (!null($cv->START) and is_state($cv->START)) { - $seq = $cv->START->cop_seq; - } else { - $seq = 0; - } - push @{$self->{'subs_todo'}}, [$seq, $cv, $is_form, $name]; -} - -sub next_todo { - my $self = shift; - my $ent = shift @{$self->{'subs_todo'}}; - my $cv = $ent->[1]; - if (ref $ent->[3]) { # lexical sub - my @text; - - # At this point, we may not yet have deparsed the hints that allow - # lexical subroutines to be recognized. So adjust the current - # hints and deparse them. - # When lex subs cease being experimental, we should be able to - # remove this code. - { - local $^H = $self->{'hints'}; - local %^H = %{ $self->{'hinthash'} || {} }; - local ${^WARNING_BITS} = $self->{'warnings'}; - feature->import("lexical_subs"); - warnings->unimport("experimental::lexical_subs"); - # Here we depend on the fact that individual features - # will always set the feature bundle to ‘custom’ - # (== $feature::hint_mask). If we had another specific bundle - # enabled previously, normalise it. - if (($self->{'hints'} & $feature::hint_mask) - != $feature::hint_mask) - { - if ($self->{'hinthash'}) { - delete $self->{'hinthash'}{$_} - for grep /^feature_/, keys %{$self->{'hinthash'}}; - } - else { $self->{'hinthash'} = {} } - $self->{'hinthash'} - = _features_from_bundle(@$self{'hints','hinthash'}); - } - push @text, $self->declare_hinthash($self->{'hinthash'}, \%^H, - $self->{indent_size}, $^H); - push @text, $self->declare_warnings($self->{'warnings'}, - ${^WARNING_BITS}) - unless ($self->{'warnings'} // 'u') - eq (${^WARNING_BITS } // 'u'); - $self->{'warnings'} = ${^WARNING_BITS}; - $self->{'hints'} = $^H; - $self->{'hinthash'} = {%^H}; - } - - # Now emit the sub itself. - my $padname = $ent->[3]; - my $flags = $padname->FLAGS; - push @text, - !$cv || $ent->[0] <= $padname->COP_SEQ_RANGE_LOW - ? $self->keyword($flags & SVpad_OUR - ? "our" - : $flags & SVpad_STATE - ? "state" - : "my") . " " - : ""; - # XXX We would do $self->keyword("sub"), but ‘my CORE::sub’ - # doesn’t work and ‘my sub’ ignores a &sub in scope. I.e., - # we have a core bug here. - push @text, "sub " . substr $padname->PVX, 1; - if ($cv) { - # my sub foo { } - push @text, " " . $self->deparse_sub($cv); - $text[-1] =~ s/ ;$/;/; - } - else { - # my sub foo; - push @text, ";\n"; - } - return join "", @text; - } - my $gv = $cv->GV; - my $name = $ent->[3] // $self->gv_name($gv); - if ($ent->[2]) { - return $self->keyword("format") . " $name =\n" - . $self->deparse_format($ent->[1]). "\n"; - } else { - my $use_dec; - if ($name eq "BEGIN") { - $use_dec = $self->begin_is_use($cv); - if (defined ($use_dec) and $self->{'expand'} < 5) { - return () if 0 == length($use_dec); - $use_dec =~ s/^(use|no)\b/$self->keyword($1)/e; - } - } - my $l = ''; - if ($self->{'linenums'}) { - my $line = $gv->LINE; - my $file = $gv->FILE; - $l = "\n\f#line $line \"$file\"\n"; - } - my $p = ''; - my $stash; - if (class($cv->STASH) ne "SPECIAL") { - $stash = $cv->STASH->NAME; - if ($stash ne $self->{'curstash'}) { - $p = $self->keyword("package") . " $stash;\n"; - $name = "$self->{'curstash'}::$name" unless $name =~ /::/; - $self->{'curstash'} = $stash; - } - } - if ($use_dec) { - return "$p$l$use_dec"; - } - if ( $name !~ /::/ and $self->lex_in_scope("&$name") - || $self->lex_in_scope("&$name", 1) ) - { - $name = "$self->{'curstash'}::$name"; - } elsif (defined $stash) { - $name =~ s/^\Q$stash\E::(?!\z|.*::)//; - } - my $ret = "${p}${l}" . $self->keyword("sub") . " $name " - . $self->deparse_sub($cv); - $self->{'subs_declared'}{$name} = 1; - return $ret; - } -} - -# Return a "use" declaration for this BEGIN block, if appropriate -sub begin_is_use { - my ($self, $cv) = @_; - my $root = $cv->ROOT; - local @$self{qw'curcv curcvlex'} = ($cv); - local $B::overlay = {}; - $self->pessimise($root, $cv->START); -#require B::Debug; -#B::walkoptree($cv->ROOT, "debug"); - my $lineseq = $root->first; - return if $lineseq->name ne "lineseq"; - - my $req_op = $lineseq->first->sibling; - return if $req_op->name ne "require"; - - my $module; - if ($req_op->first->private & OPpCONST_BARE) { - # Actually it should always be a bareword - $module = $self->const_sv($req_op->first)->PV; - $module =~ s[/][::]g; - $module =~ s/.pm$//; - } - else { - $module = $self->const($self->const_sv($req_op->first), 6); - } - - my $version; - my $version_op = $req_op->sibling; - return if class($version_op) eq "NULL"; - if ($version_op->name eq "lineseq") { - # We have a version parameter; skip nextstate & pushmark - my $constop = $version_op->first->next->next; - - return unless $self->const_sv($constop)->PV eq $module; - $constop = $constop->sibling; - $version = $self->const_sv($constop); - if (class($version) eq "IV") { - $version = $version->int_value; - } elsif (class($version) eq "NV") { - $version = $version->NV; - } elsif (class($version) ne "PVMG") { - # Includes PVIV and PVNV - $version = $version->PV; - } else { - # version specified as a v-string - $version = 'v'.join '.', map ord, split //, $version->PV; - } - $constop = $constop->sibling; - return if $constop->name ne "method_named"; - return if $self->meth_sv($constop)->PV ne "VERSION"; - } - - $lineseq = $version_op->sibling; - return if $lineseq->name ne "lineseq"; - my $entersub = $lineseq->first->sibling; - if ($entersub->name eq "stub") { - return "use $module $version ();\n" if defined $version; - return "use $module ();\n"; - } - return if $entersub->name ne "entersub"; - - # See if there are import arguments - my $args = ''; - - my $svop = $entersub->first->sibling; # Skip over pushmark - return unless $self->const_sv($svop)->PV eq $module; - - # Pull out the arguments - for ($svop=$svop->sibling; index($svop->name, "method_") != 0; - $svop = $svop->sibling) { - $args .= ", " if length($args); - $args .= $self->deparse($svop, 6); - } - - my $use = 'use'; - my $method_named = $svop; - return if $method_named->name ne "method_named"; - my $method_name = $self->meth_sv($method_named)->PV; - - if ($method_name eq "unimport") { - $use = 'no'; - } - - # Certain pragmas are dealt with using hint bits, - # so we ignore them here - if ($module eq 'strict' || $module eq 'integer' - || $module eq 'bytes' || $module eq 'warnings' - || $module eq 'feature') { - return ""; - } - - if (defined $version && length $args) { - return "$use $module $version ($args);\n"; - } elsif (defined $version) { - return "$use $module $version;\n"; - } elsif (length $args) { - return "$use $module ($args);\n"; - } else { - return "$use $module;\n"; - } -} - -sub stash_subs { - my ($self, $pack, $seen) = @_; - my (@ret, $stash); - if (!defined $pack) { - $pack = ''; - $stash = \%::; - } - else { - $pack =~ s/(::)?$/::/; - no strict 'refs'; - $stash = \%{"main::$pack"}; - } - return - if ($seen ||= {})->{ - $INC{"overload.pm"} ? overload::StrVal($stash) : $stash - }++; - my %stash = svref_2object($stash)->ARRAY; - while (my ($key, $val) = each %stash) { - my $flags = $val->FLAGS; - if ($flags & SVf_ROK) { - # A reference. Dump this if it is a reference to a CV. If it - # is a constant acting as a proxy for a full subroutine, then - # we may or may not have to dump it. If some form of perl- - # space visible code must have created it, be it a use - # statement, or some direct symbol-table manipulation code that - # we will deparse, then we don’t want to dump it. If it is the - # result of a declaration like sub f () { 42 } then we *do* - # want to dump it. The only way to distinguish these seems - # to be the SVs_PADTMP flag on the constant, which is admit- - # tedly a hack. - my $class = class(my $referent = $val->RV); - if ($class eq "CV") { - $self->todo($referent, 0); - } elsif ( - $class !~ /^(AV|HV|CV|FM|IO|SPECIAL)\z/ - # A more robust way to write that would be this, but B does - # not provide the SVt_ constants: - # ($referent->FLAGS & B::SVTYPEMASK) < B::SVt_PVAV - and $referent->FLAGS & SVs_PADTMP - ) { - push @{$self->{'protos_todo'}}, [$pack . $key, $val]; - } - } elsif ($flags & (SVf_POK|SVf_IOK)) { - # Just a prototype. As an ugly but fairly effective way - # to find out if it belongs here is to see if the AUTOLOAD - # (if any) for the stash was defined in one of our files. - my $A = $stash{"AUTOLOAD"}; - if (defined ($A) && class($A) eq "GV" && defined($A->CV) - && class($A->CV) eq "CV") { - my $AF = $A->FILE; - next unless $AF eq $0 || exists $self->{'files'}{$AF}; - } - push @{$self->{'protos_todo'}}, - [$pack . $key, $flags & SVf_POK ? $val->PV: undef]; - } elsif (class($val) eq "GV") { - if (class(my $cv = $val->CV) ne "SPECIAL") { - next if $self->{'subs_done'}{$$val}++; - next if $$val != ${$cv->GV}; # Ignore imposters - $self->todo($cv, 0); - } - if (class(my $cv = $val->FORM) ne "SPECIAL") { - next if $self->{'forms_done'}{$$val}++; - next if $$val != ${$cv->GV}; # Ignore imposters - $self->todo($cv, 1); - } - if (class($val->HV) ne "SPECIAL" && $key =~ /::$/) { - $self->stash_subs($pack . $key, $seen); - } - } - } -} - -sub print_protos { - my $self = shift; - my $ar; - my @ret; - foreach $ar (@{$self->{'protos_todo'}}) { - my $body = defined $ar->[1] - ? ref $ar->[1] - ? " () {\n " . $self->const($ar->[1]->RV,0) . ";\n}" - : " (". $ar->[1] . ");" - : ";"; - push @ret, "sub " . $ar->[0] . "$body\n"; - } - delete $self->{'protos_todo'}; - return @ret; -} - -sub style_opts { - my $self = shift; - my $opts = shift; - my $opt; - while (length($opt = substr($opts, 0, 1))) { - if ($opt eq "C") { - $self->{'cuddle'} = " "; - $opts = substr($opts, 1); - } elsif ($opt eq "i") { - $opts =~ s/^i(\d+)//; - $self->{'indent_size'} = $1; - } elsif ($opt eq "T") { - $self->{'use_tabs'} = 1; - $opts = substr($opts, 1); - } elsif ($opt eq "v") { - $opts =~ s/^v([^.]*)(.|$)//; - $self->{'ex_const'} = $1; - } - } -} - -sub new { - my $class = shift; - my $self = bless {}, $class; - $self->{'cuddle'} = "\n"; - $self->{'curcop'} = undef; - $self->{'curstash'} = "main"; - $self->{'ex_const'} = "'???'"; - $self->{'expand'} = 0; - $self->{'files'} = {}; - $self->{'indent_size'} = 4; - $self->{'linenums'} = 0; - $self->{'parens'} = 0; - $self->{'subs_todo'} = []; - $self->{'unquote'} = 0; - $self->{'use_dumper'} = 0; - $self->{'use_tabs'} = 0; - - $self->{'ambient_arybase'} = 0; - $self->{'ambient_warnings'} = undef; # Assume no lexical warnings - $self->{'ambient_hints'} = 0; - $self->{'ambient_hinthash'} = undef; - $self->init(); - - while (my $arg = shift @_) { - if ($arg eq "-d") { - $self->{'use_dumper'} = 1; - require Data::Dumper; - } elsif ($arg =~ /^-f(.*)/) { - $self->{'files'}{$1} = 1; - } elsif ($arg eq "-l") { - $self->{'linenums'} = 1; - } elsif ($arg eq "-p") { - $self->{'parens'} = 1; - } elsif ($arg eq "-P") { - $self->{'noproto'} = 1; - } elsif ($arg eq "-q") { - $self->{'unquote'} = 1; - } elsif (substr($arg, 0, 2) eq "-s") { - $self->style_opts(substr $arg, 2); - } elsif ($arg =~ /^-x(\d)$/) { - $self->{'expand'} = $1; - } - } - return $self; -} - -{ - # Mask out the bits that L uses - my $WARN_MASK; - BEGIN { - $WARN_MASK = $warnings::Bits{all} | $warnings::DeadBits{all}; - } - sub WARN_MASK () { - return $WARN_MASK; - } -} - -# Initialise the contextual information, either from -# defaults provided with the ambient_pragmas method, -# or from perl's own defaults otherwise. -sub init { - my $self = shift; - - $self->{'arybase'} = $self->{'ambient_arybase'}; - $self->{'warnings'} = defined ($self->{'ambient_warnings'}) - ? $self->{'ambient_warnings'} & WARN_MASK - : undef; - $self->{'hints'} = $self->{'ambient_hints'}; - $self->{'hints'} &= 0xFF if $] < 5.009; - $self->{'hinthash'} = $self->{'ambient_hinthash'}; - - # also a convenient place to clear out subs_declared - delete $self->{'subs_declared'}; -} - -sub compile { - my(@args) = @_; - return sub { - my $self = B::Deparse->new(@args); - # First deparse command-line args - if (defined $^I) { # deparse -i - print q(BEGIN { $^I = ).perlstring($^I).qq(; }\n); - } - if ($^W) { # deparse -w - print qq(BEGIN { \$^W = $^W; }\n); - } - if ($/ ne "\n" or defined $O::savebackslash) { # deparse -l and -0 - my $fs = perlstring($/) || 'undef'; - my $bs = perlstring($O::savebackslash) || 'undef'; - print qq(BEGIN { \$/ = $fs; \$\\ = $bs; }\n); - } - my @BEGINs = B::begin_av->isa("B::AV") ? B::begin_av->ARRAY : (); - my @UNITCHECKs = B::unitcheck_av->isa("B::AV") - ? B::unitcheck_av->ARRAY - : (); - my @CHECKs = B::check_av->isa("B::AV") ? B::check_av->ARRAY : (); - my @INITs = B::init_av->isa("B::AV") ? B::init_av->ARRAY : (); - my @ENDs = B::end_av->isa("B::AV") ? B::end_av->ARRAY : (); - my @names = qw(BEGIN UNITCHECK CHECK INIT END); - my @blocks = \(@BEGINs, @UNITCHECKs, @CHECKs, @INITs, @ENDs); - while (@names) { - my ($name, $blocks) = (shift @names, shift @blocks); - for my $block (@$blocks) { - $self->todo($block, 0, $name); - } - } - $self->stash_subs(); - local($SIG{"__DIE__"}) = - sub { - if ($self->{'curcop'}) { - my $cop = $self->{'curcop'}; - my($line, $file) = ($cop->line, $cop->file); - print STDERR "While deparsing $file near line $line,\n"; - } - }; - $self->{'curcv'} = main_cv; - $self->{'curcvlex'} = undef; - print $self->print_protos; - @{$self->{'subs_todo'}} = - sort {$a->[0] <=> $b->[0]} @{$self->{'subs_todo'}}; - my $root = main_root; - local $B::overlay = {}; - unless (null $root) { - $self->pad_subs($self->{'curcv'}); - # Check for a stub-followed-by-ex-cop, resulting from a program - # consisting solely of sub declarations. For backward-compati- - # bility (and sane output) we don’t want to emit the stub. - # leave - # enter - # stub - # ex-nextstate (or ex-dbstate) - my $kid; - if ( $root->name eq 'leave' - and ($kid = $root->first)->name eq 'enter' - and !null($kid = $kid->sibling) and $kid->name eq 'stub' - and !null($kid = $kid->sibling) and $kid->name eq 'null' - and class($kid) eq 'COP' and null $kid->sibling ) - { - # ignore - } else { - $self->pessimise($root, main_start); - print $self->indent($self->deparse_root($root)), "\n"; - } - } - my @text; - while (scalar(@{$self->{'subs_todo'}})) { - push @text, $self->next_todo; - } - print $self->indent(join("", @text)), "\n" if @text; - - # Print __DATA__ section, if necessary - no strict 'refs'; - my $laststash = defined $self->{'curcop'} - ? $self->{'curcop'}->stash->NAME : $self->{'curstash'}; - if (defined *{$laststash."::DATA"}{IO}) { - print $self->keyword("package") . " $laststash;\n" - unless $laststash eq $self->{'curstash'}; - print $self->keyword("__DATA__") . "\n"; - print readline(*{$laststash."::DATA"}); - } - } -} - -sub coderef2text { - my $self = shift; - my $sub = shift; - croak "Usage: ->coderef2text(CODEREF)" unless UNIVERSAL::isa($sub, "CODE"); - - $self->init(); - local $self->{in_coderef2text} = 1; - return $self->indent($self->deparse_sub(svref_2object($sub))); -} - -my %strict_bits = do { - local $^H; - map +($_ => strict::bits($_)), qw/refs subs vars/ -}; - -sub ambient_pragmas { - my $self = shift; - my ($arybase, $hint_bits, $warning_bits, $hinthash) = (0, 0); - - while (@_ > 1) { - my $name = shift(); - my $val = shift(); - - if ($name eq 'strict') { - require strict; - - if ($val eq 'none') { - $hint_bits &= $strict_bits{$_} for qw/refs subs vars/; - next(); - } - - my @names; - if ($val eq "all") { - @names = qw/refs subs vars/; - } - elsif (ref $val) { - @names = @$val; - } - else { - @names = split' ', $val; - } - $hint_bits |= $strict_bits{$_} for @names; - } - - elsif ($name eq '$[') { - if (OPpCONST_ARYBASE) { - $arybase = $val; - } else { - croak "\$[ can't be non-zero on this perl" unless $val == 0; - } - } - - elsif ($name eq 'integer' - || $name eq 'bytes' - || $name eq 'utf8') { - require "$name.pm"; - if ($val) { - $hint_bits |= ${$::{"${name}::"}{"hint_bits"}}; - } - else { - $hint_bits &= ~${$::{"${name}::"}{"hint_bits"}}; - } - } - - elsif ($name eq 're') { - require re; - if ($val eq 'none') { - $hint_bits &= ~re::bits(qw/taint eval/); - next(); - } - - my @names; - if ($val eq 'all') { - @names = qw/taint eval/; - } - elsif (ref $val) { - @names = @$val; - } - else { - @names = split' ',$val; - } - $hint_bits |= re::bits(@names); - } - - elsif ($name eq 'warnings') { - if ($val eq 'none') { - $warning_bits = $warnings::NONE; - next(); - } - - my @names; - if (ref $val) { - @names = @$val; - } - else { - @names = split/\s+/, $val; - } - - $warning_bits = $warnings::NONE if !defined ($warning_bits); - $warning_bits |= warnings::bits(@names); - } - - elsif ($name eq 'warning_bits') { - $warning_bits = $val; - } - - elsif ($name eq 'hint_bits') { - $hint_bits = $val; - } - - elsif ($name eq '%^H') { - $hinthash = $val; - } - - else { - croak "Unknown pragma type: $name"; - } - } - if (@_) { - croak "The ambient_pragmas method expects an even number of args"; - } - - $self->{'ambient_arybase'} = $arybase; - $self->{'ambient_warnings'} = $warning_bits; - $self->{'ambient_hints'} = $hint_bits; - $self->{'ambient_hinthash'} = $hinthash; -} - -# This method is the inner loop, so try to keep it simple -sub deparse { - my $self = shift; - my($op, $cx) = @_; - - Carp::confess("Null op in deparse") if !defined($op) - || class($op) eq "NULL"; - my $meth = "pp_" . $op->name; - return $self->$meth($op, $cx); -} - -sub indent { - my $self = shift; - my $txt = shift; - # \cK also swallows a preceding line break when followed by a - # semicolon. - $txt =~ s/\n\cK;//g; - my @lines = split(/\n/, $txt); - my $leader = ""; - my $level = 0; - my $line; - for $line (@lines) { - my $cmd = substr($line, 0, 1); - if ($cmd eq "\t" or $cmd eq "\b") { - $level += ($cmd eq "\t" ? 1 : -1) * $self->{'indent_size'}; - if ($self->{'use_tabs'}) { - $leader = "\t" x ($level / 8) . " " x ($level % 8); - } else { - $leader = " " x $level; - } - $line = substr($line, 1); - } - if (index($line, "\f") > 0) { - $line =~ s/\f/\n/; - } - if (substr($line, 0, 1) eq "\f") { - $line = substr($line, 1); # no indent - } else { - $line = $leader . $line; - } - $line =~ s/\cK;?//g; - } - return join("\n", @lines); -} - -sub pad_subs { - my ($self, $cv) = @_; - my $padlist = $cv->PADLIST; - my @names = $padlist->ARRAYelt(0)->ARRAY; - my @values = $padlist->ARRAYelt(1)->ARRAY; - my @todo; - PADENTRY: - for my $ix (0.. $#names) { for $_ ($names[$ix]) { - next if class($_) eq "SPECIAL"; - my $name = $_->PVX; - if (defined $name && $name =~ /^&./) { - my $low = $_->COP_SEQ_RANGE_LOW; - my $flags = $_->FLAGS; - my $outer = $flags & PADNAMEt_OUTER; - if ($flags & SVpad_OUR) { - push @todo, [$low, undef, 0, $_] - # [seq, no cv, not format, padname] - unless $outer; - next; - } - my $protocv = $flags & SVpad_STATE - ? $values[$ix] - : $_->PROTOCV; - if (class ($protocv) ne 'CV') { - my $flags = $flags; - my $cv = $cv; - my $name = $_; - while ($flags & PADNAMEt_OUTER && class ($protocv) ne 'CV') - { - $cv = $cv->OUTSIDE; - next PADENTRY if class($cv) eq 'SPECIAL'; # XXX freed? - my $padlist = $cv->PADLIST; - my $ix = $name->PARENT_PAD_INDEX; - $name = $padlist->NAMES->ARRAYelt($ix); - $flags = $name->FLAGS; - $protocv = $flags & SVpad_STATE - ? $padlist->ARRAYelt(1)->ARRAYelt($ix) - : $name->PROTOCV; - } - } - my $defined_in_this_sub = ${$protocv->OUTSIDE} == $$cv || do { - my $other = $protocv->PADLIST; - $$other && $other->outid == $padlist->id; - }; - if ($flags & PADNAMEt_OUTER) { - next unless $defined_in_this_sub; - push @todo, [$protocv->OUTSIDE_SEQ, $protocv, 0, $_]; - next; - } - my $outseq = $protocv->OUTSIDE_SEQ; - if ($outseq <= $low) { - # defined before its name is visible, so it’s gotta be - # declared and defined at once: my sub foo { ... } - push @todo, [$low, $protocv, 0, $_]; - } - else { - # declared and defined separately: my sub f; sub f { ... } - push @todo, [$low, undef, 0, $_]; - push @todo, [$outseq, $protocv, 0, $_] - if $defined_in_this_sub; - } - } - }} - @{$self->{'subs_todo'}} = - sort {$a->[0] <=> $b->[0]} @{$self->{'subs_todo'}}, @todo -} - -sub deparse_sub { - my $self = shift; - my $cv = shift; - my $proto = ""; -Carp::confess("NULL in deparse_sub") if !defined($cv) || $cv->isa("B::NULL"); -Carp::confess("SPECIAL in deparse_sub") if $cv->isa("B::SPECIAL"); - local $self->{'curcop'} = $self->{'curcop'}; - if ($cv->FLAGS & SVf_POK) { - $proto = "(". $cv->PV . ") "; - } - if ($cv->CvFLAGS & (CVf_METHOD|CVf_LOCKED|CVf_LVALUE|CVf_ANONCONST)) { - $proto .= ": "; - $proto .= "lvalue " if $cv->CvFLAGS & CVf_LVALUE; - $proto .= "locked " if $cv->CvFLAGS & CVf_LOCKED; - $proto .= "method " if $cv->CvFLAGS & CVf_METHOD; - $proto .= "const " if $cv->CvFLAGS & CVf_ANONCONST; - } - - local($self->{'curcv'}) = $cv; - local($self->{'curcvlex'}); - local(@$self{qw'curstash warnings hints hinthash'}) - = @$self{qw'curstash warnings hints hinthash'}; - my $body; - my $root = $cv->ROOT; - local $B::overlay = {}; - if (not null $root) { - $self->pad_subs($cv); - $self->pessimise($root, $cv->START); - my $lineseq = $root->first; - if ($lineseq->name eq "lineseq") { - my @ops; - for(my$o=$lineseq->first; $$o; $o=$o->sibling) { - push @ops, $o; - } - $body = $self->lineseq(undef, 0, @ops).";"; - my $scope_en = $self->find_scope_en($lineseq); - if (defined $scope_en) { - my $subs = join"", $self->seq_subs($scope_en); - $body .= ";\n$subs" if length($subs); - } - } - else { - $body = $self->deparse($root->first, 0); - } - } - else { - my $sv = $cv->const_sv; - if ($$sv) { - # uh-oh. inlinable sub... format it differently - return $proto . "{ " . $self->const($sv, 0) . " }\n"; - } else { # XSUB? (or just a declaration) - return "$proto;\n"; - } - } - return $proto ."{\n\t$body\n\b}" ."\n"; -} - -sub deparse_format { - my $self = shift; - my $form = shift; - my @text; - local($self->{'curcv'}) = $form; - local($self->{'curcvlex'}); - local($self->{'in_format'}) = 1; - local(@$self{qw'curstash warnings hints hinthash'}) - = @$self{qw'curstash warnings hints hinthash'}; - my $op = $form->ROOT; - local $B::overlay = {}; - $self->pessimise($op, $form->START); - my $kid; - return "\f." if $op->first->name eq 'stub' - || $op->first->name eq 'nextstate'; - $op = $op->first->first; # skip leavewrite, lineseq - while (not null $op) { - $op = $op->sibling; # skip nextstate - my @exprs; - $kid = $op->first->sibling; # skip pushmark - push @text, "\f".$self->const_sv($kid)->PV; - $kid = $kid->sibling; - for (; not null $kid; $kid = $kid->sibling) { - push @exprs, $self->deparse($kid, -1); - $exprs[-1] =~ s/;\z//; - } - push @text, "\f".join(", ", @exprs)."\n" if @exprs; - $op = $op->sibling; - } - return join("", @text) . "\f."; -} - -sub is_scope { - my $op = shift; - return $op->name eq "leave" || $op->name eq "scope" - || $op->name eq "lineseq" - || ($op->name eq "null" && class($op) eq "UNOP" - && (is_scope($op->first) || $op->first->name eq "enter")); -} - -sub is_state { - my $name = $_[0]->name; - return $name eq "nextstate" || $name eq "dbstate" || $name eq "setstate"; -} - -sub is_miniwhile { # check for one-line loop ('foo() while $y--') - my $op = shift; - return (!null($op) and null($op->sibling) - and $op->name eq "null" and class($op) eq "UNOP" - and (($op->first->name =~ /^(and|or)$/ - and $op->first->first->sibling->name eq "lineseq") - or ($op->first->name eq "lineseq" - and not null $op->first->first->sibling - and $op->first->first->sibling->name eq "unstack") - )); -} - -# Check if the op and its sibling are the initialization and the rest of a -# for (..;..;..) { ... } loop -sub is_for_loop { - my $op = shift; - # This OP might be almost anything, though it won't be a - # nextstate. (It's the initialization, so in the canonical case it - # will be an sassign.) The sibling is (old style) a lineseq whose - # first child is a nextstate and whose second is a leaveloop, or - # (new style) an unstack whose sibling is a leaveloop. - my $lseq = $op->sibling; - return 0 unless !is_state($op) and !null($lseq); - if ($lseq->name eq "lineseq") { - if ($lseq->first && !null($lseq->first) && is_state($lseq->first) - && (my $sib = $lseq->first->sibling)) { - return (!null($sib) && $sib->name eq "leaveloop"); - } - } elsif ($lseq->name eq "unstack" && ($lseq->flags & OPf_SPECIAL)) { - my $sib = $lseq->sibling; - return $sib && !null($sib) && $sib->name eq "leaveloop"; - } - return 0; -} - -sub is_scalar { - my $op = shift; - return ($op->name eq "rv2sv" or - $op->name eq "padsv" or - $op->name eq "gv" or # only in array/hash constructs - $op->flags & OPf_KIDS && !null($op->first) - && $op->first->name eq "gvsv"); -} - -sub maybe_parens { - my $self = shift; - my($text, $cx, $prec) = @_; - if ($prec < $cx # unary ops nest just fine - or $prec == $cx and $cx != 4 and $cx != 16 and $cx != 21 - or $self->{'parens'}) - { - $text = "($text)"; - # In a unop, let parent reuse our parens; see maybe_parens_unop - $text = "\cS" . $text if $cx == 16; - return $text; - } else { - return $text; - } -} - -# same as above, but get around the 'if it looks like a function' rule -sub maybe_parens_unop { - my $self = shift; - my($name, $kid, $cx) = @_; - if ($cx > 16 or $self->{'parens'}) { - $kid = $self->deparse($kid, 1); - if ($name eq "umask" && $kid =~ /^\d+$/) { - $kid = sprintf("%#o", $kid); - } - return $self->keyword($name) . "($kid)"; - } else { - $kid = $self->deparse($kid, 16); - if ($name eq "umask" && $kid =~ /^\d+$/) { - $kid = sprintf("%#o", $kid); - } - $name = $self->keyword($name); - if (substr($kid, 0, 1) eq "\cS") { - # use kid's parens - return $name . substr($kid, 1); - } elsif (substr($kid, 0, 1) eq "(") { - # avoid looks-like-a-function trap with extra parens - # ('+' can lead to ambiguities) - return "$name(" . $kid . ")"; - } else { - return "$name $kid"; - } - } -} - -sub maybe_parens_func { - my $self = shift; - my($func, $text, $cx, $prec) = @_; - if ($prec <= $cx or substr($text, 0, 1) eq "(" or $self->{'parens'}) { - return "$func($text)"; - } else { - return "$func $text"; - } -} - -sub find_our_type { - my ($self, $name) = @_; - $self->populate_curcvlex() if !defined $self->{'curcvlex'}; - my $seq = $self->{'curcop'} ? $self->{'curcop'}->cop_seq : 0; - for my $a (@{$self->{'curcvlex'}{"o$name"}}) { - my ($st, undef, $padname) = @$a; - if ($st >= $seq && $padname->FLAGS & SVpad_TYPED) { - return $padname->SvSTASH->NAME; - } - } - return ''; -} - -sub maybe_local { - my $self = shift; - my($op, $cx, $text) = @_; - my $name = $op->name; - my $our_intro = ($name =~ /^(?:(?:gv|rv2)[ash]v|split|refassign - |lv(?:av)?ref)$/x) - ? OPpOUR_INTRO - : 0; - my $lval_intro = $name eq 'split' ? 0 : OPpLVAL_INTRO; - # The @a in \(@a) isn't in ref context, but only when the - # parens are there. - my $need_parens = $self->{'in_refgen'} && $name =~ /[ah]v\z/ - && ($op->flags & (OPf_PARENS|OPf_REF)) == OPf_PARENS; - if ((my $priv = $op->private) & ($lval_intro|$our_intro)) { - my @our_local; - push @our_local, "local" if $priv & $lval_intro; - push @our_local, "our" if $priv & $our_intro; - my $our_local = join " ", map $self->keyword($_), @our_local; - if( $our_local[-1] eq 'our' ) { - if ( $text !~ /^\W(\w+::)*\w+\z/ - and !utf8::decode($text) || $text !~ /^\W(\w+::)*\w+\z/ - ) { - die "Unexpected our($text)\n"; - } - $text =~ s/(\w+::)+//; - - if (my $type = $self->find_our_type($text)) { - $our_local .= ' ' . $type; - } - } - return $need_parens ? "($text)" : $text - if $self->{'avoid_local'}{$$op}; - if ($need_parens) { - return "$our_local($text)"; - } elsif (want_scalar($op)) { - return "$our_local $text"; - } else { - return $self->maybe_parens_func("$our_local", $text, $cx, 16); - } - } else { - return $need_parens ? "($text)" : $text; - } -} - -sub maybe_targmy { - my $self = shift; - my($op, $cx, $func, @args) = @_; - if ($op->private & OPpTARGET_MY) { - my $var = $self->padname($op->targ); - my $val = $func->($self, $op, 7, @args); - return $self->maybe_parens("$var = $val", $cx, 7); - } else { - return $func->($self, $op, $cx, @args); - } -} - -sub padname_sv { - my $self = shift; - my $targ = shift; - return $self->{'curcv'}->PADLIST->ARRAYelt(0)->ARRAYelt($targ); -} - -sub maybe_my { - my $self = shift; - my($op, $cx, $text, $padname, $forbid_parens) = @_; - # The @a in \(@a) isn't in ref context, but only when the - # parens are there. - my $need_parens = !$forbid_parens && $self->{'in_refgen'} - && $op->name =~ /[ah]v\z/ - && ($op->flags & (OPf_PARENS|OPf_REF)) == OPf_PARENS; - # The @a in \my @a must not have parens. - if (!$need_parens && $self->{'in_refgen'}) { - $forbid_parens = 1; - } - if ($op->private & OPpLVAL_INTRO and not $self->{'avoid_local'}{$$op}) { - # Check $padname->FLAGS for statehood, rather than $op->private, - # because enteriter ops do not carry the flag. - my $my = - $self->keyword($padname->FLAGS & SVpad_STATE ? "state" : "my"); - if ($padname->FLAGS & SVpad_TYPED) { - $my .= ' ' . $padname->SvSTASH->NAME; - } - if ($need_parens) { - return "$my($text)"; - } elsif ($forbid_parens || want_scalar($op)) { - return "$my $text"; - } else { - return $self->maybe_parens_func($my, $text, $cx, 16); - } - } else { - return $need_parens ? "($text)" : $text; - } -} - -# The following OPs don't have functions: - -# pp_padany -- does not exist after parsing - -sub AUTOLOAD { - if ($AUTOLOAD =~ s/^.*::pp_//) { - warn "unexpected OP_". - ($_[1]->type == OP_CUSTOM ? "CUSTOM ($AUTOLOAD)" : uc $AUTOLOAD); - return "XXX"; - } else { - die "Undefined subroutine $AUTOLOAD called"; - } -} - -sub DESTROY {} # Do not AUTOLOAD - -# $root should be the op which represents the root of whatever -# we're sequencing here. If it's undefined, then we don't append -# any subroutine declarations to the deparsed ops, otherwise we -# append appropriate declarations. -sub lineseq { - my($self, $root, $cx, @ops) = @_; - my($expr, @exprs); - - my $out_cop = $self->{'curcop'}; - my $out_seq = defined($out_cop) ? $out_cop->cop_seq : undef; - my $limit_seq; - if (defined $root) { - $limit_seq = $out_seq; - my $nseq; - $nseq = $self->find_scope_st($root->sibling) if ${$root->sibling}; - $limit_seq = $nseq if !defined($limit_seq) - or defined($nseq) && $nseq < $limit_seq; - } - $limit_seq = $self->{'limit_seq'} - if defined($self->{'limit_seq'}) - && (!defined($limit_seq) || $self->{'limit_seq'} < $limit_seq); - local $self->{'limit_seq'} = $limit_seq; - - $self->walk_lineseq($root, \@ops, - sub { push @exprs, $_[0]} ); - - my $sep = $cx ? '; ' : ";\n"; - my $body = join($sep, grep {length} @exprs); - my $subs = ""; - if (defined $root && defined $limit_seq && !$self->{'in_format'}) { - $subs = join "\n", $self->seq_subs($limit_seq); - } - return join($sep, grep {length} $body, $subs); -} - -sub scopeop { - my($real_block, $self, $op, $cx) = @_; - my $kid; - my @kids; - - local(@$self{qw'curstash warnings hints hinthash'}) - = @$self{qw'curstash warnings hints hinthash'} if $real_block; - if ($real_block) { - $kid = $op->first->sibling; # skip enter - if (is_miniwhile($kid)) { - my $top = $kid->first; - my $name = $top->name; - if ($name eq "and") { - $name = $self->keyword("while"); - } elsif ($name eq "or") { - $name = $self->keyword("until"); - } else { # no conditional -> while 1 or until 0 - return $self->deparse($top->first, 1) . " " - . $self->keyword("while") . " 1"; - } - my $cond = $top->first; - my $body = $cond->sibling->first; # skip lineseq - $cond = $self->deparse($cond, 1); - $body = $self->deparse($body, 1); - return "$body $name $cond"; - } - } else { - $kid = $op->first; - } - for (; !null($kid); $kid = $kid->sibling) { - push @kids, $kid; - } - if ($cx > 0) { # inside an expression, (a do {} while for lineseq) - my $body = $self->lineseq($op, 0, @kids); - return is_lexical_subs(@kids) - ? $body - : ($self->lex_in_scope("&do") ? "CORE::do" : "do") - . " {\n\t$body\n\b}"; - } else { - my $lineseq = $self->lineseq($op, $cx, @kids); - return (length ($lineseq) ? "$lineseq;" : ""); - } -} - -sub pp_scope { scopeop(0, @_); } -sub pp_lineseq { scopeop(0, @_); } -sub pp_leave { scopeop(1, @_); } - -# This is a special case of scopeop and lineseq, for the case of the -# main_root. The difference is that we print the output statements as -# soon as we get them, for the sake of impatient users. -sub deparse_root { - my $self = shift; - my($op) = @_; - local(@$self{qw'curstash warnings hints hinthash'}) - = @$self{qw'curstash warnings hints hinthash'}; - my @kids; - return if null $op->first; # Can happen, e.g., for Bytecode without -k - for (my $kid = $op->first->sibling; !null($kid); $kid = $kid->sibling) { - push @kids, $kid; - } - $self->walk_lineseq($op, \@kids, - sub { return unless length $_[0]; - print $self->indent($_[0].';'); - print "\n" - unless $_[1] == $#kids; - }); -} - -sub walk_lineseq { - my ($self, $op, $kids, $callback) = @_; - my @kids = @$kids; - for (my $i = 0; $i < @kids; $i++) { - my $expr = ""; - if (is_state $kids[$i]) { - $expr = $self->deparse($kids[$i++], 0); - if ($i > $#kids) { - $callback->($expr, $i); - last; - } - } - if (is_for_loop($kids[$i])) { - $callback->($expr . $self->for_loop($kids[$i], 0), - $i += $kids[$i]->sibling->name eq "unstack" ? 2 : 1); - next; - } - my $expr2 = $self->deparse($kids[$i], (@kids != 1)/2); - $expr2 =~ s/^sub :(?!:)/+sub :/; # statement label otherwise - $expr .= $expr2; - $callback->($expr, $i); - } -} - -# The BEGIN {} is used here because otherwise this code isn't executed -# when you run B::Deparse on itself. -my %globalnames; -BEGIN { map($globalnames{$_}++, "SIG", "STDIN", "STDOUT", "STDERR", "INC", - "ENV", "ARGV", "ARGVOUT", "_"); } - -sub gv_name { - my $self = shift; - my $gv = shift; - my $raw = shift; -#Carp::confess() unless ref($gv) eq "B::GV"; - my $cv = $gv->FLAGS & SVf_ROK ? $gv->RV : 0; - my $stash = ($cv || $gv)->STASH->NAME; - my $name = $raw - ? $cv ? $cv->NAME_HEK || $cv->GV->NAME : $gv->NAME - : $cv - ? B::safename($cv->NAME_HEK || $cv->GV->NAME) - : $gv->SAFENAME; - if ($stash eq 'main' && $name =~ /^::/) { - $stash = '::'; - } - elsif (($stash eq 'main' - && ($globalnames{$name} || $name =~ /^[^A-Za-z_:]/)) - or ($stash eq $self->{'curstash'} && !$globalnames{$name} - && ($stash eq 'main' || $name !~ /::/)) - ) - { - $stash = ""; - } else { - $stash = $stash . "::"; - } - if (!$raw and $name =~ /^(\^..|{)/) { - $name = "{$name}"; # ${^WARNING_BITS}, etc and ${ - } - return $stash . $name; -} - -# Return the name to use for a stash variable. -# If a lexical with the same name is in scope, or -# if strictures are enabled, it may need to be -# fully-qualified. -sub stash_variable { - my ($self, $prefix, $name, $cx) = @_; - - return "$prefix$name" if $name =~ /::/; - - unless ($prefix eq '$' || $prefix eq '@' || $prefix eq '&' || #' - $prefix eq '%' || $prefix eq '$#') { - return "$prefix$name"; - } - - if ($name =~ /^[^[:alpha:]_+-]$/) { - if (defined $cx && $cx == 26) { - if ($prefix eq '@') { - return "$prefix\{$name}"; - } - elsif ($name eq '#') { return '${#}' } # "${#}a" vs "$#a" - } - if ($prefix eq '$#') { - return "\$#{$name}"; - } - } - - return $prefix . $self->maybe_qualify($prefix, $name); -} - -my %unctrl = # portable to EBCDIC - ( - "\c@" => '@', # unused - "\cA" => 'A', - "\cB" => 'B', - "\cC" => 'C', - "\cD" => 'D', - "\cE" => 'E', - "\cF" => 'F', - "\cG" => 'G', - "\cH" => 'H', - "\cI" => 'I', - "\cJ" => 'J', - "\cK" => 'K', - "\cL" => 'L', - "\cM" => 'M', - "\cN" => 'N', - "\cO" => 'O', - "\cP" => 'P', - "\cQ" => 'Q', - "\cR" => 'R', - "\cS" => 'S', - "\cT" => 'T', - "\cU" => 'U', - "\cV" => 'V', - "\cW" => 'W', - "\cX" => 'X', - "\cY" => 'Y', - "\cZ" => 'Z', - "\c[" => '[', # unused - "\c\\" => '\\', # unused - "\c]" => ']', # unused - "\c_" => '_', # unused - ); - -# Return just the name, without the prefix. It may be returned as a quoted -# string. The second return value is a boolean indicating that. -sub stash_variable_name { - my($self, $prefix, $gv) = @_; - my $name = $self->gv_name($gv, 1); - $name = $self->maybe_qualify($prefix,$name); - if ($name =~ /^(?:\S|(?!\d)[\ca-\cz]?(?:\w|::)*|\d+)\z/) { - $name =~ s/^([\ca-\cz])/'^' . $unctrl{$1}/e; - $name =~ /^(\^..|{)/ and $name = "{$name}"; - return $name, 0; # not quoted - } - else { - single_delim("q", "'", $name, $self), 1; - } -} - -sub maybe_qualify { - my ($self,$prefix,$name) = @_; - my $v = ($prefix eq '$#' ? '@' : $prefix) . $name; - return $name if !$prefix || $name =~ /::/; - return $self->{'curstash'}.'::'. $name - if - $name =~ /^(?!\d)\w/ # alphabetic - && $v !~ /^\$[ab]\z/ # not $a or $b - && !$globalnames{$name} # not a global name - && $self->{hints} & $strict_bits{vars} # strict vars - && !$self->lex_in_scope($v,1) # no "our" - or $self->lex_in_scope($v); # conflicts with "my" variable - return $name; -} - -sub lex_in_scope { - my ($self, $name, $our) = @_; - substr $name, 0, 0, = $our ? 'o' : 'm'; # our/my - $self->populate_curcvlex() if !defined $self->{'curcvlex'}; - - return 0 if !defined($self->{'curcop'}); - my $seq = $self->{'curcop'}->cop_seq; - return 0 if !exists $self->{'curcvlex'}{$name}; - for my $a (@{$self->{'curcvlex'}{$name}}) { - my ($st, $en) = @$a; - return 1 if $seq > $st && $seq <= $en; - } - return 0; -} - -sub populate_curcvlex { - my $self = shift; - for (my $cv = $self->{'curcv'}; class($cv) eq "CV"; $cv = $cv->OUTSIDE) { - my $padlist = $cv->PADLIST; - # an undef CV still in lexical chain - next if class($padlist) eq "SPECIAL"; - my @padlist = $padlist->ARRAY; - my @ns = $padlist[0]->ARRAY; - - for (my $i=0; $i<@ns; ++$i) { - next if class($ns[$i]) eq "SPECIAL"; - if (class($ns[$i]) eq "PV") { - # Probably that pesky lexical @_ - next; - } - my $name = $ns[$i]->PVX; - next unless defined $name; - my ($seq_st, $seq_en) = - ($ns[$i]->FLAGS & SVf_FAKE) - ? (0, 999999) - : ($ns[$i]->COP_SEQ_RANGE_LOW, $ns[$i]->COP_SEQ_RANGE_HIGH); - - push @{$self->{'curcvlex'}{ - ($ns[$i]->FLAGS & SVpad_OUR ? 'o' : 'm') . $name - }}, [$seq_st, $seq_en, $ns[$i]]; - } - } -} - -sub find_scope_st { ((find_scope(@_))[0]); } -sub find_scope_en { ((find_scope(@_))[1]); } - -# Recurses down the tree, looking for pad variable introductions and COPs -sub find_scope { - my ($self, $op, $scope_st, $scope_en) = @_; - carp("Undefined op in find_scope") if !defined $op; - return ($scope_st, $scope_en) unless $op->flags & OPf_KIDS; - - my @queue = ($op); - while(my $op = shift @queue ) { - for (my $o=$op->first; $$o; $o=$o->sibling) { - if ($o->name =~ /^pad.v$/ && $o->private & OPpLVAL_INTRO) { - my $s = int($self->padname_sv($o->targ)->COP_SEQ_RANGE_LOW); - my $e = $self->padname_sv($o->targ)->COP_SEQ_RANGE_HIGH; - $scope_st = $s if !defined($scope_st) || $s < $scope_st; - $scope_en = $e if !defined($scope_en) || $e > $scope_en; - return ($scope_st, $scope_en); - } - elsif (is_state($o)) { - my $c = $o->cop_seq; - $scope_st = $c if !defined($scope_st) || $c < $scope_st; - $scope_en = $c if !defined($scope_en) || $c > $scope_en; - return ($scope_st, $scope_en); - } - elsif ($o->flags & OPf_KIDS) { - unshift (@queue, $o); - } - } - } - - return ($scope_st, $scope_en); -} - -# Returns a list of subs which should be inserted before the COP -sub cop_subs { - my ($self, $op, $out_seq) = @_; - my $seq = $op->cop_seq; - if ($] < 5.021006) { - # If we have nephews, then our sequence number indicates - # the cop_seq of the end of some sort of scope. - if (class($op->sibling) ne "NULL" && $op->sibling->flags & OPf_KIDS - and my $nseq = $self->find_scope_st($op->sibling) ) { - $seq = $nseq; - } - } - $seq = $out_seq if defined($out_seq) && $out_seq < $seq; - return $self->seq_subs($seq); -} - -sub seq_subs { - my ($self, $seq) = @_; - my @text; -#push @text, "# ($seq)\n"; - - return "" if !defined $seq; - my @pending; - while (scalar(@{$self->{'subs_todo'}}) - and $seq > $self->{'subs_todo'}[0][0]) { - my $cv = $self->{'subs_todo'}[0][1]; - # Skip the OUTSIDE check for lexical subs. We may be deparsing a - # cloned anon sub with lexical subs declared in it, in which case - # the OUTSIDE pointer points to the anon protosub. - my $lexical = ref $self->{'subs_todo'}[0][3]; - my $outside = !$lexical && $cv && $cv->OUTSIDE; - if (!$lexical and $cv - and ${$cv->OUTSIDE || \0} != ${$self->{'curcv'}}) - { - push @pending, shift @{$self->{'subs_todo'}}; - next; - } - push @text, $self->next_todo; - } - unshift @{$self->{'subs_todo'}}, @pending; - return @text; -} - -sub _features_from_bundle { - my ($hints, $hh) = @_; - foreach (@{$feature::feature_bundle{@feature::hint_bundles[$hints >> $feature::hint_shift]}}) { - $hh->{$feature::feature{$_}} = 1; - } - return $hh; -} - -# Notice how subs and formats are inserted between statements here; -# also $[ assignments and pragmas. -sub pp_nextstate { - my $self = shift; - my($op, $cx) = @_; - $self->{'curcop'} = $op; - my @text; - push @text, $self->cop_subs($op); - if (@text) { - # Special marker to swallow up the semicolon - push @text, "\cK"; - } - my $stash = $op->stashpv; - if ($stash ne $self->{'curstash'}) { - push @text, $self->keyword("package") . " $stash;\n"; - $self->{'curstash'} = $stash; - } - - if (OPpCONST_ARYBASE && $self->{'arybase'} != $op->arybase) { - push @text, '$[ = '. $op->arybase .";\n"; - $self->{'arybase'} = $op->arybase; - } - - my $warnings = $op->warnings; - my $warning_bits; - if ($warnings->isa("B::SPECIAL") && $$warnings == 4) { - $warning_bits = $warnings::Bits{"all"} & WARN_MASK; - } - elsif ($warnings->isa("B::SPECIAL") && $$warnings == 5) { - $warning_bits = $warnings::NONE; - } - elsif ($warnings->isa("B::SPECIAL")) { - $warning_bits = undef; - } - else { - $warning_bits = $warnings->PV & WARN_MASK; - } - - if (defined ($warning_bits) and - !defined($self->{warnings}) || $self->{'warnings'} ne $warning_bits) { - push @text, - $self->declare_warnings($self->{'warnings'}, $warning_bits); - $self->{'warnings'} = $warning_bits; - } - - my $hints = $] < 5.008009 ? $op->private : $op->hints; - my $old_hints = $self->{'hints'}; - if ($self->{'hints'} != $hints) { - push @text, $self->declare_hints($self->{'hints'}, $hints); - $self->{'hints'} = $hints; - } - - my $newhh; - if ($] > 5.009) { - $newhh = $op->hints_hash->HASH; - } - - if ($] >= 5.015006) { - # feature bundle hints - my $from = $old_hints & $feature::hint_mask; - my $to = $ hints & $feature::hint_mask; - if ($from != $to) { - if ($to == $feature::hint_mask) { - if ($self->{'hinthash'}) { - delete $self->{'hinthash'}{$_} - for grep /^feature_/, keys %{$self->{'hinthash'}}; - } - else { $self->{'hinthash'} = {} } - $self->{'hinthash'} - = _features_from_bundle($from, $self->{'hinthash'}); - } - else { - my $bundle = - $feature::hint_bundles[$to >> $feature::hint_shift]; - $bundle =~ s/(\d[13579])\z/$1+1/e; # 5.11 => 5.12 - push @text, - $self->keyword("no") . " feature ':all';\n", - $self->keyword("use") . " feature ':$bundle';\n"; - } - } - } - - if ($] > 5.009) { - push @text, $self->declare_hinthash( - $self->{'hinthash'}, $newhh, - $self->{indent_size}, $self->{hints}, - ); - $self->{'hinthash'} = $newhh; - } - - # This should go after of any branches that add statements, to - # increase the chances that it refers to the same line it did in - # the original program. - if ($self->{'linenums'} && $cx != .5) { # $cx == .5 means in a format - push @text, "\f#line " . $op->line . - ' "' . $op->file, qq'"\n'; - } - - push @text, $op->label . ": " if $op->label; - - return join("", @text); -} - -sub declare_warnings { - my ($self, $from, $to) = @_; - if (($to & WARN_MASK) eq (warnings::bits("all") & WARN_MASK)) { - return $self->keyword("use") . " warnings;\n"; - } - elsif (($to & WARN_MASK) eq ("\0"x length($to) & WARN_MASK)) { - return $self->keyword("no") . " warnings;\n"; - } - return "BEGIN {\${^WARNING_BITS} = \"" - . join("", map { sprintf("\\x%02x", ord $_) } split "", $to) - . "\"}\n\cK"; -} - -sub declare_hints { - my ($self, $from, $to) = @_; - my $use = $to & ~$from; - my $no = $from & ~$to; - my $decls = ""; - for my $pragma (hint_pragmas($use)) { - $decls .= $self->keyword("use") . " $pragma;\n"; - } - for my $pragma (hint_pragmas($no)) { - $decls .= $self->keyword("no") . " $pragma;\n"; - } - return $decls; -} - -# Internal implementation hints that the core sets automatically, so don't need -# (or want) to be passed back to the user -my %ignored_hints = ( - 'open<' => 1, - 'open>' => 1, - ':' => 1, - 'strict/refs' => 1, - 'strict/subs' => 1, - 'strict/vars' => 1, -); - -my %rev_feature; - -sub declare_hinthash { - my ($self, $from, $to, $indent, $hints) = @_; - my $doing_features = - ($hints & $feature::hint_mask) == $feature::hint_mask; - my @decls; - my @features; - my @unfeatures; # bugs? - for my $key (sort keys %$to) { - next if $ignored_hints{$key}; - my $is_feature = $key =~ /^feature_/ && $^V ge 5.15.6; - next if $is_feature and not $doing_features; - if (!exists $from->{$key} or $from->{$key} ne $to->{$key}) { - push(@features, $key), next if $is_feature; - push @decls, - qq(\$^H{) . single_delim("q", "'", $key, $self) . qq(} = ) - . ( - defined $to->{$key} - ? single_delim("q", "'", $to->{$key}, $self) - : 'undef' - ) - . qq(;); - } - } - for my $key (sort keys %$from) { - next if $ignored_hints{$key}; - my $is_feature = $key =~ /^feature_/ && $^V ge 5.15.6; - next if $is_feature and not $doing_features; - if (!exists $to->{$key}) { - push(@unfeatures, $key), next if $is_feature; - push @decls, qq(delete \$^H{'$key'};); - } - } - my @ret; - if (@features || @unfeatures) { - if (!%rev_feature) { %rev_feature = reverse %feature::feature } - } - if (@features) { - push @ret, $self->keyword("use") . " feature " - . join(", ", map "'$rev_feature{$_}'", @features) . ";\n"; - } - if (@unfeatures) { - push @ret, $self->keyword("no") . " feature " - . join(", ", map "'$rev_feature{$_}'", @unfeatures) - . ";\n"; - } - @decls and - push @ret, - join("\n" . (" " x $indent), "BEGIN {", @decls) . "\n}\n\cK"; - return @ret; -} - -sub hint_pragmas { - my ($bits) = @_; - my (@pragmas, @strict); - push @pragmas, "integer" if $bits & 0x1; - for (sort keys %strict_bits) { - push @strict, "'$_'" if $bits & $strict_bits{$_}; - } - if (@strict == keys %strict_bits) { - push @pragmas, "strict"; - } - elsif (@strict) { - push @pragmas, "strict " . join ', ', @strict; - } - push @pragmas, "bytes" if $bits & 0x8; - return @pragmas; -} - -sub pp_dbstate { pp_nextstate(@_) } -sub pp_setstate { pp_nextstate(@_) } - -sub pp_unstack { return "" } # see also leaveloop - -my %feature_keywords = ( - # keyword => 'feature', - state => 'state', - say => 'say', - given => 'switch', - when => 'switch', - default => 'switch', - break => 'switch', - evalbytes=>'evalbytes', - __SUB__ => '__SUB__', - fc => 'fc', -); - -# keywords that are strong and also have a prototype -# -my %strong_proto_keywords = map { $_ => 1 } qw( - pos - prototype - scalar - study - undef -); - -sub feature_enabled { - my($self,$name) = @_; - my $hh; - my $hints = $self->{hints} & $feature::hint_mask; - if ($hints && $hints != $feature::hint_mask) { - $hh = _features_from_bundle($hints); - } - elsif ($hints) { $hh = $self->{'hinthash'} } - return $hh && $hh->{"feature_$feature_keywords{$name}"} -} - -sub keyword { - my $self = shift; - my $name = shift; - return $name if $name =~ /^CORE::/; # just in case - if (exists $feature_keywords{$name}) { - return "CORE::$name" if not $self->feature_enabled($name); - } - # This sub may be called for a program that has no nextstate ops. In - # that case we may have a lexical sub named no/use/sub in scope but - # but $self->lex_in_scope will return false because it depends on the - # current nextstate op. So we need this alternate method if there is - # no current cop. - if (!$self->{'curcop'}) { - $self->populate_curcvlex() if !defined $self->{'curcvlex'}; - return "CORE::$name" if exists $self->{'curcvlex'}{"m&$name"} - || exists $self->{'curcvlex'}{"o&$name"}; - } elsif ($self->lex_in_scope("&$name") - || $self->lex_in_scope("&$name", 1)) { - return "CORE::$name"; - } - if ($strong_proto_keywords{$name} - || ($name !~ /^(?:chom?p|do|exec|glob|s(?:elect|ystem))\z/ - && !defined eval{prototype "CORE::$name"}) - ) { return $name } - if ( - exists $self->{subs_declared}{$name} - or - exists &{"$self->{curstash}::$name"} - ) { - return "CORE::$name" - } - return $name; -} - -sub baseop { - my $self = shift; - my($op, $cx, $name) = @_; - return $self->keyword($name); -} - -sub pp_stub { "()" } -sub pp_wantarray { baseop(@_, "wantarray") } -sub pp_fork { baseop(@_, "fork") } -sub pp_wait { maybe_targmy(@_, \&baseop, "wait") } -sub pp_getppid { maybe_targmy(@_, \&baseop, "getppid") } -sub pp_time { maybe_targmy(@_, \&baseop, "time") } -sub pp_tms { baseop(@_, "times") } -sub pp_ghostent { baseop(@_, "gethostent") } -sub pp_gnetent { baseop(@_, "getnetent") } -sub pp_gprotoent { baseop(@_, "getprotoent") } -sub pp_gservent { baseop(@_, "getservent") } -sub pp_ehostent { baseop(@_, "endhostent") } -sub pp_enetent { baseop(@_, "endnetent") } -sub pp_eprotoent { baseop(@_, "endprotoent") } -sub pp_eservent { baseop(@_, "endservent") } -sub pp_gpwent { baseop(@_, "getpwent") } -sub pp_spwent { baseop(@_, "setpwent") } -sub pp_epwent { baseop(@_, "endpwent") } -sub pp_ggrent { baseop(@_, "getgrent") } -sub pp_sgrent { baseop(@_, "setgrent") } -sub pp_egrent { baseop(@_, "endgrent") } -sub pp_getlogin { baseop(@_, "getlogin") } - -sub POSTFIX () { 1 } - -# I couldn't think of a good short name, but this is the category of -# symbolic unary operators with interesting precedence - -sub pfixop { - my $self = shift; - my($op, $cx, $name, $prec, $flags) = (@_, 0); - my $kid = $op->first; - $kid = $self->deparse($kid, $prec); - return $self->maybe_parens(($flags & POSTFIX) - ? "$kid$name" - # avoid confusion with filetests - : $name eq '-' - && $kid =~ /^[a-zA-Z](?!\w)/ - ? "$name($kid)" - : "$name$kid", - $cx, $prec); -} - -sub pp_preinc { pfixop(@_, "++", 23) } -sub pp_predec { pfixop(@_, "--", 23) } -sub pp_postinc { maybe_targmy(@_, \&pfixop, "++", 23, POSTFIX) } -sub pp_postdec { maybe_targmy(@_, \&pfixop, "--", 23, POSTFIX) } -sub pp_i_preinc { pfixop(@_, "++", 23) } -sub pp_i_predec { pfixop(@_, "--", 23) } -sub pp_i_postinc { maybe_targmy(@_, \&pfixop, "++", 23, POSTFIX) } -sub pp_i_postdec { maybe_targmy(@_, \&pfixop, "--", 23, POSTFIX) } -sub pp_complement { maybe_targmy(@_, \&pfixop, "~", 21) } -*pp_ncomplement = *pp_complement; -sub pp_scomplement { maybe_targmy(@_, \&pfixop, "~.", 21) } - -sub pp_negate { maybe_targmy(@_, \&real_negate) } -sub real_negate { - my $self = shift; - my($op, $cx) = @_; - if ($op->first->name =~ /^(i_)?negate$/) { - # avoid --$x - $self->pfixop($op, $cx, "-", 21.5); - } else { - $self->pfixop($op, $cx, "-", 21); - } -} -sub pp_i_negate { pp_negate(@_) } - -sub pp_not { - my $self = shift; - my($op, $cx) = @_; - if ($cx <= 4) { - $self->listop($op, $cx, "not", $op->first); - } else { - $self->pfixop($op, $cx, "!", 21); - } -} - -sub unop { - my $self = shift; - my($op, $cx, $name, $nollafr) = @_; - my $kid; - if ($op->flags & OPf_KIDS) { - $kid = $op->first; - if (not $name) { - # this deals with 'boolkeys' right now - return $self->deparse($kid,$cx); - } - my $builtinname = $name; - $builtinname =~ /^CORE::/ or $builtinname = "CORE::$name"; - if (defined prototype($builtinname) - && $builtinname ne 'CORE::readline' - && prototype($builtinname) =~ /^;?\*/ - && $kid->name eq "rv2gv") { - $kid = $kid->first; - } - - if ($nollafr) { - if (($kid = $self->deparse($kid, 16)) !~ s/^\cS//) { - # require foo() is a syntax error. - $kid =~ /^(?!\d)\w/ and $kid = "($kid)"; - } - return $self->maybe_parens( - $self->keyword($name) . " $kid", $cx, 16 - ); - } - return $self->maybe_parens_unop($name, $kid, $cx); - } else { - return $self->maybe_parens( - $self->keyword($name) . ($op->flags & OPf_SPECIAL ? "()" : ""), - $cx, 16, - ); - } -} - -sub pp_chop { maybe_targmy(@_, \&unop, "chop") } -sub pp_chomp { maybe_targmy(@_, \&unop, "chomp") } -sub pp_schop { maybe_targmy(@_, \&unop, "chop") } -sub pp_schomp { maybe_targmy(@_, \&unop, "chomp") } -sub pp_defined { unop(@_, "defined") } -sub pp_undef { unop(@_, "undef") } -sub pp_study { unop(@_, "study") } -sub pp_ref { unop(@_, "ref") } -sub pp_pos { maybe_local(@_, unop(@_, "pos")) } - -sub pp_sin { maybe_targmy(@_, \&unop, "sin") } -sub pp_cos { maybe_targmy(@_, \&unop, "cos") } -sub pp_rand { maybe_targmy(@_, \&unop, "rand") } -sub pp_srand { unop(@_, "srand") } -sub pp_exp { maybe_targmy(@_, \&unop, "exp") } -sub pp_log { maybe_targmy(@_, \&unop, "log") } -sub pp_sqrt { maybe_targmy(@_, \&unop, "sqrt") } -sub pp_int { maybe_targmy(@_, \&unop, "int") } -sub pp_hex { maybe_targmy(@_, \&unop, "hex") } -sub pp_oct { maybe_targmy(@_, \&unop, "oct") } -sub pp_abs { maybe_targmy(@_, \&unop, "abs") } - -sub pp_length { maybe_targmy(@_, \&unop, "length") } -sub pp_ord { maybe_targmy(@_, \&unop, "ord") } -sub pp_chr { maybe_targmy(@_, \&unop, "chr") } - -sub pp_each { unop(@_, "each") } -sub pp_values { unop(@_, "values") } -sub pp_keys { unop(@_, "keys") } -{ no strict 'refs'; *{"pp_r$_"} = *{"pp_$_"} for qw< keys each values >; } -sub pp_boolkeys { - # no name because its an optimisation op that has no keyword - unop(@_,""); -} -sub pp_aeach { unop(@_, "each") } -sub pp_avalues { unop(@_, "values") } -sub pp_akeys { unop(@_, "keys") } -sub pp_pop { unop(@_, "pop") } -sub pp_shift { unop(@_, "shift") } - -sub pp_caller { unop(@_, "caller") } -sub pp_reset { unop(@_, "reset") } -sub pp_exit { unop(@_, "exit") } -sub pp_prototype { unop(@_, "prototype") } - -sub pp_close { unop(@_, "close") } -sub pp_fileno { unop(@_, "fileno") } -sub pp_umask { unop(@_, "umask") } -sub pp_untie { unop(@_, "untie") } -sub pp_tied { unop(@_, "tied") } -sub pp_dbmclose { unop(@_, "dbmclose") } -sub pp_getc { unop(@_, "getc") } -sub pp_eof { unop(@_, "eof") } -sub pp_tell { unop(@_, "tell") } -sub pp_getsockname { unop(@_, "getsockname") } -sub pp_getpeername { unop(@_, "getpeername") } - -sub pp_chdir { - my ($self, $op, $cx) = @_; - if (($op->flags & (OPf_SPECIAL|OPf_KIDS)) == (OPf_SPECIAL|OPf_KIDS)) { - my $kw = $self->keyword("chdir"); - my $kid = $self->const_sv($op->first)->PV; - my $code = $kw - . ($cx >= 16 || $self->{'parens'} ? "($kid)" : " $kid"); - maybe_targmy(@_, sub { $_[3] }, $code); - } else { - maybe_targmy(@_, \&unop, "chdir") - } -} - -sub pp_chroot { maybe_targmy(@_, \&unop, "chroot") } -sub pp_readlink { unop(@_, "readlink") } -sub pp_rmdir { maybe_targmy(@_, \&unop, "rmdir") } -sub pp_readdir { unop(@_, "readdir") } -sub pp_telldir { unop(@_, "telldir") } -sub pp_rewinddir { unop(@_, "rewinddir") } -sub pp_closedir { unop(@_, "closedir") } -sub pp_getpgrp { maybe_targmy(@_, \&unop, "getpgrp") } -sub pp_localtime { unop(@_, "localtime") } -sub pp_gmtime { unop(@_, "gmtime") } -sub pp_alarm { unop(@_, "alarm") } -sub pp_sleep { maybe_targmy(@_, \&unop, "sleep") } - -sub pp_dofile { - my $code = unop(@_, "do", 1); # llafr does not apply - if ($code =~ s/^((?:CORE::)?do) \{/$1({/) { $code .= ')' } - $code; -} -sub pp_entereval { - unop( - @_, - $_[1]->private & OPpEVAL_BYTES ? 'evalbytes' : "eval" - ) -} - -sub pp_ghbyname { unop(@_, "gethostbyname") } -sub pp_gnbyname { unop(@_, "getnetbyname") } -sub pp_gpbyname { unop(@_, "getprotobyname") } -sub pp_shostent { unop(@_, "sethostent") } -sub pp_snetent { unop(@_, "setnetent") } -sub pp_sprotoent { unop(@_, "setprotoent") } -sub pp_sservent { unop(@_, "setservent") } -sub pp_gpwnam { unop(@_, "getpwnam") } -sub pp_gpwuid { unop(@_, "getpwuid") } -sub pp_ggrnam { unop(@_, "getgrnam") } -sub pp_ggrgid { unop(@_, "getgrgid") } - -sub pp_lock { unop(@_, "lock") } - -sub pp_continue { unop(@_, "continue"); } -sub pp_break { unop(@_, "break"); } - -sub givwhen { - my $self = shift; - my($op, $cx, $givwhen) = @_; - - my $enterop = $op->first; - my ($head, $block); - if ($enterop->flags & OPf_SPECIAL) { - $head = $self->keyword("default"); - $block = $self->deparse($enterop->first, 0); - } - else { - my $cond = $enterop->first; - my $cond_str = $self->deparse($cond, 1); - $head = "$givwhen ($cond_str)"; - $block = $self->deparse($cond->sibling, 0); - } - - return "$head {\n". - "\t$block\n". - "\b}\cK"; -} - -sub pp_leavegiven { givwhen(@_, $_[0]->keyword("given")); } -sub pp_leavewhen { givwhen(@_, $_[0]->keyword("when")); } - -sub pp_exists { - my $self = shift; - my($op, $cx) = @_; - my $arg; - my $name = $self->keyword("exists"); - if ($op->private & OPpEXISTS_SUB) { - # Checking for the existence of a subroutine - return $self->maybe_parens_func($name, - $self->pp_rv2cv($op->first, 16), $cx, 16); - } - if ($op->flags & OPf_SPECIAL) { - # Array element, not hash element - return $self->maybe_parens_func($name, - $self->pp_aelem($op->first, 16), $cx, 16); - } - return $self->maybe_parens_func($name, $self->pp_helem($op->first, 16), - $cx, 16); -} - -sub pp_delete { - my $self = shift; - my($op, $cx) = @_; - my $arg; - my $name = $self->keyword("delete"); - if ($op->private & OPpSLICE) { - if ($op->flags & OPf_SPECIAL) { - # Deleting from an array, not a hash - return $self->maybe_parens_func($name, - $self->pp_aslice($op->first, 16), - $cx, 16); - } - return $self->maybe_parens_func($name, - $self->pp_hslice($op->first, 16), - $cx, 16); - } else { - if ($op->flags & OPf_SPECIAL) { - # Deleting from an array, not a hash - return $self->maybe_parens_func($name, - $self->pp_aelem($op->first, 16), - $cx, 16); - } - return $self->maybe_parens_func($name, - $self->pp_helem($op->first, 16), - $cx, 16); - } -} - -sub pp_require { - my $self = shift; - my($op, $cx) = @_; - my $opname = $op->flags & OPf_SPECIAL ? 'CORE::require' : 'require'; - my $kid = $op->first; - if ($kid->name eq 'const') { - my $priv = $kid->private; - my $sv = $self->const_sv($kid); - my $arg; - if ($priv & OPpCONST_BARE) { - $arg = $sv->PV; - $arg =~ s[/][::]g; - $arg =~ s/\.pm//g; - } elsif ($priv & OPpCONST_NOVER) { - $opname = $self->keyword('no'); - $arg = $self->const($sv, 16); - } elsif ((my $tmp = $self->const($sv, 16)) =~ /^v/) { - $arg = $tmp; - } - if ($arg) { - return $self->maybe_parens("$opname $arg", $cx, 16); - } - } - $self->unop( - $op, $cx, - $opname, - 1, # llafr does not apply - ); -} - -sub pp_scalar { - my $self = shift; - my($op, $cx) = @_; - my $kid = $op->first; - if (not null $kid->sibling) { - # XXX Was a here-doc - return $self->dquote($op); - } - $self->unop(@_, "scalar"); -} - - -sub padval { - my $self = shift; - my $targ = shift; - return $self->{'curcv'}->PADLIST->ARRAYelt(1)->ARRAYelt($targ); -} - -sub anon_hash_or_list { - my $self = shift; - my($op, $cx) = @_; - - my($pre, $post) = @{{"anonlist" => ["[","]"], - "anonhash" => ["{","}"]}->{$op->name}}; - my($expr, @exprs); - $op = $op->first->sibling; # skip pushmark - for (; !null($op); $op = $op->sibling) { - $expr = $self->deparse($op, 6); - push @exprs, $expr; - } - if ($pre eq "{" and $cx < 1) { - # Disambiguate that it's not a block - $pre = "+{"; - } - return $pre . join(", ", @exprs) . $post; -} - -sub pp_anonlist { - my $self = shift; - my ($op, $cx) = @_; - if ($op->flags & OPf_SPECIAL) { - return $self->anon_hash_or_list($op, $cx); - } - warn "Unexpected op pp_" . $op->name() . " without OPf_SPECIAL"; - return 'XXX'; -} - -*pp_anonhash = \&pp_anonlist; - -sub pp_refgen { - my $self = shift; - my($op, $cx) = @_; - my $kid = $op->first; - if ($kid->name eq "null") { - my $anoncode = $kid = $kid->first; - if ($anoncode->name eq "anonconst") { - $anoncode = $anoncode->first->first->sibling; - } - if ($anoncode->name eq "anoncode" - or !null($anoncode = $kid->sibling) and - $anoncode->name eq "anoncode") { - return $self->e_anoncode({ code => $self->padval($anoncode->targ) }); - } elsif ($kid->name eq "pushmark") { - my $sib_name = $kid->sibling->name; - if ($sib_name eq 'entersub') { - my $text = $self->deparse($kid->sibling, 1); - # Always show parens for \(&func()), but only with -p otherwise - $text = "($text)" if $self->{'parens'} - or $kid->sibling->private & OPpENTERSUB_AMPER; - return "\\$text"; - } - } - } - local $self->{'in_refgen'} = 1; - $self->pfixop($op, $cx, "\\", 20); -} - -sub e_anoncode { - my ($self, $info) = @_; - my $text = $self->deparse_sub($info->{code}); - return $self->keyword("sub") . " $text"; -} - -sub pp_srefgen { pp_refgen(@_) } - -sub pp_readline { - my $self = shift; - my($op, $cx) = @_; - my $kid = $op->first; - if (is_scalar($kid) - and $op->flags & OPf_SPECIAL - and $self->deparse($kid, 1) eq 'ARGV') - { - return '<<>>'; - } - return $self->unop($op, $cx, "readline"); -} - -sub pp_rcatline { - my $self = shift; - my($op) = @_; - return "<" . $self->gv_name($self->gv_or_padgv($op)) . ">"; -} - -# Unary operators that can occur as pseudo-listops inside double quotes -sub dq_unop { - my $self = shift; - my($op, $cx, $name, $prec, $flags) = (@_, 0, 0); - my $kid; - if ($op->flags & OPf_KIDS) { - $kid = $op->first; - # If there's more than one kid, the first is an ex-pushmark. - $kid = $kid->sibling if not null $kid->sibling; - return $self->maybe_parens_unop($name, $kid, $cx); - } else { - return $name . ($op->flags & OPf_SPECIAL ? "()" : ""); - } -} - -sub pp_ucfirst { dq_unop(@_, "ucfirst") } -sub pp_lcfirst { dq_unop(@_, "lcfirst") } -sub pp_uc { dq_unop(@_, "uc") } -sub pp_lc { dq_unop(@_, "lc") } -sub pp_quotemeta { maybe_targmy(@_, \&dq_unop, "quotemeta") } -sub pp_fc { dq_unop(@_, "fc") } - -sub loopex { - my $self = shift; - my ($op, $cx, $name) = @_; - if (class($op) eq "PVOP") { - $name .= " " . $op->pv; - } elsif (class($op) eq "OP") { - # no-op - } elsif (class($op) eq "UNOP") { - (my $kid = $self->deparse($op->first, 7)) =~ s/^\cS//; - # last foo() is a syntax error. - $kid =~ /^(?!\d)\w/ and $kid = "($kid)"; - $name .= " $kid"; - } - return $self->maybe_parens($name, $cx, 7); -} - -sub pp_last { loopex(@_, "last") } -sub pp_next { loopex(@_, "next") } -sub pp_redo { loopex(@_, "redo") } -sub pp_goto { loopex(@_, "goto") } -sub pp_dump { loopex(@_, "CORE::dump") } - -sub ftst { - my $self = shift; - my($op, $cx, $name) = @_; - if (class($op) eq "UNOP") { - # Genuine '-X' filetests are exempt from the LLAFR, but not - # l?stat() - if ($name =~ /^-/) { - (my $kid = $self->deparse($op->first, 16)) =~ s/^\cS//; - return $self->maybe_parens("$name $kid", $cx, 16); - } - return $self->maybe_parens_unop($name, $op->first, $cx); - } elsif (class($op) =~ /^(SV|PAD)OP$/) { - return $self->maybe_parens_func($name, $self->pp_gv($op, 1), $cx, 16); - } else { # I don't think baseop filetests ever survive ck_ftst, but... - return $name; - } -} - -sub pp_lstat { ftst(@_, "lstat") } -sub pp_stat { ftst(@_, "stat") } -sub pp_ftrread { ftst(@_, "-R") } -sub pp_ftrwrite { ftst(@_, "-W") } -sub pp_ftrexec { ftst(@_, "-X") } -sub pp_fteread { ftst(@_, "-r") } -sub pp_ftewrite { ftst(@_, "-w") } -sub pp_fteexec { ftst(@_, "-x") } -sub pp_ftis { ftst(@_, "-e") } -sub pp_fteowned { ftst(@_, "-O") } -sub pp_ftrowned { ftst(@_, "-o") } -sub pp_ftzero { ftst(@_, "-z") } -sub pp_ftsize { ftst(@_, "-s") } -sub pp_ftmtime { ftst(@_, "-M") } -sub pp_ftatime { ftst(@_, "-A") } -sub pp_ftctime { ftst(@_, "-C") } -sub pp_ftsock { ftst(@_, "-S") } -sub pp_ftchr { ftst(@_, "-c") } -sub pp_ftblk { ftst(@_, "-b") } -sub pp_ftfile { ftst(@_, "-f") } -sub pp_ftdir { ftst(@_, "-d") } -sub pp_ftpipe { ftst(@_, "-p") } -sub pp_ftlink { ftst(@_, "-l") } -sub pp_ftsuid { ftst(@_, "-u") } -sub pp_ftsgid { ftst(@_, "-g") } -sub pp_ftsvtx { ftst(@_, "-k") } -sub pp_fttty { ftst(@_, "-t") } -sub pp_fttext { ftst(@_, "-T") } -sub pp_ftbinary { ftst(@_, "-B") } - -sub SWAP_CHILDREN () { 1 } -sub ASSIGN () { 2 } # has OP= variant -sub LIST_CONTEXT () { 4 } # Assignment is in list context - -my(%left, %right); - -sub assoc_class { - my $op = shift; - my $name = $op->name; - if ($name eq "concat" and $op->first->name eq "concat") { - # avoid spurious '=' -- see comment in pp_concat - return "concat"; - } - if ($name eq "null" and class($op) eq "UNOP" - and $op->first->name =~ /^(and|x?or)$/ - and null $op->first->sibling) - { - # Like all conditional constructs, OP_ANDs and OP_ORs are topped - # with a null that's used as the common end point of the two - # flows of control. For precedence purposes, ignore it. - # (COND_EXPRs have these too, but we don't bother with - # their associativity). - return assoc_class($op->first); - } - return $name . ($op->flags & OPf_STACKED ? "=" : ""); -} - -# Left associative operators, like '+', for which -# $a + $b + $c is equivalent to ($a + $b) + $c - -BEGIN { - %left = ('multiply' => 19, 'i_multiply' => 19, - 'divide' => 19, 'i_divide' => 19, - 'modulo' => 19, 'i_modulo' => 19, - 'repeat' => 19, - 'add' => 18, 'i_add' => 18, - 'subtract' => 18, 'i_subtract' => 18, - 'concat' => 18, - 'left_shift' => 17, 'right_shift' => 17, - 'bit_and' => 13, 'nbit_and' => 13, 'sbit_and' => 13, - 'bit_or' => 12, 'bit_xor' => 12, - 'sbit_or' => 12, 'sbit_xor' => 12, - 'nbit_or' => 12, 'nbit_xor' => 12, - 'and' => 3, - 'or' => 2, 'xor' => 2, - ); -} - -sub deparse_binop_left { - my $self = shift; - my($op, $left, $prec) = @_; - if ($left{assoc_class($op)} && $left{assoc_class($left)} - and $left{assoc_class($op)} == $left{assoc_class($left)}) - { - return $self->deparse($left, $prec - .00001); - } else { - return $self->deparse($left, $prec); - } -} - -# Right associative operators, like '=', for which -# $a = $b = $c is equivalent to $a = ($b = $c) - -BEGIN { - %right = ('pow' => 22, - 'sassign=' => 7, 'aassign=' => 7, - 'multiply=' => 7, 'i_multiply=' => 7, - 'divide=' => 7, 'i_divide=' => 7, - 'modulo=' => 7, 'i_modulo=' => 7, - 'repeat=' => 7, 'refassign' => 7, 'refassign=' => 7, - 'add=' => 7, 'i_add=' => 7, - 'subtract=' => 7, 'i_subtract=' => 7, - 'concat=' => 7, - 'left_shift=' => 7, 'right_shift=' => 7, - 'bit_and=' => 7, 'sbit_and=' => 7, 'nbit_and=' => 7, - 'nbit_or=' => 7, 'nbit_xor=' => 7, - 'sbit_or=' => 7, 'sbit_xor=' => 7, - 'andassign' => 7, - 'orassign' => 7, - ); -} - -sub deparse_binop_right { - my $self = shift; - my($op, $right, $prec) = @_; - if ($right{assoc_class($op)} && $right{assoc_class($right)} - and $right{assoc_class($op)} == $right{assoc_class($right)}) - { - return $self->deparse($right, $prec - .00001); - } else { - return $self->deparse($right, $prec); - } -} - -sub binop { - my $self = shift; - my ($op, $cx, $opname, $prec, $flags) = (@_, 0); - my $left = $op->first; - my $right = $op->last; - my $eq = ""; - if ($op->flags & OPf_STACKED && $flags & ASSIGN) { - $eq = "="; - $prec = 7; - } - if ($flags & SWAP_CHILDREN) { - ($left, $right) = ($right, $left); - } - my $leftop = $left; - $left = $self->deparse_binop_left($op, $left, $prec); - $left = "($left)" if $flags & LIST_CONTEXT - and $left !~ /^(my|our|local|)[\@\(]/ - || do { - # Parenthesize if the left argument is a - # lone repeat op. - my $left = $leftop->first->sibling; - $left->name eq 'repeat' - && null($left->sibling); - }; - $right = $self->deparse_binop_right($op, $right, $prec); - return $self->maybe_parens("$left $opname$eq $right", $cx, $prec); -} - -sub pp_add { maybe_targmy(@_, \&binop, "+", 18, ASSIGN) } -sub pp_multiply { maybe_targmy(@_, \&binop, "*", 19, ASSIGN) } -sub pp_subtract { maybe_targmy(@_, \&binop, "-",18, ASSIGN) } -sub pp_divide { maybe_targmy(@_, \&binop, "/", 19, ASSIGN) } -sub pp_modulo { maybe_targmy(@_, \&binop, "%", 19, ASSIGN) } -sub pp_i_add { maybe_targmy(@_, \&binop, "+", 18, ASSIGN) } -sub pp_i_multiply { maybe_targmy(@_, \&binop, "*", 19, ASSIGN) } -sub pp_i_subtract { maybe_targmy(@_, \&binop, "-", 18, ASSIGN) } -sub pp_i_divide { maybe_targmy(@_, \&binop, "/", 19, ASSIGN) } -sub pp_i_modulo { maybe_targmy(@_, \&binop, "%", 19, ASSIGN) } -sub pp_pow { maybe_targmy(@_, \&binop, "**", 22, ASSIGN) } - -sub pp_left_shift { maybe_targmy(@_, \&binop, "<<", 17, ASSIGN) } -sub pp_right_shift { maybe_targmy(@_, \&binop, ">>", 17, ASSIGN) } -sub pp_bit_and { maybe_targmy(@_, \&binop, "&", 13, ASSIGN) } -sub pp_bit_or { maybe_targmy(@_, \&binop, "|", 12, ASSIGN) } -sub pp_bit_xor { maybe_targmy(@_, \&binop, "^", 12, ASSIGN) } -*pp_nbit_and = *pp_bit_and; -*pp_nbit_or = *pp_bit_or; -*pp_nbit_xor = *pp_bit_xor; -sub pp_sbit_and { maybe_targmy(@_, \&binop, "&.", 13, ASSIGN) } -sub pp_sbit_or { maybe_targmy(@_, \&binop, "|.", 12, ASSIGN) } -sub pp_sbit_xor { maybe_targmy(@_, \&binop, "^.", 12, ASSIGN) } - -sub pp_eq { binop(@_, "==", 14) } -sub pp_ne { binop(@_, "!=", 14) } -sub pp_lt { binop(@_, "<", 15) } -sub pp_gt { binop(@_, ">", 15) } -sub pp_ge { binop(@_, ">=", 15) } -sub pp_le { binop(@_, "<=", 15) } -sub pp_ncmp { binop(@_, "<=>", 14) } -sub pp_i_eq { binop(@_, "==", 14) } -sub pp_i_ne { binop(@_, "!=", 14) } -sub pp_i_lt { binop(@_, "<", 15) } -sub pp_i_gt { binop(@_, ">", 15) } -sub pp_i_ge { binop(@_, ">=", 15) } -sub pp_i_le { binop(@_, "<=", 15) } -sub pp_i_ncmp { maybe_targmy(@_, \&binop, "<=>", 14) } - -sub pp_seq { binop(@_, "eq", 14) } -sub pp_sne { binop(@_, "ne", 14) } -sub pp_slt { binop(@_, "lt", 15) } -sub pp_sgt { binop(@_, "gt", 15) } -sub pp_sge { binop(@_, "ge", 15) } -sub pp_sle { binop(@_, "le", 15) } -sub pp_scmp { maybe_targmy(@_, \&binop, "cmp", 14) } - -sub pp_sassign { binop(@_, "=", 7, SWAP_CHILDREN) } -sub pp_aassign { binop(@_, "=", 7, SWAP_CHILDREN | LIST_CONTEXT) } - -sub pp_smartmatch { - my ($self, $op, $cx) = @_; - if ($op->flags & OPf_SPECIAL) { - return $self->deparse($op->last, $cx); - } - else { - binop(@_, "~~", 14); - } -} - -# '.' is special because concats-of-concats are optimized to save copying -# by making all but the first concat stacked. The effect is as if the -# programmer had written '($a . $b) .= $c', except legal. -sub pp_concat { maybe_targmy(@_, \&real_concat) } -sub real_concat { - my $self = shift; - my($op, $cx) = @_; - my $left = $op->first; - my $right = $op->last; - my $eq = ""; - my $prec = 18; - if ($op->flags & OPf_STACKED and $op->first->name ne "concat") { - $eq = "="; - $prec = 7; - } - $left = $self->deparse_binop_left($op, $left, $prec); - $right = $self->deparse_binop_right($op, $right, $prec); - return $self->maybe_parens("$left .$eq $right", $cx, $prec); -} - -sub pp_repeat { maybe_targmy(@_, \&repeat) } - -# 'x' is weird when the left arg is a list -sub repeat { - my $self = shift; - my($op, $cx) = @_; - my $left = $op->first; - my $right = $op->last; - my $eq = ""; - my $prec = 19; - if ($op->flags & OPf_STACKED) { - $eq = "="; - $prec = 7; - } - if (null($right)) { # list repeat; count is inside left-side ex-list - # in 5.21.5 and earlier - my $kid = $left->first->sibling; # skip pushmark - my @exprs; - for (; !null($kid->sibling); $kid = $kid->sibling) { - push @exprs, $self->deparse($kid, 6); - } - $right = $kid; - $left = "(" . join(", ", @exprs). ")"; - } else { - my $dolist = $op->private & OPpREPEAT_DOLIST; - $left = $self->deparse_binop_left($op, $left, $dolist ? 1 : $prec); - if ($dolist) { - $left = "($left)"; - } - } - $right = $self->deparse_binop_right($op, $right, $prec); - return $self->maybe_parens("$left x$eq $right", $cx, $prec); -} - -sub range { - my $self = shift; - my ($op, $cx, $type) = @_; - my $left = $op->first; - my $right = $left->sibling; - $left = $self->deparse($left, 9); - $right = $self->deparse($right, 9); - return $self->maybe_parens("$left $type $right", $cx, 9); -} - -sub pp_flop { - my $self = shift; - my($op, $cx) = @_; - my $flip = $op->first; - my $type = ($flip->flags & OPf_SPECIAL) ? "..." : ".."; - return $self->range($flip->first, $cx, $type); -} - -# one-line while/until is handled in pp_leave - -sub logop { - my $self = shift; - my ($op, $cx, $lowop, $lowprec, $highop, $highprec, $blockname) = @_; - my $left = $op->first; - my $right = $op->first->sibling; - $blockname &&= $self->keyword($blockname); - if ($cx < 1 and is_scope($right) and $blockname - and $self->{'expand'} < 7) - { # if ($a) {$b} - $left = $self->deparse($left, 1); - $right = $self->deparse($right, 0); - return "$blockname ($left) {\n\t$right\n\b}\cK"; - } elsif ($cx < 1 and $blockname and not $self->{'parens'} - and $self->{'expand'} < 7) { # $b if $a - $right = $self->deparse($right, 1); - $left = $self->deparse($left, 1); - return "$right $blockname $left"; - } elsif ($cx > $lowprec and $highop) { # $a && $b - $left = $self->deparse_binop_left($op, $left, $highprec); - $right = $self->deparse_binop_right($op, $right, $highprec); - return $self->maybe_parens("$left $highop $right", $cx, $highprec); - } else { # $a and $b - $left = $self->deparse_binop_left($op, $left, $lowprec); - $right = $self->deparse_binop_right($op, $right, $lowprec); - return $self->maybe_parens("$left $lowop $right", $cx, $lowprec); - } -} - -sub pp_and { logop(@_, "and", 3, "&&", 11, "if") } -sub pp_or { logop(@_, "or", 2, "||", 10, "unless") } -sub pp_dor { logop(@_, "//", 10) } - -# xor is syntactically a logop, but it's really a binop (contrary to -# old versions of opcode.pl). Syntax is what matters here. -sub pp_xor { logop(@_, "xor", 2, "", 0, "") } - -sub logassignop { - my $self = shift; - my ($op, $cx, $opname) = @_; - my $left = $op->first; - my $right = $op->first->sibling->first; # skip sassign - $left = $self->deparse($left, 7); - $right = $self->deparse($right, 7); - return $self->maybe_parens("$left $opname $right", $cx, 7); -} - -sub pp_andassign { logassignop(@_, "&&=") } -sub pp_orassign { logassignop(@_, "||=") } -sub pp_dorassign { logassignop(@_, "//=") } - -sub rv2gv_or_string { - my($self,$op) = @_; - if ($op->name eq "gv") { # could be open("open") or open("###") - my($name,$quoted) = - $self->stash_variable_name("", $self->gv_or_padgv($op)); - $quoted ? $name : "*$name"; - } - else { - $self->deparse($op, 6); - } -} - -sub listop { - my $self = shift; - my($op, $cx, $name, $kid, $nollafr) = @_; - my(@exprs); - my $parens = ($cx >= 5) || $self->{'parens'}; - $kid ||= $op->first->sibling; - # If there are no arguments, add final parentheses (or parenthesize the - # whole thing if the llafr does not apply) to account for cases like - # (return)+1 or setpgrp()+1. When the llafr does not apply, we use a - # precedence of 6 (< comma), as "return, 1" does not need parentheses. - if (null $kid) { - return $nollafr - ? $self->maybe_parens($self->keyword($name), $cx, 7) - : $self->keyword($name) . '()' x (7 < $cx); - } - my $first; - my $fullname = $self->keyword($name); - my $proto = prototype("CORE::$name"); - if ( - ( (defined $proto && $proto =~ /^;?\*/) - || $name eq 'select' # select(F) doesn't have a proto - ) - && $kid->name eq "rv2gv" - && !($kid->private & OPpLVAL_INTRO) - ) { - $first = $self->rv2gv_or_string($kid->first); - } - else { - $first = $self->deparse($kid, 6); - } - if ($name eq "chmod" && $first =~ /^\d+$/) { - $first = sprintf("%#o", $first); - } - $first = "+$first" - if not $parens and not $nollafr and substr($first, 0, 1) eq "("; - push @exprs, $first; - $kid = $kid->sibling; - if (defined $proto && $proto =~ /^\*\*/ && $kid->name eq "rv2gv" - && !($kid->private & OPpLVAL_INTRO)) { - push @exprs, $first = $self->rv2gv_or_string($kid->first); - $kid = $kid->sibling; - } - for (; !null($kid); $kid = $kid->sibling) { - push @exprs, $self->deparse($kid, 6); - } - if ($name eq "reverse" && ($op->private & OPpREVERSE_INPLACE)) { - return "$exprs[0] = $fullname" - . ($parens ? "($exprs[0])" : " $exprs[0]"); - } - - if ($parens && $nollafr) { - return "($fullname " . join(", ", @exprs) . ")"; - } elsif ($parens) { - return "$fullname(" . join(", ", @exprs) . ")"; - } else { - return "$fullname " . join(", ", @exprs); - } -} - -sub pp_bless { listop(@_, "bless") } -sub pp_atan2 { maybe_targmy(@_, \&listop, "atan2") } -sub pp_substr { - my ($self,$op,$cx) = @_; - if ($op->private & OPpSUBSTR_REPL_FIRST) { - return - listop($self, $op, 7, "substr", $op->first->sibling->sibling) - . " = " - . $self->deparse($op->first->sibling, 7); - } - maybe_local(@_, listop(@_, "substr")) -} -sub pp_vec { maybe_targmy(@_, \&maybe_local, listop(@_, "vec")) } -sub pp_index { maybe_targmy(@_, \&listop, "index") } -sub pp_rindex { maybe_targmy(@_, \&listop, "rindex") } -sub pp_sprintf { maybe_targmy(@_, \&listop, "sprintf") } -sub pp_formline { listop(@_, "formline") } # see also deparse_format -sub pp_crypt { maybe_targmy(@_, \&listop, "crypt") } -sub pp_unpack { listop(@_, "unpack") } -sub pp_pack { listop(@_, "pack") } -sub pp_join { maybe_targmy(@_, \&listop, "join") } -sub pp_splice { listop(@_, "splice") } -sub pp_push { maybe_targmy(@_, \&listop, "push") } -sub pp_unshift { maybe_targmy(@_, \&listop, "unshift") } -sub pp_reverse { listop(@_, "reverse") } -sub pp_warn { listop(@_, "warn") } -sub pp_die { listop(@_, "die") } -sub pp_return { listop(@_, "return", undef, 1) } # llafr does not apply -sub pp_open { listop(@_, "open") } -sub pp_pipe_op { listop(@_, "pipe") } -sub pp_tie { listop(@_, "tie") } -sub pp_binmode { listop(@_, "binmode") } -sub pp_dbmopen { listop(@_, "dbmopen") } -sub pp_sselect { listop(@_, "select") } -sub pp_select { listop(@_, "select") } -sub pp_read { listop(@_, "read") } -sub pp_sysopen { listop(@_, "sysopen") } -sub pp_sysseek { listop(@_, "sysseek") } -sub pp_sysread { listop(@_, "sysread") } -sub pp_syswrite { listop(@_, "syswrite") } -sub pp_send { listop(@_, "send") } -sub pp_recv { listop(@_, "recv") } -sub pp_seek { listop(@_, "seek") } -sub pp_fcntl { listop(@_, "fcntl") } -sub pp_ioctl { listop(@_, "ioctl") } -sub pp_flock { maybe_targmy(@_, \&listop, "flock") } -sub pp_socket { listop(@_, "socket") } -sub pp_sockpair { listop(@_, "socketpair") } -sub pp_bind { listop(@_, "bind") } -sub pp_connect { listop(@_, "connect") } -sub pp_listen { listop(@_, "listen") } -sub pp_accept { listop(@_, "accept") } -sub pp_shutdown { listop(@_, "shutdown") } -sub pp_gsockopt { listop(@_, "getsockopt") } -sub pp_ssockopt { listop(@_, "setsockopt") } -sub pp_chown { maybe_targmy(@_, \&listop, "chown") } -sub pp_unlink { maybe_targmy(@_, \&listop, "unlink") } -sub pp_chmod { maybe_targmy(@_, \&listop, "chmod") } -sub pp_utime { maybe_targmy(@_, \&listop, "utime") } -sub pp_rename { maybe_targmy(@_, \&listop, "rename") } -sub pp_link { maybe_targmy(@_, \&listop, "link") } -sub pp_symlink { maybe_targmy(@_, \&listop, "symlink") } -sub pp_mkdir { maybe_targmy(@_, \&listop, "mkdir") } -sub pp_open_dir { listop(@_, "opendir") } -sub pp_seekdir { listop(@_, "seekdir") } -sub pp_waitpid { maybe_targmy(@_, \&listop, "waitpid") } -sub pp_system { maybe_targmy(@_, \&indirop, "system") } -sub pp_exec { maybe_targmy(@_, \&indirop, "exec") } -sub pp_kill { maybe_targmy(@_, \&listop, "kill") } -sub pp_setpgrp { maybe_targmy(@_, \&listop, "setpgrp") } -sub pp_getpriority { maybe_targmy(@_, \&listop, "getpriority") } -sub pp_setpriority { maybe_targmy(@_, \&listop, "setpriority") } -sub pp_shmget { listop(@_, "shmget") } -sub pp_shmctl { listop(@_, "shmctl") } -sub pp_shmread { listop(@_, "shmread") } -sub pp_shmwrite { listop(@_, "shmwrite") } -sub pp_msgget { listop(@_, "msgget") } -sub pp_msgctl { listop(@_, "msgctl") } -sub pp_msgsnd { listop(@_, "msgsnd") } -sub pp_msgrcv { listop(@_, "msgrcv") } -sub pp_semget { listop(@_, "semget") } -sub pp_semctl { listop(@_, "semctl") } -sub pp_semop { listop(@_, "semop") } -sub pp_ghbyaddr { listop(@_, "gethostbyaddr") } -sub pp_gnbyaddr { listop(@_, "getnetbyaddr") } -sub pp_gpbynumber { listop(@_, "getprotobynumber") } -sub pp_gsbyname { listop(@_, "getservbyname") } -sub pp_gsbyport { listop(@_, "getservbyport") } -sub pp_syscall { listop(@_, "syscall") } - -sub pp_glob { - my $self = shift; - my($op, $cx) = @_; - my $kid = $op->first->sibling; # skip pushmark - my $keyword = - $op->flags & OPf_SPECIAL ? 'glob' : $self->keyword('glob'); - my $text = $self->deparse($kid); - return $cx >= 5 || $self->{'parens'} - ? "$keyword($text)" - : "$keyword $text"; -} - -# Truncate is special because OPf_SPECIAL makes a bareword first arg -# be a filehandle. This could probably be better fixed in the core -# by moving the GV lookup into ck_truc. - -sub pp_truncate { - my $self = shift; - my($op, $cx) = @_; - my(@exprs); - my $parens = ($cx >= 5) || $self->{'parens'}; - my $kid = $op->first->sibling; - my $fh; - if ($op->flags & OPf_SPECIAL) { - # $kid is an OP_CONST - $fh = $self->const_sv($kid)->PV; - } else { - $fh = $self->deparse($kid, 6); - $fh = "+$fh" if not $parens and substr($fh, 0, 1) eq "("; - } - my $len = $self->deparse($kid->sibling, 6); - my $name = $self->keyword('truncate'); - if ($parens) { - return "$name($fh, $len)"; - } else { - return "$name $fh, $len"; - } -} - -sub indirop { - my $self = shift; - my($op, $cx, $name) = @_; - my($expr, @exprs); - my $firstkid = my $kid = $op->first->sibling; - my $indir = ""; - if ($op->flags & OPf_STACKED) { - $indir = $kid; - $indir = $indir->first; # skip rv2gv - if (is_scope($indir)) { - $indir = "{" . $self->deparse($indir, 0) . "}"; - $indir = "{;}" if $indir eq "{}"; - } elsif ($indir->name eq "const" && $indir->private & OPpCONST_BARE) { - $indir = $self->const_sv($indir)->PV; - } else { - $indir = $self->deparse($indir, 24); - } - $indir = $indir . " "; - $kid = $kid->sibling; - } - if ($name eq "sort" && $op->private & (OPpSORT_NUMERIC | OPpSORT_INTEGER)) { - $indir = ($op->private & OPpSORT_DESCEND) ? '{$b <=> $a} ' - : '{$a <=> $b} '; - } - elsif ($name eq "sort" && $op->private & OPpSORT_DESCEND) { - $indir = '{$b cmp $a} '; - } - for (; !null($kid); $kid = $kid->sibling) { - $expr = $self->deparse($kid, !$indir && $kid == $firstkid && $name eq "sort" && $firstkid->name eq "entersub" ? 16 : 6); - push @exprs, $expr; - } - my $name2; - if ($name eq "sort" && $op->private & OPpSORT_REVERSE) { - $name2 = $self->keyword('reverse') . ' ' . $self->keyword('sort'); - } - else { $name2 = $self->keyword($name) } - if ($name eq "sort" && ($op->private & OPpSORT_INPLACE)) { - return "$exprs[0] = $name2 $indir $exprs[0]"; - } - - my $args = $indir . join(", ", @exprs); - if ($indir ne "" && $name eq "sort") { - # We don't want to say "sort(f 1, 2, 3)", since perl -w will - # give bareword warnings in that case. Therefore if context - # requires, we'll put parens around the outside "(sort f 1, 2, - # 3)". Unfortunately, we'll currently think the parens are - # necessary more often that they really are, because we don't - # distinguish which side of an assignment we're on. - if ($cx >= 5) { - return "($name2 $args)"; - } else { - return "$name2 $args"; - } - } elsif ( - !$indir && $name eq "sort" - && !null($op->first->sibling) - && $op->first->sibling->name eq 'entersub' - ) { - # We cannot say sort foo(bar), as foo will be interpreted as a - # comparison routine. We have to say sort(...) in that case. - return "$name2($args)"; - } else { - return length $args - ? $self->maybe_parens_func($name2, $args, $cx, 5) - : $name2 . '()' x (7 < $cx); - } - -} - -sub pp_prtf { indirop(@_, "printf") } -sub pp_print { indirop(@_, "print") } -sub pp_say { indirop(@_, "say") } -sub pp_sort { indirop(@_, "sort") } - -sub mapop { - my $self = shift; - my($op, $cx, $name) = @_; - my($expr, @exprs); - my $kid = $op->first; # this is the (map|grep)start - $kid = $kid->first->sibling; # skip a pushmark - my $code = $kid->first; # skip a null - if (is_scope $code) { - $code = "{" . $self->deparse($code, 0) . "} "; - } else { - $code = $self->deparse($code, 24); - $code .= ", " if !null($kid->sibling); - } - $kid = $kid->sibling; - for (; !null($kid); $kid = $kid->sibling) { - $expr = $self->deparse($kid, 6); - push @exprs, $expr if defined $expr; - } - return $self->maybe_parens_func($self->keyword($name), - $code . join(", ", @exprs), $cx, 5); -} - -sub pp_mapwhile { mapop(@_, "map") } -sub pp_grepwhile { mapop(@_, "grep") } -sub pp_mapstart { baseop(@_, "map") } -sub pp_grepstart { baseop(@_, "grep") } - -my %uses_intro; -BEGIN { - @uses_intro{ - eval { require B::Op_private } - ? @{$B::Op_private::ops_using{OPpLVAL_INTRO}} - : qw(gvsv rv2sv rv2hv rv2gv rv2av aelem helem aslice - hslice delete padsv padav padhv enteriter entersub padrange - pushmark cond_expr refassign list) - } = (); - delete @uses_intro{qw( lvref lvrefslice lvavref entersub )}; -} - -sub pp_list { - my $self = shift; - my($op, $cx) = @_; - my($expr, @exprs); - my $kid = $op->first->sibling; # skip pushmark - return '' if class($kid) eq 'NULL'; - my $lop; - my $local = "either"; # could be local(...), my(...), state(...) or our(...) - my $type; - for ($lop = $kid; !null($lop); $lop = $lop->sibling) { - my $lopname = $lop->name; - my $loppriv = $lop->private; - my $newtype; - if ($lopname =~ /^pad[ash]v$/ && $loppriv & OPpLVAL_INTRO) { - if ($loppriv & OPpPAD_STATE) { # state() - ($local = "", last) if $local !~ /^(?:either|state)$/; - $local = "state"; - } else { # my() - ($local = "", last) if $local !~ /^(?:either|my)$/; - $local = "my"; - } - my $padname = $self->padname_sv($lop->targ); - if ($padname->FLAGS & SVpad_TYPED) { - $newtype = $padname->SvSTASH->NAME; - } - } elsif ($lopname =~ /^(?:gv|rv2)([ash])v$/ - && $loppriv & OPpOUR_INTRO - or $lopname eq "null" && class($lop) eq 'UNOP' - && $lop->first->name eq "gvsv" - && $lop->first->private & OPpOUR_INTRO) { # our() - my $newlocal = "local " x !!($loppriv & OPpLVAL_INTRO) . "our"; - ($local = "", last) - if $local ne 'either' && $local ne $newlocal; - $local = $newlocal; - my $funny = !$1 || $1 eq 's' ? '$' : $1 eq 'a' ? '@' : '%'; - if (my $t = $self->find_our_type( - $funny . $self->gv_or_padgv($lop->first)->NAME - )) { - $newtype = $t; - } - } elsif ($lopname ne 'undef' - and !($loppriv & OPpLVAL_INTRO) - || !exists $uses_intro{$lopname eq 'null' - ? substr B::ppname($lop->targ), 3 - : $lopname}) - { - $local = ""; # or not - last; - } elsif ($lopname ne "undef") - { - # local() - ($local = "", last) if $local !~ /^(?:either|local)$/; - $local = "local"; - } - if (defined $type && defined $newtype && $newtype ne $type) { - $local = ''; - last; - } - $type = $newtype; - } - $local = "" if $local eq "either"; # no point if it's all undefs - $local &&= join ' ', map $self->keyword($_), split / /, $local; - $local .= " $type " if $local && length $type; - return $self->deparse($kid, $cx) if null $kid->sibling and not $local; - for (; !null($kid); $kid = $kid->sibling) { - if ($local) { - if (class($kid) eq "UNOP" and $kid->first->name eq "gvsv") { - $lop = $kid->first; - } else { - $lop = $kid; - } - $self->{'avoid_local'}{$$lop}++; - $expr = $self->deparse($kid, 6); - delete $self->{'avoid_local'}{$$lop}; - } else { - $expr = $self->deparse($kid, 6); - } - push @exprs, $expr; - } - if ($local) { - return "$local(" . join(", ", @exprs) . ")"; - } else { - return $self->maybe_parens( join(", ", @exprs), $cx, 6); - } -} - -sub is_ifelse_cont { - my $op = shift; - return ($op->name eq "null" and class($op) eq "UNOP" - and $op->first->name =~ /^(and|cond_expr)$/ - and is_scope($op->first->first->sibling)); -} - -sub pp_cond_expr { - my $self = shift; - my($op, $cx) = @_; - my $cond = $op->first; - my $true = $cond->sibling; - my $false = $true->sibling; - my $cuddle = $self->{'cuddle'}; - unless ($cx < 1 and (is_scope($true) and $true->name ne "null") and - (is_scope($false) || is_ifelse_cont($false)) - and $self->{'expand'} < 7) { - $cond = $self->deparse($cond, 8); - $true = $self->deparse($true, 6); - $false = $self->deparse($false, 8); - return $self->maybe_parens("$cond ? $true : $false", $cx, 8); - } - - $cond = $self->deparse($cond, 1); - $true = $self->deparse($true, 0); - my $head = $self->keyword("if") . " ($cond) {\n\t$true\n\b}"; - my @elsifs; - my $elsif; - while (!null($false) and is_ifelse_cont($false)) { - my $newop = $false->first; - my $newcond = $newop->first; - my $newtrue = $newcond->sibling; - $false = $newtrue->sibling; # last in chain is OP_AND => no else - if ($newcond->name eq "lineseq") - { - # lineseq to ensure correct line numbers in elsif() - # Bug #37302 fixed by change #33710. - $newcond = $newcond->first->sibling; - } - $newcond = $self->deparse($newcond, 1); - $newtrue = $self->deparse($newtrue, 0); - $elsif ||= $self->keyword("elsif"); - push @elsifs, "$elsif ($newcond) {\n\t$newtrue\n\b}"; - } - if (!null($false)) { - $false = $cuddle . $self->keyword("else") . " {\n\t" . - $self->deparse($false, 0) . "\n\b}\cK"; - } else { - $false = "\cK"; - } - return $head . join($cuddle, "", @elsifs) . $false; -} - -sub pp_once { - my ($self, $op, $cx) = @_; - my $cond = $op->first; - my $true = $cond->sibling; - - my $ret = $self->deparse($true, $cx); - $ret =~ s/^(\(?)\$/$1 . $self->keyword("state") . ' $'/e; - $ret; -} - -sub loop_common { - my $self = shift; - my($op, $cx, $init) = @_; - my $enter = $op->first; - my $kid = $enter->sibling; - local(@$self{qw'curstash warnings hints hinthash'}) - = @$self{qw'curstash warnings hints hinthash'}; - my $head = ""; - my $bare = 0; - my $body; - my $cond = undef; - my $name; - if ($kid->name eq "lineseq") { # bare or infinite loop - if ($kid->last->name eq "unstack") { # infinite - $head = "while (1) "; # Can't use for(;;) if there's a continue - $cond = ""; - } else { - $bare = 1; - } - $body = $kid; - } elsif ($enter->name eq "enteriter") { # foreach - my $ary = $enter->first->sibling; # first was pushmark - my $var = $ary->sibling; - if ($ary->name eq 'null' and $enter->private & OPpITER_REVERSED) { - # "reverse" was optimised away - $ary = listop($self, $ary->first->sibling, 1, 'reverse'); - } elsif ($enter->flags & OPf_STACKED - and not null $ary->first->sibling->sibling) - { - $ary = $self->deparse($ary->first->sibling, 9) . " .. " . - $self->deparse($ary->first->sibling->sibling, 9); - } else { - $ary = $self->deparse($ary, 1); - } - if (null $var) { - $var = $self->pp_padsv($enter, 1, 1); - } elsif ($var->name eq "rv2gv") { - $var = $self->pp_rv2sv($var, 1); - if ($enter->private & OPpOUR_INTRO) { - # our declarations don't have package names - $var =~ s/^(.).*::/$1/; - $var = "our $var"; - } - } elsif ($var->name eq "gv") { - $var = "\$" . $self->deparse($var, 1); - } else { - $var = $self->deparse($var, 1); - } - $body = $kid->first->first->sibling; # skip OP_AND and OP_ITER - if (!is_state $body->first and $body->first->name !~ /^(?:stub|leave|scope)$/) { - confess unless $var eq '$_'; - $body = $body->first; - return $self->deparse($body, 2) . " " - . $self->keyword("foreach") . " ($ary)"; - } - $head = "foreach $var ($ary) "; - } elsif ($kid->name eq "null") { # while/until - $kid = $kid->first; - $name = {"and" => "while", "or" => "until"}->{$kid->name}; - $cond = $kid->first; - $body = $kid->first->sibling; - } elsif ($kid->name eq "stub") { # bare and empty - return "{;}"; # {} could be a hashref - } - # If there isn't a continue block, then the next pointer for the loop - # will point to the unstack, which is kid's last child, except - # in a bare loop, when it will point to the leaveloop. When neither of - # these conditions hold, then the second-to-last child is the continue - # block (or the last in a bare loop). - my $cont_start = $enter->nextop; - my $cont; - my $precond; - my $postcond; - if ($$cont_start != $$op && ${$cont_start} != ${$body->last}) { - if ($bare) { - $cont = $body->last; - } else { - $cont = $body->first; - while (!null($cont->sibling->sibling)) { - $cont = $cont->sibling; - } - } - my $state = $body->first; - my $cuddle = $self->{'cuddle'}; - my @states; - for (; $$state != $$cont; $state = $state->sibling) { - push @states, $state; - } - $body = $self->lineseq(undef, 0, @states); - if (defined $cond and not is_scope $cont and $self->{'expand'} < 3) { - $precond = "for ($init; "; - $postcond = "; " . $self->deparse($cont, 1) .") "; - $cont = "\cK"; - } else { - $cont = $cuddle . "continue {\n\t" . - $self->deparse($cont, 0) . "\n\b}\cK"; - } - } else { - return "" if !defined $body; - if (length $init) { - $precond = "for ($init; "; - $postcond = ";) "; - } - $cont = "\cK"; - $body = $self->deparse($body, 0); - } - if ($precond) { # for(;;) - $cond &&= $name eq 'until' - ? listop($self, undef, 1, "not", $cond->first) - : $self->deparse($cond, 1); - $head = "$precond$cond$postcond"; - } - if ($name && !$head) { - ref $cond and $cond = $self->deparse($cond, 1); - $head = "$name ($cond) "; - } - $head =~ s/^(for(?:each)?|while|until)/$self->keyword($1)/e; - $body =~ s/;?$/;\n/; - - return $head . "{\n\t" . $body . "\b}" . $cont; -} - -sub pp_leaveloop { shift->loop_common(@_, "") } - -sub for_loop { - my $self = shift; - my($op, $cx) = @_; - my $init = $self->deparse($op, 1); - my $s = $op->sibling; - my $ll = $s->name eq "unstack" ? $s->sibling : $s->first->sibling; - return $self->loop_common($ll, $cx, $init); -} - -sub pp_leavetry { - my $self = shift; - return "eval {\n\t" . $self->pp_leave(@_) . "\n\b}"; -} - -sub _op_is_or_was { - my ($op, $expect_type) = @_; - my $type = $op->type; - return($type == $expect_type - || ($type == OP_NULL && $op->targ == $expect_type)); -} - -sub pp_null { - my($self, $op, $cx) = @_; - if (class($op) eq "OP") { - # old value is lost - return $self->{'ex_const'} if $op->targ == OP_CONST; - } elsif (class ($op) eq "COP") { - return &pp_nextstate; - } elsif ($op->first->name eq 'pushmark' - or $op->first->name eq 'null' - && $op->first->targ == OP_PUSHMARK - && _op_is_or_was($op, OP_LIST)) { - return $self->pp_list($op, $cx); - } elsif ($op->first->name eq "enter") { - return $self->pp_leave($op, $cx); - } elsif ($op->first->name eq "leave") { - return $self->pp_leave($op->first, $cx); - } elsif ($op->first->name eq "scope") { - return $self->pp_scope($op->first, $cx); - } elsif ($op->targ == OP_STRINGIFY) { - return $self->dquote($op, $cx); - } elsif ($op->targ == OP_GLOB) { - return $self->pp_glob( - $op->first # entersub - ->first # ex-list - ->first # pushmark - ->sibling, # glob - $cx - ); - } elsif (!null($op->first->sibling) and - $op->first->sibling->name eq "readline" and - $op->first->sibling->flags & OPf_STACKED) { - return $self->maybe_parens($self->deparse($op->first, 7) . " = " - . $self->deparse($op->first->sibling, 7), - $cx, 7); - } elsif (!null($op->first->sibling) and - $op->first->sibling->name =~ /^transr?\z/ and - $op->first->sibling->flags & OPf_STACKED) { - return $self->maybe_parens($self->deparse($op->first, 20) . " =~ " - . $self->deparse($op->first->sibling, 20), - $cx, 20); - } elsif ($op->flags & OPf_SPECIAL && $cx < 1 && !$op->targ) { - return ($self->lex_in_scope("&do") ? "CORE::do" : "do") - . " {\n\t". $self->deparse($op->first, $cx) ."\n\b};"; - } elsif (!null($op->first->sibling) and - $op->first->sibling->name eq "null" and - class($op->first->sibling) eq "UNOP" and - $op->first->sibling->first->flags & OPf_STACKED and - $op->first->sibling->first->name eq "rcatline") { - return $self->maybe_parens($self->deparse($op->first, 18) . " .= " - . $self->deparse($op->first->sibling, 18), - $cx, 18); - } else { - return $self->deparse($op->first, $cx); - } -} - -sub padname { - my $self = shift; - my $targ = shift; - return $self->padname_sv($targ)->PVX; -} - -sub padany { - my $self = shift; - my $op = shift; - return substr($self->padname($op->targ), 1); # skip $/@/% -} - -sub pp_padsv { - my $self = shift; - my($op, $cx, $forbid_parens) = @_; - my $targ = $op->targ; - return $self->maybe_my($op, $cx, $self->padname($targ), - $self->padname_sv($targ), - $forbid_parens); -} - -sub pp_padav { pp_padsv(@_) } -sub pp_padhv { pp_padsv(@_) } - -sub gv_or_padgv { - my $self = shift; - my $op = shift; - if (class($op) eq "PADOP") { - return $self->padval($op->padix); - } else { # class($op) eq "SVOP" - return $op->gv; - } -} - -sub pp_gvsv { - my $self = shift; - my($op, $cx) = @_; - my $gv = $self->gv_or_padgv($op); - return $self->maybe_local($op, $cx, $self->stash_variable("\$", - $self->gv_name($gv), $cx)); -} - -sub pp_gv { - my $self = shift; - my($op, $cx) = @_; - my $gv = $self->gv_or_padgv($op); - return $self->gv_name($gv); -} - -sub pp_aelemfast_lex { - my $self = shift; - my($op, $cx) = @_; - my $name = $self->padname($op->targ); - $name =~ s/^@/\$/; - my $i = $op->private; - $i -= 256 if $i > 127; - return $name . "[" . ($i + $self->{'arybase'}) . "]"; -} - -sub pp_aelemfast { - my $self = shift; - my($op, $cx) = @_; - # optimised PADAV, pre 5.15 - return $self->pp_aelemfast_lex(@_) if ($op->flags & OPf_SPECIAL); - - my $gv = $self->gv_or_padgv($op); - my($name,$quoted) = $self->stash_variable_name('@',$gv); - $name = $quoted ? "$name->" : '$' . $name; - my $i = $op->private; - $i -= 256 if $i > 127; - return $name . "[" . ($i + $self->{'arybase'}) . "]"; -} - -sub rv2x { - my $self = shift; - my($op, $cx, $type) = @_; - - if (class($op) eq 'NULL' || !$op->can("first")) { - carp("Unexpected op in pp_rv2x"); - return 'XXX'; - } - my $kid = $op->first; - if ($kid->name eq "gv") { - return $self->stash_variable($type, $self->deparse($kid, 0), $cx); - } elsif (is_scalar $kid) { - my $str = $self->deparse($kid, 0); - if ($str =~ /^\$([^\w\d])\z/) { - # "$$+" isn't a legal way to write the scalar dereference - # of $+, since the lexer can't tell you aren't trying to - # do something like "$$ + 1" to get one more than your - # PID. Either "${$+}" or "$${+}" are workable - # disambiguations, but if the programmer did the former, - # they'd be in the "else" clause below rather than here. - # It's not clear if this should somehow be unified with - # the code in dq and re_dq that also adds lexer - # disambiguation braces. - $str = '$' . "{$1}"; #' - } - return $type . $str; - } else { - return $type . "{" . $self->deparse($kid, 0) . "}"; - } -} - -sub pp_rv2sv { maybe_local(@_, rv2x(@_, "\$")) } -sub pp_rv2hv { maybe_local(@_, rv2x(@_, "%")) } -sub pp_rv2gv { maybe_local(@_, rv2x(@_, "*")) } - -# skip rv2av -sub pp_av2arylen { - my $self = shift; - my($op, $cx) = @_; - if ($op->first->name eq "padav") { - return $self->maybe_local($op, $cx, '$#' . $self->padany($op->first)); - } else { - return $self->maybe_local($op, $cx, - $self->rv2x($op->first, $cx, '$#')); - } -} - -# skip down to the old, ex-rv2cv -sub pp_rv2cv { - my ($self, $op, $cx) = @_; - if (!null($op->first) && $op->first->name eq 'null' && - $op->first->targ == OP_LIST) - { - return $self->rv2x($op->first->first->sibling, $cx, "&") - } - else { - return $self->rv2x($op, $cx, "") - } -} - -sub list_const { - my $self = shift; - my($cx, @list) = @_; - my @a = map $self->const($_, 6), @list; - if (@a == 0) { - return "()"; - } elsif (@a == 1) { - return $a[0]; - } elsif ( @a > 2 and !grep(!/^-?\d+$/, @a)) { - # collapse (-1,0,1,2) into (-1..2) - my ($s, $e) = @a[0,-1]; - my $i = $s; - return $self->maybe_parens("$s..$e", $cx, 9) - unless grep $i++ != $_, @a; - } - return $self->maybe_parens(join(", ", @a), $cx, 6); -} - -sub pp_rv2av { - my $self = shift; - my($op, $cx) = @_; - my $kid = $op->first; - if ($kid->name eq "const") { # constant list - my $av = $self->const_sv($kid); - return $self->list_const($cx, $av->ARRAY); - } else { - return $self->maybe_local($op, $cx, $self->rv2x($op, $cx, "\@")); - } - } - -sub is_subscriptable { - my $op = shift; - if ($op->name =~ /^([ahg]elem|multideref$)/) { - return 1; - } elsif ($op->name eq "entersub") { - my $kid = $op->first; - return 0 unless null $kid->sibling; - $kid = $kid->first; - $kid = $kid->sibling until null $kid->sibling; - return 0 if is_scope($kid); - $kid = $kid->first; - return 0 if $kid->name eq "gv" || $kid->name eq "padcv"; - return 0 if is_scalar($kid); - return is_subscriptable($kid); - } else { - return 0; - } -} - -sub elem_or_slice_array_name -{ - my $self = shift; - my ($array, $left, $padname, $allow_arrow) = @_; - - if ($array->name eq $padname) { - return $self->padany($array); - } elsif (is_scope($array)) { # ${expr}[0] - return "{" . $self->deparse($array, 0) . "}"; - } elsif ($array->name eq "gv") { - ($array, my $quoted) = - $self->stash_variable_name( - $left eq '[' ? '@' : '%', $self->gv_or_padgv($array) - ); - if (!$allow_arrow && $quoted) { - # This cannot happen. - die "Invalid variable name $array for slice"; - } - return $quoted ? "$array->" : $array; - } elsif (!$allow_arrow || is_scalar $array) { # $x[0], $$x[0], ... - return $self->deparse($array, 24); - } else { - return undef; - } -} - -sub elem_or_slice_single_index -{ - my $self = shift; - my ($idx) = @_; - - $idx = $self->deparse($idx, 1); - - # Outer parens in an array index will confuse perl - # if we're interpolating in a regular expression, i.e. - # /$x$foo[(-1)]/ is *not* the same as /$x$foo[-1]/ - # - # If $self->{parens}, then an initial '(' will - # definitely be paired with a final ')'. If - # !$self->{parens}, the misleading parens won't - # have been added in the first place. - # - # [You might think that we could get "(...)...(...)" - # where the initial and final parens do not match - # each other. But we can't, because the above would - # only happen if there's an infix binop between the - # two pairs of parens, and *that* means that the whole - # expression would be parenthesized as well.] - # - $idx =~ s/^\((.*)\)$/$1/ if $self->{'parens'}; - - # Hash-element braces will autoquote a bareword inside themselves. - # We need to make sure that C<$hash{warn()}> doesn't come out as - # C<$hash{warn}>, which has a quite different meaning. Currently - # B::Deparse will always quote strings, even if the string was a - # bareword in the original (i.e. the OPpCONST_BARE flag is ignored - # for constant strings.) So we can cheat slightly here - if we see - # a bareword, we know that it is supposed to be a function call. - # - $idx =~ s/^([A-Za-z_]\w*)$/$1()/; - - return $idx; -} - -sub elem { - my $self = shift; - my ($op, $cx, $left, $right, $padname) = @_; - my($array, $idx) = ($op->first, $op->first->sibling); - - $idx = $self->elem_or_slice_single_index($idx); - - unless ($array->name eq $padname) { # Maybe this has been fixed - $array = $array->first; # skip rv2av (or ex-rv2av in _53+) - } - if (my $array_name=$self->elem_or_slice_array_name - ($array, $left, $padname, 1)) { - return ($array_name =~ /->\z/ - ? $array_name - : $array_name eq '#' ? '${#}' : "\$" . $array_name) - . $left . $idx . $right; - } else { - # $x[20][3]{hi} or expr->[20] - my $arrow = is_subscriptable($array) ? "" : "->"; - return $self->deparse($array, 24) . $arrow . $left . $idx . $right; - } - -} - -# a simplified version of elem_or_slice_array_name() -# for the use of pp_multideref - -sub multideref_var_name { - my $self = shift; - my ($gv, $is_hash) = @_; - - my ($name, $quoted) = - $self->stash_variable_name( $is_hash ? '%' : '@', $gv); - return $quoted ? "$name->" - : $name eq '#' - ? '${#}' # avoid ${#}[1] => $#[1] - : '$' . $name; -} - - -sub pp_multideref { - my $self = shift; - my($op, $cx) = @_; - my $text = ""; - - if ($op->private & OPpMULTIDEREF_EXISTS) { - $text = $self->keyword("exists"). " "; - } - elsif ($op->private & OPpMULTIDEREF_DELETE) { - $text = $self->keyword("delete"). " "; - } - elsif ($op->private & OPpLVAL_INTRO) { - $text = $self->keyword("local"). " "; - } - - if ($op->first && ($op->first->flags & OPf_KIDS)) { - # arbitrary initial expression, e.g. f(1,2,3)->[...] - $text .= $self->deparse($op->first, 24); - } - - my @items = $op->aux_list($self->{curcv}); - my $actions = shift @items; - - my $is_hash; - my $derefs = 0; - - while (1) { - if (($actions & MDEREF_ACTION_MASK) == MDEREF_reload) { - $actions = shift @items; - next; - } - - $is_hash = ( - ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_pop_rv2hv_helem - || ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_gvsv_vivify_rv2hv_helem - || ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_padsv_vivify_rv2hv_helem - || ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_vivify_rv2hv_helem - || ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_padhv_helem - || ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_gvhv_helem - ); - - if ( ($actions & MDEREF_ACTION_MASK) == MDEREF_AV_padav_aelem - || ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_padhv_helem) - { - $derefs = 1; - $text .= '$' . substr($self->padname(shift @items), 1); - } - elsif ( ($actions & MDEREF_ACTION_MASK) == MDEREF_AV_gvav_aelem - || ($actions & MDEREF_ACTION_MASK) == MDEREF_HV_gvhv_helem) - { - $derefs = 1; - $text .= $self->multideref_var_name(shift @items, $is_hash); - } - else { - if ( ($actions & MDEREF_ACTION_MASK) == - MDEREF_AV_padsv_vivify_rv2av_aelem - || ($actions & MDEREF_ACTION_MASK) == - MDEREF_HV_padsv_vivify_rv2hv_helem) - { - $text .= $self->padname(shift @items); - } - elsif ( ($actions & MDEREF_ACTION_MASK) == - MDEREF_AV_gvsv_vivify_rv2av_aelem - || ($actions & MDEREF_ACTION_MASK) == - MDEREF_HV_gvsv_vivify_rv2hv_helem) - { - $text .= $self->multideref_var_name(shift @items, $is_hash); - } - elsif ( ($actions & MDEREF_ACTION_MASK) == - MDEREF_AV_pop_rv2av_aelem - || ($actions & MDEREF_ACTION_MASK) == - MDEREF_HV_pop_rv2hv_helem) - { - if ( ($op->flags & OPf_KIDS) - && ( _op_is_or_was($op->first, OP_RV2AV) - || _op_is_or_was($op->first, OP_RV2HV)) - && ($op->first->flags & OPf_KIDS) - && ( _op_is_or_was($op->first->first, OP_AELEM) - || _op_is_or_was($op->first->first, OP_HELEM)) - ) - { - $derefs++; - } - } - - $text .= '->' if !$derefs++; - } - - - if (($actions & MDEREF_INDEX_MASK) == MDEREF_INDEX_none) { - last; - } - - $text .= $is_hash ? '{' : '['; - - if (($actions & MDEREF_INDEX_MASK) == MDEREF_INDEX_const) { - my $key = shift @items; - if ($is_hash) { - $text .= $self->const($key, $cx); - } - else { - $text .= $key; - } - } - elsif (($actions & MDEREF_INDEX_MASK) == MDEREF_INDEX_padsv) { - $text .= $self->padname(shift @items); - } - elsif (($actions & MDEREF_INDEX_MASK) == MDEREF_INDEX_gvsv) { - $text .= '$' . ($self->stash_variable_name('$', shift @items))[0]; - } - - $text .= $is_hash ? '}' : ']'; - - if ($actions & MDEREF_FLAG_last) { - last; - } - $actions >>= MDEREF_SHIFT; - } - - return $text; -} - - -sub pp_aelem { maybe_local(@_, elem(@_, "[", "]", "padav")) } -sub pp_helem { maybe_local(@_, elem(@_, "{", "}", "padhv")) } - -sub pp_gelem { - my $self = shift; - my($op, $cx) = @_; - my($glob, $part) = ($op->first, $op->last); - $glob = $glob->first; # skip rv2gv - $glob = $glob->first if $glob->name eq "rv2gv"; # this one's a bug - my $scope = is_scope($glob); - $glob = $self->deparse($glob, 0); - $part = $self->deparse($part, 1); - return "*" . ($scope ? "{$glob}" : $glob) . "{$part}"; -} - -sub slice { - my $self = shift; - my ($op, $cx, $left, $right, $regname, $padname) = @_; - my $last; - my(@elems, $kid, $array, $list); - if (class($op) eq "LISTOP") { - $last = $op->last; - } else { # ex-hslice inside delete() - for ($kid = $op->first; !null $kid->sibling; $kid = $kid->sibling) {} - $last = $kid; - } - $array = $last; - $array = $array->first - if $array->name eq $regname or $array->name eq "null"; - $array = $self->elem_or_slice_array_name($array,$left,$padname,0); - $kid = $op->first->sibling; # skip pushmark - if ($kid->name eq "list") { - $kid = $kid->first->sibling; # skip list, pushmark - for (; !null $kid; $kid = $kid->sibling) { - push @elems, $self->deparse($kid, 6); - } - $list = join(", ", @elems); - } else { - $list = $self->elem_or_slice_single_index($kid); - } - my $lead = '@'; - $lead = '%' if $op->name =~ /^kv/i; - return $lead . $array . $left . $list . $right; -} - -sub pp_aslice { maybe_local(@_, slice(@_, "[", "]", "rv2av", "padav")) } -sub pp_kvaslice { slice(@_, "[", "]", "rv2av", "padav") } -sub pp_hslice { maybe_local(@_, slice(@_, "{", "}", "rv2hv", "padhv")) } -sub pp_kvhslice { slice(@_, "{", "}", "rv2hv", "padhv") } - -sub pp_lslice { - my $self = shift; - my($op, $cx) = @_; - my $idx = $op->first; - my $list = $op->last; - my(@elems, $kid); - $list = $self->deparse($list, 1); - $idx = $self->deparse($idx, 1); - return "($list)" . "[$idx]"; -} - -sub want_scalar { - my $op = shift; - return ($op->flags & OPf_WANT) == OPf_WANT_SCALAR; -} - -sub want_list { - my $op = shift; - return ($op->flags & OPf_WANT) == OPf_WANT_LIST; -} - -sub _method { - my $self = shift; - my($op, $cx) = @_; - my $kid = $op->first->sibling; # skip pushmark - my($meth, $obj, @exprs); - if ($kid->name eq "list" and want_list $kid) { - # When an indirect object isn't a bareword but the args are in - # parens, the parens aren't part of the method syntax (the LLAFR - # doesn't apply), but they make a list with OPf_PARENS set that - # doesn't get flattened by the append_elem that adds the method, - # making a (object, arg1, arg2, ...) list where the object - # usually is. This can be distinguished from - # '($obj, $arg1, $arg2)->meth()' (which is legal if $arg2 is an - # object) because in the later the list is in scalar context - # as the left side of -> always is, while in the former - # the list is in list context as method arguments always are. - # (Good thing there aren't method prototypes!) - $meth = $kid->sibling; - $kid = $kid->first->sibling; # skip pushmark - $obj = $kid; - $kid = $kid->sibling; - for (; not null $kid; $kid = $kid->sibling) { - push @exprs, $kid; - } - } else { - $obj = $kid; - $kid = $kid->sibling; - for (; !null ($kid->sibling) && $kid->name!~/^method(?:_named)?\z/; - $kid = $kid->sibling) { - push @exprs, $kid - } - $meth = $kid; - } - - if ($meth->name eq "method_named") { - $meth = $self->meth_sv($meth)->PV; - } elsif ($meth->name eq "method_super") { - $meth = "SUPER::".$self->meth_sv($meth)->PV; - } elsif ($meth->name eq "method_redir") { - $meth = $self->meth_rclass_sv($meth)->PV.'::'.$self->meth_sv($meth)->PV; - } elsif ($meth->name eq "method_redir_super") { - $meth = $self->meth_rclass_sv($meth)->PV.'::SUPER::'. - $self->meth_sv($meth)->PV; - } else { - $meth = $meth->first; - if ($meth->name eq "const") { - # As of 5.005_58, this case is probably obsoleted by the - # method_named case above - $meth = $self->const_sv($meth)->PV; # needs to be bare - } - } - - return { method => $meth, variable_method => ref($meth), - object => $obj, args => \@exprs }, - $cx; -} - -# compat function only -sub method { - my $self = shift; - my $info = $self->_method(@_); - return $self->e_method( $self->_method(@_) ); -} - -sub e_method { - my ($self, $info, $cx) = @_; - my $obj = $self->deparse($info->{object}, 24); - - my $meth = $info->{method}; - $meth = $self->deparse($meth, 1) if $info->{variable_method}; - my $args = join(", ", map { $self->deparse($_, 6) } @{$info->{args}} ); - if ($info->{object}->name eq 'scope' && want_list $info->{object}) { - # method { $object } - # This must be deparsed this way to preserve list context - # of $object. - my $need_paren = $cx >= 6; - return '(' x $need_paren - . $meth . substr($obj,2) # chop off the "do" - . " $args" - . ')' x $need_paren; - } - my $kid = $obj . "->" . $meth; - if (length $args) { - return $kid . "(" . $args . ")"; # parens mandatory - } else { - return $kid; - } -} - -# returns "&" if the prototype doesn't match the args, -# or ("", $args_after_prototype_demunging) if it does. -sub check_proto { - my $self = shift; - return "&" if $self->{'noproto'}; - my($proto, @args) = @_; - my($arg, $real); - my $doneok = 0; - my @reals; - # An unbackslashed @ or % gobbles up the rest of the args - 1 while $proto =~ s/(?deparse($_, 6), @args); - @args = (); - } else { - $arg = shift @args; - last unless $arg; - if ($chr eq "\$" || $chr eq "_") { - if (want_scalar $arg) { - push @reals, $self->deparse($arg, 6); - } else { - return "&"; - } - } elsif ($chr eq "&") { - if ($arg->name =~ /^(s?refgen|undef)$/) { - push @reals, $self->deparse($arg, 6); - } else { - return "&"; - } - } elsif ($chr eq "*") { - if ($arg->name =~ /^s?refgen$/ - and $arg->first->first->name eq "rv2gv") - { - $real = $arg->first->first; # skip refgen, null - if ($real->first->name eq "gv") { - push @reals, $self->deparse($real, 6); - } else { - push @reals, $self->deparse($real->first, 6); - } - } else { - return "&"; - } - } elsif (substr($chr, 0, 1) eq "\\") { - $chr =~ tr/\\[]//d; - if ($arg->name =~ /^s?refgen$/ and - !null($real = $arg->first) and - ($chr =~ /\$/ && is_scalar($real->first) - or ($chr =~ /@/ - && class($real->first->sibling) ne 'NULL' - && $real->first->sibling->name - =~ /^(rv2|pad)av$/) - or ($chr =~ /%/ - && class($real->first->sibling) ne 'NULL' - && $real->first->sibling->name - =~ /^(rv2|pad)hv$/) - #or ($chr =~ /&/ # This doesn't work - # && $real->first->name eq "rv2cv") - or ($chr =~ /\*/ - && $real->first->name eq "rv2gv"))) - { - push @reals, $self->deparse($real, 6); - } else { - return "&"; - } - } - } - } - return "&" if $proto and !$doneok; # too few args and no ';' - return "&" if @args; # too many args - return ("", join ", ", @reals); -} - -sub retscalar { - my $name = $_[0]->name; - # XXX There has to be a better way of doing this scalar-op check. - # Currently PL_opargs is not exposed. - if ($name eq 'null') { - $name = substr B::ppname($_[0]->targ), 3 - } - $name =~ /^(?:scalar|pushmark|wantarray|const|gvsv|gv|padsv|rv2gv - |rv2sv|av2arylen|anoncode|prototype|srefgen|ref|bless - |regcmaybe|regcreset|regcomp|qr|subst|substcont|trans - |transr|sassign|chop|schop|chomp|schomp|defined|undef - |study|pos|preinc|i_preinc|predec|i_predec|postinc - |i_postinc|postdec|i_postdec|pow|multiply|i_multiply - |divide|i_divide|modulo|i_modulo|add|i_add|subtract - |i_subtract|concat|stringify|left_shift|right_shift|lt - |i_lt|gt|i_gt|le|i_le|ge|i_ge|eq|i_eq|ne|i_ne|ncmp|i_ncmp - |slt|sgt|sle|sge|seq|sne|scmp|[sn]?bit_(?:and|x?or)|negate - |i_negate|not|[sn]?complement|smartmatch|atan2|sin|cos - |rand|srand|exp|log|sqrt|int|hex|oct|abs|length|substr - |vec|index|rindex|sprintf|formline|ord|chr|crypt|ucfirst - |lcfirst|uc|lc|quotemeta|aelemfast|aelem|exists|helem - |pack|join|anonlist|anonhash|push|pop|shift|unshift|xor - |andassign|orassign|dorassign|warn|die|reset|nextstate - |dbstate|unstack|last|next|redo|dump|goto|exit|open|close - |pipe_op|fileno|umask|binmode|tie|untie|tied|dbmopen - |dbmclose|select|getc|read|enterwrite|prtf|print|say - |sysopen|sysseek|sysread|syswrite|eof|tell|seek|truncate - |fcntl|ioctl|flock|send|recv|socket|sockpair|bind|connect - |listen|accept|shutdown|gsockopt|ssockopt|getsockname - |getpeername|ftrread|ftrwrite|ftrexec|fteread|ftewrite - |fteexec|ftis|ftsize|ftmtime|ftatime|ftctime|ftrowned - |fteowned|ftzero|ftsock|ftchr|ftblk|ftfile|ftdir|ftpipe - |ftsuid|ftsgid|ftsvtx|ftlink|fttty|fttext|ftbinary|chdir - |chown|chroot|unlink|chmod|utime|rename|link|symlink - |readlink|mkdir|rmdir|open_dir|telldir|seekdir|rewinddir - |closedir|fork|wait|waitpid|system|exec|kill|getppid - |getpgrp|setpgrp|getpriority|setpriority|time|alarm|sleep - |shmget|shmctl|shmread|shmwrite|msgget|msgctl|msgsnd - |msgrcv|semop|semget|semctl|hintseval|shostent|snetent - |sprotoent|sservent|ehostent|enetent|eprotoent|eservent - |spwent|epwent|sgrent|egrent|getlogin|syscall|lock|runcv - |fc)\z/x -} - -sub pp_entersub { - my $self = shift; - my($op, $cx) = @_; - return $self->e_method($self->_method($op, $cx)) - unless null $op->first->sibling; - my $prefix = ""; - my $amper = ""; - my($kid, @exprs); - if ($op->flags & OPf_SPECIAL && !($op->flags & OPf_MOD)) { - $prefix = "do "; - } elsif ($op->private & OPpENTERSUB_AMPER) { - $amper = "&"; - } - $kid = $op->first; - $kid = $kid->first->sibling; # skip ex-list, pushmark - for (; not null $kid->sibling; $kid = $kid->sibling) { - push @exprs, $kid; - } - my $simple = 0; - my $proto = undef; - my $lexical; - if (is_scope($kid)) { - $amper = "&"; - $kid = "{" . $self->deparse($kid, 0) . "}"; - } elsif ($kid->first->name eq "gv") { - my $gv = $self->gv_or_padgv($kid->first); - my $cv; - if (class($gv) eq 'GV' && class($cv = $gv->CV) ne "SPECIAL" - || $gv->FLAGS & SVf_ROK && class($cv = $gv->RV) eq 'CV') { - $proto = $cv->PV if $cv->FLAGS & SVf_POK; - } - $simple = 1; # only calls of named functions can be prototyped - $kid = $self->deparse($kid, 24); - my $fq; - # Fully qualify any sub name that conflicts with a lexical. - if ($self->lex_in_scope("&$kid") - || $self->lex_in_scope("&$kid", 1)) - { - $fq++; - } elsif (!$amper) { - if ($kid eq 'main::') { - $kid = '::'; - } - else { - if ($kid !~ /::/ && $kid ne 'x') { - # Fully qualify any sub name that is also a keyword. While - # we could check the import flag, we cannot guarantee that - # the code deparsed so far would set that flag, so we qual- - # ify the names regardless of importation. - if (exists $feature_keywords{$kid}) { - $fq++ if $self->feature_enabled($kid); - } elsif (do { local $@; local $SIG{__DIE__}; - eval { () = prototype "CORE::$kid"; 1 } }) { - $fq++ - } - } - if ($kid !~ /^(?:\w|::)(?:[\w\d]|::(?!\z))*\z/) { - $kid = single_delim("q", "'", $kid, $self) . '->'; - } - } - } - $fq and substr $kid, 0, 0, = $self->{'curstash'}.'::'; - } elsif (is_scalar ($kid->first) && $kid->first->name ne 'rv2cv') { - $amper = "&"; - $kid = $self->deparse($kid, 24); - } else { - $prefix = ""; - my $grandkid = $kid->first; - my $arrow = ($lexical = $grandkid->name eq "padcv") - || is_subscriptable($grandkid) - ? "" - : "->"; - $kid = $self->deparse($kid, 24) . $arrow; - if ($lexical) { - my $padlist = $self->{'curcv'}->PADLIST; - my $padoff = $grandkid->targ; - my $padname = $padlist->ARRAYelt(0)->ARRAYelt($padoff); - my $protocv = $padname->FLAGS & SVpad_STATE - ? $padlist->ARRAYelt(1)->ARRAYelt($padoff) - : $padname->PROTOCV; - if ($protocv->FLAGS & SVf_POK) { - $proto = $protocv->PV - } - $simple = 1; - } - } - - # Doesn't matter how many prototypes there are, if - # they haven't happened yet! - my $declared = $lexical || exists $self->{'subs_declared'}{$kid}; - if (not $declared and $self->{'in_coderef2text'}) { - no strict 'refs'; - no warnings 'uninitialized'; - $declared = - ( - defined &{ ${$self->{'curstash'}."::"}{$kid} } - && !exists - $self->{'subs_deparsed'}{$self->{'curstash'}."::".$kid} - && defined prototype $self->{'curstash'}."::".$kid - ); - } - if (!$declared && defined($proto)) { - # Avoid "too early to check prototype" warning - ($amper, $proto) = ('&'); - } - - my $args; - my $listargs = 1; - if ($declared and defined $proto and not $amper) { - ($amper, $args) = $self->check_proto($proto, @exprs); - $listargs = $amper; - } - if ($listargs) { - $args = join(", ", map( - ($_->flags & OPf_WANT) == OPf_WANT_SCALAR - && !retscalar($_) - ? $self->maybe_parens_unop('scalar', $_, 6) - : $self->deparse($_, 6), - @exprs - )); - } - if ($prefix or $amper) { - if ($kid eq '&') { $kid = "{$kid}" } # &{&} cannot be written as && - if ($op->flags & OPf_STACKED) { - return $prefix . $amper . $kid . "(" . $args . ")"; - } else { - return $prefix . $amper. $kid; - } - } else { - # It's a syntax error to call CORE::GLOBAL::foo with a prefix, - # so it must have been translated from a keyword call. Translate - # it back. - $kid =~ s/^CORE::GLOBAL:://; - - my $dproto = defined($proto) ? $proto : "undefined"; - my $scalar_proto = $dproto =~ /^;*(?:[\$*_+]|\\.|\\\[[^]]\])\z/; - if (!$declared) { - return "$kid(" . $args . ")"; - } elsif ($dproto =~ /^\s*\z/) { - return $kid; - } elsif ($scalar_proto and is_scalar($exprs[0])) { - # is_scalar is an excessively conservative test here: - # really, we should be comparing to the precedence of the - # top operator of $exprs[0] (ala unop()), but that would - # take some major code restructuring to do right. - return $self->maybe_parens_func($kid, $args, $cx, 16); - } elsif (not $scalar_proto and defined($proto) || $simple) { #' - return $self->maybe_parens_func($kid, $args, $cx, 5); - } else { - return "$kid(" . $args . ")"; - } - } -} - -sub pp_enterwrite { unop(@_, "write") } - -# escape things that cause interpolation in double quotes, -# but not character escapes -sub uninterp { - my($str) = @_; - $str =~ s/(^|\G|[^\\])((?:\\\\)*)([\$\@]|\\[uUlLQE])/$1$2\\$3/g; - return $str; -} - -{ -my $bal; -BEGIN { - use re "eval"; - # Matches any string which is balanced with respect to {braces} - $bal = qr( - (?: - [^\\{}] - | \\\\ - | \\[{}] - | \{(??{$bal})\} - )* - )x; -} - -# the same, but treat $|, $), $( and $ at the end of the string differently -# and leave comments unmangled for the sake of /x and (?x). -sub re_uninterp { - my($str) = @_; - - $str =~ s/ - ( ^|\G # $1 - | [^\\] - ) - - ( # $2 - (?:\\\\)* - ) - - ( # $3 - ( \(\?\??\{$bal\}\) # $4 (skip over (?{}) and (??{}) blocks) - | \#[^\n]* # (skip over comments) - ) - | [\$\@] - (?!\||\)|\(|$|\s) - | \\[uUlLQE] - ) - - /defined($4) && length($4) ? "$1$2$4" : "$1$2\\$3"/xeg; - - return $str; -} -} - -# character escapes, but not delimiters that might need to be escaped -sub escape_str { # ASCII, UTF8 - my($str) = @_; - $str =~ s/(.)/ord($1) > 255 ? sprintf("\\x{%x}", ord($1)) : $1/eg; - $str =~ s/\a/\\a/g; -# $str =~ s/\cH/\\b/g; # \b means something different in a regex; and \cH - # isn't a backspace in EBCDIC - $str =~ s/\t/\\t/g; - $str =~ s/\n/\\n/g; - $str =~ s/\e/\\e/g; - $str =~ s/\f/\\f/g; - $str =~ s/\r/\\r/g; - $str =~ s/([\cA-\cZ])/'\\c' . $unctrl{$1}/ge; - $str =~ s/([[:^print:]])/sprintf("\\%03o", ord($1))/age; - return $str; -} - -# For regexes. Leave whitespace unmangled in case of /x or (?x). -sub escape_re { - my($str) = @_; - $str =~ s/(.)/ord($1) > 255 ? sprintf("\\x{%x}", ord($1)) : $1/eg; - $str =~ s/([[:^print:]])/ - ($1 =~ y! \t\n!!) ? $1 : sprintf("\\%03o", ord($1))/age; - $str =~ s/\n/\n\f/g; - return $str; -} - -# Don't do this for regexen -sub unback { - my($str) = @_; - $str =~ s/\\/\\\\/g; - return $str; -} - -# Remove backslashes which precede literal control characters, -# to avoid creating ambiguity when we escape the latter. -sub re_unback { - my($str) = @_; - - # the insane complexity here is due to the behaviour of "\c\" - $str =~ s/(^|[^\\]|\\c\\)(?'], ['{','}']) { - ($open, $close) = @$ar; - $fail = 0; $cnt = 0; $last_bs = 0; - for $c (@str) { - if ($c eq $open) { - $fail = 1 if $last_bs; - $cnt++; - } elsif ($c eq $close) { - $fail = 1 if $last_bs; - $cnt--; - if ($cnt < 0) { - # qq()() isn't ")(" - $fail = 1; - last; - } - } - $last_bs = $c eq '\\'; - } - $fail = 1 if $cnt != 0; - return ($open, "$open$str$close") if not $fail; - } - return ("", $str); -} - -sub single_delim { - my($q, $default, $str, $self) = @_; - return "$default$str$default" if $default and index($str, $default) == -1; - my $coreq = $self->keyword($q); # maybe CORE::q - if ($q ne 'qr') { - (my $succeed, $str) = balanced_delim($str); - return "$coreq$str" if $succeed; - } - for my $delim ('/', '"', '#') { - return "$coreq$delim" . $str . $delim if index($str, $delim) == -1; - } - if ($default) { - $str =~ s/$default/\\$default/g; - return "$default$str$default"; - } else { - $str =~ s[/][\\/]g; - return "$coreq/$str/"; - } -} - -my $max_prec; -BEGIN { $max_prec = int(0.999 + 8*length(pack("F", 42))*log(2)/log(10)); } - -# Split a floating point number into an integer mantissa and a binary -# exponent. Assumes you've already made sure the number isn't zero or -# some weird infinity or NaN. -sub split_float { - my($f) = @_; - my $exponent = 0; - if ($f == int($f)) { - while ($f % 2 == 0) { - $f /= 2; - $exponent++; - } - } else { - while ($f != int($f)) { - $f *= 2; - $exponent--; - } - } - my $mantissa = sprintf("%.0f", $f); - return ($mantissa, $exponent); -} - -sub const { - my $self = shift; - my($sv, $cx) = @_; - if ($self->{'use_dumper'}) { - return $self->const_dumper($sv, $cx); - } - if (class($sv) eq "SPECIAL") { - # sv_undef, sv_yes, sv_no - return $$sv == 3 ? $self->maybe_parens("!1", $cx, 21) - : ('undef', '1')[$$sv-1]; - } - if (class($sv) eq "NULL") { - return 'undef'; - } - # convert a version object into the "v1.2.3" string in its V magic - if ($sv->FLAGS & SVs_RMG) { - for (my $mg = $sv->MAGIC; $mg; $mg = $mg->MOREMAGIC) { - return $mg->PTR if $mg->TYPE eq 'V'; - } - } - - if ($sv->FLAGS & SVf_IOK) { - my $str = $sv->int_value; - $str = $self->maybe_parens($str, $cx, 21) if $str < 0; - return $str; - } elsif ($sv->FLAGS & SVf_NOK) { - my $nv = $sv->NV; - if ($nv == 0) { - if (pack("F", $nv) eq pack("F", 0)) { - # positive zero - return "0"; - } else { - # negative zero - return $self->maybe_parens("-.0", $cx, 21); - } - } elsif (1/$nv == 0) { - if ($nv > 0) { - # positive infinity - return $self->maybe_parens("9**9**9", $cx, 22); - } else { - # negative infinity - return $self->maybe_parens("-9**9**9", $cx, 21); - } - } elsif ($nv != $nv) { - # NaN - if (pack("F", $nv) eq pack("F", sin(9**9**9))) { - # the normal kind - return "sin(9**9**9)"; - } elsif (pack("F", $nv) eq pack("F", -sin(9**9**9))) { - # the inverted kind - return $self->maybe_parens("-sin(9**9**9)", $cx, 21); - } else { - # some other kind - my $hex = unpack("h*", pack("F", $nv)); - return qq'unpack("F", pack("h*", "$hex"))'; - } - } - # first, try the default stringification - my $str = "$nv"; - if ($str != $nv) { - # failing that, try using more precision - $str = sprintf("%.${max_prec}g", $nv); -# if (pack("F", $str) ne pack("F", $nv)) { - if ($str != $nv) { - # not representable in decimal with whatever sprintf() - # and atof() Perl is using here. - my($mant, $exp) = split_float($nv); - return $self->maybe_parens("$mant * 2**$exp", $cx, 19); - } - } - $str = $self->maybe_parens($str, $cx, 21) if $nv < 0; - return $str; - } elsif ($sv->FLAGS & SVf_ROK && $sv->can("RV")) { - my $ref = $sv->RV; - my $class = class($ref); - if ($class eq "AV") { - return "[" . $self->list_const(2, $ref->ARRAY) . "]"; - } elsif ($class eq "HV") { - my %hash = $ref->ARRAY; - my @elts; - for my $k (sort keys %hash) { - push @elts, "$k => " . $self->const($hash{$k}, 6); - } - return "{" . join(", ", @elts) . "}"; - } elsif ($class eq "CV") { - BEGIN { - if ($] > 5.0150051) { - require overloading; - unimport overloading; - } - } - if ($] > 5.0150051 && $self->{curcv} && - $self->{curcv}->object_2svref == $ref->object_2svref) { - return $self->keyword("__SUB__"); - } - return "sub " . $self->deparse_sub($ref); - } - if ($class ne 'SPECIAL' and $ref->FLAGS & SVs_SMG) { - for (my $mg = $ref->MAGIC; $mg; $mg = $mg->MOREMAGIC) { - if ($mg->TYPE eq 'r') { - my $re = re_uninterp(escape_re(re_unback($mg->precomp))); - return single_delim("qr", "", $re, $self); - } - } - } - - my $const = $self->const($ref, 20); - if ($self->{in_subst_repl} && $const =~ /^[0-9]/) { - $const = "($const)"; - } - return $self->maybe_parens("\\$const", $cx, 20); - } elsif ($sv->FLAGS & SVf_POK) { - my $str = $sv->PV; - if ($str =~ /[[:^print:]]/a) { - return single_delim("qq", '"', - uninterp(escape_str unback $str), $self); - } else { - return single_delim("q", "'", unback($str), $self); - } - } else { - return "undef"; - } -} - -sub const_dumper { - my $self = shift; - my($sv, $cx) = @_; - my $ref = $sv->object_2svref(); - my $dumper = Data::Dumper->new([$$ref], ['$v']); - $dumper->Purity(1)->Terse(1)->Deparse(1)->Indent(0)->Useqq(1)->Sortkeys(1); - my $str = $dumper->Dump(); - if ($str =~ /^\$v/) { - return '${my ' . $str . ' \$v}'; - } else { - return $str; - } -} - -sub const_sv { - my $self = shift; - my $op = shift; - my $sv = $op->sv; - # the constant could be in the pad (under useithreads) - $sv = $self->padval($op->targ) unless $$sv; - return $sv; -} - -sub meth_sv { - my $self = shift; - my $op = shift; - my $sv = $op->meth_sv; - # the constant could be in the pad (under useithreads) - $sv = $self->padval($op->targ) unless $$sv; - return $sv; -} - -sub meth_rclass_sv { - my $self = shift; - my $op = shift; - my $sv = $op->rclass; - # the constant could be in the pad (under useithreads) - $sv = $self->padval($sv) unless ref $sv; - return $sv; -} - -sub pp_const { - my $self = shift; - my($op, $cx) = @_; - if ($op->private & OPpCONST_ARYBASE) { - return '$['; - } -# if ($op->private & OPpCONST_BARE) { # trouble with '=>' autoquoting -# return $self->const_sv($op)->PV; -# } - my $sv = $self->const_sv($op); - return $self->const($sv, $cx); -} - -sub dq { - my $self = shift; - my $op = shift; - my $type = $op->name; - if ($type eq "const") { - return '$[' if $op->private & OPpCONST_ARYBASE; - return uninterp(escape_str(unback($self->const_sv($op)->as_string))); - } elsif ($type eq "concat") { - my $first = $self->dq($op->first); - my $last = $self->dq($op->last); - - # Disambiguate "${foo}bar", "${foo}{bar}", "${foo}[1]", "$foo\::bar" - ($last =~ /^[A-Z\\\^\[\]_?]/ && - $first =~ s/([\$@])\^$/${1}{^}/) # "${^}W" etc - || ($last =~ /^[:'{\[\w_]/ && #' - $first =~ s/([\$@])([A-Za-z_]\w*)$/${1}{$2}/); - - return $first . $last; - } elsif ($type eq "uc") { - return '\U' . $self->dq($op->first->sibling) . '\E'; - } elsif ($type eq "lc") { - return '\L' . $self->dq($op->first->sibling) . '\E'; - } elsif ($type eq "ucfirst") { - return '\u' . $self->dq($op->first->sibling); - } elsif ($type eq "lcfirst") { - return '\l' . $self->dq($op->first->sibling); - } elsif ($type eq "quotemeta") { - return '\Q' . $self->dq($op->first->sibling) . '\E'; - } elsif ($type eq "fc") { - return '\F' . $self->dq($op->first->sibling) . '\E'; - } elsif ($type eq "join") { - return $self->deparse($op->last, 26); # was join($", @ary) - } else { - return $self->deparse($op, 26); - } -} - -sub pp_backtick { - my $self = shift; - my($op, $cx) = @_; - # skip pushmark if it exists (readpipe() vs ``) - my $child = $op->first->sibling->isa('B::NULL') - ? $op->first : $op->first->sibling; - if ($self->pure_string($child)) { - return single_delim("qx", '`', $self->dq($child, 1), $self); - } - unop($self, @_, "readpipe"); -} - -sub dquote { - my $self = shift; - my($op, $cx) = @_; - my $kid = $op->first->sibling; # skip ex-stringify, pushmark - return $self->deparse($kid, $cx) if $self->{'unquote'}; - $self->maybe_targmy($kid, $cx, - sub {single_delim("qq", '"', $self->dq($_[1]), - $self)}); -} - -# OP_STRINGIFY is a listop, but it only ever has one arg -sub pp_stringify { - my ($self, $op, $cx) = @_; - my $kid = $op->first->sibling; - while ($kid->name eq 'null' && !null($kid->first)) { - $kid = $kid->first; - } - if ($kid->name =~ /^(?:const|padsv|rv2sv|av2arylen|gvsv|multideref - |aelemfast(?:_lex)?|[ah]elem|join|concat)\z/x) { - maybe_targmy(@_, \&dquote); - } - else { - # Actually an optimised join. - my $result = listop(@_,"join"); - $result =~ s/join([( ])/join$1$self->{'ex_const'}, /; - $result; - } -} - -# tr/// and s/// (and tr[][], tr[]//, tr###, etc) -# note that tr(from)/to/ is OK, but not tr/from/(to) -sub double_delim { - my($from, $to) = @_; - my($succeed, $delim); - if ($from !~ m[/] and $to !~ m[/]) { - return "/$from/$to/"; - } elsif (($succeed, $from) = balanced_delim($from) and $succeed) { - if (($succeed, $to) = balanced_delim($to) and $succeed) { - return "$from$to"; - } else { - for $delim ('/', '"', '#') { # note no "'" -- s''' is special - return "$from$delim$to$delim" if index($to, $delim) == -1; - } - $to =~ s[/][\\/]g; - return "$from/$to/"; - } - } else { - for $delim ('/', '"', '#') { # note no ' - return "$delim$from$delim$to$delim" - if index($to . $from, $delim) == -1; - } - $from =~ s[/][\\/]g; - $to =~ s[/][\\/]g; - return "/$from/$to/"; - } -} - -# Only used by tr///, so backslashes hyphens -sub pchr { # ASCII - my($n) = @_; - if ($n == ord '\\') { - return '\\\\'; - } elsif ($n == ord "-") { - return "\\-"; - } elsif (utf8::native_to_unicode($n) >= utf8::native_to_unicode(ord(' ')) - and utf8::native_to_unicode($n) <= utf8::native_to_unicode(ord('~'))) - { - # I'm presuming a regex is not ok here, otherwise we could have used - # /[[:print:]]/a to get here - return chr($n); - } elsif ($n == ord "\a") { - return '\\a'; - } elsif ($n == ord "\b") { - return '\\b'; - } elsif ($n == ord "\t") { - return '\\t'; - } elsif ($n == ord "\n") { - return '\\n'; - } elsif ($n == ord "\e") { - return '\\e'; - } elsif ($n == ord "\f") { - return '\\f'; - } elsif ($n == ord "\r") { - return '\\r'; - } elsif ($n >= ord("\cA") and $n <= ord("\cZ")) { - return '\\c' . unctrl{chr $n}; - } else { -# return '\x' . sprintf("%02x", $n); - return '\\' . sprintf("%03o", $n); - } -} - -sub collapse { - my(@chars) = @_; - my($str, $c, $tr) = (""); - for ($c = 0; $c < @chars; $c++) { - $tr = $chars[$c]; - $str .= pchr($tr); - if ($c <= $#chars - 2 and $chars[$c + 1] == $tr + 1 and - $chars[$c + 2] == $tr + 2) - { - for (; $c <= $#chars-1 and $chars[$c + 1] == $chars[$c] + 1; $c++) - {} - $str .= "-"; - $str .= pchr($chars[$c]); - } - } - return $str; -} - -sub tr_decode_byte { - my($table, $flags) = @_; - my(@table) = unpack("s*", $table); - splice @table, 0x100, 1; # Number of subsequent elements - my($c, $tr, @from, @to, @delfrom, $delhyphen); - if ($table[ord "-"] != -1 and - $table[ord("-") - 1] == -1 || $table[ord("-") + 1] == -1) - { - $tr = $table[ord "-"]; - $table[ord "-"] = -1; - if ($tr >= 0) { - @from = ord("-"); - @to = $tr; - } else { # -2 ==> delete - $delhyphen = 1; - } - } - for ($c = 0; $c < @table; $c++) { - $tr = $table[$c]; - if ($tr >= 0) { - push @from, $c; push @to, $tr; - } elsif ($tr == -2) { - push @delfrom, $c; - } - } - @from = (@from, @delfrom); - if ($flags & OPpTRANS_COMPLEMENT) { - my @newfrom = (); - my %from; - @from{@from} = (1) x @from; - for ($c = 0; $c < 256; $c++) { - push @newfrom, $c unless $from{$c}; - } - @from = @newfrom; - } - unless ($flags & OPpTRANS_DELETE || !@to) { - pop @to while $#to and $to[$#to] == $to[$#to -1]; - } - my($from, $to); - $from = collapse(@from); - $to = collapse(@to); - $from .= "-" if $delhyphen; - return ($from, $to); -} - -sub tr_chr { - my $x = shift; - if ($x == ord "-") { - return "\\-"; - } elsif ($x == ord "\\") { - return "\\\\"; - } else { - return chr $x; - } -} - -# XXX This doesn't yet handle all cases correctly either - -sub tr_decode_utf8 { - my($swash_hv, $flags) = @_; - my %swash = $swash_hv->ARRAY; - my $final = undef; - $final = $swash{'FINAL'}->IV if exists $swash{'FINAL'}; - my $none = $swash{"NONE"}->IV; - my $extra = $none + 1; - my(@from, @delfrom, @to); - my $line; - foreach $line (split /\n/, $swash{'LIST'}->PV) { - my($min, $max, $result) = split(/\t/, $line); - $min = hex $min; - if (length $max) { - $max = hex $max; - } else { - $max = $min; - } - $result = hex $result; - if ($result == $extra) { - push @delfrom, [$min, $max]; - } else { - push @from, [$min, $max]; - push @to, [$result, $result + $max - $min]; - } - } - for my $i (0 .. $#from) { - if ($from[$i][0] == ord '-') { - unshift @from, splice(@from, $i, 1); - unshift @to, splice(@to, $i, 1); - last; - } elsif ($from[$i][1] == ord '-') { - $from[$i][1]--; - $to[$i][1]--; - unshift @from, ord '-'; - unshift @to, ord '-'; - last; - } - } - for my $i (0 .. $#delfrom) { - if ($delfrom[$i][0] == ord '-') { - push @delfrom, splice(@delfrom, $i, 1); - last; - } elsif ($delfrom[$i][1] == ord '-') { - $delfrom[$i][1]--; - push @delfrom, ord '-'; - last; - } - } - if (defined $final and $to[$#to][1] != $final) { - push @to, [$final, $final]; - } - push @from, @delfrom; - if ($flags & OPpTRANS_COMPLEMENT) { - my @newfrom; - my $next = 0; - for my $i (0 .. $#from) { - push @newfrom, [$next, $from[$i][0] - 1]; - $next = $from[$i][1] + 1; - } - @from = (); - for my $range (@newfrom) { - if ($range->[0] <= $range->[1]) { - push @from, $range; - } - } - } - my($from, $to, $diff); - for my $chunk (@from) { - $diff = $chunk->[1] - $chunk->[0]; - if ($diff > 1) { - $from .= tr_chr($chunk->[0]) . "-" . tr_chr($chunk->[1]); - } elsif ($diff == 1) { - $from .= tr_chr($chunk->[0]) . tr_chr($chunk->[1]); - } else { - $from .= tr_chr($chunk->[0]); - } - } - for my $chunk (@to) { - $diff = $chunk->[1] - $chunk->[0]; - if ($diff > 1) { - $to .= tr_chr($chunk->[0]) . "-" . tr_chr($chunk->[1]); - } elsif ($diff == 1) { - $to .= tr_chr($chunk->[0]) . tr_chr($chunk->[1]); - } else { - $to .= tr_chr($chunk->[0]); - } - } - #$final = sprintf("%04x", $final) if defined $final; - #$none = sprintf("%04x", $none) if defined $none; - #$extra = sprintf("%04x", $extra) if defined $extra; - #print STDERR "final: $final\n none: $none\nextra: $extra\n"; - #print STDERR $swash{'LIST'}->PV; - return (escape_str($from), escape_str($to)); -} - -sub pp_trans { - my $self = shift; - my($op, $cx, $morflags) = @_; - my($from, $to); - my $class = class($op); - my $priv_flags = $op->private; - if ($class eq "PVOP") { - ($from, $to) = tr_decode_byte($op->pv, $priv_flags); - } elsif ($class eq "PADOP") { - ($from, $to) - = tr_decode_utf8($self->padval($op->padix)->RV, $priv_flags); - } else { # class($op) eq "SVOP" - ($from, $to) = tr_decode_utf8($op->sv->RV, $priv_flags); - } - my $flags = ""; - $flags .= "c" if $priv_flags & OPpTRANS_COMPLEMENT; - $flags .= "d" if $priv_flags & OPpTRANS_DELETE; - $to = "" if $from eq $to and $flags eq ""; - $flags .= "s" if $priv_flags & OPpTRANS_SQUASH; - $flags .= $morflags if defined $morflags; - my $ret = $self->keyword("tr") . double_delim($from, $to) . $flags; - if (my $targ = $op->targ) { - return $self->maybe_parens($self->padname($targ) . " =~ $ret", - $cx, 20); - } - return $ret; -} - -sub pp_transr { push @_, 'r'; goto &pp_trans } - -sub re_dq_disambiguate { - my ($first, $last) = @_; - # Disambiguate "${foo}bar", "${foo}{bar}", "${foo}[1]" - ($last =~ /^[A-Z\\\^\[\]_?]/ && - $first =~ s/([\$@])\^$/${1}{^}/) # "${^}W" etc - || ($last =~ /^[{\[\w_]/ && - $first =~ s/([\$@])([A-Za-z_]\w*)$/${1}{$2}/); - return $first . $last; -} - -# Like dq(), but different -sub re_dq { - my $self = shift; - my ($op) = @_; - - my $type = $op->name; - if ($type eq "const") { - return '$[' if $op->private & OPpCONST_ARYBASE; - my $unbacked = re_unback($self->const_sv($op)->as_string); - return re_uninterp(escape_re($unbacked)); - } elsif ($type eq "concat") { - my $first = $self->re_dq($op->first); - my $last = $self->re_dq($op->last); - return re_dq_disambiguate($first, $last); - } elsif ($type eq "uc") { - return '\U' . $self->re_dq($op->first->sibling) . '\E'; - } elsif ($type eq "lc") { - return '\L' . $self->re_dq($op->first->sibling) . '\E'; - } elsif ($type eq "ucfirst") { - return '\u' . $self->re_dq($op->first->sibling); - } elsif ($type eq "lcfirst") { - return '\l' . $self->re_dq($op->first->sibling); - } elsif ($type eq "quotemeta") { - return '\Q' . $self->re_dq($op->first->sibling) . '\E'; - } elsif ($type eq "fc") { - return '\F' . $self->re_dq($op->first->sibling) . '\E'; - } elsif ($type eq "join") { - return $self->deparse($op->last, 26); # was join($", @ary) - } else { - my $ret = $self->deparse($op, 26); - $ret =~ s/^\$([(|)])\z/\${$1}/ # $( $| $) need braces - or $ret =~ s/^\@([-+])\z/\@{$1}/; # @- @+ need braces - return $ret; - } -} - -sub pure_string { - my ($self, $op) = @_; - return 0 if null $op; - my $type = $op->name; - - if ($type eq 'const' || $type eq 'av2arylen') { - return 1; - } - elsif ($type =~ /^(?:[ul]c(first)?|fc)$/ || $type eq 'quotemeta') { - return $self->pure_string($op->first->sibling); - } - elsif ($type eq 'join') { - my $join_op = $op->first->sibling; # Skip pushmark - return 0 unless $join_op->name eq 'null' && $join_op->targ == OP_RV2SV; - - my $gvop = $join_op->first; - return 0 unless $gvop->name eq 'gvsv'; - return 0 unless '"' eq $self->gv_name($self->gv_or_padgv($gvop)); - - return 0 unless ${$join_op->sibling} eq ${$op->last}; - return 0 unless $op->last->name =~ /^(?:[ah]slice|(?:rv2|pad)av)$/; - } - elsif ($type eq 'concat') { - return $self->pure_string($op->first) - && $self->pure_string($op->last); - } - elsif (is_scalar($op) || $type =~ /^[ah]elem$/) { - return 1; - } - elsif ($type eq "null" and $op->can('first') and not null $op->first) { - my $first = $op->first; - - return 1 if $first->name eq "multideref"; - return 1 if $first->name eq "aelemfast_lex"; - - if ( $first->name eq "null" - and $first->can('first') - and not null $first->first - and $first->first->name eq "aelemfast" - ) - { - return 1; - } - } - - return 0; -} - -sub code_list { - my ($self,$op,$cv) = @_; - - # localise stuff relating to the current sub - $cv and - local($self->{'curcv'}) = $cv, - local($self->{'curcvlex'}), - local(@$self{qw'curstash warnings hints hinthash curcop'}) - = @$self{qw'curstash warnings hints hinthash curcop'}; - - my $re; - for ($op = $op->first->sibling; !null($op); $op = $op->sibling) { - if ($op->name eq 'null' and $op->flags & OPf_SPECIAL) { - my $scope = $op->first; - # 0 context (last arg to scopeop) means statement context, so - # the contents of the block will not be wrapped in do{...}. - my $block = scopeop($scope->first->name eq "enter", $self, - $scope, 0); - # next op is the source code of the block - $op = $op->sibling; - $re .= ($self->const_sv($op)->PV =~ m|^(\(\?\??\{)|)[0]; - my $multiline = $block =~ /\n/; - $re .= $multiline ? "\n\t" : ' '; - $re .= $block; - $re .= $multiline ? "\n\b})" : " })"; - } else { - $re = re_dq_disambiguate($re, $self->re_dq($op)); - } - } - $re; -} - -sub regcomp { - my $self = shift; - my($op, $cx) = @_; - my $kid = $op->first; - $kid = $kid->first if $kid->name eq "regcmaybe"; - $kid = $kid->first if $kid->name eq "regcreset"; - my $kname = $kid->name; - if ($kname eq "null" and !null($kid->first) - and $kid->first->name eq 'pushmark') - { - my $str = ''; - $kid = $kid->first->sibling; - while (!null($kid)) { - my $first = $str; - my $last = $self->re_dq($kid); - $str = re_dq_disambiguate($first, $last); - $kid = $kid->sibling; - } - return $str, 1; - } - - return ($self->re_dq($kid), 1) - if $kname =~ /^(?:rv2|pad)av/ or $self->pure_string($kid); - return ($self->deparse($kid, $cx), 0); -} - -sub pp_regcomp { - my ($self, $op, $cx) = @_; - return (($self->regcomp($op, $cx, 0))[0]); -} - -sub re_flags { - my ($self, $op) = @_; - my $flags = ''; - my $pmflags = $op->pmflags; - if (!$pmflags) { - my $re = $op->pmregexp; - if ($$re) { - $pmflags = $re->compflags; - } - } - $flags .= "g" if $pmflags & PMf_GLOBAL; - $flags .= "i" if $pmflags & PMf_FOLD; - $flags .= "m" if $pmflags & PMf_MULTILINE; - $flags .= "o" if $pmflags & PMf_KEEP; - $flags .= "s" if $pmflags & PMf_SINGLELINE; - $flags .= "x" if $pmflags & PMf_EXTENDED; - $flags .= "x" if $pmflags & PMf_EXTENDED_MORE; - $flags .= "p" if $pmflags & PMf_KEEPCOPY; - $flags .= "n" if $pmflags & PMf_NOCAPTURE; - if (my $charset = $pmflags & PMf_CHARSET) { - # Hardcoding this is fragile, but B does not yet export the - # constants we need. - $flags .= qw(d l u a aa)[$charset >> 7] - } - # The /d flag is indicated by 0; only show it if necessary. - elsif ($self->{hinthash} and - $self->{hinthash}{reflags_charset} - || $self->{hinthash}{feature_unicode} - or $self->{hints} & $feature::hint_mask - && ($self->{hints} & $feature::hint_mask) - != $feature::hint_mask - && $self->{hints} & $feature::hint_uni8bit - ) { - $flags .= 'd'; - } - $flags; -} - -# osmic acid -- see osmium tetroxide - -my %matchwords; -map($matchwords{join "", sort split //, $_} = $_, 'cig', 'cog', 'cos', 'cogs', - 'cox', 'go', 'is', 'ism', 'iso', 'mig', 'mix', 'osmic', 'ox', 'sic', - 'sig', 'six', 'smog', 'so', 'soc', 'sog', 'xi', 'soup', 'soupmix'); - -# When deparsing a regular expression with code blocks, we have to look in -# various places to find the blocks. -# -# For qr/(?{...})/ without interpolation, the CV is under $qr->qr_anoncv -# and the code list (list of blocks and constants, maybe vars) is under -# $cv->ROOT->first->code_list: -# ./perl -Ilib -MB -e 'use O "Concise", B::svref_2object(sub {qr/(?{die})/})->ROOT->first->first->sibling->pmregexp->qr_anoncv->object_2svref' -# -# For qr/$a(?{...})/ with interpolation, the code list is more accessible, -# under $pmop->code_list, but the $cv is something you have to dig for in -# the regcomp op’s kids: -# ./perl -Ilib -mO=Concise -e 'qr/$a(?{die})/' -# -# For m// and split //, things are much simpler. There is no CV. The code -# list is under $pmop->code_list. - -sub matchop { - my $self = shift; - my($op, $cx, $name, $delim) = @_; - my $kid = $op->first; - my ($binop, $var, $re) = ("", "", ""); - if ($op->flags & OPf_STACKED) { - $binop = 1; - $var = $self->deparse($kid, 20); - $kid = $kid->sibling; - } - # not $name; $name will be 'm' for both match and split - elsif ($op->name eq 'match' and my $targ = $op->targ) { - $binop = 1; - $var = $self->padname($targ); - } - my $quote = 1; - my $pmflags = $op->pmflags; - my $rhs_bound_to_defsv; - my ($cv, $bregexp); - my $have_kid = !null $kid; - # Check for code blocks first - if (not null my $code_list = $op->code_list) { - $re = $self->code_list($code_list, - $op->name eq 'qr' - ? $self->padval( - $kid->first # ex-list - ->first # pushmark - ->sibling # entersub - ->first # ex-list - ->first # pushmark - ->sibling # srefgen - ->first # ex-list - ->first # anoncode - ->targ - ) - : undef); - } elsif (${$bregexp = $op->pmregexp} && ${$cv = $bregexp->qr_anoncv}) { - my $patop = $cv->ROOT # leavesub - ->first # qr - ->code_list;# list - $re = $self->code_list($patop, $cv); - } elsif (!$have_kid) { - $re = re_uninterp(escape_re(re_unback($op->precomp))); - } elsif ($kid->name ne 'regcomp') { - carp("found ".$kid->name." where regcomp expected"); - } else { - ($re, $quote) = $self->regcomp($kid, 21); - } - if ($have_kid and $kid->name eq 'regcomp') { - my $matchop = $kid->first; - if ($matchop->name eq 'regcreset') { - $matchop = $matchop->first; - } - if ($matchop->name =~ /^(?:match|transr?|subst)\z/ - && $matchop->flags & OPf_SPECIAL) { - $rhs_bound_to_defsv = 1; - } - } - my $flags = ""; - $flags .= "c" if $pmflags & PMf_CONTINUE; - $flags .= $self->re_flags($op); - $flags = join '', sort split //, $flags; - $flags = $matchwords{$flags} if $matchwords{$flags}; - if ($pmflags & PMf_ONCE) { # only one kind of delimiter works here - $re =~ s/\?/\\?/g; - $re = $self->keyword("m") . "?$re?"; # explicit 'm' is required - } elsif ($quote) { - $re = single_delim($name, $delim, $re, $self); - } - $re = $re . $flags if $quote; - if ($binop) { - return - $self->maybe_parens( - $rhs_bound_to_defsv - ? "$var =~ (\$_ =~ $re)" - : "$var =~ $re", - $cx, 20 - ); - } else { - return $re; - } -} - -sub pp_match { matchop(@_, "m", "/") } -sub pp_pushre { matchop(@_, "m", "/") } -sub pp_qr { matchop(@_, "qr", "") } - -sub pp_runcv { unop(@_, "__SUB__"); } - -sub pp_split { - maybe_targmy(@_, \&split); -} -sub split { - my $self = shift; - my($op, $cx) = @_; - my($kid, @exprs, $ary, $expr); - $kid = $op->first; - - # For our kid (an OP_PUSHRE), pmreplroot is never actually the - # root of a replacement; it's either empty, or abused to point to - # the GV for an array we split into (an optimization to save - # assignment overhead). Depending on whether we're using ithreads, - # this OP* holds either a GV* or a PADOFFSET. Luckily, B.xs - # figures out for us which it is. - my $replroot = $kid->pmreplroot; - my $gv = 0; - my $stacked = $op->flags & OPf_STACKED; - if (ref($replroot) eq "B::GV") { - $gv = $replroot; - } elsif (!ref($replroot) and $replroot > 0) { - $gv = $self->padval($replroot); - } elsif ($kid->targ) { - $ary = $self->padname($kid->targ) - } elsif ($stacked) { - $ary = $self->deparse($op->last, 7); - } - $ary = $self->maybe_local(@_, - $self->stash_variable('@', - $self->gv_name($gv), - $cx)) - if $gv; - - # Skip the last kid when OPf_STACKED is set, since it is the array - # on the left. - for (; !null($stacked ? $kid->sibling : $kid); $kid = $kid->sibling) { - push @exprs, $self->deparse($kid, 6); - } - - # handle special case of split(), and split(' ') that compiles to /\s+/ - # Under 5.10, the reflags may be undef if the split regexp isn't a constant - # Under 5.17.5-5.17.9, the special flag is on split itself. - $kid = $op->first; - if ( $op->flags & OPf_SPECIAL - or ( - $kid->flags & OPf_SPECIAL - and ( $] < 5.009 ? $kid->pmflags & PMf_SKIPWHITE() - : ($kid->reflags || 0) & RXf_SKIPWHITE() - ) - ) - ) { - $exprs[0] = "' '"; - } - - $expr = "split(" . join(", ", @exprs) . ")"; - if ($ary) { - return $self->maybe_parens("$ary = $expr", $cx, 7); - } else { - return $expr; - } -} - -# oxime -- any of various compounds obtained chiefly by the action of -# hydroxylamine on aldehydes and ketones and characterized by the -# bivalent grouping C=NOH [Webster's Tenth] - -my %substwords; -map($substwords{join "", sort split //, $_} = $_, 'ego', 'egoism', 'em', - 'es', 'ex', 'exes', 'gee', 'go', 'goes', 'ie', 'ism', 'iso', 'me', - 'meese', 'meso', 'mig', 'mix', 'os', 'ox', 'oxime', 'see', 'seem', - 'seg', 'sex', 'sig', 'six', 'smog', 'sog', 'some', 'xi', 'rogue', - 'sir', 'rise', 'smore', 'more', 'seer', 'rome', 'gore', 'grim', 'grime', - 'or', 'rose', 'rosie'); - -sub pp_subst { - my $self = shift; - my($op, $cx) = @_; - my $kid = $op->first; - my($binop, $var, $re, $repl) = ("", "", "", ""); - if ($op->flags & OPf_STACKED) { - $binop = 1; - $var = $self->deparse($kid, 20); - $kid = $kid->sibling; - } - elsif (my $targ = $op->targ) { - $binop = 1; - $var = $self->padname($targ); - } - my $flags = ""; - my $pmflags = $op->pmflags; - if (null($op->pmreplroot)) { - $repl = $kid; - $kid = $kid->sibling; - } else { - $repl = $op->pmreplroot->first; # skip substcont - } - while ($repl->name eq "entereval") { - $repl = $repl->first; - $flags .= "e"; - } - { - local $self->{in_subst_repl} = 1; - if ($pmflags & PMf_EVAL) { - $repl = $self->deparse($repl->first, 0); - } else { - $repl = $self->dq($repl); - } - } - if (not null my $code_list = $op->code_list) { - $re = $self->code_list($code_list); - } elsif (null $kid) { - $re = re_uninterp(escape_re(re_unback($op->precomp))); - } else { - ($re) = $self->regcomp($kid, 1); - } - $flags .= "r" if $pmflags & PMf_NONDESTRUCT; - $flags .= "e" if $pmflags & PMf_EVAL; - $flags .= $self->re_flags($op); - $flags = join '', sort split //, $flags; - $flags = $substwords{$flags} if $substwords{$flags}; - my $core_s = $self->keyword("s"); # maybe CORE::s - if ($binop) { - return $self->maybe_parens("$var =~ $core_s" - . double_delim($re, $repl) . $flags, - $cx, 20); - } else { - return "$core_s". double_delim($re, $repl) . $flags; - } -} - -sub is_lexical_subs { - my (@ops) = shift; - for my $op (@ops) { - return 0 if $op->name !~ /\A(?:introcv|clonecv)\z/; - } - return 1; -} - -# Pretend these two ops do not exist. The perl parser adds them to the -# beginning of any block containing my-sub declarations, whereas we handle -# the subs in pad_subs and next_todo. -*pp_clonecv = *pp_introcv; -sub pp_introcv { - my $self = shift; - my($op, $cx) = @_; - # For now, deparsing doesn't worry about the distinction between introcv - # and clonecv, so pretend this op doesn't exist: - return ''; -} - -sub pp_padcv { - my $self = shift; - my($op, $cx) = @_; - return $self->padany($op); -} - -my %lvref_funnies = ( - OPpLVREF_SV, => '$', - OPpLVREF_AV, => '@', - OPpLVREF_HV, => '%', - OPpLVREF_CV, => '&', -); - -sub pp_refassign { - my ($self, $op, $cx) = @_; - my $left; - if ($op->private & OPpLVREF_ELEM) { - $left = $op->first->sibling; - $left = maybe_local(@_, elem($self, $left, undef, - $left->targ == OP_AELEM - ? qw([ ] padav) - : qw({ } padhv))); - } elsif ($op->flags & OPf_STACKED) { - $left = maybe_local(@_, - $lvref_funnies{$op->private & OPpLVREF_TYPE} - . $self->deparse($op->first->sibling)); - } else { - $left = &pp_padsv; - } - my $right = $self->deparse_binop_right($op, $op->first, 7); - return $self->maybe_parens("\\$left = $right", $cx, 7); -} - -sub pp_lvref { - my ($self, $op, $cx) = @_; - my $code; - if ($op->private & OPpLVREF_ELEM) { - $code = $op->first->name =~ /av\z/ ? &pp_aelem : &pp_helem; - } elsif ($op->flags & OPf_STACKED) { - $code = maybe_local(@_, - $lvref_funnies{$op->private & OPpLVREF_TYPE} - . $self->deparse($op->first)); - } else { - $code = &pp_padsv; - } - "\\$code"; -} - -sub pp_lvrefslice { - my ($self, $op, $cx) = @_; - '\\' . ($op->last->name =~ /av\z/ ? &pp_aslice : &pp_hslice); -} - -sub pp_lvavref { - my ($self, $op, $cx) = @_; - '\\(' . ($op->flags & OPf_STACKED - ? maybe_local(@_, rv2x(@_, "\@")) - : &pp_padsv) . ')' -} - -1; -__END__ - -#line 6287 diff --git a/software/Slic3r-1.3.0.64bit/lib/CPAN/Config.pm b/software/Slic3r-1.3.0.64bit/lib/CPAN/Config.pm deleted file mode 100644 index 52e60943..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/CPAN/Config.pm +++ /dev/null @@ -1,100 +0,0 @@ -#line 1 "CPAN/Config.pm" - -# This is CPAN.pms systemwide configuration file. This file provides -# defaults for users, and the values can be changed in a per-user -# configuration file. The user-config file is being looked for as -# /.cpan/CPAN/MyConfig.pm. - -my @urllist = ( - 'http://cpan.strawberryperl.com/', - 'http://www.cpan.org/', -); - -if ( -d 'C:\\STRAWB~1\\minicpan' ) { - # If we are on fake Hotel/Airport wireless, - # prefer the minicpan to the poisoned wireless. - eval { require LWP::Online; }; - unless ( $@ ) { - if ( LWP::Online::online() ) { - push @urllist, q[file:///C:/STRAWB~1/minicpan/]; - } else { - unshift @urllist, q[file:///C:/STRAWB~1/minicpan/]; - } - } -} - -$CPAN::Config = { - applypatch => q[], - auto_commit => q[1], - build_cache => q[50], - build_dir => q[C:\\STRAWB~1\\cpan\\build], - build_dir_reuse => q[0], - build_requires_install_policy => q[yes], - bzip2 => q[ ], #will use perl module if it is ' ' - cache_metadata => q[1], - check_sigs => q[0], - colorize_print => q[bold green], - colorize_warn => q[bold red], - colorize_output => q[0], - commandnumber_in_prompt => q[0], - connect_to_internet_ok => q[1], - cpan_home => q[C:\\STRAWB~1\\cpan], - curl => q[], - ftp => q[C:\\Windows\\system32\\ftp.exe], - ftp_passive => q[1], - ftp_proxy => q[], - getcwd => q[cwd], - gpg => q[], - gzip => q[ ], #will use perl module if it is ' ' - halt_on_failure => q[1], - histfile => q[C:\\STRAWB~1\\cpan\\histfile], - histsize => q[1000], - http_proxy => q[], - inactivity_timeout => q[0], - index_expire => q[1], - inhibit_startup_message => q[0], - keep_source_where => q[C:\\STRAWB~1\\cpan\\sources], - load_module_verbosity => q[none], - lynx => q[], - make => q[C:\\STRAWB~1\\c\\bin\\dmake.exe], - make_arg => q[], - make_install_arg => q[UNINST=1], - make_install_make_command => q[C:\\STRAWB~1\\c\\bin\\dmake.exe], - makepl_arg => q[], - mbuild_arg => q[], - mbuild_install_arg => q[--uninst 1], - mbuildpl_arg => q[], - ncftp => q[], - ncftpget => q[], - no_proxy => q[], - pager => q[C:\\Windows\\system32\\more.COM], - patch => q[C:\\STRAWB~1\\c\\bin\\patch.exe], - perl5lib_verbosity => q[none], - prefer_external_tar => q[0], - prefer_installer => q[MB], - prefs_dir => q[C:\\STRAWB~1\\cpan\\prefs], - prerequisites_policy => q[follow], - recommends_policy => q[1], - scan_cache => q[atstart], - shell => q[C:\\Windows\\system32\\cmd.exe], - show_unparsable_versions => q[0], - show_upload_date => q[1], - show_zero_versions => q[0], - suggests_policy => q[0], - tar => q[ ], #will use perl module if it is ' ' - tar_verbosity => q[none], - term_is_latin => q[1], - term_ornaments => q[1], - test_report => q[0], - trust_test_report_history => q[0], - unzip => q[], - urllist => \@urllist, - use_prompt_default => q[0], - use_sqlite => q[1], - version_timeout => q[15], - wget => q[], - yaml_load_code => q[0], - yaml_module => q[YAML::XS], -}; -1; -__END__ diff --git a/software/Slic3r-1.3.0.64bit/lib/Carp.pm b/software/Slic3r-1.3.0.64bit/lib/Carp.pm deleted file mode 100644 index 4182a5b2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Carp.pm +++ /dev/null @@ -1,621 +0,0 @@ -#line 1 "Carp.pm" -package Carp; - -{ use 5.006; } -use strict; -use warnings; -BEGIN { - # Very old versions of warnings.pm load Carp. This can go wrong due - # to the circular dependency. If warnings is invoked before Carp, - # then warnings starts by loading Carp, then Carp (above) tries to - # invoke warnings, and gets nothing because warnings is in the process - # of loading and hasn't defined its import method yet. If we were - # only turning on warnings ("use warnings" above) this wouldn't be too - # bad, because Carp would just gets the state of the -w switch and so - # might not get some warnings that it wanted. The real problem is - # that we then want to turn off Unicode warnings, but "no warnings - # 'utf8'" won't be effective if we're in this circular-dependency - # situation. So, if warnings.pm is an affected version, we turn - # off all warnings ourselves by directly setting ${^WARNING_BITS}. - # On unaffected versions, we turn off just Unicode warnings, via - # the proper API. - if(!defined($warnings::VERSION) || eval($warnings::VERSION) < 1.06) { - ${^WARNING_BITS} = ""; - } else { - "warnings"->unimport("utf8"); - } -} - -sub _fetch_sub { # fetch sub without autovivifying - my($pack, $sub) = @_; - $pack .= '::'; - # only works with top-level packages - return unless exists($::{$pack}); - for ($::{$pack}) { - return unless ref \$_ eq 'GLOB' && *$_{HASH} && exists $$_{$sub}; - for ($$_{$sub}) { - return ref \$_ eq 'GLOB' ? *$_{CODE} : undef - } - } -} - -# UTF8_REGEXP_PROBLEM is a compile-time constant indicating whether Carp -# must avoid applying a regular expression to an upgraded (is_utf8) -# string. There are multiple problems, on different Perl versions, -# that require this to be avoided. All versions prior to 5.13.8 will -# load utf8_heavy.pl for the swash system, even if the regexp doesn't -# use character classes. Perl 5.6 and Perls [5.11.2, 5.13.11) exhibit -# specific problems when Carp is being invoked in the aftermath of a -# syntax error. -BEGIN { - if("$]" < 5.013011) { - *UTF8_REGEXP_PROBLEM = sub () { 1 }; - } else { - *UTF8_REGEXP_PROBLEM = sub () { 0 }; - } -} - -# is_utf8() is essentially the utf8::is_utf8() function, which indicates -# whether a string is represented in the upgraded form (using UTF-8 -# internally). As utf8::is_utf8() is only available from Perl 5.8 -# onwards, extra effort is required here to make it work on Perl 5.6. -BEGIN { - if(defined(my $sub = _fetch_sub utf8 => 'is_utf8')) { - *is_utf8 = $sub; - } else { - # black magic for perl 5.6 - *is_utf8 = sub { unpack("C", "\xaa".$_[0]) != 170 }; - } -} - -# The downgrade() function defined here is to be used for attempts to -# downgrade where it is acceptable to fail. It must be called with a -# second argument that is a true value. -BEGIN { - if(defined(my $sub = _fetch_sub utf8 => 'downgrade')) { - *downgrade = \&{"utf8::downgrade"}; - } else { - *downgrade = sub { - my $r = ""; - my $l = length($_[0]); - for(my $i = 0; $i != $l; $i++) { - my $o = ord(substr($_[0], $i, 1)); - return if $o > 255; - $r .= chr($o); - } - $_[0] = $r; - }; - } -} - -our $VERSION = '1.40'; -$VERSION =~ tr/_//d; - -our $MaxEvalLen = 0; -our $Verbose = 0; -our $CarpLevel = 0; -our $MaxArgLen = 64; # How much of each argument to print. 0 = all. -our $MaxArgNums = 8; # How many arguments to print. 0 = all. -our $RefArgFormatter = undef; # allow caller to format reference arguments - -require Exporter; -our @ISA = ('Exporter'); -our @EXPORT = qw(confess croak carp); -our @EXPORT_OK = qw(cluck verbose longmess shortmess); -our @EXPORT_FAIL = qw(verbose); # hook to enable verbose mode - -# The members of %Internal are packages that are internal to perl. -# Carp will not report errors from within these packages if it -# can. The members of %CarpInternal are internal to Perl's warning -# system. Carp will not report errors from within these packages -# either, and will not report calls *to* these packages for carp and -# croak. They replace $CarpLevel, which is deprecated. The -# $Max(EvalLen|(Arg(Len|Nums)) variables are used to specify how the eval -# text and function arguments should be formatted when printed. - -our %CarpInternal; -our %Internal; - -# disable these by default, so they can live w/o require Carp -$CarpInternal{Carp}++; -$CarpInternal{warnings}++; -$Internal{Exporter}++; -$Internal{'Exporter::Heavy'}++; - -# if the caller specifies verbose usage ("perl -MCarp=verbose script.pl") -# then the following method will be called by the Exporter which knows -# to do this thanks to @EXPORT_FAIL, above. $_[1] will contain the word -# 'verbose'. - -sub export_fail { shift; $Verbose = shift if $_[0] eq 'verbose'; @_ } - -sub _cgc { - no strict 'refs'; - return \&{"CORE::GLOBAL::caller"} if defined &{"CORE::GLOBAL::caller"}; - return; -} - -sub longmess { - local($!, $^E); - # Icky backwards compatibility wrapper. :-( - # - # The story is that the original implementation hard-coded the - # number of call levels to go back, so calls to longmess were off - # by one. Other code began calling longmess and expecting this - # behaviour, so the replacement has to emulate that behaviour. - my $cgc = _cgc(); - my $call_pack = $cgc ? $cgc->() : caller(); - if ( $Internal{$call_pack} or $CarpInternal{$call_pack} ) { - return longmess_heavy(@_); - } - else { - local $CarpLevel = $CarpLevel + 1; - return longmess_heavy(@_); - } -} - -our @CARP_NOT; - -sub shortmess { - local($!, $^E); - my $cgc = _cgc(); - - # Icky backwards compatibility wrapper. :-( - local @CARP_NOT = $cgc ? $cgc->() : caller(); - shortmess_heavy(@_); -} - -sub croak { die shortmess @_ } -sub confess { die longmess @_ } -sub carp { warn shortmess @_ } -sub cluck { warn longmess @_ } - -BEGIN { - if("$]" >= 5.015002 || ("$]" >= 5.014002 && "$]" < 5.015) || - ("$]" >= 5.012005 && "$]" < 5.013)) { - *CALLER_OVERRIDE_CHECK_OK = sub () { 1 }; - } else { - *CALLER_OVERRIDE_CHECK_OK = sub () { 0 }; - } -} - -sub caller_info { - my $i = shift(@_) + 1; - my %call_info; - my $cgc = _cgc(); - { - # Some things override caller() but forget to implement the - # @DB::args part of it, which we need. We check for this by - # pre-populating @DB::args with a sentinel which no-one else - # has the address of, so that we can detect whether @DB::args - # has been properly populated. However, on earlier versions - # of perl this check tickles a bug in CORE::caller() which - # leaks memory. So we only check on fixed perls. - @DB::args = \$i if CALLER_OVERRIDE_CHECK_OK; - package DB; - @call_info{ - qw(pack file line sub has_args wantarray evaltext is_require) } - = $cgc ? $cgc->($i) : caller($i); - } - - unless ( defined $call_info{file} ) { - return (); - } - - my $sub_name = Carp::get_subname( \%call_info ); - if ( $call_info{has_args} ) { - my @args; - if (CALLER_OVERRIDE_CHECK_OK && @DB::args == 1 - && ref $DB::args[0] eq ref \$i - && $DB::args[0] == \$i ) { - @DB::args = (); # Don't let anyone see the address of $i - local $@; - my $where = eval { - my $func = $cgc or return ''; - my $gv = - (_fetch_sub B => 'svref_2object' or return '') - ->($func)->GV; - my $package = $gv->STASH->NAME; - my $subname = $gv->NAME; - return unless defined $package && defined $subname; - - # returning CORE::GLOBAL::caller isn't useful for tracing the cause: - return if $package eq 'CORE::GLOBAL' && $subname eq 'caller'; - " in &${package}::$subname"; - } || ''; - @args - = "** Incomplete caller override detected$where; \@DB::args were not set **"; - } - else { - @args = @DB::args; - my $overflow; - if ( $MaxArgNums and @args > $MaxArgNums ) - { # More than we want to show? - $#args = $MaxArgNums - 1; - $overflow = 1; - } - - @args = map { Carp::format_arg($_) } @args; - - if ($overflow) { - push @args, '...'; - } - } - - # Push the args onto the subroutine - $sub_name .= '(' . join( ', ', @args ) . ')'; - } - $call_info{sub_name} = $sub_name; - return wantarray() ? %call_info : \%call_info; -} - -# Transform an argument to a function into a string. -our $in_recurse; -sub format_arg { - my $arg = shift; - - if ( ref($arg) ) { - # legitimate, let's not leak it. - if (!$in_recurse && - do { - local $@; - local $in_recurse = 1; - local $SIG{__DIE__} = sub{}; - eval {$arg->can('CARP_TRACE') } - }) - { - return $arg->CARP_TRACE(); - } - elsif (!$in_recurse && - defined($RefArgFormatter) && - do { - local $@; - local $in_recurse = 1; - local $SIG{__DIE__} = sub{}; - eval {$arg = $RefArgFormatter->($arg); 1} - }) - { - return $arg; - } - else - { - my $sub = _fetch_sub(overload => 'StrVal'); - return $sub ? &$sub($arg) : "$arg"; - } - } - return "undef" if !defined($arg); - downgrade($arg, 1); - return $arg if !(UTF8_REGEXP_PROBLEM && is_utf8($arg)) && - $arg =~ /\A-?[0-9]+(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?\z/; - my $suffix = ""; - if ( 2 < $MaxArgLen and $MaxArgLen < length($arg) ) { - substr ( $arg, $MaxArgLen - 3 ) = ""; - $suffix = "..."; - } - if(UTF8_REGEXP_PROBLEM && is_utf8($arg)) { - for(my $i = length($arg); $i--; ) { - my $c = substr($arg, $i, 1); - my $x = substr($arg, 0, 0); # work around bug on Perl 5.8.{1,2} - if($c eq "\"" || $c eq "\\" || $c eq "\$" || $c eq "\@") { - substr $arg, $i, 0, "\\"; - next; - } - my $o = ord($c); - - # This code is repeated in Regexp::CARP_TRACE() - if ($] ge 5.007_003) { - substr $arg, $i, 1, sprintf("\\x{%x}", $o) - if utf8::native_to_unicode($o) < utf8::native_to_unicode(0x20) - || utf8::native_to_unicode($o) > utf8::native_to_unicode(0x7e); - } elsif (ord("A") == 65) { - substr $arg, $i, 1, sprintf("\\x{%x}", $o) - if $o < 0x20 || $o > 0x7e; - } else { # Early EBCDIC - - # 3 EBCDIC code pages supported then; all controls but one - # are the code points below SPACE. The other one is 0x5F on - # POSIX-BC; FF on the other two. - substr $arg, $i, 1, sprintf("\\x{%x}", $o) - if $o < ord(" ") || ((ord ("^") == 106) - ? $o == 0x5f - : $o == 0xff); - } - } - } else { - $arg =~ s/([\"\\\$\@])/\\$1/g; - # This is all the ASCII printables spelled-out. It is portable to all - # Perl versions and platforms (such as EBCDIC). There are other more - # compact ways to do this, but may not work everywhere every version. - $arg =~ s/([^ !"\$\%#'()*+,\-.\/0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]^_`abcdefghijklmnopqrstuvwxyz\{|}~])/sprintf("\\x{%x}",ord($1))/eg; - } - downgrade($arg, 1); - return "\"".$arg."\"".$suffix; -} - -sub Regexp::CARP_TRACE { - my $arg = "$_[0]"; - downgrade($arg, 1); - if(UTF8_REGEXP_PROBLEM && is_utf8($arg)) { - for(my $i = length($arg); $i--; ) { - my $o = ord(substr($arg, $i, 1)); - my $x = substr($arg, 0, 0); # work around bug on Perl 5.8.{1,2} - - # This code is repeated in format_arg() - if ($] ge 5.007_003) { - substr $arg, $i, 1, sprintf("\\x{%x}", $o) - if utf8::native_to_unicode($o) < utf8::native_to_unicode(0x20) - || utf8::native_to_unicode($o) > utf8::native_to_unicode(0x7e); - } elsif (ord("A") == 65) { - substr $arg, $i, 1, sprintf("\\x{%x}", $o) - if $o < 0x20 || $o > 0x7e; - } else { # Early EBCDIC - substr $arg, $i, 1, sprintf("\\x{%x}", $o) - if $o < ord(" ") || ((ord ("^") == 106) - ? $o == 0x5f - : $o == 0xff); - } - } - } else { - # See comment in format_arg() about this same regex. - $arg =~ s/([^ !"\$\%#'()*+,\-.\/0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]^_`abcdefghijklmnopqrstuvwxyz\{|}~])/sprintf("\\x{%x}",ord($1))/eg; - } - downgrade($arg, 1); - my $suffix = ""; - if($arg =~ /\A\(\?\^?([a-z]*)(?:-[a-z]*)?:(.*)\)\z/s) { - ($suffix, $arg) = ($1, $2); - } - if ( 2 < $MaxArgLen and $MaxArgLen < length($arg) ) { - substr ( $arg, $MaxArgLen - 3 ) = ""; - $suffix = "...".$suffix; - } - return "qr($arg)$suffix"; -} - -# Takes an inheritance cache and a package and returns -# an anon hash of known inheritances and anon array of -# inheritances which consequences have not been figured -# for. -sub get_status { - my $cache = shift; - my $pkg = shift; - $cache->{$pkg} ||= [ { $pkg => $pkg }, [ trusts_directly($pkg) ] ]; - return @{ $cache->{$pkg} }; -} - -# Takes the info from caller() and figures out the name of -# the sub/require/eval -sub get_subname { - my $info = shift; - if ( defined( $info->{evaltext} ) ) { - my $eval = $info->{evaltext}; - if ( $info->{is_require} ) { - return "require $eval"; - } - else { - $eval =~ s/([\\\'])/\\$1/g; - return "eval '" . str_len_trim( $eval, $MaxEvalLen ) . "'"; - } - } - - # this can happen on older perls when the sub (or the stash containing it) - # has been deleted - if ( !defined( $info->{sub} ) ) { - return '__ANON__::__ANON__'; - } - - return ( $info->{sub} eq '(eval)' ) ? 'eval {...}' : $info->{sub}; -} - -# Figures out what call (from the point of view of the caller) -# the long error backtrace should start at. -sub long_error_loc { - my $i; - my $lvl = $CarpLevel; - { - ++$i; - my $cgc = _cgc(); - my @caller = $cgc ? $cgc->($i) : caller($i); - my $pkg = $caller[0]; - unless ( defined($pkg) ) { - - # This *shouldn't* happen. - if (%Internal) { - local %Internal; - $i = long_error_loc(); - last; - } - elsif (defined $caller[2]) { - # this can happen when the stash has been deleted - # in that case, just assume that it's a reasonable place to - # stop (the file and line data will still be intact in any - # case) - the only issue is that we can't detect if the - # deleted package was internal (so don't do that then) - # -doy - redo unless 0 > --$lvl; - last; - } - else { - return 2; - } - } - redo if $CarpInternal{$pkg}; - redo unless 0 > --$lvl; - redo if $Internal{$pkg}; - } - return $i - 1; -} - -sub longmess_heavy { - if ( ref( $_[0] ) ) { # don't break references as exceptions - return wantarray ? @_ : $_[0]; - } - my $i = long_error_loc(); - return ret_backtrace( $i, @_ ); -} - -# Returns a full stack backtrace starting from where it is -# told. -sub ret_backtrace { - my ( $i, @error ) = @_; - my $mess; - my $err = join '', @error; - $i++; - - my $tid_msg = ''; - if ( defined &threads::tid ) { - my $tid = threads->tid; - $tid_msg = " thread $tid" if $tid; - } - - my %i = caller_info($i); - $mess = "$err at $i{file} line $i{line}$tid_msg"; - if( defined $. ) { - local $@ = ''; - local $SIG{__DIE__}; - eval { - CORE::die; - }; - if($@ =~ /^Died at .*(, <.*?> line \d+).$/ ) { - $mess .= $1; - } - } - $mess .= "\.\n"; - - while ( my %i = caller_info( ++$i ) ) { - $mess .= "\t$i{sub_name} called at $i{file} line $i{line}$tid_msg\n"; - } - - return $mess; -} - -sub ret_summary { - my ( $i, @error ) = @_; - my $err = join '', @error; - $i++; - - my $tid_msg = ''; - if ( defined &threads::tid ) { - my $tid = threads->tid; - $tid_msg = " thread $tid" if $tid; - } - - my %i = caller_info($i); - return "$err at $i{file} line $i{line}$tid_msg\.\n"; -} - -sub short_error_loc { - # You have to create your (hash)ref out here, rather than defaulting it - # inside trusts *on a lexical*, as you want it to persist across calls. - # (You can default it on $_[2], but that gets messy) - my $cache = {}; - my $i = 1; - my $lvl = $CarpLevel; - { - my $cgc = _cgc(); - my $called = $cgc ? $cgc->($i) : caller($i); - $i++; - my $caller = $cgc ? $cgc->($i) : caller($i); - - if (!defined($caller)) { - my @caller = $cgc ? $cgc->($i) : caller($i); - if (@caller) { - # if there's no package but there is other caller info, then - # the package has been deleted - treat this as a valid package - # in this case - redo if defined($called) && $CarpInternal{$called}; - redo unless 0 > --$lvl; - last; - } - else { - return 0; - } - } - redo if $Internal{$caller}; - redo if $CarpInternal{$caller}; - redo if $CarpInternal{$called}; - redo if trusts( $called, $caller, $cache ); - redo if trusts( $caller, $called, $cache ); - redo unless 0 > --$lvl; - } - return $i - 1; -} - -sub shortmess_heavy { - return longmess_heavy(@_) if $Verbose; - return @_ if ref( $_[0] ); # don't break references as exceptions - my $i = short_error_loc(); - if ($i) { - ret_summary( $i, @_ ); - } - else { - longmess_heavy(@_); - } -} - -# If a string is too long, trims it with ... -sub str_len_trim { - my $str = shift; - my $max = shift || 0; - if ( 2 < $max and $max < length($str) ) { - substr( $str, $max - 3 ) = '...'; - } - return $str; -} - -# Takes two packages and an optional cache. Says whether the -# first inherits from the second. -# -# Recursive versions of this have to work to avoid certain -# possible endless loops, and when following long chains of -# inheritance are less efficient. -sub trusts { - my $child = shift; - my $parent = shift; - my $cache = shift; - my ( $known, $partial ) = get_status( $cache, $child ); - - # Figure out consequences until we have an answer - while ( @$partial and not exists $known->{$parent} ) { - my $anc = shift @$partial; - next if exists $known->{$anc}; - $known->{$anc}++; - my ( $anc_knows, $anc_partial ) = get_status( $cache, $anc ); - my @found = keys %$anc_knows; - @$known{@found} = (); - push @$partial, @$anc_partial; - } - return exists $known->{$parent}; -} - -# Takes a package and gives a list of those trusted directly -sub trusts_directly { - my $class = shift; - no strict 'refs'; - my $stash = \%{"$class\::"}; - for my $var (qw/ CARP_NOT ISA /) { - # Don't try using the variable until we know it exists, - # to avoid polluting the caller's namespace. - if ( $stash->{$var} && *{$stash->{$var}}{ARRAY} && @{$stash->{$var}} ) { - return @{$stash->{$var}} - } - } - return; -} - -if(!defined($warnings::VERSION) || - do { no warnings "numeric"; $warnings::VERSION < 1.03 }) { - # Very old versions of warnings.pm import from Carp. This can go - # wrong due to the circular dependency. If Carp is invoked before - # warnings, then Carp starts by loading warnings, then warnings - # tries to import from Carp, and gets nothing because Carp is in - # the process of loading and hasn't defined its import method yet. - # So we work around that by manually exporting to warnings here. - no strict "refs"; - *{"warnings::$_"} = \&$_ foreach @EXPORT; -} - -1; - -__END__ - -#line 934 \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/lib/Carp/Heavy.pm b/software/Slic3r-1.3.0.64bit/lib/Carp/Heavy.pm deleted file mode 100644 index 34e31fae..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Carp/Heavy.pm +++ /dev/null @@ -1,22 +0,0 @@ -#line 1 "Carp/Heavy.pm" -package Carp::Heavy; - -use Carp (); - -our $VERSION = '1.40'; -$VERSION =~ tr/_//d; - -# Carp::Heavy was merged into Carp in version 1.12. Any mismatched versions -# after this point are not significant and can be ignored. -if(($Carp::VERSION || 0) < 1.12) { - my $cv = defined($Carp::VERSION) ? $Carp::VERSION : "undef"; - die "Version mismatch between Carp $cv ($INC{q(Carp.pm)}) and Carp::Heavy $VERSION ($INC{q(Carp/Heavy.pm)}). Did you alter \@INC after Carp was loaded?\n"; -} - -1; - -# Most of the machinery of Carp used to be here. -# It has been moved in Carp.pm now, but this placeholder remains for -# the benefit of modules that like to preload Carp::Heavy directly. -# This must load Carp, because some modules rely on the historical -# behaviour of Carp::Heavy loading Carp. diff --git a/software/Slic3r-1.3.0.64bit/lib/Class/Accessor.pm b/software/Slic3r-1.3.0.64bit/lib/Class/Accessor.pm deleted file mode 100644 index e2e4078b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Class/Accessor.pm +++ /dev/null @@ -1,237 +0,0 @@ -#line 1 "Class/Accessor.pm" -package Class::Accessor; -require 5.00502; -use strict; -$Class::Accessor::VERSION = '0.34'; - -sub new { - my($proto, $fields) = @_; - my($class) = ref $proto || $proto; - - $fields = {} unless defined $fields; - - # make a copy of $fields. - bless {%$fields}, $class; -} - -sub mk_accessors { - my($self, @fields) = @_; - - $self->_mk_accessors('rw', @fields); -} - -if (eval { require Sub::Name }) { - Sub::Name->import; -} - -{ - no strict 'refs'; - - sub import { - my ($class, @what) = @_; - my $caller = caller; - for (@what) { - if (/^(?:antlers|moose-?like)$/i) { - *{"${caller}::has"} = sub { - my ($f, %args) = @_; - $caller->_mk_accessors(($args{is}||"rw"), $f); - }; - *{"${caller}::extends"} = sub { - @{"${caller}::ISA"} = @_; - unless (grep $_->can("_mk_accessors"), @_) { - push @{"${caller}::ISA"}, $class; - } - }; - # we'll use their @ISA as a default, in case it happens to be - # set already - &{"${caller}::extends"}(@{"${caller}::ISA"}); - } - } - } - - sub follow_best_practice { - my($self) = @_; - my $class = ref $self || $self; - *{"${class}::accessor_name_for"} = \&best_practice_accessor_name_for; - *{"${class}::mutator_name_for"} = \&best_practice_mutator_name_for; - } - - sub _mk_accessors { - my($self, $access, @fields) = @_; - my $class = ref $self || $self; - my $ra = $access eq 'rw' || $access eq 'ro'; - my $wa = $access eq 'rw' || $access eq 'wo'; - - foreach my $field (@fields) { - my $accessor_name = $self->accessor_name_for($field); - my $mutator_name = $self->mutator_name_for($field); - if( $accessor_name eq 'DESTROY' or $mutator_name eq 'DESTROY' ) { - $self->_carp("Having a data accessor named DESTROY in '$class' is unwise."); - } - if ($accessor_name eq $mutator_name) { - my $accessor; - if ($ra && $wa) { - $accessor = $self->make_accessor($field); - } elsif ($ra) { - $accessor = $self->make_ro_accessor($field); - } else { - $accessor = $self->make_wo_accessor($field); - } - my $fullname = "${class}::$accessor_name"; - my $subnamed = 0; - unless (defined &{$fullname}) { - subname($fullname, $accessor) if defined &subname; - $subnamed = 1; - *{$fullname} = $accessor; - } - if ($accessor_name eq $field) { - # the old behaviour - my $alias = "${class}::_${field}_accessor"; - subname($alias, $accessor) if defined &subname and not $subnamed; - *{$alias} = $accessor unless defined &{$alias}; - } - } else { - my $fullaccname = "${class}::$accessor_name"; - my $fullmutname = "${class}::$mutator_name"; - if ($ra and not defined &{$fullaccname}) { - my $accessor = $self->make_ro_accessor($field); - subname($fullaccname, $accessor) if defined &subname; - *{$fullaccname} = $accessor; - } - if ($wa and not defined &{$fullmutname}) { - my $mutator = $self->make_wo_accessor($field); - subname($fullmutname, $mutator) if defined &subname; - *{$fullmutname} = $mutator; - } - } - } - } - -} - -sub mk_ro_accessors { - my($self, @fields) = @_; - - $self->_mk_accessors('ro', @fields); -} - -sub mk_wo_accessors { - my($self, @fields) = @_; - - $self->_mk_accessors('wo', @fields); -} - -sub best_practice_accessor_name_for { - my ($class, $field) = @_; - return "get_$field"; -} - -sub best_practice_mutator_name_for { - my ($class, $field) = @_; - return "set_$field"; -} - -sub accessor_name_for { - my ($class, $field) = @_; - return $field; -} - -sub mutator_name_for { - my ($class, $field) = @_; - return $field; -} - -sub set { - my($self, $key) = splice(@_, 0, 2); - - if(@_ == 1) { - $self->{$key} = $_[0]; - } - elsif(@_ > 1) { - $self->{$key} = [@_]; - } - else { - $self->_croak("Wrong number of arguments received"); - } -} - -sub get { - my $self = shift; - - if(@_ == 1) { - return $self->{$_[0]}; - } - elsif( @_ > 1 ) { - return @{$self}{@_}; - } - else { - $self->_croak("Wrong number of arguments received"); - } -} - -sub make_accessor { - my ($class, $field) = @_; - - return sub { - my $self = shift; - - if(@_) { - return $self->set($field, @_); - } else { - return $self->get($field); - } - }; -} - -sub make_ro_accessor { - my($class, $field) = @_; - - return sub { - my $self = shift; - - if (@_) { - my $caller = caller; - $self->_croak("'$caller' cannot alter the value of '$field' on objects of class '$class'"); - } - else { - return $self->get($field); - } - }; -} - -sub make_wo_accessor { - my($class, $field) = @_; - - return sub { - my $self = shift; - - unless (@_) { - my $caller = caller; - $self->_croak("'$caller' cannot access the value of '$field' on objects of class '$class'"); - } - else { - return $self->set($field, @_); - } - }; -} - - -use Carp (); - -sub _carp { - my ($self, $msg) = @_; - Carp::carp($msg || $self); - return; -} - -sub _croak { - my ($self, $msg) = @_; - Carp::croak($msg || $self); - return; -} - -1; - -__END__ - -#line 745 diff --git a/software/Slic3r-1.3.0.64bit/lib/Class/Method/Modifiers.pm b/software/Slic3r-1.3.0.64bit/lib/Class/Method/Modifiers.pm deleted file mode 100644 index 7278ddad..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Class/Method/Modifiers.pm +++ /dev/null @@ -1,226 +0,0 @@ -#line 1 "Class/Method/Modifiers.pm" -use strict; -use warnings; -package Class::Method::Modifiers; # git description: v2.11-20-g6902f76 -# ABSTRACT: Provides Moose-like method modifiers -# KEYWORDS: method wrap modification patch -# vim: set ts=8 sts=4 sw=4 tw=115 et : - -our $VERSION = '2.12'; - -use base 'Exporter'; - -our @EXPORT = qw(before after around); -our @EXPORT_OK = (@EXPORT, qw(fresh install_modifier)); -our %EXPORT_TAGS = ( - moose => [qw(before after around)], - all => \@EXPORT_OK, -); - -BEGIN { - *_HAS_READONLY = $] >= 5.008 ? sub(){1} : sub(){0}; -} - -our %MODIFIER_CACHE; - -# for backward compatibility -sub _install_modifier; # -w -*_install_modifier = \&install_modifier; - -sub install_modifier { - my $into = shift; - my $type = shift; - my $code = pop; - my @names = @_; - - @names = @{ $names[0] } if ref($names[0]) eq 'ARRAY'; - - return _fresh($into, $code, @names) if $type eq 'fresh'; - - for my $name (@names) { - my $hit = $into->can($name) or do { - require Carp; - Carp::confess("The method '$name' is not found in the inheritance hierarchy for class $into"); - }; - - my $qualified = $into.'::'.$name; - my $cache = $MODIFIER_CACHE{$into}{$name} ||= { - before => [], - after => [], - around => [], - }; - - # this must be the first modifier we're installing - if (!exists($cache->{"orig"})) { - no strict 'refs'; - - # grab the original method (or undef if the method is inherited) - $cache->{"orig"} = *{$qualified}{CODE}; - - # the "innermost" method, the one that "around" will ultimately wrap - $cache->{"wrapped"} = $cache->{"orig"} || $hit; #sub { - # # we can't cache this, because new methods or modifiers may be - # # added between now and when this method is called - # for my $package (@{ mro::get_linear_isa($into) }) { - # next if $package eq $into; - # my $code = *{$package.'::'.$name}{CODE}; - # goto $code if $code; - # } - # require Carp; - # Carp::confess("$qualified\::$name disappeared?"); - #}; - } - - # keep these lists in the order the modifiers are called - if ($type eq 'after') { - push @{ $cache->{$type} }, $code; - } - else { - unshift @{ $cache->{$type} }, $code; - } - - # wrap the method with another layer of around. much simpler than - # the Moose equivalent. :) - if ($type eq 'around') { - my $method = $cache->{wrapped}; - my $attrs = _sub_attrs($code); - # a bare "sub :lvalue {...}" will be parsed as a label and an - # indirect method call. force it to be treated as an expression - # using + - $cache->{wrapped} = eval "package $into; +sub $attrs { \$code->(\$method, \@_); };"; - } - - # install our new method which dispatches the modifiers, but only - # if a new type was added - if (@{ $cache->{$type} } == 1) { - - # avoid these hash lookups every method invocation - my $before = $cache->{"before"}; - my $after = $cache->{"after"}; - - # this is a coderef that changes every new "around". so we need - # to take a reference to it. better a deref than a hash lookup - my $wrapped = \$cache->{"wrapped"}; - - my $attrs = _sub_attrs($cache->{wrapped}); - - my $generated = "package $into;\n"; - $generated .= "sub $name $attrs {"; - - # before is easy, it doesn't affect the return value(s) - if (@$before) { - $generated .= ' - for my $method (@$before) { - $method->(@_); - } - '; - } - - if (@$after) { - $generated .= ' - my $ret; - if (wantarray) { - $ret = [$$wrapped->(@_)]; - '.(_HAS_READONLY ? 'Internals::SvREADONLY(@$ret, 1);' : '').' - } - elsif (defined wantarray) { - $ret = \($$wrapped->(@_)); - } - else { - $$wrapped->(@_); - } - - for my $method (@$after) { - $method->(@_); - } - - wantarray ? @$ret : $ret ? $$ret : (); - ' - } - else { - $generated .= '$$wrapped->(@_);'; - } - - $generated .= '}'; - - no strict 'refs'; - no warnings 'redefine'; - no warnings 'closure'; - eval $generated; - }; - } -} - -sub before { - _install_modifier(scalar(caller), 'before', @_); -} - -sub after { - _install_modifier(scalar(caller), 'after', @_); -} - -sub around { - _install_modifier(scalar(caller), 'around', @_); -} - -sub fresh { - my $code = pop; - my @names = @_; - - @names = @{ $names[0] } if ref($names[0]) eq 'ARRAY'; - - _fresh(scalar(caller), $code, @names); -} - -sub _fresh { - my ($into, $code, @names) = @_; - - for my $name (@names) { - if ($name !~ /\A [a-zA-Z_] [a-zA-Z0-9_]* \z/xms) { - require Carp; - Carp::confess("Invalid method name '$name'"); - } - if ($into->can($name)) { - require Carp; - Carp::confess("Class $into already has a method named '$name'"); - } - - # We need to make sure that the installed method has its CvNAME in - # the appropriate package; otherwise, it would be subject to - # deletion if callers use namespace::autoclean. If $code was - # compiled in the target package, we can just install it directly; - # otherwise, we'll need a different approach. Using Sub::Name would - # be fine in all cases, at the cost of introducing a dependency on - # an XS-using, non-core module. So instead we'll use string-eval to - # create a new subroutine that wraps $code. - if (_is_in_package($code, $into)) { - no strict 'refs'; - *{"$into\::$name"} = $code; - } - else { - no warnings 'closure'; # for 5.8.x - my $attrs = _sub_attrs($code); - eval "package $into; sub $name $attrs { \$code->(\@_) }"; - } - } -} - -sub _sub_attrs { - my ($coderef) = @_; - local *_sub = $coderef; - local $@; - (eval 'sub { _sub = 1 }') ? ':lvalue' : ''; -} - -sub _is_in_package { - my ($coderef, $package) = @_; - require B; - my $cv = B::svref_2object($coderef); - return $cv->GV->STASH->NAME eq $package; -} - -1; - -__END__ - -#line 566 diff --git a/software/Slic3r-1.3.0.64bit/lib/Class/Struct.pm b/software/Slic3r-1.3.0.64bit/lib/Class/Struct.pm deleted file mode 100644 index 7d6d63e7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Class/Struct.pm +++ /dev/null @@ -1,248 +0,0 @@ -#line 1 "Class/Struct.pm" -package Class::Struct; - -## See POD after __END__ - -use 5.006_001; - -use strict; -use warnings::register; -our(@ISA, @EXPORT, $VERSION); - -use Carp; - -require Exporter; -@ISA = qw(Exporter); -@EXPORT = qw(struct); - -$VERSION = '0.65'; - -my $print = 0; -sub printem { - if (@_) { $print = shift } - else { $print++ } -} - -{ - package Class::Struct::Tie_ISA; - - sub TIEARRAY { - my $class = shift; - return bless [], $class; - } - - sub STORE { - my ($self, $index, $value) = @_; - Class::Struct::_subclass_error(); - } - - sub FETCH { - my ($self, $index) = @_; - $self->[$index]; - } - - sub FETCHSIZE { - my $self = shift; - return scalar(@$self); - } - - sub DESTROY { } -} - -sub import { - my $self = shift; - - if ( @_ == 0 ) { - $self->export_to_level( 1, $self, @EXPORT ); - } elsif ( @_ == 1 ) { - # This is admittedly a little bit silly: - # do we ever export anything else than 'struct'...? - $self->export_to_level( 1, $self, @_ ); - } else { - goto &struct; - } -} - -sub struct { - - # Determine parameter list structure, one of: - # struct( class => [ element-list ]) - # struct( class => { element-list }) - # struct( element-list ) - # Latter form assumes current package name as struct name. - - my ($class, @decls); - my $base_type = ref $_[1]; - if ( $base_type eq 'HASH' ) { - $class = shift; - @decls = %{shift()}; - _usage_error() if @_; - } - elsif ( $base_type eq 'ARRAY' ) { - $class = shift; - @decls = @{shift()}; - _usage_error() if @_; - } - else { - $base_type = 'ARRAY'; - $class = (caller())[0]; - @decls = @_; - } - - _usage_error() if @decls % 2 == 1; - - # Ensure we are not, and will not be, a subclass. - - my $isa = do { - no strict 'refs'; - \@{$class . '::ISA'}; - }; - _subclass_error() if @$isa; - tie @$isa, 'Class::Struct::Tie_ISA'; - - # Create constructor. - - croak "function 'new' already defined in package $class" - if do { no strict 'refs'; defined &{$class . "::new"} }; - - my @methods = (); - my %refs = (); - my %arrays = (); - my %hashes = (); - my %classes = (); - my $got_class = 0; - my $out = ''; - - $out = "{\n package $class;\n use Carp;\n sub new {\n"; - $out .= " my (\$class, \%init) = \@_;\n"; - $out .= " \$class = __PACKAGE__ unless \@_;\n"; - - my $cnt = 0; - my $idx = 0; - my( $cmt, $name, $type, $elem ); - - if( $base_type eq 'HASH' ){ - $out .= " my(\$r) = {};\n"; - $cmt = ''; - } - elsif( $base_type eq 'ARRAY' ){ - $out .= " my(\$r) = [];\n"; - } - - $out .= " bless \$r, \$class;\n\n"; - - while( $idx < @decls ){ - $name = $decls[$idx]; - $type = $decls[$idx+1]; - push( @methods, $name ); - if( $base_type eq 'HASH' ){ - $elem = "{'${class}::$name'}"; - } - elsif( $base_type eq 'ARRAY' ){ - $elem = "[$cnt]"; - ++$cnt; - $cmt = " # $name"; - } - if( $type =~ /^\*(.)/ ){ - $refs{$name}++; - $type = $1; - } - my $init = "defined(\$init{'$name'}) ? \$init{'$name'} :"; - if( $type eq '@' ){ - $out .= " croak 'Initializer for $name must be array reference'\n"; - $out .= " if defined(\$init{'$name'}) && ref(\$init{'$name'}) ne 'ARRAY';\n"; - $out .= " \$r->$name( $init [] );$cmt\n"; - $arrays{$name}++; - } - elsif( $type eq '%' ){ - $out .= " croak 'Initializer for $name must be hash reference'\n"; - $out .= " if defined(\$init{'$name'}) && ref(\$init{'$name'}) ne 'HASH';\n"; - $out .= " \$r->$name( $init {} );$cmt\n"; - $hashes{$name}++; - } - elsif ( $type eq '$') { - $out .= " \$r->$name( $init undef );$cmt\n"; - } - elsif( $type =~ /^\w+(?:::\w+)*$/ ){ - $out .= " if (defined(\$init{'$name'})) {\n"; - $out .= " if (ref \$init{'$name'} eq 'HASH')\n"; - $out .= " { \$r->$name( $type->new(\%{\$init{'$name'}}) ) } $cmt\n"; - $out .= " elsif (UNIVERSAL::isa(\$init{'$name'}, '$type'))\n"; - $out .= " { \$r->$name( \$init{'$name'} ) } $cmt\n"; - $out .= " else { croak 'Initializer for $name must be hash or $type reference' }\n"; - $out .= " }\n"; - $classes{$name} = $type; - $got_class = 1; - } - else{ - croak "'$type' is not a valid struct element type"; - } - $idx += 2; - } - - $out .= "\n \$r;\n}\n"; - - # Create accessor methods. - - my( $pre, $pst, $sel ); - $cnt = 0; - foreach $name (@methods){ - if ( do { no strict 'refs'; defined &{$class . "::$name"} } ) { - warnings::warnif("function '$name' already defined, overrides struct accessor method"); - } - else { - $pre = $pst = $cmt = $sel = ''; - if( defined $refs{$name} ){ - $pre = "\\("; - $pst = ")"; - $cmt = " # returns ref"; - } - $out .= " sub $name {$cmt\n my \$r = shift;\n"; - if( $base_type eq 'ARRAY' ){ - $elem = "[$cnt]"; - ++$cnt; - } - elsif( $base_type eq 'HASH' ){ - $elem = "{'${class}::$name'}"; - } - if( defined $arrays{$name} ){ - $out .= " my \$i;\n"; - $out .= " \@_ ? (\$i = shift) : return \$r->$elem;\n"; - $out .= " if (ref(\$i) eq 'ARRAY' && !\@_) { \$r->$elem = \$i; return \$r }\n"; - $sel = "->[\$i]"; - } - elsif( defined $hashes{$name} ){ - $out .= " my \$i;\n"; - $out .= " \@_ ? (\$i = shift) : return \$r->$elem;\n"; - $out .= " if (ref(\$i) eq 'HASH' && !\@_) { \$r->$elem = \$i; return \$r }\n"; - $sel = "->{\$i}"; - } - elsif( defined $classes{$name} ){ - $out .= " croak '$name argument is wrong class' if \@_ && ! UNIVERSAL::isa(\$_[0], '$classes{$name}');\n"; - } - $out .= " croak 'Too many args to $name' if \@_ > 1;\n"; - $out .= " \@_ ? ($pre\$r->$elem$sel = shift$pst) : $pre\$r->$elem$sel$pst;\n"; - $out .= " }\n"; - } - } - $out .= "}\n1;\n"; - - print $out if $print; - my $result = eval $out; - carp $@ if $@; -} - -sub _usage_error { - confess "struct usage error"; -} - -sub _subclass_error { - croak 'struct class cannot be a subclass (@ISA not allowed)'; -} - -1; # for require - - -__END__ - -#line 638 diff --git a/software/Slic3r-1.3.0.64bit/lib/Compress/Raw/Bzip2.pm b/software/Slic3r-1.3.0.64bit/lib/Compress/Raw/Bzip2.pm deleted file mode 100644 index aba6f33a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Compress/Raw/Bzip2.pm +++ /dev/null @@ -1,126 +0,0 @@ -#line 1 "Compress/Raw/Bzip2.pm" - -package Compress::Raw::Bzip2; - -use strict ; -use warnings ; - -require 5.006 ; -require Exporter; -use Carp ; - -use bytes ; -our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD); - -$VERSION = '2.074'; -$XS_VERSION = $VERSION; -$VERSION = eval $VERSION; - -@ISA = qw(Exporter); -# Items to export into callers namespace by default. Note: do not export -# names by default without a very good reason. Use EXPORT_OK instead. -# Do not simply export all your public functions/methods/constants. -@EXPORT = qw( - BZ_RUN - BZ_FLUSH - BZ_FINISH - - BZ_OK - BZ_RUN_OK - BZ_FLUSH_OK - BZ_FINISH_OK - BZ_STREAM_END - BZ_SEQUENCE_ERROR - BZ_PARAM_ERROR - BZ_MEM_ERROR - BZ_DATA_ERROR - BZ_DATA_ERROR_MAGIC - BZ_IO_ERROR - BZ_UNEXPECTED_EOF - BZ_OUTBUFF_FULL - BZ_CONFIG_ERROR - - ); - -sub AUTOLOAD { - my($constname); - ($constname = $AUTOLOAD) =~ s/.*:://; - my ($error, $val) = constant($constname); - Carp::croak $error if $error; - no strict 'refs'; - *{$AUTOLOAD} = sub { $val }; - goto &{$AUTOLOAD}; - -} - -use constant FLAG_APPEND => 1 ; -use constant FLAG_CRC => 2 ; -use constant FLAG_ADLER => 4 ; -use constant FLAG_CONSUME_INPUT => 8 ; - -eval { - require XSLoader; - XSLoader::load('Compress::Raw::Bzip2', $XS_VERSION); - 1; -} -or do { - require DynaLoader; - local @ISA = qw(DynaLoader); - bootstrap Compress::Raw::Bzip2 $XS_VERSION ; -}; - -#sub Compress::Raw::Bzip2::new -#{ -# my $class = shift ; -# my ($ptr, $status) = _new(@_); -# return wantarray ? (undef, $status) : undef -# unless $ptr ; -# my $obj = bless [$ptr], $class ; -# return wantarray ? ($obj, $status) : $obj; -#} -# -#package Compress::Raw::Bunzip2 ; -# -#sub Compress::Raw::Bunzip2::new -#{ -# my $class = shift ; -# my ($ptr, $status) = _new(@_); -# return wantarray ? (undef, $status) : undef -# unless $ptr ; -# my $obj = bless [$ptr], $class ; -# return wantarray ? ($obj, $status) : $obj; -#} - -sub Compress::Raw::Bzip2::STORABLE_freeze -{ - my $type = ref shift; - croak "Cannot freeze $type object\n"; -} - -sub Compress::Raw::Bzip2::STORABLE_thaw -{ - my $type = ref shift; - croak "Cannot thaw $type object\n"; -} - -sub Compress::Raw::Bunzip2::STORABLE_freeze -{ - my $type = ref shift; - croak "Cannot freeze $type object\n"; -} - -sub Compress::Raw::Bunzip2::STORABLE_thaw -{ - my $type = ref shift; - croak "Cannot thaw $type object\n"; -} - - -package Compress::Raw::Bzip2; - -1; - -__END__ - - -#line 386 diff --git a/software/Slic3r-1.3.0.64bit/lib/Compress/Raw/Zlib.pm b/software/Slic3r-1.3.0.64bit/lib/Compress/Raw/Zlib.pm deleted file mode 100644 index 7c9324d3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Compress/Raw/Zlib.pm +++ /dev/null @@ -1,600 +0,0 @@ -#line 1 "Compress/Raw/Zlib.pm" - -package Compress::Raw::Zlib; - -require 5.006 ; -require Exporter; -use Carp ; - -use strict ; -use warnings ; -use bytes ; -our ($VERSION, $XS_VERSION, @ISA, @EXPORT, %EXPORT_TAGS, @EXPORT_OK, $AUTOLOAD, %DEFLATE_CONSTANTS, @DEFLATE_CONSTANTS); - -$VERSION = '2.074'; -$XS_VERSION = $VERSION; -$VERSION = eval $VERSION; - -@ISA = qw(Exporter); -%EXPORT_TAGS = ( flush => [qw{ - Z_NO_FLUSH - Z_PARTIAL_FLUSH - Z_SYNC_FLUSH - Z_FULL_FLUSH - Z_FINISH - Z_BLOCK - }], - level => [qw{ - Z_NO_COMPRESSION - Z_BEST_SPEED - Z_BEST_COMPRESSION - Z_DEFAULT_COMPRESSION - }], - strategy => [qw{ - Z_FILTERED - Z_HUFFMAN_ONLY - Z_RLE - Z_FIXED - Z_DEFAULT_STRATEGY - }], - status => [qw{ - Z_OK - Z_STREAM_END - Z_NEED_DICT - Z_ERRNO - Z_STREAM_ERROR - Z_DATA_ERROR - Z_MEM_ERROR - Z_BUF_ERROR - Z_VERSION_ERROR - }], - ); - -%DEFLATE_CONSTANTS = %EXPORT_TAGS; - -# Items to export into callers namespace by default. Note: do not export -# names by default without a very good reason. Use EXPORT_OK instead. -# Do not simply export all your public functions/methods/constants. -@DEFLATE_CONSTANTS = -@EXPORT = qw( - ZLIB_VERSION - ZLIB_VERNUM - - - OS_CODE - - MAX_MEM_LEVEL - MAX_WBITS - - Z_ASCII - Z_BEST_COMPRESSION - Z_BEST_SPEED - Z_BINARY - Z_BLOCK - Z_BUF_ERROR - Z_DATA_ERROR - Z_DEFAULT_COMPRESSION - Z_DEFAULT_STRATEGY - Z_DEFLATED - Z_ERRNO - Z_FILTERED - Z_FIXED - Z_FINISH - Z_FULL_FLUSH - Z_HUFFMAN_ONLY - Z_MEM_ERROR - Z_NEED_DICT - Z_NO_COMPRESSION - Z_NO_FLUSH - Z_NULL - Z_OK - Z_PARTIAL_FLUSH - Z_RLE - Z_STREAM_END - Z_STREAM_ERROR - Z_SYNC_FLUSH - Z_TREES - Z_UNKNOWN - Z_VERSION_ERROR - - WANT_GZIP - WANT_GZIP_OR_ZLIB -); - -push @EXPORT, qw(crc32 adler32 DEF_WBITS); - -use constant WANT_GZIP => 16; -use constant WANT_GZIP_OR_ZLIB => 32; - -sub AUTOLOAD { - my($constname); - ($constname = $AUTOLOAD) =~ s/.*:://; - my ($error, $val) = constant($constname); - Carp::croak $error if $error; - no strict 'refs'; - *{$AUTOLOAD} = sub { $val }; - goto &{$AUTOLOAD}; -} - -use constant FLAG_APPEND => 1 ; -use constant FLAG_CRC => 2 ; -use constant FLAG_ADLER => 4 ; -use constant FLAG_CONSUME_INPUT => 8 ; -use constant FLAG_LIMIT_OUTPUT => 16 ; - -eval { - require XSLoader; - XSLoader::load('Compress::Raw::Zlib', $XS_VERSION); - 1; -} -or do { - require DynaLoader; - local @ISA = qw(DynaLoader); - bootstrap Compress::Raw::Zlib $XS_VERSION ; -}; - - -use constant Parse_any => 0x01; -use constant Parse_unsigned => 0x02; -use constant Parse_signed => 0x04; -use constant Parse_boolean => 0x08; -#use constant Parse_string => 0x10; -#use constant Parse_custom => 0x12; - -#use constant Parse_store_ref => 0x100 ; - -use constant OFF_PARSED => 0 ; -use constant OFF_TYPE => 1 ; -use constant OFF_DEFAULT => 2 ; -use constant OFF_FIXED => 3 ; -use constant OFF_FIRST_ONLY => 4 ; -use constant OFF_STICKY => 5 ; - - - -sub ParseParameters -{ - my $level = shift || 0 ; - - my $sub = (caller($level + 1))[3] ; - #local $Carp::CarpLevel = 1 ; - my $p = new Compress::Raw::Zlib::Parameters() ; - $p->parse(@_) - or croak "$sub: $p->{Error}" ; - - return $p; -} - - -sub Compress::Raw::Zlib::Parameters::new -{ - my $class = shift ; - - my $obj = { Error => '', - Got => {}, - } ; - - #return bless $obj, ref($class) || $class || __PACKAGE__ ; - return bless $obj, 'Compress::Raw::Zlib::Parameters' ; -} - -sub Compress::Raw::Zlib::Parameters::setError -{ - my $self = shift ; - my $error = shift ; - my $retval = @_ ? shift : undef ; - - $self->{Error} = $error ; - return $retval; -} - -#sub getError -#{ -# my $self = shift ; -# return $self->{Error} ; -#} - -sub Compress::Raw::Zlib::Parameters::parse -{ - my $self = shift ; - - my $default = shift ; - - my $got = $self->{Got} ; - my $firstTime = keys %{ $got } == 0 ; - - my (@Bad) ; - my @entered = () ; - - # Allow the options to be passed as a hash reference or - # as the complete hash. - if (@_ == 0) { - @entered = () ; - } - elsif (@_ == 1) { - my $href = $_[0] ; - return $self->setError("Expected even number of parameters, got 1") - if ! defined $href or ! ref $href or ref $href ne "HASH" ; - - foreach my $key (keys %$href) { - push @entered, $key ; - push @entered, \$href->{$key} ; - } - } - else { - my $count = @_; - return $self->setError("Expected even number of parameters, got $count") - if $count % 2 != 0 ; - - for my $i (0.. $count / 2 - 1) { - push @entered, $_[2* $i] ; - push @entered, \$_[2* $i+1] ; - } - } - - - while (my ($key, $v) = each %$default) - { - croak "need 4 params [@$v]" - if @$v != 4 ; - - my ($first_only, $sticky, $type, $value) = @$v ; - my $x ; - $self->_checkType($key, \$value, $type, 0, \$x) - or return undef ; - - $key = lc $key; - - if ($firstTime || ! $sticky) { - $got->{$key} = [0, $type, $value, $x, $first_only, $sticky] ; - } - - $got->{$key}[OFF_PARSED] = 0 ; - } - - for my $i (0.. @entered / 2 - 1) { - my $key = $entered[2* $i] ; - my $value = $entered[2* $i+1] ; - - #print "Key [$key] Value [$value]" ; - #print defined $$value ? "[$$value]\n" : "[undef]\n"; - - $key =~ s/^-// ; - my $canonkey = lc $key; - - if ($got->{$canonkey} && ($firstTime || - ! $got->{$canonkey}[OFF_FIRST_ONLY] )) - { - my $type = $got->{$canonkey}[OFF_TYPE] ; - my $s ; - $self->_checkType($key, $value, $type, 1, \$s) - or return undef ; - #$value = $$value unless $type & Parse_store_ref ; - $value = $$value ; - $got->{$canonkey} = [1, $type, $value, $s] ; - } - else - { push (@Bad, $key) } - } - - if (@Bad) { - my ($bad) = join(", ", @Bad) ; - return $self->setError("unknown key value(s) @Bad") ; - } - - return 1; -} - -sub Compress::Raw::Zlib::Parameters::_checkType -{ - my $self = shift ; - - my $key = shift ; - my $value = shift ; - my $type = shift ; - my $validate = shift ; - my $output = shift; - - #local $Carp::CarpLevel = $level ; - #print "PARSE $type $key $value $validate $sub\n" ; -# if ( $type & Parse_store_ref) -# { -# #$value = $$value -# # if ref ${ $value } ; -# -# $$output = $value ; -# return 1; -# } - - $value = $$value ; - - if ($type & Parse_any) - { - $$output = $value ; - return 1; - } - elsif ($type & Parse_unsigned) - { - return $self->setError("Parameter '$key' must be an unsigned int, got 'undef'") - if $validate && ! defined $value ; - return $self->setError("Parameter '$key' must be an unsigned int, got '$value'") - if $validate && $value !~ /^\d+$/; - - $$output = defined $value ? $value : 0 ; - return 1; - } - elsif ($type & Parse_signed) - { - return $self->setError("Parameter '$key' must be a signed int, got 'undef'") - if $validate && ! defined $value ; - return $self->setError("Parameter '$key' must be a signed int, got '$value'") - if $validate && $value !~ /^-?\d+$/; - - $$output = defined $value ? $value : 0 ; - return 1 ; - } - elsif ($type & Parse_boolean) - { - return $self->setError("Parameter '$key' must be an int, got '$value'") - if $validate && defined $value && $value !~ /^\d*$/; - $$output = defined $value ? $value != 0 : 0 ; - return 1; - } -# elsif ($type & Parse_string) -# { -# $$output = defined $value ? $value : "" ; -# return 1; -# } - - $$output = $value ; - return 1; -} - - - -sub Compress::Raw::Zlib::Parameters::parsed -{ - my $self = shift ; - my $name = shift ; - - return $self->{Got}{lc $name}[OFF_PARSED] ; -} - -sub Compress::Raw::Zlib::Parameters::value -{ - my $self = shift ; - my $name = shift ; - - if (@_) - { - $self->{Got}{lc $name}[OFF_PARSED] = 1; - $self->{Got}{lc $name}[OFF_DEFAULT] = $_[0] ; - $self->{Got}{lc $name}[OFF_FIXED] = $_[0] ; - } - - return $self->{Got}{lc $name}[OFF_FIXED] ; -} - -our $OPTIONS_deflate = - { - 'AppendOutput' => [1, 1, Parse_boolean, 0], - 'CRC32' => [1, 1, Parse_boolean, 0], - 'ADLER32' => [1, 1, Parse_boolean, 0], - 'Bufsize' => [1, 1, Parse_unsigned, 4096], - - 'Level' => [1, 1, Parse_signed, Z_DEFAULT_COMPRESSION()], - 'Method' => [1, 1, Parse_unsigned, Z_DEFLATED()], - 'WindowBits' => [1, 1, Parse_signed, MAX_WBITS()], - 'MemLevel' => [1, 1, Parse_unsigned, MAX_MEM_LEVEL()], - 'Strategy' => [1, 1, Parse_unsigned, Z_DEFAULT_STRATEGY()], - 'Dictionary' => [1, 1, Parse_any, ""], - }; - -sub Compress::Raw::Zlib::Deflate::new -{ - my $pkg = shift ; - my ($got) = ParseParameters(0, $OPTIONS_deflate, @_); - - croak "Compress::Raw::Zlib::Deflate::new: Bufsize must be >= 1, you specified " . - $got->value('Bufsize') - unless $got->value('Bufsize') >= 1; - - my $flags = 0 ; - $flags |= FLAG_APPEND if $got->value('AppendOutput') ; - $flags |= FLAG_CRC if $got->value('CRC32') ; - $flags |= FLAG_ADLER if $got->value('ADLER32') ; - - my $windowBits = $got->value('WindowBits'); - $windowBits += MAX_WBITS() - if ($windowBits & MAX_WBITS()) == 0 ; - - _deflateInit($flags, - $got->value('Level'), - $got->value('Method'), - $windowBits, - $got->value('MemLevel'), - $got->value('Strategy'), - $got->value('Bufsize'), - $got->value('Dictionary')) ; - -} - -sub Compress::Raw::Zlib::deflateStream::STORABLE_freeze -{ - my $type = ref shift; - croak "Cannot freeze $type object\n"; -} - -sub Compress::Raw::Zlib::deflateStream::STORABLE_thaw -{ - my $type = ref shift; - croak "Cannot thaw $type object\n"; -} - - -our $OPTIONS_inflate = - { - 'AppendOutput' => [1, 1, Parse_boolean, 0], - 'LimitOutput' => [1, 1, Parse_boolean, 0], - 'CRC32' => [1, 1, Parse_boolean, 0], - 'ADLER32' => [1, 1, Parse_boolean, 0], - 'ConsumeInput' => [1, 1, Parse_boolean, 1], - 'Bufsize' => [1, 1, Parse_unsigned, 4096], - - 'WindowBits' => [1, 1, Parse_signed, MAX_WBITS()], - 'Dictionary' => [1, 1, Parse_any, ""], - } ; - -sub Compress::Raw::Zlib::Inflate::new -{ - my $pkg = shift ; - my ($got) = ParseParameters(0, $OPTIONS_inflate, @_); - - croak "Compress::Raw::Zlib::Inflate::new: Bufsize must be >= 1, you specified " . - $got->value('Bufsize') - unless $got->value('Bufsize') >= 1; - - my $flags = 0 ; - $flags |= FLAG_APPEND if $got->value('AppendOutput') ; - $flags |= FLAG_CRC if $got->value('CRC32') ; - $flags |= FLAG_ADLER if $got->value('ADLER32') ; - $flags |= FLAG_CONSUME_INPUT if $got->value('ConsumeInput') ; - $flags |= FLAG_LIMIT_OUTPUT if $got->value('LimitOutput') ; - - - my $windowBits = $got->value('WindowBits'); - $windowBits += MAX_WBITS() - if ($windowBits & MAX_WBITS()) == 0 ; - - _inflateInit($flags, $windowBits, $got->value('Bufsize'), - $got->value('Dictionary')) ; -} - -sub Compress::Raw::Zlib::inflateStream::STORABLE_freeze -{ - my $type = ref shift; - croak "Cannot freeze $type object\n"; -} - -sub Compress::Raw::Zlib::inflateStream::STORABLE_thaw -{ - my $type = ref shift; - croak "Cannot thaw $type object\n"; -} - -sub Compress::Raw::Zlib::InflateScan::new -{ - my $pkg = shift ; - my ($got) = ParseParameters(0, - { - 'CRC32' => [1, 1, Parse_boolean, 0], - 'ADLER32' => [1, 1, Parse_boolean, 0], - 'Bufsize' => [1, 1, Parse_unsigned, 4096], - - 'WindowBits' => [1, 1, Parse_signed, -MAX_WBITS()], - 'Dictionary' => [1, 1, Parse_any, ""], - }, @_) ; - - - croak "Compress::Raw::Zlib::InflateScan::new: Bufsize must be >= 1, you specified " . - $got->value('Bufsize') - unless $got->value('Bufsize') >= 1; - - my $flags = 0 ; - #$flags |= FLAG_APPEND if $got->value('AppendOutput') ; - $flags |= FLAG_CRC if $got->value('CRC32') ; - $flags |= FLAG_ADLER if $got->value('ADLER32') ; - #$flags |= FLAG_CONSUME_INPUT if $got->value('ConsumeInput') ; - - _inflateScanInit($flags, $got->value('WindowBits'), $got->value('Bufsize'), - '') ; -} - -sub Compress::Raw::Zlib::inflateScanStream::createDeflateStream -{ - my $pkg = shift ; - my ($got) = ParseParameters(0, - { - 'AppendOutput' => [1, 1, Parse_boolean, 0], - 'CRC32' => [1, 1, Parse_boolean, 0], - 'ADLER32' => [1, 1, Parse_boolean, 0], - 'Bufsize' => [1, 1, Parse_unsigned, 4096], - - 'Level' => [1, 1, Parse_signed, Z_DEFAULT_COMPRESSION()], - 'Method' => [1, 1, Parse_unsigned, Z_DEFLATED()], - 'WindowBits' => [1, 1, Parse_signed, - MAX_WBITS()], - 'MemLevel' => [1, 1, Parse_unsigned, MAX_MEM_LEVEL()], - 'Strategy' => [1, 1, Parse_unsigned, Z_DEFAULT_STRATEGY()], - }, @_) ; - - croak "Compress::Raw::Zlib::InflateScan::createDeflateStream: Bufsize must be >= 1, you specified " . - $got->value('Bufsize') - unless $got->value('Bufsize') >= 1; - - my $flags = 0 ; - $flags |= FLAG_APPEND if $got->value('AppendOutput') ; - $flags |= FLAG_CRC if $got->value('CRC32') ; - $flags |= FLAG_ADLER if $got->value('ADLER32') ; - - $pkg->_createDeflateStream($flags, - $got->value('Level'), - $got->value('Method'), - $got->value('WindowBits'), - $got->value('MemLevel'), - $got->value('Strategy'), - $got->value('Bufsize'), - ) ; - -} - -sub Compress::Raw::Zlib::inflateScanStream::inflate -{ - my $self = shift ; - my $buffer = $_[1]; - my $eof = $_[2]; - - my $status = $self->scan(@_); - - if ($status == Z_OK() && $_[2]) { - my $byte = ' '; - - $status = $self->scan(\$byte, $_[1]) ; - } - - return $status ; -} - -sub Compress::Raw::Zlib::deflateStream::deflateParams -{ - my $self = shift ; - my ($got) = ParseParameters(0, { - 'Level' => [1, 1, Parse_signed, undef], - 'Strategy' => [1, 1, Parse_unsigned, undef], - 'Bufsize' => [1, 1, Parse_unsigned, undef], - }, - @_) ; - - croak "Compress::Raw::Zlib::deflateParams needs Level and/or Strategy" - unless $got->parsed('Level') + $got->parsed('Strategy') + - $got->parsed('Bufsize'); - - croak "Compress::Raw::Zlib::Inflate::deflateParams: Bufsize must be >= 1, you specified " . - $got->value('Bufsize') - if $got->parsed('Bufsize') && $got->value('Bufsize') <= 1; - - my $flags = 0; - $flags |= 1 if $got->parsed('Level') ; - $flags |= 2 if $got->parsed('Strategy') ; - $flags |= 4 if $got->parsed('Bufsize') ; - - $self->_deflateParams($flags, $got->value('Level'), - $got->value('Strategy'), $got->value('Bufsize')); - -} - - -1; -__END__ - - -#line 1598 diff --git a/software/Slic3r-1.3.0.64bit/lib/Config.pm b/software/Slic3r-1.3.0.64bit/lib/Config.pm deleted file mode 100644 index ceb4b938..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Config.pm +++ /dev/null @@ -1,112 +0,0 @@ -#line 1 "Config.pm" -# This file was created by configpm when Perl was built. Any changes -# made to this file will be lost the next time perl is built. - -# for a description of the variables, please have a look at the -# Glossary file, as written in the Porting folder, or use the url: -# http://perl5.git.perl.org/perl.git/blob/HEAD:/Porting/Glossary - -package Config; -use strict; -use warnings; -use vars '%Config', '$VERSION'; - -$VERSION = "5.024001"; - -# Skip @Config::EXPORT because it only contains %Config, which we special -# case below as it's not a function. @Config::EXPORT won't change in the -# lifetime of Perl 5. -my %Export_Cache = (myconfig => 1, config_sh => 1, config_vars => 1, - config_re => 1, compile_date => 1, local_patches => 1, - bincompat_options => 1, non_bincompat_options => 1, - header_files => 1); - -@Config::EXPORT = qw(%Config); -@Config::EXPORT_OK = keys %Export_Cache; - -# Need to stub all the functions to make code such as print Config::config_sh -# keep working - -sub bincompat_options; -sub compile_date; -sub config_re; -sub config_sh; -sub config_vars; -sub header_files; -sub local_patches; -sub myconfig; -sub non_bincompat_options; - -# Define our own import method to avoid pulling in the full Exporter: -sub import { - shift; - @_ = @Config::EXPORT unless @_; - - my @funcs = grep $_ ne '%Config', @_; - my $export_Config = @funcs < @_ ? 1 : 0; - - no strict 'refs'; - my $callpkg = caller(0); - foreach my $func (@funcs) { - die qq{"$func" is not exported by the Config module\n} - unless $Export_Cache{$func}; - *{$callpkg.'::'.$func} = \&{$func}; - } - - *{"$callpkg\::Config"} = \%Config if $export_Config; - return; -} - -die "$0: Perl lib version (5.24.1) doesn't match executable '$^X' version ($])" - unless $^V; - -$^V eq 5.24.1 - or die sprintf "%s: Perl lib version (5.24.1) doesn't match executable '$^X' version (%vd)", $0, $^V; - - -sub FETCH { - my($self, $key) = @_; - - # check for cached value (which may be undef so we use exists not defined) - return exists $self->{$key} ? $self->{$key} : $self->fetch_string($key); -} - -sub TIEHASH { - bless $_[1], $_[0]; -} - -sub DESTROY { } - -sub AUTOLOAD { - require 'Config_heavy.pl'; - goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/; - die "&Config::AUTOLOAD failed on $Config::AUTOLOAD"; -} - -# tie returns the object, so the value returned to require will be true. -tie %Config, 'Config', { - archlibexp => 'C:\\STRAWB~1\\perl\\lib', - archname => 'MSWin32-x64-multi-thread', - cc => 'gcc', - d_readlink => undef, - d_symlink => undef, - dlext => 'xs.dll', - dlsrc => 'dl_win32.xs', - dont_use_nlink => undef, - exe_ext => '.exe', - inc_version_list => '', - intsize => '4', - ldlibpthname => '', - libpth => 'C:\\STRAWB~1\\c\\lib C:\\STRAWB~1\\c\\x86_64-w64-mingw32\\lib C:\\STRAWB~1\\c\\lib\\gcc\\x86_64-w64-mingw32\\6.3.0', - osname => 'MSWin32', - osvers => '10.0', - path_sep => ';', - privlibexp => 'C:\\STRAWB~1\\perl\\lib', - scriptdir => 'C:\\STRAWB~1\\perl\\bin', - sitearchexp => 'C:\\STRAWB~1\\perl\\site\\lib', - sitelibexp => 'C:\\STRAWB~1\\perl\\site\\lib', - so => 'dll', - useithreads => 'define', - usevendorprefix => 'define', - version => '5.24.1', -}; diff --git a/software/Slic3r-1.3.0.64bit/lib/Config_git.pl b/software/Slic3r-1.3.0.64bit/lib/Config_git.pl deleted file mode 100644 index ab35396d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Config_git.pl +++ /dev/null @@ -1,12 +0,0 @@ -###################################################################### -# WARNING: 'lib/Config_git.pl' is generated by make_patchnum.pl -# DO NOT EDIT DIRECTLY - edit make_patchnum.pl instead -###################################################################### -$Config::Git_Data=<<'ENDOFGIT'; -git_commit_id='' -git_describe='' -git_branch='' -git_uncommitted_changes='' -git_commit_id_title='' - -ENDOFGIT diff --git a/software/Slic3r-1.3.0.64bit/lib/Config_heavy.pl b/software/Slic3r-1.3.0.64bit/lib/Config_heavy.pl deleted file mode 100644 index 4e9611c1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Config_heavy.pl +++ /dev/null @@ -1,1420 +0,0 @@ -# This file was created by configpm when Perl was built. Any changes -# made to this file will be lost the next time perl is built. - -package Config; -use strict; -use warnings; -use vars '%Config'; - -sub bincompat_options { - return split ' ', (Internals::V())[0]; -} - -sub non_bincompat_options { - return split ' ', (Internals::V())[1]; -} - -sub compile_date { - return (Internals::V())[2] -} - -sub local_patches { - my (undef, undef, undef, @patches) = Internals::V(); - return @patches; -} - -sub _V { - die "Perl lib was built for 'MSWin32' but is being run on '$^O'" - unless "MSWin32" eq $^O; - - my ($bincompat, $non_bincompat, $date, @patches) = Internals::V(); - - my $opts = join ' ', sort split ' ', "$bincompat $non_bincompat"; - - # wrap at 76 columns. - - $opts =~ s/(?=.{53})(.{1,53}) /$1\n /mg; - - print Config::myconfig(); - print "\nCharacteristics of this binary (from libperl): \n"; - - print " Compile-time options: $opts\n"; - - if (@patches) { - print " Locally applied patches:\n"; - print "\t$_\n" foreach @patches; - } - - print " Built under MSWin32\n"; - - print " $date\n" if defined $date; - - my @env = map { "$_=\"$ENV{$_}\"" } sort grep {/^PERL/} keys %ENV; - - if (@env) { - print " \%ENV:\n"; - print " $_\n" foreach @env; - } - print " \@INC:\n"; - print " $_\n" foreach @INC; -} - -sub header_files { - return qw(EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h - dosish.h embed.h embedvar.h form.h gv.h handy.h hv.h hv_func.h - intrpvar.h iperlsys.h keywords.h mg.h nostdio.h op.h opcode.h - pad.h parser.h patchlevel.h perl.h perlio.h perliol.h perlsdio.h - perlvars.h perly.h pp.h pp_proto.h proto.h regcomp.h regexp.h - regnodes.h scope.h sv.h thread.h time64.h unixish.h utf8.h - util.h); -} - -### Configured by: strawberry-perl@project -### Target system: WIN32 - -our $summary = <<'!END!'; -Summary of my $package (revision $revision $version_patchlevel_string) configuration: - $git_commit_id_title $git_commit_id$git_ancestor_line - Platform: - osname=$osname, osvers=$osvers, archname=$archname - uname='$myuname' - config_args='$config_args' - hint=$hint, useposix=$useposix, d_sigaction=$d_sigaction - useithreads=$useithreads, usemultiplicity=$usemultiplicity - use64bitint=$use64bitint, use64bitall=$use64bitall, uselongdouble=$uselongdouble - usemymalloc=$usemymalloc, bincompat5005=undef - Compiler: - cc='$cc', ccflags ='$ccflags', - optimize='$optimize', - cppflags='$cppflags' - ccversion='$ccversion', gccversion='$gccversion', gccosandvers='$gccosandvers' - intsize=$intsize, longsize=$longsize, ptrsize=$ptrsize, doublesize=$doublesize, byteorder=$byteorder, doublekind=$doublekind - d_longlong=$d_longlong, longlongsize=$longlongsize, d_longdbl=$d_longdbl, longdblsize=$longdblsize, longdblkind=$longdblkind - ivtype='$ivtype', ivsize=$ivsize, nvtype='$nvtype', nvsize=$nvsize, Off_t='$lseektype', lseeksize=$lseeksize - alignbytes=$alignbytes, prototype=$prototype - Linker and Libraries: - ld='$ld', ldflags ='$ldflags' - libpth=$libpth - libs=$libs - perllibs=$perllibs - libc=$libc, so=$so, useshrplib=$useshrplib, libperl=$libperl - gnulibc_version='$gnulibc_version' - Dynamic Linking: - dlsrc=$dlsrc, dlext=$dlext, d_dlsymun=$d_dlsymun, ccdlflags='$ccdlflags' - cccdlflags='$cccdlflags', lddlflags='$lddlflags' - -!END! -my $summary_expanded; - -sub myconfig { - return $summary_expanded if $summary_expanded; - ($summary_expanded = $summary) =~ s{\$(\w+)} - { - my $c; - if ($1 eq 'git_ancestor_line') { - if ($Config::Config{git_ancestor}) { - $c= "\n Ancestor: $Config::Config{git_ancestor}"; - } else { - $c= ""; - } - } else { - $c = $Config::Config{$1}; - } - defined($c) ? $c : 'undef' - }ge; - $summary_expanded; -} - -local *_ = \my $a; -$_ = <<'!END!'; -Author='' -CONFIG='true' -Date='$Date' -Header='' -Id='$Id' -Locker='' -Log='$Log' -PATCHLEVEL='24' -PERL_API_REVISION='5' -PERL_API_SUBVERSION='0' -PERL_API_VERSION='24' -PERL_CONFIG_SH='true' -PERL_PATCHLEVEL='' -PERL_REVISION='5' -PERL_SUBVERSION='1' -PERL_VERSION='24' -RCSfile='$RCSfile' -Revision='$Revision' -SUBVERSION='1' -Source='' -State='' -_a='.a' -_exe='.exe' -_o='.o' -afs='false' -afsroot='/afs' -alignbytes='8' -ansi2knr='' -aphostname='' -api_revision='5' -api_subversion='0' -api_version='24' -api_versionstring='5.24.0' -ar='ar' -archlib='C:\STRAWB~1\perl\lib' -archlibexp='C:\STRAWB~1\perl\lib' -archname64='' -archname='MSWin32-x64-multi-thread' -archobjs='' -asctime_r_proto='0' -awk='awk' -baserev='5' -bash='' -bin='C:\STRAWB~1\perl\bin' -binexp='C:\STRAWB~1\perl\bin' -bison='' -bootstrap_charset='undef' -byacc='byacc' -byteorder='1234' -c='' -castflags='0' -cat='type' -cc='gcc' -cccdlflags=' ' -ccdlflags=' ' -ccflags=' -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fwrapv -fno-strict-aliasing -mms-bitfields' -ccflags_uselargefiles='' -ccname='gcc' -ccsymbols='' -ccversion='' -cf_by='strawberry-perl' -cf_email='strawberry-perl@project' -cf_time='Sun Mar 26 22:26:01 2017' -charbits='8' -chgrp='' -chmod='' -chown='' -clocktype='clock_t' -comm='' -compress='' -contains='grep' -cp='copy' -cpio='' -cpp='gcc -E' -cpp_stuff='42' -cppccsymbols='' -cppflags='-DWIN32' -cpplast='' -cppminus='-' -cpprun='gcc -E' -cppstdin='gcc -E' -cppsymbols='' -crypt_r_proto='0' -cryptlib='' -csh='undef' -ctermid_r_proto='0' -ctime_r_proto='0' -d_Gconvert='sprintf((b),"%.*g",(n),(x))' -d_PRIEUldbl='undef' -d_PRIFUldbl='undef' -d_PRIGUldbl='undef' -d_PRIXU64='define' -d_PRId64='define' -d_PRIeldbl='undef' -d_PRIfldbl='undef' -d_PRIgldbl='undef' -d_PRIi64='define' -d_PRIo64='define' -d_PRIu64='define' -d_PRIx64='define' -d_SCNfldbl='undef' -d__fwalk='undef' -d_access='define' -d_accessx='undef' -d_acosh='undef' -d_aintl='undef' -d_alarm='define' -d_archlib='define' -d_asctime64='undef' -d_asctime_r='undef' -d_asinh='undef' -d_atanh='undef' -d_atolf='undef' -d_atoll='define' -d_attribute_deprecated='undef' -d_attribute_format='undef' -d_attribute_malloc='undef' -d_attribute_nonnull='undef' -d_attribute_noreturn='undef' -d_attribute_pure='undef' -d_attribute_unused='undef' -d_attribute_warn_unused_result='undef' -d_backtrace='undef' -d_bcmp='undef' -d_bcopy='undef' -d_bsd='define' -d_bsdgetpgrp='undef' -d_bsdsetpgrp='undef' -d_builtin_choose_expr='undef' -d_builtin_expect='undef' -d_bzero='undef' -d_c99_variadic_macros='undef' -d_casti32='define' -d_castneg='define' -d_cbrt='undef' -d_charvspr='undef' -d_chown='undef' -d_chroot='undef' -d_chsize='define' -d_class='undef' -d_clearenv='undef' -d_closedir='define' -d_cmsghdr_s='undef' -d_const='define' -d_copysign='undef' -d_copysignl='undef' -d_cplusplus='undef' -d_crypt='define' -d_crypt_r='undef' -d_csh='undef' -d_ctermid='undef' -d_ctermid_r='undef' -d_ctime64='undef' -d_ctime_r='undef' -d_cuserid='undef' -d_dbl_dig='define' -d_dbminitproto='undef' -d_difftime64='undef' -d_difftime='define' -d_dir_dd_fd='undef' -d_dirfd='undef' -d_dirnamlen='define' -d_dladdr='undef' -d_dlerror='define' -d_dlopen='define' -d_dlsymun='undef' -d_dosuid='undef' -d_drand48_r='undef' -d_drand48proto='undef' -d_dup2='define' -d_eaccess='undef' -d_endgrent='undef' -d_endgrent_r='undef' -d_endhent='undef' -d_endhostent_r='undef' -d_endnent='undef' -d_endnetent_r='undef' -d_endpent='undef' -d_endprotoent_r='undef' -d_endpwent='undef' -d_endpwent_r='undef' -d_endsent='undef' -d_endservent_r='undef' -d_eofnblk='define' -d_erf='undef' -d_erfc='undef' -d_eunice='undef' -d_exp2='undef' -d_expm1='undef' -d_faststdio='define' -d_fchdir='undef' -d_fchmod='undef' -d_fchown='undef' -d_fcntl='undef' -d_fcntl_can_lock='undef' -d_fd_macros='define' -d_fd_set='define' -d_fdclose='undef' -d_fdim='undef' -d_fds_bits='define' -d_fegetround='undef' -d_fgetpos='define' -d_finite='undef' -d_finitel='undef' -d_flexfnam='define' -d_flock='define' -d_flockproto='define' -d_fma='undef' -d_fmax='undef' -d_fmin='undef' -d_fork='undef' -d_fp_class='undef' -d_fp_classify='undef' -d_fp_classl='undef' -d_fpathconf='undef' -d_fpclass='undef' -d_fpclassify='undef' -d_fpclassl='undef' -d_fpgetround='undef' -d_fpos64_t='undef' -d_freelocale='undef' -d_frexpl='undef' -d_fs_data_s='undef' -d_fseeko='undef' -d_fsetpos='define' -d_fstatfs='undef' -d_fstatvfs='undef' -d_fsync='undef' -d_ftello='undef' -d_ftime='define' -d_futimes='undef' -d_gdbm_ndbm_h_uses_prototypes='undef' -d_gdbmndbm_h_uses_prototypes='undef' -d_getaddrinfo='undef' -d_getcwd='define' -d_getespwnam='undef' -d_getfsstat='undef' -d_getgrent='undef' -d_getgrent_r='undef' -d_getgrgid_r='undef' -d_getgrnam_r='undef' -d_getgrps='undef' -d_gethbyaddr='define' -d_gethbyname='define' -d_gethent='undef' -d_gethname='define' -d_gethostbyaddr_r='undef' -d_gethostbyname_r='undef' -d_gethostent_r='undef' -d_gethostprotos='define' -d_getitimer='undef' -d_getlogin='define' -d_getlogin_r='undef' -d_getmnt='undef' -d_getmntent='undef' -d_getnameinfo='undef' -d_getnbyaddr='undef' -d_getnbyname='undef' -d_getnent='undef' -d_getnetbyaddr_r='undef' -d_getnetbyname_r='undef' -d_getnetent_r='undef' -d_getnetprotos='undef' -d_getpagsz='undef' -d_getpbyname='define' -d_getpbynumber='define' -d_getpent='undef' -d_getpgid='undef' -d_getpgrp2='undef' -d_getpgrp='undef' -d_getppid='undef' -d_getprior='undef' -d_getprotobyname_r='undef' -d_getprotobynumber_r='undef' -d_getprotoent_r='undef' -d_getprotoprotos='define' -d_getprpwnam='undef' -d_getpwent='undef' -d_getpwent_r='undef' -d_getpwnam_r='undef' -d_getpwuid_r='undef' -d_getsbyname='define' -d_getsbyport='define' -d_getsent='undef' -d_getservbyname_r='undef' -d_getservbyport_r='undef' -d_getservent_r='undef' -d_getservprotos='define' -d_getspnam='undef' -d_getspnam_r='undef' -d_gettimeod='define' -d_gmtime64='undef' -d_gmtime_r='undef' -d_gnulibc='undef' -d_grpasswd='undef' -d_hasmntopt='undef' -d_htonl='define' -d_hypot='undef' -d_ilogb='undef' -d_ilogbl='undef' -d_inc_version_list='undef' -d_index='undef' -d_inetaton='undef' -d_inetntop='undef' -d_inetpton='undef' -d_int64_t='undef' -d_ip_mreq='undef' -d_ip_mreq_source='undef' -d_ipv6_mreq='undef' -d_ipv6_mreq_source='undef' -d_isascii='define' -d_isblank='undef' -d_isfinite='undef' -d_isfinitel='undef' -d_isinf='undef' -d_isinfl='undef' -d_isless='undef' -d_isnan='define' -d_isnanl='undef' -d_isnormal='undef' -d_j0='undef' -d_j0l='undef' -d_killpg='define' -d_lc_monetary_2008='undef' -d_lchown='undef' -d_ldbl_dig='define' -d_ldexpl='undef' -d_lgamma='undef' -d_lgamma_r='undef' -d_libm_lib_version='undef' -d_link='define' -d_llrint='undef' -d_llrintl='undef' -d_llround='undef' -d_llroundl='undef' -d_localtime64='undef' -d_localtime_r='undef' -d_localtime_r_needs_tzset='undef' -d_locconv='define' -d_lockf='undef' -d_log1p='undef' -d_log2='undef' -d_logb='undef' -d_longdbl='define' -d_longlong='define' -d_lrint='undef' -d_lrintl='undef' -d_lround='undef' -d_lroundl='undef' -d_lseekproto='define' -d_lstat='undef' -d_madvise='undef' -d_malloc_good_size='undef' -d_malloc_size='undef' -d_mblen='define' -d_mbstowcs='define' -d_mbtowc='define' -d_memchr='define' -d_memcmp='define' -d_memcpy='define' -d_memmem='undef' -d_memmove='define' -d_memset='define' -d_mkdir='define' -d_mkdtemp='undef' -d_mkfifo='undef' -d_mkstemp='define' -d_mkstemps='undef' -d_mktime64='undef' -d_mktime='define' -d_mmap='undef' -d_modfl='undef' -d_modfl_pow32_bug='undef' -d_modflproto='undef' -d_mprotect='undef' -d_msg='undef' -d_msg_ctrunc='undef' -d_msg_dontroute='undef' -d_msg_oob='undef' -d_msg_peek='undef' -d_msg_proxy='undef' -d_msgctl='undef' -d_msgget='undef' -d_msghdr_s='undef' -d_msgrcv='undef' -d_msgsnd='undef' -d_msync='undef' -d_munmap='undef' -d_mymalloc='undef' -d_nan='undef' -d_ndbm='define' -d_ndbm_h_uses_prototypes='undef' -d_nearbyint='undef' -d_newlocale='undef' -d_nextafter='undef' -d_nexttoward='undef' -d_nice='undef' -d_nl_langinfo='undef' -d_nv_preserves_uv='undef' -d_nv_zero_is_allbits_zero='define' -d_off64_t='undef' -d_old_pthread_create_joinable='undef' -d_oldpthreads='undef' -d_oldsock='undef' -d_open3='undef' -d_pathconf='undef' -d_pause='define' -d_perl_otherlibdirs='undef' -d_phostname='undef' -d_pipe='define' -d_poll='undef' -d_portable='define' -d_prctl='undef' -d_prctl_set_name='undef' -d_printf_format_null='undef' -d_procselfexe='undef' -d_pseudofork='define' -d_pthread_atfork='undef' -d_pthread_attr_setscope='undef' -d_pthread_yield='undef' -d_ptrdiff_t='define' -d_pwage='undef' -d_pwchange='undef' -d_pwclass='undef' -d_pwcomment='undef' -d_pwexpire='undef' -d_pwgecos='undef' -d_pwpasswd='undef' -d_pwquota='undef' -d_qgcvt='undef' -d_quad='define' -d_random_r='undef' -d_readdir64_r='undef' -d_readdir='define' -d_readdir_r='undef' -d_readlink='undef' -d_readv='undef' -d_recvmsg='undef' -d_regcomp='undef' -d_remainder='undef' -d_remquo='undef' -d_rename='define' -d_rewinddir='define' -d_rint='undef' -d_rmdir='define' -d_round='undef' -d_safebcpy='undef' -d_safemcpy='undef' -d_sanemcmp='define' -d_sbrkproto='undef' -d_scalbn='undef' -d_scalbnl='undef' -d_sched_yield='undef' -d_scm_rights='undef' -d_seekdir='define' -d_select='define' -d_sem='undef' -d_semctl='undef' -d_semctl_semid_ds='undef' -d_semctl_semun='undef' -d_semget='undef' -d_semop='undef' -d_sendmsg='undef' -d_setegid='undef' -d_seteuid='undef' -d_setgrent='undef' -d_setgrent_r='undef' -d_setgrps='undef' -d_sethent='undef' -d_sethostent_r='undef' -d_setitimer='undef' -d_setlinebuf='undef' -d_setlocale='define' -d_setlocale_r='undef' -d_setnent='undef' -d_setnetent_r='undef' -d_setpent='undef' -d_setpgid='undef' -d_setpgrp2='undef' -d_setpgrp='undef' -d_setprior='undef' -d_setproctitle='undef' -d_setprotoent_r='undef' -d_setpwent='undef' -d_setpwent_r='undef' -d_setregid='undef' -d_setresgid='undef' -d_setresuid='undef' -d_setreuid='undef' -d_setrgid='undef' -d_setruid='undef' -d_setsent='undef' -d_setservent_r='undef' -d_setsid='undef' -d_setvbuf='define' -d_shm='undef' -d_shmat='undef' -d_shmatprototype='undef' -d_shmctl='undef' -d_shmdt='undef' -d_shmget='undef' -d_sigaction='undef' -d_siginfo_si_addr='undef' -d_siginfo_si_band='undef' -d_siginfo_si_errno='undef' -d_siginfo_si_pid='undef' -d_siginfo_si_status='undef' -d_siginfo_si_uid='undef' -d_siginfo_si_value='undef' -d_signbit='undef' -d_sigprocmask='undef' -d_sigsetjmp='undef' -d_sin6_scope_id='define' -d_sitearch='define' -d_snprintf='define' -d_sockaddr_in6='undef' -d_sockaddr_sa_len='undef' -d_sockatmark='undef' -d_sockatmarkproto='undef' -d_socket='define' -d_socklen_t='undef' -d_sockpair='undef' -d_socks5_init='undef' -d_sprintf_returns_strlen='define' -d_sqrtl='undef' -d_srand48_r='undef' -d_srandom_r='undef' -d_sresgproto='undef' -d_sresuproto='undef' -d_stat='define' -d_statblks='undef' -d_statfs_f_flags='undef' -d_statfs_s='undef' -d_static_inline='define' -d_statvfs='undef' -d_stdio_cnt_lval='define' -d_stdio_ptr_lval='define' -d_stdio_ptr_lval_nochange_cnt='define' -d_stdio_ptr_lval_sets_cnt='undef' -d_stdio_stream_array='undef' -d_stdiobase='define' -d_stdstdio='define' -d_strchr='define' -d_strcoll='define' -d_strctcpy='define' -d_strerrm='strerror(e)' -d_strerror='define' -d_strerror_r='undef' -d_strftime='define' -d_strlcat='undef' -d_strlcpy='undef' -d_strtod='define' -d_strtol='define' -d_strtold='undef' -d_strtoll='define' -d_strtoq='undef' -d_strtoul='define' -d_strtoull='define' -d_strtouq='undef' -d_strxfrm='define' -d_suidsafe='undef' -d_symlink='undef' -d_syscall='undef' -d_syscallproto='undef' -d_sysconf='undef' -d_sysernlst='' -d_syserrlst='define' -d_system='define' -d_tcgetpgrp='undef' -d_tcsetpgrp='undef' -d_telldir='define' -d_telldirproto='define' -d_tgamma='undef' -d_time='define' -d_timegm='undef' -d_times='define' -d_tm_tm_gmtoff='undef' -d_tm_tm_zone='undef' -d_tmpnam_r='undef' -d_trunc='undef' -d_truncate='undef' -d_truncl='undef' -d_ttyname_r='undef' -d_tzname='define' -d_u32align='define' -d_ualarm='undef' -d_umask='define' -d_uname='define' -d_union_semun='define' -d_unordered='undef' -d_unsetenv='undef' -d_uselocale='undef' -d_usleep='undef' -d_usleepproto='undef' -d_ustat='undef' -d_vendorarch='define' -d_vendorbin='define' -d_vendorlib='define' -d_vendorscript='define' -d_vfork='undef' -d_void_closedir='undef' -d_voidsig='define' -d_voidtty='' -d_volatile='define' -d_vprintf='define' -d_vsnprintf='define' -d_wait4='undef' -d_waitpid='define' -d_wcscmp='define' -d_wcstombs='define' -d_wcsxfrm='define' -d_wctomb='define' -d_writev='undef' -d_xenix='undef' -date='date' -db_hashtype='int' -db_prefixtype='int' -db_version_major='0' -db_version_minor='0' -db_version_patch='0' -direntrytype='struct direct' -dlext='xs.dll' -dlltool='dlltool' -dlsrc='dl_win32.xs' -doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f' -doublekind='3' -doublemantbits='52' -doublenanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f' -doublesize='8' -drand01='Perl_drand48()' -drand48_r_proto='0' -dtrace='' -dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash IO List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize Win32 Win32API/File XS/APItest XS/Typemap arybase attributes mro re threads threads/shared' -eagain='EAGAIN' -ebcdic='undef' -echo='echo' -egrep='egrep' -emacs='' -endgrent_r_proto='0' -endhostent_r_proto='0' -endnetent_r_proto='0' -endprotoent_r_proto='0' -endpwent_r_proto='0' -endservent_r_proto='0' -eunicefix=':' -exe_ext='.exe' -expr='expr' -extensions='Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Opcode POSIX Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version' -extern_C='extern' -extras='' -fflushNULL='define' -fflushall='undef' -find='find' -firstmakefile='makefile' -flex='' -fpossize='8' -fpostype='fpos_t' -freetype='void' -from=':' -full_ar='' -full_csh='' -full_sed='' -gccansipedantic='' -gccosandvers='' -gccversion='6.3.0' -getgrent_r_proto='0' -getgrgid_r_proto='0' -getgrnam_r_proto='0' -gethostbyaddr_r_proto='0' -gethostbyname_r_proto='0' -gethostent_r_proto='0' -getlogin_r_proto='0' -getnetbyaddr_r_proto='0' -getnetbyname_r_proto='0' -getnetent_r_proto='0' -getprotobyname_r_proto='0' -getprotobynumber_r_proto='0' -getprotoent_r_proto='0' -getpwent_r_proto='0' -getpwnam_r_proto='0' -getpwuid_r_proto='0' -getservbyname_r_proto='0' -getservbyport_r_proto='0' -getservent_r_proto='0' -getspnam_r_proto='0' -gidformat='"ld"' -gidsign='-1' -gidsize='4' -gidtype='gid_t' -glibpth='/usr/shlib /lib/pa1.1 /usr/lib/large /lib /usr/lib /usr/lib/386 /lib/386 /lib/large /usr/lib/small /lib/small /usr/ccs/lib /usr/ucblib /usr/shlib ' -gmake='gmake' -gmtime_r_proto='0' -gnulibc_version='' -grep='grep' -groupcat='' -groupstype='gid_t' -gzip='gzip' -h_fcntl='false' -h_sysfile='true' -hint='recommended' -hostcat='ypcat hosts' -html1dir=' ' -html1direxp='' -html3dir=' ' -html3direxp='' -i16size='2' -i16type='short' -i32size='4' -i32type='long' -i64size='8' -i64type='long long' -i8size='1' -i8type='char' -i_arpainet='define' -i_assert='define' -i_bfd='undef' -i_bsdioctl='' -i_crypt='undef' -i_db='define' -i_dbm='define' -i_dirent='define' -i_dlfcn='undef' -i_execinfo='undef' -i_fcntl='define' -i_fenv='undef' -i_float='define' -i_fp='undef' -i_fp_class='undef' -i_gdbm='define' -i_gdbm_ndbm='undef' -i_gdbmndbm='undef' -i_grp='undef' -i_ieeefp='undef' -i_inttypes='undef' -i_langinfo='undef' -i_libutil='undef' -i_limits='define' -i_locale='define' -i_machcthr='undef' -i_malloc='define' -i_mallocmalloc='undef' -i_math='define' -i_memory='undef' -i_mntent='undef' -i_ndbm='define' -i_netdb='undef' -i_neterrno='undef' -i_netinettcp='undef' -i_niin='undef' -i_poll='undef' -i_prot='undef' -i_pthread='undef' -i_pwd='undef' -i_quadmath='undef' -i_rpcsvcdbm='undef' -i_sgtty='undef' -i_shadow='undef' -i_socks='undef' -i_stdarg='define' -i_stdbool='define' -i_stddef='define' -i_stdint='undef' -i_stdlib='define' -i_string='define' -i_sunmath='undef' -i_sysaccess='undef' -i_sysdir='undef' -i_sysfile='undef' -i_sysfilio='define' -i_sysin='undef' -i_sysioctl='undef' -i_syslog='undef' -i_sysmman='undef' -i_sysmode='undef' -i_sysmount='undef' -i_sysndir='undef' -i_sysparam='undef' -i_syspoll='undef' -i_sysresrc='undef' -i_syssecrt='undef' -i_sysselct='undef' -i_syssockio='undef' -i_sysstat='define' -i_sysstatfs='undef' -i_sysstatvfs='undef' -i_systime='undef' -i_systimek='undef' -i_systimes='undef' -i_systypes='define' -i_sysuio='undef' -i_sysun='undef' -i_sysutsname='undef' -i_sysvfs='undef' -i_syswait='undef' -i_termio='undef' -i_termios='undef' -i_time='define' -i_unistd='undef' -i_ustat='undef' -i_utime='define' -i_values='undef' -i_varargs='undef' -i_varhdr='varargs.h' -i_vfork='undef' -ignore_versioned_solibs='' -inc_version_list='' -inc_version_list_init='0' -incpath='C:\STRAWB~1\c\include' -inews='' -initialinstalllocation='' -installarchlib='C:\STRAWB~1\perl\lib' -installbin='C:\STRAWB~1\perl\bin' -installhtml1dir='' -installhtml3dir='' -installhtmldir='' -installhtmlhelpdir='' -installman1dir='' -installman3dir='' -installprefix='C:\STRAWB~1\perl' -installprefixexp='C:\STRAWB~1\perl' -installprivlib='C:\STRAWB~1\perl\lib' -installscript='C:\STRAWB~1\perl\bin' -installsitearch='C:\STRAWB~1\perl\site\lib' -installsitebin='C:\STRAWB~1\perl\site\bin' -installsitehtml1dir='' -installsitehtml3dir='' -installsitelib='C:\STRAWB~1\perl\site\lib' -installsiteman1dir='' -installsiteman3dir='' -installsitescript='C:\STRAWB~1\perl\site\bin' -installstyle='lib' -installusrbinperl='undef' -installvendorarch='C:\STRAWB~1\perl\vendor\lib' -installvendorbin='C:\STRAWB~1\perl\bin' -installvendorhtml1dir='' -installvendorhtml3dir='' -installvendorlib='C:\STRAWB~1\perl\vendor\lib' -installvendorman1dir='' -installvendorman3dir='' -installvendorscript='C:\STRAWB~1\perl\bin' -intsize='4' -issymlink='' -ivdformat='"I64d"' -ivsize='8' -ivtype='long long' -known_extensions='Amiga/ARexx Amiga/Exec Archive/Tar Attribute/Handlers AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob File/Fetch File/Find File/Glob File/Path File/Temp FileCache Filter/Simple Filter/Util/Call GDBM_File Getopt/Long HTTP/Tiny Hash/Util Hash/Util/FieldHash I18N/Collate I18N/LangTags I18N/Langinfo IO IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 IPC/SysV JSON/PP List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NDBM_File NEXT Net/Ping ODBM_File Opcode POSIX Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict SelfLoader Socket Storable Sys/Hostname Sys/Syslog Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize VMS/DCLsym VMS/Filespec VMS/Stdio Win32 Win32API/File Win32CORE XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base bignum constant encoding/warnings experimental if lib libnet mro parent perlfaq podlators re threads threads/shared version' -ksh='' -ld='g++' -lddlflags='-mdll -s -L"C:\STRAWB~1\perl\lib\CORE" -L"C:\STRAWB~1\c\lib"' -ldflags='-s -L"C:\STRAWB~1\perl\lib\CORE" -L"C:\STRAWB~1\c\lib"' -ldflags_uselargefiles='' -ldlibpthname='' -less='less' -lib_ext='.a' -libc='' -libperl='libperl524.a' -libpth='C:\STRAWB~1\c\lib C:\STRAWB~1\c\x86_64-w64-mingw32\lib C:\STRAWB~1\c\lib\gcc\x86_64-w64-mingw32\6.3.0' -libs='-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32' -libsdirs='' -libsfiles='' -libsfound='' -libspath='' -libswanted='net socket inet nsl nm ndbm gdbm dbm db malloc dl ld sun m c cposix posix ndir dir crypt ucb bsd BSD PW x' -libswanted_uselargefiles='net socket inet nsl nm ndbm gdbm dbm db malloc dl ld sun m c cposix posix ndir dir crypt ucb bsd BSD PW x' -line='line' -lint='' -lkflags='' -ln='' -lns='copy' -localtime_r_proto='0' -locincpth='C:\STRAWB~1\c\include /usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include' -loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib' -longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' -longdblkind='3' -longdblmantbits='64' -longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00' -longdblsize='16' -longlongsize='8' -longsize='4' -lp='' -lpr='' -ls='dir' -lseeksize='8' -lseektype='long long' -mad='undef' -mail='' -mailx='' -make='dmake' -make_set_make='#' -mallocobj='malloc.o' -mallocsrc='malloc.c' -malloctype='void *' -man1dir='' -man1direxp='' -man1ext='1' -man3dir='' -man3direxp='' -man3ext='3' -mips_type='' -mistrustnm='' -mkdir='mkdir' -mmaptype='void *' -modetype='mode_t' -more='more /e' -multiarch='undef' -mv='' -myarchname='MSWin32' -mydomain='' -myhostname='' -myuname='Win32 strawberry-perl 5.24.1.4 #1 Sun Mar 26 22:24:56 2017 x64' -n='-n' -need_va_copy='undef' -netdb_hlen_type='int' -netdb_host_type='char *' -netdb_name_type='char *' -netdb_net_type='long' -nm='nm' -nm_opt='' -nm_so_opt='' -nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators version' -nroff='' -nvEUformat='"E"' -nvFUformat='"F"' -nvGUformat='"G"' -nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0' -nv_preserves_uv_bits='53' -nveformat='"e"' -nvfformat='"f"' -nvgformat='"g"' -nvmantbits='52' -nvsize='8' -nvtype='double' -o_nonblock='O_NONBLOCK' -obj_ext='.o' -old_pthread_create_joinable='' -optimize='-s -O2' -orderlib='false' -osname='MSWin32' -osvers='10.0' -otherlibdirs='' -package='perl5' -pager='more /e' -passcat='' -patchlevel='24' -path_sep=';' -perl5='' -perl='perl' -perl_patchlevel='' -perl_static_inline='static __inline__' -perladmin='' -perllibs='-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32' -perlpath='C:\STRAWB~1\perl\bin\perl.exe' -pg='' -phostname='hostname' -pidtype='int' -plibpth='' -pmake='' -pr='' -prefix='C:\STRAWB~1\perl' -prefixexp='C:\STRAWB~1\perl' -privlib='C:\STRAWB~1\perl\lib' -privlibexp='C:\STRAWB~1\perl\lib' -procselfexe='' -prototype='define' -ptrsize='8' -quadkind='3' -quadtype='long long' -randbits='48' -randfunc='Perl_drand48' -random_r_proto='0' -randseedtype='U32' -ranlib='rem' -rd_nodata='-1' -readdir64_r_proto='0' -readdir_r_proto='0' -revision='5' -rm='del' -rm_try='' -rmail='' -run='' -runnm='true' -sGMTIME_max="2147483647" -sGMTIME_min="0" -sLOCALTIME_max="2147483647" -sLOCALTIME_min="0" -sPRIEUldbl='"LE"' -sPRIFUldbl='"LF"' -sPRIGUldbl='"LG"' -sPRIXU64='"I64X"' -sPRId64='"I64d"' -sPRIeldbl='"Le"' -sPRIfldbl='"Lf"' -sPRIgldbl='"Lg"' -sPRIi64='"I64i"' -sPRIo64='"I64o"' -sPRIu64='"I64u"' -sPRIx64='"I64x"' -sSCNfldbl='"Lf"' -sched_yield='' -scriptdir='C:\STRAWB~1\perl\bin' -scriptdirexp='C:\STRAWB~1\perl\bin' -sed='sed' -seedfunc='Perl_drand48_init' -selectminbits='32' -selecttype='Perl_fd_set *' -sendmail='blat' -setgrent_r_proto='0' -sethostent_r_proto='0' -setlocale_r_proto='0' -setnetent_r_proto='0' -setprotoent_r_proto='0' -setpwent_r_proto='0' -setservent_r_proto='0' -sh='cmd /x /c' -shar='' -sharpbang='#!' -shmattype='void *' -shortsize='2' -shrpenv='' -shsharp='true' -sig_count='26' -sig_name='ZERO HUP INT QUIT ILL NUM05 NUM06 NUM07 FPE KILL NUM10 SEGV NUM12 PIPE ALRM TERM NUM16 NUM17 NUM18 NUM19 CHLD BREAK ABRT STOP NUM24 CONT CLD' -sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "NUM05", "NUM06", "NUM07", "FPE", "KILL", "NUM10", "SEGV", "NUM12", "PIPE", "ALRM", "TERM", "NUM16", "NUM17", "NUM18", "NUM19", "CHLD", "BREAK", "ABRT", "STOP", "NUM24", "CONT", "CLD", 0' -sig_num='0 1 2 21 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 20' -sig_num_init='0, 1, 2, 21, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 20, 0' -sig_size='27' -signal_t='void' -sitearch='C:\STRAWB~1\perl\site\lib' -sitearchexp='C:\STRAWB~1\perl\site\lib' -sitebin='C:\STRAWB~1\perl\site\bin' -sitebinexp='C:\STRAWB~1\perl\site\bin' -sitehtml1dir='' -sitehtml1direxp='' -sitehtml3dir='' -sitehtml3direxp='' -sitelib='C:\STRAWB~1\perl\site\lib' -sitelib_stem='' -sitelibexp='C:\STRAWB~1\perl\site\lib' -siteman1dir='' -siteman1direxp='' -siteman3dir='' -siteman3direxp='' -siteprefix='C:\STRAWB~1\perl\site' -siteprefixexp='C:\STRAWB~1\perl\site' -sitescript='C:\STRAWB~1\perl\site\bin' -sitescriptexp='C:\STRAWB~1\perl\site\bin' -sizesize='8' -sizetype='size_t' -sleep='' -smail='' -so='dll' -sockethdr='' -socketlib='' -socksizetype='int' -sort='sort' -spackage='Perl5' -spitshell='' -srand48_r_proto='0' -srandom_r_proto='0' -src='' -ssizetype='long long' -st_ino_sign='1' -st_ino_size='8' -startperl='#!perl' -startsh='#!/bin/sh' -static_ext='Win32CORE' -stdchar='char' -stdio_base='((fp)->_base)' -stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)' -stdio_cnt='((fp)->_cnt)' -stdio_filbuf='' -stdio_ptr='((fp)->_ptr)' -stdio_stream_array='' -strerror_r_proto='0' -strings='/usr/include/string.h' -submit='' -subversion='1' -sysman='/usr/man/man1' -tail='' -tar='' -targetarch='' -targetsh='cmd /x /c' -tbl='' -tee='' -test='' -timeincl='/usr/include/sys/time.h ' -timetype='time_t' -tmpnam_r_proto='0' -to=':' -touch='touch' -tr='' -trnl='\012' -troff='' -ttyname_r_proto='0' -u16size='2' -u16type='unsigned short' -u32size='4' -u32type='unsigned long' -u64size='8' -u64type='unsigned long long' -u8size='1' -u8type='unsigned char' -uidformat='"ld"' -uidsign='-1' -uidsize='4' -uidtype='uid_t' -uname='uname' -uniq='uniq' -uquadtype='unsigned long long' -use5005threads='undef' -use64bitall='undef' -use64bitint='define' -usecbacktrace='undef' -usecrosscompile='undef' -usedevel='undef' -usedl='define' -usedtrace='undef' -usefaststdio='undef' -useithreads='define' -usekernprocpathname='undef' -uselargefiles='define' -uselongdouble='undef' -usemallocwrap='define' -usemorebits='undef' -usemultiplicity='define' -usemymalloc='n' -usenm='false' -usensgetexecutablepath='undef' -useopcode='true' -useperlio='define' -useposix='true' -usequadmath='undef' -usereentrant='undef' -userelocatableinc='undef' -useshrplib='true' -usesitecustomize='undef' -usesocks='undef' -usethreads='define' -usevendorprefix='define' -usevfork='false' -usrinc='C:\STRAWB~1\c\include' -uuname='' -uvXUformat='"I64X"' -uvoformat='"I64o"' -uvsize='8' -uvtype='unsigned long long' -uvuformat='"I64u"' -uvxformat='"I64x"' -vaproto='undef' -vendorarch='C:\STRAWB~1\perl\vendor\lib' -vendorarchexp='C:\STRAWB~1\perl\vendor\lib' -vendorbin='C:\STRAWB~1\perl\bin' -vendorbinexp='C:\STRAWB~1\perl\bin' -vendorhtml1dir=' ' -vendorhtml1direxp='' -vendorhtml3dir=' ' -vendorhtml3direxp='' -vendorlib='C:\STRAWB~1\perl\vendor\lib' -vendorlib_stem='' -vendorlibexp='C:\STRAWB~1\perl\vendor\lib' -vendorman1dir=' ' -vendorman1direxp='' -vendorman3dir=' ' -vendorman3direxp='' -vendorprefix='C:\STRAWB~1\perl\vendor' -vendorprefixexp='C:\STRAWB~1\perl\vendor' -vendorscript='C:\STRAWB~1\perl\bin' -vendorscriptexp='C:\STRAWB~1\perl\bin' -version='5.24.1' -version_patchlevel_string='version 24 subversion 1' -versiononly='undef' -vi='' -xlibpth='/usr/lib/386 /lib/386' -yacc='yacc' -yaccflags='' -zcat='' -zip='zip' -!END! - -my $i = ord(8); -foreach my $c (7,6,5,4,3,2,1) { $i <<= 8; $i |= ord($c); } -our $byteorder = join('', unpack('aaaaaaaa', pack('Q', $i))); -s/(byteorder=)(['"]).*?\2/$1$2$Config::byteorder$2/m; - -my $config_sh_len = length $_; - -our $Config_SH_expanded = "\n$_" . << 'EOVIRTUAL'; -ccflags_nolargefiles=' -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fwrapv -fno-strict-aliasing -mms-bitfields' -ldflags_nolargefiles='-s -L"C:\STRAWB~1\perl\lib\CORE" -L"C:\STRAWB~1\c\lib"' -libs_nolargefiles='-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lcomctl32' -libswanted_nolargefiles='' -EOVIRTUAL -eval { - # do not have hairy conniptions if this isnt available - require 'Config_git.pl'; - $Config_SH_expanded .= $Config::Git_Data; - 1; -} or warn "Warning: failed to load Config_git.pl, something strange about this perl...\n"; - -# Search for it in the big string -sub fetch_string { - my($self, $key) = @_; - - return undef unless my ($quote_type, $value) = $Config_SH_expanded =~ /\n$key=(['"])(.*?)\1\n/s; - - # If we had a double-quote, we'd better eval it so escape - # sequences and such can be interpolated. Since the incoming - # value is supposed to follow shell rules and not perl rules, - # we escape any perl variable markers - - # Historically, since " 'support' was added in change 1409, the - # interpolation was done before the undef. Stick to this arguably buggy - # behaviour as we're refactoring. - if ($quote_type eq '"') { - $value =~ s/\$/\\\$/g; - $value =~ s/\@/\\\@/g; - eval "\$value = \"$value\""; - } - - # So we can say "if $Config{'foo'}". - $self->{$key} = $value eq 'undef' ? undef : $value; # cache it -} - -my $prevpos = 0; - -sub FIRSTKEY { - $prevpos = 0; - substr($Config_SH_expanded, 1, index($Config_SH_expanded, '=') - 1 ); -} - -sub NEXTKEY { - # Find out how the current key's quoted so we can skip to its end. - my $quote = substr($Config_SH_expanded, - index($Config_SH_expanded, "=", $prevpos)+1, 1); - my $pos = index($Config_SH_expanded, qq($quote\n), $prevpos) + 2; - my $len = index($Config_SH_expanded, "=", $pos) - $pos; - $prevpos = $pos; - $len > 0 ? substr($Config_SH_expanded, $pos, $len) : undef; -} - -sub EXISTS { - return 1 if exists($_[0]->{$_[1]}); - - return(index($Config_SH_expanded, "\n$_[1]='") != -1 - or index($Config_SH_expanded, "\n$_[1]=\"") != -1 - ); -} - -sub STORE { die "\%Config::Config is read-only\n" } -*DELETE = *CLEAR = \*STORE; # Typeglob aliasing uses less space - -sub config_sh { - substr $Config_SH_expanded, 1, $config_sh_len; -} - -sub config_re { - my $re = shift; - return map { chomp; $_ } grep eval{ /^(?:$re)=/ }, split /^/, - $Config_SH_expanded; -} - -sub config_vars { - # implements -V:cfgvar option (see perlrun -V:) - foreach (@_) { - # find optional leading, trailing colons; and query-spec - my ($notag,$qry,$lncont) = m/^(:)?(.*?)(:)?$/; # flags fore and aft, - # map colon-flags to print decorations - my $prfx = $notag ? '': "$qry="; # tag-prefix for print - my $lnend = $lncont ? ' ' : ";\n"; # line ending for print - - # all config-vars are by definition \w only, any \W means regex - if ($qry =~ /\W/) { - my @matches = config_re($qry); - print map "$_$lnend", @matches ? @matches : "$qry: not found" if !$notag; - print map { s/\w+=//; "$_$lnend" } @matches ? @matches : "$qry: not found" if $notag; - } else { - my $v = (exists $Config::Config{$qry}) ? $Config::Config{$qry} - : 'UNKNOWN'; - $v = 'undef' unless defined $v; - print "${prfx}'${v}'$lnend"; - } - } -} - -# Called by the real AUTOLOAD -sub launcher { - undef &AUTOLOAD; - goto \&$Config::AUTOLOAD; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Crypt/CBC.pm b/software/Slic3r-1.3.0.64bit/lib/Crypt/CBC.pm deleted file mode 100644 index d59f7cd0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Crypt/CBC.pm +++ /dev/null @@ -1,590 +0,0 @@ -#line 1 "Crypt/CBC.pm" -package Crypt::CBC; - -use Digest::MD5 'md5'; -use Carp; -use strict; -use bytes; -use vars qw($VERSION); -$VERSION = '2.33'; - -use constant RANDOM_DEVICE => '/dev/urandom'; - -sub new { - my $class = shift; - - my $options = {}; - - # hashref arguments - if (ref $_[0] eq 'HASH') { - $options = shift; - } - - # CGI style arguments - elsif ($_[0] =~ /^-[a-zA-Z_]{1,20}$/) { - my %tmp = @_; - while ( my($key,$value) = each %tmp) { - $key =~ s/^-//; - $options->{lc $key} = $value; - } - } - - else { - $options->{key} = shift; - $options->{cipher} = shift; - } - - my $cipher_object_provided = $options->{cipher} && ref $options->{cipher}; - - # "key" is a misnomer here, because it is actually usually a passphrase that is used - # to derive the true key - my $pass = $options->{key}; - - if ($cipher_object_provided) { - carp "Both a key and a pre-initialized Crypt::* object were passed. The key will be ignored" - if defined $pass; - $pass ||= ''; - } - elsif (!defined $pass) { - croak "Please provide an encryption/decryption passphrase or key using -key" - } - - # header mode - my %valid_modes = map {$_=>1} qw(none salt randomiv); - my $header_mode = $options->{header}; - $header_mode ||= 'none' if exists $options->{prepend_iv} && !$options->{prepend_iv}; - $header_mode ||= 'none' if exists $options->{add_header} && !$options->{add_header}; - $header_mode ||= 'salt'; # default - croak "Invalid -header mode '$header_mode'" unless $valid_modes{$header_mode}; - - croak "The -salt argument is incompatible with a -header mode of $header_mode" - if exists $options->{salt} && $header_mode ne 'salt'; - - my $cipher = $options->{cipher}; - $cipher = 'Crypt::DES' unless $cipher; - my $cipherclass = ref $cipher || $cipher; - - unless (ref $cipher) { # munge the class name if no object passed - $cipher = $cipher=~/^Crypt::/ ? $cipher : "Crypt::$cipher"; - $cipher->can('encrypt') or eval "require $cipher; 1" or croak "Couldn't load $cipher: $@"; - # some crypt modules use the class Crypt::, and others don't - $cipher =~ s/^Crypt::// unless $cipher->can('keysize'); - } - - # allow user to override these values - my $ks = $options->{keysize}; - my $bs = $options->{blocksize}; - - # otherwise we get the values from the cipher - $ks ||= eval {$cipher->keysize}; - $bs ||= eval {$cipher->blocksize}; - - # Some of the cipher modules are busted and don't report the - # keysize (well, Crypt::Blowfish in any case). If we detect - # this, and find the blowfish module in use, then assume 56. - # Otherwise assume the least common denominator of 8. - $ks ||= $cipherclass =~ /blowfish/i ? 56 : 8; - $bs ||= $ks; - - my $pcbc = $options->{'pcbc'}; - - # Default behavior is to treat -key as a passphrase. - # But if the literal_key option is true, then use key as is - croak "The options -literal_key and -regenerate_key are incompatible with each other" - if exists $options->{literal_key} && exists $options->{regenerate_key}; - my $key; - $key = $pass if $options->{literal_key}; - $key = $pass if exists $options->{regenerate_key} && !$options->{regenerate_key}; - - # Get the salt. - my $salt = $options->{salt}; - my $random_salt = 1 unless defined $salt && $salt ne '1'; - croak "Argument to -salt must be exactly 8 bytes long" if defined $salt && length $salt != 8 && $salt ne '1'; - - # note: iv will be autogenerated by start() if not specified in options - my $iv = $options->{iv}; - my $random_iv = 1 unless defined $iv; - croak "Initialization vector must be exactly $bs bytes long when using the $cipherclass cipher" if defined $iv and length($iv) != $bs; - - my $literal_key = $options->{literal_key} || (exists $options->{regenerate_key} && !$options->{regenerate_key}); - my $legacy_hack = $options->{insecure_legacy_decrypt}; - my $padding = $options->{padding} || 'standard'; - - if ($padding && ref($padding) eq 'CODE') { - # check to see that this code does its padding correctly - for my $i (1..$bs-1) { - my $rbs = length($padding->(" "x$i,$bs,'e')); - croak "padding method callback does not behave properly: expected $bs bytes back, got $rbs bytes back." - unless ($rbs == $bs); - } - } else { - $padding = $padding eq 'none' ? \&_no_padding - :$padding eq 'null' ? \&_null_padding - :$padding eq 'space' ? \&_space_padding - :$padding eq 'oneandzeroes' ? \&_oneandzeroes_padding - :$padding eq 'rijndael_compat'? \&_rijndael_compat - :$padding eq 'standard' ? \&_standard_padding - :croak "'$padding' padding not supported. See perldoc Crypt::CBC for instructions on creating your own."; - } - - # CONSISTENCY CHECKS - # HEADER consistency - if ($header_mode eq 'salt') { - croak "Cannot use salt-based key generation if literal key is specified" - if $options->{literal_key}; - croak "Cannot use salt-based IV generation if literal IV is specified" - if exists $options->{iv}; - } - elsif ($header_mode eq 'randomiv') { - croak "Cannot encrypt using a non-8 byte blocksize cipher when using randomiv header mode" - unless $bs == 8 || $legacy_hack; - } - elsif ($header_mode eq 'none') { - croak "You must provide an initialization vector using -iv when using -header=>'none'" - unless exists $options->{iv}; - } - - # KEYSIZE consistency - if (defined $key && length($key) != $ks) { - croak "If specified by -literal_key, then the key length must be equal to the chosen cipher's key length of $ks bytes"; - } - - # IV consistency - if (defined $iv && length($iv) != $bs) { - croak "If specified by -iv, then the initialization vector length must be equal to the chosen cipher's blocksize of $bs bytes"; - } - - - return bless {'cipher' => $cipher, - 'passphrase' => $pass, - 'key' => $key, - 'iv' => $iv, - 'salt' => $salt, - 'padding' => $padding, - 'blocksize' => $bs, - 'keysize' => $ks, - 'header_mode' => $header_mode, - 'legacy_hack' => $legacy_hack, - 'literal_key' => $literal_key, - 'pcbc' => $pcbc, - 'make_random_salt' => $random_salt, - 'make_random_iv' => $random_iv, - },$class; -} - -sub encrypt (\$$) { - my ($self,$data) = @_; - $self->start('encrypting'); - my $result = $self->crypt($data); - $result .= $self->finish; - $result; -} - -sub decrypt (\$$){ - my ($self,$data) = @_; - $self->start('decrypting'); - my $result = $self->crypt($data); - $result .= $self->finish; - $result; -} - -sub encrypt_hex (\$$) { - my ($self,$data) = @_; - return join('',unpack 'H*',$self->encrypt($data)); -} - -sub decrypt_hex (\$$) { - my ($self,$data) = @_; - return $self->decrypt(pack'H*',$data); -} - -# call to start a series of encryption/decryption operations -sub start (\$$) { - my $self = shift; - my $operation = shift; - croak "Specify ncryption or ecryption" unless $operation=~/^[ed]/i; - - $self->{'buffer'} = ''; - $self->{'decrypt'} = $operation=~/^d/i; -} - -# call to encrypt/decrypt a bit of data -sub crypt (\$$){ - my $self = shift; - my $data = shift; - - my $result; - - croak "crypt() called without a preceding start()" - unless exists $self->{'buffer'}; - - my $d = $self->{'decrypt'}; - - unless ($self->{civ}) { # block cipher has not yet been initialized - $result = $self->_generate_iv_and_cipher_from_datastream(\$data) if $d; - $result = $self->_generate_iv_and_cipher_from_options() unless $d; - } - - my $iv = $self->{'civ'}; - $self->{'buffer'} .= $data; - - my $bs = $self->{'blocksize'}; - - croak "When using no padding, plaintext size must be a multiple of $bs" - if $self->{'padding'} eq \&_no_padding - and length($data) % $bs; - - croak "When using rijndael_compat padding, plaintext size must be a multiple of $bs" - if $self->{'padding'} eq \&_rijndael_compat - and length($data) % $bs; - - return $result unless (length($self->{'buffer'}) >= $bs); - - my @blocks = unpack("a$bs "x(int(length($self->{'buffer'})/$bs)) . "a*", $self->{'buffer'}); - $self->{'buffer'} = ''; - - if ($d) { # when decrypting, always leave a free block at the end - $self->{'buffer'} = length($blocks[-1]) < $bs ? join '',splice(@blocks,-2) : pop(@blocks); - } else { - $self->{'buffer'} = pop @blocks if length($blocks[-1]) < $bs; # what's left over - } - - foreach my $block (@blocks) { - if ($d) { # decrypting - $result .= $iv = $iv ^ $self->{'crypt'}->decrypt($block); - $iv = $block unless $self->{pcbc}; - } else { # encrypting - $result .= $iv = $self->{'crypt'}->encrypt($iv ^ $block); - } - $iv = $iv ^ $block if $self->{pcbc}; - } - $self->{'civ'} = $iv; # remember the iv - return $result; -} - -# this is called at the end to flush whatever's left -sub finish (\$) { - my $self = shift; - my $bs = $self->{'blocksize'}; - my $block = defined $self->{'buffer'} ? $self->{'buffer'} : ''; - - $self->{civ} ||= ''; - - my $result; - if ($self->{'decrypt'}) { #decrypting - $block = length $block ? pack("a$bs",$block) : ''; # pad and truncate to block size - - if (length($block)) { - $result = $self->{'civ'} ^ $self->{'crypt'}->decrypt($block); - $result = $self->{'padding'}->($result, $bs, 'd'); - } else { - $result = ''; - } - - } else { # encrypting - $block = $self->{'padding'}->($block,$bs,'e') || ''; - $result = length $block ? $self->{'crypt'}->encrypt($self->{'civ'} ^ $block) : ''; - } - delete $self->{'civ'}; - delete $self->{'buffer'}; - return $result; -} - -# this subroutine will generate the actual {en,de}cryption key, the iv -# and the block cipher object. This is called when reading from a datastream -# and so it uses previous values of salt or iv if they are encoded in datastream -# header -sub _generate_iv_and_cipher_from_datastream { - my $self = shift; - my $input_stream = shift; - my $bs = $self->blocksize; - - # use our header mode to figure out what to do with the data stream - my $header_mode = $self->header_mode; - - if ($header_mode eq 'none') { - croak "You must specify a $bs byte initialization vector by passing the -iv option to new() when using -header_mode=>'none'" - unless exists $self->{iv}; - $self->{civ} = $self->{iv}; # current IV equals saved IV - $self->{key} ||= $self->_key_from_key($self->{passphrase}); - } - - elsif ($header_mode eq 'salt') { - my ($salt) = $$input_stream =~ /^Salted__(.{8})/s; - croak "Ciphertext does not begin with a valid header for 'salt' header mode" unless defined $salt; - $self->{salt} = $salt; # new salt - substr($$input_stream,0,16) = ''; - my ($key,$iv) = $self->_salted_key_and_iv($self->{passphrase},$salt); - $self->{iv} = $self->{civ} = $iv; - $self->{key} = $key; - } - - elsif ($header_mode eq 'randomiv') { - my ($iv) = $$input_stream =~ /^RandomIV(.{8})/s; - croak "Ciphertext does not begin with a valid header for 'randomiv' header mode" unless defined $iv; - croak "randomiv header mode cannot be used securely when decrypting with a >8 byte block cipher.\nUse the -insecure_legacy_decrypt flag if you are sure you want to do this" unless $self->blocksize == 8 || $self->legacy_hack; - $self->{iv} = $self->{civ} = $iv; - $self->{key} = $self->_key_from_key($self->{passphrase}); - undef $self->{salt}; # paranoia - substr($$input_stream,0,16) = ''; # truncate - } - - else { - croak "Invalid header mode '$header_mode'"; - } - - # we should have the key and iv now, or we are dead in the water - croak "Cipher stream did not contain IV or salt, and you did not specify these values in new()" - unless $self->{key} && $self->{civ}; - - # now we can generate the crypt object itself - $self->{crypt} = ref $self->{cipher} ? $self->{cipher} - : $self->{cipher}->new($self->{key}) - or croak "Could not create $self->{cipher} object: $@"; - return ''; -} - -sub _generate_iv_and_cipher_from_options { - my $self = shift; - my $blocksize = $self->blocksize; - - my $result = ''; - - my $header_mode = $self->header_mode; - if ($header_mode eq 'none') { - croak "You must specify a $blocksize byte initialization vector by passing the -iv option to new() when using -header_mode=>'none'" - unless exists $self->{iv}; - $self->{civ} = $self->{iv}; - $self->{key} ||= $self->_key_from_key($self->{passphrase}); - } - - elsif ($header_mode eq 'salt') { - $self->{salt} = $self->_get_random_bytes(8) if $self->{make_random_salt}; - defined (my $salt = $self->{salt}) or croak "No header_mode of 'salt' specified, but no salt value provided"; # shouldn't happen - length($salt) == 8 or croak "Salt must be exactly 8 bytes long"; - my ($key,$iv) = $self->_salted_key_and_iv($self->{passphrase},$salt); - $self->{key} = $key; - $self->{civ} = $self->{iv} = $iv; - $result = "Salted__${salt}"; - } - - elsif ($header_mode eq 'randomiv') { - croak "randomiv header mode cannot be used when encrypting with a >8 byte block cipher. There is no option to allow this" - unless $blocksize == 8; - $self->{key} ||= $self->_key_from_key($self->{passphrase}); - $self->{iv} = $self->_get_random_bytes(8) if $self->{make_random_iv}; - length($self->{iv}) == 8 or croak "IV must be exactly 8 bytes long when used with header mode of 'randomiv'"; - $self->{civ} = $self->{iv}; - $result = "RandomIV$self->{iv}"; - } - - croak "key and/or iv are missing" unless defined $self->{key} && defined $self->{civ}; - - $self->_taintcheck($self->{key}); - $self->{crypt} = ref $self->{cipher} ? $self->{cipher} - : $self->{cipher}->new($self->{key}) - or croak "Could not create $self->{cipher} object: $@"; - return $result; -} - -sub _taintcheck { - my $self = shift; - my $key = shift; - return unless ${^TAINT}; - - my $has_scalar_util = eval "require Scalar::Util; 1"; - my $tainted; - - - if ($has_scalar_util) { - $tainted = Scalar::Util::tainted($key); - } else { - local($@, $SIG{__DIE__}, $SIG{__WARN__}); - local $^W = 0; - eval { kill 0 * $key }; - $tainted = $@ =~ /^Insecure/; - } - - croak "Taint checks are turned on and your key is tainted. Please untaint the key and try again" - if $tainted; -} - -sub _key_from_key { - my $self = shift; - my $pass = shift; - my $ks = $self->{keysize}; - - return $pass if $self->{literal_key}; - - my $material = md5($pass); - while (length($material) < $ks) { - $material .= md5($material); - } - return substr($material,0,$ks); -} - -sub _salted_key_and_iv { - my $self = shift; - my ($pass,$salt) = @_; - - croak "Salt must be 8 bytes long" unless length $salt == 8; - - my $key_len = $self->{keysize}; - my $iv_len = $self->{blocksize}; - - my $desired_len = $key_len+$iv_len; - - my $data = ''; - my $d = ''; - - while (length $data < $desired_len) { - $d = md5($d . $pass . $salt); - $data .= $d; - } - return (substr($data,0,$key_len),substr($data,$key_len,$iv_len)); -} - -sub random_bytes { - my $self = shift; - my $bytes = shift or croak "usage: random_bytes(\$byte_length)"; - $self->_get_random_bytes($bytes); -} - -sub _get_random_bytes { - my $self = shift; - my $length = shift; - my $result; - - if (-r RANDOM_DEVICE && open(F,RANDOM_DEVICE)) { - read(F,$result,$length); - close F; - } else { - $result = pack("C*",map {rand(256)} 1..$length); - } - # Clear taint and check length - $result =~ /^(.+)$/s; - length($1) == $length or croak "Invalid length while gathering $length random bytes"; - return $1; -} - -sub _standard_padding ($$$) { - my ($b,$bs,$decrypt) = @_; - $b = length $b ? $b : ''; - if ($decrypt eq 'd') { - my $pad_length = unpack("C",substr($b,-1)); - - # sanity check for implementations that don't pad correctly - return $b unless $pad_length >= 0 && $pad_length <= $bs; - my @pad_chars = unpack("C*",substr($b,-$pad_length)); - return $b if grep {$pad_length != $_} @pad_chars; - - return substr($b,0,$bs-$pad_length); - } - my $pad = $bs - length($b) % $bs; - return $b . pack("C*",($pad)x$pad); -} - -sub _space_padding ($$$) { - my ($b,$bs,$decrypt) = @_; - return unless length $b; - $b = length $b ? $b : ''; - if ($decrypt eq 'd') { - $b=~ s/ *\z//s; - return $b; - } - return $b . pack("C*", (32) x ($bs - length($b) % $bs)); -} - -sub _no_padding ($$$) { - my ($b,$bs,$decrypt) = @_; - return $b; -} - -sub _null_padding ($$$) { - my ($b,$bs,$decrypt) = @_; - return unless length $b; - $b = length $b ? $b : ''; - if ($decrypt eq 'd') { - $b=~ s/\0*\z//s; - return $b; - } - return $b . pack("C*", (0) x ($bs - length($b) % $bs)); -} - -sub _oneandzeroes_padding ($$$) { - my ($b,$bs,$decrypt) = @_; - $b = length $b ? $b : ''; - if ($decrypt eq 'd') { - $b=~ s/\x80\0*\z//s; - return $b; - } - return $b . pack("C*", 128, (0) x ($bs - length($b) % $bs - 1) ); -} - -sub _rijndael_compat ($$$) { - my ($b,$bs,$decrypt) = @_; - return unless length $b; - if ($decrypt eq 'd') { - $b=~ s/\x80\0*\z//s; - return $b; - } - return $b . pack("C*", 128, (0) x ($bs - length($b) % $bs - 1) ); -} - -sub get_initialization_vector (\$) { - my $self = shift; - $self->iv(); -} - -sub set_initialization_vector (\$$) { - my $self = shift; - my $iv = shift; - my $bs = $self->blocksize; - croak "Initialization vector must be $bs bytes in length" unless length($iv) == $bs; - $self->iv($iv); -} - -sub salt { - my $self = shift; - my $d = $self->{salt}; - $self->{salt} = shift if @_; - $d; -} - -sub iv { - my $self = shift; - my $d = $self->{iv}; - $self->{iv} = shift if @_; - $d; -} - -sub key { - my $self = shift; - my $d = $self->{key}; - $self->{key} = shift if @_; - $d; -} - -sub passphrase { - my $self = shift; - my $d = $self->{passphrase}; - if (@_) { - undef $self->{key}; - undef $self->{iv}; - $self->{passphrase} = shift; - } - $d; -} - -sub cipher { shift->{cipher} } -sub padding { shift->{padding} } -sub keysize { shift->{keysize} } -sub blocksize { shift->{blocksize} } -sub pcbc { shift->{pcbc} } -sub header_mode {shift->{header_mode} } -sub legacy_hack { shift->{legacy_hack} } - -1; -__END__ - -#line 1065 diff --git a/software/Slic3r-1.3.0.64bit/lib/Cwd.pm b/software/Slic3r-1.3.0.64bit/lib/Cwd.pm deleted file mode 100644 index e228f510..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Cwd.pm +++ /dev/null @@ -1,708 +0,0 @@ -#line 1 "Cwd.pm" -package Cwd; -use strict; -use Exporter; -use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION); - -$VERSION = '3.63_01'; -my $xs_version = $VERSION; -$VERSION =~ tr/_//d; - -@ISA = qw/ Exporter /; -@EXPORT = qw(cwd getcwd fastcwd fastgetcwd); -push @EXPORT, qw(getdcwd) if $^O eq 'MSWin32'; -@EXPORT_OK = qw(chdir abs_path fast_abs_path realpath fast_realpath); - -# sys_cwd may keep the builtin command - -# All the functionality of this module may provided by builtins, -# there is no sense to process the rest of the file. -# The best choice may be to have this in BEGIN, but how to return from BEGIN? - -if ($^O eq 'os2') { - local $^W = 0; - - *cwd = defined &sys_cwd ? \&sys_cwd : \&_os2_cwd; - *getcwd = \&cwd; - *fastgetcwd = \&cwd; - *fastcwd = \&cwd; - - *fast_abs_path = \&sys_abspath if defined &sys_abspath; - *abs_path = \&fast_abs_path; - *realpath = \&fast_abs_path; - *fast_realpath = \&fast_abs_path; - - return 1; -} - -# Need to look up the feature settings on VMS. The preferred way is to use the -# VMS::Feature module, but that may not be available to dual life modules. - -my $use_vms_feature; -BEGIN { - if ($^O eq 'VMS') { - if (eval { local $SIG{__DIE__}; - local @INC = @INC; - pop @INC if $INC[-1] eq '.'; - require VMS::Feature; }) { - $use_vms_feature = 1; - } - } -} - -# Need to look up the UNIX report mode. This may become a dynamic mode -# in the future. -sub _vms_unix_rpt { - my $unix_rpt; - if ($use_vms_feature) { - $unix_rpt = VMS::Feature::current("filename_unix_report"); - } else { - my $env_unix_rpt = $ENV{'DECC$FILENAME_UNIX_REPORT'} || ''; - $unix_rpt = $env_unix_rpt =~ /^[ET1]/i; - } - return $unix_rpt; -} - -# Need to look up the EFS character set mode. This may become a dynamic -# mode in the future. -sub _vms_efs { - my $efs; - if ($use_vms_feature) { - $efs = VMS::Feature::current("efs_charset"); - } else { - my $env_efs = $ENV{'DECC$EFS_CHARSET'} || ''; - $efs = $env_efs =~ /^[ET1]/i; - } - return $efs; -} - - -# If loading the XS stuff doesn't work, we can fall back to pure perl -if(! defined &getcwd && defined &DynaLoader::boot_DynaLoader) { - eval {#eval is questionable since we are handling potential errors like - #"Cwd object version 3.48 does not match bootstrap parameter 3.50 - #at lib/DynaLoader.pm line 216." by having this eval - if ( $] >= 5.006 ) { - require XSLoader; - XSLoader::load( __PACKAGE__, $xs_version); - } else { - require DynaLoader; - push @ISA, 'DynaLoader'; - __PACKAGE__->bootstrap( $xs_version ); - } - }; -} - -# Big nasty table of function aliases -my %METHOD_MAP = - ( - VMS => - { - cwd => '_vms_cwd', - getcwd => '_vms_cwd', - fastcwd => '_vms_cwd', - fastgetcwd => '_vms_cwd', - abs_path => '_vms_abs_path', - fast_abs_path => '_vms_abs_path', - }, - - MSWin32 => - { - # We assume that &_NT_cwd is defined as an XSUB or in the core. - cwd => '_NT_cwd', - getcwd => '_NT_cwd', - fastcwd => '_NT_cwd', - fastgetcwd => '_NT_cwd', - abs_path => 'fast_abs_path', - realpath => 'fast_abs_path', - }, - - dos => - { - cwd => '_dos_cwd', - getcwd => '_dos_cwd', - fastgetcwd => '_dos_cwd', - fastcwd => '_dos_cwd', - abs_path => 'fast_abs_path', - }, - - # QNX4. QNX6 has a $os of 'nto'. - qnx => - { - cwd => '_qnx_cwd', - getcwd => '_qnx_cwd', - fastgetcwd => '_qnx_cwd', - fastcwd => '_qnx_cwd', - abs_path => '_qnx_abs_path', - fast_abs_path => '_qnx_abs_path', - }, - - cygwin => - { - getcwd => 'cwd', - fastgetcwd => 'cwd', - fastcwd => 'cwd', - abs_path => 'fast_abs_path', - realpath => 'fast_abs_path', - }, - - epoc => - { - cwd => '_epoc_cwd', - getcwd => '_epoc_cwd', - fastgetcwd => '_epoc_cwd', - fastcwd => '_epoc_cwd', - abs_path => 'fast_abs_path', - }, - - MacOS => - { - getcwd => 'cwd', - fastgetcwd => 'cwd', - fastcwd => 'cwd', - abs_path => 'fast_abs_path', - }, - - amigaos => - { - getcwd => '_backtick_pwd', - fastgetcwd => '_backtick_pwd', - fastcwd => '_backtick_pwd', - abs_path => 'fast_abs_path', - } - ); - -$METHOD_MAP{NT} = $METHOD_MAP{MSWin32}; - - -# Find the pwd command in the expected locations. We assume these -# are safe. This prevents _backtick_pwd() consulting $ENV{PATH} -# so everything works under taint mode. -my $pwd_cmd; -if($^O ne 'MSWin32') { - foreach my $try ('/bin/pwd', - '/usr/bin/pwd', - '/QOpenSys/bin/pwd', # OS/400 PASE. - ) { - if( -x $try ) { - $pwd_cmd = $try; - last; - } - } -} - -# Android has a built-in pwd. Using $pwd_cmd will DTRT if -# this perl was compiled with -Dd_useshellcmds, which is the -# default for Android, but the block below is needed for the -# miniperl running on the host when cross-compiling, and -# potentially for native builds with -Ud_useshellcmds. -if ($^O =~ /android/) { - # If targetsh is executable, then we're either a full - # perl, or a miniperl for a native build. - if (-x $Config::Config{targetsh}) { - $pwd_cmd = "$Config::Config{targetsh} -c pwd" - } - else { - my $sh = $Config::Config{sh} || (-x '/system/bin/sh' ? '/system/bin/sh' : 'sh'); - $pwd_cmd = "$sh -c pwd" - } -} - -my $found_pwd_cmd = defined($pwd_cmd); -unless ($pwd_cmd) { - # Isn't this wrong? _backtick_pwd() will fail if someone has - # pwd in their path but it is not /bin/pwd or /usr/bin/pwd? - # See [perl #16774]. --jhi - $pwd_cmd = 'pwd'; -} - -# Lazy-load Carp -sub _carp { require Carp; Carp::carp(@_) } -sub _croak { require Carp; Carp::croak(@_) } - -# The 'natural and safe form' for UNIX (pwd may be setuid root) -sub _backtick_pwd { - - # Localize %ENV entries in a way that won't create new hash keys. - # Under AmigaOS we don't want to localize as it stops perl from - # finding 'sh' in the PATH. - my @localize = grep exists $ENV{$_}, qw(PATH IFS CDPATH ENV BASH_ENV) if $^O ne "amigaos"; - local @ENV{@localize} if @localize; - - my $cwd = `$pwd_cmd`; - # Belt-and-suspenders in case someone said "undef $/". - local $/ = "\n"; - # `pwd` may fail e.g. if the disk is full - chomp($cwd) if defined $cwd; - $cwd; -} - -# Since some ports may predefine cwd internally (e.g., NT) -# we take care not to override an existing definition for cwd(). - -unless ($METHOD_MAP{$^O}{cwd} or defined &cwd) { - # The pwd command is not available in some chroot(2)'ed environments - my $sep = $Config::Config{path_sep} || ':'; - my $os = $^O; # Protect $^O from tainting - - - # Try again to find a pwd, this time searching the whole PATH. - if (defined $ENV{PATH} and $os ne 'MSWin32') { # no pwd on Windows - my @candidates = split($sep, $ENV{PATH}); - while (!$found_pwd_cmd and @candidates) { - my $candidate = shift @candidates; - $found_pwd_cmd = 1 if -x "$candidate/pwd"; - } - } - - # MacOS has some special magic to make `pwd` work. - if( $os eq 'MacOS' || $found_pwd_cmd ) - { - *cwd = \&_backtick_pwd; - } - else { - *cwd = \&getcwd; - } -} - -if ($^O eq 'cygwin') { - # We need to make sure cwd() is called with no args, because it's - # got an arg-less prototype and will die if args are present. - local $^W = 0; - my $orig_cwd = \&cwd; - *cwd = sub { &$orig_cwd() } -} - - -# set a reasonable (and very safe) default for fastgetcwd, in case it -# isn't redefined later (20001212 rspier) -*fastgetcwd = \&cwd; - -# A non-XS version of getcwd() - also used to bootstrap the perl build -# process, when miniperl is running and no XS loading happens. -sub _perl_getcwd -{ - abs_path('.'); -} - -# By John Bazik -# -# Usage: $cwd = &fastcwd; -# -# This is a faster version of getcwd. It's also more dangerous because -# you might chdir out of a directory that you can't chdir back into. - -sub fastcwd_ { - my($odev, $oino, $cdev, $cino, $tdev, $tino); - my(@path, $path); - local(*DIR); - - my($orig_cdev, $orig_cino) = stat('.'); - ($cdev, $cino) = ($orig_cdev, $orig_cino); - for (;;) { - my $direntry; - ($odev, $oino) = ($cdev, $cino); - CORE::chdir('..') || return undef; - ($cdev, $cino) = stat('.'); - last if $odev == $cdev && $oino == $cino; - opendir(DIR, '.') || return undef; - for (;;) { - $direntry = readdir(DIR); - last unless defined $direntry; - next if $direntry eq '.'; - next if $direntry eq '..'; - - ($tdev, $tino) = lstat($direntry); - last unless $tdev != $odev || $tino != $oino; - } - closedir(DIR); - return undef unless defined $direntry; # should never happen - unshift(@path, $direntry); - } - $path = '/' . join('/', @path); - if ($^O eq 'apollo') { $path = "/".$path; } - # At this point $path may be tainted (if tainting) and chdir would fail. - # Untaint it then check that we landed where we started. - $path =~ /^(.*)\z/s # untaint - && CORE::chdir($1) or return undef; - ($cdev, $cino) = stat('.'); - die "Unstable directory path, current directory changed unexpectedly" - if $cdev != $orig_cdev || $cino != $orig_cino; - $path; -} -if (not defined &fastcwd) { *fastcwd = \&fastcwd_ } - - -# Keeps track of current working directory in PWD environment var -# Usage: -# use Cwd 'chdir'; -# chdir $newdir; - -my $chdir_init = 0; - -sub chdir_init { - if ($ENV{'PWD'} and $^O ne 'os2' and $^O ne 'dos' and $^O ne 'MSWin32') { - my($dd,$di) = stat('.'); - my($pd,$pi) = stat($ENV{'PWD'}); - if (!defined $dd or !defined $pd or $di != $pi or $dd != $pd) { - $ENV{'PWD'} = cwd(); - } - } - else { - my $wd = cwd(); - $wd = Win32::GetFullPathName($wd) if $^O eq 'MSWin32'; - $ENV{'PWD'} = $wd; - } - # Strip an automounter prefix (where /tmp_mnt/foo/bar == /foo/bar) - if ($^O ne 'MSWin32' and $ENV{'PWD'} =~ m|(/[^/]+(/[^/]+/[^/]+))(.*)|s) { - my($pd,$pi) = stat($2); - my($dd,$di) = stat($1); - if (defined $pd and defined $dd and $di == $pi and $dd == $pd) { - $ENV{'PWD'}="$2$3"; - } - } - $chdir_init = 1; -} - -sub chdir { - my $newdir = @_ ? shift : ''; # allow for no arg (chdir to HOME dir) - if ($^O eq "cygwin") { - $newdir =~ s|\A///+|//|; - $newdir =~ s|(?<=[^/])//+|/|g; - } - elsif ($^O ne 'MSWin32') { - $newdir =~ s|///*|/|g; - } - chdir_init() unless $chdir_init; - my $newpwd; - if ($^O eq 'MSWin32') { - # get the full path name *before* the chdir() - $newpwd = Win32::GetFullPathName($newdir); - } - - return 0 unless CORE::chdir $newdir; - - if ($^O eq 'VMS') { - return $ENV{'PWD'} = $ENV{'DEFAULT'} - } - elsif ($^O eq 'MacOS') { - return $ENV{'PWD'} = cwd(); - } - elsif ($^O eq 'MSWin32') { - $ENV{'PWD'} = $newpwd; - return 1; - } - - if (ref $newdir eq 'GLOB') { # in case a file/dir handle is passed in - $ENV{'PWD'} = cwd(); - } elsif ($newdir =~ m#^/#s) { - $ENV{'PWD'} = $newdir; - } else { - my @curdir = split(m#/#,$ENV{'PWD'}); - @curdir = ('') unless @curdir; - my $component; - foreach $component (split(m#/#, $newdir)) { - next if $component eq '.'; - pop(@curdir),next if $component eq '..'; - push(@curdir,$component); - } - $ENV{'PWD'} = join('/',@curdir) || '/'; - } - 1; -} - - -sub _perl_abs_path -{ - my $start = @_ ? shift : '.'; - my($dotdots, $cwd, @pst, @cst, $dir, @tst); - - unless (@cst = stat( $start )) - { - _carp("stat($start): $!"); - return ''; - } - - unless (-d _) { - # Make sure we can be invoked on plain files, not just directories. - # NOTE that this routine assumes that '/' is the only directory separator. - - my ($dir, $file) = $start =~ m{^(.*)/(.+)$} - or return cwd() . '/' . $start; - - # Can't use "-l _" here, because the previous stat was a stat(), not an lstat(). - if (-l $start) { - my $link_target = readlink($start); - die "Can't resolve link $start: $!" unless defined $link_target; - - require File::Spec; - $link_target = $dir . '/' . $link_target - unless File::Spec->file_name_is_absolute($link_target); - - return abs_path($link_target); - } - - return $dir ? abs_path($dir) . "/$file" : "/$file"; - } - - $cwd = ''; - $dotdots = $start; - do - { - $dotdots .= '/..'; - @pst = @cst; - local *PARENT; - unless (opendir(PARENT, $dotdots)) - { - # probably a permissions issue. Try the native command. - require File::Spec; - return File::Spec->rel2abs( $start, _backtick_pwd() ); - } - unless (@cst = stat($dotdots)) - { - _carp("stat($dotdots): $!"); - closedir(PARENT); - return ''; - } - if ($pst[0] == $cst[0] && $pst[1] == $cst[1]) - { - $dir = undef; - } - else - { - do - { - unless (defined ($dir = readdir(PARENT))) - { - _carp("readdir($dotdots): $!"); - closedir(PARENT); - return ''; - } - $tst[0] = $pst[0]+1 unless (@tst = lstat("$dotdots/$dir")) - } - while ($dir eq '.' || $dir eq '..' || $tst[0] != $pst[0] || - $tst[1] != $pst[1]); - } - $cwd = (defined $dir ? "$dir" : "" ) . "/$cwd" ; - closedir(PARENT); - } while (defined $dir); - chop($cwd) unless $cwd eq '/'; # drop the trailing / - $cwd; -} - - -my $Curdir; -sub fast_abs_path { - local $ENV{PWD} = $ENV{PWD} || ''; # Guard against clobberage - my $cwd = getcwd(); - require File::Spec; - my $path = @_ ? shift : ($Curdir ||= File::Spec->curdir); - - # Detaint else we'll explode in taint mode. This is safe because - # we're not doing anything dangerous with it. - ($path) = $path =~ /(.*)/s; - ($cwd) = $cwd =~ /(.*)/s; - - unless (-e $path) { - _croak("$path: No such file or directory"); - } - - unless (-d _) { - # Make sure we can be invoked on plain files, not just directories. - - my ($vol, $dir, $file) = File::Spec->splitpath($path); - return File::Spec->catfile($cwd, $path) unless length $dir; - - if (-l $path) { - my $link_target = readlink($path); - die "Can't resolve link $path: $!" unless defined $link_target; - - $link_target = File::Spec->catpath($vol, $dir, $link_target) - unless File::Spec->file_name_is_absolute($link_target); - - return fast_abs_path($link_target); - } - - return $dir eq File::Spec->rootdir - ? File::Spec->catpath($vol, $dir, $file) - : fast_abs_path(File::Spec->catpath($vol, $dir, '')) . '/' . $file; - } - - if (!CORE::chdir($path)) { - _croak("Cannot chdir to $path: $!"); - } - my $realpath = getcwd(); - if (! ((-d $cwd) && (CORE::chdir($cwd)))) { - _croak("Cannot chdir back to $cwd: $!"); - } - $realpath; -} - -# added function alias to follow principle of least surprise -# based on previous aliasing. --tchrist 27-Jan-00 -*fast_realpath = \&fast_abs_path; - - -# --- PORTING SECTION --- - -# VMS: $ENV{'DEFAULT'} points to default directory at all times -# 06-Mar-1996 Charles Bailey bailey@newman.upenn.edu -# Note: Use of Cwd::chdir() causes the logical name PWD to be defined -# in the process logical name table as the default device and directory -# seen by Perl. This may not be the same as the default device -# and directory seen by DCL after Perl exits, since the effects -# the CRTL chdir() function persist only until Perl exits. - -sub _vms_cwd { - return $ENV{'DEFAULT'}; -} - -sub _vms_abs_path { - return $ENV{'DEFAULT'} unless @_; - my $path = shift; - - my $efs = _vms_efs; - my $unix_rpt = _vms_unix_rpt; - - if (defined &VMS::Filespec::vmsrealpath) { - my $path_unix = 0; - my $path_vms = 0; - - $path_unix = 1 if ($path =~ m#(?<=\^)/#); - $path_unix = 1 if ($path =~ /^\.\.?$/); - $path_vms = 1 if ($path =~ m#[\[<\]]#); - $path_vms = 1 if ($path =~ /^--?$/); - - my $unix_mode = $path_unix; - if ($efs) { - # In case of a tie, the Unix report mode decides. - if ($path_vms == $path_unix) { - $unix_mode = $unix_rpt; - } else { - $unix_mode = 0 if $path_vms; - } - } - - if ($unix_mode) { - # Unix format - return VMS::Filespec::unixrealpath($path); - } - - # VMS format - - my $new_path = VMS::Filespec::vmsrealpath($path); - - # Perl expects directories to be in directory format - $new_path = VMS::Filespec::pathify($new_path) if -d $path; - return $new_path; - } - - # Fallback to older algorithm if correct ones are not - # available. - - if (-l $path) { - my $link_target = readlink($path); - die "Can't resolve link $path: $!" unless defined $link_target; - - return _vms_abs_path($link_target); - } - - # may need to turn foo.dir into [.foo] - my $pathified = VMS::Filespec::pathify($path); - $path = $pathified if defined $pathified; - - return VMS::Filespec::rmsexpand($path); -} - -sub _os2_cwd { - my $pwd = `cmd /c cd`; - chomp $pwd; - $pwd =~ s:\\:/:g ; - $ENV{'PWD'} = $pwd; - return $pwd; -} - -sub _win32_cwd_simple { - my $pwd = `cd`; - chomp $pwd; - $pwd =~ s:\\:/:g ; - $ENV{'PWD'} = $pwd; - return $pwd; -} - -sub _win32_cwd { - my $pwd; - $pwd = Win32::GetCwd(); - $pwd =~ s:\\:/:g ; - $ENV{'PWD'} = $pwd; - return $pwd; -} - -*_NT_cwd = defined &Win32::GetCwd ? \&_win32_cwd : \&_win32_cwd_simple; - -sub _dos_cwd { - my $pwd; - if (!defined &Dos::GetCwd) { - chomp($pwd = `command /c cd`); - $pwd =~ s:\\:/:g ; - } else { - $pwd = Dos::GetCwd(); - } - $ENV{'PWD'} = $pwd; - return $pwd; -} - -sub _qnx_cwd { - local $ENV{PATH} = ''; - local $ENV{CDPATH} = ''; - local $ENV{ENV} = ''; - my $pwd = `/usr/bin/fullpath -t`; - chomp $pwd; - $ENV{'PWD'} = $pwd; - return $pwd; -} - -sub _qnx_abs_path { - local $ENV{PATH} = ''; - local $ENV{CDPATH} = ''; - local $ENV{ENV} = ''; - my $path = @_ ? shift : '.'; - local *REALPATH; - - defined( open(REALPATH, '-|') || exec '/usr/bin/fullpath', '-t', $path ) or - die "Can't open /usr/bin/fullpath: $!"; - my $realpath = ; - close REALPATH; - chomp $realpath; - return $realpath; -} - -sub _epoc_cwd { - return $ENV{'PWD'} = EPOC::getcwd(); -} - - -# Now that all the base-level functions are set up, alias the -# user-level functions to the right places - -if (exists $METHOD_MAP{$^O}) { - my $map = $METHOD_MAP{$^O}; - foreach my $name (keys %$map) { - local $^W = 0; # assignments trigger 'subroutine redefined' warning - no strict 'refs'; - *{$name} = \&{$map->{$name}}; - } -} - -# In case the XS version doesn't load. -*abs_path = \&_perl_abs_path unless defined &abs_path; -*getcwd = \&_perl_getcwd unless defined &getcwd; - -# added function alias for those of us more -# used to the libc function. --tchrist 27-Jan-00 -*realpath = \&abs_path; - -1; -__END__ - -#line 873 diff --git a/software/Slic3r-1.3.0.64bit/lib/Data/Dumper.pm b/software/Slic3r-1.3.0.64bit/lib/Data/Dumper.pm deleted file mode 100644 index a4857290..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Data/Dumper.pm +++ /dev/null @@ -1,857 +0,0 @@ -#line 1 "Data/Dumper.pm" -# -# Data/Dumper.pm -# -# convert perl data structures into perl syntax suitable for both printing -# and eval -# -# Documentation at the __END__ -# - -package Data::Dumper; - -BEGIN { - $VERSION = '2.161'; # Don't forget to set version and release -} # date in POD below! - -#$| = 1; - -use 5.006_001; -require Exporter; -require overload; - -use Carp; - -BEGIN { - @ISA = qw(Exporter); - @EXPORT = qw(Dumper); - @EXPORT_OK = qw(DumperX); - - # if run under miniperl, or otherwise lacking dynamic loading, - # XSLoader should be attempted to load, or the pure perl flag - # toggled on load failure. - eval { - require XSLoader; - XSLoader::load( 'Data::Dumper' ); - 1 - } - or $Useperl = 1; -} - -my $IS_ASCII = ord 'A' == 65; - -# module vars and their defaults -$Indent = 2 unless defined $Indent; -$Trailingcomma = 0 unless defined $Trailingcomma; -$Purity = 0 unless defined $Purity; -$Pad = "" unless defined $Pad; -$Varname = "VAR" unless defined $Varname; -$Useqq = 0 unless defined $Useqq; -$Terse = 0 unless defined $Terse; -$Freezer = "" unless defined $Freezer; -$Toaster = "" unless defined $Toaster; -$Deepcopy = 0 unless defined $Deepcopy; -$Quotekeys = 1 unless defined $Quotekeys; -$Bless = "bless" unless defined $Bless; -#$Expdepth = 0 unless defined $Expdepth; -$Maxdepth = 0 unless defined $Maxdepth; -$Pair = ' => ' unless defined $Pair; -$Useperl = 0 unless defined $Useperl; -$Sortkeys = 0 unless defined $Sortkeys; -$Deparse = 0 unless defined $Deparse; -$Sparseseen = 0 unless defined $Sparseseen; -$Maxrecurse = 1000 unless defined $Maxrecurse; - -# -# expects an arrayref of values to be dumped. -# can optionally pass an arrayref of names for the values. -# names must have leading $ sign stripped. begin the name with * -# to cause output of arrays and hashes rather than refs. -# -sub new { - my($c, $v, $n) = @_; - - croak "Usage: PACKAGE->new(ARRAYREF, [ARRAYREF])" - unless (defined($v) && (ref($v) eq 'ARRAY')); - $n = [] unless (defined($n) && (ref($n) eq 'ARRAY')); - - my($s) = { - level => 0, # current recursive depth - indent => $Indent, # various styles of indenting - trailingcomma => $Trailingcomma, # whether to add comma after last elem - pad => $Pad, # all lines prefixed by this string - xpad => "", # padding-per-level - apad => "", # added padding for hash keys n such - sep => "", # list separator - pair => $Pair, # hash key/value separator: defaults to ' => ' - seen => {}, # local (nested) refs (id => [name, val]) - todump => $v, # values to dump [] - names => $n, # optional names for values [] - varname => $Varname, # prefix to use for tagging nameless ones - purity => $Purity, # degree to which output is evalable - useqq => $Useqq, # use "" for strings (backslashitis ensues) - terse => $Terse, # avoid name output (where feasible) - freezer => $Freezer, # name of Freezer method for objects - toaster => $Toaster, # name of method to revive objects - deepcopy => $Deepcopy, # do not cross-ref, except to stop recursion - quotekeys => $Quotekeys, # quote hash keys - 'bless' => $Bless, # keyword to use for "bless" -# expdepth => $Expdepth, # cutoff depth for explicit dumping - maxdepth => $Maxdepth, # depth beyond which we give up - maxrecurse => $Maxrecurse, # depth beyond which we abort - useperl => $Useperl, # use the pure Perl implementation - sortkeys => $Sortkeys, # flag or filter for sorting hash keys - deparse => $Deparse, # use B::Deparse for coderefs - noseen => $Sparseseen, # do not populate the seen hash unless necessary - }; - - if ($Indent > 0) { - $s->{xpad} = " "; - $s->{sep} = "\n"; - } - return bless($s, $c); -} - -# Packed numeric addresses take less memory. Plus pack is faster than sprintf - -# Most users of current versions of Data::Dumper will be 5.008 or later. -# Anyone on 5.6.1 and 5.6.2 upgrading will be rare (particularly judging by -# the bug reports from users on those platforms), so for the common case avoid -# complexity, and avoid even compiling the unneeded code. - -sub init_refaddr_format { -} - -sub format_refaddr { - require Scalar::Util; - pack "J", Scalar::Util::refaddr(shift); -}; - -if ($] < 5.008) { - eval <<'EOC' or die; - no warnings 'redefine'; - my $refaddr_format; - sub init_refaddr_format { - require Config; - my $f = $Config::Config{uvxformat}; - $f =~ tr/"//d; - $refaddr_format = "0x%" . $f; - } - - sub format_refaddr { - require Scalar::Util; - sprintf $refaddr_format, Scalar::Util::refaddr(shift); - } - - 1 -EOC -} - -# -# add-to or query the table of already seen references -# -sub Seen { - my($s, $g) = @_; - if (defined($g) && (ref($g) eq 'HASH')) { - init_refaddr_format(); - my($k, $v, $id); - while (($k, $v) = each %$g) { - if (defined $v) { - if (ref $v) { - $id = format_refaddr($v); - if ($k =~ /^[*](.*)$/) { - $k = (ref $v eq 'ARRAY') ? ( "\\\@" . $1 ) : - (ref $v eq 'HASH') ? ( "\\\%" . $1 ) : - (ref $v eq 'CODE') ? ( "\\\&" . $1 ) : - ( "\$" . $1 ) ; - } - elsif ($k !~ /^\$/) { - $k = "\$" . $k; - } - $s->{seen}{$id} = [$k, $v]; - } - else { - carp "Only refs supported, ignoring non-ref item \$$k"; - } - } - else { - carp "Value of ref must be defined; ignoring undefined item \$$k"; - } - } - return $s; - } - else { - return map { @$_ } values %{$s->{seen}}; - } -} - -# -# set or query the values to be dumped -# -sub Values { - my($s, $v) = @_; - if (defined($v)) { - if (ref($v) eq 'ARRAY') { - $s->{todump} = [@$v]; # make a copy - return $s; - } - else { - croak "Argument to Values, if provided, must be array ref"; - } - } - else { - return @{$s->{todump}}; - } -} - -# -# set or query the names of the values to be dumped -# -sub Names { - my($s, $n) = @_; - if (defined($n)) { - if (ref($n) eq 'ARRAY') { - $s->{names} = [@$n]; # make a copy - return $s; - } - else { - croak "Argument to Names, if provided, must be array ref"; - } - } - else { - return @{$s->{names}}; - } -} - -sub DESTROY {} - -sub Dump { - return &Dumpxs - unless $Data::Dumper::Useperl || (ref($_[0]) && $_[0]->{useperl}) - || $Data::Dumper::Deparse || (ref($_[0]) && $_[0]->{deparse}) - - # Use pure perl version on earlier releases on EBCDIC platforms - || (! $IS_ASCII && $] lt 5.021_010); - return &Dumpperl; -} - -# -# dump the refs in the current dumper object. -# expects same args as new() if called via package name. -# -sub Dumpperl { - my($s) = shift; - my(@out, $val, $name); - my($i) = 0; - local(@post); - init_refaddr_format(); - - $s = $s->new(@_) unless ref $s; - - for $val (@{$s->{todump}}) { - @post = (); - $name = $s->{names}[$i++]; - $name = $s->_refine_name($name, $val, $i); - - my $valstr; - { - local($s->{apad}) = $s->{apad}; - $s->{apad} .= ' ' x (length($name) + 3) if $s->{indent} >= 2 and !$s->{terse}; - $valstr = $s->_dump($val, $name); - } - - $valstr = "$name = " . $valstr . ';' if @post or !$s->{terse}; - my $out = $s->_compose_out($valstr, \@post); - - push @out, $out; - } - return wantarray ? @out : join('', @out); -} - -# wrap string in single quotes (escaping if needed) -sub _quote { - my $val = shift; - $val =~ s/([\\\'])/\\$1/g; - return "'" . $val . "'"; -} - -# Old Perls (5.14-) have trouble resetting vstring magic when it is no -# longer valid. -use constant _bad_vsmg => defined &_vstring && (_vstring(~v0)||'') eq "v0"; - -# -# twist, toil and turn; -# and recurse, of course. -# sometimes sordidly; -# and curse if no recourse. -# -sub _dump { - my($s, $val, $name) = @_; - my($out, $type, $id, $sname); - - $type = ref $val; - $out = ""; - - if ($type) { - - # Call the freezer method if it's specified and the object has the - # method. Trap errors and warn() instead of die()ing, like the XS - # implementation. - my $freezer = $s->{freezer}; - if ($freezer and UNIVERSAL::can($val, $freezer)) { - eval { $val->$freezer() }; - warn "WARNING(Freezer method call failed): $@" if $@; - } - - require Scalar::Util; - my $realpack = Scalar::Util::blessed($val); - my $realtype = $realpack ? Scalar::Util::reftype($val) : ref $val; - $id = format_refaddr($val); - - # Note: By this point $name is always defined and of non-zero length. - # Keep a tab on it so that we do not fall into recursive pit. - if (exists $s->{seen}{$id}) { - if ($s->{purity} and $s->{level} > 0) { - $out = ($realtype eq 'HASH') ? '{}' : - ($realtype eq 'ARRAY') ? '[]' : - 'do{my $o}' ; - push @post, $name . " = " . $s->{seen}{$id}[0]; - } - else { - $out = $s->{seen}{$id}[0]; - if ($name =~ /^([\@\%])/) { - my $start = $1; - if ($out =~ /^\\$start/) { - $out = substr($out, 1); - } - else { - $out = $start . '{' . $out . '}'; - } - } - } - return $out; - } - else { - # store our name - $s->{seen}{$id} = [ ( - ($name =~ /^[@%]/) - ? ('\\' . $name ) - : ($realtype eq 'CODE' and $name =~ /^[*](.*)$/) - ? ('\\&' . $1 ) - : $name - ), $val ]; - } - my $no_bless = 0; - my $is_regex = 0; - if ( $realpack and ($] >= 5.009005 ? re::is_regexp($val) : $realpack eq 'Regexp') ) { - $is_regex = 1; - $no_bless = $realpack eq 'Regexp'; - } - - # If purity is not set and maxdepth is set, then check depth: - # if we have reached maximum depth, return the string - # representation of the thing we are currently examining - # at this depth (i.e., 'Foo=ARRAY(0xdeadbeef)'). - if (!$s->{purity} - and defined($s->{maxdepth}) - and $s->{maxdepth} > 0 - and $s->{level} >= $s->{maxdepth}) - { - return qq['$val']; - } - - # avoid recursing infinitely [perl #122111] - if ($s->{maxrecurse} > 0 - and $s->{level} >= $s->{maxrecurse}) { - die "Recursion limit of $s->{maxrecurse} exceeded"; - } - - # we have a blessed ref - my ($blesspad); - if ($realpack and !$no_bless) { - $out = $s->{'bless'} . '( '; - $blesspad = $s->{apad}; - $s->{apad} .= ' ' if ($s->{indent} >= 2); - } - - $s->{level}++; - my $ipad = $s->{xpad} x $s->{level}; - - if ($is_regex) { - my $pat; - my $flags = ""; - if (defined(*re::regexp_pattern{CODE})) { - ($pat, $flags) = re::regexp_pattern($val); - } - else { - $pat = "$val"; - } - $pat =~ s <(\\.)|/> { $1 || '\\/' }ge; - $out .= "qr/$pat/$flags"; - } - elsif ($realtype eq 'SCALAR' || $realtype eq 'REF' - || $realtype eq 'VSTRING') { - if ($realpack) { - $out .= 'do{\\(my $o = ' . $s->_dump($$val, "\${$name}") . ')}'; - } - else { - $out .= '\\' . $s->_dump($$val, "\${$name}"); - } - } - elsif ($realtype eq 'GLOB') { - $out .= '\\' . $s->_dump($$val, "*{$name}"); - } - elsif ($realtype eq 'ARRAY') { - my($pad, $mname); - my($i) = 0; - $out .= ($name =~ /^\@/) ? '(' : '['; - $pad = $s->{sep} . $s->{pad} . $s->{apad}; - ($name =~ /^\@(.*)$/) ? ($mname = "\$" . $1) : - # omit -> if $foo->[0]->{bar}, but not ${$foo->[0]}->{bar} - ($name =~ /^\\?[\%\@\*\$][^{].*[]}]$/) ? ($mname = $name) : - ($mname = $name . '->'); - $mname .= '->' if $mname =~ /^\*.+\{[A-Z]+\}$/; - for my $v (@$val) { - $sname = $mname . '[' . $i . ']'; - $out .= $pad . $ipad . '#' . $i - if $s->{indent} >= 3; - $out .= $pad . $ipad . $s->_dump($v, $sname); - $out .= "," - if $i++ < $#$val - || ($s->{trailingcomma} && $s->{indent} >= 1); - } - $out .= $pad . ($s->{xpad} x ($s->{level} - 1)) if $i; - $out .= ($name =~ /^\@/) ? ')' : ']'; - } - elsif ($realtype eq 'HASH') { - my ($k, $v, $pad, $lpad, $mname, $pair); - $out .= ($name =~ /^\%/) ? '(' : '{'; - $pad = $s->{sep} . $s->{pad} . $s->{apad}; - $lpad = $s->{apad}; - $pair = $s->{pair}; - ($name =~ /^\%(.*)$/) ? ($mname = "\$" . $1) : - # omit -> if $foo->[0]->{bar}, but not ${$foo->[0]}->{bar} - ($name =~ /^\\?[\%\@\*\$][^{].*[]}]$/) ? ($mname = $name) : - ($mname = $name . '->'); - $mname .= '->' if $mname =~ /^\*.+\{[A-Z]+\}$/; - my $sortkeys = defined($s->{sortkeys}) ? $s->{sortkeys} : ''; - my $keys = []; - if ($sortkeys) { - if (ref($s->{sortkeys}) eq 'CODE') { - $keys = $s->{sortkeys}($val); - unless (ref($keys) eq 'ARRAY') { - carp "Sortkeys subroutine did not return ARRAYREF"; - $keys = []; - } - } - else { - $keys = [ sort keys %$val ]; - } - } - - # Ensure hash iterator is reset - keys(%$val); - - my $key; - while (($k, $v) = ! $sortkeys ? (each %$val) : - @$keys ? ($key = shift(@$keys), $val->{$key}) : - () ) - { - my $nk = $s->_dump($k, ""); - - # _dump doesn't quote numbers of this form - if ($s->{quotekeys} && $nk =~ /^(?:0|-?[1-9][0-9]{0,8})\z/) { - $nk = $s->{useqq} ? qq("$nk") : qq('$nk'); - } - elsif (!$s->{quotekeys} and $nk =~ /^[\"\']([A-Za-z_]\w*)[\"\']$/) { - $nk = $1 - } - - $sname = $mname . '{' . $nk . '}'; - $out .= $pad . $ipad . $nk . $pair; - - # temporarily alter apad - $s->{apad} .= (" " x (length($nk) + 4)) - if $s->{indent} >= 2; - $out .= $s->_dump($val->{$k}, $sname) . ","; - $s->{apad} = $lpad - if $s->{indent} >= 2; - } - if (substr($out, -1) eq ',') { - chop $out if !$s->{trailingcomma} || !$s->{indent}; - $out .= $pad . ($s->{xpad} x ($s->{level} - 1)); - } - $out .= ($name =~ /^\%/) ? ')' : '}'; - } - elsif ($realtype eq 'CODE') { - if ($s->{deparse}) { - require B::Deparse; - my $sub = 'sub ' . (B::Deparse->new)->coderef2text($val); - $pad = $s->{sep} . $s->{pad} . $s->{apad} . $s->{xpad} x ($s->{level} - 1); - $sub =~ s/\n/$pad/gse; - $out .= $sub; - } - else { - $out .= 'sub { "DUMMY" }'; - carp "Encountered CODE ref, using dummy placeholder" if $s->{purity}; - } - } - else { - croak "Can't handle '$realtype' type"; - } - - if ($realpack and !$no_bless) { # we have a blessed ref - $out .= ', ' . _quote($realpack) . ' )'; - $out .= '->' . $s->{toaster} . '()' - if $s->{toaster} ne ''; - $s->{apad} = $blesspad; - } - $s->{level}--; - } - else { # simple scalar - - my $ref = \$_[1]; - my $v; - # first, catalog the scalar - if ($name ne '') { - $id = format_refaddr($ref); - if (exists $s->{seen}{$id}) { - if ($s->{seen}{$id}[2]) { - $out = $s->{seen}{$id}[0]; - #warn "[<$out]\n"; - return "\${$out}"; - } - } - else { - #warn "[>\\$name]\n"; - $s->{seen}{$id} = ["\\$name", $ref]; - } - } - $ref = \$val; - if (ref($ref) eq 'GLOB') { # glob - my $name = substr($val, 1); - if ($name =~ /^[A-Za-z_][\w:]*$/ && $name ne 'main::') { - $name =~ s/^main::/::/; - $sname = $name; - } - else { - $sname = $s->_dump( - $name eq 'main::' || $] < 5.007 && $name eq "main::\0" - ? '' - : $name, - "", - ); - $sname = '{' . $sname . '}'; - } - if ($s->{purity}) { - my $k; - local ($s->{level}) = 0; - for $k (qw(SCALAR ARRAY HASH)) { - my $gval = *$val{$k}; - next unless defined $gval; - next if $k eq "SCALAR" && ! defined $$gval; # always there - - # _dump can push into @post, so we hold our place using $postlen - my $postlen = scalar @post; - $post[$postlen] = "\*$sname = "; - local ($s->{apad}) = " " x length($post[$postlen]) if $s->{indent} >= 2; - $post[$postlen] .= $s->_dump($gval, "\*$sname\{$k\}"); - } - } - $out .= '*' . $sname; - } - elsif (!defined($val)) { - $out .= "undef"; - } - elsif (defined &_vstring and $v = _vstring($val) - and !_bad_vsmg || eval $v eq $val) { - $out .= $v; - } - elsif (!defined &_vstring - and ref $ref eq 'VSTRING' || eval{Scalar::Util::isvstring($val)}) { - $out .= sprintf "%vd", $val; - } - # \d here would treat "1\x{660}" as a safe decimal number - elsif ($val =~ /^(?:0|-?[1-9][0-9]{0,8})\z/) { # safe decimal number - $out .= $val; - } - else { # string - if ($s->{useqq} or $val =~ tr/\0-\377//c) { - # Fall back to qq if there's Unicode - $out .= qquote($val, $s->{useqq}); - } - else { - $out .= _quote($val); - } - } - } - if ($id) { - # if we made it this far, $id was added to seen list at current - # level, so remove it to get deep copies - if ($s->{deepcopy}) { - delete($s->{seen}{$id}); - } - elsif ($name) { - $s->{seen}{$id}[2] = 1; - } - } - return $out; -} - -# -# non-OO style of earlier version -# -sub Dumper { - return Data::Dumper->Dump([@_]); -} - -# compat stub -sub DumperX { - return Data::Dumper->Dumpxs([@_], []); -} - -# -# reset the "seen" cache -# -sub Reset { - my($s) = shift; - $s->{seen} = {}; - return $s; -} - -sub Indent { - my($s, $v) = @_; - if (defined($v)) { - if ($v == 0) { - $s->{xpad} = ""; - $s->{sep} = ""; - } - else { - $s->{xpad} = " "; - $s->{sep} = "\n"; - } - $s->{indent} = $v; - return $s; - } - else { - return $s->{indent}; - } -} - -sub Trailingcomma { - my($s, $v) = @_; - defined($v) ? (($s->{trailingcomma} = $v), return $s) : $s->{trailingcomma}; -} - -sub Pair { - my($s, $v) = @_; - defined($v) ? (($s->{pair} = $v), return $s) : $s->{pair}; -} - -sub Pad { - my($s, $v) = @_; - defined($v) ? (($s->{pad} = $v), return $s) : $s->{pad}; -} - -sub Varname { - my($s, $v) = @_; - defined($v) ? (($s->{varname} = $v), return $s) : $s->{varname}; -} - -sub Purity { - my($s, $v) = @_; - defined($v) ? (($s->{purity} = $v), return $s) : $s->{purity}; -} - -sub Useqq { - my($s, $v) = @_; - defined($v) ? (($s->{useqq} = $v), return $s) : $s->{useqq}; -} - -sub Terse { - my($s, $v) = @_; - defined($v) ? (($s->{terse} = $v), return $s) : $s->{terse}; -} - -sub Freezer { - my($s, $v) = @_; - defined($v) ? (($s->{freezer} = $v), return $s) : $s->{freezer}; -} - -sub Toaster { - my($s, $v) = @_; - defined($v) ? (($s->{toaster} = $v), return $s) : $s->{toaster}; -} - -sub Deepcopy { - my($s, $v) = @_; - defined($v) ? (($s->{deepcopy} = $v), return $s) : $s->{deepcopy}; -} - -sub Quotekeys { - my($s, $v) = @_; - defined($v) ? (($s->{quotekeys} = $v), return $s) : $s->{quotekeys}; -} - -sub Bless { - my($s, $v) = @_; - defined($v) ? (($s->{'bless'} = $v), return $s) : $s->{'bless'}; -} - -sub Maxdepth { - my($s, $v) = @_; - defined($v) ? (($s->{'maxdepth'} = $v), return $s) : $s->{'maxdepth'}; -} - -sub Maxrecurse { - my($s, $v) = @_; - defined($v) ? (($s->{'maxrecurse'} = $v), return $s) : $s->{'maxrecurse'}; -} - -sub Useperl { - my($s, $v) = @_; - defined($v) ? (($s->{'useperl'} = $v), return $s) : $s->{'useperl'}; -} - -sub Sortkeys { - my($s, $v) = @_; - defined($v) ? (($s->{'sortkeys'} = $v), return $s) : $s->{'sortkeys'}; -} - -sub Deparse { - my($s, $v) = @_; - defined($v) ? (($s->{'deparse'} = $v), return $s) : $s->{'deparse'}; -} - -sub Sparseseen { - my($s, $v) = @_; - defined($v) ? (($s->{'noseen'} = $v), return $s) : $s->{'noseen'}; -} - -# used by qquote below -my %esc = ( - "\a" => "\\a", - "\b" => "\\b", - "\t" => "\\t", - "\n" => "\\n", - "\f" => "\\f", - "\r" => "\\r", - "\e" => "\\e", -); - -my $low_controls = ($IS_ASCII) - - # This includes \177, because traditionally it has been - # output as octal, even though it isn't really a "low" - # control - ? qr/[\0-\x1f\177]/ - - # EBCDIC low controls. - : qr/[\0-\x3f]/; - -# put a string value in double quotes -sub qquote { - local($_) = shift; - s/([\\\"\@\$])/\\$1/g; - - # This efficiently changes the high ordinal characters to \x{} if the utf8 - # flag is on. On ASCII platforms, the high ordinals are all the - # non-ASCII's. On EBCDIC platforms, we don't include in these the non-ASCII - # controls whose ordinals are less than SPACE, excluded below by the range - # \0-\x3f. On ASCII platforms this range just compiles as part of :ascii:. - # On EBCDIC platforms, there is just one outlier high ordinal control, and - # it gets output as \x{}. - my $bytes; { use bytes; $bytes = length } - s/([^[:ascii:]\0-\x3f])/sprintf("\\x{%x}",ord($1))/ge - if $bytes > length - - # The above doesn't get the EBCDIC outlier high ordinal control when - # the string is UTF-8 but there are no UTF-8 variant characters in it. - # We want that to come out as \x{} anyway. We need is_utf8() to do - # this. - || (! $IS_ASCII && $] ge 5.008_001 && utf8::is_utf8($_)); - - return qq("$_") unless /[[:^print:]]/; # fast exit if only printables - - # Here, there is at least one non-printable to output. First, translate the - # escapes. - s/([\a\b\t\n\f\r\e])/$esc{$1}/g; - - # no need for 3 digits in escape for octals not followed by a digit. - s/($low_controls)(?!\d)/'\\'.sprintf('%o',ord($1))/eg; - - # But otherwise use 3 digits - s/($low_controls)/'\\'.sprintf('%03o',ord($1))/eg; - - # all but last branch below not supported --BEHAVIOR SUBJECT TO CHANGE-- - my $high = shift || ""; - if ($high eq "iso8859") { # Doesn't escape the Latin1 printables - if ($IS_ASCII) { - s/([\200-\240])/'\\'.sprintf('%o',ord($1))/eg; - } - elsif ($] ge 5.007_003) { - my $high_control = utf8::unicode_to_native(0x9F); - s/$high_control/sprintf('\\%o',ord($1))/eg; - } - } elsif ($high eq "utf8") { -# Some discussion of what to do here is in -# https://rt.perl.org/Ticket/Display.html?id=113088 -# use utf8; -# $str =~ s/([^\040-\176])/sprintf "\\x{%04x}", ord($1)/ge; - } elsif ($high eq "8bit") { - # leave it as it is - } else { - s/([[:^ascii:]])/'\\'.sprintf('%03o',ord($1))/eg; - #s/([^\040-\176])/sprintf "\\x{%04x}", ord($1)/ge; - } - - return qq("$_"); -} - -# helper sub to sort hash keys in Perl < 5.8.0 where we don't have -# access to sortsv() from XS -sub _sortkeys { [ sort keys %{$_[0]} ] } - -sub _refine_name { - my $s = shift; - my ($name, $val, $i) = @_; - if (defined $name) { - if ($name =~ /^[*](.*)$/) { - if (defined $val) { - $name = (ref $val eq 'ARRAY') ? ( "\@" . $1 ) : - (ref $val eq 'HASH') ? ( "\%" . $1 ) : - (ref $val eq 'CODE') ? ( "\*" . $1 ) : - ( "\$" . $1 ) ; - } - else { - $name = "\$" . $1; - } - } - elsif ($name !~ /^\$/) { - $name = "\$" . $name; - } - } - else { # no names provided - $name = "\$" . $s->{varname} . $i; - } - return $name; -} - -sub _compose_out { - my $s = shift; - my ($valstr, $postref) = @_; - my $out = ""; - $out .= $s->{pad} . $valstr . $s->{sep}; - if (@{$postref}) { - $out .= $s->{pad} . - join(';' . $s->{sep} . $s->{pad}, @{$postref}) . - ';' . - $s->{sep}; - } - return $out; -} - -1; -__END__ - -#line 1482 diff --git a/software/Slic3r-1.3.0.64bit/lib/Data/OptList.pm b/software/Slic3r-1.3.0.64bit/lib/Data/OptList.pm deleted file mode 100644 index d2c43d52..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Data/OptList.pm +++ /dev/null @@ -1,243 +0,0 @@ -#line 1 "Data/OptList.pm" -use strict; -use warnings; -package Data::OptList; -# ABSTRACT: parse and validate simple name/value option pairs -$Data::OptList::VERSION = '0.110'; -use List::Util (); -use Params::Util (); -use Sub::Install 0.921 (); - -#pod =head1 SYNOPSIS -#pod -#pod use Data::OptList; -#pod -#pod my $options = Data::OptList::mkopt([ -#pod qw(key1 key2 key3 key4), -#pod key5 => { ... }, -#pod key6 => [ ... ], -#pod key7 => sub { ... }, -#pod key8 => { ... }, -#pod key8 => [ ... ], -#pod ]); -#pod -#pod ...is the same thing, more or less, as: -#pod -#pod my $options = [ -#pod [ key1 => undef, ], -#pod [ key2 => undef, ], -#pod [ key3 => undef, ], -#pod [ key4 => undef, ], -#pod [ key5 => { ... }, ], -#pod [ key6 => [ ... ], ], -#pod [ key7 => sub { ... }, ], -#pod [ key8 => { ... }, ], -#pod [ key8 => [ ... ], ], -#pod ]); -#pod -#pod =head1 DESCRIPTION -#pod -#pod Hashes are great for storing named data, but if you want more than one entry -#pod for a name, you have to use a list of pairs. Even then, this is really boring -#pod to write: -#pod -#pod $values = [ -#pod foo => undef, -#pod bar => undef, -#pod baz => undef, -#pod xyz => { ... }, -#pod ]; -#pod -#pod Just look at all those undefs! Don't worry, we can get rid of those: -#pod -#pod $values = [ -#pod map { $_ => undef } qw(foo bar baz), -#pod xyz => { ... }, -#pod ]; -#pod -#pod Aaaauuugh! We've saved a little typing, but now it requires thought to read, -#pod and thinking is even worse than typing... and it's got a bug! It looked right, -#pod didn't it? Well, the C<< xyz => { ... } >> gets consumed by the map, and we -#pod don't get the data we wanted. -#pod -#pod With Data::OptList, you can do this instead: -#pod -#pod $values = Data::OptList::mkopt([ -#pod qw(foo bar baz), -#pod xyz => { ... }, -#pod ]); -#pod -#pod This works by assuming that any defined scalar is a name and any reference -#pod following a name is its value. -#pod -#pod =func mkopt -#pod -#pod my $opt_list = Data::OptList::mkopt($input, \%arg); -#pod -#pod Valid arguments are: -#pod -#pod moniker - a word used in errors to describe the opt list; encouraged -#pod require_unique - if true, no name may appear more than once -#pod must_be - types to which opt list values are limited (described below) -#pod name_test - a coderef used to test whether a value can be a name -#pod (described below, but you probably don't want this) -#pod -#pod This produces an array of arrays; the inner arrays are name/value pairs. -#pod Values will be either "undef" or a reference. -#pod -#pod Positional parameters may be used for compatibility with the old C -#pod interface: -#pod -#pod my $opt_list = Data::OptList::mkopt($input, $moniker, $req_uni, $must_be); -#pod -#pod Valid values for C<$input>: -#pod -#pod undef -> [] -#pod hashref -> [ [ key1 => value1 ] ... ] # non-ref values become undef -#pod arrayref -> every name followed by a non-name becomes a pair: [ name => ref ] -#pod every name followed by undef becomes a pair: [ name => undef ] -#pod otherwise, it becomes [ name => undef ] like so: -#pod [ "a", "b", [ 1, 2 ] ] -> [ [ a => undef ], [ b => [ 1, 2 ] ] ] -#pod -#pod By default, a I is any defined non-reference. The C parameter -#pod can be a code ref that tests whether the argument passed it is a name or not. -#pod This should be used rarely. Interactions between C and -#pod C are not yet particularly elegant, as C just tests -#pod string equality. B -#pod -#pod The C parameter is either a scalar or array of scalars; it defines -#pod what kind(s) of refs may be values. If an invalid value is found, an exception -#pod is thrown. If no value is passed for this argument, any reference is valid. -#pod If C specifies that values must be CODE, HASH, ARRAY, or SCALAR, then -#pod Params::Util is used to check whether the given value can provide that -#pod interface. Otherwise, it checks that the given value is an object of the kind. -#pod -#pod In other words: -#pod -#pod [ qw(SCALAR HASH Object::Known) ] -#pod -#pod Means: -#pod -#pod _SCALAR0($value) or _HASH($value) or _INSTANCE($value, 'Object::Known') -#pod -#pod =cut - -my %test_for; -BEGIN { - %test_for = ( - CODE => \&Params::Util::_CODELIKE, ## no critic - HASH => \&Params::Util::_HASHLIKE, ## no critic - ARRAY => \&Params::Util::_ARRAYLIKE, ## no critic - SCALAR => \&Params::Util::_SCALAR0, ## no critic - ); -} - -sub mkopt { - my ($opt_list) = shift; - - my ($moniker, $require_unique, $must_be); # the old positional args - my ($name_test, $is_a); - - if (@_) { - if (@_ == 1 and Params::Util::_HASHLIKE($_[0])) { - ($moniker, $require_unique, $must_be, $name_test) - = @{$_[0]}{ qw(moniker require_unique must_be name_test) }; - } else { - ($moniker, $require_unique, $must_be) = @_; - } - - # Transform the $must_be specification into a closure $is_a - # that will check if a value matches the spec - - if (defined $must_be) { - $must_be = [ $must_be ] unless ref $must_be; - my @checks = map { - my $class = $_; - $test_for{$_} - || sub { $_[1] = $class; goto \&Params::Util::_INSTANCE } - } @$must_be; - - $is_a = (@checks == 1) - ? $checks[0] - : sub { - my $value = $_[0]; - List::Util::first { defined($_->($value)) } @checks - }; - - $moniker = 'unnamed' unless defined $moniker; - } - } - - return [] unless $opt_list; - - $name_test ||= sub { ! ref $_[0] }; - - $opt_list = [ - map { $_ => (ref $opt_list->{$_} ? $opt_list->{$_} : ()) } keys %$opt_list - ] if ref $opt_list eq 'HASH'; - - my @return; - my %seen; - - for (my $i = 0; $i < @$opt_list; $i++) { ## no critic - my $name = $opt_list->[$i]; - - if ($require_unique) { - Carp::croak "multiple definitions provided for $name" if $seen{$name}++; - } - - my $value; - - if ($i < $#$opt_list) { - if (not defined $opt_list->[$i+1]) { - $i++ - } elsif (! $name_test->($opt_list->[$i+1])) { - $value = $opt_list->[++$i]; - if ($is_a && !$is_a->($value)) { - my $ref = ref $value; - Carp::croak "$ref-ref values are not valid in $moniker opt list"; - } - } - } - - push @return, [ $name => $value ]; - } - - return \@return; -} - -#pod =func mkopt_hash -#pod -#pod my $opt_hash = Data::OptList::mkopt_hash($input, $moniker, $must_be); -#pod -#pod Given valid C> input, this routine returns a reference to a hash. It -#pod will throw an exception if any name has more than one value. -#pod -#pod =cut - -sub mkopt_hash { - my ($opt_list, $moniker, $must_be) = @_; - return {} unless $opt_list; - - $opt_list = mkopt($opt_list, $moniker, 1, $must_be); - my %hash = map { $_->[0] => $_->[1] } @$opt_list; - return \%hash; -} - -#pod =head1 EXPORTS -#pod -#pod Both C and C may be exported on request. -#pod -#pod =cut - -BEGIN { - *import = Sub::Install::exporter { - exports => [qw(mkopt mkopt_hash)], - }; -} - -1; - -__END__ - -#line 407 diff --git a/software/Slic3r-1.3.0.64bit/lib/Devel/GlobalDestruction.pm b/software/Slic3r-1.3.0.64bit/lib/Devel/GlobalDestruction.pm deleted file mode 100644 index 95bcca11..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Devel/GlobalDestruction.pm +++ /dev/null @@ -1,44 +0,0 @@ -#line 1 "Devel/GlobalDestruction.pm" -package Devel::GlobalDestruction; - -use strict; -use warnings; - -our $VERSION = '0.14'; - -use Sub::Exporter::Progressive -setup => { - exports => [ qw(in_global_destruction) ], - groups => { default => [ -all ] }, -}; - -# we run 5.14+ - everything is in core -# -if (defined ${^GLOBAL_PHASE}) { - eval 'sub in_global_destruction () { ${^GLOBAL_PHASE} eq q[DESTRUCT] }; 1' - or die $@; -} -# try to load the xs version if it was compiled -# -elsif (eval { - require Devel::GlobalDestruction::XS; - no warnings 'once'; - *in_global_destruction = \&Devel::GlobalDestruction::XS::in_global_destruction; - 1; -}) { - # the eval already installed everything, nothing to do -} -else { - # internally, PL_main_cv is set to Nullcv immediately before entering - # global destruction and we can use B to detect that. B::main_cv will - # only ever be a B::CV or a B::SPECIAL that is a reference to 0 - require B; - eval 'sub in_global_destruction () { ${B::main_cv()} == 0 }; 1' - or die $@; -} - -1; # keep require happy - - -__END__ - -#line 111 diff --git a/software/Slic3r-1.3.0.64bit/lib/Digest.pm b/software/Slic3r-1.3.0.64bit/lib/Digest.pm deleted file mode 100644 index 59c2f40f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Digest.pm +++ /dev/null @@ -1,68 +0,0 @@ -#line 1 "Digest.pm" -package Digest; - -use strict; -use vars qw($VERSION %MMAP $AUTOLOAD); - -$VERSION = "1.17_01"; - -%MMAP = ( - "SHA-1" => [["Digest::SHA", 1], "Digest::SHA1", ["Digest::SHA2", 1]], - "SHA-224" => [["Digest::SHA", 224]], - "SHA-256" => [["Digest::SHA", 256], ["Digest::SHA2", 256]], - "SHA-384" => [["Digest::SHA", 384], ["Digest::SHA2", 384]], - "SHA-512" => [["Digest::SHA", 512], ["Digest::SHA2", 512]], - "HMAC-MD5" => "Digest::HMAC_MD5", - "HMAC-SHA-1" => "Digest::HMAC_SHA1", - "CRC-16" => [["Digest::CRC", type => "crc16"]], - "CRC-32" => [["Digest::CRC", type => "crc32"]], - "CRC-CCITT" => [["Digest::CRC", type => "crcccitt"]], - "RIPEMD-160" => "Crypt::RIPEMD160", -); - -sub new -{ - shift; # class ignored - my $algorithm = shift; - my $impl = $MMAP{$algorithm} || do { - $algorithm =~ s/\W+//g; - "Digest::$algorithm"; - }; - $impl = [$impl] unless ref($impl); - local $@; # don't clobber it for our caller - my $err; - for (@$impl) { - my $class = $_; - my @args; - ($class, @args) = @$class if ref($class); - no strict 'refs'; - unless (exists ${"$class\::"}{"VERSION"}) { - my $pm_file = $class . ".pm"; - $pm_file =~ s{::}{/}g; - eval { - local @INC = @INC; - pop @INC if $INC[-1] eq '.'; - require $pm_file - }; - if ($@) { - $err ||= $@; - next; - } - } - return $class->new(@args, @_); - } - die $err; -} - -sub AUTOLOAD -{ - my $class = shift; - my $algorithm = substr($AUTOLOAD, rindex($AUTOLOAD, '::')+2); - $class->new($algorithm, @_); -} - -1; - -__END__ - -#line 324 diff --git a/software/Slic3r-1.3.0.64bit/lib/Digest/MD5.pm b/software/Slic3r-1.3.0.64bit/lib/Digest/MD5.pm deleted file mode 100644 index ec9fe357..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Digest/MD5.pm +++ /dev/null @@ -1,48 +0,0 @@ -#line 1 "Digest/MD5.pm" -package Digest::MD5; - -use strict; -use vars qw($VERSION @ISA @EXPORT_OK); - -$VERSION = '2.55'; - -require Exporter; -*import = \&Exporter::import; -@EXPORT_OK = qw(md5 md5_hex md5_base64); - -eval { - require Digest::base; - push(@ISA, 'Digest::base'); -}; -if ($@) { - my $err = $@; - *add_bits = sub { die $err }; -} - - -eval { - require XSLoader; - XSLoader::load('Digest::MD5', $VERSION); -}; -if ($@) { - my $olderr = $@; - eval { - # Try to load the pure perl version - require Digest::Perl::MD5; - - Digest::Perl::MD5->import(qw(md5 md5_hex md5_base64)); - unshift(@ISA, "Digest::Perl::MD5"); # make OO interface work - }; - if ($@) { - # restore the original error - die $olderr; - } -} -else { - *reset = \&new; -} - -1; -__END__ - -#line 386 diff --git a/software/Slic3r-1.3.0.64bit/lib/Digest/SHA.pm b/software/Slic3r-1.3.0.64bit/lib/Digest/SHA.pm deleted file mode 100644 index 79d55f86..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Digest/SHA.pm +++ /dev/null @@ -1,252 +0,0 @@ -#line 1 "Digest/SHA.pm" -package Digest::SHA; - -require 5.003000; - -use strict; -use warnings; -use vars qw($VERSION @ISA @EXPORT_OK); -use Fcntl qw(O_RDONLY); -use integer; - -$VERSION = '5.96'; - -require Exporter; -require DynaLoader; -@ISA = qw(Exporter DynaLoader); -@EXPORT_OK = qw( - hmac_sha1 hmac_sha1_base64 hmac_sha1_hex - hmac_sha224 hmac_sha224_base64 hmac_sha224_hex - hmac_sha256 hmac_sha256_base64 hmac_sha256_hex - hmac_sha384 hmac_sha384_base64 hmac_sha384_hex - hmac_sha512 hmac_sha512_base64 hmac_sha512_hex - hmac_sha512224 hmac_sha512224_base64 hmac_sha512224_hex - hmac_sha512256 hmac_sha512256_base64 hmac_sha512256_hex - sha1 sha1_base64 sha1_hex - sha224 sha224_base64 sha224_hex - sha256 sha256_base64 sha256_hex - sha384 sha384_base64 sha384_hex - sha512 sha512_base64 sha512_hex - sha512224 sha512224_base64 sha512224_hex - sha512256 sha512256_base64 sha512256_hex); - -# Inherit from Digest::base if possible - -eval { - require Digest::base; - push(@ISA, 'Digest::base'); -}; - -# The following routines aren't time-critical, so they can be left in Perl - -sub new { - my($class, $alg) = @_; - $alg =~ s/\D+//g if defined $alg; - if (ref($class)) { # instance method - if (!defined($alg) || ($alg == $class->algorithm)) { - sharewind($class); - return($class); - } - return shainit($class, $alg) ? $class : undef; - } - $alg = 1 unless defined $alg; - return $class->newSHA($alg); -} - -BEGIN { *reset = \&new } - -sub add_bits { - my($self, $data, $nbits) = @_; - unless (defined $nbits) { - $nbits = length($data); - $data = pack("B*", $data); - } - $nbits = length($data) * 8 if $nbits > length($data) * 8; - shawrite($data, $nbits, $self); - return($self); -} - -sub _bail { - my $msg = shift; - - $msg .= ": $!"; - require Carp; - Carp::croak($msg); -} - -{ - my $_can_T_filehandle; - - sub _istext { - local *FH = shift; - my $file = shift; - - if (! defined $_can_T_filehandle) { - local $^W = 0; - my $istext = eval { -T FH }; - $_can_T_filehandle = $@ ? 0 : 1; - return $_can_T_filehandle ? $istext : -T $file; - } - return $_can_T_filehandle ? -T FH : -T $file; - } -} - -sub _addfile { - my ($self, $handle) = @_; - - my $n; - my $buf = ""; - - while (($n = read($handle, $buf, 4096))) { - $self->add($buf); - } - _bail("Read failed") unless defined $n; - - $self; -} - -sub addfile { - my ($self, $file, $mode) = @_; - - return(_addfile($self, $file)) unless ref(\$file) eq 'SCALAR'; - - $mode = defined($mode) ? $mode : ""; - my ($binary, $UNIVERSAL, $BITS, $portable) = - map { $_ eq $mode } ("b", "U", "0", "p"); - - ## Always interpret "-" to mean STDIN; otherwise use - ## sysopen to handle full range of POSIX file names - - local *FH; - $file eq '-' and open(FH, '< -') - or sysopen(FH, $file, O_RDONLY) - or _bail('Open failed'); - - if ($BITS) { - my ($n, $buf) = (0, ""); - while (($n = read(FH, $buf, 4096))) { - $buf =~ s/[^01]//g; - $self->add_bits($buf); - } - _bail("Read failed") unless defined $n; - close(FH); - return($self); - } - - binmode(FH) if $binary || $portable || $UNIVERSAL; - if ($UNIVERSAL && _istext(*FH, $file)) { - $self->_addfileuniv(*FH); - } - elsif ($portable && _istext(*FH, $file)) { - while () { - s/\015?\015\012/\012/g; - s/\015/\012/g; - $self->add($_); - } - } - else { $self->_addfilebin(*FH) } - close(FH); - - $self; -} - -sub getstate { - my $self = shift; - - my $alg = $self->algorithm or return; - my $state = $self->_getstate or return; - my $nD = $alg <= 256 ? 8 : 16; - my $nH = $alg <= 256 ? 32 : 64; - my $nB = $alg <= 256 ? 64 : 128; - my($H, $block, $blockcnt, $lenhh, $lenhl, $lenlh, $lenll) = - $state =~ /^(.{$nH})(.{$nB})(.{4})(.{4})(.{4})(.{4})(.{4})$/s; - for ($alg, $H, $block, $blockcnt, $lenhh, $lenhl, $lenlh, $lenll) { - return unless defined $_; - } - - my @s = (); - push(@s, "alg:" . $alg); - push(@s, "H:" . join(":", unpack("H*", $H) =~ /.{$nD}/g)); - push(@s, "block:" . join(":", unpack("H*", $block) =~ /.{2}/g)); - push(@s, "blockcnt:" . unpack("N", $blockcnt)); - push(@s, "lenhh:" . unpack("N", $lenhh)); - push(@s, "lenhl:" . unpack("N", $lenhl)); - push(@s, "lenlh:" . unpack("N", $lenlh)); - push(@s, "lenll:" . unpack("N", $lenll)); - join("\n", @s) . "\n"; -} - -sub putstate { - my($class, $state) = @_; - - my %s = (); - for (split(/\n/, $state)) { - s/^\s+//; - s/\s+$//; - next if (/^(#|$)/); - my @f = split(/[:\s]+/); - my $tag = shift(@f); - $s{$tag} = join('', @f); - } - - # H and block may contain arbitrary values, but check everything else - grep { $_ == $s{'alg'} } (1,224,256,384,512,512224,512256) or return; - length($s{'H'}) == ($s{'alg'} <= 256 ? 64 : 128) or return; - length($s{'block'}) == ($s{'alg'} <= 256 ? 128 : 256) or return; - { - no integer; - for (qw(blockcnt lenhh lenhl lenlh lenll)) { - 0 <= $s{$_} or return; - $s{$_} <= 4294967295 or return; - } - $s{'blockcnt'} < ($s{'alg'} <= 256 ? 512 : 1024) or return; - } - - my $packed_state = ( - pack("H*", $s{'H'}) . - pack("H*", $s{'block'}) . - pack("N", $s{'blockcnt'}) . - pack("N", $s{'lenhh'}) . - pack("N", $s{'lenhl'}) . - pack("N", $s{'lenlh'}) . - pack("N", $s{'lenll'}) - ); - - return $class->new($s{'alg'})->_putstate($packed_state); -} - -sub dump { - my $self = shift; - my $file = shift; - - my $state = $self->getstate or return; - $file = "-" if (!defined($file) || $file eq ""); - - local *FH; - open(FH, "> $file") or return; - print FH $state; - close(FH); - - return($self); -} - -sub load { - my $class = shift; - my $file = shift; - - $file = "-" if (!defined($file) || $file eq ""); - - local *FH; - open(FH, "< $file") or return; - my $str = join('', ); - close(FH); - - $class->putstate($str); -} - -Digest::SHA->bootstrap($VERSION); - -1; -__END__ - -#line 824 diff --git a/software/Slic3r-1.3.0.64bit/lib/Digest/base.pm b/software/Slic3r-1.3.0.64bit/lib/Digest/base.pm deleted file mode 100644 index 285ee03d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Digest/base.pm +++ /dev/null @@ -1,72 +0,0 @@ -#line 1 "Digest/base.pm" -package Digest::base; - -use strict; -use vars qw($VERSION); -$VERSION = "1.16"; - -# subclass is supposed to implement at least these -sub new; -sub clone; -sub add; -sub digest; - -sub reset { - my $self = shift; - $self->new(@_); # ugly -} - -sub addfile { - my ($self, $handle) = @_; - - my $n; - my $buf = ""; - - while (($n = read($handle, $buf, 4*1024))) { - $self->add($buf); - } - unless (defined $n) { - require Carp; - Carp::croak("Read failed: $!"); - } - - $self; -} - -sub add_bits { - my $self = shift; - my $bits; - my $nbits; - if (@_ == 1) { - my $arg = shift; - $bits = pack("B*", $arg); - $nbits = length($arg); - } - else { - ($bits, $nbits) = @_; - } - if (($nbits % 8) != 0) { - require Carp; - Carp::croak("Number of bits must be multiple of 8 for this algorithm"); - } - return $self->add(substr($bits, 0, $nbits/8)); -} - -sub hexdigest { - my $self = shift; - return unpack("H*", $self->digest(@_)); -} - -sub b64digest { - my $self = shift; - require MIME::Base64; - my $b64 = MIME::Base64::encode($self->digest(@_), ""); - $b64 =~ s/=+$//; - return $b64; -} - -1; - -__END__ - -#line 101 \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/lib/DynaLoader.pm b/software/Slic3r-1.3.0.64bit/lib/DynaLoader.pm deleted file mode 100644 index 216f70a1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/DynaLoader.pm +++ /dev/null @@ -1,324 +0,0 @@ -#line 1 "DynaLoader.pm" - -# Generated from DynaLoader_pm.PL, this file is unique for every OS - -package DynaLoader; - -# And Gandalf said: 'Many folk like to know beforehand what is to -# be set on the table; but those who have laboured to prepare the -# feast like to keep their secret; for wonder makes the words of -# praise louder.' - -# (Quote from Tolkien suggested by Anno Siegel.) -# -# See pod text at end of file for documentation. -# See also ext/DynaLoader/README in source tree for other information. -# -# Tim.Bunce@ig.co.uk, August 1994 - -BEGIN { - $VERSION = '1.38'; -} - -use Config; - -# enable debug/trace messages from DynaLoader perl code -$dl_debug = $ENV{PERL_DL_DEBUG} || 0 unless defined $dl_debug; - -# -# Flags to alter dl_load_file behaviour. Assigned bits: -# 0x01 make symbols available for linking later dl_load_file's. -# (only known to work on Solaris 2 using dlopen(RTLD_GLOBAL)) -# (ignored under VMS; effect is built-in to image linking) -# (ignored under Android; the linker always uses RTLD_LOCAL) -# -# This is called as a class method $module->dl_load_flags. The -# definition here will be inherited and result on "default" loading -# behaviour unless a sub-class of DynaLoader defines its own version. -# - -sub dl_load_flags { 0x00 } - -($dl_dlext, $dl_so, $dlsrc) = @Config::Config{qw(dlext so dlsrc)}; - - -$do_expand = 0; - -@dl_require_symbols = (); # names of symbols we need -@dl_library_path = (); # path to look for files - -#XSLoader.pm may have added elements before we were required -#@dl_shared_objects = (); # shared objects for symbols we have -#@dl_librefs = (); # things we have loaded -#@dl_modules = (); # Modules we have loaded - -# Initialise @dl_library_path with the 'standard' library path -# for this platform as determined by Configure. - -push(@dl_library_path, split(' ', $Config::Config{libpth})); - - -my $ldlibpthname = $Config::Config{ldlibpthname}; -my $ldlibpthname_defined = defined $Config::Config{ldlibpthname}; -my $pthsep = $Config::Config{path_sep}; - -# Add to @dl_library_path any extra directories we can gather from environment -# during runtime. - -if ($ldlibpthname_defined && - exists $ENV{$ldlibpthname}) { - push(@dl_library_path, split(/$pthsep/, $ENV{$ldlibpthname})); -} - -# E.g. HP-UX supports both its native SHLIB_PATH *and* LD_LIBRARY_PATH. - -if ($ldlibpthname_defined && - $ldlibpthname ne 'LD_LIBRARY_PATH' && - exists $ENV{LD_LIBRARY_PATH}) { - push(@dl_library_path, split(/$pthsep/, $ENV{LD_LIBRARY_PATH})); -} - - -# No prizes for guessing why we don't say 'bootstrap DynaLoader;' here. -# NOTE: All dl_*.xs (including dl_none.xs) define a dl_error() XSUB -boot_DynaLoader('DynaLoader') if defined(&boot_DynaLoader) && - !defined(&dl_error); - -if ($dl_debug) { - print STDERR "DynaLoader.pm loaded (@INC, @dl_library_path)\n"; - print STDERR "DynaLoader not linked into this perl\n" - unless defined(&boot_DynaLoader); -} - -1; # End of main code - - -sub croak { require Carp; Carp::croak(@_) } - -sub bootstrap_inherit { - my $module = $_[0]; - local *isa = *{"$module\::ISA"}; - local @isa = (@isa, 'DynaLoader'); - # Cannot goto due to delocalization. Will report errors on a wrong line? - bootstrap(@_); -} - -sub bootstrap { - # use local vars to enable $module.bs script to edit values - local(@args) = @_; - local($module) = $args[0]; - local(@dirs, $file); - - unless ($module) { - require Carp; - Carp::confess("Usage: DynaLoader::bootstrap(module)"); - } - - # A common error on platforms which don't support dynamic loading. - # Since it's fatal and potentially confusing we give a detailed message. - croak("Can't load module $module, dynamic loading not available in this perl.\n". - " (You may need to build a new perl executable which either supports\n". - " dynamic loading or has the $module module statically linked into it.)\n") - unless defined(&dl_load_file); - - - - my @modparts = split(/::/,$module); - my $modfname = $modparts[-1]; - my $modfname_orig = $modfname; # For .bs file search - - # Some systems have restrictions on files names for DLL's etc. - # mod2fname returns appropriate file base name (typically truncated) - # It may also edit @modparts if required. - $modfname = &mod2fname(\@modparts) if defined &mod2fname; - - - - my $modpname = join('/',@modparts); - - print STDERR "DynaLoader::bootstrap for $module ", - "(auto/$modpname/$modfname.$dl_dlext)\n" - if $dl_debug; - - my $dir; - foreach (@INC) { - - $dir = "$_/auto/$modpname"; - - next unless -d $dir; # skip over uninteresting directories - - # check for common cases to avoid autoload of dl_findfile - my $try = "$dir/$modfname.$dl_dlext"; - last if $file = ($do_expand) ? dl_expandspec($try) : ((-f $try) && $try); - - # no luck here, save dir for possible later dl_findfile search - push @dirs, $dir; - } - # last resort, let dl_findfile have a go in all known locations - $file = dl_findfile(map("-L$_",@dirs,@INC), $modfname) unless $file; - - croak("Can't locate loadable object for module $module in \@INC (\@INC contains: @INC)") - unless $file; # wording similar to error from 'require' - - - my $bootname = "boot_$module"; - $bootname =~ s/\W/_/g; - @dl_require_symbols = ($bootname); - - # Execute optional '.bootstrap' perl script for this module. - # The .bs file can be used to configure @dl_resolve_using etc to - # match the needs of the individual module on this architecture. - # N.B. The .bs file does not following the naming convention used - # by mod2fname. - my $bs = "$dir/$modfname_orig"; - $bs =~ s/(\.\w+)?(;\d*)?$/\.bs/; # look for .bs 'beside' the library - if (-s $bs) { # only read file if it's not empty - print STDERR "BS: $bs ($^O, $dlsrc)\n" if $dl_debug; - eval { do $bs; }; - warn "$bs: $@\n" if $@; - } - - my $boot_symbol_ref; - - - - # Many dynamic extension loading problems will appear to come from - # this section of code: XYZ failed at line 123 of DynaLoader.pm. - # Often these errors are actually occurring in the initialisation - # C code of the extension XS file. Perl reports the error as being - # in this perl code simply because this was the last perl code - # it executed. - - my $flags = $module->dl_load_flags; - - my $libref = dl_load_file($file, $flags) or - croak("Can't load '$file' for module $module: ".dl_error()); - - push(@dl_librefs,$libref); # record loaded object - - $boot_symbol_ref = dl_find_symbol($libref, $bootname) or - croak("Can't find '$bootname' symbol in $file\n"); - - push(@dl_modules, $module); # record loaded module - - boot: - my $xs = dl_install_xsub("${module}::bootstrap", $boot_symbol_ref, $file); - - # See comment block above - - push(@dl_shared_objects, $file); # record files loaded - - &$xs(@args); -} - -sub dl_findfile { - # This function does not automatically consider the architecture - # or the perl library auto directories. - my (@args) = @_; - my (@dirs, $dir); # which directories to search - my (@found); # full paths to real files we have found - #my $dl_ext= 'xs.dll'; # $Config::Config{'dlext'} suffix for perl extensions - #my $dl_so = 'dll'; # $Config::Config{'so'} suffix for shared libraries - - print STDERR "dl_findfile(@args)\n" if $dl_debug; - - # accumulate directories but process files as they appear - arg: foreach(@args) { - # Special fast case: full filepath requires no search - - - if (m:/: && -f $_) { - push(@found,$_); - last arg unless wantarray; - next; - } - - - # Deal with directories first: - # Using a -L prefix is the preferred option (faster and more robust) - if (m:^-L:) { s/^-L//; push(@dirs, $_); next; } - - # Otherwise we try to try to spot directories by a heuristic - # (this is a more complicated issue than it first appears) - if (m:/: && -d $_) { push(@dirs, $_); next; } - - - - # Only files should get this far... - my(@names, $name); # what filenames to look for - if (m:-l: ) { # convert -lname to appropriate library name - s/-l//; - push(@names,"lib$_.$dl_so"); - push(@names,"lib$_.a"); - } else { # Umm, a bare name. Try various alternatives: - # these should be ordered with the most likely first - push(@names,"$_.$dl_dlext") unless m/\.$dl_dlext$/o; - push(@names,"$_.$dl_so") unless m/\.$dl_so$/o; - - push(@names,"lib$_.$dl_so") unless m:/:; - push(@names, $_); - } - my $dirsep = '/'; - - foreach $dir (@dirs, @dl_library_path) { - next unless -d $dir; - - foreach $name (@names) { - my($file) = "$dir$dirsep$name"; - print STDERR " checking in $dir for $name\n" if $dl_debug; - $file = ($do_expand) ? dl_expandspec($file) : (-f $file && $file); - #$file = _check_file($file); - if ($file) { - push(@found, $file); - next arg; # no need to look any further - } - } - } - } - if ($dl_debug) { - foreach(@dirs) { - print STDERR " dl_findfile ignored non-existent directory: $_\n" unless -d $_; - } - print STDERR "dl_findfile found: @found\n"; - } - return $found[0] unless wantarray; - @found; -} - - - -sub dl_expandspec { - my($spec) = @_; - # Optional function invoked if DynaLoader.pm sets $do_expand. - # Most systems do not require or use this function. - # Some systems may implement it in the dl_*.xs file in which case - # this Perl version should be excluded at build time. - - # This function is designed to deal with systems which treat some - # 'filenames' in a special way. For example VMS 'Logical Names' - # (something like unix environment variables - but different). - # This function should recognise such names and expand them into - # full file paths. - # Must return undef if $spec is invalid or file does not exist. - - my $file = $spec; # default output to input - - return undef unless -f $file; - print STDERR "dl_expandspec($spec) => $file\n" if $dl_debug; - $file; -} - -sub dl_find_symbol_anywhere -{ - my $sym = shift; - my $libref; - foreach $libref (@dl_librefs) { - my $symref = dl_find_symbol($libref,$sym,1); - return $symref if $symref; - } - return undef; -} - -__END__ - -#line 761 diff --git a/software/Slic3r-1.3.0.64bit/lib/Encode.pm b/software/Slic3r-1.3.0.64bit/lib/Encode.pm deleted file mode 100644 index dc62e5a6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Encode.pm +++ /dev/null @@ -1,416 +0,0 @@ -#line 1 "Encode.pm" -# -# $Id: Encode.pm,v 2.88 2016/11/29 23:30:30 dankogai Exp dankogai $ -# -package Encode; -use strict; -use warnings; -our $VERSION = sprintf "%d.%02d", q$Revision: 2.88 $ =~ /(\d+)/g; -use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG}; -use XSLoader (); -XSLoader::load( __PACKAGE__, $VERSION ); - -use Exporter 5.57 'import'; - -# Public, encouraged API is exported by default - -our @EXPORT = qw( - decode decode_utf8 encode encode_utf8 str2bytes bytes2str - encodings find_encoding find_mime_encoding clone_encoding -); -our @FB_FLAGS = qw( - DIE_ON_ERR WARN_ON_ERR RETURN_ON_ERR LEAVE_SRC - PERLQQ HTMLCREF XMLCREF STOP_AT_PARTIAL -); -our @FB_CONSTS = qw( - FB_DEFAULT FB_CROAK FB_QUIET FB_WARN - FB_PERLQQ FB_HTMLCREF FB_XMLCREF -); -our @EXPORT_OK = ( - qw( - _utf8_off _utf8_on define_encoding from_to is_16bit is_8bit - is_utf8 perlio_ok resolve_alias utf8_downgrade utf8_upgrade - ), - @FB_FLAGS, @FB_CONSTS, -); - -our %EXPORT_TAGS = ( - all => [ @EXPORT, @EXPORT_OK ], - default => [ @EXPORT ], - fallbacks => [ @FB_CONSTS ], - fallback_all => [ @FB_CONSTS, @FB_FLAGS ], -); - -# Documentation moved after __END__ for speed - NI-S - -our $ON_EBCDIC = ( ord("A") == 193 ); - -use Encode::Alias; - -# Make a %Encoding package variable to allow a certain amount of cheating -our %Encoding; -our %ExtModule; -require Encode::Config; -# See -# https://bugzilla.redhat.com/show_bug.cgi?id=435505#c2 -# to find why sig handlers inside eval{} are disabled. -eval { - local $SIG{__DIE__}; - local $SIG{__WARN__}; - local @INC = @INC; - pop @INC if $INC[-1] eq '.'; - require Encode::ConfigLocal; -}; - -sub encodings { - my %enc; - my $arg = $_[1] || ''; - if ( $arg eq ":all" ) { - %enc = ( %Encoding, %ExtModule ); - } - else { - %enc = %Encoding; - for my $mod ( map { m/::/ ? $_ : "Encode::$_" } @_ ) { - DEBUG and warn $mod; - for my $enc ( keys %ExtModule ) { - $ExtModule{$enc} eq $mod and $enc{$enc} = $mod; - } - } - } - return sort { lc $a cmp lc $b } - grep { !/^(?:Internal|Unicode|Guess)$/o } keys %enc; -} - -sub perlio_ok { - my $obj = ref( $_[0] ) ? $_[0] : find_encoding( $_[0] ); - $obj->can("perlio_ok") and return $obj->perlio_ok(); - return 0; # safety net -} - -sub define_encoding { - my $obj = shift; - my $name = shift; - $Encoding{$name} = $obj; - my $lc = lc($name); - define_alias( $lc => $obj ) unless $lc eq $name; - while (@_) { - my $alias = shift; - define_alias( $alias, $obj ); - } - return $obj; -} - -sub getEncoding { - my ( $class, $name, $skip_external ) = @_; - - defined($name) or return; - - $name =~ s/\s+//g; # https://rt.cpan.org/Ticket/Display.html?id=65796 - - ref($name) && $name->can('renew') and return $name; - exists $Encoding{$name} and return $Encoding{$name}; - my $lc = lc $name; - exists $Encoding{$lc} and return $Encoding{$lc}; - - my $oc = $class->find_alias($name); - defined($oc) and return $oc; - $lc ne $name and $oc = $class->find_alias($lc); - defined($oc) and return $oc; - - unless ($skip_external) { - if ( my $mod = $ExtModule{$name} || $ExtModule{$lc} ) { - $mod =~ s,::,/,g; - $mod .= '.pm'; - eval { require $mod; }; - exists $Encoding{$name} and return $Encoding{$name}; - } - } - return; -} - -sub find_encoding($;$) { - my ( $name, $skip_external ) = @_; - return __PACKAGE__->getEncoding( $name, $skip_external ); -} - -sub find_mime_encoding($;$) { - my ( $mime_name, $skip_external ) = @_; - eval { require Encode::MIME::Name; }; - $@ and return; - my $name = Encode::MIME::Name::get_encode_name( $mime_name ); - return find_encoding( $name, $skip_external ); -} - -sub resolve_alias($) { - my $obj = find_encoding(shift); - defined $obj and return $obj->name; - return; -} - -sub clone_encoding($) { - my $obj = find_encoding(shift); - ref $obj or return; - eval { require Storable }; - $@ and return; - return Storable::dclone($obj); -} - -sub encode($$;$) { - my ( $name, $string, $check ) = @_; - return undef unless defined $string; - $string .= ''; # stringify; - $check ||= 0; - unless ( defined $name ) { - require Carp; - Carp::croak("Encoding name should not be undef"); - } - my $enc = find_encoding($name); - unless ( defined $enc ) { - require Carp; - Carp::croak("Unknown encoding '$name'"); - } - # For Unicode, warnings need to be caught and re-issued at this level - # so that callers can disable utf8 warnings lexically. - my $octets; - if ( ref($enc) eq 'Encode::Unicode' ) { - my $warn = ''; - { - local $SIG{__WARN__} = sub { $warn = shift }; - $octets = $enc->encode( $string, $check ); - } - warnings::warnif('utf8', $warn) if length $warn; - } - else { - $octets = $enc->encode( $string, $check ); - } - $_[1] = $string if $check and !ref $check and !( $check & LEAVE_SRC() ); - return $octets; -} -*str2bytes = \&encode; - -sub decode($$;$) { - my ( $name, $octets, $check ) = @_; - return undef unless defined $octets; - $octets .= ''; - $check ||= 0; - my $enc = find_encoding($name); - unless ( defined $enc ) { - require Carp; - Carp::croak("Unknown encoding '$name'"); - } - # For Unicode, warnings need to be caught and re-issued at this level - # so that callers can disable utf8 warnings lexically. - my $string; - if ( ref($enc) eq 'Encode::Unicode' ) { - my $warn = ''; - { - local $SIG{__WARN__} = sub { $warn = shift }; - $string = $enc->decode( $octets, $check ); - } - warnings::warnif('utf8', $warn) if length $warn; - } - else { - $string = $enc->decode( $octets, $check ); - } - $_[1] = $octets if $check and !ref $check and !( $check & LEAVE_SRC() ); - return $string; -} -*bytes2str = \&decode; - -sub from_to($$$;$) { - my ( $string, $from, $to, $check ) = @_; - return undef unless defined $string; - $check ||= 0; - my $f = find_encoding($from); - unless ( defined $f ) { - require Carp; - Carp::croak("Unknown encoding '$from'"); - } - my $t = find_encoding($to); - unless ( defined $t ) { - require Carp; - Carp::croak("Unknown encoding '$to'"); - } - - # For Unicode, warnings need to be caught and re-issued at this level - # so that callers can disable utf8 warnings lexically. - my $uni; - if ( ref($f) eq 'Encode::Unicode' ) { - my $warn = ''; - { - local $SIG{__WARN__} = sub { $warn = shift }; - $uni = $f->decode($string); - } - warnings::warnif('utf8', $warn) if length $warn; - } - else { - $uni = $f->decode($string); - } - - if ( ref($t) eq 'Encode::Unicode' ) { - my $warn = ''; - { - local $SIG{__WARN__} = sub { $warn = shift }; - $_[0] = $string = $t->encode( $uni, $check ); - } - warnings::warnif('utf8', $warn) if length $warn; - } - else { - $_[0] = $string = $t->encode( $uni, $check ); - } - - return undef if ( $check && length($uni) ); - return defined( $_[0] ) ? length($string) : undef; -} - -sub encode_utf8($) { - my ($str) = @_; - return undef unless defined $str; - utf8::encode($str); - return $str; -} - -my $utf8enc; - -sub decode_utf8($;$) { - my ( $octets, $check ) = @_; - return undef unless defined $octets; - $octets .= ''; - $check ||= 0; - $utf8enc ||= find_encoding('utf8'); - my $string = $utf8enc->decode( $octets, $check ); - $_[0] = $octets if $check and !ref $check and !( $check & LEAVE_SRC() ); - return $string; -} - -# sub decode_utf8($;$) { -# my ( $str, $check ) = @_; -# return $str if is_utf8($str); -# if ($check) { -# return decode( "utf8", $str, $check ); -# } -# else { -# return decode( "utf8", $str ); -# return $str; -# } -# } - -predefine_encodings(1); - -# -# This is to restore %Encoding if really needed; -# - -sub predefine_encodings { - require Encode::Encoding; - no warnings 'redefine'; - my $use_xs = shift; - if ($ON_EBCDIC) { - - # was in Encode::UTF_EBCDIC - package Encode::UTF_EBCDIC; - push @Encode::UTF_EBCDIC::ISA, 'Encode::Encoding'; - *decode = sub { - my ( undef, $str, $chk ) = @_; - my $res = ''; - for ( my $i = 0 ; $i < length($str) ; $i++ ) { - $res .= - chr( - utf8::unicode_to_native( ord( substr( $str, $i, 1 ) ) ) - ); - } - $_[1] = '' if $chk; - return $res; - }; - *encode = sub { - my ( undef, $str, $chk ) = @_; - my $res = ''; - for ( my $i = 0 ; $i < length($str) ; $i++ ) { - $res .= - chr( - utf8::native_to_unicode( ord( substr( $str, $i, 1 ) ) ) - ); - } - $_[1] = '' if $chk; - return $res; - }; - $Encode::Encoding{Unicode} = - bless { Name => "UTF_EBCDIC" } => "Encode::UTF_EBCDIC"; - } - else { - - package Encode::Internal; - push @Encode::Internal::ISA, 'Encode::Encoding'; - *decode = sub { - my ( undef, $str, $chk ) = @_; - utf8::upgrade($str); - $_[1] = '' if $chk; - return $str; - }; - *encode = \&decode; - $Encode::Encoding{Unicode} = - bless { Name => "Internal" } => "Encode::Internal"; - } - { - # https://rt.cpan.org/Public/Bug/Display.html?id=103253 - package Encode::XS; - push @Encode::XS::ISA, 'Encode::Encoding'; - } - { - - # was in Encode::utf8 - package Encode::utf8; - push @Encode::utf8::ISA, 'Encode::Encoding'; - - # - if ($use_xs) { - Encode::DEBUG and warn __PACKAGE__, " XS on"; - *decode = \&decode_xs; - *encode = \&encode_xs; - } - else { - Encode::DEBUG and warn __PACKAGE__, " XS off"; - *decode = sub { - my ( undef, $octets, $chk ) = @_; - my $str = Encode::decode_utf8($octets); - if ( defined $str ) { - $_[1] = '' if $chk; - return $str; - } - return undef; - }; - *encode = sub { - my ( undef, $string, $chk ) = @_; - my $octets = Encode::encode_utf8($string); - $_[1] = '' if $chk; - return $octets; - }; - } - *cat_decode = sub { # ($obj, $dst, $src, $pos, $trm, $chk) - # currently ignores $chk - my ( undef, undef, undef, $pos, $trm ) = @_; - my ( $rdst, $rsrc, $rpos ) = \@_[ 1, 2, 3 ]; - use bytes; - if ( ( my $npos = index( $$rsrc, $trm, $pos ) ) >= 0 ) { - $$rdst .= - substr( $$rsrc, $pos, $npos - $pos + length($trm) ); - $$rpos = $npos + length($trm); - return 1; - } - $$rdst .= substr( $$rsrc, $pos ); - $$rpos = length($$rsrc); - return ''; - }; - $Encode::Encoding{utf8} = - bless { Name => "utf8" } => "Encode::utf8"; - $Encode::Encoding{"utf-8-strict"} = - bless { Name => "utf-8-strict", strict_utf8 => 1 } - => "Encode::utf8"; - } -} - -1; - -__END__ - -#line 1133 diff --git a/software/Slic3r-1.3.0.64bit/lib/Encode/Alias.pm b/software/Slic3r-1.3.0.64bit/lib/Encode/Alias.pm deleted file mode 100644 index 0ffda44d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Encode/Alias.pm +++ /dev/null @@ -1,294 +0,0 @@ -#line 1 "Encode/Alias.pm" -package Encode::Alias; -use strict; -use warnings; -no warnings 'redefine'; -our $VERSION = do { my @r = ( q$Revision: 2.21 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; -use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG}; - -use Exporter 'import'; - -# Public, encouraged API is exported by default - -our @EXPORT = - qw ( - define_alias - find_alias -); - -our @Alias; # ordered matching list -our %Alias; # cached known aliases - -sub find_alias { - require Encode; - my $class = shift; - my $find = shift; - unless ( exists $Alias{$find} ) { - $Alias{$find} = undef; # Recursion guard - for ( my $i = 0 ; $i < @Alias ; $i += 2 ) { - my $alias = $Alias[$i]; - my $val = $Alias[ $i + 1 ]; - my $new; - if ( ref($alias) eq 'Regexp' && $find =~ $alias ) { - DEBUG and warn "eval $val"; - $new = eval $val; - DEBUG and $@ and warn "$val, $@"; - } - elsif ( ref($alias) eq 'CODE' ) { - DEBUG and warn "$alias", "->", "($find)"; - $new = $alias->($find); - } - elsif ( lc($find) eq lc($alias) ) { - $new = $val; - } - if ( defined($new) ) { - next if $new eq $find; # avoid (direct) recursion on bugs - DEBUG and warn "$alias, $new"; - my $enc = - ( ref($new) ) ? $new : Encode::find_encoding($new); - if ($enc) { - $Alias{$find} = $enc; - last; - } - } - } - - # case insensitive search when canonical is not in all lowercase - # RT ticket #7835 - unless ( $Alias{$find} ) { - my $lcfind = lc($find); - for my $name ( keys %Encode::Encoding, keys %Encode::ExtModule ) - { - $lcfind eq lc($name) or next; - $Alias{$find} = Encode::find_encoding($name); - DEBUG and warn "$find => $name"; - } - } - } - if (DEBUG) { - my $name; - if ( my $e = $Alias{$find} ) { - $name = $e->name; - } - else { - $name = ""; - } - warn "find_alias($class, $find)->name = $name"; - } - return $Alias{$find}; -} - -sub define_alias { - while (@_) { - my $alias = shift; - my $name = shift; - unshift( @Alias, $alias => $name ) # newer one has precedence - if defined $alias; - if ( ref($alias) ) { - - # clear %Alias cache to allow overrides - my @a = keys %Alias; - for my $k (@a) { - if ( ref($alias) eq 'Regexp' && $k =~ $alias ) { - DEBUG and warn "delete \$Alias\{$k\}"; - delete $Alias{$k}; - } - elsif ( ref($alias) eq 'CODE' && $alias->($k) ) { - DEBUG and warn "delete \$Alias\{$k\}"; - delete $Alias{$k}; - } - } - } - elsif (defined $alias) { - DEBUG and warn "delete \$Alias\{$alias\}"; - delete $Alias{$alias}; - } - elsif (DEBUG) { - require Carp; - Carp::croak("undef \$alias"); - } - } -} - -# Allow latin-1 style names as well -# 0 1 2 3 4 5 6 7 8 9 10 -our @Latin2iso = ( 0, 1, 2, 3, 4, 9, 10, 13, 14, 15, 16 ); - -# Allow winlatin1 style names as well -our %Winlatin2cp = ( - 'latin1' => 1252, - 'latin2' => 1250, - 'cyrillic' => 1251, - 'greek' => 1253, - 'turkish' => 1254, - 'hebrew' => 1255, - 'arabic' => 1256, - 'baltic' => 1257, - 'vietnamese' => 1258, -); - -init_aliases(); - -sub undef_aliases { - @Alias = (); - %Alias = (); -} - -sub init_aliases { - require Encode; - undef_aliases(); - - # Try all-lower-case version should all else fails - define_alias( qr/^(.*)$/ => '"\L$1"' ); - - # UTF/UCS stuff - define_alias( qr/^(unicode-1-1-)?UTF-?7$/i => '"UTF-7"' ); - define_alias( qr/^UCS-?2-?LE$/i => '"UCS-2LE"' ); - define_alias( - qr/^UCS-?2-?(BE)?$/i => '"UCS-2BE"', - qr/^UCS-?4-?(BE|LE|)?$/i => 'uc("UTF-32$1")', - qr/^iso-10646-1$/i => '"UCS-2BE"' - ); - define_alias( - qr/^UTF-?(16|32)-?BE$/i => '"UTF-$1BE"', - qr/^UTF-?(16|32)-?LE$/i => '"UTF-$1LE"', - qr/^UTF-?(16|32)$/i => '"UTF-$1"', - ); - - # ASCII - define_alias( qr/^(?:US-?)ascii$/i => '"ascii"' ); - define_alias( 'C' => 'ascii' ); - define_alias( qr/\b(?:ISO[-_]?)?646(?:[-_]?US)?$/i => '"ascii"' ); - - # Allow variants of iso-8859-1 etc. - define_alias( qr/\biso[-_]?(\d+)[-_](\d+)$/i => '"iso-$1-$2"' ); - - # At least HP-UX has these. - define_alias( qr/\biso8859(\d+)$/i => '"iso-8859-$1"' ); - - # More HP stuff. - define_alias( - qr/\b(?:hp-)?(arabic|greek|hebrew|kana|roman|thai|turkish)8$/i => - '"${1}8"' ); - - # The Official name of ASCII. - define_alias( qr/\bANSI[-_]?X3\.4[-_]?1968$/i => '"ascii"' ); - - # This is a font issue, not an encoding issue. - # (The currency symbol of the Latin 1 upper half - # has been redefined as the euro symbol.) - define_alias( qr/^(.+)\@euro$/i => '"$1"' ); - - define_alias( qr/\b(?:iso[-_]?)?latin[-_]?(\d+)$/i => -'defined $Encode::Alias::Latin2iso[$1] ? "iso-8859-$Encode::Alias::Latin2iso[$1]" : undef' - ); - - define_alias( - qr/\bwin(latin[12]|cyrillic|baltic|greek|turkish| - hebrew|arabic|baltic|vietnamese)$/ix => - '"cp" . $Encode::Alias::Winlatin2cp{lc($1)}' - ); - - # Common names for non-latin preferred MIME names - define_alias( - 'ascii' => 'US-ascii', - 'cyrillic' => 'iso-8859-5', - 'arabic' => 'iso-8859-6', - 'greek' => 'iso-8859-7', - 'hebrew' => 'iso-8859-8', - 'thai' => 'iso-8859-11', - ); - # RT #20781 - define_alias(qr/\btis-?620\b/i => '"iso-8859-11"'); - - # At least AIX has IBM-NNN (surprisingly...) instead of cpNNN. - # And Microsoft has their own naming (again, surprisingly). - # And windows-* is registered in IANA! - define_alias( - qr/\b(?:cp|ibm|ms|windows)[-_ ]?(\d{2,4})$/i => '"cp$1"' ); - - # Sometimes seen with a leading zero. - # define_alias( qr/\bcp037\b/i => '"cp37"'); - - # Mac Mappings - # predefined in *.ucm; unneeded - # define_alias( qr/\bmacIcelandic$/i => '"macIceland"'); - define_alias( qr/^(?:x[_-])?mac[_-](.*)$/i => '"mac$1"' ); - # http://rt.cpan.org/Ticket/Display.html?id=36326 - define_alias( qr/^macintosh$/i => '"MacRoman"' ); - # https://rt.cpan.org/Ticket/Display.html?id=78125 - define_alias( qr/^macce$/i => '"MacCentralEurRoman"' ); - # Ououououou. gone. They are different! - # define_alias( qr/\bmacRomanian$/i => '"macRumanian"'); - - # Standardize on the dashed versions. - define_alias( qr/\bkoi8[\s\-_]*([ru])$/i => '"koi8-$1"' ); - - unless ($Encode::ON_EBCDIC) { - - # for Encode::CN - define_alias( qr/\beuc.*cn$/i => '"euc-cn"' ); - define_alias( qr/\bcn.*euc$/i => '"euc-cn"' ); - - # define_alias( qr/\bGB[- ]?(\d+)$/i => '"euc-cn"' ) - # CP936 doesn't have vendor-addon for GBK, so they're identical. - define_alias( qr/^gbk$/i => '"cp936"' ); - - # This fixes gb2312 vs. euc-cn confusion, practically - define_alias( qr/\bGB[-_ ]?2312(?!-?raw)/i => '"euc-cn"' ); - - # for Encode::JP - define_alias( qr/\bjis$/i => '"7bit-jis"' ); - define_alias( qr/\beuc.*jp$/i => '"euc-jp"' ); - define_alias( qr/\bjp.*euc$/i => '"euc-jp"' ); - define_alias( qr/\bujis$/i => '"euc-jp"' ); - define_alias( qr/\bshift.*jis$/i => '"shiftjis"' ); - define_alias( qr/\bsjis$/i => '"shiftjis"' ); - define_alias( qr/\bwindows-31j$/i => '"cp932"' ); - - # for Encode::KR - define_alias( qr/\beuc.*kr$/i => '"euc-kr"' ); - define_alias( qr/\bkr.*euc$/i => '"euc-kr"' ); - - # This fixes ksc5601 vs. euc-kr confusion, practically - define_alias( qr/(?:x-)?uhc$/i => '"cp949"' ); - define_alias( qr/(?:x-)?windows-949$/i => '"cp949"' ); - define_alias( qr/\bks_c_5601-1987$/i => '"cp949"' ); - - # for Encode::TW - define_alias( qr/\bbig-?5$/i => '"big5-eten"' ); - define_alias( qr/\bbig5-?et(?:en)?$/i => '"big5-eten"' ); - define_alias( qr/\btca[-_]?big5$/i => '"big5-eten"' ); - define_alias( qr/\bbig5-?hk(?:scs)?$/i => '"big5-hkscs"' ); - define_alias( qr/\bhk(?:scs)?[-_]?big5$/i => '"big5-hkscs"' ); - } - - # https://github.com/dankogai/p5-encode/issues/37 - define_alias(qr/cp65000/i => '"UTF-7"'); - define_alias(qr/cp65001/i => '"utf-8-strict"'); - - # utf8 is blessed :) - define_alias( qr/\bUTF-8$/i => '"utf-8-strict"' ); - - # At last, Map white space and _ to '-' - define_alias( qr/^(\S+)[\s_]+(.*)$/i => '"$1-$2"' ); -} - -1; -__END__ - -# TODO: HP-UX '8' encodings arabic8 greek8 hebrew8 kana8 thai8 turkish8 -# TODO: HP-UX '15' encodings japanese15 korean15 roi15 -# TODO: Cyrillic encoding ISO-IR-111 (useful?) -# TODO: Armenian encoding ARMSCII-8 -# TODO: Hebrew encoding ISO-8859-8-1 -# TODO: Thai encoding TCVN -# TODO: Vietnamese encodings VPS -# TODO: Mac Asian+African encodings: Arabic Armenian Bengali Burmese -# ChineseSimp ChineseTrad Devanagari Ethiopic ExtArabic -# Farsi Georgian Gujarati Gurmukhi Hebrew Japanese -# Kannada Khmer Korean Laotian Malayalam Mongolian -# Oriya Sinhalese Symbol Tamil Telugu Tibetan Vietnamese - -#line 395 - diff --git a/software/Slic3r-1.3.0.64bit/lib/Encode/Byte.pm b/software/Slic3r-1.3.0.64bit/lib/Encode/Byte.pm deleted file mode 100644 index abbc57cf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Encode/Byte.pm +++ /dev/null @@ -1,14 +0,0 @@ -#line 1 "Encode/Byte.pm" -package Encode::Byte; -use strict; -use warnings; -use Encode; -our $VERSION = do { my @r = ( q$Revision: 2.4 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -use XSLoader; -XSLoader::load( __PACKAGE__, $VERSION ); - -1; -__END__ - -#line 121 diff --git a/software/Slic3r-1.3.0.64bit/lib/Encode/Config.pm b/software/Slic3r-1.3.0.64bit/lib/Encode/Config.pm deleted file mode 100644 index 8385c5b9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Encode/Config.pm +++ /dev/null @@ -1,167 +0,0 @@ -#line 1 "Encode/Config.pm" -# -# Demand-load module list -# -package Encode::Config; -our $VERSION = do { my @r = ( q$Revision: 2.5 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -use strict; -use warnings; - -our %ExtModule = ( - - # Encode::Byte - #iso-8859-1 is in Encode.pm itself - 'iso-8859-2' => 'Encode::Byte', - 'iso-8859-3' => 'Encode::Byte', - 'iso-8859-4' => 'Encode::Byte', - 'iso-8859-5' => 'Encode::Byte', - 'iso-8859-6' => 'Encode::Byte', - 'iso-8859-7' => 'Encode::Byte', - 'iso-8859-8' => 'Encode::Byte', - 'iso-8859-9' => 'Encode::Byte', - 'iso-8859-10' => 'Encode::Byte', - 'iso-8859-11' => 'Encode::Byte', - 'iso-8859-13' => 'Encode::Byte', - 'iso-8859-14' => 'Encode::Byte', - 'iso-8859-15' => 'Encode::Byte', - 'iso-8859-16' => 'Encode::Byte', - 'koi8-f' => 'Encode::Byte', - 'koi8-r' => 'Encode::Byte', - 'koi8-u' => 'Encode::Byte', - 'viscii' => 'Encode::Byte', - 'cp424' => 'Encode::Byte', - 'cp437' => 'Encode::Byte', - 'cp737' => 'Encode::Byte', - 'cp775' => 'Encode::Byte', - 'cp850' => 'Encode::Byte', - 'cp852' => 'Encode::Byte', - 'cp855' => 'Encode::Byte', - 'cp856' => 'Encode::Byte', - 'cp857' => 'Encode::Byte', - 'cp858' => 'Encode::Byte', - 'cp860' => 'Encode::Byte', - 'cp861' => 'Encode::Byte', - 'cp862' => 'Encode::Byte', - 'cp863' => 'Encode::Byte', - 'cp864' => 'Encode::Byte', - 'cp865' => 'Encode::Byte', - 'cp866' => 'Encode::Byte', - 'cp869' => 'Encode::Byte', - 'cp874' => 'Encode::Byte', - 'cp1006' => 'Encode::Byte', - 'cp1250' => 'Encode::Byte', - 'cp1251' => 'Encode::Byte', - 'cp1252' => 'Encode::Byte', - 'cp1253' => 'Encode::Byte', - 'cp1254' => 'Encode::Byte', - 'cp1255' => 'Encode::Byte', - 'cp1256' => 'Encode::Byte', - 'cp1257' => 'Encode::Byte', - 'cp1258' => 'Encode::Byte', - 'AdobeStandardEncoding' => 'Encode::Byte', - 'MacArabic' => 'Encode::Byte', - 'MacCentralEurRoman' => 'Encode::Byte', - 'MacCroatian' => 'Encode::Byte', - 'MacCyrillic' => 'Encode::Byte', - 'MacFarsi' => 'Encode::Byte', - 'MacGreek' => 'Encode::Byte', - 'MacHebrew' => 'Encode::Byte', - 'MacIcelandic' => 'Encode::Byte', - 'MacRoman' => 'Encode::Byte', - 'MacRomanian' => 'Encode::Byte', - 'MacRumanian' => 'Encode::Byte', - 'MacSami' => 'Encode::Byte', - 'MacThai' => 'Encode::Byte', - 'MacTurkish' => 'Encode::Byte', - 'MacUkrainian' => 'Encode::Byte', - 'nextstep' => 'Encode::Byte', - 'hp-roman8' => 'Encode::Byte', - #'gsm0338' => 'Encode::Byte', - 'gsm0338' => 'Encode::GSM0338', - - # Encode::EBCDIC - 'cp37' => 'Encode::EBCDIC', - 'cp500' => 'Encode::EBCDIC', - 'cp875' => 'Encode::EBCDIC', - 'cp1026' => 'Encode::EBCDIC', - 'cp1047' => 'Encode::EBCDIC', - 'posix-bc' => 'Encode::EBCDIC', - - # Encode::Symbol - 'dingbats' => 'Encode::Symbol', - 'symbol' => 'Encode::Symbol', - 'AdobeSymbol' => 'Encode::Symbol', - 'AdobeZdingbat' => 'Encode::Symbol', - 'MacDingbats' => 'Encode::Symbol', - 'MacSymbol' => 'Encode::Symbol', - - # Encode::Unicode - 'UCS-2BE' => 'Encode::Unicode', - 'UCS-2LE' => 'Encode::Unicode', - 'UTF-16' => 'Encode::Unicode', - 'UTF-16BE' => 'Encode::Unicode', - 'UTF-16LE' => 'Encode::Unicode', - 'UTF-32' => 'Encode::Unicode', - 'UTF-32BE' => 'Encode::Unicode', - 'UTF-32LE' => 'Encode::Unicode', - 'UTF-7' => 'Encode::Unicode::UTF7', -); - -unless ( ord("A") == 193 ) { - %ExtModule = ( - %ExtModule, - 'euc-cn' => 'Encode::CN', - 'gb12345-raw' => 'Encode::CN', - 'gb2312-raw' => 'Encode::CN', - 'hz' => 'Encode::CN', - 'iso-ir-165' => 'Encode::CN', - 'cp936' => 'Encode::CN', - 'MacChineseSimp' => 'Encode::CN', - - '7bit-jis' => 'Encode::JP', - 'euc-jp' => 'Encode::JP', - 'iso-2022-jp' => 'Encode::JP', - 'iso-2022-jp-1' => 'Encode::JP', - 'jis0201-raw' => 'Encode::JP', - 'jis0208-raw' => 'Encode::JP', - 'jis0212-raw' => 'Encode::JP', - 'cp932' => 'Encode::JP', - 'MacJapanese' => 'Encode::JP', - 'shiftjis' => 'Encode::JP', - - 'euc-kr' => 'Encode::KR', - 'iso-2022-kr' => 'Encode::KR', - 'johab' => 'Encode::KR', - 'ksc5601-raw' => 'Encode::KR', - 'cp949' => 'Encode::KR', - 'MacKorean' => 'Encode::KR', - - 'big5-eten' => 'Encode::TW', - 'big5-hkscs' => 'Encode::TW', - 'cp950' => 'Encode::TW', - 'MacChineseTrad' => 'Encode::TW', - - #'big5plus' => 'Encode::HanExtra', - #'euc-tw' => 'Encode::HanExtra', - #'gb18030' => 'Encode::HanExtra', - - 'MIME-Header' => 'Encode::MIME::Header', - 'MIME-B' => 'Encode::MIME::Header', - 'MIME-Q' => 'Encode::MIME::Header', - - 'MIME-Header-ISO_2022_JP' => 'Encode::MIME::Header::ISO_2022_JP', - ); -} - -# -# Why not export ? to keep ConfigLocal Happy! -# -while ( my ( $enc, $mod ) = each %ExtModule ) { - $Encode::ExtModule{$enc} = $mod; -} - -1; -__END__ - -#line 171 diff --git a/software/Slic3r-1.3.0.64bit/lib/Encode/Encoding.pm b/software/Slic3r-1.3.0.64bit/lib/Encode/Encoding.pm deleted file mode 100644 index 0a75d432..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Encode/Encoding.pm +++ /dev/null @@ -1,78 +0,0 @@ -#line 1 "Encode/Encoding.pm" -package Encode::Encoding; - -# Base class for classes which implement encodings -use strict; -use warnings; -our $VERSION = do { my @r = ( q$Revision: 2.7 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -require Encode; - -sub DEBUG { 0 } - -sub Define { - my $obj = shift; - my $canonical = shift; - $obj = bless { Name => $canonical }, $obj unless ref $obj; - - # warn "$canonical => $obj\n"; - Encode::define_encoding( $obj, $canonical, @_ ); -} - -sub name { return shift->{'Name'} } - -sub mime_name{ - require Encode::MIME::Name; - return Encode::MIME::Name::get_mime_name(shift->name); -} - -# sub renew { return $_[0] } - -sub renew { - my $self = shift; - my $clone = bless {%$self} => ref($self); - $clone->{renewed}++; # so the caller can see it - DEBUG and warn $clone->{renewed}; - return $clone; -} - -sub renewed { return $_[0]->{renewed} || 0 } - -*new_sequence = \&renew; - -sub needs_lines { 0 } - -sub perlio_ok { - eval { require PerlIO::encoding }; - return $@ ? 0 : 1; -} - -# (Temporary|legacy) methods - -sub toUnicode { shift->decode(@_) } -sub fromUnicode { shift->encode(@_) } - -# -# Needs to be overloaded or just croak -# - -sub encode { - require Carp; - my $obj = shift; - my $class = ref($obj) ? ref($obj) : $obj; - Carp::croak( $class . "->encode() not defined!" ); -} - -sub decode { - require Carp; - my $obj = shift; - my $class = ref($obj) ? ref($obj) : $obj; - Carp::croak( $class . "->encode() not defined!" ); -} - -sub DESTROY { } - -1; -__END__ - -#line 361 diff --git a/software/Slic3r-1.3.0.64bit/lib/Encode/Locale.pm b/software/Slic3r-1.3.0.64bit/lib/Encode/Locale.pm deleted file mode 100644 index aaf6dedc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Encode/Locale.pm +++ /dev/null @@ -1,181 +0,0 @@ -#line 1 "Encode/Locale.pm" -package Encode::Locale; - -use strict; -our $VERSION = "1.05"; - -use base 'Exporter'; -our @EXPORT_OK = qw( - decode_argv env - $ENCODING_LOCALE $ENCODING_LOCALE_FS - $ENCODING_CONSOLE_IN $ENCODING_CONSOLE_OUT -); - -use Encode (); -use Encode::Alias (); - -our $ENCODING_LOCALE; -our $ENCODING_LOCALE_FS; -our $ENCODING_CONSOLE_IN; -our $ENCODING_CONSOLE_OUT; - -sub DEBUG () { 0 } - -sub _init { - if ($^O eq "MSWin32") { - unless ($ENCODING_LOCALE) { - # Try to obtain what the Windows ANSI code page is - eval { - unless (defined &GetACP) { - require Win32; - eval { Win32::GetACP() }; - *GetACP = sub { &Win32::GetACP } unless $@; - } - unless (defined &GetACP) { - require Win32::API; - Win32::API->Import('kernel32', 'int GetACP()'); - } - if (defined &GetACP) { - my $cp = GetACP(); - $ENCODING_LOCALE = "cp$cp" if $cp; - } - }; - } - - unless ($ENCODING_CONSOLE_IN) { - # only test one since set together - unless (defined &GetInputCP) { - eval { - require Win32; - eval { Win32::GetConsoleCP() }; - # manually "import" it since Win32->import refuses - *GetInputCP = sub { &Win32::GetConsoleCP } unless $@; - *GetOutputCP = sub { &Win32::GetConsoleOutputCP } unless $@; - }; - unless (defined &GetInputCP) { - eval { - # try Win32::Console module for codepage to use - require Win32::Console; - eval { Win32::Console::InputCP() }; - *GetInputCP = sub { &Win32::Console::InputCP } - unless $@; - *GetOutputCP = sub { &Win32::Console::OutputCP } - unless $@; - }; - } - unless (defined &GetInputCP) { - # final fallback - *GetInputCP = *GetOutputCP = sub { - # another fallback that could work is: - # reg query HKLM\System\CurrentControlSet\Control\Nls\CodePage /v ACP - ((qx(chcp) || '') =~ /^Active code page: (\d+)/) - ? $1 : (); - }; - } - } - my $cp = GetInputCP(); - $ENCODING_CONSOLE_IN = "cp$cp" if $cp; - $cp = GetOutputCP(); - $ENCODING_CONSOLE_OUT = "cp$cp" if $cp; - } - } - - unless ($ENCODING_LOCALE) { - eval { - require I18N::Langinfo; - $ENCODING_LOCALE = I18N::Langinfo::langinfo(I18N::Langinfo::CODESET()); - - # Workaround of Encode < v2.25. The "646" encoding alias was - # introduced in Encode-2.25, but we don't want to require that version - # quite yet. Should avoid the CPAN testers failure reported from - # openbsd-4.7/perl-5.10.0 combo. - $ENCODING_LOCALE = "ascii" if $ENCODING_LOCALE eq "646"; - - # https://rt.cpan.org/Ticket/Display.html?id=66373 - $ENCODING_LOCALE = "hp-roman8" if $^O eq "hpux" && $ENCODING_LOCALE eq "roman8"; - }; - $ENCODING_LOCALE ||= $ENCODING_CONSOLE_IN; - } - - if ($^O eq "darwin") { - $ENCODING_LOCALE_FS ||= "UTF-8"; - } - - # final fallback - $ENCODING_LOCALE ||= $^O eq "MSWin32" ? "cp1252" : "UTF-8"; - $ENCODING_LOCALE_FS ||= $ENCODING_LOCALE; - $ENCODING_CONSOLE_IN ||= $ENCODING_LOCALE; - $ENCODING_CONSOLE_OUT ||= $ENCODING_CONSOLE_IN; - - unless (Encode::find_encoding($ENCODING_LOCALE)) { - my $foundit; - if (lc($ENCODING_LOCALE) eq "gb18030") { - eval { - require Encode::HanExtra; - }; - if ($@) { - die "Need Encode::HanExtra to be installed to support locale codeset ($ENCODING_LOCALE), stopped"; - } - $foundit++ if Encode::find_encoding($ENCODING_LOCALE); - } - die "The locale codeset ($ENCODING_LOCALE) isn't one that perl can decode, stopped" - unless $foundit; - - } - - # use Data::Dump; ddx $ENCODING_LOCALE, $ENCODING_LOCALE_FS, $ENCODING_CONSOLE_IN, $ENCODING_CONSOLE_OUT; -} - -_init(); -Encode::Alias::define_alias(sub { - no strict 'refs'; - no warnings 'once'; - return ${"ENCODING_" . uc(shift)}; -}, "locale"); - -sub _flush_aliases { - no strict 'refs'; - for my $a (keys %Encode::Alias::Alias) { - if (defined ${"ENCODING_" . uc($a)}) { - delete $Encode::Alias::Alias{$a}; - warn "Flushed alias cache for $a" if DEBUG; - } - } -} - -sub reinit { - $ENCODING_LOCALE = shift; - $ENCODING_LOCALE_FS = shift; - $ENCODING_CONSOLE_IN = $ENCODING_LOCALE; - $ENCODING_CONSOLE_OUT = $ENCODING_LOCALE; - _init(); - _flush_aliases(); -} - -sub decode_argv { - die if defined wantarray; - for (@ARGV) { - $_ = Encode::decode(locale => $_, @_); - } -} - -sub env { - my $k = Encode::encode(locale => shift); - my $old = $ENV{$k}; - if (@_) { - my $v = shift; - if (defined $v) { - $ENV{$k} = Encode::encode(locale => $v); - } - else { - delete $ENV{$k}; - } - } - return Encode::decode(locale => $old) if defined wantarray; -} - -1; - -__END__ - -#line 374 diff --git a/software/Slic3r-1.3.0.64bit/lib/Encode/MIME/Name.pm b/software/Slic3r-1.3.0.64bit/lib/Encode/MIME/Name.pm deleted file mode 100644 index 52d4f4be..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Encode/MIME/Name.pm +++ /dev/null @@ -1,95 +0,0 @@ -#line 1 "Encode/MIME/Name.pm" -package Encode::MIME::Name; -use strict; -use warnings; -our $VERSION = do { my @r = ( q$Revision: 1.2 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -# NOTE: This table must be 1:1 mapping -our %MIME_NAME_OF = ( - 'AdobeStandardEncoding' => 'Adobe-Standard-Encoding', - 'AdobeSymbol' => 'Adobe-Symbol-Encoding', - 'ascii' => 'US-ASCII', - 'big5-hkscs' => 'Big5-HKSCS', - 'cp1026' => 'IBM1026', - 'cp1047' => 'IBM1047', - 'cp1250' => 'windows-1250', - 'cp1251' => 'windows-1251', - 'cp1252' => 'windows-1252', - 'cp1253' => 'windows-1253', - 'cp1254' => 'windows-1254', - 'cp1255' => 'windows-1255', - 'cp1256' => 'windows-1256', - 'cp1257' => 'windows-1257', - 'cp1258' => 'windows-1258', - 'cp37' => 'IBM037', - 'cp424' => 'IBM424', - 'cp437' => 'IBM437', - 'cp500' => 'IBM500', - 'cp775' => 'IBM775', - 'cp850' => 'IBM850', - 'cp852' => 'IBM852', - 'cp855' => 'IBM855', - 'cp857' => 'IBM857', - 'cp860' => 'IBM860', - 'cp861' => 'IBM861', - 'cp862' => 'IBM862', - 'cp863' => 'IBM863', - 'cp864' => 'IBM864', - 'cp865' => 'IBM865', - 'cp866' => 'IBM866', - 'cp869' => 'IBM869', - 'cp936' => 'GBK', - 'euc-jp' => 'EUC-JP', - 'euc-kr' => 'EUC-KR', - #'gb2312-raw' => 'GB2312', # no, you're wrong, I18N::Charset - 'hp-roman8' => 'hp-roman8', - 'hz' => 'HZ-GB-2312', - 'iso-2022-jp' => 'ISO-2022-JP', - 'iso-2022-jp-1' => 'ISO-2022-JP-1', - 'iso-2022-kr' => 'ISO-2022-KR', - 'iso-8859-1' => 'ISO-8859-1', - 'iso-8859-10' => 'ISO-8859-10', - 'iso-8859-13' => 'ISO-8859-13', - 'iso-8859-14' => 'ISO-8859-14', - 'iso-8859-15' => 'ISO-8859-15', - 'iso-8859-16' => 'ISO-8859-16', - 'iso-8859-2' => 'ISO-8859-2', - 'iso-8859-3' => 'ISO-8859-3', - 'iso-8859-4' => 'ISO-8859-4', - 'iso-8859-5' => 'ISO-8859-5', - 'iso-8859-6' => 'ISO-8859-6', - 'iso-8859-7' => 'ISO-8859-7', - 'iso-8859-8' => 'ISO-8859-8', - 'iso-8859-9' => 'ISO-8859-9', - #'jis0201-raw' => 'JIS_X0201', - #'jis0208-raw' => 'JIS_C6226-1983', - #'jis0212-raw' => 'JIS_X0212-1990', - 'koi8-r' => 'KOI8-R', - 'koi8-u' => 'KOI8-U', - #'ksc5601-raw' => 'KS_C_5601-1987', - 'shiftjis' => 'Shift_JIS', - 'UTF-16' => 'UTF-16', - 'UTF-16BE' => 'UTF-16BE', - 'UTF-16LE' => 'UTF-16LE', - 'UTF-32' => 'UTF-32', - 'UTF-32BE' => 'UTF-32BE', - 'UTF-32LE' => 'UTF-32LE', - 'UTF-7' => 'UTF-7', - 'utf-8-strict' => 'UTF-8', - 'viscii' => 'VISCII', -); - -# NOTE: %MIME_NAME_OF is still 1:1 mapping -our %ENCODE_NAME_OF = map { uc $MIME_NAME_OF{$_} => $_ } keys %MIME_NAME_OF; - -# Add additional 1:N mapping -$MIME_NAME_OF{'utf8'} = 'UTF-8'; - -sub get_mime_name($) { $MIME_NAME_OF{$_[0]} }; - -sub get_encode_name($) { $ENCODE_NAME_OF{uc $_[0]} }; - -1; -__END__ - -#line 103 diff --git a/software/Slic3r-1.3.0.64bit/lib/Errno.pm b/software/Slic3r-1.3.0.64bit/lib/Errno.pm deleted file mode 100644 index 637f6212..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Errno.pm +++ /dev/null @@ -1,2558 +0,0 @@ -#line 1 "Errno.pm" -# -*- buffer-read-only: t -*- -# -# This file is auto-generated. ***ANY*** changes here will be lost -# - -package Errno; -require Exporter; -use strict; - -use Config; -"$Config{'archname'}-$Config{'osvers'}" eq -"MSWin32-x64-multi-thread-10.0" or - die "Errno architecture (MSWin32-x64-multi-thread-10.0) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})"; - -our $VERSION = "1.25"; -$VERSION = eval $VERSION; -our @ISA = 'Exporter'; - -my %err; - -BEGIN { - %err = ( - ENUM_REGISTRY_SETTINGS => -2, - ENUM_CURRENT_SETTINGS => -1, - EXCEPTION_CONTINUE_EXECUTION => -1, - EC_ENABLEALL => 0, - ELF_CULTURE_LATIN => 0, - ELF_VERSION => 0, - EMARCH_ENC_I17_IMM41c_INST_WORD_POS_X => 0, - EMARCH_ENC_I17_IMM7B_VAL_POS_X => 0, - EMBDHLP_CREATENOW => 0, - EMBDHLP_INPROC_HANDLER => 0, - ERROR => 0, - ERROR_BIDI_STATUS_OK => 0, - ERROR_SEVERITY_SUCCESS => 0, - ERROR_SUCCESS => 0, - ESB_ENABLE_BOTH => 0, - ES_LEFT => 0, - EVENTLOG_FULL_INFO => 0, - EVENTLOG_SUCCESS => 0, - EWX_LOGOFF => 0, - EXCEPTION_CONTINUE_SEARCH => 0, - EXCEPTION_READ_FAULT => 0, - EXIT_SUCCESS => 0, - ExceptionContinueExecution => 0, - EC_LEFTMARGIN => 1, - EDD_GET_DEVICE_INTERFACE_NAME => 1, - EEInfoPreviousRecordsMissing => 1, - EFS_USE_RECOVERY_KEYS => 1, - EIMES_GETCOMPSTRATONCE => 1, - ELEMENT_STATUS_FULL => 1, - EMARCH_ENC_I17_IC_SIZE_X => 1, - EMARCH_ENC_I17_IMM41a_INST_WORD_X => 1, - EMARCH_ENC_I17_IMM41b_INST_WORD_X => 1, - EMARCH_ENC_I17_SIGN_SIZE_X => 1, - EMBDHLP_INPROC_SERVER => 1, - EMR_HEADER => 1, - EMR_MIN => 1, - EMSIS_COMPOSITIONSTRING => 1, - ENABLE_PROCESSED_INPUT => 1, - ENABLE_PROCESSED_OUTPUT => 1, - ENCRYPTION_FORMAT_DEFAULT => 1, - ENDSESSION_CLOSEAPP => 1, - ENLISTMENT_MAXIMUM_OPTION => 1, - ENLISTMENT_QUERY_INFORMATION => 1, - ENLISTMENT_SUPERIOR => 1, - EPERM => 1, - ERROR_INVALID_FUNCTION => 1, - ERROR_LABEL_UNREADABLE => 1, - ESB_DISABLE_LEFT => 1, - ESB_DISABLE_LTUP => 1, - ESB_DISABLE_UP => 1, - ES_CENTER => 1, - ES_SYSTEM_REQUIRED => 1, - EVENTLOG_ERROR_TYPE => 1, - EVENTLOG_SEQUENTIAL_READ => 1, - EVENTLOG_START_PAIRED_EVENT => 1, - EVENT_MIN => 1, - EVENT_SYSTEM_SOUND => 1, - EV_RXCHAR => 1, - EWX_SHUTDOWN => 1, - EXCEPTION_DEBUG_EVENT => 1, - EXCEPTION_EXECUTE_HANDLER => 1, - EXCEPTION_NONCONTINUABLE => 1, - EXCEPTION_WRITE_FAULT => 1, - EXIT_FAILURE => 1, - ExceptionContinueSearch => 1, - EC_QUERYWAITING => 2, - EC_RIGHTMARGIN => 2, - EDS_RAWMODE => 2, - EEInfoNextRecordsMissing => 2, - EIMES_CANCELCOMPSTRINFOCUS => 2, - ELEMENT_STATUS_IMPEXP => 2, - EMARCH_ENC_I17_IMM41c_INST_WORD_X => 2, - EMR_POLYBEZIER => 2, - ENABLE_LINE_INPUT => 2, - ENABLE_WRAP_AT_EOL_OUTPUT => 2, - ENLISTMENT_SET_INFORMATION => 2, - ENOENT => 2, - ENOFILE => 2, - ERROR_FILE_NOT_FOUND => 2, - ERROR_LABEL_QUESTIONABLE => 2, - ESB_DISABLE_DOWN => 2, - ESB_DISABLE_RIGHT => 2, - ESB_DISABLE_RTDN => 2, - ES_DISPLAY_REQUIRED => 2, - ES_RIGHT => 2, - ETO_OPAQUE => 2, - EVENPARITY => 2, - EVENTLOG_END_PAIRED_EVENT => 2, - EVENTLOG_SEEK_READ => 2, - EVENTLOG_WARNING_TYPE => 2, - EVENT_MODIFY_STATE => 2, - EVENT_SYSTEM_ALERT => 2, - EV_RXFLAG => 2, - EWX_REBOOT => 2, - EXCEPTION_UNWINDING => 2, - EXTEND_IEPORT => 2, - ExceptionNestedException => 2, - EMARCH_ENC_I17_IC_INST_WORD_X => 3, - EMARCH_ENC_I17_IMM5C_INST_WORD_X => 3, - EMARCH_ENC_I17_IMM7B_INST_WORD_X => 3, - EMARCH_ENC_I17_IMM9D_INST_WORD_X => 3, - EMARCH_ENC_I17_SIGN_INST_WORD_X => 3, - EMR_POLYGON => 3, - ERROR_PATH_NOT_FOUND => 3, - ESB_DISABLE_BOTH => 3, - ESRCH => 3, - EVENT_SYSTEM_FOREGROUND => 3, - ExceptionCollidedUnwind => 3, - EEInfoUseFileTime => 4, - EIMES_COMPLETECOMPSTRKILLFOCUS => 4, - EINTR => 4, - ELEMENT_STATUS_EXCEPT => 4, - ELF_VENDOR_SIZE => 4, - EMARCH_ENC_I17_IMM7B_INST_WORD_POS_X => 4, - EMR_POLYLINE => 4, - ENABLE_ECHO_INPUT => 4, - ENLISTMENT_RECOVER => 4, - ERROR_SLOT_NOT_PRESENT => 4, - ERROR_TOO_MANY_OPEN_FILES => 4, - ES_MULTILINE => 4, - ES_USER_PRESENT => 4, - ETO_CLIPPED => 4, - EVENTLOG_END_ALL_PAIRED_EVENTS => 4, - EVENTLOG_FORWARDS_READ => 4, - EVENTLOG_INFORMATION_TYPE => 4, - EVENT_SYSTEM_MENUSTART => 4, - EV_TXEMPTY => 4, - EWX_FORCE => 4, - EXCEPTION_EXIT_UNWIND => 4, - EXIT_THREAD_DEBUG_EVENT => 4, - EXPORT_PRIVATE_KEYS => 4, - ExceptionExecuteHandler => 4, - EDGE_RAISED => 5, - EIO => 5, - EMARCH_ENC_I17_IMM5C_SIZE_X => 5, - EMR_POLYBEZIERTO => 5, - ERROR_ACCESS_DENIED => 5, - EVENT_SYSTEM_MENUEND => 5, - EXIT_PROCESS_DEBUG_EVENT => 5, - EDGE_ETCHED => 6, - EMR_POLYLINETO => 6, - ENXIO => 6, - ERROR_INVALID_HANDLE => 6, - EVENT_SYSTEM_MENUPOPUPSTART => 6, - E2BIG => 7, - EMARCH_ENC_I17_IMM7B_SIZE_X => 7, - EMARCH_ENC_I17_IMM9D_VAL_POS_X => 7, - EMR_POLYPOLYLINE => 7, - ERROR_ARENA_TRASHED => 7, - EVENT_SYSTEM_MENUPOPUPEND => 7, - EC_DISABLE => 8, - EFSRPC_SECURE_ONLY => 8, - ELEMENT_STATUS_ACCESS => 8, - EMARCH_ENC_I17_IMM41b_SIZE_X => 8, - EMR_POLYPOLYGON => 8, - ENABLE_WINDOW_INPUT => 8, - ENLISTMENT_SUBORDINATE_RIGHTS => 8, - ENOEXEC => 8, - ERROR_DRIVE_NOT_INSTALLED => 8, - ERROR_NOT_ENOUGH_MEMORY => 8, - ES_UPPERCASE => 8, - EVENTLOG_AUDIT_SUCCESS => 8, - EVENTLOG_BACKWARDS_READ => 8, - EVENTLOG_PAIRED_EVENT_ACTIVE => 8, - EVENT_SYSTEM_CAPTURESTART => 8, - EV_CTS => 8, - EWX_POWEROFF => 8, - EXCEPTION_EXECUTE_FAULT => 8, - EXCEPTION_STACK_INVALID => 8, - EBADF => 9, - EDGE_BUMP => 9, - EMARCH_ENC_I17_IMM9D_SIZE_X => 9, - EMR_SETWINDOWEXTEX => 9, - ERROR_INVALID_BLOCK => 9, - EVENT_SYSTEM_CAPTUREEND => 9, - ECHILD => 10, - EDGE_SUNKEN => 10, - EMARCH_ENC_I17_IMM41a_SIZE_X => 10, - EMR_SETWINDOWORGEX => 10, - ERROR_BAD_ENVIRONMENT => 10, - EVENT_SYSTEM_MOVESIZESTART => 10, - EAGAIN => 11, - EEInfoGCCOM => 11, - EMR_SETVIEWPORTEXTEX => 11, - ENDDOC => 11, - ERROR_BAD_FORMAT => 11, - EVENT_SYSTEM_MOVESIZEEND => 11, - EEInfoGCFRS => 12, - EMARCH_ENC_I17_IC_INST_WORD_POS_X => 12, - EMR_SETVIEWPORTORGEX => 12, - ENOMEM => 12, - ERROR_INVALID_ACCESS => 12, - EVENT_SYSTEM_CONTEXTHELPSTART => 12, - EACCES => 13, - EMARCH_ENC_I17_IMM5C_INST_WORD_POS_X => 13, - EMR_SETBRUSHORGEX => 13, - ERROR_INVALID_DATA => 13, - EVENT_SYSTEM_CONTEXTHELPEND => 13, - EFAULT => 14, - EMARCH_ENC_I17_IMM41a_INST_WORD_POS_X => 14, - EMR_EOF => 14, - ERROR_OUTOFMEMORY => 14, - EVENT_SYSTEM_DRAGDROPSTART => 14, - EMR_SETPIXELV => 15, - ERROR_INVALID_DRIVE => 15, - EVENT_SYSTEM_DRAGDROPEND => 15, - EXCEPTION_MAXIMUM_PARAMETERS => 15, - EBUSY => 16, - ELEMENT_STATUS_EXENAB => 16, - EMARCH_ENC_I17_IMM5C_VAL_POS_X => 16, - EMR_SETMAPPERFLAGS => 16, - ENABLE_MOUSE_INPUT => 16, - ENLISTMENT_SUPERIOR_RIGHTS => 16, - ERROR_CURRENT_DIRECTORY => 16, - ERROR_TRAY_MALFUNCTION => 16, - ES_LOWERCASE => 16, - ETO_GLYPH_INDEX => 16, - EVENTLOG_AUDIT_FAILURE => 16, - EVENTLOG_PAIRED_EVENT_INACTIVE => 16, - EVENT_SYSTEM_DIALOGSTART => 16, - EV_DSR => 16, - EWX_FORCEIFHUNG => 16, - EXCEPTION_NESTED_CALL => 16, - EEXIST => 17, - EMR_SETMAPMODE => 17, - ERROR_INIT_STATUS_NEEDED => 17, - ERROR_NOT_SAME_DEVICE => 17, - EVENT_SYSTEM_DIALOGEND => 17, - EMARCH_ENC_I17_IMM9D_INST_WORD_POS_X => 18, - EMR_SETBKMODE => 18, - ERROR_NO_MORE_FILES => 18, - EVENT_SYSTEM_SCROLLINGSTART => 18, - EXDEV => 18, - EMR_SETPOLYFILLMODE => 19, - ENODEV => 19, - ERROR_WRITE_PROTECT => 19, - EVENT_SYSTEM_SCROLLINGEND => 19, - EMR_SETROP2 => 20, - ENOTDIR => 20, - ERROR_BAD_UNIT => 20, - EVENT_SYSTEM_SWITCHSTART => 20, - EISDIR => 21, - EMARCH_ENC_I17_IC_VAL_POS_X => 21, - EMR_SETSTRETCHBLTMODE => 21, - ERROR_NOT_READY => 21, - EVENT_SYSTEM_SWITCHEND => 21, - EINVAL => 22, - EMARCH_ENC_I17_IMM41a_VAL_POS_X => 22, - EMR_SETTEXTALIGN => 22, - ERROR_BAD_COMMAND => 22, - EVENT_SYSTEM_MINIMIZESTART => 22, - EMARCH_ENC_I17_IMM41c_SIZE_X => 23, - EMR_SETCOLORADJUSTMENT => 23, - ENFILE => 23, - ERROR_CRC => 23, - EVENT_SYSTEM_MINIMIZEEND => 23, - EMARCH_ENC_I17_IMM41b_INST_WORD_POS_X => 24, - EMFILE => 24, - EMR_SETTEXTCOLOR => 24, - ERROR_BAD_LENGTH => 24, - EMR_SETBKCOLOR => 25, - ENOTTY => 25, - ERROR_SEEK => 25, - EMR_OFFSETCLIPRGN => 26, - ERROR_NOT_DOS_DISK => 26, - EFBIG => 27, - EMARCH_ENC_I17_SIGN_INST_WORD_POS_X => 27, - EMR_MOVETOEX => 27, - ERROR_SECTOR_NOT_FOUND => 27, - EMR_SETMETARGN => 28, - ENABLEDUPLEX => 28, - ENOSPC => 28, - ERROR_OUT_OF_PAPER => 28, - EMR_EXCLUDECLIPRECT => 29, - ERROR_WRITE_FAULT => 29, - ESPIPE => 29, - EMR_INTERSECTCLIPRECT => 30, - EROFS => 30, - ERROR_READ_FAULT => 30, - EMLINK => 31, - EMR_SCALEVIEWPORTEXTEX => 31, - ENUMPAPERBINS => 31, - ERROR_GEN_FAILURE => 31, - ELEMENT_STATUS_INENAB => 32, - EMARCH_ENC_I17_IMM41b_VAL_POS_X => 32, - EMR_SCALEWINDOWEXTEX => 32, - ENABLE_INSERT_MODE => 32, - EPIPE => 32, - ERROR_SHARING_VIOLATION => 32, - ES_PASSWORD => 32, - EV_RLSD => 32, - EWX_QUICKRESOLVE => 32, - EXCEPTION_TARGET_UNWIND => 32, - EDOM => 33, - EMR_SAVEDC => 33, - EPSPRINTING => 33, - ERROR_LOCK_VIOLATION => 33, - EMR_RESTOREDC => 34, - ENUMPAPERMETRICS => 34, - ERANGE => 34, - ERROR_WRONG_DISK => 34, - EMR_SETWORLDTRANSFORM => 35, - EDEADLK => 36, - EDEADLOCK => 36, - EMR_MODIFYWORLDTRANSFORM => 36, - ERROR_SHARING_BUFFER_EXCEEDED => 36, - EMR_SELECTOBJECT => 37, - EMR_CREATEPEN => 38, - ENAMETOOLONG => 38, - ERROR_HANDLE_EOF => 38, - EMR_CREATEBRUSHINDIRECT => 39, - ENOLCK => 39, - ERROR_HANDLE_DISK_FULL => 39, - EMARCH_ENC_I17_IMM41c_VAL_POS_X => 40, - EMR_DELETEOBJECT => 40, - ENOSYS => 40, - EMR_ANGLEARC => 41, - ENOTEMPTY => 41, - EILSEQ => 42, - EMR_ELLIPSE => 42, - EMR_RECTANGLE => 43, - EMR_ROUNDRECT => 44, - EMR_ARC => 45, - EMR_CHORD => 46, - EMR_PIE => 47, - EMR_SELECTPALETTE => 48, - EMR_CREATEPALETTE => 49, - EMR_SETPALETTEENTRIES => 50, - ERROR_BIDI_NOT_SUPPORTED => 50, - ERROR_NOT_SUPPORTED => 50, - EMR_RESIZEPALETTE => 51, - ERROR_REM_NOT_LIST => 51, - EMR_REALIZEPALETTE => 52, - ERROR_DUP_NAME => 52, - EMR_EXTFLOODFILL => 53, - ERROR_BAD_NETPATH => 53, - EMR_LINETO => 54, - ERROR_NETWORK_BUSY => 54, - EMR_ARCTO => 55, - ERROR_DEV_NOT_EXIST => 55, - EMR_POLYDRAW => 56, - ERROR_TOO_MANY_CMDS => 56, - EMR_SETARCDIRECTION => 57, - ERROR_ADAP_HDW_ERR => 57, - EMR_SETMITERLIMIT => 58, - ERROR_BAD_NET_RESP => 58, - EMR_BEGINPATH => 59, - ERROR_UNEXP_NET_ERR => 59, - EMR_ENDPATH => 60, - ERROR_BAD_REM_ADAP => 60, - EMR_CLOSEFIGURE => 61, - ERROR_PRINTQ_FULL => 61, - EMR_FILLPATH => 62, - ERROR_NO_SPOOL_SPACE => 62, - EMARCH_ENC_I17_SIGN_VAL_POS_X => 63, - EMR_STROKEANDFILLPATH => 63, - ERROR_PRINT_CANCELLED => 63, - ELEMENT_STATUS_PRODUCT_DATA => 64, - EMR_STROKEPATH => 64, - ENABLE_QUICK_EDIT_MODE => 64, - ERROR_NETNAME_DELETED => 64, - ES_AUTOVSCROLL => 64, - ES_AWAYMODE_REQUIRED => 64, - EV_BREAK => 64, - EXCEPTION_COLLIDED_UNWIND => 64, - EMR_FLATTENPATH => 65, - ERROR_NETWORK_ACCESS_DENIED => 65, - EMR_WIDENPATH => 66, - ERROR_BAD_DEV_TYPE => 66, - EMR_SELECTCLIPPATH => 67, - ERROR_BAD_NET_NAME => 67, - EMR_ABORTPATH => 68, - ERROR_TOO_MANY_NAMES => 68, - ERROR_TOO_MANY_SESS => 69, - EMR_GDICOMMENT => 70, - ERROR_SHARING_PAUSED => 70, - EMR_FILLRGN => 71, - ERROR_REQ_NOT_ACCEP => 71, - EMR_FRAMERGN => 72, - ERROR_REDIR_PAUSED => 72, - EMR_INVERTRGN => 73, - EMR_PAINTRGN => 74, - EMR_EXTSELECTCLIPRGN => 75, - EMR_BITBLT => 76, - ECC_CMS_SHARED_INFO => 77, - EMR_STRETCHBLT => 77, - EMR_MASKBLT => 78, - EMR_PLGBLT => 79, - EMR_SETDIBITSTODEVICE => 80, - ERROR_FILE_EXISTS => 80, - EMR_STRETCHDIBITS => 81, - EMR_EXTCREATEFONTINDIRECTW => 82, - ERROR_CANNOT_MAKE => 82, - EMR_EXTTEXTOUTA => 83, - ERROR_FAIL_I24 => 83, - EMR_EXTTEXTOUTW => 84, - ERROR_OUT_OF_STRUCTURES => 84, - EMR_POLYBEZIER16 => 85, - ERROR_ALREADY_ASSIGNED => 85, - EMR_POLYGON16 => 86, - ERROR_INVALID_PASSWORD => 86, - EMR_POLYLINE16 => 87, - ERROR_INVALID_PARAMETER => 87, - EMR_POLYBEZIERTO16 => 88, - ERROR_NET_WRITE_FAULT => 88, - EMR_POLYLINETO16 => 89, - ERROR_NO_PROC_SLOTS => 89, - EMR_POLYPOLYLINE16 => 90, - EMR_POLYPOLYGON16 => 91, - EMR_POLYDRAW16 => 92, - EMR_CREATEMONOBRUSH => 93, - EMR_CREATEDIBPATTERNBRUSHPT => 94, - EMR_EXTCREATEPEN => 95, - EMR_POLYTEXTOUTA => 96, - EMR_POLYTEXTOUTW => 97, - EMR_SETICMMODE => 98, - EMR_CREATECOLORSPACE => 99, - EADDRINUSE => 100, - EMR_SETCOLORSPACE => 100, - ERROR_TOO_MANY_SEMAPHORES => 100, - EADDRNOTAVAIL => 101, - EMR_DELETECOLORSPACE => 101, - ERROR_EXCL_SEM_ALREADY_OWNED => 101, - EAFNOSUPPORT => 102, - EMR_GLSRECORD => 102, - ERROR_SEM_IS_SET => 102, - EXCEPTION_UNWIND => 102, - EALREADY => 103, - EMR_GLSBOUNDEDRECORD => 103, - ERROR_TOO_MANY_SEM_REQUESTS => 103, - EMR_PIXELFORMAT => 104, - ERROR_INVALID_AT_INTERRUPT_TIME => 104, - ECANCELED => 105, - EMR_RESERVED_105 => 105, - ERROR_SEM_OWNER_DIED => 105, - ECONNABORTED => 106, - EMR_RESERVED_106 => 106, - ERROR_SEM_USER_LIMIT => 106, - ECONNREFUSED => 107, - EMR_RESERVED_107 => 107, - ERROR_DISK_CHANGE => 107, - ECONNRESET => 108, - EMR_RESERVED_108 => 108, - ERROR_DRIVE_LOCKED => 108, - EDESTADDRREQ => 109, - EMR_RESERVED_109 => 109, - ERROR_BROKEN_PIPE => 109, - EHOSTUNREACH => 110, - EMR_RESERVED_110 => 110, - ERROR_OPEN_FAILED => 110, - EMR_COLORCORRECTPALETTE => 111, - ERROR_BUFFER_OVERFLOW => 111, - EINPROGRESS => 112, - EMR_SETICMPROFILEA => 112, - ERROR_DISK_FULL => 112, - EISCONN => 113, - EMR_SETICMPROFILEW => 113, - ERROR_NO_MORE_SEARCH_HANDLES => 113, - ELOOP => 114, - EMR_ALPHABLEND => 114, - ERROR_INVALID_TARGET_HANDLE => 114, - EMR_SETLAYOUT => 115, - EMSGSIZE => 115, - EMR_TRANSPARENTBLT => 116, - ENETDOWN => 116, - EMR_RESERVED_117 => 117, - ENETRESET => 117, - ERROR_INVALID_CATEGORY => 117, - EMR_GRADIENTFILL => 118, - ENETUNREACH => 118, - ERROR_INVALID_VERIFY_SWITCH => 118, - EMR_RESERVED_119 => 119, - ENOBUFS => 119, - ERROR_BAD_DRIVER_LEVEL => 119, - EMR_RESERVED_120 => 120, - ERROR_CALL_NOT_IMPLEMENTED => 120, - EMR_COLORMATCHTOTARGETW => 121, - ERROR_SEM_TIMEOUT => 121, - EMR_CREATECOLORSPACEW => 122, - EMR_MAX => 122, - ERROR_INSUFFICIENT_BUFFER => 122, - ENOPROTOOPT => 123, - ERROR_INVALID_NAME => 123, - ERROR_INVALID_LEVEL => 124, - ERROR_NO_VOLUME_LABEL => 125, - ENOTCONN => 126, - ERROR_MOD_NOT_FOUND => 126, - ERROR_PROC_NOT_FOUND => 127, - EC_ENABLEONE => 128, - ENABLE_EXTENDED_FLAGS => 128, - ENOTSOCK => 128, - ERROR_WAIT_NO_CHILDREN => 128, - ES_AUTOHSCROLL => 128, - ETO_RTLREADING => 128, - EV_ERR => 128, - ENOTSUP => 129, - ERROR_CHILD_NOT_COMPLETE => 129, - EOPNOTSUPP => 130, - ERROR_DIRECT_ACCESS_HANDLE => 130, - ERROR_NEGATIVE_SEEK => 131, - EOVERFLOW => 132, - ERROR_SEEK_ON_DEVICE => 132, - EOWNERDEAD => 133, - ERROR_IS_JOIN_TARGET => 133, - EPROTO => 134, - ERROR_IS_JOINED => 134, - EPROTONOSUPPORT => 135, - ERROR_IS_SUBSTED => 135, - EPROTOTYPE => 136, - ERROR_NOT_JOINED => 136, - ERROR_NOT_SUBSTED => 137, - ERROR_JOIN_TO_JOIN => 138, - ETIMEDOUT => 138, - ERROR_SUBST_TO_SUBST => 139, - ERROR_JOIN_TO_SUBST => 140, - EWOULDBLOCK => 140, - ERROR_SUBST_TO_JOIN => 141, - ERROR_BUSY_DRIVE => 142, - ERROR_SAME_DRIVE => 143, - ERROR_DIR_NOT_ROOT => 144, - ERROR_DIR_NOT_EMPTY => 145, - ERROR_IS_SUBST_PATH => 146, - ERROR_IS_JOIN_PATH => 147, - ERROR_PATH_BUSY => 148, - ERROR_IS_SUBST_TARGET => 149, - ERROR_SYSTEM_TRACE => 150, - ERROR_INVALID_EVENT_COUNT => 151, - ERROR_TOO_MANY_MUXWAITERS => 152, - ERROR_INVALID_LIST_FORMAT => 153, - ERROR_LABEL_TOO_LONG => 154, - ERROR_TOO_MANY_TCBS => 155, - ERROR_SIGNAL_REFUSED => 156, - ERROR_DISCARDED => 157, - ERROR_NOT_LOCKED => 158, - ERROR_BAD_THREADID_ADDR => 159, - ERROR_BAD_ARGUMENTS => 160, - ERROR_BAD_PATHNAME => 161, - ERROR_SIGNAL_PENDING => 162, - ERROR_MAX_THRDS_REACHED => 164, - ERROR_LOCK_FAILED => 167, - ERROR_BUSY => 170, - ERROR_CANCEL_VIOLATION => 173, - ERROR_ATOMIC_LOCKS_NOT_SUPPORTED => 174, - EM_GETSEL => 176, - EM_SETSEL => 177, - EM_GETRECT => 178, - EM_SETRECT => 179, - EM_SETRECTNP => 180, - ERROR_INVALID_SEGMENT_NUMBER => 180, - EM_SCROLL => 181, - EM_LINESCROLL => 182, - ERROR_INVALID_ORDINAL => 182, - EM_SCROLLCARET => 183, - ERROR_ALREADY_EXISTS => 183, - EM_GETMODIFY => 184, - EM_SETMODIFY => 185, - EM_GETLINECOUNT => 186, - ERROR_INVALID_FLAG_NUMBER => 186, - EM_LINEINDEX => 187, - ERROR_SEM_NOT_FOUND => 187, - EM_SETHANDLE => 188, - ERROR_INVALID_STARTING_CODESEG => 188, - EM_GETHANDLE => 189, - ERROR_INVALID_STACKSEG => 189, - EM_GETTHUMB => 190, - ERROR_INVALID_MODULETYPE => 190, - ERROR_INVALID_EXE_SIGNATURE => 191, - ERROR_EXE_MARKED_INVALID => 192, - EM_LINELENGTH => 193, - ERROR_BAD_EXE_FORMAT => 193, - EM_REPLACESEL => 194, - ERROR_ITERATED_DATA_EXCEEDS_64k => 194, - ERROR_INVALID_MINALLOCSIZE => 195, - EM_GETLINE => 196, - ERROR_DYNLINK_FROM_INVALID_RING => 196, - EM_LIMITTEXT => 197, - EM_SETLIMITTEXT => 197, - ERROR_IOPL_NOT_ENABLED => 197, - EM_CANUNDO => 198, - ERROR_INVALID_SEGDPL => 198, - EM_UNDO => 199, - ERROR_AUTODATASEG_EXCEEDS_64k => 199, - EM_FMTLINES => 200, - ERROR_RING2SEG_MUST_BE_MOVABLE => 200, - EM_LINEFROMCHAR => 201, - ERROR_RELOC_CHAIN_XEEDS_SEGLIM => 201, - ERROR_INFLOOP_IN_RELOC_CHAIN => 202, - EM_SETTABSTOPS => 203, - ERROR_ENVVAR_NOT_FOUND => 203, - EM_SETPASSWORDCHAR => 204, - EM_EMPTYUNDOBUFFER => 205, - ERROR_NO_SIGNAL_SENT => 205, - EM_GETFIRSTVISIBLELINE => 206, - ERROR_FILENAME_EXCED_RANGE => 206, - EM_SETREADONLY => 207, - ERROR_RING2_STACK_IN_USE => 207, - EM_SETWORDBREAKPROC => 208, - ERROR_META_EXPANSION_TOO_LONG => 208, - EM_GETWORDBREAKPROC => 209, - ERROR_INVALID_SIGNAL_NUMBER => 209, - EM_GETPASSWORDCHAR => 210, - ENABLE_DISABLE_AUTOSAVE => 210, - ERROR_THREAD_1_INACTIVE => 210, - EM_SETMARGINS => 211, - EM_GETMARGINS => 212, - ERROR_LOCKED => 212, - EXECUTE_OFFLINE_DIAGS => 212, - EM_GETLIMITTEXT => 213, - EM_POSFROMCHAR => 214, - ERROR_TOO_MANY_MODULES => 214, - EM_CHARFROMPOS => 215, - ERROR_NESTING_NOT_ALLOWED => 215, - EM_SETIMESTATUS => 216, - ENABLE_SMART => 216, - ERROR_EXE_MACHINE_TYPE_MISMATCH => 216, - EM_GETIMESTATUS => 217, - ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY => 217, - ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY => 218, - ENABLE_DISABLE_AUTO_OFFLINE => 219, - ERROR_FILE_CHECKED_OUT => 220, - ERROR_CHECKOUT_REQUIRED => 221, - ERROR_BAD_FILE_TYPE => 222, - ERROR_FILE_TOO_LARGE => 223, - ERROR_FORMS_AUTH_REQUIRED => 224, - ERROR_PIPE_LOCAL => 229, - ERROR_BAD_PIPE => 230, - ERROR_PIPE_BUSY => 231, - ERROR_NO_DATA => 232, - ERROR_PIPE_NOT_CONNECTED => 233, - ERROR_MORE_DATA => 234, - EASTEUROPE_CHARSET => 238, - ERROR_VC_DISCONNECTED => 240, - ERROR_INVALID_EA_NAME => 254, - ERROR_EA_LIST_INCONSISTENT => 255, - ENABLE_AUTO_POSITION => 256, - ENHANCED_KEY => 256, - EN_SETFOCUS => 256, - ES_NOHIDESEL => 256, - EV_RING => 256, - ERROR_NO_MORE_ITEMS => 259, - ERROR_CANNOT_COPY => 266, - ERROR_DIRECTORY => 267, - ERROR_EAS_DIDNT_FIT => 275, - ERROR_EA_FILE_CORRUPT => 276, - ERROR_EA_TABLE_FULL => 277, - ERROR_INVALID_EA_HANDLE => 278, - ERROR_EAS_NOT_SUPPORTED => 282, - ERROR_NOT_OWNER => 288, - ERROR_TOO_MANY_POSTS => 298, - ERROR_PARTIAL_COPY => 299, - ERROR_OPLOCK_NOT_GRANTED => 300, - ERROR_INVALID_OPLOCK_PROTOCOL => 301, - ERROR_DISK_TOO_FRAGMENTED => 302, - ERROR_DELETE_PENDING => 303, - ERROR_MR_MID_NOT_FOUND => 317, - ERROR_SCOPE_NOT_FOUND => 318, - ERROR_INVALID_ADDRESS => 487, - EN_KILLFOCUS => 512, - EV_PERR => 512, - EXTTEXTOUT => 512, - ERROR_ARITHMETIC_OVERFLOW => 534, - ERROR_PIPE_CONNECTED => 535, - ERROR_PIPE_LISTENING => 536, - ERROR_WAKE_SYSTEM => 730, - ERROR_WAIT_1 => 731, - ERROR_WAIT_2 => 732, - ERROR_WAIT_3 => 733, - ERROR_WAIT_63 => 734, - ERROR_ABANDONED_WAIT_0 => 735, - ERROR_ABANDONED_WAIT_63 => 736, - ERROR_USER_APC => 737, - ERROR_KERNEL_APC => 738, - ERROR_ALERTED => 739, - ENABLERELATIVEWIDTHS => 768, - EN_CHANGE => 768, - ENABLEPAIRKERNING => 769, - ERROR_EA_ACCESS_DENIED => 994, - ERROR_OPERATION_ABORTED => 995, - ERROR_IO_INCOMPLETE => 996, - ERROR_IO_PENDING => 997, - ERROR_NOACCESS => 998, - ERROR_SWAPERROR => 999, - ERROR_STACK_OVERFLOW => 1001, - ERROR_INVALID_MESSAGE => 1002, - ERROR_CAN_NOT_COMPLETE => 1003, - ERROR_INVALID_FLAGS => 1004, - ERROR_UNRECOGNIZED_VOLUME => 1005, - ERROR_FILE_INVALID => 1006, - ERROR_FULLSCREEN_MODE => 1007, - ERROR_NO_TOKEN => 1008, - ERROR_BADDB => 1009, - ERROR_BADKEY => 1010, - ERROR_CANTOPEN => 1011, - ERROR_CANTREAD => 1012, - ERROR_CANTWRITE => 1013, - ERROR_REGISTRY_RECOVERED => 1014, - ERROR_REGISTRY_CORRUPT => 1015, - ERROR_REGISTRY_IO_FAILED => 1016, - ERROR_NOT_REGISTRY_FILE => 1017, - ERROR_KEY_DELETED => 1018, - ERROR_NO_LOG_SPACE => 1019, - ERROR_KEY_HAS_CHILDREN => 1020, - ERROR_CHILD_MUST_BE_VOLATILE => 1021, - ERROR_NOTIFY_ENUM_DIR => 1022, - EN_UPDATE => 1024, - ES_OEMCONVERT => 1024, - ETO_NUMERICSLOCAL => 1024, - EV_RX80FULL => 1024, - ERROR_DEPENDENT_SERVICES_RUNNING => 1051, - ERROR_INVALID_SERVICE_CONTROL => 1052, - ERROR_SERVICE_REQUEST_TIMEOUT => 1053, - ERROR_SERVICE_NO_THREAD => 1054, - ERROR_SERVICE_DATABASE_LOCKED => 1055, - ERROR_SERVICE_ALREADY_RUNNING => 1056, - ERROR_INVALID_SERVICE_ACCOUNT => 1057, - ERROR_SERVICE_DISABLED => 1058, - ERROR_CIRCULAR_DEPENDENCY => 1059, - ERROR_SERVICE_DOES_NOT_EXIST => 1060, - ERROR_SERVICE_CANNOT_ACCEPT_CTRL => 1061, - ERROR_SERVICE_NOT_ACTIVE => 1062, - ERROR_FAILED_SERVICE_CONTROLLER_CONNECT => 1063, - ERROR_EXCEPTION_IN_SERVICE => 1064, - ERROR_DATABASE_DOES_NOT_EXIST => 1065, - ERROR_SERVICE_SPECIFIC_ERROR => 1066, - ERROR_PROCESS_ABORTED => 1067, - ERROR_SERVICE_DEPENDENCY_FAIL => 1068, - ERROR_SERVICE_LOGON_FAILED => 1069, - ERROR_SERVICE_START_HANG => 1070, - ERROR_INVALID_SERVICE_LOCK => 1071, - ERROR_SERVICE_MARKED_FOR_DELETE => 1072, - ERROR_SERVICE_EXISTS => 1073, - ERROR_ALREADY_RUNNING_LKG => 1074, - ERROR_SERVICE_DEPENDENCY_DELETED => 1075, - ERROR_BOOT_ALREADY_ACCEPTED => 1076, - ERROR_SERVICE_NEVER_STARTED => 1077, - ERROR_DUPLICATE_SERVICE_NAME => 1078, - ERROR_DIFFERENT_SERVICE_ACCOUNT => 1079, - ERROR_CANNOT_DETECT_DRIVER_FAILURE => 1080, - ERROR_CANNOT_DETECT_PROCESS_ABORT => 1081, - ERROR_NO_RECOVERY_PROGRAM => 1082, - ERROR_SERVICE_NOT_IN_EXE => 1083, - ERROR_NOT_SAFEBOOT_SERVICE => 1084, - ERROR_END_OF_MEDIA => 1100, - ERROR_FILEMARK_DETECTED => 1101, - ERROR_BEGINNING_OF_MEDIA => 1102, - ERROR_SETMARK_DETECTED => 1103, - ERROR_NO_DATA_DETECTED => 1104, - ERROR_PARTITION_FAILURE => 1105, - ERROR_INVALID_BLOCK_LENGTH => 1106, - ERROR_DEVICE_NOT_PARTITIONED => 1107, - ERROR_UNABLE_TO_LOCK_MEDIA => 1108, - ERROR_UNABLE_TO_UNLOAD_MEDIA => 1109, - ERROR_MEDIA_CHANGED => 1110, - ERROR_BUS_RESET => 1111, - ERROR_NO_MEDIA_IN_DRIVE => 1112, - ERROR_NO_UNICODE_TRANSLATION => 1113, - ERROR_DLL_INIT_FAILED => 1114, - ERROR_SHUTDOWN_IN_PROGRESS => 1115, - ERROR_NO_SHUTDOWN_IN_PROGRESS => 1116, - ERROR_IO_DEVICE => 1117, - ERROR_SERIAL_NO_DEVICE => 1118, - ERROR_IRQ_BUSY => 1119, - ERROR_MORE_WRITES => 1120, - ERROR_COUNTER_TIMEOUT => 1121, - ERROR_FLOPPY_ID_MARK_NOT_FOUND => 1122, - ERROR_FLOPPY_WRONG_CYLINDER => 1123, - ERROR_FLOPPY_UNKNOWN_ERROR => 1124, - ERROR_FLOPPY_BAD_REGISTERS => 1125, - ERROR_DISK_RECALIBRATE_FAILED => 1126, - ERROR_DISK_OPERATION_FAILED => 1127, - ERROR_DISK_RESET_FAILED => 1128, - ERROR_EOM_OVERFLOW => 1129, - ERROR_NOT_ENOUGH_SERVER_MEMORY => 1130, - ERROR_POSSIBLE_DEADLOCK => 1131, - ERROR_MAPPED_ALIGNMENT => 1132, - ERROR_SET_POWER_STATE_VETOED => 1140, - ERROR_SET_POWER_STATE_FAILED => 1141, - ERROR_TOO_MANY_LINKS => 1142, - ERROR_OLD_WIN_VERSION => 1150, - ERROR_APP_WRONG_OS => 1151, - ERROR_SINGLE_INSTANCE_APP => 1152, - ERROR_RMODE_APP => 1153, - ERROR_INVALID_DLL => 1154, - ERROR_NO_ASSOCIATION => 1155, - ERROR_DDE_FAIL => 1156, - ERROR_DLL_NOT_FOUND => 1157, - ERROR_NO_MORE_USER_HANDLES => 1158, - ERROR_MESSAGE_SYNC_ONLY => 1159, - ERROR_SOURCE_ELEMENT_EMPTY => 1160, - ERROR_DESTINATION_ELEMENT_FULL => 1161, - ERROR_ILLEGAL_ELEMENT_ADDRESS => 1162, - ERROR_MAGAZINE_NOT_PRESENT => 1163, - ERROR_DEVICE_REINITIALIZATION_NEEDED => 1164, - ERROR_DEVICE_REQUIRES_CLEANING => 1165, - ERROR_DEVICE_DOOR_OPEN => 1166, - ERROR_DEVICE_NOT_CONNECTED => 1167, - ERROR_NOT_FOUND => 1168, - ERROR_NO_MATCH => 1169, - ERROR_SET_NOT_FOUND => 1170, - ERROR_POINT_NOT_FOUND => 1171, - ERROR_NO_TRACKING_SERVICE => 1172, - ERROR_NO_VOLUME_ID => 1173, - ERROR_UNABLE_TO_REMOVE_REPLACED => 1175, - ERROR_UNABLE_TO_MOVE_REPLACEMENT => 1176, - ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 => 1177, - ERROR_JOURNAL_DELETE_IN_PROGRESS => 1178, - ERROR_JOURNAL_NOT_ACTIVE => 1179, - ERROR_POTENTIAL_FILE_FOUND => 1180, - ERROR_JOURNAL_ENTRY_DELETED => 1181, - ERROR_BAD_DEVICE => 1200, - ERROR_CONNECTION_UNAVAIL => 1201, - ERROR_DEVICE_ALREADY_REMEMBERED => 1202, - ERROR_NO_NET_OR_BAD_PATH => 1203, - ERROR_BAD_PROVIDER => 1204, - ERROR_CANNOT_OPEN_PROFILE => 1205, - ERROR_BAD_PROFILE => 1206, - ERROR_NOT_CONTAINER => 1207, - ERROR_EXTENDED_ERROR => 1208, - ERROR_INVALID_GROUPNAME => 1209, - ERROR_INVALID_COMPUTERNAME => 1210, - ERROR_INVALID_EVENTNAME => 1211, - ERROR_INVALID_DOMAINNAME => 1212, - ERROR_INVALID_SERVICENAME => 1213, - ERROR_INVALID_NETNAME => 1214, - ERROR_INVALID_SHARENAME => 1215, - ERROR_INVALID_PASSWORDNAME => 1216, - ERROR_INVALID_MESSAGENAME => 1217, - ERROR_INVALID_MESSAGEDEST => 1218, - ERROR_SESSION_CREDENTIAL_CONFLICT => 1219, - ERROR_REMOTE_SESSION_LIMIT_EXCEEDED => 1220, - ERROR_DUP_DOMAINNAME => 1221, - ERROR_NO_NETWORK => 1222, - ERROR_CANCELLED => 1223, - ERROR_USER_MAPPED_FILE => 1224, - ERROR_CONNECTION_REFUSED => 1225, - ERROR_GRACEFUL_DISCONNECT => 1226, - ERROR_ADDRESS_ALREADY_ASSOCIATED => 1227, - ERROR_ADDRESS_NOT_ASSOCIATED => 1228, - ERROR_CONNECTION_INVALID => 1229, - ERROR_CONNECTION_ACTIVE => 1230, - ERROR_NETWORK_UNREACHABLE => 1231, - ERROR_HOST_UNREACHABLE => 1232, - ERROR_PROTOCOL_UNREACHABLE => 1233, - ERROR_PORT_UNREACHABLE => 1234, - ERROR_REQUEST_ABORTED => 1235, - ERROR_CONNECTION_ABORTED => 1236, - ERROR_RETRY => 1237, - ERROR_CONNECTION_COUNT_LIMIT => 1238, - ERROR_LOGIN_TIME_RESTRICTION => 1239, - ERROR_LOGIN_WKSTA_RESTRICTION => 1240, - ERROR_INCORRECT_ADDRESS => 1241, - ERROR_ALREADY_REGISTERED => 1242, - ERROR_SERVICE_NOT_FOUND => 1243, - ERROR_NOT_AUTHENTICATED => 1244, - ERROR_NOT_LOGGED_ON => 1245, - ERROR_CONTINUE => 1246, - ERROR_ALREADY_INITIALIZED => 1247, - ERROR_NO_MORE_DEVICES => 1248, - ERROR_NO_SUCH_SITE => 1249, - ERROR_DOMAIN_CONTROLLER_EXISTS => 1250, - ERROR_ONLY_IF_CONNECTED => 1251, - ERROR_OVERRIDE_NOCHANGES => 1252, - ERROR_BAD_USER_PROFILE => 1253, - ERROR_NOT_SUPPORTED_ON_SBS => 1254, - ERROR_SERVER_SHUTDOWN_IN_PROGRESS => 1255, - ERROR_HOST_DOWN => 1256, - ERROR_NON_ACCOUNT_SID => 1257, - ERROR_NON_DOMAIN_SID => 1258, - ERROR_APPHELP_BLOCK => 1259, - ERROR_ACCESS_DISABLED_BY_POLICY => 1260, - ERROR_REG_NAT_CONSUMPTION => 1261, - ERROR_CSCSHARE_OFFLINE => 1262, - ERROR_PKINIT_FAILURE => 1263, - ERROR_SMARTCARD_SUBSYSTEM_FAILURE => 1264, - ERROR_DOWNGRADE_DETECTED => 1265, - ERROR_MACHINE_LOCKED => 1271, - ERROR_CALLBACK_SUPPLIED_INVALID_DATA => 1273, - ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED => 1274, - ERROR_DRIVER_BLOCKED => 1275, - ERROR_INVALID_IMPORT_OF_NON_DLL => 1276, - ERROR_ACCESS_DISABLED_WEBBLADE => 1277, - ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER => 1278, - ERROR_RECOVERY_FAILURE => 1279, - EN_ERRSPACE => 1280, - ERROR_ALREADY_FIBER => 1280, - EN_MAXTEXT => 1281, - ERROR_ALREADY_THREAD => 1281, - ERROR_STACK_BUFFER_OVERRUN => 1282, - ERROR_PARAMETER_QUOTA_EXCEEDED => 1283, - ERROR_DEBUGGER_INACTIVE => 1284, - ERROR_DELAY_LOAD_FAILED => 1285, - ERROR_VDM_DISALLOWED => 1286, - ERROR_UNIDENTIFIED_ERROR => 1287, - ERROR_NOT_ALL_ASSIGNED => 1300, - ERROR_SOME_NOT_MAPPED => 1301, - ERROR_NO_QUOTAS_FOR_ACCOUNT => 1302, - ERROR_LOCAL_USER_SESSION_KEY => 1303, - ERROR_NULL_LM_PASSWORD => 1304, - ERROR_UNKNOWN_REVISION => 1305, - ERROR_REVISION_MISMATCH => 1306, - ERROR_INVALID_OWNER => 1307, - ERROR_INVALID_PRIMARY_GROUP => 1308, - ERROR_NO_IMPERSONATION_TOKEN => 1309, - ERROR_CANT_DISABLE_MANDATORY => 1310, - ERROR_NO_LOGON_SERVERS => 1311, - ERROR_NO_SUCH_LOGON_SESSION => 1312, - ERROR_NO_SUCH_PRIVILEGE => 1313, - ERROR_PRIVILEGE_NOT_HELD => 1314, - ERROR_INVALID_ACCOUNT_NAME => 1315, - ERROR_USER_EXISTS => 1316, - ERROR_NO_SUCH_USER => 1317, - ERROR_GROUP_EXISTS => 1318, - ERROR_NO_SUCH_GROUP => 1319, - ERROR_MEMBER_IN_GROUP => 1320, - ERROR_MEMBER_NOT_IN_GROUP => 1321, - ERROR_LAST_ADMIN => 1322, - ERROR_WRONG_PASSWORD => 1323, - ERROR_ILL_FORMED_PASSWORD => 1324, - ERROR_PASSWORD_RESTRICTION => 1325, - ERROR_LOGON_FAILURE => 1326, - ERROR_ACCOUNT_RESTRICTION => 1327, - ERROR_INVALID_LOGON_HOURS => 1328, - ERROR_INVALID_WORKSTATION => 1329, - ERROR_PASSWORD_EXPIRED => 1330, - ERROR_ACCOUNT_DISABLED => 1331, - ERROR_NONE_MAPPED => 1332, - ERROR_TOO_MANY_LUIDS_REQUESTED => 1333, - ERROR_LUIDS_EXHAUSTED => 1334, - ERROR_INVALID_SUB_AUTHORITY => 1335, - ERROR_INVALID_ACL => 1336, - ERROR_INVALID_SID => 1337, - ERROR_INVALID_SECURITY_DESCR => 1338, - ERROR_BAD_INHERITANCE_ACL => 1340, - ERROR_SERVER_DISABLED => 1341, - ERROR_SERVER_NOT_DISABLED => 1342, - ERROR_INVALID_ID_AUTHORITY => 1343, - ERROR_ALLOTTED_SPACE_EXCEEDED => 1344, - ERROR_INVALID_GROUP_ATTRIBUTES => 1345, - ERROR_BAD_IMPERSONATION_LEVEL => 1346, - ERROR_CANT_OPEN_ANONYMOUS => 1347, - ERROR_BAD_VALIDATION_CLASS => 1348, - ERROR_BAD_TOKEN_TYPE => 1349, - ERROR_NO_SECURITY_ON_OBJECT => 1350, - ERROR_CANT_ACCESS_DOMAIN_INFO => 1351, - ERROR_INVALID_SERVER_STATE => 1352, - ERROR_INVALID_DOMAIN_STATE => 1353, - ERROR_INVALID_DOMAIN_ROLE => 1354, - ERROR_NO_SUCH_DOMAIN => 1355, - ERROR_DOMAIN_EXISTS => 1356, - ERROR_DOMAIN_LIMIT_EXCEEDED => 1357, - ERROR_INTERNAL_DB_CORRUPTION => 1358, - ERROR_INTERNAL_ERROR => 1359, - ERROR_GENERIC_NOT_MAPPED => 1360, - ERROR_BAD_DESCRIPTOR_FORMAT => 1361, - ERROR_NOT_LOGON_PROCESS => 1362, - ERROR_LOGON_SESSION_EXISTS => 1363, - ERROR_NO_SUCH_PACKAGE => 1364, - ERROR_BAD_LOGON_SESSION_STATE => 1365, - ERROR_LOGON_SESSION_COLLISION => 1366, - ERROR_INVALID_LOGON_TYPE => 1367, - ERROR_CANNOT_IMPERSONATE => 1368, - ERROR_RXACT_INVALID_STATE => 1369, - ERROR_RXACT_COMMIT_FAILURE => 1370, - ERROR_SPECIAL_ACCOUNT => 1371, - ERROR_SPECIAL_GROUP => 1372, - ERROR_SPECIAL_USER => 1373, - ERROR_MEMBERS_PRIMARY_GROUP => 1374, - ERROR_TOKEN_ALREADY_IN_USE => 1375, - ERROR_NO_SUCH_ALIAS => 1376, - ERROR_MEMBER_NOT_IN_ALIAS => 1377, - ERROR_MEMBER_IN_ALIAS => 1378, - ERROR_ALIAS_EXISTS => 1379, - ERROR_LOGON_NOT_GRANTED => 1380, - ERROR_TOO_MANY_SECRETS => 1381, - ERROR_SECRET_TOO_LONG => 1382, - ERROR_INTERNAL_DB_ERROR => 1383, - ERROR_TOO_MANY_CONTEXT_IDS => 1384, - ERROR_LOGON_TYPE_NOT_GRANTED => 1385, - ERROR_NT_CROSS_ENCRYPTION_REQUIRED => 1386, - ERROR_NO_SUCH_MEMBER => 1387, - ERROR_INVALID_MEMBER => 1388, - ERROR_TOO_MANY_SIDS => 1389, - ERROR_LM_CROSS_ENCRYPTION_REQUIRED => 1390, - ERROR_NO_INHERITANCE => 1391, - ERROR_FILE_CORRUPT => 1392, - ERROR_DISK_CORRUPT => 1393, - ERROR_NO_USER_SESSION_KEY => 1394, - ERROR_LICENSE_QUOTA_EXCEEDED => 1395, - ERROR_WRONG_TARGET_NAME => 1396, - ERROR_MUTUAL_AUTH_FAILED => 1397, - ERROR_TIME_SKEW => 1398, - ERROR_CURRENT_DOMAIN_NOT_ALLOWED => 1399, - ERROR_INVALID_WINDOW_HANDLE => 1400, - ERROR_INVALID_MENU_HANDLE => 1401, - ERROR_INVALID_CURSOR_HANDLE => 1402, - ERROR_INVALID_ACCEL_HANDLE => 1403, - ERROR_INVALID_HOOK_HANDLE => 1404, - ERROR_INVALID_DWP_HANDLE => 1405, - ERROR_TLW_WITH_WSCHILD => 1406, - ERROR_CANNOT_FIND_WND_CLASS => 1407, - ERROR_WINDOW_OF_OTHER_THREAD => 1408, - ERROR_HOTKEY_ALREADY_REGISTERED => 1409, - ERROR_CLASS_ALREADY_EXISTS => 1410, - ERROR_CLASS_DOES_NOT_EXIST => 1411, - ERROR_CLASS_HAS_WINDOWS => 1412, - ERROR_INVALID_INDEX => 1413, - ERROR_INVALID_ICON_HANDLE => 1414, - ERROR_PRIVATE_DIALOG_INDEX => 1415, - ERROR_LISTBOX_ID_NOT_FOUND => 1416, - ERROR_NO_WILDCARD_CHARACTERS => 1417, - ERROR_CLIPBOARD_NOT_OPEN => 1418, - ERROR_HOTKEY_NOT_REGISTERED => 1419, - ERROR_WINDOW_NOT_DIALOG => 1420, - ERROR_CONTROL_ID_NOT_FOUND => 1421, - ERROR_INVALID_COMBOBOX_MESSAGE => 1422, - ERROR_WINDOW_NOT_COMBOBOX => 1423, - ERROR_INVALID_EDIT_HEIGHT => 1424, - ERROR_DC_NOT_FOUND => 1425, - ERROR_INVALID_HOOK_FILTER => 1426, - ERROR_INVALID_FILTER_PROC => 1427, - ERROR_HOOK_NEEDS_HMOD => 1428, - ERROR_GLOBAL_ONLY_HOOK => 1429, - ERROR_JOURNAL_HOOK_SET => 1430, - ERROR_HOOK_NOT_INSTALLED => 1431, - ERROR_INVALID_LB_MESSAGE => 1432, - ERROR_SETCOUNT_ON_BAD_LB => 1433, - ERROR_LB_WITHOUT_TABSTOPS => 1434, - ERROR_DESTROY_OBJECT_OF_OTHER_THREAD => 1435, - ERROR_CHILD_WINDOW_MENU => 1436, - ERROR_NO_SYSTEM_MENU => 1437, - ERROR_INVALID_MSGBOX_STYLE => 1438, - ERROR_INVALID_SPI_VALUE => 1439, - ERROR_SCREEN_ALREADY_LOCKED => 1440, - ERROR_HWNDS_HAVE_DIFF_PARENT => 1441, - ERROR_NOT_CHILD_WINDOW => 1442, - ERROR_INVALID_GW_COMMAND => 1443, - ERROR_INVALID_THREAD_ID => 1444, - ERROR_NON_MDICHILD_WINDOW => 1445, - ERROR_POPUP_ALREADY_ACTIVE => 1446, - ERROR_NO_SCROLLBARS => 1447, - ERROR_INVALID_SCROLLBAR_RANGE => 1448, - ERROR_INVALID_SHOWWIN_COMMAND => 1449, - ERROR_NO_SYSTEM_RESOURCES => 1450, - ERROR_NONPAGED_SYSTEM_RESOURCES => 1451, - ERROR_PAGED_SYSTEM_RESOURCES => 1452, - ERROR_WORKING_SET_QUOTA => 1453, - ERROR_PAGEFILE_QUOTA => 1454, - ERROR_COMMITMENT_LIMIT => 1455, - ERROR_MENU_ITEM_NOT_FOUND => 1456, - ERROR_INVALID_KEYBOARD_HANDLE => 1457, - ERROR_HOOK_TYPE_NOT_ALLOWED => 1458, - ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION => 1459, - ERROR_TIMEOUT => 1460, - ERROR_INVALID_MONITOR_HANDLE => 1461, - ERROR_INCORRECT_SIZE => 1462, - ERROR_EVENTLOG_FILE_CORRUPT => 1500, - ERROR_EVENTLOG_CANT_START => 1501, - ERROR_LOG_FILE_FULL => 1502, - ERROR_EVENTLOG_FILE_CHANGED => 1503, - EN_HSCROLL => 1537, - EN_VSCROLL => 1538, - ERROR_INSTALL_SERVICE_FAILURE => 1601, - ERROR_INSTALL_USEREXIT => 1602, - ERROR_INSTALL_FAILURE => 1603, - ERROR_INSTALL_SUSPEND => 1604, - ERROR_UNKNOWN_PRODUCT => 1605, - ERROR_UNKNOWN_FEATURE => 1606, - ERROR_UNKNOWN_COMPONENT => 1607, - ERROR_UNKNOWN_PROPERTY => 1608, - ERROR_INVALID_HANDLE_STATE => 1609, - ERROR_BAD_CONFIGURATION => 1610, - ERROR_INDEX_ABSENT => 1611, - ERROR_INSTALL_SOURCE_ABSENT => 1612, - ERROR_INSTALL_PACKAGE_VERSION => 1613, - ERROR_PRODUCT_UNINSTALLED => 1614, - ERROR_BAD_QUERY_SYNTAX => 1615, - ERROR_INVALID_FIELD => 1616, - ERROR_DEVICE_REMOVED => 1617, - ERROR_INSTALL_ALREADY_RUNNING => 1618, - ERROR_INSTALL_PACKAGE_OPEN_FAILED => 1619, - ERROR_INSTALL_PACKAGE_INVALID => 1620, - ERROR_INSTALL_UI_FAILURE => 1621, - ERROR_INSTALL_LOG_FAILURE => 1622, - ERROR_INSTALL_LANGUAGE_UNSUPPORTED => 1623, - ERROR_INSTALL_TRANSFORM_FAILURE => 1624, - ERROR_INSTALL_PACKAGE_REJECTED => 1625, - ERROR_FUNCTION_NOT_CALLED => 1626, - ERROR_FUNCTION_FAILED => 1627, - ERROR_INVALID_TABLE => 1628, - ERROR_DATATYPE_MISMATCH => 1629, - ERROR_UNSUPPORTED_TYPE => 1630, - ERROR_CREATE_FAILED => 1631, - ERROR_INSTALL_TEMP_UNWRITABLE => 1632, - ERROR_INSTALL_PLATFORM_UNSUPPORTED => 1633, - ERROR_INSTALL_NOTUSED => 1634, - ERROR_PATCH_PACKAGE_OPEN_FAILED => 1635, - ERROR_PATCH_PACKAGE_INVALID => 1636, - ERROR_PATCH_PACKAGE_UNSUPPORTED => 1637, - ERROR_PRODUCT_VERSION => 1638, - ERROR_INVALID_COMMAND_LINE => 1639, - ERROR_INSTALL_REMOTE_DISALLOWED => 1640, - ERROR_SUCCESS_REBOOT_INITIATED => 1641, - ERROR_PATCH_TARGET_NOT_FOUND => 1642, - ERROR_PATCH_PACKAGE_REJECTED => 1643, - ERROR_INSTALL_TRANSFORM_REJECTED => 1644, - ERROR_INSTALL_REMOTE_PROHIBITED => 1645, - EPT_S_INVALID_ENTRY => 1751, - EPT_S_CANT_PERFORM_OP => 1752, - EPT_S_NOT_REGISTERED => 1753, - ERROR_INVALID_USER_BUFFER => 1784, - ERROR_UNRECOGNIZED_MEDIA => 1785, - ERROR_NO_TRUST_LSA_SECRET => 1786, - ERROR_NO_TRUST_SAM_ACCOUNT => 1787, - ERROR_TRUSTED_DOMAIN_FAILURE => 1788, - ERROR_TRUSTED_RELATIONSHIP_FAILURE => 1789, - ERROR_TRUST_FAILURE => 1790, - EN_ALIGN_LTR_EC => 1792, - ERROR_NETLOGON_NOT_STARTED => 1792, - EN_ALIGN_RTL_EC => 1793, - ERROR_ACCOUNT_EXPIRED => 1793, - ERROR_REDIRECTOR_HAS_OPEN_HANDLES => 1794, - ERROR_PRINTER_DRIVER_ALREADY_INSTALLED => 1795, - ERROR_UNKNOWN_PORT => 1796, - ERROR_UNKNOWN_PRINTER_DRIVER => 1797, - ERROR_UNKNOWN_PRINTPROCESSOR => 1798, - ERROR_INVALID_SEPARATOR_FILE => 1799, - ERROR_INVALID_PRIORITY => 1800, - ERROR_INVALID_PRINTER_NAME => 1801, - ERROR_PRINTER_ALREADY_EXISTS => 1802, - ERROR_INVALID_PRINTER_COMMAND => 1803, - ERROR_INVALID_DATATYPE => 1804, - ERROR_INVALID_ENVIRONMENT => 1805, - ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT => 1807, - ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT => 1808, - ERROR_NOLOGON_SERVER_TRUST_ACCOUNT => 1809, - ERROR_DOMAIN_TRUST_INCONSISTENT => 1810, - ERROR_SERVER_HAS_OPEN_HANDLES => 1811, - ERROR_RESOURCE_DATA_NOT_FOUND => 1812, - ERROR_RESOURCE_TYPE_NOT_FOUND => 1813, - ERROR_RESOURCE_NAME_NOT_FOUND => 1814, - ERROR_RESOURCE_LANG_NOT_FOUND => 1815, - ERROR_NOT_ENOUGH_QUOTA => 1816, - EPT_S_CANT_CREATE => 1899, - ERROR_INVALID_TIME => 1901, - ERROR_INVALID_FORM_NAME => 1902, - ERROR_INVALID_FORM_SIZE => 1903, - ERROR_ALREADY_WAITING => 1904, - ERROR_PRINTER_DELETED => 1905, - ERROR_INVALID_PRINTER_STATE => 1906, - ERROR_PASSWORD_MUST_CHANGE => 1907, - ERROR_DOMAIN_CONTROLLER_NOT_FOUND => 1908, - ERROR_ACCOUNT_LOCKED_OUT => 1909, - ERROR_NO_SITENAME => 1919, - ERROR_CANT_ACCESS_FILE => 1920, - ERROR_CANT_RESOLVE_FILENAME => 1921, - ERROR_KM_DRIVER_BLOCKED => 1930, - ERROR_CONTEXT_EXPIRED => 1931, - ERROR_PER_USER_TRUST_QUOTA_EXCEEDED => 1932, - ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED => 1933, - ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED => 1934, - ERROR_AUTHENTICATION_FIREWALL_FAILED => 1935, - ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED => 1936, - ERROR_INVALID_PIXEL_FORMAT => 2000, - ERROR_BAD_DRIVER => 2001, - ERROR_INVALID_WINDOW_STYLE => 2002, - ERROR_METAFILE_NOT_SUPPORTED => 2003, - ERROR_TRANSFORM_NOT_SUPPORTED => 2004, - ERROR_CLIPPING_NOT_SUPPORTED => 2005, - ERROR_INVALID_CMM => 2010, - ERROR_INVALID_PROFILE => 2011, - ERROR_TAG_NOT_FOUND => 2012, - ERROR_TAG_NOT_PRESENT => 2013, - ERROR_DUPLICATE_TAG => 2014, - ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE => 2015, - ERROR_PROFILE_NOT_FOUND => 2016, - ERROR_INVALID_COLORSPACE => 2017, - ERROR_ICM_NOT_ENABLED => 2018, - ERROR_DELETING_ICM_XFORM => 2019, - ERROR_INVALID_TRANSFORM => 2020, - ERROR_COLORSPACE_MISMATCH => 2021, - ERROR_INVALID_COLORINDEX => 2022, - ES_READONLY => 2048, - ETO_NUMERICSLATIN => 2048, - EV_EVENT1 => 2048, - ERROR_CONNECTED_OTHER_PASSWORD => 2108, - ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT => 2109, - ERROR_BAD_USERNAME => 2202, - ERROR_NOT_CONNECTED => 2250, - ERROR_OPEN_FILES => 2401, - ERROR_ACTIVE_CONNECTIONS => 2402, - ERROR_DEVICE_IN_USE => 2404, - ERROR_UNKNOWN_PRINT_MONITOR => 3000, - ERROR_PRINTER_DRIVER_IN_USE => 3001, - ERROR_SPOOL_FILE_NOT_FOUND => 3002, - ERROR_SPL_NO_STARTDOC => 3003, - ERROR_SPL_NO_ADDJOB => 3004, - ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED => 3005, - ERROR_PRINT_MONITOR_ALREADY_INSTALLED => 3006, - ERROR_INVALID_PRINT_MONITOR => 3007, - ERROR_PRINT_MONITOR_IN_USE => 3008, - ERROR_PRINTER_HAS_JOBS_QUEUED => 3009, - ERROR_SUCCESS_REBOOT_REQUIRED => 3010, - ERROR_SUCCESS_RESTART_REQUIRED => 3011, - ERROR_PRINTER_NOT_FOUND => 3012, - ERROR_PRINTER_DRIVER_WARNED => 3013, - ERROR_PRINTER_DRIVER_BLOCKED => 3014, - ERROR_WINS_INTERNAL => 4000, - ERROR_CAN_NOT_DEL_LOCAL_WINS => 4001, - ERROR_STATIC_INIT => 4002, - ERROR_INC_BACKUP => 4003, - ERROR_FULL_BACKUP => 4004, - ERROR_REC_NON_EXISTENT => 4005, - ERROR_RPL_NOT_ALLOWED => 4006, - ELEMENT_STATUS_LUN_VALID => 4096, - ES_WANTRETURN => 4096, - ETO_IGNORELANGUAGE => 4096, - EV_EVENT2 => 4096, - END_PATH => 4098, - EXT_DEVICE_CAPS => 4099, - ERROR_DHCP_ADDRESS_CONFLICT => 4100, - ENCAPSULATED_POSTSCRIPT => 4116, - ERROR_WMI_GUID_NOT_FOUND => 4200, - ERROR_WMI_INSTANCE_NOT_FOUND => 4201, - ERROR_WMI_ITEMID_NOT_FOUND => 4202, - ERROR_WMI_TRY_AGAIN => 4203, - ERROR_WMI_DP_NOT_FOUND => 4204, - ERROR_WMI_UNRESOLVED_INSTANCE_REF => 4205, - ERROR_WMI_ALREADY_ENABLED => 4206, - ERROR_WMI_GUID_DISCONNECTED => 4207, - ERROR_WMI_SERVER_UNAVAILABLE => 4208, - ERROR_WMI_DP_FAILED => 4209, - ERROR_WMI_INVALID_MOF => 4210, - ERROR_WMI_INVALID_REGINFO => 4211, - ERROR_WMI_ALREADY_DISABLED => 4212, - ERROR_WMI_READ_ONLY => 4213, - ERROR_WMI_SET_FAILURE => 4214, - ERROR_INVALID_MEDIA => 4300, - ERROR_INVALID_LIBRARY => 4301, - ERROR_INVALID_MEDIA_POOL => 4302, - ERROR_DRIVE_MEDIA_MISMATCH => 4303, - ERROR_MEDIA_OFFLINE => 4304, - ERROR_LIBRARY_OFFLINE => 4305, - ERROR_EMPTY => 4306, - ERROR_NOT_EMPTY => 4307, - ERROR_MEDIA_UNAVAILABLE => 4308, - ERROR_RESOURCE_DISABLED => 4309, - ERROR_INVALID_CLEANER => 4310, - ERROR_UNABLE_TO_CLEAN => 4311, - ERROR_OBJECT_NOT_FOUND => 4312, - ERROR_DATABASE_FAILURE => 4313, - ERROR_DATABASE_FULL => 4314, - ERROR_MEDIA_INCOMPATIBLE => 4315, - ERROR_RESOURCE_NOT_PRESENT => 4316, - ERROR_INVALID_OPERATION => 4317, - ERROR_MEDIA_NOT_AVAILABLE => 4318, - ERROR_DEVICE_NOT_AVAILABLE => 4319, - ERROR_REQUEST_REFUSED => 4320, - ERROR_INVALID_DRIVE_OBJECT => 4321, - ERROR_LIBRARY_FULL => 4322, - ERROR_MEDIUM_NOT_ACCESSIBLE => 4323, - ERROR_UNABLE_TO_LOAD_MEDIUM => 4324, - ERROR_UNABLE_TO_INVENTORY_DRIVE => 4325, - ERROR_UNABLE_TO_INVENTORY_SLOT => 4326, - ERROR_UNABLE_TO_INVENTORY_TRANSPORT => 4327, - ERROR_TRANSPORT_FULL => 4328, - ERROR_CONTROLLING_IEPORT => 4329, - ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA => 4330, - ERROR_CLEANER_SLOT_SET => 4331, - ERROR_CLEANER_SLOT_NOT_SET => 4332, - ERROR_CLEANER_CARTRIDGE_SPENT => 4333, - ERROR_UNEXPECTED_OMID => 4334, - ERROR_CANT_DELETE_LAST_ITEM => 4335, - ERROR_MESSAGE_EXCEEDS_MAX_SIZE => 4336, - ERROR_VOLUME_CONTAINS_SYS_FILES => 4337, - ERROR_INDIGENOUS_TYPE => 4338, - ERROR_NO_SUPPORTING_DRIVES => 4339, - ERROR_CLEANER_CARTRIDGE_INSTALLED => 4340, - ERROR_IEPORT_FULL => 4341, - ERROR_FILE_OFFLINE => 4350, - ERROR_REMOTE_STORAGE_NOT_ACTIVE => 4351, - ERROR_REMOTE_STORAGE_MEDIA_ERROR => 4352, - ERROR_NOT_A_REPARSE_POINT => 4390, - ERROR_REPARSE_ATTRIBUTE_CONFLICT => 4391, - ERROR_INVALID_REPARSE_DATA => 4392, - ERROR_REPARSE_TAG_INVALID => 4393, - ERROR_REPARSE_TAG_MISMATCH => 4394, - ERROR_VOLUME_NOT_SIS_ENABLED => 4500, - ERROR_DEPENDENT_RESOURCE_EXISTS => 5001, - ERROR_DEPENDENCY_NOT_FOUND => 5002, - ERROR_DEPENDENCY_ALREADY_EXISTS => 5003, - ERROR_RESOURCE_NOT_ONLINE => 5004, - ERROR_HOST_NODE_NOT_AVAILABLE => 5005, - ERROR_RESOURCE_NOT_AVAILABLE => 5006, - ERROR_RESOURCE_NOT_FOUND => 5007, - ERROR_SHUTDOWN_CLUSTER => 5008, - ERROR_CANT_EVICT_ACTIVE_NODE => 5009, - ERROR_OBJECT_ALREADY_EXISTS => 5010, - ERROR_OBJECT_IN_LIST => 5011, - ERROR_GROUP_NOT_AVAILABLE => 5012, - ERROR_GROUP_NOT_FOUND => 5013, - ERROR_GROUP_NOT_ONLINE => 5014, - ERROR_HOST_NODE_NOT_RESOURCE_OWNER => 5015, - ERROR_HOST_NODE_NOT_GROUP_OWNER => 5016, - ERROR_RESMON_CREATE_FAILED => 5017, - ERROR_RESMON_ONLINE_FAILED => 5018, - ERROR_RESOURCE_ONLINE => 5019, - ERROR_QUORUM_RESOURCE => 5020, - ERROR_NOT_QUORUM_CAPABLE => 5021, - ERROR_CLUSTER_SHUTTING_DOWN => 5022, - ERROR_INVALID_STATE => 5023, - ERROR_RESOURCE_PROPERTIES_STORED => 5024, - ERROR_NOT_QUORUM_CLASS => 5025, - ERROR_CORE_RESOURCE => 5026, - ERROR_QUORUM_RESOURCE_ONLINE_FAILED => 5027, - ERROR_QUORUMLOG_OPEN_FAILED => 5028, - ERROR_CLUSTERLOG_CORRUPT => 5029, - ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE => 5030, - ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE => 5031, - ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND => 5032, - ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE => 5033, - ERROR_QUORUM_OWNER_ALIVE => 5034, - ERROR_NETWORK_NOT_AVAILABLE => 5035, - ERROR_NODE_NOT_AVAILABLE => 5036, - ERROR_ALL_NODES_NOT_AVAILABLE => 5037, - ERROR_RESOURCE_FAILED => 5038, - ERROR_CLUSTER_INVALID_NODE => 5039, - ERROR_CLUSTER_NODE_EXISTS => 5040, - ERROR_CLUSTER_JOIN_IN_PROGRESS => 5041, - ERROR_CLUSTER_NODE_NOT_FOUND => 5042, - ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND => 5043, - ERROR_CLUSTER_NETWORK_EXISTS => 5044, - ERROR_CLUSTER_NETWORK_NOT_FOUND => 5045, - ERROR_CLUSTER_NETINTERFACE_EXISTS => 5046, - ERROR_CLUSTER_NETINTERFACE_NOT_FOUND => 5047, - ERROR_CLUSTER_INVALID_REQUEST => 5048, - ERROR_CLUSTER_INVALID_NETWORK_PROVIDER => 5049, - ERROR_CLUSTER_NODE_DOWN => 5050, - ERROR_CLUSTER_NODE_UNREACHABLE => 5051, - ERROR_CLUSTER_NODE_NOT_MEMBER => 5052, - ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS => 5053, - ERROR_CLUSTER_INVALID_NETWORK => 5054, - ERROR_CLUSTER_NODE_UP => 5056, - ERROR_CLUSTER_IPADDR_IN_USE => 5057, - ERROR_CLUSTER_NODE_NOT_PAUSED => 5058, - ERROR_CLUSTER_NO_SECURITY_CONTEXT => 5059, - ERROR_CLUSTER_NETWORK_NOT_INTERNAL => 5060, - ERROR_CLUSTER_NODE_ALREADY_UP => 5061, - ERROR_CLUSTER_NODE_ALREADY_DOWN => 5062, - ERROR_CLUSTER_NETWORK_ALREADY_ONLINE => 5063, - ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE => 5064, - ERROR_CLUSTER_NODE_ALREADY_MEMBER => 5065, - ERROR_CLUSTER_LAST_INTERNAL_NETWORK => 5066, - ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS => 5067, - ERROR_INVALID_OPERATION_ON_QUORUM => 5068, - ERROR_DEPENDENCY_NOT_ALLOWED => 5069, - ERROR_CLUSTER_NODE_PAUSED => 5070, - ERROR_NODE_CANT_HOST_RESOURCE => 5071, - ERROR_CLUSTER_NODE_NOT_READY => 5072, - ERROR_CLUSTER_NODE_SHUTTING_DOWN => 5073, - ERROR_CLUSTER_JOIN_ABORTED => 5074, - ERROR_CLUSTER_INCOMPATIBLE_VERSIONS => 5075, - ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED => 5076, - ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED => 5077, - ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND => 5078, - ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED => 5079, - ERROR_CLUSTER_RESNAME_NOT_FOUND => 5080, - ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED => 5081, - ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST => 5082, - ERROR_CLUSTER_DATABASE_SEQMISMATCH => 5083, - ERROR_RESMON_INVALID_STATE => 5084, - ERROR_CLUSTER_GUM_NOT_LOCKER => 5085, - ERROR_QUORUM_DISK_NOT_FOUND => 5086, - ERROR_DATABASE_BACKUP_CORRUPT => 5087, - ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT => 5088, - ERROR_RESOURCE_PROPERTY_UNCHANGEABLE => 5089, - ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE => 5890, - ERROR_CLUSTER_QUORUMLOG_NOT_FOUND => 5891, - ERROR_CLUSTER_MEMBERSHIP_HALT => 5892, - ERROR_CLUSTER_INSTANCE_ID_MISMATCH => 5893, - ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP => 5894, - ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH => 5895, - ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP => 5896, - ERROR_CLUSTER_PARAMETER_MISMATCH => 5897, - ERROR_NODE_CANNOT_BE_CLUSTERED => 5898, - ERROR_CLUSTER_WRONG_OS_VERSION => 5899, - ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME => 5900, - ERROR_CLUSCFG_ALREADY_COMMITTED => 5901, - ERROR_CLUSCFG_ROLLBACK_FAILED => 5902, - ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT => 5903, - ERROR_CLUSTER_OLD_VERSION => 5904, - ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME => 5905, - ERROR_ENCRYPTION_FAILED => 6000, - ERROR_DECRYPTION_FAILED => 6001, - ERROR_FILE_ENCRYPTED => 6002, - ERROR_NO_RECOVERY_POLICY => 6003, - ERROR_NO_EFS => 6004, - ERROR_WRONG_EFS => 6005, - ERROR_NO_USER_KEYS => 6006, - ERROR_FILE_NOT_ENCRYPTED => 6007, - ERROR_NOT_EXPORT_FORMAT => 6008, - ERROR_FILE_READ_ONLY => 6009, - ERROR_DIR_EFS_DISALLOWED => 6010, - ERROR_EFS_SERVER_NOT_TRUSTED => 6011, - ERROR_BAD_RECOVERY_POLICY => 6012, - ERROR_EFS_ALG_BLOB_TOO_BIG => 6013, - ERROR_VOLUME_NOT_SUPPORT_EFS => 6014, - ERROR_EFS_DISABLED => 6015, - ERROR_EFS_VERSION_NOT_SUPPORT => 6016, - ERROR_NO_BROWSER_SERVERS_FOUND => 6118, - ERROR_CTX_WINSTATION_NAME_INVALID => 7001, - ERROR_CTX_INVALID_PD => 7002, - ERROR_CTX_PD_NOT_FOUND => 7003, - ERROR_CTX_WD_NOT_FOUND => 7004, - ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY => 7005, - ERROR_CTX_SERVICE_NAME_COLLISION => 7006, - ERROR_CTX_CLOSE_PENDING => 7007, - ERROR_CTX_NO_OUTBUF => 7008, - ERROR_CTX_MODEM_INF_NOT_FOUND => 7009, - ERROR_CTX_INVALID_MODEMNAME => 7010, - ERROR_CTX_MODEM_RESPONSE_ERROR => 7011, - ERROR_CTX_MODEM_RESPONSE_TIMEOUT => 7012, - ERROR_CTX_MODEM_RESPONSE_NO_CARRIER => 7013, - ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE => 7014, - ERROR_CTX_MODEM_RESPONSE_BUSY => 7015, - ERROR_CTX_MODEM_RESPONSE_VOICE => 7016, - ERROR_CTX_TD_ERROR => 7017, - ERROR_CTX_WINSTATION_NOT_FOUND => 7022, - ERROR_CTX_WINSTATION_ALREADY_EXISTS => 7023, - ERROR_CTX_WINSTATION_BUSY => 7024, - ERROR_CTX_BAD_VIDEO_MODE => 7025, - ERROR_CTX_GRAPHICS_INVALID => 7035, - ERROR_CTX_LOGON_DISABLED => 7037, - ERROR_CTX_NOT_CONSOLE => 7038, - ERROR_CTX_CLIENT_QUERY_TIMEOUT => 7040, - ERROR_CTX_CONSOLE_DISCONNECT => 7041, - ERROR_CTX_CONSOLE_CONNECT => 7042, - ERROR_CTX_SHADOW_DENIED => 7044, - ERROR_CTX_WINSTATION_ACCESS_DENIED => 7045, - ERROR_CTX_INVALID_WD => 7049, - ERROR_CTX_SHADOW_INVALID => 7050, - ERROR_CTX_SHADOW_DISABLED => 7051, - ERROR_CTX_CLIENT_LICENSE_IN_USE => 7052, - ERROR_CTX_CLIENT_LICENSE_NOT_SET => 7053, - ERROR_CTX_LICENSE_NOT_AVAILABLE => 7054, - ERROR_CTX_LICENSE_CLIENT_INVALID => 7055, - ERROR_CTX_LICENSE_EXPIRED => 7056, - ERROR_CTX_SHADOW_NOT_RUNNING => 7057, - ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE => 7058, - ERROR_ACTIVATION_COUNT_EXCEEDED => 7059, - ELEMENT_STATUS_ID_VALID => 8192, - ES_NUMBER => 8192, - ETO_PDY => 8192, - ERROR_DS_NOT_INSTALLED => 8200, - ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY => 8201, - ERROR_DS_NO_ATTRIBUTE_OR_VALUE => 8202, - ERROR_DS_INVALID_ATTRIBUTE_SYNTAX => 8203, - ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED => 8204, - ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS => 8205, - ERROR_DS_BUSY => 8206, - ERROR_DS_UNAVAILABLE => 8207, - ERROR_DS_NO_RIDS_ALLOCATED => 8208, - ERROR_DS_NO_MORE_RIDS => 8209, - ERROR_DS_INCORRECT_ROLE_OWNER => 8210, - ERROR_DS_RIDMGR_INIT_ERROR => 8211, - ERROR_DS_OBJ_CLASS_VIOLATION => 8212, - ERROR_DS_CANT_ON_NON_LEAF => 8213, - ERROR_DS_CANT_ON_RDN => 8214, - ERROR_DS_CANT_MOD_OBJ_CLASS => 8215, - ERROR_DS_CROSS_DOM_MOVE_ERROR => 8216, - ERROR_DS_GC_NOT_AVAILABLE => 8217, - ERROR_SHARED_POLICY => 8218, - ERROR_POLICY_OBJECT_NOT_FOUND => 8219, - ERROR_POLICY_ONLY_IN_DS => 8220, - ERROR_PROMOTION_ACTIVE => 8221, - ERROR_NO_PROMOTION_ACTIVE => 8222, - ERROR_DS_OPERATIONS_ERROR => 8224, - ERROR_DS_PROTOCOL_ERROR => 8225, - ERROR_DS_TIMELIMIT_EXCEEDED => 8226, - ERROR_DS_SIZELIMIT_EXCEEDED => 8227, - ERROR_DS_ADMIN_LIMIT_EXCEEDED => 8228, - ERROR_DS_COMPARE_FALSE => 8229, - ERROR_DS_COMPARE_TRUE => 8230, - ERROR_DS_AUTH_METHOD_NOT_SUPPORTED => 8231, - ERROR_DS_STRONG_AUTH_REQUIRED => 8232, - ERROR_DS_INAPPROPRIATE_AUTH => 8233, - ERROR_DS_AUTH_UNKNOWN => 8234, - ERROR_DS_REFERRAL => 8235, - ERROR_DS_UNAVAILABLE_CRIT_EXTENSION => 8236, - ERROR_DS_CONFIDENTIALITY_REQUIRED => 8237, - ERROR_DS_INAPPROPRIATE_MATCHING => 8238, - ERROR_DS_CONSTRAINT_VIOLATION => 8239, - ERROR_DS_NO_SUCH_OBJECT => 8240, - ERROR_DS_ALIAS_PROBLEM => 8241, - ERROR_DS_INVALID_DN_SYNTAX => 8242, - ERROR_DS_IS_LEAF => 8243, - ERROR_DS_ALIAS_DEREF_PROBLEM => 8244, - ERROR_DS_UNWILLING_TO_PERFORM => 8245, - ERROR_DS_LOOP_DETECT => 8246, - ERROR_DS_NAMING_VIOLATION => 8247, - ERROR_DS_OBJECT_RESULTS_TOO_LARGE => 8248, - ERROR_DS_AFFECTS_MULTIPLE_DSAS => 8249, - ERROR_DS_SERVER_DOWN => 8250, - ERROR_DS_LOCAL_ERROR => 8251, - ERROR_DS_ENCODING_ERROR => 8252, - ERROR_DS_DECODING_ERROR => 8253, - ERROR_DS_FILTER_UNKNOWN => 8254, - ERROR_DS_PARAM_ERROR => 8255, - ERROR_DS_NOT_SUPPORTED => 8256, - ERROR_DS_NO_RESULTS_RETURNED => 8257, - ERROR_DS_CONTROL_NOT_FOUND => 8258, - ERROR_DS_CLIENT_LOOP => 8259, - ERROR_DS_REFERRAL_LIMIT_EXCEEDED => 8260, - ERROR_DS_SORT_CONTROL_MISSING => 8261, - ERROR_DS_OFFSET_RANGE_ERROR => 8262, - ERROR_DS_ROOT_MUST_BE_NC => 8301, - ERROR_DS_ADD_REPLICA_INHIBITED => 8302, - ERROR_DS_ATT_NOT_DEF_IN_SCHEMA => 8303, - ERROR_DS_MAX_OBJ_SIZE_EXCEEDED => 8304, - ERROR_DS_OBJ_STRING_NAME_EXISTS => 8305, - ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA => 8306, - ERROR_DS_RDN_DOESNT_MATCH_SCHEMA => 8307, - ERROR_DS_NO_REQUESTED_ATTS_FOUND => 8308, - ERROR_DS_USER_BUFFER_TO_SMALL => 8309, - ERROR_DS_ATT_IS_NOT_ON_OBJ => 8310, - ERROR_DS_ILLEGAL_MOD_OPERATION => 8311, - ERROR_DS_OBJ_TOO_LARGE => 8312, - ERROR_DS_BAD_INSTANCE_TYPE => 8313, - ERROR_DS_MASTERDSA_REQUIRED => 8314, - ERROR_DS_OBJECT_CLASS_REQUIRED => 8315, - ERROR_DS_MISSING_REQUIRED_ATT => 8316, - ERROR_DS_ATT_NOT_DEF_FOR_CLASS => 8317, - ERROR_DS_ATT_ALREADY_EXISTS => 8318, - ERROR_DS_CANT_ADD_ATT_VALUES => 8320, - ERROR_DS_SINGLE_VALUE_CONSTRAINT => 8321, - ERROR_DS_RANGE_CONSTRAINT => 8322, - ERROR_DS_ATT_VAL_ALREADY_EXISTS => 8323, - ERROR_DS_CANT_REM_MISSING_ATT => 8324, - ERROR_DS_CANT_REM_MISSING_ATT_VAL => 8325, - ERROR_DS_ROOT_CANT_BE_SUBREF => 8326, - ERROR_DS_NO_CHAINING => 8327, - ERROR_DS_NO_CHAINED_EVAL => 8328, - ERROR_DS_NO_PARENT_OBJECT => 8329, - ERROR_DS_PARENT_IS_AN_ALIAS => 8330, - ERROR_DS_CANT_MIX_MASTER_AND_REPS => 8331, - ERROR_DS_CHILDREN_EXIST => 8332, - ERROR_DS_OBJ_NOT_FOUND => 8333, - ERROR_DS_ALIASED_OBJ_MISSING => 8334, - ERROR_DS_BAD_NAME_SYNTAX => 8335, - ERROR_DS_ALIAS_POINTS_TO_ALIAS => 8336, - ERROR_DS_CANT_DEREF_ALIAS => 8337, - ERROR_DS_OUT_OF_SCOPE => 8338, - ERROR_DS_OBJECT_BEING_REMOVED => 8339, - ERROR_DS_CANT_DELETE_DSA_OBJ => 8340, - ERROR_DS_GENERIC_ERROR => 8341, - ERROR_DS_DSA_MUST_BE_INT_MASTER => 8342, - ERROR_DS_CLASS_NOT_DSA => 8343, - ERROR_DS_INSUFF_ACCESS_RIGHTS => 8344, - ERROR_DS_ILLEGAL_SUPERIOR => 8345, - ERROR_DS_ATTRIBUTE_OWNED_BY_SAM => 8346, - ERROR_DS_NAME_TOO_MANY_PARTS => 8347, - ERROR_DS_NAME_TOO_LONG => 8348, - ERROR_DS_NAME_VALUE_TOO_LONG => 8349, - ERROR_DS_NAME_UNPARSEABLE => 8350, - ERROR_DS_NAME_TYPE_UNKNOWN => 8351, - ERROR_DS_NOT_AN_OBJECT => 8352, - ERROR_DS_SEC_DESC_TOO_SHORT => 8353, - ERROR_DS_SEC_DESC_INVALID => 8354, - ERROR_DS_NO_DELETED_NAME => 8355, - ERROR_DS_SUBREF_MUST_HAVE_PARENT => 8356, - ERROR_DS_NCNAME_MUST_BE_NC => 8357, - ERROR_DS_CANT_ADD_SYSTEM_ONLY => 8358, - ERROR_DS_CLASS_MUST_BE_CONCRETE => 8359, - ERROR_DS_INVALID_DMD => 8360, - ERROR_DS_OBJ_GUID_EXISTS => 8361, - ERROR_DS_NOT_ON_BACKLINK => 8362, - ERROR_DS_NO_CROSSREF_FOR_NC => 8363, - ERROR_DS_SHUTTING_DOWN => 8364, - ERROR_DS_UNKNOWN_OPERATION => 8365, - ERROR_DS_INVALID_ROLE_OWNER => 8366, - ERROR_DS_COULDNT_CONTACT_FSMO => 8367, - ERROR_DS_CROSS_NC_DN_RENAME => 8368, - ERROR_DS_CANT_MOD_SYSTEM_ONLY => 8369, - ERROR_DS_REPLICATOR_ONLY => 8370, - ERROR_DS_OBJ_CLASS_NOT_DEFINED => 8371, - ERROR_DS_OBJ_CLASS_NOT_SUBCLASS => 8372, - ERROR_DS_NAME_REFERENCE_INVALID => 8373, - ERROR_DS_CROSS_REF_EXISTS => 8374, - ERROR_DS_CANT_DEL_MASTER_CROSSREF => 8375, - ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD => 8376, - ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX => 8377, - ERROR_DS_DUP_RDN => 8378, - ERROR_DS_DUP_OID => 8379, - ERROR_DS_DUP_MAPI_ID => 8380, - ERROR_DS_DUP_SCHEMA_ID_GUID => 8381, - ERROR_DS_DUP_LDAP_DISPLAY_NAME => 8382, - ERROR_DS_SEMANTIC_ATT_TEST => 8383, - ERROR_DS_SYNTAX_MISMATCH => 8384, - ERROR_DS_EXISTS_IN_MUST_HAVE => 8385, - ERROR_DS_EXISTS_IN_MAY_HAVE => 8386, - ERROR_DS_NONEXISTENT_MAY_HAVE => 8387, - ERROR_DS_NONEXISTENT_MUST_HAVE => 8388, - ERROR_DS_AUX_CLS_TEST_FAIL => 8389, - ERROR_DS_NONEXISTENT_POSS_SUP => 8390, - ERROR_DS_SUB_CLS_TEST_FAIL => 8391, - ERROR_DS_BAD_RDN_ATT_ID_SYNTAX => 8392, - ERROR_DS_EXISTS_IN_AUX_CLS => 8393, - ERROR_DS_EXISTS_IN_SUB_CLS => 8394, - ERROR_DS_EXISTS_IN_POSS_SUP => 8395, - ERROR_DS_RECALCSCHEMA_FAILED => 8396, - ERROR_DS_TREE_DELETE_NOT_FINISHED => 8397, - ERROR_DS_CANT_DELETE => 8398, - ERROR_DS_ATT_SCHEMA_REQ_ID => 8399, - ERROR_DS_BAD_ATT_SCHEMA_SYNTAX => 8400, - ERROR_DS_CANT_CACHE_ATT => 8401, - ERROR_DS_CANT_CACHE_CLASS => 8402, - ERROR_DS_CANT_REMOVE_ATT_CACHE => 8403, - ERROR_DS_CANT_REMOVE_CLASS_CACHE => 8404, - ERROR_DS_CANT_RETRIEVE_DN => 8405, - ERROR_DS_MISSING_SUPREF => 8406, - ERROR_DS_CANT_RETRIEVE_INSTANCE => 8407, - ERROR_DS_CODE_INCONSISTENCY => 8408, - ERROR_DS_DATABASE_ERROR => 8409, - ERROR_DS_GOVERNSID_MISSING => 8410, - ERROR_DS_MISSING_EXPECTED_ATT => 8411, - ERROR_DS_NCNAME_MISSING_CR_REF => 8412, - ERROR_DS_SECURITY_CHECKING_ERROR => 8413, - ERROR_DS_SCHEMA_NOT_LOADED => 8414, - ERROR_DS_SCHEMA_ALLOC_FAILED => 8415, - ERROR_DS_ATT_SCHEMA_REQ_SYNTAX => 8416, - ERROR_DS_GCVERIFY_ERROR => 8417, - ERROR_DS_DRA_SCHEMA_MISMATCH => 8418, - ERROR_DS_CANT_FIND_DSA_OBJ => 8419, - ERROR_DS_CANT_FIND_EXPECTED_NC => 8420, - ERROR_DS_CANT_FIND_NC_IN_CACHE => 8421, - ERROR_DS_CANT_RETRIEVE_CHILD => 8422, - ERROR_DS_SECURITY_ILLEGAL_MODIFY => 8423, - ERROR_DS_CANT_REPLACE_HIDDEN_REC => 8424, - ERROR_DS_BAD_HIERARCHY_FILE => 8425, - ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED => 8426, - ERROR_DS_CONFIG_PARAM_MISSING => 8427, - ERROR_DS_COUNTING_AB_INDICES_FAILED => 8428, - ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED => 8429, - ERROR_DS_INTERNAL_FAILURE => 8430, - ERROR_DS_UNKNOWN_ERROR => 8431, - ERROR_DS_ROOT_REQUIRES_CLASS_TOP => 8432, - ERROR_DS_REFUSING_FSMO_ROLES => 8433, - ERROR_DS_MISSING_FSMO_SETTINGS => 8434, - ERROR_DS_UNABLE_TO_SURRENDER_ROLES => 8435, - ERROR_DS_DRA_GENERIC => 8436, - ERROR_DS_DRA_INVALID_PARAMETER => 8437, - ERROR_DS_DRA_BUSY => 8438, - ERROR_DS_DRA_BAD_DN => 8439, - ERROR_DS_DRA_BAD_NC => 8440, - ERROR_DS_DRA_DN_EXISTS => 8441, - ERROR_DS_DRA_INTERNAL_ERROR => 8442, - ERROR_DS_DRA_INCONSISTENT_DIT => 8443, - ERROR_DS_DRA_CONNECTION_FAILED => 8444, - ERROR_DS_DRA_BAD_INSTANCE_TYPE => 8445, - ERROR_DS_DRA_OUT_OF_MEM => 8446, - ERROR_DS_DRA_MAIL_PROBLEM => 8447, - ERROR_DS_DRA_REF_ALREADY_EXISTS => 8448, - ERROR_DS_DRA_REF_NOT_FOUND => 8449, - ERROR_DS_DRA_OBJ_IS_REP_SOURCE => 8450, - ERROR_DS_DRA_DB_ERROR => 8451, - ERROR_DS_DRA_NO_REPLICA => 8452, - ERROR_DS_DRA_ACCESS_DENIED => 8453, - ERROR_DS_DRA_NOT_SUPPORTED => 8454, - ERROR_DS_DRA_RPC_CANCELLED => 8455, - ERROR_DS_DRA_SOURCE_DISABLED => 8456, - ERROR_DS_DRA_SINK_DISABLED => 8457, - ERROR_DS_DRA_NAME_COLLISION => 8458, - ERROR_DS_DRA_SOURCE_REINSTALLED => 8459, - ERROR_DS_DRA_MISSING_PARENT => 8460, - ERROR_DS_DRA_PREEMPTED => 8461, - ERROR_DS_DRA_ABANDON_SYNC => 8462, - ERROR_DS_DRA_SHUTDOWN => 8463, - ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET => 8464, - ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA => 8465, - ERROR_DS_DRA_EXTN_CONNECTION_FAILED => 8466, - ERROR_DS_INSTALL_SCHEMA_MISMATCH => 8467, - ERROR_DS_DUP_LINK_ID => 8468, - ERROR_DS_NAME_ERROR_RESOLVING => 8469, - ERROR_DS_NAME_ERROR_NOT_FOUND => 8470, - ERROR_DS_NAME_ERROR_NOT_UNIQUE => 8471, - ERROR_DS_NAME_ERROR_NO_MAPPING => 8472, - ERROR_DS_NAME_ERROR_DOMAIN_ONLY => 8473, - ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING => 8474, - ERROR_DS_CONSTRUCTED_ATT_MOD => 8475, - ERROR_DS_WRONG_OM_OBJ_CLASS => 8476, - ERROR_DS_DRA_REPL_PENDING => 8477, - ERROR_DS_DS_REQUIRED => 8478, - ERROR_DS_INVALID_LDAP_DISPLAY_NAME => 8479, - ERROR_DS_NON_BASE_SEARCH => 8480, - ERROR_DS_CANT_RETRIEVE_ATTS => 8481, - ERROR_DS_BACKLINK_WITHOUT_LINK => 8482, - ERROR_DS_EPOCH_MISMATCH => 8483, - ERROR_DS_SRC_NAME_MISMATCH => 8484, - ERROR_DS_SRC_AND_DST_NC_IDENTICAL => 8485, - ERROR_DS_DST_NC_MISMATCH => 8486, - ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC => 8487, - ERROR_DS_SRC_GUID_MISMATCH => 8488, - ERROR_DS_CANT_MOVE_DELETED_OBJECT => 8489, - ERROR_DS_PDC_OPERATION_IN_PROGRESS => 8490, - ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD => 8491, - ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION => 8492, - ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS => 8493, - ERROR_DS_NC_MUST_HAVE_NC_PARENT => 8494, - ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE => 8495, - ERROR_DS_DST_DOMAIN_NOT_NATIVE => 8496, - ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER => 8497, - ERROR_DS_CANT_MOVE_ACCOUNT_GROUP => 8498, - ERROR_DS_CANT_MOVE_RESOURCE_GROUP => 8499, - ERROR_DS_INVALID_SEARCH_FLAG => 8500, - ERROR_DS_NO_TREE_DELETE_ABOVE_NC => 8501, - ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE => 8502, - ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE => 8503, - ERROR_DS_SAM_INIT_FAILURE => 8504, - ERROR_DS_SENSITIVE_GROUP_VIOLATION => 8505, - ERROR_DS_CANT_MOD_PRIMARYGROUPID => 8506, - ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD => 8507, - ERROR_DS_NONSAFE_SCHEMA_CHANGE => 8508, - ERROR_DS_SCHEMA_UPDATE_DISALLOWED => 8509, - ERROR_DS_CANT_CREATE_UNDER_SCHEMA => 8510, - ERROR_DS_INSTALL_NO_SRC_SCH_VERSION => 8511, - ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE => 8512, - ERROR_DS_INVALID_GROUP_TYPE => 8513, - ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN => 8514, - ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN => 8515, - ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER => 8516, - ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER => 8517, - ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER => 8518, - ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER => 8519, - ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER => 8520, - ERROR_DS_HAVE_PRIMARY_MEMBERS => 8521, - ERROR_DS_STRING_SD_CONVERSION_FAILED => 8522, - ERROR_DS_NAMING_MASTER_GC => 8523, - ERROR_DS_DNS_LOOKUP_FAILURE => 8524, - ERROR_DS_COULDNT_UPDATE_SPNS => 8525, - ERROR_DS_CANT_RETRIEVE_SD => 8526, - ERROR_DS_KEY_NOT_UNIQUE => 8527, - ERROR_DS_WRONG_LINKED_ATT_SYNTAX => 8528, - ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD => 8529, - ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY => 8530, - ERROR_DS_CANT_START => 8531, - ERROR_DS_INIT_FAILURE => 8532, - ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION => 8533, - ERROR_DS_SOURCE_DOMAIN_IN_FOREST => 8534, - ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST => 8535, - ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED => 8536, - ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN => 8537, - ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER => 8538, - ERROR_DS_SRC_SID_EXISTS_IN_FOREST => 8539, - ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH => 8540, - ERROR_SAM_INIT_FAILURE => 8541, - ERROR_DS_DRA_SCHEMA_INFO_SHIP => 8542, - ERROR_DS_DRA_SCHEMA_CONFLICT => 8543, - ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT => 8544, - ERROR_DS_DRA_OBJ_NC_MISMATCH => 8545, - ERROR_DS_NC_STILL_HAS_DSAS => 8546, - ERROR_DS_GC_REQUIRED => 8547, - ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY => 8548, - ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS => 8549, - ERROR_DS_CANT_ADD_TO_GC => 8550, - ERROR_DS_NO_CHECKPOINT_WITH_PDC => 8551, - ERROR_DS_SOURCE_AUDITING_NOT_ENABLED => 8552, - ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC => 8553, - ERROR_DS_INVALID_NAME_FOR_SPN => 8554, - ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS => 8555, - ERROR_DS_UNICODEPWD_NOT_IN_QUOTES => 8556, - ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED => 8557, - ERROR_DS_MUST_BE_RUN_ON_DST_DC => 8558, - ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER => 8559, - ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ => 8560, - ERROR_DS_INIT_FAILURE_CONSOLE => 8561, - ERROR_DS_SAM_INIT_FAILURE_CONSOLE => 8562, - ERROR_DS_FOREST_VERSION_TOO_HIGH => 8563, - ERROR_DS_DOMAIN_VERSION_TOO_HIGH => 8564, - ERROR_DS_FOREST_VERSION_TOO_LOW => 8565, - ERROR_DS_DOMAIN_VERSION_TOO_LOW => 8566, - ERROR_DS_INCOMPATIBLE_VERSION => 8567, - ERROR_DS_LOW_DSA_VERSION => 8568, - ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN => 8569, - ERROR_DS_NOT_SUPPORTED_SORT_ORDER => 8570, - ERROR_DS_NAME_NOT_UNIQUE => 8571, - ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4 => 8572, - ERROR_DS_OUT_OF_VERSION_STORE => 8573, - ERROR_DS_INCOMPATIBLE_CONTROLS_USED => 8574, - ERROR_DS_NO_REF_DOMAIN => 8575, - ERROR_DS_RESERVED_LINK_ID => 8576, - ERROR_DS_LINK_ID_NOT_AVAILABLE => 8577, - ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER => 8578, - ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE => 8579, - ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC => 8580, - ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG => 8581, - ERROR_DS_MODIFYDN_WRONG_GRANDPARENT => 8582, - ERROR_DS_NAME_ERROR_TRUST_REFERRAL => 8583, - ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER => 8584, - ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD => 8585, - ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2 => 8586, - ERROR_DS_THREAD_LIMIT_EXCEEDED => 8587, - ERROR_DS_NOT_CLOSEST => 8588, - ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF => 8589, - ERROR_DS_SINGLE_USER_MODE_FAILED => 8590, - ERROR_DS_NTDSCRIPT_SYNTAX_ERROR => 8591, - ERROR_DS_NTDSCRIPT_PROCESS_ERROR => 8592, - ERROR_DS_DIFFERENT_REPL_EPOCHS => 8593, - ERROR_DS_DRS_EXTENSIONS_CHANGED => 8594, - ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR => 8595, - ERROR_DS_NO_MSDS_INTID => 8596, - ERROR_DS_DUP_MSDS_INTID => 8597, - ERROR_DS_EXISTS_IN_RDNATTID => 8598, - ERROR_DS_AUTHORIZATION_FAILED => 8599, - ERROR_DS_INVALID_SCRIPT => 8600, - ERROR_DS_REMOTE_CROSSREF_OP_FAILED => 8601, - ERROR_DS_CROSS_REF_BUSY => 8602, - ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN => 8603, - ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC => 8604, - ERROR_DS_DUPLICATE_ID_FOUND => 8605, - ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT => 8606, - ERROR_DS_GROUP_CONVERSION_ERROR => 8607, - ERROR_DS_CANT_MOVE_APP_BASIC_GROUP => 8608, - ERROR_DS_CANT_MOVE_APP_QUERY_GROUP => 8609, - ERROR_DS_ROLE_NOT_VERIFIED => 8610, - ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL => 8611, - ERROR_DS_DOMAIN_RENAME_IN_PROGRESS => 8612, - ERROR_DS_EXISTING_AD_CHILD_NC => 8613, - ERROR_DS_REPL_LIFETIME_EXCEEDED => 8614, - ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER => 8615, - ERROR_DS_LDAP_SEND_QUEUE_FULL => 8616, - ERROR_DS_DRA_OUT_SCHEDULE_WINDOW => 8617, - WSAEINTR => 10004, - WSAEBADF => 10009, - WSAEACCES => 10013, - WSAEFAULT => 10014, - WSAEINVAL => 10022, - WSAEMFILE => 10024, - WSAEWOULDBLOCK => 10035, - WSAEINPROGRESS => 10036, - WSAEALREADY => 10037, - WSAENOTSOCK => 10038, - WSAEDESTADDRREQ => 10039, - WSAEMSGSIZE => 10040, - WSAEPROTOTYPE => 10041, - WSAENOPROTOOPT => 10042, - WSAEPROTONOSUPPORT => 10043, - ESOCKTNOSUPPORT => 10044, - WSAESOCKTNOSUPPORT => 10044, - WSAEOPNOTSUPP => 10045, - EPFNOSUPPORT => 10046, - WSAEPFNOSUPPORT => 10046, - WSAEAFNOSUPPORT => 10047, - WSAEADDRINUSE => 10048, - WSAEADDRNOTAVAIL => 10049, - WSAENETDOWN => 10050, - WSAENETUNREACH => 10051, - WSAENETRESET => 10052, - WSAECONNABORTED => 10053, - WSAECONNRESET => 10054, - WSAENOBUFS => 10055, - WSAEISCONN => 10056, - WSAENOTCONN => 10057, - ESHUTDOWN => 10058, - WSAESHUTDOWN => 10058, - ETOOMANYREFS => 10059, - WSAETOOMANYREFS => 10059, - WSAETIMEDOUT => 10060, - WSAECONNREFUSED => 10061, - WSAELOOP => 10062, - WSAENAMETOOLONG => 10063, - WSAEHOSTDOWN => 10064, - WSAEHOSTUNREACH => 10065, - WSAENOTEMPTY => 10066, - EPROCLIM => 10067, - WSAEPROCLIM => 10067, - EUSERS => 10068, - WSAEUSERS => 10068, - EDQUOT => 10069, - WSAEDQUOT => 10069, - ESTALE => 10070, - WSAESTALE => 10070, - EREMOTE => 10071, - WSAEREMOTE => 10071, - WSAEDISCON => 10101, - WSAENOMORE => 10102, - WSAECANCELLED => 10103, - WSAEINVALIDPROCTABLE => 10104, - WSAEINVALIDPROVIDER => 10105, - WSAEPROVIDERFAILEDINIT => 10106, - WSAEREFUSED => 10112, - ERROR_BIDI_ERROR_BASE => 13000, - ERROR_IPSEC_QM_POLICY_EXISTS => 13000, - ERROR_BIDI_STATUS_WARNING => 13001, - ERROR_IPSEC_QM_POLICY_NOT_FOUND => 13001, - ERROR_BIDI_SCHEMA_READ_ONLY => 13002, - ERROR_IPSEC_QM_POLICY_IN_USE => 13002, - ERROR_BIDI_SERVER_OFFLINE => 13003, - ERROR_IPSEC_MM_POLICY_EXISTS => 13003, - ERROR_BIDI_DEVICE_OFFLINE => 13004, - ERROR_IPSEC_MM_POLICY_NOT_FOUND => 13004, - ERROR_BIDI_SCHEMA_NOT_SUPPORTED => 13005, - ERROR_IPSEC_MM_POLICY_IN_USE => 13005, - ERROR_IPSEC_MM_FILTER_EXISTS => 13006, - ERROR_IPSEC_MM_FILTER_NOT_FOUND => 13007, - ERROR_IPSEC_TRANSPORT_FILTER_EXISTS => 13008, - ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND => 13009, - ERROR_IPSEC_MM_AUTH_EXISTS => 13010, - ERROR_IPSEC_MM_AUTH_NOT_FOUND => 13011, - ERROR_IPSEC_MM_AUTH_IN_USE => 13012, - ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND => 13013, - ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND => 13014, - ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND => 13015, - ERROR_IPSEC_TUNNEL_FILTER_EXISTS => 13016, - ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND => 13017, - ERROR_IPSEC_MM_FILTER_PENDING_DELETION => 13018, - ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION => 13019, - ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION => 13020, - ERROR_IPSEC_MM_POLICY_PENDING_DELETION => 13021, - ERROR_IPSEC_MM_AUTH_PENDING_DELETION => 13022, - ERROR_IPSEC_QM_POLICY_PENDING_DELETION => 13023, - ERROR_IPSEC_IKE_NEG_STATUS_BEGIN => 13800, - ERROR_IPSEC_IKE_AUTH_FAIL => 13801, - ERROR_IPSEC_IKE_ATTRIB_FAIL => 13802, - ERROR_IPSEC_IKE_NEGOTIATION_PENDING => 13803, - ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR => 13804, - ERROR_IPSEC_IKE_TIMED_OUT => 13805, - ERROR_IPSEC_IKE_NO_CERT => 13806, - ERROR_IPSEC_IKE_SA_DELETED => 13807, - ERROR_IPSEC_IKE_SA_REAPED => 13808, - ERROR_IPSEC_IKE_MM_ACQUIRE_DROP => 13809, - ERROR_IPSEC_IKE_QM_ACQUIRE_DROP => 13810, - ERROR_IPSEC_IKE_QUEUE_DROP_MM => 13811, - ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM => 13812, - ERROR_IPSEC_IKE_DROP_NO_RESPONSE => 13813, - ERROR_IPSEC_IKE_MM_DELAY_DROP => 13814, - ERROR_IPSEC_IKE_QM_DELAY_DROP => 13815, - ERROR_IPSEC_IKE_ERROR => 13816, - ERROR_IPSEC_IKE_CRL_FAILED => 13817, - ERROR_IPSEC_IKE_INVALID_KEY_USAGE => 13818, - ERROR_IPSEC_IKE_INVALID_CERT_TYPE => 13819, - ERROR_IPSEC_IKE_NO_PRIVATE_KEY => 13820, - ERROR_IPSEC_IKE_DH_FAIL => 13822, - ERROR_IPSEC_IKE_INVALID_HEADER => 13824, - ERROR_IPSEC_IKE_NO_POLICY => 13825, - ERROR_IPSEC_IKE_INVALID_SIGNATURE => 13826, - ERROR_IPSEC_IKE_KERBEROS_ERROR => 13827, - ERROR_IPSEC_IKE_NO_PUBLIC_KEY => 13828, - ERROR_IPSEC_IKE_PROCESS_ERR => 13829, - ERROR_IPSEC_IKE_PROCESS_ERR_SA => 13830, - ERROR_IPSEC_IKE_PROCESS_ERR_PROP => 13831, - ERROR_IPSEC_IKE_PROCESS_ERR_TRANS => 13832, - ERROR_IPSEC_IKE_PROCESS_ERR_KE => 13833, - ERROR_IPSEC_IKE_PROCESS_ERR_ID => 13834, - ERROR_IPSEC_IKE_PROCESS_ERR_CERT => 13835, - ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ => 13836, - ERROR_IPSEC_IKE_PROCESS_ERR_HASH => 13837, - ERROR_IPSEC_IKE_PROCESS_ERR_SIG => 13838, - ERROR_IPSEC_IKE_PROCESS_ERR_NONCE => 13839, - ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY => 13840, - ERROR_IPSEC_IKE_PROCESS_ERR_DELETE => 13841, - ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR => 13842, - ERROR_IPSEC_IKE_INVALID_PAYLOAD => 13843, - ERROR_IPSEC_IKE_LOAD_SOFT_SA => 13844, - ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN => 13845, - ERROR_IPSEC_IKE_INVALID_COOKIE => 13846, - ERROR_IPSEC_IKE_NO_PEER_CERT => 13847, - ERROR_IPSEC_IKE_PEER_CRL_FAILED => 13848, - ERROR_IPSEC_IKE_POLICY_CHANGE => 13849, - ERROR_IPSEC_IKE_NO_MM_POLICY => 13850, - ERROR_IPSEC_IKE_NOTCBPRIV => 13851, - ERROR_IPSEC_IKE_SECLOADFAIL => 13852, - ERROR_IPSEC_IKE_FAILSSPINIT => 13853, - ERROR_IPSEC_IKE_FAILQUERYSSP => 13854, - ERROR_IPSEC_IKE_SRVACQFAIL => 13855, - ERROR_IPSEC_IKE_SRVQUERYCRED => 13856, - ERROR_IPSEC_IKE_GETSPIFAIL => 13857, - ERROR_IPSEC_IKE_INVALID_FILTER => 13858, - ERROR_IPSEC_IKE_OUT_OF_MEMORY => 13859, - ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED => 13860, - ERROR_IPSEC_IKE_INVALID_POLICY => 13861, - ERROR_IPSEC_IKE_UNKNOWN_DOI => 13862, - ERROR_IPSEC_IKE_INVALID_SITUATION => 13863, - ERROR_IPSEC_IKE_DH_FAILURE => 13864, - ERROR_IPSEC_IKE_INVALID_GROUP => 13865, - ERROR_IPSEC_IKE_ENCRYPT => 13866, - ERROR_IPSEC_IKE_DECRYPT => 13867, - ERROR_IPSEC_IKE_POLICY_MATCH => 13868, - ERROR_IPSEC_IKE_UNSUPPORTED_ID => 13869, - ERROR_IPSEC_IKE_INVALID_HASH => 13870, - ERROR_IPSEC_IKE_INVALID_HASH_ALG => 13871, - ERROR_IPSEC_IKE_INVALID_HASH_SIZE => 13872, - ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG => 13873, - ERROR_IPSEC_IKE_INVALID_AUTH_ALG => 13874, - ERROR_IPSEC_IKE_INVALID_SIG => 13875, - ERROR_IPSEC_IKE_LOAD_FAILED => 13876, - ERROR_IPSEC_IKE_RPC_DELETE => 13877, - ERROR_IPSEC_IKE_BENIGN_REINIT => 13878, - ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY => 13879, - ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN => 13881, - ERROR_IPSEC_IKE_MM_LIMIT => 13882, - ERROR_IPSEC_IKE_NEGOTIATION_DISABLED => 13883, - ERROR_IPSEC_IKE_QM_LIMIT => 13884, - ERROR_IPSEC_IKE_MM_EXPIRED => 13885, - ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID => 13886, - ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH => 13887, - ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID => 13888, - ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD => 13889, - ERROR_IPSEC_IKE_DOS_COOKIE_SENT => 13890, - ERROR_IPSEC_IKE_SHUTTING_DOWN => 13891, - ERROR_IPSEC_IKE_CGA_AUTH_FAILED => 13892, - ERROR_IPSEC_IKE_PROCESS_ERR_NATOA => 13893, - ERROR_IPSEC_IKE_INVALID_MM_FOR_QM => 13894, - ERROR_IPSEC_IKE_QM_EXPIRED => 13895, - ERROR_IPSEC_IKE_TOO_MANY_FILTERS => 13896, - ERROR_IPSEC_IKE_NEG_STATUS_END => 13897, - ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL => 13898, - ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE => 13899, - ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING => 13900, - ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING => 13901, - ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS => 13902, - ERROR_IPSEC_IKE_RATELIMIT_DROP => 13903, - ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE => 13904, - ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE => 13905, - ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE => 13906, - ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY => 13907, - ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE => 13908, - ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END => 13909, - ERROR_IPSEC_BAD_SPI => 13910, - ERROR_IPSEC_SA_LIFETIME_EXPIRED => 13911, - ERROR_IPSEC_WRONG_SA => 13912, - ERROR_IPSEC_REPLAY_CHECK_FAILED => 13913, - ERROR_IPSEC_INVALID_PACKET => 13914, - ERROR_IPSEC_INTEGRITY_CHECK_FAILED => 13915, - ERROR_IPSEC_CLEAR_TEXT_DROP => 13916, - ERROR_IPSEC_AUTH_FIREWALL_DROP => 13917, - ERROR_IPSEC_THROTTLE_DROP => 13918, - ERROR_IPSEC_DOSP_BLOCK => 13925, - ERROR_IPSEC_DOSP_RECEIVED_MULTICAST => 13926, - ERROR_IPSEC_DOSP_INVALID_PACKET => 13927, - ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED => 13928, - ERROR_IPSEC_DOSP_MAX_ENTRIES => 13929, - ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED => 13930, - ERROR_IPSEC_DOSP_NOT_INSTALLED => 13931, - ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES => 13932, - ERROR_SXS_SECTION_NOT_FOUND => 14000, - ERROR_SXS_CANT_GEN_ACTCTX => 14001, - ERROR_SXS_INVALID_ACTCTXDATA_FORMAT => 14002, - ERROR_SXS_ASSEMBLY_NOT_FOUND => 14003, - ERROR_SXS_MANIFEST_FORMAT_ERROR => 14004, - ERROR_SXS_MANIFEST_PARSE_ERROR => 14005, - ERROR_SXS_ACTIVATION_CONTEXT_DISABLED => 14006, - ERROR_SXS_KEY_NOT_FOUND => 14007, - ERROR_SXS_VERSION_CONFLICT => 14008, - ERROR_SXS_WRONG_SECTION_TYPE => 14009, - ERROR_SXS_THREAD_QUERIES_DISABLED => 14010, - ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET => 14011, - ERROR_SXS_UNKNOWN_ENCODING_GROUP => 14012, - ERROR_SXS_UNKNOWN_ENCODING => 14013, - ERROR_SXS_INVALID_XML_NAMESPACE_URI => 14014, - ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED => 14015, - ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED => 14016, - ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE => 14017, - ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE => 14018, - ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE => 14019, - ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT => 14020, - ERROR_SXS_DUPLICATE_DLL_NAME => 14021, - ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME => 14022, - ERROR_SXS_DUPLICATE_CLSID => 14023, - ERROR_SXS_DUPLICATE_IID => 14024, - ERROR_SXS_DUPLICATE_TLBID => 14025, - ERROR_SXS_DUPLICATE_PROGID => 14026, - ERROR_SXS_DUPLICATE_ASSEMBLY_NAME => 14027, - ERROR_SXS_FILE_HASH_MISMATCH => 14028, - ERROR_SXS_POLICY_PARSE_ERROR => 14029, - ERROR_SXS_XML_E_MISSINGQUOTE => 14030, - ERROR_SXS_XML_E_COMMENTSYNTAX => 14031, - ERROR_SXS_XML_E_BADSTARTNAMECHAR => 14032, - ERROR_SXS_XML_E_BADNAMECHAR => 14033, - ERROR_SXS_XML_E_BADCHARINSTRING => 14034, - ERROR_SXS_XML_E_XMLDECLSYNTAX => 14035, - ERROR_SXS_XML_E_BADCHARDATA => 14036, - ERROR_SXS_XML_E_MISSINGWHITESPACE => 14037, - ERROR_SXS_XML_E_EXPECTINGTAGEND => 14038, - ERROR_SXS_XML_E_MISSINGSEMICOLON => 14039, - ERROR_SXS_XML_E_UNBALANCEDPAREN => 14040, - ERROR_SXS_XML_E_INTERNALERROR => 14041, - ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE => 14042, - ERROR_SXS_XML_E_INCOMPLETE_ENCODING => 14043, - ERROR_SXS_XML_E_MISSING_PAREN => 14044, - ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE => 14045, - ERROR_SXS_XML_E_MULTIPLE_COLONS => 14046, - ERROR_SXS_XML_E_INVALID_DECIMAL => 14047, - ERROR_SXS_XML_E_INVALID_HEXIDECIMAL => 14048, - ERROR_SXS_XML_E_INVALID_UNICODE => 14049, - ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK => 14050, - ERROR_SXS_XML_E_UNEXPECTEDENDTAG => 14051, - ERROR_SXS_XML_E_UNCLOSEDTAG => 14052, - ERROR_SXS_XML_E_DUPLICATEATTRIBUTE => 14053, - ERROR_SXS_XML_E_MULTIPLEROOTS => 14054, - ERROR_SXS_XML_E_INVALIDATROOTLEVEL => 14055, - ERROR_SXS_XML_E_BADXMLDECL => 14056, - ERROR_SXS_XML_E_MISSINGROOT => 14057, - ERROR_SXS_XML_E_UNEXPECTEDEOF => 14058, - ERROR_SXS_XML_E_BADPEREFINSUBSET => 14059, - ERROR_SXS_XML_E_UNCLOSEDSTARTTAG => 14060, - ERROR_SXS_XML_E_UNCLOSEDENDTAG => 14061, - ERROR_SXS_XML_E_UNCLOSEDSTRING => 14062, - ERROR_SXS_XML_E_UNCLOSEDCOMMENT => 14063, - ERROR_SXS_XML_E_UNCLOSEDDECL => 14064, - ERROR_SXS_XML_E_UNCLOSEDCDATA => 14065, - ERROR_SXS_XML_E_RESERVEDNAMESPACE => 14066, - ERROR_SXS_XML_E_INVALIDENCODING => 14067, - ERROR_SXS_XML_E_INVALIDSWITCH => 14068, - ERROR_SXS_XML_E_BADXMLCASE => 14069, - ERROR_SXS_XML_E_INVALID_STANDALONE => 14070, - ERROR_SXS_XML_E_UNEXPECTED_STANDALONE => 14071, - ERROR_SXS_XML_E_INVALID_VERSION => 14072, - ERROR_SXS_XML_E_MISSINGEQUALS => 14073, - ERROR_SXS_PROTECTION_RECOVERY_FAILED => 14074, - ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT => 14075, - ERROR_SXS_PROTECTION_CATALOG_NOT_VALID => 14076, - ERROR_SXS_UNTRANSLATABLE_HRESULT => 14077, - ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING => 14078, - ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE => 14079, - ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME => 14080, - ERROR_SXS_ASSEMBLY_MISSING => 14081, - ERROR_SXS_CORRUPT_ACTIVATION_STACK => 14082, - ERROR_SXS_CORRUPTION => 14083, - ERROR_SXS_EARLY_DEACTIVATION => 14084, - ERROR_SXS_INVALID_DEACTIVATION => 14085, - ERROR_SXS_MULTIPLE_DEACTIVATION => 14086, - ERROR_SXS_PROCESS_TERMINATION_REQUESTED => 14087, - ERROR_SXS_RELEASE_ACTIVATION_CONTEXT => 14088, - ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY => 14089, - ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE => 14090, - ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME => 14091, - ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE => 14092, - ERROR_SXS_IDENTITY_PARSE_ERROR => 14093, - ERROR_MALFORMED_SUBSTITUTION_STRING => 14094, - ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN => 14095, - ERROR_UNMAPPED_SUBSTITUTION_STRING => 14096, - ERROR_SXS_ASSEMBLY_NOT_LOCKED => 14097, - ERROR_SXS_COMPONENT_STORE_CORRUPT => 14098, - ERROR_ADVANCED_INSTALLER_FAILED => 14099, - ERROR_XML_ENCODING_MISMATCH => 14100, - ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT => 14101, - ERROR_SXS_IDENTITIES_DIFFERENT => 14102, - ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT => 14103, - ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY => 14104, - ERROR_SXS_MANIFEST_TOO_BIG => 14105, - ERROR_SXS_SETTING_NOT_REGISTERED => 14106, - ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE => 14107, - ERROR_SMI_PRIMITIVE_INSTALLER_FAILED => 14108, - ERROR_GENERIC_COMMAND_FAILED => 14109, - ERROR_SXS_FILE_HASH_MISSING => 14110, - ERROR_EVT_INVALID_CHANNEL_PATH => 15000, - ERROR_EVT_INVALID_QUERY => 15001, - ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND => 15002, - ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND => 15003, - ERROR_EVT_INVALID_PUBLISHER_NAME => 15004, - ERROR_EVT_INVALID_EVENT_DATA => 15005, - ERROR_EVT_CHANNEL_NOT_FOUND => 15007, - ERROR_EVT_MALFORMED_XML_TEXT => 15008, - ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL => 15009, - ERROR_EVT_CONFIGURATION_ERROR => 15010, - ERROR_EVT_QUERY_RESULT_STALE => 15011, - ERROR_EVT_QUERY_RESULT_INVALID_POSITION => 15012, - ERROR_EVT_NON_VALIDATING_MSXML => 15013, - ERROR_EVT_FILTER_ALREADYSCOPED => 15014, - ERROR_EVT_FILTER_NOTELTSET => 15015, - ERROR_EVT_FILTER_INVARG => 15016, - ERROR_EVT_FILTER_INVTEST => 15017, - ERROR_EVT_FILTER_INVTYPE => 15018, - ERROR_EVT_FILTER_PARSEERR => 15019, - ERROR_EVT_FILTER_UNSUPPORTEDOP => 15020, - ERROR_EVT_FILTER_UNEXPECTEDTOKEN => 15021, - ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL => 15022, - ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE => 15023, - ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE => 15024, - ERROR_EVT_CHANNEL_CANNOT_ACTIVATE => 15025, - ERROR_EVT_FILTER_TOO_COMPLEX => 15026, - ERROR_EVT_MESSAGE_NOT_FOUND => 15027, - ERROR_EVT_MESSAGE_ID_NOT_FOUND => 15028, - ERROR_EVT_UNRESOLVED_VALUE_INSERT => 15029, - ERROR_EVT_UNRESOLVED_PARAMETER_INSERT => 15030, - ERROR_EVT_MAX_INSERTS_REACHED => 15031, - ERROR_EVT_EVENT_DEFINITION_NOT_FOUND => 15032, - ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND => 15033, - ERROR_EVT_VERSION_TOO_OLD => 15034, - ERROR_EVT_VERSION_TOO_NEW => 15035, - ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY => 15036, - ERROR_EVT_PUBLISHER_DISABLED => 15037, - ERROR_EVT_FILTER_OUT_OF_RANGE => 15038, - ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE => 15080, - ERROR_EC_LOG_DISABLED => 15081, - ERROR_EC_CIRCULAR_FORWARDING => 15082, - ERROR_EC_CREDSTORE_FULL => 15083, - ERROR_EC_CRED_NOT_FOUND => 15084, - ERROR_EC_NO_ACTIVE_CHANNEL => 15085, - ERROR_MUI_FILE_NOT_FOUND => 15100, - ERROR_MUI_INVALID_FILE => 15101, - ERROR_MUI_INVALID_RC_CONFIG => 15102, - ERROR_MUI_INVALID_LOCALE_NAME => 15103, - ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME => 15104, - ERROR_MUI_FILE_NOT_LOADED => 15105, - ERROR_RESOURCE_ENUM_USER_STOP => 15106, - ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED => 15107, - ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME => 15108, - ERROR_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE => 15110, - ERROR_MRM_INVALID_PRICONFIG => 15111, - ERROR_MRM_INVALID_FILE_TYPE => 15112, - ERROR_MRM_UNKNOWN_QUALIFIER => 15113, - ERROR_MRM_INVALID_QUALIFIER_VALUE => 15114, - ERROR_MRM_NO_CANDIDATE => 15115, - ERROR_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE => 15116, - ERROR_MRM_RESOURCE_TYPE_MISMATCH => 15117, - ERROR_MRM_DUPLICATE_MAP_NAME => 15118, - ERROR_MRM_DUPLICATE_ENTRY => 15119, - ERROR_MRM_INVALID_RESOURCE_IDENTIFIER => 15120, - ERROR_MRM_FILEPATH_TOO_LONG => 15121, - ERROR_MRM_UNSUPPORTED_DIRECTORY_TYPE => 15122, - ERROR_MRM_INVALID_PRI_FILE => 15126, - ERROR_MRM_NAMED_RESOURCE_NOT_FOUND => 15127, - ERROR_MRM_MAP_NOT_FOUND => 15135, - ERROR_MRM_UNSUPPORTED_PROFILE_TYPE => 15136, - ERROR_MRM_INVALID_QUALIFIER_OPERATOR => 15137, - ERROR_MRM_INDETERMINATE_QUALIFIER_VALUE => 15138, - ERROR_MRM_AUTOMERGE_ENABLED => 15139, - ERROR_MRM_TOO_MANY_RESOURCES => 15140, - ERROR_MCA_INVALID_CAPABILITIES_STRING => 15200, - ERROR_MCA_INVALID_VCP_VERSION => 15201, - ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION => 15202, - ERROR_MCA_MCCS_VERSION_MISMATCH => 15203, - ERROR_MCA_UNSUPPORTED_MCCS_VERSION => 15204, - ERROR_MCA_INTERNAL_ERROR => 15205, - ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED => 15206, - ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE => 15207, - ERROR_AMBIGUOUS_SYSTEM_DEVICE => 15250, - ERROR_SYSTEM_DEVICE_NOT_FOUND => 15299, - ERROR_HASH_NOT_SUPPORTED => 15300, - ERROR_HASH_NOT_PRESENT => 15301, - ERROR_SECONDARY_IC_PROVIDER_NOT_REGISTERED => 15321, - ERROR_GPIO_CLIENT_INFORMATION_INVALID => 15322, - ERROR_GPIO_VERSION_NOT_SUPPORTED => 15323, - ERROR_GPIO_INVALID_REGISTRATION_PACKET => 15324, - ERROR_GPIO_OPERATION_DENIED => 15325, - ERROR_GPIO_INCOMPATIBLE_CONNECT_MODE => 15326, - ERROR_GPIO_INTERRUPT_ALREADY_UNMASKED => 15327, - ERROR_CANNOT_SWITCH_RUNLEVEL => 15400, - ERROR_INVALID_RUNLEVEL_SETTING => 15401, - ERROR_RUNLEVEL_SWITCH_TIMEOUT => 15402, - ERROR_RUNLEVEL_SWITCH_AGENT_TIMEOUT => 15403, - ERROR_RUNLEVEL_SWITCH_IN_PROGRESS => 15404, - ERROR_SERVICES_FAILED_AUTOSTART => 15405, - ERROR_COM_TASK_STOP_PENDING => 15501, - ERROR_INSTALL_OPEN_PACKAGE_FAILED => 15600, - ERROR_INSTALL_PACKAGE_NOT_FOUND => 15601, - ERROR_INSTALL_INVALID_PACKAGE => 15602, - ERROR_INSTALL_RESOLVE_DEPENDENCY_FAILED => 15603, - ERROR_INSTALL_OUT_OF_DISK_SPACE => 15604, - ERROR_INSTALL_NETWORK_FAILURE => 15605, - ERROR_INSTALL_REGISTRATION_FAILURE => 15606, - ERROR_INSTALL_DEREGISTRATION_FAILURE => 15607, - ERROR_INSTALL_CANCEL => 15608, - ERROR_INSTALL_FAILED => 15609, - ERROR_REMOVE_FAILED => 15610, - ERROR_PACKAGE_ALREADY_EXISTS => 15611, - ERROR_NEEDS_REMEDIATION => 15612, - ERROR_INSTALL_PREREQUISITE_FAILED => 15613, - ERROR_PACKAGE_REPOSITORY_CORRUPTED => 15614, - ERROR_INSTALL_POLICY_FAILURE => 15615, - ERROR_PACKAGE_UPDATING => 15616, - ERROR_DEPLOYMENT_BLOCKED_BY_POLICY => 15617, - ERROR_PACKAGES_IN_USE => 15618, - ERROR_RECOVERY_FILE_CORRUPT => 15619, - ERROR_INVALID_STAGED_SIGNATURE => 15620, - ERROR_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED => 15621, - ERROR_INSTALL_PACKAGE_DOWNGRADE => 15622, - ERROR_SYSTEM_NEEDS_REMEDIATION => 15623, - ERROR_APPX_INTEGRITY_FAILURE_CLR_NGEN => 15624, - ERROR_RESILIENCY_FILE_CORRUPT => 15625, - ERROR_INSTALL_FIREWALL_SERVICE_NOT_RUNNING => 15626, - ERROR_STATE_LOAD_STORE_FAILED => 15800, - ERROR_STATE_GET_VERSION_FAILED => 15801, - ERROR_STATE_SET_VERSION_FAILED => 15802, - ERROR_STATE_STRUCTURED_RESET_FAILED => 15803, - ERROR_STATE_OPEN_CONTAINER_FAILED => 15804, - ERROR_STATE_CREATE_CONTAINER_FAILED => 15805, - ERROR_STATE_DELETE_CONTAINER_FAILED => 15806, - ERROR_STATE_READ_SETTING_FAILED => 15807, - ERROR_STATE_WRITE_SETTING_FAILED => 15808, - ERROR_STATE_DELETE_SETTING_FAILED => 15809, - ERROR_STATE_QUERY_SETTING_FAILED => 15810, - ERROR_STATE_READ_COMPOSITE_SETTING_FAILED => 15811, - ERROR_STATE_WRITE_COMPOSITE_SETTING_FAILED => 15812, - ERROR_STATE_ENUMERATE_CONTAINER_FAILED => 15813, - ERROR_STATE_ENUMERATE_SETTINGS_FAILED => 15814, - ERROR_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED => 15815, - ERROR_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED => 15816, - ERROR_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED => 15817, - ERROR_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED => 15818, - ERROR_API_UNAVAILABLE => 15841, - EVENT_CONSOLE_CARET => 16385, - EVENT_CONSOLE_UPDATE_REGION => 16386, - EVENT_CONSOLE_UPDATE_SIMPLE => 16387, - EVENT_CONSOLE_UPDATE_SCROLL => 16388, - EVENT_CONSOLE_LAYOUT => 16389, - EVENT_CONSOLE_START_APPLICATION => 16390, - EVENT_CONSOLE_END_APPLICATION => 16391, - ELEMENT_STATUS_NOT_BUS => 32768, - EVENT_OBJECT_CREATE => 32768, - EVENT_OBJECT_DESTROY => 32769, - EVENT_OBJECT_SHOW => 32770, - EVENT_OBJECT_HIDE => 32771, - EVENT_OBJECT_REORDER => 32772, - EVENT_OBJECT_FOCUS => 32773, - EVENT_OBJECT_SELECTION => 32774, - EVENT_OBJECT_SELECTIONADD => 32775, - EVENT_OBJECT_SELECTIONREMOVE => 32776, - EVENT_OBJECT_SELECTIONWITHIN => 32777, - EVENT_OBJECT_STATECHANGE => 32778, - EVENT_OBJECT_LOCATIONCHANGE => 32779, - EVENT_OBJECT_NAMECHANGE => 32780, - EVENT_OBJECT_DESCRIPTIONCHANGE => 32781, - EVENT_OBJECT_VALUECHANGE => 32782, - EVENT_OBJECT_PARENTCHANGE => 32783, - EVENT_OBJECT_HELPCHANGE => 32784, - EVENT_OBJECT_DEFACTIONCHANGE => 32785, - EVENT_OBJECT_ACCELERATORCHANGE => 32786, - EC_USEFONTINFO => 65535, - EMBDHLP_DELAYCREATE => 65536, - ENLISTMENT_GENERIC_READ => 131073, - ENLISTMENT_GENERIC_EXECUTE => 131100, - ENLISTMENT_GENERIC_WRITE => 131102, - ENUM_S_FIRST => 262576, - ENUM_S_LAST => 262591, - EVENT_S_FIRST => 262656, - EVENT_S_SOME_SUBSCRIBERS_FAILED => 262656, - EVENT_S_NOSUBSCRIBERS => 262658, - EVENT_S_LAST => 262687, - EXTENDED_STARTUPINFO_PRESENT => 524288, - ENLISTMENT_ALL_ACCESS => 983071, - ERROR_FLT_IO_COMPLETE => 2031617, - EVENT_ALL_ACCESS => 2031619, - ELEMENT_STATUS_INVERT => 4194304, - EWX_HYBRID_SHUTDOWN => 4194304, - ELEMENT_STATUS_SVALID => 8388608, - EWX_BOOTOPTIONS => 16777216, - ELEMENT_STATUS_PVOLTAG => 268435456, - ELEMENT_STATUS_AVOLTAG => 536870912, - ENDSESSION_CRITICAL => 1073741824, - ERROR_SEVERITY_INFORMATIONAL => 1073741824, - ENHMETA_SIGNATURE => 1179469088, - EPS_SIGNATURE => 1179865157, - EVENT_MAX => 2147483647, - ENDSESSION_LOGOFF => 2147483648, - ENHMETA_STOCK_OBJECT => 2147483648, - ERROR_SEVERITY_WARNING => 2147483648, - ES_CONTINUOUS => 2147483648, - EXCEPTION_GUARD_PAGE => 2147483649, - EXCEPTION_DATATYPE_MISALIGNMENT => 2147483650, - EXCEPTION_BREAKPOINT => 2147483651, - EXCEPTION_SINGLE_STEP => 2147483652, - E_PENDING => 2147483658, - E_NOTIMPL => 2147500033, - E_NOINTERFACE => 2147500034, - E_POINTER => 2147500035, - E_ABORT => 2147500036, - E_FAIL => 2147500037, - E_UNEXPECTED => 2147549183, - E_DRAW => 2147746112, - ENUM_E_FIRST => 2147746224, - ENUM_E_LAST => 2147746239, - EVENT_E_FIRST => 2147746304, - EVENT_E_ALL_SUBSCRIBERS_FAILED => 2147746305, - EVENT_E_QUERYSYNTAX => 2147746307, - EVENT_E_QUERYFIELD => 2147746308, - EVENT_E_INTERNALEXCEPTION => 2147746309, - EVENT_E_INTERNALERROR => 2147746310, - EVENT_E_INVALID_PER_USER_SID => 2147746311, - EVENT_E_USER_EXCEPTION => 2147746312, - EVENT_E_TOO_MANY_METHODS => 2147746313, - EVENT_E_MISSING_EVENTCLASS => 2147746314, - EVENT_E_NOT_ALL_REMOVED => 2147746315, - EVENT_E_COMPLUS_NOT_INSTALLED => 2147746316, - EVENT_E_CANT_MODIFY_OR_DELETE_UNCONFIGURED_OBJECT => 2147746317, - EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT => 2147746318, - EVENT_E_INVALID_EVENT_CLASS_PARTITION => 2147746319, - EVENT_E_PER_USER_SID_NOT_LOGGED_ON => 2147746320, - EVENT_E_LAST => 2147746335, - E_ACCESSDENIED => 2147942405, - E_HANDLE => 2147942406, - E_OUTOFMEMORY => 2147942414, - E_INVALIDARG => 2147942487, - ERROR_FLT_NO_HANDLER_DEFINED => 2149515265, - ERROR_FLT_CONTEXT_ALREADY_DEFINED => 2149515266, - ERROR_FLT_INVALID_ASYNCHRONOUS_REQUEST => 2149515267, - ERROR_FLT_DISALLOW_FAST_IO => 2149515268, - ERROR_FLT_INVALID_NAME_REQUEST => 2149515269, - ERROR_FLT_NOT_SAFE_TO_POST_OPERATION => 2149515270, - ERROR_FLT_NOT_INITIALIZED => 2149515271, - ERROR_FLT_FILTER_NOT_READY => 2149515272, - ERROR_FLT_POST_OPERATION_CLEANUP => 2149515273, - ERROR_FLT_INTERNAL_ERROR => 2149515274, - ERROR_FLT_DELETING_OBJECT => 2149515275, - ERROR_FLT_MUST_BE_NONPAGED_POOL => 2149515276, - ERROR_FLT_DUPLICATE_ENTRY => 2149515277, - ERROR_FLT_CBDQ_DISABLED => 2149515278, - ERROR_FLT_DO_NOT_ATTACH => 2149515279, - ERROR_FLT_DO_NOT_DETACH => 2149515280, - ERROR_FLT_INSTANCE_ALTITUDE_COLLISION => 2149515281, - ERROR_FLT_INSTANCE_NAME_COLLISION => 2149515282, - ERROR_FLT_FILTER_NOT_FOUND => 2149515283, - ERROR_FLT_VOLUME_NOT_FOUND => 2149515284, - ERROR_FLT_INSTANCE_NOT_FOUND => 2149515285, - ERROR_FLT_CONTEXT_ALLOCATION_NOT_FOUND => 2149515286, - ERROR_FLT_INVALID_CONTEXT_REGISTRATION => 2149515287, - ERROR_FLT_NAME_CACHE_MISS => 2149515288, - ERROR_FLT_NO_DEVICE_OBJECT => 2149515289, - ERROR_FLT_VOLUME_ALREADY_MOUNTED => 2149515290, - ERROR_FLT_ALREADY_ENLISTED => 2149515291, - ERROR_FLT_CONTEXT_ALREADY_LINKED => 2149515292, - ERROR_FLT_NO_WAITER_FOR_REPLY => 2149515296, - ERROR_FLT_REGISTRATION_BUSY => 2149515299, - ERROR_SEVERITY_ERROR => 3221225472, - EXCEPTION_ACCESS_VIOLATION => 3221225477, - EXCEPTION_IN_PAGE_ERROR => 3221225478, - EXCEPTION_INVALID_HANDLE => 3221225480, - EXCEPTION_ILLEGAL_INSTRUCTION => 3221225501, - EXCEPTION_NONCONTINUABLE_EXCEPTION => 3221225509, - EXCEPTION_INVALID_DISPOSITION => 3221225510, - EXCEPTION_ARRAY_BOUNDS_EXCEEDED => 3221225612, - EXCEPTION_FLT_DENORMAL_OPERAND => 3221225613, - EXCEPTION_FLT_DIVIDE_BY_ZERO => 3221225614, - EXCEPTION_FLT_INEXACT_RESULT => 3221225615, - EXCEPTION_FLT_INVALID_OPERATION => 3221225616, - EXCEPTION_FLT_OVERFLOW => 3221225617, - EXCEPTION_FLT_STACK_CHECK => 3221225618, - EXCEPTION_FLT_UNDERFLOW => 3221225619, - EXCEPTION_INT_DIVIDE_BY_ZERO => 3221225620, - EXCEPTION_INT_OVERFLOW => 3221225621, - EXCEPTION_PRIV_INSTRUCTION => 3221225622, - EXCEPTION_STACK_OVERFLOW => 3221225725, - ERROR_AUDITING_DISABLED => 3221815297, - ERROR_ALL_SIDS_FILTERED => 3221815298, - ENUM_ALL_CALENDARS => 4294967295, - ERROR_UNHANDLED_ERROR => 4294967295, - ); - # Generate proxy constant subroutines for all the values. - # Well, almost all the values. Unfortunately we can't assume that at this - # point that our symbol table is empty, as code such as if the parser has - # seen code such as C, it will have created the - # typeglob. - # Doing this before defining @EXPORT_OK etc means that even if a platform is - # crazy enough to define EXPORT_OK as an error constant, everything will - # still work, because the parser will upgrade the PCS to a real typeglob. - # We rely on the subroutine definitions below to update the internal caches. - # Don't use %each, as we don't want a copy of the value. - foreach my $name (keys %err) { - if ($Errno::{$name}) { - # We expect this to be reached fairly rarely, so take an approach - # which uses the least compile time effort in the common case: - eval "sub $name() { $err{$name} }; 1" or die $@; - } else { - $Errno::{$name} = \$err{$name}; - } - } -} - -our @EXPORT_OK = keys %err; - -our %EXPORT_TAGS = ( - POSIX => [qw( - E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY - EBADF EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK - EDESTADDRREQ EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTUNREACH EINPROGRESS - EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE - ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV - ENOENT ENOEXEC ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTCONN - ENOTDIR ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT - EPIPE EPROCLIM EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE EROFS - ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS - EUSERS EWOULDBLOCK EXDEV - )], - WINSOCK => [qw( - WSAENETUNREACH WSAECONNREFUSED WSAENOTSOCK WSAEINPROGRESS WSAEMFILE - WSAEADDRNOTAVAIL WSAEINVALIDPROCTABLE WSAELOOP WSAEAFNOSUPPORT - WSAENOPROTOOPT WSAENOBUFS WSAENOMORE WSAEPFNOSUPPORT WSAECANCELLED - WSAECONNABORTED WSAEPROCLIM WSAEPROTONOSUPPORT WSAEMSGSIZE - WSAESHUTDOWN WSAEINVALIDPROVIDER WSAENETRESET WSAEDISCON - WSAEHOSTUNREACH WSAEREMOTE WSAEINVAL WSAETIMEDOUT WSAEDESTADDRREQ - WSAEREFUSED WSAEPROTOTYPE WSAEADDRINUSE WSAEDQUOT WSAENOTCONN - WSAEUSERS WSAESTALE WSAEALREADY WSAECONNRESET WSAEBADF WSAENAMETOOLONG - WSAEINTR WSAEPROVIDERFAILEDINIT WSAEACCES WSAETOOMANYREFS WSAEHOSTDOWN - WSAENETDOWN WSAEOPNOTSUPP WSAEFAULT WSAESOCKTNOSUPPORT WSAEISCONN - WSAENOTEMPTY WSAEWOULDBLOCK - )], -); - -sub TIEHASH { bless \%err } - -sub FETCH { - my (undef, $errname) = @_; - return "" unless exists $err{$errname}; - my $errno = $err{$errname}; - return $errno == $! ? $errno : 0; -} - -sub STORE { - require Carp; - Carp::confess("ERRNO hash is read only!"); -} - -*CLEAR = *DELETE = \*STORE; # Typeglob aliasing uses less space - -sub NEXTKEY { - each %err; -} - -sub FIRSTKEY { - my $s = scalar keys %err; # initialize iterator - each %err; -} - -sub EXISTS { - my (undef, $errname) = @_; - exists $err{$errname}; -} - -tie %!, __PACKAGE__; # Returns an object, objects are true. - -__END__ - -#line 2611 - -# ex: set ro: diff --git a/software/Slic3r-1.3.0.64bit/lib/Exporter.pm b/software/Slic3r-1.3.0.64bit/lib/Exporter.pm deleted file mode 100644 index 1ee405ec..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Exporter.pm +++ /dev/null @@ -1,103 +0,0 @@ -#line 1 "Exporter.pm" -package Exporter; - -require 5.006; - -# Be lean. -#use strict; -#no strict 'refs'; - -our $Debug = 0; -our $ExportLevel = 0; -our $Verbose ||= 0; -our $VERSION = '5.72'; -our (%Cache); - -sub as_heavy { - require Exporter::Heavy; - # Unfortunately, this does not work if the caller is aliased as *name = \&foo - # Thus the need to create a lot of identical subroutines - my $c = (caller(1))[3]; - $c =~ s/.*:://; - \&{"Exporter::Heavy::heavy_$c"}; -} - -sub export { - goto &{as_heavy()}; -} - -sub import { - my $pkg = shift; - my $callpkg = caller($ExportLevel); - - if ($pkg eq "Exporter" and @_ and $_[0] eq "import") { - *{$callpkg."::import"} = \&import; - return; - } - - # We *need* to treat @{"$pkg\::EXPORT_FAIL"} since Carp uses it :-( - my $exports = \@{"$pkg\::EXPORT"}; - # But, avoid creating things if they don't exist, which saves a couple of - # hundred bytes per package processed. - my $fail = ${$pkg . '::'}{EXPORT_FAIL} && \@{"$pkg\::EXPORT_FAIL"}; - return export $pkg, $callpkg, @_ - if $Verbose or $Debug or $fail && @$fail > 1; - my $export_cache = ($Cache{$pkg} ||= {}); - my $args = @_ or @_ = @$exports; - - if ($args and not %$export_cache) { - s/^&//, $export_cache->{$_} = 1 - foreach (@$exports, @{"$pkg\::EXPORT_OK"}); - } - my $heavy; - # Try very hard not to use {} and hence have to enter scope on the foreach - # We bomb out of the loop with last as soon as heavy is set. - if ($args or $fail) { - ($heavy = (/\W/ or $args and not exists $export_cache->{$_} - or $fail and @$fail and $_ eq $fail->[0])) and last - foreach (@_); - } else { - ($heavy = /\W/) and last - foreach (@_); - } - return export $pkg, $callpkg, ($args ? @_ : ()) if $heavy; - local $SIG{__WARN__} = - sub {require Carp; &Carp::carp} if not $SIG{__WARN__}; - # shortcut for the common case of no type character - *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_; -} - -# Default methods - -sub export_fail { - my $self = shift; - @_; -} - -# Unfortunately, caller(1)[3] "does not work" if the caller is aliased as -# *name = \&foo. Thus the need to create a lot of identical subroutines -# Otherwise we could have aliased them to export(). - -sub export_to_level { - goto &{as_heavy()}; -} - -sub export_tags { - goto &{as_heavy()}; -} - -sub export_ok_tags { - goto &{as_heavy()}; -} - -sub require_version { - goto &{as_heavy()}; -} - -1; -__END__ - -#line 589 - - - diff --git a/software/Slic3r-1.3.0.64bit/lib/Exporter/Heavy.pm b/software/Slic3r-1.3.0.64bit/lib/Exporter/Heavy.pm deleted file mode 100644 index 54be0cb5..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Exporter/Heavy.pm +++ /dev/null @@ -1,242 +0,0 @@ -#line 1 "Exporter/Heavy.pm" -package Exporter::Heavy; - -use strict; -no strict 'refs'; - -# On one line so MakeMaker will see it. -require Exporter; our $VERSION = $Exporter::VERSION; - -#line 22 - -# -# We go to a lot of trouble not to 'require Carp' at file scope, -# because Carp requires Exporter, and something has to give. -# - -sub _rebuild_cache { - my ($pkg, $exports, $cache) = @_; - s/^&// foreach @$exports; - @{$cache}{@$exports} = (1) x @$exports; - my $ok = \@{"${pkg}::EXPORT_OK"}; - if (@$ok) { - s/^&// foreach @$ok; - @{$cache}{@$ok} = (1) x @$ok; - } -} - -sub heavy_export { - - # Save the old __WARN__ handler in case it was defined - my $oldwarn = $SIG{__WARN__}; - - # First make import warnings look like they're coming from the "use". - local $SIG{__WARN__} = sub { - # restore it back so proper stacking occurs - local $SIG{__WARN__} = $oldwarn; - my $text = shift; - if ($text =~ s/ at \S*Exporter\S*.pm line \d+.*\n//) { - require Carp; - local $Carp::CarpLevel = 1; # ignore package calling us too. - Carp::carp($text); - } - else { - warn $text; - } - }; - local $SIG{__DIE__} = sub { - require Carp; - local $Carp::CarpLevel = 1; # ignore package calling us too. - Carp::croak("$_[0]Illegal null symbol in \@${1}::EXPORT") - if $_[0] =~ /^Unable to create sub named "(.*?)::"/; - }; - - my($pkg, $callpkg, @imports) = @_; - my($type, $sym, $cache_is_current, $oops); - my($exports, $export_cache) = (\@{"${pkg}::EXPORT"}, - $Exporter::Cache{$pkg} ||= {}); - - if (@imports) { - if (!%$export_cache) { - _rebuild_cache ($pkg, $exports, $export_cache); - $cache_is_current = 1; - } - - if (grep m{^[/!:]}, @imports) { - my $tagsref = \%{"${pkg}::EXPORT_TAGS"}; - my $tagdata; - my %imports; - my($remove, $spec, @names, @allexports); - # negated first item implies starting with default set: - unshift @imports, ':DEFAULT' if $imports[0] =~ m/^!/; - foreach $spec (@imports){ - $remove = $spec =~ s/^!//; - - if ($spec =~ s/^://){ - if ($spec eq 'DEFAULT'){ - @names = @$exports; - } - elsif ($tagdata = $tagsref->{$spec}) { - @names = @$tagdata; - } - else { - warn qq["$spec" is not defined in %${pkg}::EXPORT_TAGS]; - ++$oops; - next; - } - } - elsif ($spec =~ m:^/(.*)/$:){ - my $patn = $1; - @allexports = keys %$export_cache unless @allexports; # only do keys once - @names = grep(/$patn/, @allexports); # not anchored by default - } - else { - @names = ($spec); # is a normal symbol name - } - - warn "Import ".($remove ? "del":"add").": @names " - if $Exporter::Verbose; - - if ($remove) { - foreach $sym (@names) { delete $imports{$sym} } - } - else { - @imports{@names} = (1) x @names; - } - } - @imports = keys %imports; - } - - my @carp; - foreach $sym (@imports) { - if (!$export_cache->{$sym}) { - if ($sym =~ m/^\d/) { - $pkg->VERSION($sym); # inherit from UNIVERSAL - # If the version number was the only thing specified - # then we should act as if nothing was specified: - if (@imports == 1) { - @imports = @$exports; - last; - } - # We need a way to emulate 'use Foo ()' but still - # allow an easy version check: "use Foo 1.23, ''"; - if (@imports == 2 and !$imports[1]) { - @imports = (); - last; - } - } elsif ($sym !~ s/^&// || !$export_cache->{$sym}) { - # Last chance - see if they've updated EXPORT_OK since we - # cached it. - - unless ($cache_is_current) { - %$export_cache = (); - _rebuild_cache ($pkg, $exports, $export_cache); - $cache_is_current = 1; - } - - if (!$export_cache->{$sym}) { - # accumulate the non-exports - push @carp, - qq["$sym" is not exported by the $pkg module\n]; - $oops++; - } - } - } - } - if ($oops) { - require Carp; - Carp::croak("@{carp}Can't continue after import errors"); - } - } - else { - @imports = @$exports; - } - - my($fail, $fail_cache) = (\@{"${pkg}::EXPORT_FAIL"}, - $Exporter::FailCache{$pkg} ||= {}); - - if (@$fail) { - if (!%$fail_cache) { - # Build cache of symbols. Optimise the lookup by adding - # barewords twice... both with and without a leading &. - # (Technique could be applied to $export_cache at cost of memory) - my @expanded = map { /^\w/ ? ($_, '&'.$_) : $_ } @$fail; - warn "${pkg}::EXPORT_FAIL cached: @expanded" if $Exporter::Verbose; - @{$fail_cache}{@expanded} = (1) x @expanded; - } - my @failed; - foreach $sym (@imports) { push(@failed, $sym) if $fail_cache->{$sym} } - if (@failed) { - @failed = $pkg->export_fail(@failed); - foreach $sym (@failed) { - require Carp; - Carp::carp(qq["$sym" is not implemented by the $pkg module ], - "on this architecture"); - } - if (@failed) { - require Carp; - Carp::croak("Can't continue after import errors"); - } - } - } - - warn "Importing into $callpkg from $pkg: ", - join(", ",sort @imports) if $Exporter::Verbose; - - foreach $sym (@imports) { - # shortcut for the common case of no type character - (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next) - unless $sym =~ s/^(\W)//; - $type = $1; - no warnings 'once'; - *{"${callpkg}::$sym"} = - $type eq '&' ? \&{"${pkg}::$sym"} : - $type eq '$' ? \${"${pkg}::$sym"} : - $type eq '@' ? \@{"${pkg}::$sym"} : - $type eq '%' ? \%{"${pkg}::$sym"} : - $type eq '*' ? *{"${pkg}::$sym"} : - do { require Carp; Carp::croak("Can't export symbol: $type$sym") }; - } -} - -sub heavy_export_to_level -{ - my $pkg = shift; - my $level = shift; - (undef) = shift; # XXX redundant arg - my $callpkg = caller($level); - $pkg->export($callpkg, @_); -} - -# Utility functions - -sub _push_tags { - my($pkg, $var, $syms) = @_; - my @nontag = (); - my $export_tags = \%{"${pkg}::EXPORT_TAGS"}; - push(@{"${pkg}::$var"}, - map { $export_tags->{$_} ? @{$export_tags->{$_}} - : scalar(push(@nontag,$_),$_) } - (@$syms) ? @$syms : keys %$export_tags); - if (@nontag and $^W) { - # This may change to a die one day - require Carp; - Carp::carp(join(", ", @nontag)." are not tags of $pkg"); - } -} - -sub heavy_require_version { - my($self, $wanted) = @_; - my $pkg = ref $self || $self; - return ${pkg}->VERSION($wanted); -} - -sub heavy_export_tags { - _push_tags((caller)[0], "EXPORT", \@_); -} - -sub heavy_export_ok_tags { - _push_tags((caller)[0], "EXPORT_OK", \@_); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Fcntl.pm b/software/Slic3r-1.3.0.64bit/lib/Fcntl.pm deleted file mode 100644 index 36552257..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Fcntl.pm +++ /dev/null @@ -1,141 +0,0 @@ -#line 1 "Fcntl.pm" -package Fcntl; - -#line 57 - -use strict; -our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); - -require Exporter; -require XSLoader; -@ISA = qw(Exporter); -$VERSION = '1.13'; - -XSLoader::load(); - -# Named groups of exports -%EXPORT_TAGS = ( - 'flock' => [qw(LOCK_SH LOCK_EX LOCK_NB LOCK_UN)], - 'Fcompat' => [qw(FAPPEND FASYNC FCREAT FDEFER FDSYNC FEXCL FLARGEFILE - FNDELAY FNONBLOCK FRSYNC FSYNC FTRUNC)], - 'seek' => [qw(SEEK_SET SEEK_CUR SEEK_END)], - 'mode' => [qw(S_ISUID S_ISGID S_ISVTX S_ISTXT - _S_IFMT S_IFREG S_IFDIR S_IFLNK - S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT - S_IRUSR S_IWUSR S_IXUSR S_IRWXU - S_IRGRP S_IWGRP S_IXGRP S_IRWXG - S_IROTH S_IWOTH S_IXOTH S_IRWXO - S_IREAD S_IWRITE S_IEXEC - S_ISREG S_ISDIR S_ISLNK S_ISSOCK - S_ISBLK S_ISCHR S_ISFIFO - S_ISWHT S_ISENFMT - S_IFMT S_IMODE - )], -); - -# Items to export into callers namespace by default -# (move infrequently used names to @EXPORT_OK below) -@EXPORT = - qw( - FD_CLOEXEC - F_ALLOCSP - F_ALLOCSP64 - F_COMPAT - F_DUP2FD - F_DUPFD - F_EXLCK - F_FREESP - F_FREESP64 - F_FSYNC - F_FSYNC64 - F_GETFD - F_GETFL - F_GETLK - F_GETLK64 - F_GETOWN - F_NODNY - F_POSIX - F_RDACC - F_RDDNY - F_RDLCK - F_RWACC - F_RWDNY - F_SETFD - F_SETFL - F_SETLK - F_SETLK64 - F_SETLKW - F_SETLKW64 - F_SETOWN - F_SHARE - F_SHLCK - F_UNLCK - F_UNSHARE - F_WRACC - F_WRDNY - F_WRLCK - O_ACCMODE - O_ALIAS - O_APPEND - O_ASYNC - O_BINARY - O_CREAT - O_DEFER - O_DIRECT - O_DIRECTORY - O_DSYNC - O_EXCL - O_EXLOCK - O_LARGEFILE - O_NDELAY - O_NOCTTY - O_NOFOLLOW - O_NOINHERIT - O_NONBLOCK - O_RANDOM - O_RAW - O_RDONLY - O_RDWR - O_RSRC - O_RSYNC - O_SEQUENTIAL - O_SHLOCK - O_SYNC - O_TEMPORARY - O_TEXT - O_TRUNC - O_WRONLY - ); - -# Other items we are prepared to export if requested -@EXPORT_OK = (qw( - DN_ACCESS - DN_ATTRIB - DN_CREATE - DN_DELETE - DN_MODIFY - DN_MULTISHOT - DN_RENAME - F_GETLEASE - F_GETPIPE_SZ - F_GETSIG - F_NOTIFY - F_SETLEASE - F_SETPIPE_SZ - F_SETSIG - LOCK_MAND - LOCK_READ - LOCK_RW - LOCK_WRITE - O_ALT_IO - O_EVTONLY - O_IGNORE_CTTY - O_NOATIME - O_NOLINK - O_NOSIGPIPE - O_NOTRANS - O_SYMLINK - O_TTY_INIT -), map {@{$_}} values %EXPORT_TAGS); - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/File/Basename.pm b/software/Slic3r-1.3.0.64bit/lib/File/Basename.pm deleted file mode 100644 index cdbe9ec2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/File/Basename.pm +++ /dev/null @@ -1,238 +0,0 @@ -#line 1 "File/Basename.pm" - -#line 36 - - -package File::Basename; - -# File::Basename is used during the Perl build, when the re extension may -# not be available, but we only actually need it if running under tainting. -BEGIN { - if (${^TAINT}) { - require re; - re->import('taint'); - } -} - - -use strict; -use 5.006; -use warnings; -our(@ISA, @EXPORT, $VERSION, $Fileparse_fstype, $Fileparse_igncase); -require Exporter; -@ISA = qw(Exporter); -@EXPORT = qw(fileparse fileparse_set_fstype basename dirname); -$VERSION = "2.85"; - -fileparse_set_fstype($^O); - - -#line 102 - - -sub fileparse { - my($fullname,@suffices) = @_; - - unless (defined $fullname) { - require Carp; - Carp::croak("fileparse(): need a valid pathname"); - } - - my $orig_type = ''; - my($type,$igncase) = ($Fileparse_fstype, $Fileparse_igncase); - - my($taint) = substr($fullname,0,0); # Is $fullname tainted? - - if ($type eq "VMS" and $fullname =~ m{/} ) { - # We're doing Unix emulation - $orig_type = $type; - $type = 'Unix'; - } - - my($dirpath, $basename); - - if (grep { $type eq $_ } qw(MSDOS DOS MSWin32 Epoc)) { - ($dirpath,$basename) = ($fullname =~ /^((?:.*[:\\\/])?)(.*)/s); - $dirpath .= '.\\' unless $dirpath =~ /[\\\/]\z/; - } - elsif ($type eq "OS2") { - ($dirpath,$basename) = ($fullname =~ m#^((?:.*[:\\/])?)(.*)#s); - $dirpath = './' unless $dirpath; # Can't be 0 - $dirpath .= '/' unless $dirpath =~ m#[\\/]\z#; - } - elsif ($type eq "MacOS") { - ($dirpath,$basename) = ($fullname =~ /^(.*:)?(.*)/s); - $dirpath = ':' unless $dirpath; - } - elsif ($type eq "AmigaOS") { - ($dirpath,$basename) = ($fullname =~ /(.*[:\/])?(.*)/s); - $dirpath = './' unless $dirpath; - } - elsif ($type eq 'VMS' ) { - ($dirpath,$basename) = ($fullname =~ /^(.*[:>\]])?(.*)/s); - $dirpath ||= ''; # should always be defined - } - else { # Default to Unix semantics. - ($dirpath,$basename) = ($fullname =~ m{^(.*/)?(.*)}s); - if ($orig_type eq 'VMS' and $fullname =~ m{^(/[^/]+/000000(/|$))(.*)}) { - # dev:[000000] is top of VMS tree, similar to Unix '/' - # so strip it off and treat the rest as "normal" - my $devspec = $1; - my $remainder = $3; - ($dirpath,$basename) = ($remainder =~ m{^(.*/)?(.*)}s); - $dirpath ||= ''; # should always be defined - $dirpath = $devspec.$dirpath; - } - $dirpath = './' unless $dirpath; - } - - - my $tail = ''; - my $suffix = ''; - if (@suffices) { - foreach $suffix (@suffices) { - my $pat = ($igncase ? '(?i)' : '') . "($suffix)\$"; - if ($basename =~ s/$pat//s) { - $taint .= substr($suffix,0,0); - $tail = $1 . $tail; - } - } - } - - # Ensure taint is propagated from the path to its pieces. - $tail .= $taint; - wantarray ? ($basename .= $taint, $dirpath .= $taint, $tail) - : ($basename .= $taint); -} - - - -#line 212 - - -sub basename { - my($path) = shift; - - # From BSD basename(1) - # The basename utility deletes any prefix ending with the last slash '/' - # character present in string (after first stripping trailing slashes) - _strip_trailing_sep($path); - - my($basename, $dirname, $suffix) = fileparse( $path, map("\Q$_\E",@_) ); - - # From BSD basename(1) - # The suffix is not stripped if it is identical to the remaining - # characters in string. - if( length $suffix and !length $basename ) { - $basename = $suffix; - } - - # Ensure that basename '/' == '/' - if( !length $basename ) { - $basename = $dirname; - } - - return $basename; -} - - - -#line 281 - - -sub dirname { - my $path = shift; - - my($type) = $Fileparse_fstype; - - if( $type eq 'VMS' and $path =~ m{/} ) { - # Parse as Unix - local($File::Basename::Fileparse_fstype) = ''; - return dirname($path); - } - - my($basename, $dirname) = fileparse($path); - - if ($type eq 'VMS') { - $dirname ||= $ENV{DEFAULT}; - } - elsif ($type eq 'MacOS') { - if( !length($basename) && $dirname !~ /^[^:]+:\z/) { - _strip_trailing_sep($dirname); - ($basename,$dirname) = fileparse $dirname; - } - $dirname .= ":" unless $dirname =~ /:\z/; - } - elsif (grep { $type eq $_ } qw(MSDOS DOS MSWin32 OS2)) { - _strip_trailing_sep($dirname); - unless( length($basename) ) { - ($basename,$dirname) = fileparse $dirname; - _strip_trailing_sep($dirname); - } - } - elsif ($type eq 'AmigaOS') { - if ( $dirname =~ /:\z/) { return $dirname } - chop $dirname; - $dirname =~ s{[^:/]+\z}{} unless length($basename); - } - else { - _strip_trailing_sep($dirname); - unless( length($basename) ) { - ($basename,$dirname) = fileparse $dirname; - _strip_trailing_sep($dirname); - } - } - - $dirname; -} - - -# Strip the trailing path separator. -sub _strip_trailing_sep { - my $type = $Fileparse_fstype; - - if ($type eq 'MacOS') { - $_[0] =~ s/([^:]):\z/$1/s; - } - elsif (grep { $type eq $_ } qw(MSDOS DOS MSWin32 OS2)) { - $_[0] =~ s/([^:])[\\\/]*\z/$1/; - } - else { - $_[0] =~ s{(.)/*\z}{$1}s; - } -} - - -#line 369 - - -BEGIN { - -my @Ignore_Case = qw(MacOS VMS AmigaOS OS2 RISCOS MSWin32 MSDOS DOS Epoc); -my @Types = (@Ignore_Case, qw(Unix)); - -sub fileparse_set_fstype { - my $old = $Fileparse_fstype; - - if (@_) { - my $new_type = shift; - - $Fileparse_fstype = 'Unix'; # default - foreach my $type (@Types) { - $Fileparse_fstype = $type if $new_type =~ /^$type/i; - } - - $Fileparse_igncase = - (grep $Fileparse_fstype eq $_, @Ignore_Case) ? 1 : 0; - } - - return $old; -} - -} - - -1; - - -#line 403 \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/lib/File/Glob.pm b/software/Slic3r-1.3.0.64bit/lib/File/Glob.pm deleted file mode 100644 index e9a3bdbf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/File/Glob.pm +++ /dev/null @@ -1,86 +0,0 @@ -#line 1 "File/Glob.pm" -package File::Glob; - -use strict; -our($VERSION, @ISA, @EXPORT_OK, @EXPORT_FAIL, %EXPORT_TAGS, $DEFAULT_FLAGS); - -require XSLoader; - -@ISA = qw(Exporter); - -# NOTE: The glob() export is only here for compatibility with 5.6.0. -# csh_glob() should not be used directly, unless you know what you're doing. - -%EXPORT_TAGS = ( - 'glob' => [ qw( - GLOB_ABEND - GLOB_ALPHASORT - GLOB_ALTDIRFUNC - GLOB_BRACE - GLOB_CSH - GLOB_ERR - GLOB_ERROR - GLOB_LIMIT - GLOB_MARK - GLOB_NOCASE - GLOB_NOCHECK - GLOB_NOMAGIC - GLOB_NOSORT - GLOB_NOSPACE - GLOB_QUOTE - GLOB_TILDE - bsd_glob - glob - ) ], -); -$EXPORT_TAGS{bsd_glob} = [@{$EXPORT_TAGS{glob}}]; -pop @{$EXPORT_TAGS{bsd_glob}}; # no "glob" - -@EXPORT_OK = (@{$EXPORT_TAGS{'glob'}}, 'csh_glob'); - -$VERSION = '1.26'; - -sub import { - require Exporter; - local $Exporter::ExportLevel = $Exporter::ExportLevel + 1; - Exporter::import(grep { - my $passthrough; - if ($_ eq ':case') { - $DEFAULT_FLAGS &= ~GLOB_NOCASE() - } - elsif ($_ eq ':nocase') { - $DEFAULT_FLAGS |= GLOB_NOCASE(); - } - elsif ($_ eq ':globally') { - no warnings 'redefine'; - *CORE::GLOBAL::glob = \&File::Glob::csh_glob; - } - elsif ($_ eq ':bsd_glob') { - no strict; *{caller."::glob"} = \&bsd_glob_override; - $passthrough = 1; - } - else { - $passthrough = 1; - } - $passthrough; - } @_); -} - -XSLoader::load(); - -$DEFAULT_FLAGS = GLOB_CSH(); -if ($^O =~ /^(?:MSWin32|VMS|os2|dos|riscos)$/) { - $DEFAULT_FLAGS |= GLOB_NOCASE(); -} - -# File::Glob::glob() is deprecated because its prototype is different from -# CORE::glob() (use bsd_glob() instead) -sub glob { - splice @_, 1; # no flags - goto &bsd_glob; -} - -1; -__END__ - -#line 410 diff --git a/software/Slic3r-1.3.0.64bit/lib/File/GlobMapper.pm b/software/Slic3r-1.3.0.64bit/lib/File/GlobMapper.pm deleted file mode 100644 index 86c88ff4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/File/GlobMapper.pm +++ /dev/null @@ -1,376 +0,0 @@ -#line 1 "File/GlobMapper.pm" -package File::GlobMapper; - -use strict; -use warnings; -use Carp; - -our ($CSH_GLOB); - -BEGIN -{ - if ($] < 5.006) - { - require File::BSDGlob; import File::BSDGlob qw(:glob) ; - $CSH_GLOB = File::BSDGlob::GLOB_CSH() ; - *globber = \&File::BSDGlob::csh_glob; - } - else - { - require File::Glob; import File::Glob qw(:glob) ; - $CSH_GLOB = File::Glob::GLOB_CSH() ; - #*globber = \&File::Glob::bsd_glob; - *globber = \&File::Glob::csh_glob; - } -} - -our ($Error); - -our ($VERSION, @EXPORT_OK); -$VERSION = '1.000'; -@EXPORT_OK = qw( globmap ); - - -our ($noPreBS, $metachars, $matchMetaRE, %mapping, %wildCount); -$noPreBS = '(? '([^/]*)', - '?' => '([^/])', - '.' => '\.', - '[' => '([', - '(' => '(', - ')' => ')', - ); - -%wildCount = map { $_ => 1 } qw/ * ? . { ( [ /; - -sub globmap ($$;) -{ - my $inputGlob = shift ; - my $outputGlob = shift ; - - my $obj = new File::GlobMapper($inputGlob, $outputGlob, @_) - or croak "globmap: $Error" ; - return $obj->getFileMap(); -} - -sub new -{ - my $class = shift ; - my $inputGlob = shift ; - my $outputGlob = shift ; - # TODO -- flags needs to default to whatever File::Glob does - my $flags = shift || $CSH_GLOB ; - #my $flags = shift ; - - $inputGlob =~ s/^\s*\<\s*//; - $inputGlob =~ s/\s*\>\s*$//; - - $outputGlob =~ s/^\s*\<\s*//; - $outputGlob =~ s/\s*\>\s*$//; - - my %object = - ( InputGlob => $inputGlob, - OutputGlob => $outputGlob, - GlobFlags => $flags, - Braces => 0, - WildCount => 0, - Pairs => [], - Sigil => '#', - ); - - my $self = bless \%object, ref($class) || $class ; - - $self->_parseInputGlob() - or return undef ; - - $self->_parseOutputGlob() - or return undef ; - - my @inputFiles = globber($self->{InputGlob}, $flags) ; - - if (GLOB_ERROR) - { - $Error = $!; - return undef ; - } - - #if (whatever) - { - my $missing = grep { ! -e $_ } @inputFiles ; - - if ($missing) - { - $Error = "$missing input files do not exist"; - return undef ; - } - } - - $self->{InputFiles} = \@inputFiles ; - - $self->_getFiles() - or return undef ; - - return $self; -} - -sub _retError -{ - my $string = shift ; - $Error = "$string in input fileglob" ; - return undef ; -} - -sub _unmatched -{ - my $delimeter = shift ; - - _retError("Unmatched $delimeter"); - return undef ; -} - -sub _parseBit -{ - my $self = shift ; - - my $string = shift ; - - my $out = ''; - my $depth = 0 ; - - while ($string =~ s/(.*?)$noPreBS(,|$matchMetaRE)//) - { - $out .= quotemeta($1) ; - $out .= $mapping{$2} if defined $mapping{$2}; - - ++ $self->{WildCount} if $wildCount{$2} ; - - if ($2 eq ',') - { - return _unmatched("(") - if $depth ; - - $out .= '|'; - } - elsif ($2 eq '(') - { - ++ $depth ; - } - elsif ($2 eq ')') - { - return _unmatched(")") - if ! $depth ; - - -- $depth ; - } - elsif ($2 eq '[') - { - # TODO -- quotemeta & check no '/' - # TODO -- check for \] & other \ within the [] - $string =~ s#(.*?\])## - or return _unmatched("["); - $out .= "$1)" ; - } - elsif ($2 eq ']') - { - return _unmatched("]"); - } - elsif ($2 eq '{' || $2 eq '}') - { - return _retError("Nested {} not allowed"); - } - } - - $out .= quotemeta $string; - - return _unmatched("(") - if $depth ; - - return $out ; -} - -sub _parseInputGlob -{ - my $self = shift ; - - my $string = $self->{InputGlob} ; - my $inGlob = ''; - - # Multiple concatenated *'s don't make sense - #$string =~ s#\*\*+#*# ; - - # TODO -- Allow space to delimit patterns? - #my @strings = split /\s+/, $string ; - #for my $str (@strings) - my $out = ''; - my $depth = 0 ; - - while ($string =~ s/(.*?)$noPreBS($matchMetaRE)//) - { - $out .= quotemeta($1) ; - $out .= $mapping{$2} if defined $mapping{$2}; - ++ $self->{WildCount} if $wildCount{$2} ; - - if ($2 eq '(') - { - ++ $depth ; - } - elsif ($2 eq ')') - { - return _unmatched(")") - if ! $depth ; - - -- $depth ; - } - elsif ($2 eq '[') - { - # TODO -- quotemeta & check no '/' or '(' or ')' - # TODO -- check for \] & other \ within the [] - $string =~ s#(.*?\])## - or return _unmatched("["); - $out .= "$1)" ; - } - elsif ($2 eq ']') - { - return _unmatched("]"); - } - elsif ($2 eq '}') - { - return _unmatched("}"); - } - elsif ($2 eq '{') - { - # TODO -- check no '/' within the {} - # TODO -- check for \} & other \ within the {} - - my $tmp ; - unless ( $string =~ s/(.*?)$noPreBS\}//) - { - return _unmatched("{"); - } - #$string =~ s#(.*?)\}##; - - #my $alt = join '|', - # map { quotemeta $_ } - # split "$noPreBS,", $1 ; - my $alt = $self->_parseBit($1); - defined $alt or return 0 ; - $out .= "($alt)" ; - - ++ $self->{Braces} ; - } - } - - return _unmatched("(") - if $depth ; - - $out .= quotemeta $string ; - - - $self->{InputGlob} =~ s/$noPreBS[\(\)]//g; - $self->{InputPattern} = $out ; - - #print "# INPUT '$self->{InputGlob}' => '$out'\n"; - - return 1 ; - -} - -sub _parseOutputGlob -{ - my $self = shift ; - - my $string = $self->{OutputGlob} ; - my $maxwild = $self->{WildCount}; - - if ($self->{GlobFlags} & GLOB_TILDE) - #if (1) - { - $string =~ s{ - ^ ~ # find a leading tilde - ( # save this in $1 - [^/] # a non-slash character - * # repeated 0 or more times (0 means me) - ) - }{ - $1 - ? (getpwnam($1))[7] - : ( $ENV{HOME} || $ENV{LOGDIR} ) - }ex; - - } - - # max #1 must be == to max no of '*' in input - while ( $string =~ m/#(\d)/g ) - { - croak "Max wild is #$maxwild, you tried #$1" - if $1 > $maxwild ; - } - - my $noPreBS = '(?{OutputGlob}' => '$string'\n"; - $self->{OutputPattern} = $string ; - - return 1 ; -} - -sub _getFiles -{ - my $self = shift ; - - my %outInMapping = (); - my %inFiles = () ; - - foreach my $inFile (@{ $self->{InputFiles} }) - { - next if $inFiles{$inFile} ++ ; - - my $outFile = $inFile ; - - if ( $inFile =~ m/$self->{InputPattern}/ ) - { - no warnings 'uninitialized'; - eval "\$outFile = $self->{OutputPattern};" ; - - if (defined $outInMapping{$outFile}) - { - $Error = "multiple input files map to one output file"; - return undef ; - } - $outInMapping{$outFile} = $inFile; - push @{ $self->{Pairs} }, [$inFile, $outFile]; - } - } - - return 1 ; -} - -sub getFileMap -{ - my $self = shift ; - - return $self->{Pairs} ; -} - -sub getHash -{ - my $self = shift ; - - return { map { $_->[0] => $_->[1] } @{ $self->{Pairs} } } ; -} - -1; - -__END__ - -#line 680 \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/lib/File/Listing.pm b/software/Slic3r-1.3.0.64bit/lib/File/Listing.pm deleted file mode 100644 index f3eaf7df..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/File/Listing.pm +++ /dev/null @@ -1,376 +0,0 @@ -#line 1 "File/Listing.pm" -package File::Listing; - -sub Version { $VERSION; } -$VERSION = "6.04"; - -require Exporter; -@ISA = qw(Exporter); -@EXPORT = qw(parse_dir); - -use strict; - -use Carp (); -use HTTP::Date qw(str2time); - - - -sub parse_dir ($;$$$) -{ - my($dir, $tz, $fstype, $error) = @_; - - $fstype ||= 'unix'; - $fstype = "File::Listing::" . lc $fstype; - - my @args = $_[0]; - push(@args, $tz) if(@_ >= 2); - push(@args, $error) if(@_ >= 4); - - $fstype->parse(@args); -} - - -sub line { Carp::croak("Not implemented yet"); } -sub init { } # Dummy sub - - -sub file_mode ($) -{ - Carp::croak("Input to file_mode() must be a 10 character string.") - unless length($_[0]) == 10; - - # This routine was originally borrowed from Graham Barr's - # Net::FTP package. - - local $_ = shift; - my $mode = 0; - my($type); - - s/^(.)// and $type = $1; - - # When the set-group-ID bit (file mode bit 02000) is set, and the group - # execution bit (file mode bit 00020) is unset, and it is a regular file, - # some implementations of `ls' use the letter `S', others use `l' or `L'. - # Convert this `S'. - - s/[Ll](...)$/S$1/; - - while (/(.)/g) { - $mode <<= 1; - $mode |= 1 if $1 ne "-" && - $1 ne 'S' && - $1 ne 'T'; - } - - $mode |= 0004000 if /^..s....../i; - $mode |= 0002000 if /^.....s.../i; - $mode |= 0001000 if /^........t/i; - - # De facto standard definitions. From 'stat.h' on Solaris 9. - - $type eq "p" and $mode |= 0010000 or # fifo - $type eq "c" and $mode |= 0020000 or # character special - $type eq "d" and $mode |= 0040000 or # directory - $type eq "b" and $mode |= 0060000 or # block special - $type eq "-" and $mode |= 0100000 or # regular - $type eq "l" and $mode |= 0120000 or # symbolic link - $type eq "s" and $mode |= 0140000 or # socket - $type eq "D" and $mode |= 0150000 or # door - Carp::croak("Unknown file type: $type"); - - $mode; -} - - -sub parse -{ - my($pkg, $dir, $tz, $error) = @_; - - # First let's try to determine what kind of dir parameter we have - # received. We allow both listings, reference to arrays and - # file handles to read from. - - if (ref($dir) eq 'ARRAY') { - # Already splitted up - } - elsif (ref($dir) eq 'GLOB') { - # A file handle - } - elsif (ref($dir)) { - Carp::croak("Illegal argument to parse_dir()"); - } - elsif ($dir =~ /^\*\w+(::\w+)+$/) { - # This scalar looks like a file handle, so we assume it is - } - else { - # A normal scalar listing - $dir = [ split(/\n/, $dir) ]; - } - - $pkg->init(); - - my @files = (); - if (ref($dir) eq 'ARRAY') { - for (@$dir) { - push(@files, $pkg->line($_, $tz, $error)); - } - } - else { - local($_); - while (<$dir>) { - chomp; - push(@files, $pkg->line($_, $tz, $error)); - } - } - wantarray ? @files : \@files; -} - - - -package File::Listing::unix; - -use HTTP::Date qw(str2time); - -# A place to remember current directory from last line parsed. -use vars qw($curdir @ISA); - -@ISA = qw(File::Listing); - - - -sub init -{ - $curdir = ''; -} - - -sub line -{ - shift; # package name - local($_) = shift; - my($tz, $error) = @_; - - s/\015//g; - #study; - - my ($kind, $size, $date, $name); - if (($kind, $size, $date, $name) = - /^([\-FlrwxsStTdD]{10}) # Type and permission bits - .* # Graps - \D(\d+) # File size - \s+ # Some space - (\w{3}\s+\d+\s+(?:\d{1,2}:\d{2}|\d{4})|\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}) # Date - \s+ # Some more space - (.*)$ # File name - /x ) - - { - return if $name eq '.' || $name eq '..'; - $name = "$curdir/$name" if length $curdir; - my $type = '?'; - if ($kind =~ /^l/ && $name =~ /(.*) -> (.*)/ ) { - $name = $1; - $type = "l $2"; - } - elsif ($kind =~ /^[\-F]/) { # (hopefully) a regular file - $type = 'f'; - } - elsif ($kind =~ /^[dD]/) { - $type = 'd'; - $size = undef; # Don't believe the reported size - } - return [$name, $type, $size, str2time($date, $tz), - File::Listing::file_mode($kind)]; - - } - elsif (/^(.+):$/ && !/^[dcbsp].*\s.*\s.*:$/ ) { - my $dir = $1; - return () if $dir eq '.'; - $curdir = $dir; - return (); - } - elsif (/^[Tt]otal\s+(\d+)$/ || /^\s*$/) { - return (); - } - elsif (/not found/ || # OSF1, HPUX, and SunOS return - # "$file not found" - /No such file/ || # IRIX returns - # "UX:ls: ERROR: Cannot access $file: No such file or directory" - # Solaris returns - # "$file: No such file or directory" - /cannot find/ # Windows NT returns - # "The system cannot find the path specified." - ) { - return () unless defined $error; - &$error($_) if ref($error) eq 'CODE'; - warn "Error: $_\n" if $error eq 'warn'; - return (); - } - elsif ($_ eq '') { # AIX, and Linux return nothing - return () unless defined $error; - &$error("No such file or directory") if ref($error) eq 'CODE'; - warn "Warning: No such file or directory\n" if $error eq 'warn'; - return (); - } - else { - # parse failed, check if the dosftp parse understands it - File::Listing::dosftp->init(); - return(File::Listing::dosftp->line($_,$tz,$error)); - } - -} - - - -package File::Listing::dosftp; - -use HTTP::Date qw(str2time); - -# A place to remember current directory from last line parsed. -use vars qw($curdir @ISA); - -@ISA = qw(File::Listing); - - - -sub init -{ - $curdir = ''; -} - - -sub line -{ - shift; # package name - local($_) = shift; - my($tz, $error) = @_; - - s/\015//g; - - my ($date, $size_or_dir, $name, $size); - - # 02-05-96 10:48AM 1415 src.slf - # 09-10-96 09:18AM sl_util - if (($date, $size_or_dir, $name) = - /^(\d\d-\d\d-\d\d\s+\d\d:\d\d\wM) # Date and time info - \s+ # Some space - (<\w{3}>|\d+) # Dir or Size - \s+ # Some more space - (.+)$ # File name - /x ) - { - return if $name eq '.' || $name eq '..'; - $name = "$curdir/$name" if length $curdir; - my $type = '?'; - if ($size_or_dir eq '') { - $type = "d"; - $size = ""; # directories have no size in the pc listing - } - else { - $type = 'f'; - $size = $size_or_dir; - } - return [$name, $type, $size, str2time($date, $tz), undef]; - } - else { - return () unless defined $error; - &$error($_) if ref($error) eq 'CODE'; - warn "Can't parse: $_\n" if $error eq 'warn'; - return (); - } - -} - - - -package File::Listing::vms; -@File::Listing::vms::ISA = qw(File::Listing); - -package File::Listing::netware; -@File::Listing::netware::ISA = qw(File::Listing); - - - -package File::Listing::apache; - -use vars qw(@ISA); - -@ISA = qw(File::Listing); - - -sub init { } - - -sub line { - shift; # package name - local($_) = shift; - my($tz, $error) = @_; # ignored for now... - - s!]*>! !g; # clean away various table stuff - if (m!.*.*?(\d+)-([a-zA-Z]+|\d+)-(\d+)\s+(\d+):(\d+)\s+(?:([\d\.]+[kMG]?|-))!i) { - my($filename, $filesize) = ($1, $7); - my($d,$m,$y, $H,$M) = ($2,$3,$4,$5,$6); - if ($m =~ /^\d+$/) { - ($d,$y) = ($y,$d) # iso date - } - else { - $m = _monthabbrev_number($m); - } - - $filesize = 0 if $filesize eq '-'; - if ($filesize =~ s/k$//i) { - $filesize *= 1024; - } - elsif ($filesize =~ s/M$//) { - $filesize *= 1024*1024; - } - elsif ($filesize =~ s/G$//) { - $filesize *= 1024*1024*1024; - } - $filesize = int $filesize; - - require Time::Local; - my $filetime = Time::Local::timelocal(0,$M,$H,$d,$m-1,_guess_year($y)-1900); - my $filetype = ($filename =~ s|/$|| ? "d" : "f"); - return [$filename, $filetype, $filesize, $filetime, undef]; - } - - return (); -} - - -sub _guess_year { - my $y = shift; - if ($y >= 90) { - $y = 1900+$y; - } - elsif ($y < 100) { - $y = 2000+$y; - } - $y; -} - - -sub _monthabbrev_number { - my $mon = shift; - +{'Jan' => 1, - 'Feb' => 2, - 'Mar' => 3, - 'Apr' => 4, - 'May' => 5, - 'Jun' => 6, - 'Jul' => 7, - 'Aug' => 8, - 'Sep' => 9, - 'Oct' => 10, - 'Nov' => 11, - 'Dec' => 12, - }->{$mon}; -} - - -1; - -__END__ - -#line 436 \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/lib/File/Spec.pm b/software/Slic3r-1.3.0.64bit/lib/File/Spec.pm deleted file mode 100644 index 05c6b227..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/File/Spec.pm +++ /dev/null @@ -1,31 +0,0 @@ -#line 1 "File/Spec.pm" -package File::Spec; - -use strict; -use vars qw(@ISA $VERSION); - -$VERSION = '3.63_01'; -$VERSION =~ tr/_//d; - -my %module = (MacOS => 'Mac', - MSWin32 => 'Win32', - os2 => 'OS2', - VMS => 'VMS', - epoc => 'Epoc', - NetWare => 'Win32', # Yes, File::Spec::Win32 works on NetWare. - symbian => 'Win32', # Yes, File::Spec::Win32 works on symbian. - dos => 'OS2', # Yes, File::Spec::OS2 works on DJGPP. - cygwin => 'Cygwin', - amigaos => 'AmigaOS'); - - -my $module = $module{$^O} || 'Unix'; - -require "File/Spec/$module.pm"; -@ISA = ("File::Spec::$module"); - -1; - -__END__ - -#line 341 diff --git a/software/Slic3r-1.3.0.64bit/lib/File/Spec/Unix.pm b/software/Slic3r-1.3.0.64bit/lib/File/Spec/Unix.pm deleted file mode 100644 index 217eb20f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/File/Spec/Unix.pm +++ /dev/null @@ -1,385 +0,0 @@ -#line 1 "File/Spec/Unix.pm" -package File::Spec::Unix; - -use strict; -use vars qw($VERSION); - -$VERSION = '3.63_01'; -my $xs_version = $VERSION; -$VERSION =~ tr/_//d; - -#dont try to load XSLoader and DynaLoader only to ultimately fail on miniperl -if(!defined &canonpath && defined &DynaLoader::boot_DynaLoader) { - eval {#eval is questionable since we are handling potential errors like - #"Cwd object version 3.48 does not match bootstrap parameter 3.50 - #at lib/DynaLoader.pm line 216." by having this eval - if ( $] >= 5.006 ) { - require XSLoader; - XSLoader::load("Cwd", $xs_version); - } else { - require Cwd; - } - }; -} - -#line 57 - -sub _pp_canonpath { - my ($self,$path) = @_; - return unless defined $path; - - # Handle POSIX-style node names beginning with double slash (qnx, nto) - # (POSIX says: "a pathname that begins with two successive slashes - # may be interpreted in an implementation-defined manner, although - # more than two leading slashes shall be treated as a single slash.") - my $node = ''; - my $double_slashes_special = $^O eq 'qnx' || $^O eq 'nto'; - - - if ( $double_slashes_special - && ( $path =~ s{^(//[^/]+)/?\z}{}s || $path =~ s{^(//[^/]+)/}{/}s ) ) { - $node = $1; - } - # This used to be - # $path =~ s|/+|/|g unless ($^O eq 'cygwin'); - # but that made tests 29, 30, 35, 46, and 213 (as of #13272) to fail - # (Mainly because trailing "" directories didn't get stripped). - # Why would cygwin avoid collapsing multiple slashes into one? --jhi - $path =~ s|/{2,}|/|g; # xx////xx -> xx/xx - $path =~ s{(?:/\.)+(?:/|\z)}{/}g; # xx/././xx -> xx/xx - $path =~ s|^(?:\./)+||s unless $path eq "./"; # ./xx -> xx - $path =~ s|^/(?:\.\./)+|/|; # /../../xx -> xx - $path =~ s|^/\.\.$|/|; # /.. -> / - $path =~ s|/\z|| unless $path eq "/"; # xx/ -> xx - return "$node$path"; -} -*canonpath = \&_pp_canonpath unless defined &canonpath; - -#line 98 - -sub _pp_catdir { - my $self = shift; - - $self->canonpath(join('/', @_, '')); # '' because need a trailing '/' -} -*catdir = \&_pp_catdir unless defined &catdir; - -#line 112 - -sub _pp_catfile { - my $self = shift; - my $file = $self->canonpath(pop @_); - return $file unless @_; - my $dir = $self->catdir(@_); - $dir .= "/" unless substr($dir,-1) eq "/"; - return $dir.$file; -} -*catfile = \&_pp_catfile unless defined &catfile; - -#line 128 - -sub curdir { '.' } -use constant _fn_curdir => "."; - -#line 137 - -sub devnull { '/dev/null' } -use constant _fn_devnull => "/dev/null"; - -#line 146 - -sub rootdir { '/' } -use constant _fn_rootdir => "/"; - -#line 163 - -my ($tmpdir, %tmpenv); -# Cache and return the calculated tmpdir, recording which env vars -# determined it. -sub _cache_tmpdir { - @tmpenv{@_[2..$#_]} = @ENV{@_[2..$#_]}; - return $tmpdir = $_[1]; -} -# Retrieve the cached tmpdir, checking first whether relevant env vars have -# changed and invalidated the cache. -sub _cached_tmpdir { - shift; - local $^W; - return if grep $ENV{$_} ne $tmpenv{$_}, @_; - return $tmpdir; -} -sub _tmpdir { - my $self = shift; - my @dirlist = @_; - my $taint = do { no strict 'refs'; ${"\cTAINT"} }; - if ($taint) { # Check for taint mode on perl >= 5.8.0 - require Scalar::Util; - @dirlist = grep { ! Scalar::Util::tainted($_) } @dirlist; - } - elsif ($] < 5.007) { # No ${^TAINT} before 5.8 - @dirlist = grep { eval { eval('1'.substr $_,0,0) } } @dirlist; - } - - foreach (@dirlist) { - next unless defined && -d && -w _; - $tmpdir = $_; - last; - } - $tmpdir = $self->curdir unless defined $tmpdir; - $tmpdir = defined $tmpdir && $self->canonpath($tmpdir); - if ( !$self->file_name_is_absolute($tmpdir) ) { - # See [perl #120593] for the full details - # If possible, return a full path, rather than '.' or 'lib', but - # jump through some hoops to avoid returning a tainted value. - ($tmpdir) = grep { - $taint ? ! Scalar::Util::tainted($_) : - $] < 5.007 ? eval { eval('1'.substr $_,0,0) } : 1 - } $self->rel2abs($tmpdir), $tmpdir; - } - return $tmpdir; -} - -sub tmpdir { - my $cached = $_[0]->_cached_tmpdir('TMPDIR'); - return $cached if defined $cached; - $_[0]->_cache_tmpdir($_[0]->_tmpdir( $ENV{TMPDIR}, "/tmp" ), 'TMPDIR'); -} - -#line 221 - -sub updir { '..' } -use constant _fn_updir => ".."; - -#line 231 - -sub no_upwards { - my $self = shift; - return grep(!/^\.{1,2}\z/s, @_); -} - -#line 243 - -sub case_tolerant { 0 } -use constant _fn_case_tolerant => 0; - -#line 256 - -sub file_name_is_absolute { - my ($self,$file) = @_; - return scalar($file =~ m:^/:s); -} - -#line 267 - -sub path { - return () unless exists $ENV{PATH}; - my @path = split(':', $ENV{PATH}); - foreach (@path) { $_ = '.' if $_ eq '' } - return @path; -} - -#line 280 - -sub join { - my $self = shift; - return $self->catfile(@_); -} - -#line 306 - -sub splitpath { - my ($self,$path, $nofile) = @_; - - my ($volume,$directory,$file) = ('','',''); - - if ( $nofile ) { - $directory = $path; - } - else { - $path =~ m|^ ( (?: .* / (?: \.\.?\z )? )? ) ([^/]*) |xs; - $directory = $1; - $file = $2; - } - - return ($volume,$directory,$file); -} - - -#line 348 - -sub splitdir { - return split m|/|, $_[1], -1; # Preserve trailing fields -} - - -#line 362 - -sub catpath { - my ($self,$volume,$directory,$file) = @_; - - if ( $directory ne '' && - $file ne '' && - substr( $directory, -1 ) ne '/' && - substr( $file, 0, 1 ) ne '/' - ) { - $directory .= "/$file" ; - } - else { - $directory .= $file ; - } - - return $directory ; -} - -#line 409 - -sub abs2rel { - my($self,$path,$base) = @_; - $base = $self->_cwd() unless defined $base and length $base; - - ($path, $base) = map $self->canonpath($_), $path, $base; - - my $path_directories; - my $base_directories; - - if (grep $self->file_name_is_absolute($_), $path, $base) { - ($path, $base) = map $self->rel2abs($_), $path, $base; - - my ($path_volume) = $self->splitpath($path, 1); - my ($base_volume) = $self->splitpath($base, 1); - - # Can't relativize across volumes - return $path unless $path_volume eq $base_volume; - - $path_directories = ($self->splitpath($path, 1))[1]; - $base_directories = ($self->splitpath($base, 1))[1]; - - # For UNC paths, the user might give a volume like //foo/bar that - # strictly speaking has no directory portion. Treat it as if it - # had the root directory for that volume. - if (!length($base_directories) and $self->file_name_is_absolute($base)) { - $base_directories = $self->rootdir; - } - } - else { - my $wd= ($self->splitpath($self->_cwd(), 1))[1]; - $path_directories = $self->catdir($wd, $path); - $base_directories = $self->catdir($wd, $base); - } - - # Now, remove all leading components that are the same - my @pathchunks = $self->splitdir( $path_directories ); - my @basechunks = $self->splitdir( $base_directories ); - - if ($base_directories eq $self->rootdir) { - return $self->curdir if $path_directories eq $self->rootdir; - shift @pathchunks; - return $self->canonpath( $self->catpath('', $self->catdir( @pathchunks ), '') ); - } - - my @common; - while (@pathchunks && @basechunks && $self->_same($pathchunks[0], $basechunks[0])) { - push @common, shift @pathchunks ; - shift @basechunks ; - } - return $self->curdir unless @pathchunks || @basechunks; - - # @basechunks now contains the directories the resulting relative path - # must ascend out of before it can descend to $path_directory. If there - # are updir components, we must descend into the corresponding directories - # (this only works if they are no symlinks). - my @reverse_base; - while( defined(my $dir= shift @basechunks) ) { - if( $dir ne $self->updir ) { - unshift @reverse_base, $self->updir; - push @common, $dir; - } - elsif( @common ) { - if( @reverse_base && $reverse_base[0] eq $self->updir ) { - shift @reverse_base; - pop @common; - } - else { - unshift @reverse_base, pop @common; - } - } - } - my $result_dirs = $self->catdir( @reverse_base, @pathchunks ); - return $self->canonpath( $self->catpath('', $result_dirs, '') ); -} - -sub _same { - $_[1] eq $_[2]; -} - -#line 514 - -sub rel2abs { - my ($self,$path,$base ) = @_; - - # Clean up $path - if ( ! $self->file_name_is_absolute( $path ) ) { - # Figure out the effective $base and clean it up. - if ( !defined( $base ) || $base eq '' ) { - $base = $self->_cwd(); - } - elsif ( ! $self->file_name_is_absolute( $base ) ) { - $base = $self->rel2abs( $base ) ; - } - else { - $base = $self->canonpath( $base ) ; - } - - # Glom them together - $path = $self->catdir( $base, $path ) ; - } - - return $self->canonpath( $path ) ; -} - -#line 554 - -# Internal routine to File::Spec, no point in making this public since -# it is the standard Cwd interface. Most of the platform-specific -# File::Spec subclasses use this. -sub _cwd { - require Cwd; - Cwd::getcwd(); -} - - -# Internal method to reduce xx\..\yy -> yy -sub _collapse { - my($fs, $path) = @_; - - my $updir = $fs->updir; - my $curdir = $fs->curdir; - - my($vol, $dirs, $file) = $fs->splitpath($path); - my @dirs = $fs->splitdir($dirs); - pop @dirs if @dirs && $dirs[-1] eq ''; - - my @collapsed; - foreach my $dir (@dirs) { - if( $dir eq $updir and # if we have an updir - @collapsed and # and something to collapse - length $collapsed[-1] and # and its not the rootdir - $collapsed[-1] ne $updir and # nor another updir - $collapsed[-1] ne $curdir # nor the curdir - ) - { # then - pop @collapsed; # collapse - } - else { # else - push @collapsed, $dir; # just hang onto it - } - } - - return $fs->catpath($vol, - $fs->catdir(@collapsed), - $file - ); -} - - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/File/Spec/Win32.pm b/software/Slic3r-1.3.0.64bit/lib/File/Spec/Win32.pm deleted file mode 100644 index 157cef7b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/File/Spec/Win32.pm +++ /dev/null @@ -1,322 +0,0 @@ -#line 1 "File/Spec/Win32.pm" -package File::Spec::Win32; - -use strict; - -use vars qw(@ISA $VERSION); -require File::Spec::Unix; - -$VERSION = '3.63_01'; -$VERSION =~ tr/_//d; - -@ISA = qw(File::Spec::Unix); - -# Some regexes we use for path splitting -my $DRIVE_RX = '[a-zA-Z]:'; -my $UNC_RX = '(?:\\\\\\\\|//)[^\\\\/]+[\\\\/][^\\\\/]+'; -my $VOL_RX = "(?:$DRIVE_RX|$UNC_RX)"; - - -#line 40 - -sub devnull { - return "nul"; -} - -sub rootdir { '\\' } - - -#line 69 - -sub tmpdir { - my $tmpdir = $_[0]->_cached_tmpdir(qw(TMPDIR TEMP TMP)); - return $tmpdir if defined $tmpdir; - $tmpdir = $_[0]->_tmpdir( map( $ENV{$_}, qw(TMPDIR TEMP TMP) ), - 'SYS:/temp', - 'C:\system\temp', - 'C:/temp', - '/tmp', - '/' ); - $_[0]->_cache_tmpdir($tmpdir, qw(TMPDIR TEMP TMP)); -} - -#line 91 - -sub case_tolerant { - eval { - local @INC = @INC; - pop @INC if $INC[-1] eq '.'; - require Win32API::File; - } or return 1; - my $drive = shift || "C:"; - my $osFsType = "\0"x256; - my $osVolName = "\0"x256; - my $ouFsFlags = 0; - Win32API::File::GetVolumeInformation($drive, $osVolName, 256, [], [], $ouFsFlags, $osFsType, 256 ); - if ($ouFsFlags & Win32API::File::FS_CASE_SENSITIVE()) { return 0; } - else { return 1; } -} - -#line 113 - -sub file_name_is_absolute { - - my ($self,$file) = @_; - - if ($file =~ m{^($VOL_RX)}o) { - my $vol = $1; - return ($vol =~ m{^$UNC_RX}o ? 2 - : $file =~ m{^$DRIVE_RX[\\/]}o ? 2 - : 0); - } - return $file =~ m{^[\\/]} ? 1 : 0; -} - -#line 133 - -sub catfile { - shift; - - # Legacy / compatibility support - # - shift, return _canon_cat( "/", @_ ) - if $_[0] eq ""; - - # Compatibility with File::Spec <= 3.26: - # catfile('A:', 'foo') should return 'A:\foo'. - return _canon_cat( ($_[0].'\\'), @_[1..$#_] ) - if $_[0] =~ m{^$DRIVE_RX\z}o; - - return _canon_cat( @_ ); -} - -sub catdir { - shift; - - # Legacy / compatibility support - # - return "" - unless @_; - shift, return _canon_cat( "/", @_ ) - if $_[0] eq ""; - - # Compatibility with File::Spec <= 3.26: - # catdir('A:', 'foo') should return 'A:\foo'. - return _canon_cat( ($_[0].'\\'), @_[1..$#_] ) - if $_[0] =~ m{^$DRIVE_RX\z}o; - - return _canon_cat( @_ ); -} - -sub path { - my @path = split(';', $ENV{PATH}); - s/"//g for @path; - @path = grep length, @path; - unshift(@path, "."); - return @path; -} - -#line 186 - -sub canonpath { - # Legacy / compatibility support - # - return $_[1] if !defined($_[1]) or $_[1] eq ''; - return _canon_cat( $_[1] ); -} - -#line 213 - -sub splitpath { - my ($self,$path, $nofile) = @_; - my ($volume,$directory,$file) = ('','',''); - if ( $nofile ) { - $path =~ - m{^ ( $VOL_RX ? ) (.*) }sox; - $volume = $1; - $directory = $2; - } - else { - $path =~ - m{^ ( $VOL_RX ? ) - ( (?:.*[\\/](?:\.\.?\Z(?!\n))?)? ) - (.*) - }sox; - $volume = $1; - $directory = $2; - $file = $3; - } - - return ($volume,$directory,$file); -} - - -#line 259 - -sub splitdir { - my ($self,$directories) = @_ ; - # - # split() likes to forget about trailing null fields, so here we - # check to be sure that there will not be any before handling the - # simple case. - # - if ( $directories !~ m|[\\/]\Z(?!\n)| ) { - return split( m|[\\/]|, $directories ); - } - else { - # - # since there was a trailing separator, add a file name to the end, - # then do the split, then replace it with ''. - # - my( @directories )= split( m|[\\/]|, "${directories}dummy" ) ; - $directories[ $#directories ]= '' ; - return @directories ; - } -} - - -#line 289 - -sub catpath { - my ($self,$volume,$directory,$file) = @_; - - # If it's UNC, make sure the glue separator is there, reusing - # whatever separator is first in the $volume - my $v; - $volume .= $v - if ( (($v) = $volume =~ m@^([\\/])[\\/][^\\/]+[\\/][^\\/]+\Z(?!\n)@s) && - $directory =~ m@^[^\\/]@s - ) ; - - $volume .= $directory ; - - # If the volume is not just A:, make sure the glue separator is - # there, reusing whatever separator is first in the $volume if possible. - if ( $volume !~ m@^[a-zA-Z]:\Z(?!\n)@s && - $volume =~ m@[^\\/]\Z(?!\n)@ && - $file =~ m@[^\\/]@ - ) { - $volume =~ m@([\\/])@ ; - my $sep = $1 ? $1 : '\\' ; - $volume .= $sep ; - } - - $volume .= $file ; - - return $volume ; -} - -sub _same { - lc($_[1]) eq lc($_[2]); -} - -sub rel2abs { - my ($self,$path,$base ) = @_; - - my $is_abs = $self->file_name_is_absolute($path); - - # Check for volume (should probably document the '2' thing...) - return $self->canonpath( $path ) if $is_abs == 2; - - if ($is_abs) { - # It's missing a volume, add one - my $vol = ($self->splitpath( $self->_cwd() ))[0]; - return $self->canonpath( $vol . $path ); - } - - if ( !defined( $base ) || $base eq '' ) { - require Cwd ; - $base = Cwd::getdcwd( ($self->splitpath( $path ))[0] ) if defined &Cwd::getdcwd ; - $base = $self->_cwd() unless defined $base ; - } - elsif ( ! $self->file_name_is_absolute( $base ) ) { - $base = $self->rel2abs( $base ) ; - } - else { - $base = $self->canonpath( $base ) ; - } - - my ( $path_directories, $path_file ) = - ($self->splitpath( $path, 1 ))[1,2] ; - - my ( $base_volume, $base_directories ) = - $self->splitpath( $base, 1 ) ; - - $path = $self->catpath( - $base_volume, - $self->catdir( $base_directories, $path_directories ), - $path_file - ) ; - - return $self->canonpath( $path ) ; -} - -#line 383 - - -sub _canon_cat # @path -> path -{ - my ($first, @rest) = @_; - - my $volume = $first =~ s{ \A ([A-Za-z]:) ([\\/]?) }{}x # drive letter - ? ucfirst( $1 ).( $2 ? "\\" : "" ) - : $first =~ s{ \A (?:\\\\|//) ([^\\/]+) - (?: [\\/] ([^\\/]+) )? - [\\/]? }{}xs # UNC volume - ? "\\\\$1".( defined $2 ? "\\$2" : "" )."\\" - : $first =~ s{ \A [\\/] }{}x # root dir - ? "\\" - : ""; - my $path = join "\\", $first, @rest; - - $path =~ tr#\\/#\\\\#s; # xx/yy --> xx\yy & xx\\yy --> xx\yy - - # xx/././yy --> xx/yy - $path =~ s{(?: - (?:\A|\\) # at begin or after a slash - \. - (?:\\\.)* # and more - (?:\\|\z) # at end or followed by slash - )+ # performance boost -- I do not know why - }{\\}gx; - - # XXX I do not know whether more dots are supported by the OS supporting - # this ... annotation (NetWare or symbian but not MSWin32). - # Then .... could easily become ../../.. etc: - # Replace \.\.\. by (\.\.\.+) and substitute with - # { $1 . ".." . "\\.." x (length($2)-2) }gex - # ... --> ../.. - $path =~ s{ (\A|\\) # at begin or after a slash - \.\.\. - (?=\\|\z) # at end or followed by slash - }{$1..\\..}gx; - # xx\yy\..\zz --> xx\zz - while ( $path =~ s{(?: - (?:\A|\\) # at begin or after a slash - [^\\]+ # rip this 'yy' off - \\\.\. - (? xx NOTE: this is *not* root - $path =~ s#\\\z##; # xx\ --> xx - - if ( $volume =~ m#\\\z# ) - { # \.. --> \ - $path =~ s{ \A # at begin - \.\. - (?:\\\.\.)* # and more - (?:\\|\z) # at end or followed by slash - }{}x; - - return $1 # \\HOST\SHARE\ --> \\HOST\SHARE - if $path eq "" - and $volume =~ m#\A(\\\\.*)\\\z#s; - } - return $path ne "" || $volume ? $volume.$path : "."; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/File/stat.pm b/software/Slic3r-1.3.0.64bit/lib/File/stat.pm deleted file mode 100644 index dc318a3e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/File/stat.pm +++ /dev/null @@ -1,223 +0,0 @@ -#line 1 "File/stat.pm" -package File::stat; -use 5.006; - -use strict; -use warnings; -use warnings::register; -use Carp; - -BEGIN { *warnif = \&warnings::warnif } - -our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS); - -our $VERSION = '1.07'; - -my @fields; -BEGIN { - use Exporter (); - @EXPORT = qw(stat lstat); - @fields = qw( $st_dev $st_ino $st_mode - $st_nlink $st_uid $st_gid - $st_rdev $st_size - $st_atime $st_mtime $st_ctime - $st_blksize $st_blocks - ); - @EXPORT_OK = ( @fields, "stat_cando" ); - %EXPORT_TAGS = ( FIELDS => [ @fields, @EXPORT ] ); -} -use vars @fields; - -use Fcntl qw(S_IRUSR S_IWUSR S_IXUSR); - -BEGIN { - # These constants will croak on use if the platform doesn't define - # them. It's important to avoid inflicting that on the user. - no strict 'refs'; - for (qw(suid sgid svtx)) { - my $val = eval { &{"Fcntl::S_I\U$_"} }; - *{"_$_"} = defined $val ? sub { $_[0] & $val ? 1 : "" } : sub { "" }; - } - for (qw(SOCK CHR BLK REG DIR LNK)) { - *{"S_IS$_"} = defined eval { &{"Fcntl::S_IF$_"} } - ? \&{"Fcntl::S_IS$_"} : sub { "" }; - } - # FIFO flag and macro don't quite follow the S_IF/S_IS pattern above - # RT #111638 - *{"S_ISFIFO"} = defined &Fcntl::S_IFIFO - ? \&Fcntl::S_ISFIFO : sub { "" }; -} - -# from doio.c -sub _ingroup { - my ($gid, $eff) = @_; - - # I am assuming that since VMS doesn't have getgroups(2), $) will - # always only contain a single entry. - $^O eq "VMS" and return $_[0] == $); - - my ($egid, @supp) = split " ", $); - my ($rgid) = split " ", $(; - - $gid == ($eff ? $egid : $rgid) and return 1; - grep $gid == $_, @supp and return 1; - - return ""; -} - -# VMS uses the Unix version of the routine, even though this is very -# suboptimal. VMS has a permissions structure that doesn't really fit -# into struct stat, and unlike on Win32 the normal -X operators respect -# that, but unfortunately by the time we get here we've already lost the -# information we need. It looks to me as though if we were to preserve -# the st_devnam entry of vmsish.h's fake struct stat (which actually -# holds the filename) it might be possible to do this right, but both -# getting that value out of the struct (perl's stat doesn't return it) -# and interpreting it later would require this module to have an XS -# component (at which point we might as well just call Perl_cando and -# have done with it). - -if (grep $^O eq $_, qw/os2 MSWin32 dos/) { - - # from doio.c - *cando = sub { ($_[0][2] & $_[1]) ? 1 : "" }; -} -else { - - # from doio.c - *cando = sub { - my ($s, $mode, $eff) = @_; - my $uid = $eff ? $> : $<; - my ($stmode, $stuid, $stgid) = @$s[2,4,5]; - - # This code basically assumes that the rwx bits of the mode are - # the 0777 bits, but so does Perl_cando. - - if ($uid == 0 && $^O ne "VMS") { - # If we're root on unix - # not testing for executable status => all file tests are true - return 1 if !($mode & 0111); - # testing for executable status => - # for a file, any x bit will do - # for a directory, always true - return 1 if $stmode & 0111 || S_ISDIR($stmode); - return ""; - } - - if ($stuid == $uid) { - $stmode & $mode and return 1; - } - elsif (_ingroup($stgid, $eff)) { - $stmode & ($mode >> 3) and return 1; - } - else { - $stmode & ($mode >> 6) and return 1; - } - return ""; - }; -} - -# alias for those who don't like objects -*stat_cando = \&cando; - -my %op = ( - r => sub { cando($_[0], S_IRUSR, 1) }, - w => sub { cando($_[0], S_IWUSR, 1) }, - x => sub { cando($_[0], S_IXUSR, 1) }, - o => sub { $_[0][4] == $> }, - - R => sub { cando($_[0], S_IRUSR, 0) }, - W => sub { cando($_[0], S_IWUSR, 0) }, - X => sub { cando($_[0], S_IXUSR, 0) }, - O => sub { $_[0][4] == $< }, - - e => sub { 1 }, - z => sub { $_[0][7] == 0 }, - s => sub { $_[0][7] }, - - f => sub { S_ISREG ($_[0][2]) }, - d => sub { S_ISDIR ($_[0][2]) }, - l => sub { S_ISLNK ($_[0][2]) }, - p => sub { S_ISFIFO($_[0][2]) }, - S => sub { S_ISSOCK($_[0][2]) }, - b => sub { S_ISBLK ($_[0][2]) }, - c => sub { S_ISCHR ($_[0][2]) }, - - u => sub { _suid($_[0][2]) }, - g => sub { _sgid($_[0][2]) }, - k => sub { _svtx($_[0][2]) }, - - M => sub { ($^T - $_[0][9] ) / 86400 }, - C => sub { ($^T - $_[0][10]) / 86400 }, - A => sub { ($^T - $_[0][8] ) / 86400 }, -); - -use constant HINT_FILETEST_ACCESS => 0x00400000; - -# we need fallback=>1 or stringifying breaks -use overload - fallback => 1, - -X => sub { - my ($s, $op) = @_; - - if (index("rwxRWX", $op) >= 0) { - (caller 0)[8] & HINT_FILETEST_ACCESS - and warnif("File::stat ignores use filetest 'access'"); - - $^O eq "VMS" and warnif("File::stat ignores VMS ACLs"); - - # It would be nice to have a warning about using -l on a - # non-lstat, but that would require an extra member in the - # object. - } - - if ($op{$op}) { - return $op{$op}->($_[0]); - } - else { - croak "-$op is not implemented on a File::stat object"; - } - }; - -# Class::Struct forbids use of @ISA -sub import { goto &Exporter::import } - -use Class::Struct qw(struct); -struct 'File::stat' => [ - map { $_ => '$' } qw{ - dev ino mode nlink uid gid rdev size - atime mtime ctime blksize blocks - } -]; - -sub populate (@) { - return unless @_; - my $stob = new(); - @$stob = ( - $st_dev, $st_ino, $st_mode, $st_nlink, $st_uid, $st_gid, $st_rdev, - $st_size, $st_atime, $st_mtime, $st_ctime, $st_blksize, $st_blocks ) - = @_; - return $stob; -} - -sub lstat ($) { populate(CORE::lstat(shift)) } - -sub stat ($) { - my $arg = shift; - my $st = populate(CORE::stat $arg); - return $st if defined $st; - my $fh; - { - local $!; - no strict 'refs'; - require Symbol; - $fh = \*{ Symbol::qualify( $arg, caller() )}; - return unless defined fileno $fh; - } - return populate(CORE::stat $fh); -} - -1; -__END__ - -#line 357 \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/lib/FileHandle.pm b/software/Slic3r-1.3.0.64bit/lib/FileHandle.pm deleted file mode 100644 index 7d3a2515..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/FileHandle.pm +++ /dev/null @@ -1,107 +0,0 @@ -#line 1 "FileHandle.pm" -package FileHandle; - -use 5.006; -use strict; -our($VERSION, @ISA, @EXPORT, @EXPORT_OK); - -$VERSION = "2.02"; - -require IO::File; -@ISA = qw(IO::File); - -@EXPORT = qw(_IOFBF _IOLBF _IONBF); - -@EXPORT_OK = qw( - pipe - - autoflush - output_field_separator - output_record_separator - input_record_separator - input_line_number - format_page_number - format_lines_per_page - format_lines_left - format_name - format_top_name - format_line_break_characters - format_formfeed - - print - printf - getline - getlines -); - -# -# Everything we're willing to export, we must first import. -# -import IO::Handle grep { !defined(&$_) } @EXPORT, @EXPORT_OK; - -# -# Some people call "FileHandle::function", so all the functions -# that were in the old FileHandle class must be imported, too. -# -{ - no strict 'refs'; - - my %import = ( - 'IO::Handle' => - [qw(DESTROY new_from_fd fdopen close fileno getc ungetc gets - eof flush error clearerr setbuf setvbuf _open_mode_string)], - 'IO::Seekable' => - [qw(seek tell getpos setpos)], - 'IO::File' => - [qw(new new_tmpfile open)] - ); - for my $pkg (keys %import) { - for my $func (@{$import{$pkg}}) { - my $c = *{"${pkg}::$func"}{CODE} - or die "${pkg}::$func missing"; - *$func = $c; - } - } -} - -# -# Specialized importer for Fcntl magic. -# -sub import { - my $pkg = shift; - my $callpkg = caller; - require Exporter; - Exporter::export($pkg, $callpkg, @_); - - # - # If the Fcntl extension is available, - # export its constants. - # - eval { - require Fcntl; - Exporter::export('Fcntl', $callpkg); - }; -} - -################################################ -# This is the only exported function we define; -# the rest come from other classes. -# - -sub pipe { - my $r = new IO::Handle; - my $w = new IO::Handle; - CORE::pipe($r, $w) or return undef; - ($r, $w); -} - -# Rebless standard file handles -bless *STDIN{IO}, "FileHandle" if ref *STDIN{IO} eq "IO::Handle"; -bless *STDOUT{IO}, "FileHandle" if ref *STDOUT{IO} eq "IO::Handle"; -bless *STDERR{IO}, "FileHandle" if ref *STDERR{IO} eq "IO::Handle"; - -1; - -__END__ - -#line 263 diff --git a/software/Slic3r-1.3.0.64bit/lib/FindBin.pm b/software/Slic3r-1.3.0.64bit/lib/FindBin.pm deleted file mode 100644 index 0b249f6c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/FindBin.pm +++ /dev/null @@ -1,101 +0,0 @@ -#line 1 "FindBin.pm" -# FindBin.pm -# -# Copyright (c) 1995 Graham Barr & Nick Ing-Simmons. All rights reserved. -# This program is free software; you can redistribute it and/or modify it -# under the same terms as Perl itself. - -#line 78 - -package FindBin; -use Carp; -require 5.000; -require Exporter; -use Cwd qw(getcwd cwd abs_path); -use File::Basename; -use File::Spec; - -@EXPORT_OK = qw($Bin $Script $RealBin $RealScript $Dir $RealDir); -%EXPORT_TAGS = (ALL => [qw($Bin $Script $RealBin $RealScript $Dir $RealDir)]); -@ISA = qw(Exporter); - -$VERSION = "1.51"; - - -# needed for VMS-specific filename translation -if( $^O eq 'VMS' ) { - require VMS::Filespec; - VMS::Filespec->import; -} - -sub cwd2 { - my $cwd = getcwd(); - # getcwd might fail if it hasn't access to the current directory. - # try harder. - defined $cwd or $cwd = cwd(); - $cwd; -} - -sub init -{ - *Dir = \$Bin; - *RealDir = \$RealBin; - - if($0 eq '-e' || $0 eq '-') - { - # perl invoked with -e or script is on C - $Script = $RealScript = $0; - $Bin = $RealBin = cwd2(); - $Bin = VMS::Filespec::unixify($Bin) if $^O eq 'VMS'; - } - else - { - my $script = $0; - - if ($^O eq 'VMS') - { - ($Bin,$Script) = VMS::Filespec::rmsexpand($0) =~ /(.*[\]>\/]+)(.*)/s; - # C isn't going to work, so unixify first - ($Bin = VMS::Filespec::unixify($Bin)) =~ s/\/\z//; - ($RealBin,$RealScript) = ($Bin,$Script); - } - else - { - croak("Cannot find current script '$0'") unless(-f $script); - - # Ensure $script contains the complete path in case we C - - $script = File::Spec->catfile(cwd2(), $script) - unless File::Spec->file_name_is_absolute($script); - - ($Script,$Bin) = fileparse($script); - - # Resolve $script if it is a link - while(1) - { - my $linktext = readlink($script); - - ($RealScript,$RealBin) = fileparse($script); - last unless defined $linktext; - - $script = (File::Spec->file_name_is_absolute($linktext)) - ? $linktext - : File::Spec->catfile($RealBin, $linktext); - } - - # Get absolute paths to directories - if ($Bin) { - my $BinOld = $Bin; - $Bin = abs_path($Bin); - defined $Bin or $Bin = File::Spec->canonpath($BinOld); - } - $RealBin = abs_path($RealBin) if($RealBin); - } - } -} - -BEGIN { init } - -*again = \&init; - -1; # Keep require happy diff --git a/software/Slic3r-1.3.0.64bit/lib/Getopt/Long.pm b/software/Slic3r-1.3.0.64bit/lib/Getopt/Long.pm deleted file mode 100644 index e05fabf2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Getopt/Long.pm +++ /dev/null @@ -1,1556 +0,0 @@ -#! perl -#line 2 "Getopt/Long.pm" - -# Getopt::Long.pm -- Universal options parsing -# Author : Johan Vromans -# Created On : Tue Sep 11 15:00:12 1990 -# Last Modified By: Johan Vromans -# Last Modified On: Thu Jun 9 14:50:37 2016 -# Update Count : 1699 -# Status : Released - -################ Module Preamble ################ - -package Getopt::Long; - -use 5.004; - -use strict; - -use vars qw($VERSION); -$VERSION = 2.49; -# For testing versions only. -use vars qw($VERSION_STRING); -$VERSION_STRING = "2.49"; - -use Exporter; -use vars qw(@ISA @EXPORT @EXPORT_OK); -@ISA = qw(Exporter); - -# Exported subroutines. -sub GetOptions(@); # always -sub GetOptionsFromArray(@); # on demand -sub GetOptionsFromString(@); # on demand -sub Configure(@); # on demand -sub HelpMessage(@); # on demand -sub VersionMessage(@); # in demand - -BEGIN { - # Init immediately so their contents can be used in the 'use vars' below. - @EXPORT = qw(&GetOptions $REQUIRE_ORDER $PERMUTE $RETURN_IN_ORDER); - @EXPORT_OK = qw(&HelpMessage &VersionMessage &Configure - &GetOptionsFromArray &GetOptionsFromString); -} - -# User visible variables. -use vars @EXPORT, @EXPORT_OK; -use vars qw($error $debug $major_version $minor_version); -# Deprecated visible variables. -use vars qw($autoabbrev $getopt_compat $ignorecase $bundling $order - $passthrough); -# Official invisible variables. -use vars qw($genprefix $caller $gnu_compat $auto_help $auto_version $longprefix); - -# Really invisible variables. -my $bundling_values; - -# Public subroutines. -sub config(@); # deprecated name - -# Private subroutines. -sub ConfigDefaults(); -sub ParseOptionSpec($$); -sub OptCtl($); -sub FindOption($$$$$); -sub ValidValue ($$$$$); - -################ Local Variables ################ - -# $requested_version holds the version that was mentioned in the 'use' -# or 'require', if any. It can be used to enable or disable specific -# features. -my $requested_version = 0; - -################ Resident subroutines ################ - -sub ConfigDefaults() { - # Handle POSIX compliancy. - if ( defined $ENV{"POSIXLY_CORRECT"} ) { - $genprefix = "(--|-)"; - $autoabbrev = 0; # no automatic abbrev of options - $bundling = 0; # no bundling of single letter switches - $getopt_compat = 0; # disallow '+' to start options - $order = $REQUIRE_ORDER; - } - else { - $genprefix = "(--|-|\\+)"; - $autoabbrev = 1; # automatic abbrev of options - $bundling = 0; # bundling off by default - $getopt_compat = 1; # allow '+' to start options - $order = $PERMUTE; - } - # Other configurable settings. - $debug = 0; # for debugging - $error = 0; # error tally - $ignorecase = 1; # ignore case when matching options - $passthrough = 0; # leave unrecognized options alone - $gnu_compat = 0; # require --opt=val if value is optional - $longprefix = "(--)"; # what does a long prefix look like - $bundling_values = 0; # no bundling of values -} - -# Override import. -sub import { - my $pkg = shift; # package - my @syms = (); # symbols to import - my @config = (); # configuration - my $dest = \@syms; # symbols first - for ( @_ ) { - if ( $_ eq ':config' ) { - $dest = \@config; # config next - next; - } - push(@$dest, $_); # push - } - # Hide one level and call super. - local $Exporter::ExportLevel = 1; - push(@syms, qw(&GetOptions)) if @syms; # always export GetOptions - $requested_version = 0; - $pkg->SUPER::import(@syms); - # And configure. - Configure(@config) if @config; -} - -################ Initialization ################ - -# Values for $order. See GNU getopt.c for details. -($REQUIRE_ORDER, $PERMUTE, $RETURN_IN_ORDER) = (0..2); -# Version major/minor numbers. -($major_version, $minor_version) = $VERSION =~ /^(\d+)\.(\d+)/; - -ConfigDefaults(); - -################ OO Interface ################ - -package Getopt::Long::Parser; - -# Store a copy of the default configuration. Since ConfigDefaults has -# just been called, what we get from Configure is the default. -my $default_config = do { - Getopt::Long::Configure () -}; - -sub new { - my $that = shift; - my $class = ref($that) || $that; - my %atts = @_; - - # Register the callers package. - my $self = { caller_pkg => (caller)[0] }; - - bless ($self, $class); - - # Process config attributes. - if ( defined $atts{config} ) { - my $save = Getopt::Long::Configure ($default_config, @{$atts{config}}); - $self->{settings} = Getopt::Long::Configure ($save); - delete ($atts{config}); - } - # Else use default config. - else { - $self->{settings} = $default_config; - } - - if ( %atts ) { # Oops - die(__PACKAGE__.": unhandled attributes: ". - join(" ", sort(keys(%atts)))."\n"); - } - - $self; -} - -sub configure { - my ($self) = shift; - - # Restore settings, merge new settings in. - my $save = Getopt::Long::Configure ($self->{settings}, @_); - - # Restore orig config and save the new config. - $self->{settings} = Getopt::Long::Configure ($save); -} - -sub getoptions { - my ($self) = shift; - - return $self->getoptionsfromarray(\@ARGV, @_); -} - -sub getoptionsfromarray { - my ($self) = shift; - - # Restore config settings. - my $save = Getopt::Long::Configure ($self->{settings}); - - # Call main routine. - my $ret = 0; - $Getopt::Long::caller = $self->{caller_pkg}; - - eval { - # Locally set exception handler to default, otherwise it will - # be called implicitly here, and again explicitly when we try - # to deliver the messages. - local ($SIG{__DIE__}) = 'DEFAULT'; - $ret = Getopt::Long::GetOptionsFromArray (@_); - }; - - # Restore saved settings. - Getopt::Long::Configure ($save); - - # Handle errors and return value. - die ($@) if $@; - return $ret; -} - -package Getopt::Long; - -################ Back to Normal ################ - -# Indices in option control info. -# Note that ParseOptions uses the fields directly. Search for 'hard-wired'. -use constant CTL_TYPE => 0; -#use constant CTL_TYPE_FLAG => ''; -#use constant CTL_TYPE_NEG => '!'; -#use constant CTL_TYPE_INCR => '+'; -#use constant CTL_TYPE_INT => 'i'; -#use constant CTL_TYPE_INTINC => 'I'; -#use constant CTL_TYPE_XINT => 'o'; -#use constant CTL_TYPE_FLOAT => 'f'; -#use constant CTL_TYPE_STRING => 's'; - -use constant CTL_CNAME => 1; - -use constant CTL_DEFAULT => 2; - -use constant CTL_DEST => 3; - use constant CTL_DEST_SCALAR => 0; - use constant CTL_DEST_ARRAY => 1; - use constant CTL_DEST_HASH => 2; - use constant CTL_DEST_CODE => 3; - -use constant CTL_AMIN => 4; -use constant CTL_AMAX => 5; - -# FFU. -#use constant CTL_RANGE => ; -#use constant CTL_REPEAT => ; - -# Rather liberal patterns to match numbers. -use constant PAT_INT => "[-+]?_*[0-9][0-9_]*"; -use constant PAT_XINT => - "(?:". - "[-+]?_*[1-9][0-9_]*". - "|". - "0x_*[0-9a-f][0-9a-f_]*". - "|". - "0b_*[01][01_]*". - "|". - "0[0-7_]*". - ")"; -use constant PAT_FLOAT => - "[-+]?". # optional sign - "(?=[0-9.])". # must start with digit or dec.point - "[0-9_]*". # digits before the dec.point - "(\.[0-9_]+)?". # optional fraction - "([eE][-+]?[0-9_]+)?"; # optional exponent - -sub GetOptions(@) { - # Shift in default array. - unshift(@_, \@ARGV); - # Try to keep caller() and Carp consistent. - goto &GetOptionsFromArray; -} - -sub GetOptionsFromString(@) { - my ($string) = shift; - require Text::ParseWords; - my $args = [ Text::ParseWords::shellwords($string) ]; - $caller ||= (caller)[0]; # current context - my $ret = GetOptionsFromArray($args, @_); - return ( $ret, $args ) if wantarray; - if ( @$args ) { - $ret = 0; - warn("GetOptionsFromString: Excess data \"@$args\" in string \"$string\"\n"); - } - $ret; -} - -sub GetOptionsFromArray(@) { - - my ($argv, @optionlist) = @_; # local copy of the option descriptions - my $argend = '--'; # option list terminator - my %opctl = (); # table of option specs - my $pkg = $caller || (caller)[0]; # current context - # Needed if linkage is omitted. - my @ret = (); # accum for non-options - my %linkage; # linkage - my $userlinkage; # user supplied HASH - my $opt; # current option - my $prefix = $genprefix; # current prefix - - $error = ''; - - if ( $debug ) { - # Avoid some warnings if debugging. - local ($^W) = 0; - print STDERR - ("Getopt::Long $Getopt::Long::VERSION ", - "called from package \"$pkg\".", - "\n ", - "argv: ", - defined($argv) - ? UNIVERSAL::isa( $argv, 'ARRAY' ) ? "(@$argv)" : $argv - : "", - "\n ", - "autoabbrev=$autoabbrev,". - "bundling=$bundling,", - "bundling_values=$bundling_values,", - "getopt_compat=$getopt_compat,", - "gnu_compat=$gnu_compat,", - "order=$order,", - "\n ", - "ignorecase=$ignorecase,", - "requested_version=$requested_version,", - "passthrough=$passthrough,", - "genprefix=\"$genprefix\",", - "longprefix=\"$longprefix\".", - "\n"); - } - - # Check for ref HASH as first argument. - # First argument may be an object. It's OK to use this as long - # as it is really a hash underneath. - $userlinkage = undef; - if ( @optionlist && ref($optionlist[0]) and - UNIVERSAL::isa($optionlist[0],'HASH') ) { - $userlinkage = shift (@optionlist); - print STDERR ("=> user linkage: $userlinkage\n") if $debug; - } - - # See if the first element of the optionlist contains option - # starter characters. - # Be careful not to interpret '<>' as option starters. - if ( @optionlist && $optionlist[0] =~ /^\W+$/ - && !($optionlist[0] eq '<>' - && @optionlist > 0 - && ref($optionlist[1])) ) { - $prefix = shift (@optionlist); - # Turn into regexp. Needs to be parenthesized! - $prefix =~ s/(\W)/\\$1/g; - $prefix = "([" . $prefix . "])"; - print STDERR ("=> prefix=\"$prefix\"\n") if $debug; - } - - # Verify correctness of optionlist. - %opctl = (); - while ( @optionlist ) { - my $opt = shift (@optionlist); - - unless ( defined($opt) ) { - $error .= "Undefined argument in option spec\n"; - next; - } - - # Strip leading prefix so people can specify "--foo=i" if they like. - $opt = $+ if $opt =~ /^$prefix+(.*)$/s; - - if ( $opt eq '<>' ) { - if ( (defined $userlinkage) - && !(@optionlist > 0 && ref($optionlist[0])) - && (exists $userlinkage->{$opt}) - && ref($userlinkage->{$opt}) ) { - unshift (@optionlist, $userlinkage->{$opt}); - } - unless ( @optionlist > 0 - && ref($optionlist[0]) && ref($optionlist[0]) eq 'CODE' ) { - $error .= "Option spec <> requires a reference to a subroutine\n"; - # Kill the linkage (to avoid another error). - shift (@optionlist) - if @optionlist && ref($optionlist[0]); - next; - } - $linkage{'<>'} = shift (@optionlist); - next; - } - - # Parse option spec. - my ($name, $orig) = ParseOptionSpec ($opt, \%opctl); - unless ( defined $name ) { - # Failed. $orig contains the error message. Sorry for the abuse. - $error .= $orig; - # Kill the linkage (to avoid another error). - shift (@optionlist) - if @optionlist && ref($optionlist[0]); - next; - } - - # If no linkage is supplied in the @optionlist, copy it from - # the userlinkage if available. - if ( defined $userlinkage ) { - unless ( @optionlist > 0 && ref($optionlist[0]) ) { - if ( exists $userlinkage->{$orig} && - ref($userlinkage->{$orig}) ) { - print STDERR ("=> found userlinkage for \"$orig\": ", - "$userlinkage->{$orig}\n") - if $debug; - unshift (@optionlist, $userlinkage->{$orig}); - } - else { - # Do nothing. Being undefined will be handled later. - next; - } - } - } - - # Copy the linkage. If omitted, link to global variable. - if ( @optionlist > 0 && ref($optionlist[0]) ) { - print STDERR ("=> link \"$orig\" to $optionlist[0]\n") - if $debug; - my $rl = ref($linkage{$orig} = shift (@optionlist)); - - if ( $rl eq "ARRAY" ) { - $opctl{$name}[CTL_DEST] = CTL_DEST_ARRAY; - } - elsif ( $rl eq "HASH" ) { - $opctl{$name}[CTL_DEST] = CTL_DEST_HASH; - } - elsif ( $rl eq "SCALAR" || $rl eq "REF" ) { -# if ( $opctl{$name}[CTL_DEST] == CTL_DEST_ARRAY ) { -# my $t = $linkage{$orig}; -# $$t = $linkage{$orig} = []; -# } -# elsif ( $opctl{$name}[CTL_DEST] == CTL_DEST_HASH ) { -# } -# else { - # Ok. -# } - } - elsif ( $rl eq "CODE" ) { - # Ok. - } - else { - $error .= "Invalid option linkage for \"$opt\"\n"; - } - } - else { - # Link to global $opt_XXX variable. - # Make sure a valid perl identifier results. - my $ov = $orig; - $ov =~ s/\W/_/g; - if ( $opctl{$name}[CTL_DEST] == CTL_DEST_ARRAY ) { - print STDERR ("=> link \"$orig\" to \@$pkg","::opt_$ov\n") - if $debug; - eval ("\$linkage{\$orig} = \\\@".$pkg."::opt_$ov;"); - } - elsif ( $opctl{$name}[CTL_DEST] == CTL_DEST_HASH ) { - print STDERR ("=> link \"$orig\" to \%$pkg","::opt_$ov\n") - if $debug; - eval ("\$linkage{\$orig} = \\\%".$pkg."::opt_$ov;"); - } - else { - print STDERR ("=> link \"$orig\" to \$$pkg","::opt_$ov\n") - if $debug; - eval ("\$linkage{\$orig} = \\\$".$pkg."::opt_$ov;"); - } - } - - if ( $opctl{$name}[CTL_TYPE] eq 'I' - && ( $opctl{$name}[CTL_DEST] == CTL_DEST_ARRAY - || $opctl{$name}[CTL_DEST] == CTL_DEST_HASH ) - ) { - $error .= "Invalid option linkage for \"$opt\"\n"; - } - - } - - $error .= "GetOptionsFromArray: 1st parameter is not an array reference\n" - unless $argv && UNIVERSAL::isa( $argv, 'ARRAY' ); - - # Bail out if errors found. - die ($error) if $error; - $error = 0; - - # Supply --version and --help support, if needed and allowed. - if ( defined($auto_version) ? $auto_version : ($requested_version >= 2.3203) ) { - if ( !defined($opctl{version}) ) { - $opctl{version} = ['','version',0,CTL_DEST_CODE,undef]; - $linkage{version} = \&VersionMessage; - } - $auto_version = 1; - } - if ( defined($auto_help) ? $auto_help : ($requested_version >= 2.3203) ) { - if ( !defined($opctl{help}) && !defined($opctl{'?'}) ) { - $opctl{help} = $opctl{'?'} = ['','help',0,CTL_DEST_CODE,undef]; - $linkage{help} = \&HelpMessage; - } - $auto_help = 1; - } - - # Show the options tables if debugging. - if ( $debug ) { - my ($arrow, $k, $v); - $arrow = "=> "; - while ( ($k,$v) = each(%opctl) ) { - print STDERR ($arrow, "\$opctl{$k} = $v ", OptCtl($v), "\n"); - $arrow = " "; - } - } - - # Process argument list - my $goon = 1; - while ( $goon && @$argv > 0 ) { - - # Get next argument. - $opt = shift (@$argv); - print STDERR ("=> arg \"", $opt, "\"\n") if $debug; - - # Double dash is option list terminator. - if ( defined($opt) && $opt eq $argend ) { - push (@ret, $argend) if $passthrough; - last; - } - - # Look it up. - my $tryopt = $opt; - my $found; # success status - my $key; # key (if hash type) - my $arg; # option argument - my $ctl; # the opctl entry - - ($found, $opt, $ctl, $arg, $key) = - FindOption ($argv, $prefix, $argend, $opt, \%opctl); - - if ( $found ) { - - # FindOption undefines $opt in case of errors. - next unless defined $opt; - - my $argcnt = 0; - while ( defined $arg ) { - - # Get the canonical name. - print STDERR ("=> cname for \"$opt\" is ") if $debug; - $opt = $ctl->[CTL_CNAME]; - print STDERR ("\"$ctl->[CTL_CNAME]\"\n") if $debug; - - if ( defined $linkage{$opt} ) { - print STDERR ("=> ref(\$L{$opt}) -> ", - ref($linkage{$opt}), "\n") if $debug; - - if ( ref($linkage{$opt}) eq 'SCALAR' - || ref($linkage{$opt}) eq 'REF' ) { - if ( $ctl->[CTL_TYPE] eq '+' ) { - print STDERR ("=> \$\$L{$opt} += \"$arg\"\n") - if $debug; - if ( defined ${$linkage{$opt}} ) { - ${$linkage{$opt}} += $arg; - } - else { - ${$linkage{$opt}} = $arg; - } - } - elsif ( $ctl->[CTL_DEST] == CTL_DEST_ARRAY ) { - print STDERR ("=> ref(\$L{$opt}) auto-vivified", - " to ARRAY\n") - if $debug; - my $t = $linkage{$opt}; - $$t = $linkage{$opt} = []; - print STDERR ("=> push(\@{\$L{$opt}, \"$arg\")\n") - if $debug; - push (@{$linkage{$opt}}, $arg); - } - elsif ( $ctl->[CTL_DEST] == CTL_DEST_HASH ) { - print STDERR ("=> ref(\$L{$opt}) auto-vivified", - " to HASH\n") - if $debug; - my $t = $linkage{$opt}; - $$t = $linkage{$opt} = {}; - print STDERR ("=> \$\$L{$opt}->{$key} = \"$arg\"\n") - if $debug; - $linkage{$opt}->{$key} = $arg; - } - else { - print STDERR ("=> \$\$L{$opt} = \"$arg\"\n") - if $debug; - ${$linkage{$opt}} = $arg; - } - } - elsif ( ref($linkage{$opt}) eq 'ARRAY' ) { - print STDERR ("=> push(\@{\$L{$opt}, \"$arg\")\n") - if $debug; - push (@{$linkage{$opt}}, $arg); - } - elsif ( ref($linkage{$opt}) eq 'HASH' ) { - print STDERR ("=> \$\$L{$opt}->{$key} = \"$arg\"\n") - if $debug; - $linkage{$opt}->{$key} = $arg; - } - elsif ( ref($linkage{$opt}) eq 'CODE' ) { - print STDERR ("=> &L{$opt}(\"$opt\"", - $ctl->[CTL_DEST] == CTL_DEST_HASH ? ", \"$key\"" : "", - ", \"$arg\")\n") - if $debug; - my $eval_error = do { - local $@; - local $SIG{__DIE__} = 'DEFAULT'; - eval { - &{$linkage{$opt}} - (Getopt::Long::CallBack->new - (name => $opt, - ctl => $ctl, - opctl => \%opctl, - linkage => \%linkage, - prefix => $prefix, - ), - $ctl->[CTL_DEST] == CTL_DEST_HASH ? ($key) : (), - $arg); - }; - $@; - }; - print STDERR ("=> die($eval_error)\n") - if $debug && $eval_error ne ''; - if ( $eval_error =~ /^!/ ) { - if ( $eval_error =~ /^!FINISH\b/ ) { - $goon = 0; - } - } - elsif ( $eval_error ne '' ) { - warn ($eval_error); - $error++; - } - } - else { - print STDERR ("Invalid REF type \"", ref($linkage{$opt}), - "\" in linkage\n"); - die("Getopt::Long -- internal error!\n"); - } - } - # No entry in linkage means entry in userlinkage. - elsif ( $ctl->[CTL_DEST] == CTL_DEST_ARRAY ) { - if ( defined $userlinkage->{$opt} ) { - print STDERR ("=> push(\@{\$L{$opt}}, \"$arg\")\n") - if $debug; - push (@{$userlinkage->{$opt}}, $arg); - } - else { - print STDERR ("=>\$L{$opt} = [\"$arg\"]\n") - if $debug; - $userlinkage->{$opt} = [$arg]; - } - } - elsif ( $ctl->[CTL_DEST] == CTL_DEST_HASH ) { - if ( defined $userlinkage->{$opt} ) { - print STDERR ("=> \$L{$opt}->{$key} = \"$arg\"\n") - if $debug; - $userlinkage->{$opt}->{$key} = $arg; - } - else { - print STDERR ("=>\$L{$opt} = {$key => \"$arg\"}\n") - if $debug; - $userlinkage->{$opt} = {$key => $arg}; - } - } - else { - if ( $ctl->[CTL_TYPE] eq '+' ) { - print STDERR ("=> \$L{$opt} += \"$arg\"\n") - if $debug; - if ( defined $userlinkage->{$opt} ) { - $userlinkage->{$opt} += $arg; - } - else { - $userlinkage->{$opt} = $arg; - } - } - else { - print STDERR ("=>\$L{$opt} = \"$arg\"\n") if $debug; - $userlinkage->{$opt} = $arg; - } - } - - $argcnt++; - last if $argcnt >= $ctl->[CTL_AMAX] && $ctl->[CTL_AMAX] != -1; - undef($arg); - - # Need more args? - if ( $argcnt < $ctl->[CTL_AMIN] ) { - if ( @$argv ) { - if ( ValidValue($ctl, $argv->[0], 1, $argend, $prefix) ) { - $arg = shift(@$argv); - if ( $ctl->[CTL_TYPE] =~ /^[iIo]$/ ) { - $arg =~ tr/_//d; - $arg = $ctl->[CTL_TYPE] eq 'o' && $arg =~ /^0/ - ? oct($arg) - : 0+$arg - } - ($key,$arg) = $arg =~ /^([^=]+)=(.*)/ - if $ctl->[CTL_DEST] == CTL_DEST_HASH; - next; - } - warn("Value \"$$argv[0]\" invalid for option $opt\n"); - $error++; - } - else { - warn("Insufficient arguments for option $opt\n"); - $error++; - } - } - - # Any more args? - if ( @$argv && ValidValue($ctl, $argv->[0], 0, $argend, $prefix) ) { - $arg = shift(@$argv); - if ( $ctl->[CTL_TYPE] =~ /^[iIo]$/ ) { - $arg =~ tr/_//d; - $arg = $ctl->[CTL_TYPE] eq 'o' && $arg =~ /^0/ - ? oct($arg) - : 0+$arg - } - ($key,$arg) = $arg =~ /^([^=]+)=(.*)/ - if $ctl->[CTL_DEST] == CTL_DEST_HASH; - next; - } - } - } - - # Not an option. Save it if we $PERMUTE and don't have a <>. - elsif ( $order == $PERMUTE ) { - # Try non-options call-back. - my $cb; - if ( defined ($cb = $linkage{'<>'}) ) { - print STDERR ("=> &L{$tryopt}(\"$tryopt\")\n") - if $debug; - my $eval_error = do { - local $@; - local $SIG{__DIE__} = 'DEFAULT'; - eval { - # The arg to <> cannot be the CallBack object - # since it may be passed to other modules that - # get confused (e.g., Archive::Tar). Well, - # it's not relevant for this callback anyway. - &$cb($tryopt); - }; - $@; - }; - print STDERR ("=> die($eval_error)\n") - if $debug && $eval_error ne ''; - if ( $eval_error =~ /^!/ ) { - if ( $eval_error =~ /^!FINISH\b/ ) { - $goon = 0; - } - } - elsif ( $eval_error ne '' ) { - warn ($eval_error); - $error++; - } - } - else { - print STDERR ("=> saving \"$tryopt\" ", - "(not an option, may permute)\n") if $debug; - push (@ret, $tryopt); - } - next; - } - - # ...otherwise, terminate. - else { - # Push this one back and exit. - unshift (@$argv, $tryopt); - return ($error == 0); - } - - } - - # Finish. - if ( @ret && $order == $PERMUTE ) { - # Push back accumulated arguments - print STDERR ("=> restoring \"", join('" "', @ret), "\"\n") - if $debug; - unshift (@$argv, @ret); - } - - return ($error == 0); -} - -# A readable representation of what's in an optbl. -sub OptCtl ($) { - my ($v) = @_; - my @v = map { defined($_) ? ($_) : ("") } @$v; - "[". - join(",", - "\"$v[CTL_TYPE]\"", - "\"$v[CTL_CNAME]\"", - "\"$v[CTL_DEFAULT]\"", - ("\$","\@","\%","\&")[$v[CTL_DEST] || 0], - $v[CTL_AMIN] || '', - $v[CTL_AMAX] || '', -# $v[CTL_RANGE] || '', -# $v[CTL_REPEAT] || '', - ). "]"; -} - -# Parse an option specification and fill the tables. -sub ParseOptionSpec ($$) { - my ($opt, $opctl) = @_; - - # Match option spec. - if ( $opt !~ m;^ - ( - # Option name - (?: \w+[-\w]* ) - # Alias names, or "?" - (?: \| (?: \? | \w[-\w]* ) )* - # Aliases - (?: \| (?: [^-|!+=:][^|!+=:]* )? )* - )? - ( - # Either modifiers ... - [!+] - | - # ... or a value/dest/repeat specification - [=:] [ionfs] [@%]? (?: \{\d*,?\d*\} )? - | - # ... or an optional-with-default spec - : (?: -?\d+ | \+ ) [@%]? - )? - $;x ) { - return (undef, "Error in option spec: \"$opt\"\n"); - } - - my ($names, $spec) = ($1, $2); - $spec = '' unless defined $spec; - - # $orig keeps track of the primary name the user specified. - # This name will be used for the internal or external linkage. - # In other words, if the user specifies "FoO|BaR", it will - # match any case combinations of 'foo' and 'bar', but if a global - # variable needs to be set, it will be $opt_FoO in the exact case - # as specified. - my $orig; - - my @names; - if ( defined $names ) { - @names = split (/\|/, $names); - $orig = $names[0]; - } - else { - @names = (''); - $orig = ''; - } - - # Construct the opctl entries. - my $entry; - if ( $spec eq '' || $spec eq '+' || $spec eq '!' ) { - # Fields are hard-wired here. - $entry = [$spec,$orig,undef,CTL_DEST_SCALAR,0,0]; - } - elsif ( $spec =~ /^:(-?\d+|\+)([@%])?$/ ) { - my $def = $1; - my $dest = $2; - my $type = $def eq '+' ? 'I' : 'i'; - $dest ||= '$'; - $dest = $dest eq '@' ? CTL_DEST_ARRAY - : $dest eq '%' ? CTL_DEST_HASH : CTL_DEST_SCALAR; - # Fields are hard-wired here. - $entry = [$type,$orig,$def eq '+' ? undef : $def, - $dest,0,1]; - } - else { - my ($mand, $type, $dest) = - $spec =~ /^([=:])([ionfs])([@%])?(\{(\d+)?(,)?(\d+)?\})?$/; - return (undef, "Cannot repeat while bundling: \"$opt\"\n") - if $bundling && defined($4); - my ($mi, $cm, $ma) = ($5, $6, $7); - return (undef, "{0} is useless in option spec: \"$opt\"\n") - if defined($mi) && !$mi && !defined($ma) && !defined($cm); - - $type = 'i' if $type eq 'n'; - $dest ||= '$'; - $dest = $dest eq '@' ? CTL_DEST_ARRAY - : $dest eq '%' ? CTL_DEST_HASH : CTL_DEST_SCALAR; - # Default minargs to 1/0 depending on mand status. - $mi = $mand eq '=' ? 1 : 0 unless defined $mi; - # Adjust mand status according to minargs. - $mand = $mi ? '=' : ':'; - # Adjust maxargs. - $ma = $mi ? $mi : 1 unless defined $ma || defined $cm; - return (undef, "Max must be greater than zero in option spec: \"$opt\"\n") - if defined($ma) && !$ma; - return (undef, "Max less than min in option spec: \"$opt\"\n") - if defined($ma) && $ma < $mi; - - # Fields are hard-wired here. - $entry = [$type,$orig,undef,$dest,$mi,$ma||-1]; - } - - # Process all names. First is canonical, the rest are aliases. - my $dups = ''; - foreach ( @names ) { - - $_ = lc ($_) - if $ignorecase > (($bundling && length($_) == 1) ? 1 : 0); - - if ( exists $opctl->{$_} ) { - $dups .= "Duplicate specification \"$opt\" for option \"$_\"\n"; - } - - if ( $spec eq '!' ) { - $opctl->{"no$_"} = $entry; - $opctl->{"no-$_"} = $entry; - $opctl->{$_} = [@$entry]; - $opctl->{$_}->[CTL_TYPE] = ''; - } - else { - $opctl->{$_} = $entry; - } - } - - if ( $dups && $^W ) { - foreach ( split(/\n+/, $dups) ) { - warn($_."\n"); - } - } - ($names[0], $orig); -} - -# Option lookup. -sub FindOption ($$$$$) { - - # returns (1, $opt, $ctl, $arg, $key) if okay, - # returns (1, undef) if option in error, - # returns (0) otherwise. - - my ($argv, $prefix, $argend, $opt, $opctl) = @_; - - print STDERR ("=> find \"$opt\"\n") if $debug; - - return (0) unless defined($opt); - return (0) unless $opt =~ /^($prefix)(.*)$/s; - return (0) if $opt eq "-" && !defined $opctl->{''}; - - $opt = substr( $opt, length($1) ); # retain taintedness - my $starter = $1; - - print STDERR ("=> split \"$starter\"+\"$opt\"\n") if $debug; - - my $optarg; # value supplied with --opt=value - my $rest; # remainder from unbundling - - # If it is a long option, it may include the value. - # With getopt_compat, only if not bundling. - if ( ($starter=~/^$longprefix$/ - || ($getopt_compat && ($bundling == 0 || $bundling == 2))) - && (my $oppos = index($opt, '=', 1)) > 0) { - my $optorg = $opt; - $opt = substr($optorg, 0, $oppos); - $optarg = substr($optorg, $oppos + 1); # retain tainedness - print STDERR ("=> option \"", $opt, - "\", optarg = \"$optarg\"\n") if $debug; - } - - #### Look it up ### - - my $tryopt = $opt; # option to try - - if ( ( $bundling || $bundling_values ) && $starter eq '-' ) { - - # To try overrides, obey case ignore. - $tryopt = $ignorecase ? lc($opt) : $opt; - - # If bundling == 2, long options can override bundles. - if ( $bundling == 2 && length($tryopt) > 1 - && defined ($opctl->{$tryopt}) ) { - print STDERR ("=> $starter$tryopt overrides unbundling\n") - if $debug; - } - - # If bundling_values, option may be followed by the value. - elsif ( $bundling_values ) { - $tryopt = $opt; - # Unbundle single letter option. - $rest = length ($tryopt) > 0 ? substr ($tryopt, 1) : ''; - $tryopt = substr ($tryopt, 0, 1); - $tryopt = lc ($tryopt) if $ignorecase > 1; - print STDERR ("=> $starter$tryopt unbundled from ", - "$starter$tryopt$rest\n") if $debug; - # Whatever remains may not be considered an option. - $optarg = $rest eq '' ? undef : $rest; - $rest = undef; - } - - # Split off a single letter and leave the rest for - # further processing. - else { - $tryopt = $opt; - # Unbundle single letter option. - $rest = length ($tryopt) > 0 ? substr ($tryopt, 1) : ''; - $tryopt = substr ($tryopt, 0, 1); - $tryopt = lc ($tryopt) if $ignorecase > 1; - print STDERR ("=> $starter$tryopt unbundled from ", - "$starter$tryopt$rest\n") if $debug; - $rest = undef unless $rest ne ''; - } - } - - # Try auto-abbreviation. - elsif ( $autoabbrev && $opt ne "" ) { - # Sort the possible long option names. - my @names = sort(keys (%$opctl)); - # Downcase if allowed. - $opt = lc ($opt) if $ignorecase; - $tryopt = $opt; - # Turn option name into pattern. - my $pat = quotemeta ($opt); - # Look up in option names. - my @hits = grep (/^$pat/, @names); - print STDERR ("=> ", scalar(@hits), " hits (@hits) with \"$pat\" ", - "out of ", scalar(@names), "\n") if $debug; - - # Check for ambiguous results. - unless ( (@hits <= 1) || (grep ($_ eq $opt, @hits) == 1) ) { - # See if all matches are for the same option. - my %hit; - foreach ( @hits ) { - my $hit = $opctl->{$_}->[CTL_CNAME] - if defined $opctl->{$_}->[CTL_CNAME]; - $hit = "no" . $hit if $opctl->{$_}->[CTL_TYPE] eq '!'; - $hit{$hit} = 1; - } - # Remove auto-supplied options (version, help). - if ( keys(%hit) == 2 ) { - if ( $auto_version && exists($hit{version}) ) { - delete $hit{version}; - } - elsif ( $auto_help && exists($hit{help}) ) { - delete $hit{help}; - } - } - # Now see if it really is ambiguous. - unless ( keys(%hit) == 1 ) { - return (0) if $passthrough; - warn ("Option ", $opt, " is ambiguous (", - join(", ", @hits), ")\n"); - $error++; - return (1, undef); - } - @hits = keys(%hit); - } - - # Complete the option name, if appropriate. - if ( @hits == 1 && $hits[0] ne $opt ) { - $tryopt = $hits[0]; - $tryopt = lc ($tryopt) if $ignorecase; - print STDERR ("=> option \"$opt\" -> \"$tryopt\"\n") - if $debug; - } - } - - # Map to all lowercase if ignoring case. - elsif ( $ignorecase ) { - $tryopt = lc ($opt); - } - - # Check validity by fetching the info. - my $ctl = $opctl->{$tryopt}; - unless ( defined $ctl ) { - return (0) if $passthrough; - # Pretend one char when bundling. - if ( $bundling == 1 && length($starter) == 1 ) { - $opt = substr($opt,0,1); - unshift (@$argv, $starter.$rest) if defined $rest; - } - if ( $opt eq "" ) { - warn ("Missing option after ", $starter, "\n"); - } - else { - warn ("Unknown option: ", $opt, "\n"); - } - $error++; - return (1, undef); - } - # Apparently valid. - $opt = $tryopt; - print STDERR ("=> found ", OptCtl($ctl), - " for \"", $opt, "\"\n") if $debug; - - #### Determine argument status #### - - # If it is an option w/o argument, we're almost finished with it. - my $type = $ctl->[CTL_TYPE]; - my $arg; - - if ( $type eq '' || $type eq '!' || $type eq '+' ) { - if ( defined $optarg ) { - return (0) if $passthrough; - warn ("Option ", $opt, " does not take an argument\n"); - $error++; - undef $opt; - undef $optarg if $bundling_values; - } - elsif ( $type eq '' || $type eq '+' ) { - # Supply explicit value. - $arg = 1; - } - else { - $opt =~ s/^no-?//i; # strip NO prefix - $arg = 0; # supply explicit value - } - unshift (@$argv, $starter.$rest) if defined $rest; - return (1, $opt, $ctl, $arg); - } - - # Get mandatory status and type info. - my $mand = $ctl->[CTL_AMIN]; - - # Check if there is an option argument available. - if ( $gnu_compat ) { - my $optargtype = 0; # 0 = none, 1 = empty, 2 = nonempty - $optargtype = ( !defined($optarg) ? 0 : ( (length($optarg) == 0) ? 1 : 2 ) ); - return (1, $opt, $ctl, defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] : undef) - if (($optargtype == 0) && !$mand); - return (1, $opt, $ctl, $type eq 's' ? '' : 0) - if $optargtype == 1; # --foo= -> return nothing - } - - # Check if there is an option argument available. - if ( defined $optarg - ? ($optarg eq '') - : !(defined $rest || @$argv > 0) ) { - # Complain if this option needs an argument. -# if ( $mand && !($type eq 's' ? defined($optarg) : 0) ) { - if ( $mand ) { - return (0) if $passthrough; - warn ("Option ", $opt, " requires an argument\n"); - $error++; - return (1, undef); - } - if ( $type eq 'I' ) { - # Fake incremental type. - my @c = @$ctl; - $c[CTL_TYPE] = '+'; - return (1, $opt, \@c, 1); - } - return (1, $opt, $ctl, - defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] : - $type eq 's' ? '' : 0); - } - - # Get (possibly optional) argument. - $arg = (defined $rest ? $rest - : (defined $optarg ? $optarg : shift (@$argv))); - - # Get key if this is a "name=value" pair for a hash option. - my $key; - if ($ctl->[CTL_DEST] == CTL_DEST_HASH && defined $arg) { - ($key, $arg) = ($arg =~ /^([^=]*)=(.*)$/s) ? ($1, $2) - : ($arg, defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] : - ($mand ? undef : ($type eq 's' ? "" : 1))); - if (! defined $arg) { - warn ("Option $opt, key \"$key\", requires a value\n"); - $error++; - # Push back. - unshift (@$argv, $starter.$rest) if defined $rest; - return (1, undef); - } - } - - #### Check if the argument is valid for this option #### - - my $key_valid = $ctl->[CTL_DEST] == CTL_DEST_HASH ? "[^=]+=" : ""; - - if ( $type eq 's' ) { # string - # A mandatory string takes anything. - return (1, $opt, $ctl, $arg, $key) if $mand; - - # Same for optional string as a hash value - return (1, $opt, $ctl, $arg, $key) - if $ctl->[CTL_DEST] == CTL_DEST_HASH; - - # An optional string takes almost anything. - return (1, $opt, $ctl, $arg, $key) - if defined $optarg || defined $rest; - return (1, $opt, $ctl, $arg, $key) if $arg eq "-"; # ?? - - # Check for option or option list terminator. - if ($arg eq $argend || - $arg =~ /^$prefix.+/) { - # Push back. - unshift (@$argv, $arg); - # Supply empty value. - $arg = ''; - } - } - - elsif ( $type eq 'i' # numeric/integer - || $type eq 'I' # numeric/integer w/ incr default - || $type eq 'o' ) { # dec/oct/hex/bin value - - my $o_valid = $type eq 'o' ? PAT_XINT : PAT_INT; - - if ( $bundling && defined $rest - && $rest =~ /^($key_valid)($o_valid)(.*)$/si ) { - ($key, $arg, $rest) = ($1, $2, $+); - chop($key) if $key; - $arg = ($type eq 'o' && $arg =~ /^0/) ? oct($arg) : 0+$arg; - unshift (@$argv, $starter.$rest) if defined $rest && $rest ne ''; - } - elsif ( $arg =~ /^$o_valid$/si ) { - $arg =~ tr/_//d; - $arg = ($type eq 'o' && $arg =~ /^0/) ? oct($arg) : 0+$arg; - } - else { - if ( defined $optarg || $mand ) { - if ( $passthrough ) { - unshift (@$argv, defined $rest ? $starter.$rest : $arg) - unless defined $optarg; - return (0); - } - warn ("Value \"", $arg, "\" invalid for option ", - $opt, " (", - $type eq 'o' ? "extended " : '', - "number expected)\n"); - $error++; - # Push back. - unshift (@$argv, $starter.$rest) if defined $rest; - return (1, undef); - } - else { - # Push back. - unshift (@$argv, defined $rest ? $starter.$rest : $arg); - if ( $type eq 'I' ) { - # Fake incremental type. - my @c = @$ctl; - $c[CTL_TYPE] = '+'; - return (1, $opt, \@c, 1); - } - # Supply default value. - $arg = defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] : 0; - } - } - } - - elsif ( $type eq 'f' ) { # real number, int is also ok - my $o_valid = PAT_FLOAT; - if ( $bundling && defined $rest && - $rest =~ /^($key_valid)($o_valid)(.*)$/s ) { - $arg =~ tr/_//d; - ($key, $arg, $rest) = ($1, $2, $+); - chop($key) if $key; - unshift (@$argv, $starter.$rest) if defined $rest && $rest ne ''; - } - elsif ( $arg =~ /^$o_valid$/ ) { - $arg =~ tr/_//d; - } - else { - if ( defined $optarg || $mand ) { - if ( $passthrough ) { - unshift (@$argv, defined $rest ? $starter.$rest : $arg) - unless defined $optarg; - return (0); - } - warn ("Value \"", $arg, "\" invalid for option ", - $opt, " (real number expected)\n"); - $error++; - # Push back. - unshift (@$argv, $starter.$rest) if defined $rest; - return (1, undef); - } - else { - # Push back. - unshift (@$argv, defined $rest ? $starter.$rest : $arg); - # Supply default value. - $arg = 0.0; - } - } - } - else { - die("Getopt::Long internal error (Can't happen)\n"); - } - return (1, $opt, $ctl, $arg, $key); -} - -sub ValidValue ($$$$$) { - my ($ctl, $arg, $mand, $argend, $prefix) = @_; - - if ( $ctl->[CTL_DEST] == CTL_DEST_HASH ) { - return 0 unless $arg =~ /[^=]+=(.*)/; - $arg = $1; - } - - my $type = $ctl->[CTL_TYPE]; - - if ( $type eq 's' ) { # string - # A mandatory string takes anything. - return (1) if $mand; - - return (1) if $arg eq "-"; - - # Check for option or option list terminator. - return 0 if $arg eq $argend || $arg =~ /^$prefix.+/; - return 1; - } - - elsif ( $type eq 'i' # numeric/integer - || $type eq 'I' # numeric/integer w/ incr default - || $type eq 'o' ) { # dec/oct/hex/bin value - - my $o_valid = $type eq 'o' ? PAT_XINT : PAT_INT; - return $arg =~ /^$o_valid$/si; - } - - elsif ( $type eq 'f' ) { # real number, int is also ok - my $o_valid = PAT_FLOAT; - return $arg =~ /^$o_valid$/; - } - die("ValidValue: Cannot happen\n"); -} - -# Getopt::Long Configuration. -sub Configure (@) { - my (@options) = @_; - - my $prevconfig = - [ $error, $debug, $major_version, $minor_version, $caller, - $autoabbrev, $getopt_compat, $ignorecase, $bundling, $order, - $gnu_compat, $passthrough, $genprefix, $auto_version, $auto_help, - $longprefix, $bundling_values ]; - - if ( ref($options[0]) eq 'ARRAY' ) { - ( $error, $debug, $major_version, $minor_version, $caller, - $autoabbrev, $getopt_compat, $ignorecase, $bundling, $order, - $gnu_compat, $passthrough, $genprefix, $auto_version, $auto_help, - $longprefix, $bundling_values ) = @{shift(@options)}; - } - - my $opt; - foreach $opt ( @options ) { - my $try = lc ($opt); - my $action = 1; - if ( $try =~ /^no_?(.*)$/s ) { - $action = 0; - $try = $+; - } - if ( ($try eq 'default' or $try eq 'defaults') && $action ) { - ConfigDefaults (); - } - elsif ( ($try eq 'posix_default' or $try eq 'posix_defaults') ) { - local $ENV{POSIXLY_CORRECT}; - $ENV{POSIXLY_CORRECT} = 1 if $action; - ConfigDefaults (); - } - elsif ( $try eq 'auto_abbrev' or $try eq 'autoabbrev' ) { - $autoabbrev = $action; - } - elsif ( $try eq 'getopt_compat' ) { - $getopt_compat = $action; - $genprefix = $action ? "(--|-|\\+)" : "(--|-)"; - } - elsif ( $try eq 'gnu_getopt' ) { - if ( $action ) { - $gnu_compat = 1; - $bundling = 1; - $getopt_compat = 0; - $genprefix = "(--|-)"; - $order = $PERMUTE; - $bundling_values = 0; - } - } - elsif ( $try eq 'gnu_compat' ) { - $gnu_compat = $action; - $bundling = 0; - $bundling_values = 1; - } - elsif ( $try =~ /^(auto_?)?version$/ ) { - $auto_version = $action; - } - elsif ( $try =~ /^(auto_?)?help$/ ) { - $auto_help = $action; - } - elsif ( $try eq 'ignorecase' or $try eq 'ignore_case' ) { - $ignorecase = $action; - } - elsif ( $try eq 'ignorecase_always' or $try eq 'ignore_case_always' ) { - $ignorecase = $action ? 2 : 0; - } - elsif ( $try eq 'bundling' ) { - $bundling = $action; - $bundling_values = 0 if $action; - } - elsif ( $try eq 'bundling_override' ) { - $bundling = $action ? 2 : 0; - $bundling_values = 0 if $action; - } - elsif ( $try eq 'bundling_values' ) { - $bundling_values = $action; - $bundling = 0 if $action; - } - elsif ( $try eq 'require_order' ) { - $order = $action ? $REQUIRE_ORDER : $PERMUTE; - } - elsif ( $try eq 'permute' ) { - $order = $action ? $PERMUTE : $REQUIRE_ORDER; - } - elsif ( $try eq 'pass_through' or $try eq 'passthrough' ) { - $passthrough = $action; - } - elsif ( $try =~ /^prefix=(.+)$/ && $action ) { - $genprefix = $1; - # Turn into regexp. Needs to be parenthesized! - $genprefix = "(" . quotemeta($genprefix) . ")"; - eval { '' =~ /$genprefix/; }; - die("Getopt::Long: invalid pattern \"$genprefix\"\n") if $@; - } - elsif ( $try =~ /^prefix_pattern=(.+)$/ && $action ) { - $genprefix = $1; - # Parenthesize if needed. - $genprefix = "(" . $genprefix . ")" - unless $genprefix =~ /^\(.*\)$/; - eval { '' =~ m"$genprefix"; }; - die("Getopt::Long: invalid pattern \"$genprefix\"\n") if $@; - } - elsif ( $try =~ /^long_prefix_pattern=(.+)$/ && $action ) { - $longprefix = $1; - # Parenthesize if needed. - $longprefix = "(" . $longprefix . ")" - unless $longprefix =~ /^\(.*\)$/; - eval { '' =~ m"$longprefix"; }; - die("Getopt::Long: invalid long prefix pattern \"$longprefix\"\n") if $@; - } - elsif ( $try eq 'debug' ) { - $debug = $action; - } - else { - die("Getopt::Long: unknown or erroneous config parameter \"$opt\"\n") - } - } - $prevconfig; -} - -# Deprecated name. -sub config (@) { - Configure (@_); -} - -# Issue a standard message for --version. -# -# The arguments are mostly the same as for Pod::Usage::pod2usage: -# -# - a number (exit value) -# - a string (lead in message) -# - a hash with options. See Pod::Usage for details. -# -sub VersionMessage(@) { - # Massage args. - my $pa = setup_pa_args("version", @_); - - my $v = $main::VERSION; - my $fh = $pa->{-output} || - ( ($pa->{-exitval} eq "NOEXIT" || $pa->{-exitval} < 2) ? \*STDOUT : \*STDERR ); - - print $fh (defined($pa->{-message}) ? $pa->{-message} : (), - $0, defined $v ? " version $v" : (), - "\n", - "(", __PACKAGE__, "::", "GetOptions", - " version ", - defined($Getopt::Long::VERSION_STRING) - ? $Getopt::Long::VERSION_STRING : $VERSION, ";", - " Perl version ", - $] >= 5.006 ? sprintf("%vd", $^V) : $], - ")\n"); - exit($pa->{-exitval}) unless $pa->{-exitval} eq "NOEXIT"; -} - -# Issue a standard message for --help. -# -# The arguments are the same as for Pod::Usage::pod2usage: -# -# - a number (exit value) -# - a string (lead in message) -# - a hash with options. See Pod::Usage for details. -# -sub HelpMessage(@) { - eval { - require Pod::Usage; - import Pod::Usage; - 1; - } || die("Cannot provide help: cannot load Pod::Usage\n"); - - # Note that pod2usage will issue a warning if -exitval => NOEXIT. - pod2usage(setup_pa_args("help", @_)); - -} - -# Helper routine to set up a normalized hash ref to be used as -# argument to pod2usage. -sub setup_pa_args($@) { - my $tag = shift; # who's calling - - # If called by direct binding to an option, it will get the option - # name and value as arguments. Remove these, if so. - @_ = () if @_ == 2 && $_[0] eq $tag; - - my $pa; - if ( @_ > 1 ) { - $pa = { @_ }; - } - else { - $pa = shift || {}; - } - - # At this point, $pa can be a number (exit value), string - # (message) or hash with options. - - if ( UNIVERSAL::isa($pa, 'HASH') ) { - # Get rid of -msg vs. -message ambiguity. - $pa->{-message} = $pa->{-msg}; - delete($pa->{-msg}); - } - elsif ( $pa =~ /^-?\d+$/ ) { - $pa = { -exitval => $pa }; - } - else { - $pa = { -message => $pa }; - } - - # These are _our_ defaults. - $pa->{-verbose} = 0 unless exists($pa->{-verbose}); - $pa->{-exitval} = 0 unless exists($pa->{-exitval}); - $pa; -} - -# Sneak way to know what version the user requested. -sub VERSION { - $requested_version = $_[1]; - shift->SUPER::VERSION(@_); -} - -package Getopt::Long::CallBack; - -sub new { - my ($pkg, %atts) = @_; - bless { %atts }, $pkg; -} - -sub name { - my $self = shift; - ''.$self->{name}; -} - -use overload - # Treat this object as an ordinary string for legacy API. - '""' => \&name, - fallback => 1; - -1; - -################ Documentation ################ - -#line 2749 - diff --git a/software/Slic3r-1.3.0.64bit/lib/HTML/Entities.pm b/software/Slic3r-1.3.0.64bit/lib/HTML/Entities.pm deleted file mode 100644 index 297fc33e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/HTML/Entities.pm +++ /dev/null @@ -1,353 +0,0 @@ -#line 1 "HTML/Entities.pm" -package HTML::Entities; - - - -#line 137 - -use strict; -use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION); -use vars qw(%entity2char %char2entity); - -require 5.004; -require Exporter; -@ISA = qw(Exporter); - -@EXPORT = qw(encode_entities decode_entities _decode_entities); -@EXPORT_OK = qw(%entity2char %char2entity encode_entities_numeric); - -$VERSION = "3.69"; -sub Version { $VERSION; } - -require HTML::Parser; # for fast XS implemented decode_entities - - -%entity2char = ( - # Some normal chars that have special meaning in SGML context - amp => '&', # ampersand -'gt' => '>', # greater than -'lt' => '<', # less than - quot => '"', # double quote - apos => "'", # single quote - - # PUBLIC ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML - AElig => chr(198), # capital AE diphthong (ligature) - Aacute => chr(193), # capital A, acute accent - Acirc => chr(194), # capital A, circumflex accent - Agrave => chr(192), # capital A, grave accent - Aring => chr(197), # capital A, ring - Atilde => chr(195), # capital A, tilde - Auml => chr(196), # capital A, dieresis or umlaut mark - Ccedil => chr(199), # capital C, cedilla - ETH => chr(208), # capital Eth, Icelandic - Eacute => chr(201), # capital E, acute accent - Ecirc => chr(202), # capital E, circumflex accent - Egrave => chr(200), # capital E, grave accent - Euml => chr(203), # capital E, dieresis or umlaut mark - Iacute => chr(205), # capital I, acute accent - Icirc => chr(206), # capital I, circumflex accent - Igrave => chr(204), # capital I, grave accent - Iuml => chr(207), # capital I, dieresis or umlaut mark - Ntilde => chr(209), # capital N, tilde - Oacute => chr(211), # capital O, acute accent - Ocirc => chr(212), # capital O, circumflex accent - Ograve => chr(210), # capital O, grave accent - Oslash => chr(216), # capital O, slash - Otilde => chr(213), # capital O, tilde - Ouml => chr(214), # capital O, dieresis or umlaut mark - THORN => chr(222), # capital THORN, Icelandic - Uacute => chr(218), # capital U, acute accent - Ucirc => chr(219), # capital U, circumflex accent - Ugrave => chr(217), # capital U, grave accent - Uuml => chr(220), # capital U, dieresis or umlaut mark - Yacute => chr(221), # capital Y, acute accent - aacute => chr(225), # small a, acute accent - acirc => chr(226), # small a, circumflex accent - aelig => chr(230), # small ae diphthong (ligature) - agrave => chr(224), # small a, grave accent - aring => chr(229), # small a, ring - atilde => chr(227), # small a, tilde - auml => chr(228), # small a, dieresis or umlaut mark - ccedil => chr(231), # small c, cedilla - eacute => chr(233), # small e, acute accent - ecirc => chr(234), # small e, circumflex accent - egrave => chr(232), # small e, grave accent - eth => chr(240), # small eth, Icelandic - euml => chr(235), # small e, dieresis or umlaut mark - iacute => chr(237), # small i, acute accent - icirc => chr(238), # small i, circumflex accent - igrave => chr(236), # small i, grave accent - iuml => chr(239), # small i, dieresis or umlaut mark - ntilde => chr(241), # small n, tilde - oacute => chr(243), # small o, acute accent - ocirc => chr(244), # small o, circumflex accent - ograve => chr(242), # small o, grave accent - oslash => chr(248), # small o, slash - otilde => chr(245), # small o, tilde - ouml => chr(246), # small o, dieresis or umlaut mark - szlig => chr(223), # small sharp s, German (sz ligature) - thorn => chr(254), # small thorn, Icelandic - uacute => chr(250), # small u, acute accent - ucirc => chr(251), # small u, circumflex accent - ugrave => chr(249), # small u, grave accent - uuml => chr(252), # small u, dieresis or umlaut mark - yacute => chr(253), # small y, acute accent - yuml => chr(255), # small y, dieresis or umlaut mark - - # Some extra Latin 1 chars that are listed in the HTML3.2 draft (21-May-96) - copy => chr(169), # copyright sign - reg => chr(174), # registered sign - nbsp => chr(160), # non breaking space - - # Additional ISO-8859/1 entities listed in rfc1866 (section 14) - iexcl => chr(161), - cent => chr(162), - pound => chr(163), - curren => chr(164), - yen => chr(165), - brvbar => chr(166), - sect => chr(167), - uml => chr(168), - ordf => chr(170), - laquo => chr(171), -'not' => chr(172), # not is a keyword in perl - shy => chr(173), - macr => chr(175), - deg => chr(176), - plusmn => chr(177), - sup1 => chr(185), - sup2 => chr(178), - sup3 => chr(179), - acute => chr(180), - micro => chr(181), - para => chr(182), - middot => chr(183), - cedil => chr(184), - ordm => chr(186), - raquo => chr(187), - frac14 => chr(188), - frac12 => chr(189), - frac34 => chr(190), - iquest => chr(191), -'times' => chr(215), # times is a keyword in perl - divide => chr(247), - - ( $] > 5.007 ? ( - 'OElig;' => chr(338), - 'oelig;' => chr(339), - 'Scaron;' => chr(352), - 'scaron;' => chr(353), - 'Yuml;' => chr(376), - 'fnof;' => chr(402), - 'circ;' => chr(710), - 'tilde;' => chr(732), - 'Alpha;' => chr(913), - 'Beta;' => chr(914), - 'Gamma;' => chr(915), - 'Delta;' => chr(916), - 'Epsilon;' => chr(917), - 'Zeta;' => chr(918), - 'Eta;' => chr(919), - 'Theta;' => chr(920), - 'Iota;' => chr(921), - 'Kappa;' => chr(922), - 'Lambda;' => chr(923), - 'Mu;' => chr(924), - 'Nu;' => chr(925), - 'Xi;' => chr(926), - 'Omicron;' => chr(927), - 'Pi;' => chr(928), - 'Rho;' => chr(929), - 'Sigma;' => chr(931), - 'Tau;' => chr(932), - 'Upsilon;' => chr(933), - 'Phi;' => chr(934), - 'Chi;' => chr(935), - 'Psi;' => chr(936), - 'Omega;' => chr(937), - 'alpha;' => chr(945), - 'beta;' => chr(946), - 'gamma;' => chr(947), - 'delta;' => chr(948), - 'epsilon;' => chr(949), - 'zeta;' => chr(950), - 'eta;' => chr(951), - 'theta;' => chr(952), - 'iota;' => chr(953), - 'kappa;' => chr(954), - 'lambda;' => chr(955), - 'mu;' => chr(956), - 'nu;' => chr(957), - 'xi;' => chr(958), - 'omicron;' => chr(959), - 'pi;' => chr(960), - 'rho;' => chr(961), - 'sigmaf;' => chr(962), - 'sigma;' => chr(963), - 'tau;' => chr(964), - 'upsilon;' => chr(965), - 'phi;' => chr(966), - 'chi;' => chr(967), - 'psi;' => chr(968), - 'omega;' => chr(969), - 'thetasym;' => chr(977), - 'upsih;' => chr(978), - 'piv;' => chr(982), - 'ensp;' => chr(8194), - 'emsp;' => chr(8195), - 'thinsp;' => chr(8201), - 'zwnj;' => chr(8204), - 'zwj;' => chr(8205), - 'lrm;' => chr(8206), - 'rlm;' => chr(8207), - 'ndash;' => chr(8211), - 'mdash;' => chr(8212), - 'lsquo;' => chr(8216), - 'rsquo;' => chr(8217), - 'sbquo;' => chr(8218), - 'ldquo;' => chr(8220), - 'rdquo;' => chr(8221), - 'bdquo;' => chr(8222), - 'dagger;' => chr(8224), - 'Dagger;' => chr(8225), - 'bull;' => chr(8226), - 'hellip;' => chr(8230), - 'permil;' => chr(8240), - 'prime;' => chr(8242), - 'Prime;' => chr(8243), - 'lsaquo;' => chr(8249), - 'rsaquo;' => chr(8250), - 'oline;' => chr(8254), - 'frasl;' => chr(8260), - 'euro;' => chr(8364), - 'image;' => chr(8465), - 'weierp;' => chr(8472), - 'real;' => chr(8476), - 'trade;' => chr(8482), - 'alefsym;' => chr(8501), - 'larr;' => chr(8592), - 'uarr;' => chr(8593), - 'rarr;' => chr(8594), - 'darr;' => chr(8595), - 'harr;' => chr(8596), - 'crarr;' => chr(8629), - 'lArr;' => chr(8656), - 'uArr;' => chr(8657), - 'rArr;' => chr(8658), - 'dArr;' => chr(8659), - 'hArr;' => chr(8660), - 'forall;' => chr(8704), - 'part;' => chr(8706), - 'exist;' => chr(8707), - 'empty;' => chr(8709), - 'nabla;' => chr(8711), - 'isin;' => chr(8712), - 'notin;' => chr(8713), - 'ni;' => chr(8715), - 'prod;' => chr(8719), - 'sum;' => chr(8721), - 'minus;' => chr(8722), - 'lowast;' => chr(8727), - 'radic;' => chr(8730), - 'prop;' => chr(8733), - 'infin;' => chr(8734), - 'ang;' => chr(8736), - 'and;' => chr(8743), - 'or;' => chr(8744), - 'cap;' => chr(8745), - 'cup;' => chr(8746), - 'int;' => chr(8747), - 'there4;' => chr(8756), - 'sim;' => chr(8764), - 'cong;' => chr(8773), - 'asymp;' => chr(8776), - 'ne;' => chr(8800), - 'equiv;' => chr(8801), - 'le;' => chr(8804), - 'ge;' => chr(8805), - 'sub;' => chr(8834), - 'sup;' => chr(8835), - 'nsub;' => chr(8836), - 'sube;' => chr(8838), - 'supe;' => chr(8839), - 'oplus;' => chr(8853), - 'otimes;' => chr(8855), - 'perp;' => chr(8869), - 'sdot;' => chr(8901), - 'lceil;' => chr(8968), - 'rceil;' => chr(8969), - 'lfloor;' => chr(8970), - 'rfloor;' => chr(8971), - 'lang;' => chr(9001), - 'rang;' => chr(9002), - 'loz;' => chr(9674), - 'spades;' => chr(9824), - 'clubs;' => chr(9827), - 'hearts;' => chr(9829), - 'diams;' => chr(9830), - ) : ()) -); - - -# Make the opposite mapping -while (my($entity, $char) = each(%entity2char)) { - $entity =~ s/;\z//; - $char2entity{$char} = "&$entity;"; -} -delete $char2entity{"'"}; # only one-way decoding - -# Fill in missing entities -for (0 .. 255) { - next if exists $char2entity{chr($_)}; - $char2entity{chr($_)} = "&#$_;"; -} - -my %subst; # compiled encoding regexps - -sub encode_entities -{ - return undef unless defined $_[0]; - my $ref; - if (defined wantarray) { - my $x = $_[0]; - $ref = \$x; # copy - } else { - $ref = \$_[0]; # modify in-place - } - if (defined $_[1] and length $_[1]) { - unless (exists $subst{$_[1]}) { - # Because we can't compile regex we fake it with a cached sub - my $chars = $_[1]; - $chars =~ s,(?', ''' and '"' - $$ref =~ s/([^\n\r\t !\#\$%\(-;=?-~])/$char2entity{$1} || num_entity($1)/ge; - } - $$ref; -} - -sub encode_entities_numeric { - local %char2entity; - return &encode_entities; # a goto &encode_entities wouldn't work -} - - -sub num_entity { - sprintf "&#x%X;", ord($_[0]); -} - -# Set up aliases -*encode = \&encode_entities; -*encode_numeric = \&encode_entities_numeric; -*encode_numerically = \&encode_entities_numeric; -*decode = \&decode_entities; - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/HTML/HeadParser.pm b/software/Slic3r-1.3.0.64bit/lib/HTML/HeadParser.pm deleted file mode 100644 index 0993f2aa..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/HTML/HeadParser.pm +++ /dev/null @@ -1,184 +0,0 @@ -#line 1 "HTML/HeadParser.pm" -package HTML::HeadParser; - -#line 84 - - -require HTML::Parser; -@ISA = qw(HTML::Parser); - -use HTML::Entities (); - -use strict; -use vars qw($VERSION $DEBUG); -#$DEBUG = 1; -$VERSION = "3.71"; - -#line 109 - -sub new -{ - my($class, $header) = @_; - unless ($header) { - require HTTP::Headers; - $header = HTTP::Headers->new; - } - - my $self = $class->SUPER::new(api_version => 3, - start_h => ["start", "self,tagname,attr"], - end_h => ["end", "self,tagname"], - text_h => ["text", "self,text"], - ignore_elements => [qw(script style)], - ); - $self->{'header'} = $header; - $self->{'tag'} = ''; # name of active element that takes textual content - $self->{'text'} = ''; # the accumulated text associated with the element - $self; -} - -#line 140 - -sub header -{ - my $self = shift; - return $self->{'header'} unless @_; - $self->{'header'}->header(@_); -} - -sub as_string # legacy -{ - my $self = shift; - $self->{'header'}->as_string; -} - -sub flush_text # internal -{ - my $self = shift; - my $tag = $self->{'tag'}; - my $text = $self->{'text'}; - $text =~ s/^\s+//; - $text =~ s/\s+$//; - $text =~ s/\s+/ /g; - print "FLUSH $tag => '$text'\n" if $DEBUG; - if ($tag eq 'title') { - my $decoded; - $decoded = utf8::decode($text) if $self->utf8_mode && defined &utf8::decode; - HTML::Entities::decode($text); - utf8::encode($text) if $decoded; - $self->{'header'}->push_header(Title => $text); - } - $self->{'tag'} = $self->{'text'} = ''; -} - -# This is an quote from the HTML3.2 DTD which shows which elements -# that might be present in a .... Also note that the -# tags themselves might be missing: -# -# -# -# -# -# From HTML 4.01: -# -# -# -# -# -# From HTML 5 as of WD-html5-20090825: -# -# One or more elements of metadata content, [...] -# => base, command, link, meta, noscript, script, style, title - -sub start -{ - my($self, $tag, $attr) = @_; # $attr is reference to a HASH - print "START[$tag]\n" if $DEBUG; - $self->flush_text if $self->{'tag'}; - if ($tag eq 'meta') { - my $key = $attr->{'http-equiv'}; - if (!defined($key) || !length($key)) { - if ($attr->{name}) { - $key = "X-Meta-\u$attr->{name}"; - } elsif ($attr->{charset}) { # HTML 5 - $key = "X-Meta-Charset"; - $self->{header}->push_header($key => $attr->{charset}); - return; - } else { - return; - } - } - $key =~ s/:/-/g; - $self->{'header'}->push_header($key => $attr->{content}); - } elsif ($tag eq 'base') { - return unless exists $attr->{href}; - (my $base = $attr->{href}) =~ s/^\s+//; $base =~ s/\s+$//; # HTML5 - $self->{'header'}->push_header('Content-Base' => $base); - } elsif ($tag eq 'isindex') { - # This is a non-standard header. Perhaps we should just ignore - # this element - $self->{'header'}->push_header(Isindex => $attr->{prompt} || '?'); - } elsif ($tag =~ /^(?:title|noscript|object|command)$/) { - # Just remember tag. Initialize header when we see the end tag. - $self->{'tag'} = $tag; - } elsif ($tag eq 'link') { - return unless exists $attr->{href}; - # - my $href = delete($attr->{href}); - $href =~ s/^\s+//; $href =~ s/\s+$//; # HTML5 - my $h_val = "<$href>"; - for (sort keys %{$attr}) { - next if $_ eq "/"; # XHTML junk - $h_val .= qq(; $_="$attr->{$_}"); - } - $self->{'header'}->push_header(Link => $h_val); - } elsif ($tag eq 'head' || $tag eq 'html') { - # ignore - } else { - # stop parsing - $self->eof; - } -} - -sub end -{ - my($self, $tag) = @_; - print "END[$tag]\n" if $DEBUG; - $self->flush_text if $self->{'tag'}; - $self->eof if $tag eq 'head'; -} - -sub text -{ - my($self, $text) = @_; - print "TEXT[$text]\n" if $DEBUG; - unless ($self->{first_chunk}) { - # drop Unicode BOM if found - if ($self->utf8_mode) { - $text =~ s/^\xEF\xBB\xBF//; - } - else { - $text =~ s/^\x{FEFF}//; - } - $self->{first_chunk}++; - } - my $tag = $self->{tag}; - if (!$tag && $text =~ /\S/) { - # Normal text means start of body - $self->eof; - return; - } - return if $tag ne 'title'; - $self->{'text'} .= $text; -} - -BEGIN { - *utf8_mode = sub { 1 } unless HTML::Entities::UNICODE_SUPPORT; -} - -1; - -__END__ - -#line 315 - diff --git a/software/Slic3r-1.3.0.64bit/lib/HTML/Parser.pm b/software/Slic3r-1.3.0.64bit/lib/HTML/Parser.pm deleted file mode 100644 index 47c831c1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/HTML/Parser.pm +++ /dev/null @@ -1,128 +0,0 @@ -#line 1 "HTML/Parser.pm" -package HTML::Parser; - -use strict; -use vars qw($VERSION @ISA); - -$VERSION = "3.72"; - -require HTML::Entities; - -require XSLoader; -XSLoader::load('HTML::Parser', $VERSION); - -sub new -{ - my $class = shift; - my $self = bless {}, $class; - return $self->init(@_); -} - - -sub init -{ - my $self = shift; - $self->_alloc_pstate; - - my %arg = @_; - my $api_version = delete $arg{api_version} || (@_ ? 3 : 2); - if ($api_version >= 4) { - require Carp; - Carp::croak("API version $api_version not supported " . - "by HTML::Parser $VERSION"); - } - - if ($api_version < 3) { - # Set up method callbacks compatible with HTML-Parser-2.xx - $self->handler(text => "text", "self,text,is_cdata"); - $self->handler(end => "end", "self,tagname,text"); - $self->handler(process => "process", "self,token0,text"); - $self->handler(start => "start", - "self,tagname,attr,attrseq,text"); - - $self->handler(comment => - sub { - my($self, $tokens) = @_; - for (@$tokens) { - $self->comment($_); - } - }, "self,tokens"); - - $self->handler(declaration => - sub { - my $self = shift; - $self->declaration(substr($_[0], 2, -1)); - }, "self,text"); - } - - if (my $h = delete $arg{handlers}) { - $h = {@$h} if ref($h) eq "ARRAY"; - while (my($event, $cb) = each %$h) { - $self->handler($event => @$cb); - } - } - - # In the end we try to assume plain attribute or handler - while (my($option, $val) = each %arg) { - if ($option =~ /^(\w+)_h$/) { - $self->handler($1 => @$val); - } - elsif ($option =~ /^(text|start|end|process|declaration|comment)$/) { - require Carp; - Carp::croak("Bad constructor option '$option'"); - } - else { - $self->$option($val); - } - } - - return $self; -} - - -sub parse_file -{ - my($self, $file) = @_; - my $opened; - if (!ref($file) && ref(\$file) ne "GLOB") { - # Assume $file is a filename - local(*F); - open(F, "<", $file) || return undef; - binmode(F); # should we? good for byte counts - $opened++; - $file = *F; - } - my $chunk = ''; - while (read($file, $chunk, 512)) { - $self->parse($chunk) || last; - } - close($file) if $opened; - $self->eof; -} - - -sub netscape_buggy_comment # legacy -{ - my $self = shift; - require Carp; - Carp::carp("netscape_buggy_comment() is deprecated. " . - "Please use the strict_comment() method instead"); - my $old = !$self->strict_comment; - $self->strict_comment(!shift) if @_; - return $old; -} - -# set up method stubs -sub text { } -*start = \&text; -*end = \&text; -*comment = \&text; -*declaration = \&text; -*process = \&text; - -1; - -__END__ - - -#line 1235 diff --git a/software/Slic3r-1.3.0.64bit/lib/HTTP/Config.pm b/software/Slic3r-1.3.0.64bit/lib/HTTP/Config.pm deleted file mode 100644 index de8188df..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/HTTP/Config.pm +++ /dev/null @@ -1,241 +0,0 @@ -#line 1 "HTTP/Config.pm" -package HTTP::Config; - -use strict; -use warnings; - -use URI; - -our $VERSION = "6.11"; - -sub new { - my $class = shift; - return bless [], $class; -} - -sub entries { - my $self = shift; - @$self; -} - -sub empty { - my $self = shift; - not @$self; -} - -sub add { - if (@_ == 2) { - my $self = shift; - push(@$self, shift); - return; - } - my($self, %spec) = @_; - push(@$self, \%spec); - return; -} - -sub find2 { - my($self, %spec) = @_; - my @found; - my @rest; - ITEM: - for my $item (@$self) { - for my $k (keys %spec) { - no warnings 'uninitialized'; - if (!exists $item->{$k} || $spec{$k} ne $item->{$k}) { - push(@rest, $item); - next ITEM; - } - } - push(@found, $item); - } - return \@found unless wantarray; - return \@found, \@rest; -} - -sub find { - my $self = shift; - my $f = $self->find2(@_); - return @$f if wantarray; - return $f->[0]; -} - -sub remove { - my($self, %spec) = @_; - my($removed, $rest) = $self->find2(%spec); - @$self = @$rest if @$removed; - return @$removed; -} - -my %MATCH = ( - m_scheme => sub { - my($v, $uri) = @_; - return $uri->_scheme eq $v; # URI known to be canonical - }, - m_secure => sub { - my($v, $uri) = @_; - my $secure = $uri->can("secure") ? $uri->secure : $uri->_scheme eq "https"; - return $secure == !!$v; - }, - m_host_port => sub { - my($v, $uri) = @_; - return unless $uri->can("host_port"); - return $uri->host_port eq $v, 7; - }, - m_host => sub { - my($v, $uri) = @_; - return unless $uri->can("host"); - return $uri->host eq $v, 6; - }, - m_port => sub { - my($v, $uri) = @_; - return unless $uri->can("port"); - return $uri->port eq $v; - }, - m_domain => sub { - my($v, $uri) = @_; - return unless $uri->can("host"); - my $h = $uri->host; - $h = "$h.local" unless $h =~ /\./; - $v = ".$v" unless $v =~ /^\./; - return length($v), 5 if substr($h, -length($v)) eq $v; - return 0; - }, - m_path => sub { - my($v, $uri) = @_; - return unless $uri->can("path"); - return $uri->path eq $v, 4; - }, - m_path_prefix => sub { - my($v, $uri) = @_; - return unless $uri->can("path"); - my $path = $uri->path; - my $len = length($v); - return $len, 3 if $path eq $v; - return 0 if length($path) <= $len; - $v .= "/" unless $v =~ m,/\z,,; - return $len, 3 if substr($path, 0, length($v)) eq $v; - return 0; - }, - m_path_match => sub { - my($v, $uri) = @_; - return unless $uri->can("path"); - return $uri->path =~ $v; - }, - m_uri__ => sub { - my($v, $k, $uri) = @_; - return unless $uri->can($k); - return 1 unless defined $v; - return $uri->$k eq $v; - }, - m_method => sub { - my($v, $uri, $request) = @_; - return $request && $request->method eq $v; - }, - m_proxy => sub { - my($v, $uri, $request) = @_; - return $request && ($request->{proxy} || "") eq $v; - }, - m_code => sub { - my($v, $uri, $request, $response) = @_; - $v =~ s/xx\z//; - return unless $response; - return length($v), 2 if substr($response->code, 0, length($v)) eq $v; - }, - m_media_type => sub { # for request too?? - my($v, $uri, $request, $response) = @_; - return unless $response; - return 1, 1 if $v eq "*/*"; - my $ct = $response->content_type; - return 2, 1 if $v =~ s,/\*\z,, && $ct =~ m,^\Q$v\E/,; - return 3, 1 if $v eq "html" && $response->content_is_html; - return 4, 1 if $v eq "xhtml" && $response->content_is_xhtml; - return 10, 1 if $v eq $ct; - return 0; - }, - m_header__ => sub { - my($v, $k, $uri, $request, $response) = @_; - return unless $request; - return 1 if $request->header($k) eq $v; - return 1 if $response && $response->header($k) eq $v; - return 0; - }, - m_response_attr__ => sub { - my($v, $k, $uri, $request, $response) = @_; - return unless $response; - return 1 if !defined($v) && exists $response->{$k}; - return 0 unless exists $response->{$k}; - return 1 if $response->{$k} eq $v; - return 0; - }, -); - -sub matching { - my $self = shift; - if (@_ == 1) { - if ($_[0]->can("request")) { - unshift(@_, $_[0]->request); - unshift(@_, undef) unless defined $_[0]; - } - unshift(@_, $_[0]->uri_canonical) if $_[0] && $_[0]->can("uri_canonical"); - } - my($uri, $request, $response) = @_; - $uri = URI->new($uri) unless ref($uri); - - my @m; - ITEM: - for my $item (@$self) { - my $order; - for my $ikey (keys %$item) { - my $mkey = $ikey; - my $k; - $k = $1 if $mkey =~ s/__(.*)/__/; - if (my $m = $MATCH{$mkey}) { - #print "$ikey $mkey\n"; - my($c, $o); - my @arg = ( - defined($k) ? $k : (), - $uri, $request, $response - ); - my $v = $item->{$ikey}; - $v = [$v] unless ref($v) eq "ARRAY"; - for (@$v) { - ($c, $o) = $m->($_, @arg); - #print " - $_ ==> $c $o\n"; - last if $c; - } - next ITEM unless $c; - $order->[$o || 0] += $c; - } - } - $order->[7] ||= 0; - $item->{_order} = join(".", reverse map sprintf("%03d", $_ || 0), @$order); - push(@m, $item); - } - @m = sort { $b->{_order} cmp $a->{_order} } @m; - delete $_->{_order} for @m; - return @m if wantarray; - return $m[0]; -} - -sub add_item { - my $self = shift; - my $item = shift; - return $self->add(item => $item, @_); -} - -sub remove_items { - my $self = shift; - return map $_->{item}, $self->remove(@_); -} - -sub matching_items { - my $self = shift; - return map $_->{item}, $self->matching(@_); -} - -1; - -__END__ - -#line 439 diff --git a/software/Slic3r-1.3.0.64bit/lib/HTTP/Cookies.pm b/software/Slic3r-1.3.0.64bit/lib/HTTP/Cookies.pm deleted file mode 100644 index 3a80953c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/HTTP/Cookies.pm +++ /dev/null @@ -1,606 +0,0 @@ -#line 1 "HTTP/Cookies.pm" -package HTTP::Cookies; - -use strict; -use HTTP::Date qw(str2time parse_date time2str); -use HTTP::Headers::Util qw(_split_header_words join_header_words); - -use vars qw($VERSION $EPOCH_OFFSET); -$VERSION = "6.01"; - -# Legacy: because "use "HTTP::Cookies" used be the ONLY way -# to load the class HTTP::Cookies::Netscape. -require HTTP::Cookies::Netscape; - -$EPOCH_OFFSET = 0; # difference from Unix epoch -if ($^O eq "MacOS") { - require Time::Local; - $EPOCH_OFFSET = Time::Local::timelocal(0,0,0,1,0,70); -} - -# A HTTP::Cookies object is a hash. The main attribute is the -# COOKIES 3 level hash: $self->{COOKIES}{$domain}{$path}{$key}. - -sub new -{ - my $class = shift; - my $self = bless { - COOKIES => {}, - }, $class; - my %cnf = @_; - for (keys %cnf) { - $self->{lc($_)} = $cnf{$_}; - } - $self->load; - $self; -} - - -sub add_cookie_header -{ - my $self = shift; - my $request = shift || return; - my $url = $request->uri; - my $scheme = $url->scheme; - unless ($scheme =~ /^https?\z/) { - return; - } - - my $domain = _host($request, $url); - $domain = "$domain.local" unless $domain =~ /\./; - my $secure_request = ($scheme eq "https"); - my $req_path = _url_path($url); - my $req_port = $url->port; - my $now = time(); - _normalize_path($req_path) if $req_path =~ /%/; - - my @cval; # cookie values for the "Cookie" header - my $set_ver; - my $netscape_only = 0; # An exact domain match applies to any cookie - - while ($domain =~ /\./) { - # Checking $domain for cookies" - my $cookies = $self->{COOKIES}{$domain}; - next unless $cookies; - if ($self->{delayload} && defined($cookies->{'//+delayload'})) { - my $cookie_data = $cookies->{'//+delayload'}{'cookie'}; - delete $self->{COOKIES}{$domain}; - $self->load_cookie($cookie_data->[1]); - $cookies = $self->{COOKIES}{$domain}; - next unless $cookies; # should not really happen - } - - # Want to add cookies corresponding to the most specific paths - # first (i.e. longest path first) - my $path; - for $path (sort {length($b) <=> length($a) } keys %$cookies) { - if (index($req_path, $path) != 0) { - next; - } - - my($key,$array); - while (($key,$array) = each %{$cookies->{$path}}) { - my($version,$val,$port,$path_spec,$secure,$expires) = @$array; - if ($secure && !$secure_request) { - next; - } - if ($expires && $expires < $now) { - next; - } - if ($port) { - my $found; - if ($port =~ s/^_//) { - # The corresponding Set-Cookie attribute was empty - $found++ if $port eq $req_port; - $port = ""; - } - else { - my $p; - for $p (split(/,/, $port)) { - $found++, last if $p eq $req_port; - } - } - unless ($found) { - next; - } - } - if ($version > 0 && $netscape_only) { - next; - } - - # set version number of cookie header. - # XXX: What should it be if multiple matching - # Set-Cookie headers have different versions themselves - if (!$set_ver++) { - if ($version >= 1) { - push(@cval, "\$Version=$version"); - } - elsif (!$self->{hide_cookie2}) { - $request->header(Cookie2 => '$Version="1"'); - } - } - - # do we need to quote the value - if ($val =~ /\W/ && $version) { - $val =~ s/([\\\"])/\\$1/g; - $val = qq("$val"); - } - - # and finally remember this cookie - push(@cval, "$key=$val"); - if ($version >= 1) { - push(@cval, qq(\$Path="$path")) if $path_spec; - push(@cval, qq(\$Domain="$domain")) if $domain =~ /^\./; - if (defined $port) { - my $p = '$Port'; - $p .= qq(="$port") if length $port; - push(@cval, $p); - } - } - - } - } - - } continue { - # Try with a more general domain, alternately stripping - # leading name components and leading dots. When this - # results in a domain with no leading dot, it is for - # Netscape cookie compatibility only: - # - # a.b.c.net Any cookie - # .b.c.net Any cookie - # b.c.net Netscape cookie only - # .c.net Any cookie - - if ($domain =~ s/^\.+//) { - $netscape_only = 1; - } - else { - $domain =~ s/[^.]*//; - $netscape_only = 0; - } - } - - if (@cval) { - if (my $old = $request->header("Cookie")) { - unshift(@cval, $old); - } - $request->header(Cookie => join("; ", @cval)); - } - - $request; -} - - -sub extract_cookies -{ - my $self = shift; - my $response = shift || return; - - my @set = _split_header_words($response->_header("Set-Cookie2")); - my @ns_set = $response->_header("Set-Cookie"); - - return $response unless @set || @ns_set; # quick exit - - my $request = $response->request; - my $url = $request->uri; - my $req_host = _host($request, $url); - $req_host = "$req_host.local" unless $req_host =~ /\./; - my $req_port = $url->port; - my $req_path = _url_path($url); - _normalize_path($req_path) if $req_path =~ /%/; - - if (@ns_set) { - # The old Netscape cookie format for Set-Cookie - # http://curl.haxx.se/rfc/cookie_spec.html - # can for instance contain an unquoted "," in the expires - # field, so we have to use this ad-hoc parser. - my $now = time(); - - # Build a hash of cookies that was present in Set-Cookie2 - # headers. We need to skip them if we also find them in a - # Set-Cookie header. - my %in_set2; - for (@set) { - $in_set2{$_->[0]}++; - } - - my $set; - for $set (@ns_set) { - $set =~ s/^\s+//; - my @cur; - my $param; - my $expires; - my $first_param = 1; - for $param (split(/;\s*/, $set)) { - next unless length($param); - my($k,$v) = split(/\s*=\s*/, $param, 2); - if (defined $v) { - $v =~ s/\s+$//; - #print "$k => $v\n"; - } - else { - $k =~ s/\s+$//; - #print "$k => undef"; - } - if (!$first_param && lc($k) eq "expires") { - my $etime = str2time($v); - if (defined $etime) { - push(@cur, "Max-Age" => $etime - $now); - $expires++; - } - else { - # parse_date can deal with years outside the range of time_t, - my($year, $mon, $day, $hour, $min, $sec, $tz) = parse_date($v); - if ($year) { - my $thisyear = (gmtime)[5] + 1900; - if ($year < $thisyear) { - push(@cur, "Max-Age" => -1); # any negative value will do - $expires++; - } - elsif ($year >= $thisyear + 10) { - # the date is at least 10 years into the future, just replace - # it with something approximate - push(@cur, "Max-Age" => 10 * 365 * 24 * 60 * 60); - $expires++; - } - } - } - } - elsif (!$first_param && lc($k) =~ /^(?:version|discard|ns-cookie)/) { - # ignore - } - else { - push(@cur, $k => $v); - } - $first_param = 0; - } - next unless @cur; - next if $in_set2{$cur[0]}; - -# push(@cur, "Port" => $req_port); - push(@cur, "Discard" => undef) unless $expires; - push(@cur, "Version" => 0); - push(@cur, "ns-cookie" => 1); - push(@set, \@cur); - } - } - - SET_COOKIE: - for my $set (@set) { - next unless @$set >= 2; - - my $key = shift @$set; - my $val = shift @$set; - - my %hash; - while (@$set) { - my $k = shift @$set; - my $v = shift @$set; - my $lc = lc($k); - # don't loose case distinction for unknown fields - $k = $lc if $lc =~ /^(?:discard|domain|max-age| - path|port|secure|version)$/x; - if ($k eq "discard" || $k eq "secure") { - $v = 1 unless defined $v; - } - next if exists $hash{$k}; # only first value is significant - $hash{$k} = $v; - }; - - my %orig_hash = %hash; - my $version = delete $hash{version}; - $version = 1 unless defined($version); - my $discard = delete $hash{discard}; - my $secure = delete $hash{secure}; - my $maxage = delete $hash{'max-age'}; - my $ns_cookie = delete $hash{'ns-cookie'}; - - # Check domain - my $domain = delete $hash{domain}; - $domain = lc($domain) if defined $domain; - if (defined($domain) - && $domain ne $req_host && $domain ne ".$req_host") { - if ($domain !~ /\./ && $domain ne "local") { - next SET_COOKIE; - } - $domain = ".$domain" unless $domain =~ /^\./; - if ($domain =~ /\.\d+$/) { - next SET_COOKIE; - } - my $len = length($domain); - unless (substr($req_host, -$len) eq $domain) { - next SET_COOKIE; - } - my $hostpre = substr($req_host, 0, length($req_host) - $len); - if ($hostpre =~ /\./ && !$ns_cookie) { - next SET_COOKIE; - } - } - else { - $domain = $req_host; - } - - my $path = delete $hash{path}; - my $path_spec; - if (defined $path && $path ne '') { - $path_spec++; - _normalize_path($path) if $path =~ /%/; - if (!$ns_cookie && - substr($req_path, 0, length($path)) ne $path) { - next SET_COOKIE; - } - } - else { - $path = $req_path; - $path =~ s,/[^/]*$,,; - $path = "/" unless length($path); - } - - my $port; - if (exists $hash{port}) { - $port = delete $hash{port}; - if (defined $port) { - $port =~ s/\s+//g; - my $found; - for my $p (split(/,/, $port)) { - unless ($p =~ /^\d+$/) { - next SET_COOKIE; - } - $found++ if $p eq $req_port; - } - unless ($found) { - next SET_COOKIE; - } - } - else { - $port = "_$req_port"; - } - } - $self->set_cookie($version,$key,$val,$path,$domain,$port,$path_spec,$secure,$maxage,$discard, \%hash) - if $self->set_cookie_ok(\%orig_hash); - } - - $response; -} - -sub set_cookie_ok -{ - 1; -} - - -sub set_cookie -{ - my $self = shift; - my($version, - $key, $val, $path, $domain, $port, - $path_spec, $secure, $maxage, $discard, $rest) = @_; - - # path and key can not be empty (key can't start with '$') - return $self if !defined($path) || $path !~ m,^/, || - !defined($key) || $key =~ m,^\$,; - - # ensure legal port - if (defined $port) { - return $self unless $port =~ /^_?\d+(?:,\d+)*$/; - } - - my $expires; - if (defined $maxage) { - if ($maxage <= 0) { - delete $self->{COOKIES}{$domain}{$path}{$key}; - return $self; - } - $expires = time() + $maxage; - } - $version = 0 unless defined $version; - - my @array = ($version, $val,$port, - $path_spec, - $secure, $expires, $discard); - push(@array, {%$rest}) if defined($rest) && %$rest; - # trim off undefined values at end - pop(@array) while !defined $array[-1]; - - $self->{COOKIES}{$domain}{$path}{$key} = \@array; - $self; -} - - -sub save -{ - my $self = shift; - my $file = shift || $self->{'file'} || return; - local(*FILE); - open(FILE, ">$file") or die "Can't open $file: $!"; - print FILE "#LWP-Cookies-1.0\n"; - print FILE $self->as_string(!$self->{ignore_discard}); - close(FILE); - 1; -} - - -sub load -{ - my $self = shift; - my $file = shift || $self->{'file'} || return; - local(*FILE, $_); - local $/ = "\n"; # make sure we got standard record separator - open(FILE, $file) or return; - my $magic = ; - unless ($magic =~ /^\#LWP-Cookies-(\d+\.\d+)/) { - warn "$file does not seem to contain cookies"; - return; - } - while () { - next unless s/^Set-Cookie3:\s*//; - chomp; - my $cookie; - for $cookie (_split_header_words($_)) { - my($key,$val) = splice(@$cookie, 0, 2); - my %hash; - while (@$cookie) { - my $k = shift @$cookie; - my $v = shift @$cookie; - $hash{$k} = $v; - } - my $version = delete $hash{version}; - my $path = delete $hash{path}; - my $domain = delete $hash{domain}; - my $port = delete $hash{port}; - my $expires = str2time(delete $hash{expires}); - - my $path_spec = exists $hash{path_spec}; delete $hash{path_spec}; - my $secure = exists $hash{secure}; delete $hash{secure}; - my $discard = exists $hash{discard}; delete $hash{discard}; - - my @array = ($version,$val,$port, - $path_spec,$secure,$expires,$discard); - push(@array, \%hash) if %hash; - $self->{COOKIES}{$domain}{$path}{$key} = \@array; - } - } - close(FILE); - 1; -} - - -sub revert -{ - my $self = shift; - $self->clear->load; - $self; -} - - -sub clear -{ - my $self = shift; - if (@_ == 0) { - $self->{COOKIES} = {}; - } - elsif (@_ == 1) { - delete $self->{COOKIES}{$_[0]}; - } - elsif (@_ == 2) { - delete $self->{COOKIES}{$_[0]}{$_[1]}; - } - elsif (@_ == 3) { - delete $self->{COOKIES}{$_[0]}{$_[1]}{$_[2]}; - } - else { - require Carp; - Carp::carp('Usage: $c->clear([domain [,path [,key]]])'); - } - $self; -} - - -sub clear_temporary_cookies -{ - my($self) = @_; - - $self->scan(sub { - if($_[9] or # "Discard" flag set - not $_[8]) { # No expire field? - $_[8] = -1; # Set the expire/max_age field - $self->set_cookie(@_); # Clear the cookie - } - }); -} - - -sub DESTROY -{ - my $self = shift; - local($., $@, $!, $^E, $?); - $self->save if $self->{'autosave'}; -} - - -sub scan -{ - my($self, $cb) = @_; - my($domain,$path,$key); - for $domain (sort keys %{$self->{COOKIES}}) { - for $path (sort keys %{$self->{COOKIES}{$domain}}) { - for $key (sort keys %{$self->{COOKIES}{$domain}{$path}}) { - my($version,$val,$port,$path_spec, - $secure,$expires,$discard,$rest) = - @{$self->{COOKIES}{$domain}{$path}{$key}}; - $rest = {} unless defined($rest); - &$cb($version,$key,$val,$path,$domain,$port, - $path_spec,$secure,$expires,$discard,$rest); - } - } - } -} - - -sub as_string -{ - my($self, $skip_discard) = @_; - my @res; - $self->scan(sub { - my($version,$key,$val,$path,$domain,$port, - $path_spec,$secure,$expires,$discard,$rest) = @_; - return if $discard && $skip_discard; - my @h = ($key, $val); - push(@h, "path", $path); - push(@h, "domain" => $domain); - push(@h, "port" => $port) if defined $port; - push(@h, "path_spec" => undef) if $path_spec; - push(@h, "secure" => undef) if $secure; - push(@h, "expires" => HTTP::Date::time2isoz($expires)) if $expires; - push(@h, "discard" => undef) if $discard; - my $k; - for $k (sort keys %$rest) { - push(@h, $k, $rest->{$k}); - } - push(@h, "version" => $version); - push(@res, "Set-Cookie3: " . join_header_words(\@h)); - }); - join("\n", @res, ""); -} - -sub _host -{ - my($request, $url) = @_; - if (my $h = $request->header("Host")) { - $h =~ s/:\d+$//; # might have a port as well - return lc($h); - } - return lc($url->host); -} - -sub _url_path -{ - my $url = shift; - my $path; - if($url->can('epath')) { - $path = $url->epath; # URI::URL method - } - else { - $path = $url->path; # URI::_generic method - } - $path = "/" unless length $path; - $path; -} - -sub _normalize_path # so that plain string compare can be used -{ - my $x; - $_[0] =~ s/%([0-9a-fA-F][0-9a-fA-F])/ - $x = uc($1); - $x eq "2F" || $x eq "25" ? "%$x" : - pack("C", hex($x)); - /eg; - $_[0] =~ s/([\0-\x20\x7f-\xff])/sprintf("%%%02X",ord($1))/eg; -} - -1; - -__END__ - -#line 782 diff --git a/software/Slic3r-1.3.0.64bit/lib/HTTP/Cookies/Netscape.pm b/software/Slic3r-1.3.0.64bit/lib/HTTP/Cookies/Netscape.pm deleted file mode 100644 index 6643a147..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/HTTP/Cookies/Netscape.pm +++ /dev/null @@ -1,74 +0,0 @@ -#line 1 "HTTP/Cookies/Netscape.pm" -package HTTP::Cookies::Netscape; - -use strict; -use vars qw(@ISA $VERSION); - -$VERSION = "6.00"; - -require HTTP::Cookies; -@ISA=qw(HTTP::Cookies); - -sub load -{ - my($self, $file) = @_; - $file ||= $self->{'file'} || return; - local(*FILE, $_); - local $/ = "\n"; # make sure we got standard record separator - my @cookies; - open(FILE, $file) || return; - my $magic = ; - unless ($magic =~ /^\#(?: Netscape)? HTTP Cookie File/) { - warn "$file does not look like a netscape cookies file" if $^W; - close(FILE); - return; - } - my $now = time() - $HTTP::Cookies::EPOCH_OFFSET; - while () { - next if /^\s*\#/; - next if /^\s*$/; - tr/\n\r//d; - my($domain,$bool1,$path,$secure, $expires,$key,$val) = split(/\t/, $_); - $secure = ($secure eq "TRUE"); - $self->set_cookie(undef,$key,$val,$path,$domain,undef, - 0,$secure,$expires-$now, 0); - } - close(FILE); - 1; -} - -sub save -{ - my($self, $file) = @_; - $file ||= $self->{'file'} || return; - local(*FILE, $_); - open(FILE, ">$file") || return; - - # Use old, now broken link to the old cookie spec just in case something - # else (not us!) requires the comment block exactly this way. - print FILE <scan(sub { - my($version,$key,$val,$path,$domain,$port, - $path_spec,$secure,$expires,$discard,$rest) = @_; - return if $discard && !$self->{ignore_discard}; - $expires = $expires ? $expires - $HTTP::Cookies::EPOCH_OFFSET : 0; - return if $now > $expires; - $secure = $secure ? "TRUE" : "FALSE"; - my $bool = $domain =~ /^\./ ? "TRUE" : "FALSE"; - print FILE join("\t", $domain, $bool, $path, $secure, $expires, $key, $val), "\n"; - }); - close(FILE); - 1; -} - -1; -__END__ - -#line 115 diff --git a/software/Slic3r-1.3.0.64bit/lib/HTTP/Date.pm b/software/Slic3r-1.3.0.64bit/lib/HTTP/Date.pm deleted file mode 100644 index 6e32be51..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/HTTP/Date.pm +++ /dev/null @@ -1,264 +0,0 @@ -#line 1 "HTTP/Date.pm" -package HTTP::Date; - -$VERSION = "6.02"; - -require Exporter; -@ISA = qw(Exporter); -@EXPORT = qw(time2str str2time); -@EXPORT_OK = qw(parse_date time2iso time2isoz); - -use strict; -require Time::Local; - -use vars qw(@DoW @MoY %MoY); -@DoW = qw(Sun Mon Tue Wed Thu Fri Sat); -@MoY = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec); -@MoY{@MoY} = (1..12); - -my %GMT_ZONE = (GMT => 1, UTC => 1, UT => 1, Z => 1); - - -sub time2str (;$) -{ - my $time = shift; - $time = time unless defined $time; - my ($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime($time); - sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT", - $DoW[$wday], - $mday, $MoY[$mon], $year+1900, - $hour, $min, $sec); -} - - -sub str2time ($;$) -{ - my $str = shift; - return undef unless defined $str; - - # fast exit for strictly conforming string - if ($str =~ /^[SMTWF][a-z][a-z], (\d\d) ([JFMAJSOND][a-z][a-z]) (\d\d\d\d) (\d\d):(\d\d):(\d\d) GMT$/) { - return eval { - my $t = Time::Local::timegm($6, $5, $4, $1, $MoY{$2}-1, $3); - $t < 0 ? undef : $t; - }; - } - - my @d = parse_date($str); - return undef unless @d; - $d[1]--; # month - - my $tz = pop(@d); - unless (defined $tz) { - unless (defined($tz = shift)) { - return eval { my $frac = $d[-1]; $frac -= ($d[-1] = int($frac)); - my $t = Time::Local::timelocal(reverse @d) + $frac; - $t < 0 ? undef : $t; - }; - } - } - - my $offset = 0; - if ($GMT_ZONE{uc $tz}) { - # offset already zero - } - elsif ($tz =~ /^([-+])?(\d\d?):?(\d\d)?$/) { - $offset = 3600 * $2; - $offset += 60 * $3 if $3; - $offset *= -1 if $1 && $1 eq '-'; - } - else { - eval { require Time::Zone } || return undef; - $offset = Time::Zone::tz_offset($tz); - return undef unless defined $offset; - } - - return eval { my $frac = $d[-1]; $frac -= ($d[-1] = int($frac)); - my $t = Time::Local::timegm(reverse @d) + $frac; - $t < 0 ? undef : $t - $offset; - }; -} - - -sub parse_date ($) -{ - local($_) = shift; - return unless defined; - - # More lax parsing below - s/^\s+//; # kill leading space - s/^(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)[a-z]*,?\s*//i; # Useless weekday - - my($day, $mon, $yr, $hr, $min, $sec, $tz, $ampm); - - # Then we are able to check for most of the formats with this regexp - (($day,$mon,$yr,$hr,$min,$sec,$tz) = - /^ - (\d\d?) # day - (?:\s+|[-\/]) - (\w+) # month - (?:\s+|[-\/]) - (\d+) # year - (?: - (?:\s+|:) # separator before clock - (\d\d?):(\d\d) # hour:min - (?::(\d\d))? # optional seconds - )? # optional clock - \s* - ([-+]?\d{2,4}|(?![APap][Mm]\b)[A-Za-z]+)? # timezone - \s* - (?:\(\w+\)|\w{3,})? # ASCII representation of timezone. - \s*$ - /x) - - || - - # Try the ctime and asctime format - (($mon, $day, $hr, $min, $sec, $tz, $yr) = - /^ - (\w{1,3}) # month - \s+ - (\d\d?) # day - \s+ - (\d\d?):(\d\d) # hour:min - (?::(\d\d))? # optional seconds - \s+ - (?:([A-Za-z]+)\s+)? # optional timezone - (\d+) # year - \s*$ # allow trailing whitespace - /x) - - || - - # Then the Unix 'ls -l' date format - (($mon, $day, $yr, $hr, $min, $sec) = - /^ - (\w{3}) # month - \s+ - (\d\d?) # day - \s+ - (?: - (\d\d\d\d) | # year - (\d{1,2}):(\d{2}) # hour:min - (?::(\d\d))? # optional seconds - ) - \s*$ - /x) - - || - - # ISO 8601 format '1996-02-29 12:00:00 -0100' and variants - (($yr, $mon, $day, $hr, $min, $sec, $tz) = - /^ - (\d{4}) # year - [-\/]? - (\d\d?) # numerical month - [-\/]? - (\d\d?) # day - (?: - (?:\s+|[-:Tt]) # separator before clock - (\d\d?):?(\d\d) # hour:min - (?::?(\d\d(?:\.\d*)?))? # optional seconds (and fractional) - )? # optional clock - \s* - ([-+]?\d\d?:?(:?\d\d)? - |Z|z)? # timezone (Z is "zero meridian", i.e. GMT) - \s*$ - /x) - - || - - # Windows 'dir' 11-12-96 03:52PM - (($mon, $day, $yr, $hr, $min, $ampm) = - /^ - (\d{2}) # numerical month - - - (\d{2}) # day - - - (\d{2}) # year - \s+ - (\d\d?):(\d\d)([APap][Mm]) # hour:min AM or PM - \s*$ - /x) - - || - return; # unrecognized format - - # Translate month name to number - $mon = $MoY{$mon} || - $MoY{"\u\L$mon"} || - ($mon =~ /^\d\d?$/ && $mon >= 1 && $mon <= 12 && int($mon)) || - return; - - # If the year is missing, we assume first date before the current, - # because of the formats we support such dates are mostly present - # on "ls -l" listings. - unless (defined $yr) { - my $cur_mon; - ($cur_mon, $yr) = (localtime)[4, 5]; - $yr += 1900; - $cur_mon++; - $yr-- if $mon > $cur_mon; - } - elsif (length($yr) < 3) { - # Find "obvious" year - my $cur_yr = (localtime)[5] + 1900; - my $m = $cur_yr % 100; - my $tmp = $yr; - $yr += $cur_yr - $m; - $m -= $tmp; - $yr += ($m > 0) ? 100 : -100 - if abs($m) > 50; - } - - # Make sure clock elements are defined - $hr = 0 unless defined($hr); - $min = 0 unless defined($min); - $sec = 0 unless defined($sec); - - # Compensate for AM/PM - if ($ampm) { - $ampm = uc $ampm; - $hr = 0 if $hr == 12 && $ampm eq 'AM'; - $hr += 12 if $ampm eq 'PM' && $hr != 12; - } - - return($yr, $mon, $day, $hr, $min, $sec, $tz) - if wantarray; - - if (defined $tz) { - $tz = "Z" if $tz =~ /^(GMT|UTC?|[-+]?0+)$/; - } - else { - $tz = ""; - } - return sprintf("%04d-%02d-%02d %02d:%02d:%02d%s", - $yr, $mon, $day, $hr, $min, $sec, $tz); -} - - -sub time2iso (;$) -{ - my $time = shift; - $time = time unless defined $time; - my($sec,$min,$hour,$mday,$mon,$year) = localtime($time); - sprintf("%04d-%02d-%02d %02d:%02d:%02d", - $year+1900, $mon+1, $mday, $hour, $min, $sec); -} - - -sub time2isoz (;$) -{ - my $time = shift; - $time = time unless defined $time; - my($sec,$min,$hour,$mday,$mon,$year) = gmtime($time); - sprintf("%04d-%02d-%02d %02d:%02d:%02dZ", - $year+1900, $mon+1, $mday, $hour, $min, $sec); -} - -1; - - -__END__ - -#line 389 diff --git a/software/Slic3r-1.3.0.64bit/lib/HTTP/Headers.pm b/software/Slic3r-1.3.0.64bit/lib/HTTP/Headers.pm deleted file mode 100644 index e444af7d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/HTTP/Headers.pm +++ /dev/null @@ -1,471 +0,0 @@ -#line 1 "HTTP/Headers.pm" -package HTTP::Headers; - -use strict; -use warnings; - -use Carp (); - -our $VERSION = "6.11"; - -# The $TRANSLATE_UNDERSCORE variable controls whether '_' can be used -# as a replacement for '-' in header field names. -our $TRANSLATE_UNDERSCORE = 1 unless defined $TRANSLATE_UNDERSCORE; - -# "Good Practice" order of HTTP message headers: -# - General-Headers -# - Request-Headers -# - Response-Headers -# - Entity-Headers - -my @general_headers = qw( - Cache-Control Connection Date Pragma Trailer Transfer-Encoding Upgrade - Via Warning -); - -my @request_headers = qw( - Accept Accept-Charset Accept-Encoding Accept-Language - Authorization Expect From Host - If-Match If-Modified-Since If-None-Match If-Range If-Unmodified-Since - Max-Forwards Proxy-Authorization Range Referer TE User-Agent -); - -my @response_headers = qw( - Accept-Ranges Age ETag Location Proxy-Authenticate Retry-After Server - Vary WWW-Authenticate -); - -my @entity_headers = qw( - Allow Content-Encoding Content-Language Content-Length Content-Location - Content-MD5 Content-Range Content-Type Expires Last-Modified -); - -my %entity_header = map { lc($_) => 1 } @entity_headers; - -my @header_order = ( - @general_headers, - @request_headers, - @response_headers, - @entity_headers, -); - -# Make alternative representations of @header_order. This is used -# for sorting and case matching. -my %header_order; -my %standard_case; - -{ - my $i = 0; - for (@header_order) { - my $lc = lc $_; - $header_order{$lc} = ++$i; - $standard_case{$lc} = $_; - } -} - - - -sub new -{ - my($class) = shift; - my $self = bless {}, $class; - $self->header(@_) if @_; # set up initial headers - $self; -} - - -sub header -{ - my $self = shift; - Carp::croak('Usage: $h->header($field, ...)') unless @_; - my(@old); - my %seen; - while (@_) { - my $field = shift; - my $op = @_ ? ($seen{lc($field)}++ ? 'PUSH' : 'SET') : 'GET'; - @old = $self->_header($field, shift, $op); - } - return @old if wantarray; - return $old[0] if @old <= 1; - join(", ", @old); -} - -sub clear -{ - my $self = shift; - %$self = (); -} - - -sub push_header -{ - my $self = shift; - return $self->_header(@_, 'PUSH_H') if @_ == 2; - while (@_) { - $self->_header(splice(@_, 0, 2), 'PUSH_H'); - } -} - - -sub init_header -{ - Carp::croak('Usage: $h->init_header($field, $val)') if @_ != 3; - shift->_header(@_, 'INIT'); -} - - -sub remove_header -{ - my($self, @fields) = @_; - my $field; - my @values; - foreach $field (@fields) { - $field =~ tr/_/-/ if $field !~ /^:/ && $TRANSLATE_UNDERSCORE; - my $v = delete $self->{lc $field}; - push(@values, ref($v) eq 'ARRAY' ? @$v : $v) if defined $v; - } - return @values; -} - -sub remove_content_headers -{ - my $self = shift; - unless (defined(wantarray)) { - # fast branch that does not create return object - delete @$self{grep $entity_header{$_} || /^content-/, keys %$self}; - return; - } - - my $c = ref($self)->new; - for my $f (grep $entity_header{$_} || /^content-/, keys %$self) { - $c->{$f} = delete $self->{$f}; - } - if (exists $self->{'::std_case'}) { - $c->{'::std_case'} = $self->{'::std_case'}; - } - $c; -} - - -sub _header -{ - my($self, $field, $val, $op) = @_; - - Carp::croak("Illegal field name '$field'") - if rindex($field, ':') > 1 || !length($field); - - unless ($field =~ /^:/) { - $field =~ tr/_/-/ if $TRANSLATE_UNDERSCORE; - my $old = $field; - $field = lc $field; - unless($standard_case{$field} || $self->{'::std_case'}{$field}) { - # generate a %std_case entry for this field - $old =~ s/\b(\w)/\u$1/g; - $self->{'::std_case'}{$field} = $old; - } - } - - $op ||= defined($val) ? 'SET' : 'GET'; - if ($op eq 'PUSH_H') { - # Like PUSH but where we don't care about the return value - if (exists $self->{$field}) { - my $h = $self->{$field}; - if (ref($h) eq 'ARRAY') { - push(@$h, ref($val) eq "ARRAY" ? @$val : $val); - } - else { - $self->{$field} = [$h, ref($val) eq "ARRAY" ? @$val : $val] - } - return; - } - $self->{$field} = $val; - return; - } - - my $h = $self->{$field}; - my @old = ref($h) eq 'ARRAY' ? @$h : (defined($h) ? ($h) : ()); - - unless ($op eq 'GET' || ($op eq 'INIT' && @old)) { - if (defined($val)) { - my @new = ($op eq 'PUSH') ? @old : (); - if (ref($val) ne 'ARRAY') { - push(@new, $val); - } - else { - push(@new, @$val); - } - $self->{$field} = @new > 1 ? \@new : $new[0]; - } - elsif ($op ne 'PUSH') { - delete $self->{$field}; - } - } - @old; -} - - -sub _sorted_field_names -{ - my $self = shift; - return [ sort { - ($header_order{$a} || 999) <=> ($header_order{$b} || 999) || - $a cmp $b - } grep !/^::/, keys %$self ]; -} - - -sub header_field_names { - my $self = shift; - return map $standard_case{$_} || $self->{'::std_case'}{$_} || $_, @{ $self->_sorted_field_names }, - if wantarray; - return grep !/^::/, keys %$self; -} - - -sub scan -{ - my($self, $sub) = @_; - my $key; - for $key (@{ $self->_sorted_field_names }) { - my $vals = $self->{$key}; - if (ref($vals) eq 'ARRAY') { - my $val; - for $val (@$vals) { - $sub->($standard_case{$key} || $self->{'::std_case'}{$key} || $key, $val); - } - } - else { - $sub->($standard_case{$key} || $self->{'::std_case'}{$key} || $key, $vals); - } - } -} - -sub flatten { - my($self)=@_; - - ( - map { - my $k = $_; - map { - ( $k => $_ ) - } $self->header($_); - } $self->header_field_names - ); -} - -sub as_string -{ - my($self, $endl) = @_; - $endl = "\n" unless defined $endl; - - my @result = (); - for my $key (@{ $self->_sorted_field_names }) { - next if index($key, '_') == 0; - my $vals = $self->{$key}; - if ( ref($vals) eq 'ARRAY' ) { - for my $val (@$vals) { - $val = '' if not defined $val; - my $field = $standard_case{$key} || $self->{'::std_case'}{$key} || $key; - $field =~ s/^://; - if ( index($val, "\n") >= 0 ) { - $val = _process_newline($val, $endl); - } - push @result, $field . ': ' . $val; - } - } - else { - $vals = '' if not defined $vals; - my $field = $standard_case{$key} || $self->{'::std_case'}{$key} || $key; - $field =~ s/^://; - if ( index($vals, "\n") >= 0 ) { - $vals = _process_newline($vals, $endl); - } - push @result, $field . ': ' . $vals; - } - } - - join($endl, @result, ''); -} - -sub _process_newline { - local $_ = shift; - my $endl = shift; - # must handle header values with embedded newlines with care - s/\s+$//; # trailing newlines and space must go - s/\n(\x0d?\n)+/\n/g; # no empty lines - s/\n([^\040\t])/\n $1/g; # initial space for continuation - s/\n/$endl/g; # substitute with requested line ending - $_; -} - - - -if (eval { require Storable; 1 }) { - *clone = \&Storable::dclone; -} else { - *clone = sub { - my $self = shift; - my $clone = HTTP::Headers->new; - $self->scan(sub { $clone->push_header(@_);} ); - $clone; - }; -} - - -sub _date_header -{ - require HTTP::Date; - my($self, $header, $time) = @_; - my($old) = $self->_header($header); - if (defined $time) { - $self->_header($header, HTTP::Date::time2str($time)); - } - $old =~ s/;.*// if defined($old); - HTTP::Date::str2time($old); -} - - -sub date { shift->_date_header('Date', @_); } -sub expires { shift->_date_header('Expires', @_); } -sub if_modified_since { shift->_date_header('If-Modified-Since', @_); } -sub if_unmodified_since { shift->_date_header('If-Unmodified-Since', @_); } -sub last_modified { shift->_date_header('Last-Modified', @_); } - -# This is used as a private LWP extension. The Client-Date header is -# added as a timestamp to a response when it has been received. -sub client_date { shift->_date_header('Client-Date', @_); } - -# The retry_after field is dual format (can also be a expressed as -# number of seconds from now), so we don't provide an easy way to -# access it until we have know how both these interfaces can be -# addressed. One possibility is to return a negative value for -# relative seconds and a positive value for epoch based time values. -#sub retry_after { shift->_date_header('Retry-After', @_); } - -sub content_type { - my $self = shift; - my $ct = $self->{'content-type'}; - $self->{'content-type'} = shift if @_; - $ct = $ct->[0] if ref($ct) eq 'ARRAY'; - return '' unless defined($ct) && length($ct); - my @ct = split(/;\s*/, $ct, 2); - for ($ct[0]) { - s/\s+//g; - $_ = lc($_); - } - wantarray ? @ct : $ct[0]; -} - -sub content_type_charset { - my $self = shift; - require HTTP::Headers::Util; - my $h = $self->{'content-type'}; - $h = $h->[0] if ref($h); - $h = "" unless defined $h; - my @v = HTTP::Headers::Util::split_header_words($h); - if (@v) { - my($ct, undef, %ct_param) = @{$v[0]}; - my $charset = $ct_param{charset}; - if ($ct) { - $ct = lc($ct); - $ct =~ s/\s+//; - } - if ($charset) { - $charset = uc($charset); - $charset =~ s/^\s+//; $charset =~ s/\s+\z//; - undef($charset) if $charset eq ""; - } - return $ct, $charset if wantarray; - return $charset; - } - return undef, undef if wantarray; - return undef; -} - -sub content_is_text { - my $self = shift; - return $self->content_type =~ m,^text/,; -} - -sub content_is_html { - my $self = shift; - return $self->content_type eq 'text/html' || $self->content_is_xhtml; -} - -sub content_is_xhtml { - my $ct = shift->content_type; - return $ct eq "application/xhtml+xml" || - $ct eq "application/vnd.wap.xhtml+xml"; -} - -sub content_is_xml { - my $ct = shift->content_type; - return 1 if $ct eq "text/xml"; - return 1 if $ct eq "application/xml"; - return 1 if $ct =~ /\+xml$/; - return 0; -} - -sub referer { - my $self = shift; - if (@_ && $_[0] =~ /#/) { - # Strip fragment per RFC 2616, section 14.36. - my $uri = shift; - if (ref($uri)) { - $uri = $uri->clone; - $uri->fragment(undef); - } - else { - $uri =~ s/\#.*//; - } - unshift @_, $uri; - } - ($self->_header('Referer', @_))[0]; -} -*referrer = \&referer; # on tchrist's request - -sub title { (shift->_header('Title', @_))[0] } -sub content_encoding { (shift->_header('Content-Encoding', @_))[0] } -sub content_language { (shift->_header('Content-Language', @_))[0] } -sub content_length { (shift->_header('Content-Length', @_))[0] } - -sub user_agent { (shift->_header('User-Agent', @_))[0] } -sub server { (shift->_header('Server', @_))[0] } - -sub from { (shift->_header('From', @_))[0] } -sub warning { (shift->_header('Warning', @_))[0] } - -sub www_authenticate { (shift->_header('WWW-Authenticate', @_))[0] } -sub authorization { (shift->_header('Authorization', @_))[0] } - -sub proxy_authenticate { (shift->_header('Proxy-Authenticate', @_))[0] } -sub proxy_authorization { (shift->_header('Proxy-Authorization', @_))[0] } - -sub authorization_basic { shift->_basic_auth("Authorization", @_) } -sub proxy_authorization_basic { shift->_basic_auth("Proxy-Authorization", @_) } - -sub _basic_auth { - require MIME::Base64; - my($self, $h, $user, $passwd) = @_; - my($old) = $self->_header($h); - if (defined $user) { - Carp::croak("Basic authorization user name can't contain ':'") - if $user =~ /:/; - $passwd = '' unless defined $passwd; - $self->_header($h => 'Basic ' . - MIME::Base64::encode("$user:$passwd", '')); - } - if (defined $old && $old =~ s/^\s*Basic\s+//) { - my $val = MIME::Base64::decode($old); - return $val unless wantarray; - return split(/:/, $val, 2); - } - return; -} - - -1; - -__END__ - -#line 874 diff --git a/software/Slic3r-1.3.0.64bit/lib/HTTP/Headers/Util.pm b/software/Slic3r-1.3.0.64bit/lib/HTTP/Headers/Util.pm deleted file mode 100644 index 0167f38c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/HTTP/Headers/Util.pm +++ /dev/null @@ -1,99 +0,0 @@ -#line 1 "HTTP/Headers/Util.pm" -package HTTP::Headers::Util; - -use strict; -use warnings; - -our $VERSION = "6.11"; - -use base 'Exporter'; - -our @EXPORT_OK=qw(split_header_words _split_header_words join_header_words); - - -sub split_header_words { - my @res = &_split_header_words; - for my $arr (@res) { - for (my $i = @$arr - 2; $i >= 0; $i -= 2) { - $arr->[$i] = lc($arr->[$i]); - } - } - return @res; -} - -sub _split_header_words -{ - my(@val) = @_; - my @res; - for (@val) { - my @cur; - while (length) { - if (s/^\s*(=*[^\s=;,]+)//) { # 'token' or parameter 'attribute' - push(@cur, $1); - # a quoted value - if (s/^\s*=\s*\"([^\"\\]*(?:\\.[^\"\\]*)*)\"//) { - my $val = $1; - $val =~ s/\\(.)/$1/g; - push(@cur, $val); - # some unquoted value - } - elsif (s/^\s*=\s*([^;,\s]*)//) { - my $val = $1; - $val =~ s/\s+$//; - push(@cur, $val); - # no value, a lone token - } - else { - push(@cur, undef); - } - } - elsif (s/^\s*,//) { - push(@res, [@cur]) if @cur; - @cur = (); - } - elsif (s/^\s*;// || s/^\s+//) { - # continue - } - else { - die "This should not happen: '$_'"; - } - } - push(@res, \@cur) if @cur; - } - @res; -} - - -sub join_header_words -{ - @_ = ([@_]) if @_ && !ref($_[0]); - my @res; - for (@_) { - my @cur = @$_; - my @attr; - while (@cur) { - my $k = shift @cur; - my $v = shift @cur; - if (defined $v) { - if ($v =~ /[\x00-\x20()<>@,;:\\\"\/\[\]?={}\x7F-\xFF]/ || !length($v)) { - $v =~ s/([\"\\])/\\$1/g; # escape " and \ - $k .= qq(="$v"); - } - else { - # token - $k .= "=$v"; - } - } - push(@attr, $k); - } - push(@res, join("; ", @attr)) if @attr; - } - join(", ", @res); -} - - -1; - -__END__ - -#line 198 diff --git a/software/Slic3r-1.3.0.64bit/lib/HTTP/Message.pm b/software/Slic3r-1.3.0.64bit/lib/HTTP/Message.pm deleted file mode 100644 index 8825c011..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/HTTP/Message.pm +++ /dev/null @@ -1,778 +0,0 @@ -#line 1 "HTTP/Message.pm" -package HTTP::Message; - -use strict; -use warnings; - -our $VERSION = "6.11"; - -require HTTP::Headers; -require Carp; - -my $CRLF = "\015\012"; # "\r\n" is not portable -unless ($HTTP::URI_CLASS) { - if ($ENV{PERL_HTTP_URI_CLASS} - && $ENV{PERL_HTTP_URI_CLASS} =~ /^([\w:]+)$/) { - $HTTP::URI_CLASS = $1; - } else { - $HTTP::URI_CLASS = "URI"; - } -} -eval "require $HTTP::URI_CLASS"; die $@ if $@; - -*_utf8_downgrade = defined(&utf8::downgrade) ? - sub { - utf8::downgrade($_[0], 1) or - Carp::croak("HTTP::Message content must be bytes") - } - : - sub { - }; - -sub new -{ - my($class, $header, $content) = @_; - if (defined $header) { - Carp::croak("Bad header argument") unless ref $header; - if (ref($header) eq "ARRAY") { - $header = HTTP::Headers->new(@$header); - } - else { - $header = $header->clone; - } - } - else { - $header = HTTP::Headers->new; - } - if (defined $content) { - _utf8_downgrade($content); - } - else { - $content = ''; - } - - bless { - '_headers' => $header, - '_content' => $content, - }, $class; -} - - -sub parse -{ - my($class, $str) = @_; - - my @hdr; - while (1) { - if ($str =~ s/^([^\s:]+)[ \t]*: ?(.*)\n?//) { - push(@hdr, $1, $2); - $hdr[-1] =~ s/\r\z//; - } - elsif (@hdr && $str =~ s/^([ \t].*)\n?//) { - $hdr[-1] .= "\n$1"; - $hdr[-1] =~ s/\r\z//; - } - else { - $str =~ s/^\r?\n//; - last; - } - } - local $HTTP::Headers::TRANSLATE_UNDERSCORE; - new($class, \@hdr, $str); -} - - -sub clone -{ - my $self = shift; - my $clone = HTTP::Message->new($self->headers, - $self->content); - $clone->protocol($self->protocol); - $clone; -} - - -sub clear { - my $self = shift; - $self->{_headers}->clear; - $self->content(""); - delete $self->{_parts}; - return; -} - - -sub protocol { - shift->_elem('_protocol', @_); -} - -sub headers { - my $self = shift; - - # recalculation of _content might change headers, so we - # need to force it now - $self->_content unless exists $self->{_content}; - - $self->{_headers}; -} - -sub headers_as_string { - shift->headers->as_string(@_); -} - - -sub content { - - my $self = $_[0]; - if (defined(wantarray)) { - $self->_content unless exists $self->{_content}; - my $old = $self->{_content}; - $old = $$old if ref($old) eq "SCALAR"; - &_set_content if @_ > 1; - return $old; - } - - if (@_ > 1) { - &_set_content; - } - else { - Carp::carp("Useless content call in void context") if $^W; - } -} - - -sub _set_content { - my $self = $_[0]; - _utf8_downgrade($_[1]); - if (!ref($_[1]) && ref($self->{_content}) eq "SCALAR") { - ${$self->{_content}} = $_[1]; - } - else { - die "Can't set content to be a scalar reference" if ref($_[1]) eq "SCALAR"; - $self->{_content} = $_[1]; - delete $self->{_content_ref}; - } - delete $self->{_parts} unless $_[2]; -} - - -sub add_content -{ - my $self = shift; - $self->_content unless exists $self->{_content}; - my $chunkref = \$_[0]; - $chunkref = $$chunkref if ref($$chunkref); # legacy - - _utf8_downgrade($$chunkref); - - my $ref = ref($self->{_content}); - if (!$ref) { - $self->{_content} .= $$chunkref; - } - elsif ($ref eq "SCALAR") { - ${$self->{_content}} .= $$chunkref; - } - else { - Carp::croak("Can't append to $ref content"); - } - delete $self->{_parts}; -} - -sub add_content_utf8 { - my($self, $buf) = @_; - utf8::upgrade($buf); - utf8::encode($buf); - $self->add_content($buf); -} - -sub content_ref -{ - my $self = shift; - $self->_content unless exists $self->{_content}; - delete $self->{_parts}; - my $old = \$self->{_content}; - my $old_cref = $self->{_content_ref}; - if (@_) { - my $new = shift; - Carp::croak("Setting content_ref to a non-ref") unless ref($new); - delete $self->{_content}; # avoid modifying $$old - $self->{_content} = $new; - $self->{_content_ref}++; - } - $old = $$old if $old_cref; - return $old; -} - - -sub content_charset -{ - my $self = shift; - if (my $charset = $self->content_type_charset) { - return $charset; - } - - # time to start guessing - my $cref = $self->decoded_content(ref => 1, charset => "none"); - - # Unicode BOM - for ($$cref) { - return "UTF-8" if /^\xEF\xBB\xBF/; - return "UTF-32LE" if /^\xFF\xFE\x00\x00/; - return "UTF-32BE" if /^\x00\x00\xFE\xFF/; - return "UTF-16LE" if /^\xFF\xFE/; - return "UTF-16BE" if /^\xFE\xFF/; - } - - if ($self->content_is_xml) { - # http://www.w3.org/TR/2006/REC-xml-20060816/#sec-guessing - # XML entity not accompanied by external encoding information and not - # in UTF-8 or UTF-16 encoding must begin with an XML encoding declaration, - # in which the first characters must be ')/) { - if ($1 =~ /\sencoding\s*=\s*(["'])(.*?)\1/) { - my $enc = $2; - $enc =~ s/^\s+//; $enc =~ s/\s+\z//; - return $enc if $enc; - } - } - } - return "UTF-8"; - } - elsif ($self->content_is_html) { - # look for or - # http://dev.w3.org/html5/spec/Overview.html#determining-the-character-encoding - require IO::HTML; - # Use relaxed search to match previous versions of HTTP::Message: - my $encoding = IO::HTML::find_charset_in($$cref, { encoding => 1, - need_pragma => 0 }); - return $encoding->mime_name if $encoding; - } - elsif ($self->content_type eq "application/json") { - for ($$cref) { - # RFC 4627, ch 3 - return "UTF-32BE" if /^\x00\x00\x00./s; - return "UTF-32LE" if /^.\x00\x00\x00/s; - return "UTF-16BE" if /^\x00.\x00./s; - return "UTF-16LE" if /^.\x00.\x00/s; - return "UTF-8"; - } - } - if ($self->content_type =~ /^text\//) { - for ($$cref) { - if (length) { - return "US-ASCII" unless /[\x80-\xFF]/; - require Encode; - eval { - Encode::decode_utf8($_, Encode::FB_CROAK() | Encode::LEAVE_SRC()); - }; - return "UTF-8" unless $@; - return "ISO-8859-1"; - } - } - } - - return undef; -} - - -sub decoded_content -{ - my($self, %opt) = @_; - my $content_ref; - my $content_ref_iscopy; - - eval { - $content_ref = $self->content_ref; - die "Can't decode ref content" if ref($content_ref) ne "SCALAR"; - - if (my $h = $self->header("Content-Encoding")) { - $h =~ s/^\s+//; - $h =~ s/\s+$//; - for my $ce (reverse split(/\s*,\s*/, lc($h))) { - next unless $ce; - next if $ce eq "identity" || $ce eq "none"; - if ($ce eq "gzip" || $ce eq "x-gzip") { - require IO::Uncompress::Gunzip; - my $output; - IO::Uncompress::Gunzip::gunzip($content_ref, \$output, Transparent => 0) - or die "Can't gunzip content: $IO::Uncompress::Gunzip::GunzipError"; - $content_ref = \$output; - $content_ref_iscopy++; - } - elsif ($ce eq "x-bzip2" or $ce eq "bzip2") { - require IO::Uncompress::Bunzip2; - my $output; - IO::Uncompress::Bunzip2::bunzip2($content_ref, \$output, Transparent => 0) - or die "Can't bunzip content: $IO::Uncompress::Bunzip2::Bunzip2Error"; - $content_ref = \$output; - $content_ref_iscopy++; - } - elsif ($ce eq "deflate") { - require IO::Uncompress::Inflate; - my $output; - my $status = IO::Uncompress::Inflate::inflate($content_ref, \$output, Transparent => 0); - my $error = $IO::Uncompress::Inflate::InflateError; - unless ($status) { - # "Content-Encoding: deflate" is supposed to mean the - # "zlib" format of RFC 1950, but Microsoft got that - # wrong, so some servers sends the raw compressed - # "deflate" data. This tries to inflate this format. - $output = undef; - require IO::Uncompress::RawInflate; - unless (IO::Uncompress::RawInflate::rawinflate($content_ref, \$output)) { - $self->push_header("Client-Warning" => - "Could not raw inflate content: $IO::Uncompress::RawInflate::RawInflateError"); - $output = undef; - } - } - die "Can't inflate content: $error" unless defined $output; - $content_ref = \$output; - $content_ref_iscopy++; - } - elsif ($ce eq "compress" || $ce eq "x-compress") { - die "Can't uncompress content"; - } - elsif ($ce eq "base64") { # not really C-T-E, but should be harmless - require MIME::Base64; - $content_ref = \MIME::Base64::decode($$content_ref); - $content_ref_iscopy++; - } - elsif ($ce eq "quoted-printable") { # not really C-T-E, but should be harmless - require MIME::QuotedPrint; - $content_ref = \MIME::QuotedPrint::decode($$content_ref); - $content_ref_iscopy++; - } - else { - die "Don't know how to decode Content-Encoding '$ce'"; - } - } - } - - if ($self->content_is_text || (my $is_xml = $self->content_is_xml)) { - my $charset = lc( - $opt{charset} || - $self->content_type_charset || - $opt{default_charset} || - $self->content_charset || - "ISO-8859-1" - ); - if ($charset eq "none") { - # leave it as is - } - elsif ($charset eq "us-ascii" || $charset eq "iso-8859-1") { - if ($$content_ref =~ /[^\x00-\x7F]/ && defined &utf8::upgrade) { - unless ($content_ref_iscopy) { - my $copy = $$content_ref; - $content_ref = \$copy; - $content_ref_iscopy++; - } - utf8::upgrade($$content_ref); - } - } - else { - require Encode; - eval { - $content_ref = \Encode::decode($charset, $$content_ref, - ($opt{charset_strict} ? Encode::FB_CROAK() : 0) | Encode::LEAVE_SRC()); - }; - if ($@) { - my $retried; - if ($@ =~ /^Unknown encoding/) { - my $alt_charset = lc($opt{alt_charset} || ""); - if ($alt_charset && $charset ne $alt_charset) { - # Retry decoding with the alternative charset - $content_ref = \Encode::decode($alt_charset, $$content_ref, - ($opt{charset_strict} ? Encode::FB_CROAK() : 0) | Encode::LEAVE_SRC()) - unless $alt_charset eq "none"; - $retried++; - } - } - die unless $retried; - } - die "Encode::decode() returned undef improperly" unless defined $$content_ref; - if ($is_xml) { - # Get rid of the XML encoding declaration if present - $$content_ref =~ s/^\x{FEFF}//; - if ($$content_ref =~ /^(\s*<\?xml[^\x00]*?\?>)/) { - substr($$content_ref, 0, length($1)) =~ s/\sencoding\s*=\s*(["']).*?\1//; - } - } - } - } - }; - if ($@) { - Carp::croak($@) if $opt{raise_error}; - return undef; - } - - return $opt{ref} ? $content_ref : $$content_ref; -} - - -sub decodable -{ - # should match the Content-Encoding values that decoded_content can deal with - my $self = shift; - my @enc; - # XXX preferably we should determine if the modules are available without loading - # them here - eval { - require IO::Uncompress::Gunzip; - push(@enc, "gzip", "x-gzip"); - }; - eval { - require IO::Uncompress::Inflate; - require IO::Uncompress::RawInflate; - push(@enc, "deflate"); - }; - eval { - require IO::Uncompress::Bunzip2; - push(@enc, "x-bzip2"); - }; - # we don't care about announcing the 'identity', 'base64' and - # 'quoted-printable' stuff - return wantarray ? @enc : join(", ", @enc); -} - - -sub decode -{ - my $self = shift; - return 1 unless $self->header("Content-Encoding"); - if (defined(my $content = $self->decoded_content(charset => "none"))) { - $self->remove_header("Content-Encoding", "Content-Length", "Content-MD5"); - $self->content($content); - return 1; - } - return 0; -} - - -sub encode -{ - my($self, @enc) = @_; - - Carp::croak("Can't encode multipart/* messages") if $self->content_type =~ m,^multipart/,; - Carp::croak("Can't encode message/* messages") if $self->content_type =~ m,^message/,; - - return 1 unless @enc; # nothing to do - - my $content = $self->content; - for my $encoding (@enc) { - if ($encoding eq "identity") { - # nothing to do - } - elsif ($encoding eq "base64") { - require MIME::Base64; - $content = MIME::Base64::encode($content); - } - elsif ($encoding eq "gzip" || $encoding eq "x-gzip") { - require IO::Compress::Gzip; - my $output; - IO::Compress::Gzip::gzip(\$content, \$output, Minimal => 1) - or die "Can't gzip content: $IO::Compress::Gzip::GzipError"; - $content = $output; - } - elsif ($encoding eq "deflate") { - require IO::Compress::Deflate; - my $output; - IO::Compress::Deflate::deflate(\$content, \$output) - or die "Can't deflate content: $IO::Compress::Deflate::DeflateError"; - $content = $output; - } - elsif ($encoding eq "x-bzip2") { - require IO::Compress::Bzip2; - my $output; - IO::Compress::Bzip2::bzip2(\$content, \$output) - or die "Can't bzip2 content: $IO::Compress::Bzip2::Bzip2Error"; - $content = $output; - } - elsif ($encoding eq "rot13") { # for the fun of it - $content =~ tr/A-Za-z/N-ZA-Mn-za-m/; - } - else { - return 0; - } - } - my $h = $self->header("Content-Encoding"); - unshift(@enc, $h) if $h; - $self->header("Content-Encoding", join(", ", @enc)); - $self->remove_header("Content-Length", "Content-MD5"); - $self->content($content); - return 1; -} - - -sub as_string -{ - my($self, $eol) = @_; - $eol = "\n" unless defined $eol; - - # The calculation of content might update the headers - # so we need to do that first. - my $content = $self->content; - - return join("", $self->{'_headers'}->as_string($eol), - $eol, - $content, - (@_ == 1 && length($content) && - $content !~ /\n\z/) ? "\n" : "", - ); -} - - -sub dump -{ - my($self, %opt) = @_; - my $content = $self->content; - my $chopped = 0; - if (!ref($content)) { - my $maxlen = $opt{maxlength}; - $maxlen = 512 unless defined($maxlen); - if ($maxlen && length($content) > $maxlen * 1.1 + 3) { - $chopped = length($content) - $maxlen; - $content = substr($content, 0, $maxlen) . "..."; - } - - $content =~ s/\\/\\\\/g; - $content =~ s/\t/\\t/g; - $content =~ s/\r/\\r/g; - - # no need for 3 digits in escape for these - $content =~ s/([\0-\11\13-\037])(?!\d)/sprintf('\\%o',ord($1))/eg; - - $content =~ s/([\0-\11\13-\037\177-\377])/sprintf('\\x%02X',ord($1))/eg; - $content =~ s/([^\12\040-\176])/sprintf('\\x{%X}',ord($1))/eg; - - # remaining whitespace - $content =~ s/( +)\n/("\\40" x length($1)) . "\n"/eg; - $content =~ s/(\n+)\n/("\\n" x length($1)) . "\n"/eg; - $content =~ s/\n\z/\\n/; - - my $no_content = $opt{no_content}; - $no_content = "(no content)" unless defined $no_content; - if ($content eq $no_content) { - # escape our $no_content marker - $content =~ s/^(.)/sprintf('\\x%02X',ord($1))/eg; - } - elsif ($content eq "") { - $content = $no_content; - } - } - - my @dump; - push(@dump, $opt{preheader}) if $opt{preheader}; - push(@dump, $self->{_headers}->as_string, $content); - push(@dump, "(+ $chopped more bytes not shown)") if $chopped; - - my $dump = join("\n", @dump, ""); - $dump =~ s/^/$opt{prefix}/gm if $opt{prefix}; - - print $dump unless defined wantarray; - return $dump; -} - -# allow subclasses to override what will handle individual parts -sub _part_class { - return __PACKAGE__; -} - -sub parts { - my $self = shift; - if (defined(wantarray) && (!exists $self->{_parts} || ref($self->{_content}) eq "SCALAR")) { - $self->_parts; - } - my $old = $self->{_parts}; - if (@_) { - my @parts = map { ref($_) eq 'ARRAY' ? @$_ : $_ } @_; - my $ct = $self->content_type || ""; - if ($ct =~ m,^message/,) { - Carp::croak("Only one part allowed for $ct content") - if @parts > 1; - } - elsif ($ct !~ m,^multipart/,) { - $self->remove_content_headers; - $self->content_type("multipart/mixed"); - } - $self->{_parts} = \@parts; - _stale_content($self); - } - return @$old if wantarray; - return $old->[0]; -} - -sub add_part { - my $self = shift; - if (($self->content_type || "") !~ m,^multipart/,) { - my $p = $self->_part_class->new( - $self->remove_content_headers, - $self->content(""), - ); - $self->content_type("multipart/mixed"); - $self->{_parts} = []; - if ($p->headers->header_field_names || $p->content ne "") { - push(@{$self->{_parts}}, $p); - } - } - elsif (!exists $self->{_parts} || ref($self->{_content}) eq "SCALAR") { - $self->_parts; - } - - push(@{$self->{_parts}}, @_); - _stale_content($self); - return; -} - -sub _stale_content { - my $self = shift; - if (ref($self->{_content}) eq "SCALAR") { - # must recalculate now - $self->_content; - } - else { - # just invalidate cache - delete $self->{_content}; - delete $self->{_content_ref}; - } -} - - -# delegate all other method calls to the headers object. -our $AUTOLOAD; -sub AUTOLOAD -{ - my $method = substr($AUTOLOAD, rindex($AUTOLOAD, '::')+2); - - # We create the function here so that it will not need to be - # autoloaded the next time. - no strict 'refs'; - *$method = sub { local $Carp::Internal{+__PACKAGE__} = 1; shift->headers->$method(@_) }; - goto &$method; -} - - -sub DESTROY {} # avoid AUTOLOADing it - - -# Private method to access members in %$self -sub _elem -{ - my $self = shift; - my $elem = shift; - my $old = $self->{$elem}; - $self->{$elem} = $_[0] if @_; - return $old; -} - - -# Create private _parts attribute from current _content -sub _parts { - my $self = shift; - my $ct = $self->content_type; - if ($ct =~ m,^multipart/,) { - require HTTP::Headers::Util; - my @h = HTTP::Headers::Util::split_header_words($self->header("Content-Type")); - die "Assert" unless @h; - my %h = @{$h[0]}; - if (defined(my $b = $h{boundary})) { - my $str = $self->content; - $str =~ s/\r?\n--\Q$b\E--.*//s; - if ($str =~ s/(^|.*?\r?\n)--\Q$b\E\r?\n//s) { - $self->{_parts} = [map $self->_part_class->parse($_), - split(/\r?\n--\Q$b\E\r?\n/, $str)] - } - } - } - elsif ($ct eq "message/http") { - require HTTP::Request; - require HTTP::Response; - my $content = $self->content; - my $class = ($content =~ m,^(HTTP/.*)\n,) ? - "HTTP::Response" : "HTTP::Request"; - $self->{_parts} = [$class->parse($content)]; - } - elsif ($ct =~ m,^message/,) { - $self->{_parts} = [ $self->_part_class->parse($self->content) ]; - } - - $self->{_parts} ||= []; -} - - -# Create private _content attribute from current _parts -sub _content { - my $self = shift; - my $ct = $self->{_headers}->header("Content-Type") || "multipart/mixed"; - if ($ct =~ m,^\s*message/,i) { - _set_content($self, $self->{_parts}[0]->as_string($CRLF), 1); - return; - } - - require HTTP::Headers::Util; - my @v = HTTP::Headers::Util::split_header_words($ct); - Carp::carp("Multiple Content-Type headers") if @v > 1; - @v = @{$v[0]}; - - my $boundary; - my $boundary_index; - for (my @tmp = @v; @tmp;) { - my($k, $v) = splice(@tmp, 0, 2); - if ($k eq "boundary") { - $boundary = $v; - $boundary_index = @v - @tmp - 1; - last; - } - } - - my @parts = map $_->as_string($CRLF), @{$self->{_parts}}; - - my $bno = 0; - $boundary = _boundary() unless defined $boundary; - CHECK_BOUNDARY: - { - for (@parts) { - if (index($_, $boundary) >= 0) { - # must have a better boundary - $boundary = _boundary(++$bno); - redo CHECK_BOUNDARY; - } - } - } - - if ($boundary_index) { - $v[$boundary_index] = $boundary; - } - else { - push(@v, boundary => $boundary); - } - - $ct = HTTP::Headers::Util::join_header_words(@v); - $self->{_headers}->header("Content-Type", $ct); - - _set_content($self, "--$boundary$CRLF" . - join("$CRLF--$boundary$CRLF", @parts) . - "$CRLF--$boundary--$CRLF", - 1); -} - - -sub _boundary -{ - my $size = shift || return "xYzZY"; - require MIME::Base64; - my $b = MIME::Base64::encode(join("", map chr(rand(256)), 1..$size*3), ""); - $b =~ s/[\W]/X/g; # ensure alnum only - $b; -} - - -1; - - -__END__ - -#line 1115 diff --git a/software/Slic3r-1.3.0.64bit/lib/HTTP/Negotiate.pm b/software/Slic3r-1.3.0.64bit/lib/HTTP/Negotiate.pm deleted file mode 100644 index 7c17fe4f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/HTTP/Negotiate.pm +++ /dev/null @@ -1,307 +0,0 @@ -#line 1 "HTTP/Negotiate.pm" -package HTTP::Negotiate; - -$VERSION = "6.01"; -sub Version { $VERSION; } - -require Exporter; -@ISA = qw(Exporter); -@EXPORT = qw(choose); - -require HTTP::Headers; - -$DEBUG = 0; - -sub choose ($;$) -{ - my($variants, $request) = @_; - my(%accept); - - unless (defined $request) { - # Create a request object from the CGI environment variables - $request = HTTP::Headers->new; - $request->header('Accept', $ENV{HTTP_ACCEPT}) - if $ENV{HTTP_ACCEPT}; - $request->header('Accept-Charset', $ENV{HTTP_ACCEPT_CHARSET}) - if $ENV{HTTP_ACCEPT_CHARSET}; - $request->header('Accept-Encoding', $ENV{HTTP_ACCEPT_ENCODING}) - if $ENV{HTTP_ACCEPT_ENCODING}; - $request->header('Accept-Language', $ENV{HTTP_ACCEPT_LANGUAGE}) - if $ENV{HTTP_ACCEPT_LANGUAGE}; - } - - # Get all Accept values from the request. Build a hash initialized - # like this: - # - # %accept = ( type => { 'audio/*' => { q => 0.2, mbx => 20000 }, - # 'audio/basic' => { q => 1 }, - # }, - # language => { 'no' => { q => 1 }, - # } - # ); - - $request->scan(sub { - my($key, $val) = @_; - - my $type; - if ($key =~ s/^Accept-//) { - $type = lc($key); - } - elsif ($key eq "Accept") { - $type = "type"; - } - else { - return; - } - - $val =~ s/\s+//g; - my $default_q = 1; - for my $name (split(/,/, $val)) { - my(%param, $param); - if ($name =~ s/;(.*)//) { - for $param (split(/;/, $1)) { - my ($pk, $pv) = split(/=/, $param, 2); - $param{lc $pk} = $pv; - } - } - $name = lc $name; - if (defined $param{'q'}) { - $param{'q'} = 1 if $param{'q'} > 1; - $param{'q'} = 0 if $param{'q'} < 0; - } - else { - $param{'q'} = $default_q; - - # This makes sure that the first ones are slightly better off - # and therefore more likely to be chosen. - $default_q -= 0.0001; - } - $accept{$type}{$name} = \%param; - } - }); - - # Check if any of the variants specify a language. We do this - # because it influences how we treat those without (they default to - # 0.5 instead of 1). - my $any_lang = 0; - for $var (@$variants) { - if ($var->[5]) { - $any_lang = 1; - last; - } - } - - if ($DEBUG) { - print "Negotiation parameters in the request\n"; - for $type (keys %accept) { - print " $type:\n"; - for $name (keys %{$accept{$type}}) { - print " $name\n"; - for $pv (keys %{$accept{$type}{$name}}) { - print " $pv = $accept{$type}{$name}{$pv}\n"; - } - } - } - } - - my @Q = (); # This is where we collect the results of the - # quality calculations - - # Calculate quality for all the variants that are available. - for (@$variants) { - my($id, $qs, $ct, $enc, $cs, $lang, $bs) = @$_; - $qs = 1 unless defined $qs; - $ct = '' unless defined $ct; - $bs = 0 unless defined $bs; - $lang = lc($lang) if $lang; # lg tags are always case-insensitive - if ($DEBUG) { - print "\nEvaluating $id (ct='$ct')\n"; - printf " qs = %.3f\n", $qs; - print " enc = $enc\n" if $enc && !ref($enc); - print " enc = @$enc\n" if $enc && ref($enc); - print " cs = $cs\n" if $cs; - print " lang = $lang\n" if $lang; - print " bs = $bs\n" if $bs; - } - - # Calculate encoding quality - my $qe = 1; - # If the variant has no assigned Content-Encoding, or if no - # Accept-Encoding field is present, then the value assigned - # is "qe=1". If *all* of the variant's content encodings - # are listed in the Accept-Encoding field, then the value - # assigned is "qw=1". If *any* of the variant's content - # encodings are not listed in the provided Accept-Encoding - # field, then the value assigned is "qe=0" - if (exists $accept{'encoding'} && $enc) { - my @enc = ref($enc) ? @$enc : ($enc); - for (@enc) { - print "Is encoding $_ accepted? " if $DEBUG; - unless(exists $accept{'encoding'}{$_}) { - print "no\n" if $DEBUG; - $qe = 0; - last; - } - else { - print "yes\n" if $DEBUG; - } - } - } - - # Calculate charset quality - my $qc = 1; - # If the variant's media-type has no charset parameter, - # or the variant's charset is US-ASCII, or if no Accept-Charset - # field is present, then the value assigned is "qc=1". If the - # variant's charset is listed in the Accept-Charset field, - # then the value assigned is "qc=1. Otherwise, if the variant's - # charset is not listed in the provided Accept-Encoding field, - # then the value assigned is "qc=0". - if (exists $accept{'charset'} && $cs && $cs ne 'us-ascii' ) { - $qc = 0 unless $accept{'charset'}{$cs}; - } - - # Calculate language quality - my $ql = 1; - if ($lang && exists $accept{'language'}) { - my @lang = ref($lang) ? @$lang : ($lang); - # If any of the variant's content languages are listed - # in the Accept-Language field, the the value assigned is - # the largest of the "q" parameter values for those language - # tags. - my $q = undef; - for (@lang) { - next unless exists $accept{'language'}{$_}; - my $this_q = $accept{'language'}{$_}{'q'}; - $q = $this_q unless defined $q; - $q = $this_q if $this_q > $q; - } - if(defined $q) { - $DEBUG and print " -- Exact language match at q=$q\n"; - } - else { - # If there was no exact match and at least one of - # the Accept-Language field values is a complete - # subtag prefix of the content language tag(s), then - # the "q" parameter value of the largest matching - # prefix is used. - $DEBUG and print " -- No exact language match\n"; - my $selected = undef; - for $al (keys %{ $accept{'language'} }) { - if (index($al, "$lang-") == 0) { - # $lang starting with $al isn't enough, or else - # Accept-Language: hu (Hungarian) would seem - # to accept a document in hup (Hupa) - $DEBUG and print " -- $al ISA $lang\n"; - $selected = $al unless defined $selected; - $selected = $al if length($al) > length($selected); - } - else { - $DEBUG and print " -- $lang isn't a $al\n"; - } - } - $q = $accept{'language'}{$selected}{'q'} if $selected; - - # If none of the variant's content language tags or - # tag prefixes are listed in the provided - # Accept-Language field, then the value assigned - # is "ql=0.001" - $q = 0.001 unless defined $q; - } - $ql = $q; - } - else { - $ql = 0.5 if $any_lang && exists $accept{'language'}; - } - - my $q = 1; - my $mbx = undef; - # If no Accept field is given, then the value assigned is "q=1". - # If at least one listed media range matches the variant's media - # type, then the "q" parameter value assigned to the most specific - # of those matched is used (e.g. "text/html;version=3.0" is more - # specific than "text/html", which is more specific than "text/*", - # which in turn is more specific than "*/*"). If not media range - # in the provided Accept field matches the variant's media type, - # then the value assigned is "q=0". - if (exists $accept{'type'} && $ct) { - # First we clean up our content-type - $ct =~ s/\s+//g; - my $params = ""; - $params = $1 if $ct =~ s/;(.*)//; - my($type, $subtype) = split("/", $ct, 2); - my %param = (); - for $param (split(/;/, $params)) { - my($pk,$pv) = split(/=/, $param, 2); - $param{$pk} = $pv; - } - - my $sel_q = undef; - my $sel_mbx = undef; - my $sel_specificness = 0; - - ACCEPT_TYPE: - for $at (keys %{ $accept{'type'} }) { - print "Consider $at...\n" if $DEBUG; - my($at_type, $at_subtype) = split("/", $at, 2); - # Is it a match on the type - next if $at_type ne '*' && $at_type ne $type; - next if $at_subtype ne '*' && $at_subtype ne $subtype; - my $specificness = 0; - $specificness++ if $at_type ne '*'; - $specificness++ if $at_subtype ne '*'; - # Let's see if content-type parameters also match - while (($pk, $pv) = each %param) { - print "Check if $pk = $pv is true\n" if $DEBUG; - next unless exists $accept{'type'}{$at}{$pk}; - next ACCEPT_TYPE - unless $accept{'type'}{$at}{$pk} eq $pv; - print "yes it is!!\n" if $DEBUG; - $specificness++; - } - print "Hurray, type match with specificness = $specificness\n" - if $DEBUG; - - if (!defined($sel_q) || $sel_specificness < $specificness) { - $sel_q = $accept{'type'}{$at}{'q'}; - $sel_mbx = $accept{'type'}{$at}{'mbx'}; - $sel_specificness = $specificness; - } - } - $q = $sel_q || 0; - $mbx = $sel_mbx; - } - - my $Q; - if (!defined($mbx) || $mbx >= $bs) { - $Q = $qs * $qe * $qc * $ql * $q; - } - else { - $Q = 0; - print "Variant's size is too large ==> Q=0\n" if $DEBUG; - } - - if ($DEBUG) { - $mbx = "undef" unless defined $mbx; - printf "Q=%.4f", $Q; - print " (q=$q, mbx=$mbx, qe=$qe, qc=$qc, ql=$ql, qs=$qs)\n"; - } - - push(@Q, [$id, $Q, $bs]); - } - - - @Q = sort { $b->[1] <=> $a->[1] || $a->[2] <=> $b->[2] } @Q; - - return @Q if wantarray; - return undef unless @Q; - return undef if $Q[0][1] == 0; - $Q[0][0]; -} - -1; - -__END__ - - -#line 529 diff --git a/software/Slic3r-1.3.0.64bit/lib/HTTP/Request.pm b/software/Slic3r-1.3.0.64bit/lib/HTTP/Request.pm deleted file mode 100644 index 75298bc3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/HTTP/Request.pm +++ /dev/null @@ -1,138 +0,0 @@ -#line 1 "HTTP/Request.pm" -package HTTP::Request; - -use strict; -use warnings; - -use base 'HTTP::Message'; - -our $VERSION = "6.11"; - -sub new -{ - my($class, $method, $uri, $header, $content) = @_; - my $self = $class->SUPER::new($header, $content); - $self->method($method); - $self->uri($uri); - $self; -} - - -sub parse -{ - my($class, $str) = @_; - my $request_line; - if ($str =~ s/^(.*)\n//) { - $request_line = $1; - } - else { - $request_line = $str; - $str = ""; - } - - my $self = $class->SUPER::parse($str); - my($method, $uri, $protocol) = split(' ', $request_line); - $self->method($method) if defined($method); - $self->uri($uri) if defined($uri); - $self->protocol($protocol) if $protocol; - $self; -} - - -sub clone -{ - my $self = shift; - my $clone = bless $self->SUPER::clone, ref($self); - $clone->method($self->method); - $clone->uri($self->uri); - $clone; -} - - -sub method -{ - shift->_elem('_method', @_); -} - - -sub uri -{ - my $self = shift; - my $old = $self->{'_uri'}; - if (@_) { - my $uri = shift; - if (!defined $uri) { - # that's ok - } - elsif (ref $uri) { - Carp::croak("A URI can't be a " . ref($uri) . " reference") - if ref($uri) eq 'HASH' or ref($uri) eq 'ARRAY'; - Carp::croak("Can't use a " . ref($uri) . " object as a URI") - unless $uri->can('scheme'); - $uri = $uri->clone; - unless ($HTTP::URI_CLASS eq "URI") { - # Argh!! Hate this... old LWP legacy! - eval { local $SIG{__DIE__}; $uri = $uri->abs; }; - die $@ if $@ && $@ !~ /Missing base argument/; - } - } - else { - $uri = $HTTP::URI_CLASS->new($uri); - } - $self->{'_uri'} = $uri; - delete $self->{'_uri_canonical'}; - } - $old; -} - -*url = \&uri; # legacy - -sub uri_canonical -{ - my $self = shift; - return $self->{'_uri_canonical'} ||= $self->{'_uri'}->canonical; -} - - -sub accept_decodable -{ - my $self = shift; - $self->header("Accept-Encoding", scalar($self->decodable)); -} - -sub as_string -{ - my $self = shift; - my($eol) = @_; - $eol = "\n" unless defined $eol; - - my $req_line = $self->method || "-"; - my $uri = $self->uri; - $uri = (defined $uri) ? $uri->as_string : "-"; - $req_line .= " $uri"; - my $proto = $self->protocol; - $req_line .= " $proto" if $proto; - - return join($eol, $req_line, $self->SUPER::as_string(@_)); -} - -sub dump -{ - my $self = shift; - my @pre = ($self->method || "-", $self->uri || "-"); - if (my $prot = $self->protocol) { - push(@pre, $prot); - } - - return $self->SUPER::dump( - preheader => join(" ", @pre), - @_, - ); -} - - -1; - -__END__ - -#line 242 diff --git a/software/Slic3r-1.3.0.64bit/lib/HTTP/Request/Common.pm b/software/Slic3r-1.3.0.64bit/lib/HTTP/Request/Common.pm deleted file mode 100644 index 6e442f6f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/HTTP/Request/Common.pm +++ /dev/null @@ -1,313 +0,0 @@ -#line 1 "HTTP/Request/Common.pm" -package HTTP::Request::Common; - -use strict; -use warnings; - -our $DYNAMIC_FILE_UPLOAD ||= 0; # make it defined (don't know why) - -use Exporter 5.57 'import'; - -our @EXPORT =qw(GET HEAD PUT POST); -our @EXPORT_OK = qw($DYNAMIC_FILE_UPLOAD DELETE); - -require HTTP::Request; -use Carp(); - -our $VERSION = "6.11"; - -my $CRLF = "\015\012"; # "\r\n" is not portable - -sub GET { _simple_req('GET', @_); } -sub HEAD { _simple_req('HEAD', @_); } -sub DELETE { _simple_req('DELETE', @_); } - -for my $type (qw(PUT POST)) { - no strict 'refs'; - *{ __PACKAGE__ . "::" . $type } = sub { - return request_type_with_data($type, @_); - }; -} - -sub request_type_with_data -{ - my $type = shift; - my $url = shift; - my $req = HTTP::Request->new($type => $url); - my $content; - $content = shift if @_ and ref $_[0]; - my($k, $v); - while (($k,$v) = splice(@_, 0, 2)) { - if (lc($k) eq 'content') { - $content = $v; - } - else { - $req->push_header($k, $v); - } - } - my $ct = $req->header('Content-Type'); - unless ($ct) { - $ct = 'application/x-www-form-urlencoded'; - } - elsif ($ct eq 'form-data') { - $ct = 'multipart/form-data'; - } - - if (ref $content) { - if ($ct =~ m,^multipart/form-data\s*(;|$),i) { - require HTTP::Headers::Util; - my @v = HTTP::Headers::Util::split_header_words($ct); - Carp::carp("Multiple Content-Type headers") if @v > 1; - @v = @{$v[0]}; - - my $boundary; - my $boundary_index; - for (my @tmp = @v; @tmp;) { - my($k, $v) = splice(@tmp, 0, 2); - if ($k eq "boundary") { - $boundary = $v; - $boundary_index = @v - @tmp - 1; - last; - } - } - - ($content, $boundary) = form_data($content, $boundary, $req); - - if ($boundary_index) { - $v[$boundary_index] = $boundary; - } - else { - push(@v, boundary => $boundary); - } - - $ct = HTTP::Headers::Util::join_header_words(@v); - } - else { - # We use a temporary URI object to format - # the application/x-www-form-urlencoded content. - require URI; - my $url = URI->new('http:'); - $url->query_form(ref($content) eq "HASH" ? %$content : @$content); - $content = $url->query; - - # HTML/4.01 says that line breaks are represented as "CR LF" pairs (i.e., `%0D%0A') - $content =~ s/(?header('Content-Type' => $ct); # might be redundant - if (defined($content)) { - $req->header('Content-Length' => - length($content)) unless ref($content); - $req->content($content); - } - else { - $req->header('Content-Length' => 0); - } - $req; -} - - -sub _simple_req -{ - my($method, $url) = splice(@_, 0, 2); - my $req = HTTP::Request->new($method => $url); - my($k, $v); - my $content; - while (($k,$v) = splice(@_, 0, 2)) { - if (lc($k) eq 'content') { - $req->add_content($v); - $content++; - } - else { - $req->push_header($k, $v); - } - } - if ($content && !defined($req->header("Content-Length"))) { - $req->header("Content-Length", length(${$req->content_ref})); - } - $req; -} - - -sub form_data # RFC1867 -{ - my($data, $boundary, $req) = @_; - my @data = ref($data) eq "HASH" ? %$data : @$data; # copy - my $fhparts; - my @parts; - while (my ($k,$v) = splice(@data, 0, 2)) { - if (!ref($v)) { - $k =~ s/([\\\"])/\\$1/g; # escape quotes and backslashes - no warnings 'uninitialized'; - push(@parts, - qq(Content-Disposition: form-data; name="$k"$CRLF$CRLF$v)); - } - else { - my($file, $usename, @headers) = @$v; - unless (defined $usename) { - $usename = $file; - $usename =~ s,.*/,, if defined($usename); - } - $k =~ s/([\\\"])/\\$1/g; - my $disp = qq(form-data; name="$k"); - if (defined($usename) and length($usename)) { - $usename =~ s/([\\\"])/\\$1/g; - $disp .= qq(; filename="$usename"); - } - my $content = ""; - my $h = HTTP::Headers->new(@headers); - if ($file) { - open(my $fh, "<", $file) or Carp::croak("Can't open file $file: $!"); - binmode($fh); - if ($DYNAMIC_FILE_UPLOAD) { - # will read file later, close it now in order to - # not accumulate to many open file handles - close($fh); - $content = \$file; - } - else { - local($/) = undef; # slurp files - $content = <$fh>; - close($fh); - } - unless ($h->header("Content-Type")) { - require LWP::MediaTypes; - LWP::MediaTypes::guess_media_type($file, $h); - } - } - if ($h->header("Content-Disposition")) { - # just to get it sorted first - $disp = $h->header("Content-Disposition"); - $h->remove_header("Content-Disposition"); - } - if ($h->header("Content")) { - $content = $h->header("Content"); - $h->remove_header("Content"); - } - my $head = join($CRLF, "Content-Disposition: $disp", - $h->as_string($CRLF), - ""); - if (ref $content) { - push(@parts, [$head, $$content]); - $fhparts++; - } - else { - push(@parts, $head . $content); - } - } - } - return ("", "none") unless @parts; - - my $content; - if ($fhparts) { - $boundary = boundary(10) # hopefully enough randomness - unless $boundary; - - # add the boundaries to the @parts array - for (1..@parts-1) { - splice(@parts, $_*2-1, 0, "$CRLF--$boundary$CRLF"); - } - unshift(@parts, "--$boundary$CRLF"); - push(@parts, "$CRLF--$boundary--$CRLF"); - - # See if we can generate Content-Length header - my $length = 0; - for (@parts) { - if (ref $_) { - my ($head, $f) = @$_; - my $file_size; - unless ( -f $f && ($file_size = -s _) ) { - # The file is either a dynamic file like /dev/audio - # or perhaps a file in the /proc file system where - # stat may return a 0 size even though reading it - # will produce data. So we cannot make - # a Content-Length header. - undef $length; - last; - } - $length += $file_size + length $head; - } - else { - $length += length; - } - } - $length && $req->header('Content-Length' => $length); - - # set up a closure that will return content piecemeal - $content = sub { - for (;;) { - unless (@parts) { - defined $length && $length != 0 && - Carp::croak "length of data sent did not match calculated Content-Length header. Probably because uploaded file changed in size during transfer."; - return; - } - my $p = shift @parts; - unless (ref $p) { - $p .= shift @parts while @parts && !ref($parts[0]); - defined $length && ($length -= length $p); - return $p; - } - my($buf, $fh) = @$p; - unless (ref($fh)) { - my $file = $fh; - undef($fh); - open($fh, "<", $file) || Carp::croak("Can't open file $file: $!"); - binmode($fh); - } - my $buflength = length $buf; - my $n = read($fh, $buf, 2048, $buflength); - if ($n) { - $buflength += $n; - unshift(@parts, ["", $fh]); - } - else { - close($fh); - } - if ($buflength) { - defined $length && ($length -= $buflength); - return $buf - } - } - }; - - } - else { - $boundary = boundary() unless $boundary; - - my $bno = 0; - CHECK_BOUNDARY: - { - for (@parts) { - if (index($_, $boundary) >= 0) { - # must have a better boundary - $boundary = boundary(++$bno); - redo CHECK_BOUNDARY; - } - } - last; - } - $content = "--$boundary$CRLF" . - join("$CRLF--$boundary$CRLF", @parts) . - "$CRLF--$boundary--$CRLF"; - } - - wantarray ? ($content, $boundary) : $content; -} - - -sub boundary -{ - my $size = shift || return "xYzZY"; - require MIME::Base64; - my $b = MIME::Base64::encode(join("", map chr(rand(256)), 1..$size*3), ""); - $b =~ s/[\W]/X/g; # ensure alnum only - $b; -} - -1; - -__END__ - -#line 521 - diff --git a/software/Slic3r-1.3.0.64bit/lib/HTTP/Response.pm b/software/Slic3r-1.3.0.64bit/lib/HTTP/Response.pm deleted file mode 100644 index 370b234c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/HTTP/Response.pm +++ /dev/null @@ -1,343 +0,0 @@ -#line 1 "HTTP/Response.pm" -package HTTP::Response; - -use strict; -use warnings; - -use base 'HTTP::Message'; - -our $VERSION = "6.11"; - -use HTTP::Status (); - - -sub new -{ - my($class, $rc, $msg, $header, $content) = @_; - my $self = $class->SUPER::new($header, $content); - $self->code($rc); - $self->message($msg); - $self; -} - - -sub parse -{ - my($class, $str) = @_; - my $status_line; - if ($str =~ s/^(.*)\n//) { - $status_line = $1; - } - else { - $status_line = $str; - $str = ""; - } - - my $self = $class->SUPER::parse($str); - my($protocol, $code, $message); - if ($status_line =~ /^\d{3} /) { - # Looks like a response created by HTTP::Response->new - ($code, $message) = split(' ', $status_line, 2); - } else { - ($protocol, $code, $message) = split(' ', $status_line, 3); - } - $self->protocol($protocol) if $protocol; - $self->code($code) if defined($code); - $self->message($message) if defined($message); - $self; -} - - -sub clone -{ - my $self = shift; - my $clone = bless $self->SUPER::clone, ref($self); - $clone->code($self->code); - $clone->message($self->message); - $clone->request($self->request->clone) if $self->request; - # we don't clone previous - $clone; -} - - -sub code { shift->_elem('_rc', @_); } -sub message { shift->_elem('_msg', @_); } -sub previous { shift->_elem('_previous',@_); } -sub request { shift->_elem('_request', @_); } - - -sub status_line -{ - my $self = shift; - my $code = $self->{'_rc'} || "000"; - my $mess = $self->{'_msg'} || HTTP::Status::status_message($code) || "Unknown code"; - return "$code $mess"; -} - - -sub base -{ - my $self = shift; - my $base = ( - $self->header('Content-Base'), # used to be HTTP/1.1 - $self->header('Content-Location'), # HTTP/1.1 - $self->header('Base'), # HTTP/1.0 - )[0]; - if ($base && $base =~ /^$URI::scheme_re:/o) { - # already absolute - return $HTTP::URI_CLASS->new($base); - } - - my $req = $self->request; - if ($req) { - # if $base is undef here, the return value is effectively - # just a copy of $self->request->uri. - return $HTTP::URI_CLASS->new_abs($base, $req->uri); - } - - # can't find an absolute base - return undef; -} - - -sub redirects { - my $self = shift; - my @r; - my $r = $self; - while (my $p = $r->previous) { - push(@r, $p); - $r = $p; - } - return @r unless wantarray; - return reverse @r; -} - - -sub filename -{ - my $self = shift; - my $file; - - my $cd = $self->header('Content-Disposition'); - if ($cd) { - require HTTP::Headers::Util; - if (my @cd = HTTP::Headers::Util::split_header_words($cd)) { - my ($disposition, undef, %cd_param) = @{$cd[-1]}; - $file = $cd_param{filename}; - - # RFC 2047 encoded? - if ($file && $file =~ /^=\?(.+?)\?(.+?)\?(.+)\?=$/) { - my $charset = $1; - my $encoding = uc($2); - my $encfile = $3; - - if ($encoding eq 'Q' || $encoding eq 'B') { - local($SIG{__DIE__}); - eval { - if ($encoding eq 'Q') { - $encfile =~ s/_/ /g; - require MIME::QuotedPrint; - $encfile = MIME::QuotedPrint::decode($encfile); - } - else { # $encoding eq 'B' - require MIME::Base64; - $encfile = MIME::Base64::decode($encfile); - } - - require Encode; - require Encode::Locale; - Encode::from_to($encfile, $charset, "locale_fs"); - }; - - $file = $encfile unless $@; - } - } - } - } - - unless (defined($file) && length($file)) { - my $uri; - if (my $cl = $self->header('Content-Location')) { - $uri = URI->new($cl); - } - elsif (my $request = $self->request) { - $uri = $request->uri; - } - - if ($uri) { - $file = ($uri->path_segments)[-1]; - } - } - - if ($file) { - $file =~ s,.*[\\/],,; # basename - } - - if ($file && !length($file)) { - $file = undef; - } - - $file; -} - - -sub as_string -{ - my $self = shift; - my($eol) = @_; - $eol = "\n" unless defined $eol; - - my $status_line = $self->status_line; - my $proto = $self->protocol; - $status_line = "$proto $status_line" if $proto; - - return join($eol, $status_line, $self->SUPER::as_string(@_)); -} - - -sub dump -{ - my $self = shift; - - my $status_line = $self->status_line; - my $proto = $self->protocol; - $status_line = "$proto $status_line" if $proto; - - return $self->SUPER::dump( - preheader => $status_line, - @_, - ); -} - - -sub is_info { HTTP::Status::is_info (shift->{'_rc'}); } -sub is_success { HTTP::Status::is_success (shift->{'_rc'}); } -sub is_redirect { HTTP::Status::is_redirect (shift->{'_rc'}); } -sub is_error { HTTP::Status::is_error (shift->{'_rc'}); } -sub is_client_error { HTTP::Status::is_client_error (shift->{'_rc'}); } -sub is_server_error { HTTP::Status::is_server_error (shift->{'_rc'}); } - - -sub error_as_HTML -{ - my $self = shift; - my $title = 'An Error Occurred'; - my $body = $self->status_line; - $body =~ s/&/&/g; - $body =~ s/ -$title - -

$title

-

$body

- - -EOM -} - - -sub current_age -{ - my $self = shift; - my $time = shift; - - # Implementation of RFC 2616 section 13.2.3 - # (age calculations) - my $response_time = $self->client_date; - my $date = $self->date; - - my $age = 0; - if ($response_time && $date) { - $age = $response_time - $date; # apparent_age - $age = 0 if $age < 0; - } - - my $age_v = $self->header('Age'); - if ($age_v && $age_v > $age) { - $age = $age_v; # corrected_received_age - } - - if ($response_time) { - my $request = $self->request; - if ($request) { - my $request_time = $request->date; - if ($request_time && $request_time < $response_time) { - # Add response_delay to age to get 'corrected_initial_age' - $age += $response_time - $request_time; - } - } - $age += ($time || time) - $response_time; - } - return $age; -} - - -sub freshness_lifetime -{ - my($self, %opt) = @_; - - # First look for the Cache-Control: max-age=n header - for my $cc ($self->header('Cache-Control')) { - for my $cc_dir (split(/\s*,\s*/, $cc)) { - return $1 if $cc_dir =~ /^max-age\s*=\s*(\d+)/i; - } - } - - # Next possibility is to look at the "Expires" header - my $date = $self->date || $self->client_date || $opt{time} || time; - if (my $expires = $self->expires) { - return $expires - $date; - } - - # Must apply heuristic expiration - return undef if exists $opt{heuristic_expiry} && !$opt{heuristic_expiry}; - - # Default heuristic expiration parameters - $opt{h_min} ||= 60; - $opt{h_max} ||= 24 * 3600; - $opt{h_lastmod_fraction} ||= 0.10; # 10% since last-mod suggested by RFC2616 - $opt{h_default} ||= 3600; - - # Should give a warning if more than 24 hours according to - # RFC 2616 section 13.2.4. Here we just make this the default - # maximum value. - - if (my $last_modified = $self->last_modified) { - my $h_exp = ($date - $last_modified) * $opt{h_lastmod_fraction}; - return $opt{h_min} if $h_exp < $opt{h_min}; - return $opt{h_max} if $h_exp > $opt{h_max}; - return $h_exp; - } - - # default when all else fails - return $opt{h_min} if $opt{h_min} > $opt{h_default}; - return $opt{h_default}; -} - - -sub is_fresh -{ - my($self, %opt) = @_; - $opt{time} ||= time; - my $f = $self->freshness_lifetime(%opt); - return undef unless defined($f); - return $f > $self->current_age($opt{time}); -} - - -sub fresh_until -{ - my($self, %opt) = @_; - $opt{time} ||= time; - my $f = $self->freshness_lifetime(%opt); - return undef unless defined($f); - return $f - $self->current_age($opt{time}) + $opt{time}; -} - -1; - - -__END__ - -#line 645 diff --git a/software/Slic3r-1.3.0.64bit/lib/HTTP/Status.pm b/software/Slic3r-1.3.0.64bit/lib/HTTP/Status.pm deleted file mode 100644 index 4bedf649..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/HTTP/Status.pm +++ /dev/null @@ -1,120 +0,0 @@ -#line 1 "HTTP/Status.pm" -package HTTP::Status; - -use strict; -use warnings; - -require 5.002; # because we use prototypes - -use base 'Exporter'; -our @EXPORT = qw(is_info is_success is_redirect is_error status_message); -our @EXPORT_OK = qw(is_client_error is_server_error); - -our $VERSION = "6.11"; - -# Note also addition of mnemonics to @EXPORT below - -# Unmarked codes are from RFC 2616 -# See also: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes - -my %StatusCode = ( - 100 => 'Continue', - 101 => 'Switching Protocols', - 102 => 'Processing', # RFC 2518 (WebDAV) - 200 => 'OK', - 201 => 'Created', - 202 => 'Accepted', - 203 => 'Non-Authoritative Information', - 204 => 'No Content', - 205 => 'Reset Content', - 206 => 'Partial Content', - 207 => 'Multi-Status', # RFC 2518 (WebDAV) - 208 => 'Already Reported', # RFC 5842 - 300 => 'Multiple Choices', - 301 => 'Moved Permanently', - 302 => 'Found', - 303 => 'See Other', - 304 => 'Not Modified', - 305 => 'Use Proxy', - 307 => 'Temporary Redirect', - 308 => 'Permanent Redirect', # RFC 7238 - 400 => 'Bad Request', - 401 => 'Unauthorized', - 402 => 'Payment Required', - 403 => 'Forbidden', - 404 => 'Not Found', - 405 => 'Method Not Allowed', - 406 => 'Not Acceptable', - 407 => 'Proxy Authentication Required', - 408 => 'Request Timeout', - 409 => 'Conflict', - 410 => 'Gone', - 411 => 'Length Required', - 412 => 'Precondition Failed', - 413 => 'Request Entity Too Large', - 414 => 'Request-URI Too Large', - 415 => 'Unsupported Media Type', - 416 => 'Request Range Not Satisfiable', - 417 => 'Expectation Failed', - 418 => 'I\'m a teapot', # RFC 2324 - 422 => 'Unprocessable Entity', # RFC 2518 (WebDAV) - 423 => 'Locked', # RFC 2518 (WebDAV) - 424 => 'Failed Dependency', # RFC 2518 (WebDAV) - 425 => 'No code', # WebDAV Advanced Collections - 426 => 'Upgrade Required', # RFC 2817 - 428 => 'Precondition Required', - 429 => 'Too Many Requests', - 431 => 'Request Header Fields Too Large', - 449 => 'Retry with', # unofficial Microsoft - 500 => 'Internal Server Error', - 501 => 'Not Implemented', - 502 => 'Bad Gateway', - 503 => 'Service Unavailable', - 504 => 'Gateway Timeout', - 505 => 'HTTP Version Not Supported', - 506 => 'Variant Also Negotiates', # RFC 2295 - 507 => 'Insufficient Storage', # RFC 2518 (WebDAV) - 509 => 'Bandwidth Limit Exceeded', # unofficial - 510 => 'Not Extended', # RFC 2774 - 511 => 'Network Authentication Required', -); - -my $mnemonicCode = ''; -my ($code, $message); -while (($code, $message) = each %StatusCode) { - # create mnemonic subroutines - $message =~ s/I'm/I am/; - $message =~ tr/a-z \-/A-Z__/; - $mnemonicCode .= "sub HTTP_$message () { $code }\n"; - $mnemonicCode .= "*RC_$message = \\&HTTP_$message;\n"; # legacy - $mnemonicCode .= "push(\@EXPORT_OK, 'HTTP_$message');\n"; - $mnemonicCode .= "push(\@EXPORT, 'RC_$message');\n"; -} -eval $mnemonicCode; # only one eval for speed -die if $@; - -# backwards compatibility -*RC_MOVED_TEMPORARILY = \&RC_FOUND; # 302 was renamed in the standard -push(@EXPORT, "RC_MOVED_TEMPORARILY"); - -our %EXPORT_TAGS = ( - constants => [grep /^HTTP_/, @EXPORT_OK], - is => [grep /^is_/, @EXPORT, @EXPORT_OK], -); - - -sub status_message ($) { $StatusCode{$_[0]}; } - -sub is_info ($) { $_[0] >= 100 && $_[0] < 200; } -sub is_success ($) { $_[0] >= 200 && $_[0] < 300; } -sub is_redirect ($) { $_[0] >= 300 && $_[0] < 400; } -sub is_error ($) { $_[0] >= 400 && $_[0] < 600; } -sub is_client_error ($) { $_[0] >= 400 && $_[0] < 500; } -sub is_server_error ($) { $_[0] >= 500 && $_[0] < 600; } - -1; - - -__END__ - -#line 270 \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/lib/IO.pm b/software/Slic3r-1.3.0.64bit/lib/IO.pm deleted file mode 100644 index 31ab6624..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/IO.pm +++ /dev/null @@ -1,33 +0,0 @@ -#line 1 "IO.pm" -# - -package IO; - -use XSLoader (); -use Carp; -use strict; -use warnings; - -our $VERSION = "1.36_01"; -XSLoader::load 'IO', $VERSION; - -sub import { - shift; - - warnings::warnif('deprecated', qq{Parameterless "use IO" deprecated}) - if @_ == 0 ; - - my @l = @_ ? @_ : qw(Handle Seekable File Pipe Socket Dir); - - local @INC = @INC; - pop @INC if $INC[-1] eq '.'; - eval join("", map { "require IO::" . (/(\w+)/)[0] . ";\n" } @l) - or croak $@; -} - -1; - -__END__ - -#line 70 - diff --git a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Adapter/Bzip2.pm b/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Adapter/Bzip2.pm deleted file mode 100644 index 6f1dd246..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Adapter/Bzip2.pm +++ /dev/null @@ -1,155 +0,0 @@ -#line 1 "IO/Compress/Adapter/Bzip2.pm" -package IO::Compress::Adapter::Bzip2 ; - -use strict; -use warnings; -use bytes; - -use IO::Compress::Base::Common 2.074 qw(:Status); - -use Compress::Raw::Bzip2 2.074 ; - -our ($VERSION); -$VERSION = '2.074'; - -sub mkCompObject -{ - my $BlockSize100K = shift ; - my $WorkFactor = shift ; - my $Verbosity = shift ; - - $BlockSize100K = 1 if ! defined $BlockSize100K ; - $WorkFactor = 0 if ! defined $WorkFactor ; - $Verbosity = 0 if ! defined $Verbosity ; - - my ($def, $status) = new Compress::Raw::Bzip2(1, $BlockSize100K, - $WorkFactor, $Verbosity); - - return (undef, "Could not create Deflate object: $status", $status) - if $status != BZ_OK ; - - return bless {'Def' => $def, - 'Error' => '', - 'ErrorNo' => 0, - } ; -} - -sub compr -{ - my $self = shift ; - - my $def = $self->{Def}; - - my $status = $def->bzdeflate($_[0], $_[1]) ; - $self->{ErrorNo} = $status; - - if ($status != BZ_RUN_OK) - { - $self->{Error} = "Deflate Error: $status"; - return STATUS_ERROR; - } - - return STATUS_OK; -} - -sub flush -{ - my $self = shift ; - - my $def = $self->{Def}; - - my $status = $def->bzflush($_[0]); - $self->{ErrorNo} = $status; - - if ($status != BZ_RUN_OK) - { - $self->{Error} = "Deflate Error: $status"; - return STATUS_ERROR; - } - - return STATUS_OK; - -} - -sub close -{ - my $self = shift ; - - my $def = $self->{Def}; - - my $status = $def->bzclose($_[0]); - $self->{ErrorNo} = $status; - - if ($status != BZ_STREAM_END) - { - $self->{Error} = "Deflate Error: $status"; - return STATUS_ERROR; - } - - return STATUS_OK; - -} - - -sub reset -{ - my $self = shift ; - - my $outer = $self->{Outer}; - - my ($def, $status) = new Compress::Raw::Bzip2(); - $self->{ErrorNo} = ($status == BZ_OK) ? 0 : $status ; - - if ($status != BZ_OK) - { - $self->{Error} = "Cannot create Deflate object: $status"; - return STATUS_ERROR; - } - - $self->{Def} = $def; - - return STATUS_OK; -} - -sub compressedBytes -{ - my $self = shift ; - $self->{Def}->compressedBytes(); -} - -sub uncompressedBytes -{ - my $self = shift ; - $self->{Def}->uncompressedBytes(); -} - -#sub total_out -#{ -# my $self = shift ; -# 0; -#} -# - -#sub total_in -#{ -# my $self = shift ; -# $self->{Def}->total_in(); -#} -# -#sub crc32 -#{ -# my $self = shift ; -# $self->{Def}->crc32(); -#} -# -#sub adler32 -#{ -# my $self = shift ; -# $self->{Def}->adler32(); -#} - - -1; - -__END__ - diff --git a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Adapter/Deflate.pm b/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Adapter/Deflate.pm deleted file mode 100644 index 69051272..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Adapter/Deflate.pm +++ /dev/null @@ -1,171 +0,0 @@ -#line 1 "IO/Compress/Adapter/Deflate.pm" -package IO::Compress::Adapter::Deflate ; - -use strict; -use warnings; -use bytes; - -use IO::Compress::Base::Common 2.074 qw(:Status); -use Compress::Raw::Zlib 2.074 qw( !crc32 !adler32 ) ; - -require Exporter; -our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, @EXPORT, %DEFLATE_CONSTANTS); - -$VERSION = '2.074'; -@ISA = qw(Exporter); -@EXPORT_OK = @Compress::Raw::Zlib::DEFLATE_CONSTANTS; -%EXPORT_TAGS = %Compress::Raw::Zlib::DEFLATE_CONSTANTS; -@EXPORT = @EXPORT_OK; -%DEFLATE_CONSTANTS = %EXPORT_TAGS ; - -sub mkCompObject -{ - my $crc32 = shift ; - my $adler32 = shift ; - my $level = shift ; - my $strategy = shift ; - - my ($def, $status) = new Compress::Raw::Zlib::Deflate - -AppendOutput => 1, - -CRC32 => $crc32, - -ADLER32 => $adler32, - -Level => $level, - -Strategy => $strategy, - -WindowBits => - MAX_WBITS; - - return (undef, "Cannot create Deflate object: $status", $status) - if $status != Z_OK; - - return bless {'Def' => $def, - 'Error' => '', - } ; -} - -sub compr -{ - my $self = shift ; - - my $def = $self->{Def}; - - my $status = $def->deflate($_[0], $_[1]) ; - $self->{ErrorNo} = $status; - - if ($status != Z_OK) - { - $self->{Error} = "Deflate Error: $status"; - return STATUS_ERROR; - } - - return STATUS_OK; -} - -sub flush -{ - my $self = shift ; - - my $def = $self->{Def}; - - my $opt = $_[1] || Z_FINISH; - my $status = $def->flush($_[0], $opt); - $self->{ErrorNo} = $status; - - if ($status != Z_OK) - { - $self->{Error} = "Deflate Error: $status"; - return STATUS_ERROR; - } - - return STATUS_OK; -} - -sub close -{ - my $self = shift ; - - my $def = $self->{Def}; - - $def->flush($_[0], Z_FINISH) - if defined $def ; -} - -sub reset -{ - my $self = shift ; - - my $def = $self->{Def}; - - my $status = $def->deflateReset() ; - $self->{ErrorNo} = $status; - if ($status != Z_OK) - { - $self->{Error} = "Deflate Error: $status"; - return STATUS_ERROR; - } - - return STATUS_OK; -} - -sub deflateParams -{ - my $self = shift ; - - my $def = $self->{Def}; - - my $status = $def->deflateParams(@_); - $self->{ErrorNo} = $status; - if ($status != Z_OK) - { - $self->{Error} = "deflateParams Error: $status"; - return STATUS_ERROR; - } - - return STATUS_OK; -} - - - -#sub total_out -#{ -# my $self = shift ; -# $self->{Def}->total_out(); -#} -# -#sub total_in -#{ -# my $self = shift ; -# $self->{Def}->total_in(); -#} - -sub compressedBytes -{ - my $self = shift ; - - $self->{Def}->compressedBytes(); -} - -sub uncompressedBytes -{ - my $self = shift ; - $self->{Def}->uncompressedBytes(); -} - - - - -sub crc32 -{ - my $self = shift ; - $self->{Def}->crc32(); -} - -sub adler32 -{ - my $self = shift ; - $self->{Def}->adler32(); -} - - -1; - -__END__ - diff --git a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Base.pm b/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Base.pm deleted file mode 100644 index ec2aa645..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Base.pm +++ /dev/null @@ -1,1012 +0,0 @@ -#line 1 "IO/Compress/Base.pm" - -package IO::Compress::Base ; - -require 5.006 ; - -use strict ; -use warnings; - -use IO::Compress::Base::Common 2.074 ; - -use IO::File (); ; -use Scalar::Util (); - -#use File::Glob; -#require Exporter ; -use Carp() ; -use Symbol(); -#use bytes; - -our (@ISA, $VERSION); -@ISA = qw(IO::File Exporter); - -$VERSION = '2.074'; - -#Can't locate object method "SWASHNEW" via package "utf8" (perhaps you forgot to load "utf8"?) at .../ext/Compress-Zlib/Gzip/blib/lib/Compress/Zlib/Common.pm line 16. - -sub saveStatus -{ - my $self = shift ; - ${ *$self->{ErrorNo} } = shift() + 0 ; - ${ *$self->{Error} } = '' ; - - return ${ *$self->{ErrorNo} } ; -} - - -sub saveErrorString -{ - my $self = shift ; - my $retval = shift ; - ${ *$self->{Error} } = shift ; - ${ *$self->{ErrorNo} } = shift() + 0 if @_ ; - - return $retval; -} - -sub croakError -{ - my $self = shift ; - $self->saveErrorString(0, $_[0]); - Carp::croak $_[0]; -} - -sub closeError -{ - my $self = shift ; - my $retval = shift ; - - my $errno = *$self->{ErrorNo}; - my $error = ${ *$self->{Error} }; - - $self->close(); - - *$self->{ErrorNo} = $errno ; - ${ *$self->{Error} } = $error ; - - return $retval; -} - - - -sub error -{ - my $self = shift ; - return ${ *$self->{Error} } ; -} - -sub errorNo -{ - my $self = shift ; - return ${ *$self->{ErrorNo} } ; -} - - -sub writeAt -{ - my $self = shift ; - my $offset = shift; - my $data = shift; - - if (defined *$self->{FH}) { - my $here = tell(*$self->{FH}); - return $self->saveErrorString(undef, "Cannot seek to end of output filehandle: $!", $!) - if $here < 0 ; - seek(*$self->{FH}, $offset, IO::Handle::SEEK_SET) - or return $self->saveErrorString(undef, "Cannot seek to end of output filehandle: $!", $!) ; - defined *$self->{FH}->write($data, length $data) - or return $self->saveErrorString(undef, $!, $!) ; - seek(*$self->{FH}, $here, IO::Handle::SEEK_SET) - or return $self->saveErrorString(undef, "Cannot seek to end of output filehandle: $!", $!) ; - } - else { - substr(${ *$self->{Buffer} }, $offset, length($data)) = $data ; - } - - return 1; -} - -sub outputPayload -{ - - my $self = shift ; - return $self->output(@_); -} - - -sub output -{ - my $self = shift ; - my $data = shift ; - my $last = shift ; - - return 1 - if length $data == 0 && ! $last ; - - if ( *$self->{FilterContainer} ) { - *_ = \$data; - &{ *$self->{FilterContainer} }(); - } - - if (length $data) { - if ( defined *$self->{FH} ) { - defined *$self->{FH}->write( $data, length $data ) - or return $self->saveErrorString(0, $!, $!); - } - else { - ${ *$self->{Buffer} } .= $data ; - } - } - - return 1; -} - -sub getOneShotParams -{ - return ( 'multistream' => [IO::Compress::Base::Common::Parse_boolean, 1], - ); -} - -our %PARAMS = ( - # Generic Parameters - 'autoclose' => [IO::Compress::Base::Common::Parse_boolean, 0], - 'encode' => [IO::Compress::Base::Common::Parse_any, undef], - 'strict' => [IO::Compress::Base::Common::Parse_boolean, 1], - 'append' => [IO::Compress::Base::Common::Parse_boolean, 0], - 'binmodein' => [IO::Compress::Base::Common::Parse_boolean, 0], - - 'filtercontainer' => [IO::Compress::Base::Common::Parse_code, undef], - ); - -sub checkParams -{ - my $self = shift ; - my $class = shift ; - - my $got = shift || IO::Compress::Base::Parameters::new(); - - $got->parse( - { - %PARAMS, - - - $self->getExtraParams(), - *$self->{OneShot} ? $self->getOneShotParams() - : (), - }, - @_) or $self->croakError("${class}: " . $got->getError()) ; - - return $got ; -} - -sub _create -{ - my $obj = shift; - my $got = shift; - - *$obj->{Closed} = 1 ; - - my $class = ref $obj; - $obj->croakError("$class: Missing Output parameter") - if ! @_ && ! $got ; - - my $outValue = shift ; - my $oneShot = 1 ; - - if (! $got) - { - $oneShot = 0 ; - $got = $obj->checkParams($class, undef, @_) - or return undef ; - } - - my $lax = ! $got->getValue('strict') ; - - my $outType = IO::Compress::Base::Common::whatIsOutput($outValue); - - $obj->ckOutputParam($class, $outValue) - or return undef ; - - if ($outType eq 'buffer') { - *$obj->{Buffer} = $outValue; - } - else { - my $buff = "" ; - *$obj->{Buffer} = \$buff ; - } - - # Merge implies Append - my $merge = $got->getValue('merge') ; - my $appendOutput = $got->getValue('append') || $merge ; - *$obj->{Append} = $appendOutput; - *$obj->{FilterContainer} = $got->getValue('filtercontainer') ; - - if ($merge) - { - # Switch off Merge mode if output file/buffer is empty/doesn't exist - if (($outType eq 'buffer' && length $$outValue == 0 ) || - ($outType ne 'buffer' && (! -e $outValue || (-w _ && -z _))) ) - { $merge = 0 } - } - - # If output is a file, check that it is writable - #no warnings; - #if ($outType eq 'filename' && -e $outValue && ! -w _) - # { return $obj->saveErrorString(undef, "Output file '$outValue' is not writable" ) } - - $obj->ckParams($got) - or $obj->croakError("${class}: " . $obj->error()); - - if ($got->getValue('encode')) { - my $want_encoding = $got->getValue('encode'); - *$obj->{Encoding} = IO::Compress::Base::Common::getEncoding($obj, $class, $want_encoding); - my $x = *$obj->{Encoding}; - } - else { - *$obj->{Encoding} = undef; - } - - $obj->saveStatus(STATUS_OK) ; - - my $status ; - if (! $merge) - { - *$obj->{Compress} = $obj->mkComp($got) - or return undef; - - *$obj->{UnCompSize} = new U64 ; - *$obj->{CompSize} = new U64 ; - - if ( $outType eq 'buffer') { - ${ *$obj->{Buffer} } = '' - unless $appendOutput ; - } - else { - if ($outType eq 'handle') { - *$obj->{FH} = $outValue ; - setBinModeOutput(*$obj->{FH}) ; - #$outValue->flush() ; - *$obj->{Handle} = 1 ; - if ($appendOutput) - { - seek(*$obj->{FH}, 0, IO::Handle::SEEK_END) - or return $obj->saveErrorString(undef, "Cannot seek to end of output filehandle: $!", $!) ; - - } - } - elsif ($outType eq 'filename') { - no warnings; - my $mode = '>' ; - $mode = '>>' - if $appendOutput; - *$obj->{FH} = new IO::File "$mode $outValue" - or return $obj->saveErrorString(undef, "cannot open file '$outValue': $!", $!) ; - *$obj->{StdIO} = ($outValue eq '-'); - setBinModeOutput(*$obj->{FH}) ; - } - } - - *$obj->{Header} = $obj->mkHeader($got) ; - $obj->output( *$obj->{Header} ) - or return undef; - $obj->beforePayload(); - } - else - { - *$obj->{Compress} = $obj->createMerge($outValue, $outType) - or return undef; - } - - *$obj->{Closed} = 0 ; - *$obj->{AutoClose} = $got->getValue('autoclose') ; - *$obj->{Output} = $outValue; - *$obj->{ClassName} = $class; - *$obj->{Got} = $got; - *$obj->{OneShot} = 0 ; - - return $obj ; -} - -sub ckOutputParam -{ - my $self = shift ; - my $from = shift ; - my $outType = IO::Compress::Base::Common::whatIsOutput($_[0]); - - $self->croakError("$from: output parameter not a filename, filehandle or scalar ref") - if ! $outType ; - - #$self->croakError("$from: output filename is undef or null string") - #if $outType eq 'filename' && (! defined $_[0] || $_[0] eq '') ; - - $self->croakError("$from: output buffer is read-only") - if $outType eq 'buffer' && Scalar::Util::readonly(${ $_[0] }); - - return 1; -} - - -sub _def -{ - my $obj = shift ; - - my $class= (caller)[0] ; - my $name = (caller(1))[3] ; - - $obj->croakError("$name: expected at least 1 parameters\n") - unless @_ >= 1 ; - - my $input = shift ; - my $haveOut = @_ ; - my $output = shift ; - - my $x = new IO::Compress::Base::Validator($class, *$obj->{Error}, $name, $input, $output) - or return undef ; - - push @_, $output if $haveOut && $x->{Hash}; - - *$obj->{OneShot} = 1 ; - - my $got = $obj->checkParams($name, undef, @_) - or return undef ; - - $x->{Got} = $got ; - -# if ($x->{Hash}) -# { -# while (my($k, $v) = each %$input) -# { -# $v = \$input->{$k} -# unless defined $v ; -# -# $obj->_singleTarget($x, 1, $k, $v, @_) -# or return undef ; -# } -# -# return keys %$input ; -# } - - if ($x->{GlobMap}) - { - $x->{oneInput} = 1 ; - foreach my $pair (@{ $x->{Pairs} }) - { - my ($from, $to) = @$pair ; - $obj->_singleTarget($x, 1, $from, $to, @_) - or return undef ; - } - - return scalar @{ $x->{Pairs} } ; - } - - if (! $x->{oneOutput} ) - { - my $inFile = ($x->{inType} eq 'filenames' - || $x->{inType} eq 'filename'); - - $x->{inType} = $inFile ? 'filename' : 'buffer'; - - foreach my $in ($x->{oneInput} ? $input : @$input) - { - my $out ; - $x->{oneInput} = 1 ; - - $obj->_singleTarget($x, $inFile, $in, \$out, @_) - or return undef ; - - push @$output, \$out ; - #if ($x->{outType} eq 'array') - # { push @$output, \$out } - #else - # { $output->{$in} = \$out } - } - - return 1 ; - } - - # finally the 1 to 1 and n to 1 - return $obj->_singleTarget($x, 1, $input, $output, @_); - - Carp::croak "should not be here" ; -} - -sub _singleTarget -{ - my $obj = shift ; - my $x = shift ; - my $inputIsFilename = shift; - my $input = shift; - - if ($x->{oneInput}) - { - $obj->getFileInfo($x->{Got}, $input) - if isaScalar($input) || (isaFilename($input) and $inputIsFilename) ; - - my $z = $obj->_create($x->{Got}, @_) - or return undef ; - - - defined $z->_wr2($input, $inputIsFilename) - or return $z->closeError(undef) ; - - return $z->close() ; - } - else - { - my $afterFirst = 0 ; - my $inputIsFilename = ($x->{inType} ne 'array'); - my $keep = $x->{Got}->clone(); - - #for my $element ( ($x->{inType} eq 'hash') ? keys %$input : @$input) - for my $element ( @$input) - { - my $isFilename = isaFilename($element); - - if ( $afterFirst ++ ) - { - defined addInterStream($obj, $element, $isFilename) - or return $obj->closeError(undef) ; - } - else - { - $obj->getFileInfo($x->{Got}, $element) - if isaScalar($element) || $isFilename; - - $obj->_create($x->{Got}, @_) - or return undef ; - } - - defined $obj->_wr2($element, $isFilename) - or return $obj->closeError(undef) ; - - *$obj->{Got} = $keep->clone(); - } - return $obj->close() ; - } - -} - -sub _wr2 -{ - my $self = shift ; - - my $source = shift ; - my $inputIsFilename = shift; - - my $input = $source ; - if (! $inputIsFilename) - { - $input = \$source - if ! ref $source; - } - - if ( ref $input && ref $input eq 'SCALAR' ) - { - return $self->syswrite($input, @_) ; - } - - if ( ! ref $input || isaFilehandle($input)) - { - my $isFilehandle = isaFilehandle($input) ; - - my $fh = $input ; - - if ( ! $isFilehandle ) - { - $fh = new IO::File "<$input" - or return $self->saveErrorString(undef, "cannot open file '$input': $!", $!) ; - } - binmode $fh if *$self->{Got}->valueOrDefault('binmodein') ; - - my $status ; - my $buff ; - my $count = 0 ; - while ($status = read($fh, $buff, 16 * 1024)) { - $count += length $buff; - defined $self->syswrite($buff, @_) - or return undef ; - } - - return $self->saveErrorString(undef, $!, $!) - if ! defined $status ; - - if ( (!$isFilehandle || *$self->{AutoClose}) && $input ne '-') - { - $fh->close() - or return undef ; - } - - return $count ; - } - - Carp::croak "Should not be here"; - return undef; -} - -sub addInterStream -{ - my $self = shift ; - my $input = shift ; - my $inputIsFilename = shift ; - - if (*$self->{Got}->getValue('multistream')) - { - $self->getFileInfo(*$self->{Got}, $input) - #if isaFilename($input) and $inputIsFilename ; - if isaScalar($input) || isaFilename($input) ; - - # TODO -- newStream needs to allow gzip/zip header to be modified - return $self->newStream(); - } - elsif (*$self->{Got}->getValue('autoflush')) - { - #return $self->flush(Z_FULL_FLUSH); - } - - return 1 ; -} - -sub getFileInfo -{ -} - -sub TIEHANDLE -{ - return $_[0] if ref($_[0]); - die "OOPS\n" ; -} - -sub UNTIE -{ - my $self = shift ; -} - -sub DESTROY -{ - my $self = shift ; - local ($., $@, $!, $^E, $?); - - $self->close() ; - - # TODO - memory leak with 5.8.0 - this isn't called until - # global destruction - # - %{ *$self } = () ; - undef $self ; -} - - - -sub filterUncompressed -{ -} - -sub syswrite -{ - my $self = shift ; - - my $buffer ; - if (ref $_[0] ) { - $self->croakError( *$self->{ClassName} . "::write: not a scalar reference" ) - unless ref $_[0] eq 'SCALAR' ; - $buffer = $_[0] ; - } - else { - $buffer = \$_[0] ; - } - - if (@_ > 1) { - my $slen = defined $$buffer ? length($$buffer) : 0; - my $len = $slen; - my $offset = 0; - $len = $_[1] if $_[1] < $len; - - if (@_ > 2) { - $offset = $_[2] || 0; - $self->croakError(*$self->{ClassName} . "::write: offset outside string") - if $offset > $slen; - if ($offset < 0) { - $offset += $slen; - $self->croakError( *$self->{ClassName} . "::write: offset outside string") if $offset < 0; - } - my $rem = $slen - $offset; - $len = $rem if $rem < $len; - } - - $buffer = \substr($$buffer, $offset, $len) ; - } - - return 0 if (! defined $$buffer || length $$buffer == 0) && ! *$self->{FlushPending}; - -# *$self->{Pending} .= $$buffer ; -# -# return length $$buffer -# if (length *$self->{Pending} < 1024 * 16 && ! *$self->{FlushPending}) ; -# -# $$buffer = *$self->{Pending} ; -# *$self->{Pending} = ''; - - if (*$self->{Encoding}) { - $$buffer = *$self->{Encoding}->encode($$buffer); - } - else { - $] >= 5.008 and ( utf8::downgrade($$buffer, 1) - or Carp::croak "Wide character in " . *$self->{ClassName} . "::write:"); - } - - $self->filterUncompressed($buffer); - - my $buffer_length = defined $$buffer ? length($$buffer) : 0 ; - *$self->{UnCompSize}->add($buffer_length) ; - - my $outBuffer=''; - my $status = *$self->{Compress}->compr($buffer, $outBuffer) ; - - return $self->saveErrorString(undef, *$self->{Compress}{Error}, - *$self->{Compress}{ErrorNo}) - if $status == STATUS_ERROR; - - *$self->{CompSize}->add(length $outBuffer) ; - - $self->outputPayload($outBuffer) - or return undef; - - return $buffer_length; -} - -sub print -{ - my $self = shift; - - #if (ref $self) { - # $self = *$self{GLOB} ; - #} - - if (defined $\) { - if (defined $,) { - defined $self->syswrite(join($,, @_) . $\); - } else { - defined $self->syswrite(join("", @_) . $\); - } - } else { - if (defined $,) { - defined $self->syswrite(join($,, @_)); - } else { - defined $self->syswrite(join("", @_)); - } - } -} - -sub printf -{ - my $self = shift; - my $fmt = shift; - defined $self->syswrite(sprintf($fmt, @_)); -} - -sub _flushCompressed -{ - my $self = shift ; - - my $outBuffer=''; - my $status = *$self->{Compress}->flush($outBuffer, @_) ; - return $self->saveErrorString(0, *$self->{Compress}{Error}, - *$self->{Compress}{ErrorNo}) - if $status == STATUS_ERROR; - - if ( defined *$self->{FH} ) { - *$self->{FH}->clearerr(); - } - - *$self->{CompSize}->add(length $outBuffer) ; - - $self->outputPayload($outBuffer) - or return 0; - return 1; -} - -sub flush -{ - my $self = shift ; - - $self->_flushCompressed(@_) - or return 0; - - if ( defined *$self->{FH} ) { - defined *$self->{FH}->flush() - or return $self->saveErrorString(0, $!, $!); - } - - return 1; -} - -sub beforePayload -{ -} - -sub _newStream -{ - my $self = shift ; - my $got = shift; - - my $class = ref $self; - - $self->_writeTrailer() - or return 0 ; - - $self->ckParams($got) - or $self->croakError("newStream: $self->{Error}"); - - if ($got->getValue('encode')) { - my $want_encoding = $got->getValue('encode'); - *$self->{Encoding} = IO::Compress::Base::Common::getEncoding($self, $class, $want_encoding); - } - else { - *$self->{Encoding} = undef; - } - - *$self->{Compress} = $self->mkComp($got) - or return 0; - - *$self->{Header} = $self->mkHeader($got) ; - $self->output(*$self->{Header} ) - or return 0; - - *$self->{UnCompSize}->reset(); - *$self->{CompSize}->reset(); - - $self->beforePayload(); - - return 1 ; -} - -sub newStream -{ - my $self = shift ; - - my $got = $self->checkParams('newStream', *$self->{Got}, @_) - or return 0 ; - - $self->_newStream($got); - -# *$self->{Compress} = $self->mkComp($got) -# or return 0; -# -# *$self->{Header} = $self->mkHeader($got) ; -# $self->output(*$self->{Header} ) -# or return 0; -# -# *$self->{UnCompSize}->reset(); -# *$self->{CompSize}->reset(); -# -# $self->beforePayload(); -# -# return 1 ; -} - -sub reset -{ - my $self = shift ; - return *$self->{Compress}->reset() ; -} - -sub _writeTrailer -{ - my $self = shift ; - - my $trailer = ''; - - my $status = *$self->{Compress}->close($trailer) ; - return $self->saveErrorString(0, *$self->{Compress}{Error}, *$self->{Compress}{ErrorNo}) - if $status == STATUS_ERROR; - - *$self->{CompSize}->add(length $trailer) ; - - $trailer .= $self->mkTrailer(); - defined $trailer - or return 0; - - return $self->output($trailer); -} - -sub _writeFinalTrailer -{ - my $self = shift ; - - return $self->output($self->mkFinalTrailer()); -} - -sub close -{ - my $self = shift ; - return 1 if *$self->{Closed} || ! *$self->{Compress} ; - *$self->{Closed} = 1 ; - - untie *$self - if $] >= 5.008 ; - - *$self->{FlushPending} = 1 ; - $self->_writeTrailer() - or return 0 ; - - $self->_writeFinalTrailer() - or return 0 ; - - $self->output( "", 1 ) - or return 0; - - if (defined *$self->{FH}) { - - if ((! *$self->{Handle} || *$self->{AutoClose}) && ! *$self->{StdIO}) { - $! = 0 ; - *$self->{FH}->close() - or return $self->saveErrorString(0, $!, $!); - } - delete *$self->{FH} ; - # This delete can set $! in older Perls, so reset the errno - $! = 0 ; - } - - return 1; -} - - -#sub total_in -#sub total_out -#sub msg -# -#sub crc -#{ -# my $self = shift ; -# return *$self->{Compress}->crc32() ; -#} -# -#sub msg -#{ -# my $self = shift ; -# return *$self->{Compress}->msg() ; -#} -# -#sub dict_adler -#{ -# my $self = shift ; -# return *$self->{Compress}->dict_adler() ; -#} -# -#sub get_Level -#{ -# my $self = shift ; -# return *$self->{Compress}->get_Level() ; -#} -# -#sub get_Strategy -#{ -# my $self = shift ; -# return *$self->{Compress}->get_Strategy() ; -#} - - -sub tell -{ - my $self = shift ; - - return *$self->{UnCompSize}->get32bit() ; -} - -sub eof -{ - my $self = shift ; - - return *$self->{Closed} ; -} - - -sub seek -{ - my $self = shift ; - my $position = shift; - my $whence = shift ; - - my $here = $self->tell() ; - my $target = 0 ; - - #use IO::Handle qw(SEEK_SET SEEK_CUR SEEK_END); - use IO::Handle ; - - if ($whence == IO::Handle::SEEK_SET) { - $target = $position ; - } - elsif ($whence == IO::Handle::SEEK_CUR || $whence == IO::Handle::SEEK_END) { - $target = $here + $position ; - } - else { - $self->croakError(*$self->{ClassName} . "::seek: unknown value, $whence, for whence parameter"); - } - - # short circuit if seeking to current offset - return 1 if $target == $here ; - - # Outlaw any attempt to seek backwards - $self->croakError(*$self->{ClassName} . "::seek: cannot seek backwards") - if $target < $here ; - - # Walk the file to the new offset - my $offset = $target - $here ; - - my $buffer ; - defined $self->syswrite("\x00" x $offset) - or return 0; - - return 1 ; -} - -sub binmode -{ - 1; -# my $self = shift ; -# return defined *$self->{FH} -# ? binmode *$self->{FH} -# : 1 ; -} - -sub fileno -{ - my $self = shift ; - return defined *$self->{FH} - ? *$self->{FH}->fileno() - : undef ; -} - -sub opened -{ - my $self = shift ; - return ! *$self->{Closed} ; -} - -sub autoflush -{ - my $self = shift ; - return defined *$self->{FH} - ? *$self->{FH}->autoflush(@_) - : undef ; -} - -sub input_line_number -{ - return undef ; -} - - -sub _notAvailable -{ - my $name = shift ; - return sub { Carp::croak "$name Not Available: File opened only for output" ; } ; -} - -*read = _notAvailable('read'); -*READ = _notAvailable('read'); -*readline = _notAvailable('readline'); -*READLINE = _notAvailable('readline'); -*getc = _notAvailable('getc'); -*GETC = _notAvailable('getc'); - -*FILENO = \&fileno; -*PRINT = \&print; -*PRINTF = \&printf; -*WRITE = \&syswrite; -*write = \&syswrite; -*SEEK = \&seek; -*TELL = \&tell; -*EOF = \&eof; -*CLOSE = \&close; -*BINMODE = \&binmode; - -#*sysread = \&_notAvailable; -#*syswrite = \&_write; - -1; - -__END__ - -#line 1049 diff --git a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Base/Common.pm b/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Base/Common.pm deleted file mode 100644 index 4f2e8313..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Base/Common.pm +++ /dev/null @@ -1,1046 +0,0 @@ -#line 1 "IO/Compress/Base/Common.pm" -package IO::Compress::Base::Common; - -use strict ; -use warnings; -use bytes; - -use Carp; -use Scalar::Util qw(blessed readonly); -use File::GlobMapper; - -require Exporter; -our ($VERSION, @ISA, @EXPORT, %EXPORT_TAGS, $HAS_ENCODE); -@ISA = qw(Exporter); -$VERSION = '2.074'; - -@EXPORT = qw( isaFilehandle isaFilename isaScalar - whatIsInput whatIsOutput - isaFileGlobString cleanFileGlobString oneTarget - setBinModeInput setBinModeOutput - ckInOutParams - createSelfTiedObject - - isGeMax32 - - MAX32 - - WANT_CODE - WANT_EXT - WANT_UNDEF - WANT_HASH - - STATUS_OK - STATUS_ENDSTREAM - STATUS_EOF - STATUS_ERROR - ); - -%EXPORT_TAGS = ( Status => [qw( STATUS_OK - STATUS_ENDSTREAM - STATUS_EOF - STATUS_ERROR - )]); - - -use constant STATUS_OK => 0; -use constant STATUS_ENDSTREAM => 1; -use constant STATUS_EOF => 2; -use constant STATUS_ERROR => -1; -use constant MAX16 => 0xFFFF ; -use constant MAX32 => 0xFFFFFFFF ; -use constant MAX32cmp => 0xFFFFFFFF + 1 - 1; # for 5.6.x on 32-bit need to force an non-IV value - - -sub isGeMax32 -{ - return $_[0] >= MAX32cmp ; -} - -sub hasEncode() -{ - if (! defined $HAS_ENCODE) { - eval - { - require Encode; - Encode->import(); - }; - - $HAS_ENCODE = $@ ? 0 : 1 ; - } - - return $HAS_ENCODE; -} - -sub getEncoding($$$) -{ - my $obj = shift; - my $class = shift ; - my $want_encoding = shift ; - - $obj->croakError("$class: Encode module needed to use -Encode") - if ! hasEncode(); - - my $encoding = Encode::find_encoding($want_encoding); - - $obj->croakError("$class: Encoding '$want_encoding' is not available") - if ! $encoding; - - return $encoding; -} - -our ($needBinmode); -$needBinmode = ($^O eq 'MSWin32' || - ($] >= 5.006 && eval ' ${^UNICODE} || ${^UTF8LOCALE} ')) - ? 1 : 1 ; - -sub setBinModeInput($) -{ - my $handle = shift ; - - binmode $handle - if $needBinmode; -} - -sub setBinModeOutput($) -{ - my $handle = shift ; - - binmode $handle - if $needBinmode; -} - -sub isaFilehandle($) -{ - use utf8; # Pragma needed to keep Perl 5.6.0 happy - return (defined $_[0] and - (UNIVERSAL::isa($_[0],'GLOB') or - UNIVERSAL::isa($_[0],'IO::Handle') or - UNIVERSAL::isa(\$_[0],'GLOB')) - ) -} - -sub isaScalar -{ - return ( defined($_[0]) and ref($_[0]) eq 'SCALAR' and defined ${ $_[0] } ) ; -} - -sub isaFilename($) -{ - return (defined $_[0] and - ! ref $_[0] and - UNIVERSAL::isa(\$_[0], 'SCALAR')); -} - -sub isaFileGlobString -{ - return defined $_[0] && $_[0] =~ /^<.*>$/; -} - -sub cleanFileGlobString -{ - my $string = shift ; - - $string =~ s/^\s*<\s*(.*)\s*>\s*$/$1/; - - return $string; -} - -use constant WANT_CODE => 1 ; -use constant WANT_EXT => 2 ; -use constant WANT_UNDEF => 4 ; -#use constant WANT_HASH => 8 ; -use constant WANT_HASH => 0 ; - -sub whatIsInput($;$) -{ - my $got = whatIs(@_); - - if (defined $got && $got eq 'filename' && defined $_[0] && $_[0] eq '-') - { - #use IO::File; - $got = 'handle'; - $_[0] = *STDIN; - #$_[0] = new IO::File("<-"); - } - - return $got; -} - -sub whatIsOutput($;$) -{ - my $got = whatIs(@_); - - if (defined $got && $got eq 'filename' && defined $_[0] && $_[0] eq '-') - { - $got = 'handle'; - $_[0] = *STDOUT; - #$_[0] = new IO::File(">-"); - } - - return $got; -} - -sub whatIs ($;$) -{ - return 'handle' if isaFilehandle($_[0]); - - my $wantCode = defined $_[1] && $_[1] & WANT_CODE ; - my $extended = defined $_[1] && $_[1] & WANT_EXT ; - my $undef = defined $_[1] && $_[1] & WANT_UNDEF ; - my $hash = defined $_[1] && $_[1] & WANT_HASH ; - - return 'undef' if ! defined $_[0] && $undef ; - - if (ref $_[0]) { - return '' if blessed($_[0]); # is an object - #return '' if UNIVERSAL::isa($_[0], 'UNIVERSAL'); # is an object - return 'buffer' if UNIVERSAL::isa($_[0], 'SCALAR'); - return 'array' if UNIVERSAL::isa($_[0], 'ARRAY') && $extended ; - return 'hash' if UNIVERSAL::isa($_[0], 'HASH') && $hash ; - return 'code' if UNIVERSAL::isa($_[0], 'CODE') && $wantCode ; - return ''; - } - - return 'fileglob' if $extended && isaFileGlobString($_[0]); - return 'filename'; -} - -sub oneTarget -{ - return $_[0] =~ /^(code|handle|buffer|filename)$/; -} - -sub IO::Compress::Base::Validator::new -{ - my $class = shift ; - - my $Class = shift ; - my $error_ref = shift ; - my $reportClass = shift ; - - my %data = (Class => $Class, - Error => $error_ref, - reportClass => $reportClass, - ) ; - - my $obj = bless \%data, $class ; - - local $Carp::CarpLevel = 1; - - my $inType = $data{inType} = whatIsInput($_[0], WANT_EXT|WANT_HASH); - my $outType = $data{outType} = whatIsOutput($_[1], WANT_EXT|WANT_HASH); - - my $oneInput = $data{oneInput} = oneTarget($inType); - my $oneOutput = $data{oneOutput} = oneTarget($outType); - - if (! $inType) - { - $obj->croakError("$reportClass: illegal input parameter") ; - #return undef ; - } - -# if ($inType eq 'hash') -# { -# $obj->{Hash} = 1 ; -# $obj->{oneInput} = 1 ; -# return $obj->validateHash($_[0]); -# } - - if (! $outType) - { - $obj->croakError("$reportClass: illegal output parameter") ; - #return undef ; - } - - - if ($inType ne 'fileglob' && $outType eq 'fileglob') - { - $obj->croakError("Need input fileglob for outout fileglob"); - } - -# if ($inType ne 'fileglob' && $outType eq 'hash' && $inType ne 'filename' ) -# { -# $obj->croakError("input must ne filename or fileglob when output is a hash"); -# } - - if ($inType eq 'fileglob' && $outType eq 'fileglob') - { - $data{GlobMap} = 1 ; - $data{inType} = $data{outType} = 'filename'; - my $mapper = new File::GlobMapper($_[0], $_[1]); - if ( ! $mapper ) - { - return $obj->saveErrorString($File::GlobMapper::Error) ; - } - $data{Pairs} = $mapper->getFileMap(); - - return $obj; - } - - $obj->croakError("$reportClass: input and output $inType are identical") - if $inType eq $outType && $_[0] eq $_[1] && $_[0] ne '-' ; - - if ($inType eq 'fileglob') # && $outType ne 'fileglob' - { - my $glob = cleanFileGlobString($_[0]); - my @inputs = glob($glob); - - if (@inputs == 0) - { - # TODO -- legal or die? - die "globmap matched zero file -- legal or die???" ; - } - elsif (@inputs == 1) - { - $obj->validateInputFilenames($inputs[0]) - or return undef; - $_[0] = $inputs[0] ; - $data{inType} = 'filename' ; - $data{oneInput} = 1; - } - else - { - $obj->validateInputFilenames(@inputs) - or return undef; - $_[0] = [ @inputs ] ; - $data{inType} = 'filenames' ; - } - } - elsif ($inType eq 'filename') - { - $obj->validateInputFilenames($_[0]) - or return undef; - } - elsif ($inType eq 'array') - { - $data{inType} = 'filenames' ; - $obj->validateInputArray($_[0]) - or return undef ; - } - - return $obj->saveErrorString("$reportClass: output buffer is read-only") - if $outType eq 'buffer' && readonly(${ $_[1] }); - - if ($outType eq 'filename' ) - { - $obj->croakError("$reportClass: output filename is undef or null string") - if ! defined $_[1] || $_[1] eq '' ; - - if (-e $_[1]) - { - if (-d _ ) - { - return $obj->saveErrorString("output file '$_[1]' is a directory"); - } - } - } - - return $obj ; -} - -sub IO::Compress::Base::Validator::saveErrorString -{ - my $self = shift ; - ${ $self->{Error} } = shift ; - return undef; - -} - -sub IO::Compress::Base::Validator::croakError -{ - my $self = shift ; - $self->saveErrorString($_[0]); - croak $_[0]; -} - - - -sub IO::Compress::Base::Validator::validateInputFilenames -{ - my $self = shift ; - - foreach my $filename (@_) - { - $self->croakError("$self->{reportClass}: input filename is undef or null string") - if ! defined $filename || $filename eq '' ; - - next if $filename eq '-'; - - if (! -e $filename ) - { - return $self->saveErrorString("input file '$filename' does not exist"); - } - - if (-d _ ) - { - return $self->saveErrorString("input file '$filename' is a directory"); - } - -# if (! -r _ ) -# { -# return $self->saveErrorString("cannot open file '$filename': $!"); -# } - } - - return 1 ; -} - -sub IO::Compress::Base::Validator::validateInputArray -{ - my $self = shift ; - - if ( @{ $_[0] } == 0 ) - { - return $self->saveErrorString("empty array reference") ; - } - - foreach my $element ( @{ $_[0] } ) - { - my $inType = whatIsInput($element); - - if (! $inType) - { - $self->croakError("unknown input parameter") ; - } - elsif($inType eq 'filename') - { - $self->validateInputFilenames($element) - or return undef ; - } - else - { - $self->croakError("not a filename") ; - } - } - - return 1 ; -} - -#sub IO::Compress::Base::Validator::validateHash -#{ -# my $self = shift ; -# my $href = shift ; -# -# while (my($k, $v) = each %$href) -# { -# my $ktype = whatIsInput($k); -# my $vtype = whatIsOutput($v, WANT_EXT|WANT_UNDEF) ; -# -# if ($ktype ne 'filename') -# { -# return $self->saveErrorString("hash key not filename") ; -# } -# -# my %valid = map { $_ => 1 } qw(filename buffer array undef handle) ; -# if (! $valid{$vtype}) -# { -# return $self->saveErrorString("hash value not ok") ; -# } -# } -# -# return $self ; -#} - -sub createSelfTiedObject -{ - my $class = shift || (caller)[0] ; - my $error_ref = shift ; - - my $obj = bless Symbol::gensym(), ref($class) || $class; - tie *$obj, $obj if $] >= 5.005; - *$obj->{Closed} = 1 ; - $$error_ref = ''; - *$obj->{Error} = $error_ref ; - my $errno = 0 ; - *$obj->{ErrorNo} = \$errno ; - - return $obj; -} - - - -#package Parse::Parameters ; -# -# -#require Exporter; -#our ($VERSION, @ISA, @EXPORT); -#$VERSION = '2.000_08'; -#@ISA = qw(Exporter); - -$EXPORT_TAGS{Parse} = [qw( ParseParameters - Parse_any Parse_unsigned Parse_signed - Parse_boolean Parse_string - Parse_code - Parse_writable_scalar - ) - ]; - -push @EXPORT, @{ $EXPORT_TAGS{Parse} } ; - -use constant Parse_any => 0x01; -use constant Parse_unsigned => 0x02; -use constant Parse_signed => 0x04; -use constant Parse_boolean => 0x08; -use constant Parse_string => 0x10; -use constant Parse_code => 0x20; - -#use constant Parse_store_ref => 0x100 ; -#use constant Parse_multiple => 0x100 ; -use constant Parse_writable => 0x200 ; -use constant Parse_writable_scalar => 0x400 | Parse_writable ; - -use constant OFF_PARSED => 0 ; -use constant OFF_TYPE => 1 ; -use constant OFF_DEFAULT => 2 ; -use constant OFF_FIXED => 3 ; -#use constant OFF_FIRST_ONLY => 4 ; -#use constant OFF_STICKY => 5 ; - -use constant IxError => 0; -use constant IxGot => 1 ; - -sub ParseParameters -{ - my $level = shift || 0 ; - - my $sub = (caller($level + 1))[3] ; - local $Carp::CarpLevel = 1 ; - - return $_[1] - if @_ == 2 && defined $_[1] && UNIVERSAL::isa($_[1], "IO::Compress::Base::Parameters"); - - my $p = new IO::Compress::Base::Parameters() ; - $p->parse(@_) - or croak "$sub: $p->[IxError]" ; - - return $p; -} - - -use strict; - -use warnings; -use Carp; - - -sub Init -{ - my $default = shift ; - my %got ; - - my $obj = IO::Compress::Base::Parameters::new(); - while (my ($key, $v) = each %$default) - { - croak "need 2 params [@$v]" - if @$v != 2 ; - - my ($type, $value) = @$v ; -# my ($first_only, $sticky, $type, $value) = @$v ; - my $sticky = 0; - my $x ; - $obj->_checkType($key, \$value, $type, 0, \$x) - or return undef ; - - $key = lc $key; - -# if (! $sticky) { -# $x = [] -# if $type & Parse_multiple; - -# $got{$key} = [0, $type, $value, $x, $first_only, $sticky] ; - $got{$key} = [0, $type, $value, $x] ; -# } -# -# $got{$key}[OFF_PARSED] = 0 ; - } - - return bless \%got, "IO::Compress::Base::Parameters::Defaults" ; -} - -sub IO::Compress::Base::Parameters::new -{ - #my $class = shift ; - - my $obj; - $obj->[IxError] = ''; - $obj->[IxGot] = {} ; - - return bless $obj, 'IO::Compress::Base::Parameters' ; -} - -sub IO::Compress::Base::Parameters::setError -{ - my $self = shift ; - my $error = shift ; - my $retval = @_ ? shift : undef ; - - - $self->[IxError] = $error ; - return $retval; -} - -sub IO::Compress::Base::Parameters::getError -{ - my $self = shift ; - return $self->[IxError] ; -} - -sub IO::Compress::Base::Parameters::parse -{ - my $self = shift ; - my $default = shift ; - - my $got = $self->[IxGot] ; - my $firstTime = keys %{ $got } == 0 ; - - my (@Bad) ; - my @entered = () ; - - # Allow the options to be passed as a hash reference or - # as the complete hash. - if (@_ == 0) { - @entered = () ; - } - elsif (@_ == 1) { - my $href = $_[0] ; - - return $self->setError("Expected even number of parameters, got 1") - if ! defined $href or ! ref $href or ref $href ne "HASH" ; - - foreach my $key (keys %$href) { - push @entered, $key ; - push @entered, \$href->{$key} ; - } - } - else { - - my $count = @_; - return $self->setError("Expected even number of parameters, got $count") - if $count % 2 != 0 ; - - for my $i (0.. $count / 2 - 1) { - push @entered, $_[2 * $i] ; - push @entered, \$_[2 * $i + 1] ; - } - } - - foreach my $key (keys %$default) - { - - my ($type, $value) = @{ $default->{$key} } ; - - if ($firstTime) { - $got->{$key} = [0, $type, $value, $value] ; - } - else - { - $got->{$key}[OFF_PARSED] = 0 ; - } - } - - - my %parsed = (); - - - for my $i (0.. @entered / 2 - 1) { - my $key = $entered[2* $i] ; - my $value = $entered[2* $i+1] ; - - #print "Key [$key] Value [$value]" ; - #print defined $$value ? "[$$value]\n" : "[undef]\n"; - - $key =~ s/^-// ; - my $canonkey = lc $key; - - if ($got->{$canonkey}) - { - my $type = $got->{$canonkey}[OFF_TYPE] ; - my $parsed = $parsed{$canonkey}; - ++ $parsed{$canonkey}; - - return $self->setError("Muliple instances of '$key' found") - if $parsed ; - - my $s ; - $self->_checkType($key, $value, $type, 1, \$s) - or return undef ; - - $value = $$value ; - $got->{$canonkey} = [1, $type, $value, $s] ; - - } - else - { push (@Bad, $key) } - } - - if (@Bad) { - my ($bad) = join(", ", @Bad) ; - return $self->setError("unknown key value(s) $bad") ; - } - - return 1; -} - -sub IO::Compress::Base::Parameters::_checkType -{ - my $self = shift ; - - my $key = shift ; - my $value = shift ; - my $type = shift ; - my $validate = shift ; - my $output = shift; - - #local $Carp::CarpLevel = $level ; - #print "PARSE $type $key $value $validate $sub\n" ; - - if ($type & Parse_writable_scalar) - { - return $self->setError("Parameter '$key' not writable") - if readonly $$value ; - - if (ref $$value) - { - return $self->setError("Parameter '$key' not a scalar reference") - if ref $$value ne 'SCALAR' ; - - $$output = $$value ; - } - else - { - return $self->setError("Parameter '$key' not a scalar") - if ref $value ne 'SCALAR' ; - - $$output = $value ; - } - - return 1; - } - - - $value = $$value ; - - if ($type & Parse_any) - { - $$output = $value ; - return 1; - } - elsif ($type & Parse_unsigned) - { - - return $self->setError("Parameter '$key' must be an unsigned int, got 'undef'") - if ! defined $value ; - return $self->setError("Parameter '$key' must be an unsigned int, got '$value'") - if $value !~ /^\d+$/; - - $$output = defined $value ? $value : 0 ; - return 1; - } - elsif ($type & Parse_signed) - { - return $self->setError("Parameter '$key' must be a signed int, got 'undef'") - if ! defined $value ; - return $self->setError("Parameter '$key' must be a signed int, got '$value'") - if $value !~ /^-?\d+$/; - - $$output = defined $value ? $value : 0 ; - return 1 ; - } - elsif ($type & Parse_boolean) - { - return $self->setError("Parameter '$key' must be an int, got '$value'") - if defined $value && $value !~ /^\d*$/; - - $$output = defined $value && $value != 0 ? 1 : 0 ; - return 1; - } - - elsif ($type & Parse_string) - { - $$output = defined $value ? $value : "" ; - return 1; - } - elsif ($type & Parse_code) - { - return $self->setError("Parameter '$key' must be a code reference, got '$value'") - if (! defined $value || ref $value ne 'CODE') ; - - $$output = defined $value ? $value : "" ; - return 1; - } - - $$output = $value ; - return 1; -} - -sub IO::Compress::Base::Parameters::parsed -{ - return $_[0]->[IxGot]{$_[1]}[OFF_PARSED] ; -} - - -sub IO::Compress::Base::Parameters::getValue -{ - return $_[0]->[IxGot]{$_[1]}[OFF_FIXED] ; -} -sub IO::Compress::Base::Parameters::setValue -{ - $_[0]->[IxGot]{$_[1]}[OFF_PARSED] = 1; - $_[0]->[IxGot]{$_[1]}[OFF_DEFAULT] = $_[2] ; - $_[0]->[IxGot]{$_[1]}[OFF_FIXED] = $_[2] ; -} - -sub IO::Compress::Base::Parameters::valueRef -{ - return $_[0]->[IxGot]{$_[1]}[OFF_FIXED] ; -} - -sub IO::Compress::Base::Parameters::valueOrDefault -{ - my $self = shift ; - my $name = shift ; - my $default = shift ; - - my $value = $self->[IxGot]{$name}[OFF_DEFAULT] ; - - return $value if defined $value ; - return $default ; -} - -sub IO::Compress::Base::Parameters::wantValue -{ - return defined $_[0]->[IxGot]{$_[1]}[OFF_DEFAULT] ; -} - -sub IO::Compress::Base::Parameters::clone -{ - my $self = shift ; - my $obj = [] ; - my %got ; - - my $hash = $self->[IxGot] ; - for my $k (keys %{ $hash }) - { - $got{$k} = [ @{ $hash->{$k} } ]; - } - - $obj->[IxError] = $self->[IxError]; - $obj->[IxGot] = \%got ; - - return bless $obj, 'IO::Compress::Base::Parameters' ; -} - -package U64; - -use constant MAX32 => 0xFFFFFFFF ; -use constant HI_1 => MAX32 + 1 ; -use constant LOW => 0 ; -use constant HIGH => 1; - -sub new -{ - return bless [ 0, 0 ], $_[0] - if @_ == 1 ; - - return bless [ $_[1], 0 ], $_[0] - if @_ == 2 ; - - return bless [ $_[2], $_[1] ], $_[0] - if @_ == 3 ; -} - -sub newUnpack_V64 -{ - my ($low, $hi) = unpack "V V", $_[0] ; - bless [ $low, $hi ], "U64"; -} - -sub newUnpack_V32 -{ - my $string = shift; - - my $low = unpack "V", $string ; - bless [ $low, 0 ], "U64"; -} - -sub reset -{ - $_[0]->[HIGH] = $_[0]->[LOW] = 0; -} - -sub clone -{ - bless [ @{$_[0]} ], ref $_[0] ; -} - -sub getHigh -{ - return $_[0]->[HIGH]; -} - -sub getLow -{ - return $_[0]->[LOW]; -} - -sub get32bit -{ - return $_[0]->[LOW]; -} - -sub get64bit -{ - # Not using << here because the result will still be - # a 32-bit value on systems where int size is 32-bits - return $_[0]->[HIGH] * HI_1 + $_[0]->[LOW]; -} - -sub add -{ -# my $self = shift; - my $value = $_[1]; - - if (ref $value eq 'U64') { - $_[0]->[HIGH] += $value->[HIGH] ; - $value = $value->[LOW]; - } - elsif ($value > MAX32) { - $_[0]->[HIGH] += int($value / HI_1) ; - $value = $value % HI_1; - } - - my $available = MAX32 - $_[0]->[LOW] ; - - if ($value > $available) { - ++ $_[0]->[HIGH] ; - $_[0]->[LOW] = $value - $available - 1; - } - else { - $_[0]->[LOW] += $value ; - } -} - -sub add32 -{ -# my $self = shift; - my $value = $_[1]; - - if ($value > MAX32) { - $_[0]->[HIGH] += int($value / HI_1) ; - $value = $value % HI_1; - } - - my $available = MAX32 - $_[0]->[LOW] ; - - if ($value > $available) { - ++ $_[0]->[HIGH] ; - $_[0]->[LOW] = $value - $available - 1; - } - else { - $_[0]->[LOW] += $value ; - } -} - -sub subtract -{ - my $self = shift; - my $value = shift; - - if (ref $value eq 'U64') { - - if ($value->[HIGH]) { - die "bad" - if $self->[HIGH] == 0 || - $value->[HIGH] > $self->[HIGH] ; - - $self->[HIGH] -= $value->[HIGH] ; - } - - $value = $value->[LOW] ; - } - - if ($value > $self->[LOW]) { - -- $self->[HIGH] ; - $self->[LOW] = MAX32 - $value + $self->[LOW] + 1 ; - } - else { - $self->[LOW] -= $value; - } -} - -sub equal -{ - my $self = shift; - my $other = shift; - - return $self->[LOW] == $other->[LOW] && - $self->[HIGH] == $other->[HIGH] ; -} - -sub gt -{ - my $self = shift; - my $other = shift; - - return $self->cmp($other) > 0 ; -} - -sub cmp -{ - my $self = shift; - my $other = shift ; - - if ($self->[LOW] == $other->[LOW]) { - return $self->[HIGH] - $other->[HIGH] ; - } - else { - return $self->[LOW] - $other->[LOW] ; - } -} - - -sub is64bit -{ - return $_[0]->[HIGH] > 0 ; -} - -sub isAlmost64bit -{ - return $_[0]->[HIGH] > 0 || $_[0]->[LOW] == MAX32 ; -} - -sub getPacked_V64 -{ - return pack "V V", @{ $_[0] } ; -} - -sub getPacked_V32 -{ - return pack "V", $_[0]->[LOW] ; -} - -sub pack_V64 -{ - return pack "V V", $_[0], 0; -} - - -sub full32 -{ - return $_[0] == MAX32 ; -} - -sub Value_VV64 -{ - my $buffer = shift; - - my ($lo, $hi) = unpack ("V V" , $buffer); - no warnings 'uninitialized'; - return $hi * HI_1 + $lo; -} - - -package IO::Compress::Base::Common; - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Bzip2.pm b/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Bzip2.pm deleted file mode 100644 index 9328d7cd..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Bzip2.pm +++ /dev/null @@ -1,144 +0,0 @@ -#line 1 "IO/Compress/Bzip2.pm" -package IO::Compress::Bzip2 ; - -use strict ; -use warnings; -use bytes; -require Exporter ; - -use IO::Compress::Base 2.074 ; - -use IO::Compress::Base::Common 2.074 qw(); -use IO::Compress::Adapter::Bzip2 2.074 ; - - - -our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bzip2Error); - -$VERSION = '2.074'; -$Bzip2Error = ''; - -@ISA = qw(IO::Compress::Base Exporter); -@EXPORT_OK = qw( $Bzip2Error bzip2 ) ; -%EXPORT_TAGS = %IO::Compress::Base::EXPORT_TAGS ; -push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ; -Exporter::export_ok_tags('all'); - - - -sub new -{ - my $class = shift ; - - my $obj = IO::Compress::Base::Common::createSelfTiedObject($class, \$Bzip2Error); - return $obj->_create(undef, @_); -} - -sub bzip2 -{ - my $obj = IO::Compress::Base::Common::createSelfTiedObject(undef, \$Bzip2Error); - $obj->_def(@_); -} - - -sub mkHeader -{ - my $self = shift ; - return ''; - -} - -sub getExtraParams -{ - my $self = shift ; - - use IO::Compress::Base::Common 2.074 qw(:Parse); - - return ( - 'blocksize100k' => [IO::Compress::Base::Common::Parse_unsigned, 1], - 'workfactor' => [IO::Compress::Base::Common::Parse_unsigned, 0], - 'verbosity' => [IO::Compress::Base::Common::Parse_boolean, 0], - ); -} - - - -sub ckParams -{ - my $self = shift ; - my $got = shift; - - # check that BlockSize100K is a number between 1 & 9 - if ($got->parsed('blocksize100k')) { - my $value = $got->getValue('blocksize100k'); - return $self->saveErrorString(undef, "Parameter 'BlockSize100K' not between 1 and 9, got $value") - unless defined $value && $value >= 1 && $value <= 9; - - } - - # check that WorkFactor between 0 & 250 - if ($got->parsed('workfactor')) { - my $value = $got->getValue('workfactor'); - return $self->saveErrorString(undef, "Parameter 'WorkFactor' not between 0 and 250, got $value") - unless $value >= 0 && $value <= 250; - } - - return 1 ; -} - - -sub mkComp -{ - my $self = shift ; - my $got = shift ; - - my $BlockSize100K = $got->getValue('blocksize100k'); - my $WorkFactor = $got->getValue('workfactor'); - my $Verbosity = $got->getValue('verbosity'); - - my ($obj, $errstr, $errno) = IO::Compress::Adapter::Bzip2::mkCompObject( - $BlockSize100K, $WorkFactor, - $Verbosity); - - return $self->saveErrorString(undef, $errstr, $errno) - if ! defined $obj; - - return $obj; -} - - -sub mkTrailer -{ - my $self = shift ; - return ''; -} - -sub mkFinalTrailer -{ - return ''; -} - -#sub newHeader -#{ -# my $self = shift ; -# return ''; -#} - -sub getInverseClass -{ - return ('IO::Uncompress::Bunzip2'); -} - -sub getFileInfo -{ - my $self = shift ; - my $params = shift; - my $file = shift ; - -} - -1; - -__END__ - -#line 806 diff --git a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Deflate.pm b/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Deflate.pm deleted file mode 100644 index 3f22abe6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Deflate.pm +++ /dev/null @@ -1,171 +0,0 @@ -#line 1 "IO/Compress/Deflate.pm" -package IO::Compress::Deflate ; - -require 5.006 ; - -use strict ; -use warnings; -use bytes; - -require Exporter ; - -use IO::Compress::RawDeflate 2.074 (); -use IO::Compress::Adapter::Deflate 2.074 ; - -use IO::Compress::Zlib::Constants 2.074 ; -use IO::Compress::Base::Common 2.074 qw(); - - -our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $DeflateError); - -$VERSION = '2.074'; -$DeflateError = ''; - -@ISA = qw(IO::Compress::RawDeflate Exporter); -@EXPORT_OK = qw( $DeflateError deflate ) ; -%EXPORT_TAGS = %IO::Compress::RawDeflate::DEFLATE_CONSTANTS ; - -push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ; -Exporter::export_ok_tags('all'); - - -sub new -{ - my $class = shift ; - - my $obj = IO::Compress::Base::Common::createSelfTiedObject($class, \$DeflateError); - return $obj->_create(undef, @_); -} - -sub deflate -{ - my $obj = IO::Compress::Base::Common::createSelfTiedObject(undef, \$DeflateError); - return $obj->_def(@_); -} - - -sub bitmask($$$$) -{ - my $into = shift ; - my $value = shift ; - my $offset = shift ; - my $mask = shift ; - - return $into | (($value & $mask) << $offset ) ; -} - -sub mkDeflateHdr($$$;$) -{ - my $method = shift ; - my $cinfo = shift; - my $level = shift; - my $fdict_adler = shift ; - - my $cmf = 0; - my $flg = 0; - my $fdict = 0; - $fdict = 1 if defined $fdict_adler; - - $cmf = bitmask($cmf, $method, ZLIB_CMF_CM_OFFSET, ZLIB_CMF_CM_BITS); - $cmf = bitmask($cmf, $cinfo, ZLIB_CMF_CINFO_OFFSET, ZLIB_CMF_CINFO_BITS); - - $flg = bitmask($flg, $fdict, ZLIB_FLG_FDICT_OFFSET, ZLIB_FLG_FDICT_BITS); - $flg = bitmask($flg, $level, ZLIB_FLG_LEVEL_OFFSET, ZLIB_FLG_LEVEL_BITS); - - my $fcheck = 31 - ($cmf * 256 + $flg) % 31 ; - $flg = bitmask($flg, $fcheck, ZLIB_FLG_FCHECK_OFFSET, ZLIB_FLG_FCHECK_BITS); - - my $hdr = pack("CC", $cmf, $flg) ; - $hdr .= pack("N", $fdict_adler) if $fdict ; - - return $hdr; -} - -sub mkHeader -{ - my $self = shift ; - my $param = shift ; - - my $level = $param->getValue('level'); - my $strategy = $param->getValue('strategy'); - - my $lflag ; - $level = 6 - if $level == Z_DEFAULT_COMPRESSION ; - - if (ZLIB_VERNUM >= 0x1210) - { - if ($strategy >= Z_HUFFMAN_ONLY || $level < 2) - { $lflag = ZLIB_FLG_LEVEL_FASTEST } - elsif ($level < 6) - { $lflag = ZLIB_FLG_LEVEL_FAST } - elsif ($level == 6) - { $lflag = ZLIB_FLG_LEVEL_DEFAULT } - else - { $lflag = ZLIB_FLG_LEVEL_SLOWEST } - } - else - { - $lflag = ($level - 1) >> 1 ; - $lflag = 3 if $lflag > 3 ; - } - - #my $wbits = (MAX_WBITS - 8) << 4 ; - my $wbits = 7; - mkDeflateHdr(ZLIB_CMF_CM_DEFLATED, $wbits, $lflag); -} - -sub ckParams -{ - my $self = shift ; - my $got = shift; - - $got->setValue('adler32' => 1); - return 1 ; -} - - -sub mkTrailer -{ - my $self = shift ; - return pack("N", *$self->{Compress}->adler32()) ; -} - -sub mkFinalTrailer -{ - return ''; -} - -#sub newHeader -#{ -# my $self = shift ; -# return *$self->{Header}; -#} - -sub getExtraParams -{ - my $self = shift ; - return $self->getZlibParams(), -} - -sub getInverseClass -{ - return ('IO::Uncompress::Inflate', - \$IO::Uncompress::Inflate::InflateError); -} - -sub getFileInfo -{ - my $self = shift ; - my $params = shift; - my $file = shift ; - -} - - - -1; - -__END__ - -#line 940 diff --git a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Gzip.pm b/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Gzip.pm deleted file mode 100644 index 85567203..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Gzip.pm +++ /dev/null @@ -1,278 +0,0 @@ -#line 1 "IO/Compress/Gzip.pm" -package IO::Compress::Gzip ; - -require 5.006 ; - -use strict ; -use warnings; -use bytes; - -require Exporter ; - -use IO::Compress::RawDeflate 2.074 () ; -use IO::Compress::Adapter::Deflate 2.074 ; - -use IO::Compress::Base::Common 2.074 qw(:Status ); -use IO::Compress::Gzip::Constants 2.074 ; -use IO::Compress::Zlib::Extra 2.074 ; - -BEGIN -{ - if (defined &utf8::downgrade ) - { *noUTF8 = \&utf8::downgrade } - else - { *noUTF8 = sub {} } -} - -our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $GzipError); - -$VERSION = '2.074'; -$GzipError = '' ; - -@ISA = qw(IO::Compress::RawDeflate Exporter); -@EXPORT_OK = qw( $GzipError gzip ) ; -%EXPORT_TAGS = %IO::Compress::RawDeflate::DEFLATE_CONSTANTS ; - -push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ; -Exporter::export_ok_tags('all'); - -sub new -{ - my $class = shift ; - - my $obj = IO::Compress::Base::Common::createSelfTiedObject($class, \$GzipError); - - $obj->_create(undef, @_); -} - - -sub gzip -{ - my $obj = IO::Compress::Base::Common::createSelfTiedObject(undef, \$GzipError); - return $obj->_def(@_); -} - -#sub newHeader -#{ -# my $self = shift ; -# #return GZIP_MINIMUM_HEADER ; -# return $self->mkHeader(*$self->{Got}); -#} - -sub getExtraParams -{ - my $self = shift ; - - return ( - # zlib behaviour - $self->getZlibParams(), - - # Gzip header fields - 'minimal' => [IO::Compress::Base::Common::Parse_boolean, 0], - 'comment' => [IO::Compress::Base::Common::Parse_any, undef], - 'name' => [IO::Compress::Base::Common::Parse_any, undef], - 'time' => [IO::Compress::Base::Common::Parse_any, undef], - 'textflag' => [IO::Compress::Base::Common::Parse_boolean, 0], - 'headercrc' => [IO::Compress::Base::Common::Parse_boolean, 0], - 'os_code' => [IO::Compress::Base::Common::Parse_unsigned, $Compress::Raw::Zlib::gzip_os_code], - 'extrafield'=> [IO::Compress::Base::Common::Parse_any, undef], - 'extraflags'=> [IO::Compress::Base::Common::Parse_any, undef], - - ); -} - - -sub ckParams -{ - my $self = shift ; - my $got = shift ; - - # gzip always needs crc32 - $got->setValue('crc32' => 1); - - return 1 - if $got->getValue('merge') ; - - my $strict = $got->getValue('strict') ; - - - { - if (! $got->parsed('time') ) { - # Modification time defaults to now. - $got->setValue(time => time) ; - } - - # Check that the Name & Comment don't have embedded NULLs - # Also check that they only contain ISO 8859-1 chars. - if ($got->parsed('name') && defined $got->getValue('name')) { - my $name = $got->getValue('name'); - - return $self->saveErrorString(undef, "Null Character found in Name", - Z_DATA_ERROR) - if $strict && $name =~ /\x00/ ; - - return $self->saveErrorString(undef, "Non ISO 8859-1 Character found in Name", - Z_DATA_ERROR) - if $strict && $name =~ /$GZIP_FNAME_INVALID_CHAR_RE/o ; - } - - if ($got->parsed('comment') && defined $got->getValue('comment')) { - my $comment = $got->getValue('comment'); - - return $self->saveErrorString(undef, "Null Character found in Comment", - Z_DATA_ERROR) - if $strict && $comment =~ /\x00/ ; - - return $self->saveErrorString(undef, "Non ISO 8859-1 Character found in Comment", - Z_DATA_ERROR) - if $strict && $comment =~ /$GZIP_FCOMMENT_INVALID_CHAR_RE/o; - } - - if ($got->parsed('os_code') ) { - my $value = $got->getValue('os_code'); - - return $self->saveErrorString(undef, "OS_Code must be between 0 and 255, got '$value'") - if $value < 0 || $value > 255 ; - - } - - # gzip only supports Deflate at present - $got->setValue('method' => Z_DEFLATED) ; - - if ( ! $got->parsed('extraflags')) { - $got->setValue('extraflags' => 2) - if $got->getValue('level') == Z_BEST_COMPRESSION ; - $got->setValue('extraflags' => 4) - if $got->getValue('level') == Z_BEST_SPEED ; - } - - my $data = $got->getValue('extrafield') ; - if (defined $data) { - my $bad = IO::Compress::Zlib::Extra::parseExtraField($data, $strict, 1) ; - return $self->saveErrorString(undef, "Error with ExtraField Parameter: $bad", Z_DATA_ERROR) - if $bad ; - - $got->setValue('extrafield' => $data) ; - } - } - - return 1; -} - -sub mkTrailer -{ - my $self = shift ; - return pack("V V", *$self->{Compress}->crc32(), - *$self->{UnCompSize}->get32bit()); -} - -sub getInverseClass -{ - return ('IO::Uncompress::Gunzip', - \$IO::Uncompress::Gunzip::GunzipError); -} - -sub getFileInfo -{ - my $self = shift ; - my $params = shift; - my $filename = shift ; - - return if IO::Compress::Base::Common::isaScalar($filename); - - my $defaultTime = (stat($filename))[9] ; - - $params->setValue('name' => $filename) - if ! $params->parsed('name') ; - - $params->setValue('time' => $defaultTime) - if ! $params->parsed('time') ; -} - - -sub mkHeader -{ - my $self = shift ; - my $param = shift ; - - # short-circuit if a minimal header is requested. - return GZIP_MINIMUM_HEADER if $param->getValue('minimal') ; - - # METHOD - my $method = $param->valueOrDefault('method', GZIP_CM_DEFLATED) ; - - # FLAGS - my $flags = GZIP_FLG_DEFAULT ; - $flags |= GZIP_FLG_FTEXT if $param->getValue('textflag') ; - $flags |= GZIP_FLG_FHCRC if $param->getValue('headercrc') ; - $flags |= GZIP_FLG_FEXTRA if $param->wantValue('extrafield') ; - $flags |= GZIP_FLG_FNAME if $param->wantValue('name') ; - $flags |= GZIP_FLG_FCOMMENT if $param->wantValue('comment') ; - - # MTIME - my $time = $param->valueOrDefault('time', GZIP_MTIME_DEFAULT) ; - - # EXTRA FLAGS - my $extra_flags = $param->valueOrDefault('extraflags', GZIP_XFL_DEFAULT); - - # OS CODE - my $os_code = $param->valueOrDefault('os_code', GZIP_OS_DEFAULT) ; - - - my $out = pack("C4 V C C", - GZIP_ID1, # ID1 - GZIP_ID2, # ID2 - $method, # Compression Method - $flags, # Flags - $time, # Modification Time - $extra_flags, # Extra Flags - $os_code, # Operating System Code - ) ; - - # EXTRA - if ($flags & GZIP_FLG_FEXTRA) { - my $extra = $param->getValue('extrafield') ; - $out .= pack("v", length $extra) . $extra ; - } - - # NAME - if ($flags & GZIP_FLG_FNAME) { - my $name .= $param->getValue('name') ; - $name =~ s/\x00.*$//; - $out .= $name ; - # Terminate the filename with NULL unless it already is - $out .= GZIP_NULL_BYTE - if !length $name or - substr($name, 1, -1) ne GZIP_NULL_BYTE ; - } - - # COMMENT - if ($flags & GZIP_FLG_FCOMMENT) { - my $comment .= $param->getValue('comment') ; - $comment =~ s/\x00.*$//; - $out .= $comment ; - # Terminate the comment with NULL unless it already is - $out .= GZIP_NULL_BYTE - if ! length $comment or - substr($comment, 1, -1) ne GZIP_NULL_BYTE; - } - - # HEADER CRC - $out .= pack("v", Compress::Raw::Zlib::crc32($out) & 0x00FF ) - if $param->getValue('headercrc') ; - - noUTF8($out); - - return $out ; -} - -sub mkFinalTrailer -{ - return ''; -} - -1; - -__END__ - -#line 1252 diff --git a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Gzip/Constants.pm b/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Gzip/Constants.pm deleted file mode 100644 index c878e286..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Gzip/Constants.pm +++ /dev/null @@ -1,149 +0,0 @@ -#line 1 "IO/Compress/Gzip/Constants.pm" -package IO::Compress::Gzip::Constants; - -use strict ; -use warnings; -use bytes; - -require Exporter; - -our ($VERSION, @ISA, @EXPORT, %GZIP_OS_Names); -our ($GZIP_FNAME_INVALID_CHAR_RE, $GZIP_FCOMMENT_INVALID_CHAR_RE); - -$VERSION = '2.074'; - -@ISA = qw(Exporter); - -@EXPORT= qw( - - GZIP_ID_SIZE - GZIP_ID1 - GZIP_ID2 - - GZIP_FLG_DEFAULT - GZIP_FLG_FTEXT - GZIP_FLG_FHCRC - GZIP_FLG_FEXTRA - GZIP_FLG_FNAME - GZIP_FLG_FCOMMENT - GZIP_FLG_RESERVED - - GZIP_CM_DEFLATED - - GZIP_MIN_HEADER_SIZE - GZIP_TRAILER_SIZE - - GZIP_MTIME_DEFAULT - GZIP_XFL_DEFAULT - GZIP_FEXTRA_HEADER_SIZE - GZIP_FEXTRA_MAX_SIZE - GZIP_FEXTRA_SUBFIELD_HEADER_SIZE - GZIP_FEXTRA_SUBFIELD_ID_SIZE - GZIP_FEXTRA_SUBFIELD_LEN_SIZE - GZIP_FEXTRA_SUBFIELD_MAX_SIZE - - $GZIP_FNAME_INVALID_CHAR_RE - $GZIP_FCOMMENT_INVALID_CHAR_RE - - GZIP_FHCRC_SIZE - - GZIP_ISIZE_MAX - GZIP_ISIZE_MOD_VALUE - - - GZIP_NULL_BYTE - - GZIP_OS_DEFAULT - - %GZIP_OS_Names - - GZIP_MINIMUM_HEADER - - ); - -# Constant names derived from RFC 1952 - -use constant GZIP_ID_SIZE => 2 ; -use constant GZIP_ID1 => 0x1F; -use constant GZIP_ID2 => 0x8B; - -use constant GZIP_MIN_HEADER_SIZE => 10 ;# minimum gzip header size -use constant GZIP_TRAILER_SIZE => 8 ; - - -use constant GZIP_FLG_DEFAULT => 0x00 ; -use constant GZIP_FLG_FTEXT => 0x01 ; -use constant GZIP_FLG_FHCRC => 0x02 ; # called CONTINUATION in gzip -use constant GZIP_FLG_FEXTRA => 0x04 ; -use constant GZIP_FLG_FNAME => 0x08 ; -use constant GZIP_FLG_FCOMMENT => 0x10 ; -#use constant GZIP_FLG_ENCRYPTED => 0x20 ; # documented in gzip sources -use constant GZIP_FLG_RESERVED => (0x20 | 0x40 | 0x80) ; - -use constant GZIP_XFL_DEFAULT => 0x00 ; - -use constant GZIP_MTIME_DEFAULT => 0x00 ; - -use constant GZIP_FEXTRA_HEADER_SIZE => 2 ; -use constant GZIP_FEXTRA_MAX_SIZE => 0xFFFF ; -use constant GZIP_FEXTRA_SUBFIELD_ID_SIZE => 2 ; -use constant GZIP_FEXTRA_SUBFIELD_LEN_SIZE => 2 ; -use constant GZIP_FEXTRA_SUBFIELD_HEADER_SIZE => GZIP_FEXTRA_SUBFIELD_ID_SIZE + - GZIP_FEXTRA_SUBFIELD_LEN_SIZE; -use constant GZIP_FEXTRA_SUBFIELD_MAX_SIZE => GZIP_FEXTRA_MAX_SIZE - - GZIP_FEXTRA_SUBFIELD_HEADER_SIZE ; - - -if (ord('A') == 193) -{ - # EBCDIC - $GZIP_FNAME_INVALID_CHAR_RE = '[\x00-\x3f\xff]'; - $GZIP_FCOMMENT_INVALID_CHAR_RE = '[\x00-\x0a\x11-\x14\x16-\x3f\xff]'; - -} -else -{ - $GZIP_FNAME_INVALID_CHAR_RE = '[\x00-\x1F\x7F-\x9F]'; - $GZIP_FCOMMENT_INVALID_CHAR_RE = '[\x00-\x09\x11-\x1F\x7F-\x9F]'; -} - -use constant GZIP_FHCRC_SIZE => 2 ; # aka CONTINUATION in gzip - -use constant GZIP_CM_DEFLATED => 8 ; - -use constant GZIP_NULL_BYTE => "\x00"; -use constant GZIP_ISIZE_MAX => 0xFFFFFFFF ; -use constant GZIP_ISIZE_MOD_VALUE => GZIP_ISIZE_MAX + 1 ; - -# OS Names sourced from http://www.gzip.org/format.txt - -use constant GZIP_OS_DEFAULT=> 0xFF ; -%GZIP_OS_Names = ( - 0 => 'MS-DOS', - 1 => 'Amiga', - 2 => 'VMS', - 3 => 'Unix', - 4 => 'VM/CMS', - 5 => 'Atari TOS', - 6 => 'HPFS (OS/2, NT)', - 7 => 'Macintosh', - 8 => 'Z-System', - 9 => 'CP/M', - 10 => 'TOPS-20', - 11 => 'NTFS (NT)', - 12 => 'SMS QDOS', - 13 => 'Acorn RISCOS', - 14 => 'VFAT file system (Win95, NT)', - 15 => 'MVS', - 16 => 'BeOS', - 17 => 'Tandem/NSK', - 18 => 'THEOS', - GZIP_OS_DEFAULT() => 'Unknown', - ) ; - -use constant GZIP_MINIMUM_HEADER => pack("C4 V C C", - GZIP_ID1, GZIP_ID2, GZIP_CM_DEFLATED, GZIP_FLG_DEFAULT, - GZIP_MTIME_DEFAULT, GZIP_XFL_DEFAULT, GZIP_OS_DEFAULT) ; - - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/RawDeflate.pm b/software/Slic3r-1.3.0.64bit/lib/IO/Compress/RawDeflate.pm deleted file mode 100644 index 2ca141dc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/RawDeflate.pm +++ /dev/null @@ -1,224 +0,0 @@ -#line 1 "IO/Compress/RawDeflate.pm" -package IO::Compress::RawDeflate ; - -# create RFC1951 -# -use strict ; -use warnings; -use bytes; - -use IO::Compress::Base 2.074 ; -use IO::Compress::Base::Common 2.074 qw(:Status ); -use IO::Compress::Adapter::Deflate 2.074 ; - -require Exporter ; - -our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError); - -$VERSION = '2.074'; -$RawDeflateError = ''; - -@ISA = qw(IO::Compress::Base Exporter); -@EXPORT_OK = qw( $RawDeflateError rawdeflate ) ; -push @EXPORT_OK, @IO::Compress::Adapter::Deflate::EXPORT_OK ; - -%EXPORT_TAGS = %IO::Compress::Adapter::Deflate::DEFLATE_CONSTANTS; - - -{ - my %seen; - foreach (keys %EXPORT_TAGS ) - { - push @{$EXPORT_TAGS{constants}}, - grep { !$seen{$_}++ } - @{ $EXPORT_TAGS{$_} } - } - $EXPORT_TAGS{all} = $EXPORT_TAGS{constants} ; -} - - -%DEFLATE_CONSTANTS = %EXPORT_TAGS; - -#push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ; - -Exporter::export_ok_tags('all'); - - - -sub new -{ - my $class = shift ; - - my $obj = IO::Compress::Base::Common::createSelfTiedObject($class, \$RawDeflateError); - - return $obj->_create(undef, @_); -} - -sub rawdeflate -{ - my $obj = IO::Compress::Base::Common::createSelfTiedObject(undef, \$RawDeflateError); - return $obj->_def(@_); -} - -sub ckParams -{ - my $self = shift ; - my $got = shift; - - return 1 ; -} - -sub mkComp -{ - my $self = shift ; - my $got = shift ; - - my ($obj, $errstr, $errno) = IO::Compress::Adapter::Deflate::mkCompObject( - $got->getValue('crc32'), - $got->getValue('adler32'), - $got->getValue('level'), - $got->getValue('strategy') - ); - - return $self->saveErrorString(undef, $errstr, $errno) - if ! defined $obj; - - return $obj; -} - - -sub mkHeader -{ - my $self = shift ; - return ''; -} - -sub mkTrailer -{ - my $self = shift ; - return ''; -} - -sub mkFinalTrailer -{ - return ''; -} - - -#sub newHeader -#{ -# my $self = shift ; -# return ''; -#} - -sub getExtraParams -{ - my $self = shift ; - return getZlibParams(); -} - -use IO::Compress::Base::Common 2.074 qw(:Parse); -use Compress::Raw::Zlib 2.074 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY); -our %PARAMS = ( - #'method' => [IO::Compress::Base::Common::Parse_unsigned, Z_DEFLATED], - 'level' => [IO::Compress::Base::Common::Parse_signed, Z_DEFAULT_COMPRESSION], - 'strategy' => [IO::Compress::Base::Common::Parse_signed, Z_DEFAULT_STRATEGY], - - 'crc32' => [IO::Compress::Base::Common::Parse_boolean, 0], - 'adler32' => [IO::Compress::Base::Common::Parse_boolean, 0], - 'merge' => [IO::Compress::Base::Common::Parse_boolean, 0], - ); - -sub getZlibParams -{ - return %PARAMS; -} - -sub getInverseClass -{ - return ('IO::Uncompress::RawInflate', - \$IO::Uncompress::RawInflate::RawInflateError); -} - -sub getFileInfo -{ - my $self = shift ; - my $params = shift; - my $file = shift ; - -} - -use Fcntl qw(SEEK_SET); - -sub createMerge -{ - my $self = shift ; - my $outValue = shift ; - my $outType = shift ; - - my ($invClass, $error_ref) = $self->getInverseClass(); - eval "require $invClass" - or die "aaaahhhh" ; - - my $inf = $invClass->new( $outValue, - Transparent => 0, - #Strict => 1, - AutoClose => 0, - Scan => 1) - or return $self->saveErrorString(undef, "Cannot create InflateScan object: $$error_ref" ) ; - - my $end_offset = 0; - $inf->scan() - or return $self->saveErrorString(undef, "Error Scanning: $$error_ref", $inf->errorNo) ; - $inf->zap($end_offset) - or return $self->saveErrorString(undef, "Error Zapping: $$error_ref", $inf->errorNo) ; - - my $def = *$self->{Compress} = $inf->createDeflate(); - - *$self->{Header} = *$inf->{Info}{Header}; - *$self->{UnCompSize} = *$inf->{UnCompSize}->clone(); - *$self->{CompSize} = *$inf->{CompSize}->clone(); - # TODO -- fix this - #*$self->{CompSize} = new U64(0, *$self->{UnCompSize_32bit}); - - - if ( $outType eq 'buffer') - { substr( ${ *$self->{Buffer} }, $end_offset) = '' } - elsif ($outType eq 'handle' || $outType eq 'filename') { - *$self->{FH} = *$inf->{FH} ; - delete *$inf->{FH}; - *$self->{FH}->flush() ; - *$self->{Handle} = 1 if $outType eq 'handle'; - - #seek(*$self->{FH}, $end_offset, SEEK_SET) - *$self->{FH}->seek($end_offset, SEEK_SET) - or return $self->saveErrorString(undef, $!, $!) ; - } - - return $def ; -} - -#### zlib specific methods - -sub deflateParams -{ - my $self = shift ; - - my $level = shift ; - my $strategy = shift ; - - my $status = *$self->{Compress}->deflateParams(Level => $level, Strategy => $strategy) ; - return $self->saveErrorString(0, *$self->{Compress}{Error}, *$self->{Compress}{ErrorNo}) - if $status == STATUS_ERROR; - - return 1; -} - - - - -1; - -__END__ - -#line 996 diff --git a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Zlib/Constants.pm b/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Zlib/Constants.pm deleted file mode 100644 index 17b2dd46..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Zlib/Constants.pm +++ /dev/null @@ -1,78 +0,0 @@ -#line 1 "IO/Compress/Zlib/Constants.pm" - -package IO::Compress::Zlib::Constants ; - -use strict ; -use warnings; -use bytes; - -require Exporter; - -our ($VERSION, @ISA, @EXPORT); - -$VERSION = '2.074'; - -@ISA = qw(Exporter); - -@EXPORT= qw( - - ZLIB_HEADER_SIZE - ZLIB_TRAILER_SIZE - - ZLIB_CMF_CM_OFFSET - ZLIB_CMF_CM_BITS - ZLIB_CMF_CM_DEFLATED - - ZLIB_CMF_CINFO_OFFSET - ZLIB_CMF_CINFO_BITS - ZLIB_CMF_CINFO_MAX - - ZLIB_FLG_FCHECK_OFFSET - ZLIB_FLG_FCHECK_BITS - - ZLIB_FLG_FDICT_OFFSET - ZLIB_FLG_FDICT_BITS - - ZLIB_FLG_LEVEL_OFFSET - ZLIB_FLG_LEVEL_BITS - - ZLIB_FLG_LEVEL_FASTEST - ZLIB_FLG_LEVEL_FAST - ZLIB_FLG_LEVEL_DEFAULT - ZLIB_FLG_LEVEL_SLOWEST - - ZLIB_FDICT_SIZE - - ); - -# Constant names derived from RFC1950 - -use constant ZLIB_HEADER_SIZE => 2; -use constant ZLIB_TRAILER_SIZE => 4; - -use constant ZLIB_CMF_CM_OFFSET => 0; -use constant ZLIB_CMF_CM_BITS => 0xF ; # 0b1111 -use constant ZLIB_CMF_CM_DEFLATED => 8; - -use constant ZLIB_CMF_CINFO_OFFSET => 4; -use constant ZLIB_CMF_CINFO_BITS => 0xF ; # 0b1111; -use constant ZLIB_CMF_CINFO_MAX => 7; - -use constant ZLIB_FLG_FCHECK_OFFSET => 0; -use constant ZLIB_FLG_FCHECK_BITS => 0x1F ; # 0b11111; - -use constant ZLIB_FLG_FDICT_OFFSET => 5; -use constant ZLIB_FLG_FDICT_BITS => 0x1 ; # 0b1; - -use constant ZLIB_FLG_LEVEL_OFFSET => 6; -use constant ZLIB_FLG_LEVEL_BITS => 0x3 ; # 0b11; - -use constant ZLIB_FLG_LEVEL_FASTEST => 0; -use constant ZLIB_FLG_LEVEL_FAST => 1; -use constant ZLIB_FLG_LEVEL_DEFAULT => 2; -use constant ZLIB_FLG_LEVEL_SLOWEST => 3; - -use constant ZLIB_FDICT_SIZE => 4; - - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Zlib/Extra.pm b/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Zlib/Extra.pm deleted file mode 100644 index 2bcb3949..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/IO/Compress/Zlib/Extra.pm +++ /dev/null @@ -1,230 +0,0 @@ -#line 1 "IO/Compress/Zlib/Extra.pm" -package IO::Compress::Zlib::Extra; - -require 5.006 ; - -use strict ; -use warnings; -use bytes; - -our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS); - -$VERSION = '2.074'; - -use IO::Compress::Gzip::Constants 2.074 ; - -sub ExtraFieldError -{ - return $_[0]; - return "Error with ExtraField Parameter: $_[0]" ; -} - -sub validateExtraFieldPair -{ - my $pair = shift ; - my $strict = shift; - my $gzipMode = shift ; - - return ExtraFieldError("Not an array ref") - unless ref $pair && ref $pair eq 'ARRAY'; - - return ExtraFieldError("SubField must have two parts") - unless @$pair == 2 ; - - return ExtraFieldError("SubField ID is a reference") - if ref $pair->[0] ; - - return ExtraFieldError("SubField Data is a reference") - if ref $pair->[1] ; - - # ID is exactly two chars - return ExtraFieldError("SubField ID not two chars long") - unless length $pair->[0] == GZIP_FEXTRA_SUBFIELD_ID_SIZE ; - - # Check that the 2nd byte of the ID isn't 0 - return ExtraFieldError("SubField ID 2nd byte is 0x00") - if $strict && $gzipMode && substr($pair->[0], 1, 1) eq "\x00" ; - - return ExtraFieldError("SubField Data too long") - if length $pair->[1] > GZIP_FEXTRA_SUBFIELD_MAX_SIZE ; - - - return undef ; -} - -sub parseRawExtra -{ - my $data = shift ; - my $extraRef = shift; - my $strict = shift; - my $gzipMode = shift ; - - #my $lax = shift ; - - #return undef - # if $lax ; - - my $XLEN = length $data ; - - return ExtraFieldError("Too Large") - if $XLEN > GZIP_FEXTRA_MAX_SIZE; - - my $offset = 0 ; - while ($offset < $XLEN) { - - return ExtraFieldError("Truncated in FEXTRA Body Section") - if $offset + GZIP_FEXTRA_SUBFIELD_HEADER_SIZE > $XLEN ; - - my $id = substr($data, $offset, GZIP_FEXTRA_SUBFIELD_ID_SIZE); - $offset += GZIP_FEXTRA_SUBFIELD_ID_SIZE; - - my $subLen = unpack("v", substr($data, $offset, - GZIP_FEXTRA_SUBFIELD_LEN_SIZE)); - $offset += GZIP_FEXTRA_SUBFIELD_LEN_SIZE ; - - return ExtraFieldError("Truncated in FEXTRA Body Section") - if $offset + $subLen > $XLEN ; - - my $bad = validateExtraFieldPair( [$id, - substr($data, $offset, $subLen)], - $strict, $gzipMode ); - return $bad if $bad ; - push @$extraRef, [$id => substr($data, $offset, $subLen)] - if defined $extraRef;; - - $offset += $subLen ; - } - - - return undef ; -} - -sub findID -{ - my $id_want = shift ; - my $data = shift; - - my $XLEN = length $data ; - - my $offset = 0 ; - while ($offset < $XLEN) { - - return undef - if $offset + GZIP_FEXTRA_SUBFIELD_HEADER_SIZE > $XLEN ; - - my $id = substr($data, $offset, GZIP_FEXTRA_SUBFIELD_ID_SIZE); - $offset += GZIP_FEXTRA_SUBFIELD_ID_SIZE; - - my $subLen = unpack("v", substr($data, $offset, - GZIP_FEXTRA_SUBFIELD_LEN_SIZE)); - $offset += GZIP_FEXTRA_SUBFIELD_LEN_SIZE ; - - return undef - if $offset + $subLen > $XLEN ; - - return substr($data, $offset, $subLen) - if $id eq $id_want ; - - $offset += $subLen ; - } - - return undef ; -} - - -sub mkSubField -{ - my $id = shift ; - my $data = shift ; - - return $id . pack("v", length $data) . $data ; -} - -sub parseExtraField -{ - my $dataRef = $_[0]; - my $strict = $_[1]; - my $gzipMode = $_[2]; - #my $lax = @_ == 2 ? $_[1] : 1; - - - # ExtraField can be any of - # - # -ExtraField => $data - # - # -ExtraField => [$id1, $data1, - # $id2, $data2] - # ... - # ] - # - # -ExtraField => [ [$id1 => $data1], - # [$id2 => $data2], - # ... - # ] - # - # -ExtraField => { $id1 => $data1, - # $id2 => $data2, - # ... - # } - - if ( ! ref $dataRef ) { - - return undef - if ! $strict; - - return parseRawExtra($dataRef, undef, 1, $gzipMode); - } - - my $data = $dataRef; - my $out = '' ; - - if (ref $data eq 'ARRAY') { - if (ref $data->[0]) { - - foreach my $pair (@$data) { - return ExtraFieldError("Not list of lists") - unless ref $pair eq 'ARRAY' ; - - my $bad = validateExtraFieldPair($pair, $strict, $gzipMode) ; - return $bad if $bad ; - - $out .= mkSubField(@$pair); - } - } - else { - return ExtraFieldError("Not even number of elements") - unless @$data % 2 == 0; - - for (my $ix = 0; $ix <= @$data -1 ; $ix += 2) { - my $bad = validateExtraFieldPair([$data->[$ix], - $data->[$ix+1]], - $strict, $gzipMode) ; - return $bad if $bad ; - - $out .= mkSubField($data->[$ix], $data->[$ix+1]); - } - } - } - elsif (ref $data eq 'HASH') { - while (my ($id, $info) = each %$data) { - my $bad = validateExtraFieldPair([$id, $info], $strict, $gzipMode); - return $bad if $bad ; - - $out .= mkSubField($id, $info); - } - } - else { - return ExtraFieldError("Not a scalar, array ref or hash ref") ; - } - - return ExtraFieldError("Too Large") - if length $out > GZIP_FEXTRA_MAX_SIZE; - - $_[0] = $out ; - - return undef; -} - -1; - -__END__ diff --git a/software/Slic3r-1.3.0.64bit/lib/IO/Dir.pm b/software/Slic3r-1.3.0.64bit/lib/IO/Dir.pm deleted file mode 100644 index 0a285a69..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/IO/Dir.pm +++ /dev/null @@ -1,151 +0,0 @@ -#line 1 "IO/Dir.pm" -# IO::Dir.pm -# -# Copyright (c) 1997-8 Graham Barr . All rights reserved. -# This program is free software; you can redistribute it and/or -# modify it under the same terms as Perl itself. - -package IO::Dir; - -use 5.006; - -use strict; -use Carp; -use Symbol; -use Exporter; -use IO::File; -our(@ISA, $VERSION, @EXPORT_OK); -use Tie::Hash; -use File::stat; -use File::Spec; - -@ISA = qw(Tie::Hash Exporter); -$VERSION = "1.10"; -$VERSION = eval $VERSION; -@EXPORT_OK = qw(DIR_UNLINK); - -sub DIR_UNLINK () { 1 } - -sub new { - @_ >= 1 && @_ <= 2 or croak 'usage: IO::Dir->new([DIRNAME])'; - my $class = shift; - my $dh = gensym; - if (@_) { - IO::Dir::open($dh, $_[0]) - or return undef; - } - bless $dh, $class; -} - -sub DESTROY { - my ($dh) = @_; - local($., $@, $!, $^E, $?); - no warnings 'io'; - closedir($dh); -} - -sub open { - @_ == 2 or croak 'usage: $dh->open(DIRNAME)'; - my ($dh, $dirname) = @_; - return undef - unless opendir($dh, $dirname); - # a dir name should always have a ":" in it; assume dirname is - # in current directory - $dirname = ':' . $dirname if ( ($^O eq 'MacOS') && ($dirname !~ /:/) ); - ${*$dh}{io_dir_path} = $dirname; - 1; -} - -sub close { - @_ == 1 or croak 'usage: $dh->close()'; - my ($dh) = @_; - closedir($dh); -} - -sub read { - @_ == 1 or croak 'usage: $dh->read()'; - my ($dh) = @_; - readdir($dh); -} - -sub seek { - @_ == 2 or croak 'usage: $dh->seek(POS)'; - my ($dh,$pos) = @_; - seekdir($dh,$pos); -} - -sub tell { - @_ == 1 or croak 'usage: $dh->tell()'; - my ($dh) = @_; - telldir($dh); -} - -sub rewind { - @_ == 1 or croak 'usage: $dh->rewind()'; - my ($dh) = @_; - rewinddir($dh); -} - -sub TIEHASH { - my($class,$dir,$options) = @_; - - my $dh = $class->new($dir) - or return undef; - - $options ||= 0; - - ${*$dh}{io_dir_unlink} = $options & DIR_UNLINK; - $dh; -} - -sub FIRSTKEY { - my($dh) = @_; - $dh->rewind; - scalar $dh->read; -} - -sub NEXTKEY { - my($dh) = @_; - scalar $dh->read; -} - -sub EXISTS { - my($dh,$key) = @_; - -e File::Spec->catfile(${*$dh}{io_dir_path}, $key); -} - -sub FETCH { - my($dh,$key) = @_; - &lstat(File::Spec->catfile(${*$dh}{io_dir_path}, $key)); -} - -sub STORE { - my($dh,$key,$data) = @_; - my($atime,$mtime) = ref($data) ? @$data : ($data,$data); - my $file = File::Spec->catfile(${*$dh}{io_dir_path}, $key); - unless(-e $file) { - my $io = IO::File->new($file,O_CREAT | O_RDWR); - $io->close if $io; - } - utime($atime,$mtime, $file); -} - -sub DELETE { - my($dh,$key) = @_; - - # Only unlink if unlink-ing is enabled - return 0 - unless ${*$dh}{io_dir_unlink}; - - my $file = File::Spec->catfile(${*$dh}{io_dir_path}, $key); - - -d $file - ? rmdir($file) - : unlink($file); -} - -1; - -__END__ - -#line 249 diff --git a/software/Slic3r-1.3.0.64bit/lib/IO/File.pm b/software/Slic3r-1.3.0.64bit/lib/IO/File.pm deleted file mode 100644 index f5efe49b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/IO/File.pm +++ /dev/null @@ -1,84 +0,0 @@ -#line 1 "IO/File.pm" -# - -package IO::File; - -#line 126 - -use 5.006_001; -use strict; -our($VERSION, @EXPORT, @EXPORT_OK, @ISA); -use Carp; -use Symbol; -use SelectSaver; -use IO::Seekable; - -require Exporter; - -@ISA = qw(IO::Handle IO::Seekable Exporter); - -$VERSION = "1.16"; - -@EXPORT = @IO::Seekable::EXPORT; - -eval { - # Make all Fcntl O_XXX constants available for importing - require Fcntl; - my @O = grep /^O_/, @Fcntl::EXPORT; - Fcntl->import(@O); # first we import what we want to export - push(@EXPORT, @O); -}; - -################################################ -## Constructor -## - -sub new { - my $type = shift; - my $class = ref($type) || $type || "IO::File"; - @_ >= 0 && @_ <= 3 - or croak "usage: $class->new([FILENAME [,MODE [,PERMS]]])"; - my $fh = $class->SUPER::new(); - if (@_) { - $fh->open(@_) - or return undef; - } - $fh; -} - -################################################ -## Open -## - -sub open { - @_ >= 2 && @_ <= 4 or croak 'usage: $fh->open(FILENAME [,MODE [,PERMS]])'; - my ($fh, $file) = @_; - if (@_ > 2) { - my ($mode, $perms) = @_[2, 3]; - if ($mode =~ /^\d+$/) { - defined $perms or $perms = 0666; - return sysopen($fh, $file, $mode, $perms); - } elsif ($mode =~ /:/) { - return open($fh, $mode, $file) if @_ == 3; - croak 'usage: $fh->open(FILENAME, IOLAYERS)'; - } else { - return open($fh, IO::Handle::_open_mode_string($mode), $file); - } - } - open($fh, $file); -} - -################################################ -## Binmode -## - -sub binmode { - ( @_ == 1 or @_ == 2 ) or croak 'usage $fh->binmode([LAYER])'; - - my($fh, $layer) = @_; - - return binmode $$fh unless $layer; - return binmode $$fh, $layer; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/IO/HTML.pm b/software/Slic3r-1.3.0.64bit/lib/IO/HTML.pm deleted file mode 100644 index 39eb4d19..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/IO/HTML.pm +++ /dev/null @@ -1,262 +0,0 @@ -#line 1 "IO/HTML.pm" -#--------------------------------------------------------------------- -package IO::HTML; -# -# Copyright 2014 Christopher J. Madsen -# -# Author: Christopher J. Madsen -# Created: 14 Jan 2012 -# -# This program is free software; you can redistribute it and/or modify -# it under the same terms as Perl itself. -# -# 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 either the -# GNU General Public License or the Artistic License for more details. -# -# ABSTRACT: Open an HTML file with automatic charset detection -#--------------------------------------------------------------------- - -use 5.008; -use strict; -use warnings; - -use Carp 'croak'; -use Encode 2.10 qw(decode find_encoding); # need utf-8-strict encoding -use Exporter 5.57 'import'; - -our $VERSION = '1.001'; -# This file is part of IO-HTML 1.001 (June 28, 2014) - -our $default_encoding ||= 'cp1252'; - -our @EXPORT = qw(html_file); -our @EXPORT_OK = qw(find_charset_in html_file_and_encoding html_outfile - sniff_encoding); - -our %EXPORT_TAGS = ( - rw => [qw( html_file html_file_and_encoding html_outfile )], - all => [ @EXPORT, @EXPORT_OK ], -); - -#===================================================================== - - -sub html_file -{ - (&html_file_and_encoding)[0]; # return just the filehandle -} # end html_file - - -# Note: I made html_file and html_file_and_encoding separate functions -# (instead of making html_file context-sensitive) because I wanted to -# use html_file in function calls (i.e. list context) without having -# to write "scalar html_file" all the time. - -sub html_file_and_encoding -{ - my ($filename, $options) = @_; - - $options ||= {}; - - open(my $in, '<:raw', $filename) or croak "Failed to open $filename: $!"; - - - my ($encoding, $bom) = sniff_encoding($in, $filename, $options); - - if (not defined $encoding) { - croak "No default encoding specified" - unless defined($encoding = $default_encoding); - $encoding = find_encoding($encoding) if $options->{encoding}; - } # end if we didn't find an encoding - - binmode $in, sprintf(":encoding(%s):crlf", - $options->{encoding} ? $encoding->name : $encoding); - - return ($in, $encoding, $bom); -} # end html_file_and_encoding -#--------------------------------------------------------------------- - - -sub html_outfile -{ - my ($filename, $encoding, $bom) = @_; - - if (not defined $encoding) { - croak "No default encoding specified" - unless defined($encoding = $default_encoding); - } # end if we didn't find an encoding - elsif (ref $encoding) { - $encoding = $encoding->name; - } - - open(my $out, ">:encoding($encoding)", $filename) - or croak "Failed to open $filename: $!"; - - print $out "\x{FeFF}" if $bom; - - return $out; -} # end html_outfile -#--------------------------------------------------------------------- - - -sub sniff_encoding -{ - my ($in, $filename, $options) = @_; - - $filename = 'file' unless defined $filename; - $options ||= {}; - - my $pos = tell $in; - croak "Could not seek $filename: $!" if $pos < 0; - - croak "Could not read $filename: $!" unless defined read $in, my $buf, 1024; - - seek $in, $pos, 0 or croak "Could not seek $filename: $!"; - - - # Check for BOM: - my $bom; - my $encoding = do { - if ($buf =~ /^\xFe\xFF/) { - $bom = 2; - 'UTF-16BE'; - } elsif ($buf =~ /^\xFF\xFe/) { - $bom = 2; - 'UTF-16LE'; - } elsif ($buf =~ /^\xEF\xBB\xBF/) { - $bom = 3; - 'utf-8-strict'; - } else { - find_charset_in($buf, $options); # check for - } - }; # end $encoding - - if ($bom) { - seek $in, $bom, 1 or croak "Could not seek $filename: $!"; - $bom = 1; - } - elsif (not defined $encoding) { # try decoding as UTF-8 - my $test = decode('utf-8-strict', $buf, Encode::FB_QUIET); - if ($buf =~ /^(?: # nothing left over - | [\xC2-\xDF] # incomplete 2-byte char - | [\xE0-\xEF] [\x80-\xBF]? # incomplete 3-byte char - | [\xF0-\xF4] [\x80-\xBF]{0,2} # incomplete 4-byte char - )\z/x and $test =~ /[^\x00-\x7F]/) { - $encoding = 'utf-8-strict'; - } # end if valid UTF-8 with at least one multi-byte character: - } # end if testing for UTF-8 - - if (defined $encoding and $options->{encoding} and not ref $encoding) { - $encoding = find_encoding($encoding); - } # end if $encoding is a string and we want an object - - return wantarray ? ($encoding, $bom) : $encoding; -} # end sniff_encoding - -#===================================================================== -# Based on HTML5 8.2.2.2 Determining the character encoding: - -# Get attribute from current position of $_ -sub _get_attribute -{ - m!\G[\x09\x0A\x0C\x0D /]+!gc; # skip whitespace or / - - return if /\G>/gc or not /\G(=?[^\x09\x0A\x0C\x0D =]*)/gc; - - my ($name, $value) = (lc $1, ''); - - if (/\G[\x09\x0A\x0C\x0D ]*=[\x09\x0A\x0C\x0D ]*/gc - and (/\G"([^"]*)"?/gc or - /\G'([^']*)'?/gc or - /\G([^\x09\x0A\x0C\x0D >]*)/gc)) { - $value = lc $1; - } # end if attribute has value - - return wantarray ? ($name, $value) : 1; -} # end _get_attribute - -# Examine a meta value for a charset: -sub _get_charset_from_meta -{ - for (shift) { - while (/charset[\x09\x0A\x0C\x0D ]*=[\x09\x0A\x0C\x0D ]*/ig) { - return $1 if (/\G"([^"]*)"/gc or - /\G'([^']*)'/gc or - /\G(?!['"])([^\x09\x0A\x0C\x0D ;]+)/gc); - } - } # end for value - - return undef; -} # end _get_charset_from_meta -#--------------------------------------------------------------------- - - -sub find_charset_in -{ - for (shift) { - my $options = shift || {}; - my $stop = length > 1024 ? 1024 : length; # search first 1024 bytes - - my $expect_pragma = (defined $options->{need_pragma} - ? $options->{need_pragma} : 1); - - pos() = 0; - while (pos() < $stop) { - if (/\Gregister_attribute_specs( - attribute_specs => { - is => 'ro', - reader => 'all_attribute_specs', - }, - accessor_generator => { is => 'ro' }, - construction_string => { is => 'lazy' }, - construction_builder => { is => 'bare' }, - subconstructor_handler => { is => 'ro' }, - package => { is => 'bare' }, -); -if ($INC{'Moo/HandleMoose.pm'} && !$Moo::sification::disabled) { - Moo::HandleMoose::inject_fake_metaclass_for(__PACKAGE__); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Method/Generate/DemolishAll.pm b/software/Slic3r-1.3.0.64bit/lib/Method/Generate/DemolishAll.pm deleted file mode 100644 index 7896f3e1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Method/Generate/DemolishAll.pm +++ /dev/null @@ -1,53 +0,0 @@ -#line 1 "Method/Generate/DemolishAll.pm" -package Method::Generate::DemolishAll; - -use Moo::_strictures; -use Moo::Object (); -BEGIN { our @ISA = qw(Moo::Object) } -use Sub::Quote qw(quote_sub quotify); -use Moo::_Utils qw(_getglob); -use Moo::_mro; - -sub generate_method { - my ($self, $into) = @_; - quote_sub "${into}::DEMOLISHALL", join '', - $self->_handle_subdemolish($into), - qq{ my \$self = shift;\n}, - $self->demolishall_body_for($into, '$self', '@_'), - qq{ return \$self\n}; - quote_sub "${into}::DESTROY", join '', - q! my $self = shift; - my $e = do { - local $?; - local $@; - require Devel::GlobalDestruction; - eval { - $self->DEMOLISHALL(Devel::GlobalDestruction::in_global_destruction); - }; - $@; - }; - - # fatal warnings+die in DESTROY = bad times (perl rt#123398) - no warnings FATAL => 'all'; - use warnings 'all'; - die $e if $e; # rethrow - !; -} - -sub demolishall_body_for { - my ($self, $into, $me, $args) = @_; - my @demolishers = - grep *{_getglob($_)}{CODE}, - map "${_}::DEMOLISH", - @{mro::get_linear_isa($into)}; - join '', map qq{ ${me}->${_}(${args});\n}, @demolishers; -} - -sub _handle_subdemolish { - my ($self, $into) = @_; - ' if (ref($_[0]) ne '.quotify($into).') {'."\n". - ' return shift->Moo::Object::DEMOLISHALL(@_)'.";\n". - ' }'."\n"; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Module/Runtime.pm b/software/Slic3r-1.3.0.64bit/lib/Module/Runtime.pm deleted file mode 100644 index 7cc5e32d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Module/Runtime.pm +++ /dev/null @@ -1,201 +0,0 @@ -#line 1 "Module/Runtime.pm" - -#line 111 - -package Module::Runtime; - -# Don't "use 5.006" here, because Perl 5.15.6 will load feature.pm if -# the version check is done that way. -BEGIN { require 5.006; } -# Don't "use warnings" here, to avoid dependencies. Do standardise the -# warning status by lexical override; unfortunately the only safe bitset -# to build in is the empty set, equivalent to "no warnings". -BEGIN { ${^WARNING_BITS} = ""; } -# Don't "use strict" here, to avoid dependencies. - -our $VERSION = "0.014"; - -# Don't use Exporter here, to avoid dependencies. -our @EXPORT_OK = qw( - $module_name_rx is_module_name is_valid_module_name check_module_name - module_notional_filename require_module - use_module use_package_optimistically - $top_module_spec_rx $sub_module_spec_rx - is_module_spec is_valid_module_spec check_module_spec - compose_module_name -); -my %export_ok = map { ($_ => undef) } @EXPORT_OK; -sub import { - my $me = shift; - my $callpkg = caller(0); - my $errs = ""; - foreach(@_) { - if(exists $export_ok{$_}) { - # We would need to do "no strict 'refs'" here - # if we had enabled strict at file scope. - if(/\A\$(.*)\z/s) { - *{$callpkg."::".$1} = \$$1; - } else { - *{$callpkg."::".$_} = \&$_; - } - } else { - $errs .= "\"$_\" is not exported by the $me module\n"; - } - } - if($errs ne "") { - die "${errs}Can't continue after import errors ". - "at @{[(caller(0))[1]]} line @{[(caller(0))[2]]}.\n"; - } -} - -# Logic duplicated from Params::Classify. Duplicating it here avoids -# an extensive and potentially circular dependency graph. -sub _is_string($) { - my($arg) = @_; - return defined($arg) && ref(\$arg) eq "SCALAR"; -} - -#line 178 - -our $module_name_rx = qr/[A-Z_a-z][0-9A-Z_a-z]*(?:::[0-9A-Z_a-z]+)*/; - -#line 187 - -my $qual_module_spec_rx = - qr#(?:/|::)[A-Z_a-z][0-9A-Z_a-z]*(?:(?:/|::)[0-9A-Z_a-z]+)*#; - -my $unqual_top_module_spec_rx = - qr#[A-Z_a-z][0-9A-Z_a-z]*(?:(?:/|::)[0-9A-Z_a-z]+)*#; - -our $top_module_spec_rx = qr/$qual_module_spec_rx|$unqual_top_module_spec_rx/o; - -#line 202 - -my $unqual_sub_module_spec_rx = qr#[0-9A-Z_a-z]+(?:(?:/|::)[0-9A-Z_a-z]+)*#; - -our $sub_module_spec_rx = qr/$qual_module_spec_rx|$unqual_sub_module_spec_rx/o; - -#line 221 - -sub is_module_name($) { _is_string($_[0]) && $_[0] =~ /\A$module_name_rx\z/o } - -#line 229 - -*is_valid_module_name = \&is_module_name; - -#line 239 - -sub check_module_name($) { - unless(&is_module_name) { - die +(_is_string($_[0]) ? "`$_[0]'" : "argument"). - " is not a module name\n"; - } -} - -#line 262 - -sub module_notional_filename($) { - &check_module_name; - my($name) = @_; - $name =~ s!::!/!g; - return $name.".pm"; -} - -#line 287 - -# Don't "use constant" here, to avoid dependencies. -BEGIN { - *_WORK_AROUND_HINT_LEAKAGE = - "$]" < 5.011 && !("$]" >= 5.009004 && "$]" < 5.010001) - ? sub(){1} : sub(){0}; - *_WORK_AROUND_BROKEN_MODULE_STATE = "$]" < 5.009 ? sub(){1} : sub(){0}; -} - -BEGIN { if(_WORK_AROUND_BROKEN_MODULE_STATE) { eval q{ - sub Module::Runtime::__GUARD__::DESTROY { - delete $INC{$_[0]->[0]} if @{$_[0]}; - } - 1; -}; die $@ if $@ ne ""; } } - -sub require_module($) { - # Localise %^H to work around [perl #68590], where the bug exists - # and this is a satisfactory workaround. The bug consists of - # %^H state leaking into each required module, polluting the - # module's lexical state. - local %^H if _WORK_AROUND_HINT_LEAKAGE; - if(_WORK_AROUND_BROKEN_MODULE_STATE) { - my $notional_filename = &module_notional_filename; - my $guard = bless([ $notional_filename ], - "Module::Runtime::__GUARD__"); - my $result = CORE::require($notional_filename); - pop @$guard; - return $result; - } else { - return scalar(CORE::require(&module_notional_filename)); - } -} - -#line 345 - -sub use_module($;$) { - my($name, $version) = @_; - require_module($name); - $name->VERSION($version) if @_ >= 2; - return $name; -} - -#line 377 - -sub use_package_optimistically($;$) { - my($name, $version) = @_; - my $fn = module_notional_filename($name); - eval { local $SIG{__DIE__}; require_module($name); }; - die $@ if $@ ne "" && - ($@ !~ /\ACan't locate \Q$fn\E .+ at \Q@{[__FILE__]}\E line/s || - $@ =~ /^Compilation\ failed\ in\ require - \ at\ \Q@{[__FILE__]}\E\ line/xm); - $name->VERSION($version) if @_ >= 2; - return $name; -} - -#line 405 - -sub is_module_spec($$) { - my($prefix, $spec) = @_; - return _is_string($spec) && - $spec =~ ($prefix ? qr/\A$sub_module_spec_rx\z/o : - qr/\A$top_module_spec_rx\z/o); -} - -#line 418 - -*is_valid_module_spec = \&is_module_spec; - -#line 427 - -sub check_module_spec($$) { - unless(&is_module_spec) { - die +(_is_string($_[1]) ? "`$_[1]'" : "argument"). - " is not a module specification\n"; - } -} - -#line 455 - -sub compose_module_name($$) { - my($prefix, $spec) = @_; - check_module_name($prefix) if defined $prefix; - &check_module_spec; - if($spec =~ s#\A(?:/|::)##) { - # OK - } else { - $spec = $prefix."::".$spec if defined $prefix; - } - $spec =~ s#/#::#g; - return $spec; -} - -#line 504 - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Moo.pm b/software/Slic3r-1.3.0.64bit/lib/Moo.pm deleted file mode 100644 index 7bdda346..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Moo.pm +++ /dev/null @@ -1,251 +0,0 @@ -#line 1 "Moo.pm" -package Moo; - -use Moo::_strictures; -use Moo::_mro; -use Moo::_Utils qw( - _getglob - _getstash - _install_coderef - _install_modifier - _load_module - _set_loaded - _unimport_coderefs -); -use Carp qw(croak); -BEGIN { - our @CARP_NOT = qw( - Method::Generate::Constructor - Method::Generate::Accessor - Moo::sification - Moo::_Utils - Moo::Role - ); -} - -our $VERSION = '2.003001'; -$VERSION = eval $VERSION; - -require Moo::sification; -Moo::sification->import; - -our %MAKERS; - -sub _install_tracked { - my ($target, $name, $code) = @_; - $MAKERS{$target}{exports}{$name} = $code; - _install_coderef "${target}::${name}" => "Moo::${name}" => $code; -} - -sub import { - my $target = caller; - my $class = shift; - _set_loaded(caller); - - strict->import; - warnings->import; - - if ($INC{'Role/Tiny.pm'} and Role::Tiny->is_role($target)) { - croak "Cannot import Moo into a role"; - } - $MAKERS{$target} ||= {}; - _install_tracked $target => extends => sub { - $class->_set_superclasses($target, @_); - $class->_maybe_reset_handlemoose($target); - return; - }; - _install_tracked $target => with => sub { - require Moo::Role; - Moo::Role->apply_roles_to_package($target, @_); - $class->_maybe_reset_handlemoose($target); - }; - _install_tracked $target => has => sub { - my $name_proto = shift; - my @name_proto = ref $name_proto eq 'ARRAY' ? @$name_proto : $name_proto; - if (@_ % 2 != 0) { - croak "Invalid options for " . join(', ', map "'$_'", @name_proto) - . " attribute(s): even number of arguments expected, got " . scalar @_; - } - my %spec = @_; - foreach my $name (@name_proto) { - # Note that when multiple attributes specified, each attribute - # needs a separate \%specs hashref - my $spec_ref = @name_proto > 1 ? +{%spec} : \%spec; - $class->_constructor_maker_for($target) - ->register_attribute_specs($name, $spec_ref); - $class->_accessor_maker_for($target) - ->generate_method($target, $name, $spec_ref); - $class->_maybe_reset_handlemoose($target); - } - return; - }; - foreach my $type (qw(before after around)) { - _install_tracked $target => $type => sub { - _install_modifier($target, $type, @_); - return; - }; - } - return if $MAKERS{$target}{is_class}; # already exported into this package - my $stash = _getstash($target); - my @not_methods = map { *$_{CODE}||() } grep !ref($_), values %$stash; - @{$MAKERS{$target}{not_methods}={}}{@not_methods} = @not_methods; - $MAKERS{$target}{is_class} = 1; - { - no strict 'refs'; - @{"${target}::ISA"} = do { - require Moo::Object; ('Moo::Object'); - } unless @{"${target}::ISA"}; - } - if ($INC{'Moo/HandleMoose.pm'} && !$Moo::sification::disabled) { - Moo::HandleMoose::inject_fake_metaclass_for($target); - } -} - -sub unimport { - my $target = caller; - _unimport_coderefs($target, $MAKERS{$target}); -} - -sub _set_superclasses { - my $class = shift; - my $target = shift; - foreach my $superclass (@_) { - _load_module($superclass); - if ($INC{'Role/Tiny.pm'} && Role::Tiny->is_role($superclass)) { - croak "Can't extend role '$superclass'"; - } - } - # Can't do *{...} = \@_ or 5.10.0's mro.pm stops seeing @ISA - @{*{_getglob("${target}::ISA")}{ARRAY}} = @_; - if (my $old = delete $Moo::MAKERS{$target}{constructor}) { - $old->assert_constructor; - delete _getstash($target)->{new}; - Moo->_constructor_maker_for($target) - ->register_attribute_specs(%{$old->all_attribute_specs}); - } - elsif (!$target->isa('Moo::Object')) { - Moo->_constructor_maker_for($target); - } - $Moo::HandleMoose::MOUSE{$target} = [ - grep defined, map Mouse::Util::find_meta($_), @_ - ] if Mouse::Util->can('find_meta'); -} - -sub _maybe_reset_handlemoose { - my ($class, $target) = @_; - if ($INC{'Moo/HandleMoose.pm'} && !$Moo::sification::disabled) { - Moo::HandleMoose::maybe_reinject_fake_metaclass_for($target); - } -} - -sub _accessor_maker_for { - my ($class, $target) = @_; - return unless $MAKERS{$target}; - $MAKERS{$target}{accessor} ||= do { - my $maker_class = do { - if (my $m = do { - require Sub::Defer; - if (my $defer_target = - (Sub::Defer::defer_info($target->can('new'))||[])->[0] - ) { - my ($pkg) = ($defer_target =~ /^(.*)::[^:]+$/); - $MAKERS{$pkg} && $MAKERS{$pkg}{accessor}; - } else { - undef; - } - }) { - ref($m); - } else { - require Method::Generate::Accessor; - 'Method::Generate::Accessor' - } - }; - $maker_class->new; - } -} - -sub _constructor_maker_for { - my ($class, $target) = @_; - return unless $MAKERS{$target}; - $MAKERS{$target}{constructor} ||= do { - require Method::Generate::Constructor; - - my %construct_opts = ( - package => $target, - accessor_generator => $class->_accessor_maker_for($target), - subconstructor_handler => ( - ' if ($Moo::MAKERS{$class}) {'."\n" - .' if ($Moo::MAKERS{$class}{constructor}) {'."\n" - .' package '.$target.';'."\n" - .' return $invoker->SUPER::new(@_);'."\n" - .' }'."\n" - .' '.$class.'->_constructor_maker_for($class);'."\n" - .' return $invoker->new(@_)'.";\n" - .' } elsif ($INC{"Moose.pm"} and my $meta = Class::MOP::get_metaclass_by_name($class)) {'."\n" - .' return $meta->new_object('."\n" - .' $class->can("BUILDARGS") ? $class->BUILDARGS(@_)'."\n" - .' : $class->Moo::Object::BUILDARGS(@_)'."\n" - .' );'."\n" - .' }'."\n" - ), - ); - - my $con; - my @isa = @{mro::get_linear_isa($target)}; - shift @isa; - if (my ($parent_new) = grep { *{_getglob($_.'::new')}{CODE} } @isa) { - if ($parent_new eq 'Moo::Object') { - # no special constructor needed - } - elsif (my $makers = $MAKERS{$parent_new}) { - $con = $makers->{constructor}; - $construct_opts{construction_string} = $con->construction_string - if $con; - } - elsif ($parent_new->can('BUILDALL')) { - $construct_opts{construction_builder} = sub { - my $inv = $target->can('BUILDARGS') ? '' : 'Moo::Object::'; - 'do {' - .' my $args = $class->'.$inv.'BUILDARGS(@_);' - .' $args->{__no_BUILD__} = 1;' - .' $invoker->'.$target.'::SUPER::new($args);' - .'}' - }; - } - else { - $construct_opts{construction_builder} = sub { - '$invoker->'.$target.'::SUPER::new(' - .($target->can('FOREIGNBUILDARGS') ? - '$class->FOREIGNBUILDARGS(@_)' : '@_') - .')' - }; - } - } - ($con ? ref($con) : 'Method::Generate::Constructor') - ->new(%construct_opts) - ->install_delayed - ->register_attribute_specs(%{$con?$con->all_attribute_specs:{}}) - } -} - -sub _concrete_methods_of { - my ($me, $role) = @_; - my $makers = $MAKERS{$role}; - # grab role symbol table - my $stash = _getstash($role); - # reverse so our keys become the values (captured coderefs) in case - # they got copied or re-used since - my $not_methods = { reverse %{$makers->{not_methods}||{}} }; - +{ - # grab all code entries that aren't in the not_methods list - map { - my $code = *{$stash->{$_}}{CODE}; - ( ! $code or exists $not_methods->{$code} ) ? () : ($_ => $code) - } grep !ref($stash->{$_}), keys %$stash - }; -} - -1; -__END__ - -#line 1079 diff --git a/software/Slic3r-1.3.0.64bit/lib/Moo/HandleMoose.pm b/software/Slic3r-1.3.0.64bit/lib/Moo/HandleMoose.pm deleted file mode 100644 index 5e0f199f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Moo/HandleMoose.pm +++ /dev/null @@ -1,229 +0,0 @@ -#line 1 "Moo/HandleMoose.pm" -package Moo::HandleMoose; -use Moo::_strictures; -use Moo::_Utils qw(_getstash); -use Sub::Quote qw(quotify); -use Carp qw(croak); - -our %TYPE_MAP; - -our $SETUP_DONE; - -sub import { return if $SETUP_DONE; inject_all(); $SETUP_DONE = 1; } - -sub inject_all { - croak "Can't inflate Moose metaclass with Moo::sification disabled" - if $Moo::sification::disabled; - require Class::MOP; - inject_fake_metaclass_for($_) - for grep $_ ne 'Moo::Object', keys %Moo::MAKERS; - inject_fake_metaclass_for($_) for keys %Moo::Role::INFO; - require Moose::Meta::Method::Constructor; - @Moo::HandleMoose::FakeConstructor::ISA = 'Moose::Meta::Method::Constructor'; - @Moo::HandleMoose::FakeMeta::ISA = 'Moose::Meta::Method::Meta'; -} - -sub maybe_reinject_fake_metaclass_for { - my ($name) = @_; - our %DID_INJECT; - if (delete $DID_INJECT{$name}) { - unless ($Moo::Role::INFO{$name}) { - Moo->_constructor_maker_for($name)->install_delayed; - } - inject_fake_metaclass_for($name); - } -} - -sub inject_fake_metaclass_for { - my ($name) = @_; - require Class::MOP; - require Moo::HandleMoose::FakeMetaClass; - Class::MOP::store_metaclass_by_name( - $name, bless({ name => $name }, 'Moo::HandleMoose::FakeMetaClass') - ); - require Moose::Util::TypeConstraints; - if ($Moo::Role::INFO{$name}) { - Moose::Util::TypeConstraints::find_or_create_does_type_constraint($name); - } else { - Moose::Util::TypeConstraints::find_or_create_isa_type_constraint($name); - } -} - -{ - package Moo::HandleMoose::FakeConstructor; - - sub _uninlined_body { \&Moose::Object::new } -} - -sub inject_real_metaclass_for { - my ($name) = @_; - our %DID_INJECT; - return Class::MOP::get_metaclass_by_name($name) if $DID_INJECT{$name}; - require Moose; require Moo; require Moo::Role; require Scalar::Util; - require Sub::Defer; - Class::MOP::remove_metaclass_by_name($name); - my ($am_role, $am_class, $meta, $attr_specs, $attr_order) = do { - if (my $info = $Moo::Role::INFO{$name}) { - my @attr_info = @{$info->{attributes}||[]}; - (1, 0, Moose::Meta::Role->initialize($name), - { @attr_info }, - [ @attr_info[grep !($_ % 2), 0..$#attr_info] ] - ) - } elsif ( my $cmaker = Moo->_constructor_maker_for($name) ) { - my $specs = $cmaker->all_attribute_specs; - (0, 1, Moose::Meta::Class->initialize($name), $specs, - [ sort { $specs->{$a}{index} <=> $specs->{$b}{index} } keys %$specs ] - ); - } else { - # This codepath is used if $name does not exist in $Moo::MAKERS - (0, 0, Moose::Meta::Class->initialize($name), {}, [] ) - } - }; - - { - local $DID_INJECT{$name} = 1; - foreach my $spec (values %$attr_specs) { - if (my $inflators = delete $spec->{moosify}) { - $_->($spec) for @$inflators; - } - } - - my %methods - = %{($am_role ? 'Moo::Role' : 'Moo')->_concrete_methods_of($name)}; - - # if stuff gets added afterwards, _maybe_reset_handlemoose should - # trigger the recreation of the metaclass but we need to ensure the - # Moo::Role cache is cleared so we don't confuse Moo itself. - if (my $info = $Moo::Role::INFO{$name}) { - delete $info->{methods}; - } - - # needed to ensure the method body is stable and get things named - $methods{$_} = Sub::Defer::undefer_sub($methods{$_}) - for - grep $_ ne 'new', - keys %methods; - my @attrs; - { - # This local is completely not required for roles but harmless - local @{_getstash($name)}{keys %methods}; - my %seen_name; - foreach my $attr_name (@$attr_order) { - $seen_name{$attr_name} = 1; - my %spec = %{$attr_specs->{$attr_name}}; - my %spec_map = ( - map { $_->name => $_->init_arg||$_->name } - ( - (grep { $_->has_init_arg } - $meta->attribute_metaclass->meta->get_all_attributes), - grep { exists($_->{init_arg}) ? defined($_->init_arg) : 1 } - map { - my $meta = Moose::Util::resolve_metatrait_alias('Attribute', $_) - ->meta; - map $meta->get_attribute($_), $meta->get_attribute_list - } @{$spec{traits}||[]} - ) - ); - # have to hard code this because Moose's role meta-model is lacking - $spec_map{traits} ||= 'traits'; - - $spec{is} = 'ro' if $spec{is} eq 'lazy' or $spec{is} eq 'rwp'; - my $coerce = $spec{coerce}; - if (my $isa = $spec{isa}) { - my $tc = $spec{isa} = do { - if (my $mapped = $TYPE_MAP{$isa}) { - my $type = $mapped->(); - unless ( Scalar::Util::blessed($type) - && $type->isa("Moose::Meta::TypeConstraint") ) { - croak "error inflating attribute '$attr_name' for package '$name': " - ."\$TYPE_MAP{$isa} did not return a valid type constraint'"; - } - $coerce ? $type->create_child_type(name => $type->name) : $type; - } else { - Moose::Meta::TypeConstraint->new( - constraint => sub { eval { &$isa; 1 } } - ); - } - }; - if ($coerce) { - $tc->coercion(Moose::Meta::TypeCoercion->new) - ->_compiled_type_coercion($coerce); - $spec{coerce} = 1; - } - } elsif ($coerce) { - my $attr = quotify($attr_name); - my $tc = Moose::Meta::TypeConstraint->new( - constraint => sub { die "This is not going to work" }, - inlined => sub { - 'my $r = $_[42]{'.$attr.'}; $_[42]{'.$attr.'} = 1; $r' - }, - ); - $tc->coercion(Moose::Meta::TypeCoercion->new) - ->_compiled_type_coercion($coerce); - $spec{isa} = $tc; - $spec{coerce} = 1; - } - %spec = - map { $spec_map{$_} => $spec{$_} } - grep { exists $spec_map{$_} } - keys %spec; - push @attrs, $meta->add_attribute($attr_name => %spec); - } - foreach my $mouse (do { our %MOUSE; @{$MOUSE{$name}||[]} }) { - foreach my $attr ($mouse->get_all_attributes) { - my %spec = %{$attr}; - delete @spec{qw( - associated_class associated_methods __METACLASS__ - provides curries - )}; - my $attr_name = delete $spec{name}; - next if $seen_name{$attr_name}++; - push @attrs, $meta->add_attribute($attr_name => %spec); - } - } - } - foreach my $meth_name (keys %methods) { - my $meth_code = $methods{$meth_name}; - $meta->add_method($meth_name, $meth_code); - } - - if ($am_role) { - my $info = $Moo::Role::INFO{$name}; - $meta->add_required_methods(@{$info->{requires}}); - foreach my $modifier (@{$info->{modifiers}}) { - my ($type, @args) = @$modifier; - my $code = pop @args; - $meta->${\"add_${type}_method_modifier"}($_, $code) for @args; - } - } - elsif ($am_class) { - foreach my $attr (@attrs) { - foreach my $method (@{$attr->associated_methods}) { - $method->{body} = $name->can($method->name); - } - } - bless( - $meta->find_method_by_name('new'), - 'Moo::HandleMoose::FakeConstructor', - ); - my $meta_meth; - if ( - $meta_meth = $meta->find_method_by_name('meta') - and $meta_meth->body == \&Moo::Object::meta - ) { - bless($meta_meth, 'Moo::HandleMoose::FakeMeta'); - } - # a combination of Moo and Moose may bypass a Moo constructor but still - # use a Moo DEMOLISHALL. We need to make sure this is loaded before - # global destruction. - require Method::Generate::DemolishAll; - } - $meta->add_role(Class::MOP::class_of($_)) - for grep !/\|/ && $_ ne $name, # reject Foo|Bar and same-role-as-self - keys %{$Moo::Role::APPLIED_TO{$name}} - } - $DID_INJECT{$name} = 1; - $meta; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Moo/HandleMoose/FakeMetaClass.pm b/software/Slic3r-1.3.0.64bit/lib/Moo/HandleMoose/FakeMetaClass.pm deleted file mode 100644 index 92db505b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Moo/HandleMoose/FakeMetaClass.pm +++ /dev/null @@ -1,35 +0,0 @@ -#line 1 "Moo/HandleMoose/FakeMetaClass.pm" -package Moo::HandleMoose::FakeMetaClass; -use Moo::_strictures; -use Carp (); -BEGIN { our @CARP_NOT = qw(Moo::HandleMoose) } - -sub DESTROY { } - -sub AUTOLOAD { - my ($meth) = (our $AUTOLOAD =~ /([^:]+)$/); - my $self = shift; - Carp::croak "Can't call $meth without object instance" - if !ref $self; - Carp::croak "Can't inflate Moose metaclass with Moo::sification disabled" - if $Moo::sification::disabled; - require Moo::HandleMoose; - Moo::HandleMoose::inject_real_metaclass_for($self->{name})->$meth(@_) -} -sub can { - my $self = shift; - return $self->SUPER::can(@_) - if !ref $self or $Moo::sification::disabled; - require Moo::HandleMoose; - Moo::HandleMoose::inject_real_metaclass_for($self->{name})->can(@_) -} -sub isa { - my $self = shift; - return $self->SUPER::isa(@_) - if !ref $self or $Moo::sification::disabled; - require Moo::HandleMoose; - Moo::HandleMoose::inject_real_metaclass_for($self->{name})->isa(@_) -} -sub make_immutable { $_[0] } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Moo/HandleMoose/_TypeMap.pm b/software/Slic3r-1.3.0.64bit/lib/Moo/HandleMoose/_TypeMap.pm deleted file mode 100644 index 86aac8de..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Moo/HandleMoose/_TypeMap.pm +++ /dev/null @@ -1,77 +0,0 @@ -#line 1 "Moo/HandleMoose/_TypeMap.pm" -package Moo::HandleMoose::_TypeMap; -use Moo::_strictures; - -package - Moo::HandleMoose; -our %TYPE_MAP; - -package Moo::HandleMoose::_TypeMap; - -use Scalar::Util (); -use Config; - -our %WEAK_TYPES; - -sub _str_to_ref { - my $in = shift; - return $in - if ref $in; - - if ($in =~ /(?:^|=)([A-Z]+)\(0x([0-9a-zA-Z]+)\)$/) { - my $type = $1; - my $id = do { no warnings 'portable'; hex "$2" }; - require B; - my $sv = bless \$id, 'B::SV'; - my $ref = eval { $sv->object_2svref }; - if (!defined $ref or Scalar::Util::reftype($ref) ne $type) { - die <<'END_ERROR'; -Moo initialization encountered types defined in a parent thread - ensure that -Moo is require()d before any further thread spawns following a type definition. -END_ERROR - } - return $ref; - } - return $in; -} - -sub TIEHASH { bless {}, $_[0] } - -sub STORE { - my ($self, $key, $value) = @_; - my $type = _str_to_ref($key); - $WEAK_TYPES{$type} = $type; - Scalar::Util::weaken($WEAK_TYPES{$type}) - if ref $type; - $self->{$key} = $value; -} - -sub FETCH { $_[0]->{$_[1]} } -sub FIRSTKEY { my $a = scalar keys %{$_[0]}; each %{$_[0]} } -sub NEXTKEY { each %{$_[0]} } -sub EXISTS { exists $_[0]->{$_[1]} } -sub DELETE { delete $_[0]->{$_[1]} } -sub CLEAR { %{$_[0]} = () } -sub SCALAR { scalar %{$_[0]} } - -sub CLONE { - my @types = map { - defined $WEAK_TYPES{$_} ? ($WEAK_TYPES{$_} => $TYPE_MAP{$_}) : () - } keys %TYPE_MAP; - %WEAK_TYPES = (); - %TYPE_MAP = @types; -} - -sub DESTROY { - my %types = %{$_[0]}; - untie %TYPE_MAP; - %TYPE_MAP = %types; -} - -if ($Config{useithreads}) { - my @types = %TYPE_MAP; - tie %TYPE_MAP, __PACKAGE__; - %TYPE_MAP = @types; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Moo/Object.pm b/software/Slic3r-1.3.0.64bit/lib/Moo/Object.pm deleted file mode 100644 index ecbfbc69..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Moo/Object.pm +++ /dev/null @@ -1,78 +0,0 @@ -#line 1 "Moo/Object.pm" -package Moo::Object; - -use Moo::_strictures; -use Carp (); - -our %NO_BUILD; -our %NO_DEMOLISH; -our $BUILD_MAKER; -our $DEMOLISH_MAKER; - -sub new { - my $class = shift; - unless (exists $NO_DEMOLISH{$class}) { - unless ($NO_DEMOLISH{$class} = !$class->can('DEMOLISH')) { - ($DEMOLISH_MAKER ||= do { - require Method::Generate::DemolishAll; - Method::Generate::DemolishAll->new - })->generate_method($class); - } - } - my $proto = $class->BUILDARGS(@_); - $NO_BUILD{$class} and - return bless({}, $class); - $NO_BUILD{$class} = !$class->can('BUILD') unless exists $NO_BUILD{$class}; - $NO_BUILD{$class} - ? bless({}, $class) - : bless({}, $class)->BUILDALL($proto); -} - -# Inlined into Method::Generate::Constructor::_generate_args() - keep in sync -sub BUILDARGS { - my $class = shift; - scalar @_ == 1 - ? ref $_[0] eq 'HASH' - ? { %{ $_[0] } } - : Carp::croak("Single parameters to new() must be a HASH ref" - . " data => ". $_[0]) - : @_ % 2 - ? Carp::croak("The new() method for $class expects a hash reference or a" - . " key/value list. You passed an odd number of arguments") - : {@_} - ; -} - -sub BUILDALL { - my $self = shift; - $self->${\(($BUILD_MAKER ||= do { - require Method::Generate::BuildAll; - Method::Generate::BuildAll->new - })->generate_method(ref($self)))}(@_); -} - -sub DEMOLISHALL { - my $self = shift; - $self->${\(($DEMOLISH_MAKER ||= do { - require Method::Generate::DemolishAll; - Method::Generate::DemolishAll->new - })->generate_method(ref($self)))}(@_); -} - -sub does { - return !!0 - unless ($INC{'Moose/Role.pm'} || $INC{'Role/Tiny.pm'}); - require Moo::Role; - my $does = Moo::Role->can("does_role"); - { no warnings 'redefine'; *does = $does } - goto &$does; -} - -# duplicated in Moo::Role -sub meta { - require Moo::HandleMoose::FakeMetaClass; - my $class = ref($_[0])||$_[0]; - bless({ name => $class }, 'Moo::HandleMoose::FakeMetaClass'); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Moo/Role.pm b/software/Slic3r-1.3.0.64bit/lib/Moo/Role.pm deleted file mode 100644 index 6e6e2125..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Moo/Role.pm +++ /dev/null @@ -1,457 +0,0 @@ -#line 1 "Moo/Role.pm" -package Moo::Role; - -use Moo::_strictures; -use Moo::_Utils qw( - _getglob - _getstash - _install_coderef - _install_modifier - _load_module - _name_coderef - _set_loaded - _unimport_coderefs -); -use Carp qw(croak); -use Role::Tiny (); -BEGIN { our @ISA = qw(Role::Tiny) } -BEGIN { - our @CARP_NOT = qw( - Method::Generate::Accessor - Method::Generate::Constructor - Moo::sification - Moo::_Utils - ); -} - -our $VERSION = '2.003001'; -$VERSION = eval $VERSION; - -require Moo::sification; -Moo::sification->import; - -BEGIN { - *INFO = \%Role::Tiny::INFO; - *APPLIED_TO = \%Role::Tiny::APPLIED_TO; - *COMPOSED = \%Role::Tiny::COMPOSED; - *ON_ROLE_CREATE = \@Role::Tiny::ON_ROLE_CREATE; -} - -our %INFO; -our %APPLIED_TO; -our %APPLY_DEFAULTS; -our %COMPOSED; -our @ON_ROLE_CREATE; - -sub _install_tracked { - my ($target, $name, $code) = @_; - $INFO{$target}{exports}{$name} = $code; - _install_coderef "${target}::${name}" => "Moo::Role::${name}" => $code; -} - -sub import { - my $target = caller; - if ($Moo::MAKERS{$target} and $Moo::MAKERS{$target}{is_class}) { - croak "Cannot import Moo::Role into a Moo class"; - } - _set_loaded(caller); - goto &Role::Tiny::import; -} - -sub _install_subs { - my ($me, $target) = @_; - _install_tracked $target => has => sub { - my $name_proto = shift; - my @name_proto = ref $name_proto eq 'ARRAY' ? @$name_proto : $name_proto; - if (@_ % 2 != 0) { - croak("Invalid options for " . join(', ', map "'$_'", @name_proto) - . " attribute(s): even number of arguments expected, got " . scalar @_) - } - my %spec = @_; - foreach my $name (@name_proto) { - my $spec_ref = @name_proto > 1 ? +{%spec} : \%spec; - ($INFO{$target}{accessor_maker} ||= do { - require Method::Generate::Accessor; - Method::Generate::Accessor->new - })->generate_method($target, $name, $spec_ref); - push @{$INFO{$target}{attributes}||=[]}, $name, $spec_ref; - $me->_maybe_reset_handlemoose($target); - } - }; - # install before/after/around subs - foreach my $type (qw(before after around)) { - _install_tracked $target => $type => sub { - push @{$INFO{$target}{modifiers}||=[]}, [ $type => @_ ]; - $me->_maybe_reset_handlemoose($target); - }; - } - _install_tracked $target => requires => sub { - push @{$INFO{$target}{requires}||=[]}, @_; - $me->_maybe_reset_handlemoose($target); - }; - _install_tracked $target => with => sub { - $me->apply_roles_to_package($target, @_); - $me->_maybe_reset_handlemoose($target); - }; - *{_getglob("${target}::meta")} = $me->can('meta'); -} - -push @ON_ROLE_CREATE, sub { - my $target = shift; - if ($INC{'Moo/HandleMoose.pm'} && !$Moo::sification::disabled) { - Moo::HandleMoose::inject_fake_metaclass_for($target); - } -}; - -# duplicate from Moo::Object -sub meta { - require Moo::HandleMoose::FakeMetaClass; - my $class = ref($_[0])||$_[0]; - bless({ name => $class }, 'Moo::HandleMoose::FakeMetaClass'); -} - -sub unimport { - my $target = caller; - _unimport_coderefs($target, $INFO{$target}); -} - -sub _maybe_reset_handlemoose { - my ($class, $target) = @_; - if ($INC{'Moo/HandleMoose.pm'} && !$Moo::sification::disabled) { - Moo::HandleMoose::maybe_reinject_fake_metaclass_for($target); - } -} - -sub methods_provided_by { - my ($self, $role) = @_; - _load_module($role); - $self->_inhale_if_moose($role); - croak "${role} is not a Moo::Role" unless $self->is_role($role); - return $self->SUPER::methods_provided_by($role); -} - -sub is_role { - my ($self, $role) = @_; - $self->_inhale_if_moose($role); - $self->SUPER::is_role($role); -} - -sub _inhale_if_moose { - my ($self, $role) = @_; - my $meta; - if (!$self->SUPER::is_role($role) - and ( - $INC{"Moose.pm"} - and $meta = Class::MOP::class_of($role) - and ref $meta ne 'Moo::HandleMoose::FakeMetaClass' - and $meta->isa('Moose::Meta::Role') - ) - or ( - Mouse::Util->can('find_meta') - and $meta = Mouse::Util::find_meta($role) - and $meta->isa('Mouse::Meta::Role') - ) - ) { - my $is_mouse = $meta->isa('Mouse::Meta::Role'); - $INFO{$role}{methods} = { - map +($_ => $role->can($_)), - grep $role->can($_), - grep !($is_mouse && $_ eq 'meta'), - grep !$meta->get_method($_)->isa('Class::MOP::Method::Meta'), - $meta->get_method_list - }; - $APPLIED_TO{$role} = { - map +($_->name => 1), $meta->calculate_all_roles - }; - $INFO{$role}{requires} = [ $meta->get_required_method_list ]; - $INFO{$role}{attributes} = [ - map +($_ => do { - my $attr = $meta->get_attribute($_); - my $spec = { %{ $is_mouse ? $attr : $attr->original_options } }; - - if ($spec->{isa}) { - require Sub::Quote; - - my $get_constraint = do { - my $pkg = $is_mouse - ? 'Mouse::Util::TypeConstraints' - : 'Moose::Util::TypeConstraints'; - _load_module($pkg); - $pkg->can('find_or_create_isa_type_constraint'); - }; - - my $tc = $get_constraint->($spec->{isa}); - my $check = $tc->_compiled_type_constraint; - my $tc_var = '$_check_for_'.Sub::Quote::sanitize_identifier($tc->name); - - $spec->{isa} = Sub::Quote::quote_sub( - qq{ - &${tc_var} or Carp::croak "Type constraint failed for \$_[0]" - }, - { $tc_var => \$check }, - { - package => $role, - }, - ); - - if ($spec->{coerce}) { - - # Mouse has _compiled_type_coercion straight on the TC object - $spec->{coerce} = $tc->${\( - $tc->can('coercion')||sub { $_[0] } - )}->_compiled_type_coercion; - } - } - $spec; - }), $meta->get_attribute_list - ]; - my $mods = $INFO{$role}{modifiers} = []; - foreach my $type (qw(before after around)) { - # Mouse pokes its own internals so we have to fall back to doing - # the same thing in the absence of the Moose API method - my $map = $meta->${\( - $meta->can("get_${type}_method_modifiers_map") - or sub { shift->{"${type}_method_modifiers"} } - )}; - foreach my $method (keys %$map) { - foreach my $mod (@{$map->{$method}}) { - push @$mods, [ $type => $method => $mod ]; - } - } - } - $INFO{$role}{inhaled_from_moose} = 1; - $INFO{$role}{is_role} = 1; - } -} - -sub _maybe_make_accessors { - my ($self, $target, $role) = @_; - my $m; - if ($INFO{$role} && $INFO{$role}{inhaled_from_moose} - or $INC{"Moo.pm"} - and $m = Moo->_accessor_maker_for($target) - and ref($m) ne 'Method::Generate::Accessor') { - $self->_make_accessors($target, $role); - } -} - -sub _make_accessors_if_moose { - my ($self, $target, $role) = @_; - if ($INFO{$role} && $INFO{$role}{inhaled_from_moose}) { - $self->_make_accessors($target, $role); - } -} - -sub _make_accessors { - my ($self, $target, $role) = @_; - my $acc_gen = ($Moo::MAKERS{$target}{accessor} ||= do { - require Method::Generate::Accessor; - Method::Generate::Accessor->new - }); - my $con_gen = $Moo::MAKERS{$target}{constructor}; - my @attrs = @{$INFO{$role}{attributes}||[]}; - while (my ($name, $spec) = splice @attrs, 0, 2) { - # needed to ensure we got an index for an arrayref based generator - if ($con_gen) { - $spec = $con_gen->all_attribute_specs->{$name}; - } - $acc_gen->generate_method($target, $name, $spec); - } -} - -sub _undefer_subs { - my ($self, $target, $role) = @_; - if ($INC{'Sub/Defer.pm'}) { - Sub::Defer::undefer_package($role); - } -} - -sub role_application_steps { - qw(_handle_constructor _undefer_subs _maybe_make_accessors), - $_[0]->SUPER::role_application_steps; -} - -sub apply_roles_to_package { - my ($me, $to, @roles) = @_; - foreach my $role (@roles) { - _load_module($role); - $me->_inhale_if_moose($role); - croak "${role} is not a Moo::Role" unless $me->is_role($role); - } - $me->SUPER::apply_roles_to_package($to, @roles); -} - -sub apply_single_role_to_package { - my ($me, $to, $role) = @_; - _load_module($role); - $me->_inhale_if_moose($role); - croak "${role} is not a Moo::Role" unless $me->is_role($role); - $me->SUPER::apply_single_role_to_package($to, $role); -} - -sub create_class_with_roles { - my ($me, $superclass, @roles) = @_; - - my ($new_name, $compose_name) = $me->_composite_name($superclass, @roles); - - return $new_name if $COMPOSED{class}{$new_name}; - - foreach my $role (@roles) { - _load_module($role); - $me->_inhale_if_moose($role); - croak "${role} is not a Moo::Role" unless $me->is_role($role); - } - - my $m; - if ($INC{"Moo.pm"} - and $m = Moo->_accessor_maker_for($superclass) - and ref($m) ne 'Method::Generate::Accessor') { - # old fashioned way time. - @{*{_getglob("${new_name}::ISA")}{ARRAY}} = ($superclass); - $Moo::MAKERS{$new_name} = {is_class => 1}; - $me->apply_roles_to_package($new_name, @roles); - } - else { - $me->SUPER::create_class_with_roles($superclass, @roles); - $Moo::MAKERS{$new_name} = {is_class => 1}; - $me->_handle_constructor($new_name, $_) for @roles; - } - - if ($INC{'Moo/HandleMoose.pm'} && !$Moo::sification::disabled) { - Moo::HandleMoose::inject_fake_metaclass_for($new_name); - } - $COMPOSED{class}{$new_name} = 1; - _set_loaded($new_name, (caller)[1]); - return $new_name; -} - -sub apply_roles_to_object { - my ($me, $object, @roles) = @_; - my $new = $me->SUPER::apply_roles_to_object($object, @roles); - my $class = ref $new; - _set_loaded($class, (caller)[1]); - - my $apply_defaults = exists $APPLY_DEFAULTS{$class} ? $APPLY_DEFAULTS{$class} - : $APPLY_DEFAULTS{$class} = do { - my %attrs = map { @{$INFO{$_}{attributes}||[]} } @roles; - - if ($INC{'Moo.pm'} - and keys %attrs - and my $con_gen = Moo->_constructor_maker_for($class) - and my $m = Moo->_accessor_maker_for($class)) { - - my $specs = $con_gen->all_attribute_specs; - - my %captures; - my $code = join('', - ( map { - my $name = $_; - my $spec = $specs->{$name}; - if ($m->has_eager_default($name, $spec)) { - my ($has, $has_cap) - = $m->generate_simple_has('$_[0]', $name, $spec); - my ($set, $pop_cap) - = $m->generate_use_default('$_[0]', $name, $spec, $has); - - @captures{keys %$has_cap, keys %$pop_cap} - = (values %$has_cap, values %$pop_cap); - "($set),"; - } - else { - (); - } - } sort keys %attrs ), - ); - if ($code) { - require Sub::Quote; - Sub::Quote::quote_sub( - "${class}::_apply_defaults", - "no warnings 'void';\n$code", - \%captures, - { - package => $class, - no_install => 1, - } - ); - } - else { - 0; - } - } - else { - 0; - } - }; - if ($apply_defaults) { - local $Carp::Internal{+__PACKAGE__} = 1; - local $Carp::Internal{$class} = 1; - $new->$apply_defaults; - } - return $new; -} - -sub _composable_package_for { - my ($self, $role) = @_; - my $composed_name = 'Role::Tiny::_COMPOSABLE::'.$role; - return $composed_name if $COMPOSED{role}{$composed_name}; - $self->_make_accessors_if_moose($composed_name, $role); - $self->SUPER::_composable_package_for($role); -} - -sub _install_single_modifier { - my ($me, @args) = @_; - _install_modifier(@args); -} - -sub _install_does { - my ($me, $to) = @_; - - # If Role::Tiny actually installed the DOES, give it a name - my $new = $me->SUPER::_install_does($to) or return; - return _name_coderef("${to}::DOES", $new); -} - -sub does_role { - my ($proto, $role) = @_; - return 1 - if Role::Tiny::does_role($proto, $role); - my $meta; - if ($INC{'Moose.pm'} - and $meta = Class::MOP::class_of($proto) - and ref $meta ne 'Moo::HandleMoose::FakeMetaClass' - and $meta->can('does_role') - ) { - return $meta->does_role($role); - } - return 0; -} - -sub _handle_constructor { - my ($me, $to, $role) = @_; - my $attr_info = $INFO{$role} && $INFO{$role}{attributes}; - return unless $attr_info && @$attr_info; - my $info = $INFO{$to}; - my $con = $INC{"Moo.pm"} && Moo->_constructor_maker_for($to); - my %existing - = $info ? @{$info->{attributes} || []} - : $con ? %{$con->all_attribute_specs || {}} - : (); - - my @attr_info = - map { @{$attr_info}[$_, $_+1] } - grep { ! $existing{$attr_info->[$_]} } - map { 2 * $_ } 0..@$attr_info/2-1; - - if ($info) { - push @{$info->{attributes}||=[]}, @attr_info; - } - elsif ($con) { - # shallow copy of the specs since the constructor will assign an index - $con->register_attribute_specs(map ref() ? { %$_ } : $_, @attr_info); - } -} - -1; -__END__ - -#line 551 diff --git a/software/Slic3r-1.3.0.64bit/lib/Moo/_Utils.pm b/software/Slic3r-1.3.0.64bit/lib/Moo/_Utils.pm deleted file mode 100644 index f3cd61aa..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Moo/_Utils.pm +++ /dev/null @@ -1,128 +0,0 @@ -#line 1 "Moo/_Utils.pm" -package Moo::_Utils; -use Moo::_strictures; - -{ - no strict 'refs'; - sub _getglob { \*{$_[0]} } - sub _getstash { \%{"$_[0]::"} } -} - -BEGIN { - my ($su, $sn); - $su = $INC{'Sub/Util.pm'} && defined &Sub::Util::set_subname - or $sn = $INC{'Sub/Name.pm'} - or $su = eval { require Sub::Util; } && defined &Sub::Util::set_subname - or $sn = eval { require Sub::Name; }; - - *_subname = $su ? \&Sub::Util::set_subname - : $sn ? \&Sub::Name::subname - : sub { $_[1] }; - *_CAN_SUBNAME = ($su || $sn) ? sub(){1} : sub(){0}; -} - -use Module::Runtime qw(use_package_optimistically module_notional_filename); - -use Devel::GlobalDestruction (); -use Exporter qw(import); -use Config; -use Carp qw(croak); - -our @EXPORT = qw( - _getglob _install_modifier _load_module _maybe_load_module - _getstash _install_coderef _name_coderef - _unimport_coderefs _set_loaded -); - -sub _install_modifier { - my ($into, $type, $name, $code) = @_; - - if ($INC{'Sub/Defer.pm'} and my $to_modify = $into->can($name)) { # CMM will throw for us if not - Sub::Defer::undefer_sub($to_modify); - } - - require Class::Method::Modifiers; - Class::Method::Modifiers::install_modifier(@_); -} - -sub _load_module { - my $module = $_[0]; - my $file = eval { module_notional_filename($module) } or croak $@; - use_package_optimistically($module); - return 1 - if $INC{$file}; - my $error = $@ || "Can't locate $file"; - - # can't just ->can('can') because a sub-package Foo::Bar::Baz - # creates a 'Baz::' key in Foo::Bar's symbol table - my $stash = _getstash($module)||{}; - return 1 if grep +(!ref($_) and *$_{CODE}), values %$stash; - return 1 - if $INC{"Moose.pm"} && Class::MOP::class_of($module) - or Mouse::Util->can('find_meta') && Mouse::Util::find_meta($module); - croak $error; -} - -our %MAYBE_LOADED; -sub _maybe_load_module { - my $module = $_[0]; - return $MAYBE_LOADED{$module} - if exists $MAYBE_LOADED{$module}; - if(! eval { use_package_optimistically($module) }) { - warn "$module exists but failed to load with error: $@"; - } - elsif ( $INC{module_notional_filename($module)} ) { - return $MAYBE_LOADED{$module} = 1; - } - return $MAYBE_LOADED{$module} = 0; -} - -sub _set_loaded { - $INC{Module::Runtime::module_notional_filename($_[0])} ||= $_[1]; -} - -sub _install_coderef { - my ($glob, $code) = (_getglob($_[0]), _name_coderef(@_)); - no warnings 'redefine'; - if (*{$glob}{CODE}) { - *{$glob} = $code; - } - # perl will sometimes warn about mismatched prototypes coming from the - # inheritance cache, so disable them if we aren't redefining a sub - else { - no warnings 'prototype'; - *{$glob} = $code; - } -} - -sub _name_coderef { - shift if @_ > 2; # three args is (target, name, sub) - _CAN_SUBNAME ? _subname(@_) : $_[1]; -} - -sub _unimport_coderefs { - my ($target, $info) = @_; - return unless $info and my $exports = $info->{exports}; - my %rev = reverse %$exports; - my $stash = _getstash($target); - foreach my $name (keys %$exports) { - if ($stash->{$name} and defined(&{$stash->{$name}})) { - if ($rev{$target->can($name)}) { - my $old = delete $stash->{$name}; - my $full_name = join('::',$target,$name); - # Copy everything except the code slot back into place (e.g. $has) - foreach my $type (qw(SCALAR HASH ARRAY IO)) { - next unless defined(*{$old}{$type}); - no strict 'refs'; - *$full_name = *{$old}{$type}; - } - } - } - } -} - -if ($Config{useithreads}) { - require Moo::HandleMoose::_TypeMap; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Moo/_mro.pm b/software/Slic3r-1.3.0.64bit/lib/Moo/_mro.pm deleted file mode 100644 index fe38ebe0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Moo/_mro.pm +++ /dev/null @@ -1,11 +0,0 @@ -#line 1 "Moo/_mro.pm" -package Moo::_mro; -use Moo::_strictures; - -if ("$]" >= 5.010_000) { - require mro; -} else { - require MRO::Compat; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Moo/_strictures.pm b/software/Slic3r-1.3.0.64bit/lib/Moo/_strictures.pm deleted file mode 100644 index eec48f7c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Moo/_strictures.pm +++ /dev/null @@ -1,20 +0,0 @@ -#line 1 "Moo/_strictures.pm" -package Moo::_strictures; -use strict; -use warnings; - -sub import { - if ($ENV{MOO_FATAL_WARNINGS}) { - require strictures; - strictures->VERSION(2); - @_ = ('strictures'); - goto &strictures::import; - } - else { - strict->import; - warnings->import; - warnings->unimport('once'); - } -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Moo/sification.pm b/software/Slic3r-1.3.0.64bit/lib/Moo/sification.pm deleted file mode 100644 index 0d151c97..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Moo/sification.pm +++ /dev/null @@ -1,35 +0,0 @@ -#line 1 "Moo/sification.pm" -package Moo::sification; - -use Moo::_strictures; -no warnings 'once'; -use Devel::GlobalDestruction qw(in_global_destruction); -use Carp qw(croak); -BEGIN { our @CARP_NOT = qw(Moo::HandleMoose) } - -sub unimport { - croak "Can't disable Moo::sification after inflation has been done" - if $Moo::HandleMoose::SETUP_DONE; - our $disabled = 1; -} - -sub Moo::HandleMoose::AuthorityHack::DESTROY { - unless (our $disabled or in_global_destruction) { - require Moo::HandleMoose; - Moo::HandleMoose->import; - } -} - -sub import { - return - if our $setup_done; - if ($INC{"Moose.pm"}) { - require Moo::HandleMoose; - Moo::HandleMoose->import; - } else { - $Moose::AUTHORITY = bless({}, 'Moo::HandleMoose::AuthorityHack'); - } - $setup_done = 1; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Mozilla/CA.pm b/software/Slic3r-1.3.0.64bit/lib/Mozilla/CA.pm deleted file mode 100644 index 994affe6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Mozilla/CA.pm +++ /dev/null @@ -1,23 +0,0 @@ -#line 1 "Mozilla/CA.pm" -package Mozilla::CA; - -use strict; -our $VERSION = '20160104'; - -use Cwd (); -use File::Spec (); -use File::Basename qw(dirname); - -sub SSL_ca_file { - my $file = File::Spec->catfile($ENV{PAR_TEMP}, qw(inc lib Mozilla CA cacert.pem)); - if (!File::Spec->file_name_is_absolute($file)) { - $file = File::Spec->catfile(Cwd::cwd(), $file); - } - return $file; -} - -1; - -__END__ - -#line 75 \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/lib/Mozilla/CA/cacert.pem b/software/Slic3r-1.3.0.64bit/lib/Mozilla/CA/cacert.pem deleted file mode 100644 index 92536b7e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Mozilla/CA/cacert.pem +++ /dev/null @@ -1,3952 +0,0 @@ -## -## Bundle of CA Root Certificates -## -## Certificate data from Mozilla as of: Mon Jan 4 01:17:06 2016 -## -## This is a bundle of X.509 certificates of public Certificate Authorities -## (CA). These were automatically extracted from Mozilla's root certificates -## file (certdata.txt). This file can be found in the mozilla source tree: -## http://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt -## -## It contains the certificates in PEM format and therefore -## can be directly used with curl / libcurl / php_curl, or with -## an Apache+mod_ssl webserver for SSL client authentication. -## Just configure this file as the SSLCACertificateFile. -## -## Conversion done with mk-ca-bundle.pl version 1.25. -## SHA1: 6d7d2f0a4fae587e7431be191a081ac1257d300a -## - - -Equifax Secure CA -================= ------BEGIN CERTIFICATE----- -MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJVUzEQMA4GA1UE -ChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5 -MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoT -B0VxdWlmYXgxLTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCB -nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPR -fM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW -8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAG -A1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UE -CxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoG -A1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvS -spXXR9gjIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMB -Af8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GBAFjOKer89961 -zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y7qj/WsjTVbJmcVfewCHrPSqnI0kB -BIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee95 -70+sB3c4 ------END CERTIFICATE----- - -GlobalSign Root CA -================== ------BEGIN CERTIFICATE----- -MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx -GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds -b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV -BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD -VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa -DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc -THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb -Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP -c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX -gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF -AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj -Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG -j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH -hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC -X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== ------END CERTIFICATE----- - -GlobalSign Root CA - R2 -======================= ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv -YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh -bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT -aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln -bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 -ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp -s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN -S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL -TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C -ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E -FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i -YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN -BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp -9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu -01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 -9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 -TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== ------END CERTIFICATE----- - -Verisign Class 3 Public Primary Certification Authority - G3 -============================================================ ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy -dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 -EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc -cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw -EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj -055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA -ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f -j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC -/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 -xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa -t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== ------END CERTIFICATE----- - -Verisign Class 4 Public Primary Certification Authority - G3 -============================================================ ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy -dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS -tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM -8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW -Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX -Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA -j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt -mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm -fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd -RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG -UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg== ------END CERTIFICATE----- - -Entrust.net Premium 2048 Secure Server CA -========================================= ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u -ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp -bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV -BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx -NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 -d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl -MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u -ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL -Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr -hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW -nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi -VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ -KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy -T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf -zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT -J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e -nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= ------END CERTIFICATE----- - -Baltimore CyberTrust Root -========================= ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE -ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li -ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC -SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs -dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME -uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB -UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C -G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 -XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr -l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI -VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB -BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh -cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 -hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa -Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H -RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp ------END CERTIFICATE----- - -AddTrust Low-Value Services Root -================================ ------BEGIN CERTIFICATE----- -MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRU -cnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQsw -CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBO -ZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY6 -54eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWr -oulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1 -Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJui -GMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8w -HQYDVR0OBBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTAD -AQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQswCQYDVQQGEwJT -RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEw -HwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxt -ZBsfzQ3duQH6lmM0MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph -iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY -eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJlpz/+0WatC7xr -mYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vj -ccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk= ------END CERTIFICATE----- - -AddTrust External Root -====================== ------BEGIN CERTIFICATE----- -MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD -VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw -NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU -cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg -Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 -+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw -Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo -aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy -2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 -7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P -BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL -VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk -VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB -IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl -j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 -6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 -e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u -G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= ------END CERTIFICATE----- - -AddTrust Public Services Root -============================= ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSAwHgYDVQQDExdBZGRU -cnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJ -BgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5l -dHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbu -nyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1i -d9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSG -Aa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAw -HM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0G -A1UdDgQWBBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB -/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkGA1UEBhMCU0Ux -FDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29yazEgMB4G -A1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4 -JNojVhaTdt02KLmuG7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL -+YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao -GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh4SINhwBk/ox9 -Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9H -EufOX1362KqxMy3ZdvJOOjMMK7MtkAY= ------END CERTIFICATE----- - -AddTrust Qualified Certificates Root -==================================== ------BEGIN CERTIFICATE----- -MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEUMBIGA1UEChML -QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSMwIQYDVQQDExpBZGRU -cnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcx -CzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ -IE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG -9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx -64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3 -KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1tUvznoD1o -L/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GR -wVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HU -MIHRMB0GA1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkwZzELMAkGA1UE -BhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRUcnVzdCBUVFAgTmV0d29y -azEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQAD -ggEBABmrder4i2VhlRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG -GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X -dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3P6CxB9bpT9ze -RXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDB -iFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5noxqE= ------END CERTIFICATE----- - -Entrust Root Certification Authority -==================================== ------BEGIN CERTIFICATE----- -MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV -BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw -b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG -A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 -MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu -MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu -Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v -dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz -A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww -Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 -j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN -rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw -DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 -MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH -hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA -A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM -Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa -v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS -W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 -tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 ------END CERTIFICATE----- - -RSA Security 2048 v3 -==================== ------BEGIN CERTIFICATE----- -MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6MRkwFwYDVQQK -ExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAy -MjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAb -BgNVBAsTFFJTQSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC -AQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7 -Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgb -WhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iH -KrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP -+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/ -MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4E -FgQUB8NRMKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmY -v/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5gEydxiKRz44Rj -0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+f00/FGj1EVDVwfSQpQgdMWD/YIwj -VAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395 -nzIlQnQFgCi/vcEkllgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA -pKnXwiJPZ9d37CAFYd4= ------END CERTIFICATE----- - -GeoTrust Global CA -================== ------BEGIN CERTIFICATE----- -MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK -Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw -MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j -LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo -BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet -8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc -T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU -vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD -AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk -DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q -zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 -d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 -mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p -XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm -Mw== ------END CERTIFICATE----- - -GeoTrust Global CA 2 -==================== ------BEGIN CERTIFICATE----- -MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN -R2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwHhcNMDQwMzA0MDUw -MDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j -LjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/ -NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1k -LUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFA -Vvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdLFnopsk/b -HdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQF -MAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNH -K266ZUapEBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7 -srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/NgdRN3ggX+d6Yvh -ZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywNA0ZF66D0f0hExghAzN4bcLUprbqL -OzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkC -x1YAzUm5s2x7UwQa4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF -H4z1Ir+rzoPz4iIprn2DQKi6bA== ------END CERTIFICATE----- - -GeoTrust Universal CA -===================== ------BEGIN CERTIFICATE----- -MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN -R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 -MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu -Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t -JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e -RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs -7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d -8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V -qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga -Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB -Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu -KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 -ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 -XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB -hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc -aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 -qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL -oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK -xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF -KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 -DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK -xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU -p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI -P/rmMuGNG2+k5o7Y+SlIis5z/iw= ------END CERTIFICATE----- - -GeoTrust Universal CA 2 -======================= ------BEGIN CERTIFICATE----- -MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN -R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 -MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg -SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA -A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 -DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 -j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q -JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a -QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 -WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP -20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn -ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC -SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG -8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 -+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E -BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z -dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ -4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ -mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq -A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg -Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP -pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d -FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp -gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm -X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS ------END CERTIFICATE----- - -Visa eCommerce Root -=================== ------BEGIN CERTIFICATE----- -MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBrMQswCQYDVQQG -EwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2Ug -QXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2 -WhcNMjIwNjI0MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMm -VmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv -bW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfL -F9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8b -RaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81q6UCzyr0 -TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI -/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzs -GHxBvfaLdXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG -MB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOCAQEAX/FBfXxc -CLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcRzCSs00Rsca4BIGsDoo8Ytyk6feUW -YFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pz -zkWKsKZJ/0x9nXGIxHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu -YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt -398znM/jra6O1I7mT1GvFpLgXPYHDw== ------END CERTIFICATE----- - -Certum Root CA -============== ------BEGIN CERTIFICATE----- -MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQK -ExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBDQTAeFw0wMjA2MTExMDQ2Mzla -Fw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8u -by4xEjAQBgNVBAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6x -wS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdL -kKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ -89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/K -Uz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu/qpGWX7P -NSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq -hkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+ -GXYkHAQaTOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvg -GrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqTE5s7FCMTY5w/ -0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5xO/fIR/RpbxXyEV6DHpx8Uq79AtoS -qFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs6GAqm4VKQPNriiTsBhYscw== ------END CERTIFICATE----- - -Comodo AAA Services root -======================== ------BEGIN CERTIFICATE----- -MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS -R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg -TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw -MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl -c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV -BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG -C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs -i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW -Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH -Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK -Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f -BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl -cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz -LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm -7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz -Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z -8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C -12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== ------END CERTIFICATE----- - -Comodo Secure Services root -=========================== ------BEGIN CERTIFICATE----- -MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS -R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg -TGltaXRlZDEkMCIGA1UEAwwbU2VjdXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAw -MDAwMFoXDTI4MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu -Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxJDAi -BgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAMBxM4KK0HDrc4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP -9nQ95IDC+DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8j6ysNstc -rbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWCiIxe004MeuoIkbY2qitC++rC -oznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtGCd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3V -p6ea5EQz6YiO/O1R65NxTq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4E -FgQUPNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w -gYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2RvY2EuY29tL1NlY3VyZUNlcnRpZmlj -YXRlU2VydmljZXMuY3JsMDmgN6A1hjNodHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlm -aWNhdGVTZXJ2aWNlcy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm -4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiFGv45jN5bBAS0VPmj -Z55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXGDe+X3EyrEeFryzHRbPtIgKvcnDe4IRRL -DXE97IMzbtFuMhbsmMcWi1mmNKsFVy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6Pw -pCikFcSF9CfUa7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6sCx1H -RR3B7Hzs/Sk= ------END CERTIFICATE----- - -Comodo Trusted Services root -============================ ------BEGIN CERTIFICATE----- -MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS -R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg -TGltaXRlZDElMCMGA1UEAwwcVHJ1c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEw -MDAwMDBaFw0yODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1h -bmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1pdGVkMSUw -IwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNlcnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA33FvNlhTWvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh7 -3TkVvFVIxO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9C1t2ul/y -/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/oJOlh0Hyt3BAd9i+FHzjqMB6 -juljatEPmsbS9Is6FARW1O24zG71++IsWL1/T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsS -ivnkBbA7kUlcsutT6vifR4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1Ud -DgQWBBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB -/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21vZG9jYS5jb20vVHJ1c3RlZENlcnRp -ZmljYXRlU2VydmljZXMuY3JsMDqgOKA2hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENl -cnRpZmljYXRlU2VydmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw -uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdTmw7pSqBYaWcOrp32 -pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+Cl5EfKNsYEYwq5GWDVxISjBc/lDb+XbDA -BHcTuPQV1T84zJQ6VdCsmPW6AF/ghhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0l -R+4viMi14QVFwL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOjGM9O -9y5Xt5hwXsjEeLBi ------END CERTIFICATE----- - -QuoVadis Root CA -================ ------BEGIN CERTIFICATE----- -MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE -ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz -MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp -cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD -EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk -J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL -F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL -YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen -AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w -PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y -ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 -MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj -YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs -ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh -Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW -Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu -BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw -FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 -tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo -fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul -LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x -gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi -5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi -5nrQNiOKSnQ2+Q== ------END CERTIFICATE----- - -QuoVadis Root CA 2 -================== ------BEGIN CERTIFICATE----- -MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT -EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQx -ODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6 -XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yk -lvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbB -lDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRcAitMOeGy -lZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt -66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1Jdxn -wQ5hYIizPtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOh -D7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR7hYQe7xFSkyy -BNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuIyV77zGHcizN300QyNQliBJIWENie -J0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1Ud -DgQWBBQahGK8SEwzJQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU -a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT -ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2fBluornFdLwUv -Z+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3 -UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodm -VjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK -+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrW -IozchLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1 -WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1B+TJYm5X -f6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II -4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8 -VCLAAVBpQ570su9t+Oza8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u ------END CERTIFICATE----- - -QuoVadis Root CA 3 -================== ------BEGIN CERTIFICATE----- -MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoT -EFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQx -OTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM -aW1pdGVkMRswGQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNgg -DhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOij -KTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79K -DDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRllDdLkgbv -BNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwp -p5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8 -nT8KKdjcT5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEX -MJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6tsgLjoC2SToJyM -Gf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A4iLItLRkT9a6fUg+qGkM17uGcclz -uD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHT -BgkrBgEEAb5YAAMwgcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj -YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 -aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudC4wLQYIKwYB -BQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYD -VR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4 -ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UE -AxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZV -qyM07ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+s -hvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM3kJpK27z -POuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2 -Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp -8kokUvd0/bpO5qgdAm6xDYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBC -bjPsMZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6szHXu -g/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0jWy10QJLZYxkNc91p -vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr -qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= ------END CERTIFICATE----- - -Security Communication Root CA -============================== ------BEGIN CERTIFICATE----- -MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP -U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw -HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP -U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw -8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM -DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX -5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd -DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 -JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw -DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g -0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a -mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ -s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ -6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi -FL39vmwLAw== ------END CERTIFICATE----- - -Sonera Class 2 Root CA -====================== ------BEGIN CERTIFICATE----- -MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG -U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw -NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh -IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 -/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT -dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG -f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P -tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH -nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT -XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt -0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI -cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph -Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx -EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH -llpwrN9M ------END CERTIFICATE----- - -Staat der Nederlanden Root CA -============================= ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJOTDEeMBwGA1UE -ChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFhdCBkZXIgTmVkZXJsYW5kZW4g -Um9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4w -HAYDVQQKExVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxh -bmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFt -vsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02P -jLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGca -C1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7lr7HcsBth -vJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn6 -22r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRV -HSAAMDwwOgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9v -dC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg0zTBLL9s+DAN -BgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k/rvuFbQvBgwp8qiSpGEN/KtcCFtR -EytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbw -MVcoEoJz6TMvplW0C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y -nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR -iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw== ------END CERTIFICATE----- - -UTN DATACorp SGC Root CA -======================== ------BEGIN CERTIFICATE----- -MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UE -BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl -IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZ -BgNVBAMTElVUTiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2MzBa -MIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4w -HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRy -dXN0LmNvbTEbMBkGA1UEAxMSVVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+OGQ0SR+ys -raP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrrU0icvvIpOxboGqBMpsn0GFlo -wHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrLZ9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA -9P4yPykqlXvY8qdOD1R8oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv -33i+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4GrMIGoMAsGA1Ud -DwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRTMtGzz3/64PGgXYVOktKeRR20TzA9 -BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dD -LmNybDAqBgNVHSUEIzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3 -DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHcrpY6CiM+iVnJowft -Gzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuMFrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0 -I3KgqgHf35g+FFCgMSa9KOlaMCZ1+XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXx -EZ4du5A/EkdOjtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jFVkwP -DPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI ------END CERTIFICATE----- - -UTN USERFirst Hardware Root CA -============================== ------BEGIN CERTIFICATE----- -MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UE -BhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhl -IFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAd -BgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5MTgx -OTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0 -eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVz -ZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZFvfgIXlI -wrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6Nq9Bq/bkqVRcQVLMZ8Jr28bFd -tqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEHOG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8 -i4fDidNdoI6yqqr2jmmIBsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjf -Pe58BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhbAgMBAAGjgbkw -gbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFKFyXyYbKJhDlV0HN9WF -lp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNF -UkZpcnN0LUhhcmR3YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF -BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0oXnWO6y1n7k57K9cM -//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjAbPLPSbtNk28GpgoiskliCE7/yMgUsogW -XecB5BKV5UU0s4tpvc+0hY91UZ59Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2 -lzvukJDKxA4fFm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchqJ/kn -iCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0qUZ6B+dQ7XnASfxAynB67 -nfhmqA== ------END CERTIFICATE----- - -Camerfirma Chambers of Commerce Root -==================================== ------BEGIN CERTIFICATE----- -MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe -QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i -ZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAx -NjEzNDNaFw0zNzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZp -cm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3Jn -MSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOC -AQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlU -xFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41XQEMIwRH -NaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jW -DA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFV -d9oKDMyXroDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1Ud -EwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFtYmVyc2lnbi5v -cmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p26EpW1eLTXYGduHRooowDgYDVR0P -AQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hh -bWJlcnNpZ24ub3JnMCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD -VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz -aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEBAAxBl8IahsAi -fJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvD -L8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wN -UPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/n -ADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1 -erfutGWaIZDgqtCYvDi1czyL+Nw= ------END CERTIFICATE----- - -Camerfirma Global Chambersign Root -================================== ------BEGIN CERTIFICATE----- -MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMe -QUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1i -ZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYx -NDE4WhcNMzcwOTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJt -YSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEg -MB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAw -ggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J -1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8O -by4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl -6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c -8lCrEqWhz0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/ -BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJzaWduLm9yZy9j -aGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4wTcbOX60Qq+UDpfqpFDAOBgNVHQ8B -Af8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBj -aGFtYmVyc2lnbi5vcmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y -ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh -bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0BAQUFAAOCAQEA -PDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9Y -gOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJ -PJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4 -IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREes -t2d/AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A== ------END CERTIFICATE----- - -NetLock Notary (Class A) Root -============================= ------BEGIN CERTIFICATE----- -MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQI -EwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6 -dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9j -ayBLb3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oX -DTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQH -EwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYD -VQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFz -cyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSM -D7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZ -z+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC -/tmwqcm8WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7 -tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCubMvJIH5+hCoR6 -4sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCCApswDgYDVR0PAQH/BAQDAgAGMBIG -A1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaC -Ak1GSUdZRUxFTSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv -bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu -IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2Vn -LWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0 -ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFz -IGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBh -IGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVu -b3J6ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBh -bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5ldExvY2sg -Q1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFp -bCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5 -ayZrU3/b39/zcT0mwBQOxmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjP -ytoUMaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQQeJB -CWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxkf1qbFFgBJ34TUMdr -KuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM -8CgHrTwXZoi1/baI ------END CERTIFICATE----- - -XRamp Global CA Root -==================== ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE -BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj -dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx -HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg -U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu -IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx -foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE -zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs -AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry -xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap -oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC -AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc -/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt -qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n -nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz -8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= ------END CERTIFICATE----- - -Go Daddy Class 2 CA -=================== ------BEGIN CERTIFICATE----- -MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY -VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG -A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g -RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD -ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv -2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 -qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j -YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY -vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O -BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o -atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu -MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG -A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim -PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt -I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ -HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI -Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b -vZ8= ------END CERTIFICATE----- - -Starfield Class 2 CA -==================== ------BEGIN CERTIFICATE----- -MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc -U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo -MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG -A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG -SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY -bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ -JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm -epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN -F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF -MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f -hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo -bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g -QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs -afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM -PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl -xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD -KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 -QBFGmh95DmK/D5fs4C8fF5Q= ------END CERTIFICATE----- - -StartCom Certification Authority -================================ ------BEGIN CERTIFICATE----- -MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN -U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu -ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 -NjM2WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk -LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg -U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw -ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y -o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ -Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d -eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt -2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z -6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ -osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ -untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc -UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT -37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE -FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0 -Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNj -YS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUH -AgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRw -Oi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYg -U3RhcnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5 -LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0Q29tIENl -cnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUgYXQgaHR0cDovL2NlcnQuc3Rh -cnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilT -dGFydENvbSBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOC -AgEAFmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8jhvh -3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUWFjgKXlf2Ysd6AgXm -vB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHk -fY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3 -fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZ -EoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq -yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl -1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/7HW/ -lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/FlUQqmMGqz9IgcgA38coro -g14= ------END CERTIFICATE----- - -Taiwan GRCA -=========== ------BEGIN CERTIFICATE----- -MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG -EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X -DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv -dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN -w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 -BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O -1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO -htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov -J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 -Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t -B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB -O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 -lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV -HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 -09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ -TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj -Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 -Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU -D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz -DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk -Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk -7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ -CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy -+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS ------END CERTIFICATE----- - -Swisscom Root CA 1 -================== ------BEGIN CERTIFICATE----- -MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQG -EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy -dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4 -MTgyMjA2MjBaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln -aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIIC -IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiM -MW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyF -NDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj/x2lzZAe -AR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkC -b6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn -7uHbHaBuHYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbN -cA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AOeCMgkckkKmUp -WyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjCL3UcPX7ape8eYIVpQtPM+GP+HkM5 -haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNY -MUJDLXT5xp6mig/p/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw -HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j -BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzcK6FptWfUjNP9 -MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMn -jgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQ -MbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4H -VtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtl -vrsRls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascCl -OS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFbjCYDcKF3 -1QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBaZmBwXarNeNQk7shBoJMBkpxq -nvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCy -x/yP2FS1k2Kdzs9Z+z0YzirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMW -NY6E0F/6MBr1mmz0DlP5OlvRHA== ------END CERTIFICATE----- - -DigiCert Assured ID Root CA -=========================== ------BEGIN CERTIFICATE----- -MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw -IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx -MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL -ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO -9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy -UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW -/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy -oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf -GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF -66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq -hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc -EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn -SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i -8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe -+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== ------END CERTIFICATE----- - -DigiCert Global Root CA -======================= ------BEGIN CERTIFICATE----- -MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw -HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw -MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 -dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq -hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn -TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 -BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H -4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y -7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB -o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm -8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF -BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr -EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt -tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 -UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk -CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= ------END CERTIFICATE----- - -DigiCert High Assurance EV Root CA -================================== ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw -KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw -MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ -MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu -Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t -Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS -OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 -MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ -NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe -h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB -Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY -JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ -V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp -myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK -mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe -vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K ------END CERTIFICATE----- - -Certplus Class 2 Primary CA -=========================== ------BEGIN CERTIFICATE----- -MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAwPTELMAkGA1UE -BhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcN -OTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2Vy -dHBsdXMxGzAZBgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR -5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZ -Vg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFO -YFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupdM5i3y95e -e++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRME -CDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJ -YIZIAYb4QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29t -L0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9WM2K191EBkOvD -P9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8yfFC82x/xXp8HVGIutIKPidd3i1R -TtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+ -7UCmnYR0ObncHoUW2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW -//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 -l7+ijrRU ------END CERTIFICATE----- - -DST Root CA X3 -============== ------BEGIN CERTIFICATE----- -MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK -ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X -DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1 -cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT -rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9 -UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy -xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d -utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ -MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug -dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE -GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw -RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS -fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ ------END CERTIFICATE----- - -DST ACES CA X6 -============== ------BEGIN CERTIFICATE----- -MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQG -EwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VT -MRcwFQYDVQQDEw5EU1QgQUNFUyBDQSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NTha -MFsxCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8GA1UE -CxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzI -DZBfZIGxqAgNTNj50wUoUrQBJcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCa -pCIlF3PoHuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKBXy314pow -GCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvbUJN+5dCOHze4vbrGn2zpfDPy -MjwmR/onJALJfh1biEITajV8fTXpLmaRcpPVMibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1Ud -EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3Qu -Y29tMGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRwOi8vd3d3LnRy -dXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMtaW5kZXguaHRtbDAdBgNVHQ4EFgQU -CXIGThhDD+XWzMNqizF7eI+og7gwDQYJKoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V2 -5FYrnJmQ6AgwbN99Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t -Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8smk/f3rPanTK+gQq -nExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir42NInPRmJX1p7ijvMDNpRrscL9yuwNwXs -vFcj4jjSm2jzVhKIT0J8uDHEtdvkyCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3 -oKfN5XozNmr6mis= ------END CERTIFICATE----- - -TURKTRUST Certificate Services Provider Root 2 -============================================== ------BEGIN CERTIFICATE----- -MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBF -bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP -MA0GA1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg -QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwHhcN -MDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2VMOcUktUUlVTVCBFbGVr -dHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0G -A1UEBwwGQW5rYXJhMV0wWwYDVQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls -acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjHWHtPFoylzkkBH3MOrHUTpvqe -LCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKI -x+XlZEdhR3n9wFHxwZnn3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2g -QrSdiVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHpsmxcPbe9TmJEr -5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1pzpwACPI2/z7woQ8arBT9pmAPAgMB -AAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Zz58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8G -A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt -Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWolKMiVW4XSf/SKfE4 -Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbcoCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+ -hGIAF728JRhX8tepb1mIvDS3LoV4nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P -9Qk3iCQOLGsgOqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9Rnuk5 -UrbnBEI= ------END CERTIFICATE----- - -SwissSign Gold CA - G2 -====================== ------BEGIN CERTIFICATE----- -MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkNIMRUw -EwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcN -MDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dp -c3NTaWduIEFHMR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUq -t2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5C -jCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpg -vd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbLtK/tREDF -ylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvR -AiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuend -jIj3o02yMszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkO -peUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59je883WX0XaxR -7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxMgI93e2CaHt+28kgeDrpOVG2Y4OGi -GqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64 -OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov -L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe645R88a7A3hfm -5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr -44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOf -Mke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6m -Gu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxp -mo/a77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJk -vC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7XdVAyksLf -KzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG2mqeSz53OiATIgHQv2ieY2Br -NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj -viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ ------END CERTIFICATE----- - -SwissSign Silver CA - G2 -======================== ------BEGIN CERTIFICATE----- -MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ0gxFTAT -BgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMB4X -DTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3 -aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG -9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644 -N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm -+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH -6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2kUpCe2Uu -MGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5h -qAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5 -FZGkECwJMoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBs -ROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFusB3hB48IHpmc -celM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb65i/4z3GcRm25xBWNOHkDRUjvxF3X -CO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB -tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0 -cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBAHPGgeAn0i0P -4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39F -kWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L -3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx -/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFa -DGi8aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqP -e97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNVV4n+Ssuu -WxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJ -DIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ub -DgEj8Z+7fNzcbBGXJbLytGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority -======================================== ------BEGIN CERTIFICATE----- -MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG -EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx -CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ -cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN -b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 -nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge -RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt -tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI -hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K -Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN -NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa -Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG -1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= ------END CERTIFICATE----- - -thawte Primary Root CA -====================== ------BEGIN CERTIFICATE----- -MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE -BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 -aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 -MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg -SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv -KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT -FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs -oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ -1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc -q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K -aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p -afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF -AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE -uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX -xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 -jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH -z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== ------END CERTIFICATE----- - -VeriSign Class 3 Public Primary Certification Authority - G5 -============================================================ ------BEGIN CERTIFICATE----- -MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE -BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO -ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk -IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB -yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln -biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh -dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt -YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz -j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD -Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ -Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r -fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ -BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv -Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy -aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG -SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ -X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE -KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC -Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE -ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq ------END CERTIFICATE----- - -SecureTrust CA -============== ------BEGIN CERTIFICATE----- -MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG -EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy -dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe -BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC -ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX -OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t -DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH -GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b -01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH -ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ -BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj -aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ -KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu -SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf -mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ -nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR -3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= ------END CERTIFICATE----- - -Secure Global CA -================ ------BEGIN CERTIFICATE----- -MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG -EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH -bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg -MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg -Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx -YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ -bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g -8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV -HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi -0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn -oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA -MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ -OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn -CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 -3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc -f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW ------END CERTIFICATE----- - -COMODO Certification Authority -============================== ------BEGIN CERTIFICATE----- -MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE -BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG -A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 -dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb -MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD -T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH -+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww -xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV -4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA -1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI -rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k -b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC -AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP -OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ -RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc -IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN -+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== ------END CERTIFICATE----- - -Network Solutions Certificate Authority -======================================= ------BEGIN CERTIFICATE----- -MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG -EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr -IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx -MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu -MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx -jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT -aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT -crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc -/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB -AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv -bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA -A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q -4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ -GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv -wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD -ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey ------END CERTIFICATE----- - -WellsSecure Public Root Certificate Authority -============================================= ------BEGIN CERTIFICATE----- -MIIEvTCCA6WgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoM -F1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYw -NAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcN -MDcxMjEzMTcwNzU0WhcNMjIxMjE0MDAwNzU0WjCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dl -bGxzIEZhcmdvIFdlbGxzU2VjdXJlMRwwGgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYD -VQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDub7S9eeKPCCGeOARBJe+rWxxTkqxtnt3CxC5FlAM1 -iGd0V+PfjLindo8796jE2yljDpFoNoqXjopxaAkH5OjUDk/41itMpBb570OYj7OeUt9tkTmPOL13 -i0Nj67eT/DBMHAGTthP796EfvyXhdDcsHqRePGj4S78NuR4uNuip5Kf4D8uCdXw1LSLWwr8L87T8 -bJVhHlfXBIEyg1J55oNjz7fLY4sR4r1e6/aN7ZVyKLSsEmLpSjPmgzKuBXWVvYSV2ypcm44uDLiB -K0HmOFafSZtsdvqKXfcBeYF8wYNABf5x/Qw/zE5gCQ5lRxAvAcAFP4/4s0HvWkJ+We/SlwxlAgMB -AAGjggE0MIIBMDAPBgNVHRMBAf8EBTADAQH/MDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu -cGtpLndlbGxzZmFyZ28uY29tL3dzcHJjYS5jcmwwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBQm -lRkQ2eihl5H/3BnZtQQ+0nMKajCBsgYDVR0jBIGqMIGngBQmlRkQ2eihl5H/3BnZtQQ+0nMKaqGB -i6SBiDCBhTELMAkGA1UEBhMCVVMxIDAeBgNVBAoMF1dlbGxzIEZhcmdvIFdlbGxzU2VjdXJlMRww -GgYDVQQLDBNXZWxscyBGYXJnbyBCYW5rIE5BMTYwNAYDVQQDDC1XZWxsc1NlY3VyZSBQdWJsaWMg -Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCAQEwDQYJKoZIhvcNAQEFBQADggEBALkVsUSRzCPI -K0134/iaeycNzXK7mQDKfGYZUMbVmO2rvwNa5U3lHshPcZeG1eMd/ZDJPHV3V3p9+N701NX3leZ0 -bh08rnyd2wIDBSxxSyU+B+NemvVmFymIGjifz6pBA4SXa5M4esowRBskRDPQ5NHcKDj0E0M1NSlj -qHyita04pO2t/caaH/+Xc/77szWnk4bGdpEA5qxRFsQnMlzbc9qlk1eOPm01JghZ1edE13YgY+es -E2fDbbFwRnzVlhE9iW9dqKHrjQrawx0zbKPqZxmamX9LPYNRKh3KL4YMon4QLSvUFpULB6ouFJJJ -tylv2G0xffX8oRAHh84vWdw+WNs= ------END CERTIFICATE----- - -COMODO ECC Certification Authority -================================== ------BEGIN CERTIFICATE----- -MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC -R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE -ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix -GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR -Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo -b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X -4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni -wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG -FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA -U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= ------END CERTIFICATE----- - -IGC/A -===== ------BEGIN CERTIFICATE----- -MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYTAkZSMQ8wDQYD -VQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVE -Q1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZy -MB4XDTAyMTIxMzE0MjkyM1oXDTIwMTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQI -EwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NT -STEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaIs9z4iPf930Pfeo2aSVz2 -TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCW -So7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYy -HF2fYPepraX/z9E0+X1bF8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNd -frGoRpAxVs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGdPDPQ -tQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNVHSAEDjAMMAoGCCqB -egF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAxNjAfBgNVHSMEGDAWgBSjBS8YYFDC -iQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUFAAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RK -q89toB9RlPhJy3Q2FLwV3duJL92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3Q -MZsyK10XZZOYYLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg -Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2aNjSaTFR+FwNI -lQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R0982gaEbeC9xs/FZTEYYKKuF -0mBWWg== ------END CERTIFICATE----- - -Security Communication EV RootCA1 -================================= ------BEGIN CERTIFICATE----- -MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDElMCMGA1UEChMc -U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMhU2VjdXJpdHkgQ29tbXVuaWNh -dGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIzMloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UE -BhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNl -Y3VyaXR5IENvbW11bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSERMqm4miO -/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gOzXppFodEtZDkBp2uoQSX -WHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4z -ZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDFMxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4 -bepJz11sS6/vmsJWXMY1VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK -9U2vP9eCOKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG -SIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HWtWS3irO4G8za+6xm -iEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZq51ihPZRwSzJIxXYKLerJRO1RuGG -Av8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDbEJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnW -mHyojf6GPgcWkuF75x3sM3Z+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEW -T1MKZPlO9L9OVL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490 ------END CERTIFICATE----- - -OISTE WISeKey Global Root GA CA -=============================== ------BEGIN CERTIFICATE----- -MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE -BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG -A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH -bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD -VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw -IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5 -IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9 -Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg -Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD -d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ -/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R -LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ -KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm -MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4 -+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa -hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY -okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0= ------END CERTIFICATE----- - -Microsec e-Szigno Root CA -========================= ------BEGIN CERTIFICATE----- -MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAwcjELMAkGA1UE -BhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNyb3NlYyBMdGQuMRQwEgYDVQQL -EwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9zZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0 -MDYxMjI4NDRaFw0xNzA0MDYxMjI4NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVz -dDEWMBQGA1UEChMNTWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMT -GU1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB -AQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2uuO/TEdyB5s87lozWbxXG -d36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/N -oqdNAoI/gqyFxuEPkEeZlApxcpMqyabAvjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjc -QR/Ji3HWVBTji1R4P770Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJ -PqW+jqpx62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcBAQRb -MFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3AwLQYIKwYBBQUHMAKG -IWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAPBgNVHRMBAf8EBTADAQH/MIIBcwYD -VR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIBAQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3 -LmUtc3ppZ25vLmh1L1NaU1ovMIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0A -dAB2AOEAbgB5ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn -AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABTAHoAbwBsAGcA -4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABhACAAcwB6AGUAcgBpAG4AdAAg -AGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABoAHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMA -egBpAGcAbgBvAC4AaAB1AC8AUwBaAFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6 -Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NO -PU1pY3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxPPU1pY3Jv -c2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5h -cnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuBEGluZm9AZS1zemlnbm8uaHWkdzB1MSMw -IQYDVQQDDBpNaWNyb3NlYyBlLVN6aWduw7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhT -WjEWMBQGA1UEChMNTWljcm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhV -MIGsBgNVHSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJIVTER -MA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDASBgNVBAsTC2UtU3pp -Z25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBSb290IENBghEAzLjnv04pGv2i3Gal -HCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMT -nGZjWS7KXHAM/IO8VbH0jgdsZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FE -aGAHQzAxQmHl7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a -86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfRhUZLphK3dehK -yVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/MPMMNz7UwiiAc7EBt51alhQB -S6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU= ------END CERTIFICATE----- - -Certigna -======== ------BEGIN CERTIFICATE----- -MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw -EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 -MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI -Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q -XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH -GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p -ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg -DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf -Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ -tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ -BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J -SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA -hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ -ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu -PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY -1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw -WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== ------END CERTIFICATE----- - -Deutsche Telekom Root CA 2 -========================== ------BEGIN CERTIFICATE----- -MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMT -RGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEG -A1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENBIDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5 -MjM1OTAwWjBxMQswCQYDVQQGEwJERTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0G -A1UECxMWVC1UZWxlU2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBS -b290IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEUha88EOQ5 -bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhCQN/Po7qCWWqSG6wcmtoI -KyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1MjwrrFDa1sPeg5TKqAyZMg4ISFZbavva4VhY -AUlfckE8FQYBjl2tqriTtM2e66foai1SNNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aK -Se5TBY8ZTNXeWHmb0mocQqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTV -jlsB9WoHtxa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAPBgNV -HRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAlGRZrTlk5ynr -E/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756AbrsptJh6sTtU6zkXR34ajgv8HzFZMQSy -zhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpaIzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8 -rZ7/gFnkm0W09juwzTkZmDLl6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4G -dyd1Lx+4ivn+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU -Cm26OWMohpLzGITY+9HPBVZkVw== ------END CERTIFICATE----- - -Cybertrust Global Root -====================== ------BEGIN CERTIFICATE----- -MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li -ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4 -MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD -ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA -+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW -0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL -AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin -89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT -8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2 -MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G -A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO -lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi -5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2 -hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T -X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW -WL1WMRJOEcgh4LMRkWXbtKaIOM5V ------END CERTIFICATE----- - -ePKI Root Certification Authority -================================= ------BEGIN CERTIFICATE----- -MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG -EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg -Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx -MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq -MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B -AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs -IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi -lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv -qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX -12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O -WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ -ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao -lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ -vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi -Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi -MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH -ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 -1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq -KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV -xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP -NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r -GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE -xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx -gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy -sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD -BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= ------END CERTIFICATE----- - -T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3 -============================================================================================================================= ------BEGIN CERTIFICATE----- -MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH -DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q -aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry -b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV -BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg -S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4 -MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl -IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF -n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl -IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft -dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl -cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO -Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1 -xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR -6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL -hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd -BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF -MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4 -N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT -y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh -LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M -dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI= ------END CERTIFICATE----- - -Buypass Class 2 CA 1 -==================== ------BEGIN CERTIFICATE----- -MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2 -MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh -c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M -cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83 -0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4 -0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R -uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P -AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV -1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt -7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2 -fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w -wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho ------END CERTIFICATE----- - -EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 -========================================================================== ------BEGIN CERTIFICATE----- -MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF -bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg -QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe -Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p -ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt -IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG -SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by -X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b -gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr -eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ -TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy -Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn -uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI -qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm -ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0 -Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB -/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW -Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t -FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm -zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k -XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT -bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU -RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK -1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt -2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ -Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9 -AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT ------END CERTIFICATE----- - -certSIGN ROOT CA -================ ------BEGIN CERTIFICATE----- -MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD -VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa -Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE -CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I -JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH -rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 -ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD -0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 -AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B -Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB -AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 -SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 -x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt -vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz -TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD ------END CERTIFICATE----- - -CNNIC ROOT -========== ------BEGIN CERTIFICATE----- -MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE -ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw -OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD -o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz -VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT -VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or -czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK -y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC -wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S -lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5 -Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM -O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8 -BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2 -G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m -mxE= ------END CERTIFICATE----- - -ApplicationCA - Japanese Government -=================================== ------BEGIN CERTIFICATE----- -MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT -SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw -MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl -cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4 -fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN -wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE -jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu -nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU -WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV -BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD -vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs -o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g -/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD -io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW -dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL -rosot4LKGAfmt1t06SAZf7IbiVQ= ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority - G3 -============================================= ------BEGIN CERTIFICATE----- -MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE -BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0 -IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy -eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz -NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo -YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT -LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j -K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE -c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C -IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu -dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr -2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9 -cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE -Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD -AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s -t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt ------END CERTIFICATE----- - -thawte Primary Root CA - G2 -=========================== ------BEGIN CERTIFICATE----- -MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC -VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu -IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg -Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV -MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG -b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt -IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS -LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5 -8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU -mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN -G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K -rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== ------END CERTIFICATE----- - -thawte Primary Root CA - G3 -=========================== ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE -BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 -aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w -ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh -d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD -VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG -A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At -P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC -+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY -7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW -vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ -KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK -A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu -t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC -8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm -er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A= ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority - G2 -============================================= ------BEGIN CERTIFICATE----- -MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC -VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu -Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1 -OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg -MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl -b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG -BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc -KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+ -EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m -ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2 -npaqBA+K ------END CERTIFICATE----- - -VeriSign Universal Root Certification Authority -=============================================== ------BEGIN CERTIFICATE----- -MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE -BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO -ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk -IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u -IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj -1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP -MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72 -9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I -AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR -tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G -CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O -a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud -DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3 -Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx -Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx -P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P -wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4 -mJO37M2CYfE45k+XmCpajQ== ------END CERTIFICATE----- - -VeriSign Class 3 Public Primary Certification Authority - G4 -============================================================ ------BEGIN CERTIFICATE----- -MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC -VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3 -b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz -ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL -MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU -cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo -b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5 -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8 -Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz -rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw -HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u -Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD -A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx -AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== ------END CERTIFICATE----- - -NetLock Arany (Class Gold) Főtanúsítvány -============================================ ------BEGIN CERTIFICATE----- -MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G -A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 -dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB -cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx -MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO -ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv -biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 -c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu -0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw -/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk -H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw -fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 -neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB -BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW -qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta -YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC -bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna -NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu -dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= ------END CERTIFICATE----- - -Staat der Nederlanden Root CA - G2 -================================== ------BEGIN CERTIFICATE----- -MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE -CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g -Um9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oXDTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMC -TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l -ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ -5291qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8SpuOUfiUtn -vWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPUZ5uW6M7XxgpT0GtJlvOj -CwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvEpMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiil -e7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCR -OME4HYYEhLoaJXhena/MUGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpI -CT0ugpTNGmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy5V65 -48r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv6q012iDTiIJh8BIi -trzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEKeN5KzlW/HdXZt1bv8Hb/C3m1r737 -qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMB -AAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcC -ARYxaHR0cDovL3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV -HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqGSIb3DQEBCwUA -A4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLySCZa59sCrI2AGeYwRTlHSeYAz -+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwj -f/ST7ZwaUb7dRUG/kSS0H4zpX897IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaN -kqbG9AclVMwWVxJKgnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfk -CpYL+63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxLvJxxcypF -URmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkmbEgeqmiSBeGCc1qb3Adb -CG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvkN1trSt8sV4pAWja63XVECDdCcAz+3F4h -oKOKwJCcaNpQ5kUQR3i2TtJlycM33+FCY7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoV -IPVVYpbtbZNQvOSqeK3Zywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm -66+KAQ== ------END CERTIFICATE----- - -CA Disig -======== ------BEGIN CERTIFICATE----- -MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK -QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw -MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz -bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm -GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD -Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo -hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt -ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w -gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P -AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz -aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff -ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa -BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t -WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3 -mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/ -CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K -ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA -4Z7CRneC9VkGjCFMhwnN5ag= ------END CERTIFICATE----- - -Juur-SK -======= ------BEGIN CERTIFICATE----- -MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA -c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw -DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG -SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy -aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf -TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC -+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw -UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa -Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF -MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD -HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh -AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA -cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr -AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw -cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE -FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G -A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo -ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL -abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678 -IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh -Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2 -yyqcjg== ------END CERTIFICATE----- - -Hongkong Post Root CA 1 -======================= ------BEGIN CERTIFICATE----- -MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT -DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx -NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n -IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 -ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr -auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh -qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY -V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV -HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i -h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio -l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei -IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps -T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT -c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== ------END CERTIFICATE----- - -SecureSign RootCA11 -=================== ------BEGIN CERTIFICATE----- -MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi -SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS -b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw -KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 -cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL -TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO -wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq -g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP -O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA -bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX -t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh -OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r -bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ -Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 -y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 -lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= ------END CERTIFICATE----- - -ACEDICOM Root -============= ------BEGIN CERTIFICATE----- -MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD -T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4 -MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG -A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF -AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk -WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD -YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew -MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb -m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk -HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT -xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2 -3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9 -2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq -TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz -4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU -9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv -bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg -aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP -eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk -zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1 -ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI -KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq -nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE -I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp -MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o -tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA== ------END CERTIFICATE----- - -Microsec e-Szigno Root CA 2009 -============================== ------BEGIN CERTIFICATE----- -MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER -MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv -c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o -dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE -BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt -U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA -fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG -0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA -pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm -1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC -AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf -QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE -FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o -lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX -I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 -tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 -yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi -LXpUq3DDfSJlgnCW ------END CERTIFICATE----- - -GlobalSign Root CA - R3 -======================= ------BEGIN CERTIFICATE----- -MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv -YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh -bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT -aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln -bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt -iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ -0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 -rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl -OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 -xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 -lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 -EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E -bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 -YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r -kpeDMdmztcpHWD9f ------END CERTIFICATE----- - -Autoridad de Certificacion Firmaprofesional CIF A62634068 -========================================================= ------BEGIN CERTIFICATE----- -MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA -BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 -MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw -QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB -NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD -Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P -B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY -7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH -ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI -plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX -MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX -LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK -bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU -vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud -EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH -DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp -cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA -bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx -ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx -51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk -R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP -T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f -Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl -osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR -crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR -saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD -KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi -6Et8Vcad+qMUu2WFbm5PEn4KPJ2V ------END CERTIFICATE----- - -Izenpe.com -========== ------BEGIN CERTIFICATE----- -MIIF8TCCA9mgAwIBAgIQALC3WhZIX7/hy/WL1xnmfTANBgkqhkiG9w0BAQsFADA4MQswCQYDVQQG -EwJFUzEUMBIGA1UECgwLSVpFTlBFIFMuQS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wHhcNMDcxMjEz -MTMwODI4WhcNMzcxMjEzMDgyNzI1WjA4MQswCQYDVQQGEwJFUzEUMBIGA1UECgwLSVpFTlBFIFMu -QS4xEzARBgNVBAMMCkl6ZW5wZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDJ -03rKDx6sp4boFmVqscIbRTJxldn+EFvMr+eleQGPicPK8lVx93e+d5TzcqQsRNiekpsUOqHnJJAK -ClaOxdgmlOHZSOEtPtoKct2jmRXagaKH9HtuJneJWK3W6wyyQXpzbm3benhB6QiIEn6HLmYRY2xU -+zydcsC8Lv/Ct90NduM61/e0aL6i9eOBbsFGb12N4E3GVFWJGjMxCrFXuaOKmMPsOzTFlUFpfnXC -PCDFYbpRR6AgkJOhkEvzTnyFRVSa0QUmQbC1TR0zvsQDyCV8wXDbO/QJLVQnSKwv4cSsPsjLkkxT -OTcj7NMB+eAJRE1NZMDhDVqHIrytG6P+JrUV86f8hBnp7KGItERphIPzidF0BqnMC9bC3ieFUCbK -F7jJeodWLBoBHmy+E60QrLUk9TiRodZL2vG70t5HtfG8gfZZa88ZU+mNFctKy6lvROUbQc/hhqfK -0GqfvEyNBjNaooXlkDWgYlwWTvDjovoDGrQscbNYLN57C9saD+veIR8GdwYDsMnvmfzAuU8Lhij+ -0rnq49qlw0dpEuDb8PYZi+17cNcC1u2HGCgsBCRMd+RIihrGO5rUD8r6ddIBQFqNeb+Lz0vPqhbB -leStTIo+F5HUsWLlguWABKQDfo2/2n+iD5dPDNMN+9fR5XJ+HMh3/1uaD7euBUbl8agW7EekFwID -AQABo4H2MIHzMIGwBgNVHREEgagwgaWBD2luZm9AaXplbnBlLmNvbaSBkTCBjjFHMEUGA1UECgw+ -SVpFTlBFIFMuQS4gLSBDSUYgQTAxMzM3MjYwLVJNZXJjLlZpdG9yaWEtR2FzdGVpeiBUMTA1NSBG -NjIgUzgxQzBBBgNVBAkMOkF2ZGEgZGVsIE1lZGl0ZXJyYW5lbyBFdG9yYmlkZWEgMTQgLSAwMTAx -MCBWaXRvcmlhLUdhc3RlaXowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O -BBYEFB0cZQ6o8iV7tJHP5LGx5r1VdGwFMA0GCSqGSIb3DQEBCwUAA4ICAQB4pgwWSp9MiDrAyw6l -Fn2fuUhfGI8NYjb2zRlrrKvV9pF9rnHzP7MOeIWblaQnIUdCSnxIOvVFfLMMjlF4rJUT3sb9fbga -kEyrkgPH7UIBzg/YsfqikuFgba56awmqxinuaElnMIAkejEWOVt+8Rwu3WwJrfIxwYJOubv5vr8q -hT/AQKM6WfxZSzwoJNu0FXWuDYi6LnPAvViH5ULy617uHjAimcs30cQhbIHsvm0m5hzkQiCeR7Cs -g1lwLDXWrzY0tM07+DKo7+N4ifuNRSzanLh+QBxh5z6ikixL8s36mLYp//Pye6kfLqCTVyvehQP5 -aTfLnnhqBbTFMXiJ7HqnheG5ezzevh55hM6fcA5ZwjUukCox2eRFekGkLhObNA5me0mrZJfQRsN5 -nXJQY6aYWwa9SG3YOYNw6DXwBdGqvOPbyALqfP2C2sJbUjWumDqtujWTI6cfSN01RpiyEGjkpTHC -ClguGYEQyVB1/OpaFs4R1+7vUIgtYf8/QnMFlEPVjjxOAToZpR9GTnfQXeWBIiGH/pR9hNiTrdZo -Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z -WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== ------END CERTIFICATE----- - -Chambers of Commerce Root - 2008 -================================ ------BEGIN CERTIFICATE----- -MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD -MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv -bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu -QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy -Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl -ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF -EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl -cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA -XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj -h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/ -ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk -NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g -D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331 -lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ -0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj -ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2 -EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI -G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ -BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh -bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh -bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC -CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH -AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1 -wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH -3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU -RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6 -M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1 -YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF -9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK -zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG -nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg -OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ ------END CERTIFICATE----- - -Global Chambersign Root - 2008 -============================== ------BEGIN CERTIFICATE----- -MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD -MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv -bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu -QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx -NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg -Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ -QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD -aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf -VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf -XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0 -ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB -/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA -TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M -H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe -Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF -HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh -wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB -AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT -BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE -BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm -aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm -aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp -1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0 -dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG -/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6 -ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s -dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg -9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH -foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du -qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr -P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq -c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z -09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B ------END CERTIFICATE----- - -Go Daddy Root Certificate Authority - G2 -======================================== ------BEGIN CERTIFICATE----- -MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu -MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 -MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 -b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G -A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq -9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD -+qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd -fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl -NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 -BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac -vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r -5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV -N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO -LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 ------END CERTIFICATE----- - -Starfield Root Certificate Authority - G2 -========================================= ------BEGIN CERTIFICATE----- -MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s -b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 -eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw -DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg -VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB -dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv -W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs -bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk -N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf -ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU -JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol -TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx -4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw -F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K -pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ -c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 ------END CERTIFICATE----- - -Starfield Services Root Certificate Authority - G2 -================================================== ------BEGIN CERTIFICATE----- -MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT -B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s -b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl -IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV -BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT -dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg -Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 -h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa -hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP -LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB -rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw -AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG -SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP -E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy -xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd -iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza -YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 ------END CERTIFICATE----- - -AffirmTrust Commercial -====================== ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw -MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly -bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb -DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV -C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 -BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww -MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV -HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG -hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi -qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv -0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh -sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= ------END CERTIFICATE----- - -AffirmTrust Networking -====================== ------BEGIN CERTIFICATE----- -MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw -MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly -bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE -Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI -dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 -/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb -h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV -HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu -UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 -12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 -WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 -/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= ------END CERTIFICATE----- - -AffirmTrust Premium -=================== ------BEGIN CERTIFICATE----- -MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS -BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy -OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy -dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn -BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV -5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs -+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd -GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R -p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI -S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 -6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 -/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo -+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB -/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv -MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg -Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC -6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S -L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK -+4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV -BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg -IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 -g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb -zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== ------END CERTIFICATE----- - -AffirmTrust Premium ECC -======================= ------BEGIN CERTIFICATE----- -MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV -BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx -MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U -cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA -IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ -N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW -BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK -BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X -57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM -eQ== ------END CERTIFICATE----- - -Certum Trusted Network CA -========================= ------BEGIN CERTIFICATE----- -MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK -ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy -MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU -ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC -l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J -J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 -fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 -cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB -Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw -DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj -jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 -mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj -Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI -03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= ------END CERTIFICATE----- - -Certinomis - Autorité Racine -============================= ------BEGIN CERTIFICATE----- -MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK -Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg -LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG -A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw -JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa -wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly -Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw -2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N -jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q -c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC -lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb -xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g -530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna -4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G -A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ -KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x -WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva -R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40 -nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B -CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv -JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE -qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b -WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE -wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/ -vgt2Fl43N+bYdJeimUV5 ------END CERTIFICATE----- - -Root CA Generalitat Valenciana -============================== ------BEGIN CERTIFICATE----- -MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE -ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290 -IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3 -WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE -CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2 -F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B -ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ -D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte -JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB -AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n -dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB -ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl -AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA -YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy -AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA -aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt -AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA -YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu -AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA -OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0 -dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV -BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G -A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S -b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh -TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz -Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63 -NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH -iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt -+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM= ------END CERTIFICATE----- - -A-Trust-nQual-03 -================ ------BEGIN CERTIFICATE----- -MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE -Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy -a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R -dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw -RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0 -ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1 -c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA -zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n -yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE -SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4 -iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V -cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV -eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40 -ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr -sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd -JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS -mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6 -ahq97BvIxYSazQ== ------END CERTIFICATE----- - -TWCA Root Certification Authority -================================= ------BEGIN CERTIFICATE----- -MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ -VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG -EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB -IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx -QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC -oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP -4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r -y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB -BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG -9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC -mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW -QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY -T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny -Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== ------END CERTIFICATE----- - -Security Communication RootCA2 -============================== ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc -U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh -dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC -SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy -aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ -+T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R -3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV -spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K -EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 -QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB -CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj -u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk -3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q -tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 -mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 ------END CERTIFICATE----- - -EC-ACC -====== ------BEGIN CERTIFICATE----- -MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE -BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w -ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD -VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE -CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT -BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7 -MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt -SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl -Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh -cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK -w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT -ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4 -HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a -E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw -0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD -VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0 -Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l -dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ -lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa -Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe -l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2 -E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D -5EI= ------END CERTIFICATE----- - -Hellenic Academic and Research Institutions RootCA 2011 -======================================================= ------BEGIN CERTIFICATE----- -MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT -O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y -aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT -AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo -IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI -1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa -71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u -8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH -3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ -MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 -MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu -b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt -XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 -TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD -/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N -7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 ------END CERTIFICATE----- - -Actalis Authentication Root CA -============================== ------BEGIN CERTIFICATE----- -MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UEBhMCSVQxDjAM -BgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UE -AwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDky -MjExMjIwMlowazELMAkGA1UEBhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlz -IFMucC5BLi8wMzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 -IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNvUTufClrJ -wkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX4ay8IMKx4INRimlNAJZa -by/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9KK3giq0itFZljoZUj5NDKd45RnijMCO6 -zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1f -YVEiVRvjRuPjPdA1YprbrxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2 -oxgkg4YQ51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2Fbe8l -EfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxeKF+w6D9Fz8+vm2/7 -hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4Fv6MGn8i1zeQf1xcGDXqVdFUNaBr8 -EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbnfpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5 -jF66CyCU3nuDuP/jVo23Eek7jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLY -iDrIn3hm7YnzezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt -ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQALe3KHwGCmSUyI -WOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70jsNjLiNmsGe+b7bAEzlgqqI0 -JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDzWochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKx -K3JCaKygvU5a2hi/a5iB0P2avl4VSM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+ -Xlff1ANATIGk0k9jpwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC -4yyXX04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+OkfcvHlXHo -2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7RK4X9p2jIugErsWx0Hbhz -lefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btUZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXem -OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9 -vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== ------END CERTIFICATE----- - -Trustis FPS Root CA -=================== ------BEGIN CERTIFICATE----- -MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG -EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290 -IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV -BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ -KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ -RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk -H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa -cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt -o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA -AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd -BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c -GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC -yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P -8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV -l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl -iB6XzCGcKQENZetX2fNXlrtIzYE= ------END CERTIFICATE----- - -StartCom Certification Authority -================================ ------BEGIN CERTIFICATE----- -MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN -U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu -ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0 -NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk -LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg -U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw -ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y -o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/ -Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d -eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt -2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z -6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ -osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/ -untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc -UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT -37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD -VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ -Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0 -dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu -c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv -bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0 -aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0 -aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t -L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG -cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5 -fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm -N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN -Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T -tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX -e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA -2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs -HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE -JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib -D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8= ------END CERTIFICATE----- - -StartCom Certification Authority G2 -=================================== ------BEGIN CERTIFICATE----- -MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN -U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg -RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE -ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O -o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG -4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi -Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul -Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs -O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H -vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L -nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS -FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa -z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ -KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K -2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk -J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+ -JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG -/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc -nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld -blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc -l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm -7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm -obp573PYtlNXLfbQ4ddI ------END CERTIFICATE----- - -Buypass Class 2 Root CA -======================= ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X -DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 -eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 -g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn -9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b -/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU -CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff -awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI -zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn -Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX -Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs -M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD -VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF -AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s -A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI -osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S -aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd -DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD -LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 -oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC -wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS -CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN -rJgWVqA= ------END CERTIFICATE----- - -Buypass Class 3 Root CA -======================= ------BEGIN CERTIFICATE----- -MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU -QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X -DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 -eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH -sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR -5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh -7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ -ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH -2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV -/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ -RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA -Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq -j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD -VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF -AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV -cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G -uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG -Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 -ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 -KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz -6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug -UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe -eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi -Cp/HuZc= ------END CERTIFICATE----- - -T-TeleSec GlobalRoot Class 3 -============================ ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM -IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU -cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx -MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz -dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD -ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK -9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU -NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF -iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W -0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr -AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb -fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT -ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h -P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml -e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== ------END CERTIFICATE----- - -EE Certification Centre Root CA -=============================== ------BEGIN CERTIFICATE----- -MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG -EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy -dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw -MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB -UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy -ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB -DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM -TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2 -rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw -93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN -P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ -MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF -BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj -xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM -lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u -uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU -3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM -dcGWxZ0= ------END CERTIFICATE----- - -TURKTRUST Certificate Services Provider Root 2007 -================================================= ------BEGIN CERTIFICATE----- -MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF -bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP -MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg -QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X -DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl -a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN -BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp -bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N -YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv -KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya -KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT -rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC -AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s -Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I -aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO -Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb -BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK -poRq0Tl9 ------END CERTIFICATE----- - -D-TRUST Root Class 3 CA 2 2009 -============================== ------BEGIN CERTIFICATE----- -MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK -DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe -Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE -LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD -ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA -BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv -KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z -p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC -AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ -4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y -eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw -MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G -PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw -OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm -2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 -o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV -dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph -X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I= ------END CERTIFICATE----- - -D-TRUST Root Class 3 CA 2 EV 2009 -================================= ------BEGIN CERTIFICATE----- -MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK -DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw -OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK -DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw -OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS -egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh -zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T -7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60 -sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35 -11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv -cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v -ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El -MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp -b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh -c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+ -PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 -nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX -ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA -NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv -w9y4AyHqnxbxLFS1 ------END CERTIFICATE----- - -PSCProcert -========== ------BEGIN CERTIFICATE----- -MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk -ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ -MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz -dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl -cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw -IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw -MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w -DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD -ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp -Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw -DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC -wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA -3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh -RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO -EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2 -0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH -0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU -td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw -Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp -r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/ -AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz -Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId -xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp -ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH -EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h -Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k -ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG -9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG -MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG -LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52 -ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy -YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v -Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o -dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq -T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN -g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q -uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1 -n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn -FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo -5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq -3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5 -poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y -eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km ------END CERTIFICATE----- - -China Internet Network Information Center EV Certificates Root -============================================================== ------BEGIN CERTIFICATE----- -MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV -BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D -aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg -Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG -A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM -PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl -cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y -jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV -98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H -klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23 -KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC -7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV -HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD -glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5 -0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM -7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws -ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0 -5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8= ------END CERTIFICATE----- - -Swisscom Root CA 2 -================== ------BEGIN CERTIFICATE----- -MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBkMQswCQYDVQQG -EwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2VydGlmaWNhdGUgU2Vy -dmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3QgQ0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2 -MjUwNzM4MTRaMGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGln -aXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIIC -IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvErjw0DzpPM -LgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r0rk0X2s682Q2zsKwzxNo -ysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJ -wDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVPACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpH -Wrumnf2U5NGKpV+GY3aFy6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1a -SgJA/MTAtukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL6yxS -NLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0uPoTXGiTOmekl9Ab -mbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrALacywlKinh/LTSlDcX3KwFnUey7QY -Ypqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velhk6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3 -qPyZ7iVNTA6z00yPhOgpD/0QVAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw -HQYDVR0hBBYwFDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O -BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqhb97iEoHF8Twu -MA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4RfbgZPnm3qKhyN2abGu2sEzsO -v2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ -82YqZh6NM4OKb3xuqFp1mrjX2lhIREeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLz -o9v/tdhZsnPdTSpxsrpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcs -a0vvaGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciATwoCqISxx -OQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99nBjx8Oto0QuFmtEYE3saW -mA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5Wt6NlUe07qxS/TFED6F+KBZvuim6c779o -+sjaC+NCydAXFJy3SuCvkychVSa1ZC+N8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TC -rvJcwhbtkj6EPnNgiLx29CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX -5OfNeOI5wSsSnqaeG8XmDtkx2Q== ------END CERTIFICATE----- - -Swisscom Root EV CA 2 -===================== ------BEGIN CERTIFICATE----- -MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAwZzELMAkGA1UE -BhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdpdGFsIENlcnRpZmljYXRlIFNl -cnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcN -MzEwNjI1MDg0NTA4WjBnMQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsT -HERpZ2l0YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYg -Q0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7BxUglgRCgz -o3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD1ycfMQ4jFrclyxy0uYAy -Xhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPHoCE2G3pXKSinLr9xJZDzRINpUKTk4Rti -GZQJo/PDvO/0vezbE53PnUgJUmfANykRHvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8Li -qG12W0OfvrSdsyaGOx9/5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaH -Za0zKcQvidm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHLOdAG -alNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaCNYGu+HuB5ur+rPQa -m3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f46Fq9mDU5zXNysRojddxyNMkM3Ox -bPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCBUWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDi -xzgHcgplwLa7JSnaFp6LNYth7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/ -BAQDAgGGMB0GA1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED -MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWBbj2ITY1x0kbB -bkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6xXCX5145v9Ydkn+0UjrgEjihL -j6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98TPLr+flaYC/NUn81ETm484T4VvwYmneTwkLbU -wp4wLh/vx3rEUMfqe9pQy3omywC0Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7 -XwgiG/W9mR4U9s70WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH -59yLGn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm7JFe3VE/ -23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4Snr8PyQUQ3nqjsTzyP6Wq -J3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VNvBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyA -HmBR3NdUIR7KYndP+tiPsys6DXhyyWhBWkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/gi -uMod89a2GQ+fYWVq6nTIfI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuW -l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc= ------END CERTIFICATE----- - -CA Disig Root R1 -================ ------BEGIN CERTIFICATE----- -MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw -EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp -ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx -EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp -c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy -3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8 -u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2 -m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk -CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa -YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6 -vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL -LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX -ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is -XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ -04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR -xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B -LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM -CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb -VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85 -YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS -ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix -lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N -UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ -a7+h89n07eLw4+1knj0vllJPgFOL ------END CERTIFICATE----- - -CA Disig Root R2 -================ ------BEGIN CERTIFICATE----- -MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw -EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp -ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx -EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp -c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC -w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia -xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7 -A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S -GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV -g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa -5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE -koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A -Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i -Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV -HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u -Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM -tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV -sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je -dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8 -1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx -mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01 -utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0 -sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg -UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV -7+ZtsH8tZ/3zbBt1RqPlShfppNcL ------END CERTIFICATE----- - -ACCVRAIZ1 -========= ------BEGIN CERTIFICATE----- -MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB -SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1 -MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH -UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC -DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM -jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0 -RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD -aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ -0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG -WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7 -8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR -5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J -9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK -Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw -Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu -Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 -VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM -Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA -QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh -AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA -YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj -AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA -IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk -aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0 -dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2 -MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI -hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E -R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN -YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49 -nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ -TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3 -sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h -I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg -Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd -3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p -EfbRD0tVNEYqi4Y7 ------END CERTIFICATE----- - -TWCA Global Root CA -=================== ------BEGIN CERTIFICATE----- -MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT -CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD -QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK -EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg -Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C -nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV -r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR -Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV -tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W -KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99 -sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p -yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn -kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI -zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC -AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g -cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn -LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M -8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg -/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg -lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP -A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m -i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8 -EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3 -zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0= ------END CERTIFICATE----- - -TeliaSonera Root CA v1 -====================== ------BEGIN CERTIFICATE----- -MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE -CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4 -MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW -VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+ -6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA -3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k -B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn -Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH -oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3 -F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ -oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7 -gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc -TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB -AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW -DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm -zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx -0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW -pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV -G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc -c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT -JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2 -qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6 -Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems -WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= ------END CERTIFICATE----- - -E-Tugra Certification Authority -=============================== ------BEGIN CERTIFICATE----- -MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w -DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls -ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN -ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw -NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx -QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl -cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD -DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd -hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K -CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g -ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ -BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0 -E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz -rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq -jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn -rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5 -dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB -/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG -MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK -kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO -XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807 -VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo -a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc -dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV -KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT -Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0 -8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G -C7TbO6Orb1wdtn7os4I07QZcJA== ------END CERTIFICATE----- - -T-TeleSec GlobalRoot Class 2 -============================ ------BEGIN CERTIFICATE----- -MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM -IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU -cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx -MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz -dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD -ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3 -DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ -SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F -vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970 -2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV -WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA -MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy -YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4 -r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf -vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR -3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN -9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg== ------END CERTIFICATE----- - -Atos TrustedRoot 2011 -===================== ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU -cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4 -MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG -A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV -hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr -54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+ -DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320 -HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR -z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R -l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ -bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB -CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h -k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh -TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9 -61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G -3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed ------END CERTIFICATE----- - -QuoVadis Root CA 1 G3 -===================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG -A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv -b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN -MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg -RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE -PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm -PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6 -Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN -ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l -g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV -7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX -9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f -iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg -t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI -hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC -MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3 -GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct -Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP -+V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh -3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa -wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6 -O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0 -FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV -hMJKzRwuJIczYOXD ------END CERTIFICATE----- - -QuoVadis Root CA 2 G3 -===================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG -A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv -b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN -MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg -RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh -ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY -NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t -oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o -MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l -V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo -L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ -sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD -6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh -lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI -hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 -AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K -pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9 -x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz -dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X -U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw -mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD -zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN -JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr -O3jtZsSOeWmD3n+M ------END CERTIFICATE----- - -QuoVadis Root CA 3 G3 -===================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG -A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv -b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN -MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg -RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286 -IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL -Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe -6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3 -I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U -VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7 -5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi -Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM -dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt -rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI -hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px -KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS -t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ -TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du -DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib -Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD -hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX -0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW -dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2 -PpxxVJkES/1Y+Zj0 ------END CERTIFICATE----- - -DigiCert Assured ID Root G2 -=========================== ------BEGIN CERTIFICATE----- -MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw -IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw -MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL -ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH -35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq -bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw -VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP -YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn -lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO -w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv -0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz -d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW -hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M -jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo -IhNzbM8m9Yop5w== ------END CERTIFICATE----- - -DigiCert Assured ID Root G3 -=========================== ------BEGIN CERTIFICATE----- -MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD -VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 -MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ -BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb -RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs -KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF -UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy -YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy -1vUhZscv6pZjamVFkpUBtA== ------END CERTIFICATE----- - -DigiCert Global Root G2 -======================= ------BEGIN CERTIFICATE----- -MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw -HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx -MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 -dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq -hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ -kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO -3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV -BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM -UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB -o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu -5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr -F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U -WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH -QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/ -iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl -MrY= ------END CERTIFICATE----- - -DigiCert Global Root G3 -======================= ------BEGIN CERTIFICATE----- -MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV -UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD -VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw -MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k -aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C -AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O -YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP -BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp -Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y -3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34 -VOKa5Vt8sycX ------END CERTIFICATE----- - -DigiCert Trusted Root G4 -======================== ------BEGIN CERTIFICATE----- -MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw -HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 -MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G -CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp -pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o -k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa -vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY -QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6 -MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm -mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7 -f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH -dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8 -oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud -DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD -ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY -ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr -yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy -7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah -ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN -5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb -/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa -5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK -G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP -82Z+ ------END CERTIFICATE----- - -WoSign -====== ------BEGIN CERTIFICATE----- -MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG -EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNVBAMTIUNlcnRpZmljYXRpb24g -QXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJ -BgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA -vcqNrLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1UfcIiePyO -CbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcSccf+Hb0v1naMQFXQoOXXDX -2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2ZjC1vt7tj/id07sBMOby8w7gLJKA84X5 -KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4Mx1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR -+ScPewavVIMYe+HdVHpRaG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ez -EC8wQjchzDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDaruHqk -lWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221KmYo0SLwX3OSACCK2 -8jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvASh0JWzko/amrzgD5LkhLJuYwTKVY -yrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWvHYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0C -AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R -8bNLtwYgFP6HEtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1 -LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJMuYhOZO9sxXq -T2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2eJXLOC62qx1ViC777Y7NhRCOj -y+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VNg64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC -2nz4SNAzqfkHx5Xh9T71XXG68pWpdIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes -5cVAWubXbHssw1abR80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/ -EaEQPkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGcexGATVdVh -mVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+J7x6v+Db9NpSvd4MVHAx -kUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMlOtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGi -kpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWTee5Ehr7XHuQe+w== ------END CERTIFICATE----- - -WoSign China -============ ------BEGIN CERTIFICATE----- -MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBGMQswCQYDVQQG -EwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMMEkNBIOayg+mAmuagueiv -geS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgwMTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYD -VQQKExFXb1NpZ24gQ0EgTGltaXRlZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjAN -BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k -8H/rD195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld19AXbbQs5 -uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExfv5RxadmWPgxDT74wwJ85 -dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnkUkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5 -Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+LNVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFy -b7Ao65vh4YOhn0pdr8yb+gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc -76DbT52VqyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6KyX2m -+Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0GAbQOXDBGVWCvOGU6 -yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaKJ/kR8slC/k7e3x9cxKSGhxYzoacX -GKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwECAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUA -A4ICAQBqinA4WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6 -yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj/feTZU7n85iY -r83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6jBAyvd0zaziGfjk9DgNyp115 -j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0A -kLppRQjbbpCBhqcqBT/mhDn4t/lXX0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97 -qA4bLJyuQHCH2u2nFoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Y -jj4Du9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10lO1Hm13ZB -ONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Leie2uPAmvylezkolwQOQv -T8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR12KvxAmLBsX5VYc8T1yaw15zLKYs4SgsO -kI26oQ== ------END CERTIFICATE----- - -COMODO RSA Certification Authority -================================== ------BEGIN CERTIFICATE----- -MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UE -BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG -A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwHhcNMTAwMTE5MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMC -R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE -ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR6FSS0gpWsawNJN3Fz0Rn -dJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8Xpz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZ -FGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+ -5eNu/Nio5JIk2kNrYrhV/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pG -x8cgoLEfZd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z+pUX -2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7wqP/0uK3pN/u6uPQL -OvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZahSL0896+1DSJMwBGB7FY79tOi4lu3 -sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVICu9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+C -GCe01a60y1Dma/RMhnEw6abfFobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5 -WdYgGq/yapiqcrxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E -FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w -DQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvlwFTPoCWOAvn9sKIN9SCYPBMt -rFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+ -nq6PK7o9mfjYcwlYRm6mnPTXJ9OV2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSg -tZx8jb8uk2IntznaFxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwW -sRqZCuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiKboHGhfKp -pC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmckejkk9u+UJueBPSZI9FoJA -zMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yLS0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHq -ZJx64SIDqZxubw5lT2yHh17zbqD5daWbQOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk52 -7RH89elWsn2/x20Kk4yl0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7I -LaZRfyHBNVOFBkpdn627G190 ------END CERTIFICATE----- - -USERTrust RSA Certification Authority -===================================== ------BEGIN CERTIFICATE----- -MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK -ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE -BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK -ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz -0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j -Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn -RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O -+T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq -/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE -Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM -lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8 -yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+ -eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd -BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF -MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW -FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ -7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ -Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM -8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi -FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi -yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c -J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw -sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx -Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9 ------END CERTIFICATE----- - -USERTrust ECC Certification Authority -===================================== ------BEGIN CERTIFICATE----- -MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC -VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU -aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC -VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU -aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv -biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2 -0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez -nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV -HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB -HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu -9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= ------END CERTIFICATE----- - -GlobalSign ECC Root CA - R4 -=========================== ------BEGIN CERTIFICATE----- -MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl -OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P -AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV -MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF -JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q= ------END CERTIFICATE----- - -GlobalSign ECC Root CA - R5 -=========================== ------BEGIN CERTIFICATE----- -MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 -SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS -h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd -BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx -uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 -yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 ------END CERTIFICATE----- - -Staat der Nederlanden Root CA - G3 -================================== ------BEGIN CERTIFICATE----- -MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE -CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g -Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC -TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l -ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y -olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t -x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy -EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K -Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur -mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5 -1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp -07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo -FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE -41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB -AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu -yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD -U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq -KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1 -v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA -8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b -8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r -mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq -1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI -JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV -tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk= ------END CERTIFICATE----- - -Staat der Nederlanden EV Root CA -================================ ------BEGIN CERTIFICATE----- -MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE -CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g -RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M -MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl -cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk -SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW -O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r -0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8 -Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV -XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr -08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV -0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd -74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx -fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa -ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI -eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu -c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq -5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN -b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN -f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi -5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4 -WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK -DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy -eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg== ------END CERTIFICATE----- - -IdenTrust Commercial Root CA 1 -============================== ------BEGIN CERTIFICATE----- -MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG -EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS -b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES -MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB -IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld -hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/ -mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi -1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C -XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl -3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy -NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV -WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg -xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix -uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC -AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI -hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH -6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg -ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt -ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV -YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX -feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro -kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe -2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz -Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R -cGzM7vRX+Bi6hG6H ------END CERTIFICATE----- - -IdenTrust Public Sector Root CA 1 -================================= ------BEGIN CERTIFICATE----- -MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG -EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv -ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV -UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS -b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy -P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6 -Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI -rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf -qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS -mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn -ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh -LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v -iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL -4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B -Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw -DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj -t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A -mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt -GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt -m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx -NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4 -Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI -ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC -ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ -3Wl9af0AVqW3rLatt8o+Ae+c ------END CERTIFICATE----- - -Entrust Root Certification Authority - G2 -========================================= ------BEGIN CERTIFICATE----- -MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV -BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy -bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug -b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw -HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT -DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx -OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s -eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi -MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP -/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz -HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU -s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y -TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx -AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6 -0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z -iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ -Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi -nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+ -vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO -e4pIb4tF9g== ------END CERTIFICATE----- - -Entrust Root Certification Authority - EC1 -========================================== ------BEGIN CERTIFICATE----- -MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx -FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn -YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl -ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 -IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw -FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs -LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg -dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt -IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy -AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef -9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE -FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h -vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8 -kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G ------END CERTIFICATE----- - -CFCA EV ROOT -============ ------BEGIN CERTIFICATE----- -MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE -CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB -IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw -MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD -DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV -BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD -7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN -uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW -ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7 -xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f -py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K -gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol -hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ -tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf -BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB -/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB -ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q -ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua -4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG -E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX -BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn -aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy -PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX -kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C -ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su ------END CERTIFICATE----- - -TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5 -========================================================= ------BEGIN CERTIFICATE----- -MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UEBhMCVFIxDzAN -BgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp -bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1Qg -RWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAw -ODA3MDFaFw0yMzA0MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0w -SwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8dmVubGnE -n2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRp -ZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEApCUZ4WWe60ghUEoI5RHwWrom/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537 -jVJp45wnEFPzpALFp/kRGml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1m -ep5Fimh34khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z5UNP -9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0hO8EuPbJbKoCPrZV -4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QIDAQABo0IwQDAdBgNVHQ4EFgQUVpkH -HtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI -hvcNAQELBQADggEBAJ5FdnsXSDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPo -BP5yCccLqh0lVX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq -URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nfpeYVhDfwwvJl -lpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CFYv4HAqGEVka+lgqaE9chTLd8 -B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW+qtB4Uu2NQvAmxU= ------END CERTIFICATE----- - -TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H6 -========================================================= ------BEGIN CERTIFICATE----- -MIIEJjCCAw6gAwIBAgIGfaHyZeyKMA0GCSqGSIb3DQEBCwUAMIGxMQswCQYDVQQGEwJUUjEPMA0G -A1UEBwwGQW5rYXJhMU0wSwYDVQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmls -acWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF -bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg2MB4XDTEzMTIxODA5 -MDQxMFoXDTIzMTIxNjA5MDQxMFowgbExCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExTTBL -BgNVBAoMRFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9pbSBHw7x2ZW5sacSf -aSBIaXptZXRsZXJpIEEuxZ4uMUIwQAYDVQQDDDlUw5xSS1RSVVNUIEVsZWt0cm9uaWsgU2VydGlm -aWthIEhpem1ldCBTYcSfbGF5xLFjxLFzxLEgSDYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK -AoIBAQCdsGjW6L0UlqMACprx9MfMkU1xeHe59yEmFXNRFpQJRwXiM/VomjX/3EsvMsew7eKC5W/a -2uqsxgbPJQ1BgfbBOCK9+bGlprMBvD9QFyv26WZV1DOzXPhDIHiTVRZwGTLmiddk671IUP320EED -wnS3/faAz1vFq6TWlRKb55cTMgPp1KtDWxbtMyJkKbbSk60vbNg9tvYdDjTu0n2pVQ8g9P0pu5Fb -HH3GQjhtQiht1AH7zYiXSX6484P4tZgvsycLSF5W506jM7NE1qXyGJTtHB6plVxiSvgNZ1GpryHV -+DKdeboaX+UEVU0TRv/yz3THGmNtwx8XEsMeED5gCLMxAgMBAAGjQjBAMB0GA1UdDgQWBBTdVRcT -9qzoSCHK77Wv0QAy7Z6MtTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG -9w0BAQsFAAOCAQEAb1gNl0OqFlQ+v6nfkkU/hQu7VtMMUszIv3ZnXuaqs6fvuay0EBQNdH49ba3R -fdCaqaXKGDsCQC4qnFAUi/5XfldcEQlLNkVS9z2sFP1E34uXI9TDwe7UU5X+LEr+DXCqu4svLcsy -o4LyVN/Y8t3XSHLuSqMplsNEzm61kod2pLv0kmzOLBQJZo6NrRa1xxsJYTvjIKIDgI6tflEATseW -hvtDmHd9KMeP2Cpu54Rvl0EpABZeTeIT6lnAY2c6RPuY/ATTMHKm9ocJV612ph1jmv3XZch4gyt1 -O6VbuA1df74jrlZVlFjvH4GMKrLN5ptjnhi85WsGtAuYSyher4hYyw== ------END CERTIFICATE----- - -Certinomis - Root CA -==================== ------BEGIN CERTIFICATE----- -MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjETMBEGA1UEChMK -Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAbBgNVBAMTFENlcnRpbm9taXMg -LSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMzMTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIx -EzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRD -ZXJ0aW5vbWlzIC0gUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQos -P5L2fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJflLieY6pOo -d5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQVWZUKxkd8aRi5pwP5ynap -z8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDFTKWrteoB4owuZH9kb/2jJZOLyKIOSY00 -8B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09x -RLWtwHkziOC/7aOgFLScCbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE -6OXWk6RiwsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJwx3t -FvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SGm/lg0h9tkQPTYKbV -PZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4F2iw4lNVYC2vPsKD2NkJK/DAZNuH -i5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZngWVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGj -YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I -6tNxIqSSaHh02TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF -AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/0KGRHCwPT5iV -WVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWwF6YSjNRieOpWauwK0kDDPAUw -Pk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZSg081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAX -lCOotQqSD7J6wWAsOMwaplv/8gzjqh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJ -y29SWwNyhlCVCNSNh4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9 -Iff/ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8Vbtaw5Bng -DwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwjY/M50n92Uaf0yKHxDHYi -I0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nM -cyrDflOR1m749fPH0FFNjkulW+YZFzvWgQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVr -hkIGuUE= ------END CERTIFICATE----- diff --git a/software/Slic3r-1.3.0.64bit/lib/Net/Cmd.pm b/software/Slic3r-1.3.0.64bit/lib/Net/Cmd.pm deleted file mode 100644 index dd08fdc4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Net/Cmd.pm +++ /dev/null @@ -1,646 +0,0 @@ -#line 1 "Net/Cmd.pm" -# Net::Cmd.pm -# -# Versions up to 2.29_1 Copyright (c) 1995-2006 Graham Barr . -# All rights reserved. -# Changes in Version 2.29_2 onwards Copyright (C) 2013-2015 Steve Hay. All -# rights reserved. -# This module is free software; you can redistribute it and/or modify it under -# the same terms as Perl itself, i.e. under the terms of either the GNU General -# Public License or the Artistic License, as specified in the F file. - -package Net::Cmd; - -use 5.008001; - -use strict; -use warnings; - -use Carp; -use Exporter; -use Symbol 'gensym'; -use Errno 'EINTR'; - -BEGIN { - if ($^O eq 'os390') { - require Convert::EBCDIC; - - # Convert::EBCDIC->import; - } -} - -our $VERSION = "3.10"; -our @ISA = qw(Exporter); -our @EXPORT = qw(CMD_INFO CMD_OK CMD_MORE CMD_REJECT CMD_ERROR CMD_PENDING); - -use constant CMD_INFO => 1; -use constant CMD_OK => 2; -use constant CMD_MORE => 3; -use constant CMD_REJECT => 4; -use constant CMD_ERROR => 5; -use constant CMD_PENDING => 0; - -use constant DEF_REPLY_CODE => 421; - -my %debug = (); - -my $tr = $^O eq 'os390' ? Convert::EBCDIC->new() : undef; - -sub toebcdic { - my $cmd = shift; - - unless (exists ${*$cmd}{'net_cmd_asciipeer'}) { - my $string = $_[0]; - my $ebcdicstr = $tr->toebcdic($string); - ${*$cmd}{'net_cmd_asciipeer'} = $string !~ /^\d+/ && $ebcdicstr =~ /^\d+/; - } - - ${*$cmd}{'net_cmd_asciipeer'} - ? $tr->toebcdic($_[0]) - : $_[0]; -} - - -sub toascii { - my $cmd = shift; - ${*$cmd}{'net_cmd_asciipeer'} - ? $tr->toascii($_[0]) - : $_[0]; -} - - -sub _print_isa { - no strict 'refs'; ## no critic (TestingAndDebugging::ProhibitNoStrict) - - my $pkg = shift; - my $cmd = $pkg; - - $debug{$pkg} ||= 0; - - my %done = (); - my @do = ($pkg); - my %spc = ($pkg, ""); - - while ($pkg = shift @do) { - next if defined $done{$pkg}; - - $done{$pkg} = 1; - - my $v = - defined ${"${pkg}::VERSION"} - ? "(" . ${"${pkg}::VERSION"} . ")" - : ""; - - my $spc = $spc{$pkg}; - $cmd->debug_print(1, "${spc}${pkg}${v}\n"); - - if (@{"${pkg}::ISA"}) { - @spc{@{"${pkg}::ISA"}} = (" " . $spc{$pkg}) x @{"${pkg}::ISA"}; - unshift(@do, @{"${pkg}::ISA"}); - } - } -} - - -sub debug { - @_ == 1 or @_ == 2 or croak 'usage: $obj->debug([LEVEL])'; - - my ($cmd, $level) = @_; - my $pkg = ref($cmd) || $cmd; - my $oldval = 0; - - if (ref($cmd)) { - $oldval = ${*$cmd}{'net_cmd_debug'} || 0; - } - else { - $oldval = $debug{$pkg} || 0; - } - - return $oldval - unless @_ == 2; - - $level = $debug{$pkg} || 0 - unless defined $level; - - _print_isa($pkg) - if ($level && !exists $debug{$pkg}); - - if (ref($cmd)) { - ${*$cmd}{'net_cmd_debug'} = $level; - } - else { - $debug{$pkg} = $level; - } - - $oldval; -} - - -sub message { - @_ == 1 or croak 'usage: $obj->message()'; - - my $cmd = shift; - - wantarray - ? @{${*$cmd}{'net_cmd_resp'}} - : join("", @{${*$cmd}{'net_cmd_resp'}}); -} - - -sub debug_text { $_[2] } - - -sub debug_print { - my ($cmd, $out, $text) = @_; - print STDERR $cmd, ($out ? '>>> ' : '<<< '), $cmd->debug_text($out, $text); -} - - -sub code { - @_ == 1 or croak 'usage: $obj->code()'; - - my $cmd = shift; - - ${*$cmd}{'net_cmd_code'} = $cmd->DEF_REPLY_CODE - unless exists ${*$cmd}{'net_cmd_code'}; - - ${*$cmd}{'net_cmd_code'}; -} - - -sub status { - @_ == 1 or croak 'usage: $obj->status()'; - - my $cmd = shift; - - substr(${*$cmd}{'net_cmd_code'}, 0, 1); -} - - -sub set_status { - @_ == 3 or croak 'usage: $obj->set_status(CODE, MESSAGE)'; - - my $cmd = shift; - my ($code, $resp) = @_; - - $resp = defined $resp ? [$resp] : [] - unless ref($resp); - - (${*$cmd}{'net_cmd_code'}, ${*$cmd}{'net_cmd_resp'}) = ($code, $resp); - - 1; -} - -sub _syswrite_with_timeout { - my $cmd = shift; - my $line = shift; - - my $len = length($line); - my $offset = 0; - my $win = ""; - vec($win, fileno($cmd), 1) = 1; - my $timeout = $cmd->timeout || undef; - my $initial = time; - my $pending = $timeout; - - local $SIG{PIPE} = 'IGNORE' unless $^O eq 'MacOS'; - - while ($len) { - my $wout; - my $nfound = select(undef, $wout = $win, undef, $pending); - if ((defined $nfound and $nfound > 0) or -f $cmd) # -f for testing on win32 - { - my $w = syswrite($cmd, $line, $len, $offset); - if (! defined($w) ) { - my $err = $!; - $cmd->close; - $cmd->_set_status_closed($err); - return; - } - $len -= $w; - $offset += $w; - } - elsif ($nfound == -1) { - if ( $! == EINTR ) { - if ( defined($timeout) ) { - redo if ($pending = $timeout - ( time - $initial ) ) > 0; - $cmd->_set_status_timeout; - return; - } - redo; - } - my $err = $!; - $cmd->close; - $cmd->_set_status_closed($err); - return; - } - else { - $cmd->_set_status_timeout; - return; - } - } - - return 1; -} - -sub _set_status_timeout { - my $cmd = shift; - my $pkg = ref($cmd) || $cmd; - - $cmd->set_status($cmd->DEF_REPLY_CODE, "[$pkg] Timeout"); - carp(ref($cmd) . ": " . (caller(1))[3] . "(): timeout") if $cmd->debug; -} - -sub _set_status_closed { - my $cmd = shift; - my $err = shift; - my $pkg = ref($cmd) || $cmd; - - $cmd->set_status($cmd->DEF_REPLY_CODE, "[$pkg] Connection closed"); - carp(ref($cmd) . ": " . (caller(1))[3] - . "(): unexpected EOF on command channel: $err") if $cmd->debug; -} - -sub _is_closed { - my $cmd = shift; - if (!defined fileno($cmd)) { - $cmd->_set_status_closed($!); - return 1; - } - return 0; -} - -sub command { - my $cmd = shift; - - return $cmd - if $cmd->_is_closed; - - $cmd->dataend() - if (exists ${*$cmd}{'net_cmd_last_ch'}); - - if (scalar(@_)) { - my $str = join( - " ", - map { - /\n/ - ? do { my $n = $_; $n =~ tr/\n/ /; $n } - : $_; - } @_ - ); - $str = $cmd->toascii($str) if $tr; - $str .= "\015\012"; - - $cmd->debug_print(1, $str) - if ($cmd->debug); - - # though documented to return undef on failure, the legacy behavior - # was to return $cmd even on failure, so this odd construct does that - $cmd->_syswrite_with_timeout($str) - or return $cmd; - } - - $cmd; -} - - -sub ok { - @_ == 1 or croak 'usage: $obj->ok()'; - - my $code = $_[0]->code; - 0 < $code && $code < 400; -} - - -sub unsupported { - my $cmd = shift; - - $cmd->set_status(580, 'Unsupported command'); - - 0; -} - - -sub getline { - my $cmd = shift; - - ${*$cmd}{'net_cmd_lines'} ||= []; - - return shift @{${*$cmd}{'net_cmd_lines'}} - if scalar(@{${*$cmd}{'net_cmd_lines'}}); - - my $partial = defined(${*$cmd}{'net_cmd_partial'}) ? ${*$cmd}{'net_cmd_partial'} : ""; - - return - if $cmd->_is_closed; - - my $fd = fileno($cmd); - my $rin = ""; - vec($rin, $fd, 1) = 1; - - my $buf; - - until (scalar(@{${*$cmd}{'net_cmd_lines'}})) { - my $timeout = $cmd->timeout || undef; - my $rout; - - my $select_ret = select($rout = $rin, undef, undef, $timeout); - if ($select_ret > 0) { - unless (sysread($cmd, $buf = "", 1024)) { - my $err = $!; - $cmd->close; - $cmd->_set_status_closed($err); - return; - } - - substr($buf, 0, 0) = $partial; ## prepend from last sysread - - my @buf = split(/\015?\012/, $buf, -1); ## break into lines - - $partial = pop @buf; - - push(@{${*$cmd}{'net_cmd_lines'}}, map {"$_\n"} @buf); - - } - else { - $cmd->_set_status_timeout; - return; - } - } - - ${*$cmd}{'net_cmd_partial'} = $partial; - - if ($tr) { - foreach my $ln (@{${*$cmd}{'net_cmd_lines'}}) { - $ln = $cmd->toebcdic($ln); - } - } - - shift @{${*$cmd}{'net_cmd_lines'}}; -} - - -sub ungetline { - my ($cmd, $str) = @_; - - ${*$cmd}{'net_cmd_lines'} ||= []; - unshift(@{${*$cmd}{'net_cmd_lines'}}, $str); -} - - -sub parse_response { - return () - unless $_[1] =~ s/^(\d\d\d)(.?)//o; - ($1, $2 eq "-"); -} - - -sub response { - my $cmd = shift; - my ($code, $more) = (undef) x 2; - - $cmd->set_status($cmd->DEF_REPLY_CODE, undef); # initialize the response - - while (1) { - my $str = $cmd->getline(); - - return CMD_ERROR - unless defined($str); - - $cmd->debug_print(0, $str) - if ($cmd->debug); - - ($code, $more) = $cmd->parse_response($str); - unless (defined $code) { - carp("$cmd: response(): parse error in '$str'") if ($cmd->debug); - $cmd->ungetline($str); - $@ = $str; # $@ used as tunneling hack - return CMD_ERROR; - } - - ${*$cmd}{'net_cmd_code'} = $code; - - push(@{${*$cmd}{'net_cmd_resp'}}, $str); - - last unless ($more); - } - - return unless defined $code; - substr($code, 0, 1); -} - - -sub read_until_dot { - my $cmd = shift; - my $fh = shift; - my $arr = []; - - while (1) { - my $str = $cmd->getline() or return; - - $cmd->debug_print(0, $str) - if ($cmd->debug & 4); - - last if ($str =~ /^\.\r?\n/o); - - $str =~ s/^\.\././o; - - if (defined $fh) { - print $fh $str; - } - else { - push(@$arr, $str); - } - } - - $arr; -} - - -sub datasend { - my $cmd = shift; - my $arr = @_ == 1 && ref($_[0]) ? $_[0] : \@_; - my $line = join("", @$arr); - - # Perls < 5.10.1 (with the exception of 5.8.9) have a performance problem with - # the substitutions below when dealing with strings stored internally in - # UTF-8, so downgrade them (if possible). - # Data passed to datasend() should be encoded to octets upstream already so - # shouldn't even have the UTF-8 flag on to start with, but if it so happens - # that the octets are stored in an upgraded string (as can sometimes occur) - # then they would still downgrade without fail anyway. - # Only Unicode codepoints > 0xFF stored in an upgraded string will fail to - # downgrade. We fail silently in that case, and a "Wide character in print" - # warning will be emitted later by syswrite(). - utf8::downgrade($line, 1) if $] < 5.010001 && $] != 5.008009; - - return 0 - if $cmd->_is_closed; - - my $last_ch = ${*$cmd}{'net_cmd_last_ch'}; - - # We have not send anything yet, so last_ch = "\012" means we are at the start of a line - $last_ch = ${*$cmd}{'net_cmd_last_ch'} = "\012" unless defined $last_ch; - - return 1 unless length $line; - - if ($cmd->debug) { - foreach my $b (split(/\n/, $line)) { - $cmd->debug_print(1, "$b\n"); - } - } - - $line =~ tr/\r\n/\015\012/ unless "\r" eq "\015"; - - my $first_ch = ''; - - if ($last_ch eq "\015") { - # Remove \012 so it does not get prefixed with another \015 below - # and escape the . if there is one following it because the fixup - # below will not find it - $first_ch = "\012" if $line =~ s/^\012(\.?)/$1$1/; - } - elsif ($last_ch eq "\012") { - # Fixup below will not find the . as the first character of the buffer - $first_ch = "." if $line =~ /^\./; - } - - $line =~ s/\015?\012(\.?)/\015\012$1$1/sg; - - substr($line, 0, 0) = $first_ch; - - ${*$cmd}{'net_cmd_last_ch'} = substr($line, -1, 1); - - $cmd->_syswrite_with_timeout($line) - or return; - - 1; -} - - -sub rawdatasend { - my $cmd = shift; - my $arr = @_ == 1 && ref($_[0]) ? $_[0] : \@_; - my $line = join("", @$arr); - - return 0 - if $cmd->_is_closed; - - return 1 - unless length($line); - - if ($cmd->debug) { - my $b = "$cmd>>> "; - print STDERR $b, join("\n$b", split(/\n/, $line)), "\n"; - } - - $cmd->_syswrite_with_timeout($line) - or return; - - 1; -} - - -sub dataend { - my $cmd = shift; - - return 0 - if $cmd->_is_closed; - - my $ch = ${*$cmd}{'net_cmd_last_ch'}; - my $tosend; - - if (!defined $ch) { - return 1; - } - elsif ($ch ne "\012") { - $tosend = "\015\012"; - } - - $tosend .= ".\015\012"; - - $cmd->debug_print(1, ".\n") - if ($cmd->debug); - - $cmd->_syswrite_with_timeout($tosend) - or return 0; - - delete ${*$cmd}{'net_cmd_last_ch'}; - - $cmd->response() == CMD_OK; -} - -# read and write to tied filehandle -sub tied_fh { - my $cmd = shift; - ${*$cmd}{'net_cmd_readbuf'} = ''; - my $fh = gensym(); - tie *$fh, ref($cmd), $cmd; - return $fh; -} - -# tie to myself -sub TIEHANDLE { - my $class = shift; - my $cmd = shift; - return $cmd; -} - -# Tied filehandle read. Reads requested data length, returning -# end-of-file when the dot is encountered. -sub READ { - my $cmd = shift; - my ($len, $offset) = @_[1, 2]; - return unless exists ${*$cmd}{'net_cmd_readbuf'}; - my $done = 0; - while (!$done and length(${*$cmd}{'net_cmd_readbuf'}) < $len) { - ${*$cmd}{'net_cmd_readbuf'} .= $cmd->getline() or return; - $done++ if ${*$cmd}{'net_cmd_readbuf'} =~ s/^\.\r?\n\Z//m; - } - - $_[0] = ''; - substr($_[0], $offset + 0) = substr(${*$cmd}{'net_cmd_readbuf'}, 0, $len); - substr(${*$cmd}{'net_cmd_readbuf'}, 0, $len) = ''; - delete ${*$cmd}{'net_cmd_readbuf'} if $done; - - return length $_[0]; -} - - -sub READLINE { - my $cmd = shift; - - # in this context, we use the presence of readbuf to - # indicate that we have not yet reached the eof - return unless exists ${*$cmd}{'net_cmd_readbuf'}; - my $line = $cmd->getline; - return if $line =~ /^\.\r?\n/; - $line; -} - - -sub PRINT { - my $cmd = shift; - my ($buf, $len, $offset) = @_; - $len ||= length($buf); - $offset += 0; - return unless $cmd->datasend(substr($buf, $offset, $len)); - ${*$cmd}{'net_cmd_sending'}++; # flag that we should call dataend() - return $len; -} - - -sub CLOSE { - my $cmd = shift; - my $r = exists(${*$cmd}{'net_cmd_sending'}) ? $cmd->dataend : 1; - delete ${*$cmd}{'net_cmd_readbuf'}; - delete ${*$cmd}{'net_cmd_sending'}; - $r; -} - -1; - -__END__ - - -#line 874 diff --git a/software/Slic3r-1.3.0.64bit/lib/Net/Config.pm b/software/Slic3r-1.3.0.64bit/lib/Net/Config.pm deleted file mode 100644 index f91384ba..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Net/Config.pm +++ /dev/null @@ -1,139 +0,0 @@ -#line 1 "Net/Config.pm" -# Net::Config.pm -# -# Versions up to 1.11 Copyright (c) 2000 Graham Barr . -# All rights reserved. -# Changes in Version 1.11_01 onwards Copyright (C) 2013-2014 Steve Hay. All -# rights reserved. -# This module is free software; you can redistribute it and/or modify it under -# the same terms as Perl itself, i.e. under the terms of either the GNU General -# Public License or the Artistic License, as specified in the F file. - -package Net::Config; - -use 5.008001; - -use strict; -use warnings; - -use Exporter; -use Socket qw(inet_aton inet_ntoa); - -our @EXPORT = qw(%NetConfig); -our @ISA = qw(Net::LocalCfg Exporter); -our $VERSION = "3.10"; - -our($CONFIGURE, $LIBNET_CFG); - -eval { - local @INC = @INC; - pop @INC if $INC[-1] eq '.'; - local $SIG{__DIE__}; - require Net::LocalCfg; -}; - -our %NetConfig = ( - nntp_hosts => [], - snpp_hosts => [], - pop3_hosts => [], - smtp_hosts => [], - ph_hosts => [], - daytime_hosts => [], - time_hosts => [], - inet_domain => undef, - ftp_firewall => undef, - ftp_ext_passive => 1, - ftp_int_passive => 1, - test_hosts => 1, - test_exist => 1, -); - -# -# Try to get as much configuration info as possible from InternetConfig -# -{ -## no critic (BuiltinFunctions::ProhibitStringyEval) -$^O eq 'MacOS' and eval < [ \$InternetConfig{ kICNNTPHost() } ], - pop3_hosts => [ \$InternetConfig{ kICMailAccount() } =~ /\@(.*)/ ], - smtp_hosts => [ \$InternetConfig{ kICSMTPHost() } ], - ftp_testhost => \$InternetConfig{ kICFTPHost() } ? \$InternetConfig{ kICFTPHost()} : undef, - ph_hosts => [ \$InternetConfig{ kICPhHost() } ], - ftp_ext_passive => \$InternetConfig{"646F676F\xA5UsePassiveMode"} || 0, - ftp_int_passive => \$InternetConfig{"646F676F\xA5UsePassiveMode"} || 0, - socks_hosts => - \$InternetConfig{ kICUseSocks() } ? [ \$InternetConfig{ kICSocksHost() } ] : [], - ftp_firewall => - \$InternetConfig{ kICUseFTPProxy() } ? [ \$InternetConfig{ kICFTPProxyHost() } ] : [], -); -\@NetConfig{keys %nc} = values %nc; -} -TRY_INTERNET_CONFIG -} - -my $file = __FILE__; -my $ref; -$file =~ s/Config.pm/libnet.cfg/; -if (-f $file) { - $ref = eval { local $SIG{__DIE__}; do $file }; - if (ref($ref) eq 'HASH') { - %NetConfig = (%NetConfig, %{$ref}); - $LIBNET_CFG = $file; - } -} -if ($< == $> and !$CONFIGURE) { - my $home = eval { local $SIG{__DIE__}; (getpwuid($>))[7] } || $ENV{HOME}; - $home ||= $ENV{HOMEDRIVE} . ($ENV{HOMEPATH} || '') if defined $ENV{HOMEDRIVE}; - if (defined $home) { - $file = $home . "/.libnetrc"; - $ref = eval { local $SIG{__DIE__}; do $file } if -f $file; - %NetConfig = (%NetConfig, %{$ref}) - if ref($ref) eq 'HASH'; - } -} -my ($k, $v); -while (($k, $v) = each %NetConfig) { - $NetConfig{$k} = [$v] - if ($k =~ /_hosts$/ and $k ne "test_hosts" and defined($v) and !ref($v)); -} - -# Take a hostname and determine if it is inside the firewall - - -sub requires_firewall { - shift; # ignore package - my $host = shift; - - return 0 unless defined $NetConfig{'ftp_firewall'}; - - $host = inet_aton($host) or return -1; - $host = inet_ntoa($host); - - if (exists $NetConfig{'local_netmask'}) { - my $quad = unpack("N", pack("C*", split(/\./, $host))); - my $list = $NetConfig{'local_netmask'}; - $list = [$list] unless ref($list); - foreach (@$list) { - my ($net, $bits) = (m#^(\d+\.\d+\.\d+\.\d+)/(\d+)$#) or next; - my $mask = ~0 << (32 - $bits); - my $addr = unpack("N", pack("C*", split(/\./, $net))); - - return 0 if (($addr & $mask) == ($quad & $mask)); - } - return 1; - } - - return 0; -} - -*is_external = \&requires_firewall; - -1; - -__END__ - -#line 346 diff --git a/software/Slic3r-1.3.0.64bit/lib/Net/Domain.pm b/software/Slic3r-1.3.0.64bit/lib/Net/Domain.pm deleted file mode 100644 index 5e4d48b6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Net/Domain.pm +++ /dev/null @@ -1,312 +0,0 @@ -#line 1 "Net/Domain.pm" -# Net::Domain.pm -# -# Versions up to 2.21 Copyright (c) 1995-1998 Graham Barr . -# All rights reserved. -# Changes in Version 2.22 onwards Copyright (C) 2013-2014 Steve Hay. All rights -# reserved. -# This module is free software; you can redistribute it and/or modify it under -# the same terms as Perl itself, i.e. under the terms of either the GNU General -# Public License or the Artistic License, as specified in the F file. - -package Net::Domain; - -use 5.008001; - -use strict; -use warnings; - -use Carp; -use Exporter; -use Net::Config; - -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(hostname hostdomain hostfqdn domainname); -our $VERSION = "3.10"; - -my ($host, $domain, $fqdn) = (undef, undef, undef); - -# Try every conceivable way to get hostname. - - -sub _hostname { - - # we already know it - return $host - if (defined $host); - - if ($^O eq 'MSWin32') { - require Socket; - my ($name, $alias, $type, $len, @addr) = gethostbyname($ENV{'COMPUTERNAME'} || 'localhost'); - while (@addr) { - my $a = shift(@addr); - $host = gethostbyaddr($a, Socket::AF_INET()); - last if defined $host; - } - if (defined($host) && index($host, '.') > 0) { - $fqdn = $host; - ($host, $domain) = $fqdn =~ /^([^.]+)\.(.*)$/; - } - return $host; - } - elsif ($^O eq 'MacOS') { - chomp($host = `hostname`); - } - elsif ($^O eq 'VMS') { ## multiple varieties of net s/w makes this hard - $host = $ENV{'UCX$INET_HOST'} if defined($ENV{'UCX$INET_HOST'}); - $host = $ENV{'MULTINET_HOST_NAME'} if defined($ENV{'MULTINET_HOST_NAME'}); - if (index($host, '.') > 0) { - $fqdn = $host; - ($host, $domain) = $fqdn =~ /^([^.]+)\.(.*)$/; - } - return $host; - } - else { - local $SIG{'__DIE__'}; - - # syscall is preferred since it avoids tainting problems - eval { - my $tmp = "\0" x 256; ## preload scalar - eval { - package main; - require "syscall.ph"; ## no critic (Modules::RequireBarewordIncludes) - defined(&main::SYS_gethostname); - } - || eval { - package main; - require "sys/syscall.ph"; ## no critic (Modules::RequireBarewordIncludes) - defined(&main::SYS_gethostname); - } - and $host = - (syscall(&main::SYS_gethostname, $tmp, 256) == 0) - ? $tmp - : undef; - } - - # POSIX - || eval { - require POSIX; - $host = (POSIX::uname())[1]; - } - - # trusty old hostname command - || eval { - chop($host = `(hostname) 2>/dev/null`); # BSD'ish - } - - # sysV/POSIX uname command (may truncate) - || eval { - chop($host = `uname -n 2>/dev/null`); ## SYSV'ish && POSIX'ish - } - - # Apollo pre-SR10 - || eval { $host = (split(/[:. ]/, `/com/host`, 6))[0]; } - - || eval { $host = ""; }; - } - - # remove garbage - $host =~ s/[\0\r\n]+//go; - $host =~ s/(\A\.+|\.+\Z)//go; - $host =~ s/\.\.+/\./go; - - $host; -} - - -sub _hostdomain { - - # we already know it - return $domain - if (defined $domain); - - local $SIG{'__DIE__'}; - - return $domain = $NetConfig{'inet_domain'} - if defined $NetConfig{'inet_domain'}; - - # try looking in /etc/resolv.conf - # putting this here and assuming that it is correct, eliminates - # calls to gethostbyname, and therefore DNS lookups. This helps - # those on dialup systems. - - local ($_); - - if (open(my $res, '<', "/etc/resolv.conf")) { - while (<$res>) { - $domain = $1 - if (/\A\s*(?:domain|search)\s+(\S+)/); - } - close($res); - - return $domain - if (defined $domain); - } - - # just try hostname and system calls - - my $host = _hostname(); - my (@hosts); - - @hosts = ($host, "localhost"); - - unless (defined($host) && $host =~ /\./) { - my $dom = undef; - eval { - my $tmp = "\0" x 256; ## preload scalar - eval { - package main; - require "syscall.ph"; ## no critic (Modules::RequireBarewordIncludes) - } - || eval { - package main; - require "sys/syscall.ph"; ## no critic (Modules::RequireBarewordIncludes) - } - and $dom = - (syscall(&main::SYS_getdomainname, $tmp, 256) == 0) - ? $tmp - : undef; - }; - - if ($^O eq 'VMS') { - $dom ||= $ENV{'TCPIP$INET_DOMAIN'} - || $ENV{'UCX$INET_DOMAIN'}; - } - - chop($dom = `domainname 2>/dev/null`) - unless (defined $dom || $^O =~ /^(?:cygwin|MSWin32|android)/); - - if (defined $dom) { - my @h = (); - $dom =~ s/^\.+//; - while (length($dom)) { - push(@h, "$host.$dom"); - $dom =~ s/^[^.]+.+// or last; - } - unshift(@hosts, @h); - } - } - - # Attempt to locate FQDN - - foreach (grep { defined $_ } @hosts) { - my @info = gethostbyname($_); - - next unless @info; - - # look at real name & aliases - foreach my $site ($info[0], split(/ /, $info[1])) { - if (rindex($site, ".") > 0) { - - # Extract domain from FQDN - - ($domain = $site) =~ s/\A[^.]+\.//; - return $domain; - } - } - } - - # Look for environment variable - - $domain ||= $ENV{LOCALDOMAIN} || $ENV{DOMAIN}; - - if (defined $domain) { - $domain =~ s/[\r\n\0]+//g; - $domain =~ s/(\A\.+|\.+\Z)//g; - $domain =~ s/\.\.+/\./g; - } - - $domain; -} - - -sub domainname { - - return $fqdn - if (defined $fqdn); - - _hostname(); - - # *.local names are special on darwin. If we call gethostbyname below, it - # may hang while waiting for another, non-existent computer to respond. - if($^O eq 'darwin' && $host =~ /\.local$/) { - return $host; - } - - _hostdomain(); - - # Assumption: If the host name does not contain a period - # and the domain name does, then assume that they are correct - # this helps to eliminate calls to gethostbyname, and therefore - # eliminate DNS lookups - - return $fqdn = $host . "." . $domain - if (defined $host - and defined $domain - and $host !~ /\./ - and $domain =~ /\./); - - # For hosts that have no name, just an IP address - return $fqdn = $host if defined $host and $host =~ /^\d+(\.\d+){3}$/; - - my @host = defined $host ? split(/\./, $host) : ('localhost'); - my @domain = defined $domain ? split(/\./, $domain) : (); - my @fqdn = (); - - # Determine from @host & @domain the FQDN - - my @d = @domain; - -LOOP: - while (1) { - my @h = @host; - while (@h) { - my $tmp = join(".", @h, @d); - if ((gethostbyname($tmp))[0]) { - @fqdn = (@h, @d); - $fqdn = $tmp; - last LOOP; - } - pop @h; - } - last unless shift @d; - } - - if (@fqdn) { - $host = shift @fqdn; - until ((gethostbyname($host))[0]) { - $host .= "." . shift @fqdn; - } - $domain = join(".", @fqdn); - } - else { - undef $host; - undef $domain; - undef $fqdn; - } - - $fqdn; -} - - -sub hostfqdn { domainname() } - - -sub hostname { - domainname() - unless (defined $host); - return $host; -} - - -sub hostdomain { - domainname() - unless (defined $domain); - return $domain; -} - -1; # Keep require happy - -__END__ - -#line 365 diff --git a/software/Slic3r-1.3.0.64bit/lib/Net/FTP.pm b/software/Slic3r-1.3.0.64bit/lib/Net/FTP.pm deleted file mode 100644 index 73b43ee2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Net/FTP.pm +++ /dev/null @@ -1,1427 +0,0 @@ -#line 1 "Net/FTP.pm" -# Net::FTP.pm -# -# Versions up to 2.77_2 Copyright (c) 1995-2004 Graham Barr . -# All rights reserved. -# Changes in Version 2.77_3 onwards Copyright (C) 2013-2015 Steve Hay. All -# rights reserved. -# This module is free software; you can redistribute it and/or modify it under -# the same terms as Perl itself, i.e. under the terms of either the GNU General -# Public License or the Artistic License, as specified in the F file. -# -# Documentation (at end) improved 1996 by Nathan Torkington . - -package Net::FTP; - -use 5.008001; - -use strict; -use warnings; - -use Carp; -use Fcntl qw(O_WRONLY O_RDONLY O_APPEND O_CREAT O_TRUNC); -use IO::Socket; -use Net::Cmd; -use Net::Config; -use Socket; -use Time::Local; - -our $VERSION = '3.10'; - -our $IOCLASS; -my $family_key; -BEGIN { - # Code for detecting if we can use SSL - my $ssl_class = eval { - require IO::Socket::SSL; - # first version with default CA on most platforms - no warnings 'numeric'; - IO::Socket::SSL->VERSION(2.007); - } && 'IO::Socket::SSL'; - - my $nossl_warn = !$ssl_class && - 'To use SSL please install IO::Socket::SSL with version>=2.007'; - - # Code for detecting if we can use IPv6 - my $inet6_class = eval { - require IO::Socket::IP; - no warnings 'numeric'; - IO::Socket::IP->VERSION(0.25); - } && 'IO::Socket::IP' || eval { - require IO::Socket::INET6; - no warnings 'numeric'; - IO::Socket::INET6->VERSION(2.62); - } && 'IO::Socket::INET6'; - - sub can_ssl { $ssl_class }; - sub can_inet6 { $inet6_class }; - - $IOCLASS = $ssl_class || $inet6_class || 'IO::Socket::INET'; - $family_key = - ( $ssl_class ? $ssl_class->can_ipv6 : $inet6_class || '' ) - eq 'IO::Socket::IP' - ? 'Family' : 'Domain'; -} - -our @ISA = ('Exporter','Net::Cmd',$IOCLASS); - -use constant TELNET_IAC => 255; -use constant TELNET_IP => 244; -use constant TELNET_DM => 242; - -use constant EBCDIC => $^O eq 'os390'; - -sub new { - my $pkg = shift; - my ($peer, %arg); - if (@_ % 2) { - $peer = shift; - %arg = @_; - } - else { - %arg = @_; - $peer = delete $arg{Host}; - } - - my $host = $peer; - my $fire = undef; - my $fire_type = undef; - - if (exists($arg{Firewall}) || Net::Config->requires_firewall($peer)) { - $fire = $arg{Firewall} - || $ENV{FTP_FIREWALL} - || $NetConfig{ftp_firewall} - || undef; - - if (defined $fire) { - $peer = $fire; - delete $arg{Port}; - $fire_type = $arg{FirewallType} - || $ENV{FTP_FIREWALL_TYPE} - || $NetConfig{firewall_type} - || undef; - } - } - - my %tlsargs; - if (can_ssl()) { - # for name verification strip port from domain:port, ipv4:port, [ipv6]:port - (my $hostname = $host) =~s{(? 'ftp', - SSL_verifycn_name => $hostname, - # use SNI if supported by IO::Socket::SSL - $pkg->can_client_sni ? (SSL_hostname => $hostname):(), - # reuse SSL session of control connection in data connections - SSL_session_cache => Net::FTP::_SSL_SingleSessionCache->new, - ); - # user defined SSL arg - $tlsargs{$_} = $arg{$_} for(grep { m{^SSL_} } keys %arg); - - } elsif ($arg{SSL}) { - croak("IO::Socket::SSL >= 2.007 needed for SSL support"); - } - - my $ftp = $pkg->SUPER::new( - PeerAddr => $peer, - PeerPort => $arg{Port} || ($arg{SSL} ? 'ftps(990)' : 'ftp(21)'), - LocalAddr => $arg{'LocalAddr'}, - $family_key => $arg{Domain} || $arg{Family}, - Proto => 'tcp', - Timeout => defined $arg{Timeout} ? $arg{Timeout} : 120, - %tlsargs, - $arg{SSL} ? ():( SSL_startHandshake => 0 ), - ) or return; - - ${*$ftp}{'net_ftp_host'} = $host; # Remote hostname - ${*$ftp}{'net_ftp_type'} = 'A'; # ASCII/binary/etc mode - ${*$ftp}{'net_ftp_blksize'} = abs($arg{'BlockSize'} || 10240); - - ${*$ftp}{'net_ftp_localaddr'} = $arg{'LocalAddr'}; - ${*$ftp}{'net_ftp_domain'} = $arg{Domain} || $arg{Family}; - - ${*$ftp}{'net_ftp_firewall'} = $fire - if (defined $fire); - ${*$ftp}{'net_ftp_firewall_type'} = $fire_type - if (defined $fire_type); - - ${*$ftp}{'net_ftp_passive'} = - int exists $arg{Passive} ? $arg{Passive} - : exists $ENV{FTP_PASSIVE} ? $ENV{FTP_PASSIVE} - : defined $fire ? $NetConfig{ftp_ext_passive} - : $NetConfig{ftp_int_passive}; # Whew! :-) - - ${*$ftp}{net_ftp_tlsargs} = \%tlsargs if %tlsargs; - if ($arg{SSL}) { - ${*$ftp}{net_ftp_tlsprot} = 'P'; - ${*$ftp}{net_ftp_tlsdirect} = 1; - } - - $ftp->hash(exists $arg{Hash} ? $arg{Hash} : 0, 1024); - - $ftp->autoflush(1); - - $ftp->debug(exists $arg{Debug} ? $arg{Debug} : undef); - - unless ($ftp->response() == CMD_OK) { - $ftp->close(); - # keep @$ if no message. Happens, when response did not start with a code. - $@ = $ftp->message || $@; - undef $ftp; - } - - $ftp; -} - -## -## User interface methods -## - - -sub host { - my $me = shift; - ${*$me}{'net_ftp_host'}; -} - -sub passive { - my $ftp = shift; - return ${*$ftp}{'net_ftp_passive'} unless @_; - ${*$ftp}{'net_ftp_passive'} = shift; -} - - -sub hash { - my $ftp = shift; # self - - my ($h, $b) = @_; - unless ($h) { - delete ${*$ftp}{'net_ftp_hash'}; - return [\*STDERR, 0]; - } - ($h, $b) = (ref($h) ? $h : \*STDERR, $b || 1024); - select((select($h), $| = 1)[0]); - $b = 512 if $b < 512; - ${*$ftp}{'net_ftp_hash'} = [$h, $b]; -} - - -sub quit { - my $ftp = shift; - - $ftp->_QUIT; - $ftp->close; -} - - -sub DESTROY { } - - -sub ascii { shift->type('A', @_); } -sub binary { shift->type('I', @_); } - - -sub ebcdic { - carp "TYPE E is unsupported, shall default to I"; - shift->type('E', @_); -} - - -sub byte { - carp "TYPE L is unsupported, shall default to I"; - shift->type('L', @_); -} - -# Allow the user to send a command directly, BE CAREFUL !! - - -sub quot { - my $ftp = shift; - my $cmd = shift; - - $ftp->command(uc $cmd, @_); - $ftp->response(); -} - - -sub site { - my $ftp = shift; - - $ftp->command("SITE", @_); - $ftp->response(); -} - - -sub mdtm { - my $ftp = shift; - my $file = shift; - - # Server Y2K bug workaround - # - # sigh; some idiotic FTP servers use ("19%d",tm.tm_year) instead of - # ("%d",tm.tm_year+1900). This results in an extra digit in the - # string returned. To account for this we allow an optional extra - # digit in the year. Then if the first two digits are 19 we use the - # remainder, otherwise we subtract 1900 from the whole year. - - $ftp->_MDTM($file) - && $ftp->message =~ /((\d\d)(\d\d\d?))(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/ - ? timegm($8, $7, $6, $5, $4 - 1, $2 eq '19' ? $3 : ($1 - 1900)) - : undef; -} - - -sub size { - my $ftp = shift; - my $file = shift; - my $io; - if ($ftp->supported("SIZE")) { - return $ftp->_SIZE($file) - ? ($ftp->message =~ /(\d+)\s*(bytes?\s*)?$/)[0] - : undef; - } - elsif ($ftp->supported("STAT")) { - my @msg; - return - unless $ftp->_STAT($file) && (@msg = $ftp->message) == 3; - foreach my $line (@msg) { - return (split(/\s+/, $line))[4] - if $line =~ /^[-rwxSsTt]{10}/; - } - } - else { - my @files = $ftp->dir($file); - if (@files) { - return (split(/\s+/, $1))[4] - if $files[0] =~ /^([-rwxSsTt]{10}.*)$/; - } - } - undef; -} - - -sub starttls { - my $ftp = shift; - can_ssl() or croak("IO::Socket::SSL >= 2.007 needed for SSL support"); - $ftp->is_SSL and croak("called starttls within SSL session"); - $ftp->_AUTH('TLS') == CMD_OK or return; - - $ftp->connect_SSL or return; - $ftp->prot('P'); - return 1; -} - -sub prot { - my ($ftp,$prot) = @_; - $prot eq 'C' or $prot eq 'P' or croak("prot must by C or P"); - $ftp->_PBSZ(0) or return; - $ftp->_PROT($prot) or return; - ${*$ftp}{net_ftp_tlsprot} = $prot; - return 1; -} - -sub stoptls { - my $ftp = shift; - $ftp->is_SSL or croak("called stoptls outside SSL session"); - ${*$ftp}{net_ftp_tlsdirect} and croak("cannot stoptls direct SSL session"); - $ftp->_CCC() or return; - $ftp->stop_SSL(); - return 1; -} - -sub login { - my ($ftp, $user, $pass, $acct) = @_; - my ($ok, $ruser, $fwtype); - - unless (defined $user) { - require Net::Netrc; - - my $rc = Net::Netrc->lookup(${*$ftp}{'net_ftp_host'}); - - ($user, $pass, $acct) = $rc->lpa() - if ($rc); - } - - $user ||= "anonymous"; - $ruser = $user; - - $fwtype = ${*$ftp}{'net_ftp_firewall_type'} - || $NetConfig{'ftp_firewall_type'} - || 0; - - if ($fwtype && defined ${*$ftp}{'net_ftp_firewall'}) { - if ($fwtype == 1 || $fwtype == 7) { - $user .= '@' . ${*$ftp}{'net_ftp_host'}; - } - else { - require Net::Netrc; - - my $rc = Net::Netrc->lookup(${*$ftp}{'net_ftp_firewall'}); - - my ($fwuser, $fwpass, $fwacct) = $rc ? $rc->lpa() : (); - - if ($fwtype == 5) { - $user = join('@', $user, $fwuser, ${*$ftp}{'net_ftp_host'}); - $pass = $pass . '@' . $fwpass; - } - else { - if ($fwtype == 2) { - $user .= '@' . ${*$ftp}{'net_ftp_host'}; - } - elsif ($fwtype == 6) { - $fwuser .= '@' . ${*$ftp}{'net_ftp_host'}; - } - - $ok = $ftp->_USER($fwuser); - - return 0 unless $ok == CMD_OK || $ok == CMD_MORE; - - $ok = $ftp->_PASS($fwpass || ""); - - return 0 unless $ok == CMD_OK || $ok == CMD_MORE; - - $ok = $ftp->_ACCT($fwacct) - if defined($fwacct); - - if ($fwtype == 3) { - $ok = $ftp->command("SITE", ${*$ftp}{'net_ftp_host'})->response; - } - elsif ($fwtype == 4) { - $ok = $ftp->command("OPEN", ${*$ftp}{'net_ftp_host'})->response; - } - - return 0 unless $ok == CMD_OK || $ok == CMD_MORE; - } - } - } - - $ok = $ftp->_USER($user); - - # Some dumb firewalls don't prefix the connection messages - $ok = $ftp->response() - if ($ok == CMD_OK && $ftp->code == 220 && $user =~ /\@/); - - if ($ok == CMD_MORE) { - unless (defined $pass) { - require Net::Netrc; - - my $rc = Net::Netrc->lookup(${*$ftp}{'net_ftp_host'}, $ruser); - - ($ruser, $pass, $acct) = $rc->lpa() - if ($rc); - - $pass = '-anonymous@' - if (!defined $pass && (!defined($ruser) || $ruser =~ /^anonymous/o)); - } - - $ok = $ftp->_PASS($pass || ""); - } - - $ok = $ftp->_ACCT($acct) - if (defined($acct) && ($ok == CMD_MORE || $ok == CMD_OK)); - - if ($fwtype == 7 && $ok == CMD_OK && defined ${*$ftp}{'net_ftp_firewall'}) { - my ($f, $auth, $resp) = _auth_id($ftp); - $ftp->authorize($auth, $resp) if defined($resp); - } - - $ok == CMD_OK; -} - - -sub account { - @_ == 2 or croak 'usage: $ftp->account( ACCT )'; - my $ftp = shift; - my $acct = shift; - $ftp->_ACCT($acct) == CMD_OK; -} - - -sub _auth_id { - my ($ftp, $auth, $resp) = @_; - - unless (defined $resp) { - require Net::Netrc; - - $auth ||= eval { (getpwuid($>))[0] } || $ENV{NAME}; - - my $rc = Net::Netrc->lookup(${*$ftp}{'net_ftp_firewall'}, $auth) - || Net::Netrc->lookup(${*$ftp}{'net_ftp_firewall'}); - - ($auth, $resp) = $rc->lpa() - if ($rc); - } - ($ftp, $auth, $resp); -} - - -sub authorize { - @_ >= 1 || @_ <= 3 or croak 'usage: $ftp->authorize( [AUTH [, RESP]])'; - - my ($ftp, $auth, $resp) = &_auth_id; - - my $ok = $ftp->_AUTH($auth || ""); - - return $ftp->_RESP($resp || "") - if ($ok == CMD_MORE); - - $ok == CMD_OK; -} - - -sub rename { - @_ == 3 or croak 'usage: $ftp->rename(FROM, TO)'; - - my ($ftp, $from, $to) = @_; - - $ftp->_RNFR($from) - && $ftp->_RNTO($to); -} - - -sub type { - my $ftp = shift; - my $type = shift; - my $oldval = ${*$ftp}{'net_ftp_type'}; - - return $oldval - unless (defined $type); - - return - unless ($ftp->_TYPE($type, @_)); - - ${*$ftp}{'net_ftp_type'} = join(" ", $type, @_); - - $oldval; -} - - -sub alloc { - my $ftp = shift; - my $size = shift; - my $oldval = ${*$ftp}{'net_ftp_allo'}; - - return $oldval - unless (defined $size); - - return - unless ($ftp->supported("ALLO") and $ftp->_ALLO($size, @_)); - - ${*$ftp}{'net_ftp_allo'} = join(" ", $size, @_); - - $oldval; -} - - -sub abort { - my $ftp = shift; - - send($ftp, pack("CCC", TELNET_IAC, TELNET_IP, TELNET_IAC), MSG_OOB); - - $ftp->command(pack("C", TELNET_DM) . "ABOR"); - - ${*$ftp}{'net_ftp_dataconn'}->close() - if defined ${*$ftp}{'net_ftp_dataconn'}; - - $ftp->response(); - - $ftp->status == CMD_OK; -} - - -sub get { - my ($ftp, $remote, $local, $where) = @_; - - my ($loc, $len, $buf, $resp, $data); - local *FD; - - my $localfd = ref($local) || ref(\$local) eq "GLOB"; - - ($local = $remote) =~ s#^.*/## - unless (defined $local); - - croak("Bad remote filename '$remote'\n") - if $remote =~ /[\r\n]/s; - - ${*$ftp}{'net_ftp_rest'} = $where if defined $where; - my $rest = ${*$ftp}{'net_ftp_rest'}; - - delete ${*$ftp}{'net_ftp_port'}; - delete ${*$ftp}{'net_ftp_pasv'}; - - $data = $ftp->retr($remote) - or return; - - if ($localfd) { - $loc = $local; - } - else { - $loc = \*FD; - - unless (sysopen($loc, $local, O_CREAT | O_WRONLY | ($rest ? O_APPEND: O_TRUNC))) { - carp "Cannot open Local file $local: $!\n"; - $data->abort; - return; - } - } - - if ($ftp->type eq 'I' && !binmode($loc)) { - carp "Cannot binmode Local file $local: $!\n"; - $data->abort; - close($loc) unless $localfd; - return; - } - - $buf = ''; - my ($count, $hashh, $hashb, $ref) = (0); - - ($hashh, $hashb) = @$ref - if ($ref = ${*$ftp}{'net_ftp_hash'}); - - my $blksize = ${*$ftp}{'net_ftp_blksize'}; - local $\; # Just in case - - while (1) { - last unless $len = $data->read($buf, $blksize); - - if (EBCDIC && $ftp->type ne 'I') { - $buf = $ftp->toebcdic($buf); - $len = length($buf); - } - - if ($hashh) { - $count += $len; - print $hashh "#" x (int($count / $hashb)); - $count %= $hashb; - } - unless (print $loc $buf) { - carp "Cannot write to Local file $local: $!\n"; - $data->abort; - close($loc) - unless $localfd; - return; - } - } - - print $hashh "\n" if $hashh; - - unless ($localfd) { - unless (close($loc)) { - carp "Cannot close file $local (perhaps disk space) $!\n"; - return; - } - } - - unless ($data->close()) # implied $ftp->response - { - carp "Unable to close datastream"; - return; - } - - return $local; -} - - -sub cwd { - @_ == 1 || @_ == 2 or croak 'usage: $ftp->cwd( [ DIR ] )'; - - my ($ftp, $dir) = @_; - - $dir = "/" unless defined($dir) && $dir =~ /\S/; - - $dir eq ".." - ? $ftp->_CDUP() - : $ftp->_CWD($dir); -} - - -sub cdup { - @_ == 1 or croak 'usage: $ftp->cdup()'; - $_[0]->_CDUP; -} - - -sub pwd { - @_ == 1 || croak 'usage: $ftp->pwd()'; - my $ftp = shift; - - $ftp->_PWD(); - $ftp->_extract_path; -} - -# rmdir( $ftp, $dir, [ $recurse ] ) -# -# Removes $dir on remote host via FTP. -# $ftp is handle for remote host -# -# If $recurse is TRUE, the directory and deleted recursively. -# This means all of its contents and subdirectories. -# -# Initial version contributed by Dinkum Software -# -sub rmdir { - @_ == 2 || @_ == 3 or croak('usage: $ftp->rmdir( DIR [, RECURSE ] )'); - - # Pick off the args - my ($ftp, $dir, $recurse) = @_; - my $ok; - - return $ok - if $ok = $ftp->_RMD($dir) - or !$recurse; - - # Try to delete the contents - # Get a list of all the files in the directory, excluding the current and parent directories - my @filelist = map { /^(?:\S+;)+ (.+)$/ ? ($1) : () } grep { !/^(?:\S+;)*type=[cp]dir;/ } $ftp->_list_cmd("MLSD", $dir); - - # Fallback to using the less well-defined NLST command if MLSD fails - @filelist = grep { !/^\.{1,2}$/ } $ftp->ls($dir) - unless @filelist; - - return - unless @filelist; # failed, it is probably not a directory - - return $ftp->delete($dir) - if @filelist == 1 and $dir eq $filelist[0]; - - # Go thru and delete each file or the directory - foreach my $file (map { m,/, ? $_ : "$dir/$_" } @filelist) { - next # successfully deleted the file - if $ftp->delete($file); - - # Failed to delete it, assume its a directory - # Recurse and ignore errors, the final rmdir() will - # fail on any errors here - return $ok - unless $ok = $ftp->rmdir($file, 1); - } - - # Directory should be empty - # Try to remove the directory again - # Pass results directly to caller - # If any of the prior deletes failed, this - # rmdir() will fail because directory is not empty - return $ftp->_RMD($dir); -} - - -sub restart { - @_ == 2 || croak 'usage: $ftp->restart( BYTE_OFFSET )'; - - my ($ftp, $where) = @_; - - ${*$ftp}{'net_ftp_rest'} = $where; - - return; -} - - -sub mkdir { - @_ == 2 || @_ == 3 or croak 'usage: $ftp->mkdir( DIR [, RECURSE ] )'; - - my ($ftp, $dir, $recurse) = @_; - - $ftp->_MKD($dir) || $recurse - or return; - - my $path = $dir; - - unless ($ftp->ok) { - my @path = split(m#(?=/+)#, $dir); - - $path = ""; - - while (@path) { - $path .= shift @path; - - $ftp->_MKD($path); - - $path = $ftp->_extract_path($path); - } - - # If the creation of the last element was not successful, see if we - # can cd to it, if so then return path - - unless ($ftp->ok) { - my ($status, $message) = ($ftp->status, $ftp->message); - my $pwd = $ftp->pwd; - - if ($pwd && $ftp->cwd($dir)) { - $path = $dir; - $ftp->cwd($pwd); - } - else { - undef $path; - } - $ftp->set_status($status, $message); - } - } - - $path; -} - - -sub delete { - @_ == 2 || croak 'usage: $ftp->delete( FILENAME )'; - - $_[0]->_DELE($_[1]); -} - - -sub put { shift->_store_cmd("stor", @_) } -sub put_unique { shift->_store_cmd("stou", @_) } -sub append { shift->_store_cmd("appe", @_) } - - -sub nlst { shift->_data_cmd("NLST", @_) } -sub list { shift->_data_cmd("LIST", @_) } -sub retr { shift->_data_cmd("RETR", @_) } -sub stor { shift->_data_cmd("STOR", @_) } -sub stou { shift->_data_cmd("STOU", @_) } -sub appe { shift->_data_cmd("APPE", @_) } - - -sub _store_cmd { - my ($ftp, $cmd, $local, $remote) = @_; - my ($loc, $sock, $len, $buf); - local *FD; - - my $localfd = ref($local) || ref(\$local) eq "GLOB"; - - if (!defined($remote) and 'STOU' ne uc($cmd)) { - croak 'Must specify remote filename with stream input' - if $localfd; - - require File::Basename; - $remote = File::Basename::basename($local); - } - if (defined ${*$ftp}{'net_ftp_allo'}) { - delete ${*$ftp}{'net_ftp_allo'}; - } - else { - - # if the user hasn't already invoked the alloc method since the last - # _store_cmd call, figure out if the local file is a regular file(not - # a pipe, or device) and if so get the file size from stat, and send - # an ALLO command before sending the STOR, STOU, or APPE command. - my $size = do { local $^W; -f $local && -s _ }; # no ALLO if sending data from a pipe - ${*$ftp}{'net_ftp_allo'} = $size if $size; - } - croak("Bad remote filename '$remote'\n") - if defined($remote) and $remote =~ /[\r\n]/s; - - if ($localfd) { - $loc = $local; - } - else { - $loc = \*FD; - - unless (sysopen($loc, $local, O_RDONLY)) { - carp "Cannot open Local file $local: $!\n"; - return; - } - } - - if ($ftp->type eq 'I' && !binmode($loc)) { - carp "Cannot binmode Local file $local: $!\n"; - return; - } - - delete ${*$ftp}{'net_ftp_port'}; - delete ${*$ftp}{'net_ftp_pasv'}; - - $sock = $ftp->_data_cmd($cmd, grep { defined } $remote) - or return; - - $remote = ($ftp->message =~ /\w+\s*:\s*(.*)/)[0] - if 'STOU' eq uc $cmd; - - my $blksize = ${*$ftp}{'net_ftp_blksize'}; - - my ($count, $hashh, $hashb, $ref) = (0); - - ($hashh, $hashb) = @$ref - if ($ref = ${*$ftp}{'net_ftp_hash'}); - - while (1) { - last unless $len = read($loc, $buf = "", $blksize); - - if (EBCDIC && $ftp->type ne 'I') { - $buf = $ftp->toascii($buf); - $len = length($buf); - } - - if ($hashh) { - $count += $len; - print $hashh "#" x (int($count / $hashb)); - $count %= $hashb; - } - - my $wlen; - unless (defined($wlen = $sock->write($buf, $len)) && $wlen == $len) { - $sock->abort; - close($loc) - unless $localfd; - print $hashh "\n" if $hashh; - return; - } - } - - print $hashh "\n" if $hashh; - - close($loc) - unless $localfd; - - $sock->close() - or return; - - if ('STOU' eq uc $cmd and $ftp->message =~ m/unique\s+file\s*name\s*:\s*(.*)\)|"(.*)"/) { - require File::Basename; - $remote = File::Basename::basename($+); - } - - return $remote; -} - - -sub port { - @_ == 1 || @_ == 2 or croak 'usage: $self->port([PORT])'; - return _eprt('PORT',@_); -} - -sub eprt { - @_ == 1 || @_ == 2 or croak 'usage: $self->eprt([PORT])'; - return _eprt('EPRT',@_); -} - -sub _eprt { - my ($cmd,$ftp,$port) = @_; - delete ${*$ftp}{net_ftp_intern_port}; - unless ($port) { - my $listen = ${*$ftp}{net_ftp_listen} ||= $IOCLASS->new( - Listen => 1, - Timeout => $ftp->timeout, - LocalAddr => $ftp->sockhost, - $family_key => $ftp->sockdomain, - can_ssl() ? ( - %{ ${*$ftp}{net_ftp_tlsargs} }, - SSL_startHandshake => 0, - ):(), - ); - ${*$ftp}{net_ftp_intern_port} = 1; - my $fam = ($listen->sockdomain == AF_INET) ? 1:2; - if ( $cmd eq 'EPRT' || $fam == 2 ) { - $port = "|$fam|".$listen->sockhost."|".$listen->sockport."|"; - $cmd = 'EPRT'; - } else { - my $p = $listen->sockport; - $port = join(',',split(m{\.},$listen->sockhost),$p >> 8,$p & 0xff); - } - } elsif (ref($port) eq 'ARRAY') { - $port = join(',',split(m{\.},@$port[0]),@$port[1] >> 8,@$port[1] & 0xff); - } - my $ok = $cmd eq 'EPRT' ? $ftp->_EPRT($port) : $ftp->_PORT($port); - ${*$ftp}{net_ftp_port} = $port if $ok; - return $ok; -} - - -sub ls { shift->_list_cmd("NLST", @_); } -sub dir { shift->_list_cmd("LIST", @_); } - - -sub pasv { - my $ftp = shift; - @_ and croak 'usage: $ftp->port()'; - return $ftp->epsv if $ftp->sockdomain != AF_INET; - delete ${*$ftp}{net_ftp_intern_port}; - - if ( $ftp->_PASV && - $ftp->message =~ m{(\d+,\d+,\d+,\d+),(\d+),(\d+)} ) { - my $port = 256 * $2 + $3; - ( my $ip = $1 ) =~s{,}{.}g; - return ${*$ftp}{net_ftp_pasv} = [ $ip,$port ]; - } - return; -} - -sub epsv { - my $ftp = shift; - @_ and croak 'usage: $ftp->epsv()'; - delete ${*$ftp}{net_ftp_intern_port}; - - $ftp->_EPSV && $ftp->message =~ m{\(([\x33-\x7e])\1\1(\d+)\1\)} - ? ${*$ftp}{net_ftp_pasv} = [ $ftp->peerhost, $2 ] - : undef; -} - - -sub unique_name { - my $ftp = shift; - ${*$ftp}{'net_ftp_unique'} || undef; -} - - -sub supported { - @_ == 2 or croak 'usage: $ftp->supported( CMD )'; - my $ftp = shift; - my $cmd = uc shift; - my $hash = ${*$ftp}{'net_ftp_supported'} ||= {}; - - return $hash->{$cmd} - if exists $hash->{$cmd}; - - return $hash->{$cmd} = 1 - if $ftp->feature($cmd); - - return $hash->{$cmd} = 0 - unless $ftp->_HELP($cmd); - - my $text = $ftp->message; - if ($text =~ /following.+commands/i) { - $text =~ s/^.*\n//; - while ($text =~ /(\*?)(\w+)(\*?)/sg) { - $hash->{"\U$2"} = !length("$1$3"); - } - } - else { - $hash->{$cmd} = $text !~ /unimplemented/i; - } - - $hash->{$cmd} ||= 0; -} - -## -## Deprecated methods -## - - -sub lsl { - carp "Use of Net::FTP::lsl deprecated, use 'dir'" - if $^W; - goto &dir; -} - - -sub authorise { - carp "Use of Net::FTP::authorise deprecated, use 'authorize'" - if $^W; - goto &authorize; -} - - -## -## Private methods -## - - -sub _extract_path { - my ($ftp, $path) = @_; - - # This tries to work both with and without the quote doubling - # convention (RFC 959 requires it, but the first 3 servers I checked - # didn't implement it). It will fail on a server which uses a quote in - # the message which isn't a part of or surrounding the path. - $ftp->ok - && $ftp->message =~ /(?:^|\s)\"(.*)\"(?:$|\s)/ - && ($path = $1) =~ s/\"\"/\"/g; - - $path; -} - -## -## Communication methods -## - - -sub _dataconn { - my $ftp = shift; - my $pkg = "Net::FTP::" . $ftp->type; - eval "require " . $pkg ## no critic (BuiltinFunctions::ProhibitStringyEval) - or croak("cannot load $pkg required for type ".$ftp->type); - $pkg =~ s/ /_/g; - delete ${*$ftp}{net_ftp_dataconn}; - - my $conn; - my $pasv = ${*$ftp}{net_ftp_pasv}; - if ($pasv) { - $conn = $pkg->new( - PeerAddr => $pasv->[0], - PeerPort => $pasv->[1], - LocalAddr => ${*$ftp}{net_ftp_localaddr}, - $family_key => ${*$ftp}{net_ftp_domain}, - Timeout => $ftp->timeout, - can_ssl() ? ( - SSL_startHandshake => 0, - $ftp->is_SSL ? ( - SSL_reuse_ctx => $ftp, - SSL_verifycn_name => ${*$ftp}{net_ftp_tlsargs}{SSL_verifycn_name}, - # This will cause the use of SNI if supported by IO::Socket::SSL. - $ftp->can_client_sni ? ( - SSL_hostname => ${*$ftp}{net_ftp_tlsargs}{SSL_hostname} - ):(), - ) :( %{${*$ftp}{net_ftp_tlsargs}} ), - ):(), - ) or return; - } elsif (my $listen = delete ${*$ftp}{net_ftp_listen}) { - $conn = $listen->accept($pkg) or return; - $conn->timeout($ftp->timeout); - close($listen); - } else { - croak("no listener in active mode"); - } - - if (( ${*$ftp}{net_ftp_tlsprot} || '') eq 'P') { - if ($conn->connect_SSL) { - # SSL handshake ok - } else { - carp("failed to ssl upgrade dataconn: $IO::Socket::SSL::SSL_ERROR"); - return; - } - } - - ${*$ftp}{net_ftp_dataconn} = $conn; - ${*$conn} = ""; - ${*$conn}{net_ftp_cmd} = $ftp; - ${*$conn}{net_ftp_blksize} = ${*$ftp}{net_ftp_blksize}; - return $conn; -} - - -sub _list_cmd { - my $ftp = shift; - my $cmd = uc shift; - - delete ${*$ftp}{'net_ftp_port'}; - delete ${*$ftp}{'net_ftp_pasv'}; - - my $data = $ftp->_data_cmd($cmd, @_); - - return - unless (defined $data); - - require Net::FTP::A; - bless $data, "Net::FTP::A"; # Force ASCII mode - - my $databuf = ''; - my $buf = ''; - my $blksize = ${*$ftp}{'net_ftp_blksize'}; - - while ($data->read($databuf, $blksize)) { - $buf .= $databuf; - } - - my $list = [split(/\n/, $buf)]; - - $data->close(); - - if (EBCDIC) { - for (@$list) { $_ = $ftp->toebcdic($_) } - } - - wantarray - ? @{$list} - : $list; -} - - -sub _data_cmd { - my $ftp = shift; - my $cmd = uc shift; - my $ok = 1; - my $where = delete ${*$ftp}{'net_ftp_rest'} || 0; - my $arg; - - for my $arg (@_) { - croak("Bad argument '$arg'\n") - if $arg =~ /[\r\n]/s; - } - - if ( ${*$ftp}{'net_ftp_passive'} - && !defined ${*$ftp}{'net_ftp_pasv'} - && !defined ${*$ftp}{'net_ftp_port'}) - { - return unless defined $ftp->pasv; - - if ($where and !$ftp->_REST($where)) { - my ($status, $message) = ($ftp->status, $ftp->message); - $ftp->abort; - $ftp->set_status($status, $message); - return; - } - - # first send command, then open data connection - # otherwise the peer might not do a full accept (with SSL - # handshake if PROT P) - $ftp->command($cmd, @_); - my $data = $ftp->_dataconn(); - if (CMD_INFO == $ftp->response()) { - $data->reading - if $data && $cmd =~ /RETR|LIST|NLST|MLSD/; - return $data; - } - $data->_close if $data; - - return; - } - - $ok = $ftp->port - unless (defined ${*$ftp}{'net_ftp_port'} - || defined ${*$ftp}{'net_ftp_pasv'}); - - $ok = $ftp->_REST($where) - if $ok && $where; - - return - unless $ok; - - if ($cmd =~ /(STOR|APPE|STOU)/ and exists ${*$ftp}{net_ftp_allo} and - $ftp->supported("ALLO")) - { - $ftp->_ALLO(delete ${*$ftp}{net_ftp_allo}) - or return; - } - - $ftp->command($cmd, @_); - - return 1 - if (defined ${*$ftp}{'net_ftp_pasv'}); - - $ok = CMD_INFO == $ftp->response(); - - return $ok - unless exists ${*$ftp}{'net_ftp_intern_port'}; - - if ($ok) { - my $data = $ftp->_dataconn(); - - $data->reading - if $data && $cmd =~ /RETR|LIST|NLST|MLSD/; - - return $data; - } - - - close(delete ${*$ftp}{'net_ftp_listen'}); - - return; -} - -## -## Over-ride methods (Net::Cmd) -## - - -sub debug_text { $_[2] =~ /^(pass|resp|acct)/i ? "$1 ....\n" : $_[2]; } - - -sub command { - my $ftp = shift; - - delete ${*$ftp}{'net_ftp_port'}; - $ftp->SUPER::command(@_); -} - - -sub response { - my $ftp = shift; - my $code = $ftp->SUPER::response() || 5; # assume 500 if undef - - delete ${*$ftp}{'net_ftp_pasv'} - if ($code != CMD_MORE && $code != CMD_INFO); - - $code; -} - - -sub parse_response { - return ($1, $2 eq "-") - if $_[1] =~ s/^(\d\d\d)([- ]?)//o; - - my $ftp = shift; - - # Darn MS FTP server is a load of CRAP !!!! - # Expect to see undef here. - return () - unless 0 + (${*$ftp}{'net_cmd_code'} || 0); - - (${*$ftp}{'net_cmd_code'}, 1); -} - -## -## Allow 2 servers to talk directly -## - - -sub pasv_xfer_unique { - my ($sftp, $sfile, $dftp, $dfile) = @_; - $sftp->pasv_xfer($sfile, $dftp, $dfile, 1); -} - - -sub pasv_xfer { - my ($sftp, $sfile, $dftp, $dfile, $unique) = @_; - - ($dfile = $sfile) =~ s#.*/## - unless (defined $dfile); - - my $port = $sftp->pasv - or return; - - $dftp->port($port) - or return; - - return - unless ($unique ? $dftp->stou($dfile) : $dftp->stor($dfile)); - - unless ($sftp->retr($sfile) && $sftp->response == CMD_INFO) { - $sftp->retr($sfile); - $dftp->abort; - $dftp->response(); - return; - } - - $dftp->pasv_wait($sftp); -} - - -sub pasv_wait { - @_ == 2 or croak 'usage: $ftp->pasv_wait(NON_PASV_FTP)'; - - my ($ftp, $non_pasv) = @_; - my ($file, $rin, $rout); - - vec($rin = '', fileno($ftp), 1) = 1; - select($rout = $rin, undef, undef, undef); - - my $dres = $ftp->response(); - my $sres = $non_pasv->response(); - - return - unless $dres == CMD_OK && $sres == CMD_OK; - - return - unless $ftp->ok() && $non_pasv->ok(); - - return $1 - if $ftp->message =~ /unique file name:\s*(\S*)\s*\)/; - - return $1 - if $non_pasv->message =~ /unique file name:\s*(\S*)\s*\)/; - - return 1; -} - - -sub feature { - @_ == 2 or croak 'usage: $ftp->feature( NAME )'; - my ($ftp, $feat) = @_; - - my $feature = ${*$ftp}{net_ftp_feature} ||= do { - my @feat; - - # Example response - # 211-Features: - # MDTM - # REST STREAM - # SIZE - # 211 End - - @feat = map { /^\s+(.*\S)/ } $ftp->message - if $ftp->_FEAT; - - \@feat; - }; - - return grep { /^\Q$feat\E\b/i } @$feature; -} - - -sub cmd { shift->command(@_)->response() } - -######################################## -# -# RFC959 + RFC2428 + RFC4217 commands -# - - -sub _ABOR { shift->command("ABOR")->response() == CMD_OK } -sub _ALLO { shift->command("ALLO", @_)->response() == CMD_OK } -sub _CDUP { shift->command("CDUP")->response() == CMD_OK } -sub _NOOP { shift->command("NOOP")->response() == CMD_OK } -sub _PASV { shift->command("PASV")->response() == CMD_OK } -sub _QUIT { shift->command("QUIT")->response() == CMD_OK } -sub _DELE { shift->command("DELE", @_)->response() == CMD_OK } -sub _CWD { shift->command("CWD", @_)->response() == CMD_OK } -sub _PORT { shift->command("PORT", @_)->response() == CMD_OK } -sub _RMD { shift->command("RMD", @_)->response() == CMD_OK } -sub _MKD { shift->command("MKD", @_)->response() == CMD_OK } -sub _PWD { shift->command("PWD", @_)->response() == CMD_OK } -sub _TYPE { shift->command("TYPE", @_)->response() == CMD_OK } -sub _RNTO { shift->command("RNTO", @_)->response() == CMD_OK } -sub _RESP { shift->command("RESP", @_)->response() == CMD_OK } -sub _MDTM { shift->command("MDTM", @_)->response() == CMD_OK } -sub _SIZE { shift->command("SIZE", @_)->response() == CMD_OK } -sub _HELP { shift->command("HELP", @_)->response() == CMD_OK } -sub _STAT { shift->command("STAT", @_)->response() == CMD_OK } -sub _FEAT { shift->command("FEAT", @_)->response() == CMD_OK } -sub _PBSZ { shift->command("PBSZ", @_)->response() == CMD_OK } -sub _PROT { shift->command("PROT", @_)->response() == CMD_OK } -sub _CCC { shift->command("CCC", @_)->response() == CMD_OK } -sub _EPRT { shift->command("EPRT", @_)->response() == CMD_OK } -sub _EPSV { shift->command("EPSV", @_)->response() == CMD_OK } -sub _APPE { shift->command("APPE", @_)->response() == CMD_INFO } -sub _LIST { shift->command("LIST", @_)->response() == CMD_INFO } -sub _NLST { shift->command("NLST", @_)->response() == CMD_INFO } -sub _RETR { shift->command("RETR", @_)->response() == CMD_INFO } -sub _STOR { shift->command("STOR", @_)->response() == CMD_INFO } -sub _STOU { shift->command("STOU", @_)->response() == CMD_INFO } -sub _RNFR { shift->command("RNFR", @_)->response() == CMD_MORE } -sub _REST { shift->command("REST", @_)->response() == CMD_MORE } -sub _PASS { shift->command("PASS", @_)->response() } -sub _ACCT { shift->command("ACCT", @_)->response() } -sub _AUTH { shift->command("AUTH", @_)->response() } - - -sub _USER { - my $ftp = shift; - my $ok = $ftp->command("USER", @_)->response(); - - # A certain brain dead firewall :-) - $ok = $ftp->command("user", @_)->response() - unless $ok == CMD_MORE or $ok == CMD_OK; - - $ok; -} - - -sub _SMNT { shift->unsupported(@_) } -sub _MODE { shift->unsupported(@_) } -sub _SYST { shift->unsupported(@_) } -sub _STRU { shift->unsupported(@_) } -sub _REIN { shift->unsupported(@_) } - -{ - # Session Cache with single entry - # used to make sure that we reuse same session for control and data channels - package Net::FTP::_SSL_SingleSessionCache; - sub new { my $x; return bless \$x,shift } - sub add_session { - my ($cache,$key,$session) = @_; - Net::SSLeay::SESSION_free($$cache) if $$cache; - $$cache = $session; - } - sub get_session { - my $cache = shift; - return $$cache - } - sub DESTROY { - my $cache = shift; - Net::SSLeay::SESSION_free($$cache) if $$cache; - } -} - -1; - -__END__ - -#line 2050 diff --git a/software/Slic3r-1.3.0.64bit/lib/Net/FTP/A.pm b/software/Slic3r-1.3.0.64bit/lib/Net/FTP/A.pm deleted file mode 100644 index d0209362..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Net/FTP/A.pm +++ /dev/null @@ -1,116 +0,0 @@ -#line 1 "Net/FTP/A.pm" -## -## Package to read/write on ASCII data connections -## - -package Net::FTP::A; - -use 5.008001; - -use strict; -use warnings; - -use Carp; -use Net::FTP::dataconn; - -our @ISA = qw(Net::FTP::dataconn); -our $VERSION = "3.10"; - -our $buf; - -sub read { - my $data = shift; - local *buf = \$_[0]; - shift; - my $size = shift || croak 'read($buf,$size,[$offset])'; - my $timeout = @_ ? shift: $data->timeout; - - if (length(${*$data}) < $size && !${*$data}{'net_ftp_eof'}) { - my $blksize = ${*$data}{'net_ftp_blksize'}; - $blksize = $size if $size > $blksize; - - my $l = 0; - my $n; - - READ: - { - my $readbuf = defined(${*$data}{'net_ftp_cr'}) ? "\015" : ''; - - $data->can_read($timeout) - or croak "Timeout"; - - if ($n = sysread($data, $readbuf, $blksize, length $readbuf)) { - ${*$data}{'net_ftp_bytesread'} += $n; - ${*$data}{'net_ftp_cr'} = - substr($readbuf, -1) eq "\015" - ? chop($readbuf) - : undef; - } - else { - return - unless defined $n; - - ${*$data}{'net_ftp_eof'} = 1; - } - - $readbuf =~ s/\015\012/\n/sgo; - ${*$data} .= $readbuf; - - unless (length(${*$data})) { - - redo READ - if ($n > 0); - - $size = length(${*$data}) - if ($n == 0); - } - } - } - - $buf = substr(${*$data}, 0, $size); - substr(${*$data}, 0, $size) = ''; - - length $buf; -} - - -sub write { - my $data = shift; - local *buf = \$_[0]; - shift; - my $size = shift || croak 'write($buf,$size,[$timeout])'; - my $timeout = @_ ? shift: $data->timeout; - - my $nr = (my $tmp = substr($buf, 0, $size)) =~ tr/\r\n/\015\012/; - $tmp =~ s/(?can_write($timeout) - or croak "Timeout"; - - $off += $wrote; - $wrote = syswrite($data, substr($tmp, $off), $len > $blksize ? $blksize : $len); - return - unless defined($wrote); - $len -= $wrote; - } - - $size; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Net/FTP/E.pm b/software/Slic3r-1.3.0.64bit/lib/Net/FTP/E.pm deleted file mode 100644 index 22367246..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Net/FTP/E.pm +++ /dev/null @@ -1,14 +0,0 @@ -#line 1 "Net/FTP/E.pm" -package Net::FTP::E; - -use 5.008001; - -use strict; -use warnings; - -use Net::FTP::I; - -our @ISA = qw(Net::FTP::I); -our $VERSION = "3.10"; - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Net/FTP/I.pm b/software/Slic3r-1.3.0.64bit/lib/Net/FTP/I.pm deleted file mode 100644 index 99ff5c01..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Net/FTP/I.pm +++ /dev/null @@ -1,85 +0,0 @@ -#line 1 "Net/FTP/I.pm" -## -## Package to read/write on BINARY data connections -## - -package Net::FTP::I; - -use 5.008001; - -use strict; -use warnings; - -use Carp; -use Net::FTP::dataconn; - -our @ISA = qw(Net::FTP::dataconn); -our $VERSION = "3.10"; - -our $buf; - -sub read { - my $data = shift; - local *buf = \$_[0]; - shift; - my $size = shift || croak 'read($buf,$size,[$timeout])'; - my $timeout = @_ ? shift: $data->timeout; - - my $n; - - if ($size > length ${*$data} and !${*$data}{'net_ftp_eof'}) { - $data->can_read($timeout) - or croak "Timeout"; - - my $blksize = ${*$data}{'net_ftp_blksize'}; - $blksize = $size if $size > $blksize; - - unless ($n = sysread($data, ${*$data}, $blksize, length ${*$data})) { - return unless defined $n; - ${*$data}{'net_ftp_eof'} = 1; - } - } - - $buf = substr(${*$data}, 0, $size); - - $n = length($buf); - - substr(${*$data}, 0, $n) = ''; - - ${*$data}{'net_ftp_bytesread'} += $n; - - $n; -} - - -sub write { - my $data = shift; - local *buf = \$_[0]; - shift; - my $size = shift || croak 'write($buf,$size,[$timeout])'; - my $timeout = @_ ? shift: $data->timeout; - - # If the remote server has closed the connection we will be signal'd - # when we write. This can happen if the disk on the remote server fills up - - local $SIG{PIPE} = 'IGNORE' - unless ($SIG{PIPE} || '') eq 'IGNORE' - or $^O eq 'MacOS'; - my $sent = $size; - my $off = 0; - - my $blksize = ${*$data}{'net_ftp_blksize'}; - while ($sent > 0) { - $data->can_write($timeout) - or croak "Timeout"; - - my $n = syswrite($data, $buf, $sent > $blksize ? $blksize : $sent, $off); - return unless defined($n); - $sent -= $n; - $off += $n; - } - - $size; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Net/FTP/L.pm b/software/Slic3r-1.3.0.64bit/lib/Net/FTP/L.pm deleted file mode 100644 index cfb9cd05..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Net/FTP/L.pm +++ /dev/null @@ -1,14 +0,0 @@ -#line 1 "Net/FTP/L.pm" -package Net::FTP::L; - -use 5.008001; - -use strict; -use warnings; - -use Net::FTP::I; - -our @ISA = qw(Net::FTP::I); -our $VERSION = "3.10"; - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Net/FTP/dataconn.pm b/software/Slic3r-1.3.0.64bit/lib/Net/FTP/dataconn.pm deleted file mode 100644 index 44a719de..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Net/FTP/dataconn.pm +++ /dev/null @@ -1,137 +0,0 @@ -#line 1 "Net/FTP/dataconn.pm" -## -## Generic data connection package -## - -package Net::FTP::dataconn; - -use 5.008001; - -use strict; -use warnings; - -use Carp; -use Errno; -use Net::Cmd; - -our $VERSION = '3.10'; - -$Net::FTP::IOCLASS or die "please load Net::FTP before Net::FTP::dataconn"; -our @ISA = $Net::FTP::IOCLASS; - -sub reading { - my $data = shift; - ${*$data}{'net_ftp_bytesread'} = 0; -} - - -sub abort { - my $data = shift; - my $ftp = ${*$data}{'net_ftp_cmd'}; - - # no need to abort if we have finished the xfer - return $data->close - if ${*$data}{'net_ftp_eof'}; - - # for some reason if we continuously open RETR connections and not - # read a single byte, then abort them after a while the server will - # close our connection, this prevents the unexpected EOF on the - # command channel -- GMB - if (exists ${*$data}{'net_ftp_bytesread'} - && (${*$data}{'net_ftp_bytesread'} == 0)) - { - my $buf = ""; - my $timeout = $data->timeout; - $data->can_read($timeout) && sysread($data, $buf, 1); - } - - ${*$data}{'net_ftp_eof'} = 1; # fake - - $ftp->abort; # this will close me -} - - -sub _close { - my $data = shift; - my $ftp = ${*$data}{'net_ftp_cmd'}; - - $data->SUPER::close(); - - delete ${*$ftp}{'net_ftp_dataconn'} - if defined $ftp - && exists ${*$ftp}{'net_ftp_dataconn'} - && $data == ${*$ftp}{'net_ftp_dataconn'}; -} - - -sub close { - my $data = shift; - my $ftp = ${*$data}{'net_ftp_cmd'}; - - if (exists ${*$data}{'net_ftp_bytesread'} && !${*$data}{'net_ftp_eof'}) { - my $junk; - eval { local($SIG{__DIE__}); $data->read($junk, 1, 0) }; - return $data->abort unless ${*$data}{'net_ftp_eof'}; - } - - $data->_close; - - return unless defined $ftp; - - $ftp->response() == CMD_OK - && $ftp->message =~ /unique file name:\s*(\S*)\s*\)/ - && (${*$ftp}{'net_ftp_unique'} = $1); - - $ftp->status == CMD_OK; -} - - -sub _select { - my ($data, $timeout, $do_read) = @_; - my ($rin, $rout, $win, $wout, $tout, $nfound); - - vec($rin = '', fileno($data), 1) = 1; - - ($win, $rin) = ($rin, $win) unless $do_read; - - while (1) { - $nfound = select($rout = $rin, $wout = $win, undef, $tout = $timeout); - - last if $nfound >= 0; - - croak "select: $!" - unless $!{EINTR}; - } - - $nfound; -} - - -sub can_read { - _select(@_[0, 1], 1); -} - - -sub can_write { - _select(@_[0, 1], 0); -} - - -sub cmd { - my $ftp = shift; - - ${*$ftp}{'net_ftp_cmd'}; -} - - -sub bytes_read { - my $ftp = shift; - - ${*$ftp}{'net_ftp_bytesread'} || 0; -} - -1; - -__END__ - -#line 183 diff --git a/software/Slic3r-1.3.0.64bit/lib/Net/HTTP.pm b/software/Slic3r-1.3.0.64bit/lib/Net/HTTP.pm deleted file mode 100644 index 59d896b0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Net/HTTP.pm +++ /dev/null @@ -1,49 +0,0 @@ -#line 1 "Net/HTTP.pm" -package Net::HTTP; -$Net::HTTP::VERSION = '6.13'; -use strict; -use warnings; - -use vars qw($SOCKET_CLASS); -unless ($SOCKET_CLASS) { - # Try several, in order of capability and preference - if (eval { require IO::Socket::IP }) { - $SOCKET_CLASS = "IO::Socket::IP"; # IPv4+IPv6 - } elsif (eval { require IO::Socket::INET6 }) { - $SOCKET_CLASS = "IO::Socket::INET6"; # IPv4+IPv6 - } elsif (eval { require IO::Socket::INET }) { - $SOCKET_CLASS = "IO::Socket::INET"; # IPv4 only - } else { - require IO::Socket; - $SOCKET_CLASS = "IO::Socket::INET"; - } -} -require Net::HTTP::Methods; -require Carp; - -our @ISA = ($SOCKET_CLASS, 'Net::HTTP::Methods'); - -sub new { - my $class = shift; - Carp::croak("No Host option provided") unless @_; - $class->SUPER::new(@_); -} - -sub configure { - my($self, $cnf) = @_; - $self->http_configure($cnf); -} - -sub http_connect { - my($self, $cnf) = @_; - $self->SUPER::configure($cnf); -} - -1; - -#line 303 - -__END__ - -# ABSTRACT: Low-level HTTP connection (client) - diff --git a/software/Slic3r-1.3.0.64bit/lib/Net/HTTP/Methods.pm b/software/Slic3r-1.3.0.64bit/lib/Net/HTTP/Methods.pm deleted file mode 100644 index 8ba41a72..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Net/HTTP/Methods.pm +++ /dev/null @@ -1,651 +0,0 @@ -#line 1 "Net/HTTP/Methods.pm" -package Net::HTTP::Methods; -$Net::HTTP::Methods::VERSION = '6.13'; -use strict; -use warnings; -use URI; - -my $CRLF = "\015\012"; # "\r\n" is not portable - -*_bytes = defined(&utf8::downgrade) ? - sub { - unless (utf8::downgrade($_[0], 1)) { - require Carp; - Carp::croak("Wide character in HTTP request (bytes required)"); - } - return $_[0]; - } - : - sub { - return $_[0]; - }; - - -sub new { - my $class = shift; - unshift(@_, "Host") if @_ == 1; - my %cnf = @_; - require Symbol; - my $self = bless Symbol::gensym(), $class; - return $self->http_configure(\%cnf); -} - -sub http_configure { - my($self, $cnf) = @_; - - die "Listen option not allowed" if $cnf->{Listen}; - my $explicit_host = (exists $cnf->{Host}); - my $host = delete $cnf->{Host}; - my $peer = $cnf->{PeerAddr} || $cnf->{PeerHost}; - if (!$peer) { - die "No Host option provided" unless $host; - $cnf->{PeerAddr} = $peer = $host; - } - - # CONNECTIONS - # PREFER: port number from PeerAddr, then PeerPort, then http_default_port - my $peer_uri = URI->new("http://$peer"); - $cnf->{"PeerPort"} = $peer_uri->_port || $cnf->{PeerPort} || $self->http_default_port; - $cnf->{"PeerAddr"} = $peer_uri->host; - - # HOST header: - # If specified but blank, ignore. - # If specified with a value, add the port number - # If not specified, set to PeerAddr and port number - # ALWAYS: If IPv6 address, use [brackets] (thanks to the URI package) - # ALWAYS: omit port number if http_default_port - if (($host) || (! $explicit_host)) { - my $uri = ($explicit_host) ? URI->new("http://$host") : $peer_uri->clone; - if (!$uri->_port) { - # Always use *our* $self->http_default_port instead of URI's (Covers HTTP, HTTPS) - $uri->port( $cnf->{PeerPort} || $self->http_default_port); - } - my $host_port = $uri->host_port; # Returns host:port or [ipv6]:port - my $remove = ":" . $self->http_default_port; # we want to remove the default port number - if (substr($host_port,0-length($remove)) eq $remove) { - substr($host_port,0-length($remove)) = ""; - } - $host = $host_port; - } - - $cnf->{Proto} = 'tcp'; - - my $keep_alive = delete $cnf->{KeepAlive}; - my $http_version = delete $cnf->{HTTPVersion}; - $http_version = "1.1" unless defined $http_version; - my $peer_http_version = delete $cnf->{PeerHTTPVersion}; - $peer_http_version = "1.0" unless defined $peer_http_version; - my $send_te = delete $cnf->{SendTE}; - my $max_line_length = delete $cnf->{MaxLineLength}; - $max_line_length = 8*1024 unless defined $max_line_length; - my $max_header_lines = delete $cnf->{MaxHeaderLines}; - $max_header_lines = 128 unless defined $max_header_lines; - - return undef unless $self->http_connect($cnf); - - $self->host($host); - $self->keep_alive($keep_alive); - $self->send_te($send_te); - $self->http_version($http_version); - $self->peer_http_version($peer_http_version); - $self->max_line_length($max_line_length); - $self->max_header_lines($max_header_lines); - - ${*$self}{'http_buf'} = ""; - - return $self; -} - -sub http_default_port { - 80; -} - -# set up property accessors -for my $method (qw(host keep_alive send_te max_line_length max_header_lines peer_http_version)) { - my $prop_name = "http_" . $method; - no strict 'refs'; - *$method = sub { - my $self = shift; - my $old = ${*$self}{$prop_name}; - ${*$self}{$prop_name} = shift if @_; - return $old; - }; -} - -# we want this one to be a bit smarter -sub http_version { - my $self = shift; - my $old = ${*$self}{'http_version'}; - if (@_) { - my $v = shift; - $v = "1.0" if $v eq "1"; # float - unless ($v eq "1.0" or $v eq "1.1") { - require Carp; - Carp::croak("Unsupported HTTP version '$v'"); - } - ${*$self}{'http_version'} = $v; - } - $old; -} - -sub format_request { - my $self = shift; - my $method = shift; - my $uri = shift; - - my $content = (@_ % 2) ? pop : ""; - - for ($method, $uri) { - require Carp; - Carp::croak("Bad method or uri") if /\s/ || !length; - } - - push(@{${*$self}{'http_request_method'}}, $method); - my $ver = ${*$self}{'http_version'}; - my $peer_ver = ${*$self}{'http_peer_http_version'} || "1.0"; - - my @h; - my @connection; - my %given = (host => 0, "content-length" => 0, "te" => 0); - while (@_) { - my($k, $v) = splice(@_, 0, 2); - my $lc_k = lc($k); - if ($lc_k eq "connection") { - $v =~ s/^\s+//; - $v =~ s/\s+$//; - push(@connection, split(/\s*,\s*/, $v)); - next; - } - if (exists $given{$lc_k}) { - $given{$lc_k}++; - } - push(@h, "$k: $v"); - } - - if (length($content) && !$given{'content-length'}) { - push(@h, "Content-Length: " . length($content)); - } - - my @h2; - if ($given{te}) { - push(@connection, "TE") unless grep lc($_) eq "te", @connection; - } - elsif ($self->send_te && gunzip_ok()) { - # gzip is less wanted since the IO::Uncompress::Gunzip interface for - # it does not really allow chunked decoding to take place easily. - push(@h2, "TE: deflate,gzip;q=0.3"); - push(@connection, "TE"); - } - - unless (grep lc($_) eq "close", @connection) { - if ($self->keep_alive) { - if ($peer_ver eq "1.0") { - # from looking at Netscape's headers - push(@h2, "Keep-Alive: 300"); - unshift(@connection, "Keep-Alive"); - } - } - else { - push(@connection, "close") if $ver ge "1.1"; - } - } - push(@h2, "Connection: " . join(", ", @connection)) if @connection; - unless ($given{host}) { - my $h = ${*$self}{'http_host'}; - push(@h2, "Host: $h") if $h; - } - - return _bytes(join($CRLF, "$method $uri HTTP/$ver", @h2, @h, "", $content)); -} - - -sub write_request { - my $self = shift; - $self->print($self->format_request(@_)); -} - -sub format_chunk { - my $self = shift; - return $_[0] unless defined($_[0]) && length($_[0]); - return _bytes(sprintf("%x", length($_[0])) . $CRLF . $_[0] . $CRLF); -} - -sub write_chunk { - my $self = shift; - return 1 unless defined($_[0]) && length($_[0]); - $self->print(_bytes(sprintf("%x", length($_[0])) . $CRLF . $_[0] . $CRLF)); -} - -sub format_chunk_eof { - my $self = shift; - my @h; - while (@_) { - push(@h, sprintf "%s: %s$CRLF", splice(@_, 0, 2)); - } - return _bytes(join("", "0$CRLF", @h, $CRLF)); -} - -sub write_chunk_eof { - my $self = shift; - $self->print($self->format_chunk_eof(@_)); -} - - -sub my_read { - die if @_ > 3; - my $self = shift; - my $len = $_[1]; - for (${*$self}{'http_buf'}) { - if (length) { - $_[0] = substr($_, 0, $len, ""); - return length($_[0]); - } - else { - die "read timeout" unless $self->can_read; - return $self->sysread($_[0], $len); - } - } -} - - -sub my_readline { - my $self = shift; - my $what = shift; - for (${*$self}{'http_buf'}) { - my $max_line_length = ${*$self}{'http_max_line_length'}; - my $pos; - while (1) { - # find line ending - $pos = index($_, "\012"); - last if $pos >= 0; - die "$what line too long (limit is $max_line_length)" - if $max_line_length && length($_) > $max_line_length; - - # need to read more data to find a line ending - my $new_bytes = 0; - - READ: - { # wait until bytes start arriving - $self->can_read - or die "read timeout"; - - # consume all incoming bytes - while(1) { - my $bytes_read = $self->sysread($_, 1024, length); - if(defined $bytes_read) { - $new_bytes += $bytes_read; - last if $bytes_read < 1024; - # We got exactly 1024 bytes, so we need to select() to know if there is more data - last unless $self->can_read(0); - } - elsif($!{EINTR} || $!{EAGAIN} || $!{EWOULDBLOCK}) { - redo READ; - } - else { - # if we have already accumulated some data let's at - # least return that as a line - length or die "$what read failed: $!"; - last; - } - } - - # no line-ending, no new bytes - return length($_) ? substr($_, 0, length($_), "") : undef - if $new_bytes==0; - } - } - die "$what line too long ($pos; limit is $max_line_length)" - if $max_line_length && $pos > $max_line_length; - - my $line = substr($_, 0, $pos+1, ""); - $line =~ s/(\015?\012)\z// || die "Assert"; - return wantarray ? ($line, $1) : $line; - } -} - - -sub can_read { - my $self = shift; - return 1 unless defined(fileno($self)); - return 1 if $self->isa('IO::Socket::SSL') && $self->pending; - return 1 if $self->isa('Net::SSL') && $self->can('pending') && $self->pending; - - # With no timeout, wait forever. An explicit timeout of 0 can be - # used to just check if the socket is readable without waiting. - my $timeout = @_ ? shift : (${*$self}{io_socket_timeout} || undef); - - my $fbits = ''; - vec($fbits, fileno($self), 1) = 1; - SELECT: - { - my $before; - $before = time if $timeout; - my $nfound = select($fbits, undef, undef, $timeout); - if ($nfound < 0) { - if ($!{EINTR} || $!{EAGAIN} || $!{EWOULDBLOCK}) { - # don't really think EAGAIN/EWOULDBLOCK can happen here - if ($timeout) { - $timeout -= time - $before; - $timeout = 0 if $timeout < 0; - } - redo SELECT; - } - die "select failed: $!"; - } - return $nfound > 0; - } -} - - -sub _rbuf { - my $self = shift; - if (@_) { - for (${*$self}{'http_buf'}) { - my $old; - $old = $_ if defined wantarray; - $_ = shift; - return $old; - } - } - else { - return ${*$self}{'http_buf'}; - } -} - -sub _rbuf_length { - my $self = shift; - return length ${*$self}{'http_buf'}; -} - - -sub _read_header_lines { - my $self = shift; - my $junk_out = shift; - - my @headers; - my $line_count = 0; - my $max_header_lines = ${*$self}{'http_max_header_lines'}; - while (my $line = my_readline($self, 'Header')) { - if ($line =~ /^(\S+?)\s*:\s*(.*)/s) { - push(@headers, $1, $2); - } - elsif (@headers && $line =~ s/^\s+//) { - $headers[-1] .= " " . $line; - } - elsif ($junk_out) { - push(@$junk_out, $line); - } - else { - die "Bad header: '$line'\n"; - } - if ($max_header_lines) { - $line_count++; - if ($line_count >= $max_header_lines) { - die "Too many header lines (limit is $max_header_lines)"; - } - } - } - return @headers; -} - - -sub read_response_headers { - my($self, %opt) = @_; - my $laxed = $opt{laxed}; - - my($status, $eol) = my_readline($self, 'Status'); - unless (defined $status) { - die "Server closed connection without sending any data back"; - } - - my($peer_ver, $code, $message) = split(/\s+/, $status, 3); - if (!$peer_ver || $peer_ver !~ s,^HTTP/,, || $code !~ /^[1-5]\d\d$/) { - die "Bad response status line: '$status'" unless $laxed; - # assume HTTP/0.9 - ${*$self}{'http_peer_http_version'} = "0.9"; - ${*$self}{'http_status'} = "200"; - substr(${*$self}{'http_buf'}, 0, 0) = $status . ($eol || ""); - return 200 unless wantarray; - return (200, "Assumed OK"); - }; - - ${*$self}{'http_peer_http_version'} = $peer_ver; - ${*$self}{'http_status'} = $code; - - my $junk_out; - if ($laxed) { - $junk_out = $opt{junk_out} || []; - } - my @headers = $self->_read_header_lines($junk_out); - - # pick out headers that read_entity_body might need - my @te; - my $content_length; - for (my $i = 0; $i < @headers; $i += 2) { - my $h = lc($headers[$i]); - if ($h eq 'transfer-encoding') { - my $te = $headers[$i+1]; - $te =~ s/^\s+//; - $te =~ s/\s+$//; - push(@te, $te) if length($te); - } - elsif ($h eq 'content-length') { - # ignore bogus and overflow values - if ($headers[$i+1] =~ /^\s*(\d{1,15})(?:\s|$)/) { - $content_length = $1; - } - } - } - ${*$self}{'http_te'} = join(",", @te); - ${*$self}{'http_content_length'} = $content_length; - ${*$self}{'http_first_body'}++; - delete ${*$self}{'http_trailers'}; - return $code unless wantarray; - return ($code, $message, @headers); -} - - -sub read_entity_body { - my $self = shift; - my $buf_ref = \$_[0]; - my $size = $_[1]; - die "Offset not supported yet" if $_[2]; - - my $chunked; - my $bytes; - - if (${*$self}{'http_first_body'}) { - ${*$self}{'http_first_body'} = 0; - delete ${*$self}{'http_chunked'}; - delete ${*$self}{'http_bytes'}; - my $method = shift(@{${*$self}{'http_request_method'}}); - my $status = ${*$self}{'http_status'}; - if ($method eq "HEAD") { - # this response is always empty regardless of other headers - $bytes = 0; - } - elsif (my $te = ${*$self}{'http_te'}) { - my @te = split(/\s*,\s*/, lc($te)); - die "Chunked must be last Transfer-Encoding '$te'" - unless pop(@te) eq "chunked"; - pop(@te) while @te && $te[-1] eq "chunked"; # ignore repeated chunked spec - - for (@te) { - if ($_ eq "deflate" && inflate_ok()) { - #require Compress::Raw::Zlib; - my ($i, $status) = Compress::Raw::Zlib::Inflate->new(); - die "Can't make inflator: $status" unless $i; - $_ = sub { my $out; $i->inflate($_[0], \$out); $out } - } - elsif ($_ eq "gzip" && gunzip_ok()) { - #require IO::Uncompress::Gunzip; - my @buf; - $_ = sub { - push(@buf, $_[0]); - return "" unless $_[1]; - my $input = join("", @buf); - my $output; - IO::Uncompress::Gunzip::gunzip(\$input, \$output, Transparent => 0) - or die "Can't gunzip content: $IO::Uncompress::Gunzip::GunzipError"; - return \$output; - }; - } - elsif ($_ eq "identity") { - $_ = sub { $_[0] }; - } - else { - die "Can't handle transfer encoding '$te'"; - } - } - - @te = reverse(@te); - - ${*$self}{'http_te2'} = @te ? \@te : ""; - $chunked = -1; - } - elsif (defined(my $content_length = ${*$self}{'http_content_length'})) { - $bytes = $content_length; - } - elsif ($status =~ /^(?:1|[23]04)/) { - # RFC 2616 says that these responses should always be empty - # but that does not appear to be true in practice [RT#17907] - $bytes = 0; - } - else { - # XXX Multi-Part types are self delimiting, but RFC 2616 says we - # only has to deal with 'multipart/byteranges' - - # Read until EOF - } - } - else { - $chunked = ${*$self}{'http_chunked'}; - $bytes = ${*$self}{'http_bytes'}; - } - - if (defined $chunked) { - # The state encoded in $chunked is: - # $chunked == 0: read CRLF after chunk, then chunk header - # $chunked == -1: read chunk header - # $chunked > 0: bytes left in current chunk to read - - if ($chunked <= 0) { - my $line = my_readline($self, 'Entity body'); - if ($chunked == 0) { - die "Missing newline after chunk data: '$line'" - if !defined($line) || $line ne ""; - $line = my_readline($self, 'Entity body'); - } - die "EOF when chunk header expected" unless defined($line); - my $chunk_len = $line; - $chunk_len =~ s/;.*//; # ignore potential chunk parameters - unless ($chunk_len =~ /^([\da-fA-F]+)\s*$/) { - die "Bad chunk-size in HTTP response: $line"; - } - $chunked = hex($1); - ${*$self}{'http_chunked'} = $chunked; - if ($chunked == 0) { - ${*$self}{'http_trailers'} = [$self->_read_header_lines]; - $$buf_ref = ""; - - my $n = 0; - if (my $transforms = delete ${*$self}{'http_te2'}) { - for (@$transforms) { - $$buf_ref = &$_($$buf_ref, 1); - } - $n = length($$buf_ref); - } - - # in case somebody tries to read more, make sure we continue - # to return EOF - delete ${*$self}{'http_chunked'}; - ${*$self}{'http_bytes'} = 0; - - return $n; - } - } - - my $n = $chunked; - $n = $size if $size && $size < $n; - $n = my_read($self, $$buf_ref, $n); - return undef unless defined $n; - - ${*$self}{'http_chunked'} = $chunked - $n; - - if ($n > 0) { - if (my $transforms = ${*$self}{'http_te2'}) { - for (@$transforms) { - $$buf_ref = &$_($$buf_ref, 0); - } - $n = length($$buf_ref); - $n = -1 if $n == 0; - } - } - return $n; - } - elsif (defined $bytes) { - unless ($bytes) { - $$buf_ref = ""; - return 0; - } - my $n = $bytes; - $n = $size if $size && $size < $n; - $n = my_read($self, $$buf_ref, $n); - ${*$self}{'http_bytes'} = defined $n ? $bytes - $n : $bytes; - return $n; - } - else { - # read until eof - $size ||= 8*1024; - return my_read($self, $$buf_ref, $size); - } -} - -sub get_trailers { - my $self = shift; - @{${*$self}{'http_trailers'} || []}; -} - -BEGIN { -my $gunzip_ok; -my $inflate_ok; - -sub gunzip_ok { - return $gunzip_ok if defined $gunzip_ok; - - # Try to load IO::Uncompress::Gunzip. - local $@; - local $SIG{__DIE__}; - $gunzip_ok = 0; - - eval { - require IO::Uncompress::Gunzip; - $gunzip_ok++; - }; - - return $gunzip_ok; -} - -sub inflate_ok { - return $inflate_ok if defined $inflate_ok; - - # Try to load Compress::Raw::Zlib. - local $@; - local $SIG{__DIE__}; - $inflate_ok = 0; - - eval { - require Compress::Raw::Zlib; - $inflate_ok++; - }; - - return $inflate_ok; -} - -} # BEGIN - -1; - -__END__ - -#line 674 diff --git a/software/Slic3r-1.3.0.64bit/lib/Net/HTTPS.pm b/software/Slic3r-1.3.0.64bit/lib/Net/HTTPS.pm deleted file mode 100644 index eab13ac9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Net/HTTPS.pm +++ /dev/null @@ -1,89 +0,0 @@ -#line 1 "Net/HTTPS.pm" -package Net::HTTPS; -$Net::HTTPS::VERSION = '6.13'; -use strict; -use warnings; - -# Figure out which SSL implementation to use -use vars qw($SSL_SOCKET_CLASS); -if ($SSL_SOCKET_CLASS) { - # somebody already set it -} -elsif ($SSL_SOCKET_CLASS = $ENV{PERL_NET_HTTPS_SSL_SOCKET_CLASS}) { - unless ($SSL_SOCKET_CLASS =~ /^(IO::Socket::SSL|Net::SSL)\z/) { - die "Bad socket class [$SSL_SOCKET_CLASS]"; - } - eval "require $SSL_SOCKET_CLASS"; - die $@ if $@; -} -elsif ($IO::Socket::SSL::VERSION) { - $SSL_SOCKET_CLASS = "IO::Socket::SSL"; # it was already loaded -} -elsif ($Net::SSL::VERSION) { - $SSL_SOCKET_CLASS = "Net::SSL"; -} -else { - eval { require IO::Socket::SSL; }; - if ($@) { - my $old_errsv = $@; - eval { - require Net::SSL; # from Crypt-SSLeay - }; - if ($@) { - $old_errsv =~ s/\s\(\@INC contains:.*\)/)/g; - die $old_errsv . $@; - } - $SSL_SOCKET_CLASS = "Net::SSL"; - } - else { - $SSL_SOCKET_CLASS = "IO::Socket::SSL"; - } -} - -require Net::HTTP::Methods; - -our @ISA=($SSL_SOCKET_CLASS, 'Net::HTTP::Methods'); - -sub configure { - my($self, $cnf) = @_; - $self->http_configure($cnf); -} - -sub http_connect { - my($self, $cnf) = @_; - if ($self->isa("Net::SSL")) { - if ($cnf->{SSL_verify_mode}) { - if (my $f = $cnf->{SSL_ca_file}) { - $ENV{HTTPS_CA_FILE} = $f; - } - if (my $f = $cnf->{SSL_ca_path}) { - $ENV{HTTPS_CA_DIR} = $f; - } - } - if ($cnf->{SSL_verifycn_scheme}) { - $@ = "Net::SSL from Crypt-SSLeay can't verify hostnames; either install IO::Socket::SSL or turn off verification by setting the PERL_LWP_SSL_VERIFY_HOSTNAME environment variable to 0"; - return undef; - } - } - $self->SUPER::configure($cnf); -} - -sub http_default_port { - 443; -} - -if ($SSL_SOCKET_CLASS eq "Net::SSL") { - # The underlying SSLeay classes fails to work if the socket is - # placed in non-blocking mode. This override of the blocking - # method makes sure it stays the way it was created. - *blocking = sub { }; -} - -1; - -#line 131 - -__END__ - -#ABSTRACT: Low-level HTTP over SSL/TLS connection (client) - diff --git a/software/Slic3r-1.3.0.64bit/lib/Net/NNTP.pm b/software/Slic3r-1.3.0.64bit/lib/Net/NNTP.pm deleted file mode 100644 index 4ba51023..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Net/NNTP.pm +++ /dev/null @@ -1,784 +0,0 @@ -#line 1 "Net/NNTP.pm" -# Net::NNTP.pm -# -# Versions up to 2.24_1 Copyright (c) 1995-1997 Graham Barr . -# All rights reserved. -# Changes in Version 2.25 onwards Copyright (C) 2013-2015 Steve Hay. All rights -# reserved. -# This module is free software; you can redistribute it and/or modify it under -# the same terms as Perl itself, i.e. under the terms of either the GNU General -# Public License or the Artistic License, as specified in the F file. - -package Net::NNTP; - -use 5.008001; - -use strict; -use warnings; - -use Carp; -use IO::Socket; -use Net::Cmd; -use Net::Config; -use Time::Local; - -our $VERSION = "3.10"; - -# Code for detecting if we can use SSL -my $ssl_class = eval { - require IO::Socket::SSL; - # first version with default CA on most platforms - no warnings 'numeric'; - IO::Socket::SSL->VERSION(2.007); -} && 'IO::Socket::SSL'; - -my $nossl_warn = !$ssl_class && - 'To use SSL please install IO::Socket::SSL with version>=2.007'; - -# Code for detecting if we can use IPv6 -my $family_key = 'Domain'; -my $inet6_class = eval { - require IO::Socket::IP; - no warnings 'numeric'; - IO::Socket::IP->VERSION(0.25) || die; - $family_key = 'Family'; -} && 'IO::Socket::IP' || eval { - require IO::Socket::INET6; - no warnings 'numeric'; - IO::Socket::INET6->VERSION(2.62); -} && 'IO::Socket::INET6'; - - -sub can_ssl { $ssl_class }; -sub can_inet6 { $inet6_class }; - -our @ISA = ('Net::Cmd', $inet6_class || 'IO::Socket::INET'); - - -sub new { - my $self = shift; - my $type = ref($self) || $self; - my ($host, %arg); - if (@_ % 2) { - $host = shift; - %arg = @_; - } - else { - %arg = @_; - $host = delete $arg{Host}; - } - my $obj; - - $host ||= $ENV{NNTPSERVER} || $ENV{NEWSHOST}; - - my $hosts = defined $host ? [$host] : $NetConfig{nntp_hosts}; - - @{$hosts} = qw(news) - unless @{$hosts}; - - my %connect = ( Proto => 'tcp'); - - if ($arg{SSL}) { - # SSL from start - die $nossl_warn if ! $ssl_class; - $arg{Port} ||= 563; - $connect{$_} = $arg{$_} for(grep { m{^SSL_} } keys %arg); - } - - foreach my $o (qw(LocalAddr LocalPort Timeout)) { - $connect{$o} = $arg{$o} if exists $arg{$o}; - } - $connect{$family_key} = $arg{Domain} || $arg{Family}; - $connect{Timeout} = 120 unless defined $connect{Timeout}; - $connect{PeerPort} = $arg{Port} || 'nntp(119)'; - foreach my $h (@{$hosts}) { - $connect{PeerAddr} = $h; - $obj = $type->SUPER::new(%connect) or next; - ${*$obj}{'net_nntp_host'} = $h; - ${*$obj}{'net_nntp_arg'} = \%arg; - if ($arg{SSL}) { - Net::NNTP::_SSL->start_SSL($obj,%arg) or next; - } - last: - } - - return - unless defined $obj; - - $obj->autoflush(1); - $obj->debug(exists $arg{Debug} ? $arg{Debug} : undef); - - unless ($obj->response() == CMD_OK) { - $obj->close; - return; - } - - my $c = $obj->code; - my @m = $obj->message; - - unless (exists $arg{Reader} && $arg{Reader} == 0) { - - # if server is INN and we have transfer rights the we are currently - # talking to innd not nnrpd - if ($obj->reader) { - - # If reader succeeds the we need to consider this code to determine postok - $c = $obj->code; - } - else { - - # I want to ignore this failure, so restore the previous status. - $obj->set_status($c, \@m); - } - } - - ${*$obj}{'net_nntp_post'} = $c == 200 ? 1 : 0; - - $obj; -} - - -sub host { - my $me = shift; - ${*$me}{'net_nntp_host'}; -} - - -sub debug_text { - my $nntp = shift; - my $inout = shift; - my $text = shift; - - if ( (ref($nntp) and $nntp->code == 350 and $text =~ /^(\S+)/) - || ($text =~ /^(authinfo\s+pass)/io)) - { - $text = "$1 ....\n"; - } - - $text; -} - - -sub postok { - @_ == 1 or croak 'usage: $nntp->postok()'; - my $nntp = shift; - ${*$nntp}{'net_nntp_post'} || 0; -} - - -sub starttls { - my $self = shift; - $ssl_class or die $nossl_warn; - $self->_STARTTLS or return; - Net::NNTP::_SSL->start_SSL($self, - %{ ${*$self}{'net_nntp_arg'} }, # (ssl) args given in new - @_ # more (ssl) args - ) or return; - return 1; -} - - -sub article { - @_ >= 1 && @_ <= 3 or croak 'usage: $nntp->article( [ MSGID ], [ FH ] )'; - my $nntp = shift; - my @fh; - - @fh = (pop) if @_ == 2 || (@_ && (ref($_[0]) || ref(\$_[0]) eq 'GLOB')); - - $nntp->_ARTICLE(@_) - ? $nntp->read_until_dot(@fh) - : undef; -} - - -sub articlefh { - @_ >= 1 && @_ <= 2 or croak 'usage: $nntp->articlefh( [ MSGID ] )'; - my $nntp = shift; - - return unless $nntp->_ARTICLE(@_); - return $nntp->tied_fh; -} - - -sub authinfo { - @_ == 3 or croak 'usage: $nntp->authinfo( USER, PASS )'; - my ($nntp, $user, $pass) = @_; - - $nntp->_AUTHINFO("USER", $user) == CMD_MORE - && $nntp->_AUTHINFO("PASS", $pass) == CMD_OK; -} - - -sub authinfo_simple { - @_ == 3 or croak 'usage: $nntp->authinfo( USER, PASS )'; - my ($nntp, $user, $pass) = @_; - - $nntp->_AUTHINFO('SIMPLE') == CMD_MORE - && $nntp->command($user, $pass)->response == CMD_OK; -} - - -sub body { - @_ >= 1 && @_ <= 3 or croak 'usage: $nntp->body( [ MSGID ], [ FH ] )'; - my $nntp = shift; - my @fh; - - @fh = (pop) if @_ == 2 || (@_ && ref($_[0]) || ref(\$_[0]) eq 'GLOB'); - - $nntp->_BODY(@_) - ? $nntp->read_until_dot(@fh) - : undef; -} - - -sub bodyfh { - @_ >= 1 && @_ <= 2 or croak 'usage: $nntp->bodyfh( [ MSGID ] )'; - my $nntp = shift; - return unless $nntp->_BODY(@_); - return $nntp->tied_fh; -} - - -sub head { - @_ >= 1 && @_ <= 3 or croak 'usage: $nntp->head( [ MSGID ], [ FH ] )'; - my $nntp = shift; - my @fh; - - @fh = (pop) if @_ == 2 || (@_ && ref($_[0]) || ref(\$_[0]) eq 'GLOB'); - - $nntp->_HEAD(@_) - ? $nntp->read_until_dot(@fh) - : undef; -} - - -sub headfh { - @_ >= 1 && @_ <= 2 or croak 'usage: $nntp->headfh( [ MSGID ] )'; - my $nntp = shift; - return unless $nntp->_HEAD(@_); - return $nntp->tied_fh; -} - - -sub nntpstat { - @_ == 1 || @_ == 2 or croak 'usage: $nntp->nntpstat( [ MSGID ] )'; - my $nntp = shift; - - $nntp->_STAT(@_) && $nntp->message =~ /(<[^>]+>)/o - ? $1 - : undef; -} - - -sub group { - @_ == 1 || @_ == 2 or croak 'usage: $nntp->group( [ GROUP ] )'; - my $nntp = shift; - my $grp = ${*$nntp}{'net_nntp_group'}; - - return $grp - unless (@_ || wantarray); - - my $newgrp = shift; - - $newgrp = (defined($grp) and length($grp)) ? $grp : "" - unless defined($newgrp) and length($newgrp); - - return - unless $nntp->_GROUP($newgrp) and $nntp->message =~ /(\d+)\s+(\d+)\s+(\d+)\s+(\S+)/; - - my ($count, $first, $last, $group) = ($1, $2, $3, $4); - - # group may be replied as '(current group)' - $group = ${*$nntp}{'net_nntp_group'} - if $group =~ /\(/; - - ${*$nntp}{'net_nntp_group'} = $group; - - wantarray - ? ($count, $first, $last, $group) - : $group; -} - - -sub help { - @_ == 1 or croak 'usage: $nntp->help()'; - my $nntp = shift; - - $nntp->_HELP - ? $nntp->read_until_dot - : undef; -} - - -sub ihave { - @_ >= 2 or croak 'usage: $nntp->ihave( MESSAGE-ID [, MESSAGE ])'; - my $nntp = shift; - my $mid = shift; - - $nntp->_IHAVE($mid) && $nntp->datasend(@_) - ? @_ == 0 || $nntp->dataend - : undef; -} - - -sub last { - @_ == 1 or croak 'usage: $nntp->last()'; - my $nntp = shift; - - $nntp->_LAST && $nntp->message =~ /(<[^>]+>)/o - ? $1 - : undef; -} - - -sub list { - @_ == 1 or croak 'usage: $nntp->list()'; - my $nntp = shift; - - $nntp->_LIST - ? $nntp->_grouplist - : undef; -} - - -sub newgroups { - @_ >= 2 or croak 'usage: $nntp->newgroups( SINCE [, DISTRIBUTIONS ])'; - my $nntp = shift; - my $time = _timestr(shift); - my $dist = shift || ""; - - $dist = join(",", @{$dist}) - if ref($dist); - - $nntp->_NEWGROUPS($time, $dist) - ? $nntp->_grouplist - : undef; -} - - -sub newnews { - @_ >= 2 && @_ <= 4 - or croak 'usage: $nntp->newnews( SINCE [, GROUPS [, DISTRIBUTIONS ]])'; - my $nntp = shift; - my $time = _timestr(shift); - my $grp = @_ ? shift: $nntp->group; - my $dist = shift || ""; - - $grp ||= "*"; - $grp = join(",", @{$grp}) - if ref($grp); - - $dist = join(",", @{$dist}) - if ref($dist); - - $nntp->_NEWNEWS($grp, $time, $dist) - ? $nntp->_articlelist - : undef; -} - - -sub next { - @_ == 1 or croak 'usage: $nntp->next()'; - my $nntp = shift; - - $nntp->_NEXT && $nntp->message =~ /(<[^>]+>)/o - ? $1 - : undef; -} - - -sub post { - @_ >= 1 or croak 'usage: $nntp->post( [ MESSAGE ] )'; - my $nntp = shift; - - $nntp->_POST() && $nntp->datasend(@_) - ? @_ == 0 || $nntp->dataend - : undef; -} - - -sub postfh { - my $nntp = shift; - return unless $nntp->_POST(); - return $nntp->tied_fh; -} - - -sub quit { - @_ == 1 or croak 'usage: $nntp->quit()'; - my $nntp = shift; - - $nntp->_QUIT; - $nntp->close; -} - - -sub slave { - @_ == 1 or croak 'usage: $nntp->slave()'; - my $nntp = shift; - - $nntp->_SLAVE; -} - -## -## The following methods are not implemented by all servers -## - - -sub active { - @_ == 1 || @_ == 2 or croak 'usage: $nntp->active( [ PATTERN ] )'; - my $nntp = shift; - - $nntp->_LIST('ACTIVE', @_) - ? $nntp->_grouplist - : undef; -} - - -sub active_times { - @_ == 1 or croak 'usage: $nntp->active_times()'; - my $nntp = shift; - - $nntp->_LIST('ACTIVE.TIMES') - ? $nntp->_grouplist - : undef; -} - - -sub distributions { - @_ == 1 or croak 'usage: $nntp->distributions()'; - my $nntp = shift; - - $nntp->_LIST('DISTRIBUTIONS') - ? $nntp->_description - : undef; -} - - -sub distribution_patterns { - @_ == 1 or croak 'usage: $nntp->distributions()'; - my $nntp = shift; - - my $arr; - local $_; - - ## no critic (ControlStructures::ProhibitMutatingListFunctions) - $nntp->_LIST('DISTRIB.PATS') - && ($arr = $nntp->read_until_dot) - ? [grep { /^\d/ && (chomp, $_ = [split /:/]) } @$arr] - : undef; -} - - -sub newsgroups { - @_ == 1 || @_ == 2 or croak 'usage: $nntp->newsgroups( [ PATTERN ] )'; - my $nntp = shift; - - $nntp->_LIST('NEWSGROUPS', @_) - ? $nntp->_description - : undef; -} - - -sub overview_fmt { - @_ == 1 or croak 'usage: $nntp->overview_fmt()'; - my $nntp = shift; - - $nntp->_LIST('OVERVIEW.FMT') - ? $nntp->_articlelist - : undef; -} - - -sub subscriptions { - @_ == 1 or croak 'usage: $nntp->subscriptions()'; - my $nntp = shift; - - $nntp->_LIST('SUBSCRIPTIONS') - ? $nntp->_articlelist - : undef; -} - - -sub listgroup { - @_ == 1 || @_ == 2 or croak 'usage: $nntp->listgroup( [ GROUP ] )'; - my $nntp = shift; - - $nntp->_LISTGROUP(@_) - ? $nntp->_articlelist - : undef; -} - - -sub reader { - @_ == 1 or croak 'usage: $nntp->reader()'; - my $nntp = shift; - - $nntp->_MODE('READER'); -} - - -sub xgtitle { - @_ == 1 || @_ == 2 or croak 'usage: $nntp->xgtitle( [ PATTERN ] )'; - my $nntp = shift; - - $nntp->_XGTITLE(@_) - ? $nntp->_description - : undef; -} - - -sub xhdr { - @_ >= 2 && @_ <= 4 or croak 'usage: $nntp->xhdr( HEADER, [ MESSAGE-SPEC ] )'; - my $nntp = shift; - my $hdr = shift; - my $arg = _msg_arg(@_); - - $nntp->_XHDR($hdr, $arg) - ? $nntp->_description - : undef; -} - - -sub xover { - @_ == 2 || @_ == 3 or croak 'usage: $nntp->xover( MESSAGE-SPEC )'; - my $nntp = shift; - my $arg = _msg_arg(@_); - - $nntp->_XOVER($arg) - ? $nntp->_fieldlist - : undef; -} - - -sub xpat { - @_ == 4 || @_ == 5 or croak '$nntp->xpat( HEADER, PATTERN, MESSAGE-SPEC )'; - my $nntp = shift; - my $hdr = shift; - my $pat = shift; - my $arg = _msg_arg(@_); - - $pat = join(" ", @$pat) - if ref($pat); - - $nntp->_XPAT($hdr, $arg, $pat) - ? $nntp->_description - : undef; -} - - -sub xpath { - @_ == 2 or croak 'usage: $nntp->xpath( MESSAGE-ID )'; - my ($nntp, $mid) = @_; - - return - unless $nntp->_XPATH($mid); - - my $m; - ($m = $nntp->message) =~ s/^\d+\s+//o; - my @p = split /\s+/, $m; - - wantarray ? @p : $p[0]; -} - - -sub xrover { - @_ == 2 || @_ == 3 or croak 'usage: $nntp->xrover( MESSAGE-SPEC )'; - my $nntp = shift; - my $arg = _msg_arg(@_); - - $nntp->_XROVER($arg) - ? $nntp->_description - : undef; -} - - -sub date { - @_ == 1 or croak 'usage: $nntp->date()'; - my $nntp = shift; - - $nntp->_DATE - && $nntp->message =~ /(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/ - ? timegm($6, $5, $4, $3, $2 - 1, $1 - 1900) - : undef; -} - - -## -## Private subroutines -## - - -sub _msg_arg { - my $spec = shift; - my $arg = ""; - - if (@_) { - carp "Depriciated passing of two message numbers, " . "pass a reference" - if $^W; - $spec = [$spec, $_[0]]; - } - - if (defined $spec) { - if (ref($spec)) { - $arg = $spec->[0]; - if (defined $spec->[1]) { - $arg .= "-" - if $spec->[1] != $spec->[0]; - $arg .= $spec->[1] - if $spec->[1] > $spec->[0]; - } - } - else { - $arg = $spec; - } - } - - $arg; -} - - -sub _timestr { - my $time = shift; - my @g = reverse((gmtime($time))[0 .. 5]); - $g[1] += 1; - $g[0] %= 100; - sprintf "%02d%02d%02d %02d%02d%02d GMT", @g; -} - - -sub _grouplist { - my $nntp = shift; - my $arr = $nntp->read_until_dot - or return; - - my $hash = {}; - - foreach my $ln (@$arr) { - my @a = split(/[\s\n]+/, $ln); - $hash->{$a[0]} = [@a[1, 2, 3]]; - } - - $hash; -} - - -sub _fieldlist { - my $nntp = shift; - my $arr = $nntp->read_until_dot - or return; - - my $hash = {}; - - foreach my $ln (@$arr) { - my @a = split(/[\t\n]/, $ln); - my $m = shift @a; - $hash->{$m} = [@a]; - } - - $hash; -} - - -sub _articlelist { - my $nntp = shift; - my $arr = $nntp->read_until_dot; - - chomp(@$arr) - if $arr; - - $arr; -} - - -sub _description { - my $nntp = shift; - my $arr = $nntp->read_until_dot - or return; - - my $hash = {}; - - foreach my $ln (@$arr) { - chomp($ln); - - $hash->{$1} = $ln - if $ln =~ s/^\s*(\S+)\s*//o; - } - - $hash; - -} - -## -## The commands -## - - -sub _ARTICLE { shift->command('ARTICLE', @_)->response == CMD_OK } -sub _AUTHINFO { shift->command('AUTHINFO', @_)->response } -sub _BODY { shift->command('BODY', @_)->response == CMD_OK } -sub _DATE { shift->command('DATE')->response == CMD_INFO } -sub _GROUP { shift->command('GROUP', @_)->response == CMD_OK } -sub _HEAD { shift->command('HEAD', @_)->response == CMD_OK } -sub _HELP { shift->command('HELP', @_)->response == CMD_INFO } -sub _IHAVE { shift->command('IHAVE', @_)->response == CMD_MORE } -sub _LAST { shift->command('LAST')->response == CMD_OK } -sub _LIST { shift->command('LIST', @_)->response == CMD_OK } -sub _LISTGROUP { shift->command('LISTGROUP', @_)->response == CMD_OK } -sub _NEWGROUPS { shift->command('NEWGROUPS', @_)->response == CMD_OK } -sub _NEWNEWS { shift->command('NEWNEWS', @_)->response == CMD_OK } -sub _NEXT { shift->command('NEXT')->response == CMD_OK } -sub _POST { shift->command('POST', @_)->response == CMD_MORE } -sub _QUIT { shift->command('QUIT', @_)->response == CMD_OK } -sub _SLAVE { shift->command('SLAVE', @_)->response == CMD_OK } -sub _STARTTLS { shift->command("STARTTLS")->response() == CMD_MORE } -sub _STAT { shift->command('STAT', @_)->response == CMD_OK } -sub _MODE { shift->command('MODE', @_)->response == CMD_OK } -sub _XGTITLE { shift->command('XGTITLE', @_)->response == CMD_OK } -sub _XHDR { shift->command('XHDR', @_)->response == CMD_OK } -sub _XPAT { shift->command('XPAT', @_)->response == CMD_OK } -sub _XPATH { shift->command('XPATH', @_)->response == CMD_OK } -sub _XOVER { shift->command('XOVER', @_)->response == CMD_OK } -sub _XROVER { shift->command('XROVER', @_)->response == CMD_OK } -sub _XTHREAD { shift->unsupported } -sub _XSEARCH { shift->unsupported } -sub _XINDEX { shift->unsupported } - -## -## IO/perl methods -## - - -sub DESTROY { - my $nntp = shift; - defined(fileno($nntp)) && $nntp->quit; -} - -{ - package Net::NNTP::_SSL; - our @ISA = ( $ssl_class ? ($ssl_class):(), 'Net::NNTP' ); - sub starttls { die "NNTP connection is already in SSL mode" } - sub start_SSL { - my ($class,$nntp,%arg) = @_; - delete @arg{ grep { !m{^SSL_} } keys %arg }; - ( $arg{SSL_verifycn_name} ||= $nntp->host ) - =~s{(?can_client_sni; - my $ok = $class->SUPER::start_SSL($nntp, - SSL_verifycn_scheme => 'nntp', - %arg - ); - $@ = $ssl_class->errstr if !$ok; - return $ok; - } -} - - - - -1; - -__END__ - -#line 1303 diff --git a/software/Slic3r-1.3.0.64bit/lib/Net/Netrc.pm b/software/Slic3r-1.3.0.64bit/lib/Net/Netrc.pm deleted file mode 100644 index 59ef8487..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Net/Netrc.pm +++ /dev/null @@ -1,207 +0,0 @@ -#line 1 "Net/Netrc.pm" -# Net::Netrc.pm -# -# Versions up to 2.13 Copyright (c) 1995-1998 Graham Barr . -# All rights reserved. -# Changes in Version 2.13_01 onwards Copyright (C) 2013-2014 Steve Hay. All -# rights reserved. -# This module is free software; you can redistribute it and/or modify it under -# the same terms as Perl itself, i.e. under the terms of either the GNU General -# Public License or the Artistic License, as specified in the F file. - -package Net::Netrc; - -use 5.008001; - -use strict; -use warnings; - -use Carp; -use FileHandle; - -our $VERSION = "3.10"; - -our $TESTING; - -my %netrc = (); - -sub _readrc { - my($class, $host) = @_; - my ($home, $file); - - if ($^O eq "MacOS") { - $home = $ENV{HOME} || `pwd`; - chomp($home); - $file = ($home =~ /:$/ ? $home . "netrc" : $home . ":netrc"); - } - else { - - # Some OS's don't have "getpwuid", so we default to $ENV{HOME} - $home = eval { (getpwuid($>))[7] } || $ENV{HOME}; - $home ||= $ENV{HOMEDRIVE} . ($ENV{HOMEPATH} || '') if defined $ENV{HOMEDRIVE}; - if (-e $home . "/.netrc") { - $file = $home . "/.netrc"; - } - elsif (-e $home . "/_netrc") { - $file = $home . "/_netrc"; - } - else { - return unless $TESTING; - } - } - - my ($login, $pass, $acct) = (undef, undef, undef); - my $fh; - local $_; - - $netrc{default} = undef; - - # OS/2 and Win32 do not handle stat in a way compatible with this check :-( - unless ($^O eq 'os2' - || $^O eq 'MSWin32' - || $^O eq 'MacOS' - || $^O =~ /^cygwin/) - { - my @stat = stat($file); - - if (@stat) { - if ($stat[2] & 077) { ## no critic (ValuesAndExpressions::ProhibitLeadingZeros) - carp "Bad permissions: $file"; - return; - } - if ($stat[4] != $<) { - carp "Not owner: $file"; - return; - } - } - } - - if ($fh = FileHandle->new($file, "r")) { - my ($mach, $macdef, $tok, @tok) = (0, 0); - - while (<$fh>) { - undef $macdef if /\A\n\Z/; - - if ($macdef) { - push(@$macdef, $_); - next; - } - - s/^\s*//; - chomp; - - while (length && s/^("((?:[^"]+|\\.)*)"|((?:[^\\\s]+|\\.)*))\s*//) { - (my $tok = $+) =~ s/\\(.)/$1/g; - push(@tok, $tok); - } - - TOKEN: - while (@tok) { - if ($tok[0] eq "default") { - shift(@tok); - $mach = bless {}, $class; - $netrc{default} = [$mach]; - - next TOKEN; - } - - last TOKEN - unless @tok > 1; - - $tok = shift(@tok); - - if ($tok eq "machine") { - my $host = shift @tok; - $mach = bless {machine => $host}, $class; - - $netrc{$host} = [] - unless exists($netrc{$host}); - push(@{$netrc{$host}}, $mach); - } - elsif ($tok =~ /^(login|password|account)$/) { - next TOKEN unless $mach; - my $value = shift @tok; - - # Following line added by rmerrell to remove '/' escape char in .netrc - $value =~ s/\/\\/\\/g; - $mach->{$1} = $value; - } - elsif ($tok eq "macdef") { - next TOKEN unless $mach; - my $value = shift @tok; - $mach->{macdef} = {} - unless exists $mach->{macdef}; - $macdef = $mach->{machdef}{$value} = []; - } - } - } - $fh->close(); - } -} - - -sub lookup { - my ($class, $mach, $login) = @_; - - $class->_readrc() - unless exists $netrc{default}; - - $mach ||= 'default'; - undef $login - if $mach eq 'default'; - - if (exists $netrc{$mach}) { - if (defined $login) { - foreach my $m (@{$netrc{$mach}}) { - return $m - if (exists $m->{login} && $m->{login} eq $login); - } - return; - } - return $netrc{$mach}->[0]; - } - - return $netrc{default}->[0] - if defined $netrc{default}; - - return; -} - - -sub login { - my $me = shift; - - exists $me->{login} - ? $me->{login} - : undef; -} - - -sub account { - my $me = shift; - - exists $me->{account} - ? $me->{account} - : undef; -} - - -sub password { - my $me = shift; - - exists $me->{password} - ? $me->{password} - : undef; -} - - -sub lpa { - my $me = shift; - ($me->login, $me->password, $me->account); -} - -1; - -__END__ - -#line 348 diff --git a/software/Slic3r-1.3.0.64bit/lib/Net/SSLeay.pm b/software/Slic3r-1.3.0.64bit/lib/Net/SSLeay.pm deleted file mode 100644 index a232c929..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Net/SSLeay.pm +++ /dev/null @@ -1,1427 +0,0 @@ -#line 1 "Net/SSLeay.pm" -# Net::SSLeay.pm - Perl module for using Eric Young's implementation of SSL -# -# Copyright (c) 1996-2003 Sampo Kellomaki , All Rights Reserved. -# Copyright (C) 2005 Florian Ragwitz , All Rights Reserved. -# Copyright (C) 2005 Mike McCauley , All Rights Reserved. -# -# $Id: SSLeay.pm 483 2017-01-03 07:55:54Z mikem-guest $ -# -# Change data removed from here. See Changes -# The distribution and use of this module are subject to the conditions -# listed in LICENSE file at the root of the Net-SSLeay -# distribution (i.e. same license as Perl itself). - -package Net::SSLeay; - -use strict; -use Carp; -use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD $CRLF); -use Socket; -use Errno; -require 5.005_000; - -require Exporter; -use AutoLoader; - -# 0=no warns, 1=only errors, 2=ciphers, 3=progress, 4=dump data -$Net::SSLeay::trace = 0; # Do not change here, use - # $Net::SSLeay::trace = [1-4] in caller - -# 2 = insist on v2 SSL protocol -# 3 = insist on v3 SSL -# 10 = insist on TLSv1 -# 11 = insist on TLSv1.1 -# 12 = insist on TLSv1.2 -# 0 or undef = guess (v23) -# -$Net::SSLeay::ssl_version = 0; # don't change here, use - # Net::SSLeay::version=[2,3,0] in caller - -#define to enable the "cat /proc/$$/stat" stuff -$Net::SSLeay::linux_debug = 0; - -# Number of seconds to sleep after sending message and before half -# closing connection. Useful with antiquated broken servers. -$Net::SSLeay::slowly = 0; - -# RANDOM NUMBER INITIALIZATION -# -# Edit to your taste. Using /dev/random would be more secure, but may -# block if randomness is not available, thus the default is -# /dev/urandom. $how_random determines how many bits of randomness to take -# from the device. You should take enough (read SSLeay/doc/rand), but -# beware that randomness is limited resource so you should not waste -# it either or you may end up with randomness depletion (situation where -# /dev/random would block and /dev/urandom starts to return predictable -# numbers). -# -# N.B. /dev/urandom does not exit on all systems, such as Solaris 2.6. In that -# case you should get a third party package that emulates /dev/urandom -# (e.g. via named pipe) or supply a random number file. Some such -# packages are documented in Caveat section of the POD documentation. - -$Net::SSLeay::random_device = '/dev/urandom'; -$Net::SSLeay::how_random = 512; - -$VERSION = '1.80'; # Dont forget to set version in META.yml too -@ISA = qw(Exporter); - -#BEWARE: -# 3-columns part of @EXPORT_OK related to constants is the output of command: -# perl helper_script/regen_openssl_constants.pl -gen-pod -# if you add/remove any constant you need to update it manually - -@EXPORT_OK = qw( - ASN1_STRFLGS_ESC_CTRL NID_ext_key_usage OP_CRYPTOPRO_TLSEXT_BUG - ASN1_STRFLGS_ESC_MSB NID_ext_req OP_DONT_INSERT_EMPTY_FRAGMENTS - ASN1_STRFLGS_ESC_QUOTE NID_friendlyName OP_EPHEMERAL_RSA - ASN1_STRFLGS_RFC2253 NID_givenName OP_LEGACY_SERVER_CONNECT - CB_ACCEPT_EXIT NID_hmacWithSHA1 OP_MICROSOFT_BIG_SSLV3_BUFFER - CB_ACCEPT_LOOP NID_id_ad OP_MICROSOFT_SESS_ID_BUG - CB_ALERT NID_id_ce OP_MSIE_SSLV2_RSA_PADDING - CB_CONNECT_EXIT NID_id_kp OP_NETSCAPE_CA_DN_BUG - CB_CONNECT_LOOP NID_id_pbkdf2 OP_NETSCAPE_CHALLENGE_BUG - CB_EXIT NID_id_pe OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG - CB_HANDSHAKE_DONE NID_id_pkix OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG - CB_HANDSHAKE_START NID_id_qt_cps OP_NON_EXPORT_FIRST - CB_LOOP NID_id_qt_unotice OP_NO_COMPRESSION - CB_READ NID_idea_cbc OP_NO_QUERY_MTU - CB_READ_ALERT NID_idea_cfb64 OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION - CB_WRITE NID_idea_ecb OP_NO_SSLv2 - CB_WRITE_ALERT NID_idea_ofb64 OP_NO_SSLv3 - ERROR_NONE NID_info_access OP_NO_TICKET - ERROR_SSL NID_initials OP_NO_TLSv1 - ERROR_SYSCALL NID_invalidity_date OP_NO_TLSv1_1 - ERROR_WANT_ACCEPT NID_issuer_alt_name OP_NO_TLSv1_2 - ERROR_WANT_CONNECT NID_keyBag OP_PKCS1_CHECK_1 - ERROR_WANT_READ NID_key_usage OP_PKCS1_CHECK_2 - ERROR_WANT_WRITE NID_localKeyID OP_SINGLE_DH_USE - ERROR_WANT_X509_LOOKUP NID_localityName OP_SINGLE_ECDH_USE - ERROR_ZERO_RETURN NID_md2 OP_SSLEAY_080_CLIENT_DH_BUG - EVP_PKS_DSA NID_md2WithRSAEncryption OP_SSLREF2_REUSE_CERT_TYPE_BUG - EVP_PKS_EC NID_md5 OP_TLS_BLOCK_PADDING_BUG - EVP_PKS_RSA NID_md5WithRSA OP_TLS_D5_BUG - EVP_PKT_ENC NID_md5WithRSAEncryption OP_TLS_ROLLBACK_BUG - EVP_PKT_EXCH NID_md5_sha1 READING - EVP_PKT_EXP NID_mdc2 RECEIVED_SHUTDOWN - EVP_PKT_SIGN NID_mdc2WithRSA RSA_3 - EVP_PK_DH NID_ms_code_com RSA_F4 - EVP_PK_DSA NID_ms_code_ind R_BAD_AUTHENTICATION_TYPE - EVP_PK_EC NID_ms_ctl_sign R_BAD_CHECKSUM - EVP_PK_RSA NID_ms_efs R_BAD_MAC_DECODE - FILETYPE_ASN1 NID_ms_ext_req R_BAD_RESPONSE_ARGUMENT - FILETYPE_PEM NID_ms_sgc R_BAD_SSL_FILETYPE - F_CLIENT_CERTIFICATE NID_name R_BAD_SSL_SESSION_ID_LENGTH - F_CLIENT_HELLO NID_netscape R_BAD_STATE - F_CLIENT_MASTER_KEY NID_netscape_base_url R_BAD_WRITE_RETRY - F_D2I_SSL_SESSION NID_netscape_ca_policy_url R_CHALLENGE_IS_DIFFERENT - F_GET_CLIENT_FINISHED NID_netscape_ca_revocation_url R_CIPHER_TABLE_SRC_ERROR - F_GET_CLIENT_HELLO NID_netscape_cert_extension R_INVALID_CHALLENGE_LENGTH - F_GET_CLIENT_MASTER_KEY NID_netscape_cert_sequence R_NO_CERTIFICATE_SET - F_GET_SERVER_FINISHED NID_netscape_cert_type R_NO_CERTIFICATE_SPECIFIED - F_GET_SERVER_HELLO NID_netscape_comment R_NO_CIPHER_LIST - F_GET_SERVER_VERIFY NID_netscape_data_type R_NO_CIPHER_MATCH - F_I2D_SSL_SESSION NID_netscape_renewal_url R_NO_PRIVATEKEY - F_READ_N NID_netscape_revocation_url R_NO_PUBLICKEY - F_REQUEST_CERTIFICATE NID_netscape_ssl_server_name R_NULL_SSL_CTX - F_SERVER_HELLO NID_ns_sgc R_PEER_DID_NOT_RETURN_A_CERTIFICATE - F_SSL_CERT_NEW NID_organizationName R_PEER_ERROR - F_SSL_GET_NEW_SESSION NID_organizationalUnitName R_PEER_ERROR_CERTIFICATE - F_SSL_NEW NID_pbeWithMD2AndDES_CBC R_PEER_ERROR_NO_CIPHER - F_SSL_READ NID_pbeWithMD2AndRC2_CBC R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE - F_SSL_RSA_PRIVATE_DECRYPT NID_pbeWithMD5AndCast5_CBC R_PUBLIC_KEY_ENCRYPT_ERROR - F_SSL_RSA_PUBLIC_ENCRYPT NID_pbeWithMD5AndDES_CBC R_PUBLIC_KEY_IS_NOT_RSA - F_SSL_SESSION_NEW NID_pbeWithMD5AndRC2_CBC R_READ_WRONG_PACKET_TYPE - F_SSL_SESSION_PRINT_FP NID_pbeWithSHA1AndDES_CBC R_SHORT_READ - F_SSL_SET_FD NID_pbeWithSHA1AndRC2_CBC R_SSL_SESSION_ID_IS_DIFFERENT - F_SSL_SET_RFD NID_pbe_WithSHA1And128BitRC2_CBC R_UNABLE_TO_EXTRACT_PUBLIC_KEY - F_SSL_SET_WFD NID_pbe_WithSHA1And128BitRC4 R_UNKNOWN_REMOTE_ERROR_TYPE - F_SSL_USE_CERTIFICATE NID_pbe_WithSHA1And2_Key_TripleDES_CBC R_UNKNOWN_STATE - F_SSL_USE_CERTIFICATE_ASN1 NID_pbe_WithSHA1And3_Key_TripleDES_CBC R_X509_LIB - F_SSL_USE_CERTIFICATE_FILE NID_pbe_WithSHA1And40BitRC2_CBC SENT_SHUTDOWN - F_SSL_USE_PRIVATEKEY NID_pbe_WithSHA1And40BitRC4 SESSION_ASN1_VERSION - F_SSL_USE_PRIVATEKEY_ASN1 NID_pbes2 ST_ACCEPT - F_SSL_USE_PRIVATEKEY_FILE NID_pbmac1 ST_BEFORE - F_SSL_USE_RSAPRIVATEKEY NID_pkcs ST_CONNECT - F_SSL_USE_RSAPRIVATEKEY_ASN1 NID_pkcs3 ST_INIT - F_SSL_USE_RSAPRIVATEKEY_FILE NID_pkcs7 ST_OK - F_WRITE_PENDING NID_pkcs7_data ST_READ_BODY - GEN_DIRNAME NID_pkcs7_digest ST_READ_HEADER - GEN_DNS NID_pkcs7_encrypted TLSEXT_STATUSTYPE_ocsp - GEN_EDIPARTY NID_pkcs7_enveloped VERIFY_CLIENT_ONCE - GEN_EMAIL NID_pkcs7_signed VERIFY_FAIL_IF_NO_PEER_CERT - GEN_IPADD NID_pkcs7_signedAndEnveloped VERIFY_NONE - GEN_OTHERNAME NID_pkcs8ShroudedKeyBag VERIFY_PEER - GEN_RID NID_pkcs9 V_OCSP_CERTSTATUS_GOOD - GEN_URI NID_pkcs9_challengePassword V_OCSP_CERTSTATUS_REVOKED - GEN_X400 NID_pkcs9_contentType V_OCSP_CERTSTATUS_UNKNOWN - LIBRESSL_VERSION_NUMBER NID_pkcs9_countersignature WRITING - MBSTRING_ASC NID_pkcs9_emailAddress X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT - MBSTRING_BMP NID_pkcs9_extCertAttributes X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS - MBSTRING_FLAG NID_pkcs9_messageDigest X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS - MBSTRING_UNIV NID_pkcs9_signingTime X509_CHECK_FLAG_NO_WILDCARDS - MBSTRING_UTF8 NID_pkcs9_unstructuredAddress X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS - MIN_RSA_MODULUS_LENGTH_IN_BYTES NID_pkcs9_unstructuredName X509_LOOKUP - MODE_ACCEPT_MOVING_WRITE_BUFFER NID_private_key_usage_period X509_PURPOSE_ANY - MODE_AUTO_RETRY NID_rc2_40_cbc X509_PURPOSE_CRL_SIGN - MODE_ENABLE_PARTIAL_WRITE NID_rc2_64_cbc X509_PURPOSE_NS_SSL_SERVER - MODE_RELEASE_BUFFERS NID_rc2_cbc X509_PURPOSE_OCSP_HELPER - NID_OCSP_sign NID_rc2_cfb64 X509_PURPOSE_SMIME_ENCRYPT - NID_SMIMECapabilities NID_rc2_ecb X509_PURPOSE_SMIME_SIGN - NID_X500 NID_rc2_ofb64 X509_PURPOSE_SSL_CLIENT - NID_X509 NID_rc4 X509_PURPOSE_SSL_SERVER - NID_ad_OCSP NID_rc4_40 X509_PURPOSE_TIMESTAMP_SIGN - NID_ad_ca_issuers NID_rc5_cbc X509_TRUST_COMPAT - NID_algorithm NID_rc5_cfb64 X509_TRUST_EMAIL - NID_authority_key_identifier NID_rc5_ecb X509_TRUST_OBJECT_SIGN - NID_basic_constraints NID_rc5_ofb64 X509_TRUST_OCSP_REQUEST - NID_bf_cbc NID_ripemd160 X509_TRUST_OCSP_SIGN - NID_bf_cfb64 NID_ripemd160WithRSA X509_TRUST_SSL_CLIENT - NID_bf_ecb NID_rle_compression X509_TRUST_SSL_SERVER - NID_bf_ofb64 NID_rsa X509_TRUST_TSA - NID_cast5_cbc NID_rsaEncryption X509_V_FLAG_ALLOW_PROXY_CERTS - NID_cast5_cfb64 NID_rsadsi X509_V_FLAG_CB_ISSUER_CHECK - NID_cast5_ecb NID_safeContentsBag X509_V_FLAG_CHECK_SS_SIGNATURE - NID_cast5_ofb64 NID_sdsiCertificate X509_V_FLAG_CRL_CHECK - NID_certBag NID_secretBag X509_V_FLAG_CRL_CHECK_ALL - NID_certificate_policies NID_serialNumber X509_V_FLAG_EXPLICIT_POLICY - NID_client_auth NID_server_auth X509_V_FLAG_EXTENDED_CRL_SUPPORT - NID_code_sign NID_sha X509_V_FLAG_IGNORE_CRITICAL - NID_commonName NID_sha1 X509_V_FLAG_INHIBIT_ANY - NID_countryName NID_sha1WithRSA X509_V_FLAG_INHIBIT_MAP - NID_crlBag NID_sha1WithRSAEncryption X509_V_FLAG_NOTIFY_POLICY - NID_crl_distribution_points NID_shaWithRSAEncryption X509_V_FLAG_POLICY_CHECK - NID_crl_number NID_stateOrProvinceName X509_V_FLAG_POLICY_MASK - NID_crl_reason NID_subject_alt_name X509_V_FLAG_TRUSTED_FIRST - NID_delta_crl NID_subject_key_identifier X509_V_FLAG_USE_CHECK_TIME - NID_des_cbc NID_surname X509_V_FLAG_USE_DELTAS - NID_des_cfb64 NID_sxnet X509_V_FLAG_X509_STRICT - NID_des_ecb NID_time_stamp X509_V_OK - NID_des_ede NID_title XN_FLAG_COMPAT - NID_des_ede3 NID_undef XN_FLAG_DN_REV - NID_des_ede3_cbc NID_uniqueIdentifier XN_FLAG_DUMP_UNKNOWN_FIELDS - NID_des_ede3_cfb64 NID_x509Certificate XN_FLAG_FN_ALIGN - NID_des_ede3_ofb64 NID_x509Crl XN_FLAG_FN_LN - NID_des_ede_cbc NID_zlib_compression XN_FLAG_FN_MASK - NID_des_ede_cfb64 NOTHING XN_FLAG_FN_NONE - NID_des_ede_ofb64 OCSP_RESPONSE_STATUS_INTERNALERROR XN_FLAG_FN_OID - NID_des_ofb64 OCSP_RESPONSE_STATUS_MALFORMEDREQUEST XN_FLAG_FN_SN - NID_description OCSP_RESPONSE_STATUS_SIGREQUIRED XN_FLAG_MULTILINE - NID_desx_cbc OCSP_RESPONSE_STATUS_SUCCESSFUL XN_FLAG_ONELINE - NID_dhKeyAgreement OCSP_RESPONSE_STATUS_TRYLATER XN_FLAG_RFC2253 - NID_dnQualifier OCSP_RESPONSE_STATUS_UNAUTHORIZED XN_FLAG_SEP_COMMA_PLUS - NID_dsa OPENSSL_VERSION_NUMBER XN_FLAG_SEP_CPLUS_SPC - NID_dsaWithSHA OP_ALL XN_FLAG_SEP_MASK - NID_dsaWithSHA1 OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION XN_FLAG_SEP_MULTILINE - NID_dsaWithSHA1_2 OP_CIPHER_SERVER_PREFERENCE XN_FLAG_SEP_SPLUS_SPC - NID_dsa_2 OP_CISCO_ANYCONNECT XN_FLAG_SPC_EQ - NID_email_protect OP_COOKIE_EXCHANGE - BIO_eof - BIO_f_ssl - BIO_free - BIO_new - BIO_new_file - BIO_pending - BIO_read - BIO_s_mem - BIO_wpending - BIO_write - CTX_free - CTX_get_cert_store - CTX_new - CTX_use_RSAPrivateKey_file - CTX_use_certificate_file - CTX_v23_new - CTX_v2_new - CTX_v3_new - ERR_error_string - ERR_get_error - ERR_load_RAND_strings - ERR_load_SSL_strings - PEM_read_bio_X509_CRL - RSA_free - RSA_generate_key - SESSION - SESSION_free - SESSION_get_master_key - SESSION_new - SESSION_print - X509_NAME_get_text_by_NID - X509_NAME_oneline - X509_STORE_CTX_set_flags - X509_STORE_add_cert - X509_STORE_add_crl - X509_check_email - X509_check_host - X509_check_ip - X509_check_ip_asc - X509_free - X509_get_issuer_name - X509_get_subject_name - X509_load_cert_crl_file - X509_load_cert_file - X509_load_crl_file - accept - add_session - clear - clear_error - connect - copy_session_id - d2i_SSL_SESSION - die_if_ssl_error - die_now - do_https - dump_peer_certificate - err - flush_sessions - free - get_cipher - get_cipher_list - get_client_random - get_fd - get_http - get_http4 - get_https - get_https3 - get_https4 - get_httpx - get_httpx4 - get_peer_certificate - get_peer_cert_chain - get_rbio - get_read_ahead - get_server_random - get_shared_ciphers - get_time - get_timeout - get_wbio - i2d_SSL_SESSION - load_error_strings - make_form - make_headers - new - peek - pending - post_http - post_http4 - post_https - post_https3 - post_https4 - post_httpx - post_httpx4 - print_errs - read - remove_session - rstate_string - rstate_string_long - set_bio - set_cert_and_key - set_cipher_list - set_fd - set_read_ahead - set_rfd - set_server_cert_and_key - set_session - set_time - set_timeout - set_verify - set_wfd - ssl_read_CRLF - ssl_read_all - ssl_read_until - ssl_write_CRLF - ssl_write_all - sslcat - state_string - state_string_long - tcp_read_CRLF - tcp_read_all - tcp_read_until - tcp_write_CRLF - tcp_write_all - tcpcat - tcpxcat - use_PrivateKey - use_PrivateKey_ASN1 - use_PrivateKey_file - use_RSAPrivateKey - use_RSAPrivateKey_ASN1 - use_RSAPrivateKey_file - use_certificate - use_certificate_ASN1 - use_certificate_file - write - d2i_OCSP_RESPONSE - i2d_OCSP_RESPONSE - OCSP_RESPONSE_free - d2i_OCSP_REQUEST - i2d_OCSP_REQUEST - OCSP_REQUEST_free - OCSP_cert2ids - OCSP_ids2req - OCSP_response_status - OCSP_response_status_str - OCSP_response_verify - OCSP_response_results - OCSP_RESPONSE_STATUS_INTERNALERROR - OCSP_RESPONSE_STATUS_MALFORMEDREQUEST - OCSP_RESPONSE_STATUS_SIGREQUIRED - OCSP_RESPONSE_STATUS_SUCCESSFUL - OCSP_RESPONSE_STATUS_TRYLATER - OCSP_RESPONSE_STATUS_UNAUTHORIZED - TLSEXT_STATUSTYPE_ocsp - V_OCSP_CERTSTATUS_GOOD - V_OCSP_CERTSTATUS_REVOKED - V_OCSP_CERTSTATUS_UNKNOWN -); - -sub AUTOLOAD { - # This AUTOLOAD is used to 'autoload' constants from the constant() - # XS function. If a constant is not found then control is passed - # to the AUTOLOAD in AutoLoader. - - my $constname; - ($constname = $AUTOLOAD) =~ s/.*:://; - my $val = constant($constname); - if ($! != 0) { - if ($! =~ /((Invalid)|(not valid))/i || $!{EINVAL}) { - $AutoLoader::AUTOLOAD = $AUTOLOAD; - goto &AutoLoader::AUTOLOAD; - } - else { - croak "Your vendor has not defined SSLeay macro $constname"; - } - } - eval "sub $AUTOLOAD { $val }"; - goto &$AUTOLOAD; -} - -eval { - require XSLoader; - XSLoader::load('Net::SSLeay', $VERSION); - 1; -} or do { - require DynaLoader; - push @ISA, 'DynaLoader'; - bootstrap Net::SSLeay $VERSION; -}; - -# Preloaded methods go here. - -$CRLF = "\x0d\x0a"; # because \r\n is not fully portable - -### Print SSLeay error stack - -sub print_errs { - my ($msg) = @_; - my ($count, $err, $errs, $e) = (0,0,''); - while ($err = ERR_get_error()) { - $count ++; - $e = "$msg $$: $count - " . ERR_error_string($err) . "\n"; - $errs .= $e; - warn $e if $Net::SSLeay::trace; - } - return $errs; -} - -# Death is conditional to SSLeay errors existing, i.e. this function checks -# for errors and only dies in affirmative. -# usage: Net::SSLeay::write($ssl, "foo") or die_if_ssl_error("SSL write ($!)"); - -sub die_if_ssl_error { - my ($msg) = @_; - die "$$: $msg\n" if print_errs($msg); -} - -# Unconditional death. Used to print SSLeay errors before dying. -# usage: Net::SSLeay::connect($ssl) or die_now("Failed SSL connect ($!)"); - -sub die_now { - my ($msg) = @_; - print_errs($msg); - die "$$: $msg\n"; -} - -# Perl 5.6.* unicode support causes that length() no longer reliably -# reflects the byte length of a string. This eval is to fix that. -# Thanks to Sean Burke for the snippet. - -BEGIN{ -eval 'use bytes; sub blength ($) { defined $_[0] ? length $_[0] : 0 }'; -$@ and eval ' sub blength ($) { defined $_[0] ? length $_[0] : 0 }' ; -} - -# Autoload methods go after __END__, and are processed by the autosplit program. - - -1; -__END__ - -### Some methods that are macros in C - -sub want_nothing { want(shift) == 1 } -sub want_read { want(shift) == 2 } -sub want_write { want(shift) == 3 } -sub want_X509_lookup { want(shift) == 4 } - -### -### Open TCP stream to given host and port, looking up the details -### from system databases or DNS. -### - -sub open_tcp_connection { - my ($dest_serv, $port) = @_; - my ($errs); - - $port = getservbyname($port, 'tcp') unless $port =~ /^\d+$/; - my $dest_serv_ip = gethostbyname($dest_serv); - unless (defined($dest_serv_ip)) { - $errs = "$0 $$: open_tcp_connection: destination host not found:" - . " `$dest_serv' (port $port) ($!)\n"; - warn $errs if $trace; - return wantarray ? (0, $errs) : 0; - } - my $sin = sockaddr_in($port, $dest_serv_ip); - - warn "Opening connection to $dest_serv:$port (" . - inet_ntoa($dest_serv_ip) . ")" if $trace>2; - - my $proto = &Socket::IPPROTO_TCP; # getprotobyname('tcp') not available on android - if (socket (SSLCAT_S, &PF_INET(), &SOCK_STREAM(), $proto)) { - warn "next connect" if $trace>3; - if (CORE::connect (SSLCAT_S, $sin)) { - my $old_out = select (SSLCAT_S); $| = 1; select ($old_out); - warn "connected to $dest_serv, $port" if $trace>3; - return wantarray ? (1, undef) : 1; # Success - } - } - $errs = "$0 $$: open_tcp_connection: failed `$dest_serv', $port ($!)\n"; - warn $errs if $trace; - close SSLCAT_S; - return wantarray ? (0, $errs) : 0; # Fail -} - -### Open connection via standard web proxy, if one was defined -### using set_proxy(). - -sub open_proxy_tcp_connection { - my ($dest_serv, $port) = @_; - return open_tcp_connection($dest_serv, $port) if !$proxyhost; - - warn "Connect via proxy: $proxyhost:$proxyport" if $trace>2; - my ($ret, $errs) = open_tcp_connection($proxyhost, $proxyport); - return wantarray ? (0, $errs) : 0 if !$ret; # Connection fail - - warn "Asking proxy to connect to $dest_serv:$port" if $trace>2; - #print SSLCAT_S "CONNECT $dest_serv:$port HTTP/1.0$proxyauth$CRLF$CRLF"; - #my $line = ; # *** bug? Mixing stdio with syscall read? - ($ret, $errs) = - tcp_write_all("CONNECT $dest_serv:$port HTTP/1.0$proxyauth$CRLF$CRLF"); - return wantarray ? (0,$errs) : 0 if $errs; - ($line, $errs) = tcp_read_until($CRLF . $CRLF, 1024); - warn "Proxy response: $line" if $trace>2; - return wantarray ? (0,$errs) : 0 if $errs; - return wantarray ? (1,'') : 1; # Success -} - -### -### read and write helpers that block -### - -sub debug_read { - my ($replyr, $gotr) = @_; - my $vm = $trace>2 && $linux_debug ? - (split ' ', `cat /proc/$$/stat`)[22] : 'vm_unknown'; - warn " got " . blength($$gotr) . ':' - . blength($$replyr) . " bytes (VM=$vm).\n" if $trace == 3; - warn " got `$$gotr' (" . blength($$gotr) . ':' - . blength($$replyr) . " bytes, VM=$vm)\n" if $trace>3; -} - -sub ssl_read_all { - my ($ssl,$how_much) = @_; - $how_much = 2000000000 unless $how_much; - my ($got, $errs); - my $reply = ''; - - while ($how_much > 0) { - $got = Net::SSLeay::read($ssl, - ($how_much > 32768) ? 32768 : $how_much - ); - last if $errs = print_errs('SSL_read'); - $how_much -= blength($got); - debug_read(\$reply, \$got) if $trace>1; - last if $got eq ''; # EOF - $reply .= $got; - } - - return wantarray ? ($reply, $errs) : $reply; -} - -sub tcp_read_all { - my ($how_much) = @_; - $how_much = 2000000000 unless $how_much; - my ($n, $got, $errs); - my $reply = ''; - - my $bsize = 0x10000; - while ($how_much > 0) { - $n = sysread(SSLCAT_S,$got, (($bsize < $how_much) ? $bsize : $how_much)); - warn "Read error: $! ($n,$how_much)" unless defined $n; - last if !$n; # EOF - $how_much -= $n; - debug_read(\$reply, \$got) if $trace>1; - $reply .= $got; - } - return wantarray ? ($reply, $errs) : $reply; -} - -sub ssl_write_all { - my $ssl = $_[0]; - my ($data_ref, $errs); - if (ref $_[1]) { - $data_ref = $_[1]; - } else { - $data_ref = \$_[1]; - } - my ($wrote, $written, $to_write) = (0,0, blength($$data_ref)); - my $vm = $trace>2 && $linux_debug ? - (split ' ', `cat /proc/$$/stat`)[22] : 'vm_unknown'; - warn " write_all VM at entry=$vm\n" if $trace>2; - while ($to_write) { - #sleep 1; # *** DEBUG - warn "partial `$$data_ref'\n" if $trace>3; - $wrote = write_partial($ssl, $written, $to_write, $$data_ref); - if (defined $wrote && ($wrote > 0)) { # write_partial can return -1 - $written += $wrote; - $to_write -= $wrote; - } else { - if (defined $wrote) { - # check error conditions via SSL_get_error per man page - if ( my $sslerr = get_error($ssl, $wrote) ) { - my $errstr = ERR_error_string($sslerr); - my $errname = ''; - SWITCH: { - $sslerr == constant("ERROR_NONE") && do { - # according to map page SSL_get_error(3ssl): - # The TLS/SSL I/O operation completed. - # This result code is returned if and only if ret > 0 - # so if we received it here complain... - warn "ERROR_NONE unexpected with invalid return value!" - if $trace; - $errname = "SSL_ERROR_NONE"; - }; - $sslerr == constant("ERROR_WANT_READ") && do { - # operation did not complete, call again later, so do not - # set errname and empty err_que since this is a known - # error that is expected but, we should continue to try - # writing the rest of our data with same io call and params. - warn "ERROR_WANT_READ (TLS/SSL Handshake, will continue)\n" - if $trace; - print_errs('SSL_write(want read)'); - last SWITCH; - }; - $sslerr == constant("ERROR_WANT_WRITE") && do { - # operation did not complete, call again later, so do not - # set errname and empty err_que since this is a known - # error that is expected but, we should continue to try - # writing the rest of our data with same io call and params. - warn "ERROR_WANT_WRITE (TLS/SSL Handshake, will continue)\n" - if $trace; - print_errs('SSL_write(want write)'); - last SWITCH; - }; - $sslerr == constant("ERROR_ZERO_RETURN") && do { - # valid protocol closure from other side, no longer able to - # write, since there is no longer a session... - warn "ERROR_ZERO_RETURN($wrote): TLS/SSLv3 Closure alert\n" - if $trace; - $errname = "SSL_ERROR_ZERO_RETURN"; - last SWITCH; - }; - $sslerr == constant("ERROR_SSL") && do { - # library/protocol error - warn "ERROR_SSL($wrote): Library/Protocol error occured\n" - if $trace; - $errname = "SSL_ERROR_SSL"; - last SWITCH; - }; - $sslerr == constant("ERROR_WANT_CONNECT") && do { - # according to man page, should never happen on call to - # SSL_write, so complain, but handle as known error type - warn "ERROR_WANT_CONNECT: Unexpected error for SSL_write\n" - if $trace; - $errname = "SSL_ERROR_WANT_CONNECT"; - last SWITCH; - }; - $sslerr == constant("ERROR_WANT_ACCEPT") && do { - # according to man page, should never happen on call to - # SSL_write, so complain, but handle as known error type - warn "ERROR_WANT_ACCEPT: Unexpected error for SSL_write\n" - if $trace; - $errname = "SSL_ERROR_WANT_ACCEPT"; - last SWITCH; - }; - $sslerr == constant("ERROR_WANT_X509_LOOKUP") && do { - # operation did not complete: waiting on call back, - # call again later, so do not set errname and empty err_que - # since this is a known error that is expected but, we should - # continue to try writing the rest of our data with same io - # call parameter. - warn "ERROR_WANT_X509_LOOKUP: (Cert Callback asked for in ". - "SSL_write will contine)\n" if $trace; - print_errs('SSL_write(want x509'); - last SWITCH; - }; - $sslerr == constant("ERROR_SYSCALL") && do { - # some IO error occured. According to man page: - # Check retval, ERR, fallback to errno - if ($wrote==0) { # EOF - warn "ERROR_SYSCALL($wrote): EOF violates protocol.\n" - if $trace; - $errname = "SSL_ERROR_SYSCALL(EOF)"; - } else { # -1 underlying BIO error reported. - # check error que for details, don't set errname since we - # are directly appending to errs - my $chkerrs = print_errs('SSL_write (syscall)'); - if ($chkerrs) { - warn "ERROR_SYSCALL($wrote): Have errors\n" if $trace; - $errs .= "ssl_write_all $$: 1 - ERROR_SYSCALL($wrote,". - "$sslerr,$errstr,$!)\n$chkerrs"; - } else { # que was empty, use errno - warn "ERROR_SYSCALL($wrote): errno($!)\n" if $trace; - $errs .= "ssl_write_all $$: 1 - ERROR_SYSCALL($wrote,". - "$sslerr) : $!\n"; - } - } - last SWITCH; - }; - warn "Unhandled val $sslerr from SSL_get_error(SSL,$wrote)\n" - if $trace; - $errname = "SSL_ERROR_?($sslerr)"; - } # end of SWITCH block - if ($errname) { # if we had an errname set add the error - $errs .= "ssl_write_all $$: 1 - $errname($wrote,$sslerr,". - "$errstr,$!)\n"; - } - } # endif on have SSL_get_error val - } # endif on $wrote defined - } # endelse on $wrote > 0 - $vm = $trace>2 && $linux_debug ? - (split ' ', `cat /proc/$$/stat`)[22] : 'vm_unknown'; - warn " written so far $wrote:$written bytes (VM=$vm)\n" if $trace>2; - # append remaining errors in que and report if errs exist - $errs .= print_errs('SSL_write'); - return (wantarray ? (undef, $errs) : undef) if $errs; - } - return wantarray ? ($written, $errs) : $written; -} - -sub tcp_write_all { - my ($data_ref, $errs); - if (ref $_[0]) { - $data_ref = $_[0]; - } else { - $data_ref = \$_[0]; - } - my ($wrote, $written, $to_write) = (0,0, blength($$data_ref)); - my $vm = $trace>2 && $linux_debug ? - (split ' ', `cat /proc/$$/stat`)[22] : 'vm_unknown'; - warn " write_all VM at entry=$vm to_write=$to_write\n" if $trace>2; - while ($to_write) { - warn "partial `$$data_ref'\n" if $trace>3; - $wrote = syswrite(SSLCAT_S, $$data_ref, $to_write, $written); - if (defined $wrote && ($wrote > 0)) { # write_partial can return -1 - $written += $wrote; - $to_write -= $wrote; - } elsif (!defined($wrote)) { - warn "tcp_write_all: $!"; - return (wantarray ? (undef, "$!") : undef); - } - $vm = $trace>2 && $linux_debug ? - (split ' ', `cat /proc/$$/stat`)[22] : 'vm_unknown'; - warn " written so far $wrote:$written bytes (VM=$vm)\n" if $trace>2; - } - return wantarray ? ($written, '') : $written; -} - -### from patch by Clinton Wong - -# ssl_read_until($ssl [, $delimit [, $max_length]]) -# if $delimit missing, use $/ if it exists, otherwise use \n -# read until delimiter reached, up to $max_length chars if defined - -sub ssl_read_until ($;$$) { - my ($ssl,$delim, $max_length) = @_; - - # guess the delim string if missing - if ( ! defined $delim ) { - if ( defined $/ && length $/ ) { $delim = $/ } - else { $delim = "\n" } # Note: \n,$/ value depends on the platform - } - my $len_delim = length $delim; - - my ($got); - my $reply = ''; - - # If we have OpenSSL 0.9.6a or later, we can use SSL_peek to - # speed things up. - # N.B. 0.9.6a has security problems, so the support for - # anything earlier than 0.9.6e will be dropped soon. - if (&Net::SSLeay::OPENSSL_VERSION_NUMBER >= 0x0090601f) { - $max_length = 2000000000 unless (defined $max_length); - my ($pending, $peek_length, $found, $done); - while (blength($reply) < $max_length and !$done) { - #Block if necessary until we get some data - $got = Net::SSLeay::peek($ssl,1); - last if print_errs('SSL_peek'); - - $pending = Net::SSLeay::pending($ssl) + blength($reply); - $peek_length = ($pending > $max_length) ? $max_length : $pending; - $peek_length -= blength($reply); - $got = Net::SSLeay::peek($ssl, $peek_length); - last if print_errs('SSL_peek'); - $peek_length = blength($got); - - #$found = index($got, $delim); # Old and broken - - # the delimiter may be split across two gets, so we prepend - # a little from the last get onto this one before we check - # for a match - my $match; - if(blength($reply) >= blength($delim) - 1) { - #if what we've read so far is greater or equal - #in length of what we need to prepatch - $match = substr $reply, blength($reply) - blength($delim) + 1; - } else { - $match = $reply; - } - - $match .= $got; - $found = index($match, $delim); - - if ($found > -1) { - #$got = Net::SSLeay::read($ssl, $found+$len_delim); - #read up to the end of the delimiter - $got = Net::SSLeay::read($ssl, - $found + $len_delim - - ((blength($match)) - (blength($got)))); - $done = 1; - } else { - $got = Net::SSLeay::read($ssl, $peek_length); - $done = 1 if ($peek_length == $max_length - blength($reply)); - } - - last if print_errs('SSL_read'); - debug_read(\$reply, \$got) if $trace>1; - last if $got eq ''; - $reply .= $got; - } - } else { - while (!defined $max_length || length $reply < $max_length) { - $got = Net::SSLeay::read($ssl,1); # one by one - last if print_errs('SSL_read'); - debug_read(\$reply, \$got) if $trace>1; - last if $got eq ''; - $reply .= $got; - last if $len_delim - && substr($reply, blength($reply)-$len_delim) eq $delim; - } - } - return $reply; -} - -sub tcp_read_until { - my ($delim, $max_length) = @_; - - # guess the delim string if missing - if ( ! defined $delim ) { - if ( defined $/ && length $/ ) { $delim = $/ } - else { $delim = "\n" } # Note: \n,$/ value depends on the platform - } - my $len_delim = length $delim; - - my ($n,$got); - my $reply = ''; - - while (!defined $max_length || length $reply < $max_length) { - $n = sysread(SSLCAT_S, $got, 1); # one by one - warn "tcp_read_until: $!" if !defined $n; - debug_read(\$reply, \$got) if $trace>1; - last if !$n; # EOF - $reply .= $got; - last if $len_delim - && substr($reply, blength($reply)-$len_delim) eq $delim; - } - return $reply; -} - -# ssl_read_CRLF($ssl [, $max_length]) -sub ssl_read_CRLF ($;$) { ssl_read_until($_[0], $CRLF, $_[1]) } -sub tcp_read_CRLF { tcp_read_until($CRLF, $_[0]) } - -# ssl_write_CRLF($ssl, $message) writes $message and appends CRLF -sub ssl_write_CRLF ($$) { - # the next line uses less memory but might use more network packets - return ssl_write_all($_[0], $_[1]) + ssl_write_all($_[0], $CRLF); - - # the next few lines do the same thing at the expense of memory, with - # the chance that it will use less packets, since CRLF is in the original - # message and won't be sent separately. - - #my $data_ref; - #if (ref $_[1]) { $data_ref = $_[1] } - # else { $data_ref = \$_[1] } - #my $message = $$data_ref . $CRLF; - #return ssl_write_all($_[0], \$message); -} - -sub tcp_write_CRLF { - # the next line uses less memory but might use more network packets - return tcp_write_all($_[0]) + tcp_write_all($CRLF); - - # the next few lines do the same thing at the expense of memory, with - # the chance that it will use less packets, since CRLF is in the original - # message and won't be sent separately. - - #my $data_ref; - #if (ref $_[1]) { $data_ref = $_[1] } - # else { $data_ref = \$_[1] } - #my $message = $$data_ref . $CRLF; - #return tcp_write_all($_[0], \$message); -} - -### Quickly print out with whom we're talking - -sub dump_peer_certificate ($) { - my ($ssl) = @_; - my $cert = get_peer_certificate($ssl); - return if print_errs('get_peer_certificate'); - print "no cert defined\n" if !defined($cert); - # Cipher=NONE with empty cert fix - if (!defined($cert) || ($cert == 0)) { - warn "cert = `$cert'\n" if $trace; - return "Subject Name: undefined\nIssuer Name: undefined\n"; - } else { - my $x = 'Subject Name: ' - . X509_NAME_oneline(X509_get_subject_name($cert)) . "\n" - . 'Issuer Name: ' - . X509_NAME_oneline(X509_get_issuer_name($cert)) . "\n"; - Net::SSLeay::X509_free($cert); - return $x; - } -} - -### Arrange some randomness for eay PRNG - -sub randomize (;$$$) { - my ($rn_seed_file, $seed, $egd_path) = @_; - my $rnsf = defined($rn_seed_file) && -r $rn_seed_file; - - $egd_path = ''; - $egd_path = $ENV{'EGD_PATH'} if $ENV{'EGD_PATH'}; - - RAND_seed(rand() + $$); # Stir it with time and pid - - unless ($rnsf || -r $Net::SSLeay::random_device || $seed || -S $egd_path) { - my $poll_retval = Net::SSLeay::RAND_poll(); - warn "Random number generator not seeded!!!" if $trace && !$poll_retval; - } - - RAND_load_file($rn_seed_file, -s _) if $rnsf; - RAND_seed($seed) if $seed; - RAND_seed($ENV{RND_SEED}) if $ENV{RND_SEED}; - RAND_load_file($Net::SSLeay::random_device, $Net::SSLeay::how_random/8) - if -r $Net::SSLeay::random_device; -} - -sub new_x_ctx { - if ($ssl_version == 2) { - unless (exists &Net::SSLeay::CTX_v2_new) { - warn "ssl_version has been set to 2, but this version of OpenSSL has been compiled without SSLv2 support"; - return undef; - } - $ctx = CTX_v2_new(); - } - elsif ($ssl_version == 3) { $ctx = CTX_v3_new(); } - elsif ($ssl_version == 10) { $ctx = CTX_tlsv1_new(); } - elsif ($ssl_version == 11) { - unless (exists &Net::SSLeay::CTX_tlsv1_1_new) { - warn "ssl_version has been set to 11, but this version of OpenSSL has been compiled without TLSv1.1 support"; - return undef; - } - $ctx = CTX_tlsv1_1_new; - } - elsif ($ssl_version == 12) { - unless (exists &Net::SSLeay::CTX_tlsv1_2_new) { - warn "ssl_version has been set to 12, but this version of OpenSSL has been compiled without TLSv1.2 support"; - return undef; - } - $ctx = CTX_tlsv1_2_new; - } - else { $ctx = CTX_new(); } - return $ctx; -} - -### -### Standard initialisation. Initialise the ssl library in the usual way -### at most once. Override this if you need differnet initialisation -### SSLeay_add_ssl_algorithms is also protected against multiple runs in SSLeay.xs -### and is also mutex protected in threading perls -### - -my $library_initialised; -sub initialize -{ - if (!$library_initialised) - { - load_error_strings(); # Some bloat, but I'm after ease of use - SSLeay_add_ssl_algorithms(); # and debuggability. - randomize(); - $library_initialised++; - } -} - -### -### Basic request - response primitive (don't use for https) -### - -sub sslcat { # address, port, message, $crt, $key --> reply / (reply,errs,cert) - my ($dest_serv, $port, $out_message, $crt_path, $key_path) = @_; - my ($ctx, $ssl, $got, $errs, $written); - - ($got, $errs) = open_proxy_tcp_connection($dest_serv, $port); - return (wantarray ? (undef, $errs) : undef) unless $got; - - ### Do SSL negotiation stuff - - warn "Creating SSL $ssl_version context...\n" if $trace>2; - initialize(); # Will init at most once - - $ctx = new_x_ctx(); - goto cleanup2 if $errs = print_errs('CTX_new') or !$ctx; - - CTX_set_options($ctx, &OP_ALL); - goto cleanup2 if $errs = print_errs('CTX_set_options'); - - warn "Cert `$crt_path' given without key" if $crt_path && !$key_path; - set_cert_and_key($ctx, $crt_path, $key_path) if $crt_path; - - warn "Creating SSL connection (context was '$ctx')...\n" if $trace>2; - $ssl = new($ctx); - goto cleanup if $errs = print_errs('SSL_new') or !$ssl; - - warn "Setting fd (ctx $ctx, con $ssl)...\n" if $trace>2; - set_fd($ssl, fileno(SSLCAT_S)); - goto cleanup if $errs = print_errs('set_fd'); - - warn "Entering SSL negotiation phase...\n" if $trace>2; - - if ($trace>2) { - my $i = 0; - my $p = ''; - my $cipher_list = 'Cipher list: '; - $p=Net::SSLeay::get_cipher_list($ssl,$i); - $cipher_list .= $p if $p; - do { - $i++; - $cipher_list .= ', ' . $p if $p; - $p=Net::SSLeay::get_cipher_list($ssl,$i); - } while $p; - $cipher_list .= '\n'; - warn $cipher_list; - } - - $got = Net::SSLeay::connect($ssl); - warn "SSLeay connect returned $got\n" if $trace>2; - goto cleanup if $errs = print_errs('SSL_connect'); - - my $server_cert = get_peer_certificate($ssl); - print_errs('get_peer_certificate'); - if ($trace>1) { - warn "Cipher `" . get_cipher($ssl) . "'\n"; - print_errs('get_ciper'); - warn dump_peer_certificate($ssl); - } - - ### Connected. Exchange some data (doing repeated tries if necessary). - - warn "sslcat $$: sending " . blength($out_message) . " bytes...\n" - if $trace==3; - warn "sslcat $$: sending `$out_message' (" . blength($out_message) - . " bytes)...\n" if $trace>3; - ($written, $errs) = ssl_write_all($ssl, $out_message); - goto cleanup unless $written; - - sleep $slowly if $slowly; # Closing too soon can abort broken servers - CORE::shutdown SSLCAT_S, 1; # Half close --> No more output, send EOF to server - - warn "waiting for reply...\n" if $trace>2; - ($got, $errs) = ssl_read_all($ssl); - warn "Got " . blength($got) . " bytes.\n" if $trace==3; - warn "Got `$got' (" . blength($got) . " bytes)\n" if $trace>3; - -cleanup: - free ($ssl); - $errs .= print_errs('SSL_free'); -cleanup2: - CTX_free ($ctx); - $errs .= print_errs('CTX_free'); - close SSLCAT_S; - return wantarray ? ($got, $errs, $server_cert) : $got; -} - -sub tcpcat { # address, port, message, $crt, $key --> reply / (reply,errs,cert) - my ($dest_serv, $port, $out_message) = @_; - my ($got, $errs, $written); - - ($got, $errs) = open_proxy_tcp_connection($dest_serv, $port); - return (wantarray ? (undef, $errs) : undef) unless $got; - - ### Connected. Exchange some data (doing repeated tries if necessary). - - warn "tcpcat $$: sending " . blength($out_message) . " bytes...\n" - if $trace==3; - warn "tcpcat $$: sending `$out_message' (" . blength($out_message) - . " bytes)...\n" if $trace>3; - ($written, $errs) = tcp_write_all($out_message); - goto cleanup unless $written; - - sleep $slowly if $slowly; # Closing too soon can abort broken servers - CORE::shutdown SSLCAT_S, 1; # Half close --> No more output, send EOF to server - - warn "waiting for reply...\n" if $trace>2; - ($got, $errs) = tcp_read_all(); - warn "Got " . blength($got) . " bytes.\n" if $trace==3; - warn "Got `$got' (" . blength($got) . " bytes)\n" if $trace>3; - -cleanup: - close SSLCAT_S; - return wantarray ? ($got, $errs) : $got; -} - -sub tcpxcat { - my ($usessl, $site, $port, $req, $crt_path, $key_path) = @_; - if ($usessl) { - return sslcat($site, $port, $req, $crt_path, $key_path); - } else { - return tcpcat($site, $port, $req); - } -} - -### -### Basic request - response primitive, this is different from sslcat -### because this does not shutdown the connection. -### - -sub https_cat { # address, port, message --> returns reply / (reply,errs,cert) - my ($dest_serv, $port, $out_message, $crt_path, $key_path) = @_; - my ($ctx, $ssl, $got, $errs, $written); - - ($got, $errs) = open_proxy_tcp_connection($dest_serv, $port); - return (wantarray ? (undef, $errs) : undef) unless $got; - - ### Do SSL negotiation stuff - - warn "Creating SSL $ssl_version context...\n" if $trace>2; - initialize(); - - $ctx = new_x_ctx(); - goto cleanup2 if $errs = print_errs('CTX_new') or !$ctx; - - CTX_set_options($ctx, &OP_ALL); - goto cleanup2 if $errs = print_errs('CTX_set_options'); - - warn "Cert `$crt_path' given without key" if $crt_path && !$key_path; - set_cert_and_key($ctx, $crt_path, $key_path) if $crt_path; - - warn "Creating SSL connection (context was '$ctx')...\n" if $trace>2; - $ssl = new($ctx); - goto cleanup if $errs = print_errs('SSL_new') or !$ssl; - - warn "Setting fd (ctx $ctx, con $ssl)...\n" if $trace>2; - set_fd($ssl, fileno(SSLCAT_S)); - goto cleanup if $errs = print_errs('set_fd'); - - warn "Entering SSL negotiation phase...\n" if $trace>2; - - if ($trace>2) { - my $i = 0; - my $p = ''; - my $cipher_list = 'Cipher list: '; - $p=Net::SSLeay::get_cipher_list($ssl,$i); - $cipher_list .= $p if $p; - do { - $i++; - $cipher_list .= ', ' . $p if $p; - $p=Net::SSLeay::get_cipher_list($ssl,$i); - } while $p; - $cipher_list .= '\n'; - warn $cipher_list; - } - - $got = Net::SSLeay::connect($ssl); - warn "SSLeay connect failed" if $trace>2 && $got==0; - goto cleanup if $errs = print_errs('SSL_connect'); - - my $server_cert = get_peer_certificate($ssl); - print_errs('get_peer_certificate'); - if ($trace>1) { - warn "Cipher `" . get_cipher($ssl) . "'\n"; - print_errs('get_ciper'); - warn dump_peer_certificate($ssl); - } - - ### Connected. Exchange some data (doing repeated tries if necessary). - - warn "https_cat $$: sending " . blength($out_message) . " bytes...\n" - if $trace==3; - warn "https_cat $$: sending `$out_message' (" . blength($out_message) - . " bytes)...\n" if $trace>3; - ($written, $errs) = ssl_write_all($ssl, $out_message); - goto cleanup unless $written; - - warn "waiting for reply...\n" if $trace>2; - ($got, $errs) = ssl_read_all($ssl); - warn "Got " . blength($got) . " bytes.\n" if $trace==3; - warn "Got `$got' (" . blength($got) . " bytes)\n" if $trace>3; - -cleanup: - free ($ssl); - $errs .= print_errs('SSL_free'); -cleanup2: - CTX_free ($ctx); - $errs .= print_errs('CTX_free'); - close SSLCAT_S; - return wantarray ? ($got, $errs, $server_cert) : $got; -} - -sub http_cat { # address, port, message --> returns reply / (reply,errs,cert) - my ($dest_serv, $port, $out_message) = @_; - my ($got, $errs, $written); - - ($got, $errs) = open_proxy_tcp_connection($dest_serv, $port); - return (wantarray ? (undef, $errs) : undef) unless $got; - - ### Connected. Exchange some data (doing repeated tries if necessary). - - warn "http_cat $$: sending " . blength($out_message) . " bytes...\n" - if $trace==3; - warn "http_cat $$: sending `$out_message' (" . blength($out_message) - . " bytes)...\n" if $trace>3; - ($written, $errs) = tcp_write_all($out_message); - goto cleanup unless $written; - - warn "waiting for reply...\n" if $trace>2; - ($got, $errs) = tcp_read_all(); - warn "Got " . blength($got) . " bytes.\n" if $trace==3; - warn "Got `$got' (" . blength($got) . " bytes)\n" if $trace>3; - -cleanup: - close SSLCAT_S; - return wantarray ? ($got, $errs) : $got; -} - -sub httpx_cat { - my ($usessl, $site, $port, $req, $crt_path, $key_path) = @_; - warn "httpx_cat: usessl=$usessl ($site:$port)" if $trace; - if ($usessl) { - return https_cat($site, $port, $req, $crt_path, $key_path); - } else { - return http_cat($site, $port, $req); - } -} - -### -### Easy set up of private key and certificate -### - -sub set_cert_and_key ($$$) { - my ($ctx, $cert_path, $key_path) = @_; - my $errs = ''; - # Following will ask password unless private key is not encrypted - CTX_use_PrivateKey_file ($ctx, $key_path, &FILETYPE_PEM); - $errs .= print_errs("private key `$key_path' ($!)"); - CTX_use_certificate_file ($ctx, $cert_path, &FILETYPE_PEM); - $errs .= print_errs("certificate `$cert_path' ($!)"); - return wantarray ? (undef, $errs) : ($errs eq ''); -} - -### Old deprecated API - -sub set_server_cert_and_key ($$$) { &set_cert_and_key } - -### Set up to use web proxy - -sub set_proxy ($$;**) { - ($proxyhost, $proxyport, $proxyuser, $proxypass) = @_; - require MIME::Base64 if $proxyuser; - $proxyauth = $proxyuser - ? $CRLF . 'Proxy-authorization: Basic ' - . MIME::Base64::encode("$proxyuser:$proxypass", '') - : ''; -} - -### -### Easy https manipulation routines -### - -sub make_form { - my (@fields) = @_; - my $form; - while (@fields) { - my ($name, $data) = (shift(@fields), shift(@fields)); - $data =~ s/([^\w\-.\@\$ ])/sprintf("%%%2.2x",ord($1))/gse; - $data =~ tr[ ][+]; - $form .= "$name=$data&"; - } - chop $form; - return $form; -} - -sub make_headers { - my (@headers) = @_; - my $headers; - while (@headers) { - my $header = shift(@headers); - my $value = shift(@headers); - $header =~ s/:$//; - $value =~ s/\x0d?\x0a$//; # because we add it soon, see below - $headers .= "$header: $value$CRLF"; - } - return $headers; -} - -sub do_httpx3 { - my ($method, $usessl, $site, $port, $path, $headers, - $content, $mime_type, $crt_path, $key_path) = @_; - my ($response, $page, $h,$v); - - my $len = blength($content); - if ($len) { - $mime_type = "application/x-www-form-urlencoded" unless $mime_type; - $content = "Content-Type: $mime_type$CRLF" - . "Content-Length: $len$CRLF$CRLF$content"; - } else { - $content = "$CRLF$CRLF"; - } - my $req = "$method $path HTTP/1.0$CRLF"; - unless (defined $headers && $headers =~ /^Host:/m) { - $req .= "Host: $site"; - unless (($port == 80 && !$usessl) || ($port == 443 && $usessl)) { - $req .= ":$port"; - } - $req .= $CRLF; - } - $req .= (defined $headers ? $headers : '') . "Accept: */*$CRLF$content"; - - warn "do_httpx3($method,$usessl,$site:$port)" if $trace; - my ($http, $errs, $server_cert) - = httpx_cat($usessl, $site, $port, $req, $crt_path, $key_path); - return (undef, "HTTP/1.0 900 NET OR SSL ERROR$CRLF$CRLF$errs") if $errs; - - $http = '' if !defined $http; - ($headers, $page) = split /\s?\n\s?\n/, $http, 2; - warn "headers >$headers< page >>$page<< http >>>$http<<<" if $trace>1; - ($response, $headers) = split /\s?\n/, $headers, 2; - return ($page, $response, $headers, $server_cert); -} - -sub do_https3 { splice(@_,1,0) = 1; do_httpx3; } # Legacy undocumented - -### do_https2() is a legacy version in the sense that it is unable -### to return all instances of duplicate headers. - -sub do_httpx2 { - my ($page, $response, $headers, $server_cert) = &do_httpx3; - X509_free($server_cert) if defined $server_cert; - return ($page, $response, defined $headers ? - map( { ($h,$v)=/^(\S+)\:\s*(.*)$/; (uc($h),$v); } - split(/\s?\n/, $headers) - ) : () - ); -} - -sub do_https2 { splice(@_,1,0) = 1; do_httpx2; } # Legacy undocumented - -### Returns headers as a hash where multiple instances of same header -### are handled correctly. - -sub do_httpx4 { - my ($page, $response, $headers, $server_cert) = &do_httpx3; - my %hr = (); - for my $hh (split /\s?\n/, $headers) { - my ($h,$v) = ($hh =~ /^(\S+)\:\s*(.*)$/); - push @{$hr{uc($h)}}, $v; - } - return ($page, $response, \%hr, $server_cert); -} - -sub do_https4 { splice(@_,1,0) = 1; do_httpx4; } # Legacy undocumented - -# https - -sub get_https { do_httpx2(GET => 1, @_) } -sub post_https { do_httpx2(POST => 1, @_) } -sub put_https { do_httpx2(PUT => 1, @_) } -sub head_https { do_httpx2(HEAD => 1, @_) } - -sub get_https3 { do_httpx3(GET => 1, @_) } -sub post_https3 { do_httpx3(POST => 1, @_) } -sub put_https3 { do_httpx3(PUT => 1, @_) } -sub head_https3 { do_httpx3(HEAD => 1, @_) } - -sub get_https4 { do_httpx4(GET => 1, @_) } -sub post_https4 { do_httpx4(POST => 1, @_) } -sub put_https4 { do_httpx4(PUT => 1, @_) } -sub head_https4 { do_httpx4(HEAD => 1, @_) } - -# http - -sub get_http { do_httpx2(GET => 0, @_) } -sub post_http { do_httpx2(POST => 0, @_) } -sub put_http { do_httpx2(PUT => 0, @_) } -sub head_http { do_httpx2(HEAD => 0, @_) } - -sub get_http3 { do_httpx3(GET => 0, @_) } -sub post_http3 { do_httpx3(POST => 0, @_) } -sub put_http3 { do_httpx3(PUT => 0, @_) } -sub head_http3 { do_httpx3(HEAD => 0, @_) } - -sub get_http4 { do_httpx4(GET => 0, @_) } -sub post_http4 { do_httpx4(POST => 0, @_) } -sub put_http4 { do_httpx4(PUT => 0, @_) } -sub head_http4 { do_httpx4(HEAD => 0, @_) } - -# Either https or http - -sub get_httpx { do_httpx2(GET => @_) } -sub post_httpx { do_httpx2(POST => @_) } -sub put_httpx { do_httpx2(PUT => @_) } -sub head_httpx { do_httpx2(HEAD => @_) } - -sub get_httpx3 { do_httpx3(GET => @_) } -sub post_httpx3 { do_httpx3(POST => @_) } -sub put_httpx3 { do_httpx3(PUT => @_) } -sub head_httpx3 { do_httpx3(HEAD => @_) } - -sub get_httpx4 { do_httpx4(GET => @_) } -sub post_httpx4 { do_httpx4(POST => @_) } -sub put_httpx4 { do_httpx4(PUT => @_) } -sub head_httpx4 { do_httpx4(HEAD => @_) } - -### Legacy, don't use -# ($page, $respone_or_err, %headers) = do_https(...); - -sub do_https { - my ($site, $port, $path, $method, $headers, - $content, $mime_type, $crt_path, $key_path) = @_; - - do_https2($method, $site, $port, $path, $headers, - $content, $mime_type, $crt_path, $key_path); -} - -1; -__END__ - diff --git a/software/Slic3r-1.3.0.64bit/lib/POSIX.pm b/software/Slic3r-1.3.0.64bit/lib/POSIX.pm deleted file mode 100644 index a9710f0c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/POSIX.pm +++ /dev/null @@ -1,543 +0,0 @@ -#line 1 "POSIX.pm" -package POSIX; -use strict; -use warnings; - -our ($AUTOLOAD, %SIGRT); - -our $VERSION = '1.65'; - -require XSLoader; - -use Fcntl qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK F_SETFD - F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND - O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC - O_WRONLY SEEK_CUR SEEK_END SEEK_SET - S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISREG - S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID - S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR); - -my $loaded; - -sub import { - my $pkg = shift; - - load_imports() unless $loaded++; - - # Grandfather old foo_h form to new :foo_h form - s/^(?=\w+_h$)/:/ for my @list = @_; - - local $Exporter::ExportLevel = 1; - Exporter::import($pkg,@list); -} - -sub croak { require Carp; goto &Carp::croak } -sub usage { croak "Usage: POSIX::$_[0]" } - -XSLoader::load(); - -my %replacement = ( - atexit => 'END {}', - atof => undef, - atoi => undef, - atol => undef, - bsearch => \'not supplied', - calloc => undef, - clearerr => 'IO::Handle::clearerr', - div => '/, % and int', - execl => undef, - execle => undef, - execlp => undef, - execv => undef, - execve => undef, - execvp => undef, - fclose => 'IO::Handle::close', - fdopen => 'IO::Handle::new_from_fd', - feof => 'IO::Handle::eof', - ferror => 'IO::Handle::error', - fflush => 'IO::Handle::flush', - fgetc => 'IO::Handle::getc', - fgetpos => 'IO::Seekable::getpos', - fgets => 'IO::Handle::gets', - fileno => 'IO::Handle::fileno', - fopen => 'IO::File::open', - fprintf => 'printf', - fputc => 'print', - fputs => 'print', - fread => 'read', - free => undef, - freopen => 'open', - fscanf => '<> and regular expressions', - fseek => 'IO::Seekable::seek', - fsetpos => 'IO::Seekable::setpos', - fsync => 'IO::Handle::sync', - ftell => 'IO::Seekable::tell', - fwrite => 'print', - labs => 'abs', - ldiv => '/, % and int', - longjmp => 'die', - malloc => undef, - memchr => 'index()', - memcmp => 'eq', - memcpy => '=', - memmove => '=', - memset => 'x', - offsetof => undef, - putc => 'print', - putchar => 'print', - puts => 'print', - qsort => 'sort', - rand => \'non-portable, use Perl\'s rand instead', - realloc => undef, - scanf => '<> and regular expressions', - setbuf => 'IO::Handle::setbuf', - setjmp => 'eval {}', - setvbuf => 'IO::Handle::setvbuf', - siglongjmp => 'die', - sigsetjmp => 'eval {}', - srand => \'not supplied; refer to Perl\'s srand documentation', - sscanf => 'regular expressions', - strcat => '.=', - strchr => 'index()', - strcmp => 'eq', - strcpy => '=', - strcspn => 'regular expressions', - strlen => 'length', - strncat => '.=', - strncmp => 'eq', - strncpy => '=', - strpbrk => undef, - strrchr => 'rindex()', - strspn => undef, - strtok => undef, - tmpfile => 'IO::File::new_tmpfile', - ungetc => 'IO::Handle::ungetc', - vfprintf => undef, - vprintf => undef, - vsprintf => undef, -); - -my %reimpl = ( - assert => 'expr => croak "Assertion failed" if !$_[0]', - tolower => 'string => lc($_[0])', - toupper => 'string => uc($_[0])', - closedir => 'dirhandle => CORE::closedir($_[0])', - opendir => 'directory => my $dh; CORE::opendir($dh, $_[0]) ? $dh : undef', - readdir => 'dirhandle => CORE::readdir($_[0])', - rewinddir => 'dirhandle => CORE::rewinddir($_[0])', - errno => '$! + 0', - creat => 'filename, mode => &open($_[0], &O_WRONLY | &O_CREAT | &O_TRUNC, $_[1])', - fcntl => 'filehandle, cmd, arg => CORE::fcntl($_[0], $_[1], $_[2])', - getgrgid => 'gid => CORE::getgrgid($_[0])', - getgrnam => 'name => CORE::getgrnam($_[0])', - atan2 => 'x, y => CORE::atan2($_[0], $_[1])', - cos => 'x => CORE::cos($_[0])', - exp => 'x => CORE::exp($_[0])', - fabs => 'x => CORE::abs($_[0])', - log => 'x => CORE::log($_[0])', - pow => 'x, exponent => $_[0] ** $_[1]', - sin => 'x => CORE::sin($_[0])', - sqrt => 'x => CORE::sqrt($_[0])', - getpwnam => 'name => CORE::getpwnam($_[0])', - getpwuid => 'uid => CORE::getpwuid($_[0])', - kill => 'pid, sig => CORE::kill $_[1], $_[0]', - raise => 'sig => CORE::kill $_[0], $$; # Is this good enough', - getc => 'handle => CORE::getc($_[0])', - getchar => 'CORE::getc(STDIN)', - gets => 'scalar ', - remove => 'filename => (-d $_[0]) ? CORE::rmdir($_[0]) : CORE::unlink($_[0])', - rename => 'oldfilename, newfilename => CORE::rename($_[0], $_[1])', - rewind => 'filehandle => CORE::seek($_[0],0,0)', - abs => 'x => CORE::abs($_[0])', - exit => 'status => CORE::exit($_[0])', - getenv => 'name => $ENV{$_[0]}', - system => 'command => CORE::system($_[0])', - strerror => 'errno => BEGIN { local $!; require locale; locale->import} my $e = $_[0] + 0; local $!; $! = $e; "$!"', - strstr => 'big, little => CORE::index($_[0], $_[1])', - chmod => 'mode, filename => CORE::chmod($_[0], $_[1])', - fstat => 'fd => CORE::open my $dup, "<&", $_[0]; CORE::stat($dup)', # Gross. - mkdir => 'directoryname, mode => CORE::mkdir($_[0], $_[1])', - stat => 'filename => CORE::stat($_[0])', - umask => 'mask => CORE::umask($_[0])', - wait => 'CORE::wait()', - waitpid => 'pid, options => CORE::waitpid($_[0], $_[1])', - gmtime => 'time => CORE::gmtime($_[0])', - localtime => 'time => CORE::localtime($_[0])', - time => 'CORE::time', - alarm => 'seconds => CORE::alarm($_[0])', - chdir => 'directory => CORE::chdir($_[0])', - chown => 'uid, gid, filename => CORE::chown($_[0], $_[1], $_[2])', - fork => 'CORE::fork', - getegid => '$) + 0', - geteuid => '$> + 0', - getgid => '$( + 0', - getgroups => 'my %seen; grep !$seen{$_}++, split " ", $)', - getlogin => 'CORE::getlogin()', - getpgrp => 'CORE::getpgrp', - getpid => '$$', - getppid => 'CORE::getppid', - getuid => '$<', - isatty => 'filehandle => -t $_[0]', - link => 'oldfilename, newfilename => CORE::link($_[0], $_[1])', - rmdir => 'directoryname => CORE::rmdir($_[0])', - unlink => 'filename => CORE::unlink($_[0])', - utime => 'filename, atime, mtime => CORE::utime($_[1], $_[2], $_[0])', -); - -eval join ';', map "sub $_", keys %replacement, keys %reimpl; - -sub AUTOLOAD { - my ($func) = ($AUTOLOAD =~ /.*::(.*)/); - - die "POSIX.xs has failed to load\n" if $func eq 'constant'; - - if (my $code = $reimpl{$func}) { - my ($num, $arg) = (0, ''); - if ($code =~ s/^(.*?) *=> *//) { - $arg = $1; - $num = 1 + $arg =~ tr/,//; - } - # no warnings to be consistent with the old implementation, where each - # function was in its own little AutoSplit world: - eval qq{ sub $func { - no warnings; - usage "$func($arg)" if \@_ != $num; - $code - } }; - no strict; - goto &$AUTOLOAD; - } - if (exists $replacement{$func}) { - my $how = $replacement{$func}; - croak "Unimplemented: POSIX::$func() is C-specific, stopped" - unless defined $how; - croak "Unimplemented: POSIX::$func() is $$how" if ref $how; - croak "Use method $how() instead of POSIX::$func()" if $how =~ /::/; - croak "Unimplemented: POSIX::$func() is C-specific: use $how instead"; - } - - constant($func); -} - -sub perror { - print STDERR "@_: " if @_; - print STDERR $!,"\n"; -} - -sub printf { - usage "printf(pattern, args...)" if @_ < 1; - CORE::printf STDOUT @_; -} - -sub sprintf { - usage "sprintf(pattern, args...)" if @_ == 0; - CORE::sprintf(shift,@_); -} - -sub load_imports { -my %default_export_tags = ( # cf. exports policy below - - assert_h => [qw(assert NDEBUG)], - - ctype_h => [qw(isalnum isalpha iscntrl isdigit isgraph islower - isprint ispunct isspace isupper isxdigit tolower toupper)], - - dirent_h => [], - - errno_h => [qw(E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN - EALREADY EBADF EBADMSG EBUSY ECANCELED ECHILD ECONNABORTED - ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDOM EDQUOT EEXIST - EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EIDRM EILSEQ EINPROGRESS - EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE - ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS - ENODATA ENODEV ENOENT ENOEXEC ENOLCK ENOLINK ENOMEM ENOMSG - ENOPROTOOPT ENOSPC ENOSR ENOSTR ENOSYS ENOTBLK ENOTCONN ENOTDIR - ENOTEMPTY ENOTRECOVERABLE ENOTSOCK ENOTSUP ENOTTY ENXIO - EOPNOTSUPP EOTHER EOVERFLOW EOWNERDEAD EPERM EPFNOSUPPORT EPIPE - EPROCLIM EPROTO EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE - ERESTART EROFS ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE - ETIME ETIMEDOUT ETOOMANYREFS ETXTBSY EUSERS EWOULDBLOCK EXDEV - errno)], - - fcntl_h => [qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK - F_SETFD F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK - O_ACCMODE O_APPEND O_CREAT O_EXCL O_NOCTTY O_NONBLOCK - O_RDONLY O_RDWR O_TRUNC O_WRONLY - creat - SEEK_CUR SEEK_END SEEK_SET - S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU - S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG S_ISUID - S_IWGRP S_IWOTH S_IWUSR)], - - float_h => [qw(DBL_DIG DBL_EPSILON DBL_MANT_DIG - DBL_MAX DBL_MAX_10_EXP DBL_MAX_EXP - DBL_MIN DBL_MIN_10_EXP DBL_MIN_EXP - FLT_DIG FLT_EPSILON FLT_MANT_DIG - FLT_MAX FLT_MAX_10_EXP FLT_MAX_EXP - FLT_MIN FLT_MIN_10_EXP FLT_MIN_EXP - FLT_RADIX FLT_ROUNDS - LDBL_DIG LDBL_EPSILON LDBL_MANT_DIG - LDBL_MAX LDBL_MAX_10_EXP LDBL_MAX_EXP - LDBL_MIN LDBL_MIN_10_EXP LDBL_MIN_EXP)], - - grp_h => [], - - limits_h => [qw( ARG_MAX CHAR_BIT CHAR_MAX CHAR_MIN CHILD_MAX - INT_MAX INT_MIN LINK_MAX LONG_MAX LONG_MIN MAX_CANON - MAX_INPUT MB_LEN_MAX NAME_MAX NGROUPS_MAX OPEN_MAX - PATH_MAX PIPE_BUF SCHAR_MAX SCHAR_MIN SHRT_MAX SHRT_MIN - SSIZE_MAX STREAM_MAX TZNAME_MAX UCHAR_MAX UINT_MAX - ULONG_MAX USHRT_MAX _POSIX_ARG_MAX _POSIX_CHILD_MAX - _POSIX_LINK_MAX _POSIX_MAX_CANON _POSIX_MAX_INPUT - _POSIX_NAME_MAX _POSIX_NGROUPS_MAX _POSIX_OPEN_MAX - _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SSIZE_MAX - _POSIX_STREAM_MAX _POSIX_TZNAME_MAX)], - - locale_h => [qw(LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES - LC_MONETARY LC_NUMERIC LC_TIME NULL - localeconv setlocale)], - - math_h => [qw(FP_ILOGB0 FP_ILOGBNAN FP_INFINITE FP_NAN FP_NORMAL - FP_SUBNORMAL FP_ZERO - M_1_PI M_2_PI M_2_SQRTPI M_E M_LN10 M_LN2 M_LOG10E M_LOG2E - M_PI M_PI_2 M_PI_4 M_SQRT1_2 M_SQRT2 - HUGE_VAL INFINITY NAN - acos asin atan ceil cosh fabs floor fmod - frexp ldexp log10 modf pow sinh tan tanh)], - - pwd_h => [], - - setjmp_h => [qw(longjmp setjmp siglongjmp sigsetjmp)], - - signal_h => [qw(SA_NOCLDSTOP SA_NOCLDWAIT SA_NODEFER SA_ONSTACK - SA_RESETHAND SA_RESTART SA_SIGINFO SIGABRT SIGALRM - SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL - SIGPIPE %SIGRT SIGRTMIN SIGRTMAX SIGQUIT SIGSEGV SIGSTOP - SIGTERM SIGTSTP SIGTTIN SIGTTOU SIGUSR1 SIGUSR2 SIGBUS - SIGPOLL SIGPROF SIGSYS SIGTRAP SIGURG SIGVTALRM SIGXCPU SIGXFSZ - SIG_BLOCK SIG_DFL SIG_ERR SIG_IGN SIG_SETMASK SIG_UNBLOCK - raise sigaction signal sigpending sigprocmask sigsuspend)], - - stdarg_h => [], - - stddef_h => [qw(NULL offsetof)], - - stdio_h => [qw(BUFSIZ EOF FILENAME_MAX L_ctermid L_cuserid - L_tmpname NULL SEEK_CUR SEEK_END SEEK_SET - STREAM_MAX TMP_MAX stderr stdin stdout - clearerr fclose fdopen feof ferror fflush fgetc fgetpos - fgets fopen fprintf fputc fputs fread freopen - fscanf fseek fsetpos ftell fwrite getchar gets - perror putc putchar puts remove rewind - scanf setbuf setvbuf sscanf tmpfile tmpnam - ungetc vfprintf vprintf vsprintf)], - - stdlib_h => [qw(EXIT_FAILURE EXIT_SUCCESS MB_CUR_MAX NULL RAND_MAX - abort atexit atof atoi atol bsearch calloc div - free getenv labs ldiv malloc mblen mbstowcs mbtowc - qsort realloc strtod strtol strtoul wcstombs wctomb)], - - string_h => [qw(NULL memchr memcmp memcpy memmove memset strcat - strchr strcmp strcoll strcpy strcspn strerror strlen - strncat strncmp strncpy strpbrk strrchr strspn strstr - strtok strxfrm)], - - sys_stat_h => [qw(S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU - S_ISBLK S_ISCHR S_ISDIR S_ISFIFO S_ISGID S_ISREG - S_ISUID S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR - fstat mkfifo)], - - sys_times_h => [], - - sys_types_h => [], - - sys_utsname_h => [qw(uname)], - - sys_wait_h => [qw(WEXITSTATUS WIFEXITED WIFSIGNALED WIFSTOPPED - WNOHANG WSTOPSIG WTERMSIG WUNTRACED)], - - termios_h => [qw( B0 B110 B1200 B134 B150 B1800 B19200 B200 B2400 - B300 B38400 B4800 B50 B600 B75 B9600 BRKINT CLOCAL - CREAD CS5 CS6 CS7 CS8 CSIZE CSTOPB ECHO ECHOE ECHOK - ECHONL HUPCL ICANON ICRNL IEXTEN IGNBRK IGNCR IGNPAR - INLCR INPCK ISIG ISTRIP IXOFF IXON NCCS NOFLSH OPOST - PARENB PARMRK PARODD TCIFLUSH TCIOFF TCIOFLUSH TCION - TCOFLUSH TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW - TOSTOP VEOF VEOL VERASE VINTR VKILL VMIN VQUIT VSTART - VSTOP VSUSP VTIME - cfgetispeed cfgetospeed cfsetispeed cfsetospeed tcdrain - tcflow tcflush tcgetattr tcsendbreak tcsetattr )], - - time_h => [qw(CLK_TCK CLOCKS_PER_SEC NULL asctime clock ctime - difftime mktime strftime tzset tzname)], - - unistd_h => [qw(F_OK NULL R_OK SEEK_CUR SEEK_END SEEK_SET - STDERR_FILENO STDIN_FILENO STDOUT_FILENO W_OK X_OK - _PC_CHOWN_RESTRICTED _PC_LINK_MAX _PC_MAX_CANON - _PC_MAX_INPUT _PC_NAME_MAX _PC_NO_TRUNC _PC_PATH_MAX - _PC_PIPE_BUF _PC_VDISABLE _POSIX_CHOWN_RESTRICTED - _POSIX_JOB_CONTROL _POSIX_NO_TRUNC _POSIX_SAVED_IDS - _POSIX_VDISABLE _POSIX_VERSION _SC_ARG_MAX - _SC_CHILD_MAX _SC_CLK_TCK _SC_JOB_CONTROL - _SC_NGROUPS_MAX _SC_OPEN_MAX _SC_PAGESIZE _SC_SAVED_IDS - _SC_STREAM_MAX _SC_TZNAME_MAX _SC_VERSION - _exit access ctermid cuserid - dup2 dup execl execle execlp execv execve execvp - fpathconf fsync getcwd getegid geteuid getgid getgroups - getpid getuid isatty lseek pathconf pause setgid setpgid - setsid setuid sysconf tcgetpgrp tcsetpgrp ttyname)], - - utime_h => [], -); - -if ($^O eq 'MSWin32') { - $default_export_tags{winsock_h} = [qw( - WSAEINTR WSAEBADF WSAEACCES WSAEFAULT WSAEINVAL WSAEMFILE WSAEWOULDBLOCK - WSAEINPROGRESS WSAEALREADY WSAENOTSOCK WSAEDESTADDRREQ WSAEMSGSIZE - WSAEPROTOTYPE WSAENOPROTOOPT WSAEPROTONOSUPPORT WSAESOCKTNOSUPPORT - WSAEOPNOTSUPP WSAEPFNOSUPPORT WSAEAFNOSUPPORT WSAEADDRINUSE - WSAEADDRNOTAVAIL WSAENETDOWN WSAENETUNREACH WSAENETRESET WSAECONNABORTED - WSAECONNRESET WSAENOBUFS WSAEISCONN WSAENOTCONN WSAESHUTDOWN - WSAETOOMANYREFS WSAETIMEDOUT WSAECONNREFUSED WSAELOOP WSAENAMETOOLONG - WSAEHOSTDOWN WSAEHOSTUNREACH WSAENOTEMPTY WSAEPROCLIM WSAEUSERS - WSAEDQUOT WSAESTALE WSAEREMOTE WSAEDISCON WSAENOMORE WSAECANCELLED - WSAEINVALIDPROCTABLE WSAEINVALIDPROVIDER WSAEPROVIDERFAILEDINIT - WSAEREFUSED)]; -} - -my %other_export_tags = ( # cf. exports policy below - fenv_h => [qw( - FE_DOWNWARD FE_TONEAREST FE_TOWARDZERO FE_UPWARD fegetround fesetround - )], - - math_h_c99 => [ @{$default_export_tags{math_h}}, qw( - Inf NaN acosh asinh atanh cbrt copysign erf erfc exp2 expm1 fdim fma - fmax fmin fpclassify hypot ilogb isfinite isgreater isgreaterequal - isinf isless islessequal islessgreater isnan isnormal isunordered j0 j1 - jn lgamma log1p log2 logb lrint nan nearbyint nextafter nexttoward - remainder remquo rint round scalbn signbit tgamma trunc y0 y1 yn - )], - - stdlib_h_c99 => [ @{$default_export_tags{stdlib_h}}, 'strtold' ], - - nan_payload => [ qw(getpayload setpayload setpayloadsig issignaling) ], - - signal_h_si_code => [qw( - ILL_ILLOPC ILL_ILLOPN ILL_ILLADR ILL_ILLTRP ILL_PRVOPC ILL_PRVREG - ILL_COPROC ILL_BADSTK - FPE_INTDIV FPE_INTOVF FPE_FLTDIV FPE_FLTOVF FPE_FLTUND - FPE_FLTRES FPE_FLTINV FPE_FLTSUB - SEGV_MAPERR SEGV_ACCERR - BUS_ADRALN BUS_ADRERR BUS_OBJERR - TRAP_BRKPT TRAP_TRACE - CLD_EXITED CLD_KILLED CLD_DUMPED CLD_TRAPPED CLD_STOPPED CLD_CONTINUED - POLL_IN POLL_OUT POLL_MSG POLL_ERR POLL_PRI POLL_HUP - SI_USER SI_QUEUE SI_TIMER SI_ASYNCIO SI_MESGQ - )], -); - -# exports policy: -# - new functions may not be added to @EXPORT, only to @EXPORT_OK -# - new SHOUTYCONSTANTS are OK to add to @EXPORT - -{ - # De-duplicate the export list: - my ( %export, %export_ok ); - @export {map {@$_} values %default_export_tags} = (); - @export_ok{map {@$_} values %other_export_tags} = (); - # Doing the de-dup with a temporary hash has the advantage that the SVs in - # @EXPORT are actually shared hash key scalars, which will save some memory. - our @EXPORT = keys %export; - - # you do not want to add symbols to the following list. add a new tag instead - our @EXPORT_OK = (qw(close lchown nice open pipe read sleep times write - printf sprintf lround), - # lround() should really be in the :math_h_c99 tag, but - # we're too far into the 5.24 code freeze for that to be - # done now. This can be revisited in the 5.25.x cycle. - grep {!exists $export{$_}} keys %reimpl, keys %replacement, keys %export_ok); - - our %EXPORT_TAGS = ( %default_export_tags, %other_export_tags ); -} - -require Exporter; -} - -package POSIX::SigAction; - -sub new { bless {HANDLER => $_[1], MASK => $_[2], FLAGS => $_[3] || 0, SAFE => 0}, $_[0] } -sub handler { $_[0]->{HANDLER} = $_[1] if @_ > 1; $_[0]->{HANDLER} }; -sub mask { $_[0]->{MASK} = $_[1] if @_ > 1; $_[0]->{MASK} }; -sub flags { $_[0]->{FLAGS} = $_[1] if @_ > 1; $_[0]->{FLAGS} }; -sub safe { $_[0]->{SAFE} = $_[1] if @_ > 1; $_[0]->{SAFE} }; - -{ -package POSIX::SigSet; -# This package is here entirely to make sure that POSIX::SigSet is seen by the -# PAUSE indexer, so that it will always be clearly indexed in core. This is to -# prevent the accidental case where a third-party distribution can accidentally -# claim the POSIX::SigSet package, as occurred in 2011-12. -- rjbs, 2011-12-30 -} - -package POSIX::SigRt; - -require Tie::Hash; - -our @ISA = 'Tie::StdHash'; - -our ($_SIGRTMIN, $_SIGRTMAX, $_sigrtn); - -our $SIGACTION_FLAGS = 0; - -sub _init { - $_SIGRTMIN = &POSIX::SIGRTMIN; - $_SIGRTMAX = &POSIX::SIGRTMAX; - $_sigrtn = $_SIGRTMAX - $_SIGRTMIN; -} - -sub _croak { - &_init unless defined $_sigrtn; - die "POSIX::SigRt not available" unless defined $_sigrtn && $_sigrtn > 0; -} - -sub _getsig { - &_croak; - my $rtsig = $_[0]; - # Allow (SIGRT)?MIN( + n)?, a common idiom when doing these things in C. - $rtsig = $_SIGRTMIN + ($1 || 0) - if $rtsig =~ /^(?:(?:SIG)?RT)?MIN(\s*\+\s*(\d+))?$/; - return $rtsig; -} - -sub _exist { - my $rtsig = _getsig($_[1]); - my $ok = $rtsig >= $_SIGRTMIN && $rtsig <= $_SIGRTMAX; - ($rtsig, $ok); -} - -sub _check { - my ($rtsig, $ok) = &_exist; - die "No POSIX::SigRt signal $_[1] (valid range SIGRTMIN..SIGRTMAX, or $_SIGRTMIN..$_SIGRTMAX)" - unless $ok; - return $rtsig; -} - -sub new { - my ($rtsig, $handler, $flags) = @_; - my $sigset = POSIX::SigSet->new($rtsig); - my $sigact = POSIX::SigAction->new($handler, $sigset, $flags); - POSIX::sigaction($rtsig, $sigact); -} - -sub EXISTS { &_exist } -sub FETCH { my $rtsig = &_check; - my $oa = POSIX::SigAction->new(); - POSIX::sigaction($rtsig, undef, $oa); - return $oa->{HANDLER} } -sub STORE { my $rtsig = &_check; new($rtsig, $_[2], $SIGACTION_FLAGS) } -sub DELETE { delete $SIG{ &_check } } -sub CLEAR { &_exist; delete @SIG{ &POSIX::SIGRTMIN .. &POSIX::SIGRTMAX } } -sub SCALAR { &_croak; $_sigrtn + 1 } - -tie %POSIX::SIGRT, 'POSIX::SigRt'; -# and the expression on the line above is true, so we return true. diff --git a/software/Slic3r-1.3.0.64bit/lib/Params/Util.pm b/software/Slic3r-1.3.0.64bit/lib/Params/Util.pm deleted file mode 100644 index 8a44b004..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Params/Util.pm +++ /dev/null @@ -1,371 +0,0 @@ -#line 1 "Params/Util.pm" -package Params::Util; - -#line 57 - -use 5.00503; -use strict; -require overload; -require Exporter; -require Scalar::Util; -require DynaLoader; - -use vars qw{$VERSION @ISA @EXPORT_OK %EXPORT_TAGS}; - -$VERSION = '1.07'; -@ISA = qw{ - Exporter - DynaLoader -}; -@EXPORT_OK = qw{ - _STRING _IDENTIFIER - _CLASS _CLASSISA _SUBCLASS _DRIVER _CLASSDOES - _NUMBER _POSINT _NONNEGINT - _SCALAR _SCALAR0 - _ARRAY _ARRAY0 _ARRAYLIKE - _HASH _HASH0 _HASHLIKE - _CODE _CODELIKE - _INVOCANT _REGEX _INSTANCE _INSTANCEDOES - _SET _SET0 - _HANDLE -}; -%EXPORT_TAGS = ( ALL => \@EXPORT_OK ); - -eval { - local $ENV{PERL_DL_NONLAZY} = 0 if $ENV{PERL_DL_NONLAZY}; - bootstrap Params::Util $VERSION; - 1; -} unless $ENV{PERL_PARAMS_UTIL_PP}; - -# Use a private pure-perl copy of looks_like_number if the version of -# Scalar::Util is old (for whatever reason). -my $SU = eval "$Scalar::Util::VERSION" || 0; -if ( $SU >= 1.18 ) { - Scalar::Util->import('looks_like_number'); -} else { - eval <<'END_PERL'; -sub looks_like_number { - local $_ = shift; - - # checks from perlfaq4 - return 0 if !defined($_); - if (ref($_)) { - return overload::Overloaded($_) ? defined(0 + $_) : 0; - } - return 1 if (/^[+-]?[0-9]+$/); # is a +/- integer - return 1 if (/^([+-]?)(?=[0-9]|\.[0-9])[0-9]*(\.[0-9]*)?([Ee]([+-]?[0-9]+))?$/); # a C float - return 1 if ($] >= 5.008 and /^(Inf(inity)?|NaN)$/i) or ($] >= 5.006001 and /^Inf$/i); - - 0; -} -END_PERL -} - - - - - -##################################################################### -# Param Checking Functions - -#line 147 - -eval <<'END_PERL' unless defined &_STRING; -sub _STRING ($) { - (defined $_[0] and ! ref $_[0] and length($_[0])) ? $_[0] : undef; -} -END_PERL - -#line 166 - -eval <<'END_PERL' unless defined &_IDENTIFIER; -sub _IDENTIFIER ($) { - (defined $_[0] and ! ref $_[0] and $_[0] =~ m/^[^\W\d]\w*\z/s) ? $_[0] : undef; -} -END_PERL - -#line 189 - -eval <<'END_PERL' unless defined &_CLASS; -sub _CLASS ($) { - (defined $_[0] and ! ref $_[0] and $_[0] =~ m/^[^\W\d]\w*(?:::\w+)*\z/s) ? $_[0] : undef; -} -END_PERL - -#line 215 - -eval <<'END_PERL' unless defined &_CLASSISA; -sub _CLASSISA ($$) { - (defined $_[0] and ! ref $_[0] and $_[0] =~ m/^[^\W\d]\w*(?:::\w+)*\z/s and $_[0]->isa($_[1])) ? $_[0] : undef; -} -END_PERL - -#line 230 - -eval <<'END_PERL' unless defined &_CLASSDOES; -sub _CLASSDOES ($$) { - (defined $_[0] and ! ref $_[0] and $_[0] =~ m/^[^\W\d]\w*(?:::\w+)*\z/s and $_[0]->DOES($_[1])) ? $_[0] : undef; -} -END_PERL - -#line 256 - -eval <<'END_PERL' unless defined &_SUBCLASS; -sub _SUBCLASS ($$) { - (defined $_[0] and ! ref $_[0] and $_[0] =~ m/^[^\W\d]\w*(?:::\w+)*\z/s and $_[0] ne $_[1] and $_[0]->isa($_[1])) ? $_[0] : undef; -} -END_PERL - -#line 278 - -eval <<'END_PERL' unless defined &_NUMBER; -sub _NUMBER ($) { - ( defined $_[0] and ! ref $_[0] and looks_like_number($_[0]) ) - ? $_[0] - : undef; -} -END_PERL - -#line 302 - -eval <<'END_PERL' unless defined &_POSINT; -sub _POSINT ($) { - (defined $_[0] and ! ref $_[0] and $_[0] =~ m/^[1-9]\d*$/) ? $_[0] : undef; -} -END_PERL - -#line 332 - -eval <<'END_PERL' unless defined &_NONNEGINT; -sub _NONNEGINT ($) { - (defined $_[0] and ! ref $_[0] and $_[0] =~ m/^(?:0|[1-9]\d*)$/) ? $_[0] : undef; -} -END_PERL - -#line 354 - -eval <<'END_PERL' unless defined &_SCALAR; -sub _SCALAR ($) { - (ref $_[0] eq 'SCALAR' and defined ${$_[0]} and ${$_[0]} ne '') ? $_[0] : undef; -} -END_PERL - -#line 376 - -eval <<'END_PERL' unless defined &_SCALAR0; -sub _SCALAR0 ($) { - ref $_[0] eq 'SCALAR' ? $_[0] : undef; -} -END_PERL - -#line 398 - -eval <<'END_PERL' unless defined &_ARRAY; -sub _ARRAY ($) { - (ref $_[0] eq 'ARRAY' and @{$_[0]}) ? $_[0] : undef; -} -END_PERL - -#line 421 - -eval <<'END_PERL' unless defined &_ARRAY0; -sub _ARRAY0 ($) { - ref $_[0] eq 'ARRAY' ? $_[0] : undef; -} -END_PERL - -#line 437 - -eval <<'END_PERL' unless defined &_ARRAYLIKE; -sub _ARRAYLIKE { - (defined $_[0] and ref $_[0] and ( - (Scalar::Util::reftype($_[0]) eq 'ARRAY') - or - overload::Method($_[0], '@{}') - )) ? $_[0] : undef; -} -END_PERL - -#line 463 - -eval <<'END_PERL' unless defined &_HASH; -sub _HASH ($) { - (ref $_[0] eq 'HASH' and scalar %{$_[0]}) ? $_[0] : undef; -} -END_PERL - -#line 485 - -eval <<'END_PERL' unless defined &_HASH0; -sub _HASH0 ($) { - ref $_[0] eq 'HASH' ? $_[0] : undef; -} -END_PERL - -#line 501 - -eval <<'END_PERL' unless defined &_HASHLIKE; -sub _HASHLIKE { - (defined $_[0] and ref $_[0] and ( - (Scalar::Util::reftype($_[0]) eq 'HASH') - or - overload::Method($_[0], '%{}') - )) ? $_[0] : undef; -} -END_PERL - -#line 524 - -eval <<'END_PERL' unless defined &_CODE; -sub _CODE ($) { - ref $_[0] eq 'CODE' ? $_[0] : undef; -} -END_PERL - -#line 572 - -eval <<'END_PERL' unless defined &_CODELIKE; -sub _CODELIKE($) { - ( - (Scalar::Util::reftype($_[0])||'') eq 'CODE' - or - Scalar::Util::blessed($_[0]) and overload::Method($_[0],'&{}') - ) - ? $_[0] : undef; -} -END_PERL - -#line 595 - -eval <<'END_PERL' unless defined &_INVOCANT; -sub _INVOCANT($) { - (defined $_[0] and - (defined Scalar::Util::blessed($_[0]) - or - # We used to check for stash definedness, but any class-like name is a - # valid invocant for UNIVERSAL methods, so we stopped. -- rjbs, 2006-07-02 - Params::Util::_CLASS($_[0])) - ) ? $_[0] : undef; -} -END_PERL - -#line 620 - -eval <<'END_PERL' unless defined &_INSTANCE; -sub _INSTANCE ($$) { - (Scalar::Util::blessed($_[0]) and $_[0]->isa($_[1])) ? $_[0] : undef; -} -END_PERL - -#line 635 - -eval <<'END_PERL' unless defined &_INSTANCEDOES; -sub _INSTANCEDOES ($$) { - (Scalar::Util::blessed($_[0]) and $_[0]->DOES($_[1])) ? $_[0] : undef; -} -END_PERL - -#line 653 - -eval <<'END_PERL' unless defined &_REGEX; -sub _REGEX ($) { - (defined $_[0] and 'Regexp' eq ref($_[0])) ? $_[0] : undef; -} -END_PERL - -#line 678 - -eval <<'END_PERL' unless defined &_SET; -sub _SET ($$) { - my $set = shift; - _ARRAY($set) or return undef; - foreach my $item ( @$set ) { - _INSTANCE($item,$_[0]) or return undef; - } - $set; -} -END_PERL - -#line 708 - -eval <<'END_PERL' unless defined &_SET0; -sub _SET0 ($$) { - my $set = shift; - _ARRAY0($set) or return undef; - foreach my $item ( @$set ) { - _INSTANCE($item,$_[0]) or return undef; - } - $set; -} -END_PERL - -#line 736 - -# We're doing this longhand for now. Once everything is perfect, -# we'll compress this into something that compiles more efficiently. -# Further, testing file handles is not something that is generally -# done millions of times, so doing it slowly is not a big speed hit. -eval <<'END_PERL' unless defined &_HANDLE; -sub _HANDLE { - my $it = shift; - - # It has to be defined, of course - unless ( defined $it ) { - return undef; - } - - # Normal globs are considered to be file handles - if ( ref $it eq 'GLOB' ) { - return $it; - } - - # Check for a normal tied filehandle - # Side Note: 5.5.4's tied() and can() doesn't like getting undef - if ( tied($it) and tied($it)->can('TIEHANDLE') ) { - return $it; - } - - # There are no other non-object handles that we support - unless ( Scalar::Util::blessed($it) ) { - return undef; - } - - # Check for a common base classes for conventional IO::Handle object - if ( $it->isa('IO::Handle') ) { - return $it; - } - - - # Check for tied file handles using Tie::Handle - if ( $it->isa('Tie::Handle') ) { - return $it; - } - - # IO::Scalar is not a proper seekable, but it is valid is a - # regular file handle - if ( $it->isa('IO::Scalar') ) { - return $it; - } - - # Yet another special case for IO::String, which refuses (for now - # anyway) to become a subclass of IO::Handle. - if ( $it->isa('IO::String') ) { - return $it; - } - - # This is not any sort of object we know about - return undef; -} -END_PERL - -#line 817 - -eval <<'END_PERL' unless defined &_DRIVER; -sub _DRIVER ($$) { - (defined _CLASS($_[0]) and eval "require $_[0];" and ! $@ and $_[0]->isa($_[1]) and $_[0] ne $_[1]) ? $_[0] : undef; -} -END_PERL - -1; - -#line 867 diff --git a/software/Slic3r-1.3.0.64bit/lib/Pod/Escapes.pm b/software/Slic3r-1.3.0.64bit/lib/Pod/Escapes.pm deleted file mode 100644 index 70035f30..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Pod/Escapes.pm +++ /dev/null @@ -1,572 +0,0 @@ -#line 1 "Pod/Escapes.pm" -package Pod::Escapes; -use strict; -use warnings; -use 5.006; - -use vars qw( - %Code2USASCII - %Name2character - %Name2character_number - %Latin1Code_to_fallback - %Latin1Char_to_fallback - $FAR_CHAR - $FAR_CHAR_NUMBER - $NOT_ASCII - @ISA $VERSION @EXPORT_OK %EXPORT_TAGS -); - -require Exporter; -@ISA = ('Exporter'); -$VERSION = '1.07'; -@EXPORT_OK = qw( - %Code2USASCII - %Name2character - %Name2character_number - %Latin1Code_to_fallback - %Latin1Char_to_fallback - e2char - e2charnum -); -%EXPORT_TAGS = ('ALL' => \@EXPORT_OK); - -#========================================================================== - -$FAR_CHAR = "?" unless defined $FAR_CHAR; -$FAR_CHAR_NUMBER = ord($FAR_CHAR) unless defined $FAR_CHAR_NUMBER; - -$NOT_ASCII = 'A' ne chr(65) unless defined $NOT_ASCII; - -#-------------------------------------------------------------------------- -sub e2char { - my $in = $_[0]; - return undef unless defined $in and length $in; - - # Convert to decimal: - if($in =~ m/^(0[0-7]*)$/s ) { - $in = oct $in; - } elsif($in =~ m/^0?x([0-9a-fA-F]+)$/s ) { - $in = hex $1; - } # else it's decimal, or named - - if($in =~ m/^\d+$/s) { - if($] < 5.007 and $in > 255) { # can't be trusted with Unicode - return $FAR_CHAR; - } elsif ($] >= 5.007003) { - return chr(utf8::unicode_to_native($in)); - } elsif ($NOT_ASCII) { - return $Code2USASCII{$in} # so "65" => "A" everywhere - || $Latin1Code_to_fallback{$in} # Fallback. - || $FAR_CHAR; # Fall further back - } else { - return chr($in); - } - } else { - return $Name2character{$in}; # returns undef if unknown - } -} - -#-------------------------------------------------------------------------- -sub e2charnum { - my $in = $_[0]; - return undef unless defined $in and length $in; - - # Convert to decimal: - if($in =~ m/^(0[0-7]*)$/s ) { - $in = oct $in; - } elsif($in =~ m/^0?x([0-9a-fA-F]+)$/s ) { - $in = hex $1; - } # else it's decimal, or named - - if($in =~ m/^[0-9]+$/s) { - return 0 + $in; - } else { - return $Name2character_number{$in}; # returns undef if unknown - } -} - -#-------------------------------------------------------------------------- - -%Code2USASCII = ( -# mostly generated by -# perl -e "printf qq{ \x25 3s, '\x25s',\n}, $_, chr($_) foreach (32 .. 126)" - 32, ' ', - 33, '!', - 34, '"', - 35, '#', - 36, '$', - 37, '%', - 38, '&', - 39, "'", #! - 40, '(', - 41, ')', - 42, '*', - 43, '+', - 44, ',', - 45, '-', - 46, '.', - 47, '/', - 48, '0', - 49, '1', - 50, '2', - 51, '3', - 52, '4', - 53, '5', - 54, '6', - 55, '7', - 56, '8', - 57, '9', - 58, ':', - 59, ';', - 60, '<', - 61, '=', - 62, '>', - 63, '?', - 64, '@', - 65, 'A', - 66, 'B', - 67, 'C', - 68, 'D', - 69, 'E', - 70, 'F', - 71, 'G', - 72, 'H', - 73, 'I', - 74, 'J', - 75, 'K', - 76, 'L', - 77, 'M', - 78, 'N', - 79, 'O', - 80, 'P', - 81, 'Q', - 82, 'R', - 83, 'S', - 84, 'T', - 85, 'U', - 86, 'V', - 87, 'W', - 88, 'X', - 89, 'Y', - 90, 'Z', - 91, '[', - 92, "\\", #! - 93, ']', - 94, '^', - 95, '_', - 96, '`', - 97, 'a', - 98, 'b', - 99, 'c', - 100, 'd', - 101, 'e', - 102, 'f', - 103, 'g', - 104, 'h', - 105, 'i', - 106, 'j', - 107, 'k', - 108, 'l', - 109, 'm', - 110, 'n', - 111, 'o', - 112, 'p', - 113, 'q', - 114, 'r', - 115, 's', - 116, 't', - 117, 'u', - 118, 'v', - 119, 'w', - 120, 'x', - 121, 'y', - 122, 'z', - 123, '{', - 124, '|', - 125, '}', - 126, '~', -); - -#-------------------------------------------------------------------------- - -%Latin1Code_to_fallback = (); -@Latin1Code_to_fallback{0xA0 .. 0xFF} = ( -# Copied from Text/Unidecode/x00.pm: - -' ', qq{!}, qq{C/}, 'PS', qq{\$?}, qq{Y=}, qq{|}, 'SS', qq{"}, qq{(c)}, 'a', qq{<<}, qq{!}, "", qq{(r)}, qq{-}, -'deg', qq{+-}, '2', '3', qq{'}, 'u', 'P', qq{*}, qq{,}, '1', 'o', qq{>>}, qq{1/4}, qq{1/2}, qq{3/4}, qq{?}, -'A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', -'D', 'N', 'O', 'O', 'O', 'O', 'O', 'x', 'O', 'U', 'U', 'U', 'U', 'U', 'Th', 'ss', -'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', -'d', 'n', 'o', 'o', 'o', 'o', 'o', qq{/}, 'o', 'u', 'u', 'u', 'u', 'y', 'th', 'y', - -); - -{ - # Now stuff %Latin1Char_to_fallback: - %Latin1Char_to_fallback = (); - my($k,$v); - while( ($k,$v) = each %Latin1Code_to_fallback) { - $Latin1Char_to_fallback{chr $k} = $v; - #print chr($k), ' => ', $v, "\n"; - } -} - -#-------------------------------------------------------------------------- - -%Name2character_number = ( - # General XML/XHTML: - 'lt' => 60, - 'gt' => 62, - 'quot' => 34, - 'amp' => 38, - 'apos' => 39, - - # POD-specific: - 'sol' => 47, - 'verbar' => 124, - - 'lchevron' => 171, # legacy for laquo - 'rchevron' => 187, # legacy for raquo - - # Remember, grave looks like \ (as in virtu\) - # acute looks like / (as in re/sume/) - # circumflex looks like ^ (as in papier ma^che/) - # umlaut/dieresis looks like " (as in nai"ve, Chloe") - - # From the XHTML 1 .ent files: - 'nbsp' , 160, - 'iexcl' , 161, - 'cent' , 162, - 'pound' , 163, - 'curren' , 164, - 'yen' , 165, - 'brvbar' , 166, - 'sect' , 167, - 'uml' , 168, - 'copy' , 169, - 'ordf' , 170, - 'laquo' , 171, - 'not' , 172, - 'shy' , 173, - 'reg' , 174, - 'macr' , 175, - 'deg' , 176, - 'plusmn' , 177, - 'sup2' , 178, - 'sup3' , 179, - 'acute' , 180, - 'micro' , 181, - 'para' , 182, - 'middot' , 183, - 'cedil' , 184, - 'sup1' , 185, - 'ordm' , 186, - 'raquo' , 187, - 'frac14' , 188, - 'frac12' , 189, - 'frac34' , 190, - 'iquest' , 191, - 'Agrave' , 192, - 'Aacute' , 193, - 'Acirc' , 194, - 'Atilde' , 195, - 'Auml' , 196, - 'Aring' , 197, - 'AElig' , 198, - 'Ccedil' , 199, - 'Egrave' , 200, - 'Eacute' , 201, - 'Ecirc' , 202, - 'Euml' , 203, - 'Igrave' , 204, - 'Iacute' , 205, - 'Icirc' , 206, - 'Iuml' , 207, - 'ETH' , 208, - 'Ntilde' , 209, - 'Ograve' , 210, - 'Oacute' , 211, - 'Ocirc' , 212, - 'Otilde' , 213, - 'Ouml' , 214, - 'times' , 215, - 'Oslash' , 216, - 'Ugrave' , 217, - 'Uacute' , 218, - 'Ucirc' , 219, - 'Uuml' , 220, - 'Yacute' , 221, - 'THORN' , 222, - 'szlig' , 223, - 'agrave' , 224, - 'aacute' , 225, - 'acirc' , 226, - 'atilde' , 227, - 'auml' , 228, - 'aring' , 229, - 'aelig' , 230, - 'ccedil' , 231, - 'egrave' , 232, - 'eacute' , 233, - 'ecirc' , 234, - 'euml' , 235, - 'igrave' , 236, - 'iacute' , 237, - 'icirc' , 238, - 'iuml' , 239, - 'eth' , 240, - 'ntilde' , 241, - 'ograve' , 242, - 'oacute' , 243, - 'ocirc' , 244, - 'otilde' , 245, - 'ouml' , 246, - 'divide' , 247, - 'oslash' , 248, - 'ugrave' , 249, - 'uacute' , 250, - 'ucirc' , 251, - 'uuml' , 252, - 'yacute' , 253, - 'thorn' , 254, - 'yuml' , 255, - - 'fnof' , 402, - 'Alpha' , 913, - 'Beta' , 914, - 'Gamma' , 915, - 'Delta' , 916, - 'Epsilon' , 917, - 'Zeta' , 918, - 'Eta' , 919, - 'Theta' , 920, - 'Iota' , 921, - 'Kappa' , 922, - 'Lambda' , 923, - 'Mu' , 924, - 'Nu' , 925, - 'Xi' , 926, - 'Omicron' , 927, - 'Pi' , 928, - 'Rho' , 929, - 'Sigma' , 931, - 'Tau' , 932, - 'Upsilon' , 933, - 'Phi' , 934, - 'Chi' , 935, - 'Psi' , 936, - 'Omega' , 937, - 'alpha' , 945, - 'beta' , 946, - 'gamma' , 947, - 'delta' , 948, - 'epsilon' , 949, - 'zeta' , 950, - 'eta' , 951, - 'theta' , 952, - 'iota' , 953, - 'kappa' , 954, - 'lambda' , 955, - 'mu' , 956, - 'nu' , 957, - 'xi' , 958, - 'omicron' , 959, - 'pi' , 960, - 'rho' , 961, - 'sigmaf' , 962, - 'sigma' , 963, - 'tau' , 964, - 'upsilon' , 965, - 'phi' , 966, - 'chi' , 967, - 'psi' , 968, - 'omega' , 969, - 'thetasym' , 977, - 'upsih' , 978, - 'piv' , 982, - 'bull' , 8226, - 'hellip' , 8230, - 'prime' , 8242, - 'Prime' , 8243, - 'oline' , 8254, - 'frasl' , 8260, - 'weierp' , 8472, - 'image' , 8465, - 'real' , 8476, - 'trade' , 8482, - 'alefsym' , 8501, - 'larr' , 8592, - 'uarr' , 8593, - 'rarr' , 8594, - 'darr' , 8595, - 'harr' , 8596, - 'crarr' , 8629, - 'lArr' , 8656, - 'uArr' , 8657, - 'rArr' , 8658, - 'dArr' , 8659, - 'hArr' , 8660, - 'forall' , 8704, - 'part' , 8706, - 'exist' , 8707, - 'empty' , 8709, - 'nabla' , 8711, - 'isin' , 8712, - 'notin' , 8713, - 'ni' , 8715, - 'prod' , 8719, - 'sum' , 8721, - 'minus' , 8722, - 'lowast' , 8727, - 'radic' , 8730, - 'prop' , 8733, - 'infin' , 8734, - 'ang' , 8736, - 'and' , 8743, - 'or' , 8744, - 'cap' , 8745, - 'cup' , 8746, - 'int' , 8747, - 'there4' , 8756, - 'sim' , 8764, - 'cong' , 8773, - 'asymp' , 8776, - 'ne' , 8800, - 'equiv' , 8801, - 'le' , 8804, - 'ge' , 8805, - 'sub' , 8834, - 'sup' , 8835, - 'nsub' , 8836, - 'sube' , 8838, - 'supe' , 8839, - 'oplus' , 8853, - 'otimes' , 8855, - 'perp' , 8869, - 'sdot' , 8901, - 'lceil' , 8968, - 'rceil' , 8969, - 'lfloor' , 8970, - 'rfloor' , 8971, - 'lang' , 9001, - 'rang' , 9002, - 'loz' , 9674, - 'spades' , 9824, - 'clubs' , 9827, - 'hearts' , 9829, - 'diams' , 9830, - 'OElig' , 338, - 'oelig' , 339, - 'Scaron' , 352, - 'scaron' , 353, - 'Yuml' , 376, - 'circ' , 710, - 'tilde' , 732, - 'ensp' , 8194, - 'emsp' , 8195, - 'thinsp' , 8201, - 'zwnj' , 8204, - 'zwj' , 8205, - 'lrm' , 8206, - 'rlm' , 8207, - 'ndash' , 8211, - 'mdash' , 8212, - 'lsquo' , 8216, - 'rsquo' , 8217, - 'sbquo' , 8218, - 'ldquo' , 8220, - 'rdquo' , 8221, - 'bdquo' , 8222, - 'dagger' , 8224, - 'Dagger' , 8225, - 'permil' , 8240, - 'lsaquo' , 8249, - 'rsaquo' , 8250, - 'euro' , 8364, -); - - -# Fill out %Name2character... -{ - %Name2character = (); - my($name, $number); - while( ($name, $number) = each %Name2character_number) { - if($] < 5.007 and $number > 255) { - $Name2character{$name} = $FAR_CHAR; - # substitute for Unicode characters, for perls - # that can't reliably handle them - } elsif ($] >= 5.007003) { - $Name2character{$name} = chr utf8::unicode_to_native($number); - # normal case for more recent Perls where we can translate from Unicode - # to the native character set. - } - elsif (exists $Code2USASCII{$number}) { - $Name2character{$name} = $Code2USASCII{$number}; - # on older Perls, we can use the translations we have hard-coded in this - # file, but these don't include the non-ASCII-range characters - } - elsif ($NOT_ASCII && $number > 127 && $number < 256) { - # this range on old non-ASCII-platform perls is wrong - if (exists $Latin1Code_to_fallback{$number}) { - $Name2character{$name} = $Latin1Code_to_fallback{$number}; - } else { - $Name2character{$name} = $FAR_CHAR; - } - } else { - $Name2character{$name} = chr $number; - } - } -} - -#-------------------------------------------------------------------------- -1; -__END__ - -#line 687 - -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# What I used for reading the XHTML .ent files: - -my(@norms, @good, @bad); -my $dir = 'c:/sgml/docbook/'; -my %escapes; -foreach my $file (qw( - xhtml-symbol.ent - xhtml-lat1.ent - xhtml-special.ent -)) { - open(IN, "<$dir$file") or die "can't read-open $dir$file: $!"; - print "Reading $file...\n"; - while() { - if(m//) { - my($name, $value) = ($1,$2); - next if $name eq 'quot' or $name eq 'apos' or $name eq 'gt'; - - $value = hex $1 if $value =~ m/^x([a-fA-F0-9]+)$/s; - print "ILLEGAL VALUE $value" unless $value =~ m/^\d+$/s; - if($value > 255) { - push @good , sprintf " %-10s , chr(%s),\n", "'$name'", $value; - push @bad , sprintf " %-10s , \$bad,\n", "'$name'", $value; - } else { - push @norms, sprintf " %-10s , chr(%s),\n", "'$name'", $value; - } - } elsif(m/1), @Known_formatting_codes); -@Known_directives = qw(head1 head2 head3 head4 item over back); -%Known_directives = map(($_=>'Plain'), @Known_directives); -$NL = $/ unless defined $NL; - -#----------------------------------------------------------------------------- -# Set up some constants: - -BEGIN { - if(defined &ASCII) { } - elsif(chr(65) eq 'A') { *ASCII = sub () {1} } - else { *ASCII = sub () {''} } - - unless(defined &MANY_LINES) { *MANY_LINES = sub () {20} } - DEBUG > 4 and print STDERR "MANY_LINES is ", MANY_LINES(), "\n"; - unless(MANY_LINES() >= 1) { - die "MANY_LINES is too small (", MANY_LINES(), ")!\nAborting"; - } - if(defined &UNICODE) { } - elsif($] >= 5.008) { *UNICODE = sub() {1} } - else { *UNICODE = sub() {''} } -} -if(DEBUG > 2) { - print STDERR "# We are ", ASCII ? '' : 'not ', "in ASCII-land\n"; - print STDERR "# We are under a Unicode-safe Perl.\n"; -} - -# The NO BREAK SPACE and SOFT HYHPEN are used in several submodules. -if ($] ge 5.007_003) { # On sufficiently modern Perls we can handle any - # character set - $Pod::Simple::nbsp = chr utf8::unicode_to_native(0xA0); - $Pod::Simple::shy = chr utf8::unicode_to_native(0xAD); -} -elsif (Pod::Simple::ASCII) { # Hard code ASCII early Perl - $Pod::Simple::nbsp = "\xA0"; - $Pod::Simple::shy = "\xAD"; -} -else { # EBCDIC on early Perl. We know what the values are for the code - # pages supported then. - $Pod::Simple::nbsp = "\x41"; - $Pod::Simple::shy = "\xCA"; -} - -# Design note: -# This is a parser for Pod. It is not a parser for the set of Pod-like -# languages which happens to contain Pod -- it is just for Pod, plus possibly -# some extensions. - -# @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ -#@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -__PACKAGE__->_accessorize( - 'nbsp_for_S', # Whether to map S<...>'s to \xA0 characters - 'source_filename', # Filename of the source, for use in warnings - 'source_dead', # Whether to consider this parser's source dead - - 'output_fh', # The filehandle we're writing to, if applicable. - # Used only in some derived classes. - - 'hide_line_numbers', # For some dumping subclasses: whether to pointedly - # suppress the start_line attribute - - 'line_count', # the current line number - 'pod_para_count', # count of pod paragraphs seen so far - - 'no_whining', # whether to suppress whining - 'no_errata_section', # whether to suppress the errata section - 'complain_stderr', # whether to complain to stderr - - 'doc_has_started', # whether we've fired the open-Document event yet - - 'bare_output', # For some subclasses: whether to prepend - # header-code and postpend footer-code - - 'keep_encoding_directive', # whether to emit =encoding - 'nix_X_codes', # whether to ignore X<...> codes - 'merge_text', # whether to avoid breaking a single piece of - # text up into several events - - 'preserve_whitespace', # whether to try to keep whitespace as-is - 'strip_verbatim_indent', # What indent to strip from verbatim - - 'parse_characters', # Whether parser should expect chars rather than octets - - 'content_seen', # whether we've seen any real Pod content - 'errors_seen', # TODO: document. whether we've seen any errors (fatal or not) - - 'codes_in_verbatim', # for PseudoPod extensions - - 'code_handler', # coderef to call when a code (non-pod) line is seen - 'cut_handler', # ... when a =cut line is seen - 'pod_handler', # ... when a =pod line is seen - 'whiteline_handler', # ... when a line with only whitespace is seen - #Called like: - # $code_handler->($line, $self->{'line_count'}, $self) if $code_handler; - # $cut_handler->($line, $self->{'line_count'}, $self) if $cut_handler; - # $pod_handler->($line, $self->{'line_count'}, $self) if $pod_handler; - # $wl_handler->($line, $self->{'line_count'}, $self) if $wl_handler; - 'parse_empty_lists', # whether to acknowledge empty =over/=back blocks - 'raw_mode', # to report entire raw lines instead of Pod elements -); - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -sub any_errata_seen { # good for using as an exit() value... - return shift->{'errors_seen'} || 0; -} - -sub errata_seen { - return shift->{'all_errata'} || {}; -} - -# Returns the encoding only if it was recognized as being handled and set -sub detected_encoding { - return shift->{'detected_encoding'}; -} - -sub encoding { - my $this = shift; - return $this->{'encoding'} unless @_; # GET. - - $this->_handle_encoding_line("=encoding $_[0]"); - if ($this->{'_processed_encoding'}) { - delete $this->{'_processed_encoding'}; - if(! $this->{'encoding_command_statuses'} ) { - DEBUG > 2 and print STDERR " CRAZY ERROR: encoding wasn't really handled?!\n"; - } elsif( $this->{'encoding_command_statuses'}[-1] ) { - $this->scream( "=encoding $_[0]", - sprintf "Couldn't do %s: %s", - $this->{'encoding_command_reqs' }[-1], - $this->{'encoding_command_statuses'}[-1], - ); - } else { - DEBUG > 2 and print STDERR " (encoding successfully handled.)\n"; - } - return $this->{'encoding'}; - } else { - return undef; - } -} - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -# Pull in some functions that, for some reason, I expect to see here too: -BEGIN { - *pretty = \&Pod::Simple::BlackBox::pretty; - *stringify_lol = \&Pod::Simple::BlackBox::stringify_lol; -} - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -sub version_report { - my $class = ref($_[0]) || $_[0]; - if($class eq __PACKAGE__) { - return "$class $VERSION"; - } else { - my $v = $class->VERSION; - return "$class $v (" . __PACKAGE__ . " $VERSION)"; - } -} - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -#sub curr_open { # read-only list accessor -# return @{ $_[0]{'curr_open'} || return() }; -#} -#sub _curr_open_listref { $_[0]{'curr_open'} ||= [] } - - -sub output_string { - # Works by faking out output_fh. Simplifies our code. - # - my $this = shift; - return $this->{'output_string'} unless @_; # GET. - - require Pod::Simple::TiedOutFH; - my $x = (defined($_[0]) and ref($_[0])) ? $_[0] : \( $_[0] ); - $$x = '' unless defined $$x; - DEBUG > 4 and print STDERR "# Output string set to $x ($$x)\n"; - $this->{'output_fh'} = Pod::Simple::TiedOutFH->handle_on($_[0]); - return - $this->{'output_string'} = $_[0]; - #${ ${ $this->{'output_fh'} } }; -} - -sub abandon_output_string { $_[0]->abandon_output_fh; delete $_[0]{'output_string'} } -sub abandon_output_fh { $_[0]->output_fh(undef) } -# These don't delete the string or close the FH -- they just delete our -# references to it/them. -# TODO: document these - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -sub new { - # takes no parameters - my $class = ref($_[0]) || $_[0]; - #Carp::croak(__PACKAGE__ . " is a virtual base class -- see perldoc " - # . __PACKAGE__ ); - return bless { - 'accept_codes' => { map( ($_=>$_), @Known_formatting_codes ) }, - 'accept_directives' => { %Known_directives }, - 'accept_targets' => {}, - }, $class; -} - - - -# TODO: an option for whether to interpolate E<...>'s, or just resolve to codes. - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -sub _handle_element_start { # OVERRIDE IN DERIVED CLASS - my($self, $element_name, $attr_hash_r) = @_; - return; -} - -sub _handle_element_end { # OVERRIDE IN DERIVED CLASS - my($self, $element_name) = @_; - return; -} - -sub _handle_text { # OVERRIDE IN DERIVED CLASS - my($self, $text) = @_; - return; -} - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -# -# And now directives (not targets) - -sub accept_directive_as_verbatim { shift->_accept_directives('Verbatim', @_) } -sub accept_directive_as_data { shift->_accept_directives('Data', @_) } -sub accept_directive_as_processed { shift->_accept_directives('Plain', @_) } - -sub _accept_directives { - my($this, $type) = splice @_,0,2; - foreach my $d (@_) { - next unless defined $d and length $d; - Carp::croak "\"$d\" isn't a valid directive name" - unless $d =~ m/^[a-zA-Z][a-zA-Z0-9]*$/s; - Carp::croak "\"$d\" is already a reserved Pod directive name" - if exists $Known_directives{$d}; - $this->{'accept_directives'}{$d} = $type; - DEBUG > 2 and print STDERR "Learning to accept \"=$d\" as directive of type $type\n"; - } - DEBUG > 6 and print STDERR "$this\'s accept_directives : ", - pretty($this->{'accept_directives'}), "\n"; - - return sort keys %{ $this->{'accept_directives'} } if wantarray; - return; -} - -#-------------------------------------------------------------------------- -# TODO: document these: - -sub unaccept_directive { shift->unaccept_directives(@_) }; - -sub unaccept_directives { - my $this = shift; - foreach my $d (@_) { - next unless defined $d and length $d; - Carp::croak "\"$d\" isn't a valid directive name" - unless $d =~ m/^[a-zA-Z][a-zA-Z0-9]*$/s; - Carp::croak "But you must accept \"$d\" directives -- it's a builtin!" - if exists $Known_directives{$d}; - delete $this->{'accept_directives'}{$d}; - DEBUG > 2 and print STDERR "OK, won't accept \"=$d\" as directive.\n"; - } - return sort keys %{ $this->{'accept_directives'} } if wantarray; - return -} - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -# -# And now targets (not directives) - -sub accept_target { shift->accept_targets(@_) } # alias -sub accept_target_as_text { shift->accept_targets_as_text(@_) } # alias - - -sub accept_targets { shift->_accept_targets('1', @_) } - -sub accept_targets_as_text { shift->_accept_targets('force_resolve', @_) } - # forces them to be processed, even when there's no ":". - -sub _accept_targets { - my($this, $type) = splice @_,0,2; - foreach my $t (@_) { - next unless defined $t and length $t; - # TODO: enforce some limitations on what a target name can be? - $this->{'accept_targets'}{$t} = $type; - DEBUG > 2 and print STDERR "Learning to accept \"$t\" as target of type $type\n"; - } - return sort keys %{ $this->{'accept_targets'} } if wantarray; - return; -} - -#-------------------------------------------------------------------------- -sub unaccept_target { shift->unaccept_targets(@_) } - -sub unaccept_targets { - my $this = shift; - foreach my $t (@_) { - next unless defined $t and length $t; - # TODO: enforce some limitations on what a target name can be? - delete $this->{'accept_targets'}{$t}; - DEBUG > 2 and print STDERR "OK, won't accept \"$t\" as target.\n"; - } - return sort keys %{ $this->{'accept_targets'} } if wantarray; - return; -} - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -# -# And now codes (not targets or directives) - -# XXX Probably it is an error that the digit '9' is excluded from these re's. -# Broken for early Perls on EBCDIC -my $xml_name_re = eval "qr/[^-.0-8:A-Z_a-z[:^ascii:]]/"; -if (! defined $xml_name_re) { - $xml_name_re = qr/[\x00-\x2C\x2F\x39\x3B-\x40\x5B-\x5E\x60\x7B-\x7F]/; -} - -sub accept_code { shift->accept_codes(@_) } # alias - -sub accept_codes { # Add some codes - my $this = shift; - - foreach my $new_code (@_) { - next unless defined $new_code and length $new_code; - # A good-enough check that it's good as an XML Name symbol: - Carp::croak "\"$new_code\" isn't a valid element name" - if $new_code =~ $xml_name_re - # Characters under 0x80 that aren't legal in an XML Name. - or $new_code =~ m/^[-\.0-9]/s - or $new_code =~ m/:[-\.0-9]/s; - # The legal under-0x80 Name characters that - # an XML Name still can't start with. - - $this->{'accept_codes'}{$new_code} = $new_code; - - # Yes, map to itself -- just so that when we - # see "=extend W [whatever] thatelementname", we say that W maps - # to whatever $this->{accept_codes}{thatelementname} is, - # i.e., "thatelementname". Then when we go re-mapping, - # a "W" in the treelet turns into "thatelementname". We only - # remap once. - # If we say we accept "W", then a "W" in the treelet simply turns - # into "W". - } - - return; -} - -#-------------------------------------------------------------------------- -sub unaccept_code { shift->unaccept_codes(@_) } - -sub unaccept_codes { # remove some codes - my $this = shift; - - foreach my $new_code (@_) { - next unless defined $new_code and length $new_code; - # A good-enough check that it's good as an XML Name symbol: - Carp::croak "\"$new_code\" isn't a valid element name" - if $new_code =~ $xml_name_re - # Characters under 0x80 that aren't legal in an XML Name. - or $new_code =~ m/^[-\.0-9]/s - or $new_code =~ m/:[-\.0-9]/s; - # The legal under-0x80 Name characters that - # an XML Name still can't start with. - - Carp::croak "But you must accept \"$new_code\" codes -- it's a builtin!" - if grep $new_code eq $_, @Known_formatting_codes; - - delete $this->{'accept_codes'}{$new_code}; - - DEBUG > 2 and print STDERR "OK, won't accept the code $new_code<...>.\n"; - } - - return; -} - - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -sub parse_string_document { - my $self = shift; - my @lines; - foreach my $line_group (@_) { - next unless defined $line_group and length $line_group; - pos($line_group) = 0; - while($line_group =~ - m/([^\n\r]*)(\r?\n?)/g # supports \r, \n ,\r\n - #m/([^\n\r]*)((?:\r?\n)?)/g - ) { - #print(">> $1\n"), - $self->parse_lines($1) - if length($1) or length($2) - or pos($line_group) != length($line_group); - # I.e., unless it's a zero-length "empty line" at the very - # end of "foo\nbar\n" (i.e., between the \n and the EOS). - } - } - $self->parse_lines(undef); # to signal EOF - return $self; -} - -sub _init_fh_source { - my($self, $source) = @_; - - #DEBUG > 1 and print STDERR "Declaring $source as :raw for starters\n"; - #$self->_apply_binmode($source, ':raw'); - #binmode($source, ":raw"); - - return; -} - -#:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:. -# - -sub parse_file { - my($self, $source) = (@_); - - if(!defined $source) { - Carp::croak("Can't use empty-string as a source for parse_file"); - } elsif(ref(\$source) eq 'GLOB') { - $self->{'source_filename'} = '' . ($source); - } elsif(ref $source) { - $self->{'source_filename'} = '' . ($source); - } elsif(!length $source) { - Carp::croak("Can't use empty-string as a source for parse_file"); - } else { - { - local *PODSOURCE; - open(PODSOURCE, "<$source") || Carp::croak("Can't open $source: $!"); - $self->{'source_filename'} = $source; - $source = *PODSOURCE{IO}; - } - $self->_init_fh_source($source); - } - # By here, $source is a FH. - - $self->{'source_fh'} = $source; - - my($i, @lines); - until( $self->{'source_dead'} ) { - splice @lines; - - for($i = MANY_LINES; $i--;) { # read those many lines at a time - local $/ = $NL; - push @lines, scalar(<$source>); # readline - last unless defined $lines[-1]; - # but pass thru the undef, which will set source_dead to true - } - - my $at_eof = ! $lines[-1]; # keep track of the undef - pop @lines if $at_eof; # silence warnings - - # be eol agnostic - s/\r\n?/\n/g for @lines; - - # make sure there are only one line elements for parse_lines - @lines = split(/(?<=\n)/, join('', @lines)); - - # push the undef back after popping it to set source_dead to true - push @lines, undef if $at_eof; - - $self->parse_lines(@lines); - } - delete($self->{'source_fh'}); # so it can be GC'd - return $self; -} - -#:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:. - -sub parse_from_file { - # An emulation of Pod::Parser's interface, for the sake of Perldoc. - # Basically just a wrapper around parse_file. - - my($self, $source, $to) = @_; - $self = $self->new unless ref($self); # so we tolerate being a class method - - if(!defined $source) { $source = *STDIN{IO} - } elsif(ref(\$source) eq 'GLOB') { # stet - } elsif(ref($source) ) { # stet - } elsif(!length $source - or $source eq '-' or $source =~ m/^<&(?:STDIN|0)$/i - ) { - $source = *STDIN{IO}; - } - - if(!defined $to) { $self->output_fh( *STDOUT{IO} ); - } elsif(ref(\$to) eq 'GLOB') { $self->output_fh( $to ); - } elsif(ref($to)) { $self->output_fh( $to ); - } elsif(!length $to - or $to eq '-' or $to =~ m/^>&?(?:STDOUT|1)$/i - ) { - $self->output_fh( *STDOUT{IO} ); - } elsif($to =~ m/^>&(?:STDERR|2)$/i) { - $self->output_fh( *STDERR{IO} ); - } else { - require Symbol; - my $out_fh = Symbol::gensym(); - DEBUG and print STDERR "Write-opening to $to\n"; - open($out_fh, ">$to") or Carp::croak "Can't write-open $to: $!"; - binmode($out_fh) - if $self->can('write_with_binmode') and $self->write_with_binmode; - $self->output_fh($out_fh); - } - - return $self->parse_file($source); -} - -#----------------------------------------------------------------------------- - -sub whine { - #my($self,$line,$complaint) = @_; - my $self = shift(@_); - ++$self->{'errors_seen'}; - if($self->{'no_whining'}) { - DEBUG > 9 and print STDERR "Discarding complaint (at line $_[0]) $_[1]\n because no_whining is on.\n"; - return; - } - push @{$self->{'all_errata'}{$_[0]}}, $_[1]; - return $self->_complain_warn(@_) if $self->{'complain_stderr'}; - return $self->_complain_errata(@_); -} - -sub scream { # like whine, but not suppressible - #my($self,$line,$complaint) = @_; - my $self = shift(@_); - ++$self->{'errors_seen'}; - push @{$self->{'all_errata'}{$_[0]}}, $_[1]; - return $self->_complain_warn(@_) if $self->{'complain_stderr'}; - return $self->_complain_errata(@_); -} - -sub _complain_warn { - my($self,$line,$complaint) = @_; - return printf STDERR "%s around line %s: %s\n", - $self->{'source_filename'} || 'Pod input', $line, $complaint; -} - -sub _complain_errata { - my($self,$line,$complaint) = @_; - if( $self->{'no_errata_section'} ) { - DEBUG > 9 and print STDERR "Discarding erratum (at line $line) $complaint\n because no_errata_section is on.\n"; - } else { - DEBUG > 9 and print STDERR "Queuing erratum (at line $line) $complaint\n"; - push @{$self->{'errata'}{$line}}, $complaint - # for a report to be generated later! - } - return 1; -} - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -sub _get_initial_item_type { - # A hack-wrapper here for when you have like "=over\n\n=item 456\n\n" - my($self, $para) = @_; - return $para->[1]{'~type'} if $para->[1]{'~type'}; - - return $para->[1]{'~type'} = 'text' - if join("\n", @{$para}[2 .. $#$para]) =~ m/^\s*(\d+)\.?\s*$/s and $1 ne '1'; - # Else fall thru to the general case: - return $self->_get_item_type($para); -} - - - -sub _get_item_type { # mutates the item!! - my($self, $para) = @_; - return $para->[1]{'~type'} if $para->[1]{'~type'}; - - - # Otherwise we haven't yet been to this node. Maybe alter it... - - my $content = join "\n", @{$para}[2 .. $#$para]; - - if($content =~ m/^\s*\*\s*$/s or $content =~ m/^\s*$/s) { - # Like: "=item *", "=item * ", "=item" - splice @$para, 2; # so it ends up just being ['=item', { attrhash } ] - $para->[1]{'~orig_content'} = $content; - return $para->[1]{'~type'} = 'bullet'; - - } elsif($content =~ m/^\s*\*\s+(.+)/s) { # tolerance - - # Like: "=item * Foo bar baz"; - $para->[1]{'~orig_content'} = $content; - $para->[1]{'~_freaky_para_hack'} = $1; - DEBUG > 2 and print STDERR " Tolerating $$para[2] as =item *\\n\\n$1\n"; - splice @$para, 2; # so it ends up just being ['=item', { attrhash } ] - return $para->[1]{'~type'} = 'bullet'; - - } elsif($content =~ m/^\s*(\d+)\.?\s*$/s) { - # Like: "=item 1.", "=item 123412" - - $para->[1]{'~orig_content'} = $content; - $para->[1]{'number'} = $1; # Yes, stores the number there! - - splice @$para, 2; # so it ends up just being ['=item', { attrhash } ] - return $para->[1]{'~type'} = 'number'; - - } else { - # It's anything else. - return $para->[1]{'~type'} = 'text'; - - } -} - -#----------------------------------------------------------------------------- - -sub _make_treelet { - my $self = shift; # and ($para, $start_line) - my $treelet; - if(!@_) { - return ['']; - } if(ref $_[0] and ref $_[0][0] and $_[0][0][0] eq '~Top') { - # Hack so we can pass in fake-o pre-cooked paragraphs: - # just have the first line be a reference to a ['~Top', {}, ...] - # We use this feechure in gen_errata and stuff. - - DEBUG and print STDERR "Applying precooked treelet hack to $_[0][0]\n"; - $treelet = $_[0][0]; - splice @$treelet, 0, 2; # lop the top off - return $treelet; - } else { - $treelet = $self->_treelet_from_formatting_codes(@_); - } - - if( $self->_remap_sequences($treelet) ) { - $self->_treat_Zs($treelet); # Might as well nix these first - $self->_treat_Ls($treelet); # L has to precede E and S - $self->_treat_Es($treelet); - $self->_treat_Ss($treelet); # S has to come after E - - $self->_wrap_up($treelet); # Nix X's and merge texties - - } else { - DEBUG and print STDERR "Formatless treelet gets fast-tracked.\n"; - # Very common case! - } - - splice @$treelet, 0, 2; # lop the top off - - return $treelet; -} - -#:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:. - -sub _wrap_up { - my($self, @stack) = @_; - my $nixx = $self->{'nix_X_codes'}; - my $merge = $self->{'merge_text' }; - return unless $nixx or $merge; - - DEBUG > 2 and print STDERR "\nStarting _wrap_up traversal.\n", - $merge ? (" Merge mode on\n") : (), - $nixx ? (" Nix-X mode on\n") : (), - ; - - - my($i, $treelet); - while($treelet = shift @stack) { - DEBUG > 3 and print STDERR " Considering children of this $treelet->[0] node...\n"; - for($i = 2; $i < @$treelet; ++$i) { # iterate over children - DEBUG > 3 and print STDERR " Considering child at $i ", pretty($treelet->[$i]), "\n"; - if($nixx and ref $treelet->[$i] and $treelet->[$i][0] eq 'X') { - DEBUG > 3 and print STDERR " Nixing X node at $i\n"; - splice(@$treelet, $i, 1); # just nix this node (and its descendants) - # no need to back-update the counter just yet - redo; - - } elsif($merge and $i != 2 and # non-initial - !ref $treelet->[$i] and !ref $treelet->[$i - 1] - ) { - DEBUG > 3 and print STDERR " Merging ", $i-1, - ":[$treelet->[$i-1]] and $i\:[$treelet->[$i]]\n"; - $treelet->[$i-1] .= ( splice(@$treelet, $i, 1) )[0]; - DEBUG > 4 and print STDERR " Now: ", $i-1, ":[$treelet->[$i-1]]\n"; - --$i; - next; - # since we just pulled the possibly last node out from under - # ourselves, we can't just redo() - - } elsif( ref $treelet->[$i] ) { - DEBUG > 4 and print STDERR " Enqueuing ", pretty($treelet->[$i]), " for traversal.\n"; - push @stack, $treelet->[$i]; - - if($treelet->[$i][0] eq 'L') { - my $thing; - foreach my $attrname ('section', 'to') { - if(defined($thing = $treelet->[$i][1]{$attrname}) and ref $thing) { - unshift @stack, $thing; - DEBUG > 4 and print STDERR " +Enqueuing ", - pretty( $treelet->[$i][1]{$attrname} ), - " as an attribute value to tweak.\n"; - } - } - } - } - } - } - DEBUG > 2 and print STDERR "End of _wrap_up traversal.\n\n"; - - return; -} - -#:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:. - -sub _remap_sequences { - my($self,@stack) = @_; - - if(@stack == 1 and @{ $stack[0] } == 3 and !ref $stack[0][2]) { - # VERY common case: abort it. - DEBUG and print STDERR "Skipping _remap_sequences: formatless treelet.\n"; - return 0; - } - - my $map = ($self->{'accept_codes'} || die "NO accept_codes in $self?!?"); - - my $start_line = $stack[0][1]{'start_line'}; - DEBUG > 2 and printf - "\nAbout to start _remap_sequences on treelet from line %s.\n", - $start_line || '[?]' - ; - DEBUG > 3 and print STDERR " Map: ", - join('; ', map "$_=" . ( - ref($map->{$_}) ? join(",", @{$map->{$_}}) : $map->{$_} - ), - sort keys %$map ), - ("B~C~E~F~I~L~S~X~Z" eq join '~', sort keys %$map) - ? " (all normal)\n" : "\n" - ; - - # A recursive algorithm implemented iteratively! Whee! - - my($is, $was, $i, $treelet); # scratch - while($treelet = shift @stack) { - DEBUG > 3 and print STDERR " Considering children of this $treelet->[0] node...\n"; - for($i = 2; $i < @$treelet; ++$i) { # iterate over children - next unless ref $treelet->[$i]; # text nodes are uninteresting - - DEBUG > 4 and print STDERR " Noting child $i : $treelet->[$i][0]<...>\n"; - - $is = $treelet->[$i][0] = $map->{ $was = $treelet->[$i][0] }; - if( DEBUG > 3 ) { - if(!defined $is) { - print STDERR " Code $was<> is UNKNOWN!\n"; - } elsif($is eq $was) { - DEBUG > 4 and print STDERR " Code $was<> stays the same.\n"; - } else { - print STDERR " Code $was<> maps to ", - ref($is) - ? ( "tags ", map("$_<", @$is), '...', map('>', @$is), "\n" ) - : "tag $is<...>.\n"; - } - } - - if(!defined $is) { - $self->whine($start_line, "Deleting unknown formatting code $was<>"); - $is = $treelet->[$i][0] = '1'; # But saving the children! - # I could also insert a leading "$was<" and tailing ">" as - # children of this node, but something about that seems icky. - } - if(ref $is) { - my @dynasty = @$is; - DEBUG > 4 and print STDERR " Renaming $was node to $dynasty[-1]\n"; - $treelet->[$i][0] = pop @dynasty; - my $nugget; - while(@dynasty) { - DEBUG > 4 and printf - " Grafting a new %s node between %s and %s\n", - $dynasty[-1], $treelet->[0], $treelet->[$i][0], - ; - - #$nugget = ; - splice @$treelet, $i, 1, [pop(@dynasty), {}, $treelet->[$i]]; - # relace node with a new parent - } - } elsif($is eq '0') { - splice(@$treelet, $i, 1); # just nix this node (and its descendants) - --$i; # back-update the counter - } elsif($is eq '1') { - splice(@$treelet, $i, 1 # replace this node with its children! - => splice @{ $treelet->[$i] },2 - # (not catching its first two (non-child) items) - ); - --$i; # back up for new stuff - } else { - # otherwise it's unremarkable - unshift @stack, $treelet->[$i]; # just recurse - } - } - } - - DEBUG > 2 and print STDERR "End of _remap_sequences traversal.\n\n"; - - if(@_ == 2 and @{ $_[1] } == 3 and !ref $_[1][2]) { - DEBUG and print STDERR "Noting that the treelet is now formatless.\n"; - return 0; - } - return 1; -} - -# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -sub _ponder_extend { - - # "Go to an extreme, move back to a more comfortable place" - # -- /Oblique Strategies/, Brian Eno and Peter Schmidt - - my($self, $para) = @_; - my $content = join ' ', splice @$para, 2; - $content =~ s/^\s+//s; - $content =~ s/\s+$//s; - - DEBUG > 2 and print STDERR "Ogling extensor: =extend $content\n"; - - if($content =~ - m/^ - (\S+) # 1 : new item - \s+ - (\S+) # 2 : fallback(s) - (?:\s+(\S+))? # 3 : element name(s) - \s* - $ - /xs - ) { - my $new_letter = $1; - my $fallbacks_one = $2; - my $elements_one; - $elements_one = defined($3) ? $3 : $1; - - DEBUG > 2 and print STDERR "Extensor has good syntax.\n"; - - unless($new_letter =~ m/^[A-Z]$/s or $new_letter) { - DEBUG > 2 and print STDERR " $new_letter isn't a valid thing to entend.\n"; - $self->whine( - $para->[1]{'start_line'}, - "You can extend only formatting codes A-Z, not like \"$new_letter\"" - ); - return; - } - - if(grep $new_letter eq $_, @Known_formatting_codes) { - DEBUG > 2 and print STDERR " $new_letter isn't a good thing to extend, because known.\n"; - $self->whine( - $para->[1]{'start_line'}, - "You can't extend an established code like \"$new_letter\"" - ); - - #TODO: or allow if last bit is same? - - return; - } - - unless($fallbacks_one =~ m/^[A-Z](,[A-Z])*$/s # like "B", "M,I", etc. - or $fallbacks_one eq '0' or $fallbacks_one eq '1' - ) { - $self->whine( - $para->[1]{'start_line'}, - "Format for second =extend parameter must be like" - . " M or 1 or 0 or M,N or M,N,O but you have it like " - . $fallbacks_one - ); - return; - } - - unless($elements_one =~ m/^[^ ,]+(,[^ ,]+)*$/s) { # like "B", "M,I", etc. - $self->whine( - $para->[1]{'start_line'}, - "Format for third =extend parameter: like foo or bar,Baz,qu:ux but not like " - . $elements_one - ); - return; - } - - my @fallbacks = split ',', $fallbacks_one, -1; - my @elements = split ',', $elements_one, -1; - - foreach my $f (@fallbacks) { - next if exists $Known_formatting_codes{$f} or $f eq '0' or $f eq '1'; - DEBUG > 2 and print STDERR " Can't fall back on unknown code $f\n"; - $self->whine( - $para->[1]{'start_line'}, - "Can't use unknown formatting code '$f' as a fallback for '$new_letter'" - ); - return; - } - - DEBUG > 3 and printf STDERR "Extensor: Fallbacks <%s> Elements <%s>.\n", - @fallbacks, @elements; - - my $canonical_form; - foreach my $e (@elements) { - if(exists $self->{'accept_codes'}{$e}) { - DEBUG > 1 and print STDERR " Mapping '$new_letter' to known extension '$e'\n"; - $canonical_form = $e; - last; # first acceptable elementname wins! - } else { - DEBUG > 1 and print STDERR " Can't map '$new_letter' to unknown extension '$e'\n"; - } - } - - - if( defined $canonical_form ) { - # We found a good N => elementname mapping - $self->{'accept_codes'}{$new_letter} = $canonical_form; - DEBUG > 2 and print - "Extensor maps $new_letter => known element $canonical_form.\n"; - } else { - # We have to use the fallback(s), which might be '0', or '1'. - $self->{'accept_codes'}{$new_letter} - = (@fallbacks == 1) ? $fallbacks[0] : \@fallbacks; - DEBUG > 2 and print - "Extensor maps $new_letter => fallbacks @fallbacks.\n"; - } - - } else { - DEBUG > 2 and print STDERR "Extensor has bad syntax.\n"; - $self->whine( - $para->[1]{'start_line'}, - "Unknown =extend syntax: $content" - ) - } - return; -} - - -#:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:. - -sub _treat_Zs { # Nix Z<...>'s - my($self,@stack) = @_; - - my($i, $treelet); - my $start_line = $stack[0][1]{'start_line'}; - - # A recursive algorithm implemented iteratively! Whee! - - while($treelet = shift @stack) { - for($i = 2; $i < @$treelet; ++$i) { # iterate over children - next unless ref $treelet->[$i]; # text nodes are uninteresting - unless($treelet->[$i][0] eq 'Z') { - unshift @stack, $treelet->[$i]; # recurse - next; - } - - DEBUG > 1 and print STDERR "Nixing Z node @{$treelet->[$i]}\n"; - - # bitch UNLESS it's empty - unless( @{$treelet->[$i]} == 2 - or (@{$treelet->[$i]} == 3 and $treelet->[$i][2] eq '') - ) { - $self->whine( $start_line, "A non-empty Z<>" ); - } # but kill it anyway - - splice(@$treelet, $i, 1); # thereby just nix this node. - --$i; - - } - } - - return; -} - -# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -# Quoting perlpodspec: - -# In parsing an L<...> code, Pod parsers must distinguish at least four -# attributes: - -############# Not used. Expressed via the element children plus -############# the value of the "content-implicit" flag. -# First: -# The link-text. If there is none, this must be undef. (E.g., in "L", the link-text is "Perl Functions". In -# "L" and even "L<|Time::HiRes>", there is no link text. Note -# that link text may contain formatting.) -# - -############# The element children -# Second: -# The possibly inferred link-text -- i.e., if there was no real link text, -# then this is the text that we'll infer in its place. (E.g., for -# "L", the inferred link text is "Getopt::Std".) -# - -############# The "to" attribute (which might be text, or a treelet) -# Third: -# The name or URL, or undef if none. (E.g., in "L", the name -- also sometimes called the page -- is -# "perlfunc". In "L", the name is undef.) -# - -############# The "section" attribute (which might be next, or a treelet) -# Fourth: -# The section (AKA "item" in older perlpods), or undef if none. E.g., in -# Getopt::Std/DESCRIPTION, "DESCRIPTION" is the section. (Note that this -# is not the same as a manpage section like the "5" in "man 5 crontab". -# "Section Foo" in the Pod sense means the part of the text that's -# introduced by the heading or item whose text is "Foo".) -# -# Pod parsers may also note additional attributes including: -# - -############# The "type" attribute. -# Fifth: -# A flag for whether item 3 (if present) is a URL (like -# "http://lists.perl.org" is), in which case there should be no section -# attribute; a Pod name (like "perldoc" and "Getopt::Std" are); or -# possibly a man page name (like "crontab(5)" is). -# - -############# The "raw" attribute that is already there. -# Sixth: -# The raw original L<...> content, before text is split on "|", "/", etc, -# and before E<...> codes are expanded. - - -# For L<...> codes without a "name|" part, only E<...> and Z<> codes may -# occur -- no other formatting codes. That is, authors should not use -# "L>". -# -# Note, however, that formatting codes and Z<>'s can occur in any and all -# parts of an L<...> (i.e., in name, section, text, and url). - -sub _treat_Ls { # Process our dear dear friends, the L<...> sequences - - # L - # L or L - # L or L or L<"sec"> - # L - # L or L - # L or L or L - # L - # L - - my($self,@stack) = @_; - - my($i, $treelet); - my $start_line = $stack[0][1]{'start_line'}; - - # A recursive algorithm implemented iteratively! Whee! - - while($treelet = shift @stack) { - for(my $i = 2; $i < @$treelet; ++$i) { - # iterate over children of current tree node - next unless ref $treelet->[$i]; # text nodes are uninteresting - unless($treelet->[$i][0] eq 'L') { - unshift @stack, $treelet->[$i]; # recurse - next; - } - - - # By here, $treelet->[$i] is definitely an L node - my $ell = $treelet->[$i]; - DEBUG > 1 and print STDERR "Ogling L node $ell\n"; - - # bitch if it's empty - if( @{$ell} == 2 - or (@{$ell} == 3 and $ell->[2] eq '') - ) { - $self->whine( $start_line, "An empty L<>" ); - $treelet->[$i] = 'L<>'; # just make it a text node - next; # and move on - } - - if( (! ref $ell->[2] && $ell->[2] =~ /\A\s/) - ||(! ref $ell->[-1] && $ell->[-1] =~ /\s\z/) - ) { - $self->whine( $start_line, "L<> starts or ends with whitespace" ); - } - - # Catch URLs: - - # there are a number of possible cases: - # 1) text node containing url: http://foo.com - # -> [ 'http://foo.com' ] - # 2) text node containing url and text: foo|http://foo.com - # -> [ 'foo|http://foo.com' ] - # 3) text node containing url start: mailto:xEfoo.com - # -> [ 'mailto:x', [ E ... ], 'foo.com' ] - # 4) text node containing url start and text: foo|mailto:xEfoo.com - # -> [ 'foo|mailto:x', [ E ... ], 'foo.com' ] - # 5) other nodes containing text and url start: OE<39>Malley|http://foo.com - # -> [ 'O', [ E ... ], 'Malley', '|http://foo.com' ] - # ... etc. - - # anything before the url is part of the text. - # anything after it is part of the url. - # the url text node itself may contain parts of both. - - if (my ($url_index, $text_part, $url_part) = - # grep is no good here; we want to bail out immediately so that we can - # use $1, $2, etc. without having to do the match twice. - sub { - for (2..$#$ell) { - next if ref $ell->[$_]; - next unless $ell->[$_] =~ m/^(?:([^|]*)\|)?(\w+:[^:\s]\S*)$/s; - return ($_, $1, $2); - } - return; - }->() - ) { - $ell->[1]{'type'} = 'url'; - - my @text = @{$ell}[2..$url_index-1]; - push @text, $text_part if defined $text_part; - - my @url = @{$ell}[$url_index+1..$#$ell]; - unshift @url, $url_part; - - unless (@text) { - $ell->[1]{'content-implicit'} = 'yes'; - @text = @url; - } - - $ell->[1]{to} = Pod::Simple::LinkSection->new( - @url == 1 - ? $url[0] - : [ '', {}, @url ], - ); - - splice @$ell, 2, $#$ell, @text; - - next; - } - - # Catch some very simple and/or common cases - if(@{$ell} == 3 and ! ref $ell->[2]) { - my $it = $ell->[2]; - if($it =~ m{^[^/|]+[(][-a-zA-Z0-9]+[)]$}s) { # man sections - # Hopefully neither too broad nor too restrictive a RE - DEBUG > 1 and print STDERR "Catching \"$it\" as manpage link.\n"; - $ell->[1]{'type'} = 'man'; - # This's the only place where man links can get made. - $ell->[1]{'content-implicit'} = 'yes'; - $ell->[1]{'to' } = - Pod::Simple::LinkSection->new( $it ); # treelet! - - next; - } - if($it =~ m/^[^\/\|,\$\%\@\ \"\<\>\:\#\&\*\{\}\[\]\(\)]+(\:\:[^\/\|,\$\%\@\ \"\<\>\:\#\&\*\{\}\[\]\(\)]+)*$/s) { - # Extremely forgiving idea of what constitutes a bare - # modulename link like L or even L - DEBUG > 1 and print STDERR "Catching \"$it\" as ho-hum L link.\n"; - $ell->[1]{'type'} = 'pod'; - $ell->[1]{'content-implicit'} = 'yes'; - $ell->[1]{'to' } = - Pod::Simple::LinkSection->new( $it ); # treelet! - next; - } - # else fall thru... - } - - - - # ...Uhoh, here's the real L<...> parsing stuff... - # "With the ill behavior, with the ill behavior, with the ill behavior..." - - DEBUG > 1 and print STDERR "Running a real parse on this non-trivial L\n"; - - - my $link_text; # set to an arrayref if found - my @ell_content = @$ell; - splice @ell_content,0,2; # Knock off the 'L' and {} bits - - DEBUG > 3 and print STDERR " Ell content to start: ", - pretty(@ell_content), "\n"; - - - # Look for the "|" -- only in CHILDREN (not all underlings!) - # Like L - DEBUG > 3 and - print STDERR " Peering at L content for a '|' ...\n"; - for(my $j = 0; $j < @ell_content; ++$j) { - next if ref $ell_content[$j]; - DEBUG > 3 and - print STDERR " Peering at L-content text bit \"$ell_content[$j]\" for a '|'.\n"; - - if($ell_content[$j] =~ m/^([^\|]*)\|(.*)$/s) { - my @link_text = ($1); # might be 0-length - $ell_content[$j] = $2; # might be 0-length - - DEBUG > 3 and - print STDERR " FOUND a '|' in it. Splitting into [$1] + [$2]\n"; - - if ($link_text[0] =~ m{[|/]}) { - $self->whine( - $start_line, - "alternative text '$link_text[0]' contains non-escaped | or /" - ); - } - - unshift @link_text, splice @ell_content, 0, $j; - # leaving only things at J and after - @ell_content = grep ref($_)||length($_), @ell_content ; - $link_text = [grep ref($_)||length($_), @link_text ]; - DEBUG > 3 and printf - " So link text is %s\n and remaining ell content is %s\n", - pretty($link_text), pretty(@ell_content); - last; - } - } - - - # Now look for the "/" -- only in CHILDREN (not all underlings!) - # And afterward, anything left in @ell_content will be the raw name - # Like L - my $section_name; # set to arrayref if found - DEBUG > 3 and print STDERR " Peering at L-content for a '/' ...\n"; - for(my $j = 0; $j < @ell_content; ++$j) { - next if ref $ell_content[$j]; - DEBUG > 3 and - print STDERR " Peering at L-content text bit \"$ell_content[$j]\" for a '/'.\n"; - - if($ell_content[$j] =~ m/^([^\/]*)\/(.*)$/s) { - my @section_name = ($2); # might be 0-length - $ell_content[$j] = $1; # might be 0-length - - DEBUG > 3 and - print STDERR " FOUND a '/' in it.", - " Splitting to page [...$1] + section [$2...]\n"; - - push @section_name, splice @ell_content, 1+$j; - # leaving only things before and including J - - @ell_content = grep ref($_)||length($_), @ell_content ; - @section_name = grep ref($_)||length($_), @section_name ; - - # Turn L<.../"foo"> into L<.../foo> - if(@section_name - and !ref($section_name[0]) and !ref($section_name[-1]) - and $section_name[ 0] =~ m/^\"/s - and $section_name[-1] =~ m/\"$/s - and !( # catch weird degenerate case of L<"> ! - @section_name == 1 and $section_name[0] eq '"' - ) - ) { - $section_name[ 0] =~ s/^\"//s; - $section_name[-1] =~ s/\"$//s; - DEBUG > 3 and - print STDERR " Quotes removed: ", pretty(@section_name), "\n"; - } else { - DEBUG > 3 and - print STDERR " No need to remove quotes in ", pretty(@section_name), "\n"; - } - - $section_name = \@section_name; - last; - } - } - - # Turn L<"Foo Bar"> into L - if(!$section_name and @ell_content - and !ref($ell_content[0]) and !ref($ell_content[-1]) - and $ell_content[ 0] =~ m/^\"/s - and $ell_content[-1] =~ m/\"$/s - and !( # catch weird degenerate case of L<"> ! - @ell_content == 1 and $ell_content[0] eq '"' - ) - ) { - $section_name = [splice @ell_content]; - $section_name->[ 0] =~ s/^\"//s; - $section_name->[-1] =~ s/\"$//s; - } - - # Turn L into L. - if(!$section_name and !$link_text and @ell_content - and grep !ref($_) && m/ /s, @ell_content - ) { - $section_name = [splice @ell_content]; - # That's support for the now-deprecated syntax. - # (Maybe generate a warning eventually?) - # Note that it deliberately won't work on L<...|Foo Bar> - } - - - # Now make up the link_text - # L -> L - # L -> L<"Bar"|Bar> - # L -> L<"Bar" in Foo/Foo> - unless($link_text) { - $ell->[1]{'content-implicit'} = 'yes'; - $link_text = []; - push @$link_text, '"', @$section_name, '"' if $section_name; - - if(@ell_content) { - $link_text->[-1] .= ' in ' if $section_name; - push @$link_text, @ell_content; - } - } - - - # And the E resolver will have to deal with all our treeletty things: - - if(@ell_content == 1 and !ref($ell_content[0]) - and $ell_content[0] =~ m{^[^/]+[(][-a-zA-Z0-9]+[)]$}s - ) { - $ell->[1]{'type'} = 'man'; - DEBUG > 3 and print STDERR "Considering this ($ell_content[0]) a man link.\n"; - } else { - $ell->[1]{'type'} = 'pod'; - DEBUG > 3 and print STDERR "Considering this a pod link (not man or url).\n"; - } - - if( defined $section_name ) { - $ell->[1]{'section'} = Pod::Simple::LinkSection->new( - ['', {}, @$section_name] - ); - DEBUG > 3 and print STDERR "L-section content: ", pretty($ell->[1]{'section'}), "\n"; - } - - if( @ell_content ) { - $ell->[1]{'to'} = Pod::Simple::LinkSection->new( - ['', {}, @ell_content] - ); - DEBUG > 3 and print STDERR "L-to content: ", pretty($ell->[1]{'to'}), "\n"; - } - - # And update children to be the link-text: - @$ell = (@$ell[0,1], defined($link_text) ? splice(@$link_text) : ''); - - DEBUG > 2 and print STDERR "End of L-parsing for this node $treelet->[$i]\n"; - - unshift @stack, $treelet->[$i]; # might as well recurse - } - } - - return; -} - -# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -sub _treat_Es { - my($self,@stack) = @_; - - my($i, $treelet, $content, $replacer, $charnum); - my $start_line = $stack[0][1]{'start_line'}; - - # A recursive algorithm implemented iteratively! Whee! - - - # Has frightening side effects on L nodes' attributes. - - #my @ells_to_tweak; - - while($treelet = shift @stack) { - for(my $i = 2; $i < @$treelet; ++$i) { # iterate over children - next unless ref $treelet->[$i]; # text nodes are uninteresting - if($treelet->[$i][0] eq 'L') { - # SPECIAL STUFF for semi-processed L<>'s - - my $thing; - foreach my $attrname ('section', 'to') { - if(defined($thing = $treelet->[$i][1]{$attrname}) and ref $thing) { - unshift @stack, $thing; - DEBUG > 2 and print STDERR " Enqueuing ", - pretty( $treelet->[$i][1]{$attrname} ), - " as an attribute value to tweak.\n"; - } - } - - unshift @stack, $treelet->[$i]; # recurse - next; - } elsif($treelet->[$i][0] ne 'E') { - unshift @stack, $treelet->[$i]; # recurse - next; - } - - DEBUG > 1 and print STDERR "Ogling E node ", pretty($treelet->[$i]), "\n"; - - # bitch if it's empty - if( @{$treelet->[$i]} == 2 - or (@{$treelet->[$i]} == 3 and $treelet->[$i][2] eq '') - ) { - $self->whine( $start_line, "An empty E<>" ); - $treelet->[$i] = 'E<>'; # splice in a literal - next; - } - - # bitch if content is weird - unless(@{$treelet->[$i]} == 3 and !ref($content = $treelet->[$i][2])) { - $self->whine( $start_line, "An E<...> surrounding strange content" ); - $replacer = $treelet->[$i]; # scratch - splice(@$treelet, $i, 1, # fake out a literal - 'E<', - splice(@$replacer,2), # promote its content - '>' - ); - # Don't need to do --$i, as the 'E<' we just added isn't interesting. - next; - } - - DEBUG > 1 and print STDERR "Ogling E<$content>\n"; - - # XXX E<>'s contents *should* be a valid char in the scope of the current - # =encoding directive. Defaults to iso-8859-1, I believe. Fix this in the - # future sometime. - - $charnum = Pod::Escapes::e2charnum($content); - DEBUG > 1 and print STDERR " Considering E<$content> with char ", - defined($charnum) ? $charnum : "undef", ".\n"; - - if(!defined( $charnum )) { - DEBUG > 1 and print STDERR "I don't know how to deal with E<$content>.\n"; - $self->whine( $start_line, "Unknown E content in E<$content>" ); - $replacer = "E<$content>"; # better than nothing - } elsif($charnum >= 255 and !UNICODE) { - $replacer = ASCII ? "\xA4" : "?"; - DEBUG > 1 and print STDERR "This Perl version can't handle ", - "E<$content> (chr $charnum), so replacing with $replacer\n"; - } else { - $replacer = Pod::Escapes::e2char($content); - DEBUG > 1 and print STDERR " Replacing E<$content> with $replacer\n"; - } - - splice(@$treelet, $i, 1, $replacer); # no need to back up $i, tho - } - } - - return; -} - - -# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - -sub _treat_Ss { - my($self,$treelet) = @_; - - _change_S_to_nbsp($treelet,0) if $self->{'nbsp_for_S'}; - - # TODO: or a change_nbsp_to_S - # Normalizing nbsp's to S is harder: for each text node, make S content - # out of anything matching m/([^ \xA0]*(?:\xA0+[^ \xA0]*)+)/ - - - return; -} - -sub _change_S_to_nbsp { # a recursive function - # Sanely assumes that the top node in the excursion won't be an S node. - my($treelet, $in_s) = @_; - - my $is_s = ('S' eq $treelet->[0]); - $in_s ||= $is_s; # So in_s is on either by this being an S element, - # or by an ancestor being an S element. - - for(my $i = 2; $i < @$treelet; ++$i) { - if(ref $treelet->[$i]) { - if( _change_S_to_nbsp( $treelet->[$i], $in_s ) ) { - my $to_pull_up = $treelet->[$i]; - splice @$to_pull_up,0,2; # ...leaving just its content - splice @$treelet, $i, 1, @$to_pull_up; # Pull up content - $i += @$to_pull_up - 1; # Make $i skip the pulled-up stuff - } - } else { - $treelet->[$i] =~ s/\s/$Pod::Simple::nbsp/g if $in_s; - - # Note that if you apply nbsp_for_S to text, and so turn - # "foo S quux" into "foo bar faz quux", you - # end up with something that fails to say "and don't hyphenate - # any part of 'bar baz'". However, hyphenation is such a vexing - # problem anyway, that most Pod renderers just don't render it - # at all. But if you do want to implement hyphenation, I guess - # that you'd better have nbsp_for_S off. - } - } - - return $is_s; -} - -#----------------------------------------------------------------------------- - -sub _accessorize { # A simple-minded method-maker - no strict 'refs'; - foreach my $attrname (@_) { - next if $attrname =~ m/::/; # a hack - *{caller() . '::' . $attrname} = sub { - use strict; - $Carp::CarpLevel = 1, Carp::croak( - "Accessor usage: \$obj->$attrname() or \$obj->$attrname(\$new_value)" - ) unless (@_ == 1 or @_ == 2) and ref $_[0]; - (@_ == 1) ? $_[0]->{$attrname} - : ($_[0]->{$attrname} = $_[1]); - }; - } - # Ya know, they say accessories make the ensemble! - return; -} - -# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -#============================================================================= - -sub filter { - my($class, $source) = @_; - my $new = $class->new; - $new->output_fh(*STDOUT{IO}); - - if(ref($source || '') eq 'SCALAR') { - $new->parse_string_document( $$source ); - } elsif(ref($source)) { # it's a file handle - $new->parse_file($source); - } else { # it's a filename - $new->parse_file($source); - } - - return $new; -} - - -#----------------------------------------------------------------------------- - -sub _out { - # For use in testing: Class->_out($source) - # returns the transformation of $source - - my $class = shift(@_); - - my $mutor = shift(@_) if @_ and ref($_[0] || '') eq 'CODE'; - - DEBUG and print STDERR "\n\n", '#' x 76, - "\nAbout to parse source: {{\n$_[0]\n}}\n\n"; - - - my $parser = ref $class && $class->isa(__PACKAGE__) ? $class : $class->new; - $parser->hide_line_numbers(1); - - my $out = ''; - $parser->output_string( \$out ); - DEBUG and print STDERR " _out to ", \$out, "\n"; - - $mutor->($parser) if $mutor; - - $parser->parse_string_document( $_[0] ); - # use Data::Dumper; print STDERR Dumper($parser), "\n"; - return $out; -} - - -sub _duo { - # For use in testing: Class->_duo($source1, $source2) - # returns the parse trees of $source1 and $source2. - # Good in things like: &ok( Class->duo(... , ...) ); - - my $class = shift(@_); - - Carp::croak "But $class->_duo is useful only in list context!" - unless wantarray; - - my $mutor = shift(@_) if @_ and ref($_[0] || '') eq 'CODE'; - - Carp::croak "But $class->_duo takes two parameters, not: @_" - unless @_ == 2; - - my(@out); - - while( @_ ) { - my $parser = $class->new; - - push @out, ''; - $parser->output_string( \( $out[-1] ) ); - - DEBUG and print STDERR " _duo out to ", $parser->output_string(), - " = $parser->{'output_string'}\n"; - - $parser->hide_line_numbers(1); - $mutor->($parser) if $mutor; - $parser->parse_string_document( shift( @_ ) ); - # use Data::Dumper; print STDERR Dumper($parser), "\n"; - } - - return @out; -} - - - -#----------------------------------------------------------------------------- -1; -__END__ - -TODO: -A start_formatting_code and end_formatting_code methods, which in the -base class call start_L, end_L, start_C, end_C, etc., if they are -defined. - -have the POD FORMATTING ERRORS section note the localtime, and the -version of Pod::Simple. - -option to delete all Es? -option to scream if under-0x20 literals are found in the input, or -under-E<32> E codes are found in the tree. And ditto \x7f-\x9f - -Option to turn highbit characters into their compromised form? (applies -to E parsing too) - -TODO: BOM/encoding things. - -TODO: ascii-compat things in the XML classes? - diff --git a/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/BlackBox.pm b/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/BlackBox.pm deleted file mode 100644 index 39acce60..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/BlackBox.pm +++ /dev/null @@ -1,2129 +0,0 @@ -#line 1 "Pod/Simple/BlackBox.pm" -package Pod::Simple::BlackBox; -# -# "What's in the box?" "Pain." -# -########################################################################### -# -# This is where all the scary things happen: parsing lines into -# paragraphs; and then into directives, verbatims, and then also -# turning formatting sequences into treelets. -# -# Are you really sure you want to read this code? -# -#----------------------------------------------------------------------------- -# -# The basic work of this module Pod::Simple::BlackBox is doing the dirty work -# of parsing Pod into treelets (generally one per non-verbatim paragraph), and -# to call the proper callbacks on the treelets. -# -# Every node in a treelet is a ['name', {attrhash}, ...children...] - -use integer; # vroom! -use strict; -use Carp (); -use vars qw($VERSION ); -$VERSION = '3.35'; -#use constant DEBUG => 7; -BEGIN { - require Pod::Simple; - *DEBUG = \&Pod::Simple::DEBUG unless defined &DEBUG -} - -# Matches a character iff the character will have a different meaning -# if we choose CP1252 vs UTF-8 if there is no =encoding line. -# This is broken for early Perls on non-ASCII platforms. -my $non_ascii_re = eval "qr/[[:^ascii:]]/"; -$non_ascii_re = qr/[\x80-\xFF]/ if ! defined $non_ascii_re; - -my $utf8_bom; -if (($] ge 5.007_003)) { - $utf8_bom = "\x{FEFF}"; - utf8::encode($utf8_bom); -} else { - $utf8_bom = "\xEF\xBB\xBF"; # No EBCDIC BOM detection for early Perls. -} - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -sub parse_line { shift->parse_lines(@_) } # alias - -# - - - Turn back now! Run away! - - - - -sub parse_lines { # Usage: $parser->parse_lines(@lines) - # an undef means end-of-stream - my $self = shift; - - my $code_handler = $self->{'code_handler'}; - my $cut_handler = $self->{'cut_handler'}; - my $wl_handler = $self->{'whiteline_handler'}; - $self->{'line_count'} ||= 0; - - my $scratch; - - DEBUG > 4 and - print STDERR "# Parsing starting at line ", $self->{'line_count'}, ".\n"; - - DEBUG > 5 and - print STDERR "# About to parse lines: ", - join(' ', map defined($_) ? "[$_]" : "EOF", @_), "\n"; - - my $paras = ($self->{'paras'} ||= []); - # paragraph buffer. Because we need to defer processing of =over - # directives and verbatim paragraphs. We call _ponder_paragraph_buffer - # to process this. - - $self->{'pod_para_count'} ||= 0; - - my $line; - foreach my $source_line (@_) { - if( $self->{'source_dead'} ) { - DEBUG > 4 and print STDERR "# Source is dead.\n"; - last; - } - - unless( defined $source_line ) { - DEBUG > 4 and print STDERR "# Undef-line seen.\n"; - - push @$paras, ['~end', {'start_line' => $self->{'line_count'}}]; - push @$paras, $paras->[-1], $paras->[-1]; - # So that it definitely fills the buffer. - $self->{'source_dead'} = 1; - $self->_ponder_paragraph_buffer; - next; - } - - - if( $self->{'line_count'}++ ) { - ($line = $source_line) =~ tr/\n\r//d; - # If we don't have two vars, we'll end up with that there - # tr/// modding the (potentially read-only) original source line! - - } else { - DEBUG > 2 and print STDERR "First line: [$source_line]\n"; - - if( ($line = $source_line) =~ s/^$utf8_bom//s ) { - DEBUG and print STDERR "UTF-8 BOM seen. Faking a '=encoding utf8'.\n"; - $self->_handle_encoding_line( "=encoding utf8" ); - delete $self->{'_processed_encoding'}; - $line =~ tr/\n\r//d; - - } elsif( $line =~ s/^\xFE\xFF//s ) { - DEBUG and print STDERR "Big-endian UTF-16 BOM seen. Aborting parsing.\n"; - $self->scream( - $self->{'line_count'}, - "UTF16-BE Byte Encoding Mark found; but Pod::Simple v$Pod::Simple::VERSION doesn't implement UTF16 yet." - ); - splice @_; - push @_, undef; - next; - - # TODO: implement somehow? - - } elsif( $line =~ s/^\xFF\xFE//s ) { - DEBUG and print STDERR "Little-endian UTF-16 BOM seen. Aborting parsing.\n"; - $self->scream( - $self->{'line_count'}, - "UTF16-LE Byte Encoding Mark found; but Pod::Simple v$Pod::Simple::VERSION doesn't implement UTF16 yet." - ); - splice @_; - push @_, undef; - next; - - # TODO: implement somehow? - - } else { - DEBUG > 2 and print STDERR "First line is BOM-less.\n"; - ($line = $source_line) =~ tr/\n\r//d; - } - } - - if(!$self->{'parse_characters'} && !$self->{'encoding'} - && ($self->{'in_pod'} || $line =~ /^=/s) - && $line =~ /$non_ascii_re/ - ) { - - my $encoding; - - # No =encoding line, and we are at the first line in the input that - # contains a non-ascii byte, that is one whose meaning varies depending - # on whether the file is encoded in UTF-8 or CP1252, which are the two - # possibilities permitted by the pod spec. (ASCII is assumed if the - # file only contains ASCII bytes.) In order to process this line, we - # need to figure out what encoding we will use for the file. - # - # Strictly speaking ISO 8859-1 (Latin 1) refers to the code points - # 160-255, but it is used here, as it often colloquially is, to refer to - # the complete set of code points 0-255, including ASCII (0-127), the C1 - # controls (128-159), and strict Latin 1 (160-255). - # - # CP1252 is effectively a superset of Latin 1, because it differs only - # from colloquial 8859-1 in the C1 controls, which are very unlikely to - # actually be present in 8859-1 files, so can be used for other purposes - # without conflict. CP 1252 uses most of them for graphic characters. - # - # Note that all ASCII-range bytes represent their corresponding code - # points in CP1252 and UTF-8. In ASCII platform UTF-8 all other code - # points require multiple (non-ASCII) bytes to represent. (A separate - # paragraph for EBCDIC is below.) The multi-byte representation is - # quite structured. If we find an isolated byte that requires multiple - # bytes to represent in UTF-8, we know that the encoding is not UTF-8. - # If we find a sequence of bytes that violates the UTF-8 structure, we - # also can presume the encoding isn't UTF-8, and hence must be 1252. - # - # But there are ambiguous cases where we could guess wrong. If so, the - # user will end up having to supply an =encoding line. We use all - # readily available information to improve our chances of guessing - # right. The odds of something not being UTF-8, but still passing a - # UTF-8 validity test go down very rapidly with increasing length of the - # sequence. Therefore we look at all the maximal length non-ascii - # sequences on the line. If any of the sequences can't be UTF-8, we - # quit there and choose CP1252. If all could be UTF-8, we guess UTF-8. - # - # On EBCDIC platforms, the situation is somewhat different. In - # UTF-EBCDIC, not only do ASCII-range bytes represent their code points, - # but so do the bytes that are for the C1 controls. Recall that these - # correspond to the unused portion of 8859-1 that 1252 mostly takes - # over. That means that there are fewer code points that are - # represented by multi-bytes. But, note that the these controls are - # very unlikely to be in pod text. So if we encounter one of them, it - # means that it is quite likely CP1252 and not UTF-8. The net result is - # the same code below is used for both platforms. - while ($line =~ m/($non_ascii_re+)/g) { - my $non_ascii_seq = $1; - - if (length $non_ascii_seq == 1) { - $encoding = 'CP1252'; - goto guessed; - } elsif ($] ge 5.007_003) { - - # On Perls that have this function, we can see if the sequence is - # valid UTF-8 or not. - my $is_utf8; - { - no warnings 'utf8'; - $is_utf8 = utf8::decode($non_ascii_seq); - } - if (! $is_utf8) { - $encoding = 'CP1252'; - goto guessed; - } - } elsif (ord("A") == 65) { # An early Perl, ASCII platform - - # Without utf8::decode, it's a lot harder to do a rigorous check - # (though some early releases had a different function that - # accomplished the same thing). Since these are ancient Perls, not - # likely to be in use today, we take the easy way out, and look at - # just the first two bytes of the sequence to see if they are the - # start of a UTF-8 character. In ASCII UTF-8, continuation bytes - # must be between 0x80 and 0xBF. Start bytes can range from 0xC2 - # through 0xFF, but anything above 0xF4 is not Unicode, and hence - # extremely unlikely to be in a pod. - if ($non_ascii_seq !~ /^[\xC2-\xF4][\x80-\xBF]/) { - $encoding = 'CP1252'; - goto guessed; - } - - # We don't bother doing anything special for EBCDIC on early Perls. - # If there is a solitary variant, CP1252 will be chosen; otherwise - # UTF-8. - } - } # End of loop through all variant sequences on the line - - # All sequences in the line could be UTF-8. Guess that. - $encoding = 'UTF-8'; - - guessed: - $self->_handle_encoding_line( "=encoding $encoding" ); - delete $self->{'_processed_encoding'}; - $self->{'_transcoder'} && $self->{'_transcoder'}->($line); - - my ($word) = $line =~ /(\S*$non_ascii_re\S*)/; - - $self->whine( - $self->{'line_count'}, - "Non-ASCII character seen before =encoding in '$word'. Assuming $encoding" - ); - } - - DEBUG > 5 and print STDERR "# Parsing line: [$line]\n"; - - if(!$self->{'in_pod'}) { - if($line =~ m/^=([a-zA-Z][a-zA-Z0-9]*)(?:\s|$)/s) { - if($1 eq 'cut') { - $self->scream( - $self->{'line_count'}, - "=cut found outside a pod block. Skipping to next block." - ); - - ## Before there were errata sections in the world, it was - ## least-pessimal to abort processing the file. But now we can - ## just barrel on thru (but still not start a pod block). - #splice @_; - #push @_, undef; - - next; - } else { - $self->{'in_pod'} = $self->{'start_of_pod_block'} - = $self->{'last_was_blank'} = 1; - # And fall thru to the pod-mode block further down - } - } else { - DEBUG > 5 and print STDERR "# It's a code-line.\n"; - $code_handler->(map $_, $line, $self->{'line_count'}, $self) - if $code_handler; - # Note: this may cause code to be processed out of order relative - # to pods, but in order relative to cuts. - - # Note also that we haven't yet applied the transcoding to $line - # by time we call $code_handler! - - if( $line =~ m/^#\s*line\s+(\d+)\s*(?:\s"([^"]+)")?\s*$/ ) { - # That RE is from perlsyn, section "Plain Old Comments (Not!)", - #$fname = $2 if defined $2; - #DEBUG > 1 and defined $2 and print STDERR "# Setting fname to \"$fname\"\n"; - DEBUG > 1 and print STDERR "# Setting nextline to $1\n"; - $self->{'line_count'} = $1 - 1; - } - - next; - } - } - - # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - # Else we're in pod mode: - - # Apply any necessary transcoding: - $self->{'_transcoder'} && $self->{'_transcoder'}->($line); - - # HERE WE CATCH =encoding EARLY! - if( $line =~ m/^=encoding\s+\S+\s*$/s ) { - next if $self->parse_characters; # Ignore this line - $line = $self->_handle_encoding_line( $line ); - } - - if($line =~ m/^=cut/s) { - # here ends the pod block, and therefore the previous pod para - DEBUG > 1 and print STDERR "Noting =cut at line ${$self}{'line_count'}\n"; - $self->{'in_pod'} = 0; - # ++$self->{'pod_para_count'}; - $self->_ponder_paragraph_buffer(); - # by now it's safe to consider the previous paragraph as done. - $cut_handler->(map $_, $line, $self->{'line_count'}, $self) - if $cut_handler; - - # TODO: add to docs: Note: this may cause cuts to be processed out - # of order relative to pods, but in order relative to code. - - } elsif($line =~ m/^(\s*)$/s) { # it's a blank line - if (defined $1 and $1 =~ /[^\S\r\n]/) { # it's a white line - $wl_handler->(map $_, $line, $self->{'line_count'}, $self) - if $wl_handler; - } - - if(!$self->{'start_of_pod_block'} and @$paras and $paras->[-1][0] eq '~Verbatim') { - DEBUG > 1 and print STDERR "Saving blank line at line ${$self}{'line_count'}\n"; - push @{$paras->[-1]}, $line; - } # otherwise it's not interesting - - if(!$self->{'start_of_pod_block'} and !$self->{'last_was_blank'}) { - DEBUG > 1 and print STDERR "Noting para ends with blank line at ${$self}{'line_count'}\n"; - } - - $self->{'last_was_blank'} = 1; - - } elsif($self->{'last_was_blank'}) { # A non-blank line starting a new para... - - if($line =~ m/^(=[a-zA-Z][a-zA-Z0-9]*)(?:\s+|$)(.*)/s) { - # THIS IS THE ONE PLACE WHERE WE CONSTRUCT NEW DIRECTIVE OBJECTS - my $new = [$1, {'start_line' => $self->{'line_count'}}, $2]; - # Note that in "=head1 foo", the WS is lost. - # Example: ['=head1', {'start_line' => 123}, ' foo'] - - ++$self->{'pod_para_count'}; - - $self->_ponder_paragraph_buffer(); - # by now it's safe to consider the previous paragraph as done. - - push @$paras, $new; # the new incipient paragraph - DEBUG > 1 and print STDERR "Starting new ${$paras}[-1][0] para at line ${$self}{'line_count'}\n"; - - } elsif($line =~ m/^\s/s) { - - if(!$self->{'start_of_pod_block'} and @$paras and $paras->[-1][0] eq '~Verbatim') { - DEBUG > 1 and print STDERR "Resuming verbatim para at line ${$self}{'line_count'}\n"; - push @{$paras->[-1]}, $line; - } else { - ++$self->{'pod_para_count'}; - $self->_ponder_paragraph_buffer(); - # by now it's safe to consider the previous paragraph as done. - DEBUG > 1 and print STDERR "Starting verbatim para at line ${$self}{'line_count'}\n"; - push @$paras, ['~Verbatim', {'start_line' => $self->{'line_count'}}, $line]; - } - } else { - ++$self->{'pod_para_count'}; - $self->_ponder_paragraph_buffer(); - # by now it's safe to consider the previous paragraph as done. - push @$paras, ['~Para', {'start_line' => $self->{'line_count'}}, $line]; - DEBUG > 1 and print STDERR "Starting plain para at line ${$self}{'line_count'}\n"; - } - $self->{'last_was_blank'} = $self->{'start_of_pod_block'} = 0; - - } else { - # It's a non-blank line /continuing/ the current para - if(@$paras) { - DEBUG > 2 and print STDERR "Line ${$self}{'line_count'} continues current paragraph\n"; - push @{$paras->[-1]}, $line; - } else { - # Unexpected case! - die "Continuing a paragraph but \@\$paras is empty?"; - } - $self->{'last_was_blank'} = $self->{'start_of_pod_block'} = 0; - } - - } # ends the big while loop - - DEBUG > 1 and print STDERR (pretty(@$paras), "\n"); - return $self; -} - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -sub _handle_encoding_line { - my($self, $line) = @_; - - return if $self->parse_characters; - - # The point of this routine is to set $self->{'_transcoder'} as indicated. - - return $line unless $line =~ m/^=encoding\s+(\S+)\s*$/s; - DEBUG > 1 and print STDERR "Found an encoding line \"=encoding $1\"\n"; - - my $e = $1; - my $orig = $e; - push @{ $self->{'encoding_command_reqs'} }, "=encoding $orig"; - - my $enc_error; - - # Cf. perldoc Encode and perldoc Encode::Supported - - require Pod::Simple::Transcode; - - if( $self->{'encoding'} ) { - my $norm_current = $self->{'encoding'}; - my $norm_e = $e; - foreach my $that ($norm_current, $norm_e) { - $that = lc($that); - $that =~ s/[-_]//g; - } - if($norm_current eq $norm_e) { - DEBUG > 1 and print STDERR "The '=encoding $orig' line is ", - "redundant. ($norm_current eq $norm_e). Ignoring.\n"; - $enc_error = ''; - # But that doesn't necessarily mean that the earlier one went okay - } else { - $enc_error = "Encoding is already set to " . $self->{'encoding'}; - DEBUG > 1 and print STDERR $enc_error; - } - } elsif ( - # OK, let's turn on the encoding - do { - DEBUG > 1 and print STDERR " Setting encoding to $e\n"; - $self->{'encoding'} = $e; - 1; - } - and $e eq 'HACKRAW' - ) { - DEBUG and print STDERR " Putting in HACKRAW (no-op) encoding mode.\n"; - - } elsif( Pod::Simple::Transcode::->encoding_is_available($e) ) { - - die($enc_error = "WHAT? _transcoder is already set?!") - if $self->{'_transcoder'}; # should never happen - require Pod::Simple::Transcode; - $self->{'_transcoder'} = Pod::Simple::Transcode::->make_transcoder($e); - eval { - my @x = ('', "abc", "123"); - $self->{'_transcoder'}->(@x); - }; - $@ && die( $enc_error = - "Really unexpected error setting up encoding $e: $@\nAborting" - ); - $self->{'detected_encoding'} = $e; - - } else { - my @supported = Pod::Simple::Transcode::->all_encodings; - - # Note unsupported, and complain - DEBUG and print STDERR " Encoding [$e] is unsupported.", - "\nSupporteds: @supported\n"; - my $suggestion = ''; - - # Look for a near match: - my $norm = lc($e); - $norm =~ tr[-_][]d; - my $n; - foreach my $enc (@supported) { - $n = lc($enc); - $n =~ tr[-_][]d; - next unless $n eq $norm; - $suggestion = " (Maybe \"$e\" should be \"$enc\"?)"; - last; - } - my $encmodver = Pod::Simple::Transcode::->encmodver; - $enc_error = join '' => - "This document probably does not appear as it should, because its ", - "\"=encoding $e\" line calls for an unsupported encoding.", - $suggestion, " [$encmodver\'s supported encodings are: @supported]" - ; - - $self->scream( $self->{'line_count'}, $enc_error ); - } - push @{ $self->{'encoding_command_statuses'} }, $enc_error; - if (defined($self->{'_processed_encoding'})) { - # Double declaration. - $self->scream( $self->{'line_count'}, 'Cannot have multiple =encoding directives'); - } - $self->{'_processed_encoding'} = $orig; - - return $line; -} - -# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -sub _handle_encoding_second_level { - # By time this is called, the encoding (if well formed) will already - # have been acted one. - my($self, $para) = @_; - my @x = @$para; - my $content = join ' ', splice @x, 2; - $content =~ s/^\s+//s; - $content =~ s/\s+$//s; - - DEBUG > 2 and print STDERR "Ogling encoding directive: =encoding $content\n"; - - if (defined($self->{'_processed_encoding'})) { - #if($content ne $self->{'_processed_encoding'}) { - # Could it happen? - #} - delete $self->{'_processed_encoding'}; - # It's already been handled. Check for errors. - if(! $self->{'encoding_command_statuses'} ) { - DEBUG > 2 and print STDERR " CRAZY ERROR: It wasn't really handled?!\n"; - } elsif( $self->{'encoding_command_statuses'}[-1] ) { - $self->whine( $para->[1]{'start_line'}, - sprintf "Couldn't do %s: %s", - $self->{'encoding_command_reqs' }[-1], - $self->{'encoding_command_statuses'}[-1], - ); - } else { - DEBUG > 2 and print STDERR " (Yup, it was successfully handled already.)\n"; - } - - } else { - # Otherwise it's a syntax error - $self->whine( $para->[1]{'start_line'}, - "Invalid =encoding syntax: $content" - ); - } - - return; -} - -#~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~`~` - -{ -my $m = -321; # magic line number - -sub _gen_errata { - my $self = $_[0]; - # Return 0 or more fake-o paragraphs explaining the accumulated - # errors on this document. - - return() unless $self->{'errata'} and keys %{$self->{'errata'}}; - - my @out; - - foreach my $line (sort {$a <=> $b} keys %{$self->{'errata'}}) { - push @out, - ['=item', {'start_line' => $m}, "Around line $line:"], - map( ['~Para', {'start_line' => $m, '~cooked' => 1}, - #['~Top', {'start_line' => $m}, - $_ - #] - ], - @{$self->{'errata'}{$line}} - ) - ; - } - - # TODO: report of unknown entities? unrenderable characters? - - unshift @out, - ['=head1', {'start_line' => $m, 'errata' => 1}, 'POD ERRORS'], - ['~Para', {'start_line' => $m, '~cooked' => 1, 'errata' => 1}, - "Hey! ", - ['B', {}, - 'The above document had some coding errors, which are explained below:' - ] - ], - ['=over', {'start_line' => $m, 'errata' => 1}, ''], - ; - - push @out, - ['=back', {'start_line' => $m, 'errata' => 1}, ''], - ; - - DEBUG and print STDERR "\n<<\n", pretty(\@out), "\n>>\n\n"; - - return @out; -} - -} - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -############################################################################## -## -## stop reading now stop reading now stop reading now stop reading now stop -## -## HERE IT BECOMES REALLY SCARY -## -## stop reading now stop reading now stop reading now stop reading now stop -## -############################################################################## - -sub _ponder_paragraph_buffer { - - # Para-token types as found in the buffer. - # ~Verbatim, ~Para, ~end, =head1..4, =for, =begin, =end, - # =over, =back, =item - # and the null =pod (to be complained about if over one line) - # - # "~data" paragraphs are something we generate at this level, depending on - # a currently open =over region - - # Events fired: Begin and end for: - # directivename (like head1 .. head4), item, extend, - # for (from =begin...=end, =for), - # over-bullet, over-number, over-text, over-block, - # item-bullet, item-number, item-text, - # Document, - # Data, Para, Verbatim - # B, C, longdirname (TODO -- wha?), etc. for all directives - # - - my $self = $_[0]; - my $paras; - return unless @{$paras = $self->{'paras'}}; - my $curr_open = ($self->{'curr_open'} ||= []); - - my $scratch; - - DEBUG > 10 and print STDERR "# Paragraph buffer: <<", pretty($paras), ">>\n"; - - # We have something in our buffer. So apparently the document has started. - unless($self->{'doc_has_started'}) { - $self->{'doc_has_started'} = 1; - - my $starting_contentless; - $starting_contentless = - ( - !@$curr_open - and @$paras and ! grep $_->[0] ne '~end', @$paras - # i.e., if the paras is all ~ends - ) - ; - DEBUG and print STDERR "# Starting ", - $starting_contentless ? 'contentless' : 'contentful', - " document\n" - ; - - $self->_handle_element_start( - ($scratch = 'Document'), - { - 'start_line' => $paras->[0][1]{'start_line'}, - $starting_contentless ? ( 'contentless' => 1 ) : (), - }, - ); - } - - my($para, $para_type); - while(@$paras) { - last if @$paras == 1 and - ( $paras->[0][0] eq '=over' or $paras->[0][0] eq '~Verbatim' - or $paras->[0][0] eq '=item' ) - ; - # Those're the three kinds of paragraphs that require lookahead. - # Actually, an "=item Foo" inside an region - # and any =item inside an region (rare) - # don't require any lookahead, but all others (bullets - # and numbers) do. - -# TODO: whinge about many kinds of directives in non-resolving =for regions? -# TODO: many? like what? =head1 etc? - - $para = shift @$paras; - $para_type = $para->[0]; - - DEBUG > 1 and print STDERR "Pondering a $para_type paragraph, given the stack: (", - $self->_dump_curr_open(), ")\n"; - - if($para_type eq '=for') { - next if $self->_ponder_for($para,$curr_open,$paras); - - } elsif($para_type eq '=begin') { - next if $self->_ponder_begin($para,$curr_open,$paras); - - } elsif($para_type eq '=end') { - next if $self->_ponder_end($para,$curr_open,$paras); - - } elsif($para_type eq '~end') { # The virtual end-document signal - next if $self->_ponder_doc_end($para,$curr_open,$paras); - } - - - # ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ - #~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ - if(grep $_->[1]{'~ignore'}, @$curr_open) { - DEBUG > 1 and - print STDERR "Skipping $para_type paragraph because in ignore mode.\n"; - next; - } - #~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ - # ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ - - if($para_type eq '=pod') { - $self->_ponder_pod($para,$curr_open,$paras); - - } elsif($para_type eq '=over') { - next if $self->_ponder_over($para,$curr_open,$paras); - - } elsif($para_type eq '=back') { - next if $self->_ponder_back($para,$curr_open,$paras); - - } else { - - # All non-magical codes!!! - - # Here we start using $para_type for our own twisted purposes, to - # mean how it should get treated, not as what the element name - # should be. - - DEBUG > 1 and print STDERR "Pondering non-magical $para_type\n"; - - my $i; - - # Enforce some =headN discipline - if($para_type =~ m/^=head\d$/s - and ! $self->{'accept_heads_anywhere'} - and @$curr_open - and $curr_open->[-1][0] eq '=over' - ) { - DEBUG > 2 and print STDERR "'=$para_type' inside an '=over'!\n"; - $self->whine( - $para->[1]{'start_line'}, - "You forgot a '=back' before '$para_type'" - ); - unshift @$paras, ['=back', {}, ''], $para; # close the =over - next; - } - - - if($para_type eq '=item') { - - my $over; - unless(@$curr_open and - $over = (grep { $_->[0] eq '=over' } @$curr_open)[-1]) { - $self->whine( - $para->[1]{'start_line'}, - "'=item' outside of any '=over'" - ); - unshift @$paras, - ['=over', {'start_line' => $para->[1]{'start_line'}}, ''], - $para - ; - next; - } - - - my $over_type = $over->[1]{'~type'}; - - if(!$over_type) { - # Shouldn't happen1 - die "Typeless over in stack, starting at line " - . $over->[1]{'start_line'}; - - } elsif($over_type eq 'block') { - unless($curr_open->[-1][1]{'~bitched_about'}) { - $curr_open->[-1][1]{'~bitched_about'} = 1; - $self->whine( - $curr_open->[-1][1]{'start_line'}, - "You can't have =items (as at line " - . $para->[1]{'start_line'} - . ") unless the first thing after the =over is an =item" - ); - } - # Just turn it into a paragraph and reconsider it - $para->[0] = '~Para'; - unshift @$paras, $para; - next; - - } elsif($over_type eq 'text') { - my $item_type = $self->_get_item_type($para); - # That kills the content of the item if it's a number or bullet. - DEBUG and print STDERR " Item is of type ", $para->[0], " under $over_type\n"; - - if($item_type eq 'text') { - # Nothing special needs doing for 'text' - } elsif($item_type eq 'number' or $item_type eq 'bullet') { - $self->whine( - $para->[1]{'start_line'}, - "Expected text after =item, not a $item_type" - ); - # Undo our clobbering: - push @$para, $para->[1]{'~orig_content'}; - delete $para->[1]{'number'}; - # Only a PROPER item-number element is allowed - # to have a number attribute. - } else { - die "Unhandled item type $item_type"; # should never happen - } - - # =item-text thingies don't need any assimilation, it seems. - - } elsif($over_type eq 'number') { - my $item_type = $self->_get_item_type($para); - # That kills the content of the item if it's a number or bullet. - DEBUG and print STDERR " Item is of type ", $para->[0], " under $over_type\n"; - - my $expected_value = ++ $curr_open->[-1][1]{'~counter'}; - - if($item_type eq 'bullet') { - # Hm, it's not numeric. Correct for this. - $para->[1]{'number'} = $expected_value; - $self->whine( - $para->[1]{'start_line'}, - "Expected '=item $expected_value'" - ); - push @$para, $para->[1]{'~orig_content'}; - # restore the bullet, blocking the assimilation of next para - - } elsif($item_type eq 'text') { - # Hm, it's not numeric. Correct for this. - $para->[1]{'number'} = $expected_value; - $self->whine( - $para->[1]{'start_line'}, - "Expected '=item $expected_value'" - ); - # Text content will still be there and will block next ~Para - - } elsif($item_type ne 'number') { - die "Unknown item type $item_type"; # should never happen - - } elsif($expected_value == $para->[1]{'number'}) { - DEBUG > 1 and print STDERR " Numeric item has the expected value of $expected_value\n"; - - } else { - DEBUG > 1 and print STDERR " Numeric item has ", $para->[1]{'number'}, - " instead of the expected value of $expected_value\n"; - $self->whine( - $para->[1]{'start_line'}, - "You have '=item " . $para->[1]{'number'} . - "' instead of the expected '=item $expected_value'" - ); - $para->[1]{'number'} = $expected_value; # correcting!! - } - - if(@$para == 2) { - # For the cases where we /didn't/ push to @$para - if($paras->[0][0] eq '~Para') { - DEBUG and print STDERR "Assimilating following ~Para content into $over_type item\n"; - push @$para, splice @{shift @$paras},2; - } else { - DEBUG and print STDERR "Can't assimilate following ", $paras->[0][0], "\n"; - push @$para, ''; # Just so it's not contentless - } - } - - - } elsif($over_type eq 'bullet') { - my $item_type = $self->_get_item_type($para); - # That kills the content of the item if it's a number or bullet. - DEBUG and print STDERR " Item is of type ", $para->[0], " under $over_type\n"; - - if($item_type eq 'bullet') { - # as expected! - - if( $para->[1]{'~_freaky_para_hack'} ) { - DEBUG and print STDERR "Accomodating '=item * Foo' tolerance hack.\n"; - push @$para, delete $para->[1]{'~_freaky_para_hack'}; - } - - } elsif($item_type eq 'number') { - $self->whine( - $para->[1]{'start_line'}, - "Expected '=item *'" - ); - push @$para, $para->[1]{'~orig_content'}; - # and block assimilation of the next paragraph - delete $para->[1]{'number'}; - # Only a PROPER item-number element is allowed - # to have a number attribute. - } elsif($item_type eq 'text') { - $self->whine( - $para->[1]{'start_line'}, - "Expected '=item *'" - ); - # But doesn't need processing. But it'll block assimilation - # of the next para. - } else { - die "Unhandled item type $item_type"; # should never happen - } - - if(@$para == 2) { - # For the cases where we /didn't/ push to @$para - if($paras->[0][0] eq '~Para') { - DEBUG and print STDERR "Assimilating following ~Para content into $over_type item\n"; - push @$para, splice @{shift @$paras},2; - } else { - DEBUG and print STDERR "Can't assimilate following ", $paras->[0][0], "\n"; - push @$para, ''; # Just so it's not contentless - } - } - - } else { - die "Unhandled =over type \"$over_type\"?"; - # Shouldn't happen! - } - - $para_type = 'Plain'; - $para->[0] .= '-' . $over_type; - # Whew. Now fall thru and process it. - - - } elsif($para_type eq '=extend') { - # Well, might as well implement it here. - $self->_ponder_extend($para); - next; # and skip - } elsif($para_type eq '=encoding') { - # Not actually acted on here, but we catch errors here. - $self->_handle_encoding_second_level($para); - next unless $self->keep_encoding_directive; - $para_type = 'Plain'; - } elsif($para_type eq '~Verbatim') { - $para->[0] = 'Verbatim'; - $para_type = '?Verbatim'; - } elsif($para_type eq '~Para') { - $para->[0] = 'Para'; - $para_type = '?Plain'; - } elsif($para_type eq 'Data') { - $para->[0] = 'Data'; - $para_type = '?Data'; - } elsif( $para_type =~ s/^=//s - and defined( $para_type = $self->{'accept_directives'}{$para_type} ) - ) { - DEBUG > 1 and print STDERR " Pondering known directive ${$para}[0] as $para_type\n"; - } else { - # An unknown directive! - DEBUG > 1 and printf STDERR "Unhandled directive %s (Handled: %s)\n", - $para->[0], join(' ', sort keys %{$self->{'accept_directives'}} ) - ; - $self->whine( - $para->[1]{'start_line'}, - "Unknown directive: $para->[0]" - ); - - # And maybe treat it as text instead of just letting it go? - next; - } - - if($para_type =~ s/^\?//s) { - if(! @$curr_open) { # usual case - DEBUG and print STDERR "Treating $para_type paragraph as such because stack is empty.\n"; - } else { - my @fors = grep $_->[0] eq '=for', @$curr_open; - DEBUG > 1 and print STDERR "Containing fors: ", - join(',', map $_->[1]{'target'}, @fors), "\n"; - - if(! @fors) { - DEBUG and print STDERR "Treating $para_type paragraph as such because stack has no =for's\n"; - - #} elsif(grep $_->[1]{'~resolve'}, @fors) { - #} elsif(not grep !$_->[1]{'~resolve'}, @fors) { - } elsif( $fors[-1][1]{'~resolve'} ) { - # Look to the immediately containing for - - if($para_type eq 'Data') { - DEBUG and print STDERR "Treating Data paragraph as Plain/Verbatim because the containing =for ($fors[-1][1]{'target'}) is a resolver\n"; - $para->[0] = 'Para'; - $para_type = 'Plain'; - } else { - DEBUG and print STDERR "Treating $para_type paragraph as such because the containing =for ($fors[-1][1]{'target'}) is a resolver\n"; - } - } else { - DEBUG and print STDERR "Treating $para_type paragraph as Data because the containing =for ($fors[-1][1]{'target'}) is a non-resolver\n"; - $para->[0] = $para_type = 'Data'; - } - } - } - - #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - if($para_type eq 'Plain') { - $self->_ponder_Plain($para); - } elsif($para_type eq 'Verbatim') { - $self->_ponder_Verbatim($para); - } elsif($para_type eq 'Data') { - $self->_ponder_Data($para); - } else { - die "\$para type is $para_type -- how did that happen?"; - # Shouldn't happen. - } - - #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - $para->[0] =~ s/^[~=]//s; - - DEBUG and print STDERR "\n", pretty($para), "\n"; - - # traverse the treelet (which might well be just one string scalar) - $self->{'content_seen'} ||= 1; - $self->_traverse_treelet_bit(@$para); - } - } - - return; -} - -########################################################################### -# The sub-ponderers... - - - -sub _ponder_for { - my ($self,$para,$curr_open,$paras) = @_; - - # Fake it out as a begin/end - my $target; - - if(grep $_->[1]{'~ignore'}, @$curr_open) { - DEBUG > 1 and print STDERR "Ignoring ignorable =for\n"; - return 1; - } - - for(my $i = 2; $i < @$para; ++$i) { - if($para->[$i] =~ s/^\s*(\S+)\s*//s) { - $target = $1; - last; - } - } - unless(defined $target) { - $self->whine( - $para->[1]{'start_line'}, - "=for without a target?" - ); - return 1; - } - DEBUG > 1 and - print STDERR "Faking out a =for $target as a =begin $target / =end $target\n"; - - $para->[0] = 'Data'; - - unshift @$paras, - ['=begin', - {'start_line' => $para->[1]{'start_line'}, '~really' => '=for'}, - $target, - ], - $para, - ['=end', - {'start_line' => $para->[1]{'start_line'}, '~really' => '=for'}, - $target, - ], - ; - - return 1; -} - -sub _ponder_begin { - my ($self,$para,$curr_open,$paras) = @_; - my $content = join ' ', splice @$para, 2; - $content =~ s/^\s+//s; - $content =~ s/\s+$//s; - unless(length($content)) { - $self->whine( - $para->[1]{'start_line'}, - "=begin without a target?" - ); - DEBUG and print STDERR "Ignoring targetless =begin\n"; - return 1; - } - - my ($target, $title) = $content =~ m/^(\S+)\s*(.*)$/; - $para->[1]{'title'} = $title if ($title); - $para->[1]{'target'} = $target; # without any ':' - $content = $target; # strip off the title - - $content =~ s/^:!/!:/s; - my $neg; # whether this is a negation-match - $neg = 1 if $content =~ s/^!//s; - my $to_resolve; # whether to process formatting codes - $to_resolve = 1 if $content =~ s/^://s; - - my $dont_ignore; # whether this target matches us - - foreach my $target_name ( - split(',', $content, -1), - $neg ? () : '*' - ) { - DEBUG > 2 and - print STDERR " Considering whether =begin $content matches $target_name\n"; - next unless $self->{'accept_targets'}{$target_name}; - - DEBUG > 2 and - print STDERR " It DOES match the acceptable target $target_name!\n"; - $to_resolve = 1 - if $self->{'accept_targets'}{$target_name} eq 'force_resolve'; - $dont_ignore = 1; - $para->[1]{'target_matching'} = $target_name; - last; # stop looking at other target names - } - - if($neg) { - if( $dont_ignore ) { - $dont_ignore = ''; - delete $para->[1]{'target_matching'}; - DEBUG > 2 and print STDERR " But the leading ! means that this is a NON-match!\n"; - } else { - $dont_ignore = 1; - $para->[1]{'target_matching'} = '!'; - DEBUG > 2 and print STDERR " But the leading ! means that this IS a match!\n"; - } - } - - $para->[0] = '=for'; # Just what we happen to call these, internally - $para->[1]{'~really'} ||= '=begin'; - $para->[1]{'~ignore'} = (! $dont_ignore) || 0; - $para->[1]{'~resolve'} = $to_resolve || 0; - - DEBUG > 1 and print STDERR " Making note to ", $dont_ignore ? 'not ' : '', - "ignore contents of this region\n"; - DEBUG > 1 and $dont_ignore and print STDERR " Making note to treat contents as ", - ($to_resolve ? 'verbatim/plain' : 'data'), " paragraphs\n"; - DEBUG > 1 and print STDERR " (Stack now: ", $self->_dump_curr_open(), ")\n"; - - push @$curr_open, $para; - if(!$dont_ignore or scalar grep $_->[1]{'~ignore'}, @$curr_open) { - DEBUG > 1 and print STDERR "Ignoring ignorable =begin\n"; - } else { - $self->{'content_seen'} ||= 1; - $self->_handle_element_start((my $scratch='for'), $para->[1]); - } - - return 1; -} - -sub _ponder_end { - my ($self,$para,$curr_open,$paras) = @_; - my $content = join ' ', splice @$para, 2; - $content =~ s/^\s+//s; - $content =~ s/\s+$//s; - DEBUG and print STDERR "Ogling '=end $content' directive\n"; - - unless(length($content)) { - $self->whine( - $para->[1]{'start_line'}, - "'=end' without a target?" . ( - ( @$curr_open and $curr_open->[-1][0] eq '=for' ) - ? ( " (Should be \"=end " . $curr_open->[-1][1]{'target'} . '")' ) - : '' - ) - ); - DEBUG and print STDERR "Ignoring targetless =end\n"; - return 1; - } - - unless($content =~ m/^\S+$/) { # i.e., unless it's one word - $self->whine( - $para->[1]{'start_line'}, - "'=end $content' is invalid. (Stack: " - . $self->_dump_curr_open() . ')' - ); - DEBUG and print STDERR "Ignoring mistargetted =end $content\n"; - return 1; - } - - unless(@$curr_open and $curr_open->[-1][0] eq '=for') { - $self->whine( - $para->[1]{'start_line'}, - "=end $content without matching =begin. (Stack: " - . $self->_dump_curr_open() . ')' - ); - DEBUG and print STDERR "Ignoring mistargetted =end $content\n"; - return 1; - } - - unless($content eq $curr_open->[-1][1]{'target'}) { - $self->whine( - $para->[1]{'start_line'}, - "=end $content doesn't match =begin " - . $curr_open->[-1][1]{'target'} - . ". (Stack: " - . $self->_dump_curr_open() . ')' - ); - DEBUG and print STDERR "Ignoring mistargetted =end $content at line $para->[1]{'start_line'}\n"; - return 1; - } - - # Else it's okay to close... - if(grep $_->[1]{'~ignore'}, @$curr_open) { - DEBUG > 1 and print STDERR "Not firing any event for this =end $content because in an ignored region\n"; - # And that may be because of this to-be-closed =for region, or some - # other one, but it doesn't matter. - } else { - $curr_open->[-1][1]{'start_line'} = $para->[1]{'start_line'}; - # what's that for? - - $self->{'content_seen'} ||= 1; - $self->_handle_element_end( my $scratch = 'for', $para->[1]); - } - DEBUG > 1 and print STDERR "Popping $curr_open->[-1][0] $curr_open->[-1][1]{'target'} because of =end $content\n"; - pop @$curr_open; - - return 1; -} - -sub _ponder_doc_end { - my ($self,$para,$curr_open,$paras) = @_; - if(@$curr_open) { # Deal with things left open - DEBUG and print STDERR "Stack is nonempty at end-document: (", - $self->_dump_curr_open(), ")\n"; - - DEBUG > 9 and print STDERR "Stack: ", pretty($curr_open), "\n"; - unshift @$paras, $self->_closers_for_all_curr_open; - # Make sure there is exactly one ~end in the parastack, at the end: - @$paras = grep $_->[0] ne '~end', @$paras; - push @$paras, $para, $para; - # We need two -- once for the next cycle where we - # generate errata, and then another to be at the end - # when that loop back around to process the errata. - return 1; - - } else { - DEBUG and print STDERR "Okay, stack is empty now.\n"; - } - - # Try generating errata section, if applicable - unless($self->{'~tried_gen_errata'}) { - $self->{'~tried_gen_errata'} = 1; - my @extras = $self->_gen_errata(); - if(@extras) { - unshift @$paras, @extras; - DEBUG and print STDERR "Generated errata... relooping...\n"; - return 1; # I.e., loop around again to process these fake-o paragraphs - } - } - - splice @$paras; # Well, that's that for this paragraph buffer. - DEBUG and print STDERR "Throwing end-document event.\n"; - - $self->_handle_element_end( my $scratch = 'Document' ); - return 1; # Hasta la byebye -} - -sub _ponder_pod { - my ($self,$para,$curr_open,$paras) = @_; - $self->whine( - $para->[1]{'start_line'}, - "=pod directives shouldn't be over one line long! Ignoring all " - . (@$para - 2) . " lines of content" - ) if @$para > 3; - - # Content ignored unless 'pod_handler' is set - if (my $pod_handler = $self->{'pod_handler'}) { - my ($line_num, $line) = map $_, $para->[1]{'start_line'}, $para->[2]; - $line = $line eq '' ? "=pod" : "=pod $line"; # imitate cut_handler output - $pod_handler->($line, $line_num, $self); - } - - # The surrounding methods set content_seen, so let us remain consistent. - # I do not know why it was not here before -- should it not be here? - # $self->{'content_seen'} ||= 1; - - return; -} - -sub _ponder_over { - my ($self,$para,$curr_open,$paras) = @_; - return 1 unless @$paras; - my $list_type; - - if($paras->[0][0] eq '=item') { # most common case - $list_type = $self->_get_initial_item_type($paras->[0]); - - } elsif($paras->[0][0] eq '=back') { - # Ignore empty lists by default - if ($self->{'parse_empty_lists'}) { - $list_type = 'empty'; - } else { - shift @$paras; - return 1; - } - } elsif($paras->[0][0] eq '~end') { - $self->whine( - $para->[1]{'start_line'}, - "=over is the last thing in the document?!" - ); - return 1; # But feh, ignore it. - } else { - $list_type = 'block'; - } - $para->[1]{'~type'} = $list_type; - push @$curr_open, $para; - # yes, we reuse the paragraph as a stack item - - my $content = join ' ', splice @$para, 2; - my $overness; - if($content =~ m/^\s*$/s) { - $para->[1]{'indent'} = 4; - } elsif($content =~ m/^\s*((?:\d*\.)?\d+)\s*$/s) { - no integer; - $para->[1]{'indent'} = $1; - if($1 == 0) { - $self->whine( - $para->[1]{'start_line'}, - "Can't have a 0 in =over $content" - ); - $para->[1]{'indent'} = 4; - } - } else { - $self->whine( - $para->[1]{'start_line'}, - "=over should be: '=over' or '=over positive_number'" - ); - $para->[1]{'indent'} = 4; - } - DEBUG > 1 and print STDERR "=over found of type $list_type\n"; - - $self->{'content_seen'} ||= 1; - $self->_handle_element_start((my $scratch = 'over-' . $list_type), $para->[1]); - - return; -} - -sub _ponder_back { - my ($self,$para,$curr_open,$paras) = @_; - # TODO: fire off or or ?? - - my $content = join ' ', splice @$para, 2; - if($content =~ m/\S/) { - $self->whine( - $para->[1]{'start_line'}, - "=back doesn't take any parameters, but you said =back $content" - ); - } - - if(@$curr_open and $curr_open->[-1][0] eq '=over') { - DEBUG > 1 and print STDERR "=back happily closes matching =over\n"; - # Expected case: we're closing the most recently opened thing - #my $over = pop @$curr_open; - $self->{'content_seen'} ||= 1; - $self->_handle_element_end( my $scratch = - 'over-' . ( (pop @$curr_open)->[1]{'~type'} ), $para->[1] - ); - } else { - DEBUG > 1 and print STDERR "=back found without a matching =over. Stack: (", - join(', ', map $_->[0], @$curr_open), ").\n"; - $self->whine( - $para->[1]{'start_line'}, - '=back without =over' - ); - return 1; # and ignore it - } -} - -sub _ponder_item { - my ($self,$para,$curr_open,$paras) = @_; - my $over; - unless(@$curr_open and - $over = (grep { $_->[0] eq '=over' } @$curr_open)[-1]) { - $self->whine( - $para->[1]{'start_line'}, - "'=item' outside of any '=over'" - ); - unshift @$paras, - ['=over', {'start_line' => $para->[1]{'start_line'}}, ''], - $para - ; - return 1; - } - - - my $over_type = $over->[1]{'~type'}; - - if(!$over_type) { - # Shouldn't happen1 - die "Typeless over in stack, starting at line " - . $over->[1]{'start_line'}; - - } elsif($over_type eq 'block') { - unless($curr_open->[-1][1]{'~bitched_about'}) { - $curr_open->[-1][1]{'~bitched_about'} = 1; - $self->whine( - $curr_open->[-1][1]{'start_line'}, - "You can't have =items (as at line " - . $para->[1]{'start_line'} - . ") unless the first thing after the =over is an =item" - ); - } - # Just turn it into a paragraph and reconsider it - $para->[0] = '~Para'; - unshift @$paras, $para; - return 1; - - } elsif($over_type eq 'text') { - my $item_type = $self->_get_item_type($para); - # That kills the content of the item if it's a number or bullet. - DEBUG and print STDERR " Item is of type ", $para->[0], " under $over_type\n"; - - if($item_type eq 'text') { - # Nothing special needs doing for 'text' - } elsif($item_type eq 'number' or $item_type eq 'bullet') { - $self->whine( - $para->[1]{'start_line'}, - "Expected text after =item, not a $item_type" - ); - # Undo our clobbering: - push @$para, $para->[1]{'~orig_content'}; - delete $para->[1]{'number'}; - # Only a PROPER item-number element is allowed - # to have a number attribute. - } else { - die "Unhandled item type $item_type"; # should never happen - } - - # =item-text thingies don't need any assimilation, it seems. - - } elsif($over_type eq 'number') { - my $item_type = $self->_get_item_type($para); - # That kills the content of the item if it's a number or bullet. - DEBUG and print STDERR " Item is of type ", $para->[0], " under $over_type\n"; - - my $expected_value = ++ $curr_open->[-1][1]{'~counter'}; - - if($item_type eq 'bullet') { - # Hm, it's not numeric. Correct for this. - $para->[1]{'number'} = $expected_value; - $self->whine( - $para->[1]{'start_line'}, - "Expected '=item $expected_value'" - ); - push @$para, $para->[1]{'~orig_content'}; - # restore the bullet, blocking the assimilation of next para - - } elsif($item_type eq 'text') { - # Hm, it's not numeric. Correct for this. - $para->[1]{'number'} = $expected_value; - $self->whine( - $para->[1]{'start_line'}, - "Expected '=item $expected_value'" - ); - # Text content will still be there and will block next ~Para - - } elsif($item_type ne 'number') { - die "Unknown item type $item_type"; # should never happen - - } elsif($expected_value == $para->[1]{'number'}) { - DEBUG > 1 and print STDERR " Numeric item has the expected value of $expected_value\n"; - - } else { - DEBUG > 1 and print STDERR " Numeric item has ", $para->[1]{'number'}, - " instead of the expected value of $expected_value\n"; - $self->whine( - $para->[1]{'start_line'}, - "You have '=item " . $para->[1]{'number'} . - "' instead of the expected '=item $expected_value'" - ); - $para->[1]{'number'} = $expected_value; # correcting!! - } - - if(@$para == 2) { - # For the cases where we /didn't/ push to @$para - if($paras->[0][0] eq '~Para') { - DEBUG and print STDERR "Assimilating following ~Para content into $over_type item\n"; - push @$para, splice @{shift @$paras},2; - } else { - DEBUG and print STDERR "Can't assimilate following ", $paras->[0][0], "\n"; - push @$para, ''; # Just so it's not contentless - } - } - - - } elsif($over_type eq 'bullet') { - my $item_type = $self->_get_item_type($para); - # That kills the content of the item if it's a number or bullet. - DEBUG and print STDERR " Item is of type ", $para->[0], " under $over_type\n"; - - if($item_type eq 'bullet') { - # as expected! - - if( $para->[1]{'~_freaky_para_hack'} ) { - DEBUG and print STDERR "Accomodating '=item * Foo' tolerance hack.\n"; - push @$para, delete $para->[1]{'~_freaky_para_hack'}; - } - - } elsif($item_type eq 'number') { - $self->whine( - $para->[1]{'start_line'}, - "Expected '=item *'" - ); - push @$para, $para->[1]{'~orig_content'}; - # and block assimilation of the next paragraph - delete $para->[1]{'number'}; - # Only a PROPER item-number element is allowed - # to have a number attribute. - } elsif($item_type eq 'text') { - $self->whine( - $para->[1]{'start_line'}, - "Expected '=item *'" - ); - # But doesn't need processing. But it'll block assimilation - # of the next para. - } else { - die "Unhandled item type $item_type"; # should never happen - } - - if(@$para == 2) { - # For the cases where we /didn't/ push to @$para - if($paras->[0][0] eq '~Para') { - DEBUG and print STDERR "Assimilating following ~Para content into $over_type item\n"; - push @$para, splice @{shift @$paras},2; - } else { - DEBUG and print STDERR "Can't assimilate following ", $paras->[0][0], "\n"; - push @$para, ''; # Just so it's not contentless - } - } - - } else { - die "Unhandled =over type \"$over_type\"?"; - # Shouldn't happen! - } - $para->[0] .= '-' . $over_type; - - return; -} - -sub _ponder_Plain { - my ($self,$para) = @_; - DEBUG and print STDERR " giving plain treatment...\n"; - unless( @$para == 2 or ( @$para == 3 and $para->[2] eq '' ) - or $para->[1]{'~cooked'} - ) { - push @$para, - @{$self->_make_treelet( - join("\n", splice(@$para, 2)), - $para->[1]{'start_line'} - )}; - } - # Empty paragraphs don't need a treelet for any reason I can see. - # And precooked paragraphs already have a treelet. - return; -} - -sub _ponder_Verbatim { - my ($self,$para) = @_; - DEBUG and print STDERR " giving verbatim treatment...\n"; - - $para->[1]{'xml:space'} = 'preserve'; - - my $indent = $self->strip_verbatim_indent; - if ($indent && ref $indent eq 'CODE') { - my @shifted = (shift @{$para}, shift @{$para}); - $indent = $indent->($para); - unshift @{$para}, @shifted; - } - - for(my $i = 2; $i < @$para; $i++) { - foreach my $line ($para->[$i]) { # just for aliasing - # Strip indentation. - $line =~ s/^\Q$indent// if $indent - && !($self->{accept_codes} && $self->{accept_codes}{VerbatimFormatted}); - while( $line =~ - # Sort of adapted from Text::Tabs -- yes, it's hardwired in that - # tabs are at every EIGHTH column. For portability, it has to be - # one setting everywhere, and 8th wins. - s/^([^\t]*)(\t+)/$1.(" " x ((length($2)<<3)-(length($1)&7)))/e - ) {} - - # TODO: whinge about (or otherwise treat) unindented or overlong lines - - } - } - - # Now the VerbatimFormatted hoodoo... - if( $self->{'accept_codes'} and - $self->{'accept_codes'}{'VerbatimFormatted'} - ) { - while(@$para > 3 and $para->[-1] !~ m/\S/) { pop @$para } - # Kill any number of terminal newlines - $self->_verbatim_format($para); - } elsif ($self->{'codes_in_verbatim'}) { - push @$para, - @{$self->_make_treelet( - join("\n", splice(@$para, 2)), - $para->[1]{'start_line'}, $para->[1]{'xml:space'} - )}; - $para->[-1] =~ s/\n+$//s; # Kill any number of terminal newlines - } else { - push @$para, join "\n", splice(@$para, 2) if @$para > 3; - $para->[-1] =~ s/\n+$//s; # Kill any number of terminal newlines - } - return; -} - -sub _ponder_Data { - my ($self,$para) = @_; - DEBUG and print STDERR " giving data treatment...\n"; - $para->[1]{'xml:space'} = 'preserve'; - push @$para, join "\n", splice(@$para, 2) if @$para > 3; - return; -} - - - - -########################################################################### - -sub _traverse_treelet_bit { # for use only by the routine above - my($self, $name) = splice @_,0,2; - - my $scratch; - $self->_handle_element_start(($scratch=$name), shift @_); - - while (@_) { - my $x = shift; - if (ref($x)) { - &_traverse_treelet_bit($self, @$x); - } else { - $x .= shift while @_ && !ref($_[0]); - $self->_handle_text($x); - } - } - - $self->_handle_element_end($scratch=$name); - return; -} - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -sub _closers_for_all_curr_open { - my $self = $_[0]; - my @closers; - foreach my $still_open (@{ $self->{'curr_open'} || return }) { - my @copy = @$still_open; - $copy[1] = {%{ $copy[1] }}; - #$copy[1]{'start_line'} = -1; - if($copy[0] eq '=for') { - $copy[0] = '=end'; - } elsif($copy[0] eq '=over') { - $self->whine( - $still_open->[1]{start_line} , - "=over without closing =back" - ); - - $copy[0] = '=back'; - } else { - die "I don't know how to auto-close an open $copy[0] region"; - } - - unless( @copy > 2 ) { - push @copy, $copy[1]{'target'}; - $copy[-1] = '' unless defined $copy[-1]; - # since =over's don't have targets - } - - $copy[1]{'fake-closer'} = 1; - - DEBUG and print STDERR "Queuing up fake-o event: ", pretty(\@copy), "\n"; - unshift @closers, \@copy; - } - return @closers; -} - -#-------------------------------------------------------------------------- - -sub _verbatim_format { - my($it, $p) = @_; - - my $formatting; - - for(my $i = 2; $i < @$p; $i++) { # work backwards over the lines - DEBUG and print STDERR "_verbatim_format appends a newline to $i: $p->[$i]\n"; - $p->[$i] .= "\n"; - # Unlike with simple Verbatim blocks, we don't end up just doing - # a join("\n", ...) on the contents, so we have to append a - # newline to ever line, and then nix the last one later. - } - - if( DEBUG > 4 ) { - print STDERR "<<\n"; - for(my $i = $#$p; $i >= 2; $i--) { # work backwards over the lines - print STDERR "_verbatim_format $i: $p->[$i]"; - } - print STDERR ">>\n"; - } - - for(my $i = $#$p; $i > 2; $i--) { - # work backwards over the lines, except the first (#2) - - #next unless $p->[$i] =~ m{^#:([ \^\/\%]*)\n?$}s - # and $p->[$i-1] !~ m{^#:[ \^\/\%]*\n?$}s; - # look at a formatty line preceding a nonformatty one - DEBUG > 5 and print STDERR "Scrutinizing line $i: $$p[$i]\n"; - if($p->[$i] =~ m{^#:([ \^\/\%]*)\n?$}s) { - DEBUG > 5 and print STDERR " It's a formatty line. ", - "Peeking at previous line ", $i-1, ": $$p[$i-1]: \n"; - - if( $p->[$i-1] =~ m{^#:[ \^\/\%]*\n?$}s ) { - DEBUG > 5 and print STDERR " Previous line is formatty! Skipping this one.\n"; - next; - } else { - DEBUG > 5 and print STDERR " Previous line is non-formatty! Yay!\n"; - } - } else { - DEBUG > 5 and print STDERR " It's not a formatty line. Ignoring\n"; - next; - } - - # A formatty line has to have #: in the first two columns, and uses - # "^" to mean bold, "/" to mean underline, and "%" to mean bold italic. - # Example: - # What do you want? i like pie. [or whatever] - # #:^^^^^^^^^^^^^^^^^ ///////////// - - - DEBUG > 4 and print STDERR "_verbatim_format considers:\n<$p->[$i-1]>\n<$p->[$i]>\n"; - - $formatting = ' ' . $1; - $formatting =~ s/\s+$//s; # nix trailing whitespace - unless(length $formatting and $p->[$i-1] =~ m/\S/) { # no-op - splice @$p,$i,1; # remove this line - $i--; # don't consider next line - next; - } - - if( length($formatting) >= length($p->[$i-1]) ) { - $formatting = substr($formatting, 0, length($p->[$i-1]) - 1) . ' '; - } else { - $formatting .= ' ' x (length($p->[$i-1]) - length($formatting)); - } - # Make $formatting and the previous line be exactly the same length, - # with $formatting having a " " as the last character. - - DEBUG > 4 and print STDERR "Formatting <$formatting> on <", $p->[$i-1], ">\n"; - - - my @new_line; - while( $formatting =~ m{\G(( +)|(\^+)|(\/+)|(\%+))}g ) { - #print STDERR "Format matches $1\n"; - - if($2) { - #print STDERR "SKIPPING <$2>\n"; - push @new_line, - substr($p->[$i-1], pos($formatting)-length($1), length($1)); - } else { - #print STDERR "SNARING $+\n"; - push @new_line, [ - ( - $3 ? 'VerbatimB' : - $4 ? 'VerbatimI' : - $5 ? 'VerbatimBI' : die("Should never get called") - ), {}, - substr($p->[$i-1], pos($formatting)-length($1), length($1)) - ]; - #print STDERR "Formatting <$new_line[-1][-1]> as $new_line[-1][0]\n"; - } - } - my @nixed = - splice @$p, $i-1, 2, @new_line; # replace myself and the next line - DEBUG > 10 and print STDERR "Nixed count: ", scalar(@nixed), "\n"; - - DEBUG > 6 and print STDERR "New version of the above line is these tokens (", - scalar(@new_line), "):", - map( ref($_)?"<@$_> ":"<$_>", @new_line ), "\n"; - $i--; # So the next line we scrutinize is the line before the one - # that we just went and formatted - } - - $p->[0] = 'VerbatimFormatted'; - - # Collapse adjacent text nodes, just for kicks. - for( my $i = 2; $i > $#$p; $i++ ) { # work forwards over the tokens except for the last - if( !ref($p->[$i]) and !ref($p->[$i + 1]) ) { - DEBUG > 5 and print STDERR "_verbatim_format merges {$p->[$i]} and {$p->[$i+1]}\n"; - $p->[$i] .= splice @$p, $i+1, 1; # merge - --$i; # and back up - } - } - - # Now look for the last text token, and remove the terminal newline - for( my $i = $#$p; $i >= 2; $i-- ) { - # work backwards over the tokens, even the first - if( !ref($p->[$i]) ) { - if($p->[$i] =~ s/\n$//s) { - DEBUG > 5 and print STDERR "_verbatim_format killed the terminal newline on #$i: {$p->[$i]}, after {$p->[$i-1]}\n"; - } else { - DEBUG > 5 and print STDERR - "No terminal newline on #$i: {$p->[$i]}, after {$p->[$i-1]} !?\n"; - } - last; # we only want the next one - } - } - - return; -} - - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - - -sub _treelet_from_formatting_codes { - # Given a paragraph, returns a treelet. Full of scary tokenizing code. - # Like [ '~Top', {'start_line' => $start_line}, - # "I like ", - # [ 'B', {}, "pie" ], - # "!" - # ] - - my($self, $para, $start_line, $preserve_space) = @_; - - my $treelet = ['~Top', {'start_line' => $start_line},]; - - unless ($preserve_space || $self->{'preserve_whitespace'}) { - $para =~ s/\s+/ /g; # collapse and trim all whitespace first. - $para =~ s/ $//; - $para =~ s/^ //; - } - - # Only apparent problem the above code is that N<< >> turns into - # N<< >>. But then, word wrapping does that too! So don't do that! - - my @stack; - my @lineage = ($treelet); - my $raw = ''; # raw content of L<> fcode before splitting/processing - # XXX 'raw' is not 100% accurate: all surrounding whitespace is condensed - # into just 1 ' '. Is this the regex's doing or 'raw's? - my $inL = 0; - - DEBUG > 4 and print STDERR "Paragraph:\n$para\n\n"; - - # Here begins our frightening tokenizer RE. The following regex matches - # text in four main parts: - # - # * Start-codes. The first alternative matches C< or C<<, the latter - # followed by some whitespace. $1 will hold the entire start code - # (including any space following a multiple-angle-bracket delimiter), - # and $2 will hold only the additional brackets past the first in a - # multiple-bracket delimiter. length($2) + 1 will be the number of - # closing brackets we have to find. - # - # * Closing brackets. Match some amount of whitespace followed by - # multiple close brackets. The logic to see if this closes anything - # is down below. Note that in order to parse C<< >> correctly, we - # have to use look-behind (?<=\s\s), since the match of the starting - # code will have consumed the whitespace. - # - # * A single closing bracket, to close a simple code like C<>. - # - # * Something that isn't a start or end code. We have to be careful - # about accepting whitespace, since perlpodspec says that any whitespace - # before a multiple-bracket closing delimiter should be ignored. - # - while($para =~ - m/\G - (?: - # Match starting codes, including the whitespace following a - # multiple-delimiter start code. $1 gets the whole start code and - # $2 gets all but one of the {2,}) - | - (\s?>) # $5: simple end-codes - | - ( # $6: stuff containing no start-codes or end-codes - (?: - [^A-Z\s>] - | - (?: - [A-Z](?!<) - ) - | - # whitespace is ok, but we don't want to eat the whitespace before - # a multiple-bracket end code. - # NOTE: we may still have problems with e.g. S<< >> - (?: - \s(?!\s*>{2,}) - ) - )+ - ) - ) - /xgo - ) { - DEBUG > 4 and print STDERR "\nParagraphic tokenstack = (@stack)\n"; - if(defined $1) { - if(defined $2) { - DEBUG > 3 and print STDERR "Found complex start-text code \"$1\"\n"; - push @stack, length($2) + 1; - # length of the necessary complex end-code string - } else { - DEBUG > 3 and print STDERR "Found simple start-text code \"$1\"\n"; - push @stack, 0; # signal that we're looking for simple - } - push @lineage, [ substr($1,0,1), {}, ]; # new node object - push @{ $lineage[-2] }, $lineage[-1]; - if ('L' eq substr($1,0,1)) { - $raw = $inL ? $raw.$1 : ''; # reset raw content accumulator - $inL = 1; - } else { - $raw .= $1 if $inL; - } - - } elsif(defined $4) { - DEBUG > 3 and print STDERR "Found apparent complex end-text code \"$3$4\"\n"; - # This is where it gets messy... - if(! @stack) { - # We saw " >>>>" but needed nothing. This is ALL just stuff then. - DEBUG > 4 and print STDERR " But it's really just stuff.\n"; - push @{ $lineage[-1] }, $3, $4; - next; - } elsif(!$stack[-1]) { - # We saw " >>>>" but needed only ">". Back pos up. - DEBUG > 4 and print STDERR " And that's more than we needed to close simple.\n"; - push @{ $lineage[-1] }, $3; # That was a for-real space, too. - pos($para) = pos($para) - length($4) + 1; - } elsif($stack[-1] == length($4)) { - # We found " >>>>", and it was exactly what we needed. Commonest case. - DEBUG > 4 and print STDERR " And that's exactly what we needed to close complex.\n"; - } elsif($stack[-1] < length($4)) { - # We saw " >>>>" but needed only " >>". Back pos up. - DEBUG > 4 and print STDERR " And that's more than we needed to close complex.\n"; - pos($para) = pos($para) - length($4) + $stack[-1]; - } else { - # We saw " >>>>" but needed " >>>>>>". So this is all just stuff! - DEBUG > 4 and print STDERR " But it's really just stuff, because we needed more.\n"; - push @{ $lineage[-1] }, $3, $4; - next; - } - #print STDERR "\nHOOBOY ", scalar(@{$lineage[-1]}), "!!!\n"; - - push @{ $lineage[-1] }, '' if 2 == @{ $lineage[-1] }; - # Keep the element from being childless - - pop @stack; - pop @lineage; - - unless (@stack) { # not in an L if there are no open fcodes - $inL = 0; - if (ref $lineage[-1][-1] && $lineage[-1][-1][0] eq 'L') { - $lineage[-1][-1][1]{'raw'} = $raw - } - } - $raw .= $3.$4 if $inL; - - } elsif(defined $5) { - DEBUG > 3 and print STDERR "Found apparent simple end-text code \"$5\"\n"; - - if(@stack and ! $stack[-1]) { - # We're indeed expecting a simple end-code - DEBUG > 4 and print STDERR " It's indeed an end-code.\n"; - - if(length($5) == 2) { # There was a space there: " >" - push @{ $lineage[-1] }, ' '; - } elsif( 2 == @{ $lineage[-1] } ) { # Closing a childless element - push @{ $lineage[-1] }, ''; # keep it from being really childless - } - - pop @stack; - pop @lineage; - } else { - DEBUG > 4 and print STDERR " It's just stuff.\n"; - push @{ $lineage[-1] }, $5; - } - - unless (@stack) { # not in an L if there are no open fcodes - $inL = 0; - if (ref $lineage[-1][-1] && $lineage[-1][-1][0] eq 'L') { - $lineage[-1][-1][1]{'raw'} = $raw - } - } - $raw .= $5 if $inL; - - } elsif(defined $6) { - DEBUG > 3 and print STDERR "Found stuff \"$6\"\n"; - push @{ $lineage[-1] }, $6; - $raw .= $6 if $inL; - # XXX does not capture multiplace whitespaces -- 'raw' ends up with - # at most 1 leading/trailing whitespace, why not all of it? - - } else { - # should never ever ever ever happen - DEBUG and print STDERR "AYYAYAAAAA at line ", __LINE__, "\n"; - die "SPORK 512512!"; - } - } - - if(@stack) { # Uhoh, some sequences weren't closed. - my $x= "..."; - while(@stack) { - push @{ $lineage[-1] }, '' if 2 == @{ $lineage[-1] }; - # Hmmmmm! - - my $code = (pop @lineage)->[0]; - my $ender_length = pop @stack; - if($ender_length) { - --$ender_length; - $x = $code . ("<" x $ender_length) . " $x " . (">" x $ender_length); - } else { - $x = $code . "<$x>"; - } - } - DEBUG > 1 and print STDERR "Unterminated $x sequence\n"; - $self->whine($start_line, - "Unterminated $x sequence", - ); - } - - return $treelet; -} - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -sub text_content_of_treelet { # method: $parser->text_content_of_treelet($lol) - return stringify_lol($_[1]); -} - -sub stringify_lol { # function: stringify_lol($lol) - my $string_form = ''; - _stringify_lol( $_[0] => \$string_form ); - return $string_form; -} - -sub _stringify_lol { # the real recursor - my($lol, $to) = @_; - for(my $i = 2; $i < @$lol; ++$i) { - if( ref($lol->[$i] || '') and UNIVERSAL::isa($lol->[$i], 'ARRAY') ) { - _stringify_lol( $lol->[$i], $to); # recurse! - } else { - $$to .= $lol->[$i]; - } - } - return; -} - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -sub _dump_curr_open { # return a string representation of the stack - my $curr_open = $_[0]{'curr_open'}; - - return '[empty]' unless @$curr_open; - return join '; ', - map {; - ($_->[0] eq '=for') - ? ( ($_->[1]{'~really'} || '=over') - . ' ' . $_->[1]{'target'}) - : $_->[0] - } - @$curr_open - ; -} - -########################################################################### -my %pretty_form = ( - "\a" => '\a', # ding! - "\b" => '\b', # BS - "\e" => '\e', # ESC - "\f" => '\f', # FF - "\t" => '\t', # tab - "\cm" => '\cm', - "\cj" => '\cj', - "\n" => '\n', # probably overrides one of either \cm or \cj - '"' => '\"', - '\\' => '\\\\', - '$' => '\\$', - '@' => '\\@', - '%' => '\\%', - '#' => '\\#', -); - -sub pretty { # adopted from Class::Classless - # Not the most brilliant routine, but passable. - # Don't give it a cyclic data structure! - my @stuff = @_; # copy - my $x; - my $out = - # join ",\n" . - join ", ", - map {; - if(!defined($_)) { - "undef"; - } elsif(ref($_) eq 'ARRAY' or ref($_) eq 'Pod::Simple::LinkSection') { - $x = "[ " . pretty(@$_) . " ]" ; - $x; - } elsif(ref($_) eq 'SCALAR') { - $x = "\\" . pretty($$_) ; - $x; - } elsif(ref($_) eq 'HASH') { - my $hr = $_; - $x = "{" . join(", ", - map(pretty($_) . '=>' . pretty($hr->{$_}), - sort keys %$hr ) ) . "}" ; - $x; - } elsif(!length($_)) { q{''} # empty string - } elsif( - $_ eq '0' # very common case - or( - m/^-?(?:[123456789]\d*|0)(?:\.\d+)?$/s - and $_ ne '-0' # the strange case that RE lets thru - ) - ) { $_; - } else { - # Yes, explicitly name every character desired. There are shorcuts one - # could make, but I (Karl Williamson) was afraid that some Perl - # releases would have bugs in some of them. For example [A-Z] works - # even on EBCDIC platforms to match exactly the 26 uppercase English - # letters, but I don't know if it has always worked without bugs. It - # seemed safest just to list the characters. - # s<([^\x20\x21\x23\x27-\x3F\x41-\x5B\x5D-\x7E])> - s<([^ !#'()*+,\-./0123456789:;\<=\>?ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\]^_`abcdefghijklmnopqrstuvwxyz{|}~])> - <$pretty_form{$1} || '\\x{'.sprintf("%x", ord($1)).'}'>eg; - #<$pretty_form{$1} || '\\x'.(unpack("H2",$1))>eg; - qq{"$_"}; - } - } @stuff; - # $out =~ s/\n */ /g if length($out) < 75; - return $out; -} - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - -# A rather unsubtle method of blowing away all the state information -# from a parser object so it can be reused. Provided as a utility for -# backward compatibility in Pod::Man, etc. but not recommended for -# general use. - -sub reinit { - my $self = shift; - foreach (qw(source_dead source_filename doc_has_started -start_of_pod_block content_seen last_was_blank paras curr_open -line_count pod_para_count in_pod ~tried_gen_errata all_errata errata errors_seen -Title)) { - - delete $self->{$_}; - } -} - -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -1; - diff --git a/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/LinkSection.pm b/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/LinkSection.pm deleted file mode 100644 index 86c06422..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/LinkSection.pm +++ /dev/null @@ -1,76 +0,0 @@ -#line 1 "Pod/Simple/LinkSection.pm" - -require 5; -package Pod::Simple::LinkSection; - # Based somewhat dimly on Array::Autojoin -use vars qw($VERSION ); -$VERSION = '3.35'; - -use strict; -use Pod::Simple::BlackBox; -use vars qw($VERSION ); -$VERSION = '3.35'; - -use overload( # So it'll stringify nice - '""' => \&Pod::Simple::BlackBox::stringify_lol, - 'bool' => \&Pod::Simple::BlackBox::stringify_lol, - # '.=' => \&tack_on, # grudgingly support - - 'fallback' => 1, # turn on cleverness -); - -sub tack_on { - $_[0] = ['', {}, "$_[0]" ]; - return $_[0][2] .= $_[1]; -} - -sub as_string { - goto &Pod::Simple::BlackBox::stringify_lol; -} -sub stringify { - goto &Pod::Simple::BlackBox::stringify_lol; -} - -sub new { - my $class = shift; - $class = ref($class) || $class; - my $new; - if(@_ == 1) { - if (!ref($_[0] || '')) { # most common case: one bare string - return bless ['', {}, $_[0] ], $class; - } elsif( ref($_[0] || '') eq 'ARRAY') { - $new = [ @{ $_[0] } ]; - } else { - Carp::croak( "$class new() doesn't know to clone $new" ); - } - } else { # misc stuff - $new = [ '', {}, @_ ]; - } - - # By now it's a treelet: [ 'foo', {}, ... ] - foreach my $x (@$new) { - if(ref($x || '') eq 'ARRAY') { - $x = $class->new($x); # recurse - } elsif(ref($x || '') eq 'HASH') { - $x = { %$x }; - } - # otherwise leave it. - } - - return bless $new, $class; -} - -# Not much in this class is likely to be link-section specific -- -# but it just so happens that link-sections are about the only treelets -# that are exposed to the user. - -1; - -__END__ - -# TODO: let it be an option whether a given subclass even wants little treelets? - - -__END__ - -#line 175 diff --git a/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/TiedOutFH.pm b/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/TiedOutFH.pm deleted file mode 100644 index daca834a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/TiedOutFH.pm +++ /dev/null @@ -1,106 +0,0 @@ -#line 1 "Pod/Simple/TiedOutFH.pm" - -use strict; -package Pod::Simple::TiedOutFH; -use Symbol ('gensym'); -use Carp (); -use vars qw($VERSION ); -$VERSION = '3.35'; - -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -sub handle_on { # some horrible frightening things are encapsulated in here - my $class = shift; - $class = ref($class) || $class; - - Carp::croak "Usage: ${class}->handle_on(\$somescalar)" unless @_; - - my $x = (defined($_[0]) and ref($_[0])) - ? $_[0] - : ( \( $_[0] ) )[0] - ; - $$x = '' unless defined $$x; - - #Pod::Simple::DEBUG and print STDERR "New $class handle on $x = \"$$x\"\n"; - - my $new = gensym(); - tie *$new, $class, $x; - return $new; -} - -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -sub TIEHANDLE { # Ties to just a scalar ref - my($class, $scalar_ref) = @_; - $$scalar_ref = '' unless defined $$scalar_ref; - return bless \$scalar_ref, ref($class) || $class; -} - -sub PRINT { - my $it = shift; - foreach my $x (@_) { $$$it .= $x } - - #Pod::Simple::DEBUG > 10 and print STDERR " appended to $$it = \"$$$it\"\n"; - - return 1; -} - -sub FETCH { - return ${$_[0]}; -} - -sub PRINTF { - my $it = shift; - my $format = shift; - $$$it .= sprintf $format, @_; - return 1; -} - -sub FILENO { ${ $_[0] } + 100 } # just to produce SOME number - -sub CLOSE { 1 } - -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -1; -__END__ - -Chole - - * 1 large red onion - * 2 tomatillos - * 4 or 5 roma tomatoes (optionally with the pulp discarded) - * 1 tablespoons chopped ginger root (or more, to taste) - * 2 tablespoons canola oil (or vegetable oil) - - * 1 tablespoon garam masala - * 1/2 teaspoon red chili powder, or to taste - * Salt, to taste (probably quite a bit) - * 2 (15-ounce) cans chick peas or garbanzo beans, drained and rinsed - * juice of one smallish lime - * a dash of balsamic vinegar (to taste) - * cooked rice, preferably long-grain white rice (whether plain, - basmati rice, jasmine rice, or even a mild pilaf) - -In a blender or food processor, puree the onions, tomatoes, tomatillos, -and ginger root. You can even do it with a Braun hand "mixer", if you -chop things finer to start with, and work at it. - -In a saucepan set over moderate heat, warm the oil until hot. - -Add the puree and the balsamic vinegar, and cook, stirring occasionally, -for 20 to 40 minutes. (Cooking it longer will make it sweeter.) - -Add the Garam Masala, chili powder, and cook, stirring occasionally, for -5 minutes. - -Add the salt and chick peas and cook, stirring, until heated through. - -Stir in the lime juice, and optionally one or two teaspoons of tahini. -You can let it simmer longer, depending on how much softer you want the -garbanzos to get. - -Serve over rice, like a curry. - -Yields 5 to 7 servings. - - diff --git a/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/Transcode.pm b/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/Transcode.pm deleted file mode 100644 index b0cdde98..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/Transcode.pm +++ /dev/null @@ -1,37 +0,0 @@ -#line 1 "Pod/Simple/Transcode.pm" - -require 5; -package Pod::Simple::Transcode; -use strict; -use vars qw($VERSION @ISA); -$VERSION = '3.35'; - -BEGIN { - if(defined &DEBUG) {;} # Okay - elsif( defined &Pod::Simple::DEBUG ) { *DEBUG = \&Pod::Simple::DEBUG; } - else { *DEBUG = sub () {0}; } -} - -foreach my $class ( - 'Pod::Simple::TranscodeSmart', - 'Pod::Simple::TranscodeDumb', - '', -) { - $class or die "Couldn't load any encoding classes"; - DEBUG and print STDERR "About to try loading $class...\n"; - eval "require $class;"; - if($@) { - DEBUG and print STDERR "Couldn't load $class: $@\n"; - } else { - DEBUG and print STDERR "OK, loaded $class.\n"; - @ISA = ($class); - last; - } -} - -sub _blorp { return; } # just to avoid any "empty class" warning - -1; -__END__ - - diff --git a/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/TranscodeDumb.pm b/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/TranscodeDumb.pm deleted file mode 100644 index b6d59468..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/TranscodeDumb.pm +++ /dev/null @@ -1,87 +0,0 @@ -#line 1 "Pod/Simple/TranscodeDumb.pm" - -require 5; -## This module is to be use()'d only by Pod::Simple::Transcode - -package Pod::Simple::TranscodeDumb; -use strict; -use vars qw($VERSION %Supported); -$VERSION = '3.35'; -# This module basically pretends it knows how to transcode, except -# only for null-transcodings! We use this when Encode isn't -# available. - -%Supported = ( - 'ascii' => 1, - 'ascii-ctrl' => 1, - 'iso-8859-1' => 1, - 'cp1252' => 1, - 'null' => 1, - 'latin1' => 1, - 'latin-1' => 1, - %Supported, -); - -sub is_dumb {1} -sub is_smart {0} - -sub all_encodings { - return sort keys %Supported; -} - -sub encoding_is_available { - return exists $Supported{lc $_[1]}; -} - -sub encmodver { - return __PACKAGE__ . " v" .($VERSION || '?'); -} - -sub make_transcoder { - my ($e) = $_[1]; - die "WHAT ENCODING!?!?" unless $e; - # No-op for all but CP1252. - return sub {;} if $e !~ /^cp-?1252$/i; - - # Replace CP1252 nerbles with their ASCII equivalents. - return sub { - # Copied from Encode::ZapCP1252. - my %ascii_for = ( - # http://en.wikipedia.org/wiki/Windows-1252 - "\x80" => 'e', # EURO SIGN - "\x82" => ',', # SINGLE LOW-9 QUOTATION MARK - "\x83" => 'f', # LATIN SMALL LETTER F WITH HOOK - "\x84" => ',,', # DOUBLE LOW-9 QUOTATION MARK - "\x85" => '...', # HORIZONTAL ELLIPSIS - "\x86" => '+', # DAGGER - "\x87" => '++', # DOUBLE DAGGER - "\x88" => '^', # MODIFIER LETTER CIRCUMFLEX ACCENT - "\x89" => '%', # PER MILLE SIGN - "\x8a" => 'S', # LATIN CAPITAL LETTER S WITH CARON - "\x8b" => '<', # SINGLE LEFT-POINTING ANGLE QUOTATION MARK - "\x8c" => 'OE', # LATIN CAPITAL LIGATURE OE - "\x8e" => 'Z', # LATIN CAPITAL LETTER Z WITH CARON - "\x91" => "'", # LEFT SINGLE QUOTATION MARK - "\x92" => "'", # RIGHT SINGLE QUOTATION MARK - "\x93" => '"', # LEFT DOUBLE QUOTATION MARK - "\x94" => '"', # RIGHT DOUBLE QUOTATION MARK - "\x95" => '*', # BULLET - "\x96" => '-', # EN DASH - "\x97" => '--', # EM DASH - "\x98" => '~', # SMALL TILDE - "\x99" => '(tm)', # TRADE MARK SIGN - "\x9a" => 's', # LATIN SMALL LETTER S WITH CARON - "\x9b" => '>', # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - "\x9c" => 'oe', # LATIN SMALL LIGATURE OE - "\x9e" => 'z', # LATIN SMALL LETTER Z WITH CARON - "\x9f" => 'Y', # LATIN CAPITAL LETTER Y WITH DIAERESIS - ); - - s{([\x80-\x9f])}{$ascii_for{$1} || $1}emxsg for @_; - }; -} - - -1; - - diff --git a/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/TranscodeSmart.pm b/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/TranscodeSmart.pm deleted file mode 100644 index 997a864a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Pod/Simple/TranscodeSmart.pm +++ /dev/null @@ -1,45 +0,0 @@ -#line 1 "Pod/Simple/TranscodeSmart.pm" - -require 5; -use 5.008; -## Anything before 5.8.0 is GIMPY! -## This module is to be use()'d only by Pod::Simple::Transcode - -package Pod::Simple::TranscodeSmart; -use strict; -use Pod::Simple; -require Encode; -use vars qw($VERSION ); -$VERSION = '3.35'; - -sub is_dumb {0} -sub is_smart {1} - -sub all_encodings { - return Encode::->encodings(':all'); -} - -sub encoding_is_available { - return Encode::resolve_alias($_[1]); -} - -sub encmodver { - return "Encode.pm v" .($Encode::VERSION || '?'); -} - -sub make_transcoder { - my $e = Encode::find_encoding($_[1]); - die "WHAT ENCODING!?!?" unless $e; - my $x; - return sub { - foreach $x (@_) { - $x = $e->decode($x) unless Encode::is_utf8($x); - } - return; - }; -} - - -1; - - diff --git a/software/Slic3r-1.3.0.64bit/lib/Pod/Text.pm b/software/Slic3r-1.3.0.64bit/lib/Pod/Text.pm deleted file mode 100644 index d9a219a7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Pod/Text.pm +++ /dev/null @@ -1,783 +0,0 @@ -#line 1 "Pod/Text.pm" -# Convert POD data to formatted text. -# -# This module converts POD to formatted text. It replaces the old Pod::Text -# module that came with versions of Perl prior to 5.6.0 and attempts to match -# its output except for some specific circumstances where other decisions -# seemed to produce better output. It uses Pod::Parser and is designed to be -# very easy to subclass. -# -# Perl core hackers, please note that this module is also separately -# maintained outside of the Perl core as part of the podlators. Please send -# me any patches at the address above in addition to sending them to the -# standard Perl mailing lists. -# -# Copyright 1999, 2000, 2001, 2002, 2004, 2006, 2008, 2009, 2012, 2013, 2014, -# 2015, 2016 Russ Allbery -# -# This program is free software; you may redistribute it and/or modify it -# under the same terms as Perl itself. - -############################################################################## -# Modules and declarations -############################################################################## - -package Pod::Text; - -use 5.006; -use strict; -use warnings; - -use vars qw(@ISA @EXPORT %ESCAPES $VERSION); - -use Carp qw(carp croak); -use Encode qw(encode); -use Exporter (); -use Pod::Simple (); - -@ISA = qw(Pod::Simple Exporter); - -# We have to export pod2text for backward compatibility. -@EXPORT = qw(pod2text); - -$VERSION = '4.09'; - -# Ensure that $Pod::Simple::nbsp and $Pod::Simple::shy are available. Code -# taken from Pod::Simple 3.32, but was only added in 3.30. -my ($NBSP, $SHY); -if ($Pod::Simple::VERSION ge 3.30) { - $NBSP = $Pod::Simple::nbsp; - $SHY = $Pod::Simple::shy; -} else { - if ($] ge 5.007_003) { - $NBSP = chr utf8::unicode_to_native(0xA0); - $SHY = chr utf8::unicode_to_native(0xAD); - } elsif (Pod::Simple::ASCII) { - $NBSP = "\xA0"; - $SHY = "\xAD"; - } else { - $NBSP = "\x41"; - $SHY = "\xCA"; - } -} - -############################################################################## -# Initialization -############################################################################## - -# This function handles code blocks. It's registered as a callback to -# Pod::Simple and therefore doesn't work as a regular method call, but all it -# does is call output_code with the line. -sub handle_code { - my ($line, $number, $parser) = @_; - $parser->output_code ($line . "\n"); -} - -# Initialize the object and set various Pod::Simple options that we need. -# Here, we also process any additional options passed to the constructor or -# set up defaults if none were given. Note that all internal object keys are -# in all-caps, reserving all lower-case object keys for Pod::Simple and user -# arguments. -sub new { - my $class = shift; - my $self = $class->SUPER::new; - - # Tell Pod::Simple to handle S<> by automatically inserting  . - $self->nbsp_for_S (1); - - # Tell Pod::Simple to keep whitespace whenever possible. - if ($self->can ('preserve_whitespace')) { - $self->preserve_whitespace (1); - } else { - $self->fullstop_space_harden (1); - } - - # The =for and =begin targets that we accept. - $self->accept_targets (qw/text TEXT/); - - # Ensure that contiguous blocks of code are merged together. Otherwise, - # some of the guesswork heuristics don't work right. - $self->merge_text (1); - - # Pod::Simple doesn't do anything useful with our arguments, but we want - # to put them in our object as hash keys and values. This could cause - # problems if we ever clash with Pod::Simple's own internal class - # variables. - my %opts = @_; - my @opts = map { ("opt_$_", $opts{$_}) } keys %opts; - %$self = (%$self, @opts); - - # Send errors to stderr if requested. - if ($$self{opt_stderr} and not $$self{opt_errors}) { - $$self{opt_errors} = 'stderr'; - } - delete $$self{opt_stderr}; - - # Validate the errors parameter and act on it. - if (not defined $$self{opt_errors}) { - $$self{opt_errors} = 'pod'; - } - if ($$self{opt_errors} eq 'stderr' || $$self{opt_errors} eq 'die') { - $self->no_errata_section (1); - $self->complain_stderr (1); - if ($$self{opt_errors} eq 'die') { - $$self{complain_die} = 1; - } - } elsif ($$self{opt_errors} eq 'pod') { - $self->no_errata_section (0); - $self->complain_stderr (0); - } elsif ($$self{opt_errors} eq 'none') { - $self->no_whining (1); - } else { - croak (qq(Invalid errors setting: "$$self{errors}")); - } - delete $$self{errors}; - - # Initialize various things from our parameters. - $$self{opt_alt} = 0 unless defined $$self{opt_alt}; - $$self{opt_indent} = 4 unless defined $$self{opt_indent}; - $$self{opt_margin} = 0 unless defined $$self{opt_margin}; - $$self{opt_loose} = 0 unless defined $$self{opt_loose}; - $$self{opt_sentence} = 0 unless defined $$self{opt_sentence}; - $$self{opt_width} = 76 unless defined $$self{opt_width}; - - # Figure out what quotes we'll be using for C<> text. - $$self{opt_quotes} ||= '"'; - if ($$self{opt_quotes} eq 'none') { - $$self{LQUOTE} = $$self{RQUOTE} = ''; - } elsif (length ($$self{opt_quotes}) == 1) { - $$self{LQUOTE} = $$self{RQUOTE} = $$self{opt_quotes}; - } elsif (length ($$self{opt_quotes}) % 2 == 0) { - my $length = length ($$self{opt_quotes}) / 2; - $$self{LQUOTE} = substr ($$self{opt_quotes}, 0, $length); - $$self{RQUOTE} = substr ($$self{opt_quotes}, $length); - } else { - croak qq(Invalid quote specification "$$self{opt_quotes}"); - } - - # If requested, do something with the non-POD text. - $self->code_handler (\&handle_code) if $$self{opt_code}; - - # Return the created object. - return $self; -} - -############################################################################## -# Core parsing -############################################################################## - -# This is the glue that connects the code below with Pod::Simple itself. The -# goal is to convert the event stream coming from the POD parser into method -# calls to handlers once the complete content of a tag has been seen. Each -# paragraph or POD command will have textual content associated with it, and -# as soon as all of a paragraph or POD command has been seen, that content -# will be passed in to the corresponding method for handling that type of -# object. The exceptions are handlers for lists, which have opening tag -# handlers and closing tag handlers that will be called right away. -# -# The internal hash key PENDING is used to store the contents of a tag until -# all of it has been seen. It holds a stack of open tags, each one -# represented by a tuple of the attributes hash for the tag and the contents -# of the tag. - -# Add a block of text to the contents of the current node, formatting it -# according to the current formatting instructions as we do. -sub _handle_text { - my ($self, $text) = @_; - my $tag = $$self{PENDING}[-1]; - $$tag[1] .= $text; -} - -# Given an element name, get the corresponding method name. -sub method_for_element { - my ($self, $element) = @_; - $element =~ tr/-/_/; - $element =~ tr/A-Z/a-z/; - $element =~ tr/_a-z0-9//cd; - return $element; -} - -# Handle the start of a new element. If cmd_element is defined, assume that -# we need to collect the entire tree for this element before passing it to the -# element method, and create a new tree into which we'll collect blocks of -# text and nested elements. Otherwise, if start_element is defined, call it. -sub _handle_element_start { - my ($self, $element, $attrs) = @_; - my $method = $self->method_for_element ($element); - - # If we have a command handler, we need to accumulate the contents of the - # tag before calling it. - if ($self->can ("cmd_$method")) { - push (@{ $$self{PENDING} }, [ $attrs, '' ]); - } elsif ($self->can ("start_$method")) { - my $method = 'start_' . $method; - $self->$method ($attrs, ''); - } -} - -# Handle the end of an element. If we had a cmd_ method for this element, -# this is where we pass along the text that we've accumulated. Otherwise, if -# we have an end_ method for the element, call that. -sub _handle_element_end { - my ($self, $element) = @_; - my $method = $self->method_for_element ($element); - - # If we have a command handler, pull off the pending text and pass it to - # the handler along with the saved attribute hash. - if ($self->can ("cmd_$method")) { - my $tag = pop @{ $$self{PENDING} }; - my $method = 'cmd_' . $method; - my $text = $self->$method (@$tag); - if (defined $text) { - if (@{ $$self{PENDING} } > 1) { - $$self{PENDING}[-1][1] .= $text; - } else { - $self->output ($text); - } - } - } elsif ($self->can ("end_$method")) { - my $method = 'end_' . $method; - $self->$method (); - } -} - -############################################################################## -# Output formatting -############################################################################## - -# Wrap a line, indenting by the current left margin. We can't use Text::Wrap -# because it plays games with tabs. We can't use formline, even though we'd -# really like to, because it screws up non-printing characters. So we have to -# do the wrapping ourselves. -sub wrap { - my $self = shift; - local $_ = shift; - my $output = ''; - my $spaces = ' ' x $$self{MARGIN}; - my $width = $$self{opt_width} - $$self{MARGIN}; - while (length > $width) { - if (s/^([^\n]{0,$width})\s+// || s/^([^\n]{$width})//) { - $output .= $spaces . $1 . "\n"; - } else { - last; - } - } - $output .= $spaces . $_; - $output =~ s/\s+$/\n\n/; - return $output; -} - -# Reformat a paragraph of text for the current margin. Takes the text to -# reformat and returns the formatted text. -sub reformat { - my $self = shift; - local $_ = shift; - - # If we're trying to preserve two spaces after sentences, do some munging - # to support that. Otherwise, smash all repeated whitespace. - if ($$self{opt_sentence}) { - s/ +$//mg; - s/\.\n/. \n/g; - s/\n/ /g; - s/ +/ /g; - } else { - s/\s+/ /g; - } - return $self->wrap ($_); -} - -# Output text to the output device. Replace non-breaking spaces with spaces -# and soft hyphens with nothing, and then try to fix the output encoding if -# necessary to match the input encoding unless UTF-8 output is forced. This -# preserves the traditional pass-through behavior of Pod::Text. -sub output { - my ($self, @text) = @_; - my $text = join ('', @text); - if ($NBSP) { - $text =~ s/$NBSP/ /g; - } - if ($SHY) { - $text =~ s/$SHY//g; - } - unless ($$self{opt_utf8}) { - my $encoding = $$self{encoding} || ''; - if ($encoding && $encoding ne $$self{ENCODING}) { - $$self{ENCODING} = $encoding; - eval { binmode ($$self{output_fh}, ":encoding($encoding)") }; - } - } - if ($$self{ENCODE}) { - print { $$self{output_fh} } encode ('UTF-8', $text); - } else { - print { $$self{output_fh} } $text; - } -} - -# Output a block of code (something that isn't part of the POD text). Called -# by preprocess_paragraph only if we were given the code option. Exists here -# only so that it can be overridden by subclasses. -sub output_code { $_[0]->output ($_[1]) } - -############################################################################## -# Document initialization -############################################################################## - -# Set up various things that have to be initialized on a per-document basis. -sub start_document { - my ($self, $attrs) = @_; - if ($$attrs{contentless} && !$$self{ALWAYS_EMIT_SOMETHING}) { - $$self{CONTENTLESS} = 1; - } else { - delete $$self{CONTENTLESS}; - } - my $margin = $$self{opt_indent} + $$self{opt_margin}; - - # Initialize a few per-document variables. - $$self{INDENTS} = []; # Stack of indentations. - $$self{MARGIN} = $margin; # Default left margin. - $$self{PENDING} = [[]]; # Pending output. - - # We have to redo encoding handling for each document. - $$self{ENCODING} = ''; - - # When UTF-8 output is set, check whether our output file handle already - # has a PerlIO encoding layer set. If it does not, we'll need to encode - # our output before printing it (handled in the output() sub). Wrap the - # check in an eval to handle versions of Perl without PerlIO. - $$self{ENCODE} = 0; - if ($$self{opt_utf8}) { - $$self{ENCODE} = 1; - eval { - my @options = (output => 1, details => 1); - my $flag = (PerlIO::get_layers ($$self{output_fh}, @options))[-1]; - if ($flag & PerlIO::F_UTF8 ()) { - $$self{ENCODE} = 0; - $$self{ENCODING} = 'UTF-8'; - } - }; - } - - return ''; -} - -# Handle the end of the document. The only thing we do is handle dying on POD -# errors, since Pod::Parser currently doesn't. -sub end_document { - my ($self) = @_; - if ($$self{complain_die} && $self->errors_seen) { - croak ("POD document had syntax errors"); - } -} - -############################################################################## -# Text blocks -############################################################################## - -# Intended for subclasses to override, this method returns text with any -# non-printing formatting codes stripped out so that length() correctly -# returns the length of the text. For basic Pod::Text, it does nothing. -sub strip_format { - my ($self, $string) = @_; - return $string; -} - -# This method is called whenever an =item command is complete (in other words, -# we've seen its associated paragraph or know for certain that it doesn't have -# one). It gets the paragraph associated with the item as an argument. If -# that argument is empty, just output the item tag; if it contains a newline, -# output the item tag followed by the newline. Otherwise, see if there's -# enough room for us to output the item tag in the margin of the text or if we -# have to put it on a separate line. -sub item { - my ($self, $text) = @_; - my $tag = $$self{ITEM}; - unless (defined $tag) { - carp "Item called without tag"; - return; - } - undef $$self{ITEM}; - - # Calculate the indentation and margin. $fits is set to true if the tag - # will fit into the margin of the paragraph given our indentation level. - my $indent = $$self{INDENTS}[-1]; - $indent = $$self{opt_indent} unless defined $indent; - my $margin = ' ' x $$self{opt_margin}; - my $tag_length = length ($self->strip_format ($tag)); - my $fits = ($$self{MARGIN} - $indent >= $tag_length + 1); - - # If the tag doesn't fit, or if we have no associated text, print out the - # tag separately. Otherwise, put the tag in the margin of the paragraph. - if (!$text || $text =~ /^\s+$/ || !$fits) { - my $realindent = $$self{MARGIN}; - $$self{MARGIN} = $indent; - my $output = $self->reformat ($tag); - $output =~ s/^$margin /$margin:/ if ($$self{opt_alt} && $indent > 0); - $output =~ s/\n*$/\n/; - - # If the text is just whitespace, we have an empty item paragraph; - # this can result from =over/=item/=back without any intermixed - # paragraphs. Insert some whitespace to keep the =item from merging - # into the next paragraph. - $output .= "\n" if $text && $text =~ /^\s*$/; - - $self->output ($output); - $$self{MARGIN} = $realindent; - $self->output ($self->reformat ($text)) if ($text && $text =~ /\S/); - } else { - my $space = ' ' x $indent; - $space =~ s/^$margin /$margin:/ if $$self{opt_alt}; - $text = $self->reformat ($text); - $text =~ s/^$margin /$margin:/ if ($$self{opt_alt} && $indent > 0); - my $tagspace = ' ' x $tag_length; - $text =~ s/^($space)$tagspace/$1$tag/ or warn "Bizarre space in item"; - $self->output ($text); - } -} - -# Handle a basic block of text. The only tricky thing here is that if there -# is a pending item tag, we need to format this as an item paragraph. -sub cmd_para { - my ($self, $attrs, $text) = @_; - $text =~ s/\s+$/\n/; - if (defined $$self{ITEM}) { - $self->item ($text . "\n"); - } else { - $self->output ($self->reformat ($text . "\n")); - } - return ''; -} - -# Handle a verbatim paragraph. Just print it out, but indent it according to -# our margin. -sub cmd_verbatim { - my ($self, $attrs, $text) = @_; - $self->item if defined $$self{ITEM}; - return if $text =~ /^\s*$/; - $text =~ s/^(\n*)([ \t]*\S+)/$1 . (' ' x $$self{MARGIN}) . $2/gme; - $text =~ s/\s*$/\n\n/; - $self->output ($text); - return ''; -} - -# Handle literal text (produced by =for and similar constructs). Just output -# it with the minimum of changes. -sub cmd_data { - my ($self, $attrs, $text) = @_; - $text =~ s/^\n+//; - $text =~ s/\n{0,2}$/\n/; - $self->output ($text); - return ''; -} - -############################################################################## -# Headings -############################################################################## - -# The common code for handling all headers. Takes the header text, the -# indentation, and the surrounding marker for the alt formatting method. -sub heading { - my ($self, $text, $indent, $marker) = @_; - $self->item ("\n\n") if defined $$self{ITEM}; - $text =~ s/\s+$//; - if ($$self{opt_alt}) { - my $closemark = reverse (split (//, $marker)); - my $margin = ' ' x $$self{opt_margin}; - $self->output ("\n" . "$margin$marker $text $closemark" . "\n\n"); - } else { - $text .= "\n" if $$self{opt_loose}; - my $margin = ' ' x ($$self{opt_margin} + $indent); - $self->output ($margin . $text . "\n"); - } - return ''; -} - -# First level heading. -sub cmd_head1 { - my ($self, $attrs, $text) = @_; - $self->heading ($text, 0, '===='); -} - -# Second level heading. -sub cmd_head2 { - my ($self, $attrs, $text) = @_; - $self->heading ($text, $$self{opt_indent} / 2, '== '); -} - -# Third level heading. -sub cmd_head3 { - my ($self, $attrs, $text) = @_; - $self->heading ($text, $$self{opt_indent} * 2 / 3 + 0.5, '= '); -} - -# Fourth level heading. -sub cmd_head4 { - my ($self, $attrs, $text) = @_; - $self->heading ($text, $$self{opt_indent} * 3 / 4 + 0.5, '- '); -} - -############################################################################## -# List handling -############################################################################## - -# Handle the beginning of an =over block. Takes the type of the block as the -# first argument, and then the attr hash. This is called by the handlers for -# the four different types of lists (bullet, number, text, and block). -sub over_common_start { - my ($self, $attrs) = @_; - $self->item ("\n\n") if defined $$self{ITEM}; - - # Find the indentation level. - my $indent = $$attrs{indent}; - unless (defined ($indent) && $indent =~ /^\s*[-+]?\d{1,4}\s*$/) { - $indent = $$self{opt_indent}; - } - - # Add this to our stack of indents and increase our current margin. - push (@{ $$self{INDENTS} }, $$self{MARGIN}); - $$self{MARGIN} += ($indent + 0); - return ''; -} - -# End an =over block. Takes no options other than the class pointer. Output -# any pending items and then pop one level of indentation. -sub over_common_end { - my ($self) = @_; - $self->item ("\n\n") if defined $$self{ITEM}; - $$self{MARGIN} = pop @{ $$self{INDENTS} }; - return ''; -} - -# Dispatch the start and end calls as appropriate. -sub start_over_bullet { $_[0]->over_common_start ($_[1]) } -sub start_over_number { $_[0]->over_common_start ($_[1]) } -sub start_over_text { $_[0]->over_common_start ($_[1]) } -sub start_over_block { $_[0]->over_common_start ($_[1]) } -sub end_over_bullet { $_[0]->over_common_end } -sub end_over_number { $_[0]->over_common_end } -sub end_over_text { $_[0]->over_common_end } -sub end_over_block { $_[0]->over_common_end } - -# The common handler for all item commands. Takes the type of the item, the -# attributes, and then the text of the item. -sub item_common { - my ($self, $type, $attrs, $text) = @_; - $self->item if defined $$self{ITEM}; - - # Clean up the text. We want to end up with two variables, one ($text) - # which contains any body text after taking out the item portion, and - # another ($item) which contains the actual item text. Note the use of - # the internal Pod::Simple attribute here; that's a potential land mine. - $text =~ s/\s+$//; - my ($item, $index); - if ($type eq 'bullet') { - $item = '*'; - } elsif ($type eq 'number') { - $item = $$attrs{'~orig_content'}; - } else { - $item = $text; - $item =~ s/\s*\n\s*/ /g; - $text = ''; - } - $$self{ITEM} = $item; - - # If body text for this item was included, go ahead and output that now. - if ($text) { - $text =~ s/\s*$/\n/; - $self->item ($text); - } - return ''; -} - -# Dispatch the item commands to the appropriate place. -sub cmd_item_bullet { my $self = shift; $self->item_common ('bullet', @_) } -sub cmd_item_number { my $self = shift; $self->item_common ('number', @_) } -sub cmd_item_text { my $self = shift; $self->item_common ('text', @_) } -sub cmd_item_block { my $self = shift; $self->item_common ('block', @_) } - -############################################################################## -# Formatting codes -############################################################################## - -# The simple ones. -sub cmd_b { return $_[0]{alt} ? "``$_[2]''" : $_[2] } -sub cmd_f { return $_[0]{alt} ? "\"$_[2]\"" : $_[2] } -sub cmd_i { return '*' . $_[2] . '*' } -sub cmd_x { return '' } - -# Apply a whole bunch of messy heuristics to not quote things that don't -# benefit from being quoted. These originally come from Barrie Slaymaker and -# largely duplicate code in Pod::Man. -sub cmd_c { - my ($self, $attrs, $text) = @_; - - # A regex that matches the portion of a variable reference that's the - # array or hash index, separated out just because we want to use it in - # several places in the following regex. - my $index = '(?: \[.*\] | \{.*\} )?'; - - # Check for things that we don't want to quote, and if we find any of - # them, return the string with just a font change and no quoting. - $text =~ m{ - ^\s* - (?: - ( [\'\`\"] ) .* \1 # already quoted - | \` .* \' # `quoted' - | \$+ [\#^]? \S $index # special ($^Foo, $") - | [\$\@%&*]+ \#? [:\'\w]+ $index # plain var or func - | [\$\@%&*]* [:\'\w]+ (?: -> )? \(\s*[^\s,]\s*\) # 0/1-arg func call - | [+-]? ( \d[\d.]* | \.\d+ ) (?: [eE][+-]?\d+ )? # a number - | 0x [a-fA-F\d]+ # a hex constant - ) - \s*\z - }xo && return $text; - - # If we didn't return, go ahead and quote the text. - return $$self{opt_alt} - ? "``$text''" - : "$$self{LQUOTE}$text$$self{RQUOTE}"; -} - -# Links reduce to the text that we're given, wrapped in angle brackets if it's -# a URL. -sub cmd_l { - my ($self, $attrs, $text) = @_; - if ($$attrs{type} eq 'url') { - if (not defined($$attrs{to}) or $$attrs{to} eq $text) { - return "<$text>"; - } elsif ($$self{opt_nourls}) { - return $text; - } else { - return "$text <$$attrs{to}>"; - } - } else { - return $text; - } -} - -############################################################################## -# Backwards compatibility -############################################################################## - -# The old Pod::Text module did everything in a pod2text() function. This -# tries to provide the same interface for legacy applications. -sub pod2text { - my @args; - - # This is really ugly; I hate doing option parsing in the middle of a - # module. But the old Pod::Text module supported passing flags to its - # entry function, so handle -a and -. - while ($_[0] =~ /^-/) { - my $flag = shift; - if ($flag eq '-a') { push (@args, alt => 1) } - elsif ($flag =~ /^-(\d+)$/) { push (@args, width => $1) } - else { - unshift (@_, $flag); - last; - } - } - - # Now that we know what arguments we're using, create the parser. - my $parser = Pod::Text->new (@args); - - # If two arguments were given, the second argument is going to be a file - # handle. That means we want to call parse_from_filehandle(), which means - # we need to turn the first argument into a file handle. Magic open will - # handle the <&STDIN case automagically. - if (defined $_[1]) { - my @fhs = @_; - local *IN; - unless (open (IN, $fhs[0])) { - croak ("Can't open $fhs[0] for reading: $!\n"); - return; - } - $fhs[0] = \*IN; - $parser->output_fh ($fhs[1]); - my $retval = $parser->parse_file ($fhs[0]); - my $fh = $parser->output_fh (); - close $fh; - return $retval; - } else { - $parser->output_fh (\*STDOUT); - return $parser->parse_file (@_); - } -} - -# Reset the underlying Pod::Simple object between calls to parse_from_file so -# that the same object can be reused to convert multiple pages. -sub parse_from_file { - my $self = shift; - $self->reinit; - - # Fake the old cutting option to Pod::Parser. This fiddings with internal - # Pod::Simple state and is quite ugly; we need a better approach. - if (ref ($_[0]) eq 'HASH') { - my $opts = shift @_; - if (defined ($$opts{-cutting}) && !$$opts{-cutting}) { - $$self{in_pod} = 1; - $$self{last_was_blank} = 1; - } - } - - # Do the work. - my $retval = $self->Pod::Simple::parse_from_file (@_); - - # Flush output, since Pod::Simple doesn't do this. Ideally we should also - # close the file descriptor if we had to open one, but we can't easily - # figure this out. - my $fh = $self->output_fh (); - my $oldfh = select $fh; - my $oldflush = $|; - $| = 1; - print $fh ''; - $| = $oldflush; - select $oldfh; - return $retval; -} - -# Pod::Simple failed to provide this backward compatibility function, so -# implement it ourselves. File handles are one of the inputs that -# parse_from_file supports. -sub parse_from_filehandle { - my $self = shift; - $self->parse_from_file (@_); -} - -# Pod::Simple's parse_file doesn't set output_fh. Wrap the call and do so -# ourself unless it was already set by the caller, since our documentation has -# always said that this should work. -sub parse_file { - my ($self, $in) = @_; - unless (defined $$self{output_fh}) { - $self->output_fh (\*STDOUT); - } - return $self->SUPER::parse_file ($in); -} - -# Do the same for parse_lines, just to be polite. Pod::Simple's man page -# implies that the caller is responsible for setting this, but I don't see any -# reason not to set a default. -sub parse_lines { - my ($self, @lines) = @_; - unless (defined $$self{output_fh}) { - $self->output_fh (\*STDOUT); - } - return $self->SUPER::parse_lines (@lines); -} - -# Likewise for parse_string_document. -sub parse_string_document { - my ($self, $doc) = @_; - unless (defined $$self{output_fh}) { - $self->output_fh (\*STDOUT); - } - return $self->SUPER::parse_string_document ($doc); -} - -############################################################################## -# Module return value and documentation -############################################################################## - -1; -__END__ - -#line 1032 diff --git a/software/Slic3r-1.3.0.64bit/lib/Pod/Usage.pm b/software/Slic3r-1.3.0.64bit/lib/Pod/Usage.pm deleted file mode 100644 index 935f5138..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Pod/Usage.pm +++ /dev/null @@ -1,378 +0,0 @@ -#line 1 "Pod/Usage.pm" -############################################################################# -# Pod/Usage.pm -- print usage messages for the running script. -# -# Copyright (c) 1996-2000 by Bradford Appleton. All rights reserved. -# Copyright (c) 2001-2016 by Marek Rouchal. -# This file is part of "Pod-Usage". Pod-Usage is free software; -# you can redistribute it and/or modify it under the same terms -# as Perl itself. -############################################################################# - -package Pod::Usage; -use strict; - -use vars qw($VERSION @ISA @EXPORT); -$VERSION = '1.69'; ## Current version of this package -require 5.006; ## requires this Perl version or later - -#use diagnostics; -use Carp; -use Config; -use Exporter; -use File::Spec; - -@EXPORT = qw(&pod2usage); -BEGIN { - $Pod::Usage::Formatter ||= 'Pod::Text'; - eval "require $Pod::Usage::Formatter"; - die $@ if $@; - @ISA = ( $Pod::Usage::Formatter ); -} - -our $MAX_HEADING_LEVEL = 3; - -##--------------------------------------------------------------------------- - -##--------------------------------- -## Function definitions begin here -##--------------------------------- - -sub pod2usage { - local($_) = shift; - my %opts; - ## Collect arguments - if (@_ > 0) { - ## Too many arguments - assume that this is a hash and - ## the user forgot to pass a reference to it. - %opts = ($_, @_); - } - elsif (!defined $_) { - $_ = ''; - } - elsif (ref $_) { - ## User passed a ref to a hash - %opts = %{$_} if (ref($_) eq 'HASH'); - } - elsif (/^[-+]?\d+$/) { - ## User passed in the exit value to use - $opts{'-exitval'} = $_; - } - else { - ## User passed in a message to print before issuing usage. - $_ and $opts{'-message'} = $_; - } - - ## Need this for backward compatibility since we formerly used - ## options that were all uppercase words rather than ones that - ## looked like Unix command-line options. - ## to be uppercase keywords) - %opts = map { - my ($key, $val) = ($_, $opts{$_}); - $key =~ s/^(?=\w)/-/; - $key =~ /^-msg/i and $key = '-message'; - $key =~ /^-exit/i and $key = '-exitval'; - lc($key) => $val; - } (keys %opts); - - ## Now determine default -exitval and -verbose values to use - if ((! defined $opts{'-exitval'}) && (! defined $opts{'-verbose'})) { - $opts{'-exitval'} = 2; - $opts{'-verbose'} = 0; - } - elsif (! defined $opts{'-exitval'}) { - $opts{'-exitval'} = ($opts{'-verbose'} > 0) ? 1 : 2; - } - elsif (! defined $opts{'-verbose'}) { - $opts{'-verbose'} = (lc($opts{'-exitval'}) eq 'noexit' || - $opts{'-exitval'} < 2); - } - - ## Default the output file - $opts{'-output'} = (lc($opts{'-exitval'}) eq 'noexit' || - $opts{'-exitval'} < 2) ? \*STDOUT : \*STDERR - unless (defined $opts{'-output'}); - ## Default the input file - $opts{'-input'} = $ENV{PAR_0} || $0 unless (defined $opts{'-input'}); - - ## Look up input file in path if it doesn't exist. - unless ((ref $opts{'-input'}) || (-e $opts{'-input'})) { - my $basename = $opts{'-input'}; - my $pathsep = ($^O =~ /^(?:dos|os2|MSWin32)$/i) ? ';' - : (($^O eq 'MacOS' || $^O eq 'VMS') ? ',' : ':'); - my $pathspec = $opts{'-pathlist'} || $ENV{PATH} || $ENV{PERL5LIB}; - - my @paths = (ref $pathspec) ? @$pathspec : split($pathsep, $pathspec); - for my $dirname (@paths) { - $_ = File::Spec->catfile($dirname, $basename) if length; - last if (-e $_) && ($opts{'-input'} = $_); - } - } - - ## Now create a pod reader and constrain it to the desired sections. - my $parser = new Pod::Usage(USAGE_OPTIONS => \%opts); - if ($opts{'-verbose'} == 0) { - $parser->select('(?:SYNOPSIS|USAGE)\s*'); - } - elsif ($opts{'-verbose'} == 1) { - my $opt_re = '(?i)' . - '(?:OPTIONS|ARGUMENTS)' . - '(?:\s*(?:AND|\/)\s*(?:OPTIONS|ARGUMENTS))?'; - $parser->select( '(?:SYNOPSIS|USAGE)\s*', $opt_re, "DESCRIPTION/$opt_re" ); - } - elsif ($opts{'-verbose'} >= 2 && $opts{'-verbose'} != 99) { - $parser->select('.*'); - } - elsif ($opts{'-verbose'} == 99) { - my $sections = $opts{'-sections'}; - $parser->select( (ref $sections) ? @$sections : $sections ); - $opts{'-verbose'} = 1; - } - - ## Check for perldoc - my $progpath = $opts{'-perldoc'} ? $opts{'-perldoc'} : - File::Spec->catfile($Config{scriptdirexp} - || $Config{scriptdir}, 'perldoc'); - - my $version = sprintf("%vd",$^V); - if ($Config{versiononly} and $Config{startperl} =~ /\Q$version\E$/ ) { - $progpath .= $version; - } - $opts{'-noperldoc'} = 1 unless -e $progpath; - - ## Now translate the pod document and then exit with the desired status - if ( !$opts{'-noperldoc'} - and $opts{'-verbose'} >= 2 - and !ref($opts{'-input'}) - and $opts{'-output'} == \*STDOUT ) - { - ## spit out the entire PODs. Might as well invoke perldoc - print { $opts{'-output'} } ($opts{'-message'}, "\n") if($opts{'-message'}); - if(defined $opts{-input} && $opts{-input} =~ /^\s*(\S.*?)\s*$/) { - # the perldocs back to 5.005 should all have -F - # without -F there are warnings in -T scripts - my $f = $1; - my @perldoc_cmd = ($progpath); - if ($opts{'-perldocopt'}) { - $opts{'-perldocopt'} =~ s/^\s+|\s+$//g; - push @perldoc_cmd, split(/\s+/, $opts{'-perldocopt'}); - } - push @perldoc_cmd, ('-F', $f); - unshift @perldoc_cmd, $opts{'-perlcmd'} if $opts{'-perlcmd'}; - system(@perldoc_cmd); - if($?) { - # RT16091: fall back to more if perldoc failed - system(($Config{pager} || $ENV{PAGER} || '/bin/more'), $1); - } - } else { - croak "Unspecified input file or insecure argument.\n"; - } - } - else { - $parser->parse_from_file($opts{'-input'}, $opts{'-output'}); - } - - exit($opts{'-exitval'}) unless (lc($opts{'-exitval'}) eq 'noexit'); -} - -##--------------------------------------------------------------------------- - -##------------------------------- -## Method definitions begin here -##------------------------------- - -sub new { - my $this = shift; - my $class = ref($this) || $this; - my %params = @_; - my $self = {%params}; - bless $self, $class; - if ($self->can('initialize')) { - $self->initialize(); - } else { - # pass through options to Pod::Text - my %opts; - for (qw(alt code indent loose margin quotes sentence stderr utf8 width)) { - my $val = $params{USAGE_OPTIONS}{"-$_"}; - $opts{$_} = $val if defined $val; - } - $self = $self->SUPER::new(%opts); - %$self = (%$self, %params); - } - return $self; -} - -# This subroutine was copied in whole-cloth from Pod::Select 1.60 in order to -# allow the ejection of Pod::Select from the core without breaking Pod::Usage. -# -- rjbs, 2013-03-18 -sub _compile_section_spec { - my ($section_spec) = @_; - my (@regexs, $negated); - - ## Compile the spec into a list of regexs - local $_ = $section_spec; - s{\\\\}{\001}g; ## handle escaped backward slashes - s{\\/}{\002}g; ## handle escaped forward slashes - - ## Parse the regexs for the heading titles - @regexs = split(/\//, $_, $MAX_HEADING_LEVEL); - - ## Set default regex for ommitted levels - for (my $i = 0; $i < $MAX_HEADING_LEVEL; ++$i) { - $regexs[$i] = '.*' unless ((defined $regexs[$i]) - && (length $regexs[$i])); - } - ## Modify the regexs as needed and validate their syntax - my $bad_regexs = 0; - for (@regexs) { - $_ .= '.+' if ($_ eq '!'); - s{\001}{\\\\}g; ## restore escaped backward slashes - s{\002}{\\/}g; ## restore escaped forward slashes - $negated = s/^\!//; ## check for negation - eval "m{$_}"; ## check regex syntax - if ($@) { - ++$bad_regexs; - carp qq{Bad regular expression /$_/ in "$section_spec": $@\n}; - } - else { - ## Add the forward and rear anchors (and put the negator back) - $_ = '^' . $_ unless (/^\^/); - $_ = $_ . '$' unless (/\$$/); - $_ = '!' . $_ if ($negated); - } - } - return (! $bad_regexs) ? [ @regexs ] : undef; -} - -sub select { - my ($self, @sections) = @_; - if ($ISA[0]->can('select')) { - $self->SUPER::select(@sections); - } else { - # we're using Pod::Simple - need to mimic the behavior of Pod::Select - my $add = ($sections[0] eq '+') ? shift(@sections) : ''; - ## Reset the set of sections to use - unless (@sections) { - delete $self->{USAGE_SELECT} unless ($add); - return; - } - $self->{USAGE_SELECT} = [] - unless ($add && $self->{USAGE_SELECT}); - my $sref = $self->{USAGE_SELECT}; - ## Compile each spec - for my $spec (@sections) { - my $cs = _compile_section_spec($spec); - if ( defined $cs ) { - ## Store them in our sections array - push(@$sref, $cs); - } else { - carp qq{Ignoring section spec "$spec"!\n}; - } - } - } -} - -# Override Pod::Text->seq_i to return just "arg", not "*arg*". -sub seq_i { return $_[1] } -# Override Pod::Text->cmd_i to return just "arg", not "*arg*". -# newer version based on Pod::Simple -sub cmd_i { return $_[2] } - -# This overrides the Pod::Text method to do something very akin to what -# Pod::Select did as well as the work done below by preprocess_paragraph. -# Note that the below is very, very specific to Pod::Text and Pod::Simple. -sub _handle_element_end { - my ($self, $element) = @_; - if ($element eq 'head1') { - $self->{USAGE_HEADINGS} = [ $$self{PENDING}[-1][1] ]; - if ($self->{USAGE_OPTIONS}->{-verbose} < 2) { - $$self{PENDING}[-1][1] =~ s/^\s*SYNOPSIS\s*$/USAGE/; - } - } elsif ($element =~ /^head(\d+)$/ && $1) { # avoid 0 - my $idx = $1 - 1; - $self->{USAGE_HEADINGS} = [] unless($self->{USAGE_HEADINGS}); - $self->{USAGE_HEADINGS}->[$idx] = $$self{PENDING}[-1][1]; - # we have to get rid of the lower headings - splice(@{$self->{USAGE_HEADINGS}},$idx+1); - } - if ($element =~ /^head\d+$/) { - $$self{USAGE_SKIPPING} = 1; - if (!$$self{USAGE_SELECT} || !@{ $$self{USAGE_SELECT} }) { - $$self{USAGE_SKIPPING} = 0; - } else { - my @headings = @{$$self{USAGE_HEADINGS}}; - for my $section_spec ( @{$$self{USAGE_SELECT}} ) { - my $match = 1; - for (my $i = 0; $i < $MAX_HEADING_LEVEL; ++$i) { - $headings[$i] = '' unless defined $headings[$i]; - my $regex = $section_spec->[$i]; - my $negated = ($regex =~ s/^\!//); - $match &= ($negated ? ($headings[$i] !~ /${regex}/) - : ($headings[$i] =~ /${regex}/)); - last unless ($match); - } # end heading levels - if ($match) { - $$self{USAGE_SKIPPING} = 0; - last; - } - } # end sections - } - - # Try to do some lowercasing instead of all-caps in headings, and use - # a colon to end all headings. - if($self->{USAGE_OPTIONS}->{-verbose} < 2) { - local $_ = $$self{PENDING}[-1][1]; - s{([A-Z])([A-Z]+)}{((length($2) > 2) ? $1 : lc($1)) . lc($2)}ge; - s/\s*$/:/ unless (/:\s*$/); - $_ .= "\n"; - $$self{PENDING}[-1][1] = $_; - } - } - if ($$self{USAGE_SKIPPING} && $element !~ m/^over-|^[BCFILSZ]$/) { - pop @{ $$self{PENDING} }; - } else { - $self->SUPER::_handle_element_end($element); - } -} - -# required for Pod::Simple API -sub start_document { - my $self = shift; - $self->SUPER::start_document(); - my $msg = $self->{USAGE_OPTIONS}->{-message} or return 1; - my $out_fh = $self->output_fh(); - print $out_fh "$msg\n"; -} - -# required for old Pod::Parser API -sub begin_pod { - my $self = shift; - $self->SUPER::begin_pod(); ## Have to call superclass - my $msg = $self->{USAGE_OPTIONS}->{-message} or return 1; - my $out_fh = $self->output_handle(); - print $out_fh "$msg\n"; -} - -sub preprocess_paragraph { - my $self = shift; - local $_ = shift; - my $line = shift; - ## See if this is a heading and we aren't printing the entire manpage. - if (($self->{USAGE_OPTIONS}->{-verbose} < 2) && /^=head/) { - ## Change the title of the SYNOPSIS section to USAGE - s/^=head1\s+SYNOPSIS\s*$/=head1 USAGE/; - ## Try to do some lowercasing instead of all-caps in headings - s{([A-Z])([A-Z]+)}{((length($2) > 2) ? $1 : lc($1)) . lc($2)}ge; - ## Use a colon to end all headings - s/\s*$/:/ unless (/:\s*$/); - $_ .= "\n"; - } - return $self->SUPER::preprocess_paragraph($_); -} - -1; # keep require happy - -__END__ - -#line 895 - diff --git a/software/Slic3r-1.3.0.64bit/lib/Role/Tiny.pm b/software/Slic3r-1.3.0.64bit/lib/Role/Tiny.pm deleted file mode 100644 index 633973a8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Role/Tiny.pm +++ /dev/null @@ -1,478 +0,0 @@ -#line 1 "Role/Tiny.pm" -package Role::Tiny; - -sub _getglob { \*{$_[0]} } -sub _getstash { \%{"$_[0]::"} } - -use strict; -use warnings; - -our $VERSION = '2.000005'; -$VERSION = eval $VERSION; - -our %INFO; -our %APPLIED_TO; -our %COMPOSED; -our %COMPOSITE_INFO; -our @ON_ROLE_CREATE; - -# Module state workaround totally stolen from Zefram's Module::Runtime. - -BEGIN { - *_WORK_AROUND_BROKEN_MODULE_STATE = "$]" < 5.009 ? sub(){1} : sub(){0}; - *_MRO_MODULE = "$]" < 5.010 ? sub(){"MRO/Compat.pm"} : sub(){"mro.pm"}; -} - -sub croak { - require Carp; - no warnings 'redefine'; - *croak = \&Carp::croak; - goto &Carp::croak; -} - -sub Role::Tiny::__GUARD__::DESTROY { - delete $INC{$_[0]->[0]} if @{$_[0]}; -} - -sub _load_module { - (my $proto = $_[0]) =~ s/::/\//g; - $proto .= '.pm'; - return 1 if $INC{$proto}; - # can't just ->can('can') because a sub-package Foo::Bar::Baz - # creates a 'Baz::' key in Foo::Bar's symbol table - return 1 if grep !/::$/, keys %{_getstash($_[0])||{}}; - my $guard = _WORK_AROUND_BROKEN_MODULE_STATE - && bless([ $proto ], 'Role::Tiny::__GUARD__'); - require $proto; - pop @$guard if _WORK_AROUND_BROKEN_MODULE_STATE; - return 1; -} - -sub import { - my $target = caller; - my $me = shift; - strict->import; - warnings->import; - $me->_install_subs($target); - return if $me->is_role($target); # already exported into this package - $INFO{$target}{is_role} = 1; - # get symbol table reference - my $stash = _getstash($target); - # grab all *non-constant* (stash slot is not a scalarref) subs present - # in the symbol table and store their refaddrs (no need to forcibly - # inflate constant subs into real subs) with a map to the coderefs in - # case of copying or re-use - my @not_methods = (map { *$_{CODE}||() } grep !ref($_), values %$stash); - @{$INFO{$target}{not_methods}={}}{@not_methods} = @not_methods; - # a role does itself - $APPLIED_TO{$target} = { $target => undef }; - foreach my $hook (@ON_ROLE_CREATE) { - $hook->($target); - } -} - -sub _install_subs { - my ($me, $target) = @_; - return if $me->is_role($target); - # install before/after/around subs - foreach my $type (qw(before after around)) { - *{_getglob "${target}::${type}"} = sub { - push @{$INFO{$target}{modifiers}||=[]}, [ $type => @_ ]; - return; - }; - } - *{_getglob "${target}::requires"} = sub { - push @{$INFO{$target}{requires}||=[]}, @_; - return; - }; - *{_getglob "${target}::with"} = sub { - $me->apply_roles_to_package($target, @_); - return; - }; -} - -sub role_application_steps { - qw(_install_methods _check_requires _install_modifiers _copy_applied_list); -} - -sub apply_single_role_to_package { - my ($me, $to, $role) = @_; - - _load_module($role); - - croak "This is apply_role_to_package" if ref($to); - croak "${role} is not a Role::Tiny" unless $me->is_role($role); - - foreach my $step ($me->role_application_steps) { - $me->$step($to, $role); - } -} - -sub _copy_applied_list { - my ($me, $to, $role) = @_; - # copy our role list into the target's - @{$APPLIED_TO{$to}||={}}{keys %{$APPLIED_TO{$role}}} = (); -} - -sub apply_roles_to_object { - my ($me, $object, @roles) = @_; - croak "No roles supplied!" unless @roles; - my $class = ref($object); - # on perl < 5.8.9, magic isn't copied to all ref copies. bless the parameter - # directly, so at least the variable passed to us will get any magic applied - bless($_[1], $me->create_class_with_roles($class, @roles)); -} - -my $role_suffix = 'A000'; -sub _composite_name { - my ($me, $superclass, @roles) = @_; - - my $new_name = join( - '__WITH__', $superclass, my $compose_name = join '__AND__', @roles - ); - - if (length($new_name) > 252) { - $new_name = $COMPOSED{abbrev}{$new_name} ||= do { - my $abbrev = substr $new_name, 0, 250 - length $role_suffix; - $abbrev =~ s/(?_composite_name($superclass, @roles); - - return $new_name if $COMPOSED{class}{$new_name}; - - foreach my $role (@roles) { - _load_module($role); - croak "${role} is not a Role::Tiny" unless $me->is_role($role); - } - - require(_MRO_MODULE); - - my $composite_info = $me->_composite_info_for(@roles); - my %conflicts = %{$composite_info->{conflicts}}; - if (keys %conflicts) { - my $fail = - join "\n", - map { - "Method name conflict for '$_' between roles " - ."'".join("' and '", sort values %{$conflicts{$_}})."'" - .", cannot apply these simultaneously to an object." - } keys %conflicts; - croak $fail; - } - - my @composable = map $me->_composable_package_for($_), reverse @roles; - - # some methods may not exist in the role, but get generated by - # _composable_package_for (Moose accessors via Moo). filter out anything - # provided by the composable packages, excluding the subs we generated to - # make modifiers work. - my @requires = grep { - my $method = $_; - !grep $_->can($method) && !$COMPOSED{role}{$_}{modifiers_only}{$method}, - @composable - } @{$composite_info->{requires}}; - - $me->_check_requires( - $superclass, $compose_name, \@requires - ); - - *{_getglob("${new_name}::ISA")} = [ @composable, $superclass ]; - - @{$APPLIED_TO{$new_name}||={}}{ - map keys %{$APPLIED_TO{$_}}, @roles - } = (); - - $COMPOSED{class}{$new_name} = 1; - return $new_name; -} - -# preserved for compat, and apply_roles_to_package calls it to allow an -# updated Role::Tiny to use a non-updated Moo::Role - -sub apply_role_to_package { shift->apply_single_role_to_package(@_) } - -sub apply_roles_to_package { - my ($me, $to, @roles) = @_; - - return $me->apply_role_to_package($to, $roles[0]) if @roles == 1; - - my %conflicts = %{$me->_composite_info_for(@roles)->{conflicts}}; - my @have = grep $to->can($_), keys %conflicts; - delete @conflicts{@have}; - - if (keys %conflicts) { - my $fail = - join "\n", - map { - "Due to a method name conflict between roles " - ."'".join(' and ', sort values %{$conflicts{$_}})."'" - .", the method '$_' must be implemented by '${to}'" - } keys %conflicts; - croak $fail; - } - - # conflicting methods are supposed to be treated as required by the - # composed role. we don't have an actual composed role, but because - # we know the target class already provides them, we can instead - # pretend that the roles don't do for the duration of application. - my @role_methods = map $me->_concrete_methods_of($_), @roles; - # separate loops, since local ..., delete ... for ...; creates a scope - local @{$_}{@have} for @role_methods; - delete @{$_}{@have} for @role_methods; - - # the if guard here is essential since otherwise we accidentally create - # a $INFO for something that isn't a Role::Tiny (or Moo::Role) because - # autovivification hates us and wants us to die() - if ($INFO{$to}) { - delete $INFO{$to}{methods}; # reset since we're about to add methods - } - - # backcompat: allow subclasses to use apply_single_role_to_package - # to apply changes. set a local var so ours does nothing. - our %BACKCOMPAT_HACK; - if($me ne __PACKAGE__ - and exists $BACKCOMPAT_HACK{$me} ? $BACKCOMPAT_HACK{$me} : - $BACKCOMPAT_HACK{$me} = - $me->can('role_application_steps') - == \&role_application_steps - && $me->can('apply_single_role_to_package') - != \&apply_single_role_to_package - ) { - foreach my $role (@roles) { - $me->apply_single_role_to_package($to, $role); - } - } - else { - foreach my $step ($me->role_application_steps) { - foreach my $role (@roles) { - $me->$step($to, $role); - } - } - } - $APPLIED_TO{$to}{join('|',@roles)} = 1; -} - -sub _composite_info_for { - my ($me, @roles) = @_; - $COMPOSITE_INFO{join('|', sort @roles)} ||= do { - foreach my $role (@roles) { - _load_module($role); - } - my %methods; - foreach my $role (@roles) { - my $this_methods = $me->_concrete_methods_of($role); - $methods{$_}{$this_methods->{$_}} = $role for keys %$this_methods; - } - my %requires; - @requires{map @{$INFO{$_}{requires}||[]}, @roles} = (); - delete $requires{$_} for keys %methods; - delete $methods{$_} for grep keys(%{$methods{$_}}) == 1, keys %methods; - +{ conflicts => \%methods, requires => [keys %requires] } - }; -} - -sub _composable_package_for { - my ($me, $role) = @_; - my $composed_name = 'Role::Tiny::_COMPOSABLE::'.$role; - return $composed_name if $COMPOSED{role}{$composed_name}; - $me->_install_methods($composed_name, $role); - my $base_name = $composed_name.'::_BASE'; - # force stash to exist so ->can doesn't complain - _getstash($base_name); - # Not using _getglob, since setting @ISA via the typeglob breaks - # inheritance on 5.10.0 if the stash has previously been accessed an - # then a method called on the class (in that order!), which - # ->_install_methods (with the help of ->_install_does) ends up doing. - { no strict 'refs'; @{"${composed_name}::ISA"} = ( $base_name ); } - my $modifiers = $INFO{$role}{modifiers}||[]; - my @mod_base; - my @modifiers = grep !$composed_name->can($_), - do { my %h; @h{map @{$_}[1..$#$_-1], @$modifiers} = (); keys %h }; - foreach my $modified (@modifiers) { - push @mod_base, "sub ${modified} { shift->next::method(\@_) }"; - } - my $e; - { - local $@; - eval(my $code = join "\n", "package ${base_name};", @mod_base); - $e = "Evaling failed: $@\nTrying to eval:\n${code}" if $@; - } - die $e if $e; - $me->_install_modifiers($composed_name, $role); - $COMPOSED{role}{$composed_name} = { - modifiers_only => { map { $_ => 1 } @modifiers }, - }; - return $composed_name; -} - -sub _check_requires { - my ($me, $to, $name, $requires) = @_; - return unless my @requires = @{$requires||$INFO{$name}{requires}||[]}; - if (my @requires_fail = grep !$to->can($_), @requires) { - # role -> role, add to requires, role -> class, error out - if (my $to_info = $INFO{$to}) { - push @{$to_info->{requires}||=[]}, @requires_fail; - } else { - croak "Can't apply ${name} to ${to} - missing ".join(', ', @requires_fail); - } - } -} - -sub _concrete_methods_of { - my ($me, $role) = @_; - my $info = $INFO{$role}; - # grab role symbol table - my $stash = _getstash($role); - # reverse so our keys become the values (captured coderefs) in case - # they got copied or re-used since - my $not_methods = { reverse %{$info->{not_methods}||{}} }; - $info->{methods} ||= +{ - # grab all code entries that aren't in the not_methods list - map {; - no strict 'refs'; - my $code = exists &{"${role}::$_"} ? \&{"${role}::$_"} : undef; - ( ! $code or exists $not_methods->{$code} ) ? () : ($_ => $code) - } grep !ref($stash->{$_}), keys %$stash - }; -} - -sub methods_provided_by { - my ($me, $role) = @_; - croak "${role} is not a Role::Tiny" unless $me->is_role($role); - (keys %{$me->_concrete_methods_of($role)}, @{$INFO{$role}->{requires}||[]}); -} - -sub _install_methods { - my ($me, $to, $role) = @_; - - my $info = $INFO{$role}; - - my $methods = $me->_concrete_methods_of($role); - - # grab target symbol table - my $stash = _getstash($to); - - # determine already extant methods of target - my %has_methods; - @has_methods{grep - +(ref($stash->{$_}) || *{$stash->{$_}}{CODE}), - keys %$stash - } = (); - - foreach my $i (grep !exists $has_methods{$_}, keys %$methods) { - no warnings 'once'; - my $glob = _getglob "${to}::${i}"; - *$glob = $methods->{$i}; - - # overloads using method names have the method stored in the scalar slot - # and &overload::nil in the code slot. - next - unless $i =~ /^\(/ - && ((defined &overload::nil && $methods->{$i} == \&overload::nil) - || (defined &overload::_nil && $methods->{$i} == \&overload::_nil)); - - my $overload = ${ *{_getglob "${role}::${i}"}{SCALAR} }; - next - unless defined $overload; - - *$glob = \$overload; - } - - $me->_install_does($to); -} - -sub _install_modifiers { - my ($me, $to, $name) = @_; - return unless my $modifiers = $INFO{$name}{modifiers}; - my $info = $INFO{$to}; - my $existing = ($info ? $info->{modifiers} : $COMPOSED{modifiers}{$to}) ||= []; - my @modifiers = grep { - my $modifier = $_; - !grep $_ == $modifier, @$existing; - } @{$modifiers||[]}; - push @$existing, @modifiers; - - if (!$info) { - foreach my $modifier (@modifiers) { - $me->_install_single_modifier($to, @$modifier); - } - } -} - -my $vcheck_error; - -sub _install_single_modifier { - my ($me, @args) = @_; - defined($vcheck_error) or $vcheck_error = do { - local $@; - eval { - require Class::Method::Modifiers; - Class::Method::Modifiers->VERSION(1.05); - 1; - } ? 0 : $@; - }; - $vcheck_error and die $vcheck_error; - Class::Method::Modifiers::install_modifier(@args); -} - -my $FALLBACK = sub { 0 }; -sub _install_does { - my ($me, $to) = @_; - - # only add does() method to classes - return if $me->is_role($to); - - my $does = $me->can('does_role'); - # add does() only if they don't have one - *{_getglob "${to}::does"} = $does unless $to->can('does'); - - return - if $to->can('DOES') and $to->can('DOES') != (UNIVERSAL->can('DOES') || 0); - - my $existing = $to->can('DOES') || $to->can('isa') || $FALLBACK; - my $new_sub = sub { - my ($proto, $role) = @_; - $proto->$does($role) or $proto->$existing($role); - }; - no warnings 'redefine'; - return *{_getglob "${to}::DOES"} = $new_sub; -} - -sub does_role { - my ($proto, $role) = @_; - require(_MRO_MODULE); - foreach my $class (@{mro::get_linear_isa(ref($proto)||$proto)}) { - return 1 if exists $APPLIED_TO{$class}{$role}; - } - return 0; -} - -sub is_role { - my ($me, $role) = @_; - return !!($INFO{$role} && ($INFO{$role}{is_role} || $INFO{$role}{not_methods})); -} - -1; -__END__ - - - -#line 726 diff --git a/software/Slic3r-1.3.0.64bit/lib/Scalar/Util.pm b/software/Slic3r-1.3.0.64bit/lib/Scalar/Util.pm deleted file mode 100644 index 2c8d4bf9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Scalar/Util.pm +++ /dev/null @@ -1,66 +0,0 @@ -#line 1 "Scalar/Util.pm" -# Copyright (c) 1997-2007 Graham Barr . All rights reserved. -# This program is free software; you can redistribute it and/or -# modify it under the same terms as Perl itself. -# -# Maintained since 2013 by Paul Evans - -package Scalar::Util; - -use strict; -use warnings; -require Exporter; - -our @ISA = qw(Exporter); -our @EXPORT_OK = qw( - blessed refaddr reftype weaken unweaken isweak - - dualvar isdual isvstring looks_like_number openhandle readonly set_prototype - tainted -); -our $VERSION = "1.47"; -$VERSION = eval $VERSION; - -require List::Util; # List::Util loads the XS -List::Util->VERSION( $VERSION ); # Ensure we got the right XS version (RT#100863) - -our @EXPORT_FAIL; - -unless (defined &weaken) { - push @EXPORT_FAIL, qw(weaken); -} -unless (defined &isweak) { - push @EXPORT_FAIL, qw(isweak isvstring); -} -unless (defined &isvstring) { - push @EXPORT_FAIL, qw(isvstring); -} - -sub export_fail { - if (grep { /^(?:weaken|isweak)$/ } @_ ) { - require Carp; - Carp::croak("Weak references are not implemented in the version of perl"); - } - - if (grep { /^isvstring$/ } @_ ) { - require Carp; - Carp::croak("Vstrings are not implemented in the version of perl"); - } - - @_; -} - -# set_prototype has been moved to Sub::Util with a different interface -sub set_prototype(&$) -{ - my ( $code, $proto ) = @_; - return Sub::Util::set_prototype( $proto, $code ); -} - -1; - -__END__ - -#line 84 - -#line 361 diff --git a/software/Slic3r-1.3.0.64bit/lib/SelectSaver.pm b/software/Slic3r-1.3.0.64bit/lib/SelectSaver.pm deleted file mode 100644 index 3e1c98a6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/SelectSaver.pm +++ /dev/null @@ -1,25 +0,0 @@ -#line 1 "SelectSaver.pm" -package SelectSaver; - -our $VERSION = '1.02'; - -#line 36 - -require 5.000; -use Carp; -use Symbol; - -sub new { - @_ >= 1 && @_ <= 2 or croak 'usage: SelectSaver->new( [FILEHANDLE] )'; - my $fh = select; - my $self = bless \$fh, $_[0]; - select qualify($_[1], caller) if @_ > 1; - $self; -} - -sub DESTROY { - my $self = $_[0]; - select $$self; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r.pm deleted file mode 100644 index 47ed095f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r.pm +++ /dev/null @@ -1,340 +0,0 @@ -# This package loads all the non-GUI Slic3r perl packages. -# In addition, it implements utility functions for file handling and threading. - -package Slic3r; - -# Copyright holder: Alessandro Ranellucci -# This application is licensed under the GNU Affero General Public License, version 3 - -use strict; -use warnings; -require v5.10; - -our $VERSION = VERSION(); - -our $debug = 0; -sub debugf { - printf @_ if $debug; -} - -# load threads before Moo as required by it -our $have_threads; -BEGIN { - # Test, whether the perl was compiled with ithreads support and ithreads actually work. - use Config; - $have_threads = $Config{useithreads} && eval "use threads; use threads::shared; use Thread::Queue; 1"; - warn "threads.pm >= 1.96 is required, please update\n" if $have_threads && $threads::VERSION < 1.96; - - ### temporarily disable threads if using the broken Moo version - use Moo; - $have_threads = 0 if $Moo::VERSION == 1.003000; - - # Disable multi threading completely by an environment value. - # This is useful for debugging as the Perl debugger does not work - # in multi-threaded context at all. - # A good interactive perl debugger is the ActiveState Komodo IDE - # or the EPIC http://www.epic-ide.org/ - $have_threads = 0 if (defined($ENV{'SLIC3R_SINGLETHREADED'}) && $ENV{'SLIC3R_SINGLETHREADED'} == 1) -} - -warn "Running Slic3r under Perl 5.16 is neither supported nor recommended\n" - if $^V == v5.16; - -use FindBin; -# Path to the images. -my $varpath = decode_path($FindBin::Bin) . "/var"; -if ($^O eq 'darwin' && !-d $varpath) { - $varpath = decode_path($FindBin::Bin) . "/../Resources/var"; -} -our $var = sub { "$varpath/$_[0]" }; - -use Moo 1.003001; - -use Slic3r::XS; # import all symbols (constants etc.) before they get parsed -use Slic3r::Config; -use Slic3r::ExPolygon; -use Slic3r::ExtrusionLoop; -use Slic3r::ExtrusionPath; -use Slic3r::Flow; -use Slic3r::GCode::ArcFitting; -use Slic3r::GCode::MotionPlanner; -use Slic3r::GCode::PressureRegulator; -use Slic3r::GCode::Reader; -use Slic3r::GCode::VibrationLimit; -use Slic3r::Geometry qw(PI); -use Slic3r::Geometry::Clipper; -use Slic3r::Layer; -use Slic3r::Line; -use Slic3r::Model; -use Slic3r::Point; -use Slic3r::Polygon; -use Slic3r::Polyline; -use Slic3r::Print; -use Slic3r::Print::GCode; -use Slic3r::Print::Object; -use Slic3r::Print::Simple; -use Slic3r::Print::SupportMaterial; -use Slic3r::Surface; -our $build = eval "use Slic3r::Build; 1"; -use Thread::Semaphore; -use Encode::Locale 1.05; -use Encode; -use Unicode::Normalize; - -# Scaling between the float and integer coordinates. -# Floats are in mm. -use constant SCALING_FACTOR => 0.000001; -# Resolution to simplify perimeters to. These constants are now used in C++ code only. Better to publish them to Perl from the C++ code. -# use constant RESOLUTION => 0.0125; -# use constant SCALED_RESOLUTION => RESOLUTION / SCALING_FACTOR; -use constant LOOP_CLIPPING_LENGTH_OVER_NOZZLE_DIAMETER => 0.15; -# use constant INFILL_OVERLAP_OVER_SPACING => 0.3; - -# Keep track of threads we created. Each thread keeps its own list of threads it spwaned. -my @my_threads = (); -my @threads : shared = (); -my $pause_sema = Thread::Semaphore->new; -my $parallel_sema; -my $paused = 0; - -sub spawn_thread { - my ($cb) = @_; - - my $parent_tid = threads->tid; - lock @threads; - - # Set up a default handler for preventing crashes in case signals are received before - # thread sets its handlers. - $SIG{'STOP'} = sub {}; - - @_ = (); - my $thread = threads->create(sub { - @my_threads = (); - - local $SIG{'KILL'} = sub { - Slic3r::debugf "Exiting thread %d...\n", threads->tid; - $parallel_sema->up if $parallel_sema; - kill_all_threads(); - Slic3r::thread_cleanup(); - threads->exit(); - }; - local $SIG{'STOP'} = sub { - $pause_sema->down; - $pause_sema->up; - }; - Slic3r::debugf "Starting thread %d (parent: %d)...\n", threads->tid, $parent_tid; - $cb->(); - }); - push @my_threads, $thread->tid; - push @threads, $thread->tid; - return $thread; -} - -# If the threading is enabled, spawn a set of threads. -# Otherwise run the task on the current thread. -# Used for -# Slic3r::Print::Object->layers->make_perimeters -# Slic3r::Print::Object->layers->make_fill -# Slic3r::Print::SupportMaterial::generate_toolpaths -sub parallelize { - my %params = @_; - - lock @threads; - if (!$params{disable} && $Slic3r::have_threads && $params{threads} > 1) { - my @items = (ref $params{items} eq 'CODE') ? $params{items}->() : @{$params{items}}; - my $q = Thread::Queue->new; - $q->enqueue(@items, (map undef, 1..$params{threads})); - - $parallel_sema = Thread::Semaphore->new(-$params{threads}); - $parallel_sema->up; - my $thread_cb = sub { - # execute thread callback - $params{thread_cb}->($q); - - # signal the parent thread that we're done - $parallel_sema->up; - - # cleanup before terminating thread - Slic3r::thread_cleanup(); - - # This explicit exit avoids an untrappable - # "Attempt to free unreferenced scalar" error - # triggered on Ubuntu 12.04 32-bit when we're running - # from the Wx plater and - # we're reusing the same plater object more than once. - # The downside to using this exit is that we can't return - # any value to the main thread but we're not doing that - # anymore anyway. - threads->exit; - }; - - @_ = (); - my @my_threads = map spawn_thread($thread_cb), 1..$params{threads}; - - # We use a semaphore instead of $th->join because joined threads are - # not listed by threads->list or threads->object anymore, thus can't - # be signalled. - $parallel_sema->down; - $_->detach for @my_threads; - } else { - $params{no_threads_cb}->(); - } -} - -# call this at the very end of each thread (except the main one) -# so that it does not try to free existing objects. -# at that stage, existing objects are only those that we -# inherited at the thread creation (thus shared) and those -# that we are returning: destruction will be handled by the -# main thread in both cases. -# reminder: do not destroy inherited objects in other threads, -# as the main thread will still try to destroy them when they -# go out of scope; in other words, if you're undef()'ing an -# object in a thread, make sure the main thread still holds a -# reference so that it won't be destroyed in thread. -sub thread_cleanup { - return if !$Slic3r::have_threads; - - if (threads->tid == 0) { - warn "Calling thread_cleanup() from main thread\n"; - return; - } - - # prevent destruction of shared objects - no warnings 'redefine'; - *Slic3r::BridgeDetector::DESTROY = sub {}; - *Slic3r::Config::DESTROY = sub {}; - *Slic3r::Config::Full::DESTROY = sub {}; - *Slic3r::Config::GCode::DESTROY = sub {}; - *Slic3r::Config::Print::DESTROY = sub {}; - *Slic3r::Config::PrintObject::DESTROY = sub {}; - *Slic3r::Config::PrintRegion::DESTROY = sub {}; - *Slic3r::Config::Static::DESTROY = sub {}; - *Slic3r::ExPolygon::DESTROY = sub {}; - *Slic3r::ExPolygon::Collection::DESTROY = sub {}; - *Slic3r::Extruder::DESTROY = sub {}; - *Slic3r::ExtrusionLoop::DESTROY = sub {}; - *Slic3r::ExtrusionPath::DESTROY = sub {}; - *Slic3r::ExtrusionPath::Collection::DESTROY = sub {}; - *Slic3r::Filler::DESTROY = sub {}; - *Slic3r::Flow::DESTROY = sub {}; - *Slic3r::GCode::DESTROY = sub {}; - *Slic3r::GCode::AvoidCrossingPerimeters::DESTROY = sub {}; - *Slic3r::GCode::OozePrevention::DESTROY = sub {}; - *Slic3r::GCode::PlaceholderParser::DESTROY = sub {}; - *Slic3r::GCode::Sender::DESTROY = sub {}; - *Slic3r::GCode::Wipe::DESTROY = sub {}; - *Slic3r::GCode::Writer::DESTROY = sub {}; - *Slic3r::Geometry::BoundingBox::DESTROY = sub {}; - *Slic3r::Geometry::BoundingBoxf::DESTROY = sub {}; - *Slic3r::Geometry::BoundingBoxf3::DESTROY = sub {}; - *Slic3r::Layer::PerimeterGenerator::DESTROY = sub {}; - *Slic3r::LayerHeightSpline::DESTROY = sub {}; - *Slic3r::Line::DESTROY = sub {}; - *Slic3r::Linef3::DESTROY = sub {}; - *Slic3r::Model::DESTROY = sub {}; - *Slic3r::Model::Object::DESTROY = sub {}; - *Slic3r::Point::DESTROY = sub {}; - *Slic3r::Pointf::DESTROY = sub {}; - *Slic3r::Pointf3::DESTROY = sub {}; - *Slic3r::Polygon::DESTROY = sub {}; - *Slic3r::Polyline::DESTROY = sub {}; - *Slic3r::Polyline::Collection::DESTROY = sub {}; - *Slic3r::Print::DESTROY = sub {}; - *Slic3r::Print::Object::DESTROY = sub {}; - *Slic3r::Print::Region::DESTROY = sub {}; - *Slic3r::SLAPrint::DESTROY = sub {}; - *Slic3r::Surface::DESTROY = sub {}; - *Slic3r::Surface::Collection::DESTROY = sub {}; - *Slic3r::TriangleMesh::DESTROY = sub {}; - return undef; # this prevents a "Scalars leaked" warning -} - -sub get_running_threads { - return grep defined($_), map threads->object($_), @_; -} - -sub kill_all_threads { - # if we're the main thread, we send SIGKILL to all the running threads - if (threads->tid == 0) { - lock @threads; - foreach my $thread (get_running_threads(@threads)) { - Slic3r::debugf "Thread %d killing %d...\n", threads->tid, $thread->tid; - $thread->kill('KILL'); - } - - # unlock semaphore before we block on wait - # otherwise we'd get a deadlock if threads were paused - resume_all_threads(); - } - - # in any thread we wait for our children - foreach my $thread (get_running_threads(@my_threads)) { - Slic3r::debugf " Thread %d waiting for %d...\n", threads->tid, $thread->tid; - $thread->join; # block until threads are killed - Slic3r::debugf " Thread %d finished waiting for %d...\n", threads->tid, $thread->tid; - } - @my_threads = (); -} - -sub pause_all_threads { - return if $paused; - lock @threads; - $paused = 1; - $pause_sema->down; - $_->kill('STOP') for get_running_threads(@threads); -} - -sub resume_all_threads { - return unless $paused; - lock @threads; - $paused = 0; - $pause_sema->up; -} - -# Convert a Unicode path to a file system locale. -# The encoding is (from Encode::Locale POD): -# Alias | Windows | Mac OS X | POSIX -# locale_fs | ANSI | UTF-8 | nl_langinfo -# where nl_langinfo is en-US.UTF-8 on a modern Linux as well. -# So this conversion seems to make the most sense on Windows. -sub encode_path { - my ($path) = @_; - - return undef if !defined $path; - - $path = Unicode::Normalize::NFC($path); - $path = Encode::encode(locale_fs => $path); - - return $path; -} - -# Convert a path coded by a file system locale to Unicode. -sub decode_path { - my ($path) = @_; - - return undef if !defined $path; - - $path = Encode::decode(locale_fs => $path) - unless utf8::is_utf8($path); - - # The filesystem might force a normalization form (like HFS+ does) so - # if we rely on the filename being comparable after the open() + readdir() - # roundtrip (like when creating and then selecting a preset), we need to - # restore our normalization form. - $path = Unicode::Normalize::NFC($path); - - return $path; -} - -# Open a file by converting $filename to local file system locales. -sub open { - my ($fh, $mode, $filename) = @_; - return CORE::open $$fh, $mode, encode_path($filename); -} - -# this package declaration prevents an ugly fatal warning to be emitted when -# spawning a new thread -package GLUquadricObjPtr; - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Config.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Config.pm deleted file mode 100644 index 52d67bfe..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Config.pm +++ /dev/null @@ -1,368 +0,0 @@ -# Extends C++ class Slic3r::DynamicPrintConfig -# This perl class does not keep any perl class variables, -# all the storage is handled by the underlying C++ code. -package Slic3r::Config; -use strict; -use warnings; -use utf8; - -use List::Util qw(first max); - -# C++ Slic3r::PrintConfigDef exported as a Perl hash of hashes. -# The C++ counterpart is a constant singleton. -our $Options = print_config_def(); - -# overwrite the hard-coded readonly value (this information is not available in XS) -$Options->{threads}{readonly} = !$Slic3r::have_threads; - -# generate accessors -{ - no strict 'refs'; - for my $opt_key (keys %$Options) { - *{$opt_key} = sub { $_[0]->get($opt_key) }; - } -} - -# Fill in the underlying C++ Slic3r::DynamicPrintConfig with the content of the defaults -# provided by the C++ class Slic3r::FullPrintConfig. -sub new_from_defaults { - my $class = shift; - my (@opt_keys) = @_; - - my $self = $class->new; - if (@opt_keys) { - $self->set($_, $Options->{$_}{default}) - for grep exists $Options->{$_}{default}, @opt_keys; - } else { - $self->apply_static(Slic3r::Config::Full->new); - } - return $self; -} - -# From command line parameters -sub new_from_cli { - my $class = shift; - my %args = @_; - - # Delete hash keys with undefined value. - delete $args{$_} for grep !defined $args{$_}, keys %args; - - # Replace the start_gcode, end_gcode ... hash values - # with the content of the files they reference. - for (qw(start end layer toolchange)) { - my $opt_key = "${_}_gcode"; - if ($args{$opt_key}) { - if (-e $args{$opt_key}) { - Slic3r::open(\my $fh, "<", $args{$opt_key}) - or die "Failed to open $args{$opt_key}\n"; - binmode $fh, ':utf8'; - $args{$opt_key} = do { local $/; <$fh> }; - close $fh; - } - } - } - - my $self = $class->new; - foreach my $opt_key (keys %args) { - my $opt_def = $Options->{$opt_key}; - - # we use set_deserialize() for bool options since GetOpt::Long doesn't handle - # arrays of boolean values - if ($opt_key =~ /^(?:bed_shape|duplicate_grid|extruder_offset)$/ || $opt_def->{type} eq 'bool') { - $self->set_deserialize($opt_key, $args{$opt_key}); - } elsif (my $shortcut = $opt_def->{shortcut}) { - $self->set($_, $args{$opt_key}) for @$shortcut; - } else { - $self->set($opt_key, $args{$opt_key}); - } - } - - return $self; -} - -sub merge { - my $class = shift; - my $config = $class->new; - $config->apply($_) for @_; - return $config; -} - -# Load a flat ini file without a category into the underlying C++ Slic3r::DynamicConfig class, -# convert legacy configuration names. -sub load { - my $class = shift; - my ($file) = @_; - - # legacy syntax of load() - my $config = $class->new; - - $config->_load($file); - return $config; -} - -sub save { - my $self = shift; - my ($file) = @_; - - return $self->_save($file); -} - -# Deserialize a perl hash into the underlying C++ Slic3r::DynamicConfig class, -# convert legacy configuration names. -sub load_ini_hash { - my $class = shift; - my ($ini_hash) = @_; - - my $config = $class->new; - $config->set_deserialize($_, $ini_hash->{$_}) for keys %$ini_hash; - return $config; -} - -sub clone { - my $self = shift; - - my $new = (ref $self)->new; - $new->apply($self); - return $new; -} - -sub get_value { - my $self = shift; - my ($opt_key) = @_; - - return $Options->{$opt_key}{ratio_over} - ? $self->get_abs_value($opt_key) - : $self->get($opt_key); -} - -# Create a hash of hashes from the underlying C++ Slic3r::DynamicPrintConfig. -# The first hash key is '_' meaning no category. -sub as_ini { - my ($self) = @_; - - my $ini = { _ => {} }; - foreach my $opt_key (sort @{$self->get_keys}) { - next if $Options->{$opt_key}{shortcut}; - $ini->{_}{$opt_key} = $self->serialize($opt_key); - } - return $ini; -} - -# this method is idempotent by design and only applies to ::DynamicConfig or ::Full -# objects because it performs cross checks -sub validate { - my $self = shift; - - # -j, --threads - die "Invalid value for --threads\n" - if $self->threads < 1; - - # --layer-height - die "Invalid value for --layer-height\n" - if $self->layer_height <= 0; - die "--layer-height must be a multiple of print resolution\n" - if $self->layer_height / &Slic3r::SCALING_FACTOR % 1 != 0; - - # --first-layer-height - die "Invalid value for --first-layer-height\n" - if $self->first_layer_height !~ /^(?:\d*(?:\.\d+)?)%?$/; - die "Invalid value for --first-layer-height\n" - if $self->get_value('first_layer_height') <= 0; - - # --filament-diameter - die "Invalid value for --filament-diameter\n" - if grep $_ < 1, @{$self->filament_diameter}; - - # --nozzle-diameter - die "Invalid value for --nozzle-diameter\n" - if grep $_ < 0, @{$self->nozzle_diameter}; - - # --perimeters - die "Invalid value for --perimeters\n" - if $self->perimeters < 0; - - # --solid-layers - die "Invalid value for --solid-layers\n" if defined $self->solid_layers && $self->solid_layers < 0; - die "Invalid value for --top-solid-layers\n" if $self->top_solid_layers < 0; - die "Invalid value for --bottom-solid-layers\n" if $self->bottom_solid_layers < 0; - - # --gcode-flavor - die "Invalid value for --gcode-flavor\n" - if !first { $_ eq $self->gcode_flavor } @{$Options->{gcode_flavor}{values}}; - - die "--use-firmware-retraction is only supported by Marlin, Smoothie, Repetier and Machinekit firmware\n" - if $self->use_firmware_retraction && $self->gcode_flavor ne 'smoothie' - && $self->gcode_flavor ne 'reprap' - && $self->gcode_flavor ne 'machinekit' - && $self->gcode_flavor ne 'repetier'; - - die "--use-firmware-retraction is not compatible with --wipe\n" - if $self->use_firmware_retraction && first {$_} @{$self->wipe}; - - # --fill-pattern - die "Invalid value for --fill-pattern\n" - if !first { $_ eq $self->fill_pattern } @{$Options->{fill_pattern}{values}}; - - # --external-fill-pattern - die "Invalid value for --top-infill-pattern\n" - if !first { $_ eq $self->top_infill_pattern } @{$Options->{top_infill_pattern}{values}}; - die "Invalid value for --bottom-infill-pattern\n" - if !first { $_ eq $self->bottom_infill_pattern } @{$Options->{bottom_infill_pattern}{values}}; - - # --fill-density - die "The selected fill pattern is not supposed to work at 100% density\n" - if $self->fill_density == 100 - && !first { $_ eq $self->fill_pattern } @{$Options->{external_fill_pattern}{values}}; - - # --infill-every-layers - die "Invalid value for --infill-every-layers\n" - if $self->infill_every_layers !~ /^\d+$/ || $self->infill_every_layers < 1; - - # --skirt-height - die "Invalid value for --skirt-height\n" - if $self->skirt_height < -1; # -1 means as tall as the object - - # --bridge-flow-ratio - die "Invalid value for --bridge-flow-ratio\n" - if $self->bridge_flow_ratio <= 0; - - # extruder clearance - die "Invalid value for --extruder-clearance-radius\n" - if $self->extruder_clearance_radius <= 0; - die "Invalid value for --extruder-clearance-height\n" - if $self->extruder_clearance_height <= 0; - - # --extrusion-multiplier - die "Invalid value for --extrusion-multiplier\n" - if defined first { $_ <= 0 } @{$self->extrusion_multiplier}; - - # --default-acceleration - die "Invalid zero value for --default-acceleration when using other acceleration settings\n" - if ($self->perimeter_acceleration || $self->infill_acceleration || $self->bridge_acceleration || $self->first_layer_acceleration) - && !$self->default_acceleration; - - # --spiral-vase - if ($self->spiral_vase) { - # Note that we might want to have more than one perimeter on the bottom - # solid layers. - die "Can't make more than one perimeter when spiral vase mode is enabled\n" - if $self->perimeters > 1; - - die "Can't make less than one perimeter when spiral vase mode is enabled\n" - if $self->perimeters < 1; - - die "Spiral vase mode can only print hollow objects, so you need to set Fill density to 0\n" - if $self->fill_density > 0; - - die "Spiral vase mode is not compatible with top solid layers\n" - if $self->top_solid_layers > 0; - - die "Spiral vase mode is not compatible with support material\n" - if $self->support_material || $self->support_material_enforce_layers > 0; - } - - # extrusion widths - { - my $max_nozzle_diameter = max(@{ $self->nozzle_diameter }); - die "Invalid extrusion width (too large)\n" - if defined first { $_ > 10 * $max_nozzle_diameter } - map $self->get_abs_value_over("${_}_extrusion_width", $max_nozzle_diameter), - qw(perimeter infill solid_infill top_infill support_material first_layer); - } - - - # general validation, quick and dirty - foreach my $opt_key (@{$self->get_keys}) { - my $opt = $Options->{$opt_key}; - next unless defined $self->$opt_key; - next unless defined $opt->{cli} && $opt->{cli} =~ /=(.+)$/; - my $type = $1; - my @values = (); - if ($type =~ s/\@$//) { - die "Invalid value for $opt_key\n" if ref($self->$opt_key) ne 'ARRAY'; - @values = @{ $self->$opt_key }; - } else { - @values = ($self->$opt_key); - } - foreach my $value (@values) { - if ($type eq 'i' || $type eq 'f' || $opt->{type} eq 'percent') { - $value =~ s/%$// if $opt->{type} eq 'percent'; - die "Invalid value for $opt_key\n" - if ($type eq 'i' && $value !~ /^-?\d+$/) - || (($type eq 'f' || $opt->{type} eq 'percent') && $value !~ /^-?(?:\d+|\d*\.\d+)$/) - || (defined $opt->{min} && $value < $opt->{min}) - || (defined $opt->{max} && $value > $opt->{max}); - } elsif ($type eq 's' && $opt->{type} eq 'select') { - die "Invalid value for $opt_key\n" - unless first { $_ eq $value } @{ $opt->{values} }; - } - } - } - - return 1; -} - -# CLASS METHODS: - -# Write a "Windows" style ini file with categories enclosed in squre brackets. -sub write_ini { - my $class = shift; - my ($file, $ini) = @_; - - Slic3r::open(\my $fh, '>', $file); - binmode $fh, ':utf8'; - my $localtime = localtime; - printf $fh "# generated by Slic3r $Slic3r::VERSION on %s\n", "$localtime"; - # make sure the _ category is the first one written - foreach my $category (sort { ($a eq '_') ? -1 : ($a cmp $b) } keys %$ini) { - printf $fh "\n[%s]\n", $category if $category ne '_'; - foreach my $key (sort keys %{$ini->{$category}}) { - printf $fh "%s = %s\n", $key, $ini->{$category}{$key}; - } - } - close $fh; -} - -# Parse a "Windows" style ini file with categories enclosed in squre brackets. -# Returns a hash of hashes over strings. -# {category}{name}=value -# Non-categorized entries are stored under a category '_'. -sub read_ini { - my $class = shift; - my ($file) = @_; - - local $/ = "\n"; - Slic3r::open(\my $fh, '<', $file) - or die "Unable to open $file: $!\n"; - binmode $fh, ':utf8'; - - my $ini = { _ => {} }; - my $category = '_'; - while (<$fh>) { - s/\R+$//; - next if /^\s+/; - next if /^$/; - next if /^\s*#/; - if (/^\[(.+?)\]$/) { - $category = $1; - next; - } - /^(\w+) *= *(.*)/ or die "Unreadable configuration file (invalid data at line $.)\n"; - $ini->{$category}{$1} = $2; - } - close $fh; - - return $ini; -} - -package Slic3r::Config::Static; -use parent 'Slic3r::Config'; - -sub Slic3r::Config::GCode::new { Slic3r::Config::Static::new_GCodeConfig } -sub Slic3r::Config::Print::new { Slic3r::Config::Static::new_PrintConfig } -sub Slic3r::Config::PrintObject::new { Slic3r::Config::Static::new_PrintObjectConfig } -sub Slic3r::Config::PrintRegion::new { Slic3r::Config::Static::new_PrintRegionConfig } -sub Slic3r::Config::Full::new { Slic3r::Config::Static::new_FullPrintConfig } -sub Slic3r::Config::SLAPrint::new { Slic3r::Config::Static::new_SLAPrintConfig } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/ExPolygon.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/ExPolygon.pm deleted file mode 100644 index 8f244ecb..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/ExPolygon.pm +++ /dev/null @@ -1,46 +0,0 @@ -package Slic3r::ExPolygon; -use strict; -use warnings; - -# an ExPolygon is a polygon with holes - -use List::Util qw(first); -use Slic3r::Geometry qw(X Y A B point_in_polygon epsilon scaled_epsilon); -use Slic3r::Geometry::Clipper qw(union_ex diff_pl); - -sub wkt { - my $self = shift; - return sprintf "POLYGON(%s)", - join ',', map "($_)", map { join ',', map "$_->[0] $_->[1]", @$_ } @$self; -} - -sub dump_perl { - my $self = shift; - return sprintf "[%s]", - join ',', map "[$_]", map { join ',', map "[$_->[0],$_->[1]]", @$_ } @$self; -} - -sub offset { - my $self = shift; - return Slic3r::Geometry::Clipper::offset(\@$self, @_); -} - -sub offset_ex { - my $self = shift; - return Slic3r::Geometry::Clipper::offset_ex(\@$self, @_); -} - -sub bounding_box { - my $self = shift; - return $self->contour->bounding_box; -} - -package Slic3r::ExPolygon::Collection; -use Slic3r::Geometry qw(X1 Y1); - -sub size { - my $self = shift; - return [ Slic3r::Geometry::size_2D([ map @$_, map @$_, @$self ]) ]; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/ExtrusionLoop.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/ExtrusionLoop.pm deleted file mode 100644 index f0a85778..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/ExtrusionLoop.pm +++ /dev/null @@ -1,12 +0,0 @@ -package Slic3r::ExtrusionLoop; -use strict; -use warnings; - -use parent qw(Exporter); - -our @EXPORT_OK = qw(EXTRL_ROLE_DEFAULT - EXTRL_ROLE_CONTOUR_INTERNAL_PERIMETER EXTRL_ROLE_SKIRT); -our %EXPORT_TAGS = (roles => \@EXPORT_OK); - - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/ExtrusionPath.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/ExtrusionPath.pm deleted file mode 100644 index 3e9e6b8c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/ExtrusionPath.pm +++ /dev/null @@ -1,13 +0,0 @@ -package Slic3r::ExtrusionPath; -use strict; -use warnings; - -use parent qw(Exporter); - -our @EXPORT_OK = qw(EXTR_ROLE_PERIMETER EXTR_ROLE_EXTERNAL_PERIMETER EXTR_ROLE_OVERHANG_PERIMETER - EXTR_ROLE_FILL EXTR_ROLE_SOLIDFILL EXTR_ROLE_TOPSOLIDFILL EXTR_ROLE_GAPFILL EXTR_ROLE_BRIDGE - EXTR_ROLE_SKIRT EXTR_ROLE_SUPPORTMATERIAL EXTR_ROLE_SUPPORTMATERIAL_INTERFACE - EXTR_ROLE_NONE); -our %EXPORT_TAGS = (roles => \@EXPORT_OK); - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Flow.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Flow.pm deleted file mode 100644 index fed894e9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Flow.pm +++ /dev/null @@ -1,13 +0,0 @@ -package Slic3r::Flow; -use strict; -use warnings; - -use parent qw(Exporter); - -our @EXPORT_OK = qw(FLOW_ROLE_EXTERNAL_PERIMETER FLOW_ROLE_PERIMETER FLOW_ROLE_INFILL - FLOW_ROLE_SOLID_INFILL - FLOW_ROLE_TOP_SOLID_INFILL FLOW_ROLE_SUPPORT_MATERIAL - FLOW_ROLE_SUPPORT_MATERIAL_INTERFACE); -our %EXPORT_TAGS = (roles => \@EXPORT_OK); - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GCode/ArcFitting.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GCode/ArcFitting.pm deleted file mode 100644 index 8faa399b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GCode/ArcFitting.pm +++ /dev/null @@ -1,242 +0,0 @@ -package Slic3r::GCode::ArcFitting; -use Moo; - -use Slic3r::Geometry qw(X Y PI scale unscale epsilon scaled_epsilon deg2rad angle3points); - -extends 'Slic3r::GCode::Reader'; -has 'config' => (is => 'ro', required => 0); -has 'min_segments' => (is => 'rw', default => sub { 2 }); -has 'min_total_angle' => (is => 'rw', default => sub { deg2rad(30) }); -has 'max_relative_angle' => (is => 'rw', default => sub { deg2rad(15) }); -has 'len_epsilon' => (is => 'rw', default => sub { scale 0.2 }); -has 'angle_epsilon' => (is => 'rw', default => sub { abs(deg2rad(10)) }); -has '_extrusion_axis' => (is => 'lazy'); -has '_path' => (is => 'rw'); -has '_cur_F' => (is => 'rw'); -has '_cur_E' => (is => 'rw'); -has '_cur_E0' => (is => 'rw'); -has '_comment' => (is => 'rw'); - -sub _build__extrusion_axis { - my ($self) = @_; - return $self->config ? $self->config->get_extrusion_axis : 'E'; -} - -sub process { - my $self = shift; - my ($gcode) = @_; - - die "Arc fitting is not available (incomplete feature)\n"; - die "Arc fitting doesn't support extrusion axis not being E\n" if $self->_extrusion_axis ne 'E'; - - my $new_gcode = ""; - - $self->parse($gcode, sub { - my ($reader, $cmd, $args, $info) = @_; - - if ($info->{extruding} && $info->{dist_XY} > 0) { - # this is an extrusion segment - - # get segment - my $line = Slic3r::Line->new( - Slic3r::Point->new_scale($self->X, $self->Y), - Slic3r::Point->new_scale($args->{X}, $args->{Y}), - ); - - # get segment speed - my $F = $args->{F} // $reader->F; - - # get extrusion per unscaled distance unit - my $e = $info->{dist_E} / unscale($line->length); - - if ($self->_path && $F == $self->_cur_F && abs($e - $self->_cur_E) < epsilon) { - # if speed and extrusion per unit are the same as the previous segments, - # append this segment to path - $self->_path->append($line->b); - } elsif ($self->_path) { - # segment can't be appended to previous path, so we flush the previous one - # and start over - $new_gcode .= $self->path_to_gcode; - $self->_path(undef); - } - - if (!$self->_path) { - # if this is the first segment of a path, start it from scratch - $self->_path(Slic3r::Polyline->new(@$line)); - $self->_cur_F($F); - $self->_cur_E($e); - $self->_cur_E0($self->E); - $self->_comment($info->{comment}); - } - } else { - # if we have a path, we flush it and go on - $new_gcode .= $self->path_to_gcode if $self->_path; - $new_gcode .= $info->{raw} . "\n"; - $self->_path(undef); - } - }); - - $new_gcode .= $self->path_to_gcode if $self->_path; - return $new_gcode; -} - -sub path_to_gcode { - my ($self) = @_; - - my @chunks = $self->detect_arcs($self->_path); - - my $gcode = ""; - my $E = $self->_cur_E0; - foreach my $chunk (@chunks) { - if ($chunk->isa('Slic3r::Polyline')) { - my @lines = @{$chunk->lines}; - - $gcode .= sprintf "G1 F%s\n", $self->_cur_F; - foreach my $line (@lines) { - $E += $self->_cur_E * unscale($line->length); - $gcode .= sprintf "G1 X%.3f Y%.3f %s%.5f", - (map unscale($_), @{$line->b}), - $self->_extrusion_axis, $E; - $gcode .= sprintf " ; %s", $self->_comment if $self->_comment; - $gcode .= "\n"; - } - } elsif ($chunk->isa('Slic3r::GCode::ArcFitting::Arc')) { - $gcode .= !$chunk->is_ccw ? "G2" : "G3"; - $gcode .= sprintf " X%.3f Y%.3f", map unscale($_), @{$chunk->end}; # destination point - - # XY distance of the center from the start position - $gcode .= sprintf " I%.3f", unscale($chunk->center->[X] - $chunk->start->[X]); - $gcode .= sprintf " J%.3f", unscale($chunk->center->[Y] - $chunk->start->[Y]); - - $E += $self->_cur_E * unscale($chunk->length); - $gcode .= sprintf " %s%.5f", $self->_extrusion_axis, $E; - - $gcode .= sprintf " F%s\n", $self->_cur_F; - } - } - return $gcode; -} - -sub detect_arcs { - my ($self, $path) = @_; - - my @chunks = (); - my @arc_points = (); - my $polyline = undef; - my $arc_start = undef; - - my @points = @$path; - for (my $i = 1; $i <= $#points; ++$i) { - my $end = undef; - - # we need at least three points to check whether they form an arc - if ($i < $#points) { - my $len = $points[$i-1]->distance_to($points[$i]); - my $rel_angle = PI - angle3points(@points[$i, $i-1, $i+1]); - if (abs($rel_angle) <= $self->max_relative_angle) { - for (my $j = $i+1; $j <= $#points; ++$j) { - # check whether @points[($i-1)..$j] form an arc - last if abs($points[$j-1]->distance_to($points[$j]) - $len) > $self->len_epsilon; - last if abs(PI - angle3points(@points[$j-1, $j-2, $j]) - $rel_angle) > $self->angle_epsilon; - - $end = $j; - } - } - } - - if (defined $end && ($end - $i + 1) >= $self->min_segments) { - my $arc = polyline_to_arc(Slic3r::Polyline->new(@points[($i-1)..$end])); - - if (1||$arc->angle >= $self->min_total_angle) { - push @chunks, $arc; - - # continue scanning after arc points - $i = $end; - next; - } - } - - # if last chunk was a polyline, append to it - if (@chunks && $chunks[-1]->isa('Slic3r::Polyline')) { - $chunks[-1]->append($points[$i]); - } else { - push @chunks, Slic3r::Polyline->new(@points[($i-1)..$i]); - } - } - - return @chunks; -} - -sub polyline_to_arc { - my ($polyline) = @_; - - my @points = @$polyline; - - my $is_ccw = $points[2]->ccw(@points[0,1]) > 0; - - # to find the center, we intersect the perpendicular lines - # passing by first and last vertex; - # a better method would be to draw all the perpendicular lines - # and find the centroid of the enclosed polygon, or to - # intersect multiple lines and find the centroid of the convex hull - # around the intersections - my $arc_center; - { - my $first_ray = Slic3r::Line->new(@points[0,1]); - $first_ray->rotate(PI/2 * ($is_ccw ? 1 : -1), $points[0]); - - my $last_ray = Slic3r::Line->new(@points[-2,-1]); - $last_ray->rotate(PI/2 * ($is_ccw ? -1 : 1), $points[-1]); - - # require non-parallel rays in order to compute an accurate center - return if abs($first_ray->atan2_ - $last_ray->atan2_) < deg2rad(30); - - $arc_center = $first_ray->intersection($last_ray, 0) or return; - } - - # angle measured in ccw orientation - my $abs_angle = Slic3r::Geometry::angle3points($arc_center, @points[0,-1]); - - my $rel_angle = $is_ccw - ? $abs_angle - : (2*PI - $abs_angle); - - my $arc = Slic3r::GCode::ArcFitting::Arc->new( - start => $points[0]->clone, - end => $points[-1]->clone, - center => $arc_center, - is_ccw => $is_ccw || 0, - angle => $rel_angle, - ); - - if (0) { - printf "points = %d, path length = %f, arc angle = %f, arc length = %f\n", - scalar(@points), - unscale(Slic3r::Polyline->new(@points)->length), - Slic3r::Geometry::rad2deg($rel_angle), - unscale($arc->length); - } - - return $arc; -} - -package Slic3r::GCode::ArcFitting::Arc; -use Moo; - -has 'start' => (is => 'ro', required => 1); -has 'end' => (is => 'ro', required => 1); -has 'center' => (is => 'ro', required => 1); -has 'is_ccw' => (is => 'ro', required => 1); -has 'angle' => (is => 'ro', required => 1); - -sub radius { - my ($self) = @_; - return $self->start->distance_to($self->center); -} - -sub length { - my ($self) = @_; - return $self->radius * $self->angle; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GCode/MotionPlanner.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GCode/MotionPlanner.pm deleted file mode 100644 index 823e6641..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GCode/MotionPlanner.pm +++ /dev/null @@ -1,317 +0,0 @@ -package Slic3r::GCode::MotionPlanner; -use Moo; - -has 'islands' => (is => 'ro', required => 1); # arrayref of ExPolygons -has 'internal' => (is => 'ro', default => sub { 1 }); -has '_space' => (is => 'ro', default => sub { Slic3r::GCode::MotionPlanner::ConfigurationSpace->new }); -has '_inner' => (is => 'ro', default => sub { [] }); # arrayref of ExPolygons - -use List::Util qw(first max); -use Slic3r::Geometry qw(A B scale epsilon); -use Slic3r::Geometry::Clipper qw(offset offset_ex diff_ex intersection_pl); - -# clearance (in mm) from the perimeters -has '_inner_margin' => (is => 'ro', default => sub { scale 1 }); -has '_outer_margin' => (is => 'ro', default => sub { scale 2 }); - -# this factor weigths the crossing of a perimeter -# vs. the alternative path. a value of 5 means that -# a perimeter will be crossed if the alternative path -# is >= 5x the length of the straight line we could -# follow if we decided to cross the perimeter. -# a nearly-infinite value for this will only permit -# perimeter crossing when there's no alternative path. -use constant CROSSING_PENALTY => 20; - -use constant POINT_DISTANCE => 10; # unscaled - -# setup our configuration space -sub BUILD { - my $self = shift; - - my $point_distance = scale POINT_DISTANCE; - my $nodes = $self->_space->nodes; - my $edges = $self->_space->edges; - - # process individual islands - for my $i (0 .. $#{$self->islands}) { - my $expolygon = $self->islands->[$i]; - - # find external margin - my $outer = offset([ @$expolygon ], +$self->_outer_margin); - my @outer_points = map @{$_->equally_spaced_points($point_distance)}, @$outer; - - # add outer points to graph - my $o_outer = $self->_space->add_nodes(@outer_points); - - # find pairs of visible outer points and add them to the graph - for my $i (0 .. $#outer_points) { - for my $j (($i+1) .. $#outer_points) { - my ($a, $b) = ($outer_points[$i], $outer_points[$j]); - my $line = Slic3r::Polyline->new($a, $b); - # outer points are visible when their line has empty intersection with islands - my $intersection = intersection_pl( - [ $line ], - [ map @$_, @{$self->islands} ], - ); - if (!@$intersection) { - $self->_space->add_edge($i+$o_outer, $j+$o_outer, $line->length); - } - } - } - - if ($self->internal) { - # find internal margin - my $inner = offset_ex([ @$expolygon ], -$self->_inner_margin); - push @{ $self->_inner }, @$inner; - my @inner_points = map @{$_->equally_spaced_points($point_distance)}, map @$_, @$inner; - - # add points to graph and get their offset - my $o_inner = $self->_space->add_nodes(@inner_points); - - # find pairs of visible inner points and add them to the graph - for my $i (0 .. $#inner_points) { - for my $j (($i+1) .. $#inner_points) { - my ($a, $b) = ($inner_points[$i], $inner_points[$j]); - my $line = Slic3r::Line->new($a, $b); - # turn $inner into an ExPolygonCollection and use $inner->contains_line() - if (first { $_->contains_line($line) } @$inner) { - $self->_space->add_edge($i+$o_inner, $j+$o_inner, $line->length); - } - } - } - - # generate the stripe around slice contours - my $contour = diff_ex( - $outer, - [ map @$_, @$inner ], - ); - - # find pairs of visible points in this area and add them to the graph - for my $i (0 .. $#inner_points) { - for my $j (0 .. $#outer_points) { - my ($a, $b) = ($inner_points[$i], $outer_points[$j]); - my $line = Slic3r::Line->new($a, $b); - # turn $contour into an ExPolygonCollection and use $contour->contains_line() - if (first { $_->contains_line($line) } @$contour) { - $self->_space->add_edge($i+$o_inner, $j+$o_outer, $line->length * CROSSING_PENALTY); - } - } - } - } - } - - # since Perl has no infinity symbol and we don't want to overcomplicate - # the Dijkstra algorithm with string constants or -1 values - $self->_space->_infinity(10 * (max(map values %$_, values %{$self->_space->edges}) // 0)); - - if (0) { - require "Slic3r/SVG.pm"; - Slic3r::SVG::output("space.svg", - no_arrows => 1, - expolygons => $self->islands, - lines => $self->_space->get_lines, - points => $self->_space->nodes, - ); - printf "%d islands\n", scalar @{$self->islands}; - - eval "use Devel::Size"; - print "MEMORY USAGE:\n"; - printf " %-19s = %.1fMb\n", $_, Devel::Size::total_size($self->$_)/1024/1024 - for qw(_space islands); - printf " %-19s = %.1fMb\n", $_, Devel::Size::total_size($self->_space->$_)/1024/1024 - for qw(nodes edges); - printf " %-19s = %.1fMb\n", 'self', Devel::Size::total_size($self)/1024/1024; - - exit if $self->internal; - } -} - -sub shortest_path { - my $self = shift; - my ($from, $to) = @_; - - return Slic3r::Polyline->new($from, $to) - if !@{$self->_space->nodes}; - - # create a temporary configuration space - my $space = $self->_space->clone; - - # add from/to points to the temporary configuration space - my $node_from = $self->_add_point_to_space($from, $space); - my $node_to = $self->_add_point_to_space($to, $space); - - # compute shortest path - my $path = $space->shortest_path($node_from, $node_to); - - if (!$path->is_valid) { - Slic3r::debugf "Failed to compute shortest path.\n"; - return Slic3r::Polyline->new($from, $to); - } - - if (0) { - require "Slic3r/SVG.pm"; - Slic3r::SVG::output("path.svg", - no_arrows => 1, - expolygons => $self->islands, - lines => $space->get_lines, - red_points => [$from, $to], - red_polylines => [$path], - ); - exit; - } - - return $path; -} - -# returns the index of the new node -sub _add_point_to_space { - my ($self, $point, $space) = @_; - - my $n = $space->add_nodes($point); - - # check whether we are inside an island or outside - my $inside = defined first { $self->islands->[$_]->contains_point($point) } 0..$#{$self->islands}; - - # find candidates by checking visibility from $from to them - foreach my $idx (0..$#{$space->nodes}) { - my $line = Slic3r::Line->new($point, $space->nodes->[$idx]); - # if $point is inside an island, it is visible from $idx when island contains their line - # if $point is outside an island, it is visible from $idx when their line does not cross any island - if ( - ($inside && defined first { $_->contains_line($line) } @{$self->_inner}) - || (!$inside && !@{intersection_pl( - [ $line->as_polyline ], - [ map @$_, @{$self->islands} ], - )}) - ) { - # $n ($point) and $idx are visible - $space->add_edge($n, $idx, $line->length); - } - } - - # if we found no visibility, retry with larger margins - if (!exists $space->edges->{$n} && $inside) { - foreach my $idx (0..$#{$space->nodes}) { - my $line = Slic3r::Line->new($point, $space->nodes->[$idx]); - if (defined first { $_->contains_line($line) } @{$self->islands}) { - # $n ($point) and $idx are visible - $space->add_edge($n, $idx, $line->length); - } - } - } - - warn "Temporary node is not visible from any other node" - if !exists $space->edges->{$n}; - - return $n; -} - -package Slic3r::GCode::MotionPlanner::ConfigurationSpace; -use Moo; - -has 'nodes' => (is => 'rw', default => sub { [] }); # [ Point, ... ] -has 'edges' => (is => 'rw', default => sub { {} }); # node_idx => { node_idx => distance, ... } -has '_infinity' => (is => 'rw'); - -sub clone { - my $self = shift; - - return (ref $self)->new( - nodes => [ map $_->clone, @{$self->nodes} ], - edges => { map { $_ => { %{$self->edges->{$_}} } } keys %{$self->edges} }, - _infinity => $self->_infinity, - ); -} - -sub nodes_count { - my $self = shift; - return scalar(@{ $self->nodes }); -} - -sub add_nodes { - my ($self, @nodes) = @_; - - my $offset = $self->nodes_count; - push @{ $self->nodes }, @nodes; - return $offset; -} - -sub add_edge { - my ($self, $a, $b, $dist) = @_; - $self->edges->{$a}{$b} = $self->edges->{$b}{$a} = $dist; -} - -sub shortest_path { - my ($self, $node_from, $node_to) = @_; - - my $edges = $self->edges; - my (%dist, %visited, %prev); - $dist{$_} = $self->_infinity for keys %$edges; - $dist{$node_from} = 0; - - my @queue = ($node_from); - while (@queue) { - my $u = -1; - { - # find node in @queue with smallest distance in %dist and has not been visited - my $d = -1; - foreach my $n (@queue) { - next if $visited{$n}; - if ($u == -1 || $dist{$n} < $d) { - $u = $n; - $d = $dist{$n}; - } - } - } - last if $u == $node_to; - - # remove $u from @queue - @queue = grep $_ != $u, @queue; - $visited{$u} = 1; - - # loop through neighbors of $u - foreach my $v (keys %{ $edges->{$u} }) { - my $alt = $dist{$u} + $edges->{$u}{$v}; - if ($alt < $dist{$v}) { - $dist{$v} = $alt; - $prev{$v} = $u; - if (!$visited{$v}) { - push @queue, $v; - } - } - } - } - - my @points = (); - { - my $u = $node_to; - while (exists $prev{$u}) { - unshift @points, $self->nodes->[$u]; - $u = $prev{$u}; - } - unshift @points, $self->nodes->[$node_from]; - } - - return Slic3r::Polyline->new(@points); -} - -# for debugging purposes -sub get_lines { - my $self = shift; - - my @lines = (); - my %lines = (); - for my $i (keys %{$self->edges}) { - for my $j (keys %{$self->edges->{$i}}) { - my $line_id = join '_', sort $i, $j; - next if $lines{$line_id}; - $lines{$line_id} = 1; - push @lines, Slic3r::Line->new(map $self->nodes->[$_], $i, $j); - } - } - - return [@lines]; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GCode/PressureRegulator.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GCode/PressureRegulator.pm deleted file mode 100644 index 19c10a62..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GCode/PressureRegulator.pm +++ /dev/null @@ -1,100 +0,0 @@ -# A pure perl (no C++ implementation) G-code filter, to control the pressure inside the nozzle. - -package Slic3r::GCode::PressureRegulator; -use Moo; - -has 'config' => (is => 'ro', required => 1); -has 'enable' => (is => 'rw', default => sub { 0 }); -has 'reader' => (is => 'ro', default => sub { Slic3r::GCode::Reader->new }); -has '_extrusion_axis' => (is => 'rw', default => sub { "E" }); -has '_tool' => (is => 'rw', default => sub { 0 }); -has '_last_print_F' => (is => 'rw', default => sub { 0 }); -has '_advance' => (is => 'rw', default => sub { 0 }); # extra E injected - -use Slic3r::Geometry qw(epsilon); - -# Acknowledgements: -# The advance algorithm was proposed by Matthew Roberts. -# The initial work on this Slic3r feature was done by Luís Andrade (lluis) - -sub BUILD { - my ($self) = @_; - - $self->reader->apply_print_config($self->config); - $self->_extrusion_axis($self->config->get_extrusion_axis); -} - -sub process { - my $self = shift; - my ($gcode, $flush) = @_; - - my $new_gcode = ""; - - $self->reader->parse($gcode, sub { - my ($reader, $cmd, $args, $info) = @_; - - if ($cmd =~ /^T(\d+)/) { - $self->_tool($1); - } elsif ($info->{extruding} && $info->{dist_XY} > 0) { - # This is a print move. - my $F = $args->{F} // $reader->F; - if ($F != $self->_last_print_F || ($F == $self->_last_print_F && $self->_advance == 0)) { - # We are setting a (potentially) new speed or a discharge event happend since the last speed change, so we calculate the new advance amount. - - # First calculate relative flow rate (mm of filament over mm of travel) - my $rel_flow_rate = $info->{dist_E} / $info->{dist_XY}; - - # Then calculate absolute flow rate (mm/sec of feedstock) - my $flow_rate = $rel_flow_rate * $F / 60; - - # And finally calculate advance by using the user-configured K factor. - my $new_advance = $self->config->pressure_advance * ($flow_rate**2); - - if (abs($new_advance - $self->_advance) > 1E-5) { - my $new_E = ($self->config->use_relative_e_distances ? 0 : $reader->E) + ($new_advance - $self->_advance); - $new_gcode .= sprintf "G1 %s%.5f F%.3f ; pressure advance\n", - $self->_extrusion_axis, $new_E, $self->_unretract_speed; - $new_gcode .= sprintf "G92 %s%.5f ; restore E\n", $self->_extrusion_axis, $reader->E - if !$self->config->use_relative_e_distances; - $new_gcode .= sprintf "G1 F%.3f ; restore F\n", $F; - $self->_advance($new_advance); - } - - $self->_last_print_F($F); - } - } elsif (($info->{retracting} || $cmd eq 'G10') && $self->_advance != 0) { - # We need to bring pressure to zero when retracting. - $new_gcode .= $self->_discharge($args->{F}, $args->{F} // $reader->F); - } - - $new_gcode .= "$info->{raw}\n"; - }); - - if ($flush) { - $new_gcode .= $self->_discharge; - } - - return $new_gcode; -} - -sub _discharge { - my ($self, $F, $oldSpeed) = @_; - - my $new_E = ($self->config->use_relative_e_distances ? 0 : $self->reader->E) - $self->_advance; - my $gcode = sprintf "G1 %s%.5f F%.3f ; pressure discharge\n", - $self->_extrusion_axis, $new_E, $F // $self->_unretract_speed; - $gcode .= sprintf "G92 %s%.5f ; restore E\n", $self->_extrusion_axis, $self->reader->E - if !$self->config->use_relative_e_distances; - $gcode .= sprintf "G1 F%.3f ; restore F\n", $oldSpeed - if $oldSpeed; - $self->_advance(0); - - return $gcode; -} - -sub _unretract_speed { - my ($self) = @_; - return $self->config->get_at('retract_speed', $self->_tool) * 60; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GCode/Reader.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GCode/Reader.pm deleted file mode 100644 index 5763b384..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GCode/Reader.pm +++ /dev/null @@ -1,87 +0,0 @@ -package Slic3r::GCode::Reader; -use Moo; - -has 'config' => (is => 'ro', default => sub { Slic3r::Config::GCode->new }); -has 'X' => (is => 'rw', default => sub {0}); -has 'Y' => (is => 'rw', default => sub {0}); -has 'Z' => (is => 'rw', default => sub {0}); -has 'E' => (is => 'rw', default => sub {0}); -has 'F' => (is => 'rw', default => sub {0}); -has '_extrusion_axis' => (is => 'rw', default => sub {"E"}); - -our $Verbose = 0; -my @AXES = qw(X Y Z E); - -sub apply_print_config { - my ($self, $print_config) = @_; - - $self->config->apply_static($print_config); - $self->_extrusion_axis($self->config->get_extrusion_axis); -} - -sub clone { - my $self = shift; - return (ref $self)->new( - map { $_ => $self->$_ } (@AXES, 'F', '_extrusion_axis', 'config'), - ); -} - -sub parse { - my $self = shift; - my ($gcode, $cb) = @_; - - foreach my $raw_line (split /\R+/, $gcode) { - print "$raw_line\n" if $Verbose || $ENV{SLIC3R_TESTS_GCODE}; - my $line = $raw_line; - $line =~ s/\s*;(.*)//; # strip comment - my %info = (comment => $1, raw => $raw_line); - - # parse command - my ($command, @args) = split /\s+/, $line; - $command //= ''; - my %args = map { /([A-Z])(.*)/; ($1 => $2) } @args; - - # convert extrusion axis - if (exists $args{ $self->_extrusion_axis }) { - $args{E} = $args{ $self->_extrusion_axis }; - } - - # check motion - if ($command =~ /^G[01]$/) { - foreach my $axis (@AXES) { - if (exists $args{$axis}) { - $self->$axis(0) if $axis eq 'E' && $self->config->use_relative_e_distances; - $info{"dist_$axis"} = $args{$axis} - $self->$axis; - $info{"new_$axis"} = $args{$axis}; - } else { - $info{"dist_$axis"} = 0; - $info{"new_$axis"} = $self->$axis; - } - } - $info{dist_XY} = sqrt(($info{dist_X}**2) + ($info{dist_Y}**2)); - if (exists $args{E}) { - if ($info{dist_E} > 0) { - $info{extruding} = 1; - } elsif ($info{dist_E} < 0) { - $info{retracting} = 1 - } - } else { - $info{travel} = 1; - } - } - - # run callback - $cb->($self, $command, \%args, \%info); - - # update coordinates - if ($command =~ /^(?:G[01]|G92)$/) { - for my $axis (@AXES, 'F') { - $self->$axis($args{$axis}) if exists $args{$axis}; - } - } - - # TODO: update temperatures - } -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GCode/VibrationLimit.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GCode/VibrationLimit.pm deleted file mode 100644 index 496d1e73..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GCode/VibrationLimit.pm +++ /dev/null @@ -1,63 +0,0 @@ -package Slic3r::GCode::VibrationLimit; -use Moo; - -extends 'Slic3r::GCode::Reader'; - -has '_min_time' => (is => 'lazy'); -has '_last_dir' => (is => 'ro', default => sub { [0,0] }); -has '_dir_time' => (is => 'ro', default => sub { [0,0] }); - -# inspired by http://hydraraptor.blogspot.it/2010/12/frequency-limit.html - -use List::Util qw(max); - -sub _build__min_time { - my ($self) = @_; - return 1 / ($self->config->vibration_limit * 60); # in minutes -} - -sub process { - my $self = shift; - my ($gcode) = @_; - - my $new_gcode = ""; - $self->parse($gcode, sub { - my ($reader, $cmd, $args, $info) = @_; - - if ($cmd eq 'G1' && $info->{dist_XY} > 0) { - my $point = Slic3r::Pointf->new($args->{X} // $reader->X, $args->{Y} // $reader->Y); - my @dir = ( - ($point->x <=> $reader->X), - ($point->y <=> $reader->Y), #$ - ); - my $time = $info->{dist_XY} / ($args->{F} // $reader->F); # in minutes - - if ($time > 0) { - my @pause = (); - foreach my $axis (0..$#dir) { - if ($dir[$axis] != 0 && $self->_last_dir->[$axis] != $dir[$axis]) { - if ($self->_last_dir->[$axis] != 0) { - # this axis is changing direction: check whether we need to pause - if ($self->_dir_time->[$axis] < $self->_min_time) { - push @pause, ($self->_min_time - $self->_dir_time->[$axis]); - } - } - $self->_last_dir->[$axis] = $dir[$axis]; - $self->_dir_time->[$axis] = 0; - } - $self->_dir_time->[$axis] += $time; - } - - if (@pause) { - $new_gcode .= sprintf "G4 P%d\n", max(@pause) * 60 * 1000; - } - } - } - - $new_gcode .= $info->{raw} . "\n"; - }); - - return $new_gcode; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI.pm deleted file mode 100644 index 6d2e5e3a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI.pm +++ /dev/null @@ -1,509 +0,0 @@ -package Slic3r::GUI; -use strict; -use warnings; -use utf8; - -use Wx 0.9901 qw(:bitmap :dialog :icon :id :misc :systemsettings :toplevelwindow - :filedialog :font); -use Wx::Event qw(EVT_MENU); - -BEGIN { - # Wrap the Wx::_load_plugin() function which doesn't work with non-ASCII paths - no warnings 'redefine'; - my $orig = *Wx::_load_plugin{CODE}; - *Wx::_load_plugin = sub { - $_[0] = Slic3r::decode_path($_[0]); - $orig->(@_); - }; -} - -use File::Basename qw(basename); -use FindBin; -use List::Util qw(first any); -use Slic3r::Geometry qw(X Y); - -use Slic3r::GUI::2DBed; -use Slic3r::GUI::AboutDialog; -use Slic3r::GUI::BedShapeDialog; -use Slic3r::GUI::BonjourBrowser; -use Slic3r::GUI::ConfigWizard; -use Slic3r::GUI::Controller; -use Slic3r::GUI::Controller::ManualControlDialog; -use Slic3r::GUI::Controller::PrinterPanel; -use Slic3r::GUI::MainFrame; -use Slic3r::GUI::Notifier; -use Slic3r::GUI::Plater; -use Slic3r::GUI::Plater::2D; -use Slic3r::GUI::Plater::2DToolpaths; -use Slic3r::GUI::Plater::3D; -use Slic3r::GUI::Plater::3DPreview; -use Slic3r::GUI::Plater::ObjectPartsPanel; -use Slic3r::GUI::Plater::ObjectCutDialog; -use Slic3r::GUI::Plater::ObjectSettingsDialog; -use Slic3r::GUI::Plater::LambdaObjectDialog; -use Slic3r::GUI::Plater::OverrideSettingsPanel; -use Slic3r::GUI::Plater::SplineControl; -use Slic3r::GUI::Preferences; -use Slic3r::GUI::ProgressStatusBar; -use Slic3r::GUI::Projector; -use Slic3r::GUI::OptionsGroup; -use Slic3r::GUI::OptionsGroup::Field; -use Slic3r::GUI::Preset; -use Slic3r::GUI::PresetEditor; -use Slic3r::GUI::PresetEditorDialog; -use Slic3r::GUI::SLAPrintOptions; -use Slic3r::GUI::ReloadDialog; - -our $have_OpenGL = eval "use Slic3r::GUI::3DScene; 1"; -our $have_LWP = eval "use LWP::UserAgent; 1"; - -use Wx::Event qw(EVT_IDLE EVT_COMMAND); -use base 'Wx::App'; - -use constant FILE_WILDCARDS => { - known => 'Known files (*.stl, *.obj, *.amf, *.xml, *.3mf)|*.3mf;*.3MF;*.stl;*.STL;*.obj;*.OBJ;*.amf;*.AMF;*.xml;*.XML', - stl => 'STL files (*.stl)|*.stl;*.STL', - obj => 'OBJ files (*.obj)|*.obj;*.OBJ', - amf => 'AMF files (*.amf)|*.amf;*.AMF;*.xml;*.XML', - tmf => '3MF files (*.3mf)|*.3mf;*.3MF', - ini => 'INI files *.ini|*.ini;*.INI', - gcode => 'G-code files (*.gcode, *.gco, *.g, *.ngc)|*.gcode;*.GCODE;*.gco;*.GCO;*.g;*.G;*.ngc;*.NGC', - svg => 'SVG files *.svg|*.svg;*.SVG', -}; -use constant MODEL_WILDCARD => join '|', @{&FILE_WILDCARDS}{qw(known stl obj amf tmf)}; -use constant STL_MODEL_WILDCARD => join '|', @{&FILE_WILDCARDS}{qw(stl)}; -use constant AMF_MODEL_WILDCARD => join '|', @{&FILE_WILDCARDS}{qw(amf)}; -use constant TMF_MODEL_WILDCARD => join '|', @{&FILE_WILDCARDS}{qw(tmf)}; - -our $datadir; -# If set, the "Controller" tab for the control of the printer over serial line and the serial port settings are hidden. -our $autosave; -our $threads; -our @cb; - -our $Settings = { - _ => { - version_check => 1, - autocenter => 1, - autoalignz => 1, - invert_zoom => 0, - background_processing => 0, - threads => $Slic3r::Config::Options->{threads}{default}, - color_toolpaths_by => 'role', - tabbed_preset_editors => 1, - show_host => 0, - nudge_val => 1, - reload_hide_dialog => 0, - reload_behavior => 0 - }, -}; - -our $have_button_icons = &Wx::wxVERSION_STRING =~ / (?:2\.9\.[1-9]|3\.)/; -our $small_font = Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); -$small_font->SetPointSize(11) if &Wx::wxMAC; -our $small_bold_font = Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); -$small_bold_font->SetPointSize(11) if &Wx::wxMAC; -$small_bold_font->SetWeight(wxFONTWEIGHT_BOLD); -our $medium_font = Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); -$medium_font->SetPointSize(12); -our $grey = Wx::Colour->new(200,200,200); - -# to use in ScrolledWindow::SetScrollRate(xstep, ystep) -# step related to system font point size -our $scroll_step = Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)->GetPointSize; - -our $VERSION_CHECK_EVENT : shared = Wx::NewEventType; - -our $DLP_projection_screen; - -sub OnInit { - my ($self) = @_; - - $self->SetAppName('Slic3r'); - Slic3r::debugf "wxWidgets version %s, Wx version %s\n", &Wx::wxVERSION_STRING, $Wx::VERSION; - - $self->{notifier} = Slic3r::GUI::Notifier->new; - $self->{presets} = { print => [], filament => [], printer => [] }; - - # locate or create data directory - # Unix: ~/.Slic3r - # Windows: "C:\Users\username\AppData\Roaming\Slic3r" or "C:\Documents and Settings\username\Application Data\Slic3r" - # Mac: "~/Library/Application Support/Slic3r" - $datadir ||= Slic3r::decode_path(Wx::StandardPaths::Get->GetUserDataDir); - my $enc_datadir = Slic3r::encode_path($datadir); - Slic3r::debugf "Data directory: %s\n", $datadir; - - # just checking for existence of $datadir is not enough: it may be an empty directory - # supplied as argument to --datadir; in that case we should still run the wizard - my $run_wizard = (-d $enc_datadir && -e "$enc_datadir/slic3r.ini") ? 0 : 1; - foreach my $dir ($enc_datadir, "$enc_datadir/print", "$enc_datadir/filament", "$enc_datadir/printer") { - next if -d $dir; - if (!mkdir $dir) { - my $error = "Slic3r was unable to create its data directory at $dir ($!)."; - warn "$error\n"; - fatal_error(undef, $error); - } - } - - # load settings - my $last_version; - if (-f "$enc_datadir/slic3r.ini") { - my $ini = eval { Slic3r::Config->read_ini("$datadir/slic3r.ini") }; - if ($ini) { - $last_version = $ini->{_}{version}; - $ini->{_}{$_} = $Settings->{_}{$_} - for grep !exists $ini->{_}{$_}, keys %{$Settings->{_}}; - $Settings = $ini; - } - delete $Settings->{_}{mode}; # handle legacy - } - $Settings->{_}{version} = $Slic3r::VERSION; - $Settings->{_}{threads} = $threads if $threads; - $self->save_settings; - - if (-f "$enc_datadir/simple.ini") { - # The Simple Mode settings were already automatically duplicated to presets - # named "Simple Mode" in each group, so we already support retrocompatibility. - unlink "$enc_datadir/simple.ini"; - } - - $self->load_presets; - - # application frame - Wx::Image::AddHandler(Wx::PNGHandler->new); - $self->{mainframe} = my $frame = Slic3r::GUI::MainFrame->new; - $self->SetTopWindow($frame); - - # load init bundle - { - my @dirs = ($FindBin::Bin); - if (&Wx::wxMAC) { - push @dirs, qw(); - } elsif (&Wx::wxMSW) { - push @dirs, qw(); - } - my $init_bundle = first { -e $_ } map "$_/.init_bundle.ini", @dirs; - if ($init_bundle) { - Slic3r::debugf "Loading config bundle from %s\n", $init_bundle; - $self->{mainframe}->load_configbundle($init_bundle, 1); - $run_wizard = 0; - } - } - - if (!$run_wizard && (!defined $last_version || $last_version ne $Slic3r::VERSION)) { - # user was running another Slic3r version on this computer - if (!defined $last_version || $last_version =~ /^0\./) { - show_info($self->{mainframe}, "Hello! Support material was improved since the " - . "last version of Slic3r you used. It is strongly recommended to revert " - . "your support material settings to the factory defaults and start from " - . "those. Enjoy and provide feedback!", "Support Material"); - } - if (!defined $last_version || $last_version =~ /^(?:0|1\.[01])\./) { - show_info($self->{mainframe}, "Hello! In this version a new Bed Shape option was " - . "added. If the bed coordinates in the plater preview screen look wrong, go " - . "to Print Settings and click the \"Set\" button next to \"Bed Shape\".", "Bed Shape"); - } - } - $self->{mainframe}->config_wizard if $run_wizard; - - $self->check_version - if $self->have_version_check - && ($Settings->{_}{version_check} // 1) - && (!$Settings->{_}{last_version_check} || (time - $Settings->{_}{last_version_check}) >= 86400); - - EVT_IDLE($frame, sub { - while (my $cb = shift @cb) { - $cb->(); - } - }); - - EVT_COMMAND($self, -1, $VERSION_CHECK_EVENT, sub { - my ($self, $event) = @_; - my ($success, $response, $manual_check) = @{$event->GetData}; - - if ($success) { - if ($response =~ /^obsolete ?= ?([a-z0-9.-]+,)*\Q$Slic3r::VERSION\E(?:,|$)/) { - my $res = Wx::MessageDialog->new(undef, "A new version is available. Do you want to open the Slic3r website now?", - 'Update', wxYES_NO | wxCANCEL | wxYES_DEFAULT | wxICON_INFORMATION | wxICON_ERROR)->ShowModal; - Wx::LaunchDefaultBrowser('http://slic3r.org/') if $res == wxID_YES; - } else { - Slic3r::GUI::show_info(undef, "You're using the latest version. No updates are available.") if $manual_check; - } - $Settings->{_}{last_version_check} = time(); - $self->save_settings; - } else { - Slic3r::GUI::show_error(undef, "Failed to check for updates. Try later.") if $manual_check; - } - }); - - return 1; -} - -sub about { - my ($self) = @_; - - my $about = Slic3r::GUI::AboutDialog->new(undef); - $about->ShowModal; - $about->Destroy; -} - -# static method accepting a wxWindow object as first parameter -sub catch_error { - my ($self, $cb, $message_dialog) = @_; - if (my $err = $@) { - $cb->() if $cb; - $message_dialog - ? $message_dialog->($err, 'Error', wxOK | wxICON_ERROR) - : Slic3r::GUI::show_error($self, $err); - return 1; - } - return 0; -} - -# static method accepting a wxWindow object as first parameter -sub show_error { - my ($parent, $message) = @_; - Wx::MessageDialog->new($parent, $message, 'Error', wxOK | wxICON_ERROR)->ShowModal; -} - -# static method accepting a wxWindow object as first parameter -sub show_info { - my ($parent, $message, $title) = @_; - Wx::MessageDialog->new($parent, $message, $title || 'Notice', wxOK | wxICON_INFORMATION)->ShowModal; -} - -# static method accepting a wxWindow object as first parameter -sub fatal_error { - show_error(@_); - exit 1; -} - -# static method accepting a wxWindow object as first parameter -sub warning_catcher { - my ($self, $message_dialog) = @_; - return sub { - my $message = shift; - return if $message =~ /GLUquadricObjPtr|Attempt to free unreferenced scalar/; - my @params = ($message, 'Warning', wxOK | wxICON_WARNING); - $message_dialog - ? $message_dialog->(@params) - : Wx::MessageDialog->new($self, @params)->ShowModal; - }; -} - -sub notify { - my ($self, $message) = @_; - - my $frame = $self->GetTopWindow; - # try harder to attract user attention on OS X - $frame->RequestUserAttention(&Wx::wxMAC ? wxUSER_ATTENTION_ERROR : wxUSER_ATTENTION_INFO) - unless ($frame->IsActive); - - $self->{notifier}->notify($message); -} - -sub save_settings { - my ($self) = @_; - Slic3r::Config->write_ini("$datadir/slic3r.ini", $Settings); -} - -sub presets { return $_[0]->{presets}; } - -sub load_presets { - my ($self) = @_; - - for my $group (qw(printer filament print)) { - my $presets = $self->{presets}{$group}; - - # keep external or dirty presets - @$presets = grep { ($_->external && $_->file_exists) || $_->dirty } @$presets; - - my $dir = "$Slic3r::GUI::datadir/$group"; - opendir my $dh, Slic3r::encode_path($dir) - or die "Failed to read directory $dir (errno: $!)\n"; - foreach my $file (grep /\.ini$/i, readdir $dh) { - $file = Slic3r::decode_path($file); - my $name = basename($file); - $name =~ s/\.ini$//i; - - # skip if we already have it - next if any { $_->name eq $name } @$presets; - - push @$presets, Slic3r::GUI::Preset->new( - group => $group, - name => $name, - file => "$dir/$file", - ); - } - closedir $dh; - - @$presets = sort { $a->name cmp $b->name } @$presets; - - unshift @$presets, Slic3r::GUI::Preset->new( - group => $group, - default => 1, - name => '- default -', - ); - } -} - -sub add_external_preset { - my ($self, $file) = @_; - - my $name = basename($file); # keep .ini suffix - for my $group (qw(printer filament print)) { - my $presets = $self->{presets}{$group}; - - # remove any existing preset with the same name - @$presets = grep { $_->name ne $name } @$presets; - - push @$presets, Slic3r::GUI::Preset->new( - group => $group, - name => $name, - file => $file, - external => 1, - ); - } - return $name; -} - -sub have_version_check { - my ($self) = @_; - - # return an explicit 0 - return ($Slic3r::have_threads && $Slic3r::VERSION !~ /-dev$/ && $have_LWP) || 0; -} - -sub check_version { - my ($self, $manual_check) = @_; - - Slic3r::debugf "Checking for updates...\n"; - - @_ = (); - threads->create(sub { - my $ua = LWP::UserAgent->new; - $ua->timeout(10); - my $response = $ua->get('http://slic3r.org/updatecheck'); - Wx::PostEvent($self, Wx::PlThreadEvent->new(-1, $VERSION_CHECK_EVENT, - threads::shared::shared_clone([ $response->is_success, $response->decoded_content, $manual_check ]))); - - Slic3r::thread_cleanup(); - })->detach; -} - -sub output_path { - my ($self, $dir) = @_; - - return ($Settings->{_}{last_output_path} && $Settings->{_}{remember_output_path}) - ? $Settings->{_}{last_output_path} - : $dir; -} - -sub open_model { - my ($self, $window) = @_; - - my $dir = $Slic3r::GUI::Settings->{recent}{skein_directory} - || $Slic3r::GUI::Settings->{recent}{config_directory} - || ''; - - my $dialog = Wx::FileDialog->new($window // $self->GetTopWindow, 'Choose one or more files (STL/OBJ/AMF/3MF):', $dir, "", - MODEL_WILDCARD, wxFD_OPEN | wxFD_MULTIPLE | wxFD_FILE_MUST_EXIST); - if ($dialog->ShowModal != wxID_OK) { - $dialog->Destroy; - return; - } - my @input_files = map Slic3r::decode_path($_), $dialog->GetPaths; - $dialog->Destroy; - - return @input_files; -} - -sub CallAfter { - my ($self, $cb) = @_; - push @cb, $cb; -} - -sub scan_serial_ports { - my ($self) = @_; - - my @ports = (); - - if ($^O eq 'MSWin32') { - # Windows - if (eval "use Win32::TieRegistry; 1") { - my $ts = Win32::TieRegistry->new("HKEY_LOCAL_MACHINE\\HARDWARE\\DEVICEMAP\\SERIALCOMM", - { Access => 'KEY_READ' }); - if ($ts) { - # when no serial ports are available, the registry key doesn't exist and - # TieRegistry->new returns undef - $ts->Tie(\my %reg); - push @ports, sort values %reg; - } - } - } else { - # UNIX and OS X - push @ports, glob '/dev/{ttyUSB,ttyACM,tty.,cu.,rfcomm}*'; - } - - return grep !/Bluetooth|FireFly/, @ports; -} - -sub append_menu_item { - my ($self, $menu, $string, $description, $cb, $id, $icon, $kind) = @_; - - $id //= &Wx::NewId(); - my $item = Wx::MenuItem->new($menu, $id, $string, $description // '', $kind // 0); - $self->set_menu_item_icon($item, $icon); - $menu->Append($item); - - EVT_MENU($self, $id, $cb); - return $item; -} - -sub append_submenu { - my ($self, $menu, $string, $description, $submenu, $id, $icon) = @_; - - $id //= &Wx::NewId(); - my $item = Wx::MenuItem->new($menu, $id, $string, $description // ''); - $self->set_menu_item_icon($item, $icon); - $item->SetSubMenu($submenu); - $menu->Append($item); - - return $item; -} - -sub set_menu_item_icon { - my ($self, $menuItem, $icon) = @_; - - # SetBitmap was not available on OS X before Wx 0.9927 - if ($icon && $menuItem->can('SetBitmap')) { - $menuItem->SetBitmap(Wx::Bitmap->new($Slic3r::var->($icon), wxBITMAP_TYPE_PNG)); - } -} - -sub save_window_pos { - my ($self, $window, $name) = @_; - - $Settings->{_}{"${name}_pos"} = join ',', $window->GetScreenPositionXY; - $Settings->{_}{"${name}_size"} = join ',', $window->GetSizeWH; - $Settings->{_}{"${name}_maximized"} = $window->IsMaximized; - $self->save_settings; -} - -sub restore_window_pos { - my ($self, $window, $name) = @_; - - if (defined $Settings->{_}{"${name}_pos"}) { - my $size = [ split ',', $Settings->{_}{"${name}_size"}, 2 ]; - $window->SetSize($size); - - my $display = Wx::Display->new->GetClientArea(); - my $pos = [ split ',', $Settings->{_}{"${name}_pos"}, 2 ]; - if (($pos->[X] + $size->[X]/2) < $display->GetRight && ($pos->[Y] + $size->[Y]/2) < $display->GetBottom) { - $window->Move($pos); - } - $window->Maximize(1) if $Settings->{_}{"${name}_maximized"}; - } -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/2DBed.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/2DBed.pm deleted file mode 100644 index b18bfa82..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/2DBed.pm +++ /dev/null @@ -1,227 +0,0 @@ -# Bed shape dialog - -package Slic3r::GUI::2DBed; -use strict; -use warnings; - -use List::Util qw(min max); -use Slic3r::Geometry qw(PI X Y unscale deg2rad); -use Slic3r::Geometry::Clipper qw(intersection_pl); -use Wx qw(:misc :pen :brush :font :systemsettings wxTAB_TRAVERSAL wxSOLID); -use Wx::Event qw(EVT_PAINT EVT_ERASE_BACKGROUND EVT_MOUSE_EVENTS EVT_SIZE); -use base qw(Wx::Panel Class::Accessor); - -# Color Scheme -use Slic3r::GUI::ColorScheme; - -__PACKAGE__->mk_accessors(qw(bed_shape interactive pos _scale_factor _shift on_move _painted)); - -sub new { - my ($class, $parent, $bed_shape) = @_; - - if ( ( defined $Slic3r::GUI::Settings->{_}{colorscheme} ) && ( Slic3r::GUI::ColorScheme->can($Slic3r::GUI::Settings->{_}{colorscheme}) ) ) { - my $myGetSchemeName = \&{"Slic3r::GUI::ColorScheme::$Slic3r::GUI::Settings->{_}{colorscheme}"}; - $myGetSchemeName->(); - } else { - Slic3r::GUI::ColorScheme->getDefault(); - } - - my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, [250,-1], wxTAB_TRAVERSAL); - $self->{user_drawn_background} = $^O ne 'darwin'; - $self->bed_shape($bed_shape // []); - EVT_PAINT($self, \&_repaint); - EVT_ERASE_BACKGROUND($self, sub {}) if $self->{user_drawn_background}; - EVT_MOUSE_EVENTS($self, \&_mouse_event); - EVT_SIZE($self, sub { $self->Refresh; }); - return $self; -} - -sub _repaint { - my ($self, $event) = @_; - - my $dc = Wx::AutoBufferedPaintDC->new($self); - my ($cw, $ch) = $self->GetSizeWH; - return if $cw == 0; # when canvas is not rendered yet, size is 0,0 - - if ($self->{user_drawn_background}) { - # On all systems the AutoBufferedPaintDC() achieves double buffering. - # On MacOS the background is erased, on Windows the background is not erased - # and on Linux/GTK the background is erased to gray color. - # Fill DC with the background on Windows & Linux/GTK. - my $brush_background = Wx::Brush->new(Wx::Colour->new(@BACKGROUND255), wxSOLID); - my $pen_background = Wx::Pen->new(Wx::Colour->new(@BACKGROUND255), 1, wxSOLID); - $dc->SetPen($pen_background); - $dc->SetBrush($brush_background); - my $rect = $self->GetUpdateRegion()->GetBox(); - $dc->DrawRectangle($rect->GetLeft(), $rect->GetTop(), $rect->GetWidth(), $rect->GetHeight()); - } - - # turn $cw and $ch from sizes to max coordinates - $cw--; - $ch--; - - my $cbb = Slic3r::Geometry::BoundingBoxf->new_from_points([ - Slic3r::Pointf->new(0, 0), - Slic3r::Pointf->new($cw, $ch), - ]); - - # leave space for origin point - $cbb->set_x_min($cbb->x_min + 4); - $cbb->set_x_max($cbb->x_max - 4); - $cbb->set_y_max($cbb->y_max - 4); - - # leave space for origin label - $cbb->set_y_max($cbb->y_max - 13); - - # read new size - ($cw, $ch) = @{$cbb->size}; - my $ccenter = $cbb->center; - - # get bounding box of bed shape in G-code coordinates - my $bed_shape = $self->bed_shape; - my $bed_polygon = Slic3r::Polygon->new_scale(@$bed_shape); - my $bb = Slic3r::Geometry::BoundingBoxf->new_from_points($bed_shape); - $bb->merge_point(Slic3r::Pointf->new(0,0)); # origin needs to be in the visible area - my ($bw, $bh) = @{$bb->size}; - my $bcenter = $bb->center; - - # calculate the scaling factor for fitting bed shape in canvas area - my $sfactor = min($cw/$bw, $ch/$bh); - my $shift = Slic3r::Pointf->new( - $ccenter->x - $bcenter->x * $sfactor, - $ccenter->y - $bcenter->y * $sfactor, #- - ); - $self->_scale_factor($sfactor); - $self->_shift(Slic3r::Pointf->new( - $shift->x + $cbb->x_min, - $shift->y - ($cbb->y_max-$self->GetSize->GetHeight), #++ - )); - - # draw bed fill - { - $dc->SetPen(Wx::Pen->new(Wx::Colour->new(0,0,0), 1, wxSOLID)); - $dc->SetBrush(Wx::Brush->new(Wx::Colour->new(@BED_COLOR), wxSOLID)); - $dc->DrawPolygon([ map $self->to_pixels($_), @$bed_shape ], 0, 0); - } - - # draw grid - { - my $step = 10; # 1cm grid - my @polylines = (); - for (my $x = $bb->x_min - ($bb->x_min % $step) + $step; $x < $bb->x_max; $x += $step) { - push @polylines, Slic3r::Polyline->new_scale([$x, $bb->y_min], [$x, $bb->y_max]); - } - for (my $y = $bb->y_min - ($bb->y_min % $step) + $step; $y < $bb->y_max; $y += $step) { - push @polylines, Slic3r::Polyline->new_scale([$bb->x_min, $y], [$bb->x_max, $y]); - } - @polylines = @{intersection_pl(\@polylines, [$bed_polygon])}; - - $dc->SetPen(Wx::Pen->new(Wx::Colour->new(@BED_GRID), 1, wxSOLID)); - $dc->DrawLine(map @{$self->to_pixels([map unscale($_), @$_])}, @$_[0,-1]) for @polylines; - } - - # draw bed contour - { - $dc->SetPen(Wx::Pen->new(Wx::Colour->new(0,0,0), 1, wxSOLID)); - $dc->SetBrush(Wx::Brush->new(Wx::Colour->new(255,255,255), wxTRANSPARENT)); - $dc->DrawPolygon([ map $self->to_pixels($_), @$bed_shape ], 0, 0); - } - - my $origin_px = $self->to_pixels(Slic3r::Pointf->new(0,0)); - - # draw axes - { - my $axes_len = 50; - my $arrow_len = 6; - my $arrow_angle = deg2rad(45); - $dc->SetPen(Wx::Pen->new(Wx::Colour->new(255,0,0), 2, wxSOLID)); # red - my $x_end = Slic3r::Pointf->new($origin_px->[X] + $axes_len, $origin_px->[Y]); - $dc->DrawLine(@$origin_px, @$x_end); - foreach my $angle (-$arrow_angle, +$arrow_angle) { - my $end = $x_end->clone; - $end->translate(-$arrow_len, 0); - $end->rotate($angle, $x_end); - $dc->DrawLine(@$x_end, @$end); - } - - $dc->SetPen(Wx::Pen->new(Wx::Colour->new(0,255,0), 2, wxSOLID)); # green - my $y_end = Slic3r::Pointf->new($origin_px->[X], $origin_px->[Y] - $axes_len); - $dc->DrawLine(@$origin_px, @$y_end); - foreach my $angle (-$arrow_angle, +$arrow_angle) { - my $end = $y_end->clone; - $end->translate(0, +$arrow_len); - $end->rotate($angle, $y_end); - $dc->DrawLine(@$y_end, @$end); - } - } - - # draw origin - { - $dc->SetPen(Wx::Pen->new(Wx::Colour->new(0,0,0), 1, wxSOLID)); - $dc->SetBrush(Wx::Brush->new(Wx::Colour->new(0,0,0), wxSOLID)); - $dc->DrawCircle(@$origin_px, 3); - - $dc->SetTextForeground(Wx::Colour->new(0,0,0)); - $dc->SetFont(Wx::Font->new(10, wxDEFAULT, wxNORMAL, wxNORMAL)); - $dc->DrawText("(0,0)", $origin_px->[X] + 1, $origin_px->[Y] + 2); - } - - # draw current position - if (defined $self->pos) { - my $pos_px = $self->to_pixels($self->pos); - $dc->SetPen(Wx::Pen->new(Wx::Colour->new(200,0,0), 2, wxSOLID)); - $dc->SetBrush(Wx::Brush->new(Wx::Colour->new(200,0,0), wxTRANSPARENT)); - $dc->DrawCircle(@$pos_px, 5); - - $dc->DrawLine($pos_px->[X]-15, $pos_px->[Y], $pos_px->[X]+15, $pos_px->[Y]); - $dc->DrawLine($pos_px->[X], $pos_px->[Y]-15, $pos_px->[X], $pos_px->[Y]+15); - } - - $self->_painted(1); -} - -sub _mouse_event { - my ($self, $event) = @_; - - return if !$self->interactive; - return if !$self->_painted; - - my $pos = $event->GetPosition; - my $point = $self->to_units([ $pos->x, $pos->y ]); #]] - if ($event->LeftDown || $event->Dragging) { - $self->on_move->($point) if $self->on_move; - $self->Refresh; - } -} - -# convert G-code coordinates into pixels -sub to_pixels { - my ($self, $point) = @_; - - my $p = Slic3r::Pointf->new(@$point); - $p->scale($self->_scale_factor); - $p->translate(@{$self->_shift}); - return [$p->x, $self->GetSize->GetHeight - $p->y]; #]] -} - -# convert pixels into G-code coordinates -sub to_units { - my ($self, $point) = @_; - - my $p = Slic3r::Pointf->new( - $point->[X], - $self->GetSize->GetHeight - $point->[Y], - ); - $p->translate(@{$self->_shift->negative}); - $p->scale(1/$self->_scale_factor); - return $p; -} - -sub set_pos { - my ($self, $pos) = @_; - - $self->pos($pos); - $self->Refresh; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/3DScene.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/3DScene.pm deleted file mode 100644 index fd7dadb4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/3DScene.pm +++ /dev/null @@ -1,1611 +0,0 @@ -package Slic3r::GUI::3DScene::Base; -use strict; -use warnings; -use Wx::Event qw(EVT_PAINT EVT_SIZE EVT_ERASE_BACKGROUND EVT_IDLE EVT_MOUSEWHEEL EVT_MOUSE_EVENTS); -# must load OpenGL *before* Wx::GLCanvas - -use OpenGL qw(:glconstants :glfunctions :glufunctions :gluconstants); -use base qw(Wx::GLCanvas Class::Accessor); -use Math::Trig qw(asin); -use List::Util qw(reduce min max first); -use Slic3r::Geometry qw(X Y Z MIN MAX triangle_normal normalize deg2rad tan scale unscale scaled_epsilon); -use Slic3r::Geometry::Clipper qw(offset_ex intersection_pl); -use Wx::GLCanvas qw(:all); - -__PACKAGE__->mk_accessors( qw(_quat _dirty init - enable_picking - enable_moving - on_viewport_changed - on_hover - on_select - on_double_click - on_right_click - on_move - volumes - _sphi _stheta - cutting_plane_axis - cutting_plane_z - cut_lines_vertices - bed_shape - bed_triangles - bed_grid_lines - background - origin - _mouse_pos - _hover_volume_idx - _drag_volume_idx - _drag_start_pos - _drag_start_xy - _dragged - _camera_target - _zoom - ) ); - -use constant TRACKBALLSIZE => 0.8; -use constant TURNTABLE_MODE => 1; -use constant GROUND_Z => -0.02; -use constant PI => 3.1415927; - -# Constant to determine if Vertex Buffer objects are used to draw -# bed grid and the cut plane for object separation. -use constant HAS_VBO => eval { glGenBuffersARB_p(0); GL_ARRAY_BUFFER_ARB; 1 }; - -# phi / theta angles to orient the camera. -use constant VIEW_TOP => [0.0,0.0]; -use constant VIEW_BOTTOM => [0.0,180.0]; -use constant VIEW_LEFT => [90.0,90.0]; -use constant VIEW_RIGHT => [-90.0,90.0]; -use constant VIEW_FRONT => [0.0,90.0]; -use constant VIEW_BACK => [180.0,90.0]; -use constant VIEW_DIAGONAL => [45.0,45.0]; - -# Color Scheme -use Slic3r::GUI::ColorScheme; - -use constant GIMBAL_LOCK_THETA_MAX => 170; - -# make OpenGL::Array thread-safe -{ - no warnings 'redefine'; - *OpenGL::Array::CLONE_SKIP = sub { 1 }; -} - -sub new { - my ($class, $parent) = @_; - - if ( ( defined $Slic3r::GUI::Settings->{_}{colorscheme} ) && ( Slic3r::GUI::ColorScheme->can($Slic3r::GUI::Settings->{_}{colorscheme}) ) ) { - my $myGetSchemeName = \&{"Slic3r::GUI::ColorScheme::$Slic3r::GUI::Settings->{_}{colorscheme}"}; - $myGetSchemeName->(); - } else { - Slic3r::GUI::ColorScheme->getDefault(); - } - - # We can only enable multi sample anti aliasing with wxWidgets 3.0.3 and with a hacked Wx::GLCanvas, - # which exports some new WX_GL_XXX constants, namely WX_GL_SAMPLE_BUFFERS and WX_GL_SAMPLES. - my $can_multisample = - Wx::wxVERSION >= 3.000003 && - defined Wx::GLCanvas->can('WX_GL_SAMPLE_BUFFERS') && - defined Wx::GLCanvas->can('WX_GL_SAMPLES'); - my $attrib = [WX_GL_RGBA, WX_GL_DOUBLEBUFFER, WX_GL_DEPTH_SIZE, 24]; - if ($can_multisample) { - # Request a window with multi sampled anti aliasing. This is a new feature in Wx 3.0.3 (backported from 3.1.0). - # Use eval to avoid compilation, if the subs WX_GL_SAMPLE_BUFFERS and WX_GL_SAMPLES are missing. - eval 'push(@$attrib, (WX_GL_SAMPLE_BUFFERS, 1, WX_GL_SAMPLES, 4));'; - } - # wxWidgets expect the attrib list to be ended by zero. - push(@$attrib, 0); - - # we request a depth buffer explicitely because it looks like it's not created by - # default on Linux, causing transparency issues - my $self = $class->SUPER::new($parent, -1, Wx::wxDefaultPosition, Wx::wxDefaultSize, 0, "", $attrib); - - if (Wx::wxVERSION >= 3.000003) { - # Wx 3.0.3 contains an ugly hack to support some advanced OpenGL attributes through the attribute list. - # The attribute list is transferred between the wxGLCanvas and wxGLContext constructors using a single static array s_wglContextAttribs. - # Immediatelly force creation of the OpenGL context to consume the static variable s_wglContextAttribs. - $self->GetContext(); - } - - $self->{can_multisample} = $can_multisample; - $self->background(1); - $self->_quat((0, 0, 0, 1)); - $self->_stheta(45); - $self->_sphi(45); - $self->_zoom(1); - - # 3D point in model space - $self->_camera_target(Slic3r::Pointf3->new(0,0,0)); - - $self->reset_objects; - - EVT_PAINT($self, sub { - my $dc = Wx::PaintDC->new($self); - $self->Render($dc); - }); - EVT_SIZE($self, sub { $self->_dirty(1) }); - EVT_IDLE($self, sub { - return unless $self->_dirty; - return if !$self->IsShownOnScreen; - $self->Resize( $self->GetSizeWH ); - $self->Refresh; - }); - EVT_MOUSEWHEEL($self, sub { - my ($self, $e) = @_; - - # Calculate the zoom delta and apply it to the current zoom factor - my $zoom = $e->GetWheelRotation() / $e->GetWheelDelta(); - if ($Slic3r::GUI::Settings->{_}{invert_zoom}) { - $zoom *= -1; - } - $zoom = max(min($zoom, 4), -4); - $zoom /= 10; - $self->_zoom($self->_zoom / (1-$zoom)); - - # In order to zoom around the mouse point we need to translate - # the camera target - my $size = Slic3r::Pointf->new($self->GetSizeWH); - my $pos = Slic3r::Pointf->new($e->GetX, $size->y - $e->GetY); #- - $self->_camera_target->translate( - # ($pos - $size/2) represents the vector from the viewport center - # to the mouse point. By multiplying it by $zoom we get the new, - # transformed, length of such vector. - # Since we want that point to stay fixed, we move our camera target - # in the opposite direction by the delta of the length of such vector - # ($zoom - 1). We then scale everything by 1/$self->_zoom since - # $self->_camera_target is expressed in terms of model units. - -($pos->x - $size->x/2) * ($zoom) / $self->_zoom, - -($pos->y - $size->y/2) * ($zoom) / $self->_zoom, - 0, - ) if 0; - $self->on_viewport_changed->() if $self->on_viewport_changed; - $self->_dirty(1); - $self->Refresh; - }); - EVT_MOUSE_EVENTS($self, \&mouse_event); - - - return $self; -} - -sub mouse_event { - my ($self, $e) = @_; - - my $pos = Slic3r::Pointf->new($e->GetPositionXY); - if ($e->Entering && &Wx::wxMSW) { - # wxMSW needs focus in order to catch mouse wheel events - $self->SetFocus; - } elsif ($e->LeftDClick) { - $self->on_double_click->() - if $self->on_double_click; - } elsif ($e->MiddleDClick) { - if (@{$self->volumes}) { - $self->zoom_to_volumes; - } else { - $self->zoom_to_bed; - } - $self->_dirty(1); - $self->Refresh; - } elsif (($e->LeftDown || $e->RightDown) && not $e->ShiftDown) { - # If user pressed left or right button we first check whether this happened - # on a volume or not. - my $volume_idx = $self->_hover_volume_idx // -1; - - # select volume in this 3D canvas - if ($self->enable_picking) { - $self->deselect_volumes; - $self->select_volume($volume_idx); - - if ($volume_idx != -1) { - my $group_id = $self->volumes->[$volume_idx]->select_group_id; - my @volumes; - if ($group_id != -1) { - $self->select_volume($_) - for grep $self->volumes->[$_]->select_group_id == $group_id, - 0..$#{$self->volumes}; - } - } - - $self->Refresh; - } - - # propagate event through callback - $self->on_select->($volume_idx) - if $self->on_select; - - if ($volume_idx != -1) { - if ($e->LeftDown && $self->enable_moving) { - $self->_drag_volume_idx($volume_idx); - $self->_drag_start_pos($self->mouse_to_3d(@$pos)); - } elsif ($e->RightDown) { - # if right clicking on volume, propagate event through callback - $self->on_right_click->($e->GetPosition) - if $self->on_right_click; - } - } - } elsif ($e->Dragging && $e->LeftIsDown && defined($self->_drag_volume_idx)) { - # get new position at the same Z of the initial click point - my $mouse_ray = $self->mouse_ray($e->GetX, $e->GetY); - my $cur_pos = $mouse_ray->intersect_plane($self->_drag_start_pos->z); - - # calculate the translation vector - my $vector = $self->_drag_start_pos->vector_to($cur_pos); - - # get volume being dragged - my $volume = $self->volumes->[$self->_drag_volume_idx]; - - # get all volumes belonging to the same group, if any - my @volumes; - if ($volume->drag_group_id == -1) { - @volumes = ($volume); - } else { - @volumes = grep $_->drag_group_id == $volume->drag_group_id, @{$self->volumes}; - } - - # apply new temporary volume origin and ignore Z - $_->origin->translate($vector->x, $vector->y, 0) for @volumes; #,, - $self->_drag_start_pos($cur_pos); - $self->_dragged(1); - $self->Refresh; - } elsif ($e->Dragging) { - if ($e->AltDown) { - # Move the camera center on the Z axis based on mouse Y axis movement - if (defined $self->_drag_start_pos) { - my $orig = $self->_drag_start_pos; - $self->_camera_target->translate(0, 0, $pos->y - $orig->y); - $self->on_viewport_changed->() if $self->on_viewport_changed; - $self->Refresh; - } - $self->_drag_start_pos($pos); - } elsif ($e->LeftIsDown) { - # if dragging over blank area with left button, rotate - if (defined $self->_drag_start_pos) { - my $orig = $self->_drag_start_pos; - if (TURNTABLE_MODE) { - $self->_sphi($self->_sphi + ($pos->x - $orig->x) * TRACKBALLSIZE); - $self->_stheta($self->_stheta - ($pos->y - $orig->y) * TRACKBALLSIZE); #- - $self->_stheta(GIMBAL_LOCK_THETA_MAX) if $self->_stheta > GIMBAL_LOCK_THETA_MAX; - $self->_stheta(0) if $self->_stheta < 0; - } else { - my $size = $self->GetClientSize; - my @quat = trackball( - $orig->x / ($size->width / 2) - 1, - 1 - $orig->y / ($size->height / 2), #/ - $pos->x / ($size->width / 2) - 1, - 1 - $pos->y / ($size->height / 2), #/ - ); - $self->_quat(mulquats($self->_quat, \@quat)); - } - $self->on_viewport_changed->() if $self->on_viewport_changed; - $self->Refresh; - } - $self->_drag_start_pos($pos); - } elsif ($e->MiddleIsDown || $e->RightIsDown) { - # if dragging over blank area with right button, translate - - if (defined $self->_drag_start_xy) { - # get point in model space at Z = 0 - my $cur_pos = $self->mouse_ray($e->GetX, $e->GetY)->intersect_plane(0); - my $orig = $self->mouse_ray(@{$self->_drag_start_xy})->intersect_plane(0); - $self->_camera_target->translate( - @{$orig->vector_to($cur_pos)->negative}, - ); - $self->on_viewport_changed->() if $self->on_viewport_changed; - $self->Refresh; - } - $self->_drag_start_xy($pos); - } - } elsif ($e->LeftUp || $e->MiddleUp || $e->RightUp) { - if ($self->on_move && defined($self->_drag_volume_idx) && $self->_dragged) { - # get all volumes belonging to the same group, if any - my @volume_idxs; - my $group_id = $self->volumes->[$self->_drag_volume_idx]->drag_group_id; - if ($group_id == -1) { - @volume_idxs = ($self->_drag_volume_idx); - } else { - @volume_idxs = grep $self->volumes->[$_]->drag_group_id == $group_id, - 0..$#{$self->volumes}; - } - $self->on_move->(@volume_idxs); - } - $self->_drag_volume_idx(undef); - $self->_drag_start_pos(undef); - $self->_drag_start_xy(undef); - $self->_dragged(undef); - } elsif ($e->Moving) { - $self->_mouse_pos($pos); - $self->Refresh if $self->enable_picking; - } else { - $e->Skip(); - } -} - -sub reset_objects { - my ($self) = @_; - - $self->volumes([]); - $self->_dirty(1); -} - -sub set_viewport_from_scene { - my ($self, $scene) = @_; - - $self->_sphi($scene->_sphi); - $self->_stheta($scene->_stheta); - $self->_camera_target($scene->_camera_target); - $self->_zoom($scene->_zoom); - $self->_quat($scene->_quat); - $self->_dirty(1); -} - -sub zoom{ - my ($self, $direction) = @_; - if( $direction eq 'in'){ - $self->_zoom($self->_zoom / (1-0.3)); - } - elsif($direction eq 'out'){ - $self->_zoom($self->_zoom / (1+0.3)); - } - $self->on_viewport_changed->() if $self->on_viewport_changed; - $self->_dirty(1); - $self->Refresh; -} - -# Set the camera to a default orientation, -# zoom to volumes. -sub select_view { - my ($self, $direction) = @_; - my $dirvec; - if (ref($direction)) { - $dirvec = $direction; - } else { - if ($direction eq 'top') { - $dirvec = VIEW_TOP; - } elsif ($direction eq 'bottom') { - $dirvec = VIEW_BOTTOM; - } elsif ($direction eq 'left') { - $dirvec = VIEW_LEFT; - } elsif ($direction eq 'right') { - $dirvec = VIEW_RIGHT; - } elsif ($direction eq 'front') { - $dirvec = VIEW_FRONT; - } elsif ($direction eq 'back') { - $dirvec = VIEW_BACK; - } elsif ($direction eq 'diagonal') { - $dirvec = VIEW_DIAGONAL; - } - } - $self->_sphi($dirvec->[0]); - $self->_stheta($dirvec->[1]); - - # Avoid gimbal lock. - $self->_stheta(GIMBAL_LOCK_THETA_MAX) if $self->_stheta > GIMBAL_LOCK_THETA_MAX; - $self->_stheta(0) if $self->_stheta < 0; - - # View everything. - $self->volumes_bounding_box->defined - ? $self->zoom_to_volumes - : $self->zoom_to_bed; - - $self->on_viewport_changed->() if $self->on_viewport_changed; - $self->_dirty(1); - $self->Refresh; -} - -sub zoom_to_bounding_box { - my ($self, $bb) = @_; - - # calculate the zoom factor needed to adjust viewport to - # bounding box - my $max_size = max(@{$bb->size}) * 1.05; - my $min_viewport_size = min($self->GetSizeWH); - if ($max_size != 0) { - # only re-zoom if we have a valid bounding box, avoid a divide by 0 error. - $self->_zoom($min_viewport_size / $max_size); - - # center view around bounding box center - $self->_camera_target($bb->center); - - $self->on_viewport_changed->() if $self->on_viewport_changed; - } -} - -sub zoom_to_bed { - my ($self) = @_; - - if ($self->bed_shape) { - $self->zoom_to_bounding_box($self->bed_bounding_box); - } -} - -sub zoom_to_volume { - my ($self, $volume_idx) = @_; - - my $volume = $self->volumes->[$volume_idx]; - my $bb = $volume->transformed_bounding_box; - $self->zoom_to_bounding_box($bb); -} - -sub zoom_to_volumes { - my ($self) = @_; - $self->zoom_to_bounding_box($self->volumes_bounding_box); -} - -sub volumes_bounding_box { - my ($self) = @_; - - my $bb = Slic3r::Geometry::BoundingBoxf3->new; - $bb->merge($_->transformed_bounding_box) for @{$self->volumes}; - return $bb; -} - -sub bed_bounding_box { - my ($self) = @_; - - my $bb = Slic3r::Geometry::BoundingBoxf3->new; - if ($self->bed_shape) { - $bb->merge_point(Slic3r::Pointf3->new(@$_, 0)) for @{$self->bed_shape}; - } - return $bb; -} - -sub max_bounding_box { - my ($self) = @_; - - my $bb = $self->bed_bounding_box; - $bb->merge($self->volumes_bounding_box); - return $bb; -} - -sub set_auto_bed_shape { - my ($self, $bed_shape) = @_; - - # draw a default square bed around object center - my $max_size = max(@{ $self->volumes_bounding_box->size }); - my $center = $self->volumes_bounding_box->center; - $self->set_bed_shape([ - [ $center->x - $max_size, $center->y - $max_size ], #-- - [ $center->x + $max_size, $center->y - $max_size ], #-- - [ $center->x + $max_size, $center->y + $max_size ], #++ - [ $center->x - $max_size, $center->y + $max_size ], #++ - ]); - $self->origin(Slic3r::Pointf->new(@$center[X,Y])); -} - -sub set_bed_shape { - my ($self, $bed_shape) = @_; - - $self->bed_shape($bed_shape); - - # triangulate bed - my $expolygon = Slic3r::ExPolygon->new([ map [map scale($_), @$_], @$bed_shape ]); - my $bed_bb = $expolygon->bounding_box; - - { - my @points = (); - foreach my $triangle (@{ $expolygon->triangulate }) { - push @points, map {+ unscale($_->x), unscale($_->y), GROUND_Z } @$triangle; #)) - } - $self->bed_triangles(OpenGL::Array->new_list(GL_FLOAT, @points)); - } - - { - my @polylines = (); - for (my $x = $bed_bb->x_min; $x <= $bed_bb->x_max; $x += scale 10) { - push @polylines, Slic3r::Polyline->new([$x,$bed_bb->y_min], [$x,$bed_bb->y_max]); - } - for (my $y = $bed_bb->y_min; $y <= $bed_bb->y_max; $y += scale 10) { - push @polylines, Slic3r::Polyline->new([$bed_bb->x_min,$y], [$bed_bb->x_max,$y]); - } - # clip with a slightly grown expolygon because our lines lay on the contours and - # may get erroneously clipped - my @lines = map Slic3r::Line->new(@$_[0,-1]), - @{intersection_pl(\@polylines, [ @{$expolygon->offset(+scaled_epsilon)} ])}; - - # append bed contours - push @lines, map @{$_->lines}, @$expolygon; - - my @points = (); - foreach my $line (@lines) { - push @points, map {+ unscale($_->x), unscale($_->y), GROUND_Z } @$line; #)) - } - $self->bed_grid_lines(OpenGL::Array->new_list(GL_FLOAT, @points)); - } - - $self->origin(Slic3r::Pointf->new(0,0)); -} - -sub deselect_volumes { - my ($self) = @_; - $_->selected(0) for @{$self->volumes}; -} - -sub select_volume { - my ($self, $volume_idx) = @_; - - $self->volumes->[$volume_idx]->selected(1) - if $volume_idx != -1; -} - -sub SetCuttingPlane { - my ($self, $axis, $z, $expolygons) = @_; - - $self->cutting_plane_axis($axis); - $self->cutting_plane_z($z); - - # grow slices in order to display them better - $expolygons = offset_ex([ map @$_, @$expolygons ], scale 0.1); - - my $bb = $self->volumes_bounding_box; - - my @verts = (); - foreach my $line (map @{$_->lines}, map @$_, @$expolygons) { - if ($axis == X) { - push @verts, ( - $bb->x_min + $z, unscale($line->a->x), unscale($line->a->y), #)) - $bb->x_min + $z, unscale($line->b->x), unscale($line->b->y), #)) - ); - } elsif ($axis == Y) { - push @verts, ( - unscale($line->a->y), $bb->y_min + $z, unscale($line->a->x), #)) - unscale($line->b->y), $bb->y_min + $z, unscale($line->b->x), #)) - ); - } else { - push @verts, ( - unscale($line->a->x), unscale($line->a->y), $z, #)) - unscale($line->b->x), unscale($line->b->y), $z, #)) - ); - } - - } - $self->cut_lines_vertices(OpenGL::Array->new_list(GL_FLOAT, @verts)); -} - -# Given an axis and angle, compute quaternion. -sub axis_to_quat { - my ($ax, $phi) = @_; - - my $lena = sqrt(reduce { $a + $b } (map { $_ * $_ } @$ax)); - my @q = map { $_ * (1 / $lena) } @$ax; - @q = map { $_ * sin($phi / 2.0) } @q; - $q[$#q + 1] = cos($phi / 2.0); - return @q; -} - -# Project a point on the virtual trackball. -# If it is inside the sphere, map it to the sphere, if it outside map it -# to a hyperbola. -sub project_to_sphere { - my ($r, $x, $y) = @_; - - my $d = sqrt($x * $x + $y * $y); - if ($d < $r * 0.70710678118654752440) { # Inside sphere - return sqrt($r * $r - $d * $d); - } else { # On hyperbola - my $t = $r / 1.41421356237309504880; - return $t * $t / $d; - } -} - -sub cross { - my ($v1, $v2) = @_; - - return (@$v1[1] * @$v2[2] - @$v1[2] * @$v2[1], - @$v1[2] * @$v2[0] - @$v1[0] * @$v2[2], - @$v1[0] * @$v2[1] - @$v1[1] * @$v2[0]); -} - -# Simulate a track-ball. Project the points onto the virtual trackball, -# then figure out the axis of rotation, which is the cross product of -# P1 P2 and O P1 (O is the center of the ball, 0,0,0) Note: This is a -# deformed trackball-- is a trackball in the center, but is deformed -# into a hyperbolic sheet of rotation away from the center. -# It is assumed that the arguments to this routine are in the range -# (-1.0 ... 1.0). -sub trackball { - my ($p1x, $p1y, $p2x, $p2y) = @_; - - if ($p1x == $p2x && $p1y == $p2y) { - # zero rotation - return (0.0, 0.0, 0.0, 1.0); - } - - # First, figure out z-coordinates for projection of P1 and P2 to - # deformed sphere - my @p1 = ($p1x, $p1y, project_to_sphere(TRACKBALLSIZE, $p1x, $p1y)); - my @p2 = ($p2x, $p2y, project_to_sphere(TRACKBALLSIZE, $p2x, $p2y)); - - # axis of rotation (cross product of P1 and P2) - my @a = cross(\@p2, \@p1); - - # Figure out how much to rotate around that axis. - my @d = map { $_ * $_ } (map { $p1[$_] - $p2[$_] } 0 .. $#p1); - my $t = sqrt(reduce { $a + $b } @d) / (2.0 * TRACKBALLSIZE); - - # Avoid problems with out-of-control values... - $t = 1.0 if ($t > 1.0); - $t = -1.0 if ($t < -1.0); - my $phi = 2.0 * asin($t); - - return axis_to_quat(\@a, $phi); -} - -# Build a rotation matrix, given a quaternion rotation. -sub quat_to_rotmatrix { - my ($q) = @_; - - my @m = (); - - $m[0] = 1.0 - 2.0 * (@$q[1] * @$q[1] + @$q[2] * @$q[2]); - $m[1] = 2.0 * (@$q[0] * @$q[1] - @$q[2] * @$q[3]); - $m[2] = 2.0 * (@$q[2] * @$q[0] + @$q[1] * @$q[3]); - $m[3] = 0.0; - - $m[4] = 2.0 * (@$q[0] * @$q[1] + @$q[2] * @$q[3]); - $m[5] = 1.0 - 2.0 * (@$q[2] * @$q[2] + @$q[0] * @$q[0]); - $m[6] = 2.0 * (@$q[1] * @$q[2] - @$q[0] * @$q[3]); - $m[7] = 0.0; - - $m[8] = 2.0 * (@$q[2] * @$q[0] - @$q[1] * @$q[3]); - $m[9] = 2.0 * (@$q[1] * @$q[2] + @$q[0] * @$q[3]); - $m[10] = 1.0 - 2.0 * (@$q[1] * @$q[1] + @$q[0] * @$q[0]); - $m[11] = 0.0; - - $m[12] = 0.0; - $m[13] = 0.0; - $m[14] = 0.0; - $m[15] = 1.0; - - return @m; -} - -sub mulquats { - my ($q1, $rq) = @_; - - return (@$q1[3] * @$rq[0] + @$q1[0] * @$rq[3] + @$q1[1] * @$rq[2] - @$q1[2] * @$rq[1], - @$q1[3] * @$rq[1] + @$q1[1] * @$rq[3] + @$q1[2] * @$rq[0] - @$q1[0] * @$rq[2], - @$q1[3] * @$rq[2] + @$q1[2] * @$rq[3] + @$q1[0] * @$rq[1] - @$q1[1] * @$rq[0], - @$q1[3] * @$rq[3] - @$q1[0] * @$rq[0] - @$q1[1] * @$rq[1] - @$q1[2] * @$rq[2]) -} - -sub mouse_to_3d { - my ($self, $x, $y, $z) = @_; - - my @viewport = glGetIntegerv_p(GL_VIEWPORT); # 4 items - my @mview = glGetDoublev_p(GL_MODELVIEW_MATRIX); # 16 items - my @proj = glGetDoublev_p(GL_PROJECTION_MATRIX); # 16 items - - $y = $viewport[3] - $y; - $z //= glReadPixels_p($x, $y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT); - my @projected = gluUnProject_p($x, $y, $z, @mview, @proj, @viewport); - return Slic3r::Pointf3->new(@projected); -} - -sub mouse_ray { - my ($self, $x, $y) = @_; - - return Slic3r::Linef3->new( - $self->mouse_to_3d($x, $y, 0), - $self->mouse_to_3d($x, $y, 1), - ); -} - -sub GetContext { - my ($self) = @_; - - if (Wx::wxVERSION >= 2.009) { - return $self->{context} ||= Wx::GLContext->new($self); - } else { - return $self->SUPER::GetContext; - } -} - -sub SetCurrent { - my ($self, $context) = @_; - - if (Wx::wxVERSION >= 2.009) { - return $self->SUPER::SetCurrent($context); - } else { - return $self->SUPER::SetCurrent; - } -} - -sub Resize { - my ($self, $x, $y) = @_; - - return unless $self->GetContext; - $self->_dirty(0); - - $self->SetCurrent($self->GetContext); - glViewport(0, 0, $x, $y); - - $x /= $self->_zoom; - $y /= $self->_zoom; - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - my $depth = 10 * max(@{ $self->max_bounding_box->size }); - glOrtho( - -$x/2, $x/2, -$y/2, $y/2, - -$depth, 2*$depth, - ); - - glMatrixMode(GL_MODELVIEW); -} - -sub InitGL { - my $self = shift; - - return if $self->init; - return unless $self->GetContext; - $self->init(1); - - glClearColor(0, 0, 0, 1); - glColor3f(1, 0, 0); - glEnable(GL_DEPTH_TEST); - glClearDepth(1.0); - glDepthFunc(GL_LEQUAL); - glEnable(GL_CULL_FACE); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - # Set antialiasing/multisampling - glDisable(GL_LINE_SMOOTH); - glDisable(GL_POLYGON_SMOOTH); - glEnable(GL_MULTISAMPLE) if ($self->{can_multisample}); - - # ambient lighting - glLightModelfv_p(GL_LIGHT_MODEL_AMBIENT, 0.1, 0.1, 0.1, 1); - - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_LIGHT1); - - # light from camera - glLightfv_p(GL_LIGHT1, GL_POSITION, 1, 0, 1, 0); - glLightfv_p(GL_LIGHT1, GL_SPECULAR, 0.8, 0.8, 0.8, 1); - glLightfv_p(GL_LIGHT1, GL_DIFFUSE, 0.4, 0.4, 0.4, 1); - - # Enables Smooth Color Shading; try GL_FLAT for (lack of) fun. Default: GL_SMOOTH - glShadeModel(GL_SMOOTH); - - glMaterialfv_p(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, 0.3, 0.3, 0.3, 1); - glMaterialfv_p(GL_FRONT_AND_BACK, GL_SPECULAR, 1, 1, 1, 1); - glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, 50); - glMaterialfv_p(GL_FRONT_AND_BACK, GL_EMISSION, 0.1, 0.1, 0.1, 0.9); - - # A handy trick -- have surface material mirror the color. - glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); - glEnable(GL_COLOR_MATERIAL); - glEnable(GL_MULTISAMPLE) if ($self->{can_multisample}); -} - -sub Render { - my ($self, $dc) = @_; - - # prevent calling SetCurrent() when window is not shown yet - return unless $self->IsShownOnScreen; - return unless my $context = $self->GetContext; - $self->SetCurrent($context); - $self->InitGL; - - if($SOLID_BACKGROUNDCOLOR == 1){ - glClearColor(@BACKGROUND_COLOR, 0); - } else { - glClearColor(1, 1, 1, 1); - } - - glClearDepth(1); - glDepthFunc(GL_LESS); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - if (TURNTABLE_MODE) { - glRotatef(-$self->_stheta, 1, 0, 0); # pitch - glRotatef($self->_sphi, 0, 0, 1); # yaw - } else { - my @rotmat = quat_to_rotmatrix($self->quat); - glMultMatrixd_p(@rotmat[0..15]); - } - glTranslatef(@{ $self->_camera_target->negative }); - - # light from above - glLightfv_p(GL_LIGHT0, GL_POSITION, -0.5, -0.5, 1, 0); - glLightfv_p(GL_LIGHT0, GL_SPECULAR, 0.2, 0.2, 0.2, 1); - glLightfv_p(GL_LIGHT0, GL_DIFFUSE, 0.5, 0.5, 0.5, 1); - - if ($self->enable_picking) { - glDisable(GL_MULTISAMPLE) if ($self->{can_multisample}); - glDisable(GL_LIGHTING); - $self->draw_volumes(1); - glFlush(); - glFinish(); - - if (my $pos = $self->_mouse_pos) { - my $col = [ glReadPixels_p($pos->x, $self->GetSize->GetHeight - $pos->y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE) ]; - my $volume_idx = $col->[0] + $col->[1]*256 + $col->[2]*256*256; - $self->_hover_volume_idx(undef); - $_->hover(0) for @{$self->volumes}; - if ($volume_idx <= $#{$self->volumes}) { - $self->_hover_volume_idx($volume_idx); - - $self->volumes->[$volume_idx]->hover(1); - my $group_id = $self->volumes->[$volume_idx]->select_group_id; - if ($group_id != -1) { - $_->hover(1) for grep { $_->select_group_id == $group_id } @{$self->volumes}; - } - - $self->on_hover->($volume_idx) if $self->on_hover; - } - } - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glFlush(); - glFinish(); - glEnable(GL_LIGHTING); - } - - # draw fixed background - if ($SOLID_BACKGROUNDCOLOR == 0 && $self->background) { - glDisable(GL_LIGHTING); - glPushMatrix(); - glLoadIdentity(); - - glMatrixMode(GL_PROJECTION); - glPushMatrix(); - glLoadIdentity(); - - glBegin(GL_QUADS); - glColor3f( @BOTTOM_COLOR ); # bottom color - glVertex2f(-1.0,-1.0); - glVertex2f(1,-1.0); - glColor3f( @TOP_COLOR ); # top color - glVertex2f(1, 1); - glVertex2f(-1.0, 1); - glEnd(); - glPopMatrix(); - - glMatrixMode(GL_MODELVIEW); - glPopMatrix(); - glEnable(GL_LIGHTING); - } - - # draw ground and axes - glDisable(GL_LIGHTING); - - # draw ground - my $ground_z = GROUND_Z; - if ($self->bed_triangles) { - glDisable(GL_DEPTH_TEST); - - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - glEnableClientState(GL_VERTEX_ARRAY); - my $triangle_vertex; - if (HAS_VBO) { - ($triangle_vertex) = - glGenBuffersARB_p(1); - $self->bed_triangles->bind($triangle_vertex); - glBufferDataARB_p(GL_ARRAY_BUFFER_ARB, $self->bed_triangles, GL_STATIC_DRAW_ARB); - glVertexPointer_c(3, GL_FLOAT, 0, 0); - } else { - # fall back on old behavior - glVertexPointer_c(3, GL_FLOAT, 0, $self->bed_triangles->ptr()); - } - glColor4f( @GROUND_COLOR ); - glNormal3d(0,0,1); - glDrawArrays(GL_TRIANGLES, 0, $self->bed_triangles->elements / 3); - glDisableClientState(GL_VERTEX_ARRAY); - - # we need depth test for grid, otherwise it would disappear when looking - # the object from below - glEnable(GL_DEPTH_TEST); - - # draw grid - glLineWidth(2); - glEnableClientState(GL_VERTEX_ARRAY); - my $grid_vertex; - if (HAS_VBO) { - ($grid_vertex) = - glGenBuffersARB_p(1); - $self->bed_grid_lines->bind($grid_vertex); - glBufferDataARB_p(GL_ARRAY_BUFFER_ARB, $self->bed_grid_lines, GL_STATIC_DRAW_ARB); - glVertexPointer_c(3, GL_FLOAT, 0, 0); - } else { - # fall back on old behavior - glVertexPointer_c(3, GL_FLOAT, 0, $self->bed_grid_lines->ptr()); - } - glColor4f( @GRID_COLOR ); - glNormal3d(0,0,1); - glDrawArrays(GL_LINES, 0, $self->bed_grid_lines->elements / 3); - glDisableClientState(GL_VERTEX_ARRAY); - - glDisable(GL_BLEND); - if (HAS_VBO) { - # Turn off buffer objects to let the rest of the draw code work. - glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); - glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0); - glDeleteBuffersARB_p($grid_vertex); - glDeleteBuffersARB_p($triangle_vertex); - } - } - - my $volumes_bb = $self->volumes_bounding_box; - - { - # draw axes - # disable depth testing so that axes are not covered by ground - glDisable(GL_DEPTH_TEST); - my $origin = $self->origin; - my $axis_len = max( - max(@{ $self->bed_bounding_box->size }), - 1.2 * max(@{ $volumes_bb->size }), - ); - glLineWidth(2); - glBegin(GL_LINES); - # draw line for x axis - glColor3f(1, 0, 0); - glVertex3f(@$origin, $ground_z); - glVertex3f($origin->x + $axis_len, $origin->y, $ground_z); #,, - # draw line for y axis - glColor3f(0, 1, 0); - glVertex3f(@$origin, $ground_z); - glVertex3f($origin->x, $origin->y + $axis_len, $ground_z); #++ - glEnd(); - # draw line for Z axis - # (re-enable depth test so that axis is correctly shown when objects are behind it) - glEnable(GL_DEPTH_TEST); - glBegin(GL_LINES); - glColor3f(0, 0, 1); - glVertex3f(@$origin, $ground_z); - glVertex3f(@$origin, $ground_z+$axis_len); - glEnd(); - } - - glEnable(GL_LIGHTING); - - # draw objects - $self->draw_volumes; - - # draw cutting plane - if (defined $self->cutting_plane_z) { - my $plane_z = $self->cutting_plane_z; - my $bb = $volumes_bb; - glDisable(GL_CULL_FACE); - glDisable(GL_LIGHTING); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glBegin(GL_QUADS); - glColor4f( @COLOR_CUTPLANE ); - if ($self->cutting_plane_axis == X) { - glVertex3f($bb->x_min+$plane_z, $bb->y_min-20, $bb->z_min-20); - glVertex3f($bb->x_min+$plane_z, $bb->y_max+20, $bb->z_min-20); - glVertex3f($bb->x_min+$plane_z, $bb->y_max+20, $bb->z_max+20); - glVertex3f($bb->x_min+$plane_z, $bb->y_min-20, $bb->z_max+20); - } elsif ($self->cutting_plane_axis == Y) { - glVertex3f($bb->x_min-20, $bb->y_min+$plane_z, $bb->z_min-20); - glVertex3f($bb->x_max+20, $bb->y_min+$plane_z, $bb->z_min-20); - glVertex3f($bb->x_max+20, $bb->y_min+$plane_z, $bb->z_max+20); - glVertex3f($bb->x_min-20, $bb->y_min+$plane_z, $bb->z_max+20); - } elsif ($self->cutting_plane_axis == Z) { - glVertex3f($bb->x_min-20, $bb->y_min-20, $bb->z_min+$plane_z); - glVertex3f($bb->x_max+20, $bb->y_min-20, $bb->z_min+$plane_z); - glVertex3f($bb->x_max+20, $bb->y_max+20, $bb->z_min+$plane_z); - glVertex3f($bb->x_min-20, $bb->y_max+20, $bb->z_min+$plane_z); - } - glEnd(); - glEnable(GL_CULL_FACE); - glDisable(GL_BLEND); - } - - if (defined $self->_drag_start_pos || defined $self->_drag_start_xy) { - $self->draw_center_of_rotation($self->_camera_target->x, $self->_camera_target->y, $self->_camera_target->z); - } - - glFlush(); - - $self->SwapBuffers(); - - # Calling glFinish has a performance penalty, but it seems to fix some OpenGL driver hang-up with extremely large scenes. - glFinish(); -} - -sub draw_axes { - my ($self, $x, $y, $z, $length, $width, $allways_visible) = @_; - if ($allways_visible) { - glDisable(GL_DEPTH_TEST); - } else { - glEnable(GL_DEPTH_TEST); - } - glLineWidth($width); - glBegin(GL_LINES); - # draw line for x axis - glColor3f(1, 0, 0); - glVertex3f($x, $y, $z); - glVertex3f($x + $length, $y, $z); - # draw line for y axis - glColor3f(0, 1, 0); - glVertex3f($x, $y, $z); - glVertex3f($x, $y + $length, $z); - # draw line for Z axis - glColor3f(0, 0, 1); - glVertex3f($x, $y, $z); - glVertex3f($x, $y, $z + $length); - glEnd(); -} - -sub draw_center_of_rotation { - my ($self, $x, $y, $z) = @_; - - $self->draw_axes($x, $y, $z, 10, 1, 1); - $self->draw_axes($x, $y, $z, 10, 4, 0); -} - -sub draw_volumes { - my ($self, $fakecolor) = @_; - - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_NORMAL_ARRAY); - - foreach my $volume_idx (0..$#{$self->volumes}) { - my $volume = $self->volumes->[$volume_idx]; - glPushMatrix(); - glTranslatef(@{$volume->origin}); - - if ($fakecolor) { - my $r = ($volume_idx & 0x000000FF) >> 0; - my $g = ($volume_idx & 0x0000FF00) >> 8; - my $b = ($volume_idx & 0x00FF0000) >> 16; - glColor4f($r/255.0, $g/255.0, $b/255.0, 1); - } elsif ($volume->selected) { - glColor4f( @SELECTED_COLOR , $volume->color->[3]); - } elsif ($volume->hover) { - glColor4f( @HOVER_COLOR, $volume->color->[3]); - } else { - glColor4f(@{ $volume->color }); - } - - my @sorted_z = (); - my ($min_z, $max_z); - if ($volume->range && $volume->offsets) { - @sorted_z = sort { $a <=> $b } keys %{$volume->offsets}; - - ($min_z, $max_z) = @{$volume->range}; - $min_z = first { $_ >= $min_z } @sorted_z; - $max_z = first { $_ > $max_z } @sorted_z; - } - - glCullFace(GL_BACK); - if ($volume->qverts) { - my ($min_offset, $max_offset); - if (defined $min_z) { - $min_offset = $volume->offsets->{$min_z}->[0]; - } - if (defined $max_z) { - $max_offset = $volume->offsets->{$max_z}->[0]; - } - $min_offset //= 0; - $max_offset //= $volume->qverts->size; - - glVertexPointer_c(3, GL_FLOAT, 0, $volume->qverts->verts_ptr); - glNormalPointer_c(GL_FLOAT, 0, $volume->qverts->norms_ptr); - glDrawArrays(GL_QUADS, $min_offset / 3, ($max_offset-$min_offset) / 3); - } - - if ($volume->tverts) { - my ($min_offset, $max_offset); - if (defined $min_z) { - $min_offset = $volume->offsets->{$min_z}->[1]; - } - if (defined $max_z) { - $max_offset = $volume->offsets->{$max_z}->[1]; - } - $min_offset //= 0; - $max_offset //= $volume->tverts->size; - - glVertexPointer_c(3, GL_FLOAT, 0, $volume->tverts->verts_ptr); - glNormalPointer_c(GL_FLOAT, 0, $volume->tverts->norms_ptr); - glDrawArrays(GL_TRIANGLES, $min_offset / 3, ($max_offset-$min_offset) / 3); - } - - glPopMatrix(); - } - glDisableClientState(GL_NORMAL_ARRAY); - glDisable(GL_BLEND); - - my $cut_vertex; - if (defined $self->cutting_plane_z) { - if (HAS_VBO) { - # Use Vertex Buffer Object for cutting plane (previous method crashes on modern POGL). - ($cut_vertex) = glGenBuffersARB_p(1); - $self->cut_lines_vertices->bind($cut_vertex); - glBufferDataARB_p(GL_ARRAY_BUFFER_ARB, $self->cut_lines_vertices, GL_STATIC_DRAW_ARB); - glVertexPointer_c(3, GL_FLOAT, 0, 0); - } else { - # Use legacy method. - glVertexPointer_c(3, GL_FLOAT, 0, $self->cut_lines_vertices->ptr()); - } - glLineWidth(2); - glColor3f(0, 0, 0); - glDrawArrays(GL_LINES, 0, $self->cut_lines_vertices->elements / 3); - - if (HAS_VBO) { - # Turn off buffer objects to let the rest of the draw code work. - glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); - glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0); - glDeleteBuffersARB_p($cut_vertex); - } - - } - glDisableClientState(GL_VERTEX_ARRAY); -} - -package Slic3r::GUI::3DScene::Volume; -use Moo; - -has 'bounding_box' => (is => 'ro', required => 1); -has 'origin' => (is => 'rw', default => sub { Slic3r::Pointf3->new(0,0,0) }); -has 'color' => (is => 'ro', required => 1); -has 'select_group_id' => (is => 'rw', default => sub { -1 }); -has 'drag_group_id' => (is => 'rw', default => sub { -1 }); -has 'selected' => (is => 'rw', default => sub { 0 }); -has 'hover' => (is => 'rw', default => sub { 0 }); -has 'range' => (is => 'rw'); - -# geometric data -has 'qverts' => (is => 'rw'); # GLVertexArray object -has 'tverts' => (is => 'rw'); # GLVertexArray object -has 'mesh' => (is => 'rw'); # only required for cut contours -has 'offsets' => (is => 'rw'); # [ z => [ qverts_idx, tverts_idx ] ] - -sub transformed_bounding_box { - my ($self) = @_; - - my $bb = $self->bounding_box; - $bb->translate(@{$self->origin}); - return $bb; -} - -package Slic3r::GUI::3DScene; -use base qw(Slic3r::GUI::3DScene::Base); - -use OpenGL qw(:glconstants :gluconstants :glufunctions); -use List::Util qw(first min max); -use Slic3r::Geometry qw(scale unscale epsilon); -use Slic3r::Print::State ':steps'; -use Slic3r::GUI::ColorScheme; - -__PACKAGE__->mk_accessors(qw( - colors - color_by - color_toolpaths_by - select_by - drag_by - volumes_by_object - _objects_by_volumes -)); - -sub default_colors { [@COLOR_PARTS], [@COLOR_INFILL], [@COLOR_SUPPORT], [@COLOR_UNKNOWN] } - -sub new { - my $class = shift; - - my $self = $class->SUPER::new(@_); - - if ( ( defined $Slic3r::GUI::Settings->{_}{colorscheme} ) && ( Slic3r::GUI::ColorScheme->can($Slic3r::GUI::Settings->{_}{colorscheme}) ) ) { - my $myGetSchemeName = \&{"Slic3r::GUI::ColorScheme::$Slic3r::GUI::Settings->{_}{colorscheme}"}; - $myGetSchemeName->(); - } else { - Slic3r::GUI::ColorScheme->getDefault(); - } - - $self->colors([ $self->default_colors ]); - $self->color_by('volume'); # object | volume - $self->color_toolpaths_by('role'); # role | extruder - $self->select_by('object'); # object | volume | instance - $self->drag_by('instance'); # object | instance - $self->volumes_by_object({}); # obj_idx => [ volume_idx, volume_idx ... ] - $self->_objects_by_volumes({}); # volume_idx => [ obj_idx, instance_idx ] - - return $self; -} - -sub load_object { - my ($self, $model, $obj_idx, $instance_idxs) = @_; - - my $model_object; - if ($model->isa('Slic3r::Model::Object')) { - $model_object = $model; - $model = $model_object->model; - $obj_idx = 0; - } else { - $model_object = $model->get_object($obj_idx); - } - - $instance_idxs ||= [0..$#{$model_object->instances}]; - - my @volumes_idx = (); - foreach my $volume_idx (0..$#{$model_object->volumes}) { - my $volume = $model_object->volumes->[$volume_idx]; - foreach my $instance_idx (@$instance_idxs) { - my $instance = $model_object->instances->[$instance_idx]; - my $mesh = $volume->mesh->clone; - $instance->transform_mesh($mesh); - - my $color_idx; - if ($self->color_by eq 'volume') { - $color_idx = $volume_idx; - } elsif ($self->color_by eq 'object') { - $color_idx = $obj_idx; - } - - my $color = [ @{$self->colors->[ $color_idx % scalar(@{$self->colors}) ]} ]; - $color->[3] = $volume->modifier ? 0.5 : 1; - push @{$self->volumes}, my $v = Slic3r::GUI::3DScene::Volume->new( - bounding_box => $mesh->bounding_box, - color => $color, - ); - if ($self->select_by eq 'object') { - $v->select_group_id($obj_idx*1000000); - } elsif ($self->select_by eq 'volume') { - $v->select_group_id($obj_idx*1000000 + $volume_idx*1000); - } elsif ($self->select_by eq 'instance') { - $v->select_group_id($obj_idx*1000000 + $volume_idx*1000 + $instance_idx); - } - if ($self->drag_by eq 'object') { - $v->drag_group_id($obj_idx*1000); - } elsif ($self->drag_by eq 'instance') { - $v->drag_group_id($obj_idx*1000 + $instance_idx); - } - push @volumes_idx, my $scene_volume_idx = $#{$self->volumes}; - $self->_objects_by_volumes->{$scene_volume_idx} = [ $obj_idx, $volume_idx, $instance_idx ]; - - my $verts = Slic3r::GUI::_3DScene::GLVertexArray->new; - $verts->load_mesh($mesh); - $v->tverts($verts); - } - } - - $self->volumes_by_object->{$obj_idx} = [@volumes_idx]; - return @volumes_idx; -} - -sub load_print_object_slices { - my ($self, $object) = @_; - - my @verts = (); - my @norms = (); - my @quad_verts = (); - my @quad_norms = (); - foreach my $layer (@{$object->layers}) { - my $gap = 0; - my $top_z = $layer->print_z; - my $bottom_z = $layer->print_z - $layer->height + $gap; - - foreach my $copy (@{ $object->_shifted_copies }) { - { - my @expolygons = map $_->clone, @{$layer->slices}; - $_->translate(@$copy) for @expolygons; - $self->_expolygons_to_verts(\@expolygons, $layer->print_z, \@verts, \@norms); - } - foreach my $slice (@{$layer->slices}) { - foreach my $polygon (@$slice) { - foreach my $line (@{$polygon->lines}) { - $line->translate(@$copy); - - push @quad_norms, (0,0,-1), (0,0,-1); - push @quad_verts, (map unscale($_), @{$line->a}), $bottom_z; - push @quad_verts, (map unscale($_), @{$line->b}), $bottom_z; - push @quad_norms, (0,0,1), (0,0,1); - push @quad_verts, (map unscale($_), @{$line->b}), $top_z; - push @quad_verts, (map unscale($_), @{$line->a}), $top_z; - - # We'll use this for the middle normal when using 4 quads: - #my $xy_normal = $line->normal; - #$_xynormal->scale(1/$line->length); - } - } - } - } - } - - my $obb = $object->bounding_box; - my $bb = Slic3r::Geometry::BoundingBoxf3->new; - $bb->merge_point(Slic3r::Pointf3->new_unscale(@{$obb->min_point}, 0)); - $bb->merge_point(Slic3r::Pointf3->new_unscale(@{$obb->max_point}, $object->size->z)); - - push @{$self->volumes}, my $v = Slic3r::GUI::3DScene::Volume->new( - bounding_box => $bb, - color => $self->colors->[0], - verts => OpenGL::Array->new_list(GL_FLOAT, @verts), - norms => OpenGL::Array->new_list(GL_FLOAT, @norms), - quad_verts => OpenGL::Array->new_list(GL_FLOAT, @quad_verts), - quad_norms => OpenGL::Array->new_list(GL_FLOAT, @quad_norms), - ); -} - -sub load_print_toolpaths { - my ($self, $print) = @_; - - return if !$print->step_done(STEP_SKIRT); - return if !$print->step_done(STEP_BRIM); - return if !$print->has_skirt - && $print->config->brim_width == 0 - && $print->config->interior_brim_width == 0 - && $print->config->brim_connections_width == 0; - - my $bb = Slic3r::Geometry::BoundingBoxf3->new; - { - my $pbb = $print->bounding_box; - $bb->merge_point(Slic3r::Pointf3->new_unscale(@{$pbb->min_point})); - $bb->merge_point(Slic3r::Pointf3->new_unscale(@{$pbb->max_point})); - } - - my $color_by_extruder = $self->color_toolpaths_by eq 'extruder'; - - if (!$print->brim->empty) { - my $color = $color_by_extruder - ? $self->colors->[ ($print->brim_extruder-1) % @{$self->colors} ] - : $self->colors->[2]; - - push @{$self->volumes}, my $volume = Slic3r::GUI::3DScene::Volume->new( - bounding_box => $bb, - color => $color, - qverts => Slic3r::GUI::_3DScene::GLVertexArray->new, - tverts => Slic3r::GUI::_3DScene::GLVertexArray->new, - offsets => {}, # print_z => [ qverts, tverts ] - ); - - my $top_z = $print->get_object(0)->get_layer(0)->print_z; - $volume->offsets->{$top_z} = [0, 0]; - $self->_extrusionentity_to_verts($print->brim, $top_z, Slic3r::Point->new(0,0), - $volume->qverts, $volume->tverts); - } - - if (!$print->skirt->empty) { - # TODO: it's a bit difficult to predict skirt extruders with the current skirt logic. - # We need to rewrite it anyway. - my $color = +($self->default_colors)[0]; - push @{$self->volumes}, my $volume = Slic3r::GUI::3DScene::Volume->new( - bounding_box => $bb, - color => $color, - qverts => Slic3r::GUI::_3DScene::GLVertexArray->new, - tverts => Slic3r::GUI::_3DScene::GLVertexArray->new, - offsets => {}, # print_z => [ qverts, tverts ] - ); - - my $skirt_height = 0; # number of layers - if ($print->has_infinite_skirt) { - $skirt_height = $print->total_layer_count; - } else { - $skirt_height = min($print->config->skirt_height, $print->total_layer_count); - } - $skirt_height ||= 1 if $print->config->brim_width > 0 || $print->config->interior_brim_width; - - # get first $skirt_height layers (maybe this should be moved to a PrintObject method?) - my $object0 = $print->get_object(0); - my @layers = (); - push @layers, map $object0->get_layer($_-1), 1..min($skirt_height, $object0->layer_count); - push @layers, map $object0->get_support_layer($_-1), 1..min($skirt_height, $object0->support_layer_count); - @layers = sort { $a->print_z <=> $b->print_z } @layers; - @layers = @layers[0..($skirt_height-1)]; - - foreach my $i (0..($skirt_height-1)) { - my $top_z = $layers[$i]->print_z; - $volume->offsets->{$top_z} = [$volume->qverts->size, $volume->tverts->size]; - - $self->_extrusionentity_to_verts($print->skirt, $top_z, Slic3r::Point->new(0,0), - $volume->qverts, $volume->tverts); - } - } -} - -sub load_print_object_toolpaths { - my ($self, $object) = @_; - - # order layers by print_z - my @layers = sort { $a->print_z <=> $b->print_z } - @{$object->layers}, @{$object->support_layers}; - - # Bounding box of the object and its copies. - my $bb = Slic3r::Geometry::BoundingBoxf3->new; - { - my $obb = $object->bounding_box; - foreach my $copy (@{ $object->_shifted_copies }) { - my $cbb = $obb->clone; - $cbb->translate(@$copy); - $bb->merge_point(Slic3r::Pointf3->new_unscale(@{$cbb->min_point}, 0)); - $bb->merge_point(Slic3r::Pointf3->new_unscale(@{$cbb->max_point}, $object->size->z)); - } - } - - my %volumes = (); # color => Volume - - # Maximum size of an allocation block: 32MB / sizeof(float) - my $alloc_size_max = 32 * 1048576 / 4; - - my $add = sub { - my ($coll, $top_z, $copy, $color) = @_; - - my $volume = $volumes{$color}; - if (!$volume) { - push @{$self->volumes}, $volumes{$color} = $volume = Slic3r::GUI::3DScene::Volume->new( - bounding_box => $bb, - color => $color, - qverts => Slic3r::GUI::_3DScene::GLVertexArray->new, - tverts => Slic3r::GUI::_3DScene::GLVertexArray->new, - offsets => {}, # print_z => [ qverts, tverts ] - ); - } - - $volume->offsets->{$top_z} //= [ $volume->qverts->size, $volume->tverts->size ]; - $self->_extrusionentity_to_verts($coll, $top_z, $copy, $volume->qverts, $volume->tverts); - }; - - my $color_by_extruder = $self->color_toolpaths_by eq 'extruder'; - - foreach my $layer (@layers) { - my $top_z = $layer->print_z; - foreach my $copy (@{ $object->_shifted_copies }) { - foreach my $layerm (@{$layer->regions}) { - if ($object->step_done(STEP_PERIMETERS)) { - my $color = $color_by_extruder - ? $self->colors->[ ($layerm->region->config->perimeter_extruder-1) % @{$self->colors} ] - : $self->colors->[0]; - $add->($layerm->perimeters, $top_z, $copy, $color); - } - - if ($object->step_done(STEP_INFILL)) { - my $color = $color_by_extruder - ? $self->colors->[ ($layerm->region->config->infill_extruder-1) % @{$self->colors} ] - : $self->colors->[1]; - - if ($color_by_extruder && $layerm->region->config->infill_extruder != $layerm->region->config->solid_infill_extruder) { - # divide solid and non-solid infill - my $solid = Slic3r::ExtrusionPath::Collection->new; - my $non_solid = Slic3r::ExtrusionPath::Collection->new; - foreach my $fill (@{$layerm->fills}) { - if ($fill->[0]->is_solid_infill) { - $solid->append($fill); - } else { - $non_solid->append($fill); - } - } - $add->($non_solid, $top_z, $copy, $color); - $color = $self->colors->[ ($layerm->region->config->solid_infill_extruder-1) % @{$self->colors} ]; - $add->($solid, $top_z, $copy, $color); - } else { - $add->($layerm->fills, $top_z, $copy, $color); - } - } - } - - if ($layer->isa('Slic3r::Layer::Support') && $object->step_done(STEP_SUPPORTMATERIAL)) { - { - my $color = $color_by_extruder - ? $self->colors->[ ($layer->object->config->support_material_extruder-1) % @{$self->colors} ] - : $self->colors->[2]; - $add->($layer->support_fills, $top_z, $copy, $color); - } - { - my $color = ($color_by_extruder) - ? $self->colors->[ ($layer->object->config->support_material_interface_extruder-1) % @{$self->colors} ] - : $self->colors->[2]; - $add->($layer->support_interface_fills, $top_z, $copy, $color); - } - } - } - - foreach my $color (keys %volumes) { - my $volume = $volumes{$color}; - if ($volume->qverts->size() > $alloc_size_max || $volume->tverts->size() > $alloc_size_max) { - # stop appending to this volume; create a new one next time - delete $volumes{$color}; - } - } - } -} - -sub set_toolpaths_range { - my ($self, $min_z, $max_z) = @_; - - foreach my $volume (@{$self->volumes}) { - $volume->range([ $min_z, $max_z ]); - } -} - -sub _expolygons_to_verts { - my ($self, $expolygons, $z, $verts, $norms) = @_; - - my $tess = gluNewTess(); - gluTessCallback($tess, GLU_TESS_BEGIN, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_END, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_VERTEX, sub { - my ($x, $y, $z) = @_; - push @$verts, $x, $y, $z; - push @$norms, (0,0,1), (0,0,1), (0,0,1); - }); - gluTessCallback($tess, GLU_TESS_COMBINE, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_ERROR, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_EDGE_FLAG, 'DEFAULT'); - - foreach my $expolygon (@$expolygons) { - gluTessBeginPolygon($tess); - foreach my $polygon (@$expolygon) { - gluTessBeginContour($tess); - gluTessVertex_p($tess, (map unscale($_), @$_), $z) for @$polygon; - gluTessEndContour($tess); - } - gluTessEndPolygon($tess); - } - - gluDeleteTess($tess); -} - -# Fill in the $qverts and $tverts with quads and triangles -# for the extrusion $entity. -sub _extrusionentity_to_verts { - my ($self, $entity, $top_z, $copy, $qverts, $tverts) = @_; - - my ($lines, $widths, $heights, $closed); - if ($entity->isa('Slic3r::ExtrusionPath::Collection')) { - $self->_extrusionentity_to_verts($_, $top_z, $copy, $qverts, $tverts) - for @$entity; - return; - } elsif ($entity->isa('Slic3r::ExtrusionPath')) { - my $polyline = $entity->polyline->clone; - $polyline->remove_duplicate_points; - $polyline->translate(@$copy); - $lines = $polyline->lines; - $widths = [ map $entity->width, 0..$#$lines ]; - $heights = [ map $entity->height, 0..$#$lines ]; - $closed = 0; - } else { - $lines = []; - $widths = []; - $heights = []; - $closed = 1; - foreach my $path (@$entity) { - my $polyline = $path->polyline->clone; - $polyline->remove_duplicate_points; - $polyline->translate(@$copy); - my $path_lines = $polyline->lines; - push @$lines, @$path_lines; - push @$widths, map $path->width, 0..$#$path_lines; - push @$heights, map $path->height, 0..$#$path_lines; - } - } - - # Calling the C++ implementation Slic3r::_3DScene::_extrusionentity_to_verts_do() - # This adds new vertices to the $qverts and $tverts. - Slic3r::GUI::_3DScene::_extrusionentity_to_verts_do($lines, $widths, $heights, - $closed, - # Top height of the extrusion. - $top_z, - # $copy is not used here. - $copy, - # GLVertexArray object: C++ class maintaining an std::vector for coords and normals. - $qverts, - $tverts); -} - -sub object_idx { - my ($self, $volume_idx) = @_; - return $self->_objects_by_volumes->{$volume_idx}[0]; -} - -sub volume_idx { - my ($self, $volume_idx) = @_; - return $self->_objects_by_volumes->{$volume_idx}[1]; -} - -sub instance_idx { - my ($self, $volume_idx) = @_; - return $self->_objects_by_volumes->{$volume_idx}[2]; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/AboutDialog.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/AboutDialog.pm deleted file mode 100644 index 85d7a6fd..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/AboutDialog.pm +++ /dev/null @@ -1,121 +0,0 @@ -package Slic3r::GUI::AboutDialog; -use strict; -use warnings; -use utf8; - -use Wx qw(:font :html :misc :dialog :sizer :systemsettings :frame :id); -use Wx::Event qw(EVT_HTML_LINK_CLICKED EVT_LEFT_DOWN EVT_BUTTON); -use Wx::Print; -use Wx::Html; -use base 'Wx::Dialog'; - -sub new { - my $class = shift; - my ($parent) = @_; - my $self = $class->SUPER::new($parent, -1, 'About Slic3r', wxDefaultPosition, [600, 340], wxCAPTION); - - $self->SetBackgroundColour(Wx::wxWHITE); - my $hsizer = Wx::BoxSizer->new(wxHORIZONTAL); - $self->SetSizer($hsizer); - - # logo - my $logo = Slic3r::GUI::AboutDialog::Logo->new($self, -1, wxDefaultPosition, wxDefaultSize); - $logo->SetBackgroundColour(Wx::wxWHITE); - $hsizer->Add($logo, 0, wxEXPAND | wxLEFT | wxRIGHT, 30); - - my $vsizer = Wx::BoxSizer->new(wxVERTICAL); - $hsizer->Add($vsizer, 1, wxEXPAND, 0); - - # title - my $title = Wx::StaticText->new($self, -1, 'Slic3r', wxDefaultPosition, wxDefaultSize); - my $title_font = Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); - $title_font->SetWeight(wxFONTWEIGHT_BOLD); - $title_font->SetFamily(wxFONTFAMILY_ROMAN); - $title_font->SetPointSize(24); - $title->SetFont($title_font); - $vsizer->Add($title, 0, wxALIGN_LEFT | wxTOP, 30); - - # version - my $version = Wx::StaticText->new($self, -1, "Version $Slic3r::VERSION", wxDefaultPosition, wxDefaultSize); - my $version_font = Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); - $version_font->SetPointSize(&Wx::wxMSW ? 9 : 11); - $version->SetFont($version_font); - $vsizer->Add($version, 0, wxALIGN_LEFT | wxBOTTOM, 10); - - # text - my $text = - '' . - '' . - '' . - 'Copyright © 2011-2017 Alessandro Ranellucci.
' . - 'Slic3r is licensed under the ' . - 'GNU Affero General Public License, version 3.' . - '


' . - 'Contributions by Henrik Brix Andersen, Vojtech Bubnik, Nicolas Dandrimont, Mark Hindess, Petr Ledvina, Joseph Lenox, Y. Sapir, Mike Sheldrake, Kliment Yanev and numerous others. ' . - 'Manual by Gary Hodgson. Inspired by the RepRap community.
' . - 'Slic3r logo designed by Corey Daniels, Silk Icon Set designed by Mark James. ' . - '
' . - '' . - ''; - my $html = Wx::HtmlWindow->new($self, -1, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_NEVER); - my $font = Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); - my $size = &Wx::wxMSW ? 8 : 10; - $html->SetFonts($font->GetFaceName, $font->GetFaceName, [$size, $size, $size, $size, $size, $size, $size]); - $html->SetBorders(2); - $html->SetPage($text); - $vsizer->Add($html, 1, wxEXPAND | wxALIGN_LEFT | wxRIGHT | wxBOTTOM, 20); - EVT_HTML_LINK_CLICKED($self, $html, \&link_clicked); - - my $buttons = $self->CreateStdDialogButtonSizer(wxOK); - $self->SetEscapeId(wxID_CLOSE); - EVT_BUTTON($self, wxID_CLOSE, sub { - $self->EndModal(wxID_CLOSE); - $self->Close; - }); - $vsizer->Add($buttons, 0, wxEXPAND | wxRIGHT | wxBOTTOM, 3); - - EVT_LEFT_DOWN($self, sub { $self->Close }); - EVT_LEFT_DOWN($logo, sub { $self->Close }); - - return $self; -} - -sub link_clicked { - my ($self, $event) = @_; - - Wx::LaunchDefaultBrowser($event->GetLinkInfo->GetHref); - $event->Skip(0); -} - -package Slic3r::GUI::AboutDialog::Logo; -use Wx qw(:bitmap :dc); -use Wx::Event qw(EVT_PAINT); -use base 'Wx::Panel'; - -sub new { - my $class = shift; - my $self = $class->SUPER::new(@_); - - $self->{logo} = Wx::Bitmap->new($Slic3r::var->("Slic3r_192px.png"), wxBITMAP_TYPE_PNG); - $self->SetMinSize(Wx::Size->new($self->{logo}->GetWidth, $self->{logo}->GetHeight)); - - EVT_PAINT($self, \&repaint); - - return $self; -} - -sub repaint { - my ($self, $event) = @_; - - my $dc = Wx::PaintDC->new($self); - $dc->SetBackgroundMode(wxTRANSPARENT); - - my $size = $self->GetSize; - my $logo_w = $self->{logo}->GetWidth; - my $logo_h = $self->{logo}->GetHeight; - $dc->DrawBitmap($self->{logo}, ($size->GetWidth - $logo_w) / 2, ($size->GetHeight - $logo_h) / 2, 1); - - $event->Skip; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/BedShapeDialog.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/BedShapeDialog.pm deleted file mode 100644 index d333b4b2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/BedShapeDialog.pm +++ /dev/null @@ -1,316 +0,0 @@ -# The bed shape dialog. -# The dialog opens from Print Settins tab -> Bed Shape: Set... - -package Slic3r::GUI::BedShapeDialog; -use strict; -use warnings; -use utf8; - -use List::Util qw(min max); -use Slic3r::Geometry qw(PI X Y unscale); -use Wx qw(:dialog :id :misc :sizer :choicebook wxTAB_TRAVERSAL); -use Wx::Event qw(EVT_CLOSE); -use base 'Wx::Dialog'; - -sub new { - my $class = shift; - my ($parent, $default) = @_; - my $self = $class->SUPER::new($parent, -1, "Bed Shape", wxDefaultPosition, [350,700], wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); - - $self->{panel} = my $panel = Slic3r::GUI::BedShapePanel->new($self, $default); - - my $main_sizer = Wx::BoxSizer->new(wxVERTICAL); - $main_sizer->Add($panel, 1, wxEXPAND); - $main_sizer->Add($self->CreateButtonSizer(wxOK | wxCANCEL), 0, wxEXPAND); - - $self->SetSizer($main_sizer); - $self->SetMinSize($self->GetSize); - $main_sizer->SetSizeHints($self); - - # needed to actually free memory - EVT_CLOSE($self, sub { - $self->EndModal(wxID_OK); - $self->Destroy; - }); - - return $self; -} - -sub GetValue { - my ($self) = @_; - return $self->{panel}->GetValue; -} - -package Slic3r::GUI::BedShapePanel; - -use List::Util qw(min max sum first); -use Scalar::Util qw(looks_like_number); -use Slic3r::Geometry qw(PI X Y scale unscale scaled_epsilon deg2rad); -use Wx qw(:font :id :misc :sizer :choicebook :filedialog :pen :brush wxTAB_TRAVERSAL); -use Wx::Event qw(EVT_CLOSE EVT_CHOICEBOOK_PAGE_CHANGED EVT_BUTTON); -use base 'Wx::Panel'; - -use constant SHAPE_RECTANGULAR => 0; -use constant SHAPE_CIRCULAR => 1; -use constant SHAPE_CUSTOM => 2; - -sub new { - my $class = shift; - my ($parent, $default) = @_; - my $self = $class->SUPER::new($parent, -1); - - $self->on_change(undef); - - my $box = Wx::StaticBox->new($self, -1, "Shape"); - my $sbsizer = Wx::StaticBoxSizer->new($box, wxVERTICAL); - - # shape options - $self->{shape_options_book} = Wx::Choicebook->new($self, -1, wxDefaultPosition, [300,-1], wxCHB_TOP); - $sbsizer->Add($self->{shape_options_book}); - - $self->{optgroups} = []; - { - my $optgroup = $self->_init_shape_options_page('Rectangular'); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'rect_size', - type => 'point', - label => 'Size', - tooltip => 'Size in X and Y of the rectangular plate.', - default => [200,200], - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'rect_origin', - type => 'point', - label => 'Origin', - tooltip => 'Distance of the 0,0 G-code coordinate from the front left corner of the rectangle.', - default => [0,0], - )); - } - { - my $optgroup = $self->_init_shape_options_page('Circular'); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'diameter', - type => 'f', - label => 'Diameter', - tooltip => 'Diameter of the print bed. It is assumed that origin (0,0) is located in the center.', - sidetext => 'mm', - default => 200, - )); - } - { - my $optgroup = $self->_init_shape_options_page('Custom'); - $optgroup->append_line(Slic3r::GUI::OptionsGroup::Line->new( - full_width => 1, - widget => sub { - my ($parent) = @_; - - my $btn = Wx::Button->new($parent, -1, "Load shape from STL...", wxDefaultPosition, wxDefaultSize); - EVT_BUTTON($self, $btn, sub { $self->_load_stl }); - return $btn; - } - )); - } - - EVT_CHOICEBOOK_PAGE_CHANGED($self, -1, sub { - $self->_update_shape; - }); - - # right pane with preview canvas - my $canvas = $self->{canvas} = Slic3r::GUI::2DBed->new($self); - - # main sizer - my $top_sizer = Wx::BoxSizer->new(wxHORIZONTAL); - $top_sizer->Add($sbsizer, 0, wxEXPAND | wxTOP | wxBOTTOM, 10); - $top_sizer->Add($canvas, 1, wxEXPAND | wxALL, 10) if $canvas; - - $self->SetSizerAndFit($top_sizer); - - $self->_set_shape($default); - $self->_update_preview; - - return $self; -} - -sub on_change { - my ($self, $cb) = @_; - $self->{on_change} = $cb // sub {}; -} - -# Called from the constructor. -# Set the initial bed shape from a list of points. -# Deduce the bed shape type (rect, circle, custom) -# This routine shall be smart enough if the user messes up -# with the list of points in the ini file directly. -sub _set_shape { - my ($self, $points) = @_; - - # is this a rectangle? - if (@$points == 4) { - my $polygon = Slic3r::Polygon->new_scale(@$points); - my $lines = $polygon->lines; - if ($lines->[0]->parallel_to_line($lines->[2]) && $lines->[1]->parallel_to_line($lines->[3])) { - # okay, it's a rectangle - - # find origin - # the || 0 hack prevents "-0" which might confuse the user - my $x_min = min(map $_->[X], @$points) || 0; - my $x_max = max(map $_->[X], @$points) || 0; - my $y_min = min(map $_->[Y], @$points) || 0; - my $y_max = max(map $_->[Y], @$points) || 0; - my $origin = [-$x_min, -$y_min]; - - $self->{shape_options_book}->SetSelection(SHAPE_RECTANGULAR); - my $optgroup = $self->{optgroups}[SHAPE_RECTANGULAR]; - $optgroup->set_value('rect_size', [ $x_max-$x_min, $y_max-$y_min ]); - $optgroup->set_value('rect_origin', $origin); - $self->_update_shape; - return; - } - } - - # is this a circle? - { - # Analyze the array of points. Do they reside on a circle? - my $polygon = Slic3r::Polygon->new_scale(@$points); - my $center = $polygon->bounding_box->center; - my @vertex_distances = map $center->distance_to($_), @$polygon; - my $avg_dist = sum(@vertex_distances)/@vertex_distances; - if (!defined first { abs($_ - $avg_dist) > 10*scaled_epsilon } @vertex_distances) { - # all vertices are equidistant to center - $self->{shape_options_book}->SetSelection(SHAPE_CIRCULAR); - my $optgroup = $self->{optgroups}[SHAPE_CIRCULAR]; - $optgroup->set_value('diameter', sprintf("%.0f", unscale($avg_dist*2))); - $self->_update_shape; - return; - } - } - - if (@$points < 3) { - # Invalid polygon. Revert to default bed dimensions. - $self->{shape_options_book}->SetSelection(SHAPE_RECTANGULAR); - my $optgroup = $self->{optgroups}[SHAPE_RECTANGULAR]; - $optgroup->set_value('rect_size', [200, 200]); - $optgroup->set_value('rect_origin', [0, 0]); - $self->_update_shape; - return; - } - - # This is a custom bed shape, use the polygon provided. - $self->{shape_options_book}->SetSelection(SHAPE_CUSTOM); - # Copy the polygon to the canvas, make a copy of the array. - $self->{canvas}->bed_shape([@$points]); - $self->_update_shape; -} - -# Update the bed shape from the dialog fields. -sub _update_shape { - my ($self) = @_; - - my $page_idx = $self->{shape_options_book}->GetSelection; - if ($page_idx == SHAPE_RECTANGULAR) { - my $rect_size = $self->{optgroups}[SHAPE_RECTANGULAR]->get_value('rect_size'); - my $rect_origin = $self->{optgroups}[SHAPE_RECTANGULAR]->get_value('rect_origin'); - my ($x, $y) = @$rect_size; - return if !looks_like_number($x) || !looks_like_number($y); # empty strings or '-' or other things - return if !$x || !$y or $x == 0 or $y == 0; - my ($x0, $y0) = (0,0); - my ($x1, $y1) = ($x ,$y); - { - my ($dx, $dy) = @$rect_origin; - return if !looks_like_number($dx) || !looks_like_number($dy); # empty strings or '-' or other things - $x0 -= $dx; - $x1 -= $dx; - $y0 -= $dy; - $y1 -= $dy; - } - $self->{canvas}->bed_shape([ - [$x0,$y0], - [$x1,$y0], - [$x1,$y1], - [$x0,$y1], - ]); - } elsif ($page_idx == SHAPE_CIRCULAR) { - my $diameter = $self->{optgroups}[SHAPE_CIRCULAR]->get_value('diameter'); - return if !$diameter or $diameter == 0; - my $r = $diameter/2; - my $twopi = 2*PI; - my $edges = 60; - my $polygon = Slic3r::Polygon->new_scale( - map [ $r * cos $_, $r * sin $_ ], - map { $twopi/$edges*$_ } 1..$edges - ); - $self->{canvas}->bed_shape([ - map [ unscale($_->x), unscale($_->y) ], @$polygon #)) - ]); - } - - $self->{on_change}->(); - $self->_update_preview; -} - -sub _update_preview { - my ($self) = @_; - $self->{canvas}->Refresh if $self->{canvas}; - $self->Refresh; -} - -# Called from the constructor. -# Create a panel for a rectangular / circular / custom bed shape. -sub _init_shape_options_page { - my ($self, $title) = @_; - - my $panel = Wx::Panel->new($self->{shape_options_book}); - my $optgroup; - push @{$self->{optgroups}}, $optgroup = Slic3r::GUI::OptionsGroup->new( - parent => $panel, - title => 'Settings', - label_width => 100, - on_change => sub { - my ($opt_id) = @_; - #$self->{"_$opt_id"} = $optgroup->get_value($opt_id); - $self->_update_shape; - }, - ); - $panel->SetSizerAndFit($optgroup->sizer); - $self->{shape_options_book}->AddPage($panel, $title); - - return $optgroup; -} - -# Loads an stl file, projects it to the XY plane and calculates a polygon. -sub _load_stl { - my ($self) = @_; - - my $dialog = Wx::FileDialog->new($self, 'Choose a file to import bed shape from (STL/OBJ/AMF/3MF):', "", "", &Slic3r::GUI::MODEL_WILDCARD, wxFD_OPEN | wxFD_FILE_MUST_EXIST); - if ($dialog->ShowModal != wxID_OK) { - $dialog->Destroy; - return; - } - my $input_file = Slic3r::decode_path($dialog->GetPaths); - $dialog->Destroy; - - my $model = Slic3r::Model->read_from_file($input_file); - my $mesh = $model->raw_mesh; - my $expolygons = $mesh->horizontal_projection; - - if (@$expolygons == 0) { - Slic3r::GUI::show_error($self, "The selected file contains no geometry."); - return; - } - if (@$expolygons > 1) { - Slic3r::GUI::show_error($self, "The selected file contains several disjoint areas. This is not supported."); - return; - } - - my $polygon = $expolygons->[0]->contour; - $self->{canvas}->bed_shape([ map [ unscale($_->x), unscale($_->y) ], @$polygon ]); - $self->_update_preview(); -} - -# Returns the resulting bed shape polygon. This value will be stored to the ini file. -sub GetValue { - my ($self) = @_; - return $self->{canvas}->bed_shape; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/BonjourBrowser.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/BonjourBrowser.pm deleted file mode 100644 index c7513165..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/BonjourBrowser.pm +++ /dev/null @@ -1,53 +0,0 @@ -# A tiny dialog to select an OctoPrint device to print to. - -package Slic3r::GUI::BonjourBrowser; -use strict; -use warnings; -use utf8; - -use Wx qw(:dialog :id :misc :sizer :choicebook wxTAB_TRAVERSAL); -use Wx::Event qw(EVT_CLOSE); -use base 'Wx::Dialog'; - -sub new { - my $class = shift; - my ($parent, $devices) = @_; - my $self = $class->SUPER::new($parent, -1, "Device Browser", wxDefaultPosition, [350,700], wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); - - $self->{devices} = $devices; - - # label - my $text = Wx::StaticText->new($self, -1, "Choose an OctoPrint device in your network:", wxDefaultPosition, wxDefaultSize); - - # selector - $self->{choice} = my $choice = Wx::Choice->new($self, -1, wxDefaultPosition, wxDefaultSize, - [ map $_->name, @{$self->{devices}} ]); - - my $main_sizer = Wx::BoxSizer->new(wxVERTICAL); - $main_sizer->Add($text, 1, wxEXPAND | wxALL, 10); - $main_sizer->Add($choice, 1, wxEXPAND | wxALL, 10); - $main_sizer->Add($self->CreateButtonSizer(wxOK | wxCANCEL), 0, wxEXPAND); - - $self->SetSizer($main_sizer); - $self->SetMinSize($self->GetSize); - $main_sizer->SetSizeHints($self); - - # needed to actually free memory - EVT_CLOSE($self, sub { - $self->EndModal(wxID_OK); - $self->Destroy; - }); - - return $self; -} - -sub GetValue { - my ($self) = @_; - return $self->{devices}[ $self->{choice}->GetSelection ]->address; -} -sub GetPort { - my ($self) = @_; - return $self->{devices}[ $self->{choice}->GetSelection ]->port; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/ColorScheme.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/ColorScheme.pm deleted file mode 100644 index dec1dc39..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/ColorScheme.pm +++ /dev/null @@ -1,125 +0,0 @@ -package Slic3r::GUI::ColorScheme; -use strict; -use warnings; - -use POSIX; -use vars qw(@ISA @EXPORT); -use Exporter 'import'; -our @ISA = 'Exporter'; -our @EXPORT = qw($DEFAULT_COLORSCHEME $SOLID_BACKGROUNDCOLOR @SELECTED_COLOR @HOVER_COLOR @TOP_COLOR @BOTTOM_COLOR @GRID_COLOR @GROUND_COLOR @COLOR_CUTPLANE @COLOR_PARTS @COLOR_INFILL @COLOR_SUPPORT @COLOR_UNKNOWN @BED_COLOR @BED_GRID @BED_SELECTED @BED_OBJECTS @BED_INSTANCE @BED_DRAGGED @BED_CENTER @BED_SKIRT @BED_CLEARANCE @BED_DARK @BACKGROUND255 @TOOL_DARK @TOOL_SUPPORT @TOOL_STEPPERIM @TOOL_INFILL @TOOL_SHADE @TOOL_COLOR @BACKGROUND_COLOR @SPLINE_L_PEN @SPLINE_O_PEN @SPLINE_I_PEN @SPLINE_R_PEN ); - -# DEFAULT values -our $DEFAULT_COLORSCHEME = 1; -our $SOLID_BACKGROUNDCOLOR = 0; -our @SELECTED_COLOR = (0, 1, 0); -our @HOVER_COLOR = (0.4, 0.9, 0); # Hover over Model -our @TOP_COLOR = (10/255,98/255,144/255); # TOP Backgroud color -our @BOTTOM_COLOR = (0,0,0); # BOTTOM Backgroud color -our @BACKGROUND_COLOR = @TOP_COLOR; # SOLID background color -our @GRID_COLOR = (0.2, 0.2, 0.2, 0.4); # Grid color -our @GROUND_COLOR = (0.8, 0.6, 0.5, 0.4); # Ground or Plate color -our @COLOR_CUTPLANE = (.8, .8, .8, 0.5); -our @COLOR_PARTS = (1, 0.95, 0.2, 1); # Perimeter color -our @COLOR_INFILL = (1, 0.45, 0.45, 1); -our @COLOR_SUPPORT = (0.5, 1, 0.5, 1); -our @COLOR_UNKNOWN = (0.5, 0.5, 1, 1); -our @BED_COLOR = (255, 255, 255); -our @BED_GRID = (230, 230, 230); -our @BED_SELECTED = (255, 166, 128); -our @BED_OBJECTS = (210, 210, 210); -our @BED_INSTANCE = (255, 128, 128); -our @BED_DRAGGED = (128, 128, 255); -our @BED_CENTER = (200, 200, 200); -our @BED_SKIRT = (150, 150, 150); -our @BED_CLEARANCE = (0, 0, 200); -our @BACKGROUND255 = (255, 255, 255); -our @TOOL_DARK = (0, 0, 0); -our @TOOL_SUPPORT = (0, 0, 0); -our @TOOL_INFILL = (0, 0, 0.7); -our @TOOL_STEPPERIM = (0.7, 0, 0); -our @TOOL_SHADE = (0.95, 0.95, 0.95); -our @TOOL_COLOR = (0.9, 0.9, 0.9); -our @SPLINE_L_PEN = (50, 50, 50); -our @SPLINE_O_PEN = (200, 200, 200); -our @SPLINE_I_PEN = (255, 0, 0); -our @SPLINE_R_PEN = (5, 120, 160); -our @BED_DARK = (0, 0, 0); - -# S O L A R I Z E -# # http://ethanschoonover.com/solarized -our @COLOR_BASE03 = (0.00000,0.16863,0.21176); -our @COLOR_BASE02 = (0.02745,0.21176,0.25882); -our @COLOR_BASE01 = (0.34510,0.43137,0.45882); -our @COLOR_BASE00 = (0.39608,0.48235,0.51373); -our @COLOR_BASE0 = (0.51373,0.58039,0.58824); -our @COLOR_BASE1 = (0.57647,0.63137,0.63137); -our @COLOR_BASE2 = (0.93333,0.90980,0.83529); -our @COLOR_BASE3 = (0.99216,0.96471,0.89020); -our @COLOR_YELLOW = (0.70980,0.53725,0.00000); -our @COLOR_ORANGE = (0.79608,0.29412,0.08627); -our @COLOR_RED = (0.86275,0.19608,0.18431); -our @COLOR_MAGENTA = (0.82745,0.21176,0.50980); -our @COLOR_VIOLET = (0.42353,0.44314,0.76863); -our @COLOR_BLUE = (0.14902,0.54510,0.82353); -our @COLOR_CYAN = (0.16471,0.63137,0.59608); -our @COLOR_GREEN = (0.52157,0.60000,0.00000); - -# create your own theme: -# 1. add new sub and name it according to your scheme -# 2. add that name to Preferences.pm -# 3. Choose your newly created theme in Slic3rs' Preferences (File -> Preferences). - -sub getSolarized { # add this name to Preferences.pm - $DEFAULT_COLORSCHEME = 0; # DISABLE default color scheme - $SOLID_BACKGROUNDCOLOR = 1; # Switch between SOLID or FADED background color - @SELECTED_COLOR = @COLOR_MAGENTA; # Color of selected Model - @HOVER_COLOR = @COLOR_VIOLET; # Color when hovering over Model - # @TOP_COLOR = @COLOR_BASE2; # FADE Background color - only used if $SOLID_BACKGROUNDCOLOR = 0 - # @BOTTOM_COLOR = @COLOR_BASE02; # FADE Background color - only used if $SOLID_BACKGROUNDCOLOR = 0 - @BACKGROUND_COLOR = @COLOR_BASE3; # SOLID Background color - REQUIRED for NOT getDefault - @GRID_COLOR = (@COLOR_BASE1, 0.4); # Grid - @GROUND_COLOR = (@COLOR_BASE2, 0.4); # Ground or Plate - @COLOR_CUTPLANE = (@COLOR_BASE1, 0.5); # Cut plane - @COLOR_PARTS = (@TOOL_COLOR, 1); # Perimeter - @COLOR_INFILL = (@COLOR_BASE2, 1); # Infill - @COLOR_SUPPORT = (@TOOL_SUPPORT, 1); # Support - @COLOR_UNKNOWN = (@COLOR_CYAN, 1); # I don't know what that color's for! - - # 2DBed.pm and ./plater/2D.pm colors - @BED_COLOR = map { ceil($_ * 255) } @COLOR_BASE2; # do math -> multiply each value by 255 and round up - @BED_GRID = map { ceil($_ * 255) } @COLOR_BASE1; # Bed, Ground or Plate - @BED_SELECTED = map { ceil($_ * 255) } @COLOR_YELLOW; # Selected Model - @BED_INSTANCE = map { ceil($_ * 255) } @SELECTED_COLOR; # Real selected Model - @BED_OBJECTS = map { ceil($_ * 255) } @COLOR_PARTS; # Models on bed - @BED_DRAGGED = map { ceil($_ * 255) } @COLOR_CYAN; # Color while dragging - @BED_CENTER = map { ceil($_ * 255) } @COLOR_BASE1; # Cross hair - @BED_SKIRT = map { ceil($_ * 255) } @COLOR_BASE01; # Brim/Skirt - @BED_CLEARANCE = map { ceil($_ * 255) } @COLOR_BLUE; # not sure what that does - @BED_DARK = map { ceil($_ * 255) } @COLOR_BASE01; # not sure what that does - @BACKGROUND255 = map { ceil($_ * 255) } @BACKGROUND_COLOR; # Backgroud color, this time RGB - - # 2DToolpaths.pm colors : LAYERS Tab - @TOOL_DARK = @COLOR_BASE01; # Brim/Skirt - @TOOL_SUPPORT = @COLOR_GREEN; # Support - @TOOL_INFILL = @COLOR_BASE1; # Infill - @TOOL_COLOR = @COLOR_BLUE; # Real Perimeter - @TOOL_STEPPERIM = @COLOR_CYAN; # Inner Perimeter - @TOOL_SHADE = @COLOR_BASE2; # Shade; model inside - - # Colors for *Layer heights...* dialog - @SPLINE_L_PEN = map { ceil($_ * 255) } @COLOR_BASE01; # Line color - @SPLINE_O_PEN = map { ceil($_ * 255) } @COLOR_BASE1; # Original color - @SPLINE_I_PEN = map { ceil($_ * 255) } @COLOR_MAGENTA; # Interactive color - @SPLINE_R_PEN = map { ceil($_ * 255) } @COLOR_VIOLET; # Resulting color - -} - -sub getDefault{ - $DEFAULT_COLORSCHEME = 1; # ENABLE default color scheme - # Define your function here - # getDefault is just a dummy function and uses the default values from above. -} - - - -1; # REQUIRED at EOF diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/ConfigWizard.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/ConfigWizard.pm deleted file mode 100644 index b9083793..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/ConfigWizard.pm +++ /dev/null @@ -1,387 +0,0 @@ -# The config wizard is executed when the Slic3r is first started. -# The wizard helps the user to specify the 3D printer properties. - -package Slic3r::GUI::ConfigWizard; -use strict; -use warnings; -use utf8; - -use Wx; -use base 'Wx::Wizard'; -use Slic3r::Geometry qw(unscale); - -# adhere to various human interface guidelines -our $wizard = 'Wizard'; -$wizard = 'Assistant' if &Wx::wxMAC || &Wx::wxGTK; - -sub new { - my $class = shift; - my ($parent) = @_; - my $self = $class->SUPER::new($parent, -1, "Configuration $wizard"); - - # initialize an empty repository - $self->{config} = Slic3r::Config->new; - - $self->add_page(Slic3r::GUI::ConfigWizard::Page::Welcome->new($self)); - $self->add_page(Slic3r::GUI::ConfigWizard::Page::Firmware->new($self)); - $self->add_page(Slic3r::GUI::ConfigWizard::Page::Bed->new($self)); - $self->add_page(Slic3r::GUI::ConfigWizard::Page::Nozzle->new($self)); - $self->add_page(Slic3r::GUI::ConfigWizard::Page::Filament->new($self)); - $self->add_page(Slic3r::GUI::ConfigWizard::Page::Temperature->new($self)); - $self->add_page(Slic3r::GUI::ConfigWizard::Page::BedTemperature->new($self)); - $self->add_page(Slic3r::GUI::ConfigWizard::Page::Finished->new($self)); - - $_->build_index for @{$self->{pages}}; - - return $self; -} - -sub add_page { - my $self = shift; - my ($page) = @_; - - my $n = push @{$self->{pages}}, $page; - # add first page to the page area sizer - $self->GetPageAreaSizer->Add($page) if $n == 1; - # link pages - $self->{pages}[$n-2]->set_next_page($page) if $n >= 2; - $page->set_previous_page($self->{pages}[$n-2]) if $n >= 2; -} - -sub run { - my $self = shift; - - if (Wx::Wizard::RunWizard($self, $self->{pages}[0])) { - - # it would be cleaner to have these defined inside each page class, - # in some event getting called before leaving the page - { - # set first_layer_height + layer_height based on nozzle_diameter - my $nozzle = $self->{config}->nozzle_diameter; - $self->{config}->set('first_layer_height', $nozzle->[0]); - $self->{config}->set('layer_height', $nozzle->[0] - 0.1); - - # set first_layer_temperature to temperature + 5 - $self->{config}->set('first_layer_temperature', [$self->{config}->temperature->[0] + 5]); - - # set first_layer_bed_temperature to temperature + 5 - $self->{config}->set('first_layer_bed_temperature', - ($self->{config}->bed_temperature > 0) ? ($self->{config}->bed_temperature + 5) : 0); - } - - $self->Destroy; - return $self->{config}; - } else { - $self->Destroy; - return undef; - } -} - -package Slic3r::GUI::ConfigWizard::Index; -use Wx qw(:bitmap :dc :font :misc :sizer :systemsettings :window); -use Wx::Event qw(EVT_ERASE_BACKGROUND EVT_PAINT); -use base 'Wx::Panel'; - -sub new { - my $class = shift; - my ($parent, $title) = @_; - my $self = $class->SUPER::new($parent); - - push @{$self->{titles}}, $title; - $self->{own_index} = 0; - - $self->{bullets}->{before} = Wx::Bitmap->new($Slic3r::var->("bullet_black.png"), wxBITMAP_TYPE_PNG); - $self->{bullets}->{own} = Wx::Bitmap->new($Slic3r::var->("bullet_blue.png"), wxBITMAP_TYPE_PNG); - $self->{bullets}->{after} = Wx::Bitmap->new($Slic3r::var->("bullet_white.png"), wxBITMAP_TYPE_PNG); - - $self->{background} = Wx::Bitmap->new($Slic3r::var->("Slic3r_192px_transparent.png"), wxBITMAP_TYPE_PNG); - $self->SetMinSize(Wx::Size->new($self->{background}->GetWidth, $self->{background}->GetHeight)); - - EVT_PAINT($self, \&repaint); - - return $self; -} - -sub repaint { - my ($self, $event) = @_; - my $size = $self->GetClientSize; - my $gap = 5; - - my $dc = Wx::PaintDC->new($self); - $dc->SetBackgroundMode(wxTRANSPARENT); - $dc->SetFont($self->GetFont); - $dc->SetTextForeground($self->GetForegroundColour); - - my $background_h = $self->{background}->GetHeight; - my $background_w = $self->{background}->GetWidth; - $dc->DrawBitmap($self->{background}, ($size->GetWidth - $background_w) / 2, ($size->GetHeight - $background_h) / 2, 1); - - my $label_h = $self->{bullets}->{own}->GetHeight; - $label_h = $dc->GetCharHeight if $dc->GetCharHeight > $label_h; - my $label_w = $size->GetWidth; - - my $i = 0; - foreach (@{$self->{titles}}) { - my $bullet = $self->{bullets}->{own}; - $bullet = $self->{bullets}->{before} if $i < $self->{own_index}; - $bullet = $self->{bullets}->{after} if $i > $self->{own_index}; - - $dc->SetTextForeground(Wx::Colour->new(128, 128, 128)) if $i > $self->{own_index}; - $dc->DrawLabel($_, $bullet, Wx::Rect->new(0, $i * ($label_h + $gap), $label_w, $label_h)); - $i++; - } - - $event->Skip; -} - -sub prepend_title { - my $self = shift; - my ($title) = @_; - - unshift @{$self->{titles}}, $title; - $self->{own_index}++; - $self->Refresh; -} - -sub append_title { - my $self = shift; - my ($title) = @_; - - push @{$self->{titles}}, $title; - $self->Refresh; -} - -package Slic3r::GUI::ConfigWizard::Page; -use Wx qw(:font :misc :sizer :staticline :systemsettings); -use base 'Wx::WizardPage'; - -sub new { - my $class = shift; - my ($parent, $title, $short_title) = @_; - my $self = $class->SUPER::new($parent); - - my $sizer = Wx::FlexGridSizer->new(0, 2, 10, 10); - $sizer->AddGrowableCol(1, 1); - $sizer->AddGrowableRow(1, 1); - $sizer->AddStretchSpacer(0); - $self->SetSizer($sizer); - - # title - my $text = Wx::StaticText->new($self, -1, $title, wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); - my $bold_font = Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); - $bold_font->SetWeight(wxFONTWEIGHT_BOLD); - $bold_font->SetPointSize(14); - $text->SetFont($bold_font); - $sizer->Add($text, 0, wxALIGN_LEFT, 0); - - # index - $self->{short_title} = $short_title ? $short_title : $title; - $self->{index} = Slic3r::GUI::ConfigWizard::Index->new($self, $self->{short_title}); - $sizer->Add($self->{index}, 1, wxEXPAND | wxTOP | wxRIGHT, 10); - - # contents - $self->{width} = 430; - $self->{vsizer} = Wx::BoxSizer->new(wxVERTICAL); - $sizer->Add($self->{vsizer}, 1); - - return $self; -} - -sub append_text { - my $self = shift; - my ($text) = @_; - - my $para = Wx::StaticText->new($self, -1, $text, wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); - $para->Wrap($self->{width}); - $para->SetMinSize([$self->{width}, -1]); - $self->{vsizer}->Add($para, 0, wxALIGN_LEFT | wxTOP | wxBOTTOM, 10); -} - -sub append_option { - my $self = shift; - my ($full_key) = @_; - - # populate repository with the factory default - my ($opt_key, $opt_index) = split /#/, $full_key, 2; - $self->config->apply(Slic3r::Config->new_from_defaults($opt_key)); - - # draw the control - my $optgroup = Slic3r::GUI::ConfigOptionsGroup->new( - parent => $self, - title => '', - config => $self->config, - full_labels => 1, - ); - $optgroup->append_single_option_line($opt_key, $opt_index); - $self->{vsizer}->Add($optgroup->sizer, 0, wxEXPAND | wxTOP | wxBOTTOM, 10); -} - -sub append_panel { - my ($self, $panel) = @_; - $self->{vsizer}->Add($panel, 0, wxEXPAND | wxTOP | wxBOTTOM, 10); -} - -sub set_previous_page { - my $self = shift; - my ($previous_page) = @_; - $self->{previous_page} = $previous_page; -} - -sub GetPrev { - my $self = shift; - return $self->{previous_page}; -} - -sub set_next_page { - my $self = shift; - my ($next_page) = @_; - $self->{next_page} = $next_page; -} - -sub GetNext { - my $self = shift; - return $self->{next_page}; -} - -sub get_short_title { - my $self = shift; - return $self->{short_title}; -} - -sub build_index { - my $self = shift; - - my $page = $self; - $self->{index}->prepend_title($page->get_short_title) while ($page = $page->GetPrev); - $page = $self; - $self->{index}->append_title($page->get_short_title) while ($page = $page->GetNext); -} - -sub config { - my ($self) = @_; - return $self->GetParent->{config}; -} - -package Slic3r::GUI::ConfigWizard::Page::Welcome; -use base 'Slic3r::GUI::ConfigWizard::Page'; - -sub new { - my $class = shift; - my ($parent) = @_; - my $self = $class->SUPER::new($parent, "Welcome to the Slic3r Configuration $wizard", 'Welcome'); - - $self->append_text('Hello, welcome to Slic3r! This '.lc($wizard).' helps you with the initial configuration; just a few settings and you will be ready to print.'); - $self->append_text('To import an existing configuration instead, cancel this '.lc($wizard).' and use the Open Config menu item found in the File menu.'); - $self->append_text('To continue, click Next.'); - - return $self; -} - -package Slic3r::GUI::ConfigWizard::Page::Firmware; -use base 'Slic3r::GUI::ConfigWizard::Page'; - -sub new { - my $class = shift; - my ($parent) = @_; - my $self = $class->SUPER::new($parent, 'Firmware Type'); - - $self->append_text('Choose the type of firmware used by your printer, then click Next.'); - $self->append_option('gcode_flavor'); - - return $self; -} - -package Slic3r::GUI::ConfigWizard::Page::Bed; -use base 'Slic3r::GUI::ConfigWizard::Page'; - -sub new { - my $class = shift; - my ($parent) = @_; - my $self = $class->SUPER::new($parent, 'Bed Size'); - - $self->append_text('Set the shape of your printer\'s bed, then click Next.'); - - $self->config->apply(Slic3r::Config->new_from_defaults('bed_shape')); - $self->{bed_shape_panel} = my $panel = Slic3r::GUI::BedShapePanel->new($self, $self->config->bed_shape); - $self->{bed_shape_panel}->on_change(sub { - $self->config->set('bed_shape', $self->{bed_shape_panel}->GetValue); - }); - $self->append_panel($self->{bed_shape_panel}); - return $self; -} - -package Slic3r::GUI::ConfigWizard::Page::Nozzle; -use base 'Slic3r::GUI::ConfigWizard::Page'; - -sub new { - my $class = shift; - my ($parent) = @_; - my $self = $class->SUPER::new($parent, 'Nozzle Diameter'); - - $self->append_text('Enter the diameter of your printer\'s hot end nozzle, then click Next.'); - $self->append_option('nozzle_diameter#0'); - - return $self; -} - -package Slic3r::GUI::ConfigWizard::Page::Filament; -use base 'Slic3r::GUI::ConfigWizard::Page'; - -sub new { - my $class = shift; - my ($parent) = @_; - my $self = $class->SUPER::new($parent, 'Filament Diameter'); - - $self->append_text('Enter the diameter of your filament, then click Next.'); - $self->append_text('Good precision is required, so use a caliper and do multiple measurements along the filament, then compute the average.'); - $self->append_option('filament_diameter#0'); - - return $self; -} - -package Slic3r::GUI::ConfigWizard::Page::Temperature; -use base 'Slic3r::GUI::ConfigWizard::Page'; - -sub new { - my $class = shift; - my ($parent) = @_; - my $self = $class->SUPER::new($parent, 'Extrusion Temperature'); - - $self->append_text('Enter the temperature needed for extruding your filament, then click Next.'); - $self->append_text('A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS.'); - $self->append_option('temperature#0'); - - return $self; -} - -package Slic3r::GUI::ConfigWizard::Page::BedTemperature; -use base 'Slic3r::GUI::ConfigWizard::Page'; - -sub new { - my $class = shift; - my ($parent) = @_; - my $self = $class->SUPER::new($parent, 'Bed Temperature'); - - $self->append_text('Enter the bed temperature needed for getting your filament to stick to your heated bed, then click Next.'); - $self->append_text('A rule of thumb is 60 °C for PLA and 110 °C for ABS. Leave zero if you have no heated bed.'); - $self->append_option('bed_temperature'); - - return $self; -} - -package Slic3r::GUI::ConfigWizard::Page::Finished; -use base 'Slic3r::GUI::ConfigWizard::Page'; - -sub new { - my $class = shift; - my ($parent) = @_; - my $self = $class->SUPER::new($parent, 'Congratulations!', 'Finish'); - - $self->append_text("You have successfully completed the Slic3r Configuration $wizard. " . - 'Slic3r is now configured for your printer and filament.'); - $self->append_text('To close this '.lc($wizard).' and apply the newly created configuration, click Finish.'); - - return $self; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Controller.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Controller.pm deleted file mode 100644 index 717149d5..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Controller.pm +++ /dev/null @@ -1,204 +0,0 @@ -# The "Controller" tab to control the printer using serial / USB. -# This feature is rarely used. Much more often, the firmware reads the G-codes from a SD card. -# May there be multiple subtabs per each printer connected? - -package Slic3r::GUI::Controller; -use strict; -use warnings; -use utf8; - -use List::Util qw(any); -use Wx qw(wxTheApp :frame :id :misc :sizer :bitmap :button :icon :dialog); -use Wx::Event qw(EVT_CLOSE EVT_LEFT_DOWN EVT_MENU); -use base qw(Wx::ScrolledWindow Class::Accessor); - -__PACKAGE__->mk_accessors(qw(_selected_printer_preset)); - -our @ConfigOptions = qw(bed_shape serial_port serial_speed); - -sub new { - my ($class, $parent) = @_; - my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, [600,350]); - - $self->SetScrollbars(0, 1, 0, 1); - $self->{sizer} = my $sizer = Wx::BoxSizer->new(wxVERTICAL); - - # warning to show when there are no printers configured - { - $self->{text_no_printers} = Wx::StaticText->new($self, -1, - "No printers were configured for USB/serial control.", - wxDefaultPosition, wxDefaultSize); - $self->{sizer}->Add($self->{text_no_printers}, 0, wxTOP | wxLEFT, 30); - } - - # button for adding new printer panels - { - my $btn = $self->{btn_add} = Wx::BitmapButton->new($self, -1, Wx::Bitmap->new($Slic3r::var->("add.png"), wxBITMAP_TYPE_PNG), - wxDefaultPosition, wxDefaultSize, Wx::wxBORDER_NONE); - $btn->SetToolTipString("Add printer…") - if $btn->can('SetToolTipString'); - - EVT_LEFT_DOWN($btn, sub { - my $menu = Wx::Menu->new; - my %presets = map { $_->name => $_ } @{wxTheApp->presets->{printer}}; - - # remove printers that already exist - my @panels = $self->print_panels; - delete $presets{$_} for map $_->printer_name, @panels; - - foreach my $preset_name (sort keys %presets) { - my $preset = $presets{$preset_name}; - next if !$preset->dirty_config->serial_port; - - my $id = &Wx::NewId(); - $menu->Append($id, $preset_name); - EVT_MENU($menu, $id, sub { - $self->add_printer($preset); - }); - } - $self->PopupMenu($menu, $btn->GetPosition); - $menu->Destroy; - }); - $self->{sizer}->Add($btn, 0, wxTOP | wxLEFT, 10); - } - - $self->SetSizer($sizer); - $self->SetMinSize($self->GetSize); - #$sizer->SetSizeHints($self); - - EVT_CLOSE($self, sub { - my (undef, $event) = @_; - - if ($event->CanVeto) { - foreach my $panel ($self->print_panels) { - if ($panel->printing) { - my $confirm = Wx::MessageDialog->new( - $self, "Printer '" . $panel->printer_name . "' is printing.\n\nDo you want to stop printing?", - 'Unfinished Print', wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION, - ); - if ($confirm->ShowModal == wxID_NO) { - $event->Veto; - return; - } - } - } - } - foreach my $panel ($self->print_panels) { - $panel->disconnect; - } - - $event->Skip; - }); - - $self->Layout; - - return $self; -} - -sub OnActivate { - my ($self) = @_; - - # get all available presets - my %presets = (); - foreach my $preset (@{wxTheApp->presets->{printer}}) { - $preset->load_config; - next if !$preset->dirty_config->serial_port; - $presets{$preset->name} = $preset; - } - - # decide which ones we want to keep - my %active = (); - - # keep the ones that are currently connected or have jobs in queue - $active{$_} = 1 for map $_->printer_name, - grep { $_->is_connected || @{$_->jobs} > 0 } - $self->print_panels; - - if (%presets) { - # if there are no active panels, use sensible defaults - if (!%active && keys %presets <= 2) { - # if only one or two presets exist, load them - $active{$_} = 1 for keys %presets; - } - if (!%active) { - # enable printers whose port is available - my %ports = map { $_ => 1 } wxTheApp->scan_serial_ports; - $active{$_} = 1 - for grep exists $ports{$presets{$_}->dirty_config->serial_port}, keys %presets; - } - if (!%active && $self->_selected_printer_preset) { - # enable currently selected printer if it is configured - $active{$self->_selected_printer_preset} = 1 - if $presets{$self->_selected_printer_preset}; - } - } - - # apply changes - for my $panel ($self->print_panels) { - next if $active{$panel->printer_name}; - - $self->{sizer}->DetachWindow($panel); - $panel->Destroy; - } - $self->add_printer($presets{$_}) for sort keys %active; - - # show/hide the warning about no printers - $self->{text_no_printers}->Show(!%presets); - - # show/hide the Add button - $self->{btn_add}->Show(keys %presets != keys %active); - - $self->Layout; - - # we need this in order to trigger the OnSize event of wxScrolledWindow which - # recalculates the virtual size - Wx::GetTopLevelParent($self)->SendSizeEvent; -} - -sub add_printer { - my ($self, $preset) = @_; - - # check that printer doesn't exist already - foreach my $panel ($self->print_panels) { - if ($panel->printer_name eq $preset->name) { - return $panel; - } - } - - my $printer_panel = Slic3r::GUI::Controller::PrinterPanel->new($self, $preset); - $self->{sizer}->Prepend($printer_panel, 0, wxEXPAND | wxTOP | wxLEFT | wxRIGHT, 10); - $self->Layout; - - return $printer_panel; -} - -sub print_panels { - my ($self) = @_; - return grep $_->isa('Slic3r::GUI::Controller::PrinterPanel'), - map $_->GetWindow, $self->{sizer}->GetChildren; -} - -sub printing { - my ($self) = @_; - - return any { $_->printing } $self->print_panels; -} - -sub update_presets { - my $self = shift; - my ($group, $presets, $selected, $is_dirty) = @_; - - # update configs of currently loaded print panels - foreach my $panel ($self->print_panels) { - foreach my $preset (@$presets) { - if ($panel->printer_name eq $preset->name) { - my $config = $preset->config(\@ConfigOptions); - $panel->config->apply($config); - } - } - } - - $self->_selected_printer_preset($presets->[$selected]->name); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Controller/ManualControlDialog.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Controller/ManualControlDialog.pm deleted file mode 100644 index 424ca3d7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Controller/ManualControlDialog.pm +++ /dev/null @@ -1,275 +0,0 @@ -package Slic3r::GUI::Controller::ManualControlDialog; -use strict; -use warnings; -use utf8; - -use Scalar::Util qw(looks_like_number); -use Slic3r::Geometry qw(PI X Y unscale); -use Wx qw(:dialog :id :misc :sizer :choicebook :button :bitmap :textctrl - wxBORDER_NONE wxTAB_TRAVERSAL); -use Wx::Event qw(EVT_CLOSE EVT_BUTTON EVT_TEXT_ENTER); -use base qw(Wx::Dialog Class::Accessor); - -__PACKAGE__->mk_accessors(qw(sender writer config2 x_homed y_homed)); - -sub new { - my ($class, $parent, $config, $sender, $manual_control_config) = @_; - - my $self = $class->SUPER::new($parent, -1, "Manual Control", wxDefaultPosition, - [500,400], wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); - $self->sender($sender); - $self->writer(Slic3r::GCode::Writer->new); - $self->writer->config->apply_dynamic($config); - - $self->config2($manual_control_config); - - my $bed_sizer = Wx::FlexGridSizer->new(2, 3, 1, 1); - $bed_sizer->AddGrowableCol(1, 1); - $bed_sizer->AddGrowableRow(0, 1); - - my $move_button = sub { - my ($sizer, $label, $icon, $bold, $pos, $handler) = @_; - - my $btn = Wx::Button->new($self, -1, $label, wxDefaultPosition, wxDefaultSize, - wxBU_LEFT | wxBU_EXACTFIT); - $btn->SetFont($bold ? $Slic3r::GUI::small_bold_font : $Slic3r::GUI::small_font); - if ($Slic3r::GUI::have_button_icons) { - $btn->SetBitmap(Wx::Bitmap->new($Slic3r::var->("$icon.png"), wxBITMAP_TYPE_PNG)); - $btn->SetBitmapPosition($pos); - } - EVT_BUTTON($self, $btn, $handler); - $sizer->Add($btn, 1, wxEXPAND | wxALL, 0); - }; - - # Y buttons - { - my $sizer = Wx::BoxSizer->new(wxVERTICAL); - for my $d (qw(+10 +1 +0.1)) { - $move_button->($sizer, $d, 'arrow_up', 0, wxLEFT, sub { $self->rel_move('Y', $d) }); - } - $move_button->($sizer, 'Y', 'house', 1, wxLEFT, sub { $self->home('Y') }); - for my $d (qw(-0.1 -1 -10)) { - $move_button->($sizer, $d, 'arrow_down', 0, wxLEFT, sub { $self->rel_move('Y', $d) }); - }; - $bed_sizer->Add($sizer, 1, wxEXPAND, 0); - } - - # Bed canvas - { - my $bed_shape = $config->bed_shape; - $self->{canvas} = my $canvas = Slic3r::GUI::2DBed->new($self, $bed_shape); - $canvas->interactive(1); - $canvas->on_move(sub { - my ($pos) = @_; - - if (!($self->x_homed && $self->y_homed)) { - Slic3r::GUI::show_error($self, "Please home both X and Y before moving."); - return ; - } - - # delete any pending commands to get a smoother movement - $self->sender->purge_queue(1); - $self->abs_xy_move($pos); - }); - $bed_sizer->Add($canvas, 0, wxEXPAND | wxRIGHT, 3); - } - - # Z buttons - { - my $sizer = Wx::BoxSizer->new(wxVERTICAL); - for my $d (qw(+10 +1 +0.1)) { - $move_button->($sizer, $d, 'arrow_up', 0, wxLEFT, sub { $self->rel_move('Z', $d) }); - } - $move_button->($sizer, 'Z', 'house', 1, wxLEFT, sub { $self->home('Z') }); - for my $d (qw(-0.1 -1 -10)) { - $move_button->($sizer, $d, 'arrow_down', 0, wxLEFT, sub { $self->rel_move('Z', $d) }); - }; - $bed_sizer->Add($sizer, 1, wxEXPAND, 0); - } - - # XYZ home button - $move_button->($bed_sizer, 'XYZ', 'house', 1, wxTOP, sub { $self->home(undef) }); - - # X buttons - { - my $sizer = Wx::BoxSizer->new(wxHORIZONTAL); - for my $d (qw(-10 -1 -0.1)) { - $move_button->($sizer, $d, 'arrow_left', 0, wxTOP, sub { $self->rel_move('X', $d) }); - } - $move_button->($sizer, 'X', 'house', 1, wxTOP, sub { $self->home('X') }); - for my $d (qw(+0.1 +1 +10)) { - $move_button->($sizer, $d, 'arrow_right', 0, wxTOP, sub { $self->rel_move('X', $d) }); - } - $bed_sizer->Add($sizer, 1, wxEXPAND, 0); - } - - my $optgroup = Slic3r::GUI::OptionsGroup->new( - parent => $self, - title => 'Manual motion settings', - on_change => sub { - my ($opt_id, $value) = @_; - $self->config2->{$opt_id} = $value; - }, - ); - { - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Speed (mm/s)', - ); - $line->append_option(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'xy_travel_speed', - type => 'f', - label => 'X/Y', - tooltip => '', - default => $self->config2->{xy_travel_speed}, - )); - $line->append_option(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'z_travel_speed', - type => 'f', - label => 'Z', - tooltip => '', - default => $self->config2->{z_travel_speed}, - )); - $optgroup->append_line($line); - } - my $left_sizer = Wx::BoxSizer->new(wxVERTICAL); - $left_sizer->Add($bed_sizer, 1, wxEXPAND | wxALL, 10); - $left_sizer->Add($optgroup->sizer, 0, wxEXPAND | wxALL, 10); - - my $right_sizer = Wx::BoxSizer->new(wxVERTICAL); - { - my $optgroup = Slic3r::GUI::OptionsGroup->new( - parent => $self, - title => 'Temperature', - on_change => sub { - my ($opt_id, $value) = @_; - $self->config2->{$opt_id} = $value; - }, - ); - $right_sizer->Add($optgroup->sizer, 0, wxEXPAND | wxALL, 10); - { - my $line = $optgroup->create_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'temperature', - type => 's', - label => 'Extruder', - default => '', - sidetext => '°C', - default => $self->config2->{temperature}, - )); - $line->append_button("Set", "tick.png", sub { - if (!looks_like_number($self->config2->{temperature})) { - Slic3r::GUI::show_error($self, "Invalid temperature."); - return; - } - my $cmd = $self->writer->set_temperature($self->config2->{temperature}); - $self->GetParent->append_to_log(">> $cmd\n"); - $self->sender->send($cmd, 1); - }); - $optgroup->append_line($line); - } - { - my $line = $optgroup->create_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'bed_temperature', - type => 's', - label => 'Bed', - default => '', - sidetext => '°C', - default => $self->config2->{bed_temperature}, - )); - $line->append_button("Set", "tick.png", sub { - if (!looks_like_number($self->config2->{bed_temperature})) { - Slic3r::GUI::show_error($self, "Invalid bed temperature."); - return; - } - my $cmd = $self->writer->set_bed_temperature($self->config2->{bed_temperature}); - $self->GetParent->append_to_log(">> $cmd\n"); - $self->sender->send($cmd, 1); - }); - $optgroup->append_line($line); - } - } - - { - my $box = Wx::StaticBox->new($self, -1, "Send manual command"); - my $sbsizer = Wx::StaticBoxSizer->new($box, wxVERTICAL); - $right_sizer->Add($sbsizer, 1, wxEXPAND | wxALL, 10); - - my $cmd_sizer = Wx::BoxSizer->new(wxHORIZONTAL); - my $cmd_textctrl = Wx::TextCtrl->new($self, -1, '', wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER); - $cmd_sizer->Add($cmd_textctrl, 1, wxEXPAND, 0); - - my $btn = Wx::Button->new($self, -1, - "Send", wxDefaultPosition, wxDefaultSize, wxBU_LEFT | wxBU_EXACTFIT); - $btn->SetFont($Slic3r::GUI::small_font); - if ($Slic3r::GUI::have_button_icons) { - $btn->SetBitmap(Wx::Bitmap->new($Slic3r::var->("cog_go.png"), wxBITMAP_TYPE_PNG)); - } - $cmd_sizer->Add($btn, 0, wxEXPAND | wxLEFT, 5); - - my $do_send = sub { - my $cmd = $cmd_textctrl->GetValue; - return if $cmd eq ''; - $self->GetParent->append_to_log(">> $cmd\n"); - $self->sender->send($cmd, 1); - $cmd_textctrl->SetValue(''); - }; - EVT_BUTTON($self, $btn, $do_send); - EVT_TEXT_ENTER($self, $cmd_textctrl, $do_send); - - $sbsizer->Add($cmd_sizer, 0, wxEXPAND | wxTOP, 5); - } - - my $main_sizer = Wx::BoxSizer->new(wxHORIZONTAL); - $main_sizer->Add($left_sizer, 1, wxEXPAND | wxRIGHT, 10); - $main_sizer->Add($right_sizer, 0, wxEXPAND, 0); - - $self->SetSizer($main_sizer); - $self->SetMinSize($self->GetSize); - $main_sizer->SetSizeHints($self); - $self->Layout; - - # needed to actually free memory - EVT_CLOSE($self, sub { - $self->EndModal(wxID_OK); - $self->Destroy; - }); - - return $self; -} - -sub abs_xy_move { - my ($self, $pos) = @_; - - $self->sender->send("G90", 1); # set absolute positioning - $self->sender->send(sprintf("G1 X%.1f Y%.1f F%d", @$pos, $self->config2->{xy_travel_speed}*60), 1); - $self->{canvas}->set_pos($pos); -} - -sub rel_move { - my ($self, $axis, $distance) = @_; - - my $speed = ($axis eq 'Z') ? $self->config2->{z_travel_speed} : $self->config2->{xy_travel_speed}; - $self->sender->send("G91", 1); # set relative positioning - $self->sender->send(sprintf("G1 %s%.1f F%d", $axis, $distance, $speed*60), 1); - $self->sender->send("G90", 1); # set absolute positioning - - if (my $pos = $self->{canvas}->pos) { - if ($axis eq 'X') { - $pos->translate($distance, 0); - } elsif ($axis eq 'Y') { - $pos->translate(0, $distance); - } - $self->{canvas}->set_pos($pos); - } -} - -sub home { - my ($self, $axis) = @_; - - $axis //= ''; - $self->sender->send(sprintf("G28 %s", $axis), 1); - $self->{canvas}->set_pos(undef); - $self->x_homed(1) if $axis eq 'X'; - $self->y_homed(1) if $axis eq 'Y'; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Controller/PrinterPanel.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Controller/PrinterPanel.pm deleted file mode 100644 index cc0bac03..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Controller/PrinterPanel.pm +++ /dev/null @@ -1,762 +0,0 @@ -package Slic3r::GUI::Controller::PrinterPanel; -use strict; -use warnings; -use utf8; - -use List::Util qw(first); -use Wx qw(wxTheApp :panel :id :misc :sizer :button :bitmap :window :gauge :timer - :textctrl :font :systemsettings); -use Wx::Event qw(EVT_BUTTON EVT_MOUSEWHEEL EVT_TIMER EVT_SCROLLWIN); -use base qw(Wx::Panel Class::Accessor); - -__PACKAGE__->mk_accessors(qw(printer_name config sender jobs - printing status_timer temp_timer manual_control_config)); - -use constant CONNECTION_TIMEOUT => 3; # seconds -use constant STATUS_TIMER_INTERVAL => 1000; # milliseconds -use constant TEMP_TIMER_INTERVAL => 5000; # milliseconds - -sub new { - my ($class, $parent, $preset) = @_; - my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, [500, 250]); - - $self->printer_name($preset->name); - $self->config($preset->dirty_config); - $self->manual_control_config({ - xy_travel_speed => 130, - z_travel_speed => 10, - temperature => '', - bed_temperature => '', - }); - $self->jobs([]); - - # set up the timer that polls for updates - { - my $timer_id = &Wx::NewId(); - $self->status_timer(Wx::Timer->new($self, $timer_id)); - EVT_TIMER($self, $timer_id, sub { - my ($self, $event) = @_; - - if ($self->printing) { - my $queue_size = $self->sender->queue_size; - $self->{gauge}->SetValue($self->{gauge}->GetRange - $queue_size); - if ($queue_size == 0) { - $self->print_completed; - } - } - $self->append_to_log("$_\n") for @{$self->sender->purge_log}; - { - my $temp = $self->sender->getT; - if ($temp eq '') { - $self->{temp_panel}->Hide; - } else { - if (!$self->{temp_panel}->IsShown) { - $self->{temp_panel}->Show; - $self->Layout; - } - $self->{temp_text}->SetLabel($temp . "°C"); - - $temp = $self->sender->getB; - if ($temp eq '') { - $self->{bed_temp_text}->SetLabel('n.a.'); - } else { - $self->{bed_temp_text}->SetLabel($temp . "°C"); - } - } - } - }); - } - - # set up the timer that sends temperature requests - # (responses are handled by status_timer) - { - my $timer_id = &Wx::NewId(); - $self->temp_timer(Wx::Timer->new($self, $timer_id)); - EVT_TIMER($self, $timer_id, sub { - my ($self, $event) = @_; - $self->sender->send("M105", 1); # send it through priority queue - }); - } - - my $box = Wx::StaticBox->new($self, -1, ""); - my $sizer = Wx::StaticBoxSizer->new($box, wxHORIZONTAL); - my $left_sizer = Wx::BoxSizer->new(wxVERTICAL); - - # printer name - { - my $text = Wx::StaticText->new($self, -1, $self->printer_name, wxDefaultPosition, [220,-1]); - my $font = $text->GetFont; - $font->SetPointSize(20); - $text->SetFont($font); - $left_sizer->Add($text, 0, wxEXPAND, 0); - } - - # connection info - { - my $conn_sizer = Wx::FlexGridSizer->new(2, 2, 1, 0); - $conn_sizer->SetFlexibleDirection(wxHORIZONTAL); - $conn_sizer->AddGrowableCol(1, 1); - $left_sizer->Add($conn_sizer, 0, wxEXPAND | wxTOP, 5); - { - my $text = Wx::StaticText->new($self, -1, "Port:", wxDefaultPosition, wxDefaultSize); - $text->SetFont($Slic3r::GUI::small_font); - $conn_sizer->Add($text, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 5); - } - my $serial_port_sizer = Wx::BoxSizer->new(wxHORIZONTAL); - { - $self->{serial_port_combobox} = Wx::ComboBox->new($self, -1, $self->config->serial_port, wxDefaultPosition, wxDefaultSize, []); - $self->{serial_port_combobox}->SetFont($Slic3r::GUI::small_font); - $self->update_serial_ports; - $serial_port_sizer->Add($self->{serial_port_combobox}, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 1); - } - { - $self->{btn_rescan_serial} = my $btn = Wx::BitmapButton->new($self, -1, Wx::Bitmap->new($Slic3r::var->("arrow_rotate_clockwise.png"), wxBITMAP_TYPE_PNG), - wxDefaultPosition, wxDefaultSize, &Wx::wxBORDER_NONE); - $btn->SetToolTipString("Rescan serial ports") - if $btn->can('SetToolTipString'); - $serial_port_sizer->Add($btn, 0, wxALIGN_CENTER_VERTICAL, 0); - EVT_BUTTON($self, $btn, sub { $self->update_serial_ports }); - } - $conn_sizer->Add($serial_port_sizer, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 5); - - { - my $text = Wx::StaticText->new($self, -1, "Speed:", wxDefaultPosition, wxDefaultSize); - $text->SetFont($Slic3r::GUI::small_font); - $conn_sizer->Add($text, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 5); - } - my $serial_speed_sizer = Wx::BoxSizer->new(wxHORIZONTAL); - { - $self->{serial_speed_combobox} = Wx::ComboBox->new($self, -1, $self->config->serial_speed, wxDefaultPosition, wxDefaultSize, - ["57600", "115200", "250000"]); - $self->{serial_speed_combobox}->SetFont($Slic3r::GUI::small_font); - $serial_speed_sizer->Add($self->{serial_speed_combobox}, 0, wxALIGN_CENTER_VERTICAL, 0); - } - { - $self->{btn_disconnect} = my $btn = Wx::Button->new($self, -1, "Disconnect", wxDefaultPosition, wxDefaultSize); - $btn->SetFont($Slic3r::GUI::small_font); - if ($Slic3r::GUI::have_button_icons) { - $btn->SetBitmap(Wx::Bitmap->new($Slic3r::var->("delete.png"), wxBITMAP_TYPE_PNG)); - } - $serial_speed_sizer->Add($btn, 0, wxLEFT, 5); - EVT_BUTTON($self, $btn, \&disconnect); - } - $conn_sizer->Add($serial_speed_sizer, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 5); - } - - # buttons - { - $self->{btn_connect} = my $btn = Wx::Button->new($self, -1, "Connect to printer", wxDefaultPosition, [-1, 40]); - my $font = $btn->GetFont; - $font->SetPointSize($font->GetPointSize + 2); - $btn->SetFont($font); - if ($Slic3r::GUI::have_button_icons) { - $btn->SetBitmap(Wx::Bitmap->new($Slic3r::var->("arrow_up.png"), wxBITMAP_TYPE_PNG)); - } - $left_sizer->Add($btn, 0, wxTOP, 15); - EVT_BUTTON($self, $btn, \&connect); - } - - # print progress bar - { - my $gauge = $self->{gauge} = Wx::Gauge->new($self, wxGA_HORIZONTAL, 100, wxDefaultPosition, wxDefaultSize); - $left_sizer->Add($self->{gauge}, 0, wxEXPAND | wxTOP, 15); - $gauge->Hide; - } - - # status - $self->{status_text} = Wx::StaticText->new($self, -1, "", wxDefaultPosition, [200,-1]); - $left_sizer->Add($self->{status_text}, 1, wxEXPAND | wxTOP, 15); - - # manual control - { - $self->{btn_manual_control} = my $btn = Wx::Button->new($self, -1, "Manual control", wxDefaultPosition, wxDefaultSize); - $btn->SetFont($Slic3r::GUI::small_font); - if ($Slic3r::GUI::have_button_icons) { - $btn->SetBitmap(Wx::Bitmap->new($Slic3r::var->("cog.png"), wxBITMAP_TYPE_PNG)); - } - $btn->Hide; - $left_sizer->Add($btn, 0, wxTOP, 15); - EVT_BUTTON($self, $btn, sub { - $self->{manual_control_dialog} = my $dlg = Slic3r::GUI::Controller::ManualControlDialog->new - ($self, $self->config, $self->sender, $self->manual_control_config); - $dlg->ShowModal; - undef $self->{manual_control_dialog}; - }); - } - - # temperature - { - my $temp_panel = $self->{temp_panel} = Wx::Panel->new($self, -1); - my $temp_sizer = Wx::BoxSizer->new(wxHORIZONTAL); - - my $temp_font = Wx::Font->new($Slic3r::GUI::small_font); - $temp_font->SetWeight(wxFONTWEIGHT_BOLD); - { - my $text = Wx::StaticText->new($temp_panel, -1, "Temperature:", wxDefaultPosition, wxDefaultSize); - $text->SetFont($Slic3r::GUI::small_font); - $temp_sizer->Add($text, 0, wxALIGN_CENTER_VERTICAL); - - $self->{temp_text} = Wx::StaticText->new($temp_panel, -1, "", wxDefaultPosition, wxDefaultSize); - $self->{temp_text}->SetFont($temp_font); - $self->{temp_text}->SetForegroundColour(Wx::wxRED); - $temp_sizer->Add($self->{temp_text}, 1, wxALIGN_CENTER_VERTICAL); - } - { - my $text = Wx::StaticText->new($temp_panel, -1, "Bed:", wxDefaultPosition, wxDefaultSize); - $text->SetFont($Slic3r::GUI::small_font); - $temp_sizer->Add($text, 0, wxALIGN_CENTER_VERTICAL); - - $self->{bed_temp_text} = Wx::StaticText->new($temp_panel, -1, "", wxDefaultPosition, wxDefaultSize); - $self->{bed_temp_text}->SetFont($temp_font); - $self->{bed_temp_text}->SetForegroundColour(Wx::wxRED); - $temp_sizer->Add($self->{bed_temp_text}, 1, wxALIGN_CENTER_VERTICAL); - } - $temp_panel->SetSizer($temp_sizer); - $temp_panel->Hide; - $left_sizer->Add($temp_panel, 0, wxEXPAND | wxTOP | wxBOTTOM, 4); - } - - # print jobs panel - $self->{print_jobs_sizer} = my $print_jobs_sizer = Wx::BoxSizer->new(wxVERTICAL); - { - my $text = Wx::StaticText->new($self, -1, "Queue:", wxDefaultPosition, wxDefaultSize); - $text->SetFont($Slic3r::GUI::small_font); - $print_jobs_sizer->Add($text, 0, wxEXPAND, 0); - - $self->{jobs_panel} = Wx::ScrolledWindow->new($self, -1, wxDefaultPosition, wxDefaultSize, - wxVSCROLL | wxBORDER_NONE); - $self->{jobs_panel}->SetScrollbars(0, 1, 0, 1); - $self->{jobs_panel_sizer} = Wx::BoxSizer->new(wxVERTICAL); - $self->{jobs_panel}->SetSizer($self->{jobs_panel_sizer}); - $print_jobs_sizer->Add($self->{jobs_panel}, 1, wxEXPAND, 0); - - # TODO: fix this. We're trying to pass the scroll event to the parent but it - # doesn't work. - EVT_SCROLLWIN($self->{jobs_panel}, sub { - my ($panel, $event) = @_; - - my $controller = $self->GetParent; - my $new_event = Wx::ScrollWinEvent->new( - $event->GetEventType, - $event->GetPosition, - $event->GetOrientation, - ); - $controller->ProcessEvent($new_event); - }) if 0; - } - - my $log_sizer = Wx::BoxSizer->new(wxVERTICAL); - { - my $text = Wx::StaticText->new($self, -1, "Log:", wxDefaultPosition, wxDefaultSize); - $text->SetFont($Slic3r::GUI::small_font); - $log_sizer->Add($text, 0, wxEXPAND, 0); - - my $log = $self->{log_textctrl} = Wx::TextCtrl->new($self, -1, "", wxDefaultPosition, wxDefaultSize, - wxTE_MULTILINE | wxBORDER_NONE); - $log->SetBackgroundColour($self->GetBackgroundColour); - $log->SetFont($Slic3r::GUI::small_font); - $log->SetEditable(0); - $log_sizer->Add($self->{log_textctrl}, 1, wxEXPAND, 0); - } - - $sizer->Add($left_sizer, 0, wxEXPAND | wxALL, 0); - $sizer->Add($print_jobs_sizer, 2, wxEXPAND | wxALL, 0); - $sizer->Add($log_sizer, 1, wxEXPAND | wxLEFT, 15); - - $self->SetSizer($sizer); - $self->SetMinSize($self->GetSize); - - $self->_update_connection_controls; - - return $self; -} - -sub append_to_log { - my ($self, $text) = @_; - - $self->{log_textctrl}->AppendText($text); -} - -sub is_connected { - my ($self) = @_; - return $self->sender && $self->sender->is_connected; -} - -sub _update_connection_controls { - my ($self) = @_; - - $self->{btn_connect}->Show; - $self->{btn_disconnect}->Hide; - $self->{serial_port_combobox}->Enable; - $self->{serial_speed_combobox}->Enable; - $self->{btn_rescan_serial}->Enable; - $self->{btn_manual_control}->Hide; - $self->{btn_manual_control}->Disable; - - if ($self->is_connected) { - $self->{btn_connect}->Hide; - $self->{btn_manual_control}->Show; - if (!$self->printing || $self->printing->paused) { - $self->{btn_disconnect}->Show; - $self->{btn_manual_control}->Enable; - } - $self->{serial_port_combobox}->Disable; - $self->{serial_speed_combobox}->Disable; - $self->{btn_rescan_serial}->Disable; - } - - $self->Layout; -} - -sub set_status { - my ($self, $status) = @_; - $self->{status_text}->SetLabel($status); - $self->{status_text}->Wrap($self->{status_text}->GetSize->GetWidth); - $self->{status_text}->Refresh; - $self->Layout; -} - -sub connect { - my ($self) = @_; - - return if $self->is_connected; - - $self->set_status("Connecting..."); - $self->sender(Slic3r::GCode::Sender->new); - my $res = $self->sender->connect( - $self->{serial_port_combobox}->GetValue, - $self->{serial_speed_combobox}->GetValue, - ); - if (!$res) { - $self->set_status("Connection failed. Check serial port and speed."); - } else { - if ($self->sender->wait_connected) { - $self->set_status("Printer is online. You can now start printing from the queue on the right."); - $self->status_timer->Start(STATUS_TIMER_INTERVAL, wxTIMER_CONTINUOUS); - $self->temp_timer->Start(TEMP_TIMER_INTERVAL, wxTIMER_CONTINUOUS); - - # request temperature now, without waiting for the timer - $self->sender->send("M105", 1); - - # Update the printer preset with the new connection info - { - my $preset = first { $_->name eq $self->printer_name } @{wxTheApp->presets->{printer}}; - if ($preset) { - $preset->load_config; - $preset->_dirty_config->set('serial_port', $self->{serial_port_combobox}->GetValue); - $preset->_dirty_config->set('serial_speed', $self->{serial_speed_combobox}->GetValue); - $preset->save([ 'serial_port', 'serial_speed' ]); - } - } - } else { - $self->set_status("Connection failed. Check serial port and speed."); - } - } - $self->_update_connection_controls; - $self->reload_jobs; -} - -sub disconnect { - my ($self) = @_; - - $self->status_timer->Stop; - $self->temp_timer->Stop; - return if !$self->is_connected; - - $self->printing->printing(0) if $self->printing; - $self->printing(undef); - $self->{gauge}->Hide; - $self->{temp_panel}->Hide; - $self->sender->disconnect; - $self->set_status(""); - $self->_update_connection_controls; - $self->reload_jobs; -} - -sub update_serial_ports { - my ($self) = @_; - - my $cb = $self->{serial_port_combobox}; - my $current = $cb->GetValue; - $cb->Clear; - $cb->Append($_) for wxTheApp->scan_serial_ports; - $cb->SetValue($current); -} - -sub load_print_job { - my ($self, $gcode_file, $filament_stats) = @_; - - push @{$self->jobs}, my $job = Slic3r::GUI::Controller::PrinterPanel::PrintJob->new( - id => time() . $gcode_file . rand(1000), - gcode_file => $gcode_file, - filament_stats => $filament_stats, - ); - $self->reload_jobs; - return $job; -} - -sub delete_job { - my ($self, $job) = @_; - - $self->jobs([ grep $_->id ne $job->id, @{$self->jobs} ]); - $self->reload_jobs; -} - -sub print_job { - my ($self, $job) = @_; - - $self->printing($job); - $job->printing(1); - $self->reload_jobs; - - open my $fh, '<', $job->gcode_file; - my $line_count = 0; - while (my $row = <$fh>) { - $self->sender->send($row); - $line_count++; - } - close $fh; - - $self->_update_connection_controls; - $self->{gauge}->SetRange($line_count); - $self->{gauge}->SetValue(0); - $self->{gauge}->Enable; - $self->{gauge}->Show; - $self->Layout; - - $self->set_status('Printing...'); - $self->append_to_log(sprintf "=====\n"); - $self->append_to_log(sprintf "Printing %s\n", $job->name); - $self->append_to_log(sprintf "Print started at %s\n", $self->_timestamp); -} - -sub print_completed { - my ($self) = @_; - - my $job = $self->printing; - $self->printing(undef); - $job->printing(0); - $job->printed(1); - $self->_update_connection_controls; - $self->{gauge}->Hide; - $self->Layout; - - $self->set_status('Print completed.'); - $self->append_to_log(sprintf "Print completed at %s\n", $self->_timestamp); - - $self->reload_jobs; -} - -sub reload_jobs { - my ($self) = @_; - - # reorder jobs - @{$self->jobs} = sort { ($a->printed <=> $b->printed) || ($a->timestamp <=> $b->timestamp) } - @{$self->jobs}; - - # remove all panels - foreach my $child ($self->{jobs_panel_sizer}->GetChildren) { - my $window = $child->GetWindow; - $self->{jobs_panel_sizer}->Detach($window); - # now $child does not exist anymore - $window->Destroy; - } - - # re-add all panels - foreach my $job (@{$self->jobs}) { - my $panel = Slic3r::GUI::Controller::PrinterPanel::PrintJobPanel->new($self->{jobs_panel}, $job); - $self->{jobs_panel_sizer}->Add($panel, 0, wxEXPAND | wxBOTTOM, 5); - - $panel->on_delete_job(sub { - my ($job) = @_; - $self->delete_job($job); - }); - $panel->on_print_job(sub { - my ($job) = @_; - $self->print_job($job); - }); - $panel->on_pause_print(sub { - my ($job) = @_; - $self->sender->pause_queue; - $job->paused(1); - $self->reload_jobs; - $self->_update_connection_controls; - $self->{gauge}->Disable; - $self->set_status('Print is paused. Click on Resume to continue.'); - }); - $panel->on_abort_print(sub { - my ($job) = @_; - $self->sender->purge_queue; - $self->printing(undef); - $job->printing(0); - $job->paused(0); - $self->reload_jobs; - $self->_update_connection_controls; - $self->{gauge}->Disable; - $self->{gauge}->Hide; - $self->set_status('Print was aborted.'); - $self->append_to_log(sprintf "Print aborted at %s\n", $self->_timestamp); - }); - $panel->on_resume_print(sub { - my ($job) = @_; - $self->sender->resume_queue; - $job->paused(0); - $self->reload_jobs; - $self->_update_connection_controls; - $self->{gauge}->Enable; - $self->set_status('Printing...'); - }); - $panel->enable_print if $self->is_connected && !$self->printing; - - EVT_MOUSEWHEEL($panel, sub { - my (undef, $event) = @_; - Wx::PostEvent($self->{jobs_panel}, $event); - $event->Skip; - }); - } - - $self->{jobs_panel}->Layout; - $self->{print_jobs_sizer}->Layout; -} - -sub _timestamp { - my ($self) = @_; - - my @time = localtime(time); - return sprintf '%02d:%02d:%02d', @time[2,1,0]; -} - -package Slic3r::GUI::Controller::PrinterPanel::PrintJob; -use Moo; - -use File::Basename qw(basename); - -has 'id' => (is => 'ro', required => 1); -has 'timestamp' => (is => 'ro', default => sub { time }); -has 'gcode_file' => (is => 'ro', required => 1); -has 'filament_stats' => (is => 'rw'); -has 'printing' => (is => 'rw', default => sub { 0 }); -has 'paused' => (is => 'rw', default => sub { 0 }); -has 'printed' => (is => 'rw', default => sub { 0 }); - -sub name { - my ($self) = @_; - return basename($self->gcode_file); -} - -package Slic3r::GUI::Controller::PrinterPanel::PrintJobPanel; -use strict; -use warnings; -use utf8; - -use Wx qw(wxTheApp :panel :id :misc :sizer :button :bitmap :font :dialog :icon :timer - :colour :brush :pen); -use Wx::Event qw(EVT_BUTTON EVT_TIMER EVT_ERASE_BACKGROUND); -use base qw(Wx::Panel Class::Accessor); - -__PACKAGE__->mk_accessors(qw(job on_delete_job on_print_job on_pause_print on_resume_print - on_abort_print blink_timer duration queued)); - -sub new { - my ($class, $parent, $job) = @_; - my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize); - - # Estimate print duration - { - my $estimator = Slic3r::GCode::TimeEstimator->new; - $estimator->parse_file($job->gcode_file); - $self->duration($estimator->time); - } - - $self->job($job); - $self->queued(scalar localtime); - - $self->SetBackgroundColour(Wx::SystemSettings::GetColour(Wx::wxSYS_COLOUR_LISTBOX)); - - { - my $white_brush = Wx::Brush->new($self->GetBackgroundColour, wxSOLID); - my $pen = Wx::Pen->new(Wx::Colour->new(200,200,200), 1, wxSOLID); - EVT_ERASE_BACKGROUND($self, sub { - my ($self, $event) = @_; - my $dc = $event->GetDC; - my $size = $self->GetSize; - $dc->SetBrush($white_brush); - $dc->SetPen($pen); - $dc->DrawRoundedRectangle(0, 0, $size->GetWidth,$size->GetHeight, 6); - }); - } - - my $left_sizer = Wx::BoxSizer->new(wxVERTICAL); - { - $self->{job_name_textctrl} = my $text = Wx::StaticText->new($self, -1, $job->name, wxDefaultPosition, wxDefaultSize); - my $font = $text->GetFont; - $font->SetWeight(wxFONTWEIGHT_BOLD); - $text->SetFont($font); - if ($job->printed) { - $text->SetForegroundColour($Slic3r::GUI::grey); - } - $text->SetToolTipString("Queued on " . $self->queued) - if $text->can('SetToolTipString'); - $left_sizer->Add($text, 0, wxEXPAND, 0); - } - { - my $stats = join "\n", - map "$_ (" . sprintf("%.2f", $job->filament_stats->{$_}/1000) . "m)", - sort keys %{$job->filament_stats}; - $stats .= sprintf "\nEstimated time: %d hours and %d minutes", - int($self->duration/3600), int($self->duration/60) % 60; - - my $text = Wx::StaticText->new($self, -1, $stats, wxDefaultPosition, wxDefaultSize); - $text->SetFont($Slic3r::GUI::small_font); - if ($job->printed && !$job->printing) { - $text->SetForegroundColour($Slic3r::GUI::grey); - } - $left_sizer->Add($text, 0, wxEXPAND | wxTOP, 6); - } - - my $buttons_sizer = Wx::BoxSizer->new(wxVERTICAL); - my $button_style = Wx::wxBORDER_NONE | wxBU_EXACTFIT; - { - my $btn = $self->{btn_delete} = Wx::Button->new($self, -1, 'Delete', - wxDefaultPosition, wxDefaultSize, $button_style); - $btn->SetToolTipString("Delete this job from print queue") - if $btn->can('SetToolTipString'); - $btn->SetFont($Slic3r::GUI::small_font); - if ($Slic3r::GUI::have_button_icons) { - $btn->SetBitmap(Wx::Bitmap->new($Slic3r::var->("delete.png"), wxBITMAP_TYPE_PNG)); - } - if ($job->printing) { - $btn->Hide; - } - $buttons_sizer->Add($btn, 0, wxBOTTOM, 2); - - EVT_BUTTON($self, $btn, sub { - my $res = Wx::MessageDialog->new($self, "Are you sure you want to delete this print job?", 'Delete Job', wxYES_NO | wxYES_DEFAULT | wxICON_QUESTION)->ShowModal; - return unless $res == wxID_YES; - - wxTheApp->CallAfter(sub { - $self->on_delete_job->($job); - }); - }); - } - { - my $label = $job->printed ? 'Print Again' : 'Print This'; - my $btn = $self->{btn_print} = Wx::Button->new($self, -1, $label, wxDefaultPosition, wxDefaultSize, - $button_style); - $btn->SetFont($Slic3r::GUI::small_bold_font); - if ($Slic3r::GUI::have_button_icons) { - $btn->SetBitmap(Wx::Bitmap->new($Slic3r::var->("control_play.png"), wxBITMAP_TYPE_PNG)); - $btn->SetBitmapCurrent(Wx::Bitmap->new($Slic3r::var->("control_play_blue.png"), wxBITMAP_TYPE_PNG)); - #$btn->SetBitmapPosition(wxRIGHT); - } - $btn->Hide; - $buttons_sizer->Add($btn, 0, wxBOTTOM, 2); - - EVT_BUTTON($self, $btn, sub { - wxTheApp->CallAfter(sub { - $self->on_print_job->($job); - }); - }); - } - { - my $btn = $self->{btn_pause} = Wx::Button->new($self, -1, "Pause", wxDefaultPosition, wxDefaultSize, - $button_style); - $btn->SetFont($Slic3r::GUI::small_font); - if (!$job->printing || $job->paused) { - $btn->Hide; - } - if ($Slic3r::GUI::have_button_icons) { - $btn->SetBitmap(Wx::Bitmap->new($Slic3r::var->("control_pause.png"), wxBITMAP_TYPE_PNG)); - $btn->SetBitmapCurrent(Wx::Bitmap->new($Slic3r::var->("control_pause_blue.png"), wxBITMAP_TYPE_PNG)); - } - $buttons_sizer->Add($btn, 0, wxBOTTOM, 2); - - EVT_BUTTON($self, $btn, sub { - wxTheApp->CallAfter(sub { - $self->on_pause_print->($job); - }); - }); - } - { - my $btn = $self->{btn_resume} = Wx::Button->new($self, -1, "Resume", wxDefaultPosition, wxDefaultSize, - $button_style); - $btn->SetFont($Slic3r::GUI::small_font); - if (!$job->printing || !$job->paused) { - $btn->Hide; - } - if ($Slic3r::GUI::have_button_icons) { - $btn->SetBitmap(Wx::Bitmap->new($Slic3r::var->("control_play.png"), wxBITMAP_TYPE_PNG)); - $btn->SetBitmapCurrent(Wx::Bitmap->new($Slic3r::var->("control_play_blue.png"), wxBITMAP_TYPE_PNG)); - } - $buttons_sizer->Add($btn, 0, wxBOTTOM, 2); - - EVT_BUTTON($self, $btn, sub { - wxTheApp->CallAfter(sub { - $self->on_resume_print->($job); - }); - }); - } - { - my $btn = $self->{btn_abort} = Wx::Button->new($self, -1, "Abort", wxDefaultPosition, wxDefaultSize, - $button_style); - $btn->SetFont($Slic3r::GUI::small_font); - if (!$job->printing) { - $btn->Hide; - } - if ($Slic3r::GUI::have_button_icons) { - $btn->SetBitmap(Wx::Bitmap->new($Slic3r::var->("control_stop.png"), wxBITMAP_TYPE_PNG)); - $btn->SetBitmapCurrent(Wx::Bitmap->new($Slic3r::var->("control_stop_blue.png"), wxBITMAP_TYPE_PNG)); - } - $buttons_sizer->Add($btn, 0, wxBOTTOM, 2); - - EVT_BUTTON($self, $btn, sub { - wxTheApp->CallAfter(sub { - $self->on_abort_print->($job); - }); - }); - } - - my $sizer = Wx::BoxSizer->new(wxHORIZONTAL); - $sizer->Add($left_sizer, 1, wxEXPAND | wxALL, 6); - $sizer->Add($buttons_sizer, 0, wxEXPAND | wxALL, 6); - $self->SetSizer($sizer); - - # set-up the timer that changes the job name color while printing - if ($self->job->printing && !$self->job->paused) { - my $timer_id = &Wx::NewId(); - $self->blink_timer(Wx::Timer->new($self, $timer_id)); - my $blink = 0; # closure - my $colour = Wx::Colour->new(0, 190, 0); - EVT_TIMER($self, $timer_id, sub { - my ($self, $event) = @_; - - $self->{job_name_textctrl}->SetForegroundColour($blink ? Wx::wxBLACK : $colour); - $blink = !$blink; - }); - $self->blink_timer->Start(1000, wxTIMER_CONTINUOUS); - } - - return $self; -} - -sub enable_print { - my ($self) = @_; - - if (!$self->job->printing) { - $self->{btn_print}->Show; - } - $self->Layout; -} - -sub Destroy { - my ($self) = @_; - - # There's a gap between the time Perl destroys the wxPanel object and - # the blink_timer member, so the wxTimer might still fire an event which - # isn't handled properly, causing a crash. So we ensure that blink_timer - # is stopped before we destroy the wxPanel. - $self->blink_timer->Stop if $self->blink_timer; - return $self->SUPER::Destroy; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/MainFrame.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/MainFrame.pm deleted file mode 100644 index 629334c3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/MainFrame.pm +++ /dev/null @@ -1,744 +0,0 @@ -# The main frame, the parent of all. - -package Slic3r::GUI::MainFrame; -use strict; -use warnings; -use utf8; - -use File::Basename qw(basename dirname); -use List::Util qw(min); -use Slic3r::Geometry qw(X Y Z); -use Wx qw(:frame :bitmap :id :misc :panel :sizer :menu :dialog :filedialog - :font :icon :aui wxTheApp); -use Wx::AUI; -use Wx::Event qw(EVT_CLOSE EVT_AUINOTEBOOK_PAGE_CHANGED EVT_AUINOTEBOOK_PAGE_CLOSE); -use base 'Wx::Frame'; - -our $qs_last_input_file; -our $qs_last_output_file; -our $last_config; - -sub new { - my ($class) = @_; - - my $self = $class->SUPER::new(undef, -1, 'Slic3r', wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE); - if ($^O eq 'MSWin32') { - $self->SetIcon(Wx::Icon->new($Slic3r::var->("Slic3r.ico"), wxBITMAP_TYPE_ICO)); - } else { - $self->SetIcon(Wx::Icon->new($Slic3r::var->("Slic3r_128px.png"), wxBITMAP_TYPE_PNG)); - } - - $self->{loaded} = 0; - $self->{preset_editor_tabs} = {}; # group => panel - - # initialize tabpanel and menubar - $self->_init_tabpanel; - $self->_init_menubar; - - # set default tooltip timer in msec - # SetAutoPop supposedly accepts long integers but some bug doesn't allow for larger values - # (SetAutoPop is not available on GTK.) - eval { Wx::ToolTip::SetAutoPop(32767) }; - - # initialize status bar - $self->{statusbar} = Slic3r::GUI::ProgressStatusBar->new($self, -1); - $self->{statusbar}->SetStatusText("Version $Slic3r::VERSION - Remember to check for updates at http://slic3r.org/"); - $self->SetStatusBar($self->{statusbar}); - - $self->{loaded} = 1; - - # initialize layout - { - my $sizer = Wx::BoxSizer->new(wxVERTICAL); - $sizer->Add($self->{tabpanel}, 1, wxEXPAND); - $sizer->SetSizeHints($self); - $self->SetSizer($sizer); - $self->Fit; - $self->SetMinSize([760, 490]); - $self->SetSize($self->GetMinSize); - wxTheApp->restore_window_pos($self, "main_frame"); - $self->Show; - $self->Layout; - } - - # declare events - EVT_CLOSE($self, sub { - my (undef, $event) = @_; - - if ($event->CanVeto) { - if (!$self->{plater}->prompt_unsaved_changes) { - $event->Veto; - return; - } - - if ($self->{controller} && $self->{controller}->printing) { - my $confirm = Wx::MessageDialog->new($self, "You are currently printing. Do you want to stop printing and continue anyway?", - 'Unfinished Print', wxICON_QUESTION | wxYES_NO | wxNO_DEFAULT); - if ($confirm->ShowModal == wxID_NO) { - $event->Veto; - return; - } - } - } - - # save window size - wxTheApp->save_window_pos($self, "main_frame"); - - # propagate event - $event->Skip; - }); - - return $self; -} - -sub _init_tabpanel { - my ($self) = @_; - - $self->{tabpanel} = my $panel = Wx::AuiNotebook->new($self, -1, wxDefaultPosition, wxDefaultSize, wxAUI_NB_TOP); - EVT_AUINOTEBOOK_PAGE_CHANGED($self, $self->{tabpanel}, sub { - my $panel = $self->{tabpanel}->GetPage($self->{tabpanel}->GetSelection); - $panel->OnActivate if $panel->can('OnActivate'); - if ($self->{tabpanel}->GetSelection > 1) { - $self->{tabpanel}->SetWindowStyle($self->{tabpanel}->GetWindowStyleFlag | wxAUI_NB_CLOSE_ON_ACTIVE_TAB); - } elsif(($Slic3r::GUI::Settings->{_}{show_host} == 0) && ($self->{tabpanel}->GetSelection == 1)){ - $self->{tabpanel}->SetWindowStyle($self->{tabpanel}->GetWindowStyleFlag | wxAUI_NB_CLOSE_ON_ACTIVE_TAB); - } else { - $self->{tabpanel}->SetWindowStyle($self->{tabpanel}->GetWindowStyleFlag & ~wxAUI_NB_CLOSE_ON_ACTIVE_TAB); - } - }); - EVT_AUINOTEBOOK_PAGE_CLOSE($self, $self->{tabpanel}, sub { - my $panel = $self->{tabpanel}->GetPage($self->{tabpanel}->GetSelection); - if ($panel->isa('Slic3r::GUI::PresetEditor')) { - delete $self->{preset_editor_tabs}{$panel->name}; - } - wxTheApp->CallAfter(sub { - $self->{tabpanel}->SetSelection(0); - }); - }); - - $panel->AddPage($self->{plater} = Slic3r::GUI::Plater->new($panel), "Plater"); - $panel->AddPage($self->{controller} = Slic3r::GUI::Controller->new($panel), "Controller") - if ($Slic3r::GUI::Settings->{_}{show_host}); -} - -sub _init_menubar { - my ($self) = @_; - - # File menu - my $fileMenu = Wx::Menu->new; - { - wxTheApp->append_menu_item($fileMenu, "Open STL/OBJ/AMF/3MF…\tCtrl+O", 'Open a model', sub { - $self->{plater}->add if $self->{plater}; - }, undef, 'brick_add.png'); - wxTheApp->append_menu_item($fileMenu, "Open 2.5D TIN mesh…", 'Import a 2.5D TIN mesh', sub { - $self->{plater}->add_tin if $self->{plater}; - }, undef, 'map_add.png'); - $fileMenu->AppendSeparator(); - wxTheApp->append_menu_item($fileMenu, "&Load Config…\tCtrl+L", 'Load exported configuration file', sub { - $self->load_config_file; - }, undef, 'plugin_add.png'); - wxTheApp->append_menu_item($fileMenu, "&Export Config…\tCtrl+E", 'Export current configuration to file', sub { - $self->export_config; - }, undef, 'plugin_go.png'); - wxTheApp->append_menu_item($fileMenu, "&Load Config Bundle…", 'Load presets from a bundle', sub { - $self->load_configbundle; - }, undef, 'lorry_add.png'); - wxTheApp->append_menu_item($fileMenu, "&Export Config Bundle…", 'Export all presets to file', sub { - $self->export_configbundle; - }, undef, 'lorry_go.png'); - wxTheApp->append_menu_item($fileMenu, "&Import Config from GCode-File…", 'Load presets from a created GCode-File', sub { - $self->import_fromGCode; - }, undef, 'lorry_import.png'); - $fileMenu->AppendSeparator(); - my $repeat; - wxTheApp->append_menu_item($fileMenu, "Q&uick Slice…\tCtrl+U", 'Slice file', sub { - wxTheApp->CallAfter(sub { - $self->quick_slice; - $repeat->Enable(defined $Slic3r::GUI::MainFrame::last_input_file); - }); - }, undef, 'cog_go.png'); - wxTheApp->append_menu_item($fileMenu, "Quick Slice and Save &As…\tCtrl+Alt+U", 'Slice file and save as', sub { - wxTheApp->CallAfter(sub { - $self->quick_slice(save_as => 1); - $repeat->Enable(defined $Slic3r::GUI::MainFrame::last_input_file); - }); - }, undef, 'cog_go.png'); - $repeat = wxTheApp->append_menu_item($fileMenu, "&Repeat Last Quick Slice\tCtrl+Shift+U", 'Repeat last quick slice', sub { - wxTheApp->CallAfter(sub { - $self->quick_slice(reslice => 1); - }); - }, undef, 'cog_go.png'); - $repeat->Enable(0); - $fileMenu->AppendSeparator(); - wxTheApp->append_menu_item($fileMenu, "Slice to SV&G…\tCtrl+G", 'Slice file to SVG', sub { - $self->quick_slice(save_as => 1, export_svg => 1); - }, undef, 'shape_handles.png'); - $fileMenu->AppendSeparator(); - wxTheApp->append_menu_item($fileMenu, "Repair STL file…", 'Automatically repair an STL file', sub { - $self->repair_stl; - }, undef, 'wrench.png'); - $fileMenu->AppendSeparator(); - # Cmd+, is standard on OS X - what about other operating systems? - wxTheApp->append_menu_item($fileMenu, "Preferences…\tCtrl+,", 'Application preferences', sub { - Slic3r::GUI::Preferences->new($self)->ShowModal; - }, wxID_PREFERENCES); - $fileMenu->AppendSeparator(); - wxTheApp->append_menu_item($fileMenu, "&Quit", 'Quit Slic3r', sub { - $self->Close(0); - }, wxID_EXIT); - } - - # Plater menu - { - my $plater = $self->{plater}; - - $self->{plater_menu} = Wx::Menu->new; - { - my $selectMenu = $self->{plater_select_menu} = Wx::Menu->new; - wxTheApp->append_submenu($self->{plater_menu}, "Select", 'Select an object in the plater', $selectMenu, undef, 'brick.png'); - } - wxTheApp->append_menu_item($self->{plater_menu}, "Undo\tCtrl+Z", 'Undo', sub { - $plater->undo; - }, undef, 'arrow_undo.png'); - wxTheApp->append_menu_item($self->{plater_menu}, "Redo\tCtrl+Shift+Z", 'Redo', sub { - $plater->redo; - }, undef, 'arrow_redo.png'); - wxTheApp->append_menu_item($self->{plater_menu}, "Select Next Object\tCtrl+Right", 'Select Next Object in the plater', sub { - $plater->select_next; - }, undef, 'arrow_right.png'); - wxTheApp->append_menu_item($self->{plater_menu}, "Select Prev Object\tCtrl+Left", 'Select Previous Object in the plater', sub { - $plater->select_prev; - }, undef, 'arrow_left.png'); - wxTheApp->append_menu_item($self->{plater_menu}, "Zoom In\tCtrl+up", 'Zoom In', - sub { $self->{plater}->zoom('in') }, undef, 'zoom_in.png'); - wxTheApp->append_menu_item($self->{plater_menu}, "Zoom Out\tCtrl+down", 'Zoom Out', - sub { $self->{plater}->zoom('out') }, undef, 'zoom_out.png'); - $self->{plater_menu}->AppendSeparator(); - wxTheApp->append_menu_item($self->{plater_menu}, "Export G-code...", 'Export current plate as G-code', sub { - $plater->export_gcode; - }, undef, 'cog_go.png'); - wxTheApp->append_menu_item($self->{plater_menu}, "Export plate as STL...", 'Export current plate as STL', sub { - $plater->export_stl; - }, undef, 'brick_go.png'); - wxTheApp->append_menu_item($self->{plater_menu}, "Export plate with modifiers as AMF...", 'Export current plate as AMF, including all modifier meshes', sub { - $plater->export_amf; - }, undef, 'brick_go.png'); - wxTheApp->append_menu_item($self->{plater_menu}, "Export plate with modifiers as 3MF...", 'Export current plate as 3MF, including all modifier meshes', sub { - $plater->export_tmf; - }, undef, 'brick_go.png'); - $self->{object_menu} = $self->{plater}->object_menu; - $self->on_plater_object_list_changed(0); - $self->on_plater_selection_changed(0); - } - - # Settings menu - my $settingsMenu = Wx::Menu->new; - { - wxTheApp->append_menu_item($settingsMenu, "P&rint Settings…\tCtrl+1", 'Show the print settings editor', sub { - $self->{plater}->show_preset_editor('print'); - }, undef, 'cog.png'); - wxTheApp->append_menu_item($settingsMenu, "&Filament Settings…\tCtrl+2", 'Show the filament settings editor', sub { - $self->{plater}->show_preset_editor('filament'); - }, undef, 'spool.png'); - wxTheApp->append_menu_item($settingsMenu, "Print&er Settings…\tCtrl+3", 'Show the printer settings editor', sub { - $self->{plater}->show_preset_editor('printer'); - }, undef, 'printer_empty.png'); - } - - # View menu - { - $self->{viewMenu} = Wx::Menu->new; - wxTheApp->append_menu_item($self->{viewMenu}, "Top\tCtrl+4" , 'Top View' , sub { $self->select_view('top' ); }); - wxTheApp->append_menu_item($self->{viewMenu}, "Bottom\tCtrl+5" , 'Bottom View' , sub { $self->select_view('bottom' ); }); - wxTheApp->append_menu_item($self->{viewMenu}, "Left\tCtrl+6" , 'Left View' , sub { $self->select_view('left' ); }); - wxTheApp->append_menu_item($self->{viewMenu}, "Right\tCtrl+7" , 'Right View' , sub { $self->select_view('right' ); }); - wxTheApp->append_menu_item($self->{viewMenu}, "Front\tCtrl+8" , 'Front View' , sub { $self->select_view('front' ); }); - wxTheApp->append_menu_item($self->{viewMenu}, "Back\tCtrl+9" , 'Back View' , sub { $self->select_view('back' ); }); - wxTheApp->append_menu_item($self->{viewMenu}, "Diagonal\tCtrl+0", 'Diagonal View', sub { $self->select_view('diagonal'); }); - $self->{viewMenu}->AppendSeparator(); - $self->{color_toolpaths_by_role} = wxTheApp->append_menu_item($self->{viewMenu}, - "Color Toolpaths by Role", - 'Color toolpaths according to perimeter/infill/support material', - sub { - $Slic3r::GUI::Settings->{_}{color_toolpaths_by} = 'role'; - wxTheApp->save_settings; - $self->{plater}{preview3D}->reload_print; - }, - undef, undef, wxITEM_RADIO - ); - $self->{color_toolpaths_by_extruder} = wxTheApp->append_menu_item($self->{viewMenu}, - "Color Toolpaths by Filament", - 'Color toolpaths using the configured extruder/filament color', - sub { - $Slic3r::GUI::Settings->{_}{color_toolpaths_by} = 'extruder'; - wxTheApp->save_settings; - $self->{plater}{preview3D}->reload_print; - }, - undef, undef, wxITEM_RADIO - ); - if ($Slic3r::GUI::Settings->{_}{color_toolpaths_by} eq 'role') { - $self->{color_toolpaths_by_role}->Check(1); - } else { - $self->{color_toolpaths_by_extruder}->Check(1); - } - } - - # Window menu - my $windowMenu = Wx::Menu->new; - { - wxTheApp->append_menu_item($windowMenu, "&Plater\tCtrl+T", 'Show the plater', sub { - $self->select_tab(0); - }, undef, 'application_view_tile.png'); - wxTheApp->append_menu_item($windowMenu, "&Controller\tCtrl+Y", 'Show the printer controller', sub { - $self->select_tab(1); - }, undef, 'printer_empty.png'); - wxTheApp->append_menu_item($windowMenu, "DLP Projector…\tCtrl+P", 'Open projector window for DLP printing', sub { - $self->{plater}->pause_background_process; - $self->{slaconfig} = Slic3r::Config->new; - Slic3r::GUI::SLAPrintOptions->new($self)->ShowModal; - $self->{plater}->resume_background_process; - }, undef, 'film.png'); - } - - # Help menu - my $helpMenu = Wx::Menu->new; - { - wxTheApp->append_menu_item($helpMenu, "&Configuration $Slic3r::GUI::ConfigWizard::wizard…", "Run Configuration $Slic3r::GUI::ConfigWizard::wizard", sub { - $self->config_wizard; - }); - $helpMenu->AppendSeparator(); - wxTheApp->append_menu_item($helpMenu, "Slic3r &Website", 'Open the Slic3r website in your browser', sub { - Wx::LaunchDefaultBrowser('http://slic3r.org/'); - }); - my $versioncheck = wxTheApp->append_menu_item($helpMenu, "Check for &Updates...", 'Check for new Slic3r versions', sub { - wxTheApp->check_version(1); - }); - $versioncheck->Enable(wxTheApp->have_version_check); - wxTheApp->append_menu_item($helpMenu, "Slic3r &Manual", 'Open the Slic3r manual in your browser', sub { - Wx::LaunchDefaultBrowser('http://manual.slic3r.org/'); - }); - $helpMenu->AppendSeparator(); - wxTheApp->append_menu_item($helpMenu, "&About Slic3r", 'Show about dialog', sub { - wxTheApp->about; - }); - } - - # menubar - # assign menubar to frame after appending items, otherwise special items - # will not be handled correctly - { - my $menubar = Wx::MenuBar->new; - $menubar->Append($fileMenu, "&File"); - $menubar->Append($self->{plater_menu}, "&Plater") if $self->{plater_menu}; - $menubar->Append($self->{object_menu}, "&Object") if $self->{object_menu}; - $menubar->Append($settingsMenu, "&Settings"); - $menubar->Append($self->{viewMenu}, "&View") if $self->{viewMenu}; - $menubar->Append($windowMenu, "&Window"); - $menubar->Append($helpMenu, "&Help"); - $self->SetMenuBar($menubar); - } -} - -sub is_loaded { - my ($self) = @_; - return $self->{loaded}; -} - -sub on_undo_redo_stacks_changed { - my $self = shift; - # Enable undo or redo if they have operations in their stack. - $self->{plater_menu}->Enable($self->{plater_menu}->FindItem("Undo\tCtrl+Z"), $#{$self->{plater}->{undo_stack}} < 0 ? 0 : 1); - $self->{plater_menu}->Enable( $self->{plater_menu}->FindItem("Redo\tCtrl+Shift+Z"), $#{$self->{plater}->{redo_stack}} < 0 ? 0 : 1); -} - -sub on_plater_object_list_changed { - my ($self, $have_objects) = @_; - - return if !defined $self->{plater_menu}; - $self->{plater_menu}->Enable($_->GetId, $have_objects) - for $self->{plater_menu}->GetMenuItems; - $self->on_undo_redo_stacks_changed; -} - -sub on_plater_selection_changed { - my ($self, $have_selection) = @_; - - return if !defined $self->{object_menu}; - $self->{object_menu}->Enable($_->GetId, $have_selection) - for $self->{object_menu}->GetMenuItems; - $self->on_undo_redo_stacks_changed; - -} - -sub quick_slice { - my $self = shift; - my %params = @_; - - my $progress_dialog; - eval { - # validate configuration - my $config = $self->{plater}->config; - $config->validate; - - # select input file - my $input_file; - my $dir = $Slic3r::GUI::Settings->{recent}{skein_directory} || $Slic3r::GUI::Settings->{recent}{config_directory} || ''; - if (!$params{reslice}) { - my $dialog = Wx::FileDialog->new($self, 'Choose a file to slice (STL/OBJ/AMF/3MF):', $dir, "", &Slic3r::GUI::MODEL_WILDCARD, wxFD_OPEN | wxFD_FILE_MUST_EXIST); - if ($dialog->ShowModal != wxID_OK) { - $dialog->Destroy; - return; - } - $input_file = Slic3r::decode_path($dialog->GetPaths); - $dialog->Destroy; - $qs_last_input_file = $input_file unless $params{export_svg}; - } else { - if (!defined $qs_last_input_file) { - Wx::MessageDialog->new($self, "No previously sliced file.", - 'Error', wxICON_ERROR | wxOK)->ShowModal(); - return; - } - if (! -e $qs_last_input_file) { - Wx::MessageDialog->new($self, "Previously sliced file ($qs_last_input_file) not found.", - 'File Not Found', wxICON_ERROR | wxOK)->ShowModal(); - return; - } - $input_file = $qs_last_input_file; - } - my $input_file_basename = basename($input_file); - $Slic3r::GUI::Settings->{recent}{skein_directory} = dirname($input_file); - wxTheApp->save_settings; - - my $print_center; - { - my $bed_shape = Slic3r::Polygon->new_scale(@{$config->bed_shape}); - $print_center = Slic3r::Pointf->new_unscale(@{$bed_shape->bounding_box->center}); - } - - my $sprint = Slic3r::Print::Simple->new( - print_center => $print_center, - status_cb => sub { - my ($percent, $message) = @_; - return if &Wx::wxVERSION_STRING !~ / 2\.(8\.|9\.[2-9])/; - $progress_dialog->Update($percent, "$message…"); - }, - ); - - # keep model around - my $model = Slic3r::Model->read_from_file($input_file); - - $sprint->apply_config($config); - $sprint->set_model($model); - # FIXME: populate placeholders (preset names etc.) - - # select output file - my $output_file; - if ($params{reslice}) { - $output_file = $qs_last_output_file if defined $qs_last_output_file; - } elsif ($params{save_as}) { - $output_file = $sprint->output_filepath; - $output_file =~ s/\.gcode$/.svg/i if $params{export_svg}; - my $dlg = Wx::FileDialog->new($self, 'Save ' . ($params{export_svg} ? 'SVG' : 'G-code') . ' file as:', - wxTheApp->output_path(dirname($output_file)), - basename($output_file), $params{export_svg} ? &Slic3r::GUI::FILE_WILDCARDS->{svg} : &Slic3r::GUI::FILE_WILDCARDS->{gcode}, wxFD_SAVE | wxFD_OVERWRITE_PROMPT); - if ($dlg->ShowModal != wxID_OK) { - $dlg->Destroy; - return; - } - $output_file = Slic3r::decode_path($dlg->GetPath); - $qs_last_output_file = $output_file unless $params{export_svg}; - $Slic3r::GUI::Settings->{_}{last_output_path} = dirname($output_file); - wxTheApp->save_settings; - $dlg->Destroy; - } - - # show processbar dialog - $progress_dialog = Wx::ProgressDialog->new('Slicing…', "Processing $input_file_basename…", - 100, $self, 0); - $progress_dialog->Pulse; - - { - my @warnings = (); - local $SIG{__WARN__} = sub { push @warnings, $_[0] }; - - $sprint->output_file($output_file); - if ($params{export_svg}) { - $sprint->export_svg; - } else { - $sprint->export_gcode; - } - $sprint->status_cb(undef); - Slic3r::GUI::warning_catcher($self)->($_) for @warnings; - } - $progress_dialog->Destroy; - undef $progress_dialog; - - my $message = "$input_file_basename was successfully sliced."; - wxTheApp->notify($message); - Wx::MessageDialog->new($self, $message, 'Slicing Done!', - wxOK | wxICON_INFORMATION)->ShowModal; - }; - Slic3r::GUI::catch_error($self, sub { $progress_dialog->Destroy if $progress_dialog }); -} - -sub repair_stl { - my $self = shift; - - my $input_file; - { - my $dir = $Slic3r::GUI::Settings->{recent}{skein_directory} || $Slic3r::GUI::Settings->{recent}{config_directory} || ''; - my $dialog = Wx::FileDialog->new($self, 'Select the STL file to repair:', $dir, "", &Slic3r::GUI::FILE_WILDCARDS->{stl}, wxFD_OPEN | wxFD_FILE_MUST_EXIST); - if ($dialog->ShowModal != wxID_OK) { - $dialog->Destroy; - return; - } - $input_file = Slic3r::decode_path($dialog->GetPaths); - $dialog->Destroy; - } - - my $output_file = $input_file; - { - $output_file =~ s/\.stl$/_fixed.obj/i; - my $dlg = Wx::FileDialog->new($self, "Save OBJ file (less prone to coordinate errors than STL) as:", dirname($output_file), - basename($output_file), &Slic3r::GUI::FILE_WILDCARDS->{obj}, wxFD_SAVE | wxFD_OVERWRITE_PROMPT); - if ($dlg->ShowModal != wxID_OK) { - $dlg->Destroy; - return undef; - } - $output_file = Slic3r::decode_path($dlg->GetPath); - $dlg->Destroy; - } - - my $tmesh = Slic3r::TriangleMesh->new; - $tmesh->ReadSTLFile($input_file); - $tmesh->repair; - $tmesh->WriteOBJFile($output_file); - Slic3r::GUI::show_info($self, "Your file was repaired.", "Repair"); -} - -sub export_config { - my $self = shift; - - my $config = $self->{plater}->config; - eval { - # validate configuration - $config->validate; - }; - Slic3r::GUI::catch_error($self) and return; - - my $dir = $last_config ? dirname($last_config) : $Slic3r::GUI::Settings->{recent}{config_directory} || $Slic3r::GUI::Settings->{recent}{skein_directory} || ''; - my $filename = $last_config ? basename($last_config) : "config.ini"; - my $dlg = Wx::FileDialog->new($self, 'Save configuration as:', $dir, $filename, - &Slic3r::GUI::FILE_WILDCARDS->{ini}, wxFD_SAVE | wxFD_OVERWRITE_PROMPT); - if ($dlg->ShowModal == wxID_OK) { - my $file = Slic3r::decode_path($dlg->GetPath); - $Slic3r::GUI::Settings->{recent}{config_directory} = dirname($file); - wxTheApp->save_settings; - $last_config = $file; - $config->save($file); - } - $dlg->Destroy; -} - -sub load_config_file { - my $self = shift; - my ($file) = @_; - - if (!$file) { - my $dir = $last_config ? dirname($last_config) : $Slic3r::GUI::Settings->{recent}{config_directory} || $Slic3r::GUI::Settings->{recent}{skein_directory} || ''; - my $dlg = Wx::FileDialog->new($self, 'Select configuration to load:', $dir, "config.ini", - &Slic3r::GUI::FILE_WILDCARDS->{ini}, wxFD_OPEN | wxFD_FILE_MUST_EXIST); - return unless $dlg->ShowModal == wxID_OK; - $file = Slic3r::decode_path($dlg->GetPaths); - $dlg->Destroy; - } - $Slic3r::GUI::Settings->{recent}{config_directory} = dirname($file); - wxTheApp->save_settings; - $last_config = $file; - - my $name = wxTheApp->add_external_preset($file); - $self->{plater}->load_presets; - $self->{plater}->select_preset_by_name($name, $_) for qw(print filament printer); -} - -sub import_fromGCode{ # import configuration from gcode file sliced with Slic3r - my ($self, $file) = @_; - - if (!$file) { - my $dir = $last_config ? dirname($last_config) : $Slic3r::GUI::Settings->{recent}{config_directory} || $Slic3r::GUI::Settings->{recent}{skein_directory} || ''; - my $dlg = Wx::FileDialog->new($self, 'Select GCode File to load config from:', $dir, &Slic3r::GUI::FILE_WILDCARDS->{gcode}, &Slic3r::GUI::FILE_WILDCARDS->{gcode}, wxFD_OPEN | wxFD_FILE_MUST_EXIST); - return unless $dlg->ShowModal == wxID_OK; - $file = Slic3r::decode_path($dlg->GetPaths); - $dlg->Destroy; - } - - $Slic3r::GUI::Settings->{recent}{config_directory} = dirname($file); - wxTheApp->save_settings; - - # open $file and read the first line to make sure it was sliced using Slic3r - open(FILEFIRSTLINE, '<', "$file") - or die( "Can't open file to import gcode: $!" ); - my $firstLine = ; - close (FILEFIRSTLINE); - - # Exit, if file was not sliced using Slic3r - if( index($firstLine, "generated by Slic3r") < 0){ - return; - } - - # if file sliced by Slic3r, read it - open(GFILE, "$file") - or die( "Can't open file to import gcode: $!" ); - my @lines = reverse ; # read the file from the back - - my $line; - my @settinglines=""; - foreach $line (@lines) { - # if line is empty, we're done -> EOF - if (substr($line, 0, 1) eq ";"){ - $line = substr($line,2, length($line)-2); - push @settinglines, $line; - } else { - last; - } - } - - close (GFILE); - - # (over-) write config to temp-file -> - my $tempfile = substr $file, 0, rindex( $file, q{.} ); - $tempfile="$tempfile.ini"; - - open (TEMPFILESETTINGS, "> $tempfile"); - print TEMPFILESETTINGS @settinglines; - close (TEMPFILESETTINGS); - - $self->load_config_file($tempfile); - - # todo: do we want to delete the file after load_config? - -} - -sub export_configbundle { - my $self = shift; - - eval { - # validate current configuration in case it's dirty - $self->{plater}->config->validate; - }; - Slic3r::GUI::catch_error($self) and return; - - my $dir = $last_config ? dirname($last_config) : $Slic3r::GUI::Settings->{recent}{config_directory} || $Slic3r::GUI::Settings->{recent}{skein_directory} || ''; - my $filename = "Slic3r_config_bundle.ini"; - my $dlg = Wx::FileDialog->new($self, 'Save presets bundle as:', $dir, $filename, - &Slic3r::GUI::FILE_WILDCARDS->{ini}, wxFD_SAVE | wxFD_OVERWRITE_PROMPT); - if ($dlg->ShowModal == wxID_OK) { - my $file = Slic3r::decode_path($dlg->GetPath); - $Slic3r::GUI::Settings->{recent}{config_directory} = dirname($file); - wxTheApp->save_settings; - - # leave default category empty to prevent the bundle from being parsed as a normal config file - my $ini = { _ => {} }; - $ini->{settings}{$_} = $Slic3r::GUI::Settings->{_}{$_} for qw(autocenter); - $ini->{presets} = $Slic3r::GUI::Settings->{presets}; - - foreach my $section (qw(print filament printer)) { - my @presets = @{wxTheApp->presets->{$section}}; - foreach my $preset (@presets) { - next if $preset->default || $preset->external; - $ini->{"$section:" . $preset->name} = $preset->load_config->as_ini->{_}; - } - } - - Slic3r::Config->write_ini($file, $ini); - } - $dlg->Destroy; -} - -sub load_configbundle { - my ($self, $file, $skip_no_id) = @_; - - if (!$file) { - my $dir = $last_config ? dirname($last_config) : $Slic3r::GUI::Settings->{recent}{config_directory} || $Slic3r::GUI::Settings->{recent}{skein_directory} || ''; - my $dlg = Wx::FileDialog->new($self, 'Select configuration to load:', $dir, "config.ini", - &Slic3r::GUI::FILE_WILDCARDS->{ini}, wxFD_OPEN | wxFD_FILE_MUST_EXIST); - return unless $dlg->ShowModal == wxID_OK; - $file = Slic3r::decode_path($dlg->GetPaths); - $dlg->Destroy; - } - - $Slic3r::GUI::Settings->{recent}{config_directory} = dirname($file); - wxTheApp->save_settings; - - # load .ini file - my $ini = Slic3r::Config->read_ini($file); - - if ($ini->{settings}) { - $Slic3r::GUI::Settings->{_}{$_} = $ini->{settings}{$_} for keys %{$ini->{settings}}; - wxTheApp->save_settings; - } - if ($ini->{presets}) { - $Slic3r::GUI::Settings->{presets} = $ini->{presets}; - wxTheApp->save_settings; - } - my $imported = 0; - INI_BLOCK: foreach my $ini_category (sort keys %$ini) { - next unless $ini_category =~ /^(print|filament|printer):(.+)$/; - my ($section, $preset_name) = ($1, $2); - my $config = Slic3r::Config->load_ini_hash($ini->{$ini_category}); - next if $skip_no_id && !$config->get($section . "_settings_id"); - - { - my @current_presets = @{wxTheApp->presets->{$section}}; - my %current_ids = map { $_ => 1 } - grep $_, - map $_->dirty_config->get($section . "_settings_id"), - @current_presets; - next INI_BLOCK if exists $current_ids{$config->get($section . "_settings_id")}; - } - - $config->save(sprintf "$Slic3r::GUI::datadir/%s/%s.ini", $section, $preset_name); - Slic3r::debugf "Imported %s preset %s\n", $section, $preset_name; - $imported++; - } - $self->{plater}->load_presets; - - return if !$imported; - - my $message = sprintf "%d presets successfully imported.", $imported; - Slic3r::GUI::show_info($self, $message); -} - -sub load_config { - my ($self, $config) = @_; - - $self->{plater}->load_config($config); -} - -sub config_wizard { - my $self = shift; - - if (my $config = Slic3r::GUI::ConfigWizard->new($self)->run) { - foreach my $group (qw(print filament printer)) { - my $name = 'My Settings'; - $config->save(sprintf "$Slic3r::GUI::datadir/%s/%s.ini", $group, $name); - $Slic3r::GUI::Settings->{presets}{$group} = "$name.ini"; - $self->{plater}->load_presets; - $self->{plater}->select_preset_by_name($name, $group); - } - } -} - -sub select_tab { - my ($self, $tab) = @_; - $self->{tabpanel}->SetSelection($tab); -} - -# Set a camera direction, zoom to all objects. -sub select_view { - my ($self, $direction) = @_; - - $self->{plater}->select_view($direction); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Notifier.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Notifier.pm deleted file mode 100644 index eb548d01..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Notifier.pm +++ /dev/null @@ -1,46 +0,0 @@ -# Notify about the end of slicing. -# The notifications are sent out using the Growl protocol if installed, and using DBus XWindow protocol. - -package Slic3r::GUI::Notifier; -use Moo; - -has 'growler' => (is => 'rw'); - -my $icon = $Slic3r::var->("Slic3r.png"); - -sub BUILD { - my ($self) = @_; - - if (eval 'use Growl::GNTP; 1') { - # register with growl - eval { - $self->growler(Growl::GNTP->new(AppName => 'Slic3r', AppIcon => $icon)); - $self->growler->register([{Name => 'SKEIN_DONE', DisplayName => 'Slicing Done'}]); - }; - # if register() fails (for example because of a timeout), disable growler at all - $self->growler(undef) if $@; - } -} - -sub notify { - my ($self, $message) = @_; - my $title = 'Slicing Done!'; - - eval { - $self->growler->notify(Event => 'SKEIN_DONE', Title => $title, Message => $message) - if $self->growler; - }; - # Net::DBus is broken in multithreaded environment - if (0 && eval 'use Net::DBus; 1') { - eval { - my $session = Net::DBus->session; - my $serv = $session->get_service('org.freedesktop.Notifications'); - my $notifier = $serv->get_object('/org/freedesktop/Notifications', - 'org.freedesktop.Notifications'); - $notifier->Notify('Slic3r', 0, $icon, $title, $message, [], {}, -1); - undef $Net::DBus::bus_session; - }; - } -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/OptionsGroup.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/OptionsGroup.pm deleted file mode 100644 index 03a42ed0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/OptionsGroup.pm +++ /dev/null @@ -1,508 +0,0 @@ -# A dialog group object. Used by the PresetEditor, Preferences dialog, ManualControlDialog etc. - -package Slic3r::GUI::OptionsGroup; -use Moo; - -use List::Util qw(first); -use Wx qw(:combobox :font :misc :sizer :systemsettings :textctrl wxTheApp); -use Wx::Event qw(EVT_CHECKBOX EVT_COMBOBOX EVT_SPINCTRL EVT_TEXT EVT_KILL_FOCUS EVT_SLIDER); - -has 'parent' => (is => 'ro', required => 1); -has 'title' => (is => 'ro', required => 1); -has 'on_change' => (is => 'rw', default => sub { sub {} }); -has 'staticbox' => (is => 'ro', default => sub { 1 }); -has 'label_width' => (is => 'rw', default => sub { 180 }); -has 'extra_column' => (is => 'rw', default => sub { undef }); -has 'label_font' => (is => 'rw'); -has 'sidetext_font' => (is => 'rw', default => sub { Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT) }); -has 'sizer' => (is => 'rw'); -has '_disabled' => (is => 'rw', default => sub { 0 }); -has '_grid_sizer' => (is => 'rw'); -has '_options' => (is => 'ro', default => sub { {} }); -has '_fields' => (is => 'ro', default => sub { {} }); - -sub BUILD { - my $self = shift; - - if ($self->staticbox) { - my $box = Wx::StaticBox->new($self->parent, -1, $self->title); - $self->sizer(Wx::StaticBoxSizer->new($box, wxVERTICAL)); - } else { - $self->sizer(Wx::BoxSizer->new(wxVERTICAL)); - } - - my $num_columns = 1; - ++$num_columns if $self->label_width != 0; - ++$num_columns if $self->extra_column; - $self->_grid_sizer(Wx::FlexGridSizer->new(0, $num_columns, 0, 0)); - $self->_grid_sizer->SetFlexibleDirection(wxHORIZONTAL); - $self->_grid_sizer->AddGrowableCol($self->label_width != 0); - - # TODO: border size may be related to wxWidgets 2.8.x vs. 2.9.x instead of wxMAC specific - $self->sizer->Add($self->_grid_sizer, 0, wxEXPAND | wxALL, &Wx::wxMAC ? 0 : 5); -} - -# this method accepts a Slic3r::GUI::OptionsGroup::Line object -sub append_line { - my ($self, $line) = @_; - - if ($line->sizer || ($line->widget && $line->full_width)) { - # full-width widgets are appended *after* the grid sizer, so after all the non-full-width lines - my $sizer = $line->sizer // $line->widget->($self->parent); - $self->sizer->Add($sizer, 0, wxEXPAND | wxALL, &Wx::wxMAC ? 0 : 15); - return; - } - - my $grid_sizer = $self->_grid_sizer; - - # if we have an extra column, build it - if ($self->extra_column) { - if (defined (my $item = $self->extra_column->($line))) { - $grid_sizer->Add($item, 0, wxALIGN_CENTER_VERTICAL, 0); - } else { - # if the callback provides no sizer for the extra cell, put a spacer - $grid_sizer->AddSpacer(1); - } - } - - # build label if we have it - my $label; - if ($self->label_width != 0) { - $label = Wx::StaticText->new($self->parent, -1, $line->label ? $line->label . ":" : "", wxDefaultPosition, [$self->label_width, -1]); - $label->SetFont($self->label_font) if $self->label_font; - $label->Wrap($self->label_width) ; # needed to avoid Linux/GTK bug - $grid_sizer->Add($label, 0, wxALIGN_CENTER_VERTICAL, 0); - $label->SetToolTipString($line->label_tooltip) if $line->label_tooltip; - } - - # if we have a widget, add it to the sizer - if ($line->widget) { - my $widget_sizer = $line->widget->($self->parent); - $grid_sizer->Add($widget_sizer, 0, wxEXPAND | wxALL, &Wx::wxMAC ? 0 : 15); - return; - } - - # if we have a single option with no sidetext just add it directly to the grid sizer - my @options = @{$line->get_options}; - $self->_options->{$_->opt_id} = $_ for @options; - if (@options == 1 && !$options[0]->sidetext && !$options[0]->side_widget && !@{$line->get_extra_widgets}) { - my $option = $options[0]; - my $field = $self->_build_field($option); - $grid_sizer->Add($field, 0, ($option->full_width ? wxEXPAND : 0) | wxALIGN_CENTER_VERTICAL, 0); - return; - } - - # if we're here, we have more than one option or a single option with sidetext - # so we need a horizontal sizer to arrange these things - my $sizer = Wx::BoxSizer->new(wxHORIZONTAL); - $grid_sizer->Add($sizer, 0, 0, 0); - - foreach my $i (0..$#options) { - my $option = $options[$i]; - - # add label if any - if ($option->label) { - my $field_label = Wx::StaticText->new($self->parent, -1, $option->label . ":", wxDefaultPosition, wxDefaultSize); - $field_label->SetFont($self->sidetext_font); - $sizer->Add($field_label, 0, wxALIGN_CENTER_VERTICAL, 0); - } - - # add field - my $field = $self->_build_field($option); - $sizer->Add($field, 0, wxALIGN_CENTER_VERTICAL, 0); - - # add sidetext if any - if ($option->sidetext) { - my $sidetext = Wx::StaticText->new($self->parent, -1, $option->sidetext, wxDefaultPosition, wxDefaultSize); - $sidetext->SetFont($self->sidetext_font); - $sizer->Add($sidetext, 0, wxLEFT | wxALIGN_CENTER_VERTICAL, 4); - } - - # add side widget if any - if ($option->side_widget) { - $sizer->Add($option->side_widget->($self->parent), 0, wxLEFT | wxALIGN_CENTER_VERTICAL, 1); - } - - if ($option != $#options) { - $sizer->AddSpacer(4); - } - } - - # add extra sizers if any - foreach my $extra_widget (@{$line->get_extra_widgets}) { - $sizer->Add($extra_widget->($self->parent), 0, wxLEFT | wxALIGN_CENTER_VERTICAL , 4); - } -} - -sub create_single_option_line { - my ($self, $option) = @_; - - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => $option->label, - label_tooltip => $option->tooltip, - ); - $option->label(""); - $line->append_option($option); - - return $line; -} - -sub append_single_option_line { - my ($self, $option) = @_; - return $self->append_line($self->create_single_option_line($option)); -} - -sub _build_field { - my $self = shift; - my ($opt) = @_; - - my $opt_id = $opt->opt_id; - my $on_change = sub { - my ($opt_id, $value) = @_; - $self->_on_change($opt_id, $value) - unless $self->_disabled; - }; - my $on_kill_focus = sub { - my ($opt_id) = @_; - $self->_on_kill_focus($opt_id); - }; - - my $type = $opt->{gui_type} || $opt->{type}; - - my $field; - if ($type eq 'bool') { - $field = Slic3r::GUI::OptionsGroup::Field::Checkbox->new( - parent => $self->parent, - option => $opt, - ); - } elsif ($type eq 'i') { - $field = Slic3r::GUI::OptionsGroup::Field::SpinCtrl->new( - parent => $self->parent, - option => $opt, - ); - } elsif ($type eq 'color') { - $field = Slic3r::GUI::OptionsGroup::Field::ColourPicker->new( - parent => $self->parent, - option => $opt, - ); - } elsif ($type =~ /^(f|s|s@|percent)$/) { - $field = Slic3r::GUI::OptionsGroup::Field::TextCtrl->new( - parent => $self->parent, - option => $opt, - ); - } elsif ($type eq 'select' || $type eq 'select_open') { - $field = Slic3r::GUI::OptionsGroup::Field::Choice->new( - parent => $self->parent, - option => $opt, - ); - } elsif ($type eq 'f_enum_open' || $type eq 'i_enum_open' || $type eq 'i_enum_closed') { - $field = Slic3r::GUI::OptionsGroup::Field::NumericChoice->new( - parent => $self->parent, - option => $opt, - ); - } elsif ($type eq 'point') { - $field = Slic3r::GUI::OptionsGroup::Field::Point->new( - parent => $self->parent, - option => $opt, - ); - } elsif ($type eq 'point3'){ - $field = Slic3r::GUI::OptionsGroup::Field::Point3->new( - parent => $self->parent, - option => $opt, - ); - } elsif ($type eq 'slider') { - $field = Slic3r::GUI::OptionsGroup::Field::Slider->new( - parent => $self->parent, - option => $opt, - ); - } - return undef if !$field; - - $field->on_change($on_change); - $field->on_kill_focus($on_kill_focus); - $self->_fields->{$opt_id} = $field; - - return $field->isa('Slic3r::GUI::OptionsGroup::Field::wxWindow') - ? $field->wxWindow - : $field->wxSizer; -} - -sub get_option { - my ($self, $opt_id) = @_; - return undef if !exists $self->_options->{$opt_id}; - return $self->_options->{$opt_id}; -} - -sub get_field { - my ($self, $opt_id) = @_; - return undef if !exists $self->_fields->{$opt_id}; - return $self->_fields->{$opt_id}; -} - -sub get_value { - my ($self, $opt_id) = @_; - - return if !exists $self->_fields->{$opt_id}; - return $self->_fields->{$opt_id}->get_value; -} - -sub set_value { - my ($self, $opt_id, $value) = @_; - - return if !exists $self->_fields->{$opt_id}; - $self->_fields->{$opt_id}->set_value($value); -} - -sub _on_change { - my ($self, $opt_id, $value) = @_; - $self->on_change->($opt_id, $value); -} - -sub enable { - my ($self) = @_; - - $_->enable for values %{$self->_fields}; -} - -sub disable { - my ($self) = @_; - - $_->disable for values %{$self->_fields}; -} - -sub _on_kill_focus { - my ($self, $opt_id) = @_; - # nothing -} - - -package Slic3r::GUI::OptionsGroup::Line; -use Moo; - -has 'label' => (is => 'rw', default => sub { "" }); -has 'full_width' => (is => 'rw', default => sub { 0 }); -has 'label_tooltip' => (is => 'rw', default => sub { "" }); -has 'sizer' => (is => 'rw'); -has 'widget' => (is => 'rw'); -has '_options' => (is => 'ro', default => sub { [] }); -has '_extra_widgets' => (is => 'ro', default => sub { [] }); - -use Wx qw(:button :misc :bitmap); -use Wx::Event qw(EVT_BUTTON); - -# this method accepts a Slic3r::GUI::OptionsGroup::Option object -sub append_option { - my ($self, $option) = @_; - push @{$self->_options}, $option; -} - -sub append_widget { - my ($self, $widget) = @_; - push @{$self->_extra_widgets}, $widget; -} - -sub append_button { - my ($self, $text, $icon, $cb, $ref, $disable) = @_; - - $self->append_widget(sub { - my ($parent) = @_; - - my $btn = Wx::Button->new($parent, -1, - $text, wxDefaultPosition, wxDefaultSize, wxBU_LEFT | wxBU_EXACTFIT); - $btn->SetFont($Slic3r::GUI::small_font); - if ($Slic3r::GUI::have_button_icons) { - $btn->SetBitmap(Wx::Bitmap->new($Slic3r::var->($icon), wxBITMAP_TYPE_PNG)); - } - $btn->Disable if $disable; - $$ref = $btn if $ref; - - EVT_BUTTON($parent, $btn, $cb); - return $btn; - }); -} - -sub get_options { - my ($self) = @_; - return [ @{$self->_options} ]; -} - -sub get_extra_widgets { - my ($self) = @_; - return [ @{$self->_extra_widgets} ]; -} - - -package Slic3r::GUI::OptionsGroup::Option; -use Moo; - -has 'opt_id' => (is => 'rw', required => 1); -has 'type' => (is => 'rw', required => 1); -has 'default' => (is => 'rw', required => 1); -has 'gui_type' => (is => 'rw', default => sub { undef }); -has 'gui_flags' => (is => 'rw', default => sub { "" }); -has 'label' => (is => 'rw', default => sub { "" }); -has 'sidetext' => (is => 'rw', default => sub { "" }); -has 'tooltip' => (is => 'rw', default => sub { "" }); -has 'multiline' => (is => 'rw', default => sub { 0 }); -has 'full_width' => (is => 'rw', default => sub { 0 }); -has 'width' => (is => 'rw', default => sub { undef }); -has 'height' => (is => 'rw', default => sub { undef }); -has 'min' => (is => 'rw', default => sub { undef }); -has 'max' => (is => 'rw', default => sub { undef }); -has 'labels' => (is => 'rw', default => sub { [] }); -has 'values' => (is => 'rw', default => sub { [] }); -has 'readonly' => (is => 'rw', default => sub { 0 }); -has 'side_widget' => (is => 'rw', default => sub { undef }); - - -package Slic3r::GUI::ConfigOptionsGroup; -use Moo; - -use List::Util qw(first); - -extends 'Slic3r::GUI::OptionsGroup'; -has 'config' => (is => 'ro', required => 1); -has 'full_labels' => (is => 'ro', default => sub { 0 }); -has '_opt_map' => (is => 'ro', default => sub { {} }); - -sub get_option { - my ($self, $opt_key, $opt_index, %params) = @_; - - $opt_index //= -1; - - if (!$self->config->has($opt_key)) { - die "No $opt_key in ConfigOptionsGroup config"; - } - - my $opt_id = ($opt_index == -1 ? $opt_key : "${opt_key}#${opt_index}"); - $self->_opt_map->{$opt_id} = [ $opt_key, $opt_index ]; - - my $optdef = $Slic3r::Config::Options->{$opt_key}; # we should access this from $self->config - my $default_value = $self->_get_config_value($opt_key, $opt_index, $optdef->{type} eq 's@'); - - return Slic3r::GUI::OptionsGroup::Option->new( - opt_id => $opt_id, - type => $optdef->{type}, - default => $default_value, - gui_type => $optdef->{gui_type}, - gui_flags => $optdef->{gui_flags}, - label => ($self->full_labels && defined $optdef->{full_label}) ? $optdef->{full_label} : $optdef->{label}, - sidetext => $optdef->{sidetext}, - # calling serialize() ensures we get a stringified value - tooltip => $optdef->{tooltip} . " (default: " . $self->config->serialize($opt_key) . ")", - multiline => $optdef->{multiline}, - width => $optdef->{width}, - min => $optdef->{min}, - max => $optdef->{max}, - labels => $optdef->{labels}, - values => $optdef->{values}, - readonly => $optdef->{readonly}, - %params, - ); -} - -sub create_single_option_line { - my ($self, $opt_key, $opt_index, %params) = @_; - - my $option; - if (ref($opt_key)) { - $option = $opt_key; - } else { - $option = $self->get_option($opt_key, $opt_index, %params); - } - return $self->SUPER::create_single_option_line($option); -} - -sub append_single_option_line { - my ($self, $option, $opt_index, %params) = @_; - return $self->append_line($self->create_single_option_line($option, $opt_index, %params)); -} - -sub reload_config { - my ($self) = @_; - - foreach my $opt_id (keys %{ $self->_opt_map }) { - my ($opt_key, $opt_index) = @{ $self->_opt_map->{$opt_id} }; - my $option = $self->_options->{$opt_id}; - $self->set_value($opt_id, $self->_get_config_value($opt_key, $opt_index, $option->type eq 's@')); - } -} - -sub get_fieldc { - my ($self, $opt_key, $opt_index) = @_; - - $opt_index //= -1; - my $opt_id = first { $self->_opt_map->{$_}[0] eq $opt_key && $self->_opt_map->{$_}[1] == $opt_index } - keys %{$self->_opt_map}; - return defined($opt_id) ? $self->get_field($opt_id) : undef; -} - -sub _get_config_value { - my ($self, $opt_key, $opt_index, $as_string) = @_; - - if ($opt_index == -1) { - my $value = $self->config->get($opt_key); - if ($as_string && ref($value) eq 'ARRAY') { - return join "\n", @$value; - } - return $value; - } else { - return $self->config->get_at($opt_key, $opt_index); - } -} - -sub _on_change { - my ($self, $opt_id, $value) = @_; - - if (exists $self->_opt_map->{$opt_id}) { - my ($opt_key, $opt_index) = @{ $self->_opt_map->{$opt_id} }; - my $option = $self->_options->{$opt_id}; - - # get value - my $field_value = $self->get_value($opt_id); - if ($opt_index == -1) { - if ($option->type eq 's@' && ref($field_value) ne 'ARRAY') { - $field_value = [ split /(?config->set($opt_key, $field_value); - } else { - my $value = $self->config->get($opt_key); - $value->[$opt_index] = $field_value; - $self->config->set($opt_key, $value); - } - } - - $self->SUPER::_on_change($opt_id, $value); -} - -sub _on_kill_focus { - my ($self, $opt_id) = @_; - - # when a field loses focus, reapply the config value to it - # (thus discarding any invalid input and reverting to the last - # accepted value) - $self->reload_config; -} - -package Slic3r::GUI::OptionsGroup::StaticText; -use Wx qw(:misc :systemsettings); -use base 'Wx::StaticText'; - -sub new { - my ($class, $parent) = @_; - - my $self = $class->SUPER::new($parent, -1, "", wxDefaultPosition, wxDefaultSize); - my $font = Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); - $self->SetFont($font); - return $self; -} - -sub SetText { - my ($self, $value) = @_; - - $self->SetLabel($value); - $self->Wrap(400); - $self->GetParent->Layout; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/OptionsGroup/Field.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/OptionsGroup/Field.pm deleted file mode 100644 index 63861211..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/OptionsGroup/Field.pm +++ /dev/null @@ -1,704 +0,0 @@ -package Slic3r::GUI::OptionsGroup::Field; -use Moo; - -# This is a base class for option fields. - -has 'parent' => (is => 'ro', required => 1); -has 'option' => (is => 'ro', required => 1); # Slic3r::GUI::OptionsGroup::Option -has 'on_change' => (is => 'rw', default => sub { sub {} }); -has 'on_kill_focus' => (is => 'rw', default => sub { sub {} }); -has 'disable_change_event' => (is => 'rw', default => sub { 0 }); - -# This method should not fire the on_change event -sub set_value { - my ($self, $value) = @_; - die "Method not implemented"; -} - -sub get_value { - my ($self) = @_; - die "Method not implemented"; -} - -sub set_tooltip { - my ($self, $tooltip) = @_; - die "Method not implemented"; -} - -sub toggle { - my ($self, $enable) = @_; - $enable ? $self->enable : $self->disable; -} - -sub _on_change { - my ($self, $opt_id) = @_; - - $self->on_change->($opt_id, $self->get_value) - unless $self->disable_change_event; -} - -sub _on_kill_focus { - my ($self, $opt_id, $s, $event) = @_; - - # Without this, there will be nasty focus bugs on Windows. - # Also, docs for wxEvent::Skip() say "In general, it is recommended to skip all - # non-command events to allow the default handling to take place." - $event->Skip(1); - - $self->on_kill_focus->($opt_id); -} - - -package Slic3r::GUI::OptionsGroup::Field::wxWindow; -use Moo; -extends 'Slic3r::GUI::OptionsGroup::Field'; - -has 'wxWindow' => (is => 'rw', trigger => 1); # wxWindow object - -sub _default_size { - my ($self) = @_; - - # default width on Windows is too large - return Wx::Size->new($self->option->width || 60, $self->option->height || -1); -} - -sub _trigger_wxWindow { - my ($self) = @_; - - $self->set_tooltip($self->option->tooltip); -} - -sub set_tooltip { - my ($self, $tooltip) = @_; - - $self->wxWindow->SetToolTipString($tooltip) - if $self->wxWindow->can('SetToolTipString'); -} - -sub set_value { - my ($self, $value) = @_; - - $self->disable_change_event(1); - $self->wxWindow->SetValue($value); - $self->disable_change_event(0); -} - -sub get_value { - my ($self) = @_; - return $self->wxWindow->GetValue; -} - -sub enable { - my ($self) = @_; - - $self->wxWindow->Enable; - $self->wxWindow->Refresh; -} - -sub disable { - my ($self) = @_; - - $self->wxWindow->Disable; - $self->wxWindow->Refresh; -} - - -package Slic3r::GUI::OptionsGroup::Field::Checkbox; -use Moo; -extends 'Slic3r::GUI::OptionsGroup::Field::wxWindow'; - -use Wx qw(:misc); -use Wx::Event qw(EVT_CHECKBOX); - -sub BUILD { - my ($self) = @_; - - my $field = Wx::CheckBox->new($self->parent, -1, ""); - $self->wxWindow($field); - $field->SetValue($self->option->default); - $field->Disable if $self->option->readonly; - - EVT_CHECKBOX($self->parent, $field, sub { - $self->_on_change($self->option->opt_id); - }); -} - - -package Slic3r::GUI::OptionsGroup::Field::SpinCtrl; -use Moo; -extends 'Slic3r::GUI::OptionsGroup::Field::wxWindow'; - -use Wx qw(:misc); -use Wx::Event qw(EVT_SPINCTRL EVT_TEXT EVT_KILL_FOCUS); - -has 'tmp_value' => (is => 'rw'); - -sub BUILD { - my ($self) = @_; - - my $field = Wx::SpinCtrl->new($self->parent, -1, $self->option->default, wxDefaultPosition, $self->_default_size, - 0, $self->option->min || 0, $self->option->max || 2147483647, $self->option->default); - $self->wxWindow($field); - - EVT_SPINCTRL($self->parent, $field, sub { - $self->tmp_value(undef); - $self->_on_change($self->option->opt_id); - }); - EVT_TEXT($self->parent, $field, sub { - my ($s, $event) = @_; - - # On OSX/Cocoa, wxSpinCtrl::GetValue() doesn't return the new value - # when it was changed from the text control, so the on_change callback - # gets the old one, and on_kill_focus resets the control to the old value. - # As a workaround, we get the new value from $event->GetString and store - # here temporarily so that we can return it from $self->get_value - $self->tmp_value($event->GetString) if $event->GetString =~ /^\d+$/; - $self->_on_change($self->option->opt_id); - # We don't reset tmp_value here because _on_change might put callbacks - # in the CallAfter queue, and we want the tmp value to be available from - # them as well. - }); - EVT_KILL_FOCUS($field, sub { - $self->tmp_value(undef); - $self->_on_kill_focus($self->option->opt_id, @_); - }); -} - -sub get_value { - my ($self) = @_; - return $self->tmp_value // $self->wxWindow->GetValue; -} - - -package Slic3r::GUI::OptionsGroup::Field::TextCtrl; -use Moo; -extends 'Slic3r::GUI::OptionsGroup::Field::wxWindow'; - -use Wx qw(:misc :textctrl); -use Wx::Event qw(EVT_TEXT EVT_KILL_FOCUS); - -sub BUILD { - my ($self) = @_; - - my $style = 0; - $style = wxTE_MULTILINE if $self->option->multiline; - my $field = Wx::TextCtrl->new($self->parent, -1, $self->option->default, wxDefaultPosition, - $self->_default_size, $style); - $self->wxWindow($field); - - # TODO: test loading a config that has empty string for multi-value options like 'wipe' - - EVT_TEXT($self->parent, $field, sub { - $self->_on_change($self->option->opt_id); - }); - EVT_KILL_FOCUS($field, sub { - $self->_on_kill_focus($self->option->opt_id, @_); - }); -} - -sub enable { - my ($self) = @_; - - $self->wxWindow->Enable; - $self->wxWindow->SetEditable(1); -} - -sub disable { - my ($self) = @_; - - $self->wxWindow->Disable; - $self->wxWindow->SetEditable(0); -} - - -package Slic3r::GUI::OptionsGroup::Field::Choice; -use Moo; -extends 'Slic3r::GUI::OptionsGroup::Field::wxWindow'; - -use List::Util qw(first); -use Wx qw(:misc :combobox); -use Wx::Event qw(EVT_COMBOBOX EVT_TEXT); - -sub BUILD { - my ($self) = @_; - - my $style = 0; - $style |= wxCB_READONLY if defined $self->option->gui_type && $self->option->gui_type ne 'select_open'; - my $field = Wx::ComboBox->new($self->parent, -1, "", wxDefaultPosition, $self->_default_size, - $self->option->labels || $self->option->values || [], $style); - $self->wxWindow($field); - - $self->set_value($self->option->default); - - EVT_COMBOBOX($self->parent, $field, sub { - $self->_on_change($self->option->opt_id); - }); - EVT_TEXT($self->parent, $field, sub { - $self->_on_change($self->option->opt_id); - }); -} - -sub set_value { - my ($self, $value) = @_; - - $self->disable_change_event(1); - - my $idx; - if ($self->option->values) { - $idx = first { $self->option->values->[$_] eq $value } 0..$#{$self->option->values}; - # if value is not among indexes values we use SetValue() - } - - if (defined $idx) { - $self->wxWindow->SetSelection($idx); - } else { - $self->wxWindow->SetValue($value); - } - - $self->disable_change_event(0); -} - -sub set_values { - my ($self, $values) = @_; - - $self->disable_change_event(1); - - # it looks that Clear() also clears the text field in recent wxWidgets versions, - # but we want to preserve it - my $ww = $self->wxWindow; - my $value = $ww->GetValue; - $ww->Clear; - $ww->Append($_) for @$values; - $ww->SetValue($value); - - $self->disable_change_event(0); -} - -sub get_value { - my ($self) = @_; - - if ($self->option->values) { - my $idx = $self->wxWindow->GetSelection; - if ($idx != &Wx::wxNOT_FOUND) { - return $self->option->values->[$idx]; - } - } - return $self->wxWindow->GetValue; -} - -package Slic3r::GUI::OptionsGroup::Field::NumericChoice; -use Moo; -extends 'Slic3r::GUI::OptionsGroup::Field::wxWindow'; - -use List::Util qw(first); -use Wx qw(wxTheApp :misc :combobox); -use Wx::Event qw(EVT_COMBOBOX EVT_TEXT); - -# if option has no 'values', indices are values -# if option has no 'labels', values are labels - -sub BUILD { - my ($self) = @_; - - my $field = Wx::ComboBox->new($self->parent, -1, $self->option->default, wxDefaultPosition, $self->_default_size, - $self->option->labels || $self->option->values); - $self->wxWindow($field); - - $self->set_value($self->option->default); - - EVT_COMBOBOX($self->parent, $field, sub { - my $disable_change_event = $self->disable_change_event; - $self->disable_change_event(1); - - my $idx = $field->GetSelection; # get index of selected value - my $label; - - if ($self->option->labels && $idx <= $#{$self->option->labels}) { - $label = $self->option->labels->[$idx]; - } elsif ($self->option->values && $idx <= $#{$self->option->values}) { - $label = $self->option->values->[$idx]; - } else { - $label = $idx; - } - - # The MSW implementation of wxComboBox will leave the field blank if we call - # SetValue() in the EVT_COMBOBOX event handler, so we postpone the call. - wxTheApp->CallAfter(sub { - my $dce = $self->disable_change_event; - $self->disable_change_event(1); - - # ChangeValue() is not exported in wxPerl - $field->SetValue($label); - - $self->disable_change_event($dce); - }); - - $self->disable_change_event($disable_change_event); - $self->_on_change($self->option->opt_id); - }); - EVT_TEXT($self->parent, $field, sub { - $self->_on_change($self->option->opt_id); - }); -} - -sub set_value { - my ($self, $value) = @_; - - $self->disable_change_event(1); - - my $field = $self->wxWindow; - if ($self->option->gui_flags =~ /\bshow_value\b/) { - $field->SetValue($value); - } else { - if ($self->option->values) { - # check whether we have a value index - my $value_idx = first { $self->option->values->[$_] eq $value } 0..$#{$self->option->values}; - if (defined $value_idx) { - $field->SetSelection($value_idx); - $self->disable_change_event(0); - return; - } - } elsif ($self->option->labels && $value <= $#{$self->option->labels}) { - # if we have no values, we expect value to be an index - $field->SetValue($self->option->labels->[$value]); - $self->disable_change_event(0); - return; - } - $field->SetValue($value); - } - - $self->disable_change_event(0); -} - -sub get_value { - my ($self) = @_; - - my $label = $self->wxWindow->GetValue; - if ($self->option->labels) { - my $value_idx = first { $self->option->labels->[$_] eq $label } 0..$#{$self->option->labels}; - if (defined $value_idx) { - if ($self->option->values) { - return $self->option->values->[$value_idx]; - } - return $value_idx; - } - } - return $label; -} - - -package Slic3r::GUI::OptionsGroup::Field::ColourPicker; -use Moo; -extends 'Slic3r::GUI::OptionsGroup::Field::wxWindow'; - -use Wx qw(:misc :colour); -use Wx::Event qw(EVT_COLOURPICKER_CHANGED); - -sub BUILD { - my ($self) = @_; - - my $field = Wx::ColourPickerCtrl->new($self->parent, -1, - $self->_string_to_colour($self->option->default), wxDefaultPosition, - $self->_default_size); - $self->wxWindow($field); - - EVT_COLOURPICKER_CHANGED($self->parent, $field, sub { - $self->_on_change($self->option->opt_id); - }); -} - -sub set_value { - my ($self, $value) = @_; - - $self->disable_change_event(1); - $self->wxWindow->SetColour($self->_string_to_colour($value)); - $self->disable_change_event(0); -} - -sub get_value { - my ($self) = @_; - return $self->wxWindow->GetColour->GetAsString(wxC2S_HTML_SYNTAX); -} - -sub _string_to_colour { - my ($self, $string) = @_; - - $string =~ s/^#//; - return Wx::Colour->new(unpack 'C*', pack 'H*', $string); -} - - -package Slic3r::GUI::OptionsGroup::Field::wxSizer; -use Moo; -extends 'Slic3r::GUI::OptionsGroup::Field'; - -has 'wxSizer' => (is => 'rw'); # wxSizer object - - -package Slic3r::GUI::OptionsGroup::Field::Point; -use Moo; -extends 'Slic3r::GUI::OptionsGroup::Field::wxSizer'; - -has 'x_textctrl' => (is => 'rw'); -has 'y_textctrl' => (is => 'rw'); - -use Slic3r::Geometry qw(X Y); -use Wx qw(:misc :sizer); -use Wx::Event qw(EVT_TEXT); - -sub BUILD { - my ($self) = @_; - - my $sizer = Wx::BoxSizer->new(wxHORIZONTAL); - $self->wxSizer($sizer); - - my $field_size = Wx::Size->new(40, -1); - - $self->x_textctrl(Wx::TextCtrl->new($self->parent, -1, $self->option->default->[X], wxDefaultPosition, $field_size)); - $self->y_textctrl(Wx::TextCtrl->new($self->parent, -1, $self->option->default->[Y], wxDefaultPosition, $field_size)); - - my @items = ( - Wx::StaticText->new($self->parent, -1, "x:"), - $self->x_textctrl, - Wx::StaticText->new($self->parent, -1, " y:"), - $self->y_textctrl, - ); - $sizer->Add($_, 0, wxALIGN_CENTER_VERTICAL, 0) for @items; - - if ($self->option->tooltip) { - foreach my $item (@items) { - $item->SetToolTipString($self->option->tooltip) - if $item->can('SetToolTipString'); - } - } - - EVT_TEXT($self->parent, $_, sub { - $self->_on_change($self->option->opt_id); - }) for $self->x_textctrl, $self->y_textctrl; -} - -sub set_value { - my ($self, $value) = @_; - - $self->disable_change_event(1); - $self->x_textctrl->SetValue($value->[X]); - $self->y_textctrl->SetValue($value->[Y]); - $self->disable_change_event(0); -} - -sub get_value { - my ($self) = @_; - - return [ - $self->x_textctrl->GetValue, - $self->y_textctrl->GetValue, - ]; -} - -sub enable { - my ($self) = @_; - - $self->x_textctrl->Enable; - $self->y_textctrl->Enable; -} - -sub disable { - my ($self) = @_; - - $self->x_textctrl->Disable; - $self->y_textctrl->Disable; -} - -package Slic3r::GUI::OptionsGroup::Field::Point3; -use Moo; -extends 'Slic3r::GUI::OptionsGroup::Field::wxSizer'; - -has 'x_textctrl' => (is => 'rw'); -has 'y_textctrl' => (is => 'rw'); -has 'z_textctrl' => (is => 'rw'); - -use Slic3r::Geometry qw(X Y Z); -use Wx qw(:misc :sizer); -use Wx::Event qw(EVT_TEXT); - -sub BUILD { - my ($self) = @_; - - my $sizer = Wx::BoxSizer->new(wxHORIZONTAL); - $self->wxSizer($sizer); - - my $field_size = Wx::Size->new(40, -1); - - $self->x_textctrl(Wx::TextCtrl->new($self->parent, -1, $self->option->default->[X], wxDefaultPosition, $field_size)); - $self->y_textctrl(Wx::TextCtrl->new($self->parent, -1, $self->option->default->[Y], wxDefaultPosition, $field_size)); - $self->z_textctrl(Wx::TextCtrl->new($self->parent, -1, $self->option->default->[Z], wxDefaultPosition, $field_size)); - - my @items = ( - Wx::StaticText->new($self->parent, -1, "x:"), - $self->x_textctrl, - Wx::StaticText->new($self->parent, -1, " y:"), - $self->y_textctrl, - Wx::StaticText->new($self->parent, -1, " z:"), - $self->z_textctrl, - ); - $sizer->Add($_, 0, wxALIGN_CENTER_VERTICAL, 0) for @items; - - if ($self->option->tooltip) { - foreach my $item (@items) { - $item->SetToolTipString($self->option->tooltip) - if $item->can('SetToolTipString'); - } - } - - EVT_TEXT($self->parent, $_, sub { - $self->_on_change($self->option->opt_id); - }) for $self->x_textctrl, $self->y_textctrl, $self->z_textctrl; -} - -sub set_value { - my ($self, $value) = @_; - - $self->disable_change_event(1); - $self->x_textctrl->SetValue($value->[X]); - $self->y_textctrl->SetValue($value->[Y]); - $self->z_textctrl->SetValue($value->[Z]); - $self->disable_change_event(0); -} - -sub get_value { - my ($self) = @_; - - return [ - $self->x_textctrl->GetValue, - $self->y_textctrl->GetValue, - $self->z_textctrl->GetValue, - ]; -} - -sub enable { - my ($self) = @_; - - $self->x_textctrl->Enable; - $self->y_textctrl->Enable; - $self->z_textctrl->Enable; -} - -sub disable { - my ($self) = @_; - - $self->x_textctrl->Disable; - $self->y_textctrl->Disable; - $self->z_textctrl->Disable; -} - -package Slic3r::GUI::OptionsGroup::Field::Slider; -use Moo; -extends 'Slic3r::GUI::OptionsGroup::Field::wxSizer'; - -has 'scale' => (is => 'rw', default => sub { 10 }); -has 'slider' => (is => 'rw'); -has 'textctrl' => (is => 'rw'); - -use Slic3r::Geometry qw(X Y); -use Wx qw(:misc :sizer); -use Wx::Event qw(EVT_SLIDER EVT_TEXT EVT_KILL_FOCUS); - -sub BUILD { - my ($self) = @_; - - my $sizer = Wx::BoxSizer->new(wxHORIZONTAL); - $self->wxSizer($sizer); - - my $slider = Wx::Slider->new( - $self->parent, -1, - ($self->option->default // $self->option->min) * $self->scale, - ($self->option->min // 0) * $self->scale, - ($self->option->max // 100) * $self->scale, - wxDefaultPosition, - [ $self->option->width // -1, $self->option->height // -1 ], - ); - $self->slider($slider); - - my $textctrl = Wx::TextCtrl->new($self->parent, -1, $slider->GetValue/$self->scale, - wxDefaultPosition, [50,-1]); - $self->textctrl($textctrl); - - $sizer->Add($slider, 1, wxALIGN_CENTER_VERTICAL, 0); - $sizer->Add($textctrl, 0, wxALIGN_CENTER_VERTICAL, 0); - - EVT_SLIDER($self->parent, $slider, sub { - $self->_update_textctrl; - $self->_on_change($self->option->opt_id); - }); - EVT_TEXT($self->parent, $textctrl, sub { - my $value = $textctrl->GetValue; - if ($value =~ /^-?\d+(\.\d*)?$/) { - # Update the slider without re-updating the text field being modified. - $self->disable_change_event(1); - $self->slider->SetValue($value*$self->scale); - $self->disable_change_event(0); - - $self->_on_change($self->option->opt_id); - } - }); - EVT_KILL_FOCUS($textctrl, sub { - $self->_update_textctrl; - $self->_on_kill_focus($self->option->opt_id, @_); - }); -} - -sub set_value { - my ($self, $value) = @_; - - $self->disable_change_event(1); - $self->slider->SetValue($value*$self->scale); - $self->_update_textctrl; - $self->disable_change_event(0); -} - -sub get_value { - my ($self) = @_; - return $self->slider->GetValue/$self->scale; -} - -# Update internal scaling -sub set_scale { - my ($self, $scale) = @_; - $self->disable_change_event(1); - my $current_value = $self->get_value; - $self->slider->SetRange($self->slider->GetMin / $self->scale * $scale, $self->slider->GetMax / $self->scale * $scale); - $self->scale($scale); - $self->set_value($current_value); - $self->disable_change_event(0); -} - -sub _update_textctrl { - my ($self) = @_; - - $self->textctrl->ChangeValue($self->get_value); - $self->textctrl->SetInsertionPointEnd; -} - -sub enable { - my ($self) = @_; - - $self->slider->Enable; - $self->textctrl->Enable; - $self->textctrl->SetEditable(1); -} - -sub disable { - my ($self) = @_; - - $self->slider->Disable; - $self->textctrl->Disable; - $self->textctrl->SetEditable(0); -} - -sub set_range { - my ($self, $min, $max) = @_; - - $self->slider->SetRange($min * $self->scale, $max * $self->scale); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater.pm deleted file mode 100644 index 8b2c26d0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater.pm +++ /dev/null @@ -1,3316 +0,0 @@ -# The "Plater" tab. It contains the "3D", "2D", "Preview" and "Layers" subtabs. - -package Slic3r::GUI::Plater::UndoOperation; -use strict; -use warnings; - -sub new{ - my $class = shift; - my $self = { - type => shift, - object_identifier => shift, - attributes => shift, - }; - bless ($self, $class); - return $self; -} - -package Slic3r::GUI::Plater; -use strict; -use warnings; -use utf8; - -use File::Basename qw(basename dirname); -use List::Util qw(sum first max none any); -use Slic3r::Geometry qw(X Y Z MIN MAX scale unscale deg2rad rad2deg); -use LWP::UserAgent; -use threads::shared qw(shared_clone); -use Wx qw(:button :cursor :dialog :filedialog :keycode :icon :font :id :misc - :panel :sizer :toolbar :window wxTheApp :notebook :combobox); -use Wx::Event qw(EVT_BUTTON EVT_COMMAND EVT_KEY_DOWN EVT_MOUSE_EVENTS EVT_PAINT EVT_TOOL - EVT_CHOICE EVT_COMBOBOX EVT_TIMER EVT_NOTEBOOK_PAGE_CHANGED EVT_LEFT_UP EVT_CLOSE); -use base qw(Wx::Panel Class::Accessor); - -__PACKAGE__->mk_accessors(qw(presets)); - -use constant TB_ADD => &Wx::NewId; -use constant TB_REMOVE => &Wx::NewId; -use constant TB_RESET => &Wx::NewId; -use constant TB_ARRANGE => &Wx::NewId; -use constant TB_EXPORT_GCODE => &Wx::NewId; -use constant TB_EXPORT_STL => &Wx::NewId; -use constant TB_MORE => &Wx::NewId; -use constant TB_FEWER => &Wx::NewId; -use constant TB_45CW => &Wx::NewId; -use constant TB_45CCW => &Wx::NewId; -use constant TB_SCALE => &Wx::NewId; -use constant TB_SPLIT => &Wx::NewId; -use constant TB_CUT => &Wx::NewId; -use constant TB_LAYERS => &Wx::NewId; -use constant TB_SETTINGS => &Wx::NewId; - -# package variables to avoid passing lexicals to threads -our $THUMBNAIL_DONE_EVENT : shared = Wx::NewEventType; -our $PROGRESS_BAR_EVENT : shared = Wx::NewEventType; -our $ERROR_EVENT : shared = Wx::NewEventType; -our $EXPORT_COMPLETED_EVENT : shared = Wx::NewEventType; -our $PROCESS_COMPLETED_EVENT : shared = Wx::NewEventType; - -use constant FILAMENT_CHOOSERS_SPACING => 0; -use constant PROCESS_DELAY => 0.5 * 1000; # milliseconds - -sub new { - my $class = shift; - my ($parent) = @_; - my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); - $self->{config} = Slic3r::Config->new_from_defaults(qw( - bed_shape complete_objects extruder_clearance_radius skirts skirt_distance brim_width - serial_port serial_speed host_type print_host octoprint_apikey shortcuts filament_colour - )); - $self->{model} = Slic3r::Model->new; - $self->{print} = Slic3r::Print->new; - $self->{processed} = 0; - # List of Perl objects Slic3r::GUI::Plater::Object, representing a 2D preview of the platter. - $self->{objects} = []; - - # Objects identifier used for undo/redo operations. It's a one time id assigned to each newly created object. - $self->{object_identifier} = 0; - - # Stack of undo operations. - $self->{undo_stack} = []; - - # Stack of redo operations. - $self->{redo_stack} = []; - - $self->{print}->set_status_cb(sub { - my ($percent, $message) = @_; - - if ($Slic3r::have_threads) { - Wx::PostEvent($self, Wx::PlThreadEvent->new(-1, $PROGRESS_BAR_EVENT, shared_clone([$percent, $message]))); - } else { - $self->on_progress_event($percent, $message); - } - }); - - # Initialize preview notebook - $self->{preview_notebook} = Wx::Notebook->new($self, -1, wxDefaultPosition, [335,335], wxNB_BOTTOM); - - # Initialize handlers for canvases - my $on_select_object = sub { - my ($obj_idx) = @_; - $self->select_object($obj_idx); - }; - my $on_double_click = sub { - $self->object_settings_dialog if $self->selected_object; - }; - my $on_right_click = sub { - my ($canvas, $click_pos) = @_; - - my ($obj_idx, $object) = $self->selected_object; - return if !defined $obj_idx; - - my $menu = $self->object_menu; - $canvas->PopupMenu($menu, $click_pos); - $menu->Destroy; - }; - my $on_instances_moved = sub { - $self->on_model_change; - }; - - # Initialize 3D plater - if ($Slic3r::GUI::have_OpenGL) { - $self->{canvas3D} = Slic3r::GUI::Plater::3D->new($self->{preview_notebook}, $self->{objects}, $self->{model}, $self->{config}); - $self->{preview_notebook}->AddPage($self->{canvas3D}, '3D'); - $self->{canvas3D}->set_on_select_object($on_select_object); - $self->{canvas3D}->set_on_double_click($on_double_click); - $self->{canvas3D}->set_on_right_click(sub { $on_right_click->($self->{canvas3D}, @_); }); - $self->{canvas3D}->set_on_instances_moved($on_instances_moved); - $self->{canvas3D}->on_viewport_changed(sub { - $self->{preview3D}->canvas->set_viewport_from_scene($self->{canvas3D}); - }); - } - - # Initialize 2D preview canvas - $self->{canvas} = Slic3r::GUI::Plater::2D->new($self->{preview_notebook}, wxDefaultSize, $self->{objects}, $self->{model}, $self->{config}); - $self->{preview_notebook}->AddPage($self->{canvas}, '2D'); - $self->{canvas}->on_select_object($on_select_object); - $self->{canvas}->on_double_click($on_double_click); - $self->{canvas}->on_right_click(sub { $on_right_click->($self->{canvas}, @_); }); - $self->{canvas}->on_instances_moved($on_instances_moved); - - # Initialize 3D toolpaths preview - $self->{preview3D_page_idx} = -1; - if ($Slic3r::GUI::have_OpenGL) { - $self->{preview3D} = Slic3r::GUI::Plater::3DPreview->new($self->{preview_notebook}, $self->{print}); - $self->{preview3D}->canvas->on_viewport_changed(sub { - $self->{canvas3D}->set_viewport_from_scene($self->{preview3D}->canvas); - }); - $self->{preview_notebook}->AddPage($self->{preview3D}, 'Preview'); - $self->{preview3D_page_idx} = $self->{preview_notebook}->GetPageCount-1; - } - - # Initialize toolpaths preview - $self->{toolpaths2D_page_idx} = -1; - if ($Slic3r::GUI::have_OpenGL) { - $self->{toolpaths2D} = Slic3r::GUI::Plater::2DToolpaths->new($self->{preview_notebook}, $self->{print}); - $self->{preview_notebook}->AddPage($self->{toolpaths2D}, 'Layers'); - $self->{toolpaths2D_page_idx} = $self->{preview_notebook}->GetPageCount-1; - } - - EVT_NOTEBOOK_PAGE_CHANGED($self, $self->{preview_notebook}, sub { - wxTheApp->CallAfter(sub { - my $sel = $self->{preview_notebook}->GetSelection; - if ($sel == $self->{preview3D_page_idx} || $sel == $self->{toolpaths2D_page_idx}) { - if (!$Slic3r::GUI::Settings->{_}{background_processing} && !$self->{processed}) { - $self->statusbar->SetCancelCallback(sub { - $self->stop_background_process; - $self->statusbar->SetStatusText("Slicing cancelled"); - $self->{preview_notebook}->SetSelection(0); - - }); - $self->start_background_process; - } else { - $self->{preview3D}->load_print - if $sel == $self->{preview3D_page_idx}; - } - } - }); - }); - - # toolbar for object manipulation - if (!&Wx::wxMSW) { - Wx::ToolTip::Enable(1); - $self->{htoolbar} = Wx::ToolBar->new($self, -1, wxDefaultPosition, wxDefaultSize, wxTB_HORIZONTAL | wxTB_TEXT | wxBORDER_SIMPLE | wxTAB_TRAVERSAL); - $self->{htoolbar}->AddTool(TB_ADD, "Add…", Wx::Bitmap->new($Slic3r::var->("brick_add.png"), wxBITMAP_TYPE_PNG), ''); - $self->{htoolbar}->AddTool(TB_REMOVE, "Delete", Wx::Bitmap->new($Slic3r::var->("brick_delete.png"), wxBITMAP_TYPE_PNG), ''); - $self->{htoolbar}->AddTool(TB_RESET, "Delete All", Wx::Bitmap->new($Slic3r::var->("cross.png"), wxBITMAP_TYPE_PNG), ''); - $self->{htoolbar}->AddTool(TB_ARRANGE, "Arrange", Wx::Bitmap->new($Slic3r::var->("bricks.png"), wxBITMAP_TYPE_PNG), ''); - $self->{htoolbar}->AddSeparator; - $self->{htoolbar}->AddTool(TB_MORE, "More", Wx::Bitmap->new($Slic3r::var->("add.png"), wxBITMAP_TYPE_PNG), ''); - $self->{htoolbar}->AddTool(TB_FEWER, "Fewer", Wx::Bitmap->new($Slic3r::var->("delete.png"), wxBITMAP_TYPE_PNG), ''); - $self->{htoolbar}->AddSeparator; - $self->{htoolbar}->AddTool(TB_45CCW, "45° ccw", Wx::Bitmap->new($Slic3r::var->("arrow_rotate_anticlockwise.png"), wxBITMAP_TYPE_PNG), ''); - $self->{htoolbar}->AddTool(TB_45CW, "45° cw", Wx::Bitmap->new($Slic3r::var->("arrow_rotate_clockwise.png"), wxBITMAP_TYPE_PNG), ''); - $self->{htoolbar}->AddTool(TB_SCALE, "Scale…", Wx::Bitmap->new($Slic3r::var->("arrow_out.png"), wxBITMAP_TYPE_PNG), ''); - $self->{htoolbar}->AddTool(TB_SPLIT, "Split", Wx::Bitmap->new($Slic3r::var->("shape_ungroup.png"), wxBITMAP_TYPE_PNG), ''); - $self->{htoolbar}->AddTool(TB_CUT, "Cut…", Wx::Bitmap->new($Slic3r::var->("package.png"), wxBITMAP_TYPE_PNG), ''); - $self->{htoolbar}->AddSeparator; - $self->{htoolbar}->AddTool(TB_SETTINGS, "Settings…", Wx::Bitmap->new($Slic3r::var->("cog.png"), wxBITMAP_TYPE_PNG), ''); - $self->{htoolbar}->AddTool(TB_LAYERS, "Layer heights…", Wx::Bitmap->new($Slic3r::var->("variable_layer_height.png"), wxBITMAP_TYPE_PNG), ''); - } else { - my %tbar_buttons = ( - add => "Add…", - remove => "Delete", - reset => "Delete All", - arrange => "Arrange", - increase => "", - decrease => "", - rotate45ccw => "", - rotate45cw => "", - changescale => "Scale…", - split => "Split", - cut => "Cut…", - layers => "Layer heights…", - settings => "Settings…", - ); - $self->{btoolbar} = Wx::BoxSizer->new(wxHORIZONTAL); - for (qw(add remove reset arrange increase decrease rotate45ccw rotate45cw changescale split cut layers settings)) { - $self->{"btn_$_"} = Wx::Button->new($self, -1, $tbar_buttons{$_}, wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT); - $self->{btoolbar}->Add($self->{"btn_$_"}); - } - } - - # right pane buttons - $self->{btn_export_gcode} = Wx::Button->new($self, -1, "Export G-code…", wxDefaultPosition, [-1, 30], wxBU_LEFT); - $self->{btn_print} = Wx::Button->new($self, -1, "Print…", wxDefaultPosition, [-1, 30], wxBU_LEFT); - $self->{btn_send_gcode} = Wx::Button->new($self, -1, "Send to printer", wxDefaultPosition, [-1, 30], wxBU_LEFT); - $self->{btn_export_stl} = Wx::Button->new($self, -1, "Export STL…", wxDefaultPosition, [-1, 30], wxBU_LEFT); - #$self->{btn_export_gcode}->SetFont($Slic3r::GUI::small_font); - #$self->{btn_export_stl}->SetFont($Slic3r::GUI::small_font); - $self->{btn_print}->Hide; - $self->{btn_send_gcode}->Hide; - - if ($Slic3r::GUI::have_button_icons) { - my %icons = qw( - add brick_add.png - remove brick_delete.png - reset cross.png - arrange bricks.png - export_gcode cog_go.png - print arrow_up.png - send_gcode arrow_up.png - export_stl brick_go.png - - increase add.png - decrease delete.png - rotate45cw arrow_rotate_clockwise.png - rotate45ccw arrow_rotate_anticlockwise.png - changescale arrow_out.png - split shape_ungroup.png - cut package.png - layers variable_layer_height.png - settings cog.png - ); - for (grep $self->{"btn_$_"}, keys %icons) { - $self->{"btn_$_"}->SetBitmap(Wx::Bitmap->new($Slic3r::var->($icons{$_}), wxBITMAP_TYPE_PNG)); - } - } - $self->selection_changed(0); - $self->object_list_changed; - EVT_BUTTON($self, $self->{btn_export_gcode}, sub { - $self->export_gcode; - }); - EVT_BUTTON($self, $self->{btn_print}, sub { - $self->{print_file} = $self->export_gcode(Wx::StandardPaths::Get->GetTempDir()); - }); - EVT_LEFT_UP($self->{btn_send_gcode}, sub { - my (undef, $e) = @_; - - my $alt = $e->ShiftDown; - wxTheApp->CallAfter(sub { - $self->prepare_send($alt); - }); - }); - EVT_BUTTON($self, $self->{btn_export_stl}, \&export_stl); - - if ($self->{htoolbar}) { - EVT_TOOL($self, TB_ADD, sub { $self->add; }); - EVT_TOOL($self, TB_REMOVE, sub { $self->remove() }); # explicitly pass no argument to remove - EVT_TOOL($self, TB_RESET, sub { $self->reset; }); - EVT_TOOL($self, TB_ARRANGE, sub { $self->arrange; }); - EVT_TOOL($self, TB_MORE, sub { $self->increase; }); - EVT_TOOL($self, TB_FEWER, sub { $self->decrease; }); - EVT_TOOL($self, TB_45CW, sub { $_[0]->rotate(-45) }); - EVT_TOOL($self, TB_45CCW, sub { $_[0]->rotate(45) }); - EVT_TOOL($self, TB_SCALE, sub { $self->changescale(undef); }); - EVT_TOOL($self, TB_SPLIT, sub { $self->split_object; }); - EVT_TOOL($self, TB_CUT, sub { $_[0]->object_cut_dialog }); - EVT_TOOL($self, TB_LAYERS, sub { $_[0]->object_layers_dialog }); - EVT_TOOL($self, TB_SETTINGS, sub { $_[0]->object_settings_dialog }); - } else { - EVT_BUTTON($self, $self->{btn_add}, sub { $self->add; }); - EVT_BUTTON($self, $self->{btn_remove}, sub { $self->remove() }); # explicitly pass no argument to remove - EVT_BUTTON($self, $self->{btn_reset}, sub { $self->reset; }); - EVT_BUTTON($self, $self->{btn_arrange}, sub { $self->arrange; }); - EVT_BUTTON($self, $self->{btn_increase}, sub { $self->increase; }); - EVT_BUTTON($self, $self->{btn_decrease}, sub { $self->decrease; }); - EVT_BUTTON($self, $self->{btn_rotate45cw}, sub { $_[0]->rotate(-45) }); - EVT_BUTTON($self, $self->{btn_rotate45ccw}, sub { $_[0]->rotate(45) }); - EVT_BUTTON($self, $self->{btn_changescale}, sub { $self->changescale(undef); }); - EVT_BUTTON($self, $self->{btn_split}, sub { $self->split_object; }); - EVT_BUTTON($self, $self->{btn_cut}, sub { $_[0]->object_cut_dialog }); - EVT_BUTTON($self, $self->{btn_layers}, sub { $_[0]->object_layers_dialog }); - EVT_BUTTON($self, $self->{btn_settings}, sub { $_[0]->object_settings_dialog }); - } - - $_->SetDropTarget(Slic3r::GUI::Plater::DropTarget->new($self)) - for grep defined($_), - $self, $self->{canvas}, $self->{canvas3D}, $self->{preview3D}; - - EVT_COMMAND($self, -1, $THUMBNAIL_DONE_EVENT, sub { - my ($self, $event) = @_; - my ($obj_idx) = @{$event->GetData}; - return if !$self->{objects}[$obj_idx]; # object was deleted before thumbnail generation completed - - $self->on_thumbnail_made($obj_idx); - }); - - EVT_COMMAND($self, -1, $PROGRESS_BAR_EVENT, sub { - my ($self, $event) = @_; - my ($percent, $message) = @{$event->GetData}; - $self->on_progress_event($percent, $message); - }); - - EVT_COMMAND($self, -1, $ERROR_EVENT, sub { - my ($self, $event) = @_; - Slic3r::GUI::show_error($self, @{$event->GetData}); - }); - - EVT_COMMAND($self, -1, $EXPORT_COMPLETED_EVENT, sub { - my ($self, $event) = @_; - $self->on_export_completed($event->GetData); - }); - - EVT_COMMAND($self, -1, $PROCESS_COMPLETED_EVENT, sub { - my ($self, $event) = @_; - $self->on_process_completed($event->GetData); - }); - - if ($Slic3r::have_threads) { - my $timer_id = Wx::NewId(); - $self->{apply_config_timer} = Wx::Timer->new($self, $timer_id); - EVT_TIMER($self, $timer_id, sub { - my ($self, $event) = @_; - $self->async_apply_config; - }); - } - - $self->{canvas}->update_bed_size; - if ($self->{canvas3D}) { - $self->{canvas3D}->update_bed_size; - $self->{canvas3D}->zoom_to_bed; - } - if ($self->{preview3D}) { - $self->{preview3D}->set_bed_shape($self->{config}->bed_shape); - } - - { - my $presets = $self->{presets_sizer} = Wx::FlexGridSizer->new(3, 3, 1, 2); - $presets->AddGrowableCol(1, 1); - $presets->SetFlexibleDirection(wxHORIZONTAL); - my %group_labels = ( - print => 'Print settings', - filament => 'Filament', - printer => 'Printer', - ); - $self->{preset_choosers} = {}; - $self->{preset_choosers_names} = {}; # wxChoice* => [] - for my $group (qw(print filament printer)) { - # label - my $text = Wx::StaticText->new($self, -1, "$group_labels{$group}:", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT); - $text->SetFont($Slic3r::GUI::small_font); - - # dropdown control - my $choice = Wx::BitmapComboBox->new($self, -1, "", wxDefaultPosition, wxDefaultSize, [], wxCB_READONLY); - $self->{preset_choosers}{$group} = [$choice]; - # setup the listener - EVT_COMBOBOX($choice, $choice, sub { - my ($choice) = @_; - wxTheApp->CallAfter(sub { - $self->_on_change_combobox($group, $choice); - }); - }); - - # settings button - my $settings_btn = Wx::BitmapButton->new($self, -1, Wx::Bitmap->new($Slic3r::var->("cog.png"), wxBITMAP_TYPE_PNG), - wxDefaultPosition, wxDefaultSize, wxBORDER_NONE); - EVT_BUTTON($self, $settings_btn, sub { - $self->show_preset_editor($group, 0); - }); - - $presets->Add($text, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL | wxRIGHT, 4); - $presets->Add($choice, 1, wxALIGN_CENTER_VERTICAL | wxEXPAND | wxBOTTOM, 0); - $presets->Add($settings_btn, 0, wxALIGN_CENTER_VERTICAL | wxEXPAND | wxLEFT, 3); - } - - { - my $o = $self->{settings_override_panel} = Slic3r::GUI::Plater::OverrideSettingsPanel->new($self, - on_change => sub { - my ($opt_key) = @_; - - my ($preset) = $self->selected_presets('print'); - $preset->load_config; - - # If this option is not in the override panel it means it was manually deleted, - # so let's restore the profile value. - if (!$self->{settings_override_config}->has($opt_key)) { - $preset->_dirty_config->set($opt_key, $preset->_config->get($opt_key)); - } else { - # Apply the overrides to the current Print preset, potentially making it dirty - $preset->_dirty_config->apply($self->{settings_override_config}); - - # If this is a configured shortcut (and not just a dirty option), - # save it now. - if (any { $_ eq $opt_key } @{$preset->dirty_config->shortcuts}) { - $preset->save([$opt_key]); - } - } - - $self->load_presets; - $self->config_changed; - - # Reload the open tab if any - if (my $print_tab = $self->GetFrame->{preset_editor_tabs}{print}) { - $print_tab->load_presets; - $print_tab->reload_preset; - } - }); - $o->can_add(0); - $o->can_delete(1); - $o->set_opt_keys([ Slic3r::GUI::PresetEditor::Print->options ]); - $self->{settings_override_config} = Slic3r::Config->new; - $o->set_default_config($self->{settings_override_config}); - $o->set_config($self->{settings_override_config}); - } - - my $object_info_sizer; - { - my $box = Wx::StaticBox->new($self, -1, "Info"); - $object_info_sizer = Wx::StaticBoxSizer->new($box, wxVERTICAL); - $object_info_sizer->SetMinSize([350,-1]); - - { - my $sizer = Wx::BoxSizer->new(wxHORIZONTAL); - $object_info_sizer->Add($sizer, 0, wxEXPAND | wxBOTTOM, 5); - my $text = Wx::StaticText->new($self, -1, "Object:", wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); - $text->SetFont($Slic3r::GUI::small_font); - $sizer->Add($text, 0, wxALIGN_CENTER_VERTICAL); - - # We supply a bogus width to wxChoice (sizer will override it and stretch - # the control anyway), because if we leave the default (-1) it will stretch - # too much according to the contents, and this is bad with long file names. - $self->{object_info_choice} = Wx::Choice->new($self, -1, wxDefaultPosition, [100,-1], []); - $self->{object_info_choice}->SetFont($Slic3r::GUI::small_font); - $sizer->Add($self->{object_info_choice}, 1, wxALIGN_CENTER_VERTICAL); - - EVT_CHOICE($self, $self->{object_info_choice}, sub { - $self->select_object($self->{object_info_choice}->GetSelection); - $self->refresh_canvases; - }); - } - - my $grid_sizer = Wx::FlexGridSizer->new(3, 4, 5, 5); - $grid_sizer->SetFlexibleDirection(wxHORIZONTAL); - $grid_sizer->AddGrowableCol(1, 1); - $grid_sizer->AddGrowableCol(3, 1); - $object_info_sizer->Add($grid_sizer, 0, wxEXPAND); - - my @info = ( - copies => "Copies", - size => "Size", - volume => "Volume", - facets => "Facets", - materials => "Materials", - manifold => "Manifold", - ); - while (my $field = shift @info) { - my $label = shift @info; - my $text = Wx::StaticText->new($self, -1, "$label:", wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); - $text->SetFont($Slic3r::GUI::small_font); - $grid_sizer->Add($text, 0); - - $self->{"object_info_$field"} = Wx::StaticText->new($self, -1, "", wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); - $self->{"object_info_$field"}->SetFont($Slic3r::GUI::small_font); - if ($field eq 'manifold') { - $self->{object_info_manifold_warning_icon} = Wx::StaticBitmap->new($self, -1, Wx::Bitmap->new($Slic3r::var->("error.png"), wxBITMAP_TYPE_PNG)); - $self->{object_info_manifold_warning_icon}->Hide; - - my $h_sizer = Wx::BoxSizer->new(wxHORIZONTAL); - $h_sizer->Add($self->{object_info_manifold_warning_icon}, 0); - $h_sizer->Add($self->{"object_info_$field"}, 0); - $grid_sizer->Add($h_sizer, 0, wxEXPAND); - } else { - $grid_sizer->Add($self->{"object_info_$field"}, 0); - } - } - } - - my $print_info_sizer; - { - my $box = Wx::StaticBox->new($self, -1, "Print Summary"); - $print_info_sizer = Wx::StaticBoxSizer->new($box, wxVERTICAL); - $print_info_sizer->SetMinSize([350,-1]); - my $grid_sizer = Wx::FlexGridSizer->new(2, 2, 5, 5); - $grid_sizer->SetFlexibleDirection(wxHORIZONTAL); - $grid_sizer->AddGrowableCol(1, 1); - $grid_sizer->AddGrowableCol(3, 1); - $print_info_sizer->Add($grid_sizer, 0, wxEXPAND); - my @info = ( - fil => "Used Filament", - cost => "Cost", - ); - while (my $field = shift @info) { - my $label = shift @info; - my $text = Wx::StaticText->new($self, -1, "$label:", wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT); - $text->SetFont($Slic3r::GUI::small_font); - $grid_sizer->Add($text, 0); - - $self->{"print_info_$field"} = Wx::StaticText->new($self, -1, "", wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT); - $self->{"print_info_$field"}->SetFont($Slic3r::GUI::small_font); - $grid_sizer->Add($self->{"print_info_$field"}, 0); - } - $self->{sliced_info_box} = $print_info_sizer; - - } - - my $buttons_sizer = Wx::BoxSizer->new(wxHORIZONTAL); - $buttons_sizer->AddStretchSpacer(1); - $buttons_sizer->Add($self->{btn_export_stl}, 0, wxALIGN_RIGHT, 0); - $buttons_sizer->Add($self->{btn_print}, 0, wxALIGN_RIGHT, 0); - $buttons_sizer->Add($self->{btn_send_gcode}, 0, wxALIGN_RIGHT, 0); - $buttons_sizer->Add($self->{btn_export_gcode}, 0, wxALIGN_RIGHT, 0); - - $self->{right_sizer} = my $right_sizer = Wx::BoxSizer->new(wxVERTICAL); - $right_sizer->Add($presets, 0, wxEXPAND | wxTOP, 10) if defined $presets; - $right_sizer->Add($buttons_sizer, 0, wxEXPAND | wxBOTTOM, 5); - $right_sizer->Add($self->{settings_override_panel}, 1, wxEXPAND, 5); - $right_sizer->Add($object_info_sizer, 0, wxEXPAND, 0); - $right_sizer->Add($print_info_sizer, 0, wxEXPAND, 0); - $right_sizer->Hide($print_info_sizer); - - my $hsizer = Wx::BoxSizer->new(wxHORIZONTAL); - $hsizer->Add($self->{preview_notebook}, 1, wxEXPAND | wxTOP, 1); - $hsizer->Add($right_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, 3); - - my $sizer = Wx::BoxSizer->new(wxVERTICAL); - $sizer->Add($self->{htoolbar}, 0, wxEXPAND, 0) if $self->{htoolbar}; - $sizer->Add($self->{btoolbar}, 0, wxEXPAND, 0) if $self->{btoolbar}; - $sizer->Add($hsizer, 1, wxEXPAND, 0); - - $sizer->SetSizeHints($self); - $self->SetSizer($sizer); - } - - $self->load_presets; - $self->_on_select_preset($_) for qw(printer filament print); - - return $self; -} - -sub prompt_unsaved_changes { - my ($self) = @_; - - foreach my $group (qw(printer filament print)) { - foreach my $choice (@{$self->{preset_choosers}{$group}}) { - my $pp = $self->{preset_choosers_names}{$choice}; - for my $i (0..$#$pp) { - my $preset = first { $_->name eq $pp->[$i] } @{wxTheApp->presets->{$group}}; - if (!$preset->prompt_unsaved_changes($self)) { - # Restore the previous one - $choice->SetSelection($i); - return 0; - } - } - } - } - return 1; -} - -sub _on_change_combobox { - my ($self, $group, $choice) = @_; - - if (0) { - # This code is disabled because wxPerl doesn't provide GetCurrentSelection - my $current_name = $self->{preset_choosers_names}{$choice}[$choice->GetCurrentSelection]; - my $current = first { $_->name eq $current_name } @{wxTheApp->presets->{$group}}; - if (!$current->prompt_unsaved_changes($self)) { - # Restore the previous one - $choice->SetSelection($choice->GetCurrentSelection); - return; - } - } else { - return 0 if !$self->prompt_unsaved_changes; - } - wxTheApp->CallAfter(sub { - # Close the preset editor tab if any - if (exists $self->GetFrame->{preset_editor_tabs}{$group}) { - my $tabpanel = $self->GetFrame->{tabpanel}; - $tabpanel->DeletePage($tabpanel->GetPageIndex($self->GetFrame->{preset_editor_tabs}{$group})); - delete $self->GetFrame->{preset_editor_tabs}{$group}; - $tabpanel->SetSelection(0); # without this, a newly created tab will not be selected by wx - } - - $self->_on_select_preset($group); - - # This will remove the "(modified)" mark from any dirty preset handled here. - $self->load_presets; - }); -} - -sub _on_select_preset { - my ($self, $group) = @_; - - my @presets = $self->selected_presets($group); - - my $s_presets = $Slic3r::GUI::Settings->{presets}; - my $changed = !$s_presets->{$group} || $s_presets->{$group} ne $presets[0]->name; - $s_presets->{$group} = $presets[0]->name; - $s_presets->{"${group}_${_}"} = $presets[$_]->name for 1..$#presets; - - wxTheApp->save_settings; - - # Ignore overrides in the plater, we only care about the preset configs. - my $config = $self->config(1); - - $self->on_extruders_change(scalar @{$config->get('nozzle_diameter')}); - - if ($group eq 'print') { - my $o_config = $self->{settings_override_config}; - my $o_panel = $self->{settings_override_panel}; - - my $shortcuts = $config->get('shortcuts'); - - # Re-populate the override panel with the configured shortcuts - # and the dirty options. - $o_config->clear; - foreach my $opt_key (@$shortcuts, $presets[0]->dirty_options) { - # Don't add shortcut for shortcuts! - next if $opt_key eq 'shortcuts'; - $o_config->set($opt_key, $config->get($opt_key)); - } - - $o_panel->set_default_config($config); - $o_panel->set_fixed_options(\@$shortcuts); - $o_panel->update_optgroup; - } elsif ($group eq 'printer') { - # reload print and filament settings to honor their compatible_printer options - $self->load_presets; - } - - $self->config_changed; -} - -sub load_config { - my ($self, $config) = @_; - - # This method is called with the CLI options. - # We add them to the visible overrides. - $self->{settings_override_config}->apply($config); - $self->{settings_override_panel}->update_optgroup; - - $self->config_changed; -} - -sub GetFrame { - my ($self) = @_; - return &Wx::GetTopLevelParent($self); -} - -sub load_presets { - my ($self) = @_; - - my $selected_printer_name; - foreach my $group (qw(printer filament print)) { - my @presets = @{wxTheApp->presets->{$group}}; - - # Skip presets not compatible with the selected printer, if they - # have other compatible printers configured (and at least one of them exists). - if ($group eq 'filament' || $group eq 'print') { - my %printer_names = map { $_->name => 1 } @{ wxTheApp->presets->{printer} }; - for (my $i = 0; $i <= $#presets; ++$i) { - my $config = $presets[$i]->dirty_config; - next if !$config->has('compatible_printers'); - my @compat = @{$config->compatible_printers}; - if (@compat - && (none { $_ eq $selected_printer_name } @compat) - && (any { $printer_names{$_} } @compat)) { - splice @presets, $i, 1; - --$i; - } - } - } - - # Only show the default presets if we have no other presets. - if (@presets > 1) { - @presets = grep { !$_->default } @presets; - } - - # get the wxChoice objects for this group - my @choosers = @{ $self->{preset_choosers}{$group} }; - - # find the currently selected one(s) according to the saved file - my @sel = (); - if (my $current = $Slic3r::GUI::Settings->{presets}{$group}) { - push @sel, grep defined, first { $presets[$_]->name eq $current } 0..$#presets; - } - for my $i (1..(@choosers-1)) { - if (my $current = $Slic3r::GUI::Settings->{presets}{"${group}_$i"}) { - push @sel, grep defined, first { $presets[$_]->name eq $current } 0..$#presets; - } - } - @sel = (0) if !@sel; - - # populate the wxChoice objects - my @preset_names = (); - foreach my $choice (@choosers) { - $choice->Clear; - $self->{preset_choosers_names}{$choice} = []; - foreach my $preset (@presets) { - # load/generate the proper icon - my $bitmap; - if ($group eq 'filament') { - my $config = $preset->dirty_config; - if ($preset->default || !$config->has('filament_colour')) { - $bitmap = Wx::Bitmap->new($Slic3r::var->("spool.png"), wxBITMAP_TYPE_PNG); - } else { - my $rgb_hex = $config->filament_colour->[0]; - - $rgb_hex =~ s/^#//; - my @rgb = unpack 'C*', pack 'H*', $rgb_hex; - my $image = Wx::Image->new(16,16); - $image->SetRGB(Wx::Rect->new(0,0,16,16), @rgb); - $bitmap = Wx::Bitmap->new($image); - } - } elsif ($group eq 'print') { - $bitmap = Wx::Bitmap->new($Slic3r::var->("cog.png"), wxBITMAP_TYPE_PNG); - } elsif ($group eq 'printer') { - $bitmap = Wx::Bitmap->new($Slic3r::var->("printer_empty.png"), wxBITMAP_TYPE_PNG); - } - $choice->AppendString($preset->dropdown_name, $bitmap); - push @{$self->{preset_choosers_names}{$choice}}, $preset->name; - } - - my $selected = shift @sel; - if (defined $selected && $selected <= $#presets) { - # call SetSelection() only after SetString() otherwise the new string - # won't be picked up as the visible string - $choice->SetSelection($selected); - - my $preset_name = $self->{preset_choosers_names}{$choice}[$selected]; - push @preset_names, $preset_name; - # TODO: populate other filament preset placeholders - $selected_printer_name = $preset_name if $group eq 'printer'; - } - } - - $self->{print}->placeholder_parser->set_multiple("${group}_preset", [ @preset_names ]); - } -} - -sub select_preset_by_name { - my ($self, $name, $group, $n) = @_; - - # $n is optional - - my $presets = wxTheApp->presets->{$group}; - my $choosers = $self->{preset_choosers}{$group}; - my $names = $self->{preset_choosers_names}{$choosers->[0]}; - my $i = first { $names->[$_] eq $name } 0..$#$names; - return if !defined $i; - - if (defined $n && $n <= $#$choosers) { - $choosers->[$n]->SetSelection($i); - } else { - $_->SetSelection($i) for @$choosers; - } - $self->_on_select_preset($group); -} - -sub selected_presets { - my ($self, $group) = @_; - - my %presets = (); - foreach my $group (qw(printer filament print)) { - $presets{$group} = []; - foreach my $choice (@{$self->{preset_choosers}{$group}}) { - my $sel = $choice->GetSelection; - $sel = 0 if $sel == -1; - push @{ $presets{$group} }, - grep { $_->name eq $self->{preset_choosers_names}{$choice}[$sel] } - @{wxTheApp->presets->{$group}}; - } - } - return $group ? @{$presets{$group}} : %presets; -} - -sub show_preset_editor { - my ($self, $group, $i) = @_; - - wxTheApp->CallAfter(sub { - my @presets = $self->selected_presets($group); - - my $preset_editor; - my $dlg; - my $mainframe = $self->GetFrame; - my $tabpanel = $mainframe->{tabpanel}; - if (exists $mainframe->{preset_editor_tabs}{$group}) { - # we already have an open editor - $tabpanel->SetSelection($tabpanel->GetPageIndex($mainframe->{preset_editor_tabs}{$group})); - return; - } elsif ($Slic3r::GUI::Settings->{_}{tabbed_preset_editors}) { - my $class = "Slic3r::GUI::PresetEditor::" . ucfirst($group); - $mainframe->{preset_editor_tabs}{$group} = $preset_editor = $class->new($self->GetFrame); - $tabpanel->AddPage($preset_editor, ucfirst($group) . " Settings", 1); - } else { - my $class = "Slic3r::GUI::PresetEditorDialog::" . ucfirst($group); - $dlg = $class->new($self); - $preset_editor = $dlg->preset_editor; - } - - $preset_editor->select_preset_by_name($presets[$i // 0]->name); - $preset_editor->on_value_change(sub { - # Re-load the presets in order to toggle the (modified) suffix - $self->load_presets; - - # Update shortcuts - $self->_on_select_preset($group); - - # Use the new config wherever we actually use its contents - $self->config_changed; - }); - my $cb = sub { - my ($group, $preset) = @_; - - # Re-load the presets as they might have changed. - $self->load_presets; - - # Select the preset in plater too - $self->select_preset_by_name($preset->name, $group, $i, 1); - }; - $preset_editor->on_select_preset($cb); - $preset_editor->on_save_preset($cb); - - if ($dlg) { - $dlg->Show; - } - }); -} - -# Returns the current config by merging the selected presets and the overrides. -sub config { - my ($self, $ignore_overrides) = @_; - - # use a DynamicConfig because FullPrintConfig is not enough - my $config = Slic3r::Config->new_from_defaults; - - # get defaults also for the values tracked by the Plater's config - # (for example 'shortcuts') - $config->apply(Slic3r::Config->new_from_defaults(@{$self->{config}->get_keys})); - - my %classes = map { $_ => "Slic3r::GUI::PresetEditor::".ucfirst($_) } - qw(print filament printer); - - my %presets = $self->selected_presets; - $config->apply($_->dirty_config) for @{ $presets{printer} }; - if (@{ $presets{filament} }) { - my $filament_config = $presets{filament}[0]->dirty_config; - - for my $i (1..$#{ $presets{filament} }) { - my $preset = $presets{filament}[$i]; - my $config = $preset->dirty_config; - foreach my $opt_key (@{$config->get_keys}) { - if ($filament_config->has($opt_key)) { - my $value = $filament_config->get($opt_key); - next unless ref $value eq 'ARRAY'; - $value->[$i] = $config->get($opt_key)->[0]; - $filament_config->set($opt_key, $value); - } - } - } - - $config->apply($filament_config); - } - $config->apply($_->dirty_config) for @{ $presets{print} }; - $config->apply($self->{settings_override_config}) - unless $ignore_overrides; - - return $config; -} - -sub get_object_index { - my $self = shift; - my ($object_indentifier) = @_; - return undef if !defined $object_indentifier; - - for (my $i = 0; $i <= $#{$self->{objects}}; $i++){ - if ($self->{objects}->[$i]->identifier eq $object_indentifier) { - return $i; - } - } - return undef; -} - -sub add_undo_operation { - my $self = shift; - my @parameters = @_; - - my $type = $parameters[0]; - my $object_identifier = $parameters[1]; - my @attributes = @parameters[2..$#parameters]; # operation values. - - my $new_undo_operation = new Slic3r::GUI::Plater::UndoOperation($type, $object_identifier, \@attributes); - - push @{$self->{undo_stack}}, $new_undo_operation; - - $self->{redo_stack} = []; - - $self->limit_undo_operations(8); # Current limit of undo/redo operations. - $self->GetFrame->on_undo_redo_stacks_changed; - - return $new_undo_operation; -} - -sub limit_undo_operations { - my ($self, $limit)= @_; - return if !defined $limit; - # Delete undo operations succeeded by 4 operations or more to save memory. - while ($#{$self->{undo_stack}} + 1 > $limit) { - print "Removing an old operation.\n"; - splice @{$self->{undo_stack}}, 0, 1; - } -} - -sub undo { - my $self = shift; - - my $operation = pop @{$self->{undo_stack}}; - return if !defined $operation; - - push @{$self->{redo_stack}}, $operation; - - my $type = $operation->{type}; - - if ($type eq "ROTATE") { - my $object_id = $operation->{object_identifier}; - my $obj_idx = $self->get_object_index($object_id); - $self->select_object($obj_idx); - - my $angle = $operation->{attributes}->[0]; - my $axis = $operation->{attributes}->[1]; - $self->rotate(-1 * $angle, $axis, 'true'); # Apply inverse transformation. - - } elsif ($type eq "INCREASE") { - my $object_id = $operation->{object_identifier}; - my $obj_idx = $self->get_object_index($object_id); - $self->select_object($obj_idx); - - my $copies = $operation->{attributes}->[0]; - $self->decrease($copies, 'true'); - - } elsif ($type eq "DECREASE") { - my $object_id = $operation->{object_identifier}; - my $obj_idx = $self->get_object_index($object_id); - $self->select_object($obj_idx); - - my $copies = $operation->{attributes}->[0]; - $self->increase($copies, 'true'); - - } elsif ($type eq "MIRROR") { - my $object_id = $operation->{object_identifier}; - my $obj_idx = $self->get_object_index($object_id); - $self->select_object($obj_idx); - - my $axis = $operation->{attributes}->[0]; - $self->mirror($axis, 'true'); - - } elsif ($type eq "REMOVE") { - my $_model = $operation->{attributes}->[0]; - $self->load_model_objects(@{$_model->objects}); - $self->{object_identifier}--; # Decrement the identifier as we will change the object identifier with the saved one. - $self->{objects}->[-1]->identifier($operation->{object_identifier}); - - } elsif ($type eq "CUT" || $type eq "SPLIT") { - # Delete the produced objects. - my $obj_identifiers_start = $operation->{attributes}->[2]; - for (my $i_object = 0; $i_object < $#{$operation->{attributes}->[1]->objects} + 1; $i_object++) { - $self->remove($self->get_object_index($obj_identifiers_start++), 'true'); - } - # Add the original object. - $self->load_model_objects(@{$operation->{attributes}->[0]->objects}); - $self->{object_identifier}--; - $self->{objects}->[-1]->identifier($operation->{object_identifier}); # Add the original assigned identifier. - - } elsif ($type eq "CHANGE_SCALE") { - my $object_id = $operation->{object_identifier}; - my $obj_idx = $self->get_object_index($object_id); - $self->select_object($obj_idx); - - my $axis = $operation->{attributes}->[0]; - my $tosize = $operation->{attributes}->[1]; - my $saved_scale = $operation->{attributes}->[3]; - $self->changescale($axis, $tosize, $saved_scale, 'true'); - - } elsif ($type eq "RESET") { - # Revert changes to the plater object identifier. It's modified when adding new objects only not when undo/redo is executed. - my $current_objects_identifier = $self->{object_identifier}; - my $_model = $operation->{attributes}->[0]; - $self->load_model_objects(@{$_model->objects}); - $self->{object_identifier} = $current_objects_identifier; - - # don't forget the identifiers. - my $objects_count = $#{$operation->{attributes}->[0]->objects} + 1; - - foreach my $identifier (@{$operation->{attributes}->[1]}) - { - $self->{objects}->[-$objects_count]->identifier($identifier); - $objects_count--; - } - - } elsif ($type eq "ADD") { - my $objects_count = $#{$operation->{attributes}->[0]->objects} + 1; - my $identifier_start = $operation->{attributes}->[1]; - for (my $identifier = $identifier_start; $identifier < $objects_count + $identifier_start; $identifier++) { - my $obj_idx = $self->get_object_index($identifier); - $self->remove($obj_idx, 'true'); - } - } -} - -sub redo { - my $self = shift; - - my $operation = pop @{$self->{redo_stack}}; - return if !defined $operation; - - push @{$self->{undo_stack}}, $operation; - - my $type = $operation->{type}; - - if ($type eq "ROTATE") { - my $object_id = $operation->{object_identifier}; - my $obj_idx = $self->get_object_index($object_id); - $self->select_object($obj_idx); - - my $angle = $operation->{attributes}->[0]; - my $axis = $operation->{attributes}->[1]; - $self->rotate($angle, $axis, 'true'); - - } elsif ($type eq "INCREASE") { - my $object_id = $operation->{object_identifier}; - my $obj_idx = $self->get_object_index($object_id); - $self->select_object($obj_idx); - - my $copies = $operation->{attributes}->[0]; - $self->increase($copies, 'true'); - - } elsif ($type eq "DECREASE") { - my $object_id = $operation->{object_identifier}; - my $obj_idx = $self->get_object_index($object_id); - $self->select_object($obj_idx); - - my $copies = $operation->{attributes}->[0]; - $self->decrease($copies, 'true'); - - } elsif ($type eq "MIRROR") { - my $object_id = $operation->{object_identifier}; - my $obj_idx = $self->get_object_index($object_id); - $self->select_object($obj_idx); - - my $axis = $operation->{attributes}->[0]; - $self->mirror($axis, 'true'); - - } elsif ($type eq "REMOVE") { - my $object_id = $operation->{object_identifier}; - my $obj_idx = $self->get_object_index($object_id); - $self->select_object($obj_idx); - - $self->remove(undef, 'true'); - - } elsif ($type eq "CUT" || $type eq "SPLIT") { - # Delete the org objects. - $self->remove($self->get_object_index($operation->{object_identifier}), 'true'); - # Add the new objects and revert changes to the plater object identifier. - my $current_objects_identifier = $self->{object_identifier}; - $self->load_model_objects(@{$operation->{attributes}->[1]->objects}); - $self->{object_identifier} = $current_objects_identifier; - # Add their identifiers. - my $obj_identifiers_start = $operation->{attributes}->[2]; - my $obj_count = $#{$operation->{attributes}->[1]->objects} + 1; - for (my $i_object = 0; $i_object <= $#{$operation->{attributes}->[1]->objects}; $i_object++){ - $self->{objects}->[-$obj_count]->identifier($obj_identifiers_start++); - $obj_count--; - } - } elsif ($type eq "CHANGE_SCALE") { - my $object_id = $operation->{object_identifier}; - my $obj_idx = $self->get_object_index($object_id); - $self->select_object($obj_idx); - - my $axis = $operation->{attributes}->[0]; - my $tosize = $operation->{attributes}->[1]; - my $old_scale = $operation->{attributes}->[2]; - $self->changescale($axis, $tosize, $old_scale, 'true'); - - } elsif ($type eq "RESET") { - $self->reset('true'); - } elsif ($type eq "ADD") { - # Revert changes to the plater object identifier. It's modified when adding new objects only not when undo/redo is executed. - my $current_objects_identifier = $self->{object_identifier}; - $self->load_model_objects(@{$operation->{attributes}->[0]->objects}); - $self->{object_identifier} = $current_objects_identifier; - - my $objects_count = $#{$operation->{attributes}->[0]->objects} + 1; - my $start_identifier = $operation->{attributes}->[1]; - foreach my $object (@{$operation->{attributes}->[0]->objects}) - { - $self->{objects}->[-$objects_count]->identifier($start_identifier++); - $objects_count--; - } - } -} - -sub add { - my $self = shift; - - # Save the current object identifier to track added objects. - my $start_object_id = $self->{object_identifier}; - - my @input_files = wxTheApp->open_model($self); - $self->load_file($_) for @input_files; - - # Check if no objects are added. - if ($start_object_id == $self->{object_identifier}) { - return; - } - - # Save the added objects. - my $new_model = $self->{model}->new; - - # Get newly added objects count. - my $new_objects_count = $self->{object_identifier} - $start_object_id; - for (my $i_object = $start_object_id; $i_object < $new_objects_count + $start_object_id; $i_object++){ - my $object_index = $self->get_object_index($i_object); - $new_model->add_object($self->{model}->get_object($object_index)); - } - - $self->add_undo_operation("ADD", undef, $new_model, $start_object_id); -} - -sub add_tin { - my $self = shift; - - my @input_files = wxTheApp->open_model($self); - return if !@input_files; - - my $offset = Wx::GetNumberFromUser("", "Enter the minimum thickness in mm (i.e. the offset from the lowest point):", "2.5D TIN", - 5, 0, 1000000, $self); - return if $offset < 0; - - foreach my $input_file (@input_files) { - my $model = eval { Slic3r::Model->read_from_file($input_file) }; - Slic3r::GUI::show_error($self, $@) if $@; - next if !$model; - - if ($model->looks_like_multipart_object) { - Slic3r::GUI::show_error($self, "Multi-part models cannot be opened as 2.5D TIN files. Please load a single continuous mesh."); - next; - } - - my $model_object = $model->get_object(0); - eval { - $model_object->get_volume(0)->extrude_tin($offset); - }; - Slic3r::GUI::show_error($self, $@) if $@; - - $self->load_model_objects($model_object); - } -} - -sub load_file { - my $self = shift; - my ($input_file, $obj_idx_to_load) = @_; - - $Slic3r::GUI::Settings->{recent}{skein_directory} = dirname($input_file); - wxTheApp->save_settings; - - my $process_dialog = Wx::ProgressDialog->new('Loading…', "Processing input file…", 100, $self, 0); - $process_dialog->Pulse; - - local $SIG{__WARN__} = Slic3r::GUI::warning_catcher($self); - - my $model = eval { Slic3r::Model->read_from_file($input_file) }; - Slic3r::GUI::show_error($self, $@) if $@; - - my @obj_idx = (); - if (defined $model) { - if ($model->looks_like_multipart_object) { - my $dialog = Wx::MessageDialog->new($self, - "This file contains several objects positioned at multiple heights. " - . "Instead of considering them as multiple objects, should I consider\n" - . "this file as a single object having multiple parts?\n", - 'Multi-part object detected', wxICON_WARNING | wxYES | wxNO); - if ($dialog->ShowModal() == wxID_YES) { - $model->convert_multipart_object; - } - } - - for my $obj_idx (0..($model->objects_count-1)) { - my $object = $model->objects->[$obj_idx]; - $object->set_input_file($input_file); - for my $vol_idx (0..($object->volumes_count-1)) { - my $volume = $object->get_volume($vol_idx); - $volume->set_input_file($input_file); - $volume->set_input_file_obj_idx($obj_idx); - $volume->set_input_file_obj_idx($vol_idx); - } - } - - my $i = 0; - - if (defined $obj_idx_to_load) { - return () if $obj_idx_to_load >= $model->objects_count; - @obj_idx = $self->load_model_objects($model->get_object($obj_idx_to_load)); - $i = $obj_idx_to_load; - } else { - @obj_idx = $self->load_model_objects(@{$model->objects}); - } - - foreach my $obj_idx (@obj_idx) { - $self->{objects}[$obj_idx]->input_file($input_file); - $self->{objects}[$obj_idx]->input_file_obj_idx($i++); - } - - $self->statusbar->SetStatusText("Loaded " . basename($input_file)); - - if($self->{scaled_down}) { - $self->statusbar->SetStatusText('Your object appears to be too large, so it was automatically scaled down to fit your print bed.'); - } - if($self->{outside_bounds}) { - $self->statusbar->SetStatusText('Some of your object(s) appear to be outside the print bed. Use the arrange button to correct this.'); - } - - } - - $process_dialog->Destroy; - - # Empty the redo stack - $self->{redo_stack} = []; - - return @obj_idx; -} - -sub load_model_objects { - my ($self, @model_objects) = @_; - - # Always restart background process when adding new objects. - # This prevents lack of processing in some circumstances when background process is - # running but adding a new object does not invalidate anything. - $self->stop_background_process; - - my $bed_centerf = $self->bed_centerf; - my $bed_shape = Slic3r::Polygon->new_scale(@{$self->{config}->bed_shape}); - my $bed_size = $bed_shape->bounding_box->size; - - my $need_arrange = 0; - my @obj_idx = (); - foreach my $model_object (@model_objects) { - my $o = $self->{model}->add_object($model_object); - $o->repair; - - push @{ $self->{objects} }, Slic3r::GUI::Plater::Object->new( - name => $model_object->name || basename($model_object->input_file), identifier => - $self->{object_identifier}++ - ); - - push @obj_idx, $#{ $self->{objects} }; - - if ($model_object->instances_count == 0) { - if ($Slic3r::GUI::Settings->{_}{autocenter}) { - # if object has no defined position(s) we need to rearrange everything after loading - $need_arrange = 1; - - # add a default instance and center object around origin - $o->center_around_origin; # also aligns object to Z = 0 - $o->add_instance(offset => $bed_centerf); - } else { - # if user turned autocentering off, automatic arranging would disappoint them - $need_arrange = 0; - - if ($Slic3r::GUI::Settings->{_}{autoalignz}) { - $o->align_to_ground; # aligns object to Z = 0 - } - $o->add_instance(); - } - } else { - if ($Slic3r::GUI::Settings->{_}{autoalignz}) { - # if object has defined positions we still need to ensure it's aligned to Z = 0 - $o->align_to_ground; - } - } - - { - # if the object is too large (more than 5 times the bed), scale it down - my $size = $o->bounding_box->size; - my $ratio = max(@$size[X,Y]) / unscale(max(@$bed_size[X,Y])); - if ($ratio > 5) { - $_->set_scaling_factor(1/$ratio) for @{$o->instances}; - $self->{scaled_down} = 1; - } - } - - { - # if after scaling the object does not fit on the bed provide a warning - my $bed_bounds = Slic3r::Geometry::BoundingBoxf->new_from_points($self->{config}->bed_shape); - my $o_bounds = $o->bounding_box; - my $min = Slic3r::Pointf->new($o_bounds->x_min, $o_bounds->y_min); - my $max = Slic3r::Pointf->new($o_bounds->x_max, $o_bounds->y_max); - if (!$bed_bounds->contains_point($min) || !$bed_bounds->contains_point($max)) - { - $self->{outside_bounds} = 1; - } - } - - $self->{print}->auto_assign_extruders($o); - $self->{print}->add_model_object($o); - } - - $self->make_thumbnail($_) for @obj_idx; - $self->arrange if $need_arrange; - $self->on_model_change; - - # zoom to objects - $self->{canvas3D}->zoom_to_volumes - if $self->{canvas3D}; - - $self->object_list_changed; - - return @obj_idx; -} - -sub bed_centerf { - my ($self) = @_; - - my $bed_shape = Slic3r::Polygon->new_scale(@{$self->{config}->bed_shape}); - my $bed_center = $bed_shape->bounding_box->center; - return Slic3r::Pointf->new(unscale($bed_center->x), unscale($bed_center->y)); #) -} - -sub remove { - my $self = shift; - my ($obj_idx, $dont_push) = @_; - - $self->stop_background_process; - - # Prevent toolpaths preview from rendering while we modify the Print object - $self->{toolpaths2D}->enabled(0) if $self->{toolpaths2D}; - $self->{preview3D}->enabled(0) if $self->{preview3D}; - - # if no object index is supplied, remove the selected one - if (!defined $obj_idx) { - ($obj_idx, undef) = $self->selected_object; - } - - # Save the object identifier and copy the object for undo/redo operations. - my $object_id = $self->{objects}->[$obj_idx]->identifier; - my $new_model = Slic3r::Model->new; # store this before calling get_object() - $new_model->add_object($self->{model}->get_object($obj_idx)); - - splice @{$self->{objects}}, $obj_idx, 1; - $self->{model}->delete_object($obj_idx); - $self->{print}->delete_object($obj_idx); - $self->object_list_changed; - - $self->select_object(undef); - $self->on_model_change; - - if (!defined $dont_push) { - $self->add_undo_operation("REMOVE", $object_id, $new_model); - } -} - -sub reset { - my ($self, $dont_push) = @_; - - $self->stop_background_process; - - # Prevent toolpaths preview from rendering while we modify the Print object - $self->{toolpaths2D}->enabled(0) if $self->{toolpaths2D}; - $self->{preview3D}->enabled(0) if $self->{preview3D}; - - # Save the current model. - my $current_model = $self->{model}->clone; - - if (!defined $dont_push) { - # Get the identifiers of the curent model objects. - my $objects_identifiers = []; - for (my $i = 0; $i <= $#{$self->{objects}}; $i++){ - push @{$objects_identifiers}, $self->{objects}->[$i]->identifier; - } - $self->add_undo_operation("RESET", undef, $current_model, $objects_identifiers); - } - - @{$self->{objects}} = (); - $self->{model}->clear_objects; - $self->{print}->clear_objects; - $self->object_list_changed; - - $self->select_object(undef); - $self->on_model_change; -} - -sub increase { - my ($self, $copies, $dont_push) = @_; - - $copies //= 1; - my ($obj_idx, $object) = $self->selected_object; - my $model_object = $self->{model}->objects->[$obj_idx]; - my $instance = $model_object->instances->[-1]; - for my $i (1..$copies) { - $instance = $model_object->add_instance( - offset => Slic3r::Pointf->new(map 10+$_, @{$instance->offset}), - z_translation => $instance->z_translation, - scaling_factor => $instance->scaling_factor, - scaling_vector => $instance->scaling_vector, - rotation => $instance->rotation, - x_rotation => $instance->x_rotation, - y_rotation => $instance->y_rotation, - ); - $self->{print}->objects->[$obj_idx]->add_copy($instance->offset); - } - - if (!defined $dont_push) { - $self->add_undo_operation("INCREASE", $object->identifier , $copies); - } - - # only autoarrange if user has autocentering enabled - $self->stop_background_process; - if ($Slic3r::GUI::Settings->{_}{autocenter}) { - $self->arrange; - } else { - $self->on_model_change; - } -} - -sub decrease { - my ($self, $copies, $dont_push) = @_; - - $copies //= 1; - $self->stop_background_process; - - my ($obj_idx, $object) = $self->selected_object; - my $model_object = $self->{model}->objects->[$obj_idx]; - if ($model_object->instances_count > $copies) { - for my $i (1..$copies) { - $model_object->delete_last_instance; - $self->{print}->objects->[$obj_idx]->delete_last_copy; - } - if (!defined $dont_push) { - $self->add_undo_operation("DECREASE", $object->identifier, $copies); - } - } else { - $self->remove; - } - - $self->on_model_change; -} - -sub set_number_of_copies { - my ($self) = @_; - - $self->pause_background_process; - - # get current number of copies - my ($obj_idx, $object) = $self->selected_object; - my $model_object = $self->{model}->objects->[$obj_idx]; - - # prompt user - my $copies = Wx::GetNumberFromUser("", "Enter the number of copies of the selected object:", "Copies", $model_object->instances_count, 0, 1000, $self); - return if $copies == -1; - my $diff = $copies - $model_object->instances_count; - if ($diff == 0) { - # no variation - $self->resume_background_process; - } elsif ($diff > 0) { - $self->increase($diff); - } elsif ($diff < 0) { - $self->decrease(-$diff); - } -} - -sub center_selected_object_on_bed { - my ($self) = @_; - - my ($obj_idx, $object) = $self->selected_object; - return if !defined $obj_idx; - - my $model_object = $self->{model}->objects->[$obj_idx]; - my $bb = $model_object->bounding_box; - my $size = $bb->size; - my $vector = Slic3r::Pointf->new( - $self->bed_centerf->x - $bb->x_min - $size->x/2, - $self->bed_centerf->y - $bb->y_min - $size->y/2, #// - ); - $_->offset->translate(@$vector) for @{$model_object->instances}; - $self->refresh_canvases; -} - -sub rotate { - my $self = shift; - my ($angle, $axis, $dont_push) = @_; - - # angle is in degrees - $axis //= Z; - - my ($obj_idx, $object) = $self->selected_object; - return if !defined $obj_idx; - - my $model_object = $self->{model}->objects->[$obj_idx]; - my $model_instance = $model_object->instances->[0]; - - # we need thumbnail to be computed before allowing rotation - return if !$object->thumbnail; - - if (!defined $angle) { - my $axis_name = $axis == X ? 'X' : $axis == Y ? 'Y' : 'Z'; - my $default = $axis == Z ? rad2deg($model_instance->rotation) : 0; - # Wx::GetNumberFromUser() does not support decimal numbers - $angle = Wx::GetTextFromUser("Enter the rotation angle:", "Rotate around $axis_name axis", - $default, $self); - return if !$angle || $angle !~ /^-?\d*(?:\.\d*)?$/ || $angle == -1; - } - - $self->stop_background_process; - - if ($axis == Z) { - my $new_angle = deg2rad($angle); - $_->set_rotation($_->rotation + $new_angle) for @{ $model_object->instances }; - $object->transform_thumbnail($self->{model}, $obj_idx); - } else { - # rotation around X and Y needs to be performed on mesh - # so we first apply any Z rotation - $model_object->transform_by_instance($model_instance, 1); - $model_object->rotate(deg2rad($angle), $axis); - - # realign object to Z = 0 - $model_object->center_around_origin; - $self->make_thumbnail($obj_idx); - } - - $model_object->update_bounding_box; - # update print and start background processing - $self->{print}->add_model_object($model_object, $obj_idx); - - if (!defined $dont_push) { - $self->add_undo_operation("ROTATE", $object->identifier, $angle, $axis); - } - - $self->selection_changed; # refresh info (size etc.) - $self->on_model_change; -} - -sub mirror { - my ($self, $axis, $dont_push) = @_; - - my ($obj_idx, $object) = $self->selected_object; - return if !defined $obj_idx; - - my $model_object = $self->{model}->objects->[$obj_idx]; - my $model_instance = $model_object->instances->[0]; - - # apply Z rotation before mirroring - $model_object->transform_by_instance($model_instance, 1); - - $model_object->mirror($axis); - $model_object->update_bounding_box; - - # realign object to Z = 0 - $model_object->center_around_origin; - $self->make_thumbnail($obj_idx); - - # update print and start background processing - $self->stop_background_process; - $self->{print}->add_model_object($model_object, $obj_idx); - - if (!defined $dont_push) { - $self->add_undo_operation("MIRROR", $object->identifier, $axis); - } - - $self->selection_changed; # refresh info (size etc.) - $self->on_model_change; -} - -sub changescale { - my ($self, $axis, $tosize, $saved_scale, $dont_push) = @_; - - my ($obj_idx, $object) = $self->selected_object; - return if !defined $obj_idx; - - my $model_object = $self->{model}->objects->[$obj_idx]; - my $model_instance = $model_object->instances->[0]; - - # we need thumbnail to be computed before allowing scaling - return if !$object->thumbnail; - - my $object_size = $model_object->bounding_box->size; - my $bed_size = Slic3r::Polygon->new_scale(@{$self->{config}->bed_shape})->bounding_box->size; - - my $old_scale; - my $scale; - - if (defined $axis) { - my $axis_name = $axis == X ? 'X' : $axis == Y ? 'Y' : 'Z'; - if (!defined $saved_scale) { - if ($tosize) { - my $cursize = $object_size->[$axis]; - # Wx::GetNumberFromUser() does not support decimal numbers - my $newsize = Wx::GetTextFromUser( - sprintf("Enter the new size for the selected object (print bed: %smm):", $bed_size->[$axis]), - "Scale along $axis_name", - $cursize, $self); - return if !$newsize || $newsize !~ /^\d*(?:\.\d*)?$/ || $newsize < 0; - $scale = $newsize / $cursize * 100; - $old_scale = $cursize / $newsize * 100; - } else { - # Wx::GetNumberFromUser() does not support decimal numbers - $scale = Wx::GetTextFromUser("Enter the scale % for the selected object:", - "Scale along $axis_name", 100, $self); - $scale =~ s/%$//; - return if !$scale || $scale !~ /^\d*(?:\.\d*)?$/ || $scale < 0; - $old_scale = 100 * 100 / $scale; - } - } - else { - $scale = $saved_scale; - } - - # apply Z rotation before scaling - $model_object->transform_by_instance($model_instance, 1); - - my $versor = [1,1,1]; - $versor->[$axis] = $scale/100; - $model_object->scale_xyz(Slic3r::Pointf3->new(@$versor)); - # object was already aligned to Z = 0, so no need to realign it - $self->make_thumbnail($obj_idx); - } else { - if (!defined $saved_scale) { - if ($tosize) { - my $cursize = max(@$object_size); - # Wx::GetNumberFromUser() does not support decimal numbers - my $newsize = Wx::GetTextFromUser("Enter the new max size for the selected object:", - "Scale", $cursize, $self); - return if !$newsize || $newsize !~ /^\d*(?:\.\d*)?$/ || $newsize < 0; - $scale = $model_instance->scaling_factor * $newsize / $cursize * 100; - $old_scale = $model_instance->scaling_factor * 100; - } else { - # max scale factor should be above 2540 to allow importing files exported in inches - # Wx::GetNumberFromUser() does not support decimal numbers - $scale = Wx::GetTextFromUser("Enter the scale % for the selected object:", 'Scale', - $model_instance->scaling_factor * 100, $self); - return if !$scale || $scale !~ /^\d*(?:\.\d*)?$/ || $scale < 0; - $old_scale = $model_instance->scaling_factor * 100; - } - return if !$scale || $scale < 0; - } else { - $scale = $saved_scale; - } - - $scale /= 100; # turn percent into factor - - my $variation = $scale / $model_instance->scaling_factor; - foreach my $range (@{ $model_object->layer_height_ranges }) { - $range->[0] *= $variation; - $range->[1] *= $variation; - } - $_->set_scaling_factor($scale) for @{ $model_object->instances }; - $object->transform_thumbnail($self->{model}, $obj_idx); - - $scale *= 100; - } - - # Add the new undo operation. - if (!defined $dont_push) { - $self->add_undo_operation("CHANGE_SCALE", $object->identifier, $axis, $tosize, $scale, $old_scale); - } - - $model_object->update_bounding_box; - - # update print and start background processing - $self->stop_background_process; - $self->{print}->add_model_object($model_object, $obj_idx); - - $self->selection_changed(1); # refresh info (size, volume etc.) - $self->on_model_change; -} - -sub arrange { - my $self = shift; - - $self->pause_background_process; - - my $bb = Slic3r::Geometry::BoundingBoxf->new_from_points($self->{config}->bed_shape); - my $success = $self->{model}->arrange_objects($self->config->min_object_distance, $bb); - # ignore arrange failures on purpose: user has visual feedback and we don't need to warn him - # when parts don't fit in print bed - - $self->statusbar->SetStatusText('Objects were arranged.'); - $self->on_model_change(1); -} - -sub split_object { - my ($self, $dont_push) = @_; - - my ($obj_idx, $current_object) = $self->selected_object; - - # we clone model object because split_object() adds the split volumes - # into the same model object, thus causing duplicates when we call load_model_objects() - my $new_model = $self->{model}->clone; # store this before calling get_object() - my $current_model_object = $new_model->get_object($obj_idx); - - if ($current_model_object->volumes_count > 1) { - Slic3r::GUI::warning_catcher($self)->("The selected object can't be split because it contains more than one volume/material."); - return; - } - - $self->pause_background_process; - - # Save the curent model object for undo/redo operataions. - my $org_object_model = Slic3r::Model->new; - $org_object_model->add_object($current_model_object); - - # Save the org object identifier. - my $object_id = $self->{objects}->[$obj_idx]->identifier; - - my @model_objects = @{$current_model_object->split_object}; - if (@model_objects == 1) { - $self->resume_background_process; - Slic3r::GUI::warning_catcher($self)->("The selected object couldn't be split because it contains only one part."); - $self->resume_background_process; - return; - } - - foreach my $object (@model_objects) { - $object->instances->[$_]->offset->translate($_ * 10, $_ * 10) - for 1..$#{ $object->instances }; - - # we need to center this single object around origin - $object->center_around_origin; - } - - # remove the original object before spawning the object_loaded event, otherwise - # we'll pass the wrong $obj_idx to it (which won't be recognized after the - # thumbnail thread returns) - $self->remove($obj_idx, 'true'); # Don't push to the undo stack it's considered a split opeation not a remove one. - $current_object = $obj_idx = undef; - - # Save the object identifiers used in undo/redo operations. - my $new_objects_id_start = $self->{object_identifier}; - print "The new object identifier start for split is " .$new_objects_id_start . "\n"; - - # load all model objects at once, otherwise the plate would be rearranged after each one - # causing original positions not to be kept - $self->load_model_objects(@model_objects); - - # Create two models to save the current object and the resulted objects. - my $new_objects_model = Slic3r::Model->new; - foreach my $new_object (@model_objects) { - $new_objects_model->add_object($new_object); - } - - $self->add_undo_operation("SPLIT", $object_id, $org_object_model, $new_objects_model, $new_objects_id_start); -} - -sub toggle_print_stats { - my ($self, $show) = @_; - - return if !$self->GetFrame->is_loaded; - - if ($show) { - $self->{right_sizer}->Show($self->{sliced_info_box}); - } else { - $self->{right_sizer}->Hide($self->{sliced_info_box}); - } - $self->{right_sizer}->Layout; -} - -sub config_changed { - my $self = shift; - - my $config = $self->config; - - if ($Slic3r::GUI::autosave) { - $config->save($Slic3r::GUI::autosave); - } - - # Apply changes to the plater-specific config options. - foreach my $opt_key (@{$self->{config}->diff($config)}) { - # Ignore overrides. No need to set them in our config; we'll use them directly below. - next if $opt_key eq 'overrides'; - - $self->{config}->set($opt_key, $config->get($opt_key)); - - if ($opt_key eq 'bed_shape') { - $self->{canvas}->update_bed_size; - $self->{canvas3D}->update_bed_size if $self->{canvas3D}; - $self->{preview3D}->set_bed_shape($self->{config}->bed_shape) - if $self->{preview3D}; - $self->on_model_change; - } elsif ($opt_key eq 'serial_port') { - if ($config->get('serial_port')) { - $self->{btn_print}->Show; - } else { - $self->{btn_print}->Hide; - } - $self->Layout; - } elsif ($opt_key eq 'print_host') { - if ($config->get('print_host')) { - $self->{btn_send_gcode}->Show; - } else { - $self->{btn_send_gcode}->Hide; - } - $self->Layout; - } - } - - return if !$self->GetFrame->is_loaded; - - $self->toggle_print_stats(0); - - if ($Slic3r::GUI::Settings->{_}{background_processing}) { - # (re)start timer - $self->schedule_background_process; - } else { - $self->async_apply_config; - } -} - -sub schedule_background_process { - my ($self) = @_; - - warn 'schedule_background_process() is not supposed to be called when background processing is disabled' - if !$Slic3r::GUI::Settings->{_}{background_processing}; - - $self->{processed} = 0; - - if (defined $self->{apply_config_timer}) { - $self->{apply_config_timer}->Start(PROCESS_DELAY, 1); # 1 = one shot - } -} - -# Executed asynchronously by a timer every PROCESS_DELAY (0.5 second). -# The timer is started by schedule_background_process(), -sub async_apply_config { - my ($self) = @_; - - # pause process thread before applying new config - # since we don't want to touch data that is being used by the threads - $self->pause_background_process; - - # apply new config - my $invalidated = $self->{print}->apply_config($self->config); - - # reset preview canvases (invalidated contents will be hidden) - $self->{toolpaths2D}->reload_print if $self->{toolpaths2D}; - $self->{preview3D}->reload_print if $self->{preview3D}; - $self->{AdaptiveLayersDialog}->reload_preview if $self->{AdaptiveLayersDialog}; - - if (!$Slic3r::GUI::Settings->{_}{background_processing}) { - $self->hide_preview if $invalidated; - return; - } - - if ($invalidated) { - # kill current thread if any - $self->stop_background_process; - # remove the sliced statistics box because something changed. - $self->toggle_print_stats(0); - } else { - $self->resume_background_process; - } - - # schedule a new process thread in case it wasn't running - $self->start_background_process; -} - -sub start_background_process { - my ($self) = @_; - - return if !$Slic3r::have_threads; - return if $self->{process_thread}; - - if (!@{$self->{objects}}) { - $self->on_process_completed; - return; - } - - # It looks like declaring a local $SIG{__WARN__} prevents the ugly - # "Attempt to free unreferenced scalar" warning... - local $SIG{__WARN__} = Slic3r::GUI::warning_catcher($self); - - # don't start process thread if config is not valid - eval { - # this will throw errors if config is not valid - $self->config->validate; - $self->{print}->validate; - }; - if ($@) { - $self->statusbar->SetStatusText($@); - return; - } - - if ($Slic3r::GUI::Settings->{_}{threads}) { - $self->{print}->config->set('threads', $Slic3r::GUI::Settings->{_}{threads}); - } - - # start thread - @_ = (); - $self->{process_thread} = Slic3r::spawn_thread(sub { - eval { - $self->{print}->process; - }; - if ($@) { - Slic3r::debugf "Background process error: $@\n"; - Wx::PostEvent($self, Wx::PlThreadEvent->new(-1, $PROCESS_COMPLETED_EVENT, $@)); - } else { - Wx::PostEvent($self, Wx::PlThreadEvent->new(-1, $PROCESS_COMPLETED_EVENT, undef)); - } - Slic3r::thread_cleanup(); - }); - Slic3r::debugf "Background processing started.\n"; -} - -sub stop_background_process { - my ($self) = @_; - - $self->{apply_config_timer}->Stop if defined $self->{apply_config_timer}; - $self->statusbar->SetCancelCallback(undef); - $self->statusbar->StopBusy; - $self->statusbar->SetStatusText(""); - - $self->{toolpaths2D}->reload_print if $self->{toolpaths2D}; - $self->{preview3D}->reload_print if $self->{preview3D}; - $self->{AdaptiveLayersDialog}->reload_preview if $self->{AdaptiveLayersDialog}; - - if ($self->{process_thread}) { - Slic3r::debugf "Killing background process.\n"; - Slic3r::kill_all_threads(); - $self->{process_thread} = undef; - } else { - Slic3r::debugf "No background process running.\n"; - } - - # if there's an export process, kill that one as well - if ($self->{export_thread}) { - Slic3r::debugf "Killing background export process.\n"; - Slic3r::kill_all_threads(); - $self->{export_thread} = undef; - } -} - -sub pause_background_process { - my ($self) = @_; - - if ($self->{process_thread} || $self->{export_thread}) { - Slic3r::pause_all_threads(); - return 1; - } elsif (defined $self->{apply_config_timer} && $self->{apply_config_timer}->IsRunning) { - $self->{apply_config_timer}->Stop; - return 0; # we didn't actually pause any running thread; need to reschedule - } - - return 0; -} - -sub resume_background_process { - my ($self) = @_; - - if ($self->{process_thread} || $self->{export_thread}) { - Slic3r::resume_all_threads(); - } -} - -sub export_gcode { - my ($self, $output_file) = @_; - - return if !@{$self->{objects}}; - - if ($self->{export_gcode_output_file}) { - Wx::MessageDialog->new($self, "Another export job is currently running.", 'Error', wxOK | wxICON_ERROR)->ShowModal; - return; - } - - # if process is not running, validate config - # (we assume that if it is running, config is valid) - eval { - # this will throw errors if config is not valid - $self->config->validate; - $self->{print}->validate; - }; - Slic3r::GUI::catch_error($self) and return; - - - # apply config and validate print - my $config = $self->config; - eval { - # this will throw errors if config is not valid - $config->validate; - $self->{print}->apply_config($config); - $self->{print}->validate; - }; - if (!$Slic3r::have_threads) { - Slic3r::GUI::catch_error($self) and return; - } - - # select output file - if ($output_file) { - $self->{export_gcode_output_file} = $self->{print}->output_filepath($output_file); - } else { - my $default_output_file = $self->{print}->output_filepath($main::opt{output} // ''); - my $dlg = Wx::FileDialog->new($self, 'Save G-code file as:', wxTheApp->output_path(dirname($default_output_file)), - basename($default_output_file), &Slic3r::GUI::FILE_WILDCARDS->{gcode}, wxFD_SAVE | wxFD_OVERWRITE_PROMPT); - if ($dlg->ShowModal != wxID_OK) { - $dlg->Destroy; - return; - } - my $path = Slic3r::decode_path($dlg->GetPath); - $Slic3r::GUI::Settings->{_}{last_output_path} = dirname($path); - wxTheApp->save_settings; - $self->{export_gcode_output_file} = $path; - $dlg->Destroy; - } - - $self->statusbar->StartBusy; - - if ($Slic3r::have_threads) { - $self->statusbar->SetCancelCallback(sub { - $self->stop_background_process; - $self->statusbar->SetStatusText("Export cancelled"); - $self->{export_gcode_output_file} = undef; - $self->{send_gcode_file} = undef; - - # this updates buttons status - $self->object_list_changed; - }); - - # start background process, whose completion event handler - # will detect $self->{export_gcode_output_file} and proceed with export - $self->start_background_process; - } else { - eval { - $self->{print}->process; - $self->{print}->export_gcode(output_file => $self->{export_gcode_output_file}); - }; - my $result = !Slic3r::GUI::catch_error($self); - $self->on_export_completed($result); - } - - # this updates buttons status - $self->object_list_changed; - $self->toggle_print_stats(1); - - return $self->{export_gcode_output_file}; -} - -# This gets called only if we have threads. -sub on_process_completed { - my ($self, $error) = @_; - - $self->statusbar->SetCancelCallback(undef); - $self->statusbar->StopBusy; - $self->statusbar->SetStatusText($error // ""); - - Slic3r::debugf "Background processing completed.\n"; - $self->{process_thread}->detach if $self->{process_thread}; - $self->{process_thread} = undef; - $self->{processed} = 1; - - # if we're supposed to perform an explicit export let's display the error in a dialog - if ($error && $self->{export_gcode_output_file}) { - $self->{export_gcode_output_file} = undef; - Slic3r::GUI::show_error($self, $error); - } - - return if $error; - $self->{toolpaths2D}->reload_print if $self->{toolpaths2D}; - $self->{preview3D}->reload_print if $self->{preview3D}; - $self->{AdaptiveLayersDialog}->reload_preview if $self->{AdaptiveLayersDialog}; - - # if we have an export filename, start a new thread for exporting G-code - if ($self->{export_gcode_output_file}) { - @_ = (); - - # workaround for "Attempt to free un referenced scalar..." - our $_thread_self = $self; - - $self->{export_thread} = Slic3r::spawn_thread(sub { - eval { - $_thread_self->{print}->export_gcode(output_file => $_thread_self->{export_gcode_output_file}); - }; - if ($@) { - Wx::PostEvent($_thread_self, Wx::PlThreadEvent->new(-1, $ERROR_EVENT, shared_clone([ $@ ]))); - Wx::PostEvent($_thread_self, Wx::PlThreadEvent->new(-1, $EXPORT_COMPLETED_EVENT, 0)); - } else { - Wx::PostEvent($_thread_self, Wx::PlThreadEvent->new(-1, $EXPORT_COMPLETED_EVENT, 1)); - } - Slic3r::thread_cleanup(); - }); - Slic3r::debugf "Background G-code export started.\n"; - } -} - -# This gets called also if we have no threads. -sub on_progress_event { - my ($self, $percent, $message) = @_; - - $self->statusbar->SetProgress($percent); - $self->statusbar->SetStatusText("$message…"); -} - -# This gets called also if we don't have threads. -sub on_export_completed { - my ($self, $result) = @_; - - $self->statusbar->SetCancelCallback(undef); - $self->statusbar->StopBusy; - $self->statusbar->SetStatusText(""); - - Slic3r::debugf "Background export process completed.\n"; - $self->{export_thread}->detach if $self->{export_thread}; - $self->{export_thread} = undef; - - my $message; - my $send_gcode = 0; - my $do_print = 0; - if ($result) { - if ($self->{print_file}) { - $message = "File added to print queue"; - $do_print = 1; - } elsif ($self->{send_gcode_file}) { - $message = "Sending G-code file to the " . $self->{config}->host_type . " server..."; - $send_gcode = 1; - } else { - $message = "G-code file exported to " . $self->{export_gcode_output_file}; - } - } else { - $message = "Export failed"; - } - $self->{export_gcode_output_file} = undef; - $self->statusbar->SetStatusText($message); - wxTheApp->notify($message); - - $self->do_print if $do_print; - $self->send_gcode if $send_gcode; - $self->{print_file} = undef; - $self->{send_gcode_file} = undef; - - { - my $fil = sprintf( - '%.2fcm (%.2fcm³%s)', - $self->{print}->total_used_filament / 10, - $self->{print}->total_extruded_volume / 1000, - $self->{print}->total_weight - ? sprintf(', %.2fg', $self->{print}->total_weight) - : '', - ); - my $cost = $self->{print}->total_cost - ? sprintf("%.2f" , $self->{print}->total_cost) - : 'n.a.'; - $self->{print_info_fil}->SetLabel($fil); - $self->{print_info_cost}->SetLabel($cost); - } - - # this updates buttons status - $self->object_list_changed; -} - -sub do_print { - my ($self) = @_; - - my $controller = $self->GetFrame->{controller} or return; - - my %current_presets = $self->selected_presets; - - my $printer_panel = $controller->add_printer($current_presets{printer}->[0], $self->config); - - my $filament_stats = $self->{print}->filament_stats; - $filament_stats = { map { $current_presets{filament}[$_]->name => $filament_stats->{$_} } keys %$filament_stats }; - $printer_panel->load_print_job($self->{print_file}, $filament_stats); - - $self->GetFrame->select_tab(1); -} - -sub prepare_send { - my ($self, $skip_dialog) = @_; - - return if !$self->{btn_send_gcode}->IsEnabled; - my $filename = basename($self->{print}->output_filepath($main::opt{output} // '')); - - if (!$skip_dialog) { - # When the alt key is pressed, bypass the dialog. - my $dlg = Slic3r::GUI::Plater::OctoPrintSpoolDialog->new($self, $filename); - return unless $dlg->ShowModal == wxID_OK; - $filename = $dlg->{filename}; - } - - if (!$Slic3r::GUI::Settings->{octoprint}{overwrite}) { - my $progress = Wx::ProgressDialog->new('Querying OctoPrint…', - "Checking whether file already exists…", 100, $self, 0); - $progress->Pulse; - - my $ua = LWP::UserAgent->new; - $ua->timeout(5); - my $res; - if ($self->{config}->print_host) { - if($self->{config}->host_type eq 'octoprint'){ - $res = $ua->get( - "http://" . $self->{config}->print_host . "/api/files/local", - 'X-Api-Key' => $self->{config}->octoprint_apikey, - ); - }else { - $res = $ua->get( - "http://" . $self->{config}->print_host . "/rr_files", - ); - } - } - $progress->Destroy; - if ($res->is_success) { - my $searchterm = ($self->{config}->host_type eq 'octoprint') ? '/"name":\s*"\Q$filename\E"/' : '"'.$filename.'"'; - if ($res->decoded_content =~ $searchterm) { - my $dialog = Wx::MessageDialog->new($self, - "It looks like a file with the same name already exists in the server. " - . "Shall I overwrite it?", - $self->{config}->host_type, wxICON_WARNING | wxYES | wxNO); - if ($dialog->ShowModal() == wxID_NO) { - return; - } - } - } else { - my $message = "Error while connecting to the " . $self->{config}->host_type . " server: " . $res->status_line; - Slic3r::GUI::show_error($self, $message); - return; - } - } - - $self->{send_gcode_file_print} = $Slic3r::GUI::Settings->{octoprint}{start}; - $self->{send_gcode_file} = $self->export_gcode(Wx::StandardPaths::Get->GetTempDir() . "/" . $filename); -} - -sub send_gcode { - my ($self) = @_; - - $self->statusbar->StartBusy; - - my $ua = LWP::UserAgent->new; - $ua->timeout(180); - - my $path = Slic3r::encode_path($self->{send_gcode_file}); - my $filename = basename($self->{print}->output_filepath($main::opt{output} // '')); - my $res; - if($self->{config}->print_host){ - if($self->{config}->host_type eq 'octoprint'){ - $res = $ua->post( - "http://" . $self->{config}->print_host . "/api/files/local", - Content_Type => 'form-data', - 'X-Api-Key' => $self->{config}->octoprint_apikey, - Content => [ - # OctoPrint doesn't like Windows paths so we use basename() - # Also, since we need to read from filesystem we process it through encode_path() - file => [ $path, basename($path) ], - print => $self->{send_gcode_file_print} ? 1 : 0, - ], - ); - }else{ - # slurp the file we would send into a string - should be someplace to reference this but could not find it? - local $/=undef; - open (my $gch,$path); - my $gcode=<$gch>; - close($gch); - - # get the time string - my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); - my $t = sprintf("%4d-%02d-%02dT%02d:%02d:%02d",$year+1900,$mon+1,$mday,$hour,$min,$sec); - - my $req = HTTP::Request->new(POST => "http://" . $self->{config}->print_host . "/rr_upload?name=0:/gcodes/" . basename($path) . "&time=$t",); - $req->content( $gcode ); - $res = $ua->request($req); - - if ($res->is_success) { - if ($self->{send_gcode_file_print}) { - $res = $ua->get( - "http://" . $self->{config}->print_host . "/rr_gcode?gcode=M32%20" . basename($path), - ); - } - } - } - } - - $self->statusbar->StopBusy; - - if ($res->is_success) { - $self->statusbar->SetStatusText("G-code file successfully uploaded to the " . $self->{config}->host_type . " server"); - } else { - my $message = "Error while uploading to the " . $self->{config}->host_type . " server: " . $res->status_line; - Slic3r::GUI::show_error($self, $message); - $self->statusbar->SetStatusText($message); - } -} - -sub export_stl { - my $self = shift; - - return if !@{$self->{objects}}; - - my $output_file = $self->_get_export_file('STL') or return; - $self->{model}->write_stl($output_file, 1); - $self->statusbar->SetStatusText("STL file exported to $output_file"); -} - -sub reload_from_disk { - my ($self) = @_; - - my ($obj_idx, $object) = $self->selected_object; - return if !defined $obj_idx; - - if (!$object->input_file) { - Slic3r::GUI::warning_catcher($self)->("The selected object couldn't be reloaded because it isn't referenced to its input file any more. This is the case after performing operations like cut or split."); - return; - } - if (!-e $object->input_file) { - Slic3r::GUI::warning_catcher($self)->("The selected object couldn't be reloaded because the file doesn't exist anymore on the disk."); - return; - } - - # Only reload the selected object and not all objects from the input file. - my @new_obj_idx = $self->load_file($object->input_file, $object->input_file_obj_idx); - if (!@new_obj_idx) { - Slic3r::GUI::warning_catcher($self)->("The selected object couldn't be reloaded because the new file doesn't contain the object."); - return; - } - - my $org_obj = $self->{model}->objects->[$obj_idx]; - - # check if the object is dependant of more than one file - my $org_obj_has_modifiers=0; - for my $i (0..($org_obj->volumes_count-1)) { - if ($org_obj->input_file ne $org_obj->get_volume($i)->input_file) { - $org_obj_has_modifiers=1; - last; - } - } - - my $reload_behavior = $Slic3r::GUI::Settings->{_}{reload_behavior}; - - # ask the user how to proceed, if option is selected in preferences - if ($org_obj_has_modifiers && !$Slic3r::GUI::Settings->{_}{reload_hide_dialog}) { - my $dlg = Slic3r::GUI::ReloadDialog->new(undef,$reload_behavior); - my $res = $dlg->ShowModal; - if ($res==wxID_CANCEL) { - $self->remove($_) for @new_obj_idx; - $dlg->Destroy; - return; - } - $reload_behavior = $dlg->GetSelection; - my $save = 0; - if ($reload_behavior != $Slic3r::GUI::Settings->{_}{reload_behavior}) { - $Slic3r::GUI::Settings->{_}{reload_behavior} = $reload_behavior; - $save = 1; - } - if ($dlg->GetHideOnNext) { - $Slic3r::GUI::Settings->{_}{reload_hide_dialog} = 1; - $save = 1; - } - Slic3r::GUI->save_settings if $save; - $dlg->Destroy; - } - - my $volume_unmatched=0; - - foreach my $new_obj_idx (@new_obj_idx) { - my $new_obj = $self->{model}->objects->[$new_obj_idx]; - $new_obj->clear_instances; - $new_obj->add_instance($_) for @{$org_obj->instances}; - $new_obj->config->apply($org_obj->config); - - my $new_vol_idx = 0; - my $org_vol_idx = 0; - my $new_vol_count=$new_obj->volumes_count; - my $org_vol_count=$org_obj->volumes_count; - - while ($new_vol_idx<=$new_vol_count-1) { - if (($org_vol_idx<=$org_vol_count-1) && ($org_obj->get_volume($org_vol_idx)->input_file eq $new_obj->input_file)) { - # apply config from the matching volumes - $new_obj->get_volume($new_vol_idx++)->config->apply($org_obj->get_volume($org_vol_idx++)->config); - } else { - # reload has more volumes than original (first file), apply config from the first volume - $new_obj->get_volume($new_vol_idx++)->config->apply($org_obj->get_volume(0)->config); - $volume_unmatched=1; - } - } - $org_vol_idx=$org_vol_count if $reload_behavior==2; # Reload behavior: discard - while (($org_vol_idx<=$org_vol_count-1) && ($org_obj->get_volume($org_vol_idx)->input_file eq $new_obj->input_file)) { - # original has more volumes (first file), skip those - $org_vol_idx++; - $volume_unmatched=1; - } - while ($org_vol_idx<=$org_vol_count-1) { - if ($reload_behavior==1) { # Reload behavior: copy - my $new_volume = $new_obj->add_volume($org_obj->get_volume($org_vol_idx)); - $new_volume->mesh->translate(@{$org_obj->origin_translation->negative}); - $new_volume->mesh->translate(@{$new_obj->origin_translation}); - if ($new_volume->name =~ m/link to path\z/) { - my $new_name = $new_volume->name; - $new_name =~ s/ - no link to path$/ - copied/; - $new_volume->set_name($new_name); - }elsif(!($new_volume->name =~ m/copied\z/)) { - $new_volume->set_name($new_volume->name . " - copied"); - } - }else{ # Reload behavior: Reload all, also fallback solution if ini was manually edited to a wrong value - if ($org_obj->get_volume($org_vol_idx)->input_file) { - my $model = eval { Slic3r::Model->read_from_file($org_obj->get_volume($org_vol_idx)->input_file) }; - if ($@) { - $org_obj->get_volume($org_vol_idx)->set_input_file(""); - }elsif ($org_obj->get_volume($org_vol_idx)->input_file_obj_idx > ($model->objects_count-1)) { - # Object Index for that part / modifier not found in current version of the file - $org_obj->get_volume($org_vol_idx)->set_input_file(""); - }else{ - my $prt_mod_obj = $model->objects->[$org_obj->get_volume($org_vol_idx)->input_file_obj_idx]; - if ($org_obj->get_volume($org_vol_idx)->input_file_vol_idx > ($prt_mod_obj->volumes_count-1)) { - # Volume Index for that part / modifier not found in current version of the file - $org_obj->get_volume($org_vol_idx)->set_input_file(""); - }else{ - # all checks passed, load new mesh and copy metadata - my $new_volume = $new_obj->add_volume($prt_mod_obj->get_volume($org_obj->get_volume($org_vol_idx)->input_file_vol_idx)); - $new_volume->set_input_file($org_obj->get_volume($org_vol_idx)->input_file); - $new_volume->set_input_file_obj_idx($org_obj->get_volume($org_vol_idx)->input_file_obj_idx); - $new_volume->set_input_file_vol_idx($org_obj->get_volume($org_vol_idx)->input_file_vol_idx); - $new_volume->config->apply($org_obj->get_volume($org_vol_idx)->config); - $new_volume->set_modifier($org_obj->get_volume($org_vol_idx)->modifier); - $new_volume->mesh->translate(@{$new_obj->origin_translation}); - } - } - } - if (!$org_obj->get_volume($org_vol_idx)->input_file) { - my $new_volume = $new_obj->add_volume($org_obj->get_volume($org_vol_idx)); # error -> copy old mesh - $new_volume->mesh->translate(@{$org_obj->origin_translation->negative}); - $new_volume->mesh->translate(@{$new_obj->origin_translation}); - if ($new_volume->name =~ m/copied\z/) { - my $new_name = $new_volume->name; - $new_name =~ s/ - copied$/ - no link to path/; - $new_volume->set_name($new_name); - }elsif(!($new_volume->name =~ m/link to path\z/)) { - $new_volume->set_name($new_volume->name . " - no link to path"); - } - $volume_unmatched=1; - } - } - $org_vol_idx++; - } - } - $self->remove($obj_idx); - - # TODO: refresh object list which contains wrong count and scale - - # Trigger thumbnail generation again, because the remove() method altered - # object indexes before background thumbnail generation called its completion - # event, so the on_thumbnail_made callback is called with the wrong $obj_idx. - # When porting to C++ we'll probably have cleaner ways to do this. - $self->make_thumbnail($_-1) for @new_obj_idx; - - # update print - $self->stop_background_process; - $self->{print}->reload_object($_-1) for @new_obj_idx; - $self->on_model_change; - - # Empty the redo stack - $self->{redo_stack} = []; - - if ($volume_unmatched) { - Slic3r::GUI::warning_catcher($self)->("At least 1 volume couldn't be matched between the original object and the reloaded one."); - } -} - -sub export_object_stl { - my $self = shift; - - my ($obj_idx, $object) = $self->selected_object; - return if !defined $obj_idx; - - my $model_object = $self->{model}->objects->[$obj_idx]; - - my $output_file = $self->_get_export_file('STL') or return; - $model_object->mesh->write_binary($output_file); - $self->statusbar->SetStatusText("STL file exported to $output_file"); -} - -# Export function for a single AMF output -sub export_object_amf { - my $self = shift; - - my ($obj_idx, $object) = $self->selected_object; - return if !defined $obj_idx; - - my $local_model = Slic3r::Model->new; - my $model_object = $self->{model}->objects->[$obj_idx]; - # copy model_object -> local_model - $local_model->add_object($model_object); - - my $output_file = $self->_get_export_file('AMF') or return; - $local_model->write_amf($output_file); - $self->statusbar->SetStatusText("AMF file exported to $output_file"); -} - -# Export function for a single 3MF output -sub export_object_tmf { - my $self = shift; - - my ($obj_idx, $object) = $self->selected_object; - return if !defined $obj_idx; - - my $local_model = Slic3r::Model->new; - my $model_object = $self->{model}->objects->[$obj_idx]; - # copy model_object -> local_model - $local_model->add_object($model_object); - - my $output_file = $self->_get_export_file('TMF') or return; - $local_model->write_tmf($output_file); - $self->statusbar->SetStatusText("3MF file exported to $output_file"); -} - -sub export_amf { - my $self = shift; - - return if !@{$self->{objects}}; - - my $output_file = $self->_get_export_file('AMF') or return; - $self->{model}->write_amf($output_file); - $self->statusbar->SetStatusText("AMF file exported to $output_file"); -} - -sub export_tmf { - my $self = shift; - - return if !@{$self->{objects}}; - - my $output_file = $self->_get_export_file('TMF') or return; - $self->{model}->write_tmf($output_file); - $self->statusbar->SetStatusText("3MF file exported to $output_file"); -} - -sub _get_export_file { - my $self = shift; - my ($format) = @_; - - my $suffix = $format eq 'STL' ? '.stl' : ( $format eq 'AMF' ? '.amf' : '.3mf'); - - my $output_file = $main::opt{output}; - { - $output_file = $self->{print}->output_filepath($output_file // ''); - $output_file =~ s/\.gcode$/$suffix/i; - my $dlg; - $dlg = Wx::FileDialog->new($self, "Save $format file as:", dirname($output_file), - basename($output_file), &Slic3r::GUI::STL_MODEL_WILDCARD, wxFD_SAVE | wxFD_OVERWRITE_PROMPT) - if $format eq 'STL'; - - $dlg = Wx::FileDialog->new($self, "Save $format file as:", dirname($output_file), - basename($output_file), &Slic3r::GUI::AMF_MODEL_WILDCARD, wxFD_SAVE | wxFD_OVERWRITE_PROMPT) - if $format eq 'AMF'; - - $dlg = Wx::FileDialog->new($self, "Save $format file as:", dirname($output_file), - basename($output_file), &Slic3r::GUI::TMF_MODEL_WILDCARD, wxFD_SAVE | wxFD_OVERWRITE_PROMPT) - if $format eq 'TMF'; - - if ($dlg->ShowModal != wxID_OK) { - $dlg->Destroy; - return undef; - } - $output_file = Slic3r::decode_path($dlg->GetPath); - $dlg->Destroy; - } - return $output_file; -} - -sub make_thumbnail { - my $self = shift; - my ($obj_idx) = @_; - - my $plater_object = $self->{objects}[$obj_idx]; - $plater_object->thumbnail(Slic3r::ExPolygon::Collection->new); - my $cb = sub { - $plater_object->make_thumbnail($self->{model}, $obj_idx); - - if ($Slic3r::have_threads) { - Wx::PostEvent($self, Wx::PlThreadEvent->new(-1, $THUMBNAIL_DONE_EVENT, shared_clone([ $obj_idx ]))); - Slic3r::thread_cleanup(); - threads->exit; - } else { - $self->on_thumbnail_made($obj_idx); - } - }; - - @_ = (); - $Slic3r::have_threads - ? threads->create(sub { $cb->(); Slic3r::thread_cleanup(); })->detach - : $cb->(); -} - -sub on_thumbnail_made { - my $self = shift; - my ($obj_idx) = @_; - - $self->{objects}[$obj_idx]->transform_thumbnail($self->{model}, $obj_idx); - $self->refresh_canvases; -} - -# this method gets called whenever print center is changed or the objects' bounding box changes -# (i.e. when an object is added/removed/moved/rotated/scaled) -sub on_model_change { - my ($self, $force_autocenter) = @_; - - # reload the select submenu (if already initialized) - if (my $menu = $self->GetFrame->{plater_select_menu}) { - $menu->DeleteItem($_) for $menu->GetMenuItems; - for my $i (0..$#{$self->{objects}}) { - my $name = $self->{objects}->[$i]->name; - my $count = $self->{model}->get_object($i)->instances_count; - if ($count > 1) { - $name .= " (${count}x)"; - } - my $item = wxTheApp->append_menu_item($menu, $name, 'Select object', sub { - $self->select_object($i); - $self->refresh_canvases; - }, undef, undef, wxITEM_CHECK); - $item->Check(1) if $self->{objects}->[$i]->selected; - } - } - - # reload the objects info choice - if (my $choice = $self->{object_info_choice}) { - $choice->Clear; - for my $i (0..$#{$self->{objects}}) { - my $name = $self->{objects}->[$i]->name; - my $count = $self->{model}->get_object($i)->instances_count; - if ($count > 1) { - $name .= " (${count}x)"; - } - $choice->Append($name); - } - my ($obj_idx, $object) = $self->selected_object; - $choice->SetSelection($obj_idx // -1); - } - - my $running = $self->pause_background_process; - - if ($Slic3r::GUI::Settings->{_}{autocenter} || $force_autocenter) { - $self->{model}->center_instances_around_point($self->bed_centerf); - } - $self->refresh_canvases; - - my $invalidated = $self->{print}->reload_model_instances(); - - if ($Slic3r::GUI::Settings->{_}{background_processing}) { - if ($invalidated || !$running) { - # The mere fact that no steps were invalidated when reloading model instances - # doesn't mean that all steps were done: for example, validation might have - # failed upon previous instance move, so we have no running thread and no steps - # are invalidated on this move, thus we need to schedule a new run. - $self->schedule_background_process; - $self->toggle_print_stats(0); - } else { - $self->resume_background_process; - } - } else { - $self->hide_preview; - } -} - -sub hide_preview { - my ($self) = @_; - - my $sel = $self->{preview_notebook}->GetSelection; - if ($sel == $self->{preview3D_page_idx} || $sel == $self->{toolpaths2D_page_idx}) { - $self->{preview_notebook}->SetSelection(0); - } - $self->{processed} = 0; -} - -sub on_extruders_change { - my ($self, $num_extruders) = @_; - - my $choices = $self->{preset_choosers}{filament}; - while (@$choices < $num_extruders) { - # copy strings from first choice - my @presets = $choices->[0]->GetStrings; - - # initialize new choice - my $choice = Wx::BitmapComboBox->new($self, -1, "", wxDefaultPosition, wxDefaultSize, [@presets], wxCB_READONLY); - push @$choices, $choice; - - # copy icons from first choice - $choice->SetItemBitmap($_, $choices->[0]->GetItemBitmap($_)) for 0..$#presets; - - # settings button - my $settings_btn = Wx::BitmapButton->new($self, -1, Wx::Bitmap->new($Slic3r::var->("cog.png"), wxBITMAP_TYPE_PNG), - wxDefaultPosition, wxDefaultSize, wxBORDER_NONE); - - # insert new row into sizer - $self->{presets_sizer}->Insert(6 + ($#$choices-1)*3, 0, 0); - $self->{presets_sizer}->Insert(7 + ($#$choices-1)*3, $choice, 0, wxEXPAND | wxBOTTOM, FILAMENT_CHOOSERS_SPACING); - $self->{presets_sizer}->Insert(8 + ($#$choices-1)*3, $settings_btn, 0, wxEXPAND | wxLEFT, 4); - - # setup the listeners - EVT_COMBOBOX($choice, $choice, sub { - my ($choice) = @_; - wxTheApp->CallAfter(sub { - $self->_on_change_combobox('filament', $choice); - }); - }); - - EVT_BUTTON($self, $settings_btn, sub { - $self->show_preset_editor('filament', $#$choices); - }); - - # initialize selection - my $i = first { $choice->GetString($_) eq ($Slic3r::GUI::Settings->{presets}{"filament_" . $#$choices} || '') } 0 .. $#presets; - $choice->SetSelection($i || 0); - } - - # remove unused choices if any - while (@$choices > $num_extruders) { - my $i = 6 + ($#$choices-1)*3; - - $self->{presets_sizer}->Remove($i); # label - $self->{presets_sizer}->Remove($i); # wxChoice - - my $settings_btn = $self->{presets_sizer}->GetItem($i)->GetWindow; - $self->{presets_sizer}->Remove($i); # settings btn - $settings_btn->Destroy; - - $choices->[-1]->Destroy; - pop @$choices; - } - $self->Layout; -} - -sub object_cut_dialog { - my $self = shift; - my ($obj_idx) = @_; - - if (!defined $obj_idx) { - ($obj_idx, undef) = $self->selected_object; - } - - if (!$Slic3r::GUI::have_OpenGL) { - Slic3r::GUI::show_error($self, "Please install the OpenGL modules to use this feature (see build instructions)."); - return; - } - - my $dlg = Slic3r::GUI::Plater::ObjectCutDialog->new($self, - object => $self->{objects}[$obj_idx], - model_object => $self->{model}->objects->[$obj_idx], - ); - return unless $dlg->ShowModal == wxID_OK; - - if (my @new_objects = $dlg->NewModelObjects) { - my $process_dialog = Wx::ProgressDialog->new('Loading…', "Loading new objects…", 100, $self, 0); - $process_dialog->Pulse; - - # Create two models to save the current object and the resulted objects. - my $new_objects_model = Slic3r::Model->new; - foreach my $new_object (@new_objects) { - $new_objects_model->add_object($new_object); - } - - my $org_object_model = Slic3r::Model->new; - $org_object_model->add_object($self->{model}->get_object($obj_idx)); - - # Save the object identifiers used in undo/redo operations. - my $object_id = $self->{objects}->[$obj_idx]->identifier; - my $new_objects_id_start = $self->{object_identifier}; - - $self->add_undo_operation("CUT", $object_id, $org_object_model, $new_objects_model, $new_objects_id_start); - - $self->remove($obj_idx, 'true'); - $self->load_model_objects(grep defined($_), @new_objects); - $self->arrange if @new_objects <= 2; # don't arrange for grid cuts - - $process_dialog->Destroy; - } -} - -sub object_layers_dialog { - my $self = shift; - my ($obj_idx) = @_; - - $self->object_settings_dialog($obj_idx, adaptive_layers => 1); -} - -sub object_settings_dialog { - my $self = shift; - my ($obj_idx, %params) = @_; - - if (!defined $obj_idx) { - ($obj_idx, undef) = $self->selected_object; - } - my $model_object = $self->{model}->objects->[$obj_idx]; - - # validate config before opening the settings dialog because - # that dialog can't be closed if validation fails, but user - # can't fix any error which is outside that dialog - return unless $self->validate_config; - - my $dlg = Slic3r::GUI::Plater::ObjectSettingsDialog->new($self, - object => $self->{objects}[$obj_idx], - model_object => $model_object, - obj_idx => $obj_idx, - ); - # store pointer to the adaptive layer tab to push preview updates - $self->{AdaptiveLayersDialog} = $dlg->{adaptive_layers}; - # and jump directly to the tab if called by "promo-button" - $dlg->{tabpanel}->SetSelection(1) if $params{adaptive_layers}; - $self->pause_background_process; - $dlg->ShowModal; - $self->{AdaptiveLayersDialog} = undef; - - # update thumbnail since parts may have changed - if ($dlg->PartsChanged) { - # recenter and re-align to Z = 0 - $model_object->center_around_origin; - $self->make_thumbnail($obj_idx); - } - - # update print - if ($dlg->PartsChanged || $dlg->PartSettingsChanged) { - $self->stop_background_process; - $self->{print}->reload_object($obj_idx); - $self->on_model_change; - } else { - $self->resume_background_process; - } -} - -sub object_list_changed { - my $self = shift; - - my $have_objects = @{$self->{objects}} ? 1 : 0; - my $method = $have_objects ? 'Enable' : 'Disable'; - $self->{"btn_$_"}->$method - for grep $self->{"btn_$_"}, qw(reset arrange export_gcode export_stl print send_gcode); - - if ($self->{export_gcode_output_file} || $self->{send_gcode_file}) { - $self->{btn_export_gcode}->Disable; - $self->{btn_print}->Disable; - $self->{btn_send_gcode}->Disable; - } - - if ($self->{htoolbar}) { - $self->{htoolbar}->EnableTool($_, $have_objects) - for (TB_RESET, TB_ARRANGE); - } - - # prepagate the event to the frame (a custom Wx event would be cleaner) - $self->GetFrame->on_plater_object_list_changed($have_objects); -} - -sub selection_changed { - my $self = shift; - - my ($obj_idx, $object) = $self->selected_object; - my $have_sel = defined $obj_idx; - - # Remove selection in 2d Plater. - $self->{canvas}->{selected_instance} = undef; - - if (my $menu = $self->GetFrame->{plater_select_menu}) { - $_->Check(0) for $menu->GetMenuItems; - if ($have_sel) { - $menu->FindItemByPosition($obj_idx)->Check(1); - } - } - - my $method = $have_sel ? 'Enable' : 'Disable'; - $self->{"btn_$_"}->$method - for grep $self->{"btn_$_"}, qw(remove increase decrease rotate45cw rotate45ccw changescale split cut layers settings); - - if ($self->{htoolbar}) { - $self->{htoolbar}->EnableTool($_, $have_sel) - for (TB_REMOVE, TB_MORE, TB_FEWER, TB_45CW, TB_45CCW, TB_SCALE, TB_SPLIT, TB_CUT, TB_LAYERS, TB_SETTINGS); - } - - if ($self->{object_info_size}) { # have we already loaded the info pane? - - if ($have_sel) { - my $model_object = $self->{model}->objects->[$obj_idx]; - $self->{object_info_choice}->SetSelection($obj_idx); - $self->{object_info_copies}->SetLabel($model_object->instances_count); - my $model_instance = $model_object->instances->[0]; - { - my $size_string = sprintf "%.2f x %.2f x %.2f", @{$model_object->instance_bounding_box(0)->size}; - if ($model_instance->scaling_factor != 1) { - $size_string .= sprintf " (%s%%)", $model_instance->scaling_factor * 100; - } - $self->{object_info_size}->SetLabel($size_string); - } - $self->{object_info_materials}->SetLabel($model_object->materials_count); - - my $raw_mesh = $model_object->raw_mesh; - $raw_mesh->repair; # this calculates number_of_parts - if (my $stats = $raw_mesh->stats) { - $self->{object_info_volume}->SetLabel(sprintf('%.2f', $raw_mesh->volume * ($model_instance->scaling_factor**3))); - $self->{object_info_facets}->SetLabel(sprintf('%d (%d shells)', $model_object->facets_count, $stats->{number_of_parts})); - if (my $errors = sum(@$stats{qw(degenerate_facets edges_fixed facets_removed facets_added facets_reversed backwards_edges)})) { - $self->{object_info_manifold}->SetLabel(sprintf("Auto-repaired (%d errors)", $errors)); - $self->{object_info_manifold_warning_icon}->Show; - - # we don't show normals_fixed because we never provide normals - # to admesh, so it generates normals for all facets - my $message = sprintf '%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d facets reversed, %d backwards edges', - @$stats{qw(degenerate_facets edges_fixed facets_removed facets_added facets_reversed backwards_edges)}; - $self->{object_info_manifold}->SetToolTipString($message); - $self->{object_info_manifold_warning_icon}->SetToolTipString($message); - } else { - $self->{object_info_manifold}->SetLabel("Yes"); - } - } else { - $self->{object_info_facets}->SetLabel($object->facets); - } - } else { - $self->{object_info_choice}->SetSelection(-1); - $self->{"object_info_$_"}->SetLabel("") for qw(copies size volume facets materials manifold); - $self->{object_info_manifold_warning_icon}->Hide; - $self->{object_info_manifold}->SetToolTipString(""); - } - $self->Layout; - } - - # prepagate the event to the frame (a custom Wx event would be cleaner) - $self->GetFrame->on_plater_selection_changed($have_sel); -} - -sub select_object { - my ($self, $obj_idx) = @_; - - $_->selected(0) for @{ $self->{objects} }; - $_->selected_instance(-1) for @{ $self->{objects} }; - - if (defined $obj_idx) { - $self->{objects}->[$obj_idx]->selected(1); - $self->{objects}->[$obj_idx]->selected_instance(0); - } - $self->selection_changed(1); -} - -sub select_next { - my ($self) = @_; - - return if !@{$self->{objects}}; - my ($obj_idx, $object) = $self->selected_object; - if (!defined $obj_idx || $obj_idx == $#{$self->{objects}}) { - $obj_idx = 0; - } else { - $obj_idx++; - } - $self->select_object($obj_idx); - $self->refresh_canvases; -} - -sub select_prev { - my ($self) = @_; - - return if !@{$self->{objects}}; - my ($obj_idx, $object) = $self->selected_object; - if (!defined $obj_idx || $obj_idx == 0) { - $obj_idx = $#{$self->{objects}}; - } else { - $obj_idx--; - } - $self->select_object($obj_idx); - $self->refresh_canvases; -} - -sub selected_object { - my $self = shift; - - my $obj_idx = first { $self->{objects}[$_]->selected } 0..$#{ $self->{objects} }; - return undef if !defined $obj_idx; - return ($obj_idx, $self->{objects}[$obj_idx]), -} - -sub refresh_canvases { - my ($self) = @_; - - $self->{canvas}->Refresh; - $self->{canvas3D}->update if $self->{canvas3D}; - $self->{preview3D}->reload_print if $self->{preview3D}; -} - -sub validate_config { - my $self = shift; - - eval { - $self->config->validate; - }; - return 0 if Slic3r::GUI::catch_error($self); - return 1; -} - -sub statusbar { - my $self = shift; - return $self->GetFrame->{statusbar}; -} - -sub object_menu { - my ($self) = @_; - - my $frame = $self->GetFrame; - my $menu = Wx::Menu->new; - wxTheApp->append_menu_item($menu, "Delete\tCtrl+Del", 'Remove the selected object', sub { - $self->remove; - }, undef, 'brick_delete.png'); - wxTheApp->append_menu_item($menu, "Increase copies\tCtrl++", 'Place one more copy of the selected object', sub { - $self->increase; - }, undef, 'add.png'); - wxTheApp->append_menu_item($menu, "Decrease copies\tCtrl+-", 'Remove one copy of the selected object', sub { - $self->decrease; - }, undef, 'delete.png'); - wxTheApp->append_menu_item($menu, "Set number of copies…", 'Change the number of copies of the selected object', sub { - $self->set_number_of_copies; - }, undef, 'textfield.png'); - $menu->AppendSeparator(); - wxTheApp->append_menu_item($menu, "Move to bed center", 'Center object around bed center', sub { - $self->center_selected_object_on_bed; - }, undef, 'arrow_in.png'); - wxTheApp->append_menu_item($menu, "Rotate 45° clockwise", 'Rotate the selected object by 45° clockwise', sub { - $self->rotate(-45); - }, undef, 'arrow_rotate_clockwise.png'); - wxTheApp->append_menu_item($menu, "Rotate 45° counter-clockwise", 'Rotate the selected object by 45° counter-clockwise', sub { - $self->rotate(+45); - }, undef, 'arrow_rotate_anticlockwise.png'); - - { - my $rotateMenu = Wx::Menu->new; - wxTheApp->append_menu_item($rotateMenu, "Around X axis…", 'Rotate the selected object by an arbitrary angle around X axis', sub { - $self->rotate(undef, X); - }, undef, 'bullet_red.png'); - wxTheApp->append_menu_item($rotateMenu, "Around Y axis…", 'Rotate the selected object by an arbitrary angle around Y axis', sub { - $self->rotate(undef, Y); - }, undef, 'bullet_green.png'); - wxTheApp->append_menu_item($rotateMenu, "Around Z axis…", 'Rotate the selected object by an arbitrary angle around Z axis', sub { - $self->rotate(undef, Z); - }, undef, 'bullet_blue.png'); - wxTheApp->append_submenu($menu, "Rotate", 'Rotate the selected object by an arbitrary angle', $rotateMenu, undef, 'textfield.png'); - } - - { - my $mirrorMenu = Wx::Menu->new; - wxTheApp->append_menu_item($mirrorMenu, "Along X axis…", 'Mirror the selected object along the X axis', sub { - $self->mirror(X); - }, undef, 'bullet_red.png'); - wxTheApp->append_menu_item($mirrorMenu, "Along Y axis…", 'Mirror the selected object along the Y axis', sub { - $self->mirror(Y); - }, undef, 'bullet_green.png'); - wxTheApp->append_menu_item($mirrorMenu, "Along Z axis…", 'Mirror the selected object along the Z axis', sub { - $self->mirror(Z); - }, undef, 'bullet_blue.png'); - wxTheApp->append_submenu($menu, "Mirror", 'Mirror the selected object', $mirrorMenu, undef, 'shape_flip_horizontal.png'); - } - - { - my $scaleMenu = Wx::Menu->new; - wxTheApp->append_menu_item($scaleMenu, "Uniformly…", 'Scale the selected object along the XYZ axes', sub { - $self->changescale(undef); - }); - wxTheApp->append_menu_item($scaleMenu, "Along X axis…", 'Scale the selected object along the X axis', sub { - $self->changescale(X); - }, undef, 'bullet_red.png'); - wxTheApp->append_menu_item($scaleMenu, "Along Y axis…", 'Scale the selected object along the Y axis', sub { - $self->changescale(Y); - }, undef, 'bullet_green.png'); - wxTheApp->append_menu_item($scaleMenu, "Along Z axis…", 'Scale the selected object along the Z axis', sub { - $self->changescale(Z); - }, undef, 'bullet_blue.png'); - wxTheApp->append_submenu($menu, "Scale", 'Scale the selected object by a given factor', $scaleMenu, undef, 'arrow_out.png'); - } - - { - my $scaleToSizeMenu = Wx::Menu->new; - wxTheApp->append_menu_item($scaleToSizeMenu, "Uniformly…", 'Scale the selected object along the XYZ axes', sub { - $self->changescale(undef, 1); - }); - wxTheApp->append_menu_item($scaleToSizeMenu, "Along X axis…", 'Scale the selected object along the X axis', sub { - $self->changescale(X, 1); - }, undef, 'bullet_red.png'); - wxTheApp->append_menu_item($scaleToSizeMenu, "Along Y axis…", 'Scale the selected object along the Y axis', sub { - $self->changescale(Y, 1); - }, undef, 'bullet_green.png'); - wxTheApp->append_menu_item($scaleToSizeMenu, "Along Z axis…", 'Scale the selected object along the Z axis', sub { - $self->changescale(Z, 1); - }, undef, 'bullet_blue.png'); - wxTheApp->append_submenu($menu, "Scale to size", 'Scale the selected object to match a given size', $scaleToSizeMenu, undef, 'arrow_out.png'); - } - - wxTheApp->append_menu_item($menu, "Split", 'Split the selected object into individual parts', sub { - $self->split_object; - }, undef, 'shape_ungroup.png'); - wxTheApp->append_menu_item($menu, "Cut…", 'Open the 3D cutting tool', sub { - $self->object_cut_dialog; - }, undef, 'package.png'); - wxTheApp->append_menu_item($menu, "Layer heights…", 'Open the dynamic layer height control', sub { - $self->object_layers_dialog; - }, undef, 'variable_layer_height.png'); - $menu->AppendSeparator(); - wxTheApp->append_menu_item($menu, "Settings…", 'Open the object editor dialog', sub { - $self->object_settings_dialog; - }, undef, 'cog.png'); - $menu->AppendSeparator(); - wxTheApp->append_menu_item($menu, "Reload from Disk", 'Reload the selected file from Disk', sub { - $self->reload_from_disk; - }, undef, 'arrow_refresh.png'); - wxTheApp->append_menu_item($menu, "Export object as STL…", 'Export this single object as STL file', sub { - $self->export_object_stl; - }, undef, 'brick_go.png'); - wxTheApp->append_menu_item($menu, "Export object and modifiers as AMF…", 'Export this single object and all associated modifiers as AMF file', sub { - $self->export_object_amf; - }, undef, 'brick_go.png'); - wxTheApp->append_menu_item($menu, "Export object and modifiers as 3MF…", 'Export this single object and all associated modifiers as 3MF file', sub { - $self->export_object_tmf; - }, undef, 'brick_go.png'); - - return $menu; -} - -# Set a camera direction, zoom to all objects. -sub select_view { - my ($self, $direction) = @_; - my $idx_page = $self->{preview_notebook}->GetSelection; - my $page = ($idx_page == &Wx::wxNOT_FOUND) ? '3D' : $self->{preview_notebook}->GetPageText($idx_page); - if ($page eq 'Preview') { - $self->{preview3D}->canvas->select_view($direction); - $self->{canvas3D}->set_viewport_from_scene($self->{preview3D}->canvas); - } else { - $self->{canvas3D}->select_view($direction); - $self->{preview3D}->canvas->set_viewport_from_scene($self->{canvas3D}); - } -} - -sub zoom{ - my ($self, $direction) = @_; - #Apply Zoom to the current active tab - my ($currentSelection) = $self->{preview_notebook}->GetSelection; - if($currentSelection == 0){ - $self->{canvas3D}->zoom($direction) if($self->{canvas3D}); - } - elsif($currentSelection == 2){ #3d Preview tab - $self->{preview3D}->canvas->zoom($direction) if($self->{preview3D}); - } - elsif($currentSelection == 3) { #2D toolpaths tab - $self->{toolpaths2D}->{canvas}->zoom($direction) if($self->{toolpaths2D}); - } -} - -package Slic3r::GUI::Plater::DropTarget; -use Wx::DND; -use base 'Wx::FileDropTarget'; - -sub new { - my $class = shift; - my ($window) = @_; - my $self = $class->SUPER::new; - $self->{window} = $window; - return $self; -} - -sub OnDropFiles { - my $self = shift; - my ($x, $y, $filenames) = @_; - - # stop scalars leaking on older perl - # https://rt.perl.org/rt3/Public/Bug/Display.html?id=70602 - @_ = (); - - # only accept STL, OBJ and AMF files - return 0 if grep !/\.(?:stl|obj|amf(?:\.xml)?)$/i, @$filenames; - - $self->{window}->load_file($_) for @$filenames; -} - -# 2D preview of an object. Each object is previewed by its convex hull. -package Slic3r::GUI::Plater::Object; -use Moo; - -use List::Util qw(first); -use Slic3r::Geometry qw(X Y Z MIN MAX deg2rad); - -has 'name' => (is => 'rw', required => 1); -has 'identifier' => (is => 'rw', required => 1); -has 'input_file' => (is => 'rw'); -has 'input_file_obj_idx' => (is => 'rw'); -has 'thumbnail' => (is => 'rw'); # ExPolygon::Collection in scaled model units with no transforms -has 'transformed_thumbnail' => (is => 'rw'); -has 'instance_thumbnails' => (is => 'ro', default => sub { [] }); # array of ExPolygon::Collection objects, each one representing the actual placed thumbnail of each instance in pixel units -has 'selected' => (is => 'rw', default => sub { 0 }); -has 'selected_instance' => (is => 'rw', default => sub { -1 }); - -sub make_thumbnail { - my ($self, $model, $obj_idx) = @_; - - # make method idempotent - $self->thumbnail->clear; - - my $mesh = $model->objects->[$obj_idx]->raw_mesh; - # Apply x, y rotations and scaling vector in case of reading a 3MF model object. - my $model_instance = $model->objects->[$obj_idx]->instances->[0]; - $mesh->rotate_x($model_instance->x_rotation); - $mesh->rotate_y($model_instance->y_rotation); - $mesh->scale_xyz($model_instance->scaling_vector); - - if ($mesh->facets_count <= 5000) { - # remove polygons with area <= 1mm - my $area_threshold = Slic3r::Geometry::scale 1; - $self->thumbnail->append( - grep $_->area >= $area_threshold, - @{ $mesh->horizontal_projection }, # horizontal_projection returns scaled expolygons - ); - $self->thumbnail->simplify(0.5); - } else { - my $convex_hull = Slic3r::ExPolygon->new($mesh->convex_hull); - $self->thumbnail->append($convex_hull); - } - - return $self->thumbnail; -} - -sub transform_thumbnail { - my ($self, $model, $obj_idx) = @_; - - return unless defined $self->thumbnail; - - my $model_object = $model->objects->[$obj_idx]; - my $model_instance = $model_object->instances->[0]; - - # the order of these transformations MUST be the same everywhere, including - # in Slic3r::Print->add_model_object() - my $t = $self->thumbnail->clone; - $t->rotate($model_instance->rotation, Slic3r::Point->new(0,0)); - $t->scale($model_instance->scaling_factor); - - $self->transformed_thumbnail($t); -} - -package Slic3r::GUI::Plater::OctoPrintSpoolDialog; -use Wx qw(:dialog :id :misc :sizer :icon wxTheApp); -use Wx::Event qw(EVT_BUTTON EVT_TEXT_ENTER); -use base 'Wx::Dialog'; - -sub new { - my $class = shift; - my ($parent, $filename) = @_; - my $self = $class->SUPER::new($parent, -1, "Send to Server", wxDefaultPosition, - [400, -1]); - - $self->{filename} = $filename; - $Slic3r::GUI::Settings->{octoprint} //= {}; - - my $optgroup; - $optgroup = Slic3r::GUI::OptionsGroup->new( - parent => $self, - title => 'Send to Server', - on_change => sub { - my ($opt_id) = @_; - - if ($opt_id eq 'filename') { - $self->{filename} = $optgroup->get_value($opt_id); - } else { - $Slic3r::GUI::Settings->{octoprint}{$opt_id} = $optgroup->get_value($opt_id); - } - }, - label_width => 200, - ); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'filename', - type => 's', - label => 'File name', - width => 200, - tooltip => 'The name used for labelling the print job.', - default => $filename, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'overwrite', - type => 'bool', - label => 'Overwrite existing file', - tooltip => 'If selected, any existing file with the same name will be overwritten without confirmation.', - default => $Slic3r::GUI::Settings->{octoprint}{overwrite} // 0, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'start', - type => 'bool', - label => 'Start print', - tooltip => 'If selected, print will start after the upload.', - default => $Slic3r::GUI::Settings->{octoprint}{start} // 0, - )); - - my $sizer = Wx::BoxSizer->new(wxVERTICAL); - $sizer->Add($optgroup->sizer, 0, wxEXPAND | wxTOP | wxBOTTOM | wxLEFT | wxRIGHT, 10); - - my $buttons = $self->CreateStdDialogButtonSizer(wxOK | wxCANCEL); - $sizer->Add($buttons, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - EVT_BUTTON($self, wxID_OK, sub { - wxTheApp->save_settings; - $self->EndModal(wxID_OK); - $self->Destroy; - }); - - $self->SetSizer($sizer); - $sizer->SetSizeHints($self); - - return $self; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/2D.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/2D.pm deleted file mode 100644 index 5b257380..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/2D.pm +++ /dev/null @@ -1,435 +0,0 @@ -# 2D preview on the platter. -# 3D objects are visualized by their convex hulls. - -package Slic3r::GUI::Plater::2D; -use strict; -use warnings; -use utf8; - -use List::Util qw(min max first); -use Slic3r::Geometry qw(X Y scale unscale convex_hull); -use Slic3r::Geometry::Clipper qw(offset JT_ROUND intersection_pl); -use Wx qw(:misc :pen :brush :sizer :font :cursor wxTAB_TRAVERSAL); -use Wx::Event qw(EVT_MOUSE_EVENTS EVT_KEY_DOWN EVT_PAINT EVT_ERASE_BACKGROUND EVT_SIZE); -use base 'Wx::Panel'; - -# Color Scheme -use Slic3r::GUI::ColorScheme; - -use constant CANVAS_TEXT => join('-', +(localtime)[3,4]) eq '13-8' - ? 'What do you want to print today? ™' # Sept. 13, 2006. The first part ever printed by a RepRap to make another RepRap. - : 'Drag your objects here'; - -sub new { - my $class = shift; - my ($parent, $size, $objects, $model, $config) = @_; - - if ( ( defined $Slic3r::GUI::Settings->{_}{colorscheme} ) && ( Slic3r::GUI::ColorScheme->can($Slic3r::GUI::Settings->{_}{colorscheme}) ) ) { - my $myGetSchemeName = \&{"Slic3r::GUI::ColorScheme::$Slic3r::GUI::Settings->{_}{colorscheme}"}; - $myGetSchemeName->(); - } else { - Slic3r::GUI::ColorScheme->getDefault(); - } - - my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, $size, wxTAB_TRAVERSAL); - # This has only effect on MacOS. On Windows and Linux/GTK, the background is painted by $self->repaint(). - $self->SetBackgroundColour(Wx::Colour->new(@BACKGROUND255)); - - $self->{objects} = $objects; - $self->{model} = $model; - $self->{config} = $config; - $self->{on_select_object} = sub {}; - $self->{on_double_click} = sub {}; - $self->{on_right_click} = sub {}; - $self->{on_instances_moved} = sub {}; - - $self->{objects_brush} = Wx::Brush->new(Wx::Colour->new(@BED_OBJECTS), wxSOLID); - $self->{instance_brush} = Wx::Brush->new(Wx::Colour->new(@BED_INSTANCE), wxSOLID); - $self->{selected_brush} = Wx::Brush->new(Wx::Colour->new(@BED_SELECTED), wxSOLID); - $self->{dragged_brush} = Wx::Brush->new(Wx::Colour->new(@BED_DRAGGED), wxSOLID); - $self->{bed_brush} = Wx::Brush->new(Wx::Colour->new(@BED_COLOR), wxSOLID); - $self->{transparent_brush} = Wx::Brush->new(Wx::Colour->new(0,0,0), wxTRANSPARENT); - $self->{grid_pen} = Wx::Pen->new(Wx::Colour->new(@BED_GRID), 1, wxSOLID); - $self->{print_center_pen} = Wx::Pen->new(Wx::Colour->new(@BED_CENTER), 1, wxSOLID); - $self->{clearance_pen} = Wx::Pen->new(Wx::Colour->new(@BED_CLEARANCE), 1, wxSOLID); - $self->{skirt_pen} = Wx::Pen->new(Wx::Colour->new(@BED_SKIRT), 1, wxSOLID); - $self->{dark_pen} = Wx::Pen->new(Wx::Colour->new(@BED_DARK), 1, wxSOLID); - - $self->{user_drawn_background} = $^O ne 'darwin'; - - $self->{selected_instance} = undef; - - EVT_PAINT($self, \&repaint); - EVT_ERASE_BACKGROUND($self, sub {}) if $self->{user_drawn_background}; - EVT_MOUSE_EVENTS($self, \&mouse_event); - EVT_SIZE($self, sub { - $self->update_bed_size; - $self->Refresh; - }); - EVT_KEY_DOWN($self, sub { - my ($s, $event) = @_; - - my $key = $event->GetKeyCode; - if ($key == 65 || $key == 314) { - $self->nudge_instance('left'); - } elsif ($key == 87 || $key == 315) { - $self->nudge_instance('up'); - } elsif ($key == 68 || $key == 316) { - $self->nudge_instance('right'); - } elsif ($key == 83 || $key == 317) { - $self->nudge_instance('down'); - } else { - $event->Skip; - } - }); - - return $self; -} - -sub on_select_object { - my ($self, $cb) = @_; - $self->{on_select_object} = $cb; -} - -sub on_double_click { - my ($self, $cb) = @_; - $self->{on_double_click} = $cb; -} - -sub on_right_click { - my ($self, $cb) = @_; - $self->{on_right_click} = $cb; -} - -sub on_instances_moved { - my ($self, $cb) = @_; - $self->{on_instances_moved} = $cb; -} - -sub repaint { - my ($self, $event) = @_; - - # Focus is needed in order to catch keyboard events. - $self->SetFocus; - - my $dc = Wx::AutoBufferedPaintDC->new($self); - my $size = $self->GetSize; - my @size = ($size->GetWidth, $size->GetHeight); - - if ($self->{user_drawn_background}) { - # On all systems the AutoBufferedPaintDC() achieves double buffering. - # On MacOS the background is erased, on Windows the background is not erased - # and on Linux/GTK the background is erased to gray color. - # Fill DC with the background on Windows & Linux/GTK. - my $brush_background = Wx::Brush->new(Wx::Colour->new(@BACKGROUND255), wxSOLID); - my $pen_background = Wx::Pen->new(Wx::Colour->new(@BACKGROUND255), 1, wxSOLID); - $dc->SetPen($pen_background); - $dc->SetBrush($brush_background); - my $rect = $self->GetUpdateRegion()->GetBox(); - $dc->DrawRectangle($rect->GetLeft(), $rect->GetTop(), $rect->GetWidth(), $rect->GetHeight()); - } - - # draw bed - { - $dc->SetPen($self->{print_center_pen}); - $dc->SetBrush($self->{bed_brush}); - $dc->DrawPolygon($self->scaled_points_to_pixel($self->{bed_polygon}, 1), 0, 0); - } - - # draw print center - if (@{$self->{objects}} && $Slic3r::GUI::Settings->{_}{autocenter}) { - my $center = $self->unscaled_point_to_pixel($self->{print_center}); - $dc->SetPen($self->{print_center_pen}); - $dc->DrawLine($center->[X], 0, $center->[X], $size[Y]); - $dc->DrawLine(0, $center->[Y], $size[X], $center->[Y]); - $dc->SetTextForeground(Wx::Colour->new(0,0,0)); - $dc->SetFont(Wx::Font->new(10, wxDEFAULT, wxNORMAL, wxNORMAL)); - $dc->DrawLabel("X = " . sprintf('%.0f', $self->{print_center}->[X]), Wx::Rect->new(0, 0, $center->[X]*2, $self->GetSize->GetHeight), wxALIGN_CENTER_HORIZONTAL | wxALIGN_BOTTOM); - $dc->DrawRotatedText("Y = " . sprintf('%.0f', $self->{print_center}->[Y]), 0, $center->[Y]+15, 90); - } - - # draw frame - if (0) { - $dc->SetPen($self->{dark_pen}); - $dc->SetBrush($self->{transparent_brush}); - $dc->DrawRectangle(0, 0, @size); - } - - # draw text if plate is empty - if (!@{$self->{objects}}) { - $dc->SetTextForeground(Wx::Colour->new(@BED_OBJECTS)); - $dc->SetFont(Wx::Font->new(14, wxDEFAULT, wxNORMAL, wxNORMAL)); - $dc->DrawLabel(CANVAS_TEXT, Wx::Rect->new(0, 0, $self->GetSize->GetWidth, $self->GetSize->GetHeight), wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL); - } else { - # draw grid - $dc->SetPen($self->{grid_pen}); - $dc->DrawLine(map @$_, @$_) for @{$self->{grid}}; - } - - # draw thumbnails - $dc->SetPen($self->{dark_pen}); - $self->clean_instance_thumbnails; - for my $obj_idx (0 .. $#{$self->{objects}}) { - my $object = $self->{objects}[$obj_idx]; - my $model_object = $self->{model}->objects->[$obj_idx]; - next unless defined $object->thumbnail; - for my $instance_idx (0 .. $#{$model_object->instances}) { - my $instance = $model_object->instances->[$instance_idx]; - next if !defined $object->transformed_thumbnail; - - my $thumbnail = $object->transformed_thumbnail->clone; # in scaled model coordinates - $thumbnail->translate(map scale($_), @{$instance->offset}); - - $object->instance_thumbnails->[$instance_idx] = $thumbnail; - - if (defined $self->{drag_object} && $self->{drag_object}[0] == $obj_idx && $self->{drag_object}[1] == $instance_idx) { - $dc->SetBrush($self->{dragged_brush}); - } elsif ($object->selected && $object->selected_instance == $instance_idx) { - $dc->SetBrush($self->{instance_brush}); - } elsif ($object->selected) { - $dc->SetBrush($self->{selected_brush}); - } else { - $dc->SetBrush($self->{objects_brush}); - } - foreach my $expolygon (@$thumbnail) { - foreach my $points (@{$expolygon->pp}) { - $dc->DrawPolygon($self->scaled_points_to_pixel($points, 1), 0, 0); - } - } - - if (0) { - # draw bounding box for debugging purposes - my $bb = $model_object->instance_bounding_box($instance_idx); - $bb->scale($self->{scaling_factor}); - # no need to translate by instance offset because instance_bounding_box() does that - my $points = $bb->polygon->pp; - $dc->SetPen($self->{clearance_pen}); - $dc->SetBrush($self->{transparent_brush}); - $dc->DrawPolygon($self->_y($points), 0, 0); - } - - # if sequential printing is enabled and we have more than one object, draw clearance area - if ($self->{config}->complete_objects && (map @{$_->instances}, @{$self->{model}->objects}) > 1) { - my ($clearance) = @{offset([$thumbnail->convex_hull], (scale($self->{config}->extruder_clearance_radius) / 2), 1, JT_ROUND, scale(0.1))}; - $dc->SetPen($self->{clearance_pen}); - $dc->SetBrush($self->{transparent_brush}); - $dc->DrawPolygon($self->scaled_points_to_pixel($clearance, 1), 0, 0); - } - } - } - - # draw skirt - if (@{$self->{objects}} && $self->{config}->skirts) { - my @points = map @{$_->contour}, map @$_, map @{$_->instance_thumbnails}, @{$self->{objects}}; - if (@points >= 3) { - my ($convex_hull) = @{offset([convex_hull(\@points)], scale max($self->{config}->brim_width + $self->{config}->skirt_distance), 1, JT_ROUND, scale(0.1))}; - $dc->SetPen($self->{skirt_pen}); - $dc->SetBrush($self->{transparent_brush}); - $dc->DrawPolygon($self->scaled_points_to_pixel($convex_hull, 1), 0, 0); - } - } - - $event->Skip; -} - -sub mouse_event { - my ($self, $event) = @_; - - my $pos = $event->GetPosition; - my $point = $self->point_to_model_units([ $pos->x, $pos->y ]); #]] - if ($event->ButtonDown) { - # On Linux, Focus is needed in order to move selected instance using keyboard arrows. - $self->SetFocus; - - $self->{on_select_object}->(undef); - $self->{selected_instance} = undef; - # traverse objects and instances in reverse order, so that if they're overlapping - # we get the one that gets drawn last, thus on top (as user expects that to move) - OBJECTS: for my $obj_idx (reverse 0 .. $#{$self->{objects}}) { - my $object = $self->{objects}->[$obj_idx]; - for my $instance_idx (reverse 0 .. $#{ $object->instance_thumbnails }) { - my $thumbnail = $object->instance_thumbnails->[$instance_idx]; - if (defined first { $_->contour->contains_point($point) } @$thumbnail) { - $self->{on_select_object}->($obj_idx); - - if ($event->LeftDown) { - # start dragging - my $instance = $self->{model}->objects->[$obj_idx]->instances->[$instance_idx]; - my $instance_origin = [ map scale($_), @{$instance->offset} ]; - $self->{drag_start_pos} = [ # displacement between the click and the instance origin in scaled model units - $point->x - $instance_origin->[X], - $point->y - $instance_origin->[Y], #- - ]; - $self->{drag_object} = [ $obj_idx, $instance_idx ]; - $self->{objects}->[$obj_idx]->selected_instance($instance_idx); - $self->{selected_instance} = $self->{drag_object}; - } elsif ($event->RightDown) { - $self->{on_right_click}->($pos); - } - - last OBJECTS; - } - } - } - $self->Refresh; - } elsif ($event->LeftUp) { - $self->{on_instances_moved}->() - if $self->{drag_object}; - $self->{drag_start_pos} = undef; - $self->{drag_object} = undef; - $self->SetCursor(wxSTANDARD_CURSOR); - } elsif ($event->LeftDClick) { - $self->{on_double_click}->(); - } elsif ($event->Dragging) { - return if !$self->{drag_start_pos}; # concurrency problems - my ($obj_idx, $instance_idx) = @{ $self->{drag_object} }; - my $model_object = $self->{model}->objects->[$obj_idx]; - $model_object->instances->[$instance_idx]->set_offset( - Slic3r::Pointf->new( - unscale($point->[X] - $self->{drag_start_pos}[X]), - unscale($point->[Y] - $self->{drag_start_pos}[Y]), - )); - $model_object->update_bounding_box; - $self->Refresh; - } elsif ($event->Moving) { - my $cursor = wxSTANDARD_CURSOR; - if (defined first { $_->contour->contains_point($point) } map @$_, map @{$_->instance_thumbnails}, @{ $self->{objects} }) { - $cursor = Wx::Cursor->new(wxCURSOR_HAND); - } - $self->SetCursor($cursor); - } -} - -sub nudge_instance{ - my ($self, $direction) = @_; - - # Get the selected instance of an object. - if (!defined $self->{selected_instance}) { - # Check if an object is selected. - for my $obj_idx (0 .. $#{$self->{objects}}) { - if ($self->{objects}->[$obj_idx]->selected) { - if ($self->{objects}->[$obj_idx]->selected_instance != -1) { - $self->{selected_instance} = [$obj_idx, $self->{objects}->[$obj_idx]->selected_instance]; - } - } - } - } - return if not defined ($self->{selected_instance}); - my ($obj_idx, $instance_idx) = @{ $self->{selected_instance} }; - my $object = $self->{model}->objects->[$obj_idx]; - my $instance = $object->instances->[$instance_idx]; - - # Get the nudge values. - my $x_nudge = 0; - my $y_nudge = 0; - - $self->{nudge_value} = ($Slic3r::GUI::Settings->{_}{nudge_val} < 0.1 ? 0.1 : $Slic3r::GUI::Settings->{_}{nudge_val}) / &Slic3r::SCALING_FACTOR; - - if ($direction eq 'right'){ - $x_nudge = $self->{nudge_value}; - } elsif ($direction eq 'left'){ - $x_nudge = -1 * $self->{nudge_value}; - } elsif ($direction eq 'up'){ - $y_nudge = $self->{nudge_value}; - } elsif ($direction eq 'down'){ - $y_nudge = -$self->{nudge_value}; - } - my $point = Slic3r::Pointf->new($x_nudge, $y_nudge); - my $instance_origin = [ map scale($_), @{$instance->offset} ]; - $point = [ map scale($_), @{$point} ]; - - $instance->set_offset( - Slic3r::Pointf->new( - unscale( $instance_origin->[X] + $x_nudge), - unscale( $instance_origin->[Y] + $y_nudge), - )); - - $object->update_bounding_box; - $self->Refresh; - $self->{on_instances_moved}->(); -} - -sub update_bed_size { - my $self = shift; - - # when the canvas is not rendered yet, its GetSize() method returns 0,0 - my $canvas_size = $self->GetSize; - my ($canvas_w, $canvas_h) = ($canvas_size->GetWidth, $canvas_size->GetHeight); - return if $canvas_w == 0; - - # get bed shape polygon - $self->{bed_polygon} = my $polygon = Slic3r::Polygon->new_scale(@{$self->{config}->bed_shape}); - my $bb = $polygon->bounding_box; - my $size = $bb->size; - - # calculate the scaling factor needed for constraining print bed area inside preview - # scaling_factor is expressed in pixel / mm - $self->{scaling_factor} = min($canvas_w / unscale($size->x), $canvas_h / unscale($size->y)); #) - - # calculate the displacement needed to center bed - $self->{bed_origin} = [ - $canvas_w/2 - (unscale($bb->x_max + $bb->x_min)/2 * $self->{scaling_factor}), - $canvas_h - ($canvas_h/2 - (unscale($bb->y_max + $bb->y_min)/2 * $self->{scaling_factor})), - ]; - - # calculate print center - my $center = $bb->center; - $self->{print_center} = [ unscale($center->x), unscale($center->y) ]; #)) - - # cache bed contours and grid - { - my $step = scale 10; # 1cm grid - my @polylines = (); - for (my $x = $bb->x_min - ($bb->x_min % $step) + $step; $x < $bb->x_max; $x += $step) { - push @polylines, Slic3r::Polyline->new([$x, $bb->y_min], [$x, $bb->y_max]); - } - for (my $y = $bb->y_min - ($bb->y_min % $step) + $step; $y < $bb->y_max; $y += $step) { - push @polylines, Slic3r::Polyline->new([$bb->x_min, $y], [$bb->x_max, $y]); - } - @polylines = @{intersection_pl(\@polylines, [$polygon])}; - $self->{grid} = [ map $self->scaled_points_to_pixel([ @$_[0,-1] ], 1), @polylines ]; - } -} - -sub clean_instance_thumbnails { - my ($self) = @_; - - foreach my $object (@{ $self->{objects} }) { - @{ $object->instance_thumbnails } = (); - } -} - -# convert a model coordinate into a pixel coordinate -sub unscaled_point_to_pixel { - my ($self, $point) = @_; - - my $canvas_height = $self->GetSize->GetHeight; - my $zero = $self->{bed_origin}; - return [ - $point->[X] * $self->{scaling_factor} + $zero->[X], - $canvas_height - $point->[Y] * $self->{scaling_factor} + ($zero->[Y] - $canvas_height), - ]; -} - -sub scaled_points_to_pixel { - my ($self, $points, $unscale) = @_; - - my $result = []; - foreach my $point (@$points) { - $point = [ map unscale($_), @$point ] if $unscale; - push @$result, $self->unscaled_point_to_pixel($point); - } - return $result; -} - -sub point_to_model_units { - my ($self, $point) = @_; - - my $zero = $self->{bed_origin}; - return Slic3r::Point->new( - scale ($point->[X] - $zero->[X]) / $self->{scaling_factor}, - scale ($zero->[Y] - $point->[Y]) / $self->{scaling_factor}, - ); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/2DToolpaths.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/2DToolpaths.pm deleted file mode 100644 index 87d819c7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/2DToolpaths.pm +++ /dev/null @@ -1,799 +0,0 @@ -# 2D preview of the tool paths of a single layer, using a thin line. -# OpenGL is used to render the paths. -# Vojtech also added a 2D simulation of under/over extrusion in a single layer. - -package Slic3r::GUI::Plater::2DToolpaths; -use strict; -use warnings; -use utf8; - -use Slic3r::Print::State ':steps'; -use Wx qw(:misc :sizer :slider :statictext wxWHITE); -use Wx::Event qw(EVT_SLIDER EVT_KEY_DOWN); -use base qw(Wx::Panel Class::Accessor); - -# Color Scheme -use Slic3r::GUI::ColorScheme; - -__PACKAGE__->mk_accessors(qw(print enabled)); - -sub new { - my $class = shift; - my ($parent, $print) = @_; - - my $self = $class->SUPER::new($parent, -1, wxDefaultPosition); - if ( ( defined $Slic3r::GUI::Settings->{_}{colorscheme} ) && ( my $getScheme = Slic3r::GUI::ColorScheme->can($Slic3r::GUI::Settings->{_}{colorscheme}) ) ) { - $getScheme->(); - $self->SetBackgroundColour(Wx::Colour->new(@BACKGROUND255)); - } else { - Slic3r::GUI::ColorScheme->getDefault(); - $self->SetBackgroundColour(Wx::wxWHITE); - } - - # init GUI elements - my $canvas = $self->{canvas} = Slic3r::GUI::Plater::2DToolpaths::Canvas->new($self, $print); - my $slider = $self->{slider} = Wx::Slider->new( - $self, -1, - 0, # default - 0, # min - # we set max to a bogus non-zero value because the MSW implementation of wxSlider - # will skip drawing the slider if max <= min: - 1, # max - wxDefaultPosition, - wxDefaultSize, - wxVERTICAL | wxSL_INVERSE, - ); - my $z_label = $self->{z_label} = Wx::StaticText->new($self, -1, "", wxDefaultPosition, - [40,-1], wxALIGN_CENTRE_HORIZONTAL); - $z_label->SetFont($Slic3r::GUI::small_font); - - my $vsizer = Wx::BoxSizer->new(wxVERTICAL); - $vsizer->Add($slider, 1, wxALL | wxEXPAND | wxALIGN_CENTER, 3); - $vsizer->Add($z_label, 0, wxALL | wxEXPAND | wxALIGN_CENTER, 3); - - my $sizer = Wx::BoxSizer->new(wxHORIZONTAL); - $sizer->Add($canvas, 1, wxALL | wxEXPAND, 0); - $sizer->Add($vsizer, 0, wxTOP | wxBOTTOM | wxEXPAND, 5); - - EVT_SLIDER($self, $slider, sub { - $self->set_z($self->{layers_z}[$slider->GetValue]) - if $self->enabled; - }); - EVT_KEY_DOWN($canvas, sub { - my ($s, $event) = @_; - - my $key = $event->GetKeyCode; - if ($key == 85 || $key == 315) { - $slider->SetValue($slider->GetValue + 1); - $self->set_z($self->{layers_z}[$slider->GetValue]); - } elsif ($key == 68 || $key == 317) { - $slider->SetValue($slider->GetValue - 1); - $self->set_z($self->{layers_z}[$slider->GetValue]); - } else { - $event->Skip; - } - }); - - $self->SetSizer($sizer); - $self->SetMinSize($self->GetSize); - $sizer->SetSizeHints($self); - - # init print - $self->{print} = $print; - $self->reload_print; - - return $self; -} - -sub reload_print { - my ($self) = @_; - - # we require that there's at least one object and the posSlice step - # is performed on all of them (this ensures that _shifted_copies was - # populated and we know the number of layers) - if (!$self->print->object_step_done(STEP_SLICE)) { - $self->enabled(0); - $self->{slider}->Hide; - $self->{canvas}->Refresh; # clears canvas - return; - } - - $self->{canvas}->bb($self->print->total_bounding_box); - $self->{canvas}->_dirty(1); - - my %z = (); # z => 1 - foreach my $object (@{$self->{print}->objects}) { - foreach my $layer (@{$object->layers}, @{$object->support_layers}) { - $z{$layer->print_z} = 1; - } - } - $self->enabled(1); - $self->{layers_z} = [ sort { $a <=> $b } keys %z ]; - $self->{slider}->SetRange(0, scalar(@{$self->{layers_z}})-1); - if ((my $z_idx = $self->{slider}->GetValue) <= $#{$self->{layers_z}}) { - $self->set_z($self->{layers_z}[$z_idx]); - } else { - $self->{slider}->SetValue(0); - $self->set_z($self->{layers_z}[0]) if @{$self->{layers_z}}; - } - $self->{slider}->Show; - $self->Layout; -} - -sub set_z { - my ($self, $z) = @_; - - return if !$self->enabled; - $self->{z_label}->SetLabel(sprintf '%.2f', $z); - $self->{canvas}->set_z($z); -} - - -package Slic3r::GUI::Plater::2DToolpaths::Canvas; - -use Wx::Event qw(EVT_PAINT EVT_SIZE EVT_IDLE EVT_MOUSEWHEEL EVT_MOUSE_EVENTS); -use OpenGL qw(:glconstants :glfunctions :glufunctions :gluconstants); -use base qw(Wx::GLCanvas Class::Accessor); -use Wx::GLCanvas qw(:all); -use List::Util qw(min max first); -use Slic3r::Geometry qw(scale unscale epsilon X Y); -use Slic3r::Print::State ':steps'; - -# Color Scheme -use Slic3r::GUI::ColorScheme; - -__PACKAGE__->mk_accessors(qw( - print z layers color init - bb - _camera_bb - _dirty - _zoom - _camera_target - _drag_start_xy -)); - -# make OpenGL::Array thread-safe -{ - no warnings 'redefine'; - *OpenGL::Array::CLONE_SKIP = sub { 1 }; -} - -sub new { - my ($class, $parent, $print) = @_; - - if ( ( defined $Slic3r::GUI::Settings->{_}{colorscheme} ) && ( Slic3r::GUI::ColorScheme->can($Slic3r::GUI::Settings->{_}{colorscheme}) ) ) { - my $myGetSchemeName = \&{"Slic3r::GUI::ColorScheme::$Slic3r::GUI::Settings->{_}{colorscheme}"}; - $myGetSchemeName->(); - } else { - Slic3r::GUI::ColorScheme->getDefault(); - } - my $self = (Wx::wxVERSION >= 3.000003) ? - # The wxWidgets 3.0.3-beta have a bug, they crash with NULL attribute list. - $class->SUPER::new($parent, -1, Wx::wxDefaultPosition, Wx::wxDefaultSize, 0, "", - [WX_GL_RGBA, WX_GL_DOUBLEBUFFER, WX_GL_DEPTH_SIZE, 24, 0]) : - $class->SUPER::new($parent); - # Immediatelly force creation of the OpenGL context to consume the static variable s_wglContextAttribs. - $self->GetContext(); - $self->print($print); - $self->_zoom(1); - - # 2D point in model space - $self->_camera_target(Slic3r::Pointf->new(0,0)); - - EVT_PAINT($self, sub { - my $dc = Wx::PaintDC->new($self); - $self->Render($dc); - }); - EVT_SIZE($self, sub { $self->_dirty(1) }); - EVT_IDLE($self, sub { - return unless $self->_dirty; - return if !$self->IsShownOnScreen; - $self->Resize; - $self->Refresh; - }); - EVT_MOUSEWHEEL($self, sub { - my ($self, $e) = @_; - - return if !$self->GetParent->enabled; - - my $old_zoom = $self->_zoom; - - # Calculate the zoom delta and apply it to the current zoom factor - my $zoom = -$e->GetWheelRotation() / $e->GetWheelDelta(); - if ($Slic3r::GUI::Settings->{_}{invert_zoom}) { - $zoom *= -1; - } - $zoom = max(min($zoom, 4), -4); - $zoom /= 10; - $self->_zoom($self->_zoom / (1-$zoom)); - $self->_zoom(1) if $self->_zoom > 1; # prevent from zooming out too much - - { - # In order to zoom around the mouse point we need to translate - # the camera target. This math is almost there but not perfect yet... - my $camera_bb_size = $self->_camera_bb->size; - my $size = Slic3r::Pointf->new($self->GetSizeWH); - my $pos = Slic3r::Pointf->new($e->GetPositionXY); - - # calculate the zooming center in pixel coordinates relative to the viewport center - my $vec = Slic3r::Pointf->new($pos->x - $size->x/2, $pos->y - $size->y/2); #- - - # calculate where this point will end up after applying the new zoom - my $vec2 = $vec->clone; - $vec2->scale($old_zoom / $self->_zoom); - - # move the camera target by the difference of the two positions - $self->_camera_target->translate( - -($vec->x - $vec2->x) * $camera_bb_size->x / $size->x, - ($vec->y - $vec2->y) * $camera_bb_size->y / $size->y, #// - ); - } - - $self->_dirty(1); - $self->Refresh; - }); - EVT_MOUSE_EVENTS($self, \&mouse_event); - - return $self; -} - -sub zoom{ - my($self, $direction) = @_; - if( $direction eq 'in'){ - $self->_zoom($self->_zoom / (1+0.3)); - } - elsif($direction eq 'out'){ - $self->_zoom($self->_zoom / (1-0.3)); - $self->_zoom(1) if $self->_zoom > 1; # prevent from zooming out too much - } - #apply changes - $self->_dirty(1); - $self->Refresh; -} - -sub mouse_event { - my ($self, $e) = @_; - - return if !$self->GetParent->enabled; - - my $pos = Slic3r::Pointf->new($e->GetPositionXY); - if ($e->Entering && &Wx::wxMSW) { - # wxMSW needs focus in order to catch mouse wheel events - $self->SetFocus; - } elsif ($e->Dragging) { - if ($e->LeftIsDown || $e->MiddleIsDown || $e->RightIsDown) { - # if dragging, translate view - - if (defined $self->_drag_start_xy) { - my $move = $self->_drag_start_xy->vector_to($pos); # in pixels - - # get viewport and camera size in order to convert pixel to model units - my ($x, $y) = $self->GetSizeWH; - my $camera_bb_size = $self->_camera_bb->size; - - # compute translation in model units - $self->_camera_target->translate( - -$move->x * $camera_bb_size->x / $x, - $move->y * $camera_bb_size->y / $y, # /** - ); - - $self->_dirty(1); - $self->Refresh; - } - $self->_drag_start_xy($pos); - } - } elsif ($e->LeftUp || $e->MiddleUp || $e->RightUp) { - $self->_drag_start_xy(undef); - } else { - $e->Skip(); - } -} - -sub set_z { - my ($self, $z) = @_; - - my $print = $self->print; - - # can we have interlaced layers? - my $interlaced = (defined first { $_->config->support_material } @{$print->objects}) - || (defined first { $_->config->infill_every_layers > 1 } @{$print->regions}); - - my $max_layer_height = $print->max_allowed_layer_height; - - my @layers = (); - foreach my $object (@{$print->objects}) { - foreach my $layer (@{$object->layers}, @{$object->support_layers}) { - if ($interlaced) { - push @layers, $layer - if $z > ($layer->print_z - $max_layer_height - epsilon) - && $z <= $layer->print_z + epsilon; - } else { - push @layers, $layer if abs($layer->print_z - $z) < epsilon; - } - } - } - - # reverse layers so that we draw the lowermost (i.e. current) on top - $self->z($z); - $self->layers([ reverse @layers ]); - $self->Refresh; -} - -sub Render { - my ($self, $dc) = @_; - - # prevent calling SetCurrent() when window is not shown yet - return unless $self->IsShownOnScreen; - return unless my $context = $self->GetContext; - $self->SetCurrent($context); - $self->InitGL; - - if ($DEFAULT_COLORSCHEME==1){ - glClearColor(1, 1, 1, 0); - } else{ - glClearColor(@BACKGROUND_COLOR, 0); - } - - glClear(GL_COLOR_BUFFER_BIT); - - if (!$self->GetParent->enabled || !$self->layers) { - glFlush(); - $self->SwapBuffers; - return; - } - - glDisable(GL_DEPTH_TEST); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - - # anti-alias - if (0) { - glEnable(GL_LINE_SMOOTH); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glHint(GL_LINE_SMOOTH_HINT, GL_DONT_CARE); - glHint(GL_POLYGON_SMOOTH_HINT, GL_DONT_CARE); - } - - my $tess; - if (!(&Wx::wxMSW && $OpenGL::VERSION < 0.6704)) { - # We can't use the GLU tesselator on MSW with older OpenGL versions - # because of an upstream bug: - # http://sourceforge.net/p/pogl/bugs/16/ - $tess = gluNewTess(); - gluTessCallback($tess, GLU_TESS_BEGIN, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_END, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_VERTEX, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_COMBINE, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_ERROR, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_EDGE_FLAG, 'DEFAULT'); - } - - foreach my $layer (@{$self->layers}) { - my $object = $layer->object; - - # only draw the slice for the current layer - next unless abs($layer->print_z - $self->z) < epsilon; - - # draw slice contour - glLineWidth(1); - foreach my $copy (@{ $object->_shifted_copies }) { - glPushMatrix(); - glTranslatef(@$copy, 0); - - foreach my $slice (@{$layer->slices}) { - glColor3f(@TOOL_SHADE); # Inside part shade - - if ($tess) { - gluTessBeginPolygon($tess); - foreach my $polygon (@$slice) { - gluTessBeginContour($tess); - gluTessVertex_p($tess, @$_, 0) for @$polygon; - gluTessEndContour($tess); - } - gluTessEndPolygon($tess); - } - - glColor3f(@TOOL_COLOR); # Perimeter - foreach my $polygon (@$slice) { - foreach my $line (@{$polygon->lines}) { - glBegin(GL_LINES); - glVertex2f(@{$line->a}); - glVertex2f(@{$line->b}); - glEnd(); - } - } - } - glPopMatrix(); - } - } - - my $skirt_drawn = 0; - my $brim_drawn = 0; - foreach my $layer (@{$self->layers}) { - my $object = $layer->object; - my $print_z = $layer->print_z; - - # draw brim - if ($self->print->step_done(STEP_BRIM) && $layer->id == 0 && !$brim_drawn) { - $self->color(@TOOL_DARK); - $self->_draw(undef, $print_z, $_) for @{$self->print->brim}; - $brim_drawn = 1; - } - if ($self->print->step_done(STEP_SKIRT) - && ($self->print->has_infinite_skirt() || $self->print->config->skirt_height > $layer->id) - && !$skirt_drawn) { - $self->color(@TOOL_DARK); - $self->_draw(undef, $print_z, $_) for @{$self->print->skirt}; - $skirt_drawn = 1; - } - - foreach my $layerm (@{$layer->regions}) { - if ($object->step_done(STEP_PERIMETERS)) { - $self->color(@TOOL_STEPPERIM); - $self->_draw($object, $print_z, $_) for map @$_, @{$layerm->perimeters}; - } - - if ($object->step_done(STEP_INFILL)) { - $self->color(@TOOL_INFILL); - $self->_draw($object, $print_z, $_) for map @$_, @{$layerm->fills}; - } - } - - if ($object->step_done(STEP_SUPPORTMATERIAL)) { - if ($layer->isa('Slic3r::Layer::Support')) { - $self->color(@TOOL_SUPPORT); - $self->_draw($object, $print_z, $_) for @{$layer->support_fills}; - $self->_draw($object, $print_z, $_) for @{$layer->support_interface_fills}; - } - } - } - - gluDeleteTess($tess) if $tess; - glFlush(); - $self->SwapBuffers; -} - -sub _draw { - my ($self, $object, $print_z, $path) = @_; - - my @paths = $path->isa('Slic3r::ExtrusionLoop') - ? @$path - : ($path); - - $self->_draw_path($object, $print_z, $_) for @paths; -} - -sub _draw_path { - my ($self, $object, $print_z, $path) = @_; - - return if $print_z - $path->height > $self->z - epsilon; - - if (abs($print_z - $self->z) < epsilon) { - glColor3f($self->color->[0], $self->color->[1], $self->color->[2]); - } else { - glColor3f(0.8, 0.8, 0.8); - } - - glLineWidth(1); - - if (defined $object) { - foreach my $copy (@{ $object->_shifted_copies }) { - glPushMatrix(); - glTranslatef(@$copy, 0); - foreach my $line (@{$path->polyline->lines}) { - glBegin(GL_LINES); - glVertex2f(@{$line->a}); - glVertex2f(@{$line->b}); - glEnd(); - } - glPopMatrix(); - } - } else { - foreach my $line (@{$path->polyline->lines}) { - glBegin(GL_LINES); - glVertex2f(@{$line->a}); - glVertex2f(@{$line->b}); - glEnd(); - } - } -} - -sub InitGL { - my $self = shift; - - return if $self->init; - return unless $self->GetContext; - $self->init(1); -} - -sub GetContext { - my ($self) = @_; - - if (Wx::wxVERSION >= 2.009) { - return $self->{context} ||= Wx::GLContext->new($self); - } else { - return $self->SUPER::GetContext; - } -} - -sub SetCurrent { - my ($self, $context) = @_; - - if (Wx::wxVERSION >= 2.009) { - return $self->SUPER::SetCurrent($context); - } else { - return $self->SUPER::SetCurrent; - } -} - -sub Resize { - my ($self) = @_; - - return unless $self->GetContext; - return unless $self->bb; - $self->_dirty(0); - - $self->SetCurrent($self->GetContext); - my ($x, $y) = $self->GetSizeWH; - glViewport(0, 0, $x, $y); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - - my $bb = $self->bb->clone; - - # center bounding box around origin before scaling it - my $bb_center = $bb->center; - $bb->translate(@{$bb_center->negative}); - - # scale bounding box according to zoom factor - $bb->scale($self->_zoom); - - # reposition bounding box around original center - $bb->translate(@{$bb_center}); - - # translate camera - $bb->translate(@{$self->_camera_target}); - - # keep camera_bb within total bb - # (i.e. prevent user from panning outside the bounding box) - { - my @translate = (0,0); - if ($bb->x_min < $self->bb->x_min) { - $translate[X] += $self->bb->x_min - $bb->x_min; - } - if ($bb->y_min < $self->bb->y_min) { - $translate[Y] += $self->bb->y_min - $bb->y_min; - } - if ($bb->x_max > $self->bb->x_max) { - $translate[X] -= $bb->x_max - $self->bb->x_max; - } - if ($bb->y_max > $self->bb->y_max) { - $translate[Y] -= $bb->y_max - $self->bb->y_max; - } - $self->_camera_target->translate(@translate); - $bb->translate(@translate); - } - - # save camera - $self->_camera_bb($bb); - - my ($x1, $y1, $x2, $y2) = ($bb->x_min, $bb->y_min, $bb->x_max, $bb->y_max); - if (($x2 - $x1)/($y2 - $y1) > $x/$y) { - # adjust Y - my $new_y = $y * ($x2 - $x1) / $x; - $y1 = ($y2 + $y1)/2 - $new_y/2; - $y2 = $y1 + $new_y; - } else { - my $new_x = $x * ($y2 - $y1) / $y; - $x1 = ($x2 + $x1)/2 - $new_x/2; - $x2 = $x1 + $new_x; - } - glOrtho($x1, $x2, $y1, $y2, 0, 1); - - glMatrixMode(GL_MODELVIEW); -} - -sub line { - my ( - $x1, $y1, $x2, $y2, # coordinates of the line - $w, # width/thickness of the line in pixel - $Cr, $Cg, $Cb, # RGB color components - $Br, $Bg, $Bb, # color of background when alphablend=false - # Br=alpha of color when alphablend=true - $alphablend, # use alpha blend or not - ) = @_; - - my $t; - my $R; - my $f = $w - int($w); - my $A; - - if ($alphablend) { - $A = $Br; - } else { - $A = 1; - } - - # determine parameters t,R - if ($w >= 0 && $w < 1) { - $t = 0.05; $R = 0.48 + 0.32 * $f; - if (!$alphablend) { - $Cr += 0.88 * (1-$f); - $Cg += 0.88 * (1-$f); - $Cb += 0.88 * (1-$f); - $Cr = 1.0 if ($Cr > 1.0); - $Cg = 1.0 if ($Cg > 1.0); - $Cb = 1.0 if ($Cb > 1.0); - } else { - $A *= $f; - } - } elsif ($w >= 1.0 && $w < 2.0) { - $t = 0.05 + $f*0.33; $R = 0.768 + 0.312*$f; - } elsif ($w >= 2.0 && $w < 3.0) { - $t = 0.38 + $f*0.58; $R = 1.08; - } elsif ($w >= 3.0 && $w < 4.0) { - $t = 0.96 + $f*0.48; $R = 1.08; - } elsif ($w >= 4.0 && $w < 5.0) { - $t= 1.44 + $f*0.46; $R = 1.08; - } elsif ($w >= 5.0 && $w < 6.0) { - $t= 1.9 + $f*0.6; $R = 1.08; - } elsif ($w >= 6.0) { - my $ff = $w - 6.0; - $t = 2.5 + $ff*0.50; $R = 1.08; - } - #printf( "w=%f, f=%f, C=%.4f\n", $w, $f, $C); - - # determine angle of the line to horizontal - my $tx = 0; my $ty = 0; # core thinkness of a line - my $Rx = 0; my $Ry = 0; # fading edge of a line - my $cx = 0; my $cy = 0; # cap of a line - my $ALW = 0.01; - my $dx = $x2 - $x1; - my $dy = $y2 - $y1; - if (abs($dx) < $ALW) { - # vertical - $tx = $t; $ty = 0; - $Rx = $R; $Ry = 0; - if ($w > 0.0 && $w < 1.0) { - $tx *= 8; - } elsif ($w == 1.0) { - $tx *= 10; - } - } elsif (abs($dy) < $ALW) { - #horizontal - $tx = 0; $ty = $t; - $Rx = 0; $Ry = $R; - if ($w > 0.0 && $w < 1.0) { - $ty *= 8; - } elsif ($w == 1.0) { - $ty *= 10; - } - } else { - if ($w < 3) { # approximate to make things even faster - my $m = $dy/$dx; - # and calculate tx,ty,Rx,Ry - if ($m > -0.4142 && $m <= 0.4142) { - # -22.5 < $angle <= 22.5, approximate to 0 (degree) - $tx = $t * 0.1; $ty = $t; - $Rx = $R * 0.6; $Ry = $R; - } elsif ($m > 0.4142 && $m <= 2.4142) { - # 22.5 < $angle <= 67.5, approximate to 45 (degree) - $tx = $t * -0.7071; $ty = $t * 0.7071; - $Rx = $R * -0.7071; $Ry = $R * 0.7071; - } elsif ($m > 2.4142 || $m <= -2.4142) { - # 67.5 < $angle <= 112.5, approximate to 90 (degree) - $tx = $t; $ty = $t*0.1; - $Rx = $R; $Ry = $R*0.6; - } elsif ($m > -2.4142 && $m < -0.4142) { - # 112.5 < angle < 157.5, approximate to 135 (degree) - $tx = $t * 0.7071; $ty = $t * 0.7071; - $Rx = $R * 0.7071; $Ry = $R * 0.7071; - } else { - # error in determining angle - printf("error in determining angle: m=%.4f\n", $m); - } - } else { # calculate to exact - $dx= $y1 - $y2; - $dy= $x2 - $x1; - my $L = sqrt($dx*$dx + $dy*$dy); - $dx /= $L; - $dy /= $L; - $cx = -0.6*$dy; $cy=0.6*$dx; - $tx = $t*$dx; $ty = $t*$dy; - $Rx = $R*$dx; $Ry = $R*$dy; - } - } - - # draw the line by triangle strip - glBegin(GL_TRIANGLE_STRIP); - if (!$alphablend) { - glColor3f($Br, $Bg, $Bb); - } else { - glColor4f($Cr, $Cg, $Cb, 0); - } - glVertex2f($x1 - $tx - $Rx, $y1 - $ty - $Ry); # fading edge - glVertex2f($x2 - $tx - $Rx, $y2 - $ty - $Ry); - - if (!$alphablend) { - glColor3f($Cr, $Cg, $Cb); - } else { - glColor4f($Cr, $Cg, $Cb, $A); - } - glVertex2f($x1 - $tx, $y1 - $ty); # core - glVertex2f($x2 - $tx, $y2 - $ty); - glVertex2f($x1 + $tx, $y1 + $ty); - glVertex2f($x2 + $tx, $y2 + $ty); - - if ((abs($dx) < $ALW || abs($dy) < $ALW) && $w <= 1.0) { - # printf("skipped one fading edge\n"); - } else { - if (!$alphablend) { - glColor3f($Br, $Bg, $Bb); - } else { - glColor4f($Cr, $Cg, $Cb, 0); - } - glVertex2f($x1 + $tx+ $Rx, $y1 + $ty + $Ry); # fading edge - glVertex2f($x2 + $tx+ $Rx, $y2 + $ty + $Ry); - } - glEnd(); - - # cap - if ($w < 3) { - # do not draw cap - } else { - # draw cap - glBegin(GL_TRIANGLE_STRIP); - if (!$alphablend) { - glColor3f($Br, $Bg, $Bb); - } else { - glColor4f($Cr, $Cg, $Cb, 0); - } - glVertex2f($x1 - $Rx + $cx, $y1 - $Ry + $cy); - glVertex2f($x1 + $Rx + $cx, $y1 + $Ry + $cy); - glColor3f($Cr, $Cg, $Cb); - glVertex2f($x1 - $tx - $Rx, $y1 - $ty - $Ry); - glVertex2f($x1 + $tx + $Rx, $y1 + $ty + $Ry); - glEnd(); - glBegin(GL_TRIANGLE_STRIP); - if (!$alphablend) { - glColor3f($Br, $Bg, $Bb); - } else { - glColor4f($Cr, $Cg, $Cb, 0); - } - glVertex2f($x2 - $Rx - $cx, $y2 - $Ry - $cy); - glVertex2f($x2 + $Rx - $cx, $y2 + $Ry - $cy); - glColor3f($Cr, $Cg, $Cb); - glVertex2f($x2 - $tx - $Rx, $y2 - $ty - $Ry); - glVertex2f($x2 + $tx + $Rx, $y2 + $ty + $Ry); - glEnd(); - } -} - - -package Slic3r::GUI::Plater::2DToolpaths::Dialog; - -use Wx qw(:dialog :id :misc :sizer); -use Wx::Event qw(EVT_CLOSE); -use base 'Wx::Dialog'; - -sub new { - my $class = shift; - my ($parent, $print) = @_; - my $self = $class->SUPER::new($parent, -1, "Toolpaths", wxDefaultPosition, [500,500], wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); - - my $sizer = Wx::BoxSizer->new(wxVERTICAL); - $sizer->Add(Slic3r::GUI::Plater::2DToolpaths->new($self, $print), 1, wxEXPAND, 0); - $self->SetSizer($sizer); - $self->SetMinSize($self->GetSize); - - # needed to actually free memory - EVT_CLOSE($self, sub { - $self->EndModal(wxID_OK); - $self->Destroy; - }); - - return $self; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/3D.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/3D.pm deleted file mode 100644 index 07818a2b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/3D.pm +++ /dev/null @@ -1,105 +0,0 @@ -package Slic3r::GUI::Plater::3D; -use strict; -use warnings; -use utf8; - -use List::Util qw(); -use Slic3r::Geometry qw(); -use Slic3r::Geometry::Clipper qw(); -use Wx qw(:misc :pen :brush :sizer :font :cursor wxTAB_TRAVERSAL); -use Wx::Event qw(); -use base qw(Slic3r::GUI::3DScene Class::Accessor); - -sub new { - my $class = shift; - my ($parent, $objects, $model, $config) = @_; - - my $self = $class->SUPER::new($parent); - $self->enable_picking(1); - $self->enable_moving(1); - $self->select_by('object'); - $self->drag_by('instance'); - - $self->{objects} = $objects; - $self->{model} = $model; - $self->{config} = $config; - $self->{on_select_object} = sub {}; - $self->{on_instances_moved} = sub {}; - - $self->on_select(sub { - my ($volume_idx) = @_; - - my $obj_idx = undef; - if ($volume_idx != -1) { - $obj_idx = $self->object_idx($volume_idx); - } - $self->{on_select_object}->($obj_idx) - if $self->{on_select_object}; - }); - $self->on_move(sub { - my @volume_idxs = @_; - - my %done = (); # prevent moving instances twice - foreach my $volume_idx (@volume_idxs) { - my $volume = $self->volumes->[$volume_idx]; - my $obj_idx = $self->object_idx($volume_idx); - my $instance_idx = $self->instance_idx($volume_idx); - next if $done{"${obj_idx}_${instance_idx}"}; - $done{"${obj_idx}_${instance_idx}"} = 1; - - my $model_object = $self->{model}->get_object($obj_idx); - $model_object - ->instances->[$instance_idx] - ->offset - ->translate($volume->origin->x, $volume->origin->y); #)) - $model_object->invalidate_bounding_box; - } - - $self->{on_instances_moved}->() - if $self->{on_instances_moved}; - }); - - return $self; -} - -sub set_on_select_object { - my ($self, $cb) = @_; - $self->{on_select_object} = $cb; -} - -sub set_on_double_click { - my ($self, $cb) = @_; - $self->on_double_click($cb); -} - -sub set_on_right_click { - my ($self, $cb) = @_; - $self->on_right_click($cb); -} - -sub set_on_instances_moved { - my ($self, $cb) = @_; - $self->{on_instances_moved} = $cb; -} - -sub update { - my ($self) = @_; - - $self->reset_objects; - $self->update_bed_size; - - foreach my $obj_idx (0..$#{$self->{model}->objects}) { - my @volume_idxs = $self->load_object($self->{model}, $obj_idx); - - if ($self->{objects}[$obj_idx]->selected) { - $self->select_volume($_) for @volume_idxs; - } - } -} - -sub update_bed_size { - my ($self) = @_; - $self->set_bed_shape($self->{config}->bed_shape); -} - -1; \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/3DPreview.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/3DPreview.pm deleted file mode 100644 index c4f9e6c5..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/3DPreview.pm +++ /dev/null @@ -1,171 +0,0 @@ -package Slic3r::GUI::Plater::3DPreview; -use strict; -use warnings; -use utf8; - -use Slic3r::Print::State ':steps'; -use Wx qw(:misc :sizer :slider :statictext); -use Wx::Event qw(EVT_SLIDER EVT_KEY_DOWN); -use base qw(Wx::Panel Class::Accessor); - -__PACKAGE__->mk_accessors(qw(print enabled _loaded canvas slider)); - -sub new { - my $class = shift; - my ($parent, $print) = @_; - - my $self = $class->SUPER::new($parent, -1, wxDefaultPosition); - - # init GUI elements - my $canvas = Slic3r::GUI::3DScene->new($self); - $self->canvas($canvas); - my $slider = Wx::Slider->new( - $self, -1, - 0, # default - 0, # min - # we set max to a bogus non-zero value because the MSW implementation of wxSlider - # will skip drawing the slider if max <= min: - 1, # max - wxDefaultPosition, - wxDefaultSize, - wxVERTICAL | wxSL_INVERSE, - ); - $self->slider($slider); - - my $z_label = $self->{z_label} = Wx::StaticText->new($self, -1, "", wxDefaultPosition, - [40,-1], wxALIGN_CENTRE_HORIZONTAL); - $z_label->SetFont($Slic3r::GUI::small_font); - - my $vsizer = Wx::BoxSizer->new(wxVERTICAL); - $vsizer->Add($slider, 1, wxALL | wxEXPAND | wxALIGN_CENTER, 3); - $vsizer->Add($z_label, 0, wxALL | wxEXPAND | wxALIGN_CENTER, 3); - - my $sizer = Wx::BoxSizer->new(wxHORIZONTAL); - $sizer->Add($canvas, 1, wxALL | wxEXPAND, 0); - $sizer->Add($vsizer, 0, wxTOP | wxBOTTOM | wxEXPAND, 5); - - EVT_SLIDER($self, $slider, sub { - $self->set_z($self->{layers_z}[$slider->GetValue]) - if $self->enabled; - }); - EVT_KEY_DOWN($canvas, sub { - my ($s, $event) = @_; - - my $key = $event->GetKeyCode; - if ($key == 85 || $key == 315) { - $slider->SetValue($slider->GetValue + 1); - $self->set_z($self->{layers_z}[$slider->GetValue]); - } elsif ($key == 68 || $key == 317) { - $slider->SetValue($slider->GetValue - 1); - $self->set_z($self->{layers_z}[$slider->GetValue]); - } else { - $event->Skip; - } - }); - - $self->SetSizer($sizer); - $self->SetMinSize($self->GetSize); - $sizer->SetSizeHints($self); - - # init canvas - $self->print($print); - $self->reload_print; - - return $self; -} - -sub reload_print { - my ($self, $obj_idx) = @_; - - $self->canvas->reset_objects; - $self->_loaded(0); - $self->load_print($obj_idx); -} - -sub load_print { - my ($self, $obj_idx) = @_; - - return if $self->_loaded; - - # we require that there's at least one object and the posSlice step - # is performed on all of them (this ensures that _shifted_copies was - # populated and we know the number of layers) - if (!$self->print->object_step_done(STEP_SLICE)) { - $self->enabled(0); - $self->slider->Hide; - $self->canvas->Refresh; # clears canvas - return; - } - - my $z_idx; - { - my %z = (); # z => 1 - if(defined $obj_idx) { # Load only given object - foreach my $layer (@{$self->{print}->get_object($obj_idx)->layers}) { - $z{$layer->print_z} = 1; - } - }else{ # Load all objects on the plater + support material - foreach my $object (@{$self->{print}->objects}) { - foreach my $layer (@{$object->layers}, @{$object->support_layers}) { - $z{$layer->print_z} = 1; - } - } - } - $self->enabled(1); - $self->{layers_z} = [ sort { $a <=> $b } keys %z ]; - $self->slider->SetRange(0, scalar(@{$self->{layers_z}})-1); - if (($z_idx = $self->slider->GetValue) <= $#{$self->{layers_z}} && $self->slider->GetValue != 0) { - # use $z_idx - } else { - $self->slider->SetValue(scalar(@{$self->{layers_z}})-1); - $z_idx = @{$self->{layers_z}} ? -1 : undef; - } - $self->slider->Show; - $self->Layout; - } - - if ($self->IsShown) { - # set colors - $self->canvas->color_toolpaths_by($Slic3r::GUI::Settings->{_}{color_toolpaths_by}); - if ($self->canvas->color_toolpaths_by eq 'extruder') { - my @filament_colors = map { s/^#//; [ map $_/255, (unpack 'C*', pack 'H*', $_), 255 ] } - @{$self->print->config->filament_colour}; - $self->canvas->colors->[$_] = $filament_colors[$_] for 0..$#filament_colors; - } else { - $self->canvas->colors([ $self->canvas->default_colors ]); - } - - if(defined $obj_idx) { # Load only one object - $self->canvas->load_print_object_toolpaths($self->{print}->get_object($obj_idx)); - }else{ # load all objects - # load skirt and brim - $self->canvas->load_print_toolpaths($self->print); - - foreach my $object (@{$self->print->objects}) { - $self->canvas->load_print_object_toolpaths($object); - - #my @volume_ids = $self->canvas->load_object($object->model_object); - #$self->canvas->volumes->[$_]->color->[3] = 0.2 for @volume_ids; - } - } - $self->_loaded(1); - } - - $self->set_z($self->{layers_z}[$z_idx]); -} - -sub set_z { - my ($self, $z) = @_; - - return if !$self->enabled; - $self->{z_label}->SetLabel(sprintf '%.2f', $z); - $self->canvas->set_toolpaths_range(0, $z); - $self->canvas->Refresh if $self->IsShown; -} - -sub set_bed_shape { - my ($self, $bed_shape) = @_; - $self->canvas->set_bed_shape($bed_shape); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/LambdaObjectDialog.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/LambdaObjectDialog.pm deleted file mode 100644 index e812ddaa..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/LambdaObjectDialog.pm +++ /dev/null @@ -1,214 +0,0 @@ -# Generate an anonymous or "lambda" 3D object. This gets used with the Create Modifier option in Settings. -# - -package Slic3r::GUI::Plater::LambdaObjectDialog; -use strict; -use warnings; -use utf8; - -use Slic3r::Geometry qw(PI X); -use Wx qw(wxTheApp :dialog :id :misc :sizer wxTAB_TRAVERSAL wxCB_READONLY wxTE_PROCESS_TAB); -use Wx::Event qw(EVT_CLOSE EVT_BUTTON EVT_COMBOBOX EVT_TEXT); -use Scalar::Util qw(looks_like_number); -use base 'Wx::Dialog'; - -sub new { - my $class = shift; - my ($parent, %params) = @_; - my $self = $class->SUPER::new($parent, -1, "Create Modifier", wxDefaultPosition, [500,500], - wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); - - # Note whether the window was already closed, so a pending update is not executed. - $self->{already_closed} = 0; - $self->{object_parameters} = { - type => 'slab', - dim => [1, 1, 1], - cyl_r => 1, - cyl_h => 1, - sph_rho => 1.0, - slab_h => 1.0, - }; - - $self->{sizer} = Wx::BoxSizer->new(wxVERTICAL); - my $buttons = $self->CreateStdDialogButtonSizer(wxOK | wxCANCEL); - EVT_BUTTON($self, wxID_OK, sub { - $self->EndModal(wxID_OK); - $self->Destroy; - }); - EVT_BUTTON($self, wxID_CANCEL, sub { - $self->EndModal(wxID_CANCEL); - $self->Destroy; - }); - - $self->{type} = Wx::ComboBox->new($self, 1, $self->{object_parameters}{type}, - wxDefaultPosition, wxDefaultSize, - [qw(slab box cylinder sphere)], wxCB_READONLY); - - my $optgroup_box; - $optgroup_box = $self->{optgroup_box} = Slic3r::GUI::OptionsGroup->new( - parent => $self, - title => 'Add Cube...', - on_change => sub { - # Do validation - my ($opt_id) = @_; - if ($opt_id == 0 || $opt_id == 1 || $opt_id == 2) { - if (!looks_like_number($optgroup_box->get_value($opt_id))) { - return 0; - } - } - $self->{object_parameters}->{dim}[$opt_id] = $optgroup_box->get_value($opt_id); - }, - label_width => 100, - ); - - $optgroup_box->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 0, - label => 'L (x)', - type => 'f', - default => $self->{object_parameters}{dim}[0], - sidetext => 'mm', - )); - $optgroup_box->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 1, - label => 'W (y)', - type => 'f', - default => $self->{object_parameters}{dim}[1], - sidetext => 'mm', - )); - $optgroup_box->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 2, - label => 'H (z)', - type => 'f', - default => $self->{object_parameters}{dim}[2], - sidetext => 'mm', - )); - - my $optgroup_cylinder; - $optgroup_cylinder = $self->{optgroup_cylinder} = Slic3r::GUI::OptionsGroup->new( - parent => $self, - title => 'Add Cylinder...', - on_change => sub { - # Do validation - my ($opt_id) = @_; - if ($opt_id eq 'cyl_r' || $opt_id eq 'cyl_h') { - if (!looks_like_number($optgroup_cylinder->get_value($opt_id))) { - return 0; - } - } - $self->{object_parameters}->{$opt_id} = $optgroup_cylinder->get_value($opt_id); - }, - label_width => 100, - ); - - $optgroup_cylinder->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => "cyl_r", - label => 'Radius', - type => 'f', - default => $self->{object_parameters}{cyl_r}, - sidetext => 'mm', - )); - $optgroup_cylinder->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => "cyl_h", - label => 'Height', - type => 'f', - default => $self->{object_parameters}{cyl_h}, - sidetext => 'mm', - )); - - my $optgroup_sphere; - $optgroup_sphere = $self->{optgroup_sphere} = Slic3r::GUI::OptionsGroup->new( - parent => $self, - title => 'Add Sphere...', - on_change => sub { - # Do validation - my ($opt_id) = @_; - if ($opt_id eq 'sph_rho') { - if (!looks_like_number($optgroup_sphere->get_value($opt_id))) { - return 0; - } - } - $self->{object_parameters}->{$opt_id} = $optgroup_sphere->get_value($opt_id); - }, - label_width => 100, - ); - - $optgroup_sphere->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => "sph_rho", - label => 'Radius', - type => 'f', - default => $self->{object_parameters}{sph_rho}, - sidetext => 'mm', - )); - - my $optgroup_slab; - $optgroup_slab = $self->{optgroup_slab} = Slic3r::GUI::OptionsGroup->new( - parent => $self, - title => 'Add Slab...', - on_change => sub { - # Do validation - my ($opt_id) = @_; - if ($opt_id eq 'slab_h') { - if (!looks_like_number($optgroup_slab->get_value($opt_id))) { - return 0; - } - } - $self->{object_parameters}->{$opt_id} = $optgroup_slab->get_value($opt_id); - }, - label_width => 100, - ); - $optgroup_slab->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => "slab_h", - label => 'Thickness', - type => 'f', - default => $self->{object_parameters}{slab_h}, - sidetext => 'mm', - )); - - - EVT_COMBOBOX($self, 1, sub{ - $self->{object_parameters}->{type} = $self->{type}->GetValue(); - $self->_update_ui; - }); - - - $self->{sizer}->Add($self->{type}, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - $self->{sizer}->Add($optgroup_box->sizer, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - $self->{sizer}->Add($optgroup_cylinder->sizer, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - $self->{sizer}->Add($optgroup_sphere->sizer, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - $self->{sizer}->Add($optgroup_slab->sizer, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - $self->{sizer}->Add($buttons,0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - $self->_update_ui; - - $self->SetSizer($self->{sizer}); - $self->{sizer}->Fit($self); - $self->{sizer}->SetSizeHints($self); - - - return $self; -} - -sub ObjectParameter { - my ($self) = @_; - return $self->{object_parameters}; -} - -sub _update_ui { - my ($self) = @_; - $self->{sizer}->Hide($self->{optgroup_cylinder}->sizer); - $self->{sizer}->Hide($self->{optgroup_slab}->sizer); - $self->{sizer}->Hide($self->{optgroup_box}->sizer); - $self->{sizer}->Hide($self->{optgroup_sphere}->sizer); - if ($self->{type}->GetValue eq "box") { - $self->{sizer}->Show($self->{optgroup_box}->sizer); - } elsif ($self->{type}->GetValue eq "cylinder") { - $self->{sizer}->Show($self->{optgroup_cylinder}->sizer); - } elsif ($self->{type}->GetValue eq "slab") { - $self->{sizer}->Show($self->{optgroup_slab}->sizer); - } elsif ($self->{type}->GetValue eq "sphere") { - $self->{sizer}->Show($self->{optgroup_sphere}->sizer); - } - $self->{sizer}->Fit($self); - $self->{sizer}->SetSizeHints($self); - -} -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/ObjectCutDialog.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/ObjectCutDialog.pm deleted file mode 100644 index cf4f3d99..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/ObjectCutDialog.pm +++ /dev/null @@ -1,368 +0,0 @@ -# Cut an object at a Z position, keep either the top or the bottom of the object. -# This dialog gets opened with the "Cut..." button above the platter. - -package Slic3r::GUI::Plater::ObjectCutDialog; -use strict; -use warnings; -use utf8; - -use POSIX qw(ceil); -use Scalar::Util qw(looks_like_number); -use Slic3r::Geometry qw(PI X Y Z); -use Wx qw(wxTheApp :dialog :id :misc :sizer wxTAB_TRAVERSAL); -use Wx::Event qw(EVT_CLOSE EVT_BUTTON); -use base 'Wx::Dialog'; - -sub new { - my $class = shift; - my ($parent, %params) = @_; - my $self = $class->SUPER::new($parent, -1, $params{object}->name, wxDefaultPosition, [500,500], wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); - $self->{model_object_idx} = $params{model_object_idx}; - $self->{model_object} = $params{model_object}; - $self->{new_model_objects} = []; - # Mark whether the mesh cut is valid. - # If not, it needs to be recalculated by _update() on wxTheApp->CallAfter() or on exit of the dialog. - $self->{mesh_cut_valid} = 0; - # Note whether the window was already closed, so a pending update is not executed. - $self->{already_closed} = 0; - - $self->{model_object}->transform_by_instance($self->{model_object}->get_instance(0), 1); - - # cut options - my $size_z = $self->{model_object}->instance_bounding_box(0)->size->z; - $self->{cut_options} = { - axis => Z, - z => $size_z/2, - keep_upper => 0, - keep_lower => 1, - rotate_lower => 0, - preview => 1, - }; - - my $optgroup; - $optgroup = $self->{optgroup} = Slic3r::GUI::OptionsGroup->new( - parent => $self, - title => 'Cut', - on_change => sub { - my ($opt_id) = @_; - # There seems to be an issue with wxWidgets 3.0.2/3.0.3, where the slider - # genates tens of events for a single value change. - # Only trigger the recalculation if the value changes - # or a live preview was activated and the mesh cut is not valid yet. - if ($self->{cut_options}{$opt_id} != $optgroup->get_value($opt_id) || - ! $self->{mesh_cut_valid} && $self->_life_preview_active()) { - $self->{cut_options}{$opt_id} = $optgroup->get_value($opt_id); - $self->{mesh_cut_valid} = 0; - wxTheApp->CallAfter(sub { - $self->_update; - }); - } - }, - label_width => 120, - ); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'axis', - type => 'select', - label => 'Axis', - labels => ['X','Y','Z'], - values => [X,Y,Z], - default => $self->{cut_options}{axis}, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'z', - type => 'slider', - label => 'Z', - default => $self->{cut_options}{z}, - min => 0, - max => $size_z, - full_width => 1, - )); - { - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Keep', - ); - $line->append_option(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'keep_upper', - type => 'bool', - label => 'Upper part', - default => $self->{cut_options}{keep_upper}, - )); - $line->append_option(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'keep_lower', - type => 'bool', - label => 'Lower part', - default => $self->{cut_options}{keep_lower}, - )); - $optgroup->append_line($line); - } - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'rotate_lower', - label => 'Rotate lower part upwards', - type => 'bool', - tooltip => 'If enabled, the lower part will be rotated by 180° so that the flat cut surface lies on the print bed.', - default => $self->{cut_options}{rotate_lower}, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'preview', - label => 'Show preview', - type => 'bool', - tooltip => 'If enabled, object will be cut in real time.', - default => $self->{cut_options}{preview}, - )); - { - my $cut_button_sizer = Wx::BoxSizer->new(wxVERTICAL); - - $self->{btn_cut} = Wx::Button->new($self, -1, "Perform cut", wxDefaultPosition, wxDefaultSize); - $self->{btn_cut}->SetDefault; - $cut_button_sizer->Add($self->{btn_cut}, 0, wxALIGN_RIGHT | wxALL, 10); - - $self->{btn_cut_grid} = Wx::Button->new($self, -1, "Cut by grid…", wxDefaultPosition, wxDefaultSize); - $cut_button_sizer->Add($self->{btn_cut_grid}, 0, wxALIGN_RIGHT | wxALL, 10); - - $optgroup->append_line(Slic3r::GUI::OptionsGroup::Line->new( - sizer => $cut_button_sizer, - )); - } - - # left pane with tree - my $left_sizer = Wx::BoxSizer->new(wxVERTICAL); - $left_sizer->Add($optgroup->sizer, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - - # right pane with preview canvas - my $canvas; - if ($Slic3r::GUI::have_OpenGL) { - $canvas = $self->{canvas} = Slic3r::GUI::3DScene->new($self); - $canvas->load_object($self->{model_object}, undef, [0]); - $canvas->set_auto_bed_shape; - $canvas->SetSize([500,500]); - $canvas->SetMinSize($canvas->GetSize); - $canvas->zoom_to_volumes; - } - - $self->{sizer} = Wx::BoxSizer->new(wxHORIZONTAL); - $self->{sizer}->Add($left_sizer, 0, wxEXPAND | wxTOP | wxBOTTOM, 10); - $self->{sizer}->Add($canvas, 1, wxEXPAND | wxALL, 0) if $canvas; - - $self->SetSizer($self->{sizer}); - $self->SetMinSize($self->GetSize); - $self->{sizer}->SetSizeHints($self); - - EVT_BUTTON($self, $self->{btn_cut}, sub { - # Recalculate the cut if the preview was not active. - $self->_perform_cut() unless $self->{mesh_cut_valid}; - - # Adjust position / orientation of the split object halves. - if (my $lower = $self->{new_model_objects}[0]) { - if ($self->{cut_options}{rotate_lower} && $self->{cut_options}{axis} == Z) { - $lower->rotate(PI, X); - } - $lower->center_around_origin; # align to Z = 0 - } - if (my $upper = $self->{new_model_objects}[1]) { - $upper->center_around_origin; # align to Z = 0 - } - - # Note that the window was already closed, so a pending update will not be executed. - $self->{already_closed} = 1; - $self->EndModal(wxID_OK); - $self->Destroy(); - }); - - EVT_BUTTON($self, $self->{btn_cut_grid}, sub { - my $grid_x = Wx::GetTextFromUser("Enter the width of the desired tiles along the X axis:", - "Cut by Grid", 100, $self); - return if !looks_like_number($grid_x) || $grid_x <= 0; - - my $grid_y = Wx::GetTextFromUser("Enter the width of the desired tiles along the Y axis:", - "Cut by Grid", 100, $self); - return if !looks_like_number($grid_y) || $grid_y <= 0; - - my $process_dialog = Wx::ProgressDialog->new('Cutting…', "Cutting model by grid…", 100, $self, 0); - $process_dialog->Pulse; - - my $meshes = $self->{model_object}->mesh->cut_by_grid(Slic3r::Pointf->new($grid_x, $grid_y)); - $self->{new_model_objects} = []; - - my $bb = $self->{model_object}->bounding_box; - $self->{new_model} = my $model = Slic3r::Model->new; - for my $i (0..$#$meshes) { - push @{$self->{new_model_objects}}, my $o = $model->add_object( - name => sprintf('%s (%d)', $self->{model_object}->name, $i+1), - ); - my $v = $o->add_volume( - mesh => $meshes->[$i], - name => $o->name, - ); - $o->center_around_origin; - my $i = $o->add_instance( - offset => Slic3r::Pointf->new(@{$o->origin_translation->negative}[X,Y]), - ); - $i->offset->translate( - 5 * ceil(($i->offset->x - $bb->center->x) / $grid_x), - 5 * ceil(($i->offset->y - $bb->center->y) / $grid_y), - ); - } - - $process_dialog->Destroy; - - # Note that the window was already closed, so a pending update will not be executed. - $self->{already_closed} = 1; - $self->EndModal(wxID_OK); - $self->Destroy(); - }); - - EVT_CLOSE($self, sub { - # Note that the window was already closed, so a pending update will not be executed. - $self->{already_closed} = 1; - $self->EndModal(wxID_CANCEL); - $self->Destroy(); - }); - - $self->_update; - - return $self; -} - -# scale Z down to original size since we're using the transformed mesh for 3D preview -# and cut dialog but ModelObject::cut() needs Z without any instance transformation -sub _mesh_slice_z_pos -{ - my ($self) = @_; - - my $bb = $self->{model_object}->instance_bounding_box(0); - my $z = $self->{cut_options}{axis} == X ? $bb->x_min - : $self->{cut_options}{axis} == Y ? $bb->y_min - : $bb->z_min; - - $z += $self->{cut_options}{z} / $self->{model_object}->instances->[0]->scaling_factor; - - return $z; -} - -# Only perform live preview if just a single part of the object shall survive. -sub _life_preview_active -{ - my ($self) = @_; - return $self->{cut_options}{preview} && ($self->{cut_options}{keep_upper} != $self->{cut_options}{keep_lower}); -} - -# Slice the mesh, keep the top / bottom part. -sub _perform_cut -{ - my ($self) = @_; - - # Early exit. If the cut is valid, don't recalculate it. - return if $self->{mesh_cut_valid}; - - my $z = $self->_mesh_slice_z_pos(); - - my ($new_model) = $self->{model_object}->cut($self->{cut_options}{axis}, $z); - my ($upper_object, $lower_object) = @{$new_model->objects}; - $self->{new_model} = $new_model; - $self->{new_model_objects} = []; - if ($self->{cut_options}{keep_upper} && $upper_object->volumes_count > 0) { - $self->{new_model_objects}[1] = $upper_object; - } - if ($self->{cut_options}{keep_lower} && $lower_object->volumes_count > 0) { - $self->{new_model_objects}[0] = $lower_object; - } - - $self->{mesh_cut_valid} = 1; -} - -sub _update { - my ($self) = @_; - - # Don't update if the window was already closed. - # We are not sure whether the action planned by wxTheApp->CallAfter() may be triggered after the window is closed. - # Probably not, but better be safe than sorry, which is espetially true on multiple platforms. - return if $self->{already_closed}; - - # Only recalculate the cut, if the live cut preview is active. - my $life_preview_active = $self->_life_preview_active(); - $self->_perform_cut() if $life_preview_active; - - { - # scale Z down to original size since we're using the transformed mesh for 3D preview - # and cut dialog but ModelObject::cut() needs Z without any instance transformation - my $z = $self->_mesh_slice_z_pos(); - - # update canvas - if ($self->{canvas}) { - # get volumes to render - my @objects = (); - if ($life_preview_active) { - push @objects, grep defined, @{$self->{new_model_objects}}; - } else { - push @objects, $self->{model_object}; - } - - # get section contour - my @expolygons = (); - foreach my $volume (@{$self->{model_object}->volumes}) { - next if !$volume->mesh; - next if $volume->modifier; - my $expp = $volume->mesh->slice_at($self->{cut_options}{axis}, $z); - push @expolygons, @$expp; - } - - my $offset = $self->{model_object}->instances->[0]->offset; - foreach my $expolygon (@expolygons) { - $self->{model_object}->instances->[0]->transform_polygon($_) - for @$expolygon; - - if ($self->{cut_options}{axis} != X) { - $expolygon->translate(0, Slic3r::Geometry::scale($offset->y)); #) - } - if ($self->{cut_options}{axis} != Y) { - $expolygon->translate(Slic3r::Geometry::scale($offset->x), 0); - } - } - - $self->{canvas}->reset_objects; - $self->{canvas}->load_object($_, undef, [0]) for @objects; - - my $plane_z = $self->{cut_options}{z}; - $plane_z += 0.02 if !$self->{cut_options}{keep_upper}; - $plane_z -= 0.02 if !$self->{cut_options}{keep_lower}; - $self->{canvas}->SetCuttingPlane( - $self->{cut_options}{axis}, - $plane_z, - [@expolygons], - ); - $self->{canvas}->Render; - } - } - - # update controls - { - my $z = $self->{cut_options}{z}; - my $optgroup = $self->{optgroup}; - { - my $bb = $self->{model_object}->instance_bounding_box(0); - my $max = $self->{cut_options}{axis} == X ? $bb->size->x - : $self->{cut_options}{axis} == Y ? $bb->size->y ### - : $bb->size->z; - $optgroup->get_field('z')->set_range(0, $max); - } - $optgroup->get_field('keep_upper')->toggle(my $have_upper = abs($z - $optgroup->get_option('z')->max) > 0.1); - $optgroup->get_field('keep_lower')->toggle(my $have_lower = $z > 0.1); - $optgroup->get_field('rotate_lower')->toggle($z > 0 && $self->{cut_options}{keep_lower} && $self->{cut_options}{axis} == Z); - $optgroup->get_field('preview')->toggle($self->{cut_options}{keep_upper} != $self->{cut_options}{keep_lower}); - - # update cut button - if (($self->{cut_options}{keep_upper} && $have_upper) - || ($self->{cut_options}{keep_lower} && $have_lower)) { - $self->{btn_cut}->Enable; - } else { - $self->{btn_cut}->Disable; - } - } -} - -sub NewModelObjects { - my ($self) = @_; - return grep defined, @{ $self->{new_model_objects} }; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm deleted file mode 100644 index 35c1af28..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm +++ /dev/null @@ -1,589 +0,0 @@ -# Configuration of mesh modifiers and their parameters. -# This panel is inserted into ObjectSettingsDialog. - -package Slic3r::GUI::Plater::ObjectPartsPanel; -use strict; -use warnings; -use utf8; - -use File::Basename qw(basename); -use Wx qw(:misc :sizer :treectrl :button wxTAB_TRAVERSAL wxSUNKEN_BORDER wxBITMAP_TYPE_PNG wxID_CANCEL - wxTheApp); -use List::Util qw(max); -use Wx::Event qw(EVT_BUTTON EVT_TREE_ITEM_COLLAPSING EVT_TREE_SEL_CHANGED EVT_TREE_ITEM_RIGHT_CLICK); -use Slic3r::Geometry qw(X Y Z MIN MAX scale unscale deg2rad rad2deg); -use base 'Wx::Panel'; - -use constant ICON_OBJECT => 0; -use constant ICON_SOLIDMESH => 1; -use constant ICON_MODIFIERMESH => 2; - -sub new { - my $class = shift; - my ($parent, %params) = @_; - my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); - - my $object = $self->{model_object} = $params{model_object}; - - # create TreeCtrl - my $tree = $self->{tree} = Wx::TreeCtrl->new($self, -1, wxDefaultPosition, [300, 100], - wxTR_NO_BUTTONS | wxSUNKEN_BORDER | wxTR_HAS_VARIABLE_ROW_HEIGHT - | wxTR_SINGLE | wxTR_NO_BUTTONS); - { - $self->{tree_icons} = Wx::ImageList->new(16, 16, 1); - $tree->AssignImageList($self->{tree_icons}); - $self->{tree_icons}->Add(Wx::Bitmap->new($Slic3r::var->("brick.png"), wxBITMAP_TYPE_PNG)); # ICON_OBJECT - $self->{tree_icons}->Add(Wx::Bitmap->new($Slic3r::var->("package.png"), wxBITMAP_TYPE_PNG)); # ICON_SOLIDMESH - $self->{tree_icons}->Add(Wx::Bitmap->new($Slic3r::var->("plugin.png"), wxBITMAP_TYPE_PNG)); # ICON_MODIFIERMESH - - my $rootId = $tree->AddRoot("Object", ICON_OBJECT); - $tree->SetPlData($rootId, { type => 'object' }); - } - - # buttons - $self->{btn_load_part} = Wx::Button->new($self, -1, "Load part…", wxDefaultPosition, wxDefaultSize, wxBU_LEFT); - $self->{btn_load_modifier} = Wx::Button->new($self, -1, "Load modifier…", wxDefaultPosition, wxDefaultSize, wxBU_LEFT); - $self->{btn_load_lambda_modifier} = Wx::Button->new($self, -1, "Create modifier…", wxDefaultPosition, wxDefaultSize, wxBU_LEFT); - $self->{btn_delete} = Wx::Button->new($self, -1, "Delete part", wxDefaultPosition, wxDefaultSize, wxBU_LEFT); - if ($Slic3r::GUI::have_button_icons) { - $self->{btn_load_part}->SetBitmap(Wx::Bitmap->new($Slic3r::var->("brick_add.png"), wxBITMAP_TYPE_PNG)); - $self->{btn_load_modifier}->SetBitmap(Wx::Bitmap->new($Slic3r::var->("brick_add.png"), wxBITMAP_TYPE_PNG)); - $self->{btn_load_lambda_modifier}->SetBitmap(Wx::Bitmap->new($Slic3r::var->("brick_add.png"), wxBITMAP_TYPE_PNG)); - $self->{btn_delete}->SetBitmap(Wx::Bitmap->new($Slic3r::var->("brick_delete.png"), wxBITMAP_TYPE_PNG)); - } - - # buttons sizer - my $buttons_sizer = Wx::BoxSizer->new(wxHORIZONTAL); - $buttons_sizer->Add($self->{btn_load_part}, 0); - $buttons_sizer->Add($self->{btn_load_modifier}, 0); - $buttons_sizer->Add($self->{btn_load_lambda_modifier}, 0); - $buttons_sizer->Add($self->{btn_delete}, 0); - $self->{btn_load_part}->SetFont($Slic3r::GUI::small_font); - $self->{btn_load_modifier}->SetFont($Slic3r::GUI::small_font); - $self->{btn_load_lambda_modifier}->SetFont($Slic3r::GUI::small_font); - $self->{btn_delete}->SetFont($Slic3r::GUI::small_font); - - # part settings panel - $self->{settings_panel} = Slic3r::GUI::Plater::OverrideSettingsPanel->new($self, on_change => sub { $self->{part_settings_changed} = 1; }); - my $settings_sizer = Wx::StaticBoxSizer->new($self->{staticbox} = Wx::StaticBox->new($self, -1, "Part Settings"), wxVERTICAL); - $settings_sizer->Add($self->{settings_panel}, 1, wxEXPAND | wxALL, 0); - - my $optgroup_movers; - # initialize the movement target before it's used. - # on Windows this causes a segfault due to calling distance_to() - # on the object. - $self->{move_target} = Slic3r::Pointf3->new; - $optgroup_movers = $self->{optgroup_movers} = Slic3r::GUI::OptionsGroup->new( - parent => $self, - title => 'Move', - on_change => sub { - my ($opt_id) = @_; - # There seems to be an issue with wxWidgets 3.0.2/3.0.3, where the slider - # genates tens of events for a single value change. - # Only trigger the recalculation if the value changes - # or a live preview was activated and the mesh cut is not valid yet. - my $new = Slic3r::Pointf3->new(map $optgroup_movers->get_value($_), qw(x y z)); - if ($self->{move_target}->distance_to($new) > 0) { - $self->{move_target} = $new; - wxTheApp->CallAfter(sub { - $self->_update; - }); - } - }, - label_width => 20, - ); - $optgroup_movers->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'x', - type => 'slider', - label => 'X', - default => 0, - full_width => 1, - )); - $optgroup_movers->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'y', - type => 'slider', - label => 'Y', - default => 0, - full_width => 1, - )); - $optgroup_movers->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'z', - type => 'slider', - label => 'Z', - default => 0, - full_width => 1, - )); - - # left pane with tree - my $left_sizer = $self->{left_sizer} = Wx::BoxSizer->new(wxVERTICAL); - $left_sizer->Add($tree, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, 10); - $left_sizer->Add($buttons_sizer, 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, 10); - $left_sizer->Add($settings_sizer, 1, wxEXPAND | wxALL, 0); - $left_sizer->Add($optgroup_movers->sizer, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - - # right pane with preview canvas - my $canvas; - if ($Slic3r::GUI::have_OpenGL) { - $canvas = $self->{canvas} = Slic3r::GUI::3DScene->new($self); - $canvas->enable_picking(1); - $canvas->select_by('volume'); - - $canvas->on_select(sub { - my ($volume_idx) = @_; - - # convert scene volume to model object volume - $self->reload_tree($canvas->volume_idx($volume_idx)); - }); - - $canvas->load_object($self->{model_object}, undef, [0]); - $canvas->set_auto_bed_shape; - $canvas->SetSize([500,700]); - $canvas->zoom_to_volumes; - } - - $self->{sizer} = Wx::BoxSizer->new(wxHORIZONTAL); - $self->{sizer}->Add($left_sizer, 0, wxEXPAND | wxALL, 0); - $self->{sizer}->Add($canvas, 1, wxEXPAND | wxALL, 0) if $canvas; - - $self->SetSizer($self->{sizer}); - $self->{sizer}->SetSizeHints($self); - - # attach events - EVT_TREE_ITEM_COLLAPSING($self, $tree, sub { - my ($self, $event) = @_; - $event->Veto; - }); - EVT_TREE_SEL_CHANGED($self, $tree, sub { - my ($self, $event) = @_; - return if $self->{disable_tree_sel_changed_event}; - $self->selection_changed; - }); - EVT_TREE_ITEM_RIGHT_CLICK($self, $tree, sub { - my ($self, $event) = @_; - my $item = $event->GetItem; - my $frame = $self->GetFrame; - my $menu = Wx::Menu->new; - - { - my $scaleMenu = Wx::Menu->new; - wxTheApp->append_menu_item($scaleMenu, "Uniformly… ", 'Scale the selected object along the XYZ axes', - sub { $self->changescale(undef, 0) }); - wxTheApp->append_menu_item($scaleMenu, "Along X axis…", 'Scale the selected object along the X axis', - sub { $self->changescale(X, 0) }, undef, 'bullet_red.png'); - wxTheApp->append_menu_item($scaleMenu, "Along Y axis…", 'Scale the selected object along the Y axis', - sub { $self->changescale(Y, 0) }, undef, 'bullet_green.png'); - wxTheApp->append_menu_item($scaleMenu, "Along Z axis…", 'Scale the selected object along the Z axis', - sub { $self->changescale(Z, 0) }, undef, 'bullet_blue.png'); - wxTheApp->append_submenu($menu, "Scale", 'Scale the selected object by a given factor', - $scaleMenu, undef, 'arrow_out.png'); - } - { - my $scaleToSizeMenu = Wx::Menu->new; - wxTheApp->append_menu_item($scaleToSizeMenu, "Uniformly… ", 'Scale the selected object along the XYZ axes', - sub { $self->changescale(undef, 1) }); - wxTheApp->append_menu_item($scaleToSizeMenu, "Along X axis…", 'Scale the selected object along the X axis', - sub { $self->changescale(X, 1) }, undef, 'bullet_red.png'); - wxTheApp->append_menu_item($scaleToSizeMenu, "Along Y axis…", 'Scale the selected object along the Y axis', - sub { $self->changescale(Y, 1) }, undef, 'bullet_green.png'); - wxTheApp->append_menu_item($scaleToSizeMenu, "Along Z axis…", 'Scale the selected object along the Z axis', - sub { $self->changescale(Z, 1) }, undef, 'bullet_blue.png'); - wxTheApp->append_submenu($menu, "Scale to size", 'Scale the selected object to match a given size', - $scaleToSizeMenu, undef, 'arrow_out.png'); - } - { - my $rotateMenu = Wx::Menu->new; - wxTheApp->append_menu_item($rotateMenu, "Around X axis…", 'Rotate the selected object by an arbitrary angle around X axis', - sub { $self->rotate(undef, X) }, undef, 'bullet_red.png'); - wxTheApp->append_menu_item($rotateMenu, "Around Y axis…", 'Rotate the selected object by an arbitrary angle around Y axis', - sub { $self->rotate(undef, Y) }, undef, 'bullet_green.png'); - wxTheApp->append_menu_item($rotateMenu, "Around Z axis…", 'Rotate the selected object by an arbitrary angle around Z axis', - sub { $self->rotate(undef, Z) }, undef, 'bullet_blue.png'); - wxTheApp->append_submenu($menu, "Rotate", 'Rotate the selected object by an arbitrary angle', - $rotateMenu, undef, 'arrow_rotate_anticlockwise.png'); - } - $frame->PopupMenu($menu, $event->GetPoint); - }); - EVT_BUTTON($self, $self->{btn_load_part}, sub { $self->on_btn_load(0) }); - EVT_BUTTON($self, $self->{btn_load_modifier}, sub { $self->on_btn_load(1) }); - EVT_BUTTON($self, $self->{btn_load_lambda_modifier}, sub { $self->on_btn_lambda(1) }); - EVT_BUTTON($self, $self->{btn_delete}, \&on_btn_delete); - - $self->reload_tree; - - return $self; -} - -sub reload_tree { - my ($self, $selected_volume_idx) = @_; - - $selected_volume_idx //= -1; - my $object = $self->{model_object}; - my $tree = $self->{tree}; - my $rootId = $tree->GetRootItem; - - # despite wxWidgets states that DeleteChildren "will not generate any events unlike Delete() method", - # the MSW implementation of DeleteChildren actually calls Delete() for each item, so - # EVT_TREE_SEL_CHANGED is being called, with bad effects (the event handler is called; this - # subroutine is never continued; an invisible EndModal is called on the dialog causing Plater - # to continue its logic and rescheduling the background process etc. GH #2774) - $self->{disable_tree_sel_changed_event} = 1; - $tree->DeleteChildren($rootId); - $self->{disable_tree_sel_changed_event} = 0; - - my $selectedId = $rootId; - foreach my $volume_id (0..$#{$object->volumes}) { - my $volume = $object->volumes->[$volume_id]; - - my $icon = $volume->modifier ? ICON_MODIFIERMESH : ICON_SOLIDMESH; - my $itemId = $tree->AppendItem($rootId, $volume->name || $volume_id, $icon); - if ($volume_id == $selected_volume_idx) { - $selectedId = $itemId; - } - $tree->SetPlData($itemId, { - type => 'volume', - volume_id => $volume_id, - }); - } - $tree->ExpandAll; - - Slic3r::GUI->CallAfter(sub { - $self->{tree}->SelectItem($selectedId); - - # SelectItem() should trigger EVT_TREE_SEL_CHANGED as per wxWidgets docs, - # but in fact it doesn't if the given item is already selected (this happens - # on first load) - $self->selection_changed; - }); -} - -sub get_selection { - my ($self) = @_; - - my $nodeId = $self->{tree}->GetSelection; - if ($nodeId->IsOk) { - return $self->{tree}->GetPlData($nodeId); - } - return undef; -} - -sub selection_changed { - my ($self) = @_; - - # deselect all meshes - if ($self->{canvas}) { - $_->selected(0) for @{$self->{canvas}->volumes}; - } - - # disable things as if nothing is selected - $self->{btn_delete}->Disable; - $self->{settings_panel}->disable; - $self->{settings_panel}->set_config(undef); - - # reset move sliders - $self->{optgroup_movers}->set_value("x", 0); - $self->{optgroup_movers}->set_value("y", 0); - $self->{optgroup_movers}->set_value("z", 0); - $self->{move_target} = Slic3r::Pointf3->new; - - if (my $itemData = $self->get_selection) { - my ($config, @opt_keys); - if ($itemData->{type} eq 'volume') { - # select volume in 3D preview - if ($self->{canvas}) { - $self->{canvas}->volumes->[ $itemData->{volume_id} ]{selected} = 1; - } - $self->{btn_delete}->Enable; - - # attach volume config to settings panel - my $volume = $self->{model_object}->volumes->[ $itemData->{volume_id} ]; - - my $movers = $self->{optgroup_movers}; - - my $obj_bb = $self->{model_object}->raw_bounding_box; - my $vol_bb = $volume->mesh->bounding_box; - my $vol_size = $vol_bb->size; - $movers->get_field('x')->set_range($obj_bb->x_min - $vol_size->x, $obj_bb->x_max); - $movers->get_field('y')->set_range($obj_bb->y_min - $vol_size->y, $obj_bb->y_max); #,, - $movers->get_field('z')->set_range($obj_bb->z_min - $vol_size->z, $obj_bb->z_max); - $movers->get_field('x')->set_value($vol_bb->x_min); - $movers->get_field('y')->set_value($vol_bb->y_min); - $movers->get_field('z')->set_value($vol_bb->z_min); - - $self->{left_sizer}->Show($movers->sizer); - - $config = $volume->config; - $self->{staticbox}->SetLabel('Part Settings'); - - # get default values - @opt_keys = @{Slic3r::Config::PrintRegion->new->get_keys}; - } elsif ($itemData->{type} eq 'object') { - # select nothing in 3D preview - - # attach object config to settings panel - $self->{left_sizer}->Hide($self->{optgroup_movers}->sizer); - $self->{staticbox}->SetLabel('Object Settings'); - @opt_keys = (map @{$_->get_keys}, Slic3r::Config::PrintObject->new, Slic3r::Config::PrintRegion->new); - $config = $self->{model_object}->config; - } - # get default values - my $default_config = Slic3r::Config->new_from_defaults(@opt_keys); - - # append default extruder - push @opt_keys, 'extruder'; - $default_config->set('extruder', 0); - $config->set_ifndef('extruder', 0); - $self->{settings_panel}->set_default_config($default_config); - $self->{settings_panel}->set_config($config); - $self->{settings_panel}->set_opt_keys(\@opt_keys); - $self->{settings_panel}->set_fixed_options([qw(extruder)]); - $self->{settings_panel}->enable; - } - - $self->{canvas}->Render if $self->{canvas}; -} - -sub on_btn_load { - my ($self, $is_modifier) = @_; - - my @input_files = wxTheApp->open_model($self); - foreach my $input_file (@input_files) { - my $model = eval { Slic3r::Model->read_from_file($input_file) }; - if ($@) { - Slic3r::GUI::show_error($self, $@); - next; - } - - for my $obj_idx (0..($model->objects_count-1)) { - my $object = $model->objects->[$obj_idx]; - for my $vol_idx (0..($object->volumes_count-1)) { - my $new_volume = $self->{model_object}->add_volume($object->get_volume($vol_idx)); - $new_volume->set_modifier($is_modifier); - $new_volume->set_name(basename($input_file)); - - # input_file needed to reload / update modifiers' volumes - $new_volume->set_input_file($input_file); - $new_volume->set_input_file_obj_idx($obj_idx); - $new_volume->set_input_file_vol_idx($vol_idx); - - # apply the same translation we applied to the object - $new_volume->mesh->translate(@{$self->{model_object}->origin_translation}); - - # set a default extruder value, since user can't add it manually - $new_volume->config->set_ifndef('extruder', 0); - - $self->{parts_changed} = 1; - } - } - } - - $self->_parts_changed; -} - -sub on_btn_lambda { - my ($self, $is_modifier) = @_; - - my $dlg = Slic3r::GUI::Plater::LambdaObjectDialog->new($self); - if ($dlg->ShowModal() == wxID_CANCEL) { - return; - } - my $params = $dlg->ObjectParameter; - my $type = "".$params->{"type"}; - my $name = "lambda-".$params->{"type"}; - my $mesh; - - if ($type eq "box") { - $mesh = Slic3r::TriangleMesh::make_cube(@{$params->{"dim"}}); - } elsif ($type eq "cylinder") { - $mesh = Slic3r::TriangleMesh::make_cylinder($params->{"cyl_r"}, $params->{"cyl_h"}); - } elsif ($type eq "sphere") { - $mesh = Slic3r::TriangleMesh::make_sphere($params->{"sph_rho"}); - } elsif ($type eq "slab") { - my $size = $self->{model_object}->bounding_box->size; - $mesh = Slic3r::TriangleMesh::make_cube( - $size->x*1.5, - $size->y*1.5, #** - $params->{"slab_h"}, - ); - # box sets the base coordinate at 0,0, move to center of plate - $mesh->translate( - -$size->x*1.5/2.0, - -$size->y*1.5/2.0, #** - 0, - ); - } else { - return; - } - - my $center = $self->{model_object}->bounding_box->center; - if (!$Slic3r::GUI::Settings->{_}{autocenter}) { - #TODO what we really want to do here is just align the - # center of the modifier to the center of the part. - $mesh->translate($center->x, $center->y, 0); - } - - $mesh->repair; - my $new_volume = $self->{model_object}->add_volume(mesh => $mesh); - $new_volume->set_modifier($is_modifier); - $new_volume->set_name($name); - - # set a default extruder value, since user can't add it manually - $new_volume->config->set_ifndef('extruder', 0); - - $self->_parts_changed($self->{model_object}->volumes_count-1); -} - -sub on_btn_delete { - my ($self) = @_; - - my $itemData = $self->get_selection; - if ($itemData && $itemData->{type} eq 'volume') { - my $volume = $self->{model_object}->volumes->[$itemData->{volume_id}]; - - # if user is deleting the last solid part, throw error - if (!$volume->modifier && scalar(grep !$_->modifier, @{$self->{model_object}->volumes}) == 1) { - Slic3r::GUI::show_error($self, "You can't delete the last solid part from this object."); - return; - } - - $self->{model_object}->delete_volume($itemData->{volume_id}); - $self->{parts_changed} = 1; - } - - $self->_parts_changed; -} - -sub _parts_changed { - my ($self, $selected_volume_idx) = @_; - - $self->{parts_changed} = 1; - $self->reload_tree($selected_volume_idx); - if ($self->{canvas}) { - $self->{canvas}->reset_objects; - $self->{canvas}->load_object($self->{model_object}); - $self->{canvas}->zoom_to_volumes; - $self->{canvas}->Render; - } -} - -sub CanClose { - my $self = shift; - - return 1; # skip validation for now - - # validate options before allowing user to dismiss the dialog - # the validate method only works on full configs so we have - # to merge our settings with the default ones - my $config = Slic3r::Config->merge($self->GetParent->GetParent->GetParent->GetParent->GetParent->config, $self->model_object->config); - eval { - $config->validate; - }; - return 0 if Slic3r::GUI::catch_error($self); - return 1; -} - -sub PartsChanged { - my ($self) = @_; - return $self->{parts_changed}; -} - -sub PartSettingsChanged { - my ($self) = @_; - return $self->{part_settings_changed}; -} - -sub _update { - my ($self) = @_; - - my $itemData = $self->get_selection; - if ($itemData && $itemData->{type} eq 'volume') { - my $volume = $self->{model_object}->volumes->[$itemData->{volume_id}]; - $volume->mesh->translate(@{ $volume->mesh->bounding_box->min_point->vector_to($self->{move_target}) }); - } - - $self->{parts_changed} = 1; - my @objects = (); - push @objects, $self->{model_object}; - $self->{canvas}->reset_objects; - $self->{canvas}->load_object($_, undef, [0]) for @objects; - $self->{canvas}->Render; -} - -sub changescale { - my ($self, $axis, $tosize) = @_; - my $itemData = $self->get_selection; - if ($itemData && $itemData->{type} eq 'volume') { - my $volume = $self->{model_object}->volumes->[$itemData->{volume_id}]; - my $object_size = $volume->bounding_box->size; - if (defined $axis) { - my $axis_name = $axis == X ? 'X' : $axis == Y ? 'Y' : 'Z'; - my $scale; - if (defined $tosize) { - my $cursize = $object_size->[$axis]; - # Wx::GetNumberFromUser() does not support decimal numbers - my $newsize = Wx::GetTextFromUser( - sprintf("Enter the new size for the selected mesh:"), - "Scale along $axis_name", - $cursize, $self); - return if !$newsize || $newsize !~ /^\d*(?:\.\d*)?$/ || $newsize < 0; - $scale = $newsize / $cursize * 100; - } else { - # Wx::GetNumberFromUser() does not support decimal numbers - $scale = Wx::GetTextFromUser("Enter the scale % for the selected object:", - "Scale along $axis_name", 100, $self); - $scale =~ s/%$//; - return if !$scale || $scale !~ /^\d*(?:\.\d*)?$/ || $scale < 0; - } - my $versor = [1,1,1]; - $versor->[$axis] = $scale/100; - $volume->mesh->scale_xyz(Slic3r::Pointf3->new(@$versor)); - } else { - my $scale; - if ($tosize) { - my $cursize = max(@$object_size); - # Wx::GetNumberFromUser() does not support decimal numbers - my $newsize = Wx::GetTextFromUser("Enter the new max size for the selected object:", - "Scale", $cursize, $self); - return if !$newsize || $newsize !~ /^\d*(?:\.\d*)?$/ || $newsize < 0; - $scale = $newsize / $cursize; - } else { - # max scale factor should be above 2540 to allow importing files exported in inches - # Wx::GetNumberFromUser() does not support decimal numbers - $scale = Wx::GetTextFromUser("Enter the scale % for the selected object:", 'Scale', - 100, $self); - return if !$scale || $scale !~ /^\d*(?:\.\d*)?$/ || $scale < 0; - } - return if !$scale || $scale < 0; - $volume->mesh->scale($scale); - } - $self->_parts_changed; - } -} - -sub rotate { - my $self = shift; - my ($angle, $axis) = @_; - # angle is in degrees - my $itemData = $self->get_selection; - if ($itemData && $itemData->{type} eq 'volume') { - my $volume = $self->{model_object}->volumes->[$itemData->{volume_id}]; - if (!defined $angle) { - my $axis_name = $axis == X ? 'X' : $axis == Y ? 'Y' : 'Z'; - my $default = $axis == Z ? 0 : 0; - # Wx::GetNumberFromUser() does not support decimal numbers - $angle = Wx::GetTextFromUser("Enter the rotation angle:", "Rotate around $axis_name axis", - $default, $self); - return if !$angle || $angle !~ /^-?\d*(?:\.\d*)?$/ || $angle == -1; - } - if ($axis == X) { $volume->mesh->rotate_x(deg2rad($angle)); } - - if ($axis == Y) { $volume->mesh->rotate_y(deg2rad($angle)); } - if ($axis == Z) { $volume->mesh->rotate_z(deg2rad($angle)); } - - $self->_parts_changed; - } -} -sub GetFrame { - my ($self) = @_; - return &Wx::GetTopLevelParent($self); -} -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/ObjectSettingsDialog.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/ObjectSettingsDialog.pm deleted file mode 100644 index 638a02c9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/ObjectSettingsDialog.pm +++ /dev/null @@ -1,358 +0,0 @@ -# This dialog opens up when double clicked on an object line in the list at the right side of the platter. -# One may load additional STLs and additional modifier STLs, -# one may change the properties of the print per each modifier mesh or a Z-span. - -package Slic3r::GUI::Plater::ObjectSettingsDialog; -use strict; -use warnings; -use utf8; - -use Wx qw(:dialog :id :misc :sizer :systemsettings :notebook wxTAB_TRAVERSAL wxTheApp); -use Wx::Event qw(EVT_BUTTON EVT_MENU); -use base 'Wx::Dialog'; - -sub new { - my $class = shift; - my ($parent, %params) = @_; - my $self = $class->SUPER::new($parent, -1, "Settings for " . $params{object}->name, wxDefaultPosition, [1000,700], wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER); - $self->{$_} = $params{$_} for keys %params; - - $self->{tabpanel} = Wx::Notebook->new($self, -1, wxDefaultPosition, wxDefaultSize, wxNB_TOP | wxTAB_TRAVERSAL); - $self->{tabpanel}->AddPage($self->{parts} = Slic3r::GUI::Plater::ObjectPartsPanel->new($self->{tabpanel}, model_object => $params{model_object}), "Parts"); - $self->{tabpanel}->AddPage($self->{adaptive_layers} = Slic3r::GUI::Plater::ObjectDialog::AdaptiveLayersTab->new( $self->{tabpanel}, - plater => $parent, - model_object => $params{model_object}, - obj_idx => $params{obj_idx} - ), "Adaptive Layers"); - $self->{tabpanel}->AddPage($self->{layers} = Slic3r::GUI::Plater::ObjectDialog::LayersTab->new($self->{tabpanel}), "Layer height table"); - - my $buttons = $self->CreateStdDialogButtonSizer(wxOK); - EVT_BUTTON($self, wxID_OK, sub { - # validate user input - return if !$self->{parts}->CanClose; - return if !$self->{layers}->CanClose; - - # notify tabs - $self->{layers}->Closing; - - # save window size - wxTheApp->save_window_pos($self, "object_settings"); - - $self->EndModal(wxID_OK); - $self->Destroy; - }); - - my $sizer = Wx::BoxSizer->new(wxVERTICAL); - $sizer->Add($self->{tabpanel}, 1, wxEXPAND | wxTOP | wxLEFT | wxRIGHT, 10); - $sizer->Add($buttons, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - - $self->SetSizer($sizer); - $self->SetMinSize($self->GetSize); - - wxTheApp->restore_window_pos($self, "object_settings"); - - return $self; -} - -sub PartsChanged { - my ($self) = @_; - return $self->{parts}->PartsChanged; -} - -sub PartSettingsChanged { - my ($self) = @_; - return $self->{parts}->PartSettingsChanged || $self->{layers}->LayersChanged; -} - - -package Slic3r::GUI::Plater::ObjectDialog::BaseTab; -use base 'Wx::Panel'; - -sub model_object { - my ($self) = @_; - return $self->GetParent->GetParent->{model_object}; -} - -package Slic3r::GUI::Plater::ObjectDialog::AdaptiveLayersTab; -use Slic3r::Geometry qw(X Y Z scale unscale); -use Slic3r::Print::State ':steps'; -use List::Util qw(min max sum first); -use Wx qw(wxTheApp :dialog :id :misc :sizer :systemsettings :statictext wxTAB_TRAVERSAL); -use base 'Slic3r::GUI::Plater::ObjectDialog::BaseTab'; - -sub new { - my $class = shift; - my ($parent, %params) = @_; - my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize); - my $model_object = $self->{model_object} = $params{model_object}; - my $obj_idx = $self->{obj_idx} = $params{obj_idx}; - my $plater = $self->{plater} = $params{plater}; - my $object = $self->{object} = $self->{plater}->{print}->get_object($self->{obj_idx}); - - # store last raft height to correctly draw z-indicator plane during a running background job where the printObject is not valid - $self->{last_raft_height} = 0; - - # Initialize 3D toolpaths preview - if ($Slic3r::GUI::have_OpenGL) { - $self->{preview3D} = Slic3r::GUI::Plater::3DPreview->new($self, $plater->{print}); - $self->{preview3D}->canvas->set_auto_bed_shape; - $self->{preview3D}->canvas->SetSize([500,500]); - $self->{preview3D}->canvas->SetMinSize($self->{preview3D}->canvas->GetSize); - # object already processed? - wxTheApp->CallAfter(sub { - if (!$plater->{processed}) { - $self->_trigger_slicing(0); # trigger processing without invalidating STEP_SLICE to keep current height distribution - }else{ - $self->{preview3D}->reload_print($obj_idx); - $self->{preview3D}->canvas->zoom_to_volumes; - $self->{preview_zoomed} = 1; - } - }); - } - - $self->{splineControl} = Slic3r::GUI::Plater::SplineControl->new($self, Wx::Size->new(150, 200), $object); - - my $optgroup; - $optgroup = $self->{optgroup} = Slic3r::GUI::OptionsGroup->new( - parent => $self, - title => 'Adaptive quality %', - on_change => sub { - my ($opt_id) = @_; - # There seems to be an issue with wxWidgets 3.0.2/3.0.3, where the slider - # genates tens of events for a single value change. - # Only trigger the recalculation if the value changes - # or a live preview was activated and the mesh cut is not valid yet. - if ($self->{adaptive_quality} != $optgroup->get_value($opt_id)) { - $self->{adaptive_quality} = $optgroup->get_value($opt_id); - $self->{model_object}->config->set('adaptive_slicing_quality', $optgroup->get_value($opt_id)); - $self->{object}->config->set('adaptive_slicing_quality', $optgroup->get_value($opt_id)); - $self->{object}->invalidate_step(STEP_LAYERS); - # trigger re-slicing - $self->_trigger_slicing; - } - }, - label_width => 0, - ); - - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'adaptive_slicing_quality', - type => 'slider', - label => '', - default => $object->config->get('adaptive_slicing_quality'), - min => 0, - max => 100, - full_width => 1, - )); - $optgroup->get_field('adaptive_slicing_quality')->set_scale(1); - $self->{adaptive_quality} = $object->config->get('adaptive_slicing_quality'); - # init quality slider - if(!$object->config->get('adaptive_slicing')) { - # disable slider - $optgroup->get_field('adaptive_slicing_quality')->disable; - } - - my $right_sizer = Wx::BoxSizer->new(wxVERTICAL); - $right_sizer->Add($self->{splineControl}, 1, wxEXPAND | wxALL, 0); - $right_sizer->Add($optgroup->sizer, 0, wxEXPAND | wxALL, 0); - - - $self->{sizer} = Wx::BoxSizer->new(wxHORIZONTAL); - $self->{sizer}->Add($self->{preview3D}, 3, wxEXPAND | wxTOP | wxBOTTOM, 0) if $self->{preview3D}; - $self->{sizer}->Add($right_sizer, 1, wxEXPAND | wxTOP | wxBOTTOM, 10); - - $self->SetSizerAndFit($self->{sizer}); - - # init spline control values - # determine min and max layer height from perimeter extruder capabilities. - my %extruders; - for my $region_id (0 .. ($object->region_count - 1)) { - foreach (qw(perimeter_extruder infill_extruder solid_infill_extruder)) { - my $extruder_id = $self->{plater}->{print}->get_region($region_id)->config->get($_)-1; - $extruders{$extruder_id} = $extruder_id; - } - } - my $min_height = max(map {$self->{plater}->{print}->config->get_at('min_layer_height', $_)} (values %extruders)); - my $max_height = min(map {$self->{plater}->{print}->config->get_at('max_layer_height', $_)} (values %extruders)); - - $self->{splineControl}->set_size_parameters($min_height, $max_height, unscale($object->size->z)); - - $self->{splineControl}->on_layer_update(sub { - # trigger re-slicing - $self->_trigger_slicing; - }); - - $self->{splineControl}->on_z_indicator(sub { - my ($z) = @_; - - if($z) { # compensate raft height - $z += $self->{last_raft_height}; - } - $self->{preview3D}->canvas->SetCuttingPlane(Z, $z, []); - $self->{preview3D}->canvas->Render; - }); - - return $self; -} - -# This is called by the plater after processing to update the preview and spline -sub reload_preview { - my ($self) = @_; - $self->{splineControl}->update; - $self->{preview3D}->reload_print($self->{obj_idx}); - my $object = $self->{plater}->{print}->get_object($self->{obj_idx}); - if($object->layer_count-1 > 0) { - my $first_layer = $self->{object}->get_layer(0); - $self->{last_raft_height} = max(0, $first_layer->print_z - $first_layer->height); - $self->{preview3D}->set_z(unscale($self->{object}->size->z)); - if(!$self->{preview_zoomed}) { - $self->{preview3D}->canvas->set_auto_bed_shape; - $self->{preview3D}->canvas->zoom_to_volumes; - $self->{preview_zoomed} = 1; - } - } -} - -# Trigger background slicing at the plater -sub _trigger_slicing { - my ($self, $invalidate) = @_; - $invalidate //= 1; - my $object = $self->{plater}->{print}->get_object($self->{obj_idx}); - $self->{model_object}->set_layer_height_spline($self->{object}->layer_height_spline); # push modified spline object to model_object - #$self->{plater}->pause_background_process; - $self->{plater}->stop_background_process; - if (!$Slic3r::GUI::Settings->{_}{background_processing}) { - $self->{plater}->statusbar->SetCancelCallback(sub { - $self->{plater}->stop_background_process; - $self->{plater}->statusbar->SetStatusText("Slicing cancelled"); - $self->{plater}->preview_notebook->SetSelection(0); - }); - $object->invalidate_step(STEP_SLICE) if($invalidate); - $self->{plater}->start_background_process; - }else{ - $object->invalidate_step(STEP_SLICE) if($invalidate); - $self->{plater}->schedule_background_process; - } -} - - -package Slic3r::GUI::Plater::ObjectDialog::LayersTab; -use Wx qw(:dialog :id :misc :sizer :systemsettings); -use Wx::Grid; -use Wx::Event qw(EVT_GRID_CELL_CHANGED); -use base 'Slic3r::GUI::Plater::ObjectDialog::BaseTab'; - -sub new { - my $class = shift; - my ($parent, %params) = @_; - my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize); - - my $sizer = Wx::BoxSizer->new(wxVERTICAL); - - { - my $label = Wx::StaticText->new($self, -1, "You can use this section to override the layer height for parts of this object. The values from this table will override the default layer height and adaptive layer heights, but not the interactively modified height curve.", - wxDefaultPosition, wxDefaultSize); - $label->SetFont(Wx::SystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); - $label->Wrap(800); - $sizer->Add($label, 0, wxEXPAND | wxALL, 10); - } - - my $grid = $self->{grid} = Wx::Grid->new($self, -1, wxDefaultPosition, wxDefaultSize); - $sizer->Add($grid, 1, wxEXPAND | wxALL, 10); - $grid->CreateGrid(0, 3); - $grid->DisableDragRowSize; - $grid->HideRowLabels if &Wx::wxVERSION_STRING !~ / 2\.8\./; - $grid->SetColLabelValue(0, "Min Z (mm)"); - $grid->SetColLabelValue(1, "Max Z (mm)"); - $grid->SetColLabelValue(2, "Layer height (mm)"); - $grid->SetColSize($_, -1) for 0..2; - $grid->SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE); - - # load data - foreach my $range (@{ $self->model_object->layer_height_ranges }) { - $grid->AppendRows(1); - my $i = $grid->GetNumberRows-1; - $grid->SetCellValue($i, $_, $range->[$_]) for 0..2; - } - $grid->AppendRows(1); # append one empty row - - EVT_GRID_CELL_CHANGED($grid, sub { - my ($grid, $event) = @_; - - # remove any non-numeric character - my $value = $grid->GetCellValue($event->GetRow, $event->GetCol); - $value =~ s/,/./g; - $value =~ s/[^0-9.]//g; - $grid->SetCellValue($event->GetRow, $event->GetCol, $value); - - # if there's no empty row, let's append one - for my $i (0 .. $grid->GetNumberRows) { - if ($i == $grid->GetNumberRows) { - # if we're here then we found no empty row - $grid->AppendRows(1); - last; - } - if (!grep $grid->GetCellValue($i, $_), 0..2) { - # exit loop if this row is empty - last; - } - } - - $self->{layers_changed} = 1; - }); - - $self->SetSizer($sizer); - $sizer->SetSizeHints($self); - - return $self; -} - -sub CanClose { - my $self = shift; - - # validate ranges before allowing user to dismiss the dialog - - foreach my $range ($self->_get_ranges) { - my ($min, $max, $height) = @$range; - if ($max <= $min) { - Slic3r::GUI::show_error($self, "Invalid Z range $min-$max."); - return 0; - } - if ($min < 0 || $max < 0) { - Slic3r::GUI::show_error($self, "Invalid Z range $min-$max."); - return 0; - } - if ($height < 0) { - Slic3r::GUI::show_error($self, "Invalid layer height $height."); - return 0; - } - # TODO: check for overlapping ranges - } - - return 1; -} - -sub Closing { - my $self = shift; - - # save ranges into the plater object - $self->model_object->set_layer_height_ranges([ $self->_get_ranges ]); -} - -sub _get_ranges { - my $self = shift; - - my @ranges = (); - for my $i (0 .. $self->{grid}->GetNumberRows-1) { - my ($min, $max, $height) = map $self->{grid}->GetCellValue($i, $_), 0..2; - next if $min eq '' || $max eq '' || $height eq ''; - push @ranges, [ $min, $max, $height ]; - } - return sort { $a->[0] <=> $b->[0] } @ranges; -} - -sub LayersChanged { - my ($self) = @_; - return $self->{layers_changed}; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/OverrideSettingsPanel.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/OverrideSettingsPanel.pm deleted file mode 100644 index 34b9eb6f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/OverrideSettingsPanel.pm +++ /dev/null @@ -1,237 +0,0 @@ -# Maintains, displays, adds and removes overrides of slicing parameters. - -package Slic3r::GUI::Plater::OverrideSettingsPanel; -use strict; -use warnings; -use utf8; - -use List::Util qw(first); -use Wx qw(:misc :sizer :button wxTAB_TRAVERSAL wxSUNKEN_BORDER wxBITMAP_TYPE_PNG - wxTheApp); -use Wx::Event qw(EVT_BUTTON EVT_LEFT_DOWN EVT_MENU); -use base 'Wx::ScrolledWindow'; - -use constant ICON_MATERIAL => 0; -use constant ICON_SOLIDMESH => 1; -use constant ICON_MODIFIERMESH => 2; - -my %icons = ( - 'Advanced' => 'wand.png', - 'Extruders' => 'funnel.png', - 'Extrusion Width' => 'funnel.png', - 'Infill' => 'infill.png', - 'Layers and Perimeters' => 'layers.png', - 'Skirt and brim' => 'box.png', - 'Speed' => 'time.png', - 'Speed > Acceleration' => 'time.png', - 'Support material' => 'building.png', -); - -sub new { - my $class = shift; - my ($parent, %params) = @_; - my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, $params{size} // wxDefaultSize, wxTAB_TRAVERSAL); - $self->{default_config} = Slic3r::Config->new; - $self->{config} = Slic3r::Config->new; - $self->{on_change} = $params{on_change}; - $self->{can_add} = 1; - $self->{can_delete} = 1; - $self->{fixed_options} = {}; - - $self->{sizer} = Wx::BoxSizer->new(wxVERTICAL); - - $self->{options_sizer} = Wx::BoxSizer->new(wxVERTICAL); - $self->{sizer}->Add($self->{options_sizer}, 0, wxEXPAND | wxALL, 0); - - # option selector - { - # create the button - my $btn = $self->{btn_add} = Wx::BitmapButton->new($self, -1, Wx::Bitmap->new($Slic3r::var->("add.png"), wxBITMAP_TYPE_PNG), - wxDefaultPosition, wxDefaultSize, Wx::wxBORDER_NONE); - $btn->SetToolTipString("Override one more option") - if $btn->can('SetToolTipString'); - EVT_LEFT_DOWN($btn, sub { - my $menu = Wx::Menu->new; - my $last_cat = ''; - - # create category submenus - my %categories = (); # category => submenu - foreach my $opt_key (@{$self->{options}}) { - if (my $cat = $Slic3r::Config::Options->{$opt_key}{category}) { - $categories{$cat} //= Wx::Menu->new; - } - } - - # append submenus to main menu - foreach my $cat (sort keys %categories) { - wxTheApp->append_submenu($menu, $cat, "", $categories{$cat}, undef, $icons{$cat}); - } - - # append options to submenus - foreach my $opt_key (@{$self->{options}}) { - my $cat = $Slic3r::Config::Options->{$opt_key}{category} or next; - - my $cb = sub { - $self->{config}->set($opt_key, $self->{default_config}->get($opt_key)); - $self->update_optgroup; - $self->{on_change}->($opt_key) if $self->{on_change}; - }; - - wxTheApp->append_menu_item($categories{$cat}, $self->{option_labels}{$opt_key}, - $Slic3r::Config::Options->{$opt_key}{tooltip}, $cb); - } - $self->PopupMenu($menu, $btn->GetPosition); - $menu->Destroy; - }); - - my $h_sizer = Wx::BoxSizer->new(wxHORIZONTAL); - $h_sizer->Add($btn, 0, wxALL, 0); - $self->{sizer}->Add($h_sizer, 0, wxEXPAND | wxBOTTOM, 10); - } - - $self->SetSizer($self->{sizer}); - - # http://docs.wxwidgets.org/3.0/classwx_scrolled.html#details - $self->SetScrollRate(0, $Slic3r::GUI::scroll_step); - - $self->set_opt_keys($params{opt_keys}) if $params{opt_keys}; - $self->update_optgroup; - - return $self; -} - -# Sets the config used to get the default values for user-added options. -sub set_default_config { - my ($self, $config) = @_; - $self->{default_config} = $config; -} - -# Sets the target config, whose options will be displayed in the OptionsGroup. -sub set_config { - my ($self, $config) = @_; - $self->{config} = $config; - $self->update_optgroup; -} - -# Sets the options listed in the Add button. -sub set_opt_keys { - my ($self, $opt_keys) = @_; - - # sort options by label - $self->{option_labels} = {}; - foreach my $opt_key (@$opt_keys) { - my $def = $Slic3r::Config::Options->{$opt_key} or next; - $self->{option_labels}{$opt_key} = $def->{full_label} // $def->{label}; - }; - $self->{options} = [ sort { $self->{option_labels}{$a} cmp $self->{option_labels}{$b} } keys %{$self->{option_labels}} ]; -} - -# Sets the options that user can't remove. -sub set_fixed_options { - my ($self, $opt_keys) = @_; - $self->{fixed_options} = { map {$_ => 1} @$opt_keys }; - $self->update_optgroup; -} - -sub fixed_options { - my ($self) = @_; - - return keys %{$self->{fixed_options}}; -} - -sub update_optgroup { - my $self = shift; - - $self->{options_sizer}->Clear(1); - return if !defined $self->{config}; - - $self->{btn_add}->Show($self->{can_add}); - - my %categories = (); - foreach my $opt_key (@{$self->{config}->get_keys}) { - my $category = $Slic3r::Config::Options->{$opt_key}{category}; - $categories{$category} ||= []; - push @{$categories{$category}}, $opt_key; - } - foreach my $category (sort keys %categories) { - my $optgroup; - $optgroup = Slic3r::GUI::ConfigOptionsGroup->new( - parent => $self, - title => $category, - config => $self->{config}, - full_labels => 1, - label_font => $Slic3r::GUI::small_font, - sidetext_font => $Slic3r::GUI::small_font, - label_width => 120, - on_change => sub { - my ($opt_key) = @_; - $self->{on_change}->($opt_key) if $self->{on_change}; - }, - extra_column => sub { - my ($line) = @_; - - my $opt_id = $line->get_options->[0]->opt_id; # we assume that we have one option per line - my ($opt_key, $opt_index) = @{ $optgroup->_opt_map->{$opt_id} }; - - # disallow deleting fixed options - return undef if $self->{fixed_options}{$opt_key} || !$self->{can_delete}; - - my $btn = Wx::BitmapButton->new($self, -1, Wx::Bitmap->new($Slic3r::var->("delete.png"), wxBITMAP_TYPE_PNG), - wxDefaultPosition, wxDefaultSize, Wx::wxBORDER_NONE); - EVT_BUTTON($self, $btn, sub { - $self->{config}->erase($opt_key); - $self->{on_change}->($opt_key) if $self->{on_change}; - wxTheApp->CallAfter(sub { $self->update_optgroup }); - }); - return $btn; - }, - ); - foreach my $opt_key (sort @{$categories{$category}}) { - # For array options we override the first value. - my $opt_index = (ref($self->{config}->get($opt_key)) eq 'ARRAY') ? 0 : -1; - $optgroup->append_single_option_line($opt_key, $opt_index); - } - $self->{options_sizer}->Add($optgroup->sizer, 0, wxEXPAND | wxBOTTOM, 0); - } - $self->GetParent->Layout; # we need this for showing scrollbars -} - -# work around a wxMAC bug causing controls not being disabled when calling Disable() on a Window -sub enable { - my ($self) = @_; - - $self->{btn_add}->Enable; - $self->Enable; -} - -sub disable { - my ($self) = @_; - - $self->{btn_add}->Disable; - $self->Disable; -} - -# Shows or hides the Add/Delete buttons. -sub set_editable { - my ($self, $editable) = @_; - - $self->{can_add} = $self->{can_delete} = $editable; -} - -# Shows or hides the Add button. -sub can_add { - my ($self, $can) = @_; - - $self->{can_add} = $can if defined $can; - return $can; -} - -# Shows or hides the Delete button. -sub can_delete { - my ($self, $can) = @_; - - $self->{can_delete} = $can if defined $can; - return $can; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/SplineControl.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/SplineControl.pm deleted file mode 100644 index 92918d43..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Plater/SplineControl.pm +++ /dev/null @@ -1,389 +0,0 @@ -package Slic3r::GUI::Plater::SplineControl; -use strict; -use warnings; -use utf8; - -use List::Util qw(min max first); -use Slic3r::Geometry qw(X Y scale unscale); -use Wx qw(:misc :pen :brush :sizer :font :cursor wxTAB_TRAVERSAL); -use Wx::Event qw(EVT_MOUSE_EVENTS EVT_PAINT EVT_ERASE_BACKGROUND EVT_SIZE); -use base 'Wx::Panel'; - -# Color Scheme -use Slic3r::GUI::ColorScheme; - -sub new { - my $class = shift; - my ($parent, $size, $object) = @_; - - if ( ( defined $Slic3r::GUI::Settings->{_}{colorscheme} ) && ( Slic3r::GUI::ColorScheme->can($Slic3r::GUI::Settings->{_}{colorscheme}) ) ) { - my $myGetSchemeName = \&{"Slic3r::GUI::ColorScheme::$Slic3r::GUI::Settings->{_}{colorscheme}"}; - $myGetSchemeName->(); - } else { - Slic3r::GUI::ColorScheme->getDefault(); - } - - my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, $size, wxTAB_TRAVERSAL); - - $self->{object} = $object; - $self->{is_valid} = 0; - - # This has only effect on MacOS. On Windows and Linux/GTK, the background is painted by $self->repaint(). - $self->SetBackgroundColour(Wx::Colour->new(@BACKGROUND255)); - - $self->{line_pen} = Wx::Pen->new(Wx::Colour->new(@SPLINE_L_PEN), 1, wxSOLID); - $self->{original_pen} = Wx::Pen->new(Wx::Colour->new(@SPLINE_O_PEN), 1, wxSOLID); - $self->{interactive_pen} = Wx::Pen->new(Wx::Colour->new(@SPLINE_I_PEN), 1, wxSOLID); - $self->{resulting_pen} = Wx::Pen->new(Wx::Colour->new(@SPLINE_R_PEN), 1, wxSOLID); - - $self->{user_drawn_background} = $^O ne 'darwin'; - - # scale plot data to actual canvas, documentation in set_size_parameters - $self->{scaling_factor_x} = 1; - $self->{scaling_factor_y} = 1; - $self->{min_layer_height} = 0.1; - $self->{max_layer_height} = 0.4; - $self->{mousover_layer_height} = undef; # display layer height at mousover position - $self->{object_height} = 1.0; - - # initialize values - $self->update; - - EVT_PAINT($self, \&repaint); - EVT_ERASE_BACKGROUND($self, sub {}) if $self->{user_drawn_background}; - EVT_MOUSE_EVENTS($self, \&mouse_event); - EVT_SIZE($self, sub { - $self->_update_canvas_size; - $self->Refresh; - }); - - return $self; -} - -sub repaint { - my ($self, $event) = @_; - - my $dc = Wx::AutoBufferedPaintDC->new($self); - my $size = $self->GetSize; - my @size = ($size->GetWidth, $size->GetHeight); - - - if ($self->{user_drawn_background}) { - # On all systems the AutoBufferedPaintDC() achieves double buffering. - # On MacOS the background is erased, on Windows the background is not erased - # and on Linux/GTK the background is erased to gray color. - # Fill DC with the background on Windows & Linux/GTK. - my $brush_background = Wx::Brush->new(Wx::Colour->new(@BACKGROUND255), wxSOLID); - my $pen_background = Wx::Pen->new(Wx::Colour->new(@BACKGROUND255), 1, wxSOLID); - $dc->SetPen($pen_background); - $dc->SetBrush($brush_background); - my $rect = $self->GetUpdateRegion()->GetBox(); - $dc->DrawRectangle($rect->GetLeft(), $rect->GetTop(), $rect->GetWidth(), $rect->GetHeight()); - } - - # draw scale (min and max indicator at the bottom) - $dc->SetTextForeground(Wx::Colour->new(0,0,0)); - $dc->SetFont(Wx::Font->new(10, wxDEFAULT, wxNORMAL, wxNORMAL)); - $dc->DrawLabel(sprintf('%.4g', $self->{min_layer_height}), Wx::Rect->new(0, $size[1]/2, $size[0], $size[1]/2), wxALIGN_LEFT | wxALIGN_BOTTOM); - $dc->DrawLabel(sprintf('%.2g', $self->{max_layer_height}), Wx::Rect->new(0, $size[1]/2, $size[0], $size[1]/2), wxALIGN_RIGHT | wxALIGN_BOTTOM); - if($self->{mousover_layer_height}){ - $dc->DrawLabel(sprintf('%4.2fmm', $self->{mousover_layer_height}), Wx::Rect->new(0, 0, $size[0], $size[1]), wxALIGN_RIGHT | wxALIGN_TOP); - } - - if($self->{is_valid}) { - - # draw original spline as reference - if($self->{original_height_spline}) { - #draw spline - $self->_draw_layer_height_spline($dc, $self->{original_height_spline}, $self->{original_pen}); - } - - # draw interactive (currently modified by the user) layers as lines and spline - if($self->{interactive_height_spline}) { - # draw layer lines - my @interpolated_layers = @{$self->{interactive_height_spline}->getInterpolatedLayers}; - $self->_draw_layers_as_lines($dc, $self->{interactive_pen}, \@interpolated_layers); - - #draw spline - $self->_draw_layer_height_spline($dc, $self->{interactive_height_spline}, $self->{interactive_pen}); - } - - # draw resulting layers as lines - unless($self->{interactive_heights}) { - $self->_draw_layers_as_lines($dc, $self->{resulting_pen}, $self->{interpolated_layers}); - } - - # Always draw current BSpline, gives a reference during a modification - $self->_draw_layer_height_spline($dc, $self->{object}->layer_height_spline, $self->{line_pen}); - } - - $event->Skip; -} - -# Set basic parameters for this control. -# min/max_layer_height are required to define the x-range, object_height is used to scale the y-range. -# Must be called if object selection changes. -sub set_size_parameters { - my ($self, $min_layer_height, $max_layer_height, $object_height) = @_; - - $self->{min_layer_height} = $min_layer_height; - $self->{max_layer_height} = $max_layer_height; - $self->{object_height} = $object_height; - - $self->_update_canvas_size; - $self->Refresh; -} - -# Layers have been modified externally, re-initialize this control with new values -sub update { - my $self = shift; - - if(($self->{object}->layer_height_spline->layersUpdated || !$self->{heights}) && $self->{object}->layer_height_spline->hasData) { - $self->{original_height_spline} = $self->{object}->layer_height_spline->clone; # make a copy to display the unmodified original spline - $self->{original_layers} = $self->{object}->layer_height_spline->getOriginalLayers; - $self->{interpolated_layers} = $self->{object}->layer_height_spline->getInterpolatedLayers; # Initialize to current values - - # initialize height vector - $self->{heights} = (); - $self->{interactive_heights} = (); - foreach my $z (@{$self->{original_layers}}) { - push (@{$self->{heights}}, $self->{object}->layer_height_spline->getLayerHeightAt($z)); - } - $self->{is_valid} = 1; - } - $self->Refresh; -} - -# Callback to notify parent element if layers have changed and reslicing should be triggered -sub on_layer_update { - my ($self, $cb) = @_; - $self->{on_layer_update} = $cb; -} - -# Callback to tell parent element at which z-position the mouse currently hovers to update indicator in 3D-view -sub on_z_indicator { - my ($self, $cb) = @_; - $self->{on_z_indicator} = $cb; -} - - -sub mouse_event { - my ($self, $event) = @_; - - my $pos = $event->GetPosition; - my @obj_pos = $self->pixel_to_point($pos); - - if ($event->ButtonDown) { - if ($event->LeftDown) { - # start dragging - $self->{left_drag_start_pos} = $pos; - $self->{interactive_height_spline} = $self->{object}->layer_height_spline->clone; - } - if ($event->RightDown) { - # start dragging - $self->{right_drag_start_pos} = $pos; - $self->{interactive_height_spline} = $self->{object}->layer_height_spline->clone; - } - } elsif ($event->LeftUp) { - if($self->{left_drag_start_pos}) { - $self->_modification_done; - } - $self->{left_drag_start_pos} = undef; - } elsif ($event->RightUp) { - if($self->{right_drag_start_pos}) { - $self->_modification_done; - } - $self->{right_drag_start_pos} = undef; - } elsif ($event->Dragging) { - if($self->{left_drag_start_pos}) { - - my @start_pos = $self->pixel_to_point($self->{left_drag_start_pos}); - my $range = abs($start_pos[1] - $obj_pos[1]); - - # compute updated interactive layer heights - $self->_interactive_quadratic_curve($start_pos[1], $obj_pos[0], $range); - - unless($self->{interactive_height_spline}->updateLayerHeights($self->{interactive_heights})) { - die "Unable to update interactive interpolated layers!\n"; - } - $self->Refresh; - } elsif($self->{right_drag_start_pos}) { - my @start_pos = $self->pixel_to_point($self->{right_drag_start_pos}); - my $range = $obj_pos[1] - $start_pos[1]; - - # compute updated interactive layer heights - $self->_interactive_linear_curve($start_pos[1], $obj_pos[0], $range); - unless($self->{interactive_height_spline}->updateLayerHeights($self->{interactive_heights})) { - die "Unable to update interactive interpolated layers!\n"; - } - $self->Refresh; - } - } elsif ($event->Moving) { - if($self->{on_z_indicator}) { - $self->{on_z_indicator}->($obj_pos[1]); - $self->{mousover_layer_height} = $self->{object}->layer_height_spline->getLayerHeightAt($obj_pos[1]); - $self->Refresh; - $self->Update; - } - } elsif ($event->Leaving) { - if($self->{on_z_indicator} && !$self->{left_drag_start_pos}) { - $self->{on_z_indicator}->(undef); - } - $self->{mousover_layer_height} = undef; - $self->Refresh; - $self->Update; - } -} - -# Push modified heights to the spline object and update after user modification -sub _modification_done { - my $self = shift; - - if($self->{interactive_heights}) { - $self->{heights} = $self->{interactive_heights}; - $self->{interactive_heights} = (); - # update spline database - unless($self->{object}->layer_height_spline->updateLayerHeights($self->{heights})) { - die "Unable to update interpolated layers!\n"; - } - $self->{interpolated_layers} = $self->{object}->layer_height_spline->getInterpolatedLayers; - } - $self->Refresh; - $self->{on_layer_update}->(@{$self->{interpolated_layers}}); - $self->{interactive_height_spline} = undef; -} - -# Internal function to cache scaling factors -sub _update_canvas_size { - my $self = shift; - - # when the canvas is not rendered yet, its GetSize() method returns 0,0 - my $canvas_size = $self->GetSize; - my ($canvas_w, $canvas_h) = ($canvas_size->GetWidth, $canvas_size->GetHeight); - return if $canvas_w == 0; - - my $padding = $self->{canvas_padding} = 10; # border size in pixels - - my @size = ($canvas_w - 2*$padding, $canvas_h - 2*$padding); - $self->{canvas_size} = [@size]; - - $self->{scaling_factor_x} = $size[0]/($self->{max_layer_height} - $self->{min_layer_height}); - $self->{scaling_factor_y} = $size[1]/$self->{object_height}; -} - -# calculate new set of layers with quadaratic modifier for interactive display -sub _interactive_quadratic_curve { - my ($self, $mod_z, $target_layer_height, $range) = @_; - - $self->{interactive_heights} = (); # reset interactive curve - - # iterate over original points provided by spline - my $last_z = 0; - foreach my $i (0..@{$self->{heights}}-1 ) { - my $z = $self->{original_layers}[$i]; - my $layer_h = $self->{heights}[$i]; - my $quadratic_factor = $self->_quadratic_factor($mod_z, $range, $z); - my $diff = $target_layer_height - $layer_h; - $layer_h += $diff * $quadratic_factor; - push (@{$self->{interactive_heights}}, $layer_h); - } -} - -# calculate new set of layers with linear modifier for interactive display -sub _interactive_linear_curve { - my ($self, $mod_z, $target_layer_height, $range) = @_; - - $self->{interactive_heights} = (); # reset interactive curve - my $from; - my $to; - - if($range >= 0) { - $from = $mod_z; - $to = $mod_z + $range; - }else{ - $from = $mod_z + $range; - $to = $mod_z; - } - - # iterate over original points provided by spline - foreach my $i (0..@{$self->{heights}}-1 ) { - if(($self->{original_layers}[$i]) >= $from && ($self->{original_layers}[$i]< $to)) { - push (@{$self->{interactive_heights}}, $target_layer_height); - }else{ - push (@{$self->{interactive_heights}}, $self->{heights}[$i]); - } - } -} - -sub _quadratic_factor { - my ($self, $fixpoint, $range, $value) = @_; - - # avoid division by zero - $range = 0.00001 if $range <= 0; - - my $dist = abs($fixpoint - $value); - my $x = $dist/$range; # normalize - my $result = 1-($x*$x); - - return max(0, $result); -} - -# Draw a set of layers as lines -sub _draw_layers_as_lines { - my ($self, $dc, $pen, $layers) = @_; - - $dc->SetPen($pen); - my $last_z = 0.0; - foreach my $z (@$layers) { - my $layer_h = $z - $last_z; - my $pl = $self->point_to_pixel(0, $z); - my $pr = $self->point_to_pixel($layer_h, $z); - $dc->DrawLine($pl->x, $pl->y, $pr->x, $pr->y); - $last_z = $z; - } -} - -# Draw the resulting spline from a LayerHeightSpline object over the full canvas height -sub _draw_layer_height_spline { - my ($self, $dc, $layer_height_spline, $pen) = @_; - - my @size = @{$self->{canvas_size}}; - - $dc->SetPen($pen); - my @points = (); - foreach my $pixel (0..$size[1]) { - my @z = $self->pixel_to_point(Wx::Point->new(0, $pixel)); - my $h = $layer_height_spline->getLayerHeightAt($z[1]); - my $p = $self->point_to_pixel($h, $z[1]); - push (@points, $p); - } - $dc->DrawLines(\@points); -} - -# Takes a 2-tupel [layer_height (x), height(y)] and converts it -# into a Wx::Point in scaled canvas coordinates -sub point_to_pixel { - my ($self, @point) = @_; - - my @size = @{$self->{canvas_size}}; - - my $x = ($point[0] - $self->{min_layer_height})*$self->{scaling_factor_x} + $self->{canvas_padding}; - my $y = $size[1] - $point[1]*$self->{scaling_factor_y} + $self->{canvas_padding}; # invert y-axis - - return Wx::Point->new(min(max($x, $self->{canvas_padding}), $size[0]+$self->{canvas_padding}), min(max($y, $self->{canvas_padding}), $size[1]+$self->{canvas_padding})); # limit to canvas size -} - -# Takes a Wx::Point in scaled canvas coordinates and converts it -# into a 2-tupel [layer_height (x), height(y)] -sub pixel_to_point { - my ($self, $point) = @_; - - my @size = @{$self->{canvas_size}}; - - my $x = ($point->x-$self->{canvas_padding})/$self->{scaling_factor_x} + $self->{min_layer_height}; - my $y = ($size[1] - $point->y)/$self->{scaling_factor_y}; # invert y-axis - - return (min(max($x, $self->{min_layer_height}), $self->{max_layer_height}), min(max($y, 0), $self->{object_height})); # limit to object size and layer constraints -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Preferences.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Preferences.pm deleted file mode 100644 index e63ca8cb..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Preferences.pm +++ /dev/null @@ -1,150 +0,0 @@ -# Preferences dialog, opens from Menu: File->Preferences - -package Slic3r::GUI::Preferences; -use Wx qw(:dialog :id :misc :sizer :systemsettings wxTheApp); -use Wx::Event qw(EVT_BUTTON EVT_TEXT_ENTER); -use base 'Wx::Dialog'; - -sub new { - my ($class, $parent) = @_; - my $self = $class->SUPER::new($parent, -1, "Preferences", wxDefaultPosition, wxDefaultSize); - $self->{values} = {}; - - my $optgroup; - $optgroup = Slic3r::GUI::OptionsGroup->new( - parent => $self, - title => 'General', - on_change => sub { - my ($opt_id) = @_; - $self->{values}{$opt_id} = $optgroup->get_value($opt_id); - }, - label_width => 200, - ); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( # version_check - opt_id => 'version_check', - type => 'bool', - label => 'Check for updates', - tooltip => 'If this is enabled, Slic3r will check for updates daily and display a reminder if a newer version is available.', - default => $Slic3r::GUI::Settings->{_}{version_check} // 1, - readonly => !wxTheApp->have_version_check, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( # remember_output_path - opt_id => 'remember_output_path', - type => 'bool', - label => 'Remember output directory', - tooltip => 'If this is enabled, Slic3r will prompt the last output directory instead of the one containing the input files.', - default => $Slic3r::GUI::Settings->{_}{remember_output_path}, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( # autocenter - opt_id => 'autocenter', - type => 'bool', - label => 'Auto-center parts (x,y)', - tooltip => 'If this is enabled, Slic3r will auto-center objects around the print bed center.', - default => $Slic3r::GUI::Settings->{_}{autocenter}, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( # autoalignz - opt_id => 'autoalignz', - type => 'bool', - label => 'Auto-align parts (z=0)', - tooltip => 'If this is enabled, Slic3r will auto-align objects z value to be on the print bed at z=0.', - default => $Slic3r::GUI::Settings->{_}{autoalignz}, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( # invert_zoom - opt_id => 'invert_zoom', - type => 'bool', - label => 'Invert zoom in previews', - tooltip => 'If this is enabled, Slic3r will invert the direction of mouse-wheel zoom in preview panes.', - default => $Slic3r::GUI::Settings->{_}{invert_zoom}, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( # background_processing - opt_id => 'background_processing', - type => 'bool', - label => 'Background processing', - tooltip => 'If this is enabled, Slic3r will pre-process objects as soon as they\'re loaded in order to save time when exporting G-code.', - default => $Slic3r::GUI::Settings->{_}{background_processing}, - readonly => !$Slic3r::have_threads, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( # threads - opt_id => 'threads', - type => 'i', - label => 'Threads', - tooltip => $Slic3r::Config::Options->{threads}{tooltip}, - default => $Slic3r::GUI::Settings->{_}{threads}, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( # tabbed_preset_editors - opt_id => 'tabbed_preset_editors', - type => 'bool', - label => 'Display profile editors as tabs', - tooltip => 'When opening a profile editor, it will be shown in a dialog or in a tab according to this option.', - default => $Slic3r::GUI::Settings->{_}{tabbed_preset_editors}, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( # show_host - opt_id => 'show_host', - type => 'bool', - label => 'Show Controller Tab (requires restart)', - tooltip => 'Shows/Hides the Controller Tab. Requires a restart of Slic3r.', - default => $Slic3r::GUI::Settings->{_}{show_host}, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( # nudge_val - opt_id => 'nudge_val', - type => 's', - label => '2D plater nudge value', - tooltip => 'In 2D plater, Move objects using keyboard by nudge value of', - default => $Slic3r::GUI::Settings->{_}{nudge_val}, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( # reload hide dialog - opt_id => 'reload_hide_dialog', - type => 'bool', - label => 'Hide Dialog on Reload', - tooltip => 'When checked, the dialog on reloading files with added parts & modifiers is suppressed. The reload is performed according to the option given in \'Default Reload Behavior\'', - default => $Slic3r::GUI::Settings->{_}{reload_hide_dialog}, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( # default reload behavior - opt_id => 'reload_behavior', - type => 'select', - label => 'Default Reload Behavior', - tooltip => 'Choose the default behavior of the \'Reload from disk\' function regarding additional parts and modifiers.', - labels => ['Reload all','Reload main, copy added','Reload main, discard added'], - values => [0, 1, 2], - default => $Slic3r::GUI::Settings->{_}{reload_behavior}, - width => 180, - )); - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( # colorscheme - opt_id => 'colorscheme', - type => 'select', - label => 'Color Scheme', - tooltip => 'Choose between color schemes - restart of Slic3r required.', - labels => ['Default','Solarized'], # add more schemes, if you want in ColorScheme.pm. - values => ['getDefault','getSolarized'], # add more schemes, if you want - those are the names of the corresponding function in ColorScheme.pm. - default => $Slic3r::GUI::Settings->{_}{colorscheme} // 'getDefault', - width => 180, - )); - - my $sizer = Wx::BoxSizer->new(wxVERTICAL); - $sizer->Add($optgroup->sizer, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - - my $buttons = $self->CreateStdDialogButtonSizer(wxOK | wxCANCEL); - EVT_BUTTON($self, wxID_OK, sub { $self->_accept }); - $sizer->Add($buttons, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - - $self->SetSizer($sizer); - $sizer->SetSizeHints($self); - - return $self; -} - -sub _accept { - my $self = shift; - - if ($self->{values}{mode}) { - Slic3r::GUI::warning_catcher($self)->("You need to restart Slic3r to make the changes effective."); - } - - $Slic3r::GUI::Settings->{_}{$_} = $self->{values}{$_} for keys %{$self->{values}}; - wxTheApp->save_settings; - - $self->EndModal(wxID_OK); - $self->Close; # needed on Linux -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Preset.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Preset.pm deleted file mode 100644 index f6d3de73..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Preset.pm +++ /dev/null @@ -1,228 +0,0 @@ -package Slic3r::GUI::Preset; -use Moo; - -use Unicode::Normalize; -use Wx qw(:dialog :icon :id wxTheApp); - -has 'group' => (is => 'ro', required => 1); -has 'default' => (is => 'ro', default => sub { 0 }); -has 'external' => (is => 'ro', default => sub { 0 }); -has 'name' => (is => 'rw', required => 1); -has 'file' => (is => 'rw'); -has '_config' => (is => 'rw', default => sub { Slic3r::Config->new }); -has '_dirty_config' => (is => 'ro', default => sub { Slic3r::Config->new }); - -sub BUILD { - my ($self) = @_; - - $self->name(Unicode::Normalize::NFC($self->name)); -} - -sub _loaded { - my ($self) = @_; - - return !$self->_config->empty; -} - -sub dirty_options { - my ($self) = @_; - - my @dirty = (); - - # Options present in both configs with different values: - push @dirty, @{$self->_config->diff($self->_dirty_config)}; - - # Overrides added to the dirty config: - my @extra = $self->_group_class->overriding_options; - push @dirty, grep { !$self->_config->has($_) && $self->_dirty_config->has($_) } @extra; - # Overrides removed from the dirty config: - push @dirty, grep { $self->_config->has($_) && !$self->_dirty_config->has($_) } @extra; - - return @dirty; -} - -sub dirty { - my ($self) = @_; - - return !!$self->dirty_options; -} - -sub dropdown_name { - my ($self) = @_; - - my $name = $self->name; - $name .= " (modified)" if $self->dirty; - return $name; -} - -sub file_exists { - my ($self) = @_; - - die "Can't call file_exists() on a non-file preset" if !$self->file; - return -e Slic3r::encode_path($self->file); -} - -sub rename { - my ($self, $name) = @_; - - $self->name($name); - $self->file(sprintf "$Slic3r::GUI::datadir/%s/%s.ini", $self->group, $name); -} - -sub prompt_unsaved_changes { - my ($self, $parent) = @_; - - if ($self->dirty) { - my $name = $self->default ? 'Default preset' : "Preset \"" . $self->name . "\""; - - my $opts = ''; - foreach my $opt_key ($self->dirty_options) { - my $opt = $Slic3r::Config::Options->{$opt_key}; - my $name = $opt->{full_label} // $opt->{label}; - if ($opt->{category}) { - $name = $opt->{category} . " > $name"; - } - $opts .= "- $name\n"; - } - - my $msg = sprintf "%s has unsaved changes:\n%s\nDo you want to save them?", $name, $opts; - my $confirm = Wx::MessageDialog->new($parent, $msg, - 'Unsaved Changes', wxYES_NO | wxCANCEL | wxYES_DEFAULT | wxICON_QUESTION); - $confirm->SetYesNoCancelLabels('Save', 'Discard', 'Cancel'); - my $res = $confirm->ShowModal; - - if ($res == wxID_CANCEL) { - return 0; - } elsif ($res == wxID_YES) { - return $self->default ? $self->save_prompt($parent) : $self->save; - } elsif ($res == wxID_NO) { - $self->dismiss_changes; - return 1; - } - } - - return 1; -} - -sub save_prompt { - my ($self, $parent) = @_; - - my $default_name = $self->default ? 'Untitled' : $self->name; - $default_name =~ s/\.ini$//i; - - my $dlg = Slic3r::GUI::SavePresetWindow->new($parent, - default => $default_name, - values => [ map $_->name, grep !$_->default && !$_->external, @{wxTheApp->presets->{$self->name}} ], - ); - return 0 unless $dlg->ShowModal == wxID_OK; - - $self->save_as($dlg->get_name); -} - -sub save { - my ($self, $opt_keys) = @_; - - return $self->save_as($self->name, $opt_keys); -} - -sub save_as { - my ($self, $name, $opt_keys) = @_; - - $self->rename($name); - - if (!$self->file) { - die "Calling save() without setting filename"; - } - - if ($opt_keys) { - $self->_config->apply_only($self->_dirty_config, $opt_keys); - } else { - $self->_config->clear; - $self->_config->apply($self->_dirty_config); - } - - # unlink the file first to avoid problems on case-insensitive file systems - unlink Slic3r::encode_path($self->file); - $self->_config->save($self->file); - wxTheApp->load_presets; - - return 1; -} - -sub dismiss_changes { - my ($self) = @_; - - $self->_dirty_config->clear; - $self->_dirty_config->apply($self->_config); -} - -sub delete { - my ($self) = @_; - - die "Default config can't be deleted" if $self->default; - die "External configs can't be deleted" if $self->external; - - # Otherwise wxTheApp->load_presets() will keep it - $self->dismiss_changes; - - if ($self->file) { - unlink Slic3r::encode_path($self->file) if $self->file_exists; - $self->file(undef); - } -} - -# This returns the loaded config with the dirty options applied. -sub dirty_config { - my ($self) = @_; - - $self->load_config if !$self->_loaded; - - return $self->_dirty_config->clone; -} - -sub load_config { - my ($self) = @_; - - return $self->_config if $self->_loaded; - - my @keys = $self->_group_class->options; - my @extra_keys = $self->_group_class->overriding_options; - - if ($self->default) { - $self->_config(Slic3r::Config->new_from_defaults(@keys)); - } elsif ($self->file) { - if (!$self->file_exists) { - Slic3r::GUI::show_error(undef, "The selected preset does not exist anymore (" . $self->file . ")."); - return undef; - } - my $external_config = Slic3r::Config->load($self->file); - if (!@keys) { - $self->_config($external_config); - } else { - # apply preset values on top of defaults - my $config = Slic3r::Config->new_from_defaults(@keys); - $config->set($_, $external_config->get($_)) - for grep $external_config->has($_), @keys; - - # For extra_keys we don't populate defaults. - if (@extra_keys && !$self->external) { - $config->set($_, $external_config->get($_)) - for grep $external_config->has($_), @extra_keys; - } - - $self->_config($config); - } - } - - $self->_dirty_config->apply($self->_config); - - return $self->_config; -} - -sub _group_class { - my ($self) = @_; - - return "Slic3r::GUI::PresetEditor::".ucfirst $self->group; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/PresetEditor.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/PresetEditor.pm deleted file mode 100644 index 7ba3691b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/PresetEditor.pm +++ /dev/null @@ -1,1841 +0,0 @@ -package Slic3r::GUI::PresetEditor; -use strict; -use warnings; -use utf8; - -use File::Basename qw(basename); -use List::Util qw(first any); -use Wx qw(:bookctrl :dialog :keycode :icon :id :misc :panel :sizer :treectrl :window - :button wxTheApp); -use Wx::Event qw(EVT_BUTTON EVT_CHOICE EVT_KEY_DOWN EVT_TREE_SEL_CHANGED EVT_CHECKBOX); -use base qw(Wx::Panel Class::Accessor); - -__PACKAGE__->mk_accessors(qw(current_preset config)); - -sub new { - my $class = shift; - my ($parent, %params) = @_; - my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize, wxBK_LEFT | wxTAB_TRAVERSAL); - - $self->{presets} = wxTheApp->presets->{$self->name}; - - # horizontal sizer - $self->{sizer} = Wx::BoxSizer->new(wxHORIZONTAL); - #$self->{sizer}->SetSizeHints($self); - $self->SetSizer($self->{sizer}); - - # left vertical sizer - my $left_sizer = Wx::BoxSizer->new(wxVERTICAL); - $self->{sizer}->Add($left_sizer, 0, wxEXPAND | wxLEFT | wxTOP | wxBOTTOM, 3); - - my $left_col_width = 150; - - # preset chooser - { - - # choice menu - $self->{presets_choice} = Wx::Choice->new($self, -1, wxDefaultPosition, [$left_col_width, -1], []); - $self->{presets_choice}->SetFont($Slic3r::GUI::small_font); - - # buttons - $self->{btn_save_preset} = Wx::BitmapButton->new($self, -1, Wx::Bitmap->new($Slic3r::var->("disk.png"), wxBITMAP_TYPE_PNG), - wxDefaultPosition, wxDefaultSize, wxBORDER_NONE); - $self->{btn_delete_preset} = Wx::BitmapButton->new($self, -1, Wx::Bitmap->new($Slic3r::var->("delete.png"), wxBITMAP_TYPE_PNG), - wxDefaultPosition, wxDefaultSize, wxBORDER_NONE); - $self->{btn_save_preset}->SetToolTipString("Save current " . lc($self->title)); - $self->{btn_delete_preset}->SetToolTipString("Delete this preset"); - $self->{btn_delete_preset}->Disable; - - ### These cause GTK warnings: - ###my $box = Wx::StaticBox->new($self, -1, "Presets:", wxDefaultPosition, [$left_col_width, 50]); - ###my $hsizer = Wx::StaticBoxSizer->new($box, wxHORIZONTAL); - - my $hsizer = Wx::BoxSizer->new(wxHORIZONTAL); - - $left_sizer->Add($hsizer, 0, wxEXPAND | wxBOTTOM, 5); - $hsizer->Add($self->{presets_choice}, 1, wxRIGHT | wxALIGN_CENTER_VERTICAL, 3); - $hsizer->Add($self->{btn_save_preset}, 0, wxALIGN_CENTER_VERTICAL); - $hsizer->Add($self->{btn_delete_preset}, 0, wxALIGN_CENTER_VERTICAL); - } - - # tree - $self->{treectrl} = Wx::TreeCtrl->new($self, -1, wxDefaultPosition, [$left_col_width, -1], wxTR_NO_BUTTONS | wxTR_HIDE_ROOT | wxTR_SINGLE | wxTR_NO_LINES | wxBORDER_SUNKEN | wxWANTS_CHARS); - $left_sizer->Add($self->{treectrl}, 1, wxEXPAND); - $self->{icons} = Wx::ImageList->new(16, 16, 1); - $self->{treectrl}->AssignImageList($self->{icons}); - $self->{iconcount} = -1; - $self->{treectrl}->AddRoot("root"); - $self->{pages} = []; - $self->{treectrl}->SetIndent(0); - $self->{disable_tree_sel_changed_event} = 0; - EVT_TREE_SEL_CHANGED($parent, $self->{treectrl}, sub { - return if $self->{disable_tree_sel_changed_event}; - my $page = first { $_->{title} eq $self->{treectrl}->GetItemText($self->{treectrl}->GetSelection) } @{$self->{pages}} - or return; - $_->Hide for @{$self->{pages}}; - $page->Show; - $self->{sizer}->Layout; - $self->Refresh; - }); - EVT_KEY_DOWN($self->{treectrl}, sub { - my ($treectrl, $event) = @_; - if ($event->GetKeyCode == WXK_TAB) { - $treectrl->Navigate($event->ShiftDown ? &Wx::wxNavigateBackward : &Wx::wxNavigateForward); - } else { - $event->Skip; - } - }); - - EVT_CHOICE($parent, $self->{presets_choice}, sub { - $self->_on_select_preset; - }); - - EVT_BUTTON($self, $self->{btn_save_preset}, sub { $self->save_preset }); - - EVT_BUTTON($self, $self->{btn_delete_preset}, sub { - my $res = Wx::MessageDialog->new($self, "Are you sure you want to delete the selected preset?", 'Delete Preset', wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION)->ShowModal; - return unless $res == wxID_YES; - - $self->current_preset->delete; - $self->current_preset(undef); - wxTheApp->load_presets; - $self->load_presets; - $self->select_preset(0, 1); - }); - - $self->config(Slic3r::Config->new_from_defaults($self->options)); - - $self->build; - $self->update_tree; - $self->load_presets; - $self->_update; - - return $self; -} - -# This is called by the save button. -sub save_preset { - my ($self) = @_; - - # since buttons (and choices too) don't get focus on Mac, we set focus manually - # to the treectrl so that the EVT_* events are fired for the input field having - # focus currently. is there anything better than this? - $self->{treectrl}->SetFocus; - - my $preset = $self->current_preset; - $preset->save_prompt($self); - $self->load_presets; - $self->select_preset_by_name($preset->name); - - $self->{on_save_preset}->($self->name, $preset) if $self->{on_save_preset}; - - return 1; -} - -sub on_save_preset { - my ($self, $cb) = @_; - $self->{on_save_preset} = $cb; -} - -sub on_value_change { - my ($self, $cb) = @_; - $self->{on_value_change} = $cb; -} - -# This method is supposed to be called whenever new values are loaded -# or changed by user (so also when a preset is loaded). -# propagate event to the parent -sub _on_value_change { - my ($self, $opt_key) = @_; - wxTheApp->CallAfter(sub { - $self->current_preset->_dirty_config->apply($self->config); - $self->{on_value_change}->($opt_key) if $self->{on_value_change}; - $self->load_presets; - $self->_update($opt_key); - }); -} - -sub _update {} - -sub on_preset_loaded {} - -sub select_preset { - my ($self, $i, $force) = @_; - - $self->{presets_choice}->SetSelection($i); - $self->_on_select_preset($force); -} - -sub select_preset_by_name { - my ($self, $name, $force) = @_; - - my $presets = wxTheApp->presets->{$self->name}; - my $i = first { $presets->[$_]->name eq $name } 0..$#$presets; - if (!defined $i) { - warn "No preset named $name"; - return 0; - } - $self->{presets_choice}->SetSelection($i); - $self->_on_select_preset($force); -} - -sub prompt_unsaved_changes { - my ($self) = @_; - - return 1 if !$self->current_preset; - return $self->current_preset->prompt_unsaved_changes($self); -} - -sub on_select_preset { - my ($self, $cb) = @_; - $self->{on_select_preset} = $cb; -} - -sub _on_select_preset { - my ($self, $force) = @_; - - # This method is called: - # - upon first initialization; - # - whenever user selects a preset from the dropdown; - # - whenever select_preset() or select_preset_by_name() are called. - - # Get the selected name. - my $preset = wxTheApp->presets->{$self->name}->[$self->{presets_choice}->GetSelection]; - - # If selection didn't change, do nothing. - # (But still reset current_preset because it might contain an older object of the - # current preset) - if (defined $self->current_preset && $preset->name eq $self->current_preset->name) { - $self->current_preset($preset); - return; - } - - # If we have unsaved changes, prompt user. - if (!$force && !$self->prompt_unsaved_changes) { - # User decided not to save the current changes, so we restore the previous selection. - my $presets = wxTheApp->presets->{$self->name}; - my $i = first { $presets->[$_]->name eq $self->current_preset->name } 0..$#$presets; - $self->{presets_choice}->SetSelection($i); - return; - } - - $self->current_preset($preset); - - # We reload presets in order to remove the "(modified)" suffix in case user was - # prompted and chose to discard changes. - $self->load_presets; - - $self->reload_preset; - - eval { - local $SIG{__WARN__} = Slic3r::GUI::warning_catcher($self); - ($preset->default || $preset->external) - ? $self->{btn_delete_preset}->Disable - : $self->{btn_delete_preset}->Enable; - - $self->_update; - $self->on_preset_loaded; - }; - if ($@) { - $@ = "I was unable to load the selected config file: $@"; - Slic3r::GUI::catch_error($self); - } - - $self->{on_select_preset}->($self->name, $preset) if $self->{on_select_preset}; -} - -sub add_options_page { - my $self = shift; - my ($title, $icon, %params) = @_; - - if ($icon) { - my $bitmap = Wx::Bitmap->new($Slic3r::var->($icon), wxBITMAP_TYPE_PNG); - $self->{icons}->Add($bitmap); - $self->{iconcount}++; - } - - my $page = Slic3r::GUI::PresetEditor::Page->new($self, $title, $self->{iconcount}); - $page->Hide; - $self->{sizer}->Add($page, 1, wxEXPAND | wxLEFT, 5); - push @{$self->{pages}}, $page; - return $page; -} - -sub reload_preset { - my ($self) = @_; - - $self->current_preset->load_config if !$self->current_preset->_loaded; - $self->config->clear; - $self->config->apply($self->current_preset->dirty_config); - $self->reload_config; -} - -sub reload_config { - my $self = shift; - - $_->reload_config for @{$self->{pages}}; -} - -sub update_tree { - my ($self) = @_; - - # get label of the currently selected item - my $selected = $self->{treectrl}->GetItemText($self->{treectrl}->GetSelection); - - my $rootItem = $self->{treectrl}->GetRootItem; - $self->{treectrl}->DeleteChildren($rootItem); - my $have_selection = 0; - foreach my $page (@{$self->{pages}}) { - my $itemId = $self->{treectrl}->AppendItem($rootItem, $page->{title}, $page->{iconID}); - if ($page->{title} eq $selected) { - $self->{disable_tree_sel_changed_event} = 1; - $self->{treectrl}->SelectItem($itemId); - $self->{disable_tree_sel_changed_event} = 0; - $have_selection = 1; - } - } - - if (!$have_selection) { - # this is triggered on first load, so we don't disable the sel change event - $self->{treectrl}->SelectItem($self->{treectrl}->GetFirstChild($rootItem)); - } -} - -sub load_presets { - my $self = shift; - - my $presets = wxTheApp->presets->{$self->name}; - $self->{presets_choice}->Clear; - foreach my $preset (@$presets) { - $self->{presets_choice}->Append($preset->dropdown_name); - - # Preserve selection. - if ($self->current_preset && $self->current_preset->name eq $preset->name) { - $self->{presets_choice}->SetSelection($self->{presets_choice}->GetCount-1); - } - } -} - -# This is called internally whenever we make automatic adjustments to configuration -# based on user actions. -sub _load_config { - my $self = shift; - my ($config) = @_; - - my $diff = $self->config->diff($config); - $self->config->set($_, $config->get($_)) for @$diff; - # First apply all changes, then call all the _on_value_change triggers. - $self->_on_value_change($_) for @$diff; - $self->reload_config; - $self->_update; -} - -sub get_field { - my ($self, $opt_key, $opt_index) = @_; - - foreach my $page (@{ $self->{pages} }) { - my $field = $page->get_field($opt_key, $opt_index); - return $field if defined $field; - } - return undef; -} - -sub set_value { - my $self = shift; - my ($opt_key, $value) = @_; - - my $changed = 0; - foreach my $page (@{ $self->{pages} }) { - $changed = 1 if $page->set_value($opt_key, $value); - } - return $changed; -} - -sub _compatible_printers_widget { - my ($self) = @_; - - return sub { - my ($parent) = @_; - - my $checkbox = $self->{compatible_printers_checkbox} = Wx::CheckBox->new($parent, -1, "All"); - - my $btn = $self->{compatible_printers_btn} = Wx::Button->new($parent, -1, "Set…", wxDefaultPosition, wxDefaultSize, - wxBU_LEFT | wxBU_EXACTFIT); - $btn->SetFont($Slic3r::GUI::small_font); - if ($Slic3r::GUI::have_button_icons) { - $btn->SetBitmap(Wx::Bitmap->new($Slic3r::var->("printer_empty.png"), wxBITMAP_TYPE_PNG)); - } - - my $sizer = Wx::BoxSizer->new(wxHORIZONTAL); - $sizer->Add($checkbox, 0, wxALIGN_CENTER_VERTICAL); - $sizer->Add($btn, 0, wxALIGN_CENTER_VERTICAL); - - EVT_CHECKBOX($self, $checkbox, sub { - if ($checkbox->GetValue) { - $btn->Disable; - } else { - $btn->Enable; - } - }); - - EVT_BUTTON($self, $btn, sub { - my @presets = map $_->name, grep !$_->default && !$_->external, - @{wxTheApp->presets->{printer}}; - - my $dlg = Wx::MultiChoiceDialog->new($self, - "Select the printers this profile is compatible with.", - "Compatible printers", \@presets); - - my @selections = (); - foreach my $preset_name (@{ $self->config->get('compatible_printers') }) { - push @selections, first { $presets[$_] eq $preset_name } 0..$#presets; - } - $dlg->SetSelections(@selections); - - if ($dlg->ShowModal == wxID_OK) { - my $value = [ @presets[$dlg->GetSelections] ]; - if (!@$value) { - $checkbox->SetValue(1); - $btn->Disable; - } - $self->config->set('compatible_printers', $value); - $self->_on_value_change('compatible_printers'); - } - }); - - return $sizer; - }; -} - -sub _reload_compatible_printers_widget { - my ($self) = @_; - - if (@{ $self->config->get('compatible_printers') }) { - $self->{compatible_printers_checkbox}->SetValue(0); - $self->{compatible_printers_btn}->Enable; - } else { - $self->{compatible_printers_checkbox}->SetValue(1); - $self->{compatible_printers_btn}->Disable; - } -} - -sub options { die "Unimplemented options()"; } -sub overridable_options { () } -sub overriding_options { () } - -package Slic3r::GUI::PresetEditor::Print; -use base 'Slic3r::GUI::PresetEditor'; - -use List::Util qw(first any); -use Wx qw(:icon :dialog :id :misc :button :sizer); -use Wx::Event qw(EVT_BUTTON EVT_CHECKLISTBOX); - -sub name { 'print' } -sub title { 'Print Settings' } - -sub options { - return qw( - layer_height first_layer_height - adaptive_slicing adaptive_slicing_quality match_horizontal_surfaces - perimeters spiral_vase - top_solid_layers bottom_solid_layers - extra_perimeters avoid_crossing_perimeters thin_walls overhangs - seam_position external_perimeters_first - fill_density fill_pattern top_infill_pattern bottom_infill_pattern fill_gaps - infill_every_layers infill_only_where_needed - solid_infill_every_layers fill_angle solid_infill_below_area - only_retract_when_crossing_perimeters infill_first - max_print_speed max_volumetric_speed - perimeter_speed small_perimeter_speed external_perimeter_speed infill_speed - solid_infill_speed top_solid_infill_speed support_material_speed - support_material_interface_speed bridge_speed gap_fill_speed - travel_speed - first_layer_speed - perimeter_acceleration infill_acceleration bridge_acceleration - first_layer_acceleration default_acceleration - skirts skirt_distance skirt_height min_skirt_length - brim_connections_width brim_width interior_brim_width - support_material support_material_threshold support_material_max_layers support_material_enforce_layers - raft_layers - support_material_pattern support_material_spacing support_material_angle - support_material_interface_layers support_material_interface_spacing - support_material_contact_distance support_material_buildplate_only dont_support_bridges - notes - complete_objects extruder_clearance_radius extruder_clearance_height - gcode_comments output_filename_format - post_process - perimeter_extruder infill_extruder solid_infill_extruder - support_material_extruder support_material_interface_extruder - ooze_prevention standby_temperature_delta - interface_shells regions_overlap - extrusion_width first_layer_extrusion_width perimeter_extrusion_width - external_perimeter_extrusion_width infill_extrusion_width solid_infill_extrusion_width - top_infill_extrusion_width support_material_extrusion_width - support_material_interface_extrusion_width infill_overlap bridge_flow_ratio - xy_size_compensation resolution shortcuts compatible_printers - print_settings_id - ) -} - -sub build { - my $self = shift; - - my $shortcuts_widget = sub { - my ($parent) = @_; - - my $Options = $Slic3r::Config::Options; - my %options = ( - map { $_ => sprintf('%s > %s', $Options->{$_}{category}, $Options->{$_}{full_label} // $Options->{$_}{label}) } - grep { exists $Options->{$_} && $Options->{$_}{category} } $self->options - ); - my @opt_keys = sort { $options{$a} cmp $options{$b} } keys %options; - $self->{shortcuts_opt_keys} = [ @opt_keys ]; - - my $listbox = $self->{shortcuts_list} = Wx::CheckListBox->new($parent, -1, - wxDefaultPosition, [-1, 320], [ map $options{$_}, @opt_keys ]); - - EVT_CHECKLISTBOX($self, $listbox, sub { - my $value = [ map $opt_keys[$_], grep $listbox->IsChecked($_), 0..$#opt_keys ]; - $self->config->set('shortcuts', $value); - $self->_on_value_change('shortcuts'); - }); - - my $sizer = Wx::BoxSizer->new(wxVERTICAL); - $sizer->Add($listbox, 0, wxEXPAND); - - return $sizer; - }; - - { - my $page = $self->add_options_page('Layers and perimeters', 'layers.png'); - { - my $optgroup = $page->new_optgroup('Layer height'); - $optgroup->append_single_option_line('layer_height'); - $optgroup->append_single_option_line('first_layer_height'); - $optgroup->append_single_option_line('adaptive_slicing'); - $optgroup->append_single_option_line('adaptive_slicing_quality'); - $optgroup->get_field('adaptive_slicing_quality')->set_scale(1); - $optgroup->append_single_option_line('match_horizontal_surfaces'); - } - { - my $optgroup = $page->new_optgroup('Vertical shells'); - $optgroup->append_single_option_line('perimeters'); - $optgroup->append_single_option_line('spiral_vase'); - } - { - my $optgroup = $page->new_optgroup('Horizontal shells'); - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Solid layers', - ); - $line->append_option($optgroup->get_option('top_solid_layers')); - $line->append_option($optgroup->get_option('bottom_solid_layers')); - $optgroup->append_line($line); - } - { - my $optgroup = $page->new_optgroup('Quality (slower slicing)'); - $optgroup->append_single_option_line('extra_perimeters'); - $optgroup->append_single_option_line('avoid_crossing_perimeters'); - $optgroup->append_single_option_line('thin_walls'); - $optgroup->append_single_option_line('overhangs'); - } - { - my $optgroup = $page->new_optgroup('Advanced'); - $optgroup->append_single_option_line('seam_position'); - $optgroup->append_single_option_line('external_perimeters_first'); - } - } - - { - my $page = $self->add_options_page('Infill', 'infill.png'); - { - my $optgroup = $page->new_optgroup('Infill'); - $optgroup->append_single_option_line('fill_density'); - $optgroup->append_single_option_line('fill_pattern'); - { - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'External infill pattern', - ); - $line->append_option($optgroup->get_option('top_infill_pattern')); - $line->append_option($optgroup->get_option('bottom_infill_pattern')); - $optgroup->append_line($line); - } - } - { - my $optgroup = $page->new_optgroup('Reducing printing time'); - $optgroup->append_single_option_line('infill_every_layers'); - $optgroup->append_single_option_line('infill_only_where_needed'); - } - { - my $optgroup = $page->new_optgroup('Advanced'); - $optgroup->append_single_option_line('fill_gaps'); - $optgroup->append_single_option_line('solid_infill_every_layers'); - $optgroup->append_single_option_line('fill_angle'); - $optgroup->append_single_option_line('solid_infill_below_area'); - $optgroup->append_single_option_line('only_retract_when_crossing_perimeters'); - $optgroup->append_single_option_line('infill_first'); - } - } - - { - my $page = $self->add_options_page('Skirt and brim', 'box.png'); - { - my $optgroup = $page->new_optgroup('Skirt'); - $optgroup->append_single_option_line('skirts'); - $optgroup->append_single_option_line('skirt_distance'); - $optgroup->append_single_option_line('skirt_height'); - $optgroup->append_single_option_line('min_skirt_length'); - } - { - my $optgroup = $page->new_optgroup('Brim'); - $optgroup->append_single_option_line('brim_width'); - $optgroup->append_single_option_line('interior_brim_width'); - $optgroup->append_single_option_line('brim_connections_width'); - } - } - - { - my $page = $self->add_options_page('Support material', 'building.png'); - { - my $optgroup = $page->new_optgroup('Support material'); - $optgroup->append_single_option_line('support_material'); - $optgroup->append_single_option_line('support_material_threshold'); - $optgroup->append_single_option_line('support_material_max_layers'); - $optgroup->append_single_option_line('support_material_enforce_layers'); - } - { - my $optgroup = $page->new_optgroup('Raft'); - $optgroup->append_single_option_line('raft_layers'); - } - { - my $optgroup = $page->new_optgroup('Options for support material and raft'); - $optgroup->append_single_option_line('support_material_contact_distance'); - $optgroup->append_single_option_line('support_material_pattern'); - $optgroup->append_single_option_line('support_material_spacing'); - $optgroup->append_single_option_line('support_material_angle'); - $optgroup->append_single_option_line('support_material_interface_layers'); - $optgroup->append_single_option_line('support_material_interface_spacing'); - $optgroup->append_single_option_line('support_material_buildplate_only'); - $optgroup->append_single_option_line('dont_support_bridges'); - } - } - - { - my $page = $self->add_options_page('Speed', 'time.png'); - { - my $optgroup = $page->new_optgroup('Speed for print moves'); - $optgroup->append_single_option_line($_, undef, width => 100) - for qw(perimeter_speed small_perimeter_speed external_perimeter_speed - infill_speed solid_infill_speed top_solid_infill_speed - gap_fill_speed bridge_speed - support_material_speed support_material_interface_speed - ); - } - { - my $optgroup = $page->new_optgroup('Speed for non-print moves'); - $optgroup->append_single_option_line('travel_speed'); - } - { - my $optgroup = $page->new_optgroup('Modifiers'); - $optgroup->append_single_option_line('first_layer_speed'); - } - { - my $optgroup = $page->new_optgroup('Acceleration control (advanced)'); - $optgroup->append_single_option_line('perimeter_acceleration'); - $optgroup->append_single_option_line('infill_acceleration'); - $optgroup->append_single_option_line('bridge_acceleration'); - $optgroup->append_single_option_line('first_layer_acceleration'); - $optgroup->append_single_option_line('default_acceleration'); - } - { - my $optgroup = $page->new_optgroup('Autospeed (advanced)'); - $optgroup->append_single_option_line('max_print_speed'); - $optgroup->append_single_option_line('max_volumetric_speed'); - } - } - - { - my $page = $self->add_options_page('Multiple extruders', 'funnel.png'); - { - my $optgroup = $page->new_optgroup('Extruders'); - $optgroup->append_single_option_line('perimeter_extruder'); - $optgroup->append_single_option_line('infill_extruder'); - $optgroup->append_single_option_line('solid_infill_extruder'); - $optgroup->append_single_option_line('support_material_extruder'); - $optgroup->append_single_option_line('support_material_interface_extruder'); - } - { - my $optgroup = $page->new_optgroup('Ooze prevention'); - $optgroup->append_single_option_line('ooze_prevention'); - $optgroup->append_single_option_line('standby_temperature_delta'); - } - { - my $optgroup = $page->new_optgroup('Advanced'); - $optgroup->append_single_option_line('regions_overlap'); - $optgroup->append_single_option_line('interface_shells'); - } - } - - { - my $page = $self->add_options_page('Advanced', 'wand.png'); - { - my $optgroup = $page->new_optgroup('Extrusion width', - label_width => 180, - ); - $optgroup->append_single_option_line($_, undef, width => 100) - for qw(extrusion_width first_layer_extrusion_width - perimeter_extrusion_width external_perimeter_extrusion_width - infill_extrusion_width solid_infill_extrusion_width - top_infill_extrusion_width support_material_interface_extrusion_width - support_material_extrusion_width); - } - { - my $optgroup = $page->new_optgroup('Overlap'); - $optgroup->append_single_option_line('infill_overlap'); - } - { - my $optgroup = $page->new_optgroup('Flow'); - $optgroup->append_single_option_line('bridge_flow_ratio'); - } - { - my $optgroup = $page->new_optgroup('Other'); - $optgroup->append_single_option_line('xy_size_compensation'); - $optgroup->append_single_option_line('resolution'); - } - } - - { - my $page = $self->add_options_page('Output options', 'page_white_go.png'); - { - my $optgroup = $page->new_optgroup('Sequential printing'); - $optgroup->append_single_option_line('complete_objects'); - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Extruder clearance (mm)', - ); - foreach my $opt_key (qw(extruder_clearance_radius extruder_clearance_height)) { - my $option = $optgroup->get_option($opt_key); - $option->width(60); - $line->append_option($option); - } - $optgroup->append_line($line); - } - { - my $optgroup = $page->new_optgroup('Output file'); - $optgroup->append_single_option_line('gcode_comments'); - - { - my $option = $optgroup->get_option('output_filename_format'); - $option->full_width(1); - $optgroup->append_single_option_line($option); - } - } - { - my $optgroup = $page->new_optgroup('Post-processing scripts', - label_width => 0, - ); - my $option = $optgroup->get_option('post_process'); - $option->full_width(1); - $option->height(50); - $optgroup->append_single_option_line($option); - } - } - - { - my $page = $self->add_options_page('Notes', 'note.png'); - { - my $optgroup = $page->new_optgroup('Notes', - label_width => 0, - ); - my $option = $optgroup->get_option('notes'); - $option->full_width(1); - $option->height(250); - $optgroup->append_single_option_line($option); - } - } - - { - my $page = $self->add_options_page('Shortcuts', 'wrench.png'); - { - my $optgroup = $page->new_optgroup('Profile preferences'); - { - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Compatible printers', - widget => $self->_compatible_printers_widget, - ); - $optgroup->append_line($line); - } - } - { - my $optgroup = $page->new_optgroup('Show shortcuts for the following settings'); - { - my $line = Slic3r::GUI::OptionsGroup::Line->new( - widget => $shortcuts_widget, - full_width => 1, - ); - $optgroup->append_line($line); - } - } - } -} - -sub reload_config { - my ($self) = @_; - - $self->_reload_compatible_printers_widget; - - { - my %shortcuts = map { $_ => 1 } @{ $self->config->get('shortcuts') }; - for my $i (0..$#{$self->{shortcuts_opt_keys}}) { - $self->{shortcuts_list}->Check($i, $shortcuts{ $self->{shortcuts_opt_keys}[$i] }); - } - } - - $self->SUPER::reload_config; -} - -sub _update { - my ($self, $key) = @_; - my $opt_key = $key; - $opt_key = "all_keys" if (length($key // '') == 0); - my $config = $self->{config}; - if (any { /$opt_key/ } qw(all_keys spiral_vase perimeters top_solid_layers fill_density support_material)) { - if ($config->spiral_vase && !($config->perimeters == 1 && $config->top_solid_layers == 0 && $config->fill_density == 0 && $config->support_material == 0)) { - my $dialog = Wx::MessageDialog->new($self, - "The Spiral Vase mode requires:\n" - . "- one perimeter\n" - . "- no top solid layers\n" - . "- 0% fill density\n" - . "- no support material\n" - . "\nShall I adjust those settings in order to enable Spiral Vase?", - 'Spiral Vase', wxICON_WARNING | wxYES | wxNO); - if ($dialog->ShowModal() == wxID_YES) { - my $new_conf = Slic3r::Config->new; - $new_conf->set("perimeters", 1); - $new_conf->set("top_solid_layers", 0); - $new_conf->set("fill_density", 0); - $new_conf->set("support_material", 0); - $self->_load_config($new_conf); - } else { - my $new_conf = Slic3r::Config->new; - $new_conf->set("spiral_vase", 0); - $self->_load_config($new_conf); - } - } - } - - if (any { /$opt_key/ } qw(all_keys support_material)) { - if ($config->support_material) { - # Ask only once. - if (! $self->{support_material_overhangs_queried}) { - $self->{support_material_overhangs_queried} = 1; - if ($config->overhangs != 1) { - my $dialog = Wx::MessageDialog->new($self, - "Supports work better, if the following feature is enabled:\n" - . "- Detect bridging perimeters\n" - . "\nShall I adjust those settings for supports?", - 'Support Generator', wxICON_WARNING | wxYES | wxNO | wxCANCEL); - my $answer = $dialog->ShowModal(); - my $new_conf = Slic3r::Config->new; - if ($answer == wxID_YES) { - # Enable "detect bridging perimeters". - $new_conf->set("overhangs", 1); - } elsif ($answer == wxID_NO) { - # Do nothing, leave supports on and "detect bridging perimeters" off. - } elsif ($answer == wxID_CANCEL) { - # Disable supports. - $new_conf->set("support_material", 0); - $self->{support_material_overhangs_queried} = 0; - } - $self->_load_config($new_conf); - } - } - } else { - $self->{support_material_overhangs_queried} = 0; - } - } - - if (any { /$opt_key/ } qw(all_keys fill_density fill_pattern top_infill_pattern)) { - if ($config->fill_density == 100 - && !first { $_ eq $config->fill_pattern } @{$Slic3r::Config::Options->{top_infill_pattern}{values}}) { - my $dialog = Wx::MessageDialog->new($self, - "The " . $config->fill_pattern . " infill pattern is not supposed to work at 100% density.\n" - . "\nShall I switch to rectilinear fill pattern?", - 'Infill', wxICON_WARNING | wxYES | wxNO); - - my $new_conf = Slic3r::Config->new; - if ($dialog->ShowModal() == wxID_YES) { - $new_conf->set("fill_pattern", 'rectilinear'); - } else { - $new_conf->set("fill_density", 40); - } - $self->_load_config($new_conf); - } - } - - - my $have_perimeters = $config->perimeters > 0; - if (any { /$opt_key/ } qw(all_keys perimeters)) { - $self->get_field($_)->toggle($have_perimeters) - for qw(extra_perimeters thin_walls overhangs seam_position external_perimeters_first - external_perimeter_extrusion_width - perimeter_speed small_perimeter_speed external_perimeter_speed); - } - - my $have_adaptive_slicing = $config->adaptive_slicing; - if (any { /$opt_key/ } qw(all_keys adaptive_slicing)) { - $self->get_field($_)->toggle($have_adaptive_slicing) - for qw(adaptive_slicing_quality match_horizontal_surfaces); - $self->get_field($_)->toggle(!$have_adaptive_slicing) - for qw(layer_height); - } - - my $have_infill = $config->fill_density > 0; - if (any { /$opt_key/ } qw(all_keys fill_density)) { - # infill_extruder uses the same logic as in Print::extruders() - $self->get_field($_)->toggle($have_infill) - for qw(fill_pattern infill_every_layers infill_only_where_needed solid_infill_every_layers - solid_infill_below_area infill_extruder); - } - - my $have_solid_infill = ($config->top_solid_layers > 0) || ($config->bottom_solid_layers > 0); - if (any { /$opt_key/ } qw(all_keys top_solid_layers bottom_solid_layers)) { - # solid_infill_extruder uses the same logic as in Print::extruders() - $self->get_field($_)->toggle($have_solid_infill) - for qw(top_infill_pattern bottom_infill_pattern infill_first solid_infill_extruder - solid_infill_extrusion_width solid_infill_speed); - } - - if (any { /$opt_key/ } qw(all_keys top_solid_layers bottom_solid_layers fill_density)) { - $self->get_field($_)->toggle($have_infill || $have_solid_infill) - for qw(fill_angle infill_extrusion_width infill_speed bridge_speed); - } - - if (any { /$opt_key/ } qw(all_keys fill_density perimeters)) { - $self->get_field('fill_gaps')->toggle($have_perimeters && $have_infill); - $self->get_field('gap_fill_speed')->toggle($have_perimeters && $have_infill && $config->fill_gaps); - } - - my $have_top_solid_infill = $config->top_solid_layers > 0; - $self->get_field($_)->toggle($have_top_solid_infill) - for qw(top_infill_extrusion_width top_solid_infill_speed); - - my $have_autospeed = any { $config->get("${_}_speed") eq '0' } - qw(perimeter external_perimeter small_perimeter - infill solid_infill top_solid_infill gap_fill support_material - support_material_interface); - $self->get_field('max_print_speed')->toggle($have_autospeed); - - my $have_default_acceleration = $config->default_acceleration > 0; - $self->get_field($_)->toggle($have_default_acceleration) - for qw(perimeter_acceleration infill_acceleration bridge_acceleration first_layer_acceleration); - - my $have_skirt = $config->skirts > 0 || $config->min_skirt_length > 0; - $self->get_field($_)->toggle($have_skirt) - for qw(skirt_distance skirt_height); - - my $have_brim = $config->brim_width > 0 || $config->interior_brim_width - || $config->brim_connections_width; - # perimeter_extruder uses the same logic as in Print::extruders() - $self->get_field('perimeter_extruder')->toggle($have_perimeters || $have_brim); - - my $have_support_material = $config->support_material || $config->raft_layers > 0; - my $have_support_interface = $config->support_material_interface_layers > 0; - $self->get_field($_)->toggle($have_support_material) - for qw(support_material_threshold support_material_pattern - support_material_spacing support_material_angle - support_material_interface_layers dont_support_bridges - support_material_extrusion_width support_material_interface_extrusion_width - support_material_contact_distance); - - # Disable features that need support to be enabled. - $self->get_field($_)->toggle($config->support_material) - for qw(support_material_max_layers); - - $self->get_field($_)->toggle($have_support_material && $have_support_interface) - for qw(support_material_interface_spacing support_material_interface_extruder - support_material_interface_speed); - - $self->get_field('perimeter_extrusion_width')->toggle($have_perimeters || $have_skirt || $have_brim); - $self->get_field('support_material_extruder')->toggle($have_support_material || $have_skirt); - $self->get_field('support_material_speed')->toggle($have_support_material || $have_brim || $have_skirt); - - my $have_sequential_printing = $config->complete_objects; - $self->get_field($_)->toggle($have_sequential_printing) - for qw(extruder_clearance_radius extruder_clearance_height); - - my $have_ooze_prevention = $config->ooze_prevention; - $self->get_field($_)->toggle($have_ooze_prevention) - for qw(standby_temperature_delta); -} - -package Slic3r::GUI::PresetEditor::Filament; -use base 'Slic3r::GUI::PresetEditor'; - -use Wx qw(wxTheApp); - -sub name { 'filament' } -sub title { 'Filament Settings' } - -sub options { - return qw( - filament_colour filament_diameter filament_notes filament_max_volumetric_speed extrusion_multiplier filament_density filament_cost - temperature first_layer_temperature bed_temperature first_layer_bed_temperature - fan_always_on cooling compatible_printers - min_fan_speed max_fan_speed bridge_fan_speed disable_fan_first_layers - fan_below_layer_time slowdown_below_layer_time min_print_speed - start_filament_gcode end_filament_gcode - filament_settings_id - ); -} - -sub overriding_options { - return ( - Slic3r::GUI::PresetEditor::Printer->overridable_options, - ); -} - -sub build { - my $self = shift; - - { - my $page = $self->add_options_page('Filament', 'spool.png'); - { - my $optgroup = $page->new_optgroup('Filament'); - $optgroup->append_single_option_line('filament_colour', 0); - $optgroup->append_single_option_line('filament_diameter', 0); - $optgroup->append_single_option_line('extrusion_multiplier', 0); - } - { - my $optgroup = $page->new_optgroup('Temperature (°C)'); - - { - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Extruder', - ); - $line->append_option($optgroup->get_option('first_layer_temperature', 0)); - $line->append_option($optgroup->get_option('temperature', 0)); - $optgroup->append_line($line); - } - - { - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Bed', - ); - $line->append_option($optgroup->get_option('first_layer_bed_temperature')); - $line->append_option($optgroup->get_option('bed_temperature')); - $optgroup->append_line($line); - } - } - { - my $optgroup = $page->new_optgroup('Optional information'); - $optgroup->append_single_option_line('filament_density', 0); - $optgroup->append_single_option_line('filament_cost', 0); - } - } - - { - my $page = $self->add_options_page('Cooling', 'hourglass.png'); - { - my $optgroup = $page->new_optgroup('Enable'); - $optgroup->append_single_option_line('fan_always_on'); - $optgroup->append_single_option_line('cooling'); - - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => '', - full_width => 1, - widget => sub { - my ($parent) = @_; - return $self->{description_line} = Slic3r::GUI::OptionsGroup::StaticText->new($parent); - }, - ); - $optgroup->append_line($line); - } - { - my $optgroup = $page->new_optgroup('Fan settings'); - - { - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Fan speed', - ); - $line->append_option($optgroup->get_option('min_fan_speed')); - $line->append_option($optgroup->get_option('max_fan_speed')); - $optgroup->append_line($line); - } - - $optgroup->append_single_option_line('bridge_fan_speed'); - $optgroup->append_single_option_line('disable_fan_first_layers'); - } - { - my $optgroup = $page->new_optgroup('Cooling thresholds', - label_width => 250, - ); - $optgroup->append_single_option_line('fan_below_layer_time'); - $optgroup->append_single_option_line('slowdown_below_layer_time'); - $optgroup->append_single_option_line('min_print_speed'); - } - } - { - my $page = $self->add_options_page('Custom G-code', 'script.png'); - { - my $optgroup = $page->new_optgroup('Start G-code', - label_width => 0, - ); - my $option = $optgroup->get_option('start_filament_gcode', 0); - $option->full_width(1); - $option->height(150); - $optgroup->append_single_option_line($option); - } - { - my $optgroup = $page->new_optgroup('End G-code', - label_width => 0, - ); - my $option = $optgroup->get_option('end_filament_gcode', 0); - $option->full_width(1); - $option->height(150); - $optgroup->append_single_option_line($option); - } - } - - { - my $page = $self->add_options_page('Notes', 'note.png'); - { - my $optgroup = $page->new_optgroup('Notes', - label_width => 0, - ); - my $option = $optgroup->get_option('filament_notes', 0); - $option->full_width(1); - $option->height(250); - $optgroup->append_single_option_line($option); - } - } - - { - my $page = $self->add_options_page('Overrides', 'wrench.png'); - { - my $optgroup = $page->new_optgroup('Profile preferences'); - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Compatible printers', - widget => $self->_compatible_printers_widget, - ); - $optgroup->append_line($line); - } - { - my $optgroup = $page->new_optgroup('Overrides'); - $optgroup->append_single_option_line('filament_max_volumetric_speed', 0); - - # Populate the overrides config. - my @overridable = $self->overriding_options; - $self->{overrides_config} = Slic3r::Config->new; - - # Populate the defaults with the current preset. - $self->{overrides_default_config} = Slic3r::Config->new; - $self->{overrides_default_config}->apply_only - (wxTheApp->{mainframe}->{plater}->config, \@overridable); - - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => '', - full_width => 1, - widget => sub { - my ($parent) = @_; - - $self->{overrides_panel} = my $panel = Slic3r::GUI::Plater::OverrideSettingsPanel->new($parent, - size => [-1, 300], - on_change => sub { - my ($opt_key) = @_; - $self->config->erase($_) for @overridable; - $self->current_preset->_dirty_config->erase($_) for @overridable; - $self->config->apply($self->{overrides_config}); - $self->_on_value_change($opt_key); - }); - $panel->set_editable(1); - $panel->set_default_config($self->{overrides_default_config}); - $panel->set_config($self->{overrides_config}); - $panel->set_opt_keys([@overridable]); - - return $panel; - }, - ); - $optgroup->append_line($line); - } - } -} - -sub reload_config { - my ($self) = @_; - - $self->_reload_compatible_printers_widget; - - { - $self->{overrides_config}->clear; - foreach my $opt_key (@{$self->{overrides_default_config}->get_keys}) { - if ($self->config->has($opt_key)) { - $self->{overrides_config}->set($opt_key, $self->config->get($opt_key)); - } - } - $self->{overrides_panel}->update_optgroup; - } - - $self->SUPER::reload_config; -} - -sub _update { - my ($self) = @_; - - $self->_update_description; - - my $cooling = $self->{config}->cooling; - $self->get_field($_)->toggle($cooling) - for qw(max_fan_speed fan_below_layer_time slowdown_below_layer_time min_print_speed); - $self->get_field($_)->toggle($cooling || $self->{config}->fan_always_on) - for qw(min_fan_speed disable_fan_first_layers); -} - -sub _update_description { - my $self = shift; - - my $config = $self->config; - - my $msg = ""; - my $fan_other_layers = $config->fan_always_on - ? sprintf "will always run at %d%%%s.", $config->min_fan_speed, - ($config->disable_fan_first_layers > 1 - ? " except for the first " . $config->disable_fan_first_layers . " layers" - : $config->disable_fan_first_layers == 1 - ? " except for the first layer" - : "") - : "will be turned off."; - - if ($config->cooling) { - $msg = sprintf "If estimated layer time is below ~%ds, fan will run at %d%% and print speed will be reduced so that no less than %ds are spent on that layer (however, speed will never be reduced below %dmm/s).", - $config->slowdown_below_layer_time, $config->max_fan_speed, $config->slowdown_below_layer_time, $config->min_print_speed; - if ($config->fan_below_layer_time > $config->slowdown_below_layer_time) { - $msg .= sprintf "\nIf estimated layer time is greater, but still below ~%ds, fan will run at a proportionally decreasing speed between %d%% and %d%%.", - $config->fan_below_layer_time, $config->max_fan_speed, $config->min_fan_speed; - } - $msg .= "\nDuring the other layers, fan $fan_other_layers" - } else { - $msg = "Fan $fan_other_layers"; - } - $self->{description_line}->SetText($msg); -} - -package Slic3r::GUI::PresetEditor::Printer; -use base 'Slic3r::GUI::PresetEditor'; -use Wx qw(wxTheApp :sizer :button :bitmap :misc :id :icon :dialog); -use Wx::Event qw(EVT_BUTTON); - -sub name { 'printer' } -sub title { 'Printer Settings' } - -sub options { - return qw( - bed_shape z_offset z_steps_per_mm has_heatbed - gcode_flavor use_relative_e_distances - serial_port serial_speed - host_type print_host octoprint_apikey - use_firmware_retraction pressure_advance vibration_limit - use_volumetric_e - start_gcode end_gcode before_layer_gcode layer_gcode toolchange_gcode between_objects_gcode - nozzle_diameter extruder_offset min_layer_height max_layer_height - retract_length retract_lift retract_speed retract_restart_extra retract_before_travel retract_layer_change wipe - retract_length_toolchange retract_restart_extra_toolchange retract_lift_above retract_lift_below - printer_settings_id - printer_notes - use_set_and_wait_bed use_set_and_wait_extruder - ); -} - -sub overridable_options { - return qw( - pressure_advance - retract_length retract_lift retract_speed retract_restart_extra - retract_before_travel retract_layer_change wipe - ); -} - -sub build { - my $self = shift; - - $self->{extruders_count} = 1; - - { - my $page = $self->add_options_page('General', 'printer_empty.png'); - { - my $optgroup = $page->new_optgroup('Size and coordinates'); - - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Bed shape', - ); - $line->append_button("Set…", "cog.png", sub { - my $dlg = Slic3r::GUI::BedShapeDialog->new($self, $self->config->bed_shape); - if ($dlg->ShowModal == wxID_OK) { - my $value = $dlg->GetValue; - $self->config->set('bed_shape', $value); - $self->_on_value_change('bed_shape'); - } - }); - $optgroup->append_line($line); - - $optgroup->append_single_option_line('z_offset'); - } - { - my $optgroup = $page->new_optgroup('Capabilities'); - { - my $option = Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'extruders_count', - type => 'i', - default => 1, - label => 'Extruders', - tooltip => 'Number of extruders of the printer.', - min => 1, - ); - $optgroup->append_single_option_line($option); - } - $optgroup->append_single_option_line('has_heatbed'); - $optgroup->on_change(sub { - my ($opt_id) = @_; - if ($opt_id eq 'extruders_count') { - wxTheApp->CallAfter(sub { - $self->_extruders_count_changed($optgroup->get_value('extruders_count')); - }); - } else { - wxTheApp->CallAfter(sub { - $self->_on_value_change($opt_id); - }); - } - }); - } - { - my $optgroup = $page->new_optgroup('USB/Serial connection'); - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Serial port', - ); - my $serial_port = $optgroup->get_option('serial_port'); - $serial_port->side_widget(sub { - my ($parent) = @_; - - my $btn = Wx::BitmapButton->new($parent, -1, Wx::Bitmap->new($Slic3r::var->("arrow_rotate_clockwise.png"), wxBITMAP_TYPE_PNG), - wxDefaultPosition, wxDefaultSize, &Wx::wxBORDER_NONE); - $btn->SetToolTipString("Rescan serial ports") - if $btn->can('SetToolTipString'); - EVT_BUTTON($self, $btn, \&_update_serial_ports); - - return $btn; - }); - $line->append_option($serial_port); - $line->append_option($optgroup->get_option('serial_speed')); - $line->append_button("Test", "wrench.png", sub { - my $sender = Slic3r::GCode::Sender->new; - my $res = $sender->connect( - $self->config->serial_port, - $self->config->serial_speed, - ); - if ($res && $sender->wait_connected) { - Slic3r::GUI::show_info($self, "Connection to printer works correctly.", "Success!"); - } else { - Slic3r::GUI::show_error($self, "Connection failed."); - } - }, \$self->{serial_test_btn}); - $optgroup->append_line($line); - } - { - my $optgroup = $page->new_optgroup('Print server upload'); - - $optgroup->append_single_option_line('host_type'); - - my $host_line = $optgroup->create_single_option_line('print_host'); - $host_line->append_button("Browse…", "zoom.png", sub { - # look for devices - my $entries; - { - my $res = Net::Bonjour->new('octoprint'); - $res->discover; - $entries = [ $res->entries ]; - } - if (@{$entries}) { - my $dlg = Slic3r::GUI::BonjourBrowser->new($self, $entries); - if ($dlg->ShowModal == wxID_OK) { - my $value = $dlg->GetValue . ":" . $dlg->GetPort; - $self->config->set('print_host', $value); - $self->_on_value_change('print_host'); - } - } else { - Wx::MessageDialog->new($self, 'No Bonjour device found', 'Device Browser', wxOK | wxICON_INFORMATION)->ShowModal; - } - }, \$self->{print_host_browse_btn}, !eval "use Net::Bonjour; 1"); - $host_line->append_button("Test", "wrench.png", sub { - my $ua = LWP::UserAgent->new; - $ua->timeout(10); - - my $res = $ua->get( - "http://" . $self->config->print_host . "/api/version", - 'X-Api-Key' => $self->config->octoprint_apikey, - ); - if ($res->is_success) { - Slic3r::GUI::show_info($self, "Connection to OctoPrint works correctly.", "Success!"); - } else { - Slic3r::GUI::show_error($self, - "I wasn't able to connect to OctoPrint (" . $res->status_line . "). " - . "Check hostname and OctoPrint version (at least 1.1.0 is required)."); - } - }, \$self->{print_host_test_btn}); - $optgroup->append_line($host_line); - $optgroup->append_single_option_line('octoprint_apikey'); - } - { - my $optgroup = $page->new_optgroup('Firmware'); - $optgroup->append_single_option_line('gcode_flavor'); - } - { - my $optgroup = $page->new_optgroup('Advanced'); - $optgroup->append_single_option_line('use_relative_e_distances'); - $optgroup->append_single_option_line('use_firmware_retraction'); - $optgroup->append_single_option_line('use_volumetric_e'); - $optgroup->append_single_option_line('pressure_advance'); - $optgroup->append_single_option_line('vibration_limit'); - $optgroup->append_single_option_line('z_steps_per_mm'); - $optgroup->append_single_option_line('use_set_and_wait_extruder'); - $optgroup->append_single_option_line('use_set_and_wait_bed'); - } - } - { - my $page = $self->add_options_page('Custom G-code', 'script.png'); - { - my $optgroup = $page->new_optgroup('Start G-code', - label_width => 0, - ); - my $option = $optgroup->get_option('start_gcode'); - $option->full_width(1); - $option->height(150); - $optgroup->append_single_option_line($option); - } - { - my $optgroup = $page->new_optgroup('End G-code', - label_width => 0, - ); - my $option = $optgroup->get_option('end_gcode'); - $option->full_width(1); - $option->height(150); - $optgroup->append_single_option_line($option); - } - { - my $optgroup = $page->new_optgroup('Before layer change G-code', - label_width => 0, - ); - my $option = $optgroup->get_option('before_layer_gcode'); - $option->full_width(1); - $option->height(150); - $optgroup->append_single_option_line($option); - } - { - my $optgroup = $page->new_optgroup('After layer change G-code', - label_width => 0, - ); - my $option = $optgroup->get_option('layer_gcode'); - $option->full_width(1); - $option->height(150); - $optgroup->append_single_option_line($option); - } - { - my $optgroup = $page->new_optgroup('Tool change G-code', - label_width => 0, - ); - my $option = $optgroup->get_option('toolchange_gcode'); - $option->full_width(1); - $option->height(150); - $optgroup->append_single_option_line($option); - } - { - my $optgroup = $page->new_optgroup('Between objects G-code (for sequential printing)', - label_width => 0, - ); - my $option = $optgroup->get_option('between_objects_gcode'); - $option->full_width(1); - $option->height(150); - $optgroup->append_single_option_line($option); - } - } - - $self->{extruder_pages} = []; - $self->_build_extruder_pages; - { - my $page = $self->add_options_page('Notes', 'note.png'); - { - my $optgroup = $page->new_optgroup('Notes', - label_width => 0, - ); - my $option = $optgroup->get_option('printer_notes'); - $option->full_width(1); - $option->height(250); - $optgroup->append_single_option_line($option); - } - } - $self->_update_serial_ports; -} - -sub _update_serial_ports { - my ($self) = @_; - - $self->get_field('serial_port')->set_values([ wxTheApp->scan_serial_ports ]); -} - -sub _extruders_count_changed { - my ($self, $extruders_count) = @_; - - $self->{extruders_count} = $extruders_count; - $self->_build_extruder_pages; - $self->_on_value_change('extruders_count'); - $self->_update; -} - -sub _extruder_options { qw(nozzle_diameter min_layer_height max_layer_height extruder_offset retract_length retract_lift retract_lift_above retract_lift_below retract_speed retract_restart_extra retract_before_travel wipe - retract_layer_change retract_length_toolchange retract_restart_extra_toolchange) } - -sub _build_extruder_pages { - my $self = shift; - - my $default_config = Slic3r::Config::Full->new; - - foreach my $extruder_idx (@{$self->{extruder_pages}} .. $self->{extruders_count}-1) { - # extend options - foreach my $opt_key ($self->_extruder_options) { - my $values = $self->config->get($opt_key); - if (!defined $values) { - $values = [ $default_config->get_at($opt_key, 0) ]; - } else { - # use last extruder's settings for the new one - my $last_value = $values->[-1]; - $values->[$extruder_idx] //= $last_value; - } - $self->config->set($opt_key, $values) - or die "Unable to extend $opt_key"; - } - - # build page - my $page = $self->{extruder_pages}[$extruder_idx] = $self->add_options_page("Extruder " . ($extruder_idx + 1), 'funnel.png'); - { - my $optgroup = $page->new_optgroup('Size'); - $optgroup->append_single_option_line('nozzle_diameter', $extruder_idx); - } - { - my $optgroup = $page->new_optgroup('Limits'); - $optgroup->append_single_option_line($_, $extruder_idx) - for qw(min_layer_height max_layer_height); - } - { - my $optgroup = $page->new_optgroup('Position (for multi-extruder printers)'); - $optgroup->append_single_option_line('extruder_offset', $extruder_idx); - } - { - my $optgroup = $page->new_optgroup('Retraction'); - $optgroup->append_single_option_line($_, $extruder_idx) - for qw(retract_length retract_lift); - - { - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Only lift Z', - ); - $line->append_option($optgroup->get_option('retract_lift_above', $extruder_idx)); - $line->append_option($optgroup->get_option('retract_lift_below', $extruder_idx)); - $optgroup->append_line($line); - } - - $optgroup->append_single_option_line($_, $extruder_idx) - for qw(retract_speed retract_restart_extra retract_before_travel retract_layer_change wipe); - } - { - my $optgroup = $page->new_optgroup('Retraction when tool is disabled (advanced settings for multi-extruder setups)'); - $optgroup->append_single_option_line($_, $extruder_idx) - for qw(retract_length_toolchange retract_restart_extra_toolchange); - } - } - - # remove extra pages - if ($self->{extruders_count} <= $#{$self->{extruder_pages}}) { - $_->Destroy for @{$self->{extruder_pages}}[$self->{extruders_count}..$#{$self->{extruder_pages}}]; - splice @{$self->{extruder_pages}}, $self->{extruders_count}; - } - - # remove extra config values - foreach my $opt_key ($self->_extruder_options) { - my $values = $self->config->get($opt_key); - splice @$values, $self->{extruders_count} if $self->{extruders_count} <= $#$values; - $self->config->set($opt_key, $values) - or die "Unable to truncate $opt_key"; - } - - # rebuild page list - @{$self->{pages}} = ( - (grep $_->{title} !~ /^Extruder \d+/, @{$self->{pages}}), - @{$self->{extruder_pages}}[ 0 .. $self->{extruders_count}-1 ], - ); - $self->update_tree; -} - -sub _update { - my ($self) = @_; - - my $config = $self->{config}; - - my $serial_speed = $self->get_field('serial_speed'); - if ($serial_speed) { - $self->get_field('serial_speed')->toggle($config->get('serial_port')); - if ($config->get('serial_speed') && $config->get('serial_port')) { - $self->{serial_test_btn}->Enable; - } else { - $self->{serial_test_btn}->Disable; - } - } - if (($config->get('host_type') eq 'octoprint')) { - $self->{print_host_browse_btn}->Enable; - }else{ - $self->{print_host_browse_btn}->Disable; - } - if (($config->get('host_type') eq 'octoprint') && eval "use LWP::UserAgent; 1") { - $self->{print_host_test_btn}->Enable; - } else { - $self->{print_host_test_btn}->Disable; - } - $self->get_field('octoprint_apikey')->toggle($config->get('print_host')); - - my $have_multiple_extruders = $self->{extruders_count} > 1; - $self->get_field('toolchange_gcode')->toggle($have_multiple_extruders); - - for my $i (0 .. ($self->{extruders_count}-1)) { - my $have_retract_length = $config->get_at('retract_length', $i) > 0; - - # when using firmware retraction, firmware decides retraction length - $self->get_field('retract_length', $i)->toggle(!$config->use_firmware_retraction); - if ($config->use_firmware_retraction && - ($config->gcode_flavor eq 'reprap' || $config->gcode_flavor eq 'repetier') && - ($config->get_at('retract_length_toolchange', $i) > 0 || $config->get_at('retract_restart_extra_toolchange', $i) > 0)) { - my $dialog = Wx::MessageDialog->new($self, - "Retract length for toolchange on extruder " . $i . " is not available when using the Firmware Retraction mode.\n" - . "\nShall I disable it in order to enable Firmware Retraction?", - 'Firmware Retraction', wxICON_WARNING | wxYES | wxNO); - - my $new_conf = Slic3r::Config->new; - if ($dialog->ShowModal() == wxID_YES) { - my $retract_length_toolchange = $config->retract_length_toolchange; - $retract_length_toolchange->[$i] = 0; - $new_conf->set("retract_length_toolchange", $retract_length_toolchange); - $new_conf->set("retract_restart_extra_toolchange", $retract_length_toolchange); - } else { - $new_conf->set("use_firmware_retraction", 0); - } - $self->_load_config($new_conf); - } - - # user can customize travel length if we have retraction length or we're using - # firmware retraction - $self->get_field('retract_before_travel', $i)->toggle($have_retract_length || $config->use_firmware_retraction); - - # user can customize other retraction options if retraction is enabled - # Firmware retract has Z lift built in. - my $retraction = ($have_retract_length || $config->use_firmware_retraction); - $self->get_field($_, $i)->toggle($retraction && !$config->use_firmware_retraction) - for qw(retract_lift); - - $self->get_field($_, $i)->toggle($retraction) - for qw(retract_layer_change); - - # retract lift above/below only applies if using retract lift - $self->get_field($_, $i)->toggle($retraction && $config->get_at('retract_lift', $i) > 0) - for qw(retract_lift_above retract_lift_below); - - # some options only apply when not using firmware retraction - $self->get_field($_, $i)->toggle($retraction && !$config->use_firmware_retraction) - for qw(retract_restart_extra wipe); - - # retraction speed is also used by auto-speed pressure regulator, even when - # user enabled firmware retraction - $self->get_field('retract_speed', $i)->toggle($retraction); - - if ($config->use_firmware_retraction && $config->get_at('wipe', $i)) { - my $dialog = Wx::MessageDialog->new($self, - "The Wipe option is not available when using the Firmware Retraction mode.\n" - . "\nShall I disable it in order to enable Firmware Retraction?", - 'Firmware Retraction', wxICON_WARNING | wxYES | wxNO); - - my $new_conf = Slic3r::Config->new; - if ($dialog->ShowModal() == wxID_YES) { - my $wipe = $config->wipe; - $wipe->[$i] = 0; - $new_conf->set("wipe", $wipe); - } else { - $new_conf->set("use_firmware_retraction", 0); - } - $self->_load_config($new_conf); - } - - if ($config->use_firmware_retraction && $config->get_at('retract_lift', $i) > 0) { - my $dialog = Wx::MessageDialog->new($self, - "The Z Lift option is not available when using the Firmware Retraction mode.\n" - . "\nShall I disable it in order to enable Firmware Retraction?", - 'Firmware Retraction', wxICON_WARNING | wxYES | wxNO); - - my $new_conf = Slic3r::Config->new; - if ($dialog->ShowModal() == wxID_YES) { - my $wipe = $config->retract_lift; - $wipe->[$i] = 0; - $new_conf->set("retract_lift", $wipe); - } else { - $new_conf->set("use_firmware_retraction", 0); - } - $self->_load_config($new_conf); - } - - $self->get_field('retract_length_toolchange', $i)->toggle - ($have_multiple_extruders && - !($config->use_firmware_retraction && ($config->gcode_flavor eq 'reprap' || $config->gcode_flavor eq 'repetier'))); - - my $toolchange_retraction = $config->get_at('retract_length_toolchange', $i) > 0; - $self->get_field('retract_restart_extra_toolchange', $i)->toggle - ($have_multiple_extruders && $toolchange_retraction && - !($config->use_firmware_retraction && ($config->gcode_flavor eq 'reprap' || $config->gcode_flavor eq 'repetier'))); - } -} - -# this gets executed after preset is loaded and before GUI fields are updated -sub on_preset_loaded { - my $self = shift; - - # update the extruders count field - { - # update the GUI field according to the number of nozzle diameters supplied - my $extruders_count = scalar @{ $self->config->nozzle_diameter }; - $self->set_value('extruders_count', $extruders_count); - $self->_extruders_count_changed($extruders_count); - } -} - -sub load_config_file { - my $self = shift; - $self->SUPER::load_config_file(@_); - - Slic3r::GUI::warning_catcher($self)->( - "Your configuration was imported. However, Slic3r is currently only able to import settings " - . "for the first defined filament. We recommend you don't use exported configuration files " - . "for multi-extruder setups and rely on the built-in preset management system instead.") - if @{ $self->config->nozzle_diameter } > 1; -} - -package Slic3r::GUI::PresetEditor::Page; -use Wx qw(wxTheApp :misc :panel :sizer); -use base 'Wx::ScrolledWindow'; - -sub new { - my $class = shift; - my ($parent, $title, $iconID) = @_; - my $self = $class->SUPER::new($parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); - $self->{optgroups} = []; - $self->{title} = $title; - $self->{iconID} = $iconID; - - $self->{vsizer} = Wx::BoxSizer->new(wxVERTICAL); - $self->SetSizer($self->{vsizer}); - - # http://docs.wxwidgets.org/3.0/classwx_scrolled.html#details - $self->SetScrollRate($Slic3r::GUI::scroll_step, $Slic3r::GUI::scroll_step); - - return $self; -} - -sub new_optgroup { - my ($self, $title, %params) = @_; - - my $optgroup = Slic3r::GUI::ConfigOptionsGroup->new( - parent => $self, - title => $title, - config => $self->GetParent->{config}, - label_width => $params{label_width} // 200, - on_change => sub { - my ($opt_key, $value) = @_; - wxTheApp->CallAfter(sub { - $self->GetParent->_on_value_change($opt_key); - }); - }, - ); - - push @{$self->{optgroups}}, $optgroup; - $self->{vsizer}->Add($optgroup->sizer, 0, wxEXPAND | wxALL, 10); - - return $optgroup; -} - -sub reload_config { - my ($self) = @_; - $_->reload_config for @{$self->{optgroups}}; -} - -sub get_field { - my ($self, $opt_key, $opt_index) = @_; - - foreach my $optgroup (@{ $self->{optgroups} }) { - my $field = $optgroup->get_fieldc($opt_key, $opt_index); - return $field if defined $field; - } - return undef; -} - -sub set_value { - my $self = shift; - my ($opt_key, $value) = @_; - - my $changed = 0; - foreach my $optgroup (@{$self->{optgroups}}) { - $changed = 1 if $optgroup->set_value($opt_key, $value); - } - return $changed; -} - -package Slic3r::GUI::SavePresetWindow; -use Wx qw(:combobox :dialog :id :misc :sizer); -use Wx::Event qw(EVT_BUTTON EVT_TEXT_ENTER); -use base 'Wx::Dialog'; - -sub new { - my $class = shift; - my ($parent, %params) = @_; - my $self = $class->SUPER::new($parent, -1, "Save preset", wxDefaultPosition, wxDefaultSize); - - my @values = @{$params{values}}; - - my $text = Wx::StaticText->new($self, -1, "Save profile as:", wxDefaultPosition, wxDefaultSize); - $self->{combo} = Wx::ComboBox->new($self, -1, $params{default}, wxDefaultPosition, wxDefaultSize, \@values, - wxTE_PROCESS_ENTER); - my $buttons = $self->CreateStdDialogButtonSizer(wxOK | wxCANCEL); - - my $sizer = Wx::BoxSizer->new(wxVERTICAL); - $sizer->Add($text, 0, wxEXPAND | wxTOP | wxLEFT | wxRIGHT, 10); - $sizer->Add($self->{combo}, 0, wxEXPAND | wxLEFT | wxRIGHT, 10); - $sizer->Add($buttons, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - - EVT_BUTTON($self, wxID_OK, \&accept); - EVT_TEXT_ENTER($self, $self->{combo}, \&accept); - - $self->SetSizer($sizer); - $sizer->SetSizeHints($self); - - return $self; -} - -sub accept { - my ($self, $event) = @_; - - if (($self->{chosen_name} = $self->{combo}->GetValue)) { - if ($self->{chosen_name} !~ /^[^<>:\/\\|?*\"]+$/i) { - Slic3r::GUI::show_error($self, "The supplied name is not valid; the following characters are not allowed: <>:/\|?*\""); - } elsif ($self->{chosen_name} eq '- default -') { - Slic3r::GUI::show_error($self, "The supplied name is not available."); - } else { - $self->EndModal(wxID_OK); - } - } -} - -sub get_name { - my $self = shift; - return $self->{chosen_name}; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/PresetEditorDialog.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/PresetEditorDialog.pm deleted file mode 100644 index 6385844c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/PresetEditorDialog.pm +++ /dev/null @@ -1,73 +0,0 @@ -package Slic3r::GUI::PresetEditorDialog; -use strict; -use warnings; -use Wx qw(:dialog :id :misc :sizer :button :icon wxTheApp WXK_ESCAPE); -use Wx::Event qw(EVT_CLOSE EVT_CHAR_HOOK); -use base qw(Wx::Dialog Class::Accessor); -use utf8; - -__PACKAGE__->mk_accessors(qw(preset_editor)); - -sub new { - my ($class, $parent) = @_; - my $self = $class->SUPER::new($parent, -1, "Settings", wxDefaultPosition, [900,500], - wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxDIALOG_EX_METAL); - - $self->preset_editor($self->preset_editor_class->new($self)); - $self->SetTitle($self->preset_editor->title); - - my $sizer = Wx::BoxSizer->new(wxVERTICAL); - $sizer->Add($self->preset_editor, 1, wxEXPAND); - - $self->SetSizer($sizer); - #$sizer->SetSizeHints($self); - - if (0) { - my $buttons = $self->CreateStdDialogButtonSizer(wxCLOSE); - $sizer->Add($buttons, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - } - - wxTheApp->restore_window_pos($self, "preset_editor"); - - EVT_CLOSE($self, sub { - my (undef, $event) = @_; - - # save window size - wxTheApp->save_window_pos($self, "preset_editor"); - - # propagate event - $event->Skip; - }); - - EVT_CHAR_HOOK($self, sub { - my (undef, $event) = @_; - - if ($event->GetKeyCode == WXK_ESCAPE) { - $self->Close; - } else { - $event->Skip; - } - }); - - return $self; -} - - -package Slic3r::GUI::PresetEditorDialog::Printer; -use base qw(Slic3r::GUI::PresetEditorDialog); - -sub preset_editor_class { "Slic3r::GUI::PresetEditor::Printer" } - - -package Slic3r::GUI::PresetEditorDialog::Filament; -use base qw(Slic3r::GUI::PresetEditorDialog); - -sub preset_editor_class { "Slic3r::GUI::PresetEditor::Filament" } - - -package Slic3r::GUI::PresetEditorDialog::Print; -use base qw(Slic3r::GUI::PresetEditorDialog); - -sub preset_editor_class { "Slic3r::GUI::PresetEditor::Print" } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/ProgressStatusBar.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/ProgressStatusBar.pm deleted file mode 100644 index 32fd5268..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/ProgressStatusBar.pm +++ /dev/null @@ -1,144 +0,0 @@ -# Status bar at the bottom of the main screen. - -package Slic3r::GUI::ProgressStatusBar; -use strict; -use warnings; - -use Wx qw(:gauge :misc); -use base 'Wx::StatusBar'; - -sub new { - my $class = shift; - my $self = $class->SUPER::new(@_); - - $self->{busy} = 0; - $self->{timer} = Wx::Timer->new($self); - $self->{prog} = Wx::Gauge->new($self, wxGA_HORIZONTAL, 100, wxDefaultPosition, wxDefaultSize); - $self->{prog}->Hide; - $self->{cancelbutton} = Wx::Button->new($self, -1, "Cancel", wxDefaultPosition, wxDefaultSize); - $self->{cancelbutton}->Hide; - - $self->SetFieldsCount(3); - $self->SetStatusWidths(-1, 150, 155); - - Wx::Event::EVT_TIMER($self, \&OnTimer, $self->{timer}); - Wx::Event::EVT_SIZE($self, \&OnSize); - Wx::Event::EVT_BUTTON($self, $self->{cancelbutton}, sub { - $self->{cancel_cb}->(); - $self->{cancelbutton}->Hide; - }); - - return $self; -} - -sub DESTROY { - my $self = shift; - $self->{timer}->Stop if $self->{timer} && $self->{timer}->IsRunning; -} - -sub OnSize { - my ($self, $event) = @_; - - my %fields = ( - # 0 is reserved for status text - 1 => $self->{cancelbutton}, - 2 => $self->{prog}, - ); - - foreach (keys %fields) { - my $rect = $self->GetFieldRect($_); - my $offset = &Wx::wxGTK ? 1 : 0; # add a cosmetic 1 pixel offset on wxGTK - my $pos = [$rect->GetX + $offset, $rect->GetY + $offset]; - $fields{$_}->Move($pos); - $fields{$_}->SetSize($rect->GetWidth - $offset, $rect->GetHeight); - } - - $event->Skip; -} - -sub OnTimer { - my ($self, $event) = @_; - - if ($self->{prog}->IsShown) { - $self->{timer}->Stop; - } - $self->{prog}->Pulse if $self->{_busy}; -} - -sub SetCancelCallback { - my $self = shift; - my ($cb) = @_; - $self->{cancel_cb} = $cb; - $cb ? $self->{cancelbutton}->Show : $self->{cancelbutton}->Hide; -} - -sub Run { - my $self = shift; - my $rate = shift || 100; - if (!$self->{timer}->IsRunning) { - $self->{timer}->Start($rate); - } -} - -sub GetProgress { - my $self = shift; - return $self->{prog}->GetValue; -} - -sub SetProgress { - my $self = shift; - my ($val) = @_; - if (!$self->{prog}->IsShown) { - $self->ShowProgress(1); - } - if ($val == $self->{prog}->GetRange) { - $self->{prog}->SetValue(0); - $self->ShowProgress(0); - } else { - $self->{prog}->SetValue($val); - } -} - -sub SetRange { - my $self = shift; - my ($val) = @_; - - if ($val != $self->{prog}->GetRange) { - $self->{prog}->SetRange($val); - } -} - -sub ShowProgress { - my $self = shift; - my ($show) = @_; - - $self->{prog}->Show($show); - $self->{prog}->Pulse; -} - -sub StartBusy { - my $self = shift; - my $rate = shift || 100; - - $self->{_busy} = 1; - $self->ShowProgress(1); - if (!$self->{timer}->IsRunning) { - $self->{timer}->Start($rate); - } -} - -sub StopBusy { - my $self = shift; - - $self->{timer}->Stop; - $self->ShowProgress(0); - $self->{prog}->SetValue(0); - $self->{_busy} = 0; -} - -sub IsBusy { - my $self = shift; - return $self->{_busy}; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Projector.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Projector.pm deleted file mode 100644 index 9df9345d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/Projector.pm +++ /dev/null @@ -1,986 +0,0 @@ -# DLP Projector screen for the SLA (stereolitography) print process - -package Slic3r::GUI::Projector; -use strict; -use warnings; -use File::Basename qw(basename dirname); -use Wx qw(:dialog :id :misc :sizer :systemsettings :bitmap :button :icon :filedialog wxTheApp); -use Wx::Event qw(EVT_BUTTON EVT_CLOSE EVT_TEXT_ENTER EVT_SPINCTRL EVT_SLIDER); -use base qw(Wx::Dialog Class::Accessor); -use utf8; - -__PACKAGE__->mk_accessors(qw(config config2 manual_control_config screen controller _optgroups)); - -sub new { - my ($class, $parent) = @_; - my $self = $class->SUPER::new($parent, -1, "Projector for DLP", wxDefaultPosition, wxDefaultSize); - $self->config2({ - display => 0, - show_bed => 1, - invert_y => 0, - zoom => 100, - exposure_time => 2, - bottom_exposure_time => 7, - settle_time => 1.5, - bottom_layers => 3, - z_lift => 5, - z_lift_speed => 8, - offset => [0,0], - }); - $self->manual_control_config({ - xy_travel_speed => 130, - z_travel_speed => 10, - temperature => '', - bed_temperature => '', - }); - - my $ini = eval { Slic3r::Config->read_ini("$Slic3r::GUI::datadir/DLP.ini") }; - if ($ini) { - foreach my $opt_id (keys %{$ini->{_}}) { - my $value = $ini->{_}{$opt_id}; - if ($opt_id eq 'offset') { - $value = [ split /,/, $value ]; - } - $self->config2->{$opt_id} = $value; - } - } - - my $sizer = Wx::BoxSizer->new(wxVERTICAL); - - $self->config(Slic3r::Config->new_from_defaults( - qw(serial_port serial_speed bed_shape start_gcode end_gcode z_offset) - )); - $self->config->apply(wxTheApp->{mainframe}->{slaconfig}); - - my @optgroups = (); - { - push @optgroups, my $optgroup = Slic3r::GUI::ConfigOptionsGroup->new( - parent => $self, - title => 'USB/Serial connection', - config => $self->config, - label_width => 200, - ); - $sizer->Add($optgroup->sizer, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - - { - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Serial port', - ); - my $serial_port = $optgroup->get_option('serial_port'); - $serial_port->side_widget(sub { - my ($parent) = @_; - - my $btn = Wx::BitmapButton->new($self, -1, Wx::Bitmap->new($Slic3r::var->("arrow_rotate_clockwise.png"), wxBITMAP_TYPE_PNG), - wxDefaultPosition, wxDefaultSize, &Wx::wxBORDER_NONE); - $btn->SetToolTipString("Rescan serial ports") - if $btn->can('SetToolTipString'); - EVT_BUTTON($self, $btn, sub { - $optgroup->get_field('serial_port')->set_values([ wxTheApp->scan_serial_ports ]); - }); - - return $btn; - }); - $line->append_option($serial_port); - $line->append_option($optgroup->get_option('serial_speed')); - $line->append_button("Test", "wrench.png", sub { - my $sender = Slic3r::GCode::Sender->new; - my $res = $sender->connect( - $self->{config}->serial_port, - $self->{config}->serial_speed, - ); - if ($res && $sender->wait_connected) { - Slic3r::GUI::show_info($self, "Connection to printer works correctly.", "Success!"); - } else { - Slic3r::GUI::show_error($self, "Connection failed."); - } - }, \$self->{serial_test_btn}); - $optgroup->append_line($line); - } - } - - { - push @optgroups, my $optgroup = Slic3r::GUI::ConfigOptionsGroup->new( - parent => $self, - title => 'G-code', - config => $self->config, - label_width => 200, - ); - $sizer->Add($optgroup->sizer, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - - { - my $option = $optgroup->get_option('start_gcode'); - $option->height(50); - $option->full_width(1); - $optgroup->append_single_option_line($option); - } - { - my $option = $optgroup->get_option('end_gcode'); - $option->height(50); - $option->full_width(1); - $optgroup->append_single_option_line($option); - } - } - - my $on_change = sub { - my ($opt_id, $value) = @_; - - $self->config2->{$opt_id} = $value; - $self->screen->reposition; - $self->show_print_time; - - my $serialized = {}; - foreach my $opt_id (keys %{$self->config2}) { - my $value = $self->config2->{$opt_id}; - if (ref($value) eq 'ARRAY') { - $value = join ',', @$value; - } - $serialized->{$opt_id} = $value; - } - Slic3r::Config->write_ini( - "$Slic3r::GUI::datadir/DLP.ini", - { _ => $serialized }); - }; - - { - push @optgroups, my $optgroup = Slic3r::GUI::OptionsGroup->new( - parent => $self, - title => 'Projection', - on_change => $on_change, - label_width => 200, - ); - $sizer->Add($optgroup->sizer, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - - { - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Display', - ); - - my @displays = 0 .. (Wx::Display::GetCount()-1); - $line->append_option(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'display', - type => 'select', - label => 'Display', - tooltip => '', - labels => [@displays], - values => [@displays], - default => $self->config2->{display}, - )); - $line->append_option(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'zoom', - type => 'percent', - label => 'Zoom %', - tooltip => '', - default => $self->config2->{zoom}, - min => 0.1, - max => 100, - )); - $line->append_option(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'offset', - type => 'point', - label => 'Offset', - tooltip => '', - default => $self->config2->{offset}, - )); - $line->append_option(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'invert_y', - type => 'bool', - label => 'Invert Y', - tooltip => '', - default => $self->config2->{invert_y}, - )); - $optgroup->append_line($line); - } - - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'show_bed', - type => 'bool', - label => 'Show bed', - tooltip => '', - default => $self->config2->{show_bed}, - )); - } - - { - push @optgroups, my $optgroup = Slic3r::GUI::OptionsGroup->new( - parent => $self, - title => 'Print', - on_change => $on_change, - label_width => 200, - ); - $sizer->Add($optgroup->sizer, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - - { - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Time (seconds)', - ); - $line->append_option(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'bottom_exposure_time', - type => 'f', - label => 'Bottom exposure', - tooltip => '', - default => $self->config2->{bottom_exposure_time}, - )); - $line->append_option(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'exposure_time', - type => 'f', - label => 'Exposure', - tooltip => '', - default => $self->config2->{exposure_time}, - )); - $line->append_option(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'settle_time', - type => 'f', - label => 'Settle', - tooltip => '', - default => $self->config2->{settle_time}, - )); - $optgroup->append_line($line); - } - - $optgroup->append_single_option_line(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'bottom_layers', - type => 'i', - label => 'Bottom layers', - tooltip => '', - default => $self->config2->{bottom_layers}, - )); - - { - my $line = Slic3r::GUI::OptionsGroup::Line->new( - label => 'Z Lift', - ); - $line->append_option(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'z_lift', - type => 'f', - label => 'Distance', - sidetext => 'mm', - tooltip => '', - default => $self->config2->{z_lift}, - )); - $line->append_option(Slic3r::GUI::OptionsGroup::Option->new( - opt_id => 'z_lift_speed', - type => 'f', - label => 'Speed', - sidetext => 'mm/s', - tooltip => '', - default => $self->config2->{z_lift_speed}, - )); - $optgroup->append_line($line); - } - } - - $self->_optgroups([@optgroups]); - - { - my $sizer1 = Wx::BoxSizer->new(wxHORIZONTAL); - $sizer->Add($sizer1, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - - { - my $btn = $self->{btn_manual_control} = Wx::Button->new($self, -1, 'Manual Control', wxDefaultPosition, wxDefaultSize); - if ($Slic3r::GUI::have_button_icons) { - $btn->SetBitmap(Wx::Bitmap->new($Slic3r::var->("cog.png"), wxBITMAP_TYPE_PNG)); - } - $sizer1->Add($btn, 0); - EVT_BUTTON($self, $btn, sub { - my $sender = Slic3r::GCode::Sender->new; - my $res = $sender->connect( - $self->config->serial_port, - $self->config->serial_speed, - ); - if (!$res || !$sender->wait_connected) { - Slic3r::GUI::show_error(undef, "Connection failed. Check serial port and speed."); - return; - } - my $dlg = Slic3r::GUI::Controller::ManualControlDialog->new - ($self, $self->config, $sender, $self->manual_control_config); - $dlg->ShowModal; - $sender->disconnect; - }); - - - } - { - my $btn = $self->{btn_print} = Wx::Button->new($self, -1, 'Print', wxDefaultPosition, wxDefaultSize); - if ($Slic3r::GUI::have_button_icons) { - $btn->SetBitmap(Wx::Bitmap->new($Slic3r::var->("control_play.png"), wxBITMAP_TYPE_PNG)); - } - $sizer1->Add($btn, 0); - EVT_BUTTON($self, $btn, sub { - $self->controller->start_print; - $self->_update_buttons; - $self->_set_status(''); - }); - } - { - my $btn = $self->{btn_stop} = Wx::Button->new($self, -1, 'Stop/Black', wxDefaultPosition, wxDefaultSize); - if ($Slic3r::GUI::have_button_icons) { - $btn->SetBitmap(Wx::Bitmap->new($Slic3r::var->("control_stop.png"), wxBITMAP_TYPE_PNG)); - } - $sizer1->Add($btn, 0); - EVT_BUTTON($self, $btn, sub { - $self->controller->stop_print; - $self->_update_buttons; - $self->_set_status(''); - }); - } - - { - { - my $text = Wx::StaticText->new($self, -1, "Layer:", wxDefaultPosition, wxDefaultSize); - $text->SetFont($Slic3r::GUI::small_font); - $sizer1->Add($text, 0, wxEXPAND | wxLEFT, 10); - } - { - my $spin = $self->{layers_spinctrl} = Wx::SpinCtrl->new($self, -1, 0, wxDefaultPosition, [60,-1], - 0, 0, 300, 0); - $sizer1->Add($spin, 0); - EVT_SPINCTRL($self, $spin, sub { - my $value = $spin->GetValue; - $self->{layers_slider}->SetValue($value); - $self->controller->project_layer($value); - $self->_update_buttons; - }); - } - { - my $slider = $self->{layers_slider} = Wx::Slider->new( - $self, -1, - 0, # default - 0, # min - 300, # max - wxDefaultPosition, - wxDefaultSize, - ); - $sizer1->Add($slider, 1); - EVT_SLIDER($self, $slider, sub { - my $value = $slider->GetValue; - $self->{layers_spinctrl}->SetValue($value); - $self->controller->project_layer($value); - $self->_update_buttons; - }); - } - } - - my $sizer2 = Wx::BoxSizer->new(wxHORIZONTAL); - $sizer->Add($sizer2, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - - { - $self->{status_text} = Wx::StaticText->new($self, -1, "", wxDefaultPosition, wxDefaultSize); - $self->{status_text}->SetFont($Slic3r::GUI::small_font); - $sizer2->Add($self->{status_text}, 1 | wxEXPAND); - } - } - - { - # should be wxCLOSE but it crashes on Linux, maybe it's a Wx bug - my $buttons = Wx::BoxSizer->new(wxHORIZONTAL); - { - my $btn = Wx::Button->new($self, -1, "Export SVG…"); - EVT_BUTTON($self, $btn, sub { - $self->_export_svg; - }); - $buttons->Add($btn, 0); - } - $buttons->AddStretchSpacer(1); - { - my $btn = Wx::Button->new($self, -1, "Close"); - $btn->SetDefault; - EVT_BUTTON($self, $btn, sub { - $self->_close; - }); - $buttons->Add($btn, 0); - } - $sizer->Add($buttons, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - } - EVT_CLOSE($self, sub { - $self->_close; - }); - - $self->SetSizer($sizer); - $sizer->SetSizeHints($self); - - # reuse existing screen if any - if ($Slic3r::GUI::DLP_projection_screen) { - $self->screen($Slic3r::GUI::DLP_projection_screen); - $self->screen->config($self->config); - $self->screen->config2($self->config2); - } else { - $self->screen(Slic3r::GUI::Projector::Screen->new($parent, $self->config, $self->config2)); - $Slic3r::GUI::DLP_projection_screen = $self->screen; - } - $self->screen->reposition; - $self->screen->Show; - wxTheApp->{mainframe}->Hide; - - # initialize controller - $self->controller(Slic3r::GUI::Projector::Controller->new( - config => $self->config, - config2 => $self->config2, - screen => $self->screen, - on_project_layer => sub { - my ($layer_num) = @_; - - $self->{layers_spinctrl}->SetValue($layer_num); - $self->{layers_slider}->SetValue($layer_num); - - my $duration = $self->controller->remaining_print_time; - $self->_set_status(sprintf "Printing layer %d/%d (z = %.2f); %d minutes and %d seconds left", - $layer_num, $self->controller->_print->layer_count, - $self->controller->current_layer_height, - int($duration/60), ($duration - int($duration/60)*60)); # % truncates to integer - }, - on_print_completed => sub { - $self->_update_buttons; - $self->_set_status(''); - Wx::Bell(); - }, - )); - { - my $max = $self->controller->_print->layer_count-1; - $self->{layers_spinctrl}->SetRange(0, $max); - $self->{layers_slider}->SetRange(0, $max); - } - - $self->_update_buttons; - $self->show_print_time; - - return $self; -} - -sub _update_buttons { - my ($self) = @_; - - my $is_printing = $self->controller->is_printing; - my $is_projecting = $self->controller->is_projecting; - $self->{btn_manual_control}->Show(!$is_printing); - $self->{btn_print}->Show(!$is_printing && !$is_projecting); - $self->{btn_stop}->Show($is_printing || $is_projecting); - $self->{layers_spinctrl}->Enable(!$is_printing); - $self->{layers_slider}->Enable(!$is_printing); - if ($is_printing) { - $_->disable for @{$self->_optgroups}; - } else { - $_->enable for @{$self->_optgroups}; - } - $self->Layout; -} - -sub _export_svg { - my ($self) = @_; - - my $output_file = 'print.svg'; - my $dlg = Wx::FileDialog->new( - $self, - 'Save SVG file as:', - wxTheApp->output_path(dirname($output_file)), - basename($output_file), - &Slic3r::GUI::FILE_WILDCARDS->{svg}, - wxFD_SAVE | wxFD_OVERWRITE_PROMPT, - ); - if ($dlg->ShowModal != wxID_OK) { - $dlg->Destroy; - return; - } - $output_file = Slic3r::decode_path($dlg->GetPath); - - $self->controller->_print->write_svg($output_file); -} - -sub _set_status { - my ($self, $status) = @_; - $self->{status_text}->SetLabel($status // ''); - $self->{status_text}->Wrap($self->{status_text}->GetSize->GetWidth); - $self->{status_text}->Refresh; - $self->Layout; -} - -sub show_print_time { - my ($self) = @_; - - - my $duration = $self->controller->print_time; - $self->_set_status(sprintf "Estimated print time: %d minutes and %d seconds - %.2f liters", - int($duration/60), ($duration - int($duration/60)*60), # % truncates to integer - $self->controller->total_resin); -} - -sub _close { - my $self = shift; - - # if projection screen is not on the same display as our dialog, - # ask the user whether they want to keep it open - my $keep_screen = 0; - my $display_area = Wx::Display->new($self->config2->{display})->GetGeometry; - if (!$display_area->Contains($self->GetScreenPosition)) { - my $res = Wx::MessageDialog->new($self, "Do you want to keep the black screen open?", 'Black screen', wxYES_NO | wxYES_DEFAULT | wxICON_QUESTION)->ShowModal; - $keep_screen = ($res == wxID_YES); - } - - if ($keep_screen) { - $self->screen->config(undef); - $self->screen->config2(undef); - $self->screen->Refresh; - } else { - $self->screen->Destroy; - $self->screen(undef); - $Slic3r::GUI::DLP_projection_screen = undef; - } - wxTheApp->{mainframe}->Show; - - $self->EndModal(wxID_OK); -} - -package Slic3r::GUI::Projector::Controller; -use Moo; -use Wx qw(wxTheApp :id :timer); -use Wx::Event qw(EVT_TIMER); -use Slic3r::Geometry qw(unscale); -use Slic3r::Print::State ':steps'; -use Time::HiRes qw(gettimeofday tv_interval); - -has 'config' => (is => 'ro', required => 1); -has 'config2' => (is => 'ro', required => 1); -has 'screen' => (is => 'ro', required => 1); -has 'on_project_layer' => (is => 'rw'); -has 'on_print_completed' => (is => 'rw'); -has 'sender' => (is => 'rw'); -has 'timer' => (is => 'rw'); -has 'is_printing' => (is => 'rw', default => sub { 0 }); -has '_print' => (is => 'rw'); -has '_heights' => (is => 'rw'); -has '_layer_num' => (is => 'rw'); -has '_timer_cb' => (is => 'rw'); - -sub BUILD { - my ($self) = @_; - - Slic3r::GUI::disable_screensaver(); - - # init print - { - my $print = Slic3r::SLAPrint->new(wxTheApp->{mainframe}->{plater}->{model}); - $print->apply_config(wxTheApp->{mainframe}->{plater}->config); - $print->apply_config(wxTheApp->{mainframe}->{slaconfig}); - $self->_print($print); - $self->screen->print($print); - - # make sure layers were sliced - { - my $progress_dialog = Wx::ProgressDialog->new('Slicing…', "Processing layers…", 100, undef, 0); - $progress_dialog->Pulse; - $print->slice; - $progress_dialog->Destroy; - } - - $self->_heights($print->heights); - } - - # projection timer - my $timer_id = &Wx::NewId(); - $self->timer(Wx::Timer->new($self->screen, $timer_id)); - EVT_TIMER($self->screen, $timer_id, sub { - my $cb = $self->_timer_cb; - $self->_timer_cb(undef); - $cb->(); - }); -} - -sub delay { - my ($self, $wait, $cb) = @_; - - $self->_timer_cb($cb); - $self->timer->Start($wait * 1000, wxTIMER_ONE_SHOT); -} - -sub current_layer_height { - my ($self) = @_; - - return $self->_heights->[$self->_layer_num]; -} - -sub start_print { - my ($self) = @_; - - { - $self->sender(Slic3r::GCode::Sender->new); - my $res = $self->sender->connect( - $self->config->serial_port, - $self->config->serial_speed, - ); - if (!$res || !$self->sender->wait_connected) { - Slic3r::GUI::show_error(undef, "Connection failed. Check serial port and speed."); - return; - } - Slic3r::debugf "connected to " . $self->config->serial_port . "\n"; - - # TODO: this wait should be handled by GCodeSender - sleep 4; - - # send custom start G-code - $self->sender->send($_, 1) for grep !/^;/, split /\n/, $self->config->start_gcode; - $self->sender->("G90", 1); # set absolute positioning - } - - $self->is_printing(1); - - # TODO: block until the G1 command has been performed - # we could do this with M400 + M115 but maybe it's not portable - $self->delay(5, sub { - # start with black - Slic3r::debugf "starting black projection\n"; - $self->_layer_num(-1); - $self->screen->project_layer(undef); - $self->delay($self->config2->{settle_time}, sub { - $self->project_next_layer; - }); - }); -} - -sub stop_print { - my ($self) = @_; - - if ($self->sender) { - $self->sender->disconnect; - } - - $self->is_printing(0); - $self->timer->Stop; - $self->_timer_cb(undef); - $self->screen->project_layer(undef); -} - -sub print_completed { - my ($self) = @_; - - # send custom end G-code - if ($self->sender) { - $self->sender->send($_, 1) for grep !/^;/, split /\n/, $self->config->end_gcode; - } - - # call this before the on_print_completed callback otherwise buttons - # won't be updated correctly - $self->stop_print; - - $self->on_print_completed->() - if $self->is_printing && $self->on_print_completed; -} - -sub is_projecting { - my ($self) = @_; - - return defined $self->screen->layer_num; -} - -sub project_layer { - my ($self, $layer_num) = @_; - - if (!defined $layer_num || $layer_num >= $self->_print->layer_count) { - $self->screen->project_layer(undef); - return; - } - - $self->screen->project_layer($layer_num); -} - -sub project_next_layer { - my ($self) = @_; - - $self->_layer_num($self->_layer_num + 1); - Slic3r::debugf "projecting layer %d\n", $self->_layer_num; - if ($self->_layer_num >= $self->_print->layer_count) { - $self->print_completed; - return; - } - - $self->on_project_layer->($self->_layer_num) if $self->on_project_layer; - - if ($self->sender) { - my $z = $self->current_layer_height + $self->config->z_offset; - my $F = $self->config2->{z_lift_speed} * 60; - if ($self->config2->{z_lift} != 0) { - $self->sender->send(sprintf("G1 Z%.5f F%d", $z + $self->config2->{z_lift}, $F), 1); - } - $self->sender->send(sprintf("G1 Z%.5f F%d", $z, $F), 1); - } - - # TODO: we should block until G1 commands have been performed, see note below - $self->delay($self->config2->{settle_time}, sub { - $self->project_layer($self->_layer_num); - - # get exposure time - my $time = $self->config2->{exposure_time}; - if ($self->_layer_num < $self->config2->{bottom_layers}) { - $time = $self->config2->{bottom_exposure_time}; - } - - $self->delay($time, sub { - $self->screen->project_layer(undef); - $self->project_next_layer; - }); - }); -} - -sub remaining_print_time { - my ($self) = @_; - - my $remaining_layers = @{$self->_heights} - $self->_layer_num; - my $remaining_bottom_layers = $self->_layer_num >= $self->config2->{bottom_layers} - ? 0 - : $self->config2->{bottom_layers} - $self->_layer_num; - - return $remaining_bottom_layers * $self->config2->{bottom_exposure_time} - + ($remaining_layers - $remaining_bottom_layers) * $self->config2->{exposure_time} - + $remaining_layers * $self->config2->{settle_time}; -} - -sub print_time { - my ($self) = @_; - - return $self->config2->{bottom_layers} * $self->config2->{bottom_exposure_time} - + ($self->_print->layer_count - $self->config2->{bottom_layers}) * $self->config2->{exposure_time} - + $self->_print->layer_count * $self->config2->{settle_time}; -} - -sub total_resin { - my ($self) = @_; - - my $vol = 0; # mm^3 - - for my $i (0..($self->_print->layer_count-1)) { - my $lh = $self->_heights->[$i] - ($i == 0 ? 0 : $self->_heights->[$i-1]); - $vol += unscale(unscale($_->area)) * $lh for @{ $self->_print->layer_slices($i) }; - } - - return $vol/1000/1000; # liters -} - -sub DESTROY { - my ($self) = @_; - - $self->timer->Stop if $self->timer; - $self->sender->disconnect if $self->sender; - Slic3r::GUI::enable_screensaver(); -} - -package Slic3r::GUI::Projector::Screen; -use Wx qw(:dialog :id :misc :sizer :colour :pen :brush :font wxBG_STYLE_CUSTOM); -use Wx::Event qw(EVT_PAINT EVT_SIZE); -use base qw(Wx::Dialog Class::Accessor); - -use List::Util qw(min); -use Slic3r::Geometry qw(X Y unscale scale); -use Slic3r::Geometry::Clipper qw(intersection_pl union_ex); - -__PACKAGE__->mk_accessors(qw(config config2 scaling_factor bed_origin print layer_num)); - -sub new { - my ($class, $parent, $config, $config2) = @_; - my $self = $class->SUPER::new($parent, -1, "Projector", wxDefaultPosition, wxDefaultSize, 0); - - $self->config($config); - $self->config2($config2); - $self->SetBackgroundStyle(wxBG_STYLE_CUSTOM); - EVT_SIZE($self, \&_resize); - EVT_PAINT($self, \&_repaint); - $self->_resize; - - return $self; -} - -sub reposition { - my ($self) = @_; - - my $display = Wx::Display->new($self->config2->{display}); - my $area = $display->GetGeometry; - $self->Move($area->GetPosition); - # ShowFullScreen doesn't use the right screen - #$self->ShowFullScreen($self->config2->{fullscreen}); - $self->SetSize($area->GetSize); - $self->_resize; - $self->Refresh; -} - -sub _resize { - my ($self) = @_; - - return if !$self->config; - my ($cw, $ch) = $self->GetSizeWH; - - # get bed shape polygon - my $bed_polygon = Slic3r::Polygon->new_scale(@{$self->config->bed_shape}); - my $bb = $bed_polygon->bounding_box; - my $size = $bb->size; - my $center = $bb->center; - - # calculate the scaling factor needed for constraining print bed area inside preview - # scaling_factor is expressed in pixel / mm - $self->scaling_factor(min($cw / unscale($size->x), $ch / unscale($size->y))); #) - - # apply zoom to scaling factor - if ($self->config2->{zoom} != 0) { - # TODO: make sure min and max in the option config are enforced - $self->scaling_factor($self->scaling_factor * ($self->config2->{zoom}/100)); - } - - # calculate the displacement needed for centering bed on screen - $self->bed_origin([ - $cw/2 - (unscale($center->x) - $self->config2->{offset}->[X]) * $self->scaling_factor, - $ch/2 - (unscale($center->y) - $self->config2->{offset}->[Y]) * $self->scaling_factor, #)) - ]); - - $self->Refresh; -} - -sub project_layer { - my ($self, $layer_num) = @_; - - $self->layer_num($layer_num); - $self->Refresh; -} - -sub _repaint { - my ($self) = @_; - - my $dc = Wx::AutoBufferedPaintDC->new($self); - my ($cw, $ch) = $self->GetSizeWH; - return if $cw == 0; # when canvas is not rendered yet, size is 0,0 - - $dc->SetPen(Wx::Pen->new(wxBLACK, 1, wxSOLID)); - $dc->SetBrush(Wx::Brush->new(wxBLACK, wxSOLID)); - $dc->DrawRectangle(0, 0, $cw, $ch); - - return if !$self->config; - - # turn size into max visible coordinates - # TODO: or should we use ClientArea? - $cw--; - $ch--; - - # draw bed - if ($self->config2->{show_bed}) { - $dc->SetPen(Wx::Pen->new(wxRED, 2, wxSOLID)); - $dc->SetBrush(Wx::Brush->new(wxWHITE, wxTRANSPARENT)); - - # draw contour - my $bed_polygon = Slic3r::Polygon->new_scale(@{$self->config->bed_shape}); - $dc->DrawPolygon($self->scaled_points_to_pixel($bed_polygon), 0, 0); - - # draw grid - $dc->SetPen(Wx::Pen->new(wxRED, 1, wxSOLID)); - { - my $bb = $bed_polygon->bounding_box; - my $step = scale 10; # 1cm grid - my @polylines = (); - for (my $x = $bb->x_min - ($bb->x_min % $step) + $step; $x < $bb->x_max; $x += $step) { - push @polylines, Slic3r::Polyline->new([$x, $bb->y_min], [$x, $bb->y_max]); - } - for (my $y = $bb->y_min - ($bb->y_min % $step) + $step; $y < $bb->y_max; $y += $step) { - push @polylines, Slic3r::Polyline->new([$bb->x_min, $y], [$bb->x_max, $y]); - } - $dc->DrawLine(map @$_, @$_) - for map $self->scaled_points_to_pixel([ @$_[0,-1] ]), - @{intersection_pl(\@polylines, [$bed_polygon])}; - } - - # draw axes orientation - $dc->SetPen(Wx::Pen->new(wxWHITE, 4, wxSOLID)); - { - foreach my $endpoint ([10, 0], [0, 10]) { - $dc->DrawLine( - map @{$self->unscaled_point_to_pixel($_)}, [0,0], $endpoint - ); - } - - $dc->SetTextForeground(wxWHITE); - $dc->SetFont(Wx::Font->new(20, wxDEFAULT, wxNORMAL, wxNORMAL)); - - my $p = $self->unscaled_point_to_pixel([10, 0]); - $dc->DrawText("X", $p->[X], $p->[Y]); - $p = $self->unscaled_point_to_pixel([0, 10]); - $dc->DrawText("Y", $p->[X]-20, $p->[Y]-10); - } - } - - # get layers at this height - # draw layers - $dc->SetPen(Wx::Pen->new(wxWHITE, 1, wxSOLID)); - - return if !$self->print || !defined $self->layer_num; - - if ($self->print->layer_solid($self->layer_num)) { - $self->_paint_expolygon($_, $dc) for @{$self->print->layer_slices($self->layer_num)}; - } else { - # perimeters first, because their "hole" is painted black - $self->_paint_expolygon($_, $dc) for - @{$self->print->layer_perimeters($self->layer_num)}, - @{$self->print->layer_solid_infill($self->layer_num)}; - - $self->_paint_expolygon($_, $dc) - for @{union_ex($self->print->layer_infill($self->layer_num)->grow)}; - } - - # draw support material - my $sm_radius = $self->print->config->get_abs_value_over('support_material_extrusion_width', $self->print->config->layer_height)/2; - $dc->SetBrush(Wx::Brush->new(wxWHITE, wxSOLID)); - foreach my $pillar (@{$self->print->sm_pillars}) { - next unless $pillar->{top_layer} >= $self->layer_num - && $pillar->{bottom_layer} <= $self->layer_num; - - my $radius = min( - $sm_radius, - ($pillar->{top_layer} - $self->layer_num + 1) * $self->print->config->layer_height, - ); - - $dc->DrawCircle( - @{$self->scaled_points_to_pixel([$pillar->{point}])->[0]}, - $radius * $self->scaling_factor, - ); - } -} - -sub _paint_expolygon { - my ($self, $expolygon, $dc) = @_; - - my @polygons = sort { $a->contains_point($b->first_point) ? -1 : 1 } @$expolygon; - $self->_paint_polygon($_, $dc) for @polygons; -} - -sub _paint_polygon { - my ($self, $polygon, $dc) = @_; - - if ($polygon->is_counter_clockwise) { - $dc->SetBrush(Wx::Brush->new(wxWHITE, wxSOLID)); - } else { - $dc->SetBrush(Wx::Brush->new(wxBLACK, wxSOLID)); - } - $dc->DrawPolygon($self->scaled_points_to_pixel($polygon->pp), 0, 0); -} - -# convert a model coordinate into a pixel coordinate -sub unscaled_point_to_pixel { - my ($self, $point) = @_; - - my $zero = $self->bed_origin; - my $p = [ - $point->[X] * $self->scaling_factor + $zero->[X], - $point->[Y] * $self->scaling_factor + $zero->[Y], - ]; - - if (!$self->config2->{invert_y}) { - my $ch = $self->GetSize->GetHeight; - $p->[Y] = $ch - $p->[Y]; - } - - return $p; -} - -sub scaled_points_to_pixel { - my ($self, $points) = @_; - - return [ - map $self->unscaled_point_to_pixel($_), - map Slic3r::Pointf->new_unscale(@$_), - @$points - ]; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/ReloadDialog.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/ReloadDialog.pm deleted file mode 100644 index bb11bf08..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/ReloadDialog.pm +++ /dev/null @@ -1,60 +0,0 @@ -# A tiny dialog to select how to reload an object that has additional parts or modifiers. - -package Slic3r::GUI::ReloadDialog; -use strict; -use warnings; -use utf8; - -use Wx qw(:button :dialog :id :misc :sizer :choicebook wxTAB_TRAVERSAL); -use Wx::Event qw(EVT_CLOSE); -use base 'Wx::Dialog'; - -sub new { - my $class = shift; - my ($parent,$default_selection) = @_; - my $self = $class->SUPER::new($parent, -1, "Additional parts and modifiers detected", wxDefaultPosition, [350,100], wxDEFAULT_DIALOG_STYLE); - - # label - my $text = Wx::StaticText->new($self, -1, "Additional parts and modifiers are loaded in the current model. \n\nHow do you want to proceed?", wxDefaultPosition, wxDefaultSize); - - # selector - $self->{choice} = my $choice = Wx::Choice->new($self, -1, wxDefaultPosition, wxDefaultSize, []); - $choice->Append("Reload all linked files"); - $choice->Append("Reload main file, copy added parts & modifiers"); - $choice->Append("Reload main file, discard added parts & modifiers"); - $choice->SetSelection($default_selection); - - # checkbox - $self->{checkbox} = my $checkbox = Wx::CheckBox->new($self, -1, "Don't ask again"); - - my $vsizer = Wx::BoxSizer->new(wxVERTICAL); - my $hsizer = Wx::BoxSizer->new(wxHORIZONTAL); - $vsizer->Add($text, 0, wxEXPAND | wxALL, 10); - $vsizer->Add($choice, 0, wxEXPAND | wxALL, 10); - $hsizer->Add($checkbox, 1, wxEXPAND | wxALL, 10); - $hsizer->Add($self->CreateButtonSizer(wxOK | wxCANCEL), 0, wxEXPAND | wxALL, 10); - $vsizer->Add($hsizer, 0, wxEXPAND | wxALL, 0); - - $self->SetSizer($vsizer); - $self->SetMinSize($self->GetSize); - $vsizer->SetSizeHints($self); - - # needed to actually free memory - EVT_CLOSE($self, sub { - $self->EndModal(wxID_CANCEL); - $self->Destroy; - }); - - return $self; -} - -sub GetSelection { - my ($self) = @_; - return $self->{choice}->GetSelection; -} -sub GetHideOnNext { - my ($self) = @_; - return $self->{checkbox}->GetValue; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/SLAPrintOptions.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/SLAPrintOptions.pm deleted file mode 100644 index 01b705c8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/GUI/SLAPrintOptions.pm +++ /dev/null @@ -1,125 +0,0 @@ -package Slic3r::GUI::SLAPrintOptions; -use Wx qw(:dialog :id :misc :sizer :systemsettings wxTheApp); -use Wx::Event qw(EVT_BUTTON EVT_TEXT_ENTER); -use base qw(Wx::Dialog Class::Accessor); - -__PACKAGE__->mk_accessors(qw(config)); - -sub new { - my ($class, $parent) = @_; - my $self = $class->SUPER::new($parent, -1, "SLA/DLP Print", wxDefaultPosition, wxDefaultSize); - - $self->config(Slic3r::Config::SLAPrint->new); - $self->config->apply_dynamic(wxTheApp->{mainframe}->{plater}->config); - - # Set some defaults - $self->config->set('infill_extrusion_width', 0.5) if $self->config->infill_extrusion_width == 0; - $self->config->set('support_material_extrusion_width', 1) if $self->config->support_material_extrusion_width == 0; - $self->config->set('perimeter_extrusion_width', 1) if $self->config->perimeter_extrusion_width == 0; - - my $sizer = Wx::BoxSizer->new(wxVERTICAL); - my $new_optgroup = sub { - my ($title) = @_; - - my $optgroup = Slic3r::GUI::ConfigOptionsGroup->new( - parent => $self, - title => $title, - config => $self->config, - label_width => 200, - ); - $sizer->Add($optgroup->sizer, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - return $optgroup; - }; - { - my $optgroup = $new_optgroup->('Layers'); - $optgroup->append_single_option_line('layer_height'); - $optgroup->append_single_option_line('first_layer_height'); - } - { - my $optgroup = $new_optgroup->('Infill'); - $optgroup->append_single_option_line('fill_density'); - $optgroup->append_single_option_line('fill_pattern'); - { - my $line = $optgroup->create_single_option_line('perimeter_extrusion_width'); - $line->label('Shell thickness'); - my $opt = $line->get_options->[0]; - $opt->sidetext('mm'); - $opt->tooltip('Thickness of the external shell (both horizontal and vertical).'); - $optgroup->append_line($line); - } - { - my $line = $optgroup->create_single_option_line('infill_extrusion_width'); - $line->label('Infill thickness'); - my $opt = $line->get_options->[0]; - $opt->sidetext('mm'); - $opt->tooltip('Thickness of the infill lines.'); - $optgroup->append_line($line); - } - $optgroup->append_single_option_line('fill_angle'); - } - { - my $optgroup = $new_optgroup->('Raft'); - $optgroup->append_single_option_line('raft_layers'); - $optgroup->append_single_option_line('raft_offset'); - } - { - my $optgroup = $new_optgroup->('Support Material'); - $optgroup->append_single_option_line('support_material'); - { - my $line = $optgroup->create_single_option_line('support_material_spacing'); - $line->label('Pillars spacing'); - my $opt = $line->get_options->[0]; - $opt->tooltip('Max spacing between support material pillars.'); - $optgroup->append_line($line); - } - { - my $line = $optgroup->create_single_option_line('support_material_extrusion_width'); - $line->label('Pillars diameter'); - my $opt = $line->get_options->[0]; - $opt->sidetext('mm'); - $opt->tooltip('Diameter of the cylindrical support pillars. 0.4mm and higher is supported.'); - $optgroup->append_line($line); - } - } - - - my $buttons = $self->CreateStdDialogButtonSizer(wxOK | wxCANCEL); - EVT_BUTTON($self, wxID_OK, sub { $self->_accept }); - $sizer->Add($buttons, 0, wxEXPAND | wxBOTTOM | wxLEFT | wxRIGHT, 10); - - $self->SetSizer($sizer); - $sizer->SetSizeHints($self); - - return $self; -} - -sub _accept { - my $self = shift; - - # validate config - eval { - die "Invalid shell thickness (must be greater than 0).\n" - if $self->config->fill_density < 100 && $self->config->perimeter_extrusion_width == 0; - die "Invalid infill thickness (must be greater than 0).\n" - if $self->config->fill_density < 100 && $self->config->infill_extrusion_width == 0; - }; - if ($@) { - Slic3r::GUI::show_error($self, $@); - return; - } - - wxTheApp->{mainframe}->{slaconfig}->apply_static($self->config); - $self->EndModal(wxID_OK); - $self->Close; # needed on Linux - - my $projector = Slic3r::GUI::Projector->new($self->GetParent); - - # this double invocation is needed for properly hiding the MainFrame - $projector->Show; - $projector->ShowModal; - - # TODO: diff the new config with the selected presets and prompt the user for - # applying the changes to them. -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Geometry.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Geometry.pm deleted file mode 100644 index 1fa63f3b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Geometry.pm +++ /dev/null @@ -1,605 +0,0 @@ -package Slic3r::Geometry; -use strict; -use warnings; - -require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw( - PI X Y Z A B X1 Y1 X2 Y2 Z1 Z2 MIN MAX epsilon slope - line_point_belongs_to_segment points_coincide distance_between_points - normalize tan move_points_3D - point_in_polygon point_in_segment segment_in_segment - polyline_lines polygon_lines - point_along_segment polygon_segment_having_point polygon_has_subsegment - deg2rad rad2deg - rotate_points move_points - dot perp - line_intersection bounding_box bounding_box_intersect - angle3points - chained_path chained_path_from collinear scale unscale - rad2deg_dir bounding_box_center line_intersects_any douglas_peucker - polyline_remove_short_segments normal triangle_normal polygon_is_convex - scaled_epsilon bounding_box_3D size_3D size_2D - convex_hull directions_parallel directions_parallel_within -); - - -use constant PI => 4 * atan2(1, 1); -use constant A => 0; -use constant B => 1; -use constant X1 => 0; -use constant Y1 => 1; -use constant X2 => 2; -use constant Y2 => 3; -use constant Z1 => 4; -use constant Z2 => 5; -use constant MIN => 0; -use constant MAX => 1; -our $parallel_degrees_limit = abs(deg2rad(0.1)); - -sub epsilon () { 1E-4 } -sub scaled_epsilon () { epsilon / &Slic3r::SCALING_FACTOR } - -sub scale ($) { $_[0] / &Slic3r::SCALING_FACTOR } -sub unscale ($) { $_[0] * &Slic3r::SCALING_FACTOR } - -sub tan { - my ($angle) = @_; - return (sin $angle) / (cos $angle); -} - -sub slope { - my ($line) = @_; - return undef if abs($line->[B][X] - $line->[A][X]) < epsilon; # line is vertical - return ($line->[B][Y] - $line->[A][Y]) / ($line->[B][X] - $line->[A][X]); -} - -# this subroutine checks whether a given point may belong to a given -# segment given the hypothesis that it belongs to the line containing -# the segment -sub line_point_belongs_to_segment { - my ($point, $segment) = @_; - - #printf " checking whether %f,%f may belong to segment %f,%f - %f,%f\n", - # @$point, map @$_, @$segment; - - my @segment_extents = ( - [ sort { $a <=> $b } map $_->[X], @$segment ], - [ sort { $a <=> $b } map $_->[Y], @$segment ], - ); - - return 0 if $point->[X] < ($segment_extents[X][0] - epsilon) || $point->[X] > ($segment_extents[X][1] + epsilon); - return 0 if $point->[Y] < ($segment_extents[Y][0] - epsilon) || $point->[Y] > ($segment_extents[Y][1] + epsilon); - return 1; -} - -sub points_coincide { - my ($p1, $p2) = @_; - return 1 if abs($p2->[X] - $p1->[X]) < epsilon && abs($p2->[Y] - $p1->[Y]) < epsilon; - return 0; -} - -sub distance_between_points { - my ($p1, $p2) = @_; - return sqrt((($p1->[X] - $p2->[X])**2) + ($p1->[Y] - $p2->[Y])**2); -} - -# this will check whether a point is in a polygon regardless of polygon orientation -sub point_in_polygon { - my ($point, $polygon) = @_; - - my ($x, $y) = @$point; - my $n = @$polygon; - my @x = map $_->[X], @$polygon; - my @y = map $_->[Y], @$polygon; - - # Derived from the comp.graphics.algorithms FAQ, - # courtesy of Wm. Randolph Franklin - my ($i, $j); - my $side = 0; # 0 = outside; 1 = inside - for ($i = 0, $j = $n - 1; $i < $n; $j = $i++) { - if ( - # If the y is between the (y-) borders... - ($y[$i] <= $y && $y < $y[$j]) || ($y[$j] <= $y && $y < $y[$i]) - and - # ...the (x,y) to infinity line crosses the edge - # from the ith point to the jth point... - ($x < ($x[$j] - $x[$i]) * ($y - $y[$i]) / ($y[$j] - $y[$i]) + $x[$i]) - ) { - $side = not $side; # Jump the fence - } - } - - # if point is not in polygon, let's check whether it belongs to the contour - if (!$side && 0) { - return 1 if polygon_segment_having_point($polygon, $point); - } - - return $side; -} - -sub point_in_segment { - my ($point, $line) = @_; - - my ($x, $y) = @$point; - my $line_p = $line->pp; - my @line_x = sort { $a <=> $b } $line_p->[A][X], $line_p->[B][X]; - my @line_y = sort { $a <=> $b } $line_p->[A][Y], $line_p->[B][Y]; - - # check whether the point is in the segment bounding box - return 0 unless $x >= ($line_x[0] - epsilon) && $x <= ($line_x[1] + epsilon) - && $y >= ($line_y[0] - epsilon) && $y <= ($line_y[1] + epsilon); - - # if line is vertical, check whether point's X is the same as the line - if ($line_p->[A][X] == $line_p->[B][X]) { - return abs($x - $line_p->[A][X]) < epsilon ? 1 : 0; - } - - # calculate the Y in line at X of the point - my $y3 = $line_p->[A][Y] + ($line_p->[B][Y] - $line_p->[A][Y]) - * ($x - $line_p->[A][X]) / ($line_p->[B][X] - $line_p->[A][X]); - return abs($y3 - $y) < epsilon ? 1 : 0; -} - -sub segment_in_segment { - my ($needle, $haystack) = @_; - - # a segment is contained in another segment if its endpoints are contained - return point_in_segment($needle->[A], $haystack) && point_in_segment($needle->[B], $haystack); -} - -sub polyline_lines { - my ($polyline) = @_; - my @points = @$polyline; - return map Slic3r::Line->new(@points[$_, $_+1]), 0 .. $#points-1; -} - -sub polygon_lines { - my ($polygon) = @_; - return polyline_lines([ @$polygon, $polygon->[0] ]); -} - -# given a segment $p1-$p2, get the point at $distance from $p1 along segment -sub point_along_segment { - my ($p1, $p2, $distance) = @_; - - my $point = [ @$p1 ]; - - my $line_length = sqrt( (($p2->[X] - $p1->[X])**2) + (($p2->[Y] - $p1->[Y])**2) ); - for (X, Y) { - if ($p1->[$_] != $p2->[$_]) { - $point->[$_] = $p1->[$_] + ($p2->[$_] - $p1->[$_]) * $distance / $line_length; - } - } - - return Slic3r::Point->new(@$point); -} - -# given a $polygon, return the (first) segment having $point -sub polygon_segment_having_point { - my ($polygon, $point) = @_; - - foreach my $line (@{ $polygon->lines }) { - return $line if point_in_segment($point, $line); - } - return undef; -} - -# return true if the given segment is contained in any edge of the polygon -sub polygon_has_subsegment { - my ($polygon, $segment) = @_; - foreach my $line (polygon_lines($polygon)) { - return 1 if segment_in_segment($segment, $line); - } - return 0; -} - -# polygon must be simple (non complex) and ccw -sub polygon_is_convex { - my ($points) = @_; - for (my $i = 0; $i <= $#$points; $i++) { - my $angle = angle3points($points->[$i-1], $points->[$i-2], $points->[$i]); - return 0 if $angle < PI; - } - return 1; -} - -sub rotate_points { - my ($radians, $center, @points) = @_; - $center //= [0,0]; - return map { - [ - $center->[X] + cos($radians) * ($_->[X] - $center->[X]) - sin($radians) * ($_->[Y] - $center->[Y]), - $center->[Y] + cos($radians) * ($_->[Y] - $center->[Y]) + sin($radians) * ($_->[X] - $center->[X]), - ] - } @points; -} - -sub move_points { - my ($shift, @points) = @_; - return map { - my @p = @$_; - Slic3r::Point->new($shift->[X] + $p[X], $shift->[Y] + $p[Y]); - } @points; -} - -sub move_points_3D { - my ($shift, @points) = @_; - return map [ - $shift->[X] + $_->[X], - $shift->[Y] + $_->[Y], - $shift->[Z] + $_->[Z], - ], @points; -} - -sub normal { - my ($line1, $line2) = @_; - - return [ - ($line1->[Y] * $line2->[Z]) - ($line1->[Z] * $line2->[Y]), - -($line2->[Z] * $line1->[X]) + ($line2->[X] * $line1->[Z]), - ($line1->[X] * $line2->[Y]) - ($line1->[Y] * $line2->[X]), - ]; -} - -sub triangle_normal { - my ($v1, $v2, $v3) = @_; - - my $u = [ map +($v2->[$_] - $v1->[$_]), (X,Y,Z) ]; - my $v = [ map +($v3->[$_] - $v1->[$_]), (X,Y,Z) ]; - - return normal($u, $v); -} - -sub normalize { - my ($line) = @_; - - my $len = sqrt( ($line->[X]**2) + ($line->[Y]**2) + ($line->[Z]**2) ) - or return [0, 0, 0]; # to avoid illegal division by zero - return [ map $_ / $len, @$line ]; -} - -# 2D dot product -sub dot { - my ($u, $v) = @_; - return $u->[X] * $v->[X] + $u->[Y] * $v->[Y]; -} - -# 2D perp product -sub perp { - my ($u, $v) = @_; - return $u->[X] * $v->[Y] - $u->[Y] * $v->[X]; -} - -sub line_intersects_any { - my ($line, $lines) = @_; - for (@$lines) { - return 1 if line_intersection($line, $_, 1); - } - return 0; -} - -sub line_intersection { - my ($line1, $line2, $require_crossing) = @_; - $require_crossing ||= 0; - - my $intersection = _line_intersection(map @$_, @$line1, @$line2); - return (ref $intersection && $intersection->[1] == $require_crossing) - ? $intersection->[0] - : undef; -} - -sub collinear { - my ($line1, $line2, $require_overlapping) = @_; - my $intersection = _line_intersection(map @$_, @$line1, @$line2); - return 0 unless !ref($intersection) - && ($intersection eq 'parallel collinear' - || ($intersection eq 'parallel vertical' && abs($line1->[A][X] - $line2->[A][X]) < epsilon)); - - if ($require_overlapping) { - my @box_a = bounding_box([ $line1->[0], $line1->[1] ]); - my @box_b = bounding_box([ $line2->[0], $line2->[1] ]); - return 0 unless bounding_box_intersect( 2, @box_a, @box_b ); - } - - return 1; -} - -sub _line_intersection { - my ( $x0, $y0, $x1, $y1, $x2, $y2, $x3, $y3 ) = @_; - - my ($x, $y); # The as-yet-undetermined intersection point. - - my $dy10 = $y1 - $y0; # dyPQ, dxPQ are the coordinate differences - my $dx10 = $x1 - $x0; # between the points P and Q. - my $dy32 = $y3 - $y2; - my $dx32 = $x3 - $x2; - - my $dy10z = abs( $dy10 ) < epsilon; # Is the difference $dy10 "zero"? - my $dx10z = abs( $dx10 ) < epsilon; - my $dy32z = abs( $dy32 ) < epsilon; - my $dx32z = abs( $dx32 ) < epsilon; - - my $dyx10; # The slopes. - my $dyx32; - - $dyx10 = $dy10 / $dx10 unless $dx10z; - $dyx32 = $dy32 / $dx32 unless $dx32z; - - # Now we know all differences and the slopes; - # we can detect horizontal/vertical special cases. - # E.g., slope = 0 means a horizontal line. - - unless ( defined $dyx10 or defined $dyx32 ) { - return "parallel vertical"; - } - elsif ( $dy10z and not $dy32z ) { # First line horizontal. - $y = $y0; - $x = $x2 + ( $y - $y2 ) * $dx32 / $dy32; - } - elsif ( not $dy10z and $dy32z ) { # Second line horizontal. - $y = $y2; - $x = $x0 + ( $y - $y0 ) * $dx10 / $dy10; - } - elsif ( $dx10z and not $dx32z ) { # First line vertical. - $x = $x0; - $y = $y2 + $dyx32 * ( $x - $x2 ); - } - elsif ( not $dx10z and $dx32z ) { # Second line vertical. - $x = $x2; - $y = $y0 + $dyx10 * ( $x - $x0 ); - } - elsif ( abs( $dyx10 - $dyx32 ) < epsilon ) { - # The slopes are suspiciously close to each other. - # Either we have parallel collinear or just parallel lines. - - # The bounding box checks have already weeded the cases - # "parallel horizontal" and "parallel vertical" away. - - my $ya = $y0 - $dyx10 * $x0; - my $yb = $y2 - $dyx32 * $x2; - - return "parallel collinear" if abs( $ya - $yb ) < epsilon; - return "parallel"; - } - else { - # None of the special cases matched. - # We have a "honest" line intersection. - - $x = ($y2 - $y0 + $dyx10*$x0 - $dyx32*$x2)/($dyx10 - $dyx32); - $y = $y0 + $dyx10 * ($x - $x0); - } - - my $h10 = $dx10 ? ($x - $x0) / $dx10 : ($dy10 ? ($y - $y0) / $dy10 : 1); - my $h32 = $dx32 ? ($x - $x2) / $dx32 : ($dy32 ? ($y - $y2) / $dy32 : 1); - - return [Slic3r::Point->new($x, $y), $h10 >= 0 && $h10 <= 1 && $h32 >= 0 && $h32 <= 1]; -} - -# http://paulbourke.net/geometry/lineline2d/ -sub _line_intersection2 { - my ($line1, $line2) = @_; - - my $denom = ($line2->[B][Y] - $line2->[A][Y]) * ($line1->[B][X] - $line1->[A][X]) - - ($line2->[B][X] - $line2->[A][X]) * ($line1->[B][Y] - $line1->[A][Y]); - my $numerA = ($line2->[B][X] - $line2->[A][X]) * ($line1->[A][Y] - $line2->[A][Y]) - - ($line2->[B][Y] - $line2->[A][Y]) * ($line1->[A][X] - $line2->[A][X]); - my $numerB = ($line1->[B][X] - $line1->[A][X]) * ($line1->[A][Y] - $line2->[A][Y]) - - ($line1->[B][Y] - $line1->[A][Y]) * ($line1->[A][X] - $line2->[A][X]); - - # are the lines coincident? - if (abs($numerA) < epsilon && abs($numerB) < epsilon && abs($denom) < epsilon) { - return Slic3r::Point->new( - ($line1->[A][X] + $line1->[B][X]) / 2, - ($line1->[A][Y] + $line1->[B][Y]) / 2, - ); - } - - # are the lines parallel? - if (abs($denom) < epsilon) { - return undef; - } - - # is the intersection along the segments? - my $muA = $numerA / $denom; - my $muB = $numerB / $denom; - if ($muA < 0 || $muA > 1 || $muB < 0 || $muB > 1) { - return undef; - } - - return Slic3r::Point->new( - $line1->[A][X] + $muA * ($line1->[B][X] - $line1->[A][X]), - $line1->[A][Y] + $muA * ($line1->[B][Y] - $line1->[A][Y]), - ); -} - -# 2D -sub bounding_box { - my ($points) = @_; - - my @x = map $_->x, @$points; - my @y = map $_->y, @$points; #,, - my @bb = (undef, undef, undef, undef); - for (0..$#x) { - $bb[X1] = $x[$_] if !defined $bb[X1] || $x[$_] < $bb[X1]; - $bb[X2] = $x[$_] if !defined $bb[X2] || $x[$_] > $bb[X2]; - $bb[Y1] = $y[$_] if !defined $bb[Y1] || $y[$_] < $bb[Y1]; - $bb[Y2] = $y[$_] if !defined $bb[Y2] || $y[$_] > $bb[Y2]; - } - - return @bb[X1,Y1,X2,Y2]; -} - -sub bounding_box_center { - my ($bounding_box) = @_; - return Slic3r::Point->new( - ($bounding_box->[X2] + $bounding_box->[X1]) / 2, - ($bounding_box->[Y2] + $bounding_box->[Y1]) / 2, - ); -} - -sub size_2D { - my @bounding_box = bounding_box(@_); - return ( - ($bounding_box[X2] - $bounding_box[X1]), - ($bounding_box[Y2] - $bounding_box[Y1]), - ); -} - -# bounding_box_intersect($d, @a, @b) -# Return true if the given bounding boxes @a and @b intersect -# in $d dimensions. Used by line_intersection(). -sub bounding_box_intersect { - my ( $d, @bb ) = @_; # Number of dimensions and box coordinates. - my @aa = splice( @bb, 0, 2 * $d ); # The first box. - # (@bb is the second one.) - - # Must intersect in all dimensions. - for ( my $i_min = 0; $i_min < $d; $i_min++ ) { - my $i_max = $i_min + $d; # The index for the maximum. - return 0 if ( $aa[ $i_max ] + epsilon ) < $bb[ $i_min ]; - return 0 if ( $bb[ $i_max ] + epsilon ) < $aa[ $i_min ]; - } - - return 1; -} - -# 3D -sub bounding_box_3D { - my ($points) = @_; - - my @extents = (map [undef, undef], X,Y,Z); - foreach my $point (@$points) { - for (X,Y,Z) { - $extents[$_][MIN] = $point->[$_] if !defined $extents[$_][MIN] || $point->[$_] < $extents[$_][MIN]; - $extents[$_][MAX] = $point->[$_] if !defined $extents[$_][MAX] || $point->[$_] > $extents[$_][MAX]; - } - } - return @extents; -} - -sub size_3D { - my ($points) = @_; - - my @extents = bounding_box_3D($points); - return map $extents[$_][MAX] - $extents[$_][MIN], (X,Y,Z); -} - -# this assumes a CCW rotation from $p2 to $p3 around $p1 -sub angle3points { - my ($p1, $p2, $p3) = @_; - # p1 is the center - - my $angle = atan2($p2->[X] - $p1->[X], $p2->[Y] - $p1->[Y]) - - atan2($p3->[X] - $p1->[X], $p3->[Y] - $p1->[Y]); - - # we only want to return only positive angles - return $angle <= 0 ? $angle + 2*PI() : $angle; -} - -sub polyline_remove_short_segments { - my ($points, $min_length, $isPolygon) = @_; - for (my $i = $isPolygon ? 0 : 1; $i < $#$points; $i++) { - if (distance_between_points($points->[$i-1], $points->[$i]) < $min_length) { - # we can remove $points->[$i] - splice @$points, $i, 1; - $i--; - } - } -} - -sub douglas_peucker { - my ($points, $tolerance) = @_; - no warnings "recursion"; - - my $results = []; - my $dmax = 0; - my $index = 0; - for my $i (1..$#$points) { - my $d = $points->[$i]->distance_to(Slic3r::Line->new($points->[0], $points->[-1])); - if ($d > $dmax) { - $index = $i; - $dmax = $d; - } - } - if ($dmax >= $tolerance) { - my $dp1 = douglas_peucker([ @$points[0..$index] ], $tolerance); - $results = [ - @$dp1[0..($#$dp1-1)], - @{douglas_peucker([ @$points[$index..$#$points] ], $tolerance)}, - ]; - } else { - $results = [ $points->[0], $points->[-1] ]; - } - return $results; -} - -sub douglas_peucker2 { - my ($points, $tolerance) = @_; - - my $anchor = 0; - my $floater = $#$points; - my @stack = (); - my %keep = (); - - push @stack, [$anchor, $floater]; - while (@stack) { - ($anchor, $floater) = @{pop @stack}; - - # initialize line segment - my ($anchor_x, $anchor_y, $seg_len); - if (grep $points->[$floater][$_] != $points->[$anchor][$_], X, Y) { - $anchor_x = $points->[$floater][X] - $points->[$anchor][X]; - $anchor_y = $points->[$floater][Y] - $points->[$anchor][Y]; - $seg_len = sqrt(($anchor_x ** 2) + ($anchor_y ** 2)); - # get the unit vector - $anchor_x /= $seg_len; - $anchor_y /= $seg_len; - } else { - $anchor_x = $anchor_y = $seg_len = 0; - } - - # inner loop: - my $max_dist = 0; - my $farthest = $anchor + 1; - for my $i (($anchor + 1) .. $floater) { - my $dist_to_seg = 0; - # compare to anchor - my $vecX = $points->[$i][X] - $points->[$anchor][X]; - my $vecY = $points->[$i][Y] - $points->[$anchor][Y]; - $seg_len = sqrt(($vecX ** 2) + ($vecY ** 2)); - # dot product: - my $proj = $vecX * $anchor_x + $vecY * $anchor_y; - if ($proj < 0) { - $dist_to_seg = $seg_len; - } else { - # compare to floater - $vecX = $points->[$i][X] - $points->[$floater][X]; - $vecY = $points->[$i][Y] - $points->[$floater][Y]; - $seg_len = sqrt(($vecX ** 2) + ($vecY ** 2)); - # dot product: - $proj = $vecX * (-$anchor_x) + $vecY * (-$anchor_y); - if ($proj < 0) { - $dist_to_seg = $seg_len - } else { # calculate perpendicular distance to line (pythagorean theorem): - $dist_to_seg = sqrt(abs(($seg_len ** 2) - ($proj ** 2))); - } - if ($max_dist < $dist_to_seg) { - $max_dist = $dist_to_seg; - $farthest = $i; - } - } - } - - if ($max_dist <= $tolerance) { # use line segment - $keep{$_} = 1 for $anchor, $floater; - } else { - push @stack, [$anchor, $farthest]; - push @stack, [$farthest, $floater]; - } - } - - return [ map $points->[$_], sort keys %keep ]; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Geometry/Clipper.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Geometry/Clipper.pm deleted file mode 100644 index a3239c2f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Geometry/Clipper.pm +++ /dev/null @@ -1,13 +0,0 @@ -package Slic3r::Geometry::Clipper; -use strict; -use warnings; - -require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(offset offset_ex - diff_ex diff union_ex intersection_ex JT_ROUND JT_MITER - JT_SQUARE is_counter_clockwise union_pt offset2 offset2_ex - intersection intersection_pl diff_pl union CLIPPER_OFFSET_SCALE - union_pt_chained intersection_ppl); - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Layer.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Layer.pm deleted file mode 100644 index 4bff9b61..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Layer.pm +++ /dev/null @@ -1,37 +0,0 @@ -# Extends the C++ class Slic3r::Layer. - -package Slic3r::Layer; -use strict; -use warnings; - -# the following two were previously generated by Moo -sub print { - my $self = shift; - return $self->object->print; -} - -sub config { - my $self = shift; - return $self->object->config; -} - -sub region { - my $self = shift; - my ($region_id) = @_; - - while ($self->region_count <= $region_id) { - $self->add_region($self->object->print->get_region($self->region_count)); - } - - return $self->get_region($region_id); -} - -sub regions { - my ($self) = @_; - return [ map $self->get_region($_), 0..($self->region_count-1) ]; -} - -package Slic3r::Layer::Support; -our @ISA = qw(Slic3r::Layer); - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Line.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Line.pm deleted file mode 100644 index bf53520d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Line.pm +++ /dev/null @@ -1,19 +0,0 @@ -package Slic3r::Line; -use strict; -use warnings; - -# a line is a two-points line -use parent 'Slic3r::Polyline'; - -sub intersection { - my $self = shift; - my ($line, $require_crossing) = @_; - return Slic3r::Geometry::line_intersection($self, $line, $require_crossing); -} - -sub grow { - my $self = shift; - return Slic3r::Polyline->new(@$self)->grow(@_); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Model.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Model.pm deleted file mode 100644 index 8f75e91a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Model.pm +++ /dev/null @@ -1,148 +0,0 @@ -# extends C++ class Slic3r::Model -package Slic3r::Model; - -use List::Util qw(first max any); -use Slic3r::Geometry qw(X Y Z move_points); - -sub merge { - my $class = shift; - my @models = @_; - - my $new_model = ref($class) - ? $class - : $class->new; - - $new_model->add_object($_) for map @{$_->objects}, @models; - return $new_model; -} - -sub add_object { - my $self = shift; - - if (@_ == 1) { - # we have a Model::Object - my ($object) = @_; - return $self->_add_object_clone($object); - } else { - my (%args) = @_; - - my $new_object = $self->_add_object; - - $new_object->set_name($args{name}) - if defined $args{name}; - $new_object->set_input_file($args{input_file}) - if defined $args{input_file}; - $new_object->config->apply($args{config}) - if defined $args{config}; - $new_object->set_layer_height_ranges($args{layer_height_ranges}) - if defined $args{layer_height_ranges}; - $new_object->set_origin_translation($args{origin_translation}) - if defined $args{origin_translation}; - - return $new_object; - } -} - -sub set_material { - my $self = shift; - my ($material_id, $attributes) = @_; - - my $material = $self->add_material($material_id); - $material->apply($attributes // {}); - return $material; -} - -# Extends C++ class Slic3r::ModelMaterial -package Slic3r::Model::Material; - -sub apply { - my ($self, $attributes) = @_; - $self->set_attribute($_, $attributes{$_}) for keys %$attributes; -} - -# Extends C++ class Slic3r::ModelObject -package Slic3r::Model::Object; - -use File::Basename qw(basename); -use List::Util qw(first sum); -use Slic3r::Geometry qw(X Y Z rad2deg); - -sub add_volume { - my $self = shift; - - my $new_volume; - if (@_ == 1) { - # we have a Model::Volume - my ($volume) = @_; - - $new_volume = $self->_add_volume_clone($volume); - - if ($volume->material_id ne '') { - # merge material attributes and config (should we rename materials in case of duplicates?) - if (my $material = $volume->object->model->get_material($volume->material_id)) { - my %attributes = %{ $material->attributes }; - if ($self->model->has_material($volume->material_id)) { - %attributes = (%attributes, %{ $self->model->get_material($volume->material_id)->attributes }) - } - my $new_material = $self->model->set_material($volume->material_id, {%attributes}); - $new_material->config->apply($material->config); - } - } - } else { - my %args = @_; - - $new_volume = $self->_add_volume($args{mesh}); - - $new_volume->set_name($args{name}) - if defined $args{name}; - $new_volume->set_material_id($args{material_id}) - if defined $args{material_id}; - $new_volume->set_modifier($args{modifier}) - if defined $args{modifier}; - $new_volume->config->apply($args{config}) - if defined $args{config}; - } - - if ($new_volume->material_id ne '' && !defined $self->model->get_material($new_volume->material_id)) { - # TODO: this should be a trigger on Volume::material_id - $self->model->set_material($new_volume->material_id); - } - - $self->invalidate_bounding_box; - - return $new_volume; -} - -sub add_instance { - my $self = shift; - my %params = @_; - - if (@_ == 1) { - # we have a Model::Instance - my ($instance) = @_; - return $self->_add_instance_clone($instance); - } else { - my (%args) = @_; - - my $new_instance = $self->_add_instance; - - $new_instance->set_rotation($args{rotation}) - if defined $args{rotation}; - $new_instance->set_x_rotation($args{x_rotation}) - if defined $args{x_rotation}; - $new_instance->set_y_rotation($args{y_rotation}) - if defined $args{y_rotation}; - $new_instance->set_scaling_factor($args{scaling_factor}) - if defined $args{scaling_factor}; - $new_instance->set_scaling_vector($args{scaling_vector}) - if defined $args{scaling_vector}; - $new_instance->set_offset($args{offset}) - if defined $args{offset}; - $new_instance->set_z_translation($args{z_translation}) - if defined $args{z_translation}; - - return $new_instance; - } -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Point.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Point.pm deleted file mode 100644 index 535a9719..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Point.pm +++ /dev/null @@ -1,33 +0,0 @@ -package Slic3r::Point; -use strict; -use warnings; - -sub new_scale { - my $class = shift; - return $class->new(map Slic3r::Geometry::scale($_), @_); -} - -sub dump_perl { - my $self = shift; - return sprintf "[%s,%s]", @$self; -} - -package Slic3r::Pointf; -use strict; -use warnings; - -sub new_unscale { - my $class = shift; - return $class->new(map Slic3r::Geometry::unscale($_), @_); -} - -package Slic3r::Pointf3; -use strict; -use warnings; - -sub new_unscale { - my $class = shift; - return $class->new(map Slic3r::Geometry::unscale($_), @_); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Polygon.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Polygon.pm deleted file mode 100644 index 16b334b3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Polygon.pm +++ /dev/null @@ -1,35 +0,0 @@ -package Slic3r::Polygon; -use strict; -use warnings; - -# a polygon is a closed polyline. -use parent 'Slic3r::Polyline'; - -use Slic3r::Geometry qw(PI); - -sub grow { - my $self = shift; - return $self->split_at_first_point->grow(@_); -} - -# this method subdivides the polygon segments to that no one of them -# is longer than the length provided -sub subdivide { - my $self = shift; - my ($max_length) = @_; - - my @points = @$self; - push @points, $points[0]; # append first point as this is a polygon - my @new_points = shift @points; - while (@points) { - while ($new_points[-1]->distance_to($points[0]) > $max_length) { - push @new_points, map Slic3r::Point->new(@$_), - Slic3r::Geometry::point_along_segment($new_points[-1], $points[0], $max_length); - } - push @new_points, shift @points; - } - pop @new_points; # remove last point as it coincides with first one - return Slic3r::Polygon->new(@new_points); -} - -1; \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Polyline.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Polyline.pm deleted file mode 100644 index 9cc14240..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Polyline.pm +++ /dev/null @@ -1,18 +0,0 @@ -package Slic3r::Polyline; -use strict; -use warnings; - -use Slic3r::Geometry qw(X Y); - -sub new_scale { - my $class = shift; - my @points = map { ref($_) eq 'Slic3r::Point' ? $_->pp : $_ } @_; - return $class->new(map [ Slic3r::Geometry::scale($_->[X]), Slic3r::Geometry::scale($_->[Y]) ], @points); -} - -sub dump_perl { - my $self = shift; - return sprintf "[%s]", join ',', map "[$_->[0],$_->[1]]", @$self; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print.pm deleted file mode 100644 index 23799e8b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print.pm +++ /dev/null @@ -1,408 +0,0 @@ -# The slicing work horse. -# Extends C++ class Slic3r::Print -package Slic3r::Print; -use strict; -use warnings; - -use File::Basename qw(basename fileparse); -use File::Spec; -use List::Util qw(min max first sum); -use Slic3r::ExtrusionLoop ':roles'; -use Slic3r::ExtrusionPath ':roles'; -use Slic3r::Flow ':roles'; -use Slic3r::Geometry qw(X Y Z X1 Y1 X2 Y2 MIN MAX PI scale unscale convex_hull); -use Slic3r::Geometry::Clipper qw(diff_ex union_ex intersection_ex intersection offset - offset2 union union_pt_chained JT_ROUND JT_SQUARE diff_pl); -use Slic3r::Print::State ':steps'; -use Slic3r::Surface qw(S_TYPE_BOTTOM); - -our $status_cb; - -sub set_status_cb { - my ($class, $cb) = @_; - $status_cb = $cb; -} - -sub status_cb { - return $status_cb // sub {}; -} - -# this value is not supposed to be compared with $layer->id -# since they have different semantics -sub total_layer_count { - my $self = shift; - return max(map $_->total_layer_count, @{$self->objects}); -} - -sub size { - my $self = shift; - return $self->bounding_box->size; -} - -sub process { - my ($self) = @_; - - ### No need to call this as we call it as part of prepare_infill() - ### until we fix the idempotency issue. - ###$self->status_cb->(20, "Generating perimeters"); - ###$_->make_perimeters for @{$self->objects}; - - $self->status_cb->(70, "Infilling layers"); - $_->infill for @{$self->objects}; - - $_->generate_support_material for @{$self->objects}; - $self->make_skirt; - $self->make_brim; # must come after make_skirt - - # time to make some statistics - if (0) { - eval "use Devel::Size"; - print "MEMORY USAGE:\n"; - printf " meshes = %.1fMb\n", List::Util::sum(map Devel::Size::total_size($_->meshes), @{$self->objects})/1024/1024; - printf " layer slices = %.1fMb\n", List::Util::sum(map Devel::Size::total_size($_->slices), map @{$_->layers}, @{$self->objects})/1024/1024; - printf " region slices = %.1fMb\n", List::Util::sum(map Devel::Size::total_size($_->slices), map @{$_->regions}, map @{$_->layers}, @{$self->objects})/1024/1024; - printf " perimeters = %.1fMb\n", List::Util::sum(map Devel::Size::total_size($_->perimeters), map @{$_->regions}, map @{$_->layers}, @{$self->objects})/1024/1024; - printf " fills = %.1fMb\n", List::Util::sum(map Devel::Size::total_size($_->fills), map @{$_->regions}, map @{$_->layers}, @{$self->objects})/1024/1024; - printf " print object = %.1fMb\n", Devel::Size::total_size($self)/1024/1024; - } - if (0) { - eval "use Slic3r::Test::SectionCut"; - Slic3r::Test::SectionCut->new(print => $self)->export_svg("section_cut.svg"); - } -} - -sub escaped_split { - my ($line) = @_; - - # Free up three characters for temporary replacement - $line =~ s/%/%%/g; - $line =~ s/#/##/g; - $line =~ s/\?/\?\?/g; - - # replace escaped !'s - $line =~ s/\!\!/%#\?/g; - - # split on non-escaped whitespace - my @split = split /(?<=[^\!])\s+/, $line, -1; - - for my $part (@split) { - # replace escaped whitespace with the whitespace - $part =~ s/\!(\s+)/$1/g; - - # resub temp symbols - $part =~ s/%#\?/\!/g; - $part =~ s/%%/%/g; - $part =~ s/##/#/g; - $part =~ s/\?\?/\?/g; - } - - return @split; -} - -sub export_gcode { - my $self = shift; - my %params = @_; - - # prerequisites - $self->process; - - # output everything to a G-code file - my $output_file = $self->output_filepath($params{output_file} // ''); - $self->status_cb->(90, "Exporting G-code" . ($output_file ? " to $output_file" : "")); - - { - # open output gcode file if we weren't supplied a file-handle - my ($fh, $tempfile); - if ($params{output_fh}) { - $fh = $params{output_fh}; - } else { - $tempfile = "$output_file.tmp"; - Slic3r::open(\$fh, ">", $tempfile) - or die "Failed to open $tempfile for writing\n"; - - # enable UTF-8 output since user might have entered Unicode characters in fields like notes - binmode $fh, ':utf8'; - } - - Slic3r::Print::GCode->new( - print => $self, - fh => $fh, - )->export; - - # close our gcode file - close $fh; - if ($tempfile) { - my $renamed = 0; - for my $i (1..5) { - last if $renamed = rename Slic3r::encode_path($tempfile), Slic3r::encode_path($output_file); - # Wait for 1/4 seconds and try to rename once again. - select(undef, undef, undef, 0.25); - } - Slic3r::debugf "Failed to remove the output G-code file from $tempfile to $output_file. Is $tempfile locked?\n" - if !$renamed; - } - } - - # run post-processing scripts - if (@{$self->config->post_process}) { - $self->status_cb->(95, "Running post-processing scripts"); - $self->config->setenv; - for my $script (@{$self->config->post_process}) { - Slic3r::debugf " '%s' '%s'\n", $script, $output_file; - my @parsed_script = escaped_split $script; - my $executable = shift @parsed_script ; - push @parsed_script, $output_file; - # -x doesn't return true on Windows except for .exe files - if (($^O eq 'MSWin32') ? !(-e $executable) : !(-x $executable)) { - die "The configured post-processing script is not executable: check permissions or escape whitespace/exclamation points. ($executable) \n"; - } - system($executable, @parsed_script); - } - } -} - -# Export SVG slices for the offline SLA printing. -sub export_svg { - my $self = shift; - my %params = @_; - - $_->slice for @{$self->objects}; - - my $fh = $params{output_fh}; - if (!$fh) { - my $output_file = $self->output_filepath($params{output_file}); - $output_file =~ s/\.gcode$/.svg/i; - Slic3r::open(\$fh, ">", $output_file) or die "Failed to open $output_file for writing\n"; - print "Exporting to $output_file..." unless $params{quiet}; - } - - my $print_bb = $self->bounding_box; - my $print_size = $print_bb->size; - print $fh sprintf <<"EOF", unscale($print_size->[X]), unscale($print_size->[Y]); - - - - -EOF - - my $print_polygon = sub { - my ($polygon, $type) = @_; - printf $fh qq{ \n}, - $type, (join ' ', map { join ',', map unscale $_, @$_ } @$polygon), - ($type eq 'contour' ? 'white' : 'black'); - }; - - my @layers = sort { $a->print_z <=> $b->print_z } - map { @{$_->layers}, @{$_->support_layers} } - @{$self->objects}; - - my $layer_id = -1; - my @previous_layer_slices = (); - for my $layer (@layers) { - $layer_id++; - if ($layer->slice_z == -1) { - printf $fh qq{ \n}, $layer_id; - } else { - printf $fh qq{ \n}, $layer_id, unscale($layer->slice_z); - } - - my @current_layer_slices = (); - # sort slices so that the outermost ones come first - my @slices = sort { $a->contour->contains_point($b->contour->first_point) ? 0 : 1 } @{$layer->slices}; - foreach my $copy (@{$layer->object->_shifted_copies}) { - foreach my $slice (@slices) { - my $expolygon = $slice->clone; - $expolygon->translate(@$copy); - $expolygon->translate(-$print_bb->x_min, -$print_bb->y_min); - $print_polygon->($expolygon->contour, 'contour'); - $print_polygon->($_, 'hole') for @{$expolygon->holes}; - push @current_layer_slices, $expolygon; - } - } - # generate support material - if ($self->has_support_material && $layer->id > 0) { - my (@supported_slices, @unsupported_slices) = (); - foreach my $expolygon (@current_layer_slices) { - my $intersection = intersection_ex( - [ map @$_, @previous_layer_slices ], - [ @$expolygon ], - ); - @$intersection - ? push @supported_slices, $expolygon - : push @unsupported_slices, $expolygon; - } - my @supported_points = map @$_, @$_, @supported_slices; - foreach my $expolygon (@unsupported_slices) { - # look for the nearest point to this island among all - # supported points - my $contour = $expolygon->contour; - my $support_point = $contour->first_point->nearest_point(\@supported_points) - or next; - my $anchor_point = $support_point->nearest_point([ @$contour ]); - printf $fh qq{ \n}, - map @$_, $support_point, $anchor_point; - } - } - print $fh qq{ \n}; - @previous_layer_slices = @current_layer_slices; - } - - print $fh "\n"; - close $fh; - print "Done.\n" unless $params{quiet}; -} - -sub make_skirt { - my $self = shift; - - # prerequisites - $_->make_perimeters for @{$self->objects}; - $_->infill for @{$self->objects}; - $_->generate_support_material for @{$self->objects}; - - return if $self->step_done(STEP_SKIRT); - $self->set_step_started(STEP_SKIRT); - - # since this method must be idempotent, we clear skirt paths *before* - # checking whether we need to generate them - $self->skirt->clear; - - if (!$self->has_skirt) { - $self->set_step_done(STEP_SKIRT); - return; - } - $self->status_cb->(88, "Generating skirt"); - - # First off we need to decide how tall the skirt must be. - # The skirt_height option from config is expressed in layers, but our - # object might have different layer heights, so we need to find the print_z - # of the highest layer involved. - # Note that unless has_infinite_skirt() == true - # the actual skirt might not reach this $skirt_height_z value since the print - # order of objects on each layer is not guaranteed and will not generally - # include the thickest object first. It is just guaranteed that a skirt is - # prepended to the first 'n' layers (with 'n' = skirt_height). - # $skirt_height_z in this case is the highest possible skirt height for safety. - my $skirt_height_z = -1; - foreach my $object (@{$self->objects}) { - my $skirt_height = $self->has_infinite_skirt - ? $object->layer_count - : min($self->config->skirt_height, $object->layer_count); - my $highest_layer = $object->get_layer($skirt_height - 1); - $skirt_height_z = max($skirt_height_z, $highest_layer->print_z); - } - - # collect points from all layers contained in skirt height - my @points = (); - foreach my $object (@{$self->objects}) { - my @object_points = (); - - # get object layers up to $skirt_height_z - foreach my $layer (@{$object->layers}) { - last if $layer->print_z > $skirt_height_z; - push @object_points, map @$_, map @$_, @{$layer->slices}; - } - - # get support layers up to $skirt_height_z - foreach my $layer (@{$object->support_layers}) { - last if $layer->print_z > $skirt_height_z; - push @object_points, map @{$_->polyline}, @{$layer->support_fills} if $layer->support_fills; - push @object_points, map @{$_->polyline}, @{$layer->support_interface_fills} if $layer->support_interface_fills; - } - - # repeat points for each object copy - foreach my $copy (@{$object->_shifted_copies}) { - my @copy_points = map $_->clone, @object_points; - $_->translate(@$copy) for @copy_points; - push @points, @copy_points; - } - } - return if @points < 3; # at least three points required for a convex hull - - # find out convex hull - my $convex_hull = convex_hull(\@points); - - my @extruded_length = (); # for each extruder - - # skirt may be printed on several layers, having distinct layer heights, - # but loops must be aligned so can't vary width/spacing - # TODO: use each extruder's own flow - my $first_layer_height = $self->skirt_first_layer_height; - my $flow = $self->skirt_flow; - my $spacing = $flow->spacing; - my $mm3_per_mm = $flow->mm3_per_mm; - - my @extruders_e_per_mm = (); - my $extruder_idx = 0; - - my $skirts = $self->config->skirts; - $skirts ||= 1 if $self->has_infinite_skirt; - - # draw outlines from outside to inside - # loop while we have less skirts than required or any extruder hasn't reached the min length if any - my $distance = scale max($self->config->skirt_distance, $self->config->brim_width); - for (my $i = $skirts; $i > 0; $i--) { - $distance += scale $spacing; - my $loop = offset([$convex_hull], $distance, 1, JT_ROUND, scale(0.1))->[0]; - my $eloop = Slic3r::ExtrusionLoop->new_from_paths( - Slic3r::ExtrusionPath->new( - polyline => Slic3r::Polygon->new(@$loop)->split_at_first_point, - role => EXTR_ROLE_SKIRT, - mm3_per_mm => $mm3_per_mm, # this will be overridden at G-code export time - width => $flow->width, - height => $first_layer_height, # this will be overridden at G-code export time - ), - ); - $eloop->role(EXTRL_ROLE_SKIRT); - $self->skirt->append($eloop); - - if ($self->config->min_skirt_length > 0) { - $extruded_length[$extruder_idx] ||= 0; - if (!$extruders_e_per_mm[$extruder_idx]) { - my $config = Slic3r::Config::GCode->new; - $config->apply_static($self->config); - my $extruder = Slic3r::Extruder->new($extruder_idx, $config); - $extruders_e_per_mm[$extruder_idx] = $extruder->e_per_mm($mm3_per_mm); - } - $extruded_length[$extruder_idx] += unscale $loop->length * $extruders_e_per_mm[$extruder_idx]; - $i++ if defined first { ($extruded_length[$_] // 0) < $self->config->min_skirt_length } 0 .. $#{$self->extruders}; - if ($extruded_length[$extruder_idx] >= $self->config->min_skirt_length) { - if ($extruder_idx < $#{$self->extruders}) { - $extruder_idx++; - next; - } - } - } - } - - $self->skirt->reverse; - - $self->set_step_done(STEP_SKIRT); -} - -sub make_brim { - my $self = shift; - - # prerequisites - $_->make_perimeters for @{$self->objects}; - $_->infill for @{$self->objects}; - $_->generate_support_material for @{$self->objects}; - $self->make_skirt; - - $self->status_cb->(88, "Generating brim"); - $self->_make_brim; -} - -# Wrapper around the C++ Slic3r::Print::validate() -# to produce a Perl exception without a hang-up on some Strawberry perls. -sub validate -{ - my $self = shift; - my $err = $self->_validate; - die $err . "\n" if (defined($err) && $err ne ''); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print/GCode.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print/GCode.pm deleted file mode 100644 index 514d9f78..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print/GCode.pm +++ /dev/null @@ -1,755 +0,0 @@ -package Slic3r::Print::GCode; -use Moo; - -has 'print' => (is => 'ro', required => 1, handles => [qw(objects placeholder_parser config)]); -has 'fh' => (is => 'ro', required => 1); - -has '_gcodegen' => (is => 'rw'); -has '_cooling_buffer' => (is => 'rw'); -has '_spiral_vase' => (is => 'rw'); -has '_vibration_limit' => (is => 'rw'); -has '_arc_fitting' => (is => 'rw'); -has '_pressure_regulator' => (is => 'rw'); -has '_skirt_done' => (is => 'rw', default => sub { {} }); # print_z => 1 -has '_brim_done' => (is => 'rw'); -has '_second_layer_things_done' => (is => 'rw'); -has '_last_obj_copy' => (is => 'rw'); -has '_autospeed' => (is => 'rw', default => sub { 0 }); # boolean - -use List::Util qw(first sum min max); -use Slic3r::ExtrusionPath ':roles'; -use Slic3r::Flow ':roles'; -use Slic3r::Geometry qw(X Y scale unscale chained_path convex_hull); -use Slic3r::Geometry::Clipper qw(JT_SQUARE union_ex offset); - -sub BUILD { - my ($self) = @_; - - { - # estimate the total number of layer changes - # TODO: only do this when M73 is enabled - my $layer_count; - if ($self->config->complete_objects) { - $layer_count = sum(map { $_->total_layer_count * @{$_->copies} } @{$self->objects}); - } else { - # if sequential printing is not enable, all copies of the same object share the same layer change command(s) - $layer_count = sum(map { $_->total_layer_count } @{$self->objects}); - } - - # set up our helper object: This is a C++ Slic3r::GCode instance. - my $gcodegen = Slic3r::GCode->new; - $self->_gcodegen($gcodegen); - $gcodegen->set_placeholder_parser($self->placeholder_parser); - $gcodegen->set_layer_count($layer_count); - $gcodegen->set_enable_cooling_markers(1); - $gcodegen->apply_print_config($self->config); - $gcodegen->set_extruders($self->print->extruders); - } - - $self->_cooling_buffer(Slic3r::GCode::CoolingBuffer->new($self->_gcodegen)); - - $self->_spiral_vase(Slic3r::GCode::SpiralVase->new($self->config)) - if $self->config->spiral_vase; - - $self->_vibration_limit(Slic3r::GCode::VibrationLimit->new(config => $self->config)) - if $self->config->vibration_limit != 0; - - $self->_arc_fitting(Slic3r::GCode::ArcFitting->new(config => $self->config)) - if $self->config->gcode_arcs; - - $self->_pressure_regulator(Slic3r::GCode::PressureRegulator->new(config => $self->config)) - if $self->config->pressure_advance > 0; -} - -# Export a G-code for the complete print. -sub export { - my ($self) = @_; - - my $fh = $self->fh; - my $gcodegen = $self->_gcodegen; - - # Write information on the generator. - my @lt = localtime; - printf $fh "; generated by Slic3r $Slic3r::VERSION on %04d-%02d-%02d at %02d:%02d:%02d\n\n", - $lt[5] + 1900, $lt[4]+1, $lt[3], $lt[2], $lt[1], $lt[0]; - # Write notes (content of all Settings tabs -> Notes) - print $fh $gcodegen->notes; - # Write some terse information on the slicing parameters. - my $first_object = $self->objects->[0]; - my $layer_height = $first_object->config->layer_height; - for my $region_id (0..$#{$self->print->regions}) { - my $region = $self->print->regions->[$region_id]; - - { - my $flow = $region->flow(FLOW_ROLE_EXTERNAL_PERIMETER, $layer_height, 0, 0, -1, $first_object); - my $vol_speed = $flow->mm3_per_mm * $region->config->get_abs_value('external_perimeter_speed'); - $vol_speed = min($vol_speed, $self->config->max_volumetric_speed) if $self->config->max_volumetric_speed > 0; - printf $fh "; external perimeters extrusion width = %.2fmm (%.2fmm^3/s)\n", - $flow->width, $vol_speed; - } - { - my $flow = $region->flow(FLOW_ROLE_PERIMETER, $layer_height, 0, 0, -1, $first_object); - my $vol_speed = $flow->mm3_per_mm * $region->config->get_abs_value('perimeter_speed'); - $vol_speed = min($vol_speed, $self->config->max_volumetric_speed) if $self->config->max_volumetric_speed > 0; - printf $fh "; perimeters extrusion width = %.2fmm (%.2fmm^3/s)\n", - $flow->width, $vol_speed; - } - { - my $flow = $region->flow(FLOW_ROLE_INFILL, $layer_height, 0, 0, -1, $first_object); - my $vol_speed = $flow->mm3_per_mm * $region->config->get_abs_value('infill_speed'); - $vol_speed = min($vol_speed, $self->config->max_volumetric_speed) if $self->config->max_volumetric_speed > 0; - printf $fh "; infill extrusion width = %.2fmm (%.2fmm^3/s)\n", - $flow->width, $vol_speed; - } - { - my $flow = $region->flow(FLOW_ROLE_SOLID_INFILL, $layer_height, 0, 0, -1, $first_object); - my $vol_speed = $flow->mm3_per_mm * $region->config->get_abs_value('solid_infill_speed'); - $vol_speed = min($vol_speed, $self->config->max_volumetric_speed) if $self->config->max_volumetric_speed > 0; - printf $fh "; solid infill extrusion width = %.2fmm (%.2fmm^3/s)\n", - $flow->width, $vol_speed; - } - { - my $flow = $region->flow(FLOW_ROLE_TOP_SOLID_INFILL, $layer_height, 0, 0, -1, $first_object); - my $vol_speed = $flow->mm3_per_mm * $region->config->get_abs_value('top_solid_infill_speed'); - $vol_speed = min($vol_speed, $self->config->max_volumetric_speed) if $self->config->max_volumetric_speed > 0; - printf $fh "; top infill extrusion width = %.2fmm (%.2fmm^3/s)\n", - $flow->width, $vol_speed; - } - - if ($self->print->has_support_material) { - my $object0 = $self->objects->[0]; - my $flow = $object0->support_material_flow; - my $vol_speed = $flow->mm3_per_mm * $object0->config->get_abs_value('support_material_speed'); - $vol_speed = min($vol_speed, $self->config->max_volumetric_speed) if $self->config->max_volumetric_speed > 0; - printf $fh "; support material extrusion width = %.2fmm (%.2fmm^3/s)\n", - $flow->width, $vol_speed; - } - - printf $fh "; first layer extrusion width = %.2fmm (%.2fmm^3/s)\n", - $region->flow(FLOW_ROLE_PERIMETER, $layer_height, 0, 1, -1, $self->objects->[0])->width - if $region->config->first_layer_extrusion_width; - - print $fh "\n"; - } - - # prepare the helper object for replacing placeholders in custom G-code and output filename - $self->placeholder_parser->update_timestamp; - - # GCode sets this automatically whenever we call change_layer(), - # but we need it for skirt/brim too - $gcodegen->set_first_layer(1); - - # disable fan - print $fh $gcodegen->writer->set_fan(0, 1) - if $self->config->cooling && $self->config->disable_fan_first_layers; - - # set bed temperature - if ($self->config->has_heatbed && (my $temp = $self->config->first_layer_bed_temperature) && $self->config->start_gcode !~ /M(?:190|140)/i) { - printf $fh $gcodegen->writer->set_bed_temperature($temp, 1); - } - - # set extruder(s) temperature before and after start G-code - my $include_start_extruder_temp = $self->config->start_gcode !~ /M(?:109|104)/i; - foreach my $start_gcode (@{ $self->config->start_filament_gcode }) { # process filament gcode in order - $include_start_extruder_temp = $include_start_extruder_temp && ($start_gcode !~ /M(?:109|104)/i); - } - my $include_end_extruder_temp = $self->config->end_gcode !~ /M(?:109|104)/i; - foreach my $end_gcode (@{ $self->config->end_filament_gcode }) { # process filament gcode in order - $include_end_extruder_temp = $include_end_extruder_temp && ($end_gcode !~ /M(?:109|104)/i); - } - $self->_print_first_layer_temperature(0) - if $include_start_extruder_temp; - printf $fh "%s\n", Slic3r::ConditionalGCode::apply_math($gcodegen->placeholder_parser->process($self->config->start_gcode)); - foreach my $start_gcode (@{ $self->config->start_filament_gcode }) { # process filament gcode in order - printf $fh "%s\n", Slic3r::ConditionalGCode::apply_math($gcodegen->placeholder_parser->process($start_gcode)); - } - $self->_print_first_layer_temperature(1) - if $include_start_extruder_temp; - - # set other general things - print $fh $gcodegen->preamble; - - # initialize a motion planner for object-to-object travel moves - if ($self->config->avoid_crossing_perimeters) { - my $distance_from_objects = scale 1; - - # compute the offsetted convex hull for each object and repeat it for each copy. - my @islands_p = (); - foreach my $object (@{$self->objects}) { - # discard objects only containing thin walls (offset would fail on an empty polygon) - my @polygons = map $_->contour, map @{$_->slices}, @{$object->layers}; - next if !@polygons; - - # translate convex hull for each object copy and append it to the islands array - foreach my $copy (@{ $object->_shifted_copies }) { - my @copy_islands_p = map $_->clone, @polygons; - $_->translate(@$copy) for @copy_islands_p; - push @islands_p, @copy_islands_p; - } - } - $gcodegen->avoid_crossing_perimeters->init_external_mp(union_ex(\@islands_p)); - } - - # calculate wiping points if needed - if ($self->config->ooze_prevention && (my @extruders = @{$self->print->extruders}) > 1) { - my @skirt_points = map @$_, map @$_, @{$self->print->skirt}; - if (@skirt_points) { - my $outer_skirt = convex_hull(\@skirt_points); - my @skirts = (); - foreach my $extruder_id (@extruders) { - my $extruder_offset = $self->config->get_at('extruder_offset', $extruder_id); - push @skirts, my $s = $outer_skirt->clone; - $s->translate(-scale($extruder_offset->x), -scale($extruder_offset->y)); #) - } - my $convex_hull = convex_hull([ map @$_, @skirts ]); - - $gcodegen->ooze_prevention->set_enable(1); - $gcodegen->ooze_prevention->set_standby_points( - [ map @{$_->equally_spaced_points(scale 10)}, @{offset([$convex_hull], scale 3)} ] - ); - - if (0) { - require "Slic3r/SVG.pm"; - Slic3r::SVG::output( - "ooze_prevention.svg", - red_polygons => \@skirts, - polygons => [$outer_skirt], - points => $gcodegen->ooze_prevention->standby_points, - ); - } - } - } - - # set initial extruder only after custom start G-code - print $fh $gcodegen->set_extruder($self->print->extruders->[0]); - - # do all objects for each layer - if ($self->config->complete_objects) { - # print objects from the smallest to the tallest to avoid collisions - # when moving onto next object starting point - my @obj_idx = sort { $self->objects->[$a]->config->sequential_print_priority <=> $self->objects->[$b]->config->sequential_print_priority or $self->objects->[$a]->size->z <=> $self->objects->[$b]->size->z} 0..($self->print->object_count - 1); - - my $finished_objects = 0; - for my $obj_idx (@obj_idx) { - my $object = $self->objects->[$obj_idx]; - for my $copy (@{ $self->objects->[$obj_idx]->_shifted_copies }) { - # move to the origin position for the copy we're going to print. - # this happens before Z goes down to layer 0 again, so that - # no collision happens hopefully. - if ($finished_objects > 0) { - $gcodegen->set_origin(Slic3r::Pointf->new(map unscale $copy->[$_], X,Y)); - $gcodegen->set_enable_cooling_markers(0); # we're not filtering these moves through CoolingBuffer - $gcodegen->avoid_crossing_perimeters->set_use_external_mp_once(1); - print $fh $gcodegen->retract; - print $fh $gcodegen->travel_to( - Slic3r::Point->new(0,0), - EXTR_ROLE_NONE, - 'move to origin position for next object', - ); - $gcodegen->set_enable_cooling_markers(1); - - # disable motion planner when traveling to first object point - $gcodegen->avoid_crossing_perimeters->set_disable_once(1); - } - - my @layers = sort { $a->print_z <=> $b->print_z } @{$object->layers}, @{$object->support_layers}; - for my $layer (@layers) { - # if we are printing the bottom layer of an object, and we have already finished - # another one, set first layer temperatures. this happens before the Z move - # is triggered, so machine has more time to reach such temperatures - if ($layer->id == 0 && $finished_objects > 0) { - printf $fh $gcodegen->writer->set_bed_temperature($self->config->first_layer_bed_temperature), - if $self->config->first_layer_bed_temperature - && $self->config->has_heatbed - && $self->config->between_objects_gcode !~ /M(?:190|140)/i; - $self->_print_first_layer_temperature(0) - if $self->config->between_objects_gcode !~ /M(?:109|104)/i; - printf $fh "%s\n", Slic3r::ConditionalGCode::apply_math($gcodegen->placeholder_parser->process($self->config->between_objects_gcode)); - } - $self->process_layer($layer, [$copy]); - } - $self->flush_filters; - $finished_objects++; - $self->_second_layer_things_done(0); - } - } - } else { - # order objects using a nearest neighbor search - my @obj_idx = @{chained_path([ map Slic3r::Point->new(@{$_->_shifted_copies->[0]}), @{$self->objects} ])}; - - # sort layers by Z - my %layers = (); # print_z => [ [layers], [layers], [layers] ] by obj_idx - foreach my $obj_idx (0 .. ($self->print->object_count - 1)) { - my $object = $self->objects->[$obj_idx]; - foreach my $layer (@{$object->layers}, @{$object->support_layers}) { - $layers{ $layer->print_z } ||= []; - $layers{ $layer->print_z }[$obj_idx] ||= []; - push @{$layers{ $layer->print_z }[$obj_idx]}, $layer; - } - } - - foreach my $print_z (sort { $a <=> $b } keys %layers) { - foreach my $obj_idx (@obj_idx) { - foreach my $layer (@{ $layers{$print_z}[$obj_idx] // [] }) { - $self->process_layer($layer, $layer->object->_shifted_copies); - } - } - } - $self->flush_filters; - } - - # write end commands to file - print $fh $gcodegen->retract; # TODO: process this retract through PressureRegulator in order to discharge fully - print $fh $gcodegen->writer->set_fan(0); - foreach my $end_gcode (@{ $self->config->end_filament_gcode }) { # Process filament-specific gcode in extruder order. - printf $fh "%s\n", Slic3r::ConditionalGCode::apply_math($gcodegen->placeholder_parser->process($end_gcode)); - } - printf $fh "%s\n", Slic3r::ConditionalGCode::apply_math($gcodegen->placeholder_parser->process($self->config->end_gcode)); - - $self->_print_off_temperature(0) - if $include_end_extruder_temp; - # set bed temperature - if (($self->config->has_heatbed) && $self->config->end_gcode !~ /M(?:190|140)/i) { - printf $fh $gcodegen->writer->set_bed_temperature(0, 0); - } - - print $fh $gcodegen->writer->update_progress($gcodegen->layer_count, $gcodegen->layer_count, 1); # 100% - print $fh $gcodegen->writer->postamble; - - # get filament stats - $self->print->clear_filament_stats; - $self->print->total_used_filament(0); - $self->print->total_extruded_volume(0); - $self->print->total_weight(0); - $self->print->total_cost(0); - foreach my $extruder (@{$gcodegen->writer->extruders}) { - my $used_filament = $extruder->used_filament; - my $extruded_volume = $extruder->extruded_volume; - my $filament_weight = $extruded_volume * $extruder->filament_density / 1000; - my $filament_cost = $filament_weight * ($extruder->filament_cost / 1000); - $self->print->set_filament_stats($extruder->id, $used_filament); - - printf $fh "; filament used = %.1fmm (%.1fcm3)\n", - $used_filament, $extruded_volume/1000; - if ($filament_weight > 0) { - $self->print->total_weight($self->print->total_weight + $filament_weight); - printf $fh "; filament used = %.1fg\n", - $filament_weight; - if ($filament_cost > 0) { - $self->print->total_cost($self->print->total_cost + $filament_cost); - printf $fh "; filament cost = %.1f\n", - $filament_cost; - } - } - - $self->print->total_used_filament($self->print->total_used_filament + $used_filament); - $self->print->total_extruded_volume($self->print->total_extruded_volume + $extruded_volume); - } - printf $fh "; total filament cost = %.1f\n", - $self->print->total_cost; - - # append full config - print $fh "\n"; - foreach my $config ($self->print->config, $self->print->default_object_config, $self->print->default_region_config) { - foreach my $opt_key (sort @{$config->get_keys}) { - next if $Slic3r::Config::Options->{$opt_key}{shortcut}; - printf $fh "; %s = %s\n", $opt_key, $config->serialize($opt_key); - } - } -} - -sub _print_first_layer_temperature { - my ($self, $wait) = @_; - - for my $t (@{$self->print->extruders}) { - my $temp = $self->config->get_at('first_layer_temperature', $t); - $temp += $self->config->standby_temperature_delta if $self->config->ooze_prevention; - printf {$self->fh} $self->_gcodegen->writer->set_temperature($temp, $wait, $t) if $temp > 0; - } -} - -sub _print_off_temperature { - my ($self, $wait) = @_; - - for my $t (@{$self->print->extruders}) { - printf {$self->fh} $self->_gcodegen->writer->set_temperature(0, $wait, $t) - } -} - - - -# Called per object's layer. -# First a $gcode string is collected, -# then filtered and finally written to a file $fh. -sub process_layer { - my $self = shift; - my ($layer, $object_copies) = @_; - my $gcode = ""; - - my $object = $layer->object; - $self->_gcodegen->config->apply_static($object->config); - - # check whether we're going to apply spiralvase logic - if (defined $self->_spiral_vase) { - $self->_spiral_vase->set_enable( - $layer->id > 0 - && ($self->print->config->skirts == 0 - || ($layer->id >= $self->print->config->skirt_height && !$self->print->has_infinite_skirt)) - && !defined(first { $_->region->config->bottom_solid_layers > $layer->id } @{$layer->regions}) - && !defined(first { $_->perimeters->items_count > 1 } @{$layer->regions}) - && !defined(first { $_->fills->items_count > 0 } @{$layer->regions}) - ); - } - - # if we're going to apply spiralvase to this layer, disable loop clipping - $self->_gcodegen->set_enable_loop_clipping(!defined $self->_spiral_vase || !$self->_spiral_vase->enable); - - # initialize autospeed - { - # get the minimum cross-section used in the layer - my @mm3_per_mm = (); - foreach my $region_id (0..$#{$self->print->regions}) { - my $region = $self->print->get_region($region_id); - my $layerm = $layer->region($region_id); - if ($region->config->get_abs_value('perimeter_speed') == 0 - || $region->config->get_abs_value('small_perimeter_speed') == 0 - || $region->config->get_abs_value('external_perimeter_speed') == 0 - || $region->config->get_abs_value('bridge_speed') == 0) { - push @mm3_per_mm, $layerm->perimeters->min_mm3_per_mm; - } - if ($region->config->get_abs_value('infill_speed') == 0 - || $region->config->get_abs_value('solid_infill_speed') == 0 - || $region->config->get_abs_value('top_solid_infill_speed') == 0 - || $region->config->get_abs_value('bridge_speed') == 0 - || $region->config->get_abs_value('gap_fill_speed') == 0) { - push @mm3_per_mm, $layerm->fills->min_mm3_per_mm; - } - } - if ($layer->isa('Slic3r::Layer::Support')) { - if ($object->config->get_abs_value('support_material_speed') == 0 - || $object->config->get_abs_value('support_material_interface_speed') == 0) { - push @mm3_per_mm, $layer->support_fills->min_mm3_per_mm; - push @mm3_per_mm, $layer->support_interface_fills->min_mm3_per_mm; - } - } - # ignore too thin segments - @mm3_per_mm = grep $_ > 0.01, @mm3_per_mm; - if (@mm3_per_mm) { - my $min_mm3_per_mm = min(@mm3_per_mm); - # In order to honor max_print_speed we need to find a target volumetric - # speed that we can use throughout the print. So we define this target - # volumetric speed as the volumetric speed produced by printing the - # smallest cross-section at the maximum speed: any larger cross-section - # will need slower feedrates. - my $volumetric_speed = $min_mm3_per_mm * $self->config->max_print_speed; - - # limit such volumetric speed with max_volumetric_speed if set - if ($self->config->max_volumetric_speed > 0) { - $volumetric_speed = min( - $volumetric_speed, - $self->config->max_volumetric_speed, - ); - } - $self->_gcodegen->set_volumetric_speed($volumetric_speed); - } - } - - if (!$self->_second_layer_things_done && $layer->id == 1) { - for my $extruder (@{$self->_gcodegen->writer->extruders}) { - my $temperature = $self->config->get_at('temperature', $extruder->id); - $gcode .= $self->_gcodegen->writer->set_temperature($temperature, 0, $extruder->id) - if $temperature && $temperature != $self->config->get_at('first_layer_temperature', $extruder->id); - } - $gcode .= $self->_gcodegen->writer->set_bed_temperature($self->print->config->bed_temperature) - if $self->config->has_heatbed && $self->print->config->first_layer_bed_temperature && $self->print->config->bed_temperature != $self->print->config->first_layer_bed_temperature; - $self->_second_layer_things_done(1); - } - - # set new layer - this will change Z and force a retraction if retract_layer_change is enabled - if ($self->print->config->before_layer_gcode) { - my $pp = $self->_gcodegen->placeholder_parser->clone; - $pp->set('layer_num' => $self->_gcodegen->layer_index + 1); - $pp->set('layer_z' => $layer->print_z); - $pp->set('current_retraction' => $self->_gcodegen->writer->extruder->retracted); - $gcode .= Slic3r::ConditionalGCode::apply_math($pp->process($self->print->config->before_layer_gcode) . "\n"); - } - $gcode .= $self->_gcodegen->change_layer($layer->as_layer); # this will increase $self->_gcodegen->layer_index - if ($self->print->config->layer_gcode) { - my $pp = $self->_gcodegen->placeholder_parser->clone; - $pp->set('layer_num' => $self->_gcodegen->layer_index); - $pp->set('layer_z' => $layer->print_z); - $pp->set('current_retraction' => $self->_gcodegen->writer->extruder->retracted); - $gcode .= Slic3r::ConditionalGCode::apply_math($pp->process($self->print->config->layer_gcode) . "\n"); - } - - # extrude skirt along raft layers and normal object layers - # (not along interlaced support material layers) - if (((values %{$self->_skirt_done}) < $self->print->config->skirt_height || $self->print->has_infinite_skirt) - && !$self->_skirt_done->{$layer->print_z} - && (!$layer->isa('Slic3r::Layer::Support') || $layer->id < $object->config->raft_layers)) { - $self->_gcodegen->set_origin(Slic3r::Pointf->new(0,0)); - $self->_gcodegen->avoid_crossing_perimeters->set_use_external_mp(1); - my @extruder_ids = map { $_->id } @{$self->_gcodegen->writer->extruders}; - $gcode .= $self->_gcodegen->set_extruder($extruder_ids[0]); - # skip skirt if we have a large brim - if ($layer->id < $self->print->config->skirt_height || $self->print->has_infinite_skirt) { - my $skirt_flow = $self->print->skirt_flow; - - # distribute skirt loops across all extruders - my @skirt_loops = @{$self->print->skirt}; - for my $i (0 .. $#skirt_loops) { - # when printing layers > 0 ignore 'min_skirt_length' and - # just use the 'skirts' setting; also just use the current extruder - last if ($layer->id > 0) && ($i >= $self->print->config->skirts); - my $extruder_id = $extruder_ids[($i/@extruder_ids) % @extruder_ids]; - $gcode .= $self->_gcodegen->set_extruder($extruder_id) - if $layer->id == 0; - - # adjust flow according to this layer's layer height - my $loop = $skirt_loops[$i]->clone; - { - my $layer_skirt_flow = $skirt_flow->clone; - $layer_skirt_flow->set_height($layer->height); - my $mm3_per_mm = $layer_skirt_flow->mm3_per_mm; - foreach my $path (@$loop) { - $path->height($layer->height); - $path->mm3_per_mm($mm3_per_mm); - } - } - - $gcode .= $self->_gcodegen->extrude_loop($loop, 'skirt', $object->config->support_material_speed); - } - } - $self->_skirt_done->{$layer->print_z} = 1; - $self->_gcodegen->avoid_crossing_perimeters->set_use_external_mp(0); - - # allow a straight travel move to the first object point if this is the first layer - # (but don't in next layers) - if ($layer->id == 0) { - $self->_gcodegen->avoid_crossing_perimeters->set_disable_once(1); - } - } - - # extrude brim - if (!$self->_brim_done) { - $gcode .= $self->_gcodegen->set_extruder($self->print->brim_extruder-1); - $self->_gcodegen->set_origin(Slic3r::Pointf->new(0,0)); - $self->_gcodegen->avoid_crossing_perimeters->set_use_external_mp(1); - $gcode .= $self->_gcodegen->extrude($_, 'brim', $object->config->support_material_speed) - for @{$self->print->brim}; - $self->_brim_done(1); - $self->_gcodegen->avoid_crossing_perimeters->set_use_external_mp(0); - - # allow a straight travel move to the first object point - $self->_gcodegen->avoid_crossing_perimeters->set_disable_once(1); - } - - for my $copy (@$object_copies) { - # when starting a new object, use the external motion planner for the first travel move - $self->_gcodegen->avoid_crossing_perimeters->set_use_external_mp_once(1) if ($self->_last_obj_copy // '') ne "$copy"; - $self->_last_obj_copy("$copy"); - - $self->_gcodegen->set_origin(Slic3r::Pointf->new(map unscale $copy->[$_], X,Y)); - - # extrude support material before other things because it might use a lower Z - # and also because we avoid travelling on other things when printing it - if ($layer->isa('Slic3r::Layer::Support')) { - if ($layer->support_interface_fills->count > 0) { - $gcode .= $self->_gcodegen->set_extruder($object->config->support_material_interface_extruder-1); - $gcode .= $self->_gcodegen->extrude_path($_, 'support material interface', $object->config->get_abs_value('support_material_interface_speed')) - for @{$layer->support_interface_fills->chained_path_from($self->_gcodegen->last_pos, 0)}; - } - if ($layer->support_fills->count > 0) { - $gcode .= $self->_gcodegen->set_extruder($object->config->support_material_extruder-1); - $gcode .= $self->_gcodegen->extrude_path($_, 'support material', $object->config->get_abs_value('support_material_speed')) - for @{$layer->support_fills->chained_path_from($self->_gcodegen->last_pos, 0)}; - } - } - - # We now define a strategy for building perimeters and fills. The separation - # between regions doesn't matter in terms of printing order, as we follow - # another logic instead: - # - we group all extrusions by extruder so that we minimize toolchanges - # - we start from the last used extruder - # - for each extruder, we group extrusions by island - # - for each island, we extrude perimeters first, unless user set the infill_first - # option - # (Still, we have to keep track of regions because we need to apply their config) - - # group extrusions by extruder and then by island - my %by_extruder = (); # extruder_id => [ { perimeters => \@perimeters, infill => \@infill } ] - - # cache bounding boxes of layer slices - my @layer_slices_bb = map $_->contour->bounding_box, @{$layer->slices}; - my $point_inside_surface = sub { - my ($i, $point) = @_; - - my $bbox = $layer_slices_bb[$i]; - return $layer_slices_bb[$i]->contains_point($point) - && $layer->slices->[$i]->contour->contains_point($point); - }; - - my $n_slices = $layer->slices->count - 1; - foreach my $region_id (0..($self->print->region_count-1)) { - my $layerm = $layer->regions->[$region_id] or next; - my $region = $self->print->get_region($region_id); - - # process perimeters - { - my $extruder_id = $region->config->perimeter_extruder-1; - foreach my $perimeter_coll (@{$layerm->perimeters}) { - next if $perimeter_coll->empty; # this shouldn't happen but first_point() would fail - - # init by_extruder item only if we actually use the extruder - $by_extruder{$extruder_id} //= []; - - # $perimeter_coll is an ExtrusionPath::Collection object representing a single slice - for my $i (0 .. $n_slices) { - if ( - # $perimeter_coll->first_point does not fit inside any slice - $i == $n_slices - # $perimeter_coll->first_point fits inside ith slice - || $point_inside_surface->($i, $perimeter_coll->first_point)) { - $by_extruder{$extruder_id}[$i] //= { perimeters => {} }; - $by_extruder{$extruder_id}[$i]{perimeters}{$region_id} //= []; - push @{ $by_extruder{$extruder_id}[$i]{perimeters}{$region_id} }, @$perimeter_coll; - last; - } - } - } - } - - # process infill - # $layerm->fills is a collection of ExtrusionPath::Collection objects, each one containing - # the ExtrusionPath objects of a certain infill "group" (also called "surface" - # throughout the code). We can redefine the order of such Collections but we have to - # do each one completely at once. - foreach my $fill (@{$layerm->fills}) { - next if $fill->empty; # this shouldn't happen but first_point() would fail - - # init by_extruder item only if we actually use the extruder - my $extruder_id = $fill->[0]->is_solid_infill - ? $region->config->solid_infill_extruder-1 - : $region->config->infill_extruder-1; - - $by_extruder{$extruder_id} //= []; - - # $fill is an ExtrusionPath::Collection object - for my $i (0 .. $n_slices) { - if ($i == $n_slices - || $point_inside_surface->($i, $fill->first_point)) { - $by_extruder{$extruder_id}[$i] //= { infill => {} }; - $by_extruder{$extruder_id}[$i]{infill}{$region_id} //= []; - push @{ $by_extruder{$extruder_id}[$i]{infill}{$region_id} }, $fill; - last; - } - } - } - } - - # tweak extruder ordering to save toolchanges - my @extruders = sort { $a <=> $b } keys %by_extruder; - if (@extruders > 1) { - my $last_extruder_id = $self->_gcodegen->writer->extruder->id; - if (exists $by_extruder{$last_extruder_id}) { - @extruders = ( - $last_extruder_id, - grep $_ != $last_extruder_id, @extruders, - ); - } - } - - foreach my $extruder_id (@extruders) { - $gcode .= $self->_gcodegen->set_extruder($extruder_id); - foreach my $island (@{ $by_extruder{$extruder_id} }) { - if ($self->print->config->infill_first) { - $gcode .= $self->_extrude_infill($island->{infill} // {}); - $gcode .= $self->_extrude_perimeters($island->{perimeters} // {}); - } else { - $gcode .= $self->_extrude_perimeters($island->{perimeters} // {}); - $gcode .= $self->_extrude_infill($island->{infill} // {}); - } - } - } - } - - # apply spiral vase post-processing if this layer contains suitable geometry - # (we must feed all the G-code into the post-processor, including the first - # bottom non-spiral layers otherwise it will mess with positions) - # we apply spiral vase at this stage because it requires a full layer - $gcode = $self->_spiral_vase->process_layer($gcode) - if defined $self->_spiral_vase; - - # apply cooling logic; this may alter speeds - $gcode = $self->_cooling_buffer->append( - $gcode, - $layer->object->ptr . ref($layer), # differentiate $obj_id between normal layers and support layers - $layer->id, - $layer->print_z, - ) if defined $self->_cooling_buffer; - - print {$self->fh} $self->filter($gcode); -} - -# Extrude perimeters: Decide where to put seams (hide or align seams). -sub _extrude_perimeters { - my ($self, $entities_by_region) = @_; - - my $gcode = ""; - foreach my $region_id (sort keys %$entities_by_region) { - $self->_gcodegen->config->apply_static($self->print->get_region($region_id)->config); - $gcode .= $self->_gcodegen->extrude($_, 'perimeter', -1) - for @{ $entities_by_region->{$region_id} }; - } - return $gcode; -} - -# Chain the paths hierarchically by a greedy algorithm to minimize a travel distance. -sub _extrude_infill { - my ($self, $entities_by_region) = @_; - - my $gcode = ""; - foreach my $region_id (sort keys %$entities_by_region) { - $self->_gcodegen->config->apply_static($self->print->get_region($region_id)->config); - - my $collection = Slic3r::ExtrusionPath::Collection->new(@{ $entities_by_region->{$region_id} }); - for my $fill (@{$collection->chained_path_from($self->_gcodegen->last_pos, 0)}) { - if ($fill->isa('Slic3r::ExtrusionPath::Collection')) { - $gcode .= $self->_gcodegen->extrude($_, 'infill', -1) - for @{$fill->chained_path_from($self->_gcodegen->last_pos, 0)}; - } else { - $gcode .= $self->_gcodegen->extrude($fill, 'infill', -1) ; - } - } - } - return $gcode; -} - -sub flush_filters { - my ($self) = @_; - - print {$self->fh} $self->filter($self->_cooling_buffer->flush, 1); -} - -sub filter { - my ($self, $gcode, $flush) = @_; - - # apply vibration limit if enabled; - # this injects pauses according to time (thus depends on actual speeds) - $gcode = $self->_vibration_limit->process($gcode) - if defined $self->_vibration_limit; - - # apply pressure regulation if enabled; - # this depends on actual speeds - $gcode = $self->_pressure_regulator->process($gcode, $flush) - if defined $self->_pressure_regulator; - - # apply arc fitting if enabled; - # this does not depend on speeds but changes G1 XY commands into G2/G2 IJ - $gcode = $self->_arc_fitting->process($gcode) - if defined $self->_arc_fitting; - - return $gcode; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print/Object.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print/Object.pm deleted file mode 100644 index 3bd01a1c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print/Object.pm +++ /dev/null @@ -1,690 +0,0 @@ -package Slic3r::Print::Object; -# extends c++ class Slic3r::PrintObject (Print.xsp) -use strict; -use warnings; - -use List::Util qw(min max sum first any); -use Slic3r::Flow ':roles'; -use Slic3r::Geometry qw(X Y Z PI scale unscale chained_path epsilon); -use Slic3r::Geometry::Clipper qw(diff diff_ex intersection intersection_ex union union_ex - offset offset_ex offset2 offset2_ex intersection_ppl CLIPPER_OFFSET_SCALE JT_MITER); -use Slic3r::Print::State ':steps'; -use Slic3r::Surface ':types'; - - -# TODO: lazy -sub fill_maker { - my $self = shift; - return Slic3r::Fill->new(bounding_box => $self->bounding_box); -} - -sub region_volumes { - my $self = shift; - return [ map $self->get_region_volumes($_), 0..($self->region_count - 1) ]; -} - -sub layers { - my $self = shift; - return [ map $self->get_layer($_), 0..($self->layer_count - 1) ]; -} - -sub support_layers { - my $self = shift; - return [ map $self->get_support_layer($_), 0..($self->support_layer_count - 1) ]; -} - -# 1) Decides Z positions of the layers, -# 2) Initializes layers and their regions -# 3) Slices the object meshes -# 4) Slices the modifier meshes and reclassifies the slices of the object meshes by the slices of the modifier meshes -# 5) Applies size compensation (offsets the slices in XY plane) -# 6) Replaces bad slices by the slices reconstructed from the upper/lower layer -# Resulting expolygons of layer regions are marked as Internal. -# -# this should be idempotent -sub slice { - my $self = shift; - - return if $self->step_done(STEP_SLICE); - $self->set_step_started(STEP_SLICE); - $self->print->status_cb->(10, "Processing triangulated mesh"); - - $self->_slice; - - # detect slicing errors - my $warning_thrown = 0; - for my $i (0 .. ($self->layer_count - 1)) { - my $layer = $self->get_layer($i); - next unless $layer->slicing_errors; - if (!$warning_thrown) { - warn "The model has overlapping or self-intersecting facets. I tried to repair it, " - . "however you might want to check the results or repair the input file and retry.\n"; - $warning_thrown = 1; - } - - # try to repair the layer surfaces by merging all contours and all holes from - # neighbor layers - Slic3r::debugf "Attempting to repair layer %d\n", $i; - - foreach my $region_id (0 .. ($layer->region_count - 1)) { - my $layerm = $layer->region($region_id); - - my (@upper_surfaces, @lower_surfaces); - for (my $j = $i+1; $j < $self->layer_count; $j++) { - if (!$self->get_layer($j)->slicing_errors) { - @upper_surfaces = @{$self->get_layer($j)->region($region_id)->slices}; - last; - } - } - for (my $j = $i-1; $j >= 0; $j--) { - if (!$self->get_layer($j)->slicing_errors) { - @lower_surfaces = @{$self->get_layer($j)->region($region_id)->slices}; - last; - } - } - - my $union = union_ex([ - map $_->expolygon->contour, @upper_surfaces, @lower_surfaces, - ]); - my $diff = diff_ex( - [ map @$_, @$union ], - [ map @{$_->expolygon->holes}, @upper_surfaces, @lower_surfaces, ], - ); - - $layerm->slices->clear; - $layerm->slices->append($_) - for map Slic3r::Surface->new - (expolygon => $_, surface_type => S_TYPE_INTERNAL), - @$diff; - } - - # update layer slices after repairing the single regions - $layer->make_slices; - } - - # remove empty layers from bottom - while (@{$self->layers} && !@{$self->get_layer(0)->slices}) { - $self->delete_layer(0); - for (my $i = 0; $i <= $#{$self->layers}; $i++) { - $self->get_layer($i)->set_id( $self->get_layer($i)->id-1 ); - } - } - - # simplify slices if required - if ($self->print->config->resolution) { - $self->_simplify_slices(scale($self->print->config->resolution)); - } - - die "No layers were detected. You might want to repair your STL file(s) or check their size or thickness and retry.\n" - if !@{$self->layers}; - - $self->set_typed_slices(0); - $self->set_step_done(STEP_SLICE); -} - -sub make_perimeters { - my ($self) = @_; - - return if $self->step_done(STEP_PERIMETERS); - - # Temporary workaround for detect_surfaces_type() not being idempotent (see #3764). - # We can remove this when idempotence is restored. This make_perimeters() method - # will just call merge_slices() to undo the typed slices and invalidate posDetectSurfaces. - if ($self->typed_slices) { - $self->invalidate_step(STEP_SLICE); - } - - # prerequisites - $self->slice; - - $self->_make_perimeters; -} - -# This will assign a type (top/bottom/internal) to $layerm->slices -# and transform $layerm->fill_surfaces from expolygon -# to typed top/bottom/internal surfaces; -sub detect_surfaces_type { - my ($self) = @_; - - # prerequisites - $self->slice; - - $self->_detect_surfaces_type; -} - -sub prepare_infill { - my ($self) = @_; - - return if $self->step_done(STEP_PREPARE_INFILL); - - # This prepare_infill() is not really idempotent. - # TODO: It should clear and regenerate fill_surfaces at every run - # instead of modifying it in place. - $self->invalidate_step(STEP_PERIMETERS); - $self->make_perimeters; - - # Do this after invalidating STEP_PERIMETERS because that would re-invalidate STEP_PREPARE_INFILL - $self->set_step_started(STEP_PREPARE_INFILL); - - # prerequisites - $self->detect_surfaces_type; - - $self->print->status_cb->(30, "Preparing infill"); - - # decide what surfaces are to be filled - $_->prepare_fill_surfaces for map @{$_->regions}, @{$self->layers}; - - # this will detect bridges and reverse bridges - # and rearrange top/bottom/internal surfaces - $self->process_external_surfaces; - - # detect which fill surfaces are near external layers - # they will be split in internal and internal-solid surfaces - $self->discover_horizontal_shells; - $self->clip_fill_surfaces; - - # the following step needs to be done before combination because it may need - # to remove only half of the combined infill - $self->bridge_over_infill; - - # combine fill surfaces to honor the "infill every N layers" option - $self->combine_infill; - - $self->set_step_done(STEP_PREPARE_INFILL); -} - -sub infill { - my ($self) = @_; - - # prerequisites - $self->prepare_infill; - - $self->_infill; -} - -sub generate_support_material { - my $self = shift; - - # prerequisites - $self->slice; - - return if $self->step_done(STEP_SUPPORTMATERIAL); - $self->set_step_started(STEP_SUPPORTMATERIAL); - - $self->clear_support_layers; - - if ((!$self->config->support_material - && $self->config->raft_layers == 0 - && $self->config->support_material_enforce_layers == 0) - || scalar(@{$self->layers}) < 2 - ) { - $self->set_step_done(STEP_SUPPORTMATERIAL); - return; - } - $self->print->status_cb->(85, "Generating support material"); - - $self->_support_material->generate($self); - - $self->set_step_done(STEP_SUPPORTMATERIAL); - my $stats = sprintf "Weight: %.1fg, Cost: %.1f" , $self->print->total_weight, $self->print->total_cost; - $self->print->status_cb->(85, $stats); -} - -sub _support_material { - my ($self) = @_; - - my $first_layer_flow = Slic3r::Flow->new_from_width( - width => ($self->print->config->first_layer_extrusion_width || $self->config->support_material_extrusion_width), - role => FLOW_ROLE_SUPPORT_MATERIAL, - nozzle_diameter => $self->print->config->nozzle_diameter->[ $self->config->support_material_extruder-1 ] - // $self->print->config->nozzle_diameter->[0], - layer_height => $self->config->get_abs_value('first_layer_height'), - bridge_flow_ratio => 0, - ); - - return Slic3r::Print::SupportMaterial->new( - print_config => $self->print->config, - object_config => $self->config, - first_layer_flow => $first_layer_flow, - flow => $self->support_material_flow, - interface_flow => $self->support_material_flow(FLOW_ROLE_SUPPORT_MATERIAL_INTERFACE), - ); -} - -# Idempotence of this method is guaranteed by the fact that we don't remove things from -# fill_surfaces but we only turn them into VOID surfaces, thus preserving the boundaries. -sub clip_fill_surfaces { - my $self = shift; - - return unless $self->config->infill_only_where_needed - && any { $_->config->fill_density > 0 } @{$self->print->regions}; - - # We only want infill under ceilings; this is almost like an - # internal support material. - - # proceed top-down skipping bottom layer - my $upper_internal = []; - for my $layer_id (reverse 1..($self->layer_count - 1)) { - my $layer = $self->get_layer($layer_id); - my $lower_layer = $self->get_layer($layer_id-1); - - # detect things that we need to support - my $overhangs = []; # Polygons - - # we need to support any solid surface - push @$overhangs, map $_->p, - grep $_->is_solid, map @{$_->fill_surfaces}, @{$layer->regions}; - - # we also need to support perimeters when there's at least one full - # unsupported loop - { - # get perimeters area as the difference between slices and fill_surfaces - my $perimeters = diff( - [ map @$_, @{$layer->slices} ], - [ map $_->p, map @{$_->fill_surfaces}, @{$layer->regions} ], - ); - - # only consider the area that is not supported by lower perimeters - $perimeters = intersection( - $perimeters, - [ map $_->p, map @{$_->fill_surfaces}, @{$lower_layer->regions} ], - 1, - ); - - # only consider perimeter areas that are at least one extrusion width thick - my $pw = min(map $_->flow(FLOW_ROLE_PERIMETER)->scaled_width, @{$layer->regions}); - $perimeters = offset2($perimeters, -$pw, +$pw); - - # append such thick perimeters to the areas that need support - push @$overhangs, @$perimeters; - } - - # find new internal infill - $upper_internal = my $new_internal = intersection( - [ - @$overhangs, - @$upper_internal, - ], - [ - # our current internal fill boundaries - map $_->p, - grep $_->surface_type == S_TYPE_INTERNAL || $_->surface_type == S_TYPE_INTERNALVOID, - map @{$_->fill_surfaces}, @{$lower_layer->regions} - ], - ); - - # apply new internal infill to regions - foreach my $layerm (@{$lower_layer->regions}) { - next if $layerm->region->config->fill_density == 0; - - my (@internal, @other) = (); - foreach my $surface (map $_->clone, @{$layerm->fill_surfaces}) { - if ($surface->surface_type == S_TYPE_INTERNAL || $surface->surface_type == S_TYPE_INTERNALVOID) { - push @internal, $surface; - } else { - push @other, $surface; - } - } - - my @new = map Slic3r::Surface->new( - expolygon => $_, - surface_type => S_TYPE_INTERNAL, - ), - @{intersection_ex( - [ map $_->p, @internal ], - $new_internal, - 1, - )}; - - push @other, map Slic3r::Surface->new( - expolygon => $_, - surface_type => S_TYPE_INTERNALVOID, - ), - @{diff_ex( - [ map $_->p, @internal ], - $new_internal, - 1, - )}; - - # If there are voids it means that our internal infill is not adjacent to - # perimeters. In this case it would be nice to add a loop around infill to - # make it more robust and nicer. TODO. - - $layerm->fill_surfaces->clear; - $layerm->fill_surfaces->append($_) for (@new, @other); - } - } -} - -sub discover_horizontal_shells { - my $self = shift; - - Slic3r::debugf "==> DISCOVERING HORIZONTAL SHELLS\n"; - - for my $region_id (0 .. ($self->print->region_count-1)) { - for (my $i = 0; $i < $self->layer_count; $i++) { - my $layerm = $self->get_layer($i)->regions->[$region_id]; - - if ($layerm->region->config->solid_infill_every_layers && $layerm->region->config->fill_density > 0 - && ($i % $layerm->region->config->solid_infill_every_layers) == 0) { - my $type = $layerm->region->config->fill_density == 100 ? S_TYPE_INTERNALSOLID : S_TYPE_INTERNALBRIDGE; - $_->surface_type($type) for @{$layerm->fill_surfaces->filter_by_type(S_TYPE_INTERNAL)}; - } - - EXTERNAL: foreach my $type (S_TYPE_TOP, S_TYPE_BOTTOM, S_TYPE_BOTTOMBRIDGE) { - # find slices of current type for current layer - # use slices instead of fill_surfaces because they also include the perimeter area - # which needs to be propagated in shells; we need to grow slices like we did for - # fill_surfaces though. Using both ungrown slices and grown fill_surfaces will - # not work in some situations, as there won't be any grown region in the perimeter - # area (this was seen in a model where the top layer had one extra perimeter, thus - # its fill_surfaces were thinner than the lower layer's infill), however it's the best - # solution so far. Growing the external slices by EXTERNAL_INFILL_MARGIN will put - # too much solid infill inside nearly-vertical slopes. - my $solid = [ - (map $_->p, @{$layerm->slices->filter_by_type($type)}), - (map $_->p, @{$layerm->fill_surfaces->filter_by_type($type)}), - ]; - next if !@$solid; - Slic3r::debugf "Layer %d has %s surfaces\n", $i, ($type == S_TYPE_TOP) ? 'top' : 'bottom'; - - my $solid_layers = ($type == S_TYPE_TOP) - ? $layerm->region->config->top_solid_layers - : $layerm->region->config->bottom_solid_layers; - NEIGHBOR: for (my $n = ($type == S_TYPE_TOP) ? $i-1 : $i+1; - abs($n - $i) <= $solid_layers-1; - ($type == S_TYPE_TOP) ? $n-- : $n++) { - - next if $n < 0 || $n >= $self->layer_count; - Slic3r::debugf " looking for neighbors on layer %d...\n", $n; - - my $neighbor_layerm = $self->get_layer($n)->regions->[$region_id]; - my $neighbor_fill_surfaces = $neighbor_layerm->fill_surfaces; - my @neighbor_fill_surfaces = map $_->clone, @$neighbor_fill_surfaces; # clone because we will use these surfaces even after clearing the collection - - # find intersection between neighbor and current layer's surfaces - # intersections have contours and holes - my $new_internal_solid = intersection( - $solid, - [ map $_->p, grep { ($_->surface_type == S_TYPE_INTERNAL) || ($_->surface_type == S_TYPE_INTERNALSOLID) } @neighbor_fill_surfaces ], - 1, - ); - if (!@$new_internal_solid) { - # No internal solid needed on this layer. In order to decide whether to continue - # searching on the next neighbor (thus enforcing the configured number of solid - # layers, use different strategies according to configured infill density: - if ($layerm->region->config->fill_density == 0) { - # If user expects the object to be void (for example a hollow sloping vase), - # don't continue the search. In this case, we only generate the external solid - # shell if the object would otherwise show a hole (gap between perimeters of - # the two layers), and internal solid shells are a subset of the shells found - # on each previous layer. - next EXTERNAL; - } else { - # If we have internal infill, we can generate internal solid shells freely. - next NEIGHBOR; - } - } - - if ($layerm->region->config->fill_density == 0) { - # if we're printing a hollow object we discard any solid shell thinner - # than a perimeter width, since it's probably just crossing a sloping wall - # and it's not wanted in a hollow print even if it would make sense when - # obeying the solid shell count option strictly (DWIM!) - my $margin = $neighbor_layerm->flow(FLOW_ROLE_EXTERNAL_PERIMETER)->scaled_width; - my $too_narrow = diff( - $new_internal_solid, - offset2($new_internal_solid, -$margin, +$margin, CLIPPER_OFFSET_SCALE, JT_MITER, 5), - 1, - ); - $new_internal_solid = $solid = diff( - $new_internal_solid, - $too_narrow, - ) if @$too_narrow; - } - - # make sure the new internal solid is wide enough, as it might get collapsed - # when spacing is added in Fill.pm - { - my $margin = 3 * $layerm->flow(FLOW_ROLE_SOLID_INFILL)->scaled_width; # require at least this size - # we use a higher miterLimit here to handle areas with acute angles - # in those cases, the default miterLimit would cut the corner and we'd - # get a triangle in $too_narrow; if we grow it below then the shell - # would have a different shape from the external surface and we'd still - # have the same angle, so the next shell would be grown even more and so on. - my $too_narrow = diff( - $new_internal_solid, - offset2($new_internal_solid, -$margin, +$margin, CLIPPER_OFFSET_SCALE, JT_MITER, 5), - 1, - ); - - if (@$too_narrow) { - # grow the collapsing parts and add the extra area to the neighbor layer - # as well as to our original surfaces so that we support this - # additional area in the next shell too - - # make sure our grown surfaces don't exceed the fill area - my @grown = @{intersection( - offset($too_narrow, +$margin), - # Discard bridges as they are grown for anchoring and we can't - # remove such anchors. (This may happen when a bridge is being - # anchored onto a wall where little space remains after the bridge - # is grown, and that little space is an internal solid shell so - # it triggers this too_narrow logic.) - [ map $_->p, grep { $_->is_internal && !$_->is_bridge } @neighbor_fill_surfaces ], - )}; - $new_internal_solid = $solid = [ @grown, @$new_internal_solid ]; - } - } - - # internal-solid are the union of the existing internal-solid surfaces - # and new ones - my $internal_solid = union_ex([ - ( map $_->p, grep $_->surface_type == S_TYPE_INTERNALSOLID, @neighbor_fill_surfaces ), - @$new_internal_solid, - ]); - - # subtract intersections from layer surfaces to get resulting internal surfaces - my $internal = diff_ex( - [ map $_->p, grep $_->surface_type == S_TYPE_INTERNAL, @neighbor_fill_surfaces ], - [ map @$_, @$internal_solid ], - 1, - ); - Slic3r::debugf " %d internal-solid and %d internal surfaces found\n", - scalar(@$internal_solid), scalar(@$internal); - - # assign resulting internal surfaces to layer - $neighbor_fill_surfaces->clear; - $neighbor_fill_surfaces->append($_) - for map Slic3r::Surface->new(expolygon => $_, surface_type => S_TYPE_INTERNAL), - @$internal; - - # assign new internal-solid surfaces to layer - $neighbor_fill_surfaces->append($_) - for map Slic3r::Surface->new(expolygon => $_, surface_type => S_TYPE_INTERNALSOLID), - @$internal_solid; - - # assign top and bottom surfaces to layer - foreach my $s (@{Slic3r::Surface::Collection->new(grep { ($_->surface_type == S_TYPE_TOP) || $_->is_bottom } @neighbor_fill_surfaces)->group}) { - my $solid_surfaces = diff_ex( - [ map $_->p, @$s ], - [ map @$_, @$internal_solid, @$internal ], - 1, - ); - $neighbor_fill_surfaces->append($_) - for map $s->[0]->clone(expolygon => $_), @$solid_surfaces; - } - } - } - } - } -} - -# combine fill surfaces across layers -# Idempotence of this method is guaranteed by the fact that we don't remove things from -# fill_surfaces but we only turn them into VOID surfaces, thus preserving the boundaries. -sub combine_infill { - my $self = shift; - - # define the type used for voids - my %voidtype = ( - &S_TYPE_INTERNAL() => S_TYPE_INTERNALVOID, - ); - - # work on each region separately - for my $region_id (0 .. ($self->print->region_count-1)) { - my $region = $self->print->get_region($region_id); - my $every = $region->config->infill_every_layers; - next unless $every > 1 && $region->config->fill_density > 0; - - # limit the number of combined layers to the maximum height allowed by this regions' nozzle - my $nozzle_diameter = min( - $self->print->config->get_at('nozzle_diameter', $region->config->infill_extruder-1), - $self->print->config->get_at('nozzle_diameter', $region->config->solid_infill_extruder-1), - ); - - # define the combinations - my %combine = (); # layer_idx => number of additional combined lower layers - { - my $current_height = my $layers = 0; - for my $layer_idx (0 .. ($self->layer_count-1)) { - my $layer = $self->get_layer($layer_idx); - next if $layer->id == 0; # skip first print layer (which may not be first layer in array because of raft) - my $height = $layer->height; - - # check whether the combination of this layer with the lower layers' buffer - # would exceed max layer height or max combined layer count - if ($current_height + $height >= $nozzle_diameter + epsilon || $layers >= $every) { - # append combination to lower layer - $combine{$layer_idx-1} = $layers; - $current_height = $layers = 0; - } - - $current_height += $height; - $layers++; - } - - # append lower layers (if any) to uppermost layer - $combine{$self->layer_count-1} = $layers; - } - - # loop through layers to which we have assigned layers to combine - for my $layer_idx (sort keys %combine) { - next unless $combine{$layer_idx} > 1; - - # get all the LayerRegion objects to be combined - my @layerms = map $self->get_layer($_)->get_region($region_id), - ($layer_idx - ($combine{$layer_idx}-1) .. $layer_idx); - - # only combine internal infill - for my $type (S_TYPE_INTERNAL) { - # we need to perform a multi-layer intersection, so let's split it in pairs - - # initialize the intersection with the candidates of the lowest layer - my $intersection = [ map $_->expolygon, @{$layerms[0]->fill_surfaces->filter_by_type($type)} ]; - - # start looping from the second layer and intersect the current intersection with it - for my $layerm (@layerms[1 .. $#layerms]) { - $intersection = intersection_ex( - [ map @$_, @$intersection ], - [ map @{$_->expolygon}, @{$layerm->fill_surfaces->filter_by_type($type)} ], - ); - } - - my $area_threshold = $layerms[0]->infill_area_threshold; - @$intersection = grep $_->area > $area_threshold, @$intersection; - next if !@$intersection; - Slic3r::debugf " combining %d %s regions from layers %d-%d\n", - scalar(@$intersection), - ($type == S_TYPE_INTERNAL ? 'internal' : 'internal-solid'), - $layer_idx-($every-1), $layer_idx; - - # $intersection now contains the regions that can be combined across the full amount of layers - # so let's remove those areas from all layers - - my @intersection_with_clearance = map @{$_->offset( - $layerms[-1]->flow(FLOW_ROLE_SOLID_INFILL)->scaled_width / 2 - + $layerms[-1]->flow(FLOW_ROLE_PERIMETER)->scaled_width / 2 - # Because fill areas for rectilinear and honeycomb are grown - # later to overlap perimeters, we need to counteract that too. - + (($type == S_TYPE_INTERNALSOLID || $region->config->fill_pattern =~ /(rectilinear|grid|line|honeycomb)/) - ? $layerms[-1]->flow(FLOW_ROLE_SOLID_INFILL)->scaled_width - : 0) - )}, @$intersection; - - - foreach my $layerm (@layerms) { - my @this_type = @{$layerm->fill_surfaces->filter_by_type($type)}; - my @other_types = map $_->clone, grep $_->surface_type != $type, @{$layerm->fill_surfaces}; - - my @new_this_type = map Slic3r::Surface->new(expolygon => $_, surface_type => $type), - @{diff_ex( - [ map $_->p, @this_type ], - [ @intersection_with_clearance ], - )}; - - # apply surfaces back with adjusted depth to the uppermost layer - if ($layerm->layer->id == $self->get_layer($layer_idx)->id) { - push @new_this_type, - map Slic3r::Surface->new( - expolygon => $_, - surface_type => $type, - thickness => sum(map $_->layer->height, @layerms), - thickness_layers => scalar(@layerms), - ), - @$intersection; - } else { - # save void surfaces - push @new_this_type, - map Slic3r::Surface->new(expolygon => $_, surface_type => $voidtype{$type}), - @{intersection_ex( - [ map @{$_->expolygon}, @this_type ], - [ @intersection_with_clearance ], - )}; - } - - $layerm->fill_surfaces->clear; - $layerm->fill_surfaces->append($_) for (@new_this_type, @other_types); - } - } - } - } -} - -# Simplify the sliced model, if "resolution" configuration parameter > 0. -# The simplification is problematic, because it simplifies the slices independent from each other, -# which makes the simplified discretization visible on the object surface. -sub _simplify_slices { - my ($self, $distance) = @_; - - foreach my $layer (@{$self->layers}) { - $layer->slices->simplify($distance); - $_->slices->simplify($distance) for @{$layer->regions}; - } -} - -sub support_material_flow { - my ($self, $role) = @_; - - $role //= FLOW_ROLE_SUPPORT_MATERIAL; - my $extruder = ($role == FLOW_ROLE_SUPPORT_MATERIAL) - ? $self->config->support_material_extruder - : $self->config->support_material_interface_extruder; - - my $width = $self->config->support_material_extrusion_width || $self->config->extrusion_width; - if ($role == FLOW_ROLE_SUPPORT_MATERIAL_INTERFACE) { - $width = $self->config->support_material_interface_extrusion_width || $width; - } - - # we use a bogus layer_height because we use the same flow for all - # support material layers - return Slic3r::Flow->new_from_width( - width => $width, - role => $role, - nozzle_diameter => $self->print->config->nozzle_diameter->[$extruder-1] // $self->print->config->nozzle_diameter->[0], - layer_height => $self->config->layer_height, - bridge_flow_ratio => 0, - ); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print/Simple.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print/Simple.pm deleted file mode 100644 index 4febfa6a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print/Simple.pm +++ /dev/null @@ -1,147 +0,0 @@ -# A simple wrapper to quickly print a single model without a GUI. -# Used by the command line slic3r.pl, by command line utilities pdf-slic3s.pl and view-toolpaths.pl, -# and by the quick slice menu of the Slic3r GUI. -# -# It creates and owns an instance of Slic3r::Print to perform the slicing -# and it accepts an instance of Slic3r::Model from the outside. - -package Slic3r::Print::Simple; -use Moo; - -use Slic3r::Geometry qw(X Y); -use Slic3r::Geometry::Clipper qw(diff); - -has '_print' => ( - is => 'ro', - default => sub { Slic3r::Print->new }, - handles => [qw(apply_config config extruders output_filepath - total_used_filament total_extruded_volume - placeholder_parser process)], -); - -has 'duplicate' => ( - is => 'rw', - default => sub { 1 }, -); - -has 'scale' => ( - is => 'rw', - default => sub { 1 }, -); - -has 'rotate' => ( - is => 'rw', - default => sub { 0 }, -); - -has 'duplicate_grid' => ( - is => 'rw', - default => sub { [1,1] }, -); - -has 'status_cb' => ( - is => 'rw', - default => sub { sub {} }, -); - -has 'print_center' => ( - is => 'rw', -); - -has 'dont_arrange' => ( - is => 'rw', - default => sub { 0 }, -); - -has 'output_file' => ( - is => 'rw', -); - -sub _bed_polygon { - my ($self) = @_; - - my $bed_shape = $self->_print->config->bed_shape; - return Slic3r::Polygon->new_scale(@$bed_shape); -} - -sub set_model { - # $model is of type Slic3r::Model - my ($self, $model) = @_; - - # make method idempotent so that the object is reusable - $self->_print->clear_objects; - - # make sure all objects have at least one defined instance - my $need_arrange = $model->add_default_instances && ! $self->dont_arrange; - - # apply scaling and rotation supplied from command line if any - foreach my $instance (map @{$_->instances}, @{$model->objects}) { - $instance->set_scaling_factor($instance->scaling_factor * $self->scale); - $instance->set_rotation($instance->rotation + $self->rotate); - } - - my $bed_shape = $self->_print->config->bed_shape; - my $bb = Slic3r::Geometry::BoundingBoxf->new_from_points($bed_shape); - - if ($self->duplicate_grid->[X] > 1 || $self->duplicate_grid->[Y] > 1) { - $model->duplicate_objects_grid($self->duplicate_grid->[X], $self->duplicate_grid->[Y], $self->_print->config->duplicate_distance); - } elsif ($need_arrange) { - $model->duplicate_objects($self->duplicate, $self->_print->config->min_object_distance, $bb); - } elsif ($self->duplicate > 1) { - # if all input objects have defined position(s) apply duplication to the whole model - $model->duplicate($self->duplicate, $self->_print->config->min_object_distance, $bb); - } - $_->translate(0,0,-$_->bounding_box->z_min) for @{$model->objects} ; - - - if (!$self->dont_arrange) { - my $print_center = $self->print_center - // Slic3r::Pointf->new_unscale(@{ $self->_bed_polygon->centroid }); - $model->center_instances_around_point($print_center); - } - - foreach my $model_object (@{$model->objects}) { - $self->_print->auto_assign_extruders($model_object); - $self->_print->add_model_object($model_object); - } -} - -sub _before_export { - my ($self) = @_; - - $self->_print->set_status_cb($self->status_cb); - $self->_print->validate; -} - -sub _after_export { - my ($self) = @_; - - # check that all parts fit in bed shape, and warn if they don't - # TODO: use actual toolpaths instead of total bounding box - if (@{diff([$self->_print->bounding_box->polygon], [$self->_bed_polygon])}) { - warn "Warning: the supplied parts might not fit in the configured bed shape. " - . "You might want to review the result before printing.\n"; - } - - $self->_print->set_status_cb(undef); -} - -sub export_gcode { - my ($self) = @_; - - $self->_before_export; - $self->_print->export_gcode(output_file => $self->output_file); - $self->_after_export; -} - -sub export_svg { - my ($self) = @_; - - $self->_before_export; - - $self->_print->export_svg(output_file => $self->output_file); - - $self->_after_export; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print/State.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print/State.pm deleted file mode 100644 index 91d4a6ef..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print/State.pm +++ /dev/null @@ -1,12 +0,0 @@ -# Wraps C++ enums Slic3r::PrintStep and Slic3r::PrintObjectStep -package Slic3r::Print::State; -use strict; -use warnings; - -require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(STEP_LAYERS STEP_SLICE STEP_PERIMETERS STEP_PREPARE_INFILL - STEP_INFILL STEP_SUPPORTMATERIAL STEP_SKIRT STEP_BRIM); -our %EXPORT_TAGS = (steps => \@EXPORT_OK); - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print/SupportMaterial.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print/SupportMaterial.pm deleted file mode 100644 index 7f080cbe..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Print/SupportMaterial.pm +++ /dev/null @@ -1,1024 +0,0 @@ -# Instantiated by Slic3r::Print::Object->_support_material() -# only generate() and contact_distance() are called from the outside of this module. -package Slic3r::Print::SupportMaterial; -use Moo; - -use List::Util qw(sum min max); -use Slic3r::ExtrusionPath ':roles'; -use Slic3r::Flow ':roles'; -use Slic3r::Geometry qw(epsilon scale scaled_epsilon PI rad2deg deg2rad convex_hull); -use Slic3r::Geometry::Clipper qw(offset diff union union_ex intersection offset_ex offset2 - intersection_pl offset2_ex diff_pl diff_ex); -use Slic3r::Surface ':types'; - -has 'print_config' => (is => 'rw', required => 1); -has 'object_config' => (is => 'rw', required => 1); -has 'flow' => (is => 'rw', required => 1); -has 'first_layer_flow' => (is => 'rw', required => 1); -has 'interface_flow' => (is => 'rw', required => 1); - -use constant DEBUG_CONTACT_ONLY => 0; - -# increment used to reach MARGIN in steps to avoid trespassing thin objects -use constant MARGIN_STEP => MARGIN/3; - -# generate a tree-like structure to save material -use constant PILLAR_SIZE => 2.5; -use constant PILLAR_SPACING => 10; - -sub generate { - # $object is Slic3r::Print::Object - my ($self, $object) = @_; - - # Determine the top surfaces of the support, defined as: - # contact = overhangs - clearance + margin - # This method is responsible for identifying what contact surfaces - # should the support material expose to the object in order to guarantee - # that it will be effective, regardless of how it's built below. - my ($contact, $overhang) = $self->contact_area($object); - - # Determine the top surfaces of the object. We need these to determine - # the layer heights of support material and to clip support to the object - # silhouette. - my ($top) = $self->object_top($object, $contact); - - # We now know the upper and lower boundaries for our support material object - # (@$contact_z and @$top_z), so we can generate intermediate layers. - my $support_z = $self->support_layers_z( - [ sort keys %$contact ], - [ sort keys %$top ], - max(map $_->height, @{$object->layers}) - ); - - # If we wanted to apply some special logic to the first support layers lying on - # object's top surfaces this is the place to detect them - - my $shape = []; - if ($self->object_config->support_material_pattern eq 'pillars') { - $self->generate_pillars_shape($contact, $support_z, $shape); - } - - # Propagate contact layers downwards to generate interface layers - my ($interface) = $self->generate_interface_layers($support_z, $contact, $top); - $self->clip_with_object($interface, $support_z, $object); - $self->clip_with_shape($interface, $shape) if @$shape; - - # Propagate contact layers and interface layers downwards to generate - # the main support layers. - my ($base) = $self->generate_base_layers($support_z, $contact, $interface, $top); - $self->clip_with_object($base, $support_z, $object); - $self->clip_with_shape($base, $shape) if @$shape; - - # Detect what part of base support layers are "reverse interfaces" because they - # lie above object's top surfaces. - $self->generate_bottom_interface_layers($support_z, $base, $top, $interface); - - # Install support layers into object. - for my $i (0 .. $#$support_z) { - $object->add_support_layer( - $i, # id - ($i == 0) ? $support_z->[$i] : ($support_z->[$i] - $support_z->[$i-1]), # height - $support_z->[$i], # print_z - ); - if ($i >= 1) { - $object->support_layers->[-2]->set_upper_layer($object->support_layers->[-1]); - $object->support_layers->[-1]->set_lower_layer($object->support_layers->[-2]); - } - } - - # Generate the actual toolpaths and save them into each layer. - $self->generate_toolpaths($object, $overhang, $contact, $interface, $base); -} - -sub contact_area { - # $object is Slic3r::Print::Object - my ($self, $object) = @_; - my $conf = $self->object_config; - - # if user specified a custom angle threshold, convert it to radians - my $threshold_rad; - if (!($conf->support_material_threshold =~ /%$/)) { - $threshold_rad = deg2rad($conf->support_material_threshold + 1); # +1 makes the threshold inclusive - Slic3r::debugf "Threshold angle = %d°\n", rad2deg($threshold_rad); - } - - # Build support on a build plate only? If so, then collect top surfaces into $buildplate_only_top_surfaces - # and subtract $buildplate_only_top_surfaces from the contact surfaces, so - # there is no contact surface supported by a top surface. - my $buildplate_only = - ( $conf->support_material || $conf->support_material_enforce_layers) - && $conf->support_material_buildplate_only; - my $buildplate_only_top_surfaces = []; - - # determine contact areas - my %contact = (); # contact_z => [ polygons ] - my %overhang = (); # contact_z => [ polygons ] - this stores the actual overhang supported by each contact layer - for my $layer_id (0 .. $#{$object->layers}) { - # note $layer_id might != $layer->id when raft_layers > 0 - # so $layer_id == 0 means first object layer - # and $layer->id == 0 means first print layer (including raft) - - # if no raft, and we're at layer 0, skip to layer 1 - if ( $conf->raft_layers == 0 && $layer_id == 0 ) { - next; - } - # with or without raft, if we're above layer 1, we need to quit - # support generation if supports are disabled, or if we're at a high - # enough layer that enforce-supports no longer applies - if ( $layer_id > 0 - && !$conf->support_material - && ($layer_id >= $conf->support_material_enforce_layers) ) { - # if we are only going to generate raft just check - # the 'overhangs' of the first object layer - last; - } - my $layer = $object->get_layer($layer_id); - last if $conf->support_material_max_layers - && $layer_id > $conf->support_material_max_layers; - - if ($buildplate_only) { - # Collect the top surfaces up to this layer and merge them. - my $projection_new = []; - push @$projection_new, ( map $_->p, map @{$_->slices->filter_by_type(S_TYPE_TOP)}, @{$layer->regions} ); - if (@$projection_new) { - # Merge the new top surfaces with the preceding top surfaces. - # Apply the safety offset to the newly added polygons, so they will connect - # with the polygons collected before, - # but don't apply the safety offset during the union operation as it would - # inflate the polygons over and over. - push @$buildplate_only_top_surfaces, @{ offset($projection_new, scale(0.01)) }; - $buildplate_only_top_surfaces = union($buildplate_only_top_surfaces, 0); - } - } - - # detect overhangs and contact areas needed to support them - my (@overhang, @contact) = (); - if ($layer_id == 0) { - # this is the first object layer, so we're here just to get the object - # footprint for the raft - # we only consider contours and discard holes to get a more continuous raft - push @overhang, map $_->clone, map $_->contour, @{$layer->slices}; - push @contact, @{offset(\@overhang, scale +MARGIN)}; - } else { - my $lower_layer = $object->get_layer($layer_id-1); - foreach my $layerm (@{$layer->regions}) { - my $fw = $layerm->flow(FLOW_ROLE_EXTERNAL_PERIMETER)->scaled_width; - my $diff; - - # If a threshold angle was specified, use a different logic for detecting overhangs. - if (($conf->support_material && defined $threshold_rad) - || $layer_id <= $conf->support_material_enforce_layers - || ($conf->raft_layers > 0 && $layer_id == 0)) { - my $d = 0; - my $layer_threshold_rad = $threshold_rad; - if ($layer_id <= $conf->support_material_enforce_layers) { - # Use ~45 deg number for enforced supports if we are in auto - $layer_threshold_rad = deg2rad(89); - } - if (defined $layer_threshold_rad) { - $d = scale $lower_layer->height - * ((cos $layer_threshold_rad) / (sin $layer_threshold_rad)); - } - - $diff = diff( - [ map $_->p, @{$layerm->slices} ], - offset([ map @$_, @{$lower_layer->slices} ], +$d), - ); - - # only enforce spacing from the object ($fw/2) if the threshold angle - # is not too high: in that case, $d will be very small (as we need to catch - # very short overhangs), and such contact area would be eaten by the - # enforced spacing, resulting in high threshold angles to be almost ignored - $diff = diff( - offset($diff, $d - $fw/2), - [ map @$_, @{$lower_layer->slices} ], - ) if $d > $fw/2; - } else { - $diff = diff( - [ map $_->p, @{$layerm->slices} ], - offset([ map @$_, @{$lower_layer->slices} ], +$conf->get_abs_value_over('support_material_threshold', $fw)), - ); - - # collapse very tiny spots - $diff = offset2($diff, -$fw/10, +$fw/10); - - # $diff now contains the ring or stripe comprised between the boundary of - # lower slices and the centerline of the last perimeter in this overhanging layer. - # Void $diff means that there's no upper perimeter whose centerline is - # outside the lower slice boundary, thus no overhang - } - - if ($conf->dont_support_bridges) { - # compute the area of bridging perimeters - my $bridged_perimeters; # Polygons - { - my $bridge_flow = $layerm->flow(FLOW_ROLE_PERIMETER, 1); - - # Get the lower layer's slices and grow them by half the nozzle diameter - # because we will consider the upper perimeters supported even if half nozzle - # falls outside the lower slices. - my $lower_grown_slices; - { - my $nozzle_diameter = $self->print_config->get_at('nozzle_diameter', $layerm->region->config->perimeter_extruder-1); - $lower_grown_slices = offset( - [ map @$_, @{$lower_layer->slices} ], - +scale($nozzle_diameter/2), - ); - } - - # Get all perimeters as polylines. - # TODO: split_at_first_point() (called by as_polyline() for ExtrusionLoops) - # could split a bridge mid-way - my @overhang_perimeters = map $_->as_polyline, @{$layerm->perimeters->flatten}; - - # Only consider the overhang parts of such perimeters, - # overhangs being those parts not supported by - # workaround for Clipper bug, see Slic3r::Polygon::clip_as_polyline() - $_->[0]->translate(1,0) for @overhang_perimeters; - @overhang_perimeters = @{diff_pl( - \@overhang_perimeters, - $lower_grown_slices, - )}; - - # only consider straight overhangs - @overhang_perimeters = grep $_->is_straight, @overhang_perimeters; - - # only consider overhangs having endpoints inside layer's slices - foreach my $polyline (@overhang_perimeters) { - $polyline->extend_start($fw); - $polyline->extend_end($fw); - } - @overhang_perimeters = grep { - $layer->slices->contains_point($_->first_point) && $layer->slices->contains_point($_->last_point) - } @overhang_perimeters; - - # convert bridging polylines into polygons by inflating them with their thickness - { - # For bridges we can't assume width is larger than spacing because they - # are positioned according to non-bridging perimeters spacing. - my $w = max( - $bridge_flow->scaled_width, - $bridge_flow->scaled_spacing, - $fw, # width of external perimeters - $layerm->flow(FLOW_ROLE_PERIMETER)->scaled_width, - ); - $bridged_perimeters = union([ - # Also apply safety offset to ensure no gaps are left in between. - map @{$_->grow($w/2 + 10)}, @overhang_perimeters - ]); - } - } - - if (1) { - # remove the entire bridges and only support the unsupported edges - my @bridges = map $_->expolygon, - grep $_->bridge_angle != -1, - @{$layerm->fill_surfaces->filter_by_type(S_TYPE_BOTTOMBRIDGE)}; - - $diff = diff( - $diff, - [ - (map @$_, @bridges), - @$bridged_perimeters, - ], - 1, - ); - - push @$diff, @{intersection( - [ map @{$_->grow(+scale MARGIN)}, @{$layerm->unsupported_bridge_edges} ], - [ map @$_, @bridges ], - )}; - - } else { - # just remove bridged areas - $diff = diff( - $diff, - $layerm->bridged, - 1, - ); - } - } # if ($conf->dont_support_bridges) - - if ($buildplate_only) { - # Don't support overhangs above the top surfaces. - # This step is done before the contact surface is calcuated by growing the overhang region. - $diff = diff($diff, $buildplate_only_top_surfaces); - } - - next if !@$diff; - push @overhang, @$diff; # NOTE: this is not the full overhang as it misses the outermost half of the perimeter width! - - # Let's define the required contact area by using a max gap of half the upper - # extrusion width and extending the area according to the configured margin. - # We increment the area in steps because we don't want our support to overflow - # on the other side of the object (if it's very thin). - { - my $slices_margin = offset([ map @$_, @{$lower_layer->slices} ], +$fw/2); - if ($buildplate_only) { - # Trim the inflated contact surfaces by the top surfaces as well. - push @$slices_margin, map $_->clone, @{$buildplate_only_top_surfaces}; - $slices_margin = union($slices_margin); - } - for ($fw/2, map {scale MARGIN_STEP} 1..(MARGIN / MARGIN_STEP)) { - $diff = diff( - offset($diff, $_), - $slices_margin, - ); - } - } - push @contact, @$diff; - } - } - next if !@contact; - - # now apply the contact areas to the layer were they need to be made - { - # get the average nozzle diameter used on this layer - my @nozzle_diameters = map $self->print_config->get_at('nozzle_diameter', $_), - map { $_->config->perimeter_extruder-1, $_->config->infill_extruder-1, $_->config->solid_infill_extruder-1 } - map $_->region, @{$layer->regions}; - my $nozzle_diameter = sum(@nozzle_diameters)/@nozzle_diameters; - - my $contact_z = $layer->print_z - $self->contact_distance($layer->height, $nozzle_diameter); - - # ignore this contact area if it's too low - next if $contact_z < $conf->get_value('first_layer_height') - epsilon; - - $contact{$contact_z} = [ @contact ]; - $overhang{$contact_z} = [ @overhang ]; - - if (0) { - require "Slic3r/SVG.pm"; - Slic3r::SVG::output("out\\contact_" . $contact_z . ".svg", - green_expolygons => union_ex($buildplate_only_top_surfaces), - blue_expolygons => union_ex(\@contact), - red_expolygons => union_ex(\@overhang), - ); - } - } - } - - return (\%contact, \%overhang); -} - -sub object_top { - my ($self, $object, $contact) = @_; - - # find object top surfaces - # we'll use them to clip our support and detect where does it stick - my %top = (); # print_z => [ expolygons ] - return \%top if ($self->object_config->support_material_buildplate_only); - - my $projection = []; - foreach my $layer (reverse @{$object->layers}) { - if (my @top = map @{$_->slices->filter_by_type(S_TYPE_TOP)}, @{$layer->regions}) { - # compute projection of the contact areas above this top layer - # first add all the 'new' contact areas to the current projection - # ('new' means all the areas that are lower than the last top layer - # we considered) - my $min_top = min(keys %top) // max(keys %$contact); - # use <= instead of just < because otherwise we'd ignore any contact regions - # having the same Z of top layers - push @$projection, map @{$contact->{$_}}, grep { $_ > $layer->print_z && $_ <= $min_top } keys %$contact; - - # now find whether any projection falls onto this top surface - my $touching = intersection($projection, [ map $_->p, @top ]); - if (@$touching) { - # grow top surfaces so that interface and support generation are generated - # with some spacing from object - it looks we don't need the actual - # top shapes so this can be done here - $top{ $layer->print_z } = offset($touching, $self->flow->scaled_width); - } - - # remove the areas that touched from the projection that will continue on - # next, lower, top surfaces - $projection = diff($projection, $touching); - } - } - - return \%top; -} - -sub support_layers_z { - my ($self, $contact_z, $top_z, $max_object_layer_height) = @_; - - # quick table to check whether a given Z is a top surface - my %top = map { $_ => 1 } @$top_z; - - # determine layer height for any non-contact layer - # we use max() to prevent many ultra-thin layers to be inserted in case - # layer_height > nozzle_diameter * 0.75 - my $nozzle_diameter = $self->print_config->get_at('nozzle_diameter', $self->object_config->support_material_extruder-1); - my $support_material_height = max($max_object_layer_height, $nozzle_diameter * 0.75); - my $contact_distance = $self->contact_distance($support_material_height, $nozzle_diameter); - - # initialize known, fixed, support layers - my @z = sort { $a <=> $b } - @$contact_z, - @$top_z, # TODO: why we have this? - (map $_ + $contact_distance, @$top_z); - - # enforce first layer height - my $first_layer_height = $self->object_config->get_value('first_layer_height'); - shift @z while @z && $z[0] <= $first_layer_height; - unshift @z, $first_layer_height; - - # add raft layers by dividing the space between first layer and - # first contact layer evenly - if ($self->object_config->raft_layers > 1 && @z >= 2) { - # $z[1] is last raft layer (contact layer for the first layer object) - my $height = ($z[1] - $z[0]) / ($self->object_config->raft_layers - 1); - # since we already have two raft layers ($z[0] and $z[1]) we need to insert - # raft_layers-2 more - splice @z, 1, 0, - map { sprintf "%.2f", $_ } - map { $z[0] + $height * $_ } - 1..($self->object_config->raft_layers - 2); - } - - # create other layers (skip raft layers as they're already done and use thicker layers) - for (my $i = $#z; $i >= $self->object_config->raft_layers; $i--) { - my $target_height = $support_material_height; - if ($i > 0 && $top{ $z[$i-1] }) { - $target_height = $nozzle_diameter; - } - - # enforce first layer height - if (($i == 0 && $z[$i] > $target_height + $first_layer_height) - || ($z[$i] - $z[$i-1] > $target_height + Slic3r::Geometry::epsilon)) { - splice @z, $i, 0, ($z[$i] - $target_height); - $i++; - } - } - - # remove duplicates and make sure all 0.x values have the leading 0 - { - my %sl = map { 1 * $_ => 1 } @z; - @z = sort { $a <=> $b } keys %sl; - } - - return \@z; -} - -sub generate_interface_layers { - my ($self, $support_z, $contact, $top) = @_; - - # let's now generate interface layers below contact areas - my %interface = (); # layer_id => [ polygons ] - my $interface_layers_num = $self->object_config->support_material_interface_layers; - for my $layer_id (0 .. $#$support_z) { - my $z = $support_z->[$layer_id]; - my $this = $contact->{$z} // next; - - # count contact layer as interface layer - for (my $i = $layer_id-1; $i >= 0 && $i > $layer_id-$interface_layers_num; $i--) { - $z = $support_z->[$i]; - my @overlapping_layers = $self->overlapping_layers($i, $support_z); - my @overlapping_z = map $support_z->[$_], @overlapping_layers; - - # Compute interface area on this layer as diff of upper contact area - # (or upper interface area) and layer slices. - # This diff is responsible of the contact between support material and - # the top surfaces of the object. We should probably offset the top - # surfaces vertically before performing the diff, but this needs - # investigation. - $this = $interface{$i} = diff( - [ - @$this, # clipped projection of the current contact regions - @{ $interface{$i} || [] }, # interface regions already applied to this layer - ], - [ - (map @$_, map $top->{$_}, grep exists $top->{$_}, @overlapping_z), # top slices on this layer - (map @$_, map $contact->{$_}, grep exists $contact->{$_}, @overlapping_z), # contact regions on this layer - ], - 1, - ); - } - } - - return \%interface; -} - -sub generate_bottom_interface_layers { - my ($self, $support_z, $base, $top, $interface) = @_; - - # If no interface layers are allowed, don't generate bottom interface layers. - return if $self->object_config->support_material_interface_layers == 0; - - my $area_threshold = $self->interface_flow->scaled_spacing ** 2; - - # loop through object's top surfaces - foreach my $top_z (sort keys %$top) { - my $this = $top->{$top_z}; - - # keep a count of the interface layers we generated for this top surface - my $interface_layers = 0; - - # loop through support layers until we find the one(s) right above the top - # surface - foreach my $layer_id (0 .. $#$support_z) { - my $z = $support_z->[$layer_id]; - next unless $z > $top_z; - - if ($base->{$layer_id}) { - # get the support material area that should be considered interface - my $interface_area = intersection( - $base->{$layer_id}, - $this, - ); - - # discard too small areas - $interface_area = [ grep abs($_->area) >= $area_threshold, @$interface_area ]; - - # subtract new interface area from base - $base->{$layer_id} = diff( - $base->{$layer_id}, - $interface_area, - ); - - # add new interface area to interface - push @{$interface->{$layer_id}}, @$interface_area; - } - - $interface_layers++; - last if $interface_layers == $self->object_config->support_material_interface_layers; - } - } -} - -sub generate_base_layers { - my ($self, $support_z, $contact, $interface, $top) = @_; - - # let's now generate support layers under interface layers - my $base = {}; # layer_id => [ polygons ] - { - for my $i (reverse 0 .. $#$support_z-1) { - my $z = $support_z->[$i]; - my @overlapping_layers = $self->overlapping_layers($i, $support_z); - my @overlapping_z = map $support_z->[$_], @overlapping_layers; - - # in case we have no interface layers, look at upper contact - # (1 interface layer means we only have contact layer, so $interface->{$i+1} is empty) - my @upper_contact = (); - if ($self->object_config->support_material_interface_layers <= 1) { - @upper_contact = @{ $contact->{$support_z->[$i+1]} || [] }; - } - - $base->{$i} = diff( - [ - @{ $base->{$i+1} || [] }, # support regions on upper layer - @{ $interface->{$i+1} || [] }, # interface regions on upper layer - @upper_contact, # contact regions on upper layer - ], - [ - (map @$_, map $top->{$_}, grep exists $top->{$_}, @overlapping_z), # top slices on this layer - (map @$_, map $interface->{$_}, grep exists $interface->{$_}, @overlapping_layers), # interface regions on this layer - (map @$_, map $contact->{$_}, grep exists $contact->{$_}, @overlapping_z), # contact regions on this layer - ], - 1, - ); - } - } - - return $base; -} - -# This method removes object silhouette from support material -# (it's used with interface and base only). It removes a bit more, -# leaving a thin gap between object and support in the XY plane. -sub clip_with_object { - my ($self, $support, $support_z, $object) = @_; - - foreach my $i (keys %$support) { - next if !@{$support->{$i}}; - - my $zmax = $support_z->[$i]; - my $zmin = ($i == 0) ? 0 : $support_z->[$i-1]; - my @layers = grep { $_->print_z > $zmin && ($_->print_z - $_->height) < $zmax } - @{$object->layers}; - - # $layer->slices contains the full shape of layer, thus including - # perimeter's width. $support contains the full shape of support - # material, thus including the width of its foremost extrusion. - # We leave a gap equal to a full extrusion width. - $support->{$i} = diff( - $support->{$i}, - offset([ map @$_, map @{$_->slices}, @layers ], +$self->flow->scaled_width), - ); - } -} - -sub generate_toolpaths { - my ($self, $object, $overhang, $contact, $interface, $base) = @_; - - my $flow = $self->flow; - my $interface_flow = $self->interface_flow; - - # shape of contact area - my $contact_loops = 1; - my $circle_radius = 1.5 * $interface_flow->scaled_width; - my $circle_distance = 3 * $circle_radius; - my $circle = Slic3r::Polygon->new(map [ $circle_radius * cos $_, $circle_radius * sin $_ ], - (5*PI/3, 4*PI/3, PI, 2*PI/3, PI/3, 0)); - - Slic3r::debugf "Generating patterns\n"; - - # prepare fillers - my $pattern = $self->object_config->support_material_pattern; - my @angles = ($self->object_config->support_material_angle); - if ($pattern eq 'rectilinear-grid') { - $pattern = 'rectilinear'; - push @angles, $angles[0] + 90; - } elsif ($pattern eq 'pillars') { - $pattern = 'honeycomb'; - } - - my $interface_angle = $self->object_config->support_material_angle + 90; - my $interface_spacing = $self->object_config->support_material_interface_spacing + $interface_flow->spacing; - my $interface_density = $interface_spacing == 0 ? 1 : $interface_flow->spacing / $interface_spacing; - my $support_spacing = $self->object_config->support_material_spacing + $flow->spacing; - my $support_density = $support_spacing == 0 ? 1 : $flow->spacing / $support_spacing; - - my $process_layer = sub { - my ($layer_id) = @_; - my $layer = $object->support_layers->[$layer_id]; - my $z = $layer->print_z; - - # we redefine flows locally by applying this layer's height - my $_flow = $flow->clone; - my $_interface_flow = $interface_flow->clone; - $_flow->set_height($layer->height); - $_interface_flow->set_height($layer->height); - - my $overhang = $overhang->{$z} || []; - my $contact = $contact->{$z} || []; - my $interface = $interface->{$layer_id} || []; - my $base = $base->{$layer_id} || []; - - if (DEBUG_CONTACT_ONLY) { - $interface = []; - $base = []; - } - - if (0) { - require "Slic3r/SVG.pm"; - Slic3r::SVG::output("layer_" . $z . ".svg", - red_expolygons => union_ex($contact), - green_expolygons => union_ex($interface), - ); - } - - # islands - $layer->support_islands->append(@{union_ex([ @$interface, @$base, @$contact ])}); - - # contact - my $contact_infill = []; - if ($self->object_config->support_material_interface_layers == 0) { - # if no interface layers were requested we treat the contact layer - # exactly as a generic base layer - push @$base, @$contact; - } elsif (@$contact && $contact_loops > 0) { - # generate the outermost loop - - # find centerline of the external loop (or any other kind of extrusions should the loop be skipped) - $contact = offset($contact, -$_interface_flow->scaled_width/2); - - my @loops0 = (); - { - # find centerline of the external loop of the contours - my @external_loops = @$contact; - - # only consider the loops facing the overhang - { - my $overhang_with_margin = offset($overhang, +$_interface_flow->scaled_width/2); - @external_loops = grep { - @{intersection_pl( - [ $_->split_at_first_point ], - $overhang_with_margin, - )} - } @external_loops; - } - - # apply a pattern to the loop - my @positions = map @{Slic3r::Polygon->new(@$_)->equally_spaced_points($circle_distance)}, @external_loops; - @loops0 = @{diff( - [ @external_loops ], - [ map { my $c = $circle->clone; $c->translate(@$_); $c } @positions ], - )}; - } - - # make more loops - my @loops = @loops0; - for my $i (2..$contact_loops) { - my $d = ($i-1) * $_interface_flow->scaled_spacing; - push @loops, @{offset2(\@loops0, -$d -0.5*$_interface_flow->scaled_spacing, +0.5*$_interface_flow->scaled_spacing)}; - } - - # clip such loops to the side oriented towards the object - @loops = @{intersection_pl( - [ map $_->split_at_first_point, @loops ], - offset($overhang, +scale MARGIN), - )}; - - # add the contact infill area to the interface area - # note that growing loops by $circle_radius ensures no tiny - # extrusions are left inside the circles; however it creates - # a very large gap between loops and contact_infill, so maybe another - # solution should be found to achieve both goals - $contact_infill = diff( - $contact, - [ map @{$_->grow($circle_radius*1.1)}, @loops ], - ); - - # transform loops into ExtrusionPath objects - my $mm3_per_mm = $_interface_flow->mm3_per_mm; - @loops = map Slic3r::ExtrusionPath->new( - polyline => $_, - role => EXTR_ROLE_SUPPORTMATERIAL_INTERFACE, - mm3_per_mm => $mm3_per_mm, - width => $_interface_flow->width, - height => $layer->height, - ), @loops; - - $layer->support_interface_fills->append(@loops); - } - - # Allocate the fillers exclusively in the worker threads! Don't allocate them at the main thread, - # as Perl copies the C++ pointers by default, so then the C++ objects are shared between threads! - my %fillers = ( - interface => Slic3r::Filler->new_from_type('rectilinear'), - support => Slic3r::Filler->new_from_type($pattern), - ); - my $bounding_box = $object->bounding_box; - $fillers{interface}->set_bounding_box($object->bounding_box); - $fillers{support}->set_bounding_box($object->bounding_box); - - # interface and contact infill - if (@$interface || @$contact_infill) { - # make interface layers alternate angles by 90 degrees - my $alternate_angle = $interface_angle + (90 * (($layer_id + 1) % 2)); - $fillers{interface}->set_angle(deg2rad($alternate_angle)); - $fillers{interface}->set_min_spacing($_interface_flow->spacing); - - # find centerline of the external loop - $interface = offset2($interface, +scaled_epsilon, -(scaled_epsilon + $_interface_flow->scaled_width/2)); - - # join regions by offsetting them to ensure they're merged - $interface = offset([ @$interface, @$contact_infill ], scaled_epsilon); - - # turn base support into interface when it's contained in our holes - # (this way we get wider interface anchoring) - { - my @p = @$interface; - @$interface = (); - foreach my $p (@p) { - if ($p->is_clockwise) { - my $p2 = $p->clone; - $p2->make_counter_clockwise; - next if !@{diff([$p2], $base, 1)}; - } - push @$interface, $p; - } - } - $base = diff($base, $interface); - - my @paths = (); - foreach my $expolygon (@{union_ex($interface)}) { - my $p = $fillers{interface}->fill_surface( - Slic3r::Surface->new(expolygon => $expolygon, surface_type => S_TYPE_INTERNAL), - density => $interface_density, - layer_height => $layer->height, - complete => 1, - ); - my $mm3_per_mm = $_interface_flow->mm3_per_mm; - - push @paths, map Slic3r::ExtrusionPath->new( - polyline => Slic3r::Polyline->new(@$_), - role => EXTR_ROLE_SUPPORTMATERIAL_INTERFACE, - mm3_per_mm => $mm3_per_mm, - width => $_interface_flow->width, - height => $layer->height, - ), @$p; - } - - $layer->support_interface_fills->append(@paths); - } - - # support or flange - if (@$base) { - my $filler = $fillers{support}; - $filler->set_angle(deg2rad($angles[ ($layer_id) % @angles ])); - - # We don't use $base_flow->spacing because we need a constant spacing - # value that guarantees that all layers are correctly aligned. - $filler->set_min_spacing($flow->spacing); - - my $density = $support_density; - my $base_flow = $_flow; - - # find centerline of the external loop/extrusions - my $to_infill = offset2($base, +scaled_epsilon, -(scaled_epsilon + $_flow->scaled_width/2)); - - my @paths = (); - - # base flange - if ($layer_id == 0) { - $filler = $fillers{interface}; - $filler->set_angle(deg2rad($self->object_config->support_material_angle + 90)); - $density = 0.5; - $base_flow = $self->first_layer_flow; - - # use the proper spacing for first layer as we don't need to align - # its pattern to the other layers - $filler->set_min_spacing($base_flow->spacing); - - # subtract brim so that it goes around the object fully (and support gets its own brim) - if ($self->print_config->brim_width > 0) { - my $d = +scale $self->print_config->brim_width*2; - $to_infill = diff_ex( - $to_infill, - offset($object->get_layer(0)->slices->polygons, $d), - ); - } else { - $to_infill = union_ex($to_infill); - } - } else { - # draw a perimeter all around support infill - # TODO: use brim ordering algorithm - my $mm3_per_mm = $_flow->mm3_per_mm; - push @paths, map Slic3r::ExtrusionPath->new( - polyline => $_->split_at_first_point, - role => EXTR_ROLE_SUPPORTMATERIAL, - mm3_per_mm => $mm3_per_mm, - width => $_flow->width, - height => $layer->height, - ), @$to_infill; - - # TODO: use offset2_ex() - $to_infill = offset_ex($to_infill, -$_flow->scaled_spacing); - } - - my $mm3_per_mm = $base_flow->mm3_per_mm; - foreach my $expolygon (@$to_infill) { - my $p = $filler->fill_surface( - Slic3r::Surface->new(expolygon => $expolygon, surface_type => S_TYPE_INTERNAL), - density => $density, - layer_height => $layer->height, - complete => 1, - ); - - push @paths, map Slic3r::ExtrusionPath->new( - polyline => Slic3r::Polyline->new(@$_), - role => EXTR_ROLE_SUPPORTMATERIAL, - mm3_per_mm => $mm3_per_mm, - width => $base_flow->width, - height => $layer->height, - ), @$p; - } - - $layer->support_fills->append(@paths); - } - - if (0) { - require "Slic3r/SVG.pm"; - Slic3r::SVG::output("islands_" . $z . ".svg", - red_expolygons => union_ex($contact), - green_expolygons => union_ex($interface), - green_polylines => [ map $_->unpack->polyline, @{$layer->support_contact_fills} ], - polylines => [ map $_->unpack->polyline, @{$layer->support_fills} ], - ); - } - }; - - Slic3r::parallelize( - threads => $self->print_config->threads, - items => [ 0 .. $#{$object->support_layers} ], - thread_cb => sub { - my $q = shift; - while (defined (my $layer_id = $q->dequeue)) { - $process_layer->($layer_id); - } - }, - no_threads_cb => sub { - $process_layer->($_) for 0 .. $#{$object->support_layers}; - }, - ); -} - -sub generate_pillars_shape { - my ($self, $contact, $support_z, $shape) = @_; - - # this prevents supplying an empty point set to BoundingBox constructor - return if !%$contact; - - my $pillar_size = scale PILLAR_SIZE; - my $pillar_spacing = scale PILLAR_SPACING; - - my $grid; # arrayref of polygons - { - my $pillar = Slic3r::Polygon->new( - [0,0], - [$pillar_size, 0], - [$pillar_size, $pillar_size], - [0, $pillar_size], - ); - - my @pillars = (); - my $bb = Slic3r::Geometry::BoundingBox->new_from_points([ map @$_, map @$_, values %$contact ]); - for (my $x = $bb->x_min; $x <= $bb->x_max-$pillar_size; $x += $pillar_spacing) { - for (my $y = $bb->y_min; $y <= $bb->y_max-$pillar_size; $y += $pillar_spacing) { - push @pillars, my $p = $pillar->clone; - $p->translate($x, $y); - } - } - $grid = union(\@pillars); - } - - # add pillars to every layer - for my $i (0..$#$support_z) { - $shape->[$i] = [ @$grid ]; - } - - # build capitals - for my $i (0..$#$support_z) { - my $z = $support_z->[$i]; - - my $capitals = intersection( - $grid, - $contact->{$z} // [], - ); - - # work on one pillar at time (if any) to prevent the capitals from being merged - # but store the contact area supported by the capital because we need to make - # sure nothing is left - my $contact_supported_by_capitals = []; - foreach my $capital (@$capitals) { - # enlarge capital tops - $capital = offset([$capital], +($pillar_spacing - $pillar_size)/2); - push @$contact_supported_by_capitals, @$capital; - - for (my $j = $i-1; $j >= 0; $j--) { - my $jz = $support_z->[$j]; - $capital = offset($capital, -$self->interface_flow->scaled_width/2); - last if !@$capitals; - push @{ $shape->[$j] }, @$capital; - } - } - - # Capitals will not generally cover the whole contact area because there will be - # remainders. For now we handle this situation by projecting such unsupported - # areas to the ground, just like we would do with a normal support. - my $contact_not_supported_by_capitals = diff( - $contact->{$z} // [], - $contact_supported_by_capitals, - ); - if (@$contact_not_supported_by_capitals) { - for (my $j = $i-1; $j >= 0; $j--) { - push @{ $shape->[$j] }, @$contact_not_supported_by_capitals; - } - } - } -} - -sub clip_with_shape { - my ($self, $support, $shape) = @_; - - foreach my $i (keys %$support) { - # don't clip bottom layer with shape so that we - # can generate a continuous base flange - # also don't clip raft layers - next if $i == 0; - next if $i < $self->object_config->raft_layers; - $support->{$i} = intersection( - $support->{$i}, - $shape->[$i], - ); - } -} - -# this method returns the indices of the layers overlapping with the given one -sub overlapping_layers { - my ($self, $i, $support_z) = @_; - - my $zmax = $support_z->[$i]; - my $zmin = ($i == 0) ? 0 : $support_z->[$i-1]; - - return grep { - my $zmax2 = $support_z->[$_]; - my $zmin2 = ($_ == 0) ? 0 : $support_z->[$_-1]; - $zmax > $zmin2 && $zmin < $zmax2; - } 0..$#$support_z; -} - -sub contact_distance { - my ($self, $layer_height, $nozzle_diameter) = @_; - - my $extra = $self->object_config->support_material_contact_distance; - if ($extra == 0) { - return $layer_height; - } else { - return $nozzle_diameter + $extra; - } -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/SVG.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/SVG.pm deleted file mode 100644 index 1aa7dd27..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/SVG.pm +++ /dev/null @@ -1,142 +0,0 @@ -package Slic3r::SVG; -use strict; -use warnings; - -use SVG; - -use constant X => 0; -use constant Y => 1; - -our $filltype = 'evenodd'; - -sub factor { - return &Slic3r::SCALING_FACTOR * 10; -} - -sub svg { - my $svg = SVG->new(width => 200 * 10, height => 200 * 10); - my $marker_end = $svg->marker( - id => "endArrow", - viewBox => "0 0 10 10", - refX => "1", - refY => "5", - markerUnits => "strokeWidth", - orient => "auto", - markerWidth => "10", - markerHeight => "8", - ); - $marker_end->polyline( - points => "0,0 10,5 0,10 1,5", - fill => "darkblue", - ); - - return $svg; -} - -sub output { - my ($filename, @things) = @_; - - my $svg = svg(); - my $arrows = 1; - - while (my $type = shift @things) { - my $value = shift @things; - - if ($type eq 'no_arrows') { - $arrows = 0; - } elsif ($type =~ /^(?:(.+?)_)?expolygons$/) { - my $colour = $1; - $value = [ map $_->pp, @$value ]; - - my $g = $svg->group( - style => { - 'stroke-width' => 0, - 'stroke' => $colour || 'black', - 'fill' => ($type !~ /polygons/ ? 'none' : ($colour || 'grey')), - 'fill-type' => $filltype, - }, - ); - foreach my $expolygon (@$value) { - my $points = join ' ', map "M $_ z", map join(" ", reverse map $_->[0]*factor() . " " . $_->[1]*factor(), @$_), @$expolygon; - $g->path( - d => $points, - ); - } - } elsif ($type =~ /^(?:(.+?)_)?(polygon|polyline)s$/) { - my ($colour, $method) = ($1, $2); - $value = [ map $_->pp, @$value ]; - - my $g = $svg->group( - style => { - 'stroke-width' => ($method eq 'polyline') ? 1 : 0, - 'stroke' => $colour || 'black', - 'fill' => ($type !~ /polygons/ ? 'none' : ($colour || 'grey')), - }, - ); - foreach my $polygon (@$value) { - my $path = $svg->get_path( - 'x' => [ map($_->[X] * factor(), @$polygon) ], - 'y' => [ map($_->[Y] * factor(), @$polygon) ], - -type => 'polygon', - ); - $g->$method( - %$path, - 'marker-end' => !$arrows ? "" : "url(#endArrow)", - ); - } - } elsif ($type =~ /^(?:(.+?)_)?points$/) { - my $colour = $1 // 'black'; - my $r = $colour eq 'black' ? 1 : 3; - $value = [ map $_->pp, @$value ]; - - my $g = $svg->group( - style => { - 'stroke-width' => 2, - 'stroke' => $colour, - 'fill' => $colour, - }, - ); - foreach my $point (@$value) { - $g->circle( - cx => $point->[X] * factor(), - cy => $point->[Y] * factor(), - r => $r, - ); - } - } elsif ($type =~ /^(?:(.+?)_)?lines$/) { - my $colour = $1; - $value = [ map $_->pp, @$value ]; - - my $g = $svg->group( - style => { - 'stroke-width' => 2, - }, - ); - foreach my $line (@$value) { - $g->line( - x1 => $line->[0][X] * factor(), - y1 => $line->[0][Y] * factor(), - x2 => $line->[1][X] * factor(), - y2 => $line->[1][Y] * factor(), - style => { - 'stroke' => $colour || 'black', - }, - 'marker-end' => !$arrows ? "" : "url(#endArrow)", - ); - } - } - } - - write_svg($svg, $filename); -} - -sub write_svg { - my ($svg, $filename) = @_; - - Slic3r::open(\my $fh, '>', $filename); - print $fh $svg->xmlify; - close $fh; - printf "SVG written to %s\n", $filename; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Surface.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Surface.pm deleted file mode 100644 index 0c5bb5d2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Surface.pm +++ /dev/null @@ -1,15 +0,0 @@ -package Slic3r::Surface; -use strict; -use warnings; - -require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(S_TYPE_TOP S_TYPE_BOTTOM S_TYPE_BOTTOMBRIDGE S_TYPE_INTERNAL S_TYPE_INTERNALSOLID S_TYPE_INTERNALBRIDGE S_TYPE_INTERNALVOID); -our %EXPORT_TAGS = (types => \@EXPORT_OK); - -sub p { - my $self = shift; - return @{$self->polygons}; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Test.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Test.pm deleted file mode 100644 index f167e30a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Test.pm +++ /dev/null @@ -1,258 +0,0 @@ -package Slic3r::Test; -use strict; -use warnings; - -require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(_eq); - -use IO::Scalar; -use List::Util qw(first); -use Slic3r::Geometry qw(epsilon X Y Z); - -my %cuboids = ( - '20mm_cube' => [20,20,20], - '2x20x10' => [2, 20,10], -); - -sub mesh { - my ($name, %params) = @_; - - my ($vertices, $facets); - if ($cuboids{$name}) { - my ($x, $y, $z) = @{ $cuboids{$name} }; - $vertices = [ - [$x,$y,0], [$x,0,0], [0,0,0], [0,$y,0], [$x,$y,$z], [0,$y,$z], [0,0,$z], [$x,0,$z], - ]; - $facets = [ - [0,1,2], [0,2,3], [4,5,6], [4,6,7], [0,4,7], [0,7,1], [1,7,6], [1,6,2], [2,6,5], [2,5,3], [4,0,3], [4,3,5], - ], - } elsif ($name eq 'box') { - my ($x, $y, $z) = @{ $params{"dim"} }; - $vertices = [ - [$x,$y,0], [$x,0,0], [0,0,0], [0,$y,0], [$x,$y,$z], [0,$y,$z], [0,0,$z], [$x,0,$z], - ]; - $facets = [ - [0,1,2], [0,2,3], [4,5,6], [4,6,7], [0,4,7], [0,7,1], [1,7,6], [1,6,2], [2,6,5], [2,5,3], [4,0,3], [4,3,5], - ], - } elsif ($name eq 'cube_with_hole') { - $vertices = [ - [0,0,0],[0,0,10],[0,20,0],[0,20,10],[20,0,0],[20,0,10],[5,5,0],[15,5,0],[5,15,0],[20,20,0],[15,15,0],[20,20,10],[5,5,10],[5,15,10],[15,5,10],[15,15,10] - ]; - $facets = [ - [0,1,2],[2,1,3],[1,0,4],[5,1,4],[6,7,4],[8,2,9],[0,2,8],[10,8,9],[0,8,6],[0,6,4],[4,7,9],[7,10,9],[2,3,9],[9,3,11],[12,1,5],[13,3,12],[14,12,5],[3,1,12],[11,3,13],[11,15,5],[11,13,15],[15,14,5],[5,4,9],[11,5,9],[8,13,12],[6,8,12],[10,15,13],[8,10,13],[15,10,14],[14,10,7],[14,7,12],[12,7,6] - ], - } elsif ($name eq 'cube_with_concave_hole') { - $vertices = [ - [-10,-10,-5],[-10,-10,5],[-10,10,-5],[-10,10,5],[10,-10,-5],[10,-10,5],[-5,-5,-5],[5,-5,-5],[5,5,-5],[5,10,-5],[-5,5,-5],[3.06161699911402e-16,5,-5],[5,0,-5],[0,0,-5],[10,5,-5],[5,10,5],[-5,-5,5],[5,0,5],[5,-5,5],[-5,5,5],[10,5,5],[5,5,5],[3.06161699911402e-16,5,5],[0,0,5] - ]; - $facets = [ - [0,1,2],[2,1,3],[1,0,4],[5,1,4],[6,7,4],[8,2,9],[10,2,11],[11,12,13],[0,2,10],[0,10,6],[0,6,4],[11,2,8],[4,7,12],[4,12,8],[12,11,8],[14,4,8],[2,3,9],[9,3,15],[16,1,5],[17,18,5],[19,3,16],[20,21,5],[18,16,5],[3,1,16],[22,3,19],[21,3,22],[21,17,5],[21,22,17],[21,15,3],[23,17,22],[5,4,14],[20,5,14],[20,14,21],[21,14,8],[9,15,21],[8,9,21],[10,19,16],[6,10,16],[11,22,19],[10,11,19],[13,23,11],[11,23,22],[23,13,12],[17,23,12],[17,12,18],[18,12,7],[18,7,16],[16,7,6] - ], - } elsif ($name eq 'V') { - $vertices = [ - [-14,0,20],[-14,15,20],[0,0,0],[0,15,0],[-4,0,20],[-4,15,20],[5,0,7.14286],[10,0,0],[24,0,20],[14,0,20],[10,15,0],[5,15,7.14286],[14,15,20],[24,15,20] - ]; - $facets = [ - [0,1,2],[2,1,3],[1,0,4],[5,1,4],[4,0,2],[6,4,2],[7,6,2],[8,9,7],[9,6,7],[2,3,7],[7,3,10],[1,5,3],[3,5,11],[11,12,13],[11,13,3],[3,13,10],[5,4,6],[11,5,6],[6,9,11],[11,9,12],[12,9,8],[13,12,8],[8,7,10],[13,8,10] - ], - } elsif ($name eq 'L') { - $vertices = [ - [0,10,0],[0,10,10],[0,20,0],[0,20,10],[10,10,0],[10,10,10],[20,20,0],[20,0,0],[10,0,0],[20,20,10],[10,0,10],[20,0,10] - ]; - $facets = [ - [0,1,2],[2,1,3],[4,5,1],[0,4,1],[0,2,4],[4,2,6],[4,6,7],[4,7,8],[2,3,6],[6,3,9],[3,1,5],[9,3,5],[10,11,5],[11,9,5],[5,4,10],[10,4,8],[10,8,7],[11,10,7],[11,7,6],[9,11,6] - ], - } elsif ($name eq 'overhang') { - $vertices = [ - [1364.68505859375,614.398010253906,20.002498626709],[1389.68505859375,614.398010253906,20.002498626709],[1377.18505859375,589.398986816406,20.002498626709],[1389.68505859375,589.398986816406,20.002498626709],[1389.68505859375,564.398986816406,20.0014991760254],[1364.68505859375,589.398986816406,20.002498626709],[1364.68505859375,564.398986816406,20.0014991760254],[1360.93505859375,589.398986816406,17.0014991760254],[1360.93505859375,585.64697265625,17.0014991760254],[1357.18505859375,564.398986816406,17.0014991760254],[1364.68505859375,589.398986816406,17.0014991760254],[1364.68505859375,571.899963378906,17.0014991760254],[1364.68505859375,564.398986816406,17.0014991760254],[1348.43603515625,564.398986816406,17.0014991760254],[1352.80908203125,589.398986816406,17.0014991760254],[1357.18408203125,589.398986816406,17.0014991760254],[1357.18310546875,614.398010253906,17.0014991760254],[1364.68505859375,606.89599609375,17.0014991760254],[1364.68505859375,614.398010253906,17.0014991760254],[1352.18603515625,564.398986816406,20.0014991760254],[1363.65405273438,589.398986816406,23.3004989624023],[1359.46704101562,589.398986816406,23.3004989624023],[1358.37109375,564.398986816406,23.3004989624023],[1385.56103515625,564.398986816406,23.3004989624023],[1373.06311035156,589.398986816406,23.3004989624023],[1368.80810546875,564.398986816406,23.3004989624023],[1387.623046875,589.398986816406,23.3004989624023],[1387.623046875,585.276000976562,23.3004989624023],[1389.68505859375,589.398986816406,23.3004989624023],[1389.68505859375,572.64599609375,23.3004989624023],[1389.68505859375,564.398986816406,23.3004989624023],[1367.77709960938,589.398986816406,23.3004989624023],[1366.7470703125,564.398986816406,23.3004989624023],[1354.31201171875,589.398986816406,23.3004989624023],[1352.18603515625,564.398986816406,23.3004989624023],[1389.68505859375,614.398010253906,23.3004989624023],[1377.31701660156,614.398010253906,23.3004989624023],[1381.43908691406,589.398986816406,23.3004989624023],[1368.80700683594,614.398010253906,23.3004989624023],[1368.80810546875,589.398986816406,23.3004989624023],[1356.43908691406,614.398010253906,23.3004989624023],[1357.40502929688,589.398986816406,23.3004989624023],[1360.56201171875,614.398010253906,23.3004989624023],[1348.705078125,614.398010253906,23.3004989624023],[1350.44506835938,589.398986816406,23.3004989624023],[1389.68505859375,606.153015136719,23.3004989624023],[1347.35205078125,589.398986816406,23.3004989624023],[1346.56005859375,589.398986816406,23.3004989624023],[1346.56005859375,594.159912109375,17.0014991760254],[1346.56005859375,589.398986816406,17.0014991760254],[1346.56005859375,605.250427246094,23.3004989624023],[1346.56005859375,614.398010253906,23.3004989624023],[1346.56005859375,614.398010253906,20.8258285522461],[1346.56005859375,614.398010253906,17.0014991760254],[1346.56005859375,564.398986816406,19.10133934021],[1346.56005859375,567.548583984375,23.3004989624023],[1346.56005859375,564.398986816406,17.0020332336426],[1346.56005859375,564.398986816406,23.0018501281738],[1346.56005859375,564.398986816406,23.3004989624023],[1346.56005859375,575.118957519531,17.0014991760254],[1346.56005859375,574.754028320312,23.3004989624023] - ]; - $facets = [ - [0,1,2],[2,3,4],[2,5,0],[4,6,2],[2,6,5],[2,1,3],[7,8,9],[10,9,8],[11,9,10],[12,9,11],[9,13,14],[7,15,16],[10,17,0],[10,0,5],[12,11,6],[18,16,0],[6,19,13],[6,13,9],[9,12,6],[17,18,0],[11,10,5],[11,5,6],[14,16,15],[17,7,18],[16,18,7],[14,15,9],[7,9,15],[7,17,8],[10,8,17],[20,21,22],[23,24,25],[26,23,27],[28,27,23],[29,28,23],[30,29,23],[25,31,32],[22,33,34],[35,36,37],[24,38,39],[21,40,41],[38,42,20],[33,43,44],[6,4,23],[6,23,25],[36,35,1],[1,0,38],[1,38,36],[29,30,4],[25,32,6],[40,42,0],[35,45,1],[4,3,28],[4,28,29],[3,1,45],[3,45,28],[22,34,19],[19,6,32],[19,32,22],[42,38,0],[30,23,4],[0,16,43],[0,43,40],[24,37,36],[38,24,36],[24,23,37],[37,23,26],[22,32,20],[20,32,31],[33,41,40],[43,33,40],[45,35,26],[37,26,35],[33,44,34],[44,43,46],[20,42,21],[40,21,42],[31,39,38],[20,31,38],[33,22,41],[21,41,22],[31,25,39],[24,39,25],[26,27,45],[28,45,27],[47,48,49],[47,50,48],[51,48,50],[52,48,51],[53,48,52],[54,55,56],[57,55,54],[58,55,57],[49,59,47],[60,56,55],[59,56,60],[60,47,59],[48,53,16],[56,13,19],[54,56,19],[56,59,13],[59,49,14],[59,14,13],[49,48,16],[49,16,14],[44,46,60],[44,60,55],[51,50,43],[19,34,58],[19,58,57],[53,52,16],[43,16,52],[43,52,51],[57,54,19],[47,60,46],[55,58,34],[55,34,44],[50,47,46],[50,46,43] - ], - } elsif ($name eq '40x10') { - $vertices = [ - [12.8680295944214,29.5799007415771,12],[11.7364797592163,29.8480796813965,12],[11.1571502685547,29.5300102233887,12],[10.5814504623413,29.9830799102783,12],[10,29.6000003814697,12],[9.41855144500732,29.9830799102783,12],[8.84284687042236,29.5300102233887,12],[8.26351833343506,29.8480796813965,12],[7.70256900787354,29.3210391998291,12],[7.13196802139282,29.5799007415771,12],[6.59579277038574,28.9761600494385,12],[6.03920221328735,29.1821594238281,12],[5.53865718841553,28.5003795623779,12],[5,28.6602592468262,12],[4.54657793045044,27.9006500244141,12],[4.02841377258301,28.0212306976318,12],[3.63402199745178,27.1856994628906,12],[3.13758301734924,27.2737407684326,12],[2.81429696083069,26.3659801483154,12],[2.33955597877502,26.4278793334961,12],[2.0993549823761,25.4534206390381,12],[1.64512205123901,25.4950904846191,12],[1.49962198734283,24.4613399505615,12],[1.0636739730835,24.4879894256592,12],[1.02384400367737,23.4042091369629,12],[0.603073298931122,23.4202003479004,12],[0.678958415985107,22.2974300384521,12],[0.269550800323486,22.3061599731445,12],[0.469994693994522,21.1571502685547,12],[0.067615881562233,21.1609306335449,12],[0.399999290704727,20,12],[0,20,12],[0.399999290704727,5,12],[0,5,12],[0.456633001565933,4.2804012298584,12],[0.0615576282143593,4.21782684326172,12],[0.625140011310577,3.5785219669342,12],[0.244717106223106,3.45491504669189,12],[0.901369392871857,2.91164398193359,12],[0.544967114925385,2.73004698753357,12],[1.27852201461792,2.29618692398071,12],[0.954914808273315,2.06107401847839,12],[1.74730801582336,1.74730801582336,12],[1.46446597576141,1.46446597576141,12],[2.29618692398071,1.27852201461792,12],[2.06107401847839,0.954914808273315,12],[2.91164398193359,0.901369392871857,12],[2.73004698753357,0.544967114925385,12],[3.5785219669342,0.625140011310577,12],[3.45491504669189,0.244717106223106,12],[4.2804012298584,0.456633001565933,12],[4.21782684326172,0.0615576282143593,12],[5,0.399999290704727,12],[5,0,12],[19.6000003814697,0.399999290704727,12],[20,0,12],[19.6000003814697,20,12],[20,20,12],[19.5300102233887,21.1571502685547,12],[19.9323806762695,21.1609306335449,12],[19.3210391998291,22.2974300384521,12],[19.7304496765137,22.3061599731445,12],[18.9761600494385,23.4042091369629,12],[19.3969306945801,23.4202003479004,12],[18.5003795623779,24.4613399505615,12],[18.9363307952881,24.4879894256592,12],[17.9006500244141,25.4534206390381,12],[18.3548793792725,25.4950904846191,12],[17.1856994628906,26.3659801483154,12],[17.6604404449463,26.4278793334961,12],[16.3659801483154,27.1856994628906,12],[16.862419128418,27.2737407684326,12],[15.4534196853638,27.9006500244141,12],[15.9715900421143,28.0212306976318,12],[14.4613399505615,28.5003795623779,12],[15,28.6602592468262,12],[13.4042100906372,28.9761600494385,12],[13.9608001708984,29.1821594238281,12],[12.2974300384521,29.3210391998291,12],[7.13196802139282,29.5799007415771,0],[8.26351833343506,29.8480796813965,0],[8.84284687042236,29.5300102233887,0],[9.41855144500732,29.9830799102783,0],[10,29.6000003814697,0],[10.5814504623413,29.9830799102783,0],[11.1571502685547,29.5300102233887,0],[11.7364797592163,29.8480796813965,0],[12.2974300384521,29.3210391998291,0],[12.8680295944214,29.5799007415771,0],[13.4042100906372,28.9761600494385,0],[13.9608001708984,29.1821594238281,0],[14.4613399505615,28.5003795623779,0],[15,28.6602592468262,0],[15.4534196853638,27.9006500244141,0],[15.9715900421143,28.0212306976318,0],[16.3659801483154,27.1856994628906,0],[16.862419128418,27.2737407684326,0],[17.1856994628906,26.3659801483154,0],[17.6604404449463,26.4278793334961,0],[17.9006500244141,25.4534206390381,0],[18.3548793792725,25.4950904846191,0],[18.5003795623779,24.4613399505615,0],[18.9363307952881,24.4879894256592,0],[18.9761600494385,23.4042091369629,0],[19.3969306945801,23.4202003479004,0],[19.3210391998291,22.2974300384521,0],[19.7304496765137,22.3061599731445,0],[19.5300102233887,21.1571502685547,0],[19.9323806762695,21.1609306335449,0],[19.6000003814697,20,0],[20,20,0],[19.6000003814697,0.399999290704727,0],[20,0,0],[5,0.399999290704727,0],[5,0,0],[4.2804012298584,0.456633001565933,0],[4.21782684326172,0.0615576282143593,0],[3.5785219669342,0.625140011310577,0],[3.45491504669189,0.244717106223106,0],[2.91164398193359,0.901369392871857,0],[2.73004698753357,0.544967114925385,0],[2.29618692398071,1.27852201461792,0],[2.06107401847839,0.954914808273315,0],[1.74730801582336,1.74730801582336,0],[1.46446597576141,1.46446597576141,0],[1.27852201461792,2.29618692398071,0],[0.954914808273315,2.06107401847839,0],[0.901369392871857,2.91164398193359,0],[0.544967114925385,2.73004698753357,0],[0.625140011310577,3.5785219669342,0],[0.244717106223106,3.45491504669189,0],[0.456633001565933,4.2804012298584,0],[0.0615576282143593,4.21782684326172,0],[0.399999290704727,5,0],[0,5,0],[0.399999290704727,20,0],[0,20,0],[0.469994693994522,21.1571502685547,0],[0.067615881562233,21.1609306335449,0],[0.678958415985107,22.2974300384521,0],[0.269550800323486,22.3061599731445,0],[1.02384400367737,23.4042091369629,0],[0.603073298931122,23.4202003479004,0],[1.49962198734283,24.4613399505615,0],[1.0636739730835,24.4879894256592,0],[2.0993549823761,25.4534206390381,0],[1.64512205123901,25.4950904846191,0],[2.81429696083069,26.3659801483154,0],[2.33955597877502,26.4278793334961,0],[3.63402199745178,27.1856994628906,0],[3.13758301734924,27.2737407684326,0],[4.54657793045044,27.9006500244141,0],[4.02841377258301,28.0212306976318,0],[5.53865718841553,28.5003795623779,0],[5,28.6602592468262,0],[6.59579277038574,28.9761600494385,0],[6.03920221328735,29.1821594238281,0],[7.70256900787354,29.3210391998291,0] - ]; - $facets = [ - [0,1,2],[2,1,3],[2,3,4],[4,3,5],[4,5,6],[6,5,7],[6,7,8],[8,7,9],[8,9,10],[10,9,11],[10,11,12],[12,11,13],[12,13,14],[14,13,15],[14,15,16],[16,15,17],[16,17,18],[18,17,19],[18,19,20],[20,19,21],[20,21,22],[22,21,23],[22,23,24],[24,23,25],[24,25,26],[26,25,27],[26,27,28],[28,27,29],[28,29,30],[30,29,31],[30,31,32],[32,31,33],[32,33,34],[34,33,35],[34,35,36],[36,35,37],[36,37,38],[38,37,39],[38,39,40],[40,39,41],[40,41,42],[42,41,43],[42,43,44],[44,43,45],[44,45,46],[46,45,47],[46,47,48],[48,47,49],[48,49,50],[50,49,51],[50,51,52],[52,51,53],[52,53,54],[54,53,55],[54,55,56],[56,55,57],[56,57,58],[58,57,59],[58,59,60],[60,59,61],[60,61,62],[62,61,63],[62,63,64],[64,63,65],[64,65,66],[66,65,67],[66,67,68],[68,67,69],[68,69,70],[70,69,71],[70,71,72],[72,71,73],[72,73,74],[74,73,75],[74,75,76],[76,75,77],[76,77,78],[78,77,0],[78,0,2],[79,80,81],[81,80,82],[81,82,83],[83,82,84],[83,84,85],[85,84,86],[85,86,87],[87,86,88],[87,88,89],[89,88,90],[89,90,91],[91,90,92],[91,92,93],[93,92,94],[93,94,95],[95,94,96],[95,96,97],[97,96,98],[97,98,99],[99,98,100],[99,100,101],[101,100,102],[101,102,103],[103,102,104],[103,104,105],[105,104,106],[105,106,107],[107,106,108],[107,108,109],[109,108,110],[109,110,111],[111,110,112],[111,112,113],[113,112,114],[113,114,115],[115,114,116],[115,116,117],[117,116,118],[117,118,119],[119,118,120],[119,120,121],[121,120,122],[121,122,123],[123,122,124],[123,124,125],[125,124,126],[125,126,127],[127,126,128],[127,128,129],[129,128,130],[129,130,131],[131,130,132],[131,132,133],[133,132,134],[133,134,135],[135,134,136],[135,136,137],[137,136,138],[137,138,139],[139,138,140],[139,140,141],[141,140,142],[141,142,143],[143,142,144],[143,144,145],[145,144,146],[145,146,147],[147,146,148],[147,148,149],[149,148,150],[149,150,151],[151,150,152],[151,152,153],[153,152,154],[153,154,155],[155,154,156],[155,156,157],[157,156,79],[157,79,81],[57,110,108],[57,108,59],[59,108,106],[59,106,61],[61,106,104],[61,104,63],[63,104,102],[63,102,65],[65,102,100],[65,100,67],[67,100,98],[67,98,69],[69,98,96],[69,96,71],[71,96,94],[71,94,73],[73,94,92],[73,92,75],[75,92,90],[75,90,77],[77,90,88],[77,88,0],[0,88,86],[0,86,1],[1,86,84],[1,84,3],[3,84,82],[3,82,5],[5,82,80],[5,80,7],[7,80,79],[7,79,9],[9,79,156],[9,156,11],[11,156,154],[11,154,13],[13,154,152],[13,152,15],[15,152,150],[15,150,17],[17,150,148],[17,148,19],[19,148,146],[19,146,21],[21,146,144],[21,144,23],[23,144,142],[23,142,25],[25,142,140],[25,140,27],[27,140,138],[27,138,29],[29,138,136],[29,136,31],[33,31,134],[134,31,136],[33,134,132],[33,132,35],[35,132,130],[35,130,37],[37,130,128],[37,128,39],[39,128,126],[39,126,41],[41,126,124],[41,124,43],[43,124,122],[43,122,45],[45,122,120],[45,120,47],[47,120,118],[47,118,49],[49,118,116],[49,116,51],[51,116,114],[51,114,53],[55,53,112],[112,53,114],[57,55,110],[110,55,112],[30,135,137],[30,137,28],[28,137,139],[28,139,26],[26,139,141],[26,141,24],[24,141,143],[24,143,22],[22,143,145],[22,145,20],[20,145,147],[20,147,18],[18,147,149],[18,149,16],[16,149,151],[16,151,14],[14,151,153],[14,153,12],[12,153,155],[12,155,10],[10,155,157],[10,157,8],[8,157,81],[8,81,6],[6,81,83],[6,83,4],[4,83,85],[4,85,2],[2,85,87],[2,87,78],[78,87,89],[78,89,76],[76,89,91],[76,91,74],[74,91,93],[74,93,72],[72,93,95],[72,95,70],[70,95,97],[70,97,68],[68,97,99],[68,99,66],[66,99,101],[66,101,64],[64,101,103],[64,103,62],[62,103,105],[62,105,60],[60,105,107],[60,107,58],[58,107,109],[58,109,56],[30,32,135],[135,32,133],[52,113,115],[52,115,50],[50,115,117],[50,117,48],[48,117,119],[48,119,46],[46,119,121],[46,121,44],[44,121,123],[44,123,42],[42,123,125],[42,125,40],[40,125,127],[40,127,38],[38,127,129],[38,129,36],[36,129,131],[36,131,34],[34,131,133],[34,133,32],[52,54,113],[113,54,111],[54,56,111],[111,56,109] - ], - } elsif ($name eq 'sloping_hole') { - $vertices = [ - [-20,-20,-5],[-20,-20,5],[-20,20,-5],[-20,20,5],[20,-20,-5],[20,-20,5],[4.46294021606445,7.43144989013672,-5],[20,20,-5],[-19.1420993804932,0,-5],[-18.8330993652344,-2.07911992073059,-5],[-17.9195003509521,-4.06736993789673,-5],[-16.4412002563477,-5.87785005569458,-5],[-14.4629001617432,-7.43144989013672,-5],[-12.0711002349854,-8.66024971008301,-5],[-9.37016010284424,-9.51056003570557,-5],[-3.5217399597168,-9.94521999359131,-5],[-6.4782600402832,-9.94521999359131,-5],[-0.629840016365051,-9.51056003570557,-5],[2.07106995582581,-8.66024971008301,-5],[6.44122982025146,-5.87785005569458,-5],[4.46294021606445,-7.43144989013672,-5],[-12.0711002349854,8.66024971008301,-5],[-9.37016010284424,9.51056003570557,-5],[7.91947984695435,-4.06736993789673,-5],[8.83310031890869,-2.07911992073059,-5],[-6.4782600402832,9.94521999359131,-5],[-0.629840016365051,9.51056003570557,-5],[2.07106995582581,8.66024971008301,-5],[9.14214038848877,0,-5],[8.83310031890869,2.07911992073059,-5],[-3.5217399597168,9.94521999359131,-5],[7.91947984695435,4.06736993789673,-5],[6.44122982025146,5.87785005569458,-5],[-14.4629001617432,7.43144989013672,-5],[-16.4412002563477,5.87785005569458,-5],[-17.9195003509521,4.06736993789673,-5],[-18.8330993652344,2.07911992073059,-5],[20,20,5],[3.5217399597168,-9.94521999359131,5],[-8.83310031890869,-2.07911992073059,5],[-9.14214038848877,0,5],[-8.83310031890869,2.07911992073059,5],[6.4782600402832,-9.94521999359131,5],[-7.91947984695435,4.06736993789673,5],[-6.44122982025146,5.87785005569458,5],[-4.46294021606445,7.43144989013672,5],[-2.07106995582581,8.66024971008301,5],[0.629840016365051,9.51056003570557,5],[12.0711002349854,-8.66024971008301,5],[9.37016010284424,-9.51056003570557,5],[3.5217399597168,9.94521999359131,5],[6.4782600402832,9.94521999359131,5],[9.37016010284424,9.51056003570557,5],[12.0711002349854,8.66024971008301,5],[14.4629001617432,7.43144989013672,5],[16.4412002563477,-5.87785005569458,5],[14.4629001617432,-7.43144989013672,5],[16.4412002563477,5.87785005569458,5],[17.9195003509521,4.06736993789673,5],[18.8330993652344,-2.07911992073059,5],[17.9195003509521,-4.06736993789673,5],[18.8330993652344,2.07911992073059,5],[19.1420993804932,0,5],[0.629840016365051,-9.51056003570557,5],[-2.07106995582581,-8.66024971008301,5],[-4.46294021606445,-7.43144989013672,5],[-6.44122982025146,-5.87785005569458,5],[-7.91947984695435,-4.06736993789673,5] - ]; - $facets = [ - [0,1,2],[2,1,3],[1,0,4],[5,1,4],[6,2,7],[0,2,8],[0,8,9],[0,9,10],[0,10,11],[0,11,12],[0,12,13],[0,13,4],[13,14,4],[15,4,16],[17,4,15],[18,4,17],[19,4,20],[18,20,4],[21,2,22],[4,19,23],[4,23,7],[23,24,7],[22,2,25],[26,2,27],[28,29,7],[25,2,30],[29,31,7],[30,2,26],[31,32,7],[27,2,6],[32,6,7],[28,7,24],[33,2,21],[34,2,33],[35,2,34],[36,2,35],[8,2,36],[16,4,14],[2,3,7],[7,3,37],[38,1,5],[3,1,39],[3,39,40],[3,40,41],[42,38,5],[3,41,43],[3,43,44],[37,3,45],[37,45,46],[37,46,47],[48,49,5],[37,47,50],[49,42,5],[37,50,51],[37,51,52],[37,52,53],[37,53,54],[55,56,5],[37,54,57],[37,57,58],[59,60,5],[37,58,61],[37,62,5],[37,61,62],[62,59,5],[60,55,5],[63,1,38],[64,1,63],[65,1,64],[66,1,65],[67,1,66],[39,1,67],[44,45,3],[56,48,5],[5,4,7],[37,5,7],[41,40,36],[36,40,8],[39,9,40],[40,9,8],[43,41,35],[35,41,36],[44,43,34],[34,43,35],[33,45,44],[34,33,44],[21,46,45],[33,21,45],[22,47,46],[21,22,46],[25,50,47],[22,25,47],[30,51,50],[25,30,50],[26,52,51],[30,26,51],[27,53,52],[26,27,52],[6,54,53],[27,6,53],[32,57,54],[6,32,54],[31,58,57],[32,31,57],[29,61,58],[31,29,58],[28,62,61],[29,28,61],[59,62,28],[24,59,28],[60,59,24],[23,60,24],[55,60,23],[19,55,23],[55,19,56],[56,19,20],[56,20,48],[48,20,18],[48,18,49],[49,18,17],[49,17,42],[42,17,15],[42,15,38],[38,15,16],[38,16,63],[63,16,14],[63,14,64],[64,14,13],[64,13,65],[65,13,12],[65,12,66],[66,12,11],[66,11,67],[67,11,10],[67,10,39],[39,10,9] - ], - } elsif ($name eq 'ipadstand') { - $vertices = [ - [17.4344673156738,-2.69879599481136e-16,9.5],[14.2814798355103,10,9.5],[0,0,9.5],[31.7159481048584,10,9.5],[62.2344741821289,2.06667568800577e-16,20],[31.7159481048584,10,20],[17.4344673156738,-2.69879599481136e-16,20],[62.2344741821289,10,20],[98.2079696655273,10,0],[98.2079696655273,8.56525380796383e-16,10],[98.2079696655273,0,0],[98.2079696655273,10,20],[98.2079696655273,0,20],[81.6609649658203,-4.39753856997999e-16,10],[90.0549850463867,10,10],[78.5079803466797,10,10],[93.2079696655273,8.56525380796383e-16,10],[14.2814798355103,10,20],[0,0,20],[87.4344711303711,2.81343962782118e-15,20],[84.2814788818359,10,20],[0,10,20],[0,0,0],[0,10,0],[62.2344741821289,2.06667568800577e-16,30],[66.9609756469727,10,30],[62.2344741821289,10,30],[70.1139602661133,8.5525763717214e-16,30],[67.7053375244141,10,28.7107200622559],[71.6787109375,1.24046736339707e-15,27.2897701263428] - ]; - $facets = [ - [0,1,2],[1,0,3],[4,5,6],[5,4,7],[8,9,10],[9,11,12],[11,9,8],[13,14,15],[14,13,16],[17,2,1],[2,17,18],[19,11,20],[11,19,12],[17,21,18],[21,2,18],[2,21,22],[22,21,23],[8,22,23],[22,8,10],[24,25,26],[25,24,27],[23,1,8],[1,23,21],[1,21,17],[5,15,3],[15,5,7],[15,7,28],[28,7,26],[28,26,25],[8,14,11],[14,8,3],[3,8,1],[14,3,15],[11,14,20],[26,4,24],[4,26,7],[12,16,9],[16,12,19],[29,4,13],[4,29,24],[24,29,27],[9,22,10],[22,9,0],[0,9,16],[0,16,13],[0,13,6],[6,13,4],[2,22,0],[19,14,16],[14,19,20],[15,29,13],[29,25,27],[25,29,15],[25,15,28],[6,3,0],[3,6,5] - ]; - } elsif ($name eq 'A') { - $vertices = [ - [513.075988769531,51.6074333190918,36.0009002685547],[516.648803710938,51.7324333190918,36.0009002685547],[513.495178222656,51.7324333190918,36.0009002685547],[489.391204833984,51.4824333190918,24.0011005401611],[488.928588867188,51.7324333190918,24.0011005401611],[492.06201171875,51.7324333190918,24.0011005401611],[496.840393066406,51.2324333190918,24.0011005401611],[495.195404052734,51.7324333190918,24.0011005401611],[498.981994628906,51.7324333190918,24.0011005401611],[506.966613769531,51.6074333190918,24.0011005401611],[510.342010498047,51.7324333190918,24.0011005401611],[507.163818359375,51.6074333190918,24.0011005401611],[512.515380859375,54.7190322875977,36.0009002685547],[514.161987304688,54.5058326721191,36.0009002685547],[493.06201171875,54.7190322875977,36.0009002685547],[495.195404052734,51.7324333190918,36.0009002685547],[496.195404052734,54.7190322875977,36.0009002685547],[497.195404052734,57.7058334350586,36.0009002685547],[500.851989746094,60.2658309936523,36.0009002685547],[498.915405273438,62.8258323669434,36.0009002685547],[506.701995849609,62.8258323669434,36.0009002685547],[503.648590087891,60.2658309936523,36.0009002685547],[508.381805419922,57.7058334350586,36.0009002685547],[496.418792724609,60.052433013916,36.0009002685547],[506.515197753906,72.2124328613281,36.0009002685547],[502.808807373047,74.5324325561523,36.0009002685547],[503.781982421875,71.6058349609375,36.0009002685547],[515.358764648438,55.4658317565918,36.0009002685547],[499.375183105469,76.9058380126953,36.0009002685547],[501.168792724609,78.0658340454102,36.0009002685547],[504.568786621094,78.0658340454102,36.0009002685547],[506.32861328125,81.599235534668,36.0009002685547],[502.928588867188,81.599235534668,36.0009002685547],[499.528594970703,81.599235534668,36.0009002685547],[498.20361328125,77.8658294677734,36.0009002685547],[495.195404052734,51.7324333190918,30.0011005401611],[498.981994628906,51.7324333190918,27.0011005401611],[506.555206298828,51.7324333190918,33.0009002685547],[506.555206298828,51.7324333190918,36.0009002685547],[510.342010498047,51.7324333190918,36.0009002685547],[512.515380859375,54.7190322875977,24.0011005401611],[509.361999511719,54.7190322875977,24.0011005401611],[508.381805419922,57.7058334350586,24.0011005401611],[506.701995849609,62.8258323669434,24.0011005401611],[509.188812255859,60.052433013916,24.0011005401611],[493.06201171875,54.7190322875977,24.0011005401611],[503.648590087891,60.2658309936523,24.0011005401611],[500.851989746094,60.2658309936523,24.0011005401611],[498.915405273438,62.8258323669434,24.0011005401611],[502.808807373047,62.8258323669434,24.0011005401611],[491.425201416016,54.5058326721191,24.0011005401611],[506.421813964844,76.9058380126953,24.0011005401611],[502.808807373047,74.5324325561523,24.0011005401611],[504.568786621094,78.0658340454102,24.0011005401611],[506.32861328125,81.599235534668,24.0011005401611],[507.618804931641,77.8658294677734,24.0011005401611],[499.221801757812,72.2124328613281,24.0011005401611],[501.835388183594,71.6058349609375,24.0011005401611],[501.168792724609,78.0658340454102,24.0011005401611],[499.528594970703,81.599235534668,24.0011005401611],[502.048583984375,79.8324356079102,24.0011005401611],[490.253601074219,55.4658317565918,24.0011005401611],[488.928588867188,51.7324333190918,30.0011005401611],[488.928588867188,51.7324333190918,36.0009002685547],[490.253601074219,55.4658317565918,31.5009002685547],[498.20361328125,77.8658294677734,34.5009002685547],[508.381805419922,57.7058334350586,30.0011005401611],[505.585388183594,57.7058334350586,27.0011005401611],[502.788818359375,57.7058334350586,36.0009002685547],[499.992004394531,57.7058334350586,33.0009002685547],[509.851989746094,53.2258338928223,33.0009002685547],[509.361999511719,54.7190322875977,36.0009002685547],[508.871795654297,56.2124328613281,27.0011005401611],[496.695404052734,56.2124328613281,33.0009002685547],[495.695404052734,53.2258338928223,27.0011005401611],[506.32861328125,81.599235534668,30.0011005401611],[507.618804931641,77.8658294677734,25.5011005401611],[515.358764648438,55.4658317565918,34.5009002685547],[501.228607177734,81.599235534668,33.0009002685547],[504.628601074219,81.599235534668,27.0011005401611],[503.781982421875,71.6058349609375,33.0009002685547],[502.808807373047,74.5324325561523,30.0011005401611],[498.915405273438,62.8258323669434,30.0011005401611],[500.861999511719,62.8258323669434,27.0011005401611],[502.808807373047,62.8258323669434,36.0009002685547],[504.755187988281,62.8258323669434,33.0009002685547],[501.835388183594,71.6058349609375,33.0009002685547],[499.888793945312,65.7524337768555,33.0009002685547],[499.888793945312,65.7524337768555,36.0009002685547],[513.128601074219,51.4824333190918,36.0009002685547],[513.075988769531,51.6074333190918,24.0011005401611],[516.648803710938,51.7324333190918,24.0011005401611],[513.128601074219,51.4824333190918,24.0011005401611],[513.495178222656,51.7324333190918,24.0011005401611],[506.966613769531,51.6074333190918,36.0009002685547],[507.163818359375,51.6074333190918,36.0009002685547],[490.337799072266,51.4824333190918,24.0011005401611],[489.391204833984,51.4824333190918,36.0009002685547],[492.06201171875,51.7324333190918,36.0009002685547],[490.337799072266,51.4824333190918,36.0009002685547],[513.233764648438,51.2324333190918,24.0011005401611],[513.233764648438,51.2324333190918,36.0009002685547],[504.773803710938,51.4824333190918,36.0009002685547],[504.773803710938,51.4824333190918,24.0011005401611],[489.266998291016,51.2324333190918,24.0011005401611],[489.266998291016,51.2324333190918,36.0009002685547],[490.253601074219,55.4658317565918,25.5011005401611],[499.528594970703,81.599235534668,30.0011005401611],[498.20361328125,77.8658294677734,31.5009002685547],[515.358764648438,55.4658317565918,28.5011005401611],[515.358764648438,55.4658317565918,25.5011005401611],[495.246795654297,61.0124320983887,36.0009002685547],[490.253601074219,55.4658317565918,34.5009002685547],[490.253601074219,55.4658317565918,36.0009002685547],[494.228607177734,66.6658325195312,24.0011005401611],[499.068786621094,67.5192337036133,24.0011005401611],[498.20361328125,77.8658294677734,25.5011005401611],[498.20361328125,77.8658294677734,24.0011005401611],[506.608795166016,67.5192337036133,36.0009002685547],[509.09521484375,64.7458343505859,36.0009002685547],[507.618804931641,77.8658294677734,34.5009002685547],[507.618804931641,77.8658294677734,36.0009002685547],[510.385406494141,61.0124320983887,24.0011005401611],[515.358764648438,55.4658317565918,24.0011005401611],[489.32861328125,47.7324333190918,31.5009002685547],[492.95361328125,47.7324333190918,33.5634994506836],[489.32861328125,47.7324333190918,34.5009002685547],[489.32861328125,47.7324333190918,28.5011005401611],[489.32861328125,47.7324333190918,25.5011005401611],[492.95361328125,47.7324333190918,26.4385013580322],[492.95361328125,47.7324333190918,30.5635013580322],[492.95361328125,47.7324333190918,32.0634994506836],[492.95361328125,47.7324333190918,31.3135013580322],[492.95361328125,47.7324333190918,35.4384994506836],[489.32861328125,47.7324333190918,36.0009002685547],[492.95361328125,47.7324333190918,34.3134994506836],[492.95361328125,47.7324333190918,34.6884994506836],[492.95361328125,47.7324333190918,27.9385013580322],[492.95361328125,47.7324333190918,28.6885013580322],[492.95361328125,47.7324333190918,29.0635013580322],[489.32861328125,47.7324333190918,24.0011005401611],[492.95361328125,47.7324333190918,24.5635013580322],[492.95361328125,47.7324333190918,25.6885013580322],[492.95361328125,47.7324333190918,25.3135013580322],[492.95361328125,47.7324333190918,24.1885013580322],[492.95361328125,47.7324333190918,24.0011005401611],[513.443786621094,50.7324333190918,24.0011005401611],[492.95361328125,47.7324333190918,35.8134994506836],[492.95361328125,47.7324333190918,36.0009002685547],[513.443786621094,50.7324333190918,36.0009002685547],[506.350402832031,51.4824333190918,36.0009002685547],[506.350402832031,51.4824333190918,24.0011005401611],[492.743804931641,48.2324333190918,24.0011005401611],[492.638793945312,48.4824333190918,24.0011005401611],[492.743804931641,48.2324333190918,36.0009002685547],[492.638793945312,48.4824333190918,36.0009002685547],[490.089599609375,50.9824333190918,36.0009002685547],[490.089599609375,50.9824333190918,24.0011005401611],[510.342010498047,51.7324333190918,30.0011005401611],[499.068786621094,67.5192337036133,36.0009002685547],[494.228607177734,66.6658325195312,36.0009002685547],[499.375183105469,76.9058380126953,24.0011005401611],[506.421813964844,76.9058380126953,36.0009002685547],[506.608795166016,67.5192337036133,24.0011005401611],[505.728607177734,65.7524337768555,24.0011005401611],[509.09521484375,64.7458343505859,24.0011005401611],[506.701995849609,62.8258323669434,30.0011005401611],[505.728607177734,65.7524337768555,27.0011005401611],[501.835388183594,71.6058349609375,27.0011005401611],[499.888793945312,65.7524337768555,27.0011005401611],[494.228607177734,66.6658325195312,30.0011005401611],[495.553588867188,70.3992309570312,28.5011005401611],[492.903594970703,62.9324340820312,28.5011005401611],[495.553588867188,70.3992309570312,31.5009002685547],[492.903594970703,62.9324340820312,31.5009002685547],[511.488800048828,66.6658325195312,24.0011005401611],[511.488800048828,66.6658325195312,30.0011005401611],[512.778564453125,62.9324340820312,28.5011005401611],[515.358764648438,55.4658317565918,31.5009002685547],[507.618804931641,77.8658294677734,31.5009002685547],[510.198791503906,70.3992309570312,28.5011005401611],[511.488800048828,66.6658325195312,36.0009002685547],[512.778564453125,62.9324340820312,31.5009002685547],[510.198791503906,70.3992309570312,31.5009002685547],[502.788818359375,57.7058334350586,24.0011005401611],[497.195404052734,57.7058334350586,30.0011005401611],[492.903594970703,62.9324340820312,34.5009002685547],[492.903594970703,62.9324340820312,36.0009002685547],[495.553588867188,70.3992309570312,24.0011005401611],[496.725189208984,69.4392318725586,24.0011005401611],[495.553588867188,70.3992309570312,25.5011005401611],[495.246795654297,61.0124320983887,24.0011005401611],[492.903594970703,62.9324340820312,25.5011005401611],[492.903594970703,62.9324340820312,24.0011005401611],[495.553588867188,70.3992309570312,36.0009002685547],[496.725189208984,69.4392318725586,36.0009002685547],[495.553588867188,70.3992309570312,34.5009002685547],[510.198791503906,70.3992309570312,36.0009002685547],[509.002014160156,69.4392318725586,36.0009002685547],[510.198791503906,70.3992309570312,34.5009002685547],[512.778564453125,62.9324340820312,25.5011005401611],[512.778564453125,62.9324340820312,24.0011005401611],[510.198791503906,70.3992309570312,24.0011005401611],[509.002014160156,69.4392318725586,24.0011005401611],[510.198791503906,70.3992309570312,25.5011005401611],[510.385406494141,61.0124320983887,36.0009002685547],[512.778564453125,62.9324340820312,34.5009002685547],[512.778564453125,62.9324340820312,36.0009002685547],[496.840393066406,51.2324333190918,36.0009002685547],[498.981994628906,51.7324333190918,36.0009002685547],[498.981994628906,51.7324333190918,33.0009002685547],[506.555206298828,51.7324333190918,24.0011005401611],[506.555206298828,51.7324333190918,27.0011005401611],[503.82861328125,47.7324333190918,30.7509002685547],[507.45361328125,47.7324333190918,32.8134994506836],[503.82861328125,47.7324333190918,33.7509002685547],[503.82861328125,47.7324333190918,29.2511005401611],[503.82861328125,47.7324333190918,26.2511005401611],[507.45361328125,47.7324333190918,27.1885013580322],[493.921813964844,57.2792320251465,36.0009002685547],[491.425201416016,54.5058326721191,36.0009002685547],[497.195404052734,57.7058334350586,24.0011005401611],[496.418792724609,60.052433013916,24.0011005401611],[509.188812255859,60.052433013916,36.0009002685547],[511.675415039062,57.2792320251465,24.0011005401611],[514.161987304688,54.5058326721191,24.0011005401611],[507.45361328125,47.7324333190918,34.3134994506836],[503.82861328125,47.7324333190918,35.2509002685547],[507.45361328125,47.7324333190918,25.6885013580322],[503.82861328125,47.7324333190918,24.7511005401611],[500.20361328125,47.7324333190918,31.6885013580322],[500.20361328125,47.7324333190918,28.3135013580322],[500.20361328125,47.7324333190918,30.1885013580322],[507.45361328125,47.7324333190918,29.8135013580322],[507.45361328125,47.7324333190918,31.3135013580322],[507.45361328125,47.7324333190918,30.5635013580322],[503.82861328125,47.7324333190918,36.0009002685547],[507.45361328125,47.7324333190918,35.4384994506836],[507.45361328125,47.7324333190918,35.0634994506836],[507.45361328125,47.7324333190918,28.6885013580322],[507.45361328125,47.7324333190918,29.4385013580322],[503.82861328125,47.7324333190918,24.0011005401611],[507.45361328125,47.7324333190918,24.5635013580322],[507.45361328125,47.7324333190918,24.9385013580322],[500.20361328125,47.7324333190918,34.6884994506836],[500.20361328125,47.7324333190918,33.1884994506836],[500.20361328125,47.7324333190918,33.9384994506836],[500.20361328125,47.7324333190918,25.3135013580322],[500.20361328125,47.7324333190918,26.8135013580322],[500.20361328125,47.7324333190918,26.0635013580322],[500.20361328125,47.7324333190918,30.9385013580322],[500.20361328125,47.7324333190918,35.0634994506836],[500.20361328125,47.7324333190918,35.4384994506836],[500.20361328125,47.7324333190918,29.0635013580322],[500.20361328125,47.7324333190918,29.4385013580322],[500.20361328125,47.7324333190918,24.9385013580322],[500.20361328125,47.7324333190918,24.5635013580322],[507.45361328125,47.7324333190918,24.1885013580322],[507.45361328125,47.7324333190918,24.0011005401611],[513.86376953125,49.7324333190918,24.0011005401611],[507.45361328125,47.7324333190918,35.8134994506836],[507.45361328125,47.7324333190918,36.0009002685547],[513.86376953125,49.7324333190918,36.0009002685547],[500.20361328125,47.7324333190918,24.1885013580322],[500.20361328125,47.7324333190918,24.0011005401611],[502.988800048828,49.7324333190918,24.0011005401611],[500.20361328125,47.7324333190918,35.8134994506836],[500.20361328125,47.7324333190918,36.0009002685547],[502.988800048828,49.7324333190918,36.0009002685547],[504.755187988281,62.8258323669434,27.0011005401611],[499.205383300781,51.2324333190918,36.0009002685547],[498.786193847656,51.1074333190918,36.0009002685547],[502.358795166016,51.2324333190918,36.0009002685547],[499.205383300781,51.2324333190918,24.0011005401611],[502.358795166016,51.2324333190918,24.0011005401611],[498.786193847656,51.1074333190918,24.0011005401611],[502.568786621094,50.7324333190918,24.0011005401611],[505.931213378906,51.3574333190918,24.0011005401611],[509.503601074219,51.4824333190918,24.0011005401611],[502.568786621094,50.7324333190918,36.0009002685547],[505.931213378906,51.3574333190918,36.0009002685547],[509.503601074219,51.4824333190918,36.0009002685547],[499.048583984375,50.4824333190918,36.0009002685547],[492.428588867188,48.9824333190918,36.0009002685547],[499.048583984375,50.4824333190918,24.0011005401611],[492.428588867188,48.9824333190918,24.0011005401611],[506.088806152344,50.9824333190918,24.0011005401611],[506.036010742188,51.1074333190918,24.0011005401611],[506.088806152344,50.9824333190918,36.0009002685547],[506.036010742188,51.1074333190918,36.0009002685547],[498.891204833984,50.8574333190918,36.0009002685547],[498.943786621094,50.7324333190918,36.0009002685547],[498.891204833984,50.8574333190918,24.0011005401611],[498.943786621094,50.7324333190918,24.0011005401611],[499.573608398438,49.2324333190918,24.0011005401611],[499.783813476562,48.7324333190918,24.0011005401611],[499.573608398438,49.2324333190918,36.0009002685547],[499.783813476562,48.7324333190918,36.0009002685547],[506.403594970703,50.2324333190918,24.0011005401611],[506.298797607422,50.4824333190918,24.0011005401611],[506.403594970703,50.2324333190918,36.0009002685547],[506.298797607422,50.4824333190918,36.0009002685547],[501.228607177734,81.599235534668,27.0011005401611],[502.928588867188,81.599235534668,24.0011005401611],[499.2587890625,49.9824333190918,36.0009002685547],[499.363800048828,49.7324333190918,36.0009002685547],[499.2587890625,49.9824333190918,24.0011005401611],[499.363800048828,49.7324333190918,24.0011005401611],[496.695404052734,56.2124328613281,27.0011005401611],[496.195404052734,54.7190322875977,24.0011005401611],[509.851989746094,53.2258338928223,27.0011005401611],[493.464782714844,51.1074333190918,36.0009002685547],[493.464782714844,51.1074333190918,24.0011005401611],[502.768798828125,51.7324333190918,24.0011005401611],[500.215789794922,51.3574333190918,24.0011005401611],[497.628601074219,51.2324333190918,24.0011005401611],[502.768798828125,51.7324333190918,36.0009002685547],[500.215789794922,51.3574333190918,36.0009002685547],[497.628601074219,51.2324333190918,36.0009002685547],[507.033813476562,48.7324333190918,24.0011005401611],[506.823791503906,49.2324333190918,24.0011005401611],[507.033813476562,48.7324333190918,36.0009002685547],[506.823791503906,49.2324333190918,36.0009002685547],[494.4501953125,51.1074333190918,24.0011005401611],[494.4501953125,51.1074333190918,36.0009002685547],[500.807006835938,51.3574333190918,36.0009002685547],[503.591186523438,51.4824333190918,36.0009002685547],[503.591186523438,51.4824333190918,24.0011005401611],[500.807006835938,51.3574333190918,24.0011005401611],[505.728607177734,65.7524337768555,36.0009002685547],[505.728607177734,65.7524337768555,33.0009002685547],[499.221801757812,72.2124328613281,36.0009002685547],[501.835388183594,71.6058349609375,36.0009002685547],[506.515197753906,72.2124328613281,24.0011005401611],[503.781982421875,71.6058349609375,24.0011005401611],[503.781982421875,71.6058349609375,27.0011005401611],[499.888793945312,65.7524337768555,24.0011005401611],[495.695404052734,53.2258338928223,33.0009002685547],[516.648803710938,51.7324333190918,30.0011005401611],[498.20361328125,77.8658294677734,28.5011005401611],[505.585388183594,57.7058334350586,33.0009002685547],[508.871795654297,56.2124328613281,33.0009002685547],[499.992004394531,57.7058334350586,27.0011005401611],[504.628601074219,81.599235534668,33.0009002685547],[500.861999511719,62.8258323669434,33.0009002685547],[496.878601074219,74.1324310302734,27.0011005401611],[496.878601074219,74.1324310302734,33.0009002685547],[491.57861328125,59.199031829834,27.0011005401611],[490.253601074219,55.4658317565918,28.5011005401611],[491.57861328125,59.199031829834,33.0009002685547],[514.068786621094,59.199031829834,27.0011005401611],[514.068786621094,59.199031829834,33.0009002685547],[508.908813476562,74.1324310302734,27.0011005401611],[507.618804931641,77.8658294677734,28.5011005401611],[508.908813476562,74.1324310302734,33.0009002685547],[491.271789550781,50.9824333190918,36.0009002685547],[490.877807617188,50.9824333190918,36.0009002685547],[491.271789550781,50.9824333190918,24.0011005401611],[490.877807617188,50.9824333190918,24.0011005401611],[495.213806152344,50.9824333190918,36.0009002685547],[493.636993408203,50.9824333190918,36.0009002685547],[495.213806152344,50.9824333190918,24.0011005401611],[493.636993408203,50.9824333190918,24.0011005401611],[503.985412597656,51.4824333190918,36.0009002685547],[503.985412597656,51.4824333190918,24.0011005401611],[511.675415039062,57.2792320251465,36.0009002685547],[493.921813964844,57.2792320251465,24.0011005401611],[502.768798828125,51.7324333190918,30.0011005401611],[506.555206298828,51.7324333190918,30.0011005401611],[498.981994628906,51.7324333190918,30.0011005401611],[492.848815917969,50.9824333190918,24.0011005401611],[492.848815917969,50.9824333190918,36.0009002685547],[500.861999511719,68.6792297363281,36.0009002685547],[500.861999511719,68.6792297363281,24.0011005401611],[496.878601074219,74.1324310302734,24.0011005401611],[496.878601074219,74.1324310302734,36.0009002685547],[504.755187988281,68.6792297363281,24.0011005401611],[504.755187988281,68.6792297363281,36.0009002685547],[508.908813476562,74.1324310302734,36.0009002685547],[508.908813476562,74.1324310302734,24.0011005401611],[505.728607177734,65.7524337768555,30.0011005401611],[504.755187988281,68.6792297363281,30.0011005401611],[503.781982421875,71.6058349609375,30.0011005401611],[500.861999511719,68.6792297363281,30.0011005401611],[499.888793945312,65.7524337768555,30.0011005401611],[501.835388183594,71.6058349609375,30.0011005401611],[491.57861328125,59.199031829834,24.0011005401611],[491.57861328125,59.199031829834,36.0009002685547],[514.068786621094,59.199031829834,36.0009002685547],[514.068786621094,59.199031829834,24.0011005401611],[511.07861328125,47.7324333190918,34.8759002685547],[511.07861328125,47.7324333190918,31.8759002685547],[514.70361328125,47.7324333190918,33.9384994506836],[511.07861328125,47.7324333190918,25.1261005401611],[514.70361328125,47.7324333190918,26.0635013580322],[511.07861328125,47.7324333190918,28.1261005401611],[502.788818359375,57.7058334350586,30.0011005401611],[502.048583984375,79.8324356079102,36.0009002685547],[514.70361328125,47.7324333190918,30.9385013580322],[511.07861328125,47.7324333190918,30.3759002685547],[514.70361328125,47.7324333190918,29.0635013580322],[511.07861328125,47.7324333190918,29.6261005401611],[496.57861328125,47.7324333190918,31.1259002685547],[496.57861328125,47.7324333190918,32.6259002685547],[496.57861328125,47.7324333190918,34.1259002685547],[496.57861328125,47.7324333190918,28.8761005401611],[496.57861328125,47.7324333190918,27.3761005401611],[496.57861328125,47.7324333190918,25.8761005401611],[496.57861328125,47.7324333190918,29.6261005401611],[514.70361328125,47.7324333190918,35.4384994506836],[511.07861328125,47.7324333190918,35.6259002685547],[514.70361328125,47.7324333190918,24.5635013580322],[511.07861328125,47.7324333190918,24.3761005401611],[496.57861328125,47.7324333190918,34.8759002685547],[496.57861328125,47.7324333190918,25.1261005401611],[496.57861328125,47.7324333190918,35.6259002685547],[496.57861328125,47.7324333190918,24.3761005401611],[511.07861328125,47.7324333190918,36.0009002685547],[511.07861328125,47.7324333190918,24.0011005401611],[514.70361328125,47.7324333190918,30.1885013580322],[514.70361328125,47.7324333190918,35.8134994506836],[514.70361328125,47.7324333190918,29.8135013580322],[514.70361328125,47.7324333190918,24.1885013580322],[496.57861328125,47.7324333190918,36.0009002685547],[496.57861328125,47.7324333190918,24.0011005401611],[510.238800048828,49.7324333190918,24.0011005401611],[510.238800048828,49.7324333190918,36.0009002685547],[514.70361328125,47.7324333190918,24.0011005401611],[514.70361328125,47.7324333190918,36.0009002685547],[496.158813476562,48.7324333190918,36.0009002685547],[496.158813476562,48.7324333190918,24.0011005401611],[502.808807373047,62.8258323669434,30.0011005401611],[509.608795166016,51.2324333190918,24.0011005401611],[509.608795166016,51.2324333190918,36.0009002685547],[491.641204833984,50.8574333190918,24.0011005401611],[495.423797607422,50.4824333190918,36.0009002685547],[495.423797607422,50.4824333190918,24.0011005401611],[491.641204833984,50.8574333190918,36.0009002685547],[495.528594970703,50.2324333190918,24.0011005401611],[492.0087890625,49.9824333190918,24.0011005401611],[509.818786621094,50.7324333190918,24.0011005401611],[495.948608398438,49.2324333190918,36.0009002685547],[495.528594970703,50.2324333190918,36.0009002685547],[495.948608398438,49.2324333190918,24.0011005401611],[509.818786621094,50.7324333190918,36.0009002685547],[492.0087890625,49.9824333190918,36.0009002685547],[491.956207275391,50.1074333190918,24.0011005401611],[491.956207275391,50.1074333190918,36.0009002685547],[502.928588867188,81.599235534668,30.0011005401611],[491.851013183594,50.3574333190918,36.0009002685547],[491.851013183594,50.3574333190918,24.0011005401611],[496.195404052734,54.7190322875977,30.0011005401611],[509.361999511719,54.7190322875977,30.0011005401611],[488.632598876953,51.7256317138672,30.0011005401611],[488.632598876953,51.7256317138672,29.5091018676758],[488.632598876953,51.7188339233398,24.0011005401611],[488.632598876953,51.7256317138672,27.4929008483887],[488.632598876953,51.7324333190918,30.0011005401611],[488.632598876953,51.7324333190918,29.0175018310547],[488.632598876953,51.7324333190918,24.9847011566162],[488.632598876953,51.7324333190918,24.0011005401611],[488.632598876953,51.7188339233398,30.0011005401611],[488.632598876953,51.7176322937012,24.0011005401611],[488.632598876953,51.7182312011719,30.0011005401611],[488.632598876953,51.7176322937012,30.0011005401611],[488.632598876953,51.715030670166,24.0011005401611],[488.632598876953,51.7162322998047,30.0011005401611],[488.632598876953,50.761833190918,24.0011005401611],[488.632598876953,50.7578315734863,24.0011005401611],[488.632598876953,50.7598342895508,30.0011005401611],[488.632598876953,50.7522315979004,24.0011005401611],[488.632598876953,49.7838325500488,24.0011005401611],[488.632598876953,50.2680320739746,30.0011005401611],[488.632598876953,51.7046318054199,24.0011005401611],[488.632598876953,51.709831237793,30.0011005401611],[488.632598876953,50.9120330810547,24.0011005401611],[488.632598876953,50.8882331848145,24.0011005401611],[488.632598876953,50.9002304077148,30.0011005401611],[488.632598876953,47.7324333190918,24.0370998382568],[488.632598876953,48.5612335205078,30.0011005401611],[488.632598876953,47.7324333190918,24.0011005401611],[488.632598876953,47.7324333190918,24.1091003417969],[488.632598876953,48.5612335205078,30.0189018249512],[488.632598876953,47.7324333190918,25.3211002349854],[488.632598876953,48.5612335205078,30.0551013946533],[488.632598876953,47.7324333190918,25.4651012420654],[488.632598876953,48.5612335205078,30.6609001159668],[488.632598876953,47.7324333190918,25.5371017456055],[488.632598876953,48.5612335205078,30.7329006195068],[488.632598876953,47.7324333190918,25.6091003417969],[488.632598876953,48.5612335205078,30.7689018249512],[488.632598876953,47.7324333190918,25.8971004486084],[488.632598876953,48.5612335205078,30.8051013946533],[488.632598876953,47.7324333190918,28.321102142334],[488.632598876953,48.5612335205078,30.9491004943848],[488.632598876953,47.7324333190918,28.4651012420654],[488.632598876953,48.5612335205078,32.1609001159668],[488.632598876953,47.7324333190918,28.5371017456055],[488.632598876953,48.5612335205078,32.2329025268555],[488.632598876953,47.7324333190918,28.6811008453369],[488.632598876953,48.5612335205078,32.2689018249512],[488.632598876953,47.7324333190918,31.1049003601074],[488.632598876953,48.5612335205078,32.3411026000977],[488.632598876953,47.7324333190918,31.3929004669189],[488.632598876953,49.3900299072266,36.0009002685547],[488.632598876953,47.7324333190918,31.536901473999],[488.632598876953,47.7324333190918,31.6809005737305],[488.632598876953,47.7324333190918,34.1049003601074],[488.632598876953,47.7324333190918,34.3929023742676],[488.632598876953,47.7324333190918,34.464900970459],[488.632598876953,47.7324333190918,34.5369033813477],[488.632598876953,47.7324333190918,34.6809005737305],[488.632598876953,47.7324333190918,35.8929023742676],[488.632598876953,47.7324333190918,35.964900970459],[488.632598876953,47.7324333190918,36.0009002685547],[488.632598876953,50.8816299438477,24.0011005401611],[488.632598876953,50.8850326538086,30.0011005401611],[488.632598876953,49.7480316162109,24.0011005401611],[488.632598876953,49.7426300048828,24.0011005401611],[488.632598876953,49.745231628418,30.0011005401611],[488.632598876953,49.7592315673828,24.0011005401611],[488.632598876953,49.7536315917969,30.0011005401611],[488.632598876953,49.3900299072266,24.0011005401611],[488.632598876953,49.5664329528809,30.0011005401611],[488.632598876953,50.8786315917969,24.0011005401611],[488.632598876953,50.7764320373535,24.0011005401611],[488.632598876953,50.8274307250977,30.0011005401611],[488.632598876953,50.7550315856934,30.0011005401611],[488.632598876953,50.7692337036133,30.0011005401611],[488.632598876953,50.9284324645996,24.0011005401611],[488.632598876953,50.9202308654785,30.0011005401611],[488.632598876953,51.1788330078125,24.0011005401611],[488.632598876953,51.139232635498,24.0011005401611],[488.632598876953,51.1590309143066,30.0011005401611],[488.632598876953,51.2324333190918,24.0011005401611],[488.632598876953,51.2056312561035,30.0011005401611],[488.632598876953,51.4340324401855,24.0011005401611],[488.632598876953,51.3946304321289,24.0011005401611],[488.632598876953,51.4142303466797,30.0011005401611],[488.632598876953,51.4498329162598,24.0011005401611],[488.632598876953,51.5772323608398,30.0011005401611],[488.632598876953,51.4418334960938,30.0011005401611],[488.632598876953,51.3136329650879,30.0011005401611],[488.632598876953,49.7714309692383,30.0011005401611],[488.632598876953,51.0338325500488,30.0011005401611],[488.632598876953,50.8816299438477,30.0011005401611],[488.632598876953,50.8800315856934,30.0011005401611],[488.632598876953,51.7188339233398,36.0009002685547],[488.632598876953,51.7176322937012,36.0009002685547],[488.632598876953,49.3900299072266,30.0011005401611],[488.632598876953,50.7522315979004,30.0011005401611],[488.632598876953,50.7522315979004,36.0009002685547],[488.632598876953,49.7426300048828,30.0011005401611],[488.632598876953,49.7426300048828,36.0009002685547],[488.632598876953,49.7480316162109,30.0011005401611],[488.632598876953,49.7480316162109,36.0009002685547],[488.632598876953,51.715030670166,30.0011005401611],[488.632598876953,51.715030670166,36.0009002685547],[488.632598876953,50.7578315734863,30.0011005401611],[488.632598876953,50.7578315734863,36.0009002685547],[488.632598876953,50.761833190918,30.0011005401611],[488.632598876953,50.761833190918,36.0009002685547],[488.632598876953,50.8882331848145,30.0011005401611],[488.632598876953,50.8882331848145,36.0009002685547],[488.632598876953,49.7592315673828,30.0011005401611],[488.632598876953,49.7592315673828,36.0009002685547],[488.632598876953,51.1788330078125,30.0011005401611],[488.632598876953,51.1788330078125,36.0009002685547],[488.632598876953,50.9120330810547,30.0011005401611],[488.632598876953,50.9120330810547,36.0009002685547],[488.632598876953,51.4498329162598,30.0011005401611],[488.632598876953,51.4498329162598,36.0009002685547],[488.632598876953,51.7046318054199,30.0011005401611],[488.632598876953,51.7046318054199,36.0009002685547],[488.632598876953,51.2324333190918,30.0011005401611],[488.632598876953,51.2324333190918,36.0009002685547],[488.632598876953,51.3946304321289,30.0011005401611],[488.632598876953,51.3946304321289,36.0009002685547],[488.632598876953,51.4340324401855,30.0011005401611],[488.632598876953,51.4340324401855,36.0009002685547],[488.632598876953,49.7838325500488,30.0011005401611],[488.632598876953,49.7838325500488,36.0009002685547],[488.632598876953,50.7764320373535,30.0011005401611],[488.632598876953,50.7764320373535,36.0009002685547],[488.632598876953,51.139232635498,30.0011005401611],[488.632598876953,51.139232635498,36.0009002685547],[488.632598876953,50.9284324645996,30.0011005401611],[488.632598876953,50.9284324645996,36.0009002685547],[488.632598876953,50.8816299438477,36.0009002685547],[488.632598876953,50.8786315917969,30.0011005401611],[488.632598876953,50.8786315917969,36.0009002685547],[488.632598876953,51.7324333190918,35.0173034667969],[488.632598876953,51.7324333190918,36.0009002685547],[488.632598876953,51.7324333190918,30.9847011566162],[517.188415527344,51.7140884399414,24.0011005401611],[517.188415527344,51.7140884399414,36.0009002685547],[517.188415527344,50.4475173950195,24.0011005401611],[517.188415527344,51.7324333190918,35.3734130859375],[517.188415527344,51.7324333190918,36.0009002685547],[517.188415527344,51.7324333190918,34.1185760498047],[517.188415527344,51.7324333190918,31.88330078125],[517.188415527344,51.7324333190918,30.0011005401611],[517.188415527344,51.7324333190918,28.1187744140625],[517.188415527344,51.7324333190918,25.8834266662598],[517.188415527344,51.7324333190918,24.6285915374756],[517.188415527344,51.7324333190918,24.0011005401611],[517.188415527344,47.7324333190918,24.0600452423096],[517.188415527344,47.7324333190918,24.0011005401611],[517.188415527344,50.4475173950195,36.0009002685547],[517.188415527344,47.7324333190918,24.1779975891113],[517.188415527344,47.7324333190918,24.6498031616211],[517.188415527344,47.7324333190918,28.7625770568848],[517.188415527344,47.7324333190918,29.7061901092529],[517.188415527344,47.7324333190918,29.9420928955078],[517.188415527344,47.7324333190918,30.0600452423096],[517.188415527344,47.7324333190918,30.2959480285645],[517.188415527344,47.7324333190918,31.2395629882812],[517.188415527344,47.7324333190918,35.3521995544434],[517.188415527344,47.7324333190918,35.8240051269531],[517.188415527344,47.7324333190918,35.9419555664062],[517.188415527344,47.7324333190918,36.0009002685547] - ]; - $facets = [ - [0,1,2],[3,4,5],[6,7,8],[9,10,11],[12,2,1],[12,1,13],[14,15,16],[17,18,19],[20,21,22],[17,19,23],[24,25,26],[27,13,1],[28,25,29],[30,31,32],[28,33,34],[35,36,7],[37,38,39],[40,10,41],[42,43,44],[45,5,4],[46,47,48],[46,48,49],[45,4,50],[51,52,53],[51,54,55],[56,52,57],[58,59,60],[61,50,4],[62,63,64],[65,34,33],[66,67,42],[68,17,69],[70,71,22],[66,42,72],[73,16,15],[35,7,74],[75,76,54],[77,27,1],[78,32,31],[75,54,79],[80,26,25],[81,80,25],[82,83,48],[84,20,85],[81,25,86],[87,88,19],[0,89,1],[90,91,92],[90,10,93],[38,94,39],[94,95,39],[3,7,96],[97,15,98],[97,99,15],[92,91,100],[89,101,1],[102,39,95],[103,11,10],[104,96,7],[105,15,99],[106,61,4],[107,108,33],[76,55,54],[109,91,110],[111,23,19],[112,63,113],[114,115,48],[116,59,117],[118,20,119],[120,31,121],[122,44,43],[110,91,123],[124,125,126],[127,128,129],[127,130,124],[131,124,132],[126,133,134],[135,136,126],[137,138,127],[139,127,138],[128,140,141],[142,128,143],[144,140,145],[100,91,146],[147,148,134],[101,149,1],[102,150,39],[103,10,151],[145,140,152],[152,140,153],[148,154,134],[154,155,134],[156,15,105],[157,104,7],[36,8,7],[158,37,39],[159,19,88],[160,19,159],[161,59,58],[161,117,59],[162,31,30],[162,121,31],[163,43,164],[163,165,43],[166,167,43],[167,164,43],[168,57,52],[82,48,169],[114,170,171],[108,65,33],[64,63,112],[114,172,170],[160,173,170],[171,170,173],[172,174,170],[160,170,174],[175,176,177],[178,77,1],[179,31,120],[175,180,176],[181,182,176],[177,176,182],[180,183,176],[181,176,183],[184,42,67],[185,69,17],[160,111,19],[186,187,160],[188,189,114],[190,188,114],[114,48,191],[192,114,193],[194,160,195],[196,160,194],[197,198,181],[199,197,181],[122,43,165],[200,201,175],[202,175,203],[204,175,202],[205,119,20],[206,181,207],[208,209,15],[210,15,209],[211,10,9],[212,10,211],[213,214,215],[216,217,218],[219,14,17],[113,63,220],[221,222,48],[191,48,222],[22,223,20],[205,20,223],[224,40,42],[123,91,225],[214,226,215],[227,215,226],[218,217,228],[229,228,217],[215,230,213],[125,135,126],[217,216,231],[129,128,142],[216,213,232],[130,132,124],[213,216,233],[234,213,235],[236,227,237],[238,237,227],[239,240,216],[233,216,240],[241,242,229],[243,229,242],[215,227,244],[245,215,246],[217,247,229],[248,249,217],[232,213,250],[230,250,213],[133,147,134],[244,227,251],[236,252,227],[251,227,252],[231,216,253],[254,253,216],[141,140,144],[247,255,229],[241,229,256],[255,256,229],[257,241,258],[259,146,91],[260,261,236],[262,1,149],[263,264,241],[265,241,264],[266,236,267],[268,267,236],[49,48,83],[166,43,269],[270,271,272],[273,274,275],[276,274,277],[278,151,10],[279,280,272],[281,39,150],[272,282,279],[155,283,134],[274,276,284],[153,140,285],[286,276,287],[265,276,286],[288,289,279],[268,288,279],[290,291,272],[271,290,272],[292,274,293],[275,274,292],[294,265,295],[276,265,294],[296,297,268],[279,296,268],[241,265,298],[298,265,299],[236,300,268],[300,301,268],[107,33,78],[302,303,59],[304,305,279],[282,304,279],[306,276,307],[284,276,306],[185,17,73],[308,309,221],[158,39,70],[310,41,10],[15,311,208],[7,6,312],[313,314,6],[315,6,314],[316,208,317],[318,317,208],[258,241,319],[319,241,320],[261,321,236],[321,322,236],[6,315,323],[208,324,318],[270,325,318],[326,318,325],[327,328,315],[273,315,328],[118,329,20],[330,20,329],[331,332,25],[86,25,332],[333,334,52],[335,52,334],[115,336,48],[169,48,336],[62,106,4],[35,15,210],[35,337,15],[158,10,212],[158,310,10],[338,178,1],[339,59,116],[107,302,59],[66,22,340],[66,341,22],[185,221,342],[185,308,221],[75,31,179],[75,343,31],[166,20,330],[166,85,20],[81,52,335],[81,168,52],[82,19,344],[82,87,19],[108,339,345],[346,108,345],[64,347,348],[349,347,64],[178,109,350],[351,178,350],[179,352,353],[354,352,179],[355,208,356],[356,208,311],[357,358,6],[358,312,6],[68,22,21],[68,340,22],[221,48,47],[184,342,221],[359,270,360],[318,360,270],[361,362,273],[315,273,362],[272,102,270],[363,270,102],[274,273,103],[364,103,273],[21,19,18],[21,20,84],[184,46,42],[43,42,46],[12,22,71],[365,22,12],[14,98,15],[14,220,63],[40,93,10],[40,225,91],[45,221,309],[366,221,45],[313,367,212],[212,367,368],[36,369,367],[313,36,367],[316,37,367],[37,368,367],[210,367,369],[316,367,210],[362,370,315],[370,323,315],[360,318,371],[371,318,324],[372,331,159],[159,195,160],[373,115,56],[115,114,189],[52,56,161],[374,161,56],[25,28,331],[375,331,28],[376,333,163],[163,203,175],[377,118,24],[118,181,198],[25,24,162],[378,162,24],[52,51,333],[379,333,51],[167,380,381],[376,167,381],[377,381,330],[330,381,380],[335,381,382],[376,381,335],[373,383,169],[169,383,384],[168,385,383],[373,168,383],[372,87,383],[87,384,383],[377,80,381],[80,382,381],[86,383,385],[372,383,86],[106,348,347],[386,106,347],[375,65,346],[108,346,65],[64,112,349],[387,349,112],[171,190,114],[346,345,171],[374,190,345],[171,345,190],[349,172,347],[172,114,192],[386,347,192],[172,192,347],[173,160,196],[171,173,346],[375,346,196],[173,196,346],[172,349,174],[174,186,160],[387,186,349],[174,349,186],[64,348,62],[106,62,348],[108,107,339],[59,339,107],[374,345,116],[339,116,345],[76,353,352],[379,76,352],[388,77,351],[178,351,77],[179,120,354],[378,354,120],[177,200,175],[351,350,177],[389,200,350],[177,350,200],[354,180,352],[180,175,204],[379,352,204],[180,204,352],[182,181,206],[177,182,351],[388,351,206],[182,206,351],[180,354,183],[183,199,181],[378,199,354],[183,354,199],[91,109,338],[178,338,109],[76,75,353],[179,353,75],[389,350,110],[109,110,350],[390,391,392],[393,394,395],[224,122,389],[122,175,201],[365,388,205],[205,207,181],[66,340,396],[68,396,340],[184,396,342],[185,342,396],[66,396,67],[184,67,396],[68,69,396],[185,396,69],[219,111,387],[111,160,187],[366,386,191],[191,193,114],[150,272,280],[102,272,150],[151,277,274],[103,151,274],[161,374,117],[116,117,374],[366,61,386],[106,386,61],[111,187,387],[186,387,187],[56,188,374],[190,374,188],[191,386,193],[192,193,386],[331,375,194],[196,194,375],[28,34,375],[65,375,34],[219,387,113],[112,113,387],[224,389,123],[110,123,389],[51,55,379],[76,379,55],[24,197,378],[199,378,197],[122,201,389],[200,389,201],[333,379,202],[204,202,379],[205,388,207],[206,207,388],[365,27,388],[77,388,27],[162,378,121],[120,121,378],[162,30,25],[30,29,25],[51,53,54],[303,60,59],[28,29,33],[29,397,33],[161,58,52],[53,52,58],[21,84,19],[84,344,19],[46,49,43],[49,269,43],[208,316,209],[210,209,316],[327,313,211],[212,211,313],[36,35,369],[210,369,35],[37,158,368],[212,368,158],[6,8,313],[36,313,8],[326,38,316],[37,316,38],[392,391,398],[399,398,391],[394,400,395],[401,395,400],[390,214,391],[214,213,234],[393,395,218],[218,239,216],[402,230,403],[230,215,245],[125,124,131],[404,125,403],[405,406,231],[231,248,217],[129,137,127],[407,406,129],[130,127,139],[402,130,408],[194,195,331],[159,331,195],[115,189,56],[188,56,189],[14,219,220],[113,220,219],[45,50,366],[61,366,50],[221,366,222],[191,222,366],[17,23,219],[111,219,23],[118,198,24],[197,24,198],[202,203,333],[163,333,203],[40,224,225],[123,225,224],[12,13,365],[27,365,13],[22,365,223],[205,223,365],[42,44,224],[122,224,44],[399,391,234],[214,234,391],[401,239,395],[218,395,239],[214,390,226],[226,238,227],[218,228,393],[228,229,243],[401,399,233],[233,235,213],[392,409,390],[410,390,409],[394,393,411],[412,411,393],[402,403,131],[125,131,403],[405,137,406],[129,406,137],[405,408,139],[130,139,408],[230,245,403],[404,403,245],[231,406,248],[407,248,406],[232,254,216],[402,408,232],[413,404,244],[244,246,215],[414,247,407],[247,217,249],[133,126,136],[415,133,413],[141,143,128],[416,414,141],[410,238,390],[226,390,238],[412,393,243],[228,243,393],[233,399,235],[234,235,399],[237,260,236],[238,410,237],[417,260,410],[237,410,260],[239,401,240],[233,240,401],[242,241,257],[243,242,412],[418,412,257],[242,257,412],[401,419,399],[398,399,419],[417,410,420],[409,420,410],[400,421,401],[419,401,421],[418,422,412],[411,412,422],[413,135,404],[125,404,135],[414,407,142],[129,142,407],[130,402,132],[131,132,402],[133,136,413],[135,413,136],[423,147,415],[133,415,147],[137,405,138],[139,138,405],[141,414,143],[142,143,414],[424,416,144],[141,144,416],[405,254,408],[232,408,254],[244,404,246],[245,246,404],[247,249,407],[248,407,249],[232,250,402],[230,402,250],[415,413,251],[244,251,413],[252,236,266],[251,252,415],[423,415,266],[252,266,415],[231,253,405],[254,405,253],[416,255,414],[247,414,255],[256,263,241],[255,416,256],[424,263,416],[256,416,263],[257,258,418],[425,418,258],[260,417,261],[426,261,417],[422,418,427],[427,259,91],[420,428,417],[428,1,262],[147,423,148],[429,148,423],[263,424,264],[264,295,265],[266,267,423],[267,268,297],[144,145,424],[430,424,145],[49,431,269],[166,269,431],[82,431,83],[49,83,431],[84,85,431],[166,431,85],[82,344,431],[84,431,344],[432,278,90],[10,90,278],[433,0,281],[39,281,0],[362,361,434],[435,271,359],[270,359,271],[436,361,275],[273,275,361],[360,437,359],[277,287,276],[151,278,277],[280,279,289],[150,280,281],[436,438,439],[439,285,140],[90,92,432],[440,432,92],[282,272,291],[441,282,442],[284,293,274],[443,438,284],[278,432,286],[286,299,265],[281,288,433],[288,268,301],[0,433,89],[444,89,433],[435,445,442],[445,134,283],[439,446,436],[361,436,446],[442,290,435],[271,435,290],[438,436,292],[275,292,436],[445,435,447],[359,447,435],[286,287,278],[277,278,287],[288,281,289],[280,289,281],[145,152,430],[443,430,152],[148,429,154],[441,154,429],[424,430,294],[294,307,276],[423,296,429],[296,279,305],[425,440,100],[92,100,440],[290,442,291],[282,291,442],[292,293,438],[284,438,293],[298,320,241],[432,440,298],[300,236,322],[433,300,444],[426,101,444],[89,444,101],[107,448,302],[302,79,54],[78,31,343],[107,78,448],[75,79,448],[302,448,79],[78,343,448],[75,448,343],[427,418,259],[425,259,418],[428,262,417],[426,417,262],[437,449,359],[447,359,449],[434,361,450],[446,450,361],[32,33,397],[78,33,32],[53,303,54],[302,54,303],[152,153,443],[438,443,153],[429,304,441],[282,441,304],[430,443,306],[284,306,443],[154,441,155],[442,155,441],[298,299,432],[286,432,299],[300,433,301],[288,301,433],[185,451,308],[308,74,7],[73,15,337],[185,73,451],[35,74,451],[308,451,74],[73,337,451],[35,451,337],[158,452,310],[310,72,42],[70,22,341],[158,70,452],[66,72,452],[310,452,72],[70,341,452],[66,452,341],[313,327,314],[315,314,327],[316,317,326],[318,326,317],[15,156,311],[356,311,156],[7,312,157],[358,157,312],[211,9,327],[364,327,9],[38,326,94],[363,94,326],[294,295,424],[264,424,295],[296,423,297],[267,297,423],[262,149,426],[101,426,149],[258,319,425],[440,425,319],[261,426,321],[444,321,426],[259,425,146],[100,146,425],[306,307,430],[294,430,307],[304,429,305],[296,305,429],[319,320,440],[298,440,320],[321,444,322],[300,322,444],[445,283,442],[155,442,283],[439,438,285],[153,285,438],[17,68,18],[21,18,68],[46,184,47],[221,47,184],[102,95,363],[94,363,95],[9,11,364],[103,364,11],[6,323,357],[370,357,323],[371,324,355],[208,355,324],[270,363,325],[326,325,363],[327,364,328],[273,328,364],[0,2,39],[12,39,2],[90,93,91],[40,91,93],[14,16,17],[73,17,16],[45,309,7],[308,7,309],[12,71,39],[70,39,71],[40,41,42],[310,42,41],[97,98,63],[14,63,98],[3,5,7],[45,7,5],[118,377,329],[330,329,377],[331,372,332],[86,332,372],[333,376,334],[335,334,376],[115,373,336],[169,336,373],[167,166,380],[330,380,166],[80,81,382],[335,382,81],[86,385,81],[168,81,385],[169,384,82],[87,82,384],[159,88,372],[87,372,88],[163,164,376],[167,376,164],[24,26,377],[80,377,26],[56,57,373],[168,373,57],[32,397,30],[29,30,397],[58,60,53],[303,53,60],[205,181,119],[118,119,181],[163,175,165],[122,165,175],[453,454,455],[454,456,455],[457,455,456],[458,455,457],[459,455,458],[460,455,459],[461,462,463],[464,465,466],[467,468,469],[470,471,472],[465,473,474],[475,476,477],[478,479,480],[481,482,478],[483,484,481],[485,486,483],[487,488,485],[489,490,487],[491,492,489],[493,494,491],[495,496,493],[497,498,495],[499,500,497],[501,502,499],[503,504,501],[505,504,503],[506,504,505],[507,504,506],[508,504,507],[509,504,508],[510,504,509],[511,504,510],[512,504,511],[513,504,512],[514,504,513],[476,515,516],[517,518,519],[520,517,521],[518,522,523],[522,480,479],[524,525,526],[468,470,527],[525,467,528],[529,475,530],[531,532,533],[534,531,535],[536,537,538],[473,539,540],[539,536,541],[537,534,542],[471,520,543],[532,529,544],[545,524,546],[453,461,547],[463,464,548],[523,549,504],[527,550,551],[519,552,553],[521,554,555],[466,556,557],[469,558,559],[528,560,561],[477,562,563],[543,564,565],[535,566,567],[530,568,569],[540,570,571],[474,572,573],[542,574,575],[538,576,577],[541,578,579],[472,580,581],[526,582,583],[533,584,585],[544,586,587],[516,545,588],[588,589,590],[455,460,4],[591,592,63],[462,455,4],[592,547,63],[547,548,63],[465,462,4],[548,557,63],[127,124,501],[127,501,499],[505,503,124],[124,126,507],[124,507,506],[509,508,126],[126,134,512],[126,512,511],[510,509,126],[128,127,493],[128,493,491],[497,495,127],[489,487,128],[140,128,483],[140,483,481],[487,485,128],[478,480,140],[480,522,140],[514,513,134],[504,514,134],[551,581,437],[471,470,434],[445,447,555],[445,555,553],[134,445,553],[134,553,504],[446,439,518],[446,518,517],[439,140,522],[439,522,518],[515,476,358],[563,588,356],[557,573,63],[473,465,4],[437,360,559],[437,559,551],[360,371,561],[360,561,559],[362,434,470],[362,470,468],[370,362,468],[370,468,467],[499,497,127],[506,505,124],[495,493,127],[513,512,134],[481,478,140],[447,449,565],[447,565,555],[450,446,517],[450,517,520],[356,156,569],[356,569,563],[157,358,476],[157,476,475],[357,370,467],[357,467,525],[371,355,583],[371,583,561],[460,459,4],[63,62,593],[63,593,591],[62,4,459],[62,459,458],[532,531,104],[531,534,104],[567,585,105],[575,567,105],[4,3,539],[4,539,473],[536,539,3],[97,63,573],[97,573,571],[571,579,97],[99,97,579],[99,579,577],[105,99,577],[105,577,575],[96,104,534],[96,534,537],[3,96,537],[3,537,536],[503,501,124],[508,507,126],[491,489,128],[511,510,126],[485,483,128],[434,450,520],[434,520,471],[449,437,581],[449,581,565],[156,105,585],[156,585,587],[587,569,156],[104,157,529],[104,529,532],[475,529,157],[590,583,355],[355,356,588],[355,588,590],[358,357,524],[358,524,515],[525,524,357],[458,457,62],[457,593,62],[479,478,482],[479,504,549],[479,482,504],[482,481,484],[472,551,550],[581,551,472],[482,484,504],[484,483,486],[523,553,552],[504,553,523],[540,573,572],[571,573,540],[544,585,584],[587,585,544],[542,577,576],[575,577,542],[526,590,589],[583,590,526],[535,575,574],[567,575,535],[533,567,566],[585,567,533],[538,579,578],[577,579,538],[543,581,580],[565,581,543],[477,569,568],[563,569,477],[530,587,586],[569,587,530],[541,571,570],[579,571,541],[528,583,582],[561,583,528],[591,453,592],[547,592,453],[521,565,564],[555,565,521],[474,557,556],[573,557,474],[516,563,562],[588,563,516],[519,555,554],[553,555,519],[527,559,558],[551,559,527],[469,561,560],[559,561,469],[462,461,455],[453,455,461],[461,463,547],[548,547,463],[465,464,462],[463,462,464],[464,466,548],[557,548,466],[469,560,467],[528,467,560],[472,550,470],[527,470,550],[474,556,465],[466,465,556],[477,568,475],[530,475,568],[516,562,476],[477,476,562],[519,554,517],[521,517,554],[521,564,520],[543,520,564],[523,552,518],[519,518,552],[479,549,522],[523,522,549],[526,589,524],[589,546,524],[527,558,468],[469,468,558],[528,582,525],[526,525,582],[530,586,529],[544,529,586],[533,566,531],[535,531,566],[535,574,534],[542,534,574],[538,578,536],[541,536,578],[540,572,473],[474,473,572],[541,570,539],[540,539,570],[542,576,537],[538,537,576],[543,580,471],[472,471,580],[544,584,532],[533,532,584],[524,545,515],[516,515,545],[545,546,588],[589,588,546],[453,591,454],[593,454,591],[484,486,504],[486,485,488],[486,488,504],[488,487,490],[488,490,504],[490,489,492],[490,492,504],[492,491,494],[492,494,504],[494,493,496],[494,496,504],[496,495,498],[496,498,504],[498,497,500],[498,500,504],[500,499,502],[500,502,504],[501,504,502],[454,593,456],[457,456,593],[594,595,596],[597,598,594],[599,597,594],[600,599,594],[601,600,594],[602,601,594],[603,602,594],[604,603,594],[605,604,594],[606,607,608],[609,606,608],[610,609,608],[611,610,608],[612,611,608],[613,612,608],[614,613,608],[615,614,608],[616,615,608],[617,616,608],[618,617,608],[619,618,608],[620,619,608],[596,608,607],[595,594,598],[608,596,595],[605,594,91],[91,338,602],[91,602,603],[598,597,1],[594,596,91],[608,595,1],[595,598,1],[616,617,392],[610,611,394],[419,421,613],[419,613,614],[422,427,607],[422,607,606],[427,91,596],[427,596,607],[428,420,619],[428,619,620],[1,428,620],[1,620,608],[420,409,618],[420,618,619],[411,422,606],[411,606,609],[398,419,614],[398,614,615],[421,400,612],[421,612,613],[409,392,617],[409,617,618],[394,411,609],[394,609,610],[604,605,91],[338,1,599],[338,599,600],[392,398,615],[392,615,616],[400,394,611],[400,611,612],[603,604,91],[601,602,338],[597,599,1],[600,601,338] - ]; - } elsif ($name eq 'gt2_teeth') { - $vertices = [ - [15.8899993896484,19.444055557251,2.67489433288574],[15.9129991531372,19.1590557098389,2.67489433288574],[15.9039993286133,19.1500549316406,2.67489433288574],[15.9489994049072,19.2490558624268,2.67489433288574],[15.9579992294312,19.3570556640625,2.67489433288574],[15.8819999694824,18.690055847168,2.67489433288574],[15.8319997787476,17.7460556030273,2.67489433288574],[15.8489999771118,18.819055557251,2.67489433288574],[15.8589992523193,17.7190551757812,2.67489433288574],[15.8769998550415,19.0490550994873,2.67489433288574],[15.7529993057251,17.8080558776855,2.67489433288574],[15.7869997024536,19.5010547637939,2.67489433288574],[14.0329990386963,18.7170543670654,2.67489433288574],[13.9599990844727,18.7460556030273,2.67489433288574],[13.9869995117188,20.2840557098389,2.67489433288574],[14.2029991149902,20.149055480957,2.67489433288574],[14.1939992904663,19.9560546875,2.67489433288574],[14.1939992904663,20.1670551300049,2.67489433288574],[14.2119998931885,20.0590553283691,2.67489433288574],[12.1899995803833,19.1840553283691,2.67489433288574],[12.096999168396,19.1950550079346,2.67489433288574],[12.1099996566772,20.6690559387207,2.67489433288574],[11.382999420166,19.9750556945801,2.67489433288574],[11.2599992752075,19.2490558624268,2.67489433288574],[11.2369995117188,19.9320545196533,2.67489433288574],[11.5349998474121,20.0640544891357,2.67489433288574],[11.6259994506836,20.1550559997559,2.67489433288574],[11.6829986572266,20.2390556335449,2.67489433288574],[11.7369995117188,20.3570556640625,2.67489433288574],[11.8449993133545,20.645055770874,2.67489433288574],[11.7729988098145,20.4640560150146,2.67489433288574],[11.7799987792969,20.5370559692383,9.41389465332031],[11.7639999389648,20.4470558166504,2.67489433288574],[11.9559993743896,20.6810550689697,2.67489433288574],[12.3079996109009,20.6020545959473,2.67489433288574],[12.1959991455078,19.1860542297363,2.67489433288574],[12.2059993743896,20.6540546417236,2.67489433288574],[12.3489990234375,20.3740558624268,2.67489433288574],[12.3579998016357,20.2750549316406,2.67489433288574],[12.3669996261597,20.266056060791,2.67489433288574],[12.3849992752075,20.1670551300049,2.67489433288574],[12.4269990921021,20.0680541992188,2.67489433288574],[12.5029993057251,19.9540557861328,2.67489433288574],[12.6169996261597,19.8550548553467,2.67489433288574],[12.7449989318848,19.7800559997559,2.67489433288574],[12.7629995346069,19.7800559997559,2.67489433288574],[12.8799991607666,19.7350559234619,2.67489433288574],[13.0369997024536,19.7250556945801,2.67489433288574],[13.0149993896484,19.0340557098389,2.67489433288574],[11.1699991226196,19.2580547332764,2.67489433288574],[11.0959987640381,19.2580547332764,2.67489433288574],[11.1209993362427,19.9230556488037,2.67489433288574],[13.0599994659424,19.024055480957,2.67489433288574],[14.9049997329712,18.3170547485352,2.67489433288574],[14.8779993057251,18.3400554656982,2.67489433288574],[14.8779993057251,19.149055480957,2.67489433288574],[13.3039989471436,19.77805519104,2.67489433288574],[13.1589994430542,18.9890556335449,2.67489433288574],[13.1559991836548,19.7350559234619,2.67489433288574],[13.4269990921021,19.8600559234619,2.67489433288574],[13.5339994430542,19.9700546264648,2.67389440536499],[13.6359996795654,20.1220550537109,2.67489433288574],[13.6359996795654,20.1400547027588,2.67489433288574],[13.6719989776611,20.2210559844971,2.67489433288574],[13.6899995803833,20.2300548553467,2.67489433288574],[13.7509994506836,20.3010559082031,2.67489433288574],[13.8539991378784,20.3180541992188,2.67489433288574],[14.8329992294312,18.3580551147461,2.67489433288574],[14.1849994659424,19.8530559539795,2.67489433288574],[14.0769996643066,18.7000541687012,2.67489433288574],[14.1099996566772,20.2400550842285,2.67489433288574],[14.2009992599487,19.6230545043945,2.67489433288574],[14.2729997634888,19.4670543670654,2.67489433288574],[14.3379993438721,19.3790550231934,2.67489433288574],[14.4549999237061,19.2770557403564,2.67489433288574],[14.5899991989136,19.2040557861328,2.67489433288574],[14.6079998016357,19.2040557861328,2.67489433288574],[14.7209997177124,19.1600551605225,2.67489433288574],[15.1379995346069,19.210054397583,2.67489433288574],[14.9949998855591,18.2680549621582,2.67489433288574],[15.0029993057251,19.1580543518066,2.67489433288574],[15.2369995117188,19.2760543823242,2.67489433288574],[15.3779993057251,19.4060554504395,2.67489433288574],[15.4539995193481,19.520055770874,2.67489433288574],[15.471999168396,19.52805519104,2.67489433288574],[15.5449991226196,19.5830554962158,2.67489433288574],[15.6529998779297,19.573055267334,2.67489433288574],[15.7059993743896,17.8360557556152,2.67489433288574],[15.9449996948242,18.5560550689697,2.67489433288574],[15.8589992523193,18.9380550384521,2.67489433288574],[14.9589996337891,18.2950553894043,2.67489433288574],[15.7779998779297,19.5100555419922,2.67489433288574],[14.0049991607666,20.2750549316406,2.67489433288574],[12.3489990234375,20.5000553131104,2.67489433288574],[13.0689992904663,19.0150547027588,2.67489433288574],[13.0999994277954,19.0100555419922,2.67489433288574],[15.9489994049072,19.3670558929443,9.41489505767822],[15.9489994049072,19.2490558624268,9.41489505767822],[15.75,17.8080558776855,9.41489505767822],[15.6639995574951,19.5710544586182,9.41489505767822],[15.5709991455078,17.9260559082031,9.41489505767822],[15.8769998550415,18.690055847168,9.41489505767822],[15.8499994277954,18.8170547485352,9.41489505767822],[15.9459991455078,18.5520553588867,9.41489505767822],[15.914999961853,17.6890544891357,9.41489505767822],[15.3999996185303,19.4290542602539,9.41489505767822],[15.3099994659424,19.339054107666,9.41489505767822],[15.3729991912842,18.0440559387207,9.41489505767822],[15.4579992294312,19.5170555114746,9.41489505767822],[15.5469999313354,19.5820541381836,9.41489505767822],[13.2309989929199,19.7610549926758,9.41489505767822],[13.168999671936,19.7360553741455,9.41489505767822],[13.096999168396,19.0140552520752,9.41489505767822],[13.1999988555908,18.9870548248291,9.41489505767822],[15.1399993896484,19.2080554962158,9.41489505767822],[15.0159997940063,19.1600551605225,9.41489505767822],[14.9859991073608,18.2770557403564,9.41489505767822],[15.1749992370605,18.1690559387207,9.41489505767822],[15.9039993286133,19.1320552825928,9.41489505767822],[15.8949995040894,19.4460544586182,9.41489505767822],[15.8769998550415,19.0420551300049,9.41489505767822],[12.2169990539551,20.6500549316406,9.41489505767822],[11.9379997253418,20.6810550689697,9.41489505767822],[11.8629989624023,19.2130546569824,9.41489505767822],[12.096999168396,19.1950550079346,9.41489505767822],[14.1669998168945,18.6640548706055,9.41489505767822],[14.1039991378784,20.2460556030273,9.41489505767822],[13.9849996566772,18.7360553741455,9.41489505767822],[14.7349996566772,19.1590557098389,9.41489505767822],[14.5849990844727,19.2050552368164,9.41489505767822],[14.5719995498657,18.4850559234619,9.41489505767822],[14.1939992904663,19.6760559082031,9.41489505767822],[14.1849994659424,19.9330558776855,9.41489505767822],[14.1759996414185,18.6640548706055,9.41489505767822],[14.261999130249,19.4890556335449,9.41489505767822],[14.3539991378784,19.3610553741455,9.41489505767822],[14.3559989929199,18.5830554962158,9.41489505767822],[11.6039991378784,20.1250553131104,9.41489505767822],[11.5209999084473,20.0520553588867,9.41489505767822],[11.4209995269775,19.2480545043945,9.41489505767822],[11.6989994049072,20.2690544128418,9.41389465332031],[11.7609996795654,20.4310550689697,9.41489505767822],[11.8359994888306,19.2130546569824,9.41489505767822],[14.1889991760254,20.1710548400879,9.41489505767822],[13.9689998626709,20.2840557098389,9.41489505767822],[13.8739995956421,20.315055847168,9.41489505767822],[13.7799997329712,18.8080558776855,9.41489505767822],[13.9869995117188,20.2750549316406,9.41489505767822],[12.3129997253418,20.5980548858643,9.41489505767822],[12.3399991989136,20.5090560913086,9.41489505767822],[12.3489990234375,20.3830547332764,9.41489505767822],[12.3599996566772,20.2680549621582,9.41489505767822],[12.3849992752075,20.1850547790527,9.41489505767822],[12.3849992752075,20.1670551300049,9.41489505767822],[12.4249992370605,20.065055847168,9.41489505767822],[12.4729995727539,19.1350555419922,9.41489505767822],[14.4399995803833,19.2900543212891,9.41489505767822],[14.3649997711182,18.5740547180176,9.41489505767822],[13.5729999542236,20.0310554504395,9.41489505767822],[13.4889993667603,19.9140548706055,9.41489505767822],[13.5639991760254,18.8710556030273,9.41489505767822],[13.6389999389648,20.1310558319092,9.41489505767822],[13.6719989776611,20.2130546569824,9.41489505767822],[13.75,20.3020553588867,9.41489505767822],[12.7399997711182,19.7810554504395,9.41489505767822],[12.6189994812012,19.8520545959473,9.41489505767822],[12.5799999237061,19.1200542449951,9.41489505767822],[12.8349990844727,19.069055557251,9.41489505767822],[11.2669992446899,19.9350547790527,9.41489505767822],[11.1029987335205,19.9230556488037,9.41489505767822],[11.0209999084473,19.2600555419922,9.41489505767822],[11.3819999694824,19.9710559844971,9.41489505767822],[13.418999671936,19.8530559539795,9.41489505767822],[13.4329996109009,18.9160556793213,9.41489505767822],[11.8399991989136,20.6430549621582,9.41489505767822],[13.3119993209839,19.7800559997559,9.41489505767822],[15.2189998626709,19.2600555419922,9.41489505767822],[15.1839990615845,18.1600551605225,9.41489505767822],[15.3639993667603,18.0520553588867,9.41489505767822],[13.0189990997314,19.7250556945801,9.41489505767822],[12.8949995040894,19.7350559234619,9.41489505767822],[15.9039993286133,19.1500549316406,9.41489505767822],[15.7699995040894,19.5140552520752,9.41489505767822],[15.8589992523193,18.9340553283691,9.41489505767822],[14.1939992904663,19.9510555267334,9.41489505767822],[14.2119998931885,20.0630550384521,9.41489505767822],[14.8589992523193,19.149055480957,9.41489505767822],[14.8159999847412,18.3670558929443,9.41489505767822],[14.8959999084473,18.3220558166504,9.41489505767822],[12.5189990997314,19.9360542297363,9.41489505767822],[11.0209999084473,19.9290542602539,9.41489505767822],[11.0209999084473,19.2530555725098,2.67489433288574],[11.0209999084473,19.9300556182861,2.67489433288574],[15.9799995422363,18.505931854248,5.58724021911621],[15.9799995422363,18.5044555664062,9.41489505767822],[15.9799995422363,18.5041732788086,2.67489433288574],[15.9799995422363,18.1684837341309,2.67489433288574],[15.9799995422363,18.1288299560547,9.41489505767822],[15.9799995422363,17.9876575469971,2.67489433288574],[15.9799995422363,17.6247596740723,3.91620373725891],[15.9799995422363,17.6247596740723,2.67489433288574],[15.9799995422363,17.6254329681396,4.32245063781738],[15.9799995422363,17.8920269012451,9.41489505767822],[15.9799995422363,17.8795108795166,2.67489433288574],[15.9799995422363,17.629810333252,4.58585262298584],[15.9799995422363,17.6336059570312,5.27938556671143],[15.9799995422363,17.8311748504639,2.67489433288574],[15.9799995422363,17.638355255127,9.41489505767822],[15.9799995422363,17.6346111297607,5.98653984069824],[15.9799995422363,17.8728256225586,2.67489433288574],[15.9799995422363,18.2221603393555,2.67489433288574] - ]; - $facets = [ - [0,1,2],[0,3,1],[0,4,3],[5,6,7],[8,6,5],[2,9,0],[6,10,11],[12,13,14],[15,16,17],[18,16,15],[19,20,21],[22,23,24],[25,23,22],[26,23,25],[27,23,26],[28,23,27],[29,30,31],[29,32,30],[29,28,32],[33,28,29],[33,23,28],[21,23,33],[20,23,21],[34,35,36],[37,35,34],[38,35,37],[39,35,38],[40,35,39],[41,35,40],[42,35,41],[43,35,42],[44,35,43],[45,35,44],[46,35,45],[47,35,46],[48,35,47],[49,50,51],[52,48,47],[23,49,24],[53,54,55],[56,57,58],[59,57,56],[60,57,59],[61,57,60],[62,57,61],[63,57,62],[64,57,63],[65,57,64],[66,57,65],[13,57,66],[54,67,55],[68,69,70],[71,69,68],[72,69,71],[73,69,72],[74,69,73],[75,69,74],[76,69,75],[77,69,76],[67,69,77],[70,16,68],[70,17,16],[78,79,80],[81,79,78],[82,79,81],[83,79,82],[84,79,83],[85,79,84],[86,79,85],[87,79,86],[88,8,5],[11,7,6],[11,89,7],[11,9,89],[11,0,9],[55,90,53],[55,79,90],[55,80,79],[91,11,10],[92,69,12],[92,70,69],[34,93,37],[47,94,52],[47,95,94],[47,57,95],[47,58,57],[51,24,49],[21,35,19],[21,36,35],[14,92,12],[86,10,87],[86,91,10],[77,55,67],[66,14,13],[96,97,4],[98,99,100],[101,102,98],[103,101,98],[104,103,98],[105,106,107],[108,105,107],[109,108,107],[100,109,107],[110,111,112],[113,110,112],[114,115,116],[117,114,116],[118,119,120],[121,122,123],[124,121,123],[125,126,127],[128,129,130],[131,132,133],[71,131,133],[134,71,133],[135,134,133],[136,135,133],[137,138,139],[140,137,139],[141,140,139],[142,31,141],[142,141,139],[143,126,132],[144,145,146],[147,144,146],[127,147,146],[148,121,124],[149,148,124],[150,149,124],[151,150,124],[152,151,124],[153,152,124],[154,153,124],[155,154,124],[129,156,157],[130,129,157],[158,159,160],[161,158,160],[162,161,160],[163,162,160],[146,163,160],[164,165,166],[167,164,166],[168,169,170],[171,168,170],[139,171,170],[159,172,173],[123,174,142],[175,110,113],[173,175,113],[106,176,177],[178,106,177],[179,180,167],[112,179,167],[175,173,172],[119,118,181],[119,181,97],[119,97,96],[182,98,102],[182,102,183],[182,183,120],[182,120,119],[143,132,184],[184,185,143],[147,127,126],[174,123,122],[159,173,160],[126,125,133],[126,133,132],[186,187,188],[186,188,116],[186,116,115],[99,98,182],[109,100,99],[106,178,107],[114,117,177],[114,177,176],[128,130,187],[128,187,186],[135,136,157],[135,157,156],[163,146,145],[164,167,180],[179,112,111],[171,139,138],[189,155,166],[189,166,165],[149,150,93],[154,155,189],[31,142,174],[114,176,78],[81,78,176],[7,89,183],[89,9,120],[89,120,183],[78,80,114],[176,106,81],[88,5,103],[183,102,7],[118,120,9],[9,2,181],[9,181,118],[115,114,80],[82,81,106],[101,103,5],[102,101,5],[5,7,102],[97,181,2],[2,1,97],[1,3,97],[80,55,115],[172,159,59],[59,56,172],[3,4,97],[4,0,96],[105,108,82],[186,115,55],[82,106,105],[83,82,108],[60,59,159],[175,172,56],[119,96,0],[0,11,119],[108,109,84],[84,83,108],[55,77,186],[56,58,110],[56,110,175],[60,159,158],[11,91,182],[182,119,11],[91,86,182],[85,84,109],[86,85,99],[128,186,77],[58,111,110],[158,161,60],[26,25,137],[138,137,25],[99,182,86],[109,99,85],[77,76,128],[58,47,111],[61,60,161],[137,140,26],[27,26,140],[25,22,138],[129,128,76],[76,75,129],[75,74,129],[74,73,156],[73,72,135],[68,16,184],[68,184,132],[16,18,185],[161,162,62],[62,61,161],[179,111,47],[171,138,22],[156,129,74],[135,156,73],[134,135,72],[72,71,134],[68,132,131],[185,184,16],[18,15,185],[63,62,162],[28,27,140],[22,24,171],[71,68,131],[15,17,143],[15,143,185],[17,70,143],[70,92,126],[162,163,64],[64,63,162],[180,179,47],[47,46,180],[140,141,28],[168,171,24],[126,143,70],[92,14,147],[147,126,92],[14,66,144],[14,144,147],[65,64,163],[66,65,145],[46,45,180],[32,28,141],[24,51,168],[145,144,66],[163,145,65],[164,180,45],[45,44,164],[44,43,164],[43,42,165],[38,37,151],[150,151,37],[37,93,150],[141,31,30],[30,32,141],[169,168,51],[165,164,43],[189,165,42],[42,41,189],[40,39,152],[40,152,153],[151,152,39],[39,38,151],[93,34,149],[154,189,41],[153,154,41],[41,40,153],[148,149,34],[34,36,148],[36,21,121],[31,174,29],[121,148,36],[21,33,122],[21,122,121],[33,29,122],[174,122,29],[116,188,53],[104,98,10],[87,10,98],[98,100,87],[79,87,100],[79,100,107],[90,79,107],[90,107,178],[178,177,90],[53,90,177],[53,177,117],[117,116,53],[54,53,188],[54,188,187],[67,54,187],[67,187,130],[69,67,130],[69,130,157],[12,69,157],[12,157,136],[136,133,12],[12,133,125],[125,127,12],[13,12,127],[127,146,13],[57,13,146],[57,146,160],[95,57,160],[95,160,173],[173,113,95],[94,95,113],[113,112,94],[52,94,112],[48,52,112],[112,167,48],[35,48,167],[35,167,166],[19,35,166],[139,170,50],[50,49,139],[166,155,19],[20,19,155],[155,124,20],[23,20,124],[23,124,123],[49,23,123],[49,123,142],[142,139,49],[190,191,170],[192,191,190],[191,192,51],[191,51,50],[170,169,190],[169,51,192],[169,192,190],[170,191,50],[193,194,195],[196,197,198],[199,200,201],[198,202,203],[204,201,200],[205,204,200],[206,207,208],[206,208,205],[206,205,200],[207,206,209],[207,209,203],[207,203,202],[202,198,197],[197,196,210],[197,210,195],[197,195,194],[8,88,195],[8,195,210],[210,196,8],[196,198,8],[198,203,8],[203,209,8],[209,206,8],[206,200,8],[202,197,104],[207,202,104],[103,104,197],[103,197,194],[193,195,88],[88,103,194],[88,194,193],[200,199,8],[199,201,8],[204,205,6],[6,8,201],[6,201,204],[10,6,205],[10,205,208],[104,10,208],[104,208,207] - ]; - } elsif ($name eq 'pyramid') { - $vertices = [ - [10,10,40],[0,0,0],[20,0,0],[20,20,0],[0,20,0], - ]; - $facets = [ - [0,1,2],[0,3,4],[3,1,4],[1,3,2],[3,0,2],[4,1,0], - ]; - } elsif ($name eq 'two_hollow_squares') { - $vertices = [ - [66.7133483886719,104.286666870117,0],[66.7133483886719,95.7133331298828,0],[65.6666870117188,94.6666717529297,0],[75.2866821289062,95.7133331298828,0],[76.3333435058594,105.333335876465,0],[76.3333435058594,94.6666717529297,0],[65.6666870117188,105.33332824707,0],[75.2866821289062,104.286666870117,0],[71.1066818237305,104.58666229248,2.79999995231628],[66.4133529663086,104.58666229248,2.79999995231628],[75.5866851806641,104.58666229248,2.79999995231628],[66.4133529663086,99.8933334350586,2.79999995231628],[66.4133529663086,95.4133377075195,2.79999995231628],[71.1066818237305,95.4133377075195,2.79999995231628],[75.5866851806641,95.4133377075195,2.79999995231628],[75.5866851806641,100.106666564941,2.79999995231628],[74.5400161743164,103.540000915527,2.79999995231628],[70.0320129394531,103.540000915527,2.79999995231628],[67.4600067138672,103.540000915527,2.79999995231628],[67.4600067138672,100.968002319336,2.79999995231628],[67.4600067138672,96.4599990844727,2.79999995231628],[74.5400161743164,99.0319976806641,2.79999995231628],[74.5400161743164,96.4599990844727,2.79999995231628],[70.0320129394531,96.4599990844727,2.79999995231628],[123.666717529297,94.6666717529297,0],[134.333312988281,94.6666717529297,0],[124.413360595703,95.4133377075195,2.79999995231628],[129.106674194336,95.4133377075195,2.79999995231628],[133.586669921875,95.4133377075195,2.79999995231628],[123.666717529297,105.33332824707,0],[124.413360595703,104.58666229248,2.79999995231628],[124.413360595703,99.8933334350586,2.79999995231628],[134.333312988281,105.33332824707,0],[129.106674194336,104.58666229248,2.79999995231628],[133.586669921875,104.58666229248,2.79999995231628],[133.586669921875,100.106666564941,2.79999995231628],[124.713317871094,104.286666870117,0],[124.713317871094,95.7133331298828,0],[133.286712646484,95.7133331298828,0],[133.286712646484,104.286666870117,0],[132.540023803711,103.540000915527,2.79999995231628],[128.032028198242,103.540008544922,2.79999995231628],[125.460006713867,103.540000915527,2.79999995231628],[125.460006713867,100.968002319336,2.79999995231628],[125.460006713867,96.4599990844727,2.79999995231628],[132.540023803711,99.0319976806641,2.79999995231628],[132.540023803711,96.4599990844727,2.79999995231628],[128.032028198242,96.4599990844727,2.79999995231628], - ]; - $facets = [ - [0,1,2],[3,4,5],[6,4,0],[6,0,2],[2,1,5],[7,4,3],[1,3,5],[0,4,7],[4,6,8],[6,9,8],[4,8,10],[6,2,9],[2,11,9],[2,12,11],[2,5,12],[5,13,12],[5,14,13],[4,10,15],[5,4,14],[4,15,14],[7,16,17],[0,7,18],[7,17,18],[1,19,20],[1,0,19],[0,18,19],[7,3,21],[3,22,21],[7,21,16],[3,23,22],[3,1,23],[1,20,23],[24,25,26],[25,27,26],[25,28,27],[29,24,30],[24,31,30],[24,26,31],[32,29,33],[29,30,33],[32,33,34],[32,34,35],[25,32,28],[32,35,28],[36,37,24],[38,32,25],[29,32,36],[29,36,24],[24,37,25],[39,32,38],[37,38,25],[36,32,39],[39,40,41],[36,39,42],[39,41,42],[37,43,44],[37,36,43],[36,42,43],[39,38,45],[38,46,45],[39,45,40],[38,47,46],[38,37,47],[37,44,47],[16,8,9],[16,10,8],[10,16,15],[15,16,21],[22,15,21],[15,22,14],[22,23,14],[23,20,14],[17,16,9],[18,17,9],[19,18,9],[19,9,11],[19,11,20],[13,14,20],[20,11,12],[13,20,12],[41,40,30],[42,41,30],[43,42,30],[43,30,31],[43,31,44],[27,28,44],[44,31,26],[27,44,26],[40,33,30],[40,34,33],[34,40,35],[35,40,45],[46,35,45],[35,46,28],[46,47,28],[47,44,28], - ]; - } elsif ($name eq 'small_dorito') { - $vertices = [ - [6.00058937072754,-22.9982089996338,0],[22.0010242462158,-49.9998741149902,0],[-9.99957847595215,-49.999870300293,0],[6.00071382522583,-32.2371635437012,28.0019245147705],[11.1670551300049,-37.9727020263672,18.9601669311523],[6.00060224533081,-26.5392456054688,10.7321853637695] - ]; - $facets = [ - [0,1,2],[3,4,5],[2,1,4],[2,4,3],[2,3,5],[2,5,0],[5,4,1],[5,1,0] - ]; - } elsif ($name eq 'bridge') { - $vertices = [ - [75,84.5,8],[125,84.5,8],[75,94.5,8],[120,84.5,5],[125,94.5,8],[75,84.5,0],[80,84.5,5],[125,84.5,0],[125,94.5,0],[80,94.5,5],[75,94.5,0],[120,94.5,5],[120,84.5,0],[80,94.5,0],[80,84.5,0],[120,94.5,0] - ]; - $facets = [ - [0,1,2],[1,0,3],[2,1,4],[2,5,0],[0,6,3],[1,3,7],[1,8,4],[4,9,2],[10,5,2],[5,6,0],[6,11,3],[3,12,7],[7,8,1],[4,8,11],[4,11,9],[9,10,2],[10,13,5],[14,6,5],[9,11,6],[11,12,3],[12,8,7],[11,8,15],[13,10,9],[5,13,14],[14,13,6],[6,13,9],[15,12,11],[15,8,12] - ]; - } elsif ($name eq 'bridge_with_hole') { - $vertices = [ - [75,69.5,8],[80,76.9091644287109,8],[75,94.5,8],[125,69.5,8],[120,76.9091644287109,8],[120,87.0908355712891,8],[80,87.0908355712891,8],[125,94.5,8],[80,87.0908355712891,5],[120,87.0908355712891,5],[125,94.5,0],[120,69.5,0],[120,94.5,0],[125,69.5,0],[120,94.5,5],[80,94.5,5],[80,94.5,0],[75,94.5,0],[80,69.5,5],[80,69.5,0],[80,76.9091644287109,5],[120,69.5,5],[75,69.5,0],[120,76.9091644287109,5] - ]; - $facets = [ - [0,1,2],[1,0,3],[1,3,4],[4,3,5],[2,6,7],[6,2,1],[7,6,5],[7,5,3],[5,8,9],[8,5,6],[10,11,12],[11,10,13],[14,8,15],[8,14,9],[2,16,17],[16,2,15],[15,2,14],[14,10,12],[10,14,7],[7,14,2],[16,18,19],[18,16,20],[20,16,1],[1,16,8],[8,16,15],[6,1,8],[3,11,13],[11,3,21],[21,3,18],[18,22,19],[22,18,0],[0,18,3],[16,22,17],[22,16,19],[2,22,0],[22,2,17],[5,23,4],[23,11,21],[11,23,12],[12,23,9],[9,23,5],[12,9,14],[23,18,20],[18,23,21],[10,3,13],[3,10,7],[1,23,20],[23,1,4] - ]; - } elsif ($name eq 'step') { - $vertices = [ - [0,20,5],[0,20,0],[0,0,5],[0,0,0],[20,0,0],[20,0,5],[1,19,5],[1,1,5],[19,1,5],[20,20,5],[19,19,5],[20,20,0],[19,19,10],[1,19,10],[1,1,10],[19,1,10] - ]; - $facets = [ - [0,1,2],[1,3,2],[3,4,5],[2,3,5],[6,0,2],[6,2,7],[5,8,7],[5,7,2],[9,10,8],[9,8,5],[9,0,6],[9,6,10],[9,11,1],[9,1,0],[3,1,11],[4,3,11],[5,11,9],[5,4,11],[12,10,6],[12,6,13],[6,7,14],[13,6,14],[7,8,15],[14,7,15],[15,8,10],[15,10,12],[12,13,14],[12,14,15] - ]; - } elsif ($name eq 'slopy_cube') { - $vertices = [ - [-10,-10,0], [-10,-10,20], [-10,10,0], [-10,10,20], [0,-10,10], [10,-10,0], [2.92893,-10,10], [10,-10,2.92893], - [0,-10,20], [10,10,0], [0,10,10], [0,10,20], [2.92893,10,10], [10,10,2.92893], - ]; - $facets = [ - [0,1,2], [2,1,3], [4,0,5], [4,1,0], [6,4,7], [7,4,5], [4,8,1], [0,2,5], [5,2,9], [2,10,9], [10,3,11], - [2,3,10], [9,10,12], [13,9,12], [3,1,8], [11,3,8], [10,11,8], [4,10,8], [6,12,10], [4,6,10], - [7,13,12], [6,7,12], [7,5,9], [13,7,9], - ]; - } else { - return undef; - } - - my $mesh = Slic3r::TriangleMesh->new; - $mesh->ReadFromPerl($vertices, $facets); - $mesh->repair; - $mesh->scale_xyz(Slic3r::Pointf3->new(@{$params{scale_xyz}})) if $params{scale_xyz}; - $mesh->translate(@{$params{translate}}) if $params{translate}; - return $mesh; -} - -sub model { - my ($model_name, %params) = @_; - - my $model = Slic3r::Model->new; - my $object = $model->add_object(input_file => "${model_name}.stl"); - $model->set_material($model_name); - $object->add_volume(mesh => mesh($model_name, %params), material_id => $model_name); - $object->add_instance( - offset => Slic3r::Pointf->new(0,0), - rotation => $params{rotation} // 0, - scaling_factor => $params{scale} // 1, - ); - return $model; -} - -sub init_print { - my ($models, %params) = @_; - - my $config = Slic3r::Config->new; - $config->apply($params{config}) if $params{config}; - $config->set('gcode_comments', 1) if $ENV{SLIC3R_TESTS_GCODE}; - - my $print = Slic3r::Print->new; - $print->apply_config($config); - - $models = [$models] if ref($models) ne 'ARRAY'; - $models = [ map { ref($_) ? $_ : model($_, %params) } @$models ]; - for my $model (@$models) { - die "Unknown model in test" if !defined $model; - if (defined $params{duplicate} && $params{duplicate} > 1) { - $model->duplicate($params{duplicate} // 1, $print->config->min_object_distance); - } - $model->arrange_objects($print->config->min_object_distance); - $model->center_instances_around_point($params{print_center} ? Slic3r::Pointf->new(@{$params{print_center}}) : Slic3r::Pointf->new(100,100)); - foreach my $model_object (@{$model->objects}) { - $print->auto_assign_extruders($model_object); - $print->add_model_object($model_object); - } - } - $print->validate; - - # We return a proxy object in order to keep $models alive as required by the Print API. - return Slic3r::Test::Print->new( - print => $print, - models => $models, - ); -} - -sub gcode { - my ($print) = @_; - - $print = $print->print if $print->isa('Slic3r::Test::Print'); - - my $fh = IO::Scalar->new(\my $gcode); - $print->process; - $print->export_gcode(output_fh => $fh, quiet => 1); - $fh->close; - - return $gcode; -} - -sub _eq { - my ($a, $b) = @_; - return abs($a - $b) < epsilon; -} - -sub add_facet { - my ($facet, $vertices, $facets) = @_; - - push @$facets, []; - for my $i (0..2) { - my $v = first { $vertices->[$_][X] == $facet->[$i][X] && $vertices->[$_][Y] == $facet->[$i][Y] && $vertices->[$_][Z] == $facet->[$i][Z] } 0..$#$vertices; - if (!defined $v) { - push @$vertices, [ @{$facet->[$i]}[X,Y,Z] ]; - $v = $#$vertices; - } - $facets->[-1][$i] = $v; - } -} - -package Slic3r::Test::Print; -use Moo; - -has 'print' => (is => 'ro', required => 1, handles => [qw(process apply_config)]); -has 'models' => (is => 'ro', required => 1); - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Test/SectionCut.pm b/software/Slic3r-1.3.0.64bit/lib/Slic3r/Test/SectionCut.pm deleted file mode 100644 index 8b3de5a7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Slic3r/Test/SectionCut.pm +++ /dev/null @@ -1,203 +0,0 @@ -# 2D cut in the XZ plane through the toolpaths. -# For debugging purposes. - -package Slic3r::Test::SectionCut; -use Moo; - -use List::Util qw(any min max); -use Slic3r::Geometry qw(unscale); -use Slic3r::Geometry::Clipper qw(intersection_pl); -use SVG; -use Slic3r::SVG; - -has 'print' => (is => 'ro', required => 1); -has 'scale' => (is => 'ro', default => sub { 30 }); -has 'y_percent' => (is => 'ro', default => sub { 0.5 }); # Y coord of section line expressed as factor -has '_line' => (is => 'lazy'); -has '_height' => (is => 'rw'); -has '_svg' => (is => 'rw'); -has '_svg_style' => (is => 'rw', default => sub { {} }); -has '_bb' => (is => 'lazy'); - -sub _build__line { - my $self = shift; - - # calculate the Y coordinate of the section line - my $bb = $self->_bb; - my $y = ($bb->y_min + $bb->y_max) * $self->y_percent; - - # store our section line - return Slic3r::Line->new([ $bb->x_min, $y ], [ $bb->x_max, $y ]); -} - -sub _build__bb { - my ($self) = @_; - - return $self->print->bounding_box; -} - -sub export_svg { - my $self = shift; - my ($filename) = @_; - - # get bounding box of print and its height - # (Print should return a BoundingBox3 object instead) - my $print_size = $self->_bb->size; - $self->_height(max(map $_->print_z, map @{$_->layers}, @{$self->print->objects})); - - # initialize the SVG canvas - $self->_svg(my $svg = SVG->new( - width => $self->scale * unscale($print_size->x), - height => $self->scale * $self->_height, - )); - - # set default styles - $self->_svg_style->{'stroke-width'} = 1; - $self->_svg_style->{'fill-opacity'} = 0.5; - $self->_svg_style->{'stroke-opacity'} = 0.2; - - # plot perimeters - $self->_svg_style->{'stroke'} = '#EE0000'; - $self->_svg_style->{'fill'} = '#FF0000'; - $self->_plot_group(sub { map @{$_->perimeters}, @{$_[0]->regions} }); - - # plot infill - $self->_svg_style->{'stroke'} = '#444444'; - $self->_svg_style->{'fill'} = '#454545'; - $self->_plot_group(sub { map @{$_->fills}, @{$_[0]->regions} }); - - # plot support material - $self->_svg_style->{'stroke'} = '#12EF00'; - $self->_svg_style->{'fill'} = '#22FF00'; - $self->_plot_group(sub { $_[0]->isa('Slic3r::Layer::Support') ? ($_[0]->support_fills, $_[0]->support_interface_fills) : () }); - - Slic3r::open(\my $fh, '>', $filename); - print $fh $svg->xmlify; - close $fh; - printf "Section cut SVG written to %s\n", $filename; -} - -sub _plot_group { - my $self = shift; - my ($filter) = @_; - - foreach my $object (@{$self->print->objects}) { - foreach my $layer (@{$object->layers}, @{$object->support_layers}) { - my @paths = map $_->clone, map @{$_->flatten}, grep defined $_, $filter->($layer); - - my $name = sprintf "%s %d (z = %f)", - ($layer->isa('Slic3r::Layer::Support') ? 'Support Layer' : 'Layer'), - $layer->id, - $layer->print_z; - - my $g = $self->_svg->getElementByID($name) - || $self->_svg->group(id => $name, style => { %{$self->_svg_style} }); - - foreach my $copy (@{$object->_shifted_copies}) { - if (0) { - # export plan with section line and exit - my @grown = map @{$_->grow}, @paths; - $_->translate(@$copy) for @paths; - - require "Slic3r/SVG.pm"; - Slic3r::SVG::output( - "line.svg", - no_arrows => 1, - polygons => \@grown, - red_lines => [ $self->_line ], - ); - exit; - } - - $self->_plot_path($_, $g, $copy, $layer) for @paths; - } - } - } -} - -sub _plot_path { - my ($self, $path, $g, $copy, $layer) = @_; - - my $grown = $path->grow; - $_->translate(@$copy) for @$grown; - my $intersections = intersection_pl( - [ $self->_line->as_polyline ], - $grown, - ); - - if (0 && @$intersections) { - # export plan with section line and exit - require "Slic3r/SVG.pm"; - Slic3r::SVG::output( - "intersections.svg", - no_arrows => 1, - polygons => $grown, - red_lines => [ $self->_line ], - ); - exit; - } - - # turn intersections to lines - die "Intersection has more than two points!\n" - if any { @$_ > 2 } @$intersections; - my @lines = map Slic3r::Line->new(@$_), @$intersections; - - my $is_bridge = $path->isa('Slic3r::ExtrusionPath') - ? $path->is_bridge - : any { $_->is_bridge } @$path; - - foreach my $line (@lines) { - my $this_path = $path; - if ($path->isa('Slic3r::ExtrusionLoop')) { - # FIXME: find the actual ExtrusionPath of this intersection - $this_path = $path->[0]; - } - - # align to canvas - $line->translate(-$self->_bb->x_min, 0); - - # we want lines oriented from left to right in order to draw rectangles correctly - $line->reverse if $line->a->x > $line->b->x; - - if ($is_bridge) { - my $radius = $this_path->width / 2; - my $width = unscale abs($line->b->x - $line->a->x); - if ((10 * $radius) < $width) { - # we're cutting the path in the longitudinal direction, so we've got a rectangle - $g->rectangle( - 'x' => $self->scale * unscale($line->a->x), - 'y' => $self->scale * $self->_y($layer->print_z), - 'width' => $self->scale * $width, - 'height' => $self->scale * $radius * 2, - 'rx' => $self->scale * $radius * 0.35, - 'ry' => $self->scale * $radius * 0.35, - ); - } else { - $g->circle( - 'cx' => $self->scale * (unscale($line->a->x) + $radius), - 'cy' => $self->scale * $self->_y($layer->print_z - $radius), - 'r' => $self->scale * $radius, - ); - } - } else { - my $height = $this_path->height != -1 ? $this_path->height : $layer->height; - $g->rectangle( - 'x' => $self->scale * unscale($line->a->x), - 'y' => $self->scale * $self->_y($layer->print_z), - 'width' => $self->scale * unscale($line->b->x - $line->a->x), - 'height' => $self->scale * $height, - 'rx' => $self->scale * $height * 0.5, - 'ry' => $self->scale * $height * 0.5, - ); - } - } -} - -sub _y { - my $self = shift; - my ($y) = @_; - - return $self->_height - $y; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Socket.pm b/software/Slic3r-1.3.0.64bit/lib/Socket.pm deleted file mode 100644 index 0b49b7dc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Socket.pm +++ /dev/null @@ -1,469 +0,0 @@ -#line 1 "Socket.pm" -package Socket; - -use strict; -{ use 5.006001; } - -our $VERSION = '2.024'; - -#line 64 - -#line 73 - -#line 160 - -# Still undocumented: SCM_*, SOMAXCONN, IOV_MAX, UIO_MAXIOV - -#line 169 - -#line 305 - -#line 309 - -#line 558 - -#line 687 - -#line 696 - -use Carp; -use warnings::register; - -require Exporter; -require XSLoader; -our @ISA = qw(Exporter); - -# <@Nicholas> you can't change @EXPORT without breaking the implicit API -# Please put any new constants in @EXPORT_OK! - -# List re-ordered to match documentation above. Try to keep the ordering -# consistent so it's easier to see which ones are or aren't documented. -our @EXPORT = qw( - PF_802 PF_AAL PF_APPLETALK PF_CCITT PF_CHAOS PF_CTF PF_DATAKIT - PF_DECnet PF_DLI PF_ECMA PF_GOSIP PF_HYLINK PF_IMPLINK PF_INET PF_INET6 - PF_ISO PF_KEY PF_LAST PF_LAT PF_LINK PF_MAX PF_NBS PF_NIT PF_NS PF_OSI - PF_OSINET PF_PUP PF_ROUTE PF_SNA PF_UNIX PF_UNSPEC PF_USER PF_WAN - PF_X25 - - AF_802 AF_AAL AF_APPLETALK AF_CCITT AF_CHAOS AF_CTF AF_DATAKIT - AF_DECnet AF_DLI AF_ECMA AF_GOSIP AF_HYLINK AF_IMPLINK AF_INET AF_INET6 - AF_ISO AF_KEY AF_LAST AF_LAT AF_LINK AF_MAX AF_NBS AF_NIT AF_NS AF_OSI - AF_OSINET AF_PUP AF_ROUTE AF_SNA AF_UNIX AF_UNSPEC AF_USER AF_WAN - AF_X25 - - SOCK_DGRAM SOCK_RAW SOCK_RDM SOCK_SEQPACKET SOCK_STREAM - - SOL_SOCKET - - SO_ACCEPTCONN SO_ATTACH_FILTER SO_BACKLOG SO_BROADCAST SO_CHAMELEON - SO_DEBUG SO_DETACH_FILTER SO_DGRAM_ERRIND SO_DOMAIN SO_DONTLINGER - SO_DONTROUTE SO_ERROR SO_FAMILY SO_KEEPALIVE SO_LINGER SO_OOBINLINE - SO_PASSCRED SO_PASSIFNAME SO_PEERCRED SO_PROTOCOL SO_PROTOTYPE - SO_RCVBUF SO_RCVLOWAT SO_RCVTIMEO SO_REUSEADDR SO_REUSEPORT - SO_SECURITY_AUTHENTICATION SO_SECURITY_ENCRYPTION_NETWORK - SO_SECURITY_ENCRYPTION_TRANSPORT SO_SNDBUF SO_SNDLOWAT SO_SNDTIMEO - SO_STATE SO_TYPE SO_USELOOPBACK SO_XOPEN SO_XSE - - IP_HDRINCL IP_OPTIONS IP_RECVOPTS IP_RECVRETOPTS IP_RETOPTS IP_TOS - IP_TTL - - MSG_BCAST MSG_BTAG MSG_CTLFLAGS MSG_CTLIGNORE MSG_CTRUNC MSG_DONTROUTE - MSG_DONTWAIT MSG_EOF MSG_EOR MSG_ERRQUEUE MSG_ETAG MSG_FASTOPEN MSG_FIN - MSG_MAXIOVLEN MSG_MCAST MSG_NOSIGNAL MSG_OOB MSG_PEEK MSG_PROXY MSG_RST - MSG_SYN MSG_TRUNC MSG_URG MSG_WAITALL MSG_WIRE - - SHUT_RD SHUT_RDWR SHUT_WR - - INADDR_ANY INADDR_BROADCAST INADDR_LOOPBACK INADDR_NONE - - SCM_CONNECT SCM_CREDENTIALS SCM_CREDS SCM_RIGHTS SCM_TIMESTAMP - - SOMAXCONN - - IOV_MAX - UIO_MAXIOV - - sockaddr_family - pack_sockaddr_in unpack_sockaddr_in sockaddr_in - pack_sockaddr_in6 unpack_sockaddr_in6 sockaddr_in6 - pack_sockaddr_un unpack_sockaddr_un sockaddr_un - - inet_aton inet_ntoa -); - -# List re-ordered to match documentation above. Try to keep the ordering -# consistent so it's easier to see which ones are or aren't documented. -our @EXPORT_OK = qw( - CR LF CRLF $CR $LF $CRLF - - SOCK_NONBLOCK SOCK_CLOEXEC - - IP_ADD_MEMBERSHIP IP_ADD_SOURCE_MEMBERSHIP IP_BIND_ADDRESS_NO_PORT - IP_DROP_MEMBERSHIP IP_DROP_SOURCE_MEMBERSHIP IP_FREEBIND - IP_MULTICAST_ALL IP_MULTICAST_IF IP_MULTICAST_LOOP IP_MULTICAST_TTL - IP_MTU IP_MTU_DISCOVER IP_NODEFRAG IP_RECVERR IP_TRANSPARENT - - IPPROTO_IP IPPROTO_IPV6 IPPROTO_RAW IPPROTO_ICMP IPPROTO_IGMP - IPPROTO_TCP IPPROTO_UDP IPPROTO_GRE IPPROTO_ESP IPPROTO_AH - IPPROTO_SCTP - - IP_PMTUDISC_DO IP_PMTUDISC_DONT IP_PMTUDISC_PROBE IP_PMTUDISC_WANT - - IPTOS_LOWDELAY IPTOS_THROUGHPUT IPTOS_RELIABILITY IPTOS_MINCOST - - TCP_CONGESTION TCP_CONNECTIONTIMEOUT TCP_CORK TCP_DEFER_ACCEPT - TCP_FASTOPEN TCP_INFO TCP_INIT_CWND TCP_KEEPALIVE TCP_KEEPCNT - TCP_KEEPIDLE TCP_KEEPINTVL TCP_LINGER2 TCP_MAXRT TCP_MAXSEG - TCP_MD5SIG TCP_NODELAY TCP_NOOPT TCP_NOPUSH TCP_QUICKACK - TCP_SACK_ENABLE TCP_STDURG TCP_SYNCNT TCP_WINDOW_CLAMP - - IN6ADDR_ANY IN6ADDR_LOOPBACK - - IPV6_ADDRFROM IPV6_ADD_MEMBERSHIP IPV6_DROP_MEMBERSHIP IPV6_JOIN_GROUP - IPV6_LEAVE_GROUP IPV6_MTU IPV6_MTU_DISCOVER IPV6_MULTICAST_HOPS - IPV6_MULTICAST_IF IPV6_MULTICAST_LOOP IPV6_RECVERR IPV6_ROUTER_ALERT - IPV6_UNICAST_HOPS IPV6_V6ONLY - - SO_LOCK_FILTER SO_RCVBUFFORCE SO_SNDBUFFORCE - - pack_ip_mreq unpack_ip_mreq pack_ip_mreq_source unpack_ip_mreq_source - - pack_ipv6_mreq unpack_ipv6_mreq - - inet_pton inet_ntop - - getaddrinfo getnameinfo - - AI_ADDRCONFIG AI_ALL AI_CANONIDN AI_CANONNAME AI_IDN - AI_IDN_ALLOW_UNASSIGNED AI_IDN_USE_STD3_ASCII_RULES AI_NUMERICHOST - AI_NUMERICSERV AI_PASSIVE AI_V4MAPPED - - NI_DGRAM NI_IDN NI_IDN_ALLOW_UNASSIGNED NI_IDN_USE_STD3_ASCII_RULES - NI_NAMEREQD NI_NOFQDN NI_NUMERICHOST NI_NUMERICSERV - - NIx_NOHOST NIx_NOSERV - - EAI_ADDRFAMILY EAI_AGAIN EAI_BADFLAGS EAI_BADHINTS EAI_FAIL EAI_FAMILY - EAI_NODATA EAI_NONAME EAI_PROTOCOL EAI_SERVICE EAI_SOCKTYPE EAI_SYSTEM -); - -our %EXPORT_TAGS = ( - crlf => [qw(CR LF CRLF $CR $LF $CRLF)], - addrinfo => [qw(getaddrinfo getnameinfo), grep m/^(?:AI|NI|NIx|EAI)_/, @EXPORT_OK], - all => [@EXPORT, @EXPORT_OK], -); - -BEGIN { - sub CR () {"\015"} - sub LF () {"\012"} - sub CRLF () {"\015\012"} - - # These are not gni() constants; they're extensions for the perl API - # The definitions in Socket.pm and Socket.xs must match - sub NIx_NOHOST() {1 << 0} - sub NIx_NOSERV() {1 << 1} -} - -*CR = \CR(); -*LF = \LF(); -*CRLF = \CRLF(); - -sub sockaddr_in { - if (@_ == 6 && !wantarray) { # perl5.001m compat; use this && die - my($af, $port, @quad) = @_; - warnings::warn "6-ARG sockaddr_in call is deprecated" - if warnings::enabled(); - pack_sockaddr_in($port, inet_aton(join('.', @quad))); - } elsif (wantarray) { - croak "usage: (port,iaddr) = sockaddr_in(sin_sv)" unless @_ == 1; - unpack_sockaddr_in(@_); - } else { - croak "usage: sin_sv = sockaddr_in(port,iaddr))" unless @_ == 2; - pack_sockaddr_in(@_); - } -} - -sub sockaddr_in6 { - if (wantarray) { - croak "usage: (port,in6addr,scope_id,flowinfo) = sockaddr_in6(sin6_sv)" unless @_ == 1; - unpack_sockaddr_in6(@_); - } - else { - croak "usage: sin6_sv = sockaddr_in6(port,in6addr,[scope_id,[flowinfo]])" unless @_ >= 2 and @_ <= 4; - pack_sockaddr_in6(@_); - } -} - -sub sockaddr_un { - if (wantarray) { - croak "usage: (filename) = sockaddr_un(sun_sv)" unless @_ == 1; - unpack_sockaddr_un(@_); - } else { - croak "usage: sun_sv = sockaddr_un(filename)" unless @_ == 1; - pack_sockaddr_un(@_); - } -} - -XSLoader::load(__PACKAGE__, $VERSION); - -my %errstr; - -if( defined &getaddrinfo ) { - # These are not part of the API, nothing uses them, and deleting them - # reduces the size of %Socket:: by about 12K - delete $Socket::{fake_getaddrinfo}; - delete $Socket::{fake_getnameinfo}; -} else { - require Scalar::Util; - - *getaddrinfo = \&fake_getaddrinfo; - *getnameinfo = \&fake_getnameinfo; - - # These numbers borrowed from GNU libc's implementation, but since - # they're only used by our emulation, it doesn't matter if the real - # platform's values differ - my %constants = ( - AI_PASSIVE => 1, - AI_CANONNAME => 2, - AI_NUMERICHOST => 4, - AI_V4MAPPED => 8, - AI_ALL => 16, - AI_ADDRCONFIG => 32, - # RFC 2553 doesn't define this but Linux does - lets be nice and - # provide it since we can - AI_NUMERICSERV => 1024, - - EAI_BADFLAGS => -1, - EAI_NONAME => -2, - EAI_NODATA => -5, - EAI_FAMILY => -6, - EAI_SERVICE => -8, - - NI_NUMERICHOST => 1, - NI_NUMERICSERV => 2, - NI_NOFQDN => 4, - NI_NAMEREQD => 8, - NI_DGRAM => 16, - - # Constants we don't support. Export them, but croak if anyone tries to - # use them - AI_IDN => 64, - AI_CANONIDN => 128, - AI_IDN_ALLOW_UNASSIGNED => 256, - AI_IDN_USE_STD3_ASCII_RULES => 512, - NI_IDN => 32, - NI_IDN_ALLOW_UNASSIGNED => 64, - NI_IDN_USE_STD3_ASCII_RULES => 128, - - # Error constants we'll never return, so it doesn't matter what value - # these have, nor that we don't provide strings for them - EAI_SYSTEM => -11, - EAI_BADHINTS => -1000, - EAI_PROTOCOL => -1001 - ); - - foreach my $name ( keys %constants ) { - my $value = $constants{$name}; - - no strict 'refs'; - defined &$name or *$name = sub () { $value }; - } - - %errstr = ( - # These strings from RFC 2553 - EAI_BADFLAGS() => "invalid value for ai_flags", - EAI_NONAME() => "nodename nor servname provided, or not known", - EAI_NODATA() => "no address associated with nodename", - EAI_FAMILY() => "ai_family not supported", - EAI_SERVICE() => "servname not supported for ai_socktype", - ); -} - -# The following functions are used if the system does not have a -# getaddrinfo(3) function in libc; and are used to emulate it for the AF_INET -# family - -# Borrowed from Regexp::Common::net -my $REGEXP_IPv4_DECIMAL = qr/25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2}/; -my $REGEXP_IPv4_DOTTEDQUAD = qr/$REGEXP_IPv4_DECIMAL\.$REGEXP_IPv4_DECIMAL\.$REGEXP_IPv4_DECIMAL\.$REGEXP_IPv4_DECIMAL/; - -sub fake_makeerr -{ - my ( $errno ) = @_; - my $errstr = $errno == 0 ? "" : ( $errstr{$errno} || $errno ); - return Scalar::Util::dualvar( $errno, $errstr ); -} - -sub fake_getaddrinfo -{ - my ( $node, $service, $hints ) = @_; - - $node = "" unless defined $node; - - $service = "" unless defined $service; - - my ( $family, $socktype, $protocol, $flags ) = @$hints{qw( family socktype protocol flags )}; - - $family ||= Socket::AF_INET(); # 0 == AF_UNSPEC, which we want too - $family == Socket::AF_INET() or return fake_makeerr( EAI_FAMILY() ); - - $socktype ||= 0; - - $protocol ||= 0; - - $flags ||= 0; - - my $flag_passive = $flags & AI_PASSIVE(); $flags &= ~AI_PASSIVE(); - my $flag_canonname = $flags & AI_CANONNAME(); $flags &= ~AI_CANONNAME(); - my $flag_numerichost = $flags & AI_NUMERICHOST(); $flags &= ~AI_NUMERICHOST(); - my $flag_numericserv = $flags & AI_NUMERICSERV(); $flags &= ~AI_NUMERICSERV(); - - # These constants don't apply to AF_INET-only lookups, so we might as well - # just ignore them. For AI_ADDRCONFIG we just presume the host has ability - # to talk AF_INET. If not we'd have to return no addresses at all. :) - $flags &= ~(AI_V4MAPPED()|AI_ALL()|AI_ADDRCONFIG()); - - $flags & (AI_IDN()|AI_CANONIDN()|AI_IDN_ALLOW_UNASSIGNED()|AI_IDN_USE_STD3_ASCII_RULES()) and - croak "Socket::getaddrinfo() does not support IDN"; - - $flags == 0 or return fake_makeerr( EAI_BADFLAGS() ); - - $node eq "" and $service eq "" and return fake_makeerr( EAI_NONAME() ); - - my $canonname; - my @addrs; - if( $node ne "" ) { - return fake_makeerr( EAI_NONAME() ) if( $flag_numerichost and $node !~ m/^$REGEXP_IPv4_DOTTEDQUAD$/ ); - ( $canonname, undef, undef, undef, @addrs ) = gethostbyname( $node ); - defined $canonname or return fake_makeerr( EAI_NONAME() ); - - undef $canonname unless $flag_canonname; - } - else { - $addrs[0] = $flag_passive ? Socket::inet_aton( "0.0.0.0" ) - : Socket::inet_aton( "127.0.0.1" ); - } - - my @ports; # Actually ARRAYrefs of [ socktype, protocol, port ] - my $protname = ""; - if( $protocol ) { - $protname = eval { getprotobynumber( $protocol ) }; - } - - if( $service ne "" and $service !~ m/^\d+$/ ) { - return fake_makeerr( EAI_NONAME() ) if( $flag_numericserv ); - getservbyname( $service, $protname ) or return fake_makeerr( EAI_SERVICE() ); - } - - foreach my $this_socktype ( Socket::SOCK_STREAM(), Socket::SOCK_DGRAM(), Socket::SOCK_RAW() ) { - next if $socktype and $this_socktype != $socktype; - - my $this_protname = "raw"; - $this_socktype == Socket::SOCK_STREAM() and $this_protname = "tcp"; - $this_socktype == Socket::SOCK_DGRAM() and $this_protname = "udp"; - - next if $protname and $this_protname ne $protname; - - my $port; - if( $service ne "" ) { - if( $service =~ m/^\d+$/ ) { - $port = "$service"; - } - else { - ( undef, undef, $port, $this_protname ) = getservbyname( $service, $this_protname ); - next unless defined $port; - } - } - else { - $port = 0; - } - - push @ports, [ $this_socktype, eval { scalar getprotobyname( $this_protname ) } || 0, $port ]; - } - - my @ret; - foreach my $addr ( @addrs ) { - foreach my $portspec ( @ports ) { - my ( $socktype, $protocol, $port ) = @$portspec; - push @ret, { - family => $family, - socktype => $socktype, - protocol => $protocol, - addr => Socket::pack_sockaddr_in( $port, $addr ), - canonname => undef, - }; - } - } - - # Only supply canonname for the first result - if( defined $canonname ) { - $ret[0]->{canonname} = $canonname; - } - - return ( fake_makeerr( 0 ), @ret ); -} - -sub fake_getnameinfo -{ - my ( $addr, $flags, $xflags ) = @_; - - my ( $port, $inetaddr ); - eval { ( $port, $inetaddr ) = Socket::unpack_sockaddr_in( $addr ) } - or return fake_makeerr( EAI_FAMILY() ); - - my $family = Socket::AF_INET(); - - $flags ||= 0; - - my $flag_numerichost = $flags & NI_NUMERICHOST(); $flags &= ~NI_NUMERICHOST(); - my $flag_numericserv = $flags & NI_NUMERICSERV(); $flags &= ~NI_NUMERICSERV(); - my $flag_nofqdn = $flags & NI_NOFQDN(); $flags &= ~NI_NOFQDN(); - my $flag_namereqd = $flags & NI_NAMEREQD(); $flags &= ~NI_NAMEREQD(); - my $flag_dgram = $flags & NI_DGRAM() ; $flags &= ~NI_DGRAM(); - - $flags & (NI_IDN()|NI_IDN_ALLOW_UNASSIGNED()|NI_IDN_USE_STD3_ASCII_RULES()) and - croak "Socket::getnameinfo() does not support IDN"; - - $flags == 0 or return fake_makeerr( EAI_BADFLAGS() ); - - $xflags ||= 0; - - my $node; - if( $xflags & NIx_NOHOST ) { - $node = undef; - } - elsif( $flag_numerichost ) { - $node = Socket::inet_ntoa( $inetaddr ); - } - else { - $node = gethostbyaddr( $inetaddr, $family ); - if( !defined $node ) { - return fake_makeerr( EAI_NONAME() ) if $flag_namereqd; - $node = Socket::inet_ntoa( $inetaddr ); - } - elsif( $flag_nofqdn ) { - my ( $shortname ) = split m/\./, $node; - my ( $fqdn ) = gethostbyname $shortname; - $node = $shortname if defined $fqdn and $fqdn eq $node; - } - } - - my $service; - if( $xflags & NIx_NOSERV ) { - $service = undef; - } - elsif( $flag_numericserv ) { - $service = "$port"; - } - else { - my $protname = $flag_dgram ? "udp" : ""; - $service = getservbyport( $port, $protname ); - if( !defined $service ) { - $service = "$port"; - } - } - - return ( fake_makeerr( 0 ), $node, $service ); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Socket6.pm b/software/Slic3r-1.3.0.64bit/lib/Socket6.pm deleted file mode 100644 index 7934e02d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Socket6.pm +++ /dev/null @@ -1,135 +0,0 @@ -#line 1 "Socket6.pm" -# Copyright (C) 2000-2016 Hajimu UMEMOTO . -# All rights reserved. -# -# This module is based on perl5.005_55-v6-19990721 written by KAME -# Project. -# -# Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. Neither the name of the project nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. - -# $Id: Socket6.pm 683 2016-07-11 05:45:26Z ume $ - -package Socket6; - -use strict; -use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $AUTOLOAD); -$VERSION = "0.28"; - -#line 212 - -use Carp; - -use base qw(Exporter DynaLoader); - -@EXPORT = qw( - inet_pton inet_ntop pack_sockaddr_in6 pack_sockaddr_in6_all - unpack_sockaddr_in6 unpack_sockaddr_in6_all sockaddr_in6 - gethostbyname2 getaddrinfo getnameinfo - in6addr_any in6addr_loopback - gai_strerror getipnodebyname getipnodebyaddr - AI_ADDRCONFIG - AI_ALL - AI_CANONNAME - AI_NUMERICHOST - AI_NUMERICSERV - AI_DEFAULT - AI_MASK - AI_PASSIVE - AI_V4MAPPED - AI_V4MAPPED_CFG - EAI_ADDRFAMILY - EAI_AGAIN - EAI_BADFLAGS - EAI_FAIL - EAI_FAMILY - EAI_MEMORY - EAI_NODATA - EAI_NONAME - EAI_SERVICE - EAI_SOCKTYPE - EAI_SYSTEM - EAI_BADHINTS - EAI_PROTOCOL - IP_AUTH_TRANS_LEVEL - IP_AUTH_NETWORK_LEVEL - IP_ESP_TRANS_LEVEL - IP_ESP_NETWORK_LEVEL - IPPROTO_IP - IPPROTO_IPV6 - IPSEC_LEVEL_AVAIL - IPSEC_LEVEL_BYPASS - IPSEC_LEVEL_DEFAULT - IPSEC_LEVEL_NONE - IPSEC_LEVEL_REQUIRE - IPSEC_LEVEL_UNIQUE - IPSEC_LEVEL_USE - IPV6_AUTH_TRANS_LEVEL - IPV6_AUTH_NETWORK_LEVEL - IPV6_ESP_NETWORK_LEVEL - IPV6_ESP_TRANS_LEVEL - NI_NOFQDN - NI_NUMERICHOST - NI_NAMEREQD - NI_NUMERICSERV - NI_DGRAM - NI_WITHSCOPEID -); -push @EXPORT, qw(AF_INET6) unless defined eval {Socket::AF_INET6()}; -push @EXPORT, qw(PF_INET6) unless defined eval {Socket::PF_INET6()}; - -@EXPORT_OK = qw(AF_INET6 PF_INET6); - -%EXPORT_TAGS = ( - all => [@EXPORT], -); - -sub sockaddr_in6 { - if (wantarray) { - croak "usage: (port,iaddr) = sockaddr_in6(sin_sv)" unless @_ == 1; - unpack_sockaddr_in6(@_); - } else { - croak "usage: sin_sv = sockaddr_in6(port,iaddr))" unless @_ == 2; - pack_sockaddr_in6(@_); - } -} - -sub AUTOLOAD { - my($constname); - ($constname = $AUTOLOAD) =~ s/.*:://o; - $! = 0; - my $val = constant($constname, @_ ? $_[0] : 0); - if ($! != 0) { - croak "Your vendor has not defined Socket macro $constname, used"; - } - eval "sub $AUTOLOAD { $val }"; - goto &$AUTOLOAD; -} - -bootstrap Socket6 $VERSION; - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Storable.pm b/software/Slic3r-1.3.0.64bit/lib/Storable.pm deleted file mode 100644 index 7136ab3b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Storable.pm +++ /dev/null @@ -1,436 +0,0 @@ -#line 1 "Storable.pm" -# -# Copyright (c) 1995-2001, Raphael Manfredi -# Copyright (c) 2002-2014 by the Perl 5 Porters -# -# You may redistribute only under the same terms as Perl 5, as specified -# in the README file that comes with the distribution. -# - -require XSLoader; -require Exporter; -package Storable; @ISA = qw(Exporter); - -@EXPORT = qw(store retrieve); -@EXPORT_OK = qw( - nstore store_fd nstore_fd fd_retrieve - freeze nfreeze thaw - dclone - retrieve_fd - lock_store lock_nstore lock_retrieve - file_magic read_magic -); - -use vars qw($canonical $forgive_me $VERSION); - -$VERSION = '2.56_01'; - -BEGIN { - if (eval { - local $SIG{__DIE__}; - local @INC = @INC; - pop @INC if $INC[-1] eq '.'; - require Log::Agent; - 1; - }) { - Log::Agent->import; - } - # - # Use of Log::Agent is optional. If it hasn't imported these subs then - # provide a fallback implementation. - # - unless ($Storable::{logcroak} && *{$Storable::{logcroak}}{CODE}) { - require Carp; - *logcroak = sub { - Carp::croak(@_); - }; - } - unless ($Storable::{logcarp} && *{$Storable::{logcarp}}{CODE}) { - require Carp; - *logcarp = sub { - Carp::carp(@_); - }; - } -} - -# -# They might miss :flock in Fcntl -# - -BEGIN { - if (eval { require Fcntl; 1 } && exists $Fcntl::EXPORT_TAGS{'flock'}) { - Fcntl->import(':flock'); - } else { - eval q{ - sub LOCK_SH () {1} - sub LOCK_EX () {2} - }; - } -} - -sub CLONE { - # clone context under threads - Storable::init_perinterp(); -} - -# By default restricted hashes are downgraded on earlier perls. - -$Storable::downgrade_restricted = 1; -$Storable::accept_future_minor = 1; - -XSLoader::load('Storable', $Storable::VERSION); - -# -# Determine whether locking is possible, but only when needed. -# - -sub CAN_FLOCK; my $CAN_FLOCK; sub CAN_FLOCK { - return $CAN_FLOCK if defined $CAN_FLOCK; - require Config; import Config; - return $CAN_FLOCK = - $Config{'d_flock'} || - $Config{'d_fcntl_can_lock'} || - $Config{'d_lockf'}; -} - -sub show_file_magic { - print <4 byte >0 (net-order %d) ->>4 byte &01 (network-ordered) ->>4 byte =3 (major 1) ->>4 byte =2 (major 1) - -0 string pst0 perl Storable(v0.7) data ->4 byte >0 ->>4 byte &01 (network-ordered) ->>4 byte =5 (major 2) ->>4 byte =4 (major 2) ->>5 byte >0 (minor %d) -EOM -} - -sub file_magic { - require IO::File; - - my $file = shift; - my $fh = IO::File->new; - open($fh, "<". $file) || die "Can't open '$file': $!"; - binmode($fh); - defined(sysread($fh, my $buf, 32)) || die "Can't read from '$file': $!"; - close($fh); - - $file = "./$file" unless $file; # ensure TRUE value - - return read_magic($buf, $file); -} - -sub read_magic { - my($buf, $file) = @_; - my %info; - - my $buflen = length($buf); - my $magic; - if ($buf =~ s/^(pst0|perl-store)//) { - $magic = $1; - $info{file} = $file || 1; - } - else { - return undef if $file; - $magic = ""; - } - - return undef unless length($buf); - - my $net_order; - if ($magic eq "perl-store" && ord(substr($buf, 0, 1)) > 1) { - $info{version} = -1; - $net_order = 0; - } - else { - $buf =~ s/(.)//s; - my $major = (ord $1) >> 1; - return undef if $major > 4; # sanity (assuming we never go that high) - $info{major} = $major; - $net_order = (ord $1) & 0x01; - if ($major > 1) { - return undef unless $buf =~ s/(.)//s; - my $minor = ord $1; - $info{minor} = $minor; - $info{version} = "$major.$minor"; - $info{version_nv} = sprintf "%d.%03d", $major, $minor; - } - else { - $info{version} = $major; - } - } - $info{version_nv} ||= $info{version}; - $info{netorder} = $net_order; - - unless ($net_order) { - return undef unless $buf =~ s/(.)//s; - my $len = ord $1; - return undef unless length($buf) >= $len; - return undef unless $len == 4 || $len == 8; # sanity - @info{qw(byteorder intsize longsize ptrsize)} - = unpack "a${len}CCC", $buf; - (substr $buf, 0, $len + 3) = ''; - if ($info{version_nv} >= 2.002) { - return undef unless $buf =~ s/(.)//s; - $info{nvsize} = ord $1; - } - } - $info{hdrsize} = $buflen - length($buf); - - return \%info; -} - -sub BIN_VERSION_NV { - sprintf "%d.%03d", BIN_MAJOR(), BIN_MINOR(); -} - -sub BIN_WRITE_VERSION_NV { - sprintf "%d.%03d", BIN_MAJOR(), BIN_WRITE_MINOR(); -} - -# -# store -# -# Store target object hierarchy, identified by a reference to its root. -# The stored object tree may later be retrieved to memory via retrieve. -# Returns undef if an I/O error occurred, in which case the file is -# removed. -# -sub store { - return _store(\&pstore, @_, 0); -} - -# -# nstore -# -# Same as store, but in network order. -# -sub nstore { - return _store(\&net_pstore, @_, 0); -} - -# -# lock_store -# -# Same as store, but flock the file first (advisory locking). -# -sub lock_store { - return _store(\&pstore, @_, 1); -} - -# -# lock_nstore -# -# Same as nstore, but flock the file first (advisory locking). -# -sub lock_nstore { - return _store(\&net_pstore, @_, 1); -} - -# Internal store to file routine -sub _store { - my $xsptr = shift; - my $self = shift; - my ($file, $use_locking) = @_; - logcroak "not a reference" unless ref($self); - logcroak "wrong argument number" unless @_ == 2; # No @foo in arglist - local *FILE; - if ($use_locking) { - open(FILE, ">>$file") || logcroak "can't write into $file: $!"; - unless (&CAN_FLOCK) { - logcarp - "Storable::lock_store: fcntl/flock emulation broken on $^O"; - return undef; - } - flock(FILE, LOCK_EX) || - logcroak "can't get exclusive lock on $file: $!"; - truncate FILE, 0; - # Unlocking will happen when FILE is closed - } else { - open(FILE, ">$file") || logcroak "can't create $file: $!"; - } - binmode FILE; # Archaic systems... - my $da = $@; # Don't mess if called from exception handler - my $ret; - # Call C routine nstore or pstore, depending on network order - eval { $ret = &$xsptr(*FILE, $self) }; - # close will return true on success, so the or short-circuits, the () - # expression is true, and for that case the block will only be entered - # if $@ is true (ie eval failed) - # if close fails, it returns false, $ret is altered, *that* is (also) - # false, so the () expression is false, !() is true, and the block is - # entered. - if (!(close(FILE) or undef $ret) || $@) { - unlink($file) or warn "Can't unlink $file: $!\n"; - } - logcroak $@ if $@ =~ s/\.?\n$/,/; - $@ = $da; - return $ret; -} - -# -# store_fd -# -# Same as store, but perform on an already opened file descriptor instead. -# Returns undef if an I/O error occurred. -# -sub store_fd { - return _store_fd(\&pstore, @_); -} - -# -# nstore_fd -# -# Same as store_fd, but in network order. -# -sub nstore_fd { - my ($self, $file) = @_; - return _store_fd(\&net_pstore, @_); -} - -# Internal store routine on opened file descriptor -sub _store_fd { - my $xsptr = shift; - my $self = shift; - my ($file) = @_; - logcroak "not a reference" unless ref($self); - logcroak "too many arguments" unless @_ == 1; # No @foo in arglist - my $fd = fileno($file); - logcroak "not a valid file descriptor" unless defined $fd; - my $da = $@; # Don't mess if called from exception handler - my $ret; - # Call C routine nstore or pstore, depending on network order - eval { $ret = &$xsptr($file, $self) }; - logcroak $@ if $@ =~ s/\.?\n$/,/; - local $\; print $file ''; # Autoflush the file if wanted - $@ = $da; - return $ret; -} - -# -# freeze -# -# Store object and its hierarchy in memory and return a scalar -# containing the result. -# -sub freeze { - _freeze(\&mstore, @_); -} - -# -# nfreeze -# -# Same as freeze but in network order. -# -sub nfreeze { - _freeze(\&net_mstore, @_); -} - -# Internal freeze routine -sub _freeze { - my $xsptr = shift; - my $self = shift; - logcroak "not a reference" unless ref($self); - logcroak "too many arguments" unless @_ == 0; # No @foo in arglist - my $da = $@; # Don't mess if called from exception handler - my $ret; - # Call C routine mstore or net_mstore, depending on network order - eval { $ret = &$xsptr($self) }; - logcroak $@ if $@ =~ s/\.?\n$/,/; - $@ = $da; - return $ret ? $ret : undef; -} - -# -# retrieve -# -# Retrieve object hierarchy from disk, returning a reference to the root -# object of that tree. -# -sub retrieve { - _retrieve($_[0], 0); -} - -# -# lock_retrieve -# -# Same as retrieve, but with advisory locking. -# -sub lock_retrieve { - _retrieve($_[0], 1); -} - -# Internal retrieve routine -sub _retrieve { - my ($file, $use_locking) = @_; - local *FILE; - open(FILE, $file) || logcroak "can't open $file: $!"; - binmode FILE; # Archaic systems... - my $self; - my $da = $@; # Could be from exception handler - if ($use_locking) { - unless (&CAN_FLOCK) { - logcarp - "Storable::lock_store: fcntl/flock emulation broken on $^O"; - return undef; - } - flock(FILE, LOCK_SH) || logcroak "can't get shared lock on $file: $!"; - # Unlocking will happen when FILE is closed - } - eval { $self = pretrieve(*FILE) }; # Call C routine - close(FILE); - logcroak $@ if $@ =~ s/\.?\n$/,/; - $@ = $da; - return $self; -} - -# -# fd_retrieve -# -# Same as retrieve, but perform from an already opened file descriptor instead. -# -sub fd_retrieve { - my ($file) = @_; - my $fd = fileno($file); - logcroak "not a valid file descriptor" unless defined $fd; - my $self; - my $da = $@; # Could be from exception handler - eval { $self = pretrieve($file) }; # Call C routine - logcroak $@ if $@ =~ s/\.?\n$/,/; - $@ = $da; - return $self; -} - -sub retrieve_fd { &fd_retrieve } # Backward compatibility - -# -# thaw -# -# Recreate objects in memory from an existing frozen image created -# by freeze. If the frozen image passed is undef, return undef. -# -sub thaw { - my ($frozen) = @_; - return undef unless defined $frozen; - my $self; - my $da = $@; # Could be from exception handler - eval { $self = mretrieve($frozen) }; # Call C routine - logcroak $@ if $@ =~ s/\.?\n$/,/; - $@ = $da; - return $self; -} - -1; -__END__ - -#line 1238 diff --git a/software/Slic3r-1.3.0.64bit/lib/Sub/Defer.pm b/software/Slic3r-1.3.0.64bit/lib/Sub/Defer.pm deleted file mode 100644 index ecf000d5..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Sub/Defer.pm +++ /dev/null @@ -1,153 +0,0 @@ -#line 1 "Sub/Defer.pm" -package Sub::Defer; -use strict; -use warnings; -use Exporter qw(import); -use Scalar::Util qw(weaken); -use Carp qw(croak); - -our $VERSION = '2.003001'; -$VERSION = eval $VERSION; - -our @EXPORT = qw(defer_sub undefer_sub undefer_all); -our @EXPORT_OK = qw(undefer_package defer_info); - -our %DEFERRED; - -sub _getglob { no strict 'refs'; \*{$_[0]} } - -BEGIN { - my $no_subname; - *_subname - = defined &Sub::Util::set_subname ? \&Sub::Util::set_subname - : defined &Sub::Name::subname ? \&Sub::Name::subname - : (eval { require Sub::Util } && defined &Sub::Util::set_subname) ? \&Sub::Util::set_subname - : (eval { require Sub::Name } && defined &Sub::Name::subname ) ? \&Sub::Name::subname - : ($no_subname = 1, sub { $_[1] }); - *_CAN_SUBNAME = $no_subname ? sub(){0} : sub(){1}; -} - -sub _name_coderef { - shift if @_ > 2; # three args is (target, name, sub) - _CAN_SUBNAME ? _subname(@_) : $_[1]; -} - -sub _install_coderef { - my ($glob, $code) = (_getglob($_[0]), _name_coderef(@_)); - no warnings 'redefine'; - if (*{$glob}{CODE}) { - *{$glob} = $code; - } - # perl will sometimes warn about mismatched prototypes coming from the - # inheritance cache, so disable them if we aren't redefining a sub - else { - no warnings 'prototype'; - *{$glob} = $code; - } -} - -sub undefer_sub { - my ($deferred) = @_; - my ($target, $maker, $undeferred_ref) = @{ - $DEFERRED{$deferred}||return $deferred - }; - return ${$undeferred_ref} - if ${$undeferred_ref}; - ${$undeferred_ref} = my $made = $maker->(); - - # make sure the method slot has not changed since deferral time - if (defined($target) && $deferred eq *{_getglob($target)}{CODE}||'') { - no warnings 'redefine'; - - # I believe $maker already evals with the right package/name, so that - # _install_coderef calls are not necessary --ribasushi - *{_getglob($target)} = $made; - } - $DEFERRED{$made} = $DEFERRED{$deferred}; - weaken $DEFERRED{$made} - unless $target; - - return $made; -} - -sub undefer_all { - undefer_sub($_) for keys %DEFERRED; - return; -} - -sub undefer_package { - my $package = shift; - undefer_sub($_) - for grep { - my $name = $DEFERRED{$_} && $DEFERRED{$_}[0]; - $name && $name =~ /^${package}::[^:]+$/ - } keys %DEFERRED; - return; -} - -sub defer_info { - my ($deferred) = @_; - my $info = $DEFERRED{$deferred||''} or return undef; - [ @$info ]; -} - -sub defer_sub { - my ($target, $maker, $options) = @_; - my $package; - my $subname; - ($package, $subname) = $target =~ /^(.*)::([^:]+)$/ - or croak "$target is not a fully qualified sub name!" - if $target; - $package ||= $options && $options->{package} || caller; - my @attributes = @{$options && $options->{attributes} || []}; - my $deferred; - my $undeferred; - my $deferred_info = [ $target, $maker, \$undeferred ]; - if (@attributes || $target && !_CAN_SUBNAME) { - my $code - = q[#line ].(__LINE__+2).q[ "].__FILE__.qq["\n] - . qq[package $package;\n] - . ($target ? "sub $subname" : '+sub') . join(' ', map ":$_", @attributes) - . q[ { - package Sub::Defer; - # uncoverable subroutine - # uncoverable statement - $undeferred ||= undefer_sub($deferred_info->[3]); - goto &$undeferred; # uncoverable statement - $undeferred; # fake lvalue return - }]."\n" - . ($target ? "\\&$subname" : ''); - my $e; - $deferred = do { - no warnings qw(redefine closure); - local $@; - eval $code or $e = $@; # uncoverable branch true - }; - die $e if defined $e; # uncoverable branch true - } - else { - # duplicated from above - $deferred = sub { - $undeferred ||= undefer_sub($deferred_info->[3]); - goto &$undeferred; - }; - _install_coderef($target, $deferred) - if $target; - } - weaken($deferred_info->[3] = $deferred); - weaken($DEFERRED{$deferred} = $deferred_info); - return $deferred; -} - -sub CLONE { - %DEFERRED = map { defined $_ && $_->[3] ? ($_->[3] => $_) : () } values %DEFERRED; - foreach my $info (values %DEFERRED) { - weaken($info) - unless $info->[0] && ${$info->[2]}; - } -} - -1; -__END__ - -#line 234 diff --git a/software/Slic3r-1.3.0.64bit/lib/Sub/Exporter.pm b/software/Slic3r-1.3.0.64bit/lib/Sub/Exporter.pm deleted file mode 100644 index 4a16eeac..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Sub/Exporter.pm +++ /dev/null @@ -1,489 +0,0 @@ -#line 1 "Sub/Exporter.pm" -use 5.006; -use strict; -use warnings; -package Sub::Exporter; -{ - $Sub::Exporter::VERSION = '0.987'; -} -# ABSTRACT: a sophisticated exporter for custom-built routines - -use Carp (); -use Data::OptList 0.100 (); -use Params::Util 0.14 (); # _CODELIKE -use Sub::Install 0.92 (); - - -# Given a potential import name, this returns the group name -- if it's got a -# group prefix. -sub _group_name { - my ($name) = @_; - - return if (index q{-:}, (substr $name, 0, 1)) == -1; - return substr $name, 1; -} - -# \@groups is a canonicalized opt list of exports and groups this returns -# another canonicalized opt list with groups replaced with relevant exports. -# \%seen is groups we've already expanded and can ignore. -# \%merge is merged options from the group we're descending through. -sub _expand_groups { - my ($class, $config, $groups, $collection, $seen, $merge) = @_; - $seen ||= {}; - $merge ||= {}; - my @groups = @$groups; - - for my $i (reverse 0 .. $#groups) { - if (my $group_name = _group_name($groups[$i][0])) { - my $seen = { %$seen }; # faux-dynamic scoping - - splice @groups, $i, 1, - _expand_group($class, $config, $groups[$i], $collection, $seen, $merge); - } else { - # there's nothing to munge in this export's args - next unless my %merge = %$merge; - - # we have things to merge in; do so - my $prefix = (delete $merge{-prefix}) || ''; - my $suffix = (delete $merge{-suffix}) || ''; - - if ( - Params::Util::_CODELIKE($groups[$i][1]) ## no critic Private - or - Params::Util::_SCALAR0($groups[$i][1]) ## no critic Private - ) { - # this entry was build by a group generator - $groups[$i][0] = $prefix . $groups[$i][0] . $suffix; - } else { - my $as - = ref $groups[$i][1]{-as} ? $groups[$i][1]{-as} - : $groups[$i][1]{-as} ? $prefix . $groups[$i][1]{-as} . $suffix - : $prefix . $groups[$i][0] . $suffix; - - $groups[$i][1] = { %{ $groups[$i][1] }, %merge, -as => $as }; - } - } - } - - return \@groups; -} - -# \@group is a name/value pair from an opt list. -sub _expand_group { - my ($class, $config, $group, $collection, $seen, $merge) = @_; - $merge ||= {}; - - my ($group_name, $group_arg) = @$group; - $group_name = _group_name($group_name); - - Carp::croak qq(group "$group_name" is not exported by the $class module) - unless exists $config->{groups}{$group_name}; - - return if $seen->{$group_name}++; - - if (ref $group_arg) { - my $prefix = (delete $merge->{-prefix}||'') . ($group_arg->{-prefix}||''); - my $suffix = ($group_arg->{-suffix}||'') . (delete $merge->{-suffix}||''); - $merge = { - %$merge, - %$group_arg, - ($prefix ? (-prefix => $prefix) : ()), - ($suffix ? (-suffix => $suffix) : ()), - }; - } - - my $exports = $config->{groups}{$group_name}; - - if ( - Params::Util::_CODELIKE($exports) ## no critic Private - or - Params::Util::_SCALAR0($exports) ## no critic Private - ) { - # I'm not very happy with this code for hiding -prefix and -suffix, but - # it's needed, and I'm not sure, offhand, how to make it better. - # -- rjbs, 2006-12-05 - my $group_arg = $merge ? { %$merge } : {}; - delete $group_arg->{-prefix}; - delete $group_arg->{-suffix}; - - my $group = Params::Util::_CODELIKE($exports) ## no critic Private - ? $exports->($class, $group_name, $group_arg, $collection) - : $class->$$exports($group_name, $group_arg, $collection); - - Carp::croak qq(group generator "$group_name" did not return a hashref) - if ref $group ne 'HASH'; - - my $stuff = [ map { [ $_ => $group->{$_} ] } keys %$group ]; - return @{ - _expand_groups($class, $config, $stuff, $collection, $seen, $merge) - }; - } else { - $exports - = Data::OptList::mkopt($exports, "$group_name exports"); - - return @{ - _expand_groups($class, $config, $exports, $collection, $seen, $merge) - }; - } -} - -sub _mk_collection_builder { - my ($col, $etc) = @_; - my ($config, $import_args, $class, $into) = @$etc; - - my %seen; - sub { - my ($collection) = @_; - my ($name, $value) = @$collection; - - Carp::croak "collection $name provided multiple times in import" - if $seen{ $name }++; - - if (ref(my $hook = $config->{collectors}{$name})) { - my $arg = { - name => $name, - config => $config, - import_args => $import_args, - class => $class, - into => $into, - }; - - my $error_msg = "collection $name failed validation"; - if (Params::Util::_SCALAR0($hook)) { ## no critic Private - Carp::croak $error_msg unless $class->$$hook($value, $arg); - } else { - Carp::croak $error_msg unless $hook->($value, $arg); - } - } - - $col->{ $name } = $value; - } -} - -# Given a config and pre-canonicalized importer args, remove collections from -# the args and return them. -sub _collect_collections { - my ($config, $import_args, $class, $into) = @_; - - my @collections - = map { splice @$import_args, $_, 1 } - grep { exists $config->{collectors}{ $import_args->[$_][0] } } - reverse 0 .. $#$import_args; - - unshift @collections, [ INIT => {} ] if $config->{collectors}{INIT}; - - my $col = {}; - my $builder = _mk_collection_builder($col, \@_); - for my $collection (@collections) { - $builder->($collection) - } - - return $col; -} - - -sub setup_exporter { - my ($config) = @_; - - Carp::croak 'into and into_level may not both be supplied to exporter' - if exists $config->{into} and exists $config->{into_level}; - - my $as = delete $config->{as} || 'import'; - my $into - = exists $config->{into} ? delete $config->{into} - : exists $config->{into_level} ? caller(delete $config->{into_level}) - : caller(0); - - my $import = build_exporter($config); - - Sub::Install::reinstall_sub({ - code => $import, - into => $into, - as => $as, - }); -} - - -sub _key_intersection { - my ($x, $y) = @_; - my %seen = map { $_ => 1 } keys %$x; - my @names = grep { $seen{$_} } keys %$y; -} - -# Given the config passed to setup_exporter, which contains sugary opt list -# data, rewrite the opt lists into hashes, catch a few kinds of invalid -# configurations, and set up defaults. Since the config is a reference, it's -# rewritten in place. -my %valid_config_key; -BEGIN { - %valid_config_key = - map { $_ => 1 } - qw(as collectors installer generator exports groups into into_level), - qw(exporter), # deprecated -} - -sub _assert_collector_names_ok { - my ($collectors) = @_; - - for my $reserved_name (grep { /\A[_A-Z]+\z/ } keys %$collectors) { - Carp::croak "unknown reserved collector name: $reserved_name" - if $reserved_name ne 'INIT'; - } -} - -sub _rewrite_build_config { - my ($config) = @_; - - if (my @keys = grep { not exists $valid_config_key{$_} } keys %$config) { - Carp::croak "unknown options (@keys) passed to Sub::Exporter"; - } - - Carp::croak q(into and into_level may not both be supplied to exporter) - if exists $config->{into} and exists $config->{into_level}; - - # XXX: Remove after deprecation period. - if ($config->{exporter}) { - Carp::cluck "'exporter' argument to build_exporter is deprecated. Use 'installer' instead; the semantics are identical."; - $config->{installer} = delete $config->{exporter}; - } - - Carp::croak q(into and into_level may not both be supplied to exporter) - if exists $config->{into} and exists $config->{into_level}; - - for (qw(exports collectors)) { - $config->{$_} = Data::OptList::mkopt_hash( - $config->{$_}, - $_, - [ 'CODE', 'SCALAR' ], - ); - } - - _assert_collector_names_ok($config->{collectors}); - - if (my @names = _key_intersection(@$config{qw(exports collectors)})) { - Carp::croak "names (@names) used in both collections and exports"; - } - - $config->{groups} = Data::OptList::mkopt_hash( - $config->{groups}, - 'groups', - [ - 'HASH', # standard opt list - 'ARRAY', # standard opt list - 'CODE', # group generator - 'SCALAR', # name of group generation method - ] - ); - - # by default, export nothing - $config->{groups}{default} ||= []; - - # by default, build an all-inclusive 'all' group - $config->{groups}{all} ||= [ keys %{ $config->{exports} } ]; - - $config->{generator} ||= \&default_generator; - $config->{installer} ||= \&default_installer; -} - -sub build_exporter { - my ($config) = @_; - - _rewrite_build_config($config); - - my $import = sub { - my ($class) = shift; - - # XXX: clean this up -- rjbs, 2006-03-16 - my $special = (ref $_[0]) ? shift(@_) : {}; - Carp::croak q(into and into_level may not both be supplied to exporter) - if exists $special->{into} and exists $special->{into_level}; - - if ($special->{exporter}) { - Carp::cluck "'exporter' special import argument is deprecated. Use 'installer' instead; the semantics are identical."; - $special->{installer} = delete $special->{exporter}; - } - - my $into - = defined $special->{into} ? delete $special->{into} - : defined $special->{into_level} ? caller(delete $special->{into_level}) - : defined $config->{into} ? $config->{into} - : defined $config->{into_level} ? caller($config->{into_level}) - : caller(0); - - my $generator = delete $special->{generator} || $config->{generator}; - my $installer = delete $special->{installer} || $config->{installer}; - - # this builds a AOA, where the inner arrays are [ name => value_ref ] - my $import_args = Data::OptList::mkopt([ @_ ]); - - # is this right? defaults first or collectors first? -- rjbs, 2006-06-24 - $import_args = [ [ -default => undef ] ] unless @$import_args; - - my $collection = _collect_collections($config, $import_args, $class, $into); - - my $to_import = _expand_groups($class, $config, $import_args, $collection); - - # now, finally $import_arg is really the "to do" list - _do_import( - { - class => $class, - col => $collection, - config => $config, - into => $into, - generator => $generator, - installer => $installer, - }, - $to_import, - ); - }; - - return $import; -} - -sub _do_import { - my ($arg, $to_import) = @_; - - my @todo; - - for my $pair (@$to_import) { - my ($name, $import_arg) = @$pair; - - my ($generator, $as); - - if ($import_arg and Params::Util::_CODELIKE($import_arg)) { ## no critic - # This is the case when a group generator has inserted name/code pairs. - $generator = sub { $import_arg }; - $as = $name; - } else { - $import_arg = { $import_arg ? %$import_arg : () }; - - Carp::croak qq("$name" is not exported by the $arg->{class} module) - unless exists $arg->{config}{exports}{$name}; - - $generator = $arg->{config}{exports}{$name}; - - $as = exists $import_arg->{-as} ? (delete $import_arg->{-as}) : $name; - } - - my $code = $arg->{generator}->( - { - class => $arg->{class}, - name => $name, - arg => $import_arg, - col => $arg->{col}, - generator => $generator, - } - ); - - push @todo, $as, $code; - } - - $arg->{installer}->( - { - class => $arg->{class}, - into => $arg->{into}, - col => $arg->{col}, - }, - \@todo, - ); -} - -## Cute idea, possibly for future use: also supply an "unimport" for: -## no Module::Whatever qw(arg arg arg); -# sub _unexport { -# my (undef, undef, undef, undef, undef, $as, $into) = @_; -# -# if (ref $as eq 'SCALAR') { -# undef $$as; -# } elsif (ref $as) { -# Carp::croak "invalid reference type for $as: " . ref $as; -# } else { -# no strict 'refs'; -# delete &{$into . '::' . $as}; -# } -# } - - -sub default_generator { - my ($arg) = @_; - my ($class, $name, $generator) = @$arg{qw(class name generator)}; - - if (not defined $generator) { - my $code = $class->can($name) - or Carp::croak "can't locate exported subroutine $name via $class"; - return $code; - } - - # I considered making this "$class->$generator(" but it seems that - # overloading precedence would turn an overloaded-as-code generator object - # into a string before code. -- rjbs, 2006-06-11 - return $generator->($class, $name, $arg->{arg}, $arg->{col}) - if Params::Util::_CODELIKE($generator); ## no critic Private - - # This "must" be a scalar reference, to a generator method name. - # -- rjbs, 2006-12-05 - return $class->$$generator($name, $arg->{arg}, $arg->{col}); -} - - -sub default_installer { - my ($arg, $to_export) = @_; - - for (my $i = 0; $i < @$to_export; $i += 2) { - my ($as, $code) = @$to_export[ $i, $i+1 ]; - - # Allow as isa ARRAY to push onto an array? - # Allow into isa HASH to install name=>code into hash? - - if (ref $as eq 'SCALAR') { - $$as = $code; - } elsif (ref $as) { - Carp::croak "invalid reference type for $as: " . ref $as; - } else { - Sub::Install::reinstall_sub({ - code => $code, - into => $arg->{into}, - as => $as - }); - } - } -} - -sub default_exporter { - Carp::cluck "default_exporter is deprecated; call default_installer instead; the semantics are identical"; - goto &default_installer; -} - - -setup_exporter({ - exports => [ - qw(setup_exporter build_exporter), - _import => sub { build_exporter($_[2]) }, - ], - groups => { - all => [ qw(setup_exporter build_export) ], - }, - collectors => { -setup => \&_setup }, -}); - -sub _setup { - my ($value, $arg) = @_; - - if (ref $value eq 'HASH') { - push @{ $arg->{import_args} }, [ _import => { -as => 'import', %$value } ]; - return 1; - } elsif (ref $value eq 'ARRAY') { - push @{ $arg->{import_args} }, - [ _import => { -as => 'import', exports => $value } ]; - return 1; - } - return; -} - - - -"jn8:32"; # <-- magic true value - -__END__ - -#line 1109 diff --git a/software/Slic3r-1.3.0.64bit/lib/Sub/Exporter/Progressive.pm b/software/Slic3r-1.3.0.64bit/lib/Sub/Exporter/Progressive.pm deleted file mode 100644 index 344052f5..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Sub/Exporter/Progressive.pm +++ /dev/null @@ -1,109 +0,0 @@ -#line 1 "Sub/Exporter/Progressive.pm" -package Sub::Exporter::Progressive; -$Sub::Exporter::Progressive::VERSION = '0.001013'; -use strict; -use warnings; - -# ABSTRACT: Only use Sub::Exporter if you need it - -sub _croak { - require Carp; - &Carp::croak; -} - -sub import { - my ($self, @args) = @_; - - my $inner_target = caller; - my $export_data = sub_export_options($inner_target, @args); - - my $full_exporter; - no strict 'refs'; - no warnings 'once'; - @{"${inner_target}::EXPORT_OK"} = @{$export_data->{exports}}; - @{"${inner_target}::EXPORT"} = @{$export_data->{defaults}}; - %{"${inner_target}::EXPORT_TAGS"} = %{$export_data->{tags}}; - *{"${inner_target}::import"} = sub { - use strict; - my ($self, @args) = @_; - - if ( grep { - length ref $_ - or - $_ !~ / \A [:-]? \w+ \z /xm - } @args ) { - _croak 'your usage of Sub::Exporter::Progressive requires Sub::Exporter to be installed' - unless eval { require Sub::Exporter }; - $full_exporter ||= Sub::Exporter::build_exporter($export_data->{original}); - - goto $full_exporter; - } elsif ( defined( (my ($num) = grep { m/^\d/ } @args)[0] ) ) { - _croak "cannot export symbols with a leading digit: '$num'"; - } else { - require Exporter; - s/ \A - /:/xm for @args; - @_ = ($self, @args); - goto \&Exporter::import; - } - }; - return; -} - -my $too_complicated = <<'DEATH'; -You are using Sub::Exporter::Progressive, but the features your program uses from -Sub::Exporter cannot be implemented without Sub::Exporter, so you might as well -just use vanilla Sub::Exporter -DEATH - -sub sub_export_options { - my ($inner_target, $setup, $options) = @_; - - my @exports; - my @defaults; - my %tags; - - if ( ($setup||'') eq '-setup') { - my %options = %$options; - - OPTIONS: - for my $opt (keys %options) { - if ($opt eq 'exports') { - - _croak $too_complicated if ref $options{exports} ne 'ARRAY'; - @exports = @{$options{exports}}; - _croak $too_complicated if grep { length ref $_ } @exports; - - } elsif ($opt eq 'groups') { - %tags = %{$options{groups}}; - for my $tagset (values %tags) { - _croak $too_complicated if grep { - length ref $_ - or - $_ =~ / \A - (?! all \b ) /x - } @{$tagset}; - } - @defaults = @{$tags{default} || [] }; - } else { - _croak $too_complicated; - } - } - @{$_} = map { / \A [:-] all \z /x ? @exports : $_ } @{$_} for \@defaults, values %tags; - $tags{all} ||= [ @exports ]; - my %exports = map { $_ => 1 } @exports; - my @errors = grep { not $exports{$_} } @defaults; - _croak join(', ', @errors) . " is not exported by the $inner_target module\n" if @errors; - } - - return { - exports => \@exports, - defaults => \@defaults, - original => $options, - tags => \%tags, - }; -} - -1; - -__END__ - -#line 175 diff --git a/software/Slic3r-1.3.0.64bit/lib/Sub/Install.pm b/software/Slic3r-1.3.0.64bit/lib/Sub/Install.pm deleted file mode 100644 index 6ff74616..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Sub/Install.pm +++ /dev/null @@ -1,305 +0,0 @@ -#line 1 "Sub/Install.pm" -use strict; -use warnings; -package Sub::Install; -# ABSTRACT: install subroutines into packages easily -$Sub::Install::VERSION = '0.928'; -use Carp; -use Scalar::Util (); - -#pod =head1 SYNOPSIS -#pod -#pod use Sub::Install; -#pod -#pod Sub::Install::install_sub({ -#pod code => sub { ... }, -#pod into => $package, -#pod as => $subname -#pod }); -#pod -#pod =head1 DESCRIPTION -#pod -#pod This module makes it easy to install subroutines into packages without the -#pod unsightly mess of C or typeglobs lying about where just anyone can -#pod see them. -#pod -#pod =func install_sub -#pod -#pod Sub::Install::install_sub({ -#pod code => \&subroutine, -#pod into => "Finance::Shady", -#pod as => 'launder', -#pod }); -#pod -#pod This routine installs a given code reference into a package as a normal -#pod subroutine. The above is equivalent to: -#pod -#pod no strict 'refs'; -#pod *{"Finance::Shady" . '::' . "launder"} = \&subroutine; -#pod -#pod If C is not given, the sub is installed into the calling package. -#pod -#pod If C is not a code reference, it is looked for as an existing sub in the -#pod package named in the C parameter. If C is not given, it will look -#pod in the calling package. -#pod -#pod If C is not given, and if C is a name, C will default to C. -#pod If C is not given, but if C is a code ref, Sub::Install will try to -#pod find the name of the given code ref and use that as C. -#pod -#pod That means that this code: -#pod -#pod Sub::Install::install_sub({ -#pod code => 'twitch', -#pod from => 'Person::InPain', -#pod into => 'Person::Teenager', -#pod as => 'dance', -#pod }); -#pod -#pod is the same as: -#pod -#pod package Person::Teenager; -#pod -#pod Sub::Install::install_sub({ -#pod code => Person::InPain->can('twitch'), -#pod as => 'dance', -#pod }); -#pod -#pod =func reinstall_sub -#pod -#pod This routine behaves exactly like C>, but does not emit a -#pod warning if warnings are on and the destination is already defined. -#pod -#pod =cut - -sub _name_of_code { - my ($code) = @_; - require B; - my $name = B::svref_2object($code)->GV->NAME; - return $name unless $name =~ /\A__ANON__/; - return; -} - -# See also Params::Util, to which this code was donated. -sub _CODELIKE { - (Scalar::Util::reftype($_[0])||'') eq 'CODE' - || Scalar::Util::blessed($_[0]) - && (overload::Method($_[0],'&{}') ? $_[0] : undef); -} - -# do the heavy lifting -sub _build_public_installer { - my ($installer) = @_; - - sub { - my ($arg) = @_; - my ($calling_pkg) = caller(0); - - # I'd rather use ||= but I'm whoring for Devel::Cover. - for (qw(into from)) { $arg->{$_} = $calling_pkg unless $arg->{$_} } - - # This is the only absolutely required argument, in many cases. - Carp::croak "named argument 'code' is not optional" unless $arg->{code}; - - if (_CODELIKE($arg->{code})) { - $arg->{as} ||= _name_of_code($arg->{code}); - } else { - Carp::croak - "couldn't find subroutine named $arg->{code} in package $arg->{from}" - unless my $code = $arg->{from}->can($arg->{code}); - - $arg->{as} = $arg->{code} unless $arg->{as}; - $arg->{code} = $code; - } - - Carp::croak "couldn't determine name under which to install subroutine" - unless $arg->{as}; - - $installer->(@$arg{qw(into as code) }); - } -} - -# do the ugly work - -my $_misc_warn_re; -my $_redef_warn_re; -BEGIN { - $_misc_warn_re = qr/ - Prototype\ mismatch:\ sub\ .+? | - Constant subroutine .+? redefined - /x; - $_redef_warn_re = qr/Subroutine\ .+?\ redefined/x; -} - -my $eow_re; -BEGIN { $eow_re = qr/ at .+? line \d+\.\Z/ }; - -sub _do_with_warn { - my ($arg) = @_; - my $code = delete $arg->{code}; - my $wants_code = sub { - my $code = shift; - sub { - my $warn = $SIG{__WARN__} ? $SIG{__WARN__} : sub { warn @_ }; ## no critic - local $SIG{__WARN__} = sub { - my ($error) = @_; - for (@{ $arg->{suppress} }) { - return if $error =~ $_; - } - for (@{ $arg->{croak} }) { - if (my ($base_error) = $error =~ /\A($_) $eow_re/x) { - Carp::croak $base_error; - } - } - for (@{ $arg->{carp} }) { - if (my ($base_error) = $error =~ /\A($_) $eow_re/x) { - return $warn->(Carp::shortmess $base_error); - } - } - ($arg->{default} || $warn)->($error); - }; - $code->(@_); - }; - }; - return $wants_code->($code) if $code; - return $wants_code; -} - -sub _installer { - sub { - my ($pkg, $name, $code) = @_; - no strict 'refs'; ## no critic ProhibitNoStrict - *{"$pkg\::$name"} = $code; - return $code; - } -} - -BEGIN { - *_ignore_warnings = _do_with_warn({ - carp => [ $_misc_warn_re, $_redef_warn_re ] - }); - - *install_sub = _build_public_installer(_ignore_warnings(_installer)); - - *_carp_warnings = _do_with_warn({ - carp => [ $_misc_warn_re ], - suppress => [ $_redef_warn_re ], - }); - - *reinstall_sub = _build_public_installer(_carp_warnings(_installer)); - - *_install_fatal = _do_with_warn({ - code => _installer, - croak => [ $_redef_warn_re ], - }); -} - -#pod =func install_installers -#pod -#pod This routine is provided to allow Sub::Install compatibility with -#pod Sub::Installer. It installs C and C methods into -#pod the package named by its argument. -#pod -#pod Sub::Install::install_installers('Code::Builder'); # just for us, please -#pod Code::Builder->install_sub({ name => $code_ref }); -#pod -#pod Sub::Install::install_installers('UNIVERSAL'); # feeling lucky, punk? -#pod Anything::At::All->install_sub({ name => $code_ref }); -#pod -#pod The installed installers are similar, but not identical, to those provided by -#pod Sub::Installer. They accept a single hash as an argument. The key/value pairs -#pod are used as the C and C parameters to the C routine -#pod detailed above. The package name on which the method is called is used as the -#pod C parameter. -#pod -#pod Unlike Sub::Installer's C will not eval strings into code, but -#pod will look for named code in the calling package. -#pod -#pod =cut - -sub install_installers { - my ($into) = @_; - - for my $method (qw(install_sub reinstall_sub)) { - my $code = sub { - my ($package, $subs) = @_; - my ($caller) = caller(0); - my $return; - for (my ($name, $sub) = %$subs) { - $return = Sub::Install->can($method)->({ - code => $sub, - from => $caller, - into => $package, - as => $name - }); - } - return $return; - }; - install_sub({ code => $code, into => $into, as => $method }); - } -} - -#pod =head1 EXPORTS -#pod -#pod Sub::Install exports C and C only if they are -#pod requested. -#pod -#pod =head2 exporter -#pod -#pod Sub::Install has a never-exported subroutine called C, which is used -#pod to implement its C routine. It takes a hashref of named arguments, -#pod only one of which is currently recognize: C. This must be an arrayref -#pod of subroutines to offer for export. -#pod -#pod This routine is mainly for Sub::Install's own consumption. Instead, consider -#pod L. -#pod -#pod =cut - -sub exporter { - my ($arg) = @_; - - my %is_exported = map { $_ => undef } @{ $arg->{exports} }; - - sub { - my $class = shift; - my $target = caller; - for (@_) { - Carp::croak "'$_' is not exported by $class" if !exists $is_exported{$_}; - install_sub({ code => $_, from => $class, into => $target }); - } - } -} - -BEGIN { *import = exporter({ exports => [ qw(install_sub reinstall_sub) ] }); } - -#pod =head1 SEE ALSO -#pod -#pod =over -#pod -#pod =item L -#pod -#pod This module is (obviously) a reaction to Damian Conway's Sub::Installer, which -#pod does the same thing, but does it by getting its greasy fingers all over -#pod UNIVERSAL. I was really happy about the idea of making the installation of -#pod coderefs less ugly, but I couldn't bring myself to replace the ugliness of -#pod typeglobs and loosened strictures with the ugliness of UNIVERSAL methods. -#pod -#pod =item L -#pod -#pod This is a complete Exporter.pm replacement, built atop Sub::Install. -#pod -#pod =back -#pod -#pod =head1 EXTRA CREDITS -#pod -#pod Several of the tests are adapted from tests that shipped with Damian Conway's -#pod Sub-Installer distribution. -#pod -#pod =cut - -1; - -__END__ - -#line 452 diff --git a/software/Slic3r-1.3.0.64bit/lib/Sub/Quote.pm b/software/Slic3r-1.3.0.64bit/lib/Sub/Quote.pm deleted file mode 100644 index edee8e49..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Sub/Quote.pm +++ /dev/null @@ -1,245 +0,0 @@ -#line 1 "Sub/Quote.pm" -package Sub::Quote; - -sub _clean_eval { eval $_[0] } - -use strict; -use warnings; - -use Sub::Defer qw(defer_sub); -use Scalar::Util qw(weaken); -use Exporter qw(import); -use Carp qw(croak); -BEGIN { our @CARP_NOT = qw(Sub::Defer) } -use B (); -BEGIN { - *_HAVE_PERLSTRING = defined &B::perlstring ? sub(){1} : sub(){0}; -} - -our $VERSION = '2.003001'; -$VERSION = eval $VERSION; - -our @EXPORT = qw(quote_sub unquote_sub quoted_from_sub qsub); -our @EXPORT_OK = qw(quotify capture_unroll inlinify sanitize_identifier); - -our %QUOTED; - -sub quotify { - no warnings 'numeric'; - ! defined $_[0] ? 'undef()' - # numeric detection - : (length( (my $dummy = '') & $_[0] ) - && 0 + $_[0] eq $_[0] - && $_[0] * 0 == 0 - ) ? $_[0] - : _HAVE_PERLSTRING ? B::perlstring($_[0]) - : qq["\Q$_[0]\E"]; -} - -sub sanitize_identifier { - my $name = shift; - $name =~ s/([_\W])/sprintf('_%x', ord($1))/ge; - $name; -} - -sub capture_unroll { - my ($from, $captures, $indent) = @_; - join( - '', - map { - /^([\@\%\$])/ - or croak "capture key should start with \@, \% or \$: $_"; - (' ' x $indent).qq{my ${_} = ${1}{${from}->{${\quotify $_}}};\n}; - } keys %$captures - ); -} - -sub inlinify { - my ($code, $args, $extra, $local) = @_; - my $do = 'do { '.($extra||''); - if ($code =~ s/^(\s*package\s+([a-zA-Z0-9:]+);)//) { - $do .= $1; - } - if ($code =~ s{ - \A((?:\#\ BEGIN\ quote_sub\ PRELUDE\n.*?\#\ END\ quote_sub\ PRELUDE\n)?\s*) - (^\s*) my \s* \(([^)]+)\) \s* = \s* \@_; - }{}xms) { - my ($pre, $indent, $code_args) = ($1, $2, $3); - $do .= $pre; - if ($code_args ne $args) { - $do .= $indent . 'my ('.$code_args.') = ('.$args.'); '; - } - } - elsif ($local || $args ne '@_') { - $do .= ($local ? 'local ' : '').'@_ = ('.$args.'); '; - } - $do.$code.' }'; -} - -sub quote_sub { - # HOLY DWIMMERY, BATMAN! - # $name => $code => \%captures => \%options - # $name => $code => \%captures - # $name => $code - # $code => \%captures => \%options - # $code - my $options = - (ref($_[-1]) eq 'HASH' and ref($_[-2]) eq 'HASH') - ? pop - : {}; - my $captures = ref($_[-1]) eq 'HASH' ? pop : undef; - undef($captures) if $captures && !keys %$captures; - my $code = pop; - my $name = $_[0]; - if ($name) { - my $subname = $name; - my $package = $subname =~ s/(.*)::// ? $1 : caller; - $name = join '::', $package, $subname; - croak qq{package name "$package" too long!} - if length $package > 252; - croak qq{package name "$package" is not valid!} - unless $package =~ /^[^\d\W]\w*(?:::\w+)*$/; - croak qq{sub name "$subname" too long!} - if length $subname > 252; - croak qq{sub name "$subname" is not valid!} - unless $subname =~ /^[^\d\W]\w*$/; - } - my @caller = caller(0); - my $attributes = $options->{attributes}; - my $quoted_info = { - name => $name, - code => $code, - captures => $captures, - package => (exists $options->{package} ? $options->{package} : $caller[0]), - hints => (exists $options->{hints} ? $options->{hints} : $caller[8]), - warning_bits => (exists $options->{warning_bits} ? $options->{warning_bits} : $caller[9]), - hintshash => (exists $options->{hintshash} ? $options->{hintshash} : $caller[10]), - ($attributes ? (attributes => $attributes) : ()), - }; - my $unquoted; - weaken($quoted_info->{unquoted} = \$unquoted); - if ($options->{no_defer}) { - my $fake = \my $var; - local $QUOTED{$fake} = $quoted_info; - my $sub = unquote_sub($fake); - Sub::Defer::_install_coderef($name, $sub) if $name && !$options->{no_install}; - return $sub; - } - else { - my $deferred = defer_sub +($options->{no_install} ? undef : $name) => sub { - $unquoted if 0; - unquote_sub($quoted_info->{deferred}); - }, ($attributes ? { attributes => $attributes } : ()); - weaken($quoted_info->{deferred} = $deferred); - weaken($QUOTED{$deferred} = $quoted_info); - return $deferred; - } -} - -sub _context { - my $info = shift; - $info->{context} ||= do { - my ($package, $hints, $warning_bits, $hintshash) - = @{$info}{qw(package hints warning_bits hintshash)}; - - $info->{context} - ="# BEGIN quote_sub PRELUDE\n" - ."package $package;\n" - ."BEGIN {\n" - ." \$^H = ".quotify($hints).";\n" - ." \${^WARNING_BITS} = ".quotify($warning_bits).";\n" - ." \%^H = (\n" - . join('', map - " ".quotify($_)." => ".quotify($hintshash->{$_}).",\n", - keys %$hintshash) - ." );\n" - ."}\n" - ."# END quote_sub PRELUDE\n"; - }; -} - -sub quoted_from_sub { - my ($sub) = @_; - my $quoted_info = $QUOTED{$sub||''} or return undef; - my ($name, $code, $captures, $unquoted, $deferred) - = @{$quoted_info}{qw(name code captures unquoted deferred)}; - $code = _context($quoted_info) . $code; - $unquoted &&= $$unquoted; - if (($deferred && $deferred eq $sub) - || ($unquoted && $unquoted eq $sub)) { - return [ $name, $code, $captures, $unquoted, $deferred ]; - } - return undef; -} - -sub unquote_sub { - my ($sub) = @_; - my $quoted_info = $QUOTED{$sub} or return undef; - my $unquoted = $quoted_info->{unquoted}; - unless ($unquoted && $$unquoted) { - my ($name, $code, $captures, $package, $attributes) - = @{$quoted_info}{qw(name code captures package attributes)}; - - ($package, $name) = $name =~ /(.*)::(.*)/ - if $name; - - my %captures = $captures ? %$captures : (); - $captures{'$_UNQUOTED'} = \$unquoted; - $captures{'$_QUOTED'} = \$quoted_info; - - my $make_sub - = "{\n" - . capture_unroll("\$_[1]", \%captures, 2) - . " package ${package};\n" - . ( - $name - # disable the 'variable $x will not stay shared' warning since - # we're not letting it escape from this scope anyway so there's - # nothing trying to share it - ? " no warnings 'closure';\n sub ${name} " - : " \$\$_UNQUOTED = sub " - ) - . ($attributes ? join('', map ":$_ ", @$attributes) : '') . "{\n" - . " (\$_QUOTED,\$_UNQUOTED) if 0;\n" - . _context($quoted_info) - . $code - . " }".($name ? "\n \$\$_UNQUOTED = \\&${name}" : '') . ";\n" - . "}\n" - . "1;\n"; - $ENV{SUB_QUOTE_DEBUG} && warn $make_sub; - { - no strict 'refs'; - local *{"${package}::${name}"} if $name; - my ($success, $e); - { - local $@; - $success = _clean_eval($make_sub, \%captures); - $e = $@; - } - unless ($success) { - croak "Eval went very, very wrong:\n\n${make_sub}\n\n$e"; - } - weaken($QUOTED{$$unquoted} = $quoted_info); - } - } - $$unquoted; -} - -sub qsub ($) { - goto "e_sub; -} - -sub CLONE { - %QUOTED = map { defined $_ ? ( - $_->{unquoted} && ${$_->{unquoted}} ? (${ $_->{unquoted} } => $_) : (), - $_->{deferred} ? ($_->{deferred} => $_) : (), - ) : () } values %QUOTED; - weaken($_) for values %QUOTED; -} - -1; -__END__ - - - -#line 503 diff --git a/software/Slic3r-1.3.0.64bit/lib/Symbol.pm b/software/Slic3r-1.3.0.64bit/lib/Symbol.pm deleted file mode 100644 index 69ecad22..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Symbol.pm +++ /dev/null @@ -1,95 +0,0 @@ -#line 1 "Symbol.pm" -package Symbol; - -#line 80 - -BEGIN { require 5.005; } - -require Exporter; -@ISA = qw(Exporter); -@EXPORT = qw(gensym ungensym qualify qualify_to_ref); -@EXPORT_OK = qw(delete_package geniosym); - -$VERSION = '1.07'; - -my $genpkg = "Symbol::"; -my $genseq = 0; - -my %global = map {$_ => 1} qw(ARGV ARGVOUT ENV INC SIG STDERR STDIN STDOUT); - -# -# Note that we never _copy_ the glob; we just make a ref to it. -# If we did copy it, then SVf_FAKE would be set on the copy, and -# glob-specific behaviors (e.g. C<*$ref = \&func>) wouldn't work. -# -sub gensym () { - my $name = "GEN" . $genseq++; - my $ref = \*{$genpkg . $name}; - delete $$genpkg{$name}; - $ref; -} - -sub geniosym () { - my $sym = gensym(); - # force the IO slot to be filled - select(select $sym); - *$sym{IO}; -} - -sub ungensym ($) {} - -sub qualify ($;$) { - my ($name) = @_; - if (!ref($name) && index($name, '::') == -1 && index($name, "'") == -1) { - my $pkg; - # Global names: special character, "^xyz", or other. - if ($name =~ /^(([^a-z])|(\^[a-z_]+))\z/i || $global{$name}) { - # RGS 2001-11-05 : translate leading ^X to control-char - $name =~ s/^\^([a-z_])/'qq(\c'.$1.')'/eei; - $pkg = "main"; - } - else { - $pkg = (@_ > 1) ? $_[1] : caller; - } - $name = $pkg . "::" . $name; - } - $name; -} - -sub qualify_to_ref ($;$) { - return \*{ qualify $_[0], @_ > 1 ? $_[1] : caller }; -} - -# -# of Safe.pm lineage -# -sub delete_package ($) { - my $pkg = shift; - - # expand to full symbol table name if needed - - unless ($pkg =~ /^main::.*::$/) { - $pkg = "main$pkg" if $pkg =~ /^::/; - $pkg = "main::$pkg" unless $pkg =~ /^main::/; - $pkg .= '::' unless $pkg =~ /::$/; - } - - my($stem, $leaf) = $pkg =~ m/(.*::)(\w+::)$/; - my $stem_symtab = *{$stem}{HASH}; - return unless defined $stem_symtab and exists $stem_symtab->{$leaf}; - - - # free all the symbols in the package - - my $leaf_symtab = *{$stem_symtab->{$leaf}}{HASH}; - foreach my $name (keys %$leaf_symtab) { - undef *{$pkg . $name}; - } - - # delete the symbol table - - %$leaf_symtab = (); - delete $stem_symtab->{$leaf}; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Term/Cap.pm b/software/Slic3r-1.3.0.64bit/lib/Term/Cap.pm deleted file mode 100644 index 328df164..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Term/Cap.pm +++ /dev/null @@ -1,526 +0,0 @@ -#line 1 "Term/Cap.pm" -package Term::Cap; - -# Since the debugger uses Term::ReadLine which uses Term::Cap, we want -# to load as few modules as possible. This includes Carp.pm. -sub carp -{ - require Carp; - goto &Carp::carp; -} - -sub croak -{ - require Carp; - goto &Carp::croak; -} - -use strict; - -use vars qw($VERSION $VMS_TERMCAP); -use vars qw($termpat $state $first $entry); - -$VERSION = '1.17'; - -# TODO: -# support Berkeley DB termcaps -# force $FH into callers package? -# keep $FH in object at Tgetent time? - -#line 63 - -# Preload the default VMS termcap. -# If a different termcap is required then the text of one can be supplied -# in $Term::Cap::VMS_TERMCAP before Tgetent is called. - -if ( $^O eq 'VMS' ) -{ - chomp( my @entry = ); - $VMS_TERMCAP = join '', @entry; -} - -# Returns a list of termcap files to check. - -sub termcap_path -{ ## private - my @termcap_path; - - # $TERMCAP, if it's a filespec - push( @termcap_path, $ENV{TERMCAP} ) - if ( - ( exists $ENV{TERMCAP} ) - && ( - ( $^O eq 'os2' || $^O eq 'MSWin32' || $^O eq 'dos' ) - ? $ENV{TERMCAP} =~ /^[a-z]:[\\\/]/is - : $ENV{TERMCAP} =~ /^\//s - ) - ); - if ( ( exists $ENV{TERMPATH} ) && ( $ENV{TERMPATH} ) ) - { - - # Add the users $TERMPATH - push( @termcap_path, split( /(:|\s+)/, $ENV{TERMPATH} ) ); - } - else - { - - # Defaults - push( @termcap_path, - exists $ENV{'HOME'} ? $ENV{'HOME'} . '/.termcap' : undef, - '/etc/termcap', '/usr/share/misc/termcap', ); - } - - # return the list of those termcaps that exist - return grep { defined $_ && -f $_ } @termcap_path; -} - -#line 164 - -sub Tgetent -{ ## public -- static method - my $class = shift; - my ($self) = @_; - - $self = {} unless defined $self; - bless $self, $class; - - my ( $term, $cap, $search, $field, $max, $tmp_term, $TERMCAP ); - local ( $termpat, $state, $first, $entry ); # used inside eval - local $_; - - # Compute PADDING factor from OSPEED (to be used by Tpad) - if ( !$self->{OSPEED} ) - { - if ($^W) - { - carp "OSPEED was not set, defaulting to 9600"; - } - $self->{OSPEED} = 9600; - } - if ( $self->{OSPEED} < 16 ) - { - - # delays for old style speeds - my @pad = ( - 0, 200, 133.3, 90.9, 74.3, 66.7, 50, 33.3, - 16.7, 8.3, 5.5, 4.1, 2, 1, .5, .2 - ); - $self->{PADDING} = $pad[ $self->{OSPEED} ]; - } - else - { - $self->{PADDING} = 10000 / $self->{OSPEED}; - } - - unless ( $self->{TERM} ) - { - if ( $ENV{TERM} ) - { - $self->{TERM} = $ENV{TERM} ; - } - else - { - if ( $^O eq 'MSWin32' ) - { - $self->{TERM} = 'dumb'; - } - else - { - croak "TERM not set"; - } - } - } - - $term = $self->{TERM}; # $term is the term type we are looking for - - # $tmp_term is always the next term (possibly :tc=...:) we are looking for - $tmp_term = $self->{TERM}; - - # protect any pattern metacharacters in $tmp_term - $termpat = $tmp_term; - $termpat =~ s/(\W)/\\$1/g; - - my $foo = ( exists $ENV{TERMCAP} ? $ENV{TERMCAP} : '' ); - - # $entry is the extracted termcap entry - if ( ( $foo !~ m:^/:s ) && ( $foo =~ m/(^|\|)${termpat}[:|]/s ) ) - { - $entry = $foo; - } - - my @termcap_path = termcap_path(); - - if ( !@termcap_path && !$entry ) - { - - # last resort--fake up a termcap from terminfo - local $ENV{TERM} = $term; - - if ( $^O eq 'VMS' ) - { - $entry = $VMS_TERMCAP; - } - else - { - if ( grep { -x "$_/infocmp" } split /:/, $ENV{PATH} ) - { - eval { - my $tmp = `infocmp -C 2>/dev/null`; - $tmp =~ s/^#.*\n//gm; # remove comments - if ( ( $tmp !~ m%^/%s ) - && ( $tmp =~ /(^|\|)${termpat}[:|]/s ) ) - { - $entry = $tmp; - } - }; - warn "Can't run infocmp to get a termcap entry: $@" if $@; - } - else - { - # this is getting desperate now - if ( $self->{TERM} eq 'dumb' ) - { - $entry = 'dumb|80-column dumb tty::am::co#80::bl=^G:cr=^M:do=^J:sf=^J:'; - } - } - } - } - - croak "Can't find a valid termcap file" unless @termcap_path || $entry; - - $state = 1; # 0 == finished - # 1 == next file - # 2 == search again - - $first = 0; # first entry (keeps term name) - - $max = 32; # max :tc=...:'s - - if ($entry) - { - - # ok, we're starting with $TERMCAP - $first++; # we're the first entry - # do we need to continue? - if ( $entry =~ s/:tc=([^:]+):/:/ ) - { - $tmp_term = $1; - - # protect any pattern metacharacters in $tmp_term - $termpat = $tmp_term; - $termpat =~ s/(\W)/\\$1/g; - } - else - { - $state = 0; # we're already finished - } - } - - # This is eval'ed inside the while loop for each file - $search = q{ - while () { - next if /^\\t/ || /^#/; - if ($_ =~ m/(^|\\|)${termpat}[:|]/o) { - chomp; - s/^[^:]*:// if $first++; - $state = 0; - while ($_ =~ s/\\\\$//) { - defined(my $x = ) or last; - $_ .= $x; chomp; - } - last; - } - } - defined $entry or $entry = ''; - $entry .= $_ if $_; - }; - - while ( $state != 0 ) - { - if ( $state == 1 ) - { - - # get the next TERMCAP - $TERMCAP = shift @termcap_path - || croak "failed termcap lookup on $tmp_term"; - } - else - { - - # do the same file again - # prevent endless recursion - $max-- || croak "failed termcap loop at $tmp_term"; - $state = 1; # ok, maybe do a new file next time - } - - open( TERMCAP, "< $TERMCAP\0" ) || croak "open $TERMCAP: $!"; - eval $search; - die $@ if $@; - close TERMCAP; - - # If :tc=...: found then search this file again - $entry =~ s/:tc=([^:]+):/:/ && ( $tmp_term = $1, $state = 2 ); - - # protect any pattern metacharacters in $tmp_term - $termpat = $tmp_term; - $termpat =~ s/(\W)/\\$1/g; - } - - croak "Can't find $term" if $entry eq ''; - $entry =~ s/:+\s*:+/:/g; # cleanup $entry - $entry =~ s/:+/:/g; # cleanup $entry - $self->{TERMCAP} = $entry; # save it - # print STDERR "DEBUG: $entry = ", $entry, "\n"; - - # Precompile $entry into the object - $entry =~ s/^[^:]*://; - foreach $field ( split( /:[\s:\\]*/, $entry ) ) - { - if ( defined $field && $field =~ /^(\w{2,})$/ ) - { - $self->{ '_' . $field } = 1 unless defined $self->{ '_' . $1 }; - - # print STDERR "DEBUG: flag $1\n"; - } - elsif ( defined $field && $field =~ /^(\w{2,})\@/ ) - { - $self->{ '_' . $1 } = ""; - - # print STDERR "DEBUG: unset $1\n"; - } - elsif ( defined $field && $field =~ /^(\w{2,})#(.*)/ ) - { - $self->{ '_' . $1 } = $2 unless defined $self->{ '_' . $1 }; - - # print STDERR "DEBUG: numeric $1 = $2\n"; - } - elsif ( defined $field && $field =~ /^(\w{2,})=(.*)/ ) - { - - # print STDERR "DEBUG: string $1 = $2\n"; - next if defined $self->{ '_' . ( $cap = $1 ) }; - $_ = $2; - if ( ord('A') == 193 ) - { - s/\\E/\047/g; - s/\\(\d\d\d)/pack('c',oct($1) & 0177)/eg; - s/\\n/\n/g; - s/\\r/\r/g; - s/\\t/\t/g; - s/\\b/\b/g; - s/\\f/\f/g; - s/\\\^/\337/g; - s/\^\?/\007/g; - s/\^(.)/pack('c',ord($1) & 31)/eg; - s/\\(.)/$1/g; - s/\337/^/g; - } - else - { - s/\\E/\033/g; - s/\\(\d\d\d)/pack('c',oct($1) & 0177)/eg; - s/\\n/\n/g; - s/\\r/\r/g; - s/\\t/\t/g; - s/\\b/\b/g; - s/\\f/\f/g; - s/\\\^/\377/g; - s/\^\?/\177/g; - s/\^(.)/pack('c',ord($1) & 31)/eg; - s/\\(.)/$1/g; - s/\377/^/g; - } - $self->{ '_' . $cap } = $_; - } - - # else { carp "junk in $term ignored: $field"; } - } - $self->{'_pc'} = "\0" unless defined $self->{'_pc'}; - $self->{'_bc'} = "\b" unless defined $self->{'_bc'}; - $self; -} - -# $terminal->Tpad($string, $cnt, $FH); - -#line 459 - -sub Tpad -{ ## public - my $self = shift; - my ( $string, $cnt, $FH ) = @_; - my ( $decr, $ms ); - - if ( defined $string && $string =~ /(^[\d.]+)(\*?)(.*)$/ ) - { - $ms = $1; - $ms *= $cnt if $2; - $string = $3; - $decr = $self->{PADDING}; - if ( $decr > .1 ) - { - $ms += $decr / 2; - $string .= $self->{'_pc'} x ( $ms / $decr ); - } - } - print $FH $string if $FH; - $string; -} - -# $terminal->Tputs($cap, $cnt, $FH); - -#line 511 - -sub Tputs -{ ## public - my $self = shift; - my ( $cap, $cnt, $FH ) = @_; - my $string; - - $cnt = 0 unless $cnt; - - if ( $cnt > 1 ) - { - $string = Tpad( $self, $self->{ '_' . $cap }, $cnt ); - } - else - { - - # cache result because Tpad can be slow - unless ( exists $self->{$cap} ) - { - $self->{$cap} = - exists $self->{"_$cap"} - ? Tpad( $self, $self->{"_$cap"}, 1 ) - : undef; - } - $string = $self->{$cap}; - } - print $FH $string if $FH; - $string; -} - -# $terminal->Tgoto($cap, $col, $row, $FH); - -#line 593 - -sub Tgoto -{ ## public - my $self = shift; - my ( $cap, $code, $tmp, $FH ) = @_; - my $string = $self->{ '_' . $cap }; - my $result = ''; - my $after = ''; - my $online = 0; - my @tmp = ( $tmp, $code ); - my $cnt = $code; - - while ( $string =~ /^([^%]*)%(.)(.*)/ ) - { - $result .= $1; - $code = $2; - $string = $3; - if ( $code eq 'd' ) - { - $result .= sprintf( "%d", shift(@tmp) ); - } - elsif ( $code eq '.' ) - { - $tmp = shift(@tmp); - if ( $tmp == 0 || $tmp == 4 || $tmp == 10 ) - { - if ($online) - { - ++$tmp, $after .= $self->{'_up'} if $self->{'_up'}; - } - else - { - ++$tmp, $after .= $self->{'_bc'}; - } - } - $result .= sprintf( "%c", $tmp ); - $online = !$online; - } - elsif ( $code eq '+' ) - { - $result .= sprintf( "%c", shift(@tmp) + ord($string) ); - $string = substr( $string, 1, 99 ); - $online = !$online; - } - elsif ( $code eq 'r' ) - { - ( $code, $tmp ) = @tmp; - @tmp = ( $tmp, $code ); - $online = !$online; - } - elsif ( $code eq '>' ) - { - ( $code, $tmp, $string ) = unpack( "CCa99", $string ); - if ( $tmp[0] > $code ) - { - $tmp[0] += $tmp; - } - } - elsif ( $code eq '2' ) - { - $result .= sprintf( "%02d", shift(@tmp) ); - $online = !$online; - } - elsif ( $code eq '3' ) - { - $result .= sprintf( "%03d", shift(@tmp) ); - $online = !$online; - } - elsif ( $code eq 'i' ) - { - ( $code, $tmp ) = @tmp; - @tmp = ( $code + 1, $tmp + 1 ); - } - else - { - return "OOPS"; - } - } - $string = Tpad( $self, $result . $string . $after, $cnt ); - print $FH $string if $FH; - $string; -} - -# $terminal->Trequire(qw/ce ku kd/); - -#line 684 - -sub Trequire -{ ## public - my $self = shift; - my ( $cap, @undefined ); - foreach $cap (@_) - { - push( @undefined, $cap ) - unless defined $self->{ '_' . $cap } && $self->{ '_' . $cap }; - } - croak "Terminal does not support: (@undefined)" if @undefined; -} - -#line 751 - -# Below is a default entry for systems where there are terminals but no -# termcap -1; -__DATA__ -vt220|vt200|DEC VT220 in vt100 emulation mode: -am:mi:xn:xo: -co#80:li#24: -RA=\E[?7l:SA=\E[?7h: -ac=kkllmmjjnnwwqquuttvvxx:ae=\E(B:al=\E[L:as=\E(0: -bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH: -cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B: -ei=\E[4l:ho=\E[H:im=\E[4h: -is=\E[1;24r\E[24;1H: -nd=\E[C: -kd=\E[B::kl=\E[D:kr=\E[C:ku=\E[A:le=^H: -mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m: -kb=\0177: -r2=\E>\E[24;1H\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E=:rc=\E8: -sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:ta=^I: -ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?25h:vi=\E[?25l: - diff --git a/software/Slic3r-1.3.0.64bit/lib/Text/ParseWords.pm b/software/Slic3r-1.3.0.64bit/lib/Text/ParseWords.pm deleted file mode 100644 index 83a93001..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Text/ParseWords.pm +++ /dev/null @@ -1,179 +0,0 @@ -#line 1 "Text/ParseWords.pm" -package Text::ParseWords; - -use strict; -require 5.006; -our $VERSION = "3.30"; - - -use Exporter; -our @ISA = qw(Exporter); -our @EXPORT = qw(shellwords quotewords nested_quotewords parse_line); -our @EXPORT_OK = qw(old_shellwords); -our $PERL_SINGLE_QUOTE; - - -sub shellwords { - my (@lines) = @_; - my @allwords; - - foreach my $line (@lines) { - $line =~ s/^\s+//; - my @words = parse_line('\s+', 0, $line); - pop @words if (@words and !defined $words[-1]); - return() unless (@words || !length($line)); - push(@allwords, @words); - } - return(@allwords); -} - - - -sub quotewords { - my($delim, $keep, @lines) = @_; - my($line, @words, @allwords); - - foreach $line (@lines) { - @words = parse_line($delim, $keep, $line); - return() unless (@words || !length($line)); - push(@allwords, @words); - } - return(@allwords); -} - - - -sub nested_quotewords { - my($delim, $keep, @lines) = @_; - my($i, @allwords); - - for ($i = 0; $i < @lines; $i++) { - @{$allwords[$i]} = parse_line($delim, $keep, $lines[$i]); - return() unless (@{$allwords[$i]} || !length($lines[$i])); - } - return(@allwords); -} - - - -sub parse_line { - my($delimiter, $keep, $line) = @_; - my($word, @pieces); - - no warnings 'uninitialized'; # we will be testing undef strings - - while (length($line)) { - # This pattern is optimised to be stack conservative on older perls. - # Do not refactor without being careful and testing it on very long strings. - # See Perl bug #42980 for an example of a stack busting input. - $line =~ s/^ - (?: - # double quoted string - (") # $quote - ((?>[^\\"]*(?:\\.[^\\"]*)*))" # $quoted - | # --OR-- - # singe quoted string - (') # $quote - ((?>[^\\']*(?:\\.[^\\']*)*))' # $quoted - | # --OR-- - # unquoted string - ( # $unquoted - (?:\\.|[^\\"'])*? - ) - # followed by - ( # $delim - \Z(?!\n) # EOL - | # --OR-- - (?-x:$delimiter) # delimiter - | # --OR-- - (?!^)(?=["']) # a quote - ) - )//xs or return; # extended layout - my ($quote, $quoted, $unquoted, $delim) = (($1 ? ($1,$2) : ($3,$4)), $5, $6); - - - return() unless( defined($quote) || length($unquoted) || length($delim)); - - if ($keep) { - $quoted = "$quote$quoted$quote"; - } - else { - $unquoted =~ s/\\(.)/$1/sg; - if (defined $quote) { - $quoted =~ s/\\(.)/$1/sg if ($quote eq '"'); - $quoted =~ s/\\([\\'])/$1/g if ( $PERL_SINGLE_QUOTE && $quote eq "'"); - } - } - $word .= substr($line, 0, 0); # leave results tainted - $word .= defined $quote ? $quoted : $unquoted; - - if (length($delim)) { - push(@pieces, $word); - push(@pieces, $delim) if ($keep eq 'delimiters'); - undef $word; - } - if (!length($line)) { - push(@pieces, $word); - } - } - return(@pieces); -} - - - -sub old_shellwords { - - # Usage: - # use ParseWords; - # @words = old_shellwords($line); - # or - # @words = old_shellwords(@lines); - # or - # @words = old_shellwords(); # defaults to $_ (and clobbers it) - - no warnings 'uninitialized'; # we will be testing undef strings - local *_ = \join('', @_) if @_; - my (@words, $snippet); - - s/\A\s+//; - while ($_ ne '') { - my $field = substr($_, 0, 0); # leave results tainted - for (;;) { - if (s/\A"(([^"\\]|\\.)*)"//s) { - ($snippet = $1) =~ s#\\(.)#$1#sg; - } - elsif (/\A"/) { - require Carp; - Carp::carp("Unmatched double quote: $_"); - return(); - } - elsif (s/\A'(([^'\\]|\\.)*)'//s) { - ($snippet = $1) =~ s#\\(.)#$1#sg; - } - elsif (/\A'/) { - require Carp; - Carp::carp("Unmatched single quote: $_"); - return(); - } - elsif (s/\A\\(.?)//s) { - $snippet = $1; - } - elsif (s/\A([^\s\\'"]+)//) { - $snippet = $1; - } - else { - s/\A\s+//; - last; - } - $field .= $snippet; - } - push(@words, $field); - } - return @words; -} - -1; - -__END__ - -#line 304 diff --git a/software/Slic3r-1.3.0.64bit/lib/Thread.pm b/software/Slic3r-1.3.0.64bit/lib/Thread.pm deleted file mode 100644 index b340a6f9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Thread.pm +++ /dev/null @@ -1,37 +0,0 @@ -#line 1 "Thread.pm" -package Thread; - -use strict; -use warnings; -no warnings 'redefine'; - -our $VERSION = '3.04'; -$VERSION = eval $VERSION; - -BEGIN { - use Config; - if (! $Config{useithreads}) { - die("This Perl not built to support threads\n"); - } -} - -use threads 'yield'; -use threads::shared; - -require Exporter; -our @ISA = qw(Exporter threads); -our @EXPORT = qw(cond_wait cond_broadcast cond_signal); -our @EXPORT_OK = qw(async yield); - -sub async (&;@) { return Thread->new(shift); } - -sub done { return ! shift->is_running(); } - -sub eval { die("'eval' not implemented with 'ithreads'\n"); }; -sub flags { die("'flags' not implemented with 'ithreads'\n"); }; - -1; - -__END__ - -#line 274 diff --git a/software/Slic3r-1.3.0.64bit/lib/Thread/Queue.pm b/software/Slic3r-1.3.0.64bit/lib/Thread/Queue.pm deleted file mode 100644 index a87f804b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Thread/Queue.pm +++ /dev/null @@ -1,316 +0,0 @@ -#line 1 "Thread/Queue.pm" -package Thread::Queue; - -use strict; -use warnings; - -our $VERSION = '3.12'; -$VERSION = eval $VERSION; - -use threads::shared 1.21; -use Scalar::Util 1.10 qw(looks_like_number blessed reftype refaddr); - -# Carp errors from threads::shared calls should complain about caller -our @CARP_NOT = ("threads::shared"); - -# Create a new queue possibly pre-populated with items -sub new -{ - my $class = shift; - my @queue :shared = map { shared_clone($_) } @_; - my %self :shared = ( 'queue' => \@queue ); - return bless(\%self, $class); -} - -# Add items to the tail of a queue -sub enqueue -{ - my $self = shift; - lock(%$self); - - if ($$self{'ENDED'}) { - require Carp; - Carp::croak("'enqueue' method called on queue that has been 'end'ed"); - } - - # Block if queue size exceeds any specified limit - my $queue = $$self{'queue'}; - cond_wait(%$self) while ($$self{'LIMIT'} && (@$queue >= $$self{'LIMIT'})); - - # Add items to queue, and then signal other threads - push(@$queue, map { shared_clone($_) } @_) - and cond_signal(%$self); -} - -# Set or return the max. size for a queue -sub limit : lvalue -{ - my $self = shift; - lock(%$self); - $$self{'LIMIT'}; -} - -# Return a count of the number of items on a queue -sub pending -{ - my $self = shift; - lock(%$self); - return if ($$self{'ENDED'} && ! @{$$self{'queue'}}); - return scalar(@{$$self{'queue'}}); -} - -# Indicate that no more data will enter the queue -sub end -{ - my $self = shift; - lock(%$self); - # No more data is coming - $$self{'ENDED'} = 1; - - cond_signal(%$self); # Unblock possibly waiting threads -} - -# Return 1 or more items from the head of a queue, blocking if needed -sub dequeue -{ - my $self = shift; - lock(%$self); - my $queue = $$self{'queue'}; - - my $count = @_ ? $self->_validate_count(shift) : 1; - - # Wait for requisite number of items - cond_wait(%$self) while ((@$queue < $count) && ! $$self{'ENDED'}); - - # If no longer blocking, try getting whatever is left on the queue - return $self->dequeue_nb($count) if ($$self{'ENDED'}); - - # Return single item - if ($count == 1) { - my $item = shift(@$queue); - cond_signal(%$self); # Unblock possibly waiting threads - return $item; - } - - # Return multiple items - my @items; - push(@items, shift(@$queue)) for (1..$count); - cond_signal(%$self); # Unblock possibly waiting threads - return @items; -} - -# Return items from the head of a queue with no blocking -sub dequeue_nb -{ - my $self = shift; - lock(%$self); - my $queue = $$self{'queue'}; - - my $count = @_ ? $self->_validate_count(shift) : 1; - - # Return single item - if ($count == 1) { - my $item = shift(@$queue); - cond_signal(%$self); # Unblock possibly waiting threads - return $item; - } - - # Return multiple items - my @items; - for (1..$count) { - last if (! @$queue); - push(@items, shift(@$queue)); - } - cond_signal(%$self); # Unblock possibly waiting threads - return @items; -} - -# Return items from the head of a queue, blocking if needed up to a timeout -sub dequeue_timed -{ - my $self = shift; - lock(%$self); - my $queue = $$self{'queue'}; - - # Timeout may be relative or absolute - my $timeout = @_ ? $self->_validate_timeout(shift) : -1; - # Convert to an absolute time for use with cond_timedwait() - if ($timeout < 32000000) { # More than one year - $timeout += time(); - } - - my $count = @_ ? $self->_validate_count(shift) : 1; - - # Wait for requisite number of items, or until timeout - while ((@$queue < $count) && ! $$self{'ENDED'}) { - last if (! cond_timedwait(%$self, $timeout)); - } - - # Get whatever we need off the queue if available - return $self->dequeue_nb($count); -} - -# Return an item without removing it from a queue -sub peek -{ - my $self = shift; - lock(%$self); - my $index = @_ ? $self->_validate_index(shift) : 0; - return $$self{'queue'}[$index]; -} - -# Insert items anywhere into a queue -sub insert -{ - my $self = shift; - lock(%$self); - - if ($$self{'ENDED'}) { - require Carp; - Carp::croak("'insert' method called on queue that has been 'end'ed"); - } - - my $queue = $$self{'queue'}; - - my $index = $self->_validate_index(shift); - - return if (! @_); # Nothing to insert - - # Support negative indices - if ($index < 0) { - $index += @$queue; - if ($index < 0) { - $index = 0; - } - } - - # Dequeue items from $index onward - my @tmp; - while (@$queue > $index) { - unshift(@tmp, pop(@$queue)) - } - - # Add new items to the queue - push(@$queue, map { shared_clone($_) } @_); - - # Add previous items back onto the queue - push(@$queue, @tmp); - - cond_signal(%$self); # Unblock possibly waiting threads -} - -# Remove items from anywhere in a queue -sub extract -{ - my $self = shift; - lock(%$self); - my $queue = $$self{'queue'}; - - my $index = @_ ? $self->_validate_index(shift) : 0; - my $count = @_ ? $self->_validate_count(shift) : 1; - - # Support negative indices - if ($index < 0) { - $index += @$queue; - if ($index < 0) { - $count += $index; - return if ($count <= 0); # Beyond the head of the queue - return $self->dequeue_nb($count); # Extract from the head - } - } - - # Dequeue items from $index+$count onward - my @tmp; - while (@$queue > ($index+$count)) { - unshift(@tmp, pop(@$queue)) - } - - # Extract desired items - my @items; - unshift(@items, pop(@$queue)) while (@$queue > $index); - - # Add back any removed items - push(@$queue, @tmp); - - cond_signal(%$self); # Unblock possibly waiting threads - - # Return single item - return $items[0] if ($count == 1); - - # Return multiple items - return @items; -} - -### Internal Methods ### - -# Check value of the requested index -sub _validate_index -{ - my $self = shift; - my $index = shift; - - if (! defined($index) || - ! looks_like_number($index) || - (int($index) != $index)) - { - require Carp; - my ($method) = (caller(1))[3]; - my $class_name = ref($self); - $method =~ s/$class_name\:://; - $index = 'undef' if (! defined($index)); - Carp::croak("Invalid 'index' argument ($index) to '$method' method"); - } - - return $index; -}; - -# Check value of the requested count -sub _validate_count -{ - my $self = shift; - my $count = shift; - - if (! defined($count) || - ! looks_like_number($count) || - (int($count) != $count) || - ($count < 1) || - ($$self{'LIMIT'} && $count > $$self{'LIMIT'})) - { - require Carp; - my ($method) = (caller(1))[3]; - my $class_name = ref($self); - $method =~ s/$class_name\:://; - $count = 'undef' if (! defined($count)); - if ($$self{'LIMIT'} && $count > $$self{'LIMIT'}) { - Carp::croak("'count' argument ($count) to '$method' method exceeds queue size limit ($$self{'LIMIT'})"); - } else { - Carp::croak("Invalid 'count' argument ($count) to '$method' method"); - } - } - - return $count; -}; - -# Check value of the requested timeout -sub _validate_timeout -{ - my $self = shift; - my $timeout = shift; - - if (! defined($timeout) || - ! looks_like_number($timeout)) - { - require Carp; - my ($method) = (caller(1))[3]; - my $class_name = ref($self); - $method =~ s/$class_name\:://; - $timeout = 'undef' if (! defined($timeout)); - Carp::croak("Invalid 'timeout' argument ($timeout) to '$method' method"); - } - - return $timeout; -}; - -1; - -#line 658 diff --git a/software/Slic3r-1.3.0.64bit/lib/Thread/Semaphore.pm b/software/Slic3r-1.3.0.64bit/lib/Thread/Semaphore.pm deleted file mode 100644 index 92de2cf5..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Thread/Semaphore.pm +++ /dev/null @@ -1,116 +0,0 @@ -#line 1 "Thread/Semaphore.pm" -package Thread::Semaphore; - -use strict; -use warnings; - -our $VERSION = '2.13'; -$VERSION = eval $VERSION; - -use threads::shared; -use Scalar::Util 1.10 qw(looks_like_number); - -# Predeclarations for internal functions -my ($validate_arg); - -# Create a new semaphore optionally with specified count (count defaults to 1) -sub new { - my $class = shift; - - my $val :shared = 1; - if (@_) { - $val = shift; - if (! defined($val) || - ! looks_like_number($val) || - (int($val) != $val)) - { - require Carp; - $val = 'undef' if (! defined($val)); - Carp::croak("Semaphore initializer is not an integer: $val"); - } - } - - return bless(\$val, $class); -} - -# Decrement a semaphore's count (decrement amount defaults to 1) -sub down { - my $sema = shift; - my $dec = @_ ? $validate_arg->(shift) : 1; - - lock($$sema); - cond_wait($$sema) until ($$sema >= $dec); - $$sema -= $dec; -} - -# Decrement a semaphore's count only if count >= decrement value -# (decrement amount defaults to 1) -sub down_nb { - my $sema = shift; - my $dec = @_ ? $validate_arg->(shift) : 1; - - lock($$sema); - my $ok = ($$sema >= $dec); - $$sema -= $dec if $ok; - return $ok; -} - -# Decrement a semaphore's count even if the count goes below 0 -# (decrement amount defaults to 1) -sub down_force { - my $sema = shift; - my $dec = @_ ? $validate_arg->(shift) : 1; - - lock($$sema); - $$sema -= $dec; -} - -# Decrement a semaphore's count with timeout -# (timeout in seconds; decrement amount defaults to 1) -sub down_timed { - my $sema = shift; - my $timeout = $validate_arg->(shift); - my $dec = @_ ? $validate_arg->(shift) : 1; - - lock($$sema); - my $abs = time() + $timeout; - until ($$sema >= $dec) { - return if !cond_timedwait($$sema, $abs); - } - $$sema -= $dec; - return 1; -} - -# Increment a semaphore's count (increment amount defaults to 1) -sub up { - my $sema = shift; - my $inc = @_ ? $validate_arg->(shift) : 1; - - lock($$sema); - ($$sema += $inc) > 0 and cond_broadcast($$sema); -} - -### Internal Functions ### - -# Validate method argument -$validate_arg = sub { - my $arg = shift; - - if (! defined($arg) || - ! looks_like_number($arg) || - (int($arg) != $arg) || - ($arg < 1)) - { - require Carp; - my ($method) = (caller(1))[3]; - $method =~ s/Thread::Semaphore:://; - $arg = 'undef' if (! defined($arg)); - Carp::croak("Argument to semaphore method '$method' is not a positive integer: $arg"); - } - - return $arg; -}; - -1; - -#line 274 diff --git a/software/Slic3r-1.3.0.64bit/lib/Tie/Handle.pm b/software/Slic3r-1.3.0.64bit/lib/Tie/Handle.pm deleted file mode 100644 index 8c2607a1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Tie/Handle.pm +++ /dev/null @@ -1,91 +0,0 @@ -#line 1 "Tie/Handle.pm" -package Tie::Handle; - -use 5.006_001; -our $VERSION = '4.2'; - -# Tie::StdHandle used to be inside Tie::Handle. For backwards compatibility -# loading Tie::Handle has to make Tie::StdHandle available. -use Tie::StdHandle; - -#line 122 - -use Carp; -use warnings::register; - -sub new { - my $pkg = shift; - $pkg->TIEHANDLE(@_); -} - -# "Grandfather" the new, a la Tie::Hash - -sub TIEHANDLE { - my $pkg = shift; - if (defined &{"{$pkg}::new"}) { - warnings::warnif("WARNING: calling ${pkg}->new since ${pkg}->TIEHANDLE is missing"); - $pkg->new(@_); - } - else { - croak "$pkg doesn't define a TIEHANDLE method"; - } -} - -sub PRINT { - my $self = shift; - if($self->can('WRITE') != \&WRITE) { - my $buf = join(defined $, ? $, : "",@_); - $buf .= $\ if defined $\; - $self->WRITE($buf,length($buf),0); - } - else { - croak ref($self)," doesn't define a PRINT method"; - } -} - -sub PRINTF { - my $self = shift; - - if($self->can('WRITE') != \&WRITE) { - my $buf = sprintf(shift,@_); - $self->WRITE($buf,length($buf),0); - } - else { - croak ref($self)," doesn't define a PRINTF method"; - } -} - -sub READLINE { - my $pkg = ref $_[0]; - croak "$pkg doesn't define a READLINE method"; -} - -sub GETC { - my $self = shift; - - if($self->can('READ') != \&READ) { - my $buf; - $self->READ($buf,1); - return $buf; - } - else { - croak ref($self)," doesn't define a GETC method"; - } -} - -sub READ { - my $pkg = ref $_[0]; - croak "$pkg doesn't define a READ method"; -} - -sub WRITE { - my $pkg = ref $_[0]; - croak "$pkg doesn't define a WRITE method"; -} - -sub CLOSE { - my $pkg = ref $_[0]; - croak "$pkg doesn't define a CLOSE method"; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Tie/Hash.pm b/software/Slic3r-1.3.0.64bit/lib/Tie/Hash.pm deleted file mode 100644 index 2e58f472..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Tie/Hash.pm +++ /dev/null @@ -1,88 +0,0 @@ -#line 1 "Tie/Hash.pm" -package Tie::Hash; - -our $VERSION = '1.05'; - -#line 189 - -use Carp; -use warnings::register; - -sub new { - my $pkg = shift; - $pkg->TIEHASH(@_); -} - -# Grandfather "new" - -sub TIEHASH { - my $pkg = shift; - my $pkg_new = $pkg -> can ('new'); - - if ($pkg_new and $pkg ne __PACKAGE__) { - my $my_new = __PACKAGE__ -> can ('new'); - if ($pkg_new == $my_new) { - # - # Prevent recursion - # - croak "$pkg must define either a TIEHASH() or a new() method"; - } - - warnings::warnif ("WARNING: calling ${pkg}->new since " . - "${pkg}->TIEHASH is missing"); - $pkg -> new (@_); - } - else { - croak "$pkg doesn't define a TIEHASH method"; - } -} - -sub EXISTS { - my $pkg = ref $_[0]; - croak "$pkg doesn't define an EXISTS method"; -} - -sub CLEAR { - my $self = shift; - my $key = $self->FIRSTKEY(@_); - my @keys; - - while (defined $key) { - push @keys, $key; - $key = $self->NEXTKEY(@_, $key); - } - foreach $key (@keys) { - $self->DELETE(@_, $key); - } -} - -# The Tie::StdHash package implements standard perl hash behaviour. -# It exists to act as a base class for classes which only wish to -# alter some parts of their behaviour. - -package Tie::StdHash; -# @ISA = qw(Tie::Hash); # would inherit new() only - -sub TIEHASH { bless {}, $_[0] } -sub STORE { $_[0]->{$_[1]} = $_[2] } -sub FETCH { $_[0]->{$_[1]} } -sub FIRSTKEY { my $a = scalar keys %{$_[0]}; each %{$_[0]} } -sub NEXTKEY { each %{$_[0]} } -sub EXISTS { exists $_[0]->{$_[1]} } -sub DELETE { delete $_[0]->{$_[1]} } -sub CLEAR { %{$_[0]} = () } -sub SCALAR { scalar %{$_[0]} } - -package Tie::ExtraHash; - -sub TIEHASH { my $p = shift; bless [{}, @_], $p } -sub STORE { $_[0][0]{$_[1]} = $_[2] } -sub FETCH { $_[0][0]{$_[1]} } -sub FIRSTKEY { my $a = scalar keys %{$_[0][0]}; each %{$_[0][0]} } -sub NEXTKEY { each %{$_[0][0]} } -sub EXISTS { exists $_[0][0]->{$_[1]} } -sub DELETE { delete $_[0][0]->{$_[1]} } -sub CLEAR { %{$_[0][0]} = () } -sub SCALAR { scalar %{$_[0][0]} } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Tie/StdHandle.pm b/software/Slic3r-1.3.0.64bit/lib/Tie/StdHandle.pm deleted file mode 100644 index 9f8fb7b3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Tie/StdHandle.pm +++ /dev/null @@ -1,47 +0,0 @@ -#line 1 "Tie/StdHandle.pm" -package Tie::StdHandle; - -use strict; - -use Tie::Handle; -use vars qw(@ISA $VERSION); -@ISA = 'Tie::Handle'; -$VERSION = '4.4'; - -#line 37 - -sub TIEHANDLE -{ - my $class = shift; - my $fh = \do { local *HANDLE}; - bless $fh,$class; - $fh->OPEN(@_) if (@_); - return $fh; -} - -sub EOF { eof($_[0]) } -sub TELL { tell($_[0]) } -sub FILENO { fileno($_[0]) } -sub SEEK { seek($_[0],$_[1],$_[2]) } -sub CLOSE { close($_[0]) } -sub BINMODE { binmode($_[0]) } - -sub OPEN -{ - $_[0]->CLOSE if defined($_[0]->FILENO); - @_ == 2 ? open($_[0], $_[1]) : open($_[0], $_[1], $_[2]); -} - -sub READ { &CORE::read(shift, \shift, @_) } -sub READLINE { my $fh = $_[0]; <$fh> } -sub GETC { getc($_[0]) } - -sub WRITE -{ - my $fh = $_[0]; - local $\; # don't print any line terminator - print $fh substr($_[1], $_[3], $_[2]); -} - - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Time/HiRes.pm b/software/Slic3r-1.3.0.64bit/lib/Time/HiRes.pm deleted file mode 100644 index 4095f46c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Time/HiRes.pm +++ /dev/null @@ -1,89 +0,0 @@ -#line 1 "Time/HiRes.pm" -package Time::HiRes; - -{ use 5.006; } -use strict; - -require Exporter; -require DynaLoader; - -our @ISA = qw(Exporter DynaLoader); - -our @EXPORT = qw( ); -our @EXPORT_OK = qw (usleep sleep ualarm alarm gettimeofday time tv_interval - getitimer setitimer nanosleep clock_gettime clock_getres - clock clock_nanosleep - CLOCK_BOOTTIME CLOCK_HIGHRES - CLOCK_MONOTONIC CLOCK_MONOTONIC_COARSE - CLOCK_MONOTONIC_PRECISE CLOCK_MONOTONIC_RAW - CLOCK_PROCESS_CPUTIME_ID - CLOCK_REALTIME CLOCK_REALTIME_COARSE - CLOCK_REALTIME_FAST CLOCK_REALTIME_PRECISE - CLOCK_SECOND CLOCK_SOFTTIME CLOCK_THREAD_CPUTIME_ID - CLOCK_TIMEOFDAY CLOCKS_PER_SEC - ITIMER_REAL ITIMER_VIRTUAL ITIMER_PROF ITIMER_REALPROF - TIMER_ABSTIME - d_usleep d_ualarm d_gettimeofday d_getitimer d_setitimer - d_nanosleep d_clock_gettime d_clock_getres d_hires_utime - d_clock d_clock_nanosleep - stat lstat utime - ); - -our $VERSION = '1.9741'; -our $XS_VERSION = $VERSION; -$VERSION = eval $VERSION; - -our $AUTOLOAD; -sub AUTOLOAD { - my $constname; - ($constname = $AUTOLOAD) =~ s/.*:://; - # print "AUTOLOAD: constname = $constname ($AUTOLOAD)\n"; - die "&Time::HiRes::constant not defined" if $constname eq 'constant'; - my ($error, $val) = constant($constname); - # print "AUTOLOAD: error = $error, val = $val\n"; - if ($error) { - my (undef,$file,$line) = caller; - die "$error at $file line $line.\n"; - } - { - no strict 'refs'; - *$AUTOLOAD = sub { $val }; - } - goto &$AUTOLOAD; -} - -sub import { - my $this = shift; - for my $i (@_) { - if (($i eq 'clock_getres' && !&d_clock_getres) || - ($i eq 'clock_gettime' && !&d_clock_gettime) || - ($i eq 'clock_nanosleep' && !&d_clock_nanosleep) || - ($i eq 'clock' && !&d_clock) || - ($i eq 'nanosleep' && !&d_nanosleep) || - ($i eq 'usleep' && !&d_usleep) || - ($i eq 'utime' && !&d_hires_utime) || - ($i eq 'ualarm' && !&d_ualarm)) { - require Carp; - Carp::croak("Time::HiRes::$i(): unimplemented in this platform"); - } - } - Time::HiRes->export_to_level(1, $this, @_); -} - -bootstrap Time::HiRes; - -# Preloaded methods go here. - -sub tv_interval { - # probably could have been done in C - my ($a, $b) = @_; - $b = [gettimeofday()] unless defined($b); - (${$b}[0] - ${$a}[0]) + ((${$b}[1] - ${$a}[1]) / 1_000_000); -} - -# Autoload methods go after =cut, and are processed by the autosplit program. - -1; -__END__ - -#line 649 diff --git a/software/Slic3r-1.3.0.64bit/lib/Time/Local.pm b/software/Slic3r-1.3.0.64bit/lib/Time/Local.pm deleted file mode 100644 index e41e9e0a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Time/Local.pm +++ /dev/null @@ -1,216 +0,0 @@ -#line 1 "Time/Local.pm" -package Time::Local; - -use strict; - -use Carp (); -use Exporter; - -our $VERSION = '1.25'; - -use parent 'Exporter'; - -our @EXPORT = qw( timegm timelocal ); -our @EXPORT_OK = qw( timegm_nocheck timelocal_nocheck ); - -my @MonthDays = ( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ); - -# Determine breakpoint for rolling century -my $ThisYear = ( localtime() )[5]; -my $Breakpoint = ( $ThisYear + 50 ) % 100; -my $NextCentury = $ThisYear - $ThisYear % 100; -$NextCentury += 100 if $Breakpoint < 50; -my $Century = $NextCentury - 100; -my $SecOff = 0; - -my ( %Options, %Cheat ); - -use constant SECS_PER_MINUTE => 60; -use constant SECS_PER_HOUR => 3600; -use constant SECS_PER_DAY => 86400; - -my $MaxDay; -if ( $] < 5.012000 ) { - require Config; - ## no critic (Variables::ProhibitPackageVars) - - my $MaxInt; - if ( $^O eq 'MacOS' ) { - - # time_t is unsigned... - $MaxInt = ( 1 << ( 8 * $Config::Config{ivsize} ) ) - - 1; ## no critic qw(ProhibitPackageVars) - } - else { - $MaxInt - = ( ( 1 << ( 8 * $Config::Config{ivsize} - 2 ) ) - 1 ) * 2 - + 1; ## no critic qw(ProhibitPackageVars) - } - - $MaxDay = int( ( $MaxInt - ( SECS_PER_DAY / 2 ) ) / SECS_PER_DAY ) - 1; -} -else { - # recent localtime()'s limit is the year 2**31 - $MaxDay = 365 * ( 2**31 ); -} - -# Determine the EPOC day for this machine -my $Epoc = 0; -if ( $^O eq 'vos' ) { - - # work around posix-977 -- VOS doesn't handle dates in the range - # 1970-1980. - $Epoc = _daygm( 0, 0, 0, 1, 0, 70, 4, 0 ); -} -elsif ( $^O eq 'MacOS' ) { - $MaxDay *= 2 if $^O eq 'MacOS'; # time_t unsigned ... quick hack? - # MacOS time() is seconds since 1 Jan 1904, localtime - # so we need to calculate an offset to apply later - $Epoc = 693901; - $SecOff = timelocal( localtime(0) ) - timelocal( gmtime(0) ); - $Epoc += _daygm( gmtime(0) ); -} -else { - $Epoc = _daygm( gmtime(0) ); -} - -%Cheat = (); # clear the cache as epoc has changed - -sub _daygm { - - # This is written in such a byzantine way in order to avoid - # lexical variables and sub calls, for speed - return $_[3] + ( - $Cheat{ pack( 'ss', @_[ 4, 5 ] ) } ||= do { - my $month = ( $_[4] + 10 ) % 12; - my $year = $_[5] + 1900 - int( $month / 10 ); - - ( ( 365 * $year ) - + int( $year / 4 ) - - int( $year / 100 ) - + int( $year / 400 ) - + int( ( ( $month * 306 ) + 5 ) / 10 ) ) - $Epoc; - } - ); -} - -sub _timegm { - my $sec - = $SecOff + $_[0] - + ( SECS_PER_MINUTE * $_[1] ) - + ( SECS_PER_HOUR * $_[2] ); - - return $sec + ( SECS_PER_DAY * &_daygm ); -} - -sub timegm { - my ( $sec, $min, $hour, $mday, $month, $year ) = @_; - - if ( $year >= 1000 ) { - $year -= 1900; - } - elsif ( $year < 100 and $year >= 0 ) { - $year += ( $year > $Breakpoint ) ? $Century : $NextCentury; - } - - unless ( $Options{no_range_check} ) { - Carp::croak("Month '$month' out of range 0..11") - if $month > 11 - or $month < 0; - - my $md = $MonthDays[$month]; - ++$md - if $month == 1 && _is_leap_year( $year + 1900 ); - - Carp::croak("Day '$mday' out of range 1..$md") - if $mday > $md or $mday < 1; - Carp::croak("Hour '$hour' out of range 0..23") - if $hour > 23 or $hour < 0; - Carp::croak("Minute '$min' out of range 0..59") - if $min > 59 or $min < 0; - Carp::croak("Second '$sec' out of range 0..59") - if $sec >= 60 or $sec < 0; - } - - my $days = _daygm( undef, undef, undef, $mday, $month, $year ); - - unless ( $Options{no_range_check} or abs($days) < $MaxDay ) { - my $msg = q{}; - $msg .= "Day too big - $days > $MaxDay\n" if $days > $MaxDay; - - $year += 1900; - $msg - .= "Cannot handle date ($sec, $min, $hour, $mday, $month, $year)"; - - Carp::croak($msg); - } - - return - $sec + $SecOff - + ( SECS_PER_MINUTE * $min ) - + ( SECS_PER_HOUR * $hour ) - + ( SECS_PER_DAY * $days ); -} - -sub _is_leap_year { - return 0 if $_[0] % 4; - return 1 if $_[0] % 100; - return 0 if $_[0] % 400; - - return 1; -} - -sub timegm_nocheck { - local $Options{no_range_check} = 1; - return &timegm; -} - -sub timelocal { - my $ref_t = &timegm; - my $loc_for_ref_t = _timegm( localtime($ref_t) ); - - my $zone_off = $loc_for_ref_t - $ref_t - or return $loc_for_ref_t; - - # Adjust for timezone - my $loc_t = $ref_t - $zone_off; - - # Are we close to a DST change or are we done - my $dst_off = $ref_t - _timegm( localtime($loc_t) ); - - # If this evaluates to true, it means that the value in $loc_t is - # the _second_ hour after a DST change where the local time moves - # backward. - if ( - !$dst_off - && ( ( $ref_t - SECS_PER_HOUR ) - - _timegm( localtime( $loc_t - SECS_PER_HOUR ) ) < 0 ) - ) { - return $loc_t - SECS_PER_HOUR; - } - - # Adjust for DST change - $loc_t += $dst_off; - - return $loc_t if $dst_off > 0; - - # If the original date was a non-extent gap in a forward DST jump, - # we should now have the wrong answer - undo the DST adjustment - my ( $s, $m, $h ) = localtime($loc_t); - $loc_t -= $dst_off if $s != $_[0] || $m != $_[1] || $h != $_[2]; - - return $loc_t; -} - -sub timelocal_nocheck { - local $Options{no_range_check} = 1; - return &timelocal; -} - -1; - -# ABSTRACT: Efficiently compute time from local and GMT time - -__END__ - -#line 420 diff --git a/software/Slic3r-1.3.0.64bit/lib/Try/Tiny.pm b/software/Slic3r-1.3.0.64bit/lib/Try/Tiny.pm deleted file mode 100644 index ff8b28dc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Try/Tiny.pm +++ /dev/null @@ -1,202 +0,0 @@ -#line 1 "Try/Tiny.pm" -package Try::Tiny; # git description: v0.27-8-g8dc27c7 -use 5.006; -# ABSTRACT: Minimal try/catch with proper preservation of $@ - -our $VERSION = '0.28'; - -use strict; -use warnings; - -use Exporter 5.57 'import'; -our @EXPORT = our @EXPORT_OK = qw(try catch finally); - -use Carp; -$Carp::Internal{+__PACKAGE__}++; - -BEGIN { - my $su = $INC{'Sub/Util.pm'} && defined &Sub::Util::set_subname; - my $sn = $INC{'Sub/Name.pm'} && eval { Sub::Name->VERSION(0.08) }; - unless ($su || $sn) { - $su = eval { require Sub::Util; } && defined &Sub::Util::set_subname; - unless ($su) { - $sn = eval { require Sub::Name; Sub::Name->VERSION(0.08) }; - } - } - - *_subname = $su ? \&Sub::Util::set_subname - : $sn ? \&Sub::Name::subname - : sub { $_[1] }; - *_HAS_SUBNAME = ($su || $sn) ? sub(){1} : sub(){0}; -} - -my %_finally_guards; - -# Need to prototype as @ not $$ because of the way Perl evaluates the prototype. -# Keeping it at $$ means you only ever get 1 sub because we need to eval in a list -# context & not a scalar one - -sub try (&;@) { - my ( $try, @code_refs ) = @_; - - # we need to save this here, the eval block will be in scalar context due - # to $failed - my $wantarray = wantarray; - - # work around perl bug by explicitly initializing these, due to the likelyhood - # this will be used in global destruction (perl rt#119311) - my ( $catch, @finally ) = (); - - # find labeled blocks in the argument list. - # catch and finally tag the blocks by blessing a scalar reference to them. - foreach my $code_ref (@code_refs) { - - if ( ref($code_ref) eq 'Try::Tiny::Catch' ) { - croak 'A try() may not be followed by multiple catch() blocks' - if $catch; - $catch = ${$code_ref}; - } elsif ( ref($code_ref) eq 'Try::Tiny::Finally' ) { - push @finally, ${$code_ref}; - } else { - croak( - 'try() encountered an unexpected argument (' - . ( defined $code_ref ? $code_ref : 'undef' ) - . ') - perhaps a missing semi-colon before or' - ); - } - } - - # FIXME consider using local $SIG{__DIE__} to accumulate all errors. It's - # not perfect, but we could provide a list of additional errors for - # $catch->(); - - # name the blocks if we have Sub::Name installed - my $caller = caller; - _subname("${caller}::try {...} " => $try) - if _HAS_SUBNAME; - - # set up scope guards to invoke the finally blocks at the end. - # this should really be a function scope lexical variable instead of - # file scope + local but that causes issues with perls < 5.20 due to - # perl rt#119311 - local $_finally_guards{guards} = [ - map { Try::Tiny::ScopeGuard->_new($_) } - @finally - ]; - - # save the value of $@ so we can set $@ back to it in the beginning of the eval - # and restore $@ after the eval finishes - my $prev_error = $@; - - my ( @ret, $error ); - - # failed will be true if the eval dies, because 1 will not be returned - # from the eval body - my $failed = not eval { - $@ = $prev_error; - - # evaluate the try block in the correct context - if ( $wantarray ) { - @ret = $try->(); - } elsif ( defined $wantarray ) { - $ret[0] = $try->(); - } else { - $try->(); - }; - - return 1; # properly set $failed to false - }; - - # preserve the current error and reset the original value of $@ - $error = $@; - $@ = $prev_error; - - # at this point $failed contains a true value if the eval died, even if some - # destructor overwrote $@ as the eval was unwinding. - if ( $failed ) { - # pass $error to the finally blocks - push @$_, $error for @{$_finally_guards{guards}}; - - # if we got an error, invoke the catch block. - if ( $catch ) { - # This works like given($error), but is backwards compatible and - # sets $_ in the dynamic scope for the body of C<$catch> - for ($error) { - return $catch->($error); - } - - # in case when() was used without an explicit return, the C - # loop will be aborted and there's no useful return value - } - - return; - } else { - # no failure, $@ is back to what it was, everything is fine - return $wantarray ? @ret : $ret[0]; - } -} - -sub catch (&;@) { - my ( $block, @rest ) = @_; - - croak 'Useless bare catch()' unless wantarray; - - my $caller = caller; - _subname("${caller}::catch {...} " => $block) - if _HAS_SUBNAME; - return ( - bless(\$block, 'Try::Tiny::Catch'), - @rest, - ); -} - -sub finally (&;@) { - my ( $block, @rest ) = @_; - - croak 'Useless bare finally()' unless wantarray; - - my $caller = caller; - _subname("${caller}::finally {...} " => $block) - if _HAS_SUBNAME; - return ( - bless(\$block, 'Try::Tiny::Finally'), - @rest, - ); -} - -{ - package # hide from PAUSE - Try::Tiny::ScopeGuard; - - use constant UNSTABLE_DOLLARAT => ("$]" < '5.013002') ? 1 : 0; - - sub _new { - shift; - bless [ @_ ]; - } - - sub DESTROY { - my ($code, @args) = @{ $_[0] }; - - local $@ if UNSTABLE_DOLLARAT; - eval { - $code->(@args); - 1; - } or do { - warn - "Execution of finally() block $code resulted in an exception, which " - . '*CAN NOT BE PROPAGATED* due to fundamental limitations of Perl. ' - . 'Your program will continue as if this event never took place. ' - . "Original exception text follows:\n\n" - . (defined $@ ? $@ : '$@ left undefined...') - . "\n" - ; - } - } -} - -__PACKAGE__ - -__END__ - -#line 805 diff --git a/software/Slic3r-1.3.0.64bit/lib/URI.pm b/software/Slic3r-1.3.0.64bit/lib/URI.pm deleted file mode 100644 index c0ceca68..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI.pm +++ /dev/null @@ -1,356 +0,0 @@ -#line 1 "URI.pm" -package URI; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -our ($ABS_REMOTE_LEADING_DOTS, $ABS_ALLOW_RELATIVE_SCHEME, $DEFAULT_QUERY_FORM_DELIMITER); - -my %implements; # mapping from scheme to implementor class - -# Some "official" character classes - -our $reserved = q(;/?:@&=+$,[]); -our $mark = q(-_.!~*'()); #'; emacs -our $unreserved = "A-Za-z0-9\Q$mark\E"; -our $uric = quotemeta($reserved) . $unreserved . "%"; - -our $scheme_re = '[a-zA-Z][a-zA-Z0-9.+\-]*'; - -use Carp (); -use URI::Escape (); - -use overload ('""' => sub { ${$_[0]} }, - '==' => sub { _obj_eq(@_) }, - '!=' => sub { !_obj_eq(@_) }, - fallback => 1, - ); - -# Check if two objects are the same object -sub _obj_eq { - return overload::StrVal($_[0]) eq overload::StrVal($_[1]); -} - -sub new -{ - my($class, $uri, $scheme) = @_; - - $uri = defined ($uri) ? "$uri" : ""; # stringify - # Get rid of potential wrapping - $uri =~ s/^<(?:URL:)?(.*)>$/$1/; # - $uri =~ s/^"(.*)"$/$1/; - $uri =~ s/^\s+//; - $uri =~ s/\s+$//; - - my $impclass; - if ($uri =~ m/^($scheme_re):/so) { - $scheme = $1; - } - else { - if (($impclass = ref($scheme))) { - $scheme = $scheme->scheme; - } - elsif ($scheme && $scheme =~ m/^($scheme_re)(?::|$)/o) { - $scheme = $1; - } - } - $impclass ||= implementor($scheme) || - do { - require URI::_foreign; - $impclass = 'URI::_foreign'; - }; - - return $impclass->_init($uri, $scheme); -} - - -sub new_abs -{ - my($class, $uri, $base) = @_; - $uri = $class->new($uri, $base); - $uri->abs($base); -} - - -sub _init -{ - my $class = shift; - my($str, $scheme) = @_; - # find all funny characters and encode the bytes. - $str = $class->_uric_escape($str); - $str = "$scheme:$str" unless $str =~ /^$scheme_re:/o || - $class->_no_scheme_ok; - my $self = bless \$str, $class; - $self; -} - - -sub _uric_escape -{ - my($class, $str) = @_; - $str =~ s*([^$uric\#])* URI::Escape::escape_char($1) *ego; - utf8::downgrade($str); - return $str; -} - -my %require_attempted; - -sub implementor -{ - my($scheme, $impclass) = @_; - if (!$scheme || $scheme !~ /\A$scheme_re\z/o) { - require URI::_generic; - return "URI::_generic"; - } - - $scheme = lc($scheme); - - if ($impclass) { - # Set the implementor class for a given scheme - my $old = $implements{$scheme}; - $impclass->_init_implementor($scheme); - $implements{$scheme} = $impclass; - return $old; - } - - my $ic = $implements{$scheme}; - return $ic if $ic; - - # scheme not yet known, look for internal or - # preloaded (with 'use') implementation - $ic = "URI::$scheme"; # default location - - # turn scheme into a valid perl identifier by a simple transformation... - $ic =~ s/\+/_P/g; - $ic =~ s/\./_O/g; - $ic =~ s/\-/_/g; - - no strict 'refs'; - # check we actually have one for the scheme: - unless (@{"${ic}::ISA"}) { - if (not exists $require_attempted{$ic}) { - # Try to load it - my $_old_error = $@; - eval "require $ic"; - die $@ if $@ && $@ !~ /Can\'t locate.*in \@INC/; - $@ = $_old_error; - } - return undef unless @{"${ic}::ISA"}; - } - - $ic->_init_implementor($scheme); - $implements{$scheme} = $ic; - $ic; -} - - -sub _init_implementor -{ - my($class, $scheme) = @_; - # Remember that one implementor class may actually - # serve to implement several URI schemes. -} - - -sub clone -{ - my $self = shift; - my $other = $$self; - bless \$other, ref $self; -} - -sub TO_JSON { ${$_[0]} } - -sub _no_scheme_ok { 0 } - -sub _scheme -{ - my $self = shift; - - unless (@_) { - return undef unless $$self =~ /^($scheme_re):/o; - return $1; - } - - my $old; - my $new = shift; - if (defined($new) && length($new)) { - Carp::croak("Bad scheme '$new'") unless $new =~ /^$scheme_re$/o; - $old = $1 if $$self =~ s/^($scheme_re)://o; - my $newself = URI->new("$new:$$self"); - $$self = $$newself; - bless $self, ref($newself); - } - else { - if ($self->_no_scheme_ok) { - $old = $1 if $$self =~ s/^($scheme_re)://o; - Carp::carp("Oops, opaque part now look like scheme") - if $^W && $$self =~ m/^$scheme_re:/o - } - else { - $old = $1 if $$self =~ m/^($scheme_re):/o; - } - } - - return $old; -} - -sub scheme -{ - my $scheme = shift->_scheme(@_); - return undef unless defined $scheme; - lc($scheme); -} - -sub has_recognized_scheme { - my $self = shift; - return ref($self) !~ /^URI::_(?:foreign|generic)\z/; -} - -sub opaque -{ - my $self = shift; - - unless (@_) { - $$self =~ /^(?:$scheme_re:)?([^\#]*)/o or die; - return $1; - } - - $$self =~ /^($scheme_re:)? # optional scheme - ([^\#]*) # opaque - (\#.*)? # optional fragment - $/sx or die; - - my $old_scheme = $1; - my $old_opaque = $2; - my $old_frag = $3; - - my $new_opaque = shift; - $new_opaque = "" unless defined $new_opaque; - $new_opaque =~ s/([^$uric])/ URI::Escape::escape_char($1)/ego; - utf8::downgrade($new_opaque); - - $$self = defined($old_scheme) ? $old_scheme : ""; - $$self .= $new_opaque; - $$self .= $old_frag if defined $old_frag; - - $old_opaque; -} - -sub path { goto &opaque } # alias - - -sub fragment -{ - my $self = shift; - unless (@_) { - return undef unless $$self =~ /\#(.*)/s; - return $1; - } - - my $old; - $old = $1 if $$self =~ s/\#(.*)//s; - - my $new_frag = shift; - if (defined $new_frag) { - $new_frag =~ s/([^$uric])/ URI::Escape::escape_char($1) /ego; - utf8::downgrade($new_frag); - $$self .= "#$new_frag"; - } - $old; -} - - -sub as_string -{ - my $self = shift; - $$self; -} - - -sub as_iri -{ - my $self = shift; - my $str = $$self; - if ($str =~ s/%([89a-fA-F][0-9a-fA-F])/chr(hex($1))/eg) { - # All this crap because the more obvious: - # - # Encode::decode("UTF-8", $str, sub { sprintf "%%%02X", shift }) - # - # doesn't work before Encode 2.39. Wait for a standard release - # to bundle that version. - - require Encode; - my $enc = Encode::find_encoding("UTF-8"); - my $u = ""; - while (length $str) { - $u .= $enc->decode($str, Encode::FB_QUIET()); - if (length $str) { - # escape next char - $u .= URI::Escape::escape_char(substr($str, 0, 1, "")); - } - } - $str = $u; - } - return $str; -} - - -sub canonical -{ - # Make sure scheme is lowercased, that we don't escape unreserved chars, - # and that we use upcase escape sequences. - - my $self = shift; - my $scheme = $self->_scheme || ""; - my $uc_scheme = $scheme =~ /[A-Z]/; - my $esc = $$self =~ /%[a-fA-F0-9]{2}/; - return $self unless $uc_scheme || $esc; - - my $other = $self->clone; - if ($uc_scheme) { - $other->_scheme(lc $scheme); - } - if ($esc) { - $$other =~ s{%([0-9a-fA-F]{2})} - { my $a = chr(hex($1)); - $a =~ /^[$unreserved]\z/o ? $a : "%\U$1" - }ge; - } - return $other; -} - -# Compare two URIs, subclasses will provide a more correct implementation -sub eq { - my($self, $other) = @_; - $self = URI->new($self, $other) unless ref $self; - $other = URI->new($other, $self) unless ref $other; - ref($self) eq ref($other) && # same class - $self->canonical->as_string eq $other->canonical->as_string; -} - -# generic-URI transformation methods -sub abs { $_[0]; } -sub rel { $_[0]; } - -sub secure { 0 } - -# help out Storable -sub STORABLE_freeze { - my($self, $cloning) = @_; - return $$self; -} - -sub STORABLE_thaw { - my($self, $cloning, $str) = @_; - $$self = $str; -} - -1; - -__END__ - -#line 1162 diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/Escape.pm b/software/Slic3r-1.3.0.64bit/lib/URI/Escape.pm deleted file mode 100644 index 4ed0f4a2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/Escape.pm +++ /dev/null @@ -1,89 +0,0 @@ -#line 1 "URI/Escape.pm" -package URI::Escape; - -use strict; -use warnings; - -#line 139 - -use Exporter 5.57 'import'; -our %escapes; -our @EXPORT = qw(uri_escape uri_unescape uri_escape_utf8); -our @EXPORT_OK = qw(%escapes); -our $VERSION = "3.31"; - -use Carp (); - -# Build a char->hex map -for (0..255) { - $escapes{chr($_)} = sprintf("%%%02X", $_); -} - -my %subst; # compiled patterns - -my %Unsafe = ( - RFC2732 => qr/[^A-Za-z0-9\-_.!~*'()]/, - RFC3986 => qr/[^A-Za-z0-9\-\._~]/, -); - -sub uri_escape { - my($text, $patn) = @_; - return undef unless defined $text; - if (defined $patn){ - unless (exists $subst{$patn}) { - # Because we can't compile the regex we fake it with a cached sub - (my $tmp = $patn) =~ s,/,\\/,g; - eval "\$subst{\$patn} = sub {\$_[0] =~ s/([$tmp])/\$escapes{\$1} || _fail_hi(\$1)/ge; }"; - Carp::croak("uri_escape: $@") if $@; - } - &{$subst{$patn}}($text); - } else { - $text =~ s/($Unsafe{RFC3986})/$escapes{$1} || _fail_hi($1)/ge; - } - $text; -} - -sub _fail_hi { - my $chr = shift; - Carp::croak(sprintf "Can't escape \\x{%04X}, try uri_escape_utf8() instead", ord($chr)); -} - -sub uri_escape_utf8 { - my $text = shift; - utf8::encode($text); - return uri_escape($text, @_); -} - -sub uri_unescape { - # Note from RFC1630: "Sequences which start with a percent sign - # but are not followed by two hexadecimal characters are reserved - # for future extension" - my $str = shift; - if (@_ && wantarray) { - # not executed for the common case of a single argument - my @str = ($str, @_); # need to copy - for (@str) { - s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg; - } - return @str; - } - $str =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg if defined $str; - $str; -} - -# XXX FIXME escape_char is buggy as it assigns meaning to the string's storage format. -sub escape_char { - # Old versions of utf8::is_utf8() didn't properly handle magical vars (e.g. $1). - # The following forces a fetch to occur beforehand. - my $dummy = substr($_[0], 0, 0); - - if (utf8::is_utf8($_[0])) { - my $s = shift; - utf8::encode($s); - unshift(@_, $s); - } - - return join '', @URI::Escape::escapes{split //, $_[0]}; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/Heuristic.pm b/software/Slic3r-1.3.0.64bit/lib/URI/Heuristic.pm deleted file mode 100644 index 00acf353..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/Heuristic.pm +++ /dev/null @@ -1,170 +0,0 @@ -#line 1 "URI/Heuristic.pm" -package URI::Heuristic; - -#line 88 - -use strict; -use warnings; - -use Exporter 5.57 'import'; -our @EXPORT_OK = qw(uf_uri uf_uristr uf_url uf_urlstr); -our $VERSION = "4.20"; - -our ($MY_COUNTRY, $DEBUG); - -sub MY_COUNTRY() { - for ($MY_COUNTRY) { - return $_ if defined; - - # First try the environment. - $_ = $ENV{COUNTRY}; - return $_ if defined; - - # Try the country part of LC_ALL and LANG from environment - my @srcs = ($ENV{LC_ALL}, $ENV{LANG}); - # ...and HTTP_ACCEPT_LANGUAGE before those if present - if (my $httplang = $ENV{HTTP_ACCEPT_LANGUAGE}) { - # TODO: q-value processing/ordering - for $httplang (split(/\s*,\s*/, $httplang)) { - if ($httplang =~ /^\s*([a-zA-Z]+)[_-]([a-zA-Z]{2})\s*$/) { - unshift(@srcs, "${1}_${2}"); - last; - } - } - } - for (@srcs) { - next unless defined; - return lc($1) if /^[a-zA-Z]+_([a-zA-Z]{2})(?:[.@]|$)/; - } - - # Last bit of domain name. This may access the network. - require Net::Domain; - my $fqdn = Net::Domain::hostfqdn(); - $_ = lc($1) if $fqdn =~ /\.([a-zA-Z]{2})$/; - return $_ if defined; - - # Give up. Defined but false. - return ($_ = 0); - } -} - -our %LOCAL_GUESSING = -( - 'us' => [qw(www.ACME.gov www.ACME.mil)], - 'gb' => [qw(www.ACME.co.uk www.ACME.org.uk www.ACME.ac.uk)], - 'au' => [qw(www.ACME.com.au www.ACME.org.au www.ACME.edu.au)], - 'il' => [qw(www.ACME.co.il www.ACME.org.il www.ACME.net.il)], - # send corrections and new entries to -); -# Backwards compatibility; uk != United Kingdom in ISO 3166 -$LOCAL_GUESSING{uk} = $LOCAL_GUESSING{gb}; - - -sub uf_uristr ($) -{ - local($_) = @_; - print STDERR "uf_uristr: resolving $_\n" if $DEBUG; - return unless defined; - - s/^\s+//; - s/\s+$//; - - if (/^(www|web|home)[a-z0-9-]*(?:\.|$)/i) { - $_ = "http://$_"; - - } elsif (/^(ftp|gopher|news|wais|https|http)[a-z0-9-]*(?:\.|$)/i) { - $_ = lc($1) . "://$_"; - - } elsif ($^O ne "MacOS" && - (m,^/, || # absolute file name - m,^\.\.?/, || # relative file name - m,^[a-zA-Z]:[/\\],) # dosish file name - ) - { - $_ = "file:$_"; - - } elsif ($^O eq "MacOS" && m/:/) { - # potential MacOS file name - unless (m/^(ftp|gopher|news|wais|http|https|mailto):/) { - require URI::file; - my $a = URI::file->new($_)->as_string; - $_ = ($a =~ m/^file:/) ? $a : "file:$a"; - } - } elsif (/^\w+([\.\-]\w+)*\@(\w+\.)+\w{2,3}$/) { - $_ = "mailto:$_"; - - } elsif (!/^[a-zA-Z][a-zA-Z0-9.+\-]*:/) { # no scheme specified - if (s/^([-\w]+(?:\.[-\w]+)*)([\/:\?\#]|$)/$2/) { - my $host = $1; - - my $scheme = "http"; - if (/^:(\d+)\b/) { - # Some more or less well known ports - if ($1 =~ /^[56789]?443$/) { - $scheme = "https"; - } elsif ($1 eq "21") { - $scheme = "ftp"; - } - } - - if ($host !~ /\./ && $host ne "localhost") { - my @guess; - if (exists $ENV{URL_GUESS_PATTERN}) { - @guess = map { s/\bACME\b/$host/; $_ } - split(' ', $ENV{URL_GUESS_PATTERN}); - } else { - if (MY_COUNTRY()) { - my $special = $LOCAL_GUESSING{MY_COUNTRY()}; - if ($special) { - my @special = @$special; - push(@guess, map { s/\bACME\b/$host/; $_ } - @special); - } else { - push(@guess, "www.$host." . MY_COUNTRY()); - } - } - push(@guess, map "www.$host.$_", - "com", "org", "net", "edu", "int"); - } - - - my $guess; - for $guess (@guess) { - print STDERR "uf_uristr: gethostbyname('$guess.')..." - if $DEBUG; - if (gethostbyname("$guess.")) { - print STDERR "yes\n" if $DEBUG; - $host = $guess; - last; - } - print STDERR "no\n" if $DEBUG; - } - } - $_ = "$scheme://$host$_"; - - } else { - # pure junk, just return it unchanged... - - } - } - print STDERR "uf_uristr: ==> $_\n" if $DEBUG; - - $_; -} - -sub uf_uri ($) -{ - require URI; - URI->new(uf_uristr($_[0])); -} - -# legacy -*uf_urlstr = \*uf_uristr; - -sub uf_url ($) -{ - require URI::URL; - URI::URL->new(uf_uristr($_[0])); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/IRI.pm b/software/Slic3r-1.3.0.64bit/lib/URI/IRI.pm deleted file mode 100644 index dadf3dcf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/IRI.pm +++ /dev/null @@ -1,49 +0,0 @@ -#line 1 "URI/IRI.pm" -package URI::IRI; - -# Experimental - -use strict; -use warnings; -use URI (); - -use overload '""' => sub { shift->as_string }; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -sub new { - my($class, $uri, $scheme) = @_; - utf8::upgrade($uri); - return bless { - uri => URI->new($uri, $scheme), - }, $class; -} - -sub clone { - my $self = shift; - return bless { - uri => $self->{uri}->clone, - }, ref($self); -} - -sub as_string { - my $self = shift; - return $self->{uri}->as_iri; -} - -our $AUTOLOAD; -sub AUTOLOAD -{ - my $method = substr($AUTOLOAD, rindex($AUTOLOAD, '::')+2); - - # We create the function here so that it will not need to be - # autoloaded the next time. - no strict 'refs'; - *$method = sub { shift->{uri}->$method(@_) }; - goto &$method; -} - -sub DESTROY {} # avoid AUTOLOADing it - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/QueryParam.pm b/software/Slic3r-1.3.0.64bit/lib/URI/QueryParam.pm deleted file mode 100644 index c5dd8167..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/QueryParam.pm +++ /dev/null @@ -1,95 +0,0 @@ -#line 1 "URI/QueryParam.pm" -package URI::QueryParam; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -sub URI::_query::query_param { - my $self = shift; - my @old = $self->query_form; - - if (@_ == 0) { - # get keys - my (%seen, $i); - return grep !($i++ % 2 || $seen{$_}++), @old; - } - - my $key = shift; - my @i = grep $_ % 2 == 0 && $old[$_] eq $key, 0 .. $#old; - - if (@_) { - my @new = @old; - my @new_i = @i; - my @vals = map { ref($_) eq 'ARRAY' ? @$_ : $_ } @_; - - while (@new_i > @vals) { - splice @new, pop @new_i, 2; - } - if (@vals > @new_i) { - my $i = @new_i ? $new_i[-1] + 2 : @new; - my @splice = splice @vals, @new_i, @vals - @new_i; - - splice @new, $i, 0, map { $key => $_ } @splice; - } - if (@vals) { - #print "SET $new_i[0]\n"; - @new[ map $_ + 1, @new_i ] = @vals; - } - - $self->query_form(\@new); - } - - return wantarray ? @old[map $_+1, @i] : @i ? $old[$i[0]+1] : undef; -} - -sub URI::_query::query_param_append { - my $self = shift; - my $key = shift; - my @vals = map { ref $_ eq 'ARRAY' ? @$_ : $_ } @_; - $self->query_form($self->query_form, $key => \@vals); # XXX - return; -} - -sub URI::_query::query_param_delete { - my $self = shift; - my $key = shift; - my @old = $self->query_form; - my @vals; - - for (my $i = @old - 2; $i >= 0; $i -= 2) { - next if $old[$i] ne $key; - push(@vals, (splice(@old, $i, 2))[1]); - } - $self->query_form(\@old) if @vals; - return wantarray ? reverse @vals : $vals[-1]; -} - -sub URI::_query::query_form_hash { - my $self = shift; - my @old = $self->query_form; - if (@_) { - $self->query_form(@_ == 1 ? %{shift(@_)} : @_); - } - my %hash; - while (my($k, $v) = splice(@old, 0, 2)) { - if (exists $hash{$k}) { - for ($hash{$k}) { - $_ = [$_] unless ref($_) eq "ARRAY"; - push(@$_, $v); - } - } - else { - $hash{$k} = $v; - } - } - return \%hash; -} - -1; - -__END__ - -#line 209 diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/Split.pm b/software/Slic3r-1.3.0.64bit/lib/URI/Split.pm deleted file mode 100644 index b6eb0116..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/Split.pm +++ /dev/null @@ -1,48 +0,0 @@ -#line 1 "URI/Split.pm" -package URI::Split; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use Exporter 5.57 'import'; -our @EXPORT_OK = qw(uri_split uri_join); - -use URI::Escape (); - -sub uri_split { - return $_[0] =~ m,(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?,; -} - -sub uri_join { - my($scheme, $auth, $path, $query, $frag) = @_; - my $uri = defined($scheme) ? "$scheme:" : ""; - $path = "" unless defined $path; - if (defined $auth) { - $auth =~ s,([/?\#]), URI::Escape::escape_char($1),eg; - $uri .= "//$auth"; - $path = "/$path" if length($path) && $path !~ m,^/,; - } - elsif ($path =~ m,^//,) { - $uri .= "//"; # XXX force empty auth - } - unless (length $uri) { - $path =~ s,(:), URI::Escape::escape_char($1),e while $path =~ m,^[^:/?\#]+:,; - } - $path =~ s,([?\#]), URI::Escape::escape_char($1),eg; - $uri .= $path; - if (defined $query) { - $query =~ s,(\#), URI::Escape::escape_char($1),eg; - $uri .= "?$query"; - } - $uri .= "#$frag" if defined $frag; - $uri; -} - -1; - -__END__ - -#line 99 diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/URL.pm b/software/Slic3r-1.3.0.64bit/lib/URI/URL.pm deleted file mode 100644 index 0b81632c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/URL.pm +++ /dev/null @@ -1,189 +0,0 @@ -#line 1 "URI/URL.pm" -package URI::URL; - -use strict; -use warnings; - -use parent 'URI::WithBase'; - -our $VERSION = "5.04"; - -# Provide as much as possible of the old URI::URL interface for backwards -# compatibility... - -use Exporter 5.57 'import'; -our @EXPORT = qw(url); - -# Easy to use constructor -sub url ($;$) { URI::URL->new(@_); } - -use URI::Escape qw(uri_unescape); - -sub new -{ - my $class = shift; - my $self = $class->SUPER::new(@_); - $self->[0] = $self->[0]->canonical; - $self; -} - -sub newlocal -{ - my $class = shift; - require URI::file; - bless [URI::file->new_abs(shift)], $class; -} - -{package URI::_foreign; - sub _init # hope it is not defined - { - my $class = shift; - die "Unknown URI::URL scheme $_[1]:" if $URI::URL::STRICT; - $class->SUPER::_init(@_); - } -} - -sub strict -{ - my $old = $URI::URL::STRICT; - $URI::URL::STRICT = shift if @_; - $old; -} - -sub print_on -{ - my $self = shift; - require Data::Dumper; - print STDERR Data::Dumper::Dumper($self); -} - -sub _try -{ - my $self = shift; - my $method = shift; - scalar(eval { $self->$method(@_) }); -} - -sub crack -{ - # should be overridden by subclasses - my $self = shift; - (scalar($self->scheme), - $self->_try("user"), - $self->_try("password"), - $self->_try("host"), - $self->_try("port"), - $self->_try("path"), - $self->_try("params"), - $self->_try("query"), - scalar($self->fragment), - ) -} - -sub full_path -{ - my $self = shift; - my $path = $self->path_query; - $path = "/" unless length $path; - $path; -} - -sub netloc -{ - shift->authority(@_); -} - -sub epath -{ - my $path = shift->SUPER::path(@_); - $path =~ s/;.*//; - $path; -} - -sub eparams -{ - my $self = shift; - my @p = $self->path_segments; - return undef unless ref($p[-1]); - @p = @{$p[-1]}; - shift @p; - join(";", @p); -} - -sub params { shift->eparams(@_); } - -sub path { - my $self = shift; - my $old = $self->epath(@_); - return unless defined wantarray; - return '/' if !defined($old) || !length($old); - Carp::croak("Path components contain '/' (you must call epath)") - if $old =~ /%2[fF]/ and !@_; - $old = "/$old" if $old !~ m|^/| && defined $self->netloc; - return uri_unescape($old); -} - -sub path_components { - shift->path_segments(@_); -} - -sub query { - my $self = shift; - my $old = $self->equery(@_); - if (defined(wantarray) && defined($old)) { - if ($old =~ /%(?:26|2[bB]|3[dD])/) { # contains escaped '=' '&' or '+' - my $mess; - for ($old) { - $mess = "Query contains both '+' and '%2B'" - if /\+/ && /%2[bB]/; - $mess = "Form query contains escaped '=' or '&'" - if /=/ && /%(?:3[dD]|26)/; - } - if ($mess) { - Carp::croak("$mess (you must call equery)"); - } - } - # Now it should be safe to unescape the string without losing - # information - return uri_unescape($old); - } - undef; - -} - -sub abs -{ - my $self = shift; - my $base = shift; - my $allow_scheme = shift; - $allow_scheme = $URI::URL::ABS_ALLOW_RELATIVE_SCHEME - unless defined $allow_scheme; - local $URI::ABS_ALLOW_RELATIVE_SCHEME = $allow_scheme; - local $URI::ABS_REMOTE_LEADING_DOTS = $URI::URL::ABS_REMOTE_LEADING_DOTS; - $self->SUPER::abs($base); -} - -sub frag { shift->fragment(@_); } -sub keywords { shift->query_keywords(@_); } - -# file: -sub local_path { shift->file; } -sub unix_path { shift->file("unix"); } -sub dos_path { shift->file("dos"); } -sub mac_path { shift->file("mac"); } -sub vms_path { shift->file("vms"); } - -# mailto: -sub address { shift->to(@_); } -sub encoded822addr { shift->to(@_); } -sub URI::mailto::authority { shift->to(@_); } # make 'netloc' method work - -# news: -sub groupart { shift->_group(@_); } -sub article { shift->message(@_); } - -1; - -__END__ - -#line 304 diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/WithBase.pm b/software/Slic3r-1.3.0.64bit/lib/URI/WithBase.pm deleted file mode 100644 index 6d888fc0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/WithBase.pm +++ /dev/null @@ -1,118 +0,0 @@ -#line 1 "URI/WithBase.pm" -package URI::WithBase; - -use strict; -use warnings; - -use URI; -use Scalar::Util 'blessed'; - -our $VERSION = "2.20"; - -use overload '""' => "as_string", fallback => 1; - -sub as_string; # help overload find it - -sub new -{ - my($class, $uri, $base) = @_; - my $ibase = $base; - if ($base && blessed($base) && $base->isa(__PACKAGE__)) { - $base = $base->abs; - $ibase = $base->[0]; - } - bless [URI->new($uri, $ibase), $base], $class; -} - -sub new_abs -{ - my $class = shift; - my $self = $class->new(@_); - $self->abs; -} - -sub _init -{ - my $class = shift; - my($str, $scheme) = @_; - bless [URI->new($str, $scheme), undef], $class; -} - -sub eq -{ - my($self, $other) = @_; - $other = $other->[0] if blessed($other) and $other->isa(__PACKAGE__); - $self->[0]->eq($other); -} - -our $AUTOLOAD; -sub AUTOLOAD -{ - my $self = shift; - my $method = substr($AUTOLOAD, rindex($AUTOLOAD, '::')+2); - return if $method eq "DESTROY"; - $self->[0]->$method(@_); -} - -sub can { # override UNIVERSAL::can - my $self = shift; - $self->SUPER::can(@_) || ( - ref($self) - ? $self->[0]->can(@_) - : undef - ) -} - -sub base { - my $self = shift; - my $base = $self->[1]; - - if (@_) { # set - my $new_base = shift; - # ensure absoluteness - $new_base = $new_base->abs if ref($new_base) && $new_base->isa(__PACKAGE__); - $self->[1] = $new_base; - } - return unless defined wantarray; - - # The base attribute supports 'lazy' conversion from URL strings - # to URL objects. Strings may be stored but when a string is - # fetched it will automatically be converted to a URL object. - # The main benefit is to make it much cheaper to say: - # URI::WithBase->new($random_url_string, 'http:') - if (defined($base) && !ref($base)) { - $base = ref($self)->new($base); - $self->[1] = $base unless @_; - } - $base; -} - -sub clone -{ - my $self = shift; - my $base = $self->[1]; - $base = $base->clone if ref($base); - bless [$self->[0]->clone, $base], ref($self); -} - -sub abs -{ - my $self = shift; - my $base = shift || $self->base || return $self->clone; - $base = $base->as_string if ref($base); - bless [$self->[0]->abs($base, @_), $base], ref($self); -} - -sub rel -{ - my $self = shift; - my $base = shift || $self->base || return $self->clone; - $base = $base->as_string if ref($base); - bless [$self->[0]->rel($base, @_), $base], ref($self); -} - -1; - -__END__ - -#line 175 diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/_foreign.pm b/software/Slic3r-1.3.0.64bit/lib/URI/_foreign.pm deleted file mode 100644 index a545835c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/_foreign.pm +++ /dev/null @@ -1,12 +0,0 @@ -#line 1 "URI/_foreign.pm" -package URI::_foreign; - -use strict; -use warnings; - -use parent 'URI::_generic'; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/_generic.pm b/software/Slic3r-1.3.0.64bit/lib/URI/_generic.pm deleted file mode 100644 index 12b31081..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/_generic.pm +++ /dev/null @@ -1,258 +0,0 @@ -#line 1 "URI/_generic.pm" -package URI::_generic; - -use strict; -use warnings; - -use parent qw(URI URI::_query); - -use URI::Escape qw(uri_unescape); -use Carp (); - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -my $ACHAR = $URI::uric; $ACHAR =~ s,\\[/?],,g; -my $PCHAR = $URI::uric; $PCHAR =~ s,\\[?],,g; - -sub _no_scheme_ok { 1 } - -sub authority -{ - my $self = shift; - $$self =~ m,^((?:$URI::scheme_re:)?)(?://([^/?\#]*))?(.*)$,os or die; - - if (@_) { - my $auth = shift; - $$self = $1; - my $rest = $3; - if (defined $auth) { - $auth =~ s/([^$ACHAR])/ URI::Escape::escape_char($1)/ego; - utf8::downgrade($auth); - $$self .= "//$auth"; - } - _check_path($rest, $$self); - $$self .= $rest; - } - $2; -} - -sub path -{ - my $self = shift; - $$self =~ m,^((?:[^:/?\#]+:)?(?://[^/?\#]*)?)([^?\#]*)(.*)$,s or die; - - if (@_) { - $$self = $1; - my $rest = $3; - my $new_path = shift; - $new_path = "" unless defined $new_path; - $new_path =~ s/([^$PCHAR])/ URI::Escape::escape_char($1)/ego; - utf8::downgrade($new_path); - _check_path($new_path, $$self); - $$self .= $new_path . $rest; - } - $2; -} - -sub path_query -{ - my $self = shift; - $$self =~ m,^((?:[^:/?\#]+:)?(?://[^/?\#]*)?)([^\#]*)(.*)$,s or die; - - if (@_) { - $$self = $1; - my $rest = $3; - my $new_path = shift; - $new_path = "" unless defined $new_path; - $new_path =~ s/([^$URI::uric])/ URI::Escape::escape_char($1)/ego; - utf8::downgrade($new_path); - _check_path($new_path, $$self); - $$self .= $new_path . $rest; - } - $2; -} - -sub _check_path -{ - my($path, $pre) = @_; - my $prefix; - if ($pre =~ m,/,) { # authority present - $prefix = "/" if length($path) && $path !~ m,^[/?\#],; - } - else { - if ($path =~ m,^//,) { - Carp::carp("Path starting with double slash is confusing") - if $^W; - } - elsif (!length($pre) && $path =~ m,^[^:/?\#]+:,) { - Carp::carp("Path might look like scheme, './' prepended") - if $^W; - $prefix = "./"; - } - } - substr($_[0], 0, 0) = $prefix if defined $prefix; -} - -sub path_segments -{ - my $self = shift; - my $path = $self->path; - if (@_) { - my @arg = @_; # make a copy - for (@arg) { - if (ref($_)) { - my @seg = @$_; - $seg[0] =~ s/%/%25/g; - for (@seg) { s/;/%3B/g; } - $_ = join(";", @seg); - } - else { - s/%/%25/g; s/;/%3B/g; - } - s,/,%2F,g; - } - $self->path(join("/", @arg)); - } - return $path unless wantarray; - map {/;/ ? $self->_split_segment($_) - : uri_unescape($_) } - split('/', $path, -1); -} - - -sub _split_segment -{ - my $self = shift; - require URI::_segment; - URI::_segment->new(@_); -} - - -sub abs -{ - my $self = shift; - my $base = shift || Carp::croak("Missing base argument"); - - if (my $scheme = $self->scheme) { - return $self unless $URI::ABS_ALLOW_RELATIVE_SCHEME; - $base = URI->new($base) unless ref $base; - return $self unless $scheme eq $base->scheme; - } - - $base = URI->new($base) unless ref $base; - my $abs = $self->clone; - $abs->scheme($base->scheme); - return $abs if $$self =~ m,^(?:$URI::scheme_re:)?//,o; - $abs->authority($base->authority); - - my $path = $self->path; - return $abs if $path =~ m,^/,; - - if (!length($path)) { - my $abs = $base->clone; - my $query = $self->query; - $abs->query($query) if defined $query; - my $fragment = $self->fragment; - $abs->fragment($fragment) if defined $fragment; - return $abs; - } - - my $p = $base->path; - $p =~ s,[^/]+$,,; - $p .= $path; - my @p = split('/', $p, -1); - shift(@p) if @p && !length($p[0]); - my $i = 1; - while ($i < @p) { - #print "$i ", join("/", @p), " ($p[$i])\n"; - if ($p[$i-1] eq ".") { - splice(@p, $i-1, 1); - $i-- if $i > 1; - } - elsif ($p[$i] eq ".." && $p[$i-1] ne "..") { - splice(@p, $i-1, 2); - if ($i > 1) { - $i--; - push(@p, "") if $i == @p; - } - } - else { - $i++; - } - } - $p[-1] = "" if @p && $p[-1] eq "."; # trailing "/." - if ($URI::ABS_REMOTE_LEADING_DOTS) { - shift @p while @p && $p[0] =~ /^\.\.?$/; - } - $abs->path("/" . join("/", @p)); - $abs; -} - -# The opposite of $url->abs. Return a URI which is as relative as possible -sub rel { - my $self = shift; - my $base = shift || Carp::croak("Missing base argument"); - my $rel = $self->clone; - $base = URI->new($base) unless ref $base; - - #my($scheme, $auth, $path) = @{$rel}{qw(scheme authority path)}; - my $scheme = $rel->scheme; - my $auth = $rel->canonical->authority; - my $path = $rel->path; - - if (!defined($scheme) && !defined($auth)) { - # it is already relative - return $rel; - } - - #my($bscheme, $bauth, $bpath) = @{$base}{qw(scheme authority path)}; - my $bscheme = $base->scheme; - my $bauth = $base->canonical->authority; - my $bpath = $base->path; - - for ($bscheme, $bauth, $auth) { - $_ = '' unless defined - } - - unless ($scheme eq $bscheme && $auth eq $bauth) { - # different location, can't make it relative - return $rel; - } - - for ($path, $bpath) { $_ = "/$_" unless m,^/,; } - - # Make it relative by eliminating scheme and authority - $rel->scheme(undef); - $rel->authority(undef); - - # This loop is based on code from Nicolai Langfeldt . - # First we calculate common initial path components length ($li). - my $li = 1; - while (1) { - my $i = index($path, '/', $li); - last if $i < 0 || - $i != index($bpath, '/', $li) || - substr($path,$li,$i-$li) ne substr($bpath,$li,$i-$li); - $li=$i+1; - } - # then we nuke it from both paths - substr($path, 0,$li) = ''; - substr($bpath,0,$li) = ''; - - if ($path eq $bpath && - defined($rel->fragment) && - !defined($rel->query)) { - $rel->path(""); - } - else { - # Add one "../" for each path component left in the base path - $path = ('../' x $bpath =~ tr|/|/|) . $path; - $path = "./" if $path eq ""; - $rel->path($path); - } - - $rel; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/_idna.pm b/software/Slic3r-1.3.0.64bit/lib/URI/_idna.pm deleted file mode 100644 index d1310792..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/_idna.pm +++ /dev/null @@ -1,93 +0,0 @@ -#line 1 "URI/_idna.pm" -package URI::_idna; - -# This module implements the RFCs 3490 (IDNA) and 3491 (Nameprep) -# based on Python-2.6.4/Lib/encodings/idna.py - -use strict; -use warnings; - -use URI::_punycode qw(encode_punycode decode_punycode); -use Carp qw(croak); - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -BEGIN { - *URI::_idna::_ENV_::JOIN_LEAKS_UTF8_FLAGS = $] < 5.008_003 - ? sub () { 1 } - : sub () { 0 } - ; -} - -my $ASCII = qr/^[\x00-\x7F]*\z/; - -sub encode { - my $idomain = shift; - my @labels = split(/\./, $idomain, -1); - my @last_empty; - push(@last_empty, pop @labels) if @labels > 1 && $labels[-1] eq ""; - for (@labels) { - $_ = ToASCII($_); - } - - return eval 'join(".", @labels, @last_empty)' if URI::_idna::_ENV_::JOIN_LEAKS_UTF8_FLAGS; - return join(".", @labels, @last_empty); -} - -sub decode { - my $domain = shift; - return join(".", map ToUnicode($_), split(/\./, $domain, -1)) -} - -sub nameprep { # XXX real implementation missing - my $label = shift; - $label = lc($label); - return $label; -} - -sub check_size { - my $label = shift; - croak "Label empty" if $label eq ""; - croak "Label too long" if length($label) > 63; - return $label; -} - -sub ToASCII { - my $label = shift; - return check_size($label) if $label =~ $ASCII; - - # Step 2: nameprep - $label = nameprep($label); - # Step 3: UseSTD3ASCIIRules is false - # Step 4: try ASCII again - return check_size($label) if $label =~ $ASCII; - - # Step 5: Check ACE prefix - if ($label =~ /^xn--/) { - croak "Label starts with ACE prefix"; - } - - # Step 6: Encode with PUNYCODE - $label = encode_punycode($label); - - # Step 7: Prepend ACE prefix - $label = "xn--$label"; - - # Step 8: Check size - return check_size($label); -} - -sub ToUnicode { - my $label = shift; - $label = nameprep($label) unless $label =~ $ASCII; - return $label unless $label =~ /^xn--/; - my $result = decode_punycode(substr($label, 4)); - my $label2 = ToASCII($result); - if (lc($label) ne $label2) { - croak "IDNA does not round-trip: '\L$label\E' vs '$label2'"; - } - return $result; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/_ldap.pm b/software/Slic3r-1.3.0.64bit/lib/URI/_ldap.pm deleted file mode 100644 index eea9b75d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/_ldap.pm +++ /dev/null @@ -1,142 +0,0 @@ -#line 1 "URI/_ldap.pm" -# Copyright (c) 1998 Graham Barr . All rights reserved. -# This program is free software; you can redistribute it and/or -# modify it under the same terms as Perl itself. - -package URI::_ldap; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use URI::Escape qw(uri_unescape); - -sub _ldap_elem { - my $self = shift; - my $elem = shift; - my $query = $self->query; - my @bits = (split(/\?/,defined($query) ? $query : ""),("")x4); - my $old = $bits[$elem]; - - if (@_) { - my $new = shift; - $new =~ s/\?/%3F/g; - $bits[$elem] = $new; - $query = join("?",@bits); - $query =~ s/\?+$//; - $query = undef unless length($query); - $self->query($query); - } - - $old; -} - -sub dn { - my $old = shift->path(@_); - $old =~ s:^/::; - uri_unescape($old); -} - -sub attributes { - my $self = shift; - my $old = _ldap_elem($self,0, @_ ? join(",", map { my $tmp = $_; $tmp =~ s/,/%2C/g; $tmp } @_) : ()); - return $old unless wantarray; - map { uri_unescape($_) } split(/,/,$old); -} - -sub _scope { - my $self = shift; - my $old = _ldap_elem($self,1, @_); - return undef unless defined wantarray && defined $old; - uri_unescape($old); -} - -sub scope { - my $old = &_scope; - $old = "base" unless length $old; - $old; -} - -sub _filter { - my $self = shift; - my $old = _ldap_elem($self,2, @_); - return undef unless defined wantarray && defined $old; - uri_unescape($old); # || "(objectClass=*)"; -} - -sub filter { - my $old = &_filter; - $old = "(objectClass=*)" unless length $old; - $old; -} - -sub extensions { - my $self = shift; - my @ext; - while (@_) { - my $key = shift; - my $value = shift; - push(@ext, join("=", map { $_="" unless defined; s/,/%2C/g; $_ } $key, $value)); - } - @ext = join(",", @ext) if @ext; - my $old = _ldap_elem($self,3, @ext); - return $old unless wantarray; - map { uri_unescape($_) } map { /^([^=]+)=(.*)$/ } split(/,/,$old); -} - -sub canonical -{ - my $self = shift; - my $other = $self->_nonldap_canonical; - - # The stuff below is not as efficient as one might hope... - - $other = $other->clone if $other == $self; - - $other->dn(_normalize_dn($other->dn)); - - # Should really know about mixed case "postalAddress", etc... - $other->attributes(map lc, $other->attributes); - - # Lowercase scope, remove default - my $old_scope = $other->scope; - my $new_scope = lc($old_scope); - $new_scope = "" if $new_scope eq "base"; - $other->scope($new_scope) if $new_scope ne $old_scope; - - # Remove filter if default - my $old_filter = $other->filter; - $other->filter("") if lc($old_filter) eq "(objectclass=*)" || - lc($old_filter) eq "objectclass=*"; - - # Lowercase extensions types and deal with known extension values - my @ext = $other->extensions; - for (my $i = 0; $i < @ext; $i += 2) { - my $etype = $ext[$i] = lc($ext[$i]); - if ($etype =~ /^!?bindname$/) { - $ext[$i+1] = _normalize_dn($ext[$i+1]); - } - } - $other->extensions(@ext) if @ext; - - $other; -} - -sub _normalize_dn # RFC 2253 -{ - my $dn = shift; - - return $dn; - # The code below will fail if the "+" or "," is embedding in a quoted - # string or simply escaped... - - my @dn = split(/([+,])/, $dn); - for (@dn) { - s/^([a-zA-Z]+=)/lc($1)/e; - } - join("", @dn); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/_login.pm b/software/Slic3r-1.3.0.64bit/lib/URI/_login.pm deleted file mode 100644 index 4053accf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/_login.pm +++ /dev/null @@ -1,15 +0,0 @@ -#line 1 "URI/_login.pm" -package URI::_login; - -use strict; -use warnings; - -use parent qw(URI::_server URI::_userpass); - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -# Generic terminal logins. This is used as a base class for 'telnet', -# 'tn3270', and 'rlogin' URL schemes. - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/_punycode.pm b/software/Slic3r-1.3.0.64bit/lib/URI/_punycode.pm deleted file mode 100644 index 9d4c6448..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/_punycode.pm +++ /dev/null @@ -1,151 +0,0 @@ -#line 1 "URI/_punycode.pm" -package URI::_punycode; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use Exporter 'import'; -our @EXPORT = qw(encode_punycode decode_punycode); - -use integer; - -our $DEBUG = 0; - -use constant BASE => 36; -use constant TMIN => 1; -use constant TMAX => 26; -use constant SKEW => 38; -use constant DAMP => 700; -use constant INITIAL_BIAS => 72; -use constant INITIAL_N => 128; - -my $Delimiter = chr 0x2D; -my $BasicRE = qr/[\x00-\x7f]/; - -sub _croak { require Carp; Carp::croak(@_); } - -sub digit_value { - my $code = shift; - return ord($code) - ord("A") if $code =~ /[A-Z]/; - return ord($code) - ord("a") if $code =~ /[a-z]/; - return ord($code) - ord("0") + 26 if $code =~ /[0-9]/; - return; -} - -sub code_point { - my $digit = shift; - return $digit + ord('a') if 0 <= $digit && $digit <= 25; - return $digit + ord('0') - 26 if 26 <= $digit && $digit <= 36; - die 'NOT COME HERE'; -} - -sub adapt { - my($delta, $numpoints, $firsttime) = @_; - $delta = $firsttime ? $delta / DAMP : $delta / 2; - $delta += $delta / $numpoints; - my $k = 0; - while ($delta > ((BASE - TMIN) * TMAX) / 2) { - $delta /= BASE - TMIN; - $k += BASE; - } - return $k + (((BASE - TMIN + 1) * $delta) / ($delta + SKEW)); -} - -sub decode_punycode { - my $code = shift; - - my $n = INITIAL_N; - my $i = 0; - my $bias = INITIAL_BIAS; - my @output; - - if ($code =~ s/(.*)$Delimiter//o) { - push @output, map ord, split //, $1; - return _croak('non-basic code point') unless $1 =~ /^$BasicRE*$/o; - } - - while ($code) { - my $oldi = $i; - my $w = 1; - LOOP: - for (my $k = BASE; 1; $k += BASE) { - my $cp = substr($code, 0, 1, ''); - my $digit = digit_value($cp); - defined $digit or return _croak("invalid punycode input"); - $i += $digit * $w; - my $t = ($k <= $bias) ? TMIN - : ($k >= $bias + TMAX) ? TMAX : $k - $bias; - last LOOP if $digit < $t; - $w *= (BASE - $t); - } - $bias = adapt($i - $oldi, @output + 1, $oldi == 0); - warn "bias becomes $bias" if $DEBUG; - $n += $i / (@output + 1); - $i = $i % (@output + 1); - splice(@output, $i, 0, $n); - warn join " ", map sprintf('%04x', $_), @output if $DEBUG; - $i++; - } - return join '', map chr, @output; -} - -sub encode_punycode { - my $input = shift; - my @input = split //, $input; - - my $n = INITIAL_N; - my $delta = 0; - my $bias = INITIAL_BIAS; - - my @output; - my @basic = grep /$BasicRE/, @input; - my $h = my $b = @basic; - push @output, @basic; - push @output, $Delimiter if $b && $h < @input; - warn "basic codepoints: (@output)" if $DEBUG; - - while ($h < @input) { - my $m = min(grep { $_ >= $n } map ord, @input); - warn sprintf "next code point to insert is %04x", $m if $DEBUG; - $delta += ($m - $n) * ($h + 1); - $n = $m; - for my $i (@input) { - my $c = ord($i); - $delta++ if $c < $n; - if ($c == $n) { - my $q = $delta; - LOOP: - for (my $k = BASE; 1; $k += BASE) { - my $t = ($k <= $bias) ? TMIN : - ($k >= $bias + TMAX) ? TMAX : $k - $bias; - last LOOP if $q < $t; - my $cp = code_point($t + (($q - $t) % (BASE - $t))); - push @output, chr($cp); - $q = ($q - $t) / (BASE - $t); - } - push @output, chr(code_point($q)); - $bias = adapt($delta, $h + 1, $h == $b); - warn "bias becomes $bias" if $DEBUG; - $delta = 0; - $h++; - } - } - $delta++; - $n++; - } - return join '', @output; -} - -sub min { - my $min = shift; - for (@_) { $min = $_ if $_ <= $min } - return $min; -} - -1; -__END__ - -#line 205 diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/_query.pm b/software/Slic3r-1.3.0.64bit/lib/URI/_query.pm deleted file mode 100644 index 5b44f5ac..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/_query.pm +++ /dev/null @@ -1,99 +0,0 @@ -#line 1 "URI/_query.pm" -package URI::_query; - -use strict; -use warnings; - -use URI (); -use URI::Escape qw(uri_unescape); - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -sub query -{ - my $self = shift; - $$self =~ m,^([^?\#]*)(?:\?([^\#]*))?(.*)$,s or die; - - if (@_) { - my $q = shift; - $$self = $1; - if (defined $q) { - $q =~ s/([^$URI::uric])/ URI::Escape::escape_char($1)/ego; - utf8::downgrade($q); - $$self .= "?$q"; - } - $$self .= $3; - } - $2; -} - -# Handle ...?foo=bar&bar=foo type of query -sub query_form { - my $self = shift; - my $old = $self->query; - if (@_) { - # Try to set query string - my $delim; - my $r = $_[0]; - if (ref($r) eq "ARRAY") { - $delim = $_[1]; - @_ = @$r; - } - elsif (ref($r) eq "HASH") { - $delim = $_[1]; - @_ = map { $_ => $r->{$_} } sort keys %$r; - } - $delim = pop if @_ % 2; - - my @query; - while (my($key,$vals) = splice(@_, 0, 2)) { - $key = '' unless defined $key; - $key =~ s/([;\/?:@&=+,\$\[\]%])/ URI::Escape::escape_char($1)/eg; - $key =~ s/ /+/g; - $vals = [ref($vals) eq "ARRAY" ? @$vals : $vals]; - for my $val (@$vals) { - $val = '' unless defined $val; - $val =~ s/([;\/?:@&=+,\$\[\]%])/ URI::Escape::escape_char($1)/eg; - $val =~ s/ /+/g; - push(@query, "$key=$val"); - } - } - if (@query) { - unless ($delim) { - $delim = $1 if $old && $old =~ /([&;])/; - $delim ||= $URI::DEFAULT_QUERY_FORM_DELIMITER || "&"; - } - $self->query(join($delim, @query)); - } - else { - $self->query(undef); - } - } - return if !defined($old) || !length($old) || !defined(wantarray); - return unless $old =~ /=/; # not a form - map { s/\+/ /g; uri_unescape($_) } - map { /=/ ? split(/=/, $_, 2) : ($_ => '')} split(/[&;]/, $old); -} - -# Handle ...?dog+bones type of query -sub query_keywords -{ - my $self = shift; - my $old = $self->query; - if (@_) { - # Try to set query string - my @copy = @_; - @copy = @{$copy[0]} if @copy == 1 && ref($copy[0]) eq "ARRAY"; - for (@copy) { s/([;\/?:@&=+,\$\[\]%])/ URI::Escape::escape_char($1)/eg; } - $self->query(@copy ? join('+', @copy) : undef); - } - return if !defined($old) || !defined(wantarray); - return if $old =~ /=/; # not keywords, but a form - map { uri_unescape($_) } split(/\+/, $old, -1); -} - -# Some URI::URL compatibility stuff -sub equery { goto &query } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/_segment.pm b/software/Slic3r-1.3.0.64bit/lib/URI/_segment.pm deleted file mode 100644 index 6ff2e400..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/_segment.pm +++ /dev/null @@ -1,26 +0,0 @@ -#line 1 "URI/_segment.pm" -package URI::_segment; - -# Represents a generic path_segment so that it can be treated as -# a string too. - -use strict; -use warnings; - -use URI::Escape qw(uri_unescape); - -use overload '""' => sub { $_[0]->[0] }, - fallback => 1; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -sub new -{ - my $class = shift; - my @segment = split(';', shift, -1); - $segment[0] = uri_unescape($segment[0]); - bless \@segment, $class; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/_server.pm b/software/Slic3r-1.3.0.64bit/lib/URI/_server.pm deleted file mode 100644 index acfaafaf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/_server.pm +++ /dev/null @@ -1,168 +0,0 @@ -#line 1 "URI/_server.pm" -package URI::_server; - -use strict; -use warnings; - -use parent 'URI::_generic'; - -use URI::Escape qw(uri_unescape); - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -sub _uric_escape { - my($class, $str) = @_; - if ($str =~ m,^((?:$URI::scheme_re:)?)//([^/?\#]*)(.*)$,os) { - my($scheme, $host, $rest) = ($1, $2, $3); - my $ui = $host =~ s/(.*@)// ? $1 : ""; - my $port = $host =~ s/(:\d+)\z// ? $1 : ""; - if (_host_escape($host)) { - $str = "$scheme//$ui$host$port$rest"; - } - } - return $class->SUPER::_uric_escape($str); -} - -sub _host_escape { - return unless $_[0] =~ /[^$URI::uric]/; - eval { - require URI::_idna; - $_[0] = URI::_idna::encode($_[0]); - }; - return 0 if $@; - return 1; -} - -sub as_iri { - my $self = shift; - my $str = $self->SUPER::as_iri; - if ($str =~ /\bxn--/) { - if ($str =~ m,^((?:$URI::scheme_re:)?)//([^/?\#]*)(.*)$,os) { - my($scheme, $host, $rest) = ($1, $2, $3); - my $ui = $host =~ s/(.*@)// ? $1 : ""; - my $port = $host =~ s/(:\d+)\z// ? $1 : ""; - require URI::_idna; - $host = URI::_idna::decode($host); - $str = "$scheme//$ui$host$port$rest"; - } - } - return $str; -} - -sub userinfo -{ - my $self = shift; - my $old = $self->authority; - - if (@_) { - my $new = $old; - $new = "" unless defined $new; - $new =~ s/.*@//; # remove old stuff - my $ui = shift; - if (defined $ui) { - $ui =~ s/@/%40/g; # protect @ - $new = "$ui\@$new"; - } - $self->authority($new); - } - return undef if !defined($old) || $old !~ /(.*)@/; - return $1; -} - -sub host -{ - my $self = shift; - my $old = $self->authority; - if (@_) { - my $tmp = $old; - $tmp = "" unless defined $tmp; - my $ui = ($tmp =~ /(.*@)/) ? $1 : ""; - my $port = ($tmp =~ /(:\d+)$/) ? $1 : ""; - my $new = shift; - $new = "" unless defined $new; - if (length $new) { - $new =~ s/[@]/%40/g; # protect @ - if ($new =~ /^[^:]*:\d*\z/ || $new =~ /]:\d*\z/) { - $new =~ s/(:\d*)\z// || die "Assert"; - $port = $1; - } - $new = "[$new]" if $new =~ /:/ && $new !~ /^\[/; # IPv6 address - _host_escape($new); - } - $self->authority("$ui$new$port"); - } - return undef unless defined $old; - $old =~ s/.*@//; - $old =~ s/:\d+$//; # remove the port - $old =~ s{^\[(.*)\]$}{$1}; # remove brackets around IPv6 (RFC 3986 3.2.2) - return uri_unescape($old); -} - -sub ihost -{ - my $self = shift; - my $old = $self->host(@_); - if ($old =~ /(^|\.)xn--/) { - require URI::_idna; - $old = URI::_idna::decode($old); - } - return $old; -} - -sub _port -{ - my $self = shift; - my $old = $self->authority; - if (@_) { - my $new = $old; - $new =~ s/:\d*$//; - my $port = shift; - $new .= ":$port" if defined $port; - $self->authority($new); - } - return $1 if defined($old) && $old =~ /:(\d*)$/; - return; -} - -sub port -{ - my $self = shift; - my $port = $self->_port(@_); - $port = $self->default_port if !defined($port) || $port eq ""; - $port; -} - -sub host_port -{ - my $self = shift; - my $old = $self->authority; - $self->host(shift) if @_; - return undef unless defined $old; - $old =~ s/.*@//; # zap userinfo - $old =~ s/:$//; # empty port should be treated the same a no port - $old .= ":" . $self->port unless $old =~ /:\d+$/; - $old; -} - - -sub default_port { undef } - -sub canonical -{ - my $self = shift; - my $other = $self->SUPER::canonical; - my $host = $other->host || ""; - my $port = $other->_port; - my $uc_host = $host =~ /[A-Z]/; - my $def_port = defined($port) && ($port eq "" || - $port == $self->default_port); - if ($uc_host || $def_port) { - $other = $other->clone if $other == $self; - $other->host(lc $host) if $uc_host; - $other->port(undef) if $def_port; - } - $other; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/_userpass.pm b/software/Slic3r-1.3.0.64bit/lib/URI/_userpass.pm deleted file mode 100644 index ee02b2f2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/_userpass.pm +++ /dev/null @@ -1,57 +0,0 @@ -#line 1 "URI/_userpass.pm" -package URI::_userpass; - -use strict; -use warnings; - -use URI::Escape qw(uri_unescape); - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -sub user -{ - my $self = shift; - my $info = $self->userinfo; - if (@_) { - my $new = shift; - my $pass = defined($info) ? $info : ""; - $pass =~ s/^[^:]*//; - - if (!defined($new) && !length($pass)) { - $self->userinfo(undef); - } else { - $new = "" unless defined($new); - $new =~ s/%/%25/g; - $new =~ s/:/%3A/g; - $self->userinfo("$new$pass"); - } - } - return undef unless defined $info; - $info =~ s/:.*//; - uri_unescape($info); -} - -sub password -{ - my $self = shift; - my $info = $self->userinfo; - if (@_) { - my $new = shift; - my $user = defined($info) ? $info : ""; - $user =~ s/:.*//; - - if (!defined($new) && !length($user)) { - $self->userinfo(undef); - } else { - $new = "" unless defined($new); - $new =~ s/%/%25/g; - $self->userinfo("$user:$new"); - } - } - return undef unless defined $info; - return undef unless $info =~ s/^[^:]*://; - uri_unescape($info); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/data.pm b/software/Slic3r-1.3.0.64bit/lib/URI/data.pm deleted file mode 100644 index 7b00f95c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/data.pm +++ /dev/null @@ -1,82 +0,0 @@ -#line 1 "URI/data.pm" -package URI::data; # RFC 2397 - -use strict; -use warnings; - -use parent 'URI'; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use MIME::Base64 qw(encode_base64 decode_base64); -use URI::Escape qw(uri_unescape); - -sub media_type -{ - my $self = shift; - my $opaque = $self->opaque; - $opaque =~ /^([^,]*),?/ or die; - my $old = $1; - my $base64; - $base64 = $1 if $old =~ s/(;base64)$//i; - if (@_) { - my $new = shift; - $new = "" unless defined $new; - $new =~ s/%/%25/g; - $new =~ s/,/%2C/g; - $base64 = "" unless defined $base64; - $opaque =~ s/^[^,]*,?/$new$base64,/; - $self->opaque($opaque); - } - return uri_unescape($old) if $old; # media_type can't really be "0" - "text/plain;charset=US-ASCII"; # default type -} - -sub data -{ - my $self = shift; - my($enc, $data) = split(",", $self->opaque, 2); - unless (defined $data) { - $data = ""; - $enc = "" unless defined $enc; - } - my $base64 = ($enc =~ /;base64$/i); - if (@_) { - $enc =~ s/;base64$//i if $base64; - my $new = shift; - $new = "" unless defined $new; - my $uric_count = _uric_count($new); - my $urienc_len = $uric_count + (length($new) - $uric_count) * 3; - my $base64_len = int((length($new)+2) / 3) * 4; - $base64_len += 7; # because of ";base64" marker - if ($base64_len < $urienc_len || $_[0]) { - $enc .= ";base64"; - $new = encode_base64($new, ""); - } else { - $new =~ s/%/%25/g; - } - $self->opaque("$enc,$new"); - } - return unless defined wantarray; - $data = uri_unescape($data); - return $base64 ? decode_base64($data) : $data; -} - -# I could not find a better way to interpolate the tr/// chars from -# a variable. -my $ENC = $URI::uric; -$ENC =~ s/%//; - -eval < "OS2", - mac => "Mac", - MacOS => "Mac", - MSWin32 => "Win32", - win32 => "Win32", - msdos => "FAT", - dos => "FAT", - qnx => "QNX", -); - -sub os_class -{ - my($OS) = shift || $^O; - - my $class = "URI::file::" . ($OS_CLASS{$OS} || "Unix"); - no strict 'refs'; - unless (%{"$class\::"}) { - eval "require $class"; - die $@ if $@; - } - $class; -} - -sub host { uri_unescape(shift->authority(@_)) } - -sub new -{ - my($class, $path, $os) = @_; - os_class($os)->new($path); -} - -sub new_abs -{ - my $class = shift; - my $file = $class->new(@_); - return $file->abs($class->cwd) unless $$file =~ /^file:/; - $file; -} - -sub cwd -{ - my $class = shift; - require Cwd; - my $cwd = Cwd::cwd(); - $cwd = VMS::Filespec::unixpath($cwd) if $^O eq 'VMS'; - $cwd = $class->new($cwd); - $cwd .= "/" unless substr($cwd, -1, 1) eq "/"; - $cwd; -} - -sub canonical { - my $self = shift; - my $other = $self->SUPER::canonical; - - my $scheme = $other->scheme; - my $auth = $other->authority; - return $other if !defined($scheme) && !defined($auth); # relative - - if (!defined($auth) || - $auth eq "" || - lc($auth) eq "localhost" || - (defined($DEFAULT_AUTHORITY) && lc($auth) eq lc($DEFAULT_AUTHORITY)) - ) - { - # avoid cloning if $auth already match - if ((defined($auth) || defined($DEFAULT_AUTHORITY)) && - (!defined($auth) || !defined($DEFAULT_AUTHORITY) || $auth ne $DEFAULT_AUTHORITY) - ) - { - $other = $other->clone if $self == $other; - $other->authority($DEFAULT_AUTHORITY); - } - } - - $other; -} - -sub file -{ - my($self, $os) = @_; - os_class($os)->file($self); -} - -sub dir -{ - my($self, $os) = @_; - os_class($os)->dir($self); -} - -1; - -__END__ - -#line 265 - - -RFC 1630 - - [...] - - There is clearly a danger of confusion that a link made to a local - file should be followed by someone on a different system, with - unexpected and possibly harmful results. Therefore, the convention - is that even a "file" URL is provided with a host part. This allows - a client on another system to know that it cannot access the file - system, or perhaps to use some other local mechanism to access the - file. - - The special value "localhost" is used in the host field to indicate - that the filename should really be used on whatever host one is. - This for example allows links to be made to files which are - distributed on many machines, or to "your unix local password file" - subject of course to consistency across the users of the data. - - A void host field is equivalent to "localhost". - -#line 328 diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/file/Base.pm b/software/Slic3r-1.3.0.64bit/lib/URI/file/Base.pm deleted file mode 100644 index 8e12788a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/file/Base.pm +++ /dev/null @@ -1,86 +0,0 @@ -#line 1 "URI/file/Base.pm" -package URI::file::Base; - -use strict; -use warnings; - -use URI::Escape qw(); - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -sub new -{ - my $class = shift; - my $path = shift; - $path = "" unless defined $path; - - my($auth, $escaped_auth, $escaped_path); - - ($auth, $escaped_auth) = $class->_file_extract_authority($path); - ($path, $escaped_path) = $class->_file_extract_path($path); - - if (defined $auth) { - $auth =~ s,%,%25,g unless $escaped_auth; - $auth =~ s,([/?\#]), URI::Escape::escape_char($1),eg; - $auth = "//$auth"; - if (defined $path) { - $path = "/$path" unless substr($path, 0, 1) eq "/"; - } else { - $path = ""; - } - } else { - return undef unless defined $path; - $auth = ""; - } - - $path =~ s,([%;?]), URI::Escape::escape_char($1),eg unless $escaped_path; - $path =~ s/\#/%23/g; - - my $uri = $auth . $path; - $uri = "file:$uri" if substr($uri, 0, 1) eq "/"; - - URI->new($uri, "file"); -} - -sub _file_extract_authority -{ - my($class, $path) = @_; - return undef unless $class->_file_is_absolute($path); - return $URI::file::DEFAULT_AUTHORITY; -} - -sub _file_extract_path -{ - return undef; -} - -sub _file_is_absolute -{ - return 0; -} - -sub _file_is_localhost -{ - shift; # class - my $host = lc(shift); - return 1 if $host eq "localhost"; - eval { - require Net::Domain; - lc(Net::Domain::hostfqdn()) eq $host || - lc(Net::Domain::hostname()) eq $host; - }; -} - -sub file -{ - undef; -} - -sub dir -{ - my $self = shift; - $self->file(@_); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/file/FAT.pm b/software/Slic3r-1.3.0.64bit/lib/URI/file/FAT.pm deleted file mode 100644 index 950624ec..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/file/FAT.pm +++ /dev/null @@ -1,29 +0,0 @@ -#line 1 "URI/file/FAT.pm" -package URI::file::FAT; - -use strict; -use warnings; - -use parent 'URI::file::Win32'; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -sub fix_path -{ - shift; # class - for (@_) { - # turn it into 8.3 names - my @p = map uc, split(/\./, $_, -1); - return if @p > 2; # more than 1 dot is not allowed - @p = ("") unless @p; # split bug? (returns nothing when splitting "") - $_ = substr($p[0], 0, 8); - if (@p > 1) { - my $ext = substr($p[1], 0, 3); - $_ .= ".$ext" if length $ext; - } - } - 1; # ok -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/file/Mac.pm b/software/Slic3r-1.3.0.64bit/lib/URI/file/Mac.pm deleted file mode 100644 index 207ac529..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/file/Mac.pm +++ /dev/null @@ -1,123 +0,0 @@ -#line 1 "URI/file/Mac.pm" -package URI::file::Mac; - -use strict; -use warnings; - -use parent 'URI::file::Base'; - -use URI::Escape qw(uri_unescape); - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -sub _file_extract_path -{ - my $class = shift; - my $path = shift; - - my @pre; - if ($path =~ s/^(:+)//) { - if (length($1) == 1) { - @pre = (".") unless length($path); - } else { - @pre = ("..") x (length($1) - 1); - } - } else { #absolute - $pre[0] = ""; - } - - my $isdir = ($path =~ s/:$//); - $path =~ s,([%/;]), URI::Escape::escape_char($1),eg; - - my @path = split(/:/, $path, -1); - for (@path) { - if ($_ eq "." || $_ eq "..") { - $_ = "%2E" x length($_); - } - $_ = ".." unless length($_); - } - push (@path,"") if $isdir; - (join("/", @pre, @path), 1); -} - - -sub file -{ - my $class = shift; - my $uri = shift; - my @path; - - my $auth = $uri->authority; - if (defined $auth) { - if (lc($auth) ne "localhost" && $auth ne "") { - my $u_auth = uri_unescape($auth); - if (!$class->_file_is_localhost($u_auth)) { - # some other host (use it as volume name) - @path = ("", $auth); - # XXX or just return to make it illegal; - } - } - } - my @ps = split("/", $uri->path, -1); - shift @ps if @path; - push(@path, @ps); - - my $pre = ""; - if (!@path) { - return; # empty path; XXX return ":" instead? - } elsif ($path[0] eq "") { - # absolute - shift(@path); - if (@path == 1) { - return if $path[0] eq ""; # not root directory - push(@path, ""); # volume only, effectively append ":" - } - @ps = @path; - @path = (); - my $part; - for (@ps) { #fix up "." and "..", including interior, in relatives - next if $_ eq "."; - $part = $_ eq ".." ? "" : $_; - push(@path,$part); - } - if ($ps[-1] eq "..") { #if this happens, we need another : - push(@path,""); - } - - } else { - $pre = ":"; - @ps = @path; - @path = (); - my $part; - for (@ps) { #fix up "." and "..", including interior, in relatives - next if $_ eq "."; - $part = $_ eq ".." ? "" : $_; - push(@path,$part); - } - if ($ps[-1] eq "..") { #if this happens, we need another : - push(@path,""); - } - - } - return unless $pre || @path; - for (@path) { - s/;.*//; # get rid of parameters - #return unless length; # XXX - $_ = uri_unescape($_); - return if /\0/; - return if /:/; # Should we? - } - $pre . join(":", @path); -} - -sub dir -{ - my $class = shift; - my $path = $class->file(@_); - return unless defined $path; - $path .= ":" unless $path =~ /:$/; - $path; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/file/OS2.pm b/software/Slic3r-1.3.0.64bit/lib/URI/file/OS2.pm deleted file mode 100644 index 31f8dc65..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/file/OS2.pm +++ /dev/null @@ -1,34 +0,0 @@ -#line 1 "URI/file/OS2.pm" -package URI::file::OS2; - -use strict; -use warnings; - -use parent 'URI::file::Win32'; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -# The Win32 version translates k:/foo to file://k:/foo (?!) -# We add an empty host - -sub _file_extract_authority -{ - my $class = shift; - return $1 if $_[0] =~ s,^\\\\([^\\]+),,; # UNC - return $1 if $_[0] =~ s,^//([^/]+),,; # UNC too? - - if ($_[0] =~ m#^[a-zA-Z]{1,2}:#) { # allow for ab: drives - return ""; - } - return; -} - -sub file { - my $p = &URI::file::Win32::file; - return unless defined $p; - $p =~ s,\\,/,g; - $p; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/file/QNX.pm b/software/Slic3r-1.3.0.64bit/lib/URI/file/QNX.pm deleted file mode 100644 index 4a2146ea..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/file/QNX.pm +++ /dev/null @@ -1,22 +0,0 @@ -#line 1 "URI/file/QNX.pm" -package URI::file::QNX; - -use strict; -use warnings; - -use parent 'URI::file::Unix'; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -sub _file_extract_path -{ - my($class, $path) = @_; - # tidy path - $path =~ s,(.)//+,$1/,g; # ^// is correct - $path =~ s,(/\.)+/,/,g; - $path = "./$path" if $path =~ m,^[^:/]+:,,; # look like "scheme:" - $path; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/file/Unix.pm b/software/Slic3r-1.3.0.64bit/lib/URI/file/Unix.pm deleted file mode 100644 index e168c1bb..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/file/Unix.pm +++ /dev/null @@ -1,60 +0,0 @@ -#line 1 "URI/file/Unix.pm" -package URI::file::Unix; - -use strict; -use warnings; - -use parent 'URI::file::Base'; - -use URI::Escape qw(uri_unescape); - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -sub _file_extract_path -{ - my($class, $path) = @_; - - # tidy path - $path =~ s,//+,/,g; - $path =~ s,(/\.)+/,/,g; - $path = "./$path" if $path =~ m,^[^:/]+:,,; # look like "scheme:" - - return $path; -} - -sub _file_is_absolute { - my($class, $path) = @_; - return $path =~ m,^/,; -} - -sub file -{ - my $class = shift; - my $uri = shift; - my @path; - - my $auth = $uri->authority; - if (defined($auth)) { - if (lc($auth) ne "localhost" && $auth ne "") { - $auth = uri_unescape($auth); - unless ($class->_file_is_localhost($auth)) { - push(@path, "", "", $auth); - } - } - } - - my @ps = $uri->path_segments; - shift @ps if @path; - push(@path, @ps); - - for (@path) { - # Unix file/directory names are not allowed to contain '\0' or '/' - return undef if /\0/; - return undef if /\//; # should we really? - } - - return join("/", @path); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/file/Win32.pm b/software/Slic3r-1.3.0.64bit/lib/URI/file/Win32.pm deleted file mode 100644 index 4be3ba0a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/file/Win32.pm +++ /dev/null @@ -1,89 +0,0 @@ -#line 1 "URI/file/Win32.pm" -package URI::file::Win32; - -use strict; -use warnings; - -use parent 'URI::file::Base'; - -use URI::Escape qw(uri_unescape); - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -sub _file_extract_authority -{ - my $class = shift; - - return $class->SUPER::_file_extract_authority($_[0]) - if defined $URI::file::DEFAULT_AUTHORITY; - - return $1 if $_[0] =~ s,^\\\\([^\\]+),,; # UNC - return $1 if $_[0] =~ s,^//([^/]+),,; # UNC too? - - if ($_[0] =~ s,^([a-zA-Z]:),,) { - my $auth = $1; - $auth .= "relative" if $_[0] !~ m,^[\\/],; - return $auth; - } - return undef; -} - -sub _file_extract_path -{ - my($class, $path) = @_; - $path =~ s,\\,/,g; - #$path =~ s,//+,/,g; - $path =~ s,(/\.)+/,/,g; - - if (defined $URI::file::DEFAULT_AUTHORITY) { - $path =~ s,^([a-zA-Z]:),/$1,; - } - - return $path; -} - -sub _file_is_absolute { - my($class, $path) = @_; - return $path =~ m,^[a-zA-Z]:, || $path =~ m,^[/\\],; -} - -sub file -{ - my $class = shift; - my $uri = shift; - my $auth = $uri->authority; - my $rel; # is filename relative to drive specified in authority - if (defined $auth) { - $auth = uri_unescape($auth); - if ($auth =~ /^([a-zA-Z])[:|](relative)?/) { - $auth = uc($1) . ":"; - $rel++ if $2; - } elsif (lc($auth) eq "localhost") { - $auth = ""; - } elsif (length $auth) { - $auth = "\\\\" . $auth; # UNC - } - } else { - $auth = ""; - } - - my @path = $uri->path_segments; - for (@path) { - return undef if /\0/; - return undef if /\//; - #return undef if /\\/; # URLs with "\" is not uncommon - } - return undef unless $class->fix_path(@path); - - my $path = join("\\", @path); - $path =~ s/^\\// if $rel; - $path = $auth . $path; - $path =~ s,^\\([a-zA-Z])[:|],\u$1:,; - - return $path; -} - -sub fix_path { 1; } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/ftp.pm b/software/Slic3r-1.3.0.64bit/lib/URI/ftp.pm deleted file mode 100644 index 9c36479c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/ftp.pm +++ /dev/null @@ -1,48 +0,0 @@ -#line 1 "URI/ftp.pm" -package URI::ftp; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent qw(URI::_server URI::_userpass); - -sub default_port { 21 } - -sub path { shift->path_query(@_) } # XXX - -sub _user { shift->SUPER::user(@_); } -sub _password { shift->SUPER::password(@_); } - -sub user -{ - my $self = shift; - my $user = $self->_user(@_); - $user = "anonymous" unless defined $user; - $user; -} - -sub password -{ - my $self = shift; - my $pass = $self->_password(@_); - unless (defined $pass) { - my $user = $self->user; - if ($user eq 'anonymous' || $user eq 'ftp') { - # anonymous ftp login password - # If there is no ftp anonymous password specified - # then we'll just use 'anonymous@' - # We don't try to send the read e-mail address because: - # - We want to remain anonymous - # - We want to stop SPAM - # - We don't want to let ftp sites to discriminate by the user, - # host, country or ftp client being used. - $pass = 'anonymous@'; - } - } - $pass; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/gopher.pm b/software/Slic3r-1.3.0.64bit/lib/URI/gopher.pm deleted file mode 100644 index 109fb154..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/gopher.pm +++ /dev/null @@ -1,99 +0,0 @@ -#line 1 "URI/gopher.pm" -package URI::gopher; # , Dec 4, 1996 - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::_server'; - -use URI::Escape qw(uri_unescape); - -# A Gopher URL follows the common internet scheme syntax as defined in -# section 4.3 of [RFC-URL-SYNTAX]: -# -# gopher://[:]/ -# -# where -# -# := | -# %09 | -# %09%09 -# -# := '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' -# '8' | '9' | '+' | 'I' | 'g' | 'T' -# -# := *pchar Refer to RFC 1808 [4] -# := *pchar -# := *uchar Refer to RFC 1738 [3] -# -# If the optional port is omitted, the port defaults to 70. - -sub default_port { 70 } - -sub _gopher_type -{ - my $self = shift; - my $path = $self->path_query; - $path =~ s,^/,,; - my $gtype = $1 if $path =~ s/^(.)//s; - if (@_) { - my $new_type = shift; - if (defined($new_type)) { - Carp::croak("Bad gopher type '$new_type'") - unless length($new_type) == 1; - substr($path, 0, 0) = $new_type; - $self->path_query($path); - } else { - Carp::croak("Can't delete gopher type when selector is present") - if length($path); - $self->path_query(undef); - } - } - return $gtype; -} - -sub gopher_type -{ - my $self = shift; - my $gtype = $self->_gopher_type(@_); - $gtype = "1" unless defined $gtype; - $gtype; -} - -sub gtype { goto &gopher_type } # URI::URL compatibility - -sub selector { shift->_gfield(0, @_) } -sub search { shift->_gfield(1, @_) } -sub string { shift->_gfield(2, @_) } - -sub _gfield -{ - my $self = shift; - my $fno = shift; - my $path = $self->path_query; - - # not according to spec., but many popular browsers accept - # gopher URLs with a '?' before the search string. - $path =~ s/\?/\t/; - $path = uri_unescape($path); - $path =~ s,^/,,; - my $gtype = $1 if $path =~ s,^(.),,s; - my @path = split(/\t/, $path, 3); - if (@_) { - # modify - my $new = shift; - $path[$fno] = $new; - pop(@path) while @path && !defined($path[-1]); - for (@path) { $_="" unless defined } - $path = $gtype; - $path = "1" unless defined $path; - $path .= join("\t", @path); - $self->path_query($path); - } - $path[$fno]; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/http.pm b/software/Slic3r-1.3.0.64bit/lib/URI/http.pm deleted file mode 100644 index e3a5ec4d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/http.pm +++ /dev/null @@ -1,29 +0,0 @@ -#line 1 "URI/http.pm" -package URI::http; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::_server'; - -sub default_port { 80 } - -sub canonical -{ - my $self = shift; - my $other = $self->SUPER::canonical; - - my $slash_path = defined($other->authority) && - !length($other->path) && !defined($other->query); - - if ($slash_path) { - $other = $other->clone if $other == $self; - $other->path("/"); - } - $other; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/https.pm b/software/Slic3r-1.3.0.64bit/lib/URI/https.pm deleted file mode 100644 index 8f7990a6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/https.pm +++ /dev/null @@ -1,16 +0,0 @@ -#line 1 "URI/https.pm" -package URI::https; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::http'; - -sub default_port { 443 } - -sub secure { 1 } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/ldap.pm b/software/Slic3r-1.3.0.64bit/lib/URI/ldap.pm deleted file mode 100644 index 78348dd9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/ldap.pm +++ /dev/null @@ -1,27 +0,0 @@ -#line 1 "URI/ldap.pm" -# Copyright (c) 1998 Graham Barr . All rights reserved. -# This program is free software; you can redistribute it and/or -# modify it under the same terms as Perl itself. - -package URI::ldap; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent qw(URI::_ldap URI::_server); - -sub default_port { 389 } - -sub _nonldap_canonical { - my $self = shift; - $self->URI::_server::canonical(@_); -} - -1; - -__END__ - -#line 122 diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/ldapi.pm b/software/Slic3r-1.3.0.64bit/lib/URI/ldapi.pm deleted file mode 100644 index c2e90747..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/ldapi.pm +++ /dev/null @@ -1,31 +0,0 @@ -#line 1 "URI/ldapi.pm" -package URI::ldapi; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent qw(URI::_ldap URI::_generic); - -require URI::Escape; - -sub un_path { - my $self = shift; - my $old = URI::Escape::uri_unescape($self->authority); - if (@_) { - my $p = shift; - $p =~ s/:/%3A/g; - $p =~ s/\@/%40/g; - $self->authority($p); - } - return $old; -} - -sub _nonldap_canonical { - my $self = shift; - $self->URI::_generic::canonical(@_); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/ldaps.pm b/software/Slic3r-1.3.0.64bit/lib/URI/ldaps.pm deleted file mode 100644 index 224934a8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/ldaps.pm +++ /dev/null @@ -1,16 +0,0 @@ -#line 1 "URI/ldaps.pm" -package URI::ldaps; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::ldap'; - -sub default_port { 636 } - -sub secure { 1 } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/mailto.pm b/software/Slic3r-1.3.0.64bit/lib/URI/mailto.pm deleted file mode 100644 index 6d2044ad..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/mailto.pm +++ /dev/null @@ -1,75 +0,0 @@ -#line 1 "URI/mailto.pm" -package URI::mailto; # RFC 2368 - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent qw(URI URI::_query); - -sub to -{ - my $self = shift; - my @old = $self->headers; - if (@_) { - my @new = @old; - # get rid of any other to: fields - for (my $i = 0; $i < @new; $i += 2) { - if (lc($new[$i] || '') eq "to") { - splice(@new, $i, 2); - redo; - } - } - - my $to = shift; - $to = "" unless defined $to; - unshift(@new, "to" => $to); - $self->headers(@new); - } - return unless defined wantarray; - - my @to; - while (@old) { - my $h = shift @old; - my $v = shift @old; - push(@to, $v) if lc($h) eq "to"; - } - join(",", @to); -} - - -sub headers -{ - my $self = shift; - - # The trick is to just treat everything as the query string... - my $opaque = "to=" . $self->opaque; - $opaque =~ s/\?/&/; - - if (@_) { - my @new = @_; - - # strip out any "to" fields - my @to; - for (my $i=0; $i < @new; $i += 2) { - if (lc($new[$i] || '') eq "to") { - push(@to, (splice(@new, $i, 2))[1]); # remove header - redo; - } - } - - my $new = join(",",@to); - $new =~ s/%/%25/g; - $new =~ s/\?/%3F/g; - $self->opaque($new); - $self->query_form(@new) if @new; - } - return unless defined wantarray; - - # I am lazy today... - URI->new("mailto:?$opaque")->query_form; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/mms.pm b/software/Slic3r-1.3.0.64bit/lib/URI/mms.pm deleted file mode 100644 index 8cb3f214..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/mms.pm +++ /dev/null @@ -1,14 +0,0 @@ -#line 1 "URI/mms.pm" -package URI::mms; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::http'; - -sub default_port { 1755 } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/news.pm b/software/Slic3r-1.3.0.64bit/lib/URI/news.pm deleted file mode 100644 index 4b58f9d8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/news.pm +++ /dev/null @@ -1,73 +0,0 @@ -#line 1 "URI/news.pm" -package URI::news; # draft-gilman-news-url-01 - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::_server'; - -use URI::Escape qw(uri_unescape); -use Carp (); - -sub default_port { 119 } - -# newsURL = scheme ":" [ news-server ] [ refbygroup | message ] -# scheme = "news" | "snews" | "nntp" -# news-server = "//" server "/" -# refbygroup = group [ "/" messageno [ "-" messageno ] ] -# message = local-part "@" domain - -sub _group -{ - my $self = shift; - my $old = $self->path; - if (@_) { - my($group,$from,$to) = @_; - if ($group =~ /\@/) { - $group =~ s/^<(.*)>$/$1/; # "<" and ">" should not be part of it - } - $group =~ s,%,%25,g; - $group =~ s,/,%2F,g; - my $path = $group; - if (defined $from) { - $path .= "/$from"; - $path .= "-$to" if defined $to; - } - $self->path($path); - } - - $old =~ s,^/,,; - if ($old !~ /\@/ && $old =~ s,/(.*),, && wantarray) { - my $extra = $1; - return (uri_unescape($old), split(/-/, $extra)); - } - uri_unescape($old); -} - - -sub group -{ - my $self = shift; - if (@_) { - Carp::croak("Group name can't contain '\@'") if $_[0] =~ /\@/; - } - my @old = $self->_group(@_); - return if $old[0] =~ /\@/; - wantarray ? @old : $old[0]; -} - -sub message -{ - my $self = shift; - if (@_) { - Carp::croak("Message must contain '\@'") unless $_[0] =~ /\@/; - } - my $old = $self->_group(@_); - return undef unless $old =~ /\@/; - return $old; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/nntp.pm b/software/Slic3r-1.3.0.64bit/lib/URI/nntp.pm deleted file mode 100644 index 2b9b7ef4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/nntp.pm +++ /dev/null @@ -1,12 +0,0 @@ -#line 1 "URI/nntp.pm" -package URI::nntp; # draft-gilman-news-url-01 - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::news'; - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/pop.pm b/software/Slic3r-1.3.0.64bit/lib/URI/pop.pm deleted file mode 100644 index 570ddf08..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/pop.pm +++ /dev/null @@ -1,73 +0,0 @@ -#line 1 "URI/pop.pm" -package URI::pop; # RFC 2384 - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::_server'; - -use URI::Escape qw(uri_unescape); - -sub default_port { 110 } - -#pop://;auth=@: - -sub user -{ - my $self = shift; - my $old = $self->userinfo; - - if (@_) { - my $new_info = $old; - $new_info = "" unless defined $new_info; - $new_info =~ s/^[^;]*//; - - my $new = shift; - if (!defined($new) && !length($new_info)) { - $self->userinfo(undef); - } else { - $new = "" unless defined $new; - $new =~ s/%/%25/g; - $new =~ s/;/%3B/g; - $self->userinfo("$new$new_info"); - } - } - - return undef unless defined $old; - $old =~ s/;.*//; - return uri_unescape($old); -} - -sub auth -{ - my $self = shift; - my $old = $self->userinfo; - - if (@_) { - my $new = $old; - $new = "" unless defined $new; - $new =~ s/(^[^;]*)//; - my $user = $1; - $new =~ s/;auth=[^;]*//i; - - - my $auth = shift; - if (defined $auth) { - $auth =~ s/%/%25/g; - $auth =~ s/;/%3B/g; - $new = ";AUTH=$auth$new"; - } - $self->userinfo("$user$new"); - - } - - return undef unless defined $old; - $old =~ s/^[^;]*//; - return uri_unescape($1) if $old =~ /;auth=(.*)/i; - return; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/rlogin.pm b/software/Slic3r-1.3.0.64bit/lib/URI/rlogin.pm deleted file mode 100644 index d0863c84..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/rlogin.pm +++ /dev/null @@ -1,14 +0,0 @@ -#line 1 "URI/rlogin.pm" -package URI::rlogin; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::_login'; - -sub default_port { 513 } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/rsync.pm b/software/Slic3r-1.3.0.64bit/lib/URI/rsync.pm deleted file mode 100644 index ce1523c5..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/rsync.pm +++ /dev/null @@ -1,16 +0,0 @@ -#line 1 "URI/rsync.pm" -package URI::rsync; # http://rsync.samba.org/ - -# rsync://[USER@]HOST[:PORT]/SRC - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent qw(URI::_server URI::_userpass); - -sub default_port { 873 } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/rtsp.pm b/software/Slic3r-1.3.0.64bit/lib/URI/rtsp.pm deleted file mode 100644 index 42b4ccd5..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/rtsp.pm +++ /dev/null @@ -1,14 +0,0 @@ -#line 1 "URI/rtsp.pm" -package URI::rtsp; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::http'; - -sub default_port { 554 } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/rtspu.pm b/software/Slic3r-1.3.0.64bit/lib/URI/rtspu.pm deleted file mode 100644 index 578bb5ae..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/rtspu.pm +++ /dev/null @@ -1,14 +0,0 @@ -#line 1 "URI/rtspu.pm" -package URI::rtspu; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::rtsp'; - -sub default_port { 554 } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/sftp.pm b/software/Slic3r-1.3.0.64bit/lib/URI/sftp.pm deleted file mode 100644 index 2ef684d0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/sftp.pm +++ /dev/null @@ -1,12 +0,0 @@ -#line 1 "URI/sftp.pm" -package URI::sftp; - -use strict; -use warnings; - -use parent 'URI::ssh'; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/sip.pm b/software/Slic3r-1.3.0.64bit/lib/URI/sip.pm deleted file mode 100644 index 579f7a95..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/sip.pm +++ /dev/null @@ -1,87 +0,0 @@ -#line 1 "URI/sip.pm" -# -# Written by Ryan Kereliuk . This file may be -# distributed under the same terms as Perl itself. -# -# The RFC 3261 sip URI is :;?. -# - -package URI::sip; - -use strict; -use warnings; - -use parent qw(URI::_server URI::_userpass); - -use URI::Escape qw(uri_unescape); - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -sub default_port { 5060 } - -sub authority -{ - my $self = shift; - $$self =~ m,^($URI::scheme_re:)?([^;?]*)(.*)$,os or die; - my $old = $2; - - if (@_) { - my $auth = shift; - $$self = defined($1) ? $1 : ""; - my $rest = $3; - if (defined $auth) { - $auth =~ s/([^$URI::uric])/ URI::Escape::escape_char($1)/ego; - $$self .= "$auth"; - } - $$self .= $rest; - } - $old; -} - -sub params_form -{ - my $self = shift; - $$self =~ m,^((?:$URI::scheme_re:)?)(?:([^;?]*))?(;[^?]*)?(.*)$,os or die; - my $paramstr = $3; - - if (@_) { - my @args = @_; - $$self = $1 . $2; - my $rest = $4; - my @new; - for (my $i=0; $i < @args; $i += 2) { - push(@new, "$args[$i]=$args[$i+1]"); - } - $paramstr = join(";", @new); - $$self .= ";" . $paramstr . $rest; - } - $paramstr =~ s/^;//o; - return split(/[;=]/, $paramstr); -} - -sub params -{ - my $self = shift; - $$self =~ m,^((?:$URI::scheme_re:)?)(?:([^;?]*))?(;[^?]*)?(.*)$,os or die; - my $paramstr = $3; - - if (@_) { - my $new = shift; - $$self = $1 . $2; - my $rest = $4; - $$self .= $paramstr . $rest; - } - $paramstr =~ s/^;//o; - return $paramstr; -} - -# Inherited methods that make no sense for a SIP URI. -sub path {} -sub path_query {} -sub path_segments {} -sub abs { shift } -sub rel { shift } -sub query_keywords {} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/sips.pm b/software/Slic3r-1.3.0.64bit/lib/URI/sips.pm deleted file mode 100644 index a28094ef..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/sips.pm +++ /dev/null @@ -1,16 +0,0 @@ -#line 1 "URI/sips.pm" -package URI::sips; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::sip'; - -sub default_port { 5061 } - -sub secure { 1 } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/snews.pm b/software/Slic3r-1.3.0.64bit/lib/URI/snews.pm deleted file mode 100644 index 5d93fd99..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/snews.pm +++ /dev/null @@ -1,16 +0,0 @@ -#line 1 "URI/snews.pm" -package URI::snews; # draft-gilman-news-url-01 - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::news'; - -sub default_port { 563 } - -sub secure { 1 } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/ssh.pm b/software/Slic3r-1.3.0.64bit/lib/URI/ssh.pm deleted file mode 100644 index dd624572..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/ssh.pm +++ /dev/null @@ -1,18 +0,0 @@ -#line 1 "URI/ssh.pm" -package URI::ssh; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::_login'; - -# ssh://[USER@]HOST[:PORT]/SRC - -sub default_port { 22 } - -sub secure { 1 } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/telnet.pm b/software/Slic3r-1.3.0.64bit/lib/URI/telnet.pm deleted file mode 100644 index 131897d7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/telnet.pm +++ /dev/null @@ -1,14 +0,0 @@ -#line 1 "URI/telnet.pm" -package URI::telnet; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::_login'; - -sub default_port { 23 } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/URI/tn3270.pm b/software/Slic3r-1.3.0.64bit/lib/URI/tn3270.pm deleted file mode 100644 index 57a930c6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/URI/tn3270.pm +++ /dev/null @@ -1,14 +0,0 @@ -#line 1 "URI/tn3270.pm" -package URI::tn3270; - -use strict; -use warnings; - -our $VERSION = '1.71'; -$VERSION = eval $VERSION; - -use parent 'URI::_login'; - -sub default_port { 23 } - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Unicode/Normalize.pm b/software/Slic3r-1.3.0.64bit/lib/Unicode/Normalize.pm deleted file mode 100644 index 8dfd15fb..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Unicode/Normalize.pm +++ /dev/null @@ -1,137 +0,0 @@ -#line 1 "Unicode/Normalize.pm" -package Unicode::Normalize; - -BEGIN { - unless ('A' eq pack('U', 0x41)) { - die "Unicode::Normalize cannot stringify a Unicode code point\n"; - } - unless (0x41 == unpack('U', 'A')) { - die "Unicode::Normalize cannot get Unicode code point\n"; - } -} - -use 5.006; -use strict; -use warnings; -use Carp; - -no warnings 'utf8'; - -our $VERSION = '1.25'; -our $PACKAGE = __PACKAGE__; - -our @EXPORT = qw( NFC NFD NFKC NFKD ); -our @EXPORT_OK = qw( - normalize decompose reorder compose - checkNFD checkNFKD checkNFC checkNFKC check - getCanon getCompat getComposite getCombinClass - isExclusion isSingleton isNonStDecomp isComp2nd isComp_Ex - isNFD_NO isNFC_NO isNFC_MAYBE isNFKD_NO isNFKC_NO isNFKC_MAYBE - FCD checkFCD FCC checkFCC composeContiguous splitOnLastStarter - normalize_partial NFC_partial NFD_partial NFKC_partial NFKD_partial -); -our %EXPORT_TAGS = ( - all => [ @EXPORT, @EXPORT_OK ], - normalize => [ @EXPORT, qw/normalize decompose reorder compose/ ], - check => [ qw/checkNFD checkNFKD checkNFC checkNFKC check/ ], - fast => [ qw/FCD checkFCD FCC checkFCC composeContiguous/ ], -); - -## -## utilities for tests -## - -sub pack_U { - return pack('U*', @_); -} - -sub unpack_U { - - # The empty pack returns an empty UTF-8 string, so the effect is to force - # the shifted parameter into being UTF-8. This allows this to work on - # Perl 5.6, where there is no utf8::upgrade(). - return unpack('U*', shift(@_).pack('U*')); -} - -require Exporter; - -##### The above part is common to XS and PP ##### - -our @ISA = qw(Exporter DynaLoader); -require DynaLoader; -bootstrap Unicode::Normalize $VERSION; - -##### The below part is common to XS and PP ##### - -## -## normalize -## - -sub FCD ($) { - my $str = shift; - return checkFCD($str) ? $str : NFD($str); -} - -our %formNorm = ( - NFC => \&NFC, C => \&NFC, - NFD => \&NFD, D => \&NFD, - NFKC => \&NFKC, KC => \&NFKC, - NFKD => \&NFKD, KD => \&NFKD, - FCD => \&FCD, FCC => \&FCC, -); - -sub normalize($$) -{ - my $form = shift; - my $str = shift; - if (exists $formNorm{$form}) { - return $formNorm{$form}->($str); - } - croak($PACKAGE."::normalize: invalid form name: $form"); -} - -## -## partial -## - -sub normalize_partial ($$) { - if (exists $formNorm{$_[0]}) { - my $n = normalize($_[0], $_[1]); - my($p, $u) = splitOnLastStarter($n); - $_[1] = $u; - return $p; - } - croak($PACKAGE."::normalize_partial: invalid form name: $_[0]"); -} - -sub NFD_partial ($) { return normalize_partial('NFD', $_[0]) } -sub NFC_partial ($) { return normalize_partial('NFC', $_[0]) } -sub NFKD_partial($) { return normalize_partial('NFKD',$_[0]) } -sub NFKC_partial($) { return normalize_partial('NFKC',$_[0]) } - -## -## check -## - -our %formCheck = ( - NFC => \&checkNFC, C => \&checkNFC, - NFD => \&checkNFD, D => \&checkNFD, - NFKC => \&checkNFKC, KC => \&checkNFKC, - NFKD => \&checkNFKD, KD => \&checkNFKD, - FCD => \&checkFCD, FCC => \&checkFCC, -); - -sub check($$) -{ - my $form = shift; - my $str = shift; - if (exists $formCheck{$form}) { - return $formCheck{$form}->($str); - } - croak($PACKAGE."::check: invalid form name: $form"); -} - -1; -__END__ - -#line 636 diff --git a/software/Slic3r-1.3.0.64bit/lib/Win32.pm b/software/Slic3r-1.3.0.64bit/lib/Win32.pm deleted file mode 100644 index d71e16be..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Win32.pm +++ /dev/null @@ -1,657 +0,0 @@ -#line 1 "Win32.pm" -package Win32; - -# BEGIN { - use strict; - use vars qw|$VERSION $XS_VERSION @ISA @EXPORT @EXPORT_OK|; - - require Exporter; - require DynaLoader; - - @ISA = qw|Exporter DynaLoader|; - $VERSION = '0.52'; - $XS_VERSION = $VERSION; - $VERSION = eval $VERSION; - - @EXPORT = qw( - NULL - WIN31_CLASS - OWNER_SECURITY_INFORMATION - GROUP_SECURITY_INFORMATION - DACL_SECURITY_INFORMATION - SACL_SECURITY_INFORMATION - MB_ICONHAND - MB_ICONQUESTION - MB_ICONEXCLAMATION - MB_ICONASTERISK - MB_ICONWARNING - MB_ICONERROR - MB_ICONINFORMATION - MB_ICONSTOP - ); - @EXPORT_OK = qw( - GetOSName - SW_HIDE - SW_SHOWNORMAL - SW_SHOWMINIMIZED - SW_SHOWMAXIMIZED - SW_SHOWNOACTIVATE - - CSIDL_DESKTOP - CSIDL_PROGRAMS - CSIDL_PERSONAL - CSIDL_FAVORITES - CSIDL_STARTUP - CSIDL_RECENT - CSIDL_SENDTO - CSIDL_STARTMENU - CSIDL_MYMUSIC - CSIDL_MYVIDEO - CSIDL_DESKTOPDIRECTORY - CSIDL_NETHOOD - CSIDL_FONTS - CSIDL_TEMPLATES - CSIDL_COMMON_STARTMENU - CSIDL_COMMON_PROGRAMS - CSIDL_COMMON_STARTUP - CSIDL_COMMON_DESKTOPDIRECTORY - CSIDL_APPDATA - CSIDL_PRINTHOOD - CSIDL_LOCAL_APPDATA - CSIDL_COMMON_FAVORITES - CSIDL_INTERNET_CACHE - CSIDL_COOKIES - CSIDL_HISTORY - CSIDL_COMMON_APPDATA - CSIDL_WINDOWS - CSIDL_SYSTEM - CSIDL_PROGRAM_FILES - CSIDL_MYPICTURES - CSIDL_PROFILE - CSIDL_PROGRAM_FILES_COMMON - CSIDL_COMMON_TEMPLATES - CSIDL_COMMON_DOCUMENTS - CSIDL_COMMON_ADMINTOOLS - CSIDL_ADMINTOOLS - CSIDL_COMMON_MUSIC - CSIDL_COMMON_PICTURES - CSIDL_COMMON_VIDEO - CSIDL_RESOURCES - CSIDL_RESOURCES_LOCALIZED - CSIDL_CDBURN_AREA - ); -# } - -# We won't bother with the constant stuff, too much of a hassle. Just hard -# code it here. - -sub NULL { 0 } -sub WIN31_CLASS { &NULL } - -sub OWNER_SECURITY_INFORMATION { 0x00000001 } -sub GROUP_SECURITY_INFORMATION { 0x00000002 } -sub DACL_SECURITY_INFORMATION { 0x00000004 } -sub SACL_SECURITY_INFORMATION { 0x00000008 } - -sub MB_ICONHAND { 0x00000010 } -sub MB_ICONQUESTION { 0x00000020 } -sub MB_ICONEXCLAMATION { 0x00000030 } -sub MB_ICONASTERISK { 0x00000040 } -sub MB_ICONWARNING { 0x00000030 } -sub MB_ICONERROR { 0x00000010 } -sub MB_ICONINFORMATION { 0x00000040 } -sub MB_ICONSTOP { 0x00000010 } - -# -# Newly added constants. These have an empty prototype, unlike the -# the ones above, which aren't prototyped for compatibility reasons. -# -sub SW_HIDE () { 0 } -sub SW_SHOWNORMAL () { 1 } -sub SW_SHOWMINIMIZED () { 2 } -sub SW_SHOWMAXIMIZED () { 3 } -sub SW_SHOWNOACTIVATE () { 4 } - -sub CSIDL_DESKTOP () { 0x0000 } # -sub CSIDL_PROGRAMS () { 0x0002 } # Start Menu\Programs -sub CSIDL_PERSONAL () { 0x0005 } # "My Documents" folder -sub CSIDL_FAVORITES () { 0x0006 } # \Favorites -sub CSIDL_STARTUP () { 0x0007 } # Start Menu\Programs\Startup -sub CSIDL_RECENT () { 0x0008 } # \Recent -sub CSIDL_SENDTO () { 0x0009 } # \SendTo -sub CSIDL_STARTMENU () { 0x000B } # \Start Menu -sub CSIDL_MYMUSIC () { 0x000D } # "My Music" folder -sub CSIDL_MYVIDEO () { 0x000E } # "My Videos" folder -sub CSIDL_DESKTOPDIRECTORY () { 0x0010 } # \Desktop -sub CSIDL_NETHOOD () { 0x0013 } # \nethood -sub CSIDL_FONTS () { 0x0014 } # windows\fonts -sub CSIDL_TEMPLATES () { 0x0015 } -sub CSIDL_COMMON_STARTMENU () { 0x0016 } # All Users\Start Menu -sub CSIDL_COMMON_PROGRAMS () { 0x0017 } # All Users\Start Menu\Programs -sub CSIDL_COMMON_STARTUP () { 0x0018 } # All Users\Startup -sub CSIDL_COMMON_DESKTOPDIRECTORY () { 0x0019 } # All Users\Desktop -sub CSIDL_APPDATA () { 0x001A } # Application Data, new for NT4 -sub CSIDL_PRINTHOOD () { 0x001B } # \PrintHood -sub CSIDL_LOCAL_APPDATA () { 0x001C } # non roaming, user\Local Settings\Application Data -sub CSIDL_COMMON_FAVORITES () { 0x001F } -sub CSIDL_INTERNET_CACHE () { 0x0020 } -sub CSIDL_COOKIES () { 0x0021 } -sub CSIDL_HISTORY () { 0x0022 } -sub CSIDL_COMMON_APPDATA () { 0x0023 } # All Users\Application Data -sub CSIDL_WINDOWS () { 0x0024 } # GetWindowsDirectory() -sub CSIDL_SYSTEM () { 0x0025 } # GetSystemDirectory() -sub CSIDL_PROGRAM_FILES () { 0x0026 } # C:\Program Files -sub CSIDL_MYPICTURES () { 0x0027 } # "My Pictures", new for Win2K -sub CSIDL_PROFILE () { 0x0028 } # USERPROFILE -sub CSIDL_PROGRAM_FILES_COMMON () { 0x002B } # C:\Program Files\Common -sub CSIDL_COMMON_TEMPLATES () { 0x002D } # All Users\Templates -sub CSIDL_COMMON_DOCUMENTS () { 0x002E } # All Users\Documents -sub CSIDL_COMMON_ADMINTOOLS () { 0x002F } # All Users\Start Menu\Programs\Administrative Tools -sub CSIDL_ADMINTOOLS () { 0x0030 } # \Start Menu\Programs\Administrative Tools -sub CSIDL_COMMON_MUSIC () { 0x0035 } # All Users\My Music -sub CSIDL_COMMON_PICTURES () { 0x0036 } # All Users\My Pictures -sub CSIDL_COMMON_VIDEO () { 0x0037 } # All Users\My Video -sub CSIDL_RESOURCES () { 0x0038 } # %windir%\Resources\, For theme and other windows resources. -sub CSIDL_RESOURCES_LOCALIZED () { 0x0039 } # %windir%\Resources\, for theme and other windows specific resources. -sub CSIDL_CDBURN_AREA () { 0x003B } # \Local Settings\Application Data\Microsoft\CD Burning - -sub VER_NT_DOMAIN_CONTROLLER () { 0x0000002 } # The system is a domain controller and the operating system is Windows Server 2008, Windows Server 2003, or Windows 2000 Server. -sub VER_NT_SERVER () { 0x0000003 } # The operating system is Windows Server 2008, Windows Server 2003, or Windows 2000 Server. -# Note that a server that is also a domain controller is reported as VER_NT_DOMAIN_CONTROLLER, not VER_NT_SERVER. -sub VER_NT_WORKSTATION () { 0x0000001 } # The operating system is Windows Vista, Windows XP Professional, Windows XP Home Edition, or Windows 2000 Professional. - - -sub VER_SUITE_BACKOFFICE () { 0x00000004 } # Microsoft BackOffice components are installed. -sub VER_SUITE_BLADE () { 0x00000400 } # Windows Server 2003, Web Edition is installed. -sub VER_SUITE_COMPUTE_SERVER () { 0x00004000 } # Windows Server 2003, Compute Cluster Edition is installed. -sub VER_SUITE_DATACENTER () { 0x00000080 } # Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition, or Windows 2000 Datacenter Server is installed. -sub VER_SUITE_ENTERPRISE () { 0x00000002 } # Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition, or Windows 2000 Advanced Server is installed. Refer to the Remarks section for more information about this bit flag. -sub VER_SUITE_EMBEDDEDNT () { 0x00000040 } # Windows XP Embedded is installed. -sub VER_SUITE_PERSONAL () { 0x00000200 } # Windows Vista Home Premium, Windows Vista Home Basic, or Windows XP Home Edition is installed. -sub VER_SUITE_SINGLEUSERTS () { 0x00000100 } # Remote Desktop is supported, but only one interactive session is supported. This value is set unless the system is running in application server mode. -sub VER_SUITE_SMALLBUSINESS () { 0x00000001 } # Microsoft Small Business Server was once installed on the system, but may have been upgraded to another version of Windows. Refer to the Remarks section for more information about this bit flag. -sub VER_SUITE_SMALLBUSINESS_RESTRICTED () { 0x00000020 } # Microsoft Small Business Server is installed with the restrictive client license in force. Refer to the Remarks section for more information about this bit flag. -sub VER_SUITE_STORAGE_SERVER () { 0x00002000 } # Windows Storage Server 2003 R2 or Windows Storage Server 2003 is installed. -sub VER_SUITE_TERMINAL () { 0x00000010 } # Terminal Services is installed. This value is always set. -# If VER_SUITE_TERMINAL is set but VER_SUITE_SINGLEUSERTS is not set, the system is running in application server mode. -sub VER_SUITE_WH_SERVER () { 0x00008000 } # Windows Home Server is installed. - - -sub SM_TABLETPC () { 86 } -sub SM_MEDIACENTER () { 87 } -sub SM_STARTER () { 88 } -sub SM_SERVERR2 () { 89 } - -sub PRODUCT_UNDEFINED () { 0x000 } # An unknown product -sub PRODUCT_ULTIMATE () { 0x001 } # Ultimate -sub PRODUCT_HOME_BASIC () { 0x002 } # Home Basic -sub PRODUCT_HOME_PREMIUM () { 0x003 } # Home Premium -sub PRODUCT_ENTERPRISE () { 0x004 } # Enterprise -sub PRODUCT_HOME_BASIC_N () { 0x005 } # Home Basic N -sub PRODUCT_BUSINESS () { 0x006 } # Business -sub PRODUCT_STANDARD_SERVER () { 0x007 } # Server Standard (full installation) -sub PRODUCT_DATACENTER_SERVER () { 0x008 } # Server Datacenter (full installation) -sub PRODUCT_SMALLBUSINESS_SERVER () { 0x009 } # Windows Small Business Server -sub PRODUCT_ENTERPRISE_SERVER () { 0x00A } # Server Enterprise (full installation) -sub PRODUCT_STARTER () { 0x00B } # Starter -sub PRODUCT_DATACENTER_SERVER_CORE () { 0x00C } # Server Datacenter (core installation) -sub PRODUCT_STANDARD_SERVER_CORE () { 0x00D } # Server Standard (core installation) -sub PRODUCT_ENTERPRISE_SERVER_CORE () { 0x00E } # Server Enterprise (core installation) -sub PRODUCT_ENTERPRISE_SERVER_IA64 () { 0x00F } # Server Enterprise for Itanium-based Systems -sub PRODUCT_BUSINESS_N () { 0x010 } # Business N -sub PRODUCT_WEB_SERVER () { 0x011 } # Web Server (full installation) -sub PRODUCT_CLUSTER_SERVER () { 0x012 } # HPC Edition -sub PRODUCT_HOME_SERVER () { 0x013 } # Home Server Edition -sub PRODUCT_STORAGE_EXPRESS_SERVER () { 0x014 } # Storage Server Express -sub PRODUCT_STORAGE_STANDARD_SERVER () { 0x015 } # Storage Server Standard -sub PRODUCT_STORAGE_WORKGROUP_SERVER () { 0x016 } # Storage Server Workgroup -sub PRODUCT_STORAGE_ENTERPRISE_SERVER () { 0x017 } # Storage Server Enterprise -sub PRODUCT_SERVER_FOR_SMALLBUSINESS () { 0x018 } # Windows Server 2008 for Windows Essential Server Solutions -sub PRODUCT_SMALLBUSINESS_SERVER_PREMIUM () { 0x019 } # Windows Small Business Server Premium -sub PRODUCT_HOME_PREMIUM_N () { 0x01A } # Home Premium N -sub PRODUCT_ENTERPRISE_N () { 0x01B } # Enterprise N -sub PRODUCT_ULTIMATE_N () { 0x01C } # Ultimate N -sub PRODUCT_WEB_SERVER_CORE () { 0x01D } # Web Server (core installation) -sub PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT () { 0x01E } # Windows Essential Business Server Management Server -sub PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY () { 0x01F } # Windows Essential Business Server Security Server -sub PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING () { 0x020 } # Windows Essential Business Server Messaging Server -sub PRODUCT_SERVER_FOUNDATION () { 0x021 } # Server Foundation -#define PRODUCT_HOME_PREMIUM_SERVER 0x00000022 -sub PRODUCT_SERVER_FOR_SMALLBUSINESS_V () { 0x023 } # Windows Server 2008 without Hyper-V for Windows Essential Server Solutions -sub PRODUCT_STANDARD_SERVER_V () { 0x024 } # Server Standard without Hyper-V (full installation) -sub PRODUCT_DATACENTER_SERVER_V () { 0x025 } # Server Datacenter without Hyper-V (full installation) -sub PRODUCT_ENTERPRISE_SERVER_V () { 0x026 } # Server Enterprise without Hyper-V (full installation) -sub PRODUCT_DATACENTER_SERVER_CORE_V () { 0x027 } # Server Datacenter without Hyper-V (core installation) -sub PRODUCT_STANDARD_SERVER_CORE_V () { 0x028 } # Server Standard without Hyper-V (core installation) -sub PRODUCT_ENTERPRISE_SERVER_CORE_V () { 0x029 } # Server Enterprise without Hyper-V (core installation) -sub PRODUCT_HYPERV () { 0x02A } # Microsoft Hyper-V Server -#define PRODUCT_STORAGE_EXPRESS_SERVER_CORE 0x0000002B -#define PRODUCT_STORAGE_STANDARD_SERVER_CORE 0x0000002C -#define PRODUCT_STORAGE_WORKGROUP_SERVER_CORE 0x0000002D -#define PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE 0x0000002E -sub PRODUCT_STARTER_N () { 0x02F } # Starter N -sub PRODUCT_PROFESSIONAL () { 0x030 } # Professional -sub PRODUCT_PROFESSIONAL_N () { 0x031 } # Professional N -#define PRODUCT_SB_SOLUTION_SERVER 0x00000032 -#define PRODUCT_SERVER_FOR_SB_SOLUTIONS 0x00000033 -#define PRODUCT_STANDARD_SERVER_SOLUTIONS 0x00000034 -#define PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE 0x00000035 -#define PRODUCT_SB_SOLUTION_SERVER_EM 0x00000036 -#define PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM 0x00000037 -#define PRODUCT_SOLUTION_EMBEDDEDSERVER 0x00000038 -#define PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE 0x00000039 -#define PRODUCT_PROFESSIONAL_EMBEDDED 0x0000003A -#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT 0x0000003B -#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL 0x0000003C -#define PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC 0x0000003D -#define PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC 0x0000003E -#define PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE 0x0000003F -#define PRODUCT_CLUSTER_SERVER_V 0x00000040 -#define PRODUCT_EMBEDDED 0x00000041 -sub PRODUCT_STARTER_E () { 0x042 } # Starter E -sub PRODUCT_HOME_BASIC_E () { 0x043 } # Home Basic E -sub PRODUCT_HOME_PREMIUM_E () { 0x044 } # Home Premium E -sub PRODUCT_PROFESSIONAL_E () { 0x045 } # Professional E -sub PRODUCT_ENTERPRISE_E () { 0x046 } # Enterprise E -sub PRODUCT_ULTIMATE_E () { 0x047 } # Ultimate E -#define PRODUCT_ENTERPRISE_EVALUATION 0x00000048 -#define PRODUCT_MULTIPOINT_STANDARD_SERVER 0x0000004C -#define PRODUCT_MULTIPOINT_PREMIUM_SERVER 0x0000004D -#define PRODUCT_STANDARD_EVALUATION_SERVER 0x0000004F -#define PRODUCT_DATACENTER_EVALUATION_SERVER 0x00000050 -#define PRODUCT_ENTERPRISE_N_EVALUATION 0x00000054 -#define PRODUCT_EMBEDDED_AUTOMOTIVE 0x00000055 -#define PRODUCT_EMBEDDED_INDUSTRY_A 0x00000056 -#define PRODUCT_THINPC 0x00000057 -#define PRODUCT_EMBEDDED_A 0x00000058 -#define PRODUCT_EMBEDDED_INDUSTRY 0x00000059 -#define PRODUCT_EMBEDDED_E 0x0000005A -#define PRODUCT_EMBEDDED_INDUSTRY_E 0x0000005B -#define PRODUCT_EMBEDDED_INDUSTRY_A_E 0x0000005C -#define PRODUCT_STORAGE_WORKGROUP_EVALUATION_SERVER 0x0000005F -#define PRODUCT_STORAGE_STANDARD_EVALUATION_SERVER 0x00000060 -#define PRODUCT_CORE_ARM 0x00000061 -sub PRODUCT_CORE_N () { 0x62 } # Windows 10 Home N -sub PRODUCT_CORE_COUNTRYSPECIFIC () { 0x63 } # Windows 10 Home China -sub PRODUCT_CORE_SINGLELANGUAGE () { 0x64 } # Windows 10 Home Single Language -sub PRODUCT_CORE () { 0x65 } # Windows 10 Home -#define PRODUCT_PROFESSIONAL_WMC 0x00000067 -#define PRODUCT_MOBILE_CORE 0x00000068 -#define PRODUCT_EMBEDDED_INDUSTRY_EVAL 0x00000069 -#define PRODUCT_EMBEDDED_INDUSTRY_E_EVAL 0x0000006A -#define PRODUCT_EMBEDDED_EVAL 0x0000006B -#define PRODUCT_EMBEDDED_E_EVAL 0x0000006C -#define PRODUCT_NANO_SERVER 0x0000006D -#define PRODUCT_CLOUD_STORAGE_SERVER 0x0000006E -#define PRODUCT_CORE_CONNECTED 0x0000006F -#define PRODUCT_PROFESSIONAL_STUDENT 0x00000070 -#define PRODUCT_CORE_CONNECTED_N 0x00000071 -#define PRODUCT_PROFESSIONAL_STUDENT_N 0x00000072 -#define PRODUCT_CORE_CONNECTED_SINGLELANGUAGE 0x00000073 -#define PRODUCT_CORE_CONNECTED_COUNTRYSPECIFIC 0x00000074 -#define PRODUCT_CONNECTED_CAR 0x00000075 -#define PRODUCT_INDUSTRY_HANDHELD 0x00000076 -#define PRODUCT_PPI_PRO 0x00000077 -#define PRODUCT_ARM64_SERVER 0x00000078 -sub PRODUCT_EDUCATION () { 0x79 } # Windows 10 Education -sub PRODUCT_EDUCATION_N () { 0x7A } # Windows 10 Education N -#define PRODUCT_IOTUAP 0x0000007B -#define PRODUCT_CLOUD_HOST_INFRASTRUCTURE_SERVER 0x0000007C -#define PRODUCT_ENTERPRISE_S 0x0000007D -#define PRODUCT_ENTERPRISE_S_N 0x0000007E -#define PRODUCT_PROFESSIONAL_S 0x0000007F -#define PRODUCT_PROFESSIONAL_S_N 0x00000080 -#define PRODUCT_ENTERPRISE_S_EVALUATION 0x00000081 -#define PRODUCT_ENTERPRISE_S_N_EVALUATION 0x00000082 - -sub PRODUCT_UNLICENSED () { 0xABCDABCD } # product has not been activated and is no longer in the grace period - -sub PROCESSOR_ARCHITECTURE_AMD64 () { 9 } # x64 (AMD or Intel) -sub PROCESSOR_ARCHITECTURE_IA64 () { 6 } # Intel Itanium Processor Family (IPF) -sub PROCESSOR_ARCHITECTURE_INTEL () { 0 } # x86 -sub PROCESSOR_ARCHITECTURE_UNKNOWN () { 0xffff } # Unknown architecture. - -sub _GetProcessorArchitecture { - my $arch = { - 386 => PROCESSOR_ARCHITECTURE_INTEL, - 486 => PROCESSOR_ARCHITECTURE_INTEL, - 586 => PROCESSOR_ARCHITECTURE_INTEL, - 2200 => PROCESSOR_ARCHITECTURE_IA64, - 8664 => PROCESSOR_ARCHITECTURE_AMD64, - }->{Win32::GetChipName()}; - return defined($arch) ? $arch : PROCESSOR_ARCHITECTURE_UNKNOWN; -} - -### This method is just a simple interface into GetOSVersion(). More -### specific or demanding situations should use that instead. - -my ($cached_os, $cached_desc); - -sub GetOSName { - unless (defined $cached_os) { - my($desc, $major, $minor, $build, $id, undef, undef, $suitemask, $producttype) - = Win32::GetOSVersion(); - my $arch = _GetProcessorArchitecture(); - my $productinfo = Win32::GetProductInfo(6, 0, 0, 0); - ($cached_os, $cached_desc) = _GetOSName($desc, $major, $minor, $build, $id, - $suitemask, $producttype, $productinfo, $arch); - } - return wantarray ? ($cached_os, $cached_desc) : $cached_os; -} - -sub GetOSDisplayName { - # Calling GetOSDisplayName() with arguments is for the test suite only! - my($name,$desc) = @_ ? @_ : GetOSName(); - $name =~ s/^Win//; - if ($desc =~ /^Windows Home Server\b/ || $desc =~ /^Windows XP Professional x64 Edition\b/) { - ($name, $desc) = ($desc, ""); - } - elsif ($desc =~ s/\s*(Windows (.*) Server( \d+)?)//) { - $name = "$1 $name"; - $desc =~ s/^\s+//; - } - else { - for ($name) { - s/^/Windows / unless /^Win32s$/; - s/\/.Net//; - s/NT(\d)/NT $1/; - if ($desc =~ s/\s*(HPC|Small Business|Web) Server//) { - my $name = $1; - $desc =~ s/^\s*//; - s/(200.)/$name Server $1/; - } - s/^Windows (20(03|08|12))/Windows Server $1/; - } - } - $name .= " $desc" if length $desc; - return $name; -} - -sub _GetSystemMetrics { - my($index,$metrics) = @_; - return Win32::GetSystemMetrics($index) unless ref $metrics; - return $metrics->{$index} if ref $metrics eq "HASH" && defined $metrics->{$index}; - return 1 if ref $metrics eq "ARRAY" && grep $_ == $index, @$metrics; - return 0; -} - -sub _GetOSName { - # The $metrics argument only exists for the benefit of t/GetOSName.t - my($csd, $major, $minor, $build, $id, $suitemask, $producttype, $productinfo, $arch, $metrics) = @_; - - my($os,@tags); - my $desc = ""; - if ($id == 0) { - $os = "Win32s"; - } - elsif ($id == 1) { - if ($minor == 0) { - $os = "95"; - } - elsif ($minor == 10) { - $os = "98"; - } - elsif ($minor == 90) { - $os = "Me"; - } - } - elsif ($id == 2) { - if ($major == 3) { - $os = "NT3.51"; - } - elsif ($major == 4) { - $os = "NT4"; - } - elsif ($major == 5) { - if ($minor == 0) { - $os = "2000"; - if ($producttype == VER_NT_WORKSTATION) { - $desc = "Professional"; - } - else { - if ($suitemask & VER_SUITE_DATACENTER) { - $desc = "Datacenter Server"; - } - elsif ($suitemask & VER_SUITE_ENTERPRISE) { - $desc = "Advanced Server"; - } - elsif ($suitemask & VER_SUITE_SMALLBUSINESS_RESTRICTED) { - $desc = "Small Business Server"; - } - else { - $desc = "Server"; - } - } - # XXX ignoring "Windows 2000 Advanced Server Limited Edition" for Itanium - # XXX and "Windows 2000 Datacenter Server Limited Edition" for Itanium - } - elsif ($minor == 1) { - $os = "XP/.Net"; - if (_GetSystemMetrics(SM_MEDIACENTER, $metrics)) { - $desc = "Media Center Edition"; - } - elsif (_GetSystemMetrics(SM_TABLETPC, $metrics)) { - # Tablet PC Edition is based on XP Pro - $desc = "Tablet PC Edition"; - } - elsif (_GetSystemMetrics(SM_STARTER, $metrics)) { - $desc = "Starter Edition"; - } - elsif ($suitemask & VER_SUITE_PERSONAL) { - $desc = "Home Edition"; - } - else { - $desc = "Professional"; - } - # XXX ignoring all Windows XP Embedded and Fundamentals versions - } - elsif ($minor == 2) { - $os = "2003"; - - if (_GetSystemMetrics(SM_SERVERR2, $metrics)) { - # XXX R2 was released for all x86 and x64 versions, - # XXX but only Enterprise Edition for Itanium. - $desc = "R2"; - } - - if ($suitemask == VER_SUITE_STORAGE_SERVER) { - $desc .= " Windows Storage Server"; - } - elsif ($suitemask == VER_SUITE_WH_SERVER) { - $desc .= " Windows Home Server"; - } - elsif ($producttype == VER_NT_WORKSTATION && $arch == PROCESSOR_ARCHITECTURE_AMD64) { - $desc .= " Windows XP Professional x64 Edition"; - } - - # Test for the server type. - if ($producttype != VER_NT_WORKSTATION) { - if ($arch == PROCESSOR_ARCHITECTURE_IA64) { - if ($suitemask & VER_SUITE_DATACENTER) { - $desc .= " Datacenter Edition for Itanium-based Systems"; - } - elsif ($suitemask & VER_SUITE_ENTERPRISE) { - $desc .= " Enterprise Edition for Itanium-based Systems"; - } - } - elsif ($arch == PROCESSOR_ARCHITECTURE_AMD64) { - if ($suitemask & VER_SUITE_DATACENTER) { - $desc .= " Datacenter x64 Edition"; - } - elsif ($suitemask & VER_SUITE_ENTERPRISE) { - $desc .= " Enterprise x64 Edition"; - } - else { - $desc .= " Standard x64 Edition"; - } - } - else { - if ($suitemask & VER_SUITE_COMPUTE_SERVER) { - $desc .= " Windows Compute Cluster Server"; - } - elsif ($suitemask & VER_SUITE_DATACENTER) { - $desc .= " Datacenter Edition"; - } - elsif ($suitemask & VER_SUITE_ENTERPRISE) { - $desc .= " Enterprise Edition"; - } - elsif ($suitemask & VER_SUITE_BLADE) { - $desc .= " Web Edition"; - } - elsif ($suitemask & VER_SUITE_SMALLBUSINESS_RESTRICTED) { - $desc .= " Small Business Server"; - } - else { - if ($desc !~ /Windows (Home|Storage) Server/) { - $desc .= " Standard Edition"; - } - } - } - } - } - } - elsif ($major == 6) { - if ($minor == 0) { - if ($producttype == VER_NT_WORKSTATION) { - $os = "Vista"; - } - else { - $os = "2008"; - } - } - elsif ($minor == 1) { - if ($producttype == VER_NT_WORKSTATION) { - $os = "7"; - } - else { - $os = "2008"; - $desc = "R2"; - } - } - elsif ($minor == 2) { - if ($producttype == VER_NT_WORKSTATION) { - $os = "8"; - } - else { - $os = "2012"; - } - } - elsif ($minor == 3) { - if ($producttype == VER_NT_WORKSTATION) { - $os = "8.1"; - } - else { - $os = "2012"; - $desc = "R2"; - } - } - } - elsif ($major == 10) { - $os = '10'; - } - - if ($major >= 6) { - if ($productinfo == PRODUCT_ULTIMATE) { - $desc .= " Ultimate"; - } - elsif ($productinfo == PRODUCT_HOME_PREMIUM) { - $desc .= " Home Premium"; - } - elsif ($productinfo == PRODUCT_HOME_BASIC) { - $desc .= " Home Basic"; - } - elsif ($productinfo == PRODUCT_ENTERPRISE) { - $desc .= " Enterprise"; - } - elsif ($productinfo == PRODUCT_BUSINESS) { - # "Windows 7 Business" had a name change to "Windows 7 Professional" - $desc .= $minor == 0 ? " Business" : " Professional"; - } - elsif ($productinfo == PRODUCT_STARTER) { - $desc .= " Starter"; - } - elsif ($productinfo == PRODUCT_CLUSTER_SERVER) { - $desc .= " HPC Server"; - } - elsif ($productinfo == PRODUCT_DATACENTER_SERVER) { - $desc .= " Datacenter"; - } - elsif ($productinfo == PRODUCT_DATACENTER_SERVER_CORE) { - $desc .= " Datacenter Edition (core installation)"; - } - elsif ($productinfo == PRODUCT_ENTERPRISE_SERVER) { - $desc .= " Enterprise"; - } - elsif ($productinfo == PRODUCT_ENTERPRISE_SERVER_CORE) { - $desc .= " Enterprise Edition (core installation)"; - } - elsif ($productinfo == PRODUCT_ENTERPRISE_SERVER_IA64) { - $desc .= " Enterprise Edition for Itanium-based Systems"; - } - elsif ($productinfo == PRODUCT_SMALLBUSINESS_SERVER) { - $desc .= " Small Business Server"; - } - elsif ($productinfo == PRODUCT_SMALLBUSINESS_SERVER_PREMIUM) { - $desc .= " Small Business Server Premium Edition"; - } - elsif ($productinfo == PRODUCT_STANDARD_SERVER) { - $desc .= " Standard"; - } - elsif ($productinfo == PRODUCT_STANDARD_SERVER_CORE) { - $desc .= " Standard Edition (core installation)"; - } - elsif ($productinfo == PRODUCT_WEB_SERVER) { - $desc .= " Web Server"; - } - elsif ($productinfo == PRODUCT_PROFESSIONAL) { - $desc .= " Professional"; - } - - if ($arch == PROCESSOR_ARCHITECTURE_INTEL) { - $desc .= " (32-bit)"; - } - elsif ($arch == PROCESSOR_ARCHITECTURE_AMD64) { - $desc .= " (64-bit)"; - } - } - } - - unless (defined $os) { - warn "Unknown Windows version [$id:$major:$minor]"; - return; - } - - for ($desc) { - s/\s\s+/ /g; - s/^\s//; - s/\s$//; - } - - # XXX What about "Small Business Server"? NT, 200, 2003, 2008 editions... - - if ($major >= 5) { - # XXX XP, Vista, 7 all have starter editions - #push(@tags, "Starter Edition") if _GetSystemMetrics(SM_STARTER, $metrics); - } - - if (@tags) { - unshift(@tags, $desc) if length $desc; - $desc = join(" ", @tags); - } - - if (length $csd) { - $desc .= " " if length $desc; - $desc .= $csd; - } - return ("Win$os", $desc); -} - -# "no warnings 'redefine';" doesn't work for 5.8.7 and earlier -local $^W = 0; -bootstrap Win32; - -1; - -__END__ - -#line 1336 diff --git a/software/Slic3r-1.3.0.64bit/lib/Win32/API.pm b/software/Slic3r-1.3.0.64bit/lib/Win32/API.pm deleted file mode 100644 index 41b18d0f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Win32/API.pm +++ /dev/null @@ -1,646 +0,0 @@ -#line 1 "Win32/API.pm" -# See the bottom of this file for the POD documentation. Search for the -# string '=head'. - -####################################################################### -# -# Win32::API - Perl Win32 API Import Facility -# -# Author: Aldo Calpini -# Maintainer: Cosimo Streppone -# -# Changes for gcc/cygwin: Daniel Risacher -# ported from 0.41 based on Daniel's patch by Reini Urban -# -####################################################################### - -package Win32::API; - use strict; - use warnings; -BEGIN { - require Exporter; # to export the constants to the main:: space - - sub ISCYG (); - if($^O eq 'cygwin') { - BEGIN{warnings->unimport('uninitialized')} - die "Win32::API on Cygwin requires the cygpath tool on PATH" - if index(`cygpath --help`,'Usage: cygpath') == -1; - require File::Basename; - eval "sub ISCYG () { 1 }"; - } else { - eval "sub ISCYG () { 0 }"; - } - - - use vars qw( $DEBUG $sentinal @ISA @EXPORT_OK $VERSION ); - - @ISA = qw( Exporter ); - @EXPORT_OK = qw( ReadMemory IsBadReadPtr MoveMemory - WriteMemory SafeReadWideCString ); # symbols to export on request - - use Scalar::Util qw( looks_like_number weaken); - - sub ERROR_NOACCESS () { 998 } - sub ERROR_NOT_ENOUGH_MEMORY () { 8 } - sub ERROR_INVALID_PARAMETER () { 87 } - sub APICONTROL_CC_STD () { 0 } - sub APICONTROL_CC_C () { 1 } - sub APICONTROL_CC_mask () { 0x7 } - sub APICONTROL_UseMI64 () { 0x8 } - sub APICONTROL_is_more () { 0x10 } - sub APICONTROL_has_proto() { 0x20 } - eval ' *Win32::API::Type::PTRSIZE = *Win32::API::More::PTRSIZE = *PTRSIZE = sub () { '.length(pack('p', undef)).' };'. - #Win64 added in 5.7.3 - ' *Win32::API::Type::IVSIZE = *Win32::API::More::IVSIZE = *IVSIZE = sub () { '.length(pack($] >= 5.007003 ? 'J' : 'I' ,0)).' };'. - ' *Win32::API::Type::DEBUGCONST = *Win32::API::Struct::DEBUGCONST = *DEBUGCONST = sub () { '.(!!$DEBUG+0).' };' -} - -sub DEBUG { - #checking flag redundant now, but keep in case of an accidental unprotected call - if ($Win32::API::DEBUG) { - printf @_ if @_ or return 1; - } - else { - return 0; - } -} - -use Win32::API::Type (); -use Win32::API::Struct (); - -####################################################################### -# STATIC OBJECT PROPERTIES -# -#### some package-global hash to -#### keep track of the imported -#### libraries and procedures -my %Libraries = (); -my %Procedures = (); - - -####################################################################### -# dynamically load in the API extension module. -# BEGIN required for constant subs in BOOT: -BEGIN { - $VERSION = '0.84'; - require XSLoader; - XSLoader::load 'Win32::API', $VERSION; -} - -####################################################################### -# PUBLIC METHODS -# -sub new { - die "Win32::API/More::new/Import is a class method that takes 2 to 6 parameters, see POD" - if @_ < 3 || @_ > 7; - my ($class, $dll, $hproc, $ccnum, $outnum) = (shift, shift); - if(! defined $dll){ - $hproc = shift; - } - my ($proc, $in, $out, $callconvention) = @_; - my ($hdll, $freedll, $proto, $stackunwind) = (0, 0, 0, 0); - my $self = {}; - if(! defined $hproc){ - if (ISCYG() and $dll ne File::Basename::basename($dll)) { - - # need to convert $dll to win32 path - # isn't there an API for this? - my $newdll = `cygpath -w "$dll"`; - chomp $newdll; - DEBUG "(PM)new: converted '$dll' to\n '$newdll'\n" if DEBUGCONST; - $dll = $newdll; - } - - #### avoid loading a library more than once - if (exists($Libraries{$dll})) { - DEBUG "Win32::API::new: Library '$dll' already loaded, handle=$Libraries{$dll}\n" if DEBUGCONST; - $hdll = $Libraries{$dll}; - } - else { - DEBUG "Win32::API::new: Loading library '$dll'\n" if DEBUGCONST; - $hdll = Win32::API::LoadLibrary($dll); - $freedll = 1; - # $Libraries{$dll} = $hdll; - } - - #### if the dll can't be loaded, set $! to Win32's GetLastError() - if (!$hdll) { - $! = Win32::GetLastError(); - DEBUG "FAILED Loading library '$dll': $^E\n" if DEBUGCONST; - return undef; - } - } - else{ - if(!looks_like_number($hproc) || IsBadReadPtr($hproc, 4)){ - Win32::SetLastError(ERROR_NOACCESS); - DEBUG "FAILED Function pointer '$hproc' is not a valid memory location\n" if DEBUGCONST; - return undef; - } - } - #### determine if we have a prototype or not, outtype is for future use in XS - if ((not defined $in) and (not defined $out)) { - ($proc, $self->{in}, $self->{intypes}, $outnum, $self->{outtype}, - $ccnum) = parse_prototype($class, $proc); - if( ! $proc ){ - Win32::API::FreeLibrary($hdll) if $freedll; - Win32::SetLastError(ERROR_INVALID_PARAMETER); - return undef; - } - $proto = 1; - } - else { - $self->{in} = []; - my $self_in = $self->{in}; #avoid hash derefing - if (ref($in) eq 'ARRAY') { - foreach (@$in) { - push(@{$self_in}, $class->type_to_num($_)); - } - } - else { - my @in = split '', $in; - foreach (@in) { - push(@{$self_in}, $class->type_to_num($_)); - } - }#'V' must be one and ONLY letter for "in" - foreach(@{$self_in}){ - if($_ == 0){ - if(@{$self_in} != 1){ - Win32::API::FreeLibrary($hdll) if $freedll; - die "Win32::API 'V' for in prototype must be the only parameter"; - } else {undef(@{$self_in});} #empty arr, as if in param was "" - } - } - $outnum = $class->type_to_num($out, 1); - $ccnum = calltype_to_num($callconvention); - } - - if(!$hproc){ #if not non DLL func - #### first try to import the function of given name... - $hproc = Win32::API::GetProcAddress($hdll, $proc); - - #### ...then try appending either A or W (for ASCII or Unicode) - if (!$hproc) { - my $tproc = $proc; - $tproc .= (IsUnicode() ? "W" : "A"); - - # print "Win32::API::new: procedure not found, trying '$tproc'...\n"; - $hproc = Win32::API::GetProcAddress($hdll, $tproc); - } - - #### ...if all that fails, give up, $! setting is back compat, $! is deprecated - if (!$hproc) { - my $err = $! = Win32::GetLastError(); - DEBUG "FAILED GetProcAddress for Proc '$proc': $^E\n" if DEBUGCONST; - Win32::API::FreeLibrary($hdll) if $freedll; - Win32::SetLastError($err); - return undef; - } - DEBUG "GetProcAddress('$proc') = '$hproc'\n" if DEBUGCONST; - } - else { - DEBUG "Using non-DLL function pointer '$hproc' for '$proc'\n" if DEBUGCONST; - } - if(PTRSIZE == 4 && $ccnum == APICONTROL_CC_C) {#fold out on WIN64 - #calculate add to ESP amount, in units of 4, will be *4ed later - $stackunwind += $_ == T_QUAD || $_ == T_DOUBLE ? 2 : 1 for(@{$self->{in}}); - if($stackunwind > 0xFFFF) { - goto too_many_in_params; - } - } - # if a prototype has 8 byte types on 32bit, $stackunwind will be higher than - # length of {in} letter array, so 2 different checks need to be done - if($#{$self->{in}} > 0xFFFF) { - too_many_in_params: - DEBUG "FAILED This function has too many parameters (> ~65535) \n" if DEBUGCONST; - Win32::API::FreeLibrary($hdll) if $freedll; - Win32::SetLastError(ERROR_NOT_ENOUGH_MEMORY); - return undef; - } - #### ok, let's stuff the object - $self->{procname} = $proc; - $self->{dll} = $hdll; - $self->{dllname} = $dll; - - $outnum &= ~T_FLAG_NUMERIC; - my $control; - $self->{weakapi} = \$control; - weaken($self->{weakapi}); - $control = pack( 'L' - .'L' - .(PTRSIZE == 8 ? 'Q' : 'L') - .(PTRSIZE == 8 ? 'Q' : 'L') - .(PTRSIZE == 8 ? 'Q' : 'L') - .(PTRSIZE == 8 ? '' : 'L') - ,($class eq "Win32::API::More" ? APICONTROL_is_more : 0) - | ($proto ? APICONTROL_has_proto : 0) - | $ccnum - | (PTRSIZE == 8 ? 0 : $stackunwind << 8) - | $outnum << 24 - , scalar(@{$self->{in}}) * PTRSIZE #in param count, in SV * units - , $hproc - , \($self->{weakapi})+0 #weak api obj ref - , (exists $self->{intypes} ? ($self->{intypes})+0 : 0) - , 0); #padding to align to 8 bytes on 32 bit only - #align to 16 bytes - $control .= "\x00" x ((((length($control)+ 15) >> 4) << 4)-length($control)); - #make a APIPARAM template array - my ($i, $arr_end) = (0, scalar(@{$self->{in}})); - for(; $i< $arr_end; $i++) { - my $tin = $self->{in}[$i]; - #unsigned meaningless no sign vs zero extends are done bc uv/iv is - #the biggest native integer on the cpu, big to small is truncation - #numeric is implemented as T_NUMCHAR for in, keeps asm jumptable clean - $tin &= ~(T_FLAG_UNSIGNED|T_FLAG_NUMERIC); - $tin--; #T_VOID doesn't exist as in param in XS - #put index of param array slice in unused space for croaks, why not? - $control .= "\x00" x 8 . pack('CCSSS', $tin, 0, 0, $i, $i+1); - } - _Align($control, 16); #align the whole PVX to 16 bytes for SSE moves - - #### keep track of the imported function - if(defined $dll){ - $Libraries{$dll} = $hdll; - $Procedures{$dll}++; - } - DEBUG "Object blessed!\n" if DEBUGCONST; - - my $ref = bless(\$control, $class); - SetMagicSV($ref, $self); - return $ref; -} - -sub Import { - my $closure = shift->new(@_) - or return undef; - my $procname = ${Win32::API::GetMagicSV($closure)}{procname}; - #dont allow "sub main:: {0;}" - Win32::SetLastError(ERROR_INVALID_PARAMETER), return undef if $procname eq ''; - _ImportXS($closure, (caller)[0].'::'.$procname); - return $closure; -} - -####################################################################### -# PRIVATE METHODS -# -sub DESTROY { - my ($self) = GetMagicSV($_[0]); - - return if ! defined $self->{dllname}; - #### decrease this library's procedures reference count - $Procedures{$self->{dllname}}--; - - #### once it reaches 0, free it - if ($Procedures{$self->{dllname}} == 0) { - DEBUG "Win32::API::DESTROY: Freeing library '$self->{dllname}'\n" if DEBUGCONST; - Win32::API::FreeLibrary($Libraries{$self->{dllname}}); - delete($Libraries{$self->{dllname}}); - } -} - -# Convert calling convention string (_cdecl|__stdcall) -# to a C const. Unknown counts as __stdcall -# -sub calltype_to_num { - my $type = shift; - - if (!$type || $type eq "__stdcall" || $type eq "WINAPI" || $type eq "NTAPI" - || $type eq "CALLBACK" ) { - return APICONTROL_CC_STD; - } - elsif ($type eq "_cdecl" || $type eq "__cdecl" || $type eq "WINAPIV") { - return APICONTROL_CC_C; - } - else { - warn "unknown calling convention: '$type'"; - return APICONTROL_CC_STD; - } -} - - -sub type_to_num { - die "wrong class" if shift ne "Win32::API"; - my $type = shift; - my $out = shift; - my ($num, $numeric); - if(index($type, 'num', 0) == 0){ - substr($type, 0, length('num'), ''); - $numeric = 1; - } - else{ - $numeric = 0; - } - - if ( $type eq 'N' - or $type eq 'n' - or $type eq 'l' - or $type eq 'L' - or ( PTRSIZE == 8 and $type eq 'Q' || $type eq 'q')) - { - $num = T_NUMBER; - } - elsif ($type eq 'P' - or $type eq 'p') - { - $num = T_POINTER; - } - elsif ($type eq 'I' - or $type eq 'i') - { - $num = T_INTEGER; - } - elsif ($type eq 'f' - or $type eq 'F') - { - $num = T_FLOAT; - } - elsif ($type eq 'D' - or $type eq 'd') - { - $num = T_DOUBLE; - } - elsif ($type eq 'c' - or $type eq 'C') - { - $num = $numeric ? T_NUMCHAR : T_CHAR; - } - elsif (PTRSIZE == 4 and $type eq 'q' || $type eq 'Q') - { - $num = T_QUAD; - } - elsif($type eq '>'){ - die "Win32::API does not support pass by copy structs as function arguments"; - } - else { - $num = T_VOID; #'V' takes this branch, which is T_VOID in C - }#not valid return types of the C func - if(defined $out) {#b/B remains private/undocumented - die "Win32::API invalid return type, structs and ". - "callbacks as return types not supported" - if($type =~ m/^s|S|t|T|b|B|k|K$/); - } - else {#in type - if ($type eq 's' or $type eq 'S' or $type eq 't' or $type eq 'T') - { - $num = T_STRUCTURE; - } - elsif ($type eq 'b' - or $type eq 'B') - { - $num = T_POINTERPOINTER; - } - elsif ($type eq 'k' - or $type eq 'K') - { - $num = T_CODE; - } - } - $num |= T_FLAG_NUMERIC if $numeric; - return $num; -} - -package Win32::API::More; - -use vars qw( @ISA ); -@ISA = qw ( Win32::API ); -sub type_to_num { - die "wrong class" if shift ne "Win32::API::More"; - my $type = shift; - my $out = shift; - my ($num, $numeric); - if(index($type, 'num', 0) == 0){ - substr($type, 0, length('num'), ''); - $numeric = 1; - } - else{ - $numeric = 0; - } - - if ( $type eq 'N' - or $type eq 'n' - or $type eq 'l' - or $type eq 'L' - or ( PTRSIZE == 8 and $type eq 'Q' || $type eq 'q') - or (! $out and # in XS short 'in's are interger/numbers code - $type eq 'S' - || $type eq 's')) - { - $num = Win32::API::T_NUMBER; - if(defined $out && ($type eq 'N' || $type eq 'L' - || $type eq 'S' || $type eq 'Q')){ - $num |= Win32::API::T_FLAG_UNSIGNED; - } - } - elsif ($type eq 'P' - or $type eq 'p') - { - $num = Win32::API::T_POINTER; - } - elsif ($type eq 'I' - or $type eq 'i') - { - $num = Win32::API::T_INTEGER; - if(defined $out && $type eq 'I'){ - $num |= Win32::API::T_FLAG_UNSIGNED; - } - } - elsif ($type eq 'f' - or $type eq 'F') - { - $num = Win32::API::T_FLOAT; - } - elsif ($type eq 'D' - or $type eq 'd') - { - $num = Win32::API::T_DOUBLE; - } - elsif ($type eq 'c' - or $type eq 'C') - { - $num = $numeric ? Win32::API::T_NUMCHAR : Win32::API::T_CHAR; - if(defined $out && $type eq 'C'){ - $num |= Win32::API::T_FLAG_UNSIGNED; - } - } - elsif (PTRSIZE == 4 and $type eq 'q' || $type eq 'Q') - { - $num = Win32::API::T_QUAD; - if(defined $out && $type eq 'Q'){ - $num |= Win32::API::T_FLAG_UNSIGNED; - } - } - elsif ($type eq 's') #4 is only used for out params - { - $num = Win32::API::T_SHORT; - } - elsif ($type eq 'S') - { - $num = Win32::API::T_SHORT | Win32::API::T_FLAG_UNSIGNED; - } - elsif($type eq '>'){ - die "Win32::API does not support pass by copy structs as function arguments"; - } - else { - $num = Win32::API::T_VOID; #'V' takes this branch, which is T_VOID in C - } #not valid return types of the C func - if(defined $out) {#b/B remains private/undocumented - die "Win32::API invalid return type, structs and ". - "callbacks as return types not supported" - if($type =~ m/^t|T|b|B|k|K$/); - } - else {#in type - if ( $type eq 't' - or $type eq 'T') - { - $num = Win32::API::T_STRUCTURE; - } - elsif ($type eq 'b' - or $type eq 'B') - { - $num = Win32::API::T_POINTERPOINTER; - } - elsif ($type eq 'k' - or $type eq 'K') - { - $num = Win32::API::T_CODE; - } - } - $num |= Win32::API::T_FLAG_NUMERIC if $numeric; - return $num; -} -package Win32::API; - -sub parse_prototype { - my ($class, $proto) = @_; - - my @in_params = (); - my @in_types = (); #one day create a BNF-ish formal grammer parser here - if ($proto =~ /^\s*((?:(?:un|)signed\s+|) #optional signedness - \S+)(?:\s*(\*)\s*|\s+) #type and maybe a * - (?:(\w+)\s+)? # maybe a calling convention - (\S+)\s* #func name - \(([^\)]*)\) #param list - /x) { - my $ret = $1.(defined($2)?$2:''); - my $callconvention = $3; - my $proc = $4; - my $params = $5; - - $params =~ s/^\s+//; - $params =~ s/\s+$//; - - DEBUG "(PM)parse_prototype: got PROC '%s'\n", $proc if DEBUGCONST; - DEBUG "(PM)parse_prototype: got PARAMS '%s'\n", $params if DEBUGCONST; - - foreach my $param (split(/\s*,\s*/, $params)) { - my ($type, $name); - #match "in_t* _var" "in_t * _var" "in_t *_var" "in_t _var" "in_t*_var" supported - #unsigned or signed or nothing as prefix supported - # "in_t ** _var" and "const in_t* var" not supported - if ($param =~ /((?:(?:un|)signed\s+|)\w+)(?:\s*(\*)\s*|\s+)(\w+)/) { - ($type, $name) = ($1.(defined($2)? $2:''), $3); - } - { - BEGIN{warnings->unimport('uninitialized')} - if($type eq '') {goto BADPROTO;} #something very wrong, bail out - } - my $packing = Win32::API::Type::packing($type); - if (defined $packing && $packing ne '>') { - if (Win32::API::Type::is_pointer($type)) { - DEBUG "(PM)parse_prototype: IN='%s' PACKING='%s' API_TYPE=%d\n", - $type, - $packing, - $class->type_to_num('P') if DEBUGCONST; - push(@in_params, $class->type_to_num('P')); - } - else { - DEBUG "(PM)parse_prototype: IN='%s' PACKING='%s' API_TYPE=%d\n", - $type, - $packing, - $class->type_to_num(Win32::API::Type->packing($type, undef, 1)) if DEBUGCONST; - push(@in_params, $class->type_to_num(Win32::API::Type->packing($type, undef, 1))); - } - } - elsif (Win32::API::Struct::is_known($type)) { - DEBUG "(PM)parse_prototype: IN='%s' PACKING='%s' API_TYPE=%d\n", - $type, 'T', Win32::API::More->type_to_num('T') if DEBUGCONST; - push(@in_params, Win32::API::More->type_to_num('T')); - } - else { - warn - "Win32::API::parse_prototype: WARNING unknown parameter type '$type'"; - push(@in_params, $class->type_to_num('I')); - } - push(@in_types, $type); - - } - DEBUG "parse_prototype: IN=[ @in_params ]\n" if DEBUGCONST; - - - if (Win32::API::Type::is_known($ret)) { - if (Win32::API::Type::is_pointer($ret)) { - DEBUG "parse_prototype: OUT='%s' PACKING='%s' API_TYPE=%d\n", - $ret, - Win32::API::Type->packing($ret), - $class->type_to_num('P') if DEBUGCONST; - return ($proc, \@in_params, \@in_types, $class->type_to_num('P', 1), - $ret, calltype_to_num($callconvention)); - } - else { - DEBUG "parse_prototype: OUT='%s' PACKING='%s' API_TYPE=%d\n", - $ret, - Win32::API::Type->packing($ret), - $class->type_to_num(Win32::API::Type->packing($ret, undef, 1), 1) if DEBUGCONST; - return ( - $proc, \@in_params, \@in_types, - $class->type_to_num(Win32::API::Type->packing($ret, undef, 1), 1), - $ret, calltype_to_num($callconvention) - ); - } - } - else { - warn - "Win32::API::parse_prototype: WARNING unknown output parameter type '$ret'"; - return ($proc, \@in_params, \@in_types, $class->type_to_num('I', 1), - $ret, calltype_to_num($callconvention)); - } - - } - else { - BADPROTO: - warn "Win32::API::parse_prototype: bad prototype '$proto'"; - return undef; - } -} - -# -# XXX hack, see the proper implementation in TODO -# The point here is don't let fork children free the parent's DLLs. -# CLONE runs on ::API and ::More, that's bad and causes a DLL leak, make sure -# CLONE dups the DLL handles only once per CLONE -# GetModuleHandleEx was not used since that is a WinXP and newer function, not Win2K. -# GetModuleFileName was used to get full DLL pathname incase SxS/multiple DLLs -# with same file name exist in the process. Even if the dll was loaded as a -# relative path initially, later SxS can load a DLL with a different full path -# yet same file name, and then LoadLibrary'ing the original relative path -# might increase the refcount on the wrong DLL or return a different HMODULE -sub CLONE { - return if $_[0] ne "Win32::API"; - - _my_cxt_clone(); - foreach( keys %Libraries){ - if($Libraries{$_} != Win32::API::LoadLibrary(Win32::API::GetModuleFileName($Libraries{$_}))){ - die "Win32::API::CLONE unable to clone DLL \"$Libraries{$_}\" Unicode Problem??"; - } - } -} - -1; - -__END__ - -####################################################################### -# DOCUMENTATION -# - -#line 1474 - diff --git a/software/Slic3r-1.3.0.64bit/lib/Win32/API/Struct.pm b/software/Slic3r-1.3.0.64bit/lib/Win32/API/Struct.pm deleted file mode 100644 index d52cebfa..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Win32/API/Struct.pm +++ /dev/null @@ -1,580 +0,0 @@ -#line 1 "Win32/API/Struct.pm" -# -# Win32::API::Struct - Perl Win32 API struct Facility -# -# Author: Aldo Calpini -# Maintainer: Cosimo Streppone -# - -package Win32::API::Struct; -use strict; -use warnings; -use vars qw( $VERSION ); -$VERSION = '0.67'; - -my %Known = (); - -#import DEBUG sub -sub DEBUG; -*DEBUG = *Win32::API::DEBUG; - -#package main; -# -#sub userlazyapisub2{ -# userlazyapisub(); -#} -#sub userlazyapisub { -# Win32::API::Struct::lazyapisub(); -#} -# -#sub userapisub { -# Win32::API::Struct::apisub(); -#} -# -#package Win32::API::Struct; -# -#sub lazyapisub { -# lazycarp('bad'); -#} -#sub apisub { -# require Carp; -# Carp::carp('bad'); -#} -sub lazycarp { - require Carp; - Carp::carp(@_); -} - -sub lazycroak { - require Carp; - Carp::croak(@_); -} - -sub typedef { - my $class = shift; - my $struct = shift; - my ($type, $name, @recog_arr); - my $self = { - align => undef, - typedef => [], - }; - while (defined($type = shift)) { - #not compatible with "unsigned foo;" - $type .= ' '.shift if $type eq 'unsigned' || $type eq 'signed'; - $name = shift; - #"int foo [8];" instead of "int foo[8];" so tack on the array count - { - BEGIN{warnings->unimport('uninitialized')} - $name .= shift if substr($_[0],0,1) eq '['; - } - #typedef() takes a list, not a str, for backcompat, this can't be changed - #but, should typedef() keep shifting slices until it finds ";" or not? - #all the POD examples have ;s, but they are actually optional, should it - #be assumed that existing code was nice and used ;s or not? backcompat - #breaks if you say ;-less member defs should be allowed and aren't a user - #mistake - $name =~ s/;$//; - @recog_arr = recognize($type, $name); -#http://perlmonks.org/?node_id=978468, not catching the type not found here, -#will lead to a div 0 later - if(@recog_arr != 3){ - lazycarp "Win32::API::Struct::typedef: unknown member type=\"$type\", name=\"$name\""; - return undef; - } - push(@{$self->{typedef}}, [@recog_arr]); - } - - $Known{$struct} = $self; - $Win32::API::Type::Known{$struct} = '>'; - return 1; -} - - -#void ck_type($param, $proto, $param_num) -sub ck_type { - my ($param, $proto) = @_; - #legacy LP prefix check - return if substr($proto, 0, 2) eq 'LP' && substr($proto, 2) eq $param; - #check if proto can be converted to base struct name - return if exists $Win32::API::Struct::Pointer{$proto} && - $param eq $Win32::API::Struct::Pointer{$proto}; - #check if proto can have * chopped off to convert to base struct name - $proto =~ s/\s*\*$//; - return if $proto eq $param; - lazycroak("Win32::API::Call: supplied type (LP)\"". - $param."\"( *) doesn't match type \"". - $_[1]."\" for parameter ". - $_[2]." "); -} - -#$basename = to_base_struct($pointername) -sub to_base_struct { - return $Win32::API::Struct::Pointer{$_[0]} - if exists $Win32::API::Struct::Pointer{$_[0]}; - die "Win32::API::Struct::Unpack unknown type"; -} - -sub recognize { - my ($type, $name) = @_; - my ($size, $packing); - - if (exists $Known{$type}) { - $packing = '>'; - return ($name, $packing, $type); - } - else { - $packing = Win32::API::Type::packing($type); - return undef unless defined $packing; - if ($name =~ s/\[(.*)\]$//) { - $size = $1; - $packing = $packing . '*' . $size; - } - DEBUG "(PM)Struct::recognize got '$name', '$type' -> '$packing'\n" if DEBUGCONST; - return ($name, $packing, $type); - } -} - -sub new { - my $class = shift; - my ($type, $name, $packing); - my $self = {typedef => [],}; - if ($#_ == 0) { - if (is_known($_[0])) { - DEBUG "(PM)Struct::new: got '$_[0]'\n" if DEBUGCONST; - if( ! defined ($self->{typedef} = $Known{$_[0]}->{typedef})){ - lazycarp 'Win32::API::Struct::new: unknown type="'.$_[0].'"'; - return undef; - } - foreach my $member (@{$self->{typedef}}) { - ($name, $packing, $type) = @$member; - next unless defined $name; - if ($packing eq '>') { - $self->{$name} = Win32::API::Struct->new($type); - } - } - $self->{__typedef__} = $_[0]; - } - else { - lazycarp "Unknown Win32::API::Struct '$_[0]'"; - return undef; - } - } - else { - while (defined($type = shift)) { - $name = shift; - - # print "new: found member $name ($type)\n"; - if (not exists $Win32::API::Type::Known{$type}) { - lazycarp "Unknown Win32::API::Struct type '$type'"; - return undef; - } - else { - push(@{$self->{typedef}}, - [$name, $Win32::API::Type::Known{$type}, $type]); - } - } - } - return bless $self; -} - -sub members { - my $self = shift; - return map { $_->[0] } @{$self->{typedef}}; -} - -sub sizeof { - my $self = shift; - my $size = 0; - my $align = 0; - my $first = ''; - - for my $member (@{$self->{typedef}}) { - my ($name, $packing, $type) = @{$member}; - next unless defined $name; - if (ref $self->{$name} eq q{Win32::API::Struct}) { - - # If member is a struct, recursively calculate its size - # FIXME for subclasses - $size += $self->{$name}->sizeof(); - } - else { - - # Member is a simple type (LONG, DWORD, etc...) - if ($packing =~ /\w\*(\d+)/) { # Arrays (ex: 'c*260') - $size += Win32::API::Type::sizeof($type) * $1; - $first = Win32::API::Type::sizeof($type) * $1 unless defined $first; - DEBUG "(PM)Struct::sizeof: sizeof with member($name) now = " . $size - . "\n" if DEBUGCONST; - } - else { # Simple types - my $type_size = Win32::API::Type::sizeof($type); - $align = $type_size if $type_size > $align; - my $type_align = (($size + $type_size) % $type_size); - $size += $type_size + $type_align; - $first = Win32::API::Type::sizeof($type) unless defined $first; - } - } - } - - my $struct_size = $size; - if (defined $align && $align > 0) { - $struct_size += ($size % $align); - } - DEBUG "(PM)Struct::sizeof first=$first totalsize=$struct_size\n" if DEBUGCONST; - return $struct_size; -} - -sub align { - my $self = shift; - my $align = shift; - - if (not defined $align) { - - if (!(defined $self->{align} && $self->{align} eq 'auto')) { - return $self->{align}; - } - - $align = 0; - - foreach my $member (@{$self->{typedef}}) { - my ($name, $packing, $type) = @$member; - - if (ref($self->{$name}) eq "Win32::API::Struct") { - #### ???? - } - else { - if ($packing =~ /\w\*(\d+)/) { - #### ???? - } - else { - $align = Win32::API::Type::sizeof($type) - if Win32::API::Type::sizeof($type) > $align; - } - } - } - return $align; - } - else { - $self->{align} = $align; - - } -} - -sub getPack { - my $self = shift; - my $packing = ""; - my $packed_size = 0; - my ($type, $name, $type_size, $type_align); - my @items = (); - my @recipients = (); - my @buffer_ptrs = (); #this contains the struct_ptrs that were placed in the - #the struct, its part of "C func changes the struct ptr to a private allocated - #struct" code, it is push/poped only for struct ptrs, it is NOT a 1 to - #1 mapping between all struct members, so don't access it with indexes - - my $align = $self->align(); - - foreach my $member (@{$self->{typedef}}) { - my ($name, $type, $orig) = @$member; - if ($type eq '>') { - my ($subpacking, $subitems, $subrecipients, $subpacksize, $subbuffersptrs) = - $self->{$name}->getPack(); - DEBUG "(PM)Struct::getPack($self->{__typedef__}) ++ $subpacking\n" if DEBUGCONST; - push(@items, @$subitems); - push(@recipients, @$subrecipients); - push(@buffer_ptrs, @$subbuffersptrs); - $packing .= $subpacking; - $packed_size += $subpacksize; - } - else { - my $repeat = 1; - $type_size = Win32::API::Type::sizeof($orig); - if ($type =~ /\w\*(\d+)/) { - $repeat = $1; - $type = 'a'.($repeat*$type_size); - } - - DEBUG "(PM)Struct::getPack($self->{__typedef__}) ++ $type\n" if DEBUGCONST; - - if ($type eq 'p') { - $type = Win32::API::Type::pointer_pack_type(); - push(@items, Win32::API::PointerTo($self->{$name})); - } - elsif ($type eq 'T') { - $type = Win32::API::Type::pointer_pack_type(); - my $structptr; - if(ref($self->{$name})){ - $self->{$name}->Pack(); - $structptr = Win32::API::PointerTo($self->{$name}->{buffer}); - } - else{ - $structptr = 0; - } - push(@items, $structptr); - push(@buffer_ptrs, $structptr); - } - else { - push(@items, $self->{$name}); - } - push(@recipients, $self); - $type_align = (($packed_size + $type_size) % $type_size); - $packing .= "x" x $type_align . $type; - $packed_size += ( $type_size * $repeat ) + $type_align; - } - } - - DEBUG - "(PM)Struct::getPack: $self->{__typedef__}(buffer) = pack($packing, $packed_size)\n" if DEBUGCONST; - - return ($packing, [@items], [@recipients], $packed_size, \@buffer_ptrs); -} - -# void $struct->Pack([$priv_warnings_flag]); -sub Pack { - my $self = shift; - my ($packing, $items); - ($packing, $items, $self->{buffer_recipients}, - undef, $self->{buffer_ptrs}) = $self->getPack(); - - DEBUG "(PM)Struct::Pack: $self->{__typedef__}(buffer) = pack($packing, @$items)\n" if DEBUGCONST; - - if($_[0]){ #Pack() on a new struct, without slice set, will cause lots of uninit - #warnings, sometimes its intentional to set up buffer recipients for a - #future UnPack() - BEGIN{warnings->unimport('uninitialized')} - $self->{buffer} = pack($packing, @$items); - } - else{ - $self->{buffer} = pack($packing, @$items); - } - if (DEBUGCONST) { - for my $i (0 .. $self->sizeof - 1) { - printf "#pack# %3d: 0x%02x\n", $i, ord(substr($self->{buffer}, $i, 1)); - } - } -} - -sub getUnpack { - my $self = shift; - my $packing = ""; - my $packed_size = 0; - my ($type, $name, $type_size, $type_align, $orig_type); - my (@items, @types, @type_names); - my $align = $self->align(); - foreach my $member (@{$self->{typedef}}) { - my ($name, $type, $orig) = @$member; - if ($type eq '>') { - my ($subpacking, $subpacksize, $subitems, $subtypes, $subtype_names) = $self->{$name}->getUnpack(); - DEBUG "(PM)Struct::getUnpack($self->{__typedef__}) ++ $subpacking\n" if DEBUGCONST; - $packing .= $subpacking; - $packed_size += $subpacksize; - push(@items, @$subitems); - push(@types, @$subtypes); - push(@type_names, @$subtype_names); - } - else { - if($type eq 'T') { - $orig_type = $type; - $type = Win32::API::Type::pointer_pack_type(); - } - $type_size = Win32::API::Type::sizeof($orig); - my $repeat = 1; - if ($type =~ /\w\*(\d+)/) { #some kind of array - $repeat = $1; - $type = - $type_size == 1 ? - 'Z'.$repeat #have pack truncate to NULL char - :'a'.($repeat*$type_size); #manually truncate to wide NULL char later - } - DEBUG "(PM)Struct::getUnpack($self->{__typedef__}) ++ $type\n" if DEBUGCONST; - $type_align = (($packed_size + $type_size) % $type_size); - $packing .= "x" x $type_align . $type; - $packed_size += ( $type_size * $repeat ) + $type_align; - push(@items, $name); - if($orig_type){ - push(@types, $orig_type); - undef($orig_type); - } - else{ - push(@types, $type); - } - push(@type_names, $orig); - } - } - DEBUG "(PM)Struct::getUnpack($self->{__typedef__}): unpack($packing, @items)\n" if DEBUGCONST; - return ($packing, $packed_size, \@items, \@types, \@type_names); -} - -sub Unpack { - my $self = shift; - my ($packing, undef, $items, $types, $type_names) = $self->getUnpack(); - my @itemvalue = unpack($packing, $self->{buffer}); - DEBUG "(PM)Struct::Unpack: unpack($packing, buffer) = @itemvalue\n" if DEBUGCONST; - foreach my $i (0 .. $#$items) { - my $recipient = $self->{buffer_recipients}->[$i]; - my $item = $$items[$i]; - my $type = $$types[$i]; - DEBUG "(PM)Struct::Unpack: %s(%s) = '%s' (0x%08x)\n", - $recipient->{__typedef__}, - $item, - $itemvalue[$i], - $itemvalue[$i], - if DEBUGCONST; - if($type eq 'T'){ -my $oldstructptr = pop(@{$self->{buffer_ptrs}}); -my $newstructptr = $itemvalue[$i]; -my $SVMemberRef = \$recipient->{$item}; - -if(!$newstructptr){ #new ptr is null - if($oldstructptr != $newstructptr){ #old ptr was true - lazycarp "Win32::API::Struct::Unpack struct pointer". - " member \"".$item."\" was changed by C function,". - " possible resource leak"; - } - $$SVMemberRef = undef; -} -else{ #new ptr is true - if($oldstructptr != $newstructptr){#old ptr was true, or null, but has changed, leak warning - lazycarp "Win32::API::Struct::Unpack struct pointer". - " member \"".$item."\" was changed by C function,". - " possible resource leak"; - }#create a ::Struct if the slice is undef, user had the slice set to undef - - if (!ref($$SVMemberRef)){ - $$SVMemberRef = Win32::API::Struct->new(to_base_struct($type_names->[$i])); - $$SVMemberRef->Pack(1); #buffer_recipients must be generated, no uninit warnings - } -#must fix {buffer} with contents of the new struct, $structptr might be -#null or might be a SVPV from a ::Struct that was ignored, in any case, -#a foreign memory allocator is at work here - $$SVMemberRef->{buffer} = Win32::API::ReadMemory($newstructptr, $$SVMemberRef->sizeof) - if($oldstructptr != $newstructptr); -#always must be called, if new ptr is not null, at this point, C func, did -#one of 2 things, filled the old ::Struct's {buffer} PV, or gave a new struct * -#from its own allocator, there is no way to tell if the struct contents changed -#so Unpack() must be called - $$SVMemberRef->Unpack(); -} -} - else{ #not a struct ptr - my $itemvalueref = \$itemvalue[$i]; - Win32::API::_TruncateToWideNull($$itemvalueref) - if substr($type,0,1) eq 'a' && length($type) > 1; - $recipient->{$item} = $$itemvalueref; - - # DEBUG "(PM)Struct::Unpack: self.items[$i] = $self->{$$items[$i]}\n"; - } - } -} - -sub FromMemory { - my ($self, $addr) = @_; - DEBUG "(PM)Struct::FromMemory: doing Pack\n" if DEBUGCONST; - $self->Pack(); - DEBUG "(PM)Struct::FromMemory: doing GetMemory( 0x%08x, %d )\n", $addr, $self->sizeof if DEBUGCONST; - $self->{buffer} = Win32::API::ReadMemory($addr, $self->sizeof); - $self->Unpack(); - if(DEBUGCONST) { - DEBUG "(PM)Struct::FromMemory: doing Unpack\n"; - DEBUG "(PM)Struct::FromMemory: structure is now:\n"; - $self->Dump(); - DEBUG "\n"; - } -} - -sub Dump { - my $self = shift; - my $prefix = shift; - foreach my $member (@{$self->{typedef}}) { - my ($name, $packing, $type) = @$member; - if (ref($self->{$name})) { - $self->{$name}->Dump($name); - } - else { - printf "%-20s %-20s %-20s\n", $prefix, $name, $self->{$name}; - } - } -} - -#the LP logic should be moved to parse_prototype, since only -#::API::Call() ever understood the implied LP prefix, Struct::new never did -#is_known then can be inlined away and sub deleted, it is not public API -sub is_known { - my $name = shift; - if (exists $Known{$name}) { - return 1; - } - else { - my $nametest = $name; - if ($nametest =~ s/^LP//) { - return exists $Known{$nametest}; - } - $nametest = $name; - if($nametest =~ s/\*$//){ - return exists $Known{$nametest}; - } - return 0; - } -} - -sub TIEHASH { - return Win32::API::Struct::new(@_); -} - -sub EXISTS { - -} - -sub FETCH { - my $self = shift; - my $key = shift; - - if ($key eq 'sizeof') { - return $self->sizeof; - } - my @members = map { $_->[0] } @{$self->{typedef}}; - if (grep(/^\Q$key\E$/, @members)) { - return $self->{$key}; - } - else { - warn "'$key' is not a member of Win32::API::Struct $self->{__typedef__}"; - } -} - -sub STORE { - my $self = shift; - my ($key, $val) = @_; - my @members = map { $_->[0] } @{$self->{typedef}}; - if (grep(/^\Q$key\E$/, @members)) { - $self->{$key} = $val; - } - else { - warn "'$key' is not a member of Win32::API::Struct $self->{__typedef__}"; - } -} - -sub FIRSTKEY { - my $self = shift; - my @members = map { $_->[0] } @{$self->{typedef}}; - return $members[0]; -} - -sub NEXTKEY { - my $self = shift; - my $key = shift; - my @members = map { $_->[0] } @{$self->{typedef}}; - for my $i (0 .. $#members - 1) { - return $members[$i + 1] if $members[$i] eq $key; - } - return undef; -} - -1; - -__END__ - -####################################################################### -# DOCUMENTATION -# - -#line 756 diff --git a/software/Slic3r-1.3.0.64bit/lib/Win32/API/Type.pm b/software/Slic3r-1.3.0.64bit/lib/Win32/API/Type.pm deleted file mode 100644 index 17703e55..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Win32/API/Type.pm +++ /dev/null @@ -1,492 +0,0 @@ -#line 1 "Win32/API/Type.pm" -package Win32::API::Type; - -# See the bottom of this file for the POD documentation. Search for the -# string '=head'. - -####################################################################### -# -# Win32::API::Type - Perl Win32 API type definitions -# -# Author: Aldo Calpini -# Maintainer: Cosimo Streppone -# -####################################################################### - -use strict; -use warnings; -use vars qw( %Known %PackSize %Modifier %Pointer $VERSION ); - -$VERSION = '0.70'; - -#import DEBUG sub -sub DEBUG; -*DEBUG = *Win32::API::DEBUG; - -#const optimize -BEGIN { - eval ' sub pointer_pack_type () { \'' - .(PTRSIZE == 8 ? 'Q' : 'L'). - '\' }'; -} - -%Known = (); -%PackSize = (); -%Modifier = (); -%Pointer = (); - -# Initialize data structures at startup. -# Aldo wants to keep the approach. -# -my $section = 'nothing'; -foreach () { - next if /^\s*(?:#|$)/; - chomp; - if (/\[(.+)\]/) { - $section = $1; - next; - } - if ($section eq 'TYPE') { - my ($name, $packing) = split(/\s+/); - - # DEBUG "(PM)Type::INIT: Known('$name') => '$packing'\n"; - $packing = pointer_pack_type() - if ($packing eq '_P'); - $Known{$name} = $packing; - } - elsif ($section eq 'POINTER') { - my ($pointer, $pointto) = split(/\s+/); - - # DEBUG "(PM)Type::INIT: Pointer('$pointer') => '$pointto'\n"; - $Pointer{$pointer} = $pointto; - } - elsif ($section eq 'PACKSIZE') { - my ($packing, $size) = split(/\s+/); - - # DEBUG "(PM)Type::INIT: PackSize('$packing') => '$size'\n"; - $size = PTRSIZE - if ($size eq '_P'); - $PackSize{$packing} = $size; - } - elsif ($section eq 'MODIFIER') { - my ($modifier, $mapto) = split(/\s+/, $_, 2); - my %maps = (); - foreach my $item (split(/\s+/, $mapto)) { - my ($k, $v) = split(/=/, $item); - $maps{$k} = $v; - } - - # DEBUG "(PM)Type::INIT: Modifier('$modifier') => '%maps'\n"; - $Modifier{$modifier} = {%maps}; - } -} -close(DATA); - -sub new { - my $class = shift; - my ($type) = @_; - my $packing = packing($type); - my $size = sizeof($type); - my $self = { - type => $type, - packing => $packing, - size => $size, - }; - return bless $self; -} - -sub typedef { - my $class = shift; - my ($name, $type) = @_; - $type =~ m/^\s*(.*?)\s*$/; - $type =~ m/^(.+?)\s*(\*)$/; - $type = $1; - $type .= $2 if defined $2; - $name =~ m/^\s*(.*?)\s*$/; - $name =~ m/^(.+?)\s*(\*)$/; - $name = $1; - $name .= $2 if defined $2; - #FIXME BUG, unsigned __int64 * doesn't pase in typedef, it does in parse_prototype - my $packing = packing($type, $name); #FIXME BUG - if(! defined $packing){ - warn "Win32::API::Type::typedef: WARNING unknown type '$_[1]'"; - return undef; - } - #Win32::API::Struct logic - #limitation, this won't alias a new struct type to an existing struct type - #this only creates new struct type pointer types to an existing struct type - if($packing eq '>'){ - if(is_pointer($type)){ - $packing = 'T'; - $type =~ s/\s*\*$//; #chop off ' *' - $Win32::API::Struct::Pointer{$name} = $type; - } - else{ - warn "Win32::API::Type::typedef: aliasing struct \"".$_[0] - ."\" to struct \"".$_[1]."\" not supported"; - return undef; - } - } - DEBUG "(PM)Type::typedef: packing='$packing'\n" if DEBUGCONST; - if($packing eq 'p'){ - $Pointer{$name} = $Pointer{$type}; - }else{ - $Known{$name} = $packing; - } - return 1; -} - - -sub is_known { - my $self = shift; - my $type = shift; - $type = $self unless defined $type; - if (ref($type) =~ /Win32::API::Type/) { - return 1; - } - else { - return defined packing($type); - } -} - -sub sizeof { - my $self = shift; - my $type = shift; - $type = $self unless defined $type; - if (ref($type) =~ /Win32::API::Type/) { - return $self->{size}; - } - else { - my $packing = packing($type); - if ($packing =~ /(\w)\*(\d+)/) { - return $PackSize{$1} * $2; - } - else { - return $PackSize{$packing}; - } - } -} -# $packing_letter = packing( [$class = 'Win32::API::Type' ,] $type [, $pass_numeric]) -sub packing { - - # DEBUG "(PM)Type::packing: called by ". join("::", (caller(1))[0,3]). "\n"; - my $self = shift; - my $is_pointer = 0; - if (ref($self) =~ /Win32::API::Type/) { - - # DEBUG "(PM)Type::packing: got an object\n"; - return $self->{packing}; - } - my $type = ($self eq 'Win32::API::Type') ? shift : $self; - my $name = shift; - my $pass_numeric = shift; - - # DEBUG "(PM)Type::packing: got '$type', '$name'\n"; - my ($modifier, $size, $packing); - if (exists $Pointer{$type}) { - - # DEBUG "(PM)Type::packing: got '$type', is really '$Pointer{$type}'\n"; - $type = $Pointer{$type}; - $is_pointer = 1; - } - elsif ($type =~ /(\w+)\s+(\w+)/) { - $modifier = $1; - $type = $2; - - # DEBUG "(PM)packing: got modifier '$modifier', type '$type'\n"; - } - - $type =~ s/\s*\*$//; #kill whitespace "CHAR " isn't "CHAR" - - if (exists $Known{$type}) { - if (defined $name and $name =~ s/\[(.*)\]$//) { - $size = $1; - $packing = $Known{$type}[0] . "*" . $size; - - # DEBUG "(PM)Type::packing: composite packing: '$packing' '$size'\n"; - } - else { - $packing = $Known{$type}; - if ($is_pointer and ($packing eq 'c' or $packing eq 'S')) { - $packing = "p"; - } - - # DEBUG "(PM)Type::packing: simple packing: '$packing'\n"; - } - if (defined $modifier and exists $Modifier{$modifier}->{$type}) { - -# DEBUG "(PM)Type::packing: applying modifier '$modifier' -> '$Modifier{$modifier}->{$type}'\n"; - $packing = $Modifier{$modifier}->{$type}; - if(!$pass_numeric) { #for older num unaware calls - substr($packing, 0, length("num"), ''); - } - } - return $packing; - } - else { - - # DEBUG "(PM)Type::packing: NOT FOUND\n"; - return undef; - } -} - - -sub is_pointer { - my $self = shift; - my $type = shift; - $type = $self unless defined $type; - if (ref($type) =~ /Win32::API::Type/) { - return 1; - } - else { - if ($type =~ /\*$/) { - return 1; - } - else { - return exists $Pointer{$type}; - } - } -} - -sub Pack { - my $type = $_[1]; - - my $pack_type = packing($type); - #print "Pack: type $type pack_type $pack_type\n"; - if ($pack_type eq 'p') { #char or wide char pointer - #$pack_type = 'Z*'; - return; - } - elsif(IVSIZE() == 4 && ($pack_type eq 'q' || $pack_type eq 'Q')){ - if($_[0]->UseMI64() || ref($_[2])){ #un/signed meaningless - $_[2] = Math::Int64::int64_to_native($_[2]); - } - else{ - if(length($_[2]) < 8){ - warn("Win32::API::Call value for 64 bit integer is under 8 bytes long"); - $_[2] = pack('a8', $_[2]); - } - } - return; - } - $_[2] = pack($pack_type, $_[2]); - return; -} - -sub Unpack { - my $type = $_[1]; - - my $pack_type = packing($type); - - if ($pack_type eq 'p') { - DEBUG "(PM)Type::Unpack: got packing 'p': is a pointer\n" if DEBUGCONST; - #$pack_type = 'Z*'; - return; - } - elsif(IVSIZE() == 4){ - #todo debugging output - if($pack_type eq 'q'){ - if($_[0]->UseMI64() || ref($_[2])){ - $_[2] = Math::Int64::native_to_int64($_[2]); - DEBUG "(PM)Type::Unpack: returning signed Math::Int64 '".$_[2]."'\n" if DEBUGCONST; - } - return; - }elsif($pack_type eq 'Q'){ - if($_[0]->UseMI64() || ref($_[2])){ - $_[2] = Math::Int64::native_to_uint64($_[2]); - DEBUG "(PM)Type::Unpack: returning unsigned Math::Int64 '".$_[2]."'\n" if DEBUGCONST; - } - return; - } - } - DEBUG "(PM)Type::Unpack: unpacking '$pack_type' '$_[2]'\n" if DEBUGCONST; - $_[2] = unpack($pack_type, $_[2]); - DEBUG "(PM)Type::Unpack: returning '" . ($_[2] || '') . "'\n" if DEBUGCONST; -} - -1; - -####################################################################### -# DOCUMENTATION -# - -#line 412 - - -__DATA__ - -[TYPE] -ATOM s -BOOL L -BOOLEAN c -BYTE C -CHAR c -COLORREF L -DWORD L -DWORD32 L -DWORD64 Q -DWORD_PTR _P -FLOAT f -HACCEL _P -HANDLE _P -HBITMAP _P -HBRUSH _P -HCOLORSPACE _P -HCONV _P -HCONVLIST _P -HCURSOR _P -HDC _P -HDDEDATA _P -HDESK _P -HDROP _P -HDWP _P -HENHMETAFILE _P -HFILE _P -HFONT _P -HGDIOBJ _P -HGLOBAL _P -HHOOK _P -HICON _P -HIMC _P -HINSTANCE _P -HKEY _P -HKL _P -HLOCAL _P -HMENU _P -HMETAFILE _P -HMODULE _P -HPALETTE _P -HPEN _P -HRGN _P -HRSRC _P -HSZ _P -HWINSTA _P -HWND _P -INT i -INT32 i -INT64 q -LANGID s -LCID L -LCSCSTYPE L -LCSGAMUTMATCH L -LCTYPE L -LONG l -LONG32 l -LONG64 q -LONGLONG q -LPARAM _P -LRESULT _P -NTSTATUS l -REGSAM L -SC_HANDLE _P -SC_LOCK _P -SERVICE_STATUS_HANDLE _P -SHORT s -SIZE_T _P -SSIZE_T _P -TBYTE c -TCHAR C -UCHAR C -UINT I -UINT_PTR _P -UINT32 I -UINT64 Q -ULONG L -ULONG32 L -ULONG64 Q -ULONGLONG Q -USHORT S -WCHAR S -WORD S -WPARAM _P -VOID c - -int i -long l -float f -double d -char c -short s -void c -__int64 q - -#VOID is a 'c'? huh? -#making void be a 'c' too, ~bulk88 -#CRITICAL_SECTION 24 -- a structure -#LUID ? 8 -- a structure -#VOID 0 -#CONST 4 -#FILE_SEGMENT_ELEMENT 8 -- a structure - -[PACKSIZE] -c 1 -C 1 -d 8 -f 4 -i 4 -I 4 -l 4 -L 4 -q 8 -Q 8 -s 2 -S 2 -p _P -T _P -t _P - -[MODIFIER] -unsigned int=numI long=numL short=numS char=numC -signed int=numi long=numl short=nums char=numc - -[POINTER] -INT_PTR INT -LPBOOL BOOL -LPBYTE BYTE -LPCOLORREF COLORREF -LPCSTR CHAR -#LPCTSTR CHAR or WCHAR -LPCTSTR CHAR -LPCVOID any -LPCWSTR WCHAR -LPDOUBLE double -LPDWORD DWORD -LPHANDLE HANDLE -LPINT INT -LPLONG LONG -LPSTR CHAR -#LPTSTR CHAR or WCHAR -LPTSTR CHAR -LPVOID VOID -LPWORD WORD -LPWSTR WCHAR - -PBOOL BOOL -PBOOLEAN BOOL -PBYTE BYTE -PCHAR CHAR -PCSTR CSTR -PCWCH CWCH -PCWSTR CWSTR -PDWORD DWORD -PFLOAT FLOAT -PHANDLE HANDLE -PHKEY HKEY -PINT INT -PLCID LCID -PLONG LONG -PSHORT SHORT -PSTR CHAR -#PTBYTE TBYTE -- -#PTCHAR TCHAR -- -#PTSTR CHAR or WCHAR -PTSTR CHAR -PUCHAR UCHAR -PUINT UINT -PULONG ULONG -PUSHORT USHORT -PVOID VOID -PWCHAR WCHAR -PWORD WORD -PWSTR WCHAR -char* CHAR diff --git a/software/Slic3r-1.3.0.64bit/lib/Win32/Console.pm b/software/Slic3r-1.3.0.64bit/lib/Win32/Console.pm deleted file mode 100644 index d1ce50b1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Win32/Console.pm +++ /dev/null @@ -1,713 +0,0 @@ -#line 1 "Win32/Console.pm" -####################################################################### -# -# Win32::Console - Win32 Console and Character Mode Functions -# -####################################################################### - -package Win32::Console; - -require Exporter; -require DynaLoader; - -$VERSION = "0.10"; - -@ISA= qw( Exporter DynaLoader ); -@EXPORT = qw( - BACKGROUND_BLUE - BACKGROUND_GREEN - BACKGROUND_INTENSITY - BACKGROUND_RED - CAPSLOCK_ON - CONSOLE_TEXTMODE_BUFFER - CTRL_BREAK_EVENT - CTRL_C_EVENT - ENABLE_ECHO_INPUT - ENABLE_LINE_INPUT - ENABLE_MOUSE_INPUT - ENABLE_PROCESSED_INPUT - ENABLE_PROCESSED_OUTPUT - ENABLE_WINDOW_INPUT - ENABLE_WRAP_AT_EOL_OUTPUT - ENHANCED_KEY - FILE_SHARE_READ - FILE_SHARE_WRITE - FOREGROUND_BLUE - FOREGROUND_GREEN - FOREGROUND_INTENSITY - FOREGROUND_RED - LEFT_ALT_PRESSED - LEFT_CTRL_PRESSED - NUMLOCK_ON - GENERIC_READ - GENERIC_WRITE - RIGHT_ALT_PRESSED - RIGHT_CTRL_PRESSED - SCROLLLOCK_ON - SHIFT_PRESSED - STD_INPUT_HANDLE - STD_OUTPUT_HANDLE - STD_ERROR_HANDLE - $FG_BLACK - $FG_GRAY - $FG_BLUE - $FG_LIGHTBLUE - $FG_RED - $FG_LIGHTRED - $FG_GREEN - $FG_LIGHTGREEN - $FG_MAGENTA - $FG_LIGHTMAGENTA - $FG_CYAN - $FG_LIGHTCYAN - $FG_BROWN - $FG_YELLOW - $FG_LIGHTGRAY - $FG_WHITE - $BG_BLACK - $BG_GRAY - $BG_BLUE - $BG_LIGHTBLUE - $BG_RED - $BG_LIGHTRED - $BG_GREEN - $BG_LIGHTGREEN - $BG_MAGENTA - $BG_LIGHTMAGENTA - $BG_CYAN - $BG_LIGHTCYAN - $BG_BROWN - $BG_YELLOW - $BG_LIGHTGRAY - $BG_WHITE - $ATTR_NORMAL - $ATTR_INVERSE - @CONSOLE_COLORS -); - - -####################################################################### -# This AUTOLOAD is used to 'autoload' constants from the constant() -# XS function. If a constant is not found then control is passed -# to the AUTOLOAD in AutoLoader. -# - -sub AUTOLOAD { - my($constname); - ($constname = $AUTOLOAD) =~ s/.*:://; - #reset $! to zero to reset any current errors. - local $! = 0; - my $val = constant($constname, @_ ? $_[0] : 0); - if ($! != 0) { -# if ($! =~ /Invalid/) { -# $AutoLoader::AUTOLOAD = $AUTOLOAD; -# goto &AutoLoader::AUTOLOAD; -# } else { - ($pack, $file, $line) = caller; undef $pack; - die "Symbol Win32::Console::$constname not defined, used at $file line $line."; -# } - } - eval "sub $AUTOLOAD { $val }"; - goto &$AUTOLOAD; -} - - -####################################################################### -# STATIC OBJECT PROPERTIES -# - -# %HandlerRoutineStack = (); -# $HandlerRoutineRegistered = 0; - -####################################################################### -# PUBLIC METHODS -# - -#======== -sub new { -#======== - my($class, $param1, $param2) = @_; - - my $self = {}; - - if (defined($param1) - and ($param1 == constant("STD_INPUT_HANDLE", 0) - or $param1 == constant("STD_OUTPUT_HANDLE", 0) - or $param1 == constant("STD_ERROR_HANDLE", 0))) - { - $self->{'handle'} = _GetStdHandle($param1); - } - else { - $param1 = constant("GENERIC_READ", 0) | constant("GENERIC_WRITE", 0) unless $param1; - $param2 = constant("FILE_SHARE_READ", 0) | constant("FILE_SHARE_WRITE", 0) unless $param2; - $self->{'handle'} = _CreateConsoleScreenBuffer($param1, $param2, - constant("CONSOLE_TEXTMODE_BUFFER", 0)); - } - bless $self, $class; - return $self; -} - -#============ -sub Display { -#============ - my($self) = @_; - return undef unless ref($self); - return _SetConsoleActiveScreenBuffer($self->{'handle'}); -} - -#=========== -sub Select { -#=========== - my($self, $type) = @_; - return undef unless ref($self); - return _SetStdHandle($type, $self->{'handle'}); -} - -#=========== -sub SetIcon { -#=========== - my($self, $icon) = @_; - $icon = $self unless ref($self); - return _SetConsoleIcon($icon); -} - -#========== -sub Title { -#========== - my($self, $title) = @_; - $title = $self unless ref($self); - - if (defined($title)) { - return _SetConsoleTitle($title); - } - else { - return _GetConsoleTitle(); - } -} - -#============== -sub WriteChar { -#============== - my($self, $text, $col, $row) = @_; - return undef unless ref($self); - return _WriteConsoleOutputCharacter($self->{'handle'},$text,$col,$row); -} - -#============= -sub ReadChar { -#============= - my($self, $size, $col, $row) = @_; - return undef unless ref($self); - - my $buffer = (" " x $size); - if (_ReadConsoleOutputCharacter($self->{'handle'}, $buffer, $size, $col, $row)) { - return $buffer; - } - else { - return undef; - } -} - -#============== -sub WriteAttr { -#============== - my($self, $attr, $col, $row) = @_; - return undef unless ref($self); - return _WriteConsoleOutputAttribute($self->{'handle'}, $attr, $col, $row); -} - -#============= -sub ReadAttr { -#============= - my($self, $size, $col, $row) = @_; - return undef unless ref($self); - return _ReadConsoleOutputAttribute($self->{'handle'}, $size, $col, $row); -} - -#========== -sub Write { -#========== - my($self,$string) = @_; - return undef unless ref($self); - return _WriteConsole($self->{'handle'}, $string); -} - -#============= -sub ReadRect { -#============= - my($self, $left, $top, $right, $bottom) = @_; - return undef unless ref($self); - - my $col = $right - $left + 1; - my $row = $bottom - $top + 1; - - my $buffer = (" " x ($col*$row*4)); - if (_ReadConsoleOutput($self->{'handle'}, $buffer, - $col, $row, 0, 0, - $left, $top, $right, $bottom)) - { - return $buffer; - } - else { - return undef; - } -} - -#============== -sub WriteRect { -#============== - my($self, $buffer, $left, $top, $right, $bottom) = @_; - return undef unless ref($self); - - my $col = $right - $left + 1; - my $row = $bottom - $top + 1; - - return _WriteConsoleOutput($self->{'handle'}, $buffer, - $col, $row, 0, 0, - $left, $top, $right, $bottom); -} - -#=========== -sub Scroll { -#=========== - my($self, $left1, $top1, $right1, $bottom1, - $col, $row, $char, $attr, - $left2, $top2, $right2, $bottom2) = @_; - return undef unless ref($self); - - return _ScrollConsoleScreenBuffer($self->{'handle'}, - $left1, $top1, $right1, $bottom1, - $col, $row, $char, $attr, - $left2, $top2, $right2, $bottom2); -} - -#============== -sub MaxWindow { -#============== - my($self, $flag) = @_; - return undef unless ref($self); - - if (not defined($flag)) { - my @info = _GetConsoleScreenBufferInfo($self->{'handle'}); - return $info[9], $info[10]; - } - else { - return _GetLargestConsoleWindowSize($self->{'handle'}); - } -} - -#========= -sub Info { -#========= - my($self) = @_; - return undef unless ref($self); - return _GetConsoleScreenBufferInfo($self->{'handle'}); -} - -#=========== -sub Window { -#=========== - my($self, $flag, $left, $top, $right, $bottom) = @_; - return undef unless ref($self); - - if (not defined($flag)) { - my @info = _GetConsoleScreenBufferInfo($self->{'handle'}); - return $info[5], $info[6], $info[7], $info[8]; - } - else { - return _SetConsoleWindowInfo($self->{'handle'}, $flag, $left, $top, $right, $bottom); - } -} - -#============== -sub GetEvents { -#============== - my($self) = @_; - return undef unless ref($self); - return _GetNumberOfConsoleInputEvents($self->{'handle'}); -} - -#========== -sub Flush { -#========== - my($self) = @_; - return undef unless ref($self); - return _FlushConsoleInputBuffer($self->{'handle'}); -} - -#============== -sub InputChar { -#============== - my($self, $number) = @_; - return undef unless ref($self); - - $number = 1 unless defined($number); - - my $buffer = (" " x $number); - if (_ReadConsole($self->{'handle'}, $buffer, $number) == $number) { - return $buffer; - } - else { - return undef; - } -} - -#========== -sub Input { -#========== - my($self) = @_; - return undef unless ref($self); - return _ReadConsoleInput($self->{'handle'}); -} - -#============== -sub PeekInput { -#============== - my($self) = @_; - return undef unless ref($self); - return _PeekConsoleInput($self->{'handle'}); -} - -#=============== -sub WriteInput { -#=============== - my($self) = shift; - return undef unless ref($self); - return _WriteConsoleInput($self->{'handle'}, @_); -} - -#========= -sub Mode { -#========= - my($self, $mode) = @_; - return undef unless ref($self); - if (defined($mode)) { - return _SetConsoleMode($self->{'handle'}, $mode); - } - else { - return _GetConsoleMode($self->{'handle'}); - } -} - -#======== -sub Cls { -#======== - my($self, $attr) = @_; - return undef unless ref($self); - - $attr = $ATTR_NORMAL unless defined($attr); - - my ($x, $y) = $self->Size(); - my($left, $top, $right ,$bottom) = $self->Window(); - my $vx = $right - $left; - my $vy = $bottom - $top; - $self->FillChar(" ", $x*$y, 0, 0); - $self->FillAttr($attr, $x*$y, 0, 0); - $self->Cursor(0, 0); - $self->Window(1, 0, 0, $vx, $vy); -} - -#========= -sub Attr { -#========= - my($self, $attr) = @_; - return undef unless ref($self); - - if (not defined($attr)) { - return (_GetConsoleScreenBufferInfo($self->{'handle'}))[4]; - } - else { - return _SetConsoleTextAttribute($self->{'handle'}, $attr); - } -} - -#=========== -sub Cursor { -#=========== - my($self, $col, $row, $size, $visi) = @_; - return undef unless ref($self); - - my $curr_row = 0; - my $curr_col = 0; - my $curr_size = 0; - my $curr_visi = 0; - my $return = 0; - my $discard = 0; - - - if (defined($col)) { - $row = -1 if not defined($row); - if ($col == -1 or $row == -1) { - ($discard, $discard, $curr_col, $curr_row) = _GetConsoleScreenBufferInfo($self->{'handle'}); - $col=$curr_col if $col==-1; - $row=$curr_row if $row==-1; - } - $return += _SetConsoleCursorPosition($self->{'handle'}, $col, $row); - if (defined($size) and defined($visi)) { - if ($size == -1 or $visi == -1) { - ($curr_size, $curr_visi) = _GetConsoleCursorInfo($self->{'handle'}); - $size = $curr_size if $size == -1; - $visi = $curr_visi if $visi == -1; - } - $size = 1 if $size < 1; - $size = 99 if $size > 99; - $return += _SetConsoleCursorInfo($self->{'handle'}, $size, $visi); - } - return $return; - } - else { - ($discard, $discard, $curr_col, $curr_row) = _GetConsoleScreenBufferInfo($self->{'handle'}); - ($curr_size, $curr_visi) = _GetConsoleCursorInfo($self->{'handle'}); - return ($curr_col, $curr_row, $curr_size, $curr_visi); - } -} - -#========= -sub Size { -#========= - my($self, $col, $row) = @_; - return undef unless ref($self); - - if (not defined($col)) { - ($col, $row) = _GetConsoleScreenBufferInfo($self->{'handle'}); - return ($col, $row); - } - else { - $row = -1 if not defined($row); - if ($col == -1 or $row == -1) { - ($curr_col, $curr_row) = _GetConsoleScreenBufferInfo($self->{'handle'}); - $col=$curr_col if $col==-1; - $row=$curr_row if $row==-1; - } - return _SetConsoleScreenBufferSize($self->{'handle'}, $col, $row); - } -} - -#============= -sub FillAttr { -#============= - my($self, $attr, $number, $col, $row) = @_; - return undef unless ref($self); - - $number = 1 unless $number; - - if (!defined($col) or !defined($row) or $col == -1 or $row == -1) { - ($discard, $discard, - $curr_col, $curr_row) = _GetConsoleScreenBufferInfo($self->{'handle'}); - $col = $curr_col if !defined($col) or $col == -1; - $row = $curr_row if !defined($row) or $row == -1; - } - return _FillConsoleOutputAttribute($self->{'handle'}, $attr, $number, $col, $row); -} - -#============= -sub FillChar { -#============= - my($self, $char, $number, $col, $row) = @_; - return undef unless ref($self); - - if (!defined($col) or !defined($row) or $col == -1 or $row == -1) { - ($discard, $discard, - $curr_col, $curr_row) = _GetConsoleScreenBufferInfo($self->{'handle'}); - $col = $curr_col if !defined($col) or $col == -1; - $row = $curr_row if !defined($row) or $row == -1; - } - return _FillConsoleOutputCharacter($self->{'handle'}, $char, $number, $col, $row); -} - -#============ -sub InputCP { -#============ - my($self, $codepage) = @_; - $codepage = $self if (defined($self) and ref($self) ne "Win32::Console"); - if (defined($codepage)) { - return _SetConsoleCP($codepage); - } - else { - return _GetConsoleCP(); - } -} - -#============= -sub OutputCP { -#============= - my($self, $codepage) = @_; - $codepage = $self if (defined($self) and ref($self) ne "Win32::Console"); - if (defined($codepage)) { - return _SetConsoleOutputCP($codepage); - } - else { - return _GetConsoleOutputCP(); - } -} - -#====================== -sub GenerateCtrlEvent { -#====================== - my($self, $type, $pid) = @_; - $type = constant("CTRL_C_EVENT", 0) unless defined($type); - $pid = 0 unless defined($pid); - return _GenerateConsoleCtrlEvent($type, $pid); -} - -#=================== -#sub SetCtrlHandler { -#=================== -# my($name, $add) = @_; -# $add = 1 unless defined($add); -# my @nor = keys(%HandlerRoutineStack); -# if ($add == 0) { -# foreach $key (@nor) { -# delete $HandlerRoutineStack{$key}, last if $HandlerRoutineStack{$key}==$name; -# } -# $HandlerRoutineRegistered--; -# } else { -# if ($#nor == -1) { -# my $r = _SetConsoleCtrlHandler(); -# if (!$r) { -# print "WARNING: SetConsoleCtrlHandler failed...\n"; -# } -# } -# $HandlerRoutineRegistered++; -# $HandlerRoutineStack{$HandlerRoutineRegistered} = $name; -# } -#} - -#=================== -sub get_Win32_IPC_HANDLE { # So Win32::IPC can wait on a console handle -#=================== - $_[0]->{'handle'}; -} - -######################################################################## -# PRIVATE METHODS -# - -#================ -#sub CtrlHandler { -#================ -# my($ctrltype) = @_; -# my $routine; -# my $result = 0; -# CALLEM: foreach $routine (sort { $b <=> $a } keys %HandlerRoutineStack) { -# #print "CtrlHandler: calling $HandlerRoutineStack{$routine}($ctrltype)\n"; -# $result = &{"main::".$HandlerRoutineStack{$routine}}($ctrltype); -# last CALLEM if $result; -# } -# return $result; -#} - -#============ -sub DESTROY { -#============ - my($self) = @_; - _CloseHandle($self->{'handle'}); -} - -####################################################################### -# dynamically load in the Console.pll module. -# - -bootstrap Win32::Console; - -####################################################################### -# ADDITIONAL CONSTANTS EXPORTED IN THE MAIN NAMESPACE -# - -$FG_BLACK = 0; -$FG_GRAY = constant("FOREGROUND_INTENSITY",0); -$FG_BLUE = constant("FOREGROUND_BLUE",0); -$FG_LIGHTBLUE = constant("FOREGROUND_BLUE",0)| - constant("FOREGROUND_INTENSITY",0); -$FG_RED = constant("FOREGROUND_RED",0); -$FG_LIGHTRED = constant("FOREGROUND_RED",0)| - constant("FOREGROUND_INTENSITY",0); -$FG_GREEN = constant("FOREGROUND_GREEN",0); -$FG_LIGHTGREEN = constant("FOREGROUND_GREEN",0)| - constant("FOREGROUND_INTENSITY",0); -$FG_MAGENTA = constant("FOREGROUND_RED",0)| - constant("FOREGROUND_BLUE",0); -$FG_LIGHTMAGENTA = constant("FOREGROUND_RED",0)| - constant("FOREGROUND_BLUE",0)| - constant("FOREGROUND_INTENSITY",0); -$FG_CYAN = constant("FOREGROUND_GREEN",0)| - constant("FOREGROUND_BLUE",0); -$FG_LIGHTCYAN = constant("FOREGROUND_GREEN",0)| - constant("FOREGROUND_BLUE",0)| - constant("FOREGROUND_INTENSITY",0); -$FG_BROWN = constant("FOREGROUND_RED",0)| - constant("FOREGROUND_GREEN",0); -$FG_YELLOW = constant("FOREGROUND_RED",0)| - constant("FOREGROUND_GREEN",0)| - constant("FOREGROUND_INTENSITY",0); -$FG_LIGHTGRAY = constant("FOREGROUND_RED",0)| - constant("FOREGROUND_GREEN",0)| - constant("FOREGROUND_BLUE",0); -$FG_WHITE = constant("FOREGROUND_RED",0)| - constant("FOREGROUND_GREEN",0)| - constant("FOREGROUND_BLUE",0)| - constant("FOREGROUND_INTENSITY",0); - -$BG_BLACK = 0; -$BG_GRAY = constant("BACKGROUND_INTENSITY",0); -$BG_BLUE = constant("BACKGROUND_BLUE",0); -$BG_LIGHTBLUE = constant("BACKGROUND_BLUE",0)| - constant("BACKGROUND_INTENSITY",0); -$BG_RED = constant("BACKGROUND_RED",0); -$BG_LIGHTRED = constant("BACKGROUND_RED",0)| - constant("BACKGROUND_INTENSITY",0); -$BG_GREEN = constant("BACKGROUND_GREEN",0); -$BG_LIGHTGREEN = constant("BACKGROUND_GREEN",0)| - constant("BACKGROUND_INTENSITY",0); -$BG_MAGENTA = constant("BACKGROUND_RED",0)| - constant("BACKGROUND_BLUE",0); -$BG_LIGHTMAGENTA = constant("BACKGROUND_RED",0)| - constant("BACKGROUND_BLUE",0)| - constant("BACKGROUND_INTENSITY",0); -$BG_CYAN = constant("BACKGROUND_GREEN",0)| - constant("BACKGROUND_BLUE",0); -$BG_LIGHTCYAN = constant("BACKGROUND_GREEN",0)| - constant("BACKGROUND_BLUE",0)| - constant("BACKGROUND_INTENSITY",0); -$BG_BROWN = constant("BACKGROUND_RED",0)| - constant("BACKGROUND_GREEN",0); -$BG_YELLOW = constant("BACKGROUND_RED",0)| - constant("BACKGROUND_GREEN",0)| - constant("BACKGROUND_INTENSITY",0); -$BG_LIGHTGRAY = constant("BACKGROUND_RED",0)| - constant("BACKGROUND_GREEN",0)| - constant("BACKGROUND_BLUE",0); -$BG_WHITE = constant("BACKGROUND_RED",0)| - constant("BACKGROUND_GREEN",0)| - constant("BACKGROUND_BLUE",0)| - constant("BACKGROUND_INTENSITY",0); - -$ATTR_NORMAL = $FG_LIGHTGRAY|$BG_BLACK; -$ATTR_INVERSE = $FG_BLACK|$BG_LIGHTGRAY; - -for my $fg ($FG_BLACK, $FG_GRAY, $FG_BLUE, $FG_GREEN, - $FG_CYAN, $FG_RED, $FG_MAGENTA, $FG_BROWN, - $FG_LIGHTBLUE, $FG_LIGHTGREEN, $FG_LIGHTCYAN, - $FG_LIGHTRED, $FG_LIGHTMAGENTA, $FG_YELLOW, - $FG_LIGHTGRAY, $FG_WHITE) -{ - for my $bg ($BG_BLACK, $BG_GRAY, $BG_BLUE, $BG_GREEN, - $BG_CYAN, $BG_RED, $BG_MAGENTA, $BG_BROWN, - $BG_LIGHTBLUE, $BG_LIGHTGREEN, $BG_LIGHTCYAN, - $BG_LIGHTRED, $BG_LIGHTMAGENTA, $BG_YELLOW, - $BG_LIGHTGRAY, $BG_WHITE) - { - push(@CONSOLE_COLORS, $fg|$bg); - } -} - -# Preloaded methods go here. - -#Currently Autoloading is not implemented in Perl for win32 -# Autoload methods go after __END__, and are processed by the autosplit program. - -1; - -__END__ - -#line 1464 \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/lib/Win32/TieRegistry.pm b/software/Slic3r-1.3.0.64bit/lib/Win32/TieRegistry.pm deleted file mode 100644 index 07099f4b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Win32/TieRegistry.pm +++ /dev/null @@ -1,1725 +0,0 @@ -#line 1 "Win32/TieRegistry.pm" -package Win32::TieRegistry; - -# Win32/TieRegistry.pm -- Perl module to easily use a Registry -# (on Win32 systems so far). -# by Tye McQueen, tye@metronet.com, see http://www.metronet.com/~tye/. - -# -# Skip to "=head" line for user documentation. -# -use 5.006; -use strict; -use Carp; -use Tie::Hash (); - -use vars qw( $PACK $VERSION @ISA @EXPORT @EXPORT_OK ); -BEGIN { - $PACK = 'Win32::TieRegistry'; - $VERSION = '0.30'; - @ISA = 'Tie::Hash'; -} - -# Required other modules: -use Win32API::Registry 0.24 qw( :KEY_ :HKEY_ :REG_ ); - -#Optional other modules: -use vars qw( $_NoMoreItems $_FileNotFound $_TooSmall $_MoreData $_SetDualVar ); - -if ( eval { require Win32::WinError } ) { - $_NoMoreItems = Win32::WinError::constant("ERROR_NO_MORE_ITEMS",0); - $_FileNotFound = Win32::WinError::constant("ERROR_FILE_NOT_FOUND",0); - $_TooSmall = Win32::WinError::constant("ERROR_INSUFFICIENT_BUFFER",0); - $_MoreData = Win32::WinError::constant("ERROR_MORE_DATA",0); -} else { - $_NoMoreItems = "^No more data"; - $_FileNotFound = "cannot find the file"; - $_TooSmall = " data area passed to "; - $_MoreData = "^more data is avail"; -} -if ( $_SetDualVar = eval { require SetDualVar } ) { - import SetDualVar; -} - -#Implementation details: -# When opened: -# HANDLE long; actual handle value -# MACHINE string; name of remote machine ("" if local) -# PATH list ref; machine-relative full path for this key: -# ["LMachine","System","Disk"] -# ["HKEY_LOCAL_MACHINE","System","Disk"] -# DELIM char; delimiter used to separate subkeys (def="\\") -# OS_DELIM char; always "\\" for Win32 -# ACCESS long; usually KEY_ALL_ACCESS, perhaps KEY_READ, etc. -# ROOTS string; var name for "Lmachine"->HKEY_LOCAL_MACHINE map -# FLAGS int; bits to control certain options -# Often: -# VALUES ref to list of value names (data/type never cached) -# SUBKEYS ref to list of subkey names -# SUBCLASSES ref to list of subkey classes -# SUBTIMES ref to list of subkey write times -# MEMBERS ref to list of subkey_name.DELIM's, DELIM.value_name's -# MEMBHASH hash ref to with MEMBERS as keys and 1's as values -# Once Key "Info" requested: -# Class CntSubKeys CntValues MaxSubKeyLen MaxSubClassLen -# MaxValNameLen MaxValDataLen SecurityLen LastWrite -# If is tied to a hash and iterating over key values: -# PREVIDX int; index of last MEMBERS element return -# If is the key object returned by Load(): -# UNLOADME list ref; information about Load()ed key -# If is a subkey of a "loaded" key other than the one returned by Load(): -# DEPENDON obj ref; object that can't be destroyed before us - - -#Package-local variables: - -# Option flag bits: -use vars qw( - $Flag_ArrVal $Flag_TieVal $Flag_DualTyp $Flag_DualBin - $Flag_FastDel $Flag_HexDWord $Flag_Split $Flag_FixNulls -); -BEGIN { - $Flag_ArrVal = 0x0001; - $Flag_TieVal = 0x0002; - $Flag_FastDel = 0x0004; - $Flag_HexDWord = 0x0008; - $Flag_Split = 0x0010; - $Flag_DualTyp = 0x0020; - $Flag_DualBin = 0x0040; - $Flag_FixNulls = 0x0080; -} - -use vars qw( $RegObj %_Roots %RegHash $Registry ); - -# Short-hand for HKEY_* constants: -%_Roots= ( - "Classes" => HKEY_CLASSES_ROOT, - "CUser" => HKEY_CURRENT_USER, - "LMachine" => HKEY_LOCAL_MACHINE, - "Users" => HKEY_USERS, - "PerfData" => HKEY_PERFORMANCE_DATA, # Too picky to be useful - "CConfig" => HKEY_CURRENT_CONFIG, - "DynData" => HKEY_DYN_DATA, # Too picky to be useful -); - -# Basic master Registry object: -$RegObj= {}; -@$RegObj{qw( HANDLE MACHINE PATH DELIM OS_DELIM ACCESS FLAGS ROOTS )}= ( - "NONE", "", [], "\\", "\\", - KEY_READ|KEY_WRITE, $Flag_HexDWord|$Flag_FixNulls, "${PACK}::_Roots" ); -$RegObj->{FLAGS} |= $Flag_DualTyp|$Flag_DualBin if $_SetDualVar; -bless $RegObj; - -# Fill cache for master Registry object: -@$RegObj{qw( VALUES SUBKEYS SUBCLASSES SUBTIMES )}= ( - [], [ keys(%_Roots) ], [], [] ); -grep( s#$#$RegObj->{DELIM}#, - @{ $RegObj->{MEMBERS}= [ @{$RegObj->{SUBKEYS}} ] } ); -@$RegObj{qw( Class MaxSubKeyLen MaxSubClassLen MaxValNameLen - MaxValDataLen SecurityLen LastWrite CntSubKeys CntValues )}= - ( "", 0, 0, 0, 0, 0, 0, 0, 0 ); - -# Create master Registry tied hash: -$RegObj->Tie( \%RegHash ); - -# Create master Registry combination object and tied hash reference: -$Registry= \%RegHash; -bless $Registry; - - -# Preloaded methods go here. - - -# Map option names to name of subroutine that controls that option: -use vars qw( @_opt_subs %_opt_subs ); -@_opt_subs= qw( Delimiter ArrayValues TieValues SplitMultis DWordsToHex - FastDelete FixSzNulls DualTypes DualBinVals AllowLoad AllowSave ); -@_opt_subs{@_opt_subs}= @_opt_subs; - -sub import -{ - my $pkg = shift(@_); - my $level = $Exporter::ExportLevel; - my $expto = caller($level); - my @export = (); - my @consts = (); - my $registry = $Registry->Clone; - local( $_ ); - while( @_ ) { - $_= shift(@_); - if( /^\$(\w+::)*\w+$/ ) { - push( @export, "ObjVar" ) if /^\$RegObj$/; - push( @export, $_ ); - } elsif( /^\%(\w+::)*\w+$/ ) { - push( @export, $_ ); - } elsif( /^[$%]/ ) { - croak "${PACK}->import: Invalid variable name ($_)"; - } elsif( /^:/ || /^(H?KEY|REG)_/ ) { - push( @consts, $_ ); - } elsif( ! @_ ) { - croak "${PACK}->import: Missing argument after option ($_)"; - } elsif( exists $_opt_subs{$_} ) { - $_= $_opt_subs{$_}; - $registry->$_( shift(@_) ); - } elsif( /^TiedRef$/ ) { - $_= shift(@_); - if( ! ref($_) && /^(\$?)(\w+::)*\w+$/ ) { - $_= '$'.$_ unless '$' eq $1; - } elsif( "SCALAR" ne ref($_) ) { - croak "${PACK}->import: Invalid var after TiedRef ($_)"; - } - push( @export, $_ ); - } elsif( /^TiedHash$/ ) { - $_= shift(@_); - if( ! ref($_) && /^(\%?)(\w+::)*\w+$/ ) { - $_= '%'.$_ unless '%' eq $1; - } elsif( "HASH" ne ref($_) ) { - croak "${PACK}->import: Invalid var after TiedHash ($_)"; - } - push( @export, $_ ); - } elsif( /^ObjectRef$/ ) { - $_= shift(@_); - if( ! ref($_) && /^(\$?)(\w+::)*\w+$/ ) { - push( @export, "ObjVar" ); - $_= '$'.$_ unless '$' eq $1; - } elsif( "SCALAR" eq ref($_) ) { - push( @export, "ObjRef" ); - } else { - croak "${PACK}->import: Invalid var after ObjectRef ($_)"; - } - push( @export, $_ ); - } elsif( /^ExportLevel$/ ) { - $level= shift(@_); - $expto= caller($level); - } elsif( /^ExportTo$/ ) { - undef $level; - $expto= caller($level); - } else { - croak "${PACK}->import: Invalid option ($_)"; - } - } - Win32API::Registry->export( $expto, @consts ) if @consts; - @export= ('$Registry') unless @export; - while( @export ) { - $_= shift( @export ); - if( /^\$((?:\w+::)*)(\w+)$/ ) { - my( $pack, $sym )= ( $1, $2 ); - $pack= $expto unless defined($pack) && "" ne $pack; - no strict 'refs'; - *{"${pack}::$sym"}= \${"${pack}::$sym"}; - ${"${pack}::$sym"}= $registry; - } elsif( /^\%((?:\w+::)*)(\w+)$/ ) { - my( $pack, $sym )= ( $1, $2 ); - $pack= $expto unless defined($pack) && "" ne $pack; - no strict 'refs'; - *{"${pack}::$sym"}= \%{"${pack}::$sym"}; - $registry->Tie( \%{"${pack}::$sym"} ); - } elsif( "SCALAR" eq ref($_) ) { - $$_= $registry; - } elsif( "HASH" eq ref($_) ) { - $registry->Tie( $_ ); - } elsif( /^ObjVar$/ ) { - $_= shift( @_ ); - /^\$((?:\w+::)*)(\w+)$/; - my( $pack, $sym )= ( $1, $2 ); - $pack= $expto unless defined($pack) && "" ne $pack; - no strict 'refs'; - *{"${pack}::$sym"}= \${"${pack}::$sym"}; - ${"${pack}::$sym"}= $registry->ObjectRef; - } elsif( /^ObjRef$/ ) { - ${shift(@_)}= $registry->ObjectRef; - } else { - die "Impossible var to export ($_)"; - } - } -} - - -use vars qw( @_new_Opts %_new_Opts ); -@_new_Opts= qw( ACCESS DELIM MACHINE DEPENDON ); -@_new_Opts{@_new_Opts}= (1) x @_new_Opts; - -sub _new -{ - my $this= shift( @_ ); - $this= tied(%$this) if ref($this) && tied(%$this); - my $class= ref($this) || $this; - my $self= {}; - my( $handle, $rpath, $opts )= @_; - if( @_ < 2 || "ARRAY" ne ref($rpath) || 3 < @_ - || 3 == @_ && "HASH" ne ref($opts) ) { - croak "Usage: ${PACK}->_new( \$handle, \\\@path, {OPT=>VAL,...} );\n", - " options: @_new_Opts\nCalled"; - } - @$self{qw( HANDLE PATH )}= ( $handle, $rpath ); - @$self{qw( MACHINE ACCESS DELIM OS_DELIM ROOTS FLAGS )}= - ( $this->Machine, $this->Access, $this->Delimiter, - $this->OS_Delimiter, $this->_Roots, $this->_Flags ); - if( ref($opts) ) { - my @err= grep( ! $_new_Opts{$_}, keys(%$opts) ); - @err and croak "${PACK}->_new: Invalid options (@err)"; - @$self{ keys(%$opts) }= values(%$opts); - } - bless $self, $class; - return $self; -} - - -sub _split -{ - my $self= shift( @_ ); - $self= tied(%$self) if tied(%$self); - my $path= shift( @_ ); - my $delim= @_ ? shift(@_) : $self->Delimiter; - my $list= [ split( /\Q$delim/, $path ) ]; - return $list; -} - - -sub _rootKey -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my $keyPath= shift(@_); - my $delim= @_ ? shift(@_) : $self->Delimiter; - my( $root, $subPath ); - if( "ARRAY" eq ref($keyPath) ) { - $subPath= $keyPath; - } else { - $subPath= $self->_split( $keyPath, $delim ); - } - $root= shift( @$subPath ); - if( $root =~ /^HKEY_/ ) { - my $handle= Win32API::Registry::constant($root,0); - $handle or croak "Invalid HKEY_ constant ($root): $!"; - return( $self->_new( $handle, [$root], {DELIM=>$delim} ), - $subPath ); - } elsif( $root =~ /^([-+]|0x)?\d/ ) { - return( $self->_new( $root, [sprintf("0x%lX",$root)], - {DELIM=>$delim} ), - $subPath ); - } else { - my $roots= $self->Roots; - if( $roots->{$root} ) { - return( $self->_new( $roots->{$root}, [$root], {DELIM=>$delim} ), - $subPath ); - } - croak "No such root key ($root)"; - } -} - - -sub _open -{ - my $this = shift(@_); - $this = tied(%$this) if ref($this) && tied(%$this); - my $subPath = shift(@_); - my $sam = @_ ? shift(@_) : $this->Access; - my $subKey = join( $this->OS_Delimiter, @$subPath ); - my $handle = 0; - $this->RegOpenKeyEx( $subKey, 0, $sam, $handle ) or return (); - return $this->_new( $handle, [ @{$this->_Path}, @$subPath ], - { ACCESS=>$sam, ( defined($this->{UNLOADME}) ? ("DEPENDON",$this) - : defined($this->{DEPENDON}) ? ("DEPENDON",$this->{DEPENDON}) : () ) - } ); -} - - -sub ObjectRef -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - return $self; -} - - -sub _constant -{ - my( $name, $desc )= @_; - my $value= Win32API::Registry::constant( $name, 0 ); - my $func= (caller(1))[3]; - if( 0 == $value ) { - if( $! =~ /invalid/i ) { - croak "$func: Invalid $desc ($name)"; - } elsif( 0 != $! ) { - croak "$func: \u$desc ($name) not support on this platform"; - } - } - return $value; -} - - -sub _connect -{ - my $this= shift(@_); - $this= tied(%$this) if ref($this) && tied(%$this); - my $subPath= pop(@_); - $subPath= $this->_split( $subPath ) unless ref($subPath); - my $machine= @_ ? shift(@_) : shift(@$subPath); - my $handle= 0; - my( $temp )= $this->_rootKey( [@$subPath] ); - $temp->RegConnectRegistry( $machine, $temp->Handle, $handle ) - or return (); - my $self= $this->_new( $handle, [shift(@$subPath)], {MACHINE=>$machine} ); - return( $self, $subPath ); -} - - -use vars qw( @Connect_Opts %Connect_Opts ); -@Connect_Opts= qw(Access Delimiter); -@Connect_Opts{@Connect_Opts}= (1) x @Connect_Opts; - -sub Connect -{ - my $this= shift(@_); - my $tied= ref($this) && tied(%$this); - $this= tied(%$this) if $tied; - my( $machine, $key, $opts )= @_; - my $delim= ""; - my $sam; - my $subPath; - if( @_ < 2 || 3 < @_ - || 3 == @_ && "HASH" ne ref($opts) ) { - croak "Usage: \$obj= ${PACK}->Connect(", - " \$Machine, \$subKey, { OPT=>VAL,... } );\n", - " options: @Connect_Opts\nCalled"; - } - if( ref($opts) ) { - my @err= grep( ! $Connect_Opts{$_}, keys(%$opts) ); - @err and croak "${PACK}->Connect: Invalid options (@err)"; - } - $delim= "$opts->{Delimiter}" if defined($opts->{Delimiter}); - $delim= $this->Delimiter if "" eq $delim; - $sam= defined($opts->{Access}) ? $opts->{Access} : $this->Access; - $sam= _constant($sam,"key access type") if $sam =~ /^KEY_/; - ( $this, $subPath )= $this->_connect( $machine, $key ); - return () unless defined($this); - my $self= $this->_open( $subPath, $sam ); - return () unless defined($self); - $self->Delimiter( $delim ); - $self= $self->TiedRef if $tied; - return $self; -} - - -my @_newVirtual_keys= qw( MEMBERS VALUES SUBKEYS SUBTIMES SUBCLASSES - Class SecurityLen LastWrite CntValues CntSubKeys - MaxValNameLen MaxValDataLen MaxSubKeyLen MaxSubClassLen ); - -sub _newVirtual -{ - my $self= shift(@_); - my( $rPath, $root, $opts )= @_; - my $new= $self->_new( "NONE", $rPath, $opts ) - or return (); - @{$new}{@_newVirtual_keys}= @{$root->ObjectRef}{@_newVirtual_keys}; - return $new; -} - - -#$key= new Win32::TieRegistry "LMachine/System/Disk"; -#$key= new Win32::TieRegistry "//Server1/LMachine/System/Disk"; -#Win32::TieRegistry->new( HKEY_LOCAL_MACHINE, {DELIM=>"/",ACCESS=>KEY_READ} ); -#Win32::TieRegistry->new( [ HKEY_LOCAL_MACHINE, ".../..." ], {DELIM=>$DELIM} ); -#$key->new( ... ); - -use vars qw( @new_Opts %new_Opts ); -@new_Opts= qw(Access Delimiter); -@new_Opts{@new_Opts}= (1) x @new_Opts; - -sub new -{ - my $this= shift( @_ ); - $this= tied(%$this) if ref($this) && tied(%$this); - if( ! ref($this) ) { - no strict "refs"; - my $self= ${"${this}::Registry"}; - croak "${this}->new failed since ${PACK}::new sees that ", - "\$${this}::Registry is not an object." - if ! ref($self); - $this= $self->Clone; - } - my( $subKey, $opts )= @_; - my $delim= ""; - my $dlen; - my $sam; - my $subPath; - if( @_ < 1 || 2 < @_ - || 2 == @_ && "HASH" ne ref($opts) ) { - croak "Usage: \$obj= ${PACK}->new( \$subKey, { OPT=>VAL,... } );\n", - " options: @new_Opts\nCalled"; - } - if( defined($opts) ) { - my @err= grep( ! $new_Opts{$_}, keys(%$opts) ); - @err and die "${PACK}->new: Invalid options (@err)"; - } - $delim= "$opts->{Delimiter}" if defined($opts->{Delimiter}); - $delim= $this->Delimiter if "" eq $delim; - $dlen= length($delim); - $sam= defined($opts->{Access}) ? $opts->{Access} : $this->Access; - $sam= _constant($sam,"key access type") if $sam =~ /^KEY_/; - if( "ARRAY" eq ref($subKey) ) { - $subPath= $subKey; - if( "NONE" eq $this->Handle && @$subPath ) { - ( $this, $subPath )= $this->_rootKey( $subPath ); - } - } elsif( $delim x 2 eq substr($subKey,0,2*$dlen) ) { - my $path= $this->_split( substr($subKey,2*$dlen), $delim ); - my $mach= shift(@$path); - if( ! @$path ) { - return $this->_newVirtual( $path, $Registry, - {MACHINE=>$mach,DELIM=>$delim,ACCESS=>$sam} ); - } - ( $this, $subPath )= $this->_connect( $mach, $path ); - return () if ! defined($this); - if( 0 == @$subPath ) { - $this->Delimiter( $delim ); - return $this; - } - } elsif( $delim eq substr($subKey,0,$dlen) ) { - ( $this, $subPath )= $this->_rootKey( substr($subKey,$dlen), $delim ); - } elsif( "NONE" eq $this->Handle && "" ne $subKey ) { - my( $mach )= $this->Machine; - if( $mach ) { - ( $this, $subPath )= $this->_connect( $mach, $subKey ); - } else { - ( $this, $subPath )= $this->_rootKey( $subKey, $delim ); - } - } else { - $subPath= $this->_split( $subKey, $delim ); - } - return () unless defined($this); - if( 0 == @$subPath && "NONE" eq $this->Handle ) { - return $this->_newVirtual( $this->_Path, $this, - { DELIM=>$delim, ACCESS=>$sam } ); - } - my $self= $this->_open( $subPath, $sam ); - return () unless defined($self); - $self->Delimiter( $delim ); - return $self; -} - - -sub Open -{ - my $self= shift(@_); - my $tied= ref($self) && tied(%$self); - $self= tied(%$self) if $tied; - $self= $self->new( @_ ); - $self= $self->TiedRef if defined($self) && $tied; - return $self; -} - - -sub Clone -{ - my $self= shift( @_ ); - my $new= $self->Open(""); - return $new; -} - - -{ my @flush; - sub Flush - { - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my( $flush )= @_; - @_ and croak "Usage: \$key->Flush( \$bFlush );"; - return 0 if "NONE" eq $self->Handle; - @flush= qw( VALUES SUBKEYS SUBCLASSES SUBTIMES MEMBERS Class - CntSubKeys CntValues MaxSubKeyLen MaxSubClassLen - MaxValNameLen MaxValDataLen SecurityLen LastWrite PREVIDX ) - unless @flush; - delete( @$self{@flush} ); - if( defined($flush) && $flush ) { - return $self->RegFlushKey(); - } else { - return 1; - } - } -} - - -sub _DualVal -{ - my( $hRef, $num )= @_; - if( $_SetDualVar && $$hRef{$num} ) { - &SetDualVar( $num, "$$hRef{$num}", 0+$num ); - } - return $num; -} - - -use vars qw( @_RegDataTypes %_RegDataTypes ); -@_RegDataTypes= qw( REG_SZ REG_EXPAND_SZ REG_BINARY REG_LINK REG_MULTI_SZ - REG_DWORD_LITTLE_ENDIAN REG_DWORD_BIG_ENDIAN REG_DWORD - REG_RESOURCE_LIST REG_FULL_RESOURCE_DESCRIPTOR - REG_RESOURCE_REQUIREMENTS_LIST REG_NONE ); -# Make sure that REG_DWORD appears _after_ other REG_DWORD_* -# items above and that REG_NONE appears _last_. -foreach( @_RegDataTypes ) { - $_RegDataTypes{Win32API::Registry::constant($_,0)}= $_; -} - -sub GetValue -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - 1 == @_ or croak "Usage: (\$data,\$type)= \$key->GetValue('ValName');"; - my( $valName )= @_; - my( $valType, $valData, $dLen )= (0,"",0); - return () if "NONE" eq $self->Handle; - $self->RegQueryValueEx( $valName, [], $valType, $valData, - $dLen= ( defined($self->{MaxValDataLen}) ? $self->{MaxValDataLen} : 0 ) - ) or return (); - if( REG_DWORD == $valType ) { - my $val= unpack("L",$valData); - $valData= sprintf "0x%08.8lX", $val if $self->DWordsToHex; - &SetDualVar( $valData, $valData, $val ) if $self->DualBinVals - } elsif( REG_BINARY == $valType && length($valData) <= 4 ) { - &SetDualVar( $valData, $valData, hex reverse unpack("h*",$valData) ) - if $self->DualBinVals; - } elsif( ( REG_SZ == $valType || REG_EXPAND_SZ == $valType ) - && $self->FixSzNulls ) { - substr($valData,-1)= "" if "\0" eq substr($valData,-1); - } elsif( REG_MULTI_SZ == $valType && $self->SplitMultis ) { - ## $valData =~ s/\0\0$//; # Why does this often fail?? - substr($valData,-2)= "" if "\0\0" eq substr($valData,-2); - $valData= [ split( /\0/, $valData, -1 ) ] - } - if( ! wantarray ) { - return $valData; - } elsif( ! $self->DualTypes ) { - return( $valData, $valType ); - } else { - return( $valData, _DualVal( \%_RegDataTypes, $valType ) ); - } -} - - -sub _ErrNum -{ - # return $^E; - return Win32::GetLastError(); -} - - -sub _ErrMsg -{ - # return $^E; - return Win32::FormatMessage( Win32::GetLastError() ); -} - -sub _Err -{ - my $err; - # return $^E; - return _ErrMsg if ! $_SetDualVar; - return &SetDualVar( $err, _ErrMsg, _ErrNum ); -} - -sub _NoMoreItems -{ - return - $_NoMoreItems =~ /^\d/ - ? _ErrNum == $_NoMoreItems - : _ErrMsg =~ /$_NoMoreItems/io; -} - - -sub _FileNotFound -{ - return - $_FileNotFound =~ /^\d/ - ? _ErrNum == $_FileNotFound - : _ErrMsg =~ /$_FileNotFound/io; -} - - -sub _TooSmall -{ - return - $_TooSmall =~ /^\d/ - ? _ErrNum == $_TooSmall - : _ErrMsg =~ /$_TooSmall/io; -} - - -sub _MoreData -{ - return - $_MoreData =~ /^\d/ - ? _ErrNum == $_MoreData - : _ErrMsg =~ /$_MoreData/io; -} - - -sub _enumValues -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my( @names )= (); - my $pos= 0; - my $name= ""; - my $nlen= 1+$self->Information("MaxValNameLen"); - while( $self->RegEnumValue($pos++,$name,my $nlen1=$nlen,[],[],[],[]) ) { - #RegEnumValue modifies $nlen1 - push( @names, $name ); - } - if( ! _NoMoreItems() ) { - return (); - } - $self->{VALUES}= \@names; - return 1; -} - - -sub ValueNames -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - @_ and croak "Usage: \@names= \$key->ValueNames;"; - $self->_enumValues unless $self->{VALUES}; - return @{$self->{VALUES}}; -} - - -sub _enumSubKeys -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my( @subkeys, @classes, @times )= (); - my $pos= 0; - my( $subkey, $class, $time )= ("","",""); - my( $namSiz, $clsSiz )= $self->Information( - qw( MaxSubKeyLen MaxSubClassLen )); - $namSiz++; $clsSiz++; - my $namSiz1 = $namSiz; - while( $self->RegEnumKeyEx( - $pos++, $subkey, $namSiz, [], $class, $clsSiz, $time ) ) { - push( @subkeys, $subkey ); - push( @classes, $class ); - push( @times, $time ); - $namSiz = $namSiz1; #RegEnumKeyEx modifies $namSiz - } - if( ! _NoMoreItems() ) { - return (); - } - $self->{SUBKEYS}= \@subkeys; - $self->{SUBCLASSES}= \@classes; - $self->{SUBTIMES}= \@times; - return 1; -} - - -sub SubKeyNames -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - @_ and croak "Usage: \@names= \$key->SubKeyNames;"; - $self->_enumSubKeys unless $self->{SUBKEYS}; - return @{$self->{SUBKEYS}}; -} - - -sub SubKeyClasses -{ - my $self= shift(@_); - @_ and croak "Usage: \@classes= \$key->SubKeyClasses;"; - $self->_enumSubKeys unless $self->{SUBCLASSES}; - return @{$self->{SUBCLASSES}}; -} - - -sub SubKeyTimes -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - @_ and croak "Usage: \@times= \$key->SubKeyTimes;"; - $self->_enumSubKeys unless $self->{SUBTIMES}; - return @{$self->{SUBTIMES}}; -} - - -sub _MemberNames -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - @_ and croak "Usage: \$arrayRef= \$key->_MemberNames;"; - if( ! $self->{MEMBERS} ) { - $self->_enumValues unless $self->{VALUES}; - $self->_enumSubKeys unless $self->{SUBKEYS}; - my( @members )= ( map( $_.$self->{DELIM}, @{$self->{SUBKEYS}} ), - map( $self->{DELIM}.$_, @{$self->{VALUES}} ) ); - $self->{MEMBERS}= \@members; - } - return $self->{MEMBERS}; -} - - -sub _MembersHash -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - @_ and croak "Usage: \$hashRef= \$key->_MembersHash;"; - if( ! $self->{MEMBHASH} ) { - my $aRef= $self->_MemberNames; - $self->{MEMBHASH}= {}; - @{$self->{MEMBHASH}}{@$aRef}= (1) x @$aRef; - } - return $self->{MEMBHASH}; -} - - -sub MemberNames -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - @_ and croak "Usage: \@members= \$key->MemberNames;"; - return @{$self->_MemberNames}; -} - - -sub Information -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my( $time, $nkeys, $nvals, $xsec, $xkey, $xcls, $xname, $xdata )= - ("",0,0,0,0,0,0,0); - my $clen= 8; - if( ! $self->RegQueryInfoKey( [], [], $nkeys, $xkey, $xcls, - $nvals, $xname, $xdata, $xsec, $time ) ) { - return (); - } - if( defined($self->{Class}) ) { - $clen= length($self->{Class}); - } else { - $self->{Class}= ""; - } - while( ! $self->RegQueryInfoKey( $self->{Class}, $clen, - [],[],[],[],[],[],[],[],[]) - && _MoreData ) { - $clen *= 2; - } - my( %info ); - @info{ qw( LastWrite CntSubKeys CntValues SecurityLen - MaxValDataLen MaxSubKeyLen MaxSubClassLen MaxValNameLen ) - }= ( $time, $nkeys, $nvals, $xsec, - $xdata, $xkey, $xcls, $xname ); - if( @_ ) { - my( %check ); - @check{keys(%info)}= keys(%info); - my( @err )= grep( ! $check{$_}, @_ ); - if( @err ) { - croak "${PACK}::Information- Invalid info requested (@err)"; - } - return @info{@_}; - } else { - return %info; - } -} - - -sub Delimiter -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - $self= $RegObj unless ref($self); - my( $oldDelim )= $self->{DELIM}; - if( 1 == @_ && "" ne "$_[0]" ) { - delete $self->{MEMBERS}; - delete $self->{MEMBHASH}; - $self->{DELIM}= "$_[0]"; - } elsif( 0 != @_ ) { - croak "Usage: \$oldDelim= \$key->Delimiter(\$newDelim);"; - } - return $oldDelim; -} - - -sub Handle -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - @_ and croak "Usage: \$handle= \$key->Handle;"; - $self= $RegObj unless ref($self); - return $self->{HANDLE}; -} - - -sub Path -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - @_ and croak "Usage: \$path= \$key->Path;"; - my $delim= $self->{DELIM}; - $self= $RegObj unless ref($self); - if( "" eq $self->{MACHINE} ) { - return( $delim . join( $delim, @{$self->{PATH}} ) . $delim ); - } else { - return( $delim x 2 - . join( $delim, $self->{MACHINE}, @{$self->{PATH}} ) - . $delim ); - } -} - - -sub _Path -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - @_ and croak "Usage: \$arrRef= \$key->_Path;"; - $self= $RegObj unless ref($self); - return $self->{PATH}; -} - - -sub Machine -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - @_ and croak "Usage: \$machine= \$key->Machine;"; - $self= $RegObj unless ref($self); - return $self->{MACHINE}; -} - - -sub Access -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - @_ and croak "Usage: \$access= \$key->Access;"; - $self= $RegObj unless ref($self); - return $self->{ACCESS}; -} - - -sub OS_Delimiter -{ - my $self= shift(@_); - @_ and croak "Usage: \$backslash= \$key->OS_Delimiter;"; - return $self->{OS_DELIM}; -} - - -sub _Roots -{ - my $self= shift(@_); - $self= tied(%$self) if ref($self) && tied(%$self); - @_ and croak "Usage: \$varName= \$key->_Roots;"; - $self= $RegObj unless ref($self); - return $self->{ROOTS}; -} - - -sub Roots -{ - my $self= shift(@_); - $self= tied(%$self) if ref($self) && tied(%$self); - @_ and croak "Usage: \$hashRef= \$key->Roots;"; - $self= $RegObj unless ref($self); - return eval "\\%$self->{ROOTS}"; -} - - -sub TIEHASH -{ - my( $this )= shift(@_); - $this= tied(%$this) if ref($this) && tied(%$this); - my( $key )= @_; - if( 1 == @_ && ref($key) && "$key" =~ /=/ ) { - return $key; # $key is already an object (blessed reference). - } - return $this->new( @_ ); -} - - -sub Tie -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my( $hRef )= @_; - if( 1 != @_ || ! ref($hRef) || "$hRef" !~ /(^|=)HASH\(/ ) { - croak "Usage: \$key->Tie(\\\%hash);"; - } - return tie %$hRef, ref($self), $self; -} - - -sub TiedRef -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my $hRef= @_ ? shift(@_) : {}; - return () if ! defined($self); - $self->Tie($hRef); - bless $hRef, ref($self); - return $hRef; -} - - -sub _Flags -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my $oldFlags= $self->{FLAGS}; - if( 1 == @_ ) { - $self->{FLAGS}= shift(@_); - } elsif( 0 != @_ ) { - croak "Usage: \$oldBits= \$key->_Flags(\$newBits);"; - } - return $oldFlags; -} - - -sub ArrayValues -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my $oldFlag= $Flag_ArrVal == ( $Flag_ArrVal & $self->{FLAGS} ); - if( 1 == @_ ) { - my $bool= shift(@_); - if( $bool ) { - $self->{FLAGS} |= $Flag_ArrVal; - } else { - $self->{FLAGS} &= ~( $Flag_ArrVal | $Flag_TieVal ); - } - } elsif( 0 != @_ ) { - croak "Usage: \$oldBool= \$key->ArrayValues(\$newBool);"; - } - return $oldFlag; -} - - -sub TieValues -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my $oldFlag= $Flag_TieVal == ( $Flag_TieVal & $self->{FLAGS} ); - if( 1 == @_ ) { - my $bool= shift(@_); - if( $bool ) { - croak "${PACK}->TieValues cannot be enabled with this version"; - $self->{FLAGS} |= $Flag_TieVal; - } else { - $self->{FLAGS} &= ~$Flag_TieVal; - } - } elsif( 0 != @_ ) { - croak "Usage: \$oldBool= \$key->TieValues(\$newBool);"; - } - return $oldFlag; -} - - -sub FastDelete -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my $oldFlag= $Flag_FastDel == ( $Flag_FastDel & $self->{FLAGS} ); - if( 1 == @_ ) { - my $bool= shift(@_); - if( $bool ) { - $self->{FLAGS} |= $Flag_FastDel; - } else { - $self->{FLAGS} &= ~$Flag_FastDel; - } - } elsif( 0 != @_ ) { - croak "Usage: \$oldBool= \$key->FastDelete(\$newBool);"; - } - return $oldFlag; -} - - -sub SplitMultis -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my $oldFlag= $Flag_Split == ( $Flag_Split & $self->{FLAGS} ); - if( 1 == @_ ) { - my $bool= shift(@_); - if( $bool ) { - $self->{FLAGS} |= $Flag_Split; - } else { - $self->{FLAGS} &= ~$Flag_Split; - } - } elsif( 0 != @_ ) { - croak "Usage: \$oldBool= \$key->SplitMultis(\$newBool);"; - } - return $oldFlag; -} - - -sub DWordsToHex -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my $oldFlag= $Flag_HexDWord == ( $Flag_HexDWord & $self->{FLAGS} ); - if( 1 == @_ ) { - my $bool= shift(@_); - if( $bool ) { - $self->{FLAGS} |= $Flag_HexDWord; - } else { - $self->{FLAGS} &= ~$Flag_HexDWord; - } - } elsif( 0 != @_ ) { - croak "Usage: \$oldBool= \$key->DWordsToHex(\$newBool);"; - } - return $oldFlag; -} - - -sub FixSzNulls -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my $oldFlag= $Flag_FixNulls == ( $Flag_FixNulls & $self->{FLAGS} ); - if( 1 == @_ ) { - my $bool= shift(@_); - if( $bool ) { - $self->{FLAGS} |= $Flag_FixNulls; - } else { - $self->{FLAGS} &= ~$Flag_FixNulls; - } - } elsif( 0 != @_ ) { - croak "Usage: \$oldBool= \$key->FixSzNulls(\$newBool);"; - } - return $oldFlag; -} - - -sub DualTypes -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my $oldFlag= $Flag_DualTyp == ( $Flag_DualTyp & $self->{FLAGS} ); - if( 1 == @_ ) { - my $bool= shift(@_); - if( $bool ) { - croak "${PACK}->DualTypes cannot be enabled since ", - "SetDualVar module not installed" - unless $_SetDualVar; - $self->{FLAGS} |= $Flag_DualTyp; - } else { - $self->{FLAGS} &= ~$Flag_DualTyp; - } - } elsif( 0 != @_ ) { - croak "Usage: \$oldBool= \$key->DualTypes(\$newBool);"; - } - return $oldFlag; -} - - -sub DualBinVals -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my $oldFlag= $Flag_DualBin == ( $Flag_DualBin & $self->{FLAGS} ); - if( 1 == @_ ) { - my $bool= shift(@_); - if( $bool ) { - croak "${PACK}->DualBinVals cannot be enabled since ", - "SetDualVar module not installed" - unless $_SetDualVar; - $self->{FLAGS} |= $Flag_DualBin; - } else { - $self->{FLAGS} &= ~$Flag_DualBin; - } - } elsif( 0 != @_ ) { - croak "Usage: \$oldBool= \$key->DualBinVals(\$newBool);"; - } - return $oldFlag; -} - - -sub GetOptions -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my( $opt, $meth ); - if( ! @_ || 1 == @_ && "HASH" eq ref($_[0]) ) { - my $href= @_ ? $_[0] : {}; - foreach $opt ( grep !/^Allow/, @_opt_subs ) { - $meth= $_opt_subs{$opt}; - $href->{$opt}= $self->$meth(); - } - return @_ ? $self : $href; - } - my @old; - foreach $opt ( @_ ) { - $meth= $_opt_subs{$opt}; - if( defined $meth ) { - if( $opt eq "AllowLoad" || $opt eq "AllowSave" ) { - croak "${PACK}->GetOptions: Getting current setting of $opt ", - "not supported in this release"; - } - push( @old, $self->$meth() ); - } else { - croak "${PACK}->GetOptions: Invalid option ($opt) ", - "not one of ( ", join(" ",grep !/^Allow/, @_opt_subs), " )"; - } - } - return wantarray ? @old : $old[-1]; -} - - -sub SetOptions -{ - my $self= shift(@_); - # Don't get object if hash ref so "ref" returns original ref. - my( $opt, $meth, @old ); - while( @_ ) { - $opt= shift(@_); - $meth= $_opt_subs{$opt}; - if( ! @_ ) { - croak "${PACK}->SetOptions: Option value missing ", - "after option name ($opt)"; - } elsif( defined $meth ) { - push( @old, $self->$meth( shift(@_) ) ); - } elsif( $opt eq substr("reference",0,length($opt)) ) { - shift(@_) if @_; - push( @old, $self ); - } else { - croak "${PACK}->SetOptions: Invalid option ($opt) ", - "not one of ( @_opt_subs )"; - } - } - return wantarray ? @old : $old[-1]; -} - - -sub _parseTiedEnt -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my $ent= shift(@_); - my $delim= shift(@_); - my $dlen= length( $delim ); - my $parent= @_ ? shift(@_) : 0; - my $off; - if( $delim x 2 eq substr($ent,0,2*$dlen) && "NONE" eq $self->Handle ) { - if( 0 <= ( $off= index( $ent, $delim x 2, 2*$dlen ) ) ) { - return( substr( $ent, 0, $off ), substr( $ent, 2*$dlen+$off ) ); - } elsif( $delim eq substr($ent,-$dlen) ) { - return( substr($ent,0,-$dlen) ); - } elsif( 2*$dlen <= ( $off= rindex( $ent, $delim ) ) ) { - return( substr( $ent, 0, $off ), - undef, substr( $ent, $dlen+$off ) ); - } elsif( $parent ) { - return(); - } else { - return( $ent ); - } - } elsif( $delim eq substr($ent,0,$dlen) && "NONE" ne $self->Handle ) { - return( undef, substr($ent,$dlen) ); - } elsif( $self->{MEMBERS} && $self->_MembersHash->{$ent} ) { - return( substr($ent,0,-$dlen) ); - } elsif( 0 <= ( $off= index( $ent, $delim x 2 ) ) ) { - return( substr( $ent, 0, $off ), substr( $ent, 2*$dlen+$off ) ); - } elsif( $delim eq substr($ent,-$dlen) ) { - if( $parent - && 0 <= ( $off= rindex( $ent, $delim, length($ent)-2*$dlen ) ) ) { - return( substr($ent,0,$off), - undef, undef, substr($ent,$dlen+$off,-$dlen) ); - } else { - return( substr($ent,0,-$dlen) ); - } - } elsif( 0 <= ( $off= rindex( $ent, $delim ) ) ) { - return( - substr( $ent, 0, $off ), undef, substr( $ent, $dlen+$off ) ); - } else { - return( undef, undef, $ent ); - } -} - - -sub _FetchValue -{ - my $self= shift( @_ ); - my( $val, $createKey )= @_; - my( $data, $type ); - if( ( $data, $type )= $self->GetValue( $val ) ) { - return $self->ArrayValues ? [ $data, $type ] - : wantarray ? ( $data, $type ) - : $data; - } elsif( $createKey and $data= $self->new($val) ) { - return $data->TiedRef; - } else { - return (); - } -} - - -sub FETCH -{ - my $self= shift(@_); - my $ent= shift(@_); - my $delim= $self->Delimiter; - my( $key, $val, $ambig )= $self->_parseTiedEnt( $ent, $delim, 0 ); - my $sub; - if( defined($key) ) { - if( defined($self->{MEMBHASH}) - && $self->{MEMBHASH}->{$key.$delim} - && 0 <= index($key,$delim) ) { - return () - unless $sub= $self->new( $key, - {"Delimiter"=>$self->OS_Delimiter} ); - $sub->Delimiter($delim); - } else { - return () - unless $sub= $self->new( $key ); - } - } else { - $sub= $self; - } - if( defined($val) ) { - return $sub->_FetchValue( $val ); - } elsif( ! defined($ambig) ) { - return $sub->TiedRef; - } elsif( defined($key) ) { - return $sub->FETCH( $ambig ); - } else { - return $sub->_FetchValue( $ambig, "" ne $ambig ); - } -} - - -sub _FetchOld -{ - my( $self, $key )= @_; - my $old= $self->FETCH($key); - if( $old ) { - my $copy= {}; - %$copy= %$old; - return $copy; - } - # return $^E; - return _Err; -} - - -sub DELETE -{ - my $self= shift(@_); - my $ent= shift(@_); - my $delim= $self->Delimiter; - my( $key, $val, $ambig, $subkey )= $self->_parseTiedEnt( $ent, $delim, 1 ); - my $sub; - my $fast= defined(wantarray) ? $self->FastDelete : 2; - my $old= 1; # Value returned if FastDelete is set. - if( defined($key) - && ( defined($val) || defined($ambig) || defined($subkey) ) ) { - return () - unless $sub= $self->new( $key ); - } else { - $sub= $self; - } - if( defined($val) ) { - $old= $sub->GetValue($val) || _Err unless 2 <= $fast; - $sub->RegDeleteValue( $val ); - } elsif( defined($subkey) ) { - $old= $sub->_FetchOld( $subkey.$delim ) unless $fast; - $sub->RegDeleteKey( $subkey ); - } elsif( defined($ambig) ) { - if( defined($key) ) { - $old= $sub->DELETE($ambig); - } else { - $old= $sub->GetValue($ambig) || _Err unless 2 <= $fast; - if( defined( $old ) ) { - $sub->RegDeleteValue( $ambig ); - } else { - $old= $sub->_FetchOld( $ambig.$delim ) unless $fast; - $sub->RegDeleteKey( $ambig ); - } - } - } elsif( defined($key) ) { - $old= $sub->_FetchOld( $key.$delim ) unless $fast; - $sub->RegDeleteKey( $key ); - } else { - croak "${PACK}->DELETE: Key ($ent) can never be deleted"; - } - return $old; -} - - -sub SetValue -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - my $name= shift(@_); - my $data= shift(@_); - my( $type )= @_; - my $size; - if( ! defined($type) ) { - if( "ARRAY" eq ref($data) ) { - croak "${PACK}->SetValue: Value is array reference but ", - "no data type given" - unless 2 == @$data; - ( $data, $type )= @$data; - } else { - $type= REG_SZ; - } - } - $type= _constant($type,"registry value data type") if $type =~ /^REG_/; - if( REG_MULTI_SZ == $type && "ARRAY" eq ref($data) ) { - $data= join( "\0", @$data ) . "\0\0"; - ## $data= pack( "a*" x (1+@$data), map( $_."\0", @$data, "" ) ); - } elsif( ( REG_SZ == $type || REG_EXPAND_SZ == $type ) - && $self->FixSzNulls ) { - $data .= "\0" unless "\0" eq substr($data,0,-1); - } elsif( REG_DWORD == $type && $data =~ /^0x[0-9a-fA-F]{3,}$/ ) { - $data= pack( "L", hex($data) ); - # We could to $data=pack("L",$data) for REG_DWORD but I see - # no nice way to always distinguish when to do this or not. - } - return $self->RegSetValueEx( $name, 0, $type, $data, length($data) ); -} - - -sub StoreKey -{ - my $this= shift(@_); - $this= tied(%$this) if ref($this) && tied(%$this); - my $subKey= shift(@_); - my $data= shift(@_); - my $ent; - my $self; - if( ! ref($data) || "$data" !~ /(^|=)HASH/ ) { - croak "${PACK}->StoreKey: For ", $this->Path.$subKey, ",\n", - " subkey data must be a HASH reference"; - } - if( defined( $$data{""} ) && "HASH" eq ref($$data{""}) ) { - $self= $this->CreateKey( $subKey, delete $$data{""} ); - } else { - $self= $this->CreateKey( $subKey ); - } - return () if ! defined($self); - foreach $ent ( keys(%$data) ) { - return () - unless $self->STORE( $ent, $$data{$ent} ); - } - return $self; -} - - -# = { "" => {OPT=>VAL}, "val"=>[], "key"=>{} } creates a new key -# = "string" creates a new REG_SZ value -# = [ data, type ] creates a new value -sub STORE -{ - my $self= shift(@_); - my $ent= shift(@_); - my $data= shift(@_); - my $delim= $self->Delimiter; - my( $key, $val, $ambig, $subkey )= $self->_parseTiedEnt( $ent, $delim, 1 ); - my $sub; - if( defined($key) - && ( defined($val) || defined($ambig) || defined($subkey) ) ) { - return () - unless $sub= $self->new( $key ); - } else { - $sub= $self; - } - if( defined($val) ) { - croak "${PACK}->STORE: For ", $sub->Path.$delim.$val, ",\n", - " value data cannot be a HASH reference" - if ref($data) && "$data" =~ /(^|=)HASH/; - $sub->SetValue( $val, $data ); - } elsif( defined($subkey) ) { - croak "${PACK}->STORE: For ", $sub->Path.$subkey.$delim, ",\n", - " subkey data must be a HASH reference" - unless ref($data) && "$data" =~ /(^|=)HASH/; - $sub->StoreKey( $subkey, $data ); - } elsif( defined($ambig) ) { - if( ref($data) && "$data" =~ /(^|=)HASH/ ) { - $sub->StoreKey( $ambig, $data ); - } else { - $sub->SetValue( $ambig, $data ); - } - } elsif( defined($key) ) { - croak "${PACK}->STORE: For ", $sub->Path.$key.$delim, ",\n", - " subkey data must be a HASH reference" - unless ref($data) && "$data" =~ /(^|=)HASH/; - $sub->StoreKey( $key, $data ); - } else { - croak "${PACK}->STORE: Key ($ent) can never be created nor set"; - } -} - - -sub EXISTS -{ - my $self= shift(@_); - my $ent= shift(@_); - return defined( $self->FETCH($ent) ); -} - - -sub FIRSTKEY -{ - my $self= shift(@_); - my $members= $self->_MemberNames; - $self->{PREVIDX}= 0; - return @{$members} ? $members->[0] : undef; -} - - -sub NEXTKEY -{ - my $self= shift(@_); - my $prev= shift(@_); - my $idx= $self->{PREVIDX}; - my $members= $self->_MemberNames; - if( ! defined($idx) || $prev ne $members->[$idx] ) { - $idx= 0; - while( $idx < @$members && $prev ne $members->[$idx] ) { - $idx++; - } - } - $self->{PREVIDX}= ++$idx; - return $members->[$idx]; -} - - -sub DESTROY -{ - my $self= shift(@_); - return if tied(%$self); - my $unload; - eval { $unload= $self->{UNLOADME}; 1 } - or return; - my $debug= $ENV{DEBUG_TIE_REGISTRY}; - if( defined($debug) ) { - if( 1 < $debug ) { - my $hand= $self->Handle; - my $dep= $self->{DEPENDON}; - carp "${PACK} destroying ", $self->Path, " (", - "NONE" eq $hand ? $hand : sprintf("0x%lX",$hand), ")", - defined($dep) ? (" [depends on ",$dep->Path,"]") : (); - } else { - warn "${PACK} destroying ", $self->Path, ".\n"; - } - } - $self->RegCloseKey - unless "NONE" eq $self->Handle; - if( defined($unload) ) { - if( defined($debug) && 1 < $debug ) { - my( $obj, $subKey, $file )= @$unload; - warn "Unloading ", $self->Path, - " (from ", $obj->Path, ", $subKey)...\n"; - } - $self->UnLoad - || warn "Couldn't unload ", $self->Path, ": ", _ErrMsg, "\n"; - ## carp "Never unloaded ${PACK}::Load($$unload[2])"; - } - #delete $self->{DEPENDON}; -} - - -use vars qw( @CreateKey_Opts %CreateKey_Opts %_KeyDispNames ); -@CreateKey_Opts= qw( Access Class Options Delimiter - Disposition Security Volatile Backup ); -@CreateKey_Opts{@CreateKey_Opts}= (1) x @CreateKey_Opts; -%_KeyDispNames= ( REG_CREATED_NEW_KEY() => "REG_CREATED_NEW_KEY", - REG_OPENED_EXISTING_KEY() => "REG_OPENED_EXISTING_KEY" ); - -sub CreateKey -{ - my $self= shift(@_); - my $tied= tied(%$self); - $self= tied(%$self) if $tied; - my( $subKey, $opts )= @_; - my( $sam )= $self->Access; - my( $delim )= $self->Delimiter; - my( $class )= ""; - my( $flags )= 0; - my( $secure )= []; - my( $garb )= []; - my( $result )= \$garb; - my( $handle )= 0; - if( @_ < 1 || 2 < @_ - || 2 == @_ && "HASH" ne ref($opts) ) { - croak "Usage: \$new= \$old->CreateKey( \$subKey, {OPT=>VAL,...} );\n", - " options: @CreateKey_Opts\nCalled"; - } - if( defined($opts) ) { - $sam= $opts->{"Access"} if defined($opts->{"Access"}); - $class= $opts->{Class} if defined($opts->{Class}); - $flags= $opts->{Options} if defined($opts->{Options}); - $delim= $opts->{"Delimiter"} if defined($opts->{"Delimiter"}); - $secure= $opts->{Security} if defined($opts->{Security}); - if( defined($opts->{Disposition}) ) { - "SCALAR" eq ref($opts->{Disposition}) - or croak "${PACK}->CreateKey option `Disposition'", - " must provide a scalar reference"; - $result= $opts->{Disposition}; - } - if( 0 == $flags ) { - $flags |= REG_OPTION_VOLATILE - if defined($opts->{Volatile}) && $opts->{Volatile}; - $flags |= REG_OPTION_BACKUP_RESTORE - if defined($opts->{Backup}) && $opts->{Backup}; - } - } - my $subPath= ref($subKey) ? $subKey : $self->_split($subKey,$delim); - $subKey= join( $self->OS_Delimiter, @$subPath ); - $self->RegCreateKeyEx( $subKey, 0, $class, $flags, $sam, - $secure, $handle, $$result ) - or return (); - if( ! ref($$result) && $self->DualTypes ) { - $$result= _DualVal( \%_KeyDispNames, $$result ); - } - my $new= $self->_new( $handle, [ @{$self->_Path}, @{$subPath} ] ); - $new->{ACCESS}= $sam; - $new->{DELIM}= $delim; - $new= $new->TiedRef if $tied; - return $new; -} - - -use vars qw( $Load_Cnt @Load_Opts %Load_Opts ); -$Load_Cnt= 0; -@Load_Opts= qw(NewSubKey); -@Load_Opts{@Load_Opts}= (1) x @Load_Opts; - -sub Load -{ - my $this= shift(@_); - my $tied= ref($this) && tied(%$this); - $this= tied(%$this) if $tied; - my( $file, $subKey, $opts )= @_; - if( 2 == @_ && "HASH" eq ref($subKey) ) { - $opts= $subKey; - undef $subKey; - } - @_ < 1 || 3 < @_ || defined($opts) && "HASH" ne ref($opts) - and croak "Usage: \$key= ", - "${PACK}->Load( \$fileName, [\$newSubKey,] {OPT=>VAL...} );\n", - " options: @Load_Opts @new_Opts\nCalled"; - if( defined($opts) && exists($opts->{NewSubKey}) ) { - $subKey= delete $opts->{NewSubKey}; - } - if( ! defined( $subKey ) ) { - if( "" ne $this->Machine ) { - ( $this )= $this->_connect( [$this->Machine,"LMachine"] ); - } else { - ( $this )= $this->_rootKey( "LMachine" ); # Could also be "Users" - } - $subKey= "PerlTie:$$." . ++$Load_Cnt; - } - $this->RegLoadKey( $subKey, $file ) - or return (); - my $self= $this->new( $subKey, defined($opts) ? $opts : () ); - if( ! defined( $self ) ) { - { my $err= Win32::GetLastError(); - #{ local( $^E ); #} - $this->RegUnLoadKey( $subKey ) or carp - "Can't unload $subKey from ", $this->Path, ": ", _ErrMsg, "\n"; - Win32::SetLastError($err); - } - return (); - } - $self->{UNLOADME}= [ $this, $subKey, $file ]; - $self= $self->TiedRef if $tied; - return $self; -} - - -sub UnLoad -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - @_ and croak "Usage: \$key->UnLoad;"; - my $unload= $self->{UNLOADME}; - "ARRAY" eq ref($unload) - or croak "${PACK}->UnLoad called on a key which was not Load()ed"; - my( $obj, $subKey, $file )= @$unload; - $self->RegCloseKey; - return Win32API::Registry::RegUnLoadKey( $obj->Handle, $subKey ); -} - - -sub AllowSave -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - return $self->AllowPriv( "SeBackupPrivilege", @_ ); -} - - -sub AllowLoad -{ - my $self= shift(@_); - $self= tied(%$self) if tied(%$self); - return $self->AllowPriv( "SeRestorePrivilege", @_ ); -} - - -# RegNotifyChangeKeyValue( hKey, bWatchSubtree, iNotifyFilter, hEvent, bAsync ) - - -sub RegCloseKey { my $self= shift(@_); - Win32API::Registry::RegCloseKey $self->Handle, @_; } -sub RegConnectRegistry { my $self= shift(@_); - Win32API::Registry::RegConnectRegistry @_; } -sub RegCreateKey { my $self= shift(@_); - Win32API::Registry::RegCreateKey $self->Handle, @_; } -sub RegCreateKeyEx { my $self= shift(@_); - Win32API::Registry::RegCreateKeyEx $self->Handle, @_; } -sub RegDeleteKey { my $self= shift(@_); - Win32API::Registry::RegDeleteKey $self->Handle, @_; } -sub RegDeleteValue { my $self= shift(@_); - Win32API::Registry::RegDeleteValue $self->Handle, @_; } -sub RegEnumKey { my $self= shift(@_); - Win32API::Registry::RegEnumKey $self->Handle, @_; } -sub RegEnumKeyEx { my $self= shift(@_); - Win32API::Registry::RegEnumKeyEx $self->Handle, @_; } -sub RegEnumValue { my $self= shift(@_); - Win32API::Registry::RegEnumValue $self->Handle, @_; } -sub RegFlushKey { my $self= shift(@_); - Win32API::Registry::RegFlushKey $self->Handle, @_; } -sub RegGetKeySecurity { my $self= shift(@_); - Win32API::Registry::RegGetKeySecurity $self->Handle, @_; } -sub RegLoadKey { my $self= shift(@_); - Win32API::Registry::RegLoadKey $self->Handle, @_; } -sub RegNotifyChangeKeyValue { my $self= shift(@_); - Win32API::Registry::RegNotifyChangeKeyValue $self->Handle, @_; } -sub RegOpenKey { my $self= shift(@_); - Win32API::Registry::RegOpenKey $self->Handle, @_; } -sub RegOpenKeyEx { my $self= shift(@_); - Win32API::Registry::RegOpenKeyEx $self->Handle, @_; } -sub RegQueryInfoKey { my $self= shift(@_); - Win32API::Registry::RegQueryInfoKey $self->Handle, @_; } -sub RegQueryMultipleValues { my $self= shift(@_); - Win32API::Registry::RegQueryMultipleValues $self->Handle, @_; } -sub RegQueryValue { my $self= shift(@_); - Win32API::Registry::RegQueryValue $self->Handle, @_; } -sub RegQueryValueEx { my $self= shift(@_); - Win32API::Registry::RegQueryValueEx $self->Handle, @_; } -sub RegReplaceKey { my $self= shift(@_); - Win32API::Registry::RegReplaceKey $self->Handle, @_; } -sub RegRestoreKey { my $self= shift(@_); - Win32API::Registry::RegRestoreKey $self->Handle, @_; } -sub RegSaveKey { my $self= shift(@_); - Win32API::Registry::RegSaveKey $self->Handle, @_; } -sub RegSetKeySecurity { my $self= shift(@_); - Win32API::Registry::RegSetKeySecurity $self->Handle, @_; } -sub RegSetValue { my $self= shift(@_); - Win32API::Registry::RegSetValue $self->Handle, @_; } -sub RegSetValueEx { my $self= shift(@_); - Win32API::Registry::RegSetValueEx $self->Handle, @_; } -sub RegUnLoadKey { my $self= shift(@_); - Win32API::Registry::RegUnLoadKey $self->Handle, @_; } -sub AllowPriv { my $self= shift(@_); - Win32API::Registry::AllowPriv @_; } - - -# Autoload methods go after =cut, and are processed by the autosplit program. - -1; - -__END__ - -#line 3802 - -# Autoload not currently supported by Perl under Windows. diff --git a/software/Slic3r-1.3.0.64bit/lib/Win32/WinError.pm b/software/Slic3r-1.3.0.64bit/lib/Win32/WinError.pm deleted file mode 100644 index 2e8de18f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Win32/WinError.pm +++ /dev/null @@ -1,1018 +0,0 @@ -#line 1 "Win32/WinError.pm" -package Win32::WinError; - -require Exporter; -require DynaLoader; - -$VERSION = '0.04'; - -@ISA = qw(Exporter DynaLoader); -# Items to export into callers namespace by default. Note: do not export -# names by default without a very good reason. Use EXPORT_OK instead. -# Do not simply export all your public functions/methods/constants. -@EXPORT = qw( - GetLastError - CACHE_E_FIRST - CACHE_E_LAST - CACHE_E_NOCACHE_UPDATED - CACHE_S_FIRST - CACHE_S_FORMATETC_NOTSUPPORTED - CACHE_S_LAST - CACHE_S_SAMECACHE - CACHE_S_SOMECACHES_NOTUPDATED - CLASSFACTORY_E_FIRST - CLASSFACTORY_E_LAST - CLASSFACTORY_S_FIRST - CLASSFACTORY_S_LAST - CLASS_E_CLASSNOTAVAILABLE - CLASS_E_NOAGGREGATION - CLIENTSITE_E_FIRST - CLIENTSITE_E_LAST - CLIENTSITE_S_FIRST - CLIENTSITE_S_LAST - CLIPBRD_E_BAD_DATA - CLIPBRD_E_CANT_CLOSE - CLIPBRD_E_CANT_EMPTY - CLIPBRD_E_CANT_OPEN - CLIPBRD_E_CANT_SET - CLIPBRD_E_FIRST - CLIPBRD_E_LAST - CLIPBRD_S_FIRST - CLIPBRD_S_LAST - CONVERT10_E_FIRST - CONVERT10_E_LAST - CONVERT10_E_OLESTREAM_BITMAP_TO_DIB - CONVERT10_E_OLESTREAM_FMT - CONVERT10_E_OLESTREAM_GET - CONVERT10_E_OLESTREAM_PUT - CONVERT10_E_STG_DIB_TO_BITMAP - CONVERT10_E_STG_FMT - CONVERT10_E_STG_NO_STD_STREAM - CONVERT10_S_FIRST - CONVERT10_S_LAST - CONVERT10_S_NO_PRESENTATION - CO_E_ALREADYINITIALIZED - CO_E_APPDIDNTREG - CO_E_APPNOTFOUND - CO_E_APPSINGLEUSE - CO_E_BAD_PATH - CO_E_CANTDETERMINECLASS - CO_E_CLASSSTRING - CO_E_CLASS_CREATE_FAILED - CO_E_DLLNOTFOUND - CO_E_ERRORINAPP - CO_E_ERRORINDLL - CO_E_FIRST - CO_E_IIDSTRING - CO_E_INIT_CLASS_CACHE - CO_E_INIT_MEMORY_ALLOCATOR - CO_E_INIT_ONLY_SINGLE_THREADED - CO_E_INIT_RPC_CHANNEL - CO_E_INIT_SCM_EXEC_FAILURE - CO_E_INIT_SCM_FILE_MAPPING_EXISTS - CO_E_INIT_SCM_MAP_VIEW_OF_FILE - CO_E_INIT_SCM_MUTEX_EXISTS - CO_E_INIT_SHARED_ALLOCATOR - CO_E_INIT_TLS - CO_E_INIT_TLS_CHANNEL_CONTROL - CO_E_INIT_TLS_SET_CHANNEL_CONTROL - CO_E_INIT_UNACCEPTED_USER_ALLOCATOR - CO_E_LAST - CO_E_NOTINITIALIZED - CO_E_OBJISREG - CO_E_OBJNOTCONNECTED - CO_E_OBJNOTREG - CO_E_OBJSRV_RPC_FAILURE - CO_E_RELEASED - CO_E_SCM_ERROR - CO_E_SCM_RPC_FAILURE - CO_E_SERVER_EXEC_FAILURE - CO_E_SERVER_STOPPING - CO_E_WRONGOSFORAPP - CO_S_FIRST - CO_S_LAST - DATA_E_FIRST - DATA_E_LAST - DATA_S_FIRST - DATA_S_LAST - DATA_S_SAMEFORMATETC - DISP_E_ARRAYISLOCKED - DISP_E_BADCALLEE - DISP_E_BADINDEX - DISP_E_BADPARAMCOUNT - DISP_E_BADVARTYPE - DISP_E_EXCEPTION - DISP_E_MEMBERNOTFOUND - DISP_E_NONAMEDARGS - DISP_E_NOTACOLLECTION - DISP_E_OVERFLOW - DISP_E_PARAMNOTFOUND - DISP_E_PARAMNOTOPTIONAL - DISP_E_TYPEMISMATCH - DISP_E_UNKNOWNINTERFACE - DISP_E_UNKNOWNLCID - DISP_E_UNKNOWNNAME - DRAGDROP_E_ALREADYREGISTERED - DRAGDROP_E_FIRST - DRAGDROP_E_INVALIDHWND - DRAGDROP_E_LAST - DRAGDROP_E_NOTREGISTERED - DRAGDROP_S_CANCEL - DRAGDROP_S_DROP - DRAGDROP_S_FIRST - DRAGDROP_S_LAST - DRAGDROP_S_USEDEFAULTCURSORS - DV_E_CLIPFORMAT - DV_E_DVASPECT - DV_E_DVTARGETDEVICE - DV_E_DVTARGETDEVICE_SIZE - DV_E_FORMATETC - DV_E_LINDEX - DV_E_NOIVIEWOBJECT - DV_E_STATDATA - DV_E_STGMEDIUM - DV_E_TYMED - ENUM_E_FIRST - ENUM_E_LAST - ENUM_S_FIRST - ENUM_S_LAST - EPT_S_CANT_CREATE - EPT_S_CANT_PERFORM_OP - EPT_S_INVALID_ENTRY - EPT_S_NOT_REGISTERED - ERROR_ACCESS_DENIED - ERROR_ACCOUNT_DISABLED - ERROR_ACCOUNT_EXPIRED - ERROR_ACCOUNT_LOCKED_OUT - ERROR_ACCOUNT_RESTRICTION - ERROR_ACTIVE_CONNECTIONS - ERROR_ADAP_HDW_ERR - ERROR_ADDRESS_ALREADY_ASSOCIATED - ERROR_ADDRESS_NOT_ASSOCIATED - ERROR_ALIAS_EXISTS - ERROR_ALLOTTED_SPACE_EXCEEDED - ERROR_ALREADY_ASSIGNED - ERROR_ALREADY_EXISTS - ERROR_ALREADY_REGISTERED - ERROR_ALREADY_RUNNING_LKG - ERROR_ALREADY_WAITING - ERROR_ARENA_TRASHED - ERROR_ARITHMETIC_OVERFLOW - ERROR_ATOMIC_LOCKS_NOT_SUPPORTED - ERROR_AUTODATASEG_EXCEEDS_64k - ERROR_BADDB - ERROR_BADKEY - ERROR_BAD_ARGUMENTS - ERROR_BAD_COMMAND - ERROR_BAD_DESCRIPTOR_FORMAT - ERROR_BAD_DEVICE - ERROR_BAD_DEV_TYPE - ERROR_BAD_DRIVER - ERROR_BAD_DRIVER_LEVEL - ERROR_BAD_ENVIRONMENT - ERROR_BAD_EXE_FORMAT - ERROR_BAD_FORMAT - ERROR_BAD_IMPERSONATION_LEVEL - ERROR_BAD_INHERITANCE_ACL - ERROR_BAD_LENGTH - ERROR_BAD_LOGON_SESSION_STATE - ERROR_BAD_NETPATH - ERROR_BAD_NET_NAME - ERROR_BAD_NET_RESP - ERROR_BAD_PATHNAME - ERROR_BAD_PIPE - ERROR_BAD_PROFILE - ERROR_BAD_PROVIDER - ERROR_BAD_REM_ADAP - ERROR_BAD_THREADID_ADDR - ERROR_BAD_TOKEN_TYPE - ERROR_BAD_UNIT - ERROR_BAD_USERNAME - ERROR_BAD_VALIDATION_CLASS - ERROR_BEGINNING_OF_MEDIA - ERROR_BOOT_ALREADY_ACCEPTED - ERROR_BROKEN_PIPE - ERROR_BUFFER_OVERFLOW - ERROR_BUSY - ERROR_BUSY_DRIVE - ERROR_BUS_RESET - ERROR_CALL_NOT_IMPLEMENTED - ERROR_CANCELLED - ERROR_CANCEL_VIOLATION - ERROR_CANNOT_COPY - ERROR_CANNOT_FIND_WND_CLASS - ERROR_CANNOT_IMPERSONATE - ERROR_CANNOT_MAKE - ERROR_CANNOT_OPEN_PROFILE - ERROR_CANTOPEN - ERROR_CANTREAD - ERROR_CANTWRITE - ERROR_CANT_ACCESS_DOMAIN_INFO - ERROR_CANT_DISABLE_MANDATORY - ERROR_CANT_OPEN_ANONYMOUS - ERROR_CAN_NOT_COMPLETE - ERROR_CAN_NOT_DEL_LOCAL_WINS - ERROR_CHILD_MUST_BE_VOLATILE - ERROR_CHILD_NOT_COMPLETE - ERROR_CHILD_WINDOW_MENU - ERROR_CIRCULAR_DEPENDENCY - ERROR_CLASS_ALREADY_EXISTS - ERROR_CLASS_DOES_NOT_EXIST - ERROR_CLASS_HAS_WINDOWS - ERROR_CLIPBOARD_NOT_OPEN - ERROR_CLIPPING_NOT_SUPPORTED - ERROR_CONNECTION_ABORTED - ERROR_CONNECTION_ACTIVE - ERROR_CONNECTION_COUNT_LIMIT - ERROR_CONNECTION_INVALID - ERROR_CONNECTION_REFUSED - ERROR_CONNECTION_UNAVAIL - ERROR_CONTROL_ID_NOT_FOUND - ERROR_COUNTER_TIMEOUT - ERROR_CRC - ERROR_CURRENT_DIRECTORY - ERROR_DATABASE_DOES_NOT_EXIST - ERROR_DC_NOT_FOUND - ERROR_DEPENDENT_SERVICES_RUNNING - ERROR_DESTROY_OBJECT_OF_OTHER_THREAD - ERROR_DEVICE_ALREADY_REMEMBERED - ERROR_DEVICE_IN_USE - ERROR_DEVICE_NOT_PARTITIONED - ERROR_DEV_NOT_EXIST - ERROR_DIRECTORY - ERROR_DIRECT_ACCESS_HANDLE - ERROR_DIR_NOT_EMPTY - ERROR_DIR_NOT_ROOT - ERROR_DISCARDED - ERROR_DISK_CHANGE - ERROR_DISK_CORRUPT - ERROR_DISK_FULL - ERROR_DISK_OPERATION_FAILED - ERROR_DISK_RECALIBRATE_FAILED - ERROR_DISK_RESET_FAILED - ERROR_DLL_INIT_FAILED - ERROR_DOMAIN_CONTROLLER_NOT_FOUND - ERROR_DOMAIN_EXISTS - ERROR_DOMAIN_LIMIT_EXCEEDED - ERROR_DOMAIN_TRUST_INCONSISTENT - ERROR_DRIVE_LOCKED - ERROR_DUPLICATE_SERVICE_NAME - ERROR_DUP_DOMAINNAME - ERROR_DUP_NAME - ERROR_DYNLINK_FROM_INVALID_RING - ERROR_EAS_DIDNT_FIT - ERROR_EAS_NOT_SUPPORTED - ERROR_EA_ACCESS_DENIED - ERROR_EA_FILE_CORRUPT - ERROR_EA_LIST_INCONSISTENT - ERROR_EA_TABLE_FULL - ERROR_END_OF_MEDIA - ERROR_ENVVAR_NOT_FOUND - ERROR_EOM_OVERFLOW - ERROR_EVENTLOG_CANT_START - ERROR_EVENTLOG_FILE_CHANGED - ERROR_EVENTLOG_FILE_CORRUPT - ERROR_EXCEPTION_IN_SERVICE - ERROR_EXCL_SEM_ALREADY_OWNED - ERROR_EXE_MARKED_INVALID - ERROR_EXTENDED_ERROR - ERROR_FAILED_SERVICE_CONTROLLER_CONNECT - ERROR_FAIL_I24 - ERROR_FILEMARK_DETECTED - ERROR_FILENAME_EXCED_RANGE - ERROR_FILE_CORRUPT - ERROR_FILE_EXISTS - ERROR_FILE_INVALID - ERROR_FILE_NOT_FOUND - ERROR_FLOPPY_BAD_REGISTERS - ERROR_FLOPPY_ID_MARK_NOT_FOUND - ERROR_FLOPPY_UNKNOWN_ERROR - ERROR_FLOPPY_WRONG_CYLINDER - ERROR_FULLSCREEN_MODE - ERROR_FULL_BACKUP - ERROR_GENERIC_NOT_MAPPED - ERROR_GEN_FAILURE - ERROR_GLOBAL_ONLY_HOOK - ERROR_GRACEFUL_DISCONNECT - ERROR_GROUP_EXISTS - ERROR_HANDLE_DISK_FULL - ERROR_HANDLE_EOF - ERROR_HOOK_NEEDS_HMOD - ERROR_HOOK_NOT_INSTALLED - ERROR_HOST_UNREACHABLE - ERROR_HOTKEY_ALREADY_REGISTERED - ERROR_HOTKEY_NOT_REGISTERED - ERROR_HWNDS_HAVE_DIFF_PARENT - ERROR_ILL_FORMED_PASSWORD - ERROR_INCORRECT_ADDRESS - ERROR_INC_BACKUP - ERROR_INFLOOP_IN_RELOC_CHAIN - ERROR_INSUFFICIENT_BUFFER - ERROR_INTERNAL_DB_CORRUPTION - ERROR_INTERNAL_DB_ERROR - ERROR_INTERNAL_ERROR - ERROR_INVALID_ACCEL_HANDLE - ERROR_INVALID_ACCESS - ERROR_INVALID_ACCOUNT_NAME - ERROR_INVALID_ACL - ERROR_INVALID_ADDRESS - ERROR_INVALID_AT_INTERRUPT_TIME - ERROR_INVALID_BLOCK - ERROR_INVALID_BLOCK_LENGTH - ERROR_INVALID_CATEGORY - ERROR_INVALID_COMBOBOX_MESSAGE - ERROR_INVALID_COMPUTERNAME - ERROR_INVALID_CURSOR_HANDLE - ERROR_INVALID_DATA - ERROR_INVALID_DATATYPE - ERROR_INVALID_DOMAINNAME - ERROR_INVALID_DOMAIN_ROLE - ERROR_INVALID_DOMAIN_STATE - ERROR_INVALID_DRIVE - ERROR_INVALID_DWP_HANDLE - ERROR_INVALID_EA_HANDLE - ERROR_INVALID_EA_NAME - ERROR_INVALID_EDIT_HEIGHT - ERROR_INVALID_ENVIRONMENT - ERROR_INVALID_EVENTNAME - ERROR_INVALID_EVENT_COUNT - ERROR_INVALID_EXE_SIGNATURE - ERROR_INVALID_FILTER_PROC - ERROR_INVALID_FLAGS - ERROR_INVALID_FLAG_NUMBER - ERROR_INVALID_FORM_NAME - ERROR_INVALID_FORM_SIZE - ERROR_INVALID_FUNCTION - ERROR_INVALID_GROUPNAME - ERROR_INVALID_GROUP_ATTRIBUTES - ERROR_INVALID_GW_COMMAND - ERROR_INVALID_HANDLE - ERROR_INVALID_HOOK_FILTER - ERROR_INVALID_HOOK_HANDLE - ERROR_INVALID_ICON_HANDLE - ERROR_INVALID_ID_AUTHORITY - ERROR_INVALID_INDEX - ERROR_INVALID_LB_MESSAGE - ERROR_INVALID_LEVEL - ERROR_INVALID_LIST_FORMAT - ERROR_INVALID_LOGON_HOURS - ERROR_INVALID_LOGON_TYPE - ERROR_INVALID_MEMBER - ERROR_INVALID_MENU_HANDLE - ERROR_INVALID_MESSAGE - ERROR_INVALID_MESSAGEDEST - ERROR_INVALID_MESSAGENAME - ERROR_INVALID_MINALLOCSIZE - ERROR_INVALID_MODULETYPE - ERROR_INVALID_MSGBOX_STYLE - ERROR_INVALID_NAME - ERROR_INVALID_NETNAME - ERROR_INVALID_ORDINAL - ERROR_INVALID_OWNER - ERROR_INVALID_PARAMETER - ERROR_INVALID_PASSWORD - ERROR_INVALID_PASSWORDNAME - ERROR_INVALID_PIXEL_FORMAT - ERROR_INVALID_PRIMARY_GROUP - ERROR_INVALID_PRINTER_COMMAND - ERROR_INVALID_PRINTER_NAME - ERROR_INVALID_PRINTER_STATE - ERROR_INVALID_PRIORITY - ERROR_INVALID_SCROLLBAR_RANGE - ERROR_INVALID_SECURITY_DESCR - ERROR_INVALID_SEGDPL - ERROR_INVALID_SEGMENT_NUMBER - ERROR_INVALID_SEPARATOR_FILE - ERROR_INVALID_SERVER_STATE - ERROR_INVALID_SERVICENAME - ERROR_INVALID_SERVICE_ACCOUNT - ERROR_INVALID_SERVICE_CONTROL - ERROR_INVALID_SERVICE_LOCK - ERROR_INVALID_SHARENAME - ERROR_INVALID_SHOWWIN_COMMAND - ERROR_INVALID_SID - ERROR_INVALID_SIGNAL_NUMBER - ERROR_INVALID_SPI_VALUE - ERROR_INVALID_STACKSEG - ERROR_INVALID_STARTING_CODESEG - ERROR_INVALID_SUB_AUTHORITY - ERROR_INVALID_TARGET_HANDLE - ERROR_INVALID_THREAD_ID - ERROR_INVALID_TIME - ERROR_INVALID_USER_BUFFER - ERROR_INVALID_VERIFY_SWITCH - ERROR_INVALID_WINDOW_HANDLE - ERROR_INVALID_WINDOW_STYLE - ERROR_INVALID_WORKSTATION - ERROR_IOPL_NOT_ENABLED - ERROR_IO_DEVICE - ERROR_IO_INCOMPLETE - ERROR_IO_PENDING - ERROR_IRQ_BUSY - ERROR_IS_JOINED - ERROR_IS_JOIN_PATH - ERROR_IS_JOIN_TARGET - ERROR_IS_SUBSTED - ERROR_IS_SUBST_PATH - ERROR_IS_SUBST_TARGET - ERROR_ITERATED_DATA_EXCEEDS_64k - ERROR_JOIN_TO_JOIN - ERROR_JOIN_TO_SUBST - ERROR_JOURNAL_HOOK_SET - ERROR_KEY_DELETED - ERROR_KEY_HAS_CHILDREN - ERROR_LABEL_TOO_LONG - ERROR_LAST_ADMIN - ERROR_LB_WITHOUT_TABSTOPS - ERROR_LISTBOX_ID_NOT_FOUND - ERROR_LM_CROSS_ENCRYPTION_REQUIRED - ERROR_LOCAL_USER_SESSION_KEY - ERROR_LOCKED - ERROR_LOCK_FAILED - ERROR_LOCK_VIOLATION - ERROR_LOGIN_TIME_RESTRICTION - ERROR_LOGIN_WKSTA_RESTRICTION - ERROR_LOGON_FAILURE - ERROR_LOGON_NOT_GRANTED - ERROR_LOGON_SESSION_COLLISION - ERROR_LOGON_SESSION_EXISTS - ERROR_LOGON_TYPE_NOT_GRANTED - ERROR_LOG_FILE_FULL - ERROR_LUIDS_EXHAUSTED - ERROR_MAPPED_ALIGNMENT - ERROR_MAX_THRDS_REACHED - ERROR_MEDIA_CHANGED - ERROR_MEMBERS_PRIMARY_GROUP - ERROR_MEMBER_IN_ALIAS - ERROR_MEMBER_IN_GROUP - ERROR_MEMBER_NOT_IN_ALIAS - ERROR_MEMBER_NOT_IN_GROUP - ERROR_METAFILE_NOT_SUPPORTED - ERROR_META_EXPANSION_TOO_LONG - ERROR_MOD_NOT_FOUND - ERROR_MORE_DATA - ERROR_MORE_WRITES - ERROR_MR_MID_NOT_FOUND - ERROR_NEGATIVE_SEEK - ERROR_NESTING_NOT_ALLOWED - ERROR_NETLOGON_NOT_STARTED - ERROR_NETNAME_DELETED - ERROR_NETWORK_ACCESS_DENIED - ERROR_NETWORK_BUSY - ERROR_NETWORK_UNREACHABLE - ERROR_NET_WRITE_FAULT - ERROR_NOACCESS - ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT - ERROR_NOLOGON_SERVER_TRUST_ACCOUNT - ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT - ERROR_NONE_MAPPED - ERROR_NON_MDICHILD_WINDOW - ERROR_NOTIFY_ENUM_DIR - ERROR_NOT_ALL_ASSIGNED - ERROR_NOT_CHILD_WINDOW - ERROR_NOT_CONNECTED - ERROR_NOT_CONTAINER - ERROR_NOT_DOS_DISK - ERROR_NOT_ENOUGH_MEMORY - ERROR_NOT_ENOUGH_QUOTA - ERROR_NOT_ENOUGH_SERVER_MEMORY - ERROR_NOT_JOINED - ERROR_NOT_LOCKED - ERROR_NOT_LOGON_PROCESS - ERROR_NOT_OWNER - ERROR_NOT_READY - ERROR_NOT_REGISTRY_FILE - ERROR_NOT_SAME_DEVICE - ERROR_NOT_SUBSTED - ERROR_NOT_SUPPORTED - ERROR_NO_BROWSER_SERVERS_FOUND - ERROR_NO_DATA - ERROR_NO_DATA_DETECTED - ERROR_NO_IMPERSONATION_TOKEN - ERROR_NO_INHERITANCE - ERROR_NO_LOGON_SERVERS - ERROR_NO_LOG_SPACE - ERROR_NO_MEDIA_IN_DRIVE - ERROR_NO_MORE_FILES - ERROR_NO_MORE_ITEMS - ERROR_NO_MORE_SEARCH_HANDLES - ERROR_NO_NETWORK - ERROR_NO_NET_OR_BAD_PATH - ERROR_NO_PROC_SLOTS - ERROR_NO_QUOTAS_FOR_ACCOUNT - ERROR_NO_SCROLLBARS - ERROR_NO_SECURITY_ON_OBJECT - ERROR_NO_SHUTDOWN_IN_PROGRESS - ERROR_NO_SIGNAL_SENT - ERROR_NO_SPOOL_SPACE - ERROR_NO_SUCH_ALIAS - ERROR_NO_SUCH_DOMAIN - ERROR_NO_SUCH_GROUP - ERROR_NO_SUCH_LOGON_SESSION - ERROR_NO_SUCH_MEMBER - ERROR_NO_SUCH_PACKAGE - ERROR_NO_SUCH_PRIVILEGE - ERROR_NO_SUCH_USER - ERROR_NO_SYSTEM_MENU - ERROR_NO_TOKEN - ERROR_NO_TRUST_LSA_SECRET - ERROR_NO_TRUST_SAM_ACCOUNT - ERROR_NO_UNICODE_TRANSLATION - ERROR_NO_USER_SESSION_KEY - ERROR_NO_VOLUME_LABEL - ERROR_NO_WILDCARD_CHARACTERS - ERROR_NT_CROSS_ENCRYPTION_REQUIRED - ERROR_NULL_LM_PASSWORD - ERROR_OPEN_FAILED - ERROR_OPEN_FILES - ERROR_OPERATION_ABORTED - ERROR_OUTOFMEMORY - ERROR_OUT_OF_PAPER - ERROR_OUT_OF_STRUCTURES - ERROR_PARTIAL_COPY - ERROR_PARTITION_FAILURE - ERROR_PASSWORD_EXPIRED - ERROR_PASSWORD_MUST_CHANGE - ERROR_PASSWORD_RESTRICTION - ERROR_PATH_BUSY - ERROR_PATH_NOT_FOUND - ERROR_PIPE_BUSY - ERROR_PIPE_CONNECTED - ERROR_PIPE_LISTENING - ERROR_PIPE_NOT_CONNECTED - ERROR_POPUP_ALREADY_ACTIVE - ERROR_PORT_UNREACHABLE - ERROR_POSSIBLE_DEADLOCK - ERROR_PRINTER_ALREADY_EXISTS - ERROR_PRINTER_DELETED - ERROR_PRINTER_DRIVER_ALREADY_INSTALLED - ERROR_PRINTER_DRIVER_IN_USE - ERROR_PRINTQ_FULL - ERROR_PRINT_CANCELLED - ERROR_PRINT_MONITOR_ALREADY_INSTALLED - ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED - ERROR_PRIVATE_DIALOG_INDEX - ERROR_PRIVILEGE_NOT_HELD - ERROR_PROCESS_ABORTED - ERROR_PROC_NOT_FOUND - ERROR_PROTOCOL_UNREACHABLE - ERROR_READ_FAULT - ERROR_REC_NON_EXISTENT - ERROR_REDIRECTOR_HAS_OPEN_HANDLES - ERROR_REDIR_PAUSED - ERROR_REGISTRY_CORRUPT - ERROR_REGISTRY_IO_FAILED - ERROR_REGISTRY_RECOVERED - ERROR_RELOC_CHAIN_XEEDS_SEGLIM - ERROR_REMOTE_SESSION_LIMIT_EXCEEDED - ERROR_REM_NOT_LIST - ERROR_REQUEST_ABORTED - ERROR_REQ_NOT_ACCEP - ERROR_RESOURCE_DATA_NOT_FOUND - ERROR_RESOURCE_LANG_NOT_FOUND - ERROR_RESOURCE_NAME_NOT_FOUND - ERROR_RESOURCE_TYPE_NOT_FOUND - ERROR_RETRY - ERROR_REVISION_MISMATCH - ERROR_RING2SEG_MUST_BE_MOVABLE - ERROR_RING2_STACK_IN_USE - ERROR_RPL_NOT_ALLOWED - ERROR_RXACT_COMMIT_FAILURE - ERROR_RXACT_INVALID_STATE - ERROR_SAME_DRIVE - ERROR_SCREEN_ALREADY_LOCKED - ERROR_SECRET_TOO_LONG - ERROR_SECTOR_NOT_FOUND - ERROR_SEEK - ERROR_SEEK_ON_DEVICE - ERROR_SEM_IS_SET - ERROR_SEM_NOT_FOUND - ERROR_SEM_OWNER_DIED - ERROR_SEM_TIMEOUT - ERROR_SEM_USER_LIMIT - ERROR_SERIAL_NO_DEVICE - ERROR_SERVER_DISABLED - ERROR_SERVER_HAS_OPEN_HANDLES - ERROR_SERVER_NOT_DISABLED - ERROR_SERVICE_ALREADY_RUNNING - ERROR_SERVICE_CANNOT_ACCEPT_CTRL - ERROR_SERVICE_DATABASE_LOCKED - ERROR_SERVICE_DEPENDENCY_DELETED - ERROR_SERVICE_DEPENDENCY_FAIL - ERROR_SERVICE_DISABLED - ERROR_SERVICE_DOES_NOT_EXIST - ERROR_SERVICE_EXISTS - ERROR_SERVICE_LOGON_FAILED - ERROR_SERVICE_MARKED_FOR_DELETE - ERROR_SERVICE_NEVER_STARTED - ERROR_SERVICE_NOT_ACTIVE - ERROR_SERVICE_NOT_FOUND - ERROR_SERVICE_NO_THREAD - ERROR_SERVICE_REQUEST_TIMEOUT - ERROR_SERVICE_SPECIFIC_ERROR - ERROR_SERVICE_START_HANG - ERROR_SESSION_CREDENTIAL_CONFLICT - ERROR_SETCOUNT_ON_BAD_LB - ERROR_SETMARK_DETECTED - ERROR_SHARING_BUFFER_EXCEEDED - ERROR_SHARING_PAUSED - ERROR_SHARING_VIOLATION - ERROR_SHUTDOWN_IN_PROGRESS - ERROR_SIGNAL_PENDING - ERROR_SIGNAL_REFUSED - ERROR_SOME_NOT_MAPPED - ERROR_SPECIAL_ACCOUNT - ERROR_SPECIAL_GROUP - ERROR_SPECIAL_USER - ERROR_SPL_NO_ADDJOB - ERROR_SPL_NO_STARTDOC - ERROR_SPOOL_FILE_NOT_FOUND - ERROR_STACK_OVERFLOW - ERROR_STATIC_INIT - ERROR_SUBST_TO_JOIN - ERROR_SUBST_TO_SUBST - ERROR_SUCCESS - ERROR_SWAPERROR - ERROR_SYSTEM_TRACE - ERROR_THREAD_1_INACTIVE - ERROR_TLW_WITH_WSCHILD - ERROR_TOKEN_ALREADY_IN_USE - ERROR_TOO_MANY_CMDS - ERROR_TOO_MANY_CONTEXT_IDS - ERROR_TOO_MANY_LUIDS_REQUESTED - ERROR_TOO_MANY_MODULES - ERROR_TOO_MANY_MUXWAITERS - ERROR_TOO_MANY_NAMES - ERROR_TOO_MANY_OPEN_FILES - ERROR_TOO_MANY_POSTS - ERROR_TOO_MANY_SECRETS - ERROR_TOO_MANY_SEMAPHORES - ERROR_TOO_MANY_SEM_REQUESTS - ERROR_TOO_MANY_SESS - ERROR_TOO_MANY_SIDS - ERROR_TOO_MANY_TCBS - ERROR_TRANSFORM_NOT_SUPPORTED - ERROR_TRUSTED_DOMAIN_FAILURE - ERROR_TRUSTED_RELATIONSHIP_FAILURE - ERROR_TRUST_FAILURE - ERROR_UNABLE_TO_LOCK_MEDIA - ERROR_UNABLE_TO_UNLOAD_MEDIA - ERROR_UNEXP_NET_ERR - ERROR_UNKNOWN_PORT - ERROR_UNKNOWN_PRINTER_DRIVER - ERROR_UNKNOWN_PRINTPROCESSOR - ERROR_UNKNOWN_PRINT_MONITOR - ERROR_UNKNOWN_REVISION - ERROR_UNRECOGNIZED_MEDIA - ERROR_UNRECOGNIZED_VOLUME - ERROR_USER_EXISTS - ERROR_USER_MAPPED_FILE - ERROR_VC_DISCONNECTED - ERROR_WAIT_NO_CHILDREN - ERROR_WINDOW_NOT_COMBOBOX - ERROR_WINDOW_NOT_DIALOG - ERROR_WINDOW_OF_OTHER_THREAD - ERROR_WINS_INTERNAL - ERROR_WRITE_FAULT - ERROR_WRITE_PROTECT - ERROR_WRONG_DISK - ERROR_WRONG_PASSWORD - E_ABORT - E_ACCESSDENIED - E_FAIL - E_HANDLE - E_INVALIDARG - E_NOINTERFACE - E_NOTIMPL - E_OUTOFMEMORY - E_POINTER - E_UNEXPECTED - FACILITY_CONTROL - FACILITY_DISPATCH - FACILITY_ITF - FACILITY_NT_BIT - FACILITY_NULL - FACILITY_RPC - FACILITY_STORAGE - FACILITY_WIN32 - FACILITY_WINDOWS - INPLACE_E_FIRST - INPLACE_E_LAST - INPLACE_E_NOTOOLSPACE - INPLACE_E_NOTUNDOABLE - INPLACE_S_FIRST - INPLACE_S_LAST - INPLACE_S_TRUNCATED - MARSHAL_E_FIRST - MARSHAL_E_LAST - MARSHAL_S_FIRST - MARSHAL_S_LAST - MEM_E_INVALID_LINK - MEM_E_INVALID_ROOT - MEM_E_INVALID_SIZE - MK_E_CANTOPENFILE - MK_E_CONNECTMANUALLY - MK_E_ENUMERATION_FAILED - MK_E_EXCEEDEDDEADLINE - MK_E_FIRST - MK_E_INTERMEDIATEINTERFACENOTSUPPORTED - MK_E_INVALIDEXTENSION - MK_E_LAST - MK_E_MUSTBOTHERUSER - MK_E_NEEDGENERIC - MK_E_NOINVERSE - MK_E_NOOBJECT - MK_E_NOPREFIX - MK_E_NOSTORAGE - MK_E_NOTBINDABLE - MK_E_NOTBOUND - MK_E_NO_NORMALIZED - MK_E_SYNTAX - MK_E_UNAVAILABLE - MK_S_FIRST - MK_S_HIM - MK_S_LAST - MK_S_ME - MK_S_MONIKERALREADYREGISTERED - MK_S_REDUCED_TO_SELF - MK_S_US - NOERROR - NO_ERROR - OLEOBJ_E_FIRST - OLEOBJ_E_INVALIDVERB - OLEOBJ_E_LAST - OLEOBJ_E_NOVERBS - OLEOBJ_S_CANNOT_DOVERB_NOW - OLEOBJ_S_FIRST - OLEOBJ_S_INVALIDHWND - OLEOBJ_S_INVALIDVERB - OLEOBJ_S_LAST - OLE_E_ADVF - OLE_E_ADVISENOTSUPPORTED - OLE_E_BLANK - OLE_E_CANTCONVERT - OLE_E_CANT_BINDTOSOURCE - OLE_E_CANT_GETMONIKER - OLE_E_CLASSDIFF - OLE_E_ENUM_NOMORE - OLE_E_FIRST - OLE_E_INVALIDHWND - OLE_E_INVALIDRECT - OLE_E_LAST - OLE_E_NOCACHE - OLE_E_NOCONNECTION - OLE_E_NOSTORAGE - OLE_E_NOTRUNNING - OLE_E_NOT_INPLACEACTIVE - OLE_E_OLEVERB - OLE_E_PROMPTSAVECANCELLED - OLE_E_STATIC - OLE_E_WRONGCOMPOBJ - OLE_S_FIRST - OLE_S_LAST - OLE_S_MAC_CLIPFORMAT - OLE_S_STATIC - OLE_S_USEREG - REGDB_E_CLASSNOTREG - REGDB_E_FIRST - REGDB_E_IIDNOTREG - REGDB_E_INVALIDVALUE - REGDB_E_KEYMISSING - REGDB_E_LAST - REGDB_E_READREGDB - REGDB_E_WRITEREGDB - REGDB_S_FIRST - REGDB_S_LAST - RPC_E_ATTEMPTED_MULTITHREAD - RPC_E_CALL_CANCELED - RPC_E_CALL_REJECTED - RPC_E_CANTCALLOUT_AGAIN - RPC_E_CANTCALLOUT_INASYNCCALL - RPC_E_CANTCALLOUT_INEXTERNALCALL - RPC_E_CANTCALLOUT_ININPUTSYNCCALL - RPC_E_CANTPOST_INSENDCALL - RPC_E_CANTTRANSMIT_CALL - RPC_E_CHANGED_MODE - RPC_E_CLIENT_CANTMARSHAL_DATA - RPC_E_CLIENT_CANTUNMARSHAL_DATA - RPC_E_CLIENT_DIED - RPC_E_CONNECTION_TERMINATED - RPC_E_DISCONNECTED - RPC_E_FAULT - RPC_E_INVALIDMETHOD - RPC_E_INVALID_CALLDATA - RPC_E_INVALID_DATA - RPC_E_INVALID_DATAPACKET - RPC_E_INVALID_PARAMETER - RPC_E_NOT_REGISTERED - RPC_E_OUT_OF_RESOURCES - RPC_E_RETRY - RPC_E_SERVERCALL_REJECTED - RPC_E_SERVERCALL_RETRYLATER - RPC_E_SERVERFAULT - RPC_E_SERVER_CANTMARSHAL_DATA - RPC_E_SERVER_CANTUNMARSHAL_DATA - RPC_E_SERVER_DIED - RPC_E_SERVER_DIED_DNE - RPC_E_SYS_CALL_FAILED - RPC_E_THREAD_NOT_INIT - RPC_E_UNEXPECTED - RPC_E_WRONG_THREAD - RPC_S_ADDRESS_ERROR - RPC_S_ALREADY_LISTENING - RPC_S_ALREADY_REGISTERED - RPC_S_BINDING_HAS_NO_AUTH - RPC_S_BINDING_INCOMPLETE - RPC_S_CALL_CANCELLED - RPC_S_CALL_FAILED - RPC_S_CALL_FAILED_DNE - RPC_S_CALL_IN_PROGRESS - RPC_S_CANNOT_SUPPORT - RPC_S_CANT_CREATE_ENDPOINT - RPC_S_COMM_FAILURE - RPC_S_DUPLICATE_ENDPOINT - RPC_S_ENTRY_ALREADY_EXISTS - RPC_S_ENTRY_NOT_FOUND - RPC_S_FP_DIV_ZERO - RPC_S_FP_OVERFLOW - RPC_S_FP_UNDERFLOW - RPC_S_GROUP_MEMBER_NOT_FOUND - RPC_S_INCOMPLETE_NAME - RPC_S_INTERFACE_NOT_FOUND - RPC_S_INTERNAL_ERROR - RPC_S_INVALID_AUTH_IDENTITY - RPC_S_INVALID_BINDING - RPC_S_INVALID_BOUND - RPC_S_INVALID_ENDPOINT_FORMAT - RPC_S_INVALID_NAF_ID - RPC_S_INVALID_NAME_SYNTAX - RPC_S_INVALID_NETWORK_OPTIONS - RPC_S_INVALID_NET_ADDR - RPC_S_INVALID_OBJECT - RPC_S_INVALID_RPC_PROTSEQ - RPC_S_INVALID_STRING_BINDING - RPC_S_INVALID_STRING_UUID - RPC_S_INVALID_TAG - RPC_S_INVALID_TIMEOUT - RPC_S_INVALID_VERS_OPTION - RPC_S_MAX_CALLS_TOO_SMALL - RPC_S_NAME_SERVICE_UNAVAILABLE - RPC_S_NOTHING_TO_EXPORT - RPC_S_NOT_ALL_OBJS_UNEXPORTED - RPC_S_NOT_CANCELLED - RPC_S_NOT_LISTENING - RPC_S_NOT_RPC_ERROR - RPC_S_NO_BINDINGS - RPC_S_NO_CALL_ACTIVE - RPC_S_NO_CONTEXT_AVAILABLE - RPC_S_NO_ENDPOINT_FOUND - RPC_S_NO_ENTRY_NAME - RPC_S_NO_INTERFACES - RPC_S_NO_MORE_BINDINGS - RPC_S_NO_MORE_MEMBERS - RPC_S_NO_PRINC_NAME - RPC_S_NO_PROTSEQS - RPC_S_NO_PROTSEQS_REGISTERED - RPC_S_OBJECT_NOT_FOUND - RPC_S_OUT_OF_RESOURCES - RPC_S_PROCNUM_OUT_OF_RANGE - RPC_S_PROTOCOL_ERROR - RPC_S_PROTSEQ_NOT_FOUND - RPC_S_PROTSEQ_NOT_SUPPORTED - RPC_S_SEC_PKG_ERROR - RPC_S_SERVER_TOO_BUSY - RPC_S_SERVER_UNAVAILABLE - RPC_S_STRING_TOO_LONG - RPC_S_TYPE_ALREADY_REGISTERED - RPC_S_UNKNOWN_AUTHN_LEVEL - RPC_S_UNKNOWN_AUTHN_SERVICE - RPC_S_UNKNOWN_AUTHN_TYPE - RPC_S_UNKNOWN_AUTHZ_SERVICE - RPC_S_UNKNOWN_IF - RPC_S_UNKNOWN_MGR_TYPE - RPC_S_UNSUPPORTED_AUTHN_LEVEL - RPC_S_UNSUPPORTED_NAME_SYNTAX - RPC_S_UNSUPPORTED_TRANS_SYN - RPC_S_UNSUPPORTED_TYPE - RPC_S_UUID_LOCAL_ONLY - RPC_S_UUID_NO_ADDRESS - RPC_S_WRONG_KIND_OF_BINDING - RPC_S_ZERO_DIVIDE - RPC_X_BAD_STUB_DATA - RPC_X_BYTE_COUNT_TOO_SMALL - RPC_X_ENUM_VALUE_OUT_OF_RANGE - RPC_X_INVALID_ES_ACTION - RPC_X_NO_MORE_ENTRIES - RPC_X_NULL_REF_POINTER - RPC_X_SS_CANNOT_GET_CALL_HANDLE - RPC_X_SS_CHAR_TRANS_OPEN_FAIL - RPC_X_SS_CHAR_TRANS_SHORT_FILE - RPC_X_SS_CONTEXT_DAMAGED - RPC_X_SS_HANDLES_MISMATCH - RPC_X_SS_IN_NULL_CONTEXT - RPC_X_WRONG_ES_VERSION - RPC_X_WRONG_STUB_VERSION - SEVERITY_ERROR - SEVERITY_SUCCESS - STG_E_ABNORMALAPIEXIT - STG_E_ACCESSDENIED - STG_E_CANTSAVE - STG_E_DISKISWRITEPROTECTED - STG_E_EXTANTMARSHALLINGS - STG_E_FILEALREADYEXISTS - STG_E_FILENOTFOUND - STG_E_INSUFFICIENTMEMORY - STG_E_INUSE - STG_E_INVALIDFLAG - STG_E_INVALIDFUNCTION - STG_E_INVALIDHANDLE - STG_E_INVALIDHEADER - STG_E_INVALIDNAME - STG_E_INVALIDPARAMETER - STG_E_INVALIDPOINTER - STG_E_LOCKVIOLATION - STG_E_MEDIUMFULL - STG_E_NOMOREFILES - STG_E_NOTCURRENT - STG_E_NOTFILEBASEDSTORAGE - STG_E_OLDDLL - STG_E_OLDFORMAT - STG_E_PATHNOTFOUND - STG_E_READFAULT - STG_E_REVERTED - STG_E_SEEKERROR - STG_E_SHAREREQUIRED - STG_E_SHAREVIOLATION - STG_E_TOOMANYOPENFILES - STG_E_UNIMPLEMENTEDFUNCTION - STG_E_UNKNOWN - STG_E_WRITEFAULT - STG_S_CONVERTED - S_FALSE - S_OK - TYPE_E_AMBIGUOUSNAME - TYPE_E_BADMODULEKIND - TYPE_E_BUFFERTOOSMALL - TYPE_E_CANTCREATETMPFILE - TYPE_E_CANTLOADLIBRARY - TYPE_E_CIRCULARTYPE - TYPE_E_DLLFUNCTIONNOTFOUND - TYPE_E_DUPLICATEID - TYPE_E_ELEMENTNOTFOUND - TYPE_E_INCONSISTENTPROPFUNCS - TYPE_E_INVALIDID - TYPE_E_INVALIDSTATE - TYPE_E_INVDATAREAD - TYPE_E_IOERROR - TYPE_E_LIBNOTREGISTERED - TYPE_E_NAMECONFLICT - TYPE_E_OUTOFBOUNDS - TYPE_E_QUALIFIEDNAMEDISALLOWED - TYPE_E_REGISTRYACCESS - TYPE_E_SIZETOOBIG - TYPE_E_TYPEMISMATCH - TYPE_E_UNDEFINEDTYPE - TYPE_E_UNKNOWNLCID - TYPE_E_UNSUPFORMAT - TYPE_E_WRONGTYPEKIND - VIEW_E_DRAW - VIEW_E_FIRST - VIEW_E_LAST - VIEW_S_ALREADY_FROZEN - VIEW_S_FIRST - VIEW_S_LAST -); - -sub AUTOLOAD { - # This AUTOLOAD is used to 'autoload' constants from the constant() - # XS function. If a constant is not found then control is passed - # to the AUTOLOAD in AutoLoader. - - my($constname); - ($constname = $AUTOLOAD) =~ s/.*:://; - #reset $! to zero to reset any current errors. - local $! = 0; - local $^E = 0; - my $val = constant($constname, @_ ? $_[0] : 0); - if ($! != 0) { - if ($! =~ /Invalid/) { - $AutoLoader::AUTOLOAD = $AUTOLOAD; - goto &AutoLoader::AUTOLOAD; - } - else { - ($pack,$file,$line) = caller; - die "Your vendor has not defined Win32::WinError macro $constname, used at $file line $line."; - } - } - eval "sub $AUTOLOAD { $val }"; - goto &$AUTOLOAD; -} - -bootstrap Win32::WinError; - -# Preloaded methods go here. - -# Autoload methods go after __END__, and are processed by the autosplit program. - -1; -__END__ diff --git a/software/Slic3r-1.3.0.64bit/lib/Win32API/File.pm b/software/Slic3r-1.3.0.64bit/lib/Win32API/File.pm deleted file mode 100644 index d30ac381..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Win32API/File.pm +++ /dev/null @@ -1,813 +0,0 @@ -#line 1 "Win32API/File.pm" -# File.pm -- Low-level access to Win32 file/dir functions/constants. - -package Win32API::File; - -use strict; -use integer; -use Carp; -use Config qw( %Config ); -use Fcntl qw( O_RDONLY O_RDWR O_WRONLY O_APPEND O_BINARY O_TEXT ); -use vars qw( $VERSION @ISA ); -use vars qw( @EXPORT @EXPORT_OK @EXPORT_FAIL %EXPORT_TAGS ); - -$VERSION= '0.1203'; - -use base qw( Exporter DynaLoader Tie::Handle IO::File ); - -# Math::BigInt optimizations courtesy of Tels -my $_64BITINT; -BEGIN { - $_64BITINT = defined($Config{use64bitint}) && - ($Config{use64bitint} eq 'define'); - - require Math::BigInt unless $_64BITINT; -} - -my $THIRTY_TWO = $_64BITINT ? 32 : Math::BigInt->new(32); - -my $FFFFFFFF = $_64BITINT ? 0xFFFFFFFF : Math::BigInt->new(0xFFFFFFFF); - -@EXPORT= qw(); -%EXPORT_TAGS= ( - Func => [qw( attrLetsToBits createFile - fileConstant fileLastError getLogicalDrives - CloseHandle CopyFile CreateFile - DefineDosDevice DeleteFile DeviceIoControl - FdGetOsFHandle GetDriveType GetFileAttributes GetFileType - GetHandleInformation GetLogicalDrives GetLogicalDriveStrings - GetOsFHandle GetVolumeInformation IsRecognizedPartition - IsContainerPartition MoveFile MoveFileEx - OsFHandleOpen OsFHandleOpenFd QueryDosDevice - ReadFile SetErrorMode SetFilePointer - SetHandleInformation WriteFile GetFileSize - getFileSize setFilePointer GetOverlappedResult)], - FuncA => [qw( - CopyFileA CreateFileA DefineDosDeviceA - DeleteFileA GetDriveTypeA GetFileAttributesA GetLogicalDriveStringsA - GetVolumeInformationA MoveFileA MoveFileExA - QueryDosDeviceA )], - FuncW => [qw( - CopyFileW CreateFileW DefineDosDeviceW - DeleteFileW GetDriveTypeW GetFileAttributesW GetLogicalDriveStringsW - GetVolumeInformationW MoveFileW MoveFileExW - QueryDosDeviceW )], - Misc => [qw( - CREATE_ALWAYS CREATE_NEW FILE_BEGIN - FILE_CURRENT FILE_END INVALID_HANDLE_VALUE - OPEN_ALWAYS OPEN_EXISTING TRUNCATE_EXISTING )], - DDD_ => [qw( - DDD_EXACT_MATCH_ON_REMOVE DDD_RAW_TARGET_PATH - DDD_REMOVE_DEFINITION )], - DRIVE_ => [qw( - DRIVE_UNKNOWN DRIVE_NO_ROOT_DIR DRIVE_REMOVABLE - DRIVE_FIXED DRIVE_REMOTE DRIVE_CDROM - DRIVE_RAMDISK )], - FILE_ => [qw( - FILE_READ_DATA FILE_LIST_DIRECTORY - FILE_WRITE_DATA FILE_ADD_FILE - FILE_APPEND_DATA FILE_ADD_SUBDIRECTORY - FILE_CREATE_PIPE_INSTANCE FILE_READ_EA - FILE_WRITE_EA FILE_EXECUTE - FILE_TRAVERSE FILE_DELETE_CHILD - FILE_READ_ATTRIBUTES FILE_WRITE_ATTRIBUTES - FILE_ALL_ACCESS FILE_GENERIC_READ - FILE_GENERIC_WRITE FILE_GENERIC_EXECUTE )], - FILE_ATTRIBUTE_ => [qw( - INVALID_FILE_ATTRIBUTES - FILE_ATTRIBUTE_DEVICE FILE_ATTRIBUTE_DIRECTORY - FILE_ATTRIBUTE_ENCRYPTED FILE_ATTRIBUTE_NOT_CONTENT_INDEXED - FILE_ATTRIBUTE_REPARSE_POINT FILE_ATTRIBUTE_SPARSE_FILE - FILE_ATTRIBUTE_ARCHIVE FILE_ATTRIBUTE_COMPRESSED - FILE_ATTRIBUTE_HIDDEN FILE_ATTRIBUTE_NORMAL - FILE_ATTRIBUTE_OFFLINE FILE_ATTRIBUTE_READONLY - FILE_ATTRIBUTE_SYSTEM FILE_ATTRIBUTE_TEMPORARY )], - FILE_FLAG_ => [qw( - FILE_FLAG_BACKUP_SEMANTICS FILE_FLAG_DELETE_ON_CLOSE - FILE_FLAG_NO_BUFFERING FILE_FLAG_OVERLAPPED - FILE_FLAG_POSIX_SEMANTICS FILE_FLAG_RANDOM_ACCESS - FILE_FLAG_SEQUENTIAL_SCAN FILE_FLAG_WRITE_THROUGH - FILE_FLAG_OPEN_REPARSE_POINT )], - FILE_SHARE_ => [qw( - FILE_SHARE_DELETE FILE_SHARE_READ FILE_SHARE_WRITE )], - FILE_TYPE_ => [qw( - FILE_TYPE_CHAR FILE_TYPE_DISK FILE_TYPE_PIPE - FILE_TYPE_UNKNOWN )], - FS_ => [qw( - FS_CASE_IS_PRESERVED FS_CASE_SENSITIVE - FS_UNICODE_STORED_ON_DISK FS_PERSISTENT_ACLS - FS_FILE_COMPRESSION FS_VOL_IS_COMPRESSED )], - FSCTL_ => [qw( - FSCTL_SET_REPARSE_POINT FSCTL_GET_REPARSE_POINT - FSCTL_DELETE_REPARSE_POINT )], - HANDLE_FLAG_ => [qw( - HANDLE_FLAG_INHERIT HANDLE_FLAG_PROTECT_FROM_CLOSE )], - IOCTL_STORAGE_ => [qw( - IOCTL_STORAGE_CHECK_VERIFY IOCTL_STORAGE_MEDIA_REMOVAL - IOCTL_STORAGE_EJECT_MEDIA IOCTL_STORAGE_LOAD_MEDIA - IOCTL_STORAGE_RESERVE IOCTL_STORAGE_RELEASE - IOCTL_STORAGE_FIND_NEW_DEVICES IOCTL_STORAGE_GET_MEDIA_TYPES - )], - IOCTL_DISK_ => [qw( - IOCTL_DISK_FORMAT_TRACKS IOCTL_DISK_FORMAT_TRACKS_EX - IOCTL_DISK_GET_DRIVE_GEOMETRY IOCTL_DISK_GET_DRIVE_LAYOUT - IOCTL_DISK_GET_MEDIA_TYPES IOCTL_DISK_GET_PARTITION_INFO - IOCTL_DISK_HISTOGRAM_DATA IOCTL_DISK_HISTOGRAM_RESET - IOCTL_DISK_HISTOGRAM_STRUCTURE IOCTL_DISK_IS_WRITABLE - IOCTL_DISK_LOGGING IOCTL_DISK_PERFORMANCE - IOCTL_DISK_REASSIGN_BLOCKS IOCTL_DISK_REQUEST_DATA - IOCTL_DISK_REQUEST_STRUCTURE IOCTL_DISK_SET_DRIVE_LAYOUT - IOCTL_DISK_SET_PARTITION_INFO IOCTL_DISK_VERIFY )], - GENERIC_ => [qw( - GENERIC_ALL GENERIC_EXECUTE - GENERIC_READ GENERIC_WRITE )], - MEDIA_TYPE => [qw( - Unknown F5_1Pt2_512 F3_1Pt44_512 - F3_2Pt88_512 F3_20Pt8_512 F3_720_512 - F5_360_512 F5_320_512 F5_320_1024 - F5_180_512 F5_160_512 RemovableMedia - FixedMedia F3_120M_512 )], - MOVEFILE_ => [qw( - MOVEFILE_COPY_ALLOWED MOVEFILE_DELAY_UNTIL_REBOOT - MOVEFILE_REPLACE_EXISTING MOVEFILE_WRITE_THROUGH )], - SECURITY_ => [qw( - SECURITY_ANONYMOUS SECURITY_CONTEXT_TRACKING - SECURITY_DELEGATION SECURITY_EFFECTIVE_ONLY - SECURITY_IDENTIFICATION SECURITY_IMPERSONATION - SECURITY_SQOS_PRESENT )], - SEM_ => [qw( - SEM_FAILCRITICALERRORS SEM_NOGPFAULTERRORBOX - SEM_NOALIGNMENTFAULTEXCEPT SEM_NOOPENFILEERRORBOX )], - PARTITION_ => [qw( - PARTITION_ENTRY_UNUSED PARTITION_FAT_12 - PARTITION_XENIX_1 PARTITION_XENIX_2 - PARTITION_FAT_16 PARTITION_EXTENDED - PARTITION_HUGE PARTITION_IFS - PARTITION_FAT32 PARTITION_FAT32_XINT13 - PARTITION_XINT13 PARTITION_XINT13_EXTENDED - PARTITION_PREP PARTITION_UNIX - VALID_NTFT PARTITION_NTFT )], - STD_HANDLE_ => [qw( - STD_INPUT_HANDLE STD_OUTPUT_HANDLE - STD_ERROR_HANDLE )], -); -@EXPORT_OK= (); -{ - my $key; - foreach $key ( keys(%EXPORT_TAGS) ) { - push( @EXPORT_OK, @{$EXPORT_TAGS{$key}} ); - #push( @EXPORT_FAIL, @{$EXPORT_TAGS{$key}} ) unless $key =~ /^Func/; - } -} -$EXPORT_TAGS{ALL}= \@EXPORT_OK; - -bootstrap Win32API::File $VERSION; - -# Preloaded methods go here. - -# To convert C constants to Perl code in cFile.pc -# [instead of C or C++ code in cFile.h]: -# * Modify F to add WriteMakeFile() => -# CONST2PERL/postamble => [[ "Win32API::File" => ]] WRITE_PERL => 1. -# * Either comment out C<#include "cFile.h"> from F -# or make F an empty file. -# * Make sure the following C block is not commented out. -# * "nmake clean", "perl Makefile.PL", "nmake" - -if( ! defined &GENERIC_READ ) { - require "Win32API/File/cFile.pc"; -} - -sub fileConstant -{ - my( $name )= @_; - if( 1 != @_ || ! $name || $name =~ /\W/ ) { - require Carp; - Carp::croak( 'Usage: ',__PACKAGE__,'::fileConstant("CONST_NAME")' ); - } - my $proto= prototype $name; - if( defined \&$name - && defined $proto - && "" eq $proto ) { - no strict 'refs'; - return &$name; - } - return undef; -} - -# We provide this for backwards compatibility: -sub constant -{ - my( $name )= @_; - my $value= fileConstant( $name ); - if( defined $value ) { - $!= 0; - return $value; - } - $!= 11; # EINVAL - return 0; -} - -# BEGIN { -# my $code= 'return _fileLastError(@_)'; -# local( $!, $^E )= ( 1, 1 ); -# if( $! ne $^E ) { -# $code= ' -# local( $^E )= _fileLastError(@_); -# my $ret= $^E; -# return $ret; -# '; -# } -# eval "sub fileLastError { $code }"; -# die "$@" if $@; -# } - -package Win32API::File::_error; - -use overload - '""' => sub { - require Win32 unless defined &Win32::FormatMessage; - $_ = Win32::FormatMessage(Win32API::File::_fileLastError()); - tr/\r\n//d; - return $_; - }, - '0+' => sub { Win32API::File::_fileLastError() }, - 'fallback' => 1; - -sub new { return bless {}, shift } -sub set { Win32API::File::_fileLastError($_[1]); return $_[0] } - -package Win32API::File; - -my $_error = Win32API::File::_error->new(); - -sub fileLastError { - croak 'Usage: ',__PACKAGE__,'::fileLastError( [$setWin32ErrCode] )' if @_ > 1; - $_error->set($_[0]) if defined $_[0]; - return $_error; -} - -# Since we ISA DynaLoader which ISA AutoLoader, we ISA AutoLoader so we -# need this next chunk to prevent Win32API::File->nonesuch() from -# looking for "nonesuch.al" and producing confusing error messages: -use vars qw($AUTOLOAD); -sub AUTOLOAD { - require Carp; - Carp::croak( - "Can't locate method $AUTOLOAD via package Win32API::File" ); -} - -# Replace "&rout;" with "goto &rout;" when that is supported on Win32. - -# Aliases for non-Unicode functions: -sub CopyFile { &CopyFileA; } -sub CreateFile { &CreateFileA; } -sub DefineDosDevice { &DefineDosDeviceA; } -sub DeleteFile { &DeleteFileA; } -sub GetDriveType { &GetDriveTypeA; } -sub GetFileAttributes { &GetFileAttributesA; } -sub GetLogicalDriveStrings { &GetLogicalDriveStringsA; } -sub GetVolumeInformation { &GetVolumeInformationA; } -sub MoveFile { &MoveFileA; } -sub MoveFileEx { &MoveFileExA; } -sub QueryDosDevice { &QueryDosDeviceA; } - -sub OsFHandleOpen { - if( 3 != @_ ) { - croak 'Win32API::File Usage: ', - 'OsFHandleOpen(FILE,$hNativeHandle,"rwatb")'; - } - my( $fh, $osfh, $access )= @_; - if( ! ref($fh) ) { - if( $fh !~ /('|::)/ ) { - $fh= caller() . "::" . $fh; - } - no strict "refs"; - $fh= \*{$fh}; - } - my( $mode, $pref ); - if( $access =~ /r/i ) { - if( $access =~ /w/i ) { - $mode= O_RDWR; - $pref= "+<"; - } else { - $mode= O_RDONLY; - $pref= "<"; - } - } else { - if( $access =~ /w/i ) { - $mode= O_WRONLY; - $pref= ">"; - } else { - # croak qq, - # qq; - $mode= O_RDONLY; - $pref= "<"; - } - } - $mode |= O_APPEND if $access =~ /a/i; - #$mode |= O_TEXT if $access =~ /t/i; - # Some versions of the Fcntl module are broken and won't autoload O_TEXT: - if( $access =~ /t/i ) { - my $o_text= eval "O_TEXT"; - $o_text= 0x4000 if $@; - $mode |= $o_text; - } - $mode |= O_BINARY if $access =~ /b/i; - my $fd = eval { OsFHandleOpenFd( $osfh, $mode ) }; - if ($@) { - return tie *{$fh}, __PACKAGE__, $osfh; - } - return undef unless $fd; - return open( $fh, $pref."&=".(0+$fd) ); -} - -sub GetOsFHandle { - if( 1 != @_ ) { - croak 'Win32API::File Usage: $OsFHandle= GetOsFHandle(FILE)'; - } - my( $file )= @_; - if( ! ref($file) ) { - if( $file !~ /('|::)/ ) { - $file= caller() . "::" . $file; - } - no strict "refs"; - # The eval "" is necessary in Perl 5.6, avoid it otherwise. - my $tied = !defined($^]) || $^] < 5.008 - ? eval "tied *{$file}" - : tied *{$file}; - - if (UNIVERSAL::isa($tied => __PACKAGE__)) { - return $tied->win32_handle; - } - - $file= *{$file}; - } - my( $fd )= fileno($file); - if( ! defined( $fd ) ) { - if( $file =~ /^\d+\Z/ ) { - $fd= $file; - } else { - return (); # $! should be set by fileno(). - } - } - my $h= FdGetOsFHandle( $fd ); - if( INVALID_HANDLE_VALUE() == $h ) { - $h= ""; - } elsif( "0" eq $h ) { - $h= "0 but true"; - } - return $h; -} - -sub getFileSize { - croak 'Win32API::File Usage: $size= getFileSize($hNativeHandle)' - if @_ != 1; - - my $handle = shift; - my $high_size = 0; - - my $low_size = GetFileSize($handle, $high_size); - - my $retval = $_64BITINT ? $high_size : Math::BigInt->new($high_size); - - $retval <<= $THIRTY_TWO; - $retval += $low_size; - - return $retval; -} - -sub setFilePointer { - croak 'Win32API::File Usage: $pos= setFilePointer($hNativeHandle, $posl, $from_where)' - if @_ != 3; - - my ($handle, $pos, $from_where) = @_; - - my ($pos_low, $pos_high) = ($pos, 0); - - if ($_64BITINT) { - $pos_low = ($pos & $FFFFFFFF); - $pos_high = (($pos >> $THIRTY_TWO) & $FFFFFFFF); - } - elsif (UNIVERSAL::isa($pos => 'Math::BigInt')) { - $pos_low = ($pos & $FFFFFFFF)->numify(); - $pos_high = (($pos >> $THIRTY_TWO) & $FFFFFFFF)->numify(); - } - - my $retval = SetFilePointer($handle, $pos_low, $pos_high, $from_where); - - if (defined $pos_high && $pos_high != 0) { - if (! $_64BITINT) { - $retval = Math::BigInt->new($retval); - $pos_high = Math::BigInt->new($pos_high); - } - - $retval += $pos_high << $THIRTY_TWO; - } - - return $retval; -} - -sub attrLetsToBits -{ - my( $lets )= @_; - my( %a )= ( - "a"=>FILE_ATTRIBUTE_ARCHIVE(), "c"=>FILE_ATTRIBUTE_COMPRESSED(), - "h"=>FILE_ATTRIBUTE_HIDDEN(), "o"=>FILE_ATTRIBUTE_OFFLINE(), - "r"=>FILE_ATTRIBUTE_READONLY(), "s"=>FILE_ATTRIBUTE_SYSTEM(), - "t"=>FILE_ATTRIBUTE_TEMPORARY() ); - my( $bits )= 0; - foreach( split(//,$lets) ) { - croak "Win32API::File::attrLetsToBits: Unknown attribute letter ($_)" - unless exists $a{$_}; - $bits |= $a{$_}; - } - return $bits; -} - -use vars qw( @_createFile_Opts %_createFile_Opts ); -@_createFile_Opts= qw( Access Create Share Attributes - Flags Security Model ); -@_createFile_Opts{@_createFile_Opts}= (1) x @_createFile_Opts; - -sub createFile -{ - my $opts= ""; - if( 2 <= @_ && "HASH" eq ref($_[$#_]) ) { - $opts= pop( @_ ); - } - my( $sPath, $svAccess, $svShare )= @_; - if( @_ < 1 || 3 < @_ ) { - croak "Win32API::File::createFile() usage: \$hObject= createFile(\n", - " \$sPath, [\$svAccess_qrw_ktn_ce,[\$svShare_rwd,]]", - " [{Option=>\$Value}] )\n", - " options: @_createFile_Opts\nCalled"; - } - my( $create, $flags, $sec, $model )= ( "", 0, [], 0 ); - if( ref($opts) ) { - my @err= grep( ! $_createFile_Opts{$_}, keys(%$opts) ); - @err and croak "_createFile: Invalid options (@err)"; - $flags= $opts->{Flags} if exists( $opts->{Flags} ); - $flags |= attrLetsToBits( $opts->{Attributes} ) - if exists( $opts->{Attributes} ); - $sec= $opts->{Security} if exists( $opts->{Security} ); - $model= $opts->{Model} if exists( $opts->{Model} ); - $svAccess= $opts->{Access} if exists( $opts->{Access} ); - $create= $opts->{Create} if exists( $opts->{Create} ); - $svShare= $opts->{Share} if exists( $opts->{Share} ); - } - $svAccess= "r" unless defined($svAccess); - $svShare= "rw" unless defined($svShare); - if( $svAccess =~ /^[qrw ktn ce]*$/i ) { - ( my $c= $svAccess ) =~ tr/qrw QRW//d; - $create= $c if "" ne $c && "" eq $create; - local( $_ )= $svAccess; - $svAccess= 0; - $svAccess |= GENERIC_READ() if /r/i; - $svAccess |= GENERIC_WRITE() if /w/i; - } elsif( "?" eq $svAccess ) { - croak - "Win32API::File::createFile: \$svAccess can use the following:\n", - " One or more of the following:\n", - "\tq -- Query access (same as 0)\n", - "\tr -- Read access (GENERIC_READ)\n", - "\tw -- Write access (GENERIC_WRITE)\n", - " At most one of the following:\n", - "\tk -- Keep if exists\n", - "\tt -- Truncate if exists\n", - "\tn -- New file only (fail if file already exists)\n", - " At most one of the following:\n", - "\tc -- Create if doesn't exist\n", - "\te -- Existing file only (fail if doesn't exist)\n", - " '' is the same as 'q k e'\n", - " 'r' is the same as 'r k e'\n", - " 'w' is the same as 'w t c'\n", - " 'rw' is the same as 'rw k c'\n", - " 'rt' or 'rn' implies 'c'.\n", - " Or \$svAccess can be numeric.\n", "Called from"; - } elsif( $svAccess == 0 && $svAccess !~ /^[-+.]*0/ ) { - croak "Win32API::File::createFile: Invalid \$svAccess ($svAccess)"; - } - if( $create =~ /^[ktn ce]*$/ ) { - local( $_ )= $create; - my( $k, $t, $n, $c, $e )= ( scalar(/k/i), scalar(/t/i), - scalar(/n/i), scalar(/c/i), scalar(/e/i) ); - if( 1 < $k + $t + $n ) { - croak "Win32API::File::createFile: \$create must not use ", - qq; - } - if( $c && $e ) { - croak "Win32API::File::createFile: \$create must not use ", - qq; - } - my $r= ( $svAccess & GENERIC_READ() ) == GENERIC_READ(); - my $w= ( $svAccess & GENERIC_WRITE() ) == GENERIC_WRITE(); - if( ! $k && ! $t && ! $n ) { - if( $w && ! $r ) { $t= 1; - } else { $k= 1; } - } - if( $k ) { - if( $c || $w && ! $e ) { $create= OPEN_ALWAYS(); - } else { $create= OPEN_EXISTING(); } - } elsif( $t ) { - if( $e ) { $create= TRUNCATE_EXISTING(); - } else { $create= CREATE_ALWAYS(); } - } else { # $n - if( ! $e ) { $create= CREATE_NEW(); - } else { - croak "Win32API::File::createFile: \$create must not use ", - qq; - } - } - } elsif( "?" eq $create ) { - croak 'Win32API::File::createFile: $create !~ /^[ktn ce]*$/;', - ' pass $svAccess as "?" for more information.'; - } elsif( $create == 0 && $create ne "0" ) { - croak "Win32API::File::createFile: Invalid \$create ($create)"; - } - if( $svShare =~ /^[drw]*$/ ) { - my %s= ( "d"=>FILE_SHARE_DELETE(), "r"=>FILE_SHARE_READ(), - "w"=>FILE_SHARE_WRITE() ); - my @s= split(//,$svShare); - $svShare= 0; - foreach( @s ) { - $svShare |= $s{$_}; - } - } elsif( $svShare == 0 && $svShare !~ /^[-+.]*0/ ) { - croak "Win32API::File::createFile: Invalid \$svShare ($svShare)"; - } - return CreateFileA( - $sPath, $svAccess, $svShare, $sec, $create, $flags, $model ); -} - - -sub getLogicalDrives -{ - my( $ref )= @_; - my $s= ""; - if( ! GetLogicalDriveStringsA( 256, $s ) ) { - return undef; - } - if( ! defined($ref) ) { - return split( /\0/, $s ); - } elsif( "ARRAY" ne ref($ref) ) { - croak 'Usage: C<@arr= getLogicalDrives()> ', - 'or C', "\n"; - } - @$ref= split( /\0/, $s ); - return $ref; -} - -############################################################################### -# Experimental Tied Handle and Object Oriented interface. # -############################################################################### - -sub new { - my $class = shift; - $class = ref $class || $class; - - my $self = IO::File::new($class); - tie *$self, __PACKAGE__; - - $self->open(@_) if @_; - - return $self; -} - -sub TIEHANDLE { - my ($class, $win32_handle) = @_; - $class = ref $class || $class; - - return bless { - _win32_handle => $win32_handle, - _binmode => 0, - _buffered => 0, - _buffer => '', - _eof => 0, - _fileno => undef, - _access => 'r', - _append => 0, - }, $class; -} - -# This is called for getting the tied object from hard refs to glob refs in -# some cases, for reasons I don't quite grok. - -sub FETCH { return $_[0] } - -# Public accessors - -sub win32_handle{ $_[0]->{_win32_handle}||= $_[1] } - -# Protected accessors - -sub _buffer { $_[0]->{_buffer} ||= $_[1] } -sub _binmode { $_[0]->{_binmode} ||= $_[1] } -sub _fileno { $_[0]->{_fileno} ||= $_[1] } -sub _access { $_[0]->{_access} ||= $_[1] } -sub _append { $_[0]->{_append} ||= $_[1] } - -# Tie interface - -sub OPEN { - my $self = shift; - my $expr = shift; - croak "Only the two argument form of open is supported at this time" if @_; -# FIXME: this needs to parse the full Perl open syntax in $expr - - my ($mixed, $mode, $path) = - ($expr =~ /^\s* (\+)? \s* (<|>|>>)? \s* (.*?) \s*$/x); - - croak "Unsupported open mode" if not $path; - - my $access = 'r'; - my $append = $mode eq '>>' ? 1 : 0; - - if ($mixed) { - $access = 'rw'; - } elsif($mode eq '>') { - $access = 'w'; - } - - my $w32_handle = createFile($path, $access); - - $self->win32_handle($w32_handle); - - $self->seek(1,2) if $append; - - $self->_access($access); - $self->_append($append); - - return 1; -} - -sub BINMODE { - $_[0]->_binmode(1); -} - -sub WRITE { - my ($self, $buf, $len, $offset, $overlap) = @_; - - if ($offset) { - $buf = substr($buf, $offset); - $len = length($buf); - } - - $len = length($buf) if not defined $len; - - $overlap = [] if not defined $overlap;; - - my $bytes_written = 0; - - WriteFile ( - $self->win32_handle, $buf, $len, - $bytes_written, $overlap - ); - - return $bytes_written; -} - -sub PRINT { - my $self = shift; - - my $buf = join defined $, ? $, : "" => @_; - - $buf =~ s/\012/\015\012/sg unless $self->_binmode(); - - $buf .= $\ if defined $\; - - $self->WRITE($buf, length($buf), 0); -} - -sub READ { - my $self = shift; - my $into = \$_[0]; shift; - my ($len, $offset, $overlap) = @_; - - my $buffer = defined $self->_buffer ? $self->_buffer : ""; - my $buf_length = length($buffer); - my $bytes_read = 0; - my $data; - $offset = 0 if not defined $offset; - - if ($buf_length >= $len) { - $data = substr($buffer, 0, $len => ""); - $bytes_read = $len; - $self->_buffer($buffer); - } else { - if ($buf_length > 0) { - $len -= $buf_length; - substr($$into, $offset) = $buffer; - $offset += $buf_length; - } - - $overlap ||= []; - - ReadFile ( - $self->win32_handle, $data, $len, - $bytes_read, $overlap - ); - } - - $$into = "" if not defined $$into; - - substr($$into, $offset) = $data; - - return $bytes_read; -} - -sub READLINE { - my $self = shift; - my $line = ""; - - while ((index $line, $/) == -1) { # read until end of line marker - my $char = $self->GETC(); - - last if !defined $char || $char eq ''; - - $line .= $char; - } - - return undef if $line eq ''; - - return $line; -} - - -sub FILENO { - my $self = shift; - - return $self->_fileno() if defined $self->_fileno(); - - return -1 if $^O eq 'cygwin'; - -# FIXME: We don't always open the handle, better to query the handle or to set -# the right access info at TIEHANDLE time. - - my $access = $self->_access(); - my $mode = $access eq 'rw' ? O_RDWR : - $access eq 'w' ? O_WRONLY : O_RDONLY; - - $mode |= O_APPEND if $self->_append(); - - $mode |= O_TEXT if not $self->_binmode(); - - return $self->_fileno ( OsfHandleOpenFd ( - $self->win32_handle, $mode - )); -} - -sub SEEK { - my ($self, $pos, $whence) = @_; - - $whence = 0 if not defined $whence; - my @file_consts = map { - fileConstant($_) - } qw(FILE_BEGIN FILE_CURRENT FILE_END); - - my $from_where = $file_consts[$whence]; - - return setFilePointer($self->win32_handle, $pos, $from_where); -} - -sub TELL { -# SetFilePointer with position 0 at FILE_CURRENT will return position. - return $_[0]->SEEK(0, 1); -} - -sub EOF { - my $self = shift; - - my $current = $self->TELL() + 0; - my $end = getFileSize($self->win32_handle) + 0; - - return $current == $end; -} - -sub CLOSE { - my $self = shift; - - my $retval = 1; - - if (defined $self->win32_handle) { - $retval = CloseHandle($self->win32_handle); - - $self->win32_handle(undef); - } - - return $retval; -} - -# Only close the handle on explicit close, too many problems otherwise. -sub UNTIE {} - -sub DESTROY {} - -# End of Tie/OO Interface - -# Autoload methods go after =cut, and are processed by the autosplit program. - -1; -__END__ - -#line 3047 diff --git a/software/Slic3r-1.3.0.64bit/lib/Win32API/File/cFile.pc b/software/Slic3r-1.3.0.64bit/lib/Win32API/File/cFile.pc deleted file mode 100644 index cd4c5523..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Win32API/File/cFile.pc +++ /dev/null @@ -1,168 +0,0 @@ -# Generated by cFile_pc.cxx. -# Package Win32API::File with options: -# CPLUSPLUS => q[1] -# IFDEF => q[!/[a-z\d]/] -# IMPORT_LIST => [q[/._/], q[!/[a-z]/], q[:MEDIA_TYPE]] -# WRITE_PERL => q[1] -# Perl files eval'd: -# File.pm => last if /^\s*(bootstrap|XSLoader::load)\b/ -# C files included: -# File.xs => last if m#/[/*]\s*CONSTS_DEFINED\b|^\s*MODULE\b# -sub CREATE_ALWAYS () { 2 } -sub CREATE_NEW () { 1 } -sub DDD_EXACT_MATCH_ON_REMOVE () { 4 } -sub DDD_RAW_TARGET_PATH () { 1 } -sub DDD_REMOVE_DEFINITION () { 2 } -sub DRIVE_CDROM () { 5 } -sub DRIVE_FIXED () { 3 } -sub DRIVE_NO_ROOT_DIR () { 1 } -sub DRIVE_RAMDISK () { 6 } -sub DRIVE_REMOTE () { 4 } -sub DRIVE_REMOVABLE () { 2 } -sub DRIVE_UNKNOWN () { 0 } -sub F3_120M_512 () { 13 } -sub F3_1Pt44_512 () { 2 } -sub F3_20Pt8_512 () { 4 } -sub F3_2Pt88_512 () { 3 } -sub F3_720_512 () { 5 } -sub F5_160_512 () { 10 } -sub F5_180_512 () { 9 } -sub F5_1Pt2_512 () { 1 } -sub F5_320_1024 () { 8 } -sub F5_320_512 () { 7 } -sub F5_360_512 () { 6 } -sub FILE_ADD_FILE () { 2 } -sub FILE_ADD_SUBDIRECTORY () { 4 } -sub FILE_ALL_ACCESS () { 2032127 } -sub FILE_APPEND_DATA () { 4 } -sub FILE_ATTRIBUTE_ARCHIVE () { 32 } -sub FILE_ATTRIBUTE_COMPRESSED () { 2048 } -sub FILE_ATTRIBUTE_DEVICE () { 0x00000040 } -sub FILE_ATTRIBUTE_DIRECTORY () { 0x00000010 } -sub FILE_ATTRIBUTE_ENCRYPTED () { 0x00004000 } -sub FILE_ATTRIBUTE_HIDDEN () { 2 } -sub FILE_ATTRIBUTE_NORMAL () { 128 } -sub FILE_ATTRIBUTE_NOT_CONTENT_INDEXED () { 0x00002000 } -sub FILE_ATTRIBUTE_OFFLINE () { 4096 } -sub FILE_ATTRIBUTE_READONLY () { 1 } -sub FILE_ATTRIBUTE_REPARSE_POINT () { 0x00000400 } -sub FILE_ATTRIBUTE_SPARSE_FILE () { 0x00000200 } -sub FILE_ATTRIBUTE_SYSTEM () { 4 } -sub FILE_ATTRIBUTE_TEMPORARY () { 256 } -sub FILE_BEGIN () { 0 } -sub FILE_CREATE_PIPE_INSTANCE () { 4 } -sub FILE_CURRENT () { 1 } -sub FILE_DELETE_CHILD () { 64 } -sub FILE_END () { 2 } -sub FILE_EXECUTE () { 32 } -sub FILE_FLAG_BACKUP_SEMANTICS () { 33554432 } -sub FILE_FLAG_DELETE_ON_CLOSE () { 67108864 } -sub FILE_FLAG_NO_BUFFERING () { 536870912 } -sub FILE_FLAG_OPEN_REPARSE_POINT () { 0x200000 } -sub FILE_FLAG_OVERLAPPED () { 1073741824 } -sub FILE_FLAG_POSIX_SEMANTICS () { 16777216 } -sub FILE_FLAG_RANDOM_ACCESS () { 268435456 } -sub FILE_FLAG_SEQUENTIAL_SCAN () { 134217728 } -sub FILE_FLAG_WRITE_THROUGH () { 0x80000000 } -sub FILE_GENERIC_EXECUTE () { 1179808 } -sub FILE_GENERIC_READ () { 1179785 } -sub FILE_GENERIC_WRITE () { 1179926 } -sub FILE_LIST_DIRECTORY () { 1 } -sub FILE_READ_ATTRIBUTES () { 128 } -sub FILE_READ_DATA () { 1 } -sub FILE_READ_EA () { 8 } -sub FILE_SHARE_DELETE () { 4 } -sub FILE_SHARE_READ () { 1 } -sub FILE_SHARE_WRITE () { 2 } -sub FILE_TRAVERSE () { 32 } -sub FILE_TYPE_CHAR () { 2 } -sub FILE_TYPE_DISK () { 1 } -sub FILE_TYPE_PIPE () { 3 } -sub FILE_TYPE_UNKNOWN () { 0 } -sub FILE_WRITE_ATTRIBUTES () { 256 } -sub FILE_WRITE_DATA () { 2 } -sub FILE_WRITE_EA () { 16 } -sub FS_CASE_IS_PRESERVED () { 2 } -sub FS_CASE_SENSITIVE () { 1 } -sub FS_FILE_COMPRESSION () { 16 } -sub FS_PERSISTENT_ACLS () { 8 } -sub FS_UNICODE_STORED_ON_DISK () { 4 } -sub FS_VOL_IS_COMPRESSED () { 32768 } -sub FSCTL_SET_REPARSE_POINT () { (9 << 16 | 0 << 14 | 41 << 2 | 0) } -sub FSCTL_GET_REPARSE_POINT () { (9 << 16 | 0 << 14 | 42 << 2 | 0) } -sub FSCTL_DELETE_REPARSE_POINT () { (9 << 16 | 0 << 14 | 43 << 2 | 0) } -sub FixedMedia () { 12 } -sub GENERIC_ALL () { 268435456 } -sub GENERIC_EXECUTE () { 536870912 } -sub GENERIC_READ () { 0x80000000 } -sub GENERIC_WRITE () { 1073741824 } -sub HANDLE_FLAG_INHERIT () { 1 } -sub HANDLE_FLAG_PROTECT_FROM_CLOSE () { 2 } -sub INVALID_FILE_ATTRIBUTES () { 0xFFFFFFFF } -sub INVALID_HANDLE_VALUE () { 0xffffffff } -sub IOCTL_DISK_FORMAT_TRACKS () { 507928 } -sub IOCTL_DISK_FORMAT_TRACKS_EX () { 507948 } -sub IOCTL_DISK_GET_DRIVE_GEOMETRY () { 458752 } -sub IOCTL_DISK_GET_DRIVE_LAYOUT () { 475148 } -sub IOCTL_DISK_GET_MEDIA_TYPES () { 461824 } -sub IOCTL_DISK_GET_PARTITION_INFO () { 475140 } -sub IOCTL_DISK_HISTOGRAM_DATA () { 458804 } -sub IOCTL_DISK_HISTOGRAM_RESET () { 458808 } -sub IOCTL_DISK_HISTOGRAM_STRUCTURE () { 458800 } -sub IOCTL_DISK_IS_WRITABLE () { 458788 } -sub IOCTL_DISK_LOGGING () { 458792 } -sub IOCTL_DISK_PERFORMANCE () { 458784 } -sub IOCTL_DISK_REASSIGN_BLOCKS () { 507932 } -sub IOCTL_DISK_REQUEST_DATA () { 458816 } -sub IOCTL_DISK_REQUEST_STRUCTURE () { 458812 } -sub IOCTL_DISK_SET_DRIVE_LAYOUT () { 507920 } -sub IOCTL_DISK_SET_PARTITION_INFO () { 507912 } -sub IOCTL_DISK_VERIFY () { 458772 } -sub IOCTL_STORAGE_CHECK_VERIFY () { 2967552 } -sub IOCTL_STORAGE_EJECT_MEDIA () { 2967560 } -sub IOCTL_STORAGE_FIND_NEW_DEVICES () { 2967576 } -sub IOCTL_STORAGE_GET_MEDIA_TYPES () { 2952192 } -sub IOCTL_STORAGE_LOAD_MEDIA () { 2967564 } -sub IOCTL_STORAGE_MEDIA_REMOVAL () { 2967556 } -sub IOCTL_STORAGE_RELEASE () { 2967572 } -sub IOCTL_STORAGE_RESERVE () { 2967568 } -sub MOVEFILE_COPY_ALLOWED () { 2 } -sub MOVEFILE_DELAY_UNTIL_REBOOT () { 4 } -sub MOVEFILE_REPLACE_EXISTING () { 1 } -sub MOVEFILE_WRITE_THROUGH () { 8 } -sub OPEN_ALWAYS () { 4 } -sub OPEN_EXISTING () { 3 } -sub PARTITION_ENTRY_UNUSED () { 0 } -sub PARTITION_EXTENDED () { 5 } -sub PARTITION_FAT32 () { 11 } -sub PARTITION_FAT32_XINT13 () { 12 } -sub PARTITION_FAT_12 () { 1 } -sub PARTITION_FAT_16 () { 4 } -sub PARTITION_HUGE () { 6 } -sub PARTITION_IFS () { 7 } -sub PARTITION_NTFT () { 128 } -sub PARTITION_PREP () { 65 } -sub PARTITION_UNIX () { 99 } -sub PARTITION_XENIX_1 () { 2 } -sub PARTITION_XENIX_2 () { 3 } -sub PARTITION_XINT13 () { 14 } -sub PARTITION_XINT13_EXTENDED () { 15 } -sub RemovableMedia () { 11 } -sub SECURITY_ANONYMOUS () { 0 } -sub SECURITY_CONTEXT_TRACKING () { 262144 } -sub SECURITY_DELEGATION () { 196608 } -sub SECURITY_EFFECTIVE_ONLY () { 524288 } -sub SECURITY_IDENTIFICATION () { 65536 } -sub SECURITY_IMPERSONATION () { 131072 } -sub SECURITY_SQOS_PRESENT () { 1048576 } -sub SEM_FAILCRITICALERRORS () { 1 } -sub SEM_NOALIGNMENTFAULTEXCEPT () { 4 } -sub SEM_NOGPFAULTERRORBOX () { 2 } -sub SEM_NOOPENFILEERRORBOX () { 32768 } -sub TRUNCATE_EXISTING () { 5 } -sub Unknown () { 0 } -sub VALID_NTFT () { 192 } -sub STD_ERROR_HANDLE () { 0xfffffff4 } -sub STD_INPUT_HANDLE () { 0xfffffff6 } -sub STD_OUTPUT_HANDLE () { 0xfffffff5 } -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/Win32API/Registry.pm b/software/Slic3r-1.3.0.64bit/lib/Win32API/Registry.pm deleted file mode 100644 index befa4b09..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Win32API/Registry.pm +++ /dev/null @@ -1,281 +0,0 @@ -#line 1 "Win32API/Registry.pm" -# Registry.pm -- Low-level access to functions/constants from WINREG.h - -package Win32API::Registry; - -use strict; -use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); #@EXPORT_FAIL); -$VERSION= '0.33'; - -require Exporter; -require DynaLoader; -@ISA= qw(Exporter DynaLoader); - -@EXPORT= qw(); -%EXPORT_TAGS= ( - Func => [qw( regConstant regLastError - AllowPriv AbortSystemShutdown InitiateSystemShutdown - RegCloseKey RegConnectRegistry RegCreateKey - RegCreateKeyEx RegDeleteKey RegDeleteValue - RegEnumKey RegEnumKeyEx RegEnumValue - RegFlushKey RegGetKeySecurity RegLoadKey - RegNotifyChangeKeyValue RegOpenKey RegOpenKeyEx - RegQueryInfoKey RegQueryMultipleValues RegQueryValue - RegQueryValueEx RegReplaceKey RegRestoreKey - RegSaveKey RegSetKeySecurity RegSetValue - RegSetValueEx RegUnLoadKey )], - FuncA => [qw( - AbortSystemShutdownA InitiateSystemShutdownA - RegConnectRegistryA RegCreateKeyA RegCreateKeyExA - RegDeleteKeyA RegDeleteValueA RegEnumKeyA - RegEnumKeyExA RegEnumValueA RegLoadKeyA - RegOpenKeyA RegOpenKeyExA RegQueryInfoKeyA - RegQueryMultipleValuesA RegQueryValueA RegQueryValueExA - RegReplaceKeyA RegRestoreKeyA RegSaveKeyA - RegSetValueA RegSetValueExA RegUnLoadKeyA )], - FuncW => [qw( - AbortSystemShutdownW InitiateSystemShutdownW - RegConnectRegistryW RegCreateKeyW RegCreateKeyExW - RegDeleteKeyW RegDeleteValueW RegEnumKeyW - RegEnumKeyExW RegEnumValueW RegLoadKeyW - RegOpenKeyW RegOpenKeyExW RegQueryInfoKeyW - RegQueryMultipleValuesW RegQueryValueW RegQueryValueExW - RegReplaceKeyW RegRestoreKeyW RegSaveKeyW - RegSetValueW RegSetValueExW RegUnLoadKeyW )], - HKEY_ => [qw( - HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG HKEY_CURRENT_USER - HKEY_DYN_DATA HKEY_LOCAL_MACHINE HKEY_PERFORMANCE_DATA - HKEY_USERS )], - KEY_ => [qw( - KEY_QUERY_VALUE KEY_SET_VALUE KEY_CREATE_SUB_KEY - KEY_ENUMERATE_SUB_KEYS KEY_NOTIFY KEY_CREATE_LINK - KEY_READ KEY_WRITE KEY_EXECUTE - KEY_ALL_ACCESS), - 'KEY_DELETE', # DELETE (0x00010000L) - 'KEY_READ_CONTROL', # READ_CONTROL (0x00020000L) - 'KEY_WRITE_DAC', # WRITE_DAC (0x00040000L) - 'KEY_WRITE_OWNER', # WRITE_OWNER (0x00080000L) - 'KEY_SYNCHRONIZE', # SYNCHRONIZE (0x00100000L) (not used) - ], - REG_ => [qw( - REG_OPTION_RESERVED REG_OPTION_NON_VOLATILE REG_OPTION_VOLATILE - REG_OPTION_CREATE_LINK REG_OPTION_BACKUP_RESTORE - REG_OPTION_OPEN_LINK REG_LEGAL_OPTION REG_CREATED_NEW_KEY - REG_OPENED_EXISTING_KEY REG_WHOLE_HIVE_VOLATILE REG_REFRESH_HIVE - REG_NO_LAZY_FLUSH REG_NOTIFY_CHANGE_ATTRIBUTES - REG_NOTIFY_CHANGE_NAME REG_NOTIFY_CHANGE_LAST_SET - REG_NOTIFY_CHANGE_SECURITY REG_LEGAL_CHANGE_FILTER - REG_NONE REG_SZ REG_EXPAND_SZ - REG_BINARY REG_DWORD REG_DWORD_LITTLE_ENDIAN - REG_DWORD_BIG_ENDIAN REG_LINK REG_MULTI_SZ - REG_RESOURCE_LIST REG_FULL_RESOURCE_DESCRIPTOR - REG_RESOURCE_REQUIREMENTS_LIST )], - SE_ => [qw( - SE_ASSIGNPRIMARYTOKEN_NAME SE_AUDIT_NAME - SE_BACKUP_NAME SE_CHANGE_NOTIFY_NAME - SE_CREATE_PAGEFILE_NAME SE_CREATE_PERMANENT_NAME - SE_CREATE_TOKEN_NAME SE_DEBUG_NAME - SE_INCREASE_QUOTA_NAME SE_INC_BASE_PRIORITY_NAME - SE_LOAD_DRIVER_NAME SE_LOCK_MEMORY_NAME - SE_MACHINE_ACCOUNT_NAME SE_PROF_SINGLE_PROCESS_NAME - SE_REMOTE_SHUTDOWN_NAME SE_RESTORE_NAME - SE_SECURITY_NAME SE_SHUTDOWN_NAME - SE_SYSTEMTIME_NAME SE_SYSTEM_ENVIRONMENT_NAME - SE_SYSTEM_PROFILE_NAME SE_TAKE_OWNERSHIP_NAME - SE_TCB_NAME SE_UNSOLICITED_INPUT_NAME )], -); -@EXPORT_OK= (); -{ my $ref; - foreach $ref ( values(%EXPORT_TAGS) ) { - push( @EXPORT_OK, @$ref ) unless $ref->[0] =~ /^SE_/; - } -} -$EXPORT_TAGS{ALL}= [ @EXPORT_OK ]; # \@EXPORT_OK once SE_* settles down. -# push( @EXPORT_OK, "JHEREG_TACOSALAD" ); # Used to test Mkconst2perl -push( @EXPORT_OK, @{$EXPORT_TAGS{SE_}} ); - -bootstrap Win32API::Registry $VERSION; - -# Preloaded methods go here. - -# To convert C constants to Perl code in cRegistry.pc -# [instead of C or C++ code in cRegistry.h]: -# * Modify F to add WriteMakeFile() => -# CONST2PERL/postamble => [[ "Win32API::Registry" => ]] WRITE_PERL => 1. -# * Either comment out C<#include "cRegistry.h"> from F -# or make F an empty file. -# * Make sure the following C block is not commented out. -# * "nmake clean", "perl Makefile.PL", "nmake" - -if( ! defined ®_NONE ) { - require "Win32API/Registry/cRegistry.pc"; -} - -# This would be convenient but inconsistent and hard to explain: -#push( @{$EXPORT_TAGS{ALL}}, @{$EXPORT_TAGS{SE_}} ) -# if defined &SE_TCB_NAME; - -sub regConstant -{ - my( $name )= @_; - if( 1 != @_ || ! $name || $name =~ /\W/ ) { - require Carp; - Carp::croak( 'Usage: ',__PACKAGE__,'::regConstant("CONST_NAME")' ); - } - my $proto= prototype $name; - if( defined \&$name - && defined $proto - && "" eq $proto ) { - no strict 'refs'; - return &$name; - } - return undef; -} - -# We provide this for backwards compatibility: -sub constant -{ - my( $name )= @_; - my $value= regConstant( $name ); - if( defined $value ) { - $!= 0; - return $value; - } - $!= 11; # EINVAL - return 0; -} - -BEGIN { - my $code= 'return _regLastError(@_)'; - local( $!, $^E )= ( 1, 1 ); - if( $! ne $^E ) { - $code= ' - local( $^E )= _regLastError(@_); - my $ret= $^E; - return $ret; - '; - } - eval "sub regLastError { $code }"; - die "$@" if $@; -} - -# Since we ISA DynaLoader which ISA AutoLoader, we ISA AutoLoader so we -# need this next chunk to prevent Win32API::Registry->nonesuch() from -# looking for "nonesuch.al" and producing confusing error messages: -use vars qw($AUTOLOAD); -sub AUTOLOAD { - require Carp; - Carp::croak( - "Can't locate method $AUTOLOAD via package Win32API::Registry" ); -} - -# Replace "&rout;" with "goto &rout;" when that is supported on Win32. - -# Let user omit all buffer sizes: -sub RegEnumKeyExA { - if( 6 == @_ ) { splice(@_,4,0,[]); splice(@_,2,0,[]); } - &_RegEnumKeyExA; -} -sub RegEnumKeyExW { - if( 6 == @_ ) { splice(@_,4,0,[]); splice(@_,2,0,[]); } - &_RegEnumKeyExW; -} -sub RegEnumValueA { - if( 6 == @_ ) { splice(@_,2,0,[]); push(@_,[]); } - &_RegEnumValueA; -} -sub RegEnumValueW { - if( 6 == @_ ) { splice(@_,2,0,[]); push(@_,[]); } - &_RegEnumValueW; -} -sub RegQueryInfoKeyA { - if( 11 == @_ ) { splice(@_,2,0,[]); } - &_RegQueryInfoKeyA; -} -sub RegQueryInfoKeyW { - if( 11 == @_ ) { splice(@_,2,0,[]); } - &_RegQueryInfoKeyW; -} - -sub RegEnumKeyA { - push(@_,[]) if 3 == @_; - &_RegEnumKeyA; -} -sub RegEnumKeyW { - push(@_,[]) if 3 == @_; - &_RegEnumKeyW; -} -sub RegGetKeySecurity { - push(@_,[]) if 3 == @_; - &_RegGetKeySecurity; -} -sub RegQueryMultipleValuesA { - push(@_,[]) if 4 == @_; - &_RegQueryMultipleValuesA; -} -sub RegQueryMultipleValuesW { - push(@_,[]) if 4 == @_; - &_RegQueryMultipleValuesW; -} -sub RegQueryValueA { - push(@_,[]) if 3 == @_; - &_RegQueryValueA; -} -sub RegQueryValueW { - push(@_,[]) if 3 == @_; - &_RegQueryValueW; -} -sub RegQueryValueExA { - push(@_,[]) if 5 == @_; - &_RegQueryValueExA; -} -sub RegQueryValueExW { - push(@_,[]) if 5 == @_; - &_RegQueryValueExW; -} -sub RegSetValueA { - push(@_,0) if 4 == @_; - &_RegSetValueA; -} -sub RegSetValueW { - push(@_,0) if 4 == @_; - &_RegSetValueW; -} -sub RegSetValueExA { - push(@_,0) if 5 == @_; - &_RegSetValueExA; -} -sub RegSetValueExW { - push(@_,0) if 5 == @_; - &_RegSetValueExW; -} - -# Aliases for non-Unicode functions: -sub AbortSystemShutdown { &AbortSystemShutdownA; } -sub InitiateSystemShutdown { &InitiateSystemShutdownA; } -sub RegConnectRegistry { &RegConnectRegistryA; } -sub RegCreateKey { &RegCreateKeyA; } -sub RegCreateKeyEx { &RegCreateKeyExA; } -sub RegDeleteKey { &RegDeleteKeyA; } -sub RegDeleteValue { &RegDeleteValueA; } -sub RegEnumKey { &RegEnumKeyA; } -sub RegEnumKeyEx { &RegEnumKeyExA; } -sub RegEnumValue { &RegEnumValueA; } -sub RegLoadKey { &RegLoadKeyA; } -sub RegOpenKey { &RegOpenKeyA; } -sub RegOpenKeyEx { &RegOpenKeyExA; } -sub RegQueryInfoKey { &RegQueryInfoKeyA; } -sub RegQueryMultipleValues { &RegQueryMultipleValuesA; } -sub RegQueryValue { &RegQueryValueA; } -sub RegQueryValueEx { &RegQueryValueExA; } -sub RegReplaceKey { &RegReplaceKeyA; } -sub RegRestoreKey { &RegRestoreKeyA; } -sub RegSaveKey { &RegSaveKeyA; } -sub RegSetValue { &RegSetValueA; } -sub RegSetValueEx { &RegSetValueExA; } -sub RegUnLoadKey { &RegUnLoadKeyA; } - -1; -__END__ - -#line 1780 diff --git a/software/Slic3r-1.3.0.64bit/lib/Win32API/Registry/cRegistry.pc b/software/Slic3r-1.3.0.64bit/lib/Win32API/Registry/cRegistry.pc deleted file mode 100644 index f984543f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/Win32API/Registry/cRegistry.pc +++ /dev/null @@ -1,87 +0,0 @@ -# Generated by cRegistry_pc.cxx. -# Package Win32API::Registry with options: -# CPLUSPLUS => q[1] -# IFDEF => q[ /^SE_/ ? '__cplusplus' : /REG_/ ] -# IMPORT_LIST => [q[/._/], q[!/[a-z]/]] -# VALUES => { KEY_DELETE=>q[DELETE], KEY_READ_CONTROL=>q[READ_CONTROL], KEY_WRITE_OWNER=>q[WRITE_OWNER], KEY_SYNCHRONIZE=>q[SYNCHRONIZE], KEY_WRITE_DAC=>q[WRITE_DAC] } -# WRITE_PERL => q[1] -# Perl files eval'd: -# Registry.pm => last if /^\s*(bootstrap|XSLoader::load)\b/ -# C files included: -# Registry.xs => last if m#/[/*]\s*CONSTS_DEFINED\b|^\s*MODULE\b# -sub HKEY_CLASSES_ROOT () { 0x80000000 } -sub HKEY_CURRENT_CONFIG () { 0x80000005 } -sub HKEY_CURRENT_USER () { 0x80000001 } -sub HKEY_DYN_DATA () { 0x80000006 } -sub HKEY_LOCAL_MACHINE () { 0x80000002 } -sub HKEY_PERFORMANCE_DATA () { 0x80000004 } -sub HKEY_USERS () { 0x80000003 } -sub KEY_ALL_ACCESS () { 983103 } -sub KEY_CREATE_LINK () { 32 } -sub KEY_CREATE_SUB_KEY () { 4 } -sub KEY_DELETE () { 65536 } -sub KEY_ENUMERATE_SUB_KEYS () { 8 } -sub KEY_EXECUTE () { 131097 } -sub KEY_NOTIFY () { 16 } -sub KEY_QUERY_VALUE () { 1 } -sub KEY_READ () { 131097 } -sub KEY_READ_CONTROL () { 131072 } -sub KEY_SET_VALUE () { 2 } -sub KEY_SYNCHRONIZE () { 1048576 } -sub KEY_WRITE () { 131078 } -sub KEY_WRITE_DAC () { 262144 } -sub KEY_WRITE_OWNER () { 524288 } -sub REG_BINARY () { 3 } -sub REG_CREATED_NEW_KEY () { 1 } -sub REG_DWORD () { 4 } -sub REG_DWORD_BIG_ENDIAN () { 5 } -sub REG_DWORD_LITTLE_ENDIAN () { 4 } -sub REG_EXPAND_SZ () { 2 } -sub REG_FULL_RESOURCE_DESCRIPTOR () { 9 } -sub REG_LEGAL_CHANGE_FILTER () { 15 } -sub REG_LEGAL_OPTION () { 15 } -sub REG_LINK () { 6 } -sub REG_MULTI_SZ () { 7 } -sub REG_NONE () { 0 } -sub REG_NOTIFY_CHANGE_ATTRIBUTES () { 2 } -sub REG_NOTIFY_CHANGE_LAST_SET () { 4 } -sub REG_NOTIFY_CHANGE_NAME () { 1 } -sub REG_NOTIFY_CHANGE_SECURITY () { 8 } -sub REG_NO_LAZY_FLUSH () { 4 } -sub REG_OPENED_EXISTING_KEY () { 2 } -sub REG_OPTION_BACKUP_RESTORE () { 4 } -sub REG_OPTION_CREATE_LINK () { 2 } -sub REG_OPTION_NON_VOLATILE () { 0 } -sub REG_OPTION_OPEN_LINK () { 8 } -sub REG_OPTION_RESERVED () { 0 } -sub REG_OPTION_VOLATILE () { 1 } -sub REG_REFRESH_HIVE () { 2 } -sub REG_RESOURCE_LIST () { 8 } -sub REG_RESOURCE_REQUIREMENTS_LIST () { 10 } -sub REG_SZ () { 1 } -sub REG_WHOLE_HIVE_VOLATILE () { 1 } -sub SE_ASSIGNPRIMARYTOKEN_NAME () { 'SeAssignPrimaryTokenPrivilege' } -sub SE_AUDIT_NAME () { 'SeAuditPrivilege' } -sub SE_BACKUP_NAME () { 'SeBackupPrivilege' } -sub SE_CHANGE_NOTIFY_NAME () { 'SeChangeNotifyPrivilege' } -sub SE_CREATE_PAGEFILE_NAME () { 'SeCreatePagefilePrivilege' } -sub SE_CREATE_PERMANENT_NAME () { 'SeCreatePermanentPrivilege' } -sub SE_CREATE_TOKEN_NAME () { 'SeCreateTokenPrivilege' } -sub SE_DEBUG_NAME () { 'SeDebugPrivilege' } -sub SE_INCREASE_QUOTA_NAME () { 'SeIncreaseQuotaPrivilege' } -sub SE_INC_BASE_PRIORITY_NAME () { 'SeIncreaseBasePriorityPrivilege' } -sub SE_LOAD_DRIVER_NAME () { 'SeLoadDriverPrivilege' } -sub SE_LOCK_MEMORY_NAME () { 'SeLockMemoryPrivilege' } -sub SE_MACHINE_ACCOUNT_NAME () { 'SeMachineAccountPrivilege' } -sub SE_PROF_SINGLE_PROCESS_NAME () { 'SeProfileSingleProcessPrivilege' } -sub SE_REMOTE_SHUTDOWN_NAME () { 'SeRemoteShutdownPrivilege' } -sub SE_RESTORE_NAME () { 'SeRestorePrivilege' } -sub SE_SECURITY_NAME () { 'SeSecurityPrivilege' } -sub SE_SHUTDOWN_NAME () { 'SeShutdownPrivilege' } -sub SE_SYSTEMTIME_NAME () { 'SeSystemtimePrivilege' } -sub SE_SYSTEM_ENVIRONMENT_NAME () { 'SeSystemEnvironmentPrivilege' } -sub SE_SYSTEM_PROFILE_NAME () { 'SeSystemProfilePrivilege' } -sub SE_TAKE_OWNERSHIP_NAME () { 'SeTakeOwnershipPrivilege' } -sub SE_TCB_NAME () { 'SeTcbPrivilege' } -sub SE_UNSOLICITED_INPUT_NAME () { 'SeUnsolicitedInputPrivilege' } -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/XSLoader.pm b/software/Slic3r-1.3.0.64bit/lib/XSLoader.pm deleted file mode 100644 index b5573226..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/XSLoader.pm +++ /dev/null @@ -1,128 +0,0 @@ -#line 1 "XSLoader.pm" -# Generated from XSLoader.pm.PL (resolved %Config::Config value) -# This file is unique for every OS - -package XSLoader; - -$VERSION = "0.24"; - -#use strict; - -package DynaLoader; - -# No prizes for guessing why we don't say 'bootstrap DynaLoader;' here. -# NOTE: All dl_*.xs (including dl_none.xs) define a dl_error() XSUB -boot_DynaLoader('DynaLoader') if defined(&boot_DynaLoader) && - !defined(&dl_error); -package XSLoader; - -sub load { - package DynaLoader; - - my ($caller, $modlibname) = caller(); - my $module = $caller; - - if (@_) { - $module = $_[0]; - } else { - $_[0] = $module; - } - - # work with static linking too - my $boots = "$module\::bootstrap"; - goto &$boots if defined &$boots; - - goto \&XSLoader::bootstrap_inherit; - - my @modparts = split(/::/,$module); - my $modfname = $modparts[-1]; - - my $modpname = join('/',@modparts); - my $c = () = split(/::/,$caller,-1); - $modlibname =~ s,[\\/][^\\/]+$,, while $c--; # Q&D basename - # Does this look like a relative path? - if ($modlibname !~ m{^(?:[A-Za-z]:)?[\\/]}) { - # Someone may have a #line directive that changes the file name, or - # may be calling XSLoader::load from inside a string eval. We cer- - # tainly do not want to go loading some code that is not in @INC, - # as it could be untrusted. - # - # We could just fall back to DynaLoader here, but then the rest of - # this function would go untested in the perl core, since all @INC - # paths are relative during testing. That would be a time bomb - # waiting to happen, since bugs could be introduced into the code. - # - # So look through @INC to see if $modlibname is in it. A rela- - # tive $modlibname is not a common occurrence, so this block is - # not hot code. - FOUND: { - for (@INC) { - if ($_ eq $modlibname) { - last FOUND; - } - } - # Not found. Fall back to DynaLoader. - goto \&XSLoader::bootstrap_inherit; - } - } - my $file = "$modlibname/auto/$modpname/$modfname.xs\.dll"; - -# print STDERR "XSLoader::load for $module ($file)\n" if $dl_debug; - - my $bs = $file; - $bs =~ s/(\.\w+)?(;\d*)?$/\.bs/; # look for .bs 'beside' the library - - if (-s $bs) { # only read file if it's not empty -# print STDERR "BS: $bs ($^O, $dlsrc)\n" if $dl_debug; - eval { do $bs; }; - warn "$bs: $@\n" if $@; - goto \&XSLoader::bootstrap_inherit; - } - - goto \&XSLoader::bootstrap_inherit if not -f $file; - - my $bootname = "boot_$module"; - $bootname =~ s/\W/_/g; - @DynaLoader::dl_require_symbols = ($bootname); - - my $boot_symbol_ref; - - # Many dynamic extension loading problems will appear to come from - # this section of code: XYZ failed at line 123 of DynaLoader.pm. - # Often these errors are actually occurring in the initialisation - # C code of the extension XS file. Perl reports the error as being - # in this perl code simply because this was the last perl code - # it executed. - - my $libref = dl_load_file($file, 0) or do { - require Carp; - Carp::croak("Can't load '$file' for module $module: " . dl_error()); - }; - push(@DynaLoader::dl_librefs,$libref); # record loaded object - - $boot_symbol_ref = dl_find_symbol($libref, $bootname) or do { - require Carp; - Carp::croak("Can't find '$bootname' symbol in $file\n"); - }; - - push(@DynaLoader::dl_modules, $module); # record loaded module - - boot: - my $xs = dl_install_xsub($boots, $boot_symbol_ref, $file); - - # See comment block above - push(@DynaLoader::dl_shared_objects, $file); # record files loaded - return &$xs(@_); -} - -sub bootstrap_inherit { - require DynaLoader; - goto \&DynaLoader::bootstrap_inherit; -} - -1; - - -__END__ - -#line 378 diff --git a/software/Slic3r-1.3.0.64bit/lib/attributes.pm b/software/Slic3r-1.3.0.64bit/lib/attributes.pm deleted file mode 100644 index e797ea10..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/attributes.pm +++ /dev/null @@ -1,121 +0,0 @@ -#line 1 "attributes.pm" -package attributes; - -our $VERSION = 0.27; - -@EXPORT_OK = qw(get reftype); -@EXPORT = (); -%EXPORT_TAGS = (ALL => [@EXPORT, @EXPORT_OK]); - -use strict; - -sub croak { - require Carp; - goto &Carp::croak; -} - -sub carp { - require Carp; - goto &Carp::carp; -} - -my %deprecated; -$deprecated{CODE} = qr/\A-?(locked)\z/; -$deprecated{ARRAY} = $deprecated{HASH} = $deprecated{SCALAR} - = qr/\A-?(unique)\z/; - -my %msg = ( - lvalue => 'lvalue attribute applied to already-defined subroutine', - -lvalue => 'lvalue attribute removed from already-defined subroutine', - const => 'Useless use of attribute "const"', -); - -sub _modify_attrs_and_deprecate { - my $svtype = shift; - # Now that we've removed handling of locked from the XS code, we need to - # remove it here, else it ends up in @badattrs. (If we do the deprecation in - # XS, we can't control the warning based on *our* caller's lexical settings, - # and the warned line is in this package) - grep { - $deprecated{$svtype} && /$deprecated{$svtype}/ ? do { - require warnings; - warnings::warnif('deprecated', "Attribute \"$1\" is deprecated"); - 0; - } : $svtype eq 'CODE' && exists $msg{$_} ? do { - require warnings; - warnings::warnif( - 'misc', - $msg{$_} - ); - 0; - } : 1 - } _modify_attrs(@_); -} - -sub import { - @_ > 2 && ref $_[2] or do { - require Exporter; - goto &Exporter::import; - }; - my (undef,$home_stash,$svref,@attrs) = @_; - - my $svtype = uc reftype($svref); - my $pkgmeth; - $pkgmeth = UNIVERSAL::can($home_stash, "MODIFY_${svtype}_ATTRIBUTES") - if defined $home_stash && $home_stash ne ''; - my @badattrs; - if ($pkgmeth) { - my @pkgattrs = _modify_attrs_and_deprecate($svtype, $svref, @attrs); - @badattrs = $pkgmeth->($home_stash, $svref, @pkgattrs); - if (!@badattrs && @pkgattrs) { - require warnings; - return unless warnings::enabled('reserved'); - @pkgattrs = grep { m/\A[[:lower:]]+(?:\z|\()/ } @pkgattrs; - if (@pkgattrs) { - for my $attr (@pkgattrs) { - $attr =~ s/\(.+\z//s; - } - my $s = ((@pkgattrs == 1) ? '' : 's'); - carp "$svtype package attribute$s " . - "may clash with future reserved word$s: " . - join(' : ' , @pkgattrs); - } - } - } - else { - @badattrs = _modify_attrs_and_deprecate($svtype, $svref, @attrs); - } - if (@badattrs) { - croak "Invalid $svtype attribute" . - (( @badattrs == 1 ) ? '' : 's') . - ": " . - join(' : ', @badattrs); - } -} - -sub get ($) { - @_ == 1 && ref $_[0] or - croak 'Usage: '.__PACKAGE__.'::get $ref'; - my $svref = shift; - my $svtype = uc reftype($svref); - my $stash = _guess_stash($svref); - $stash = caller unless defined $stash; - my $pkgmeth; - $pkgmeth = UNIVERSAL::can($stash, "FETCH_${svtype}_ATTRIBUTES") - if defined $stash && $stash ne ''; - return $pkgmeth ? - (_fetch_attrs($svref), $pkgmeth->($stash, $svref)) : - (_fetch_attrs($svref)) - ; -} - -sub require_version { goto &UNIVERSAL::VERSION } - -require XSLoader; -XSLoader::load(); - -1; -__END__ -#The POD goes here - -#line 555 diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/B/B.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/B/B.xs.dll deleted file mode 100644 index 0701e1de..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/B/B.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Compress/Raw/Bzip2/Bzip2.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Compress/Raw/Bzip2/Bzip2.xs.dll deleted file mode 100644 index 5a90b41c..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Compress/Raw/Bzip2/Bzip2.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Compress/Raw/Zlib/Zlib.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Compress/Raw/Zlib/Zlib.xs.dll deleted file mode 100644 index 565ce070..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Compress/Raw/Zlib/Zlib.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Cwd/Cwd.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Cwd/Cwd.xs.dll deleted file mode 100644 index 298f606f..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Cwd/Cwd.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Data/Dumper/Dumper.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Data/Dumper/Dumper.xs.dll deleted file mode 100644 index 838ef121..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Data/Dumper/Dumper.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Digest/MD5/MD5.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Digest/MD5/MD5.xs.dll deleted file mode 100644 index 2b4f5204..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Digest/MD5/MD5.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Digest/SHA/SHA.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Digest/SHA/SHA.xs.dll deleted file mode 100644 index b56d4dd9..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Digest/SHA/SHA.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Encode/Byte/Byte.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Encode/Byte/Byte.xs.dll deleted file mode 100644 index f56d92bc..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Encode/Byte/Byte.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Encode/Encode.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Encode/Encode.xs.dll deleted file mode 100644 index 1e5cc0bf..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Encode/Encode.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Fcntl/Fcntl.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Fcntl/Fcntl.xs.dll deleted file mode 100644 index 492660ed..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Fcntl/Fcntl.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/File/Glob/Glob.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/File/Glob/Glob.xs.dll deleted file mode 100644 index 02c02912..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/File/Glob/Glob.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/HTML/Parser/Parser.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/HTML/Parser/Parser.xs.dll deleted file mode 100644 index 64a592c2..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/HTML/Parser/Parser.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/IO/IO.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/IO/IO.xs.dll deleted file mode 100644 index 7381ee83..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/IO/IO.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/List/Util/Util.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/List/Util/Util.xs.dll deleted file mode 100644 index 99e1b2cd..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/List/Util/Util.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/MIME/Base64/Base64.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/MIME/Base64/Base64.xs.dll deleted file mode 100644 index fffbd9e4..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/MIME/Base64/Base64.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Math/BigInt/FastCalc/FastCalc.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Math/BigInt/FastCalc/FastCalc.xs.dll deleted file mode 100644 index 5f725589..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Math/BigInt/FastCalc/FastCalc.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/SSLeay.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/SSLeay.xs.dll deleted file mode 100644 index eb79e8cd..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/SSLeay.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/autosplit.ix b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/autosplit.ix deleted file mode 100644 index 695527d1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/autosplit.ix +++ /dev/null @@ -1,81 +0,0 @@ -#line 1 "auto/Net/SSLeay/autosplit.ix" -# Index created by AutoSplit for blib\lib\Net\SSLeay.pm -# (file acts as timestamp) -package Net::SSLeay; -sub want_nothing ; -sub want_read ; -sub want_write ; -sub want_X509_lookup ; -sub open_tcp_connection ; -sub open_proxy_tcp_connection ; -sub debug_read ; -sub ssl_read_all ; -sub tcp_read_all ; -sub ssl_write_all ; -sub tcp_write_all ; -sub ssl_read_until ($;$$); -sub tcp_read_until ; -sub ssl_read_CRLF ($;$); -sub tcp_read_CRLF ; -sub ssl_write_CRLF ($$); -sub tcp_write_CRLF ; -sub dump_peer_certificate ($); -sub randomize (;$$$); -sub new_x_ctx ; -sub initialize -; -sub sslcat ; -sub tcpcat ; -sub tcpxcat ; -sub https_cat ; -sub http_cat ; -sub httpx_cat ; -sub set_cert_and_key ($$$); -sub set_server_cert_and_key ($$$); -sub set_proxy ($$;**); -sub make_form ; -sub make_headers ; -sub do_httpx3 ; -sub do_https3 ; -sub do_httpx2 ; -sub do_https2 ; -sub do_httpx4 ; -sub do_https4 ; -sub get_https ; -sub post_https ; -sub put_https ; -sub head_https ; -sub get_https3 ; -sub post_https3 ; -sub put_https3 ; -sub head_https3 ; -sub get_https4 ; -sub post_https4 ; -sub put_https4 ; -sub head_https4 ; -sub get_http ; -sub post_http ; -sub put_http ; -sub head_http ; -sub get_http3 ; -sub post_http3 ; -sub put_http3 ; -sub head_http3 ; -sub get_http4 ; -sub post_http4 ; -sub put_http4 ; -sub head_http4 ; -sub get_httpx ; -sub post_httpx ; -sub put_httpx ; -sub head_httpx ; -sub get_httpx3 ; -sub post_httpx3 ; -sub put_httpx3 ; -sub head_httpx3 ; -sub get_httpx4 ; -sub post_httpx4 ; -sub put_httpx4 ; -sub head_httpx4 ; -sub do_https ; -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/debug_read.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/debug_read.al deleted file mode 100644 index 1d0ead50..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/debug_read.al +++ /dev/null @@ -1,23 +0,0 @@ -#line 1 "auto/Net/SSLeay/debug_read.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 527 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\debug_read.al)" -### -### read and write helpers that block -### - -sub debug_read { - my ($replyr, $gotr) = @_; - my $vm = $trace>2 && $linux_debug ? - (split ' ', `cat /proc/$$/stat`)[22] : 'vm_unknown'; - warn " got " . blength($$gotr) . ':' - . blength($$replyr) . " bytes (VM=$vm).\n" if $trace == 3; - warn " got `$$gotr' (" . blength($$gotr) . ':' - . blength($$replyr) . " bytes, VM=$vm)\n" if $trace>3; -} - -# end of Net::SSLeay::debug_read -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_https.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_https.al deleted file mode 100644 index ae376c64..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_https.al +++ /dev/null @@ -1,20 +0,0 @@ -#line 1 "auto/Net/SSLeay/do_https.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1416 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\do_https.al)" -sub do_https { - my ($site, $port, $path, $method, $headers, - $content, $mime_type, $crt_path, $key_path) = @_; - - do_https2($method, $site, $port, $path, $headers, - $content, $mime_type, $crt_path, $key_path); -} - -1; -__END__ - -1; -# end of Net::SSLeay::do_https diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_https2.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_https2.al deleted file mode 100644 index 25b85045..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_https2.al +++ /dev/null @@ -1,14 +0,0 @@ -#line 1 "auto/Net/SSLeay/do_https2.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1345 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\do_https2.al)" -sub do_https2 { splice(@_,1,0) = 1; do_httpx2; } # Legacy undocumented - -### Returns headers as a hash where multiple instances of same header -### are handled correctly. - -# end of Net::SSLeay::do_https2 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_https3.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_https3.al deleted file mode 100644 index 9d146c8b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_https3.al +++ /dev/null @@ -1,14 +0,0 @@ -#line 1 "auto/Net/SSLeay/do_https3.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1330 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\do_https3.al)" -sub do_https3 { splice(@_,1,0) = 1; do_httpx3; } # Legacy undocumented - -### do_https2() is a legacy version in the sense that it is unable -### to return all instances of duplicate headers. - -# end of Net::SSLeay::do_https3 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_https4.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_https4.al deleted file mode 100644 index 7203b558..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_https4.al +++ /dev/null @@ -1,13 +0,0 @@ -#line 1 "auto/Net/SSLeay/do_https4.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1360 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\do_https4.al)" -sub do_https4 { splice(@_,1,0) = 1; do_httpx4; } # Legacy undocumented - -# https - -# end of Net::SSLeay::do_https4 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_httpx2.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_httpx2.al deleted file mode 100644 index 75ee0861..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_httpx2.al +++ /dev/null @@ -1,19 +0,0 @@ -#line 1 "auto/Net/SSLeay/do_httpx2.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1335 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\do_httpx2.al)" -sub do_httpx2 { - my ($page, $response, $headers, $server_cert) = &do_httpx3; - X509_free($server_cert) if defined $server_cert; - return ($page, $response, defined $headers ? - map( { ($h,$v)=/^(\S+)\:\s*(.*)$/; (uc($h),$v); } - split(/\s?\n/, $headers) - ) : () - ); -} - -# end of Net::SSLeay::do_httpx2 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_httpx3.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_httpx3.al deleted file mode 100644 index 4aae4f8e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_httpx3.al +++ /dev/null @@ -1,44 +0,0 @@ -#line 1 "auto/Net/SSLeay/do_httpx3.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1295 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\do_httpx3.al)" -sub do_httpx3 { - my ($method, $usessl, $site, $port, $path, $headers, - $content, $mime_type, $crt_path, $key_path) = @_; - my ($response, $page, $h,$v); - - my $len = blength($content); - if ($len) { - $mime_type = "application/x-www-form-urlencoded" unless $mime_type; - $content = "Content-Type: $mime_type$CRLF" - . "Content-Length: $len$CRLF$CRLF$content"; - } else { - $content = "$CRLF$CRLF"; - } - my $req = "$method $path HTTP/1.0$CRLF"; - unless (defined $headers && $headers =~ /^Host:/m) { - $req .= "Host: $site"; - unless (($port == 80 && !$usessl) || ($port == 443 && $usessl)) { - $req .= ":$port"; - } - $req .= $CRLF; - } - $req .= (defined $headers ? $headers : '') . "Accept: */*$CRLF$content"; - - warn "do_httpx3($method,$usessl,$site:$port)" if $trace; - my ($http, $errs, $server_cert) - = httpx_cat($usessl, $site, $port, $req, $crt_path, $key_path); - return (undef, "HTTP/1.0 900 NET OR SSL ERROR$CRLF$CRLF$errs") if $errs; - - $http = '' if !defined $http; - ($headers, $page) = split /\s?\n\s?\n/, $http, 2; - warn "headers >$headers< page >>$page<< http >>>$http<<<" if $trace>1; - ($response, $headers) = split /\s?\n/, $headers, 2; - return ($page, $response, $headers, $server_cert); -} - -# end of Net::SSLeay::do_httpx3 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_httpx4.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_httpx4.al deleted file mode 100644 index b0c083c4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/do_httpx4.al +++ /dev/null @@ -1,19 +0,0 @@ -#line 1 "auto/Net/SSLeay/do_httpx4.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1350 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\do_httpx4.al)" -sub do_httpx4 { - my ($page, $response, $headers, $server_cert) = &do_httpx3; - my %hr = (); - for my $hh (split /\s?\n/, $headers) { - my ($h,$v) = ($hh =~ /^(\S+)\:\s*(.*)$/); - push @{$hr{uc($h)}}, $v; - } - return ($page, $response, \%hr, $server_cert); -} - -# end of Net::SSLeay::do_httpx4 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/dump_peer_certificate.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/dump_peer_certificate.al deleted file mode 100644 index 70da5ab7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/dump_peer_certificate.al +++ /dev/null @@ -1,30 +0,0 @@ -#line 1 "auto/Net/SSLeay/dump_peer_certificate.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 894 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\dump_peer_certificate.al)" -### Quickly print out with whom we're talking - -sub dump_peer_certificate ($) { - my ($ssl) = @_; - my $cert = get_peer_certificate($ssl); - return if print_errs('get_peer_certificate'); - print "no cert defined\n" if !defined($cert); - # Cipher=NONE with empty cert fix - if (!defined($cert) || ($cert == 0)) { - warn "cert = `$cert'\n" if $trace; - return "Subject Name: undefined\nIssuer Name: undefined\n"; - } else { - my $x = 'Subject Name: ' - . X509_NAME_oneline(X509_get_subject_name($cert)) . "\n" - . 'Issuer Name: ' - . X509_NAME_oneline(X509_get_issuer_name($cert)) . "\n"; - Net::SSLeay::X509_free($cert); - return $x; - } -} - -# end of Net::SSLeay::dump_peer_certificate -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_http.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_http.al deleted file mode 100644 index b6440509..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_http.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/get_http.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1381 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\get_http.al)" -sub get_http { do_httpx2(GET => 0, @_) } -# end of Net::SSLeay::get_http -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_http3.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_http3.al deleted file mode 100644 index 8e18361f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_http3.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/get_http3.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1386 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\get_http3.al)" -sub get_http3 { do_httpx3(GET => 0, @_) } -# end of Net::SSLeay::get_http3 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_http4.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_http4.al deleted file mode 100644 index c1ebbce6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_http4.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/get_http4.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1391 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\get_http4.al)" -sub get_http4 { do_httpx4(GET => 0, @_) } -# end of Net::SSLeay::get_http4 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_https.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_https.al deleted file mode 100644 index 3d527c56..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_https.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/get_https.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1364 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\get_https.al)" -sub get_https { do_httpx2(GET => 1, @_) } -# end of Net::SSLeay::get_https -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_https3.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_https3.al deleted file mode 100644 index 95697794..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_https3.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/get_https3.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1369 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\get_https3.al)" -sub get_https3 { do_httpx3(GET => 1, @_) } -# end of Net::SSLeay::get_https3 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_https4.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_https4.al deleted file mode 100644 index 67dcfbab..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_https4.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/get_https4.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1374 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\get_https4.al)" -sub get_https4 { do_httpx4(GET => 1, @_) } -# end of Net::SSLeay::get_https4 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_httpx.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_httpx.al deleted file mode 100644 index 9e783877..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_httpx.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/get_httpx.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1398 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\get_httpx.al)" -sub get_httpx { do_httpx2(GET => @_) } -# end of Net::SSLeay::get_httpx -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_httpx3.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_httpx3.al deleted file mode 100644 index 929bcda6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_httpx3.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/get_httpx3.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1403 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\get_httpx3.al)" -sub get_httpx3 { do_httpx3(GET => @_) } -# end of Net::SSLeay::get_httpx3 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_httpx4.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_httpx4.al deleted file mode 100644 index c70ff03a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/get_httpx4.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/get_httpx4.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1408 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\get_httpx4.al)" -sub get_httpx4 { do_httpx4(GET => @_) } -# end of Net::SSLeay::get_httpx4 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_http.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_http.al deleted file mode 100644 index 484b07ae..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_http.al +++ /dev/null @@ -1,11 +0,0 @@ -#line 1 "auto/Net/SSLeay/head_http.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1384 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\head_http.al)" -sub head_http { do_httpx2(HEAD => 0, @_) } - -# end of Net::SSLeay::head_http -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_http3.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_http3.al deleted file mode 100644 index 16240d72..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_http3.al +++ /dev/null @@ -1,11 +0,0 @@ -#line 1 "auto/Net/SSLeay/head_http3.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1389 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\head_http3.al)" -sub head_http3 { do_httpx3(HEAD => 0, @_) } - -# end of Net::SSLeay::head_http3 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_http4.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_http4.al deleted file mode 100644 index 771347cd..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_http4.al +++ /dev/null @@ -1,13 +0,0 @@ -#line 1 "auto/Net/SSLeay/head_http4.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1394 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\head_http4.al)" -sub head_http4 { do_httpx4(HEAD => 0, @_) } - -# Either https or http - -# end of Net::SSLeay::head_http4 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_https.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_https.al deleted file mode 100644 index 06402497..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_https.al +++ /dev/null @@ -1,11 +0,0 @@ -#line 1 "auto/Net/SSLeay/head_https.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1367 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\head_https.al)" -sub head_https { do_httpx2(HEAD => 1, @_) } - -# end of Net::SSLeay::head_https -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_https3.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_https3.al deleted file mode 100644 index aebd3df6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_https3.al +++ /dev/null @@ -1,11 +0,0 @@ -#line 1 "auto/Net/SSLeay/head_https3.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1372 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\head_https3.al)" -sub head_https3 { do_httpx3(HEAD => 1, @_) } - -# end of Net::SSLeay::head_https3 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_https4.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_https4.al deleted file mode 100644 index 71365f2f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_https4.al +++ /dev/null @@ -1,13 +0,0 @@ -#line 1 "auto/Net/SSLeay/head_https4.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1377 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\head_https4.al)" -sub head_https4 { do_httpx4(HEAD => 1, @_) } - -# http - -# end of Net::SSLeay::head_https4 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_httpx.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_httpx.al deleted file mode 100644 index 791b4dd0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_httpx.al +++ /dev/null @@ -1,11 +0,0 @@ -#line 1 "auto/Net/SSLeay/head_httpx.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1401 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\head_httpx.al)" -sub head_httpx { do_httpx2(HEAD => @_) } - -# end of Net::SSLeay::head_httpx -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_httpx3.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_httpx3.al deleted file mode 100644 index 43bd5eb5..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_httpx3.al +++ /dev/null @@ -1,11 +0,0 @@ -#line 1 "auto/Net/SSLeay/head_httpx3.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1406 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\head_httpx3.al)" -sub head_httpx3 { do_httpx3(HEAD => @_) } - -# end of Net::SSLeay::head_httpx3 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_httpx4.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_httpx4.al deleted file mode 100644 index dd0ab3d4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/head_httpx4.al +++ /dev/null @@ -1,14 +0,0 @@ -#line 1 "auto/Net/SSLeay/head_httpx4.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1411 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\head_httpx4.al)" -sub head_httpx4 { do_httpx4(HEAD => @_) } - -### Legacy, don't use -# ($page, $respone_or_err, %headers) = do_https(...); - -# end of Net::SSLeay::head_httpx4 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/http_cat.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/http_cat.al deleted file mode 100644 index ffdafac6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/http_cat.al +++ /dev/null @@ -1,35 +0,0 @@ -#line 1 "auto/Net/SSLeay/http_cat.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1199 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\http_cat.al)" -sub http_cat { # address, port, message --> returns reply / (reply,errs,cert) - my ($dest_serv, $port, $out_message) = @_; - my ($got, $errs, $written); - - ($got, $errs) = open_proxy_tcp_connection($dest_serv, $port); - return (wantarray ? (undef, $errs) : undef) unless $got; - - ### Connected. Exchange some data (doing repeated tries if necessary). - - warn "http_cat $$: sending " . blength($out_message) . " bytes...\n" - if $trace==3; - warn "http_cat $$: sending `$out_message' (" . blength($out_message) - . " bytes)...\n" if $trace>3; - ($written, $errs) = tcp_write_all($out_message); - goto cleanup unless $written; - - warn "waiting for reply...\n" if $trace>2; - ($got, $errs) = tcp_read_all(); - warn "Got " . blength($got) . " bytes.\n" if $trace==3; - warn "Got `$got' (" . blength($got) . " bytes)\n" if $trace>3; - -cleanup: - close SSLCAT_S; - return wantarray ? ($got, $errs) : $got; -} - -# end of Net::SSLeay::http_cat -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/https_cat.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/https_cat.al deleted file mode 100644 index 94e3ca2b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/https_cat.al +++ /dev/null @@ -1,96 +0,0 @@ -#line 1 "auto/Net/SSLeay/https_cat.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1112 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\https_cat.al)" -### -### Basic request - response primitive, this is different from sslcat -### because this does not shutdown the connection. -### - -sub https_cat { # address, port, message --> returns reply / (reply,errs,cert) - my ($dest_serv, $port, $out_message, $crt_path, $key_path) = @_; - my ($ctx, $ssl, $got, $errs, $written); - - ($got, $errs) = open_proxy_tcp_connection($dest_serv, $port); - return (wantarray ? (undef, $errs) : undef) unless $got; - - ### Do SSL negotiation stuff - - warn "Creating SSL $ssl_version context...\n" if $trace>2; - initialize(); - - $ctx = new_x_ctx(); - goto cleanup2 if $errs = print_errs('CTX_new') or !$ctx; - - CTX_set_options($ctx, &OP_ALL); - goto cleanup2 if $errs = print_errs('CTX_set_options'); - - warn "Cert `$crt_path' given without key" if $crt_path && !$key_path; - set_cert_and_key($ctx, $crt_path, $key_path) if $crt_path; - - warn "Creating SSL connection (context was '$ctx')...\n" if $trace>2; - $ssl = new($ctx); - goto cleanup if $errs = print_errs('SSL_new') or !$ssl; - - warn "Setting fd (ctx $ctx, con $ssl)...\n" if $trace>2; - set_fd($ssl, fileno(SSLCAT_S)); - goto cleanup if $errs = print_errs('set_fd'); - - warn "Entering SSL negotiation phase...\n" if $trace>2; - - if ($trace>2) { - my $i = 0; - my $p = ''; - my $cipher_list = 'Cipher list: '; - $p=Net::SSLeay::get_cipher_list($ssl,$i); - $cipher_list .= $p if $p; - do { - $i++; - $cipher_list .= ', ' . $p if $p; - $p=Net::SSLeay::get_cipher_list($ssl,$i); - } while $p; - $cipher_list .= '\n'; - warn $cipher_list; - } - - $got = Net::SSLeay::connect($ssl); - warn "SSLeay connect failed" if $trace>2 && $got==0; - goto cleanup if $errs = print_errs('SSL_connect'); - - my $server_cert = get_peer_certificate($ssl); - print_errs('get_peer_certificate'); - if ($trace>1) { - warn "Cipher `" . get_cipher($ssl) . "'\n"; - print_errs('get_ciper'); - warn dump_peer_certificate($ssl); - } - - ### Connected. Exchange some data (doing repeated tries if necessary). - - warn "https_cat $$: sending " . blength($out_message) . " bytes...\n" - if $trace==3; - warn "https_cat $$: sending `$out_message' (" . blength($out_message) - . " bytes)...\n" if $trace>3; - ($written, $errs) = ssl_write_all($ssl, $out_message); - goto cleanup unless $written; - - warn "waiting for reply...\n" if $trace>2; - ($got, $errs) = ssl_read_all($ssl); - warn "Got " . blength($got) . " bytes.\n" if $trace==3; - warn "Got `$got' (" . blength($got) . " bytes)\n" if $trace>3; - -cleanup: - free ($ssl); - $errs .= print_errs('SSL_free'); -cleanup2: - CTX_free ($ctx); - $errs .= print_errs('CTX_free'); - close SSLCAT_S; - return wantarray ? ($got, $errs, $server_cert) : $got; -} - -# end of Net::SSLeay::https_cat -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/httpx_cat.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/httpx_cat.al deleted file mode 100644 index dd13f7b8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/httpx_cat.al +++ /dev/null @@ -1,19 +0,0 @@ -#line 1 "auto/Net/SSLeay/httpx_cat.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1225 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\httpx_cat.al)" -sub httpx_cat { - my ($usessl, $site, $port, $req, $crt_path, $key_path) = @_; - warn "httpx_cat: usessl=$usessl ($site:$port)" if $trace; - if ($usessl) { - return https_cat($site, $port, $req, $crt_path, $key_path); - } else { - return http_cat($site, $port, $req); - } -} - -# end of Net::SSLeay::httpx_cat -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/initialize.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/initialize.al deleted file mode 100644 index c8678a6a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/initialize.al +++ /dev/null @@ -1,28 +0,0 @@ -#line 1 "auto/Net/SSLeay/initialize.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 966 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\initialize.al)" -### -### Standard initialisation. Initialise the ssl library in the usual way -### at most once. Override this if you need differnet initialisation -### SSLeay_add_ssl_algorithms is also protected against multiple runs in SSLeay.xs -### and is also mutex protected in threading perls -### - -my $library_initialised; -sub initialize -{ - if (!$library_initialised) - { - load_error_strings(); # Some bloat, but I'm after ease of use - SSLeay_add_ssl_algorithms(); # and debuggability. - randomize(); - $library_initialised++; - } -} - -# end of Net::SSLeay::initialize -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/make_form.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/make_form.al deleted file mode 100644 index deb8e8bc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/make_form.al +++ /dev/null @@ -1,26 +0,0 @@ -#line 1 "auto/Net/SSLeay/make_form.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1265 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\make_form.al)" -### -### Easy https manipulation routines -### - -sub make_form { - my (@fields) = @_; - my $form; - while (@fields) { - my ($name, $data) = (shift(@fields), shift(@fields)); - $data =~ s/([^\w\-.\@\$ ])/sprintf("%%%2.2x",ord($1))/gse; - $data =~ tr[ ][+]; - $form .= "$name=$data&"; - } - chop $form; - return $form; -} - -# end of Net::SSLeay::make_form -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/make_headers.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/make_headers.al deleted file mode 100644 index c49638a1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/make_headers.al +++ /dev/null @@ -1,22 +0,0 @@ -#line 1 "auto/Net/SSLeay/make_headers.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1282 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\make_headers.al)" -sub make_headers { - my (@headers) = @_; - my $headers; - while (@headers) { - my $header = shift(@headers); - my $value = shift(@headers); - $header =~ s/:$//; - $value =~ s/\x0d?\x0a$//; # because we add it soon, see below - $headers .= "$header: $value$CRLF"; - } - return $headers; -} - -# end of Net::SSLeay::make_headers -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/new_x_ctx.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/new_x_ctx.al deleted file mode 100644 index ead0d932..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/new_x_ctx.al +++ /dev/null @@ -1,37 +0,0 @@ -#line 1 "auto/Net/SSLeay/new_x_ctx.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 938 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\new_x_ctx.al)" -sub new_x_ctx { - if ($ssl_version == 2) { - unless (exists &Net::SSLeay::CTX_v2_new) { - warn "ssl_version has been set to 2, but this version of OpenSSL has been compiled without SSLv2 support"; - return undef; - } - $ctx = CTX_v2_new(); - } - elsif ($ssl_version == 3) { $ctx = CTX_v3_new(); } - elsif ($ssl_version == 10) { $ctx = CTX_tlsv1_new(); } - elsif ($ssl_version == 11) { - unless (exists &Net::SSLeay::CTX_tlsv1_1_new) { - warn "ssl_version has been set to 11, but this version of OpenSSL has been compiled without TLSv1.1 support"; - return undef; - } - $ctx = CTX_tlsv1_1_new; - } - elsif ($ssl_version == 12) { - unless (exists &Net::SSLeay::CTX_tlsv1_2_new) { - warn "ssl_version has been set to 12, but this version of OpenSSL has been compiled without TLSv1.2 support"; - return undef; - } - $ctx = CTX_tlsv1_2_new; - } - else { $ctx = CTX_new(); } - return $ctx; -} - -# end of Net::SSLeay::new_x_ctx -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/open_proxy_tcp_connection.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/open_proxy_tcp_connection.al deleted file mode 100644 index 38299c7b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/open_proxy_tcp_connection.al +++ /dev/null @@ -1,32 +0,0 @@ -#line 1 "auto/Net/SSLeay/open_proxy_tcp_connection.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 504 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\open_proxy_tcp_connection.al)" -### Open connection via standard web proxy, if one was defined -### using set_proxy(). - -sub open_proxy_tcp_connection { - my ($dest_serv, $port) = @_; - return open_tcp_connection($dest_serv, $port) if !$proxyhost; - - warn "Connect via proxy: $proxyhost:$proxyport" if $trace>2; - my ($ret, $errs) = open_tcp_connection($proxyhost, $proxyport); - return wantarray ? (0, $errs) : 0 if !$ret; # Connection fail - - warn "Asking proxy to connect to $dest_serv:$port" if $trace>2; - #print SSLCAT_S "CONNECT $dest_serv:$port HTTP/1.0$proxyauth$CRLF$CRLF"; - #my $line = ; # *** bug? Mixing stdio with syscall read? - ($ret, $errs) = - tcp_write_all("CONNECT $dest_serv:$port HTTP/1.0$proxyauth$CRLF$CRLF"); - return wantarray ? (0,$errs) : 0 if $errs; - ($line, $errs) = tcp_read_until($CRLF . $CRLF, 1024); - warn "Proxy response: $line" if $trace>2; - return wantarray ? (0,$errs) : 0 if $errs; - return wantarray ? (1,'') : 1; # Success -} - -# end of Net::SSLeay::open_proxy_tcp_connection -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/open_tcp_connection.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/open_tcp_connection.al deleted file mode 100644 index 6bee667f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/open_tcp_connection.al +++ /dev/null @@ -1,41 +0,0 @@ -#line 1 "auto/Net/SSLeay/open_tcp_connection.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 472 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\open_tcp_connection.al)" -sub open_tcp_connection { - my ($dest_serv, $port) = @_; - my ($errs); - - $port = getservbyname($port, 'tcp') unless $port =~ /^\d+$/; - my $dest_serv_ip = gethostbyname($dest_serv); - unless (defined($dest_serv_ip)) { - $errs = "$0 $$: open_tcp_connection: destination host not found:" - . " `$dest_serv' (port $port) ($!)\n"; - warn $errs if $trace; - return wantarray ? (0, $errs) : 0; - } - my $sin = sockaddr_in($port, $dest_serv_ip); - - warn "Opening connection to $dest_serv:$port (" . - inet_ntoa($dest_serv_ip) . ")" if $trace>2; - - my $proto = &Socket::IPPROTO_TCP; # getprotobyname('tcp') not available on android - if (socket (SSLCAT_S, &PF_INET(), &SOCK_STREAM(), $proto)) { - warn "next connect" if $trace>3; - if (CORE::connect (SSLCAT_S, $sin)) { - my $old_out = select (SSLCAT_S); $| = 1; select ($old_out); - warn "connected to $dest_serv, $port" if $trace>3; - return wantarray ? (1, undef) : 1; # Success - } - } - $errs = "$0 $$: open_tcp_connection: failed `$dest_serv', $port ($!)\n"; - warn $errs if $trace; - close SSLCAT_S; - return wantarray ? (0, $errs) : 0; # Fail -} - -# end of Net::SSLeay::open_tcp_connection -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_http.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_http.al deleted file mode 100644 index 06410505..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_http.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/post_http.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1382 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\post_http.al)" -sub post_http { do_httpx2(POST => 0, @_) } -# end of Net::SSLeay::post_http -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_http3.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_http3.al deleted file mode 100644 index 431485ae..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_http3.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/post_http3.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1387 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\post_http3.al)" -sub post_http3 { do_httpx3(POST => 0, @_) } -# end of Net::SSLeay::post_http3 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_http4.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_http4.al deleted file mode 100644 index e2fb48f9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_http4.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/post_http4.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1392 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\post_http4.al)" -sub post_http4 { do_httpx4(POST => 0, @_) } -# end of Net::SSLeay::post_http4 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_https.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_https.al deleted file mode 100644 index 2c264162..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_https.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/post_https.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1365 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\post_https.al)" -sub post_https { do_httpx2(POST => 1, @_) } -# end of Net::SSLeay::post_https -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_https3.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_https3.al deleted file mode 100644 index b5250edc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_https3.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/post_https3.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1370 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\post_https3.al)" -sub post_https3 { do_httpx3(POST => 1, @_) } -# end of Net::SSLeay::post_https3 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_https4.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_https4.al deleted file mode 100644 index 626ca865..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_https4.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/post_https4.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1375 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\post_https4.al)" -sub post_https4 { do_httpx4(POST => 1, @_) } -# end of Net::SSLeay::post_https4 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_httpx.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_httpx.al deleted file mode 100644 index b83f0757..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_httpx.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/post_httpx.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1399 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\post_httpx.al)" -sub post_httpx { do_httpx2(POST => @_) } -# end of Net::SSLeay::post_httpx -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_httpx3.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_httpx3.al deleted file mode 100644 index a17dce5e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_httpx3.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/post_httpx3.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1404 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\post_httpx3.al)" -sub post_httpx3 { do_httpx3(POST => @_) } -# end of Net::SSLeay::post_httpx3 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_httpx4.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_httpx4.al deleted file mode 100644 index 5f0a7382..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/post_httpx4.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/post_httpx4.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1409 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\post_httpx4.al)" -sub post_httpx4 { do_httpx4(POST => @_) } -# end of Net::SSLeay::post_httpx4 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_http.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_http.al deleted file mode 100644 index 90d8418e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_http.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/put_http.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1383 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\put_http.al)" -sub put_http { do_httpx2(PUT => 0, @_) } -# end of Net::SSLeay::put_http -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_http3.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_http3.al deleted file mode 100644 index 1189c090..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_http3.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/put_http3.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1388 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\put_http3.al)" -sub put_http3 { do_httpx3(PUT => 0, @_) } -# end of Net::SSLeay::put_http3 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_http4.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_http4.al deleted file mode 100644 index 11452fc7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_http4.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/put_http4.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1393 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\put_http4.al)" -sub put_http4 { do_httpx4(PUT => 0, @_) } -# end of Net::SSLeay::put_http4 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_https.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_https.al deleted file mode 100644 index 23670179..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_https.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/put_https.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1366 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\put_https.al)" -sub put_https { do_httpx2(PUT => 1, @_) } -# end of Net::SSLeay::put_https -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_https3.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_https3.al deleted file mode 100644 index 5405a9b8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_https3.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/put_https3.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1371 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\put_https3.al)" -sub put_https3 { do_httpx3(PUT => 1, @_) } -# end of Net::SSLeay::put_https3 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_https4.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_https4.al deleted file mode 100644 index 59ff203e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_https4.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/put_https4.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1376 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\put_https4.al)" -sub put_https4 { do_httpx4(PUT => 1, @_) } -# end of Net::SSLeay::put_https4 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_httpx.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_httpx.al deleted file mode 100644 index 53e0d207..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_httpx.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/put_httpx.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1400 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\put_httpx.al)" -sub put_httpx { do_httpx2(PUT => @_) } -# end of Net::SSLeay::put_httpx -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_httpx3.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_httpx3.al deleted file mode 100644 index e575a864..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_httpx3.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/put_httpx3.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1405 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\put_httpx3.al)" -sub put_httpx3 { do_httpx3(PUT => @_) } -# end of Net::SSLeay::put_httpx3 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_httpx4.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_httpx4.al deleted file mode 100644 index 23bc7884..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/put_httpx4.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/put_httpx4.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1410 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\put_httpx4.al)" -sub put_httpx4 { do_httpx4(PUT => @_) } -# end of Net::SSLeay::put_httpx4 -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/randomize.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/randomize.al deleted file mode 100644 index eb4610e9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/randomize.al +++ /dev/null @@ -1,32 +0,0 @@ -#line 1 "auto/Net/SSLeay/randomize.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 915 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\randomize.al)" -### Arrange some randomness for eay PRNG - -sub randomize (;$$$) { - my ($rn_seed_file, $seed, $egd_path) = @_; - my $rnsf = defined($rn_seed_file) && -r $rn_seed_file; - - $egd_path = ''; - $egd_path = $ENV{'EGD_PATH'} if $ENV{'EGD_PATH'}; - - RAND_seed(rand() + $$); # Stir it with time and pid - - unless ($rnsf || -r $Net::SSLeay::random_device || $seed || -S $egd_path) { - my $poll_retval = Net::SSLeay::RAND_poll(); - warn "Random number generator not seeded!!!" if $trace && !$poll_retval; - } - - RAND_load_file($rn_seed_file, -s _) if $rnsf; - RAND_seed($seed) if $seed; - RAND_seed($ENV{RND_SEED}) if $ENV{RND_SEED}; - RAND_load_file($Net::SSLeay::random_device, $Net::SSLeay::how_random/8) - if -r $Net::SSLeay::random_device; -} - -# end of Net::SSLeay::randomize -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/set_cert_and_key.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/set_cert_and_key.al deleted file mode 100644 index 36f57192..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/set_cert_and_key.al +++ /dev/null @@ -1,24 +0,0 @@ -#line 1 "auto/Net/SSLeay/set_cert_and_key.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1235 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\set_cert_and_key.al)" -### -### Easy set up of private key and certificate -### - -sub set_cert_and_key ($$$) { - my ($ctx, $cert_path, $key_path) = @_; - my $errs = ''; - # Following will ask password unless private key is not encrypted - CTX_use_PrivateKey_file ($ctx, $key_path, &FILETYPE_PEM); - $errs .= print_errs("private key `$key_path' ($!)"); - CTX_use_certificate_file ($ctx, $cert_path, &FILETYPE_PEM); - $errs .= print_errs("certificate `$cert_path' ($!)"); - return wantarray ? (undef, $errs) : ($errs eq ''); -} - -# end of Net::SSLeay::set_cert_and_key -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/set_proxy.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/set_proxy.al deleted file mode 100644 index 3edc577b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/set_proxy.al +++ /dev/null @@ -1,18 +0,0 @@ -#line 1 "auto/Net/SSLeay/set_proxy.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1256 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\set_proxy.al)" -sub set_proxy ($$;**) { - ($proxyhost, $proxyport, $proxyuser, $proxypass) = @_; - require MIME::Base64 if $proxyuser; - $proxyauth = $proxyuser - ? $CRLF . 'Proxy-authorization: Basic ' - . MIME::Base64::encode("$proxyuser:$proxypass", '') - : ''; -} - -# end of Net::SSLeay::set_proxy -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/set_server_cert_and_key.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/set_server_cert_and_key.al deleted file mode 100644 index ce9b31cc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/set_server_cert_and_key.al +++ /dev/null @@ -1,15 +0,0 @@ -#line 1 "auto/Net/SSLeay/set_server_cert_and_key.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1250 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\set_server_cert_and_key.al)" -### Old deprecated API - -sub set_server_cert_and_key ($$$) { &set_cert_and_key } - -### Set up to use web proxy - -# end of Net::SSLeay::set_server_cert_and_key -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/ssl_read_CRLF.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/ssl_read_CRLF.al deleted file mode 100644 index b463e179..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/ssl_read_CRLF.al +++ /dev/null @@ -1,11 +0,0 @@ -#line 1 "auto/Net/SSLeay/ssl_read_CRLF.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 859 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\ssl_read_CRLF.al)" -# ssl_read_CRLF($ssl [, $max_length]) -sub ssl_read_CRLF ($;$) { ssl_read_until($_[0], $CRLF, $_[1]) } -# end of Net::SSLeay::ssl_read_CRLF -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/ssl_read_all.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/ssl_read_all.al deleted file mode 100644 index 6ceec70d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/ssl_read_all.al +++ /dev/null @@ -1,29 +0,0 @@ -#line 1 "auto/Net/SSLeay/ssl_read_all.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 541 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\ssl_read_all.al)" -sub ssl_read_all { - my ($ssl,$how_much) = @_; - $how_much = 2000000000 unless $how_much; - my ($got, $errs); - my $reply = ''; - - while ($how_much > 0) { - $got = Net::SSLeay::read($ssl, - ($how_much > 32768) ? 32768 : $how_much - ); - last if $errs = print_errs('SSL_read'); - $how_much -= blength($got); - debug_read(\$reply, \$got) if $trace>1; - last if $got eq ''; # EOF - $reply .= $got; - } - - return wantarray ? ($reply, $errs) : $reply; -} - -# end of Net::SSLeay::ssl_read_all -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/ssl_read_until.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/ssl_read_until.al deleted file mode 100644 index b8312593..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/ssl_read_until.al +++ /dev/null @@ -1,95 +0,0 @@ -#line 1 "auto/Net/SSLeay/ssl_read_until.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 748 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\ssl_read_until.al)" -### from patch by Clinton Wong - -# ssl_read_until($ssl [, $delimit [, $max_length]]) -# if $delimit missing, use $/ if it exists, otherwise use \n -# read until delimiter reached, up to $max_length chars if defined - -sub ssl_read_until ($;$$) { - my ($ssl,$delim, $max_length) = @_; - - # guess the delim string if missing - if ( ! defined $delim ) { - if ( defined $/ && length $/ ) { $delim = $/ } - else { $delim = "\n" } # Note: \n,$/ value depends on the platform - } - my $len_delim = length $delim; - - my ($got); - my $reply = ''; - - # If we have OpenSSL 0.9.6a or later, we can use SSL_peek to - # speed things up. - # N.B. 0.9.6a has security problems, so the support for - # anything earlier than 0.9.6e will be dropped soon. - if (&Net::SSLeay::OPENSSL_VERSION_NUMBER >= 0x0090601f) { - $max_length = 2000000000 unless (defined $max_length); - my ($pending, $peek_length, $found, $done); - while (blength($reply) < $max_length and !$done) { - #Block if necessary until we get some data - $got = Net::SSLeay::peek($ssl,1); - last if print_errs('SSL_peek'); - - $pending = Net::SSLeay::pending($ssl) + blength($reply); - $peek_length = ($pending > $max_length) ? $max_length : $pending; - $peek_length -= blength($reply); - $got = Net::SSLeay::peek($ssl, $peek_length); - last if print_errs('SSL_peek'); - $peek_length = blength($got); - - #$found = index($got, $delim); # Old and broken - - # the delimiter may be split across two gets, so we prepend - # a little from the last get onto this one before we check - # for a match - my $match; - if(blength($reply) >= blength($delim) - 1) { - #if what we've read so far is greater or equal - #in length of what we need to prepatch - $match = substr $reply, blength($reply) - blength($delim) + 1; - } else { - $match = $reply; - } - - $match .= $got; - $found = index($match, $delim); - - if ($found > -1) { - #$got = Net::SSLeay::read($ssl, $found+$len_delim); - #read up to the end of the delimiter - $got = Net::SSLeay::read($ssl, - $found + $len_delim - - ((blength($match)) - (blength($got)))); - $done = 1; - } else { - $got = Net::SSLeay::read($ssl, $peek_length); - $done = 1 if ($peek_length == $max_length - blength($reply)); - } - - last if print_errs('SSL_read'); - debug_read(\$reply, \$got) if $trace>1; - last if $got eq ''; - $reply .= $got; - } - } else { - while (!defined $max_length || length $reply < $max_length) { - $got = Net::SSLeay::read($ssl,1); # one by one - last if print_errs('SSL_read'); - debug_read(\$reply, \$got) if $trace>1; - last if $got eq ''; - $reply .= $got; - last if $len_delim - && substr($reply, blength($reply)-$len_delim) eq $delim; - } - } - return $reply; -} - -# end of Net::SSLeay::ssl_read_until -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/ssl_write_CRLF.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/ssl_write_CRLF.al deleted file mode 100644 index 5a1c2ca0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/ssl_write_CRLF.al +++ /dev/null @@ -1,24 +0,0 @@ -#line 1 "auto/Net/SSLeay/ssl_write_CRLF.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 864 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\ssl_write_CRLF.al)" -sub ssl_write_CRLF ($$) { - # the next line uses less memory but might use more network packets - return ssl_write_all($_[0], $_[1]) + ssl_write_all($_[0], $CRLF); - - # the next few lines do the same thing at the expense of memory, with - # the chance that it will use less packets, since CRLF is in the original - # message and won't be sent separately. - - #my $data_ref; - #if (ref $_[1]) { $data_ref = $_[1] } - # else { $data_ref = \$_[1] } - #my $message = $$data_ref . $CRLF; - #return ssl_write_all($_[0], \$message); -} - -# end of Net::SSLeay::ssl_write_CRLF -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/ssl_write_all.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/ssl_write_all.al deleted file mode 100644 index a0110f40..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/ssl_write_all.al +++ /dev/null @@ -1,150 +0,0 @@ -#line 1 "auto/Net/SSLeay/ssl_write_all.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 579 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\ssl_write_all.al)" -sub ssl_write_all { - my $ssl = $_[0]; - my ($data_ref, $errs); - if (ref $_[1]) { - $data_ref = $_[1]; - } else { - $data_ref = \$_[1]; - } - my ($wrote, $written, $to_write) = (0,0, blength($$data_ref)); - my $vm = $trace>2 && $linux_debug ? - (split ' ', `cat /proc/$$/stat`)[22] : 'vm_unknown'; - warn " write_all VM at entry=$vm\n" if $trace>2; - while ($to_write) { - #sleep 1; # *** DEBUG - warn "partial `$$data_ref'\n" if $trace>3; - $wrote = write_partial($ssl, $written, $to_write, $$data_ref); - if (defined $wrote && ($wrote > 0)) { # write_partial can return -1 - $written += $wrote; - $to_write -= $wrote; - } else { - if (defined $wrote) { - # check error conditions via SSL_get_error per man page - if ( my $sslerr = get_error($ssl, $wrote) ) { - my $errstr = ERR_error_string($sslerr); - my $errname = ''; - SWITCH: { - $sslerr == constant("ERROR_NONE") && do { - # according to map page SSL_get_error(3ssl): - # The TLS/SSL I/O operation completed. - # This result code is returned if and only if ret > 0 - # so if we received it here complain... - warn "ERROR_NONE unexpected with invalid return value!" - if $trace; - $errname = "SSL_ERROR_NONE"; - }; - $sslerr == constant("ERROR_WANT_READ") && do { - # operation did not complete, call again later, so do not - # set errname and empty err_que since this is a known - # error that is expected but, we should continue to try - # writing the rest of our data with same io call and params. - warn "ERROR_WANT_READ (TLS/SSL Handshake, will continue)\n" - if $trace; - print_errs('SSL_write(want read)'); - last SWITCH; - }; - $sslerr == constant("ERROR_WANT_WRITE") && do { - # operation did not complete, call again later, so do not - # set errname and empty err_que since this is a known - # error that is expected but, we should continue to try - # writing the rest of our data with same io call and params. - warn "ERROR_WANT_WRITE (TLS/SSL Handshake, will continue)\n" - if $trace; - print_errs('SSL_write(want write)'); - last SWITCH; - }; - $sslerr == constant("ERROR_ZERO_RETURN") && do { - # valid protocol closure from other side, no longer able to - # write, since there is no longer a session... - warn "ERROR_ZERO_RETURN($wrote): TLS/SSLv3 Closure alert\n" - if $trace; - $errname = "SSL_ERROR_ZERO_RETURN"; - last SWITCH; - }; - $sslerr == constant("ERROR_SSL") && do { - # library/protocol error - warn "ERROR_SSL($wrote): Library/Protocol error occured\n" - if $trace; - $errname = "SSL_ERROR_SSL"; - last SWITCH; - }; - $sslerr == constant("ERROR_WANT_CONNECT") && do { - # according to man page, should never happen on call to - # SSL_write, so complain, but handle as known error type - warn "ERROR_WANT_CONNECT: Unexpected error for SSL_write\n" - if $trace; - $errname = "SSL_ERROR_WANT_CONNECT"; - last SWITCH; - }; - $sslerr == constant("ERROR_WANT_ACCEPT") && do { - # according to man page, should never happen on call to - # SSL_write, so complain, but handle as known error type - warn "ERROR_WANT_ACCEPT: Unexpected error for SSL_write\n" - if $trace; - $errname = "SSL_ERROR_WANT_ACCEPT"; - last SWITCH; - }; - $sslerr == constant("ERROR_WANT_X509_LOOKUP") && do { - # operation did not complete: waiting on call back, - # call again later, so do not set errname and empty err_que - # since this is a known error that is expected but, we should - # continue to try writing the rest of our data with same io - # call parameter. - warn "ERROR_WANT_X509_LOOKUP: (Cert Callback asked for in ". - "SSL_write will contine)\n" if $trace; - print_errs('SSL_write(want x509'); - last SWITCH; - }; - $sslerr == constant("ERROR_SYSCALL") && do { - # some IO error occured. According to man page: - # Check retval, ERR, fallback to errno - if ($wrote==0) { # EOF - warn "ERROR_SYSCALL($wrote): EOF violates protocol.\n" - if $trace; - $errname = "SSL_ERROR_SYSCALL(EOF)"; - } else { # -1 underlying BIO error reported. - # check error que for details, don't set errname since we - # are directly appending to errs - my $chkerrs = print_errs('SSL_write (syscall)'); - if ($chkerrs) { - warn "ERROR_SYSCALL($wrote): Have errors\n" if $trace; - $errs .= "ssl_write_all $$: 1 - ERROR_SYSCALL($wrote,". - "$sslerr,$errstr,$!)\n$chkerrs"; - } else { # que was empty, use errno - warn "ERROR_SYSCALL($wrote): errno($!)\n" if $trace; - $errs .= "ssl_write_all $$: 1 - ERROR_SYSCALL($wrote,". - "$sslerr) : $!\n"; - } - } - last SWITCH; - }; - warn "Unhandled val $sslerr from SSL_get_error(SSL,$wrote)\n" - if $trace; - $errname = "SSL_ERROR_?($sslerr)"; - } # end of SWITCH block - if ($errname) { # if we had an errname set add the error - $errs .= "ssl_write_all $$: 1 - $errname($wrote,$sslerr,". - "$errstr,$!)\n"; - } - } # endif on have SSL_get_error val - } # endif on $wrote defined - } # endelse on $wrote > 0 - $vm = $trace>2 && $linux_debug ? - (split ' ', `cat /proc/$$/stat`)[22] : 'vm_unknown'; - warn " written so far $wrote:$written bytes (VM=$vm)\n" if $trace>2; - # append remaining errors in que and report if errs exist - $errs .= print_errs('SSL_write'); - return (wantarray ? (undef, $errs) : undef) if $errs; - } - return wantarray ? ($written, $errs) : $written; -} - -# end of Net::SSLeay::ssl_write_all -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/sslcat.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/sslcat.al deleted file mode 100644 index 1d41f475..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/sslcat.al +++ /dev/null @@ -1,98 +0,0 @@ -#line 1 "auto/Net/SSLeay/sslcat.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 985 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\sslcat.al)" -### -### Basic request - response primitive (don't use for https) -### - -sub sslcat { # address, port, message, $crt, $key --> reply / (reply,errs,cert) - my ($dest_serv, $port, $out_message, $crt_path, $key_path) = @_; - my ($ctx, $ssl, $got, $errs, $written); - - ($got, $errs) = open_proxy_tcp_connection($dest_serv, $port); - return (wantarray ? (undef, $errs) : undef) unless $got; - - ### Do SSL negotiation stuff - - warn "Creating SSL $ssl_version context...\n" if $trace>2; - initialize(); # Will init at most once - - $ctx = new_x_ctx(); - goto cleanup2 if $errs = print_errs('CTX_new') or !$ctx; - - CTX_set_options($ctx, &OP_ALL); - goto cleanup2 if $errs = print_errs('CTX_set_options'); - - warn "Cert `$crt_path' given without key" if $crt_path && !$key_path; - set_cert_and_key($ctx, $crt_path, $key_path) if $crt_path; - - warn "Creating SSL connection (context was '$ctx')...\n" if $trace>2; - $ssl = new($ctx); - goto cleanup if $errs = print_errs('SSL_new') or !$ssl; - - warn "Setting fd (ctx $ctx, con $ssl)...\n" if $trace>2; - set_fd($ssl, fileno(SSLCAT_S)); - goto cleanup if $errs = print_errs('set_fd'); - - warn "Entering SSL negotiation phase...\n" if $trace>2; - - if ($trace>2) { - my $i = 0; - my $p = ''; - my $cipher_list = 'Cipher list: '; - $p=Net::SSLeay::get_cipher_list($ssl,$i); - $cipher_list .= $p if $p; - do { - $i++; - $cipher_list .= ', ' . $p if $p; - $p=Net::SSLeay::get_cipher_list($ssl,$i); - } while $p; - $cipher_list .= '\n'; - warn $cipher_list; - } - - $got = Net::SSLeay::connect($ssl); - warn "SSLeay connect returned $got\n" if $trace>2; - goto cleanup if $errs = print_errs('SSL_connect'); - - my $server_cert = get_peer_certificate($ssl); - print_errs('get_peer_certificate'); - if ($trace>1) { - warn "Cipher `" . get_cipher($ssl) . "'\n"; - print_errs('get_ciper'); - warn dump_peer_certificate($ssl); - } - - ### Connected. Exchange some data (doing repeated tries if necessary). - - warn "sslcat $$: sending " . blength($out_message) . " bytes...\n" - if $trace==3; - warn "sslcat $$: sending `$out_message' (" . blength($out_message) - . " bytes)...\n" if $trace>3; - ($written, $errs) = ssl_write_all($ssl, $out_message); - goto cleanup unless $written; - - sleep $slowly if $slowly; # Closing too soon can abort broken servers - CORE::shutdown SSLCAT_S, 1; # Half close --> No more output, send EOF to server - - warn "waiting for reply...\n" if $trace>2; - ($got, $errs) = ssl_read_all($ssl); - warn "Got " . blength($got) . " bytes.\n" if $trace==3; - warn "Got `$got' (" . blength($got) . " bytes)\n" if $trace>3; - -cleanup: - free ($ssl); - $errs .= print_errs('SSL_free'); -cleanup2: - CTX_free ($ctx); - $errs .= print_errs('CTX_free'); - close SSLCAT_S; - return wantarray ? ($got, $errs, $server_cert) : $got; -} - -# end of Net::SSLeay::sslcat -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcp_read_CRLF.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcp_read_CRLF.al deleted file mode 100644 index 8bdc3c1a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcp_read_CRLF.al +++ /dev/null @@ -1,12 +0,0 @@ -#line 1 "auto/Net/SSLeay/tcp_read_CRLF.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 861 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\tcp_read_CRLF.al)" -sub tcp_read_CRLF { tcp_read_until($CRLF, $_[0]) } - -# ssl_write_CRLF($ssl, $message) writes $message and appends CRLF -# end of Net::SSLeay::tcp_read_CRLF -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcp_read_all.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcp_read_all.al deleted file mode 100644 index 95d5b748..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcp_read_all.al +++ /dev/null @@ -1,27 +0,0 @@ -#line 1 "auto/Net/SSLeay/tcp_read_all.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 561 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\tcp_read_all.al)" -sub tcp_read_all { - my ($how_much) = @_; - $how_much = 2000000000 unless $how_much; - my ($n, $got, $errs); - my $reply = ''; - - my $bsize = 0x10000; - while ($how_much > 0) { - $n = sysread(SSLCAT_S,$got, (($bsize < $how_much) ? $bsize : $how_much)); - warn "Read error: $! ($n,$how_much)" unless defined $n; - last if !$n; # EOF - $how_much -= $n; - debug_read(\$reply, \$got) if $trace>1; - $reply .= $got; - } - return wantarray ? ($reply, $errs) : $reply; -} - -# end of Net::SSLeay::tcp_read_all -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcp_read_until.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcp_read_until.al deleted file mode 100644 index 8a8186cf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcp_read_until.al +++ /dev/null @@ -1,34 +0,0 @@ -#line 1 "auto/Net/SSLeay/tcp_read_until.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 834 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\tcp_read_until.al)" -sub tcp_read_until { - my ($delim, $max_length) = @_; - - # guess the delim string if missing - if ( ! defined $delim ) { - if ( defined $/ && length $/ ) { $delim = $/ } - else { $delim = "\n" } # Note: \n,$/ value depends on the platform - } - my $len_delim = length $delim; - - my ($n,$got); - my $reply = ''; - - while (!defined $max_length || length $reply < $max_length) { - $n = sysread(SSLCAT_S, $got, 1); # one by one - warn "tcp_read_until: $!" if !defined $n; - debug_read(\$reply, \$got) if $trace>1; - last if !$n; # EOF - $reply .= $got; - last if $len_delim - && substr($reply, blength($reply)-$len_delim) eq $delim; - } - return $reply; -} - -# end of Net::SSLeay::tcp_read_until -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcp_write_CRLF.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcp_write_CRLF.al deleted file mode 100644 index 16596c78..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcp_write_CRLF.al +++ /dev/null @@ -1,24 +0,0 @@ -#line 1 "auto/Net/SSLeay/tcp_write_CRLF.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 879 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\tcp_write_CRLF.al)" -sub tcp_write_CRLF { - # the next line uses less memory but might use more network packets - return tcp_write_all($_[0]) + tcp_write_all($CRLF); - - # the next few lines do the same thing at the expense of memory, with - # the chance that it will use less packets, since CRLF is in the original - # message and won't be sent separately. - - #my $data_ref; - #if (ref $_[1]) { $data_ref = $_[1] } - # else { $data_ref = \$_[1] } - #my $message = $$data_ref . $CRLF; - #return tcp_write_all($_[0], \$message); -} - -# end of Net::SSLeay::tcp_write_CRLF -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcp_write_all.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcp_write_all.al deleted file mode 100644 index ad1d5a11..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcp_write_all.al +++ /dev/null @@ -1,37 +0,0 @@ -#line 1 "auto/Net/SSLeay/tcp_write_all.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 720 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\tcp_write_all.al)" -sub tcp_write_all { - my ($data_ref, $errs); - if (ref $_[0]) { - $data_ref = $_[0]; - } else { - $data_ref = \$_[0]; - } - my ($wrote, $written, $to_write) = (0,0, blength($$data_ref)); - my $vm = $trace>2 && $linux_debug ? - (split ' ', `cat /proc/$$/stat`)[22] : 'vm_unknown'; - warn " write_all VM at entry=$vm to_write=$to_write\n" if $trace>2; - while ($to_write) { - warn "partial `$$data_ref'\n" if $trace>3; - $wrote = syswrite(SSLCAT_S, $$data_ref, $to_write, $written); - if (defined $wrote && ($wrote > 0)) { # write_partial can return -1 - $written += $wrote; - $to_write -= $wrote; - } elsif (!defined($wrote)) { - warn "tcp_write_all: $!"; - return (wantarray ? (undef, "$!") : undef); - } - $vm = $trace>2 && $linux_debug ? - (split ' ', `cat /proc/$$/stat`)[22] : 'vm_unknown'; - warn " written so far $wrote:$written bytes (VM=$vm)\n" if $trace>2; - } - return wantarray ? ($written, '') : $written; -} - -# end of Net::SSLeay::tcp_write_all -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcpcat.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcpcat.al deleted file mode 100644 index 5480ea08..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcpcat.al +++ /dev/null @@ -1,38 +0,0 @@ -#line 1 "auto/Net/SSLeay/tcpcat.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1074 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\tcpcat.al)" -sub tcpcat { # address, port, message, $crt, $key --> reply / (reply,errs,cert) - my ($dest_serv, $port, $out_message) = @_; - my ($got, $errs, $written); - - ($got, $errs) = open_proxy_tcp_connection($dest_serv, $port); - return (wantarray ? (undef, $errs) : undef) unless $got; - - ### Connected. Exchange some data (doing repeated tries if necessary). - - warn "tcpcat $$: sending " . blength($out_message) . " bytes...\n" - if $trace==3; - warn "tcpcat $$: sending `$out_message' (" . blength($out_message) - . " bytes)...\n" if $trace>3; - ($written, $errs) = tcp_write_all($out_message); - goto cleanup unless $written; - - sleep $slowly if $slowly; # Closing too soon can abort broken servers - CORE::shutdown SSLCAT_S, 1; # Half close --> No more output, send EOF to server - - warn "waiting for reply...\n" if $trace>2; - ($got, $errs) = tcp_read_all(); - warn "Got " . blength($got) . " bytes.\n" if $trace==3; - warn "Got `$got' (" . blength($got) . " bytes)\n" if $trace>3; - -cleanup: - close SSLCAT_S; - return wantarray ? ($got, $errs) : $got; -} - -# end of Net::SSLeay::tcpcat -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcpxcat.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcpxcat.al deleted file mode 100644 index 554e1082..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/tcpxcat.al +++ /dev/null @@ -1,18 +0,0 @@ -#line 1 "auto/Net/SSLeay/tcpxcat.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 1103 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\tcpxcat.al)" -sub tcpxcat { - my ($usessl, $site, $port, $req, $crt_path, $key_path) = @_; - if ($usessl) { - return sslcat($site, $port, $req, $crt_path, $key_path); - } else { - return tcpcat($site, $port, $req); - } -} - -# end of Net::SSLeay::tcpxcat -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/want_X509_lookup.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/want_X509_lookup.al deleted file mode 100644 index bab66afc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/want_X509_lookup.al +++ /dev/null @@ -1,16 +0,0 @@ -#line 1 "auto/Net/SSLeay/want_X509_lookup.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 465 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\want_X509_lookup.al)" -sub want_X509_lookup { want(shift) == 4 } - -### -### Open TCP stream to given host and port, looking up the details -### from system databases or DNS. -### - -# end of Net::SSLeay::want_X509_lookup -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/want_nothing.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/want_nothing.al deleted file mode 100644 index cd55803d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/want_nothing.al +++ /dev/null @@ -1,12 +0,0 @@ -#line 1 "auto/Net/SSLeay/want_nothing.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 460 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\want_nothing.al)" -### Some methods that are macros in C - -sub want_nothing { want(shift) == 1 } -# end of Net::SSLeay::want_nothing -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/want_read.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/want_read.al deleted file mode 100644 index d7ca5557..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/want_read.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/want_read.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 463 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\want_read.al)" -sub want_read { want(shift) == 2 } -# end of Net::SSLeay::want_read -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/want_write.al b/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/want_write.al deleted file mode 100644 index 431b16be..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/auto/Net/SSLeay/want_write.al +++ /dev/null @@ -1,10 +0,0 @@ -#line 1 "auto/Net/SSLeay/want_write.al" -# NOTE: Derived from blib\lib\Net\SSLeay.pm. -# Changes made here will be lost when autosplit is run again. -# See AutoSplit.pm. -package Net::SSLeay; - -#line 464 "blib\lib\Net\SSLeay.pm (autosplit into blib\lib\auto\Net\SSLeay\want_write.al)" -sub want_write { want(shift) == 3 } -# end of Net::SSLeay::want_write -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/POSIX/POSIX.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/POSIX/POSIX.xs.dll deleted file mode 100644 index f6e451f7..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/POSIX/POSIX.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Params/Util/Util.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Params/Util/Util.xs.dll deleted file mode 100644 index 8896c79a..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Params/Util/Util.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Socket/Socket.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Socket/Socket.xs.dll deleted file mode 100644 index 077e4514..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Socket/Socket.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Socket6/Socket6.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Socket6/Socket6.xs.dll deleted file mode 100644 index bcc1cd54..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Socket6/Socket6.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Storable/Storable.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Storable/Storable.xs.dll deleted file mode 100644 index 8e946aba..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Storable/Storable.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Time/HiRes/HiRes.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Time/HiRes/HiRes.xs.dll deleted file mode 100644 index b3b61f6a..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Time/HiRes/HiRes.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Unicode/Normalize/Normalize.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Unicode/Normalize/Normalize.xs.dll deleted file mode 100644 index c7ce72d5..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Unicode/Normalize/Normalize.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Win32/API/API.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Win32/API/API.xs.dll deleted file mode 100644 index 97553752..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Win32/API/API.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Win32/Console/Console.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Win32/Console/Console.xs.dll deleted file mode 100644 index 8102690b..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Win32/Console/Console.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Win32/Win32.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Win32/Win32.xs.dll deleted file mode 100644 index b0403004..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Win32/Win32.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Win32/WinError/WinError.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Win32/WinError/WinError.xs.dll deleted file mode 100644 index 089416e4..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Win32/WinError/WinError.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Win32API/File/File.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Win32API/File/File.xs.dll deleted file mode 100644 index 178af7d9..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Win32API/File/File.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/Win32API/Registry/Registry.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/Win32API/Registry/Registry.xs.dll deleted file mode 100644 index e401ff47..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/Win32API/Registry/Registry.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/attributes/attributes.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/attributes/attributes.xs.dll deleted file mode 100644 index 4fa0bd3e..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/attributes/attributes.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/mro/mro.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/mro/mro.xs.dll deleted file mode 100644 index 24508215..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/mro/mro.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/re/re.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/re/re.xs.dll deleted file mode 100644 index e18a62f5..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/re/re.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/threads/shared/shared.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/threads/shared/shared.xs.dll deleted file mode 100644 index 242cf4c9..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/threads/shared/shared.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/auto/threads/threads.xs.dll b/software/Slic3r-1.3.0.64bit/lib/auto/threads/threads.xs.dll deleted file mode 100644 index bbf683bc..00000000 Binary files a/software/Slic3r-1.3.0.64bit/lib/auto/threads/threads.xs.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/lib/base.pm b/software/Slic3r-1.3.0.64bit/lib/base.pm deleted file mode 100644 index 13cce5ec..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/base.pm +++ /dev/null @@ -1,198 +0,0 @@ -#line 1 "base.pm" -use 5.008; -package base; - -use strict 'vars'; -use vars qw($VERSION); -$VERSION = '2.23'; -$VERSION =~ tr/_//d; - -# constant.pm is slow -sub SUCCESS () { 1 } - -sub PUBLIC () { 2**0 } -sub PRIVATE () { 2**1 } -sub INHERITED () { 2**2 } -sub PROTECTED () { 2**3 } - - -my $Fattr = \%fields::attr; - -sub has_fields { - my($base) = shift; - my $fglob = ${"$base\::"}{FIELDS}; - return( ($fglob && 'GLOB' eq ref($fglob) && *$fglob{HASH}) ? 1 : 0 ); -} - -sub has_attr { - my($proto) = shift; - my($class) = ref $proto || $proto; - return exists $Fattr->{$class}; -} - -sub get_attr { - $Fattr->{$_[0]} = [1] unless $Fattr->{$_[0]}; - return $Fattr->{$_[0]}; -} - -if ($] < 5.009) { - *get_fields = sub { - # Shut up a possible typo warning. - () = \%{$_[0].'::FIELDS'}; - my $f = \%{$_[0].'::FIELDS'}; - - # should be centralized in fields? perhaps - # fields::mk_FIELDS_be_OK. Peh. As long as %{ $package . '::FIELDS' } - # is used here anyway, it doesn't matter. - bless $f, 'pseudohash' if (ref($f) ne 'pseudohash'); - - return $f; - } -} -else { - *get_fields = sub { - # Shut up a possible typo warning. - () = \%{$_[0].'::FIELDS'}; - return \%{$_[0].'::FIELDS'}; - } -} - -if ($] < 5.008) { - *_module_to_filename = sub { - (my $fn = $_[0]) =~ s!::!/!g; - $fn .= '.pm'; - return $fn; - } -} -else { - *_module_to_filename = sub { - (my $fn = $_[0]) =~ s!::!/!g; - $fn .= '.pm'; - utf8::encode($fn); - return $fn; - } -} - - -sub import { - my $class = shift; - - return SUCCESS unless @_; - - # List of base classes from which we will inherit %FIELDS. - my $fields_base; - - my $inheritor = caller(0); - - my @bases; - foreach my $base (@_) { - if ( $inheritor eq $base ) { - warn "Class '$inheritor' tried to inherit from itself\n"; - } - - next if grep $_->isa($base), ($inheritor, @bases); - - # Following blocks help isolate $SIG{__DIE__} changes - { - my $sigdie; - { - local $SIG{__DIE__}; - my $fn = _module_to_filename($base); - eval { require $fn }; - # Only ignore "Can't locate" errors from our eval require. - # Other fatal errors (syntax etc) must be reported. - # - # changing the check here is fragile - if the check - # here isn't catching every error you want, you should - # probably be using parent.pm, which doesn't try to - # guess whether require is needed or failed, - # see [perl #118561] - die if $@ && $@ !~ /^Can't locate \Q$fn\E .*? at .* line [0-9]+(?:, <[^>]*> (?:line|chunk) [0-9]+)?\.\n\z/s - || $@ =~ /Compilation failed in require at .* line [0-9]+(?:, <[^>]*> (?:line|chunk) [0-9]+)?\.\n\z/; - unless (%{"$base\::"}) { - require Carp; - local $" = " "; - Carp::croak(<[0] = @$battr; - - if( keys %$dfields ) { - warn <<"END"; -$derived is inheriting from $base but already has its own fields! -This will cause problems. Be sure you use base BEFORE declaring fields. -END - - } - - # Iterate through the base's fields adding all the non-private - # ones to the derived class. Hang on to the original attribute - # (Public, Private, etc...) and add Inherited. - # This is all too complicated to do efficiently with add_fields(). - while (my($k,$v) = each %$bfields) { - my $fno; - if ($fno = $dfields->{$k} and $fno != $v) { - require Carp; - Carp::croak ("Inherited fields can't override existing fields"); - } - - if( $battr->[$v] & PRIVATE ) { - $dattr->[$v] = PRIVATE | INHERITED; - } - else { - $dattr->[$v] = INHERITED | $battr->[$v]; - $dfields->{$k} = $v; - } - } - - foreach my $idx (1..$#{$battr}) { - next if defined $dattr->[$idx]; - $dattr->[$idx] = $battr->[$idx] & INHERITED; - } -} - - -1; - -__END__ - -#line 278 diff --git a/software/Slic3r-1.3.0.64bit/lib/bytes.pm b/software/Slic3r-1.3.0.64bit/lib/bytes.pm deleted file mode 100644 index b182de52..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/bytes.pm +++ /dev/null @@ -1,33 +0,0 @@ -#line 1 "bytes.pm" -package bytes; - -our $VERSION = '1.05'; - -$bytes::hint_bits = 0x00000008; - -sub import { - $^H |= $bytes::hint_bits; -} - -sub unimport { - $^H &= ~$bytes::hint_bits; -} - -sub AUTOLOAD { - require "bytes_heavy.pl"; - goto &$AUTOLOAD if defined &$AUTOLOAD; - require Carp; - Carp::croak("Undefined subroutine $AUTOLOAD called"); -} - -sub length (_); -sub chr (_); -sub ord (_); -sub substr ($$;$$); -sub index ($$;$); -sub rindex ($$;$); - -1; -__END__ - -#line 127 diff --git a/software/Slic3r-1.3.0.64bit/lib/bytes_heavy.pl b/software/Slic3r-1.3.0.64bit/lib/bytes_heavy.pl deleted file mode 100644 index 680c66ce..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/bytes_heavy.pl +++ /dev/null @@ -1,40 +0,0 @@ -package bytes; - -sub length (_) { - BEGIN { bytes::import() } - return CORE::length($_[0]); -} - -sub substr ($$;$$) { - BEGIN { bytes::import() } - return - @_ == 2 ? CORE::substr($_[0], $_[1]) : - @_ == 3 ? CORE::substr($_[0], $_[1], $_[2]) : - CORE::substr($_[0], $_[1], $_[2], $_[3]) ; -} - -sub ord (_) { - BEGIN { bytes::import() } - return CORE::ord($_[0]); -} - -sub chr (_) { - BEGIN { bytes::import() } - return CORE::chr($_[0]); -} - -sub index ($$;$) { - BEGIN { bytes::import() } - return - @_ == 2 ? CORE::index($_[0], $_[1]) : - CORE::index($_[0], $_[1], $_[2]) ; -} - -sub rindex ($$;$) { - BEGIN { bytes::import() } - return - @_ == 2 ? CORE::rindex($_[0], $_[1]) : - CORE::rindex($_[0], $_[1], $_[2]) ; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/constant.pm b/software/Slic3r-1.3.0.64bit/lib/constant.pm deleted file mode 100644 index d88d04e0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/constant.pm +++ /dev/null @@ -1,207 +0,0 @@ -#line 1 "constant.pm" -package constant; -use 5.008; -use strict; -use warnings::register; - -our $VERSION = '1.33'; -our %declared; - -#======================================================================= - -# Some names are evil choices. -my %keywords = map +($_, 1), qw{ BEGIN INIT CHECK END DESTROY AUTOLOAD }; -$keywords{UNITCHECK}++ if $] > 5.009; - -my %forced_into_main = map +($_, 1), - qw{ STDIN STDOUT STDERR ARGV ARGVOUT ENV INC SIG }; - -my %forbidden = (%keywords, %forced_into_main); - -my $normal_constant_name = qr/^_?[^\W_0-9]\w*\z/; -my $tolerable = qr/^[A-Za-z_]\w*\z/; -my $boolean = qr/^[01]?\z/; - -BEGIN { - # We'd like to do use constant _CAN_PCS => $] > 5.009002 - # but that's a bit tricky before we load the constant module :-) - # By doing this, we save several run time checks for *every* call - # to import. - my $const = $] > 5.009002; - my $downgrade = $] < 5.015004; # && $] >= 5.008 - my $constarray = exists &_make_const; - if ($const) { - Internals::SvREADONLY($const, 1); - Internals::SvREADONLY($downgrade, 1); - $constant::{_CAN_PCS} = \$const; - $constant::{_DOWNGRADE} = \$downgrade; - $constant::{_CAN_PCS_FOR_ARRAY} = \$constarray; - } - else { - no strict 'refs'; - *{"_CAN_PCS"} = sub () {$const}; - *{"_DOWNGRADE"} = sub () { $downgrade }; - *{"_CAN_PCS_FOR_ARRAY"} = sub () { $constarray }; - } -} - -#======================================================================= -# import() - import symbols into user's namespace -# -# What we actually do is define a function in the caller's namespace -# which returns the value. The function we create will normally -# be inlined as a constant, thereby avoiding further sub calling -# overhead. -#======================================================================= -sub import { - my $class = shift; - return unless @_; # Ignore 'use constant;' - my $constants; - my $multiple = ref $_[0]; - my $caller = caller; - my $flush_mro; - my $symtab; - - if (_CAN_PCS) { - no strict 'refs'; - $symtab = \%{$caller . '::'}; - }; - - if ( $multiple ) { - if (ref $_[0] ne 'HASH') { - require Carp; - Carp::croak("Invalid reference type '".ref(shift)."' not 'HASH'"); - } - $constants = shift; - } else { - unless (defined $_[0]) { - require Carp; - Carp::croak("Can't use undef as constant name"); - } - $constants->{+shift} = undef; - } - - foreach my $name ( keys %$constants ) { - my $pkg; - my $symtab = $symtab; - my $orig_name = $name; - if ($name =~ s/(.*)(?:::|')(?=.)//s) { - $pkg = $1; - if (_CAN_PCS && $pkg ne $caller) { - no strict 'refs'; - $symtab = \%{$pkg . '::'}; - } - } - else { - $pkg = $caller; - } - - # Normal constant name - if ($name =~ $normal_constant_name and !$forbidden{$name}) { - # Everything is okay - - # Name forced into main, but we're not in main. Fatal. - } elsif ($forced_into_main{$name} and $pkg ne 'main') { - require Carp; - Carp::croak("Constant name '$name' is forced into main::"); - - # Starts with double underscore. Fatal. - } elsif ($name =~ /^__/) { - require Carp; - Carp::croak("Constant name '$name' begins with '__'"); - - # Maybe the name is tolerable - } elsif ($name =~ $tolerable) { - # Then we'll warn only if you've asked for warnings - if (warnings::enabled()) { - if ($keywords{$name}) { - warnings::warn("Constant name '$name' is a Perl keyword"); - } elsif ($forced_into_main{$name}) { - warnings::warn("Constant name '$name' is " . - "forced into package main::"); - } - } - - # Looks like a boolean - # use constant FRED == fred; - } elsif ($name =~ $boolean) { - require Carp; - if (@_) { - Carp::croak("Constant name '$name' is invalid"); - } else { - Carp::croak("Constant name looks like boolean value"); - } - - } else { - # Must have bad characters - require Carp; - Carp::croak("Constant name '$name' has invalid characters"); - } - - { - no strict 'refs'; - my $full_name = "${pkg}::$name"; - $declared{$full_name}++; - if ($multiple || @_ == 1) { - my $scalar = $multiple ? $constants->{$orig_name} : $_[0]; - - if (_DOWNGRADE) { # for 5.8 to 5.14 - # Work around perl bug #31991: Sub names (actually glob - # names in general) ignore the UTF8 flag. So we have to - # turn it off to get the "right" symbol table entry. - utf8::is_utf8 $name and utf8::encode $name; - } - - # The constant serves to optimise this entire block out on - # 5.8 and earlier. - if (_CAN_PCS) { - # Use a reference as a proxy for a constant subroutine. - # If this is not a glob yet, it saves space. If it is - # a glob, we must still create it this way to get the - # right internal flags set, as constants are distinct - # from subroutines created with sub(){...}. - # The check in Perl_ck_rvconst knows that inlinable - # constants from cv_const_sv are read only. So we have to: - Internals::SvREADONLY($scalar, 1); - if (!exists $symtab->{$name}) { - $symtab->{$name} = \$scalar; - ++$flush_mro->{$pkg}; - } - else { - local $constant::{_dummy} = \$scalar; - *$full_name = \&{"_dummy"}; - } - } else { - *$full_name = sub () { $scalar }; - } - } elsif (@_) { - my @list = @_; - if (_CAN_PCS_FOR_ARRAY) { - _make_const($list[$_]) for 0..$#list; - _make_const(@list); - if (!exists $symtab->{$name}) { - $symtab->{$name} = \@list; - $flush_mro->{$pkg}++; - } - else { - local $constant::{_dummy} = \@list; - *$full_name = \&{"_dummy"}; - } - } - else { *$full_name = sub () { @list }; } - } else { - *$full_name = sub () { }; - } - } - } - # Flush the cache exactly once if we make any direct symbol table changes. - if (_CAN_PCS && $flush_mro) { - mro::method_changed_in($_) for keys %$flush_mro; - } -} - -1; - -__END__ - -#line 451 diff --git a/software/Slic3r-1.3.0.64bit/lib/feature.pm b/software/Slic3r-1.3.0.64bit/lib/feature.pm deleted file mode 100644 index 6a10a580..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/feature.pm +++ /dev/null @@ -1,148 +0,0 @@ -#line 1 "feature.pm" -# -*- buffer-read-only: t -*- -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by regen/feature.pl. -# Any changes made here will be lost! - -package feature; - -our $VERSION = '1.42'; - -our %feature = ( - fc => 'feature_fc', - say => 'feature_say', - state => 'feature_state', - switch => 'feature_switch', - bitwise => 'feature_bitwise', - evalbytes => 'feature_evalbytes', - postderef => 'feature_postderef', - array_base => 'feature_arybase', - signatures => 'feature_signatures', - current_sub => 'feature___SUB__', - refaliasing => 'feature_refaliasing', - lexical_subs => 'feature_lexsubs', - postderef_qq => 'feature_postderef_qq', - unicode_eval => 'feature_unieval', - unicode_strings => 'feature_unicode', -); - -our %feature_bundle = ( - "5.10" => [qw(array_base say state switch)], - "5.11" => [qw(array_base say state switch unicode_strings)], - "5.15" => [qw(current_sub evalbytes fc say state switch unicode_eval unicode_strings)], - "5.23" => [qw(current_sub evalbytes fc postderef_qq say state switch unicode_eval unicode_strings)], - "all" => [qw(array_base bitwise current_sub evalbytes fc lexical_subs postderef postderef_qq refaliasing say signatures state switch unicode_eval unicode_strings)], - "default" => [qw(array_base)], -); - -$feature_bundle{"5.12"} = $feature_bundle{"5.11"}; -$feature_bundle{"5.13"} = $feature_bundle{"5.11"}; -$feature_bundle{"5.14"} = $feature_bundle{"5.11"}; -$feature_bundle{"5.16"} = $feature_bundle{"5.15"}; -$feature_bundle{"5.17"} = $feature_bundle{"5.15"}; -$feature_bundle{"5.18"} = $feature_bundle{"5.15"}; -$feature_bundle{"5.19"} = $feature_bundle{"5.15"}; -$feature_bundle{"5.20"} = $feature_bundle{"5.15"}; -$feature_bundle{"5.21"} = $feature_bundle{"5.15"}; -$feature_bundle{"5.22"} = $feature_bundle{"5.15"}; -$feature_bundle{"5.24"} = $feature_bundle{"5.23"}; -$feature_bundle{"5.9.5"} = $feature_bundle{"5.10"}; - -our $hint_shift = 26; -our $hint_mask = 0x1c000000; -our @hint_bundles = qw( default 5.10 5.11 5.15 5.23 ); - -# This gets set (for now) in $^H as well as in %^H, -# for runtime speed of the uc/lc/ucfirst/lcfirst functions. -# See HINT_UNI_8_BIT in perl.h. -our $hint_uni8bit = 0x00000800; - -# TODO: -# - think about versioned features (use feature switch => 2) - -#line 437 - -sub import { - shift; - - if (!@_) { - croak("No features specified"); - } - - __common(1, @_); -} - -sub unimport { - shift; - - # A bare C should reset to the default bundle - if (!@_) { - $^H &= ~($hint_uni8bit|$hint_mask); - return; - } - - __common(0, @_); -} - - -sub __common { - my $import = shift; - my $bundle_number = $^H & $hint_mask; - my $features = $bundle_number != $hint_mask - && $feature_bundle{$hint_bundles[$bundle_number >> $hint_shift]}; - if ($features) { - # Features are enabled implicitly via bundle hints. - # Delete any keys that may be left over from last time. - delete @^H{ values(%feature) }; - $^H |= $hint_mask; - for (@$features) { - $^H{$feature{$_}} = 1; - $^H |= $hint_uni8bit if $_ eq 'unicode_strings'; - } - } - while (@_) { - my $name = shift; - if (substr($name, 0, 1) eq ":") { - my $v = substr($name, 1); - if (!exists $feature_bundle{$v}) { - $v =~ s/^([0-9]+)\.([0-9]+).[0-9]+$/$1.$2/; - if (!exists $feature_bundle{$v}) { - unknown_feature_bundle(substr($name, 1)); - } - } - unshift @_, @{$feature_bundle{$v}}; - next; - } - if (!exists $feature{$name}) { - unknown_feature($name); - } - if ($import) { - $^H{$feature{$name}} = 1; - $^H |= $hint_uni8bit if $name eq 'unicode_strings'; - } else { - delete $^H{$feature{$name}}; - $^H &= ~ $hint_uni8bit if $name eq 'unicode_strings'; - } - } -} - -sub unknown_feature { - my $feature = shift; - croak(sprintf('Feature "%s" is not supported by Perl %vd', - $feature, $^V)); -} - -sub unknown_feature_bundle { - my $feature = shift; - croak(sprintf('Feature bundle "%s" is not supported by Perl %vd', - $feature, $^V)); -} - -sub croak { - require Carp; - Carp::croak(@_); -} - -1; - -# ex: set ro: diff --git a/software/Slic3r-1.3.0.64bit/lib/integer.pm b/software/Slic3r-1.3.0.64bit/lib/integer.pm deleted file mode 100644 index 50247051..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/integer.pm +++ /dev/null @@ -1,18 +0,0 @@ -#line 1 "integer.pm" -package integer; - -our $VERSION = '1.01'; - -#line 82 - -$integer::hint_bits = 0x1; - -sub import { - $^H |= $integer::hint_bits; -} - -sub unimport { - $^H &= ~$integer::hint_bits; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/lib.pm b/software/Slic3r-1.3.0.64bit/lib/lib.pm deleted file mode 100644 index 7cb874da..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/lib.pm +++ /dev/null @@ -1,89 +0,0 @@ -#line 1 "lib.pm" -package lib; - -# THIS FILE IS AUTOMATICALLY GENERATED FROM lib_pm.PL. -# ANY CHANGES TO THIS FILE WILL BE OVERWRITTEN BY THE NEXT PERL BUILD. - -use Config; - -use strict; - -my $archname = $Config{archname}; -my $version = $Config{version}; -my @inc_version_list = reverse split / /, $Config{inc_version_list}; - - -our @ORIG_INC = @INC; # take a handy copy of 'original' value -our $VERSION = '0.63'; - -sub import { - shift; - - my %names; - foreach (reverse @_) { - my $path = $_; # we'll be modifying it, so break the alias - if ($path eq '') { - require Carp; - Carp::carp("Empty compile time value given to use lib"); - } - - if ($path !~ /\.par$/i && -e $path && ! -d _) { - require Carp; - Carp::carp("Parameter to use lib must be directory, not file"); - } - unshift(@INC, $path); - # Add any previous version directories we found at configure time - foreach my $incver (@inc_version_list) - { - my $dir = "$path/$incver"; - unshift(@INC, $dir) if -d $dir; - } - # Put a corresponding archlib directory in front of $path if it - # looks like $path has an archlib directory below it. - my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir) - = _get_dirs($path); - unshift(@INC, $arch_dir) if -d $arch_auto_dir; - unshift(@INC, $version_dir) if -d $version_dir; - unshift(@INC, $version_arch_dir) if -d $version_arch_dir; - } - - # remove trailing duplicates - @INC = grep { ++$names{$_} == 1 } @INC; - return; -} - - -sub unimport { - shift; - - my %names; - foreach my $path (@_) { - my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir) - = _get_dirs($path); - ++$names{$path}; - ++$names{$arch_dir} if -d $arch_auto_dir; - ++$names{$version_dir} if -d $version_dir; - ++$names{$version_arch_dir} if -d $version_arch_dir; - } - - # Remove ALL instances of each named directory. - @INC = grep { !exists $names{$_} } @INC; - return; -} - -sub _get_dirs { - my($dir) = @_; - my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir); - - $arch_auto_dir = "$dir/$archname/auto"; - $arch_dir = "$dir/$archname"; - $version_dir = "$dir/$version"; - $version_arch_dir = "$dir/$version/$archname"; - - return($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir); -} - -1; -__END__ - -#line 212 diff --git a/software/Slic3r-1.3.0.64bit/lib/local/lib.pm b/software/Slic3r-1.3.0.64bit/lib/local/lib.pm deleted file mode 100644 index 948f0c76..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/local/lib.pm +++ /dev/null @@ -1,754 +0,0 @@ -#line 1 "local/lib.pm" -package local::lib; -use 5.006; -BEGIN { - if ($ENV{RELEASE_TESTING}) { - require strict; - strict->import; - require warnings; - warnings->import; - } -} -use Config (); - -our $VERSION = '2.000024'; -$VERSION = eval $VERSION; - -BEGIN { - *_WIN32 = ($^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'symbian') - ? sub(){1} : sub(){0}; - # punt on these systems - *_USE_FSPEC = ($^O eq 'MacOS' || $^O eq 'VMS' || $INC{'File/Spec.pm'}) - ? sub(){1} : sub(){0}; -} -my $_archname = $Config::Config{archname}; -my $_version = $Config::Config{version}; -my @_inc_version_list = reverse split / /, $Config::Config{inc_version_list}; -my $_path_sep = $Config::Config{path_sep}; - -our $_DIR_JOIN = _WIN32 ? '\\' : '/'; -our $_DIR_SPLIT = (_WIN32 || $^O eq 'cygwin') ? qr{[\\/]} - : qr{/}; -our $_ROOT = _WIN32 ? do { - my $UNC = qr{[\\/]{2}[^\\/]+[\\/][^\\/]+}; - qr{^(?:$UNC|[A-Za-z]:|)$_DIR_SPLIT}; -} : qr{^/}; -our $_PERL; - -sub _perl { - if (!$_PERL) { - # untaint and validate - ($_PERL, my $exe) = $^X =~ /((?:.*$_DIR_SPLIT)?(.+))/; - $_PERL = 'perl' - if $exe !~ /perl/; - if (_is_abs($_PERL)) { - } - elsif (-x $Config::Config{perlpath}) { - $_PERL = $Config::Config{perlpath}; - } - elsif ($_PERL =~ $_DIR_SPLIT && -x $_PERL) { - $_PERL = _rel2abs($_PERL); - } - else { - ($_PERL) = - map { /(.*)/ } - grep { -x $_ } - map { ($_, _WIN32 ? ("$_.exe") : ()) } - map { join($_DIR_JOIN, $_, $_PERL) } - split /\Q$_path_sep\E/, $ENV{PATH}; - } - } - $_PERL; -} - -sub _cwd { - if (my $cwd - = defined &Cwd::sys_cwd ? \&Cwd::sys_cwd - : defined &Cwd::cwd ? \&Cwd::cwd - : undef - ) { - no warnings 'redefine'; - *_cwd = $cwd; - goto &$cwd; - } - my $drive = shift; - return Win32::Cwd() - if _WIN32 && defined &Win32::Cwd && !$drive; - local @ENV{qw(PATH IFS CDPATH ENV BASH_ENV)}; - my $cmd = $drive ? "eval { Cwd::getdcwd(q($drive)) }" - : 'getcwd'; - my $perl = _perl; - my $cwd = `"$perl" -MCwd -le "print $cmd"`; - chomp $cwd; - if (!length $cwd && $drive) { - $cwd = $drive; - } - $cwd =~ s/$_DIR_SPLIT?$/$_DIR_JOIN/; - $cwd; -} - -sub _catdir { - if (_USE_FSPEC) { - require File::Spec; - File::Spec->catdir(@_); - } - else { - my $dir = join($_DIR_JOIN, @_); - $dir =~ s{($_DIR_SPLIT)(?:\.?$_DIR_SPLIT)+}{$1}g; - $dir; - } -} - -sub _is_abs { - if (_USE_FSPEC) { - require File::Spec; - File::Spec->file_name_is_absolute($_[0]); - } - else { - $_[0] =~ $_ROOT; - } -} - -sub _rel2abs { - my ($dir, $base) = @_; - return $dir - if _is_abs($dir); - - $base = _WIN32 && $dir =~ s/^([A-Za-z]:)// ? _cwd("$1") - : $base ? _rel2abs($base) - : _cwd; - return _catdir($base, $dir); -} - -our $_DEVNULL; -sub _devnull { - return $_DEVNULL ||= - _USE_FSPEC ? (require File::Spec, File::Spec->devnull) - : _WIN32 ? 'nul' - : $^O eq 'os2' ? '/dev/nul' - : '/dev/null'; -} - -sub import { - my ($class, @args) = @_; - if ($0 eq '-') { - push @args, @ARGV; - require Cwd; - } - - my @steps; - my %opts; - my %attr; - my $shelltype; - - while (@args) { - my $arg = shift @args; - # check for lethal dash first to stop processing before causing problems - # the fancy dash is U+2212 or \xE2\x88\x92 - if ($arg =~ /\xE2\x88\x92/) { - die <<'DEATH'; -WHOA THERE! It looks like you've got some fancy dashes in your commandline! -These are *not* the traditional -- dashes that software recognizes. You -probably got these by copy-pasting from the perldoc for this module as -rendered by a UTF8-capable formatter. This most typically happens on an OS X -terminal, but can happen elsewhere too. Please try again after replacing the -dashes with normal minus signs. -DEATH - } - elsif ($arg eq '--self-contained') { - die <<'DEATH'; -FATAL: The local::lib --self-contained flag has never worked reliably and the -original author, Mark Stosberg, was unable or unwilling to maintain it. As -such, this flag has been removed from the local::lib codebase in order to -prevent misunderstandings and potentially broken builds. The local::lib authors -recommend that you look at the lib::core::only module shipped with this -distribution in order to create a more robust environment that is equivalent to -what --self-contained provided (although quite possibly not what you originally -thought it provided due to the poor quality of the documentation, for which we -apologise). -DEATH - } - elsif( $arg =~ /^--deactivate(?:=(.*))?$/ ) { - my $path = defined $1 ? $1 : shift @args; - push @steps, ['deactivate', $path]; - } - elsif ( $arg eq '--deactivate-all' ) { - push @steps, ['deactivate_all']; - } - elsif ( $arg =~ /^--shelltype(?:=(.*))?$/ ) { - $shelltype = defined $1 ? $1 : shift @args; - } - elsif ( $arg eq '--no-create' ) { - $opts{no_create} = 1; - } - elsif ( $arg eq '--quiet' ) { - $attr{quiet} = 1; - } - elsif ( $arg =~ /^--/ ) { - die "Unknown import argument: $arg"; - } - else { - push @steps, ['activate', $arg, \%opts]; - } - } - if (!@steps) { - push @steps, ['activate', undef, \%opts]; - } - - my $self = $class->new(%attr); - - for (@steps) { - my ($method, @args) = @$_; - $self = $self->$method(@args); - } - - if ($0 eq '-') { - print $self->environment_vars_string($shelltype); - exit 0; - } - else { - $self->setup_local_lib; - } -} - -sub new { - my $class = shift; - bless {@_}, $class; -} - -sub clone { - my $self = shift; - bless {%$self, @_}, ref $self; -} - -sub inc { $_[0]->{inc} ||= \@INC } -sub libs { $_[0]->{libs} ||= [ \'PERL5LIB' ] } -sub bins { $_[0]->{bins} ||= [ \'PATH' ] } -sub roots { $_[0]->{roots} ||= [ \'PERL_LOCAL_LIB_ROOT' ] } -sub extra { $_[0]->{extra} ||= {} } -sub quiet { $_[0]->{quiet} } - -sub _as_list { - my $list = shift; - grep length, map { - !(ref $_ && ref $_ eq 'SCALAR') ? $_ : ( - defined $ENV{$$_} ? split(/\Q$_path_sep/, $ENV{$$_}) - : () - ) - } ref $list ? @$list : $list; -} -sub _remove_from { - my ($list, @remove) = @_; - return @$list - if !@remove; - my %remove = map { $_ => 1 } @remove; - grep !$remove{$_}, _as_list($list); -} - -my @_lib_subdirs = ( - [$_version, $_archname], - [$_version], - [$_archname], - (map [$_], @_inc_version_list), - [], -); - -sub install_base_bin_path { - my ($class, $path) = @_; - return _catdir($path, 'bin'); -} -sub install_base_perl_path { - my ($class, $path) = @_; - return _catdir($path, 'lib', 'perl5'); -} -sub install_base_arch_path { - my ($class, $path) = @_; - _catdir($class->install_base_perl_path($path), $_archname); -} - -sub lib_paths_for { - my ($class, $path) = @_; - my $base = $class->install_base_perl_path($path); - return map { _catdir($base, @$_) } @_lib_subdirs; -} - -sub _mm_escape_path { - my $path = shift; - $path =~ s/\\/\\\\/g; - if ($path =~ s/ /\\ /g) { - $path = qq{"$path"}; - } - return $path; -} - -sub _mb_escape_path { - my $path = shift; - $path =~ s/\\/\\\\/g; - return qq{"$path"}; -} - -sub installer_options_for { - my ($class, $path) = @_; - return ( - PERL_MM_OPT => - defined $path ? "INSTALL_BASE="._mm_escape_path($path) : undef, - PERL_MB_OPT => - defined $path ? "--install_base "._mb_escape_path($path) : undef, - ); -} - -sub active_paths { - my ($self) = @_; - $self = ref $self ? $self : $self->new; - - return grep { - # screen out entries that aren't actually reflected in @INC - my $active_ll = $self->install_base_perl_path($_); - grep { $_ eq $active_ll } @{$self->inc}; - } _as_list($self->roots); -} - - -sub deactivate { - my ($self, $path) = @_; - $self = $self->new unless ref $self; - $path = $self->resolve_path($path); - $path = $self->normalize_path($path); - - my @active_lls = $self->active_paths; - - if (!grep { $_ eq $path } @active_lls) { - warn "Tried to deactivate inactive local::lib '$path'\n"; - return $self; - } - - my %args = ( - bins => [ _remove_from($self->bins, - $self->install_base_bin_path($path)) ], - libs => [ _remove_from($self->libs, - $self->install_base_perl_path($path)) ], - inc => [ _remove_from($self->inc, - $self->lib_paths_for($path)) ], - roots => [ _remove_from($self->roots, $path) ], - ); - - $args{extra} = { $self->installer_options_for($args{roots}[0]) }; - - $self->clone(%args); -} - -sub deactivate_all { - my ($self) = @_; - $self = $self->new unless ref $self; - - my @active_lls = $self->active_paths; - - my %args; - if (@active_lls) { - %args = ( - bins => [ _remove_from($self->bins, - map $self->install_base_bin_path($_), @active_lls) ], - libs => [ _remove_from($self->libs, - map $self->install_base_perl_path($_), @active_lls) ], - inc => [ _remove_from($self->inc, - map $self->lib_paths_for($_), @active_lls) ], - roots => [ _remove_from($self->roots, @active_lls) ], - ); - } - - $args{extra} = { $self->installer_options_for(undef) }; - - $self->clone(%args); -} - -sub activate { - my ($self, $path, $opts) = @_; - $opts ||= {}; - $self = $self->new unless ref $self; - $path = $self->resolve_path($path); - $self->ensure_dir_structure_for($path, { quiet => $self->quiet }) - unless $opts->{no_create}; - - $path = $self->normalize_path($path); - - my @active_lls = $self->active_paths; - - if (grep { $_ eq $path } @active_lls[1 .. $#active_lls]) { - $self = $self->deactivate($path); - } - - my %args; - if ($opts->{always} || !@active_lls || $active_lls[0] ne $path) { - %args = ( - bins => [ $self->install_base_bin_path($path), @{$self->bins} ], - libs => [ $self->install_base_perl_path($path), @{$self->libs} ], - inc => [ $self->lib_paths_for($path), @{$self->inc} ], - roots => [ $path, @{$self->roots} ], - ); - } - - $args{extra} = { $self->installer_options_for($path) }; - - $self->clone(%args); -} - -sub normalize_path { - my ($self, $path) = @_; - $path = ( Win32::GetShortPathName($path) || $path ) - if $^O eq 'MSWin32'; - return $path; -} - -sub build_environment_vars_for { - my $self = $_[0]->new->activate($_[1], { always => 1 }); - $self->build_environment_vars; -} -sub build_activate_environment_vars_for { - my $self = $_[0]->new->activate($_[1], { always => 1 }); - $self->build_environment_vars; -} -sub build_deactivate_environment_vars_for { - my $self = $_[0]->new->deactivate($_[1]); - $self->build_environment_vars; -} -sub build_deact_all_environment_vars_for { - my $self = $_[0]->new->deactivate_all; - $self->build_environment_vars; -} -sub build_environment_vars { - my $self = shift; - ( - PATH => join($_path_sep, _as_list($self->bins)), - PERL5LIB => join($_path_sep, _as_list($self->libs)), - PERL_LOCAL_LIB_ROOT => join($_path_sep, _as_list($self->roots)), - %{$self->extra}, - ); -} - -sub setup_local_lib_for { - my $self = $_[0]->new->activate($_[1]); - $self->setup_local_lib; -} - -sub setup_local_lib { - my $self = shift; - - # if Carp is already loaded, ensure Carp::Heavy is also loaded, to avoid - # $VERSION mismatch errors (Carp::Heavy loads Carp, so we do not need to - # check in the other direction) - require Carp::Heavy if $INC{'Carp.pm'}; - - $self->setup_env_hash; - @INC = @{$self->inc}; -} - -sub setup_env_hash_for { - my $self = $_[0]->new->activate($_[1]); - $self->setup_env_hash; -} -sub setup_env_hash { - my $self = shift; - my %env = $self->build_environment_vars; - for my $key (keys %env) { - if (defined $env{$key}) { - $ENV{$key} = $env{$key}; - } - else { - delete $ENV{$key}; - } - } -} - -sub print_environment_vars_for { - print $_[0]->environment_vars_string_for(@_[1..$#_]); -} - -sub environment_vars_string_for { - my $self = $_[0]->new->activate($_[1], { always => 1}); - $self->environment_vars_string; -} -sub environment_vars_string { - my ($self, $shelltype) = @_; - - $shelltype ||= $self->guess_shelltype; - - my $extra = $self->extra; - my @envs = ( - PATH => $self->bins, - PERL5LIB => $self->libs, - PERL_LOCAL_LIB_ROOT => $self->roots, - map { $_ => $extra->{$_} } sort keys %$extra, - ); - $self->_build_env_string($shelltype, \@envs); -} - -sub _build_env_string { - my ($self, $shelltype, $envs) = @_; - my @envs = @$envs; - - my $build_method = "build_${shelltype}_env_declaration"; - - my $out = ''; - while (@envs) { - my ($name, $value) = (shift(@envs), shift(@envs)); - if ( - ref $value - && @$value == 1 - && ref $value->[0] - && ref $value->[0] eq 'SCALAR' - && ${$value->[0]} eq $name) { - next; - } - $out .= $self->$build_method($name, $value); - } - my $wrap_method = "wrap_${shelltype}_output"; - if ($self->can($wrap_method)) { - return $self->$wrap_method($out); - } - return $out; -} - -sub build_bourne_env_declaration { - my ($class, $name, $args) = @_; - my $value = $class->_interpolate($args, '${%s:-}', qr/["\\\$!`]/, '\\%s'); - - if (!defined $value) { - return qq{unset $name;\n}; - } - - $value =~ s/(^|\G|$_path_sep)\$\{$name:-\}$_path_sep/$1\${$name}\${$name:+$_path_sep}/g; - $value =~ s/$_path_sep\$\{$name:-\}$/\${$name:+$_path_sep\${$name}}/; - - qq{${name}="$value"; export ${name};\n} -} - -sub build_csh_env_declaration { - my ($class, $name, $args) = @_; - my ($value, @vars) = $class->_interpolate($args, '${%s}', qr/["\$]/, '"\\%s"'); - if (!defined $value) { - return qq{unsetenv $name;\n}; - } - - my $out = ''; - for my $var (@vars) { - $out .= qq{if ! \$?$name setenv $name '';\n}; - } - - my $value_without = $value; - if ($value_without =~ s/(?:^|$_path_sep)\$\{$name\}(?:$_path_sep|$)//g) { - $out .= qq{if "\${$name}" != '' setenv $name "$value";\n}; - $out .= qq{if "\${$name}" == '' }; - } - $out .= qq{setenv $name "$value_without";\n}; - return $out; -} - -sub build_cmd_env_declaration { - my ($class, $name, $args) = @_; - my $value = $class->_interpolate($args, '%%%s%%', qr(%), '%s'); - if (!$value) { - return qq{\@set $name=\n}; - } - - my $out = ''; - my $value_without = $value; - if ($value_without =~ s/(?:^|$_path_sep)%$name%(?:$_path_sep|$)//g) { - $out .= qq{\@if not "%$name%"=="" set "$name=$value"\n}; - $out .= qq{\@if "%$name%"=="" }; - } - $out .= qq{\@set "$name=$value_without"\n}; - return $out; -} - -sub build_powershell_env_declaration { - my ($class, $name, $args) = @_; - my $value = $class->_interpolate($args, '$env:%s', qr/["\$]/, '`%s'); - - if (!$value) { - return qq{Remove-Item -ErrorAction 0 Env:\\$name;\n}; - } - - my $maybe_path_sep = qq{\$(if("\$env:$name"-eq""){""}else{"$_path_sep"})}; - $value =~ s/(^|\G|$_path_sep)\$env:$name$_path_sep/$1\$env:$name"+$maybe_path_sep+"/g; - $value =~ s/$_path_sep\$env:$name$/"+$maybe_path_sep+\$env:$name+"/; - - qq{\$env:$name = \$("$value");\n}; -} -sub wrap_powershell_output { - my ($class, $out) = @_; - return $out || " \n"; -} - -sub build_fish_env_declaration { - my ($class, $name, $args) = @_; - my $value = $class->_interpolate($args, '$%s', qr/[\\"'$ ]/, '\\%s'); - if (!defined $value) { - return qq{set -e $name;\n}; - } - - # fish has special handling for PATH, CDPATH, and MANPATH. They are always - # treated as arrays, and joined with ; when storing the environment. Other - # env vars can be arrays, but will be joined without a separator. We only - # really care about PATH, but might as well make this routine more general. - if ($name =~ /^(?:CD|MAN)?PATH$/) { - $value =~ s/$_path_sep/ /g; - my $silent = $name =~ /^(?:CD)?PATH$/ ? " ^"._devnull : ''; - return qq{set -x $name $value$silent;\n}; - } - - my $out = ''; - my $value_without = $value; - if ($value_without =~ s/(?:^|$_path_sep)\$$name(?:$_path_sep|$)//g) { - $out .= qq{set -q $name; and set -x $name $value;\n}; - $out .= qq{set -q $name; or }; - } - $out .= qq{set -x $name $value_without;\n}; - $out; -} - -sub _interpolate { - my ($class, $args, $var_pat, $escape, $escape_pat) = @_; - return - unless defined $args; - my @args = ref $args ? @$args : $args; - return - unless @args; - my @vars = map { $$_ } grep { ref $_ eq 'SCALAR' } @args; - my $string = join $_path_sep, map { - ref $_ eq 'SCALAR' ? sprintf($var_pat, $$_) : do { - s/($escape)/sprintf($escape_pat, $1)/ge; $_; - }; - } @args; - return wantarray ? ($string, \@vars) : $string; -} - -sub pipeline; - -sub pipeline { - my @methods = @_; - my $last = pop(@methods); - if (@methods) { - \sub { - my ($obj, @args) = @_; - $obj->${pipeline @methods}( - $obj->$last(@args) - ); - }; - } else { - \sub { - shift->$last(@_); - }; - } -} - -sub resolve_path { - my ($class, $path) = @_; - - $path = $class->${pipeline qw( - resolve_relative_path - resolve_home_path - resolve_empty_path - )}($path); - - $path; -} - -sub resolve_empty_path { - my ($class, $path) = @_; - if (defined $path) { - $path; - } else { - '~/perl5'; - } -} - -sub resolve_home_path { - my ($class, $path) = @_; - $path =~ /^~([^\/]*)/ or return $path; - my $user = $1; - my $homedir = do { - if (! length($user) && defined $ENV{HOME}) { - $ENV{HOME}; - } - else { - require File::Glob; - File::Glob::bsd_glob("~$user", File::Glob::GLOB_TILDE()); - } - }; - unless (defined $homedir) { - require Carp; require Carp::Heavy; - Carp::croak( - "Couldn't resolve homedir for " - .(defined $user ? $user : 'current user') - ); - } - $path =~ s/^~[^\/]*/$homedir/; - $path; -} - -sub resolve_relative_path { - my ($class, $path) = @_; - _rel2abs($path); -} - -sub ensure_dir_structure_for { - my ($class, $path, $opts) = @_; - $opts ||= {}; - my @dirs; - foreach my $dir ( - $class->lib_paths_for($path), - $class->install_base_bin_path($path), - ) { - my $d = $dir; - while (!-d $d) { - push @dirs, $d; - require File::Basename; - $d = File::Basename::dirname($d); - } - } - - warn "Attempting to create directory ${path}\n" - if !$opts->{quiet} && @dirs; - - my %seen; - foreach my $dir (reverse @dirs) { - next - if $seen{$dir}++; - - mkdir $dir - or -d $dir - or die "Unable to create $dir: $!" - } - return; -} - -sub guess_shelltype { - my $shellbin - = defined $ENV{SHELL} && length $ENV{SHELL} - ? ($ENV{SHELL} =~ /([\w.]+)$/)[-1] - : ( $^O eq 'MSWin32' && exists $ENV{'!EXITCODE'} ) - ? 'bash' - : ( $^O eq 'MSWin32' && $ENV{PROMPT} && $ENV{COMSPEC} ) - ? ($ENV{COMSPEC} =~ /([\w.]+)$/)[-1] - : ( $^O eq 'MSWin32' && !$ENV{PROMPT} ) - ? 'powershell.exe' - : 'sh'; - - for ($shellbin) { - return - /csh$/ ? 'csh' - : /fish$/ ? 'fish' - : /command(?:\.com)?$/i ? 'cmd' - : /cmd(?:\.exe)?$/i ? 'cmd' - : /4nt(?:\.exe)?$/i ? 'cmd' - : /powershell(?:\.exe)?$/i ? 'powershell' - : 'bourne'; - } -} - -1; -__END__ - - - -#line 1515 diff --git a/software/Slic3r-1.3.0.64bit/lib/locale.pm b/software/Slic3r-1.3.0.64bit/lib/locale.pm deleted file mode 100644 index a90b49c2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/locale.pm +++ /dev/null @@ -1,105 +0,0 @@ -#line 1 "locale.pm" -package locale; - -our $VERSION = '1.09'; -use Config; - -$Carp::Internal{ (__PACKAGE__) } = 1; - -#line 48 - -# A separate bit is used for each of the two forms of the pragma, to save -# having to look at %^H for the normal case of a plain 'use locale' without an -# argument. - -$locale::hint_bits = 0x4; -$locale::partial_hint_bits = 0x10; # If pragma has an argument - -# The pseudo-category :characters consists of 2 real ones; but it also is -# given its own number, -1, because in the complement form it also has the -# side effect of "use feature 'unicode_strings'" - -sub import { - shift; # should be 'locale'; not checked - - $^H{locale} = 0 unless defined $^H{locale}; - if (! @_) { # If no parameter, use the plain form that changes all categories - $^H |= $locale::hint_bits; - - } - else { - my @categories = ( qw(:ctype :collate :messages - :numeric :monetary :time) ); - for (my $i = 0; $i < @_; $i++) { - my $arg = $_[$i]; - $complement = $arg =~ s/ : ( ! | not_ ) /:/x; - if (! grep { $arg eq $_ } @categories, ":characters") { - require Carp; - Carp::croak("Unknown parameter '$_[$i]' to 'use locale'"); - } - - if ($complement) { - if ($i != 0 || $i < @_ - 1) { - require Carp; - Carp::croak("Only one argument to 'use locale' allowed" - . "if is $complement"); - } - - if ($arg eq ':characters') { - push @_, grep { $_ ne ':ctype' && $_ ne ':collate' } - @categories; - # We add 1 to the category number; This category number - # is -1 - $^H{locale} |= (1 << 0); - } - else { - push @_, grep { $_ ne $arg } @categories; - } - next; - } - elsif ($arg eq ':characters') { - push @_, ':ctype', ':collate'; - next; - } - - $^H |= $locale::partial_hint_bits; - - # This form of the pragma overrides the other - $^H &= ~$locale::hint_bits; - - $arg =~ s/^://; - - eval { require POSIX; import POSIX 'locale_h'; }; - - # Map our names to the ones defined by POSIX - my $LC = "LC_" . uc($arg); - - my $bit = eval "&POSIX::$LC"; - if (defined $bit) { # XXX Should we warn that this category isn't - # supported on this platform, or make it - # always be the C locale? - - # Verify our assumption. - if (! ($bit >= 0 && $bit < 31)) { - require Carp; - Carp::croak("Cannot have ':$arg' parameter to 'use locale'" - . " on this platform. Use the 'perlbug' utility" - . " to report this problem, or send email to" - . " 'perlbug\@perl.org'. $LC=$bit"); - } - - # 1 is added so that the pseudo-category :characters, which is - # -1, comes out 0. - $^H{locale} |= 1 << ($bit + 1); - } - } - } - -} - -sub unimport { - $^H &= ~($locale::hint_bits|$locale::partial_hint_bits); - $^H{locale} = 0; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/mro.pm b/software/Slic3r-1.3.0.64bit/lib/mro.pm deleted file mode 100644 index 0164ffa4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/mro.pm +++ /dev/null @@ -1,48 +0,0 @@ -#line 1 "mro.pm" -# mro.pm -# -# Copyright (c) 2007 Brandon L Black -# Copyright (c) 2008,2009 Larry Wall and others -# -# You may distribute under the terms of either the GNU General Public -# License or the Artistic License, as specified in the README file. -# -package mro; -use strict; -use warnings; - -# mro.pm versions < 1.00 reserved for MRO::Compat -# for partial back-compat to 5.[68].x -our $VERSION = '1.18'; - -sub import { - mro::set_mro(scalar(caller), $_[1]) if $_[1]; -} - -package # hide me from PAUSE - next; - -sub can { mro::_nextcan($_[0], 0) } - -sub method { - my $method = mro::_nextcan($_[0], 1); - goto &$method; -} - -package # hide me from PAUSE - maybe::next; - -sub method { - my $method = mro::_nextcan($_[0], 0); - goto &$method if defined $method; - return; -} - -require XSLoader; -XSLoader::load('mro'); - -1; - -__END__ - -#line 354 diff --git a/software/Slic3r-1.3.0.64bit/lib/overload.pm b/software/Slic3r-1.3.0.64bit/lib/overload.pm deleted file mode 100644 index 7d9fd9f0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/overload.pm +++ /dev/null @@ -1,186 +0,0 @@ -#line 1 "overload.pm" -package overload; - -our $VERSION = '1.26'; - -%ops = ( - with_assign => "+ - * / % ** << >> x .", - assign => "+= -= *= /= %= **= <<= >>= x= .=", - num_comparison => "< <= > >= == !=", - '3way_comparison' => "<=> cmp", - str_comparison => "lt le gt ge eq ne", - binary => '& &= | |= ^ ^= &. &.= |. |.= ^. ^.=', - unary => "neg ! ~ ~.", - mutators => '++ --', - func => "atan2 cos sin exp abs log sqrt int", - conversion => 'bool "" 0+ qr', - iterators => '<>', - filetest => "-X", - dereferencing => '${} @{} %{} &{} *{}', - matching => '~~', - special => 'nomethod fallback =', -); - -my %ops_seen; -for $category (keys %ops) { - $ops_seen{$_}++ for (split /\s+/, $ops{$category}); -} - -sub nil {} - -sub OVERLOAD { - $package = shift; - my %arg = @_; - my $sub; - *{$package . "::(("} = \&nil; # Make it findable via fetchmethod. - for (keys %arg) { - if ($_ eq 'fallback') { - for my $sym (*{$package . "::()"}) { - *$sym = \&nil; # Make it findable via fetchmethod. - $$sym = $arg{$_}; - } - } else { - warnings::warnif("overload arg '$_' is invalid") - unless $ops_seen{$_}; - $sub = $arg{$_}; - if (not ref $sub) { - $ {$package . "::(" . $_} = $sub; - $sub = \&nil; - } - #print STDERR "Setting '$ {'package'}::\cO$_' to \\&'$sub'.\n"; - *{$package . "::(" . $_} = \&{ $sub }; - } - } -} - -sub import { - $package = (caller())[0]; - # *{$package . "::OVERLOAD"} = \&OVERLOAD; - shift; - $package->overload::OVERLOAD(@_); -} - -sub unimport { - $package = (caller())[0]; - shift; - *{$package . "::(("} = \&nil; - for (@_) { - warnings::warnif("overload arg '$_' is invalid") - unless $ops_seen{$_}; - delete $ {$package . "::"}{$_ eq 'fallback' ? '()' : "(" .$_}; - } -} - -sub Overloaded { - my $package = shift; - $package = ref $package if ref $package; - mycan ($package, '()') || mycan ($package, '(('); -} - -sub ov_method { - my $globref = shift; - return undef unless $globref; - my $sub = \&{*$globref}; - no overloading; - return $sub if $sub != \&nil; - return shift->can($ {*$globref}); -} - -sub OverloadedStringify { - my $package = shift; - $package = ref $package if ref $package; - #$package->can('(""') - ov_method mycan($package, '(""'), $package - or ov_method mycan($package, '(0+'), $package - or ov_method mycan($package, '(bool'), $package - or ov_method mycan($package, '(nomethod'), $package; -} - -sub Method { - my $package = shift; - if(ref $package) { - local $@; - local $!; - require Scalar::Util; - $package = Scalar::Util::blessed($package); - return undef if !defined $package; - } - #my $meth = $package->can('(' . shift); - ov_method mycan($package, '(' . shift), $package; - #return $meth if $meth ne \&nil; - #return $ {*{$meth}}; -} - -sub AddrRef { - no overloading; - "$_[0]"; -} - -*StrVal = *AddrRef; - -sub mycan { # Real can would leave stubs. - my ($package, $meth) = @_; - - local $@; - local $!; - require mro; - - my $mro = mro::get_linear_isa($package); - foreach my $p (@$mro) { - my $fqmeth = $p . q{::} . $meth; - return \*{$fqmeth} if defined &{$fqmeth}; - } - - return undef; -} - -%constants = ( - 'integer' => 0x1000, # HINT_NEW_INTEGER - 'float' => 0x2000, # HINT_NEW_FLOAT - 'binary' => 0x4000, # HINT_NEW_BINARY - 'q' => 0x8000, # HINT_NEW_STRING - 'qr' => 0x10000, # HINT_NEW_RE - ); - -use warnings::register; -sub constant { - # Arguments: what, sub - while (@_) { - if (@_ == 1) { - warnings::warnif ("Odd number of arguments for overload::constant"); - last; - } - elsif (!exists $constants {$_ [0]}) { - warnings::warnif ("'$_[0]' is not an overloadable type"); - } - elsif (!ref $_ [1] || "$_[1]" !~ /(^|=)CODE\(0x[0-9a-f]+\)$/) { - # Can't use C above as code references can be - # blessed, and C would return the package the ref is blessed into. - if (warnings::enabled) { - $_ [1] = "undef" unless defined $_ [1]; - warnings::warn ("'$_[1]' is not a code reference"); - } - } - else { - $^H{$_[0]} = $_[1]; - $^H |= $constants{$_[0]}; - } - shift, shift; - } -} - -sub remove_constant { - # Arguments: what, sub - while (@_) { - delete $^H{$_[0]}; - $^H &= ~ $constants{$_[0]}; - shift, shift; - } -} - -1; - -__END__ - -#line 1695 - diff --git a/software/Slic3r-1.3.0.64bit/lib/overload/numbers.pm b/software/Slic3r-1.3.0.64bit/lib/overload/numbers.pm deleted file mode 100644 index 04ca7ae4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/overload/numbers.pm +++ /dev/null @@ -1,177 +0,0 @@ -#line 1 "overload/numbers.pm" -# -*- buffer-read-only: t -*- -# -# lib/overload/numbers.pm -# -# Copyright (C) 2008 by Larry Wall and others -# -# You may distribute under the terms of either the GNU General Public -# License or the Artistic License, as specified in the README file. -# -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by regen/overload.pl. -# Any changes made here will be lost! - -package overload::numbers; - -our @names = qw# - () - (${} - (@{} - (%{} - (*{} - (&{} - (++ - (-- - (bool - (0+ - ("" - (! - (= - (abs - (neg - (<> - (int - (< - (<= - (> - (>= - (== - (!= - (lt - (le - (gt - (ge - (eq - (ne - (nomethod - (+ - (+= - (- - (-= - (* - (*= - (/ - (/= - (% - (%= - (** - (**= - (<< - (<<= - (>> - (>>= - (& - (&= - (&. - (&.= - (| - (|= - (|. - (|.= - (^ - (^= - (^. - (^.= - (<=> - (cmp - (~ - (~. - (atan2 - (cos - (sin - (exp - (log - (sqrt - (x - (x= - (. - (.= - (~~ - (-X - (qr -#; - -our @enums = qw# - fallback - to_sv - to_av - to_hv - to_gv - to_cv - inc - dec - bool_ - numer - string - not - copy - abs - neg - iter - int - lt - le - gt - ge - eq - ne - slt - sle - sgt - sge - seq - sne - nomethod - add - add_ass - subtr - subtr_ass - mult - mult_ass - div - div_ass - modulo - modulo_ass - pow - pow_ass - lshift - lshift_ass - rshift - rshift_ass - band - band_ass - sband - sband_ass - bor - bor_ass - sbor - sbor_ass - bxor - bxor_ass - sbxor - sbxor_ass - ncmp - scmp - compl - scompl - atan2 - cos - sin - exp - log - sqrt - repeat - repeat_ass - concat - concat_ass - smart - ftest - regexp -#; - -{ my $i = 0; our %names = map { $_ => $i++ } @names } - -{ my $i = 0; our %enums = map { $_ => $i++ } @enums } - -# ex: set ro: diff --git a/software/Slic3r-1.3.0.64bit/lib/overloading.pm b/software/Slic3r-1.3.0.64bit/lib/overloading.pm deleted file mode 100644 index 9dddf0b1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/overloading.pm +++ /dev/null @@ -1,55 +0,0 @@ -#line 1 "overloading.pm" -package overloading; -use warnings; - -our $VERSION = '0.02'; - -my $HINT_NO_AMAGIC = 0x01000000; # see perl.h - -require 5.010001; - -sub _ops_to_nums { - require overload::numbers; - - map { exists $overload::numbers::names{"($_"} - ? $overload::numbers::names{"($_"} - : do { require Carp; Carp::croak("'$_' is not a valid overload") } - } @_; -} - -sub import { - my ( $class, @ops ) = @_; - - if ( @ops ) { - if ( $^H{overloading} ) { - vec($^H{overloading} , $_, 1) = 0 for _ops_to_nums(@ops); - } - - if ( $^H{overloading} !~ /[^\0]/ ) { - delete $^H{overloading}; - $^H &= ~$HINT_NO_AMAGIC; - } - } else { - delete $^H{overloading}; - $^H &= ~$HINT_NO_AMAGIC; - } -} - -sub unimport { - my ( $class, @ops ) = @_; - - if ( exists $^H{overloading} or not $^H & $HINT_NO_AMAGIC ) { - if ( @ops ) { - vec($^H{overloading} ||= '', $_, 1) = 1 for _ops_to_nums(@ops); - } else { - delete $^H{overloading}; - } - } - - $^H |= $HINT_NO_AMAGIC; -} - -1; -__END__ - -#line 100 diff --git a/software/Slic3r-1.3.0.64bit/lib/parent.pm b/software/Slic3r-1.3.0.64bit/lib/parent.pm deleted file mode 100644 index 70b329ec..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/parent.pm +++ /dev/null @@ -1,33 +0,0 @@ -#line 1 "parent.pm" -package parent; -use strict; -use vars qw($VERSION); -$VERSION = '0.236'; - -sub import { - my $class = shift; - - my $inheritor = caller(0); - - if ( @_ and $_[0] eq '-norequire' ) { - shift @_; - } else { - for ( my @filename = @_ ) { - s{::|'}{/}g; - require "$_.pm"; # dies if the file is not found - } - } - - { - no strict 'refs'; - push @{"$inheritor\::ISA"}, @_; # dies if a loop is detected - }; -}; - -1; - -__END__ - - - -#line 120 diff --git a/software/Slic3r-1.3.0.64bit/lib/re.pm b/software/Slic3r-1.3.0.64bit/lib/re.pm deleted file mode 100644 index fe75d822..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/re.pm +++ /dev/null @@ -1,288 +0,0 @@ -#line 1 "re.pm" -package re; - -# pragma for controlling the regexp engine -use strict; -use warnings; - -our $VERSION = "0.32"; -our @ISA = qw(Exporter); -our @EXPORT_OK = ('regmust', - qw(is_regexp regexp_pattern - regname regnames regnames_count)); -our %EXPORT_OK = map { $_ => 1 } @EXPORT_OK; - -my %bitmask = ( - taint => 0x00100000, # HINT_RE_TAINT - eval => 0x00200000, # HINT_RE_EVAL -); - -my $flags_hint = 0x02000000; # HINT_RE_FLAGS -my $PMMOD_SHIFT = 0; -my %reflags = ( - m => 1 << ($PMMOD_SHIFT + 0), - s => 1 << ($PMMOD_SHIFT + 1), - i => 1 << ($PMMOD_SHIFT + 2), - x => 1 << ($PMMOD_SHIFT + 3), - n => 1 << ($PMMOD_SHIFT + 5), - p => 1 << ($PMMOD_SHIFT + 6), - strict => 1 << ($PMMOD_SHIFT + 10), -# special cases: - d => 0, - l => 1, - u => 2, - a => 3, - aa => 4, -); - -sub setcolor { - eval { # Ignore errors - require Term::Cap; - - my $terminal = Tgetent Term::Cap ({OSPEED => 9600}); # Avoid warning. - my $props = $ENV{PERL_RE_TC} || 'md,me,so,se,us,ue'; - my @props = split /,/, $props; - my $colors = join "\t", map {$terminal->Tputs($_,1)} @props; - - $colors =~ s/\0//g; - $ENV{PERL_RE_COLORS} = $colors; - }; - if ($@) { - $ENV{PERL_RE_COLORS} ||= qq'\t\t> <\t> <\t\t'; - } - -} - -my %flags = ( - COMPILE => 0x0000FF, - PARSE => 0x000001, - OPTIMISE => 0x000002, - TRIEC => 0x000004, - DUMP => 0x000008, - FLAGS => 0x000010, - TEST => 0x000020, - - EXECUTE => 0x00FF00, - INTUIT => 0x000100, - MATCH => 0x000200, - TRIEE => 0x000400, - - EXTRA => 0xFF0000, - TRIEM => 0x010000, - OFFSETS => 0x020000, - OFFSETSDBG => 0x040000, - STATE => 0x080000, - OPTIMISEM => 0x100000, - STACK => 0x280000, - BUFFERS => 0x400000, - GPOS => 0x800000, -); -$flags{ALL} = -1 & ~($flags{OFFSETS}|$flags{OFFSETSDBG}|$flags{BUFFERS}); -$flags{All} = $flags{all} = $flags{DUMP} | $flags{EXECUTE}; -$flags{Extra} = $flags{EXECUTE} | $flags{COMPILE} | $flags{GPOS}; -$flags{More} = $flags{MORE} = $flags{All} | $flags{TRIEC} | $flags{TRIEM} | $flags{STATE}; -$flags{State} = $flags{DUMP} | $flags{EXECUTE} | $flags{STATE}; -$flags{TRIE} = $flags{DUMP} | $flags{EXECUTE} | $flags{TRIEC}; - -if (defined &DynaLoader::boot_DynaLoader) { - require XSLoader; - XSLoader::load(); -} -# else we're miniperl -# We need to work for miniperl, because the XS toolchain uses Text::Wrap, which -# uses re 'taint'. - -sub _load_unload { - my ($on)= @_; - if ($on) { - # We call install() every time, as if we didn't, we wouldn't - # "see" any changes to the color environment var since - # the last time it was called. - - # install() returns an integer, which if casted properly - # in C resolves to a structure containing the regexp - # hooks. Setting it to a random integer will guarantee - # segfaults. - $^H{regcomp} = install(); - } else { - delete $^H{regcomp}; - } -} - -sub bits { - my $on = shift; - my $bits = 0; - my $turning_all_off = ! @_ && ! $on; - my %seen; # Has flag already been seen? - if ($turning_all_off) { - - # Pretend were called with certain parameters, which are best dealt - # with that way. - push @_, keys %bitmask; # taint and eval - push @_, 'strict'; - } - - # Process each subpragma parameter - ARG: - foreach my $idx (0..$#_){ - my $s=$_[$idx]; - if ($s eq 'Debug' or $s eq 'Debugcolor') { - setcolor() if $s =~/color/i; - ${^RE_DEBUG_FLAGS} = 0 unless defined ${^RE_DEBUG_FLAGS}; - for my $idx ($idx+1..$#_) { - if ($flags{$_[$idx]}) { - if ($on) { - ${^RE_DEBUG_FLAGS} |= $flags{$_[$idx]}; - } else { - ${^RE_DEBUG_FLAGS} &= ~ $flags{$_[$idx]}; - } - } else { - require Carp; - Carp::carp("Unknown \"re\" Debug flag '$_[$idx]', possible flags: ", - join(", ",sort keys %flags ) ); - } - } - _load_unload($on ? 1 : ${^RE_DEBUG_FLAGS}); - last; - } elsif ($s eq 'debug' or $s eq 'debugcolor') { - setcolor() if $s =~/color/i; - _load_unload($on); - last; - } elsif (exists $bitmask{$s}) { - $bits |= $bitmask{$s}; - } elsif ($EXPORT_OK{$s}) { - require Exporter; - re->export_to_level(2, 're', $s); - } elsif ($s eq 'strict') { - if ($on) { - $^H{reflags} |= $reflags{$s}; - warnings::warnif('experimental::re_strict', - "\"use re 'strict'\" is experimental"); - - # Turn on warnings if not already done. - if (! warnings::enabled('regexp')) { - require warnings; - warnings->import('regexp'); - $^H{re_strict} = 1; - } - } - else { - $^H{reflags} &= ~$reflags{$s} if $^H{reflags}; - - # Turn off warnings if we turned them on. - warnings->unimport('regexp') if $^H{re_strict}; - } - if ($^H{reflags}) { - $^H |= $flags_hint; - } - else { - $^H &= ~$flags_hint; - } - } elsif ($s =~ s/^\///) { - my $reflags = $^H{reflags} || 0; - my $seen_charset; - while ($s =~ m/( . )/gx) { - local $_ = $1; - if (/[adul]/) { - # The 'a' may be repeated; hide this from the rest of the - # code by counting and getting rid of all of them, then - # changing to 'aa' if there is a repeat. - if ($_ eq 'a') { - my $sav_pos = pos $s; - my $a_count = $s =~ s/a//g; - pos $s = $sav_pos - 1; # -1 because got rid of the 'a' - if ($a_count > 2) { - require Carp; - Carp::carp( - qq 'The "a" flag may only appear a maximum of twice' - ); - } - elsif ($a_count == 2) { - $_ = 'aa'; - } - } - if ($on) { - if ($seen_charset) { - require Carp; - if ($seen_charset ne $_) { - Carp::carp( - qq 'The "$seen_charset" and "$_" flags ' - .qq 'are exclusive' - ); - } - else { - Carp::carp( - qq 'The "$seen_charset" flag may not appear ' - .qq 'twice' - ); - } - } - $^H{reflags_charset} = $reflags{$_}; - $seen_charset = $_; - } - else { - delete $^H{reflags_charset} - if defined $^H{reflags_charset} - && $^H{reflags_charset} == $reflags{$_}; - } - } elsif (exists $reflags{$_}) { - $seen{$_}++; - $on - ? $reflags |= $reflags{$_} - : ($reflags &= ~$reflags{$_}); - } else { - require Carp; - Carp::carp( - qq'Unknown regular expression flag "$_"' - ); - next ARG; - } - } - ($^H{reflags} = $reflags or defined $^H{reflags_charset}) - ? $^H |= $flags_hint - : ($^H &= ~$flags_hint); - } else { - require Carp; - Carp::carp("Unknown \"re\" subpragma '$s' (known ones are: ", - join(', ', map {qq('$_')} 'debug', 'debugcolor', sort keys %bitmask), - ")"); - } - } - if (exists $seen{'x'} && $seen{'x'} > 1 - && (warnings::enabled("deprecated") - || warnings::enabled("regexp"))) - { - my $message = "Having more than one /x regexp modifier is deprecated"; - if (warnings::enabled("deprecated")) { - warnings::warn("deprecated", $message); - } - else { - warnings::warn("regexp", $message); - } - } - - if ($turning_all_off) { - _load_unload(0); - $^H{reflags} = 0; - $^H{reflags_charset} = 0; - $^H &= ~$flags_hint; - } - - $bits; -} - -sub import { - shift; - $^H |= bits(1, @_); -} - -sub unimport { - shift; - $^H &= ~ bits(0, @_); -} - -1; - -__END__ - -#line 733 diff --git a/software/Slic3r-1.3.0.64bit/lib/strict.pm b/software/Slic3r-1.3.0.64bit/lib/strict.pm deleted file mode 100644 index e698a5b0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/strict.pm +++ /dev/null @@ -1,81 +0,0 @@ -#line 1 "strict.pm" -package strict; - -$strict::VERSION = "1.11"; - -my ( %bitmask, %explicit_bitmask ); - -BEGIN { - # Verify that we're called correctly so that strictures will work. - # Can't use Carp, since Carp uses us! - # see also warnings.pm. - die sprintf "Incorrect use of pragma '%s' at %s line %d.\n", __PACKAGE__, +(caller)[1,2] - if __FILE__ !~ ( '(?x) \b '.__PACKAGE__.' \.pmc? \z' ) - && __FILE__ =~ ( '(?x) \b (?i:'.__PACKAGE__.') \.pmc? \z' ); - - %bitmask = ( - refs => 0x00000002, - subs => 0x00000200, - vars => 0x00000400, - ); - - %explicit_bitmask = ( - refs => 0x00000020, - subs => 0x00000040, - vars => 0x00000080, - ); - - my $bits = 0; - $bits |= $_ for values %bitmask; - - my $inline_all_bits = $bits; - *all_bits = sub () { $inline_all_bits }; - - $bits = 0; - $bits |= $_ for values %explicit_bitmask; - - my $inline_all_explicit_bits = $bits; - *all_explicit_bits = sub () { $inline_all_explicit_bits }; -} - -sub bits { - my $bits = 0; - my @wrong; - foreach my $s (@_) { - if (exists $bitmask{$s}) { - $^H |= $explicit_bitmask{$s}; - - $bits |= $bitmask{$s}; - } - else { - push @wrong, $s; - } - } - if (@wrong) { - require Carp; - Carp::croak("Unknown 'strict' tag(s) '@wrong'"); - } - $bits; -} - -sub import { - shift; - $^H |= @_ ? &bits : all_bits | all_explicit_bits; -} - -sub unimport { - shift; - - if (@_) { - $^H &= ~&bits; - } - else { - $^H &= ~all_bits; - $^H |= all_explicit_bits; - } -} - -1; -__END__ - -#line 185 diff --git a/software/Slic3r-1.3.0.64bit/lib/threads.pm b/software/Slic3r-1.3.0.64bit/lib/threads.pm deleted file mode 100644 index 850836f2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/threads.pm +++ /dev/null @@ -1,132 +0,0 @@ -#line 1 "threads.pm" -package threads; - -use 5.008; - -use strict; -use warnings; - -our $VERSION = '2.15'; -my $XS_VERSION = $VERSION; -$VERSION = eval $VERSION; - -# Verify this Perl supports threads -require Config; -if (! $Config::Config{useithreads}) { - die("This Perl not built to support threads\n"); -} - -# Complain if 'threads' is loaded after 'threads::shared' -if ($threads::shared::threads_shared) { - warn <<'_MSG_'; -Warning, threads::shared has already been loaded. To -enable shared variables, 'use threads' must be called -before threads::shared or any module that uses it. -_MSG_ -} - -# Declare that we have been loaded -$threads::threads = 1; - -# Load the XS code -require XSLoader; -XSLoader::load('threads', $XS_VERSION); - - -### Export ### - -sub import -{ - my $class = shift; # Not used - - # Exported subroutines - my @EXPORT = qw(async); - - # Handle args - while (my $sym = shift) { - if ($sym =~ /^(?:stack|exit)/i) { - if (defined(my $arg = shift)) { - if ($sym =~ /^stack/i) { - threads->set_stack_size($arg); - } else { - $threads::thread_exit_only = $arg =~ /^thread/i; - } - } else { - require Carp; - Carp::croak("threads: Missing argument for option: $sym"); - } - - } elsif ($sym =~ /^str/i) { - import overload ('""' => \&tid); - - } elsif ($sym =~ /^(?::all|yield)$/) { - push(@EXPORT, qw(yield)); - - } else { - require Carp; - Carp::croak("threads: Unknown import option: $sym"); - } - } - - # Export subroutine names - my $caller = caller(); - foreach my $sym (@EXPORT) { - no strict 'refs'; - *{$caller.'::'.$sym} = \&{$sym}; - } - - # Set stack size via environment variable - if (exists($ENV{'PERL5_ITHREADS_STACK_SIZE'})) { - threads->set_stack_size($ENV{'PERL5_ITHREADS_STACK_SIZE'}); - } -} - - -### Methods, etc. ### - -# Exit from a thread (only) -sub exit -{ - my ($class, $status) = @_; - if (! defined($status)) { - $status = 0; - } - - # Class method only - if (ref($class)) { - require Carp; - Carp::croak('Usage: threads->exit(status)'); - } - - $class->set_thread_exit_only(1); - CORE::exit($status); -} - -# 'Constant' args for threads->list() -sub threads::all { } -sub threads::running { 1 } -sub threads::joinable { 0 } - -# 'new' is an alias for 'create' -*new = \&create; - -# 'async' is a function alias for the 'threads->create()' method -sub async (&;@) -{ - unshift(@_, 'threads'); - # Use "goto" trick to avoid pad problems from 5.8.1 (fixed in 5.8.2) - goto &create; -} - -# Thread object equality checking -use overload ( - '==' => \&equal, - '!=' => sub { ! equal(@_) }, - 'fallback' => 1 -); - -1; - -__END__ - -#line 1147 diff --git a/software/Slic3r-1.3.0.64bit/lib/threads/shared.pm b/software/Slic3r-1.3.0.64bit/lib/threads/shared.pm deleted file mode 100644 index bd88ca13..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/threads/shared.pm +++ /dev/null @@ -1,193 +0,0 @@ -#line 1 "threads/shared.pm" -package threads::shared; - -use 5.008; - -use strict; -use warnings; - -use Scalar::Util qw(reftype refaddr blessed); - -our $VERSION = '1.55'; # Please update the pod, too. -my $XS_VERSION = $VERSION; -$VERSION = eval $VERSION; - -# Declare that we have been loaded -$threads::shared::threads_shared = 1; - -# Method of complaint about things we can't clone -$threads::shared::clone_warn = undef; - -# Load the XS code, if applicable -if ($threads::threads) { - require XSLoader; - XSLoader::load('threads::shared', $XS_VERSION); - - *is_shared = \&_id; - -} else { - # String eval is generally evil, but we don't want these subs to - # exist at all if 'threads' is not loaded successfully. - # Vivifying them conditionally this way saves on average about 4K - # of memory per thread. - eval <<'_MARKER_'; - sub share (\[$@%]) { return $_[0] } - sub is_shared (\[$@%]) { undef } - sub cond_wait (\[$@%];\[$@%]) { undef } - sub cond_timedwait (\[$@%]$;\[$@%]) { undef } - sub cond_signal (\[$@%]) { undef } - sub cond_broadcast (\[$@%]) { undef } -_MARKER_ -} - - -### Export ### - -sub import -{ - # Exported subroutines - my @EXPORT = qw(share is_shared cond_wait cond_timedwait - cond_signal cond_broadcast shared_clone); - if ($threads::threads) { - push(@EXPORT, 'bless'); - } - - # Export subroutine names - my $caller = caller(); - foreach my $sym (@EXPORT) { - no strict 'refs'; - *{$caller.'::'.$sym} = \&{$sym}; - } -} - - -# Predeclarations for internal functions -my ($make_shared); - - -### Methods, etc. ### - -sub threads::shared::tie::SPLICE -{ - require Carp; - Carp::croak('Splice not implemented for shared arrays'); -} - - -# Create a thread-shared clone of a complex data structure or object -sub shared_clone -{ - if (@_ != 1) { - require Carp; - Carp::croak('Usage: shared_clone(REF)'); - } - - return $make_shared->(shift, {}); -} - - -### Internal Functions ### - -# Used by shared_clone() to recursively clone -# a complex data structure or object -$make_shared = sub { - my ($item, $cloned) = @_; - - # Just return the item if: - # 1. Not a ref; - # 2. Already shared; or - # 3. Not running 'threads'. - return $item if (! ref($item) || is_shared($item) || ! $threads::threads); - - # Check for previously cloned references - # (this takes care of circular refs as well) - my $addr = refaddr($item); - if (exists($cloned->{$addr})) { - # Return the already existing clone - return $cloned->{$addr}; - } - - # Make copies of array, hash and scalar refs and refs of refs - my $copy; - my $ref_type = reftype($item); - - # Copy an array ref - if ($ref_type eq 'ARRAY') { - # Make empty shared array ref - $copy = &share([]); - # Add to clone checking hash - $cloned->{$addr} = $copy; - # Recursively copy and add contents - push(@$copy, map { $make_shared->($_, $cloned) } @$item); - } - - # Copy a hash ref - elsif ($ref_type eq 'HASH') { - # Make empty shared hash ref - $copy = &share({}); - # Add to clone checking hash - $cloned->{$addr} = $copy; - # Recursively copy and add contents - foreach my $key (keys(%{$item})) { - $copy->{$key} = $make_shared->($item->{$key}, $cloned); - } - } - - # Copy a scalar ref - elsif ($ref_type eq 'SCALAR') { - $copy = \do{ my $scalar = $$item; }; - share($copy); - # Add to clone checking hash - $cloned->{$addr} = $copy; - } - - # Copy of a ref of a ref - elsif ($ref_type eq 'REF') { - # Special handling for $x = \$x - if ($addr == refaddr($$item)) { - $copy = \$copy; - share($copy); - $cloned->{$addr} = $copy; - } else { - my $tmp; - $copy = \$tmp; - share($copy); - # Add to clone checking hash - $cloned->{$addr} = $copy; - # Recursively copy and add contents - $tmp = $make_shared->($$item, $cloned); - } - - } else { - require Carp; - if (! defined($threads::shared::clone_warn)) { - Carp::croak("Unsupported ref type: ", $ref_type); - } elsif ($threads::shared::clone_warn) { - Carp::carp("Unsupported ref type: ", $ref_type); - } - return undef; - } - - # If input item is an object, then bless the copy into the same class - if (my $class = blessed($item)) { - bless($copy, $class); - } - - # Clone READONLY flag - if ($ref_type eq 'SCALAR') { - if (Internals::SvREADONLY($$item)) { - Internals::SvREADONLY($$copy, 1) if ($] >= 5.008003); - } - } - if (Internals::SvREADONLY($item)) { - Internals::SvREADONLY($copy, 1) if ($] >= 5.008003); - } - - return $copy; -}; - -1; - -__END__ - -#line 680 diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/Blocks.txt b/software/Slic3r-1.3.0.64bit/lib/unicore/Blocks.txt deleted file mode 100644 index 0a4a5807..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/Blocks.txt +++ /dev/null @@ -1,298 +0,0 @@ -# Blocks-8.0.0.txt -# Date: 2014-11-10, 23:04:00 GMT [KW] -# -# Unicode Character Database -# Copyright (c) 1991-2014 Unicode, Inc. -# For terms of use, see http://www.unicode.org/terms_of_use.html -# For documentation, see http://www.unicode.org/reports/tr44/ -# -# Format: -# Start Code..End Code; Block Name - -# ================================================ - -# Note: When comparing block names, casing, whitespace, hyphens, -# and underbars are ignored. -# For example, "Latin Extended-A" and "latin extended a" are equivalent. -# For more information on the comparison of property values, -# see UAX #44: http://www.unicode.org/reports/tr44/ -# -# All block ranges start with a value where (cp MOD 16) = 0, -# and end with a value where (cp MOD 16) = 15. In other words, -# the last hexadecimal digit of the start of range is ...0 -# and the last hexadecimal digit of the end of range is ...F. -# This constraint on block ranges guarantees that allocations -# are done in terms of whole columns, and that code chart display -# never involves splitting columns in the charts. -# -# All code points not explicitly listed for Block -# have the value No_Block. - -# Property: Block -# -# @missing: 0000..10FFFF; No_Block - -0000..007F; Basic Latin -0080..00FF; Latin-1 Supplement -0100..017F; Latin Extended-A -0180..024F; Latin Extended-B -0250..02AF; IPA Extensions -02B0..02FF; Spacing Modifier Letters -0300..036F; Combining Diacritical Marks -0370..03FF; Greek and Coptic -0400..04FF; Cyrillic -0500..052F; Cyrillic Supplement -0530..058F; Armenian -0590..05FF; Hebrew -0600..06FF; Arabic -0700..074F; Syriac -0750..077F; Arabic Supplement -0780..07BF; Thaana -07C0..07FF; NKo -0800..083F; Samaritan -0840..085F; Mandaic -08A0..08FF; Arabic Extended-A -0900..097F; Devanagari -0980..09FF; Bengali -0A00..0A7F; Gurmukhi -0A80..0AFF; Gujarati -0B00..0B7F; Oriya -0B80..0BFF; Tamil -0C00..0C7F; Telugu -0C80..0CFF; Kannada -0D00..0D7F; Malayalam -0D80..0DFF; Sinhala -0E00..0E7F; Thai -0E80..0EFF; Lao -0F00..0FFF; Tibetan -1000..109F; Myanmar -10A0..10FF; Georgian -1100..11FF; Hangul Jamo -1200..137F; Ethiopic -1380..139F; Ethiopic Supplement -13A0..13FF; Cherokee -1400..167F; Unified Canadian Aboriginal Syllabics -1680..169F; Ogham -16A0..16FF; Runic -1700..171F; Tagalog -1720..173F; Hanunoo -1740..175F; Buhid -1760..177F; Tagbanwa -1780..17FF; Khmer -1800..18AF; Mongolian -18B0..18FF; Unified Canadian Aboriginal Syllabics Extended -1900..194F; Limbu -1950..197F; Tai Le -1980..19DF; New Tai Lue -19E0..19FF; Khmer Symbols -1A00..1A1F; Buginese -1A20..1AAF; Tai Tham -1AB0..1AFF; Combining Diacritical Marks Extended -1B00..1B7F; Balinese -1B80..1BBF; Sundanese -1BC0..1BFF; Batak -1C00..1C4F; Lepcha -1C50..1C7F; Ol Chiki -1CC0..1CCF; Sundanese Supplement -1CD0..1CFF; Vedic Extensions -1D00..1D7F; Phonetic Extensions -1D80..1DBF; Phonetic Extensions Supplement -1DC0..1DFF; Combining Diacritical Marks Supplement -1E00..1EFF; Latin Extended Additional -1F00..1FFF; Greek Extended -2000..206F; General Punctuation -2070..209F; Superscripts and Subscripts -20A0..20CF; Currency Symbols -20D0..20FF; Combining Diacritical Marks for Symbols -2100..214F; Letterlike Symbols -2150..218F; Number Forms -2190..21FF; Arrows -2200..22FF; Mathematical Operators -2300..23FF; Miscellaneous Technical -2400..243F; Control Pictures -2440..245F; Optical Character Recognition -2460..24FF; Enclosed Alphanumerics -2500..257F; Box Drawing -2580..259F; Block Elements -25A0..25FF; Geometric Shapes -2600..26FF; Miscellaneous Symbols -2700..27BF; Dingbats -27C0..27EF; Miscellaneous Mathematical Symbols-A -27F0..27FF; Supplemental Arrows-A -2800..28FF; Braille Patterns -2900..297F; Supplemental Arrows-B -2980..29FF; Miscellaneous Mathematical Symbols-B -2A00..2AFF; Supplemental Mathematical Operators -2B00..2BFF; Miscellaneous Symbols and Arrows -2C00..2C5F; Glagolitic -2C60..2C7F; Latin Extended-C -2C80..2CFF; Coptic -2D00..2D2F; Georgian Supplement -2D30..2D7F; Tifinagh -2D80..2DDF; Ethiopic Extended -2DE0..2DFF; Cyrillic Extended-A -2E00..2E7F; Supplemental Punctuation -2E80..2EFF; CJK Radicals Supplement -2F00..2FDF; Kangxi Radicals -2FF0..2FFF; Ideographic Description Characters -3000..303F; CJK Symbols and Punctuation -3040..309F; Hiragana -30A0..30FF; Katakana -3100..312F; Bopomofo -3130..318F; Hangul Compatibility Jamo -3190..319F; Kanbun -31A0..31BF; Bopomofo Extended -31C0..31EF; CJK Strokes -31F0..31FF; Katakana Phonetic Extensions -3200..32FF; Enclosed CJK Letters and Months -3300..33FF; CJK Compatibility -3400..4DBF; CJK Unified Ideographs Extension A -4DC0..4DFF; Yijing Hexagram Symbols -4E00..9FFF; CJK Unified Ideographs -A000..A48F; Yi Syllables -A490..A4CF; Yi Radicals -A4D0..A4FF; Lisu -A500..A63F; Vai -A640..A69F; Cyrillic Extended-B -A6A0..A6FF; Bamum -A700..A71F; Modifier Tone Letters -A720..A7FF; Latin Extended-D -A800..A82F; Syloti Nagri -A830..A83F; Common Indic Number Forms -A840..A87F; Phags-pa -A880..A8DF; Saurashtra -A8E0..A8FF; Devanagari Extended -A900..A92F; Kayah Li -A930..A95F; Rejang -A960..A97F; Hangul Jamo Extended-A -A980..A9DF; Javanese -A9E0..A9FF; Myanmar Extended-B -AA00..AA5F; Cham -AA60..AA7F; Myanmar Extended-A -AA80..AADF; Tai Viet -AAE0..AAFF; Meetei Mayek Extensions -AB00..AB2F; Ethiopic Extended-A -AB30..AB6F; Latin Extended-E -AB70..ABBF; Cherokee Supplement -ABC0..ABFF; Meetei Mayek -AC00..D7AF; Hangul Syllables -D7B0..D7FF; Hangul Jamo Extended-B -D800..DB7F; High Surrogates -DB80..DBFF; High Private Use Surrogates -DC00..DFFF; Low Surrogates -E000..F8FF; Private Use Area -F900..FAFF; CJK Compatibility Ideographs -FB00..FB4F; Alphabetic Presentation Forms -FB50..FDFF; Arabic Presentation Forms-A -FE00..FE0F; Variation Selectors -FE10..FE1F; Vertical Forms -FE20..FE2F; Combining Half Marks -FE30..FE4F; CJK Compatibility Forms -FE50..FE6F; Small Form Variants -FE70..FEFF; Arabic Presentation Forms-B -FF00..FFEF; Halfwidth and Fullwidth Forms -FFF0..FFFF; Specials -10000..1007F; Linear B Syllabary -10080..100FF; Linear B Ideograms -10100..1013F; Aegean Numbers -10140..1018F; Ancient Greek Numbers -10190..101CF; Ancient Symbols -101D0..101FF; Phaistos Disc -10280..1029F; Lycian -102A0..102DF; Carian -102E0..102FF; Coptic Epact Numbers -10300..1032F; Old Italic -10330..1034F; Gothic -10350..1037F; Old Permic -10380..1039F; Ugaritic -103A0..103DF; Old Persian -10400..1044F; Deseret -10450..1047F; Shavian -10480..104AF; Osmanya -10500..1052F; Elbasan -10530..1056F; Caucasian Albanian -10600..1077F; Linear A -10800..1083F; Cypriot Syllabary -10840..1085F; Imperial Aramaic -10860..1087F; Palmyrene -10880..108AF; Nabataean -108E0..108FF; Hatran -10900..1091F; Phoenician -10920..1093F; Lydian -10980..1099F; Meroitic Hieroglyphs -109A0..109FF; Meroitic Cursive -10A00..10A5F; Kharoshthi -10A60..10A7F; Old South Arabian -10A80..10A9F; Old North Arabian -10AC0..10AFF; Manichaean -10B00..10B3F; Avestan -10B40..10B5F; Inscriptional Parthian -10B60..10B7F; Inscriptional Pahlavi -10B80..10BAF; Psalter Pahlavi -10C00..10C4F; Old Turkic -10C80..10CFF; Old Hungarian -10E60..10E7F; Rumi Numeral Symbols -11000..1107F; Brahmi -11080..110CF; Kaithi -110D0..110FF; Sora Sompeng -11100..1114F; Chakma -11150..1117F; Mahajani -11180..111DF; Sharada -111E0..111FF; Sinhala Archaic Numbers -11200..1124F; Khojki -11280..112AF; Multani -112B0..112FF; Khudawadi -11300..1137F; Grantha -11480..114DF; Tirhuta -11580..115FF; Siddham -11600..1165F; Modi -11680..116CF; Takri -11700..1173F; Ahom -118A0..118FF; Warang Citi -11AC0..11AFF; Pau Cin Hau -12000..123FF; Cuneiform -12400..1247F; Cuneiform Numbers and Punctuation -12480..1254F; Early Dynastic Cuneiform -13000..1342F; Egyptian Hieroglyphs -14400..1467F; Anatolian Hieroglyphs -16800..16A3F; Bamum Supplement -16A40..16A6F; Mro -16AD0..16AFF; Bassa Vah -16B00..16B8F; Pahawh Hmong -16F00..16F9F; Miao -1B000..1B0FF; Kana Supplement -1BC00..1BC9F; Duployan -1BCA0..1BCAF; Shorthand Format Controls -1D000..1D0FF; Byzantine Musical Symbols -1D100..1D1FF; Musical Symbols -1D200..1D24F; Ancient Greek Musical Notation -1D300..1D35F; Tai Xuan Jing Symbols -1D360..1D37F; Counting Rod Numerals -1D400..1D7FF; Mathematical Alphanumeric Symbols -1D800..1DAAF; Sutton SignWriting -1E800..1E8DF; Mende Kikakui -1EE00..1EEFF; Arabic Mathematical Alphabetic Symbols -1F000..1F02F; Mahjong Tiles -1F030..1F09F; Domino Tiles -1F0A0..1F0FF; Playing Cards -1F100..1F1FF; Enclosed Alphanumeric Supplement -1F200..1F2FF; Enclosed Ideographic Supplement -1F300..1F5FF; Miscellaneous Symbols and Pictographs -1F600..1F64F; Emoticons -1F650..1F67F; Ornamental Dingbats -1F680..1F6FF; Transport and Map Symbols -1F700..1F77F; Alchemical Symbols -1F780..1F7FF; Geometric Shapes Extended -1F800..1F8FF; Supplemental Arrows-C -1F900..1F9FF; Supplemental Symbols and Pictographs -20000..2A6DF; CJK Unified Ideographs Extension B -2A700..2B73F; CJK Unified Ideographs Extension C -2B740..2B81F; CJK Unified Ideographs Extension D -2B820..2CEAF; CJK Unified Ideographs Extension E -2F800..2FA1F; CJK Compatibility Ideographs Supplement -E0000..E007F; Tags -E0100..E01EF; Variation Selectors Supplement -F0000..FFFFF; Supplementary Private Use Area-A -100000..10FFFF; Supplementary Private Use Area-B - -# EOF diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/CombiningClass.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/CombiningClass.pl deleted file mode 100644 index f6171e3c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/CombiningClass.pl +++ /dev/null @@ -1,341 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToCombiningClass'}{'format'} = 'i'; # integer -$utf8::SwashInfo{'ToCombiningClass'}{'missing'} = '0'; - -return <<'END'; -300 314 230 -315 232 -316 319 220 -31A 232 -31B 216 -31C 320 220 -321 322 202 -323 326 220 -327 328 202 -329 333 220 -334 338 1 -339 33C 220 -33D 344 230 -345 240 -346 230 -347 349 220 -34A 34C 230 -34D 34E 220 -350 352 230 -353 356 220 -357 230 -358 232 -359 35A 220 -35B 230 -35C 233 -35D 35E 234 -35F 233 -360 361 234 -362 233 -363 36F 230 -483 487 230 -591 220 -592 595 230 -596 220 -597 599 230 -59A 222 -59B 220 -59C 5A1 230 -5A2 5A7 220 -5A8 5A9 230 -5AA 220 -5AB 5AC 230 -5AD 222 -5AE 228 -5AF 230 -5B0 10 -5B1 11 -5B2 12 -5B3 13 -5B4 14 -5B5 15 -5B6 16 -5B7 17 -5B8 18 -5B9 5BA 19 -5BB 20 -5BC 21 -5BD 22 -5BF 23 -5C1 24 -5C2 25 -5C4 230 -5C5 220 -5C7 18 -610 617 230 -618 30 -619 31 -61A 32 -64B 27 -64C 28 -64D 29 -64E 30 -64F 31 -650 32 -651 33 -652 34 -653 654 230 -655 656 220 -657 65B 230 -65C 220 -65D 65E 230 -65F 220 -670 35 -6D6 6DC 230 -6DF 6E2 230 -6E3 220 -6E4 230 -6E7 6E8 230 -6EA 220 -6EB 6EC 230 -6ED 220 -711 36 -730 230 -731 220 -732 733 230 -734 220 -735 736 230 -737 739 220 -73A 230 -73B 73C 220 -73D 230 -73E 220 -73F 741 230 -742 220 -743 230 -744 220 -745 230 -746 220 -747 230 -748 220 -749 74A 230 -7EB 7F1 230 -7F2 220 -7F3 230 -816 819 230 -81B 823 230 -825 827 230 -829 82D 230 -859 85B 220 -8E3 220 -8E4 8E5 230 -8E6 220 -8E7 8E8 230 -8E9 220 -8EA 8EC 230 -8ED 8EF 220 -8F0 27 -8F1 28 -8F2 29 -8F3 8F5 230 -8F6 220 -8F7 8F8 230 -8F9 8FA 220 -8FB 8FF 230 -93C 7 -94D 9 -951 230 -952 220 -953 954 230 -9BC 7 -9CD 9 -A3C 7 -A4D 9 -ABC 7 -ACD 9 -B3C 7 -B4D 9 -BCD 9 -C4D 9 -C55 84 -C56 91 -CBC 7 -CCD 9 -D4D 9 -DCA 9 -E38 E39 103 -E3A 9 -E48 E4B 107 -EB8 EB9 118 -EC8 ECB 122 -F18 F19 220 -F35 220 -F37 220 -F39 216 -F71 129 -F72 130 -F74 132 -F7A F7D 130 -F80 130 -F82 F83 230 -F84 9 -F86 F87 230 -FC6 220 -1037 7 -1039 103A 9 -108D 220 -135D 135F 230 -1714 9 -1734 9 -17D2 9 -17DD 230 -18A9 228 -1939 222 -193A 230 -193B 220 -1A17 230 -1A18 220 -1A60 9 -1A75 1A7C 230 -1A7F 220 -1AB0 1AB4 230 -1AB5 1ABA 220 -1ABB 1ABC 230 -1ABD 220 -1B34 7 -1B44 9 -1B6B 230 -1B6C 220 -1B6D 1B73 230 -1BAA 1BAB 9 -1BE6 7 -1BF2 1BF3 9 -1C37 7 -1CD0 1CD2 230 -1CD4 1 -1CD5 1CD9 220 -1CDA 1CDB 230 -1CDC 1CDF 220 -1CE0 230 -1CE2 1CE8 1 -1CED 220 -1CF4 230 -1CF8 1CF9 230 -1DC0 1DC1 230 -1DC2 220 -1DC3 1DC9 230 -1DCA 220 -1DCB 1DCC 230 -1DCD 234 -1DCE 214 -1DCF 220 -1DD0 202 -1DD1 1DF5 230 -1DFC 233 -1DFD 220 -1DFE 230 -1DFF 220 -20D0 20D1 230 -20D2 20D3 1 -20D4 20D7 230 -20D8 20DA 1 -20DB 20DC 230 -20E1 230 -20E5 20E6 1 -20E7 230 -20E8 220 -20E9 230 -20EA 20EB 1 -20EC 20EF 220 -20F0 230 -2CEF 2CF1 230 -2D7F 9 -2DE0 2DFF 230 -302A 218 -302B 228 -302C 232 -302D 222 -302E 302F 224 -3099 309A 8 -A66F 230 -A674 A67D 230 -A69E A69F 230 -A6F0 A6F1 230 -A806 9 -A8C4 9 -A8E0 A8F1 230 -A92B A92D 220 -A953 9 -A9B3 7 -A9C0 9 -AAB0 230 -AAB2 AAB3 230 -AAB4 220 -AAB7 AAB8 230 -AABE AABF 230 -AAC1 230 -AAF6 9 -ABED 9 -FB1E 26 -FE20 FE26 230 -FE27 FE2D 220 -FE2E FE2F 230 -101FD 220 -102E0 220 -10376 1037A 230 -10A0D 220 -10A0F 230 -10A38 230 -10A39 1 -10A3A 220 -10A3F 9 -10AE5 230 -10AE6 220 -11046 9 -1107F 9 -110B9 9 -110BA 7 -11100 11102 230 -11133 11134 9 -11173 7 -111C0 9 -111CA 7 -11235 9 -11236 7 -112E9 7 -112EA 9 -1133C 7 -1134D 9 -11366 1136C 230 -11370 11374 230 -114C2 9 -114C3 7 -115BF 9 -115C0 7 -1163F 9 -116B6 9 -116B7 7 -1172B 9 -16AF0 16AF4 1 -16B30 16B36 230 -1BC9E 1 -1D165 1D166 216 -1D167 1D169 1 -1D16D 226 -1D16E 1D172 216 -1D17B 1D182 220 -1D185 1D189 230 -1D18A 1D18B 220 -1D1AA 1D1AD 230 -1D242 1D244 230 -1E8D0 1E8D6 220 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/Decomposition.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/Decomposition.pl deleted file mode 100644 index e1810af3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/Decomposition.pl +++ /dev/null @@ -1,5705 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -A0 0020 -A8 0020 0308 -AA 0061 -AF 0020 0304 -B2 0032 -B3 0033 -B4 0020 0301 -B5 03BC -B8 0020 0327 -B9 0031 -BA 006F -BC 0031 2044 0034 -BD 0031 2044 0032 -BE 0033 2044 0034 -C0 0041 0300 -C1 0041 0301 -C2 0041 0302 -C3 0041 0303 -C4 0041 0308 -C5 0041 030A -C7 0043 0327 -C8 0045 0300 -C9 0045 0301 -CA 0045 0302 -CB 0045 0308 -CC 0049 0300 -CD 0049 0301 -CE 0049 0302 -CF 0049 0308 -D1 004E 0303 -D2 004F 0300 -D3 004F 0301 -D4 004F 0302 -D5 004F 0303 -D6 004F 0308 -D9 0055 0300 -DA 0055 0301 -DB 0055 0302 -DC 0055 0308 -DD 0059 0301 -E0 0061 0300 -E1 0061 0301 -E2 0061 0302 -E3 0061 0303 -E4 0061 0308 -E5 0061 030A -E7 0063 0327 -E8 0065 0300 -E9 0065 0301 -EA 0065 0302 -EB 0065 0308 -EC 0069 0300 -ED 0069 0301 -EE 0069 0302 -EF 0069 0308 -F1 006E 0303 -F2 006F 0300 -F3 006F 0301 -F4 006F 0302 -F5 006F 0303 -F6 006F 0308 -F9 0075 0300 -FA 0075 0301 -FB 0075 0302 -FC 0075 0308 -FD 0079 0301 -FF 0079 0308 -100 0041 0304 -101 0061 0304 -102 0041 0306 -103 0061 0306 -104 0041 0328 -105 0061 0328 -106 0043 0301 -107 0063 0301 -108 0043 0302 -109 0063 0302 -10A 0043 0307 -10B 0063 0307 -10C 0043 030C -10D 0063 030C -10E 0044 030C -10F 0064 030C -112 0045 0304 -113 0065 0304 -114 0045 0306 -115 0065 0306 -116 0045 0307 -117 0065 0307 -118 0045 0328 -119 0065 0328 -11A 0045 030C -11B 0065 030C -11C 0047 0302 -11D 0067 0302 -11E 0047 0306 -11F 0067 0306 -120 0047 0307 -121 0067 0307 -122 0047 0327 -123 0067 0327 -124 0048 0302 -125 0068 0302 -128 0049 0303 -129 0069 0303 -12A 0049 0304 -12B 0069 0304 -12C 0049 0306 -12D 0069 0306 -12E 0049 0328 -12F 0069 0328 -130 0049 0307 -132 0049 004A -133 0069 006A -134 004A 0302 -135 006A 0302 -136 004B 0327 -137 006B 0327 -139 004C 0301 -13A 006C 0301 -13B 004C 0327 -13C 006C 0327 -13D 004C 030C -13E 006C 030C -13F 004C 00B7 -140 006C 00B7 -143 004E 0301 -144 006E 0301 -145 004E 0327 -146 006E 0327 -147 004E 030C -148 006E 030C -149 02BC 006E -14C 004F 0304 -14D 006F 0304 -14E 004F 0306 -14F 006F 0306 -150 004F 030B -151 006F 030B -154 0052 0301 -155 0072 0301 -156 0052 0327 -157 0072 0327 -158 0052 030C -159 0072 030C -15A 0053 0301 -15B 0073 0301 -15C 0053 0302 -15D 0073 0302 -15E 0053 0327 -15F 0073 0327 -160 0053 030C -161 0073 030C -162 0054 0327 -163 0074 0327 -164 0054 030C -165 0074 030C -168 0055 0303 -169 0075 0303 -16A 0055 0304 -16B 0075 0304 -16C 0055 0306 -16D 0075 0306 -16E 0055 030A -16F 0075 030A -170 0055 030B -171 0075 030B -172 0055 0328 -173 0075 0328 -174 0057 0302 -175 0077 0302 -176 0059 0302 -177 0079 0302 -178 0059 0308 -179 005A 0301 -17A 007A 0301 -17B 005A 0307 -17C 007A 0307 -17D 005A 030C -17E 007A 030C -17F 0073 -1A0 004F 031B -1A1 006F 031B -1AF 0055 031B -1B0 0075 031B -1C4 0044 017D -1C5 0044 017E -1C6 0064 017E -1C7 004C 004A -1C8 004C 006A -1C9 006C 006A -1CA 004E 004A -1CB 004E 006A -1CC 006E 006A -1CD 0041 030C -1CE 0061 030C -1CF 0049 030C -1D0 0069 030C -1D1 004F 030C -1D2 006F 030C -1D3 0055 030C -1D4 0075 030C -1D5 00DC 0304 -1D6 00FC 0304 -1D7 00DC 0301 -1D8 00FC 0301 -1D9 00DC 030C -1DA 00FC 030C -1DB 00DC 0300 -1DC 00FC 0300 -1DE 00C4 0304 -1DF 00E4 0304 -1E0 0226 0304 -1E1 0227 0304 -1E2 00C6 0304 -1E3 00E6 0304 -1E6 0047 030C -1E7 0067 030C -1E8 004B 030C -1E9 006B 030C -1EA 004F 0328 -1EB 006F 0328 -1EC 01EA 0304 -1ED 01EB 0304 -1EE 01B7 030C -1EF 0292 030C -1F0 006A 030C -1F1 0044 005A -1F2 0044 007A -1F3 0064 007A -1F4 0047 0301 -1F5 0067 0301 -1F8 004E 0300 -1F9 006E 0300 -1FA 00C5 0301 -1FB 00E5 0301 -1FC 00C6 0301 -1FD 00E6 0301 -1FE 00D8 0301 -1FF 00F8 0301 -200 0041 030F -201 0061 030F -202 0041 0311 -203 0061 0311 -204 0045 030F -205 0065 030F -206 0045 0311 -207 0065 0311 -208 0049 030F -209 0069 030F -20A 0049 0311 -20B 0069 0311 -20C 004F 030F -20D 006F 030F -20E 004F 0311 -20F 006F 0311 -210 0052 030F -211 0072 030F -212 0052 0311 -213 0072 0311 -214 0055 030F -215 0075 030F -216 0055 0311 -217 0075 0311 -218 0053 0326 -219 0073 0326 -21A 0054 0326 -21B 0074 0326 -21E 0048 030C -21F 0068 030C -226 0041 0307 -227 0061 0307 -228 0045 0327 -229 0065 0327 -22A 00D6 0304 -22B 00F6 0304 -22C 00D5 0304 -22D 00F5 0304 -22E 004F 0307 -22F 006F 0307 -230 022E 0304 -231 022F 0304 -232 0059 0304 -233 0079 0304 -2B0 0068 -2B1 0266 -2B2 006A -2B3 0072 -2B4 0279 -2B5 027B -2B6 0281 -2B7 0077 -2B8 0079 -2D8 0020 0306 -2D9 0020 0307 -2DA 0020 030A -2DB 0020 0328 -2DC 0020 0303 -2DD 0020 030B -2E0 0263 -2E1 006C -2E2 0073 -2E3 0078 -2E4 0295 -340 0300 -341 0301 -343 0313 -344 0308 0301 -374 02B9 -37A 0020 0345 -37E 003B -384 0020 0301 -385 00A8 0301 -386 0391 0301 -387 00B7 -388 0395 0301 -389 0397 0301 -38A 0399 0301 -38C 039F 0301 -38E 03A5 0301 -38F 03A9 0301 -390 03CA 0301 -3AA 0399 0308 -3AB 03A5 0308 -3AC 03B1 0301 -3AD 03B5 0301 -3AE 03B7 0301 -3AF 03B9 0301 -3B0 03CB 0301 -3CA 03B9 0308 -3CB 03C5 0308 -3CC 03BF 0301 -3CD 03C5 0301 -3CE 03C9 0301 -3D0 03B2 -3D1 03B8 -3D2 03A5 -3D3 03D2 0301 -3D4 03D2 0308 -3D5 03C6 -3D6 03C0 -3F0 03BA -3F1 03C1 -3F2 03C2 -3F4 0398 -3F5 03B5 -3F9 03A3 -400 0415 0300 -401 0415 0308 -403 0413 0301 -407 0406 0308 -40C 041A 0301 -40D 0418 0300 -40E 0423 0306 -419 0418 0306 -439 0438 0306 -450 0435 0300 -451 0435 0308 -453 0433 0301 -457 0456 0308 -45C 043A 0301 -45D 0438 0300 -45E 0443 0306 -476 0474 030F -477 0475 030F -4C1 0416 0306 -4C2 0436 0306 -4D0 0410 0306 -4D1 0430 0306 -4D2 0410 0308 -4D3 0430 0308 -4D6 0415 0306 -4D7 0435 0306 -4DA 04D8 0308 -4DB 04D9 0308 -4DC 0416 0308 -4DD 0436 0308 -4DE 0417 0308 -4DF 0437 0308 -4E2 0418 0304 -4E3 0438 0304 -4E4 0418 0308 -4E5 0438 0308 -4E6 041E 0308 -4E7 043E 0308 -4EA 04E8 0308 -4EB 04E9 0308 -4EC 042D 0308 -4ED 044D 0308 -4EE 0423 0304 -4EF 0443 0304 -4F0 0423 0308 -4F1 0443 0308 -4F2 0423 030B -4F3 0443 030B -4F4 0427 0308 -4F5 0447 0308 -4F8 042B 0308 -4F9 044B 0308 -587 0565 0582 -622 0627 0653 -623 0627 0654 -624 0648 0654 -625 0627 0655 -626 064A 0654 -675 0627 0674 -676 0648 0674 -677 06C7 0674 -678 064A 0674 -6C0 06D5 0654 -6C2 06C1 0654 -6D3 06D2 0654 -929 0928 093C -931 0930 093C -934 0933 093C -958 0915 093C -959 0916 093C -95A 0917 093C -95B 091C 093C -95C 0921 093C -95D 0922 093C -95E 092B 093C -95F 092F 093C -9CB 09C7 09BE -9CC 09C7 09D7 -9DC 09A1 09BC -9DD 09A2 09BC -9DF 09AF 09BC -A33 0A32 0A3C -A36 0A38 0A3C -A59 0A16 0A3C -A5A 0A17 0A3C -A5B 0A1C 0A3C -A5E 0A2B 0A3C -B48 0B47 0B56 -B4B 0B47 0B3E -B4C 0B47 0B57 -B5C 0B21 0B3C -B5D 0B22 0B3C -B94 0B92 0BD7 -BCA 0BC6 0BBE -BCB 0BC7 0BBE -BCC 0BC6 0BD7 -C48 0C46 0C56 -CC0 0CBF 0CD5 -CC7 0CC6 0CD5 -CC8 0CC6 0CD6 -CCA 0CC6 0CC2 -CCB 0CCA 0CD5 -D4A 0D46 0D3E -D4B 0D47 0D3E -D4C 0D46 0D57 -DDA 0DD9 0DCA -DDC 0DD9 0DCF -DDD 0DDC 0DCA -DDE 0DD9 0DDF -E33 0E4D 0E32 -EB3 0ECD 0EB2 -EDC 0EAB 0E99 -EDD 0EAB 0EA1 -F0C 0F0B -F43 0F42 0FB7 -F4D 0F4C 0FB7 -F52 0F51 0FB7 -F57 0F56 0FB7 -F5C 0F5B 0FB7 -F69 0F40 0FB5 -F73 0F71 0F72 -F75 0F71 0F74 -F76 0FB2 0F80 -F77 0FB2 0F81 -F78 0FB3 0F80 -F79 0FB3 0F81 -F81 0F71 0F80 -F93 0F92 0FB7 -F9D 0F9C 0FB7 -FA2 0FA1 0FB7 -FA7 0FA6 0FB7 -FAC 0FAB 0FB7 -FB9 0F90 0FB5 -1026 1025 102E -10FC 10DC -1B06 1B05 1B35 -1B08 1B07 1B35 -1B0A 1B09 1B35 -1B0C 1B0B 1B35 -1B0E 1B0D 1B35 -1B12 1B11 1B35 -1B3B 1B3A 1B35 -1B3D 1B3C 1B35 -1B40 1B3E 1B35 -1B41 1B3F 1B35 -1B43 1B42 1B35 -1D2C 0041 -1D2D 00C6 -1D2E 0042 -1D30 0044 -1D31 0045 -1D32 018E -1D33 0047 -1D34 0048 -1D35 0049 -1D36 004A -1D37 004B -1D38 004C -1D39 004D -1D3A 004E -1D3C 004F -1D3D 0222 -1D3E 0050 -1D3F 0052 -1D40 0054 -1D41 0055 -1D42 0057 -1D43 0061 -1D44 0250 -1D45 0251 -1D46 1D02 -1D47 0062 -1D48 0064 -1D49 0065 -1D4A 0259 -1D4B 025B -1D4C 025C -1D4D 0067 -1D4F 006B -1D50 006D -1D51 014B -1D52 006F -1D53 0254 -1D54 1D16 -1D55 1D17 -1D56 0070 -1D57 0074 -1D58 0075 -1D59 1D1D -1D5A 026F -1D5B 0076 -1D5C 1D25 -1D5D 03B2 -1D5E 03B3 -1D5F 03B4 -1D60 03C6 -1D61 03C7 -1D62 0069 -1D63 0072 -1D64 0075 -1D65 0076 -1D66 03B2 -1D67 03B3 -1D68 03C1 -1D69 03C6 -1D6A 03C7 -1D78 043D -1D9B 0252 -1D9C 0063 -1D9D 0255 -1D9E 00F0 -1D9F 025C -1DA0 0066 -1DA1 025F -1DA2 0261 -1DA3 0265 -1DA4 0268 -1DA5 0269 -1DA6 026A -1DA7 1D7B -1DA8 029D -1DA9 026D -1DAA 1D85 -1DAB 029F -1DAC 0271 -1DAD 0270 -1DAE 0272 -1DAF 0273 -1DB0 0274 -1DB1 0275 -1DB2 0278 -1DB3 0282 -1DB4 0283 -1DB5 01AB -1DB6 0289 -1DB7 028A -1DB8 1D1C -1DB9 028B -1DBA 028C -1DBB 007A -1DBC 0290 -1DBD 0291 -1DBE 0292 -1DBF 03B8 -1E00 0041 0325 -1E01 0061 0325 -1E02 0042 0307 -1E03 0062 0307 -1E04 0042 0323 -1E05 0062 0323 -1E06 0042 0331 -1E07 0062 0331 -1E08 00C7 0301 -1E09 00E7 0301 -1E0A 0044 0307 -1E0B 0064 0307 -1E0C 0044 0323 -1E0D 0064 0323 -1E0E 0044 0331 -1E0F 0064 0331 -1E10 0044 0327 -1E11 0064 0327 -1E12 0044 032D -1E13 0064 032D -1E14 0112 0300 -1E15 0113 0300 -1E16 0112 0301 -1E17 0113 0301 -1E18 0045 032D -1E19 0065 032D -1E1A 0045 0330 -1E1B 0065 0330 -1E1C 0228 0306 -1E1D 0229 0306 -1E1E 0046 0307 -1E1F 0066 0307 -1E20 0047 0304 -1E21 0067 0304 -1E22 0048 0307 -1E23 0068 0307 -1E24 0048 0323 -1E25 0068 0323 -1E26 0048 0308 -1E27 0068 0308 -1E28 0048 0327 -1E29 0068 0327 -1E2A 0048 032E -1E2B 0068 032E -1E2C 0049 0330 -1E2D 0069 0330 -1E2E 00CF 0301 -1E2F 00EF 0301 -1E30 004B 0301 -1E31 006B 0301 -1E32 004B 0323 -1E33 006B 0323 -1E34 004B 0331 -1E35 006B 0331 -1E36 004C 0323 -1E37 006C 0323 -1E38 1E36 0304 -1E39 1E37 0304 -1E3A 004C 0331 -1E3B 006C 0331 -1E3C 004C 032D -1E3D 006C 032D -1E3E 004D 0301 -1E3F 006D 0301 -1E40 004D 0307 -1E41 006D 0307 -1E42 004D 0323 -1E43 006D 0323 -1E44 004E 0307 -1E45 006E 0307 -1E46 004E 0323 -1E47 006E 0323 -1E48 004E 0331 -1E49 006E 0331 -1E4A 004E 032D -1E4B 006E 032D -1E4C 00D5 0301 -1E4D 00F5 0301 -1E4E 00D5 0308 -1E4F 00F5 0308 -1E50 014C 0300 -1E51 014D 0300 -1E52 014C 0301 -1E53 014D 0301 -1E54 0050 0301 -1E55 0070 0301 -1E56 0050 0307 -1E57 0070 0307 -1E58 0052 0307 -1E59 0072 0307 -1E5A 0052 0323 -1E5B 0072 0323 -1E5C 1E5A 0304 -1E5D 1E5B 0304 -1E5E 0052 0331 -1E5F 0072 0331 -1E60 0053 0307 -1E61 0073 0307 -1E62 0053 0323 -1E63 0073 0323 -1E64 015A 0307 -1E65 015B 0307 -1E66 0160 0307 -1E67 0161 0307 -1E68 1E62 0307 -1E69 1E63 0307 -1E6A 0054 0307 -1E6B 0074 0307 -1E6C 0054 0323 -1E6D 0074 0323 -1E6E 0054 0331 -1E6F 0074 0331 -1E70 0054 032D -1E71 0074 032D -1E72 0055 0324 -1E73 0075 0324 -1E74 0055 0330 -1E75 0075 0330 -1E76 0055 032D -1E77 0075 032D -1E78 0168 0301 -1E79 0169 0301 -1E7A 016A 0308 -1E7B 016B 0308 -1E7C 0056 0303 -1E7D 0076 0303 -1E7E 0056 0323 -1E7F 0076 0323 -1E80 0057 0300 -1E81 0077 0300 -1E82 0057 0301 -1E83 0077 0301 -1E84 0057 0308 -1E85 0077 0308 -1E86 0057 0307 -1E87 0077 0307 -1E88 0057 0323 -1E89 0077 0323 -1E8A 0058 0307 -1E8B 0078 0307 -1E8C 0058 0308 -1E8D 0078 0308 -1E8E 0059 0307 -1E8F 0079 0307 -1E90 005A 0302 -1E91 007A 0302 -1E92 005A 0323 -1E93 007A 0323 -1E94 005A 0331 -1E95 007A 0331 -1E96 0068 0331 -1E97 0074 0308 -1E98 0077 030A -1E99 0079 030A -1E9A 0061 02BE -1E9B 017F 0307 -1EA0 0041 0323 -1EA1 0061 0323 -1EA2 0041 0309 -1EA3 0061 0309 -1EA4 00C2 0301 -1EA5 00E2 0301 -1EA6 00C2 0300 -1EA7 00E2 0300 -1EA8 00C2 0309 -1EA9 00E2 0309 -1EAA 00C2 0303 -1EAB 00E2 0303 -1EAC 1EA0 0302 -1EAD 1EA1 0302 -1EAE 0102 0301 -1EAF 0103 0301 -1EB0 0102 0300 -1EB1 0103 0300 -1EB2 0102 0309 -1EB3 0103 0309 -1EB4 0102 0303 -1EB5 0103 0303 -1EB6 1EA0 0306 -1EB7 1EA1 0306 -1EB8 0045 0323 -1EB9 0065 0323 -1EBA 0045 0309 -1EBB 0065 0309 -1EBC 0045 0303 -1EBD 0065 0303 -1EBE 00CA 0301 -1EBF 00EA 0301 -1EC0 00CA 0300 -1EC1 00EA 0300 -1EC2 00CA 0309 -1EC3 00EA 0309 -1EC4 00CA 0303 -1EC5 00EA 0303 -1EC6 1EB8 0302 -1EC7 1EB9 0302 -1EC8 0049 0309 -1EC9 0069 0309 -1ECA 0049 0323 -1ECB 0069 0323 -1ECC 004F 0323 -1ECD 006F 0323 -1ECE 004F 0309 -1ECF 006F 0309 -1ED0 00D4 0301 -1ED1 00F4 0301 -1ED2 00D4 0300 -1ED3 00F4 0300 -1ED4 00D4 0309 -1ED5 00F4 0309 -1ED6 00D4 0303 -1ED7 00F4 0303 -1ED8 1ECC 0302 -1ED9 1ECD 0302 -1EDA 01A0 0301 -1EDB 01A1 0301 -1EDC 01A0 0300 -1EDD 01A1 0300 -1EDE 01A0 0309 -1EDF 01A1 0309 -1EE0 01A0 0303 -1EE1 01A1 0303 -1EE2 01A0 0323 -1EE3 01A1 0323 -1EE4 0055 0323 -1EE5 0075 0323 -1EE6 0055 0309 -1EE7 0075 0309 -1EE8 01AF 0301 -1EE9 01B0 0301 -1EEA 01AF 0300 -1EEB 01B0 0300 -1EEC 01AF 0309 -1EED 01B0 0309 -1EEE 01AF 0303 -1EEF 01B0 0303 -1EF0 01AF 0323 -1EF1 01B0 0323 -1EF2 0059 0300 -1EF3 0079 0300 -1EF4 0059 0323 -1EF5 0079 0323 -1EF6 0059 0309 -1EF7 0079 0309 -1EF8 0059 0303 -1EF9 0079 0303 -1F00 03B1 0313 -1F01 03B1 0314 -1F02 1F00 0300 -1F03 1F01 0300 -1F04 1F00 0301 -1F05 1F01 0301 -1F06 1F00 0342 -1F07 1F01 0342 -1F08 0391 0313 -1F09 0391 0314 -1F0A 1F08 0300 -1F0B 1F09 0300 -1F0C 1F08 0301 -1F0D 1F09 0301 -1F0E 1F08 0342 -1F0F 1F09 0342 -1F10 03B5 0313 -1F11 03B5 0314 -1F12 1F10 0300 -1F13 1F11 0300 -1F14 1F10 0301 -1F15 1F11 0301 -1F18 0395 0313 -1F19 0395 0314 -1F1A 1F18 0300 -1F1B 1F19 0300 -1F1C 1F18 0301 -1F1D 1F19 0301 -1F20 03B7 0313 -1F21 03B7 0314 -1F22 1F20 0300 -1F23 1F21 0300 -1F24 1F20 0301 -1F25 1F21 0301 -1F26 1F20 0342 -1F27 1F21 0342 -1F28 0397 0313 -1F29 0397 0314 -1F2A 1F28 0300 -1F2B 1F29 0300 -1F2C 1F28 0301 -1F2D 1F29 0301 -1F2E 1F28 0342 -1F2F 1F29 0342 -1F30 03B9 0313 -1F31 03B9 0314 -1F32 1F30 0300 -1F33 1F31 0300 -1F34 1F30 0301 -1F35 1F31 0301 -1F36 1F30 0342 -1F37 1F31 0342 -1F38 0399 0313 -1F39 0399 0314 -1F3A 1F38 0300 -1F3B 1F39 0300 -1F3C 1F38 0301 -1F3D 1F39 0301 -1F3E 1F38 0342 -1F3F 1F39 0342 -1F40 03BF 0313 -1F41 03BF 0314 -1F42 1F40 0300 -1F43 1F41 0300 -1F44 1F40 0301 -1F45 1F41 0301 -1F48 039F 0313 -1F49 039F 0314 -1F4A 1F48 0300 -1F4B 1F49 0300 -1F4C 1F48 0301 -1F4D 1F49 0301 -1F50 03C5 0313 -1F51 03C5 0314 -1F52 1F50 0300 -1F53 1F51 0300 -1F54 1F50 0301 -1F55 1F51 0301 -1F56 1F50 0342 -1F57 1F51 0342 -1F59 03A5 0314 -1F5B 1F59 0300 -1F5D 1F59 0301 -1F5F 1F59 0342 -1F60 03C9 0313 -1F61 03C9 0314 -1F62 1F60 0300 -1F63 1F61 0300 -1F64 1F60 0301 -1F65 1F61 0301 -1F66 1F60 0342 -1F67 1F61 0342 -1F68 03A9 0313 -1F69 03A9 0314 -1F6A 1F68 0300 -1F6B 1F69 0300 -1F6C 1F68 0301 -1F6D 1F69 0301 -1F6E 1F68 0342 -1F6F 1F69 0342 -1F70 03B1 0300 -1F71 03AC -1F72 03B5 0300 -1F73 03AD -1F74 03B7 0300 -1F75 03AE -1F76 03B9 0300 -1F77 03AF -1F78 03BF 0300 -1F79 03CC -1F7A 03C5 0300 -1F7B 03CD -1F7C 03C9 0300 -1F7D 03CE -1F80 1F00 0345 -1F81 1F01 0345 -1F82 1F02 0345 -1F83 1F03 0345 -1F84 1F04 0345 -1F85 1F05 0345 -1F86 1F06 0345 -1F87 1F07 0345 -1F88 1F08 0345 -1F89 1F09 0345 -1F8A 1F0A 0345 -1F8B 1F0B 0345 -1F8C 1F0C 0345 -1F8D 1F0D 0345 -1F8E 1F0E 0345 -1F8F 1F0F 0345 -1F90 1F20 0345 -1F91 1F21 0345 -1F92 1F22 0345 -1F93 1F23 0345 -1F94 1F24 0345 -1F95 1F25 0345 -1F96 1F26 0345 -1F97 1F27 0345 -1F98 1F28 0345 -1F99 1F29 0345 -1F9A 1F2A 0345 -1F9B 1F2B 0345 -1F9C 1F2C 0345 -1F9D 1F2D 0345 -1F9E 1F2E 0345 -1F9F 1F2F 0345 -1FA0 1F60 0345 -1FA1 1F61 0345 -1FA2 1F62 0345 -1FA3 1F63 0345 -1FA4 1F64 0345 -1FA5 1F65 0345 -1FA6 1F66 0345 -1FA7 1F67 0345 -1FA8 1F68 0345 -1FA9 1F69 0345 -1FAA 1F6A 0345 -1FAB 1F6B 0345 -1FAC 1F6C 0345 -1FAD 1F6D 0345 -1FAE 1F6E 0345 -1FAF 1F6F 0345 -1FB0 03B1 0306 -1FB1 03B1 0304 -1FB2 1F70 0345 -1FB3 03B1 0345 -1FB4 03AC 0345 -1FB6 03B1 0342 -1FB7 1FB6 0345 -1FB8 0391 0306 -1FB9 0391 0304 -1FBA 0391 0300 -1FBB 0386 -1FBC 0391 0345 -1FBD 0020 0313 -1FBE 03B9 -1FBF 0020 0313 -1FC0 0020 0342 -1FC1 00A8 0342 -1FC2 1F74 0345 -1FC3 03B7 0345 -1FC4 03AE 0345 -1FC6 03B7 0342 -1FC7 1FC6 0345 -1FC8 0395 0300 -1FC9 0388 -1FCA 0397 0300 -1FCB 0389 -1FCC 0397 0345 -1FCD 1FBF 0300 -1FCE 1FBF 0301 -1FCF 1FBF 0342 -1FD0 03B9 0306 -1FD1 03B9 0304 -1FD2 03CA 0300 -1FD3 0390 -1FD6 03B9 0342 -1FD7 03CA 0342 -1FD8 0399 0306 -1FD9 0399 0304 -1FDA 0399 0300 -1FDB 038A -1FDD 1FFE 0300 -1FDE 1FFE 0301 -1FDF 1FFE 0342 -1FE0 03C5 0306 -1FE1 03C5 0304 -1FE2 03CB 0300 -1FE3 03B0 -1FE4 03C1 0313 -1FE5 03C1 0314 -1FE6 03C5 0342 -1FE7 03CB 0342 -1FE8 03A5 0306 -1FE9 03A5 0304 -1FEA 03A5 0300 -1FEB 038E -1FEC 03A1 0314 -1FED 00A8 0300 -1FEE 0385 -1FEF 0060 -1FF2 1F7C 0345 -1FF3 03C9 0345 -1FF4 03CE 0345 -1FF6 03C9 0342 -1FF7 1FF6 0345 -1FF8 039F 0300 -1FF9 038C -1FFA 03A9 0300 -1FFB 038F -1FFC 03A9 0345 -1FFD 00B4 -1FFE 0020 0314 -2000 2002 -2001 2003 -2002 2006 0020 -2007 0020 -2008 200A 0020 -2011 2010 -2017 0020 0333 -2024 002E -2025 002E 002E -2026 002E 002E 002E -202F 0020 -2033 2032 2032 -2034 2032 2032 2032 -2036 2035 2035 -2037 2035 2035 2035 -203C 0021 0021 -203E 0020 0305 -2047 003F 003F -2048 003F 0021 -2049 0021 003F -2057 2032 2032 2032 2032 -205F 0020 -2070 0030 -2071 0069 -2074 0034 -2075 0035 -2076 0036 -2077 0037 -2078 0038 -2079 0039 -207A 002B -207B 2212 -207C 003D -207D 0028 -207E 0029 -207F 006E -2080 0030 -2081 0031 -2082 0032 -2083 0033 -2084 0034 -2085 0035 -2086 0036 -2087 0037 -2088 0038 -2089 0039 -208A 002B -208B 2212 -208C 003D -208D 0028 -208E 0029 -2090 0061 -2091 0065 -2092 006F -2093 0078 -2094 0259 -2095 0068 -2096 006B -2097 006C -2098 006D -2099 006E -209A 0070 -209B 0073 -209C 0074 -20A8 0052 0073 -2100 0061 002F 0063 -2101 0061 002F 0073 -2102 0043 -2103 00B0 0043 -2105 0063 002F 006F -2106 0063 002F 0075 -2107 0190 -2109 00B0 0046 -210A 0067 -210B 210D 0048 -210E 0068 -210F 0127 -2110 2111 0049 -2112 004C -2113 006C -2115 004E -2116 004E 006F -2119 0050 -211A 0051 -211B 211D 0052 -2120 0053 004D -2121 0054 0045 004C -2122 0054 004D -2124 005A -2126 03A9 -2128 005A -212A 004B -212B 00C5 -212C 0042 -212D 0043 -212F 0065 -2130 0045 -2131 0046 -2133 004D -2134 006F -2135 05D0 -2136 05D1 -2137 05D2 -2138 05D3 -2139 0069 -213B 0046 0041 0058 -213C 03C0 -213D 03B3 -213E 0393 -213F 03A0 -2140 2211 -2145 0044 -2146 0064 -2147 0065 -2148 0069 -2149 006A -2150 0031 2044 0037 -2151 0031 2044 0039 -2152 0031 2044 0031 0030 -2153 0031 2044 0033 -2154 0032 2044 0033 -2155 0031 2044 0035 -2156 0032 2044 0035 -2157 0033 2044 0035 -2158 0034 2044 0035 -2159 0031 2044 0036 -215A 0035 2044 0036 -215B 0031 2044 0038 -215C 0033 2044 0038 -215D 0035 2044 0038 -215E 0037 2044 0038 -215F 0031 2044 -2160 0049 -2161 0049 0049 -2162 0049 0049 0049 -2163 0049 0056 -2164 0056 -2165 0056 0049 -2166 0056 0049 0049 -2167 0056 0049 0049 0049 -2168 0049 0058 -2169 0058 -216A 0058 0049 -216B 0058 0049 0049 -216C 004C -216D 0043 -216E 0044 -216F 004D -2170 0069 -2171 0069 0069 -2172 0069 0069 0069 -2173 0069 0076 -2174 0076 -2175 0076 0069 -2176 0076 0069 0069 -2177 0076 0069 0069 0069 -2178 0069 0078 -2179 0078 -217A 0078 0069 -217B 0078 0069 0069 -217C 006C -217D 0063 -217E 0064 -217F 006D -2189 0030 2044 0033 -219A 2190 0338 -219B 2192 0338 -21AE 2194 0338 -21CD 21D0 0338 -21CE 21D4 0338 -21CF 21D2 0338 -2204 2203 0338 -2209 2208 0338 -220C 220B 0338 -2224 2223 0338 -2226 2225 0338 -222C 222B 222B -222D 222B 222B 222B -222F 222E 222E -2230 222E 222E 222E -2241 223C 0338 -2244 2243 0338 -2247 2245 0338 -2249 2248 0338 -2260 003D 0338 -2262 2261 0338 -226D 224D 0338 -226E 003C 0338 -226F 003E 0338 -2270 2264 0338 -2271 2265 0338 -2274 2272 0338 -2275 2273 0338 -2278 2276 0338 -2279 2277 0338 -2280 227A 0338 -2281 227B 0338 -2284 2282 0338 -2285 2283 0338 -2288 2286 0338 -2289 2287 0338 -22AC 22A2 0338 -22AD 22A8 0338 -22AE 22A9 0338 -22AF 22AB 0338 -22E0 227C 0338 -22E1 227D 0338 -22E2 2291 0338 -22E3 2292 0338 -22EA 22B2 0338 -22EB 22B3 0338 -22EC 22B4 0338 -22ED 22B5 0338 -2329 3008 -232A 3009 -2460 0031 -2461 0032 -2462 0033 -2463 0034 -2464 0035 -2465 0036 -2466 0037 -2467 0038 -2468 0039 -2469 0031 0030 -246A 0031 0031 -246B 0031 0032 -246C 0031 0033 -246D 0031 0034 -246E 0031 0035 -246F 0031 0036 -2470 0031 0037 -2471 0031 0038 -2472 0031 0039 -2473 0032 0030 -2474 0028 0031 0029 -2475 0028 0032 0029 -2476 0028 0033 0029 -2477 0028 0034 0029 -2478 0028 0035 0029 -2479 0028 0036 0029 -247A 0028 0037 0029 -247B 0028 0038 0029 -247C 0028 0039 0029 -247D 0028 0031 0030 0029 -247E 0028 0031 0031 0029 -247F 0028 0031 0032 0029 -2480 0028 0031 0033 0029 -2481 0028 0031 0034 0029 -2482 0028 0031 0035 0029 -2483 0028 0031 0036 0029 -2484 0028 0031 0037 0029 -2485 0028 0031 0038 0029 -2486 0028 0031 0039 0029 -2487 0028 0032 0030 0029 -2488 0031 002E -2489 0032 002E -248A 0033 002E -248B 0034 002E -248C 0035 002E -248D 0036 002E -248E 0037 002E -248F 0038 002E -2490 0039 002E -2491 0031 0030 002E -2492 0031 0031 002E -2493 0031 0032 002E -2494 0031 0033 002E -2495 0031 0034 002E -2496 0031 0035 002E -2497 0031 0036 002E -2498 0031 0037 002E -2499 0031 0038 002E -249A 0031 0039 002E -249B 0032 0030 002E -249C 0028 0061 0029 -249D 0028 0062 0029 -249E 0028 0063 0029 -249F 0028 0064 0029 -24A0 0028 0065 0029 -24A1 0028 0066 0029 -24A2 0028 0067 0029 -24A3 0028 0068 0029 -24A4 0028 0069 0029 -24A5 0028 006A 0029 -24A6 0028 006B 0029 -24A7 0028 006C 0029 -24A8 0028 006D 0029 -24A9 0028 006E 0029 -24AA 0028 006F 0029 -24AB 0028 0070 0029 -24AC 0028 0071 0029 -24AD 0028 0072 0029 -24AE 0028 0073 0029 -24AF 0028 0074 0029 -24B0 0028 0075 0029 -24B1 0028 0076 0029 -24B2 0028 0077 0029 -24B3 0028 0078 0029 -24B4 0028 0079 0029 -24B5 0028 007A 0029 -24B6 0041 -24B7 0042 -24B8 0043 -24B9 0044 -24BA 0045 -24BB 0046 -24BC 0047 -24BD 0048 -24BE 0049 -24BF 004A -24C0 004B -24C1 004C -24C2 004D -24C3 004E -24C4 004F -24C5 0050 -24C6 0051 -24C7 0052 -24C8 0053 -24C9 0054 -24CA 0055 -24CB 0056 -24CC 0057 -24CD 0058 -24CE 0059 -24CF 005A -24D0 0061 -24D1 0062 -24D2 0063 -24D3 0064 -24D4 0065 -24D5 0066 -24D6 0067 -24D7 0068 -24D8 0069 -24D9 006A -24DA 006B -24DB 006C -24DC 006D -24DD 006E -24DE 006F -24DF 0070 -24E0 0071 -24E1 0072 -24E2 0073 -24E3 0074 -24E4 0075 -24E5 0076 -24E6 0077 -24E7 0078 -24E8 0079 -24E9 007A -24EA 0030 -2A0C 222B 222B 222B 222B -2A74 003A 003A 003D -2A75 003D 003D -2A76 003D 003D 003D -2ADC 2ADD 0338 -2C7C 006A -2C7D 0056 -2D6F 2D61 -2E9F 6BCD -2EF3 9F9F -2F00 4E00 -2F01 4E28 -2F02 4E36 -2F03 4E3F -2F04 4E59 -2F05 4E85 -2F06 4E8C -2F07 4EA0 -2F08 4EBA -2F09 513F -2F0A 5165 -2F0B 516B -2F0C 5182 -2F0D 5196 -2F0E 51AB -2F0F 51E0 -2F10 51F5 -2F11 5200 -2F12 529B -2F13 52F9 -2F14 5315 -2F15 531A -2F16 5338 -2F17 5341 -2F18 535C -2F19 5369 -2F1A 5382 -2F1B 53B6 -2F1C 53C8 -2F1D 53E3 -2F1E 56D7 -2F1F 571F -2F20 58EB -2F21 5902 -2F22 590A -2F23 5915 -2F24 5927 -2F25 5973 -2F26 5B50 -2F27 5B80 -2F28 5BF8 -2F29 5C0F -2F2A 5C22 -2F2B 5C38 -2F2C 5C6E -2F2D 5C71 -2F2E 5DDB -2F2F 5DE5 -2F30 5DF1 -2F31 5DFE -2F32 5E72 -2F33 5E7A -2F34 5E7F -2F35 5EF4 -2F36 5EFE -2F37 5F0B -2F38 5F13 -2F39 5F50 -2F3A 5F61 -2F3B 5F73 -2F3C 5FC3 -2F3D 6208 -2F3E 6236 -2F3F 624B -2F40 652F -2F41 6534 -2F42 6587 -2F43 6597 -2F44 65A4 -2F45 65B9 -2F46 65E0 -2F47 65E5 -2F48 66F0 -2F49 6708 -2F4A 6728 -2F4B 6B20 -2F4C 6B62 -2F4D 6B79 -2F4E 6BB3 -2F4F 6BCB -2F50 6BD4 -2F51 6BDB -2F52 6C0F -2F53 6C14 -2F54 6C34 -2F55 706B -2F56 722A -2F57 7236 -2F58 723B -2F59 723F -2F5A 7247 -2F5B 7259 -2F5C 725B -2F5D 72AC -2F5E 7384 -2F5F 7389 -2F60 74DC -2F61 74E6 -2F62 7518 -2F63 751F -2F64 7528 -2F65 7530 -2F66 758B -2F67 7592 -2F68 7676 -2F69 767D -2F6A 76AE -2F6B 76BF -2F6C 76EE -2F6D 77DB -2F6E 77E2 -2F6F 77F3 -2F70 793A -2F71 79B8 -2F72 79BE -2F73 7A74 -2F74 7ACB -2F75 7AF9 -2F76 7C73 -2F77 7CF8 -2F78 7F36 -2F79 7F51 -2F7A 7F8A -2F7B 7FBD -2F7C 8001 -2F7D 800C -2F7E 8012 -2F7F 8033 -2F80 807F -2F81 8089 -2F82 81E3 -2F83 81EA -2F84 81F3 -2F85 81FC -2F86 820C -2F87 821B -2F88 821F -2F89 826E -2F8A 8272 -2F8B 8278 -2F8C 864D -2F8D 866B -2F8E 8840 -2F8F 884C -2F90 8863 -2F91 897E -2F92 898B -2F93 89D2 -2F94 8A00 -2F95 8C37 -2F96 8C46 -2F97 8C55 -2F98 8C78 -2F99 8C9D -2F9A 8D64 -2F9B 8D70 -2F9C 8DB3 -2F9D 8EAB -2F9E 8ECA -2F9F 8F9B -2FA0 8FB0 -2FA1 8FB5 -2FA2 9091 -2FA3 9149 -2FA4 91C6 -2FA5 91CC -2FA6 91D1 -2FA7 9577 -2FA8 9580 -2FA9 961C -2FAA 96B6 -2FAB 96B9 -2FAC 96E8 -2FAD 9751 -2FAE 975E -2FAF 9762 -2FB0 9769 -2FB1 97CB -2FB2 97ED -2FB3 97F3 -2FB4 9801 -2FB5 98A8 -2FB6 98DB -2FB7 98DF -2FB8 9996 -2FB9 9999 -2FBA 99AC -2FBB 9AA8 -2FBC 9AD8 -2FBD 9ADF -2FBE 9B25 -2FBF 9B2F -2FC0 9B32 -2FC1 9B3C -2FC2 9B5A -2FC3 9CE5 -2FC4 9E75 -2FC5 9E7F -2FC6 9EA5 -2FC7 9EBB -2FC8 9EC3 -2FC9 9ECD -2FCA 9ED1 -2FCB 9EF9 -2FCC 9EFD -2FCD 9F0E -2FCE 9F13 -2FCF 9F20 -2FD0 9F3B -2FD1 9F4A -2FD2 9F52 -2FD3 9F8D -2FD4 9F9C -2FD5 9FA0 -3000 0020 -3036 3012 -3038 5341 -3039 5344 -303A 5345 -304C 304B 3099 -304E 304D 3099 -3050 304F 3099 -3052 3051 3099 -3054 3053 3099 -3056 3055 3099 -3058 3057 3099 -305A 3059 3099 -305C 305B 3099 -305E 305D 3099 -3060 305F 3099 -3062 3061 3099 -3065 3064 3099 -3067 3066 3099 -3069 3068 3099 -3070 306F 3099 -3071 306F 309A -3073 3072 3099 -3074 3072 309A -3076 3075 3099 -3077 3075 309A -3079 3078 3099 -307A 3078 309A -307C 307B 3099 -307D 307B 309A -3094 3046 3099 -309B 0020 3099 -309C 0020 309A -309E 309D 3099 -309F 3088 308A -30AC 30AB 3099 -30AE 30AD 3099 -30B0 30AF 3099 -30B2 30B1 3099 -30B4 30B3 3099 -30B6 30B5 3099 -30B8 30B7 3099 -30BA 30B9 3099 -30BC 30BB 3099 -30BE 30BD 3099 -30C0 30BF 3099 -30C2 30C1 3099 -30C5 30C4 3099 -30C7 30C6 3099 -30C9 30C8 3099 -30D0 30CF 3099 -30D1 30CF 309A -30D3 30D2 3099 -30D4 30D2 309A -30D6 30D5 3099 -30D7 30D5 309A -30D9 30D8 3099 -30DA 30D8 309A -30DC 30DB 3099 -30DD 30DB 309A -30F4 30A6 3099 -30F7 30EF 3099 -30F8 30F0 3099 -30F9 30F1 3099 -30FA 30F2 3099 -30FE 30FD 3099 -30FF 30B3 30C8 -3131 1100 -3132 1101 -3133 11AA -3134 1102 -3135 11AC -3136 11AD -3137 1103 -3138 1104 -3139 1105 -313A 11B0 -313B 11B1 -313C 11B2 -313D 11B3 -313E 11B4 -313F 11B5 -3140 111A -3141 1106 -3142 1107 -3143 1108 -3144 1121 -3145 1109 -3146 110A -3147 110B -3148 110C -3149 110D -314A 110E -314B 110F -314C 1110 -314D 1111 -314E 1112 -314F 1161 -3150 1162 -3151 1163 -3152 1164 -3153 1165 -3154 1166 -3155 1167 -3156 1168 -3157 1169 -3158 116A -3159 116B -315A 116C -315B 116D -315C 116E -315D 116F -315E 1170 -315F 1171 -3160 1172 -3161 1173 -3162 1174 -3163 1175 -3164 1160 -3165 1114 -3166 1115 -3167 11C7 -3168 11C8 -3169 11CC -316A 11CE -316B 11D3 -316C 11D7 -316D 11D9 -316E 111C -316F 11DD -3170 11DF -3171 111D -3172 111E -3173 1120 -3174 1122 -3175 1123 -3176 1127 -3177 1129 -3178 112B -3179 112C -317A 112D -317B 112E -317C 112F -317D 1132 -317E 1136 -317F 1140 -3180 1147 -3181 114C -3182 11F1 -3183 11F2 -3184 1157 -3185 1158 -3186 1159 -3187 1184 -3188 1185 -3189 1188 -318A 1191 -318B 1192 -318C 1194 -318D 119E -318E 11A1 -3192 4E00 -3193 4E8C -3194 4E09 -3195 56DB -3196 4E0A -3197 4E2D -3198 4E0B -3199 7532 -319A 4E59 -319B 4E19 -319C 4E01 -319D 5929 -319E 5730 -319F 4EBA -3200 0028 1100 0029 -3201 0028 1102 0029 -3202 0028 1103 0029 -3203 0028 1105 0029 -3204 0028 1106 0029 -3205 0028 1107 0029 -3206 0028 1109 0029 -3207 0028 110B 0029 -3208 0028 110C 0029 -3209 0028 110E 0029 -320A 0028 110F 0029 -320B 0028 1110 0029 -320C 0028 1111 0029 -320D 0028 1112 0029 -320E 0028 1100 1161 0029 -320F 0028 1102 1161 0029 -3210 0028 1103 1161 0029 -3211 0028 1105 1161 0029 -3212 0028 1106 1161 0029 -3213 0028 1107 1161 0029 -3214 0028 1109 1161 0029 -3215 0028 110B 1161 0029 -3216 0028 110C 1161 0029 -3217 0028 110E 1161 0029 -3218 0028 110F 1161 0029 -3219 0028 1110 1161 0029 -321A 0028 1111 1161 0029 -321B 0028 1112 1161 0029 -321C 0028 110C 116E 0029 -321D 0028 110B 1169 110C 1165 11AB 0029 -321E 0028 110B 1169 1112 116E 0029 -3220 0028 4E00 0029 -3221 0028 4E8C 0029 -3222 0028 4E09 0029 -3223 0028 56DB 0029 -3224 0028 4E94 0029 -3225 0028 516D 0029 -3226 0028 4E03 0029 -3227 0028 516B 0029 -3228 0028 4E5D 0029 -3229 0028 5341 0029 -322A 0028 6708 0029 -322B 0028 706B 0029 -322C 0028 6C34 0029 -322D 0028 6728 0029 -322E 0028 91D1 0029 -322F 0028 571F 0029 -3230 0028 65E5 0029 -3231 0028 682A 0029 -3232 0028 6709 0029 -3233 0028 793E 0029 -3234 0028 540D 0029 -3235 0028 7279 0029 -3236 0028 8CA1 0029 -3237 0028 795D 0029 -3238 0028 52B4 0029 -3239 0028 4EE3 0029 -323A 0028 547C 0029 -323B 0028 5B66 0029 -323C 0028 76E3 0029 -323D 0028 4F01 0029 -323E 0028 8CC7 0029 -323F 0028 5354 0029 -3240 0028 796D 0029 -3241 0028 4F11 0029 -3242 0028 81EA 0029 -3243 0028 81F3 0029 -3244 554F -3245 5E7C -3246 6587 -3247 7B8F -3250 0050 0054 0045 -3251 0032 0031 -3252 0032 0032 -3253 0032 0033 -3254 0032 0034 -3255 0032 0035 -3256 0032 0036 -3257 0032 0037 -3258 0032 0038 -3259 0032 0039 -325A 0033 0030 -325B 0033 0031 -325C 0033 0032 -325D 0033 0033 -325E 0033 0034 -325F 0033 0035 -3260 1100 -3261 1102 -3262 1103 -3263 1105 -3264 1106 -3265 1107 -3266 1109 -3267 110B -3268 110C -3269 110E -326A 110F -326B 1110 -326C 1111 -326D 1112 -326E 1100 1161 -326F 1102 1161 -3270 1103 1161 -3271 1105 1161 -3272 1106 1161 -3273 1107 1161 -3274 1109 1161 -3275 110B 1161 -3276 110C 1161 -3277 110E 1161 -3278 110F 1161 -3279 1110 1161 -327A 1111 1161 -327B 1112 1161 -327C 110E 1161 11B7 1100 1169 -327D 110C 116E 110B 1174 -327E 110B 116E -3280 4E00 -3281 4E8C -3282 4E09 -3283 56DB -3284 4E94 -3285 516D -3286 4E03 -3287 516B -3288 4E5D -3289 5341 -328A 6708 -328B 706B -328C 6C34 -328D 6728 -328E 91D1 -328F 571F -3290 65E5 -3291 682A -3292 6709 -3293 793E -3294 540D -3295 7279 -3296 8CA1 -3297 795D -3298 52B4 -3299 79D8 -329A 7537 -329B 5973 -329C 9069 -329D 512A -329E 5370 -329F 6CE8 -32A0 9805 -32A1 4F11 -32A2 5199 -32A3 6B63 -32A4 4E0A -32A5 4E2D -32A6 4E0B -32A7 5DE6 -32A8 53F3 -32A9 533B -32AA 5B97 -32AB 5B66 -32AC 76E3 -32AD 4F01 -32AE 8CC7 -32AF 5354 -32B0 591C -32B1 0033 0036 -32B2 0033 0037 -32B3 0033 0038 -32B4 0033 0039 -32B5 0034 0030 -32B6 0034 0031 -32B7 0034 0032 -32B8 0034 0033 -32B9 0034 0034 -32BA 0034 0035 -32BB 0034 0036 -32BC 0034 0037 -32BD 0034 0038 -32BE 0034 0039 -32BF 0035 0030 -32C0 0031 6708 -32C1 0032 6708 -32C2 0033 6708 -32C3 0034 6708 -32C4 0035 6708 -32C5 0036 6708 -32C6 0037 6708 -32C7 0038 6708 -32C8 0039 6708 -32C9 0031 0030 6708 -32CA 0031 0031 6708 -32CB 0031 0032 6708 -32CC 0048 0067 -32CD 0065 0072 0067 -32CE 0065 0056 -32CF 004C 0054 0044 -32D0 30A2 -32D1 30A4 -32D2 30A6 -32D3 30A8 -32D4 30AA -32D5 30AB -32D6 30AD -32D7 30AF -32D8 30B1 -32D9 30B3 -32DA 30B5 -32DB 30B7 -32DC 30B9 -32DD 30BB -32DE 30BD -32DF 30BF -32E0 30C1 -32E1 30C4 -32E2 30C6 -32E3 30C8 -32E4 30CA -32E5 30CB -32E6 30CC -32E7 30CD -32E8 30CE -32E9 30CF -32EA 30D2 -32EB 30D5 -32EC 30D8 -32ED 30DB -32EE 30DE -32EF 30DF -32F0 30E0 -32F1 30E1 -32F2 30E2 -32F3 30E4 -32F4 30E6 -32F5 30E8 -32F6 30E9 -32F7 30EA -32F8 30EB -32F9 30EC -32FA 30ED -32FB 30EF -32FC 30F0 -32FD 30F1 -32FE 30F2 -3300 30A2 30D1 30FC 30C8 -3301 30A2 30EB 30D5 30A1 -3302 30A2 30F3 30DA 30A2 -3303 30A2 30FC 30EB -3304 30A4 30CB 30F3 30B0 -3305 30A4 30F3 30C1 -3306 30A6 30A9 30F3 -3307 30A8 30B9 30AF 30FC 30C9 -3308 30A8 30FC 30AB 30FC -3309 30AA 30F3 30B9 -330A 30AA 30FC 30E0 -330B 30AB 30A4 30EA -330C 30AB 30E9 30C3 30C8 -330D 30AB 30ED 30EA 30FC -330E 30AC 30ED 30F3 -330F 30AC 30F3 30DE -3310 30AE 30AC -3311 30AE 30CB 30FC -3312 30AD 30E5 30EA 30FC -3313 30AE 30EB 30C0 30FC -3314 30AD 30ED -3315 30AD 30ED 30B0 30E9 30E0 -3316 30AD 30ED 30E1 30FC 30C8 30EB -3317 30AD 30ED 30EF 30C3 30C8 -3318 30B0 30E9 30E0 -3319 30B0 30E9 30E0 30C8 30F3 -331A 30AF 30EB 30BC 30A4 30ED -331B 30AF 30ED 30FC 30CD -331C 30B1 30FC 30B9 -331D 30B3 30EB 30CA -331E 30B3 30FC 30DD -331F 30B5 30A4 30AF 30EB -3320 30B5 30F3 30C1 30FC 30E0 -3321 30B7 30EA 30F3 30B0 -3322 30BB 30F3 30C1 -3323 30BB 30F3 30C8 -3324 30C0 30FC 30B9 -3325 30C7 30B7 -3326 30C9 30EB -3327 30C8 30F3 -3328 30CA 30CE -3329 30CE 30C3 30C8 -332A 30CF 30A4 30C4 -332B 30D1 30FC 30BB 30F3 30C8 -332C 30D1 30FC 30C4 -332D 30D0 30FC 30EC 30EB -332E 30D4 30A2 30B9 30C8 30EB -332F 30D4 30AF 30EB -3330 30D4 30B3 -3331 30D3 30EB -3332 30D5 30A1 30E9 30C3 30C9 -3333 30D5 30A3 30FC 30C8 -3334 30D6 30C3 30B7 30A7 30EB -3335 30D5 30E9 30F3 -3336 30D8 30AF 30BF 30FC 30EB -3337 30DA 30BD -3338 30DA 30CB 30D2 -3339 30D8 30EB 30C4 -333A 30DA 30F3 30B9 -333B 30DA 30FC 30B8 -333C 30D9 30FC 30BF -333D 30DD 30A4 30F3 30C8 -333E 30DC 30EB 30C8 -333F 30DB 30F3 -3340 30DD 30F3 30C9 -3341 30DB 30FC 30EB -3342 30DB 30FC 30F3 -3343 30DE 30A4 30AF 30ED -3344 30DE 30A4 30EB -3345 30DE 30C3 30CF -3346 30DE 30EB 30AF -3347 30DE 30F3 30B7 30E7 30F3 -3348 30DF 30AF 30ED 30F3 -3349 30DF 30EA -334A 30DF 30EA 30D0 30FC 30EB -334B 30E1 30AC -334C 30E1 30AC 30C8 30F3 -334D 30E1 30FC 30C8 30EB -334E 30E4 30FC 30C9 -334F 30E4 30FC 30EB -3350 30E6 30A2 30F3 -3351 30EA 30C3 30C8 30EB -3352 30EA 30E9 -3353 30EB 30D4 30FC -3354 30EB 30FC 30D6 30EB -3355 30EC 30E0 -3356 30EC 30F3 30C8 30B2 30F3 -3357 30EF 30C3 30C8 -3358 0030 70B9 -3359 0031 70B9 -335A 0032 70B9 -335B 0033 70B9 -335C 0034 70B9 -335D 0035 70B9 -335E 0036 70B9 -335F 0037 70B9 -3360 0038 70B9 -3361 0039 70B9 -3362 0031 0030 70B9 -3363 0031 0031 70B9 -3364 0031 0032 70B9 -3365 0031 0033 70B9 -3366 0031 0034 70B9 -3367 0031 0035 70B9 -3368 0031 0036 70B9 -3369 0031 0037 70B9 -336A 0031 0038 70B9 -336B 0031 0039 70B9 -336C 0032 0030 70B9 -336D 0032 0031 70B9 -336E 0032 0032 70B9 -336F 0032 0033 70B9 -3370 0032 0034 70B9 -3371 0068 0050 0061 -3372 0064 0061 -3373 0041 0055 -3374 0062 0061 0072 -3375 006F 0056 -3376 0070 0063 -3377 0064 006D -3378 0064 006D 00B2 -3379 0064 006D 00B3 -337A 0049 0055 -337B 5E73 6210 -337C 662D 548C -337D 5927 6B63 -337E 660E 6CBB -337F 682A 5F0F 4F1A 793E -3380 0070 0041 -3381 006E 0041 -3382 03BC 0041 -3383 006D 0041 -3384 006B 0041 -3385 004B 0042 -3386 004D 0042 -3387 0047 0042 -3388 0063 0061 006C -3389 006B 0063 0061 006C -338A 0070 0046 -338B 006E 0046 -338C 03BC 0046 -338D 03BC 0067 -338E 006D 0067 -338F 006B 0067 -3390 0048 007A -3391 006B 0048 007A -3392 004D 0048 007A -3393 0047 0048 007A -3394 0054 0048 007A -3395 03BC 2113 -3396 006D 2113 -3397 0064 2113 -3398 006B 2113 -3399 0066 006D -339A 006E 006D -339B 03BC 006D -339C 006D 006D -339D 0063 006D -339E 006B 006D -339F 006D 006D 00B2 -33A0 0063 006D 00B2 -33A1 006D 00B2 -33A2 006B 006D 00B2 -33A3 006D 006D 00B3 -33A4 0063 006D 00B3 -33A5 006D 00B3 -33A6 006B 006D 00B3 -33A7 006D 2215 0073 -33A8 006D 2215 0073 00B2 -33A9 0050 0061 -33AA 006B 0050 0061 -33AB 004D 0050 0061 -33AC 0047 0050 0061 -33AD 0072 0061 0064 -33AE 0072 0061 0064 2215 0073 -33AF 0072 0061 0064 2215 0073 00B2 -33B0 0070 0073 -33B1 006E 0073 -33B2 03BC 0073 -33B3 006D 0073 -33B4 0070 0056 -33B5 006E 0056 -33B6 03BC 0056 -33B7 006D 0056 -33B8 006B 0056 -33B9 004D 0056 -33BA 0070 0057 -33BB 006E 0057 -33BC 03BC 0057 -33BD 006D 0057 -33BE 006B 0057 -33BF 004D 0057 -33C0 006B 03A9 -33C1 004D 03A9 -33C2 0061 002E 006D 002E -33C3 0042 0071 -33C4 0063 0063 -33C5 0063 0064 -33C6 0043 2215 006B 0067 -33C7 0043 006F 002E -33C8 0064 0042 -33C9 0047 0079 -33CA 0068 0061 -33CB 0048 0050 -33CC 0069 006E -33CD 004B 004B -33CE 004B 004D -33CF 006B 0074 -33D0 006C 006D -33D1 006C 006E -33D2 006C 006F 0067 -33D3 006C 0078 -33D4 006D 0062 -33D5 006D 0069 006C -33D6 006D 006F 006C -33D7 0050 0048 -33D8 0070 002E 006D 002E -33D9 0050 0050 004D -33DA 0050 0052 -33DB 0073 0072 -33DC 0053 0076 -33DD 0057 0062 -33DE 0056 2215 006D -33DF 0041 2215 006D -33E0 0031 65E5 -33E1 0032 65E5 -33E2 0033 65E5 -33E3 0034 65E5 -33E4 0035 65E5 -33E5 0036 65E5 -33E6 0037 65E5 -33E7 0038 65E5 -33E8 0039 65E5 -33E9 0031 0030 65E5 -33EA 0031 0031 65E5 -33EB 0031 0032 65E5 -33EC 0031 0033 65E5 -33ED 0031 0034 65E5 -33EE 0031 0035 65E5 -33EF 0031 0036 65E5 -33F0 0031 0037 65E5 -33F1 0031 0038 65E5 -33F2 0031 0039 65E5 -33F3 0032 0030 65E5 -33F4 0032 0031 65E5 -33F5 0032 0032 65E5 -33F6 0032 0033 65E5 -33F7 0032 0034 65E5 -33F8 0032 0035 65E5 -33F9 0032 0036 65E5 -33FA 0032 0037 65E5 -33FB 0032 0038 65E5 -33FC 0032 0039 65E5 -33FD 0033 0030 65E5 -33FE 0033 0031 65E5 -33FF 0067 0061 006C -A69C 044A -A69D 044C -A770 A76F -A7F8 0126 -A7F9 0153 -AB5C A727 -AB5D AB37 -AB5E 026B -AB5F AB52 -F900 8C48 -F901 66F4 -F902 8ECA -F903 8CC8 -F904 6ED1 -F905 4E32 -F906 53E5 -F907 F908 9F9C -F909 5951 -F90A 91D1 -F90B 5587 -F90C 5948 -F90D 61F6 -F90E 7669 -F90F 7F85 -F910 863F -F911 87BA -F912 88F8 -F913 908F -F914 6A02 -F915 6D1B -F916 70D9 -F917 73DE -F918 843D -F919 916A -F91A 99F1 -F91B 4E82 -F91C 5375 -F91D 6B04 -F91E 721B -F91F 862D -F920 9E1E -F921 5D50 -F922 6FEB -F923 85CD -F924 8964 -F925 62C9 -F926 81D8 -F927 881F -F928 5ECA -F929 6717 -F92A 6D6A -F92B 72FC -F92C 90CE -F92D 4F86 -F92E 51B7 -F92F 52DE -F930 64C4 -F931 6AD3 -F932 7210 -F933 76E7 -F934 8001 -F935 8606 -F936 865C -F937 8DEF -F938 9732 -F939 9B6F -F93A 9DFA -F93B 788C -F93C 797F -F93D 7DA0 -F93E 83C9 -F93F 9304 -F940 9E7F -F941 8AD6 -F942 58DF -F943 5F04 -F944 7C60 -F945 807E -F946 7262 -F947 78CA -F948 8CC2 -F949 96F7 -F94A 58D8 -F94B 5C62 -F94C 6A13 -F94D 6DDA -F94E 6F0F -F94F 7D2F -F950 7E37 -F951 964B -F952 52D2 -F953 808B -F954 51DC -F955 51CC -F956 7A1C -F957 7DBE -F958 83F1 -F959 9675 -F95A 8B80 -F95B 62CF -F95C 6A02 -F95D 8AFE -F95E 4E39 -F95F 5BE7 -F960 6012 -F961 7387 -F962 7570 -F963 5317 -F964 78FB -F965 4FBF -F966 5FA9 -F967 4E0D -F968 6CCC -F969 6578 -F96A 7D22 -F96B 53C3 -F96C 585E -F96D 7701 -F96E 8449 -F96F 8AAA -F970 6BBA -F971 8FB0 -F972 6C88 -F973 62FE -F974 82E5 -F975 63A0 -F976 7565 -F977 4EAE -F978 5169 -F979 51C9 -F97A 6881 -F97B 7CE7 -F97C 826F -F97D 8AD2 -F97E 91CF -F97F 52F5 -F980 5442 -F981 5973 -F982 5EEC -F983 65C5 -F984 6FFE -F985 792A -F986 95AD -F987 9A6A -F988 9E97 -F989 9ECE -F98A 529B -F98B 66C6 -F98C 6B77 -F98D 8F62 -F98E 5E74 -F98F 6190 -F990 6200 -F991 649A -F992 6F23 -F993 7149 -F994 7489 -F995 79CA -F996 7DF4 -F997 806F -F998 8F26 -F999 84EE -F99A 9023 -F99B 934A -F99C 5217 -F99D 52A3 -F99E 54BD -F99F 70C8 -F9A0 88C2 -F9A1 8AAA -F9A2 5EC9 -F9A3 5FF5 -F9A4 637B -F9A5 6BAE -F9A6 7C3E -F9A7 7375 -F9A8 4EE4 -F9A9 56F9 -F9AA 5BE7 -F9AB 5DBA -F9AC 601C -F9AD 73B2 -F9AE 7469 -F9AF 7F9A -F9B0 8046 -F9B1 9234 -F9B2 96F6 -F9B3 9748 -F9B4 9818 -F9B5 4F8B -F9B6 79AE -F9B7 91B4 -F9B8 96B8 -F9B9 60E1 -F9BA 4E86 -F9BB 50DA -F9BC 5BEE -F9BD 5C3F -F9BE 6599 -F9BF 6A02 -F9C0 71CE -F9C1 7642 -F9C2 84FC -F9C3 907C -F9C4 9F8D -F9C5 6688 -F9C6 962E -F9C7 5289 -F9C8 677B -F9C9 67F3 -F9CA 6D41 -F9CB 6E9C -F9CC 7409 -F9CD 7559 -F9CE 786B -F9CF 7D10 -F9D0 985E -F9D1 516D -F9D2 622E -F9D3 9678 -F9D4 502B -F9D5 5D19 -F9D6 6DEA -F9D7 8F2A -F9D8 5F8B -F9D9 6144 -F9DA 6817 -F9DB 7387 -F9DC 9686 -F9DD 5229 -F9DE 540F -F9DF 5C65 -F9E0 6613 -F9E1 674E -F9E2 68A8 -F9E3 6CE5 -F9E4 7406 -F9E5 75E2 -F9E6 7F79 -F9E7 88CF -F9E8 88E1 -F9E9 91CC -F9EA 96E2 -F9EB 533F -F9EC 6EBA -F9ED 541D -F9EE 71D0 -F9EF 7498 -F9F0 85FA -F9F1 96A3 -F9F2 9C57 -F9F3 9E9F -F9F4 6797 -F9F5 6DCB -F9F6 81E8 -F9F7 7ACB -F9F8 7B20 -F9F9 7C92 -F9FA 72C0 -F9FB 7099 -F9FC 8B58 -F9FD 4EC0 -F9FE 8336 -F9FF 523A -FA00 5207 -FA01 5EA6 -FA02 62D3 -FA03 7CD6 -FA04 5B85 -FA05 6D1E -FA06 66B4 -FA07 8F3B -FA08 884C -FA09 964D -FA0A 898B -FA0B 5ED3 -FA0C 5140 -FA0D 55C0 -FA10 585A -FA12 6674 -FA15 51DE -FA16 732A -FA17 76CA -FA18 793C -FA19 795E -FA1A 7965 -FA1B 798F -FA1C 9756 -FA1D 7CBE -FA1E 7FBD -FA20 8612 -FA22 8AF8 -FA25 9038 -FA26 90FD -FA2A 98EF -FA2B 98FC -FA2C 9928 -FA2D 9DB4 -FA2E 90DE -FA2F 96B7 -FA30 4FAE -FA31 50E7 -FA32 514D -FA33 52C9 -FA34 52E4 -FA35 5351 -FA36 559D -FA37 5606 -FA38 5668 -FA39 5840 -FA3A 58A8 -FA3B 5C64 -FA3C 5C6E -FA3D 6094 -FA3E 6168 -FA3F 618E -FA40 61F2 -FA41 654F -FA42 65E2 -FA43 6691 -FA44 6885 -FA45 6D77 -FA46 6E1A -FA47 6F22 -FA48 716E -FA49 722B -FA4A 7422 -FA4B 7891 -FA4C 793E -FA4D 7949 -FA4E 7948 -FA4F 7950 -FA50 7956 -FA51 795D -FA52 798D -FA53 798E -FA54 7A40 -FA55 7A81 -FA56 7BC0 -FA57 7DF4 -FA58 7E09 -FA59 7E41 -FA5A 7F72 -FA5B 8005 -FA5C 81ED -FA5D FA5E 8279 -FA5F 8457 -FA60 8910 -FA61 8996 -FA62 8B01 -FA63 8B39 -FA64 8CD3 -FA65 8D08 -FA66 8FB6 -FA67 9038 -FA68 96E3 -FA69 97FF -FA6A 983B -FA6B 6075 -FA6C 242EE -FA6D 8218 -FA70 4E26 -FA71 51B5 -FA72 5168 -FA73 4F80 -FA74 5145 -FA75 5180 -FA76 52C7 -FA77 52FA -FA78 559D -FA79 5555 -FA7A 5599 -FA7B 55E2 -FA7C 585A -FA7D 58B3 -FA7E 5944 -FA7F 5954 -FA80 5A62 -FA81 5B28 -FA82 5ED2 -FA83 5ED9 -FA84 5F69 -FA85 5FAD -FA86 60D8 -FA87 614E -FA88 6108 -FA89 618E -FA8A 6160 -FA8B 61F2 -FA8C 6234 -FA8D 63C4 -FA8E 641C -FA8F 6452 -FA90 6556 -FA91 6674 -FA92 6717 -FA93 671B -FA94 6756 -FA95 6B79 -FA96 6BBA -FA97 6D41 -FA98 6EDB -FA99 6ECB -FA9A 6F22 -FA9B 701E -FA9C 716E -FA9D 77A7 -FA9E 7235 -FA9F 72AF -FAA0 732A -FAA1 7471 -FAA2 7506 -FAA3 753B -FAA4 761D -FAA5 761F -FAA6 76CA -FAA7 76DB -FAA8 76F4 -FAA9 774A -FAAA 7740 -FAAB 78CC -FAAC 7AB1 -FAAD 7BC0 -FAAE 7C7B -FAAF 7D5B -FAB0 7DF4 -FAB1 7F3E -FAB2 8005 -FAB3 8352 -FAB4 83EF -FAB5 8779 -FAB6 8941 -FAB7 8986 -FAB8 8996 -FAB9 8ABF -FABA 8AF8 -FABB 8ACB -FABC 8B01 -FABD 8AFE -FABE 8AED -FABF 8B39 -FAC0 8B8A -FAC1 8D08 -FAC2 8F38 -FAC3 9072 -FAC4 9199 -FAC5 9276 -FAC6 967C -FAC7 96E3 -FAC8 9756 -FAC9 97DB -FACA 97FF -FACB 980B -FACC 983B -FACD 9B12 -FACE 9F9C -FACF 2284A -FAD0 22844 -FAD1 233D5 -FAD2 3B9D -FAD3 4018 -FAD4 4039 -FAD5 25249 -FAD6 25CD0 -FAD7 27ED3 -FAD8 9F43 -FAD9 9F8E -FB00 0066 0066 -FB01 0066 0069 -FB02 0066 006C -FB03 0066 0066 0069 -FB04 0066 0066 006C -FB05 017F 0074 -FB06 0073 0074 -FB13 0574 0576 -FB14 0574 0565 -FB15 0574 056B -FB16 057E 0576 -FB17 0574 056D -FB1D 05D9 05B4 -FB1F 05F2 05B7 -FB20 05E2 -FB21 05D0 -FB22 05D3 -FB23 05D4 -FB24 05DB -FB25 05DC -FB26 05DD -FB27 05E8 -FB28 05EA -FB29 002B -FB2A 05E9 05C1 -FB2B 05E9 05C2 -FB2C FB49 05C1 -FB2D FB49 05C2 -FB2E 05D0 05B7 -FB2F 05D0 05B8 -FB30 05D0 05BC -FB31 05D1 05BC -FB32 05D2 05BC -FB33 05D3 05BC -FB34 05D4 05BC -FB35 05D5 05BC -FB36 05D6 05BC -FB38 05D8 05BC -FB39 05D9 05BC -FB3A 05DA 05BC -FB3B 05DB 05BC -FB3C 05DC 05BC -FB3E 05DE 05BC -FB40 05E0 05BC -FB41 05E1 05BC -FB43 05E3 05BC -FB44 05E4 05BC -FB46 05E6 05BC -FB47 05E7 05BC -FB48 05E8 05BC -FB49 05E9 05BC -FB4A 05EA 05BC -FB4B 05D5 05B9 -FB4C 05D1 05BF -FB4D 05DB 05BF -FB4E 05E4 05BF -FB4F 05D0 05DC -FB50 0671 -FB51 0671 -FB52 067B -FB53 067B -FB54 067B -FB55 067B -FB56 067E -FB57 067E -FB58 067E -FB59 067E -FB5A 0680 -FB5B 0680 -FB5C 0680 -FB5D 0680 -FB5E 067A -FB5F 067A -FB60 067A -FB61 067A -FB62 067F -FB63 067F -FB64 067F -FB65 067F -FB66 0679 -FB67 0679 -FB68 0679 -FB69 0679 -FB6A 06A4 -FB6B 06A4 -FB6C 06A4 -FB6D 06A4 -FB6E 06A6 -FB6F 06A6 -FB70 06A6 -FB71 06A6 -FB72 0684 -FB73 0684 -FB74 0684 -FB75 0684 -FB76 0683 -FB77 0683 -FB78 0683 -FB79 0683 -FB7A 0686 -FB7B 0686 -FB7C 0686 -FB7D 0686 -FB7E 0687 -FB7F 0687 -FB80 0687 -FB81 0687 -FB82 068D -FB83 068D -FB84 068C -FB85 068C -FB86 068E -FB87 068E -FB88 0688 -FB89 0688 -FB8A 0698 -FB8B 0698 -FB8C 0691 -FB8D 0691 -FB8E 06A9 -FB8F 06A9 -FB90 06A9 -FB91 06A9 -FB92 06AF -FB93 06AF -FB94 06AF -FB95 06AF -FB96 06B3 -FB97 06B3 -FB98 06B3 -FB99 06B3 -FB9A 06B1 -FB9B 06B1 -FB9C 06B1 -FB9D 06B1 -FB9E 06BA -FB9F 06BA -FBA0 06BB -FBA1 06BB -FBA2 06BB -FBA3 06BB -FBA4 06C0 -FBA5 06C0 -FBA6 06C1 -FBA7 06C1 -FBA8 06C1 -FBA9 06C1 -FBAA 06BE -FBAB 06BE -FBAC 06BE -FBAD 06BE -FBAE 06D2 -FBAF 06D2 -FBB0 06D3 -FBB1 06D3 -FBD3 06AD -FBD4 06AD -FBD5 06AD -FBD6 06AD -FBD7 06C7 -FBD8 06C7 -FBD9 06C6 -FBDA 06C6 -FBDB 06C8 -FBDC 06C8 -FBDD 0677 -FBDE 06CB -FBDF 06CB -FBE0 06C5 -FBE1 06C5 -FBE2 06C9 -FBE3 06C9 -FBE4 06D0 -FBE5 06D0 -FBE6 06D0 -FBE7 06D0 -FBE8 0649 -FBE9 0649 -FBEA 0626 0627 -FBEB 0626 0627 -FBEC 0626 06D5 -FBED 0626 06D5 -FBEE 0626 0648 -FBEF 0626 0648 -FBF0 0626 06C7 -FBF1 0626 06C7 -FBF2 0626 06C6 -FBF3 0626 06C6 -FBF4 0626 06C8 -FBF5 0626 06C8 -FBF6 0626 06D0 -FBF7 0626 06D0 -FBF8 0626 06D0 -FBF9 0626 0649 -FBFA 0626 0649 -FBFB 0626 0649 -FBFC 06CC -FBFD 06CC -FBFE 06CC -FBFF 06CC -FC00 0626 062C -FC01 0626 062D -FC02 0626 0645 -FC03 0626 0649 -FC04 0626 064A -FC05 0628 062C -FC06 0628 062D -FC07 0628 062E -FC08 0628 0645 -FC09 0628 0649 -FC0A 0628 064A -FC0B 062A 062C -FC0C 062A 062D -FC0D 062A 062E -FC0E 062A 0645 -FC0F 062A 0649 -FC10 062A 064A -FC11 062B 062C -FC12 062B 0645 -FC13 062B 0649 -FC14 062B 064A -FC15 062C 062D -FC16 062C 0645 -FC17 062D 062C -FC18 062D 0645 -FC19 062E 062C -FC1A 062E 062D -FC1B 062E 0645 -FC1C 0633 062C -FC1D 0633 062D -FC1E 0633 062E -FC1F 0633 0645 -FC20 0635 062D -FC21 0635 0645 -FC22 0636 062C -FC23 0636 062D -FC24 0636 062E -FC25 0636 0645 -FC26 0637 062D -FC27 0637 0645 -FC28 0638 0645 -FC29 0639 062C -FC2A 0639 0645 -FC2B 063A 062C -FC2C 063A 0645 -FC2D 0641 062C -FC2E 0641 062D -FC2F 0641 062E -FC30 0641 0645 -FC31 0641 0649 -FC32 0641 064A -FC33 0642 062D -FC34 0642 0645 -FC35 0642 0649 -FC36 0642 064A -FC37 0643 0627 -FC38 0643 062C -FC39 0643 062D -FC3A 0643 062E -FC3B 0643 0644 -FC3C 0643 0645 -FC3D 0643 0649 -FC3E 0643 064A -FC3F 0644 062C -FC40 0644 062D -FC41 0644 062E -FC42 0644 0645 -FC43 0644 0649 -FC44 0644 064A -FC45 0645 062C -FC46 0645 062D -FC47 0645 062E -FC48 0645 0645 -FC49 0645 0649 -FC4A 0645 064A -FC4B 0646 062C -FC4C 0646 062D -FC4D 0646 062E -FC4E 0646 0645 -FC4F 0646 0649 -FC50 0646 064A -FC51 0647 062C -FC52 0647 0645 -FC53 0647 0649 -FC54 0647 064A -FC55 064A 062C -FC56 064A 062D -FC57 064A 062E -FC58 064A 0645 -FC59 064A 0649 -FC5A 064A 064A -FC5B 0630 0670 -FC5C 0631 0670 -FC5D 0649 0670 -FC5E 0020 064C 0651 -FC5F 0020 064D 0651 -FC60 0020 064E 0651 -FC61 0020 064F 0651 -FC62 0020 0650 0651 -FC63 0020 0651 0670 -FC64 0626 0631 -FC65 0626 0632 -FC66 0626 0645 -FC67 0626 0646 -FC68 0626 0649 -FC69 0626 064A -FC6A 0628 0631 -FC6B 0628 0632 -FC6C 0628 0645 -FC6D 0628 0646 -FC6E 0628 0649 -FC6F 0628 064A -FC70 062A 0631 -FC71 062A 0632 -FC72 062A 0645 -FC73 062A 0646 -FC74 062A 0649 -FC75 062A 064A -FC76 062B 0631 -FC77 062B 0632 -FC78 062B 0645 -FC79 062B 0646 -FC7A 062B 0649 -FC7B 062B 064A -FC7C 0641 0649 -FC7D 0641 064A -FC7E 0642 0649 -FC7F 0642 064A -FC80 0643 0627 -FC81 0643 0644 -FC82 0643 0645 -FC83 0643 0649 -FC84 0643 064A -FC85 0644 0645 -FC86 0644 0649 -FC87 0644 064A -FC88 0645 0627 -FC89 0645 0645 -FC8A 0646 0631 -FC8B 0646 0632 -FC8C 0646 0645 -FC8D 0646 0646 -FC8E 0646 0649 -FC8F 0646 064A -FC90 0649 0670 -FC91 064A 0631 -FC92 064A 0632 -FC93 064A 0645 -FC94 064A 0646 -FC95 064A 0649 -FC96 064A 064A -FC97 0626 062C -FC98 0626 062D -FC99 0626 062E -FC9A 0626 0645 -FC9B 0626 0647 -FC9C 0628 062C -FC9D 0628 062D -FC9E 0628 062E -FC9F 0628 0645 -FCA0 0628 0647 -FCA1 062A 062C -FCA2 062A 062D -FCA3 062A 062E -FCA4 062A 0645 -FCA5 062A 0647 -FCA6 062B 0645 -FCA7 062C 062D -FCA8 062C 0645 -FCA9 062D 062C -FCAA 062D 0645 -FCAB 062E 062C -FCAC 062E 0645 -FCAD 0633 062C -FCAE 0633 062D -FCAF 0633 062E -FCB0 0633 0645 -FCB1 0635 062D -FCB2 0635 062E -FCB3 0635 0645 -FCB4 0636 062C -FCB5 0636 062D -FCB6 0636 062E -FCB7 0636 0645 -FCB8 0637 062D -FCB9 0638 0645 -FCBA 0639 062C -FCBB 0639 0645 -FCBC 063A 062C -FCBD 063A 0645 -FCBE 0641 062C -FCBF 0641 062D -FCC0 0641 062E -FCC1 0641 0645 -FCC2 0642 062D -FCC3 0642 0645 -FCC4 0643 062C -FCC5 0643 062D -FCC6 0643 062E -FCC7 0643 0644 -FCC8 0643 0645 -FCC9 0644 062C -FCCA 0644 062D -FCCB 0644 062E -FCCC 0644 0645 -FCCD 0644 0647 -FCCE 0645 062C -FCCF 0645 062D -FCD0 0645 062E -FCD1 0645 0645 -FCD2 0646 062C -FCD3 0646 062D -FCD4 0646 062E -FCD5 0646 0645 -FCD6 0646 0647 -FCD7 0647 062C -FCD8 0647 0645 -FCD9 0647 0670 -FCDA 064A 062C -FCDB 064A 062D -FCDC 064A 062E -FCDD 064A 0645 -FCDE 064A 0647 -FCDF 0626 0645 -FCE0 0626 0647 -FCE1 0628 0645 -FCE2 0628 0647 -FCE3 062A 0645 -FCE4 062A 0647 -FCE5 062B 0645 -FCE6 062B 0647 -FCE7 0633 0645 -FCE8 0633 0647 -FCE9 0634 0645 -FCEA 0634 0647 -FCEB 0643 0644 -FCEC 0643 0645 -FCED 0644 0645 -FCEE 0646 0645 -FCEF 0646 0647 -FCF0 064A 0645 -FCF1 064A 0647 -FCF2 0640 064E 0651 -FCF3 0640 064F 0651 -FCF4 0640 0650 0651 -FCF5 0637 0649 -FCF6 0637 064A -FCF7 0639 0649 -FCF8 0639 064A -FCF9 063A 0649 -FCFA 063A 064A -FCFB 0633 0649 -FCFC 0633 064A -FCFD 0634 0649 -FCFE 0634 064A -FCFF 062D 0649 -FD00 062D 064A -FD01 062C 0649 -FD02 062C 064A -FD03 062E 0649 -FD04 062E 064A -FD05 0635 0649 -FD06 0635 064A -FD07 0636 0649 -FD08 0636 064A -FD09 0634 062C -FD0A 0634 062D -FD0B 0634 062E -FD0C 0634 0645 -FD0D 0634 0631 -FD0E 0633 0631 -FD0F 0635 0631 -FD10 0636 0631 -FD11 0637 0649 -FD12 0637 064A -FD13 0639 0649 -FD14 0639 064A -FD15 063A 0649 -FD16 063A 064A -FD17 0633 0649 -FD18 0633 064A -FD19 0634 0649 -FD1A 0634 064A -FD1B 062D 0649 -FD1C 062D 064A -FD1D 062C 0649 -FD1E 062C 064A -FD1F 062E 0649 -FD20 062E 064A -FD21 0635 0649 -FD22 0635 064A -FD23 0636 0649 -FD24 0636 064A -FD25 0634 062C -FD26 0634 062D -FD27 0634 062E -FD28 0634 0645 -FD29 0634 0631 -FD2A 0633 0631 -FD2B 0635 0631 -FD2C 0636 0631 -FD2D 0634 062C -FD2E 0634 062D -FD2F 0634 062E -FD30 0634 0645 -FD31 0633 0647 -FD32 0634 0647 -FD33 0637 0645 -FD34 0633 062C -FD35 0633 062D -FD36 0633 062E -FD37 0634 062C -FD38 0634 062D -FD39 0634 062E -FD3A 0637 0645 -FD3B 0638 0645 -FD3C 0627 064B -FD3D 0627 064B -FD50 062A 062C 0645 -FD51 062A 062D 062C -FD52 062A 062D 062C -FD53 062A 062D 0645 -FD54 062A 062E 0645 -FD55 062A 0645 062C -FD56 062A 0645 062D -FD57 062A 0645 062E -FD58 062C 0645 062D -FD59 062C 0645 062D -FD5A 062D 0645 064A -FD5B 062D 0645 0649 -FD5C 0633 062D 062C -FD5D 0633 062C 062D -FD5E 0633 062C 0649 -FD5F 0633 0645 062D -FD60 0633 0645 062D -FD61 0633 0645 062C -FD62 0633 0645 0645 -FD63 0633 0645 0645 -FD64 0635 062D 062D -FD65 0635 062D 062D -FD66 0635 0645 0645 -FD67 0634 062D 0645 -FD68 0634 062D 0645 -FD69 0634 062C 064A -FD6A 0634 0645 062E -FD6B 0634 0645 062E -FD6C 0634 0645 0645 -FD6D 0634 0645 0645 -FD6E 0636 062D 0649 -FD6F 0636 062E 0645 -FD70 0636 062E 0645 -FD71 0637 0645 062D -FD72 0637 0645 062D -FD73 0637 0645 0645 -FD74 0637 0645 064A -FD75 0639 062C 0645 -FD76 0639 0645 0645 -FD77 0639 0645 0645 -FD78 0639 0645 0649 -FD79 063A 0645 0645 -FD7A 063A 0645 064A -FD7B 063A 0645 0649 -FD7C 0641 062E 0645 -FD7D 0641 062E 0645 -FD7E 0642 0645 062D -FD7F 0642 0645 0645 -FD80 0644 062D 0645 -FD81 0644 062D 064A -FD82 0644 062D 0649 -FD83 0644 062C 062C -FD84 0644 062C 062C -FD85 0644 062E 0645 -FD86 0644 062E 0645 -FD87 0644 0645 062D -FD88 0644 0645 062D -FD89 0645 062D 062C -FD8A 0645 062D 0645 -FD8B 0645 062D 064A -FD8C 0645 062C 062D -FD8D 0645 062C 0645 -FD8E 0645 062E 062C -FD8F 0645 062E 0645 -FD92 0645 062C 062E -FD93 0647 0645 062C -FD94 0647 0645 0645 -FD95 0646 062D 0645 -FD96 0646 062D 0649 -FD97 0646 062C 0645 -FD98 0646 062C 0645 -FD99 0646 062C 0649 -FD9A 0646 0645 064A -FD9B 0646 0645 0649 -FD9C 064A 0645 0645 -FD9D 064A 0645 0645 -FD9E 0628 062E 064A -FD9F 062A 062C 064A -FDA0 062A 062C 0649 -FDA1 062A 062E 064A -FDA2 062A 062E 0649 -FDA3 062A 0645 064A -FDA4 062A 0645 0649 -FDA5 062C 0645 064A -FDA6 062C 062D 0649 -FDA7 062C 0645 0649 -FDA8 0633 062E 0649 -FDA9 0635 062D 064A -FDAA 0634 062D 064A -FDAB 0636 062D 064A -FDAC 0644 062C 064A -FDAD 0644 0645 064A -FDAE 064A 062D 064A -FDAF 064A 062C 064A -FDB0 064A 0645 064A -FDB1 0645 0645 064A -FDB2 0642 0645 064A -FDB3 0646 062D 064A -FDB4 0642 0645 062D -FDB5 0644 062D 0645 -FDB6 0639 0645 064A -FDB7 0643 0645 064A -FDB8 0646 062C 062D -FDB9 0645 062E 064A -FDBA 0644 062C 0645 -FDBB 0643 0645 0645 -FDBC 0644 062C 0645 -FDBD 0646 062C 062D -FDBE 062C 062D 064A -FDBF 062D 062C 064A -FDC0 0645 062C 064A -FDC1 0641 0645 064A -FDC2 0628 062D 064A -FDC3 0643 0645 0645 -FDC4 0639 062C 0645 -FDC5 0635 0645 0645 -FDC6 0633 062E 064A -FDC7 0646 062C 064A -FDF0 0635 0644 06D2 -FDF1 0642 0644 06D2 -FDF2 0627 0644 0644 0647 -FDF3 0627 0643 0628 0631 -FDF4 0645 062D 0645 062F -FDF5 0635 0644 0639 0645 -FDF6 0631 0633 0648 0644 -FDF7 0639 0644 064A 0647 -FDF8 0648 0633 0644 0645 -FDF9 0635 0644 0649 -FDFA 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645 -FDFB 062C 0644 0020 062C 0644 0627 0644 0647 -FDFC 0631 06CC 0627 0644 -FE10 002C -FE11 3001 -FE12 3002 -FE13 003A -FE14 003B -FE15 0021 -FE16 003F -FE17 3016 -FE18 3017 -FE19 2026 -FE30 2025 -FE31 2014 -FE32 2013 -FE33 FE34 005F -FE35 0028 -FE36 0029 -FE37 007B -FE38 007D -FE39 3014 -FE3A 3015 -FE3B 3010 -FE3C 3011 -FE3D 300A -FE3E 300B -FE3F 3008 -FE40 3009 -FE41 300C -FE42 300D -FE43 300E -FE44 300F -FE47 005B -FE48 005D -FE49 FE4C 203E -FE4D FE4F 005F -FE50 002C -FE51 3001 -FE52 002E -FE54 003B -FE55 003A -FE56 003F -FE57 0021 -FE58 2014 -FE59 0028 -FE5A 0029 -FE5B 007B -FE5C 007D -FE5D 3014 -FE5E 3015 -FE5F 0023 -FE60 0026 -FE61 002A -FE62 002B -FE63 002D -FE64 003C -FE65 003E -FE66 003D -FE68 005C -FE69 0024 -FE6A 0025 -FE6B 0040 -FE70 0020 064B -FE71 0640 064B -FE72 0020 064C -FE74 0020 064D -FE76 0020 064E -FE77 0640 064E -FE78 0020 064F -FE79 0640 064F -FE7A 0020 0650 -FE7B 0640 0650 -FE7C 0020 0651 -FE7D 0640 0651 -FE7E 0020 0652 -FE7F 0640 0652 -FE80 0621 -FE81 0622 -FE82 0622 -FE83 0623 -FE84 0623 -FE85 0624 -FE86 0624 -FE87 0625 -FE88 0625 -FE89 0626 -FE8A 0626 -FE8B 0626 -FE8C 0626 -FE8D 0627 -FE8E 0627 -FE8F 0628 -FE90 0628 -FE91 0628 -FE92 0628 -FE93 0629 -FE94 0629 -FE95 062A -FE96 062A -FE97 062A -FE98 062A -FE99 062B -FE9A 062B -FE9B 062B -FE9C 062B -FE9D 062C -FE9E 062C -FE9F 062C -FEA0 062C -FEA1 062D -FEA2 062D -FEA3 062D -FEA4 062D -FEA5 062E -FEA6 062E -FEA7 062E -FEA8 062E -FEA9 062F -FEAA 062F -FEAB 0630 -FEAC 0630 -FEAD 0631 -FEAE 0631 -FEAF 0632 -FEB0 0632 -FEB1 0633 -FEB2 0633 -FEB3 0633 -FEB4 0633 -FEB5 0634 -FEB6 0634 -FEB7 0634 -FEB8 0634 -FEB9 0635 -FEBA 0635 -FEBB 0635 -FEBC 0635 -FEBD 0636 -FEBE 0636 -FEBF 0636 -FEC0 0636 -FEC1 0637 -FEC2 0637 -FEC3 0637 -FEC4 0637 -FEC5 0638 -FEC6 0638 -FEC7 0638 -FEC8 0638 -FEC9 0639 -FECA 0639 -FECB 0639 -FECC 0639 -FECD 063A -FECE 063A -FECF 063A -FED0 063A -FED1 0641 -FED2 0641 -FED3 0641 -FED4 0641 -FED5 0642 -FED6 0642 -FED7 0642 -FED8 0642 -FED9 0643 -FEDA 0643 -FEDB 0643 -FEDC 0643 -FEDD 0644 -FEDE 0644 -FEDF 0644 -FEE0 0644 -FEE1 0645 -FEE2 0645 -FEE3 0645 -FEE4 0645 -FEE5 0646 -FEE6 0646 -FEE7 0646 -FEE8 0646 -FEE9 0647 -FEEA 0647 -FEEB 0647 -FEEC 0647 -FEED 0648 -FEEE 0648 -FEEF 0649 -FEF0 0649 -FEF1 064A -FEF2 064A -FEF3 064A -FEF4 064A -FEF5 0644 0622 -FEF6 0644 0622 -FEF7 0644 0623 -FEF8 0644 0623 -FEF9 0644 0625 -FEFA 0644 0625 -FEFB 0644 0627 -FEFC 0644 0627 -FF01 0021 -FF02 0022 -FF03 0023 -FF04 0024 -FF05 0025 -FF06 0026 -FF07 0027 -FF08 0028 -FF09 0029 -FF0A 002A -FF0B 002B -FF0C 002C -FF0D 002D -FF0E 002E -FF0F 002F -FF10 0030 -FF11 0031 -FF12 0032 -FF13 0033 -FF14 0034 -FF15 0035 -FF16 0036 -FF17 0037 -FF18 0038 -FF19 0039 -FF1A 003A -FF1B 003B -FF1C 003C -FF1D 003D -FF1E 003E -FF1F 003F -FF20 0040 -FF21 0041 -FF22 0042 -FF23 0043 -FF24 0044 -FF25 0045 -FF26 0046 -FF27 0047 -FF28 0048 -FF29 0049 -FF2A 004A -FF2B 004B -FF2C 004C -FF2D 004D -FF2E 004E -FF2F 004F -FF30 0050 -FF31 0051 -FF32 0052 -FF33 0053 -FF34 0054 -FF35 0055 -FF36 0056 -FF37 0057 -FF38 0058 -FF39 0059 -FF3A 005A -FF3B 005B -FF3C 005C -FF3D 005D -FF3E 005E -FF3F 005F -FF40 0060 -FF41 0061 -FF42 0062 -FF43 0063 -FF44 0064 -FF45 0065 -FF46 0066 -FF47 0067 -FF48 0068 -FF49 0069 -FF4A 006A -FF4B 006B -FF4C 006C -FF4D 006D -FF4E 006E -FF4F 006F -FF50 0070 -FF51 0071 -FF52 0072 -FF53 0073 -FF54 0074 -FF55 0075 -FF56 0076 -FF57 0077 -FF58 0078 -FF59 0079 -FF5A 007A -FF5B 007B -FF5C 007C -FF5D 007D -FF5E 007E -FF5F 2985 -FF60 2986 -FF61 3002 -FF62 300C -FF63 300D -FF64 3001 -FF65 30FB -FF66 30F2 -FF67 30A1 -FF68 30A3 -FF69 30A5 -FF6A 30A7 -FF6B 30A9 -FF6C 30E3 -FF6D 30E5 -FF6E 30E7 -FF6F 30C3 -FF70 30FC -FF71 30A2 -FF72 30A4 -FF73 30A6 -FF74 30A8 -FF75 30AA -FF76 30AB -FF77 30AD -FF78 30AF -FF79 30B1 -FF7A 30B3 -FF7B 30B5 -FF7C 30B7 -FF7D 30B9 -FF7E 30BB -FF7F 30BD -FF80 30BF -FF81 30C1 -FF82 30C4 -FF83 30C6 -FF84 30C8 -FF85 30CA -FF86 30CB -FF87 30CC -FF88 30CD -FF89 30CE -FF8A 30CF -FF8B 30D2 -FF8C 30D5 -FF8D 30D8 -FF8E 30DB -FF8F 30DE -FF90 30DF -FF91 30E0 -FF92 30E1 -FF93 30E2 -FF94 30E4 -FF95 30E6 -FF96 30E8 -FF97 30E9 -FF98 30EA -FF99 30EB -FF9A 30EC -FF9B 30ED -FF9C 30EF -FF9D 30F3 -FF9E 3099 -FF9F 309A -FFA0 3164 -FFA1 3131 -FFA2 3132 -FFA3 3133 -FFA4 3134 -FFA5 3135 -FFA6 3136 -FFA7 3137 -FFA8 3138 -FFA9 3139 -FFAA 313A -FFAB 313B -FFAC 313C -FFAD 313D -FFAE 313E -FFAF 313F -FFB0 3140 -FFB1 3141 -FFB2 3142 -FFB3 3143 -FFB4 3144 -FFB5 3145 -FFB6 3146 -FFB7 3147 -FFB8 3148 -FFB9 3149 -FFBA 314A -FFBB 314B -FFBC 314C -FFBD 314D -FFBE 314E -FFC2 314F -FFC3 3150 -FFC4 3151 -FFC5 3152 -FFC6 3153 -FFC7 3154 -FFCA 3155 -FFCB 3156 -FFCC 3157 -FFCD 3158 -FFCE 3159 -FFCF 315A -FFD2 315B -FFD3 315C -FFD4 315D -FFD5 315E -FFD6 315F -FFD7 3160 -FFDA 3161 -FFDB 3162 -FFDC 3163 -FFE0 00A2 -FFE1 00A3 -FFE2 00AC -FFE3 00AF -FFE4 00A6 -FFE5 00A5 -FFE6 20A9 -FFE8 2502 -FFE9 2190 -FFEA 2191 -FFEB 2192 -FFEC 2193 -FFED 25A0 -FFEE 25CB -1109A 11099 110BA -1109C 1109B 110BA -110AB 110A5 110BA -1112E 11131 11127 -1112F 11132 11127 -1134B 11347 1133E -1134C 11347 11357 -114BB 114B9 114BA -114BC 114B9 114B0 -114BE 114B9 114BD -115BA 115B8 115AF -115BB 115B9 115AF -1D15E 1D157 1D165 -1D15F 1D158 1D165 -1D160 1D15F 1D16E -1D161 1D15F 1D16F -1D162 1D15F 1D170 -1D163 1D15F 1D171 -1D164 1D15F 1D172 -1D1BB 1D1B9 1D165 -1D1BC 1D1BA 1D165 -1D1BD 1D1BB 1D16E -1D1BE 1D1BC 1D16E -1D1BF 1D1BB 1D16F -1D1C0 1D1BC 1D16F -1D400 0041 -1D401 0042 -1D402 0043 -1D403 0044 -1D404 0045 -1D405 0046 -1D406 0047 -1D407 0048 -1D408 0049 -1D409 004A -1D40A 004B -1D40B 004C -1D40C 004D -1D40D 004E -1D40E 004F -1D40F 0050 -1D410 0051 -1D411 0052 -1D412 0053 -1D413 0054 -1D414 0055 -1D415 0056 -1D416 0057 -1D417 0058 -1D418 0059 -1D419 005A -1D41A 0061 -1D41B 0062 -1D41C 0063 -1D41D 0064 -1D41E 0065 -1D41F 0066 -1D420 0067 -1D421 0068 -1D422 0069 -1D423 006A -1D424 006B -1D425 006C -1D426 006D -1D427 006E -1D428 006F -1D429 0070 -1D42A 0071 -1D42B 0072 -1D42C 0073 -1D42D 0074 -1D42E 0075 -1D42F 0076 -1D430 0077 -1D431 0078 -1D432 0079 -1D433 007A -1D434 0041 -1D435 0042 -1D436 0043 -1D437 0044 -1D438 0045 -1D439 0046 -1D43A 0047 -1D43B 0048 -1D43C 0049 -1D43D 004A -1D43E 004B -1D43F 004C -1D440 004D -1D441 004E -1D442 004F -1D443 0050 -1D444 0051 -1D445 0052 -1D446 0053 -1D447 0054 -1D448 0055 -1D449 0056 -1D44A 0057 -1D44B 0058 -1D44C 0059 -1D44D 005A -1D44E 0061 -1D44F 0062 -1D450 0063 -1D451 0064 -1D452 0065 -1D453 0066 -1D454 0067 -1D456 0069 -1D457 006A -1D458 006B -1D459 006C -1D45A 006D -1D45B 006E -1D45C 006F -1D45D 0070 -1D45E 0071 -1D45F 0072 -1D460 0073 -1D461 0074 -1D462 0075 -1D463 0076 -1D464 0077 -1D465 0078 -1D466 0079 -1D467 007A -1D468 0041 -1D469 0042 -1D46A 0043 -1D46B 0044 -1D46C 0045 -1D46D 0046 -1D46E 0047 -1D46F 0048 -1D470 0049 -1D471 004A -1D472 004B -1D473 004C -1D474 004D -1D475 004E -1D476 004F -1D477 0050 -1D478 0051 -1D479 0052 -1D47A 0053 -1D47B 0054 -1D47C 0055 -1D47D 0056 -1D47E 0057 -1D47F 0058 -1D480 0059 -1D481 005A -1D482 0061 -1D483 0062 -1D484 0063 -1D485 0064 -1D486 0065 -1D487 0066 -1D488 0067 -1D489 0068 -1D48A 0069 -1D48B 006A -1D48C 006B -1D48D 006C -1D48E 006D -1D48F 006E -1D490 006F -1D491 0070 -1D492 0071 -1D493 0072 -1D494 0073 -1D495 0074 -1D496 0075 -1D497 0076 -1D498 0077 -1D499 0078 -1D49A 0079 -1D49B 007A -1D49C 0041 -1D49E 0043 -1D49F 0044 -1D4A2 0047 -1D4A5 004A -1D4A6 004B -1D4A9 004E -1D4AA 004F -1D4AB 0050 -1D4AC 0051 -1D4AE 0053 -1D4AF 0054 -1D4B0 0055 -1D4B1 0056 -1D4B2 0057 -1D4B3 0058 -1D4B4 0059 -1D4B5 005A -1D4B6 0061 -1D4B7 0062 -1D4B8 0063 -1D4B9 0064 -1D4BB 0066 -1D4BD 0068 -1D4BE 0069 -1D4BF 006A -1D4C0 006B -1D4C1 006C -1D4C2 006D -1D4C3 006E -1D4C5 0070 -1D4C6 0071 -1D4C7 0072 -1D4C8 0073 -1D4C9 0074 -1D4CA 0075 -1D4CB 0076 -1D4CC 0077 -1D4CD 0078 -1D4CE 0079 -1D4CF 007A -1D4D0 0041 -1D4D1 0042 -1D4D2 0043 -1D4D3 0044 -1D4D4 0045 -1D4D5 0046 -1D4D6 0047 -1D4D7 0048 -1D4D8 0049 -1D4D9 004A -1D4DA 004B -1D4DB 004C -1D4DC 004D -1D4DD 004E -1D4DE 004F -1D4DF 0050 -1D4E0 0051 -1D4E1 0052 -1D4E2 0053 -1D4E3 0054 -1D4E4 0055 -1D4E5 0056 -1D4E6 0057 -1D4E7 0058 -1D4E8 0059 -1D4E9 005A -1D4EA 0061 -1D4EB 0062 -1D4EC 0063 -1D4ED 0064 -1D4EE 0065 -1D4EF 0066 -1D4F0 0067 -1D4F1 0068 -1D4F2 0069 -1D4F3 006A -1D4F4 006B -1D4F5 006C -1D4F6 006D -1D4F7 006E -1D4F8 006F -1D4F9 0070 -1D4FA 0071 -1D4FB 0072 -1D4FC 0073 -1D4FD 0074 -1D4FE 0075 -1D4FF 0076 -1D500 0077 -1D501 0078 -1D502 0079 -1D503 007A -1D504 0041 -1D505 0042 -1D507 0044 -1D508 0045 -1D509 0046 -1D50A 0047 -1D50D 004A -1D50E 004B -1D50F 004C -1D510 004D -1D511 004E -1D512 004F -1D513 0050 -1D514 0051 -1D516 0053 -1D517 0054 -1D518 0055 -1D519 0056 -1D51A 0057 -1D51B 0058 -1D51C 0059 -1D51E 0061 -1D51F 0062 -1D520 0063 -1D521 0064 -1D522 0065 -1D523 0066 -1D524 0067 -1D525 0068 -1D526 0069 -1D527 006A -1D528 006B -1D529 006C -1D52A 006D -1D52B 006E -1D52C 006F -1D52D 0070 -1D52E 0071 -1D52F 0072 -1D530 0073 -1D531 0074 -1D532 0075 -1D533 0076 -1D534 0077 -1D535 0078 -1D536 0079 -1D537 007A -1D538 0041 -1D539 0042 -1D53B 0044 -1D53C 0045 -1D53D 0046 -1D53E 0047 -1D540 0049 -1D541 004A -1D542 004B -1D543 004C -1D544 004D -1D546 004F -1D54A 0053 -1D54B 0054 -1D54C 0055 -1D54D 0056 -1D54E 0057 -1D54F 0058 -1D550 0059 -1D552 0061 -1D553 0062 -1D554 0063 -1D555 0064 -1D556 0065 -1D557 0066 -1D558 0067 -1D559 0068 -1D55A 0069 -1D55B 006A -1D55C 006B -1D55D 006C -1D55E 006D -1D55F 006E -1D560 006F -1D561 0070 -1D562 0071 -1D563 0072 -1D564 0073 -1D565 0074 -1D566 0075 -1D567 0076 -1D568 0077 -1D569 0078 -1D56A 0079 -1D56B 007A -1D56C 0041 -1D56D 0042 -1D56E 0043 -1D56F 0044 -1D570 0045 -1D571 0046 -1D572 0047 -1D573 0048 -1D574 0049 -1D575 004A -1D576 004B -1D577 004C -1D578 004D -1D579 004E -1D57A 004F -1D57B 0050 -1D57C 0051 -1D57D 0052 -1D57E 0053 -1D57F 0054 -1D580 0055 -1D581 0056 -1D582 0057 -1D583 0058 -1D584 0059 -1D585 005A -1D586 0061 -1D587 0062 -1D588 0063 -1D589 0064 -1D58A 0065 -1D58B 0066 -1D58C 0067 -1D58D 0068 -1D58E 0069 -1D58F 006A -1D590 006B -1D591 006C -1D592 006D -1D593 006E -1D594 006F -1D595 0070 -1D596 0071 -1D597 0072 -1D598 0073 -1D599 0074 -1D59A 0075 -1D59B 0076 -1D59C 0077 -1D59D 0078 -1D59E 0079 -1D59F 007A -1D5A0 0041 -1D5A1 0042 -1D5A2 0043 -1D5A3 0044 -1D5A4 0045 -1D5A5 0046 -1D5A6 0047 -1D5A7 0048 -1D5A8 0049 -1D5A9 004A -1D5AA 004B -1D5AB 004C -1D5AC 004D -1D5AD 004E -1D5AE 004F -1D5AF 0050 -1D5B0 0051 -1D5B1 0052 -1D5B2 0053 -1D5B3 0054 -1D5B4 0055 -1D5B5 0056 -1D5B6 0057 -1D5B7 0058 -1D5B8 0059 -1D5B9 005A -1D5BA 0061 -1D5BB 0062 -1D5BC 0063 -1D5BD 0064 -1D5BE 0065 -1D5BF 0066 -1D5C0 0067 -1D5C1 0068 -1D5C2 0069 -1D5C3 006A -1D5C4 006B -1D5C5 006C -1D5C6 006D -1D5C7 006E -1D5C8 006F -1D5C9 0070 -1D5CA 0071 -1D5CB 0072 -1D5CC 0073 -1D5CD 0074 -1D5CE 0075 -1D5CF 0076 -1D5D0 0077 -1D5D1 0078 -1D5D2 0079 -1D5D3 007A -1D5D4 0041 -1D5D5 0042 -1D5D6 0043 -1D5D7 0044 -1D5D8 0045 -1D5D9 0046 -1D5DA 0047 -1D5DB 0048 -1D5DC 0049 -1D5DD 004A -1D5DE 004B -1D5DF 004C -1D5E0 004D -1D5E1 004E -1D5E2 004F -1D5E3 0050 -1D5E4 0051 -1D5E5 0052 -1D5E6 0053 -1D5E7 0054 -1D5E8 0055 -1D5E9 0056 -1D5EA 0057 -1D5EB 0058 -1D5EC 0059 -1D5ED 005A -1D5EE 0061 -1D5EF 0062 -1D5F0 0063 -1D5F1 0064 -1D5F2 0065 -1D5F3 0066 -1D5F4 0067 -1D5F5 0068 -1D5F6 0069 -1D5F7 006A -1D5F8 006B -1D5F9 006C -1D5FA 006D -1D5FB 006E -1D5FC 006F -1D5FD 0070 -1D5FE 0071 -1D5FF 0072 -1D600 0073 -1D601 0074 -1D602 0075 -1D603 0076 -1D604 0077 -1D605 0078 -1D606 0079 -1D607 007A -1D608 0041 -1D609 0042 -1D60A 0043 -1D60B 0044 -1D60C 0045 -1D60D 0046 -1D60E 0047 -1D60F 0048 -1D610 0049 -1D611 004A -1D612 004B -1D613 004C -1D614 004D -1D615 004E -1D616 004F -1D617 0050 -1D618 0051 -1D619 0052 -1D61A 0053 -1D61B 0054 -1D61C 0055 -1D61D 0056 -1D61E 0057 -1D61F 0058 -1D620 0059 -1D621 005A -1D622 0061 -1D623 0062 -1D624 0063 -1D625 0064 -1D626 0065 -1D627 0066 -1D628 0067 -1D629 0068 -1D62A 0069 -1D62B 006A -1D62C 006B -1D62D 006C -1D62E 006D -1D62F 006E -1D630 006F -1D631 0070 -1D632 0071 -1D633 0072 -1D634 0073 -1D635 0074 -1D636 0075 -1D637 0076 -1D638 0077 -1D639 0078 -1D63A 0079 -1D63B 007A -1D63C 0041 -1D63D 0042 -1D63E 0043 -1D63F 0044 -1D640 0045 -1D641 0046 -1D642 0047 -1D643 0048 -1D644 0049 -1D645 004A -1D646 004B -1D647 004C -1D648 004D -1D649 004E -1D64A 004F -1D64B 0050 -1D64C 0051 -1D64D 0052 -1D64E 0053 -1D64F 0054 -1D650 0055 -1D651 0056 -1D652 0057 -1D653 0058 -1D654 0059 -1D655 005A -1D656 0061 -1D657 0062 -1D658 0063 -1D659 0064 -1D65A 0065 -1D65B 0066 -1D65C 0067 -1D65D 0068 -1D65E 0069 -1D65F 006A -1D660 006B -1D661 006C -1D662 006D -1D663 006E -1D664 006F -1D665 0070 -1D666 0071 -1D667 0072 -1D668 0073 -1D669 0074 -1D66A 0075 -1D66B 0076 -1D66C 0077 -1D66D 0078 -1D66E 0079 -1D66F 007A -1D670 0041 -1D671 0042 -1D672 0043 -1D673 0044 -1D674 0045 -1D675 0046 -1D676 0047 -1D677 0048 -1D678 0049 -1D679 004A -1D67A 004B -1D67B 004C -1D67C 004D -1D67D 004E -1D67E 004F -1D67F 0050 -1D680 0051 -1D681 0052 -1D682 0053 -1D683 0054 -1D684 0055 -1D685 0056 -1D686 0057 -1D687 0058 -1D688 0059 -1D689 005A -1D68A 0061 -1D68B 0062 -1D68C 0063 -1D68D 0064 -1D68E 0065 -1D68F 0066 -1D690 0067 -1D691 0068 -1D692 0069 -1D693 006A -1D694 006B -1D695 006C -1D696 006D -1D697 006E -1D698 006F -1D699 0070 -1D69A 0071 -1D69B 0072 -1D69C 0073 -1D69D 0074 -1D69E 0075 -1D69F 0076 -1D6A0 0077 -1D6A1 0078 -1D6A2 0079 -1D6A3 007A -1D6A4 0131 -1D6A5 0237 -1D6A8 0391 -1D6A9 0392 -1D6AA 0393 -1D6AB 0394 -1D6AC 0395 -1D6AD 0396 -1D6AE 0397 -1D6AF 0398 -1D6B0 0399 -1D6B1 039A -1D6B2 039B -1D6B3 039C -1D6B4 039D -1D6B5 039E -1D6B6 039F -1D6B7 03A0 -1D6B8 03A1 -1D6B9 03F4 -1D6BA 03A3 -1D6BB 03A4 -1D6BC 03A5 -1D6BD 03A6 -1D6BE 03A7 -1D6BF 03A8 -1D6C0 03A9 -1D6C1 2207 -1D6C2 03B1 -1D6C3 03B2 -1D6C4 03B3 -1D6C5 03B4 -1D6C6 03B5 -1D6C7 03B6 -1D6C8 03B7 -1D6C9 03B8 -1D6CA 03B9 -1D6CB 03BA -1D6CC 03BB -1D6CD 03BC -1D6CE 03BD -1D6CF 03BE -1D6D0 03BF -1D6D1 03C0 -1D6D2 03C1 -1D6D3 03C2 -1D6D4 03C3 -1D6D5 03C4 -1D6D6 03C5 -1D6D7 03C6 -1D6D8 03C7 -1D6D9 03C8 -1D6DA 03C9 -1D6DB 2202 -1D6DC 03F5 -1D6DD 03D1 -1D6DE 03F0 -1D6DF 03D5 -1D6E0 03F1 -1D6E1 03D6 -1D6E2 0391 -1D6E3 0392 -1D6E4 0393 -1D6E5 0394 -1D6E6 0395 -1D6E7 0396 -1D6E8 0397 -1D6E9 0398 -1D6EA 0399 -1D6EB 039A -1D6EC 039B -1D6ED 039C -1D6EE 039D -1D6EF 039E -1D6F0 039F -1D6F1 03A0 -1D6F2 03A1 -1D6F3 03F4 -1D6F4 03A3 -1D6F5 03A4 -1D6F6 03A5 -1D6F7 03A6 -1D6F8 03A7 -1D6F9 03A8 -1D6FA 03A9 -1D6FB 2207 -1D6FC 03B1 -1D6FD 03B2 -1D6FE 03B3 -1D6FF 03B4 -1D700 03B5 -1D701 03B6 -1D702 03B7 -1D703 03B8 -1D704 03B9 -1D705 03BA -1D706 03BB -1D707 03BC -1D708 03BD -1D709 03BE -1D70A 03BF -1D70B 03C0 -1D70C 03C1 -1D70D 03C2 -1D70E 03C3 -1D70F 03C4 -1D710 03C5 -1D711 03C6 -1D712 03C7 -1D713 03C8 -1D714 03C9 -1D715 2202 -1D716 03F5 -1D717 03D1 -1D718 03F0 -1D719 03D5 -1D71A 03F1 -1D71B 03D6 -1D71C 0391 -1D71D 0392 -1D71E 0393 -1D71F 0394 -1D720 0395 -1D721 0396 -1D722 0397 -1D723 0398 -1D724 0399 -1D725 039A -1D726 039B -1D727 039C -1D728 039D -1D729 039E -1D72A 039F -1D72B 03A0 -1D72C 03A1 -1D72D 03F4 -1D72E 03A3 -1D72F 03A4 -1D730 03A5 -1D731 03A6 -1D732 03A7 -1D733 03A8 -1D734 03A9 -1D735 2207 -1D736 03B1 -1D737 03B2 -1D738 03B3 -1D739 03B4 -1D73A 03B5 -1D73B 03B6 -1D73C 03B7 -1D73D 03B8 -1D73E 03B9 -1D73F 03BA -1D740 03BB -1D741 03BC -1D742 03BD -1D743 03BE -1D744 03BF -1D745 03C0 -1D746 03C1 -1D747 03C2 -1D748 03C3 -1D749 03C4 -1D74A 03C5 -1D74B 03C6 -1D74C 03C7 -1D74D 03C8 -1D74E 03C9 -1D74F 2202 -1D750 03F5 -1D751 03D1 -1D752 03F0 -1D753 03D5 -1D754 03F1 -1D755 03D6 -1D756 0391 -1D757 0392 -1D758 0393 -1D759 0394 -1D75A 0395 -1D75B 0396 -1D75C 0397 -1D75D 0398 -1D75E 0399 -1D75F 039A -1D760 039B -1D761 039C -1D762 039D -1D763 039E -1D764 039F -1D765 03A0 -1D766 03A1 -1D767 03F4 -1D768 03A3 -1D769 03A4 -1D76A 03A5 -1D76B 03A6 -1D76C 03A7 -1D76D 03A8 -1D76E 03A9 -1D76F 2207 -1D770 03B1 -1D771 03B2 -1D772 03B3 -1D773 03B4 -1D774 03B5 -1D775 03B6 -1D776 03B7 -1D777 03B8 -1D778 03B9 -1D779 03BA -1D77A 03BB -1D77B 03BC -1D77C 03BD -1D77D 03BE -1D77E 03BF -1D77F 03C0 -1D780 03C1 -1D781 03C2 -1D782 03C3 -1D783 03C4 -1D784 03C5 -1D785 03C6 -1D786 03C7 -1D787 03C8 -1D788 03C9 -1D789 2202 -1D78A 03F5 -1D78B 03D1 -1D78C 03F0 -1D78D 03D5 -1D78E 03F1 -1D78F 03D6 -1D790 0391 -1D791 0392 -1D792 0393 -1D793 0394 -1D794 0395 -1D795 0396 -1D796 0397 -1D797 0398 -1D798 0399 -1D799 039A -1D79A 039B -1D79B 039C -1D79C 039D -1D79D 039E -1D79E 039F -1D79F 03A0 -1D7A0 03A1 -1D7A1 03F4 -1D7A2 03A3 -1D7A3 03A4 -1D7A4 03A5 -1D7A5 03A6 -1D7A6 03A7 -1D7A7 03A8 -1D7A8 03A9 -1D7A9 2207 -1D7AA 03B1 -1D7AB 03B2 -1D7AC 03B3 -1D7AD 03B4 -1D7AE 03B5 -1D7AF 03B6 -1D7B0 03B7 -1D7B1 03B8 -1D7B2 03B9 -1D7B3 03BA -1D7B4 03BB -1D7B5 03BC -1D7B6 03BD -1D7B7 03BE -1D7B8 03BF -1D7B9 03C0 -1D7BA 03C1 -1D7BB 03C2 -1D7BC 03C3 -1D7BD 03C4 -1D7BE 03C5 -1D7BF 03C6 -1D7C0 03C7 -1D7C1 03C8 -1D7C2 03C9 -1D7C3 2202 -1D7C4 03F5 -1D7C5 03D1 -1D7C6 03F0 -1D7C7 03D5 -1D7C8 03F1 -1D7C9 03D6 -1D7CA 03DC -1D7CB 03DD -1D7CE 0030 -1D7CF 0031 -1D7D0 0032 -1D7D1 0033 -1D7D2 0034 -1D7D3 0035 -1D7D4 0036 -1D7D5 0037 -1D7D6 0038 -1D7D7 0039 -1D7D8 0030 -1D7D9 0031 -1D7DA 0032 -1D7DB 0033 -1D7DC 0034 -1D7DD 0035 -1D7DE 0036 -1D7DF 0037 -1D7E0 0038 -1D7E1 0039 -1D7E2 0030 -1D7E3 0031 -1D7E4 0032 -1D7E5 0033 -1D7E6 0034 -1D7E7 0035 -1D7E8 0036 -1D7E9 0037 -1D7EA 0038 -1D7EB 0039 -1D7EC 0030 -1D7ED 0031 -1D7EE 0032 -1D7EF 0033 -1D7F0 0034 -1D7F1 0035 -1D7F2 0036 -1D7F3 0037 -1D7F4 0038 -1D7F5 0039 -1D7F6 0030 -1D7F7 0031 -1D7F8 0032 -1D7F9 0033 -1D7FA 0034 -1D7FB 0035 -1D7FC 0036 -1D7FD 0037 -1D7FE 0038 -1D7FF 0039 -1EE00 0627 -1EE01 0628 -1EE02 062C -1EE03 062F -1EE05 0648 -1EE06 0632 -1EE07 062D -1EE08 0637 -1EE09 064A -1EE0A 0643 -1EE0B 0644 -1EE0C 0645 -1EE0D 0646 -1EE0E 0633 -1EE0F 0639 -1EE10 0641 -1EE11 0635 -1EE12 0642 -1EE13 0631 -1EE14 0634 -1EE15 062A -1EE16 062B -1EE17 062E -1EE18 0630 -1EE19 0636 -1EE1A 0638 -1EE1B 063A -1EE1C 066E -1EE1D 06BA -1EE1E 06A1 -1EE1F 066F -1EE21 0628 -1EE22 062C -1EE24 0647 -1EE27 062D -1EE29 064A -1EE2A 0643 -1EE2B 0644 -1EE2C 0645 -1EE2D 0646 -1EE2E 0633 -1EE2F 0639 -1EE30 0641 -1EE31 0635 -1EE32 0642 -1EE34 0634 -1EE35 062A -1EE36 062B -1EE37 062E -1EE39 0636 -1EE3B 063A -1EE42 062C -1EE47 062D -1EE49 064A -1EE4B 0644 -1EE4D 0646 -1EE4E 0633 -1EE4F 0639 -1EE51 0635 -1EE52 0642 -1EE54 0634 -1EE57 062E -1EE59 0636 -1EE5B 063A -1EE5D 06BA -1EE5F 066F -1EE61 0628 -1EE62 062C -1EE64 0647 -1EE67 062D -1EE68 0637 -1EE69 064A -1EE6A 0643 -1EE6C 0645 -1EE6D 0646 -1EE6E 0633 -1EE6F 0639 -1EE70 0641 -1EE71 0635 -1EE72 0642 -1EE74 0634 -1EE75 062A -1EE76 062B -1EE77 062E -1EE79 0636 -1EE7A 0638 -1EE7B 063A -1EE7C 066E -1EE7E 06A1 -1EE80 0627 -1EE81 0628 -1EE82 062C -1EE83 062F -1EE84 0647 -1EE85 0648 -1EE86 0632 -1EE87 062D -1EE88 0637 -1EE89 064A -1EE8B 0644 -1EE8C 0645 -1EE8D 0646 -1EE8E 0633 -1EE8F 0639 -1EE90 0641 -1EE91 0635 -1EE92 0642 -1EE93 0631 -1EE94 0634 -1EE95 062A -1EE96 062B -1EE97 062E -1EE98 0630 -1EE99 0636 -1EE9A 0638 -1EE9B 063A -1EEA1 0628 -1EEA2 062C -1EEA3 062F -1EEA5 0648 -1EEA6 0632 -1EEA7 062D -1EEA8 0637 -1EEA9 064A -1EEAB 0644 -1EEAC 0645 -1EEAD 0646 -1EEAE 0633 -1EEAF 0639 -1EEB0 0641 -1EEB1 0635 -1EEB2 0642 -1EEB3 0631 -1EEB4 0634 -1EEB5 062A -1EEB6 062B -1EEB7 062E -1EEB8 0630 -1EEB9 0636 -1EEBA 0638 -1EEBB 063A -1F100 0030 002E -1F101 0030 002C -1F102 0031 002C -1F103 0032 002C -1F104 0033 002C -1F105 0034 002C -1F106 0035 002C -1F107 0036 002C -1F108 0037 002C -1F109 0038 002C -1F10A 0039 002C -1F110 0028 0041 0029 -1F111 0028 0042 0029 -1F112 0028 0043 0029 -1F113 0028 0044 0029 -1F114 0028 0045 0029 -1F115 0028 0046 0029 -1F116 0028 0047 0029 -1F117 0028 0048 0029 -1F118 0028 0049 0029 -1F119 0028 004A 0029 -1F11A 0028 004B 0029 -1F11B 0028 004C 0029 -1F11C 0028 004D 0029 -1F11D 0028 004E 0029 -1F11E 0028 004F 0029 -1F11F 0028 0050 0029 -1F120 0028 0051 0029 -1F121 0028 0052 0029 -1F122 0028 0053 0029 -1F123 0028 0054 0029 -1F124 0028 0055 0029 -1F125 0028 0056 0029 -1F126 0028 0057 0029 -1F127 0028 0058 0029 -1F128 0028 0059 0029 -1F129 0028 005A 0029 -1F12A 3014 0053 3015 -1F12B 0043 -1F12C 0052 -1F12D 0043 0044 -1F12E 0057 005A -1F130 0041 -1F131 0042 -1F132 0043 -1F133 0044 -1F134 0045 -1F135 0046 -1F136 0047 -1F137 0048 -1F138 0049 -1F139 004A -1F13A 004B -1F13B 004C -1F13C 004D -1F13D 004E -1F13E 004F -1F13F 0050 -1F140 0051 -1F141 0052 -1F142 0053 -1F143 0054 -1F144 0055 -1F145 0056 -1F146 0057 -1F147 0058 -1F148 0059 -1F149 005A -1F14A 0048 0056 -1F14B 004D 0056 -1F14C 0053 0044 -1F14D 0053 0053 -1F14E 0050 0050 0056 -1F14F 0057 0043 -1F16A 004D 0043 -1F16B 004D 0044 -1F190 0044 004A -1F200 307B 304B -1F201 30B3 30B3 -1F202 30B5 -1F210 624B -1F211 5B57 -1F212 53CC -1F213 30C7 -1F214 4E8C -1F215 591A -1F216 89E3 -1F217 5929 -1F218 4EA4 -1F219 6620 -1F21A 7121 -1F21B 6599 -1F21C 524D -1F21D 5F8C -1F21E 518D -1F21F 65B0 -1F220 521D -1F221 7D42 -1F222 751F -1F223 8CA9 -1F224 58F0 -1F225 5439 -1F226 6F14 -1F227 6295 -1F228 6355 -1F229 4E00 -1F22A 4E09 -1F22B 904A -1F22C 5DE6 -1F22D 4E2D -1F22E 53F3 -1F22F 6307 -1F230 8D70 -1F231 6253 -1F232 7981 -1F233 7A7A -1F234 5408 -1F235 6E80 -1F236 6709 -1F237 6708 -1F238 7533 -1F239 5272 -1F23A 55B6 -1F240 3014 672C 3015 -1F241 3014 4E09 3015 -1F242 3014 4E8C 3015 -1F243 3014 5B89 3015 -1F244 3014 70B9 3015 -1F245 3014 6253 3015 -1F246 3014 76D7 3015 -1F247 3014 52DD 3015 -1F248 3014 6557 3015 -1F250 5F97 -1F251 53EF -2F800 4E3D -2F801 4E38 -2F802 4E41 -2F803 20122 -2F804 4F60 -2F805 4FAE -2F806 4FBB -2F807 5002 -2F808 507A -2F809 5099 -2F80A 50E7 -2F80B 50CF -2F80C 349E -2F80D 2063A -2F80E 514D -2F80F 5154 -2F810 5164 -2F811 5177 -2F812 2051C -2F813 34B9 -2F814 5167 -2F815 518D -2F816 2054B -2F817 5197 -2F818 51A4 -2F819 4ECC -2F81A 51AC -2F81B 51B5 -2F81C 291DF -2F81D 51F5 -2F81E 5203 -2F81F 34DF -2F820 523B -2F821 5246 -2F822 5272 -2F823 5277 -2F824 3515 -2F825 52C7 -2F826 52C9 -2F827 52E4 -2F828 52FA -2F829 5305 -2F82A 5306 -2F82B 5317 -2F82C 5349 -2F82D 5351 -2F82E 535A -2F82F 5373 -2F830 537D -2F831 2F833 537F -2F834 20A2C -2F835 7070 -2F836 53CA -2F837 53DF -2F838 20B63 -2F839 53EB -2F83A 53F1 -2F83B 5406 -2F83C 549E -2F83D 5438 -2F83E 5448 -2F83F 5468 -2F840 54A2 -2F841 54F6 -2F842 5510 -2F843 5553 -2F844 5563 -2F845 2F846 5584 -2F847 5599 -2F848 55AB -2F849 55B3 -2F84A 55C2 -2F84B 5716 -2F84C 5606 -2F84D 5717 -2F84E 5651 -2F84F 5674 -2F850 5207 -2F851 58EE -2F852 57CE -2F853 57F4 -2F854 580D -2F855 578B -2F856 5832 -2F857 5831 -2F858 58AC -2F859 214E4 -2F85A 58F2 -2F85B 58F7 -2F85C 5906 -2F85D 591A -2F85E 5922 -2F85F 5962 -2F860 216A8 -2F861 216EA -2F862 59EC -2F863 5A1B -2F864 5A27 -2F865 59D8 -2F866 5A66 -2F867 36EE -2F868 36FC -2F869 5B08 -2F86A 2F86B 5B3E -2F86C 219C8 -2F86D 5BC3 -2F86E 5BD8 -2F86F 5BE7 -2F870 5BF3 -2F871 21B18 -2F872 5BFF -2F873 5C06 -2F874 5F53 -2F875 5C22 -2F876 3781 -2F877 5C60 -2F878 5C6E -2F879 5CC0 -2F87A 5C8D -2F87B 21DE4 -2F87C 5D43 -2F87D 21DE6 -2F87E 5D6E -2F87F 5D6B -2F880 5D7C -2F881 5DE1 -2F882 5DE2 -2F883 382F -2F884 5DFD -2F885 5E28 -2F886 5E3D -2F887 5E69 -2F888 3862 -2F889 22183 -2F88A 387C -2F88B 5EB0 -2F88C 5EB3 -2F88D 5EB6 -2F88E 5ECA -2F88F 2A392 -2F890 5EFE -2F891 2F892 22331 -2F893 8201 -2F894 2F895 5F22 -2F896 38C7 -2F897 232B8 -2F898 261DA -2F899 5F62 -2F89A 5F6B -2F89B 38E3 -2F89C 5F9A -2F89D 5FCD -2F89E 5FD7 -2F89F 5FF9 -2F8A0 6081 -2F8A1 393A -2F8A2 391C -2F8A3 6094 -2F8A4 226D4 -2F8A5 60C7 -2F8A6 6148 -2F8A7 614C -2F8A8 614E -2F8A9 614C -2F8AA 617A -2F8AB 618E -2F8AC 61B2 -2F8AD 61A4 -2F8AE 61AF -2F8AF 61DE -2F8B0 61F2 -2F8B1 61F6 -2F8B2 6210 -2F8B3 621B -2F8B4 625D -2F8B5 62B1 -2F8B6 62D4 -2F8B7 6350 -2F8B8 22B0C -2F8B9 633D -2F8BA 62FC -2F8BB 6368 -2F8BC 6383 -2F8BD 63E4 -2F8BE 22BF1 -2F8BF 6422 -2F8C0 63C5 -2F8C1 63A9 -2F8C2 3A2E -2F8C3 6469 -2F8C4 647E -2F8C5 649D -2F8C6 6477 -2F8C7 3A6C -2F8C8 654F -2F8C9 656C -2F8CA 2300A -2F8CB 65E3 -2F8CC 66F8 -2F8CD 6649 -2F8CE 3B19 -2F8CF 6691 -2F8D0 3B08 -2F8D1 3AE4 -2F8D2 5192 -2F8D3 5195 -2F8D4 6700 -2F8D5 669C -2F8D6 80AD -2F8D7 43D9 -2F8D8 6717 -2F8D9 671B -2F8DA 6721 -2F8DB 675E -2F8DC 6753 -2F8DD 233C3 -2F8DE 3B49 -2F8DF 67FA -2F8E0 6785 -2F8E1 6852 -2F8E2 6885 -2F8E3 2346D -2F8E4 688E -2F8E5 681F -2F8E6 6914 -2F8E7 3B9D -2F8E8 6942 -2F8E9 69A3 -2F8EA 69EA -2F8EB 6AA8 -2F8EC 236A3 -2F8ED 6ADB -2F8EE 3C18 -2F8EF 6B21 -2F8F0 238A7 -2F8F1 6B54 -2F8F2 3C4E -2F8F3 6B72 -2F8F4 6B9F -2F8F5 6BBA -2F8F6 6BBB -2F8F7 23A8D -2F8F8 21D0B -2F8F9 23AFA -2F8FA 6C4E -2F8FB 23CBC -2F8FC 6CBF -2F8FD 6CCD -2F8FE 6C67 -2F8FF 6D16 -2F900 6D3E -2F901 6D77 -2F902 6D41 -2F903 6D69 -2F904 6D78 -2F905 6D85 -2F906 23D1E -2F907 6D34 -2F908 6E2F -2F909 6E6E -2F90A 3D33 -2F90B 6ECB -2F90C 6EC7 -2F90D 23ED1 -2F90E 6DF9 -2F90F 6F6E -2F910 23F5E -2F911 23F8E -2F912 6FC6 -2F913 7039 -2F914 701E -2F915 701B -2F916 3D96 -2F917 704A -2F918 707D -2F919 7077 -2F91A 70AD -2F91B 20525 -2F91C 7145 -2F91D 24263 -2F91E 719C -2F91F 243AB -2F920 7228 -2F921 7235 -2F922 7250 -2F923 24608 -2F924 7280 -2F925 7295 -2F926 24735 -2F927 24814 -2F928 737A -2F929 738B -2F92A 3EAC -2F92B 73A5 -2F92C 2F92D 3EB8 -2F92E 7447 -2F92F 745C -2F930 7471 -2F931 7485 -2F932 74CA -2F933 3F1B -2F934 7524 -2F935 24C36 -2F936 753E -2F937 24C92 -2F938 7570 -2F939 2219F -2F93A 7610 -2F93B 24FA1 -2F93C 24FB8 -2F93D 25044 -2F93E 3FFC -2F93F 4008 -2F940 76F4 -2F941 250F3 -2F942 250F2 -2F943 25119 -2F944 25133 -2F945 771E -2F946 2F947 771F -2F948 774A -2F949 4039 -2F94A 778B -2F94B 4046 -2F94C 4096 -2F94D 2541D -2F94E 784E -2F94F 788C -2F950 78CC -2F951 40E3 -2F952 25626 -2F953 7956 -2F954 2569A -2F955 256C5 -2F956 798F -2F957 79EB -2F958 412F -2F959 7A40 -2F95A 7A4A -2F95B 7A4F -2F95C 2597C -2F95D 2F95E 25AA7 -2F95F 7AEE -2F960 4202 -2F961 25BAB -2F962 7BC6 -2F963 7BC9 -2F964 4227 -2F965 25C80 -2F966 7CD2 -2F967 42A0 -2F968 7CE8 -2F969 7CE3 -2F96A 7D00 -2F96B 25F86 -2F96C 7D63 -2F96D 4301 -2F96E 7DC7 -2F96F 7E02 -2F970 7E45 -2F971 4334 -2F972 26228 -2F973 26247 -2F974 4359 -2F975 262D9 -2F976 7F7A -2F977 2633E -2F978 7F95 -2F979 7FFA -2F97A 8005 -2F97B 264DA -2F97C 26523 -2F97D 8060 -2F97E 265A8 -2F97F 8070 -2F980 2335F -2F981 43D5 -2F982 80B2 -2F983 8103 -2F984 440B -2F985 813E -2F986 5AB5 -2F987 267A7 -2F988 267B5 -2F989 23393 -2F98A 2339C -2F98B 8201 -2F98C 8204 -2F98D 8F9E -2F98E 446B -2F98F 8291 -2F990 828B -2F991 829D -2F992 52B3 -2F993 82B1 -2F994 82B3 -2F995 82BD -2F996 82E6 -2F997 26B3C -2F998 82E5 -2F999 831D -2F99A 8363 -2F99B 83AD -2F99C 8323 -2F99D 83BD -2F99E 83E7 -2F99F 8457 -2F9A0 8353 -2F9A1 83CA -2F9A2 83CC -2F9A3 83DC -2F9A4 26C36 -2F9A5 26D6B -2F9A6 26CD5 -2F9A7 452B -2F9A8 84F1 -2F9A9 84F3 -2F9AA 8516 -2F9AB 273CA -2F9AC 8564 -2F9AD 26F2C -2F9AE 455D -2F9AF 4561 -2F9B0 26FB1 -2F9B1 270D2 -2F9B2 456B -2F9B3 8650 -2F9B4 865C -2F9B5 8667 -2F9B6 8669 -2F9B7 86A9 -2F9B8 8688 -2F9B9 870E -2F9BA 86E2 -2F9BB 8779 -2F9BC 8728 -2F9BD 876B -2F9BE 8786 -2F9BF 45D7 -2F9C0 87E1 -2F9C1 8801 -2F9C2 45F9 -2F9C3 8860 -2F9C4 8863 -2F9C5 27667 -2F9C6 88D7 -2F9C7 88DE -2F9C8 4635 -2F9C9 88FA -2F9CA 34BB -2F9CB 278AE -2F9CC 27966 -2F9CD 46BE -2F9CE 46C7 -2F9CF 8AA0 -2F9D0 8AED -2F9D1 8B8A -2F9D2 8C55 -2F9D3 27CA8 -2F9D4 8CAB -2F9D5 8CC1 -2F9D6 8D1B -2F9D7 8D77 -2F9D8 27F2F -2F9D9 20804 -2F9DA 8DCB -2F9DB 8DBC -2F9DC 8DF0 -2F9DD 208DE -2F9DE 8ED4 -2F9DF 8F38 -2F9E0 285D2 -2F9E1 285ED -2F9E2 9094 -2F9E3 90F1 -2F9E4 9111 -2F9E5 2872E -2F9E6 911B -2F9E7 9238 -2F9E8 92D7 -2F9E9 92D8 -2F9EA 927C -2F9EB 93F9 -2F9EC 9415 -2F9ED 28BFA -2F9EE 958B -2F9EF 4995 -2F9F0 95B7 -2F9F1 28D77 -2F9F2 49E6 -2F9F3 96C3 -2F9F4 5DB2 -2F9F5 9723 -2F9F6 29145 -2F9F7 2921A -2F9F8 4A6E -2F9F9 4A76 -2F9FA 97E0 -2F9FB 2940A -2F9FC 4AB2 -2F9FD 29496 -2F9FE 2F9FF 980B -2FA00 9829 -2FA01 295B6 -2FA02 98E2 -2FA03 4B33 -2FA04 9929 -2FA05 99A7 -2FA06 99C2 -2FA07 99FE -2FA08 4BCE -2FA09 29B30 -2FA0A 9B12 -2FA0B 9C40 -2FA0C 9CFD -2FA0D 4CCE -2FA0E 4CED -2FA0F 9D67 -2FA10 2A0CE -2FA11 4CF8 -2FA12 2A105 -2FA13 2A20E -2FA14 2A291 -2FA15 9EBB -2FA16 4D56 -2FA17 9EF9 -2FA18 9EFE -2FA19 9F05 -2FA1A 9F0F -2FA1B 9F16 -2FA1C 9F3B -2FA1D 2A600 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/Heavy.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/Heavy.pl deleted file mode 100644 index 0301d859..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/Heavy.pl +++ /dev/null @@ -1,6698 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -# This file is for the use of utf8_heavy.pl and Unicode::UCD - -# Maps Unicode (not Perl single-form extensions) property names in loose -# standard form to their corresponding standard names -%utf8::loose_property_name_of = ( -'age' => 'age', -'ahex' => 'ahex', -'alpha' => 'alpha', -'alphabetic' => 'alpha', -'asciihexdigit' => 'ahex', -'bc' => 'bc', -'bidic' => 'bidic', -'bidiclass' => 'bc', -'bidicontrol' => 'bidic', -'bidim' => 'bidim', -'bidimirrored' => 'bidim', -'bidipairedbrackettype' => 'bpt', -'blk' => 'blk', -'block' => 'blk', -'bpt' => 'bpt', -'canonicalcombiningclass' => 'ccc', -'cased' => 'cased', -'caseignorable' => 'ci', -'category' => 'gc', -'ccc' => 'ccc', -'ce' => 'ce', -'changeswhencasefolded' => 'cwcf', -'changeswhencasemapped' => 'cwcm', -'changeswhenlowercased' => 'cwl', -'changeswhennfkccasefolded' => 'cwkcf', -'changeswhentitlecased' => 'cwt', -'changeswhenuppercased' => 'cwu', -'ci' => 'ci', -'compex' => 'compex', -'compositionexclusion' => 'ce', -'cwcf' => 'cwcf', -'cwcm' => 'cwcm', -'cwkcf' => 'cwkcf', -'cwl' => 'cwl', -'cwt' => 'cwt', -'cwu' => 'cwu', -'dash' => 'dash', -'decompositiontype' => 'dt', -'defaultignorablecodepoint' => 'di', -'dep' => 'dep', -'deprecated' => 'dep', -'di' => 'di', -'dia' => 'dia', -'diacritic' => 'dia', -'dt' => 'dt', -'ea' => 'ea', -'eastasianwidth' => 'ea', -'ext' => 'ext', -'extender' => 'ext', -'fullcompositionexclusion' => 'compex', -'gc' => 'gc', -'gcb' => 'gcb', -'generalcategory' => 'gc', -'graphemebase' => 'grbase', -'graphemeclusterbreak' => 'gcb', -'graphemeextend' => 'grext', -'grbase' => 'grbase', -'grext' => 'grext', -'hangulsyllabletype' => 'hst', -'hex' => 'hex', -'hexdigit' => 'hex', -'hst' => 'hst', -'hyphen' => 'hyphen', -'idc' => 'idc', -'idcontinue' => 'idc', -'ideo' => 'ideo', -'ideographic' => 'ideo', -'ids' => 'ids', -'idsb' => 'idsb', -'idsbinaryoperator' => 'idsb', -'idst' => 'idst', -'idstart' => 'ids', -'idstrinaryoperator' => 'idst', -'in' => 'in', -'indicpositionalcategory' => 'inpc', -'indicsyllabiccategory' => 'insc', -'inpc' => 'inpc', -'insc' => 'insc', -'jg' => 'jg', -'joinc' => 'joinc', -'joincontrol' => 'joinc', -'joininggroup' => 'jg', -'joiningtype' => 'jt', -'jt' => 'jt', -'lb' => 'lb', -'linebreak' => 'lb', -'loe' => 'loe', -'logicalorderexception' => 'loe', -'lower' => 'lower', -'lowercase' => 'lower', -'math' => 'math', -'nchar' => 'nchar', -'nfcqc' => 'nfcqc', -'nfcquickcheck' => 'nfcqc', -'nfdqc' => 'nfdqc', -'nfdquickcheck' => 'nfdqc', -'nfkcqc' => 'nfkcqc', -'nfkcquickcheck' => 'nfkcqc', -'nfkdqc' => 'nfkdqc', -'nfkdquickcheck' => 'nfkdqc', -'noncharactercodepoint' => 'nchar', -'nt' => 'nt', -'numerictype' => 'nt', -'numericvalue' => 'nv', -'nv' => 'nv', -'patsyn' => 'patsyn', -'patternsyntax' => 'patsyn', -'patternwhitespace' => 'patws', -'patws' => 'patws', -'presentin' => 'in', -'qmark' => 'qmark', -'quotationmark' => 'qmark', -'radical' => 'radical', -'sb' => 'sb', -'sc' => 'sc', -'script' => 'sc', -'scriptextensions' => 'scx', -'scx' => 'scx', -'sd' => 'sd', -'sentencebreak' => 'sb', -'softdotted' => 'sd', -'space' => 'wspace', -'sterm' => 'sterm', -'term' => 'term', -'terminalpunctuation' => 'term', -'uideo' => 'uideo', -'unifiedideograph' => 'uideo', -'upper' => 'upper', -'uppercase' => 'upper', -'variationselector' => 'vs', -'vs' => 'vs', -'wb' => 'wb', -'whitespace' => 'wspace', -'wordbreak' => 'wb', -'wspace' => 'wspace', -'xidc' => 'xidc', -'xidcontinue' => 'xidc', -'xids' => 'xids', -'xidstart' => 'xids', -); - -# Same, but strict names -%utf8::strict_property_name_of = ( -'_perlgcb' => 'gcb', -'_perlsb' => 'sb', -); - -# Gives the definitions (in the form of inversion lists) for those properties -# whose definitions aren't kept in files -@utf8::inline_definitions = ( - -'V0', -'V1 -0', -'V2 -0 -1114112', -'V4 -9 -14 -32 -33', -'V6 -10 -14 -133 -134 -8232 -8234', -'V6 -48 -58 -65 -91 -97 -123', -'V4 -65 -91 -97 -123', -'V4 -9 -10 -32 -33', -'V4 -0 -32 -127 -128', -'V2 -48 -58', -'V2 -33 -127', -'V2 -97 -123', -'V2 -32 -127', -'V2 -65 -91', -'V2 -55296 -57344', -'V2 -12334 -12336', -'V2 -119149 -119150', -'V6 -1454 -1455 -6313 -6314 -12331 -12332', -'V2 -12330 -12331', -'V6 -861 -863 -864 -866 -7629 -7630', -'V2 -837 -838', -'V2 -12441 -12443', -'V2 -7630 -7631', -'V6 -801 -803 -807 -809 -7632 -7633', -'V2 -1456 -1457', -'V2 -1457 -1458', -'V2 -1458 -1459', -'V2 -1459 -1460', -'V2 -1460 -1461', -'V2 -1461 -1462', -'V2 -1462 -1463', -'V2 -1463 -1464', -'V4 -1464 -1465 -1479 -1480', -'V2 -1465 -1467', -'V2 -1467 -1468', -'V2 -1468 -1469', -'V2 -1469 -1470', -'V2 -1471 -1472', -'V2 -1473 -1474', -'V2 -1474 -1475', -'V2 -64286 -64287', -'V4 -1611 -1612 -2288 -2289', -'V4 -1612 -1613 -2289 -2290', -'V4 -1613 -1614 -2290 -2291', -'V4 -1560 -1561 -1614 -1615', -'V4 -1561 -1562 -1615 -1616', -'V4 -1562 -1563 -1616 -1617', -'V2 -1617 -1618', -'V2 -1618 -1619', -'V2 -1648 -1649', -'V2 -1809 -1810', -'V2 -3157 -3158', -'V2 -3158 -3159', -'V2 -3640 -3642', -'V2 -3656 -3660', -'V2 -3768 -3770', -'V2 -3784 -3788', -'V2 -3953 -3954', -'V6 -3954 -3955 -3962 -3966 -3968 -3969', -'V2 -3956 -3957', -'V6 -48 -58 -65 -71 -97 -103', -'V4 -4352 -4448 -43360 -43389', -'V4 -4520 -4608 -55243 -55292', -'V4 -4448 -4520 -55216 -55239', -'V2 -13 -14', -'V2 -10 -11', -'V2 -127462 -127488', -'V4 -12272 -12274 -12276 -12284', -'V2 -12274 -12276', -'V4 -6971 -6972 -43456 -43457', -'V2 -6973 -6974', -'V2 -8205 -8206', -'V2 -8204 -8205', -'V6 -6512 -6517 -43712 -43713 -43714 -43715', -'V2 -69759 -69760', -'V4 -2510 -2511 -3450 -3456', -'V4 -2673 -2674 -70199 -70200', -'V4 -3660 -3661 -6093 -6094', -'V2 -2947 -2948', -'V2 -6089 -6091', -'V2 -70082 -70084', -'V2 -69714 -69734', -'V2 -3976 -3981', -'V4 -3313 -3315 -69635 -69637', -'V2 -3406 -3407', -'V2 -8204 -8206', -'V6 -11904 -11930 -11931 -12020 -12032 -12246', -'V4 -133 -134 -8232 -8234', -'V6 -6155 -6158 -65024 -65040 -917760 -918000', -'V2 -34 -35', -'V6 -11 -13 -133 -134 -8232 -8234', -'V2 -39 -40', -'V4 -8364 -8365 -65532 -65533', -'V2 -8378 -8379', -'V4 -1564 -1565 -8294 -8298', -'V6 -9 -10 -11 -12 -31 -32', -'V2 -8296 -8297', -'V2 -8234 -8235', -'V2 -8294 -8295', -'V2 -8237 -8238', -'V2 -8236 -8237', -'V2 -8297 -8298', -'V2 -8235 -8236', -'V2 -8295 -8296', -'V2 -8238 -8239', -'V2 -65024 -65040', -'V2 -19968 -40960', -'V2 -12272 -12288', -'V2 -3712 -3840', -'V2 -92736 -92784', -'V2 -1984 -2048', -'V2 -9280 -9312', -'V2 -57344 -63744', -'V2 -42240 -42560', -'V2 -71424 -71488', -'V2 -43520 -43616', -'V2 -4352 -4608', -'V2 -42192 -42240', -'V2 -93952 -94112', -'V2 -71168 -71264', -'V2 -69216 -69248', -'V2 -917504 -917632', -'V2 -3584 -3712', -'V2 -5120 -5760', -'V2 -0 -128', -'V2 -42656 -42752', -'V2 -7104 -7168', -'V2 -5952 -5984', -'V2 -880 -1024', -'V2 -6016 -6144', -'V2 -6400 -6480', -'V2 -119040 -119296', -'V2 -5760 -5792', -'V2 -2816 -2944', -'V2 -5792 -5888', -'V2 -6480 -6528', -'V2 -71296 -71376', -'V2 -2944 -3072', -'V2 -917760 -918000', -'V2 -1536 -1792', -'V2 -8592 -8704', -'V2 -69632 -69760', -'V2 -66208 -66272', -'V2 -69888 -69968', -'V2 -11392 -11520', -'V2 -127024 -127136', -'V2 -66352 -66384', -'V2 -44032 -55216', -'V2 -67808 -67840', -'V2 -1424 -1536', -'V2 -592 -688', -'V2 -69760 -69840', -'V2 -12688 -12704', -'V2 -12032 -12256', -'V2 -70144 -70224', -'V2 -128 -256', -'V2 -7168 -7248', -'V2 -66176 -66208', -'V2 -67872 -67904', -'V2 -43312 -43360', -'V2 -1792 -1872', -'V2 -3072 -3200', -'V2 -1920 -1984', -'V2 -19904 -19968', -'V2 -68352 -68416', -'V2 -2432 -2560', -'V2 -10240 -10496', -'V2 -13312 -19904', -'V2 -131072 -173792', -'V2 -173824 -177984', -'V2 -177984 -178208', -'V2 -178208 -183984', -'V2 -66560 -66640', -'V2 -66816 -66864', -'V2 -70400 -70528', -'V2 -5920 -5952', -'V2 -110592 -110848', -'V2 -3200 -3328', -'V2 -43264 -43312', -'V2 -67072 -67456', -'V2 -126976 -127024', -'V2 -2112 -2144', -'V2 -70272 -70320', -'V2 -4096 -4256', -'V2 -7248 -7296', -'V2 -66688 -66736', -'V2 -43072 -43136', -'V2 -70016 -70112', -'V2 -66640 -66688', -'V2 -71040 -71168', -'V2 -3456 -3584', -'V2 -983040 -1048576', -'V2 -1048576 -1114112', -'V2 -5888 -5920', -'V2 -6688 -6832', -'V2 -43648 -43744', -'V2 -3840 -4096', -'V2 -70784 -70880', -'V2 -6320 -6400', -'V2 -1328 -1424', -'V2 -6912 -7040', -'V2 -92160 -92736', -'V2 -92880 -92928', -'V2 -12544 -12592', -'V2 -6656 -6688', -'V2 -5024 -5120', -'V2 -1024 -1280', -'V2 -9984 -10176', -'V2 -113664 -113824', -'V2 -4608 -4992', -'V2 -4256 -4352', -'V2 -7936 -8192', -'V2 -2688 -2816', -'V2 -2560 -2688', -'V2 -12352 -12448', -'V2 -43360 -43392', -'V2 -55216 -55296', -'V2 -43392 -43488', -'V2 -12448 -12544', -'V2 -69968 -70016', -'V2 -66000 -66048', -'V2 -65520 -65536', -'V2 -5984 -6016', -'V2 -11568 -11648', -'V2 -66432 -66464', -'V2 -7376 -7424', -'V2 -64336 -65024', -'V2 -65136 -65280', -'V2 -1872 -1920', -'V2 -13056 -13312', -'V2 -73728 -74752', -'V2 -128512 -128592', -'V2 -65056 -65072', -'V2 -70320 -70400', -'V2 -256 -384', -'V2 -384 -592', -'V2 -11360 -11392', -'V2 -42784 -43008', -'V2 -43824 -43888', -'V2 -3328 -3456', -'V2 -6144 -6320', -'V2 -67712 -67760', -'V2 -6528 -6624', -'V2 -66304 -66352', -'V2 -66384 -66432', -'V2 -68608 -68688', -'V2 -67680 -67712', -'V2 -72384 -72448', -'V2 -2048 -2112', -'V2 -7040 -7104', -'V2 -128768 -128896', -'V2 -2208 -2304', -'V2 -126464 -126720', -'V2 -9472 -9600', -'V2 -12736 -12784', -'V2 -12288 -12352', -'V2 -12592 -12688', -'V2 -2304 -2432', -'V2 -11264 -11360', -'V2 -68096 -68192', -'V2 -68288 -68352', -'V2 -11008 -11264', -'V2 -66464 -66528', -'V2 -67840 -67872', -'V2 -43136 -43232', -'V2 -65104 -65136', -'V2 -10224 -10240', -'V2 -10496 -10624', -'V2 -129024 -129280', -'V2 -71840 -71936', -'V2 -42128 -42192', -'V2 -12704 -12736', -'V2 -43888 -43968', -'V2 -119648 -119680', -'V2 -1280 -1328', -'V2 -12800 -13056', -'V2 -11648 -11744', -'V2 -4992 -5024', -'V2 -11520 -11568', -'V2 -12784 -12800', -'V2 -43968 -44032', -'V2 -9728 -9984', -'V2 -43616 -43648', -'V2 -43488 -43520', -'V2 -8528 -8592', -'V2 -92928 -93072', -'V2 -7424 -7552', -'V2 -8192 -8304', -'V2 -69840 -69888', -'V2 -8304 -8352', -'V2 -43008 -43056', -'V2 -119552 -119648', -'V2 -40960 -42128', -'V2 -64256 -64336', -'V2 -11744 -11776', -'V2 -42560 -42656', -'V2 -768 -880', -'V2 -43776 -43824', -'V2 -6624 -6656', -'V2 -119808 -120832', -'V2 -124928 -125152', -'V2 -68736 -68864', -'V2 -127136 -127232', -'V2 -7360 -7376', -'V2 -65792 -65856', -'V2 -9600 -9632', -'V2 -43232 -43264', -'V2 -56320 -57344', -'V2 -8704 -8960', -'V2 -8960 -9216', -'V2 -65040 -65056', -'V2 -65936 -66000', -'V2 -118784 -119040', -'V2 -65072 -65104', -'V2 -11904 -12032', -'V2 -55296 -56192', -'V2 -43744 -43776', -'V2 -7552 -7616', -'V2 -68480 -68528', -'V2 -11776 -11904', -'V2 -9216 -9280', -'V2 -8352 -8400', -'V2 -6832 -6912', -'V2 -7616 -7680', -'V2 -9632 -9728', -'V2 -67648 -67680', -'V2 -68000 -68096', -'V2 -127744 -128512', -'V2 -688 -768', -'V2 -68224 -68256', -'V2 -68192 -68224', -'V2 -128640 -128768', -'V2 -74752 -74880', -'V2 -67584 -67648', -'V2 -9312 -9472', -'V2 -65280 -65520', -'V2 -56192 -56320', -'V2 -43056 -43072', -'V2 -65664 -65792', -'V2 -65536 -65664', -'V2 -10176 -10224', -'V2 -10624 -10752', -'V2 -10752 -11008', -'V2 -119296 -119376', -'V2 -66864 -66928', -'V2 -8448 -8528', -'V2 -120832 -121520', -'V2 -66272 -66304', -'V2 -128896 -129024', -'V2 -7680 -7936', -'V2 -128592 -128640', -'V2 -65856 -65936', -'V2 -63744 -64256', -'V2 -77824 -78896', -'V2 -127232 -127488', -'V2 -67968 -68000', -'V2 -42752 -42784', -'V2 -82944 -83584', -'V2 -68448 -68480', -'V2 -68416 -68448', -'V2 -70112 -70144', -'V2 -194560 -195104', -'V2 -8400 -8448', -'V2 -74880 -75088', -'V2 -127488 -127744', -'V2 -113824 -113840', -'V2 -129280 -129536', -'V6 -188 -191 -8528 -8544 -8585 -8586', -'V6 -65104 -65107 -65108 -65127 -65128 -65132', -'V6 -12288 -12289 -65281 -65377 -65504 -65511', -'V4 -0 -32 -127 -160', -'V6 -57344 -63744 -983040 -1048574 -1048576 -1114110', -'V2 -8232 -8233', -'V2 -8233 -8234', -'V2 -1829 -1830', -'V2 -1871 -1872', -'V2 -1815 -1816', -'V2 -1830 -1831', -'V2 -1607 -1608', -'V2 -1825 -1826', -'V2 -1826 -1827', -'V2 -1725 -1726', -'V6 -1591 -1593 -1695 -1696 -2211 -2212', -'V2 -1836 -1837', -'V4 -1810 -1811 -1837 -1838', -'V2 -1818 -1819', -'V2 -1823 -1824', -'V6 -1605 -1606 -1893 -1895 -2215 -2216', -'V6 -1606 -1607 -1721 -1725 -1895 -1898', -'V2 -1833 -1834', -'V2 -1835 -1836', -'V2 -1819 -1821', -'V2 -1821 -1822', -'V2 -1817 -1818', -'V2 -1808 -1809', -'V4 -1811 -1813 -1838 -1839', -'V2 -1870 -1871', -'V2 -1832 -1833', -'V2 -1869 -1870', -'V2 -1824 -1825', -'V2 -1822 -1823', -'V2 -1729 -1731', -'V2 -1827 -1828', -'V2 -1706 -1707', -'V2 -1816 -1817', -'V2 -1746 -1748', -'V6 -1813 -1815 -1834 -1835 -1839 -1840', -'V4 -1726 -1727 -1791 -1792', -'V2 -1831 -1832', -'V6 -1577 -1578 -1728 -1729 -1749 -1750', -'V2 -2220 -2221', -'V2 -2225 -2226', -'V2 -1741 -1742', -'V2 -1828 -1829', -'V2 -68315 -68317', -'V2 -68310 -68311', -'V2 -68311 -68312', -'V2 -68331 -68332', -'V2 -68324 -68325', -'V2 -68333 -68334', -'V2 -68295 -68296', -'V2 -1731 -1732', -'V2 -68313 -68315', -'V2 -68289 -68291', -'V2 -68332 -68333', -'V2 -68301 -68302', -'V2 -68304 -68307', -'V2 -68318 -68321', -'V2 -68321 -68322', -'V2 -68302 -68303', -'V2 -68303 -68304', -'V2 -68288 -68289', -'V2 -68291 -68293', -'V2 -68317 -68318', -'V2 -68297 -68299', -'V2 -68293 -68294', -'V2 -68307 -68308', -'V2 -68312 -68313', -'V2 -68334 -68335', -'V2 -68308 -68309', -'V2 -68335 -68336', -'V2 -68309 -68310', -'V2 -1914 -1916', -'V6 -43122 -43123 -68301 -68302 -68311 -68312', -'V4 -8212 -8213 -11834 -11836', -'V4 -11 -13 -8232 -8234', -'V2 -65532 -65533', -'V4 -41 -42 -93 -94', -'V2 -45 -46', -'V2 -133 -134', -'V2 -55296 -57344', -'V2 -32 -33', -'V2 -47 -48', -'V4 -8288 -8289 -65279 -65280', -'V2 -8203 -8204', -'V2 -12881 -12882', -'V2 -12882 -12883', -'V2 -12883 -12884', -'V2 -12884 -12885', -'V2 -12885 -12886', -'V2 -12886 -12887', -'V2 -12887 -12888', -'V2 -12888 -12889', -'V2 -12889 -12890', -'V2 -12891 -12892', -'V2 -12892 -12893', -'V2 -12893 -12894', -'V2 -12894 -12895', -'V2 -12895 -12896', -'V2 -12977 -12978', -'V2 -12978 -12979', -'V2 -12979 -12980', -'V2 -12980 -12981', -'V2 -12982 -12983', -'V2 -12983 -12984', -'V2 -12984 -12985', -'V2 -12985 -12986', -'V2 -12986 -12987', -'V2 -12987 -12988', -'V2 -12988 -12989', -'V2 -12989 -12990', -'V2 -12990 -12991', -'V2 -8533 -8534', -'V6 -8537 -8538 -68087 -68088 -74849 -74850', -'V2 -8528 -8529', -'V2 -8529 -8530', -'V2 -8534 -8535', -'V2 -3883 -3884', -'V2 -8535 -8536', -'V2 -8540 -8541', -'V2 -8536 -8537', -'V2 -3884 -3885', -'V6 -8538 -8539 -68095 -68096 -74844 -74845', -'V2 -8541 -8542', -'V2 -3885 -3886', -'V2 -8542 -8543', -'V2 -3886 -3887', -'V2 -3891 -3892', -'V2 -8530 -8531', -'V2 -68086 -68087', -'V6 -2548 -2549 -2933 -2934 -43059 -43060', -'V2 -3887 -3888', -'V2 -3888 -3889', -'V2 -3889 -3890', -'V2 -3890 -3891', -'V4 -65827 -65828 -68060 -68061', -'V6 -2550 -2551 -2935 -2936 -43061 -43062', -'V4 -65828 -65829 -68061 -68062', -'V4 -65829 -65830 -68062 -68063', -'V2 -68090 -68091', -'V4 -65831 -65832 -68064 -68065', -'V2 -68092 -68093', -'V4 -65832 -65833 -68065 -68066', -'V4 -65833 -65834 -68066 -68067', -'V4 -65834 -65835 -68067 -68068', -'V2 -68028 -68029', -'V4 -65836 -65837 -68069 -68070', -'V4 -65837 -65838 -68070 -68071', -'V4 -65838 -65839 -68071 -68072', -'V4 -65840 -65841 -68073 -68074', -'V4 -65841 -65842 -68074 -68075', -'V4 -65842 -65843 -68075 -68076', -'V4 -65843 -65844 -68076 -68077', -'V4 -8584 -8585 -68077 -68078', -'V2 -68078 -68079', -'V2 -74802 -74803', -'V2 -68079 -68080', -'V2 -68080 -68081', -'V2 -74803 -74804', -'V2 -68081 -68082', -'V2 -68082 -68083', -'V2 -68083 -68084', -'V2 -68084 -68085', -'V2 -68085 -68086', -'V2 -93022 -93023', -'V6 -20159 -20160 -20740 -20741 -93023 -93024', -'V2 -93024 -93025', -'V4 -20806 -20807 -93025 -93026', -'V4 -40960 -42125 -42128 -42183', -'V6 -92736 -92767 -92768 -92778 -92782 -92784', -'V2 -1984 -2043', -'V2 -42240 -42540', -'V4 -66864 -66916 -66927 -66928', -'V6 -71424 -71450 -71453 -71468 -71472 -71488', -'V4 -67648 -67670 -67671 -67680', -'V4 -68352 -68406 -68409 -68416', -'V4 -6912 -6988 -6992 -7037', -'V4 -42656 -42744 -92160 -92729', -'V4 -92880 -92910 -92912 -92918', -'V4 -7104 -7156 -7164 -7168', -'V6 -746 -748 -12549 -12590 -12704 -12731', -'V6 -69632 -69710 -69714 -69744 -69759 -69760', -'V4 -6656 -6684 -6686 -6688', -'V2 -5952 -5972', -'V4 -69888 -69941 -69942 -69956', -'V4 -5120 -5760 -6320 -6390', -'V2 -66208 -66257', -'V6 -5024 -5110 -5112 -5118 -43888 -43968', -'V6 -994 -1008 -11392 -11508 -11513 -11520', -'V2 -77824 -78895', -'V2 -66816 -66856', -'V4 -11264 -11311 -11312 -11359', -'V2 -66352 -66379', -'V2 -5920 -5941', -'V6 -67808 -67827 -67828 -67830 -67835 -67840', -'V2 -82944 -83527', -'V6 -68736 -68787 -68800 -68851 -68858 -68864', -'V2 -66304 -66340', -'V6 -43392 -43470 -43472 -43482 -43486 -43488', -'V4 -43264 -43310 -43311 -43312', -'V4 -70144 -70162 -70163 -70206', -'V2 -69760 -69826', -'V6 -7168 -7224 -7227 -7242 -7245 -7248', -'V6 -67072 -67383 -67392 -67414 -67424 -67432', -'V2 -66176 -66205', -'V4 -67872 -67898 -67903 -67904', -'V2 -69968 -70007', -'V4 -2112 -2140 -2142 -2143', -'V4 -68288 -68327 -68331 -68343', -'V4 -124928 -125125 -125127 -125143', -'V6 -68000 -68024 -68028 -68048 -68050 -68096', -'V6 -93952 -94021 -94032 -94079 -94095 -94112', -'V4 -71168 -71237 -71248 -71258', -'V6 -43744 -43767 -43968 -44014 -44016 -44026', -'V6 -4096 -4256 -43488 -43519 -43616 -43648', -'V4 -67712 -67743 -67751 -67760', -'V2 -5760 -5789', -'V2 -68608 -68681', -'V4 -66688 -66718 -66720 -66730', -'V2 -72384 -72441', -'V2 -66384 -66427', -'V2 -43072 -43128', -'V4 -68448 -68467 -68472 -68480', -'V6 -68480 -68498 -68505 -68509 -68521 -68528', -'V4 -67840 -67868 -67871 -67872', -'V4 -68416 -68438 -68440 -68448', -'V4 -43312 -43348 -43359 -43360', -'V4 -5792 -5867 -5870 -5881', -'V4 -2048 -2094 -2096 -2111', -'V4 -43136 -43205 -43214 -43226', -'V6 -120832 -121484 -121499 -121504 -121505 -121520', -'V4 -70016 -70094 -70096 -70112', -'V4 -71040 -71094 -71096 -71134', -'V4 -70320 -70379 -70384 -70394', -'V4 -69840 -69865 -69872 -69882', -'V4 -7040 -7104 -7360 -7368', -'V2 -43008 -43052', -'V6 -1792 -1806 -1807 -1867 -1869 -1872', -'V6 -5984 -5997 -5998 -6001 -6002 -6004', -'V4 -71296 -71352 -71360 -71370', -'V4 -6480 -6510 -6512 -6517', -'V4 -43648 -43715 -43739 -43744', -'V6 -11568 -11624 -11631 -11633 -11647 -11648', -'V4 -5888 -5901 -5902 -5909', -'V2 -1920 -1970', -'V4 -3585 -3643 -3648 -3676', -'V4 -70784 -70856 -70864 -70874', -'V4 -66432 -66462 -66463 -66464', -'V4 -71840 -71923 -71935 -71936', -'V4 -66464 -66500 -66504 -66518', -'V6 -6656 -6684 -6686 -6688 -43471 -43472', -'V4 -5941 -5943 -5952 -5972', -'V2 -5920 -5943', -'V6 -43392 -43470 -43471 -43482 -43486 -43488', -'V6 -2790 -2800 -70144 -70162 -70163 -70206', -'V6 -2406 -2416 -43056 -43066 -69760 -69826', -'V6 -2404 -2416 -43056 -43066 -69968 -70007', -'V6 -1600 -1601 -2112 -2140 -2142 -2143', -'V6 -1600 -1601 -68288 -68327 -68331 -68343', -'V6 -43056 -43066 -71168 -71237 -71248 -71258', -'V4 -1155 -1156 -66384 -66427', -'V6 -6146 -6148 -6149 -6150 -43072 -43128', -'V6 -2404 -2406 -2534 -2544 -43008 -43052', -'V6 -4160 -4170 -6480 -6510 -6512 -6517', -'V6 -5888 -5901 -5902 -5909 -5941 -5943', -, -); - -# Maps property, table to file for those using stricter matching. For paths -# whose directory is '#', the file is in the form of a numeric index into -# @inline_definitions -%utf8::stricter_to_file_of = ( -'_canondcij' => 'SD/Y', -'_case_ignorable' => 'CI/Y', -'_combabove' => 'Ccc/A', -'_perl_any_folds' => 'Perl/_PerlAny', -'_perl_charname_begin' => 'Perl/_PerlCha', -'_perl_charname_continue' => 'Perl/_PerlCh2', -'_perl_folds_to_multi_char' => 'Perl/_PerlFol', -'_perl_idcont' => 'Perl/_PerlIDC', -'_perl_idstart' => 'Perl/_PerlIDS', -'_perl_nchar' => 'Perl/_PerlNch', -'_perl_patws' => 'Perl/_PerlPat', -'_perl_problematic_locale_foldeds_start' => 'Perl/_PerlPr2', -'_perl_problematic_locale_folds' => 'Perl/_PerlPro', -'_perl_quotemeta' => 'Perl/_PerlQuo', -'_perl_surrogate' => '#/14', -'age=1.1' => 'Age/V11', -'age=2' => 'Age/V20', -'age=2.0' => 'Age/V20', -'age=2.1' => '#/92', -'age=3' => 'Age/V30', -'age=3.0' => 'Age/V30', -'age=3.1' => 'Age/V31', -'age=3.2' => 'Age/V32', -'age=4' => 'Age/V40', -'age=4.0' => 'Age/V40', -'age=4.1' => 'Age/V41', -'age=5' => 'Age/V50', -'age=5.0' => 'Age/V50', -'age=5.1' => 'Age/V51', -'age=5.2' => 'Age/V52', -'age=6' => 'Age/V60', -'age=6.0' => 'Age/V60', -'age=6.1' => 'Age/V61', -'age=6.2' => '#/93', -'age=6.3' => '#/94', -'age=7' => 'Age/V70', -'age=7.0' => 'Age/V70', -'age=8' => 'Age/V80', -'age=8.0' => 'Age/V80', -'ccc=0' => 'Ccc/NR', -'ccc=1' => 'Ccc/OV', -'ccc=10' => '#/24', -'ccc=103' => '#/53', -'ccc=107' => '#/54', -'ccc=11' => '#/25', -'ccc=118' => '#/55', -'ccc=12' => '#/26', -'ccc=122' => '#/56', -'ccc=129' => '#/57', -'ccc=13' => '#/27', -'ccc=130' => '#/58', -'ccc=132' => '#/59', -'ccc=133' => '#/0', -'ccc=14' => '#/28', -'ccc=15' => '#/29', -'ccc=16' => '#/30', -'ccc=17' => '#/31', -'ccc=18' => '#/32', -'ccc=19' => '#/33', -'ccc=20' => '#/34', -'ccc=200' => '#/0', -'ccc=202' => '#/23', -'ccc=21' => '#/35', -'ccc=214' => '#/22', -'ccc=216' => 'Ccc/ATAR', -'ccc=218' => '#/18', -'ccc=22' => '#/36', -'ccc=220' => 'Ccc/B', -'ccc=222' => 'Ccc/BR', -'ccc=224' => '#/15', -'ccc=226' => '#/16', -'ccc=228' => '#/17', -'ccc=23' => '#/37', -'ccc=230' => 'Ccc/A', -'ccc=232' => 'Ccc/AR', -'ccc=233' => 'Ccc/DB', -'ccc=234' => '#/19', -'ccc=24' => '#/38', -'ccc=240' => '#/20', -'ccc=25' => '#/39', -'ccc=26' => '#/40', -'ccc=27' => '#/41', -'ccc=28' => '#/42', -'ccc=29' => '#/43', -'ccc=30' => '#/44', -'ccc=31' => '#/45', -'ccc=32' => '#/46', -'ccc=33' => '#/47', -'ccc=34' => '#/48', -'ccc=35' => '#/49', -'ccc=36' => '#/50', -'ccc=7' => 'Ccc/NK', -'ccc=8' => '#/21', -'ccc=84' => '#/51', -'ccc=9' => 'Ccc/VR', -'ccc=91' => '#/52', -'in=1.1' => 'Age/V11', -'in=2' => 'In/2_0', -'in=2.0' => 'In/2_0', -'in=2.1' => 'In/2_1', -'in=3' => 'In/3_0', -'in=3.0' => 'In/3_0', -'in=3.1' => 'In/3_1', -'in=3.2' => 'In/3_2', -'in=4' => 'In/4_0', -'in=4.0' => 'In/4_0', -'in=4.1' => 'In/4_1', -'in=5' => 'In/5_0', -'in=5.0' => 'In/5_0', -'in=5.1' => 'In/5_1', -'in=5.2' => 'In/5_2', -'in=6' => 'In/6_0', -'in=6.0' => 'In/6_0', -'in=6.1' => 'In/6_1', -'in=6.2' => 'In/6_2', -'in=6.3' => 'In/6_3', -'in=7' => 'In/7_0', -'in=7.0' => 'In/7_0', -'in=8' => 'In/8_0', -'in=8.0' => 'In/8_0', -'nv=-1/2' => '#/497', -'nv=0' => 'Nv/0', -'nv=1' => 'Nv/1', -'nv=1/10' => '#/498', -'nv=1/12' => '#/499', -'nv=1/16' => '#/500', -'nv=1/2' => 'Nv/1_2', -'nv=1/3' => 'Nv/1_3', -'nv=1/4' => 'Nv/1_4', -'nv=1/5' => '#/482', -'nv=1/6' => '#/483', -'nv=1/7' => '#/484', -'nv=1/8' => 'Nv/1_8', -'nv=1/9' => '#/485', -'nv=10' => 'Nv/10', -'nv=100' => 'Nv/100', -'nv=1000' => 'Nv/1000', -'nv=10000' => 'Nv/10000', -'nv=100000' => '#/523', -'nv=1000000' => '#/534', -'nv=100000000' => '#/535', -'nv=10000000000' => '#/536', -'nv=1000000000000' => '#/537', -'nv=11' => 'Nv/11', -'nv=11/12' => '#/515', -'nv=11/2' => '#/501', -'nv=12' => 'Nv/12', -'nv=13' => 'Nv/13', -'nv=13/2' => '#/502', -'nv=14' => 'Nv/14', -'nv=15' => 'Nv/15', -'nv=15/2' => '#/503', -'nv=16' => 'Nv/16', -'nv=17' => 'Nv/17', -'nv=17/2' => '#/504', -'nv=18' => 'Nv/18', -'nv=19' => 'Nv/19', -'nv=2' => 'Nv/2', -'nv=2/3' => 'Nv/2_3', -'nv=2/5' => '#/486', -'nv=20' => 'Nv/20', -'nv=200' => 'Nv/200', -'nv=2000' => '#/505', -'nv=20000' => '#/516', -'nv=200000' => '#/524', -'nv=21' => '#/455', -'nv=216000' => '#/525', -'nv=22' => '#/456', -'nv=23' => '#/457', -'nv=24' => '#/458', -'nv=25' => '#/459', -'nv=26' => '#/460', -'nv=27' => '#/461', -'nv=28' => '#/462', -'nv=29' => '#/463', -'nv=3' => 'Nv/3', -'nv=3/16' => '#/506', -'nv=3/2' => '#/487', -'nv=3/4' => 'Nv/3_4', -'nv=3/5' => '#/488', -'nv=3/8' => '#/489', -'nv=30' => 'Nv/30', -'nv=300' => 'Nv/300', -'nv=3000' => '#/507', -'nv=30000' => '#/517', -'nv=300000' => '#/526', -'nv=31' => '#/464', -'nv=32' => '#/465', -'nv=33' => '#/466', -'nv=34' => '#/467', -'nv=35' => '#/468', -'nv=36' => '#/469', -'nv=37' => '#/470', -'nv=38' => '#/471', -'nv=39' => '#/472', -'nv=4' => 'Nv/4', -'nv=4/5' => '#/490', -'nv=40' => 'Nv/40', -'nv=400' => 'Nv/400', -'nv=4000' => '#/508', -'nv=40000' => '#/518', -'nv=400000' => '#/527', -'nv=41' => '#/473', -'nv=42' => '#/474', -'nv=43' => '#/475', -'nv=432000' => '#/528', -'nv=44' => '#/476', -'nv=45' => '#/477', -'nv=46' => '#/478', -'nv=47' => '#/479', -'nv=48' => '#/480', -'nv=49' => '#/481', -'nv=5' => 'Nv/5', -'nv=5/12' => '#/509', -'nv=5/2' => '#/491', -'nv=5/6' => '#/492', -'nv=5/8' => '#/493', -'nv=50' => 'Nv/50', -'nv=500' => 'Nv/500', -'nv=5000' => 'Nv/5000', -'nv=50000' => 'Nv/50000', -'nv=500000' => '#/529', -'nv=6' => 'Nv/6', -'nv=60' => 'Nv/60', -'nv=600' => 'Nv/600', -'nv=6000' => '#/510', -'nv=60000' => '#/519', -'nv=600000' => '#/530', -'nv=7' => 'Nv/7', -'nv=7/12' => '#/511', -'nv=7/2' => '#/494', -'nv=7/8' => '#/495', -'nv=70' => 'Nv/70', -'nv=700' => 'Nv/700', -'nv=7000' => '#/512', -'nv=70000' => '#/520', -'nv=700000' => '#/531', -'nv=8' => 'Nv/8', -'nv=80' => 'Nv/80', -'nv=800' => 'Nv/800', -'nv=8000' => '#/513', -'nv=80000' => '#/521', -'nv=800000' => '#/532', -'nv=9' => 'Nv/9', -'nv=9/2' => '#/496', -'nv=90' => 'Nv/90', -'nv=900' => 'Nv/900', -'nv=9000' => '#/514', -'nv=90000' => '#/522', -'nv=900000' => '#/533', -); - -# Maps property, table to file for those using loose matching. For paths -# whose directory is '#', the file is in the form of a numeric index into -# @inline_definitions -%utf8::loose_to_file_of = ( -'aegeannumbers' => '#/304', -'age=na' => 'Age/NA', -'age=unassigned' => 'Age/NA', -'age=v11' => 'Age/V11', -'age=v20' => 'Age/V20', -'age=v21' => '#/92', -'age=v30' => 'Age/V30', -'age=v31' => 'Age/V31', -'age=v32' => 'Age/V32', -'age=v40' => 'Age/V40', -'age=v41' => 'Age/V41', -'age=v50' => 'Age/V50', -'age=v51' => 'Age/V51', -'age=v52' => 'Age/V52', -'age=v60' => 'Age/V60', -'age=v61' => 'Age/V61', -'age=v62' => '#/93', -'age=v63' => '#/94', -'age=v70' => 'Age/V70', -'age=v80' => 'Age/V80', -'aghb' => '#/542', -'ahex' => '#/60', -'ahex=f' => '#/!60', -'ahex=false' => '#/!60', -'ahex=n' => '#/!60', -'ahex=no' => '#/!60', -'ahex=t' => '#/60', -'ahex=true' => '#/60', -'ahex=y' => '#/60', -'ahex=yes' => '#/60', -'ahom' => '#/543', -'alchemical' => '#/250', -'alchemicalsymbols' => '#/250', -'all' => '#/1', -'alnum' => 'Perl/Alnum', -'alpha' => 'Alpha/Y', -'alpha=f' => '!Alpha/Y', -'alpha=false' => '!Alpha/Y', -'alpha=n' => '!Alpha/Y', -'alpha=no' => '!Alpha/Y', -'alpha=t' => 'Alpha/Y', -'alpha=true' => 'Alpha/Y', -'alpha=y' => 'Alpha/Y', -'alpha=yes' => 'Alpha/Y', -'alphabetic' => 'Alpha/Y', -'alphabeticpf' => '#/293', -'alphabeticpresentationforms' => '#/293', -'anatolianhieroglyphs' => '#/565', -'ancientgreekmusic' => '#/343', -'ancientgreekmusicalnotation' => '#/343', -'ancientgreeknumbers' => '#/351', -'ancientsymbols' => '#/311', -'any' => '#/2', -'arab' => 'Sc/Arab', -'arabic' => 'Sc/Arab', -'arabicexta' => '#/251', -'arabicextendeda' => '#/251', -'arabicmath' => '#/252', -'arabicmathematicalalphabeticsymbols' => '#/252', -'arabicpfa' => '#/226', -'arabicpfb' => '#/227', -'arabicpresentationformsa' => '#/226', -'arabicpresentationformsb' => '#/227', -'arabicsup' => '#/228', -'arabicsupplement' => '#/228', -'armenian' => 'Sc/Armn', -'armi' => '#/544', -'armn' => 'Sc/Armn', -'arrows' => '#/140', -'ascii' => '#/124', -'asciihexdigit' => '#/60', -'assigned' => 'Perl/Assigned', -'avestan' => '#/545', -'avst' => '#/545', -'bali' => '#/546', -'balinese' => '#/546', -'bamu' => '#/547', -'bamum' => '#/547', -'bamumsup' => '#/201', -'bamumsupplement' => '#/201', -'basiclatin' => '#/124', -'bass' => '#/548', -'bassavah' => '#/548', -'batak' => '#/549', -'batk' => '#/549', -'bc=al' => 'Bc/AL', -'bc=an' => 'Bc/AN', -'bc=arabicletter' => 'Bc/AL', -'bc=arabicnumber' => 'Bc/AN', -'bc=b' => 'Bc/B', -'bc=bn' => 'Bc/BN', -'bc=boundaryneutral' => 'Bc/BN', -'bc=commonseparator' => 'Bc/CS', -'bc=cs' => 'Bc/CS', -'bc=en' => 'Bc/EN', -'bc=es' => 'Bc/ES', -'bc=et' => 'Bc/ET', -'bc=europeannumber' => 'Bc/EN', -'bc=europeanseparator' => 'Bc/ES', -'bc=europeanterminator' => 'Bc/ET', -'bc=firststrongisolate' => '#/96', -'bc=fsi' => '#/96', -'bc=l' => 'Bc/L', -'bc=lefttoright' => 'Bc/L', -'bc=lefttorightembedding' => '#/97', -'bc=lefttorightisolate' => '#/98', -'bc=lefttorightoverride' => '#/99', -'bc=lre' => '#/97', -'bc=lri' => '#/98', -'bc=lro' => '#/99', -'bc=nonspacingmark' => 'Bc/NSM', -'bc=nsm' => 'Bc/NSM', -'bc=on' => 'Bc/ON', -'bc=otherneutral' => 'Bc/ON', -'bc=paragraphseparator' => 'Bc/B', -'bc=pdf' => '#/100', -'bc=pdi' => '#/101', -'bc=popdirectionalformat' => '#/100', -'bc=popdirectionalisolate' => '#/101', -'bc=r' => 'Bc/R', -'bc=righttoleft' => 'Bc/R', -'bc=righttoleftembedding' => '#/102', -'bc=righttoleftisolate' => '#/103', -'bc=righttoleftoverride' => '#/104', -'bc=rle' => '#/102', -'bc=rli' => '#/103', -'bc=rlo' => '#/104', -'bc=s' => '#/95', -'bc=segmentseparator' => '#/95', -'bc=whitespace' => 'Bc/WS', -'bc=ws' => 'Bc/WS', -'beng' => 'Sc/Beng', -'bengali' => 'Sc/Beng', -'bidic' => 'BidiC/Y', -'bidic=f' => '!BidiC/Y', -'bidic=false' => '!BidiC/Y', -'bidic=n' => '!BidiC/Y', -'bidic=no' => '!BidiC/Y', -'bidic=t' => 'BidiC/Y', -'bidic=true' => 'BidiC/Y', -'bidic=y' => 'BidiC/Y', -'bidic=yes' => 'BidiC/Y', -'bidicontrol' => 'BidiC/Y', -'bidim' => 'BidiM/Y', -'bidim=f' => '!BidiM/Y', -'bidim=false' => '!BidiM/Y', -'bidim=n' => '!BidiM/Y', -'bidim=no' => '!BidiM/Y', -'bidim=t' => 'BidiM/Y', -'bidim=true' => 'BidiM/Y', -'bidim=y' => 'BidiM/Y', -'bidim=yes' => 'BidiM/Y', -'bidimirrored' => 'BidiM/Y', -'blank' => 'Perl/Blank', -'blk=aegeannumbers' => '#/304', -'blk=ahom' => '#/114', -'blk=alchemical' => '#/250', -'blk=alchemicalsymbols' => '#/250', -'blk=alphabeticpf' => '#/293', -'blk=alphabeticpresentationforms' => '#/293', -'blk=anatolianhieroglyphs' => '#/357', -'blk=ancientgreekmusic' => '#/343', -'blk=ancientgreekmusicalnotation' => '#/343', -'blk=ancientgreeknumbers' => '#/351', -'blk=ancientsymbols' => '#/311', -'blk=arabic' => '#/139', -'blk=arabicexta' => '#/251', -'blk=arabicextendeda' => '#/251', -'blk=arabicmath' => '#/252', -'blk=arabicmathematicalalphabeticsymbols' => '#/252', -'blk=arabicpfa' => '#/226', -'blk=arabicpfb' => '#/227', -'blk=arabicpresentationformsa' => '#/226', -'blk=arabicpresentationformsb' => '#/227', -'blk=arabicsup' => '#/228', -'blk=arabicsupplement' => '#/228', -'blk=armenian' => '#/199', -'blk=arrows' => '#/140', -'blk=ascii' => '#/124', -'blk=avestan' => '#/164', -'blk=balinese' => '#/200', -'blk=bamum' => '#/125', -'blk=bamumsup' => '#/201', -'blk=bamumsupplement' => '#/201', -'blk=basiclatin' => '#/124', -'blk=bassavah' => '#/202', -'blk=batak' => '#/126', -'blk=bengali' => '#/165', -'blk=blockelements' => '#/305', -'blk=bopomofo' => '#/203', -'blk=bopomofoext' => '#/271', -'blk=bopomofoextended' => '#/271', -'blk=boxdrawing' => '#/253', -'blk=brahmi' => '#/141', -'blk=braille' => '#/166', -'blk=braillepatterns' => '#/166', -'blk=buginese' => '#/204', -'blk=buhid' => '#/127', -'blk=byzantinemusic' => '#/312', -'blk=byzantinemusicalsymbols' => '#/312', -'blk=canadiansyllabics' => '#/123', -'blk=carian' => '#/142', -'blk=caucasianalbanian' => '#/344', -'blk=chakma' => '#/143', -'blk=cham' => '#/115', -'blk=cherokee' => '#/205', -'blk=cherokeesup' => '#/272', -'blk=cherokeesupplement' => '#/272', -'blk=cjk' => '#/106', -'blk=cjkcompat' => '#/229', -'blk=cjkcompatforms' => '#/313', -'blk=cjkcompatibility' => '#/229', -'blk=cjkcompatibilityforms' => '#/313', -'blk=cjkcompatibilityideographs' => '#/352', -'blk=cjkcompatibilityideographssupplement' => '#/361', -'blk=cjkcompatideographs' => '#/352', -'blk=cjkcompatideographssup' => '#/361', -'blk=cjkexta' => '#/167', -'blk=cjkextb' => '#/168', -'blk=cjkextc' => '#/169', -'blk=cjkextd' => '#/170', -'blk=cjkexte' => '#/171', -'blk=cjkradicalssup' => '#/314', -'blk=cjkradicalssupplement' => '#/314', -'blk=cjkstrokes' => '#/254', -'blk=cjksymbols' => '#/255', -'blk=cjksymbolsandpunctuation' => '#/255', -'blk=cjkunifiedideographs' => '#/106', -'blk=cjkunifiedideographsextensiona' => '#/167', -'blk=cjkunifiedideographsextensionb' => '#/168', -'blk=cjkunifiedideographsextensionc' => '#/169', -'blk=cjkunifiedideographsextensiond' => '#/170', -'blk=cjkunifiedideographsextensione' => '#/171', -'blk=combiningdiacriticalmarks' => '#/296', -'blk=combiningdiacriticalmarksextended' => '#/322', -'blk=combiningdiacriticalmarksforsymbols' => '#/362', -'blk=combiningdiacriticalmarkssupplement' => '#/323', -'blk=combininghalfmarks' => '#/232', -'blk=combiningmarksforsymbols' => '#/362', -'blk=commonindicnumberforms' => '#/337', -'blk=compatjamo' => '#/256', -'blk=controlpictures' => '#/320', -'blk=coptic' => '#/144', -'blk=copticepactnumbers' => '#/347', -'blk=countingrod' => '#/273', -'blk=countingrodnumerals' => '#/273', -'blk=cuneiform' => '#/230', -'blk=cuneiformnumbers' => '#/332', -'blk=cuneiformnumbersandpunctuation' => '#/332', -'blk=currencysymbols' => '#/321', -'blk=cypriotsyllabary' => '#/333', -'blk=cyrillic' => '#/206', -'blk=cyrillicexta' => '#/294', -'blk=cyrillicextb' => '#/295', -'blk=cyrillicextendeda' => '#/294', -'blk=cyrillicextendedb' => '#/295', -'blk=cyrillicsup' => '#/274', -'blk=cyrillicsupplement' => '#/274', -'blk=cyrillicsupplementary' => '#/274', -'blk=deseret' => '#/172', -'blk=devanagari' => '#/257', -'blk=devanagariext' => '#/306', -'blk=devanagariextended' => '#/306', -'blk=diacriticals' => '#/296', -'blk=diacriticalsext' => '#/322', -'blk=diacriticalsforsymbols' => '#/362', -'blk=diacriticalssup' => '#/323', -'blk=dingbats' => '#/207', -'blk=domino' => '#/145', -'blk=dominotiles' => '#/145', -'blk=duployan' => '#/208', -'blk=earlydynasticcuneiform' => '#/363', -'blk=egyptianhieroglyphs' => '#/353', -'blk=elbasan' => '#/173', -'blk=emoticons' => '#/231', -'blk=enclosedalphanum' => '#/334', -'blk=enclosedalphanumerics' => '#/334', -'blk=enclosedalphanumericsupplement' => '#/354', -'blk=enclosedalphanumsup' => '#/354', -'blk=enclosedcjk' => '#/275', -'blk=enclosedcjklettersandmonths' => '#/275', -'blk=enclosedideographicsup' => '#/364', -'blk=enclosedideographicsupplement' => '#/364', -'blk=ethiopic' => '#/209', -'blk=ethiopicext' => '#/276', -'blk=ethiopicexta' => '#/297', -'blk=ethiopicextended' => '#/276', -'blk=ethiopicextendeda' => '#/297', -'blk=ethiopicsup' => '#/277', -'blk=ethiopicsupplement' => '#/277', -'blk=generalpunctuation' => '#/287', -'blk=geometricshapes' => '#/324', -'blk=geometricshapesext' => '#/348', -'blk=geometricshapesextended' => '#/348', -'blk=georgian' => '#/210', -'blk=georgiansup' => '#/278', -'blk=georgiansupplement' => '#/278', -'blk=glagolitic' => '#/258', -'blk=gothic' => '#/146', -'blk=grantha' => '#/174', -'blk=greek' => '#/128', -'blk=greekandcoptic' => '#/128', -'blk=greekext' => '#/211', -'blk=greekextended' => '#/211', -'blk=gujarati' => '#/212', -'blk=gurmukhi' => '#/213', -'blk=halfandfullforms' => '#/335', -'blk=halfmarks' => '#/232', -'blk=halfwidthandfullwidthforms' => '#/335', -'blk=hangul' => '#/147', -'blk=hangulcompatibilityjamo' => '#/256', -'blk=hanguljamo' => '#/116', -'blk=hanguljamoextendeda' => '#/215', -'blk=hanguljamoextendedb' => '#/216', -'blk=hangulsyllables' => '#/147', -'blk=hanunoo' => '#/175', -'blk=hatran' => '#/148', -'blk=hebrew' => '#/149', -'blk=highprivateusesurrogates' => '#/336', -'blk=highpusurrogates' => '#/336', -'blk=highsurrogates' => '#/315', -'blk=hiragana' => '#/214', -'blk=idc' => '#/107', -'blk=ideographicdescriptioncharacters' => '#/107', -'blk=imperialaramaic' => '#/325', -'blk=indicnumberforms' => '#/337', -'blk=inscriptionalpahlavi' => '#/358', -'blk=inscriptionalparthian' => '#/359', -'blk=ipaext' => '#/150', -'blk=ipaextensions' => '#/150', -'blk=jamo' => '#/116', -'blk=jamoexta' => '#/215', -'blk=jamoextb' => '#/216', -'blk=javanese' => '#/217', -'blk=kaithi' => '#/151', -'blk=kanasup' => '#/176', -'blk=kanasupplement' => '#/176', -'blk=kanbun' => '#/152', -'blk=kangxi' => '#/153', -'blk=kangxiradicals' => '#/153', -'blk=kannada' => '#/177', -'blk=katakana' => '#/218', -'blk=katakanaext' => '#/279', -'blk=katakanaphoneticextensions' => '#/279', -'blk=kayahli' => '#/178', -'blk=kharoshthi' => '#/259', -'blk=khmer' => '#/129', -'blk=khmersymbols' => '#/298', -'blk=khojki' => '#/154', -'blk=khudawadi' => '#/233', -'blk=lao' => '#/108', -'blk=latin1' => '#/155', -'blk=latin1sup' => '#/155', -'blk=latin1supplement' => '#/155', -'blk=latinexta' => '#/234', -'blk=latinextadditional' => '#/349', -'blk=latinextb' => '#/235', -'blk=latinextc' => '#/236', -'blk=latinextd' => '#/237', -'blk=latinexte' => '#/238', -'blk=latinextendeda' => '#/234', -'blk=latinextendedadditional' => '#/349', -'blk=latinextendedb' => '#/235', -'blk=latinextendedc' => '#/236', -'blk=latinextendedd' => '#/237', -'blk=latinextendede' => '#/238', -'blk=lepcha' => '#/156', -'blk=letterlikesymbols' => '#/345', -'blk=limbu' => '#/130', -'blk=lineara' => '#/179', -'blk=linearbideograms' => '#/338', -'blk=linearbsyllabary' => '#/339', -'blk=lisu' => '#/117', -'blk=lowsurrogates' => '#/307', -'blk=lycian' => '#/157', -'blk=lydian' => '#/158', -'blk=mahajani' => '#/219', -'blk=mahjong' => '#/180', -'blk=mahjongtiles' => '#/180', -'blk=malayalam' => '#/239', -'blk=mandaic' => '#/181', -'blk=manichaean' => '#/260', -'blk=mathalphanum' => '#/299', -'blk=mathematicalalphanumericsymbols' => '#/299', -'blk=mathematicaloperators' => '#/308', -'blk=mathoperators' => '#/308', -'blk=meeteimayek' => '#/280', -'blk=meeteimayekext' => '#/316', -'blk=meeteimayekextensions' => '#/316', -'blk=mendekikakui' => '#/300', -'blk=meroiticcursive' => '#/326', -'blk=meroitichieroglyphs' => '#/355', -'blk=miao' => '#/118', -'blk=miscarrows' => '#/261', -'blk=miscellaneousmathematicalsymbolsa' => '#/340', -'blk=miscellaneousmathematicalsymbolsb' => '#/341', -'blk=miscellaneoussymbols' => '#/281', -'blk=miscellaneoussymbolsandarrows' => '#/261', -'blk=miscellaneoussymbolsandpictographs' => '#/327', -'blk=miscellaneoustechnical' => '#/309', -'blk=miscmathsymbolsa' => '#/340', -'blk=miscmathsymbolsb' => '#/341', -'blk=miscpictographs' => '#/327', -'blk=miscsymbols' => '#/281', -'blk=misctechnical' => '#/309', -'blk=modi' => '#/119', -'blk=modifierletters' => '#/328', -'blk=modifiertoneletters' => '#/356', -'blk=mongolian' => '#/240', -'blk=mro' => '#/109', -'blk=multani' => '#/182', -'blk=music' => '#/131', -'blk=musicalsymbols' => '#/131', -'blk=myanmar' => '#/183', -'blk=myanmarexta' => '#/282', -'blk=myanmarextb' => '#/283', -'blk=myanmarextendeda' => '#/282', -'blk=myanmarextendedb' => '#/283', -'blk=nabataean' => '#/241', -'blk=nb' => 'Blk/NB', -'blk=newtailue' => '#/242', -'blk=nko' => '#/110', -'blk=noblock' => 'Blk/NB', -'blk=numberforms' => '#/284', -'blk=ocr' => '#/111', -'blk=ogham' => '#/132', -'blk=olchiki' => '#/184', -'blk=oldhungarian' => '#/301', -'blk=olditalic' => '#/243', -'blk=oldnortharabian' => '#/329', -'blk=oldpermic' => '#/244', -'blk=oldpersian' => '#/262', -'blk=oldsoutharabian' => '#/330', -'blk=oldturkic' => '#/245', -'blk=opticalcharacterrecognition' => '#/111', -'blk=oriya' => '#/133', -'blk=ornamentaldingbats' => '#/350', -'blk=osmanya' => '#/185', -'blk=pahawhhmong' => '#/285', -'blk=palmyrene' => '#/246', -'blk=paucinhau' => '#/247', -'blk=phagspa' => '#/186', -'blk=phaistos' => '#/220', -'blk=phaistosdisc' => '#/220', -'blk=phoenician' => '#/263', -'blk=phoneticext' => '#/286', -'blk=phoneticextensions' => '#/286', -'blk=phoneticextensionssupplement' => '#/317', -'blk=phoneticextsup' => '#/317', -'blk=playingcards' => '#/302', -'blk=privateuse' => '#/112', -'blk=privateusearea' => '#/112', -'blk=psalterpahlavi' => '#/318', -'blk=pua' => '#/112', -'blk=punctuation' => '#/287', -'blk=rejang' => '#/159', -'blk=rumi' => '#/120', -'blk=ruminumeralsymbols' => '#/120', -'blk=runic' => '#/134', -'blk=samaritan' => '#/248', -'blk=saurashtra' => '#/264', -'blk=sharada' => '#/187', -'blk=shavian' => '#/188', -'blk=shorthandformatcontrols' => '#/365', -'blk=siddham' => '#/189', -'blk=sinhala' => '#/190', -'blk=sinhalaarchaicnumbers' => '#/360', -'blk=smallforms' => '#/265', -'blk=smallformvariants' => '#/265', -'blk=sorasompeng' => '#/288', -'blk=spacingmodifierletters' => '#/328', -'blk=specials' => '#/221', -'blk=sundanese' => '#/249', -'blk=sundanesesup' => '#/303', -'blk=sundanesesupplement' => '#/303', -'blk=suparrowsa' => '#/266', -'blk=suparrowsb' => '#/267', -'blk=suparrowsc' => '#/268', -'blk=superandsub' => '#/289', -'blk=superscriptsandsubscripts' => '#/289', -'blk=supmathoperators' => '#/342', -'blk=supplementalarrowsa' => '#/266', -'blk=supplementalarrowsb' => '#/267', -'blk=supplementalarrowsc' => '#/268', -'blk=supplementalmathematicaloperators' => '#/342', -'blk=supplementalpunctuation' => '#/319', -'blk=supplementalsymbolsandpictographs' => '#/366', -'blk=supplementaryprivateuseareaa' => '#/191', -'blk=supplementaryprivateuseareab' => '#/192', -'blk=suppuaa' => '#/191', -'blk=suppuab' => '#/192', -'blk=suppunctuation' => '#/319', -'blk=supsymbolsandpictographs' => '#/366', -'blk=suttonsignwriting' => '#/346', -'blk=sylotinagri' => '#/290', -'blk=syriac' => '#/160', -'blk=tagalog' => '#/193', -'blk=tagbanwa' => '#/222', -'blk=tags' => '#/121', -'blk=taile' => '#/135', -'blk=taitham' => '#/194', -'blk=taiviet' => '#/195', -'blk=taixuanjing' => '#/291', -'blk=taixuanjingsymbols' => '#/291', -'blk=takri' => '#/136', -'blk=tamil' => '#/137', -'blk=telugu' => '#/161', -'blk=thaana' => '#/162', -'blk=thai' => '#/122', -'blk=tibetan' => '#/196', -'blk=tifinagh' => '#/223', -'blk=tirhuta' => '#/197', -'blk=transportandmap' => '#/331', -'blk=transportandmapsymbols' => '#/331', -'blk=ucas' => '#/123', -'blk=ucasext' => '#/198', -'blk=ugaritic' => '#/224', -'blk=unifiedcanadianaboriginalsyllabics' => '#/123', -'blk=unifiedcanadianaboriginalsyllabicsextended' => '#/198', -'blk=vai' => '#/113', -'blk=variationselectors' => '#/105', -'blk=variationselectorssupplement' => '#/138', -'blk=vedicext' => '#/225', -'blk=vedicextensions' => '#/225', -'blk=verticalforms' => '#/310', -'blk=vs' => '#/105', -'blk=vssup' => '#/138', -'blk=warangciti' => '#/269', -'blk=yijing' => '#/163', -'blk=yijinghexagramsymbols' => '#/163', -'blk=yiradicals' => '#/270', -'blk=yisyllables' => '#/292', -'blockelements' => '#/305', -'bopo' => '#/550', -'bopomofo' => '#/550', -'bopomofoext' => '#/271', -'bopomofoextended' => '#/271', -'boxdrawing' => '#/253', -'bpt=c' => 'Bpt/C', -'bpt=close' => 'Bpt/C', -'bpt=n' => 'Bpt/N', -'bpt=none' => 'Bpt/N', -'bpt=o' => 'Bpt/O', -'bpt=open' => 'Bpt/O', -'brah' => '#/551', -'brahmi' => '#/551', -'brai' => '#/166', -'braille' => '#/166', -'braillepatterns' => '#/166', -'bugi' => '#/552', -'buginese' => '#/552', -'buhd' => '#/553', -'buhid' => '#/553', -'byzantinemusic' => '#/312', -'byzantinemusicalsymbols' => '#/312', -'c' => 'Gc/C', -'cakm' => '#/554', -'canadianaboriginal' => '#/555', -'canadiansyllabics' => '#/123', -'cans' => '#/555', -'cari' => '#/556', -'carian' => '#/556', -'cased' => 'Cased/Y', -'cased=f' => '!Cased/Y', -'cased=false' => '!Cased/Y', -'cased=n' => '!Cased/Y', -'cased=no' => '!Cased/Y', -'cased=t' => 'Cased/Y', -'cased=true' => 'Cased/Y', -'cased=y' => 'Cased/Y', -'cased=yes' => 'Cased/Y', -'casedletter' => 'Gc/LC', -'caseignorable' => 'CI/Y', -'caucasianalbanian' => '#/542', -'cc' => '#/370', -'ccc=a' => 'Ccc/A', -'ccc=above' => 'Ccc/A', -'ccc=aboveleft' => '#/17', -'ccc=aboveright' => 'Ccc/AR', -'ccc=al' => '#/17', -'ccc=ar' => 'Ccc/AR', -'ccc=ata' => '#/22', -'ccc=atar' => 'Ccc/ATAR', -'ccc=atb' => '#/23', -'ccc=atbl' => '#/0', -'ccc=attachedabove' => '#/22', -'ccc=attachedaboveright' => 'Ccc/ATAR', -'ccc=attachedbelow' => '#/23', -'ccc=attachedbelowleft' => '#/0', -'ccc=b' => 'Ccc/B', -'ccc=below' => 'Ccc/B', -'ccc=belowleft' => '#/18', -'ccc=belowright' => 'Ccc/BR', -'ccc=bl' => '#/18', -'ccc=br' => 'Ccc/BR', -'ccc=ccc10' => '#/24', -'ccc=ccc103' => '#/53', -'ccc=ccc107' => '#/54', -'ccc=ccc11' => '#/25', -'ccc=ccc118' => '#/55', -'ccc=ccc12' => '#/26', -'ccc=ccc122' => '#/56', -'ccc=ccc129' => '#/57', -'ccc=ccc13' => '#/27', -'ccc=ccc130' => '#/58', -'ccc=ccc132' => '#/59', -'ccc=ccc133' => '#/0', -'ccc=ccc14' => '#/28', -'ccc=ccc15' => '#/29', -'ccc=ccc16' => '#/30', -'ccc=ccc17' => '#/31', -'ccc=ccc18' => '#/32', -'ccc=ccc19' => '#/33', -'ccc=ccc20' => '#/34', -'ccc=ccc21' => '#/35', -'ccc=ccc22' => '#/36', -'ccc=ccc23' => '#/37', -'ccc=ccc24' => '#/38', -'ccc=ccc25' => '#/39', -'ccc=ccc26' => '#/40', -'ccc=ccc27' => '#/41', -'ccc=ccc28' => '#/42', -'ccc=ccc29' => '#/43', -'ccc=ccc30' => '#/44', -'ccc=ccc31' => '#/45', -'ccc=ccc32' => '#/46', -'ccc=ccc33' => '#/47', -'ccc=ccc34' => '#/48', -'ccc=ccc35' => '#/49', -'ccc=ccc36' => '#/50', -'ccc=ccc84' => '#/51', -'ccc=ccc91' => '#/52', -'ccc=da' => '#/19', -'ccc=db' => 'Ccc/DB', -'ccc=doubleabove' => '#/19', -'ccc=doublebelow' => 'Ccc/DB', -'ccc=iotasubscript' => '#/20', -'ccc=is' => '#/20', -'ccc=kanavoicing' => '#/21', -'ccc=kv' => '#/21', -'ccc=l' => '#/15', -'ccc=left' => '#/15', -'ccc=nk' => 'Ccc/NK', -'ccc=notreordered' => 'Ccc/NR', -'ccc=nr' => 'Ccc/NR', -'ccc=nukta' => 'Ccc/NK', -'ccc=ov' => 'Ccc/OV', -'ccc=overlay' => 'Ccc/OV', -'ccc=r' => '#/16', -'ccc=right' => '#/16', -'ccc=virama' => 'Ccc/VR', -'ccc=vr' => 'Ccc/VR', -'ce' => 'CE/Y', -'ce=f' => '!CE/Y', -'ce=false' => '!CE/Y', -'ce=n' => '!CE/Y', -'ce=no' => '!CE/Y', -'ce=t' => 'CE/Y', -'ce=true' => 'CE/Y', -'ce=y' => 'CE/Y', -'ce=yes' => 'CE/Y', -'cf' => 'Gc/Cf', -'chakma' => '#/554', -'cham' => 'Sc/Cham', -'changeswhencasefolded' => 'CWCF/Y', -'changeswhencasemapped' => 'CWCM/Y', -'changeswhenlowercased' => 'CWL/Y', -'changeswhennfkccasefolded' => 'CWKCF/Y', -'changeswhentitlecased' => 'CWT/Y', -'changeswhenuppercased' => 'CWU/Y', -'cher' => '#/557', -'cherokee' => '#/557', -'cherokeesup' => '#/272', -'cherokeesupplement' => '#/272', -'ci' => 'CI/Y', -'ci=f' => '!CI/Y', -'ci=false' => '!CI/Y', -'ci=n' => '!CI/Y', -'ci=no' => '!CI/Y', -'ci=t' => 'CI/Y', -'ci=true' => 'CI/Y', -'ci=y' => 'CI/Y', -'ci=yes' => 'CI/Y', -'cjk' => '#/106', -'cjkcompat' => '#/229', -'cjkcompatforms' => '#/313', -'cjkcompatibility' => '#/229', -'cjkcompatibilityforms' => '#/313', -'cjkcompatibilityideographs' => '#/352', -'cjkcompatibilityideographssupplement' => '#/361', -'cjkcompatideographs' => '#/352', -'cjkcompatideographssup' => '#/361', -'cjkexta' => '#/167', -'cjkextb' => '#/168', -'cjkextc' => '#/169', -'cjkextd' => '#/170', -'cjkexte' => '#/171', -'cjkradicalssup' => '#/314', -'cjkradicalssupplement' => '#/314', -'cjkstrokes' => '#/254', -'cjksymbols' => '#/255', -'cjksymbolsandpunctuation' => '#/255', -'cjkunifiedideographs' => '#/106', -'cjkunifiedideographsextensiona' => '#/167', -'cjkunifiedideographsextensionb' => '#/168', -'cjkunifiedideographsextensionc' => '#/169', -'cjkunifiedideographsextensiond' => '#/170', -'cjkunifiedideographsextensione' => '#/171', -'closepunctuation' => 'Gc/Pe', -'cn' => 'Gc/Cn', -'cntrl' => '#/370', -'co' => '#/371', -'combiningdiacriticalmarks' => '#/296', -'combiningdiacriticalmarksextended' => '#/322', -'combiningdiacriticalmarksforsymbols' => '#/362', -'combiningdiacriticalmarkssupplement' => '#/323', -'combininghalfmarks' => '#/232', -'combiningmark' => 'Gc/M', -'combiningmarksforsymbols' => '#/362', -'common' => 'Sc/Zyyy', -'commonindicnumberforms' => '#/337', -'compatjamo' => '#/256', -'compex' => 'CompEx/Y', -'compex=f' => '!CompEx/Y', -'compex=false' => '!CompEx/Y', -'compex=n' => '!CompEx/Y', -'compex=no' => '!CompEx/Y', -'compex=t' => 'CompEx/Y', -'compex=true' => 'CompEx/Y', -'compex=y' => 'CompEx/Y', -'compex=yes' => 'CompEx/Y', -'compositionexclusion' => 'CE/Y', -'connectorpunctuation' => 'WB/EX', -'control' => '#/370', -'controlpictures' => '#/320', -'copt' => '#/558', -'coptic' => '#/558', -'copticepactnumbers' => '#/347', -'countingrod' => '#/273', -'countingrodnumerals' => '#/273', -'cprt' => 'Sc/Cprt', -'cs' => '#/14', -'cuneiform' => 'Sc/Xsux', -'cuneiformnumbers' => '#/332', -'cuneiformnumbersandpunctuation' => '#/332', -'currencysymbol' => 'Gc/Sc', -'currencysymbols' => '#/321', -'cwcf' => 'CWCF/Y', -'cwcf=f' => '!CWCF/Y', -'cwcf=false' => '!CWCF/Y', -'cwcf=n' => '!CWCF/Y', -'cwcf=no' => '!CWCF/Y', -'cwcf=t' => 'CWCF/Y', -'cwcf=true' => 'CWCF/Y', -'cwcf=y' => 'CWCF/Y', -'cwcf=yes' => 'CWCF/Y', -'cwcm' => 'CWCM/Y', -'cwcm=f' => '!CWCM/Y', -'cwcm=false' => '!CWCM/Y', -'cwcm=n' => '!CWCM/Y', -'cwcm=no' => '!CWCM/Y', -'cwcm=t' => 'CWCM/Y', -'cwcm=true' => 'CWCM/Y', -'cwcm=y' => 'CWCM/Y', -'cwcm=yes' => 'CWCM/Y', -'cwkcf' => 'CWKCF/Y', -'cwkcf=f' => '!CWKCF/Y', -'cwkcf=false' => '!CWKCF/Y', -'cwkcf=n' => '!CWKCF/Y', -'cwkcf=no' => '!CWKCF/Y', -'cwkcf=t' => 'CWKCF/Y', -'cwkcf=true' => 'CWKCF/Y', -'cwkcf=y' => 'CWKCF/Y', -'cwkcf=yes' => 'CWKCF/Y', -'cwl' => 'CWL/Y', -'cwl=f' => '!CWL/Y', -'cwl=false' => '!CWL/Y', -'cwl=n' => '!CWL/Y', -'cwl=no' => '!CWL/Y', -'cwl=t' => 'CWL/Y', -'cwl=true' => 'CWL/Y', -'cwl=y' => 'CWL/Y', -'cwl=yes' => 'CWL/Y', -'cwt' => 'CWT/Y', -'cwt=f' => '!CWT/Y', -'cwt=false' => '!CWT/Y', -'cwt=n' => '!CWT/Y', -'cwt=no' => '!CWT/Y', -'cwt=t' => 'CWT/Y', -'cwt=true' => 'CWT/Y', -'cwt=y' => 'CWT/Y', -'cwt=yes' => 'CWT/Y', -'cwu' => 'CWU/Y', -'cwu=f' => '!CWU/Y', -'cwu=false' => '!CWU/Y', -'cwu=n' => '!CWU/Y', -'cwu=no' => '!CWU/Y', -'cwu=t' => 'CWU/Y', -'cwu=true' => 'CWU/Y', -'cwu=y' => 'CWU/Y', -'cwu=yes' => 'CWU/Y', -'cypriot' => 'Sc/Cprt', -'cypriotsyllabary' => '#/333', -'cyrillic' => 'Sc/Cyrl', -'cyrillicexta' => '#/294', -'cyrillicextb' => '#/295', -'cyrillicextendeda' => '#/294', -'cyrillicextendedb' => '#/295', -'cyrillicsup' => '#/274', -'cyrillicsupplement' => '#/274', -'cyrillicsupplementary' => '#/274', -'cyrl' => 'Sc/Cyrl', -'dash' => 'Dash/Y', -'dash=f' => '!Dash/Y', -'dash=false' => '!Dash/Y', -'dash=n' => '!Dash/Y', -'dash=no' => '!Dash/Y', -'dash=t' => 'Dash/Y', -'dash=true' => 'Dash/Y', -'dash=y' => 'Dash/Y', -'dash=yes' => 'Dash/Y', -'dashpunctuation' => 'Gc/Pd', -'decimalnumber' => 'Gc/Nd', -'defaultignorablecodepoint' => 'DI/Y', -'dep' => 'Dep/Y', -'dep=f' => '!Dep/Y', -'dep=false' => '!Dep/Y', -'dep=n' => '!Dep/Y', -'dep=no' => '!Dep/Y', -'dep=t' => 'Dep/Y', -'dep=true' => 'Dep/Y', -'dep=y' => 'Dep/Y', -'dep=yes' => 'Dep/Y', -'deprecated' => 'Dep/Y', -'deseret' => '#/172', -'deva' => 'Sc/Deva', -'devanagari' => 'Sc/Deva', -'devanagariext' => '#/306', -'devanagariextended' => '#/306', -'di' => 'DI/Y', -'di=f' => '!DI/Y', -'di=false' => '!DI/Y', -'di=n' => '!DI/Y', -'di=no' => '!DI/Y', -'di=t' => 'DI/Y', -'di=true' => 'DI/Y', -'di=y' => 'DI/Y', -'di=yes' => 'DI/Y', -'dia' => 'Dia/Y', -'dia=f' => '!Dia/Y', -'dia=false' => '!Dia/Y', -'dia=n' => '!Dia/Y', -'dia=no' => '!Dia/Y', -'dia=t' => 'Dia/Y', -'dia=true' => 'Dia/Y', -'dia=y' => 'Dia/Y', -'dia=yes' => 'Dia/Y', -'diacritic' => 'Dia/Y', -'diacriticals' => '#/296', -'diacriticalsext' => '#/322', -'diacriticalsforsymbols' => '#/362', -'diacriticalssup' => '#/323', -'digit' => 'Gc/Nd', -'dingbats' => '#/207', -'domino' => '#/145', -'dominotiles' => '#/145', -'dsrt' => '#/172', -'dt=can' => 'NFDQC/N', -'dt=canonical' => 'NFDQC/N', -'dt=circle' => 'Dt/Enc', -'dt=com' => 'Dt/Com', -'dt=compat' => 'Dt/Com', -'dt=enc' => 'Dt/Enc', -'dt=fin' => 'Dt/Fin', -'dt=final' => 'Dt/Fin', -'dt=font' => 'Dt/Font', -'dt=fra' => '#/367', -'dt=fraction' => '#/367', -'dt=init' => 'Dt/Init', -'dt=initial' => 'Dt/Init', -'dt=iso' => 'Dt/Iso', -'dt=isolated' => 'Dt/Iso', -'dt=med' => 'Dt/Med', -'dt=medial' => 'Dt/Med', -'dt=nar' => 'Dt/Nar', -'dt=narrow' => 'Dt/Nar', -'dt=nb' => 'Dt/Nb', -'dt=nobreak' => 'Dt/Nb', -'dt=noncanon' => 'Dt/NonCanon', -'dt=noncanonical' => 'Dt/NonCanon', -'dt=none' => 'NFKDQC/Y', -'dt=small' => '#/368', -'dt=sml' => '#/368', -'dt=sqr' => 'Dt/Sqr', -'dt=square' => 'Dt/Sqr', -'dt=sub' => 'Dt/Sub', -'dt=sup' => 'Dt/Sup', -'dt=super' => 'Dt/Sup', -'dt=vert' => 'Dt/Vert', -'dt=vertical' => 'Dt/Vert', -'dt=wide' => '#/369', -'dupl' => 'Sc/Dupl', -'duployan' => 'Sc/Dupl', -'ea=a' => 'Ea/A', -'ea=ambiguous' => 'Ea/A', -'ea=f' => '#/369', -'ea=fullwidth' => '#/369', -'ea=h' => 'Ea/H', -'ea=halfwidth' => 'Ea/H', -'ea=n' => 'Ea/N', -'ea=na' => 'Ea/Na', -'ea=narrow' => 'Ea/Na', -'ea=neutral' => 'Ea/N', -'ea=w' => 'Ea/W', -'ea=wide' => 'Ea/W', -'earlydynasticcuneiform' => '#/363', -'egyp' => '#/559', -'egyptianhieroglyphs' => '#/559', -'elba' => '#/560', -'elbasan' => '#/560', -'emoticons' => '#/231', -'enclosedalphanum' => '#/334', -'enclosedalphanumerics' => '#/334', -'enclosedalphanumericsupplement' => '#/354', -'enclosedalphanumsup' => '#/354', -'enclosedcjk' => '#/275', -'enclosedcjklettersandmonths' => '#/275', -'enclosedideographicsup' => '#/364', -'enclosedideographicsupplement' => '#/364', -'enclosingmark' => 'Gc/Me', -'ethi' => 'Sc/Ethi', -'ethiopic' => 'Sc/Ethi', -'ethiopicext' => '#/276', -'ethiopicexta' => '#/297', -'ethiopicextended' => '#/276', -'ethiopicextendeda' => '#/297', -'ethiopicsup' => '#/277', -'ethiopicsupplement' => '#/277', -'ext' => 'Ext/Y', -'ext=f' => '!Ext/Y', -'ext=false' => '!Ext/Y', -'ext=n' => '!Ext/Y', -'ext=no' => '!Ext/Y', -'ext=t' => 'Ext/Y', -'ext=true' => 'Ext/Y', -'ext=y' => 'Ext/Y', -'ext=yes' => 'Ext/Y', -'extender' => 'Ext/Y', -'finalpunctuation' => 'Gc/Pf', -'format' => 'Gc/Cf', -'fullcompositionexclusion' => 'CompEx/Y', -'gc=c' => 'Gc/C', -'gc=casedletter' => 'Gc/LC', -'gc=cc' => '#/370', -'gc=cf' => 'Gc/Cf', -'gc=closepunctuation' => 'Gc/Pe', -'gc=cn' => 'Gc/Cn', -'gc=cntrl' => '#/370', -'gc=co' => '#/371', -'gc=combiningmark' => 'Gc/M', -'gc=connectorpunctuation' => 'WB/EX', -'gc=control' => '#/370', -'gc=cs' => '#/14', -'gc=currencysymbol' => 'Gc/Sc', -'gc=dashpunctuation' => 'Gc/Pd', -'gc=decimalnumber' => 'Gc/Nd', -'gc=digit' => 'Gc/Nd', -'gc=enclosingmark' => 'Gc/Me', -'gc=finalpunctuation' => 'Gc/Pf', -'gc=format' => 'Gc/Cf', -'gc=initialpunctuation' => 'Gc/Pi', -'gc=l' => 'Gc/L', -'gc=l&' => 'Gc/LC', -'gc=l_' => 'Gc/LC', -'gc=lc' => 'Gc/LC', -'gc=letter' => 'Gc/L', -'gc=letternumber' => 'Gc/Nl', -'gc=lineseparator' => '#/372', -'gc=ll' => 'Gc/Ll', -'gc=lm' => 'Gc/Lm', -'gc=lo' => 'Gc/Lo', -'gc=lowercaseletter' => 'Gc/Ll', -'gc=lt' => 'Perl/Title', -'gc=lu' => 'Gc/Lu', -'gc=m' => 'Gc/M', -'gc=mark' => 'Gc/M', -'gc=mathsymbol' => 'Gc/Sm', -'gc=mc' => 'Gc/Mc', -'gc=me' => 'Gc/Me', -'gc=mn' => 'Gc/Mn', -'gc=modifierletter' => 'Gc/Lm', -'gc=modifiersymbol' => 'Gc/Sk', -'gc=n' => 'Gc/N', -'gc=nd' => 'Gc/Nd', -'gc=nl' => 'Gc/Nl', -'gc=no' => 'Gc/No', -'gc=nonspacingmark' => 'Gc/Mn', -'gc=number' => 'Gc/N', -'gc=openpunctuation' => 'Gc/Ps', -'gc=other' => 'Gc/C', -'gc=otherletter' => 'Gc/Lo', -'gc=othernumber' => 'Gc/No', -'gc=otherpunctuation' => 'Gc/Po', -'gc=othersymbol' => 'Gc/So', -'gc=p' => 'Gc/P', -'gc=paragraphseparator' => '#/373', -'gc=pc' => 'WB/EX', -'gc=pd' => 'Gc/Pd', -'gc=pe' => 'Gc/Pe', -'gc=pf' => 'Gc/Pf', -'gc=pi' => 'Gc/Pi', -'gc=po' => 'Gc/Po', -'gc=privateuse' => '#/371', -'gc=ps' => 'Gc/Ps', -'gc=punct' => 'Gc/P', -'gc=punctuation' => 'Gc/P', -'gc=s' => 'Gc/S', -'gc=sc' => 'Gc/Sc', -'gc=separator' => 'Gc/Z', -'gc=sk' => 'Gc/Sk', -'gc=sm' => 'Gc/Sm', -'gc=so' => 'Gc/So', -'gc=spaceseparator' => 'Gc/Zs', -'gc=spacingmark' => 'Gc/Mc', -'gc=surrogate' => '#/14', -'gc=symbol' => 'Gc/S', -'gc=titlecaseletter' => 'Perl/Title', -'gc=unassigned' => 'Gc/Cn', -'gc=uppercaseletter' => 'Gc/Lu', -'gc=z' => 'Gc/Z', -'gc=zl' => '#/372', -'gc=zp' => '#/373', -'gc=zs' => 'Gc/Zs', -'gcb=cn' => 'GCB/CN', -'gcb=control' => 'GCB/CN', -'gcb=cr' => '#/64', -'gcb=ex' => 'GCB/EX', -'gcb=extend' => 'GCB/EX', -'gcb=l' => '#/61', -'gcb=lf' => '#/65', -'gcb=lv' => 'GCB/LV', -'gcb=lvt' => 'GCB/LVT', -'gcb=other' => 'GCB/XX', -'gcb=pp' => '#/0', -'gcb=prepend' => '#/0', -'gcb=regionalindicator' => '#/66', -'gcb=ri' => '#/66', -'gcb=sm' => 'GCB/SM', -'gcb=spacingmark' => 'GCB/SM', -'gcb=t' => '#/62', -'gcb=v' => '#/63', -'gcb=xx' => 'GCB/XX', -'generalpunctuation' => '#/287', -'geometricshapes' => '#/324', -'geometricshapesext' => '#/348', -'geometricshapesextended' => '#/348', -'geor' => 'Sc/Geor', -'georgian' => 'Sc/Geor', -'georgiansup' => '#/278', -'georgiansupplement' => '#/278', -'glag' => '#/561', -'glagolitic' => '#/561', -'goth' => '#/562', -'gothic' => '#/562', -'gran' => 'Sc/Gran', -'grantha' => 'Sc/Gran', -'graph' => 'Perl/Graph', -'graphemebase' => 'GrBase/Y', -'graphemeextend' => 'GCB/EX', -'grbase' => 'GrBase/Y', -'grbase=f' => '!GrBase/Y', -'grbase=false' => '!GrBase/Y', -'grbase=n' => '!GrBase/Y', -'grbase=no' => '!GrBase/Y', -'grbase=t' => 'GrBase/Y', -'grbase=true' => 'GrBase/Y', -'grbase=y' => 'GrBase/Y', -'grbase=yes' => 'GrBase/Y', -'greek' => 'Sc/Grek', -'greekandcoptic' => '#/128', -'greekext' => '#/211', -'greekextended' => '#/211', -'grek' => 'Sc/Grek', -'grext' => 'GCB/EX', -'grext=f' => '!GCB/EX', -'grext=false' => '!GCB/EX', -'grext=n' => '!GCB/EX', -'grext=no' => '!GCB/EX', -'grext=t' => 'GCB/EX', -'grext=true' => 'GCB/EX', -'grext=y' => 'GCB/EX', -'grext=yes' => 'GCB/EX', -'gujarati' => 'Sc/Gujr', -'gujr' => 'Sc/Gujr', -'gurmukhi' => 'Sc/Guru', -'guru' => 'Sc/Guru', -'halfandfullforms' => '#/335', -'halfmarks' => '#/232', -'halfwidthandfullwidthforms' => '#/335', -'han' => 'Sc/Han', -'hang' => 'Sc/Hang', -'hangul' => 'Sc/Hang', -'hangulcompatibilityjamo' => '#/256', -'hanguljamo' => '#/116', -'hanguljamoextendeda' => '#/215', -'hanguljamoextendedb' => '#/216', -'hangulsyllables' => '#/147', -'hani' => 'Sc/Han', -'hano' => '#/563', -'hanunoo' => '#/563', -'hatr' => '#/564', -'hatran' => '#/564', -'hebr' => 'Sc/Hebr', -'hebrew' => 'Sc/Hebr', -'hex' => 'Hex/Y', -'hex=f' => '!Hex/Y', -'hex=false' => '!Hex/Y', -'hex=n' => '!Hex/Y', -'hex=no' => '!Hex/Y', -'hex=t' => 'Hex/Y', -'hex=true' => 'Hex/Y', -'hex=y' => 'Hex/Y', -'hex=yes' => 'Hex/Y', -'hexdigit' => 'Hex/Y', -'highprivateusesurrogates' => '#/336', -'highpusurrogates' => '#/336', -'highsurrogates' => '#/315', -'hira' => 'Sc/Hira', -'hiragana' => 'Sc/Hira', -'hluw' => '#/565', -'hmng' => 'Sc/Hmng', -'horizspace' => 'Perl/Blank', -'hst=l' => '#/61', -'hst=leadingjamo' => '#/61', -'hst=lv' => 'GCB/LV', -'hst=lvsyllable' => 'GCB/LV', -'hst=lvt' => 'GCB/LVT', -'hst=lvtsyllable' => 'GCB/LVT', -'hst=na' => 'Hst/NA', -'hst=notapplicable' => 'Hst/NA', -'hst=t' => '#/62', -'hst=trailingjamo' => '#/62', -'hst=v' => '#/63', -'hst=voweljamo' => '#/63', -'hung' => '#/566', -'hyphen' => 'Hyphen/T', -'hyphen=f' => '!Hyphen/T', -'hyphen=false' => '!Hyphen/T', -'hyphen=n' => '!Hyphen/T', -'hyphen=no' => '!Hyphen/T', -'hyphen=t' => 'Hyphen/T', -'hyphen=true' => 'Hyphen/T', -'hyphen=y' => 'Hyphen/T', -'hyphen=yes' => 'Hyphen/T', -'idc' => 'IDC/Y', -'idc=f' => '!IDC/Y', -'idc=false' => '!IDC/Y', -'idc=n' => '!IDC/Y', -'idc=no' => '!IDC/Y', -'idc=t' => 'IDC/Y', -'idc=true' => 'IDC/Y', -'idc=y' => 'IDC/Y', -'idc=yes' => 'IDC/Y', -'idcontinue' => 'IDC/Y', -'ideo' => 'Ideo/Y', -'ideo=f' => '!Ideo/Y', -'ideo=false' => '!Ideo/Y', -'ideo=n' => '!Ideo/Y', -'ideo=no' => '!Ideo/Y', -'ideo=t' => 'Ideo/Y', -'ideo=true' => 'Ideo/Y', -'ideo=y' => 'Ideo/Y', -'ideo=yes' => 'Ideo/Y', -'ideographic' => 'Ideo/Y', -'ideographicdescriptioncharacters' => '#/107', -'ids' => 'IDS/Y', -'ids=f' => '!IDS/Y', -'ids=false' => '!IDS/Y', -'ids=n' => '!IDS/Y', -'ids=no' => '!IDS/Y', -'ids=t' => 'IDS/Y', -'ids=true' => 'IDS/Y', -'ids=y' => 'IDS/Y', -'ids=yes' => 'IDS/Y', -'idsb' => '#/67', -'idsb=f' => '#/!67', -'idsb=false' => '#/!67', -'idsb=n' => '#/!67', -'idsb=no' => '#/!67', -'idsb=t' => '#/67', -'idsb=true' => '#/67', -'idsb=y' => '#/67', -'idsb=yes' => '#/67', -'idsbinaryoperator' => '#/67', -'idst' => '#/68', -'idst=f' => '#/!68', -'idst=false' => '#/!68', -'idst=n' => '#/!68', -'idst=no' => '#/!68', -'idst=t' => '#/68', -'idst=true' => '#/68', -'idst=y' => '#/68', -'idst=yes' => '#/68', -'idstart' => 'IDS/Y', -'idstrinaryoperator' => '#/68', -'imperialaramaic' => '#/544', -'in=unassigned' => 'Age/NA', -'inaegeannumbers' => '#/304', -'inahom' => '#/114', -'inalchemical' => '#/250', -'inalchemicalsymbols' => '#/250', -'inalphabeticpf' => '#/293', -'inalphabeticpresentationforms' => '#/293', -'inanatolianhieroglyphs' => '#/357', -'inancientgreekmusic' => '#/343', -'inancientgreekmusicalnotation' => '#/343', -'inancientgreeknumbers' => '#/351', -'inancientsymbols' => '#/311', -'inarabic' => '#/139', -'inarabicexta' => '#/251', -'inarabicextendeda' => '#/251', -'inarabicmath' => '#/252', -'inarabicmathematicalalphabeticsymbols' => '#/252', -'inarabicpfa' => '#/226', -'inarabicpfb' => '#/227', -'inarabicpresentationformsa' => '#/226', -'inarabicpresentationformsb' => '#/227', -'inarabicsup' => '#/228', -'inarabicsupplement' => '#/228', -'inarmenian' => '#/199', -'inarrows' => '#/140', -'inascii' => '#/124', -'inavestan' => '#/164', -'inbalinese' => '#/200', -'inbamum' => '#/125', -'inbamumsup' => '#/201', -'inbamumsupplement' => '#/201', -'inbasiclatin' => '#/124', -'inbassavah' => '#/202', -'inbatak' => '#/126', -'inbengali' => '#/165', -'inblockelements' => '#/305', -'inbopomofo' => '#/203', -'inbopomofoext' => '#/271', -'inbopomofoextended' => '#/271', -'inboxdrawing' => '#/253', -'inbrahmi' => '#/141', -'inbraille' => '#/166', -'inbraillepatterns' => '#/166', -'inbuginese' => '#/204', -'inbuhid' => '#/127', -'inbyzantinemusic' => '#/312', -'inbyzantinemusicalsymbols' => '#/312', -'incanadiansyllabics' => '#/123', -'incarian' => '#/142', -'incaucasianalbanian' => '#/344', -'inchakma' => '#/143', -'incham' => '#/115', -'incherokee' => '#/205', -'incherokeesup' => '#/272', -'incherokeesupplement' => '#/272', -'incjk' => '#/106', -'incjkcompat' => '#/229', -'incjkcompatforms' => '#/313', -'incjkcompatibility' => '#/229', -'incjkcompatibilityforms' => '#/313', -'incjkcompatibilityideographs' => '#/352', -'incjkcompatibilityideographssupplement' => '#/361', -'incjkcompatideographs' => '#/352', -'incjkcompatideographssup' => '#/361', -'incjkexta' => '#/167', -'incjkextb' => '#/168', -'incjkextc' => '#/169', -'incjkextd' => '#/170', -'incjkexte' => '#/171', -'incjkradicalssup' => '#/314', -'incjkradicalssupplement' => '#/314', -'incjkstrokes' => '#/254', -'incjksymbols' => '#/255', -'incjksymbolsandpunctuation' => '#/255', -'incjkunifiedideographs' => '#/106', -'incjkunifiedideographsextensiona' => '#/167', -'incjkunifiedideographsextensionb' => '#/168', -'incjkunifiedideographsextensionc' => '#/169', -'incjkunifiedideographsextensiond' => '#/170', -'incjkunifiedideographsextensione' => '#/171', -'incombiningdiacriticalmarks' => '#/296', -'incombiningdiacriticalmarksextended' => '#/322', -'incombiningdiacriticalmarksforsymbols' => '#/362', -'incombiningdiacriticalmarkssupplement' => '#/323', -'incombininghalfmarks' => '#/232', -'incombiningmarksforsymbols' => '#/362', -'incommonindicnumberforms' => '#/337', -'incompatjamo' => '#/256', -'incontrolpictures' => '#/320', -'incoptic' => '#/144', -'incopticepactnumbers' => '#/347', -'incountingrod' => '#/273', -'incountingrodnumerals' => '#/273', -'incuneiform' => '#/230', -'incuneiformnumbers' => '#/332', -'incuneiformnumbersandpunctuation' => '#/332', -'incurrencysymbols' => '#/321', -'incypriotsyllabary' => '#/333', -'incyrillic' => '#/206', -'incyrillicexta' => '#/294', -'incyrillicextb' => '#/295', -'incyrillicextendeda' => '#/294', -'incyrillicextendedb' => '#/295', -'incyrillicsup' => '#/274', -'incyrillicsupplement' => '#/274', -'incyrillicsupplementary' => '#/274', -'indeseret' => '#/172', -'indevanagari' => '#/257', -'indevanagariext' => '#/306', -'indevanagariextended' => '#/306', -'indiacriticals' => '#/296', -'indiacriticalsext' => '#/322', -'indiacriticalsforsymbols' => '#/362', -'indiacriticalssup' => '#/323', -'indicnumberforms' => '#/337', -'indingbats' => '#/207', -'indomino' => '#/145', -'indominotiles' => '#/145', -'induployan' => '#/208', -'inearlydynasticcuneiform' => '#/363', -'inegyptianhieroglyphs' => '#/353', -'inelbasan' => '#/173', -'inemoticons' => '#/231', -'inenclosedalphanum' => '#/334', -'inenclosedalphanumerics' => '#/334', -'inenclosedalphanumericsupplement' => '#/354', -'inenclosedalphanumsup' => '#/354', -'inenclosedcjk' => '#/275', -'inenclosedcjklettersandmonths' => '#/275', -'inenclosedideographicsup' => '#/364', -'inenclosedideographicsupplement' => '#/364', -'inethiopic' => '#/209', -'inethiopicext' => '#/276', -'inethiopicexta' => '#/297', -'inethiopicextended' => '#/276', -'inethiopicextendeda' => '#/297', -'inethiopicsup' => '#/277', -'inethiopicsupplement' => '#/277', -'ingeneralpunctuation' => '#/287', -'ingeometricshapes' => '#/324', -'ingeometricshapesext' => '#/348', -'ingeometricshapesextended' => '#/348', -'ingeorgian' => '#/210', -'ingeorgiansup' => '#/278', -'ingeorgiansupplement' => '#/278', -'inglagolitic' => '#/258', -'ingothic' => '#/146', -'ingrantha' => '#/174', -'ingreek' => '#/128', -'ingreekandcoptic' => '#/128', -'ingreekext' => '#/211', -'ingreekextended' => '#/211', -'ingujarati' => '#/212', -'ingurmukhi' => '#/213', -'inhalfandfullforms' => '#/335', -'inhalfmarks' => '#/232', -'inhalfwidthandfullwidthforms' => '#/335', -'inhangul' => '#/147', -'inhangulcompatibilityjamo' => '#/256', -'inhanguljamo' => '#/116', -'inhanguljamoextendeda' => '#/215', -'inhanguljamoextendedb' => '#/216', -'inhangulsyllables' => '#/147', -'inhanunoo' => '#/175', -'inhatran' => '#/148', -'inhebrew' => '#/149', -'inherited' => 'Sc/Zinh', -'inhighprivateusesurrogates' => '#/336', -'inhighpusurrogates' => '#/336', -'inhighsurrogates' => '#/315', -'inhiragana' => '#/214', -'inidc' => '#/107', -'inideographicdescriptioncharacters' => '#/107', -'inimperialaramaic' => '#/325', -'inindicnumberforms' => '#/337', -'ininscriptionalpahlavi' => '#/358', -'ininscriptionalparthian' => '#/359', -'inipaext' => '#/150', -'inipaextensions' => '#/150', -'initialpunctuation' => 'Gc/Pi', -'injamo' => '#/116', -'injamoexta' => '#/215', -'injamoextb' => '#/216', -'injavanese' => '#/217', -'inkaithi' => '#/151', -'inkanasup' => '#/176', -'inkanasupplement' => '#/176', -'inkanbun' => '#/152', -'inkangxi' => '#/153', -'inkangxiradicals' => '#/153', -'inkannada' => '#/177', -'inkatakana' => '#/218', -'inkatakanaext' => '#/279', -'inkatakanaphoneticextensions' => '#/279', -'inkayahli' => '#/178', -'inkharoshthi' => '#/259', -'inkhmer' => '#/129', -'inkhmersymbols' => '#/298', -'inkhojki' => '#/154', -'inkhudawadi' => '#/233', -'inlao' => '#/108', -'inlatin1' => '#/155', -'inlatin1sup' => '#/155', -'inlatin1supplement' => '#/155', -'inlatinexta' => '#/234', -'inlatinextadditional' => '#/349', -'inlatinextb' => '#/235', -'inlatinextc' => '#/236', -'inlatinextd' => '#/237', -'inlatinexte' => '#/238', -'inlatinextendeda' => '#/234', -'inlatinextendedadditional' => '#/349', -'inlatinextendedb' => '#/235', -'inlatinextendedc' => '#/236', -'inlatinextendedd' => '#/237', -'inlatinextendede' => '#/238', -'inlepcha' => '#/156', -'inletterlikesymbols' => '#/345', -'inlimbu' => '#/130', -'inlineara' => '#/179', -'inlinearbideograms' => '#/338', -'inlinearbsyllabary' => '#/339', -'inlisu' => '#/117', -'inlowsurrogates' => '#/307', -'inlycian' => '#/157', -'inlydian' => '#/158', -'inmahajani' => '#/219', -'inmahjong' => '#/180', -'inmahjongtiles' => '#/180', -'inmalayalam' => '#/239', -'inmandaic' => '#/181', -'inmanichaean' => '#/260', -'inmathalphanum' => '#/299', -'inmathematicalalphanumericsymbols' => '#/299', -'inmathematicaloperators' => '#/308', -'inmathoperators' => '#/308', -'inmeeteimayek' => '#/280', -'inmeeteimayekext' => '#/316', -'inmeeteimayekextensions' => '#/316', -'inmendekikakui' => '#/300', -'inmeroiticcursive' => '#/326', -'inmeroitichieroglyphs' => '#/355', -'inmiao' => '#/118', -'inmiscarrows' => '#/261', -'inmiscellaneousmathematicalsymbolsa' => '#/340', -'inmiscellaneousmathematicalsymbolsb' => '#/341', -'inmiscellaneoussymbols' => '#/281', -'inmiscellaneoussymbolsandarrows' => '#/261', -'inmiscellaneoussymbolsandpictographs' => '#/327', -'inmiscellaneoustechnical' => '#/309', -'inmiscmathsymbolsa' => '#/340', -'inmiscmathsymbolsb' => '#/341', -'inmiscpictographs' => '#/327', -'inmiscsymbols' => '#/281', -'inmisctechnical' => '#/309', -'inmodi' => '#/119', -'inmodifierletters' => '#/328', -'inmodifiertoneletters' => '#/356', -'inmongolian' => '#/240', -'inmro' => '#/109', -'inmultani' => '#/182', -'inmusic' => '#/131', -'inmusicalsymbols' => '#/131', -'inmyanmar' => '#/183', -'inmyanmarexta' => '#/282', -'inmyanmarextb' => '#/283', -'inmyanmarextendeda' => '#/282', -'inmyanmarextendedb' => '#/283', -'innabataean' => '#/241', -'innb' => 'Blk/NB', -'innewtailue' => '#/242', -'innko' => '#/110', -'innoblock' => 'Blk/NB', -'innumberforms' => '#/284', -'inocr' => '#/111', -'inogham' => '#/132', -'inolchiki' => '#/184', -'inoldhungarian' => '#/301', -'inolditalic' => '#/243', -'inoldnortharabian' => '#/329', -'inoldpermic' => '#/244', -'inoldpersian' => '#/262', -'inoldsoutharabian' => '#/330', -'inoldturkic' => '#/245', -'inopticalcharacterrecognition' => '#/111', -'inoriya' => '#/133', -'inornamentaldingbats' => '#/350', -'inosmanya' => '#/185', -'inpahawhhmong' => '#/285', -'inpalmyrene' => '#/246', -'inpaucinhau' => '#/247', -'inpc=bottom' => 'InPC/Bottom', -'inpc=bottomandright' => '#/69', -'inpc=left' => 'InPC/Left', -'inpc=leftandright' => 'InPC/LeftAndR', -'inpc=na' => 'InPC/NA', -'inpc=overstruck' => 'InPC/Overstru', -'inpc=right' => 'InPC/Right', -'inpc=top' => 'InPC/Top', -'inpc=topandbottom' => 'InPC/TopAndBo', -'inpc=topandbottomandright' => '#/70', -'inpc=topandleft' => 'InPC/TopAndLe', -'inpc=topandleftandright' => 'InPC/TopAndL2', -'inpc=topandright' => 'InPC/TopAndRi', -'inpc=visualorderleft' => 'InPC/VisualOr', -'inphagspa' => '#/186', -'inphaistos' => '#/220', -'inphaistosdisc' => '#/220', -'inphoenician' => '#/263', -'inphoneticext' => '#/286', -'inphoneticextensions' => '#/286', -'inphoneticextensionssupplement' => '#/317', -'inphoneticextsup' => '#/317', -'inplayingcards' => '#/302', -'inprivateuse' => '#/112', -'inprivateusearea' => '#/112', -'inpsalterpahlavi' => '#/318', -'inpua' => '#/112', -'inpunctuation' => '#/287', -'inrejang' => '#/159', -'inrumi' => '#/120', -'inruminumeralsymbols' => '#/120', -'inrunic' => '#/134', -'insamaritan' => '#/248', -'insaurashtra' => '#/264', -'insc=avagraha' => 'InSC/Avagraha', -'insc=bindu' => 'InSC/Bindu', -'insc=brahmijoiningnumber' => '#/81', -'insc=cantillationmark' => 'InSC/Cantilla', -'insc=consonant' => 'InSC/Consonan', -'insc=consonantdead' => '#/75', -'insc=consonantfinal' => 'InSC/Consona2', -'insc=consonantheadletter' => '#/82', -'insc=consonantkiller' => '#/77', -'insc=consonantmedial' => 'InSC/Consona3', -'insc=consonantplaceholder' => 'InSC/Consona5', -'insc=consonantprecedingrepha' => '#/84', -'insc=consonantprefixed' => '#/80', -'insc=consonantsubjoined' => 'InSC/Consona4', -'insc=consonantsucceedingrepha' => 'InSC/Consona6', -'insc=consonantwithstacker' => '#/83', -'insc=geminationmark' => '#/76', -'insc=invisiblestacker' => 'InSC/Invisibl', -'insc=joiner' => '#/71', -'insc=modifyingletter' => '#/78', -'insc=nonjoiner' => '#/72', -'insc=nukta' => 'InSC/Nukta', -'insc=number' => 'InSC/Number', -'insc=numberjoiner' => '#/74', -'insc=other' => 'InSC/Other', -'insc=purekiller' => 'InSC/PureKill', -'insc=registershifter' => '#/79', -'insc=syllablemodifier' => 'InSC/Syllable', -'insc=toneletter' => '#/73', -'insc=tonemark' => 'InSC/ToneMark', -'insc=virama' => 'InSC/Virama', -'insc=visarga' => 'InSC/Visarga', -'insc=vowel' => 'InSC/Vowel', -'insc=voweldependent' => 'InSC/VowelDep', -'insc=vowelindependent' => 'InSC/VowelInd', -'inscriptionalpahlavi' => '#/592', -'inscriptionalparthian' => '#/595', -'insharada' => '#/187', -'inshavian' => '#/188', -'inshorthandformatcontrols' => '#/365', -'insiddham' => '#/189', -'insinhala' => '#/190', -'insinhalaarchaicnumbers' => '#/360', -'insmallforms' => '#/265', -'insmallformvariants' => '#/265', -'insorasompeng' => '#/288', -'inspacingmodifierletters' => '#/328', -'inspecials' => '#/221', -'insundanese' => '#/249', -'insundanesesup' => '#/303', -'insundanesesupplement' => '#/303', -'insuparrowsa' => '#/266', -'insuparrowsb' => '#/267', -'insuparrowsc' => '#/268', -'insuperandsub' => '#/289', -'insuperscriptsandsubscripts' => '#/289', -'insupmathoperators' => '#/342', -'insupplementalarrowsa' => '#/266', -'insupplementalarrowsb' => '#/267', -'insupplementalarrowsc' => '#/268', -'insupplementalmathematicaloperators' => '#/342', -'insupplementalpunctuation' => '#/319', -'insupplementalsymbolsandpictographs' => '#/366', -'insupplementaryprivateuseareaa' => '#/191', -'insupplementaryprivateuseareab' => '#/192', -'insuppuaa' => '#/191', -'insuppuab' => '#/192', -'insuppunctuation' => '#/319', -'insupsymbolsandpictographs' => '#/366', -'insuttonsignwriting' => '#/346', -'insylotinagri' => '#/290', -'insyriac' => '#/160', -'intagalog' => '#/193', -'intagbanwa' => '#/222', -'intags' => '#/121', -'intaile' => '#/135', -'intaitham' => '#/194', -'intaiviet' => '#/195', -'intaixuanjing' => '#/291', -'intaixuanjingsymbols' => '#/291', -'intakri' => '#/136', -'intamil' => '#/137', -'intelugu' => '#/161', -'inthaana' => '#/162', -'inthai' => '#/122', -'intibetan' => '#/196', -'intifinagh' => '#/223', -'intirhuta' => '#/197', -'intransportandmap' => '#/331', -'intransportandmapsymbols' => '#/331', -'inucas' => '#/123', -'inucasext' => '#/198', -'inugaritic' => '#/224', -'inunifiedcanadianaboriginalsyllabics' => '#/123', -'inunifiedcanadianaboriginalsyllabicsextended' => '#/198', -'invai' => '#/113', -'invariationselectors' => '#/105', -'invariationselectorssupplement' => '#/138', -'invedicext' => '#/225', -'invedicextensions' => '#/225', -'inverticalforms' => '#/310', -'invs' => '#/105', -'invssup' => '#/138', -'inwarangciti' => '#/269', -'inyijing' => '#/163', -'inyijinghexagramsymbols' => '#/163', -'inyiradicals' => '#/270', -'inyisyllables' => '#/292', -'ipaext' => '#/150', -'ipaextensions' => '#/150', -'isaegeannumbers' => '#/304', -'isaghb' => '#/542', -'isahex' => '#/60', -'isahom' => '#/543', -'isalchemical' => '#/250', -'isalchemicalsymbols' => '#/250', -'isall' => '#/1', -'isalnum' => 'Perl/Alnum', -'isalpha' => 'Alpha/Y', -'isalphabetic' => 'Alpha/Y', -'isalphabeticpf' => '#/293', -'isalphabeticpresentationforms' => '#/293', -'isanatolianhieroglyphs' => '#/565', -'isancientgreekmusic' => '#/343', -'isancientgreekmusicalnotation' => '#/343', -'isancientgreeknumbers' => '#/351', -'isancientsymbols' => '#/311', -'isany' => '#/2', -'isarab' => 'Sc/Arab', -'isarabic' => 'Sc/Arab', -'isarabicexta' => '#/251', -'isarabicextendeda' => '#/251', -'isarabicmath' => '#/252', -'isarabicmathematicalalphabeticsymbols' => '#/252', -'isarabicpfa' => '#/226', -'isarabicpfb' => '#/227', -'isarabicpresentationformsa' => '#/226', -'isarabicpresentationformsb' => '#/227', -'isarabicsup' => '#/228', -'isarabicsupplement' => '#/228', -'isarmenian' => 'Sc/Armn', -'isarmi' => '#/544', -'isarmn' => 'Sc/Armn', -'isarrows' => '#/140', -'isascii' => '#/124', -'isasciihexdigit' => '#/60', -'isassigned' => 'Perl/Assigned', -'isavestan' => '#/545', -'isavst' => '#/545', -'isbali' => '#/546', -'isbalinese' => '#/546', -'isbamu' => '#/547', -'isbamum' => '#/547', -'isbamumsup' => '#/201', -'isbamumsupplement' => '#/201', -'isbasiclatin' => '#/124', -'isbass' => '#/548', -'isbassavah' => '#/548', -'isbatak' => '#/549', -'isbatk' => '#/549', -'isbeng' => 'Sc/Beng', -'isbengali' => 'Sc/Beng', -'isbidic' => 'BidiC/Y', -'isbidicontrol' => 'BidiC/Y', -'isbidim' => 'BidiM/Y', -'isbidimirrored' => 'BidiM/Y', -'isblank' => 'Perl/Blank', -'isblockelements' => '#/305', -'isbopo' => '#/550', -'isbopomofo' => '#/550', -'isbopomofoext' => '#/271', -'isbopomofoextended' => '#/271', -'isboxdrawing' => '#/253', -'isbrah' => '#/551', -'isbrahmi' => '#/551', -'isbrai' => '#/166', -'isbraille' => '#/166', -'isbraillepatterns' => '#/166', -'isbugi' => '#/552', -'isbuginese' => '#/552', -'isbuhd' => '#/553', -'isbuhid' => '#/553', -'isbyzantinemusic' => '#/312', -'isbyzantinemusicalsymbols' => '#/312', -'isc' => 'Gc/C', -'iscakm' => '#/554', -'iscanadianaboriginal' => '#/555', -'iscanadiansyllabics' => '#/123', -'iscans' => '#/555', -'iscari' => '#/556', -'iscarian' => '#/556', -'iscased' => 'Cased/Y', -'iscasedletter' => 'Gc/LC', -'iscaseignorable' => 'CI/Y', -'iscaucasianalbanian' => '#/542', -'iscc' => '#/370', -'isce' => 'CE/Y', -'iscf' => 'Gc/Cf', -'ischakma' => '#/554', -'ischam' => 'Sc/Cham', -'ischangeswhencasefolded' => 'CWCF/Y', -'ischangeswhencasemapped' => 'CWCM/Y', -'ischangeswhenlowercased' => 'CWL/Y', -'ischangeswhennfkccasefolded' => 'CWKCF/Y', -'ischangeswhentitlecased' => 'CWT/Y', -'ischangeswhenuppercased' => 'CWU/Y', -'ischer' => '#/557', -'ischerokee' => '#/557', -'ischerokeesup' => '#/272', -'ischerokeesupplement' => '#/272', -'isci' => 'CI/Y', -'iscjk' => '#/106', -'iscjkcompat' => '#/229', -'iscjkcompatforms' => '#/313', -'iscjkcompatibility' => '#/229', -'iscjkcompatibilityforms' => '#/313', -'iscjkcompatibilityideographs' => '#/352', -'iscjkcompatibilityideographssupplement' => '#/361', -'iscjkcompatideographs' => '#/352', -'iscjkcompatideographssup' => '#/361', -'iscjkexta' => '#/167', -'iscjkextb' => '#/168', -'iscjkextc' => '#/169', -'iscjkextd' => '#/170', -'iscjkexte' => '#/171', -'iscjkradicalssup' => '#/314', -'iscjkradicalssupplement' => '#/314', -'iscjkstrokes' => '#/254', -'iscjksymbols' => '#/255', -'iscjksymbolsandpunctuation' => '#/255', -'iscjkunifiedideographs' => '#/106', -'iscjkunifiedideographsextensiona' => '#/167', -'iscjkunifiedideographsextensionb' => '#/168', -'iscjkunifiedideographsextensionc' => '#/169', -'iscjkunifiedideographsextensiond' => '#/170', -'iscjkunifiedideographsextensione' => '#/171', -'isclosepunctuation' => 'Gc/Pe', -'iscn' => 'Gc/Cn', -'iscntrl' => '#/370', -'isco' => '#/371', -'iscombiningdiacriticalmarks' => '#/296', -'iscombiningdiacriticalmarksextended' => '#/322', -'iscombiningdiacriticalmarksforsymbols' => '#/362', -'iscombiningdiacriticalmarkssupplement' => '#/323', -'iscombininghalfmarks' => '#/232', -'iscombiningmark' => 'Gc/M', -'iscombiningmarksforsymbols' => '#/362', -'iscommon' => 'Sc/Zyyy', -'iscommonindicnumberforms' => '#/337', -'iscompatjamo' => '#/256', -'iscompex' => 'CompEx/Y', -'iscompositionexclusion' => 'CE/Y', -'isconnectorpunctuation' => 'WB/EX', -'iscontrol' => '#/370', -'iscontrolpictures' => '#/320', -'iscopt' => '#/558', -'iscoptic' => '#/558', -'iscopticepactnumbers' => '#/347', -'iscountingrod' => '#/273', -'iscountingrodnumerals' => '#/273', -'iscprt' => 'Sc/Cprt', -'iscs' => '#/14', -'iscuneiform' => 'Sc/Xsux', -'iscuneiformnumbers' => '#/332', -'iscuneiformnumbersandpunctuation' => '#/332', -'iscurrencysymbol' => 'Gc/Sc', -'iscurrencysymbols' => '#/321', -'iscwcf' => 'CWCF/Y', -'iscwcm' => 'CWCM/Y', -'iscwkcf' => 'CWKCF/Y', -'iscwl' => 'CWL/Y', -'iscwt' => 'CWT/Y', -'iscwu' => 'CWU/Y', -'iscypriot' => 'Sc/Cprt', -'iscypriotsyllabary' => '#/333', -'iscyrillic' => 'Sc/Cyrl', -'iscyrillicexta' => '#/294', -'iscyrillicextb' => '#/295', -'iscyrillicextendeda' => '#/294', -'iscyrillicextendedb' => '#/295', -'iscyrillicsup' => '#/274', -'iscyrillicsupplement' => '#/274', -'iscyrillicsupplementary' => '#/274', -'iscyrl' => 'Sc/Cyrl', -'isdash' => 'Dash/Y', -'isdashpunctuation' => 'Gc/Pd', -'isdecimalnumber' => 'Gc/Nd', -'isdefaultignorablecodepoint' => 'DI/Y', -'isdep' => 'Dep/Y', -'isdeprecated' => 'Dep/Y', -'isdeseret' => '#/172', -'isdeva' => 'Sc/Deva', -'isdevanagari' => 'Sc/Deva', -'isdevanagariext' => '#/306', -'isdevanagariextended' => '#/306', -'isdi' => 'DI/Y', -'isdia' => 'Dia/Y', -'isdiacritic' => 'Dia/Y', -'isdiacriticals' => '#/296', -'isdiacriticalsext' => '#/322', -'isdiacriticalsforsymbols' => '#/362', -'isdiacriticalssup' => '#/323', -'isdigit' => 'Gc/Nd', -'isdingbats' => '#/207', -'isdomino' => '#/145', -'isdominotiles' => '#/145', -'isdsrt' => '#/172', -'isdupl' => 'Sc/Dupl', -'isduployan' => 'Sc/Dupl', -'isearlydynasticcuneiform' => '#/363', -'isegyp' => '#/559', -'isegyptianhieroglyphs' => '#/559', -'iselba' => '#/560', -'iselbasan' => '#/560', -'isemoticons' => '#/231', -'isenclosedalphanum' => '#/334', -'isenclosedalphanumerics' => '#/334', -'isenclosedalphanumericsupplement' => '#/354', -'isenclosedalphanumsup' => '#/354', -'isenclosedcjk' => '#/275', -'isenclosedcjklettersandmonths' => '#/275', -'isenclosedideographicsup' => '#/364', -'isenclosedideographicsupplement' => '#/364', -'isenclosingmark' => 'Gc/Me', -'isethi' => 'Sc/Ethi', -'isethiopic' => 'Sc/Ethi', -'isethiopicext' => '#/276', -'isethiopicexta' => '#/297', -'isethiopicextended' => '#/276', -'isethiopicextendeda' => '#/297', -'isethiopicsup' => '#/277', -'isethiopicsupplement' => '#/277', -'isext' => 'Ext/Y', -'isextender' => 'Ext/Y', -'isfinalpunctuation' => 'Gc/Pf', -'isformat' => 'Gc/Cf', -'isfullcompositionexclusion' => 'CompEx/Y', -'isgeneralpunctuation' => '#/287', -'isgeometricshapes' => '#/324', -'isgeometricshapesext' => '#/348', -'isgeometricshapesextended' => '#/348', -'isgeor' => 'Sc/Geor', -'isgeorgian' => 'Sc/Geor', -'isgeorgiansup' => '#/278', -'isgeorgiansupplement' => '#/278', -'isglag' => '#/561', -'isglagolitic' => '#/561', -'isgoth' => '#/562', -'isgothic' => '#/562', -'isgran' => 'Sc/Gran', -'isgrantha' => 'Sc/Gran', -'isgraph' => 'Perl/Graph', -'isgraphemebase' => 'GrBase/Y', -'isgraphemeextend' => 'GCB/EX', -'isgrbase' => 'GrBase/Y', -'isgreek' => 'Sc/Grek', -'isgreekandcoptic' => '#/128', -'isgreekext' => '#/211', -'isgreekextended' => '#/211', -'isgrek' => 'Sc/Grek', -'isgrext' => 'GCB/EX', -'isgujarati' => 'Sc/Gujr', -'isgujr' => 'Sc/Gujr', -'isgurmukhi' => 'Sc/Guru', -'isguru' => 'Sc/Guru', -'ishalfandfullforms' => '#/335', -'ishalfmarks' => '#/232', -'ishalfwidthandfullwidthforms' => '#/335', -'ishan' => 'Sc/Han', -'ishang' => 'Sc/Hang', -'ishangul' => 'Sc/Hang', -'ishangulcompatibilityjamo' => '#/256', -'ishanguljamo' => '#/116', -'ishanguljamoextendeda' => '#/215', -'ishanguljamoextendedb' => '#/216', -'ishangulsyllables' => '#/147', -'ishani' => 'Sc/Han', -'ishano' => '#/563', -'ishanunoo' => '#/563', -'ishatr' => '#/564', -'ishatran' => '#/564', -'ishebr' => 'Sc/Hebr', -'ishebrew' => 'Sc/Hebr', -'ishex' => 'Hex/Y', -'ishexdigit' => 'Hex/Y', -'ishighprivateusesurrogates' => '#/336', -'ishighpusurrogates' => '#/336', -'ishighsurrogates' => '#/315', -'ishira' => 'Sc/Hira', -'ishiragana' => 'Sc/Hira', -'ishluw' => '#/565', -'ishmng' => 'Sc/Hmng', -'ishorizspace' => 'Perl/Blank', -'ishung' => '#/566', -'ishyphen' => 'Hyphen/T', -'isidc' => 'IDC/Y', -'isidcontinue' => 'IDC/Y', -'isideo' => 'Ideo/Y', -'isideographic' => 'Ideo/Y', -'isideographicdescriptioncharacters' => '#/107', -'isids' => 'IDS/Y', -'isidsb' => '#/67', -'isidsbinaryoperator' => '#/67', -'isidst' => '#/68', -'isidstart' => 'IDS/Y', -'isidstrinaryoperator' => '#/68', -'isimperialaramaic' => '#/544', -'isindicnumberforms' => '#/337', -'isinherited' => 'Sc/Zinh', -'isinitialpunctuation' => 'Gc/Pi', -'isinscriptionalpahlavi' => '#/592', -'isinscriptionalparthian' => '#/595', -'isipaext' => '#/150', -'isipaextensions' => '#/150', -'isital' => '#/567', -'isjamo' => '#/116', -'isjamoexta' => '#/215', -'isjamoextb' => '#/216', -'isjava' => '#/568', -'isjavanese' => '#/568', -'isjoinc' => '#/85', -'isjoincontrol' => '#/85', -'iskaithi' => '#/571', -'iskali' => '#/569', -'iskana' => 'Sc/Kana', -'iskanasup' => '#/176', -'iskanasupplement' => '#/176', -'iskanbun' => '#/152', -'iskangxi' => '#/153', -'iskangxiradicals' => '#/153', -'iskannada' => 'Sc/Knda', -'iskatakana' => 'Sc/Kana', -'iskatakanaext' => '#/279', -'iskatakanaphoneticextensions' => '#/279', -'iskayahli' => '#/569', -'iskhar' => 'Sc/Khar', -'iskharoshthi' => 'Sc/Khar', -'iskhmer' => 'Sc/Khmr', -'iskhmersymbols' => '#/298', -'iskhmr' => 'Sc/Khmr', -'iskhoj' => '#/570', -'iskhojki' => '#/570', -'iskhudawadi' => '#/603', -'isknda' => 'Sc/Knda', -'iskthi' => '#/571', -'isl' => 'Gc/L', -'isl&' => 'Gc/LC', -'isl_' => 'Gc/LC', -'islana' => 'Sc/Lana', -'islao' => 'Sc/Lao', -'islaoo' => 'Sc/Lao', -'islatin' => 'Sc/Latn', -'islatin1' => '#/155', -'islatin1sup' => '#/155', -'islatin1supplement' => '#/155', -'islatinexta' => '#/234', -'islatinextadditional' => '#/349', -'islatinextb' => '#/235', -'islatinextc' => '#/236', -'islatinextd' => '#/237', -'islatinexte' => '#/238', -'islatinextendeda' => '#/234', -'islatinextendedadditional' => '#/349', -'islatinextendedb' => '#/235', -'islatinextendedc' => '#/236', -'islatinextendedd' => '#/237', -'islatinextendede' => '#/238', -'islatn' => 'Sc/Latn', -'islc' => 'Gc/LC', -'islepc' => '#/572', -'islepcha' => '#/572', -'isletter' => 'Gc/L', -'isletterlikesymbols' => '#/345', -'isletternumber' => 'Gc/Nl', -'islimb' => 'Sc/Limb', -'islimbu' => 'Sc/Limb', -'islina' => '#/573', -'islinb' => 'Sc/Linb', -'islineara' => '#/573', -'islinearb' => 'Sc/Linb', -'islinearbideograms' => '#/338', -'islinearbsyllabary' => '#/339', -'islineseparator' => '#/372', -'islisu' => '#/117', -'isll' => 'Gc/Ll', -'islm' => 'Gc/Lm', -'islo' => 'Gc/Lo', -'isloe' => 'InPC/VisualOr', -'islogicalorderexception' => 'InPC/VisualOr', -'islower' => 'Lower/Y', -'islowercase' => 'Lower/Y', -'islowercaseletter' => 'Gc/Ll', -'islowsurrogates' => '#/307', -'islt' => 'Perl/Title', -'islu' => 'Gc/Lu', -'islyci' => '#/574', -'islycian' => '#/574', -'islydi' => '#/575', -'islydian' => '#/575', -'ism' => 'Gc/M', -'ismahajani' => '#/576', -'ismahj' => '#/576', -'ismahjong' => '#/180', -'ismahjongtiles' => '#/180', -'ismalayalam' => 'Sc/Mlym', -'ismand' => '#/577', -'ismandaic' => '#/577', -'ismani' => '#/578', -'ismanichaean' => '#/578', -'ismark' => 'Gc/M', -'ismath' => 'Math/Y', -'ismathalphanum' => '#/299', -'ismathematicalalphanumericsymbols' => '#/299', -'ismathematicaloperators' => '#/308', -'ismathoperators' => '#/308', -'ismathsymbol' => 'Gc/Sm', -'ismc' => 'Gc/Mc', -'isme' => 'Gc/Me', -'ismeeteimayek' => '#/583', -'ismeeteimayekext' => '#/316', -'ismeeteimayekextensions' => '#/316', -'ismend' => '#/579', -'ismendekikakui' => '#/579', -'ismerc' => '#/580', -'ismero' => '#/355', -'ismeroiticcursive' => '#/580', -'ismeroitichieroglyphs' => '#/355', -'ismiao' => '#/581', -'ismiscarrows' => '#/261', -'ismiscellaneousmathematicalsymbolsa' => '#/340', -'ismiscellaneousmathematicalsymbolsb' => '#/341', -'ismiscellaneoussymbols' => '#/281', -'ismiscellaneoussymbolsandarrows' => '#/261', -'ismiscellaneoussymbolsandpictographs' => '#/327', -'ismiscellaneoustechnical' => '#/309', -'ismiscmathsymbolsa' => '#/340', -'ismiscmathsymbolsb' => '#/341', -'ismiscpictographs' => '#/327', -'ismiscsymbols' => '#/281', -'ismisctechnical' => '#/309', -'ismlym' => 'Sc/Mlym', -'ismn' => 'Gc/Mn', -'ismodi' => '#/582', -'ismodifierletter' => 'Gc/Lm', -'ismodifierletters' => '#/328', -'ismodifiersymbol' => 'Gc/Sk', -'ismodifiertoneletters' => '#/356', -'ismong' => 'Sc/Mong', -'ismongolian' => 'Sc/Mong', -'ismro' => '#/539', -'ismroo' => '#/539', -'ismtei' => '#/583', -'ismult' => 'Sc/Mult', -'ismultani' => 'Sc/Mult', -'ismusic' => '#/131', -'ismusicalsymbols' => '#/131', -'ismyanmar' => '#/584', -'ismyanmarexta' => '#/282', -'ismyanmarextb' => '#/283', -'ismyanmarextendeda' => '#/282', -'ismyanmarextendedb' => '#/283', -'ismymr' => '#/584', -'isn' => 'Gc/N', -'isnabataean' => '#/585', -'isnarb' => '#/329', -'isnb' => 'Blk/NB', -'isnbat' => '#/585', -'isnchar' => 'Perl/_PerlNch', -'isnd' => 'Gc/Nd', -'isnewtailue' => 'Sc/Talu', -'isnko' => '#/540', -'isnkoo' => '#/540', -'isnl' => 'Gc/Nl', -'isno' => 'Gc/No', -'isnoblock' => 'Blk/NB', -'isnoncharactercodepoint' => 'Perl/_PerlNch', -'isnonspacingmark' => 'Gc/Mn', -'isnumber' => 'Gc/N', -'isnumberforms' => '#/284', -'isocr' => '#/111', -'isogam' => '#/586', -'isogham' => '#/586', -'isolchiki' => '#/184', -'isolck' => '#/184', -'isoldhungarian' => '#/566', -'isolditalic' => '#/567', -'isoldnortharabian' => '#/329', -'isoldpermic' => '#/590', -'isoldpersian' => '#/619', -'isoldsoutharabian' => '#/330', -'isoldturkic' => '#/587', -'isopenpunctuation' => 'Gc/Ps', -'isopticalcharacterrecognition' => '#/111', -'isoriya' => 'Sc/Orya', -'isorkh' => '#/587', -'isornamentaldingbats' => '#/350', -'isorya' => 'Sc/Orya', -'isosma' => '#/588', -'isosmanya' => '#/588', -'isother' => 'Gc/C', -'isotherletter' => 'Gc/Lo', -'isothernumber' => 'Gc/No', -'isotherpunctuation' => 'Gc/Po', -'isothersymbol' => 'Gc/So', -'isp' => 'Gc/P', -'ispahawhhmong' => 'Sc/Hmng', -'ispalm' => '#/246', -'ispalmyrene' => '#/246', -'isparagraphseparator' => '#/373', -'ispatsyn' => 'PatSyn/Y', -'ispatternsyntax' => 'PatSyn/Y', -'ispatternwhitespace' => 'Perl/_PerlPat', -'ispatws' => 'Perl/_PerlPat', -'ispauc' => '#/589', -'ispaucinhau' => '#/589', -'ispc' => 'WB/EX', -'ispd' => 'Gc/Pd', -'ispe' => 'Gc/Pe', -'isperlspace' => '#/3', -'isperlword' => 'Perl/PerlWord', -'isperm' => '#/590', -'ispf' => 'Gc/Pf', -'isphag' => '#/591', -'isphagspa' => '#/591', -'isphaistos' => '#/220', -'isphaistosdisc' => '#/220', -'isphli' => '#/592', -'isphlp' => '#/593', -'isphnx' => '#/594', -'isphoenician' => '#/594', -'isphoneticext' => '#/286', -'isphoneticextensions' => '#/286', -'isphoneticextensionssupplement' => '#/317', -'isphoneticextsup' => '#/317', -'ispi' => 'Gc/Pi', -'isplayingcards' => '#/302', -'isplrd' => '#/581', -'ispo' => 'Gc/Po', -'isposixalnum' => '#/5', -'isposixalpha' => '#/6', -'isposixblank' => '#/7', -'isposixcntrl' => '#/8', -'isposixdigit' => '#/9', -'isposixgraph' => '#/10', -'isposixlower' => '#/11', -'isposixprint' => '#/12', -'isposixpunct' => 'Perl/PosixPun', -'isposixspace' => '#/3', -'isposixupper' => '#/13', -'isposixword' => 'Perl/PerlWord', -'isposixxdigit' => '#/60', -'isprint' => 'Perl/Print', -'isprivateuse' => '#/371', -'isprivateusearea' => '#/112', -'isprti' => '#/595', -'isps' => 'Gc/Ps', -'ispsalterpahlavi' => '#/593', -'ispua' => '#/112', -'ispunct' => 'Gc/P', -'ispunctuation' => 'Gc/P', -'isqaac' => '#/558', -'isqaai' => 'Sc/Zinh', -'isqmark' => 'QMark/Y', -'isquotationmark' => 'QMark/Y', -'isradical' => '#/86', -'isrejang' => '#/596', -'isrjng' => '#/596', -'isrumi' => '#/120', -'isruminumeralsymbols' => '#/120', -'isrunic' => '#/597', -'isrunr' => '#/597', -'iss' => 'Gc/S', -'issamaritan' => '#/598', -'issamr' => '#/598', -'issarb' => '#/330', -'issaur' => '#/599', -'issaurashtra' => '#/599', -'issc' => 'Gc/Sc', -'issd' => 'SD/Y', -'isseparator' => 'Gc/Z', -'issgnw' => '#/600', -'issharada' => '#/601', -'isshavian' => '#/188', -'isshaw' => '#/188', -'isshorthandformatcontrols' => '#/365', -'isshrd' => '#/601', -'issidd' => '#/602', -'issiddham' => '#/602', -'issignwriting' => '#/600', -'issind' => '#/603', -'issinh' => 'Sc/Sinh', -'issinhala' => 'Sc/Sinh', -'issinhalaarchaicnumbers' => '#/360', -'issk' => 'Gc/Sk', -'issm' => 'Gc/Sm', -'issmallforms' => '#/265', -'issmallformvariants' => '#/265', -'isso' => 'Gc/So', -'issoftdotted' => 'SD/Y', -'issora' => '#/604', -'issorasompeng' => '#/604', -'isspace' => 'Perl/SpacePer', -'isspaceperl' => 'Perl/SpacePer', -'isspaceseparator' => 'Gc/Zs', -'isspacingmark' => 'Gc/Mc', -'isspacingmodifierletters' => '#/328', -'isspecials' => '#/221', -'issterm' => 'STerm/Y', -'issund' => '#/605', -'issundanese' => '#/605', -'issundanesesup' => '#/303', -'issundanesesupplement' => '#/303', -'issuparrowsa' => '#/266', -'issuparrowsb' => '#/267', -'issuparrowsc' => '#/268', -'issuperandsub' => '#/289', -'issuperscriptsandsubscripts' => '#/289', -'issupmathoperators' => '#/342', -'issupplementalarrowsa' => '#/266', -'issupplementalarrowsb' => '#/267', -'issupplementalarrowsc' => '#/268', -'issupplementalmathematicaloperators' => '#/342', -'issupplementalpunctuation' => '#/319', -'issupplementalsymbolsandpictographs' => '#/366', -'issupplementaryprivateuseareaa' => '#/191', -'issupplementaryprivateuseareab' => '#/192', -'issuppuaa' => '#/191', -'issuppuab' => '#/192', -'issuppunctuation' => '#/319', -'issupsymbolsandpictographs' => '#/366', -'issurrogate' => '#/14', -'issuttonsignwriting' => '#/346', -'issylo' => '#/606', -'issylotinagri' => '#/606', -'issymbol' => 'Gc/S', -'issyrc' => '#/607', -'issyriac' => '#/607', -'istagalog' => '#/613', -'istagb' => '#/608', -'istagbanwa' => '#/608', -'istags' => '#/121', -'istaile' => '#/610', -'istaitham' => 'Sc/Lana', -'istaiviet' => '#/611', -'istaixuanjing' => '#/291', -'istaixuanjingsymbols' => '#/291', -'istakr' => '#/609', -'istakri' => '#/609', -'istale' => '#/610', -'istalu' => 'Sc/Talu', -'istamil' => 'Sc/Taml', -'istaml' => 'Sc/Taml', -'istavt' => '#/611', -'istelu' => 'Sc/Telu', -'istelugu' => 'Sc/Telu', -'isterm' => 'Term/Y', -'isterminalpunctuation' => 'Term/Y', -'istfng' => '#/612', -'istglg' => '#/613', -'isthaa' => '#/614', -'isthaana' => '#/614', -'isthai' => '#/615', -'istibetan' => 'Sc/Tibt', -'istibt' => 'Sc/Tibt', -'istifinagh' => '#/612', -'istirh' => '#/616', -'istirhuta' => '#/616', -'istitle' => 'Perl/Title', -'istitlecase' => 'Perl/Title', -'istitlecaseletter' => 'Perl/Title', -'istransportandmap' => '#/331', -'istransportandmapsymbols' => '#/331', -'isucas' => '#/123', -'isucasext' => '#/198', -'isugar' => '#/617', -'isugaritic' => '#/617', -'isuideo' => 'UIdeo/Y', -'isunassigned' => 'Gc/Cn', -'isunicode' => '#/2', -'isunifiedcanadianaboriginalsyllabics' => '#/123', -'isunifiedcanadianaboriginalsyllabicsextended' => '#/198', -'isunifiedideograph' => 'UIdeo/Y', -'isunknown' => 'Sc/Zzzz', -'isupper' => 'Upper/Y', -'isuppercase' => 'Upper/Y', -'isuppercaseletter' => 'Gc/Lu', -'isvai' => '#/541', -'isvaii' => '#/541', -'isvariationselector' => '#/88', -'isvariationselectors' => '#/105', -'isvariationselectorssupplement' => '#/138', -'isvedicext' => '#/225', -'isvedicextensions' => '#/225', -'isverticalforms' => '#/310', -'isvertspace' => '#/4', -'isvs' => '#/88', -'isvssup' => '#/138', -'iswara' => '#/618', -'iswarangciti' => '#/618', -'iswhitespace' => 'Perl/SpacePer', -'isword' => 'Perl/Word', -'iswspace' => 'Perl/SpacePer', -'isxdigit' => 'Hex/Y', -'isxidc' => 'XIDC/Y', -'isxidcontinue' => 'XIDC/Y', -'isxids' => 'XIDS/Y', -'isxidstart' => 'XIDS/Y', -'isxpeo' => '#/619', -'isxperlspace' => 'Perl/SpacePer', -'isxposixalnum' => 'Perl/Alnum', -'isxposixalpha' => 'Alpha/Y', -'isxposixblank' => 'Perl/Blank', -'isxposixcntrl' => '#/370', -'isxposixdigit' => 'Gc/Nd', -'isxposixgraph' => 'Perl/Graph', -'isxposixlower' => 'Lower/Y', -'isxposixprint' => 'Perl/Print', -'isxposixpunct' => 'Perl/XPosixPu', -'isxposixspace' => 'Perl/SpacePer', -'isxposixupper' => 'Upper/Y', -'isxposixword' => 'Perl/Word', -'isxposixxdigit' => 'Hex/Y', -'isxsux' => 'Sc/Xsux', -'isyi' => '#/538', -'isyiii' => '#/538', -'isyijing' => '#/163', -'isyijinghexagramsymbols' => '#/163', -'isyiradicals' => '#/270', -'isyisyllables' => '#/292', -'isz' => 'Gc/Z', -'iszinh' => 'Sc/Zinh', -'iszl' => '#/372', -'iszp' => '#/373', -'iszs' => 'Gc/Zs', -'iszyyy' => 'Sc/Zyyy', -'iszzzz' => 'Sc/Zzzz', -'ital' => '#/567', -'jamo' => '#/116', -'jamoexta' => '#/215', -'jamoextb' => '#/216', -'java' => '#/568', -'javanese' => '#/568', -'jg=ain' => 'Jg/Ain', -'jg=alaph' => '#/394', -'jg=alef' => 'Jg/Alef', -'jg=beh' => 'Jg/Beh', -'jg=beth' => '#/384', -'jg=burushaskiyehbarree' => '#/442', -'jg=dal' => 'Jg/Dal', -'jg=dalathrish' => '#/406', -'jg=e' => '#/374', -'jg=farsiyeh' => 'Jg/FarsiYeh', -'jg=fe' => '#/375', -'jg=feh' => 'Jg/Feh', -'jg=finalsemkath' => '#/413', -'jg=gaf' => 'Jg/Gaf', -'jg=gamal' => '#/395', -'jg=hah' => 'Jg/Hah', -'jg=hamzaonhehgoal' => '#/421', -'jg=he' => '#/376', -'jg=heh' => '#/378', -'jg=hehgoal' => '#/401', -'jg=heth' => '#/385', -'jg=kaf' => 'Jg/Kaf', -'jg=kaph' => '#/386', -'jg=khaph' => '#/396', -'jg=knottedheh' => '#/407', -'jg=lam' => 'Jg/Lam', -'jg=lamadh' => '#/399', -'jg=manichaeanaleph' => '#/431', -'jg=manichaeanayin' => '#/422', -'jg=manichaeanbeth' => '#/423', -'jg=manichaeandaleth' => '#/435', -'jg=manichaeandhamedh' => '#/439', -'jg=manichaeanfive' => '#/424', -'jg=manichaeangimel' => '#/432', -'jg=manichaeanheth' => '#/425', -'jg=manichaeanhundred' => '#/440', -'jg=manichaeankaph' => '#/426', -'jg=manichaeanlamedh' => '#/436', -'jg=manichaeanmem' => '#/415', -'jg=manichaeannun' => '#/416', -'jg=manichaeanone' => '#/417', -'jg=manichaeanpe' => '#/414', -'jg=manichaeanqoph' => '#/427', -'jg=manichaeanresh' => '#/428', -'jg=manichaeansadhe' => '#/433', -'jg=manichaeansamekh' => '#/437', -'jg=manichaeantaw' => '#/418', -'jg=manichaeanten' => '#/419', -'jg=manichaeanteth' => '#/429', -'jg=manichaeanthamedh' => '#/441', -'jg=manichaeantwenty' => '#/438', -'jg=manichaeanwaw' => '#/420', -'jg=manichaeanyodh' => '#/430', -'jg=manichaeanzayin' => '#/434', -'jg=meem' => '#/387', -'jg=mim' => '#/379', -'jg=nojoininggroup' => 'Jg/NoJoinin', -'jg=noon' => '#/388', -'jg=nun' => '#/380', -'jg=nya' => '#/381', -'jg=pe' => '#/377', -'jg=qaf' => 'Jg/Qaf', -'jg=qaph' => '#/389', -'jg=reh' => 'Jg/Reh', -'jg=reversedpe' => '#/408', -'jg=rohingyayeh' => '#/410', -'jg=sad' => 'Jg/Sad', -'jg=sadhe' => '#/397', -'jg=seen' => 'Jg/Seen', -'jg=semkath' => '#/402', -'jg=shin' => '#/390', -'jg=straightwaw' => '#/411', -'jg=swashkaf' => '#/403', -'jg=syriacwaw' => '#/404', -'jg=tah' => '#/382', -'jg=taw' => '#/383', -'jg=tehmarbuta' => '#/409', -'jg=tehmarbutagoal' => '#/421', -'jg=teth' => '#/391', -'jg=waw' => 'Jg/Waw', -'jg=yeh' => 'Jg/Yeh', -'jg=yehbarree' => '#/405', -'jg=yehwithtail' => '#/412', -'jg=yudh' => '#/392', -'jg=yudhhe' => '#/400', -'jg=zain' => '#/393', -'jg=zhain' => '#/398', -'joinc' => '#/85', -'joinc=f' => '#/!85', -'joinc=false' => '#/!85', -'joinc=n' => '#/!85', -'joinc=no' => '#/!85', -'joinc=t' => '#/85', -'joinc=true' => '#/85', -'joinc=y' => '#/85', -'joinc=yes' => '#/85', -'joincontrol' => '#/85', -'jt=c' => 'Jt/C', -'jt=d' => 'Jt/D', -'jt=dualjoining' => 'Jt/D', -'jt=joincausing' => 'Jt/C', -'jt=l' => '#/443', -'jt=leftjoining' => '#/443', -'jt=nonjoining' => 'Jt/U', -'jt=r' => 'Jt/R', -'jt=rightjoining' => 'Jt/R', -'jt=t' => 'Jt/T', -'jt=transparent' => 'Jt/T', -'jt=u' => 'Jt/U', -'kaithi' => '#/571', -'kali' => '#/569', -'kana' => 'Sc/Kana', -'kanasup' => '#/176', -'kanasupplement' => '#/176', -'kanbun' => '#/152', -'kangxi' => '#/153', -'kangxiradicals' => '#/153', -'kannada' => 'Sc/Knda', -'katakana' => 'Sc/Kana', -'katakanaext' => '#/279', -'katakanaphoneticextensions' => '#/279', -'kayahli' => '#/569', -'khar' => 'Sc/Khar', -'kharoshthi' => 'Sc/Khar', -'khmer' => 'Sc/Khmr', -'khmersymbols' => '#/298', -'khmr' => 'Sc/Khmr', -'khoj' => '#/570', -'khojki' => '#/570', -'khudawadi' => '#/603', -'knda' => 'Sc/Knda', -'kthi' => '#/571', -'l' => 'Gc/L', -'l&' => 'Gc/LC', -'l_' => 'Gc/LC', -'lana' => 'Sc/Lana', -'lao' => 'Sc/Lao', -'laoo' => 'Sc/Lao', -'latin' => 'Sc/Latn', -'latin1' => '#/155', -'latin1sup' => '#/155', -'latin1supplement' => '#/155', -'latinexta' => '#/234', -'latinextadditional' => '#/349', -'latinextb' => '#/235', -'latinextc' => '#/236', -'latinextd' => '#/237', -'latinexte' => '#/238', -'latinextendeda' => '#/234', -'latinextendedadditional' => '#/349', -'latinextendedb' => '#/235', -'latinextendedc' => '#/236', -'latinextendedd' => '#/237', -'latinextendede' => '#/238', -'latn' => 'Sc/Latn', -'lb=ai' => 'Lb/AI', -'lb=al' => 'Lb/AL', -'lb=alphabetic' => 'Lb/AL', -'lb=ambiguous' => 'Lb/AI', -'lb=b2' => '#/444', -'lb=ba' => 'Lb/BA', -'lb=bb' => 'Lb/BB', -'lb=bk' => '#/445', -'lb=breakafter' => 'Lb/BA', -'lb=breakbefore' => 'Lb/BB', -'lb=breakboth' => '#/444', -'lb=breaksymbols' => '#/452', -'lb=carriagereturn' => '#/64', -'lb=cb' => '#/446', -'lb=cj' => 'Lb/CJ', -'lb=cl' => 'Lb/CL', -'lb=closeparenthesis' => '#/447', -'lb=closepunctuation' => 'Lb/CL', -'lb=cm' => 'Lb/CM', -'lb=combiningmark' => 'Lb/CM', -'lb=complexcontext' => 'Lb/SA', -'lb=conditionaljapanesestarter' => 'Lb/CJ', -'lb=contingentbreak' => '#/446', -'lb=cp' => '#/447', -'lb=cr' => '#/64', -'lb=ex' => 'Lb/EX', -'lb=exclamation' => 'Lb/EX', -'lb=gl' => 'Lb/GL', -'lb=glue' => 'Lb/GL', -'lb=h2' => 'GCB/LV', -'lb=h3' => 'GCB/LVT', -'lb=hebrewletter' => 'WB/HL', -'lb=hl' => 'WB/HL', -'lb=hy' => '#/448', -'lb=hyphen' => '#/448', -'lb=id' => 'Lb/ID', -'lb=ideographic' => 'Lb/ID', -'lb=in' => 'Lb/IN', -'lb=infixnumeric' => 'Lb/IS', -'lb=inseparable' => 'Lb/IN', -'lb=inseperable' => 'Lb/IN', -'lb=is' => 'Lb/IS', -'lb=jl' => '#/61', -'lb=jt' => '#/62', -'lb=jv' => '#/63', -'lb=lf' => '#/65', -'lb=linefeed' => '#/65', -'lb=mandatorybreak' => '#/445', -'lb=nextline' => '#/449', -'lb=nl' => '#/449', -'lb=nonstarter' => 'Lb/NS', -'lb=ns' => 'Lb/NS', -'lb=nu' => 'SB/NU', -'lb=numeric' => 'SB/NU', -'lb=op' => 'Lb/OP', -'lb=openpunctuation' => 'Lb/OP', -'lb=po' => 'Lb/PO', -'lb=postfixnumeric' => 'Lb/PO', -'lb=pr' => 'Lb/PR', -'lb=prefixnumeric' => 'Lb/PR', -'lb=qu' => 'Lb/QU', -'lb=quotation' => 'Lb/QU', -'lb=regionalindicator' => '#/66', -'lb=ri' => '#/66', -'lb=sa' => 'Lb/SA', -'lb=sg' => '#/450', -'lb=sp' => '#/451', -'lb=space' => '#/451', -'lb=surrogate' => '#/450', -'lb=sy' => '#/452', -'lb=unknown' => 'Lb/XX', -'lb=wj' => '#/453', -'lb=wordjoiner' => '#/453', -'lb=xx' => 'Lb/XX', -'lb=zw' => '#/454', -'lb=zwspace' => '#/454', -'lc' => 'Gc/LC', -'lepc' => '#/572', -'lepcha' => '#/572', -'letter' => 'Gc/L', -'letterlikesymbols' => '#/345', -'letternumber' => 'Gc/Nl', -'limb' => 'Sc/Limb', -'limbu' => 'Sc/Limb', -'lina' => '#/573', -'linb' => 'Sc/Linb', -'lineara' => '#/573', -'linearb' => 'Sc/Linb', -'linearbideograms' => '#/338', -'linearbsyllabary' => '#/339', -'lineseparator' => '#/372', -'lisu' => '#/117', -'ll' => 'Gc/Ll', -'lm' => 'Gc/Lm', -'lo' => 'Gc/Lo', -'loe' => 'InPC/VisualOr', -'loe=f' => '!InPC/VisualOr', -'loe=false' => '!InPC/VisualOr', -'loe=n' => '!InPC/VisualOr', -'loe=no' => '!InPC/VisualOr', -'loe=t' => 'InPC/VisualOr', -'loe=true' => 'InPC/VisualOr', -'loe=y' => 'InPC/VisualOr', -'loe=yes' => 'InPC/VisualOr', -'logicalorderexception' => 'InPC/VisualOr', -'lower' => 'Lower/Y', -'lower=f' => '!Lower/Y', -'lower=false' => '!Lower/Y', -'lower=n' => '!Lower/Y', -'lower=no' => '!Lower/Y', -'lower=t' => 'Lower/Y', -'lower=true' => 'Lower/Y', -'lower=y' => 'Lower/Y', -'lower=yes' => 'Lower/Y', -'lowercase' => 'Lower/Y', -'lowercaseletter' => 'Gc/Ll', -'lowsurrogates' => '#/307', -'lt' => 'Perl/Title', -'lu' => 'Gc/Lu', -'lyci' => '#/574', -'lycian' => '#/574', -'lydi' => '#/575', -'lydian' => '#/575', -'m' => 'Gc/M', -'mahajani' => '#/576', -'mahj' => '#/576', -'mahjong' => '#/180', -'mahjongtiles' => '#/180', -'malayalam' => 'Sc/Mlym', -'mand' => '#/577', -'mandaic' => '#/577', -'mani' => '#/578', -'manichaean' => '#/578', -'mark' => 'Gc/M', -'math' => 'Math/Y', -'math=f' => '!Math/Y', -'math=false' => '!Math/Y', -'math=n' => '!Math/Y', -'math=no' => '!Math/Y', -'math=t' => 'Math/Y', -'math=true' => 'Math/Y', -'math=y' => 'Math/Y', -'math=yes' => 'Math/Y', -'mathalphanum' => '#/299', -'mathematicalalphanumericsymbols' => '#/299', -'mathematicaloperators' => '#/308', -'mathoperators' => '#/308', -'mathsymbol' => 'Gc/Sm', -'mc' => 'Gc/Mc', -'me' => 'Gc/Me', -'meeteimayek' => '#/583', -'meeteimayekext' => '#/316', -'meeteimayekextensions' => '#/316', -'mend' => '#/579', -'mendekikakui' => '#/579', -'merc' => '#/580', -'mero' => '#/355', -'meroiticcursive' => '#/580', -'meroitichieroglyphs' => '#/355', -'miao' => '#/581', -'miscarrows' => '#/261', -'miscellaneousmathematicalsymbolsa' => '#/340', -'miscellaneousmathematicalsymbolsb' => '#/341', -'miscellaneoussymbols' => '#/281', -'miscellaneoussymbolsandarrows' => '#/261', -'miscellaneoussymbolsandpictographs' => '#/327', -'miscellaneoustechnical' => '#/309', -'miscmathsymbolsa' => '#/340', -'miscmathsymbolsb' => '#/341', -'miscpictographs' => '#/327', -'miscsymbols' => '#/281', -'misctechnical' => '#/309', -'mlym' => 'Sc/Mlym', -'mn' => 'Gc/Mn', -'modi' => '#/582', -'modifierletter' => 'Gc/Lm', -'modifierletters' => '#/328', -'modifiersymbol' => 'Gc/Sk', -'modifiertoneletters' => '#/356', -'mong' => 'Sc/Mong', -'mongolian' => 'Sc/Mong', -'mro' => '#/539', -'mroo' => '#/539', -'mtei' => '#/583', -'mult' => 'Sc/Mult', -'multani' => 'Sc/Mult', -'music' => '#/131', -'musicalsymbols' => '#/131', -'myanmar' => '#/584', -'myanmarexta' => '#/282', -'myanmarextb' => '#/283', -'myanmarextendeda' => '#/282', -'myanmarextendedb' => '#/283', -'mymr' => '#/584', -'n' => 'Gc/N', -'nabataean' => '#/585', -'narb' => '#/329', -'nb' => 'Blk/NB', -'nbat' => '#/585', -'nchar' => 'Perl/_PerlNch', -'nchar=f' => '!Perl/_PerlNch', -'nchar=false' => '!Perl/_PerlNch', -'nchar=n' => '!Perl/_PerlNch', -'nchar=no' => '!Perl/_PerlNch', -'nchar=t' => 'Perl/_PerlNch', -'nchar=true' => 'Perl/_PerlNch', -'nchar=y' => 'Perl/_PerlNch', -'nchar=yes' => 'Perl/_PerlNch', -'nd' => 'Gc/Nd', -'newtailue' => 'Sc/Talu', -'nfcqc=m' => 'NFCQC/M', -'nfcqc=maybe' => 'NFCQC/M', -'nfcqc=n' => 'CompEx/Y', -'nfcqc=no' => 'CompEx/Y', -'nfcqc=y' => 'NFCQC/Y', -'nfcqc=yes' => 'NFCQC/Y', -'nfdqc=n' => 'NFDQC/N', -'nfdqc=no' => 'NFDQC/N', -'nfdqc=y' => 'NFDQC/Y', -'nfdqc=yes' => 'NFDQC/Y', -'nfkcqc=m' => 'NFCQC/M', -'nfkcqc=maybe' => 'NFCQC/M', -'nfkcqc=n' => 'NFKCQC/N', -'nfkcqc=no' => 'NFKCQC/N', -'nfkcqc=y' => 'NFKCQC/Y', -'nfkcqc=yes' => 'NFKCQC/Y', -'nfkdqc=n' => 'NFKDQC/N', -'nfkdqc=no' => 'NFKDQC/N', -'nfkdqc=y' => 'NFKDQC/Y', -'nfkdqc=yes' => 'NFKDQC/Y', -'nko' => '#/540', -'nkoo' => '#/540', -'nl' => 'Gc/Nl', -'no' => 'Gc/No', -'noblock' => 'Blk/NB', -'noncharactercodepoint' => 'Perl/_PerlNch', -'nonspacingmark' => 'Gc/Mn', -'nt=de' => 'Gc/Nd', -'nt=decimal' => 'Gc/Nd', -'nt=di' => 'Nt/Di', -'nt=digit' => 'Nt/Di', -'nt=none' => 'Nt/None', -'nt=nu' => 'Nt/Nu', -'nt=numeric' => 'Nt/Nu', -'number' => 'Gc/N', -'numberforms' => '#/284', -'nv=nan' => 'Nt/None', -'ocr' => '#/111', -'ogam' => '#/586', -'ogham' => '#/586', -'olchiki' => '#/184', -'olck' => '#/184', -'oldhungarian' => '#/566', -'olditalic' => '#/567', -'oldnortharabian' => '#/329', -'oldpermic' => '#/590', -'oldpersian' => '#/619', -'oldsoutharabian' => '#/330', -'oldturkic' => '#/587', -'openpunctuation' => 'Gc/Ps', -'opticalcharacterrecognition' => '#/111', -'oriya' => 'Sc/Orya', -'orkh' => '#/587', -'ornamentaldingbats' => '#/350', -'orya' => 'Sc/Orya', -'osma' => '#/588', -'osmanya' => '#/588', -'other' => 'Gc/C', -'otherletter' => 'Gc/Lo', -'othernumber' => 'Gc/No', -'otherpunctuation' => 'Gc/Po', -'othersymbol' => 'Gc/So', -'p' => 'Gc/P', -'pahawhhmong' => 'Sc/Hmng', -'palm' => '#/246', -'palmyrene' => '#/246', -'paragraphseparator' => '#/373', -'patsyn' => 'PatSyn/Y', -'patsyn=f' => '!PatSyn/Y', -'patsyn=false' => '!PatSyn/Y', -'patsyn=n' => '!PatSyn/Y', -'patsyn=no' => '!PatSyn/Y', -'patsyn=t' => 'PatSyn/Y', -'patsyn=true' => 'PatSyn/Y', -'patsyn=y' => 'PatSyn/Y', -'patsyn=yes' => 'PatSyn/Y', -'patternsyntax' => 'PatSyn/Y', -'patternwhitespace' => 'Perl/_PerlPat', -'patws' => 'Perl/_PerlPat', -'patws=f' => '!Perl/_PerlPat', -'patws=false' => '!Perl/_PerlPat', -'patws=n' => '!Perl/_PerlPat', -'patws=no' => '!Perl/_PerlPat', -'patws=t' => 'Perl/_PerlPat', -'patws=true' => 'Perl/_PerlPat', -'patws=y' => 'Perl/_PerlPat', -'patws=yes' => 'Perl/_PerlPat', -'pauc' => '#/589', -'paucinhau' => '#/589', -'pc' => 'WB/EX', -'pd' => 'Gc/Pd', -'pe' => 'Gc/Pe', -'perlspace' => '#/3', -'perlword' => 'Perl/PerlWord', -'perm' => '#/590', -'pf' => 'Gc/Pf', -'phag' => '#/591', -'phagspa' => '#/591', -'phaistos' => '#/220', -'phaistosdisc' => '#/220', -'phli' => '#/592', -'phlp' => '#/593', -'phnx' => '#/594', -'phoenician' => '#/594', -'phoneticext' => '#/286', -'phoneticextensions' => '#/286', -'phoneticextensionssupplement' => '#/317', -'phoneticextsup' => '#/317', -'pi' => 'Gc/Pi', -'playingcards' => '#/302', -'plrd' => '#/581', -'po' => 'Gc/Po', -'posixalnum' => '#/5', -'posixalpha' => '#/6', -'posixblank' => '#/7', -'posixcntrl' => '#/8', -'posixdigit' => '#/9', -'posixgraph' => '#/10', -'posixlower' => '#/11', -'posixprint' => '#/12', -'posixpunct' => 'Perl/PosixPun', -'posixspace' => '#/3', -'posixupper' => '#/13', -'posixword' => 'Perl/PerlWord', -'posixxdigit' => '#/60', -'print' => 'Perl/Print', -'privateuse' => '#/371', -'privateusearea' => '#/112', -'prti' => '#/595', -'ps' => 'Gc/Ps', -'psalterpahlavi' => '#/593', -'pua' => '#/112', -'punct' => 'Gc/P', -'punctuation' => 'Gc/P', -'qaac' => '#/558', -'qaai' => 'Sc/Zinh', -'qmark' => 'QMark/Y', -'qmark=f' => '!QMark/Y', -'qmark=false' => '!QMark/Y', -'qmark=n' => '!QMark/Y', -'qmark=no' => '!QMark/Y', -'qmark=t' => 'QMark/Y', -'qmark=true' => 'QMark/Y', -'qmark=y' => 'QMark/Y', -'qmark=yes' => 'QMark/Y', -'quotationmark' => 'QMark/Y', -'radical' => '#/86', -'radical=f' => '#/!86', -'radical=false' => '#/!86', -'radical=n' => '#/!86', -'radical=no' => '#/!86', -'radical=t' => '#/86', -'radical=true' => '#/86', -'radical=y' => '#/86', -'radical=yes' => '#/86', -'rejang' => '#/596', -'rjng' => '#/596', -'rumi' => '#/120', -'ruminumeralsymbols' => '#/120', -'runic' => '#/597', -'runr' => '#/597', -'s' => 'Gc/S', -'samaritan' => '#/598', -'samr' => '#/598', -'sarb' => '#/330', -'saur' => '#/599', -'saurashtra' => '#/599', -'sb=at' => 'SB/AT', -'sb=aterm' => 'SB/AT', -'sb=cl' => 'SB/CL', -'sb=close' => 'SB/CL', -'sb=cr' => '#/64', -'sb=ex' => 'SB/EX', -'sb=extend' => 'SB/EX', -'sb=fo' => 'SB/FO', -'sb=format' => 'SB/FO', -'sb=le' => 'SB/LE', -'sb=lf' => '#/65', -'sb=lo' => 'SB/LO', -'sb=lower' => 'SB/LO', -'sb=nu' => 'SB/NU', -'sb=numeric' => 'SB/NU', -'sb=oletter' => 'SB/LE', -'sb=other' => 'SB/XX', -'sb=sc' => 'SB/SC', -'sb=scontinue' => 'SB/SC', -'sb=se' => '#/87', -'sb=sep' => '#/87', -'sb=sp' => 'SB/Sp', -'sb=st' => 'SB/ST', -'sb=sterm' => 'SB/ST', -'sb=up' => 'SB/UP', -'sb=upper' => 'SB/UP', -'sb=xx' => 'SB/XX', -'sc' => 'Gc/Sc', -'sc=aghb' => '#/542', -'sc=ahom' => '#/543', -'sc=anatolianhieroglyphs' => '#/565', -'sc=arab' => 'Sc/Arab', -'sc=arabic' => 'Sc/Arab', -'sc=armenian' => 'Sc/Armn', -'sc=armi' => '#/544', -'sc=armn' => 'Sc/Armn', -'sc=avestan' => '#/545', -'sc=avst' => '#/545', -'sc=bali' => '#/546', -'sc=balinese' => '#/546', -'sc=bamu' => '#/547', -'sc=bamum' => '#/547', -'sc=bass' => '#/548', -'sc=bassavah' => '#/548', -'sc=batak' => '#/549', -'sc=batk' => '#/549', -'sc=beng' => 'Sc/Beng', -'sc=bengali' => 'Sc/Beng', -'sc=bopo' => '#/550', -'sc=bopomofo' => '#/550', -'sc=brah' => '#/551', -'sc=brahmi' => '#/551', -'sc=brai' => '#/166', -'sc=braille' => '#/166', -'sc=bugi' => '#/552', -'sc=buginese' => '#/552', -'sc=buhd' => '#/553', -'sc=buhid' => '#/553', -'sc=cakm' => '#/554', -'sc=canadianaboriginal' => '#/555', -'sc=cans' => '#/555', -'sc=cari' => '#/556', -'sc=carian' => '#/556', -'sc=caucasianalbanian' => '#/542', -'sc=chakma' => '#/554', -'sc=cham' => 'Sc/Cham', -'sc=cher' => '#/557', -'sc=cherokee' => '#/557', -'sc=common' => 'Sc/Zyyy', -'sc=copt' => '#/558', -'sc=coptic' => '#/558', -'sc=cprt' => 'Sc/Cprt', -'sc=cuneiform' => 'Sc/Xsux', -'sc=cypriot' => 'Sc/Cprt', -'sc=cyrillic' => 'Sc/Cyrl', -'sc=cyrl' => 'Sc/Cyrl', -'sc=deseret' => '#/172', -'sc=deva' => 'Sc/Deva', -'sc=devanagari' => 'Sc/Deva', -'sc=dsrt' => '#/172', -'sc=dupl' => 'Sc/Dupl', -'sc=duployan' => 'Sc/Dupl', -'sc=egyp' => '#/559', -'sc=egyptianhieroglyphs' => '#/559', -'sc=elba' => '#/560', -'sc=elbasan' => '#/560', -'sc=ethi' => 'Sc/Ethi', -'sc=ethiopic' => 'Sc/Ethi', -'sc=geor' => 'Sc/Geor', -'sc=georgian' => 'Sc/Geor', -'sc=glag' => '#/561', -'sc=glagolitic' => '#/561', -'sc=goth' => '#/562', -'sc=gothic' => '#/562', -'sc=gran' => 'Sc/Gran', -'sc=grantha' => 'Sc/Gran', -'sc=greek' => 'Sc/Grek', -'sc=grek' => 'Sc/Grek', -'sc=gujarati' => 'Sc/Gujr', -'sc=gujr' => 'Sc/Gujr', -'sc=gurmukhi' => 'Sc/Guru', -'sc=guru' => 'Sc/Guru', -'sc=han' => 'Sc/Han', -'sc=hang' => 'Sc/Hang', -'sc=hangul' => 'Sc/Hang', -'sc=hani' => 'Sc/Han', -'sc=hano' => '#/563', -'sc=hanunoo' => '#/563', -'sc=hatr' => '#/564', -'sc=hatran' => '#/564', -'sc=hebr' => 'Sc/Hebr', -'sc=hebrew' => 'Sc/Hebr', -'sc=hira' => 'Sc/Hira', -'sc=hiragana' => 'Sc/Hira', -'sc=hluw' => '#/565', -'sc=hmng' => 'Sc/Hmng', -'sc=hung' => '#/566', -'sc=imperialaramaic' => '#/544', -'sc=inherited' => 'Sc/Zinh', -'sc=inscriptionalpahlavi' => '#/592', -'sc=inscriptionalparthian' => '#/595', -'sc=ital' => '#/567', -'sc=java' => '#/568', -'sc=javanese' => '#/568', -'sc=kaithi' => '#/571', -'sc=kali' => '#/569', -'sc=kana' => 'Sc/Kana', -'sc=kannada' => 'Sc/Knda', -'sc=katakana' => 'Sc/Kana', -'sc=kayahli' => '#/569', -'sc=khar' => 'Sc/Khar', -'sc=kharoshthi' => 'Sc/Khar', -'sc=khmer' => 'Sc/Khmr', -'sc=khmr' => 'Sc/Khmr', -'sc=khoj' => '#/570', -'sc=khojki' => '#/570', -'sc=khudawadi' => '#/603', -'sc=knda' => 'Sc/Knda', -'sc=kthi' => '#/571', -'sc=lana' => 'Sc/Lana', -'sc=lao' => 'Sc/Lao', -'sc=laoo' => 'Sc/Lao', -'sc=latin' => 'Sc/Latn', -'sc=latn' => 'Sc/Latn', -'sc=lepc' => '#/572', -'sc=lepcha' => '#/572', -'sc=limb' => 'Sc/Limb', -'sc=limbu' => 'Sc/Limb', -'sc=lina' => '#/573', -'sc=linb' => 'Sc/Linb', -'sc=lineara' => '#/573', -'sc=linearb' => 'Sc/Linb', -'sc=lisu' => '#/117', -'sc=lyci' => '#/574', -'sc=lycian' => '#/574', -'sc=lydi' => '#/575', -'sc=lydian' => '#/575', -'sc=mahajani' => '#/576', -'sc=mahj' => '#/576', -'sc=malayalam' => 'Sc/Mlym', -'sc=mand' => '#/577', -'sc=mandaic' => '#/577', -'sc=mani' => '#/578', -'sc=manichaean' => '#/578', -'sc=meeteimayek' => '#/583', -'sc=mend' => '#/579', -'sc=mendekikakui' => '#/579', -'sc=merc' => '#/580', -'sc=mero' => '#/355', -'sc=meroiticcursive' => '#/580', -'sc=meroitichieroglyphs' => '#/355', -'sc=miao' => '#/581', -'sc=mlym' => 'Sc/Mlym', -'sc=modi' => '#/582', -'sc=mong' => 'Sc/Mong', -'sc=mongolian' => 'Sc/Mong', -'sc=mro' => '#/539', -'sc=mroo' => '#/539', -'sc=mtei' => '#/583', -'sc=mult' => 'Sc/Mult', -'sc=multani' => 'Sc/Mult', -'sc=myanmar' => '#/584', -'sc=mymr' => '#/584', -'sc=nabataean' => '#/585', -'sc=narb' => '#/329', -'sc=nbat' => '#/585', -'sc=newtailue' => 'Sc/Talu', -'sc=nko' => '#/540', -'sc=nkoo' => '#/540', -'sc=ogam' => '#/586', -'sc=ogham' => '#/586', -'sc=olchiki' => '#/184', -'sc=olck' => '#/184', -'sc=oldhungarian' => '#/566', -'sc=olditalic' => '#/567', -'sc=oldnortharabian' => '#/329', -'sc=oldpermic' => '#/590', -'sc=oldpersian' => '#/619', -'sc=oldsoutharabian' => '#/330', -'sc=oldturkic' => '#/587', -'sc=oriya' => 'Sc/Orya', -'sc=orkh' => '#/587', -'sc=orya' => 'Sc/Orya', -'sc=osma' => '#/588', -'sc=osmanya' => '#/588', -'sc=pahawhhmong' => 'Sc/Hmng', -'sc=palm' => '#/246', -'sc=palmyrene' => '#/246', -'sc=pauc' => '#/589', -'sc=paucinhau' => '#/589', -'sc=perm' => '#/590', -'sc=phag' => '#/591', -'sc=phagspa' => '#/591', -'sc=phli' => '#/592', -'sc=phlp' => '#/593', -'sc=phnx' => '#/594', -'sc=phoenician' => '#/594', -'sc=plrd' => '#/581', -'sc=prti' => '#/595', -'sc=psalterpahlavi' => '#/593', -'sc=qaac' => '#/558', -'sc=qaai' => 'Sc/Zinh', -'sc=rejang' => '#/596', -'sc=rjng' => '#/596', -'sc=runic' => '#/597', -'sc=runr' => '#/597', -'sc=samaritan' => '#/598', -'sc=samr' => '#/598', -'sc=sarb' => '#/330', -'sc=saur' => '#/599', -'sc=saurashtra' => '#/599', -'sc=sgnw' => '#/600', -'sc=sharada' => '#/601', -'sc=shavian' => '#/188', -'sc=shaw' => '#/188', -'sc=shrd' => '#/601', -'sc=sidd' => '#/602', -'sc=siddham' => '#/602', -'sc=signwriting' => '#/600', -'sc=sind' => '#/603', -'sc=sinh' => 'Sc/Sinh', -'sc=sinhala' => 'Sc/Sinh', -'sc=sora' => '#/604', -'sc=sorasompeng' => '#/604', -'sc=sund' => '#/605', -'sc=sundanese' => '#/605', -'sc=sylo' => '#/606', -'sc=sylotinagri' => '#/606', -'sc=syrc' => '#/607', -'sc=syriac' => '#/607', -'sc=tagalog' => '#/613', -'sc=tagb' => '#/608', -'sc=tagbanwa' => '#/608', -'sc=taile' => '#/610', -'sc=taitham' => 'Sc/Lana', -'sc=taiviet' => '#/611', -'sc=takr' => '#/609', -'sc=takri' => '#/609', -'sc=tale' => '#/610', -'sc=talu' => 'Sc/Talu', -'sc=tamil' => 'Sc/Taml', -'sc=taml' => 'Sc/Taml', -'sc=tavt' => '#/611', -'sc=telu' => 'Sc/Telu', -'sc=telugu' => 'Sc/Telu', -'sc=tfng' => '#/612', -'sc=tglg' => '#/613', -'sc=thaa' => '#/614', -'sc=thaana' => '#/614', -'sc=thai' => '#/615', -'sc=tibetan' => 'Sc/Tibt', -'sc=tibt' => 'Sc/Tibt', -'sc=tifinagh' => '#/612', -'sc=tirh' => '#/616', -'sc=tirhuta' => '#/616', -'sc=ugar' => '#/617', -'sc=ugaritic' => '#/617', -'sc=unknown' => 'Sc/Zzzz', -'sc=vai' => '#/541', -'sc=vaii' => '#/541', -'sc=wara' => '#/618', -'sc=warangciti' => '#/618', -'sc=xpeo' => '#/619', -'sc=xsux' => 'Sc/Xsux', -'sc=yi' => '#/538', -'sc=yiii' => '#/538', -'sc=zinh' => 'Sc/Zinh', -'sc=zyyy' => 'Sc/Zyyy', -'sc=zzzz' => 'Sc/Zzzz', -'scx=aghb' => '#/542', -'scx=ahom' => '#/543', -'scx=anatolianhieroglyphs' => '#/565', -'scx=arab' => 'Scx/Arab', -'scx=arabic' => 'Scx/Arab', -'scx=armenian' => 'Scx/Armn', -'scx=armi' => '#/544', -'scx=armn' => 'Scx/Armn', -'scx=avestan' => '#/545', -'scx=avst' => '#/545', -'scx=bali' => '#/546', -'scx=balinese' => '#/546', -'scx=bamu' => '#/547', -'scx=bamum' => '#/547', -'scx=bass' => '#/548', -'scx=bassavah' => '#/548', -'scx=batak' => '#/549', -'scx=batk' => '#/549', -'scx=beng' => 'Scx/Beng', -'scx=bengali' => 'Scx/Beng', -'scx=bopo' => 'Scx/Bopo', -'scx=bopomofo' => 'Scx/Bopo', -'scx=brah' => '#/551', -'scx=brahmi' => '#/551', -'scx=brai' => '#/166', -'scx=braille' => '#/166', -'scx=bugi' => '#/620', -'scx=buginese' => '#/620', -'scx=buhd' => '#/621', -'scx=buhid' => '#/621', -'scx=cakm' => 'Scx/Cakm', -'scx=canadianaboriginal' => '#/555', -'scx=cans' => '#/555', -'scx=cari' => '#/556', -'scx=carian' => '#/556', -'scx=caucasianalbanian' => '#/542', -'scx=chakma' => 'Scx/Cakm', -'scx=cham' => 'Sc/Cham', -'scx=cher' => '#/557', -'scx=cherokee' => '#/557', -'scx=common' => 'Scx/Zyyy', -'scx=copt' => 'Scx/Copt', -'scx=coptic' => 'Scx/Copt', -'scx=cprt' => 'Scx/Cprt', -'scx=cuneiform' => 'Sc/Xsux', -'scx=cypriot' => 'Scx/Cprt', -'scx=cyrillic' => 'Scx/Cyrl', -'scx=cyrl' => 'Scx/Cyrl', -'scx=deseret' => '#/172', -'scx=deva' => 'Scx/Deva', -'scx=devanagari' => 'Scx/Deva', -'scx=dsrt' => '#/172', -'scx=dupl' => 'Scx/Dupl', -'scx=duployan' => 'Scx/Dupl', -'scx=egyp' => '#/559', -'scx=egyptianhieroglyphs' => '#/559', -'scx=elba' => '#/560', -'scx=elbasan' => '#/560', -'scx=ethi' => 'Sc/Ethi', -'scx=ethiopic' => 'Sc/Ethi', -'scx=geor' => 'Scx/Geor', -'scx=georgian' => 'Scx/Geor', -'scx=glag' => 'Scx/Glag', -'scx=glagolitic' => 'Scx/Glag', -'scx=goth' => '#/562', -'scx=gothic' => '#/562', -'scx=gran' => 'Scx/Gran', -'scx=grantha' => 'Scx/Gran', -'scx=greek' => 'Scx/Grek', -'scx=grek' => 'Scx/Grek', -'scx=gujarati' => 'Scx/Gujr', -'scx=gujr' => 'Scx/Gujr', -'scx=gurmukhi' => 'Scx/Guru', -'scx=guru' => 'Scx/Guru', -'scx=han' => 'Scx/Han', -'scx=hang' => 'Scx/Hang', -'scx=hangul' => 'Scx/Hang', -'scx=hani' => 'Scx/Han', -'scx=hano' => '#/622', -'scx=hanunoo' => '#/622', -'scx=hatr' => '#/564', -'scx=hatran' => '#/564', -'scx=hebr' => 'Sc/Hebr', -'scx=hebrew' => 'Sc/Hebr', -'scx=hira' => 'Scx/Hira', -'scx=hiragana' => 'Scx/Hira', -'scx=hluw' => '#/565', -'scx=hmng' => 'Sc/Hmng', -'scx=hung' => '#/566', -'scx=imperialaramaic' => '#/544', -'scx=inherited' => 'Scx/Zinh', -'scx=inscriptionalpahlavi' => '#/592', -'scx=inscriptionalparthian' => '#/595', -'scx=ital' => '#/567', -'scx=java' => '#/623', -'scx=javanese' => '#/623', -'scx=kaithi' => '#/625', -'scx=kali' => '#/178', -'scx=kana' => 'Scx/Kana', -'scx=kannada' => 'Scx/Knda', -'scx=katakana' => 'Scx/Kana', -'scx=kayahli' => '#/178', -'scx=khar' => 'Sc/Khar', -'scx=kharoshthi' => 'Sc/Khar', -'scx=khmer' => 'Sc/Khmr', -'scx=khmr' => 'Sc/Khmr', -'scx=khoj' => '#/624', -'scx=khojki' => '#/624', -'scx=khudawadi' => 'Scx/Sind', -'scx=knda' => 'Scx/Knda', -'scx=kthi' => '#/625', -'scx=lana' => 'Sc/Lana', -'scx=lao' => 'Sc/Lao', -'scx=laoo' => 'Sc/Lao', -'scx=latin' => 'Scx/Latn', -'scx=latn' => 'Scx/Latn', -'scx=lepc' => '#/572', -'scx=lepcha' => '#/572', -'scx=limb' => 'Scx/Limb', -'scx=limbu' => 'Scx/Limb', -'scx=lina' => '#/573', -'scx=linb' => 'Scx/Linb', -'scx=lineara' => '#/573', -'scx=linearb' => 'Scx/Linb', -'scx=lisu' => '#/117', -'scx=lyci' => '#/574', -'scx=lycian' => '#/574', -'scx=lydi' => '#/575', -'scx=lydian' => '#/575', -'scx=mahajani' => '#/626', -'scx=mahj' => '#/626', -'scx=malayalam' => 'Scx/Mlym', -'scx=mand' => '#/627', -'scx=mandaic' => '#/627', -'scx=mani' => '#/628', -'scx=manichaean' => '#/628', -'scx=meeteimayek' => '#/583', -'scx=mend' => '#/579', -'scx=mendekikakui' => '#/579', -'scx=merc' => '#/580', -'scx=mero' => '#/355', -'scx=meroiticcursive' => '#/580', -'scx=meroitichieroglyphs' => '#/355', -'scx=miao' => '#/581', -'scx=mlym' => 'Scx/Mlym', -'scx=modi' => '#/629', -'scx=mong' => 'Scx/Mong', -'scx=mongolian' => 'Scx/Mong', -'scx=mro' => '#/539', -'scx=mroo' => '#/539', -'scx=mtei' => '#/583', -'scx=mult' => 'Scx/Mult', -'scx=multani' => 'Scx/Mult', -'scx=myanmar' => 'Scx/Mymr', -'scx=mymr' => 'Scx/Mymr', -'scx=nabataean' => '#/585', -'scx=narb' => '#/329', -'scx=nbat' => '#/585', -'scx=newtailue' => 'Sc/Talu', -'scx=nko' => '#/540', -'scx=nkoo' => '#/540', -'scx=ogam' => '#/586', -'scx=ogham' => '#/586', -'scx=olchiki' => '#/184', -'scx=olck' => '#/184', -'scx=oldhungarian' => '#/566', -'scx=olditalic' => '#/567', -'scx=oldnortharabian' => '#/329', -'scx=oldpermic' => '#/630', -'scx=oldpersian' => '#/619', -'scx=oldsoutharabian' => '#/330', -'scx=oldturkic' => '#/587', -'scx=oriya' => 'Scx/Orya', -'scx=orkh' => '#/587', -'scx=orya' => 'Scx/Orya', -'scx=osma' => '#/588', -'scx=osmanya' => '#/588', -'scx=pahawhhmong' => 'Sc/Hmng', -'scx=palm' => '#/246', -'scx=palmyrene' => '#/246', -'scx=pauc' => '#/589', -'scx=paucinhau' => '#/589', -'scx=perm' => '#/630', -'scx=phag' => '#/631', -'scx=phagspa' => '#/631', -'scx=phli' => '#/592', -'scx=phlp' => 'Scx/Phlp', -'scx=phnx' => '#/594', -'scx=phoenician' => '#/594', -'scx=plrd' => '#/581', -'scx=prti' => '#/595', -'scx=psalterpahlavi' => 'Scx/Phlp', -'scx=qaac' => 'Scx/Copt', -'scx=qaai' => 'Scx/Zinh', -'scx=rejang' => '#/596', -'scx=rjng' => '#/596', -'scx=runic' => '#/597', -'scx=runr' => '#/597', -'scx=samaritan' => '#/598', -'scx=samr' => '#/598', -'scx=sarb' => '#/330', -'scx=saur' => '#/599', -'scx=saurashtra' => '#/599', -'scx=sgnw' => '#/600', -'scx=sharada' => 'Scx/Shrd', -'scx=shavian' => '#/188', -'scx=shaw' => '#/188', -'scx=shrd' => 'Scx/Shrd', -'scx=sidd' => '#/602', -'scx=siddham' => '#/602', -'scx=signwriting' => '#/600', -'scx=sind' => 'Scx/Sind', -'scx=sinh' => 'Scx/Sinh', -'scx=sinhala' => 'Scx/Sinh', -'scx=sora' => '#/604', -'scx=sorasompeng' => '#/604', -'scx=sund' => '#/605', -'scx=sundanese' => '#/605', -'scx=sylo' => '#/632', -'scx=sylotinagri' => '#/632', -'scx=syrc' => 'Scx/Syrc', -'scx=syriac' => 'Scx/Syrc', -'scx=tagalog' => '#/634', -'scx=tagb' => 'Scx/Tagb', -'scx=tagbanwa' => 'Scx/Tagb', -'scx=taile' => '#/633', -'scx=taitham' => 'Sc/Lana', -'scx=taiviet' => '#/611', -'scx=takr' => 'Scx/Takr', -'scx=takri' => 'Scx/Takr', -'scx=tale' => '#/633', -'scx=talu' => 'Sc/Talu', -'scx=tamil' => 'Scx/Taml', -'scx=taml' => 'Scx/Taml', -'scx=tavt' => '#/611', -'scx=telu' => 'Scx/Telu', -'scx=telugu' => 'Scx/Telu', -'scx=tfng' => '#/612', -'scx=tglg' => '#/634', -'scx=thaa' => 'Scx/Thaa', -'scx=thaana' => 'Scx/Thaa', -'scx=thai' => '#/615', -'scx=tibetan' => 'Sc/Tibt', -'scx=tibt' => 'Sc/Tibt', -'scx=tifinagh' => '#/612', -'scx=tirh' => 'Scx/Tirh', -'scx=tirhuta' => 'Scx/Tirh', -'scx=ugar' => '#/617', -'scx=ugaritic' => '#/617', -'scx=unknown' => 'Sc/Zzzz', -'scx=vai' => '#/541', -'scx=vaii' => '#/541', -'scx=wara' => '#/618', -'scx=warangciti' => '#/618', -'scx=xpeo' => '#/619', -'scx=xsux' => 'Sc/Xsux', -'scx=yi' => 'Scx/Yi', -'scx=yiii' => 'Scx/Yi', -'scx=zinh' => 'Scx/Zinh', -'scx=zyyy' => 'Scx/Zyyy', -'scx=zzzz' => 'Sc/Zzzz', -'sd' => 'SD/Y', -'sd=f' => '!SD/Y', -'sd=false' => '!SD/Y', -'sd=n' => '!SD/Y', -'sd=no' => '!SD/Y', -'sd=t' => 'SD/Y', -'sd=true' => 'SD/Y', -'sd=y' => 'SD/Y', -'sd=yes' => 'SD/Y', -'separator' => 'Gc/Z', -'sgnw' => '#/600', -'sharada' => '#/601', -'shavian' => '#/188', -'shaw' => '#/188', -'shorthandformatcontrols' => '#/365', -'shrd' => '#/601', -'sidd' => '#/602', -'siddham' => '#/602', -'signwriting' => '#/600', -'sind' => '#/603', -'sinh' => 'Sc/Sinh', -'sinhala' => 'Sc/Sinh', -'sinhalaarchaicnumbers' => '#/360', -'sk' => 'Gc/Sk', -'sm' => 'Gc/Sm', -'smallforms' => '#/265', -'smallformvariants' => '#/265', -'so' => 'Gc/So', -'softdotted' => 'SD/Y', -'sora' => '#/604', -'sorasompeng' => '#/604', -'space' => 'Perl/SpacePer', -'spaceperl' => 'Perl/SpacePer', -'spaceseparator' => 'Gc/Zs', -'spacingmark' => 'Gc/Mc', -'spacingmodifierletters' => '#/328', -'specials' => '#/221', -'sterm' => 'STerm/Y', -'sterm=f' => '!STerm/Y', -'sterm=false' => '!STerm/Y', -'sterm=n' => '!STerm/Y', -'sterm=no' => '!STerm/Y', -'sterm=t' => 'STerm/Y', -'sterm=true' => 'STerm/Y', -'sterm=y' => 'STerm/Y', -'sterm=yes' => 'STerm/Y', -'sund' => '#/605', -'sundanese' => '#/605', -'sundanesesup' => '#/303', -'sundanesesupplement' => '#/303', -'suparrowsa' => '#/266', -'suparrowsb' => '#/267', -'suparrowsc' => '#/268', -'superandsub' => '#/289', -'superscriptsandsubscripts' => '#/289', -'supmathoperators' => '#/342', -'supplementalarrowsa' => '#/266', -'supplementalarrowsb' => '#/267', -'supplementalarrowsc' => '#/268', -'supplementalmathematicaloperators' => '#/342', -'supplementalpunctuation' => '#/319', -'supplementalsymbolsandpictographs' => '#/366', -'supplementaryprivateuseareaa' => '#/191', -'supplementaryprivateuseareab' => '#/192', -'suppuaa' => '#/191', -'suppuab' => '#/192', -'suppunctuation' => '#/319', -'supsymbolsandpictographs' => '#/366', -'surrogate' => '#/14', -'suttonsignwriting' => '#/346', -'sylo' => '#/606', -'sylotinagri' => '#/606', -'symbol' => 'Gc/S', -'syrc' => '#/607', -'syriac' => '#/607', -'tagalog' => '#/613', -'tagb' => '#/608', -'tagbanwa' => '#/608', -'tags' => '#/121', -'taile' => '#/610', -'taitham' => 'Sc/Lana', -'taiviet' => '#/611', -'taixuanjing' => '#/291', -'taixuanjingsymbols' => '#/291', -'takr' => '#/609', -'takri' => '#/609', -'tale' => '#/610', -'talu' => 'Sc/Talu', -'tamil' => 'Sc/Taml', -'taml' => 'Sc/Taml', -'tavt' => '#/611', -'telu' => 'Sc/Telu', -'telugu' => 'Sc/Telu', -'term' => 'Term/Y', -'term=f' => '!Term/Y', -'term=false' => '!Term/Y', -'term=n' => '!Term/Y', -'term=no' => '!Term/Y', -'term=t' => 'Term/Y', -'term=true' => 'Term/Y', -'term=y' => 'Term/Y', -'term=yes' => 'Term/Y', -'terminalpunctuation' => 'Term/Y', -'tfng' => '#/612', -'tglg' => '#/613', -'thaa' => '#/614', -'thaana' => '#/614', -'thai' => '#/615', -'tibetan' => 'Sc/Tibt', -'tibt' => 'Sc/Tibt', -'tifinagh' => '#/612', -'tirh' => '#/616', -'tirhuta' => '#/616', -'title' => 'Perl/Title', -'titlecase' => 'Perl/Title', -'titlecaseletter' => 'Perl/Title', -'transportandmap' => '#/331', -'transportandmapsymbols' => '#/331', -'ucas' => '#/123', -'ucasext' => '#/198', -'ugar' => '#/617', -'ugaritic' => '#/617', -'uideo' => 'UIdeo/Y', -'uideo=f' => '!UIdeo/Y', -'uideo=false' => '!UIdeo/Y', -'uideo=n' => '!UIdeo/Y', -'uideo=no' => '!UIdeo/Y', -'uideo=t' => 'UIdeo/Y', -'uideo=true' => 'UIdeo/Y', -'uideo=y' => 'UIdeo/Y', -'uideo=yes' => 'UIdeo/Y', -'unassigned' => 'Gc/Cn', -'unicode' => '#/2', -'unifiedcanadianaboriginalsyllabics' => '#/123', -'unifiedcanadianaboriginalsyllabicsextended' => '#/198', -'unifiedideograph' => 'UIdeo/Y', -'unknown' => 'Sc/Zzzz', -'upper' => 'Upper/Y', -'upper=f' => '!Upper/Y', -'upper=false' => '!Upper/Y', -'upper=n' => '!Upper/Y', -'upper=no' => '!Upper/Y', -'upper=t' => 'Upper/Y', -'upper=true' => 'Upper/Y', -'upper=y' => 'Upper/Y', -'upper=yes' => 'Upper/Y', -'uppercase' => 'Upper/Y', -'uppercaseletter' => 'Gc/Lu', -'vai' => '#/541', -'vaii' => '#/541', -'variationselector' => '#/88', -'variationselectors' => '#/105', -'variationselectorssupplement' => '#/138', -'vedicext' => '#/225', -'vedicextensions' => '#/225', -'verticalforms' => '#/310', -'vertspace' => '#/4', -'vs' => '#/88', -'vs=f' => '#/!88', -'vs=false' => '#/!88', -'vs=n' => '#/!88', -'vs=no' => '#/!88', -'vs=t' => '#/88', -'vs=true' => '#/88', -'vs=y' => '#/88', -'vs=yes' => '#/88', -'vssup' => '#/138', -'wara' => '#/618', -'warangciti' => '#/618', -'wb=aletter' => 'WB/LE', -'wb=cr' => '#/64', -'wb=doublequote' => '#/89', -'wb=dq' => '#/89', -'wb=ex' => 'WB/EX', -'wb=extend' => 'SB/EX', -'wb=extendnumlet' => 'WB/EX', -'wb=fo' => 'WB/FO', -'wb=format' => 'WB/FO', -'wb=hebrewletter' => 'WB/HL', -'wb=hl' => 'WB/HL', -'wb=ka' => 'WB/KA', -'wb=katakana' => 'WB/KA', -'wb=le' => 'WB/LE', -'wb=lf' => '#/65', -'wb=mb' => 'WB/MB', -'wb=midletter' => 'WB/ML', -'wb=midnum' => 'WB/MN', -'wb=midnumlet' => 'WB/MB', -'wb=ml' => 'WB/ML', -'wb=mn' => 'WB/MN', -'wb=newline' => '#/90', -'wb=nl' => '#/90', -'wb=nu' => 'WB/NU', -'wb=numeric' => 'WB/NU', -'wb=other' => 'WB/XX', -'wb=regionalindicator' => '#/66', -'wb=ri' => '#/66', -'wb=singlequote' => '#/91', -'wb=sq' => '#/91', -'wb=xx' => 'WB/XX', -'whitespace' => 'Perl/SpacePer', -'word' => 'Perl/Word', -'wspace' => 'Perl/SpacePer', -'wspace=f' => '!Perl/SpacePer', -'wspace=false' => '!Perl/SpacePer', -'wspace=n' => '!Perl/SpacePer', -'wspace=no' => '!Perl/SpacePer', -'wspace=t' => 'Perl/SpacePer', -'wspace=true' => 'Perl/SpacePer', -'wspace=y' => 'Perl/SpacePer', -'wspace=yes' => 'Perl/SpacePer', -'xdigit' => 'Hex/Y', -'xidc' => 'XIDC/Y', -'xidc=f' => '!XIDC/Y', -'xidc=false' => '!XIDC/Y', -'xidc=n' => '!XIDC/Y', -'xidc=no' => '!XIDC/Y', -'xidc=t' => 'XIDC/Y', -'xidc=true' => 'XIDC/Y', -'xidc=y' => 'XIDC/Y', -'xidc=yes' => 'XIDC/Y', -'xidcontinue' => 'XIDC/Y', -'xids' => 'XIDS/Y', -'xids=f' => '!XIDS/Y', -'xids=false' => '!XIDS/Y', -'xids=n' => '!XIDS/Y', -'xids=no' => '!XIDS/Y', -'xids=t' => 'XIDS/Y', -'xids=true' => 'XIDS/Y', -'xids=y' => 'XIDS/Y', -'xids=yes' => 'XIDS/Y', -'xidstart' => 'XIDS/Y', -'xpeo' => '#/619', -'xperlspace' => 'Perl/SpacePer', -'xposixalnum' => 'Perl/Alnum', -'xposixalpha' => 'Alpha/Y', -'xposixblank' => 'Perl/Blank', -'xposixcntrl' => '#/370', -'xposixdigit' => 'Gc/Nd', -'xposixgraph' => 'Perl/Graph', -'xposixlower' => 'Lower/Y', -'xposixprint' => 'Perl/Print', -'xposixpunct' => 'Perl/XPosixPu', -'xposixspace' => 'Perl/SpacePer', -'xposixupper' => 'Upper/Y', -'xposixword' => 'Perl/Word', -'xposixxdigit' => 'Hex/Y', -'xsux' => 'Sc/Xsux', -'yi' => '#/538', -'yiii' => '#/538', -'yijing' => '#/163', -'yijinghexagramsymbols' => '#/163', -'yiradicals' => '#/270', -'yisyllables' => '#/292', -'z' => 'Gc/Z', -'zinh' => 'Sc/Zinh', -'zl' => '#/372', -'zp' => '#/373', -'zs' => 'Gc/Zs', -'zyyy' => 'Sc/Zyyy', -'zzzz' => 'Sc/Zzzz', -); - -# Maps floating point to fractional form -%utf8::nv_floating_to_rational = ( -'-0.5' => '-1/2', -'0.0625' => '1/16', -'0.0833333333333333' => '1/12', -'0.1' => '1/10', -'0.111111111111111' => '1/9', -'0.125' => '1/8', -'0.142857142857143' => '1/7', -'0.166666666666667' => '1/6', -'0.1875' => '3/16', -'0.2' => '1/5', -'0.25' => '1/4', -'0.333333333333333' => '1/3', -'0.375' => '3/8', -'0.4' => '2/5', -'0.416666666666667' => '5/12', -'0.5' => '1/2', -'0.583333333333333' => '7/12', -'0.6' => '3/5', -'0.625' => '5/8', -'0.666666666666667' => '2/3', -'0.75' => '3/4', -'0.8' => '4/5', -'0.833333333333333' => '5/6', -'0.875' => '7/8', -'0.916666666666667' => '11/12', -'1.5' => '3/2', -'2.5' => '5/2', -'3.5' => '7/2', -'4.5' => '9/2', -'5.5' => '11/2', -'6.5' => '13/2', -'7.5' => '15/2', -'8.5' => '17/2', -); - -# If a floating point number doesn't have enough digits in it to get this -# close to a fraction, it isn't considered to be that fraction even if all the -# digits it does have match. -$utf8::max_floating_slop = 0.001; - -# Deprecated tables to generate a warning for. The key is the file containing -# the table, so as to avoid duplication, as many property names can map to the -# file, but we only need one entry for all of them. -%utf8::why_deprecated = ( -'#/450' => 'Deprecated by Unicode because surrogates should never appear in well-formed text, and therefore shouldn\'t be the basis for line breaking', -'Hyphen/T' => 'Supplanted by Line_Break property values; see www.unicode.org/reports/tr14', -); - -# A few properties have different behavior under /i matching. This maps -# those to substitute files to use under /i. -%utf8::caseless_equivalent = ( -'gc=ll' => 'Gc/LC', -'gc=lowercaseletter' => 'Gc/LC', -'gc=lt' => 'Gc/LC', -'gc=lu' => 'Gc/LC', -'gc=titlecaseletter' => 'Gc/LC', -'gc=uppercaseletter' => 'Gc/LC', -'isll' => 'Gc/LC', -'islower' => 'Cased/Y', -'islowercase' => 'Cased/Y', -'islowercaseletter' => 'Gc/LC', -'islt' => 'Gc/LC', -'islu' => 'Gc/LC', -'isposixlower' => '#/6', -'isposixupper' => '#/6', -'istitle' => 'Cased/Y', -'istitlecase' => 'Cased/Y', -'istitlecaseletter' => 'Gc/LC', -'isupper' => 'Cased/Y', -'isuppercase' => 'Cased/Y', -'isuppercaseletter' => 'Gc/LC', -'isxposixlower' => 'Cased/Y', -'isxposixupper' => 'Cased/Y', -'ll' => 'Gc/LC', -'lower' => 'Cased/Y', -'lower=f' => '!Cased/Y', -'lower=false' => '!Cased/Y', -'lower=n' => '!Cased/Y', -'lower=no' => '!Cased/Y', -'lower=t' => 'Cased/Y', -'lower=true' => 'Cased/Y', -'lower=y' => 'Cased/Y', -'lower=yes' => 'Cased/Y', -'lowercase' => 'Cased/Y', -'lowercaseletter' => 'Gc/LC', -'lt' => 'Gc/LC', -'lu' => 'Gc/LC', -'posixlower' => '#/6', -'posixupper' => '#/6', -'title' => 'Cased/Y', -'titlecase' => 'Cased/Y', -'titlecaseletter' => 'Gc/LC', -'upper' => 'Cased/Y', -'upper=f' => '!Cased/Y', -'upper=false' => '!Cased/Y', -'upper=n' => '!Cased/Y', -'upper=no' => '!Cased/Y', -'upper=t' => 'Cased/Y', -'upper=true' => 'Cased/Y', -'upper=y' => 'Cased/Y', -'upper=yes' => 'Cased/Y', -'uppercase' => 'Cased/Y', -'uppercaseletter' => 'Gc/LC', -'xposixlower' => 'Cased/Y', -'xposixupper' => 'Cased/Y', -); - -# Property names to mapping files -%utf8::loose_property_to_file_of = ( -'age' => 'To/Age', -'bc' => 'To/Bc', -'bidiclass' => 'To/Bc', -'bidimirroringglyph' => 'To/Bmg', -'bidipairedbracket' => 'To/Bpb', -'bidipairedbrackettype' => 'To/Bpt', -'bmg' => 'To/Bmg', -'bpb' => 'To/Bpb', -'bpt' => 'To/Bpt', -'canonicalcombiningclass' => 'CombiningClass', -'casefolding' => 'To/Cf', -'category' => 'To/Gc', -'ccc' => 'CombiningClass', -'cf' => 'To/Cf', -'ea' => 'To/Ea', -'eastasianwidth' => 'To/Ea', -'gc' => 'To/Gc', -'gcb' => 'To/GCB', -'generalcategory' => 'To/Gc', -'graphemeclusterbreak' => 'To/GCB', -'hangulsyllabletype' => 'To/Hst', -'hst' => 'To/Hst', -'indicpositionalcategory' => 'To/InPC', -'indicsyllabiccategory' => 'To/InSC', -'inpc' => 'To/InPC', -'insc' => 'To/InSC', -'isc' => 'To/Isc', -'isocomment' => 'To/Isc', -'jg' => 'To/Jg', -'joininggroup' => 'To/Jg', -'joiningtype' => 'To/Jt', -'jt' => 'To/Jt', -'lb' => 'To/Lb', -'lc' => 'To/Lc', -'linebreak' => 'To/Lb', -'lowercasemapping' => 'To/Lc', -'na1' => 'To/Na1', -'namealias' => 'To/NameAlia', -'nfcqc' => 'To/NFCQC', -'nfcquickcheck' => 'To/NFCQC', -'nfdqc' => 'To/NFDQC', -'nfdquickcheck' => 'To/NFDQC', -'nfkccasefold' => 'To/NFKCCF', -'nfkccf' => 'To/NFKCCF', -'nfkcqc' => 'To/NFKCQC', -'nfkcquickcheck' => 'To/NFKCQC', -'nfkdqc' => 'To/NFKDQC', -'nfkdquickcheck' => 'To/NFKDQC', -'nt' => 'To/Nt', -'numerictype' => 'To/Nt', -'numericvalue' => 'To/Nv', -'nv' => 'To/Nv', -'perldecimaldigit' => 'To/PerlDeci', -'sb' => 'To/SB', -'sc' => 'To/Sc', -'script' => 'To/Sc', -'scriptextensions' => 'To/Scx', -'scx' => 'To/Scx', -'sentencebreak' => 'To/SB', -'tc' => 'To/Tc', -'titlecasemapping' => 'To/Tc', -'uc' => 'To/Uc', -'unicode1name' => 'To/Na1', -'uppercasemapping' => 'To/Uc', -'wb' => 'To/WB', -'wordbreak' => 'To/WB', -); - -# Property names to mapping files -%utf8::strict_property_to_file_of = ( -'_perl_gcb' => 'To/GCB', -'_perl_lb' => 'To/_PerlLB', -'_perl_name_alias' => 'To/NameAlia', -'_perl_sb' => 'To/SB', -'_perl_wb' => 'To/_PerlWB', -); - -# Files to the swash names within them. -%utf8::file_to_swash_name = ( -'CombiningClass' => 'ToCombiningClass', -'To/_PerlLB' => 'To_PerlLB', -'To/_PerlWB' => 'To_PerlWB', -'To/Age' => 'ToAge', -'To/Bc' => 'ToBc', -'To/Bmg' => 'ToBmg', -'To/Bpb' => 'ToBpb', -'To/Bpt' => 'ToBpt', -'To/Cf' => 'ToCf', -'To/Ea' => 'ToEa', -'To/Gc' => 'ToGc', -'To/GCB' => 'ToGCB', -'To/Hst' => 'ToHst', -'To/InPC' => 'ToInPC', -'To/InSC' => 'ToInSC', -'To/Isc' => 'ToIsc', -'To/Jg' => 'ToJg', -'To/Jt' => 'ToJt', -'To/Lb' => 'ToLb', -'To/Lc' => 'ToLc', -'To/Na1' => 'ToNa1', -'To/NameAlia' => 'ToNameAlias', -'To/NFCQC' => 'ToNFCQC', -'To/NFDQC' => 'ToNFDQC', -'To/NFKCCF' => 'ToNFKCCF', -'To/NFKCQC' => 'ToNFKCQC', -'To/NFKDQC' => 'ToNFKDQC', -'To/Nt' => 'ToNt', -'To/Nv' => 'ToNv', -'To/PerlDeci' => 'ToPerlDecimalDigit', -'To/SB' => 'ToSB', -'To/Sc' => 'ToSc', -'To/Scx' => 'ToScx', -'To/Tc' => 'ToTc', -'To/Uc' => 'ToUc', -'To/WB' => 'ToWB', -); - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/Name.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/Name.pl deleted file mode 100644 index 298d8add..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/Name.pl +++ /dev/null @@ -1,29016 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -00000 NULL -00000 NUL -00001 START OF HEADING -00001 SOH -00002 START OF TEXT -00002 STX -00003 END OF TEXT -00003 ETX -00004 END OF TRANSMISSION -00004 EOT -00005 ENQUIRY -00005 ENQ -00006 ACKNOWLEDGE -00006 ACK -00007 ALERT -00007 BEL -00008 BACKSPACE -00008 BS -00009 CHARACTER TABULATION -00009 HORIZONTAL TABULATION -00009 HT -00009 TAB -0000A LINE FEED -0000A NEW LINE -0000A END OF LINE -0000A LINE FEED (LF) -0000A EOL -0000A LF -0000A NL -0000B LINE TABULATION -0000B VERTICAL TABULATION -0000B VT -0000C FORM FEED -0000C FORM FEED (FF) -0000C FF -0000D CARRIAGE RETURN -0000D CARRIAGE RETURN (CR) -0000D CR -0000E SHIFT OUT -0000E LOCKING-SHIFT ONE -0000E SO -0000F SHIFT IN -0000F LOCKING-SHIFT ZERO -0000F SI -00010 DATA LINK ESCAPE -00010 DLE -00011 DEVICE CONTROL ONE -00011 DC1 -00012 DEVICE CONTROL TWO -00012 DC2 -00013 DEVICE CONTROL THREE -00013 DC3 -00014 DEVICE CONTROL FOUR -00014 DC4 -00015 NEGATIVE ACKNOWLEDGE -00015 NAK -00016 SYNCHRONOUS IDLE -00016 SYN -00017 END OF TRANSMISSION BLOCK -00017 ETB -00018 CANCEL -00018 CAN -00019 END OF MEDIUM -00019 EOM -0001A SUBSTITUTE -0001A SUB -0001B ESCAPE -0001B ESC -0001C INFORMATION SEPARATOR FOUR -0001C FILE SEPARATOR -0001C FS -0001D INFORMATION SEPARATOR THREE -0001D GROUP SEPARATOR -0001D GS -0001E INFORMATION SEPARATOR TWO -0001E RECORD SEPARATOR -0001E RS -0001F INFORMATION SEPARATOR ONE -0001F UNIT SEPARATOR -0001F US -00020 SPACE -00020 SP -00021 EXCLAMATION MARK -00022 QUOTATION MARK -00023 NUMBER SIGN -00024 DOLLAR SIGN -00025 PERCENT SIGN -00026 AMPERSAND -00027 APOSTROPHE -00028 LEFT PARENTHESIS -00029 RIGHT PARENTHESIS -0002A ASTERISK -0002B PLUS SIGN -0002C COMMA -0002D HYPHEN-MINUS -0002E FULL STOP -0002F SOLIDUS -00030 DIGIT ZERO -00031 DIGIT ONE -00032 DIGIT TWO -00033 DIGIT THREE -00034 DIGIT FOUR -00035 DIGIT FIVE -00036 DIGIT SIX -00037 DIGIT SEVEN -00038 DIGIT EIGHT -00039 DIGIT NINE -0003A COLON -0003B SEMICOLON -0003C LESS-THAN SIGN -0003D EQUALS SIGN -0003E GREATER-THAN SIGN -0003F QUESTION MARK -00040 COMMERCIAL AT -00041 LATIN CAPITAL LETTER A -00042 LATIN CAPITAL LETTER B -00043 LATIN CAPITAL LETTER C -00044 LATIN CAPITAL LETTER D -00045 LATIN CAPITAL LETTER E -00046 LATIN CAPITAL LETTER F -00047 LATIN CAPITAL LETTER G -00048 LATIN CAPITAL LETTER H -00049 LATIN CAPITAL LETTER I -0004A LATIN CAPITAL LETTER J -0004B LATIN CAPITAL LETTER K -0004C LATIN CAPITAL LETTER L -0004D LATIN CAPITAL LETTER M -0004E LATIN CAPITAL LETTER N -0004F LATIN CAPITAL LETTER O -00050 LATIN CAPITAL LETTER P -00051 LATIN CAPITAL LETTER Q -00052 LATIN CAPITAL LETTER R -00053 LATIN CAPITAL LETTER S -00054 LATIN CAPITAL LETTER T -00055 LATIN CAPITAL LETTER U -00056 LATIN CAPITAL LETTER V -00057 LATIN CAPITAL LETTER W -00058 LATIN CAPITAL LETTER X -00059 LATIN CAPITAL LETTER Y -0005A LATIN CAPITAL LETTER Z -0005B LEFT SQUARE BRACKET -0005C REVERSE SOLIDUS -0005D RIGHT SQUARE BRACKET -0005E CIRCUMFLEX ACCENT -0005F LOW LINE -00060 GRAVE ACCENT -00061 LATIN SMALL LETTER A -00062 LATIN SMALL LETTER B -00063 LATIN SMALL LETTER C -00064 LATIN SMALL LETTER D -00065 LATIN SMALL LETTER E -00066 LATIN SMALL LETTER F -00067 LATIN SMALL LETTER G -00068 LATIN SMALL LETTER H -00069 LATIN SMALL LETTER I -0006A LATIN SMALL LETTER J -0006B LATIN SMALL LETTER K -0006C LATIN SMALL LETTER L -0006D LATIN SMALL LETTER M -0006E LATIN SMALL LETTER N -0006F LATIN SMALL LETTER O -00070 LATIN SMALL LETTER P -00071 LATIN SMALL LETTER Q -00072 LATIN SMALL LETTER R -00073 LATIN SMALL LETTER S -00074 LATIN SMALL LETTER T -00075 LATIN SMALL LETTER U -00076 LATIN SMALL LETTER V -00077 LATIN SMALL LETTER W -00078 LATIN SMALL LETTER X -00079 LATIN SMALL LETTER Y -0007A LATIN SMALL LETTER Z -0007B LEFT CURLY BRACKET -0007C VERTICAL LINE -0007D RIGHT CURLY BRACKET -0007E TILDE -0007F DELETE -0007F DEL -00080 PADDING CHARACTER -00080 PAD -00081 HIGH OCTET PRESET -00081 HOP -00082 BREAK PERMITTED HERE -00082 BPH -00083 NO BREAK HERE -00083 NBH -00084 INDEX -00084 IND -00085 NEXT LINE -00085 NEXT LINE (NEL) -00085 NEL -00086 START OF SELECTED AREA -00086 SSA -00087 END OF SELECTED AREA -00087 ESA -00088 CHARACTER TABULATION SET -00088 HORIZONTAL TABULATION SET -00088 HTS -00089 CHARACTER TABULATION WITH JUSTIFICATION -00089 HORIZONTAL TABULATION WITH JUSTIFICATION -00089 HTJ -0008A LINE TABULATION SET -0008A VERTICAL TABULATION SET -0008A VTS -0008B PARTIAL LINE FORWARD -0008B PARTIAL LINE DOWN -0008B PLD -0008C PARTIAL LINE BACKWARD -0008C PARTIAL LINE UP -0008C PLU -0008D REVERSE LINE FEED -0008D REVERSE INDEX -0008D RI -0008E SINGLE SHIFT TWO -0008E SINGLE-SHIFT-2 -0008E SS2 -0008F SINGLE SHIFT THREE -0008F SINGLE-SHIFT-3 -0008F SS3 -00090 DEVICE CONTROL STRING -00090 DCS -00091 PRIVATE USE ONE -00091 PRIVATE USE-1 -00091 PU1 -00092 PRIVATE USE TWO -00092 PRIVATE USE-2 -00092 PU2 -00093 SET TRANSMIT STATE -00093 STS -00094 CANCEL CHARACTER -00094 CCH -00095 MESSAGE WAITING -00095 MW -00096 START OF GUARDED AREA -00096 START OF PROTECTED AREA -00096 SPA -00097 END OF GUARDED AREA -00097 END OF PROTECTED AREA -00097 EPA -00098 START OF STRING -00098 SOS -00099 SINGLE GRAPHIC CHARACTER INTRODUCER -00099 SGC -0009A SINGLE CHARACTER INTRODUCER -0009A SCI -0009B CONTROL SEQUENCE INTRODUCER -0009B CSI -0009C STRING TERMINATOR -0009C ST -0009D OPERATING SYSTEM COMMAND -0009D OSC -0009E PRIVACY MESSAGE -0009E PM -0009F APPLICATION PROGRAM COMMAND -0009F APC -000A0 NO-BREAK SPACE -000A0 NBSP -000A1 INVERTED EXCLAMATION MARK -000A2 CENT SIGN -000A3 POUND SIGN -000A4 CURRENCY SIGN -000A5 YEN SIGN -000A6 BROKEN BAR -000A7 SECTION SIGN -000A8 DIAERESIS -000A9 COPYRIGHT SIGN -000AA FEMININE ORDINAL INDICATOR -000AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -000AC NOT SIGN -000AD SOFT HYPHEN -000AD SHY -000AE REGISTERED SIGN -000AF MACRON -000B0 DEGREE SIGN -000B1 PLUS-MINUS SIGN -000B2 SUPERSCRIPT TWO -000B3 SUPERSCRIPT THREE -000B4 ACUTE ACCENT -000B5 MICRO SIGN -000B6 PILCROW SIGN -000B7 MIDDLE DOT -000B8 CEDILLA -000B9 SUPERSCRIPT ONE -000BA MASCULINE ORDINAL INDICATOR -000BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -000BC VULGAR FRACTION ONE QUARTER -000BD VULGAR FRACTION ONE HALF -000BE VULGAR FRACTION THREE QUARTERS -000BF INVERTED QUESTION MARK -000C0 LATIN CAPITAL LETTER A WITH GRAVE -000C1 LATIN CAPITAL LETTER A WITH ACUTE -000C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX -000C3 LATIN CAPITAL LETTER A WITH TILDE -000C4 LATIN CAPITAL LETTER A WITH DIAERESIS -000C5 LATIN CAPITAL LETTER A WITH RING ABOVE -000C6 LATIN CAPITAL LETTER AE -000C7 LATIN CAPITAL LETTER C WITH CEDILLA -000C8 LATIN CAPITAL LETTER E WITH GRAVE -000C9 LATIN CAPITAL LETTER E WITH ACUTE -000CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX -000CB LATIN CAPITAL LETTER E WITH DIAERESIS -000CC LATIN CAPITAL LETTER I WITH GRAVE -000CD LATIN CAPITAL LETTER I WITH ACUTE -000CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX -000CF LATIN CAPITAL LETTER I WITH DIAERESIS -000D0 LATIN CAPITAL LETTER ETH -000D1 LATIN CAPITAL LETTER N WITH TILDE -000D2 LATIN CAPITAL LETTER O WITH GRAVE -000D3 LATIN CAPITAL LETTER O WITH ACUTE -000D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX -000D5 LATIN CAPITAL LETTER O WITH TILDE -000D6 LATIN CAPITAL LETTER O WITH DIAERESIS -000D7 MULTIPLICATION SIGN -000D8 LATIN CAPITAL LETTER O WITH STROKE -000D9 LATIN CAPITAL LETTER U WITH GRAVE -000DA LATIN CAPITAL LETTER U WITH ACUTE -000DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX -000DC LATIN CAPITAL LETTER U WITH DIAERESIS -000DD LATIN CAPITAL LETTER Y WITH ACUTE -000DE LATIN CAPITAL LETTER THORN -000DF LATIN SMALL LETTER SHARP S -000E0 LATIN SMALL LETTER A WITH GRAVE -000E1 LATIN SMALL LETTER A WITH ACUTE -000E2 LATIN SMALL LETTER A WITH CIRCUMFLEX -000E3 LATIN SMALL LETTER A WITH TILDE -000E4 LATIN SMALL LETTER A WITH DIAERESIS -000E5 LATIN SMALL LETTER A WITH RING ABOVE -000E6 LATIN SMALL LETTER AE -000E7 LATIN SMALL LETTER C WITH CEDILLA -000E8 LATIN SMALL LETTER E WITH GRAVE -000E9 LATIN SMALL LETTER E WITH ACUTE -000EA LATIN SMALL LETTER E WITH CIRCUMFLEX -000EB LATIN SMALL LETTER E WITH DIAERESIS -000EC LATIN SMALL LETTER I WITH GRAVE -000ED LATIN SMALL LETTER I WITH ACUTE -000EE LATIN SMALL LETTER I WITH CIRCUMFLEX -000EF LATIN SMALL LETTER I WITH DIAERESIS -000F0 LATIN SMALL LETTER ETH -000F1 LATIN SMALL LETTER N WITH TILDE -000F2 LATIN SMALL LETTER O WITH GRAVE -000F3 LATIN SMALL LETTER O WITH ACUTE -000F4 LATIN SMALL LETTER O WITH CIRCUMFLEX -000F5 LATIN SMALL LETTER O WITH TILDE -000F6 LATIN SMALL LETTER O WITH DIAERESIS -000F7 DIVISION SIGN -000F8 LATIN SMALL LETTER O WITH STROKE -000F9 LATIN SMALL LETTER U WITH GRAVE -000FA LATIN SMALL LETTER U WITH ACUTE -000FB LATIN SMALL LETTER U WITH CIRCUMFLEX -000FC LATIN SMALL LETTER U WITH DIAERESIS -000FD LATIN SMALL LETTER Y WITH ACUTE -000FE LATIN SMALL LETTER THORN -000FF LATIN SMALL LETTER Y WITH DIAERESIS -00100 LATIN CAPITAL LETTER A WITH MACRON -00101 LATIN SMALL LETTER A WITH MACRON -00102 LATIN CAPITAL LETTER A WITH BREVE -00103 LATIN SMALL LETTER A WITH BREVE -00104 LATIN CAPITAL LETTER A WITH OGONEK -00105 LATIN SMALL LETTER A WITH OGONEK -00106 LATIN CAPITAL LETTER C WITH ACUTE -00107 LATIN SMALL LETTER C WITH ACUTE -00108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX -00109 LATIN SMALL LETTER C WITH CIRCUMFLEX -0010A LATIN CAPITAL LETTER C WITH DOT ABOVE -0010B LATIN SMALL LETTER C WITH DOT ABOVE -0010C LATIN CAPITAL LETTER C WITH CARON -0010D LATIN SMALL LETTER C WITH CARON -0010E LATIN CAPITAL LETTER D WITH CARON -0010F LATIN SMALL LETTER D WITH CARON -00110 LATIN CAPITAL LETTER D WITH STROKE -00111 LATIN SMALL LETTER D WITH STROKE -00112 LATIN CAPITAL LETTER E WITH MACRON -00113 LATIN SMALL LETTER E WITH MACRON -00114 LATIN CAPITAL LETTER E WITH BREVE -00115 LATIN SMALL LETTER E WITH BREVE -00116 LATIN CAPITAL LETTER E WITH DOT ABOVE -00117 LATIN SMALL LETTER E WITH DOT ABOVE -00118 LATIN CAPITAL LETTER E WITH OGONEK -00119 LATIN SMALL LETTER E WITH OGONEK -0011A LATIN CAPITAL LETTER E WITH CARON -0011B LATIN SMALL LETTER E WITH CARON -0011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX -0011D LATIN SMALL LETTER G WITH CIRCUMFLEX -0011E LATIN CAPITAL LETTER G WITH BREVE -0011F LATIN SMALL LETTER G WITH BREVE -00120 LATIN CAPITAL LETTER G WITH DOT ABOVE -00121 LATIN SMALL LETTER G WITH DOT ABOVE -00122 LATIN CAPITAL LETTER G WITH CEDILLA -00123 LATIN SMALL LETTER G WITH CEDILLA -00124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX -00125 LATIN SMALL LETTER H WITH CIRCUMFLEX -00126 LATIN CAPITAL LETTER H WITH STROKE -00127 LATIN SMALL LETTER H WITH STROKE -00128 LATIN CAPITAL LETTER I WITH TILDE -00129 LATIN SMALL LETTER I WITH TILDE -0012A LATIN CAPITAL LETTER I WITH MACRON -0012B LATIN SMALL LETTER I WITH MACRON -0012C LATIN CAPITAL LETTER I WITH BREVE -0012D LATIN SMALL LETTER I WITH BREVE -0012E LATIN CAPITAL LETTER I WITH OGONEK -0012F LATIN SMALL LETTER I WITH OGONEK -00130 LATIN CAPITAL LETTER I WITH DOT ABOVE -00131 LATIN SMALL LETTER DOTLESS I -00132 LATIN CAPITAL LIGATURE IJ -00133 LATIN SMALL LIGATURE IJ -00134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX -00135 LATIN SMALL LETTER J WITH CIRCUMFLEX -00136 LATIN CAPITAL LETTER K WITH CEDILLA -00137 LATIN SMALL LETTER K WITH CEDILLA -00138 LATIN SMALL LETTER KRA -00139 LATIN CAPITAL LETTER L WITH ACUTE -0013A LATIN SMALL LETTER L WITH ACUTE -0013B LATIN CAPITAL LETTER L WITH CEDILLA -0013C LATIN SMALL LETTER L WITH CEDILLA -0013D LATIN CAPITAL LETTER L WITH CARON -0013E LATIN SMALL LETTER L WITH CARON -0013F LATIN CAPITAL LETTER L WITH MIDDLE DOT -00140 LATIN SMALL LETTER L WITH MIDDLE DOT -00141 LATIN CAPITAL LETTER L WITH STROKE -00142 LATIN SMALL LETTER L WITH STROKE -00143 LATIN CAPITAL LETTER N WITH ACUTE -00144 LATIN SMALL LETTER N WITH ACUTE -00145 LATIN CAPITAL LETTER N WITH CEDILLA -00146 LATIN SMALL LETTER N WITH CEDILLA -00147 LATIN CAPITAL LETTER N WITH CARON -00148 LATIN SMALL LETTER N WITH CARON -00149 LATIN SMALL LETTER N PRECEDED BY APOSTROPHE -0014A LATIN CAPITAL LETTER ENG -0014B LATIN SMALL LETTER ENG -0014C LATIN CAPITAL LETTER O WITH MACRON -0014D LATIN SMALL LETTER O WITH MACRON -0014E LATIN CAPITAL LETTER O WITH BREVE -0014F LATIN SMALL LETTER O WITH BREVE -00150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE -00151 LATIN SMALL LETTER O WITH DOUBLE ACUTE -00152 LATIN CAPITAL LIGATURE OE -00153 LATIN SMALL LIGATURE OE -00154 LATIN CAPITAL LETTER R WITH ACUTE -00155 LATIN SMALL LETTER R WITH ACUTE -00156 LATIN CAPITAL LETTER R WITH CEDILLA -00157 LATIN SMALL LETTER R WITH CEDILLA -00158 LATIN CAPITAL LETTER R WITH CARON -00159 LATIN SMALL LETTER R WITH CARON -0015A LATIN CAPITAL LETTER S WITH ACUTE -0015B LATIN SMALL LETTER S WITH ACUTE -0015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX -0015D LATIN SMALL LETTER S WITH CIRCUMFLEX -0015E LATIN CAPITAL LETTER S WITH CEDILLA -0015F LATIN SMALL LETTER S WITH CEDILLA -00160 LATIN CAPITAL LETTER S WITH CARON -00161 LATIN SMALL LETTER S WITH CARON -00162 LATIN CAPITAL LETTER T WITH CEDILLA -00163 LATIN SMALL LETTER T WITH CEDILLA -00164 LATIN CAPITAL LETTER T WITH CARON -00165 LATIN SMALL LETTER T WITH CARON -00166 LATIN CAPITAL LETTER T WITH STROKE -00167 LATIN SMALL LETTER T WITH STROKE -00168 LATIN CAPITAL LETTER U WITH TILDE -00169 LATIN SMALL LETTER U WITH TILDE -0016A LATIN CAPITAL LETTER U WITH MACRON -0016B LATIN SMALL LETTER U WITH MACRON -0016C LATIN CAPITAL LETTER U WITH BREVE -0016D LATIN SMALL LETTER U WITH BREVE -0016E LATIN CAPITAL LETTER U WITH RING ABOVE -0016F LATIN SMALL LETTER U WITH RING ABOVE -00170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE -00171 LATIN SMALL LETTER U WITH DOUBLE ACUTE -00172 LATIN CAPITAL LETTER U WITH OGONEK -00173 LATIN SMALL LETTER U WITH OGONEK -00174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX -00175 LATIN SMALL LETTER W WITH CIRCUMFLEX -00176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX -00177 LATIN SMALL LETTER Y WITH CIRCUMFLEX -00178 LATIN CAPITAL LETTER Y WITH DIAERESIS -00179 LATIN CAPITAL LETTER Z WITH ACUTE -0017A LATIN SMALL LETTER Z WITH ACUTE -0017B LATIN CAPITAL LETTER Z WITH DOT ABOVE -0017C LATIN SMALL LETTER Z WITH DOT ABOVE -0017D LATIN CAPITAL LETTER Z WITH CARON -0017E LATIN SMALL LETTER Z WITH CARON -0017F LATIN SMALL LETTER LONG S -00180 LATIN SMALL LETTER B WITH STROKE -00181 LATIN CAPITAL LETTER B WITH HOOK -00182 LATIN CAPITAL LETTER B WITH TOPBAR -00183 LATIN SMALL LETTER B WITH TOPBAR -00184 LATIN CAPITAL LETTER TONE SIX -00185 LATIN SMALL LETTER TONE SIX -00186 LATIN CAPITAL LETTER OPEN O -00187 LATIN CAPITAL LETTER C WITH HOOK -00188 LATIN SMALL LETTER C WITH HOOK -00189 LATIN CAPITAL LETTER AFRICAN D -0018A LATIN CAPITAL LETTER D WITH HOOK -0018B LATIN CAPITAL LETTER D WITH TOPBAR -0018C LATIN SMALL LETTER D WITH TOPBAR -0018D LATIN SMALL LETTER TURNED DELTA -0018E LATIN CAPITAL LETTER REVERSED E -0018F LATIN CAPITAL LETTER SCHWA -00190 LATIN CAPITAL LETTER OPEN E -00191 LATIN CAPITAL LETTER F WITH HOOK -00192 LATIN SMALL LETTER F WITH HOOK -00193 LATIN CAPITAL LETTER G WITH HOOK -00194 LATIN CAPITAL LETTER GAMMA -00195 LATIN SMALL LETTER HV -00196 LATIN CAPITAL LETTER IOTA -00197 LATIN CAPITAL LETTER I WITH STROKE -00198 LATIN CAPITAL LETTER K WITH HOOK -00199 LATIN SMALL LETTER K WITH HOOK -0019A LATIN SMALL LETTER L WITH BAR -0019B LATIN SMALL LETTER LAMBDA WITH STROKE -0019C LATIN CAPITAL LETTER TURNED M -0019D LATIN CAPITAL LETTER N WITH LEFT HOOK -0019E LATIN SMALL LETTER N WITH LONG RIGHT LEG -0019F LATIN CAPITAL LETTER O WITH MIDDLE TILDE -001A0 LATIN CAPITAL LETTER O WITH HORN -001A1 LATIN SMALL LETTER O WITH HORN -001A2 LATIN CAPITAL LETTER GHA -001A2 LATIN CAPITAL LETTER OI -001A3 LATIN SMALL LETTER GHA -001A3 LATIN SMALL LETTER OI -001A4 LATIN CAPITAL LETTER P WITH HOOK -001A5 LATIN SMALL LETTER P WITH HOOK -001A6 LATIN LETTER YR -001A7 LATIN CAPITAL LETTER TONE TWO -001A8 LATIN SMALL LETTER TONE TWO -001A9 LATIN CAPITAL LETTER ESH -001AA LATIN LETTER REVERSED ESH LOOP -001AB LATIN SMALL LETTER T WITH PALATAL HOOK -001AC LATIN CAPITAL LETTER T WITH HOOK -001AD LATIN SMALL LETTER T WITH HOOK -001AE LATIN CAPITAL LETTER T WITH RETROFLEX HOOK -001AF LATIN CAPITAL LETTER U WITH HORN -001B0 LATIN SMALL LETTER U WITH HORN -001B1 LATIN CAPITAL LETTER UPSILON -001B2 LATIN CAPITAL LETTER V WITH HOOK -001B3 LATIN CAPITAL LETTER Y WITH HOOK -001B4 LATIN SMALL LETTER Y WITH HOOK -001B5 LATIN CAPITAL LETTER Z WITH STROKE -001B6 LATIN SMALL LETTER Z WITH STROKE -001B7 LATIN CAPITAL LETTER EZH -001B8 LATIN CAPITAL LETTER EZH REVERSED -001B9 LATIN SMALL LETTER EZH REVERSED -001BA LATIN SMALL LETTER EZH WITH TAIL -001BB LATIN LETTER TWO WITH STROKE -001BC LATIN CAPITAL LETTER TONE FIVE -001BD LATIN SMALL LETTER TONE FIVE -001BE LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE -001BF LATIN LETTER WYNN -001C0 LATIN LETTER DENTAL CLICK -001C1 LATIN LETTER LATERAL CLICK -001C2 LATIN LETTER ALVEOLAR CLICK -001C3 LATIN LETTER RETROFLEX CLICK -001C4 LATIN CAPITAL LETTER DZ WITH CARON -001C5 LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON -001C6 LATIN SMALL LETTER DZ WITH CARON -001C7 LATIN CAPITAL LETTER LJ -001C8 LATIN CAPITAL LETTER L WITH SMALL LETTER J -001C9 LATIN SMALL LETTER LJ -001CA LATIN CAPITAL LETTER NJ -001CB LATIN CAPITAL LETTER N WITH SMALL LETTER J -001CC LATIN SMALL LETTER NJ -001CD LATIN CAPITAL LETTER A WITH CARON -001CE LATIN SMALL LETTER A WITH CARON -001CF LATIN CAPITAL LETTER I WITH CARON -001D0 LATIN SMALL LETTER I WITH CARON -001D1 LATIN CAPITAL LETTER O WITH CARON -001D2 LATIN SMALL LETTER O WITH CARON -001D3 LATIN CAPITAL LETTER U WITH CARON -001D4 LATIN SMALL LETTER U WITH CARON -001D5 LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON -001D6 LATIN SMALL LETTER U WITH DIAERESIS AND MACRON -001D7 LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE -001D8 LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE -001D9 LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON -001DA LATIN SMALL LETTER U WITH DIAERESIS AND CARON -001DB LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE -001DC LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE -001DD LATIN SMALL LETTER TURNED E -001DE LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON -001DF LATIN SMALL LETTER A WITH DIAERESIS AND MACRON -001E0 LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON -001E1 LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON -001E2 LATIN CAPITAL LETTER AE WITH MACRON -001E3 LATIN SMALL LETTER AE WITH MACRON -001E4 LATIN CAPITAL LETTER G WITH STROKE -001E5 LATIN SMALL LETTER G WITH STROKE -001E6 LATIN CAPITAL LETTER G WITH CARON -001E7 LATIN SMALL LETTER G WITH CARON -001E8 LATIN CAPITAL LETTER K WITH CARON -001E9 LATIN SMALL LETTER K WITH CARON -001EA LATIN CAPITAL LETTER O WITH OGONEK -001EB LATIN SMALL LETTER O WITH OGONEK -001EC LATIN CAPITAL LETTER O WITH OGONEK AND MACRON -001ED LATIN SMALL LETTER O WITH OGONEK AND MACRON -001EE LATIN CAPITAL LETTER EZH WITH CARON -001EF LATIN SMALL LETTER EZH WITH CARON -001F0 LATIN SMALL LETTER J WITH CARON -001F1 LATIN CAPITAL LETTER DZ -001F2 LATIN CAPITAL LETTER D WITH SMALL LETTER Z -001F3 LATIN SMALL LETTER DZ -001F4 LATIN CAPITAL LETTER G WITH ACUTE -001F5 LATIN SMALL LETTER G WITH ACUTE -001F6 LATIN CAPITAL LETTER HWAIR -001F7 LATIN CAPITAL LETTER WYNN -001F8 LATIN CAPITAL LETTER N WITH GRAVE -001F9 LATIN SMALL LETTER N WITH GRAVE -001FA LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE -001FB LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE -001FC LATIN CAPITAL LETTER AE WITH ACUTE -001FD LATIN SMALL LETTER AE WITH ACUTE -001FE LATIN CAPITAL LETTER O WITH STROKE AND ACUTE -001FF LATIN SMALL LETTER O WITH STROKE AND ACUTE -00200 LATIN CAPITAL LETTER A WITH DOUBLE GRAVE -00201 LATIN SMALL LETTER A WITH DOUBLE GRAVE -00202 LATIN CAPITAL LETTER A WITH INVERTED BREVE -00203 LATIN SMALL LETTER A WITH INVERTED BREVE -00204 LATIN CAPITAL LETTER E WITH DOUBLE GRAVE -00205 LATIN SMALL LETTER E WITH DOUBLE GRAVE -00206 LATIN CAPITAL LETTER E WITH INVERTED BREVE -00207 LATIN SMALL LETTER E WITH INVERTED BREVE -00208 LATIN CAPITAL LETTER I WITH DOUBLE GRAVE -00209 LATIN SMALL LETTER I WITH DOUBLE GRAVE -0020A LATIN CAPITAL LETTER I WITH INVERTED BREVE -0020B LATIN SMALL LETTER I WITH INVERTED BREVE -0020C LATIN CAPITAL LETTER O WITH DOUBLE GRAVE -0020D LATIN SMALL LETTER O WITH DOUBLE GRAVE -0020E LATIN CAPITAL LETTER O WITH INVERTED BREVE -0020F LATIN SMALL LETTER O WITH INVERTED BREVE -00210 LATIN CAPITAL LETTER R WITH DOUBLE GRAVE -00211 LATIN SMALL LETTER R WITH DOUBLE GRAVE -00212 LATIN CAPITAL LETTER R WITH INVERTED BREVE -00213 LATIN SMALL LETTER R WITH INVERTED BREVE -00214 LATIN CAPITAL LETTER U WITH DOUBLE GRAVE -00215 LATIN SMALL LETTER U WITH DOUBLE GRAVE -00216 LATIN CAPITAL LETTER U WITH INVERTED BREVE -00217 LATIN SMALL LETTER U WITH INVERTED BREVE -00218 LATIN CAPITAL LETTER S WITH COMMA BELOW -00219 LATIN SMALL LETTER S WITH COMMA BELOW -0021A LATIN CAPITAL LETTER T WITH COMMA BELOW -0021B LATIN SMALL LETTER T WITH COMMA BELOW -0021C LATIN CAPITAL LETTER YOGH -0021D LATIN SMALL LETTER YOGH -0021E LATIN CAPITAL LETTER H WITH CARON -0021F LATIN SMALL LETTER H WITH CARON -00220 LATIN CAPITAL LETTER N WITH LONG RIGHT LEG -00221 LATIN SMALL LETTER D WITH CURL -00222 LATIN CAPITAL LETTER OU -00223 LATIN SMALL LETTER OU -00224 LATIN CAPITAL LETTER Z WITH HOOK -00225 LATIN SMALL LETTER Z WITH HOOK -00226 LATIN CAPITAL LETTER A WITH DOT ABOVE -00227 LATIN SMALL LETTER A WITH DOT ABOVE -00228 LATIN CAPITAL LETTER E WITH CEDILLA -00229 LATIN SMALL LETTER E WITH CEDILLA -0022A LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON -0022B LATIN SMALL LETTER O WITH DIAERESIS AND MACRON -0022C LATIN CAPITAL LETTER O WITH TILDE AND MACRON -0022D LATIN SMALL LETTER O WITH TILDE AND MACRON -0022E LATIN CAPITAL LETTER O WITH DOT ABOVE -0022F LATIN SMALL LETTER O WITH DOT ABOVE -00230 LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON -00231 LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON -00232 LATIN CAPITAL LETTER Y WITH MACRON -00233 LATIN SMALL LETTER Y WITH MACRON -00234 LATIN SMALL LETTER L WITH CURL -00235 LATIN SMALL LETTER N WITH CURL -00236 LATIN SMALL LETTER T WITH CURL -00237 LATIN SMALL LETTER DOTLESS J -00238 LATIN SMALL LETTER DB DIGRAPH -00239 LATIN SMALL LETTER QP DIGRAPH -0023A LATIN CAPITAL LETTER A WITH STROKE -0023B LATIN CAPITAL LETTER C WITH STROKE -0023C LATIN SMALL LETTER C WITH STROKE -0023D LATIN CAPITAL LETTER L WITH BAR -0023E LATIN CAPITAL LETTER T WITH DIAGONAL STROKE -0023F LATIN SMALL LETTER S WITH SWASH TAIL -00240 LATIN SMALL LETTER Z WITH SWASH TAIL -00241 LATIN CAPITAL LETTER GLOTTAL STOP -00242 LATIN SMALL LETTER GLOTTAL STOP -00243 LATIN CAPITAL LETTER B WITH STROKE -00244 LATIN CAPITAL LETTER U BAR -00245 LATIN CAPITAL LETTER TURNED V -00246 LATIN CAPITAL LETTER E WITH STROKE -00247 LATIN SMALL LETTER E WITH STROKE -00248 LATIN CAPITAL LETTER J WITH STROKE -00249 LATIN SMALL LETTER J WITH STROKE -0024A LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL -0024B LATIN SMALL LETTER Q WITH HOOK TAIL -0024C LATIN CAPITAL LETTER R WITH STROKE -0024D LATIN SMALL LETTER R WITH STROKE -0024E LATIN CAPITAL LETTER Y WITH STROKE -0024F LATIN SMALL LETTER Y WITH STROKE -00250 LATIN SMALL LETTER TURNED A -00251 LATIN SMALL LETTER ALPHA -00252 LATIN SMALL LETTER TURNED ALPHA -00253 LATIN SMALL LETTER B WITH HOOK -00254 LATIN SMALL LETTER OPEN O -00255 LATIN SMALL LETTER C WITH CURL -00256 LATIN SMALL LETTER D WITH TAIL -00257 LATIN SMALL LETTER D WITH HOOK -00258 LATIN SMALL LETTER REVERSED E -00259 LATIN SMALL LETTER SCHWA -0025A LATIN SMALL LETTER SCHWA WITH HOOK -0025B LATIN SMALL LETTER OPEN E -0025C LATIN SMALL LETTER REVERSED OPEN E -0025D LATIN SMALL LETTER REVERSED OPEN E WITH HOOK -0025E LATIN SMALL LETTER CLOSED REVERSED OPEN E -0025F LATIN SMALL LETTER DOTLESS J WITH STROKE -00260 LATIN SMALL LETTER G WITH HOOK -00261 LATIN SMALL LETTER SCRIPT G -00262 LATIN LETTER SMALL CAPITAL G -00263 LATIN SMALL LETTER GAMMA -00264 LATIN SMALL LETTER RAMS HORN -00265 LATIN SMALL LETTER TURNED H -00266 LATIN SMALL LETTER H WITH HOOK -00267 LATIN SMALL LETTER HENG WITH HOOK -00268 LATIN SMALL LETTER I WITH STROKE -00269 LATIN SMALL LETTER IOTA -0026A LATIN LETTER SMALL CAPITAL I -0026B LATIN SMALL LETTER L WITH MIDDLE TILDE -0026C LATIN SMALL LETTER L WITH BELT -0026D LATIN SMALL LETTER L WITH RETROFLEX HOOK -0026E LATIN SMALL LETTER LEZH -0026F LATIN SMALL LETTER TURNED M -00270 LATIN SMALL LETTER TURNED M WITH LONG LEG -00271 LATIN SMALL LETTER M WITH HOOK -00272 LATIN SMALL LETTER N WITH LEFT HOOK -00273 LATIN SMALL LETTER N WITH RETROFLEX HOOK -00274 LATIN LETTER SMALL CAPITAL N -00275 LATIN SMALL LETTER BARRED O -00276 LATIN LETTER SMALL CAPITAL OE -00277 LATIN SMALL LETTER CLOSED OMEGA -00278 LATIN SMALL LETTER PHI -00279 LATIN SMALL LETTER TURNED R -0027A LATIN SMALL LETTER TURNED R WITH LONG LEG -0027B LATIN SMALL LETTER TURNED R WITH HOOK -0027C LATIN SMALL LETTER R WITH LONG LEG -0027D LATIN SMALL LETTER R WITH TAIL -0027E LATIN SMALL LETTER R WITH FISHHOOK -0027F LATIN SMALL LETTER REVERSED R WITH FISHHOOK -00280 LATIN LETTER SMALL CAPITAL R -00281 LATIN LETTER SMALL CAPITAL INVERTED R -00282 LATIN SMALL LETTER S WITH HOOK -00283 LATIN SMALL LETTER ESH -00284 LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK -00285 LATIN SMALL LETTER SQUAT REVERSED ESH -00286 LATIN SMALL LETTER ESH WITH CURL -00287 LATIN SMALL LETTER TURNED T -00288 LATIN SMALL LETTER T WITH RETROFLEX HOOK -00289 LATIN SMALL LETTER U BAR -0028A LATIN SMALL LETTER UPSILON -0028B LATIN SMALL LETTER V WITH HOOK -0028C LATIN SMALL LETTER TURNED V -0028D LATIN SMALL LETTER TURNED W -0028E LATIN SMALL LETTER TURNED Y -0028F LATIN LETTER SMALL CAPITAL Y -00290 LATIN SMALL LETTER Z WITH RETROFLEX HOOK -00291 LATIN SMALL LETTER Z WITH CURL -00292 LATIN SMALL LETTER EZH -00293 LATIN SMALL LETTER EZH WITH CURL -00294 LATIN LETTER GLOTTAL STOP -00295 LATIN LETTER PHARYNGEAL VOICED FRICATIVE -00296 LATIN LETTER INVERTED GLOTTAL STOP -00297 LATIN LETTER STRETCHED C -00298 LATIN LETTER BILABIAL CLICK -00299 LATIN LETTER SMALL CAPITAL B -0029A LATIN SMALL LETTER CLOSED OPEN E -0029B LATIN LETTER SMALL CAPITAL G WITH HOOK -0029C LATIN LETTER SMALL CAPITAL H -0029D LATIN SMALL LETTER J WITH CROSSED-TAIL -0029E LATIN SMALL LETTER TURNED K -0029F LATIN LETTER SMALL CAPITAL L -002A0 LATIN SMALL LETTER Q WITH HOOK -002A1 LATIN LETTER GLOTTAL STOP WITH STROKE -002A2 LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE -002A3 LATIN SMALL LETTER DZ DIGRAPH -002A4 LATIN SMALL LETTER DEZH DIGRAPH -002A5 LATIN SMALL LETTER DZ DIGRAPH WITH CURL -002A6 LATIN SMALL LETTER TS DIGRAPH -002A7 LATIN SMALL LETTER TESH DIGRAPH -002A8 LATIN SMALL LETTER TC DIGRAPH WITH CURL -002A9 LATIN SMALL LETTER FENG DIGRAPH -002AA LATIN SMALL LETTER LS DIGRAPH -002AB LATIN SMALL LETTER LZ DIGRAPH -002AC LATIN LETTER BILABIAL PERCUSSIVE -002AD LATIN LETTER BIDENTAL PERCUSSIVE -002AE LATIN SMALL LETTER TURNED H WITH FISHHOOK -002AF LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL -002B0 MODIFIER LETTER SMALL H -002B1 MODIFIER LETTER SMALL H WITH HOOK -002B2 MODIFIER LETTER SMALL J -002B3 MODIFIER LETTER SMALL R -002B4 MODIFIER LETTER SMALL TURNED R -002B5 MODIFIER LETTER SMALL TURNED R WITH HOOK -002B6 MODIFIER LETTER SMALL CAPITAL INVERTED R -002B7 MODIFIER LETTER SMALL W -002B8 MODIFIER LETTER SMALL Y -002B9 MODIFIER LETTER PRIME -002BA MODIFIER LETTER DOUBLE PRIME -002BB MODIFIER LETTER TURNED COMMA -002BC MODIFIER LETTER APOSTROPHE -002BD MODIFIER LETTER REVERSED COMMA -002BE MODIFIER LETTER RIGHT HALF RING -002BF MODIFIER LETTER LEFT HALF RING -002C0 MODIFIER LETTER GLOTTAL STOP -002C1 MODIFIER LETTER REVERSED GLOTTAL STOP -002C2 MODIFIER LETTER LEFT ARROWHEAD -002C3 MODIFIER LETTER RIGHT ARROWHEAD -002C4 MODIFIER LETTER UP ARROWHEAD -002C5 MODIFIER LETTER DOWN ARROWHEAD -002C6 MODIFIER LETTER CIRCUMFLEX ACCENT -002C7 CARON -002C8 MODIFIER LETTER VERTICAL LINE -002C9 MODIFIER LETTER MACRON -002CA MODIFIER LETTER ACUTE ACCENT -002CB MODIFIER LETTER GRAVE ACCENT -002CC MODIFIER LETTER LOW VERTICAL LINE -002CD MODIFIER LETTER LOW MACRON -002CE MODIFIER LETTER LOW GRAVE ACCENT -002CF MODIFIER LETTER LOW ACUTE ACCENT -002D0 MODIFIER LETTER TRIANGULAR COLON -002D1 MODIFIER LETTER HALF TRIANGULAR COLON -002D2 MODIFIER LETTER CENTRED RIGHT HALF RING -002D3 MODIFIER LETTER CENTRED LEFT HALF RING -002D4 MODIFIER LETTER UP TACK -002D5 MODIFIER LETTER DOWN TACK -002D6 MODIFIER LETTER PLUS SIGN -002D7 MODIFIER LETTER MINUS SIGN -002D8 BREVE -002D9 DOT ABOVE -002DA RING ABOVE -002DB OGONEK -002DC SMALL TILDE -002DD DOUBLE ACUTE ACCENT -002DE MODIFIER LETTER RHOTIC HOOK -002DF MODIFIER LETTER CROSS ACCENT -002E0 MODIFIER LETTER SMALL GAMMA -002E1 MODIFIER LETTER SMALL L -002E2 MODIFIER LETTER SMALL S -002E3 MODIFIER LETTER SMALL X -002E4 MODIFIER LETTER SMALL REVERSED GLOTTAL STOP -002E5 MODIFIER LETTER EXTRA-HIGH TONE BAR -002E6 MODIFIER LETTER HIGH TONE BAR -002E7 MODIFIER LETTER MID TONE BAR -002E8 MODIFIER LETTER LOW TONE BAR -002E9 MODIFIER LETTER EXTRA-LOW TONE BAR -002EA MODIFIER LETTER YIN DEPARTING TONE MARK -002EB MODIFIER LETTER YANG DEPARTING TONE MARK -002EC MODIFIER LETTER VOICING -002ED MODIFIER LETTER UNASPIRATED -002EE MODIFIER LETTER DOUBLE APOSTROPHE -002EF MODIFIER LETTER LOW DOWN ARROWHEAD -002F0 MODIFIER LETTER LOW UP ARROWHEAD -002F1 MODIFIER LETTER LOW LEFT ARROWHEAD -002F2 MODIFIER LETTER LOW RIGHT ARROWHEAD -002F3 MODIFIER LETTER LOW RING -002F4 MODIFIER LETTER MIDDLE GRAVE ACCENT -002F5 MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT -002F6 MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT -002F7 MODIFIER LETTER LOW TILDE -002F8 MODIFIER LETTER RAISED COLON -002F9 MODIFIER LETTER BEGIN HIGH TONE -002FA MODIFIER LETTER END HIGH TONE -002FB MODIFIER LETTER BEGIN LOW TONE -002FC MODIFIER LETTER END LOW TONE -002FD MODIFIER LETTER SHELF -002FE MODIFIER LETTER OPEN SHELF -002FF MODIFIER LETTER LOW LEFT ARROW -00300 COMBINING GRAVE ACCENT -00301 COMBINING ACUTE ACCENT -00302 COMBINING CIRCUMFLEX ACCENT -00303 COMBINING TILDE -00304 COMBINING MACRON -00305 COMBINING OVERLINE -00306 COMBINING BREVE -00307 COMBINING DOT ABOVE -00308 COMBINING DIAERESIS -00309 COMBINING HOOK ABOVE -0030A COMBINING RING ABOVE -0030B COMBINING DOUBLE ACUTE ACCENT -0030C COMBINING CARON -0030D COMBINING VERTICAL LINE ABOVE -0030E COMBINING DOUBLE VERTICAL LINE ABOVE -0030F COMBINING DOUBLE GRAVE ACCENT -00310 COMBINING CANDRABINDU -00311 COMBINING INVERTED BREVE -00312 COMBINING TURNED COMMA ABOVE -00313 COMBINING COMMA ABOVE -00314 COMBINING REVERSED COMMA ABOVE -00315 COMBINING COMMA ABOVE RIGHT -00316 COMBINING GRAVE ACCENT BELOW -00317 COMBINING ACUTE ACCENT BELOW -00318 COMBINING LEFT TACK BELOW -00319 COMBINING RIGHT TACK BELOW -0031A COMBINING LEFT ANGLE ABOVE -0031B COMBINING HORN -0031C COMBINING LEFT HALF RING BELOW -0031D COMBINING UP TACK BELOW -0031E COMBINING DOWN TACK BELOW -0031F COMBINING PLUS SIGN BELOW -00320 COMBINING MINUS SIGN BELOW -00321 COMBINING PALATALIZED HOOK BELOW -00322 COMBINING RETROFLEX HOOK BELOW -00323 COMBINING DOT BELOW -00324 COMBINING DIAERESIS BELOW -00325 COMBINING RING BELOW -00326 COMBINING COMMA BELOW -00327 COMBINING CEDILLA -00328 COMBINING OGONEK -00329 COMBINING VERTICAL LINE BELOW -0032A COMBINING BRIDGE BELOW -0032B COMBINING INVERTED DOUBLE ARCH BELOW -0032C COMBINING CARON BELOW -0032D COMBINING CIRCUMFLEX ACCENT BELOW -0032E COMBINING BREVE BELOW -0032F COMBINING INVERTED BREVE BELOW -00330 COMBINING TILDE BELOW -00331 COMBINING MACRON BELOW -00332 COMBINING LOW LINE -00333 COMBINING DOUBLE LOW LINE -00334 COMBINING TILDE OVERLAY -00335 COMBINING SHORT STROKE OVERLAY -00336 COMBINING LONG STROKE OVERLAY -00337 COMBINING SHORT SOLIDUS OVERLAY -00338 COMBINING LONG SOLIDUS OVERLAY -00339 COMBINING RIGHT HALF RING BELOW -0033A COMBINING INVERTED BRIDGE BELOW -0033B COMBINING SQUARE BELOW -0033C COMBINING SEAGULL BELOW -0033D COMBINING X ABOVE -0033E COMBINING VERTICAL TILDE -0033F COMBINING DOUBLE OVERLINE -00340 COMBINING GRAVE TONE MARK -00341 COMBINING ACUTE TONE MARK -00342 COMBINING GREEK PERISPOMENI -00343 COMBINING GREEK KORONIS -00344 COMBINING GREEK DIALYTIKA TONOS -00345 COMBINING GREEK YPOGEGRAMMENI -00346 COMBINING BRIDGE ABOVE -00347 COMBINING EQUALS SIGN BELOW -00348 COMBINING DOUBLE VERTICAL LINE BELOW -00349 COMBINING LEFT ANGLE BELOW -0034A COMBINING NOT TILDE ABOVE -0034B COMBINING HOMOTHETIC ABOVE -0034C COMBINING ALMOST EQUAL TO ABOVE -0034D COMBINING LEFT RIGHT ARROW BELOW -0034E COMBINING UPWARDS ARROW BELOW -0034F COMBINING GRAPHEME JOINER -0034F CGJ -00350 COMBINING RIGHT ARROWHEAD ABOVE -00351 COMBINING LEFT HALF RING ABOVE -00352 COMBINING FERMATA -00353 COMBINING X BELOW -00354 COMBINING LEFT ARROWHEAD BELOW -00355 COMBINING RIGHT ARROWHEAD BELOW -00356 COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW -00357 COMBINING RIGHT HALF RING ABOVE -00358 COMBINING DOT ABOVE RIGHT -00359 COMBINING ASTERISK BELOW -0035A COMBINING DOUBLE RING BELOW -0035B COMBINING ZIGZAG ABOVE -0035C COMBINING DOUBLE BREVE BELOW -0035D COMBINING DOUBLE BREVE -0035E COMBINING DOUBLE MACRON -0035F COMBINING DOUBLE MACRON BELOW -00360 COMBINING DOUBLE TILDE -00361 COMBINING DOUBLE INVERTED BREVE -00362 COMBINING DOUBLE RIGHTWARDS ARROW BELOW -00363 COMBINING LATIN SMALL LETTER A -00364 COMBINING LATIN SMALL LETTER E -00365 COMBINING LATIN SMALL LETTER I -00366 COMBINING LATIN SMALL LETTER O -00367 COMBINING LATIN SMALL LETTER U -00368 COMBINING LATIN SMALL LETTER C -00369 COMBINING LATIN SMALL LETTER D -0036A COMBINING LATIN SMALL LETTER H -0036B COMBINING LATIN SMALL LETTER M -0036C COMBINING LATIN SMALL LETTER R -0036D COMBINING LATIN SMALL LETTER T -0036E COMBINING LATIN SMALL LETTER V -0036F COMBINING LATIN SMALL LETTER X -00370 GREEK CAPITAL LETTER HETA -00371 GREEK SMALL LETTER HETA -00372 GREEK CAPITAL LETTER ARCHAIC SAMPI -00373 GREEK SMALL LETTER ARCHAIC SAMPI -00374 GREEK NUMERAL SIGN -00375 GREEK LOWER NUMERAL SIGN -00376 GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA -00377 GREEK SMALL LETTER PAMPHYLIAN DIGAMMA -0037A GREEK YPOGEGRAMMENI -0037B GREEK SMALL REVERSED LUNATE SIGMA SYMBOL -0037C GREEK SMALL DOTTED LUNATE SIGMA SYMBOL -0037D GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL -0037E GREEK QUESTION MARK -0037F GREEK CAPITAL LETTER YOT -00384 GREEK TONOS -00385 GREEK DIALYTIKA TONOS -00386 GREEK CAPITAL LETTER ALPHA WITH TONOS -00387 GREEK ANO TELEIA -00388 GREEK CAPITAL LETTER EPSILON WITH TONOS -00389 GREEK CAPITAL LETTER ETA WITH TONOS -0038A GREEK CAPITAL LETTER IOTA WITH TONOS -0038C GREEK CAPITAL LETTER OMICRON WITH TONOS -0038E GREEK CAPITAL LETTER UPSILON WITH TONOS -0038F GREEK CAPITAL LETTER OMEGA WITH TONOS -00390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -00391 GREEK CAPITAL LETTER ALPHA -00392 GREEK CAPITAL LETTER BETA -00393 GREEK CAPITAL LETTER GAMMA -00394 GREEK CAPITAL LETTER DELTA -00395 GREEK CAPITAL LETTER EPSILON -00396 GREEK CAPITAL LETTER ZETA -00397 GREEK CAPITAL LETTER ETA -00398 GREEK CAPITAL LETTER THETA -00399 GREEK CAPITAL LETTER IOTA -0039A GREEK CAPITAL LETTER KAPPA -0039B GREEK CAPITAL LETTER LAMDA -0039C GREEK CAPITAL LETTER MU -0039D GREEK CAPITAL LETTER NU -0039E GREEK CAPITAL LETTER XI -0039F GREEK CAPITAL LETTER OMICRON -003A0 GREEK CAPITAL LETTER PI -003A1 GREEK CAPITAL LETTER RHO -003A3 GREEK CAPITAL LETTER SIGMA -003A4 GREEK CAPITAL LETTER TAU -003A5 GREEK CAPITAL LETTER UPSILON -003A6 GREEK CAPITAL LETTER PHI -003A7 GREEK CAPITAL LETTER CHI -003A8 GREEK CAPITAL LETTER PSI -003A9 GREEK CAPITAL LETTER OMEGA -003AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA -003AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA -003AC GREEK SMALL LETTER ALPHA WITH TONOS -003AD GREEK SMALL LETTER EPSILON WITH TONOS -003AE GREEK SMALL LETTER ETA WITH TONOS -003AF GREEK SMALL LETTER IOTA WITH TONOS -003B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -003B1 GREEK SMALL LETTER ALPHA -003B2 GREEK SMALL LETTER BETA -003B3 GREEK SMALL LETTER GAMMA -003B4 GREEK SMALL LETTER DELTA -003B5 GREEK SMALL LETTER EPSILON -003B6 GREEK SMALL LETTER ZETA -003B7 GREEK SMALL LETTER ETA -003B8 GREEK SMALL LETTER THETA -003B9 GREEK SMALL LETTER IOTA -003BA GREEK SMALL LETTER KAPPA -003BB GREEK SMALL LETTER LAMDA -003BC GREEK SMALL LETTER MU -003BD GREEK SMALL LETTER NU -003BE GREEK SMALL LETTER XI -003BF GREEK SMALL LETTER OMICRON -003C0 GREEK SMALL LETTER PI -003C1 GREEK SMALL LETTER RHO -003C2 GREEK SMALL LETTER FINAL SIGMA -003C3 GREEK SMALL LETTER SIGMA -003C4 GREEK SMALL LETTER TAU -003C5 GREEK SMALL LETTER UPSILON -003C6 GREEK SMALL LETTER PHI -003C7 GREEK SMALL LETTER CHI -003C8 GREEK SMALL LETTER PSI -003C9 GREEK SMALL LETTER OMEGA -003CA GREEK SMALL LETTER IOTA WITH DIALYTIKA -003CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA -003CC GREEK SMALL LETTER OMICRON WITH TONOS -003CD GREEK SMALL LETTER UPSILON WITH TONOS -003CE GREEK SMALL LETTER OMEGA WITH TONOS -003CF GREEK CAPITAL KAI SYMBOL -003D0 GREEK BETA SYMBOL -003D1 GREEK THETA SYMBOL -003D2 GREEK UPSILON WITH HOOK SYMBOL -003D3 GREEK UPSILON WITH ACUTE AND HOOK SYMBOL -003D4 GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL -003D5 GREEK PHI SYMBOL -003D6 GREEK PI SYMBOL -003D7 GREEK KAI SYMBOL -003D8 GREEK LETTER ARCHAIC KOPPA -003D9 GREEK SMALL LETTER ARCHAIC KOPPA -003DA GREEK LETTER STIGMA -003DB GREEK SMALL LETTER STIGMA -003DC GREEK LETTER DIGAMMA -003DD GREEK SMALL LETTER DIGAMMA -003DE GREEK LETTER KOPPA -003DF GREEK SMALL LETTER KOPPA -003E0 GREEK LETTER SAMPI -003E1 GREEK SMALL LETTER SAMPI -003E2 COPTIC CAPITAL LETTER SHEI -003E3 COPTIC SMALL LETTER SHEI -003E4 COPTIC CAPITAL LETTER FEI -003E5 COPTIC SMALL LETTER FEI -003E6 COPTIC CAPITAL LETTER KHEI -003E7 COPTIC SMALL LETTER KHEI -003E8 COPTIC CAPITAL LETTER HORI -003E9 COPTIC SMALL LETTER HORI -003EA COPTIC CAPITAL LETTER GANGIA -003EB COPTIC SMALL LETTER GANGIA -003EC COPTIC CAPITAL LETTER SHIMA -003ED COPTIC SMALL LETTER SHIMA -003EE COPTIC CAPITAL LETTER DEI -003EF COPTIC SMALL LETTER DEI -003F0 GREEK KAPPA SYMBOL -003F1 GREEK RHO SYMBOL -003F2 GREEK LUNATE SIGMA SYMBOL -003F3 GREEK LETTER YOT -003F4 GREEK CAPITAL THETA SYMBOL -003F5 GREEK LUNATE EPSILON SYMBOL -003F6 GREEK REVERSED LUNATE EPSILON SYMBOL -003F7 GREEK CAPITAL LETTER SHO -003F8 GREEK SMALL LETTER SHO -003F9 GREEK CAPITAL LUNATE SIGMA SYMBOL -003FA GREEK CAPITAL LETTER SAN -003FB GREEK SMALL LETTER SAN -003FC GREEK RHO WITH STROKE SYMBOL -003FD GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL -003FE GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL -003FF GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL -00400 CYRILLIC CAPITAL LETTER IE WITH GRAVE -00401 CYRILLIC CAPITAL LETTER IO -00402 CYRILLIC CAPITAL LETTER DJE -00403 CYRILLIC CAPITAL LETTER GJE -00404 CYRILLIC CAPITAL LETTER UKRAINIAN IE -00405 CYRILLIC CAPITAL LETTER DZE -00406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -00407 CYRILLIC CAPITAL LETTER YI -00408 CYRILLIC CAPITAL LETTER JE -00409 CYRILLIC CAPITAL LETTER LJE -0040A CYRILLIC CAPITAL LETTER NJE -0040B CYRILLIC CAPITAL LETTER TSHE -0040C CYRILLIC CAPITAL LETTER KJE -0040D CYRILLIC CAPITAL LETTER I WITH GRAVE -0040E CYRILLIC CAPITAL LETTER SHORT U -0040F CYRILLIC CAPITAL LETTER DZHE -00410 CYRILLIC CAPITAL LETTER A -00411 CYRILLIC CAPITAL LETTER BE -00412 CYRILLIC CAPITAL LETTER VE -00413 CYRILLIC CAPITAL LETTER GHE -00414 CYRILLIC CAPITAL LETTER DE -00415 CYRILLIC CAPITAL LETTER IE -00416 CYRILLIC CAPITAL LETTER ZHE -00417 CYRILLIC CAPITAL LETTER ZE -00418 CYRILLIC CAPITAL LETTER I -00419 CYRILLIC CAPITAL LETTER SHORT I -0041A CYRILLIC CAPITAL LETTER KA -0041B CYRILLIC CAPITAL LETTER EL -0041C CYRILLIC CAPITAL LETTER EM -0041D CYRILLIC CAPITAL LETTER EN -0041E CYRILLIC CAPITAL LETTER O -0041F CYRILLIC CAPITAL LETTER PE -00420 CYRILLIC CAPITAL LETTER ER -00421 CYRILLIC CAPITAL LETTER ES -00422 CYRILLIC CAPITAL LETTER TE -00423 CYRILLIC CAPITAL LETTER U -00424 CYRILLIC CAPITAL LETTER EF -00425 CYRILLIC CAPITAL LETTER HA -00426 CYRILLIC CAPITAL LETTER TSE -00427 CYRILLIC CAPITAL LETTER CHE -00428 CYRILLIC CAPITAL LETTER SHA -00429 CYRILLIC CAPITAL LETTER SHCHA -0042A CYRILLIC CAPITAL LETTER HARD SIGN -0042B CYRILLIC CAPITAL LETTER YERU -0042C CYRILLIC CAPITAL LETTER SOFT SIGN -0042D CYRILLIC CAPITAL LETTER E -0042E CYRILLIC CAPITAL LETTER YU -0042F CYRILLIC CAPITAL LETTER YA -00430 CYRILLIC SMALL LETTER A -00431 CYRILLIC SMALL LETTER BE -00432 CYRILLIC SMALL LETTER VE -00433 CYRILLIC SMALL LETTER GHE -00434 CYRILLIC SMALL LETTER DE -00435 CYRILLIC SMALL LETTER IE -00436 CYRILLIC SMALL LETTER ZHE -00437 CYRILLIC SMALL LETTER ZE -00438 CYRILLIC SMALL LETTER I -00439 CYRILLIC SMALL LETTER SHORT I -0043A CYRILLIC SMALL LETTER KA -0043B CYRILLIC SMALL LETTER EL -0043C CYRILLIC SMALL LETTER EM -0043D CYRILLIC SMALL LETTER EN -0043E CYRILLIC SMALL LETTER O -0043F CYRILLIC SMALL LETTER PE -00440 CYRILLIC SMALL LETTER ER -00441 CYRILLIC SMALL LETTER ES -00442 CYRILLIC SMALL LETTER TE -00443 CYRILLIC SMALL LETTER U -00444 CYRILLIC SMALL LETTER EF -00445 CYRILLIC SMALL LETTER HA -00446 CYRILLIC SMALL LETTER TSE -00447 CYRILLIC SMALL LETTER CHE -00448 CYRILLIC SMALL LETTER SHA -00449 CYRILLIC SMALL LETTER SHCHA -0044A CYRILLIC SMALL LETTER HARD SIGN -0044B CYRILLIC SMALL LETTER YERU -0044C CYRILLIC SMALL LETTER SOFT SIGN -0044D CYRILLIC SMALL LETTER E -0044E CYRILLIC SMALL LETTER YU -0044F CYRILLIC SMALL LETTER YA -00450 CYRILLIC SMALL LETTER IE WITH GRAVE -00451 CYRILLIC SMALL LETTER IO -00452 CYRILLIC SMALL LETTER DJE -00453 CYRILLIC SMALL LETTER GJE -00454 CYRILLIC SMALL LETTER UKRAINIAN IE -00455 CYRILLIC SMALL LETTER DZE -00456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -00457 CYRILLIC SMALL LETTER YI -00458 CYRILLIC SMALL LETTER JE -00459 CYRILLIC SMALL LETTER LJE -0045A CYRILLIC SMALL LETTER NJE -0045B CYRILLIC SMALL LETTER TSHE -0045C CYRILLIC SMALL LETTER KJE -0045D CYRILLIC SMALL LETTER I WITH GRAVE -0045E CYRILLIC SMALL LETTER SHORT U -0045F CYRILLIC SMALL LETTER DZHE -00460 CYRILLIC CAPITAL LETTER OMEGA -00461 CYRILLIC SMALL LETTER OMEGA -00462 CYRILLIC CAPITAL LETTER YAT -00463 CYRILLIC SMALL LETTER YAT -00464 CYRILLIC CAPITAL LETTER IOTIFIED E -00465 CYRILLIC SMALL LETTER IOTIFIED E -00466 CYRILLIC CAPITAL LETTER LITTLE YUS -00467 CYRILLIC SMALL LETTER LITTLE YUS -00468 CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS -00469 CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS -0046A CYRILLIC CAPITAL LETTER BIG YUS -0046B CYRILLIC SMALL LETTER BIG YUS -0046C CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS -0046D CYRILLIC SMALL LETTER IOTIFIED BIG YUS -0046E CYRILLIC CAPITAL LETTER KSI -0046F CYRILLIC SMALL LETTER KSI -00470 CYRILLIC CAPITAL LETTER PSI -00471 CYRILLIC SMALL LETTER PSI -00472 CYRILLIC CAPITAL LETTER FITA -00473 CYRILLIC SMALL LETTER FITA -00474 CYRILLIC CAPITAL LETTER IZHITSA -00475 CYRILLIC SMALL LETTER IZHITSA -00476 CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT -00477 CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT -00478 CYRILLIC CAPITAL LETTER UK -00479 CYRILLIC SMALL LETTER UK -0047A CYRILLIC CAPITAL LETTER ROUND OMEGA -0047B CYRILLIC SMALL LETTER ROUND OMEGA -0047C CYRILLIC CAPITAL LETTER OMEGA WITH TITLO -0047D CYRILLIC SMALL LETTER OMEGA WITH TITLO -0047E CYRILLIC CAPITAL LETTER OT -0047F CYRILLIC SMALL LETTER OT -00480 CYRILLIC CAPITAL LETTER KOPPA -00481 CYRILLIC SMALL LETTER KOPPA -00482 CYRILLIC THOUSANDS SIGN -00483 COMBINING CYRILLIC TITLO -00484 COMBINING CYRILLIC PALATALIZATION -00485 COMBINING CYRILLIC DASIA PNEUMATA -00486 COMBINING CYRILLIC PSILI PNEUMATA -00487 COMBINING CYRILLIC POKRYTIE -00488 COMBINING CYRILLIC HUNDRED THOUSANDS SIGN -00489 COMBINING CYRILLIC MILLIONS SIGN -0048A CYRILLIC CAPITAL LETTER SHORT I WITH TAIL -0048B CYRILLIC SMALL LETTER SHORT I WITH TAIL -0048C CYRILLIC CAPITAL LETTER SEMISOFT SIGN -0048D CYRILLIC SMALL LETTER SEMISOFT SIGN -0048E CYRILLIC CAPITAL LETTER ER WITH TICK -0048F CYRILLIC SMALL LETTER ER WITH TICK -00490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN -00491 CYRILLIC SMALL LETTER GHE WITH UPTURN -00492 CYRILLIC CAPITAL LETTER GHE WITH STROKE -00493 CYRILLIC SMALL LETTER GHE WITH STROKE -00494 CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK -00495 CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK -00496 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER -00497 CYRILLIC SMALL LETTER ZHE WITH DESCENDER -00498 CYRILLIC CAPITAL LETTER ZE WITH DESCENDER -00499 CYRILLIC SMALL LETTER ZE WITH DESCENDER -0049A CYRILLIC CAPITAL LETTER KA WITH DESCENDER -0049B CYRILLIC SMALL LETTER KA WITH DESCENDER -0049C CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE -0049D CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE -0049E CYRILLIC CAPITAL LETTER KA WITH STROKE -0049F CYRILLIC SMALL LETTER KA WITH STROKE -004A0 CYRILLIC CAPITAL LETTER BASHKIR KA -004A1 CYRILLIC SMALL LETTER BASHKIR KA -004A2 CYRILLIC CAPITAL LETTER EN WITH DESCENDER -004A3 CYRILLIC SMALL LETTER EN WITH DESCENDER -004A4 CYRILLIC CAPITAL LIGATURE EN GHE -004A5 CYRILLIC SMALL LIGATURE EN GHE -004A6 CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK -004A7 CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK -004A8 CYRILLIC CAPITAL LETTER ABKHASIAN HA -004A9 CYRILLIC SMALL LETTER ABKHASIAN HA -004AA CYRILLIC CAPITAL LETTER ES WITH DESCENDER -004AB CYRILLIC SMALL LETTER ES WITH DESCENDER -004AC CYRILLIC CAPITAL LETTER TE WITH DESCENDER -004AD CYRILLIC SMALL LETTER TE WITH DESCENDER -004AE CYRILLIC CAPITAL LETTER STRAIGHT U -004AF CYRILLIC SMALL LETTER STRAIGHT U -004B0 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE -004B1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE -004B2 CYRILLIC CAPITAL LETTER HA WITH DESCENDER -004B3 CYRILLIC SMALL LETTER HA WITH DESCENDER -004B4 CYRILLIC CAPITAL LIGATURE TE TSE -004B5 CYRILLIC SMALL LIGATURE TE TSE -004B6 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER -004B7 CYRILLIC SMALL LETTER CHE WITH DESCENDER -004B8 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE -004B9 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE -004BA CYRILLIC CAPITAL LETTER SHHA -004BB CYRILLIC SMALL LETTER SHHA -004BC CYRILLIC CAPITAL LETTER ABKHASIAN CHE -004BD CYRILLIC SMALL LETTER ABKHASIAN CHE -004BE CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER -004BF CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER -004C0 CYRILLIC LETTER PALOCHKA -004C1 CYRILLIC CAPITAL LETTER ZHE WITH BREVE -004C2 CYRILLIC SMALL LETTER ZHE WITH BREVE -004C3 CYRILLIC CAPITAL LETTER KA WITH HOOK -004C4 CYRILLIC SMALL LETTER KA WITH HOOK -004C5 CYRILLIC CAPITAL LETTER EL WITH TAIL -004C6 CYRILLIC SMALL LETTER EL WITH TAIL -004C7 CYRILLIC CAPITAL LETTER EN WITH HOOK -004C8 CYRILLIC SMALL LETTER EN WITH HOOK -004C9 CYRILLIC CAPITAL LETTER EN WITH TAIL -004CA CYRILLIC SMALL LETTER EN WITH TAIL -004CB CYRILLIC CAPITAL LETTER KHAKASSIAN CHE -004CC CYRILLIC SMALL LETTER KHAKASSIAN CHE -004CD CYRILLIC CAPITAL LETTER EM WITH TAIL -004CE CYRILLIC SMALL LETTER EM WITH TAIL -004CF CYRILLIC SMALL LETTER PALOCHKA -004D0 CYRILLIC CAPITAL LETTER A WITH BREVE -004D1 CYRILLIC SMALL LETTER A WITH BREVE -004D2 CYRILLIC CAPITAL LETTER A WITH DIAERESIS -004D3 CYRILLIC SMALL LETTER A WITH DIAERESIS -004D4 CYRILLIC CAPITAL LIGATURE A IE -004D5 CYRILLIC SMALL LIGATURE A IE -004D6 CYRILLIC CAPITAL LETTER IE WITH BREVE -004D7 CYRILLIC SMALL LETTER IE WITH BREVE -004D8 CYRILLIC CAPITAL LETTER SCHWA -004D9 CYRILLIC SMALL LETTER SCHWA -004DA CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS -004DB CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS -004DC CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS -004DD CYRILLIC SMALL LETTER ZHE WITH DIAERESIS -004DE CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS -004DF CYRILLIC SMALL LETTER ZE WITH DIAERESIS -004E0 CYRILLIC CAPITAL LETTER ABKHASIAN DZE -004E1 CYRILLIC SMALL LETTER ABKHASIAN DZE -004E2 CYRILLIC CAPITAL LETTER I WITH MACRON -004E3 CYRILLIC SMALL LETTER I WITH MACRON -004E4 CYRILLIC CAPITAL LETTER I WITH DIAERESIS -004E5 CYRILLIC SMALL LETTER I WITH DIAERESIS -004E6 CYRILLIC CAPITAL LETTER O WITH DIAERESIS -004E7 CYRILLIC SMALL LETTER O WITH DIAERESIS -004E8 CYRILLIC CAPITAL LETTER BARRED O -004E9 CYRILLIC SMALL LETTER BARRED O -004EA CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS -004EB CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS -004EC CYRILLIC CAPITAL LETTER E WITH DIAERESIS -004ED CYRILLIC SMALL LETTER E WITH DIAERESIS -004EE CYRILLIC CAPITAL LETTER U WITH MACRON -004EF CYRILLIC SMALL LETTER U WITH MACRON -004F0 CYRILLIC CAPITAL LETTER U WITH DIAERESIS -004F1 CYRILLIC SMALL LETTER U WITH DIAERESIS -004F2 CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE -004F3 CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE -004F4 CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS -004F5 CYRILLIC SMALL LETTER CHE WITH DIAERESIS -004F6 CYRILLIC CAPITAL LETTER GHE WITH DESCENDER -004F7 CYRILLIC SMALL LETTER GHE WITH DESCENDER -004F8 CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS -004F9 CYRILLIC SMALL LETTER YERU WITH DIAERESIS -004FA CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK -004FB CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK -004FC CYRILLIC CAPITAL LETTER HA WITH HOOK -004FD CYRILLIC SMALL LETTER HA WITH HOOK -004FE CYRILLIC CAPITAL LETTER HA WITH STROKE -004FF CYRILLIC SMALL LETTER HA WITH STROKE -00500 CYRILLIC CAPITAL LETTER KOMI DE -00501 CYRILLIC SMALL LETTER KOMI DE -00502 CYRILLIC CAPITAL LETTER KOMI DJE -00503 CYRILLIC SMALL LETTER KOMI DJE -00504 CYRILLIC CAPITAL LETTER KOMI ZJE -00505 CYRILLIC SMALL LETTER KOMI ZJE -00506 CYRILLIC CAPITAL LETTER KOMI DZJE -00507 CYRILLIC SMALL LETTER KOMI DZJE -00508 CYRILLIC CAPITAL LETTER KOMI LJE -00509 CYRILLIC SMALL LETTER KOMI LJE -0050A CYRILLIC CAPITAL LETTER KOMI NJE -0050B CYRILLIC SMALL LETTER KOMI NJE -0050C CYRILLIC CAPITAL LETTER KOMI SJE -0050D CYRILLIC SMALL LETTER KOMI SJE -0050E CYRILLIC CAPITAL LETTER KOMI TJE -0050F CYRILLIC SMALL LETTER KOMI TJE -00510 CYRILLIC CAPITAL LETTER REVERSED ZE -00511 CYRILLIC SMALL LETTER REVERSED ZE -00512 CYRILLIC CAPITAL LETTER EL WITH HOOK -00513 CYRILLIC SMALL LETTER EL WITH HOOK -00514 CYRILLIC CAPITAL LETTER LHA -00515 CYRILLIC SMALL LETTER LHA -00516 CYRILLIC CAPITAL LETTER RHA -00517 CYRILLIC SMALL LETTER RHA -00518 CYRILLIC CAPITAL LETTER YAE -00519 CYRILLIC SMALL LETTER YAE -0051A CYRILLIC CAPITAL LETTER QA -0051B CYRILLIC SMALL LETTER QA -0051C CYRILLIC CAPITAL LETTER WE -0051D CYRILLIC SMALL LETTER WE -0051E CYRILLIC CAPITAL LETTER ALEUT KA -0051F CYRILLIC SMALL LETTER ALEUT KA -00520 CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK -00521 CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK -00522 CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK -00523 CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK -00524 CYRILLIC CAPITAL LETTER PE WITH DESCENDER -00525 CYRILLIC SMALL LETTER PE WITH DESCENDER -00526 CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER -00527 CYRILLIC SMALL LETTER SHHA WITH DESCENDER -00528 CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK -00529 CYRILLIC SMALL LETTER EN WITH LEFT HOOK -0052A CYRILLIC CAPITAL LETTER DZZHE -0052B CYRILLIC SMALL LETTER DZZHE -0052C CYRILLIC CAPITAL LETTER DCHE -0052D CYRILLIC SMALL LETTER DCHE -0052E CYRILLIC CAPITAL LETTER EL WITH DESCENDER -0052F CYRILLIC SMALL LETTER EL WITH DESCENDER -00531 ARMENIAN CAPITAL LETTER AYB -00532 ARMENIAN CAPITAL LETTER BEN -00533 ARMENIAN CAPITAL LETTER GIM -00534 ARMENIAN CAPITAL LETTER DA -00535 ARMENIAN CAPITAL LETTER ECH -00536 ARMENIAN CAPITAL LETTER ZA -00537 ARMENIAN CAPITAL LETTER EH -00538 ARMENIAN CAPITAL LETTER ET -00539 ARMENIAN CAPITAL LETTER TO -0053A ARMENIAN CAPITAL LETTER ZHE -0053B ARMENIAN CAPITAL LETTER INI -0053C ARMENIAN CAPITAL LETTER LIWN -0053D ARMENIAN CAPITAL LETTER XEH -0053E ARMENIAN CAPITAL LETTER CA -0053F ARMENIAN CAPITAL LETTER KEN -00540 ARMENIAN CAPITAL LETTER HO -00541 ARMENIAN CAPITAL LETTER JA -00542 ARMENIAN CAPITAL LETTER GHAD -00543 ARMENIAN CAPITAL LETTER CHEH -00544 ARMENIAN CAPITAL LETTER MEN -00545 ARMENIAN CAPITAL LETTER YI -00546 ARMENIAN CAPITAL LETTER NOW -00547 ARMENIAN CAPITAL LETTER SHA -00548 ARMENIAN CAPITAL LETTER VO -00549 ARMENIAN CAPITAL LETTER CHA -0054A ARMENIAN CAPITAL LETTER PEH -0054B ARMENIAN CAPITAL LETTER JHEH -0054C ARMENIAN CAPITAL LETTER RA -0054D ARMENIAN CAPITAL LETTER SEH -0054E ARMENIAN CAPITAL LETTER VEW -0054F ARMENIAN CAPITAL LETTER TIWN -00550 ARMENIAN CAPITAL LETTER REH -00551 ARMENIAN CAPITAL LETTER CO -00552 ARMENIAN CAPITAL LETTER YIWN -00553 ARMENIAN CAPITAL LETTER PIWR -00554 ARMENIAN CAPITAL LETTER KEH -00555 ARMENIAN CAPITAL LETTER OH -00556 ARMENIAN CAPITAL LETTER FEH -00559 ARMENIAN MODIFIER LETTER LEFT HALF RING -0055A ARMENIAN APOSTROPHE -0055B ARMENIAN EMPHASIS MARK -0055C ARMENIAN EXCLAMATION MARK -0055D ARMENIAN COMMA -0055E ARMENIAN QUESTION MARK -0055F ARMENIAN ABBREVIATION MARK -00561 ARMENIAN SMALL LETTER AYB -00562 ARMENIAN SMALL LETTER BEN -00563 ARMENIAN SMALL LETTER GIM -00564 ARMENIAN SMALL LETTER DA -00565 ARMENIAN SMALL LETTER ECH -00566 ARMENIAN SMALL LETTER ZA -00567 ARMENIAN SMALL LETTER EH -00568 ARMENIAN SMALL LETTER ET -00569 ARMENIAN SMALL LETTER TO -0056A ARMENIAN SMALL LETTER ZHE -0056B ARMENIAN SMALL LETTER INI -0056C ARMENIAN SMALL LETTER LIWN -0056D ARMENIAN SMALL LETTER XEH -0056E ARMENIAN SMALL LETTER CA -0056F ARMENIAN SMALL LETTER KEN -00570 ARMENIAN SMALL LETTER HO -00571 ARMENIAN SMALL LETTER JA -00572 ARMENIAN SMALL LETTER GHAD -00573 ARMENIAN SMALL LETTER CHEH -00574 ARMENIAN SMALL LETTER MEN -00575 ARMENIAN SMALL LETTER YI -00576 ARMENIAN SMALL LETTER NOW -00577 ARMENIAN SMALL LETTER SHA -00578 ARMENIAN SMALL LETTER VO -00579 ARMENIAN SMALL LETTER CHA -0057A ARMENIAN SMALL LETTER PEH -0057B ARMENIAN SMALL LETTER JHEH -0057C ARMENIAN SMALL LETTER RA -0057D ARMENIAN SMALL LETTER SEH -0057E ARMENIAN SMALL LETTER VEW -0057F ARMENIAN SMALL LETTER TIWN -00580 ARMENIAN SMALL LETTER REH -00581 ARMENIAN SMALL LETTER CO -00582 ARMENIAN SMALL LETTER YIWN -00583 ARMENIAN SMALL LETTER PIWR -00584 ARMENIAN SMALL LETTER KEH -00585 ARMENIAN SMALL LETTER OH -00586 ARMENIAN SMALL LETTER FEH -00587 ARMENIAN SMALL LIGATURE ECH YIWN -00589 ARMENIAN FULL STOP -0058A ARMENIAN HYPHEN -0058D RIGHT-FACING ARMENIAN ETERNITY SIGN -0058E LEFT-FACING ARMENIAN ETERNITY SIGN -0058F ARMENIAN DRAM SIGN -00591 HEBREW ACCENT ETNAHTA -00592 HEBREW ACCENT SEGOL -00593 HEBREW ACCENT SHALSHELET -00594 HEBREW ACCENT ZAQEF QATAN -00595 HEBREW ACCENT ZAQEF GADOL -00596 HEBREW ACCENT TIPEHA -00597 HEBREW ACCENT REVIA -00598 HEBREW ACCENT ZARQA -00599 HEBREW ACCENT PASHTA -0059A HEBREW ACCENT YETIV -0059B HEBREW ACCENT TEVIR -0059C HEBREW ACCENT GERESH -0059D HEBREW ACCENT GERESH MUQDAM -0059E HEBREW ACCENT GERSHAYIM -0059F HEBREW ACCENT QARNEY PARA -005A0 HEBREW ACCENT TELISHA GEDOLA -005A1 HEBREW ACCENT PAZER -005A2 HEBREW ACCENT ATNAH HAFUKH -005A3 HEBREW ACCENT MUNAH -005A4 HEBREW ACCENT MAHAPAKH -005A5 HEBREW ACCENT MERKHA -005A6 HEBREW ACCENT MERKHA KEFULA -005A7 HEBREW ACCENT DARGA -005A8 HEBREW ACCENT QADMA -005A9 HEBREW ACCENT TELISHA QETANA -005AA HEBREW ACCENT YERAH BEN YOMO -005AB HEBREW ACCENT OLE -005AC HEBREW ACCENT ILUY -005AD HEBREW ACCENT DEHI -005AE HEBREW ACCENT ZINOR -005AF HEBREW MARK MASORA CIRCLE -005B0 HEBREW POINT SHEVA -005B1 HEBREW POINT HATAF SEGOL -005B2 HEBREW POINT HATAF PATAH -005B3 HEBREW POINT HATAF QAMATS -005B4 HEBREW POINT HIRIQ -005B5 HEBREW POINT TSERE -005B6 HEBREW POINT SEGOL -005B7 HEBREW POINT PATAH -005B8 HEBREW POINT QAMATS -005B9 HEBREW POINT HOLAM -005BA HEBREW POINT HOLAM HASER FOR VAV -005BB HEBREW POINT QUBUTS -005BC HEBREW POINT DAGESH OR MAPIQ -005BD HEBREW POINT METEG -005BE HEBREW PUNCTUATION MAQAF -005BF HEBREW POINT RAFE -005C0 HEBREW PUNCTUATION PASEQ -005C1 HEBREW POINT SHIN DOT -005C2 HEBREW POINT SIN DOT -005C3 HEBREW PUNCTUATION SOF PASUQ -005C4 HEBREW MARK UPPER DOT -005C5 HEBREW MARK LOWER DOT -005C6 HEBREW PUNCTUATION NUN HAFUKHA -005C7 HEBREW POINT QAMATS QATAN -005D0 HEBREW LETTER ALEF -005D1 HEBREW LETTER BET -005D2 HEBREW LETTER GIMEL -005D3 HEBREW LETTER DALET -005D4 HEBREW LETTER HE -005D5 HEBREW LETTER VAV -005D6 HEBREW LETTER ZAYIN -005D7 HEBREW LETTER HET -005D8 HEBREW LETTER TET -005D9 HEBREW LETTER YOD -005DA HEBREW LETTER FINAL KAF -005DB HEBREW LETTER KAF -005DC HEBREW LETTER LAMED -005DD HEBREW LETTER FINAL MEM -005DE HEBREW LETTER MEM -005DF HEBREW LETTER FINAL NUN -005E0 HEBREW LETTER NUN -005E1 HEBREW LETTER SAMEKH -005E2 HEBREW LETTER AYIN -005E3 HEBREW LETTER FINAL PE -005E4 HEBREW LETTER PE -005E5 HEBREW LETTER FINAL TSADI -005E6 HEBREW LETTER TSADI -005E7 HEBREW LETTER QOF -005E8 HEBREW LETTER RESH -005E9 HEBREW LETTER SHIN -005EA HEBREW LETTER TAV -005F0 HEBREW LIGATURE YIDDISH DOUBLE VAV -005F1 HEBREW LIGATURE YIDDISH VAV YOD -005F2 HEBREW LIGATURE YIDDISH DOUBLE YOD -005F3 HEBREW PUNCTUATION GERESH -005F4 HEBREW PUNCTUATION GERSHAYIM -00600 ARABIC NUMBER SIGN -00601 ARABIC SIGN SANAH -00602 ARABIC FOOTNOTE MARKER -00603 ARABIC SIGN SAFHA -00604 ARABIC SIGN SAMVAT -00605 ARABIC NUMBER MARK ABOVE -00606 ARABIC-INDIC CUBE ROOT -00607 ARABIC-INDIC FOURTH ROOT -00608 ARABIC RAY -00609 ARABIC-INDIC PER MILLE SIGN -0060A ARABIC-INDIC PER TEN THOUSAND SIGN -0060B AFGHANI SIGN -0060C ARABIC COMMA -0060D ARABIC DATE SEPARATOR -0060E ARABIC POETIC VERSE SIGN -0060F ARABIC SIGN MISRA -00610 ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM -00611 ARABIC SIGN ALAYHE ASSALLAM -00612 ARABIC SIGN RAHMATULLAH ALAYHE -00613 ARABIC SIGN RADI ALLAHOU ANHU -00614 ARABIC SIGN TAKHALLUS -00615 ARABIC SMALL HIGH TAH -00616 ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH -00617 ARABIC SMALL HIGH ZAIN -00618 ARABIC SMALL FATHA -00619 ARABIC SMALL DAMMA -0061A ARABIC SMALL KASRA -0061B ARABIC SEMICOLON -0061C ARABIC LETTER MARK -0061C ALM -0061E ARABIC TRIPLE DOT PUNCTUATION MARK -0061F ARABIC QUESTION MARK -00620 ARABIC LETTER KASHMIRI YEH -00621 ARABIC LETTER HAMZA -00622 ARABIC LETTER ALEF WITH MADDA ABOVE -00623 ARABIC LETTER ALEF WITH HAMZA ABOVE -00624 ARABIC LETTER WAW WITH HAMZA ABOVE -00625 ARABIC LETTER ALEF WITH HAMZA BELOW -00626 ARABIC LETTER YEH WITH HAMZA ABOVE -00627 ARABIC LETTER ALEF -00628 ARABIC LETTER BEH -00629 ARABIC LETTER TEH MARBUTA -0062A ARABIC LETTER TEH -0062B ARABIC LETTER THEH -0062C ARABIC LETTER JEEM -0062D ARABIC LETTER HAH -0062E ARABIC LETTER KHAH -0062F ARABIC LETTER DAL -00630 ARABIC LETTER THAL -00631 ARABIC LETTER REH -00632 ARABIC LETTER ZAIN -00633 ARABIC LETTER SEEN -00634 ARABIC LETTER SHEEN -00635 ARABIC LETTER SAD -00636 ARABIC LETTER DAD -00637 ARABIC LETTER TAH -00638 ARABIC LETTER ZAH -00639 ARABIC LETTER AIN -0063A ARABIC LETTER GHAIN -0063B ARABIC LETTER KEHEH WITH TWO DOTS ABOVE -0063C ARABIC LETTER KEHEH WITH THREE DOTS BELOW -0063D ARABIC LETTER FARSI YEH WITH INVERTED V -0063E ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE -0063F ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE -00640 ARABIC TATWEEL -00641 ARABIC LETTER FEH -00642 ARABIC LETTER QAF -00643 ARABIC LETTER KAF -00644 ARABIC LETTER LAM -00645 ARABIC LETTER MEEM -00646 ARABIC LETTER NOON -00647 ARABIC LETTER HEH -00648 ARABIC LETTER WAW -00649 ARABIC LETTER ALEF MAKSURA -0064A ARABIC LETTER YEH -0064B ARABIC FATHATAN -0064C ARABIC DAMMATAN -0064D ARABIC KASRATAN -0064E ARABIC FATHA -0064F ARABIC DAMMA -00650 ARABIC KASRA -00651 ARABIC SHADDA -00652 ARABIC SUKUN -00653 ARABIC MADDAH ABOVE -00654 ARABIC HAMZA ABOVE -00655 ARABIC HAMZA BELOW -00656 ARABIC SUBSCRIPT ALEF -00657 ARABIC INVERTED DAMMA -00658 ARABIC MARK NOON GHUNNA -00659 ARABIC ZWARAKAY -0065A ARABIC VOWEL SIGN SMALL V ABOVE -0065B ARABIC VOWEL SIGN INVERTED SMALL V ABOVE -0065C ARABIC VOWEL SIGN DOT BELOW -0065D ARABIC REVERSED DAMMA -0065E ARABIC FATHA WITH TWO DOTS -0065F ARABIC WAVY HAMZA BELOW -00660 ARABIC-INDIC DIGIT ZERO -00661 ARABIC-INDIC DIGIT ONE -00662 ARABIC-INDIC DIGIT TWO -00663 ARABIC-INDIC DIGIT THREE -00664 ARABIC-INDIC DIGIT FOUR -00665 ARABIC-INDIC DIGIT FIVE -00666 ARABIC-INDIC DIGIT SIX -00667 ARABIC-INDIC DIGIT SEVEN -00668 ARABIC-INDIC DIGIT EIGHT -00669 ARABIC-INDIC DIGIT NINE -0066A ARABIC PERCENT SIGN -0066B ARABIC DECIMAL SEPARATOR -0066C ARABIC THOUSANDS SEPARATOR -0066D ARABIC FIVE POINTED STAR -0066E ARABIC LETTER DOTLESS BEH -0066F ARABIC LETTER DOTLESS QAF -00670 ARABIC LETTER SUPERSCRIPT ALEF -00671 ARABIC LETTER ALEF WASLA -00672 ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE -00673 ARABIC LETTER ALEF WITH WAVY HAMZA BELOW -00674 ARABIC LETTER HIGH HAMZA -00675 ARABIC LETTER HIGH HAMZA ALEF -00676 ARABIC LETTER HIGH HAMZA WAW -00677 ARABIC LETTER U WITH HAMZA ABOVE -00678 ARABIC LETTER HIGH HAMZA YEH -00679 ARABIC LETTER TTEH -0067A ARABIC LETTER TTEHEH -0067B ARABIC LETTER BEEH -0067C ARABIC LETTER TEH WITH RING -0067D ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS -0067E ARABIC LETTER PEH -0067F ARABIC LETTER TEHEH -00680 ARABIC LETTER BEHEH -00681 ARABIC LETTER HAH WITH HAMZA ABOVE -00682 ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE -00683 ARABIC LETTER NYEH -00684 ARABIC LETTER DYEH -00685 ARABIC LETTER HAH WITH THREE DOTS ABOVE -00686 ARABIC LETTER TCHEH -00687 ARABIC LETTER TCHEHEH -00688 ARABIC LETTER DDAL -00689 ARABIC LETTER DAL WITH RING -0068A ARABIC LETTER DAL WITH DOT BELOW -0068B ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH -0068C ARABIC LETTER DAHAL -0068D ARABIC LETTER DDAHAL -0068E ARABIC LETTER DUL -0068F ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS -00690 ARABIC LETTER DAL WITH FOUR DOTS ABOVE -00691 ARABIC LETTER RREH -00692 ARABIC LETTER REH WITH SMALL V -00693 ARABIC LETTER REH WITH RING -00694 ARABIC LETTER REH WITH DOT BELOW -00695 ARABIC LETTER REH WITH SMALL V BELOW -00696 ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE -00697 ARABIC LETTER REH WITH TWO DOTS ABOVE -00698 ARABIC LETTER JEH -00699 ARABIC LETTER REH WITH FOUR DOTS ABOVE -0069A ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE -0069B ARABIC LETTER SEEN WITH THREE DOTS BELOW -0069C ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE -0069D ARABIC LETTER SAD WITH TWO DOTS BELOW -0069E ARABIC LETTER SAD WITH THREE DOTS ABOVE -0069F ARABIC LETTER TAH WITH THREE DOTS ABOVE -006A0 ARABIC LETTER AIN WITH THREE DOTS ABOVE -006A1 ARABIC LETTER DOTLESS FEH -006A2 ARABIC LETTER FEH WITH DOT MOVED BELOW -006A3 ARABIC LETTER FEH WITH DOT BELOW -006A4 ARABIC LETTER VEH -006A5 ARABIC LETTER FEH WITH THREE DOTS BELOW -006A6 ARABIC LETTER PEHEH -006A7 ARABIC LETTER QAF WITH DOT ABOVE -006A8 ARABIC LETTER QAF WITH THREE DOTS ABOVE -006A9 ARABIC LETTER KEHEH -006AA ARABIC LETTER SWASH KAF -006AB ARABIC LETTER KAF WITH RING -006AC ARABIC LETTER KAF WITH DOT ABOVE -006AD ARABIC LETTER NG -006AE ARABIC LETTER KAF WITH THREE DOTS BELOW -006AF ARABIC LETTER GAF -006B0 ARABIC LETTER GAF WITH RING -006B1 ARABIC LETTER NGOEH -006B2 ARABIC LETTER GAF WITH TWO DOTS BELOW -006B3 ARABIC LETTER GUEH -006B4 ARABIC LETTER GAF WITH THREE DOTS ABOVE -006B5 ARABIC LETTER LAM WITH SMALL V -006B6 ARABIC LETTER LAM WITH DOT ABOVE -006B7 ARABIC LETTER LAM WITH THREE DOTS ABOVE -006B8 ARABIC LETTER LAM WITH THREE DOTS BELOW -006B9 ARABIC LETTER NOON WITH DOT BELOW -006BA ARABIC LETTER NOON GHUNNA -006BB ARABIC LETTER RNOON -006BC ARABIC LETTER NOON WITH RING -006BD ARABIC LETTER NOON WITH THREE DOTS ABOVE -006BE ARABIC LETTER HEH DOACHASHMEE -006BF ARABIC LETTER TCHEH WITH DOT ABOVE -006C0 ARABIC LETTER HEH WITH YEH ABOVE -006C1 ARABIC LETTER HEH GOAL -006C2 ARABIC LETTER HEH GOAL WITH HAMZA ABOVE -006C3 ARABIC LETTER TEH MARBUTA GOAL -006C4 ARABIC LETTER WAW WITH RING -006C5 ARABIC LETTER KIRGHIZ OE -006C6 ARABIC LETTER OE -006C7 ARABIC LETTER U -006C8 ARABIC LETTER YU -006C9 ARABIC LETTER KIRGHIZ YU -006CA ARABIC LETTER WAW WITH TWO DOTS ABOVE -006CB ARABIC LETTER VE -006CC ARABIC LETTER FARSI YEH -006CD ARABIC LETTER YEH WITH TAIL -006CE ARABIC LETTER YEH WITH SMALL V -006CF ARABIC LETTER WAW WITH DOT ABOVE -006D0 ARABIC LETTER E -006D1 ARABIC LETTER YEH WITH THREE DOTS BELOW -006D2 ARABIC LETTER YEH BARREE -006D3 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE -006D4 ARABIC FULL STOP -006D5 ARABIC LETTER AE -006D6 ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA -006D7 ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA -006D8 ARABIC SMALL HIGH MEEM INITIAL FORM -006D9 ARABIC SMALL HIGH LAM ALEF -006DA ARABIC SMALL HIGH JEEM -006DB ARABIC SMALL HIGH THREE DOTS -006DC ARABIC SMALL HIGH SEEN -006DD ARABIC END OF AYAH -006DE ARABIC START OF RUB EL HIZB -006DF ARABIC SMALL HIGH ROUNDED ZERO -006E0 ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO -006E1 ARABIC SMALL HIGH DOTLESS HEAD OF KHAH -006E2 ARABIC SMALL HIGH MEEM ISOLATED FORM -006E3 ARABIC SMALL LOW SEEN -006E4 ARABIC SMALL HIGH MADDA -006E5 ARABIC SMALL WAW -006E6 ARABIC SMALL YEH -006E7 ARABIC SMALL HIGH YEH -006E8 ARABIC SMALL HIGH NOON -006E9 ARABIC PLACE OF SAJDAH -006EA ARABIC EMPTY CENTRE LOW STOP -006EB ARABIC EMPTY CENTRE HIGH STOP -006EC ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE -006ED ARABIC SMALL LOW MEEM -006EE ARABIC LETTER DAL WITH INVERTED V -006EF ARABIC LETTER REH WITH INVERTED V -006F0 EXTENDED ARABIC-INDIC DIGIT ZERO -006F1 EXTENDED ARABIC-INDIC DIGIT ONE -006F2 EXTENDED ARABIC-INDIC DIGIT TWO -006F3 EXTENDED ARABIC-INDIC DIGIT THREE -006F4 EXTENDED ARABIC-INDIC DIGIT FOUR -006F5 EXTENDED ARABIC-INDIC DIGIT FIVE -006F6 EXTENDED ARABIC-INDIC DIGIT SIX -006F7 EXTENDED ARABIC-INDIC DIGIT SEVEN -006F8 EXTENDED ARABIC-INDIC DIGIT EIGHT -006F9 EXTENDED ARABIC-INDIC DIGIT NINE -006FA ARABIC LETTER SHEEN WITH DOT BELOW -006FB ARABIC LETTER DAD WITH DOT BELOW -006FC ARABIC LETTER GHAIN WITH DOT BELOW -006FD ARABIC SIGN SINDHI AMPERSAND -006FE ARABIC SIGN SINDHI POSTPOSITION MEN -006FF ARABIC LETTER HEH WITH INVERTED V -00700 SYRIAC END OF PARAGRAPH -00701 SYRIAC SUPRALINEAR FULL STOP -00702 SYRIAC SUBLINEAR FULL STOP -00703 SYRIAC SUPRALINEAR COLON -00704 SYRIAC SUBLINEAR COLON -00705 SYRIAC HORIZONTAL COLON -00706 SYRIAC COLON SKEWED LEFT -00707 SYRIAC COLON SKEWED RIGHT -00708 SYRIAC SUPRALINEAR COLON SKEWED LEFT -00709 SYRIAC SUBLINEAR COLON SKEWED LEFT -00709 SYRIAC SUBLINEAR COLON SKEWED RIGHT -0070A SYRIAC CONTRACTION -0070B SYRIAC HARKLEAN OBELUS -0070C SYRIAC HARKLEAN METOBELUS -0070D SYRIAC HARKLEAN ASTERISCUS -0070F SYRIAC ABBREVIATION MARK -00710 SYRIAC LETTER ALAPH -00711 SYRIAC LETTER SUPERSCRIPT ALAPH -00712 SYRIAC LETTER BETH -00713 SYRIAC LETTER GAMAL -00714 SYRIAC LETTER GAMAL GARSHUNI -00715 SYRIAC LETTER DALATH -00716 SYRIAC LETTER DOTLESS DALATH RISH -00717 SYRIAC LETTER HE -00718 SYRIAC LETTER WAW -00719 SYRIAC LETTER ZAIN -0071A SYRIAC LETTER HETH -0071B SYRIAC LETTER TETH -0071C SYRIAC LETTER TETH GARSHUNI -0071D SYRIAC LETTER YUDH -0071E SYRIAC LETTER YUDH HE -0071F SYRIAC LETTER KAPH -00720 SYRIAC LETTER LAMADH -00721 SYRIAC LETTER MIM -00722 SYRIAC LETTER NUN -00723 SYRIAC LETTER SEMKATH -00724 SYRIAC LETTER FINAL SEMKATH -00725 SYRIAC LETTER E -00726 SYRIAC LETTER PE -00727 SYRIAC LETTER REVERSED PE -00728 SYRIAC LETTER SADHE -00729 SYRIAC LETTER QAPH -0072A SYRIAC LETTER RISH -0072B SYRIAC LETTER SHIN -0072C SYRIAC LETTER TAW -0072D SYRIAC LETTER PERSIAN BHETH -0072E SYRIAC LETTER PERSIAN GHAMAL -0072F SYRIAC LETTER PERSIAN DHALATH -00730 SYRIAC PTHAHA ABOVE -00731 SYRIAC PTHAHA BELOW -00732 SYRIAC PTHAHA DOTTED -00733 SYRIAC ZQAPHA ABOVE -00734 SYRIAC ZQAPHA BELOW -00735 SYRIAC ZQAPHA DOTTED -00736 SYRIAC RBASA ABOVE -00737 SYRIAC RBASA BELOW -00738 SYRIAC DOTTED ZLAMA HORIZONTAL -00739 SYRIAC DOTTED ZLAMA ANGULAR -0073A SYRIAC HBASA ABOVE -0073B SYRIAC HBASA BELOW -0073C SYRIAC HBASA-ESASA DOTTED -0073D SYRIAC ESASA ABOVE -0073E SYRIAC ESASA BELOW -0073F SYRIAC RWAHA -00740 SYRIAC FEMININE DOT -00741 SYRIAC QUSHSHAYA -00742 SYRIAC RUKKAKHA -00743 SYRIAC TWO VERTICAL DOTS ABOVE -00744 SYRIAC TWO VERTICAL DOTS BELOW -00745 SYRIAC THREE DOTS ABOVE -00746 SYRIAC THREE DOTS BELOW -00747 SYRIAC OBLIQUE LINE ABOVE -00748 SYRIAC OBLIQUE LINE BELOW -00749 SYRIAC MUSIC -0074A SYRIAC BARREKH -0074D SYRIAC LETTER SOGDIAN ZHAIN -0074E SYRIAC LETTER SOGDIAN KHAPH -0074F SYRIAC LETTER SOGDIAN FE -00750 ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW -00751 ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE -00752 ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW -00753 ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE -00754 ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE -00755 ARABIC LETTER BEH WITH INVERTED SMALL V BELOW -00756 ARABIC LETTER BEH WITH SMALL V -00757 ARABIC LETTER HAH WITH TWO DOTS ABOVE -00758 ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW -00759 ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH -0075A ARABIC LETTER DAL WITH INVERTED SMALL V BELOW -0075B ARABIC LETTER REH WITH STROKE -0075C ARABIC LETTER SEEN WITH FOUR DOTS ABOVE -0075D ARABIC LETTER AIN WITH TWO DOTS ABOVE -0075E ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE -0075F ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE -00760 ARABIC LETTER FEH WITH TWO DOTS BELOW -00761 ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW -00762 ARABIC LETTER KEHEH WITH DOT ABOVE -00763 ARABIC LETTER KEHEH WITH THREE DOTS ABOVE -00764 ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW -00765 ARABIC LETTER MEEM WITH DOT ABOVE -00766 ARABIC LETTER MEEM WITH DOT BELOW -00767 ARABIC LETTER NOON WITH TWO DOTS BELOW -00768 ARABIC LETTER NOON WITH SMALL TAH -00769 ARABIC LETTER NOON WITH SMALL V -0076A ARABIC LETTER LAM WITH BAR -0076B ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE -0076C ARABIC LETTER REH WITH HAMZA ABOVE -0076D ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE -0076E ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW -0076F ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS -00770 ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS -00771 ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS -00772 ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE -00773 ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE -00774 ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE -00775 ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE -00776 ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE -00777 ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW -00778 ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE -00779 ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE -0077A ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE -0077B ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE -0077C ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW -0077D ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE -0077E ARABIC LETTER SEEN WITH INVERTED V -0077F ARABIC LETTER KAF WITH TWO DOTS ABOVE -00780 THAANA LETTER HAA -00781 THAANA LETTER SHAVIYANI -00782 THAANA LETTER NOONU -00783 THAANA LETTER RAA -00784 THAANA LETTER BAA -00785 THAANA LETTER LHAVIYANI -00786 THAANA LETTER KAAFU -00787 THAANA LETTER ALIFU -00788 THAANA LETTER VAAVU -00789 THAANA LETTER MEEMU -0078A THAANA LETTER FAAFU -0078B THAANA LETTER DHAALU -0078C THAANA LETTER THAA -0078D THAANA LETTER LAAMU -0078E THAANA LETTER GAAFU -0078F THAANA LETTER GNAVIYANI -00790 THAANA LETTER SEENU -00791 THAANA LETTER DAVIYANI -00792 THAANA LETTER ZAVIYANI -00793 THAANA LETTER TAVIYANI -00794 THAANA LETTER YAA -00795 THAANA LETTER PAVIYANI -00796 THAANA LETTER JAVIYANI -00797 THAANA LETTER CHAVIYANI -00798 THAANA LETTER TTAA -00799 THAANA LETTER HHAA -0079A THAANA LETTER KHAA -0079B THAANA LETTER THAALU -0079C THAANA LETTER ZAA -0079D THAANA LETTER SHEENU -0079E THAANA LETTER SAADHU -0079F THAANA LETTER DAADHU -007A0 THAANA LETTER TO -007A1 THAANA LETTER ZO -007A2 THAANA LETTER AINU -007A3 THAANA LETTER GHAINU -007A4 THAANA LETTER QAAFU -007A5 THAANA LETTER WAAVU -007A6 THAANA ABAFILI -007A7 THAANA AABAAFILI -007A8 THAANA IBIFILI -007A9 THAANA EEBEEFILI -007AA THAANA UBUFILI -007AB THAANA OOBOOFILI -007AC THAANA EBEFILI -007AD THAANA EYBEYFILI -007AE THAANA OBOFILI -007AF THAANA OABOAFILI -007B0 THAANA SUKUN -007B1 THAANA LETTER NAA -007C0 NKO DIGIT ZERO -007C1 NKO DIGIT ONE -007C2 NKO DIGIT TWO -007C3 NKO DIGIT THREE -007C4 NKO DIGIT FOUR -007C5 NKO DIGIT FIVE -007C6 NKO DIGIT SIX -007C7 NKO DIGIT SEVEN -007C8 NKO DIGIT EIGHT -007C9 NKO DIGIT NINE -007CA NKO LETTER A -007CB NKO LETTER EE -007CC NKO LETTER I -007CD NKO LETTER E -007CE NKO LETTER U -007CF NKO LETTER OO -007D0 NKO LETTER O -007D1 NKO LETTER DAGBASINNA -007D2 NKO LETTER N -007D3 NKO LETTER BA -007D4 NKO LETTER PA -007D5 NKO LETTER TA -007D6 NKO LETTER JA -007D7 NKO LETTER CHA -007D8 NKO LETTER DA -007D9 NKO LETTER RA -007DA NKO LETTER RRA -007DB NKO LETTER SA -007DC NKO LETTER GBA -007DD NKO LETTER FA -007DE NKO LETTER KA -007DF NKO LETTER LA -007E0 NKO LETTER NA WOLOSO -007E1 NKO LETTER MA -007E2 NKO LETTER NYA -007E3 NKO LETTER NA -007E4 NKO LETTER HA -007E5 NKO LETTER WA -007E6 NKO LETTER YA -007E7 NKO LETTER NYA WOLOSO -007E8 NKO LETTER JONA JA -007E9 NKO LETTER JONA CHA -007EA NKO LETTER JONA RA -007EB NKO COMBINING SHORT HIGH TONE -007EC NKO COMBINING SHORT LOW TONE -007ED NKO COMBINING SHORT RISING TONE -007EE NKO COMBINING LONG DESCENDING TONE -007EF NKO COMBINING LONG HIGH TONE -007F0 NKO COMBINING LONG LOW TONE -007F1 NKO COMBINING LONG RISING TONE -007F2 NKO COMBINING NASALIZATION MARK -007F3 NKO COMBINING DOUBLE DOT ABOVE -007F4 NKO HIGH TONE APOSTROPHE -007F5 NKO LOW TONE APOSTROPHE -007F6 NKO SYMBOL OO DENNEN -007F7 NKO SYMBOL GBAKURUNEN -007F8 NKO COMMA -007F9 NKO EXCLAMATION MARK -007FA NKO LAJANYALAN -00800 SAMARITAN LETTER ALAF -00801 SAMARITAN LETTER BIT -00802 SAMARITAN LETTER GAMAN -00803 SAMARITAN LETTER DALAT -00804 SAMARITAN LETTER IY -00805 SAMARITAN LETTER BAA -00806 SAMARITAN LETTER ZEN -00807 SAMARITAN LETTER IT -00808 SAMARITAN LETTER TIT -00809 SAMARITAN LETTER YUT -0080A SAMARITAN LETTER KAAF -0080B SAMARITAN LETTER LABAT -0080C SAMARITAN LETTER MIM -0080D SAMARITAN LETTER NUN -0080E SAMARITAN LETTER SINGAAT -0080F SAMARITAN LETTER IN -00810 SAMARITAN LETTER FI -00811 SAMARITAN LETTER TSAADIY -00812 SAMARITAN LETTER QUF -00813 SAMARITAN LETTER RISH -00814 SAMARITAN LETTER SHAN -00815 SAMARITAN LETTER TAAF -00816 SAMARITAN MARK IN -00817 SAMARITAN MARK IN-ALAF -00818 SAMARITAN MARK OCCLUSION -00819 SAMARITAN MARK DAGESH -0081A SAMARITAN MODIFIER LETTER EPENTHETIC YUT -0081B SAMARITAN MARK EPENTHETIC YUT -0081C SAMARITAN VOWEL SIGN LONG E -0081D SAMARITAN VOWEL SIGN E -0081E SAMARITAN VOWEL SIGN OVERLONG AA -0081F SAMARITAN VOWEL SIGN LONG AA -00820 SAMARITAN VOWEL SIGN AA -00821 SAMARITAN VOWEL SIGN OVERLONG A -00822 SAMARITAN VOWEL SIGN LONG A -00823 SAMARITAN VOWEL SIGN A -00824 SAMARITAN MODIFIER LETTER SHORT A -00825 SAMARITAN VOWEL SIGN SHORT A -00826 SAMARITAN VOWEL SIGN LONG U -00827 SAMARITAN VOWEL SIGN U -00828 SAMARITAN MODIFIER LETTER I -00829 SAMARITAN VOWEL SIGN LONG I -0082A SAMARITAN VOWEL SIGN I -0082B SAMARITAN VOWEL SIGN O -0082C SAMARITAN VOWEL SIGN SUKUN -0082D SAMARITAN MARK NEQUDAA -00830 SAMARITAN PUNCTUATION NEQUDAA -00831 SAMARITAN PUNCTUATION AFSAAQ -00832 SAMARITAN PUNCTUATION ANGED -00833 SAMARITAN PUNCTUATION BAU -00834 SAMARITAN PUNCTUATION ATMAAU -00835 SAMARITAN PUNCTUATION SHIYYAALAA -00836 SAMARITAN ABBREVIATION MARK -00837 SAMARITAN PUNCTUATION MELODIC QITSA -00838 SAMARITAN PUNCTUATION ZIQAA -00839 SAMARITAN PUNCTUATION QITSA -0083A SAMARITAN PUNCTUATION ZAEF -0083B SAMARITAN PUNCTUATION TURU -0083C SAMARITAN PUNCTUATION ARKAANU -0083D SAMARITAN PUNCTUATION SOF MASHFAAT -0083E SAMARITAN PUNCTUATION ANNAAU -00840 MANDAIC LETTER HALQA -00841 MANDAIC LETTER AB -00842 MANDAIC LETTER AG -00843 MANDAIC LETTER AD -00844 MANDAIC LETTER AH -00845 MANDAIC LETTER USHENNA -00846 MANDAIC LETTER AZ -00847 MANDAIC LETTER IT -00848 MANDAIC LETTER ATT -00849 MANDAIC LETTER AKSA -0084A MANDAIC LETTER AK -0084B MANDAIC LETTER AL -0084C MANDAIC LETTER AM -0084D MANDAIC LETTER AN -0084E MANDAIC LETTER AS -0084F MANDAIC LETTER IN -00850 MANDAIC LETTER AP -00851 MANDAIC LETTER ASZ -00852 MANDAIC LETTER AQ -00853 MANDAIC LETTER AR -00854 MANDAIC LETTER ASH -00855 MANDAIC LETTER AT -00856 MANDAIC LETTER DUSHENNA -00857 MANDAIC LETTER KAD -00858 MANDAIC LETTER AIN -00859 MANDAIC AFFRICATION MARK -0085A MANDAIC VOCALIZATION MARK -0085B MANDAIC GEMINATION MARK -0085E MANDAIC PUNCTUATION -008A0 ARABIC LETTER BEH WITH SMALL V BELOW -008A1 ARABIC LETTER BEH WITH HAMZA ABOVE -008A2 ARABIC LETTER JEEM WITH TWO DOTS ABOVE -008A3 ARABIC LETTER TAH WITH TWO DOTS ABOVE -008A4 ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE -008A5 ARABIC LETTER QAF WITH DOT BELOW -008A6 ARABIC LETTER LAM WITH DOUBLE BAR -008A7 ARABIC LETTER MEEM WITH THREE DOTS ABOVE -008A8 ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE -008A9 ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE -008AA ARABIC LETTER REH WITH LOOP -008AB ARABIC LETTER WAW WITH DOT WITHIN -008AC ARABIC LETTER ROHINGYA YEH -008AD ARABIC LETTER LOW ALEF -008AE ARABIC LETTER DAL WITH THREE DOTS BELOW -008AF ARABIC LETTER SAD WITH THREE DOTS BELOW -008B0 ARABIC LETTER GAF WITH INVERTED STROKE -008B1 ARABIC LETTER STRAIGHT WAW -008B2 ARABIC LETTER ZAIN WITH INVERTED V ABOVE -008B3 ARABIC LETTER AIN WITH THREE DOTS BELOW -008B4 ARABIC LETTER KAF WITH DOT BELOW -008E3 ARABIC TURNED DAMMA BELOW -008E4 ARABIC CURLY FATHA -008E5 ARABIC CURLY DAMMA -008E6 ARABIC CURLY KASRA -008E7 ARABIC CURLY FATHATAN -008E8 ARABIC CURLY DAMMATAN -008E9 ARABIC CURLY KASRATAN -008EA ARABIC TONE ONE DOT ABOVE -008EB ARABIC TONE TWO DOTS ABOVE -008EC ARABIC TONE LOOP ABOVE -008ED ARABIC TONE ONE DOT BELOW -008EE ARABIC TONE TWO DOTS BELOW -008EF ARABIC TONE LOOP BELOW -008F0 ARABIC OPEN FATHATAN -008F1 ARABIC OPEN DAMMATAN -008F2 ARABIC OPEN KASRATAN -008F3 ARABIC SMALL HIGH WAW -008F4 ARABIC FATHA WITH RING -008F5 ARABIC FATHA WITH DOT ABOVE -008F6 ARABIC KASRA WITH DOT BELOW -008F7 ARABIC LEFT ARROWHEAD ABOVE -008F8 ARABIC RIGHT ARROWHEAD ABOVE -008F9 ARABIC LEFT ARROWHEAD BELOW -008FA ARABIC RIGHT ARROWHEAD BELOW -008FB ARABIC DOUBLE RIGHT ARROWHEAD ABOVE -008FC ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT -008FD ARABIC RIGHT ARROWHEAD ABOVE WITH DOT -008FE ARABIC DAMMA WITH DOT -008FF ARABIC MARK SIDEWAYS NOON GHUNNA -00900 DEVANAGARI SIGN INVERTED CANDRABINDU -00901 DEVANAGARI SIGN CANDRABINDU -00902 DEVANAGARI SIGN ANUSVARA -00903 DEVANAGARI SIGN VISARGA -00904 DEVANAGARI LETTER SHORT A -00905 DEVANAGARI LETTER A -00906 DEVANAGARI LETTER AA -00907 DEVANAGARI LETTER I -00908 DEVANAGARI LETTER II -00909 DEVANAGARI LETTER U -0090A DEVANAGARI LETTER UU -0090B DEVANAGARI LETTER VOCALIC R -0090C DEVANAGARI LETTER VOCALIC L -0090D DEVANAGARI LETTER CANDRA E -0090E DEVANAGARI LETTER SHORT E -0090F DEVANAGARI LETTER E -00910 DEVANAGARI LETTER AI -00911 DEVANAGARI LETTER CANDRA O -00912 DEVANAGARI LETTER SHORT O -00913 DEVANAGARI LETTER O -00914 DEVANAGARI LETTER AU -00915 DEVANAGARI LETTER KA -00916 DEVANAGARI LETTER KHA -00917 DEVANAGARI LETTER GA -00918 DEVANAGARI LETTER GHA -00919 DEVANAGARI LETTER NGA -0091A DEVANAGARI LETTER CA -0091B DEVANAGARI LETTER CHA -0091C DEVANAGARI LETTER JA -0091D DEVANAGARI LETTER JHA -0091E DEVANAGARI LETTER NYA -0091F DEVANAGARI LETTER TTA -00920 DEVANAGARI LETTER TTHA -00921 DEVANAGARI LETTER DDA -00922 DEVANAGARI LETTER DDHA -00923 DEVANAGARI LETTER NNA -00924 DEVANAGARI LETTER TA -00925 DEVANAGARI LETTER THA -00926 DEVANAGARI LETTER DA -00927 DEVANAGARI LETTER DHA -00928 DEVANAGARI LETTER NA -00929 DEVANAGARI LETTER NNNA -0092A DEVANAGARI LETTER PA -0092B DEVANAGARI LETTER PHA -0092C DEVANAGARI LETTER BA -0092D DEVANAGARI LETTER BHA -0092E DEVANAGARI LETTER MA -0092F DEVANAGARI LETTER YA -00930 DEVANAGARI LETTER RA -00931 DEVANAGARI LETTER RRA -00932 DEVANAGARI LETTER LA -00933 DEVANAGARI LETTER LLA -00934 DEVANAGARI LETTER LLLA -00935 DEVANAGARI LETTER VA -00936 DEVANAGARI LETTER SHA -00937 DEVANAGARI LETTER SSA -00938 DEVANAGARI LETTER SA -00939 DEVANAGARI LETTER HA -0093A DEVANAGARI VOWEL SIGN OE -0093B DEVANAGARI VOWEL SIGN OOE -0093C DEVANAGARI SIGN NUKTA -0093D DEVANAGARI SIGN AVAGRAHA -0093E DEVANAGARI VOWEL SIGN AA -0093F DEVANAGARI VOWEL SIGN I -00940 DEVANAGARI VOWEL SIGN II -00941 DEVANAGARI VOWEL SIGN U -00942 DEVANAGARI VOWEL SIGN UU -00943 DEVANAGARI VOWEL SIGN VOCALIC R -00944 DEVANAGARI VOWEL SIGN VOCALIC RR -00945 DEVANAGARI VOWEL SIGN CANDRA E -00946 DEVANAGARI VOWEL SIGN SHORT E -00947 DEVANAGARI VOWEL SIGN E -00948 DEVANAGARI VOWEL SIGN AI -00949 DEVANAGARI VOWEL SIGN CANDRA O -0094A DEVANAGARI VOWEL SIGN SHORT O -0094B DEVANAGARI VOWEL SIGN O -0094C DEVANAGARI VOWEL SIGN AU -0094D DEVANAGARI SIGN VIRAMA -0094E DEVANAGARI VOWEL SIGN PRISHTHAMATRA E -0094F DEVANAGARI VOWEL SIGN AW -00950 DEVANAGARI OM -00951 DEVANAGARI STRESS SIGN UDATTA -00952 DEVANAGARI STRESS SIGN ANUDATTA -00953 DEVANAGARI GRAVE ACCENT -00954 DEVANAGARI ACUTE ACCENT -00955 DEVANAGARI VOWEL SIGN CANDRA LONG E -00956 DEVANAGARI VOWEL SIGN UE -00957 DEVANAGARI VOWEL SIGN UUE -00958 DEVANAGARI LETTER QA -00959 DEVANAGARI LETTER KHHA -0095A DEVANAGARI LETTER GHHA -0095B DEVANAGARI LETTER ZA -0095C DEVANAGARI LETTER DDDHA -0095D DEVANAGARI LETTER RHA -0095E DEVANAGARI LETTER FA -0095F DEVANAGARI LETTER YYA -00960 DEVANAGARI LETTER VOCALIC RR -00961 DEVANAGARI LETTER VOCALIC LL -00962 DEVANAGARI VOWEL SIGN VOCALIC L -00963 DEVANAGARI VOWEL SIGN VOCALIC LL -00964 DEVANAGARI DANDA -00965 DEVANAGARI DOUBLE DANDA -00966 DEVANAGARI DIGIT ZERO -00967 DEVANAGARI DIGIT ONE -00968 DEVANAGARI DIGIT TWO -00969 DEVANAGARI DIGIT THREE -0096A DEVANAGARI DIGIT FOUR -0096B DEVANAGARI DIGIT FIVE -0096C DEVANAGARI DIGIT SIX -0096D DEVANAGARI DIGIT SEVEN -0096E DEVANAGARI DIGIT EIGHT -0096F DEVANAGARI DIGIT NINE -00970 DEVANAGARI ABBREVIATION SIGN -00971 DEVANAGARI SIGN HIGH SPACING DOT -00972 DEVANAGARI LETTER CANDRA A -00973 DEVANAGARI LETTER OE -00974 DEVANAGARI LETTER OOE -00975 DEVANAGARI LETTER AW -00976 DEVANAGARI LETTER UE -00977 DEVANAGARI LETTER UUE -00978 DEVANAGARI LETTER MARWARI DDA -00979 DEVANAGARI LETTER ZHA -0097A DEVANAGARI LETTER HEAVY YA -0097B DEVANAGARI LETTER GGA -0097C DEVANAGARI LETTER JJA -0097D DEVANAGARI LETTER GLOTTAL STOP -0097E DEVANAGARI LETTER DDDA -0097F DEVANAGARI LETTER BBA -00980 BENGALI ANJI -00981 BENGALI SIGN CANDRABINDU -00982 BENGALI SIGN ANUSVARA -00983 BENGALI SIGN VISARGA -00985 BENGALI LETTER A -00986 BENGALI LETTER AA -00987 BENGALI LETTER I -00988 BENGALI LETTER II -00989 BENGALI LETTER U -0098A BENGALI LETTER UU -0098B BENGALI LETTER VOCALIC R -0098C BENGALI LETTER VOCALIC L -0098F BENGALI LETTER E -00990 BENGALI LETTER AI -00993 BENGALI LETTER O -00994 BENGALI LETTER AU -00995 BENGALI LETTER KA -00996 BENGALI LETTER KHA -00997 BENGALI LETTER GA -00998 BENGALI LETTER GHA -00999 BENGALI LETTER NGA -0099A BENGALI LETTER CA -0099B BENGALI LETTER CHA -0099C BENGALI LETTER JA -0099D BENGALI LETTER JHA -0099E BENGALI LETTER NYA -0099F BENGALI LETTER TTA -009A0 BENGALI LETTER TTHA -009A1 BENGALI LETTER DDA -009A2 BENGALI LETTER DDHA -009A3 BENGALI LETTER NNA -009A4 BENGALI LETTER TA -009A5 BENGALI LETTER THA -009A6 BENGALI LETTER DA -009A7 BENGALI LETTER DHA -009A8 BENGALI LETTER NA -009AA BENGALI LETTER PA -009AB BENGALI LETTER PHA -009AC BENGALI LETTER BA -009AD BENGALI LETTER BHA -009AE BENGALI LETTER MA -009AF BENGALI LETTER YA -009B0 BENGALI LETTER RA -009B2 BENGALI LETTER LA -009B6 BENGALI LETTER SHA -009B7 BENGALI LETTER SSA -009B8 BENGALI LETTER SA -009B9 BENGALI LETTER HA -009BC BENGALI SIGN NUKTA -009BD BENGALI SIGN AVAGRAHA -009BE BENGALI VOWEL SIGN AA -009BF BENGALI VOWEL SIGN I -009C0 BENGALI VOWEL SIGN II -009C1 BENGALI VOWEL SIGN U -009C2 BENGALI VOWEL SIGN UU -009C3 BENGALI VOWEL SIGN VOCALIC R -009C4 BENGALI VOWEL SIGN VOCALIC RR -009C7 BENGALI VOWEL SIGN E -009C8 BENGALI VOWEL SIGN AI -009CB BENGALI VOWEL SIGN O -009CC BENGALI VOWEL SIGN AU -009CD BENGALI SIGN VIRAMA -009CE BENGALI LETTER KHANDA TA -009D7 BENGALI AU LENGTH MARK -009DC BENGALI LETTER RRA -009DD BENGALI LETTER RHA -009DF BENGALI LETTER YYA -009E0 BENGALI LETTER VOCALIC RR -009E1 BENGALI LETTER VOCALIC LL -009E2 BENGALI VOWEL SIGN VOCALIC L -009E3 BENGALI VOWEL SIGN VOCALIC LL -009E6 BENGALI DIGIT ZERO -009E7 BENGALI DIGIT ONE -009E8 BENGALI DIGIT TWO -009E9 BENGALI DIGIT THREE -009EA BENGALI DIGIT FOUR -009EB BENGALI DIGIT FIVE -009EC BENGALI DIGIT SIX -009ED BENGALI DIGIT SEVEN -009EE BENGALI DIGIT EIGHT -009EF BENGALI DIGIT NINE -009F0 BENGALI LETTER RA WITH MIDDLE DIAGONAL -009F1 BENGALI LETTER RA WITH LOWER DIAGONAL -009F2 BENGALI RUPEE MARK -009F3 BENGALI RUPEE SIGN -009F4 BENGALI CURRENCY NUMERATOR ONE -009F5 BENGALI CURRENCY NUMERATOR TWO -009F6 BENGALI CURRENCY NUMERATOR THREE -009F7 BENGALI CURRENCY NUMERATOR FOUR -009F8 BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR -009F9 BENGALI CURRENCY DENOMINATOR SIXTEEN -009FA BENGALI ISSHAR -009FB BENGALI GANDA MARK -00A01 GURMUKHI SIGN ADAK BINDI -00A02 GURMUKHI SIGN BINDI -00A03 GURMUKHI SIGN VISARGA -00A05 GURMUKHI LETTER A -00A06 GURMUKHI LETTER AA -00A07 GURMUKHI LETTER I -00A08 GURMUKHI LETTER II -00A09 GURMUKHI LETTER U -00A0A GURMUKHI LETTER UU -00A0F GURMUKHI LETTER EE -00A10 GURMUKHI LETTER AI -00A13 GURMUKHI LETTER OO -00A14 GURMUKHI LETTER AU -00A15 GURMUKHI LETTER KA -00A16 GURMUKHI LETTER KHA -00A17 GURMUKHI LETTER GA -00A18 GURMUKHI LETTER GHA -00A19 GURMUKHI LETTER NGA -00A1A GURMUKHI LETTER CA -00A1B GURMUKHI LETTER CHA -00A1C GURMUKHI LETTER JA -00A1D GURMUKHI LETTER JHA -00A1E GURMUKHI LETTER NYA -00A1F GURMUKHI LETTER TTA -00A20 GURMUKHI LETTER TTHA -00A21 GURMUKHI LETTER DDA -00A22 GURMUKHI LETTER DDHA -00A23 GURMUKHI LETTER NNA -00A24 GURMUKHI LETTER TA -00A25 GURMUKHI LETTER THA -00A26 GURMUKHI LETTER DA -00A27 GURMUKHI LETTER DHA -00A28 GURMUKHI LETTER NA -00A2A GURMUKHI LETTER PA -00A2B GURMUKHI LETTER PHA -00A2C GURMUKHI LETTER BA -00A2D GURMUKHI LETTER BHA -00A2E GURMUKHI LETTER MA -00A2F GURMUKHI LETTER YA -00A30 GURMUKHI LETTER RA -00A32 GURMUKHI LETTER LA -00A33 GURMUKHI LETTER LLA -00A35 GURMUKHI LETTER VA -00A36 GURMUKHI LETTER SHA -00A38 GURMUKHI LETTER SA -00A39 GURMUKHI LETTER HA -00A3C GURMUKHI SIGN NUKTA -00A3E GURMUKHI VOWEL SIGN AA -00A3F GURMUKHI VOWEL SIGN I -00A40 GURMUKHI VOWEL SIGN II -00A41 GURMUKHI VOWEL SIGN U -00A42 GURMUKHI VOWEL SIGN UU -00A47 GURMUKHI VOWEL SIGN EE -00A48 GURMUKHI VOWEL SIGN AI -00A4B GURMUKHI VOWEL SIGN OO -00A4C GURMUKHI VOWEL SIGN AU -00A4D GURMUKHI SIGN VIRAMA -00A51 GURMUKHI SIGN UDAAT -00A59 GURMUKHI LETTER KHHA -00A5A GURMUKHI LETTER GHHA -00A5B GURMUKHI LETTER ZA -00A5C GURMUKHI LETTER RRA -00A5E GURMUKHI LETTER FA -00A66 GURMUKHI DIGIT ZERO -00A67 GURMUKHI DIGIT ONE -00A68 GURMUKHI DIGIT TWO -00A69 GURMUKHI DIGIT THREE -00A6A GURMUKHI DIGIT FOUR -00A6B GURMUKHI DIGIT FIVE -00A6C GURMUKHI DIGIT SIX -00A6D GURMUKHI DIGIT SEVEN -00A6E GURMUKHI DIGIT EIGHT -00A6F GURMUKHI DIGIT NINE -00A70 GURMUKHI TIPPI -00A71 GURMUKHI ADDAK -00A72 GURMUKHI IRI -00A73 GURMUKHI URA -00A74 GURMUKHI EK ONKAR -00A75 GURMUKHI SIGN YAKASH -00A81 GUJARATI SIGN CANDRABINDU -00A82 GUJARATI SIGN ANUSVARA -00A83 GUJARATI SIGN VISARGA -00A85 GUJARATI LETTER A -00A86 GUJARATI LETTER AA -00A87 GUJARATI LETTER I -00A88 GUJARATI LETTER II -00A89 GUJARATI LETTER U -00A8A GUJARATI LETTER UU -00A8B GUJARATI LETTER VOCALIC R -00A8C GUJARATI LETTER VOCALIC L -00A8D GUJARATI VOWEL CANDRA E -00A8F GUJARATI LETTER E -00A90 GUJARATI LETTER AI -00A91 GUJARATI VOWEL CANDRA O -00A93 GUJARATI LETTER O -00A94 GUJARATI LETTER AU -00A95 GUJARATI LETTER KA -00A96 GUJARATI LETTER KHA -00A97 GUJARATI LETTER GA -00A98 GUJARATI LETTER GHA -00A99 GUJARATI LETTER NGA -00A9A GUJARATI LETTER CA -00A9B GUJARATI LETTER CHA -00A9C GUJARATI LETTER JA -00A9D GUJARATI LETTER JHA -00A9E GUJARATI LETTER NYA -00A9F GUJARATI LETTER TTA -00AA0 GUJARATI LETTER TTHA -00AA1 GUJARATI LETTER DDA -00AA2 GUJARATI LETTER DDHA -00AA3 GUJARATI LETTER NNA -00AA4 GUJARATI LETTER TA -00AA5 GUJARATI LETTER THA -00AA6 GUJARATI LETTER DA -00AA7 GUJARATI LETTER DHA -00AA8 GUJARATI LETTER NA -00AAA GUJARATI LETTER PA -00AAB GUJARATI LETTER PHA -00AAC GUJARATI LETTER BA -00AAD GUJARATI LETTER BHA -00AAE GUJARATI LETTER MA -00AAF GUJARATI LETTER YA -00AB0 GUJARATI LETTER RA -00AB2 GUJARATI LETTER LA -00AB3 GUJARATI LETTER LLA -00AB5 GUJARATI LETTER VA -00AB6 GUJARATI LETTER SHA -00AB7 GUJARATI LETTER SSA -00AB8 GUJARATI LETTER SA -00AB9 GUJARATI LETTER HA -00ABC GUJARATI SIGN NUKTA -00ABD GUJARATI SIGN AVAGRAHA -00ABE GUJARATI VOWEL SIGN AA -00ABF GUJARATI VOWEL SIGN I -00AC0 GUJARATI VOWEL SIGN II -00AC1 GUJARATI VOWEL SIGN U -00AC2 GUJARATI VOWEL SIGN UU -00AC3 GUJARATI VOWEL SIGN VOCALIC R -00AC4 GUJARATI VOWEL SIGN VOCALIC RR -00AC5 GUJARATI VOWEL SIGN CANDRA E -00AC7 GUJARATI VOWEL SIGN E -00AC8 GUJARATI VOWEL SIGN AI -00AC9 GUJARATI VOWEL SIGN CANDRA O -00ACB GUJARATI VOWEL SIGN O -00ACC GUJARATI VOWEL SIGN AU -00ACD GUJARATI SIGN VIRAMA -00AD0 GUJARATI OM -00AE0 GUJARATI LETTER VOCALIC RR -00AE1 GUJARATI LETTER VOCALIC LL -00AE2 GUJARATI VOWEL SIGN VOCALIC L -00AE3 GUJARATI VOWEL SIGN VOCALIC LL -00AE6 GUJARATI DIGIT ZERO -00AE7 GUJARATI DIGIT ONE -00AE8 GUJARATI DIGIT TWO -00AE9 GUJARATI DIGIT THREE -00AEA GUJARATI DIGIT FOUR -00AEB GUJARATI DIGIT FIVE -00AEC GUJARATI DIGIT SIX -00AED GUJARATI DIGIT SEVEN -00AEE GUJARATI DIGIT EIGHT -00AEF GUJARATI DIGIT NINE -00AF0 GUJARATI ABBREVIATION SIGN -00AF1 GUJARATI RUPEE SIGN -00AF9 GUJARATI LETTER ZHA -00B01 ORIYA SIGN CANDRABINDU -00B02 ORIYA SIGN ANUSVARA -00B03 ORIYA SIGN VISARGA -00B05 ORIYA LETTER A -00B06 ORIYA LETTER AA -00B07 ORIYA LETTER I -00B08 ORIYA LETTER II -00B09 ORIYA LETTER U -00B0A ORIYA LETTER UU -00B0B ORIYA LETTER VOCALIC R -00B0C ORIYA LETTER VOCALIC L -00B0F ORIYA LETTER E -00B10 ORIYA LETTER AI -00B13 ORIYA LETTER O -00B14 ORIYA LETTER AU -00B15 ORIYA LETTER KA -00B16 ORIYA LETTER KHA -00B17 ORIYA LETTER GA -00B18 ORIYA LETTER GHA -00B19 ORIYA LETTER NGA -00B1A ORIYA LETTER CA -00B1B ORIYA LETTER CHA -00B1C ORIYA LETTER JA -00B1D ORIYA LETTER JHA -00B1E ORIYA LETTER NYA -00B1F ORIYA LETTER TTA -00B20 ORIYA LETTER TTHA -00B21 ORIYA LETTER DDA -00B22 ORIYA LETTER DDHA -00B23 ORIYA LETTER NNA -00B24 ORIYA LETTER TA -00B25 ORIYA LETTER THA -00B26 ORIYA LETTER DA -00B27 ORIYA LETTER DHA -00B28 ORIYA LETTER NA -00B2A ORIYA LETTER PA -00B2B ORIYA LETTER PHA -00B2C ORIYA LETTER BA -00B2D ORIYA LETTER BHA -00B2E ORIYA LETTER MA -00B2F ORIYA LETTER YA -00B30 ORIYA LETTER RA -00B32 ORIYA LETTER LA -00B33 ORIYA LETTER LLA -00B35 ORIYA LETTER VA -00B36 ORIYA LETTER SHA -00B37 ORIYA LETTER SSA -00B38 ORIYA LETTER SA -00B39 ORIYA LETTER HA -00B3C ORIYA SIGN NUKTA -00B3D ORIYA SIGN AVAGRAHA -00B3E ORIYA VOWEL SIGN AA -00B3F ORIYA VOWEL SIGN I -00B40 ORIYA VOWEL SIGN II -00B41 ORIYA VOWEL SIGN U -00B42 ORIYA VOWEL SIGN UU -00B43 ORIYA VOWEL SIGN VOCALIC R -00B44 ORIYA VOWEL SIGN VOCALIC RR -00B47 ORIYA VOWEL SIGN E -00B48 ORIYA VOWEL SIGN AI -00B4B ORIYA VOWEL SIGN O -00B4C ORIYA VOWEL SIGN AU -00B4D ORIYA SIGN VIRAMA -00B56 ORIYA AI LENGTH MARK -00B57 ORIYA AU LENGTH MARK -00B5C ORIYA LETTER RRA -00B5D ORIYA LETTER RHA -00B5F ORIYA LETTER YYA -00B60 ORIYA LETTER VOCALIC RR -00B61 ORIYA LETTER VOCALIC LL -00B62 ORIYA VOWEL SIGN VOCALIC L -00B63 ORIYA VOWEL SIGN VOCALIC LL -00B66 ORIYA DIGIT ZERO -00B67 ORIYA DIGIT ONE -00B68 ORIYA DIGIT TWO -00B69 ORIYA DIGIT THREE -00B6A ORIYA DIGIT FOUR -00B6B ORIYA DIGIT FIVE -00B6C ORIYA DIGIT SIX -00B6D ORIYA DIGIT SEVEN -00B6E ORIYA DIGIT EIGHT -00B6F ORIYA DIGIT NINE -00B70 ORIYA ISSHAR -00B71 ORIYA LETTER WA -00B72 ORIYA FRACTION ONE QUARTER -00B73 ORIYA FRACTION ONE HALF -00B74 ORIYA FRACTION THREE QUARTERS -00B75 ORIYA FRACTION ONE SIXTEENTH -00B76 ORIYA FRACTION ONE EIGHTH -00B77 ORIYA FRACTION THREE SIXTEENTHS -00B82 TAMIL SIGN ANUSVARA -00B83 TAMIL SIGN VISARGA -00B85 TAMIL LETTER A -00B86 TAMIL LETTER AA -00B87 TAMIL LETTER I -00B88 TAMIL LETTER II -00B89 TAMIL LETTER U -00B8A TAMIL LETTER UU -00B8E TAMIL LETTER E -00B8F TAMIL LETTER EE -00B90 TAMIL LETTER AI -00B92 TAMIL LETTER O -00B93 TAMIL LETTER OO -00B94 TAMIL LETTER AU -00B95 TAMIL LETTER KA -00B99 TAMIL LETTER NGA -00B9A TAMIL LETTER CA -00B9C TAMIL LETTER JA -00B9E TAMIL LETTER NYA -00B9F TAMIL LETTER TTA -00BA3 TAMIL LETTER NNA -00BA4 TAMIL LETTER TA -00BA8 TAMIL LETTER NA -00BA9 TAMIL LETTER NNNA -00BAA TAMIL LETTER PA -00BAE TAMIL LETTER MA -00BAF TAMIL LETTER YA -00BB0 TAMIL LETTER RA -00BB1 TAMIL LETTER RRA -00BB2 TAMIL LETTER LA -00BB3 TAMIL LETTER LLA -00BB4 TAMIL LETTER LLLA -00BB5 TAMIL LETTER VA -00BB6 TAMIL LETTER SHA -00BB7 TAMIL LETTER SSA -00BB8 TAMIL LETTER SA -00BB9 TAMIL LETTER HA -00BBE TAMIL VOWEL SIGN AA -00BBF TAMIL VOWEL SIGN I -00BC0 TAMIL VOWEL SIGN II -00BC1 TAMIL VOWEL SIGN U -00BC2 TAMIL VOWEL SIGN UU -00BC6 TAMIL VOWEL SIGN E -00BC7 TAMIL VOWEL SIGN EE -00BC8 TAMIL VOWEL SIGN AI -00BCA TAMIL VOWEL SIGN O -00BCB TAMIL VOWEL SIGN OO -00BCC TAMIL VOWEL SIGN AU -00BCD TAMIL SIGN VIRAMA -00BD0 TAMIL OM -00BD7 TAMIL AU LENGTH MARK -00BE6 TAMIL DIGIT ZERO -00BE7 TAMIL DIGIT ONE -00BE8 TAMIL DIGIT TWO -00BE9 TAMIL DIGIT THREE -00BEA TAMIL DIGIT FOUR -00BEB TAMIL DIGIT FIVE -00BEC TAMIL DIGIT SIX -00BED TAMIL DIGIT SEVEN -00BEE TAMIL DIGIT EIGHT -00BEF TAMIL DIGIT NINE -00BF0 TAMIL NUMBER TEN -00BF1 TAMIL NUMBER ONE HUNDRED -00BF2 TAMIL NUMBER ONE THOUSAND -00BF3 TAMIL DAY SIGN -00BF4 TAMIL MONTH SIGN -00BF5 TAMIL YEAR SIGN -00BF6 TAMIL DEBIT SIGN -00BF7 TAMIL CREDIT SIGN -00BF8 TAMIL AS ABOVE SIGN -00BF9 TAMIL RUPEE SIGN -00BFA TAMIL NUMBER SIGN -00C00 TELUGU SIGN COMBINING CANDRABINDU ABOVE -00C01 TELUGU SIGN CANDRABINDU -00C02 TELUGU SIGN ANUSVARA -00C03 TELUGU SIGN VISARGA -00C05 TELUGU LETTER A -00C06 TELUGU LETTER AA -00C07 TELUGU LETTER I -00C08 TELUGU LETTER II -00C09 TELUGU LETTER U -00C0A TELUGU LETTER UU -00C0B TELUGU LETTER VOCALIC R -00C0C TELUGU LETTER VOCALIC L -00C0E TELUGU LETTER E -00C0F TELUGU LETTER EE -00C10 TELUGU LETTER AI -00C12 TELUGU LETTER O -00C13 TELUGU LETTER OO -00C14 TELUGU LETTER AU -00C15 TELUGU LETTER KA -00C16 TELUGU LETTER KHA -00C17 TELUGU LETTER GA -00C18 TELUGU LETTER GHA -00C19 TELUGU LETTER NGA -00C1A TELUGU LETTER CA -00C1B TELUGU LETTER CHA -00C1C TELUGU LETTER JA -00C1D TELUGU LETTER JHA -00C1E TELUGU LETTER NYA -00C1F TELUGU LETTER TTA -00C20 TELUGU LETTER TTHA -00C21 TELUGU LETTER DDA -00C22 TELUGU LETTER DDHA -00C23 TELUGU LETTER NNA -00C24 TELUGU LETTER TA -00C25 TELUGU LETTER THA -00C26 TELUGU LETTER DA -00C27 TELUGU LETTER DHA -00C28 TELUGU LETTER NA -00C2A TELUGU LETTER PA -00C2B TELUGU LETTER PHA -00C2C TELUGU LETTER BA -00C2D TELUGU LETTER BHA -00C2E TELUGU LETTER MA -00C2F TELUGU LETTER YA -00C30 TELUGU LETTER RA -00C31 TELUGU LETTER RRA -00C32 TELUGU LETTER LA -00C33 TELUGU LETTER LLA -00C34 TELUGU LETTER LLLA -00C35 TELUGU LETTER VA -00C36 TELUGU LETTER SHA -00C37 TELUGU LETTER SSA -00C38 TELUGU LETTER SA -00C39 TELUGU LETTER HA -00C3D TELUGU SIGN AVAGRAHA -00C3E TELUGU VOWEL SIGN AA -00C3F TELUGU VOWEL SIGN I -00C40 TELUGU VOWEL SIGN II -00C41 TELUGU VOWEL SIGN U -00C42 TELUGU VOWEL SIGN UU -00C43 TELUGU VOWEL SIGN VOCALIC R -00C44 TELUGU VOWEL SIGN VOCALIC RR -00C46 TELUGU VOWEL SIGN E -00C47 TELUGU VOWEL SIGN EE -00C48 TELUGU VOWEL SIGN AI -00C4A TELUGU VOWEL SIGN O -00C4B TELUGU VOWEL SIGN OO -00C4C TELUGU VOWEL SIGN AU -00C4D TELUGU SIGN VIRAMA -00C55 TELUGU LENGTH MARK -00C56 TELUGU AI LENGTH MARK -00C58 TELUGU LETTER TSA -00C59 TELUGU LETTER DZA -00C5A TELUGU LETTER RRRA -00C60 TELUGU LETTER VOCALIC RR -00C61 TELUGU LETTER VOCALIC LL -00C62 TELUGU VOWEL SIGN VOCALIC L -00C63 TELUGU VOWEL SIGN VOCALIC LL -00C66 TELUGU DIGIT ZERO -00C67 TELUGU DIGIT ONE -00C68 TELUGU DIGIT TWO -00C69 TELUGU DIGIT THREE -00C6A TELUGU DIGIT FOUR -00C6B TELUGU DIGIT FIVE -00C6C TELUGU DIGIT SIX -00C6D TELUGU DIGIT SEVEN -00C6E TELUGU DIGIT EIGHT -00C6F TELUGU DIGIT NINE -00C78 TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR -00C79 TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR -00C7A TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR -00C7B TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR -00C7C TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR -00C7D TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR -00C7E TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR -00C7F TELUGU SIGN TUUMU -00C81 KANNADA SIGN CANDRABINDU -00C82 KANNADA SIGN ANUSVARA -00C83 KANNADA SIGN VISARGA -00C85 KANNADA LETTER A -00C86 KANNADA LETTER AA -00C87 KANNADA LETTER I -00C88 KANNADA LETTER II -00C89 KANNADA LETTER U -00C8A KANNADA LETTER UU -00C8B KANNADA LETTER VOCALIC R -00C8C KANNADA LETTER VOCALIC L -00C8E KANNADA LETTER E -00C8F KANNADA LETTER EE -00C90 KANNADA LETTER AI -00C92 KANNADA LETTER O -00C93 KANNADA LETTER OO -00C94 KANNADA LETTER AU -00C95 KANNADA LETTER KA -00C96 KANNADA LETTER KHA -00C97 KANNADA LETTER GA -00C98 KANNADA LETTER GHA -00C99 KANNADA LETTER NGA -00C9A KANNADA LETTER CA -00C9B KANNADA LETTER CHA -00C9C KANNADA LETTER JA -00C9D KANNADA LETTER JHA -00C9E KANNADA LETTER NYA -00C9F KANNADA LETTER TTA -00CA0 KANNADA LETTER TTHA -00CA1 KANNADA LETTER DDA -00CA2 KANNADA LETTER DDHA -00CA3 KANNADA LETTER NNA -00CA4 KANNADA LETTER TA -00CA5 KANNADA LETTER THA -00CA6 KANNADA LETTER DA -00CA7 KANNADA LETTER DHA -00CA8 KANNADA LETTER NA -00CAA KANNADA LETTER PA -00CAB KANNADA LETTER PHA -00CAC KANNADA LETTER BA -00CAD KANNADA LETTER BHA -00CAE KANNADA LETTER MA -00CAF KANNADA LETTER YA -00CB0 KANNADA LETTER RA -00CB1 KANNADA LETTER RRA -00CB2 KANNADA LETTER LA -00CB3 KANNADA LETTER LLA -00CB5 KANNADA LETTER VA -00CB6 KANNADA LETTER SHA -00CB7 KANNADA LETTER SSA -00CB8 KANNADA LETTER SA -00CB9 KANNADA LETTER HA -00CBC KANNADA SIGN NUKTA -00CBD KANNADA SIGN AVAGRAHA -00CBE KANNADA VOWEL SIGN AA -00CBF KANNADA VOWEL SIGN I -00CC0 KANNADA VOWEL SIGN II -00CC1 KANNADA VOWEL SIGN U -00CC2 KANNADA VOWEL SIGN UU -00CC3 KANNADA VOWEL SIGN VOCALIC R -00CC4 KANNADA VOWEL SIGN VOCALIC RR -00CC6 KANNADA VOWEL SIGN E -00CC7 KANNADA VOWEL SIGN EE -00CC8 KANNADA VOWEL SIGN AI -00CCA KANNADA VOWEL SIGN O -00CCB KANNADA VOWEL SIGN OO -00CCC KANNADA VOWEL SIGN AU -00CCD KANNADA SIGN VIRAMA -00CD5 KANNADA LENGTH MARK -00CD6 KANNADA AI LENGTH MARK -00CDE KANNADA LETTER LLLA -00CDE KANNADA LETTER FA -00CE0 KANNADA LETTER VOCALIC RR -00CE1 KANNADA LETTER VOCALIC LL -00CE2 KANNADA VOWEL SIGN VOCALIC L -00CE3 KANNADA VOWEL SIGN VOCALIC LL -00CE6 KANNADA DIGIT ZERO -00CE7 KANNADA DIGIT ONE -00CE8 KANNADA DIGIT TWO -00CE9 KANNADA DIGIT THREE -00CEA KANNADA DIGIT FOUR -00CEB KANNADA DIGIT FIVE -00CEC KANNADA DIGIT SIX -00CED KANNADA DIGIT SEVEN -00CEE KANNADA DIGIT EIGHT -00CEF KANNADA DIGIT NINE -00CF1 KANNADA SIGN JIHVAMULIYA -00CF2 KANNADA SIGN UPADHMANIYA -00D01 MALAYALAM SIGN CANDRABINDU -00D02 MALAYALAM SIGN ANUSVARA -00D03 MALAYALAM SIGN VISARGA -00D05 MALAYALAM LETTER A -00D06 MALAYALAM LETTER AA -00D07 MALAYALAM LETTER I -00D08 MALAYALAM LETTER II -00D09 MALAYALAM LETTER U -00D0A MALAYALAM LETTER UU -00D0B MALAYALAM LETTER VOCALIC R -00D0C MALAYALAM LETTER VOCALIC L -00D0E MALAYALAM LETTER E -00D0F MALAYALAM LETTER EE -00D10 MALAYALAM LETTER AI -00D12 MALAYALAM LETTER O -00D13 MALAYALAM LETTER OO -00D14 MALAYALAM LETTER AU -00D15 MALAYALAM LETTER KA -00D16 MALAYALAM LETTER KHA -00D17 MALAYALAM LETTER GA -00D18 MALAYALAM LETTER GHA -00D19 MALAYALAM LETTER NGA -00D1A MALAYALAM LETTER CA -00D1B MALAYALAM LETTER CHA -00D1C MALAYALAM LETTER JA -00D1D MALAYALAM LETTER JHA -00D1E MALAYALAM LETTER NYA -00D1F MALAYALAM LETTER TTA -00D20 MALAYALAM LETTER TTHA -00D21 MALAYALAM LETTER DDA -00D22 MALAYALAM LETTER DDHA -00D23 MALAYALAM LETTER NNA -00D24 MALAYALAM LETTER TA -00D25 MALAYALAM LETTER THA -00D26 MALAYALAM LETTER DA -00D27 MALAYALAM LETTER DHA -00D28 MALAYALAM LETTER NA -00D29 MALAYALAM LETTER NNNA -00D2A MALAYALAM LETTER PA -00D2B MALAYALAM LETTER PHA -00D2C MALAYALAM LETTER BA -00D2D MALAYALAM LETTER BHA -00D2E MALAYALAM LETTER MA -00D2F MALAYALAM LETTER YA -00D30 MALAYALAM LETTER RA -00D31 MALAYALAM LETTER RRA -00D32 MALAYALAM LETTER LA -00D33 MALAYALAM LETTER LLA -00D34 MALAYALAM LETTER LLLA -00D35 MALAYALAM LETTER VA -00D36 MALAYALAM LETTER SHA -00D37 MALAYALAM LETTER SSA -00D38 MALAYALAM LETTER SA -00D39 MALAYALAM LETTER HA -00D3A MALAYALAM LETTER TTTA -00D3D MALAYALAM SIGN AVAGRAHA -00D3E MALAYALAM VOWEL SIGN AA -00D3F MALAYALAM VOWEL SIGN I -00D40 MALAYALAM VOWEL SIGN II -00D41 MALAYALAM VOWEL SIGN U -00D42 MALAYALAM VOWEL SIGN UU -00D43 MALAYALAM VOWEL SIGN VOCALIC R -00D44 MALAYALAM VOWEL SIGN VOCALIC RR -00D46 MALAYALAM VOWEL SIGN E -00D47 MALAYALAM VOWEL SIGN EE -00D48 MALAYALAM VOWEL SIGN AI -00D4A MALAYALAM VOWEL SIGN O -00D4B MALAYALAM VOWEL SIGN OO -00D4C MALAYALAM VOWEL SIGN AU -00D4D MALAYALAM SIGN VIRAMA -00D4E MALAYALAM LETTER DOT REPH -00D57 MALAYALAM AU LENGTH MARK -00D5F MALAYALAM LETTER ARCHAIC II -00D60 MALAYALAM LETTER VOCALIC RR -00D61 MALAYALAM LETTER VOCALIC LL -00D62 MALAYALAM VOWEL SIGN VOCALIC L -00D63 MALAYALAM VOWEL SIGN VOCALIC LL -00D66 MALAYALAM DIGIT ZERO -00D67 MALAYALAM DIGIT ONE -00D68 MALAYALAM DIGIT TWO -00D69 MALAYALAM DIGIT THREE -00D6A MALAYALAM DIGIT FOUR -00D6B MALAYALAM DIGIT FIVE -00D6C MALAYALAM DIGIT SIX -00D6D MALAYALAM DIGIT SEVEN -00D6E MALAYALAM DIGIT EIGHT -00D6F MALAYALAM DIGIT NINE -00D70 MALAYALAM NUMBER TEN -00D71 MALAYALAM NUMBER ONE HUNDRED -00D72 MALAYALAM NUMBER ONE THOUSAND -00D73 MALAYALAM FRACTION ONE QUARTER -00D74 MALAYALAM FRACTION ONE HALF -00D75 MALAYALAM FRACTION THREE QUARTERS -00D79 MALAYALAM DATE MARK -00D7A MALAYALAM LETTER CHILLU NN -00D7B MALAYALAM LETTER CHILLU N -00D7C MALAYALAM LETTER CHILLU RR -00D7D MALAYALAM LETTER CHILLU L -00D7E MALAYALAM LETTER CHILLU LL -00D7F MALAYALAM LETTER CHILLU K -00D82 SINHALA SIGN ANUSVARAYA -00D83 SINHALA SIGN VISARGAYA -00D85 SINHALA LETTER AYANNA -00D86 SINHALA LETTER AAYANNA -00D87 SINHALA LETTER AEYANNA -00D88 SINHALA LETTER AEEYANNA -00D89 SINHALA LETTER IYANNA -00D8A SINHALA LETTER IIYANNA -00D8B SINHALA LETTER UYANNA -00D8C SINHALA LETTER UUYANNA -00D8D SINHALA LETTER IRUYANNA -00D8E SINHALA LETTER IRUUYANNA -00D8F SINHALA LETTER ILUYANNA -00D90 SINHALA LETTER ILUUYANNA -00D91 SINHALA LETTER EYANNA -00D92 SINHALA LETTER EEYANNA -00D93 SINHALA LETTER AIYANNA -00D94 SINHALA LETTER OYANNA -00D95 SINHALA LETTER OOYANNA -00D96 SINHALA LETTER AUYANNA -00D9A SINHALA LETTER ALPAPRAANA KAYANNA -00D9B SINHALA LETTER MAHAAPRAANA KAYANNA -00D9C SINHALA LETTER ALPAPRAANA GAYANNA -00D9D SINHALA LETTER MAHAAPRAANA GAYANNA -00D9E SINHALA LETTER KANTAJA NAASIKYAYA -00D9F SINHALA LETTER SANYAKA GAYANNA -00DA0 SINHALA LETTER ALPAPRAANA CAYANNA -00DA1 SINHALA LETTER MAHAAPRAANA CAYANNA -00DA2 SINHALA LETTER ALPAPRAANA JAYANNA -00DA3 SINHALA LETTER MAHAAPRAANA JAYANNA -00DA4 SINHALA LETTER TAALUJA NAASIKYAYA -00DA5 SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA -00DA6 SINHALA LETTER SANYAKA JAYANNA -00DA7 SINHALA LETTER ALPAPRAANA TTAYANNA -00DA8 SINHALA LETTER MAHAAPRAANA TTAYANNA -00DA9 SINHALA LETTER ALPAPRAANA DDAYANNA -00DAA SINHALA LETTER MAHAAPRAANA DDAYANNA -00DAB SINHALA LETTER MUURDHAJA NAYANNA -00DAC SINHALA LETTER SANYAKA DDAYANNA -00DAD SINHALA LETTER ALPAPRAANA TAYANNA -00DAE SINHALA LETTER MAHAAPRAANA TAYANNA -00DAF SINHALA LETTER ALPAPRAANA DAYANNA -00DB0 SINHALA LETTER MAHAAPRAANA DAYANNA -00DB1 SINHALA LETTER DANTAJA NAYANNA -00DB3 SINHALA LETTER SANYAKA DAYANNA -00DB4 SINHALA LETTER ALPAPRAANA PAYANNA -00DB5 SINHALA LETTER MAHAAPRAANA PAYANNA -00DB6 SINHALA LETTER ALPAPRAANA BAYANNA -00DB7 SINHALA LETTER MAHAAPRAANA BAYANNA -00DB8 SINHALA LETTER MAYANNA -00DB9 SINHALA LETTER AMBA BAYANNA -00DBA SINHALA LETTER YAYANNA -00DBB SINHALA LETTER RAYANNA -00DBD SINHALA LETTER DANTAJA LAYANNA -00DC0 SINHALA LETTER VAYANNA -00DC1 SINHALA LETTER TAALUJA SAYANNA -00DC2 SINHALA LETTER MUURDHAJA SAYANNA -00DC3 SINHALA LETTER DANTAJA SAYANNA -00DC4 SINHALA LETTER HAYANNA -00DC5 SINHALA LETTER MUURDHAJA LAYANNA -00DC6 SINHALA LETTER FAYANNA -00DCA SINHALA SIGN AL-LAKUNA -00DCF SINHALA VOWEL SIGN AELA-PILLA -00DD0 SINHALA VOWEL SIGN KETTI AEDA-PILLA -00DD1 SINHALA VOWEL SIGN DIGA AEDA-PILLA -00DD2 SINHALA VOWEL SIGN KETTI IS-PILLA -00DD3 SINHALA VOWEL SIGN DIGA IS-PILLA -00DD4 SINHALA VOWEL SIGN KETTI PAA-PILLA -00DD6 SINHALA VOWEL SIGN DIGA PAA-PILLA -00DD8 SINHALA VOWEL SIGN GAETTA-PILLA -00DD9 SINHALA VOWEL SIGN KOMBUVA -00DDA SINHALA VOWEL SIGN DIGA KOMBUVA -00DDB SINHALA VOWEL SIGN KOMBU DEKA -00DDC SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA -00DDD SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA -00DDE SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA -00DDF SINHALA VOWEL SIGN GAYANUKITTA -00DE6 SINHALA LITH DIGIT ZERO -00DE7 SINHALA LITH DIGIT ONE -00DE8 SINHALA LITH DIGIT TWO -00DE9 SINHALA LITH DIGIT THREE -00DEA SINHALA LITH DIGIT FOUR -00DEB SINHALA LITH DIGIT FIVE -00DEC SINHALA LITH DIGIT SIX -00DED SINHALA LITH DIGIT SEVEN -00DEE SINHALA LITH DIGIT EIGHT -00DEF SINHALA LITH DIGIT NINE -00DF2 SINHALA VOWEL SIGN DIGA GAETTA-PILLA -00DF3 SINHALA VOWEL SIGN DIGA GAYANUKITTA -00DF4 SINHALA PUNCTUATION KUNDDALIYA -00E01 THAI CHARACTER KO KAI -00E02 THAI CHARACTER KHO KHAI -00E03 THAI CHARACTER KHO KHUAT -00E04 THAI CHARACTER KHO KHWAI -00E05 THAI CHARACTER KHO KHON -00E06 THAI CHARACTER KHO RAKHANG -00E07 THAI CHARACTER NGO NGU -00E08 THAI CHARACTER CHO CHAN -00E09 THAI CHARACTER CHO CHING -00E0A THAI CHARACTER CHO CHANG -00E0B THAI CHARACTER SO SO -00E0C THAI CHARACTER CHO CHOE -00E0D THAI CHARACTER YO YING -00E0E THAI CHARACTER DO CHADA -00E0F THAI CHARACTER TO PATAK -00E10 THAI CHARACTER THO THAN -00E11 THAI CHARACTER THO NANGMONTHO -00E12 THAI CHARACTER THO PHUTHAO -00E13 THAI CHARACTER NO NEN -00E14 THAI CHARACTER DO DEK -00E15 THAI CHARACTER TO TAO -00E16 THAI CHARACTER THO THUNG -00E17 THAI CHARACTER THO THAHAN -00E18 THAI CHARACTER THO THONG -00E19 THAI CHARACTER NO NU -00E1A THAI CHARACTER BO BAIMAI -00E1B THAI CHARACTER PO PLA -00E1C THAI CHARACTER PHO PHUNG -00E1D THAI CHARACTER FO FA -00E1E THAI CHARACTER PHO PHAN -00E1F THAI CHARACTER FO FAN -00E20 THAI CHARACTER PHO SAMPHAO -00E21 THAI CHARACTER MO MA -00E22 THAI CHARACTER YO YAK -00E23 THAI CHARACTER RO RUA -00E24 THAI CHARACTER RU -00E25 THAI CHARACTER LO LING -00E26 THAI CHARACTER LU -00E27 THAI CHARACTER WO WAEN -00E28 THAI CHARACTER SO SALA -00E29 THAI CHARACTER SO RUSI -00E2A THAI CHARACTER SO SUA -00E2B THAI CHARACTER HO HIP -00E2C THAI CHARACTER LO CHULA -00E2D THAI CHARACTER O ANG -00E2E THAI CHARACTER HO NOKHUK -00E2F THAI CHARACTER PAIYANNOI -00E30 THAI CHARACTER SARA A -00E31 THAI CHARACTER MAI HAN-AKAT -00E32 THAI CHARACTER SARA AA -00E33 THAI CHARACTER SARA AM -00E34 THAI CHARACTER SARA I -00E35 THAI CHARACTER SARA II -00E36 THAI CHARACTER SARA UE -00E37 THAI CHARACTER SARA UEE -00E38 THAI CHARACTER SARA U -00E39 THAI CHARACTER SARA UU -00E3A THAI CHARACTER PHINTHU -00E3F THAI CURRENCY SYMBOL BAHT -00E40 THAI CHARACTER SARA E -00E41 THAI CHARACTER SARA AE -00E42 THAI CHARACTER SARA O -00E43 THAI CHARACTER SARA AI MAIMUAN -00E44 THAI CHARACTER SARA AI MAIMALAI -00E45 THAI CHARACTER LAKKHANGYAO -00E46 THAI CHARACTER MAIYAMOK -00E47 THAI CHARACTER MAITAIKHU -00E48 THAI CHARACTER MAI EK -00E49 THAI CHARACTER MAI THO -00E4A THAI CHARACTER MAI TRI -00E4B THAI CHARACTER MAI CHATTAWA -00E4C THAI CHARACTER THANTHAKHAT -00E4D THAI CHARACTER NIKHAHIT -00E4E THAI CHARACTER YAMAKKAN -00E4F THAI CHARACTER FONGMAN -00E50 THAI DIGIT ZERO -00E51 THAI DIGIT ONE -00E52 THAI DIGIT TWO -00E53 THAI DIGIT THREE -00E54 THAI DIGIT FOUR -00E55 THAI DIGIT FIVE -00E56 THAI DIGIT SIX -00E57 THAI DIGIT SEVEN -00E58 THAI DIGIT EIGHT -00E59 THAI DIGIT NINE -00E5A THAI CHARACTER ANGKHANKHU -00E5B THAI CHARACTER KHOMUT -00E81 LAO LETTER KO -00E82 LAO LETTER KHO SUNG -00E84 LAO LETTER KHO TAM -00E87 LAO LETTER NGO -00E88 LAO LETTER CO -00E8A LAO LETTER SO TAM -00E8D LAO LETTER NYO -00E94 LAO LETTER DO -00E95 LAO LETTER TO -00E96 LAO LETTER THO SUNG -00E97 LAO LETTER THO TAM -00E99 LAO LETTER NO -00E9A LAO LETTER BO -00E9B LAO LETTER PO -00E9C LAO LETTER PHO SUNG -00E9D LAO LETTER FO FON -00E9D LAO LETTER FO TAM -00E9E LAO LETTER PHO TAM -00E9F LAO LETTER FO FAY -00E9F LAO LETTER FO SUNG -00EA1 LAO LETTER MO -00EA2 LAO LETTER YO -00EA3 LAO LETTER RO -00EA3 LAO LETTER LO LING -00EA5 LAO LETTER LO -00EA5 LAO LETTER LO LOOT -00EA7 LAO LETTER WO -00EAA LAO LETTER SO SUNG -00EAB LAO LETTER HO SUNG -00EAD LAO LETTER O -00EAE LAO LETTER HO TAM -00EAF LAO ELLIPSIS -00EB0 LAO VOWEL SIGN A -00EB1 LAO VOWEL SIGN MAI KAN -00EB2 LAO VOWEL SIGN AA -00EB3 LAO VOWEL SIGN AM -00EB4 LAO VOWEL SIGN I -00EB5 LAO VOWEL SIGN II -00EB6 LAO VOWEL SIGN Y -00EB7 LAO VOWEL SIGN YY -00EB8 LAO VOWEL SIGN U -00EB9 LAO VOWEL SIGN UU -00EBB LAO VOWEL SIGN MAI KON -00EBC LAO SEMIVOWEL SIGN LO -00EBD LAO SEMIVOWEL SIGN NYO -00EC0 LAO VOWEL SIGN E -00EC1 LAO VOWEL SIGN EI -00EC2 LAO VOWEL SIGN O -00EC3 LAO VOWEL SIGN AY -00EC4 LAO VOWEL SIGN AI -00EC6 LAO KO LA -00EC8 LAO TONE MAI EK -00EC9 LAO TONE MAI THO -00ECA LAO TONE MAI TI -00ECB LAO TONE MAI CATAWA -00ECC LAO CANCELLATION MARK -00ECD LAO NIGGAHITA -00ED0 LAO DIGIT ZERO -00ED1 LAO DIGIT ONE -00ED2 LAO DIGIT TWO -00ED3 LAO DIGIT THREE -00ED4 LAO DIGIT FOUR -00ED5 LAO DIGIT FIVE -00ED6 LAO DIGIT SIX -00ED7 LAO DIGIT SEVEN -00ED8 LAO DIGIT EIGHT -00ED9 LAO DIGIT NINE -00EDC LAO HO NO -00EDD LAO HO MO -00EDE LAO LETTER KHMU GO -00EDF LAO LETTER KHMU NYO -00F00 TIBETAN SYLLABLE OM -00F01 TIBETAN MARK GTER YIG MGO TRUNCATED A -00F02 TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA -00F03 TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA -00F04 TIBETAN MARK INITIAL YIG MGO MDUN MA -00F05 TIBETAN MARK CLOSING YIG MGO SGAB MA -00F06 TIBETAN MARK CARET YIG MGO PHUR SHAD MA -00F07 TIBETAN MARK YIG MGO TSHEG SHAD MA -00F08 TIBETAN MARK SBRUL SHAD -00F09 TIBETAN MARK BSKUR YIG MGO -00F0A TIBETAN MARK BKA- SHOG YIG MGO -00F0B TIBETAN MARK INTERSYLLABIC TSHEG -00F0C TIBETAN MARK DELIMITER TSHEG BSTAR -00F0D TIBETAN MARK SHAD -00F0E TIBETAN MARK NYIS SHAD -00F0F TIBETAN MARK TSHEG SHAD -00F10 TIBETAN MARK NYIS TSHEG SHAD -00F11 TIBETAN MARK RIN CHEN SPUNGS SHAD -00F12 TIBETAN MARK RGYA GRAM SHAD -00F13 TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN -00F14 TIBETAN MARK GTER TSHEG -00F15 TIBETAN LOGOTYPE SIGN CHAD RTAGS -00F16 TIBETAN LOGOTYPE SIGN LHAG RTAGS -00F17 TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS -00F18 TIBETAN ASTROLOGICAL SIGN -KHYUD PA -00F19 TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS -00F1A TIBETAN SIGN RDEL DKAR GCIG -00F1B TIBETAN SIGN RDEL DKAR GNYIS -00F1C TIBETAN SIGN RDEL DKAR GSUM -00F1D TIBETAN SIGN RDEL NAG GCIG -00F1E TIBETAN SIGN RDEL NAG GNYIS -00F1F TIBETAN SIGN RDEL DKAR RDEL NAG -00F20 TIBETAN DIGIT ZERO -00F21 TIBETAN DIGIT ONE -00F22 TIBETAN DIGIT TWO -00F23 TIBETAN DIGIT THREE -00F24 TIBETAN DIGIT FOUR -00F25 TIBETAN DIGIT FIVE -00F26 TIBETAN DIGIT SIX -00F27 TIBETAN DIGIT SEVEN -00F28 TIBETAN DIGIT EIGHT -00F29 TIBETAN DIGIT NINE -00F2A TIBETAN DIGIT HALF ONE -00F2B TIBETAN DIGIT HALF TWO -00F2C TIBETAN DIGIT HALF THREE -00F2D TIBETAN DIGIT HALF FOUR -00F2E TIBETAN DIGIT HALF FIVE -00F2F TIBETAN DIGIT HALF SIX -00F30 TIBETAN DIGIT HALF SEVEN -00F31 TIBETAN DIGIT HALF EIGHT -00F32 TIBETAN DIGIT HALF NINE -00F33 TIBETAN DIGIT HALF ZERO -00F34 TIBETAN MARK BSDUS RTAGS -00F35 TIBETAN MARK NGAS BZUNG NYI ZLA -00F36 TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN -00F37 TIBETAN MARK NGAS BZUNG SGOR RTAGS -00F38 TIBETAN MARK CHE MGO -00F39 TIBETAN MARK TSA -PHRU -00F3A TIBETAN MARK GUG RTAGS GYON -00F3B TIBETAN MARK GUG RTAGS GYAS -00F3C TIBETAN MARK ANG KHANG GYON -00F3D TIBETAN MARK ANG KHANG GYAS -00F3E TIBETAN SIGN YAR TSHES -00F3F TIBETAN SIGN MAR TSHES -00F40 TIBETAN LETTER KA -00F41 TIBETAN LETTER KHA -00F42 TIBETAN LETTER GA -00F43 TIBETAN LETTER GHA -00F44 TIBETAN LETTER NGA -00F45 TIBETAN LETTER CA -00F46 TIBETAN LETTER CHA -00F47 TIBETAN LETTER JA -00F49 TIBETAN LETTER NYA -00F4A TIBETAN LETTER TTA -00F4B TIBETAN LETTER TTHA -00F4C TIBETAN LETTER DDA -00F4D TIBETAN LETTER DDHA -00F4E TIBETAN LETTER NNA -00F4F TIBETAN LETTER TA -00F50 TIBETAN LETTER THA -00F51 TIBETAN LETTER DA -00F52 TIBETAN LETTER DHA -00F53 TIBETAN LETTER NA -00F54 TIBETAN LETTER PA -00F55 TIBETAN LETTER PHA -00F56 TIBETAN LETTER BA -00F57 TIBETAN LETTER BHA -00F58 TIBETAN LETTER MA -00F59 TIBETAN LETTER TSA -00F5A TIBETAN LETTER TSHA -00F5B TIBETAN LETTER DZA -00F5C TIBETAN LETTER DZHA -00F5D TIBETAN LETTER WA -00F5E TIBETAN LETTER ZHA -00F5F TIBETAN LETTER ZA -00F60 TIBETAN LETTER -A -00F61 TIBETAN LETTER YA -00F62 TIBETAN LETTER RA -00F63 TIBETAN LETTER LA -00F64 TIBETAN LETTER SHA -00F65 TIBETAN LETTER SSA -00F66 TIBETAN LETTER SA -00F67 TIBETAN LETTER HA -00F68 TIBETAN LETTER A -00F69 TIBETAN LETTER KSSA -00F6A TIBETAN LETTER FIXED-FORM RA -00F6B TIBETAN LETTER KKA -00F6C TIBETAN LETTER RRA -00F71 TIBETAN VOWEL SIGN AA -00F72 TIBETAN VOWEL SIGN I -00F73 TIBETAN VOWEL SIGN II -00F74 TIBETAN VOWEL SIGN U -00F75 TIBETAN VOWEL SIGN UU -00F76 TIBETAN VOWEL SIGN VOCALIC R -00F77 TIBETAN VOWEL SIGN VOCALIC RR -00F78 TIBETAN VOWEL SIGN VOCALIC L -00F79 TIBETAN VOWEL SIGN VOCALIC LL -00F7A TIBETAN VOWEL SIGN E -00F7B TIBETAN VOWEL SIGN EE -00F7C TIBETAN VOWEL SIGN O -00F7D TIBETAN VOWEL SIGN OO -00F7E TIBETAN SIGN RJES SU NGA RO -00F7F TIBETAN SIGN RNAM BCAD -00F80 TIBETAN VOWEL SIGN REVERSED I -00F81 TIBETAN VOWEL SIGN REVERSED II -00F82 TIBETAN SIGN NYI ZLA NAA DA -00F83 TIBETAN SIGN SNA LDAN -00F84 TIBETAN MARK HALANTA -00F85 TIBETAN MARK PALUTA -00F86 TIBETAN SIGN LCI RTAGS -00F87 TIBETAN SIGN YANG RTAGS -00F88 TIBETAN SIGN LCE TSA CAN -00F89 TIBETAN SIGN MCHU CAN -00F8A TIBETAN SIGN GRU CAN RGYINGS -00F8B TIBETAN SIGN GRU MED RGYINGS -00F8C TIBETAN SIGN INVERTED MCHU CAN -00F8D TIBETAN SUBJOINED SIGN LCE TSA CAN -00F8E TIBETAN SUBJOINED SIGN MCHU CAN -00F8F TIBETAN SUBJOINED SIGN INVERTED MCHU CAN -00F90 TIBETAN SUBJOINED LETTER KA -00F91 TIBETAN SUBJOINED LETTER KHA -00F92 TIBETAN SUBJOINED LETTER GA -00F93 TIBETAN SUBJOINED LETTER GHA -00F94 TIBETAN SUBJOINED LETTER NGA -00F95 TIBETAN SUBJOINED LETTER CA -00F96 TIBETAN SUBJOINED LETTER CHA -00F97 TIBETAN SUBJOINED LETTER JA -00F99 TIBETAN SUBJOINED LETTER NYA -00F9A TIBETAN SUBJOINED LETTER TTA -00F9B TIBETAN SUBJOINED LETTER TTHA -00F9C TIBETAN SUBJOINED LETTER DDA -00F9D TIBETAN SUBJOINED LETTER DDHA -00F9E TIBETAN SUBJOINED LETTER NNA -00F9F TIBETAN SUBJOINED LETTER TA -00FA0 TIBETAN SUBJOINED LETTER THA -00FA1 TIBETAN SUBJOINED LETTER DA -00FA2 TIBETAN SUBJOINED LETTER DHA -00FA3 TIBETAN SUBJOINED LETTER NA -00FA4 TIBETAN SUBJOINED LETTER PA -00FA5 TIBETAN SUBJOINED LETTER PHA -00FA6 TIBETAN SUBJOINED LETTER BA -00FA7 TIBETAN SUBJOINED LETTER BHA -00FA8 TIBETAN SUBJOINED LETTER MA -00FA9 TIBETAN SUBJOINED LETTER TSA -00FAA TIBETAN SUBJOINED LETTER TSHA -00FAB TIBETAN SUBJOINED LETTER DZA -00FAC TIBETAN SUBJOINED LETTER DZHA -00FAD TIBETAN SUBJOINED LETTER WA -00FAE TIBETAN SUBJOINED LETTER ZHA -00FAF TIBETAN SUBJOINED LETTER ZA -00FB0 TIBETAN SUBJOINED LETTER -A -00FB1 TIBETAN SUBJOINED LETTER YA -00FB2 TIBETAN SUBJOINED LETTER RA -00FB3 TIBETAN SUBJOINED LETTER LA -00FB4 TIBETAN SUBJOINED LETTER SHA -00FB5 TIBETAN SUBJOINED LETTER SSA -00FB6 TIBETAN SUBJOINED LETTER SA -00FB7 TIBETAN SUBJOINED LETTER HA -00FB8 TIBETAN SUBJOINED LETTER A -00FB9 TIBETAN SUBJOINED LETTER KSSA -00FBA TIBETAN SUBJOINED LETTER FIXED-FORM WA -00FBB TIBETAN SUBJOINED LETTER FIXED-FORM YA -00FBC TIBETAN SUBJOINED LETTER FIXED-FORM RA -00FBE TIBETAN KU RU KHA -00FBF TIBETAN KU RU KHA BZHI MIG CAN -00FC0 TIBETAN CANTILLATION SIGN HEAVY BEAT -00FC1 TIBETAN CANTILLATION SIGN LIGHT BEAT -00FC2 TIBETAN CANTILLATION SIGN CANG TE-U -00FC3 TIBETAN CANTILLATION SIGN SBUB -CHAL -00FC4 TIBETAN SYMBOL DRIL BU -00FC5 TIBETAN SYMBOL RDO RJE -00FC6 TIBETAN SYMBOL PADMA GDAN -00FC7 TIBETAN SYMBOL RDO RJE RGYA GRAM -00FC8 TIBETAN SYMBOL PHUR PA -00FC9 TIBETAN SYMBOL NOR BU -00FCA TIBETAN SYMBOL NOR BU NYIS -KHYIL -00FCB TIBETAN SYMBOL NOR BU GSUM -KHYIL -00FCC TIBETAN SYMBOL NOR BU BZHI -KHYIL -00FCE TIBETAN SIGN RDEL NAG RDEL DKAR -00FCF TIBETAN SIGN RDEL NAG GSUM -00FD0 TIBETAN MARK BKA- SHOG GI MGO RGYAN -00FD0 TIBETAN MARK BSKA- SHOG GI MGO RGYAN -00FD1 TIBETAN MARK MNYAM YIG GI MGO RGYAN -00FD2 TIBETAN MARK NYIS TSHEG -00FD3 TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA -00FD4 TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA -00FD5 RIGHT-FACING SVASTI SIGN -00FD6 LEFT-FACING SVASTI SIGN -00FD7 RIGHT-FACING SVASTI SIGN WITH DOTS -00FD8 LEFT-FACING SVASTI SIGN WITH DOTS -00FD9 TIBETAN MARK LEADING MCHAN RTAGS -00FDA TIBETAN MARK TRAILING MCHAN RTAGS -01000 MYANMAR LETTER KA -01001 MYANMAR LETTER KHA -01002 MYANMAR LETTER GA -01003 MYANMAR LETTER GHA -01004 MYANMAR LETTER NGA -01005 MYANMAR LETTER CA -01006 MYANMAR LETTER CHA -01007 MYANMAR LETTER JA -01008 MYANMAR LETTER JHA -01009 MYANMAR LETTER NYA -0100A MYANMAR LETTER NNYA -0100B MYANMAR LETTER TTA -0100C MYANMAR LETTER TTHA -0100D MYANMAR LETTER DDA -0100E MYANMAR LETTER DDHA -0100F MYANMAR LETTER NNA -01010 MYANMAR LETTER TA -01011 MYANMAR LETTER THA -01012 MYANMAR LETTER DA -01013 MYANMAR LETTER DHA -01014 MYANMAR LETTER NA -01015 MYANMAR LETTER PA -01016 MYANMAR LETTER PHA -01017 MYANMAR LETTER BA -01018 MYANMAR LETTER BHA -01019 MYANMAR LETTER MA -0101A MYANMAR LETTER YA -0101B MYANMAR LETTER RA -0101C MYANMAR LETTER LA -0101D MYANMAR LETTER WA -0101E MYANMAR LETTER SA -0101F MYANMAR LETTER HA -01020 MYANMAR LETTER LLA -01021 MYANMAR LETTER A -01022 MYANMAR LETTER SHAN A -01023 MYANMAR LETTER I -01024 MYANMAR LETTER II -01025 MYANMAR LETTER U -01026 MYANMAR LETTER UU -01027 MYANMAR LETTER E -01028 MYANMAR LETTER MON E -01029 MYANMAR LETTER O -0102A MYANMAR LETTER AU -0102B MYANMAR VOWEL SIGN TALL AA -0102C MYANMAR VOWEL SIGN AA -0102D MYANMAR VOWEL SIGN I -0102E MYANMAR VOWEL SIGN II -0102F MYANMAR VOWEL SIGN U -01030 MYANMAR VOWEL SIGN UU -01031 MYANMAR VOWEL SIGN E -01032 MYANMAR VOWEL SIGN AI -01033 MYANMAR VOWEL SIGN MON II -01034 MYANMAR VOWEL SIGN MON O -01035 MYANMAR VOWEL SIGN E ABOVE -01036 MYANMAR SIGN ANUSVARA -01037 MYANMAR SIGN DOT BELOW -01038 MYANMAR SIGN VISARGA -01039 MYANMAR SIGN VIRAMA -0103A MYANMAR SIGN ASAT -0103B MYANMAR CONSONANT SIGN MEDIAL YA -0103C MYANMAR CONSONANT SIGN MEDIAL RA -0103D MYANMAR CONSONANT SIGN MEDIAL WA -0103E MYANMAR CONSONANT SIGN MEDIAL HA -0103F MYANMAR LETTER GREAT SA -01040 MYANMAR DIGIT ZERO -01041 MYANMAR DIGIT ONE -01042 MYANMAR DIGIT TWO -01043 MYANMAR DIGIT THREE -01044 MYANMAR DIGIT FOUR -01045 MYANMAR DIGIT FIVE -01046 MYANMAR DIGIT SIX -01047 MYANMAR DIGIT SEVEN -01048 MYANMAR DIGIT EIGHT -01049 MYANMAR DIGIT NINE -0104A MYANMAR SIGN LITTLE SECTION -0104B MYANMAR SIGN SECTION -0104C MYANMAR SYMBOL LOCATIVE -0104D MYANMAR SYMBOL COMPLETED -0104E MYANMAR SYMBOL AFOREMENTIONED -0104F MYANMAR SYMBOL GENITIVE -01050 MYANMAR LETTER SHA -01051 MYANMAR LETTER SSA -01052 MYANMAR LETTER VOCALIC R -01053 MYANMAR LETTER VOCALIC RR -01054 MYANMAR LETTER VOCALIC L -01055 MYANMAR LETTER VOCALIC LL -01056 MYANMAR VOWEL SIGN VOCALIC R -01057 MYANMAR VOWEL SIGN VOCALIC RR -01058 MYANMAR VOWEL SIGN VOCALIC L -01059 MYANMAR VOWEL SIGN VOCALIC LL -0105A MYANMAR LETTER MON NGA -0105B MYANMAR LETTER MON JHA -0105C MYANMAR LETTER MON BBA -0105D MYANMAR LETTER MON BBE -0105E MYANMAR CONSONANT SIGN MON MEDIAL NA -0105F MYANMAR CONSONANT SIGN MON MEDIAL MA -01060 MYANMAR CONSONANT SIGN MON MEDIAL LA -01061 MYANMAR LETTER SGAW KAREN SHA -01062 MYANMAR VOWEL SIGN SGAW KAREN EU -01063 MYANMAR TONE MARK SGAW KAREN HATHI -01064 MYANMAR TONE MARK SGAW KAREN KE PHO -01065 MYANMAR LETTER WESTERN PWO KAREN THA -01066 MYANMAR LETTER WESTERN PWO KAREN PWA -01067 MYANMAR VOWEL SIGN WESTERN PWO KAREN EU -01068 MYANMAR VOWEL SIGN WESTERN PWO KAREN UE -01069 MYANMAR SIGN WESTERN PWO KAREN TONE-1 -0106A MYANMAR SIGN WESTERN PWO KAREN TONE-2 -0106B MYANMAR SIGN WESTERN PWO KAREN TONE-3 -0106C MYANMAR SIGN WESTERN PWO KAREN TONE-4 -0106D MYANMAR SIGN WESTERN PWO KAREN TONE-5 -0106E MYANMAR LETTER EASTERN PWO KAREN NNA -0106F MYANMAR LETTER EASTERN PWO KAREN YWA -01070 MYANMAR LETTER EASTERN PWO KAREN GHWA -01071 MYANMAR VOWEL SIGN GEBA KAREN I -01072 MYANMAR VOWEL SIGN KAYAH OE -01073 MYANMAR VOWEL SIGN KAYAH U -01074 MYANMAR VOWEL SIGN KAYAH EE -01075 MYANMAR LETTER SHAN KA -01076 MYANMAR LETTER SHAN KHA -01077 MYANMAR LETTER SHAN GA -01078 MYANMAR LETTER SHAN CA -01079 MYANMAR LETTER SHAN ZA -0107A MYANMAR LETTER SHAN NYA -0107B MYANMAR LETTER SHAN DA -0107C MYANMAR LETTER SHAN NA -0107D MYANMAR LETTER SHAN PHA -0107E MYANMAR LETTER SHAN FA -0107F MYANMAR LETTER SHAN BA -01080 MYANMAR LETTER SHAN THA -01081 MYANMAR LETTER SHAN HA -01082 MYANMAR CONSONANT SIGN SHAN MEDIAL WA -01083 MYANMAR VOWEL SIGN SHAN AA -01084 MYANMAR VOWEL SIGN SHAN E -01085 MYANMAR VOWEL SIGN SHAN E ABOVE -01086 MYANMAR VOWEL SIGN SHAN FINAL Y -01087 MYANMAR SIGN SHAN TONE-2 -01088 MYANMAR SIGN SHAN TONE-3 -01089 MYANMAR SIGN SHAN TONE-5 -0108A MYANMAR SIGN SHAN TONE-6 -0108B MYANMAR SIGN SHAN COUNCIL TONE-2 -0108C MYANMAR SIGN SHAN COUNCIL TONE-3 -0108D MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE -0108E MYANMAR LETTER RUMAI PALAUNG FA -0108F MYANMAR SIGN RUMAI PALAUNG TONE-5 -01090 MYANMAR SHAN DIGIT ZERO -01091 MYANMAR SHAN DIGIT ONE -01092 MYANMAR SHAN DIGIT TWO -01093 MYANMAR SHAN DIGIT THREE -01094 MYANMAR SHAN DIGIT FOUR -01095 MYANMAR SHAN DIGIT FIVE -01096 MYANMAR SHAN DIGIT SIX -01097 MYANMAR SHAN DIGIT SEVEN -01098 MYANMAR SHAN DIGIT EIGHT -01099 MYANMAR SHAN DIGIT NINE -0109A MYANMAR SIGN KHAMTI TONE-1 -0109B MYANMAR SIGN KHAMTI TONE-3 -0109C MYANMAR VOWEL SIGN AITON A -0109D MYANMAR VOWEL SIGN AITON AI -0109E MYANMAR SYMBOL SHAN ONE -0109F MYANMAR SYMBOL SHAN EXCLAMATION -010A0 GEORGIAN CAPITAL LETTER AN -010A1 GEORGIAN CAPITAL LETTER BAN -010A2 GEORGIAN CAPITAL LETTER GAN -010A3 GEORGIAN CAPITAL LETTER DON -010A4 GEORGIAN CAPITAL LETTER EN -010A5 GEORGIAN CAPITAL LETTER VIN -010A6 GEORGIAN CAPITAL LETTER ZEN -010A7 GEORGIAN CAPITAL LETTER TAN -010A8 GEORGIAN CAPITAL LETTER IN -010A9 GEORGIAN CAPITAL LETTER KAN -010AA GEORGIAN CAPITAL LETTER LAS -010AB GEORGIAN CAPITAL LETTER MAN -010AC GEORGIAN CAPITAL LETTER NAR -010AD GEORGIAN CAPITAL LETTER ON -010AE GEORGIAN CAPITAL LETTER PAR -010AF GEORGIAN CAPITAL LETTER ZHAR -010B0 GEORGIAN CAPITAL LETTER RAE -010B1 GEORGIAN CAPITAL LETTER SAN -010B2 GEORGIAN CAPITAL LETTER TAR -010B3 GEORGIAN CAPITAL LETTER UN -010B4 GEORGIAN CAPITAL LETTER PHAR -010B5 GEORGIAN CAPITAL LETTER KHAR -010B6 GEORGIAN CAPITAL LETTER GHAN -010B7 GEORGIAN CAPITAL LETTER QAR -010B8 GEORGIAN CAPITAL LETTER SHIN -010B9 GEORGIAN CAPITAL LETTER CHIN -010BA GEORGIAN CAPITAL LETTER CAN -010BB GEORGIAN CAPITAL LETTER JIL -010BC GEORGIAN CAPITAL LETTER CIL -010BD GEORGIAN CAPITAL LETTER CHAR -010BE GEORGIAN CAPITAL LETTER XAN -010BF GEORGIAN CAPITAL LETTER JHAN -010C0 GEORGIAN CAPITAL LETTER HAE -010C1 GEORGIAN CAPITAL LETTER HE -010C2 GEORGIAN CAPITAL LETTER HIE -010C3 GEORGIAN CAPITAL LETTER WE -010C4 GEORGIAN CAPITAL LETTER HAR -010C5 GEORGIAN CAPITAL LETTER HOE -010C7 GEORGIAN CAPITAL LETTER YN -010CD GEORGIAN CAPITAL LETTER AEN -010D0 GEORGIAN LETTER AN -010D1 GEORGIAN LETTER BAN -010D2 GEORGIAN LETTER GAN -010D3 GEORGIAN LETTER DON -010D4 GEORGIAN LETTER EN -010D5 GEORGIAN LETTER VIN -010D6 GEORGIAN LETTER ZEN -010D7 GEORGIAN LETTER TAN -010D8 GEORGIAN LETTER IN -010D9 GEORGIAN LETTER KAN -010DA GEORGIAN LETTER LAS -010DB GEORGIAN LETTER MAN -010DC GEORGIAN LETTER NAR -010DD GEORGIAN LETTER ON -010DE GEORGIAN LETTER PAR -010DF GEORGIAN LETTER ZHAR -010E0 GEORGIAN LETTER RAE -010E1 GEORGIAN LETTER SAN -010E2 GEORGIAN LETTER TAR -010E3 GEORGIAN LETTER UN -010E4 GEORGIAN LETTER PHAR -010E5 GEORGIAN LETTER KHAR -010E6 GEORGIAN LETTER GHAN -010E7 GEORGIAN LETTER QAR -010E8 GEORGIAN LETTER SHIN -010E9 GEORGIAN LETTER CHIN -010EA GEORGIAN LETTER CAN -010EB GEORGIAN LETTER JIL -010EC GEORGIAN LETTER CIL -010ED GEORGIAN LETTER CHAR -010EE GEORGIAN LETTER XAN -010EF GEORGIAN LETTER JHAN -010F0 GEORGIAN LETTER HAE -010F1 GEORGIAN LETTER HE -010F2 GEORGIAN LETTER HIE -010F3 GEORGIAN LETTER WE -010F4 GEORGIAN LETTER HAR -010F5 GEORGIAN LETTER HOE -010F6 GEORGIAN LETTER FI -010F7 GEORGIAN LETTER YN -010F8 GEORGIAN LETTER ELIFI -010F9 GEORGIAN LETTER TURNED GAN -010FA GEORGIAN LETTER AIN -010FB GEORGIAN PARAGRAPH SEPARATOR -010FC MODIFIER LETTER GEORGIAN NAR -010FD GEORGIAN LETTER AEN -010FE GEORGIAN LETTER HARD SIGN -010FF GEORGIAN LETTER LABIAL SIGN -01100 HANGUL CHOSEONG KIYEOK -01101 HANGUL CHOSEONG SSANGKIYEOK -01102 HANGUL CHOSEONG NIEUN -01103 HANGUL CHOSEONG TIKEUT -01104 HANGUL CHOSEONG SSANGTIKEUT -01105 HANGUL CHOSEONG RIEUL -01106 HANGUL CHOSEONG MIEUM -01107 HANGUL CHOSEONG PIEUP -01108 HANGUL CHOSEONG SSANGPIEUP -01109 HANGUL CHOSEONG SIOS -0110A HANGUL CHOSEONG SSANGSIOS -0110B HANGUL CHOSEONG IEUNG -0110C HANGUL CHOSEONG CIEUC -0110D HANGUL CHOSEONG SSANGCIEUC -0110E HANGUL CHOSEONG CHIEUCH -0110F HANGUL CHOSEONG KHIEUKH -01110 HANGUL CHOSEONG THIEUTH -01111 HANGUL CHOSEONG PHIEUPH -01112 HANGUL CHOSEONG HIEUH -01113 HANGUL CHOSEONG NIEUN-KIYEOK -01114 HANGUL CHOSEONG SSANGNIEUN -01115 HANGUL CHOSEONG NIEUN-TIKEUT -01116 HANGUL CHOSEONG NIEUN-PIEUP -01117 HANGUL CHOSEONG TIKEUT-KIYEOK -01118 HANGUL CHOSEONG RIEUL-NIEUN -01119 HANGUL CHOSEONG SSANGRIEUL -0111A HANGUL CHOSEONG RIEUL-HIEUH -0111B HANGUL CHOSEONG KAPYEOUNRIEUL -0111C HANGUL CHOSEONG MIEUM-PIEUP -0111D HANGUL CHOSEONG KAPYEOUNMIEUM -0111E HANGUL CHOSEONG PIEUP-KIYEOK -0111F HANGUL CHOSEONG PIEUP-NIEUN -01120 HANGUL CHOSEONG PIEUP-TIKEUT -01121 HANGUL CHOSEONG PIEUP-SIOS -01122 HANGUL CHOSEONG PIEUP-SIOS-KIYEOK -01123 HANGUL CHOSEONG PIEUP-SIOS-TIKEUT -01124 HANGUL CHOSEONG PIEUP-SIOS-PIEUP -01125 HANGUL CHOSEONG PIEUP-SSANGSIOS -01126 HANGUL CHOSEONG PIEUP-SIOS-CIEUC -01127 HANGUL CHOSEONG PIEUP-CIEUC -01128 HANGUL CHOSEONG PIEUP-CHIEUCH -01129 HANGUL CHOSEONG PIEUP-THIEUTH -0112A HANGUL CHOSEONG PIEUP-PHIEUPH -0112B HANGUL CHOSEONG KAPYEOUNPIEUP -0112C HANGUL CHOSEONG KAPYEOUNSSANGPIEUP -0112D HANGUL CHOSEONG SIOS-KIYEOK -0112E HANGUL CHOSEONG SIOS-NIEUN -0112F HANGUL CHOSEONG SIOS-TIKEUT -01130 HANGUL CHOSEONG SIOS-RIEUL -01131 HANGUL CHOSEONG SIOS-MIEUM -01132 HANGUL CHOSEONG SIOS-PIEUP -01133 HANGUL CHOSEONG SIOS-PIEUP-KIYEOK -01134 HANGUL CHOSEONG SIOS-SSANGSIOS -01135 HANGUL CHOSEONG SIOS-IEUNG -01136 HANGUL CHOSEONG SIOS-CIEUC -01137 HANGUL CHOSEONG SIOS-CHIEUCH -01138 HANGUL CHOSEONG SIOS-KHIEUKH -01139 HANGUL CHOSEONG SIOS-THIEUTH -0113A HANGUL CHOSEONG SIOS-PHIEUPH -0113B HANGUL CHOSEONG SIOS-HIEUH -0113C HANGUL CHOSEONG CHITUEUMSIOS -0113D HANGUL CHOSEONG CHITUEUMSSANGSIOS -0113E HANGUL CHOSEONG CEONGCHIEUMSIOS -0113F HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS -01140 HANGUL CHOSEONG PANSIOS -01141 HANGUL CHOSEONG IEUNG-KIYEOK -01142 HANGUL CHOSEONG IEUNG-TIKEUT -01143 HANGUL CHOSEONG IEUNG-MIEUM -01144 HANGUL CHOSEONG IEUNG-PIEUP -01145 HANGUL CHOSEONG IEUNG-SIOS -01146 HANGUL CHOSEONG IEUNG-PANSIOS -01147 HANGUL CHOSEONG SSANGIEUNG -01148 HANGUL CHOSEONG IEUNG-CIEUC -01149 HANGUL CHOSEONG IEUNG-CHIEUCH -0114A HANGUL CHOSEONG IEUNG-THIEUTH -0114B HANGUL CHOSEONG IEUNG-PHIEUPH -0114C HANGUL CHOSEONG YESIEUNG -0114D HANGUL CHOSEONG CIEUC-IEUNG -0114E HANGUL CHOSEONG CHITUEUMCIEUC -0114F HANGUL CHOSEONG CHITUEUMSSANGCIEUC -01150 HANGUL CHOSEONG CEONGCHIEUMCIEUC -01151 HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC -01152 HANGUL CHOSEONG CHIEUCH-KHIEUKH -01153 HANGUL CHOSEONG CHIEUCH-HIEUH -01154 HANGUL CHOSEONG CHITUEUMCHIEUCH -01155 HANGUL CHOSEONG CEONGCHIEUMCHIEUCH -01156 HANGUL CHOSEONG PHIEUPH-PIEUP -01157 HANGUL CHOSEONG KAPYEOUNPHIEUPH -01158 HANGUL CHOSEONG SSANGHIEUH -01159 HANGUL CHOSEONG YEORINHIEUH -0115A HANGUL CHOSEONG KIYEOK-TIKEUT -0115B HANGUL CHOSEONG NIEUN-SIOS -0115C HANGUL CHOSEONG NIEUN-CIEUC -0115D HANGUL CHOSEONG NIEUN-HIEUH -0115E HANGUL CHOSEONG TIKEUT-RIEUL -0115F HANGUL CHOSEONG FILLER -01160 HANGUL JUNGSEONG FILLER -01161 HANGUL JUNGSEONG A -01162 HANGUL JUNGSEONG AE -01163 HANGUL JUNGSEONG YA -01164 HANGUL JUNGSEONG YAE -01165 HANGUL JUNGSEONG EO -01166 HANGUL JUNGSEONG E -01167 HANGUL JUNGSEONG YEO -01168 HANGUL JUNGSEONG YE -01169 HANGUL JUNGSEONG O -0116A HANGUL JUNGSEONG WA -0116B HANGUL JUNGSEONG WAE -0116C HANGUL JUNGSEONG OE -0116D HANGUL JUNGSEONG YO -0116E HANGUL JUNGSEONG U -0116F HANGUL JUNGSEONG WEO -01170 HANGUL JUNGSEONG WE -01171 HANGUL JUNGSEONG WI -01172 HANGUL JUNGSEONG YU -01173 HANGUL JUNGSEONG EU -01174 HANGUL JUNGSEONG YI -01175 HANGUL JUNGSEONG I -01176 HANGUL JUNGSEONG A-O -01177 HANGUL JUNGSEONG A-U -01178 HANGUL JUNGSEONG YA-O -01179 HANGUL JUNGSEONG YA-YO -0117A HANGUL JUNGSEONG EO-O -0117B HANGUL JUNGSEONG EO-U -0117C HANGUL JUNGSEONG EO-EU -0117D HANGUL JUNGSEONG YEO-O -0117E HANGUL JUNGSEONG YEO-U -0117F HANGUL JUNGSEONG O-EO -01180 HANGUL JUNGSEONG O-E -01181 HANGUL JUNGSEONG O-YE -01182 HANGUL JUNGSEONG O-O -01183 HANGUL JUNGSEONG O-U -01184 HANGUL JUNGSEONG YO-YA -01185 HANGUL JUNGSEONG YO-YAE -01186 HANGUL JUNGSEONG YO-YEO -01187 HANGUL JUNGSEONG YO-O -01188 HANGUL JUNGSEONG YO-I -01189 HANGUL JUNGSEONG U-A -0118A HANGUL JUNGSEONG U-AE -0118B HANGUL JUNGSEONG U-EO-EU -0118C HANGUL JUNGSEONG U-YE -0118D HANGUL JUNGSEONG U-U -0118E HANGUL JUNGSEONG YU-A -0118F HANGUL JUNGSEONG YU-EO -01190 HANGUL JUNGSEONG YU-E -01191 HANGUL JUNGSEONG YU-YEO -01192 HANGUL JUNGSEONG YU-YE -01193 HANGUL JUNGSEONG YU-U -01194 HANGUL JUNGSEONG YU-I -01195 HANGUL JUNGSEONG EU-U -01196 HANGUL JUNGSEONG EU-EU -01197 HANGUL JUNGSEONG YI-U -01198 HANGUL JUNGSEONG I-A -01199 HANGUL JUNGSEONG I-YA -0119A HANGUL JUNGSEONG I-O -0119B HANGUL JUNGSEONG I-U -0119C HANGUL JUNGSEONG I-EU -0119D HANGUL JUNGSEONG I-ARAEA -0119E HANGUL JUNGSEONG ARAEA -0119F HANGUL JUNGSEONG ARAEA-EO -011A0 HANGUL JUNGSEONG ARAEA-U -011A1 HANGUL JUNGSEONG ARAEA-I -011A2 HANGUL JUNGSEONG SSANGARAEA -011A3 HANGUL JUNGSEONG A-EU -011A4 HANGUL JUNGSEONG YA-U -011A5 HANGUL JUNGSEONG YEO-YA -011A6 HANGUL JUNGSEONG O-YA -011A7 HANGUL JUNGSEONG O-YAE -011A8 HANGUL JONGSEONG KIYEOK -011A9 HANGUL JONGSEONG SSANGKIYEOK -011AA HANGUL JONGSEONG KIYEOK-SIOS -011AB HANGUL JONGSEONG NIEUN -011AC HANGUL JONGSEONG NIEUN-CIEUC -011AD HANGUL JONGSEONG NIEUN-HIEUH -011AE HANGUL JONGSEONG TIKEUT -011AF HANGUL JONGSEONG RIEUL -011B0 HANGUL JONGSEONG RIEUL-KIYEOK -011B1 HANGUL JONGSEONG RIEUL-MIEUM -011B2 HANGUL JONGSEONG RIEUL-PIEUP -011B3 HANGUL JONGSEONG RIEUL-SIOS -011B4 HANGUL JONGSEONG RIEUL-THIEUTH -011B5 HANGUL JONGSEONG RIEUL-PHIEUPH -011B6 HANGUL JONGSEONG RIEUL-HIEUH -011B7 HANGUL JONGSEONG MIEUM -011B8 HANGUL JONGSEONG PIEUP -011B9 HANGUL JONGSEONG PIEUP-SIOS -011BA HANGUL JONGSEONG SIOS -011BB HANGUL JONGSEONG SSANGSIOS -011BC HANGUL JONGSEONG IEUNG -011BD HANGUL JONGSEONG CIEUC -011BE HANGUL JONGSEONG CHIEUCH -011BF HANGUL JONGSEONG KHIEUKH -011C0 HANGUL JONGSEONG THIEUTH -011C1 HANGUL JONGSEONG PHIEUPH -011C2 HANGUL JONGSEONG HIEUH -011C3 HANGUL JONGSEONG KIYEOK-RIEUL -011C4 HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK -011C5 HANGUL JONGSEONG NIEUN-KIYEOK -011C6 HANGUL JONGSEONG NIEUN-TIKEUT -011C7 HANGUL JONGSEONG NIEUN-SIOS -011C8 HANGUL JONGSEONG NIEUN-PANSIOS -011C9 HANGUL JONGSEONG NIEUN-THIEUTH -011CA HANGUL JONGSEONG TIKEUT-KIYEOK -011CB HANGUL JONGSEONG TIKEUT-RIEUL -011CC HANGUL JONGSEONG RIEUL-KIYEOK-SIOS -011CD HANGUL JONGSEONG RIEUL-NIEUN -011CE HANGUL JONGSEONG RIEUL-TIKEUT -011CF HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH -011D0 HANGUL JONGSEONG SSANGRIEUL -011D1 HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK -011D2 HANGUL JONGSEONG RIEUL-MIEUM-SIOS -011D3 HANGUL JONGSEONG RIEUL-PIEUP-SIOS -011D4 HANGUL JONGSEONG RIEUL-PIEUP-HIEUH -011D5 HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP -011D6 HANGUL JONGSEONG RIEUL-SSANGSIOS -011D7 HANGUL JONGSEONG RIEUL-PANSIOS -011D8 HANGUL JONGSEONG RIEUL-KHIEUKH -011D9 HANGUL JONGSEONG RIEUL-YEORINHIEUH -011DA HANGUL JONGSEONG MIEUM-KIYEOK -011DB HANGUL JONGSEONG MIEUM-RIEUL -011DC HANGUL JONGSEONG MIEUM-PIEUP -011DD HANGUL JONGSEONG MIEUM-SIOS -011DE HANGUL JONGSEONG MIEUM-SSANGSIOS -011DF HANGUL JONGSEONG MIEUM-PANSIOS -011E0 HANGUL JONGSEONG MIEUM-CHIEUCH -011E1 HANGUL JONGSEONG MIEUM-HIEUH -011E2 HANGUL JONGSEONG KAPYEOUNMIEUM -011E3 HANGUL JONGSEONG PIEUP-RIEUL -011E4 HANGUL JONGSEONG PIEUP-PHIEUPH -011E5 HANGUL JONGSEONG PIEUP-HIEUH -011E6 HANGUL JONGSEONG KAPYEOUNPIEUP -011E7 HANGUL JONGSEONG SIOS-KIYEOK -011E8 HANGUL JONGSEONG SIOS-TIKEUT -011E9 HANGUL JONGSEONG SIOS-RIEUL -011EA HANGUL JONGSEONG SIOS-PIEUP -011EB HANGUL JONGSEONG PANSIOS -011EC HANGUL JONGSEONG IEUNG-KIYEOK -011ED HANGUL JONGSEONG IEUNG-SSANGKIYEOK -011EE HANGUL JONGSEONG SSANGIEUNG -011EF HANGUL JONGSEONG IEUNG-KHIEUKH -011F0 HANGUL JONGSEONG YESIEUNG -011F1 HANGUL JONGSEONG YESIEUNG-SIOS -011F2 HANGUL JONGSEONG YESIEUNG-PANSIOS -011F3 HANGUL JONGSEONG PHIEUPH-PIEUP -011F4 HANGUL JONGSEONG KAPYEOUNPHIEUPH -011F5 HANGUL JONGSEONG HIEUH-NIEUN -011F6 HANGUL JONGSEONG HIEUH-RIEUL -011F7 HANGUL JONGSEONG HIEUH-MIEUM -011F8 HANGUL JONGSEONG HIEUH-PIEUP -011F9 HANGUL JONGSEONG YEORINHIEUH -011FA HANGUL JONGSEONG KIYEOK-NIEUN -011FB HANGUL JONGSEONG KIYEOK-PIEUP -011FC HANGUL JONGSEONG KIYEOK-CHIEUCH -011FD HANGUL JONGSEONG KIYEOK-KHIEUKH -011FE HANGUL JONGSEONG KIYEOK-HIEUH -011FF HANGUL JONGSEONG SSANGNIEUN -01200 ETHIOPIC SYLLABLE HA -01201 ETHIOPIC SYLLABLE HU -01202 ETHIOPIC SYLLABLE HI -01203 ETHIOPIC SYLLABLE HAA -01204 ETHIOPIC SYLLABLE HEE -01205 ETHIOPIC SYLLABLE HE -01206 ETHIOPIC SYLLABLE HO -01207 ETHIOPIC SYLLABLE HOA -01208 ETHIOPIC SYLLABLE LA -01209 ETHIOPIC SYLLABLE LU -0120A ETHIOPIC SYLLABLE LI -0120B ETHIOPIC SYLLABLE LAA -0120C ETHIOPIC SYLLABLE LEE -0120D ETHIOPIC SYLLABLE LE -0120E ETHIOPIC SYLLABLE LO -0120F ETHIOPIC SYLLABLE LWA -01210 ETHIOPIC SYLLABLE HHA -01211 ETHIOPIC SYLLABLE HHU -01212 ETHIOPIC SYLLABLE HHI -01213 ETHIOPIC SYLLABLE HHAA -01214 ETHIOPIC SYLLABLE HHEE -01215 ETHIOPIC SYLLABLE HHE -01216 ETHIOPIC SYLLABLE HHO -01217 ETHIOPIC SYLLABLE HHWA -01218 ETHIOPIC SYLLABLE MA -01219 ETHIOPIC SYLLABLE MU -0121A ETHIOPIC SYLLABLE MI -0121B ETHIOPIC SYLLABLE MAA -0121C ETHIOPIC SYLLABLE MEE -0121D ETHIOPIC SYLLABLE ME -0121E ETHIOPIC SYLLABLE MO -0121F ETHIOPIC SYLLABLE MWA -01220 ETHIOPIC SYLLABLE SZA -01221 ETHIOPIC SYLLABLE SZU -01222 ETHIOPIC SYLLABLE SZI -01223 ETHIOPIC SYLLABLE SZAA -01224 ETHIOPIC SYLLABLE SZEE -01225 ETHIOPIC SYLLABLE SZE -01226 ETHIOPIC SYLLABLE SZO -01227 ETHIOPIC SYLLABLE SZWA -01228 ETHIOPIC SYLLABLE RA -01229 ETHIOPIC SYLLABLE RU -0122A ETHIOPIC SYLLABLE RI -0122B ETHIOPIC SYLLABLE RAA -0122C ETHIOPIC SYLLABLE REE -0122D ETHIOPIC SYLLABLE RE -0122E ETHIOPIC SYLLABLE RO -0122F ETHIOPIC SYLLABLE RWA -01230 ETHIOPIC SYLLABLE SA -01231 ETHIOPIC SYLLABLE SU -01232 ETHIOPIC SYLLABLE SI -01233 ETHIOPIC SYLLABLE SAA -01234 ETHIOPIC SYLLABLE SEE -01235 ETHIOPIC SYLLABLE SE -01236 ETHIOPIC SYLLABLE SO -01237 ETHIOPIC SYLLABLE SWA -01238 ETHIOPIC SYLLABLE SHA -01239 ETHIOPIC SYLLABLE SHU -0123A ETHIOPIC SYLLABLE SHI -0123B ETHIOPIC SYLLABLE SHAA -0123C ETHIOPIC SYLLABLE SHEE -0123D ETHIOPIC SYLLABLE SHE -0123E ETHIOPIC SYLLABLE SHO -0123F ETHIOPIC SYLLABLE SHWA -01240 ETHIOPIC SYLLABLE QA -01241 ETHIOPIC SYLLABLE QU -01242 ETHIOPIC SYLLABLE QI -01243 ETHIOPIC SYLLABLE QAA -01244 ETHIOPIC SYLLABLE QEE -01245 ETHIOPIC SYLLABLE QE -01246 ETHIOPIC SYLLABLE QO -01247 ETHIOPIC SYLLABLE QOA -01248 ETHIOPIC SYLLABLE QWA -0124A ETHIOPIC SYLLABLE QWI -0124B ETHIOPIC SYLLABLE QWAA -0124C ETHIOPIC SYLLABLE QWEE -0124D ETHIOPIC SYLLABLE QWE -01250 ETHIOPIC SYLLABLE QHA -01251 ETHIOPIC SYLLABLE QHU -01252 ETHIOPIC SYLLABLE QHI -01253 ETHIOPIC SYLLABLE QHAA -01254 ETHIOPIC SYLLABLE QHEE -01255 ETHIOPIC SYLLABLE QHE -01256 ETHIOPIC SYLLABLE QHO -01258 ETHIOPIC SYLLABLE QHWA -0125A ETHIOPIC SYLLABLE QHWI -0125B ETHIOPIC SYLLABLE QHWAA -0125C ETHIOPIC SYLLABLE QHWEE -0125D ETHIOPIC SYLLABLE QHWE -01260 ETHIOPIC SYLLABLE BA -01261 ETHIOPIC SYLLABLE BU -01262 ETHIOPIC SYLLABLE BI -01263 ETHIOPIC SYLLABLE BAA -01264 ETHIOPIC SYLLABLE BEE -01265 ETHIOPIC SYLLABLE BE -01266 ETHIOPIC SYLLABLE BO -01267 ETHIOPIC SYLLABLE BWA -01268 ETHIOPIC SYLLABLE VA -01269 ETHIOPIC SYLLABLE VU -0126A ETHIOPIC SYLLABLE VI -0126B ETHIOPIC SYLLABLE VAA -0126C ETHIOPIC SYLLABLE VEE -0126D ETHIOPIC SYLLABLE VE -0126E ETHIOPIC SYLLABLE VO -0126F ETHIOPIC SYLLABLE VWA -01270 ETHIOPIC SYLLABLE TA -01271 ETHIOPIC SYLLABLE TU -01272 ETHIOPIC SYLLABLE TI -01273 ETHIOPIC SYLLABLE TAA -01274 ETHIOPIC SYLLABLE TEE -01275 ETHIOPIC SYLLABLE TE -01276 ETHIOPIC SYLLABLE TO -01277 ETHIOPIC SYLLABLE TWA -01278 ETHIOPIC SYLLABLE CA -01279 ETHIOPIC SYLLABLE CU -0127A ETHIOPIC SYLLABLE CI -0127B ETHIOPIC SYLLABLE CAA -0127C ETHIOPIC SYLLABLE CEE -0127D ETHIOPIC SYLLABLE CE -0127E ETHIOPIC SYLLABLE CO -0127F ETHIOPIC SYLLABLE CWA -01280 ETHIOPIC SYLLABLE XA -01281 ETHIOPIC SYLLABLE XU -01282 ETHIOPIC SYLLABLE XI -01283 ETHIOPIC SYLLABLE XAA -01284 ETHIOPIC SYLLABLE XEE -01285 ETHIOPIC SYLLABLE XE -01286 ETHIOPIC SYLLABLE XO -01287 ETHIOPIC SYLLABLE XOA -01288 ETHIOPIC SYLLABLE XWA -0128A ETHIOPIC SYLLABLE XWI -0128B ETHIOPIC SYLLABLE XWAA -0128C ETHIOPIC SYLLABLE XWEE -0128D ETHIOPIC SYLLABLE XWE -01290 ETHIOPIC SYLLABLE NA -01291 ETHIOPIC SYLLABLE NU -01292 ETHIOPIC SYLLABLE NI -01293 ETHIOPIC SYLLABLE NAA -01294 ETHIOPIC SYLLABLE NEE -01295 ETHIOPIC SYLLABLE NE -01296 ETHIOPIC SYLLABLE NO -01297 ETHIOPIC SYLLABLE NWA -01298 ETHIOPIC SYLLABLE NYA -01299 ETHIOPIC SYLLABLE NYU -0129A ETHIOPIC SYLLABLE NYI -0129B ETHIOPIC SYLLABLE NYAA -0129C ETHIOPIC SYLLABLE NYEE -0129D ETHIOPIC SYLLABLE NYE -0129E ETHIOPIC SYLLABLE NYO -0129F ETHIOPIC SYLLABLE NYWA -012A0 ETHIOPIC SYLLABLE GLOTTAL A -012A1 ETHIOPIC SYLLABLE GLOTTAL U -012A2 ETHIOPIC SYLLABLE GLOTTAL I -012A3 ETHIOPIC SYLLABLE GLOTTAL AA -012A4 ETHIOPIC SYLLABLE GLOTTAL EE -012A5 ETHIOPIC SYLLABLE GLOTTAL E -012A6 ETHIOPIC SYLLABLE GLOTTAL O -012A7 ETHIOPIC SYLLABLE GLOTTAL WA -012A8 ETHIOPIC SYLLABLE KA -012A9 ETHIOPIC SYLLABLE KU -012AA ETHIOPIC SYLLABLE KI -012AB ETHIOPIC SYLLABLE KAA -012AC ETHIOPIC SYLLABLE KEE -012AD ETHIOPIC SYLLABLE KE -012AE ETHIOPIC SYLLABLE KO -012AF ETHIOPIC SYLLABLE KOA -012B0 ETHIOPIC SYLLABLE KWA -012B2 ETHIOPIC SYLLABLE KWI -012B3 ETHIOPIC SYLLABLE KWAA -012B4 ETHIOPIC SYLLABLE KWEE -012B5 ETHIOPIC SYLLABLE KWE -012B8 ETHIOPIC SYLLABLE KXA -012B9 ETHIOPIC SYLLABLE KXU -012BA ETHIOPIC SYLLABLE KXI -012BB ETHIOPIC SYLLABLE KXAA -012BC ETHIOPIC SYLLABLE KXEE -012BD ETHIOPIC SYLLABLE KXE -012BE ETHIOPIC SYLLABLE KXO -012C0 ETHIOPIC SYLLABLE KXWA -012C2 ETHIOPIC SYLLABLE KXWI -012C3 ETHIOPIC SYLLABLE KXWAA -012C4 ETHIOPIC SYLLABLE KXWEE -012C5 ETHIOPIC SYLLABLE KXWE -012C8 ETHIOPIC SYLLABLE WA -012C9 ETHIOPIC SYLLABLE WU -012CA ETHIOPIC SYLLABLE WI -012CB ETHIOPIC SYLLABLE WAA -012CC ETHIOPIC SYLLABLE WEE -012CD ETHIOPIC SYLLABLE WE -012CE ETHIOPIC SYLLABLE WO -012CF ETHIOPIC SYLLABLE WOA -012D0 ETHIOPIC SYLLABLE PHARYNGEAL A -012D1 ETHIOPIC SYLLABLE PHARYNGEAL U -012D2 ETHIOPIC SYLLABLE PHARYNGEAL I -012D3 ETHIOPIC SYLLABLE PHARYNGEAL AA -012D4 ETHIOPIC SYLLABLE PHARYNGEAL EE -012D5 ETHIOPIC SYLLABLE PHARYNGEAL E -012D6 ETHIOPIC SYLLABLE PHARYNGEAL O -012D8 ETHIOPIC SYLLABLE ZA -012D9 ETHIOPIC SYLLABLE ZU -012DA ETHIOPIC SYLLABLE ZI -012DB ETHIOPIC SYLLABLE ZAA -012DC ETHIOPIC SYLLABLE ZEE -012DD ETHIOPIC SYLLABLE ZE -012DE ETHIOPIC SYLLABLE ZO -012DF ETHIOPIC SYLLABLE ZWA -012E0 ETHIOPIC SYLLABLE ZHA -012E1 ETHIOPIC SYLLABLE ZHU -012E2 ETHIOPIC SYLLABLE ZHI -012E3 ETHIOPIC SYLLABLE ZHAA -012E4 ETHIOPIC SYLLABLE ZHEE -012E5 ETHIOPIC SYLLABLE ZHE -012E6 ETHIOPIC SYLLABLE ZHO -012E7 ETHIOPIC SYLLABLE ZHWA -012E8 ETHIOPIC SYLLABLE YA -012E9 ETHIOPIC SYLLABLE YU -012EA ETHIOPIC SYLLABLE YI -012EB ETHIOPIC SYLLABLE YAA -012EC ETHIOPIC SYLLABLE YEE -012ED ETHIOPIC SYLLABLE YE -012EE ETHIOPIC SYLLABLE YO -012EF ETHIOPIC SYLLABLE YOA -012F0 ETHIOPIC SYLLABLE DA -012F1 ETHIOPIC SYLLABLE DU -012F2 ETHIOPIC SYLLABLE DI -012F3 ETHIOPIC SYLLABLE DAA -012F4 ETHIOPIC SYLLABLE DEE -012F5 ETHIOPIC SYLLABLE DE -012F6 ETHIOPIC SYLLABLE DO -012F7 ETHIOPIC SYLLABLE DWA -012F8 ETHIOPIC SYLLABLE DDA -012F9 ETHIOPIC SYLLABLE DDU -012FA ETHIOPIC SYLLABLE DDI -012FB ETHIOPIC SYLLABLE DDAA -012FC ETHIOPIC SYLLABLE DDEE -012FD ETHIOPIC SYLLABLE DDE -012FE ETHIOPIC SYLLABLE DDO -012FF ETHIOPIC SYLLABLE DDWA -01300 ETHIOPIC SYLLABLE JA -01301 ETHIOPIC SYLLABLE JU -01302 ETHIOPIC SYLLABLE JI -01303 ETHIOPIC SYLLABLE JAA -01304 ETHIOPIC SYLLABLE JEE -01305 ETHIOPIC SYLLABLE JE -01306 ETHIOPIC SYLLABLE JO -01307 ETHIOPIC SYLLABLE JWA -01308 ETHIOPIC SYLLABLE GA -01309 ETHIOPIC SYLLABLE GU -0130A ETHIOPIC SYLLABLE GI -0130B ETHIOPIC SYLLABLE GAA -0130C ETHIOPIC SYLLABLE GEE -0130D ETHIOPIC SYLLABLE GE -0130E ETHIOPIC SYLLABLE GO -0130F ETHIOPIC SYLLABLE GOA -01310 ETHIOPIC SYLLABLE GWA -01312 ETHIOPIC SYLLABLE GWI -01313 ETHIOPIC SYLLABLE GWAA -01314 ETHIOPIC SYLLABLE GWEE -01315 ETHIOPIC SYLLABLE GWE -01318 ETHIOPIC SYLLABLE GGA -01319 ETHIOPIC SYLLABLE GGU -0131A ETHIOPIC SYLLABLE GGI -0131B ETHIOPIC SYLLABLE GGAA -0131C ETHIOPIC SYLLABLE GGEE -0131D ETHIOPIC SYLLABLE GGE -0131E ETHIOPIC SYLLABLE GGO -0131F ETHIOPIC SYLLABLE GGWAA -01320 ETHIOPIC SYLLABLE THA -01321 ETHIOPIC SYLLABLE THU -01322 ETHIOPIC SYLLABLE THI -01323 ETHIOPIC SYLLABLE THAA -01324 ETHIOPIC SYLLABLE THEE -01325 ETHIOPIC SYLLABLE THE -01326 ETHIOPIC SYLLABLE THO -01327 ETHIOPIC SYLLABLE THWA -01328 ETHIOPIC SYLLABLE CHA -01329 ETHIOPIC SYLLABLE CHU -0132A ETHIOPIC SYLLABLE CHI -0132B ETHIOPIC SYLLABLE CHAA -0132C ETHIOPIC SYLLABLE CHEE -0132D ETHIOPIC SYLLABLE CHE -0132E ETHIOPIC SYLLABLE CHO -0132F ETHIOPIC SYLLABLE CHWA -01330 ETHIOPIC SYLLABLE PHA -01331 ETHIOPIC SYLLABLE PHU -01332 ETHIOPIC SYLLABLE PHI -01333 ETHIOPIC SYLLABLE PHAA -01334 ETHIOPIC SYLLABLE PHEE -01335 ETHIOPIC SYLLABLE PHE -01336 ETHIOPIC SYLLABLE PHO -01337 ETHIOPIC SYLLABLE PHWA -01338 ETHIOPIC SYLLABLE TSA -01339 ETHIOPIC SYLLABLE TSU -0133A ETHIOPIC SYLLABLE TSI -0133B ETHIOPIC SYLLABLE TSAA -0133C ETHIOPIC SYLLABLE TSEE -0133D ETHIOPIC SYLLABLE TSE -0133E ETHIOPIC SYLLABLE TSO -0133F ETHIOPIC SYLLABLE TSWA -01340 ETHIOPIC SYLLABLE TZA -01341 ETHIOPIC SYLLABLE TZU -01342 ETHIOPIC SYLLABLE TZI -01343 ETHIOPIC SYLLABLE TZAA -01344 ETHIOPIC SYLLABLE TZEE -01345 ETHIOPIC SYLLABLE TZE -01346 ETHIOPIC SYLLABLE TZO -01347 ETHIOPIC SYLLABLE TZOA -01348 ETHIOPIC SYLLABLE FA -01349 ETHIOPIC SYLLABLE FU -0134A ETHIOPIC SYLLABLE FI -0134B ETHIOPIC SYLLABLE FAA -0134C ETHIOPIC SYLLABLE FEE -0134D ETHIOPIC SYLLABLE FE -0134E ETHIOPIC SYLLABLE FO -0134F ETHIOPIC SYLLABLE FWA -01350 ETHIOPIC SYLLABLE PA -01351 ETHIOPIC SYLLABLE PU -01352 ETHIOPIC SYLLABLE PI -01353 ETHIOPIC SYLLABLE PAA -01354 ETHIOPIC SYLLABLE PEE -01355 ETHIOPIC SYLLABLE PE -01356 ETHIOPIC SYLLABLE PO -01357 ETHIOPIC SYLLABLE PWA -01358 ETHIOPIC SYLLABLE RYA -01359 ETHIOPIC SYLLABLE MYA -0135A ETHIOPIC SYLLABLE FYA -0135D ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK -0135E ETHIOPIC COMBINING VOWEL LENGTH MARK -0135F ETHIOPIC COMBINING GEMINATION MARK -01360 ETHIOPIC SECTION MARK -01361 ETHIOPIC WORDSPACE -01362 ETHIOPIC FULL STOP -01363 ETHIOPIC COMMA -01364 ETHIOPIC SEMICOLON -01365 ETHIOPIC COLON -01366 ETHIOPIC PREFACE COLON -01367 ETHIOPIC QUESTION MARK -01368 ETHIOPIC PARAGRAPH SEPARATOR -01369 ETHIOPIC DIGIT ONE -0136A ETHIOPIC DIGIT TWO -0136B ETHIOPIC DIGIT THREE -0136C ETHIOPIC DIGIT FOUR -0136D ETHIOPIC DIGIT FIVE -0136E ETHIOPIC DIGIT SIX -0136F ETHIOPIC DIGIT SEVEN -01370 ETHIOPIC DIGIT EIGHT -01371 ETHIOPIC DIGIT NINE -01372 ETHIOPIC NUMBER TEN -01373 ETHIOPIC NUMBER TWENTY -01374 ETHIOPIC NUMBER THIRTY -01375 ETHIOPIC NUMBER FORTY -01376 ETHIOPIC NUMBER FIFTY -01377 ETHIOPIC NUMBER SIXTY -01378 ETHIOPIC NUMBER SEVENTY -01379 ETHIOPIC NUMBER EIGHTY -0137A ETHIOPIC NUMBER NINETY -0137B ETHIOPIC NUMBER HUNDRED -0137C ETHIOPIC NUMBER TEN THOUSAND -01380 ETHIOPIC SYLLABLE SEBATBEIT MWA -01381 ETHIOPIC SYLLABLE MWI -01382 ETHIOPIC SYLLABLE MWEE -01383 ETHIOPIC SYLLABLE MWE -01384 ETHIOPIC SYLLABLE SEBATBEIT BWA -01385 ETHIOPIC SYLLABLE BWI -01386 ETHIOPIC SYLLABLE BWEE -01387 ETHIOPIC SYLLABLE BWE -01388 ETHIOPIC SYLLABLE SEBATBEIT FWA -01389 ETHIOPIC SYLLABLE FWI -0138A ETHIOPIC SYLLABLE FWEE -0138B ETHIOPIC SYLLABLE FWE -0138C ETHIOPIC SYLLABLE SEBATBEIT PWA -0138D ETHIOPIC SYLLABLE PWI -0138E ETHIOPIC SYLLABLE PWEE -0138F ETHIOPIC SYLLABLE PWE -01390 ETHIOPIC TONAL MARK YIZET -01391 ETHIOPIC TONAL MARK DERET -01392 ETHIOPIC TONAL MARK RIKRIK -01393 ETHIOPIC TONAL MARK SHORT RIKRIK -01394 ETHIOPIC TONAL MARK DIFAT -01395 ETHIOPIC TONAL MARK KENAT -01396 ETHIOPIC TONAL MARK CHIRET -01397 ETHIOPIC TONAL MARK HIDET -01398 ETHIOPIC TONAL MARK DERET-HIDET -01399 ETHIOPIC TONAL MARK KURT -013A0 CHEROKEE LETTER A -013A1 CHEROKEE LETTER E -013A2 CHEROKEE LETTER I -013A3 CHEROKEE LETTER O -013A4 CHEROKEE LETTER U -013A5 CHEROKEE LETTER V -013A6 CHEROKEE LETTER GA -013A7 CHEROKEE LETTER KA -013A8 CHEROKEE LETTER GE -013A9 CHEROKEE LETTER GI -013AA CHEROKEE LETTER GO -013AB CHEROKEE LETTER GU -013AC CHEROKEE LETTER GV -013AD CHEROKEE LETTER HA -013AE CHEROKEE LETTER HE -013AF CHEROKEE LETTER HI -013B0 CHEROKEE LETTER HO -013B1 CHEROKEE LETTER HU -013B2 CHEROKEE LETTER HV -013B3 CHEROKEE LETTER LA -013B4 CHEROKEE LETTER LE -013B5 CHEROKEE LETTER LI -013B6 CHEROKEE LETTER LO -013B7 CHEROKEE LETTER LU -013B8 CHEROKEE LETTER LV -013B9 CHEROKEE LETTER MA -013BA CHEROKEE LETTER ME -013BB CHEROKEE LETTER MI -013BC CHEROKEE LETTER MO -013BD CHEROKEE LETTER MU -013BE CHEROKEE LETTER NA -013BF CHEROKEE LETTER HNA -013C0 CHEROKEE LETTER NAH -013C1 CHEROKEE LETTER NE -013C2 CHEROKEE LETTER NI -013C3 CHEROKEE LETTER NO -013C4 CHEROKEE LETTER NU -013C5 CHEROKEE LETTER NV -013C6 CHEROKEE LETTER QUA -013C7 CHEROKEE LETTER QUE -013C8 CHEROKEE LETTER QUI -013C9 CHEROKEE LETTER QUO -013CA CHEROKEE LETTER QUU -013CB CHEROKEE LETTER QUV -013CC CHEROKEE LETTER SA -013CD CHEROKEE LETTER S -013CE CHEROKEE LETTER SE -013CF CHEROKEE LETTER SI -013D0 CHEROKEE LETTER SO -013D1 CHEROKEE LETTER SU -013D2 CHEROKEE LETTER SV -013D3 CHEROKEE LETTER DA -013D4 CHEROKEE LETTER TA -013D5 CHEROKEE LETTER DE -013D6 CHEROKEE LETTER TE -013D7 CHEROKEE LETTER DI -013D8 CHEROKEE LETTER TI -013D9 CHEROKEE LETTER DO -013DA CHEROKEE LETTER DU -013DB CHEROKEE LETTER DV -013DC CHEROKEE LETTER DLA -013DD CHEROKEE LETTER TLA -013DE CHEROKEE LETTER TLE -013DF CHEROKEE LETTER TLI -013E0 CHEROKEE LETTER TLO -013E1 CHEROKEE LETTER TLU -013E2 CHEROKEE LETTER TLV -013E3 CHEROKEE LETTER TSA -013E4 CHEROKEE LETTER TSE -013E5 CHEROKEE LETTER TSI -013E6 CHEROKEE LETTER TSO -013E7 CHEROKEE LETTER TSU -013E8 CHEROKEE LETTER TSV -013E9 CHEROKEE LETTER WA -013EA CHEROKEE LETTER WE -013EB CHEROKEE LETTER WI -013EC CHEROKEE LETTER WO -013ED CHEROKEE LETTER WU -013EE CHEROKEE LETTER WV -013EF CHEROKEE LETTER YA -013F0 CHEROKEE LETTER YE -013F1 CHEROKEE LETTER YI -013F2 CHEROKEE LETTER YO -013F3 CHEROKEE LETTER YU -013F4 CHEROKEE LETTER YV -013F5 CHEROKEE LETTER MV -013F8 CHEROKEE SMALL LETTER YE -013F9 CHEROKEE SMALL LETTER YI -013FA CHEROKEE SMALL LETTER YO -013FB CHEROKEE SMALL LETTER YU -013FC CHEROKEE SMALL LETTER YV -013FD CHEROKEE SMALL LETTER MV -01400 CANADIAN SYLLABICS HYPHEN -01401 CANADIAN SYLLABICS E -01402 CANADIAN SYLLABICS AAI -01403 CANADIAN SYLLABICS I -01404 CANADIAN SYLLABICS II -01405 CANADIAN SYLLABICS O -01406 CANADIAN SYLLABICS OO -01407 CANADIAN SYLLABICS Y-CREE OO -01408 CANADIAN SYLLABICS CARRIER EE -01409 CANADIAN SYLLABICS CARRIER I -0140A CANADIAN SYLLABICS A -0140B CANADIAN SYLLABICS AA -0140C CANADIAN SYLLABICS WE -0140D CANADIAN SYLLABICS WEST-CREE WE -0140E CANADIAN SYLLABICS WI -0140F CANADIAN SYLLABICS WEST-CREE WI -01410 CANADIAN SYLLABICS WII -01411 CANADIAN SYLLABICS WEST-CREE WII -01412 CANADIAN SYLLABICS WO -01413 CANADIAN SYLLABICS WEST-CREE WO -01414 CANADIAN SYLLABICS WOO -01415 CANADIAN SYLLABICS WEST-CREE WOO -01416 CANADIAN SYLLABICS NASKAPI WOO -01417 CANADIAN SYLLABICS WA -01418 CANADIAN SYLLABICS WEST-CREE WA -01419 CANADIAN SYLLABICS WAA -0141A CANADIAN SYLLABICS WEST-CREE WAA -0141B CANADIAN SYLLABICS NASKAPI WAA -0141C CANADIAN SYLLABICS AI -0141D CANADIAN SYLLABICS Y-CREE W -0141E CANADIAN SYLLABICS GLOTTAL STOP -0141F CANADIAN SYLLABICS FINAL ACUTE -01420 CANADIAN SYLLABICS FINAL GRAVE -01421 CANADIAN SYLLABICS FINAL BOTTOM HALF RING -01422 CANADIAN SYLLABICS FINAL TOP HALF RING -01423 CANADIAN SYLLABICS FINAL RIGHT HALF RING -01424 CANADIAN SYLLABICS FINAL RING -01425 CANADIAN SYLLABICS FINAL DOUBLE ACUTE -01426 CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES -01427 CANADIAN SYLLABICS FINAL MIDDLE DOT -01428 CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE -01429 CANADIAN SYLLABICS FINAL PLUS -0142A CANADIAN SYLLABICS FINAL DOWN TACK -0142B CANADIAN SYLLABICS EN -0142C CANADIAN SYLLABICS IN -0142D CANADIAN SYLLABICS ON -0142E CANADIAN SYLLABICS AN -0142F CANADIAN SYLLABICS PE -01430 CANADIAN SYLLABICS PAAI -01431 CANADIAN SYLLABICS PI -01432 CANADIAN SYLLABICS PII -01433 CANADIAN SYLLABICS PO -01434 CANADIAN SYLLABICS POO -01435 CANADIAN SYLLABICS Y-CREE POO -01436 CANADIAN SYLLABICS CARRIER HEE -01437 CANADIAN SYLLABICS CARRIER HI -01438 CANADIAN SYLLABICS PA -01439 CANADIAN SYLLABICS PAA -0143A CANADIAN SYLLABICS PWE -0143B CANADIAN SYLLABICS WEST-CREE PWE -0143C CANADIAN SYLLABICS PWI -0143D CANADIAN SYLLABICS WEST-CREE PWI -0143E CANADIAN SYLLABICS PWII -0143F CANADIAN SYLLABICS WEST-CREE PWII -01440 CANADIAN SYLLABICS PWO -01441 CANADIAN SYLLABICS WEST-CREE PWO -01442 CANADIAN SYLLABICS PWOO -01443 CANADIAN SYLLABICS WEST-CREE PWOO -01444 CANADIAN SYLLABICS PWA -01445 CANADIAN SYLLABICS WEST-CREE PWA -01446 CANADIAN SYLLABICS PWAA -01447 CANADIAN SYLLABICS WEST-CREE PWAA -01448 CANADIAN SYLLABICS Y-CREE PWAA -01449 CANADIAN SYLLABICS P -0144A CANADIAN SYLLABICS WEST-CREE P -0144B CANADIAN SYLLABICS CARRIER H -0144C CANADIAN SYLLABICS TE -0144D CANADIAN SYLLABICS TAAI -0144E CANADIAN SYLLABICS TI -0144F CANADIAN SYLLABICS TII -01450 CANADIAN SYLLABICS TO -01451 CANADIAN SYLLABICS TOO -01452 CANADIAN SYLLABICS Y-CREE TOO -01453 CANADIAN SYLLABICS CARRIER DEE -01454 CANADIAN SYLLABICS CARRIER DI -01455 CANADIAN SYLLABICS TA -01456 CANADIAN SYLLABICS TAA -01457 CANADIAN SYLLABICS TWE -01458 CANADIAN SYLLABICS WEST-CREE TWE -01459 CANADIAN SYLLABICS TWI -0145A CANADIAN SYLLABICS WEST-CREE TWI -0145B CANADIAN SYLLABICS TWII -0145C CANADIAN SYLLABICS WEST-CREE TWII -0145D CANADIAN SYLLABICS TWO -0145E CANADIAN SYLLABICS WEST-CREE TWO -0145F CANADIAN SYLLABICS TWOO -01460 CANADIAN SYLLABICS WEST-CREE TWOO -01461 CANADIAN SYLLABICS TWA -01462 CANADIAN SYLLABICS WEST-CREE TWA -01463 CANADIAN SYLLABICS TWAA -01464 CANADIAN SYLLABICS WEST-CREE TWAA -01465 CANADIAN SYLLABICS NASKAPI TWAA -01466 CANADIAN SYLLABICS T -01467 CANADIAN SYLLABICS TTE -01468 CANADIAN SYLLABICS TTI -01469 CANADIAN SYLLABICS TTO -0146A CANADIAN SYLLABICS TTA -0146B CANADIAN SYLLABICS KE -0146C CANADIAN SYLLABICS KAAI -0146D CANADIAN SYLLABICS KI -0146E CANADIAN SYLLABICS KII -0146F CANADIAN SYLLABICS KO -01470 CANADIAN SYLLABICS KOO -01471 CANADIAN SYLLABICS Y-CREE KOO -01472 CANADIAN SYLLABICS KA -01473 CANADIAN SYLLABICS KAA -01474 CANADIAN SYLLABICS KWE -01475 CANADIAN SYLLABICS WEST-CREE KWE -01476 CANADIAN SYLLABICS KWI -01477 CANADIAN SYLLABICS WEST-CREE KWI -01478 CANADIAN SYLLABICS KWII -01479 CANADIAN SYLLABICS WEST-CREE KWII -0147A CANADIAN SYLLABICS KWO -0147B CANADIAN SYLLABICS WEST-CREE KWO -0147C CANADIAN SYLLABICS KWOO -0147D CANADIAN SYLLABICS WEST-CREE KWOO -0147E CANADIAN SYLLABICS KWA -0147F CANADIAN SYLLABICS WEST-CREE KWA -01480 CANADIAN SYLLABICS KWAA -01481 CANADIAN SYLLABICS WEST-CREE KWAA -01482 CANADIAN SYLLABICS NASKAPI KWAA -01483 CANADIAN SYLLABICS K -01484 CANADIAN SYLLABICS KW -01485 CANADIAN SYLLABICS SOUTH-SLAVEY KEH -01486 CANADIAN SYLLABICS SOUTH-SLAVEY KIH -01487 CANADIAN SYLLABICS SOUTH-SLAVEY KOH -01488 CANADIAN SYLLABICS SOUTH-SLAVEY KAH -01489 CANADIAN SYLLABICS CE -0148A CANADIAN SYLLABICS CAAI -0148B CANADIAN SYLLABICS CI -0148C CANADIAN SYLLABICS CII -0148D CANADIAN SYLLABICS CO -0148E CANADIAN SYLLABICS COO -0148F CANADIAN SYLLABICS Y-CREE COO -01490 CANADIAN SYLLABICS CA -01491 CANADIAN SYLLABICS CAA -01492 CANADIAN SYLLABICS CWE -01493 CANADIAN SYLLABICS WEST-CREE CWE -01494 CANADIAN SYLLABICS CWI -01495 CANADIAN SYLLABICS WEST-CREE CWI -01496 CANADIAN SYLLABICS CWII -01497 CANADIAN SYLLABICS WEST-CREE CWII -01498 CANADIAN SYLLABICS CWO -01499 CANADIAN SYLLABICS WEST-CREE CWO -0149A CANADIAN SYLLABICS CWOO -0149B CANADIAN SYLLABICS WEST-CREE CWOO -0149C CANADIAN SYLLABICS CWA -0149D CANADIAN SYLLABICS WEST-CREE CWA -0149E CANADIAN SYLLABICS CWAA -0149F CANADIAN SYLLABICS WEST-CREE CWAA -014A0 CANADIAN SYLLABICS NASKAPI CWAA -014A1 CANADIAN SYLLABICS C -014A2 CANADIAN SYLLABICS SAYISI TH -014A3 CANADIAN SYLLABICS ME -014A4 CANADIAN SYLLABICS MAAI -014A5 CANADIAN SYLLABICS MI -014A6 CANADIAN SYLLABICS MII -014A7 CANADIAN SYLLABICS MO -014A8 CANADIAN SYLLABICS MOO -014A9 CANADIAN SYLLABICS Y-CREE MOO -014AA CANADIAN SYLLABICS MA -014AB CANADIAN SYLLABICS MAA -014AC CANADIAN SYLLABICS MWE -014AD CANADIAN SYLLABICS WEST-CREE MWE -014AE CANADIAN SYLLABICS MWI -014AF CANADIAN SYLLABICS WEST-CREE MWI -014B0 CANADIAN SYLLABICS MWII -014B1 CANADIAN SYLLABICS WEST-CREE MWII -014B2 CANADIAN SYLLABICS MWO -014B3 CANADIAN SYLLABICS WEST-CREE MWO -014B4 CANADIAN SYLLABICS MWOO -014B5 CANADIAN SYLLABICS WEST-CREE MWOO -014B6 CANADIAN SYLLABICS MWA -014B7 CANADIAN SYLLABICS WEST-CREE MWA -014B8 CANADIAN SYLLABICS MWAA -014B9 CANADIAN SYLLABICS WEST-CREE MWAA -014BA CANADIAN SYLLABICS NASKAPI MWAA -014BB CANADIAN SYLLABICS M -014BC CANADIAN SYLLABICS WEST-CREE M -014BD CANADIAN SYLLABICS MH -014BE CANADIAN SYLLABICS ATHAPASCAN M -014BF CANADIAN SYLLABICS SAYISI M -014C0 CANADIAN SYLLABICS NE -014C1 CANADIAN SYLLABICS NAAI -014C2 CANADIAN SYLLABICS NI -014C3 CANADIAN SYLLABICS NII -014C4 CANADIAN SYLLABICS NO -014C5 CANADIAN SYLLABICS NOO -014C6 CANADIAN SYLLABICS Y-CREE NOO -014C7 CANADIAN SYLLABICS NA -014C8 CANADIAN SYLLABICS NAA -014C9 CANADIAN SYLLABICS NWE -014CA CANADIAN SYLLABICS WEST-CREE NWE -014CB CANADIAN SYLLABICS NWA -014CC CANADIAN SYLLABICS WEST-CREE NWA -014CD CANADIAN SYLLABICS NWAA -014CE CANADIAN SYLLABICS WEST-CREE NWAA -014CF CANADIAN SYLLABICS NASKAPI NWAA -014D0 CANADIAN SYLLABICS N -014D1 CANADIAN SYLLABICS CARRIER NG -014D2 CANADIAN SYLLABICS NH -014D3 CANADIAN SYLLABICS LE -014D4 CANADIAN SYLLABICS LAAI -014D5 CANADIAN SYLLABICS LI -014D6 CANADIAN SYLLABICS LII -014D7 CANADIAN SYLLABICS LO -014D8 CANADIAN SYLLABICS LOO -014D9 CANADIAN SYLLABICS Y-CREE LOO -014DA CANADIAN SYLLABICS LA -014DB CANADIAN SYLLABICS LAA -014DC CANADIAN SYLLABICS LWE -014DD CANADIAN SYLLABICS WEST-CREE LWE -014DE CANADIAN SYLLABICS LWI -014DF CANADIAN SYLLABICS WEST-CREE LWI -014E0 CANADIAN SYLLABICS LWII -014E1 CANADIAN SYLLABICS WEST-CREE LWII -014E2 CANADIAN SYLLABICS LWO -014E3 CANADIAN SYLLABICS WEST-CREE LWO -014E4 CANADIAN SYLLABICS LWOO -014E5 CANADIAN SYLLABICS WEST-CREE LWOO -014E6 CANADIAN SYLLABICS LWA -014E7 CANADIAN SYLLABICS WEST-CREE LWA -014E8 CANADIAN SYLLABICS LWAA -014E9 CANADIAN SYLLABICS WEST-CREE LWAA -014EA CANADIAN SYLLABICS L -014EB CANADIAN SYLLABICS WEST-CREE L -014EC CANADIAN SYLLABICS MEDIAL L -014ED CANADIAN SYLLABICS SE -014EE CANADIAN SYLLABICS SAAI -014EF CANADIAN SYLLABICS SI -014F0 CANADIAN SYLLABICS SII -014F1 CANADIAN SYLLABICS SO -014F2 CANADIAN SYLLABICS SOO -014F3 CANADIAN SYLLABICS Y-CREE SOO -014F4 CANADIAN SYLLABICS SA -014F5 CANADIAN SYLLABICS SAA -014F6 CANADIAN SYLLABICS SWE -014F7 CANADIAN SYLLABICS WEST-CREE SWE -014F8 CANADIAN SYLLABICS SWI -014F9 CANADIAN SYLLABICS WEST-CREE SWI -014FA CANADIAN SYLLABICS SWII -014FB CANADIAN SYLLABICS WEST-CREE SWII -014FC CANADIAN SYLLABICS SWO -014FD CANADIAN SYLLABICS WEST-CREE SWO -014FE CANADIAN SYLLABICS SWOO -014FF CANADIAN SYLLABICS WEST-CREE SWOO -01500 CANADIAN SYLLABICS SWA -01501 CANADIAN SYLLABICS WEST-CREE SWA -01502 CANADIAN SYLLABICS SWAA -01503 CANADIAN SYLLABICS WEST-CREE SWAA -01504 CANADIAN SYLLABICS NASKAPI SWAA -01505 CANADIAN SYLLABICS S -01506 CANADIAN SYLLABICS ATHAPASCAN S -01507 CANADIAN SYLLABICS SW -01508 CANADIAN SYLLABICS BLACKFOOT S -01509 CANADIAN SYLLABICS MOOSE-CREE SK -0150A CANADIAN SYLLABICS NASKAPI SKW -0150B CANADIAN SYLLABICS NASKAPI S-W -0150C CANADIAN SYLLABICS NASKAPI SPWA -0150D CANADIAN SYLLABICS NASKAPI STWA -0150E CANADIAN SYLLABICS NASKAPI SKWA -0150F CANADIAN SYLLABICS NASKAPI SCWA -01510 CANADIAN SYLLABICS SHE -01511 CANADIAN SYLLABICS SHI -01512 CANADIAN SYLLABICS SHII -01513 CANADIAN SYLLABICS SHO -01514 CANADIAN SYLLABICS SHOO -01515 CANADIAN SYLLABICS SHA -01516 CANADIAN SYLLABICS SHAA -01517 CANADIAN SYLLABICS SHWE -01518 CANADIAN SYLLABICS WEST-CREE SHWE -01519 CANADIAN SYLLABICS SHWI -0151A CANADIAN SYLLABICS WEST-CREE SHWI -0151B CANADIAN SYLLABICS SHWII -0151C CANADIAN SYLLABICS WEST-CREE SHWII -0151D CANADIAN SYLLABICS SHWO -0151E CANADIAN SYLLABICS WEST-CREE SHWO -0151F CANADIAN SYLLABICS SHWOO -01520 CANADIAN SYLLABICS WEST-CREE SHWOO -01521 CANADIAN SYLLABICS SHWA -01522 CANADIAN SYLLABICS WEST-CREE SHWA -01523 CANADIAN SYLLABICS SHWAA -01524 CANADIAN SYLLABICS WEST-CREE SHWAA -01525 CANADIAN SYLLABICS SH -01526 CANADIAN SYLLABICS YE -01527 CANADIAN SYLLABICS YAAI -01528 CANADIAN SYLLABICS YI -01529 CANADIAN SYLLABICS YII -0152A CANADIAN SYLLABICS YO -0152B CANADIAN SYLLABICS YOO -0152C CANADIAN SYLLABICS Y-CREE YOO -0152D CANADIAN SYLLABICS YA -0152E CANADIAN SYLLABICS YAA -0152F CANADIAN SYLLABICS YWE -01530 CANADIAN SYLLABICS WEST-CREE YWE -01531 CANADIAN SYLLABICS YWI -01532 CANADIAN SYLLABICS WEST-CREE YWI -01533 CANADIAN SYLLABICS YWII -01534 CANADIAN SYLLABICS WEST-CREE YWII -01535 CANADIAN SYLLABICS YWO -01536 CANADIAN SYLLABICS WEST-CREE YWO -01537 CANADIAN SYLLABICS YWOO -01538 CANADIAN SYLLABICS WEST-CREE YWOO -01539 CANADIAN SYLLABICS YWA -0153A CANADIAN SYLLABICS WEST-CREE YWA -0153B CANADIAN SYLLABICS YWAA -0153C CANADIAN SYLLABICS WEST-CREE YWAA -0153D CANADIAN SYLLABICS NASKAPI YWAA -0153E CANADIAN SYLLABICS Y -0153F CANADIAN SYLLABICS BIBLE-CREE Y -01540 CANADIAN SYLLABICS WEST-CREE Y -01541 CANADIAN SYLLABICS SAYISI YI -01542 CANADIAN SYLLABICS RE -01543 CANADIAN SYLLABICS R-CREE RE -01544 CANADIAN SYLLABICS WEST-CREE LE -01545 CANADIAN SYLLABICS RAAI -01546 CANADIAN SYLLABICS RI -01547 CANADIAN SYLLABICS RII -01548 CANADIAN SYLLABICS RO -01549 CANADIAN SYLLABICS ROO -0154A CANADIAN SYLLABICS WEST-CREE LO -0154B CANADIAN SYLLABICS RA -0154C CANADIAN SYLLABICS RAA -0154D CANADIAN SYLLABICS WEST-CREE LA -0154E CANADIAN SYLLABICS RWAA -0154F CANADIAN SYLLABICS WEST-CREE RWAA -01550 CANADIAN SYLLABICS R -01551 CANADIAN SYLLABICS WEST-CREE R -01552 CANADIAN SYLLABICS MEDIAL R -01553 CANADIAN SYLLABICS FE -01554 CANADIAN SYLLABICS FAAI -01555 CANADIAN SYLLABICS FI -01556 CANADIAN SYLLABICS FII -01557 CANADIAN SYLLABICS FO -01558 CANADIAN SYLLABICS FOO -01559 CANADIAN SYLLABICS FA -0155A CANADIAN SYLLABICS FAA -0155B CANADIAN SYLLABICS FWAA -0155C CANADIAN SYLLABICS WEST-CREE FWAA -0155D CANADIAN SYLLABICS F -0155E CANADIAN SYLLABICS THE -0155F CANADIAN SYLLABICS N-CREE THE -01560 CANADIAN SYLLABICS THI -01561 CANADIAN SYLLABICS N-CREE THI -01562 CANADIAN SYLLABICS THII -01563 CANADIAN SYLLABICS N-CREE THII -01564 CANADIAN SYLLABICS THO -01565 CANADIAN SYLLABICS THOO -01566 CANADIAN SYLLABICS THA -01567 CANADIAN SYLLABICS THAA -01568 CANADIAN SYLLABICS THWAA -01569 CANADIAN SYLLABICS WEST-CREE THWAA -0156A CANADIAN SYLLABICS TH -0156B CANADIAN SYLLABICS TTHE -0156C CANADIAN SYLLABICS TTHI -0156D CANADIAN SYLLABICS TTHO -0156E CANADIAN SYLLABICS TTHA -0156F CANADIAN SYLLABICS TTH -01570 CANADIAN SYLLABICS TYE -01571 CANADIAN SYLLABICS TYI -01572 CANADIAN SYLLABICS TYO -01573 CANADIAN SYLLABICS TYA -01574 CANADIAN SYLLABICS NUNAVIK HE -01575 CANADIAN SYLLABICS NUNAVIK HI -01576 CANADIAN SYLLABICS NUNAVIK HII -01577 CANADIAN SYLLABICS NUNAVIK HO -01578 CANADIAN SYLLABICS NUNAVIK HOO -01579 CANADIAN SYLLABICS NUNAVIK HA -0157A CANADIAN SYLLABICS NUNAVIK HAA -0157B CANADIAN SYLLABICS NUNAVIK H -0157C CANADIAN SYLLABICS NUNAVUT H -0157D CANADIAN SYLLABICS HK -0157E CANADIAN SYLLABICS QAAI -0157F CANADIAN SYLLABICS QI -01580 CANADIAN SYLLABICS QII -01581 CANADIAN SYLLABICS QO -01582 CANADIAN SYLLABICS QOO -01583 CANADIAN SYLLABICS QA -01584 CANADIAN SYLLABICS QAA -01585 CANADIAN SYLLABICS Q -01586 CANADIAN SYLLABICS TLHE -01587 CANADIAN SYLLABICS TLHI -01588 CANADIAN SYLLABICS TLHO -01589 CANADIAN SYLLABICS TLHA -0158A CANADIAN SYLLABICS WEST-CREE RE -0158B CANADIAN SYLLABICS WEST-CREE RI -0158C CANADIAN SYLLABICS WEST-CREE RO -0158D CANADIAN SYLLABICS WEST-CREE RA -0158E CANADIAN SYLLABICS NGAAI -0158F CANADIAN SYLLABICS NGI -01590 CANADIAN SYLLABICS NGII -01591 CANADIAN SYLLABICS NGO -01592 CANADIAN SYLLABICS NGOO -01593 CANADIAN SYLLABICS NGA -01594 CANADIAN SYLLABICS NGAA -01595 CANADIAN SYLLABICS NG -01596 CANADIAN SYLLABICS NNG -01597 CANADIAN SYLLABICS SAYISI SHE -01598 CANADIAN SYLLABICS SAYISI SHI -01599 CANADIAN SYLLABICS SAYISI SHO -0159A CANADIAN SYLLABICS SAYISI SHA -0159B CANADIAN SYLLABICS WOODS-CREE THE -0159C CANADIAN SYLLABICS WOODS-CREE THI -0159D CANADIAN SYLLABICS WOODS-CREE THO -0159E CANADIAN SYLLABICS WOODS-CREE THA -0159F CANADIAN SYLLABICS WOODS-CREE TH -015A0 CANADIAN SYLLABICS LHI -015A1 CANADIAN SYLLABICS LHII -015A2 CANADIAN SYLLABICS LHO -015A3 CANADIAN SYLLABICS LHOO -015A4 CANADIAN SYLLABICS LHA -015A5 CANADIAN SYLLABICS LHAA -015A6 CANADIAN SYLLABICS LH -015A7 CANADIAN SYLLABICS TH-CREE THE -015A8 CANADIAN SYLLABICS TH-CREE THI -015A9 CANADIAN SYLLABICS TH-CREE THII -015AA CANADIAN SYLLABICS TH-CREE THO -015AB CANADIAN SYLLABICS TH-CREE THOO -015AC CANADIAN SYLLABICS TH-CREE THA -015AD CANADIAN SYLLABICS TH-CREE THAA -015AE CANADIAN SYLLABICS TH-CREE TH -015AF CANADIAN SYLLABICS AIVILIK B -015B0 CANADIAN SYLLABICS BLACKFOOT E -015B1 CANADIAN SYLLABICS BLACKFOOT I -015B2 CANADIAN SYLLABICS BLACKFOOT O -015B3 CANADIAN SYLLABICS BLACKFOOT A -015B4 CANADIAN SYLLABICS BLACKFOOT WE -015B5 CANADIAN SYLLABICS BLACKFOOT WI -015B6 CANADIAN SYLLABICS BLACKFOOT WO -015B7 CANADIAN SYLLABICS BLACKFOOT WA -015B8 CANADIAN SYLLABICS BLACKFOOT NE -015B9 CANADIAN SYLLABICS BLACKFOOT NI -015BA CANADIAN SYLLABICS BLACKFOOT NO -015BB CANADIAN SYLLABICS BLACKFOOT NA -015BC CANADIAN SYLLABICS BLACKFOOT KE -015BD CANADIAN SYLLABICS BLACKFOOT KI -015BE CANADIAN SYLLABICS BLACKFOOT KO -015BF CANADIAN SYLLABICS BLACKFOOT KA -015C0 CANADIAN SYLLABICS SAYISI HE -015C1 CANADIAN SYLLABICS SAYISI HI -015C2 CANADIAN SYLLABICS SAYISI HO -015C3 CANADIAN SYLLABICS SAYISI HA -015C4 CANADIAN SYLLABICS CARRIER GHU -015C5 CANADIAN SYLLABICS CARRIER GHO -015C6 CANADIAN SYLLABICS CARRIER GHE -015C7 CANADIAN SYLLABICS CARRIER GHEE -015C8 CANADIAN SYLLABICS CARRIER GHI -015C9 CANADIAN SYLLABICS CARRIER GHA -015CA CANADIAN SYLLABICS CARRIER RU -015CB CANADIAN SYLLABICS CARRIER RO -015CC CANADIAN SYLLABICS CARRIER RE -015CD CANADIAN SYLLABICS CARRIER REE -015CE CANADIAN SYLLABICS CARRIER RI -015CF CANADIAN SYLLABICS CARRIER RA -015D0 CANADIAN SYLLABICS CARRIER WU -015D1 CANADIAN SYLLABICS CARRIER WO -015D2 CANADIAN SYLLABICS CARRIER WE -015D3 CANADIAN SYLLABICS CARRIER WEE -015D4 CANADIAN SYLLABICS CARRIER WI -015D5 CANADIAN SYLLABICS CARRIER WA -015D6 CANADIAN SYLLABICS CARRIER HWU -015D7 CANADIAN SYLLABICS CARRIER HWO -015D8 CANADIAN SYLLABICS CARRIER HWE -015D9 CANADIAN SYLLABICS CARRIER HWEE -015DA CANADIAN SYLLABICS CARRIER HWI -015DB CANADIAN SYLLABICS CARRIER HWA -015DC CANADIAN SYLLABICS CARRIER THU -015DD CANADIAN SYLLABICS CARRIER THO -015DE CANADIAN SYLLABICS CARRIER THE -015DF CANADIAN SYLLABICS CARRIER THEE -015E0 CANADIAN SYLLABICS CARRIER THI -015E1 CANADIAN SYLLABICS CARRIER THA -015E2 CANADIAN SYLLABICS CARRIER TTU -015E3 CANADIAN SYLLABICS CARRIER TTO -015E4 CANADIAN SYLLABICS CARRIER TTE -015E5 CANADIAN SYLLABICS CARRIER TTEE -015E6 CANADIAN SYLLABICS CARRIER TTI -015E7 CANADIAN SYLLABICS CARRIER TTA -015E8 CANADIAN SYLLABICS CARRIER PU -015E9 CANADIAN SYLLABICS CARRIER PO -015EA CANADIAN SYLLABICS CARRIER PE -015EB CANADIAN SYLLABICS CARRIER PEE -015EC CANADIAN SYLLABICS CARRIER PI -015ED CANADIAN SYLLABICS CARRIER PA -015EE CANADIAN SYLLABICS CARRIER P -015EF CANADIAN SYLLABICS CARRIER GU -015F0 CANADIAN SYLLABICS CARRIER GO -015F1 CANADIAN SYLLABICS CARRIER GE -015F2 CANADIAN SYLLABICS CARRIER GEE -015F3 CANADIAN SYLLABICS CARRIER GI -015F4 CANADIAN SYLLABICS CARRIER GA -015F5 CANADIAN SYLLABICS CARRIER KHU -015F6 CANADIAN SYLLABICS CARRIER KHO -015F7 CANADIAN SYLLABICS CARRIER KHE -015F8 CANADIAN SYLLABICS CARRIER KHEE -015F9 CANADIAN SYLLABICS CARRIER KHI -015FA CANADIAN SYLLABICS CARRIER KHA -015FB CANADIAN SYLLABICS CARRIER KKU -015FC CANADIAN SYLLABICS CARRIER KKO -015FD CANADIAN SYLLABICS CARRIER KKE -015FE CANADIAN SYLLABICS CARRIER KKEE -015FF CANADIAN SYLLABICS CARRIER KKI -01600 CANADIAN SYLLABICS CARRIER KKA -01601 CANADIAN SYLLABICS CARRIER KK -01602 CANADIAN SYLLABICS CARRIER NU -01603 CANADIAN SYLLABICS CARRIER NO -01604 CANADIAN SYLLABICS CARRIER NE -01605 CANADIAN SYLLABICS CARRIER NEE -01606 CANADIAN SYLLABICS CARRIER NI -01607 CANADIAN SYLLABICS CARRIER NA -01608 CANADIAN SYLLABICS CARRIER MU -01609 CANADIAN SYLLABICS CARRIER MO -0160A CANADIAN SYLLABICS CARRIER ME -0160B CANADIAN SYLLABICS CARRIER MEE -0160C CANADIAN SYLLABICS CARRIER MI -0160D CANADIAN SYLLABICS CARRIER MA -0160E CANADIAN SYLLABICS CARRIER YU -0160F CANADIAN SYLLABICS CARRIER YO -01610 CANADIAN SYLLABICS CARRIER YE -01611 CANADIAN SYLLABICS CARRIER YEE -01612 CANADIAN SYLLABICS CARRIER YI -01613 CANADIAN SYLLABICS CARRIER YA -01614 CANADIAN SYLLABICS CARRIER JU -01615 CANADIAN SYLLABICS SAYISI JU -01616 CANADIAN SYLLABICS CARRIER JO -01617 CANADIAN SYLLABICS CARRIER JE -01618 CANADIAN SYLLABICS CARRIER JEE -01619 CANADIAN SYLLABICS CARRIER JI -0161A CANADIAN SYLLABICS SAYISI JI -0161B CANADIAN SYLLABICS CARRIER JA -0161C CANADIAN SYLLABICS CARRIER JJU -0161D CANADIAN SYLLABICS CARRIER JJO -0161E CANADIAN SYLLABICS CARRIER JJE -0161F CANADIAN SYLLABICS CARRIER JJEE -01620 CANADIAN SYLLABICS CARRIER JJI -01621 CANADIAN SYLLABICS CARRIER JJA -01622 CANADIAN SYLLABICS CARRIER LU -01623 CANADIAN SYLLABICS CARRIER LO -01624 CANADIAN SYLLABICS CARRIER LE -01625 CANADIAN SYLLABICS CARRIER LEE -01626 CANADIAN SYLLABICS CARRIER LI -01627 CANADIAN SYLLABICS CARRIER LA -01628 CANADIAN SYLLABICS CARRIER DLU -01629 CANADIAN SYLLABICS CARRIER DLO -0162A CANADIAN SYLLABICS CARRIER DLE -0162B CANADIAN SYLLABICS CARRIER DLEE -0162C CANADIAN SYLLABICS CARRIER DLI -0162D CANADIAN SYLLABICS CARRIER DLA -0162E CANADIAN SYLLABICS CARRIER LHU -0162F CANADIAN SYLLABICS CARRIER LHO -01630 CANADIAN SYLLABICS CARRIER LHE -01631 CANADIAN SYLLABICS CARRIER LHEE -01632 CANADIAN SYLLABICS CARRIER LHI -01633 CANADIAN SYLLABICS CARRIER LHA -01634 CANADIAN SYLLABICS CARRIER TLHU -01635 CANADIAN SYLLABICS CARRIER TLHO -01636 CANADIAN SYLLABICS CARRIER TLHE -01637 CANADIAN SYLLABICS CARRIER TLHEE -01638 CANADIAN SYLLABICS CARRIER TLHI -01639 CANADIAN SYLLABICS CARRIER TLHA -0163A CANADIAN SYLLABICS CARRIER TLU -0163B CANADIAN SYLLABICS CARRIER TLO -0163C CANADIAN SYLLABICS CARRIER TLE -0163D CANADIAN SYLLABICS CARRIER TLEE -0163E CANADIAN SYLLABICS CARRIER TLI -0163F CANADIAN SYLLABICS CARRIER TLA -01640 CANADIAN SYLLABICS CARRIER ZU -01641 CANADIAN SYLLABICS CARRIER ZO -01642 CANADIAN SYLLABICS CARRIER ZE -01643 CANADIAN SYLLABICS CARRIER ZEE -01644 CANADIAN SYLLABICS CARRIER ZI -01645 CANADIAN SYLLABICS CARRIER ZA -01646 CANADIAN SYLLABICS CARRIER Z -01647 CANADIAN SYLLABICS CARRIER INITIAL Z -01648 CANADIAN SYLLABICS CARRIER DZU -01649 CANADIAN SYLLABICS CARRIER DZO -0164A CANADIAN SYLLABICS CARRIER DZE -0164B CANADIAN SYLLABICS CARRIER DZEE -0164C CANADIAN SYLLABICS CARRIER DZI -0164D CANADIAN SYLLABICS CARRIER DZA -0164E CANADIAN SYLLABICS CARRIER SU -0164F CANADIAN SYLLABICS CARRIER SO -01650 CANADIAN SYLLABICS CARRIER SE -01651 CANADIAN SYLLABICS CARRIER SEE -01652 CANADIAN SYLLABICS CARRIER SI -01653 CANADIAN SYLLABICS CARRIER SA -01654 CANADIAN SYLLABICS CARRIER SHU -01655 CANADIAN SYLLABICS CARRIER SHO -01656 CANADIAN SYLLABICS CARRIER SHE -01657 CANADIAN SYLLABICS CARRIER SHEE -01658 CANADIAN SYLLABICS CARRIER SHI -01659 CANADIAN SYLLABICS CARRIER SHA -0165A CANADIAN SYLLABICS CARRIER SH -0165B CANADIAN SYLLABICS CARRIER TSU -0165C CANADIAN SYLLABICS CARRIER TSO -0165D CANADIAN SYLLABICS CARRIER TSE -0165E CANADIAN SYLLABICS CARRIER TSEE -0165F CANADIAN SYLLABICS CARRIER TSI -01660 CANADIAN SYLLABICS CARRIER TSA -01661 CANADIAN SYLLABICS CARRIER CHU -01662 CANADIAN SYLLABICS CARRIER CHO -01663 CANADIAN SYLLABICS CARRIER CHE -01664 CANADIAN SYLLABICS CARRIER CHEE -01665 CANADIAN SYLLABICS CARRIER CHI -01666 CANADIAN SYLLABICS CARRIER CHA -01667 CANADIAN SYLLABICS CARRIER TTSU -01668 CANADIAN SYLLABICS CARRIER TTSO -01669 CANADIAN SYLLABICS CARRIER TTSE -0166A CANADIAN SYLLABICS CARRIER TTSEE -0166B CANADIAN SYLLABICS CARRIER TTSI -0166C CANADIAN SYLLABICS CARRIER TTSA -0166D CANADIAN SYLLABICS CHI SIGN -0166E CANADIAN SYLLABICS FULL STOP -0166F CANADIAN SYLLABICS QAI -01670 CANADIAN SYLLABICS NGAI -01671 CANADIAN SYLLABICS NNGI -01672 CANADIAN SYLLABICS NNGII -01673 CANADIAN SYLLABICS NNGO -01674 CANADIAN SYLLABICS NNGOO -01675 CANADIAN SYLLABICS NNGA -01676 CANADIAN SYLLABICS NNGAA -01677 CANADIAN SYLLABICS WOODS-CREE THWEE -01678 CANADIAN SYLLABICS WOODS-CREE THWI -01679 CANADIAN SYLLABICS WOODS-CREE THWII -0167A CANADIAN SYLLABICS WOODS-CREE THWO -0167B CANADIAN SYLLABICS WOODS-CREE THWOO -0167C CANADIAN SYLLABICS WOODS-CREE THWA -0167D CANADIAN SYLLABICS WOODS-CREE THWAA -0167E CANADIAN SYLLABICS WOODS-CREE FINAL TH -0167F CANADIAN SYLLABICS BLACKFOOT W -01680 OGHAM SPACE MARK -01681 OGHAM LETTER BEITH -01682 OGHAM LETTER LUIS -01683 OGHAM LETTER FEARN -01684 OGHAM LETTER SAIL -01685 OGHAM LETTER NION -01686 OGHAM LETTER UATH -01687 OGHAM LETTER DAIR -01688 OGHAM LETTER TINNE -01689 OGHAM LETTER COLL -0168A OGHAM LETTER CEIRT -0168B OGHAM LETTER MUIN -0168C OGHAM LETTER GORT -0168D OGHAM LETTER NGEADAL -0168E OGHAM LETTER STRAIF -0168F OGHAM LETTER RUIS -01690 OGHAM LETTER AILM -01691 OGHAM LETTER ONN -01692 OGHAM LETTER UR -01693 OGHAM LETTER EADHADH -01694 OGHAM LETTER IODHADH -01695 OGHAM LETTER EABHADH -01696 OGHAM LETTER OR -01697 OGHAM LETTER UILLEANN -01698 OGHAM LETTER IFIN -01699 OGHAM LETTER EAMHANCHOLL -0169A OGHAM LETTER PEITH -0169B OGHAM FEATHER MARK -0169C OGHAM REVERSED FEATHER MARK -016A0 RUNIC LETTER FEHU FEOH FE F -016A1 RUNIC LETTER V -016A2 RUNIC LETTER URUZ UR U -016A3 RUNIC LETTER YR -016A4 RUNIC LETTER Y -016A5 RUNIC LETTER W -016A6 RUNIC LETTER THURISAZ THURS THORN -016A7 RUNIC LETTER ETH -016A8 RUNIC LETTER ANSUZ A -016A9 RUNIC LETTER OS O -016AA RUNIC LETTER AC A -016AB RUNIC LETTER AESC -016AC RUNIC LETTER LONG-BRANCH-OSS O -016AD RUNIC LETTER SHORT-TWIG-OSS O -016AE RUNIC LETTER O -016AF RUNIC LETTER OE -016B0 RUNIC LETTER ON -016B1 RUNIC LETTER RAIDO RAD REID R -016B2 RUNIC LETTER KAUNA -016B3 RUNIC LETTER CEN -016B4 RUNIC LETTER KAUN K -016B5 RUNIC LETTER G -016B6 RUNIC LETTER ENG -016B7 RUNIC LETTER GEBO GYFU G -016B8 RUNIC LETTER GAR -016B9 RUNIC LETTER WUNJO WYNN W -016BA RUNIC LETTER HAGLAZ H -016BB RUNIC LETTER HAEGL H -016BC RUNIC LETTER LONG-BRANCH-HAGALL H -016BD RUNIC LETTER SHORT-TWIG-HAGALL H -016BE RUNIC LETTER NAUDIZ NYD NAUD N -016BF RUNIC LETTER SHORT-TWIG-NAUD N -016C0 RUNIC LETTER DOTTED-N -016C1 RUNIC LETTER ISAZ IS ISS I -016C2 RUNIC LETTER E -016C3 RUNIC LETTER JERAN J -016C4 RUNIC LETTER GER -016C5 RUNIC LETTER LONG-BRANCH-AR AE -016C6 RUNIC LETTER SHORT-TWIG-AR A -016C7 RUNIC LETTER IWAZ EOH -016C8 RUNIC LETTER PERTHO PEORTH P -016C9 RUNIC LETTER ALGIZ EOLHX -016CA RUNIC LETTER SOWILO S -016CB RUNIC LETTER SIGEL LONG-BRANCH-SOL S -016CC RUNIC LETTER SHORT-TWIG-SOL S -016CD RUNIC LETTER C -016CE RUNIC LETTER Z -016CF RUNIC LETTER TIWAZ TIR TYR T -016D0 RUNIC LETTER SHORT-TWIG-TYR T -016D1 RUNIC LETTER D -016D2 RUNIC LETTER BERKANAN BEORC BJARKAN B -016D3 RUNIC LETTER SHORT-TWIG-BJARKAN B -016D4 RUNIC LETTER DOTTED-P -016D5 RUNIC LETTER OPEN-P -016D6 RUNIC LETTER EHWAZ EH E -016D7 RUNIC LETTER MANNAZ MAN M -016D8 RUNIC LETTER LONG-BRANCH-MADR M -016D9 RUNIC LETTER SHORT-TWIG-MADR M -016DA RUNIC LETTER LAUKAZ LAGU LOGR L -016DB RUNIC LETTER DOTTED-L -016DC RUNIC LETTER INGWAZ -016DD RUNIC LETTER ING -016DE RUNIC LETTER DAGAZ DAEG D -016DF RUNIC LETTER OTHALAN ETHEL O -016E0 RUNIC LETTER EAR -016E1 RUNIC LETTER IOR -016E2 RUNIC LETTER CWEORTH -016E3 RUNIC LETTER CALC -016E4 RUNIC LETTER CEALC -016E5 RUNIC LETTER STAN -016E6 RUNIC LETTER LONG-BRANCH-YR -016E7 RUNIC LETTER SHORT-TWIG-YR -016E8 RUNIC LETTER ICELANDIC-YR -016E9 RUNIC LETTER Q -016EA RUNIC LETTER X -016EB RUNIC SINGLE PUNCTUATION -016EC RUNIC MULTIPLE PUNCTUATION -016ED RUNIC CROSS PUNCTUATION -016EE RUNIC ARLAUG SYMBOL -016EF RUNIC TVIMADUR SYMBOL -016F0 RUNIC BELGTHOR SYMBOL -016F1 RUNIC LETTER K -016F2 RUNIC LETTER SH -016F3 RUNIC LETTER OO -016F4 RUNIC LETTER FRANKS CASKET OS -016F5 RUNIC LETTER FRANKS CASKET IS -016F6 RUNIC LETTER FRANKS CASKET EH -016F7 RUNIC LETTER FRANKS CASKET AC -016F8 RUNIC LETTER FRANKS CASKET AESC -01700 TAGALOG LETTER A -01701 TAGALOG LETTER I -01702 TAGALOG LETTER U -01703 TAGALOG LETTER KA -01704 TAGALOG LETTER GA -01705 TAGALOG LETTER NGA -01706 TAGALOG LETTER TA -01707 TAGALOG LETTER DA -01708 TAGALOG LETTER NA -01709 TAGALOG LETTER PA -0170A TAGALOG LETTER BA -0170B TAGALOG LETTER MA -0170C TAGALOG LETTER YA -0170E TAGALOG LETTER LA -0170F TAGALOG LETTER WA -01710 TAGALOG LETTER SA -01711 TAGALOG LETTER HA -01712 TAGALOG VOWEL SIGN I -01713 TAGALOG VOWEL SIGN U -01714 TAGALOG SIGN VIRAMA -01720 HANUNOO LETTER A -01721 HANUNOO LETTER I -01722 HANUNOO LETTER U -01723 HANUNOO LETTER KA -01724 HANUNOO LETTER GA -01725 HANUNOO LETTER NGA -01726 HANUNOO LETTER TA -01727 HANUNOO LETTER DA -01728 HANUNOO LETTER NA -01729 HANUNOO LETTER PA -0172A HANUNOO LETTER BA -0172B HANUNOO LETTER MA -0172C HANUNOO LETTER YA -0172D HANUNOO LETTER RA -0172E HANUNOO LETTER LA -0172F HANUNOO LETTER WA -01730 HANUNOO LETTER SA -01731 HANUNOO LETTER HA -01732 HANUNOO VOWEL SIGN I -01733 HANUNOO VOWEL SIGN U -01734 HANUNOO SIGN PAMUDPOD -01735 PHILIPPINE SINGLE PUNCTUATION -01736 PHILIPPINE DOUBLE PUNCTUATION -01740 BUHID LETTER A -01741 BUHID LETTER I -01742 BUHID LETTER U -01743 BUHID LETTER KA -01744 BUHID LETTER GA -01745 BUHID LETTER NGA -01746 BUHID LETTER TA -01747 BUHID LETTER DA -01748 BUHID LETTER NA -01749 BUHID LETTER PA -0174A BUHID LETTER BA -0174B BUHID LETTER MA -0174C BUHID LETTER YA -0174D BUHID LETTER RA -0174E BUHID LETTER LA -0174F BUHID LETTER WA -01750 BUHID LETTER SA -01751 BUHID LETTER HA -01752 BUHID VOWEL SIGN I -01753 BUHID VOWEL SIGN U -01760 TAGBANWA LETTER A -01761 TAGBANWA LETTER I -01762 TAGBANWA LETTER U -01763 TAGBANWA LETTER KA -01764 TAGBANWA LETTER GA -01765 TAGBANWA LETTER NGA -01766 TAGBANWA LETTER TA -01767 TAGBANWA LETTER DA -01768 TAGBANWA LETTER NA -01769 TAGBANWA LETTER PA -0176A TAGBANWA LETTER BA -0176B TAGBANWA LETTER MA -0176C TAGBANWA LETTER YA -0176E TAGBANWA LETTER LA -0176F TAGBANWA LETTER WA -01770 TAGBANWA LETTER SA -01772 TAGBANWA VOWEL SIGN I -01773 TAGBANWA VOWEL SIGN U -01780 KHMER LETTER KA -01781 KHMER LETTER KHA -01782 KHMER LETTER KO -01783 KHMER LETTER KHO -01784 KHMER LETTER NGO -01785 KHMER LETTER CA -01786 KHMER LETTER CHA -01787 KHMER LETTER CO -01788 KHMER LETTER CHO -01789 KHMER LETTER NYO -0178A KHMER LETTER DA -0178B KHMER LETTER TTHA -0178C KHMER LETTER DO -0178D KHMER LETTER TTHO -0178E KHMER LETTER NNO -0178F KHMER LETTER TA -01790 KHMER LETTER THA -01791 KHMER LETTER TO -01792 KHMER LETTER THO -01793 KHMER LETTER NO -01794 KHMER LETTER BA -01795 KHMER LETTER PHA -01796 KHMER LETTER PO -01797 KHMER LETTER PHO -01798 KHMER LETTER MO -01799 KHMER LETTER YO -0179A KHMER LETTER RO -0179B KHMER LETTER LO -0179C KHMER LETTER VO -0179D KHMER LETTER SHA -0179E KHMER LETTER SSO -0179F KHMER LETTER SA -017A0 KHMER LETTER HA -017A1 KHMER LETTER LA -017A2 KHMER LETTER QA -017A3 KHMER INDEPENDENT VOWEL QAQ -017A4 KHMER INDEPENDENT VOWEL QAA -017A5 KHMER INDEPENDENT VOWEL QI -017A6 KHMER INDEPENDENT VOWEL QII -017A7 KHMER INDEPENDENT VOWEL QU -017A8 KHMER INDEPENDENT VOWEL QUK -017A9 KHMER INDEPENDENT VOWEL QUU -017AA KHMER INDEPENDENT VOWEL QUUV -017AB KHMER INDEPENDENT VOWEL RY -017AC KHMER INDEPENDENT VOWEL RYY -017AD KHMER INDEPENDENT VOWEL LY -017AE KHMER INDEPENDENT VOWEL LYY -017AF KHMER INDEPENDENT VOWEL QE -017B0 KHMER INDEPENDENT VOWEL QAI -017B1 KHMER INDEPENDENT VOWEL QOO TYPE ONE -017B2 KHMER INDEPENDENT VOWEL QOO TYPE TWO -017B3 KHMER INDEPENDENT VOWEL QAU -017B4 KHMER VOWEL INHERENT AQ -017B5 KHMER VOWEL INHERENT AA -017B6 KHMER VOWEL SIGN AA -017B7 KHMER VOWEL SIGN I -017B8 KHMER VOWEL SIGN II -017B9 KHMER VOWEL SIGN Y -017BA KHMER VOWEL SIGN YY -017BB KHMER VOWEL SIGN U -017BC KHMER VOWEL SIGN UU -017BD KHMER VOWEL SIGN UA -017BE KHMER VOWEL SIGN OE -017BF KHMER VOWEL SIGN YA -017C0 KHMER VOWEL SIGN IE -017C1 KHMER VOWEL SIGN E -017C2 KHMER VOWEL SIGN AE -017C3 KHMER VOWEL SIGN AI -017C4 KHMER VOWEL SIGN OO -017C5 KHMER VOWEL SIGN AU -017C6 KHMER SIGN NIKAHIT -017C7 KHMER SIGN REAHMUK -017C8 KHMER SIGN YUUKALEAPINTU -017C9 KHMER SIGN MUUSIKATOAN -017CA KHMER SIGN TRIISAP -017CB KHMER SIGN BANTOC -017CC KHMER SIGN ROBAT -017CD KHMER SIGN TOANDAKHIAT -017CE KHMER SIGN KAKABAT -017CF KHMER SIGN AHSDA -017D0 KHMER SIGN SAMYOK SANNYA -017D1 KHMER SIGN VIRIAM -017D2 KHMER SIGN COENG -017D3 KHMER SIGN BATHAMASAT -017D4 KHMER SIGN KHAN -017D5 KHMER SIGN BARIYOOSAN -017D6 KHMER SIGN CAMNUC PII KUUH -017D7 KHMER SIGN LEK TOO -017D8 KHMER SIGN BEYYAL -017D9 KHMER SIGN PHNAEK MUAN -017DA KHMER SIGN KOOMUUT -017DB KHMER CURRENCY SYMBOL RIEL -017DC KHMER SIGN AVAKRAHASANYA -017DD KHMER SIGN ATTHACAN -017E0 KHMER DIGIT ZERO -017E1 KHMER DIGIT ONE -017E2 KHMER DIGIT TWO -017E3 KHMER DIGIT THREE -017E4 KHMER DIGIT FOUR -017E5 KHMER DIGIT FIVE -017E6 KHMER DIGIT SIX -017E7 KHMER DIGIT SEVEN -017E8 KHMER DIGIT EIGHT -017E9 KHMER DIGIT NINE -017F0 KHMER SYMBOL LEK ATTAK SON -017F1 KHMER SYMBOL LEK ATTAK MUOY -017F2 KHMER SYMBOL LEK ATTAK PII -017F3 KHMER SYMBOL LEK ATTAK BEI -017F4 KHMER SYMBOL LEK ATTAK BUON -017F5 KHMER SYMBOL LEK ATTAK PRAM -017F6 KHMER SYMBOL LEK ATTAK PRAM-MUOY -017F7 KHMER SYMBOL LEK ATTAK PRAM-PII -017F8 KHMER SYMBOL LEK ATTAK PRAM-BEI -017F9 KHMER SYMBOL LEK ATTAK PRAM-BUON -01800 MONGOLIAN BIRGA -01801 MONGOLIAN ELLIPSIS -01802 MONGOLIAN COMMA -01803 MONGOLIAN FULL STOP -01804 MONGOLIAN COLON -01805 MONGOLIAN FOUR DOTS -01806 MONGOLIAN TODO SOFT HYPHEN -01807 MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER -01808 MONGOLIAN MANCHU COMMA -01809 MONGOLIAN MANCHU FULL STOP -0180A MONGOLIAN NIRUGU -0180B MONGOLIAN FREE VARIATION SELECTOR ONE -0180B FVS1 -0180C MONGOLIAN FREE VARIATION SELECTOR TWO -0180C FVS2 -0180D MONGOLIAN FREE VARIATION SELECTOR THREE -0180D FVS3 -0180E MONGOLIAN VOWEL SEPARATOR -0180E MVS -01810 MONGOLIAN DIGIT ZERO -01811 MONGOLIAN DIGIT ONE -01812 MONGOLIAN DIGIT TWO -01813 MONGOLIAN DIGIT THREE -01814 MONGOLIAN DIGIT FOUR -01815 MONGOLIAN DIGIT FIVE -01816 MONGOLIAN DIGIT SIX -01817 MONGOLIAN DIGIT SEVEN -01818 MONGOLIAN DIGIT EIGHT -01819 MONGOLIAN DIGIT NINE -01820 MONGOLIAN LETTER A -01821 MONGOLIAN LETTER E -01822 MONGOLIAN LETTER I -01823 MONGOLIAN LETTER O -01824 MONGOLIAN LETTER U -01825 MONGOLIAN LETTER OE -01826 MONGOLIAN LETTER UE -01827 MONGOLIAN LETTER EE -01828 MONGOLIAN LETTER NA -01829 MONGOLIAN LETTER ANG -0182A MONGOLIAN LETTER BA -0182B MONGOLIAN LETTER PA -0182C MONGOLIAN LETTER QA -0182D MONGOLIAN LETTER GA -0182E MONGOLIAN LETTER MA -0182F MONGOLIAN LETTER LA -01830 MONGOLIAN LETTER SA -01831 MONGOLIAN LETTER SHA -01832 MONGOLIAN LETTER TA -01833 MONGOLIAN LETTER DA -01834 MONGOLIAN LETTER CHA -01835 MONGOLIAN LETTER JA -01836 MONGOLIAN LETTER YA -01837 MONGOLIAN LETTER RA -01838 MONGOLIAN LETTER WA -01839 MONGOLIAN LETTER FA -0183A MONGOLIAN LETTER KA -0183B MONGOLIAN LETTER KHA -0183C MONGOLIAN LETTER TSA -0183D MONGOLIAN LETTER ZA -0183E MONGOLIAN LETTER HAA -0183F MONGOLIAN LETTER ZRA -01840 MONGOLIAN LETTER LHA -01841 MONGOLIAN LETTER ZHI -01842 MONGOLIAN LETTER CHI -01843 MONGOLIAN LETTER TODO LONG VOWEL SIGN -01844 MONGOLIAN LETTER TODO E -01845 MONGOLIAN LETTER TODO I -01846 MONGOLIAN LETTER TODO O -01847 MONGOLIAN LETTER TODO U -01848 MONGOLIAN LETTER TODO OE -01849 MONGOLIAN LETTER TODO UE -0184A MONGOLIAN LETTER TODO ANG -0184B MONGOLIAN LETTER TODO BA -0184C MONGOLIAN LETTER TODO PA -0184D MONGOLIAN LETTER TODO QA -0184E MONGOLIAN LETTER TODO GA -0184F MONGOLIAN LETTER TODO MA -01850 MONGOLIAN LETTER TODO TA -01851 MONGOLIAN LETTER TODO DA -01852 MONGOLIAN LETTER TODO CHA -01853 MONGOLIAN LETTER TODO JA -01854 MONGOLIAN LETTER TODO TSA -01855 MONGOLIAN LETTER TODO YA -01856 MONGOLIAN LETTER TODO WA -01857 MONGOLIAN LETTER TODO KA -01858 MONGOLIAN LETTER TODO GAA -01859 MONGOLIAN LETTER TODO HAA -0185A MONGOLIAN LETTER TODO JIA -0185B MONGOLIAN LETTER TODO NIA -0185C MONGOLIAN LETTER TODO DZA -0185D MONGOLIAN LETTER SIBE E -0185E MONGOLIAN LETTER SIBE I -0185F MONGOLIAN LETTER SIBE IY -01860 MONGOLIAN LETTER SIBE UE -01861 MONGOLIAN LETTER SIBE U -01862 MONGOLIAN LETTER SIBE ANG -01863 MONGOLIAN LETTER SIBE KA -01864 MONGOLIAN LETTER SIBE GA -01865 MONGOLIAN LETTER SIBE HA -01866 MONGOLIAN LETTER SIBE PA -01867 MONGOLIAN LETTER SIBE SHA -01868 MONGOLIAN LETTER SIBE TA -01869 MONGOLIAN LETTER SIBE DA -0186A MONGOLIAN LETTER SIBE JA -0186B MONGOLIAN LETTER SIBE FA -0186C MONGOLIAN LETTER SIBE GAA -0186D MONGOLIAN LETTER SIBE HAA -0186E MONGOLIAN LETTER SIBE TSA -0186F MONGOLIAN LETTER SIBE ZA -01870 MONGOLIAN LETTER SIBE RAA -01871 MONGOLIAN LETTER SIBE CHA -01872 MONGOLIAN LETTER SIBE ZHA -01873 MONGOLIAN LETTER MANCHU I -01874 MONGOLIAN LETTER MANCHU KA -01875 MONGOLIAN LETTER MANCHU RA -01876 MONGOLIAN LETTER MANCHU FA -01877 MONGOLIAN LETTER MANCHU ZHA -01880 MONGOLIAN LETTER ALI GALI ANUSVARA ONE -01881 MONGOLIAN LETTER ALI GALI VISARGA ONE -01882 MONGOLIAN LETTER ALI GALI DAMARU -01883 MONGOLIAN LETTER ALI GALI UBADAMA -01884 MONGOLIAN LETTER ALI GALI INVERTED UBADAMA -01885 MONGOLIAN LETTER ALI GALI BALUDA -01886 MONGOLIAN LETTER ALI GALI THREE BALUDA -01887 MONGOLIAN LETTER ALI GALI A -01888 MONGOLIAN LETTER ALI GALI I -01889 MONGOLIAN LETTER ALI GALI KA -0188A MONGOLIAN LETTER ALI GALI NGA -0188B MONGOLIAN LETTER ALI GALI CA -0188C MONGOLIAN LETTER ALI GALI TTA -0188D MONGOLIAN LETTER ALI GALI TTHA -0188E MONGOLIAN LETTER ALI GALI DDA -0188F MONGOLIAN LETTER ALI GALI NNA -01890 MONGOLIAN LETTER ALI GALI TA -01891 MONGOLIAN LETTER ALI GALI DA -01892 MONGOLIAN LETTER ALI GALI PA -01893 MONGOLIAN LETTER ALI GALI PHA -01894 MONGOLIAN LETTER ALI GALI SSA -01895 MONGOLIAN LETTER ALI GALI ZHA -01896 MONGOLIAN LETTER ALI GALI ZA -01897 MONGOLIAN LETTER ALI GALI AH -01898 MONGOLIAN LETTER TODO ALI GALI TA -01899 MONGOLIAN LETTER TODO ALI GALI ZHA -0189A MONGOLIAN LETTER MANCHU ALI GALI GHA -0189B MONGOLIAN LETTER MANCHU ALI GALI NGA -0189C MONGOLIAN LETTER MANCHU ALI GALI CA -0189D MONGOLIAN LETTER MANCHU ALI GALI JHA -0189E MONGOLIAN LETTER MANCHU ALI GALI TTA -0189F MONGOLIAN LETTER MANCHU ALI GALI DDHA -018A0 MONGOLIAN LETTER MANCHU ALI GALI TA -018A1 MONGOLIAN LETTER MANCHU ALI GALI DHA -018A2 MONGOLIAN LETTER MANCHU ALI GALI SSA -018A3 MONGOLIAN LETTER MANCHU ALI GALI CYA -018A4 MONGOLIAN LETTER MANCHU ALI GALI ZHA -018A5 MONGOLIAN LETTER MANCHU ALI GALI ZA -018A6 MONGOLIAN LETTER ALI GALI HALF U -018A7 MONGOLIAN LETTER ALI GALI HALF YA -018A8 MONGOLIAN LETTER MANCHU ALI GALI BHA -018A9 MONGOLIAN LETTER ALI GALI DAGALGA -018AA MONGOLIAN LETTER MANCHU ALI GALI LHA -018B0 CANADIAN SYLLABICS OY -018B1 CANADIAN SYLLABICS AY -018B2 CANADIAN SYLLABICS AAY -018B3 CANADIAN SYLLABICS WAY -018B4 CANADIAN SYLLABICS POY -018B5 CANADIAN SYLLABICS PAY -018B6 CANADIAN SYLLABICS PWOY -018B7 CANADIAN SYLLABICS TAY -018B8 CANADIAN SYLLABICS KAY -018B9 CANADIAN SYLLABICS KWAY -018BA CANADIAN SYLLABICS MAY -018BB CANADIAN SYLLABICS NOY -018BC CANADIAN SYLLABICS NAY -018BD CANADIAN SYLLABICS LAY -018BE CANADIAN SYLLABICS SOY -018BF CANADIAN SYLLABICS SAY -018C0 CANADIAN SYLLABICS SHOY -018C1 CANADIAN SYLLABICS SHAY -018C2 CANADIAN SYLLABICS SHWOY -018C3 CANADIAN SYLLABICS YOY -018C4 CANADIAN SYLLABICS YAY -018C5 CANADIAN SYLLABICS RAY -018C6 CANADIAN SYLLABICS NWI -018C7 CANADIAN SYLLABICS OJIBWAY NWI -018C8 CANADIAN SYLLABICS NWII -018C9 CANADIAN SYLLABICS OJIBWAY NWII -018CA CANADIAN SYLLABICS NWO -018CB CANADIAN SYLLABICS OJIBWAY NWO -018CC CANADIAN SYLLABICS NWOO -018CD CANADIAN SYLLABICS OJIBWAY NWOO -018CE CANADIAN SYLLABICS RWEE -018CF CANADIAN SYLLABICS RWI -018D0 CANADIAN SYLLABICS RWII -018D1 CANADIAN SYLLABICS RWO -018D2 CANADIAN SYLLABICS RWOO -018D3 CANADIAN SYLLABICS RWA -018D4 CANADIAN SYLLABICS OJIBWAY P -018D5 CANADIAN SYLLABICS OJIBWAY T -018D6 CANADIAN SYLLABICS OJIBWAY K -018D7 CANADIAN SYLLABICS OJIBWAY C -018D8 CANADIAN SYLLABICS OJIBWAY M -018D9 CANADIAN SYLLABICS OJIBWAY N -018DA CANADIAN SYLLABICS OJIBWAY S -018DB CANADIAN SYLLABICS OJIBWAY SH -018DC CANADIAN SYLLABICS EASTERN W -018DD CANADIAN SYLLABICS WESTERN W -018DE CANADIAN SYLLABICS FINAL SMALL RING -018DF CANADIAN SYLLABICS FINAL RAISED DOT -018E0 CANADIAN SYLLABICS R-CREE RWE -018E1 CANADIAN SYLLABICS WEST-CREE LOO -018E2 CANADIAN SYLLABICS WEST-CREE LAA -018E3 CANADIAN SYLLABICS THWE -018E4 CANADIAN SYLLABICS THWA -018E5 CANADIAN SYLLABICS TTHWE -018E6 CANADIAN SYLLABICS TTHOO -018E7 CANADIAN SYLLABICS TTHAA -018E8 CANADIAN SYLLABICS TLHWE -018E9 CANADIAN SYLLABICS TLHOO -018EA CANADIAN SYLLABICS SAYISI SHWE -018EB CANADIAN SYLLABICS SAYISI SHOO -018EC CANADIAN SYLLABICS SAYISI HOO -018ED CANADIAN SYLLABICS CARRIER GWU -018EE CANADIAN SYLLABICS CARRIER DENE GEE -018EF CANADIAN SYLLABICS CARRIER GAA -018F0 CANADIAN SYLLABICS CARRIER GWA -018F1 CANADIAN SYLLABICS SAYISI JUU -018F2 CANADIAN SYLLABICS CARRIER JWA -018F3 CANADIAN SYLLABICS BEAVER DENE L -018F4 CANADIAN SYLLABICS BEAVER DENE R -018F5 CANADIAN SYLLABICS CARRIER DENTAL S -01900 LIMBU VOWEL-CARRIER LETTER -01901 LIMBU LETTER KA -01902 LIMBU LETTER KHA -01903 LIMBU LETTER GA -01904 LIMBU LETTER GHA -01905 LIMBU LETTER NGA -01906 LIMBU LETTER CA -01907 LIMBU LETTER CHA -01908 LIMBU LETTER JA -01909 LIMBU LETTER JHA -0190A LIMBU LETTER YAN -0190B LIMBU LETTER TA -0190C LIMBU LETTER THA -0190D LIMBU LETTER DA -0190E LIMBU LETTER DHA -0190F LIMBU LETTER NA -01910 LIMBU LETTER PA -01911 LIMBU LETTER PHA -01912 LIMBU LETTER BA -01913 LIMBU LETTER BHA -01914 LIMBU LETTER MA -01915 LIMBU LETTER YA -01916 LIMBU LETTER RA -01917 LIMBU LETTER LA -01918 LIMBU LETTER WA -01919 LIMBU LETTER SHA -0191A LIMBU LETTER SSA -0191B LIMBU LETTER SA -0191C LIMBU LETTER HA -0191D LIMBU LETTER GYAN -0191E LIMBU LETTER TRA -01920 LIMBU VOWEL SIGN A -01921 LIMBU VOWEL SIGN I -01922 LIMBU VOWEL SIGN U -01923 LIMBU VOWEL SIGN EE -01924 LIMBU VOWEL SIGN AI -01925 LIMBU VOWEL SIGN OO -01926 LIMBU VOWEL SIGN AU -01927 LIMBU VOWEL SIGN E -01928 LIMBU VOWEL SIGN O -01929 LIMBU SUBJOINED LETTER YA -0192A LIMBU SUBJOINED LETTER RA -0192B LIMBU SUBJOINED LETTER WA -01930 LIMBU SMALL LETTER KA -01931 LIMBU SMALL LETTER NGA -01932 LIMBU SMALL LETTER ANUSVARA -01933 LIMBU SMALL LETTER TA -01934 LIMBU SMALL LETTER NA -01935 LIMBU SMALL LETTER PA -01936 LIMBU SMALL LETTER MA -01937 LIMBU SMALL LETTER RA -01938 LIMBU SMALL LETTER LA -01939 LIMBU SIGN MUKPHRENG -0193A LIMBU SIGN KEMPHRENG -0193B LIMBU SIGN SA-I -01940 LIMBU SIGN LOO -01944 LIMBU EXCLAMATION MARK -01945 LIMBU QUESTION MARK -01946 LIMBU DIGIT ZERO -01947 LIMBU DIGIT ONE -01948 LIMBU DIGIT TWO -01949 LIMBU DIGIT THREE -0194A LIMBU DIGIT FOUR -0194B LIMBU DIGIT FIVE -0194C LIMBU DIGIT SIX -0194D LIMBU DIGIT SEVEN -0194E LIMBU DIGIT EIGHT -0194F LIMBU DIGIT NINE -01950 TAI LE LETTER KA -01951 TAI LE LETTER XA -01952 TAI LE LETTER NGA -01953 TAI LE LETTER TSA -01954 TAI LE LETTER SA -01955 TAI LE LETTER YA -01956 TAI LE LETTER TA -01957 TAI LE LETTER THA -01958 TAI LE LETTER LA -01959 TAI LE LETTER PA -0195A TAI LE LETTER PHA -0195B TAI LE LETTER MA -0195C TAI LE LETTER FA -0195D TAI LE LETTER VA -0195E TAI LE LETTER HA -0195F TAI LE LETTER QA -01960 TAI LE LETTER KHA -01961 TAI LE LETTER TSHA -01962 TAI LE LETTER NA -01963 TAI LE LETTER A -01964 TAI LE LETTER I -01965 TAI LE LETTER EE -01966 TAI LE LETTER EH -01967 TAI LE LETTER U -01968 TAI LE LETTER OO -01969 TAI LE LETTER O -0196A TAI LE LETTER UE -0196B TAI LE LETTER E -0196C TAI LE LETTER AUE -0196D TAI LE LETTER AI -01970 TAI LE LETTER TONE-2 -01971 TAI LE LETTER TONE-3 -01972 TAI LE LETTER TONE-4 -01973 TAI LE LETTER TONE-5 -01974 TAI LE LETTER TONE-6 -01980 NEW TAI LUE LETTER HIGH QA -01981 NEW TAI LUE LETTER LOW QA -01982 NEW TAI LUE LETTER HIGH KA -01983 NEW TAI LUE LETTER HIGH XA -01984 NEW TAI LUE LETTER HIGH NGA -01985 NEW TAI LUE LETTER LOW KA -01986 NEW TAI LUE LETTER LOW XA -01987 NEW TAI LUE LETTER LOW NGA -01988 NEW TAI LUE LETTER HIGH TSA -01989 NEW TAI LUE LETTER HIGH SA -0198A NEW TAI LUE LETTER HIGH YA -0198B NEW TAI LUE LETTER LOW TSA -0198C NEW TAI LUE LETTER LOW SA -0198D NEW TAI LUE LETTER LOW YA -0198E NEW TAI LUE LETTER HIGH TA -0198F NEW TAI LUE LETTER HIGH THA -01990 NEW TAI LUE LETTER HIGH NA -01991 NEW TAI LUE LETTER LOW TA -01992 NEW TAI LUE LETTER LOW THA -01993 NEW TAI LUE LETTER LOW NA -01994 NEW TAI LUE LETTER HIGH PA -01995 NEW TAI LUE LETTER HIGH PHA -01996 NEW TAI LUE LETTER HIGH MA -01997 NEW TAI LUE LETTER LOW PA -01998 NEW TAI LUE LETTER LOW PHA -01999 NEW TAI LUE LETTER LOW MA -0199A NEW TAI LUE LETTER HIGH FA -0199B NEW TAI LUE LETTER HIGH VA -0199C NEW TAI LUE LETTER HIGH LA -0199D NEW TAI LUE LETTER LOW FA -0199E NEW TAI LUE LETTER LOW VA -0199F NEW TAI LUE LETTER LOW LA -019A0 NEW TAI LUE LETTER HIGH HA -019A1 NEW TAI LUE LETTER HIGH DA -019A2 NEW TAI LUE LETTER HIGH BA -019A3 NEW TAI LUE LETTER LOW HA -019A4 NEW TAI LUE LETTER LOW DA -019A5 NEW TAI LUE LETTER LOW BA -019A6 NEW TAI LUE LETTER HIGH KVA -019A7 NEW TAI LUE LETTER HIGH XVA -019A8 NEW TAI LUE LETTER LOW KVA -019A9 NEW TAI LUE LETTER LOW XVA -019AA NEW TAI LUE LETTER HIGH SUA -019AB NEW TAI LUE LETTER LOW SUA -019B0 NEW TAI LUE VOWEL SIGN VOWEL SHORTENER -019B1 NEW TAI LUE VOWEL SIGN AA -019B2 NEW TAI LUE VOWEL SIGN II -019B3 NEW TAI LUE VOWEL SIGN U -019B4 NEW TAI LUE VOWEL SIGN UU -019B5 NEW TAI LUE VOWEL SIGN E -019B6 NEW TAI LUE VOWEL SIGN AE -019B7 NEW TAI LUE VOWEL SIGN O -019B8 NEW TAI LUE VOWEL SIGN OA -019B9 NEW TAI LUE VOWEL SIGN UE -019BA NEW TAI LUE VOWEL SIGN AY -019BB NEW TAI LUE VOWEL SIGN AAY -019BC NEW TAI LUE VOWEL SIGN UY -019BD NEW TAI LUE VOWEL SIGN OY -019BE NEW TAI LUE VOWEL SIGN OAY -019BF NEW TAI LUE VOWEL SIGN UEY -019C0 NEW TAI LUE VOWEL SIGN IY -019C1 NEW TAI LUE LETTER FINAL V -019C2 NEW TAI LUE LETTER FINAL NG -019C3 NEW TAI LUE LETTER FINAL N -019C4 NEW TAI LUE LETTER FINAL M -019C5 NEW TAI LUE LETTER FINAL K -019C6 NEW TAI LUE LETTER FINAL D -019C7 NEW TAI LUE LETTER FINAL B -019C8 NEW TAI LUE TONE MARK-1 -019C9 NEW TAI LUE TONE MARK-2 -019D0 NEW TAI LUE DIGIT ZERO -019D1 NEW TAI LUE DIGIT ONE -019D2 NEW TAI LUE DIGIT TWO -019D3 NEW TAI LUE DIGIT THREE -019D4 NEW TAI LUE DIGIT FOUR -019D5 NEW TAI LUE DIGIT FIVE -019D6 NEW TAI LUE DIGIT SIX -019D7 NEW TAI LUE DIGIT SEVEN -019D8 NEW TAI LUE DIGIT EIGHT -019D9 NEW TAI LUE DIGIT NINE -019DA NEW TAI LUE THAM DIGIT ONE -019DE NEW TAI LUE SIGN LAE -019DF NEW TAI LUE SIGN LAEV -019E0 KHMER SYMBOL PATHAMASAT -019E1 KHMER SYMBOL MUOY KOET -019E2 KHMER SYMBOL PII KOET -019E3 KHMER SYMBOL BEI KOET -019E4 KHMER SYMBOL BUON KOET -019E5 KHMER SYMBOL PRAM KOET -019E6 KHMER SYMBOL PRAM-MUOY KOET -019E7 KHMER SYMBOL PRAM-PII KOET -019E8 KHMER SYMBOL PRAM-BEI KOET -019E9 KHMER SYMBOL PRAM-BUON KOET -019EA KHMER SYMBOL DAP KOET -019EB KHMER SYMBOL DAP-MUOY KOET -019EC KHMER SYMBOL DAP-PII KOET -019ED KHMER SYMBOL DAP-BEI KOET -019EE KHMER SYMBOL DAP-BUON KOET -019EF KHMER SYMBOL DAP-PRAM KOET -019F0 KHMER SYMBOL TUTEYASAT -019F1 KHMER SYMBOL MUOY ROC -019F2 KHMER SYMBOL PII ROC -019F3 KHMER SYMBOL BEI ROC -019F4 KHMER SYMBOL BUON ROC -019F5 KHMER SYMBOL PRAM ROC -019F6 KHMER SYMBOL PRAM-MUOY ROC -019F7 KHMER SYMBOL PRAM-PII ROC -019F8 KHMER SYMBOL PRAM-BEI ROC -019F9 KHMER SYMBOL PRAM-BUON ROC -019FA KHMER SYMBOL DAP ROC -019FB KHMER SYMBOL DAP-MUOY ROC -019FC KHMER SYMBOL DAP-PII ROC -019FD KHMER SYMBOL DAP-BEI ROC -019FE KHMER SYMBOL DAP-BUON ROC -019FF KHMER SYMBOL DAP-PRAM ROC -01A00 BUGINESE LETTER KA -01A01 BUGINESE LETTER GA -01A02 BUGINESE LETTER NGA -01A03 BUGINESE LETTER NGKA -01A04 BUGINESE LETTER PA -01A05 BUGINESE LETTER BA -01A06 BUGINESE LETTER MA -01A07 BUGINESE LETTER MPA -01A08 BUGINESE LETTER TA -01A09 BUGINESE LETTER DA -01A0A BUGINESE LETTER NA -01A0B BUGINESE LETTER NRA -01A0C BUGINESE LETTER CA -01A0D BUGINESE LETTER JA -01A0E BUGINESE LETTER NYA -01A0F BUGINESE LETTER NYCA -01A10 BUGINESE LETTER YA -01A11 BUGINESE LETTER RA -01A12 BUGINESE LETTER LA -01A13 BUGINESE LETTER VA -01A14 BUGINESE LETTER SA -01A15 BUGINESE LETTER A -01A16 BUGINESE LETTER HA -01A17 BUGINESE VOWEL SIGN I -01A18 BUGINESE VOWEL SIGN U -01A19 BUGINESE VOWEL SIGN E -01A1A BUGINESE VOWEL SIGN O -01A1B BUGINESE VOWEL SIGN AE -01A1E BUGINESE PALLAWA -01A1F BUGINESE END OF SECTION -01A20 TAI THAM LETTER HIGH KA -01A21 TAI THAM LETTER HIGH KHA -01A22 TAI THAM LETTER HIGH KXA -01A23 TAI THAM LETTER LOW KA -01A24 TAI THAM LETTER LOW KXA -01A25 TAI THAM LETTER LOW KHA -01A26 TAI THAM LETTER NGA -01A27 TAI THAM LETTER HIGH CA -01A28 TAI THAM LETTER HIGH CHA -01A29 TAI THAM LETTER LOW CA -01A2A TAI THAM LETTER LOW SA -01A2B TAI THAM LETTER LOW CHA -01A2C TAI THAM LETTER NYA -01A2D TAI THAM LETTER RATA -01A2E TAI THAM LETTER HIGH RATHA -01A2F TAI THAM LETTER DA -01A30 TAI THAM LETTER LOW RATHA -01A31 TAI THAM LETTER RANA -01A32 TAI THAM LETTER HIGH TA -01A33 TAI THAM LETTER HIGH THA -01A34 TAI THAM LETTER LOW TA -01A35 TAI THAM LETTER LOW THA -01A36 TAI THAM LETTER NA -01A37 TAI THAM LETTER BA -01A38 TAI THAM LETTER HIGH PA -01A39 TAI THAM LETTER HIGH PHA -01A3A TAI THAM LETTER HIGH FA -01A3B TAI THAM LETTER LOW PA -01A3C TAI THAM LETTER LOW FA -01A3D TAI THAM LETTER LOW PHA -01A3E TAI THAM LETTER MA -01A3F TAI THAM LETTER LOW YA -01A40 TAI THAM LETTER HIGH YA -01A41 TAI THAM LETTER RA -01A42 TAI THAM LETTER RUE -01A43 TAI THAM LETTER LA -01A44 TAI THAM LETTER LUE -01A45 TAI THAM LETTER WA -01A46 TAI THAM LETTER HIGH SHA -01A47 TAI THAM LETTER HIGH SSA -01A48 TAI THAM LETTER HIGH SA -01A49 TAI THAM LETTER HIGH HA -01A4A TAI THAM LETTER LLA -01A4B TAI THAM LETTER A -01A4C TAI THAM LETTER LOW HA -01A4D TAI THAM LETTER I -01A4E TAI THAM LETTER II -01A4F TAI THAM LETTER U -01A50 TAI THAM LETTER UU -01A51 TAI THAM LETTER EE -01A52 TAI THAM LETTER OO -01A53 TAI THAM LETTER LAE -01A54 TAI THAM LETTER GREAT SA -01A55 TAI THAM CONSONANT SIGN MEDIAL RA -01A56 TAI THAM CONSONANT SIGN MEDIAL LA -01A57 TAI THAM CONSONANT SIGN LA TANG LAI -01A58 TAI THAM SIGN MAI KANG LAI -01A59 TAI THAM CONSONANT SIGN FINAL NGA -01A5A TAI THAM CONSONANT SIGN LOW PA -01A5B TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA -01A5C TAI THAM CONSONANT SIGN MA -01A5D TAI THAM CONSONANT SIGN BA -01A5E TAI THAM CONSONANT SIGN SA -01A60 TAI THAM SIGN SAKOT -01A61 TAI THAM VOWEL SIGN A -01A62 TAI THAM VOWEL SIGN MAI SAT -01A63 TAI THAM VOWEL SIGN AA -01A64 TAI THAM VOWEL SIGN TALL AA -01A65 TAI THAM VOWEL SIGN I -01A66 TAI THAM VOWEL SIGN II -01A67 TAI THAM VOWEL SIGN UE -01A68 TAI THAM VOWEL SIGN UUE -01A69 TAI THAM VOWEL SIGN U -01A6A TAI THAM VOWEL SIGN UU -01A6B TAI THAM VOWEL SIGN O -01A6C TAI THAM VOWEL SIGN OA BELOW -01A6D TAI THAM VOWEL SIGN OY -01A6E TAI THAM VOWEL SIGN E -01A6F TAI THAM VOWEL SIGN AE -01A70 TAI THAM VOWEL SIGN OO -01A71 TAI THAM VOWEL SIGN AI -01A72 TAI THAM VOWEL SIGN THAM AI -01A73 TAI THAM VOWEL SIGN OA ABOVE -01A74 TAI THAM SIGN MAI KANG -01A75 TAI THAM SIGN TONE-1 -01A76 TAI THAM SIGN TONE-2 -01A77 TAI THAM SIGN KHUEN TONE-3 -01A78 TAI THAM SIGN KHUEN TONE-4 -01A79 TAI THAM SIGN KHUEN TONE-5 -01A7A TAI THAM SIGN RA HAAM -01A7B TAI THAM SIGN MAI SAM -01A7C TAI THAM SIGN KHUEN-LUE KARAN -01A7F TAI THAM COMBINING CRYPTOGRAMMIC DOT -01A80 TAI THAM HORA DIGIT ZERO -01A81 TAI THAM HORA DIGIT ONE -01A82 TAI THAM HORA DIGIT TWO -01A83 TAI THAM HORA DIGIT THREE -01A84 TAI THAM HORA DIGIT FOUR -01A85 TAI THAM HORA DIGIT FIVE -01A86 TAI THAM HORA DIGIT SIX -01A87 TAI THAM HORA DIGIT SEVEN -01A88 TAI THAM HORA DIGIT EIGHT -01A89 TAI THAM HORA DIGIT NINE -01A90 TAI THAM THAM DIGIT ZERO -01A91 TAI THAM THAM DIGIT ONE -01A92 TAI THAM THAM DIGIT TWO -01A93 TAI THAM THAM DIGIT THREE -01A94 TAI THAM THAM DIGIT FOUR -01A95 TAI THAM THAM DIGIT FIVE -01A96 TAI THAM THAM DIGIT SIX -01A97 TAI THAM THAM DIGIT SEVEN -01A98 TAI THAM THAM DIGIT EIGHT -01A99 TAI THAM THAM DIGIT NINE -01AA0 TAI THAM SIGN WIANG -01AA1 TAI THAM SIGN WIANGWAAK -01AA2 TAI THAM SIGN SAWAN -01AA3 TAI THAM SIGN KEOW -01AA4 TAI THAM SIGN HOY -01AA5 TAI THAM SIGN DOKMAI -01AA6 TAI THAM SIGN REVERSED ROTATED RANA -01AA7 TAI THAM SIGN MAI YAMOK -01AA8 TAI THAM SIGN KAAN -01AA9 TAI THAM SIGN KAANKUU -01AAA TAI THAM SIGN SATKAAN -01AAB TAI THAM SIGN SATKAANKUU -01AAC TAI THAM SIGN HANG -01AAD TAI THAM SIGN CAANG -01AB0 COMBINING DOUBLED CIRCUMFLEX ACCENT -01AB1 COMBINING DIAERESIS-RING -01AB2 COMBINING INFINITY -01AB3 COMBINING DOWNWARDS ARROW -01AB4 COMBINING TRIPLE DOT -01AB5 COMBINING X-X BELOW -01AB6 COMBINING WIGGLY LINE BELOW -01AB7 COMBINING OPEN MARK BELOW -01AB8 COMBINING DOUBLE OPEN MARK BELOW -01AB9 COMBINING LIGHT CENTRALIZATION STROKE BELOW -01ABA COMBINING STRONG CENTRALIZATION STROKE BELOW -01ABB COMBINING PARENTHESES ABOVE -01ABC COMBINING DOUBLE PARENTHESES ABOVE -01ABD COMBINING PARENTHESES BELOW -01ABE COMBINING PARENTHESES OVERLAY -01B00 BALINESE SIGN ULU RICEM -01B01 BALINESE SIGN ULU CANDRA -01B02 BALINESE SIGN CECEK -01B03 BALINESE SIGN SURANG -01B04 BALINESE SIGN BISAH -01B05 BALINESE LETTER AKARA -01B06 BALINESE LETTER AKARA TEDUNG -01B07 BALINESE LETTER IKARA -01B08 BALINESE LETTER IKARA TEDUNG -01B09 BALINESE LETTER UKARA -01B0A BALINESE LETTER UKARA TEDUNG -01B0B BALINESE LETTER RA REPA -01B0C BALINESE LETTER RA REPA TEDUNG -01B0D BALINESE LETTER LA LENGA -01B0E BALINESE LETTER LA LENGA TEDUNG -01B0F BALINESE LETTER EKARA -01B10 BALINESE LETTER AIKARA -01B11 BALINESE LETTER OKARA -01B12 BALINESE LETTER OKARA TEDUNG -01B13 BALINESE LETTER KA -01B14 BALINESE LETTER KA MAHAPRANA -01B15 BALINESE LETTER GA -01B16 BALINESE LETTER GA GORA -01B17 BALINESE LETTER NGA -01B18 BALINESE LETTER CA -01B19 BALINESE LETTER CA LACA -01B1A BALINESE LETTER JA -01B1B BALINESE LETTER JA JERA -01B1C BALINESE LETTER NYA -01B1D BALINESE LETTER TA LATIK -01B1E BALINESE LETTER TA MURDA MAHAPRANA -01B1F BALINESE LETTER DA MURDA ALPAPRANA -01B20 BALINESE LETTER DA MURDA MAHAPRANA -01B21 BALINESE LETTER NA RAMBAT -01B22 BALINESE LETTER TA -01B23 BALINESE LETTER TA TAWA -01B24 BALINESE LETTER DA -01B25 BALINESE LETTER DA MADU -01B26 BALINESE LETTER NA -01B27 BALINESE LETTER PA -01B28 BALINESE LETTER PA KAPAL -01B29 BALINESE LETTER BA -01B2A BALINESE LETTER BA KEMBANG -01B2B BALINESE LETTER MA -01B2C BALINESE LETTER YA -01B2D BALINESE LETTER RA -01B2E BALINESE LETTER LA -01B2F BALINESE LETTER WA -01B30 BALINESE LETTER SA SAGA -01B31 BALINESE LETTER SA SAPA -01B32 BALINESE LETTER SA -01B33 BALINESE LETTER HA -01B34 BALINESE SIGN REREKAN -01B35 BALINESE VOWEL SIGN TEDUNG -01B36 BALINESE VOWEL SIGN ULU -01B37 BALINESE VOWEL SIGN ULU SARI -01B38 BALINESE VOWEL SIGN SUKU -01B39 BALINESE VOWEL SIGN SUKU ILUT -01B3A BALINESE VOWEL SIGN RA REPA -01B3B BALINESE VOWEL SIGN RA REPA TEDUNG -01B3C BALINESE VOWEL SIGN LA LENGA -01B3D BALINESE VOWEL SIGN LA LENGA TEDUNG -01B3E BALINESE VOWEL SIGN TALING -01B3F BALINESE VOWEL SIGN TALING REPA -01B40 BALINESE VOWEL SIGN TALING TEDUNG -01B41 BALINESE VOWEL SIGN TALING REPA TEDUNG -01B42 BALINESE VOWEL SIGN PEPET -01B43 BALINESE VOWEL SIGN PEPET TEDUNG -01B44 BALINESE ADEG ADEG -01B45 BALINESE LETTER KAF SASAK -01B46 BALINESE LETTER KHOT SASAK -01B47 BALINESE LETTER TZIR SASAK -01B48 BALINESE LETTER EF SASAK -01B49 BALINESE LETTER VE SASAK -01B4A BALINESE LETTER ZAL SASAK -01B4B BALINESE LETTER ASYURA SASAK -01B50 BALINESE DIGIT ZERO -01B51 BALINESE DIGIT ONE -01B52 BALINESE DIGIT TWO -01B53 BALINESE DIGIT THREE -01B54 BALINESE DIGIT FOUR -01B55 BALINESE DIGIT FIVE -01B56 BALINESE DIGIT SIX -01B57 BALINESE DIGIT SEVEN -01B58 BALINESE DIGIT EIGHT -01B59 BALINESE DIGIT NINE -01B5A BALINESE PANTI -01B5B BALINESE PAMADA -01B5C BALINESE WINDU -01B5D BALINESE CARIK PAMUNGKAH -01B5E BALINESE CARIK SIKI -01B5F BALINESE CARIK PAREREN -01B60 BALINESE PAMENENG -01B61 BALINESE MUSICAL SYMBOL DONG -01B62 BALINESE MUSICAL SYMBOL DENG -01B63 BALINESE MUSICAL SYMBOL DUNG -01B64 BALINESE MUSICAL SYMBOL DANG -01B65 BALINESE MUSICAL SYMBOL DANG SURANG -01B66 BALINESE MUSICAL SYMBOL DING -01B67 BALINESE MUSICAL SYMBOL DAENG -01B68 BALINESE MUSICAL SYMBOL DEUNG -01B69 BALINESE MUSICAL SYMBOL DAING -01B6A BALINESE MUSICAL SYMBOL DANG GEDE -01B6B BALINESE MUSICAL SYMBOL COMBINING TEGEH -01B6C BALINESE MUSICAL SYMBOL COMBINING ENDEP -01B6D BALINESE MUSICAL SYMBOL COMBINING KEMPUL -01B6E BALINESE MUSICAL SYMBOL COMBINING KEMPLI -01B6F BALINESE MUSICAL SYMBOL COMBINING JEGOGAN -01B70 BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN -01B71 BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN -01B72 BALINESE MUSICAL SYMBOL COMBINING BENDE -01B73 BALINESE MUSICAL SYMBOL COMBINING GONG -01B74 BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG -01B75 BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG -01B76 BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK -01B77 BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK -01B78 BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG -01B79 BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG -01B7A BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK -01B7B BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK -01B7C BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING -01B80 SUNDANESE SIGN PANYECEK -01B81 SUNDANESE SIGN PANGLAYAR -01B82 SUNDANESE SIGN PANGWISAD -01B83 SUNDANESE LETTER A -01B84 SUNDANESE LETTER I -01B85 SUNDANESE LETTER U -01B86 SUNDANESE LETTER AE -01B87 SUNDANESE LETTER O -01B88 SUNDANESE LETTER E -01B89 SUNDANESE LETTER EU -01B8A SUNDANESE LETTER KA -01B8B SUNDANESE LETTER QA -01B8C SUNDANESE LETTER GA -01B8D SUNDANESE LETTER NGA -01B8E SUNDANESE LETTER CA -01B8F SUNDANESE LETTER JA -01B90 SUNDANESE LETTER ZA -01B91 SUNDANESE LETTER NYA -01B92 SUNDANESE LETTER TA -01B93 SUNDANESE LETTER DA -01B94 SUNDANESE LETTER NA -01B95 SUNDANESE LETTER PA -01B96 SUNDANESE LETTER FA -01B97 SUNDANESE LETTER VA -01B98 SUNDANESE LETTER BA -01B99 SUNDANESE LETTER MA -01B9A SUNDANESE LETTER YA -01B9B SUNDANESE LETTER RA -01B9C SUNDANESE LETTER LA -01B9D SUNDANESE LETTER WA -01B9E SUNDANESE LETTER SA -01B9F SUNDANESE LETTER XA -01BA0 SUNDANESE LETTER HA -01BA1 SUNDANESE CONSONANT SIGN PAMINGKAL -01BA2 SUNDANESE CONSONANT SIGN PANYAKRA -01BA3 SUNDANESE CONSONANT SIGN PANYIKU -01BA4 SUNDANESE VOWEL SIGN PANGHULU -01BA5 SUNDANESE VOWEL SIGN PANYUKU -01BA6 SUNDANESE VOWEL SIGN PANAELAENG -01BA7 SUNDANESE VOWEL SIGN PANOLONG -01BA8 SUNDANESE VOWEL SIGN PAMEPET -01BA9 SUNDANESE VOWEL SIGN PANEULEUNG -01BAA SUNDANESE SIGN PAMAAEH -01BAB SUNDANESE SIGN VIRAMA -01BAC SUNDANESE CONSONANT SIGN PASANGAN MA -01BAD SUNDANESE CONSONANT SIGN PASANGAN WA -01BAE SUNDANESE LETTER KHA -01BAF SUNDANESE LETTER SYA -01BB0 SUNDANESE DIGIT ZERO -01BB1 SUNDANESE DIGIT ONE -01BB2 SUNDANESE DIGIT TWO -01BB3 SUNDANESE DIGIT THREE -01BB4 SUNDANESE DIGIT FOUR -01BB5 SUNDANESE DIGIT FIVE -01BB6 SUNDANESE DIGIT SIX -01BB7 SUNDANESE DIGIT SEVEN -01BB8 SUNDANESE DIGIT EIGHT -01BB9 SUNDANESE DIGIT NINE -01BBA SUNDANESE AVAGRAHA -01BBB SUNDANESE LETTER REU -01BBC SUNDANESE LETTER LEU -01BBD SUNDANESE LETTER BHA -01BBE SUNDANESE LETTER FINAL K -01BBF SUNDANESE LETTER FINAL M -01BC0 BATAK LETTER A -01BC1 BATAK LETTER SIMALUNGUN A -01BC2 BATAK LETTER HA -01BC3 BATAK LETTER SIMALUNGUN HA -01BC4 BATAK LETTER MANDAILING HA -01BC5 BATAK LETTER BA -01BC6 BATAK LETTER KARO BA -01BC7 BATAK LETTER PA -01BC8 BATAK LETTER SIMALUNGUN PA -01BC9 BATAK LETTER NA -01BCA BATAK LETTER MANDAILING NA -01BCB BATAK LETTER WA -01BCC BATAK LETTER SIMALUNGUN WA -01BCD BATAK LETTER PAKPAK WA -01BCE BATAK LETTER GA -01BCF BATAK LETTER SIMALUNGUN GA -01BD0 BATAK LETTER JA -01BD1 BATAK LETTER DA -01BD2 BATAK LETTER RA -01BD3 BATAK LETTER SIMALUNGUN RA -01BD4 BATAK LETTER MA -01BD5 BATAK LETTER SIMALUNGUN MA -01BD6 BATAK LETTER SOUTHERN TA -01BD7 BATAK LETTER NORTHERN TA -01BD8 BATAK LETTER SA -01BD9 BATAK LETTER SIMALUNGUN SA -01BDA BATAK LETTER MANDAILING SA -01BDB BATAK LETTER YA -01BDC BATAK LETTER SIMALUNGUN YA -01BDD BATAK LETTER NGA -01BDE BATAK LETTER LA -01BDF BATAK LETTER SIMALUNGUN LA -01BE0 BATAK LETTER NYA -01BE1 BATAK LETTER CA -01BE2 BATAK LETTER NDA -01BE3 BATAK LETTER MBA -01BE4 BATAK LETTER I -01BE5 BATAK LETTER U -01BE6 BATAK SIGN TOMPI -01BE7 BATAK VOWEL SIGN E -01BE8 BATAK VOWEL SIGN PAKPAK E -01BE9 BATAK VOWEL SIGN EE -01BEA BATAK VOWEL SIGN I -01BEB BATAK VOWEL SIGN KARO I -01BEC BATAK VOWEL SIGN O -01BED BATAK VOWEL SIGN KARO O -01BEE BATAK VOWEL SIGN U -01BEF BATAK VOWEL SIGN U FOR SIMALUNGUN SA -01BF0 BATAK CONSONANT SIGN NG -01BF1 BATAK CONSONANT SIGN H -01BF2 BATAK PANGOLAT -01BF3 BATAK PANONGONAN -01BFC BATAK SYMBOL BINDU NA METEK -01BFD BATAK SYMBOL BINDU PINARBORAS -01BFE BATAK SYMBOL BINDU JUDUL -01BFF BATAK SYMBOL BINDU PANGOLAT -01C00 LEPCHA LETTER KA -01C01 LEPCHA LETTER KLA -01C02 LEPCHA LETTER KHA -01C03 LEPCHA LETTER GA -01C04 LEPCHA LETTER GLA -01C05 LEPCHA LETTER NGA -01C06 LEPCHA LETTER CA -01C07 LEPCHA LETTER CHA -01C08 LEPCHA LETTER JA -01C09 LEPCHA LETTER NYA -01C0A LEPCHA LETTER TA -01C0B LEPCHA LETTER THA -01C0C LEPCHA LETTER DA -01C0D LEPCHA LETTER NA -01C0E LEPCHA LETTER PA -01C0F LEPCHA LETTER PLA -01C10 LEPCHA LETTER PHA -01C11 LEPCHA LETTER FA -01C12 LEPCHA LETTER FLA -01C13 LEPCHA LETTER BA -01C14 LEPCHA LETTER BLA -01C15 LEPCHA LETTER MA -01C16 LEPCHA LETTER MLA -01C17 LEPCHA LETTER TSA -01C18 LEPCHA LETTER TSHA -01C19 LEPCHA LETTER DZA -01C1A LEPCHA LETTER YA -01C1B LEPCHA LETTER RA -01C1C LEPCHA LETTER LA -01C1D LEPCHA LETTER HA -01C1E LEPCHA LETTER HLA -01C1F LEPCHA LETTER VA -01C20 LEPCHA LETTER SA -01C21 LEPCHA LETTER SHA -01C22 LEPCHA LETTER WA -01C23 LEPCHA LETTER A -01C24 LEPCHA SUBJOINED LETTER YA -01C25 LEPCHA SUBJOINED LETTER RA -01C26 LEPCHA VOWEL SIGN AA -01C27 LEPCHA VOWEL SIGN I -01C28 LEPCHA VOWEL SIGN O -01C29 LEPCHA VOWEL SIGN OO -01C2A LEPCHA VOWEL SIGN U -01C2B LEPCHA VOWEL SIGN UU -01C2C LEPCHA VOWEL SIGN E -01C2D LEPCHA CONSONANT SIGN K -01C2E LEPCHA CONSONANT SIGN M -01C2F LEPCHA CONSONANT SIGN L -01C30 LEPCHA CONSONANT SIGN N -01C31 LEPCHA CONSONANT SIGN P -01C32 LEPCHA CONSONANT SIGN R -01C33 LEPCHA CONSONANT SIGN T -01C34 LEPCHA CONSONANT SIGN NYIN-DO -01C35 LEPCHA CONSONANT SIGN KANG -01C36 LEPCHA SIGN RAN -01C37 LEPCHA SIGN NUKTA -01C3B LEPCHA PUNCTUATION TA-ROL -01C3C LEPCHA PUNCTUATION NYET THYOOM TA-ROL -01C3D LEPCHA PUNCTUATION CER-WA -01C3E LEPCHA PUNCTUATION TSHOOK CER-WA -01C3F LEPCHA PUNCTUATION TSHOOK -01C40 LEPCHA DIGIT ZERO -01C41 LEPCHA DIGIT ONE -01C42 LEPCHA DIGIT TWO -01C43 LEPCHA DIGIT THREE -01C44 LEPCHA DIGIT FOUR -01C45 LEPCHA DIGIT FIVE -01C46 LEPCHA DIGIT SIX -01C47 LEPCHA DIGIT SEVEN -01C48 LEPCHA DIGIT EIGHT -01C49 LEPCHA DIGIT NINE -01C4D LEPCHA LETTER TTA -01C4E LEPCHA LETTER TTHA -01C4F LEPCHA LETTER DDA -01C50 OL CHIKI DIGIT ZERO -01C51 OL CHIKI DIGIT ONE -01C52 OL CHIKI DIGIT TWO -01C53 OL CHIKI DIGIT THREE -01C54 OL CHIKI DIGIT FOUR -01C55 OL CHIKI DIGIT FIVE -01C56 OL CHIKI DIGIT SIX -01C57 OL CHIKI DIGIT SEVEN -01C58 OL CHIKI DIGIT EIGHT -01C59 OL CHIKI DIGIT NINE -01C5A OL CHIKI LETTER LA -01C5B OL CHIKI LETTER AT -01C5C OL CHIKI LETTER AG -01C5D OL CHIKI LETTER ANG -01C5E OL CHIKI LETTER AL -01C5F OL CHIKI LETTER LAA -01C60 OL CHIKI LETTER AAK -01C61 OL CHIKI LETTER AAJ -01C62 OL CHIKI LETTER AAM -01C63 OL CHIKI LETTER AAW -01C64 OL CHIKI LETTER LI -01C65 OL CHIKI LETTER IS -01C66 OL CHIKI LETTER IH -01C67 OL CHIKI LETTER INY -01C68 OL CHIKI LETTER IR -01C69 OL CHIKI LETTER LU -01C6A OL CHIKI LETTER UC -01C6B OL CHIKI LETTER UD -01C6C OL CHIKI LETTER UNN -01C6D OL CHIKI LETTER UY -01C6E OL CHIKI LETTER LE -01C6F OL CHIKI LETTER EP -01C70 OL CHIKI LETTER EDD -01C71 OL CHIKI LETTER EN -01C72 OL CHIKI LETTER ERR -01C73 OL CHIKI LETTER LO -01C74 OL CHIKI LETTER OTT -01C75 OL CHIKI LETTER OB -01C76 OL CHIKI LETTER OV -01C77 OL CHIKI LETTER OH -01C78 OL CHIKI MU TTUDDAG -01C79 OL CHIKI GAAHLAA TTUDDAAG -01C7A OL CHIKI MU-GAAHLAA TTUDDAAG -01C7B OL CHIKI RELAA -01C7C OL CHIKI PHAARKAA -01C7D OL CHIKI AHAD -01C7E OL CHIKI PUNCTUATION MUCAAD -01C7F OL CHIKI PUNCTUATION DOUBLE MUCAAD -01CC0 SUNDANESE PUNCTUATION BINDU SURYA -01CC1 SUNDANESE PUNCTUATION BINDU PANGLONG -01CC2 SUNDANESE PUNCTUATION BINDU PURNAMA -01CC3 SUNDANESE PUNCTUATION BINDU CAKRA -01CC4 SUNDANESE PUNCTUATION BINDU LEU SATANGA -01CC5 SUNDANESE PUNCTUATION BINDU KA SATANGA -01CC6 SUNDANESE PUNCTUATION BINDU DA SATANGA -01CC7 SUNDANESE PUNCTUATION BINDU BA SATANGA -01CD0 VEDIC TONE KARSHANA -01CD1 VEDIC TONE SHARA -01CD2 VEDIC TONE PRENKHA -01CD3 VEDIC SIGN NIHSHVASA -01CD4 VEDIC SIGN YAJURVEDIC MIDLINE SVARITA -01CD5 VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA -01CD6 VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA -01CD7 VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA -01CD8 VEDIC TONE CANDRA BELOW -01CD9 VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER -01CDA VEDIC TONE DOUBLE SVARITA -01CDB VEDIC TONE TRIPLE SVARITA -01CDC VEDIC TONE KATHAKA ANUDATTA -01CDD VEDIC TONE DOT BELOW -01CDE VEDIC TONE TWO DOTS BELOW -01CDF VEDIC TONE THREE DOTS BELOW -01CE0 VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA -01CE1 VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA -01CE2 VEDIC SIGN VISARGA SVARITA -01CE3 VEDIC SIGN VISARGA UDATTA -01CE4 VEDIC SIGN REVERSED VISARGA UDATTA -01CE5 VEDIC SIGN VISARGA ANUDATTA -01CE6 VEDIC SIGN REVERSED VISARGA ANUDATTA -01CE7 VEDIC SIGN VISARGA UDATTA WITH TAIL -01CE8 VEDIC SIGN VISARGA ANUDATTA WITH TAIL -01CE9 VEDIC SIGN ANUSVARA ANTARGOMUKHA -01CEA VEDIC SIGN ANUSVARA BAHIRGOMUKHA -01CEB VEDIC SIGN ANUSVARA VAMAGOMUKHA -01CEC VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL -01CED VEDIC SIGN TIRYAK -01CEE VEDIC SIGN HEXIFORM LONG ANUSVARA -01CEF VEDIC SIGN LONG ANUSVARA -01CF0 VEDIC SIGN RTHANG LONG ANUSVARA -01CF1 VEDIC SIGN ANUSVARA UBHAYATO MUKHA -01CF2 VEDIC SIGN ARDHAVISARGA -01CF3 VEDIC SIGN ROTATED ARDHAVISARGA -01CF4 VEDIC TONE CANDRA ABOVE -01CF5 VEDIC SIGN JIHVAMULIYA -01CF6 VEDIC SIGN UPADHMANIYA -01CF8 VEDIC TONE RING ABOVE -01CF9 VEDIC TONE DOUBLE RING ABOVE -01D00 LATIN LETTER SMALL CAPITAL A -01D01 LATIN LETTER SMALL CAPITAL AE -01D02 LATIN SMALL LETTER TURNED AE -01D03 LATIN LETTER SMALL CAPITAL BARRED B -01D04 LATIN LETTER SMALL CAPITAL C -01D05 LATIN LETTER SMALL CAPITAL D -01D06 LATIN LETTER SMALL CAPITAL ETH -01D07 LATIN LETTER SMALL CAPITAL E -01D08 LATIN SMALL LETTER TURNED OPEN E -01D09 LATIN SMALL LETTER TURNED I -01D0A LATIN LETTER SMALL CAPITAL J -01D0B LATIN LETTER SMALL CAPITAL K -01D0C LATIN LETTER SMALL CAPITAL L WITH STROKE -01D0D LATIN LETTER SMALL CAPITAL M -01D0E LATIN LETTER SMALL CAPITAL REVERSED N -01D0F LATIN LETTER SMALL CAPITAL O -01D10 LATIN LETTER SMALL CAPITAL OPEN O -01D11 LATIN SMALL LETTER SIDEWAYS O -01D12 LATIN SMALL LETTER SIDEWAYS OPEN O -01D13 LATIN SMALL LETTER SIDEWAYS O WITH STROKE -01D14 LATIN SMALL LETTER TURNED OE -01D15 LATIN LETTER SMALL CAPITAL OU -01D16 LATIN SMALL LETTER TOP HALF O -01D17 LATIN SMALL LETTER BOTTOM HALF O -01D18 LATIN LETTER SMALL CAPITAL P -01D19 LATIN LETTER SMALL CAPITAL REVERSED R -01D1A LATIN LETTER SMALL CAPITAL TURNED R -01D1B LATIN LETTER SMALL CAPITAL T -01D1C LATIN LETTER SMALL CAPITAL U -01D1D LATIN SMALL LETTER SIDEWAYS U -01D1E LATIN SMALL LETTER SIDEWAYS DIAERESIZED U -01D1F LATIN SMALL LETTER SIDEWAYS TURNED M -01D20 LATIN LETTER SMALL CAPITAL V -01D21 LATIN LETTER SMALL CAPITAL W -01D22 LATIN LETTER SMALL CAPITAL Z -01D23 LATIN LETTER SMALL CAPITAL EZH -01D24 LATIN LETTER VOICED LARYNGEAL SPIRANT -01D25 LATIN LETTER AIN -01D26 GREEK LETTER SMALL CAPITAL GAMMA -01D27 GREEK LETTER SMALL CAPITAL LAMDA -01D28 GREEK LETTER SMALL CAPITAL PI -01D29 GREEK LETTER SMALL CAPITAL RHO -01D2A GREEK LETTER SMALL CAPITAL PSI -01D2B CYRILLIC LETTER SMALL CAPITAL EL -01D2C MODIFIER LETTER CAPITAL A -01D2D MODIFIER LETTER CAPITAL AE -01D2E MODIFIER LETTER CAPITAL B -01D2F MODIFIER LETTER CAPITAL BARRED B -01D30 MODIFIER LETTER CAPITAL D -01D31 MODIFIER LETTER CAPITAL E -01D32 MODIFIER LETTER CAPITAL REVERSED E -01D33 MODIFIER LETTER CAPITAL G -01D34 MODIFIER LETTER CAPITAL H -01D35 MODIFIER LETTER CAPITAL I -01D36 MODIFIER LETTER CAPITAL J -01D37 MODIFIER LETTER CAPITAL K -01D38 MODIFIER LETTER CAPITAL L -01D39 MODIFIER LETTER CAPITAL M -01D3A MODIFIER LETTER CAPITAL N -01D3B MODIFIER LETTER CAPITAL REVERSED N -01D3C MODIFIER LETTER CAPITAL O -01D3D MODIFIER LETTER CAPITAL OU -01D3E MODIFIER LETTER CAPITAL P -01D3F MODIFIER LETTER CAPITAL R -01D40 MODIFIER LETTER CAPITAL T -01D41 MODIFIER LETTER CAPITAL U -01D42 MODIFIER LETTER CAPITAL W -01D43 MODIFIER LETTER SMALL A -01D44 MODIFIER LETTER SMALL TURNED A -01D45 MODIFIER LETTER SMALL ALPHA -01D46 MODIFIER LETTER SMALL TURNED AE -01D47 MODIFIER LETTER SMALL B -01D48 MODIFIER LETTER SMALL D -01D49 MODIFIER LETTER SMALL E -01D4A MODIFIER LETTER SMALL SCHWA -01D4B MODIFIER LETTER SMALL OPEN E -01D4C MODIFIER LETTER SMALL TURNED OPEN E -01D4D MODIFIER LETTER SMALL G -01D4E MODIFIER LETTER SMALL TURNED I -01D4F MODIFIER LETTER SMALL K -01D50 MODIFIER LETTER SMALL M -01D51 MODIFIER LETTER SMALL ENG -01D52 MODIFIER LETTER SMALL O -01D53 MODIFIER LETTER SMALL OPEN O -01D54 MODIFIER LETTER SMALL TOP HALF O -01D55 MODIFIER LETTER SMALL BOTTOM HALF O -01D56 MODIFIER LETTER SMALL P -01D57 MODIFIER LETTER SMALL T -01D58 MODIFIER LETTER SMALL U -01D59 MODIFIER LETTER SMALL SIDEWAYS U -01D5A MODIFIER LETTER SMALL TURNED M -01D5B MODIFIER LETTER SMALL V -01D5C MODIFIER LETTER SMALL AIN -01D5D MODIFIER LETTER SMALL BETA -01D5E MODIFIER LETTER SMALL GREEK GAMMA -01D5F MODIFIER LETTER SMALL DELTA -01D60 MODIFIER LETTER SMALL GREEK PHI -01D61 MODIFIER LETTER SMALL CHI -01D62 LATIN SUBSCRIPT SMALL LETTER I -01D63 LATIN SUBSCRIPT SMALL LETTER R -01D64 LATIN SUBSCRIPT SMALL LETTER U -01D65 LATIN SUBSCRIPT SMALL LETTER V -01D66 GREEK SUBSCRIPT SMALL LETTER BETA -01D67 GREEK SUBSCRIPT SMALL LETTER GAMMA -01D68 GREEK SUBSCRIPT SMALL LETTER RHO -01D69 GREEK SUBSCRIPT SMALL LETTER PHI -01D6A GREEK SUBSCRIPT SMALL LETTER CHI -01D6B LATIN SMALL LETTER UE -01D6C LATIN SMALL LETTER B WITH MIDDLE TILDE -01D6D LATIN SMALL LETTER D WITH MIDDLE TILDE -01D6E LATIN SMALL LETTER F WITH MIDDLE TILDE -01D6F LATIN SMALL LETTER M WITH MIDDLE TILDE -01D70 LATIN SMALL LETTER N WITH MIDDLE TILDE -01D71 LATIN SMALL LETTER P WITH MIDDLE TILDE -01D72 LATIN SMALL LETTER R WITH MIDDLE TILDE -01D73 LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE -01D74 LATIN SMALL LETTER S WITH MIDDLE TILDE -01D75 LATIN SMALL LETTER T WITH MIDDLE TILDE -01D76 LATIN SMALL LETTER Z WITH MIDDLE TILDE -01D77 LATIN SMALL LETTER TURNED G -01D78 MODIFIER LETTER CYRILLIC EN -01D79 LATIN SMALL LETTER INSULAR G -01D7A LATIN SMALL LETTER TH WITH STRIKETHROUGH -01D7B LATIN SMALL CAPITAL LETTER I WITH STROKE -01D7C LATIN SMALL LETTER IOTA WITH STROKE -01D7D LATIN SMALL LETTER P WITH STROKE -01D7E LATIN SMALL CAPITAL LETTER U WITH STROKE -01D7F LATIN SMALL LETTER UPSILON WITH STROKE -01D80 LATIN SMALL LETTER B WITH PALATAL HOOK -01D81 LATIN SMALL LETTER D WITH PALATAL HOOK -01D82 LATIN SMALL LETTER F WITH PALATAL HOOK -01D83 LATIN SMALL LETTER G WITH PALATAL HOOK -01D84 LATIN SMALL LETTER K WITH PALATAL HOOK -01D85 LATIN SMALL LETTER L WITH PALATAL HOOK -01D86 LATIN SMALL LETTER M WITH PALATAL HOOK -01D87 LATIN SMALL LETTER N WITH PALATAL HOOK -01D88 LATIN SMALL LETTER P WITH PALATAL HOOK -01D89 LATIN SMALL LETTER R WITH PALATAL HOOK -01D8A LATIN SMALL LETTER S WITH PALATAL HOOK -01D8B LATIN SMALL LETTER ESH WITH PALATAL HOOK -01D8C LATIN SMALL LETTER V WITH PALATAL HOOK -01D8D LATIN SMALL LETTER X WITH PALATAL HOOK -01D8E LATIN SMALL LETTER Z WITH PALATAL HOOK -01D8F LATIN SMALL LETTER A WITH RETROFLEX HOOK -01D90 LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK -01D91 LATIN SMALL LETTER D WITH HOOK AND TAIL -01D92 LATIN SMALL LETTER E WITH RETROFLEX HOOK -01D93 LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK -01D94 LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK -01D95 LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK -01D96 LATIN SMALL LETTER I WITH RETROFLEX HOOK -01D97 LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK -01D98 LATIN SMALL LETTER ESH WITH RETROFLEX HOOK -01D99 LATIN SMALL LETTER U WITH RETROFLEX HOOK -01D9A LATIN SMALL LETTER EZH WITH RETROFLEX HOOK -01D9B MODIFIER LETTER SMALL TURNED ALPHA -01D9C MODIFIER LETTER SMALL C -01D9D MODIFIER LETTER SMALL C WITH CURL -01D9E MODIFIER LETTER SMALL ETH -01D9F MODIFIER LETTER SMALL REVERSED OPEN E -01DA0 MODIFIER LETTER SMALL F -01DA1 MODIFIER LETTER SMALL DOTLESS J WITH STROKE -01DA2 MODIFIER LETTER SMALL SCRIPT G -01DA3 MODIFIER LETTER SMALL TURNED H -01DA4 MODIFIER LETTER SMALL I WITH STROKE -01DA5 MODIFIER LETTER SMALL IOTA -01DA6 MODIFIER LETTER SMALL CAPITAL I -01DA7 MODIFIER LETTER SMALL CAPITAL I WITH STROKE -01DA8 MODIFIER LETTER SMALL J WITH CROSSED-TAIL -01DA9 MODIFIER LETTER SMALL L WITH RETROFLEX HOOK -01DAA MODIFIER LETTER SMALL L WITH PALATAL HOOK -01DAB MODIFIER LETTER SMALL CAPITAL L -01DAC MODIFIER LETTER SMALL M WITH HOOK -01DAD MODIFIER LETTER SMALL TURNED M WITH LONG LEG -01DAE MODIFIER LETTER SMALL N WITH LEFT HOOK -01DAF MODIFIER LETTER SMALL N WITH RETROFLEX HOOK -01DB0 MODIFIER LETTER SMALL CAPITAL N -01DB1 MODIFIER LETTER SMALL BARRED O -01DB2 MODIFIER LETTER SMALL PHI -01DB3 MODIFIER LETTER SMALL S WITH HOOK -01DB4 MODIFIER LETTER SMALL ESH -01DB5 MODIFIER LETTER SMALL T WITH PALATAL HOOK -01DB6 MODIFIER LETTER SMALL U BAR -01DB7 MODIFIER LETTER SMALL UPSILON -01DB8 MODIFIER LETTER SMALL CAPITAL U -01DB9 MODIFIER LETTER SMALL V WITH HOOK -01DBA MODIFIER LETTER SMALL TURNED V -01DBB MODIFIER LETTER SMALL Z -01DBC MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK -01DBD MODIFIER LETTER SMALL Z WITH CURL -01DBE MODIFIER LETTER SMALL EZH -01DBF MODIFIER LETTER SMALL THETA -01DC0 COMBINING DOTTED GRAVE ACCENT -01DC1 COMBINING DOTTED ACUTE ACCENT -01DC2 COMBINING SNAKE BELOW -01DC3 COMBINING SUSPENSION MARK -01DC4 COMBINING MACRON-ACUTE -01DC5 COMBINING GRAVE-MACRON -01DC6 COMBINING MACRON-GRAVE -01DC7 COMBINING ACUTE-MACRON -01DC8 COMBINING GRAVE-ACUTE-GRAVE -01DC9 COMBINING ACUTE-GRAVE-ACUTE -01DCA COMBINING LATIN SMALL LETTER R BELOW -01DCB COMBINING BREVE-MACRON -01DCC COMBINING MACRON-BREVE -01DCD COMBINING DOUBLE CIRCUMFLEX ABOVE -01DCE COMBINING OGONEK ABOVE -01DCF COMBINING ZIGZAG BELOW -01DD0 COMBINING IS BELOW -01DD1 COMBINING UR ABOVE -01DD2 COMBINING US ABOVE -01DD3 COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE -01DD4 COMBINING LATIN SMALL LETTER AE -01DD5 COMBINING LATIN SMALL LETTER AO -01DD6 COMBINING LATIN SMALL LETTER AV -01DD7 COMBINING LATIN SMALL LETTER C CEDILLA -01DD8 COMBINING LATIN SMALL LETTER INSULAR D -01DD9 COMBINING LATIN SMALL LETTER ETH -01DDA COMBINING LATIN SMALL LETTER G -01DDB COMBINING LATIN LETTER SMALL CAPITAL G -01DDC COMBINING LATIN SMALL LETTER K -01DDD COMBINING LATIN SMALL LETTER L -01DDE COMBINING LATIN LETTER SMALL CAPITAL L -01DDF COMBINING LATIN LETTER SMALL CAPITAL M -01DE0 COMBINING LATIN SMALL LETTER N -01DE1 COMBINING LATIN LETTER SMALL CAPITAL N -01DE2 COMBINING LATIN LETTER SMALL CAPITAL R -01DE3 COMBINING LATIN SMALL LETTER R ROTUNDA -01DE4 COMBINING LATIN SMALL LETTER S -01DE5 COMBINING LATIN SMALL LETTER LONG S -01DE6 COMBINING LATIN SMALL LETTER Z -01DE7 COMBINING LATIN SMALL LETTER ALPHA -01DE8 COMBINING LATIN SMALL LETTER B -01DE9 COMBINING LATIN SMALL LETTER BETA -01DEA COMBINING LATIN SMALL LETTER SCHWA -01DEB COMBINING LATIN SMALL LETTER F -01DEC COMBINING LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE -01DED COMBINING LATIN SMALL LETTER O WITH LIGHT CENTRALIZATION STROKE -01DEE COMBINING LATIN SMALL LETTER P -01DEF COMBINING LATIN SMALL LETTER ESH -01DF0 COMBINING LATIN SMALL LETTER U WITH LIGHT CENTRALIZATION STROKE -01DF1 COMBINING LATIN SMALL LETTER W -01DF2 COMBINING LATIN SMALL LETTER A WITH DIAERESIS -01DF3 COMBINING LATIN SMALL LETTER O WITH DIAERESIS -01DF4 COMBINING LATIN SMALL LETTER U WITH DIAERESIS -01DF5 COMBINING UP TACK ABOVE -01DFC COMBINING DOUBLE INVERTED BREVE BELOW -01DFD COMBINING ALMOST EQUAL TO BELOW -01DFE COMBINING LEFT ARROWHEAD ABOVE -01DFF COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW -01E00 LATIN CAPITAL LETTER A WITH RING BELOW -01E01 LATIN SMALL LETTER A WITH RING BELOW -01E02 LATIN CAPITAL LETTER B WITH DOT ABOVE -01E03 LATIN SMALL LETTER B WITH DOT ABOVE -01E04 LATIN CAPITAL LETTER B WITH DOT BELOW -01E05 LATIN SMALL LETTER B WITH DOT BELOW -01E06 LATIN CAPITAL LETTER B WITH LINE BELOW -01E07 LATIN SMALL LETTER B WITH LINE BELOW -01E08 LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE -01E09 LATIN SMALL LETTER C WITH CEDILLA AND ACUTE -01E0A LATIN CAPITAL LETTER D WITH DOT ABOVE -01E0B LATIN SMALL LETTER D WITH DOT ABOVE -01E0C LATIN CAPITAL LETTER D WITH DOT BELOW -01E0D LATIN SMALL LETTER D WITH DOT BELOW -01E0E LATIN CAPITAL LETTER D WITH LINE BELOW -01E0F LATIN SMALL LETTER D WITH LINE BELOW -01E10 LATIN CAPITAL LETTER D WITH CEDILLA -01E11 LATIN SMALL LETTER D WITH CEDILLA -01E12 LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW -01E13 LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW -01E14 LATIN CAPITAL LETTER E WITH MACRON AND GRAVE -01E15 LATIN SMALL LETTER E WITH MACRON AND GRAVE -01E16 LATIN CAPITAL LETTER E WITH MACRON AND ACUTE -01E17 LATIN SMALL LETTER E WITH MACRON AND ACUTE -01E18 LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW -01E19 LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW -01E1A LATIN CAPITAL LETTER E WITH TILDE BELOW -01E1B LATIN SMALL LETTER E WITH TILDE BELOW -01E1C LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE -01E1D LATIN SMALL LETTER E WITH CEDILLA AND BREVE -01E1E LATIN CAPITAL LETTER F WITH DOT ABOVE -01E1F LATIN SMALL LETTER F WITH DOT ABOVE -01E20 LATIN CAPITAL LETTER G WITH MACRON -01E21 LATIN SMALL LETTER G WITH MACRON -01E22 LATIN CAPITAL LETTER H WITH DOT ABOVE -01E23 LATIN SMALL LETTER H WITH DOT ABOVE -01E24 LATIN CAPITAL LETTER H WITH DOT BELOW -01E25 LATIN SMALL LETTER H WITH DOT BELOW -01E26 LATIN CAPITAL LETTER H WITH DIAERESIS -01E27 LATIN SMALL LETTER H WITH DIAERESIS -01E28 LATIN CAPITAL LETTER H WITH CEDILLA -01E29 LATIN SMALL LETTER H WITH CEDILLA -01E2A LATIN CAPITAL LETTER H WITH BREVE BELOW -01E2B LATIN SMALL LETTER H WITH BREVE BELOW -01E2C LATIN CAPITAL LETTER I WITH TILDE BELOW -01E2D LATIN SMALL LETTER I WITH TILDE BELOW -01E2E LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE -01E2F LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE -01E30 LATIN CAPITAL LETTER K WITH ACUTE -01E31 LATIN SMALL LETTER K WITH ACUTE -01E32 LATIN CAPITAL LETTER K WITH DOT BELOW -01E33 LATIN SMALL LETTER K WITH DOT BELOW -01E34 LATIN CAPITAL LETTER K WITH LINE BELOW -01E35 LATIN SMALL LETTER K WITH LINE BELOW -01E36 LATIN CAPITAL LETTER L WITH DOT BELOW -01E37 LATIN SMALL LETTER L WITH DOT BELOW -01E38 LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON -01E39 LATIN SMALL LETTER L WITH DOT BELOW AND MACRON -01E3A LATIN CAPITAL LETTER L WITH LINE BELOW -01E3B LATIN SMALL LETTER L WITH LINE BELOW -01E3C LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW -01E3D LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW -01E3E LATIN CAPITAL LETTER M WITH ACUTE -01E3F LATIN SMALL LETTER M WITH ACUTE -01E40 LATIN CAPITAL LETTER M WITH DOT ABOVE -01E41 LATIN SMALL LETTER M WITH DOT ABOVE -01E42 LATIN CAPITAL LETTER M WITH DOT BELOW -01E43 LATIN SMALL LETTER M WITH DOT BELOW -01E44 LATIN CAPITAL LETTER N WITH DOT ABOVE -01E45 LATIN SMALL LETTER N WITH DOT ABOVE -01E46 LATIN CAPITAL LETTER N WITH DOT BELOW -01E47 LATIN SMALL LETTER N WITH DOT BELOW -01E48 LATIN CAPITAL LETTER N WITH LINE BELOW -01E49 LATIN SMALL LETTER N WITH LINE BELOW -01E4A LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW -01E4B LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW -01E4C LATIN CAPITAL LETTER O WITH TILDE AND ACUTE -01E4D LATIN SMALL LETTER O WITH TILDE AND ACUTE -01E4E LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS -01E4F LATIN SMALL LETTER O WITH TILDE AND DIAERESIS -01E50 LATIN CAPITAL LETTER O WITH MACRON AND GRAVE -01E51 LATIN SMALL LETTER O WITH MACRON AND GRAVE -01E52 LATIN CAPITAL LETTER O WITH MACRON AND ACUTE -01E53 LATIN SMALL LETTER O WITH MACRON AND ACUTE -01E54 LATIN CAPITAL LETTER P WITH ACUTE -01E55 LATIN SMALL LETTER P WITH ACUTE -01E56 LATIN CAPITAL LETTER P WITH DOT ABOVE -01E57 LATIN SMALL LETTER P WITH DOT ABOVE -01E58 LATIN CAPITAL LETTER R WITH DOT ABOVE -01E59 LATIN SMALL LETTER R WITH DOT ABOVE -01E5A LATIN CAPITAL LETTER R WITH DOT BELOW -01E5B LATIN SMALL LETTER R WITH DOT BELOW -01E5C LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON -01E5D LATIN SMALL LETTER R WITH DOT BELOW AND MACRON -01E5E LATIN CAPITAL LETTER R WITH LINE BELOW -01E5F LATIN SMALL LETTER R WITH LINE BELOW -01E60 LATIN CAPITAL LETTER S WITH DOT ABOVE -01E61 LATIN SMALL LETTER S WITH DOT ABOVE -01E62 LATIN CAPITAL LETTER S WITH DOT BELOW -01E63 LATIN SMALL LETTER S WITH DOT BELOW -01E64 LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE -01E65 LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE -01E66 LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE -01E67 LATIN SMALL LETTER S WITH CARON AND DOT ABOVE -01E68 LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE -01E69 LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE -01E6A LATIN CAPITAL LETTER T WITH DOT ABOVE -01E6B LATIN SMALL LETTER T WITH DOT ABOVE -01E6C LATIN CAPITAL LETTER T WITH DOT BELOW -01E6D LATIN SMALL LETTER T WITH DOT BELOW -01E6E LATIN CAPITAL LETTER T WITH LINE BELOW -01E6F LATIN SMALL LETTER T WITH LINE BELOW -01E70 LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW -01E71 LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW -01E72 LATIN CAPITAL LETTER U WITH DIAERESIS BELOW -01E73 LATIN SMALL LETTER U WITH DIAERESIS BELOW -01E74 LATIN CAPITAL LETTER U WITH TILDE BELOW -01E75 LATIN SMALL LETTER U WITH TILDE BELOW -01E76 LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW -01E77 LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW -01E78 LATIN CAPITAL LETTER U WITH TILDE AND ACUTE -01E79 LATIN SMALL LETTER U WITH TILDE AND ACUTE -01E7A LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS -01E7B LATIN SMALL LETTER U WITH MACRON AND DIAERESIS -01E7C LATIN CAPITAL LETTER V WITH TILDE -01E7D LATIN SMALL LETTER V WITH TILDE -01E7E LATIN CAPITAL LETTER V WITH DOT BELOW -01E7F LATIN SMALL LETTER V WITH DOT BELOW -01E80 LATIN CAPITAL LETTER W WITH GRAVE -01E81 LATIN SMALL LETTER W WITH GRAVE -01E82 LATIN CAPITAL LETTER W WITH ACUTE -01E83 LATIN SMALL LETTER W WITH ACUTE -01E84 LATIN CAPITAL LETTER W WITH DIAERESIS -01E85 LATIN SMALL LETTER W WITH DIAERESIS -01E86 LATIN CAPITAL LETTER W WITH DOT ABOVE -01E87 LATIN SMALL LETTER W WITH DOT ABOVE -01E88 LATIN CAPITAL LETTER W WITH DOT BELOW -01E89 LATIN SMALL LETTER W WITH DOT BELOW -01E8A LATIN CAPITAL LETTER X WITH DOT ABOVE -01E8B LATIN SMALL LETTER X WITH DOT ABOVE -01E8C LATIN CAPITAL LETTER X WITH DIAERESIS -01E8D LATIN SMALL LETTER X WITH DIAERESIS -01E8E LATIN CAPITAL LETTER Y WITH DOT ABOVE -01E8F LATIN SMALL LETTER Y WITH DOT ABOVE -01E90 LATIN CAPITAL LETTER Z WITH CIRCUMFLEX -01E91 LATIN SMALL LETTER Z WITH CIRCUMFLEX -01E92 LATIN CAPITAL LETTER Z WITH DOT BELOW -01E93 LATIN SMALL LETTER Z WITH DOT BELOW -01E94 LATIN CAPITAL LETTER Z WITH LINE BELOW -01E95 LATIN SMALL LETTER Z WITH LINE BELOW -01E96 LATIN SMALL LETTER H WITH LINE BELOW -01E97 LATIN SMALL LETTER T WITH DIAERESIS -01E98 LATIN SMALL LETTER W WITH RING ABOVE -01E99 LATIN SMALL LETTER Y WITH RING ABOVE -01E9A LATIN SMALL LETTER A WITH RIGHT HALF RING -01E9B LATIN SMALL LETTER LONG S WITH DOT ABOVE -01E9C LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE -01E9D LATIN SMALL LETTER LONG S WITH HIGH STROKE -01E9E LATIN CAPITAL LETTER SHARP S -01E9F LATIN SMALL LETTER DELTA -01EA0 LATIN CAPITAL LETTER A WITH DOT BELOW -01EA1 LATIN SMALL LETTER A WITH DOT BELOW -01EA2 LATIN CAPITAL LETTER A WITH HOOK ABOVE -01EA3 LATIN SMALL LETTER A WITH HOOK ABOVE -01EA4 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE -01EA5 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE -01EA6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE -01EA7 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE -01EA8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE -01EA9 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE -01EAA LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE -01EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE -01EAC LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW -01EAD LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW -01EAE LATIN CAPITAL LETTER A WITH BREVE AND ACUTE -01EAF LATIN SMALL LETTER A WITH BREVE AND ACUTE -01EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE -01EB1 LATIN SMALL LETTER A WITH BREVE AND GRAVE -01EB2 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE -01EB3 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE -01EB4 LATIN CAPITAL LETTER A WITH BREVE AND TILDE -01EB5 LATIN SMALL LETTER A WITH BREVE AND TILDE -01EB6 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW -01EB7 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW -01EB8 LATIN CAPITAL LETTER E WITH DOT BELOW -01EB9 LATIN SMALL LETTER E WITH DOT BELOW -01EBA LATIN CAPITAL LETTER E WITH HOOK ABOVE -01EBB LATIN SMALL LETTER E WITH HOOK ABOVE -01EBC LATIN CAPITAL LETTER E WITH TILDE -01EBD LATIN SMALL LETTER E WITH TILDE -01EBE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE -01EBF LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE -01EC0 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE -01EC1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE -01EC2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE -01EC3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE -01EC4 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE -01EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE -01EC6 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW -01EC7 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW -01EC8 LATIN CAPITAL LETTER I WITH HOOK ABOVE -01EC9 LATIN SMALL LETTER I WITH HOOK ABOVE -01ECA LATIN CAPITAL LETTER I WITH DOT BELOW -01ECB LATIN SMALL LETTER I WITH DOT BELOW -01ECC LATIN CAPITAL LETTER O WITH DOT BELOW -01ECD LATIN SMALL LETTER O WITH DOT BELOW -01ECE LATIN CAPITAL LETTER O WITH HOOK ABOVE -01ECF LATIN SMALL LETTER O WITH HOOK ABOVE -01ED0 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE -01ED1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE -01ED2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE -01ED3 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE -01ED4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE -01ED5 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE -01ED6 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE -01ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE -01ED8 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW -01ED9 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW -01EDA LATIN CAPITAL LETTER O WITH HORN AND ACUTE -01EDB LATIN SMALL LETTER O WITH HORN AND ACUTE -01EDC LATIN CAPITAL LETTER O WITH HORN AND GRAVE -01EDD LATIN SMALL LETTER O WITH HORN AND GRAVE -01EDE LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE -01EDF LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE -01EE0 LATIN CAPITAL LETTER O WITH HORN AND TILDE -01EE1 LATIN SMALL LETTER O WITH HORN AND TILDE -01EE2 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW -01EE3 LATIN SMALL LETTER O WITH HORN AND DOT BELOW -01EE4 LATIN CAPITAL LETTER U WITH DOT BELOW -01EE5 LATIN SMALL LETTER U WITH DOT BELOW -01EE6 LATIN CAPITAL LETTER U WITH HOOK ABOVE -01EE7 LATIN SMALL LETTER U WITH HOOK ABOVE -01EE8 LATIN CAPITAL LETTER U WITH HORN AND ACUTE -01EE9 LATIN SMALL LETTER U WITH HORN AND ACUTE -01EEA LATIN CAPITAL LETTER U WITH HORN AND GRAVE -01EEB LATIN SMALL LETTER U WITH HORN AND GRAVE -01EEC LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE -01EED LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE -01EEE LATIN CAPITAL LETTER U WITH HORN AND TILDE -01EEF LATIN SMALL LETTER U WITH HORN AND TILDE -01EF0 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW -01EF1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW -01EF2 LATIN CAPITAL LETTER Y WITH GRAVE -01EF3 LATIN SMALL LETTER Y WITH GRAVE -01EF4 LATIN CAPITAL LETTER Y WITH DOT BELOW -01EF5 LATIN SMALL LETTER Y WITH DOT BELOW -01EF6 LATIN CAPITAL LETTER Y WITH HOOK ABOVE -01EF7 LATIN SMALL LETTER Y WITH HOOK ABOVE -01EF8 LATIN CAPITAL LETTER Y WITH TILDE -01EF9 LATIN SMALL LETTER Y WITH TILDE -01EFA LATIN CAPITAL LETTER MIDDLE-WELSH LL -01EFB LATIN SMALL LETTER MIDDLE-WELSH LL -01EFC LATIN CAPITAL LETTER MIDDLE-WELSH V -01EFD LATIN SMALL LETTER MIDDLE-WELSH V -01EFE LATIN CAPITAL LETTER Y WITH LOOP -01EFF LATIN SMALL LETTER Y WITH LOOP -01F00 GREEK SMALL LETTER ALPHA WITH PSILI -01F01 GREEK SMALL LETTER ALPHA WITH DASIA -01F02 GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA -01F03 GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA -01F04 GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA -01F05 GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA -01F06 GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI -01F07 GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI -01F08 GREEK CAPITAL LETTER ALPHA WITH PSILI -01F09 GREEK CAPITAL LETTER ALPHA WITH DASIA -01F0A GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA -01F0B GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA -01F0C GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA -01F0D GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA -01F0E GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI -01F0F GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI -01F10 GREEK SMALL LETTER EPSILON WITH PSILI -01F11 GREEK SMALL LETTER EPSILON WITH DASIA -01F12 GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA -01F13 GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA -01F14 GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA -01F15 GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA -01F18 GREEK CAPITAL LETTER EPSILON WITH PSILI -01F19 GREEK CAPITAL LETTER EPSILON WITH DASIA -01F1A GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA -01F1B GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA -01F1C GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA -01F1D GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA -01F20 GREEK SMALL LETTER ETA WITH PSILI -01F21 GREEK SMALL LETTER ETA WITH DASIA -01F22 GREEK SMALL LETTER ETA WITH PSILI AND VARIA -01F23 GREEK SMALL LETTER ETA WITH DASIA AND VARIA -01F24 GREEK SMALL LETTER ETA WITH PSILI AND OXIA -01F25 GREEK SMALL LETTER ETA WITH DASIA AND OXIA -01F26 GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI -01F27 GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI -01F28 GREEK CAPITAL LETTER ETA WITH PSILI -01F29 GREEK CAPITAL LETTER ETA WITH DASIA -01F2A GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA -01F2B GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA -01F2C GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA -01F2D GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA -01F2E GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI -01F2F GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI -01F30 GREEK SMALL LETTER IOTA WITH PSILI -01F31 GREEK SMALL LETTER IOTA WITH DASIA -01F32 GREEK SMALL LETTER IOTA WITH PSILI AND VARIA -01F33 GREEK SMALL LETTER IOTA WITH DASIA AND VARIA -01F34 GREEK SMALL LETTER IOTA WITH PSILI AND OXIA -01F35 GREEK SMALL LETTER IOTA WITH DASIA AND OXIA -01F36 GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI -01F37 GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI -01F38 GREEK CAPITAL LETTER IOTA WITH PSILI -01F39 GREEK CAPITAL LETTER IOTA WITH DASIA -01F3A GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA -01F3B GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA -01F3C GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA -01F3D GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA -01F3E GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI -01F3F GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI -01F40 GREEK SMALL LETTER OMICRON WITH PSILI -01F41 GREEK SMALL LETTER OMICRON WITH DASIA -01F42 GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA -01F43 GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA -01F44 GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA -01F45 GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA -01F48 GREEK CAPITAL LETTER OMICRON WITH PSILI -01F49 GREEK CAPITAL LETTER OMICRON WITH DASIA -01F4A GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA -01F4B GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA -01F4C GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA -01F4D GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA -01F50 GREEK SMALL LETTER UPSILON WITH PSILI -01F51 GREEK SMALL LETTER UPSILON WITH DASIA -01F52 GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA -01F53 GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA -01F54 GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA -01F55 GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA -01F56 GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI -01F57 GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI -01F59 GREEK CAPITAL LETTER UPSILON WITH DASIA -01F5B GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA -01F5D GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA -01F5F GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI -01F60 GREEK SMALL LETTER OMEGA WITH PSILI -01F61 GREEK SMALL LETTER OMEGA WITH DASIA -01F62 GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA -01F63 GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA -01F64 GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA -01F65 GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA -01F66 GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI -01F67 GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI -01F68 GREEK CAPITAL LETTER OMEGA WITH PSILI -01F69 GREEK CAPITAL LETTER OMEGA WITH DASIA -01F6A GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA -01F6B GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA -01F6C GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA -01F6D GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA -01F6E GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI -01F6F GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI -01F70 GREEK SMALL LETTER ALPHA WITH VARIA -01F71 GREEK SMALL LETTER ALPHA WITH OXIA -01F72 GREEK SMALL LETTER EPSILON WITH VARIA -01F73 GREEK SMALL LETTER EPSILON WITH OXIA -01F74 GREEK SMALL LETTER ETA WITH VARIA -01F75 GREEK SMALL LETTER ETA WITH OXIA -01F76 GREEK SMALL LETTER IOTA WITH VARIA -01F77 GREEK SMALL LETTER IOTA WITH OXIA -01F78 GREEK SMALL LETTER OMICRON WITH VARIA -01F79 GREEK SMALL LETTER OMICRON WITH OXIA -01F7A GREEK SMALL LETTER UPSILON WITH VARIA -01F7B GREEK SMALL LETTER UPSILON WITH OXIA -01F7C GREEK SMALL LETTER OMEGA WITH VARIA -01F7D GREEK SMALL LETTER OMEGA WITH OXIA -01F80 GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI -01F81 GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI -01F82 GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI -01F83 GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI -01F84 GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI -01F85 GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI -01F86 GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI -01F87 GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI -01F88 GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI -01F89 GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI -01F8A GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI -01F8B GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI -01F8C GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI -01F8D GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI -01F8E GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI -01F8F GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI -01F90 GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI -01F91 GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI -01F92 GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI -01F93 GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI -01F94 GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI -01F95 GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI -01F96 GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI -01F97 GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI -01F98 GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI -01F99 GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI -01F9A GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI -01F9B GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI -01F9C GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI -01F9D GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI -01F9E GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI -01F9F GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI -01FA0 GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI -01FA1 GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI -01FA2 GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI -01FA3 GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI -01FA4 GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI -01FA5 GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI -01FA6 GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI -01FA7 GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI -01FA8 GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI -01FA9 GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI -01FAA GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI -01FAB GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI -01FAC GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI -01FAD GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI -01FAE GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI -01FAF GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI -01FB0 GREEK SMALL LETTER ALPHA WITH VRACHY -01FB1 GREEK SMALL LETTER ALPHA WITH MACRON -01FB2 GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI -01FB3 GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI -01FB4 GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI -01FB6 GREEK SMALL LETTER ALPHA WITH PERISPOMENI -01FB7 GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI -01FB8 GREEK CAPITAL LETTER ALPHA WITH VRACHY -01FB9 GREEK CAPITAL LETTER ALPHA WITH MACRON -01FBA GREEK CAPITAL LETTER ALPHA WITH VARIA -01FBB GREEK CAPITAL LETTER ALPHA WITH OXIA -01FBC GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI -01FBD GREEK KORONIS -01FBE GREEK PROSGEGRAMMENI -01FBF GREEK PSILI -01FC0 GREEK PERISPOMENI -01FC1 GREEK DIALYTIKA AND PERISPOMENI -01FC2 GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI -01FC3 GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI -01FC4 GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI -01FC6 GREEK SMALL LETTER ETA WITH PERISPOMENI -01FC7 GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI -01FC8 GREEK CAPITAL LETTER EPSILON WITH VARIA -01FC9 GREEK CAPITAL LETTER EPSILON WITH OXIA -01FCA GREEK CAPITAL LETTER ETA WITH VARIA -01FCB GREEK CAPITAL LETTER ETA WITH OXIA -01FCC GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI -01FCD GREEK PSILI AND VARIA -01FCE GREEK PSILI AND OXIA -01FCF GREEK PSILI AND PERISPOMENI -01FD0 GREEK SMALL LETTER IOTA WITH VRACHY -01FD1 GREEK SMALL LETTER IOTA WITH MACRON -01FD2 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA -01FD3 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA -01FD6 GREEK SMALL LETTER IOTA WITH PERISPOMENI -01FD7 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI -01FD8 GREEK CAPITAL LETTER IOTA WITH VRACHY -01FD9 GREEK CAPITAL LETTER IOTA WITH MACRON -01FDA GREEK CAPITAL LETTER IOTA WITH VARIA -01FDB GREEK CAPITAL LETTER IOTA WITH OXIA -01FDD GREEK DASIA AND VARIA -01FDE GREEK DASIA AND OXIA -01FDF GREEK DASIA AND PERISPOMENI -01FE0 GREEK SMALL LETTER UPSILON WITH VRACHY -01FE1 GREEK SMALL LETTER UPSILON WITH MACRON -01FE2 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA -01FE3 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA -01FE4 GREEK SMALL LETTER RHO WITH PSILI -01FE5 GREEK SMALL LETTER RHO WITH DASIA -01FE6 GREEK SMALL LETTER UPSILON WITH PERISPOMENI -01FE7 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI -01FE8 GREEK CAPITAL LETTER UPSILON WITH VRACHY -01FE9 GREEK CAPITAL LETTER UPSILON WITH MACRON -01FEA GREEK CAPITAL LETTER UPSILON WITH VARIA -01FEB GREEK CAPITAL LETTER UPSILON WITH OXIA -01FEC GREEK CAPITAL LETTER RHO WITH DASIA -01FED GREEK DIALYTIKA AND VARIA -01FEE GREEK DIALYTIKA AND OXIA -01FEF GREEK VARIA -01FF2 GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI -01FF3 GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI -01FF4 GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI -01FF6 GREEK SMALL LETTER OMEGA WITH PERISPOMENI -01FF7 GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI -01FF8 GREEK CAPITAL LETTER OMICRON WITH VARIA -01FF9 GREEK CAPITAL LETTER OMICRON WITH OXIA -01FFA GREEK CAPITAL LETTER OMEGA WITH VARIA -01FFB GREEK CAPITAL LETTER OMEGA WITH OXIA -01FFC GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI -01FFD GREEK OXIA -01FFE GREEK DASIA -02000 EN QUAD -02001 EM QUAD -02002 EN SPACE -02003 EM SPACE -02004 THREE-PER-EM SPACE -02005 FOUR-PER-EM SPACE -02006 SIX-PER-EM SPACE -02007 FIGURE SPACE -02008 PUNCTUATION SPACE -02009 THIN SPACE -0200A HAIR SPACE -0200B ZERO WIDTH SPACE -0200B ZWSP -0200C ZERO WIDTH NON-JOINER -0200C ZWNJ -0200D ZERO WIDTH JOINER -0200D ZWJ -0200E LEFT-TO-RIGHT MARK -0200E LRM -0200F RIGHT-TO-LEFT MARK -0200F RLM -02010 HYPHEN -02011 NON-BREAKING HYPHEN -02012 FIGURE DASH -02013 EN DASH -02014 EM DASH -02015 HORIZONTAL BAR -02016 DOUBLE VERTICAL LINE -02017 DOUBLE LOW LINE -02018 LEFT SINGLE QUOTATION MARK -02019 RIGHT SINGLE QUOTATION MARK -0201A SINGLE LOW-9 QUOTATION MARK -0201B SINGLE HIGH-REVERSED-9 QUOTATION MARK -0201C LEFT DOUBLE QUOTATION MARK -0201D RIGHT DOUBLE QUOTATION MARK -0201E DOUBLE LOW-9 QUOTATION MARK -0201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK -02020 DAGGER -02021 DOUBLE DAGGER -02022 BULLET -02023 TRIANGULAR BULLET -02024 ONE DOT LEADER -02025 TWO DOT LEADER -02026 HORIZONTAL ELLIPSIS -02027 HYPHENATION POINT -02028 LINE SEPARATOR -02029 PARAGRAPH SEPARATOR -0202A LEFT-TO-RIGHT EMBEDDING -0202A LRE -0202B RIGHT-TO-LEFT EMBEDDING -0202B RLE -0202C POP DIRECTIONAL FORMATTING -0202C PDF -0202D LEFT-TO-RIGHT OVERRIDE -0202D LRO -0202E RIGHT-TO-LEFT OVERRIDE -0202E RLO -0202F NARROW NO-BREAK SPACE -0202F NNBSP -02030 PER MILLE SIGN -02031 PER TEN THOUSAND SIGN -02032 PRIME -02033 DOUBLE PRIME -02034 TRIPLE PRIME -02035 REVERSED PRIME -02036 REVERSED DOUBLE PRIME -02037 REVERSED TRIPLE PRIME -02038 CARET -02039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK -0203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK -0203B REFERENCE MARK -0203C DOUBLE EXCLAMATION MARK -0203D INTERROBANG -0203E OVERLINE -0203F UNDERTIE -02040 CHARACTER TIE -02041 CARET INSERTION POINT -02042 ASTERISM -02043 HYPHEN BULLET -02044 FRACTION SLASH -02045 LEFT SQUARE BRACKET WITH QUILL -02046 RIGHT SQUARE BRACKET WITH QUILL -02047 DOUBLE QUESTION MARK -02048 QUESTION EXCLAMATION MARK -02049 EXCLAMATION QUESTION MARK -0204A TIRONIAN SIGN ET -0204B REVERSED PILCROW SIGN -0204C BLACK LEFTWARDS BULLET -0204D BLACK RIGHTWARDS BULLET -0204E LOW ASTERISK -0204F REVERSED SEMICOLON -02050 CLOSE UP -02051 TWO ASTERISKS ALIGNED VERTICALLY -02052 COMMERCIAL MINUS SIGN -02053 SWUNG DASH -02054 INVERTED UNDERTIE -02055 FLOWER PUNCTUATION MARK -02056 THREE DOT PUNCTUATION -02057 QUADRUPLE PRIME -02058 FOUR DOT PUNCTUATION -02059 FIVE DOT PUNCTUATION -0205A TWO DOT PUNCTUATION -0205B FOUR DOT MARK -0205C DOTTED CROSS -0205D TRICOLON -0205E VERTICAL FOUR DOTS -0205F MEDIUM MATHEMATICAL SPACE -0205F MMSP -02060 WORD JOINER -02060 WJ -02061 FUNCTION APPLICATION -02062 INVISIBLE TIMES -02063 INVISIBLE SEPARATOR -02064 INVISIBLE PLUS -02066 LEFT-TO-RIGHT ISOLATE -02066 LRI -02067 RIGHT-TO-LEFT ISOLATE -02067 RLI -02068 FIRST STRONG ISOLATE -02068 FSI -02069 POP DIRECTIONAL ISOLATE -02069 PDI -0206A INHIBIT SYMMETRIC SWAPPING -0206B ACTIVATE SYMMETRIC SWAPPING -0206C INHIBIT ARABIC FORM SHAPING -0206D ACTIVATE ARABIC FORM SHAPING -0206E NATIONAL DIGIT SHAPES -0206F NOMINAL DIGIT SHAPES -02070 SUPERSCRIPT ZERO -02071 SUPERSCRIPT LATIN SMALL LETTER I -02074 SUPERSCRIPT FOUR -02075 SUPERSCRIPT FIVE -02076 SUPERSCRIPT SIX -02077 SUPERSCRIPT SEVEN -02078 SUPERSCRIPT EIGHT -02079 SUPERSCRIPT NINE -0207A SUPERSCRIPT PLUS SIGN -0207B SUPERSCRIPT MINUS -0207C SUPERSCRIPT EQUALS SIGN -0207D SUPERSCRIPT LEFT PARENTHESIS -0207E SUPERSCRIPT RIGHT PARENTHESIS -0207F SUPERSCRIPT LATIN SMALL LETTER N -02080 SUBSCRIPT ZERO -02081 SUBSCRIPT ONE -02082 SUBSCRIPT TWO -02083 SUBSCRIPT THREE -02084 SUBSCRIPT FOUR -02085 SUBSCRIPT FIVE -02086 SUBSCRIPT SIX -02087 SUBSCRIPT SEVEN -02088 SUBSCRIPT EIGHT -02089 SUBSCRIPT NINE -0208A SUBSCRIPT PLUS SIGN -0208B SUBSCRIPT MINUS -0208C SUBSCRIPT EQUALS SIGN -0208D SUBSCRIPT LEFT PARENTHESIS -0208E SUBSCRIPT RIGHT PARENTHESIS -02090 LATIN SUBSCRIPT SMALL LETTER A -02091 LATIN SUBSCRIPT SMALL LETTER E -02092 LATIN SUBSCRIPT SMALL LETTER O -02093 LATIN SUBSCRIPT SMALL LETTER X -02094 LATIN SUBSCRIPT SMALL LETTER SCHWA -02095 LATIN SUBSCRIPT SMALL LETTER H -02096 LATIN SUBSCRIPT SMALL LETTER K -02097 LATIN SUBSCRIPT SMALL LETTER L -02098 LATIN SUBSCRIPT SMALL LETTER M -02099 LATIN SUBSCRIPT SMALL LETTER N -0209A LATIN SUBSCRIPT SMALL LETTER P -0209B LATIN SUBSCRIPT SMALL LETTER S -0209C LATIN SUBSCRIPT SMALL LETTER T -020A0 EURO-CURRENCY SIGN -020A1 COLON SIGN -020A2 CRUZEIRO SIGN -020A3 FRENCH FRANC SIGN -020A4 LIRA SIGN -020A5 MILL SIGN -020A6 NAIRA SIGN -020A7 PESETA SIGN -020A8 RUPEE SIGN -020A9 WON SIGN -020AA NEW SHEQEL SIGN -020AB DONG SIGN -020AC EURO SIGN -020AD KIP SIGN -020AE TUGRIK SIGN -020AF DRACHMA SIGN -020B0 GERMAN PENNY SIGN -020B1 PESO SIGN -020B2 GUARANI SIGN -020B3 AUSTRAL SIGN -020B4 HRYVNIA SIGN -020B5 CEDI SIGN -020B6 LIVRE TOURNOIS SIGN -020B7 SPESMILO SIGN -020B8 TENGE SIGN -020B9 INDIAN RUPEE SIGN -020BA TURKISH LIRA SIGN -020BB NORDIC MARK SIGN -020BC MANAT SIGN -020BD RUBLE SIGN -020BE LARI SIGN -020D0 COMBINING LEFT HARPOON ABOVE -020D1 COMBINING RIGHT HARPOON ABOVE -020D2 COMBINING LONG VERTICAL LINE OVERLAY -020D3 COMBINING SHORT VERTICAL LINE OVERLAY -020D4 COMBINING ANTICLOCKWISE ARROW ABOVE -020D5 COMBINING CLOCKWISE ARROW ABOVE -020D6 COMBINING LEFT ARROW ABOVE -020D7 COMBINING RIGHT ARROW ABOVE -020D8 COMBINING RING OVERLAY -020D9 COMBINING CLOCKWISE RING OVERLAY -020DA COMBINING ANTICLOCKWISE RING OVERLAY -020DB COMBINING THREE DOTS ABOVE -020DC COMBINING FOUR DOTS ABOVE -020DD COMBINING ENCLOSING CIRCLE -020DE COMBINING ENCLOSING SQUARE -020DF COMBINING ENCLOSING DIAMOND -020E0 COMBINING ENCLOSING CIRCLE BACKSLASH -020E1 COMBINING LEFT RIGHT ARROW ABOVE -020E2 COMBINING ENCLOSING SCREEN -020E3 COMBINING ENCLOSING KEYCAP -020E4 COMBINING ENCLOSING UPWARD POINTING TRIANGLE -020E5 COMBINING REVERSE SOLIDUS OVERLAY -020E6 COMBINING DOUBLE VERTICAL STROKE OVERLAY -020E7 COMBINING ANNUITY SYMBOL -020E8 COMBINING TRIPLE UNDERDOT -020E9 COMBINING WIDE BRIDGE ABOVE -020EA COMBINING LEFTWARDS ARROW OVERLAY -020EB COMBINING LONG DOUBLE SOLIDUS OVERLAY -020EC COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS -020ED COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS -020EE COMBINING LEFT ARROW BELOW -020EF COMBINING RIGHT ARROW BELOW -020F0 COMBINING ASTERISK ABOVE -02100 ACCOUNT OF -02101 ADDRESSED TO THE SUBJECT -02102 DOUBLE-STRUCK CAPITAL C -02103 DEGREE CELSIUS -02104 CENTRE LINE SYMBOL -02105 CARE OF -02106 CADA UNA -02107 EULER CONSTANT -02108 SCRUPLE -02109 DEGREE FAHRENHEIT -0210A SCRIPT SMALL G -0210B SCRIPT CAPITAL H -0210C BLACK-LETTER CAPITAL H -0210D DOUBLE-STRUCK CAPITAL H -0210E PLANCK CONSTANT -0210F PLANCK CONSTANT OVER TWO PI -02110 SCRIPT CAPITAL I -02111 BLACK-LETTER CAPITAL I -02112 SCRIPT CAPITAL L -02113 SCRIPT SMALL L -02114 L B BAR SYMBOL -02115 DOUBLE-STRUCK CAPITAL N -02116 NUMERO SIGN -02117 SOUND RECORDING COPYRIGHT -02118 WEIERSTRASS ELLIPTIC FUNCTION -02118 SCRIPT CAPITAL P -02119 DOUBLE-STRUCK CAPITAL P -0211A DOUBLE-STRUCK CAPITAL Q -0211B SCRIPT CAPITAL R -0211C BLACK-LETTER CAPITAL R -0211D DOUBLE-STRUCK CAPITAL R -0211E PRESCRIPTION TAKE -0211F RESPONSE -02120 SERVICE MARK -02121 TELEPHONE SIGN -02122 TRADE MARK SIGN -02123 VERSICLE -02124 DOUBLE-STRUCK CAPITAL Z -02125 OUNCE SIGN -02126 OHM SIGN -02127 INVERTED OHM SIGN -02128 BLACK-LETTER CAPITAL Z -02129 TURNED GREEK SMALL LETTER IOTA -0212A KELVIN SIGN -0212B ANGSTROM SIGN -0212C SCRIPT CAPITAL B -0212D BLACK-LETTER CAPITAL C -0212E ESTIMATED SYMBOL -0212F SCRIPT SMALL E -02130 SCRIPT CAPITAL E -02131 SCRIPT CAPITAL F -02132 TURNED CAPITAL F -02133 SCRIPT CAPITAL M -02134 SCRIPT SMALL O -02135 ALEF SYMBOL -02136 BET SYMBOL -02137 GIMEL SYMBOL -02138 DALET SYMBOL -02139 INFORMATION SOURCE -0213A ROTATED CAPITAL Q -0213B FACSIMILE SIGN -0213C DOUBLE-STRUCK SMALL PI -0213D DOUBLE-STRUCK SMALL GAMMA -0213E DOUBLE-STRUCK CAPITAL GAMMA -0213F DOUBLE-STRUCK CAPITAL PI -02140 DOUBLE-STRUCK N-ARY SUMMATION -02141 TURNED SANS-SERIF CAPITAL G -02142 TURNED SANS-SERIF CAPITAL L -02143 REVERSED SANS-SERIF CAPITAL L -02144 TURNED SANS-SERIF CAPITAL Y -02145 DOUBLE-STRUCK ITALIC CAPITAL D -02146 DOUBLE-STRUCK ITALIC SMALL D -02147 DOUBLE-STRUCK ITALIC SMALL E -02148 DOUBLE-STRUCK ITALIC SMALL I -02149 DOUBLE-STRUCK ITALIC SMALL J -0214A PROPERTY LINE -0214B TURNED AMPERSAND -0214C PER SIGN -0214D AKTIESELSKAB -0214E TURNED SMALL F -0214F SYMBOL FOR SAMARITAN SOURCE -02150 VULGAR FRACTION ONE SEVENTH -02151 VULGAR FRACTION ONE NINTH -02152 VULGAR FRACTION ONE TENTH -02153 VULGAR FRACTION ONE THIRD -02154 VULGAR FRACTION TWO THIRDS -02155 VULGAR FRACTION ONE FIFTH -02156 VULGAR FRACTION TWO FIFTHS -02157 VULGAR FRACTION THREE FIFTHS -02158 VULGAR FRACTION FOUR FIFTHS -02159 VULGAR FRACTION ONE SIXTH -0215A VULGAR FRACTION FIVE SIXTHS -0215B VULGAR FRACTION ONE EIGHTH -0215C VULGAR FRACTION THREE EIGHTHS -0215D VULGAR FRACTION FIVE EIGHTHS -0215E VULGAR FRACTION SEVEN EIGHTHS -0215F FRACTION NUMERATOR ONE -02160 ROMAN NUMERAL ONE -02161 ROMAN NUMERAL TWO -02162 ROMAN NUMERAL THREE -02163 ROMAN NUMERAL FOUR -02164 ROMAN NUMERAL FIVE -02165 ROMAN NUMERAL SIX -02166 ROMAN NUMERAL SEVEN -02167 ROMAN NUMERAL EIGHT -02168 ROMAN NUMERAL NINE -02169 ROMAN NUMERAL TEN -0216A ROMAN NUMERAL ELEVEN -0216B ROMAN NUMERAL TWELVE -0216C ROMAN NUMERAL FIFTY -0216D ROMAN NUMERAL ONE HUNDRED -0216E ROMAN NUMERAL FIVE HUNDRED -0216F ROMAN NUMERAL ONE THOUSAND -02170 SMALL ROMAN NUMERAL ONE -02171 SMALL ROMAN NUMERAL TWO -02172 SMALL ROMAN NUMERAL THREE -02173 SMALL ROMAN NUMERAL FOUR -02174 SMALL ROMAN NUMERAL FIVE -02175 SMALL ROMAN NUMERAL SIX -02176 SMALL ROMAN NUMERAL SEVEN -02177 SMALL ROMAN NUMERAL EIGHT -02178 SMALL ROMAN NUMERAL NINE -02179 SMALL ROMAN NUMERAL TEN -0217A SMALL ROMAN NUMERAL ELEVEN -0217B SMALL ROMAN NUMERAL TWELVE -0217C SMALL ROMAN NUMERAL FIFTY -0217D SMALL ROMAN NUMERAL ONE HUNDRED -0217E SMALL ROMAN NUMERAL FIVE HUNDRED -0217F SMALL ROMAN NUMERAL ONE THOUSAND -02180 ROMAN NUMERAL ONE THOUSAND C D -02181 ROMAN NUMERAL FIVE THOUSAND -02182 ROMAN NUMERAL TEN THOUSAND -02183 ROMAN NUMERAL REVERSED ONE HUNDRED -02184 LATIN SMALL LETTER REVERSED C -02185 ROMAN NUMERAL SIX LATE FORM -02186 ROMAN NUMERAL FIFTY EARLY FORM -02187 ROMAN NUMERAL FIFTY THOUSAND -02188 ROMAN NUMERAL ONE HUNDRED THOUSAND -02189 VULGAR FRACTION ZERO THIRDS -0218A TURNED DIGIT TWO -0218B TURNED DIGIT THREE -02190 LEFTWARDS ARROW -02191 UPWARDS ARROW -02192 RIGHTWARDS ARROW -02193 DOWNWARDS ARROW -02194 LEFT RIGHT ARROW -02195 UP DOWN ARROW -02196 NORTH WEST ARROW -02197 NORTH EAST ARROW -02198 SOUTH EAST ARROW -02199 SOUTH WEST ARROW -0219A LEFTWARDS ARROW WITH STROKE -0219B RIGHTWARDS ARROW WITH STROKE -0219C LEFTWARDS WAVE ARROW -0219D RIGHTWARDS WAVE ARROW -0219E LEFTWARDS TWO HEADED ARROW -0219F UPWARDS TWO HEADED ARROW -021A0 RIGHTWARDS TWO HEADED ARROW -021A1 DOWNWARDS TWO HEADED ARROW -021A2 LEFTWARDS ARROW WITH TAIL -021A3 RIGHTWARDS ARROW WITH TAIL -021A4 LEFTWARDS ARROW FROM BAR -021A5 UPWARDS ARROW FROM BAR -021A6 RIGHTWARDS ARROW FROM BAR -021A7 DOWNWARDS ARROW FROM BAR -021A8 UP DOWN ARROW WITH BASE -021A9 LEFTWARDS ARROW WITH HOOK -021AA RIGHTWARDS ARROW WITH HOOK -021AB LEFTWARDS ARROW WITH LOOP -021AC RIGHTWARDS ARROW WITH LOOP -021AD LEFT RIGHT WAVE ARROW -021AE LEFT RIGHT ARROW WITH STROKE -021AF DOWNWARDS ZIGZAG ARROW -021B0 UPWARDS ARROW WITH TIP LEFTWARDS -021B1 UPWARDS ARROW WITH TIP RIGHTWARDS -021B2 DOWNWARDS ARROW WITH TIP LEFTWARDS -021B3 DOWNWARDS ARROW WITH TIP RIGHTWARDS -021B4 RIGHTWARDS ARROW WITH CORNER DOWNWARDS -021B5 DOWNWARDS ARROW WITH CORNER LEFTWARDS -021B6 ANTICLOCKWISE TOP SEMICIRCLE ARROW -021B7 CLOCKWISE TOP SEMICIRCLE ARROW -021B8 NORTH WEST ARROW TO LONG BAR -021B9 LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR -021BA ANTICLOCKWISE OPEN CIRCLE ARROW -021BB CLOCKWISE OPEN CIRCLE ARROW -021BC LEFTWARDS HARPOON WITH BARB UPWARDS -021BD LEFTWARDS HARPOON WITH BARB DOWNWARDS -021BE UPWARDS HARPOON WITH BARB RIGHTWARDS -021BF UPWARDS HARPOON WITH BARB LEFTWARDS -021C0 RIGHTWARDS HARPOON WITH BARB UPWARDS -021C1 RIGHTWARDS HARPOON WITH BARB DOWNWARDS -021C2 DOWNWARDS HARPOON WITH BARB RIGHTWARDS -021C3 DOWNWARDS HARPOON WITH BARB LEFTWARDS -021C4 RIGHTWARDS ARROW OVER LEFTWARDS ARROW -021C5 UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW -021C6 LEFTWARDS ARROW OVER RIGHTWARDS ARROW -021C7 LEFTWARDS PAIRED ARROWS -021C8 UPWARDS PAIRED ARROWS -021C9 RIGHTWARDS PAIRED ARROWS -021CA DOWNWARDS PAIRED ARROWS -021CB LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON -021CC RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON -021CD LEFTWARDS DOUBLE ARROW WITH STROKE -021CE LEFT RIGHT DOUBLE ARROW WITH STROKE -021CF RIGHTWARDS DOUBLE ARROW WITH STROKE -021D0 LEFTWARDS DOUBLE ARROW -021D1 UPWARDS DOUBLE ARROW -021D2 RIGHTWARDS DOUBLE ARROW -021D3 DOWNWARDS DOUBLE ARROW -021D4 LEFT RIGHT DOUBLE ARROW -021D5 UP DOWN DOUBLE ARROW -021D6 NORTH WEST DOUBLE ARROW -021D7 NORTH EAST DOUBLE ARROW -021D8 SOUTH EAST DOUBLE ARROW -021D9 SOUTH WEST DOUBLE ARROW -021DA LEFTWARDS TRIPLE ARROW -021DB RIGHTWARDS TRIPLE ARROW -021DC LEFTWARDS SQUIGGLE ARROW -021DD RIGHTWARDS SQUIGGLE ARROW -021DE UPWARDS ARROW WITH DOUBLE STROKE -021DF DOWNWARDS ARROW WITH DOUBLE STROKE -021E0 LEFTWARDS DASHED ARROW -021E1 UPWARDS DASHED ARROW -021E2 RIGHTWARDS DASHED ARROW -021E3 DOWNWARDS DASHED ARROW -021E4 LEFTWARDS ARROW TO BAR -021E5 RIGHTWARDS ARROW TO BAR -021E6 LEFTWARDS WHITE ARROW -021E7 UPWARDS WHITE ARROW -021E8 RIGHTWARDS WHITE ARROW -021E9 DOWNWARDS WHITE ARROW -021EA UPWARDS WHITE ARROW FROM BAR -021EB UPWARDS WHITE ARROW ON PEDESTAL -021EC UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR -021ED UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR -021EE UPWARDS WHITE DOUBLE ARROW -021EF UPWARDS WHITE DOUBLE ARROW ON PEDESTAL -021F0 RIGHTWARDS WHITE ARROW FROM WALL -021F1 NORTH WEST ARROW TO CORNER -021F2 SOUTH EAST ARROW TO CORNER -021F3 UP DOWN WHITE ARROW -021F4 RIGHT ARROW WITH SMALL CIRCLE -021F5 DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW -021F6 THREE RIGHTWARDS ARROWS -021F7 LEFTWARDS ARROW WITH VERTICAL STROKE -021F8 RIGHTWARDS ARROW WITH VERTICAL STROKE -021F9 LEFT RIGHT ARROW WITH VERTICAL STROKE -021FA LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE -021FB RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE -021FC LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE -021FD LEFTWARDS OPEN-HEADED ARROW -021FE RIGHTWARDS OPEN-HEADED ARROW -021FF LEFT RIGHT OPEN-HEADED ARROW -02200 FOR ALL -02201 COMPLEMENT -02202 PARTIAL DIFFERENTIAL -02203 THERE EXISTS -02204 THERE DOES NOT EXIST -02205 EMPTY SET -02206 INCREMENT -02207 NABLA -02208 ELEMENT OF -02209 NOT AN ELEMENT OF -0220A SMALL ELEMENT OF -0220B CONTAINS AS MEMBER -0220C DOES NOT CONTAIN AS MEMBER -0220D SMALL CONTAINS AS MEMBER -0220E END OF PROOF -0220F N-ARY PRODUCT -02210 N-ARY COPRODUCT -02211 N-ARY SUMMATION -02212 MINUS SIGN -02213 MINUS-OR-PLUS SIGN -02214 DOT PLUS -02215 DIVISION SLASH -02216 SET MINUS -02217 ASTERISK OPERATOR -02218 RING OPERATOR -02219 BULLET OPERATOR -0221A SQUARE ROOT -0221B CUBE ROOT -0221C FOURTH ROOT -0221D PROPORTIONAL TO -0221E INFINITY -0221F RIGHT ANGLE -02220 ANGLE -02221 MEASURED ANGLE -02222 SPHERICAL ANGLE -02223 DIVIDES -02224 DOES NOT DIVIDE -02225 PARALLEL TO -02226 NOT PARALLEL TO -02227 LOGICAL AND -02228 LOGICAL OR -02229 INTERSECTION -0222A UNION -0222B INTEGRAL -0222C DOUBLE INTEGRAL -0222D TRIPLE INTEGRAL -0222E CONTOUR INTEGRAL -0222F SURFACE INTEGRAL -02230 VOLUME INTEGRAL -02231 CLOCKWISE INTEGRAL -02232 CLOCKWISE CONTOUR INTEGRAL -02233 ANTICLOCKWISE CONTOUR INTEGRAL -02234 THEREFORE -02235 BECAUSE -02236 RATIO -02237 PROPORTION -02238 DOT MINUS -02239 EXCESS -0223A GEOMETRIC PROPORTION -0223B HOMOTHETIC -0223C TILDE OPERATOR -0223D REVERSED TILDE -0223E INVERTED LAZY S -0223F SINE WAVE -02240 WREATH PRODUCT -02241 NOT TILDE -02242 MINUS TILDE -02243 ASYMPTOTICALLY EQUAL TO -02244 NOT ASYMPTOTICALLY EQUAL TO -02245 APPROXIMATELY EQUAL TO -02246 APPROXIMATELY BUT NOT ACTUALLY EQUAL TO -02247 NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO -02248 ALMOST EQUAL TO -02249 NOT ALMOST EQUAL TO -0224A ALMOST EQUAL OR EQUAL TO -0224B TRIPLE TILDE -0224C ALL EQUAL TO -0224D EQUIVALENT TO -0224E GEOMETRICALLY EQUIVALENT TO -0224F DIFFERENCE BETWEEN -02250 APPROACHES THE LIMIT -02251 GEOMETRICALLY EQUAL TO -02252 APPROXIMATELY EQUAL TO OR THE IMAGE OF -02253 IMAGE OF OR APPROXIMATELY EQUAL TO -02254 COLON EQUALS -02255 EQUALS COLON -02256 RING IN EQUAL TO -02257 RING EQUAL TO -02258 CORRESPONDS TO -02259 ESTIMATES -0225A EQUIANGULAR TO -0225B STAR EQUALS -0225C DELTA EQUAL TO -0225D EQUAL TO BY DEFINITION -0225E MEASURED BY -0225F QUESTIONED EQUAL TO -02260 NOT EQUAL TO -02261 IDENTICAL TO -02262 NOT IDENTICAL TO -02263 STRICTLY EQUIVALENT TO -02264 LESS-THAN OR EQUAL TO -02265 GREATER-THAN OR EQUAL TO -02266 LESS-THAN OVER EQUAL TO -02267 GREATER-THAN OVER EQUAL TO -02268 LESS-THAN BUT NOT EQUAL TO -02269 GREATER-THAN BUT NOT EQUAL TO -0226A MUCH LESS-THAN -0226B MUCH GREATER-THAN -0226C BETWEEN -0226D NOT EQUIVALENT TO -0226E NOT LESS-THAN -0226F NOT GREATER-THAN -02270 NEITHER LESS-THAN NOR EQUAL TO -02271 NEITHER GREATER-THAN NOR EQUAL TO -02272 LESS-THAN OR EQUIVALENT TO -02273 GREATER-THAN OR EQUIVALENT TO -02274 NEITHER LESS-THAN NOR EQUIVALENT TO -02275 NEITHER GREATER-THAN NOR EQUIVALENT TO -02276 LESS-THAN OR GREATER-THAN -02277 GREATER-THAN OR LESS-THAN -02278 NEITHER LESS-THAN NOR GREATER-THAN -02279 NEITHER GREATER-THAN NOR LESS-THAN -0227A PRECEDES -0227B SUCCEEDS -0227C PRECEDES OR EQUAL TO -0227D SUCCEEDS OR EQUAL TO -0227E PRECEDES OR EQUIVALENT TO -0227F SUCCEEDS OR EQUIVALENT TO -02280 DOES NOT PRECEDE -02281 DOES NOT SUCCEED -02282 SUBSET OF -02283 SUPERSET OF -02284 NOT A SUBSET OF -02285 NOT A SUPERSET OF -02286 SUBSET OF OR EQUAL TO -02287 SUPERSET OF OR EQUAL TO -02288 NEITHER A SUBSET OF NOR EQUAL TO -02289 NEITHER A SUPERSET OF NOR EQUAL TO -0228A SUBSET OF WITH NOT EQUAL TO -0228B SUPERSET OF WITH NOT EQUAL TO -0228C MULTISET -0228D MULTISET MULTIPLICATION -0228E MULTISET UNION -0228F SQUARE IMAGE OF -02290 SQUARE ORIGINAL OF -02291 SQUARE IMAGE OF OR EQUAL TO -02292 SQUARE ORIGINAL OF OR EQUAL TO -02293 SQUARE CAP -02294 SQUARE CUP -02295 CIRCLED PLUS -02296 CIRCLED MINUS -02297 CIRCLED TIMES -02298 CIRCLED DIVISION SLASH -02299 CIRCLED DOT OPERATOR -0229A CIRCLED RING OPERATOR -0229B CIRCLED ASTERISK OPERATOR -0229C CIRCLED EQUALS -0229D CIRCLED DASH -0229E SQUARED PLUS -0229F SQUARED MINUS -022A0 SQUARED TIMES -022A1 SQUARED DOT OPERATOR -022A2 RIGHT TACK -022A3 LEFT TACK -022A4 DOWN TACK -022A5 UP TACK -022A6 ASSERTION -022A7 MODELS -022A8 TRUE -022A9 FORCES -022AA TRIPLE VERTICAL BAR RIGHT TURNSTILE -022AB DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -022AC DOES NOT PROVE -022AD NOT TRUE -022AE DOES NOT FORCE -022AF NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -022B0 PRECEDES UNDER RELATION -022B1 SUCCEEDS UNDER RELATION -022B2 NORMAL SUBGROUP OF -022B3 CONTAINS AS NORMAL SUBGROUP -022B4 NORMAL SUBGROUP OF OR EQUAL TO -022B5 CONTAINS AS NORMAL SUBGROUP OR EQUAL TO -022B6 ORIGINAL OF -022B7 IMAGE OF -022B8 MULTIMAP -022B9 HERMITIAN CONJUGATE MATRIX -022BA INTERCALATE -022BB XOR -022BC NAND -022BD NOR -022BE RIGHT ANGLE WITH ARC -022BF RIGHT TRIANGLE -022C0 N-ARY LOGICAL AND -022C1 N-ARY LOGICAL OR -022C2 N-ARY INTERSECTION -022C3 N-ARY UNION -022C4 DIAMOND OPERATOR -022C5 DOT OPERATOR -022C6 STAR OPERATOR -022C7 DIVISION TIMES -022C8 BOWTIE -022C9 LEFT NORMAL FACTOR SEMIDIRECT PRODUCT -022CA RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT -022CB LEFT SEMIDIRECT PRODUCT -022CC RIGHT SEMIDIRECT PRODUCT -022CD REVERSED TILDE EQUALS -022CE CURLY LOGICAL OR -022CF CURLY LOGICAL AND -022D0 DOUBLE SUBSET -022D1 DOUBLE SUPERSET -022D2 DOUBLE INTERSECTION -022D3 DOUBLE UNION -022D4 PITCHFORK -022D5 EQUAL AND PARALLEL TO -022D6 LESS-THAN WITH DOT -022D7 GREATER-THAN WITH DOT -022D8 VERY MUCH LESS-THAN -022D9 VERY MUCH GREATER-THAN -022DA LESS-THAN EQUAL TO OR GREATER-THAN -022DB GREATER-THAN EQUAL TO OR LESS-THAN -022DC EQUAL TO OR LESS-THAN -022DD EQUAL TO OR GREATER-THAN -022DE EQUAL TO OR PRECEDES -022DF EQUAL TO OR SUCCEEDS -022E0 DOES NOT PRECEDE OR EQUAL -022E1 DOES NOT SUCCEED OR EQUAL -022E2 NOT SQUARE IMAGE OF OR EQUAL TO -022E3 NOT SQUARE ORIGINAL OF OR EQUAL TO -022E4 SQUARE IMAGE OF OR NOT EQUAL TO -022E5 SQUARE ORIGINAL OF OR NOT EQUAL TO -022E6 LESS-THAN BUT NOT EQUIVALENT TO -022E7 GREATER-THAN BUT NOT EQUIVALENT TO -022E8 PRECEDES BUT NOT EQUIVALENT TO -022E9 SUCCEEDS BUT NOT EQUIVALENT TO -022EA NOT NORMAL SUBGROUP OF -022EB DOES NOT CONTAIN AS NORMAL SUBGROUP -022EC NOT NORMAL SUBGROUP OF OR EQUAL TO -022ED DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL -022EE VERTICAL ELLIPSIS -022EF MIDLINE HORIZONTAL ELLIPSIS -022F0 UP RIGHT DIAGONAL ELLIPSIS -022F1 DOWN RIGHT DIAGONAL ELLIPSIS -022F2 ELEMENT OF WITH LONG HORIZONTAL STROKE -022F3 ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE -022F4 SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE -022F5 ELEMENT OF WITH DOT ABOVE -022F6 ELEMENT OF WITH OVERBAR -022F7 SMALL ELEMENT OF WITH OVERBAR -022F8 ELEMENT OF WITH UNDERBAR -022F9 ELEMENT OF WITH TWO HORIZONTAL STROKES -022FA CONTAINS WITH LONG HORIZONTAL STROKE -022FB CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE -022FC SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE -022FD CONTAINS WITH OVERBAR -022FE SMALL CONTAINS WITH OVERBAR -022FF Z NOTATION BAG MEMBERSHIP -02300 DIAMETER SIGN -02301 ELECTRIC ARROW -02302 HOUSE -02303 UP ARROWHEAD -02304 DOWN ARROWHEAD -02305 PROJECTIVE -02306 PERSPECTIVE -02307 WAVY LINE -02308 LEFT CEILING -02309 RIGHT CEILING -0230A LEFT FLOOR -0230B RIGHT FLOOR -0230C BOTTOM RIGHT CROP -0230D BOTTOM LEFT CROP -0230E TOP RIGHT CROP -0230F TOP LEFT CROP -02310 REVERSED NOT SIGN -02311 SQUARE LOZENGE -02312 ARC -02313 SEGMENT -02314 SECTOR -02315 TELEPHONE RECORDER -02316 POSITION INDICATOR -02317 VIEWDATA SQUARE -02318 PLACE OF INTEREST SIGN -02319 TURNED NOT SIGN -0231A WATCH -0231B HOURGLASS -0231C TOP LEFT CORNER -0231D TOP RIGHT CORNER -0231E BOTTOM LEFT CORNER -0231F BOTTOM RIGHT CORNER -02320 TOP HALF INTEGRAL -02321 BOTTOM HALF INTEGRAL -02322 FROWN -02323 SMILE -02324 UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS -02325 OPTION KEY -02326 ERASE TO THE RIGHT -02327 X IN A RECTANGLE BOX -02328 KEYBOARD -02329 LEFT-POINTING ANGLE BRACKET -0232A RIGHT-POINTING ANGLE BRACKET -0232B ERASE TO THE LEFT -0232C BENZENE RING -0232D CYLINDRICITY -0232E ALL AROUND-PROFILE -0232F SYMMETRY -02330 TOTAL RUNOUT -02331 DIMENSION ORIGIN -02332 CONICAL TAPER -02333 SLOPE -02334 COUNTERBORE -02335 COUNTERSINK -02336 APL FUNCTIONAL SYMBOL I-BEAM -02337 APL FUNCTIONAL SYMBOL SQUISH QUAD -02338 APL FUNCTIONAL SYMBOL QUAD EQUAL -02339 APL FUNCTIONAL SYMBOL QUAD DIVIDE -0233A APL FUNCTIONAL SYMBOL QUAD DIAMOND -0233B APL FUNCTIONAL SYMBOL QUAD JOT -0233C APL FUNCTIONAL SYMBOL QUAD CIRCLE -0233D APL FUNCTIONAL SYMBOL CIRCLE STILE -0233E APL FUNCTIONAL SYMBOL CIRCLE JOT -0233F APL FUNCTIONAL SYMBOL SLASH BAR -02340 APL FUNCTIONAL SYMBOL BACKSLASH BAR -02341 APL FUNCTIONAL SYMBOL QUAD SLASH -02342 APL FUNCTIONAL SYMBOL QUAD BACKSLASH -02343 APL FUNCTIONAL SYMBOL QUAD LESS-THAN -02344 APL FUNCTIONAL SYMBOL QUAD GREATER-THAN -02345 APL FUNCTIONAL SYMBOL LEFTWARDS VANE -02346 APL FUNCTIONAL SYMBOL RIGHTWARDS VANE -02347 APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW -02348 APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW -02349 APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH -0234A APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR -0234B APL FUNCTIONAL SYMBOL DELTA STILE -0234C APL FUNCTIONAL SYMBOL QUAD DOWN CARET -0234D APL FUNCTIONAL SYMBOL QUAD DELTA -0234E APL FUNCTIONAL SYMBOL DOWN TACK JOT -0234F APL FUNCTIONAL SYMBOL UPWARDS VANE -02350 APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW -02351 APL FUNCTIONAL SYMBOL UP TACK OVERBAR -02352 APL FUNCTIONAL SYMBOL DEL STILE -02353 APL FUNCTIONAL SYMBOL QUAD UP CARET -02354 APL FUNCTIONAL SYMBOL QUAD DEL -02355 APL FUNCTIONAL SYMBOL UP TACK JOT -02356 APL FUNCTIONAL SYMBOL DOWNWARDS VANE -02357 APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW -02358 APL FUNCTIONAL SYMBOL QUOTE UNDERBAR -02359 APL FUNCTIONAL SYMBOL DELTA UNDERBAR -0235A APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR -0235B APL FUNCTIONAL SYMBOL JOT UNDERBAR -0235C APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR -0235D APL FUNCTIONAL SYMBOL UP SHOE JOT -0235E APL FUNCTIONAL SYMBOL QUOTE QUAD -0235F APL FUNCTIONAL SYMBOL CIRCLE STAR -02360 APL FUNCTIONAL SYMBOL QUAD COLON -02361 APL FUNCTIONAL SYMBOL UP TACK DIAERESIS -02362 APL FUNCTIONAL SYMBOL DEL DIAERESIS -02363 APL FUNCTIONAL SYMBOL STAR DIAERESIS -02364 APL FUNCTIONAL SYMBOL JOT DIAERESIS -02365 APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS -02366 APL FUNCTIONAL SYMBOL DOWN SHOE STILE -02367 APL FUNCTIONAL SYMBOL LEFT SHOE STILE -02368 APL FUNCTIONAL SYMBOL TILDE DIAERESIS -02369 APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS -0236A APL FUNCTIONAL SYMBOL COMMA BAR -0236B APL FUNCTIONAL SYMBOL DEL TILDE -0236C APL FUNCTIONAL SYMBOL ZILDE -0236D APL FUNCTIONAL SYMBOL STILE TILDE -0236E APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR -0236F APL FUNCTIONAL SYMBOL QUAD NOT EQUAL -02370 APL FUNCTIONAL SYMBOL QUAD QUESTION -02371 APL FUNCTIONAL SYMBOL DOWN CARET TILDE -02372 APL FUNCTIONAL SYMBOL UP CARET TILDE -02373 APL FUNCTIONAL SYMBOL IOTA -02374 APL FUNCTIONAL SYMBOL RHO -02375 APL FUNCTIONAL SYMBOL OMEGA -02376 APL FUNCTIONAL SYMBOL ALPHA UNDERBAR -02377 APL FUNCTIONAL SYMBOL EPSILON UNDERBAR -02378 APL FUNCTIONAL SYMBOL IOTA UNDERBAR -02379 APL FUNCTIONAL SYMBOL OMEGA UNDERBAR -0237A APL FUNCTIONAL SYMBOL ALPHA -0237B NOT CHECK MARK -0237C RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW -0237D SHOULDERED OPEN BOX -0237E BELL SYMBOL -0237F VERTICAL LINE WITH MIDDLE DOT -02380 INSERTION SYMBOL -02381 CONTINUOUS UNDERLINE SYMBOL -02382 DISCONTINUOUS UNDERLINE SYMBOL -02383 EMPHASIS SYMBOL -02384 COMPOSITION SYMBOL -02385 WHITE SQUARE WITH CENTRE VERTICAL LINE -02386 ENTER SYMBOL -02387 ALTERNATIVE KEY SYMBOL -02388 HELM SYMBOL -02389 CIRCLED HORIZONTAL BAR WITH NOTCH -0238A CIRCLED TRIANGLE DOWN -0238B BROKEN CIRCLE WITH NORTHWEST ARROW -0238C UNDO SYMBOL -0238D MONOSTABLE SYMBOL -0238E HYSTERESIS SYMBOL -0238F OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL -02390 OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL -02391 PASSIVE-PULL-DOWN-OUTPUT SYMBOL -02392 PASSIVE-PULL-UP-OUTPUT SYMBOL -02393 DIRECT CURRENT SYMBOL FORM TWO -02394 SOFTWARE-FUNCTION SYMBOL -02395 APL FUNCTIONAL SYMBOL QUAD -02396 DECIMAL SEPARATOR KEY SYMBOL -02397 PREVIOUS PAGE -02398 NEXT PAGE -02399 PRINT SCREEN SYMBOL -0239A CLEAR SCREEN SYMBOL -0239B LEFT PARENTHESIS UPPER HOOK -0239C LEFT PARENTHESIS EXTENSION -0239D LEFT PARENTHESIS LOWER HOOK -0239E RIGHT PARENTHESIS UPPER HOOK -0239F RIGHT PARENTHESIS EXTENSION -023A0 RIGHT PARENTHESIS LOWER HOOK -023A1 LEFT SQUARE BRACKET UPPER CORNER -023A2 LEFT SQUARE BRACKET EXTENSION -023A3 LEFT SQUARE BRACKET LOWER CORNER -023A4 RIGHT SQUARE BRACKET UPPER CORNER -023A5 RIGHT SQUARE BRACKET EXTENSION -023A6 RIGHT SQUARE BRACKET LOWER CORNER -023A7 LEFT CURLY BRACKET UPPER HOOK -023A8 LEFT CURLY BRACKET MIDDLE PIECE -023A9 LEFT CURLY BRACKET LOWER HOOK -023AA CURLY BRACKET EXTENSION -023AB RIGHT CURLY BRACKET UPPER HOOK -023AC RIGHT CURLY BRACKET MIDDLE PIECE -023AD RIGHT CURLY BRACKET LOWER HOOK -023AE INTEGRAL EXTENSION -023AF HORIZONTAL LINE EXTENSION -023B0 UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION -023B1 UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION -023B2 SUMMATION TOP -023B3 SUMMATION BOTTOM -023B4 TOP SQUARE BRACKET -023B5 BOTTOM SQUARE BRACKET -023B6 BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET -023B7 RADICAL SYMBOL BOTTOM -023B8 LEFT VERTICAL BOX LINE -023B9 RIGHT VERTICAL BOX LINE -023BA HORIZONTAL SCAN LINE-1 -023BB HORIZONTAL SCAN LINE-3 -023BC HORIZONTAL SCAN LINE-7 -023BD HORIZONTAL SCAN LINE-9 -023BE DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT -023BF DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT -023C0 DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE -023C1 DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE -023C2 DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE -023C3 DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE -023C4 DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE -023C5 DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE -023C6 DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE -023C7 DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE -023C8 DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE -023C9 DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL -023CA DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL -023CB DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT -023CC DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT -023CD SQUARE FOOT -023CE RETURN SYMBOL -023CF EJECT SYMBOL -023D0 VERTICAL LINE EXTENSION -023D1 METRICAL BREVE -023D2 METRICAL LONG OVER SHORT -023D3 METRICAL SHORT OVER LONG -023D4 METRICAL LONG OVER TWO SHORTS -023D5 METRICAL TWO SHORTS OVER LONG -023D6 METRICAL TWO SHORTS JOINED -023D7 METRICAL TRISEME -023D8 METRICAL TETRASEME -023D9 METRICAL PENTASEME -023DA EARTH GROUND -023DB FUSE -023DC TOP PARENTHESIS -023DD BOTTOM PARENTHESIS -023DE TOP CURLY BRACKET -023DF BOTTOM CURLY BRACKET -023E0 TOP TORTOISE SHELL BRACKET -023E1 BOTTOM TORTOISE SHELL BRACKET -023E2 WHITE TRAPEZIUM -023E3 BENZENE RING WITH CIRCLE -023E4 STRAIGHTNESS -023E5 FLATNESS -023E6 AC CURRENT -023E7 ELECTRICAL INTERSECTION -023E8 DECIMAL EXPONENT SYMBOL -023E9 BLACK RIGHT-POINTING DOUBLE TRIANGLE -023EA BLACK LEFT-POINTING DOUBLE TRIANGLE -023EB BLACK UP-POINTING DOUBLE TRIANGLE -023EC BLACK DOWN-POINTING DOUBLE TRIANGLE -023ED BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR -023EE BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR -023EF BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR -023F0 ALARM CLOCK -023F1 STOPWATCH -023F2 TIMER CLOCK -023F3 HOURGLASS WITH FLOWING SAND -023F4 BLACK MEDIUM LEFT-POINTING TRIANGLE -023F5 BLACK MEDIUM RIGHT-POINTING TRIANGLE -023F6 BLACK MEDIUM UP-POINTING TRIANGLE -023F7 BLACK MEDIUM DOWN-POINTING TRIANGLE -023F8 DOUBLE VERTICAL BAR -023F9 BLACK SQUARE FOR STOP -023FA BLACK CIRCLE FOR RECORD -02400 SYMBOL FOR NULL -02401 SYMBOL FOR START OF HEADING -02402 SYMBOL FOR START OF TEXT -02403 SYMBOL FOR END OF TEXT -02404 SYMBOL FOR END OF TRANSMISSION -02405 SYMBOL FOR ENQUIRY -02406 SYMBOL FOR ACKNOWLEDGE -02407 SYMBOL FOR BELL -02408 SYMBOL FOR BACKSPACE -02409 SYMBOL FOR HORIZONTAL TABULATION -0240A SYMBOL FOR LINE FEED -0240B SYMBOL FOR VERTICAL TABULATION -0240C SYMBOL FOR FORM FEED -0240D SYMBOL FOR CARRIAGE RETURN -0240E SYMBOL FOR SHIFT OUT -0240F SYMBOL FOR SHIFT IN -02410 SYMBOL FOR DATA LINK ESCAPE -02411 SYMBOL FOR DEVICE CONTROL ONE -02412 SYMBOL FOR DEVICE CONTROL TWO -02413 SYMBOL FOR DEVICE CONTROL THREE -02414 SYMBOL FOR DEVICE CONTROL FOUR -02415 SYMBOL FOR NEGATIVE ACKNOWLEDGE -02416 SYMBOL FOR SYNCHRONOUS IDLE -02417 SYMBOL FOR END OF TRANSMISSION BLOCK -02418 SYMBOL FOR CANCEL -02419 SYMBOL FOR END OF MEDIUM -0241A SYMBOL FOR SUBSTITUTE -0241B SYMBOL FOR ESCAPE -0241C SYMBOL FOR FILE SEPARATOR -0241D SYMBOL FOR GROUP SEPARATOR -0241E SYMBOL FOR RECORD SEPARATOR -0241F SYMBOL FOR UNIT SEPARATOR -02420 SYMBOL FOR SPACE -02421 SYMBOL FOR DELETE -02422 BLANK SYMBOL -02423 OPEN BOX -02424 SYMBOL FOR NEWLINE -02425 SYMBOL FOR DELETE FORM TWO -02426 SYMBOL FOR SUBSTITUTE FORM TWO -02440 OCR HOOK -02441 OCR CHAIR -02442 OCR FORK -02443 OCR INVERTED FORK -02444 OCR BELT BUCKLE -02445 OCR BOW TIE -02446 OCR BRANCH BANK IDENTIFICATION -02447 OCR AMOUNT OF CHECK -02448 MICR ON US SYMBOL -02448 OCR DASH -02449 MICR DASH SYMBOL -02449 OCR CUSTOMER ACCOUNT NUMBER -0244A OCR DOUBLE BACKSLASH -02460 CIRCLED DIGIT ONE -02461 CIRCLED DIGIT TWO -02462 CIRCLED DIGIT THREE -02463 CIRCLED DIGIT FOUR -02464 CIRCLED DIGIT FIVE -02465 CIRCLED DIGIT SIX -02466 CIRCLED DIGIT SEVEN -02467 CIRCLED DIGIT EIGHT -02468 CIRCLED DIGIT NINE -02469 CIRCLED NUMBER TEN -0246A CIRCLED NUMBER ELEVEN -0246B CIRCLED NUMBER TWELVE -0246C CIRCLED NUMBER THIRTEEN -0246D CIRCLED NUMBER FOURTEEN -0246E CIRCLED NUMBER FIFTEEN -0246F CIRCLED NUMBER SIXTEEN -02470 CIRCLED NUMBER SEVENTEEN -02471 CIRCLED NUMBER EIGHTEEN -02472 CIRCLED NUMBER NINETEEN -02473 CIRCLED NUMBER TWENTY -02474 PARENTHESIZED DIGIT ONE -02475 PARENTHESIZED DIGIT TWO -02476 PARENTHESIZED DIGIT THREE -02477 PARENTHESIZED DIGIT FOUR -02478 PARENTHESIZED DIGIT FIVE -02479 PARENTHESIZED DIGIT SIX -0247A PARENTHESIZED DIGIT SEVEN -0247B PARENTHESIZED DIGIT EIGHT -0247C PARENTHESIZED DIGIT NINE -0247D PARENTHESIZED NUMBER TEN -0247E PARENTHESIZED NUMBER ELEVEN -0247F PARENTHESIZED NUMBER TWELVE -02480 PARENTHESIZED NUMBER THIRTEEN -02481 PARENTHESIZED NUMBER FOURTEEN -02482 PARENTHESIZED NUMBER FIFTEEN -02483 PARENTHESIZED NUMBER SIXTEEN -02484 PARENTHESIZED NUMBER SEVENTEEN -02485 PARENTHESIZED NUMBER EIGHTEEN -02486 PARENTHESIZED NUMBER NINETEEN -02487 PARENTHESIZED NUMBER TWENTY -02488 DIGIT ONE FULL STOP -02489 DIGIT TWO FULL STOP -0248A DIGIT THREE FULL STOP -0248B DIGIT FOUR FULL STOP -0248C DIGIT FIVE FULL STOP -0248D DIGIT SIX FULL STOP -0248E DIGIT SEVEN FULL STOP -0248F DIGIT EIGHT FULL STOP -02490 DIGIT NINE FULL STOP -02491 NUMBER TEN FULL STOP -02492 NUMBER ELEVEN FULL STOP -02493 NUMBER TWELVE FULL STOP -02494 NUMBER THIRTEEN FULL STOP -02495 NUMBER FOURTEEN FULL STOP -02496 NUMBER FIFTEEN FULL STOP -02497 NUMBER SIXTEEN FULL STOP -02498 NUMBER SEVENTEEN FULL STOP -02499 NUMBER EIGHTEEN FULL STOP -0249A NUMBER NINETEEN FULL STOP -0249B NUMBER TWENTY FULL STOP -0249C PARENTHESIZED LATIN SMALL LETTER A -0249D PARENTHESIZED LATIN SMALL LETTER B -0249E PARENTHESIZED LATIN SMALL LETTER C -0249F PARENTHESIZED LATIN SMALL LETTER D -024A0 PARENTHESIZED LATIN SMALL LETTER E -024A1 PARENTHESIZED LATIN SMALL LETTER F -024A2 PARENTHESIZED LATIN SMALL LETTER G -024A3 PARENTHESIZED LATIN SMALL LETTER H -024A4 PARENTHESIZED LATIN SMALL LETTER I -024A5 PARENTHESIZED LATIN SMALL LETTER J -024A6 PARENTHESIZED LATIN SMALL LETTER K -024A7 PARENTHESIZED LATIN SMALL LETTER L -024A8 PARENTHESIZED LATIN SMALL LETTER M -024A9 PARENTHESIZED LATIN SMALL LETTER N -024AA PARENTHESIZED LATIN SMALL LETTER O -024AB PARENTHESIZED LATIN SMALL LETTER P -024AC PARENTHESIZED LATIN SMALL LETTER Q -024AD PARENTHESIZED LATIN SMALL LETTER R -024AE PARENTHESIZED LATIN SMALL LETTER S -024AF PARENTHESIZED LATIN SMALL LETTER T -024B0 PARENTHESIZED LATIN SMALL LETTER U -024B1 PARENTHESIZED LATIN SMALL LETTER V -024B2 PARENTHESIZED LATIN SMALL LETTER W -024B3 PARENTHESIZED LATIN SMALL LETTER X -024B4 PARENTHESIZED LATIN SMALL LETTER Y -024B5 PARENTHESIZED LATIN SMALL LETTER Z -024B6 CIRCLED LATIN CAPITAL LETTER A -024B7 CIRCLED LATIN CAPITAL LETTER B -024B8 CIRCLED LATIN CAPITAL LETTER C -024B9 CIRCLED LATIN CAPITAL LETTER D -024BA CIRCLED LATIN CAPITAL LETTER E -024BB CIRCLED LATIN CAPITAL LETTER F -024BC CIRCLED LATIN CAPITAL LETTER G -024BD CIRCLED LATIN CAPITAL LETTER H -024BE CIRCLED LATIN CAPITAL LETTER I -024BF CIRCLED LATIN CAPITAL LETTER J -024C0 CIRCLED LATIN CAPITAL LETTER K -024C1 CIRCLED LATIN CAPITAL LETTER L -024C2 CIRCLED LATIN CAPITAL LETTER M -024C3 CIRCLED LATIN CAPITAL LETTER N -024C4 CIRCLED LATIN CAPITAL LETTER O -024C5 CIRCLED LATIN CAPITAL LETTER P -024C6 CIRCLED LATIN CAPITAL LETTER Q -024C7 CIRCLED LATIN CAPITAL LETTER R -024C8 CIRCLED LATIN CAPITAL LETTER S -024C9 CIRCLED LATIN CAPITAL LETTER T -024CA CIRCLED LATIN CAPITAL LETTER U -024CB CIRCLED LATIN CAPITAL LETTER V -024CC CIRCLED LATIN CAPITAL LETTER W -024CD CIRCLED LATIN CAPITAL LETTER X -024CE CIRCLED LATIN CAPITAL LETTER Y -024CF CIRCLED LATIN CAPITAL LETTER Z -024D0 CIRCLED LATIN SMALL LETTER A -024D1 CIRCLED LATIN SMALL LETTER B -024D2 CIRCLED LATIN SMALL LETTER C -024D3 CIRCLED LATIN SMALL LETTER D -024D4 CIRCLED LATIN SMALL LETTER E -024D5 CIRCLED LATIN SMALL LETTER F -024D6 CIRCLED LATIN SMALL LETTER G -024D7 CIRCLED LATIN SMALL LETTER H -024D8 CIRCLED LATIN SMALL LETTER I -024D9 CIRCLED LATIN SMALL LETTER J -024DA CIRCLED LATIN SMALL LETTER K -024DB CIRCLED LATIN SMALL LETTER L -024DC CIRCLED LATIN SMALL LETTER M -024DD CIRCLED LATIN SMALL LETTER N -024DE CIRCLED LATIN SMALL LETTER O -024DF CIRCLED LATIN SMALL LETTER P -024E0 CIRCLED LATIN SMALL LETTER Q -024E1 CIRCLED LATIN SMALL LETTER R -024E2 CIRCLED LATIN SMALL LETTER S -024E3 CIRCLED LATIN SMALL LETTER T -024E4 CIRCLED LATIN SMALL LETTER U -024E5 CIRCLED LATIN SMALL LETTER V -024E6 CIRCLED LATIN SMALL LETTER W -024E7 CIRCLED LATIN SMALL LETTER X -024E8 CIRCLED LATIN SMALL LETTER Y -024E9 CIRCLED LATIN SMALL LETTER Z -024EA CIRCLED DIGIT ZERO -024EB NEGATIVE CIRCLED NUMBER ELEVEN -024EC NEGATIVE CIRCLED NUMBER TWELVE -024ED NEGATIVE CIRCLED NUMBER THIRTEEN -024EE NEGATIVE CIRCLED NUMBER FOURTEEN -024EF NEGATIVE CIRCLED NUMBER FIFTEEN -024F0 NEGATIVE CIRCLED NUMBER SIXTEEN -024F1 NEGATIVE CIRCLED NUMBER SEVENTEEN -024F2 NEGATIVE CIRCLED NUMBER EIGHTEEN -024F3 NEGATIVE CIRCLED NUMBER NINETEEN -024F4 NEGATIVE CIRCLED NUMBER TWENTY -024F5 DOUBLE CIRCLED DIGIT ONE -024F6 DOUBLE CIRCLED DIGIT TWO -024F7 DOUBLE CIRCLED DIGIT THREE -024F8 DOUBLE CIRCLED DIGIT FOUR -024F9 DOUBLE CIRCLED DIGIT FIVE -024FA DOUBLE CIRCLED DIGIT SIX -024FB DOUBLE CIRCLED DIGIT SEVEN -024FC DOUBLE CIRCLED DIGIT EIGHT -024FD DOUBLE CIRCLED DIGIT NINE -024FE DOUBLE CIRCLED NUMBER TEN -024FF NEGATIVE CIRCLED DIGIT ZERO -02500 BOX DRAWINGS LIGHT HORIZONTAL -02501 BOX DRAWINGS HEAVY HORIZONTAL -02502 BOX DRAWINGS LIGHT VERTICAL -02503 BOX DRAWINGS HEAVY VERTICAL -02504 BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL -02505 BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL -02506 BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL -02507 BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL -02508 BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL -02509 BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL -0250A BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL -0250B BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL -0250C BOX DRAWINGS LIGHT DOWN AND RIGHT -0250D BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY -0250E BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT -0250F BOX DRAWINGS HEAVY DOWN AND RIGHT -02510 BOX DRAWINGS LIGHT DOWN AND LEFT -02511 BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY -02512 BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT -02513 BOX DRAWINGS HEAVY DOWN AND LEFT -02514 BOX DRAWINGS LIGHT UP AND RIGHT -02515 BOX DRAWINGS UP LIGHT AND RIGHT HEAVY -02516 BOX DRAWINGS UP HEAVY AND RIGHT LIGHT -02517 BOX DRAWINGS HEAVY UP AND RIGHT -02518 BOX DRAWINGS LIGHT UP AND LEFT -02519 BOX DRAWINGS UP LIGHT AND LEFT HEAVY -0251A BOX DRAWINGS UP HEAVY AND LEFT LIGHT -0251B BOX DRAWINGS HEAVY UP AND LEFT -0251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT -0251D BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY -0251E BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT -0251F BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT -02520 BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT -02521 BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY -02522 BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY -02523 BOX DRAWINGS HEAVY VERTICAL AND RIGHT -02524 BOX DRAWINGS LIGHT VERTICAL AND LEFT -02525 BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY -02526 BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT -02527 BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT -02528 BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT -02529 BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY -0252A BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY -0252B BOX DRAWINGS HEAVY VERTICAL AND LEFT -0252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -0252D BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT -0252E BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT -0252F BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY -02530 BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT -02531 BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY -02532 BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY -02533 BOX DRAWINGS HEAVY DOWN AND HORIZONTAL -02534 BOX DRAWINGS LIGHT UP AND HORIZONTAL -02535 BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT -02536 BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT -02537 BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY -02538 BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT -02539 BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY -0253A BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY -0253B BOX DRAWINGS HEAVY UP AND HORIZONTAL -0253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -0253D BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT -0253E BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT -0253F BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY -02540 BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT -02541 BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT -02542 BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT -02543 BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT -02544 BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT -02545 BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT -02546 BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT -02547 BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY -02548 BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY -02549 BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY -0254A BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY -0254B BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL -0254C BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL -0254D BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL -0254E BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL -0254F BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL -02550 BOX DRAWINGS DOUBLE HORIZONTAL -02551 BOX DRAWINGS DOUBLE VERTICAL -02552 BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -02553 BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -02554 BOX DRAWINGS DOUBLE DOWN AND RIGHT -02555 BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE -02556 BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -02557 BOX DRAWINGS DOUBLE DOWN AND LEFT -02558 BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE -02559 BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -0255A BOX DRAWINGS DOUBLE UP AND RIGHT -0255B BOX DRAWINGS UP SINGLE AND LEFT DOUBLE -0255C BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -0255D BOX DRAWINGS DOUBLE UP AND LEFT -0255E BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -0255F BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -02560 BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -02561 BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -02562 BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -02563 BOX DRAWINGS DOUBLE VERTICAL AND LEFT -02564 BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -02565 BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -02566 BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -02567 BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -02568 BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -02569 BOX DRAWINGS DOUBLE UP AND HORIZONTAL -0256A BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -0256B BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -0256C BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -0256D BOX DRAWINGS LIGHT ARC DOWN AND RIGHT -0256E BOX DRAWINGS LIGHT ARC DOWN AND LEFT -0256F BOX DRAWINGS LIGHT ARC UP AND LEFT -02570 BOX DRAWINGS LIGHT ARC UP AND RIGHT -02571 BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT -02572 BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT -02573 BOX DRAWINGS LIGHT DIAGONAL CROSS -02574 BOX DRAWINGS LIGHT LEFT -02575 BOX DRAWINGS LIGHT UP -02576 BOX DRAWINGS LIGHT RIGHT -02577 BOX DRAWINGS LIGHT DOWN -02578 BOX DRAWINGS HEAVY LEFT -02579 BOX DRAWINGS HEAVY UP -0257A BOX DRAWINGS HEAVY RIGHT -0257B BOX DRAWINGS HEAVY DOWN -0257C BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT -0257D BOX DRAWINGS LIGHT UP AND HEAVY DOWN -0257E BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT -0257F BOX DRAWINGS HEAVY UP AND LIGHT DOWN -02580 UPPER HALF BLOCK -02581 LOWER ONE EIGHTH BLOCK -02582 LOWER ONE QUARTER BLOCK -02583 LOWER THREE EIGHTHS BLOCK -02584 LOWER HALF BLOCK -02585 LOWER FIVE EIGHTHS BLOCK -02586 LOWER THREE QUARTERS BLOCK -02587 LOWER SEVEN EIGHTHS BLOCK -02588 FULL BLOCK -02589 LEFT SEVEN EIGHTHS BLOCK -0258A LEFT THREE QUARTERS BLOCK -0258B LEFT FIVE EIGHTHS BLOCK -0258C LEFT HALF BLOCK -0258D LEFT THREE EIGHTHS BLOCK -0258E LEFT ONE QUARTER BLOCK -0258F LEFT ONE EIGHTH BLOCK -02590 RIGHT HALF BLOCK -02591 LIGHT SHADE -02592 MEDIUM SHADE -02593 DARK SHADE -02594 UPPER ONE EIGHTH BLOCK -02595 RIGHT ONE EIGHTH BLOCK -02596 QUADRANT LOWER LEFT -02597 QUADRANT LOWER RIGHT -02598 QUADRANT UPPER LEFT -02599 QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT -0259A QUADRANT UPPER LEFT AND LOWER RIGHT -0259B QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT -0259C QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT -0259D QUADRANT UPPER RIGHT -0259E QUADRANT UPPER RIGHT AND LOWER LEFT -0259F QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT -025A0 BLACK SQUARE -025A1 WHITE SQUARE -025A2 WHITE SQUARE WITH ROUNDED CORNERS -025A3 WHITE SQUARE CONTAINING BLACK SMALL SQUARE -025A4 SQUARE WITH HORIZONTAL FILL -025A5 SQUARE WITH VERTICAL FILL -025A6 SQUARE WITH ORTHOGONAL CROSSHATCH FILL -025A7 SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL -025A8 SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL -025A9 SQUARE WITH DIAGONAL CROSSHATCH FILL -025AA BLACK SMALL SQUARE -025AB WHITE SMALL SQUARE -025AC BLACK RECTANGLE -025AD WHITE RECTANGLE -025AE BLACK VERTICAL RECTANGLE -025AF WHITE VERTICAL RECTANGLE -025B0 BLACK PARALLELOGRAM -025B1 WHITE PARALLELOGRAM -025B2 BLACK UP-POINTING TRIANGLE -025B3 WHITE UP-POINTING TRIANGLE -025B4 BLACK UP-POINTING SMALL TRIANGLE -025B5 WHITE UP-POINTING SMALL TRIANGLE -025B6 BLACK RIGHT-POINTING TRIANGLE -025B7 WHITE RIGHT-POINTING TRIANGLE -025B8 BLACK RIGHT-POINTING SMALL TRIANGLE -025B9 WHITE RIGHT-POINTING SMALL TRIANGLE -025BA BLACK RIGHT-POINTING POINTER -025BB WHITE RIGHT-POINTING POINTER -025BC BLACK DOWN-POINTING TRIANGLE -025BD WHITE DOWN-POINTING TRIANGLE -025BE BLACK DOWN-POINTING SMALL TRIANGLE -025BF WHITE DOWN-POINTING SMALL TRIANGLE -025C0 BLACK LEFT-POINTING TRIANGLE -025C1 WHITE LEFT-POINTING TRIANGLE -025C2 BLACK LEFT-POINTING SMALL TRIANGLE -025C3 WHITE LEFT-POINTING SMALL TRIANGLE -025C4 BLACK LEFT-POINTING POINTER -025C5 WHITE LEFT-POINTING POINTER -025C6 BLACK DIAMOND -025C7 WHITE DIAMOND -025C8 WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND -025C9 FISHEYE -025CA LOZENGE -025CB WHITE CIRCLE -025CC DOTTED CIRCLE -025CD CIRCLE WITH VERTICAL FILL -025CE BULLSEYE -025CF BLACK CIRCLE -025D0 CIRCLE WITH LEFT HALF BLACK -025D1 CIRCLE WITH RIGHT HALF BLACK -025D2 CIRCLE WITH LOWER HALF BLACK -025D3 CIRCLE WITH UPPER HALF BLACK -025D4 CIRCLE WITH UPPER RIGHT QUADRANT BLACK -025D5 CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK -025D6 LEFT HALF BLACK CIRCLE -025D7 RIGHT HALF BLACK CIRCLE -025D8 INVERSE BULLET -025D9 INVERSE WHITE CIRCLE -025DA UPPER HALF INVERSE WHITE CIRCLE -025DB LOWER HALF INVERSE WHITE CIRCLE -025DC UPPER LEFT QUADRANT CIRCULAR ARC -025DD UPPER RIGHT QUADRANT CIRCULAR ARC -025DE LOWER RIGHT QUADRANT CIRCULAR ARC -025DF LOWER LEFT QUADRANT CIRCULAR ARC -025E0 UPPER HALF CIRCLE -025E1 LOWER HALF CIRCLE -025E2 BLACK LOWER RIGHT TRIANGLE -025E3 BLACK LOWER LEFT TRIANGLE -025E4 BLACK UPPER LEFT TRIANGLE -025E5 BLACK UPPER RIGHT TRIANGLE -025E6 WHITE BULLET -025E7 SQUARE WITH LEFT HALF BLACK -025E8 SQUARE WITH RIGHT HALF BLACK -025E9 SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK -025EA SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK -025EB WHITE SQUARE WITH VERTICAL BISECTING LINE -025EC WHITE UP-POINTING TRIANGLE WITH DOT -025ED UP-POINTING TRIANGLE WITH LEFT HALF BLACK -025EE UP-POINTING TRIANGLE WITH RIGHT HALF BLACK -025EF LARGE CIRCLE -025F0 WHITE SQUARE WITH UPPER LEFT QUADRANT -025F1 WHITE SQUARE WITH LOWER LEFT QUADRANT -025F2 WHITE SQUARE WITH LOWER RIGHT QUADRANT -025F3 WHITE SQUARE WITH UPPER RIGHT QUADRANT -025F4 WHITE CIRCLE WITH UPPER LEFT QUADRANT -025F5 WHITE CIRCLE WITH LOWER LEFT QUADRANT -025F6 WHITE CIRCLE WITH LOWER RIGHT QUADRANT -025F7 WHITE CIRCLE WITH UPPER RIGHT QUADRANT -025F8 UPPER LEFT TRIANGLE -025F9 UPPER RIGHT TRIANGLE -025FA LOWER LEFT TRIANGLE -025FB WHITE MEDIUM SQUARE -025FC BLACK MEDIUM SQUARE -025FD WHITE MEDIUM SMALL SQUARE -025FE BLACK MEDIUM SMALL SQUARE -025FF LOWER RIGHT TRIANGLE -02600 BLACK SUN WITH RAYS -02601 CLOUD -02602 UMBRELLA -02603 SNOWMAN -02604 COMET -02605 BLACK STAR -02606 WHITE STAR -02607 LIGHTNING -02608 THUNDERSTORM -02609 SUN -0260A ASCENDING NODE -0260B DESCENDING NODE -0260C CONJUNCTION -0260D OPPOSITION -0260E BLACK TELEPHONE -0260F WHITE TELEPHONE -02610 BALLOT BOX -02611 BALLOT BOX WITH CHECK -02612 BALLOT BOX WITH X -02613 SALTIRE -02614 UMBRELLA WITH RAIN DROPS -02615 HOT BEVERAGE -02616 WHITE SHOGI PIECE -02617 BLACK SHOGI PIECE -02618 SHAMROCK -02619 REVERSED ROTATED FLORAL HEART BULLET -0261A BLACK LEFT POINTING INDEX -0261B BLACK RIGHT POINTING INDEX -0261C WHITE LEFT POINTING INDEX -0261D WHITE UP POINTING INDEX -0261E WHITE RIGHT POINTING INDEX -0261F WHITE DOWN POINTING INDEX -02620 SKULL AND CROSSBONES -02621 CAUTION SIGN -02622 RADIOACTIVE SIGN -02623 BIOHAZARD SIGN -02624 CADUCEUS -02625 ANKH -02626 ORTHODOX CROSS -02627 CHI RHO -02628 CROSS OF LORRAINE -02629 CROSS OF JERUSALEM -0262A STAR AND CRESCENT -0262B FARSI SYMBOL -0262C ADI SHAKTI -0262D HAMMER AND SICKLE -0262E PEACE SYMBOL -0262F YIN YANG -02630 TRIGRAM FOR HEAVEN -02631 TRIGRAM FOR LAKE -02632 TRIGRAM FOR FIRE -02633 TRIGRAM FOR THUNDER -02634 TRIGRAM FOR WIND -02635 TRIGRAM FOR WATER -02636 TRIGRAM FOR MOUNTAIN -02637 TRIGRAM FOR EARTH -02638 WHEEL OF DHARMA -02639 WHITE FROWNING FACE -0263A WHITE SMILING FACE -0263B BLACK SMILING FACE -0263C WHITE SUN WITH RAYS -0263D FIRST QUARTER MOON -0263E LAST QUARTER MOON -0263F MERCURY -02640 FEMALE SIGN -02641 EARTH -02642 MALE SIGN -02643 JUPITER -02644 SATURN -02645 URANUS -02646 NEPTUNE -02647 PLUTO -02648 ARIES -02649 TAURUS -0264A GEMINI -0264B CANCER -0264C LEO -0264D VIRGO -0264E LIBRA -0264F SCORPIUS -02650 SAGITTARIUS -02651 CAPRICORN -02652 AQUARIUS -02653 PISCES -02654 WHITE CHESS KING -02655 WHITE CHESS QUEEN -02656 WHITE CHESS ROOK -02657 WHITE CHESS BISHOP -02658 WHITE CHESS KNIGHT -02659 WHITE CHESS PAWN -0265A BLACK CHESS KING -0265B BLACK CHESS QUEEN -0265C BLACK CHESS ROOK -0265D BLACK CHESS BISHOP -0265E BLACK CHESS KNIGHT -0265F BLACK CHESS PAWN -02660 BLACK SPADE SUIT -02661 WHITE HEART SUIT -02662 WHITE DIAMOND SUIT -02663 BLACK CLUB SUIT -02664 WHITE SPADE SUIT -02665 BLACK HEART SUIT -02666 BLACK DIAMOND SUIT -02667 WHITE CLUB SUIT -02668 HOT SPRINGS -02669 QUARTER NOTE -0266A EIGHTH NOTE -0266B BEAMED EIGHTH NOTES -0266C BEAMED SIXTEENTH NOTES -0266D MUSIC FLAT SIGN -0266E MUSIC NATURAL SIGN -0266F MUSIC SHARP SIGN -02670 WEST SYRIAC CROSS -02671 EAST SYRIAC CROSS -02672 UNIVERSAL RECYCLING SYMBOL -02673 RECYCLING SYMBOL FOR TYPE-1 PLASTICS -02674 RECYCLING SYMBOL FOR TYPE-2 PLASTICS -02675 RECYCLING SYMBOL FOR TYPE-3 PLASTICS -02676 RECYCLING SYMBOL FOR TYPE-4 PLASTICS -02677 RECYCLING SYMBOL FOR TYPE-5 PLASTICS -02678 RECYCLING SYMBOL FOR TYPE-6 PLASTICS -02679 RECYCLING SYMBOL FOR TYPE-7 PLASTICS -0267A RECYCLING SYMBOL FOR GENERIC MATERIALS -0267B BLACK UNIVERSAL RECYCLING SYMBOL -0267C RECYCLED PAPER SYMBOL -0267D PARTIALLY-RECYCLED PAPER SYMBOL -0267E PERMANENT PAPER SIGN -0267F WHEELCHAIR SYMBOL -02680 DIE FACE-1 -02681 DIE FACE-2 -02682 DIE FACE-3 -02683 DIE FACE-4 -02684 DIE FACE-5 -02685 DIE FACE-6 -02686 WHITE CIRCLE WITH DOT RIGHT -02687 WHITE CIRCLE WITH TWO DOTS -02688 BLACK CIRCLE WITH WHITE DOT RIGHT -02689 BLACK CIRCLE WITH TWO WHITE DOTS -0268A MONOGRAM FOR YANG -0268B MONOGRAM FOR YIN -0268C DIGRAM FOR GREATER YANG -0268D DIGRAM FOR LESSER YIN -0268E DIGRAM FOR LESSER YANG -0268F DIGRAM FOR GREATER YIN -02690 WHITE FLAG -02691 BLACK FLAG -02692 HAMMER AND PICK -02693 ANCHOR -02694 CROSSED SWORDS -02695 STAFF OF AESCULAPIUS -02696 SCALES -02697 ALEMBIC -02698 FLOWER -02699 GEAR -0269A STAFF OF HERMES -0269B ATOM SYMBOL -0269C FLEUR-DE-LIS -0269D OUTLINED WHITE STAR -0269E THREE LINES CONVERGING RIGHT -0269F THREE LINES CONVERGING LEFT -026A0 WARNING SIGN -026A1 HIGH VOLTAGE SIGN -026A2 DOUBLED FEMALE SIGN -026A3 DOUBLED MALE SIGN -026A4 INTERLOCKED FEMALE AND MALE SIGN -026A5 MALE AND FEMALE SIGN -026A6 MALE WITH STROKE SIGN -026A7 MALE WITH STROKE AND MALE AND FEMALE SIGN -026A8 VERTICAL MALE WITH STROKE SIGN -026A9 HORIZONTAL MALE WITH STROKE SIGN -026AA MEDIUM WHITE CIRCLE -026AB MEDIUM BLACK CIRCLE -026AC MEDIUM SMALL WHITE CIRCLE -026AD MARRIAGE SYMBOL -026AE DIVORCE SYMBOL -026AF UNMARRIED PARTNERSHIP SYMBOL -026B0 COFFIN -026B1 FUNERAL URN -026B2 NEUTER -026B3 CERES -026B4 PALLAS -026B5 JUNO -026B6 VESTA -026B7 CHIRON -026B8 BLACK MOON LILITH -026B9 SEXTILE -026BA SEMISEXTILE -026BB QUINCUNX -026BC SESQUIQUADRATE -026BD SOCCER BALL -026BE BASEBALL -026BF SQUARED KEY -026C0 WHITE DRAUGHTS MAN -026C1 WHITE DRAUGHTS KING -026C2 BLACK DRAUGHTS MAN -026C3 BLACK DRAUGHTS KING -026C4 SNOWMAN WITHOUT SNOW -026C5 SUN BEHIND CLOUD -026C6 RAIN -026C7 BLACK SNOWMAN -026C8 THUNDER CLOUD AND RAIN -026C9 TURNED WHITE SHOGI PIECE -026CA TURNED BLACK SHOGI PIECE -026CB WHITE DIAMOND IN SQUARE -026CC CROSSING LANES -026CD DISABLED CAR -026CE OPHIUCHUS -026CF PICK -026D0 CAR SLIDING -026D1 HELMET WITH WHITE CROSS -026D2 CIRCLED CROSSING LANES -026D3 CHAINS -026D4 NO ENTRY -026D5 ALTERNATE ONE-WAY LEFT WAY TRAFFIC -026D6 BLACK TWO-WAY LEFT WAY TRAFFIC -026D7 WHITE TWO-WAY LEFT WAY TRAFFIC -026D8 BLACK LEFT LANE MERGE -026D9 WHITE LEFT LANE MERGE -026DA DRIVE SLOW SIGN -026DB HEAVY WHITE DOWN-POINTING TRIANGLE -026DC LEFT CLOSED ENTRY -026DD SQUARED SALTIRE -026DE FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE -026DF BLACK TRUCK -026E0 RESTRICTED LEFT ENTRY-1 -026E1 RESTRICTED LEFT ENTRY-2 -026E2 ASTRONOMICAL SYMBOL FOR URANUS -026E3 HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE -026E4 PENTAGRAM -026E5 RIGHT-HANDED INTERLACED PENTAGRAM -026E6 LEFT-HANDED INTERLACED PENTAGRAM -026E7 INVERTED PENTAGRAM -026E8 BLACK CROSS ON SHIELD -026E9 SHINTO SHRINE -026EA CHURCH -026EB CASTLE -026EC HISTORIC SITE -026ED GEAR WITHOUT HUB -026EE GEAR WITH HANDLES -026EF MAP SYMBOL FOR LIGHTHOUSE -026F0 MOUNTAIN -026F1 UMBRELLA ON GROUND -026F2 FOUNTAIN -026F3 FLAG IN HOLE -026F4 FERRY -026F5 SAILBOAT -026F6 SQUARE FOUR CORNERS -026F7 SKIER -026F8 ICE SKATE -026F9 PERSON WITH BALL -026FA TENT -026FB JAPANESE BANK SYMBOL -026FC HEADSTONE GRAVEYARD SYMBOL -026FD FUEL PUMP -026FE CUP ON BLACK SQUARE -026FF WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE -02700 BLACK SAFETY SCISSORS -02701 UPPER BLADE SCISSORS -02702 BLACK SCISSORS -02703 LOWER BLADE SCISSORS -02704 WHITE SCISSORS -02705 WHITE HEAVY CHECK MARK -02706 TELEPHONE LOCATION SIGN -02707 TAPE DRIVE -02708 AIRPLANE -02709 ENVELOPE -0270A RAISED FIST -0270B RAISED HAND -0270C VICTORY HAND -0270D WRITING HAND -0270E LOWER RIGHT PENCIL -0270F PENCIL -02710 UPPER RIGHT PENCIL -02711 WHITE NIB -02712 BLACK NIB -02713 CHECK MARK -02714 HEAVY CHECK MARK -02715 MULTIPLICATION X -02716 HEAVY MULTIPLICATION X -02717 BALLOT X -02718 HEAVY BALLOT X -02719 OUTLINED GREEK CROSS -0271A HEAVY GREEK CROSS -0271B OPEN CENTRE CROSS -0271C HEAVY OPEN CENTRE CROSS -0271D LATIN CROSS -0271E SHADOWED WHITE LATIN CROSS -0271F OUTLINED LATIN CROSS -02720 MALTESE CROSS -02721 STAR OF DAVID -02722 FOUR TEARDROP-SPOKED ASTERISK -02723 FOUR BALLOON-SPOKED ASTERISK -02724 HEAVY FOUR BALLOON-SPOKED ASTERISK -02725 FOUR CLUB-SPOKED ASTERISK -02726 BLACK FOUR POINTED STAR -02727 WHITE FOUR POINTED STAR -02728 SPARKLES -02729 STRESS OUTLINED WHITE STAR -0272A CIRCLED WHITE STAR -0272B OPEN CENTRE BLACK STAR -0272C BLACK CENTRE WHITE STAR -0272D OUTLINED BLACK STAR -0272E HEAVY OUTLINED BLACK STAR -0272F PINWHEEL STAR -02730 SHADOWED WHITE STAR -02731 HEAVY ASTERISK -02732 OPEN CENTRE ASTERISK -02733 EIGHT SPOKED ASTERISK -02734 EIGHT POINTED BLACK STAR -02735 EIGHT POINTED PINWHEEL STAR -02736 SIX POINTED BLACK STAR -02737 EIGHT POINTED RECTILINEAR BLACK STAR -02738 HEAVY EIGHT POINTED RECTILINEAR BLACK STAR -02739 TWELVE POINTED BLACK STAR -0273A SIXTEEN POINTED ASTERISK -0273B TEARDROP-SPOKED ASTERISK -0273C OPEN CENTRE TEARDROP-SPOKED ASTERISK -0273D HEAVY TEARDROP-SPOKED ASTERISK -0273E SIX PETALLED BLACK AND WHITE FLORETTE -0273F BLACK FLORETTE -02740 WHITE FLORETTE -02741 EIGHT PETALLED OUTLINED BLACK FLORETTE -02742 CIRCLED OPEN CENTRE EIGHT POINTED STAR -02743 HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK -02744 SNOWFLAKE -02745 TIGHT TRIFOLIATE SNOWFLAKE -02746 HEAVY CHEVRON SNOWFLAKE -02747 SPARKLE -02748 HEAVY SPARKLE -02749 BALLOON-SPOKED ASTERISK -0274A EIGHT TEARDROP-SPOKED PROPELLER ASTERISK -0274B HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK -0274C CROSS MARK -0274D SHADOWED WHITE CIRCLE -0274E NEGATIVE SQUARED CROSS MARK -0274F LOWER RIGHT DROP-SHADOWED WHITE SQUARE -02750 UPPER RIGHT DROP-SHADOWED WHITE SQUARE -02751 LOWER RIGHT SHADOWED WHITE SQUARE -02752 UPPER RIGHT SHADOWED WHITE SQUARE -02753 BLACK QUESTION MARK ORNAMENT -02754 WHITE QUESTION MARK ORNAMENT -02755 WHITE EXCLAMATION MARK ORNAMENT -02756 BLACK DIAMOND MINUS WHITE X -02757 HEAVY EXCLAMATION MARK SYMBOL -02758 LIGHT VERTICAL BAR -02759 MEDIUM VERTICAL BAR -0275A HEAVY VERTICAL BAR -0275B HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT -0275C HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT -0275D HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT -0275E HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT -0275F HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT -02760 HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT -02761 CURVED STEM PARAGRAPH SIGN ORNAMENT -02762 HEAVY EXCLAMATION MARK ORNAMENT -02763 HEAVY HEART EXCLAMATION MARK ORNAMENT -02764 HEAVY BLACK HEART -02765 ROTATED HEAVY BLACK HEART BULLET -02766 FLORAL HEART -02767 ROTATED FLORAL HEART BULLET -02768 MEDIUM LEFT PARENTHESIS ORNAMENT -02769 MEDIUM RIGHT PARENTHESIS ORNAMENT -0276A MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT -0276B MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT -0276C MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT -0276D MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT -0276E HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT -0276F HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT -02770 HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT -02771 HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT -02772 LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT -02773 LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT -02774 MEDIUM LEFT CURLY BRACKET ORNAMENT -02775 MEDIUM RIGHT CURLY BRACKET ORNAMENT -02776 DINGBAT NEGATIVE CIRCLED DIGIT ONE -02777 DINGBAT NEGATIVE CIRCLED DIGIT TWO -02778 DINGBAT NEGATIVE CIRCLED DIGIT THREE -02779 DINGBAT NEGATIVE CIRCLED DIGIT FOUR -0277A DINGBAT NEGATIVE CIRCLED DIGIT FIVE -0277B DINGBAT NEGATIVE CIRCLED DIGIT SIX -0277C DINGBAT NEGATIVE CIRCLED DIGIT SEVEN -0277D DINGBAT NEGATIVE CIRCLED DIGIT EIGHT -0277E DINGBAT NEGATIVE CIRCLED DIGIT NINE -0277F DINGBAT NEGATIVE CIRCLED NUMBER TEN -02780 DINGBAT CIRCLED SANS-SERIF DIGIT ONE -02781 DINGBAT CIRCLED SANS-SERIF DIGIT TWO -02782 DINGBAT CIRCLED SANS-SERIF DIGIT THREE -02783 DINGBAT CIRCLED SANS-SERIF DIGIT FOUR -02784 DINGBAT CIRCLED SANS-SERIF DIGIT FIVE -02785 DINGBAT CIRCLED SANS-SERIF DIGIT SIX -02786 DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN -02787 DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT -02788 DINGBAT CIRCLED SANS-SERIF DIGIT NINE -02789 DINGBAT CIRCLED SANS-SERIF NUMBER TEN -0278A DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE -0278B DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO -0278C DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE -0278D DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR -0278E DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE -0278F DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX -02790 DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN -02791 DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT -02792 DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE -02793 DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN -02794 HEAVY WIDE-HEADED RIGHTWARDS ARROW -02795 HEAVY PLUS SIGN -02796 HEAVY MINUS SIGN -02797 HEAVY DIVISION SIGN -02798 HEAVY SOUTH EAST ARROW -02799 HEAVY RIGHTWARDS ARROW -0279A HEAVY NORTH EAST ARROW -0279B DRAFTING POINT RIGHTWARDS ARROW -0279C HEAVY ROUND-TIPPED RIGHTWARDS ARROW -0279D TRIANGLE-HEADED RIGHTWARDS ARROW -0279E HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW -0279F DASHED TRIANGLE-HEADED RIGHTWARDS ARROW -027A0 HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW -027A1 BLACK RIGHTWARDS ARROW -027A2 THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD -027A3 THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD -027A4 BLACK RIGHTWARDS ARROWHEAD -027A5 HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW -027A6 HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW -027A7 SQUAT BLACK RIGHTWARDS ARROW -027A8 HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW -027A9 RIGHT-SHADED WHITE RIGHTWARDS ARROW -027AA LEFT-SHADED WHITE RIGHTWARDS ARROW -027AB BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW -027AC FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW -027AD HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW -027AE HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW -027AF NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW -027B0 CURLY LOOP -027B1 NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW -027B2 CIRCLED HEAVY WHITE RIGHTWARDS ARROW -027B3 WHITE-FEATHERED RIGHTWARDS ARROW -027B4 BLACK-FEATHERED SOUTH EAST ARROW -027B5 BLACK-FEATHERED RIGHTWARDS ARROW -027B6 BLACK-FEATHERED NORTH EAST ARROW -027B7 HEAVY BLACK-FEATHERED SOUTH EAST ARROW -027B8 HEAVY BLACK-FEATHERED RIGHTWARDS ARROW -027B9 HEAVY BLACK-FEATHERED NORTH EAST ARROW -027BA TEARDROP-BARBED RIGHTWARDS ARROW -027BB HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW -027BC WEDGE-TAILED RIGHTWARDS ARROW -027BD HEAVY WEDGE-TAILED RIGHTWARDS ARROW -027BE OPEN-OUTLINED RIGHTWARDS ARROW -027BF DOUBLE CURLY LOOP -027C0 THREE DIMENSIONAL ANGLE -027C1 WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE -027C2 PERPENDICULAR -027C3 OPEN SUBSET -027C4 OPEN SUPERSET -027C5 LEFT S-SHAPED BAG DELIMITER -027C6 RIGHT S-SHAPED BAG DELIMITER -027C7 OR WITH DOT INSIDE -027C8 REVERSE SOLIDUS PRECEDING SUBSET -027C9 SUPERSET PRECEDING SOLIDUS -027CA VERTICAL BAR WITH HORIZONTAL STROKE -027CB MATHEMATICAL RISING DIAGONAL -027CC LONG DIVISION -027CD MATHEMATICAL FALLING DIAGONAL -027CE SQUARED LOGICAL AND -027CF SQUARED LOGICAL OR -027D0 WHITE DIAMOND WITH CENTRED DOT -027D1 AND WITH DOT -027D2 ELEMENT OF OPENING UPWARDS -027D3 LOWER RIGHT CORNER WITH DOT -027D4 UPPER LEFT CORNER WITH DOT -027D5 LEFT OUTER JOIN -027D6 RIGHT OUTER JOIN -027D7 FULL OUTER JOIN -027D8 LARGE UP TACK -027D9 LARGE DOWN TACK -027DA LEFT AND RIGHT DOUBLE TURNSTILE -027DB LEFT AND RIGHT TACK -027DC LEFT MULTIMAP -027DD LONG RIGHT TACK -027DE LONG LEFT TACK -027DF UP TACK WITH CIRCLE ABOVE -027E0 LOZENGE DIVIDED BY HORIZONTAL RULE -027E1 WHITE CONCAVE-SIDED DIAMOND -027E2 WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK -027E3 WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK -027E4 WHITE SQUARE WITH LEFTWARDS TICK -027E5 WHITE SQUARE WITH RIGHTWARDS TICK -027E6 MATHEMATICAL LEFT WHITE SQUARE BRACKET -027E7 MATHEMATICAL RIGHT WHITE SQUARE BRACKET -027E8 MATHEMATICAL LEFT ANGLE BRACKET -027E9 MATHEMATICAL RIGHT ANGLE BRACKET -027EA MATHEMATICAL LEFT DOUBLE ANGLE BRACKET -027EB MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET -027EC MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET -027ED MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET -027EE MATHEMATICAL LEFT FLATTENED PARENTHESIS -027EF MATHEMATICAL RIGHT FLATTENED PARENTHESIS -027F0 UPWARDS QUADRUPLE ARROW -027F1 DOWNWARDS QUADRUPLE ARROW -027F2 ANTICLOCKWISE GAPPED CIRCLE ARROW -027F3 CLOCKWISE GAPPED CIRCLE ARROW -027F4 RIGHT ARROW WITH CIRCLED PLUS -027F5 LONG LEFTWARDS ARROW -027F6 LONG RIGHTWARDS ARROW -027F7 LONG LEFT RIGHT ARROW -027F8 LONG LEFTWARDS DOUBLE ARROW -027F9 LONG RIGHTWARDS DOUBLE ARROW -027FA LONG LEFT RIGHT DOUBLE ARROW -027FB LONG LEFTWARDS ARROW FROM BAR -027FC LONG RIGHTWARDS ARROW FROM BAR -027FD LONG LEFTWARDS DOUBLE ARROW FROM BAR -027FE LONG RIGHTWARDS DOUBLE ARROW FROM BAR -027FF LONG RIGHTWARDS SQUIGGLE ARROW -02800 BRAILLE PATTERN BLANK -02801 BRAILLE PATTERN DOTS-1 -02802 BRAILLE PATTERN DOTS-2 -02803 BRAILLE PATTERN DOTS-12 -02804 BRAILLE PATTERN DOTS-3 -02805 BRAILLE PATTERN DOTS-13 -02806 BRAILLE PATTERN DOTS-23 -02807 BRAILLE PATTERN DOTS-123 -02808 BRAILLE PATTERN DOTS-4 -02809 BRAILLE PATTERN DOTS-14 -0280A BRAILLE PATTERN DOTS-24 -0280B BRAILLE PATTERN DOTS-124 -0280C BRAILLE PATTERN DOTS-34 -0280D BRAILLE PATTERN DOTS-134 -0280E BRAILLE PATTERN DOTS-234 -0280F BRAILLE PATTERN DOTS-1234 -02810 BRAILLE PATTERN DOTS-5 -02811 BRAILLE PATTERN DOTS-15 -02812 BRAILLE PATTERN DOTS-25 -02813 BRAILLE PATTERN DOTS-125 -02814 BRAILLE PATTERN DOTS-35 -02815 BRAILLE PATTERN DOTS-135 -02816 BRAILLE PATTERN DOTS-235 -02817 BRAILLE PATTERN DOTS-1235 -02818 BRAILLE PATTERN DOTS-45 -02819 BRAILLE PATTERN DOTS-145 -0281A BRAILLE PATTERN DOTS-245 -0281B BRAILLE PATTERN DOTS-1245 -0281C BRAILLE PATTERN DOTS-345 -0281D BRAILLE PATTERN DOTS-1345 -0281E BRAILLE PATTERN DOTS-2345 -0281F BRAILLE PATTERN DOTS-12345 -02820 BRAILLE PATTERN DOTS-6 -02821 BRAILLE PATTERN DOTS-16 -02822 BRAILLE PATTERN DOTS-26 -02823 BRAILLE PATTERN DOTS-126 -02824 BRAILLE PATTERN DOTS-36 -02825 BRAILLE PATTERN DOTS-136 -02826 BRAILLE PATTERN DOTS-236 -02827 BRAILLE PATTERN DOTS-1236 -02828 BRAILLE PATTERN DOTS-46 -02829 BRAILLE PATTERN DOTS-146 -0282A BRAILLE PATTERN DOTS-246 -0282B BRAILLE PATTERN DOTS-1246 -0282C BRAILLE PATTERN DOTS-346 -0282D BRAILLE PATTERN DOTS-1346 -0282E BRAILLE PATTERN DOTS-2346 -0282F BRAILLE PATTERN DOTS-12346 -02830 BRAILLE PATTERN DOTS-56 -02831 BRAILLE PATTERN DOTS-156 -02832 BRAILLE PATTERN DOTS-256 -02833 BRAILLE PATTERN DOTS-1256 -02834 BRAILLE PATTERN DOTS-356 -02835 BRAILLE PATTERN DOTS-1356 -02836 BRAILLE PATTERN DOTS-2356 -02837 BRAILLE PATTERN DOTS-12356 -02838 BRAILLE PATTERN DOTS-456 -02839 BRAILLE PATTERN DOTS-1456 -0283A BRAILLE PATTERN DOTS-2456 -0283B BRAILLE PATTERN DOTS-12456 -0283C BRAILLE PATTERN DOTS-3456 -0283D BRAILLE PATTERN DOTS-13456 -0283E BRAILLE PATTERN DOTS-23456 -0283F BRAILLE PATTERN DOTS-123456 -02840 BRAILLE PATTERN DOTS-7 -02841 BRAILLE PATTERN DOTS-17 -02842 BRAILLE PATTERN DOTS-27 -02843 BRAILLE PATTERN DOTS-127 -02844 BRAILLE PATTERN DOTS-37 -02845 BRAILLE PATTERN DOTS-137 -02846 BRAILLE PATTERN DOTS-237 -02847 BRAILLE PATTERN DOTS-1237 -02848 BRAILLE PATTERN DOTS-47 -02849 BRAILLE PATTERN DOTS-147 -0284A BRAILLE PATTERN DOTS-247 -0284B BRAILLE PATTERN DOTS-1247 -0284C BRAILLE PATTERN DOTS-347 -0284D BRAILLE PATTERN DOTS-1347 -0284E BRAILLE PATTERN DOTS-2347 -0284F BRAILLE PATTERN DOTS-12347 -02850 BRAILLE PATTERN DOTS-57 -02851 BRAILLE PATTERN DOTS-157 -02852 BRAILLE PATTERN DOTS-257 -02853 BRAILLE PATTERN DOTS-1257 -02854 BRAILLE PATTERN DOTS-357 -02855 BRAILLE PATTERN DOTS-1357 -02856 BRAILLE PATTERN DOTS-2357 -02857 BRAILLE PATTERN DOTS-12357 -02858 BRAILLE PATTERN DOTS-457 -02859 BRAILLE PATTERN DOTS-1457 -0285A BRAILLE PATTERN DOTS-2457 -0285B BRAILLE PATTERN DOTS-12457 -0285C BRAILLE PATTERN DOTS-3457 -0285D BRAILLE PATTERN DOTS-13457 -0285E BRAILLE PATTERN DOTS-23457 -0285F BRAILLE PATTERN DOTS-123457 -02860 BRAILLE PATTERN DOTS-67 -02861 BRAILLE PATTERN DOTS-167 -02862 BRAILLE PATTERN DOTS-267 -02863 BRAILLE PATTERN DOTS-1267 -02864 BRAILLE PATTERN DOTS-367 -02865 BRAILLE PATTERN DOTS-1367 -02866 BRAILLE PATTERN DOTS-2367 -02867 BRAILLE PATTERN DOTS-12367 -02868 BRAILLE PATTERN DOTS-467 -02869 BRAILLE PATTERN DOTS-1467 -0286A BRAILLE PATTERN DOTS-2467 -0286B BRAILLE PATTERN DOTS-12467 -0286C BRAILLE PATTERN DOTS-3467 -0286D BRAILLE PATTERN DOTS-13467 -0286E BRAILLE PATTERN DOTS-23467 -0286F BRAILLE PATTERN DOTS-123467 -02870 BRAILLE PATTERN DOTS-567 -02871 BRAILLE PATTERN DOTS-1567 -02872 BRAILLE PATTERN DOTS-2567 -02873 BRAILLE PATTERN DOTS-12567 -02874 BRAILLE PATTERN DOTS-3567 -02875 BRAILLE PATTERN DOTS-13567 -02876 BRAILLE PATTERN DOTS-23567 -02877 BRAILLE PATTERN DOTS-123567 -02878 BRAILLE PATTERN DOTS-4567 -02879 BRAILLE PATTERN DOTS-14567 -0287A BRAILLE PATTERN DOTS-24567 -0287B BRAILLE PATTERN DOTS-124567 -0287C BRAILLE PATTERN DOTS-34567 -0287D BRAILLE PATTERN DOTS-134567 -0287E BRAILLE PATTERN DOTS-234567 -0287F BRAILLE PATTERN DOTS-1234567 -02880 BRAILLE PATTERN DOTS-8 -02881 BRAILLE PATTERN DOTS-18 -02882 BRAILLE PATTERN DOTS-28 -02883 BRAILLE PATTERN DOTS-128 -02884 BRAILLE PATTERN DOTS-38 -02885 BRAILLE PATTERN DOTS-138 -02886 BRAILLE PATTERN DOTS-238 -02887 BRAILLE PATTERN DOTS-1238 -02888 BRAILLE PATTERN DOTS-48 -02889 BRAILLE PATTERN DOTS-148 -0288A BRAILLE PATTERN DOTS-248 -0288B BRAILLE PATTERN DOTS-1248 -0288C BRAILLE PATTERN DOTS-348 -0288D BRAILLE PATTERN DOTS-1348 -0288E BRAILLE PATTERN DOTS-2348 -0288F BRAILLE PATTERN DOTS-12348 -02890 BRAILLE PATTERN DOTS-58 -02891 BRAILLE PATTERN DOTS-158 -02892 BRAILLE PATTERN DOTS-258 -02893 BRAILLE PATTERN DOTS-1258 -02894 BRAILLE PATTERN DOTS-358 -02895 BRAILLE PATTERN DOTS-1358 -02896 BRAILLE PATTERN DOTS-2358 -02897 BRAILLE PATTERN DOTS-12358 -02898 BRAILLE PATTERN DOTS-458 -02899 BRAILLE PATTERN DOTS-1458 -0289A BRAILLE PATTERN DOTS-2458 -0289B BRAILLE PATTERN DOTS-12458 -0289C BRAILLE PATTERN DOTS-3458 -0289D BRAILLE PATTERN DOTS-13458 -0289E BRAILLE PATTERN DOTS-23458 -0289F BRAILLE PATTERN DOTS-123458 -028A0 BRAILLE PATTERN DOTS-68 -028A1 BRAILLE PATTERN DOTS-168 -028A2 BRAILLE PATTERN DOTS-268 -028A3 BRAILLE PATTERN DOTS-1268 -028A4 BRAILLE PATTERN DOTS-368 -028A5 BRAILLE PATTERN DOTS-1368 -028A6 BRAILLE PATTERN DOTS-2368 -028A7 BRAILLE PATTERN DOTS-12368 -028A8 BRAILLE PATTERN DOTS-468 -028A9 BRAILLE PATTERN DOTS-1468 -028AA BRAILLE PATTERN DOTS-2468 -028AB BRAILLE PATTERN DOTS-12468 -028AC BRAILLE PATTERN DOTS-3468 -028AD BRAILLE PATTERN DOTS-13468 -028AE BRAILLE PATTERN DOTS-23468 -028AF BRAILLE PATTERN DOTS-123468 -028B0 BRAILLE PATTERN DOTS-568 -028B1 BRAILLE PATTERN DOTS-1568 -028B2 BRAILLE PATTERN DOTS-2568 -028B3 BRAILLE PATTERN DOTS-12568 -028B4 BRAILLE PATTERN DOTS-3568 -028B5 BRAILLE PATTERN DOTS-13568 -028B6 BRAILLE PATTERN DOTS-23568 -028B7 BRAILLE PATTERN DOTS-123568 -028B8 BRAILLE PATTERN DOTS-4568 -028B9 BRAILLE PATTERN DOTS-14568 -028BA BRAILLE PATTERN DOTS-24568 -028BB BRAILLE PATTERN DOTS-124568 -028BC BRAILLE PATTERN DOTS-34568 -028BD BRAILLE PATTERN DOTS-134568 -028BE BRAILLE PATTERN DOTS-234568 -028BF BRAILLE PATTERN DOTS-1234568 -028C0 BRAILLE PATTERN DOTS-78 -028C1 BRAILLE PATTERN DOTS-178 -028C2 BRAILLE PATTERN DOTS-278 -028C3 BRAILLE PATTERN DOTS-1278 -028C4 BRAILLE PATTERN DOTS-378 -028C5 BRAILLE PATTERN DOTS-1378 -028C6 BRAILLE PATTERN DOTS-2378 -028C7 BRAILLE PATTERN DOTS-12378 -028C8 BRAILLE PATTERN DOTS-478 -028C9 BRAILLE PATTERN DOTS-1478 -028CA BRAILLE PATTERN DOTS-2478 -028CB BRAILLE PATTERN DOTS-12478 -028CC BRAILLE PATTERN DOTS-3478 -028CD BRAILLE PATTERN DOTS-13478 -028CE BRAILLE PATTERN DOTS-23478 -028CF BRAILLE PATTERN DOTS-123478 -028D0 BRAILLE PATTERN DOTS-578 -028D1 BRAILLE PATTERN DOTS-1578 -028D2 BRAILLE PATTERN DOTS-2578 -028D3 BRAILLE PATTERN DOTS-12578 -028D4 BRAILLE PATTERN DOTS-3578 -028D5 BRAILLE PATTERN DOTS-13578 -028D6 BRAILLE PATTERN DOTS-23578 -028D7 BRAILLE PATTERN DOTS-123578 -028D8 BRAILLE PATTERN DOTS-4578 -028D9 BRAILLE PATTERN DOTS-14578 -028DA BRAILLE PATTERN DOTS-24578 -028DB BRAILLE PATTERN DOTS-124578 -028DC BRAILLE PATTERN DOTS-34578 -028DD BRAILLE PATTERN DOTS-134578 -028DE BRAILLE PATTERN DOTS-234578 -028DF BRAILLE PATTERN DOTS-1234578 -028E0 BRAILLE PATTERN DOTS-678 -028E1 BRAILLE PATTERN DOTS-1678 -028E2 BRAILLE PATTERN DOTS-2678 -028E3 BRAILLE PATTERN DOTS-12678 -028E4 BRAILLE PATTERN DOTS-3678 -028E5 BRAILLE PATTERN DOTS-13678 -028E6 BRAILLE PATTERN DOTS-23678 -028E7 BRAILLE PATTERN DOTS-123678 -028E8 BRAILLE PATTERN DOTS-4678 -028E9 BRAILLE PATTERN DOTS-14678 -028EA BRAILLE PATTERN DOTS-24678 -028EB BRAILLE PATTERN DOTS-124678 -028EC BRAILLE PATTERN DOTS-34678 -028ED BRAILLE PATTERN DOTS-134678 -028EE BRAILLE PATTERN DOTS-234678 -028EF BRAILLE PATTERN DOTS-1234678 -028F0 BRAILLE PATTERN DOTS-5678 -028F1 BRAILLE PATTERN DOTS-15678 -028F2 BRAILLE PATTERN DOTS-25678 -028F3 BRAILLE PATTERN DOTS-125678 -028F4 BRAILLE PATTERN DOTS-35678 -028F5 BRAILLE PATTERN DOTS-135678 -028F6 BRAILLE PATTERN DOTS-235678 -028F7 BRAILLE PATTERN DOTS-1235678 -028F8 BRAILLE PATTERN DOTS-45678 -028F9 BRAILLE PATTERN DOTS-145678 -028FA BRAILLE PATTERN DOTS-245678 -028FB BRAILLE PATTERN DOTS-1245678 -028FC BRAILLE PATTERN DOTS-345678 -028FD BRAILLE PATTERN DOTS-1345678 -028FE BRAILLE PATTERN DOTS-2345678 -028FF BRAILLE PATTERN DOTS-12345678 -02900 RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE -02901 RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE -02902 LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE -02903 RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE -02904 LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE -02905 RIGHTWARDS TWO-HEADED ARROW FROM BAR -02906 LEFTWARDS DOUBLE ARROW FROM BAR -02907 RIGHTWARDS DOUBLE ARROW FROM BAR -02908 DOWNWARDS ARROW WITH HORIZONTAL STROKE -02909 UPWARDS ARROW WITH HORIZONTAL STROKE -0290A UPWARDS TRIPLE ARROW -0290B DOWNWARDS TRIPLE ARROW -0290C LEFTWARDS DOUBLE DASH ARROW -0290D RIGHTWARDS DOUBLE DASH ARROW -0290E LEFTWARDS TRIPLE DASH ARROW -0290F RIGHTWARDS TRIPLE DASH ARROW -02910 RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW -02911 RIGHTWARDS ARROW WITH DOTTED STEM -02912 UPWARDS ARROW TO BAR -02913 DOWNWARDS ARROW TO BAR -02914 RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE -02915 RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE -02916 RIGHTWARDS TWO-HEADED ARROW WITH TAIL -02917 RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE -02918 RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE -02919 LEFTWARDS ARROW-TAIL -0291A RIGHTWARDS ARROW-TAIL -0291B LEFTWARDS DOUBLE ARROW-TAIL -0291C RIGHTWARDS DOUBLE ARROW-TAIL -0291D LEFTWARDS ARROW TO BLACK DIAMOND -0291E RIGHTWARDS ARROW TO BLACK DIAMOND -0291F LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND -02920 RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND -02921 NORTH WEST AND SOUTH EAST ARROW -02922 NORTH EAST AND SOUTH WEST ARROW -02923 NORTH WEST ARROW WITH HOOK -02924 NORTH EAST ARROW WITH HOOK -02925 SOUTH EAST ARROW WITH HOOK -02926 SOUTH WEST ARROW WITH HOOK -02927 NORTH WEST ARROW AND NORTH EAST ARROW -02928 NORTH EAST ARROW AND SOUTH EAST ARROW -02929 SOUTH EAST ARROW AND SOUTH WEST ARROW -0292A SOUTH WEST ARROW AND NORTH WEST ARROW -0292B RISING DIAGONAL CROSSING FALLING DIAGONAL -0292C FALLING DIAGONAL CROSSING RISING DIAGONAL -0292D SOUTH EAST ARROW CROSSING NORTH EAST ARROW -0292E NORTH EAST ARROW CROSSING SOUTH EAST ARROW -0292F FALLING DIAGONAL CROSSING NORTH EAST ARROW -02930 RISING DIAGONAL CROSSING SOUTH EAST ARROW -02931 NORTH EAST ARROW CROSSING NORTH WEST ARROW -02932 NORTH WEST ARROW CROSSING NORTH EAST ARROW -02933 WAVE ARROW POINTING DIRECTLY RIGHT -02934 ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS -02935 ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS -02936 ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS -02937 ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS -02938 RIGHT-SIDE ARC CLOCKWISE ARROW -02939 LEFT-SIDE ARC ANTICLOCKWISE ARROW -0293A TOP ARC ANTICLOCKWISE ARROW -0293B BOTTOM ARC ANTICLOCKWISE ARROW -0293C TOP ARC CLOCKWISE ARROW WITH MINUS -0293D TOP ARC ANTICLOCKWISE ARROW WITH PLUS -0293E LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW -0293F LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW -02940 ANTICLOCKWISE CLOSED CIRCLE ARROW -02941 CLOCKWISE CLOSED CIRCLE ARROW -02942 RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW -02943 LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW -02944 SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW -02945 RIGHTWARDS ARROW WITH PLUS BELOW -02946 LEFTWARDS ARROW WITH PLUS BELOW -02947 RIGHTWARDS ARROW THROUGH X -02948 LEFT RIGHT ARROW THROUGH SMALL CIRCLE -02949 UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE -0294A LEFT BARB UP RIGHT BARB DOWN HARPOON -0294B LEFT BARB DOWN RIGHT BARB UP HARPOON -0294C UP BARB RIGHT DOWN BARB LEFT HARPOON -0294D UP BARB LEFT DOWN BARB RIGHT HARPOON -0294E LEFT BARB UP RIGHT BARB UP HARPOON -0294F UP BARB RIGHT DOWN BARB RIGHT HARPOON -02950 LEFT BARB DOWN RIGHT BARB DOWN HARPOON -02951 UP BARB LEFT DOWN BARB LEFT HARPOON -02952 LEFTWARDS HARPOON WITH BARB UP TO BAR -02953 RIGHTWARDS HARPOON WITH BARB UP TO BAR -02954 UPWARDS HARPOON WITH BARB RIGHT TO BAR -02955 DOWNWARDS HARPOON WITH BARB RIGHT TO BAR -02956 LEFTWARDS HARPOON WITH BARB DOWN TO BAR -02957 RIGHTWARDS HARPOON WITH BARB DOWN TO BAR -02958 UPWARDS HARPOON WITH BARB LEFT TO BAR -02959 DOWNWARDS HARPOON WITH BARB LEFT TO BAR -0295A LEFTWARDS HARPOON WITH BARB UP FROM BAR -0295B RIGHTWARDS HARPOON WITH BARB UP FROM BAR -0295C UPWARDS HARPOON WITH BARB RIGHT FROM BAR -0295D DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR -0295E LEFTWARDS HARPOON WITH BARB DOWN FROM BAR -0295F RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR -02960 UPWARDS HARPOON WITH BARB LEFT FROM BAR -02961 DOWNWARDS HARPOON WITH BARB LEFT FROM BAR -02962 LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN -02963 UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT -02964 RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN -02965 DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT -02966 LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP -02967 LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN -02968 RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP -02969 RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN -0296A LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH -0296B LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH -0296C RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH -0296D RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH -0296E UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT -0296F DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT -02970 RIGHT DOUBLE ARROW WITH ROUNDED HEAD -02971 EQUALS SIGN ABOVE RIGHTWARDS ARROW -02972 TILDE OPERATOR ABOVE RIGHTWARDS ARROW -02973 LEFTWARDS ARROW ABOVE TILDE OPERATOR -02974 RIGHTWARDS ARROW ABOVE TILDE OPERATOR -02975 RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO -02976 LESS-THAN ABOVE LEFTWARDS ARROW -02977 LEFTWARDS ARROW THROUGH LESS-THAN -02978 GREATER-THAN ABOVE RIGHTWARDS ARROW -02979 SUBSET ABOVE RIGHTWARDS ARROW -0297A LEFTWARDS ARROW THROUGH SUBSET -0297B SUPERSET ABOVE LEFTWARDS ARROW -0297C LEFT FISH TAIL -0297D RIGHT FISH TAIL -0297E UP FISH TAIL -0297F DOWN FISH TAIL -02980 TRIPLE VERTICAL BAR DELIMITER -02981 Z NOTATION SPOT -02982 Z NOTATION TYPE COLON -02983 LEFT WHITE CURLY BRACKET -02984 RIGHT WHITE CURLY BRACKET -02985 LEFT WHITE PARENTHESIS -02986 RIGHT WHITE PARENTHESIS -02987 Z NOTATION LEFT IMAGE BRACKET -02988 Z NOTATION RIGHT IMAGE BRACKET -02989 Z NOTATION LEFT BINDING BRACKET -0298A Z NOTATION RIGHT BINDING BRACKET -0298B LEFT SQUARE BRACKET WITH UNDERBAR -0298C RIGHT SQUARE BRACKET WITH UNDERBAR -0298D LEFT SQUARE BRACKET WITH TICK IN TOP CORNER -0298E RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER -0298F LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER -02990 RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER -02991 LEFT ANGLE BRACKET WITH DOT -02992 RIGHT ANGLE BRACKET WITH DOT -02993 LEFT ARC LESS-THAN BRACKET -02994 RIGHT ARC GREATER-THAN BRACKET -02995 DOUBLE LEFT ARC GREATER-THAN BRACKET -02996 DOUBLE RIGHT ARC LESS-THAN BRACKET -02997 LEFT BLACK TORTOISE SHELL BRACKET -02998 RIGHT BLACK TORTOISE SHELL BRACKET -02999 DOTTED FENCE -0299A VERTICAL ZIGZAG LINE -0299B MEASURED ANGLE OPENING LEFT -0299C RIGHT ANGLE VARIANT WITH SQUARE -0299D MEASURED RIGHT ANGLE WITH DOT -0299E ANGLE WITH S INSIDE -0299F ACUTE ANGLE -029A0 SPHERICAL ANGLE OPENING LEFT -029A1 SPHERICAL ANGLE OPENING UP -029A2 TURNED ANGLE -029A3 REVERSED ANGLE -029A4 ANGLE WITH UNDERBAR -029A5 REVERSED ANGLE WITH UNDERBAR -029A6 OBLIQUE ANGLE OPENING UP -029A7 OBLIQUE ANGLE OPENING DOWN -029A8 MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT -029A9 MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT -029AA MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT -029AB MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT -029AC MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP -029AD MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP -029AE MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN -029AF MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN -029B0 REVERSED EMPTY SET -029B1 EMPTY SET WITH OVERBAR -029B2 EMPTY SET WITH SMALL CIRCLE ABOVE -029B3 EMPTY SET WITH RIGHT ARROW ABOVE -029B4 EMPTY SET WITH LEFT ARROW ABOVE -029B5 CIRCLE WITH HORIZONTAL BAR -029B6 CIRCLED VERTICAL BAR -029B7 CIRCLED PARALLEL -029B8 CIRCLED REVERSE SOLIDUS -029B9 CIRCLED PERPENDICULAR -029BA CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR -029BB CIRCLE WITH SUPERIMPOSED X -029BC CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN -029BD UP ARROW THROUGH CIRCLE -029BE CIRCLED WHITE BULLET -029BF CIRCLED BULLET -029C0 CIRCLED LESS-THAN -029C1 CIRCLED GREATER-THAN -029C2 CIRCLE WITH SMALL CIRCLE TO THE RIGHT -029C3 CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT -029C4 SQUARED RISING DIAGONAL SLASH -029C5 SQUARED FALLING DIAGONAL SLASH -029C6 SQUARED ASTERISK -029C7 SQUARED SMALL CIRCLE -029C8 SQUARED SQUARE -029C9 TWO JOINED SQUARES -029CA TRIANGLE WITH DOT ABOVE -029CB TRIANGLE WITH UNDERBAR -029CC S IN TRIANGLE -029CD TRIANGLE WITH SERIFS AT BOTTOM -029CE RIGHT TRIANGLE ABOVE LEFT TRIANGLE -029CF LEFT TRIANGLE BESIDE VERTICAL BAR -029D0 VERTICAL BAR BESIDE RIGHT TRIANGLE -029D1 BOWTIE WITH LEFT HALF BLACK -029D2 BOWTIE WITH RIGHT HALF BLACK -029D3 BLACK BOWTIE -029D4 TIMES WITH LEFT HALF BLACK -029D5 TIMES WITH RIGHT HALF BLACK -029D6 WHITE HOURGLASS -029D7 BLACK HOURGLASS -029D8 LEFT WIGGLY FENCE -029D9 RIGHT WIGGLY FENCE -029DA LEFT DOUBLE WIGGLY FENCE -029DB RIGHT DOUBLE WIGGLY FENCE -029DC INCOMPLETE INFINITY -029DD TIE OVER INFINITY -029DE INFINITY NEGATED WITH VERTICAL BAR -029DF DOUBLE-ENDED MULTIMAP -029E0 SQUARE WITH CONTOURED OUTLINE -029E1 INCREASES AS -029E2 SHUFFLE PRODUCT -029E3 EQUALS SIGN AND SLANTED PARALLEL -029E4 EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE -029E5 IDENTICAL TO AND SLANTED PARALLEL -029E6 GLEICH STARK -029E7 THERMODYNAMIC -029E8 DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK -029E9 DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK -029EA BLACK DIAMOND WITH DOWN ARROW -029EB BLACK LOZENGE -029EC WHITE CIRCLE WITH DOWN ARROW -029ED BLACK CIRCLE WITH DOWN ARROW -029EE ERROR-BARRED WHITE SQUARE -029EF ERROR-BARRED BLACK SQUARE -029F0 ERROR-BARRED WHITE DIAMOND -029F1 ERROR-BARRED BLACK DIAMOND -029F2 ERROR-BARRED WHITE CIRCLE -029F3 ERROR-BARRED BLACK CIRCLE -029F4 RULE-DELAYED -029F5 REVERSE SOLIDUS OPERATOR -029F6 SOLIDUS WITH OVERBAR -029F7 REVERSE SOLIDUS WITH HORIZONTAL STROKE -029F8 BIG SOLIDUS -029F9 BIG REVERSE SOLIDUS -029FA DOUBLE PLUS -029FB TRIPLE PLUS -029FC LEFT-POINTING CURVED ANGLE BRACKET -029FD RIGHT-POINTING CURVED ANGLE BRACKET -029FE TINY -029FF MINY -02A00 N-ARY CIRCLED DOT OPERATOR -02A01 N-ARY CIRCLED PLUS OPERATOR -02A02 N-ARY CIRCLED TIMES OPERATOR -02A03 N-ARY UNION OPERATOR WITH DOT -02A04 N-ARY UNION OPERATOR WITH PLUS -02A05 N-ARY SQUARE INTERSECTION OPERATOR -02A06 N-ARY SQUARE UNION OPERATOR -02A07 TWO LOGICAL AND OPERATOR -02A08 TWO LOGICAL OR OPERATOR -02A09 N-ARY TIMES OPERATOR -02A0A MODULO TWO SUM -02A0B SUMMATION WITH INTEGRAL -02A0C QUADRUPLE INTEGRAL OPERATOR -02A0D FINITE PART INTEGRAL -02A0E INTEGRAL WITH DOUBLE STROKE -02A0F INTEGRAL AVERAGE WITH SLASH -02A10 CIRCULATION FUNCTION -02A11 ANTICLOCKWISE INTEGRATION -02A12 LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE -02A13 LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE -02A14 LINE INTEGRATION NOT INCLUDING THE POLE -02A15 INTEGRAL AROUND A POINT OPERATOR -02A16 QUATERNION INTEGRAL OPERATOR -02A17 INTEGRAL WITH LEFTWARDS ARROW WITH HOOK -02A18 INTEGRAL WITH TIMES SIGN -02A19 INTEGRAL WITH INTERSECTION -02A1A INTEGRAL WITH UNION -02A1B INTEGRAL WITH OVERBAR -02A1C INTEGRAL WITH UNDERBAR -02A1D JOIN -02A1E LARGE LEFT TRIANGLE OPERATOR -02A1F Z NOTATION SCHEMA COMPOSITION -02A20 Z NOTATION SCHEMA PIPING -02A21 Z NOTATION SCHEMA PROJECTION -02A22 PLUS SIGN WITH SMALL CIRCLE ABOVE -02A23 PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE -02A24 PLUS SIGN WITH TILDE ABOVE -02A25 PLUS SIGN WITH DOT BELOW -02A26 PLUS SIGN WITH TILDE BELOW -02A27 PLUS SIGN WITH SUBSCRIPT TWO -02A28 PLUS SIGN WITH BLACK TRIANGLE -02A29 MINUS SIGN WITH COMMA ABOVE -02A2A MINUS SIGN WITH DOT BELOW -02A2B MINUS SIGN WITH FALLING DOTS -02A2C MINUS SIGN WITH RISING DOTS -02A2D PLUS SIGN IN LEFT HALF CIRCLE -02A2E PLUS SIGN IN RIGHT HALF CIRCLE -02A2F VECTOR OR CROSS PRODUCT -02A30 MULTIPLICATION SIGN WITH DOT ABOVE -02A31 MULTIPLICATION SIGN WITH UNDERBAR -02A32 SEMIDIRECT PRODUCT WITH BOTTOM CLOSED -02A33 SMASH PRODUCT -02A34 MULTIPLICATION SIGN IN LEFT HALF CIRCLE -02A35 MULTIPLICATION SIGN IN RIGHT HALF CIRCLE -02A36 CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT -02A37 MULTIPLICATION SIGN IN DOUBLE CIRCLE -02A38 CIRCLED DIVISION SIGN -02A39 PLUS SIGN IN TRIANGLE -02A3A MINUS SIGN IN TRIANGLE -02A3B MULTIPLICATION SIGN IN TRIANGLE -02A3C INTERIOR PRODUCT -02A3D RIGHTHAND INTERIOR PRODUCT -02A3E Z NOTATION RELATIONAL COMPOSITION -02A3F AMALGAMATION OR COPRODUCT -02A40 INTERSECTION WITH DOT -02A41 UNION WITH MINUS SIGN -02A42 UNION WITH OVERBAR -02A43 INTERSECTION WITH OVERBAR -02A44 INTERSECTION WITH LOGICAL AND -02A45 UNION WITH LOGICAL OR -02A46 UNION ABOVE INTERSECTION -02A47 INTERSECTION ABOVE UNION -02A48 UNION ABOVE BAR ABOVE INTERSECTION -02A49 INTERSECTION ABOVE BAR ABOVE UNION -02A4A UNION BESIDE AND JOINED WITH UNION -02A4B INTERSECTION BESIDE AND JOINED WITH INTERSECTION -02A4C CLOSED UNION WITH SERIFS -02A4D CLOSED INTERSECTION WITH SERIFS -02A4E DOUBLE SQUARE INTERSECTION -02A4F DOUBLE SQUARE UNION -02A50 CLOSED UNION WITH SERIFS AND SMASH PRODUCT -02A51 LOGICAL AND WITH DOT ABOVE -02A52 LOGICAL OR WITH DOT ABOVE -02A53 DOUBLE LOGICAL AND -02A54 DOUBLE LOGICAL OR -02A55 TWO INTERSECTING LOGICAL AND -02A56 TWO INTERSECTING LOGICAL OR -02A57 SLOPING LARGE OR -02A58 SLOPING LARGE AND -02A59 LOGICAL OR OVERLAPPING LOGICAL AND -02A5A LOGICAL AND WITH MIDDLE STEM -02A5B LOGICAL OR WITH MIDDLE STEM -02A5C LOGICAL AND WITH HORIZONTAL DASH -02A5D LOGICAL OR WITH HORIZONTAL DASH -02A5E LOGICAL AND WITH DOUBLE OVERBAR -02A5F LOGICAL AND WITH UNDERBAR -02A60 LOGICAL AND WITH DOUBLE UNDERBAR -02A61 SMALL VEE WITH UNDERBAR -02A62 LOGICAL OR WITH DOUBLE OVERBAR -02A63 LOGICAL OR WITH DOUBLE UNDERBAR -02A64 Z NOTATION DOMAIN ANTIRESTRICTION -02A65 Z NOTATION RANGE ANTIRESTRICTION -02A66 EQUALS SIGN WITH DOT BELOW -02A67 IDENTICAL WITH DOT ABOVE -02A68 TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE -02A69 TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE -02A6A TILDE OPERATOR WITH DOT ABOVE -02A6B TILDE OPERATOR WITH RISING DOTS -02A6C SIMILAR MINUS SIMILAR -02A6D CONGRUENT WITH DOT ABOVE -02A6E EQUALS WITH ASTERISK -02A6F ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT -02A70 APPROXIMATELY EQUAL OR EQUAL TO -02A71 EQUALS SIGN ABOVE PLUS SIGN -02A72 PLUS SIGN ABOVE EQUALS SIGN -02A73 EQUALS SIGN ABOVE TILDE OPERATOR -02A74 DOUBLE COLON EQUAL -02A75 TWO CONSECUTIVE EQUALS SIGNS -02A76 THREE CONSECUTIVE EQUALS SIGNS -02A77 EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW -02A78 EQUIVALENT WITH FOUR DOTS ABOVE -02A79 LESS-THAN WITH CIRCLE INSIDE -02A7A GREATER-THAN WITH CIRCLE INSIDE -02A7B LESS-THAN WITH QUESTION MARK ABOVE -02A7C GREATER-THAN WITH QUESTION MARK ABOVE -02A7D LESS-THAN OR SLANTED EQUAL TO -02A7E GREATER-THAN OR SLANTED EQUAL TO -02A7F LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE -02A80 GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE -02A81 LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE -02A82 GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE -02A83 LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT -02A84 GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT -02A85 LESS-THAN OR APPROXIMATE -02A86 GREATER-THAN OR APPROXIMATE -02A87 LESS-THAN AND SINGLE-LINE NOT EQUAL TO -02A88 GREATER-THAN AND SINGLE-LINE NOT EQUAL TO -02A89 LESS-THAN AND NOT APPROXIMATE -02A8A GREATER-THAN AND NOT APPROXIMATE -02A8B LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN -02A8C GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN -02A8D LESS-THAN ABOVE SIMILAR OR EQUAL -02A8E GREATER-THAN ABOVE SIMILAR OR EQUAL -02A8F LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN -02A90 GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN -02A91 LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL -02A92 GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL -02A93 LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL -02A94 GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL -02A95 SLANTED EQUAL TO OR LESS-THAN -02A96 SLANTED EQUAL TO OR GREATER-THAN -02A97 SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE -02A98 SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE -02A99 DOUBLE-LINE EQUAL TO OR LESS-THAN -02A9A DOUBLE-LINE EQUAL TO OR GREATER-THAN -02A9B DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN -02A9C DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN -02A9D SIMILAR OR LESS-THAN -02A9E SIMILAR OR GREATER-THAN -02A9F SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN -02AA0 SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN -02AA1 DOUBLE NESTED LESS-THAN -02AA2 DOUBLE NESTED GREATER-THAN -02AA3 DOUBLE NESTED LESS-THAN WITH UNDERBAR -02AA4 GREATER-THAN OVERLAPPING LESS-THAN -02AA5 GREATER-THAN BESIDE LESS-THAN -02AA6 LESS-THAN CLOSED BY CURVE -02AA7 GREATER-THAN CLOSED BY CURVE -02AA8 LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL -02AA9 GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL -02AAA SMALLER THAN -02AAB LARGER THAN -02AAC SMALLER THAN OR EQUAL TO -02AAD LARGER THAN OR EQUAL TO -02AAE EQUALS SIGN WITH BUMPY ABOVE -02AAF PRECEDES ABOVE SINGLE-LINE EQUALS SIGN -02AB0 SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN -02AB1 PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO -02AB2 SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO -02AB3 PRECEDES ABOVE EQUALS SIGN -02AB4 SUCCEEDS ABOVE EQUALS SIGN -02AB5 PRECEDES ABOVE NOT EQUAL TO -02AB6 SUCCEEDS ABOVE NOT EQUAL TO -02AB7 PRECEDES ABOVE ALMOST EQUAL TO -02AB8 SUCCEEDS ABOVE ALMOST EQUAL TO -02AB9 PRECEDES ABOVE NOT ALMOST EQUAL TO -02ABA SUCCEEDS ABOVE NOT ALMOST EQUAL TO -02ABB DOUBLE PRECEDES -02ABC DOUBLE SUCCEEDS -02ABD SUBSET WITH DOT -02ABE SUPERSET WITH DOT -02ABF SUBSET WITH PLUS SIGN BELOW -02AC0 SUPERSET WITH PLUS SIGN BELOW -02AC1 SUBSET WITH MULTIPLICATION SIGN BELOW -02AC2 SUPERSET WITH MULTIPLICATION SIGN BELOW -02AC3 SUBSET OF OR EQUAL TO WITH DOT ABOVE -02AC4 SUPERSET OF OR EQUAL TO WITH DOT ABOVE -02AC5 SUBSET OF ABOVE EQUALS SIGN -02AC6 SUPERSET OF ABOVE EQUALS SIGN -02AC7 SUBSET OF ABOVE TILDE OPERATOR -02AC8 SUPERSET OF ABOVE TILDE OPERATOR -02AC9 SUBSET OF ABOVE ALMOST EQUAL TO -02ACA SUPERSET OF ABOVE ALMOST EQUAL TO -02ACB SUBSET OF ABOVE NOT EQUAL TO -02ACC SUPERSET OF ABOVE NOT EQUAL TO -02ACD SQUARE LEFT OPEN BOX OPERATOR -02ACE SQUARE RIGHT OPEN BOX OPERATOR -02ACF CLOSED SUBSET -02AD0 CLOSED SUPERSET -02AD1 CLOSED SUBSET OR EQUAL TO -02AD2 CLOSED SUPERSET OR EQUAL TO -02AD3 SUBSET ABOVE SUPERSET -02AD4 SUPERSET ABOVE SUBSET -02AD5 SUBSET ABOVE SUBSET -02AD6 SUPERSET ABOVE SUPERSET -02AD7 SUPERSET BESIDE SUBSET -02AD8 SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET -02AD9 ELEMENT OF OPENING DOWNWARDS -02ADA PITCHFORK WITH TEE TOP -02ADB TRANSVERSAL INTERSECTION -02ADC FORKING -02ADD NONFORKING -02ADE SHORT LEFT TACK -02ADF SHORT DOWN TACK -02AE0 SHORT UP TACK -02AE1 PERPENDICULAR WITH S -02AE2 VERTICAL BAR TRIPLE RIGHT TURNSTILE -02AE3 DOUBLE VERTICAL BAR LEFT TURNSTILE -02AE4 VERTICAL BAR DOUBLE LEFT TURNSTILE -02AE5 DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE -02AE6 LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL -02AE7 SHORT DOWN TACK WITH OVERBAR -02AE8 SHORT UP TACK WITH UNDERBAR -02AE9 SHORT UP TACK ABOVE SHORT DOWN TACK -02AEA DOUBLE DOWN TACK -02AEB DOUBLE UP TACK -02AEC DOUBLE STROKE NOT SIGN -02AED REVERSED DOUBLE STROKE NOT SIGN -02AEE DOES NOT DIVIDE WITH REVERSED NEGATION SLASH -02AEF VERTICAL LINE WITH CIRCLE ABOVE -02AF0 VERTICAL LINE WITH CIRCLE BELOW -02AF1 DOWN TACK WITH CIRCLE BELOW -02AF2 PARALLEL WITH HORIZONTAL STROKE -02AF3 PARALLEL WITH TILDE OPERATOR -02AF4 TRIPLE VERTICAL BAR BINARY RELATION -02AF5 TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE -02AF6 TRIPLE COLON OPERATOR -02AF7 TRIPLE NESTED LESS-THAN -02AF8 TRIPLE NESTED GREATER-THAN -02AF9 DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO -02AFA DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO -02AFB TRIPLE SOLIDUS BINARY RELATION -02AFC LARGE TRIPLE VERTICAL BAR OPERATOR -02AFD DOUBLE SOLIDUS OPERATOR -02AFE WHITE VERTICAL BAR -02AFF N-ARY WHITE VERTICAL BAR -02B00 NORTH EAST WHITE ARROW -02B01 NORTH WEST WHITE ARROW -02B02 SOUTH EAST WHITE ARROW -02B03 SOUTH WEST WHITE ARROW -02B04 LEFT RIGHT WHITE ARROW -02B05 LEFTWARDS BLACK ARROW -02B06 UPWARDS BLACK ARROW -02B07 DOWNWARDS BLACK ARROW -02B08 NORTH EAST BLACK ARROW -02B09 NORTH WEST BLACK ARROW -02B0A SOUTH EAST BLACK ARROW -02B0B SOUTH WEST BLACK ARROW -02B0C LEFT RIGHT BLACK ARROW -02B0D UP DOWN BLACK ARROW -02B0E RIGHTWARDS ARROW WITH TIP DOWNWARDS -02B0F RIGHTWARDS ARROW WITH TIP UPWARDS -02B10 LEFTWARDS ARROW WITH TIP DOWNWARDS -02B11 LEFTWARDS ARROW WITH TIP UPWARDS -02B12 SQUARE WITH TOP HALF BLACK -02B13 SQUARE WITH BOTTOM HALF BLACK -02B14 SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK -02B15 SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK -02B16 DIAMOND WITH LEFT HALF BLACK -02B17 DIAMOND WITH RIGHT HALF BLACK -02B18 DIAMOND WITH TOP HALF BLACK -02B19 DIAMOND WITH BOTTOM HALF BLACK -02B1A DOTTED SQUARE -02B1B BLACK LARGE SQUARE -02B1C WHITE LARGE SQUARE -02B1D BLACK VERY SMALL SQUARE -02B1E WHITE VERY SMALL SQUARE -02B1F BLACK PENTAGON -02B20 WHITE PENTAGON -02B21 WHITE HEXAGON -02B22 BLACK HEXAGON -02B23 HORIZONTAL BLACK HEXAGON -02B24 BLACK LARGE CIRCLE -02B25 BLACK MEDIUM DIAMOND -02B26 WHITE MEDIUM DIAMOND -02B27 BLACK MEDIUM LOZENGE -02B28 WHITE MEDIUM LOZENGE -02B29 BLACK SMALL DIAMOND -02B2A BLACK SMALL LOZENGE -02B2B WHITE SMALL LOZENGE -02B2C BLACK HORIZONTAL ELLIPSE -02B2D WHITE HORIZONTAL ELLIPSE -02B2E BLACK VERTICAL ELLIPSE -02B2F WHITE VERTICAL ELLIPSE -02B30 LEFT ARROW WITH SMALL CIRCLE -02B31 THREE LEFTWARDS ARROWS -02B32 LEFT ARROW WITH CIRCLED PLUS -02B33 LONG LEFTWARDS SQUIGGLE ARROW -02B34 LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE -02B35 LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE -02B36 LEFTWARDS TWO-HEADED ARROW FROM BAR -02B37 LEFTWARDS TWO-HEADED TRIPLE DASH ARROW -02B38 LEFTWARDS ARROW WITH DOTTED STEM -02B39 LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE -02B3A LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE -02B3B LEFTWARDS TWO-HEADED ARROW WITH TAIL -02B3C LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE -02B3D LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE -02B3E LEFTWARDS ARROW THROUGH X -02B3F WAVE ARROW POINTING DIRECTLY LEFT -02B40 EQUALS SIGN ABOVE LEFTWARDS ARROW -02B41 REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW -02B42 LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO -02B43 RIGHTWARDS ARROW THROUGH GREATER-THAN -02B44 RIGHTWARDS ARROW THROUGH SUPERSET -02B45 LEFTWARDS QUADRUPLE ARROW -02B46 RIGHTWARDS QUADRUPLE ARROW -02B47 REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW -02B48 RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO -02B49 TILDE OPERATOR ABOVE LEFTWARDS ARROW -02B4A LEFTWARDS ARROW ABOVE ALMOST EQUAL TO -02B4B LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR -02B4C RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR -02B4D DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW -02B4E SHORT SLANTED NORTH ARROW -02B4F SHORT BACKSLANTED SOUTH ARROW -02B50 WHITE MEDIUM STAR -02B51 BLACK SMALL STAR -02B52 WHITE SMALL STAR -02B53 BLACK RIGHT-POINTING PENTAGON -02B54 WHITE RIGHT-POINTING PENTAGON -02B55 HEAVY LARGE CIRCLE -02B56 HEAVY OVAL WITH OVAL INSIDE -02B57 HEAVY CIRCLE WITH CIRCLE INSIDE -02B58 HEAVY CIRCLE -02B59 HEAVY CIRCLED SALTIRE -02B5A SLANTED NORTH ARROW WITH HOOKED HEAD -02B5B BACKSLANTED SOUTH ARROW WITH HOOKED TAIL -02B5C SLANTED NORTH ARROW WITH HORIZONTAL TAIL -02B5D BACKSLANTED SOUTH ARROW WITH HORIZONTAL TAIL -02B5E BENT ARROW POINTING DOWNWARDS THEN NORTH EAST -02B5F SHORT BENT ARROW POINTING DOWNWARDS THEN NORTH EAST -02B60 LEFTWARDS TRIANGLE-HEADED ARROW -02B61 UPWARDS TRIANGLE-HEADED ARROW -02B62 RIGHTWARDS TRIANGLE-HEADED ARROW -02B63 DOWNWARDS TRIANGLE-HEADED ARROW -02B64 LEFT RIGHT TRIANGLE-HEADED ARROW -02B65 UP DOWN TRIANGLE-HEADED ARROW -02B66 NORTH WEST TRIANGLE-HEADED ARROW -02B67 NORTH EAST TRIANGLE-HEADED ARROW -02B68 SOUTH EAST TRIANGLE-HEADED ARROW -02B69 SOUTH WEST TRIANGLE-HEADED ARROW -02B6A LEFTWARDS TRIANGLE-HEADED DASHED ARROW -02B6B UPWARDS TRIANGLE-HEADED DASHED ARROW -02B6C RIGHTWARDS TRIANGLE-HEADED DASHED ARROW -02B6D DOWNWARDS TRIANGLE-HEADED DASHED ARROW -02B6E CLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW -02B6F ANTICLOCKWISE TRIANGLE-HEADED OPEN CIRCLE ARROW -02B70 LEFTWARDS TRIANGLE-HEADED ARROW TO BAR -02B71 UPWARDS TRIANGLE-HEADED ARROW TO BAR -02B72 RIGHTWARDS TRIANGLE-HEADED ARROW TO BAR -02B73 DOWNWARDS TRIANGLE-HEADED ARROW TO BAR -02B76 NORTH WEST TRIANGLE-HEADED ARROW TO BAR -02B77 NORTH EAST TRIANGLE-HEADED ARROW TO BAR -02B78 SOUTH EAST TRIANGLE-HEADED ARROW TO BAR -02B79 SOUTH WEST TRIANGLE-HEADED ARROW TO BAR -02B7A LEFTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE VERTICAL STROKE -02B7A LEFTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE -02B7B UPWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE -02B7C RIGHTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE VERTICAL STROKE -02B7C RIGHTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE -02B7D DOWNWARDS TRIANGLE-HEADED ARROW WITH DOUBLE HORIZONTAL STROKE -02B7E HORIZONTAL TAB KEY -02B7F VERTICAL TAB KEY -02B80 LEFTWARDS TRIANGLE-HEADED ARROW OVER RIGHTWARDS TRIANGLE-HEADED ARROW -02B81 UPWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF DOWNWARDS TRIANGLE-HEADED ARROW -02B82 RIGHTWARDS TRIANGLE-HEADED ARROW OVER LEFTWARDS TRIANGLE-HEADED ARROW -02B83 DOWNWARDS TRIANGLE-HEADED ARROW LEFTWARDS OF UPWARDS TRIANGLE-HEADED ARROW -02B84 LEFTWARDS TRIANGLE-HEADED PAIRED ARROWS -02B85 UPWARDS TRIANGLE-HEADED PAIRED ARROWS -02B86 RIGHTWARDS TRIANGLE-HEADED PAIRED ARROWS -02B87 DOWNWARDS TRIANGLE-HEADED PAIRED ARROWS -02B88 LEFTWARDS BLACK CIRCLED WHITE ARROW -02B89 UPWARDS BLACK CIRCLED WHITE ARROW -02B8A RIGHTWARDS BLACK CIRCLED WHITE ARROW -02B8B DOWNWARDS BLACK CIRCLED WHITE ARROW -02B8C ANTICLOCKWISE TRIANGLE-HEADED RIGHT U-SHAPED ARROW -02B8D ANTICLOCKWISE TRIANGLE-HEADED BOTTOM U-SHAPED ARROW -02B8E ANTICLOCKWISE TRIANGLE-HEADED LEFT U-SHAPED ARROW -02B8F ANTICLOCKWISE TRIANGLE-HEADED TOP U-SHAPED ARROW -02B90 RETURN LEFT -02B91 RETURN RIGHT -02B92 NEWLINE LEFT -02B93 NEWLINE RIGHT -02B94 FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE -02B95 RIGHTWARDS BLACK ARROW -02B98 THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD -02B99 THREE-D RIGHT-LIGHTED UPWARDS EQUILATERAL ARROWHEAD -02B9A THREE-D TOP-LIGHTED RIGHTWARDS EQUILATERAL ARROWHEAD -02B9B THREE-D LEFT-LIGHTED DOWNWARDS EQUILATERAL ARROWHEAD -02B9C BLACK LEFTWARDS EQUILATERAL ARROWHEAD -02B9D BLACK UPWARDS EQUILATERAL ARROWHEAD -02B9E BLACK RIGHTWARDS EQUILATERAL ARROWHEAD -02B9F BLACK DOWNWARDS EQUILATERAL ARROWHEAD -02BA0 DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS -02BA1 DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS -02BA2 UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP LEFTWARDS -02BA3 UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP RIGHTWARDS -02BA4 LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS -02BA5 RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP UPWARDS -02BA6 LEFTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS -02BA7 RIGHTWARDS TRIANGLE-HEADED ARROW WITH LONG TIP DOWNWARDS -02BA8 BLACK CURVED DOWNWARDS AND LEFTWARDS ARROW -02BA9 BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW -02BAA BLACK CURVED UPWARDS AND LEFTWARDS ARROW -02BAB BLACK CURVED UPWARDS AND RIGHTWARDS ARROW -02BAC BLACK CURVED LEFTWARDS AND UPWARDS ARROW -02BAD BLACK CURVED RIGHTWARDS AND UPWARDS ARROW -02BAE BLACK CURVED LEFTWARDS AND DOWNWARDS ARROW -02BAF BLACK CURVED RIGHTWARDS AND DOWNWARDS ARROW -02BB0 RIBBON ARROW DOWN LEFT -02BB1 RIBBON ARROW DOWN RIGHT -02BB2 RIBBON ARROW UP LEFT -02BB3 RIBBON ARROW UP RIGHT -02BB4 RIBBON ARROW LEFT UP -02BB5 RIBBON ARROW RIGHT UP -02BB6 RIBBON ARROW LEFT DOWN -02BB7 RIBBON ARROW RIGHT DOWN -02BB8 UPWARDS WHITE ARROW FROM BAR WITH HORIZONTAL BAR -02BB9 UP ARROWHEAD IN A RECTANGLE BOX -02BBD BALLOT BOX WITH LIGHT X -02BBE CIRCLED X -02BBF CIRCLED BOLD X -02BC0 BLACK SQUARE CENTRED -02BC1 BLACK DIAMOND CENTRED -02BC2 TURNED BLACK PENTAGON -02BC3 HORIZONTAL BLACK OCTAGON -02BC4 BLACK OCTAGON -02BC5 BLACK MEDIUM UP-POINTING TRIANGLE CENTRED -02BC6 BLACK MEDIUM DOWN-POINTING TRIANGLE CENTRED -02BC7 BLACK MEDIUM LEFT-POINTING TRIANGLE CENTRED -02BC8 BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED -02BCA TOP HALF BLACK CIRCLE -02BCB BOTTOM HALF BLACK CIRCLE -02BCC LIGHT FOUR POINTED BLACK CUSP -02BCD ROTATED LIGHT FOUR POINTED BLACK CUSP -02BCE WHITE FOUR POINTED CUSP -02BCF ROTATED WHITE FOUR POINTED CUSP -02BD0 SQUARE POSITION INDICATOR -02BD1 UNCERTAINTY SIGN -02BEC LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS -02BED UPWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS -02BEE RIGHTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS -02BEF DOWNWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS -02C00 GLAGOLITIC CAPITAL LETTER AZU -02C01 GLAGOLITIC CAPITAL LETTER BUKY -02C02 GLAGOLITIC CAPITAL LETTER VEDE -02C03 GLAGOLITIC CAPITAL LETTER GLAGOLI -02C04 GLAGOLITIC CAPITAL LETTER DOBRO -02C05 GLAGOLITIC CAPITAL LETTER YESTU -02C06 GLAGOLITIC CAPITAL LETTER ZHIVETE -02C07 GLAGOLITIC CAPITAL LETTER DZELO -02C08 GLAGOLITIC CAPITAL LETTER ZEMLJA -02C09 GLAGOLITIC CAPITAL LETTER IZHE -02C0A GLAGOLITIC CAPITAL LETTER INITIAL IZHE -02C0B GLAGOLITIC CAPITAL LETTER I -02C0C GLAGOLITIC CAPITAL LETTER DJERVI -02C0D GLAGOLITIC CAPITAL LETTER KAKO -02C0E GLAGOLITIC CAPITAL LETTER LJUDIJE -02C0F GLAGOLITIC CAPITAL LETTER MYSLITE -02C10 GLAGOLITIC CAPITAL LETTER NASHI -02C11 GLAGOLITIC CAPITAL LETTER ONU -02C12 GLAGOLITIC CAPITAL LETTER POKOJI -02C13 GLAGOLITIC CAPITAL LETTER RITSI -02C14 GLAGOLITIC CAPITAL LETTER SLOVO -02C15 GLAGOLITIC CAPITAL LETTER TVRIDO -02C16 GLAGOLITIC CAPITAL LETTER UKU -02C17 GLAGOLITIC CAPITAL LETTER FRITU -02C18 GLAGOLITIC CAPITAL LETTER HERU -02C19 GLAGOLITIC CAPITAL LETTER OTU -02C1A GLAGOLITIC CAPITAL LETTER PE -02C1B GLAGOLITIC CAPITAL LETTER SHTA -02C1C GLAGOLITIC CAPITAL LETTER TSI -02C1D GLAGOLITIC CAPITAL LETTER CHRIVI -02C1E GLAGOLITIC CAPITAL LETTER SHA -02C1F GLAGOLITIC CAPITAL LETTER YERU -02C20 GLAGOLITIC CAPITAL LETTER YERI -02C21 GLAGOLITIC CAPITAL LETTER YATI -02C22 GLAGOLITIC CAPITAL LETTER SPIDERY HA -02C23 GLAGOLITIC CAPITAL LETTER YU -02C24 GLAGOLITIC CAPITAL LETTER SMALL YUS -02C25 GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL -02C26 GLAGOLITIC CAPITAL LETTER YO -02C27 GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS -02C28 GLAGOLITIC CAPITAL LETTER BIG YUS -02C29 GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS -02C2A GLAGOLITIC CAPITAL LETTER FITA -02C2B GLAGOLITIC CAPITAL LETTER IZHITSA -02C2C GLAGOLITIC CAPITAL LETTER SHTAPIC -02C2D GLAGOLITIC CAPITAL LETTER TROKUTASTI A -02C2E GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE -02C30 GLAGOLITIC SMALL LETTER AZU -02C31 GLAGOLITIC SMALL LETTER BUKY -02C32 GLAGOLITIC SMALL LETTER VEDE -02C33 GLAGOLITIC SMALL LETTER GLAGOLI -02C34 GLAGOLITIC SMALL LETTER DOBRO -02C35 GLAGOLITIC SMALL LETTER YESTU -02C36 GLAGOLITIC SMALL LETTER ZHIVETE -02C37 GLAGOLITIC SMALL LETTER DZELO -02C38 GLAGOLITIC SMALL LETTER ZEMLJA -02C39 GLAGOLITIC SMALL LETTER IZHE -02C3A GLAGOLITIC SMALL LETTER INITIAL IZHE -02C3B GLAGOLITIC SMALL LETTER I -02C3C GLAGOLITIC SMALL LETTER DJERVI -02C3D GLAGOLITIC SMALL LETTER KAKO -02C3E GLAGOLITIC SMALL LETTER LJUDIJE -02C3F GLAGOLITIC SMALL LETTER MYSLITE -02C40 GLAGOLITIC SMALL LETTER NASHI -02C41 GLAGOLITIC SMALL LETTER ONU -02C42 GLAGOLITIC SMALL LETTER POKOJI -02C43 GLAGOLITIC SMALL LETTER RITSI -02C44 GLAGOLITIC SMALL LETTER SLOVO -02C45 GLAGOLITIC SMALL LETTER TVRIDO -02C46 GLAGOLITIC SMALL LETTER UKU -02C47 GLAGOLITIC SMALL LETTER FRITU -02C48 GLAGOLITIC SMALL LETTER HERU -02C49 GLAGOLITIC SMALL LETTER OTU -02C4A GLAGOLITIC SMALL LETTER PE -02C4B GLAGOLITIC SMALL LETTER SHTA -02C4C GLAGOLITIC SMALL LETTER TSI -02C4D GLAGOLITIC SMALL LETTER CHRIVI -02C4E GLAGOLITIC SMALL LETTER SHA -02C4F GLAGOLITIC SMALL LETTER YERU -02C50 GLAGOLITIC SMALL LETTER YERI -02C51 GLAGOLITIC SMALL LETTER YATI -02C52 GLAGOLITIC SMALL LETTER SPIDERY HA -02C53 GLAGOLITIC SMALL LETTER YU -02C54 GLAGOLITIC SMALL LETTER SMALL YUS -02C55 GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL -02C56 GLAGOLITIC SMALL LETTER YO -02C57 GLAGOLITIC SMALL LETTER IOTATED SMALL YUS -02C58 GLAGOLITIC SMALL LETTER BIG YUS -02C59 GLAGOLITIC SMALL LETTER IOTATED BIG YUS -02C5A GLAGOLITIC SMALL LETTER FITA -02C5B GLAGOLITIC SMALL LETTER IZHITSA -02C5C GLAGOLITIC SMALL LETTER SHTAPIC -02C5D GLAGOLITIC SMALL LETTER TROKUTASTI A -02C5E GLAGOLITIC SMALL LETTER LATINATE MYSLITE -02C60 LATIN CAPITAL LETTER L WITH DOUBLE BAR -02C61 LATIN SMALL LETTER L WITH DOUBLE BAR -02C62 LATIN CAPITAL LETTER L WITH MIDDLE TILDE -02C63 LATIN CAPITAL LETTER P WITH STROKE -02C64 LATIN CAPITAL LETTER R WITH TAIL -02C65 LATIN SMALL LETTER A WITH STROKE -02C66 LATIN SMALL LETTER T WITH DIAGONAL STROKE -02C67 LATIN CAPITAL LETTER H WITH DESCENDER -02C68 LATIN SMALL LETTER H WITH DESCENDER -02C69 LATIN CAPITAL LETTER K WITH DESCENDER -02C6A LATIN SMALL LETTER K WITH DESCENDER -02C6B LATIN CAPITAL LETTER Z WITH DESCENDER -02C6C LATIN SMALL LETTER Z WITH DESCENDER -02C6D LATIN CAPITAL LETTER ALPHA -02C6E LATIN CAPITAL LETTER M WITH HOOK -02C6F LATIN CAPITAL LETTER TURNED A -02C70 LATIN CAPITAL LETTER TURNED ALPHA -02C71 LATIN SMALL LETTER V WITH RIGHT HOOK -02C72 LATIN CAPITAL LETTER W WITH HOOK -02C73 LATIN SMALL LETTER W WITH HOOK -02C74 LATIN SMALL LETTER V WITH CURL -02C75 LATIN CAPITAL LETTER HALF H -02C76 LATIN SMALL LETTER HALF H -02C77 LATIN SMALL LETTER TAILLESS PHI -02C78 LATIN SMALL LETTER E WITH NOTCH -02C79 LATIN SMALL LETTER TURNED R WITH TAIL -02C7A LATIN SMALL LETTER O WITH LOW RING INSIDE -02C7B LATIN LETTER SMALL CAPITAL TURNED E -02C7C LATIN SUBSCRIPT SMALL LETTER J -02C7D MODIFIER LETTER CAPITAL V -02C7E LATIN CAPITAL LETTER S WITH SWASH TAIL -02C7F LATIN CAPITAL LETTER Z WITH SWASH TAIL -02C80 COPTIC CAPITAL LETTER ALFA -02C81 COPTIC SMALL LETTER ALFA -02C82 COPTIC CAPITAL LETTER VIDA -02C83 COPTIC SMALL LETTER VIDA -02C84 COPTIC CAPITAL LETTER GAMMA -02C85 COPTIC SMALL LETTER GAMMA -02C86 COPTIC CAPITAL LETTER DALDA -02C87 COPTIC SMALL LETTER DALDA -02C88 COPTIC CAPITAL LETTER EIE -02C89 COPTIC SMALL LETTER EIE -02C8A COPTIC CAPITAL LETTER SOU -02C8B COPTIC SMALL LETTER SOU -02C8C COPTIC CAPITAL LETTER ZATA -02C8D COPTIC SMALL LETTER ZATA -02C8E COPTIC CAPITAL LETTER HATE -02C8F COPTIC SMALL LETTER HATE -02C90 COPTIC CAPITAL LETTER THETHE -02C91 COPTIC SMALL LETTER THETHE -02C92 COPTIC CAPITAL LETTER IAUDA -02C93 COPTIC SMALL LETTER IAUDA -02C94 COPTIC CAPITAL LETTER KAPA -02C95 COPTIC SMALL LETTER KAPA -02C96 COPTIC CAPITAL LETTER LAULA -02C97 COPTIC SMALL LETTER LAULA -02C98 COPTIC CAPITAL LETTER MI -02C99 COPTIC SMALL LETTER MI -02C9A COPTIC CAPITAL LETTER NI -02C9B COPTIC SMALL LETTER NI -02C9C COPTIC CAPITAL LETTER KSI -02C9D COPTIC SMALL LETTER KSI -02C9E COPTIC CAPITAL LETTER O -02C9F COPTIC SMALL LETTER O -02CA0 COPTIC CAPITAL LETTER PI -02CA1 COPTIC SMALL LETTER PI -02CA2 COPTIC CAPITAL LETTER RO -02CA3 COPTIC SMALL LETTER RO -02CA4 COPTIC CAPITAL LETTER SIMA -02CA5 COPTIC SMALL LETTER SIMA -02CA6 COPTIC CAPITAL LETTER TAU -02CA7 COPTIC SMALL LETTER TAU -02CA8 COPTIC CAPITAL LETTER UA -02CA9 COPTIC SMALL LETTER UA -02CAA COPTIC CAPITAL LETTER FI -02CAB COPTIC SMALL LETTER FI -02CAC COPTIC CAPITAL LETTER KHI -02CAD COPTIC SMALL LETTER KHI -02CAE COPTIC CAPITAL LETTER PSI -02CAF COPTIC SMALL LETTER PSI -02CB0 COPTIC CAPITAL LETTER OOU -02CB1 COPTIC SMALL LETTER OOU -02CB2 COPTIC CAPITAL LETTER DIALECT-P ALEF -02CB3 COPTIC SMALL LETTER DIALECT-P ALEF -02CB4 COPTIC CAPITAL LETTER OLD COPTIC AIN -02CB5 COPTIC SMALL LETTER OLD COPTIC AIN -02CB6 COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE -02CB7 COPTIC SMALL LETTER CRYPTOGRAMMIC EIE -02CB8 COPTIC CAPITAL LETTER DIALECT-P KAPA -02CB9 COPTIC SMALL LETTER DIALECT-P KAPA -02CBA COPTIC CAPITAL LETTER DIALECT-P NI -02CBB COPTIC SMALL LETTER DIALECT-P NI -02CBC COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI -02CBD COPTIC SMALL LETTER CRYPTOGRAMMIC NI -02CBE COPTIC CAPITAL LETTER OLD COPTIC OOU -02CBF COPTIC SMALL LETTER OLD COPTIC OOU -02CC0 COPTIC CAPITAL LETTER SAMPI -02CC1 COPTIC SMALL LETTER SAMPI -02CC2 COPTIC CAPITAL LETTER CROSSED SHEI -02CC3 COPTIC SMALL LETTER CROSSED SHEI -02CC4 COPTIC CAPITAL LETTER OLD COPTIC SHEI -02CC5 COPTIC SMALL LETTER OLD COPTIC SHEI -02CC6 COPTIC CAPITAL LETTER OLD COPTIC ESH -02CC7 COPTIC SMALL LETTER OLD COPTIC ESH -02CC8 COPTIC CAPITAL LETTER AKHMIMIC KHEI -02CC9 COPTIC SMALL LETTER AKHMIMIC KHEI -02CCA COPTIC CAPITAL LETTER DIALECT-P HORI -02CCB COPTIC SMALL LETTER DIALECT-P HORI -02CCC COPTIC CAPITAL LETTER OLD COPTIC HORI -02CCD COPTIC SMALL LETTER OLD COPTIC HORI -02CCE COPTIC CAPITAL LETTER OLD COPTIC HA -02CCF COPTIC SMALL LETTER OLD COPTIC HA -02CD0 COPTIC CAPITAL LETTER L-SHAPED HA -02CD1 COPTIC SMALL LETTER L-SHAPED HA -02CD2 COPTIC CAPITAL LETTER OLD COPTIC HEI -02CD3 COPTIC SMALL LETTER OLD COPTIC HEI -02CD4 COPTIC CAPITAL LETTER OLD COPTIC HAT -02CD5 COPTIC SMALL LETTER OLD COPTIC HAT -02CD6 COPTIC CAPITAL LETTER OLD COPTIC GANGIA -02CD7 COPTIC SMALL LETTER OLD COPTIC GANGIA -02CD8 COPTIC CAPITAL LETTER OLD COPTIC DJA -02CD9 COPTIC SMALL LETTER OLD COPTIC DJA -02CDA COPTIC CAPITAL LETTER OLD COPTIC SHIMA -02CDB COPTIC SMALL LETTER OLD COPTIC SHIMA -02CDC COPTIC CAPITAL LETTER OLD NUBIAN SHIMA -02CDD COPTIC SMALL LETTER OLD NUBIAN SHIMA -02CDE COPTIC CAPITAL LETTER OLD NUBIAN NGI -02CDF COPTIC SMALL LETTER OLD NUBIAN NGI -02CE0 COPTIC CAPITAL LETTER OLD NUBIAN NYI -02CE1 COPTIC SMALL LETTER OLD NUBIAN NYI -02CE2 COPTIC CAPITAL LETTER OLD NUBIAN WAU -02CE3 COPTIC SMALL LETTER OLD NUBIAN WAU -02CE4 COPTIC SYMBOL KAI -02CE5 COPTIC SYMBOL MI RO -02CE6 COPTIC SYMBOL PI RO -02CE7 COPTIC SYMBOL STAUROS -02CE8 COPTIC SYMBOL TAU RO -02CE9 COPTIC SYMBOL KHI RO -02CEA COPTIC SYMBOL SHIMA SIMA -02CEB COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI -02CEC COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI -02CED COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA -02CEE COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA -02CEF COPTIC COMBINING NI ABOVE -02CF0 COPTIC COMBINING SPIRITUS ASPER -02CF1 COPTIC COMBINING SPIRITUS LENIS -02CF2 COPTIC CAPITAL LETTER BOHAIRIC KHEI -02CF3 COPTIC SMALL LETTER BOHAIRIC KHEI -02CF9 COPTIC OLD NUBIAN FULL STOP -02CFA COPTIC OLD NUBIAN DIRECT QUESTION MARK -02CFB COPTIC OLD NUBIAN INDIRECT QUESTION MARK -02CFC COPTIC OLD NUBIAN VERSE DIVIDER -02CFD COPTIC FRACTION ONE HALF -02CFE COPTIC FULL STOP -02CFF COPTIC MORPHOLOGICAL DIVIDER -02D00 GEORGIAN SMALL LETTER AN -02D01 GEORGIAN SMALL LETTER BAN -02D02 GEORGIAN SMALL LETTER GAN -02D03 GEORGIAN SMALL LETTER DON -02D04 GEORGIAN SMALL LETTER EN -02D05 GEORGIAN SMALL LETTER VIN -02D06 GEORGIAN SMALL LETTER ZEN -02D07 GEORGIAN SMALL LETTER TAN -02D08 GEORGIAN SMALL LETTER IN -02D09 GEORGIAN SMALL LETTER KAN -02D0A GEORGIAN SMALL LETTER LAS -02D0B GEORGIAN SMALL LETTER MAN -02D0C GEORGIAN SMALL LETTER NAR -02D0D GEORGIAN SMALL LETTER ON -02D0E GEORGIAN SMALL LETTER PAR -02D0F GEORGIAN SMALL LETTER ZHAR -02D10 GEORGIAN SMALL LETTER RAE -02D11 GEORGIAN SMALL LETTER SAN -02D12 GEORGIAN SMALL LETTER TAR -02D13 GEORGIAN SMALL LETTER UN -02D14 GEORGIAN SMALL LETTER PHAR -02D15 GEORGIAN SMALL LETTER KHAR -02D16 GEORGIAN SMALL LETTER GHAN -02D17 GEORGIAN SMALL LETTER QAR -02D18 GEORGIAN SMALL LETTER SHIN -02D19 GEORGIAN SMALL LETTER CHIN -02D1A GEORGIAN SMALL LETTER CAN -02D1B GEORGIAN SMALL LETTER JIL -02D1C GEORGIAN SMALL LETTER CIL -02D1D GEORGIAN SMALL LETTER CHAR -02D1E GEORGIAN SMALL LETTER XAN -02D1F GEORGIAN SMALL LETTER JHAN -02D20 GEORGIAN SMALL LETTER HAE -02D21 GEORGIAN SMALL LETTER HE -02D22 GEORGIAN SMALL LETTER HIE -02D23 GEORGIAN SMALL LETTER WE -02D24 GEORGIAN SMALL LETTER HAR -02D25 GEORGIAN SMALL LETTER HOE -02D27 GEORGIAN SMALL LETTER YN -02D2D GEORGIAN SMALL LETTER AEN -02D30 TIFINAGH LETTER YA -02D31 TIFINAGH LETTER YAB -02D32 TIFINAGH LETTER YABH -02D33 TIFINAGH LETTER YAG -02D34 TIFINAGH LETTER YAGHH -02D35 TIFINAGH LETTER BERBER ACADEMY YAJ -02D36 TIFINAGH LETTER YAJ -02D37 TIFINAGH LETTER YAD -02D38 TIFINAGH LETTER YADH -02D39 TIFINAGH LETTER YADD -02D3A TIFINAGH LETTER YADDH -02D3B TIFINAGH LETTER YEY -02D3C TIFINAGH LETTER YAF -02D3D TIFINAGH LETTER YAK -02D3E TIFINAGH LETTER TUAREG YAK -02D3F TIFINAGH LETTER YAKHH -02D40 TIFINAGH LETTER YAH -02D41 TIFINAGH LETTER BERBER ACADEMY YAH -02D42 TIFINAGH LETTER TUAREG YAH -02D43 TIFINAGH LETTER YAHH -02D44 TIFINAGH LETTER YAA -02D45 TIFINAGH LETTER YAKH -02D46 TIFINAGH LETTER TUAREG YAKH -02D47 TIFINAGH LETTER YAQ -02D48 TIFINAGH LETTER TUAREG YAQ -02D49 TIFINAGH LETTER YI -02D4A TIFINAGH LETTER YAZH -02D4B TIFINAGH LETTER AHAGGAR YAZH -02D4C TIFINAGH LETTER TUAREG YAZH -02D4D TIFINAGH LETTER YAL -02D4E TIFINAGH LETTER YAM -02D4F TIFINAGH LETTER YAN -02D50 TIFINAGH LETTER TUAREG YAGN -02D51 TIFINAGH LETTER TUAREG YANG -02D52 TIFINAGH LETTER YAP -02D53 TIFINAGH LETTER YU -02D54 TIFINAGH LETTER YAR -02D55 TIFINAGH LETTER YARR -02D56 TIFINAGH LETTER YAGH -02D57 TIFINAGH LETTER TUAREG YAGH -02D58 TIFINAGH LETTER AYER YAGH -02D59 TIFINAGH LETTER YAS -02D5A TIFINAGH LETTER YASS -02D5B TIFINAGH LETTER YASH -02D5C TIFINAGH LETTER YAT -02D5D TIFINAGH LETTER YATH -02D5E TIFINAGH LETTER YACH -02D5F TIFINAGH LETTER YATT -02D60 TIFINAGH LETTER YAV -02D61 TIFINAGH LETTER YAW -02D62 TIFINAGH LETTER YAY -02D63 TIFINAGH LETTER YAZ -02D64 TIFINAGH LETTER TAWELLEMET YAZ -02D65 TIFINAGH LETTER YAZZ -02D66 TIFINAGH LETTER YE -02D67 TIFINAGH LETTER YO -02D6F TIFINAGH MODIFIER LETTER LABIALIZATION MARK -02D70 TIFINAGH SEPARATOR MARK -02D7F TIFINAGH CONSONANT JOINER -02D80 ETHIOPIC SYLLABLE LOA -02D81 ETHIOPIC SYLLABLE MOA -02D82 ETHIOPIC SYLLABLE ROA -02D83 ETHIOPIC SYLLABLE SOA -02D84 ETHIOPIC SYLLABLE SHOA -02D85 ETHIOPIC SYLLABLE BOA -02D86 ETHIOPIC SYLLABLE TOA -02D87 ETHIOPIC SYLLABLE COA -02D88 ETHIOPIC SYLLABLE NOA -02D89 ETHIOPIC SYLLABLE NYOA -02D8A ETHIOPIC SYLLABLE GLOTTAL OA -02D8B ETHIOPIC SYLLABLE ZOA -02D8C ETHIOPIC SYLLABLE DOA -02D8D ETHIOPIC SYLLABLE DDOA -02D8E ETHIOPIC SYLLABLE JOA -02D8F ETHIOPIC SYLLABLE THOA -02D90 ETHIOPIC SYLLABLE CHOA -02D91 ETHIOPIC SYLLABLE PHOA -02D92 ETHIOPIC SYLLABLE POA -02D93 ETHIOPIC SYLLABLE GGWA -02D94 ETHIOPIC SYLLABLE GGWI -02D95 ETHIOPIC SYLLABLE GGWEE -02D96 ETHIOPIC SYLLABLE GGWE -02DA0 ETHIOPIC SYLLABLE SSA -02DA1 ETHIOPIC SYLLABLE SSU -02DA2 ETHIOPIC SYLLABLE SSI -02DA3 ETHIOPIC SYLLABLE SSAA -02DA4 ETHIOPIC SYLLABLE SSEE -02DA5 ETHIOPIC SYLLABLE SSE -02DA6 ETHIOPIC SYLLABLE SSO -02DA8 ETHIOPIC SYLLABLE CCA -02DA9 ETHIOPIC SYLLABLE CCU -02DAA ETHIOPIC SYLLABLE CCI -02DAB ETHIOPIC SYLLABLE CCAA -02DAC ETHIOPIC SYLLABLE CCEE -02DAD ETHIOPIC SYLLABLE CCE -02DAE ETHIOPIC SYLLABLE CCO -02DB0 ETHIOPIC SYLLABLE ZZA -02DB1 ETHIOPIC SYLLABLE ZZU -02DB2 ETHIOPIC SYLLABLE ZZI -02DB3 ETHIOPIC SYLLABLE ZZAA -02DB4 ETHIOPIC SYLLABLE ZZEE -02DB5 ETHIOPIC SYLLABLE ZZE -02DB6 ETHIOPIC SYLLABLE ZZO -02DB8 ETHIOPIC SYLLABLE CCHA -02DB9 ETHIOPIC SYLLABLE CCHU -02DBA ETHIOPIC SYLLABLE CCHI -02DBB ETHIOPIC SYLLABLE CCHAA -02DBC ETHIOPIC SYLLABLE CCHEE -02DBD ETHIOPIC SYLLABLE CCHE -02DBE ETHIOPIC SYLLABLE CCHO -02DC0 ETHIOPIC SYLLABLE QYA -02DC1 ETHIOPIC SYLLABLE QYU -02DC2 ETHIOPIC SYLLABLE QYI -02DC3 ETHIOPIC SYLLABLE QYAA -02DC4 ETHIOPIC SYLLABLE QYEE -02DC5 ETHIOPIC SYLLABLE QYE -02DC6 ETHIOPIC SYLLABLE QYO -02DC8 ETHIOPIC SYLLABLE KYA -02DC9 ETHIOPIC SYLLABLE KYU -02DCA ETHIOPIC SYLLABLE KYI -02DCB ETHIOPIC SYLLABLE KYAA -02DCC ETHIOPIC SYLLABLE KYEE -02DCD ETHIOPIC SYLLABLE KYE -02DCE ETHIOPIC SYLLABLE KYO -02DD0 ETHIOPIC SYLLABLE XYA -02DD1 ETHIOPIC SYLLABLE XYU -02DD2 ETHIOPIC SYLLABLE XYI -02DD3 ETHIOPIC SYLLABLE XYAA -02DD4 ETHIOPIC SYLLABLE XYEE -02DD5 ETHIOPIC SYLLABLE XYE -02DD6 ETHIOPIC SYLLABLE XYO -02DD8 ETHIOPIC SYLLABLE GYA -02DD9 ETHIOPIC SYLLABLE GYU -02DDA ETHIOPIC SYLLABLE GYI -02DDB ETHIOPIC SYLLABLE GYAA -02DDC ETHIOPIC SYLLABLE GYEE -02DDD ETHIOPIC SYLLABLE GYE -02DDE ETHIOPIC SYLLABLE GYO -02DE0 COMBINING CYRILLIC LETTER BE -02DE1 COMBINING CYRILLIC LETTER VE -02DE2 COMBINING CYRILLIC LETTER GHE -02DE3 COMBINING CYRILLIC LETTER DE -02DE4 COMBINING CYRILLIC LETTER ZHE -02DE5 COMBINING CYRILLIC LETTER ZE -02DE6 COMBINING CYRILLIC LETTER KA -02DE7 COMBINING CYRILLIC LETTER EL -02DE8 COMBINING CYRILLIC LETTER EM -02DE9 COMBINING CYRILLIC LETTER EN -02DEA COMBINING CYRILLIC LETTER O -02DEB COMBINING CYRILLIC LETTER PE -02DEC COMBINING CYRILLIC LETTER ER -02DED COMBINING CYRILLIC LETTER ES -02DEE COMBINING CYRILLIC LETTER TE -02DEF COMBINING CYRILLIC LETTER HA -02DF0 COMBINING CYRILLIC LETTER TSE -02DF1 COMBINING CYRILLIC LETTER CHE -02DF2 COMBINING CYRILLIC LETTER SHA -02DF3 COMBINING CYRILLIC LETTER SHCHA -02DF4 COMBINING CYRILLIC LETTER FITA -02DF5 COMBINING CYRILLIC LETTER ES-TE -02DF6 COMBINING CYRILLIC LETTER A -02DF7 COMBINING CYRILLIC LETTER IE -02DF8 COMBINING CYRILLIC LETTER DJERV -02DF9 COMBINING CYRILLIC LETTER MONOGRAPH UK -02DFA COMBINING CYRILLIC LETTER YAT -02DFB COMBINING CYRILLIC LETTER YU -02DFC COMBINING CYRILLIC LETTER IOTIFIED A -02DFD COMBINING CYRILLIC LETTER LITTLE YUS -02DFE COMBINING CYRILLIC LETTER BIG YUS -02DFF COMBINING CYRILLIC LETTER IOTIFIED BIG YUS -02E00 RIGHT ANGLE SUBSTITUTION MARKER -02E01 RIGHT ANGLE DOTTED SUBSTITUTION MARKER -02E02 LEFT SUBSTITUTION BRACKET -02E03 RIGHT SUBSTITUTION BRACKET -02E04 LEFT DOTTED SUBSTITUTION BRACKET -02E05 RIGHT DOTTED SUBSTITUTION BRACKET -02E06 RAISED INTERPOLATION MARKER -02E07 RAISED DOTTED INTERPOLATION MARKER -02E08 DOTTED TRANSPOSITION MARKER -02E09 LEFT TRANSPOSITION BRACKET -02E0A RIGHT TRANSPOSITION BRACKET -02E0B RAISED SQUARE -02E0C LEFT RAISED OMISSION BRACKET -02E0D RIGHT RAISED OMISSION BRACKET -02E0E EDITORIAL CORONIS -02E0F PARAGRAPHOS -02E10 FORKED PARAGRAPHOS -02E11 REVERSED FORKED PARAGRAPHOS -02E12 HYPODIASTOLE -02E13 DOTTED OBELOS -02E14 DOWNWARDS ANCORA -02E15 UPWARDS ANCORA -02E16 DOTTED RIGHT-POINTING ANGLE -02E17 DOUBLE OBLIQUE HYPHEN -02E18 INVERTED INTERROBANG -02E19 PALM BRANCH -02E1A HYPHEN WITH DIAERESIS -02E1B TILDE WITH RING ABOVE -02E1C LEFT LOW PARAPHRASE BRACKET -02E1D RIGHT LOW PARAPHRASE BRACKET -02E1E TILDE WITH DOT ABOVE -02E1F TILDE WITH DOT BELOW -02E20 LEFT VERTICAL BAR WITH QUILL -02E21 RIGHT VERTICAL BAR WITH QUILL -02E22 TOP LEFT HALF BRACKET -02E23 TOP RIGHT HALF BRACKET -02E24 BOTTOM LEFT HALF BRACKET -02E25 BOTTOM RIGHT HALF BRACKET -02E26 LEFT SIDEWAYS U BRACKET -02E27 RIGHT SIDEWAYS U BRACKET -02E28 LEFT DOUBLE PARENTHESIS -02E29 RIGHT DOUBLE PARENTHESIS -02E2A TWO DOTS OVER ONE DOT PUNCTUATION -02E2B ONE DOT OVER TWO DOTS PUNCTUATION -02E2C SQUARED FOUR DOT PUNCTUATION -02E2D FIVE DOT MARK -02E2E REVERSED QUESTION MARK -02E2F VERTICAL TILDE -02E30 RING POINT -02E31 WORD SEPARATOR MIDDLE DOT -02E32 TURNED COMMA -02E33 RAISED DOT -02E34 RAISED COMMA -02E35 TURNED SEMICOLON -02E36 DAGGER WITH LEFT GUARD -02E37 DAGGER WITH RIGHT GUARD -02E38 TURNED DAGGER -02E39 TOP HALF SECTION SIGN -02E3A TWO-EM DASH -02E3B THREE-EM DASH -02E3C STENOGRAPHIC FULL STOP -02E3D VERTICAL SIX DOTS -02E3E WIGGLY VERTICAL LINE -02E3F CAPITULUM -02E40 DOUBLE HYPHEN -02E41 REVERSED COMMA -02E42 DOUBLE LOW-REVERSED-9 QUOTATION MARK -02E80 CJK RADICAL REPEAT -02E81 CJK RADICAL CLIFF -02E82 CJK RADICAL SECOND ONE -02E83 CJK RADICAL SECOND TWO -02E84 CJK RADICAL SECOND THREE -02E85 CJK RADICAL PERSON -02E86 CJK RADICAL BOX -02E87 CJK RADICAL TABLE -02E88 CJK RADICAL KNIFE ONE -02E89 CJK RADICAL KNIFE TWO -02E8A CJK RADICAL DIVINATION -02E8B CJK RADICAL SEAL -02E8C CJK RADICAL SMALL ONE -02E8D CJK RADICAL SMALL TWO -02E8E CJK RADICAL LAME ONE -02E8F CJK RADICAL LAME TWO -02E90 CJK RADICAL LAME THREE -02E91 CJK RADICAL LAME FOUR -02E92 CJK RADICAL SNAKE -02E93 CJK RADICAL THREAD -02E94 CJK RADICAL SNOUT ONE -02E95 CJK RADICAL SNOUT TWO -02E96 CJK RADICAL HEART ONE -02E97 CJK RADICAL HEART TWO -02E98 CJK RADICAL HAND -02E99 CJK RADICAL RAP -02E9B CJK RADICAL CHOKE -02E9C CJK RADICAL SUN -02E9D CJK RADICAL MOON -02E9E CJK RADICAL DEATH -02E9F CJK RADICAL MOTHER -02EA0 CJK RADICAL CIVILIAN -02EA1 CJK RADICAL WATER ONE -02EA2 CJK RADICAL WATER TWO -02EA3 CJK RADICAL FIRE -02EA4 CJK RADICAL PAW ONE -02EA5 CJK RADICAL PAW TWO -02EA6 CJK RADICAL SIMPLIFIED HALF TREE TRUNK -02EA7 CJK RADICAL COW -02EA8 CJK RADICAL DOG -02EA9 CJK RADICAL JADE -02EAA CJK RADICAL BOLT OF CLOTH -02EAB CJK RADICAL EYE -02EAC CJK RADICAL SPIRIT ONE -02EAD CJK RADICAL SPIRIT TWO -02EAE CJK RADICAL BAMBOO -02EAF CJK RADICAL SILK -02EB0 CJK RADICAL C-SIMPLIFIED SILK -02EB1 CJK RADICAL NET ONE -02EB2 CJK RADICAL NET TWO -02EB3 CJK RADICAL NET THREE -02EB4 CJK RADICAL NET FOUR -02EB5 CJK RADICAL MESH -02EB6 CJK RADICAL SHEEP -02EB7 CJK RADICAL RAM -02EB8 CJK RADICAL EWE -02EB9 CJK RADICAL OLD -02EBA CJK RADICAL BRUSH ONE -02EBB CJK RADICAL BRUSH TWO -02EBC CJK RADICAL MEAT -02EBD CJK RADICAL MORTAR -02EBE CJK RADICAL GRASS ONE -02EBF CJK RADICAL GRASS TWO -02EC0 CJK RADICAL GRASS THREE -02EC1 CJK RADICAL TIGER -02EC2 CJK RADICAL CLOTHES -02EC3 CJK RADICAL WEST ONE -02EC4 CJK RADICAL WEST TWO -02EC5 CJK RADICAL C-SIMPLIFIED SEE -02EC6 CJK RADICAL SIMPLIFIED HORN -02EC7 CJK RADICAL HORN -02EC8 CJK RADICAL C-SIMPLIFIED SPEECH -02EC9 CJK RADICAL C-SIMPLIFIED SHELL -02ECA CJK RADICAL FOOT -02ECB CJK RADICAL C-SIMPLIFIED CART -02ECC CJK RADICAL SIMPLIFIED WALK -02ECD CJK RADICAL WALK ONE -02ECE CJK RADICAL WALK TWO -02ECF CJK RADICAL CITY -02ED0 CJK RADICAL C-SIMPLIFIED GOLD -02ED1 CJK RADICAL LONG ONE -02ED2 CJK RADICAL LONG TWO -02ED3 CJK RADICAL C-SIMPLIFIED LONG -02ED4 CJK RADICAL C-SIMPLIFIED GATE -02ED5 CJK RADICAL MOUND ONE -02ED6 CJK RADICAL MOUND TWO -02ED7 CJK RADICAL RAIN -02ED8 CJK RADICAL BLUE -02ED9 CJK RADICAL C-SIMPLIFIED TANNED LEATHER -02EDA CJK RADICAL C-SIMPLIFIED LEAF -02EDB CJK RADICAL C-SIMPLIFIED WIND -02EDC CJK RADICAL C-SIMPLIFIED FLY -02EDD CJK RADICAL EAT ONE -02EDE CJK RADICAL EAT TWO -02EDF CJK RADICAL EAT THREE -02EE0 CJK RADICAL C-SIMPLIFIED EAT -02EE1 CJK RADICAL HEAD -02EE2 CJK RADICAL C-SIMPLIFIED HORSE -02EE3 CJK RADICAL BONE -02EE4 CJK RADICAL GHOST -02EE5 CJK RADICAL C-SIMPLIFIED FISH -02EE6 CJK RADICAL C-SIMPLIFIED BIRD -02EE7 CJK RADICAL C-SIMPLIFIED SALT -02EE8 CJK RADICAL SIMPLIFIED WHEAT -02EE9 CJK RADICAL SIMPLIFIED YELLOW -02EEA CJK RADICAL C-SIMPLIFIED FROG -02EEB CJK RADICAL J-SIMPLIFIED EVEN -02EEC CJK RADICAL C-SIMPLIFIED EVEN -02EED CJK RADICAL J-SIMPLIFIED TOOTH -02EEE CJK RADICAL C-SIMPLIFIED TOOTH -02EEF CJK RADICAL J-SIMPLIFIED DRAGON -02EF0 CJK RADICAL C-SIMPLIFIED DRAGON -02EF1 CJK RADICAL TURTLE -02EF2 CJK RADICAL J-SIMPLIFIED TURTLE -02EF3 CJK RADICAL C-SIMPLIFIED TURTLE -02F00 KANGXI RADICAL ONE -02F01 KANGXI RADICAL LINE -02F02 KANGXI RADICAL DOT -02F03 KANGXI RADICAL SLASH -02F04 KANGXI RADICAL SECOND -02F05 KANGXI RADICAL HOOK -02F06 KANGXI RADICAL TWO -02F07 KANGXI RADICAL LID -02F08 KANGXI RADICAL MAN -02F09 KANGXI RADICAL LEGS -02F0A KANGXI RADICAL ENTER -02F0B KANGXI RADICAL EIGHT -02F0C KANGXI RADICAL DOWN BOX -02F0D KANGXI RADICAL COVER -02F0E KANGXI RADICAL ICE -02F0F KANGXI RADICAL TABLE -02F10 KANGXI RADICAL OPEN BOX -02F11 KANGXI RADICAL KNIFE -02F12 KANGXI RADICAL POWER -02F13 KANGXI RADICAL WRAP -02F14 KANGXI RADICAL SPOON -02F15 KANGXI RADICAL RIGHT OPEN BOX -02F16 KANGXI RADICAL HIDING ENCLOSURE -02F17 KANGXI RADICAL TEN -02F18 KANGXI RADICAL DIVINATION -02F19 KANGXI RADICAL SEAL -02F1A KANGXI RADICAL CLIFF -02F1B KANGXI RADICAL PRIVATE -02F1C KANGXI RADICAL AGAIN -02F1D KANGXI RADICAL MOUTH -02F1E KANGXI RADICAL ENCLOSURE -02F1F KANGXI RADICAL EARTH -02F20 KANGXI RADICAL SCHOLAR -02F21 KANGXI RADICAL GO -02F22 KANGXI RADICAL GO SLOWLY -02F23 KANGXI RADICAL EVENING -02F24 KANGXI RADICAL BIG -02F25 KANGXI RADICAL WOMAN -02F26 KANGXI RADICAL CHILD -02F27 KANGXI RADICAL ROOF -02F28 KANGXI RADICAL INCH -02F29 KANGXI RADICAL SMALL -02F2A KANGXI RADICAL LAME -02F2B KANGXI RADICAL CORPSE -02F2C KANGXI RADICAL SPROUT -02F2D KANGXI RADICAL MOUNTAIN -02F2E KANGXI RADICAL RIVER -02F2F KANGXI RADICAL WORK -02F30 KANGXI RADICAL ONESELF -02F31 KANGXI RADICAL TURBAN -02F32 KANGXI RADICAL DRY -02F33 KANGXI RADICAL SHORT THREAD -02F34 KANGXI RADICAL DOTTED CLIFF -02F35 KANGXI RADICAL LONG STRIDE -02F36 KANGXI RADICAL TWO HANDS -02F37 KANGXI RADICAL SHOOT -02F38 KANGXI RADICAL BOW -02F39 KANGXI RADICAL SNOUT -02F3A KANGXI RADICAL BRISTLE -02F3B KANGXI RADICAL STEP -02F3C KANGXI RADICAL HEART -02F3D KANGXI RADICAL HALBERD -02F3E KANGXI RADICAL DOOR -02F3F KANGXI RADICAL HAND -02F40 KANGXI RADICAL BRANCH -02F41 KANGXI RADICAL RAP -02F42 KANGXI RADICAL SCRIPT -02F43 KANGXI RADICAL DIPPER -02F44 KANGXI RADICAL AXE -02F45 KANGXI RADICAL SQUARE -02F46 KANGXI RADICAL NOT -02F47 KANGXI RADICAL SUN -02F48 KANGXI RADICAL SAY -02F49 KANGXI RADICAL MOON -02F4A KANGXI RADICAL TREE -02F4B KANGXI RADICAL LACK -02F4C KANGXI RADICAL STOP -02F4D KANGXI RADICAL DEATH -02F4E KANGXI RADICAL WEAPON -02F4F KANGXI RADICAL DO NOT -02F50 KANGXI RADICAL COMPARE -02F51 KANGXI RADICAL FUR -02F52 KANGXI RADICAL CLAN -02F53 KANGXI RADICAL STEAM -02F54 KANGXI RADICAL WATER -02F55 KANGXI RADICAL FIRE -02F56 KANGXI RADICAL CLAW -02F57 KANGXI RADICAL FATHER -02F58 KANGXI RADICAL DOUBLE X -02F59 KANGXI RADICAL HALF TREE TRUNK -02F5A KANGXI RADICAL SLICE -02F5B KANGXI RADICAL FANG -02F5C KANGXI RADICAL COW -02F5D KANGXI RADICAL DOG -02F5E KANGXI RADICAL PROFOUND -02F5F KANGXI RADICAL JADE -02F60 KANGXI RADICAL MELON -02F61 KANGXI RADICAL TILE -02F62 KANGXI RADICAL SWEET -02F63 KANGXI RADICAL LIFE -02F64 KANGXI RADICAL USE -02F65 KANGXI RADICAL FIELD -02F66 KANGXI RADICAL BOLT OF CLOTH -02F67 KANGXI RADICAL SICKNESS -02F68 KANGXI RADICAL DOTTED TENT -02F69 KANGXI RADICAL WHITE -02F6A KANGXI RADICAL SKIN -02F6B KANGXI RADICAL DISH -02F6C KANGXI RADICAL EYE -02F6D KANGXI RADICAL SPEAR -02F6E KANGXI RADICAL ARROW -02F6F KANGXI RADICAL STONE -02F70 KANGXI RADICAL SPIRIT -02F71 KANGXI RADICAL TRACK -02F72 KANGXI RADICAL GRAIN -02F73 KANGXI RADICAL CAVE -02F74 KANGXI RADICAL STAND -02F75 KANGXI RADICAL BAMBOO -02F76 KANGXI RADICAL RICE -02F77 KANGXI RADICAL SILK -02F78 KANGXI RADICAL JAR -02F79 KANGXI RADICAL NET -02F7A KANGXI RADICAL SHEEP -02F7B KANGXI RADICAL FEATHER -02F7C KANGXI RADICAL OLD -02F7D KANGXI RADICAL AND -02F7E KANGXI RADICAL PLOW -02F7F KANGXI RADICAL EAR -02F80 KANGXI RADICAL BRUSH -02F81 KANGXI RADICAL MEAT -02F82 KANGXI RADICAL MINISTER -02F83 KANGXI RADICAL SELF -02F84 KANGXI RADICAL ARRIVE -02F85 KANGXI RADICAL MORTAR -02F86 KANGXI RADICAL TONGUE -02F87 KANGXI RADICAL OPPOSE -02F88 KANGXI RADICAL BOAT -02F89 KANGXI RADICAL STOPPING -02F8A KANGXI RADICAL COLOR -02F8B KANGXI RADICAL GRASS -02F8C KANGXI RADICAL TIGER -02F8D KANGXI RADICAL INSECT -02F8E KANGXI RADICAL BLOOD -02F8F KANGXI RADICAL WALK ENCLOSURE -02F90 KANGXI RADICAL CLOTHES -02F91 KANGXI RADICAL WEST -02F92 KANGXI RADICAL SEE -02F93 KANGXI RADICAL HORN -02F94 KANGXI RADICAL SPEECH -02F95 KANGXI RADICAL VALLEY -02F96 KANGXI RADICAL BEAN -02F97 KANGXI RADICAL PIG -02F98 KANGXI RADICAL BADGER -02F99 KANGXI RADICAL SHELL -02F9A KANGXI RADICAL RED -02F9B KANGXI RADICAL RUN -02F9C KANGXI RADICAL FOOT -02F9D KANGXI RADICAL BODY -02F9E KANGXI RADICAL CART -02F9F KANGXI RADICAL BITTER -02FA0 KANGXI RADICAL MORNING -02FA1 KANGXI RADICAL WALK -02FA2 KANGXI RADICAL CITY -02FA3 KANGXI RADICAL WINE -02FA4 KANGXI RADICAL DISTINGUISH -02FA5 KANGXI RADICAL VILLAGE -02FA6 KANGXI RADICAL GOLD -02FA7 KANGXI RADICAL LONG -02FA8 KANGXI RADICAL GATE -02FA9 KANGXI RADICAL MOUND -02FAA KANGXI RADICAL SLAVE -02FAB KANGXI RADICAL SHORT TAILED BIRD -02FAC KANGXI RADICAL RAIN -02FAD KANGXI RADICAL BLUE -02FAE KANGXI RADICAL WRONG -02FAF KANGXI RADICAL FACE -02FB0 KANGXI RADICAL LEATHER -02FB1 KANGXI RADICAL TANNED LEATHER -02FB2 KANGXI RADICAL LEEK -02FB3 KANGXI RADICAL SOUND -02FB4 KANGXI RADICAL LEAF -02FB5 KANGXI RADICAL WIND -02FB6 KANGXI RADICAL FLY -02FB7 KANGXI RADICAL EAT -02FB8 KANGXI RADICAL HEAD -02FB9 KANGXI RADICAL FRAGRANT -02FBA KANGXI RADICAL HORSE -02FBB KANGXI RADICAL BONE -02FBC KANGXI RADICAL TALL -02FBD KANGXI RADICAL HAIR -02FBE KANGXI RADICAL FIGHT -02FBF KANGXI RADICAL SACRIFICIAL WINE -02FC0 KANGXI RADICAL CAULDRON -02FC1 KANGXI RADICAL GHOST -02FC2 KANGXI RADICAL FISH -02FC3 KANGXI RADICAL BIRD -02FC4 KANGXI RADICAL SALT -02FC5 KANGXI RADICAL DEER -02FC6 KANGXI RADICAL WHEAT -02FC7 KANGXI RADICAL HEMP -02FC8 KANGXI RADICAL YELLOW -02FC9 KANGXI RADICAL MILLET -02FCA KANGXI RADICAL BLACK -02FCB KANGXI RADICAL EMBROIDERY -02FCC KANGXI RADICAL FROG -02FCD KANGXI RADICAL TRIPOD -02FCE KANGXI RADICAL DRUM -02FCF KANGXI RADICAL RAT -02FD0 KANGXI RADICAL NOSE -02FD1 KANGXI RADICAL EVEN -02FD2 KANGXI RADICAL TOOTH -02FD3 KANGXI RADICAL DRAGON -02FD4 KANGXI RADICAL TURTLE -02FD5 KANGXI RADICAL FLUTE -02FF0 IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT -02FF1 IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW -02FF2 IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT -02FF3 IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW -02FF4 IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND -02FF5 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE -02FF6 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW -02FF7 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT -02FF8 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT -02FF9 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT -02FFA IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT -02FFB IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID -03000 IDEOGRAPHIC SPACE -03001 IDEOGRAPHIC COMMA -03002 IDEOGRAPHIC FULL STOP -03003 DITTO MARK -03004 JAPANESE INDUSTRIAL STANDARD SYMBOL -03005 IDEOGRAPHIC ITERATION MARK -03006 IDEOGRAPHIC CLOSING MARK -03007 IDEOGRAPHIC NUMBER ZERO -03008 LEFT ANGLE BRACKET -03009 RIGHT ANGLE BRACKET -0300A LEFT DOUBLE ANGLE BRACKET -0300B RIGHT DOUBLE ANGLE BRACKET -0300C LEFT CORNER BRACKET -0300D RIGHT CORNER BRACKET -0300E LEFT WHITE CORNER BRACKET -0300F RIGHT WHITE CORNER BRACKET -03010 LEFT BLACK LENTICULAR BRACKET -03011 RIGHT BLACK LENTICULAR BRACKET -03012 POSTAL MARK -03013 GETA MARK -03014 LEFT TORTOISE SHELL BRACKET -03015 RIGHT TORTOISE SHELL BRACKET -03016 LEFT WHITE LENTICULAR BRACKET -03017 RIGHT WHITE LENTICULAR BRACKET -03018 LEFT WHITE TORTOISE SHELL BRACKET -03019 RIGHT WHITE TORTOISE SHELL BRACKET -0301A LEFT WHITE SQUARE BRACKET -0301B RIGHT WHITE SQUARE BRACKET -0301C WAVE DASH -0301D REVERSED DOUBLE PRIME QUOTATION MARK -0301E DOUBLE PRIME QUOTATION MARK -0301F LOW DOUBLE PRIME QUOTATION MARK -03020 POSTAL MARK FACE -03021 HANGZHOU NUMERAL ONE -03022 HANGZHOU NUMERAL TWO -03023 HANGZHOU NUMERAL THREE -03024 HANGZHOU NUMERAL FOUR -03025 HANGZHOU NUMERAL FIVE -03026 HANGZHOU NUMERAL SIX -03027 HANGZHOU NUMERAL SEVEN -03028 HANGZHOU NUMERAL EIGHT -03029 HANGZHOU NUMERAL NINE -0302A IDEOGRAPHIC LEVEL TONE MARK -0302B IDEOGRAPHIC RISING TONE MARK -0302C IDEOGRAPHIC DEPARTING TONE MARK -0302D IDEOGRAPHIC ENTERING TONE MARK -0302E HANGUL SINGLE DOT TONE MARK -0302F HANGUL DOUBLE DOT TONE MARK -03030 WAVY DASH -03031 VERTICAL KANA REPEAT MARK -03032 VERTICAL KANA REPEAT WITH VOICED SOUND MARK -03033 VERTICAL KANA REPEAT MARK UPPER HALF -03034 VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF -03035 VERTICAL KANA REPEAT MARK LOWER HALF -03036 CIRCLED POSTAL MARK -03037 IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL -03038 HANGZHOU NUMERAL TEN -03039 HANGZHOU NUMERAL TWENTY -0303A HANGZHOU NUMERAL THIRTY -0303B VERTICAL IDEOGRAPHIC ITERATION MARK -0303C MASU MARK -0303D PART ALTERNATION MARK -0303E IDEOGRAPHIC VARIATION INDICATOR -0303F IDEOGRAPHIC HALF FILL SPACE -03041 HIRAGANA LETTER SMALL A -03042 HIRAGANA LETTER A -03043 HIRAGANA LETTER SMALL I -03044 HIRAGANA LETTER I -03045 HIRAGANA LETTER SMALL U -03046 HIRAGANA LETTER U -03047 HIRAGANA LETTER SMALL E -03048 HIRAGANA LETTER E -03049 HIRAGANA LETTER SMALL O -0304A HIRAGANA LETTER O -0304B HIRAGANA LETTER KA -0304C HIRAGANA LETTER GA -0304D HIRAGANA LETTER KI -0304E HIRAGANA LETTER GI -0304F HIRAGANA LETTER KU -03050 HIRAGANA LETTER GU -03051 HIRAGANA LETTER KE -03052 HIRAGANA LETTER GE -03053 HIRAGANA LETTER KO -03054 HIRAGANA LETTER GO -03055 HIRAGANA LETTER SA -03056 HIRAGANA LETTER ZA -03057 HIRAGANA LETTER SI -03058 HIRAGANA LETTER ZI -03059 HIRAGANA LETTER SU -0305A HIRAGANA LETTER ZU -0305B HIRAGANA LETTER SE -0305C HIRAGANA LETTER ZE -0305D HIRAGANA LETTER SO -0305E HIRAGANA LETTER ZO -0305F HIRAGANA LETTER TA -03060 HIRAGANA LETTER DA -03061 HIRAGANA LETTER TI -03062 HIRAGANA LETTER DI -03063 HIRAGANA LETTER SMALL TU -03064 HIRAGANA LETTER TU -03065 HIRAGANA LETTER DU -03066 HIRAGANA LETTER TE -03067 HIRAGANA LETTER DE -03068 HIRAGANA LETTER TO -03069 HIRAGANA LETTER DO -0306A HIRAGANA LETTER NA -0306B HIRAGANA LETTER NI -0306C HIRAGANA LETTER NU -0306D HIRAGANA LETTER NE -0306E HIRAGANA LETTER NO -0306F HIRAGANA LETTER HA -03070 HIRAGANA LETTER BA -03071 HIRAGANA LETTER PA -03072 HIRAGANA LETTER HI -03073 HIRAGANA LETTER BI -03074 HIRAGANA LETTER PI -03075 HIRAGANA LETTER HU -03076 HIRAGANA LETTER BU -03077 HIRAGANA LETTER PU -03078 HIRAGANA LETTER HE -03079 HIRAGANA LETTER BE -0307A HIRAGANA LETTER PE -0307B HIRAGANA LETTER HO -0307C HIRAGANA LETTER BO -0307D HIRAGANA LETTER PO -0307E HIRAGANA LETTER MA -0307F HIRAGANA LETTER MI -03080 HIRAGANA LETTER MU -03081 HIRAGANA LETTER ME -03082 HIRAGANA LETTER MO -03083 HIRAGANA LETTER SMALL YA -03084 HIRAGANA LETTER YA -03085 HIRAGANA LETTER SMALL YU -03086 HIRAGANA LETTER YU -03087 HIRAGANA LETTER SMALL YO -03088 HIRAGANA LETTER YO -03089 HIRAGANA LETTER RA -0308A HIRAGANA LETTER RI -0308B HIRAGANA LETTER RU -0308C HIRAGANA LETTER RE -0308D HIRAGANA LETTER RO -0308E HIRAGANA LETTER SMALL WA -0308F HIRAGANA LETTER WA -03090 HIRAGANA LETTER WI -03091 HIRAGANA LETTER WE -03092 HIRAGANA LETTER WO -03093 HIRAGANA LETTER N -03094 HIRAGANA LETTER VU -03095 HIRAGANA LETTER SMALL KA -03096 HIRAGANA LETTER SMALL KE -03099 COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK -0309A COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK -0309B KATAKANA-HIRAGANA VOICED SOUND MARK -0309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK -0309D HIRAGANA ITERATION MARK -0309E HIRAGANA VOICED ITERATION MARK -0309F HIRAGANA DIGRAPH YORI -030A0 KATAKANA-HIRAGANA DOUBLE HYPHEN -030A1 KATAKANA LETTER SMALL A -030A2 KATAKANA LETTER A -030A3 KATAKANA LETTER SMALL I -030A4 KATAKANA LETTER I -030A5 KATAKANA LETTER SMALL U -030A6 KATAKANA LETTER U -030A7 KATAKANA LETTER SMALL E -030A8 KATAKANA LETTER E -030A9 KATAKANA LETTER SMALL O -030AA KATAKANA LETTER O -030AB KATAKANA LETTER KA -030AC KATAKANA LETTER GA -030AD KATAKANA LETTER KI -030AE KATAKANA LETTER GI -030AF KATAKANA LETTER KU -030B0 KATAKANA LETTER GU -030B1 KATAKANA LETTER KE -030B2 KATAKANA LETTER GE -030B3 KATAKANA LETTER KO -030B4 KATAKANA LETTER GO -030B5 KATAKANA LETTER SA -030B6 KATAKANA LETTER ZA -030B7 KATAKANA LETTER SI -030B8 KATAKANA LETTER ZI -030B9 KATAKANA LETTER SU -030BA KATAKANA LETTER ZU -030BB KATAKANA LETTER SE -030BC KATAKANA LETTER ZE -030BD KATAKANA LETTER SO -030BE KATAKANA LETTER ZO -030BF KATAKANA LETTER TA -030C0 KATAKANA LETTER DA -030C1 KATAKANA LETTER TI -030C2 KATAKANA LETTER DI -030C3 KATAKANA LETTER SMALL TU -030C4 KATAKANA LETTER TU -030C5 KATAKANA LETTER DU -030C6 KATAKANA LETTER TE -030C7 KATAKANA LETTER DE -030C8 KATAKANA LETTER TO -030C9 KATAKANA LETTER DO -030CA KATAKANA LETTER NA -030CB KATAKANA LETTER NI -030CC KATAKANA LETTER NU -030CD KATAKANA LETTER NE -030CE KATAKANA LETTER NO -030CF KATAKANA LETTER HA -030D0 KATAKANA LETTER BA -030D1 KATAKANA LETTER PA -030D2 KATAKANA LETTER HI -030D3 KATAKANA LETTER BI -030D4 KATAKANA LETTER PI -030D5 KATAKANA LETTER HU -030D6 KATAKANA LETTER BU -030D7 KATAKANA LETTER PU -030D8 KATAKANA LETTER HE -030D9 KATAKANA LETTER BE -030DA KATAKANA LETTER PE -030DB KATAKANA LETTER HO -030DC KATAKANA LETTER BO -030DD KATAKANA LETTER PO -030DE KATAKANA LETTER MA -030DF KATAKANA LETTER MI -030E0 KATAKANA LETTER MU -030E1 KATAKANA LETTER ME -030E2 KATAKANA LETTER MO -030E3 KATAKANA LETTER SMALL YA -030E4 KATAKANA LETTER YA -030E5 KATAKANA LETTER SMALL YU -030E6 KATAKANA LETTER YU -030E7 KATAKANA LETTER SMALL YO -030E8 KATAKANA LETTER YO -030E9 KATAKANA LETTER RA -030EA KATAKANA LETTER RI -030EB KATAKANA LETTER RU -030EC KATAKANA LETTER RE -030ED KATAKANA LETTER RO -030EE KATAKANA LETTER SMALL WA -030EF KATAKANA LETTER WA -030F0 KATAKANA LETTER WI -030F1 KATAKANA LETTER WE -030F2 KATAKANA LETTER WO -030F3 KATAKANA LETTER N -030F4 KATAKANA LETTER VU -030F5 KATAKANA LETTER SMALL KA -030F6 KATAKANA LETTER SMALL KE -030F7 KATAKANA LETTER VA -030F8 KATAKANA LETTER VI -030F9 KATAKANA LETTER VE -030FA KATAKANA LETTER VO -030FB KATAKANA MIDDLE DOT -030FC KATAKANA-HIRAGANA PROLONGED SOUND MARK -030FD KATAKANA ITERATION MARK -030FE KATAKANA VOICED ITERATION MARK -030FF KATAKANA DIGRAPH KOTO -03105 BOPOMOFO LETTER B -03106 BOPOMOFO LETTER P -03107 BOPOMOFO LETTER M -03108 BOPOMOFO LETTER F -03109 BOPOMOFO LETTER D -0310A BOPOMOFO LETTER T -0310B BOPOMOFO LETTER N -0310C BOPOMOFO LETTER L -0310D BOPOMOFO LETTER G -0310E BOPOMOFO LETTER K -0310F BOPOMOFO LETTER H -03110 BOPOMOFO LETTER J -03111 BOPOMOFO LETTER Q -03112 BOPOMOFO LETTER X -03113 BOPOMOFO LETTER ZH -03114 BOPOMOFO LETTER CH -03115 BOPOMOFO LETTER SH -03116 BOPOMOFO LETTER R -03117 BOPOMOFO LETTER Z -03118 BOPOMOFO LETTER C -03119 BOPOMOFO LETTER S -0311A BOPOMOFO LETTER A -0311B BOPOMOFO LETTER O -0311C BOPOMOFO LETTER E -0311D BOPOMOFO LETTER EH -0311E BOPOMOFO LETTER AI -0311F BOPOMOFO LETTER EI -03120 BOPOMOFO LETTER AU -03121 BOPOMOFO LETTER OU -03122 BOPOMOFO LETTER AN -03123 BOPOMOFO LETTER EN -03124 BOPOMOFO LETTER ANG -03125 BOPOMOFO LETTER ENG -03126 BOPOMOFO LETTER ER -03127 BOPOMOFO LETTER I -03128 BOPOMOFO LETTER U -03129 BOPOMOFO LETTER IU -0312A BOPOMOFO LETTER V -0312B BOPOMOFO LETTER NG -0312C BOPOMOFO LETTER GN -0312D BOPOMOFO LETTER IH -03131 HANGUL LETTER KIYEOK -03132 HANGUL LETTER SSANGKIYEOK -03133 HANGUL LETTER KIYEOK-SIOS -03134 HANGUL LETTER NIEUN -03135 HANGUL LETTER NIEUN-CIEUC -03136 HANGUL LETTER NIEUN-HIEUH -03137 HANGUL LETTER TIKEUT -03138 HANGUL LETTER SSANGTIKEUT -03139 HANGUL LETTER RIEUL -0313A HANGUL LETTER RIEUL-KIYEOK -0313B HANGUL LETTER RIEUL-MIEUM -0313C HANGUL LETTER RIEUL-PIEUP -0313D HANGUL LETTER RIEUL-SIOS -0313E HANGUL LETTER RIEUL-THIEUTH -0313F HANGUL LETTER RIEUL-PHIEUPH -03140 HANGUL LETTER RIEUL-HIEUH -03141 HANGUL LETTER MIEUM -03142 HANGUL LETTER PIEUP -03143 HANGUL LETTER SSANGPIEUP -03144 HANGUL LETTER PIEUP-SIOS -03145 HANGUL LETTER SIOS -03146 HANGUL LETTER SSANGSIOS -03147 HANGUL LETTER IEUNG -03148 HANGUL LETTER CIEUC -03149 HANGUL LETTER SSANGCIEUC -0314A HANGUL LETTER CHIEUCH -0314B HANGUL LETTER KHIEUKH -0314C HANGUL LETTER THIEUTH -0314D HANGUL LETTER PHIEUPH -0314E HANGUL LETTER HIEUH -0314F HANGUL LETTER A -03150 HANGUL LETTER AE -03151 HANGUL LETTER YA -03152 HANGUL LETTER YAE -03153 HANGUL LETTER EO -03154 HANGUL LETTER E -03155 HANGUL LETTER YEO -03156 HANGUL LETTER YE -03157 HANGUL LETTER O -03158 HANGUL LETTER WA -03159 HANGUL LETTER WAE -0315A HANGUL LETTER OE -0315B HANGUL LETTER YO -0315C HANGUL LETTER U -0315D HANGUL LETTER WEO -0315E HANGUL LETTER WE -0315F HANGUL LETTER WI -03160 HANGUL LETTER YU -03161 HANGUL LETTER EU -03162 HANGUL LETTER YI -03163 HANGUL LETTER I -03164 HANGUL FILLER -03165 HANGUL LETTER SSANGNIEUN -03166 HANGUL LETTER NIEUN-TIKEUT -03167 HANGUL LETTER NIEUN-SIOS -03168 HANGUL LETTER NIEUN-PANSIOS -03169 HANGUL LETTER RIEUL-KIYEOK-SIOS -0316A HANGUL LETTER RIEUL-TIKEUT -0316B HANGUL LETTER RIEUL-PIEUP-SIOS -0316C HANGUL LETTER RIEUL-PANSIOS -0316D HANGUL LETTER RIEUL-YEORINHIEUH -0316E HANGUL LETTER MIEUM-PIEUP -0316F HANGUL LETTER MIEUM-SIOS -03170 HANGUL LETTER MIEUM-PANSIOS -03171 HANGUL LETTER KAPYEOUNMIEUM -03172 HANGUL LETTER PIEUP-KIYEOK -03173 HANGUL LETTER PIEUP-TIKEUT -03174 HANGUL LETTER PIEUP-SIOS-KIYEOK -03175 HANGUL LETTER PIEUP-SIOS-TIKEUT -03176 HANGUL LETTER PIEUP-CIEUC -03177 HANGUL LETTER PIEUP-THIEUTH -03178 HANGUL LETTER KAPYEOUNPIEUP -03179 HANGUL LETTER KAPYEOUNSSANGPIEUP -0317A HANGUL LETTER SIOS-KIYEOK -0317B HANGUL LETTER SIOS-NIEUN -0317C HANGUL LETTER SIOS-TIKEUT -0317D HANGUL LETTER SIOS-PIEUP -0317E HANGUL LETTER SIOS-CIEUC -0317F HANGUL LETTER PANSIOS -03180 HANGUL LETTER SSANGIEUNG -03181 HANGUL LETTER YESIEUNG -03182 HANGUL LETTER YESIEUNG-SIOS -03183 HANGUL LETTER YESIEUNG-PANSIOS -03184 HANGUL LETTER KAPYEOUNPHIEUPH -03185 HANGUL LETTER SSANGHIEUH -03186 HANGUL LETTER YEORINHIEUH -03187 HANGUL LETTER YO-YA -03188 HANGUL LETTER YO-YAE -03189 HANGUL LETTER YO-I -0318A HANGUL LETTER YU-YEO -0318B HANGUL LETTER YU-YE -0318C HANGUL LETTER YU-I -0318D HANGUL LETTER ARAEA -0318E HANGUL LETTER ARAEAE -03190 IDEOGRAPHIC ANNOTATION LINKING MARK -03191 IDEOGRAPHIC ANNOTATION REVERSE MARK -03192 IDEOGRAPHIC ANNOTATION ONE MARK -03193 IDEOGRAPHIC ANNOTATION TWO MARK -03194 IDEOGRAPHIC ANNOTATION THREE MARK -03195 IDEOGRAPHIC ANNOTATION FOUR MARK -03196 IDEOGRAPHIC ANNOTATION TOP MARK -03197 IDEOGRAPHIC ANNOTATION MIDDLE MARK -03198 IDEOGRAPHIC ANNOTATION BOTTOM MARK -03199 IDEOGRAPHIC ANNOTATION FIRST MARK -0319A IDEOGRAPHIC ANNOTATION SECOND MARK -0319B IDEOGRAPHIC ANNOTATION THIRD MARK -0319C IDEOGRAPHIC ANNOTATION FOURTH MARK -0319D IDEOGRAPHIC ANNOTATION HEAVEN MARK -0319E IDEOGRAPHIC ANNOTATION EARTH MARK -0319F IDEOGRAPHIC ANNOTATION MAN MARK -031A0 BOPOMOFO LETTER BU -031A1 BOPOMOFO LETTER ZI -031A2 BOPOMOFO LETTER JI -031A3 BOPOMOFO LETTER GU -031A4 BOPOMOFO LETTER EE -031A5 BOPOMOFO LETTER ENN -031A6 BOPOMOFO LETTER OO -031A7 BOPOMOFO LETTER ONN -031A8 BOPOMOFO LETTER IR -031A9 BOPOMOFO LETTER ANN -031AA BOPOMOFO LETTER INN -031AB BOPOMOFO LETTER UNN -031AC BOPOMOFO LETTER IM -031AD BOPOMOFO LETTER NGG -031AE BOPOMOFO LETTER AINN -031AF BOPOMOFO LETTER AUNN -031B0 BOPOMOFO LETTER AM -031B1 BOPOMOFO LETTER OM -031B2 BOPOMOFO LETTER ONG -031B3 BOPOMOFO LETTER INNN -031B4 BOPOMOFO FINAL LETTER P -031B5 BOPOMOFO FINAL LETTER T -031B6 BOPOMOFO FINAL LETTER K -031B7 BOPOMOFO FINAL LETTER H -031B8 BOPOMOFO LETTER GH -031B9 BOPOMOFO LETTER LH -031BA BOPOMOFO LETTER ZY -031C0 CJK STROKE T -031C1 CJK STROKE WG -031C2 CJK STROKE XG -031C3 CJK STROKE BXG -031C4 CJK STROKE SW -031C5 CJK STROKE HZZ -031C6 CJK STROKE HZG -031C7 CJK STROKE HP -031C8 CJK STROKE HZWG -031C9 CJK STROKE SZWG -031CA CJK STROKE HZT -031CB CJK STROKE HZZP -031CC CJK STROKE HPWG -031CD CJK STROKE HZW -031CE CJK STROKE HZZZ -031CF CJK STROKE N -031D0 CJK STROKE H -031D1 CJK STROKE S -031D2 CJK STROKE P -031D3 CJK STROKE SP -031D4 CJK STROKE D -031D5 CJK STROKE HZ -031D6 CJK STROKE HG -031D7 CJK STROKE SZ -031D8 CJK STROKE SWZ -031D9 CJK STROKE ST -031DA CJK STROKE SG -031DB CJK STROKE PD -031DC CJK STROKE PZ -031DD CJK STROKE TN -031DE CJK STROKE SZZ -031DF CJK STROKE SWG -031E0 CJK STROKE HXWG -031E1 CJK STROKE HZZZG -031E2 CJK STROKE PG -031E3 CJK STROKE Q -031F0 KATAKANA LETTER SMALL KU -031F1 KATAKANA LETTER SMALL SI -031F2 KATAKANA LETTER SMALL SU -031F3 KATAKANA LETTER SMALL TO -031F4 KATAKANA LETTER SMALL NU -031F5 KATAKANA LETTER SMALL HA -031F6 KATAKANA LETTER SMALL HI -031F7 KATAKANA LETTER SMALL HU -031F8 KATAKANA LETTER SMALL HE -031F9 KATAKANA LETTER SMALL HO -031FA KATAKANA LETTER SMALL MU -031FB KATAKANA LETTER SMALL RA -031FC KATAKANA LETTER SMALL RI -031FD KATAKANA LETTER SMALL RU -031FE KATAKANA LETTER SMALL RE -031FF KATAKANA LETTER SMALL RO -03200 PARENTHESIZED HANGUL KIYEOK -03201 PARENTHESIZED HANGUL NIEUN -03202 PARENTHESIZED HANGUL TIKEUT -03203 PARENTHESIZED HANGUL RIEUL -03204 PARENTHESIZED HANGUL MIEUM -03205 PARENTHESIZED HANGUL PIEUP -03206 PARENTHESIZED HANGUL SIOS -03207 PARENTHESIZED HANGUL IEUNG -03208 PARENTHESIZED HANGUL CIEUC -03209 PARENTHESIZED HANGUL CHIEUCH -0320A PARENTHESIZED HANGUL KHIEUKH -0320B PARENTHESIZED HANGUL THIEUTH -0320C PARENTHESIZED HANGUL PHIEUPH -0320D PARENTHESIZED HANGUL HIEUH -0320E PARENTHESIZED HANGUL KIYEOK A -0320F PARENTHESIZED HANGUL NIEUN A -03210 PARENTHESIZED HANGUL TIKEUT A -03211 PARENTHESIZED HANGUL RIEUL A -03212 PARENTHESIZED HANGUL MIEUM A -03213 PARENTHESIZED HANGUL PIEUP A -03214 PARENTHESIZED HANGUL SIOS A -03215 PARENTHESIZED HANGUL IEUNG A -03216 PARENTHESIZED HANGUL CIEUC A -03217 PARENTHESIZED HANGUL CHIEUCH A -03218 PARENTHESIZED HANGUL KHIEUKH A -03219 PARENTHESIZED HANGUL THIEUTH A -0321A PARENTHESIZED HANGUL PHIEUPH A -0321B PARENTHESIZED HANGUL HIEUH A -0321C PARENTHESIZED HANGUL CIEUC U -0321D PARENTHESIZED KOREAN CHARACTER OJEON -0321E PARENTHESIZED KOREAN CHARACTER O HU -03220 PARENTHESIZED IDEOGRAPH ONE -03221 PARENTHESIZED IDEOGRAPH TWO -03222 PARENTHESIZED IDEOGRAPH THREE -03223 PARENTHESIZED IDEOGRAPH FOUR -03224 PARENTHESIZED IDEOGRAPH FIVE -03225 PARENTHESIZED IDEOGRAPH SIX -03226 PARENTHESIZED IDEOGRAPH SEVEN -03227 PARENTHESIZED IDEOGRAPH EIGHT -03228 PARENTHESIZED IDEOGRAPH NINE -03229 PARENTHESIZED IDEOGRAPH TEN -0322A PARENTHESIZED IDEOGRAPH MOON -0322B PARENTHESIZED IDEOGRAPH FIRE -0322C PARENTHESIZED IDEOGRAPH WATER -0322D PARENTHESIZED IDEOGRAPH WOOD -0322E PARENTHESIZED IDEOGRAPH METAL -0322F PARENTHESIZED IDEOGRAPH EARTH -03230 PARENTHESIZED IDEOGRAPH SUN -03231 PARENTHESIZED IDEOGRAPH STOCK -03232 PARENTHESIZED IDEOGRAPH HAVE -03233 PARENTHESIZED IDEOGRAPH SOCIETY -03234 PARENTHESIZED IDEOGRAPH NAME -03235 PARENTHESIZED IDEOGRAPH SPECIAL -03236 PARENTHESIZED IDEOGRAPH FINANCIAL -03237 PARENTHESIZED IDEOGRAPH CONGRATULATION -03238 PARENTHESIZED IDEOGRAPH LABOR -03239 PARENTHESIZED IDEOGRAPH REPRESENT -0323A PARENTHESIZED IDEOGRAPH CALL -0323B PARENTHESIZED IDEOGRAPH STUDY -0323C PARENTHESIZED IDEOGRAPH SUPERVISE -0323D PARENTHESIZED IDEOGRAPH ENTERPRISE -0323E PARENTHESIZED IDEOGRAPH RESOURCE -0323F PARENTHESIZED IDEOGRAPH ALLIANCE -03240 PARENTHESIZED IDEOGRAPH FESTIVAL -03241 PARENTHESIZED IDEOGRAPH REST -03242 PARENTHESIZED IDEOGRAPH SELF -03243 PARENTHESIZED IDEOGRAPH REACH -03244 CIRCLED IDEOGRAPH QUESTION -03245 CIRCLED IDEOGRAPH KINDERGARTEN -03246 CIRCLED IDEOGRAPH SCHOOL -03247 CIRCLED IDEOGRAPH KOTO -03248 CIRCLED NUMBER TEN ON BLACK SQUARE -03249 CIRCLED NUMBER TWENTY ON BLACK SQUARE -0324A CIRCLED NUMBER THIRTY ON BLACK SQUARE -0324B CIRCLED NUMBER FORTY ON BLACK SQUARE -0324C CIRCLED NUMBER FIFTY ON BLACK SQUARE -0324D CIRCLED NUMBER SIXTY ON BLACK SQUARE -0324E CIRCLED NUMBER SEVENTY ON BLACK SQUARE -0324F CIRCLED NUMBER EIGHTY ON BLACK SQUARE -03250 PARTNERSHIP SIGN -03251 CIRCLED NUMBER TWENTY ONE -03252 CIRCLED NUMBER TWENTY TWO -03253 CIRCLED NUMBER TWENTY THREE -03254 CIRCLED NUMBER TWENTY FOUR -03255 CIRCLED NUMBER TWENTY FIVE -03256 CIRCLED NUMBER TWENTY SIX -03257 CIRCLED NUMBER TWENTY SEVEN -03258 CIRCLED NUMBER TWENTY EIGHT -03259 CIRCLED NUMBER TWENTY NINE -0325A CIRCLED NUMBER THIRTY -0325B CIRCLED NUMBER THIRTY ONE -0325C CIRCLED NUMBER THIRTY TWO -0325D CIRCLED NUMBER THIRTY THREE -0325E CIRCLED NUMBER THIRTY FOUR -0325F CIRCLED NUMBER THIRTY FIVE -03260 CIRCLED HANGUL KIYEOK -03261 CIRCLED HANGUL NIEUN -03262 CIRCLED HANGUL TIKEUT -03263 CIRCLED HANGUL RIEUL -03264 CIRCLED HANGUL MIEUM -03265 CIRCLED HANGUL PIEUP -03266 CIRCLED HANGUL SIOS -03267 CIRCLED HANGUL IEUNG -03268 CIRCLED HANGUL CIEUC -03269 CIRCLED HANGUL CHIEUCH -0326A CIRCLED HANGUL KHIEUKH -0326B CIRCLED HANGUL THIEUTH -0326C CIRCLED HANGUL PHIEUPH -0326D CIRCLED HANGUL HIEUH -0326E CIRCLED HANGUL KIYEOK A -0326F CIRCLED HANGUL NIEUN A -03270 CIRCLED HANGUL TIKEUT A -03271 CIRCLED HANGUL RIEUL A -03272 CIRCLED HANGUL MIEUM A -03273 CIRCLED HANGUL PIEUP A -03274 CIRCLED HANGUL SIOS A -03275 CIRCLED HANGUL IEUNG A -03276 CIRCLED HANGUL CIEUC A -03277 CIRCLED HANGUL CHIEUCH A -03278 CIRCLED HANGUL KHIEUKH A -03279 CIRCLED HANGUL THIEUTH A -0327A CIRCLED HANGUL PHIEUPH A -0327B CIRCLED HANGUL HIEUH A -0327C CIRCLED KOREAN CHARACTER CHAMKO -0327D CIRCLED KOREAN CHARACTER JUEUI -0327E CIRCLED HANGUL IEUNG U -0327F KOREAN STANDARD SYMBOL -03280 CIRCLED IDEOGRAPH ONE -03281 CIRCLED IDEOGRAPH TWO -03282 CIRCLED IDEOGRAPH THREE -03283 CIRCLED IDEOGRAPH FOUR -03284 CIRCLED IDEOGRAPH FIVE -03285 CIRCLED IDEOGRAPH SIX -03286 CIRCLED IDEOGRAPH SEVEN -03287 CIRCLED IDEOGRAPH EIGHT -03288 CIRCLED IDEOGRAPH NINE -03289 CIRCLED IDEOGRAPH TEN -0328A CIRCLED IDEOGRAPH MOON -0328B CIRCLED IDEOGRAPH FIRE -0328C CIRCLED IDEOGRAPH WATER -0328D CIRCLED IDEOGRAPH WOOD -0328E CIRCLED IDEOGRAPH METAL -0328F CIRCLED IDEOGRAPH EARTH -03290 CIRCLED IDEOGRAPH SUN -03291 CIRCLED IDEOGRAPH STOCK -03292 CIRCLED IDEOGRAPH HAVE -03293 CIRCLED IDEOGRAPH SOCIETY -03294 CIRCLED IDEOGRAPH NAME -03295 CIRCLED IDEOGRAPH SPECIAL -03296 CIRCLED IDEOGRAPH FINANCIAL -03297 CIRCLED IDEOGRAPH CONGRATULATION -03298 CIRCLED IDEOGRAPH LABOR -03299 CIRCLED IDEOGRAPH SECRET -0329A CIRCLED IDEOGRAPH MALE -0329B CIRCLED IDEOGRAPH FEMALE -0329C CIRCLED IDEOGRAPH SUITABLE -0329D CIRCLED IDEOGRAPH EXCELLENT -0329E CIRCLED IDEOGRAPH PRINT -0329F CIRCLED IDEOGRAPH ATTENTION -032A0 CIRCLED IDEOGRAPH ITEM -032A1 CIRCLED IDEOGRAPH REST -032A2 CIRCLED IDEOGRAPH COPY -032A3 CIRCLED IDEOGRAPH CORRECT -032A4 CIRCLED IDEOGRAPH HIGH -032A5 CIRCLED IDEOGRAPH CENTRE -032A6 CIRCLED IDEOGRAPH LOW -032A7 CIRCLED IDEOGRAPH LEFT -032A8 CIRCLED IDEOGRAPH RIGHT -032A9 CIRCLED IDEOGRAPH MEDICINE -032AA CIRCLED IDEOGRAPH RELIGION -032AB CIRCLED IDEOGRAPH STUDY -032AC CIRCLED IDEOGRAPH SUPERVISE -032AD CIRCLED IDEOGRAPH ENTERPRISE -032AE CIRCLED IDEOGRAPH RESOURCE -032AF CIRCLED IDEOGRAPH ALLIANCE -032B0 CIRCLED IDEOGRAPH NIGHT -032B1 CIRCLED NUMBER THIRTY SIX -032B2 CIRCLED NUMBER THIRTY SEVEN -032B3 CIRCLED NUMBER THIRTY EIGHT -032B4 CIRCLED NUMBER THIRTY NINE -032B5 CIRCLED NUMBER FORTY -032B6 CIRCLED NUMBER FORTY ONE -032B7 CIRCLED NUMBER FORTY TWO -032B8 CIRCLED NUMBER FORTY THREE -032B9 CIRCLED NUMBER FORTY FOUR -032BA CIRCLED NUMBER FORTY FIVE -032BB CIRCLED NUMBER FORTY SIX -032BC CIRCLED NUMBER FORTY SEVEN -032BD CIRCLED NUMBER FORTY EIGHT -032BE CIRCLED NUMBER FORTY NINE -032BF CIRCLED NUMBER FIFTY -032C0 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY -032C1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY -032C2 IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH -032C3 IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL -032C4 IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY -032C5 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE -032C6 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY -032C7 IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST -032C8 IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER -032C9 IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER -032CA IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER -032CB IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER -032CC SQUARE HG -032CD SQUARE ERG -032CE SQUARE EV -032CF LIMITED LIABILITY SIGN -032D0 CIRCLED KATAKANA A -032D1 CIRCLED KATAKANA I -032D2 CIRCLED KATAKANA U -032D3 CIRCLED KATAKANA E -032D4 CIRCLED KATAKANA O -032D5 CIRCLED KATAKANA KA -032D6 CIRCLED KATAKANA KI -032D7 CIRCLED KATAKANA KU -032D8 CIRCLED KATAKANA KE -032D9 CIRCLED KATAKANA KO -032DA CIRCLED KATAKANA SA -032DB CIRCLED KATAKANA SI -032DC CIRCLED KATAKANA SU -032DD CIRCLED KATAKANA SE -032DE CIRCLED KATAKANA SO -032DF CIRCLED KATAKANA TA -032E0 CIRCLED KATAKANA TI -032E1 CIRCLED KATAKANA TU -032E2 CIRCLED KATAKANA TE -032E3 CIRCLED KATAKANA TO -032E4 CIRCLED KATAKANA NA -032E5 CIRCLED KATAKANA NI -032E6 CIRCLED KATAKANA NU -032E7 CIRCLED KATAKANA NE -032E8 CIRCLED KATAKANA NO -032E9 CIRCLED KATAKANA HA -032EA CIRCLED KATAKANA HI -032EB CIRCLED KATAKANA HU -032EC CIRCLED KATAKANA HE -032ED CIRCLED KATAKANA HO -032EE CIRCLED KATAKANA MA -032EF CIRCLED KATAKANA MI -032F0 CIRCLED KATAKANA MU -032F1 CIRCLED KATAKANA ME -032F2 CIRCLED KATAKANA MO -032F3 CIRCLED KATAKANA YA -032F4 CIRCLED KATAKANA YU -032F5 CIRCLED KATAKANA YO -032F6 CIRCLED KATAKANA RA -032F7 CIRCLED KATAKANA RI -032F8 CIRCLED KATAKANA RU -032F9 CIRCLED KATAKANA RE -032FA CIRCLED KATAKANA RO -032FB CIRCLED KATAKANA WA -032FC CIRCLED KATAKANA WI -032FD CIRCLED KATAKANA WE -032FE CIRCLED KATAKANA WO -03300 SQUARE APAATO -03301 SQUARE ARUHUA -03302 SQUARE ANPEA -03303 SQUARE AARU -03304 SQUARE ININGU -03305 SQUARE INTI -03306 SQUARE UON -03307 SQUARE ESUKUUDO -03308 SQUARE EEKAA -03309 SQUARE ONSU -0330A SQUARE OOMU -0330B SQUARE KAIRI -0330C SQUARE KARATTO -0330D SQUARE KARORII -0330E SQUARE GARON -0330F SQUARE GANMA -03310 SQUARE GIGA -03311 SQUARE GINII -03312 SQUARE KYURII -03313 SQUARE GIRUDAA -03314 SQUARE KIRO -03315 SQUARE KIROGURAMU -03316 SQUARE KIROMEETORU -03317 SQUARE KIROWATTO -03318 SQUARE GURAMU -03319 SQUARE GURAMUTON -0331A SQUARE KURUZEIRO -0331B SQUARE KUROONE -0331C SQUARE KEESU -0331D SQUARE KORUNA -0331E SQUARE KOOPO -0331F SQUARE SAIKURU -03320 SQUARE SANTIIMU -03321 SQUARE SIRINGU -03322 SQUARE SENTI -03323 SQUARE SENTO -03324 SQUARE DAASU -03325 SQUARE DESI -03326 SQUARE DORU -03327 SQUARE TON -03328 SQUARE NANO -03329 SQUARE NOTTO -0332A SQUARE HAITU -0332B SQUARE PAASENTO -0332C SQUARE PAATU -0332D SQUARE BAARERU -0332E SQUARE PIASUTORU -0332F SQUARE PIKURU -03330 SQUARE PIKO -03331 SQUARE BIRU -03332 SQUARE HUARADDO -03333 SQUARE HUIITO -03334 SQUARE BUSSYERU -03335 SQUARE HURAN -03336 SQUARE HEKUTAARU -03337 SQUARE PESO -03338 SQUARE PENIHI -03339 SQUARE HERUTU -0333A SQUARE PENSU -0333B SQUARE PEEZI -0333C SQUARE BEETA -0333D SQUARE POINTO -0333E SQUARE BORUTO -0333F SQUARE HON -03340 SQUARE PONDO -03341 SQUARE HOORU -03342 SQUARE HOON -03343 SQUARE MAIKURO -03344 SQUARE MAIRU -03345 SQUARE MAHHA -03346 SQUARE MARUKU -03347 SQUARE MANSYON -03348 SQUARE MIKURON -03349 SQUARE MIRI -0334A SQUARE MIRIBAARU -0334B SQUARE MEGA -0334C SQUARE MEGATON -0334D SQUARE MEETORU -0334E SQUARE YAADO -0334F SQUARE YAARU -03350 SQUARE YUAN -03351 SQUARE RITTORU -03352 SQUARE RIRA -03353 SQUARE RUPII -03354 SQUARE RUUBURU -03355 SQUARE REMU -03356 SQUARE RENTOGEN -03357 SQUARE WATTO -03358 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO -03359 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE -0335A IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO -0335B IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE -0335C IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR -0335D IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE -0335E IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX -0335F IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN -03360 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT -03361 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE -03362 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN -03363 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN -03364 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE -03365 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN -03366 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN -03367 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN -03368 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN -03369 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN -0336A IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN -0336B IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN -0336C IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY -0336D IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE -0336E IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO -0336F IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE -03370 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR -03371 SQUARE HPA -03372 SQUARE DA -03373 SQUARE AU -03374 SQUARE BAR -03375 SQUARE OV -03376 SQUARE PC -03377 SQUARE DM -03378 SQUARE DM SQUARED -03379 SQUARE DM CUBED -0337A SQUARE IU -0337B SQUARE ERA NAME HEISEI -0337C SQUARE ERA NAME SYOUWA -0337D SQUARE ERA NAME TAISYOU -0337E SQUARE ERA NAME MEIZI -0337F SQUARE CORPORATION -03380 SQUARE PA AMPS -03381 SQUARE NA -03382 SQUARE MU A -03383 SQUARE MA -03384 SQUARE KA -03385 SQUARE KB -03386 SQUARE MB -03387 SQUARE GB -03388 SQUARE CAL -03389 SQUARE KCAL -0338A SQUARE PF -0338B SQUARE NF -0338C SQUARE MU F -0338D SQUARE MU G -0338E SQUARE MG -0338F SQUARE KG -03390 SQUARE HZ -03391 SQUARE KHZ -03392 SQUARE MHZ -03393 SQUARE GHZ -03394 SQUARE THZ -03395 SQUARE MU L -03396 SQUARE ML -03397 SQUARE DL -03398 SQUARE KL -03399 SQUARE FM -0339A SQUARE NM -0339B SQUARE MU M -0339C SQUARE MM -0339D SQUARE CM -0339E SQUARE KM -0339F SQUARE MM SQUARED -033A0 SQUARE CM SQUARED -033A1 SQUARE M SQUARED -033A2 SQUARE KM SQUARED -033A3 SQUARE MM CUBED -033A4 SQUARE CM CUBED -033A5 SQUARE M CUBED -033A6 SQUARE KM CUBED -033A7 SQUARE M OVER S -033A8 SQUARE M OVER S SQUARED -033A9 SQUARE PA -033AA SQUARE KPA -033AB SQUARE MPA -033AC SQUARE GPA -033AD SQUARE RAD -033AE SQUARE RAD OVER S -033AF SQUARE RAD OVER S SQUARED -033B0 SQUARE PS -033B1 SQUARE NS -033B2 SQUARE MU S -033B3 SQUARE MS -033B4 SQUARE PV -033B5 SQUARE NV -033B6 SQUARE MU V -033B7 SQUARE MV -033B8 SQUARE KV -033B9 SQUARE MV MEGA -033BA SQUARE PW -033BB SQUARE NW -033BC SQUARE MU W -033BD SQUARE MW -033BE SQUARE KW -033BF SQUARE MW MEGA -033C0 SQUARE K OHM -033C1 SQUARE M OHM -033C2 SQUARE AM -033C3 SQUARE BQ -033C4 SQUARE CC -033C5 SQUARE CD -033C6 SQUARE C OVER KG -033C7 SQUARE CO -033C8 SQUARE DB -033C9 SQUARE GY -033CA SQUARE HA -033CB SQUARE HP -033CC SQUARE IN -033CD SQUARE KK -033CE SQUARE KM CAPITAL -033CF SQUARE KT -033D0 SQUARE LM -033D1 SQUARE LN -033D2 SQUARE LOG -033D3 SQUARE LX -033D4 SQUARE MB SMALL -033D5 SQUARE MIL -033D6 SQUARE MOL -033D7 SQUARE PH -033D8 SQUARE PM -033D9 SQUARE PPM -033DA SQUARE PR -033DB SQUARE SR -033DC SQUARE SV -033DD SQUARE WB -033DE SQUARE V OVER M -033DF SQUARE A OVER M -033E0 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE -033E1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO -033E2 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE -033E3 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR -033E4 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE -033E5 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX -033E6 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN -033E7 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT -033E8 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE -033E9 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN -033EA IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN -033EB IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE -033EC IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN -033ED IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN -033EE IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN -033EF IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN -033F0 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN -033F1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN -033F2 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN -033F3 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY -033F4 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE -033F5 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO -033F6 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE -033F7 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR -033F8 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE -033F9 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX -033FA IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN -033FB IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT -033FC IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE -033FD IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY -033FE IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE -033FF SQUARE GAL -04DC0 HEXAGRAM FOR THE CREATIVE HEAVEN -04DC1 HEXAGRAM FOR THE RECEPTIVE EARTH -04DC2 HEXAGRAM FOR DIFFICULTY AT THE BEGINNING -04DC3 HEXAGRAM FOR YOUTHFUL FOLLY -04DC4 HEXAGRAM FOR WAITING -04DC5 HEXAGRAM FOR CONFLICT -04DC6 HEXAGRAM FOR THE ARMY -04DC7 HEXAGRAM FOR HOLDING TOGETHER -04DC8 HEXAGRAM FOR SMALL TAMING -04DC9 HEXAGRAM FOR TREADING -04DCA HEXAGRAM FOR PEACE -04DCB HEXAGRAM FOR STANDSTILL -04DCC HEXAGRAM FOR FELLOWSHIP -04DCD HEXAGRAM FOR GREAT POSSESSION -04DCE HEXAGRAM FOR MODESTY -04DCF HEXAGRAM FOR ENTHUSIASM -04DD0 HEXAGRAM FOR FOLLOWING -04DD1 HEXAGRAM FOR WORK ON THE DECAYED -04DD2 HEXAGRAM FOR APPROACH -04DD3 HEXAGRAM FOR CONTEMPLATION -04DD4 HEXAGRAM FOR BITING THROUGH -04DD5 HEXAGRAM FOR GRACE -04DD6 HEXAGRAM FOR SPLITTING APART -04DD7 HEXAGRAM FOR RETURN -04DD8 HEXAGRAM FOR INNOCENCE -04DD9 HEXAGRAM FOR GREAT TAMING -04DDA HEXAGRAM FOR MOUTH CORNERS -04DDB HEXAGRAM FOR GREAT PREPONDERANCE -04DDC HEXAGRAM FOR THE ABYSMAL WATER -04DDD HEXAGRAM FOR THE CLINGING FIRE -04DDE HEXAGRAM FOR INFLUENCE -04DDF HEXAGRAM FOR DURATION -04DE0 HEXAGRAM FOR RETREAT -04DE1 HEXAGRAM FOR GREAT POWER -04DE2 HEXAGRAM FOR PROGRESS -04DE3 HEXAGRAM FOR DARKENING OF THE LIGHT -04DE4 HEXAGRAM FOR THE FAMILY -04DE5 HEXAGRAM FOR OPPOSITION -04DE6 HEXAGRAM FOR OBSTRUCTION -04DE7 HEXAGRAM FOR DELIVERANCE -04DE8 HEXAGRAM FOR DECREASE -04DE9 HEXAGRAM FOR INCREASE -04DEA HEXAGRAM FOR BREAKTHROUGH -04DEB HEXAGRAM FOR COMING TO MEET -04DEC HEXAGRAM FOR GATHERING TOGETHER -04DED HEXAGRAM FOR PUSHING UPWARD -04DEE HEXAGRAM FOR OPPRESSION -04DEF HEXAGRAM FOR THE WELL -04DF0 HEXAGRAM FOR REVOLUTION -04DF1 HEXAGRAM FOR THE CAULDRON -04DF2 HEXAGRAM FOR THE AROUSING THUNDER -04DF3 HEXAGRAM FOR THE KEEPING STILL MOUNTAIN -04DF4 HEXAGRAM FOR DEVELOPMENT -04DF5 HEXAGRAM FOR THE MARRYING MAIDEN -04DF6 HEXAGRAM FOR ABUNDANCE -04DF7 HEXAGRAM FOR THE WANDERER -04DF8 HEXAGRAM FOR THE GENTLE WIND -04DF9 HEXAGRAM FOR THE JOYOUS LAKE -04DFA HEXAGRAM FOR DISPERSION -04DFB HEXAGRAM FOR LIMITATION -04DFC HEXAGRAM FOR INNER TRUTH -04DFD HEXAGRAM FOR SMALL PREPONDERANCE -04DFE HEXAGRAM FOR AFTER COMPLETION -04DFF HEXAGRAM FOR BEFORE COMPLETION -0A000 YI SYLLABLE IT -0A001 YI SYLLABLE IX -0A002 YI SYLLABLE I -0A003 YI SYLLABLE IP -0A004 YI SYLLABLE IET -0A005 YI SYLLABLE IEX -0A006 YI SYLLABLE IE -0A007 YI SYLLABLE IEP -0A008 YI SYLLABLE AT -0A009 YI SYLLABLE AX -0A00A YI SYLLABLE A -0A00B YI SYLLABLE AP -0A00C YI SYLLABLE UOX -0A00D YI SYLLABLE UO -0A00E YI SYLLABLE UOP -0A00F YI SYLLABLE OT -0A010 YI SYLLABLE OX -0A011 YI SYLLABLE O -0A012 YI SYLLABLE OP -0A013 YI SYLLABLE EX -0A014 YI SYLLABLE E -0A015 YI SYLLABLE ITERATION MARK -0A015 YI SYLLABLE WU -0A016 YI SYLLABLE BIT -0A017 YI SYLLABLE BIX -0A018 YI SYLLABLE BI -0A019 YI SYLLABLE BIP -0A01A YI SYLLABLE BIET -0A01B YI SYLLABLE BIEX -0A01C YI SYLLABLE BIE -0A01D YI SYLLABLE BIEP -0A01E YI SYLLABLE BAT -0A01F YI SYLLABLE BAX -0A020 YI SYLLABLE BA -0A021 YI SYLLABLE BAP -0A022 YI SYLLABLE BUOX -0A023 YI SYLLABLE BUO -0A024 YI SYLLABLE BUOP -0A025 YI SYLLABLE BOT -0A026 YI SYLLABLE BOX -0A027 YI SYLLABLE BO -0A028 YI SYLLABLE BOP -0A029 YI SYLLABLE BEX -0A02A YI SYLLABLE BE -0A02B YI SYLLABLE BEP -0A02C YI SYLLABLE BUT -0A02D YI SYLLABLE BUX -0A02E YI SYLLABLE BU -0A02F YI SYLLABLE BUP -0A030 YI SYLLABLE BURX -0A031 YI SYLLABLE BUR -0A032 YI SYLLABLE BYT -0A033 YI SYLLABLE BYX -0A034 YI SYLLABLE BY -0A035 YI SYLLABLE BYP -0A036 YI SYLLABLE BYRX -0A037 YI SYLLABLE BYR -0A038 YI SYLLABLE PIT -0A039 YI SYLLABLE PIX -0A03A YI SYLLABLE PI -0A03B YI SYLLABLE PIP -0A03C YI SYLLABLE PIEX -0A03D YI SYLLABLE PIE -0A03E YI SYLLABLE PIEP -0A03F YI SYLLABLE PAT -0A040 YI SYLLABLE PAX -0A041 YI SYLLABLE PA -0A042 YI SYLLABLE PAP -0A043 YI SYLLABLE PUOX -0A044 YI SYLLABLE PUO -0A045 YI SYLLABLE PUOP -0A046 YI SYLLABLE POT -0A047 YI SYLLABLE POX -0A048 YI SYLLABLE PO -0A049 YI SYLLABLE POP -0A04A YI SYLLABLE PUT -0A04B YI SYLLABLE PUX -0A04C YI SYLLABLE PU -0A04D YI SYLLABLE PUP -0A04E YI SYLLABLE PURX -0A04F YI SYLLABLE PUR -0A050 YI SYLLABLE PYT -0A051 YI SYLLABLE PYX -0A052 YI SYLLABLE PY -0A053 YI SYLLABLE PYP -0A054 YI SYLLABLE PYRX -0A055 YI SYLLABLE PYR -0A056 YI SYLLABLE BBIT -0A057 YI SYLLABLE BBIX -0A058 YI SYLLABLE BBI -0A059 YI SYLLABLE BBIP -0A05A YI SYLLABLE BBIET -0A05B YI SYLLABLE BBIEX -0A05C YI SYLLABLE BBIE -0A05D YI SYLLABLE BBIEP -0A05E YI SYLLABLE BBAT -0A05F YI SYLLABLE BBAX -0A060 YI SYLLABLE BBA -0A061 YI SYLLABLE BBAP -0A062 YI SYLLABLE BBUOX -0A063 YI SYLLABLE BBUO -0A064 YI SYLLABLE BBUOP -0A065 YI SYLLABLE BBOT -0A066 YI SYLLABLE BBOX -0A067 YI SYLLABLE BBO -0A068 YI SYLLABLE BBOP -0A069 YI SYLLABLE BBEX -0A06A YI SYLLABLE BBE -0A06B YI SYLLABLE BBEP -0A06C YI SYLLABLE BBUT -0A06D YI SYLLABLE BBUX -0A06E YI SYLLABLE BBU -0A06F YI SYLLABLE BBUP -0A070 YI SYLLABLE BBURX -0A071 YI SYLLABLE BBUR -0A072 YI SYLLABLE BBYT -0A073 YI SYLLABLE BBYX -0A074 YI SYLLABLE BBY -0A075 YI SYLLABLE BBYP -0A076 YI SYLLABLE NBIT -0A077 YI SYLLABLE NBIX -0A078 YI SYLLABLE NBI -0A079 YI SYLLABLE NBIP -0A07A YI SYLLABLE NBIEX -0A07B YI SYLLABLE NBIE -0A07C YI SYLLABLE NBIEP -0A07D YI SYLLABLE NBAT -0A07E YI SYLLABLE NBAX -0A07F YI SYLLABLE NBA -0A080 YI SYLLABLE NBAP -0A081 YI SYLLABLE NBOT -0A082 YI SYLLABLE NBOX -0A083 YI SYLLABLE NBO -0A084 YI SYLLABLE NBOP -0A085 YI SYLLABLE NBUT -0A086 YI SYLLABLE NBUX -0A087 YI SYLLABLE NBU -0A088 YI SYLLABLE NBUP -0A089 YI SYLLABLE NBURX -0A08A YI SYLLABLE NBUR -0A08B YI SYLLABLE NBYT -0A08C YI SYLLABLE NBYX -0A08D YI SYLLABLE NBY -0A08E YI SYLLABLE NBYP -0A08F YI SYLLABLE NBYRX -0A090 YI SYLLABLE NBYR -0A091 YI SYLLABLE HMIT -0A092 YI SYLLABLE HMIX -0A093 YI SYLLABLE HMI -0A094 YI SYLLABLE HMIP -0A095 YI SYLLABLE HMIEX -0A096 YI SYLLABLE HMIE -0A097 YI SYLLABLE HMIEP -0A098 YI SYLLABLE HMAT -0A099 YI SYLLABLE HMAX -0A09A YI SYLLABLE HMA -0A09B YI SYLLABLE HMAP -0A09C YI SYLLABLE HMUOX -0A09D YI SYLLABLE HMUO -0A09E YI SYLLABLE HMUOP -0A09F YI SYLLABLE HMOT -0A0A0 YI SYLLABLE HMOX -0A0A1 YI SYLLABLE HMO -0A0A2 YI SYLLABLE HMOP -0A0A3 YI SYLLABLE HMUT -0A0A4 YI SYLLABLE HMUX -0A0A5 YI SYLLABLE HMU -0A0A6 YI SYLLABLE HMUP -0A0A7 YI SYLLABLE HMURX -0A0A8 YI SYLLABLE HMUR -0A0A9 YI SYLLABLE HMYX -0A0AA YI SYLLABLE HMY -0A0AB YI SYLLABLE HMYP -0A0AC YI SYLLABLE HMYRX -0A0AD YI SYLLABLE HMYR -0A0AE YI SYLLABLE MIT -0A0AF YI SYLLABLE MIX -0A0B0 YI SYLLABLE MI -0A0B1 YI SYLLABLE MIP -0A0B2 YI SYLLABLE MIEX -0A0B3 YI SYLLABLE MIE -0A0B4 YI SYLLABLE MIEP -0A0B5 YI SYLLABLE MAT -0A0B6 YI SYLLABLE MAX -0A0B7 YI SYLLABLE MA -0A0B8 YI SYLLABLE MAP -0A0B9 YI SYLLABLE MUOT -0A0BA YI SYLLABLE MUOX -0A0BB YI SYLLABLE MUO -0A0BC YI SYLLABLE MUOP -0A0BD YI SYLLABLE MOT -0A0BE YI SYLLABLE MOX -0A0BF YI SYLLABLE MO -0A0C0 YI SYLLABLE MOP -0A0C1 YI SYLLABLE MEX -0A0C2 YI SYLLABLE ME -0A0C3 YI SYLLABLE MUT -0A0C4 YI SYLLABLE MUX -0A0C5 YI SYLLABLE MU -0A0C6 YI SYLLABLE MUP -0A0C7 YI SYLLABLE MURX -0A0C8 YI SYLLABLE MUR -0A0C9 YI SYLLABLE MYT -0A0CA YI SYLLABLE MYX -0A0CB YI SYLLABLE MY -0A0CC YI SYLLABLE MYP -0A0CD YI SYLLABLE FIT -0A0CE YI SYLLABLE FIX -0A0CF YI SYLLABLE FI -0A0D0 YI SYLLABLE FIP -0A0D1 YI SYLLABLE FAT -0A0D2 YI SYLLABLE FAX -0A0D3 YI SYLLABLE FA -0A0D4 YI SYLLABLE FAP -0A0D5 YI SYLLABLE FOX -0A0D6 YI SYLLABLE FO -0A0D7 YI SYLLABLE FOP -0A0D8 YI SYLLABLE FUT -0A0D9 YI SYLLABLE FUX -0A0DA YI SYLLABLE FU -0A0DB YI SYLLABLE FUP -0A0DC YI SYLLABLE FURX -0A0DD YI SYLLABLE FUR -0A0DE YI SYLLABLE FYT -0A0DF YI SYLLABLE FYX -0A0E0 YI SYLLABLE FY -0A0E1 YI SYLLABLE FYP -0A0E2 YI SYLLABLE VIT -0A0E3 YI SYLLABLE VIX -0A0E4 YI SYLLABLE VI -0A0E5 YI SYLLABLE VIP -0A0E6 YI SYLLABLE VIET -0A0E7 YI SYLLABLE VIEX -0A0E8 YI SYLLABLE VIE -0A0E9 YI SYLLABLE VIEP -0A0EA YI SYLLABLE VAT -0A0EB YI SYLLABLE VAX -0A0EC YI SYLLABLE VA -0A0ED YI SYLLABLE VAP -0A0EE YI SYLLABLE VOT -0A0EF YI SYLLABLE VOX -0A0F0 YI SYLLABLE VO -0A0F1 YI SYLLABLE VOP -0A0F2 YI SYLLABLE VEX -0A0F3 YI SYLLABLE VEP -0A0F4 YI SYLLABLE VUT -0A0F5 YI SYLLABLE VUX -0A0F6 YI SYLLABLE VU -0A0F7 YI SYLLABLE VUP -0A0F8 YI SYLLABLE VURX -0A0F9 YI SYLLABLE VUR -0A0FA YI SYLLABLE VYT -0A0FB YI SYLLABLE VYX -0A0FC YI SYLLABLE VY -0A0FD YI SYLLABLE VYP -0A0FE YI SYLLABLE VYRX -0A0FF YI SYLLABLE VYR -0A100 YI SYLLABLE DIT -0A101 YI SYLLABLE DIX -0A102 YI SYLLABLE DI -0A103 YI SYLLABLE DIP -0A104 YI SYLLABLE DIEX -0A105 YI SYLLABLE DIE -0A106 YI SYLLABLE DIEP -0A107 YI SYLLABLE DAT -0A108 YI SYLLABLE DAX -0A109 YI SYLLABLE DA -0A10A YI SYLLABLE DAP -0A10B YI SYLLABLE DUOX -0A10C YI SYLLABLE DUO -0A10D YI SYLLABLE DOT -0A10E YI SYLLABLE DOX -0A10F YI SYLLABLE DO -0A110 YI SYLLABLE DOP -0A111 YI SYLLABLE DEX -0A112 YI SYLLABLE DE -0A113 YI SYLLABLE DEP -0A114 YI SYLLABLE DUT -0A115 YI SYLLABLE DUX -0A116 YI SYLLABLE DU -0A117 YI SYLLABLE DUP -0A118 YI SYLLABLE DURX -0A119 YI SYLLABLE DUR -0A11A YI SYLLABLE TIT -0A11B YI SYLLABLE TIX -0A11C YI SYLLABLE TI -0A11D YI SYLLABLE TIP -0A11E YI SYLLABLE TIEX -0A11F YI SYLLABLE TIE -0A120 YI SYLLABLE TIEP -0A121 YI SYLLABLE TAT -0A122 YI SYLLABLE TAX -0A123 YI SYLLABLE TA -0A124 YI SYLLABLE TAP -0A125 YI SYLLABLE TUOT -0A126 YI SYLLABLE TUOX -0A127 YI SYLLABLE TUO -0A128 YI SYLLABLE TUOP -0A129 YI SYLLABLE TOT -0A12A YI SYLLABLE TOX -0A12B YI SYLLABLE TO -0A12C YI SYLLABLE TOP -0A12D YI SYLLABLE TEX -0A12E YI SYLLABLE TE -0A12F YI SYLLABLE TEP -0A130 YI SYLLABLE TUT -0A131 YI SYLLABLE TUX -0A132 YI SYLLABLE TU -0A133 YI SYLLABLE TUP -0A134 YI SYLLABLE TURX -0A135 YI SYLLABLE TUR -0A136 YI SYLLABLE DDIT -0A137 YI SYLLABLE DDIX -0A138 YI SYLLABLE DDI -0A139 YI SYLLABLE DDIP -0A13A YI SYLLABLE DDIEX -0A13B YI SYLLABLE DDIE -0A13C YI SYLLABLE DDIEP -0A13D YI SYLLABLE DDAT -0A13E YI SYLLABLE DDAX -0A13F YI SYLLABLE DDA -0A140 YI SYLLABLE DDAP -0A141 YI SYLLABLE DDUOX -0A142 YI SYLLABLE DDUO -0A143 YI SYLLABLE DDUOP -0A144 YI SYLLABLE DDOT -0A145 YI SYLLABLE DDOX -0A146 YI SYLLABLE DDO -0A147 YI SYLLABLE DDOP -0A148 YI SYLLABLE DDEX -0A149 YI SYLLABLE DDE -0A14A YI SYLLABLE DDEP -0A14B YI SYLLABLE DDUT -0A14C YI SYLLABLE DDUX -0A14D YI SYLLABLE DDU -0A14E YI SYLLABLE DDUP -0A14F YI SYLLABLE DDURX -0A150 YI SYLLABLE DDUR -0A151 YI SYLLABLE NDIT -0A152 YI SYLLABLE NDIX -0A153 YI SYLLABLE NDI -0A154 YI SYLLABLE NDIP -0A155 YI SYLLABLE NDIEX -0A156 YI SYLLABLE NDIE -0A157 YI SYLLABLE NDAT -0A158 YI SYLLABLE NDAX -0A159 YI SYLLABLE NDA -0A15A YI SYLLABLE NDAP -0A15B YI SYLLABLE NDOT -0A15C YI SYLLABLE NDOX -0A15D YI SYLLABLE NDO -0A15E YI SYLLABLE NDOP -0A15F YI SYLLABLE NDEX -0A160 YI SYLLABLE NDE -0A161 YI SYLLABLE NDEP -0A162 YI SYLLABLE NDUT -0A163 YI SYLLABLE NDUX -0A164 YI SYLLABLE NDU -0A165 YI SYLLABLE NDUP -0A166 YI SYLLABLE NDURX -0A167 YI SYLLABLE NDUR -0A168 YI SYLLABLE HNIT -0A169 YI SYLLABLE HNIX -0A16A YI SYLLABLE HNI -0A16B YI SYLLABLE HNIP -0A16C YI SYLLABLE HNIET -0A16D YI SYLLABLE HNIEX -0A16E YI SYLLABLE HNIE -0A16F YI SYLLABLE HNIEP -0A170 YI SYLLABLE HNAT -0A171 YI SYLLABLE HNAX -0A172 YI SYLLABLE HNA -0A173 YI SYLLABLE HNAP -0A174 YI SYLLABLE HNUOX -0A175 YI SYLLABLE HNUO -0A176 YI SYLLABLE HNOT -0A177 YI SYLLABLE HNOX -0A178 YI SYLLABLE HNOP -0A179 YI SYLLABLE HNEX -0A17A YI SYLLABLE HNE -0A17B YI SYLLABLE HNEP -0A17C YI SYLLABLE HNUT -0A17D YI SYLLABLE NIT -0A17E YI SYLLABLE NIX -0A17F YI SYLLABLE NI -0A180 YI SYLLABLE NIP -0A181 YI SYLLABLE NIEX -0A182 YI SYLLABLE NIE -0A183 YI SYLLABLE NIEP -0A184 YI SYLLABLE NAX -0A185 YI SYLLABLE NA -0A186 YI SYLLABLE NAP -0A187 YI SYLLABLE NUOX -0A188 YI SYLLABLE NUO -0A189 YI SYLLABLE NUOP -0A18A YI SYLLABLE NOT -0A18B YI SYLLABLE NOX -0A18C YI SYLLABLE NO -0A18D YI SYLLABLE NOP -0A18E YI SYLLABLE NEX -0A18F YI SYLLABLE NE -0A190 YI SYLLABLE NEP -0A191 YI SYLLABLE NUT -0A192 YI SYLLABLE NUX -0A193 YI SYLLABLE NU -0A194 YI SYLLABLE NUP -0A195 YI SYLLABLE NURX -0A196 YI SYLLABLE NUR -0A197 YI SYLLABLE HLIT -0A198 YI SYLLABLE HLIX -0A199 YI SYLLABLE HLI -0A19A YI SYLLABLE HLIP -0A19B YI SYLLABLE HLIEX -0A19C YI SYLLABLE HLIE -0A19D YI SYLLABLE HLIEP -0A19E YI SYLLABLE HLAT -0A19F YI SYLLABLE HLAX -0A1A0 YI SYLLABLE HLA -0A1A1 YI SYLLABLE HLAP -0A1A2 YI SYLLABLE HLUOX -0A1A3 YI SYLLABLE HLUO -0A1A4 YI SYLLABLE HLUOP -0A1A5 YI SYLLABLE HLOX -0A1A6 YI SYLLABLE HLO -0A1A7 YI SYLLABLE HLOP -0A1A8 YI SYLLABLE HLEX -0A1A9 YI SYLLABLE HLE -0A1AA YI SYLLABLE HLEP -0A1AB YI SYLLABLE HLUT -0A1AC YI SYLLABLE HLUX -0A1AD YI SYLLABLE HLU -0A1AE YI SYLLABLE HLUP -0A1AF YI SYLLABLE HLURX -0A1B0 YI SYLLABLE HLUR -0A1B1 YI SYLLABLE HLYT -0A1B2 YI SYLLABLE HLYX -0A1B3 YI SYLLABLE HLY -0A1B4 YI SYLLABLE HLYP -0A1B5 YI SYLLABLE HLYRX -0A1B6 YI SYLLABLE HLYR -0A1B7 YI SYLLABLE LIT -0A1B8 YI SYLLABLE LIX -0A1B9 YI SYLLABLE LI -0A1BA YI SYLLABLE LIP -0A1BB YI SYLLABLE LIET -0A1BC YI SYLLABLE LIEX -0A1BD YI SYLLABLE LIE -0A1BE YI SYLLABLE LIEP -0A1BF YI SYLLABLE LAT -0A1C0 YI SYLLABLE LAX -0A1C1 YI SYLLABLE LA -0A1C2 YI SYLLABLE LAP -0A1C3 YI SYLLABLE LUOT -0A1C4 YI SYLLABLE LUOX -0A1C5 YI SYLLABLE LUO -0A1C6 YI SYLLABLE LUOP -0A1C7 YI SYLLABLE LOT -0A1C8 YI SYLLABLE LOX -0A1C9 YI SYLLABLE LO -0A1CA YI SYLLABLE LOP -0A1CB YI SYLLABLE LEX -0A1CC YI SYLLABLE LE -0A1CD YI SYLLABLE LEP -0A1CE YI SYLLABLE LUT -0A1CF YI SYLLABLE LUX -0A1D0 YI SYLLABLE LU -0A1D1 YI SYLLABLE LUP -0A1D2 YI SYLLABLE LURX -0A1D3 YI SYLLABLE LUR -0A1D4 YI SYLLABLE LYT -0A1D5 YI SYLLABLE LYX -0A1D6 YI SYLLABLE LY -0A1D7 YI SYLLABLE LYP -0A1D8 YI SYLLABLE LYRX -0A1D9 YI SYLLABLE LYR -0A1DA YI SYLLABLE GIT -0A1DB YI SYLLABLE GIX -0A1DC YI SYLLABLE GI -0A1DD YI SYLLABLE GIP -0A1DE YI SYLLABLE GIET -0A1DF YI SYLLABLE GIEX -0A1E0 YI SYLLABLE GIE -0A1E1 YI SYLLABLE GIEP -0A1E2 YI SYLLABLE GAT -0A1E3 YI SYLLABLE GAX -0A1E4 YI SYLLABLE GA -0A1E5 YI SYLLABLE GAP -0A1E6 YI SYLLABLE GUOT -0A1E7 YI SYLLABLE GUOX -0A1E8 YI SYLLABLE GUO -0A1E9 YI SYLLABLE GUOP -0A1EA YI SYLLABLE GOT -0A1EB YI SYLLABLE GOX -0A1EC YI SYLLABLE GO -0A1ED YI SYLLABLE GOP -0A1EE YI SYLLABLE GET -0A1EF YI SYLLABLE GEX -0A1F0 YI SYLLABLE GE -0A1F1 YI SYLLABLE GEP -0A1F2 YI SYLLABLE GUT -0A1F3 YI SYLLABLE GUX -0A1F4 YI SYLLABLE GU -0A1F5 YI SYLLABLE GUP -0A1F6 YI SYLLABLE GURX -0A1F7 YI SYLLABLE GUR -0A1F8 YI SYLLABLE KIT -0A1F9 YI SYLLABLE KIX -0A1FA YI SYLLABLE KI -0A1FB YI SYLLABLE KIP -0A1FC YI SYLLABLE KIEX -0A1FD YI SYLLABLE KIE -0A1FE YI SYLLABLE KIEP -0A1FF YI SYLLABLE KAT -0A200 YI SYLLABLE KAX -0A201 YI SYLLABLE KA -0A202 YI SYLLABLE KAP -0A203 YI SYLLABLE KUOX -0A204 YI SYLLABLE KUO -0A205 YI SYLLABLE KUOP -0A206 YI SYLLABLE KOT -0A207 YI SYLLABLE KOX -0A208 YI SYLLABLE KO -0A209 YI SYLLABLE KOP -0A20A YI SYLLABLE KET -0A20B YI SYLLABLE KEX -0A20C YI SYLLABLE KE -0A20D YI SYLLABLE KEP -0A20E YI SYLLABLE KUT -0A20F YI SYLLABLE KUX -0A210 YI SYLLABLE KU -0A211 YI SYLLABLE KUP -0A212 YI SYLLABLE KURX -0A213 YI SYLLABLE KUR -0A214 YI SYLLABLE GGIT -0A215 YI SYLLABLE GGIX -0A216 YI SYLLABLE GGI -0A217 YI SYLLABLE GGIEX -0A218 YI SYLLABLE GGIE -0A219 YI SYLLABLE GGIEP -0A21A YI SYLLABLE GGAT -0A21B YI SYLLABLE GGAX -0A21C YI SYLLABLE GGA -0A21D YI SYLLABLE GGAP -0A21E YI SYLLABLE GGUOT -0A21F YI SYLLABLE GGUOX -0A220 YI SYLLABLE GGUO -0A221 YI SYLLABLE GGUOP -0A222 YI SYLLABLE GGOT -0A223 YI SYLLABLE GGOX -0A224 YI SYLLABLE GGO -0A225 YI SYLLABLE GGOP -0A226 YI SYLLABLE GGET -0A227 YI SYLLABLE GGEX -0A228 YI SYLLABLE GGE -0A229 YI SYLLABLE GGEP -0A22A YI SYLLABLE GGUT -0A22B YI SYLLABLE GGUX -0A22C YI SYLLABLE GGU -0A22D YI SYLLABLE GGUP -0A22E YI SYLLABLE GGURX -0A22F YI SYLLABLE GGUR -0A230 YI SYLLABLE MGIEX -0A231 YI SYLLABLE MGIE -0A232 YI SYLLABLE MGAT -0A233 YI SYLLABLE MGAX -0A234 YI SYLLABLE MGA -0A235 YI SYLLABLE MGAP -0A236 YI SYLLABLE MGUOX -0A237 YI SYLLABLE MGUO -0A238 YI SYLLABLE MGUOP -0A239 YI SYLLABLE MGOT -0A23A YI SYLLABLE MGOX -0A23B YI SYLLABLE MGO -0A23C YI SYLLABLE MGOP -0A23D YI SYLLABLE MGEX -0A23E YI SYLLABLE MGE -0A23F YI SYLLABLE MGEP -0A240 YI SYLLABLE MGUT -0A241 YI SYLLABLE MGUX -0A242 YI SYLLABLE MGU -0A243 YI SYLLABLE MGUP -0A244 YI SYLLABLE MGURX -0A245 YI SYLLABLE MGUR -0A246 YI SYLLABLE HXIT -0A247 YI SYLLABLE HXIX -0A248 YI SYLLABLE HXI -0A249 YI SYLLABLE HXIP -0A24A YI SYLLABLE HXIET -0A24B YI SYLLABLE HXIEX -0A24C YI SYLLABLE HXIE -0A24D YI SYLLABLE HXIEP -0A24E YI SYLLABLE HXAT -0A24F YI SYLLABLE HXAX -0A250 YI SYLLABLE HXA -0A251 YI SYLLABLE HXAP -0A252 YI SYLLABLE HXUOT -0A253 YI SYLLABLE HXUOX -0A254 YI SYLLABLE HXUO -0A255 YI SYLLABLE HXUOP -0A256 YI SYLLABLE HXOT -0A257 YI SYLLABLE HXOX -0A258 YI SYLLABLE HXO -0A259 YI SYLLABLE HXOP -0A25A YI SYLLABLE HXEX -0A25B YI SYLLABLE HXE -0A25C YI SYLLABLE HXEP -0A25D YI SYLLABLE NGIEX -0A25E YI SYLLABLE NGIE -0A25F YI SYLLABLE NGIEP -0A260 YI SYLLABLE NGAT -0A261 YI SYLLABLE NGAX -0A262 YI SYLLABLE NGA -0A263 YI SYLLABLE NGAP -0A264 YI SYLLABLE NGUOT -0A265 YI SYLLABLE NGUOX -0A266 YI SYLLABLE NGUO -0A267 YI SYLLABLE NGOT -0A268 YI SYLLABLE NGOX -0A269 YI SYLLABLE NGO -0A26A YI SYLLABLE NGOP -0A26B YI SYLLABLE NGEX -0A26C YI SYLLABLE NGE -0A26D YI SYLLABLE NGEP -0A26E YI SYLLABLE HIT -0A26F YI SYLLABLE HIEX -0A270 YI SYLLABLE HIE -0A271 YI SYLLABLE HAT -0A272 YI SYLLABLE HAX -0A273 YI SYLLABLE HA -0A274 YI SYLLABLE HAP -0A275 YI SYLLABLE HUOT -0A276 YI SYLLABLE HUOX -0A277 YI SYLLABLE HUO -0A278 YI SYLLABLE HUOP -0A279 YI SYLLABLE HOT -0A27A YI SYLLABLE HOX -0A27B YI SYLLABLE HO -0A27C YI SYLLABLE HOP -0A27D YI SYLLABLE HEX -0A27E YI SYLLABLE HE -0A27F YI SYLLABLE HEP -0A280 YI SYLLABLE WAT -0A281 YI SYLLABLE WAX -0A282 YI SYLLABLE WA -0A283 YI SYLLABLE WAP -0A284 YI SYLLABLE WUOX -0A285 YI SYLLABLE WUO -0A286 YI SYLLABLE WUOP -0A287 YI SYLLABLE WOX -0A288 YI SYLLABLE WO -0A289 YI SYLLABLE WOP -0A28A YI SYLLABLE WEX -0A28B YI SYLLABLE WE -0A28C YI SYLLABLE WEP -0A28D YI SYLLABLE ZIT -0A28E YI SYLLABLE ZIX -0A28F YI SYLLABLE ZI -0A290 YI SYLLABLE ZIP -0A291 YI SYLLABLE ZIEX -0A292 YI SYLLABLE ZIE -0A293 YI SYLLABLE ZIEP -0A294 YI SYLLABLE ZAT -0A295 YI SYLLABLE ZAX -0A296 YI SYLLABLE ZA -0A297 YI SYLLABLE ZAP -0A298 YI SYLLABLE ZUOX -0A299 YI SYLLABLE ZUO -0A29A YI SYLLABLE ZUOP -0A29B YI SYLLABLE ZOT -0A29C YI SYLLABLE ZOX -0A29D YI SYLLABLE ZO -0A29E YI SYLLABLE ZOP -0A29F YI SYLLABLE ZEX -0A2A0 YI SYLLABLE ZE -0A2A1 YI SYLLABLE ZEP -0A2A2 YI SYLLABLE ZUT -0A2A3 YI SYLLABLE ZUX -0A2A4 YI SYLLABLE ZU -0A2A5 YI SYLLABLE ZUP -0A2A6 YI SYLLABLE ZURX -0A2A7 YI SYLLABLE ZUR -0A2A8 YI SYLLABLE ZYT -0A2A9 YI SYLLABLE ZYX -0A2AA YI SYLLABLE ZY -0A2AB YI SYLLABLE ZYP -0A2AC YI SYLLABLE ZYRX -0A2AD YI SYLLABLE ZYR -0A2AE YI SYLLABLE CIT -0A2AF YI SYLLABLE CIX -0A2B0 YI SYLLABLE CI -0A2B1 YI SYLLABLE CIP -0A2B2 YI SYLLABLE CIET -0A2B3 YI SYLLABLE CIEX -0A2B4 YI SYLLABLE CIE -0A2B5 YI SYLLABLE CIEP -0A2B6 YI SYLLABLE CAT -0A2B7 YI SYLLABLE CAX -0A2B8 YI SYLLABLE CA -0A2B9 YI SYLLABLE CAP -0A2BA YI SYLLABLE CUOX -0A2BB YI SYLLABLE CUO -0A2BC YI SYLLABLE CUOP -0A2BD YI SYLLABLE COT -0A2BE YI SYLLABLE COX -0A2BF YI SYLLABLE CO -0A2C0 YI SYLLABLE COP -0A2C1 YI SYLLABLE CEX -0A2C2 YI SYLLABLE CE -0A2C3 YI SYLLABLE CEP -0A2C4 YI SYLLABLE CUT -0A2C5 YI SYLLABLE CUX -0A2C6 YI SYLLABLE CU -0A2C7 YI SYLLABLE CUP -0A2C8 YI SYLLABLE CURX -0A2C9 YI SYLLABLE CUR -0A2CA YI SYLLABLE CYT -0A2CB YI SYLLABLE CYX -0A2CC YI SYLLABLE CY -0A2CD YI SYLLABLE CYP -0A2CE YI SYLLABLE CYRX -0A2CF YI SYLLABLE CYR -0A2D0 YI SYLLABLE ZZIT -0A2D1 YI SYLLABLE ZZIX -0A2D2 YI SYLLABLE ZZI -0A2D3 YI SYLLABLE ZZIP -0A2D4 YI SYLLABLE ZZIET -0A2D5 YI SYLLABLE ZZIEX -0A2D6 YI SYLLABLE ZZIE -0A2D7 YI SYLLABLE ZZIEP -0A2D8 YI SYLLABLE ZZAT -0A2D9 YI SYLLABLE ZZAX -0A2DA YI SYLLABLE ZZA -0A2DB YI SYLLABLE ZZAP -0A2DC YI SYLLABLE ZZOX -0A2DD YI SYLLABLE ZZO -0A2DE YI SYLLABLE ZZOP -0A2DF YI SYLLABLE ZZEX -0A2E0 YI SYLLABLE ZZE -0A2E1 YI SYLLABLE ZZEP -0A2E2 YI SYLLABLE ZZUX -0A2E3 YI SYLLABLE ZZU -0A2E4 YI SYLLABLE ZZUP -0A2E5 YI SYLLABLE ZZURX -0A2E6 YI SYLLABLE ZZUR -0A2E7 YI SYLLABLE ZZYT -0A2E8 YI SYLLABLE ZZYX -0A2E9 YI SYLLABLE ZZY -0A2EA YI SYLLABLE ZZYP -0A2EB YI SYLLABLE ZZYRX -0A2EC YI SYLLABLE ZZYR -0A2ED YI SYLLABLE NZIT -0A2EE YI SYLLABLE NZIX -0A2EF YI SYLLABLE NZI -0A2F0 YI SYLLABLE NZIP -0A2F1 YI SYLLABLE NZIEX -0A2F2 YI SYLLABLE NZIE -0A2F3 YI SYLLABLE NZIEP -0A2F4 YI SYLLABLE NZAT -0A2F5 YI SYLLABLE NZAX -0A2F6 YI SYLLABLE NZA -0A2F7 YI SYLLABLE NZAP -0A2F8 YI SYLLABLE NZUOX -0A2F9 YI SYLLABLE NZUO -0A2FA YI SYLLABLE NZOX -0A2FB YI SYLLABLE NZOP -0A2FC YI SYLLABLE NZEX -0A2FD YI SYLLABLE NZE -0A2FE YI SYLLABLE NZUX -0A2FF YI SYLLABLE NZU -0A300 YI SYLLABLE NZUP -0A301 YI SYLLABLE NZURX -0A302 YI SYLLABLE NZUR -0A303 YI SYLLABLE NZYT -0A304 YI SYLLABLE NZYX -0A305 YI SYLLABLE NZY -0A306 YI SYLLABLE NZYP -0A307 YI SYLLABLE NZYRX -0A308 YI SYLLABLE NZYR -0A309 YI SYLLABLE SIT -0A30A YI SYLLABLE SIX -0A30B YI SYLLABLE SI -0A30C YI SYLLABLE SIP -0A30D YI SYLLABLE SIEX -0A30E YI SYLLABLE SIE -0A30F YI SYLLABLE SIEP -0A310 YI SYLLABLE SAT -0A311 YI SYLLABLE SAX -0A312 YI SYLLABLE SA -0A313 YI SYLLABLE SAP -0A314 YI SYLLABLE SUOX -0A315 YI SYLLABLE SUO -0A316 YI SYLLABLE SUOP -0A317 YI SYLLABLE SOT -0A318 YI SYLLABLE SOX -0A319 YI SYLLABLE SO -0A31A YI SYLLABLE SOP -0A31B YI SYLLABLE SEX -0A31C YI SYLLABLE SE -0A31D YI SYLLABLE SEP -0A31E YI SYLLABLE SUT -0A31F YI SYLLABLE SUX -0A320 YI SYLLABLE SU -0A321 YI SYLLABLE SUP -0A322 YI SYLLABLE SURX -0A323 YI SYLLABLE SUR -0A324 YI SYLLABLE SYT -0A325 YI SYLLABLE SYX -0A326 YI SYLLABLE SY -0A327 YI SYLLABLE SYP -0A328 YI SYLLABLE SYRX -0A329 YI SYLLABLE SYR -0A32A YI SYLLABLE SSIT -0A32B YI SYLLABLE SSIX -0A32C YI SYLLABLE SSI -0A32D YI SYLLABLE SSIP -0A32E YI SYLLABLE SSIEX -0A32F YI SYLLABLE SSIE -0A330 YI SYLLABLE SSIEP -0A331 YI SYLLABLE SSAT -0A332 YI SYLLABLE SSAX -0A333 YI SYLLABLE SSA -0A334 YI SYLLABLE SSAP -0A335 YI SYLLABLE SSOT -0A336 YI SYLLABLE SSOX -0A337 YI SYLLABLE SSO -0A338 YI SYLLABLE SSOP -0A339 YI SYLLABLE SSEX -0A33A YI SYLLABLE SSE -0A33B YI SYLLABLE SSEP -0A33C YI SYLLABLE SSUT -0A33D YI SYLLABLE SSUX -0A33E YI SYLLABLE SSU -0A33F YI SYLLABLE SSUP -0A340 YI SYLLABLE SSYT -0A341 YI SYLLABLE SSYX -0A342 YI SYLLABLE SSY -0A343 YI SYLLABLE SSYP -0A344 YI SYLLABLE SSYRX -0A345 YI SYLLABLE SSYR -0A346 YI SYLLABLE ZHAT -0A347 YI SYLLABLE ZHAX -0A348 YI SYLLABLE ZHA -0A349 YI SYLLABLE ZHAP -0A34A YI SYLLABLE ZHUOX -0A34B YI SYLLABLE ZHUO -0A34C YI SYLLABLE ZHUOP -0A34D YI SYLLABLE ZHOT -0A34E YI SYLLABLE ZHOX -0A34F YI SYLLABLE ZHO -0A350 YI SYLLABLE ZHOP -0A351 YI SYLLABLE ZHET -0A352 YI SYLLABLE ZHEX -0A353 YI SYLLABLE ZHE -0A354 YI SYLLABLE ZHEP -0A355 YI SYLLABLE ZHUT -0A356 YI SYLLABLE ZHUX -0A357 YI SYLLABLE ZHU -0A358 YI SYLLABLE ZHUP -0A359 YI SYLLABLE ZHURX -0A35A YI SYLLABLE ZHUR -0A35B YI SYLLABLE ZHYT -0A35C YI SYLLABLE ZHYX -0A35D YI SYLLABLE ZHY -0A35E YI SYLLABLE ZHYP -0A35F YI SYLLABLE ZHYRX -0A360 YI SYLLABLE ZHYR -0A361 YI SYLLABLE CHAT -0A362 YI SYLLABLE CHAX -0A363 YI SYLLABLE CHA -0A364 YI SYLLABLE CHAP -0A365 YI SYLLABLE CHUOT -0A366 YI SYLLABLE CHUOX -0A367 YI SYLLABLE CHUO -0A368 YI SYLLABLE CHUOP -0A369 YI SYLLABLE CHOT -0A36A YI SYLLABLE CHOX -0A36B YI SYLLABLE CHO -0A36C YI SYLLABLE CHOP -0A36D YI SYLLABLE CHET -0A36E YI SYLLABLE CHEX -0A36F YI SYLLABLE CHE -0A370 YI SYLLABLE CHEP -0A371 YI SYLLABLE CHUX -0A372 YI SYLLABLE CHU -0A373 YI SYLLABLE CHUP -0A374 YI SYLLABLE CHURX -0A375 YI SYLLABLE CHUR -0A376 YI SYLLABLE CHYT -0A377 YI SYLLABLE CHYX -0A378 YI SYLLABLE CHY -0A379 YI SYLLABLE CHYP -0A37A YI SYLLABLE CHYRX -0A37B YI SYLLABLE CHYR -0A37C YI SYLLABLE RRAX -0A37D YI SYLLABLE RRA -0A37E YI SYLLABLE RRUOX -0A37F YI SYLLABLE RRUO -0A380 YI SYLLABLE RROT -0A381 YI SYLLABLE RROX -0A382 YI SYLLABLE RRO -0A383 YI SYLLABLE RROP -0A384 YI SYLLABLE RRET -0A385 YI SYLLABLE RREX -0A386 YI SYLLABLE RRE -0A387 YI SYLLABLE RREP -0A388 YI SYLLABLE RRUT -0A389 YI SYLLABLE RRUX -0A38A YI SYLLABLE RRU -0A38B YI SYLLABLE RRUP -0A38C YI SYLLABLE RRURX -0A38D YI SYLLABLE RRUR -0A38E YI SYLLABLE RRYT -0A38F YI SYLLABLE RRYX -0A390 YI SYLLABLE RRY -0A391 YI SYLLABLE RRYP -0A392 YI SYLLABLE RRYRX -0A393 YI SYLLABLE RRYR -0A394 YI SYLLABLE NRAT -0A395 YI SYLLABLE NRAX -0A396 YI SYLLABLE NRA -0A397 YI SYLLABLE NRAP -0A398 YI SYLLABLE NROX -0A399 YI SYLLABLE NRO -0A39A YI SYLLABLE NROP -0A39B YI SYLLABLE NRET -0A39C YI SYLLABLE NREX -0A39D YI SYLLABLE NRE -0A39E YI SYLLABLE NREP -0A39F YI SYLLABLE NRUT -0A3A0 YI SYLLABLE NRUX -0A3A1 YI SYLLABLE NRU -0A3A2 YI SYLLABLE NRUP -0A3A3 YI SYLLABLE NRURX -0A3A4 YI SYLLABLE NRUR -0A3A5 YI SYLLABLE NRYT -0A3A6 YI SYLLABLE NRYX -0A3A7 YI SYLLABLE NRY -0A3A8 YI SYLLABLE NRYP -0A3A9 YI SYLLABLE NRYRX -0A3AA YI SYLLABLE NRYR -0A3AB YI SYLLABLE SHAT -0A3AC YI SYLLABLE SHAX -0A3AD YI SYLLABLE SHA -0A3AE YI SYLLABLE SHAP -0A3AF YI SYLLABLE SHUOX -0A3B0 YI SYLLABLE SHUO -0A3B1 YI SYLLABLE SHUOP -0A3B2 YI SYLLABLE SHOT -0A3B3 YI SYLLABLE SHOX -0A3B4 YI SYLLABLE SHO -0A3B5 YI SYLLABLE SHOP -0A3B6 YI SYLLABLE SHET -0A3B7 YI SYLLABLE SHEX -0A3B8 YI SYLLABLE SHE -0A3B9 YI SYLLABLE SHEP -0A3BA YI SYLLABLE SHUT -0A3BB YI SYLLABLE SHUX -0A3BC YI SYLLABLE SHU -0A3BD YI SYLLABLE SHUP -0A3BE YI SYLLABLE SHURX -0A3BF YI SYLLABLE SHUR -0A3C0 YI SYLLABLE SHYT -0A3C1 YI SYLLABLE SHYX -0A3C2 YI SYLLABLE SHY -0A3C3 YI SYLLABLE SHYP -0A3C4 YI SYLLABLE SHYRX -0A3C5 YI SYLLABLE SHYR -0A3C6 YI SYLLABLE RAT -0A3C7 YI SYLLABLE RAX -0A3C8 YI SYLLABLE RA -0A3C9 YI SYLLABLE RAP -0A3CA YI SYLLABLE RUOX -0A3CB YI SYLLABLE RUO -0A3CC YI SYLLABLE RUOP -0A3CD YI SYLLABLE ROT -0A3CE YI SYLLABLE ROX -0A3CF YI SYLLABLE RO -0A3D0 YI SYLLABLE ROP -0A3D1 YI SYLLABLE REX -0A3D2 YI SYLLABLE RE -0A3D3 YI SYLLABLE REP -0A3D4 YI SYLLABLE RUT -0A3D5 YI SYLLABLE RUX -0A3D6 YI SYLLABLE RU -0A3D7 YI SYLLABLE RUP -0A3D8 YI SYLLABLE RURX -0A3D9 YI SYLLABLE RUR -0A3DA YI SYLLABLE RYT -0A3DB YI SYLLABLE RYX -0A3DC YI SYLLABLE RY -0A3DD YI SYLLABLE RYP -0A3DE YI SYLLABLE RYRX -0A3DF YI SYLLABLE RYR -0A3E0 YI SYLLABLE JIT -0A3E1 YI SYLLABLE JIX -0A3E2 YI SYLLABLE JI -0A3E3 YI SYLLABLE JIP -0A3E4 YI SYLLABLE JIET -0A3E5 YI SYLLABLE JIEX -0A3E6 YI SYLLABLE JIE -0A3E7 YI SYLLABLE JIEP -0A3E8 YI SYLLABLE JUOT -0A3E9 YI SYLLABLE JUOX -0A3EA YI SYLLABLE JUO -0A3EB YI SYLLABLE JUOP -0A3EC YI SYLLABLE JOT -0A3ED YI SYLLABLE JOX -0A3EE YI SYLLABLE JO -0A3EF YI SYLLABLE JOP -0A3F0 YI SYLLABLE JUT -0A3F1 YI SYLLABLE JUX -0A3F2 YI SYLLABLE JU -0A3F3 YI SYLLABLE JUP -0A3F4 YI SYLLABLE JURX -0A3F5 YI SYLLABLE JUR -0A3F6 YI SYLLABLE JYT -0A3F7 YI SYLLABLE JYX -0A3F8 YI SYLLABLE JY -0A3F9 YI SYLLABLE JYP -0A3FA YI SYLLABLE JYRX -0A3FB YI SYLLABLE JYR -0A3FC YI SYLLABLE QIT -0A3FD YI SYLLABLE QIX -0A3FE YI SYLLABLE QI -0A3FF YI SYLLABLE QIP -0A400 YI SYLLABLE QIET -0A401 YI SYLLABLE QIEX -0A402 YI SYLLABLE QIE -0A403 YI SYLLABLE QIEP -0A404 YI SYLLABLE QUOT -0A405 YI SYLLABLE QUOX -0A406 YI SYLLABLE QUO -0A407 YI SYLLABLE QUOP -0A408 YI SYLLABLE QOT -0A409 YI SYLLABLE QOX -0A40A YI SYLLABLE QO -0A40B YI SYLLABLE QOP -0A40C YI SYLLABLE QUT -0A40D YI SYLLABLE QUX -0A40E YI SYLLABLE QU -0A40F YI SYLLABLE QUP -0A410 YI SYLLABLE QURX -0A411 YI SYLLABLE QUR -0A412 YI SYLLABLE QYT -0A413 YI SYLLABLE QYX -0A414 YI SYLLABLE QY -0A415 YI SYLLABLE QYP -0A416 YI SYLLABLE QYRX -0A417 YI SYLLABLE QYR -0A418 YI SYLLABLE JJIT -0A419 YI SYLLABLE JJIX -0A41A YI SYLLABLE JJI -0A41B YI SYLLABLE JJIP -0A41C YI SYLLABLE JJIET -0A41D YI SYLLABLE JJIEX -0A41E YI SYLLABLE JJIE -0A41F YI SYLLABLE JJIEP -0A420 YI SYLLABLE JJUOX -0A421 YI SYLLABLE JJUO -0A422 YI SYLLABLE JJUOP -0A423 YI SYLLABLE JJOT -0A424 YI SYLLABLE JJOX -0A425 YI SYLLABLE JJO -0A426 YI SYLLABLE JJOP -0A427 YI SYLLABLE JJUT -0A428 YI SYLLABLE JJUX -0A429 YI SYLLABLE JJU -0A42A YI SYLLABLE JJUP -0A42B YI SYLLABLE JJURX -0A42C YI SYLLABLE JJUR -0A42D YI SYLLABLE JJYT -0A42E YI SYLLABLE JJYX -0A42F YI SYLLABLE JJY -0A430 YI SYLLABLE JJYP -0A431 YI SYLLABLE NJIT -0A432 YI SYLLABLE NJIX -0A433 YI SYLLABLE NJI -0A434 YI SYLLABLE NJIP -0A435 YI SYLLABLE NJIET -0A436 YI SYLLABLE NJIEX -0A437 YI SYLLABLE NJIE -0A438 YI SYLLABLE NJIEP -0A439 YI SYLLABLE NJUOX -0A43A YI SYLLABLE NJUO -0A43B YI SYLLABLE NJOT -0A43C YI SYLLABLE NJOX -0A43D YI SYLLABLE NJO -0A43E YI SYLLABLE NJOP -0A43F YI SYLLABLE NJUX -0A440 YI SYLLABLE NJU -0A441 YI SYLLABLE NJUP -0A442 YI SYLLABLE NJURX -0A443 YI SYLLABLE NJUR -0A444 YI SYLLABLE NJYT -0A445 YI SYLLABLE NJYX -0A446 YI SYLLABLE NJY -0A447 YI SYLLABLE NJYP -0A448 YI SYLLABLE NJYRX -0A449 YI SYLLABLE NJYR -0A44A YI SYLLABLE NYIT -0A44B YI SYLLABLE NYIX -0A44C YI SYLLABLE NYI -0A44D YI SYLLABLE NYIP -0A44E YI SYLLABLE NYIET -0A44F YI SYLLABLE NYIEX -0A450 YI SYLLABLE NYIE -0A451 YI SYLLABLE NYIEP -0A452 YI SYLLABLE NYUOX -0A453 YI SYLLABLE NYUO -0A454 YI SYLLABLE NYUOP -0A455 YI SYLLABLE NYOT -0A456 YI SYLLABLE NYOX -0A457 YI SYLLABLE NYO -0A458 YI SYLLABLE NYOP -0A459 YI SYLLABLE NYUT -0A45A YI SYLLABLE NYUX -0A45B YI SYLLABLE NYU -0A45C YI SYLLABLE NYUP -0A45D YI SYLLABLE XIT -0A45E YI SYLLABLE XIX -0A45F YI SYLLABLE XI -0A460 YI SYLLABLE XIP -0A461 YI SYLLABLE XIET -0A462 YI SYLLABLE XIEX -0A463 YI SYLLABLE XIE -0A464 YI SYLLABLE XIEP -0A465 YI SYLLABLE XUOX -0A466 YI SYLLABLE XUO -0A467 YI SYLLABLE XOT -0A468 YI SYLLABLE XOX -0A469 YI SYLLABLE XO -0A46A YI SYLLABLE XOP -0A46B YI SYLLABLE XYT -0A46C YI SYLLABLE XYX -0A46D YI SYLLABLE XY -0A46E YI SYLLABLE XYP -0A46F YI SYLLABLE XYRX -0A470 YI SYLLABLE XYR -0A471 YI SYLLABLE YIT -0A472 YI SYLLABLE YIX -0A473 YI SYLLABLE YI -0A474 YI SYLLABLE YIP -0A475 YI SYLLABLE YIET -0A476 YI SYLLABLE YIEX -0A477 YI SYLLABLE YIE -0A478 YI SYLLABLE YIEP -0A479 YI SYLLABLE YUOT -0A47A YI SYLLABLE YUOX -0A47B YI SYLLABLE YUO -0A47C YI SYLLABLE YUOP -0A47D YI SYLLABLE YOT -0A47E YI SYLLABLE YOX -0A47F YI SYLLABLE YO -0A480 YI SYLLABLE YOP -0A481 YI SYLLABLE YUT -0A482 YI SYLLABLE YUX -0A483 YI SYLLABLE YU -0A484 YI SYLLABLE YUP -0A485 YI SYLLABLE YURX -0A486 YI SYLLABLE YUR -0A487 YI SYLLABLE YYT -0A488 YI SYLLABLE YYX -0A489 YI SYLLABLE YY -0A48A YI SYLLABLE YYP -0A48B YI SYLLABLE YYRX -0A48C YI SYLLABLE YYR -0A490 YI RADICAL QOT -0A491 YI RADICAL LI -0A492 YI RADICAL KIT -0A493 YI RADICAL NYIP -0A494 YI RADICAL CYP -0A495 YI RADICAL SSI -0A496 YI RADICAL GGOP -0A497 YI RADICAL GEP -0A498 YI RADICAL MI -0A499 YI RADICAL HXIT -0A49A YI RADICAL LYR -0A49B YI RADICAL BBUT -0A49C YI RADICAL MOP -0A49D YI RADICAL YO -0A49E YI RADICAL PUT -0A49F YI RADICAL HXUO -0A4A0 YI RADICAL TAT -0A4A1 YI RADICAL GA -0A4A2 YI RADICAL ZUP -0A4A3 YI RADICAL CYT -0A4A4 YI RADICAL DDUR -0A4A5 YI RADICAL BUR -0A4A6 YI RADICAL GGUO -0A4A7 YI RADICAL NYOP -0A4A8 YI RADICAL TU -0A4A9 YI RADICAL OP -0A4AA YI RADICAL JJUT -0A4AB YI RADICAL ZOT -0A4AC YI RADICAL PYT -0A4AD YI RADICAL HMO -0A4AE YI RADICAL YIT -0A4AF YI RADICAL VUR -0A4B0 YI RADICAL SHY -0A4B1 YI RADICAL VEP -0A4B2 YI RADICAL ZA -0A4B3 YI RADICAL JO -0A4B4 YI RADICAL NZUP -0A4B5 YI RADICAL JJY -0A4B6 YI RADICAL GOT -0A4B7 YI RADICAL JJIE -0A4B8 YI RADICAL WO -0A4B9 YI RADICAL DU -0A4BA YI RADICAL SHUR -0A4BB YI RADICAL LIE -0A4BC YI RADICAL CY -0A4BD YI RADICAL CUOP -0A4BE YI RADICAL CIP -0A4BF YI RADICAL HXOP -0A4C0 YI RADICAL SHAT -0A4C1 YI RADICAL ZUR -0A4C2 YI RADICAL SHOP -0A4C3 YI RADICAL CHE -0A4C4 YI RADICAL ZZIET -0A4C5 YI RADICAL NBIE -0A4C6 YI RADICAL KE -0A4D0 LISU LETTER BA -0A4D1 LISU LETTER PA -0A4D2 LISU LETTER PHA -0A4D3 LISU LETTER DA -0A4D4 LISU LETTER TA -0A4D5 LISU LETTER THA -0A4D6 LISU LETTER GA -0A4D7 LISU LETTER KA -0A4D8 LISU LETTER KHA -0A4D9 LISU LETTER JA -0A4DA LISU LETTER CA -0A4DB LISU LETTER CHA -0A4DC LISU LETTER DZA -0A4DD LISU LETTER TSA -0A4DE LISU LETTER TSHA -0A4DF LISU LETTER MA -0A4E0 LISU LETTER NA -0A4E1 LISU LETTER LA -0A4E2 LISU LETTER SA -0A4E3 LISU LETTER ZHA -0A4E4 LISU LETTER ZA -0A4E5 LISU LETTER NGA -0A4E6 LISU LETTER HA -0A4E7 LISU LETTER XA -0A4E8 LISU LETTER HHA -0A4E9 LISU LETTER FA -0A4EA LISU LETTER WA -0A4EB LISU LETTER SHA -0A4EC LISU LETTER YA -0A4ED LISU LETTER GHA -0A4EE LISU LETTER A -0A4EF LISU LETTER AE -0A4F0 LISU LETTER E -0A4F1 LISU LETTER EU -0A4F2 LISU LETTER I -0A4F3 LISU LETTER O -0A4F4 LISU LETTER U -0A4F5 LISU LETTER UE -0A4F6 LISU LETTER UH -0A4F7 LISU LETTER OE -0A4F8 LISU LETTER TONE MYA TI -0A4F9 LISU LETTER TONE NA PO -0A4FA LISU LETTER TONE MYA CYA -0A4FB LISU LETTER TONE MYA BO -0A4FC LISU LETTER TONE MYA NA -0A4FD LISU LETTER TONE MYA JEU -0A4FE LISU PUNCTUATION COMMA -0A4FF LISU PUNCTUATION FULL STOP -0A500 VAI SYLLABLE EE -0A501 VAI SYLLABLE EEN -0A502 VAI SYLLABLE HEE -0A503 VAI SYLLABLE WEE -0A504 VAI SYLLABLE WEEN -0A505 VAI SYLLABLE PEE -0A506 VAI SYLLABLE BHEE -0A507 VAI SYLLABLE BEE -0A508 VAI SYLLABLE MBEE -0A509 VAI SYLLABLE KPEE -0A50A VAI SYLLABLE MGBEE -0A50B VAI SYLLABLE GBEE -0A50C VAI SYLLABLE FEE -0A50D VAI SYLLABLE VEE -0A50E VAI SYLLABLE TEE -0A50F VAI SYLLABLE THEE -0A510 VAI SYLLABLE DHEE -0A511 VAI SYLLABLE DHHEE -0A512 VAI SYLLABLE LEE -0A513 VAI SYLLABLE REE -0A514 VAI SYLLABLE DEE -0A515 VAI SYLLABLE NDEE -0A516 VAI SYLLABLE SEE -0A517 VAI SYLLABLE SHEE -0A518 VAI SYLLABLE ZEE -0A519 VAI SYLLABLE ZHEE -0A51A VAI SYLLABLE CEE -0A51B VAI SYLLABLE JEE -0A51C VAI SYLLABLE NJEE -0A51D VAI SYLLABLE YEE -0A51E VAI SYLLABLE KEE -0A51F VAI SYLLABLE NGGEE -0A520 VAI SYLLABLE GEE -0A521 VAI SYLLABLE MEE -0A522 VAI SYLLABLE NEE -0A523 VAI SYLLABLE NYEE -0A524 VAI SYLLABLE I -0A525 VAI SYLLABLE IN -0A526 VAI SYLLABLE HI -0A527 VAI SYLLABLE HIN -0A528 VAI SYLLABLE WI -0A529 VAI SYLLABLE WIN -0A52A VAI SYLLABLE PI -0A52B VAI SYLLABLE BHI -0A52C VAI SYLLABLE BI -0A52D VAI SYLLABLE MBI -0A52E VAI SYLLABLE KPI -0A52F VAI SYLLABLE MGBI -0A530 VAI SYLLABLE GBI -0A531 VAI SYLLABLE FI -0A532 VAI SYLLABLE VI -0A533 VAI SYLLABLE TI -0A534 VAI SYLLABLE THI -0A535 VAI SYLLABLE DHI -0A536 VAI SYLLABLE DHHI -0A537 VAI SYLLABLE LI -0A538 VAI SYLLABLE RI -0A539 VAI SYLLABLE DI -0A53A VAI SYLLABLE NDI -0A53B VAI SYLLABLE SI -0A53C VAI SYLLABLE SHI -0A53D VAI SYLLABLE ZI -0A53E VAI SYLLABLE ZHI -0A53F VAI SYLLABLE CI -0A540 VAI SYLLABLE JI -0A541 VAI SYLLABLE NJI -0A542 VAI SYLLABLE YI -0A543 VAI SYLLABLE KI -0A544 VAI SYLLABLE NGGI -0A545 VAI SYLLABLE GI -0A546 VAI SYLLABLE MI -0A547 VAI SYLLABLE NI -0A548 VAI SYLLABLE NYI -0A549 VAI SYLLABLE A -0A54A VAI SYLLABLE AN -0A54B VAI SYLLABLE NGAN -0A54C VAI SYLLABLE HA -0A54D VAI SYLLABLE HAN -0A54E VAI SYLLABLE WA -0A54F VAI SYLLABLE WAN -0A550 VAI SYLLABLE PA -0A551 VAI SYLLABLE BHA -0A552 VAI SYLLABLE BA -0A553 VAI SYLLABLE MBA -0A554 VAI SYLLABLE KPA -0A555 VAI SYLLABLE KPAN -0A556 VAI SYLLABLE MGBA -0A557 VAI SYLLABLE GBA -0A558 VAI SYLLABLE FA -0A559 VAI SYLLABLE VA -0A55A VAI SYLLABLE TA -0A55B VAI SYLLABLE THA -0A55C VAI SYLLABLE DHA -0A55D VAI SYLLABLE DHHA -0A55E VAI SYLLABLE LA -0A55F VAI SYLLABLE RA -0A560 VAI SYLLABLE DA -0A561 VAI SYLLABLE NDA -0A562 VAI SYLLABLE SA -0A563 VAI SYLLABLE SHA -0A564 VAI SYLLABLE ZA -0A565 VAI SYLLABLE ZHA -0A566 VAI SYLLABLE CA -0A567 VAI SYLLABLE JA -0A568 VAI SYLLABLE NJA -0A569 VAI SYLLABLE YA -0A56A VAI SYLLABLE KA -0A56B VAI SYLLABLE KAN -0A56C VAI SYLLABLE NGGA -0A56D VAI SYLLABLE GA -0A56E VAI SYLLABLE MA -0A56F VAI SYLLABLE NA -0A570 VAI SYLLABLE NYA -0A571 VAI SYLLABLE OO -0A572 VAI SYLLABLE OON -0A573 VAI SYLLABLE HOO -0A574 VAI SYLLABLE WOO -0A575 VAI SYLLABLE WOON -0A576 VAI SYLLABLE POO -0A577 VAI SYLLABLE BHOO -0A578 VAI SYLLABLE BOO -0A579 VAI SYLLABLE MBOO -0A57A VAI SYLLABLE KPOO -0A57B VAI SYLLABLE MGBOO -0A57C VAI SYLLABLE GBOO -0A57D VAI SYLLABLE FOO -0A57E VAI SYLLABLE VOO -0A57F VAI SYLLABLE TOO -0A580 VAI SYLLABLE THOO -0A581 VAI SYLLABLE DHOO -0A582 VAI SYLLABLE DHHOO -0A583 VAI SYLLABLE LOO -0A584 VAI SYLLABLE ROO -0A585 VAI SYLLABLE DOO -0A586 VAI SYLLABLE NDOO -0A587 VAI SYLLABLE SOO -0A588 VAI SYLLABLE SHOO -0A589 VAI SYLLABLE ZOO -0A58A VAI SYLLABLE ZHOO -0A58B VAI SYLLABLE COO -0A58C VAI SYLLABLE JOO -0A58D VAI SYLLABLE NJOO -0A58E VAI SYLLABLE YOO -0A58F VAI SYLLABLE KOO -0A590 VAI SYLLABLE NGGOO -0A591 VAI SYLLABLE GOO -0A592 VAI SYLLABLE MOO -0A593 VAI SYLLABLE NOO -0A594 VAI SYLLABLE NYOO -0A595 VAI SYLLABLE U -0A596 VAI SYLLABLE UN -0A597 VAI SYLLABLE HU -0A598 VAI SYLLABLE HUN -0A599 VAI SYLLABLE WU -0A59A VAI SYLLABLE WUN -0A59B VAI SYLLABLE PU -0A59C VAI SYLLABLE BHU -0A59D VAI SYLLABLE BU -0A59E VAI SYLLABLE MBU -0A59F VAI SYLLABLE KPU -0A5A0 VAI SYLLABLE MGBU -0A5A1 VAI SYLLABLE GBU -0A5A2 VAI SYLLABLE FU -0A5A3 VAI SYLLABLE VU -0A5A4 VAI SYLLABLE TU -0A5A5 VAI SYLLABLE THU -0A5A6 VAI SYLLABLE DHU -0A5A7 VAI SYLLABLE DHHU -0A5A8 VAI SYLLABLE LU -0A5A9 VAI SYLLABLE RU -0A5AA VAI SYLLABLE DU -0A5AB VAI SYLLABLE NDU -0A5AC VAI SYLLABLE SU -0A5AD VAI SYLLABLE SHU -0A5AE VAI SYLLABLE ZU -0A5AF VAI SYLLABLE ZHU -0A5B0 VAI SYLLABLE CU -0A5B1 VAI SYLLABLE JU -0A5B2 VAI SYLLABLE NJU -0A5B3 VAI SYLLABLE YU -0A5B4 VAI SYLLABLE KU -0A5B5 VAI SYLLABLE NGGU -0A5B6 VAI SYLLABLE GU -0A5B7 VAI SYLLABLE MU -0A5B8 VAI SYLLABLE NU -0A5B9 VAI SYLLABLE NYU -0A5BA VAI SYLLABLE O -0A5BB VAI SYLLABLE ON -0A5BC VAI SYLLABLE NGON -0A5BD VAI SYLLABLE HO -0A5BE VAI SYLLABLE HON -0A5BF VAI SYLLABLE WO -0A5C0 VAI SYLLABLE WON -0A5C1 VAI SYLLABLE PO -0A5C2 VAI SYLLABLE BHO -0A5C3 VAI SYLLABLE BO -0A5C4 VAI SYLLABLE MBO -0A5C5 VAI SYLLABLE KPO -0A5C6 VAI SYLLABLE MGBO -0A5C7 VAI SYLLABLE GBO -0A5C8 VAI SYLLABLE GBON -0A5C9 VAI SYLLABLE FO -0A5CA VAI SYLLABLE VO -0A5CB VAI SYLLABLE TO -0A5CC VAI SYLLABLE THO -0A5CD VAI SYLLABLE DHO -0A5CE VAI SYLLABLE DHHO -0A5CF VAI SYLLABLE LO -0A5D0 VAI SYLLABLE RO -0A5D1 VAI SYLLABLE DO -0A5D2 VAI SYLLABLE NDO -0A5D3 VAI SYLLABLE SO -0A5D4 VAI SYLLABLE SHO -0A5D5 VAI SYLLABLE ZO -0A5D6 VAI SYLLABLE ZHO -0A5D7 VAI SYLLABLE CO -0A5D8 VAI SYLLABLE JO -0A5D9 VAI SYLLABLE NJO -0A5DA VAI SYLLABLE YO -0A5DB VAI SYLLABLE KO -0A5DC VAI SYLLABLE NGGO -0A5DD VAI SYLLABLE GO -0A5DE VAI SYLLABLE MO -0A5DF VAI SYLLABLE NO -0A5E0 VAI SYLLABLE NYO -0A5E1 VAI SYLLABLE E -0A5E2 VAI SYLLABLE EN -0A5E3 VAI SYLLABLE NGEN -0A5E4 VAI SYLLABLE HE -0A5E5 VAI SYLLABLE HEN -0A5E6 VAI SYLLABLE WE -0A5E7 VAI SYLLABLE WEN -0A5E8 VAI SYLLABLE PE -0A5E9 VAI SYLLABLE BHE -0A5EA VAI SYLLABLE BE -0A5EB VAI SYLLABLE MBE -0A5EC VAI SYLLABLE KPE -0A5ED VAI SYLLABLE KPEN -0A5EE VAI SYLLABLE MGBE -0A5EF VAI SYLLABLE GBE -0A5F0 VAI SYLLABLE GBEN -0A5F1 VAI SYLLABLE FE -0A5F2 VAI SYLLABLE VE -0A5F3 VAI SYLLABLE TE -0A5F4 VAI SYLLABLE THE -0A5F5 VAI SYLLABLE DHE -0A5F6 VAI SYLLABLE DHHE -0A5F7 VAI SYLLABLE LE -0A5F8 VAI SYLLABLE RE -0A5F9 VAI SYLLABLE DE -0A5FA VAI SYLLABLE NDE -0A5FB VAI SYLLABLE SE -0A5FC VAI SYLLABLE SHE -0A5FD VAI SYLLABLE ZE -0A5FE VAI SYLLABLE ZHE -0A5FF VAI SYLLABLE CE -0A600 VAI SYLLABLE JE -0A601 VAI SYLLABLE NJE -0A602 VAI SYLLABLE YE -0A603 VAI SYLLABLE KE -0A604 VAI SYLLABLE NGGE -0A605 VAI SYLLABLE NGGEN -0A606 VAI SYLLABLE GE -0A607 VAI SYLLABLE GEN -0A608 VAI SYLLABLE ME -0A609 VAI SYLLABLE NE -0A60A VAI SYLLABLE NYE -0A60B VAI SYLLABLE NG -0A60C VAI SYLLABLE LENGTHENER -0A60D VAI COMMA -0A60E VAI FULL STOP -0A60F VAI QUESTION MARK -0A610 VAI SYLLABLE NDOLE FA -0A611 VAI SYLLABLE NDOLE KA -0A612 VAI SYLLABLE NDOLE SOO -0A613 VAI SYMBOL FEENG -0A614 VAI SYMBOL KEENG -0A615 VAI SYMBOL TING -0A616 VAI SYMBOL NII -0A617 VAI SYMBOL BANG -0A618 VAI SYMBOL FAA -0A619 VAI SYMBOL TAA -0A61A VAI SYMBOL DANG -0A61B VAI SYMBOL DOONG -0A61C VAI SYMBOL KUNG -0A61D VAI SYMBOL TONG -0A61E VAI SYMBOL DO-O -0A61F VAI SYMBOL JONG -0A620 VAI DIGIT ZERO -0A621 VAI DIGIT ONE -0A622 VAI DIGIT TWO -0A623 VAI DIGIT THREE -0A624 VAI DIGIT FOUR -0A625 VAI DIGIT FIVE -0A626 VAI DIGIT SIX -0A627 VAI DIGIT SEVEN -0A628 VAI DIGIT EIGHT -0A629 VAI DIGIT NINE -0A62A VAI SYLLABLE NDOLE MA -0A62B VAI SYLLABLE NDOLE DO -0A640 CYRILLIC CAPITAL LETTER ZEMLYA -0A641 CYRILLIC SMALL LETTER ZEMLYA -0A642 CYRILLIC CAPITAL LETTER DZELO -0A643 CYRILLIC SMALL LETTER DZELO -0A644 CYRILLIC CAPITAL LETTER REVERSED DZE -0A645 CYRILLIC SMALL LETTER REVERSED DZE -0A646 CYRILLIC CAPITAL LETTER IOTA -0A647 CYRILLIC SMALL LETTER IOTA -0A648 CYRILLIC CAPITAL LETTER DJERV -0A649 CYRILLIC SMALL LETTER DJERV -0A64A CYRILLIC CAPITAL LETTER MONOGRAPH UK -0A64B CYRILLIC SMALL LETTER MONOGRAPH UK -0A64C CYRILLIC CAPITAL LETTER BROAD OMEGA -0A64D CYRILLIC SMALL LETTER BROAD OMEGA -0A64E CYRILLIC CAPITAL LETTER NEUTRAL YER -0A64F CYRILLIC SMALL LETTER NEUTRAL YER -0A650 CYRILLIC CAPITAL LETTER YERU WITH BACK YER -0A651 CYRILLIC SMALL LETTER YERU WITH BACK YER -0A652 CYRILLIC CAPITAL LETTER IOTIFIED YAT -0A653 CYRILLIC SMALL LETTER IOTIFIED YAT -0A654 CYRILLIC CAPITAL LETTER REVERSED YU -0A655 CYRILLIC SMALL LETTER REVERSED YU -0A656 CYRILLIC CAPITAL LETTER IOTIFIED A -0A657 CYRILLIC SMALL LETTER IOTIFIED A -0A658 CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS -0A659 CYRILLIC SMALL LETTER CLOSED LITTLE YUS -0A65A CYRILLIC CAPITAL LETTER BLENDED YUS -0A65B CYRILLIC SMALL LETTER BLENDED YUS -0A65C CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS -0A65D CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS -0A65E CYRILLIC CAPITAL LETTER YN -0A65F CYRILLIC SMALL LETTER YN -0A660 CYRILLIC CAPITAL LETTER REVERSED TSE -0A661 CYRILLIC SMALL LETTER REVERSED TSE -0A662 CYRILLIC CAPITAL LETTER SOFT DE -0A663 CYRILLIC SMALL LETTER SOFT DE -0A664 CYRILLIC CAPITAL LETTER SOFT EL -0A665 CYRILLIC SMALL LETTER SOFT EL -0A666 CYRILLIC CAPITAL LETTER SOFT EM -0A667 CYRILLIC SMALL LETTER SOFT EM -0A668 CYRILLIC CAPITAL LETTER MONOCULAR O -0A669 CYRILLIC SMALL LETTER MONOCULAR O -0A66A CYRILLIC CAPITAL LETTER BINOCULAR O -0A66B CYRILLIC SMALL LETTER BINOCULAR O -0A66C CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O -0A66D CYRILLIC SMALL LETTER DOUBLE MONOCULAR O -0A66E CYRILLIC LETTER MULTIOCULAR O -0A66F COMBINING CYRILLIC VZMET -0A670 COMBINING CYRILLIC TEN MILLIONS SIGN -0A671 COMBINING CYRILLIC HUNDRED MILLIONS SIGN -0A672 COMBINING CYRILLIC THOUSAND MILLIONS SIGN -0A673 SLAVONIC ASTERISK -0A674 COMBINING CYRILLIC LETTER UKRAINIAN IE -0A675 COMBINING CYRILLIC LETTER I -0A676 COMBINING CYRILLIC LETTER YI -0A677 COMBINING CYRILLIC LETTER U -0A678 COMBINING CYRILLIC LETTER HARD SIGN -0A679 COMBINING CYRILLIC LETTER YERU -0A67A COMBINING CYRILLIC LETTER SOFT SIGN -0A67B COMBINING CYRILLIC LETTER OMEGA -0A67C COMBINING CYRILLIC KAVYKA -0A67D COMBINING CYRILLIC PAYEROK -0A67E CYRILLIC KAVYKA -0A67F CYRILLIC PAYEROK -0A680 CYRILLIC CAPITAL LETTER DWE -0A681 CYRILLIC SMALL LETTER DWE -0A682 CYRILLIC CAPITAL LETTER DZWE -0A683 CYRILLIC SMALL LETTER DZWE -0A684 CYRILLIC CAPITAL LETTER ZHWE -0A685 CYRILLIC SMALL LETTER ZHWE -0A686 CYRILLIC CAPITAL LETTER CCHE -0A687 CYRILLIC SMALL LETTER CCHE -0A688 CYRILLIC CAPITAL LETTER DZZE -0A689 CYRILLIC SMALL LETTER DZZE -0A68A CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK -0A68B CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK -0A68C CYRILLIC CAPITAL LETTER TWE -0A68D CYRILLIC SMALL LETTER TWE -0A68E CYRILLIC CAPITAL LETTER TSWE -0A68F CYRILLIC SMALL LETTER TSWE -0A690 CYRILLIC CAPITAL LETTER TSSE -0A691 CYRILLIC SMALL LETTER TSSE -0A692 CYRILLIC CAPITAL LETTER TCHE -0A693 CYRILLIC SMALL LETTER TCHE -0A694 CYRILLIC CAPITAL LETTER HWE -0A695 CYRILLIC SMALL LETTER HWE -0A696 CYRILLIC CAPITAL LETTER SHWE -0A697 CYRILLIC SMALL LETTER SHWE -0A698 CYRILLIC CAPITAL LETTER DOUBLE O -0A699 CYRILLIC SMALL LETTER DOUBLE O -0A69A CYRILLIC CAPITAL LETTER CROSSED O -0A69B CYRILLIC SMALL LETTER CROSSED O -0A69C MODIFIER LETTER CYRILLIC HARD SIGN -0A69D MODIFIER LETTER CYRILLIC SOFT SIGN -0A69E COMBINING CYRILLIC LETTER EF -0A69F COMBINING CYRILLIC LETTER IOTIFIED E -0A6A0 BAMUM LETTER A -0A6A1 BAMUM LETTER KA -0A6A2 BAMUM LETTER U -0A6A3 BAMUM LETTER KU -0A6A4 BAMUM LETTER EE -0A6A5 BAMUM LETTER REE -0A6A6 BAMUM LETTER TAE -0A6A7 BAMUM LETTER O -0A6A8 BAMUM LETTER NYI -0A6A9 BAMUM LETTER I -0A6AA BAMUM LETTER LA -0A6AB BAMUM LETTER PA -0A6AC BAMUM LETTER RII -0A6AD BAMUM LETTER RIEE -0A6AE BAMUM LETTER LEEEE -0A6AF BAMUM LETTER MEEEE -0A6B0 BAMUM LETTER TAA -0A6B1 BAMUM LETTER NDAA -0A6B2 BAMUM LETTER NJAEM -0A6B3 BAMUM LETTER M -0A6B4 BAMUM LETTER SUU -0A6B5 BAMUM LETTER MU -0A6B6 BAMUM LETTER SHII -0A6B7 BAMUM LETTER SI -0A6B8 BAMUM LETTER SHEUX -0A6B9 BAMUM LETTER SEUX -0A6BA BAMUM LETTER KYEE -0A6BB BAMUM LETTER KET -0A6BC BAMUM LETTER NUAE -0A6BD BAMUM LETTER NU -0A6BE BAMUM LETTER NJUAE -0A6BF BAMUM LETTER YOQ -0A6C0 BAMUM LETTER SHU -0A6C1 BAMUM LETTER YUQ -0A6C2 BAMUM LETTER YA -0A6C3 BAMUM LETTER NSHA -0A6C4 BAMUM LETTER KEUX -0A6C5 BAMUM LETTER PEUX -0A6C6 BAMUM LETTER NJEE -0A6C7 BAMUM LETTER NTEE -0A6C8 BAMUM LETTER PUE -0A6C9 BAMUM LETTER WUE -0A6CA BAMUM LETTER PEE -0A6CB BAMUM LETTER FEE -0A6CC BAMUM LETTER RU -0A6CD BAMUM LETTER LU -0A6CE BAMUM LETTER MI -0A6CF BAMUM LETTER NI -0A6D0 BAMUM LETTER REUX -0A6D1 BAMUM LETTER RAE -0A6D2 BAMUM LETTER KEN -0A6D3 BAMUM LETTER NGKWAEN -0A6D4 BAMUM LETTER NGGA -0A6D5 BAMUM LETTER NGA -0A6D6 BAMUM LETTER SHO -0A6D7 BAMUM LETTER PUAE -0A6D8 BAMUM LETTER FU -0A6D9 BAMUM LETTER FOM -0A6DA BAMUM LETTER WA -0A6DB BAMUM LETTER NA -0A6DC BAMUM LETTER LI -0A6DD BAMUM LETTER PI -0A6DE BAMUM LETTER LOQ -0A6DF BAMUM LETTER KO -0A6E0 BAMUM LETTER MBEN -0A6E1 BAMUM LETTER REN -0A6E2 BAMUM LETTER MEN -0A6E3 BAMUM LETTER MA -0A6E4 BAMUM LETTER TI -0A6E5 BAMUM LETTER KI -0A6E6 BAMUM LETTER MO -0A6E7 BAMUM LETTER MBAA -0A6E8 BAMUM LETTER TET -0A6E9 BAMUM LETTER KPA -0A6EA BAMUM LETTER TEN -0A6EB BAMUM LETTER NTUU -0A6EC BAMUM LETTER SAMBA -0A6ED BAMUM LETTER FAAMAE -0A6EE BAMUM LETTER KOVUU -0A6EF BAMUM LETTER KOGHOM -0A6F0 BAMUM COMBINING MARK KOQNDON -0A6F1 BAMUM COMBINING MARK TUKWENTIS -0A6F2 BAMUM NJAEMLI -0A6F3 BAMUM FULL STOP -0A6F4 BAMUM COLON -0A6F5 BAMUM COMMA -0A6F6 BAMUM SEMICOLON -0A6F7 BAMUM QUESTION MARK -0A700 MODIFIER LETTER CHINESE TONE YIN PING -0A701 MODIFIER LETTER CHINESE TONE YANG PING -0A702 MODIFIER LETTER CHINESE TONE YIN SHANG -0A703 MODIFIER LETTER CHINESE TONE YANG SHANG -0A704 MODIFIER LETTER CHINESE TONE YIN QU -0A705 MODIFIER LETTER CHINESE TONE YANG QU -0A706 MODIFIER LETTER CHINESE TONE YIN RU -0A707 MODIFIER LETTER CHINESE TONE YANG RU -0A708 MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR -0A709 MODIFIER LETTER HIGH DOTTED TONE BAR -0A70A MODIFIER LETTER MID DOTTED TONE BAR -0A70B MODIFIER LETTER LOW DOTTED TONE BAR -0A70C MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR -0A70D MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR -0A70E MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR -0A70F MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR -0A710 MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR -0A711 MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR -0A712 MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR -0A713 MODIFIER LETTER HIGH LEFT-STEM TONE BAR -0A714 MODIFIER LETTER MID LEFT-STEM TONE BAR -0A715 MODIFIER LETTER LOW LEFT-STEM TONE BAR -0A716 MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR -0A717 MODIFIER LETTER DOT VERTICAL BAR -0A718 MODIFIER LETTER DOT SLASH -0A719 MODIFIER LETTER DOT HORIZONTAL BAR -0A71A MODIFIER LETTER LOWER RIGHT CORNER ANGLE -0A71B MODIFIER LETTER RAISED UP ARROW -0A71C MODIFIER LETTER RAISED DOWN ARROW -0A71D MODIFIER LETTER RAISED EXCLAMATION MARK -0A71E MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK -0A71F MODIFIER LETTER LOW INVERTED EXCLAMATION MARK -0A720 MODIFIER LETTER STRESS AND HIGH TONE -0A721 MODIFIER LETTER STRESS AND LOW TONE -0A722 LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF -0A723 LATIN SMALL LETTER EGYPTOLOGICAL ALEF -0A724 LATIN CAPITAL LETTER EGYPTOLOGICAL AIN -0A725 LATIN SMALL LETTER EGYPTOLOGICAL AIN -0A726 LATIN CAPITAL LETTER HENG -0A727 LATIN SMALL LETTER HENG -0A728 LATIN CAPITAL LETTER TZ -0A729 LATIN SMALL LETTER TZ -0A72A LATIN CAPITAL LETTER TRESILLO -0A72B LATIN SMALL LETTER TRESILLO -0A72C LATIN CAPITAL LETTER CUATRILLO -0A72D LATIN SMALL LETTER CUATRILLO -0A72E LATIN CAPITAL LETTER CUATRILLO WITH COMMA -0A72F LATIN SMALL LETTER CUATRILLO WITH COMMA -0A730 LATIN LETTER SMALL CAPITAL F -0A731 LATIN LETTER SMALL CAPITAL S -0A732 LATIN CAPITAL LETTER AA -0A733 LATIN SMALL LETTER AA -0A734 LATIN CAPITAL LETTER AO -0A735 LATIN SMALL LETTER AO -0A736 LATIN CAPITAL LETTER AU -0A737 LATIN SMALL LETTER AU -0A738 LATIN CAPITAL LETTER AV -0A739 LATIN SMALL LETTER AV -0A73A LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR -0A73B LATIN SMALL LETTER AV WITH HORIZONTAL BAR -0A73C LATIN CAPITAL LETTER AY -0A73D LATIN SMALL LETTER AY -0A73E LATIN CAPITAL LETTER REVERSED C WITH DOT -0A73F LATIN SMALL LETTER REVERSED C WITH DOT -0A740 LATIN CAPITAL LETTER K WITH STROKE -0A741 LATIN SMALL LETTER K WITH STROKE -0A742 LATIN CAPITAL LETTER K WITH DIAGONAL STROKE -0A743 LATIN SMALL LETTER K WITH DIAGONAL STROKE -0A744 LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE -0A745 LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE -0A746 LATIN CAPITAL LETTER BROKEN L -0A747 LATIN SMALL LETTER BROKEN L -0A748 LATIN CAPITAL LETTER L WITH HIGH STROKE -0A749 LATIN SMALL LETTER L WITH HIGH STROKE -0A74A LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY -0A74B LATIN SMALL LETTER O WITH LONG STROKE OVERLAY -0A74C LATIN CAPITAL LETTER O WITH LOOP -0A74D LATIN SMALL LETTER O WITH LOOP -0A74E LATIN CAPITAL LETTER OO -0A74F LATIN SMALL LETTER OO -0A750 LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER -0A751 LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER -0A752 LATIN CAPITAL LETTER P WITH FLOURISH -0A753 LATIN SMALL LETTER P WITH FLOURISH -0A754 LATIN CAPITAL LETTER P WITH SQUIRREL TAIL -0A755 LATIN SMALL LETTER P WITH SQUIRREL TAIL -0A756 LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER -0A757 LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER -0A758 LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE -0A759 LATIN SMALL LETTER Q WITH DIAGONAL STROKE -0A75A LATIN CAPITAL LETTER R ROTUNDA -0A75B LATIN SMALL LETTER R ROTUNDA -0A75C LATIN CAPITAL LETTER RUM ROTUNDA -0A75D LATIN SMALL LETTER RUM ROTUNDA -0A75E LATIN CAPITAL LETTER V WITH DIAGONAL STROKE -0A75F LATIN SMALL LETTER V WITH DIAGONAL STROKE -0A760 LATIN CAPITAL LETTER VY -0A761 LATIN SMALL LETTER VY -0A762 LATIN CAPITAL LETTER VISIGOTHIC Z -0A763 LATIN SMALL LETTER VISIGOTHIC Z -0A764 LATIN CAPITAL LETTER THORN WITH STROKE -0A765 LATIN SMALL LETTER THORN WITH STROKE -0A766 LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER -0A767 LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER -0A768 LATIN CAPITAL LETTER VEND -0A769 LATIN SMALL LETTER VEND -0A76A LATIN CAPITAL LETTER ET -0A76B LATIN SMALL LETTER ET -0A76C LATIN CAPITAL LETTER IS -0A76D LATIN SMALL LETTER IS -0A76E LATIN CAPITAL LETTER CON -0A76F LATIN SMALL LETTER CON -0A770 MODIFIER LETTER US -0A771 LATIN SMALL LETTER DUM -0A772 LATIN SMALL LETTER LUM -0A773 LATIN SMALL LETTER MUM -0A774 LATIN SMALL LETTER NUM -0A775 LATIN SMALL LETTER RUM -0A776 LATIN LETTER SMALL CAPITAL RUM -0A777 LATIN SMALL LETTER TUM -0A778 LATIN SMALL LETTER UM -0A779 LATIN CAPITAL LETTER INSULAR D -0A77A LATIN SMALL LETTER INSULAR D -0A77B LATIN CAPITAL LETTER INSULAR F -0A77C LATIN SMALL LETTER INSULAR F -0A77D LATIN CAPITAL LETTER INSULAR G -0A77E LATIN CAPITAL LETTER TURNED INSULAR G -0A77F LATIN SMALL LETTER TURNED INSULAR G -0A780 LATIN CAPITAL LETTER TURNED L -0A781 LATIN SMALL LETTER TURNED L -0A782 LATIN CAPITAL LETTER INSULAR R -0A783 LATIN SMALL LETTER INSULAR R -0A784 LATIN CAPITAL LETTER INSULAR S -0A785 LATIN SMALL LETTER INSULAR S -0A786 LATIN CAPITAL LETTER INSULAR T -0A787 LATIN SMALL LETTER INSULAR T -0A788 MODIFIER LETTER LOW CIRCUMFLEX ACCENT -0A789 MODIFIER LETTER COLON -0A78A MODIFIER LETTER SHORT EQUALS SIGN -0A78B LATIN CAPITAL LETTER SALTILLO -0A78C LATIN SMALL LETTER SALTILLO -0A78D LATIN CAPITAL LETTER TURNED H -0A78E LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT -0A78F LATIN LETTER SINOLOGICAL DOT -0A790 LATIN CAPITAL LETTER N WITH DESCENDER -0A791 LATIN SMALL LETTER N WITH DESCENDER -0A792 LATIN CAPITAL LETTER C WITH BAR -0A793 LATIN SMALL LETTER C WITH BAR -0A794 LATIN SMALL LETTER C WITH PALATAL HOOK -0A795 LATIN SMALL LETTER H WITH PALATAL HOOK -0A796 LATIN CAPITAL LETTER B WITH FLOURISH -0A797 LATIN SMALL LETTER B WITH FLOURISH -0A798 LATIN CAPITAL LETTER F WITH STROKE -0A799 LATIN SMALL LETTER F WITH STROKE -0A79A LATIN CAPITAL LETTER VOLAPUK AE -0A79B LATIN SMALL LETTER VOLAPUK AE -0A79C LATIN CAPITAL LETTER VOLAPUK OE -0A79D LATIN SMALL LETTER VOLAPUK OE -0A79E LATIN CAPITAL LETTER VOLAPUK UE -0A79F LATIN SMALL LETTER VOLAPUK UE -0A7A0 LATIN CAPITAL LETTER G WITH OBLIQUE STROKE -0A7A1 LATIN SMALL LETTER G WITH OBLIQUE STROKE -0A7A2 LATIN CAPITAL LETTER K WITH OBLIQUE STROKE -0A7A3 LATIN SMALL LETTER K WITH OBLIQUE STROKE -0A7A4 LATIN CAPITAL LETTER N WITH OBLIQUE STROKE -0A7A5 LATIN SMALL LETTER N WITH OBLIQUE STROKE -0A7A6 LATIN CAPITAL LETTER R WITH OBLIQUE STROKE -0A7A7 LATIN SMALL LETTER R WITH OBLIQUE STROKE -0A7A8 LATIN CAPITAL LETTER S WITH OBLIQUE STROKE -0A7A9 LATIN SMALL LETTER S WITH OBLIQUE STROKE -0A7AA LATIN CAPITAL LETTER H WITH HOOK -0A7AB LATIN CAPITAL LETTER REVERSED OPEN E -0A7AC LATIN CAPITAL LETTER SCRIPT G -0A7AD LATIN CAPITAL LETTER L WITH BELT -0A7B0 LATIN CAPITAL LETTER TURNED K -0A7B1 LATIN CAPITAL LETTER TURNED T -0A7B2 LATIN CAPITAL LETTER J WITH CROSSED-TAIL -0A7B3 LATIN CAPITAL LETTER CHI -0A7B4 LATIN CAPITAL LETTER BETA -0A7B5 LATIN SMALL LETTER BETA -0A7B6 LATIN CAPITAL LETTER OMEGA -0A7B7 LATIN SMALL LETTER OMEGA -0A7F7 LATIN EPIGRAPHIC LETTER SIDEWAYS I -0A7F8 MODIFIER LETTER CAPITAL H WITH STROKE -0A7F9 MODIFIER LETTER SMALL LIGATURE OE -0A7FA LATIN LETTER SMALL CAPITAL TURNED M -0A7FB LATIN EPIGRAPHIC LETTER REVERSED F -0A7FC LATIN EPIGRAPHIC LETTER REVERSED P -0A7FD LATIN EPIGRAPHIC LETTER INVERTED M -0A7FE LATIN EPIGRAPHIC LETTER I LONGA -0A7FF LATIN EPIGRAPHIC LETTER ARCHAIC M -0A800 SYLOTI NAGRI LETTER A -0A801 SYLOTI NAGRI LETTER I -0A802 SYLOTI NAGRI SIGN DVISVARA -0A803 SYLOTI NAGRI LETTER U -0A804 SYLOTI NAGRI LETTER E -0A805 SYLOTI NAGRI LETTER O -0A806 SYLOTI NAGRI SIGN HASANTA -0A807 SYLOTI NAGRI LETTER KO -0A808 SYLOTI NAGRI LETTER KHO -0A809 SYLOTI NAGRI LETTER GO -0A80A SYLOTI NAGRI LETTER GHO -0A80B SYLOTI NAGRI SIGN ANUSVARA -0A80C SYLOTI NAGRI LETTER CO -0A80D SYLOTI NAGRI LETTER CHO -0A80E SYLOTI NAGRI LETTER JO -0A80F SYLOTI NAGRI LETTER JHO -0A810 SYLOTI NAGRI LETTER TTO -0A811 SYLOTI NAGRI LETTER TTHO -0A812 SYLOTI NAGRI LETTER DDO -0A813 SYLOTI NAGRI LETTER DDHO -0A814 SYLOTI NAGRI LETTER TO -0A815 SYLOTI NAGRI LETTER THO -0A816 SYLOTI NAGRI LETTER DO -0A817 SYLOTI NAGRI LETTER DHO -0A818 SYLOTI NAGRI LETTER NO -0A819 SYLOTI NAGRI LETTER PO -0A81A SYLOTI NAGRI LETTER PHO -0A81B SYLOTI NAGRI LETTER BO -0A81C SYLOTI NAGRI LETTER BHO -0A81D SYLOTI NAGRI LETTER MO -0A81E SYLOTI NAGRI LETTER RO -0A81F SYLOTI NAGRI LETTER LO -0A820 SYLOTI NAGRI LETTER RRO -0A821 SYLOTI NAGRI LETTER SO -0A822 SYLOTI NAGRI LETTER HO -0A823 SYLOTI NAGRI VOWEL SIGN A -0A824 SYLOTI NAGRI VOWEL SIGN I -0A825 SYLOTI NAGRI VOWEL SIGN U -0A826 SYLOTI NAGRI VOWEL SIGN E -0A827 SYLOTI NAGRI VOWEL SIGN OO -0A828 SYLOTI NAGRI POETRY MARK-1 -0A829 SYLOTI NAGRI POETRY MARK-2 -0A82A SYLOTI NAGRI POETRY MARK-3 -0A82B SYLOTI NAGRI POETRY MARK-4 -0A830 NORTH INDIC FRACTION ONE QUARTER -0A831 NORTH INDIC FRACTION ONE HALF -0A832 NORTH INDIC FRACTION THREE QUARTERS -0A833 NORTH INDIC FRACTION ONE SIXTEENTH -0A834 NORTH INDIC FRACTION ONE EIGHTH -0A835 NORTH INDIC FRACTION THREE SIXTEENTHS -0A836 NORTH INDIC QUARTER MARK -0A837 NORTH INDIC PLACEHOLDER MARK -0A838 NORTH INDIC RUPEE MARK -0A839 NORTH INDIC QUANTITY MARK -0A840 PHAGS-PA LETTER KA -0A841 PHAGS-PA LETTER KHA -0A842 PHAGS-PA LETTER GA -0A843 PHAGS-PA LETTER NGA -0A844 PHAGS-PA LETTER CA -0A845 PHAGS-PA LETTER CHA -0A846 PHAGS-PA LETTER JA -0A847 PHAGS-PA LETTER NYA -0A848 PHAGS-PA LETTER TA -0A849 PHAGS-PA LETTER THA -0A84A PHAGS-PA LETTER DA -0A84B PHAGS-PA LETTER NA -0A84C PHAGS-PA LETTER PA -0A84D PHAGS-PA LETTER PHA -0A84E PHAGS-PA LETTER BA -0A84F PHAGS-PA LETTER MA -0A850 PHAGS-PA LETTER TSA -0A851 PHAGS-PA LETTER TSHA -0A852 PHAGS-PA LETTER DZA -0A853 PHAGS-PA LETTER WA -0A854 PHAGS-PA LETTER ZHA -0A855 PHAGS-PA LETTER ZA -0A856 PHAGS-PA LETTER SMALL A -0A857 PHAGS-PA LETTER YA -0A858 PHAGS-PA LETTER RA -0A859 PHAGS-PA LETTER LA -0A85A PHAGS-PA LETTER SHA -0A85B PHAGS-PA LETTER SA -0A85C PHAGS-PA LETTER HA -0A85D PHAGS-PA LETTER A -0A85E PHAGS-PA LETTER I -0A85F PHAGS-PA LETTER U -0A860 PHAGS-PA LETTER E -0A861 PHAGS-PA LETTER O -0A862 PHAGS-PA LETTER QA -0A863 PHAGS-PA LETTER XA -0A864 PHAGS-PA LETTER FA -0A865 PHAGS-PA LETTER GGA -0A866 PHAGS-PA LETTER EE -0A867 PHAGS-PA SUBJOINED LETTER WA -0A868 PHAGS-PA SUBJOINED LETTER YA -0A869 PHAGS-PA LETTER TTA -0A86A PHAGS-PA LETTER TTHA -0A86B PHAGS-PA LETTER DDA -0A86C PHAGS-PA LETTER NNA -0A86D PHAGS-PA LETTER ALTERNATE YA -0A86E PHAGS-PA LETTER VOICELESS SHA -0A86F PHAGS-PA LETTER VOICED HA -0A870 PHAGS-PA LETTER ASPIRATED FA -0A871 PHAGS-PA SUBJOINED LETTER RA -0A872 PHAGS-PA SUPERFIXED LETTER RA -0A873 PHAGS-PA LETTER CANDRABINDU -0A874 PHAGS-PA SINGLE HEAD MARK -0A875 PHAGS-PA DOUBLE HEAD MARK -0A876 PHAGS-PA MARK SHAD -0A877 PHAGS-PA MARK DOUBLE SHAD -0A880 SAURASHTRA SIGN ANUSVARA -0A881 SAURASHTRA SIGN VISARGA -0A882 SAURASHTRA LETTER A -0A883 SAURASHTRA LETTER AA -0A884 SAURASHTRA LETTER I -0A885 SAURASHTRA LETTER II -0A886 SAURASHTRA LETTER U -0A887 SAURASHTRA LETTER UU -0A888 SAURASHTRA LETTER VOCALIC R -0A889 SAURASHTRA LETTER VOCALIC RR -0A88A SAURASHTRA LETTER VOCALIC L -0A88B SAURASHTRA LETTER VOCALIC LL -0A88C SAURASHTRA LETTER E -0A88D SAURASHTRA LETTER EE -0A88E SAURASHTRA LETTER AI -0A88F SAURASHTRA LETTER O -0A890 SAURASHTRA LETTER OO -0A891 SAURASHTRA LETTER AU -0A892 SAURASHTRA LETTER KA -0A893 SAURASHTRA LETTER KHA -0A894 SAURASHTRA LETTER GA -0A895 SAURASHTRA LETTER GHA -0A896 SAURASHTRA LETTER NGA -0A897 SAURASHTRA LETTER CA -0A898 SAURASHTRA LETTER CHA -0A899 SAURASHTRA LETTER JA -0A89A SAURASHTRA LETTER JHA -0A89B SAURASHTRA LETTER NYA -0A89C SAURASHTRA LETTER TTA -0A89D SAURASHTRA LETTER TTHA -0A89E SAURASHTRA LETTER DDA -0A89F SAURASHTRA LETTER DDHA -0A8A0 SAURASHTRA LETTER NNA -0A8A1 SAURASHTRA LETTER TA -0A8A2 SAURASHTRA LETTER THA -0A8A3 SAURASHTRA LETTER DA -0A8A4 SAURASHTRA LETTER DHA -0A8A5 SAURASHTRA LETTER NA -0A8A6 SAURASHTRA LETTER PA -0A8A7 SAURASHTRA LETTER PHA -0A8A8 SAURASHTRA LETTER BA -0A8A9 SAURASHTRA LETTER BHA -0A8AA SAURASHTRA LETTER MA -0A8AB SAURASHTRA LETTER YA -0A8AC SAURASHTRA LETTER RA -0A8AD SAURASHTRA LETTER LA -0A8AE SAURASHTRA LETTER VA -0A8AF SAURASHTRA LETTER SHA -0A8B0 SAURASHTRA LETTER SSA -0A8B1 SAURASHTRA LETTER SA -0A8B2 SAURASHTRA LETTER HA -0A8B3 SAURASHTRA LETTER LLA -0A8B4 SAURASHTRA CONSONANT SIGN HAARU -0A8B5 SAURASHTRA VOWEL SIGN AA -0A8B6 SAURASHTRA VOWEL SIGN I -0A8B7 SAURASHTRA VOWEL SIGN II -0A8B8 SAURASHTRA VOWEL SIGN U -0A8B9 SAURASHTRA VOWEL SIGN UU -0A8BA SAURASHTRA VOWEL SIGN VOCALIC R -0A8BB SAURASHTRA VOWEL SIGN VOCALIC RR -0A8BC SAURASHTRA VOWEL SIGN VOCALIC L -0A8BD SAURASHTRA VOWEL SIGN VOCALIC LL -0A8BE SAURASHTRA VOWEL SIGN E -0A8BF SAURASHTRA VOWEL SIGN EE -0A8C0 SAURASHTRA VOWEL SIGN AI -0A8C1 SAURASHTRA VOWEL SIGN O -0A8C2 SAURASHTRA VOWEL SIGN OO -0A8C3 SAURASHTRA VOWEL SIGN AU -0A8C4 SAURASHTRA SIGN VIRAMA -0A8CE SAURASHTRA DANDA -0A8CF SAURASHTRA DOUBLE DANDA -0A8D0 SAURASHTRA DIGIT ZERO -0A8D1 SAURASHTRA DIGIT ONE -0A8D2 SAURASHTRA DIGIT TWO -0A8D3 SAURASHTRA DIGIT THREE -0A8D4 SAURASHTRA DIGIT FOUR -0A8D5 SAURASHTRA DIGIT FIVE -0A8D6 SAURASHTRA DIGIT SIX -0A8D7 SAURASHTRA DIGIT SEVEN -0A8D8 SAURASHTRA DIGIT EIGHT -0A8D9 SAURASHTRA DIGIT NINE -0A8E0 COMBINING DEVANAGARI DIGIT ZERO -0A8E1 COMBINING DEVANAGARI DIGIT ONE -0A8E2 COMBINING DEVANAGARI DIGIT TWO -0A8E3 COMBINING DEVANAGARI DIGIT THREE -0A8E4 COMBINING DEVANAGARI DIGIT FOUR -0A8E5 COMBINING DEVANAGARI DIGIT FIVE -0A8E6 COMBINING DEVANAGARI DIGIT SIX -0A8E7 COMBINING DEVANAGARI DIGIT SEVEN -0A8E8 COMBINING DEVANAGARI DIGIT EIGHT -0A8E9 COMBINING DEVANAGARI DIGIT NINE -0A8EA COMBINING DEVANAGARI LETTER A -0A8EB COMBINING DEVANAGARI LETTER U -0A8EC COMBINING DEVANAGARI LETTER KA -0A8ED COMBINING DEVANAGARI LETTER NA -0A8EE COMBINING DEVANAGARI LETTER PA -0A8EF COMBINING DEVANAGARI LETTER RA -0A8F0 COMBINING DEVANAGARI LETTER VI -0A8F1 COMBINING DEVANAGARI SIGN AVAGRAHA -0A8F2 DEVANAGARI SIGN SPACING CANDRABINDU -0A8F3 DEVANAGARI SIGN CANDRABINDU VIRAMA -0A8F4 DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA -0A8F5 DEVANAGARI SIGN CANDRABINDU TWO -0A8F6 DEVANAGARI SIGN CANDRABINDU THREE -0A8F7 DEVANAGARI SIGN CANDRABINDU AVAGRAHA -0A8F8 DEVANAGARI SIGN PUSHPIKA -0A8F9 DEVANAGARI GAP FILLER -0A8FA DEVANAGARI CARET -0A8FB DEVANAGARI HEADSTROKE -0A8FC DEVANAGARI SIGN SIDDHAM -0A8FD DEVANAGARI JAIN OM -0A900 KAYAH LI DIGIT ZERO -0A901 KAYAH LI DIGIT ONE -0A902 KAYAH LI DIGIT TWO -0A903 KAYAH LI DIGIT THREE -0A904 KAYAH LI DIGIT FOUR -0A905 KAYAH LI DIGIT FIVE -0A906 KAYAH LI DIGIT SIX -0A907 KAYAH LI DIGIT SEVEN -0A908 KAYAH LI DIGIT EIGHT -0A909 KAYAH LI DIGIT NINE -0A90A KAYAH LI LETTER KA -0A90B KAYAH LI LETTER KHA -0A90C KAYAH LI LETTER GA -0A90D KAYAH LI LETTER NGA -0A90E KAYAH LI LETTER SA -0A90F KAYAH LI LETTER SHA -0A910 KAYAH LI LETTER ZA -0A911 KAYAH LI LETTER NYA -0A912 KAYAH LI LETTER TA -0A913 KAYAH LI LETTER HTA -0A914 KAYAH LI LETTER NA -0A915 KAYAH LI LETTER PA -0A916 KAYAH LI LETTER PHA -0A917 KAYAH LI LETTER MA -0A918 KAYAH LI LETTER DA -0A919 KAYAH LI LETTER BA -0A91A KAYAH LI LETTER RA -0A91B KAYAH LI LETTER YA -0A91C KAYAH LI LETTER LA -0A91D KAYAH LI LETTER WA -0A91E KAYAH LI LETTER THA -0A91F KAYAH LI LETTER HA -0A920 KAYAH LI LETTER VA -0A921 KAYAH LI LETTER CA -0A922 KAYAH LI LETTER A -0A923 KAYAH LI LETTER OE -0A924 KAYAH LI LETTER I -0A925 KAYAH LI LETTER OO -0A926 KAYAH LI VOWEL UE -0A927 KAYAH LI VOWEL E -0A928 KAYAH LI VOWEL U -0A929 KAYAH LI VOWEL EE -0A92A KAYAH LI VOWEL O -0A92B KAYAH LI TONE PLOPHU -0A92C KAYAH LI TONE CALYA -0A92D KAYAH LI TONE CALYA PLOPHU -0A92E KAYAH LI SIGN CWI -0A92F KAYAH LI SIGN SHYA -0A930 REJANG LETTER KA -0A931 REJANG LETTER GA -0A932 REJANG LETTER NGA -0A933 REJANG LETTER TA -0A934 REJANG LETTER DA -0A935 REJANG LETTER NA -0A936 REJANG LETTER PA -0A937 REJANG LETTER BA -0A938 REJANG LETTER MA -0A939 REJANG LETTER CA -0A93A REJANG LETTER JA -0A93B REJANG LETTER NYA -0A93C REJANG LETTER SA -0A93D REJANG LETTER RA -0A93E REJANG LETTER LA -0A93F REJANG LETTER YA -0A940 REJANG LETTER WA -0A941 REJANG LETTER HA -0A942 REJANG LETTER MBA -0A943 REJANG LETTER NGGA -0A944 REJANG LETTER NDA -0A945 REJANG LETTER NYJA -0A946 REJANG LETTER A -0A947 REJANG VOWEL SIGN I -0A948 REJANG VOWEL SIGN U -0A949 REJANG VOWEL SIGN E -0A94A REJANG VOWEL SIGN AI -0A94B REJANG VOWEL SIGN O -0A94C REJANG VOWEL SIGN AU -0A94D REJANG VOWEL SIGN EU -0A94E REJANG VOWEL SIGN EA -0A94F REJANG CONSONANT SIGN NG -0A950 REJANG CONSONANT SIGN N -0A951 REJANG CONSONANT SIGN R -0A952 REJANG CONSONANT SIGN H -0A953 REJANG VIRAMA -0A95F REJANG SECTION MARK -0A960 HANGUL CHOSEONG TIKEUT-MIEUM -0A961 HANGUL CHOSEONG TIKEUT-PIEUP -0A962 HANGUL CHOSEONG TIKEUT-SIOS -0A963 HANGUL CHOSEONG TIKEUT-CIEUC -0A964 HANGUL CHOSEONG RIEUL-KIYEOK -0A965 HANGUL CHOSEONG RIEUL-SSANGKIYEOK -0A966 HANGUL CHOSEONG RIEUL-TIKEUT -0A967 HANGUL CHOSEONG RIEUL-SSANGTIKEUT -0A968 HANGUL CHOSEONG RIEUL-MIEUM -0A969 HANGUL CHOSEONG RIEUL-PIEUP -0A96A HANGUL CHOSEONG RIEUL-SSANGPIEUP -0A96B HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP -0A96C HANGUL CHOSEONG RIEUL-SIOS -0A96D HANGUL CHOSEONG RIEUL-CIEUC -0A96E HANGUL CHOSEONG RIEUL-KHIEUKH -0A96F HANGUL CHOSEONG MIEUM-KIYEOK -0A970 HANGUL CHOSEONG MIEUM-TIKEUT -0A971 HANGUL CHOSEONG MIEUM-SIOS -0A972 HANGUL CHOSEONG PIEUP-SIOS-THIEUTH -0A973 HANGUL CHOSEONG PIEUP-KHIEUKH -0A974 HANGUL CHOSEONG PIEUP-HIEUH -0A975 HANGUL CHOSEONG SSANGSIOS-PIEUP -0A976 HANGUL CHOSEONG IEUNG-RIEUL -0A977 HANGUL CHOSEONG IEUNG-HIEUH -0A978 HANGUL CHOSEONG SSANGCIEUC-HIEUH -0A979 HANGUL CHOSEONG SSANGTHIEUTH -0A97A HANGUL CHOSEONG PHIEUPH-HIEUH -0A97B HANGUL CHOSEONG HIEUH-SIOS -0A97C HANGUL CHOSEONG SSANGYEORINHIEUH -0A980 JAVANESE SIGN PANYANGGA -0A981 JAVANESE SIGN CECAK -0A982 JAVANESE SIGN LAYAR -0A983 JAVANESE SIGN WIGNYAN -0A984 JAVANESE LETTER A -0A985 JAVANESE LETTER I KAWI -0A986 JAVANESE LETTER I -0A987 JAVANESE LETTER II -0A988 JAVANESE LETTER U -0A989 JAVANESE LETTER PA CEREK -0A98A JAVANESE LETTER NGA LELET -0A98B JAVANESE LETTER NGA LELET RASWADI -0A98C JAVANESE LETTER E -0A98D JAVANESE LETTER AI -0A98E JAVANESE LETTER O -0A98F JAVANESE LETTER KA -0A990 JAVANESE LETTER KA SASAK -0A991 JAVANESE LETTER KA MURDA -0A992 JAVANESE LETTER GA -0A993 JAVANESE LETTER GA MURDA -0A994 JAVANESE LETTER NGA -0A995 JAVANESE LETTER CA -0A996 JAVANESE LETTER CA MURDA -0A997 JAVANESE LETTER JA -0A998 JAVANESE LETTER NYA MURDA -0A999 JAVANESE LETTER JA MAHAPRANA -0A99A JAVANESE LETTER NYA -0A99B JAVANESE LETTER TTA -0A99C JAVANESE LETTER TTA MAHAPRANA -0A99D JAVANESE LETTER DDA -0A99E JAVANESE LETTER DDA MAHAPRANA -0A99F JAVANESE LETTER NA MURDA -0A9A0 JAVANESE LETTER TA -0A9A1 JAVANESE LETTER TA MURDA -0A9A2 JAVANESE LETTER DA -0A9A3 JAVANESE LETTER DA MAHAPRANA -0A9A4 JAVANESE LETTER NA -0A9A5 JAVANESE LETTER PA -0A9A6 JAVANESE LETTER PA MURDA -0A9A7 JAVANESE LETTER BA -0A9A8 JAVANESE LETTER BA MURDA -0A9A9 JAVANESE LETTER MA -0A9AA JAVANESE LETTER YA -0A9AB JAVANESE LETTER RA -0A9AC JAVANESE LETTER RA AGUNG -0A9AD JAVANESE LETTER LA -0A9AE JAVANESE LETTER WA -0A9AF JAVANESE LETTER SA MURDA -0A9B0 JAVANESE LETTER SA MAHAPRANA -0A9B1 JAVANESE LETTER SA -0A9B2 JAVANESE LETTER HA -0A9B3 JAVANESE SIGN CECAK TELU -0A9B4 JAVANESE VOWEL SIGN TARUNG -0A9B5 JAVANESE VOWEL SIGN TOLONG -0A9B6 JAVANESE VOWEL SIGN WULU -0A9B7 JAVANESE VOWEL SIGN WULU MELIK -0A9B8 JAVANESE VOWEL SIGN SUKU -0A9B9 JAVANESE VOWEL SIGN SUKU MENDUT -0A9BA JAVANESE VOWEL SIGN TALING -0A9BB JAVANESE VOWEL SIGN DIRGA MURE -0A9BC JAVANESE VOWEL SIGN PEPET -0A9BD JAVANESE CONSONANT SIGN KERET -0A9BE JAVANESE CONSONANT SIGN PENGKAL -0A9BF JAVANESE CONSONANT SIGN CAKRA -0A9C0 JAVANESE PANGKON -0A9C1 JAVANESE LEFT RERENGGAN -0A9C2 JAVANESE RIGHT RERENGGAN -0A9C3 JAVANESE PADA ANDAP -0A9C4 JAVANESE PADA MADYA -0A9C5 JAVANESE PADA LUHUR -0A9C6 JAVANESE PADA WINDU -0A9C7 JAVANESE PADA PANGKAT -0A9C8 JAVANESE PADA LINGSA -0A9C9 JAVANESE PADA LUNGSI -0A9CA JAVANESE PADA ADEG -0A9CB JAVANESE PADA ADEG ADEG -0A9CC JAVANESE PADA PISELEH -0A9CD JAVANESE TURNED PADA PISELEH -0A9CF JAVANESE PANGRANGKEP -0A9D0 JAVANESE DIGIT ZERO -0A9D1 JAVANESE DIGIT ONE -0A9D2 JAVANESE DIGIT TWO -0A9D3 JAVANESE DIGIT THREE -0A9D4 JAVANESE DIGIT FOUR -0A9D5 JAVANESE DIGIT FIVE -0A9D6 JAVANESE DIGIT SIX -0A9D7 JAVANESE DIGIT SEVEN -0A9D8 JAVANESE DIGIT EIGHT -0A9D9 JAVANESE DIGIT NINE -0A9DE JAVANESE PADA TIRTA TUMETES -0A9DF JAVANESE PADA ISEN-ISEN -0A9E0 MYANMAR LETTER SHAN GHA -0A9E1 MYANMAR LETTER SHAN CHA -0A9E2 MYANMAR LETTER SHAN JHA -0A9E3 MYANMAR LETTER SHAN NNA -0A9E4 MYANMAR LETTER SHAN BHA -0A9E5 MYANMAR SIGN SHAN SAW -0A9E6 MYANMAR MODIFIER LETTER SHAN REDUPLICATION -0A9E7 MYANMAR LETTER TAI LAING NYA -0A9E8 MYANMAR LETTER TAI LAING FA -0A9E9 MYANMAR LETTER TAI LAING GA -0A9EA MYANMAR LETTER TAI LAING GHA -0A9EB MYANMAR LETTER TAI LAING JA -0A9EC MYANMAR LETTER TAI LAING JHA -0A9ED MYANMAR LETTER TAI LAING DDA -0A9EE MYANMAR LETTER TAI LAING DDHA -0A9EF MYANMAR LETTER TAI LAING NNA -0A9F0 MYANMAR TAI LAING DIGIT ZERO -0A9F1 MYANMAR TAI LAING DIGIT ONE -0A9F2 MYANMAR TAI LAING DIGIT TWO -0A9F3 MYANMAR TAI LAING DIGIT THREE -0A9F4 MYANMAR TAI LAING DIGIT FOUR -0A9F5 MYANMAR TAI LAING DIGIT FIVE -0A9F6 MYANMAR TAI LAING DIGIT SIX -0A9F7 MYANMAR TAI LAING DIGIT SEVEN -0A9F8 MYANMAR TAI LAING DIGIT EIGHT -0A9F9 MYANMAR TAI LAING DIGIT NINE -0A9FA MYANMAR LETTER TAI LAING LLA -0A9FB MYANMAR LETTER TAI LAING DA -0A9FC MYANMAR LETTER TAI LAING DHA -0A9FD MYANMAR LETTER TAI LAING BA -0A9FE MYANMAR LETTER TAI LAING BHA -0AA00 CHAM LETTER A -0AA01 CHAM LETTER I -0AA02 CHAM LETTER U -0AA03 CHAM LETTER E -0AA04 CHAM LETTER AI -0AA05 CHAM LETTER O -0AA06 CHAM LETTER KA -0AA07 CHAM LETTER KHA -0AA08 CHAM LETTER GA -0AA09 CHAM LETTER GHA -0AA0A CHAM LETTER NGUE -0AA0B CHAM LETTER NGA -0AA0C CHAM LETTER CHA -0AA0D CHAM LETTER CHHA -0AA0E CHAM LETTER JA -0AA0F CHAM LETTER JHA -0AA10 CHAM LETTER NHUE -0AA11 CHAM LETTER NHA -0AA12 CHAM LETTER NHJA -0AA13 CHAM LETTER TA -0AA14 CHAM LETTER THA -0AA15 CHAM LETTER DA -0AA16 CHAM LETTER DHA -0AA17 CHAM LETTER NUE -0AA18 CHAM LETTER NA -0AA19 CHAM LETTER DDA -0AA1A CHAM LETTER PA -0AA1B CHAM LETTER PPA -0AA1C CHAM LETTER PHA -0AA1D CHAM LETTER BA -0AA1E CHAM LETTER BHA -0AA1F CHAM LETTER MUE -0AA20 CHAM LETTER MA -0AA21 CHAM LETTER BBA -0AA22 CHAM LETTER YA -0AA23 CHAM LETTER RA -0AA24 CHAM LETTER LA -0AA25 CHAM LETTER VA -0AA26 CHAM LETTER SSA -0AA27 CHAM LETTER SA -0AA28 CHAM LETTER HA -0AA29 CHAM VOWEL SIGN AA -0AA2A CHAM VOWEL SIGN I -0AA2B CHAM VOWEL SIGN II -0AA2C CHAM VOWEL SIGN EI -0AA2D CHAM VOWEL SIGN U -0AA2E CHAM VOWEL SIGN OE -0AA2F CHAM VOWEL SIGN O -0AA30 CHAM VOWEL SIGN AI -0AA31 CHAM VOWEL SIGN AU -0AA32 CHAM VOWEL SIGN UE -0AA33 CHAM CONSONANT SIGN YA -0AA34 CHAM CONSONANT SIGN RA -0AA35 CHAM CONSONANT SIGN LA -0AA36 CHAM CONSONANT SIGN WA -0AA40 CHAM LETTER FINAL K -0AA41 CHAM LETTER FINAL G -0AA42 CHAM LETTER FINAL NG -0AA43 CHAM CONSONANT SIGN FINAL NG -0AA44 CHAM LETTER FINAL CH -0AA45 CHAM LETTER FINAL T -0AA46 CHAM LETTER FINAL N -0AA47 CHAM LETTER FINAL P -0AA48 CHAM LETTER FINAL Y -0AA49 CHAM LETTER FINAL R -0AA4A CHAM LETTER FINAL L -0AA4B CHAM LETTER FINAL SS -0AA4C CHAM CONSONANT SIGN FINAL M -0AA4D CHAM CONSONANT SIGN FINAL H -0AA50 CHAM DIGIT ZERO -0AA51 CHAM DIGIT ONE -0AA52 CHAM DIGIT TWO -0AA53 CHAM DIGIT THREE -0AA54 CHAM DIGIT FOUR -0AA55 CHAM DIGIT FIVE -0AA56 CHAM DIGIT SIX -0AA57 CHAM DIGIT SEVEN -0AA58 CHAM DIGIT EIGHT -0AA59 CHAM DIGIT NINE -0AA5C CHAM PUNCTUATION SPIRAL -0AA5D CHAM PUNCTUATION DANDA -0AA5E CHAM PUNCTUATION DOUBLE DANDA -0AA5F CHAM PUNCTUATION TRIPLE DANDA -0AA60 MYANMAR LETTER KHAMTI GA -0AA61 MYANMAR LETTER KHAMTI CA -0AA62 MYANMAR LETTER KHAMTI CHA -0AA63 MYANMAR LETTER KHAMTI JA -0AA64 MYANMAR LETTER KHAMTI JHA -0AA65 MYANMAR LETTER KHAMTI NYA -0AA66 MYANMAR LETTER KHAMTI TTA -0AA67 MYANMAR LETTER KHAMTI TTHA -0AA68 MYANMAR LETTER KHAMTI DDA -0AA69 MYANMAR LETTER KHAMTI DDHA -0AA6A MYANMAR LETTER KHAMTI DHA -0AA6B MYANMAR LETTER KHAMTI NA -0AA6C MYANMAR LETTER KHAMTI SA -0AA6D MYANMAR LETTER KHAMTI HA -0AA6E MYANMAR LETTER KHAMTI HHA -0AA6F MYANMAR LETTER KHAMTI FA -0AA70 MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION -0AA71 MYANMAR LETTER KHAMTI XA -0AA72 MYANMAR LETTER KHAMTI ZA -0AA73 MYANMAR LETTER KHAMTI RA -0AA74 MYANMAR LOGOGRAM KHAMTI OAY -0AA75 MYANMAR LOGOGRAM KHAMTI QN -0AA76 MYANMAR LOGOGRAM KHAMTI HM -0AA77 MYANMAR SYMBOL AITON EXCLAMATION -0AA78 MYANMAR SYMBOL AITON ONE -0AA79 MYANMAR SYMBOL AITON TWO -0AA7A MYANMAR LETTER AITON RA -0AA7B MYANMAR SIGN PAO KAREN TONE -0AA7C MYANMAR SIGN TAI LAING TONE-2 -0AA7D MYANMAR SIGN TAI LAING TONE-5 -0AA7E MYANMAR LETTER SHWE PALAUNG CHA -0AA7F MYANMAR LETTER SHWE PALAUNG SHA -0AA80 TAI VIET LETTER LOW KO -0AA81 TAI VIET LETTER HIGH KO -0AA82 TAI VIET LETTER LOW KHO -0AA83 TAI VIET LETTER HIGH KHO -0AA84 TAI VIET LETTER LOW KHHO -0AA85 TAI VIET LETTER HIGH KHHO -0AA86 TAI VIET LETTER LOW GO -0AA87 TAI VIET LETTER HIGH GO -0AA88 TAI VIET LETTER LOW NGO -0AA89 TAI VIET LETTER HIGH NGO -0AA8A TAI VIET LETTER LOW CO -0AA8B TAI VIET LETTER HIGH CO -0AA8C TAI VIET LETTER LOW CHO -0AA8D TAI VIET LETTER HIGH CHO -0AA8E TAI VIET LETTER LOW SO -0AA8F TAI VIET LETTER HIGH SO -0AA90 TAI VIET LETTER LOW NYO -0AA91 TAI VIET LETTER HIGH NYO -0AA92 TAI VIET LETTER LOW DO -0AA93 TAI VIET LETTER HIGH DO -0AA94 TAI VIET LETTER LOW TO -0AA95 TAI VIET LETTER HIGH TO -0AA96 TAI VIET LETTER LOW THO -0AA97 TAI VIET LETTER HIGH THO -0AA98 TAI VIET LETTER LOW NO -0AA99 TAI VIET LETTER HIGH NO -0AA9A TAI VIET LETTER LOW BO -0AA9B TAI VIET LETTER HIGH BO -0AA9C TAI VIET LETTER LOW PO -0AA9D TAI VIET LETTER HIGH PO -0AA9E TAI VIET LETTER LOW PHO -0AA9F TAI VIET LETTER HIGH PHO -0AAA0 TAI VIET LETTER LOW FO -0AAA1 TAI VIET LETTER HIGH FO -0AAA2 TAI VIET LETTER LOW MO -0AAA3 TAI VIET LETTER HIGH MO -0AAA4 TAI VIET LETTER LOW YO -0AAA5 TAI VIET LETTER HIGH YO -0AAA6 TAI VIET LETTER LOW RO -0AAA7 TAI VIET LETTER HIGH RO -0AAA8 TAI VIET LETTER LOW LO -0AAA9 TAI VIET LETTER HIGH LO -0AAAA TAI VIET LETTER LOW VO -0AAAB TAI VIET LETTER HIGH VO -0AAAC TAI VIET LETTER LOW HO -0AAAD TAI VIET LETTER HIGH HO -0AAAE TAI VIET LETTER LOW O -0AAAF TAI VIET LETTER HIGH O -0AAB0 TAI VIET MAI KANG -0AAB1 TAI VIET VOWEL AA -0AAB2 TAI VIET VOWEL I -0AAB3 TAI VIET VOWEL UE -0AAB4 TAI VIET VOWEL U -0AAB5 TAI VIET VOWEL E -0AAB6 TAI VIET VOWEL O -0AAB7 TAI VIET MAI KHIT -0AAB8 TAI VIET VOWEL IA -0AAB9 TAI VIET VOWEL UEA -0AABA TAI VIET VOWEL UA -0AABB TAI VIET VOWEL AUE -0AABC TAI VIET VOWEL AY -0AABD TAI VIET VOWEL AN -0AABE TAI VIET VOWEL AM -0AABF TAI VIET TONE MAI EK -0AAC0 TAI VIET TONE MAI NUENG -0AAC1 TAI VIET TONE MAI THO -0AAC2 TAI VIET TONE MAI SONG -0AADB TAI VIET SYMBOL KON -0AADC TAI VIET SYMBOL NUENG -0AADD TAI VIET SYMBOL SAM -0AADE TAI VIET SYMBOL HO HOI -0AADF TAI VIET SYMBOL KOI KOI -0AAE0 MEETEI MAYEK LETTER E -0AAE1 MEETEI MAYEK LETTER O -0AAE2 MEETEI MAYEK LETTER CHA -0AAE3 MEETEI MAYEK LETTER NYA -0AAE4 MEETEI MAYEK LETTER TTA -0AAE5 MEETEI MAYEK LETTER TTHA -0AAE6 MEETEI MAYEK LETTER DDA -0AAE7 MEETEI MAYEK LETTER DDHA -0AAE8 MEETEI MAYEK LETTER NNA -0AAE9 MEETEI MAYEK LETTER SHA -0AAEA MEETEI MAYEK LETTER SSA -0AAEB MEETEI MAYEK VOWEL SIGN II -0AAEC MEETEI MAYEK VOWEL SIGN UU -0AAED MEETEI MAYEK VOWEL SIGN AAI -0AAEE MEETEI MAYEK VOWEL SIGN AU -0AAEF MEETEI MAYEK VOWEL SIGN AAU -0AAF0 MEETEI MAYEK CHEIKHAN -0AAF1 MEETEI MAYEK AHANG KHUDAM -0AAF2 MEETEI MAYEK ANJI -0AAF3 MEETEI MAYEK SYLLABLE REPETITION MARK -0AAF4 MEETEI MAYEK WORD REPETITION MARK -0AAF5 MEETEI MAYEK VOWEL SIGN VISARGA -0AAF6 MEETEI MAYEK VIRAMA -0AB01 ETHIOPIC SYLLABLE TTHU -0AB02 ETHIOPIC SYLLABLE TTHI -0AB03 ETHIOPIC SYLLABLE TTHAA -0AB04 ETHIOPIC SYLLABLE TTHEE -0AB05 ETHIOPIC SYLLABLE TTHE -0AB06 ETHIOPIC SYLLABLE TTHO -0AB09 ETHIOPIC SYLLABLE DDHU -0AB0A ETHIOPIC SYLLABLE DDHI -0AB0B ETHIOPIC SYLLABLE DDHAA -0AB0C ETHIOPIC SYLLABLE DDHEE -0AB0D ETHIOPIC SYLLABLE DDHE -0AB0E ETHIOPIC SYLLABLE DDHO -0AB11 ETHIOPIC SYLLABLE DZU -0AB12 ETHIOPIC SYLLABLE DZI -0AB13 ETHIOPIC SYLLABLE DZAA -0AB14 ETHIOPIC SYLLABLE DZEE -0AB15 ETHIOPIC SYLLABLE DZE -0AB16 ETHIOPIC SYLLABLE DZO -0AB20 ETHIOPIC SYLLABLE CCHHA -0AB21 ETHIOPIC SYLLABLE CCHHU -0AB22 ETHIOPIC SYLLABLE CCHHI -0AB23 ETHIOPIC SYLLABLE CCHHAA -0AB24 ETHIOPIC SYLLABLE CCHHEE -0AB25 ETHIOPIC SYLLABLE CCHHE -0AB26 ETHIOPIC SYLLABLE CCHHO -0AB28 ETHIOPIC SYLLABLE BBA -0AB29 ETHIOPIC SYLLABLE BBU -0AB2A ETHIOPIC SYLLABLE BBI -0AB2B ETHIOPIC SYLLABLE BBAA -0AB2C ETHIOPIC SYLLABLE BBEE -0AB2D ETHIOPIC SYLLABLE BBE -0AB2E ETHIOPIC SYLLABLE BBO -0AB30 LATIN SMALL LETTER BARRED ALPHA -0AB31 LATIN SMALL LETTER A REVERSED-SCHWA -0AB32 LATIN SMALL LETTER BLACKLETTER E -0AB33 LATIN SMALL LETTER BARRED E -0AB34 LATIN SMALL LETTER E WITH FLOURISH -0AB35 LATIN SMALL LETTER LENIS F -0AB36 LATIN SMALL LETTER SCRIPT G WITH CROSSED-TAIL -0AB37 LATIN SMALL LETTER L WITH INVERTED LAZY S -0AB38 LATIN SMALL LETTER L WITH DOUBLE MIDDLE TILDE -0AB39 LATIN SMALL LETTER L WITH MIDDLE RING -0AB3A LATIN SMALL LETTER M WITH CROSSED-TAIL -0AB3B LATIN SMALL LETTER N WITH CROSSED-TAIL -0AB3C LATIN SMALL LETTER ENG WITH CROSSED-TAIL -0AB3D LATIN SMALL LETTER BLACKLETTER O -0AB3E LATIN SMALL LETTER BLACKLETTER O WITH STROKE -0AB3F LATIN SMALL LETTER OPEN O WITH STROKE -0AB40 LATIN SMALL LETTER INVERTED OE -0AB41 LATIN SMALL LETTER TURNED OE WITH STROKE -0AB42 LATIN SMALL LETTER TURNED OE WITH HORIZONTAL STROKE -0AB43 LATIN SMALL LETTER TURNED O OPEN-O -0AB44 LATIN SMALL LETTER TURNED O OPEN-O WITH STROKE -0AB45 LATIN SMALL LETTER STIRRUP R -0AB46 LATIN LETTER SMALL CAPITAL R WITH RIGHT LEG -0AB47 LATIN SMALL LETTER R WITHOUT HANDLE -0AB48 LATIN SMALL LETTER DOUBLE R -0AB49 LATIN SMALL LETTER R WITH CROSSED-TAIL -0AB4A LATIN SMALL LETTER DOUBLE R WITH CROSSED-TAIL -0AB4B LATIN SMALL LETTER SCRIPT R -0AB4C LATIN SMALL LETTER SCRIPT R WITH RING -0AB4D LATIN SMALL LETTER BASELINE ESH -0AB4E LATIN SMALL LETTER U WITH SHORT RIGHT LEG -0AB4F LATIN SMALL LETTER U BAR WITH SHORT RIGHT LEG -0AB50 LATIN SMALL LETTER UI -0AB51 LATIN SMALL LETTER TURNED UI -0AB52 LATIN SMALL LETTER U WITH LEFT HOOK -0AB53 LATIN SMALL LETTER CHI -0AB54 LATIN SMALL LETTER CHI WITH LOW RIGHT RING -0AB55 LATIN SMALL LETTER CHI WITH LOW LEFT SERIF -0AB56 LATIN SMALL LETTER X WITH LOW RIGHT RING -0AB57 LATIN SMALL LETTER X WITH LONG LEFT LEG -0AB58 LATIN SMALL LETTER X WITH LONG LEFT LEG AND LOW RIGHT RING -0AB59 LATIN SMALL LETTER X WITH LONG LEFT LEG WITH SERIF -0AB5A LATIN SMALL LETTER Y WITH SHORT RIGHT LEG -0AB5B MODIFIER BREVE WITH INVERTED BREVE -0AB5C MODIFIER LETTER SMALL HENG -0AB5D MODIFIER LETTER SMALL L WITH INVERTED LAZY S -0AB5E MODIFIER LETTER SMALL L WITH MIDDLE TILDE -0AB5F MODIFIER LETTER SMALL U WITH LEFT HOOK -0AB60 LATIN SMALL LETTER SAKHA YAT -0AB61 LATIN SMALL LETTER IOTIFIED E -0AB62 LATIN SMALL LETTER OPEN OE -0AB63 LATIN SMALL LETTER UO -0AB64 LATIN SMALL LETTER INVERTED ALPHA -0AB65 GREEK LETTER SMALL CAPITAL OMEGA -0AB70 CHEROKEE SMALL LETTER A -0AB71 CHEROKEE SMALL LETTER E -0AB72 CHEROKEE SMALL LETTER I -0AB73 CHEROKEE SMALL LETTER O -0AB74 CHEROKEE SMALL LETTER U -0AB75 CHEROKEE SMALL LETTER V -0AB76 CHEROKEE SMALL LETTER GA -0AB77 CHEROKEE SMALL LETTER KA -0AB78 CHEROKEE SMALL LETTER GE -0AB79 CHEROKEE SMALL LETTER GI -0AB7A CHEROKEE SMALL LETTER GO -0AB7B CHEROKEE SMALL LETTER GU -0AB7C CHEROKEE SMALL LETTER GV -0AB7D CHEROKEE SMALL LETTER HA -0AB7E CHEROKEE SMALL LETTER HE -0AB7F CHEROKEE SMALL LETTER HI -0AB80 CHEROKEE SMALL LETTER HO -0AB81 CHEROKEE SMALL LETTER HU -0AB82 CHEROKEE SMALL LETTER HV -0AB83 CHEROKEE SMALL LETTER LA -0AB84 CHEROKEE SMALL LETTER LE -0AB85 CHEROKEE SMALL LETTER LI -0AB86 CHEROKEE SMALL LETTER LO -0AB87 CHEROKEE SMALL LETTER LU -0AB88 CHEROKEE SMALL LETTER LV -0AB89 CHEROKEE SMALL LETTER MA -0AB8A CHEROKEE SMALL LETTER ME -0AB8B CHEROKEE SMALL LETTER MI -0AB8C CHEROKEE SMALL LETTER MO -0AB8D CHEROKEE SMALL LETTER MU -0AB8E CHEROKEE SMALL LETTER NA -0AB8F CHEROKEE SMALL LETTER HNA -0AB90 CHEROKEE SMALL LETTER NAH -0AB91 CHEROKEE SMALL LETTER NE -0AB92 CHEROKEE SMALL LETTER NI -0AB93 CHEROKEE SMALL LETTER NO -0AB94 CHEROKEE SMALL LETTER NU -0AB95 CHEROKEE SMALL LETTER NV -0AB96 CHEROKEE SMALL LETTER QUA -0AB97 CHEROKEE SMALL LETTER QUE -0AB98 CHEROKEE SMALL LETTER QUI -0AB99 CHEROKEE SMALL LETTER QUO -0AB9A CHEROKEE SMALL LETTER QUU -0AB9B CHEROKEE SMALL LETTER QUV -0AB9C CHEROKEE SMALL LETTER SA -0AB9D CHEROKEE SMALL LETTER S -0AB9E CHEROKEE SMALL LETTER SE -0AB9F CHEROKEE SMALL LETTER SI -0ABA0 CHEROKEE SMALL LETTER SO -0ABA1 CHEROKEE SMALL LETTER SU -0ABA2 CHEROKEE SMALL LETTER SV -0ABA3 CHEROKEE SMALL LETTER DA -0ABA4 CHEROKEE SMALL LETTER TA -0ABA5 CHEROKEE SMALL LETTER DE -0ABA6 CHEROKEE SMALL LETTER TE -0ABA7 CHEROKEE SMALL LETTER DI -0ABA8 CHEROKEE SMALL LETTER TI -0ABA9 CHEROKEE SMALL LETTER DO -0ABAA CHEROKEE SMALL LETTER DU -0ABAB CHEROKEE SMALL LETTER DV -0ABAC CHEROKEE SMALL LETTER DLA -0ABAD CHEROKEE SMALL LETTER TLA -0ABAE CHEROKEE SMALL LETTER TLE -0ABAF CHEROKEE SMALL LETTER TLI -0ABB0 CHEROKEE SMALL LETTER TLO -0ABB1 CHEROKEE SMALL LETTER TLU -0ABB2 CHEROKEE SMALL LETTER TLV -0ABB3 CHEROKEE SMALL LETTER TSA -0ABB4 CHEROKEE SMALL LETTER TSE -0ABB5 CHEROKEE SMALL LETTER TSI -0ABB6 CHEROKEE SMALL LETTER TSO -0ABB7 CHEROKEE SMALL LETTER TSU -0ABB8 CHEROKEE SMALL LETTER TSV -0ABB9 CHEROKEE SMALL LETTER WA -0ABBA CHEROKEE SMALL LETTER WE -0ABBB CHEROKEE SMALL LETTER WI -0ABBC CHEROKEE SMALL LETTER WO -0ABBD CHEROKEE SMALL LETTER WU -0ABBE CHEROKEE SMALL LETTER WV -0ABBF CHEROKEE SMALL LETTER YA -0ABC0 MEETEI MAYEK LETTER KOK -0ABC1 MEETEI MAYEK LETTER SAM -0ABC2 MEETEI MAYEK LETTER LAI -0ABC3 MEETEI MAYEK LETTER MIT -0ABC4 MEETEI MAYEK LETTER PA -0ABC5 MEETEI MAYEK LETTER NA -0ABC6 MEETEI MAYEK LETTER CHIL -0ABC7 MEETEI MAYEK LETTER TIL -0ABC8 MEETEI MAYEK LETTER KHOU -0ABC9 MEETEI MAYEK LETTER NGOU -0ABCA MEETEI MAYEK LETTER THOU -0ABCB MEETEI MAYEK LETTER WAI -0ABCC MEETEI MAYEK LETTER YANG -0ABCD MEETEI MAYEK LETTER HUK -0ABCE MEETEI MAYEK LETTER UN -0ABCF MEETEI MAYEK LETTER I -0ABD0 MEETEI MAYEK LETTER PHAM -0ABD1 MEETEI MAYEK LETTER ATIYA -0ABD2 MEETEI MAYEK LETTER GOK -0ABD3 MEETEI MAYEK LETTER JHAM -0ABD4 MEETEI MAYEK LETTER RAI -0ABD5 MEETEI MAYEK LETTER BA -0ABD6 MEETEI MAYEK LETTER JIL -0ABD7 MEETEI MAYEK LETTER DIL -0ABD8 MEETEI MAYEK LETTER GHOU -0ABD9 MEETEI MAYEK LETTER DHOU -0ABDA MEETEI MAYEK LETTER BHAM -0ABDB MEETEI MAYEK LETTER KOK LONSUM -0ABDC MEETEI MAYEK LETTER LAI LONSUM -0ABDD MEETEI MAYEK LETTER MIT LONSUM -0ABDE MEETEI MAYEK LETTER PA LONSUM -0ABDF MEETEI MAYEK LETTER NA LONSUM -0ABE0 MEETEI MAYEK LETTER TIL LONSUM -0ABE1 MEETEI MAYEK LETTER NGOU LONSUM -0ABE2 MEETEI MAYEK LETTER I LONSUM -0ABE3 MEETEI MAYEK VOWEL SIGN ONAP -0ABE4 MEETEI MAYEK VOWEL SIGN INAP -0ABE5 MEETEI MAYEK VOWEL SIGN ANAP -0ABE6 MEETEI MAYEK VOWEL SIGN YENAP -0ABE7 MEETEI MAYEK VOWEL SIGN SOUNAP -0ABE8 MEETEI MAYEK VOWEL SIGN UNAP -0ABE9 MEETEI MAYEK VOWEL SIGN CHEINAP -0ABEA MEETEI MAYEK VOWEL SIGN NUNG -0ABEB MEETEI MAYEK CHEIKHEI -0ABEC MEETEI MAYEK LUM IYEK -0ABED MEETEI MAYEK APUN IYEK -0ABF0 MEETEI MAYEK DIGIT ZERO -0ABF1 MEETEI MAYEK DIGIT ONE -0ABF2 MEETEI MAYEK DIGIT TWO -0ABF3 MEETEI MAYEK DIGIT THREE -0ABF4 MEETEI MAYEK DIGIT FOUR -0ABF5 MEETEI MAYEK DIGIT FIVE -0ABF6 MEETEI MAYEK DIGIT SIX -0ABF7 MEETEI MAYEK DIGIT SEVEN -0ABF8 MEETEI MAYEK DIGIT EIGHT -0ABF9 MEETEI MAYEK DIGIT NINE -0D7B0 HANGUL JUNGSEONG O-YEO -0D7B1 HANGUL JUNGSEONG O-O-I -0D7B2 HANGUL JUNGSEONG YO-A -0D7B3 HANGUL JUNGSEONG YO-AE -0D7B4 HANGUL JUNGSEONG YO-EO -0D7B5 HANGUL JUNGSEONG U-YEO -0D7B6 HANGUL JUNGSEONG U-I-I -0D7B7 HANGUL JUNGSEONG YU-AE -0D7B8 HANGUL JUNGSEONG YU-O -0D7B9 HANGUL JUNGSEONG EU-A -0D7BA HANGUL JUNGSEONG EU-EO -0D7BB HANGUL JUNGSEONG EU-E -0D7BC HANGUL JUNGSEONG EU-O -0D7BD HANGUL JUNGSEONG I-YA-O -0D7BE HANGUL JUNGSEONG I-YAE -0D7BF HANGUL JUNGSEONG I-YEO -0D7C0 HANGUL JUNGSEONG I-YE -0D7C1 HANGUL JUNGSEONG I-O-I -0D7C2 HANGUL JUNGSEONG I-YO -0D7C3 HANGUL JUNGSEONG I-YU -0D7C4 HANGUL JUNGSEONG I-I -0D7C5 HANGUL JUNGSEONG ARAEA-A -0D7C6 HANGUL JUNGSEONG ARAEA-E -0D7CB HANGUL JONGSEONG NIEUN-RIEUL -0D7CC HANGUL JONGSEONG NIEUN-CHIEUCH -0D7CD HANGUL JONGSEONG SSANGTIKEUT -0D7CE HANGUL JONGSEONG SSANGTIKEUT-PIEUP -0D7CF HANGUL JONGSEONG TIKEUT-PIEUP -0D7D0 HANGUL JONGSEONG TIKEUT-SIOS -0D7D1 HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK -0D7D2 HANGUL JONGSEONG TIKEUT-CIEUC -0D7D3 HANGUL JONGSEONG TIKEUT-CHIEUCH -0D7D4 HANGUL JONGSEONG TIKEUT-THIEUTH -0D7D5 HANGUL JONGSEONG RIEUL-SSANGKIYEOK -0D7D6 HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH -0D7D7 HANGUL JONGSEONG SSANGRIEUL-KHIEUKH -0D7D8 HANGUL JONGSEONG RIEUL-MIEUM-HIEUH -0D7D9 HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT -0D7DA HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH -0D7DB HANGUL JONGSEONG RIEUL-YESIEUNG -0D7DC HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH -0D7DD HANGUL JONGSEONG KAPYEOUNRIEUL -0D7DE HANGUL JONGSEONG MIEUM-NIEUN -0D7DF HANGUL JONGSEONG MIEUM-SSANGNIEUN -0D7E0 HANGUL JONGSEONG SSANGMIEUM -0D7E1 HANGUL JONGSEONG MIEUM-PIEUP-SIOS -0D7E2 HANGUL JONGSEONG MIEUM-CIEUC -0D7E3 HANGUL JONGSEONG PIEUP-TIKEUT -0D7E4 HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH -0D7E5 HANGUL JONGSEONG PIEUP-MIEUM -0D7E6 HANGUL JONGSEONG SSANGPIEUP -0D7E7 HANGUL JONGSEONG PIEUP-SIOS-TIKEUT -0D7E8 HANGUL JONGSEONG PIEUP-CIEUC -0D7E9 HANGUL JONGSEONG PIEUP-CHIEUCH -0D7EA HANGUL JONGSEONG SIOS-MIEUM -0D7EB HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP -0D7EC HANGUL JONGSEONG SSANGSIOS-KIYEOK -0D7ED HANGUL JONGSEONG SSANGSIOS-TIKEUT -0D7EE HANGUL JONGSEONG SIOS-PANSIOS -0D7EF HANGUL JONGSEONG SIOS-CIEUC -0D7F0 HANGUL JONGSEONG SIOS-CHIEUCH -0D7F1 HANGUL JONGSEONG SIOS-THIEUTH -0D7F2 HANGUL JONGSEONG SIOS-HIEUH -0D7F3 HANGUL JONGSEONG PANSIOS-PIEUP -0D7F4 HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP -0D7F5 HANGUL JONGSEONG YESIEUNG-MIEUM -0D7F6 HANGUL JONGSEONG YESIEUNG-HIEUH -0D7F7 HANGUL JONGSEONG CIEUC-PIEUP -0D7F8 HANGUL JONGSEONG CIEUC-SSANGPIEUP -0D7F9 HANGUL JONGSEONG SSANGCIEUC -0D7FA HANGUL JONGSEONG PHIEUPH-SIOS -0D7FB HANGUL JONGSEONG PHIEUPH-THIEUTH -0FB00 LATIN SMALL LIGATURE FF -0FB01 LATIN SMALL LIGATURE FI -0FB02 LATIN SMALL LIGATURE FL -0FB03 LATIN SMALL LIGATURE FFI -0FB04 LATIN SMALL LIGATURE FFL -0FB05 LATIN SMALL LIGATURE LONG S T -0FB06 LATIN SMALL LIGATURE ST -0FB13 ARMENIAN SMALL LIGATURE MEN NOW -0FB14 ARMENIAN SMALL LIGATURE MEN ECH -0FB15 ARMENIAN SMALL LIGATURE MEN INI -0FB16 ARMENIAN SMALL LIGATURE VEW NOW -0FB17 ARMENIAN SMALL LIGATURE MEN XEH -0FB1D HEBREW LETTER YOD WITH HIRIQ -0FB1E HEBREW POINT JUDEO-SPANISH VARIKA -0FB1F HEBREW LIGATURE YIDDISH YOD YOD PATAH -0FB20 HEBREW LETTER ALTERNATIVE AYIN -0FB21 HEBREW LETTER WIDE ALEF -0FB22 HEBREW LETTER WIDE DALET -0FB23 HEBREW LETTER WIDE HE -0FB24 HEBREW LETTER WIDE KAF -0FB25 HEBREW LETTER WIDE LAMED -0FB26 HEBREW LETTER WIDE FINAL MEM -0FB27 HEBREW LETTER WIDE RESH -0FB28 HEBREW LETTER WIDE TAV -0FB29 HEBREW LETTER ALTERNATIVE PLUS SIGN -0FB2A HEBREW LETTER SHIN WITH SHIN DOT -0FB2B HEBREW LETTER SHIN WITH SIN DOT -0FB2C HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT -0FB2D HEBREW LETTER SHIN WITH DAGESH AND SIN DOT -0FB2E HEBREW LETTER ALEF WITH PATAH -0FB2F HEBREW LETTER ALEF WITH QAMATS -0FB30 HEBREW LETTER ALEF WITH MAPIQ -0FB31 HEBREW LETTER BET WITH DAGESH -0FB32 HEBREW LETTER GIMEL WITH DAGESH -0FB33 HEBREW LETTER DALET WITH DAGESH -0FB34 HEBREW LETTER HE WITH MAPIQ -0FB35 HEBREW LETTER VAV WITH DAGESH -0FB36 HEBREW LETTER ZAYIN WITH DAGESH -0FB38 HEBREW LETTER TET WITH DAGESH -0FB39 HEBREW LETTER YOD WITH DAGESH -0FB3A HEBREW LETTER FINAL KAF WITH DAGESH -0FB3B HEBREW LETTER KAF WITH DAGESH -0FB3C HEBREW LETTER LAMED WITH DAGESH -0FB3E HEBREW LETTER MEM WITH DAGESH -0FB40 HEBREW LETTER NUN WITH DAGESH -0FB41 HEBREW LETTER SAMEKH WITH DAGESH -0FB43 HEBREW LETTER FINAL PE WITH DAGESH -0FB44 HEBREW LETTER PE WITH DAGESH -0FB46 HEBREW LETTER TSADI WITH DAGESH -0FB47 HEBREW LETTER QOF WITH DAGESH -0FB48 HEBREW LETTER RESH WITH DAGESH -0FB49 HEBREW LETTER SHIN WITH DAGESH -0FB4A HEBREW LETTER TAV WITH DAGESH -0FB4B HEBREW LETTER VAV WITH HOLAM -0FB4C HEBREW LETTER BET WITH RAFE -0FB4D HEBREW LETTER KAF WITH RAFE -0FB4E HEBREW LETTER PE WITH RAFE -0FB4F HEBREW LIGATURE ALEF LAMED -0FB50 ARABIC LETTER ALEF WASLA ISOLATED FORM -0FB51 ARABIC LETTER ALEF WASLA FINAL FORM -0FB52 ARABIC LETTER BEEH ISOLATED FORM -0FB53 ARABIC LETTER BEEH FINAL FORM -0FB54 ARABIC LETTER BEEH INITIAL FORM -0FB55 ARABIC LETTER BEEH MEDIAL FORM -0FB56 ARABIC LETTER PEH ISOLATED FORM -0FB57 ARABIC LETTER PEH FINAL FORM -0FB58 ARABIC LETTER PEH INITIAL FORM -0FB59 ARABIC LETTER PEH MEDIAL FORM -0FB5A ARABIC LETTER BEHEH ISOLATED FORM -0FB5B ARABIC LETTER BEHEH FINAL FORM -0FB5C ARABIC LETTER BEHEH INITIAL FORM -0FB5D ARABIC LETTER BEHEH MEDIAL FORM -0FB5E ARABIC LETTER TTEHEH ISOLATED FORM -0FB5F ARABIC LETTER TTEHEH FINAL FORM -0FB60 ARABIC LETTER TTEHEH INITIAL FORM -0FB61 ARABIC LETTER TTEHEH MEDIAL FORM -0FB62 ARABIC LETTER TEHEH ISOLATED FORM -0FB63 ARABIC LETTER TEHEH FINAL FORM -0FB64 ARABIC LETTER TEHEH INITIAL FORM -0FB65 ARABIC LETTER TEHEH MEDIAL FORM -0FB66 ARABIC LETTER TTEH ISOLATED FORM -0FB67 ARABIC LETTER TTEH FINAL FORM -0FB68 ARABIC LETTER TTEH INITIAL FORM -0FB69 ARABIC LETTER TTEH MEDIAL FORM -0FB6A ARABIC LETTER VEH ISOLATED FORM -0FB6B ARABIC LETTER VEH FINAL FORM -0FB6C ARABIC LETTER VEH INITIAL FORM -0FB6D ARABIC LETTER VEH MEDIAL FORM -0FB6E ARABIC LETTER PEHEH ISOLATED FORM -0FB6F ARABIC LETTER PEHEH FINAL FORM -0FB70 ARABIC LETTER PEHEH INITIAL FORM -0FB71 ARABIC LETTER PEHEH MEDIAL FORM -0FB72 ARABIC LETTER DYEH ISOLATED FORM -0FB73 ARABIC LETTER DYEH FINAL FORM -0FB74 ARABIC LETTER DYEH INITIAL FORM -0FB75 ARABIC LETTER DYEH MEDIAL FORM -0FB76 ARABIC LETTER NYEH ISOLATED FORM -0FB77 ARABIC LETTER NYEH FINAL FORM -0FB78 ARABIC LETTER NYEH INITIAL FORM -0FB79 ARABIC LETTER NYEH MEDIAL FORM -0FB7A ARABIC LETTER TCHEH ISOLATED FORM -0FB7B ARABIC LETTER TCHEH FINAL FORM -0FB7C ARABIC LETTER TCHEH INITIAL FORM -0FB7D ARABIC LETTER TCHEH MEDIAL FORM -0FB7E ARABIC LETTER TCHEHEH ISOLATED FORM -0FB7F ARABIC LETTER TCHEHEH FINAL FORM -0FB80 ARABIC LETTER TCHEHEH INITIAL FORM -0FB81 ARABIC LETTER TCHEHEH MEDIAL FORM -0FB82 ARABIC LETTER DDAHAL ISOLATED FORM -0FB83 ARABIC LETTER DDAHAL FINAL FORM -0FB84 ARABIC LETTER DAHAL ISOLATED FORM -0FB85 ARABIC LETTER DAHAL FINAL FORM -0FB86 ARABIC LETTER DUL ISOLATED FORM -0FB87 ARABIC LETTER DUL FINAL FORM -0FB88 ARABIC LETTER DDAL ISOLATED FORM -0FB89 ARABIC LETTER DDAL FINAL FORM -0FB8A ARABIC LETTER JEH ISOLATED FORM -0FB8B ARABIC LETTER JEH FINAL FORM -0FB8C ARABIC LETTER RREH ISOLATED FORM -0FB8D ARABIC LETTER RREH FINAL FORM -0FB8E ARABIC LETTER KEHEH ISOLATED FORM -0FB8F ARABIC LETTER KEHEH FINAL FORM -0FB90 ARABIC LETTER KEHEH INITIAL FORM -0FB91 ARABIC LETTER KEHEH MEDIAL FORM -0FB92 ARABIC LETTER GAF ISOLATED FORM -0FB93 ARABIC LETTER GAF FINAL FORM -0FB94 ARABIC LETTER GAF INITIAL FORM -0FB95 ARABIC LETTER GAF MEDIAL FORM -0FB96 ARABIC LETTER GUEH ISOLATED FORM -0FB97 ARABIC LETTER GUEH FINAL FORM -0FB98 ARABIC LETTER GUEH INITIAL FORM -0FB99 ARABIC LETTER GUEH MEDIAL FORM -0FB9A ARABIC LETTER NGOEH ISOLATED FORM -0FB9B ARABIC LETTER NGOEH FINAL FORM -0FB9C ARABIC LETTER NGOEH INITIAL FORM -0FB9D ARABIC LETTER NGOEH MEDIAL FORM -0FB9E ARABIC LETTER NOON GHUNNA ISOLATED FORM -0FB9F ARABIC LETTER NOON GHUNNA FINAL FORM -0FBA0 ARABIC LETTER RNOON ISOLATED FORM -0FBA1 ARABIC LETTER RNOON FINAL FORM -0FBA2 ARABIC LETTER RNOON INITIAL FORM -0FBA3 ARABIC LETTER RNOON MEDIAL FORM -0FBA4 ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM -0FBA5 ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM -0FBA6 ARABIC LETTER HEH GOAL ISOLATED FORM -0FBA7 ARABIC LETTER HEH GOAL FINAL FORM -0FBA8 ARABIC LETTER HEH GOAL INITIAL FORM -0FBA9 ARABIC LETTER HEH GOAL MEDIAL FORM -0FBAA ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM -0FBAB ARABIC LETTER HEH DOACHASHMEE FINAL FORM -0FBAC ARABIC LETTER HEH DOACHASHMEE INITIAL FORM -0FBAD ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM -0FBAE ARABIC LETTER YEH BARREE ISOLATED FORM -0FBAF ARABIC LETTER YEH BARREE FINAL FORM -0FBB0 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM -0FBB1 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM -0FBB2 ARABIC SYMBOL DOT ABOVE -0FBB3 ARABIC SYMBOL DOT BELOW -0FBB4 ARABIC SYMBOL TWO DOTS ABOVE -0FBB5 ARABIC SYMBOL TWO DOTS BELOW -0FBB6 ARABIC SYMBOL THREE DOTS ABOVE -0FBB7 ARABIC SYMBOL THREE DOTS BELOW -0FBB8 ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE -0FBB9 ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW -0FBBA ARABIC SYMBOL FOUR DOTS ABOVE -0FBBB ARABIC SYMBOL FOUR DOTS BELOW -0FBBC ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW -0FBBD ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE -0FBBE ARABIC SYMBOL TWO DOTS VERTICALLY BELOW -0FBBF ARABIC SYMBOL RING -0FBC0 ARABIC SYMBOL SMALL TAH ABOVE -0FBC1 ARABIC SYMBOL SMALL TAH BELOW -0FBD3 ARABIC LETTER NG ISOLATED FORM -0FBD4 ARABIC LETTER NG FINAL FORM -0FBD5 ARABIC LETTER NG INITIAL FORM -0FBD6 ARABIC LETTER NG MEDIAL FORM -0FBD7 ARABIC LETTER U ISOLATED FORM -0FBD8 ARABIC LETTER U FINAL FORM -0FBD9 ARABIC LETTER OE ISOLATED FORM -0FBDA ARABIC LETTER OE FINAL FORM -0FBDB ARABIC LETTER YU ISOLATED FORM -0FBDC ARABIC LETTER YU FINAL FORM -0FBDD ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM -0FBDE ARABIC LETTER VE ISOLATED FORM -0FBDF ARABIC LETTER VE FINAL FORM -0FBE0 ARABIC LETTER KIRGHIZ OE ISOLATED FORM -0FBE1 ARABIC LETTER KIRGHIZ OE FINAL FORM -0FBE2 ARABIC LETTER KIRGHIZ YU ISOLATED FORM -0FBE3 ARABIC LETTER KIRGHIZ YU FINAL FORM -0FBE4 ARABIC LETTER E ISOLATED FORM -0FBE5 ARABIC LETTER E FINAL FORM -0FBE6 ARABIC LETTER E INITIAL FORM -0FBE7 ARABIC LETTER E MEDIAL FORM -0FBE8 ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM -0FBE9 ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM -0FBEA ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM -0FBEB ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM -0FBEC ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM -0FBED ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM -0FBEE ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM -0FBEF ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM -0FBF0 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM -0FBF1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM -0FBF2 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM -0FBF3 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM -0FBF4 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM -0FBF5 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM -0FBF6 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM -0FBF7 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM -0FBF8 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM -0FBF9 ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM -0FBFA ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM -0FBFB ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM -0FBFC ARABIC LETTER FARSI YEH ISOLATED FORM -0FBFD ARABIC LETTER FARSI YEH FINAL FORM -0FBFE ARABIC LETTER FARSI YEH INITIAL FORM -0FBFF ARABIC LETTER FARSI YEH MEDIAL FORM -0FC00 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM -0FC01 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM -0FC02 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM -0FC03 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM -0FC04 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM -0FC05 ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM -0FC06 ARABIC LIGATURE BEH WITH HAH ISOLATED FORM -0FC07 ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM -0FC08 ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM -0FC09 ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM -0FC0A ARABIC LIGATURE BEH WITH YEH ISOLATED FORM -0FC0B ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM -0FC0C ARABIC LIGATURE TEH WITH HAH ISOLATED FORM -0FC0D ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM -0FC0E ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM -0FC0F ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM -0FC10 ARABIC LIGATURE TEH WITH YEH ISOLATED FORM -0FC11 ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM -0FC12 ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM -0FC13 ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM -0FC14 ARABIC LIGATURE THEH WITH YEH ISOLATED FORM -0FC15 ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM -0FC16 ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM -0FC17 ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM -0FC18 ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM -0FC19 ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM -0FC1A ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM -0FC1B ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM -0FC1C ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM -0FC1D ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM -0FC1E ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM -0FC1F ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM -0FC20 ARABIC LIGATURE SAD WITH HAH ISOLATED FORM -0FC21 ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM -0FC22 ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM -0FC23 ARABIC LIGATURE DAD WITH HAH ISOLATED FORM -0FC24 ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM -0FC25 ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM -0FC26 ARABIC LIGATURE TAH WITH HAH ISOLATED FORM -0FC27 ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM -0FC28 ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM -0FC29 ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM -0FC2A ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM -0FC2B ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM -0FC2C ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM -0FC2D ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM -0FC2E ARABIC LIGATURE FEH WITH HAH ISOLATED FORM -0FC2F ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM -0FC30 ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM -0FC31 ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM -0FC32 ARABIC LIGATURE FEH WITH YEH ISOLATED FORM -0FC33 ARABIC LIGATURE QAF WITH HAH ISOLATED FORM -0FC34 ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM -0FC35 ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM -0FC36 ARABIC LIGATURE QAF WITH YEH ISOLATED FORM -0FC37 ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM -0FC38 ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM -0FC39 ARABIC LIGATURE KAF WITH HAH ISOLATED FORM -0FC3A ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM -0FC3B ARABIC LIGATURE KAF WITH LAM ISOLATED FORM -0FC3C ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM -0FC3D ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM -0FC3E ARABIC LIGATURE KAF WITH YEH ISOLATED FORM -0FC3F ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM -0FC40 ARABIC LIGATURE LAM WITH HAH ISOLATED FORM -0FC41 ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM -0FC42 ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM -0FC43 ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM -0FC44 ARABIC LIGATURE LAM WITH YEH ISOLATED FORM -0FC45 ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM -0FC46 ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM -0FC47 ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM -0FC48 ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM -0FC49 ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM -0FC4A ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM -0FC4B ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM -0FC4C ARABIC LIGATURE NOON WITH HAH ISOLATED FORM -0FC4D ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM -0FC4E ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM -0FC4F ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM -0FC50 ARABIC LIGATURE NOON WITH YEH ISOLATED FORM -0FC51 ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM -0FC52 ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM -0FC53 ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM -0FC54 ARABIC LIGATURE HEH WITH YEH ISOLATED FORM -0FC55 ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM -0FC56 ARABIC LIGATURE YEH WITH HAH ISOLATED FORM -0FC57 ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM -0FC58 ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM -0FC59 ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM -0FC5A ARABIC LIGATURE YEH WITH YEH ISOLATED FORM -0FC5B ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM -0FC5C ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM -0FC5D ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM -0FC5E ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM -0FC5F ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM -0FC60 ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM -0FC61 ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM -0FC62 ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM -0FC63 ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM -0FC64 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM -0FC65 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM -0FC66 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM -0FC67 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM -0FC68 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM -0FC69 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM -0FC6A ARABIC LIGATURE BEH WITH REH FINAL FORM -0FC6B ARABIC LIGATURE BEH WITH ZAIN FINAL FORM -0FC6C ARABIC LIGATURE BEH WITH MEEM FINAL FORM -0FC6D ARABIC LIGATURE BEH WITH NOON FINAL FORM -0FC6E ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM -0FC6F ARABIC LIGATURE BEH WITH YEH FINAL FORM -0FC70 ARABIC LIGATURE TEH WITH REH FINAL FORM -0FC71 ARABIC LIGATURE TEH WITH ZAIN FINAL FORM -0FC72 ARABIC LIGATURE TEH WITH MEEM FINAL FORM -0FC73 ARABIC LIGATURE TEH WITH NOON FINAL FORM -0FC74 ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM -0FC75 ARABIC LIGATURE TEH WITH YEH FINAL FORM -0FC76 ARABIC LIGATURE THEH WITH REH FINAL FORM -0FC77 ARABIC LIGATURE THEH WITH ZAIN FINAL FORM -0FC78 ARABIC LIGATURE THEH WITH MEEM FINAL FORM -0FC79 ARABIC LIGATURE THEH WITH NOON FINAL FORM -0FC7A ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM -0FC7B ARABIC LIGATURE THEH WITH YEH FINAL FORM -0FC7C ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM -0FC7D ARABIC LIGATURE FEH WITH YEH FINAL FORM -0FC7E ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM -0FC7F ARABIC LIGATURE QAF WITH YEH FINAL FORM -0FC80 ARABIC LIGATURE KAF WITH ALEF FINAL FORM -0FC81 ARABIC LIGATURE KAF WITH LAM FINAL FORM -0FC82 ARABIC LIGATURE KAF WITH MEEM FINAL FORM -0FC83 ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM -0FC84 ARABIC LIGATURE KAF WITH YEH FINAL FORM -0FC85 ARABIC LIGATURE LAM WITH MEEM FINAL FORM -0FC86 ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM -0FC87 ARABIC LIGATURE LAM WITH YEH FINAL FORM -0FC88 ARABIC LIGATURE MEEM WITH ALEF FINAL FORM -0FC89 ARABIC LIGATURE MEEM WITH MEEM FINAL FORM -0FC8A ARABIC LIGATURE NOON WITH REH FINAL FORM -0FC8B ARABIC LIGATURE NOON WITH ZAIN FINAL FORM -0FC8C ARABIC LIGATURE NOON WITH MEEM FINAL FORM -0FC8D ARABIC LIGATURE NOON WITH NOON FINAL FORM -0FC8E ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM -0FC8F ARABIC LIGATURE NOON WITH YEH FINAL FORM -0FC90 ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM -0FC91 ARABIC LIGATURE YEH WITH REH FINAL FORM -0FC92 ARABIC LIGATURE YEH WITH ZAIN FINAL FORM -0FC93 ARABIC LIGATURE YEH WITH MEEM FINAL FORM -0FC94 ARABIC LIGATURE YEH WITH NOON FINAL FORM -0FC95 ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM -0FC96 ARABIC LIGATURE YEH WITH YEH FINAL FORM -0FC97 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM -0FC98 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM -0FC99 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM -0FC9A ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM -0FC9B ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM -0FC9C ARABIC LIGATURE BEH WITH JEEM INITIAL FORM -0FC9D ARABIC LIGATURE BEH WITH HAH INITIAL FORM -0FC9E ARABIC LIGATURE BEH WITH KHAH INITIAL FORM -0FC9F ARABIC LIGATURE BEH WITH MEEM INITIAL FORM -0FCA0 ARABIC LIGATURE BEH WITH HEH INITIAL FORM -0FCA1 ARABIC LIGATURE TEH WITH JEEM INITIAL FORM -0FCA2 ARABIC LIGATURE TEH WITH HAH INITIAL FORM -0FCA3 ARABIC LIGATURE TEH WITH KHAH INITIAL FORM -0FCA4 ARABIC LIGATURE TEH WITH MEEM INITIAL FORM -0FCA5 ARABIC LIGATURE TEH WITH HEH INITIAL FORM -0FCA6 ARABIC LIGATURE THEH WITH MEEM INITIAL FORM -0FCA7 ARABIC LIGATURE JEEM WITH HAH INITIAL FORM -0FCA8 ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM -0FCA9 ARABIC LIGATURE HAH WITH JEEM INITIAL FORM -0FCAA ARABIC LIGATURE HAH WITH MEEM INITIAL FORM -0FCAB ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM -0FCAC ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM -0FCAD ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM -0FCAE ARABIC LIGATURE SEEN WITH HAH INITIAL FORM -0FCAF ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM -0FCB0 ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM -0FCB1 ARABIC LIGATURE SAD WITH HAH INITIAL FORM -0FCB2 ARABIC LIGATURE SAD WITH KHAH INITIAL FORM -0FCB3 ARABIC LIGATURE SAD WITH MEEM INITIAL FORM -0FCB4 ARABIC LIGATURE DAD WITH JEEM INITIAL FORM -0FCB5 ARABIC LIGATURE DAD WITH HAH INITIAL FORM -0FCB6 ARABIC LIGATURE DAD WITH KHAH INITIAL FORM -0FCB7 ARABIC LIGATURE DAD WITH MEEM INITIAL FORM -0FCB8 ARABIC LIGATURE TAH WITH HAH INITIAL FORM -0FCB9 ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM -0FCBA ARABIC LIGATURE AIN WITH JEEM INITIAL FORM -0FCBB ARABIC LIGATURE AIN WITH MEEM INITIAL FORM -0FCBC ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM -0FCBD ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM -0FCBE ARABIC LIGATURE FEH WITH JEEM INITIAL FORM -0FCBF ARABIC LIGATURE FEH WITH HAH INITIAL FORM -0FCC0 ARABIC LIGATURE FEH WITH KHAH INITIAL FORM -0FCC1 ARABIC LIGATURE FEH WITH MEEM INITIAL FORM -0FCC2 ARABIC LIGATURE QAF WITH HAH INITIAL FORM -0FCC3 ARABIC LIGATURE QAF WITH MEEM INITIAL FORM -0FCC4 ARABIC LIGATURE KAF WITH JEEM INITIAL FORM -0FCC5 ARABIC LIGATURE KAF WITH HAH INITIAL FORM -0FCC6 ARABIC LIGATURE KAF WITH KHAH INITIAL FORM -0FCC7 ARABIC LIGATURE KAF WITH LAM INITIAL FORM -0FCC8 ARABIC LIGATURE KAF WITH MEEM INITIAL FORM -0FCC9 ARABIC LIGATURE LAM WITH JEEM INITIAL FORM -0FCCA ARABIC LIGATURE LAM WITH HAH INITIAL FORM -0FCCB ARABIC LIGATURE LAM WITH KHAH INITIAL FORM -0FCCC ARABIC LIGATURE LAM WITH MEEM INITIAL FORM -0FCCD ARABIC LIGATURE LAM WITH HEH INITIAL FORM -0FCCE ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM -0FCCF ARABIC LIGATURE MEEM WITH HAH INITIAL FORM -0FCD0 ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM -0FCD1 ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM -0FCD2 ARABIC LIGATURE NOON WITH JEEM INITIAL FORM -0FCD3 ARABIC LIGATURE NOON WITH HAH INITIAL FORM -0FCD4 ARABIC LIGATURE NOON WITH KHAH INITIAL FORM -0FCD5 ARABIC LIGATURE NOON WITH MEEM INITIAL FORM -0FCD6 ARABIC LIGATURE NOON WITH HEH INITIAL FORM -0FCD7 ARABIC LIGATURE HEH WITH JEEM INITIAL FORM -0FCD8 ARABIC LIGATURE HEH WITH MEEM INITIAL FORM -0FCD9 ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM -0FCDA ARABIC LIGATURE YEH WITH JEEM INITIAL FORM -0FCDB ARABIC LIGATURE YEH WITH HAH INITIAL FORM -0FCDC ARABIC LIGATURE YEH WITH KHAH INITIAL FORM -0FCDD ARABIC LIGATURE YEH WITH MEEM INITIAL FORM -0FCDE ARABIC LIGATURE YEH WITH HEH INITIAL FORM -0FCDF ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM -0FCE0 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM -0FCE1 ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM -0FCE2 ARABIC LIGATURE BEH WITH HEH MEDIAL FORM -0FCE3 ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM -0FCE4 ARABIC LIGATURE TEH WITH HEH MEDIAL FORM -0FCE5 ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM -0FCE6 ARABIC LIGATURE THEH WITH HEH MEDIAL FORM -0FCE7 ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM -0FCE8 ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM -0FCE9 ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM -0FCEA ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM -0FCEB ARABIC LIGATURE KAF WITH LAM MEDIAL FORM -0FCEC ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM -0FCED ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM -0FCEE ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM -0FCEF ARABIC LIGATURE NOON WITH HEH MEDIAL FORM -0FCF0 ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM -0FCF1 ARABIC LIGATURE YEH WITH HEH MEDIAL FORM -0FCF2 ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM -0FCF3 ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM -0FCF4 ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM -0FCF5 ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM -0FCF6 ARABIC LIGATURE TAH WITH YEH ISOLATED FORM -0FCF7 ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM -0FCF8 ARABIC LIGATURE AIN WITH YEH ISOLATED FORM -0FCF9 ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM -0FCFA ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM -0FCFB ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM -0FCFC ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM -0FCFD ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM -0FCFE ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM -0FCFF ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM -0FD00 ARABIC LIGATURE HAH WITH YEH ISOLATED FORM -0FD01 ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM -0FD02 ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM -0FD03 ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM -0FD04 ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM -0FD05 ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM -0FD06 ARABIC LIGATURE SAD WITH YEH ISOLATED FORM -0FD07 ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM -0FD08 ARABIC LIGATURE DAD WITH YEH ISOLATED FORM -0FD09 ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM -0FD0A ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM -0FD0B ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM -0FD0C ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM -0FD0D ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM -0FD0E ARABIC LIGATURE SEEN WITH REH ISOLATED FORM -0FD0F ARABIC LIGATURE SAD WITH REH ISOLATED FORM -0FD10 ARABIC LIGATURE DAD WITH REH ISOLATED FORM -0FD11 ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM -0FD12 ARABIC LIGATURE TAH WITH YEH FINAL FORM -0FD13 ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM -0FD14 ARABIC LIGATURE AIN WITH YEH FINAL FORM -0FD15 ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM -0FD16 ARABIC LIGATURE GHAIN WITH YEH FINAL FORM -0FD17 ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM -0FD18 ARABIC LIGATURE SEEN WITH YEH FINAL FORM -0FD19 ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM -0FD1A ARABIC LIGATURE SHEEN WITH YEH FINAL FORM -0FD1B ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM -0FD1C ARABIC LIGATURE HAH WITH YEH FINAL FORM -0FD1D ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM -0FD1E ARABIC LIGATURE JEEM WITH YEH FINAL FORM -0FD1F ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM -0FD20 ARABIC LIGATURE KHAH WITH YEH FINAL FORM -0FD21 ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM -0FD22 ARABIC LIGATURE SAD WITH YEH FINAL FORM -0FD23 ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM -0FD24 ARABIC LIGATURE DAD WITH YEH FINAL FORM -0FD25 ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM -0FD26 ARABIC LIGATURE SHEEN WITH HAH FINAL FORM -0FD27 ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM -0FD28 ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM -0FD29 ARABIC LIGATURE SHEEN WITH REH FINAL FORM -0FD2A ARABIC LIGATURE SEEN WITH REH FINAL FORM -0FD2B ARABIC LIGATURE SAD WITH REH FINAL FORM -0FD2C ARABIC LIGATURE DAD WITH REH FINAL FORM -0FD2D ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM -0FD2E ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM -0FD2F ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM -0FD30 ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM -0FD31 ARABIC LIGATURE SEEN WITH HEH INITIAL FORM -0FD32 ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM -0FD33 ARABIC LIGATURE TAH WITH MEEM INITIAL FORM -0FD34 ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM -0FD35 ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM -0FD36 ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM -0FD37 ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM -0FD38 ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM -0FD39 ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM -0FD3A ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM -0FD3B ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM -0FD3C ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM -0FD3D ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM -0FD3E ORNATE LEFT PARENTHESIS -0FD3F ORNATE RIGHT PARENTHESIS -0FD50 ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM -0FD51 ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM -0FD52 ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM -0FD53 ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM -0FD54 ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM -0FD55 ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM -0FD56 ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM -0FD57 ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM -0FD58 ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM -0FD59 ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM -0FD5A ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM -0FD5B ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM -0FD5C ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM -0FD5D ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM -0FD5E ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM -0FD5F ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM -0FD60 ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM -0FD61 ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM -0FD62 ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM -0FD63 ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM -0FD64 ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM -0FD65 ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM -0FD66 ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM -0FD67 ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM -0FD68 ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM -0FD69 ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM -0FD6A ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM -0FD6B ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM -0FD6C ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM -0FD6D ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM -0FD6E ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM -0FD6F ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM -0FD70 ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM -0FD71 ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM -0FD72 ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM -0FD73 ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM -0FD74 ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM -0FD75 ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM -0FD76 ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM -0FD77 ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM -0FD78 ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM -0FD79 ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM -0FD7A ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM -0FD7B ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM -0FD7C ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM -0FD7D ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM -0FD7E ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM -0FD7F ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM -0FD80 ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM -0FD81 ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM -0FD82 ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM -0FD83 ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM -0FD84 ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM -0FD85 ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM -0FD86 ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM -0FD87 ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM -0FD88 ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM -0FD89 ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM -0FD8A ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM -0FD8B ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM -0FD8C ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM -0FD8D ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM -0FD8E ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM -0FD8F ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM -0FD92 ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM -0FD93 ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM -0FD94 ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM -0FD95 ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM -0FD96 ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM -0FD97 ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM -0FD98 ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM -0FD99 ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM -0FD9A ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM -0FD9B ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM -0FD9C ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM -0FD9D ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM -0FD9E ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM -0FD9F ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM -0FDA0 ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM -0FDA1 ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM -0FDA2 ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM -0FDA3 ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM -0FDA4 ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM -0FDA5 ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM -0FDA6 ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM -0FDA7 ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM -0FDA8 ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM -0FDA9 ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM -0FDAA ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM -0FDAB ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM -0FDAC ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM -0FDAD ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM -0FDAE ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM -0FDAF ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM -0FDB0 ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM -0FDB1 ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM -0FDB2 ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM -0FDB3 ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM -0FDB4 ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM -0FDB5 ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM -0FDB6 ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM -0FDB7 ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM -0FDB8 ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM -0FDB9 ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM -0FDBA ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM -0FDBB ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM -0FDBC ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM -0FDBD ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM -0FDBE ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM -0FDBF ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM -0FDC0 ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM -0FDC1 ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM -0FDC2 ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM -0FDC3 ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM -0FDC4 ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM -0FDC5 ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM -0FDC6 ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM -0FDC7 ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM -0FDF0 ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM -0FDF1 ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM -0FDF2 ARABIC LIGATURE ALLAH ISOLATED FORM -0FDF3 ARABIC LIGATURE AKBAR ISOLATED FORM -0FDF4 ARABIC LIGATURE MOHAMMAD ISOLATED FORM -0FDF5 ARABIC LIGATURE SALAM ISOLATED FORM -0FDF6 ARABIC LIGATURE RASOUL ISOLATED FORM -0FDF7 ARABIC LIGATURE ALAYHE ISOLATED FORM -0FDF8 ARABIC LIGATURE WASALLAM ISOLATED FORM -0FDF9 ARABIC LIGATURE SALLA ISOLATED FORM -0FDFA ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM -0FDFB ARABIC LIGATURE JALLAJALALOUHOU -0FDFC RIAL SIGN -0FDFD ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM -0FE00 VARIATION SELECTOR-1 -0FE00 VS1 -0FE01 VARIATION SELECTOR-2 -0FE01 VS2 -0FE02 VARIATION SELECTOR-3 -0FE02 VS3 -0FE03 VARIATION SELECTOR-4 -0FE03 VS4 -0FE04 VARIATION SELECTOR-5 -0FE04 VS5 -0FE05 VARIATION SELECTOR-6 -0FE05 VS6 -0FE06 VARIATION SELECTOR-7 -0FE06 VS7 -0FE07 VARIATION SELECTOR-8 -0FE07 VS8 -0FE08 VARIATION SELECTOR-9 -0FE08 VS9 -0FE09 VARIATION SELECTOR-10 -0FE09 VS10 -0FE0A VARIATION SELECTOR-11 -0FE0A VS11 -0FE0B VARIATION SELECTOR-12 -0FE0B VS12 -0FE0C VARIATION SELECTOR-13 -0FE0C VS13 -0FE0D VARIATION SELECTOR-14 -0FE0D VS14 -0FE0E VARIATION SELECTOR-15 -0FE0E VS15 -0FE0F VARIATION SELECTOR-16 -0FE0F VS16 -0FE10 PRESENTATION FORM FOR VERTICAL COMMA -0FE11 PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA -0FE12 PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP -0FE13 PRESENTATION FORM FOR VERTICAL COLON -0FE14 PRESENTATION FORM FOR VERTICAL SEMICOLON -0FE15 PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK -0FE16 PRESENTATION FORM FOR VERTICAL QUESTION MARK -0FE17 PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET -0FE18 PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRACKET -0FE18 PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET -0FE19 PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS -0FE20 COMBINING LIGATURE LEFT HALF -0FE21 COMBINING LIGATURE RIGHT HALF -0FE22 COMBINING DOUBLE TILDE LEFT HALF -0FE23 COMBINING DOUBLE TILDE RIGHT HALF -0FE24 COMBINING MACRON LEFT HALF -0FE25 COMBINING MACRON RIGHT HALF -0FE26 COMBINING CONJOINING MACRON -0FE27 COMBINING LIGATURE LEFT HALF BELOW -0FE28 COMBINING LIGATURE RIGHT HALF BELOW -0FE29 COMBINING TILDE LEFT HALF BELOW -0FE2A COMBINING TILDE RIGHT HALF BELOW -0FE2B COMBINING MACRON LEFT HALF BELOW -0FE2C COMBINING MACRON RIGHT HALF BELOW -0FE2D COMBINING CONJOINING MACRON BELOW -0FE2E COMBINING CYRILLIC TITLO LEFT HALF -0FE2F COMBINING CYRILLIC TITLO RIGHT HALF -0FE30 PRESENTATION FORM FOR VERTICAL TWO DOT LEADER -0FE31 PRESENTATION FORM FOR VERTICAL EM DASH -0FE32 PRESENTATION FORM FOR VERTICAL EN DASH -0FE33 PRESENTATION FORM FOR VERTICAL LOW LINE -0FE34 PRESENTATION FORM FOR VERTICAL WAVY LOW LINE -0FE35 PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS -0FE36 PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS -0FE37 PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET -0FE38 PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET -0FE39 PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET -0FE3A PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET -0FE3B PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET -0FE3C PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET -0FE3D PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET -0FE3E PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET -0FE3F PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET -0FE40 PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET -0FE41 PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET -0FE42 PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET -0FE43 PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET -0FE44 PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET -0FE45 SESAME DOT -0FE46 WHITE SESAME DOT -0FE47 PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET -0FE48 PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET -0FE49 DASHED OVERLINE -0FE4A CENTRELINE OVERLINE -0FE4B WAVY OVERLINE -0FE4C DOUBLE WAVY OVERLINE -0FE4D DASHED LOW LINE -0FE4E CENTRELINE LOW LINE -0FE4F WAVY LOW LINE -0FE50 SMALL COMMA -0FE51 SMALL IDEOGRAPHIC COMMA -0FE52 SMALL FULL STOP -0FE54 SMALL SEMICOLON -0FE55 SMALL COLON -0FE56 SMALL QUESTION MARK -0FE57 SMALL EXCLAMATION MARK -0FE58 SMALL EM DASH -0FE59 SMALL LEFT PARENTHESIS -0FE5A SMALL RIGHT PARENTHESIS -0FE5B SMALL LEFT CURLY BRACKET -0FE5C SMALL RIGHT CURLY BRACKET -0FE5D SMALL LEFT TORTOISE SHELL BRACKET -0FE5E SMALL RIGHT TORTOISE SHELL BRACKET -0FE5F SMALL NUMBER SIGN -0FE60 SMALL AMPERSAND -0FE61 SMALL ASTERISK -0FE62 SMALL PLUS SIGN -0FE63 SMALL HYPHEN-MINUS -0FE64 SMALL LESS-THAN SIGN -0FE65 SMALL GREATER-THAN SIGN -0FE66 SMALL EQUALS SIGN -0FE68 SMALL REVERSE SOLIDUS -0FE69 SMALL DOLLAR SIGN -0FE6A SMALL PERCENT SIGN -0FE6B SMALL COMMERCIAL AT -0FE70 ARABIC FATHATAN ISOLATED FORM -0FE71 ARABIC TATWEEL WITH FATHATAN ABOVE -0FE72 ARABIC DAMMATAN ISOLATED FORM -0FE73 ARABIC TAIL FRAGMENT -0FE74 ARABIC KASRATAN ISOLATED FORM -0FE76 ARABIC FATHA ISOLATED FORM -0FE77 ARABIC FATHA MEDIAL FORM -0FE78 ARABIC DAMMA ISOLATED FORM -0FE79 ARABIC DAMMA MEDIAL FORM -0FE7A ARABIC KASRA ISOLATED FORM -0FE7B ARABIC KASRA MEDIAL FORM -0FE7C ARABIC SHADDA ISOLATED FORM -0FE7D ARABIC SHADDA MEDIAL FORM -0FE7E ARABIC SUKUN ISOLATED FORM -0FE7F ARABIC SUKUN MEDIAL FORM -0FE80 ARABIC LETTER HAMZA ISOLATED FORM -0FE81 ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM -0FE82 ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM -0FE83 ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM -0FE84 ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM -0FE85 ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM -0FE86 ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM -0FE87 ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM -0FE88 ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM -0FE89 ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM -0FE8A ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM -0FE8B ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM -0FE8C ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM -0FE8D ARABIC LETTER ALEF ISOLATED FORM -0FE8E ARABIC LETTER ALEF FINAL FORM -0FE8F ARABIC LETTER BEH ISOLATED FORM -0FE90 ARABIC LETTER BEH FINAL FORM -0FE91 ARABIC LETTER BEH INITIAL FORM -0FE92 ARABIC LETTER BEH MEDIAL FORM -0FE93 ARABIC LETTER TEH MARBUTA ISOLATED FORM -0FE94 ARABIC LETTER TEH MARBUTA FINAL FORM -0FE95 ARABIC LETTER TEH ISOLATED FORM -0FE96 ARABIC LETTER TEH FINAL FORM -0FE97 ARABIC LETTER TEH INITIAL FORM -0FE98 ARABIC LETTER TEH MEDIAL FORM -0FE99 ARABIC LETTER THEH ISOLATED FORM -0FE9A ARABIC LETTER THEH FINAL FORM -0FE9B ARABIC LETTER THEH INITIAL FORM -0FE9C ARABIC LETTER THEH MEDIAL FORM -0FE9D ARABIC LETTER JEEM ISOLATED FORM -0FE9E ARABIC LETTER JEEM FINAL FORM -0FE9F ARABIC LETTER JEEM INITIAL FORM -0FEA0 ARABIC LETTER JEEM MEDIAL FORM -0FEA1 ARABIC LETTER HAH ISOLATED FORM -0FEA2 ARABIC LETTER HAH FINAL FORM -0FEA3 ARABIC LETTER HAH INITIAL FORM -0FEA4 ARABIC LETTER HAH MEDIAL FORM -0FEA5 ARABIC LETTER KHAH ISOLATED FORM -0FEA6 ARABIC LETTER KHAH FINAL FORM -0FEA7 ARABIC LETTER KHAH INITIAL FORM -0FEA8 ARABIC LETTER KHAH MEDIAL FORM -0FEA9 ARABIC LETTER DAL ISOLATED FORM -0FEAA ARABIC LETTER DAL FINAL FORM -0FEAB ARABIC LETTER THAL ISOLATED FORM -0FEAC ARABIC LETTER THAL FINAL FORM -0FEAD ARABIC LETTER REH ISOLATED FORM -0FEAE ARABIC LETTER REH FINAL FORM -0FEAF ARABIC LETTER ZAIN ISOLATED FORM -0FEB0 ARABIC LETTER ZAIN FINAL FORM -0FEB1 ARABIC LETTER SEEN ISOLATED FORM -0FEB2 ARABIC LETTER SEEN FINAL FORM -0FEB3 ARABIC LETTER SEEN INITIAL FORM -0FEB4 ARABIC LETTER SEEN MEDIAL FORM -0FEB5 ARABIC LETTER SHEEN ISOLATED FORM -0FEB6 ARABIC LETTER SHEEN FINAL FORM -0FEB7 ARABIC LETTER SHEEN INITIAL FORM -0FEB8 ARABIC LETTER SHEEN MEDIAL FORM -0FEB9 ARABIC LETTER SAD ISOLATED FORM -0FEBA ARABIC LETTER SAD FINAL FORM -0FEBB ARABIC LETTER SAD INITIAL FORM -0FEBC ARABIC LETTER SAD MEDIAL FORM -0FEBD ARABIC LETTER DAD ISOLATED FORM -0FEBE ARABIC LETTER DAD FINAL FORM -0FEBF ARABIC LETTER DAD INITIAL FORM -0FEC0 ARABIC LETTER DAD MEDIAL FORM -0FEC1 ARABIC LETTER TAH ISOLATED FORM -0FEC2 ARABIC LETTER TAH FINAL FORM -0FEC3 ARABIC LETTER TAH INITIAL FORM -0FEC4 ARABIC LETTER TAH MEDIAL FORM -0FEC5 ARABIC LETTER ZAH ISOLATED FORM -0FEC6 ARABIC LETTER ZAH FINAL FORM -0FEC7 ARABIC LETTER ZAH INITIAL FORM -0FEC8 ARABIC LETTER ZAH MEDIAL FORM -0FEC9 ARABIC LETTER AIN ISOLATED FORM -0FECA ARABIC LETTER AIN FINAL FORM -0FECB ARABIC LETTER AIN INITIAL FORM -0FECC ARABIC LETTER AIN MEDIAL FORM -0FECD ARABIC LETTER GHAIN ISOLATED FORM -0FECE ARABIC LETTER GHAIN FINAL FORM -0FECF ARABIC LETTER GHAIN INITIAL FORM -0FED0 ARABIC LETTER GHAIN MEDIAL FORM -0FED1 ARABIC LETTER FEH ISOLATED FORM -0FED2 ARABIC LETTER FEH FINAL FORM -0FED3 ARABIC LETTER FEH INITIAL FORM -0FED4 ARABIC LETTER FEH MEDIAL FORM -0FED5 ARABIC LETTER QAF ISOLATED FORM -0FED6 ARABIC LETTER QAF FINAL FORM -0FED7 ARABIC LETTER QAF INITIAL FORM -0FED8 ARABIC LETTER QAF MEDIAL FORM -0FED9 ARABIC LETTER KAF ISOLATED FORM -0FEDA ARABIC LETTER KAF FINAL FORM -0FEDB ARABIC LETTER KAF INITIAL FORM -0FEDC ARABIC LETTER KAF MEDIAL FORM -0FEDD ARABIC LETTER LAM ISOLATED FORM -0FEDE ARABIC LETTER LAM FINAL FORM -0FEDF ARABIC LETTER LAM INITIAL FORM -0FEE0 ARABIC LETTER LAM MEDIAL FORM -0FEE1 ARABIC LETTER MEEM ISOLATED FORM -0FEE2 ARABIC LETTER MEEM FINAL FORM -0FEE3 ARABIC LETTER MEEM INITIAL FORM -0FEE4 ARABIC LETTER MEEM MEDIAL FORM -0FEE5 ARABIC LETTER NOON ISOLATED FORM -0FEE6 ARABIC LETTER NOON FINAL FORM -0FEE7 ARABIC LETTER NOON INITIAL FORM -0FEE8 ARABIC LETTER NOON MEDIAL FORM -0FEE9 ARABIC LETTER HEH ISOLATED FORM -0FEEA ARABIC LETTER HEH FINAL FORM -0FEEB ARABIC LETTER HEH INITIAL FORM -0FEEC ARABIC LETTER HEH MEDIAL FORM -0FEED ARABIC LETTER WAW ISOLATED FORM -0FEEE ARABIC LETTER WAW FINAL FORM -0FEEF ARABIC LETTER ALEF MAKSURA ISOLATED FORM -0FEF0 ARABIC LETTER ALEF MAKSURA FINAL FORM -0FEF1 ARABIC LETTER YEH ISOLATED FORM -0FEF2 ARABIC LETTER YEH FINAL FORM -0FEF3 ARABIC LETTER YEH INITIAL FORM -0FEF4 ARABIC LETTER YEH MEDIAL FORM -0FEF5 ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM -0FEF6 ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM -0FEF7 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM -0FEF8 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM -0FEF9 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM -0FEFA ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM -0FEFB ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM -0FEFC ARABIC LIGATURE LAM WITH ALEF FINAL FORM -0FEFF ZERO WIDTH NO-BREAK SPACE -0FEFF BYTE ORDER MARK -0FEFF BOM -0FEFF ZWNBSP -0FF01 FULLWIDTH EXCLAMATION MARK -0FF02 FULLWIDTH QUOTATION MARK -0FF03 FULLWIDTH NUMBER SIGN -0FF04 FULLWIDTH DOLLAR SIGN -0FF05 FULLWIDTH PERCENT SIGN -0FF06 FULLWIDTH AMPERSAND -0FF07 FULLWIDTH APOSTROPHE -0FF08 FULLWIDTH LEFT PARENTHESIS -0FF09 FULLWIDTH RIGHT PARENTHESIS -0FF0A FULLWIDTH ASTERISK -0FF0B FULLWIDTH PLUS SIGN -0FF0C FULLWIDTH COMMA -0FF0D FULLWIDTH HYPHEN-MINUS -0FF0E FULLWIDTH FULL STOP -0FF0F FULLWIDTH SOLIDUS -0FF10 FULLWIDTH DIGIT ZERO -0FF11 FULLWIDTH DIGIT ONE -0FF12 FULLWIDTH DIGIT TWO -0FF13 FULLWIDTH DIGIT THREE -0FF14 FULLWIDTH DIGIT FOUR -0FF15 FULLWIDTH DIGIT FIVE -0FF16 FULLWIDTH DIGIT SIX -0FF17 FULLWIDTH DIGIT SEVEN -0FF18 FULLWIDTH DIGIT EIGHT -0FF19 FULLWIDTH DIGIT NINE -0FF1A FULLWIDTH COLON -0FF1B FULLWIDTH SEMICOLON -0FF1C FULLWIDTH LESS-THAN SIGN -0FF1D FULLWIDTH EQUALS SIGN -0FF1E FULLWIDTH GREATER-THAN SIGN -0FF1F FULLWIDTH QUESTION MARK -0FF20 FULLWIDTH COMMERCIAL AT -0FF21 FULLWIDTH LATIN CAPITAL LETTER A -0FF22 FULLWIDTH LATIN CAPITAL LETTER B -0FF23 FULLWIDTH LATIN CAPITAL LETTER C -0FF24 FULLWIDTH LATIN CAPITAL LETTER D -0FF25 FULLWIDTH LATIN CAPITAL LETTER E -0FF26 FULLWIDTH LATIN CAPITAL LETTER F -0FF27 FULLWIDTH LATIN CAPITAL LETTER G -0FF28 FULLWIDTH LATIN CAPITAL LETTER H -0FF29 FULLWIDTH LATIN CAPITAL LETTER I -0FF2A FULLWIDTH LATIN CAPITAL LETTER J -0FF2B FULLWIDTH LATIN CAPITAL LETTER K -0FF2C FULLWIDTH LATIN CAPITAL LETTER L -0FF2D FULLWIDTH LATIN CAPITAL LETTER M -0FF2E FULLWIDTH LATIN CAPITAL LETTER N -0FF2F FULLWIDTH LATIN CAPITAL LETTER O -0FF30 FULLWIDTH LATIN CAPITAL LETTER P -0FF31 FULLWIDTH LATIN CAPITAL LETTER Q -0FF32 FULLWIDTH LATIN CAPITAL LETTER R -0FF33 FULLWIDTH LATIN CAPITAL LETTER S -0FF34 FULLWIDTH LATIN CAPITAL LETTER T -0FF35 FULLWIDTH LATIN CAPITAL LETTER U -0FF36 FULLWIDTH LATIN CAPITAL LETTER V -0FF37 FULLWIDTH LATIN CAPITAL LETTER W -0FF38 FULLWIDTH LATIN CAPITAL LETTER X -0FF39 FULLWIDTH LATIN CAPITAL LETTER Y -0FF3A FULLWIDTH LATIN CAPITAL LETTER Z -0FF3B FULLWIDTH LEFT SQUARE BRACKET -0FF3C FULLWIDTH REVERSE SOLIDUS -0FF3D FULLWIDTH RIGHT SQUARE BRACKET -0FF3E FULLWIDTH CIRCUMFLEX ACCENT -0FF3F FULLWIDTH LOW LINE -0FF40 FULLWIDTH GRAVE ACCENT -0FF41 FULLWIDTH LATIN SMALL LETTER A -0FF42 FULLWIDTH LATIN SMALL LETTER B -0FF43 FULLWIDTH LATIN SMALL LETTER C -0FF44 FULLWIDTH LATIN SMALL LETTER D -0FF45 FULLWIDTH LATIN SMALL LETTER E -0FF46 FULLWIDTH LATIN SMALL LETTER F -0FF47 FULLWIDTH LATIN SMALL LETTER G -0FF48 FULLWIDTH LATIN SMALL LETTER H -0FF49 FULLWIDTH LATIN SMALL LETTER I -0FF4A FULLWIDTH LATIN SMALL LETTER J -0FF4B FULLWIDTH LATIN SMALL LETTER K -0FF4C FULLWIDTH LATIN SMALL LETTER L -0FF4D FULLWIDTH LATIN SMALL LETTER M -0FF4E FULLWIDTH LATIN SMALL LETTER N -0FF4F FULLWIDTH LATIN SMALL LETTER O -0FF50 FULLWIDTH LATIN SMALL LETTER P -0FF51 FULLWIDTH LATIN SMALL LETTER Q -0FF52 FULLWIDTH LATIN SMALL LETTER R -0FF53 FULLWIDTH LATIN SMALL LETTER S -0FF54 FULLWIDTH LATIN SMALL LETTER T -0FF55 FULLWIDTH LATIN SMALL LETTER U -0FF56 FULLWIDTH LATIN SMALL LETTER V -0FF57 FULLWIDTH LATIN SMALL LETTER W -0FF58 FULLWIDTH LATIN SMALL LETTER X -0FF59 FULLWIDTH LATIN SMALL LETTER Y -0FF5A FULLWIDTH LATIN SMALL LETTER Z -0FF5B FULLWIDTH LEFT CURLY BRACKET -0FF5C FULLWIDTH VERTICAL LINE -0FF5D FULLWIDTH RIGHT CURLY BRACKET -0FF5E FULLWIDTH TILDE -0FF5F FULLWIDTH LEFT WHITE PARENTHESIS -0FF60 FULLWIDTH RIGHT WHITE PARENTHESIS -0FF61 HALFWIDTH IDEOGRAPHIC FULL STOP -0FF62 HALFWIDTH LEFT CORNER BRACKET -0FF63 HALFWIDTH RIGHT CORNER BRACKET -0FF64 HALFWIDTH IDEOGRAPHIC COMMA -0FF65 HALFWIDTH KATAKANA MIDDLE DOT -0FF66 HALFWIDTH KATAKANA LETTER WO -0FF67 HALFWIDTH KATAKANA LETTER SMALL A -0FF68 HALFWIDTH KATAKANA LETTER SMALL I -0FF69 HALFWIDTH KATAKANA LETTER SMALL U -0FF6A HALFWIDTH KATAKANA LETTER SMALL E -0FF6B HALFWIDTH KATAKANA LETTER SMALL O -0FF6C HALFWIDTH KATAKANA LETTER SMALL YA -0FF6D HALFWIDTH KATAKANA LETTER SMALL YU -0FF6E HALFWIDTH KATAKANA LETTER SMALL YO -0FF6F HALFWIDTH KATAKANA LETTER SMALL TU -0FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK -0FF71 HALFWIDTH KATAKANA LETTER A -0FF72 HALFWIDTH KATAKANA LETTER I -0FF73 HALFWIDTH KATAKANA LETTER U -0FF74 HALFWIDTH KATAKANA LETTER E -0FF75 HALFWIDTH KATAKANA LETTER O -0FF76 HALFWIDTH KATAKANA LETTER KA -0FF77 HALFWIDTH KATAKANA LETTER KI -0FF78 HALFWIDTH KATAKANA LETTER KU -0FF79 HALFWIDTH KATAKANA LETTER KE -0FF7A HALFWIDTH KATAKANA LETTER KO -0FF7B HALFWIDTH KATAKANA LETTER SA -0FF7C HALFWIDTH KATAKANA LETTER SI -0FF7D HALFWIDTH KATAKANA LETTER SU -0FF7E HALFWIDTH KATAKANA LETTER SE -0FF7F HALFWIDTH KATAKANA LETTER SO -0FF80 HALFWIDTH KATAKANA LETTER TA -0FF81 HALFWIDTH KATAKANA LETTER TI -0FF82 HALFWIDTH KATAKANA LETTER TU -0FF83 HALFWIDTH KATAKANA LETTER TE -0FF84 HALFWIDTH KATAKANA LETTER TO -0FF85 HALFWIDTH KATAKANA LETTER NA -0FF86 HALFWIDTH KATAKANA LETTER NI -0FF87 HALFWIDTH KATAKANA LETTER NU -0FF88 HALFWIDTH KATAKANA LETTER NE -0FF89 HALFWIDTH KATAKANA LETTER NO -0FF8A HALFWIDTH KATAKANA LETTER HA -0FF8B HALFWIDTH KATAKANA LETTER HI -0FF8C HALFWIDTH KATAKANA LETTER HU -0FF8D HALFWIDTH KATAKANA LETTER HE -0FF8E HALFWIDTH KATAKANA LETTER HO -0FF8F HALFWIDTH KATAKANA LETTER MA -0FF90 HALFWIDTH KATAKANA LETTER MI -0FF91 HALFWIDTH KATAKANA LETTER MU -0FF92 HALFWIDTH KATAKANA LETTER ME -0FF93 HALFWIDTH KATAKANA LETTER MO -0FF94 HALFWIDTH KATAKANA LETTER YA -0FF95 HALFWIDTH KATAKANA LETTER YU -0FF96 HALFWIDTH KATAKANA LETTER YO -0FF97 HALFWIDTH KATAKANA LETTER RA -0FF98 HALFWIDTH KATAKANA LETTER RI -0FF99 HALFWIDTH KATAKANA LETTER RU -0FF9A HALFWIDTH KATAKANA LETTER RE -0FF9B HALFWIDTH KATAKANA LETTER RO -0FF9C HALFWIDTH KATAKANA LETTER WA -0FF9D HALFWIDTH KATAKANA LETTER N -0FF9E HALFWIDTH KATAKANA VOICED SOUND MARK -0FF9F HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK -0FFA0 HALFWIDTH HANGUL FILLER -0FFA1 HALFWIDTH HANGUL LETTER KIYEOK -0FFA2 HALFWIDTH HANGUL LETTER SSANGKIYEOK -0FFA3 HALFWIDTH HANGUL LETTER KIYEOK-SIOS -0FFA4 HALFWIDTH HANGUL LETTER NIEUN -0FFA5 HALFWIDTH HANGUL LETTER NIEUN-CIEUC -0FFA6 HALFWIDTH HANGUL LETTER NIEUN-HIEUH -0FFA7 HALFWIDTH HANGUL LETTER TIKEUT -0FFA8 HALFWIDTH HANGUL LETTER SSANGTIKEUT -0FFA9 HALFWIDTH HANGUL LETTER RIEUL -0FFAA HALFWIDTH HANGUL LETTER RIEUL-KIYEOK -0FFAB HALFWIDTH HANGUL LETTER RIEUL-MIEUM -0FFAC HALFWIDTH HANGUL LETTER RIEUL-PIEUP -0FFAD HALFWIDTH HANGUL LETTER RIEUL-SIOS -0FFAE HALFWIDTH HANGUL LETTER RIEUL-THIEUTH -0FFAF HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH -0FFB0 HALFWIDTH HANGUL LETTER RIEUL-HIEUH -0FFB1 HALFWIDTH HANGUL LETTER MIEUM -0FFB2 HALFWIDTH HANGUL LETTER PIEUP -0FFB3 HALFWIDTH HANGUL LETTER SSANGPIEUP -0FFB4 HALFWIDTH HANGUL LETTER PIEUP-SIOS -0FFB5 HALFWIDTH HANGUL LETTER SIOS -0FFB6 HALFWIDTH HANGUL LETTER SSANGSIOS -0FFB7 HALFWIDTH HANGUL LETTER IEUNG -0FFB8 HALFWIDTH HANGUL LETTER CIEUC -0FFB9 HALFWIDTH HANGUL LETTER SSANGCIEUC -0FFBA HALFWIDTH HANGUL LETTER CHIEUCH -0FFBB HALFWIDTH HANGUL LETTER KHIEUKH -0FFBC HALFWIDTH HANGUL LETTER THIEUTH -0FFBD HALFWIDTH HANGUL LETTER PHIEUPH -0FFBE HALFWIDTH HANGUL LETTER HIEUH -0FFC2 HALFWIDTH HANGUL LETTER A -0FFC3 HALFWIDTH HANGUL LETTER AE -0FFC4 HALFWIDTH HANGUL LETTER YA -0FFC5 HALFWIDTH HANGUL LETTER YAE -0FFC6 HALFWIDTH HANGUL LETTER EO -0FFC7 HALFWIDTH HANGUL LETTER E -0FFCA HALFWIDTH HANGUL LETTER YEO -0FFCB HALFWIDTH HANGUL LETTER YE -0FFCC HALFWIDTH HANGUL LETTER O -0FFCD HALFWIDTH HANGUL LETTER WA -0FFCE HALFWIDTH HANGUL LETTER WAE -0FFCF HALFWIDTH HANGUL LETTER OE -0FFD2 HALFWIDTH HANGUL LETTER YO -0FFD3 HALFWIDTH HANGUL LETTER U -0FFD4 HALFWIDTH HANGUL LETTER WEO -0FFD5 HALFWIDTH HANGUL LETTER WE -0FFD6 HALFWIDTH HANGUL LETTER WI -0FFD7 HALFWIDTH HANGUL LETTER YU -0FFDA HALFWIDTH HANGUL LETTER EU -0FFDB HALFWIDTH HANGUL LETTER YI -0FFDC HALFWIDTH HANGUL LETTER I -0FFE0 FULLWIDTH CENT SIGN -0FFE1 FULLWIDTH POUND SIGN -0FFE2 FULLWIDTH NOT SIGN -0FFE3 FULLWIDTH MACRON -0FFE4 FULLWIDTH BROKEN BAR -0FFE5 FULLWIDTH YEN SIGN -0FFE6 FULLWIDTH WON SIGN -0FFE8 HALFWIDTH FORMS LIGHT VERTICAL -0FFE9 HALFWIDTH LEFTWARDS ARROW -0FFEA HALFWIDTH UPWARDS ARROW -0FFEB HALFWIDTH RIGHTWARDS ARROW -0FFEC HALFWIDTH DOWNWARDS ARROW -0FFED HALFWIDTH BLACK SQUARE -0FFEE HALFWIDTH WHITE CIRCLE -0FFF9 INTERLINEAR ANNOTATION ANCHOR -0FFFA INTERLINEAR ANNOTATION SEPARATOR -0FFFB INTERLINEAR ANNOTATION TERMINATOR -0FFFC OBJECT REPLACEMENT CHARACTER -0FFFD REPLACEMENT CHARACTER -10000 LINEAR B SYLLABLE B008 A -10001 LINEAR B SYLLABLE B038 E -10002 LINEAR B SYLLABLE B028 I -10003 LINEAR B SYLLABLE B061 O -10004 LINEAR B SYLLABLE B010 U -10005 LINEAR B SYLLABLE B001 DA -10006 LINEAR B SYLLABLE B045 DE -10007 LINEAR B SYLLABLE B007 DI -10008 LINEAR B SYLLABLE B014 DO -10009 LINEAR B SYLLABLE B051 DU -1000A LINEAR B SYLLABLE B057 JA -1000B LINEAR B SYLLABLE B046 JE -1000D LINEAR B SYLLABLE B036 JO -1000E LINEAR B SYLLABLE B065 JU -1000F LINEAR B SYLLABLE B077 KA -10010 LINEAR B SYLLABLE B044 KE -10011 LINEAR B SYLLABLE B067 KI -10012 LINEAR B SYLLABLE B070 KO -10013 LINEAR B SYLLABLE B081 KU -10014 LINEAR B SYLLABLE B080 MA -10015 LINEAR B SYLLABLE B013 ME -10016 LINEAR B SYLLABLE B073 MI -10017 LINEAR B SYLLABLE B015 MO -10018 LINEAR B SYLLABLE B023 MU -10019 LINEAR B SYLLABLE B006 NA -1001A LINEAR B SYLLABLE B024 NE -1001B LINEAR B SYLLABLE B030 NI -1001C LINEAR B SYLLABLE B052 NO -1001D LINEAR B SYLLABLE B055 NU -1001E LINEAR B SYLLABLE B003 PA -1001F LINEAR B SYLLABLE B072 PE -10020 LINEAR B SYLLABLE B039 PI -10021 LINEAR B SYLLABLE B011 PO -10022 LINEAR B SYLLABLE B050 PU -10023 LINEAR B SYLLABLE B016 QA -10024 LINEAR B SYLLABLE B078 QE -10025 LINEAR B SYLLABLE B021 QI -10026 LINEAR B SYLLABLE B032 QO -10028 LINEAR B SYLLABLE B060 RA -10029 LINEAR B SYLLABLE B027 RE -1002A LINEAR B SYLLABLE B053 RI -1002B LINEAR B SYLLABLE B002 RO -1002C LINEAR B SYLLABLE B026 RU -1002D LINEAR B SYLLABLE B031 SA -1002E LINEAR B SYLLABLE B009 SE -1002F LINEAR B SYLLABLE B041 SI -10030 LINEAR B SYLLABLE B012 SO -10031 LINEAR B SYLLABLE B058 SU -10032 LINEAR B SYLLABLE B059 TA -10033 LINEAR B SYLLABLE B004 TE -10034 LINEAR B SYLLABLE B037 TI -10035 LINEAR B SYLLABLE B005 TO -10036 LINEAR B SYLLABLE B069 TU -10037 LINEAR B SYLLABLE B054 WA -10038 LINEAR B SYLLABLE B075 WE -10039 LINEAR B SYLLABLE B040 WI -1003A LINEAR B SYLLABLE B042 WO -1003C LINEAR B SYLLABLE B017 ZA -1003D LINEAR B SYLLABLE B074 ZE -1003F LINEAR B SYLLABLE B020 ZO -10040 LINEAR B SYLLABLE B025 A2 -10041 LINEAR B SYLLABLE B043 A3 -10042 LINEAR B SYLLABLE B085 AU -10043 LINEAR B SYLLABLE B071 DWE -10044 LINEAR B SYLLABLE B090 DWO -10045 LINEAR B SYLLABLE B048 NWA -10046 LINEAR B SYLLABLE B029 PU2 -10047 LINEAR B SYLLABLE B062 PTE -10048 LINEAR B SYLLABLE B076 RA2 -10049 LINEAR B SYLLABLE B033 RA3 -1004A LINEAR B SYLLABLE B068 RO2 -1004B LINEAR B SYLLABLE B066 TA2 -1004C LINEAR B SYLLABLE B087 TWE -1004D LINEAR B SYLLABLE B091 TWO -10050 LINEAR B SYMBOL B018 -10051 LINEAR B SYMBOL B019 -10052 LINEAR B SYMBOL B022 -10053 LINEAR B SYMBOL B034 -10054 LINEAR B SYMBOL B047 -10055 LINEAR B SYMBOL B049 -10056 LINEAR B SYMBOL B056 -10057 LINEAR B SYMBOL B063 -10058 LINEAR B SYMBOL B064 -10059 LINEAR B SYMBOL B079 -1005A LINEAR B SYMBOL B082 -1005B LINEAR B SYMBOL B083 -1005C LINEAR B SYMBOL B086 -1005D LINEAR B SYMBOL B089 -10080 LINEAR B IDEOGRAM B100 MAN -10081 LINEAR B IDEOGRAM B102 WOMAN -10082 LINEAR B IDEOGRAM B104 DEER -10083 LINEAR B IDEOGRAM B105 EQUID -10084 LINEAR B IDEOGRAM B105F MARE -10085 LINEAR B IDEOGRAM B105M STALLION -10086 LINEAR B IDEOGRAM B106F EWE -10087 LINEAR B IDEOGRAM B106M RAM -10088 LINEAR B IDEOGRAM B107F SHE-GOAT -10089 LINEAR B IDEOGRAM B107M HE-GOAT -1008A LINEAR B IDEOGRAM B108F SOW -1008B LINEAR B IDEOGRAM B108M BOAR -1008C LINEAR B IDEOGRAM B109F COW -1008D LINEAR B IDEOGRAM B109M BULL -1008E LINEAR B IDEOGRAM B120 WHEAT -1008F LINEAR B IDEOGRAM B121 BARLEY -10090 LINEAR B IDEOGRAM B122 OLIVE -10091 LINEAR B IDEOGRAM B123 SPICE -10092 LINEAR B IDEOGRAM B125 CYPERUS -10093 LINEAR B MONOGRAM B127 KAPO -10094 LINEAR B MONOGRAM B128 KANAKO -10095 LINEAR B IDEOGRAM B130 OIL -10096 LINEAR B IDEOGRAM B131 WINE -10097 LINEAR B IDEOGRAM B132 -10098 LINEAR B MONOGRAM B133 AREPA -10099 LINEAR B MONOGRAM B135 MERI -1009A LINEAR B IDEOGRAM B140 BRONZE -1009B LINEAR B IDEOGRAM B141 GOLD -1009C LINEAR B IDEOGRAM B142 -1009D LINEAR B IDEOGRAM B145 WOOL -1009E LINEAR B IDEOGRAM B146 -1009F LINEAR B IDEOGRAM B150 -100A0 LINEAR B IDEOGRAM B151 HORN -100A1 LINEAR B IDEOGRAM B152 -100A2 LINEAR B IDEOGRAM B153 -100A3 LINEAR B IDEOGRAM B154 -100A4 LINEAR B MONOGRAM B156 TURO2 -100A5 LINEAR B IDEOGRAM B157 -100A6 LINEAR B IDEOGRAM B158 -100A7 LINEAR B IDEOGRAM B159 CLOTH -100A8 LINEAR B IDEOGRAM B160 -100A9 LINEAR B IDEOGRAM B161 -100AA LINEAR B IDEOGRAM B162 GARMENT -100AB LINEAR B IDEOGRAM B163 ARMOUR -100AC LINEAR B IDEOGRAM B164 -100AD LINEAR B IDEOGRAM B165 -100AE LINEAR B IDEOGRAM B166 -100AF LINEAR B IDEOGRAM B167 -100B0 LINEAR B IDEOGRAM B168 -100B1 LINEAR B IDEOGRAM B169 -100B2 LINEAR B IDEOGRAM B170 -100B3 LINEAR B IDEOGRAM B171 -100B4 LINEAR B IDEOGRAM B172 -100B5 LINEAR B IDEOGRAM B173 MONTH -100B6 LINEAR B IDEOGRAM B174 -100B7 LINEAR B IDEOGRAM B176 TREE -100B8 LINEAR B IDEOGRAM B177 -100B9 LINEAR B IDEOGRAM B178 -100BA LINEAR B IDEOGRAM B179 -100BB LINEAR B IDEOGRAM B180 -100BC LINEAR B IDEOGRAM B181 -100BD LINEAR B IDEOGRAM B182 -100BE LINEAR B IDEOGRAM B183 -100BF LINEAR B IDEOGRAM B184 -100C0 LINEAR B IDEOGRAM B185 -100C1 LINEAR B IDEOGRAM B189 -100C2 LINEAR B IDEOGRAM B190 -100C3 LINEAR B IDEOGRAM B191 HELMET -100C4 LINEAR B IDEOGRAM B220 FOOTSTOOL -100C5 LINEAR B IDEOGRAM B225 BATHTUB -100C6 LINEAR B IDEOGRAM B230 SPEAR -100C7 LINEAR B IDEOGRAM B231 ARROW -100C8 LINEAR B IDEOGRAM B232 -100C9 LINEAR B IDEOGRAM B233 SWORD -100CA LINEAR B IDEOGRAM B234 -100CB LINEAR B IDEOGRAM B236 -100CC LINEAR B IDEOGRAM B240 WHEELED CHARIOT -100CD LINEAR B IDEOGRAM B241 CHARIOT -100CE LINEAR B IDEOGRAM B242 CHARIOT FRAME -100CF LINEAR B IDEOGRAM B243 WHEEL -100D0 LINEAR B IDEOGRAM B245 -100D1 LINEAR B IDEOGRAM B246 -100D2 LINEAR B MONOGRAM B247 DIPTE -100D3 LINEAR B IDEOGRAM B248 -100D4 LINEAR B IDEOGRAM B249 -100D5 LINEAR B IDEOGRAM B251 -100D6 LINEAR B IDEOGRAM B252 -100D7 LINEAR B IDEOGRAM B253 -100D8 LINEAR B IDEOGRAM B254 DART -100D9 LINEAR B IDEOGRAM B255 -100DA LINEAR B IDEOGRAM B256 -100DB LINEAR B IDEOGRAM B257 -100DC LINEAR B IDEOGRAM B258 -100DD LINEAR B IDEOGRAM B259 -100DE LINEAR B IDEOGRAM VESSEL B155 -100DF LINEAR B IDEOGRAM VESSEL B200 -100E0 LINEAR B IDEOGRAM VESSEL B201 -100E1 LINEAR B IDEOGRAM VESSEL B202 -100E2 LINEAR B IDEOGRAM VESSEL B203 -100E3 LINEAR B IDEOGRAM VESSEL B204 -100E4 LINEAR B IDEOGRAM VESSEL B205 -100E5 LINEAR B IDEOGRAM VESSEL B206 -100E6 LINEAR B IDEOGRAM VESSEL B207 -100E7 LINEAR B IDEOGRAM VESSEL B208 -100E8 LINEAR B IDEOGRAM VESSEL B209 -100E9 LINEAR B IDEOGRAM VESSEL B210 -100EA LINEAR B IDEOGRAM VESSEL B211 -100EB LINEAR B IDEOGRAM VESSEL B212 -100EC LINEAR B IDEOGRAM VESSEL B213 -100ED LINEAR B IDEOGRAM VESSEL B214 -100EE LINEAR B IDEOGRAM VESSEL B215 -100EF LINEAR B IDEOGRAM VESSEL B216 -100F0 LINEAR B IDEOGRAM VESSEL B217 -100F1 LINEAR B IDEOGRAM VESSEL B218 -100F2 LINEAR B IDEOGRAM VESSEL B219 -100F3 LINEAR B IDEOGRAM VESSEL B221 -100F4 LINEAR B IDEOGRAM VESSEL B222 -100F5 LINEAR B IDEOGRAM VESSEL B226 -100F6 LINEAR B IDEOGRAM VESSEL B227 -100F7 LINEAR B IDEOGRAM VESSEL B228 -100F8 LINEAR B IDEOGRAM VESSEL B229 -100F9 LINEAR B IDEOGRAM VESSEL B250 -100FA LINEAR B IDEOGRAM VESSEL B305 -10100 AEGEAN WORD SEPARATOR LINE -10101 AEGEAN WORD SEPARATOR DOT -10102 AEGEAN CHECK MARK -10107 AEGEAN NUMBER ONE -10108 AEGEAN NUMBER TWO -10109 AEGEAN NUMBER THREE -1010A AEGEAN NUMBER FOUR -1010B AEGEAN NUMBER FIVE -1010C AEGEAN NUMBER SIX -1010D AEGEAN NUMBER SEVEN -1010E AEGEAN NUMBER EIGHT -1010F AEGEAN NUMBER NINE -10110 AEGEAN NUMBER TEN -10111 AEGEAN NUMBER TWENTY -10112 AEGEAN NUMBER THIRTY -10113 AEGEAN NUMBER FORTY -10114 AEGEAN NUMBER FIFTY -10115 AEGEAN NUMBER SIXTY -10116 AEGEAN NUMBER SEVENTY -10117 AEGEAN NUMBER EIGHTY -10118 AEGEAN NUMBER NINETY -10119 AEGEAN NUMBER ONE HUNDRED -1011A AEGEAN NUMBER TWO HUNDRED -1011B AEGEAN NUMBER THREE HUNDRED -1011C AEGEAN NUMBER FOUR HUNDRED -1011D AEGEAN NUMBER FIVE HUNDRED -1011E AEGEAN NUMBER SIX HUNDRED -1011F AEGEAN NUMBER SEVEN HUNDRED -10120 AEGEAN NUMBER EIGHT HUNDRED -10121 AEGEAN NUMBER NINE HUNDRED -10122 AEGEAN NUMBER ONE THOUSAND -10123 AEGEAN NUMBER TWO THOUSAND -10124 AEGEAN NUMBER THREE THOUSAND -10125 AEGEAN NUMBER FOUR THOUSAND -10126 AEGEAN NUMBER FIVE THOUSAND -10127 AEGEAN NUMBER SIX THOUSAND -10128 AEGEAN NUMBER SEVEN THOUSAND -10129 AEGEAN NUMBER EIGHT THOUSAND -1012A AEGEAN NUMBER NINE THOUSAND -1012B AEGEAN NUMBER TEN THOUSAND -1012C AEGEAN NUMBER TWENTY THOUSAND -1012D AEGEAN NUMBER THIRTY THOUSAND -1012E AEGEAN NUMBER FORTY THOUSAND -1012F AEGEAN NUMBER FIFTY THOUSAND -10130 AEGEAN NUMBER SIXTY THOUSAND -10131 AEGEAN NUMBER SEVENTY THOUSAND -10132 AEGEAN NUMBER EIGHTY THOUSAND -10133 AEGEAN NUMBER NINETY THOUSAND -10137 AEGEAN WEIGHT BASE UNIT -10138 AEGEAN WEIGHT FIRST SUBUNIT -10139 AEGEAN WEIGHT SECOND SUBUNIT -1013A AEGEAN WEIGHT THIRD SUBUNIT -1013B AEGEAN WEIGHT FOURTH SUBUNIT -1013C AEGEAN DRY MEASURE FIRST SUBUNIT -1013D AEGEAN LIQUID MEASURE FIRST SUBUNIT -1013E AEGEAN MEASURE SECOND SUBUNIT -1013F AEGEAN MEASURE THIRD SUBUNIT -10140 GREEK ACROPHONIC ATTIC ONE QUARTER -10141 GREEK ACROPHONIC ATTIC ONE HALF -10142 GREEK ACROPHONIC ATTIC ONE DRACHMA -10143 GREEK ACROPHONIC ATTIC FIVE -10144 GREEK ACROPHONIC ATTIC FIFTY -10145 GREEK ACROPHONIC ATTIC FIVE HUNDRED -10146 GREEK ACROPHONIC ATTIC FIVE THOUSAND -10147 GREEK ACROPHONIC ATTIC FIFTY THOUSAND -10148 GREEK ACROPHONIC ATTIC FIVE TALENTS -10149 GREEK ACROPHONIC ATTIC TEN TALENTS -1014A GREEK ACROPHONIC ATTIC FIFTY TALENTS -1014B GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS -1014C GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS -1014D GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS -1014E GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS -1014F GREEK ACROPHONIC ATTIC FIVE STATERS -10150 GREEK ACROPHONIC ATTIC TEN STATERS -10151 GREEK ACROPHONIC ATTIC FIFTY STATERS -10152 GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS -10153 GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS -10154 GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS -10155 GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS -10156 GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS -10157 GREEK ACROPHONIC ATTIC TEN MNAS -10158 GREEK ACROPHONIC HERAEUM ONE PLETHRON -10159 GREEK ACROPHONIC THESPIAN ONE -1015A GREEK ACROPHONIC HERMIONIAN ONE -1015B GREEK ACROPHONIC EPIDAUREAN TWO -1015C GREEK ACROPHONIC THESPIAN TWO -1015D GREEK ACROPHONIC CYRENAIC TWO DRACHMAS -1015E GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS -1015F GREEK ACROPHONIC TROEZENIAN FIVE -10160 GREEK ACROPHONIC TROEZENIAN TEN -10161 GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM -10162 GREEK ACROPHONIC HERMIONIAN TEN -10163 GREEK ACROPHONIC MESSENIAN TEN -10164 GREEK ACROPHONIC THESPIAN TEN -10165 GREEK ACROPHONIC THESPIAN THIRTY -10166 GREEK ACROPHONIC TROEZENIAN FIFTY -10167 GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM -10168 GREEK ACROPHONIC HERMIONIAN FIFTY -10169 GREEK ACROPHONIC THESPIAN FIFTY -1016A GREEK ACROPHONIC THESPIAN ONE HUNDRED -1016B GREEK ACROPHONIC THESPIAN THREE HUNDRED -1016C GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED -1016D GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED -1016E GREEK ACROPHONIC THESPIAN FIVE HUNDRED -1016F GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED -10170 GREEK ACROPHONIC NAXIAN FIVE HUNDRED -10171 GREEK ACROPHONIC THESPIAN ONE THOUSAND -10172 GREEK ACROPHONIC THESPIAN FIVE THOUSAND -10173 GREEK ACROPHONIC DELPHIC FIVE MNAS -10174 GREEK ACROPHONIC STRATIAN FIFTY MNAS -10175 GREEK ONE HALF SIGN -10176 GREEK ONE HALF SIGN ALTERNATE FORM -10177 GREEK TWO THIRDS SIGN -10178 GREEK THREE QUARTERS SIGN -10179 GREEK YEAR SIGN -1017A GREEK TALENT SIGN -1017B GREEK DRACHMA SIGN -1017C GREEK OBOL SIGN -1017D GREEK TWO OBOLS SIGN -1017E GREEK THREE OBOLS SIGN -1017F GREEK FOUR OBOLS SIGN -10180 GREEK FIVE OBOLS SIGN -10181 GREEK METRETES SIGN -10182 GREEK KYATHOS BASE SIGN -10183 GREEK LITRA SIGN -10184 GREEK OUNKIA SIGN -10185 GREEK XESTES SIGN -10186 GREEK ARTABE SIGN -10187 GREEK AROURA SIGN -10188 GREEK GRAMMA SIGN -10189 GREEK TRYBLION BASE SIGN -1018A GREEK ZERO SIGN -1018B GREEK ONE QUARTER SIGN -1018C GREEK SINUSOID SIGN -10190 ROMAN SEXTANS SIGN -10191 ROMAN UNCIA SIGN -10192 ROMAN SEMUNCIA SIGN -10193 ROMAN SEXTULA SIGN -10194 ROMAN DIMIDIA SEXTULA SIGN -10195 ROMAN SILIQUA SIGN -10196 ROMAN DENARIUS SIGN -10197 ROMAN QUINARIUS SIGN -10198 ROMAN SESTERTIUS SIGN -10199 ROMAN DUPONDIUS SIGN -1019A ROMAN AS SIGN -1019B ROMAN CENTURIAL SIGN -101A0 GREEK SYMBOL TAU RHO -101D0 PHAISTOS DISC SIGN PEDESTRIAN -101D1 PHAISTOS DISC SIGN PLUMED HEAD -101D2 PHAISTOS DISC SIGN TATTOOED HEAD -101D3 PHAISTOS DISC SIGN CAPTIVE -101D4 PHAISTOS DISC SIGN CHILD -101D5 PHAISTOS DISC SIGN WOMAN -101D6 PHAISTOS DISC SIGN HELMET -101D7 PHAISTOS DISC SIGN GAUNTLET -101D8 PHAISTOS DISC SIGN TIARA -101D9 PHAISTOS DISC SIGN ARROW -101DA PHAISTOS DISC SIGN BOW -101DB PHAISTOS DISC SIGN SHIELD -101DC PHAISTOS DISC SIGN CLUB -101DD PHAISTOS DISC SIGN MANACLES -101DE PHAISTOS DISC SIGN MATTOCK -101DF PHAISTOS DISC SIGN SAW -101E0 PHAISTOS DISC SIGN LID -101E1 PHAISTOS DISC SIGN BOOMERANG -101E2 PHAISTOS DISC SIGN CARPENTRY PLANE -101E3 PHAISTOS DISC SIGN DOLIUM -101E4 PHAISTOS DISC SIGN COMB -101E5 PHAISTOS DISC SIGN SLING -101E6 PHAISTOS DISC SIGN COLUMN -101E7 PHAISTOS DISC SIGN BEEHIVE -101E8 PHAISTOS DISC SIGN SHIP -101E9 PHAISTOS DISC SIGN HORN -101EA PHAISTOS DISC SIGN HIDE -101EB PHAISTOS DISC SIGN BULLS LEG -101EC PHAISTOS DISC SIGN CAT -101ED PHAISTOS DISC SIGN RAM -101EE PHAISTOS DISC SIGN EAGLE -101EF PHAISTOS DISC SIGN DOVE -101F0 PHAISTOS DISC SIGN TUNNY -101F1 PHAISTOS DISC SIGN BEE -101F2 PHAISTOS DISC SIGN PLANE TREE -101F3 PHAISTOS DISC SIGN VINE -101F4 PHAISTOS DISC SIGN PAPYRUS -101F5 PHAISTOS DISC SIGN ROSETTE -101F6 PHAISTOS DISC SIGN LILY -101F7 PHAISTOS DISC SIGN OX BACK -101F8 PHAISTOS DISC SIGN FLUTE -101F9 PHAISTOS DISC SIGN GRATER -101FA PHAISTOS DISC SIGN STRAINER -101FB PHAISTOS DISC SIGN SMALL AXE -101FC PHAISTOS DISC SIGN WAVY BAND -101FD PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE -10280 LYCIAN LETTER A -10281 LYCIAN LETTER E -10282 LYCIAN LETTER B -10283 LYCIAN LETTER BH -10284 LYCIAN LETTER G -10285 LYCIAN LETTER D -10286 LYCIAN LETTER I -10287 LYCIAN LETTER W -10288 LYCIAN LETTER Z -10289 LYCIAN LETTER TH -1028A LYCIAN LETTER J -1028B LYCIAN LETTER K -1028C LYCIAN LETTER Q -1028D LYCIAN LETTER L -1028E LYCIAN LETTER M -1028F LYCIAN LETTER N -10290 LYCIAN LETTER MM -10291 LYCIAN LETTER NN -10292 LYCIAN LETTER U -10293 LYCIAN LETTER P -10294 LYCIAN LETTER KK -10295 LYCIAN LETTER R -10296 LYCIAN LETTER S -10297 LYCIAN LETTER T -10298 LYCIAN LETTER TT -10299 LYCIAN LETTER AN -1029A LYCIAN LETTER EN -1029B LYCIAN LETTER H -1029C LYCIAN LETTER X -102A0 CARIAN LETTER A -102A1 CARIAN LETTER P2 -102A2 CARIAN LETTER D -102A3 CARIAN LETTER L -102A4 CARIAN LETTER UUU -102A5 CARIAN LETTER R -102A6 CARIAN LETTER LD -102A7 CARIAN LETTER A2 -102A8 CARIAN LETTER Q -102A9 CARIAN LETTER B -102AA CARIAN LETTER M -102AB CARIAN LETTER O -102AC CARIAN LETTER D2 -102AD CARIAN LETTER T -102AE CARIAN LETTER SH -102AF CARIAN LETTER SH2 -102B0 CARIAN LETTER S -102B1 CARIAN LETTER C-18 -102B2 CARIAN LETTER U -102B3 CARIAN LETTER NN -102B4 CARIAN LETTER X -102B5 CARIAN LETTER N -102B6 CARIAN LETTER TT2 -102B7 CARIAN LETTER P -102B8 CARIAN LETTER SS -102B9 CARIAN LETTER I -102BA CARIAN LETTER E -102BB CARIAN LETTER UUUU -102BC CARIAN LETTER K -102BD CARIAN LETTER K2 -102BE CARIAN LETTER ND -102BF CARIAN LETTER UU -102C0 CARIAN LETTER G -102C1 CARIAN LETTER G2 -102C2 CARIAN LETTER ST -102C3 CARIAN LETTER ST2 -102C4 CARIAN LETTER NG -102C5 CARIAN LETTER II -102C6 CARIAN LETTER C-39 -102C7 CARIAN LETTER TT -102C8 CARIAN LETTER UUU2 -102C9 CARIAN LETTER RR -102CA CARIAN LETTER MB -102CB CARIAN LETTER MB2 -102CC CARIAN LETTER MB3 -102CD CARIAN LETTER MB4 -102CE CARIAN LETTER LD2 -102CF CARIAN LETTER E2 -102D0 CARIAN LETTER UUU3 -102E0 COPTIC EPACT THOUSANDS MARK -102E1 COPTIC EPACT DIGIT ONE -102E2 COPTIC EPACT DIGIT TWO -102E3 COPTIC EPACT DIGIT THREE -102E4 COPTIC EPACT DIGIT FOUR -102E5 COPTIC EPACT DIGIT FIVE -102E6 COPTIC EPACT DIGIT SIX -102E7 COPTIC EPACT DIGIT SEVEN -102E8 COPTIC EPACT DIGIT EIGHT -102E9 COPTIC EPACT DIGIT NINE -102EA COPTIC EPACT NUMBER TEN -102EB COPTIC EPACT NUMBER TWENTY -102EC COPTIC EPACT NUMBER THIRTY -102ED COPTIC EPACT NUMBER FORTY -102EE COPTIC EPACT NUMBER FIFTY -102EF COPTIC EPACT NUMBER SIXTY -102F0 COPTIC EPACT NUMBER SEVENTY -102F1 COPTIC EPACT NUMBER EIGHTY -102F2 COPTIC EPACT NUMBER NINETY -102F3 COPTIC EPACT NUMBER ONE HUNDRED -102F4 COPTIC EPACT NUMBER TWO HUNDRED -102F5 COPTIC EPACT NUMBER THREE HUNDRED -102F6 COPTIC EPACT NUMBER FOUR HUNDRED -102F7 COPTIC EPACT NUMBER FIVE HUNDRED -102F8 COPTIC EPACT NUMBER SIX HUNDRED -102F9 COPTIC EPACT NUMBER SEVEN HUNDRED -102FA COPTIC EPACT NUMBER EIGHT HUNDRED -102FB COPTIC EPACT NUMBER NINE HUNDRED -10300 OLD ITALIC LETTER A -10301 OLD ITALIC LETTER BE -10302 OLD ITALIC LETTER KE -10303 OLD ITALIC LETTER DE -10304 OLD ITALIC LETTER E -10305 OLD ITALIC LETTER VE -10306 OLD ITALIC LETTER ZE -10307 OLD ITALIC LETTER HE -10308 OLD ITALIC LETTER THE -10309 OLD ITALIC LETTER I -1030A OLD ITALIC LETTER KA -1030B OLD ITALIC LETTER EL -1030C OLD ITALIC LETTER EM -1030D OLD ITALIC LETTER EN -1030E OLD ITALIC LETTER ESH -1030F OLD ITALIC LETTER O -10310 OLD ITALIC LETTER PE -10311 OLD ITALIC LETTER SHE -10312 OLD ITALIC LETTER KU -10313 OLD ITALIC LETTER ER -10314 OLD ITALIC LETTER ES -10315 OLD ITALIC LETTER TE -10316 OLD ITALIC LETTER U -10317 OLD ITALIC LETTER EKS -10318 OLD ITALIC LETTER PHE -10319 OLD ITALIC LETTER KHE -1031A OLD ITALIC LETTER EF -1031B OLD ITALIC LETTER ERS -1031C OLD ITALIC LETTER CHE -1031D OLD ITALIC LETTER II -1031E OLD ITALIC LETTER UU -1031F OLD ITALIC LETTER ESS -10320 OLD ITALIC NUMERAL ONE -10321 OLD ITALIC NUMERAL FIVE -10322 OLD ITALIC NUMERAL TEN -10323 OLD ITALIC NUMERAL FIFTY -10330 GOTHIC LETTER AHSA -10331 GOTHIC LETTER BAIRKAN -10332 GOTHIC LETTER GIBA -10333 GOTHIC LETTER DAGS -10334 GOTHIC LETTER AIHVUS -10335 GOTHIC LETTER QAIRTHRA -10336 GOTHIC LETTER IUJA -10337 GOTHIC LETTER HAGL -10338 GOTHIC LETTER THIUTH -10339 GOTHIC LETTER EIS -1033A GOTHIC LETTER KUSMA -1033B GOTHIC LETTER LAGUS -1033C GOTHIC LETTER MANNA -1033D GOTHIC LETTER NAUTHS -1033E GOTHIC LETTER JER -1033F GOTHIC LETTER URUS -10340 GOTHIC LETTER PAIRTHRA -10341 GOTHIC LETTER NINETY -10342 GOTHIC LETTER RAIDA -10343 GOTHIC LETTER SAUIL -10344 GOTHIC LETTER TEIWS -10345 GOTHIC LETTER WINJA -10346 GOTHIC LETTER FAIHU -10347 GOTHIC LETTER IGGWS -10348 GOTHIC LETTER HWAIR -10349 GOTHIC LETTER OTHAL -1034A GOTHIC LETTER NINE HUNDRED -10350 OLD PERMIC LETTER AN -10351 OLD PERMIC LETTER BUR -10352 OLD PERMIC LETTER GAI -10353 OLD PERMIC LETTER DOI -10354 OLD PERMIC LETTER E -10355 OLD PERMIC LETTER ZHOI -10356 OLD PERMIC LETTER DZHOI -10357 OLD PERMIC LETTER ZATA -10358 OLD PERMIC LETTER DZITA -10359 OLD PERMIC LETTER I -1035A OLD PERMIC LETTER KOKE -1035B OLD PERMIC LETTER LEI -1035C OLD PERMIC LETTER MENOE -1035D OLD PERMIC LETTER NENOE -1035E OLD PERMIC LETTER VOOI -1035F OLD PERMIC LETTER PEEI -10360 OLD PERMIC LETTER REI -10361 OLD PERMIC LETTER SII -10362 OLD PERMIC LETTER TAI -10363 OLD PERMIC LETTER U -10364 OLD PERMIC LETTER CHERY -10365 OLD PERMIC LETTER SHOOI -10366 OLD PERMIC LETTER SHCHOOI -10367 OLD PERMIC LETTER YRY -10368 OLD PERMIC LETTER YERU -10369 OLD PERMIC LETTER O -1036A OLD PERMIC LETTER OO -1036B OLD PERMIC LETTER EF -1036C OLD PERMIC LETTER HA -1036D OLD PERMIC LETTER TSIU -1036E OLD PERMIC LETTER VER -1036F OLD PERMIC LETTER YER -10370 OLD PERMIC LETTER YERI -10371 OLD PERMIC LETTER YAT -10372 OLD PERMIC LETTER IE -10373 OLD PERMIC LETTER YU -10374 OLD PERMIC LETTER YA -10375 OLD PERMIC LETTER IA -10376 COMBINING OLD PERMIC LETTER AN -10377 COMBINING OLD PERMIC LETTER DOI -10378 COMBINING OLD PERMIC LETTER ZATA -10379 COMBINING OLD PERMIC LETTER NENOE -1037A COMBINING OLD PERMIC LETTER SII -10380 UGARITIC LETTER ALPA -10381 UGARITIC LETTER BETA -10382 UGARITIC LETTER GAMLA -10383 UGARITIC LETTER KHA -10384 UGARITIC LETTER DELTA -10385 UGARITIC LETTER HO -10386 UGARITIC LETTER WO -10387 UGARITIC LETTER ZETA -10388 UGARITIC LETTER HOTA -10389 UGARITIC LETTER TET -1038A UGARITIC LETTER YOD -1038B UGARITIC LETTER KAF -1038C UGARITIC LETTER SHIN -1038D UGARITIC LETTER LAMDA -1038E UGARITIC LETTER MEM -1038F UGARITIC LETTER DHAL -10390 UGARITIC LETTER NUN -10391 UGARITIC LETTER ZU -10392 UGARITIC LETTER SAMKA -10393 UGARITIC LETTER AIN -10394 UGARITIC LETTER PU -10395 UGARITIC LETTER SADE -10396 UGARITIC LETTER QOPA -10397 UGARITIC LETTER RASHA -10398 UGARITIC LETTER THANNA -10399 UGARITIC LETTER GHAIN -1039A UGARITIC LETTER TO -1039B UGARITIC LETTER I -1039C UGARITIC LETTER U -1039D UGARITIC LETTER SSU -1039F UGARITIC WORD DIVIDER -103A0 OLD PERSIAN SIGN A -103A1 OLD PERSIAN SIGN I -103A2 OLD PERSIAN SIGN U -103A3 OLD PERSIAN SIGN KA -103A4 OLD PERSIAN SIGN KU -103A5 OLD PERSIAN SIGN GA -103A6 OLD PERSIAN SIGN GU -103A7 OLD PERSIAN SIGN XA -103A8 OLD PERSIAN SIGN CA -103A9 OLD PERSIAN SIGN JA -103AA OLD PERSIAN SIGN JI -103AB OLD PERSIAN SIGN TA -103AC OLD PERSIAN SIGN TU -103AD OLD PERSIAN SIGN DA -103AE OLD PERSIAN SIGN DI -103AF OLD PERSIAN SIGN DU -103B0 OLD PERSIAN SIGN THA -103B1 OLD PERSIAN SIGN PA -103B2 OLD PERSIAN SIGN BA -103B3 OLD PERSIAN SIGN FA -103B4 OLD PERSIAN SIGN NA -103B5 OLD PERSIAN SIGN NU -103B6 OLD PERSIAN SIGN MA -103B7 OLD PERSIAN SIGN MI -103B8 OLD PERSIAN SIGN MU -103B9 OLD PERSIAN SIGN YA -103BA OLD PERSIAN SIGN VA -103BB OLD PERSIAN SIGN VI -103BC OLD PERSIAN SIGN RA -103BD OLD PERSIAN SIGN RU -103BE OLD PERSIAN SIGN LA -103BF OLD PERSIAN SIGN SA -103C0 OLD PERSIAN SIGN ZA -103C1 OLD PERSIAN SIGN SHA -103C2 OLD PERSIAN SIGN SSA -103C3 OLD PERSIAN SIGN HA -103C8 OLD PERSIAN SIGN AURAMAZDAA -103C9 OLD PERSIAN SIGN AURAMAZDAA-2 -103CA OLD PERSIAN SIGN AURAMAZDAAHA -103CB OLD PERSIAN SIGN XSHAAYATHIYA -103CC OLD PERSIAN SIGN DAHYAAUSH -103CD OLD PERSIAN SIGN DAHYAAUSH-2 -103CE OLD PERSIAN SIGN BAGA -103CF OLD PERSIAN SIGN BUUMISH -103D0 OLD PERSIAN WORD DIVIDER -103D1 OLD PERSIAN NUMBER ONE -103D2 OLD PERSIAN NUMBER TWO -103D3 OLD PERSIAN NUMBER TEN -103D4 OLD PERSIAN NUMBER TWENTY -103D5 OLD PERSIAN NUMBER HUNDRED -10400 DESERET CAPITAL LETTER LONG I -10401 DESERET CAPITAL LETTER LONG E -10402 DESERET CAPITAL LETTER LONG A -10403 DESERET CAPITAL LETTER LONG AH -10404 DESERET CAPITAL LETTER LONG O -10405 DESERET CAPITAL LETTER LONG OO -10406 DESERET CAPITAL LETTER SHORT I -10407 DESERET CAPITAL LETTER SHORT E -10408 DESERET CAPITAL LETTER SHORT A -10409 DESERET CAPITAL LETTER SHORT AH -1040A DESERET CAPITAL LETTER SHORT O -1040B DESERET CAPITAL LETTER SHORT OO -1040C DESERET CAPITAL LETTER AY -1040D DESERET CAPITAL LETTER OW -1040E DESERET CAPITAL LETTER WU -1040F DESERET CAPITAL LETTER YEE -10410 DESERET CAPITAL LETTER H -10411 DESERET CAPITAL LETTER PEE -10412 DESERET CAPITAL LETTER BEE -10413 DESERET CAPITAL LETTER TEE -10414 DESERET CAPITAL LETTER DEE -10415 DESERET CAPITAL LETTER CHEE -10416 DESERET CAPITAL LETTER JEE -10417 DESERET CAPITAL LETTER KAY -10418 DESERET CAPITAL LETTER GAY -10419 DESERET CAPITAL LETTER EF -1041A DESERET CAPITAL LETTER VEE -1041B DESERET CAPITAL LETTER ETH -1041C DESERET CAPITAL LETTER THEE -1041D DESERET CAPITAL LETTER ES -1041E DESERET CAPITAL LETTER ZEE -1041F DESERET CAPITAL LETTER ESH -10420 DESERET CAPITAL LETTER ZHEE -10421 DESERET CAPITAL LETTER ER -10422 DESERET CAPITAL LETTER EL -10423 DESERET CAPITAL LETTER EM -10424 DESERET CAPITAL LETTER EN -10425 DESERET CAPITAL LETTER ENG -10426 DESERET CAPITAL LETTER OI -10427 DESERET CAPITAL LETTER EW -10428 DESERET SMALL LETTER LONG I -10429 DESERET SMALL LETTER LONG E -1042A DESERET SMALL LETTER LONG A -1042B DESERET SMALL LETTER LONG AH -1042C DESERET SMALL LETTER LONG O -1042D DESERET SMALL LETTER LONG OO -1042E DESERET SMALL LETTER SHORT I -1042F DESERET SMALL LETTER SHORT E -10430 DESERET SMALL LETTER SHORT A -10431 DESERET SMALL LETTER SHORT AH -10432 DESERET SMALL LETTER SHORT O -10433 DESERET SMALL LETTER SHORT OO -10434 DESERET SMALL LETTER AY -10435 DESERET SMALL LETTER OW -10436 DESERET SMALL LETTER WU -10437 DESERET SMALL LETTER YEE -10438 DESERET SMALL LETTER H -10439 DESERET SMALL LETTER PEE -1043A DESERET SMALL LETTER BEE -1043B DESERET SMALL LETTER TEE -1043C DESERET SMALL LETTER DEE -1043D DESERET SMALL LETTER CHEE -1043E DESERET SMALL LETTER JEE -1043F DESERET SMALL LETTER KAY -10440 DESERET SMALL LETTER GAY -10441 DESERET SMALL LETTER EF -10442 DESERET SMALL LETTER VEE -10443 DESERET SMALL LETTER ETH -10444 DESERET SMALL LETTER THEE -10445 DESERET SMALL LETTER ES -10446 DESERET SMALL LETTER ZEE -10447 DESERET SMALL LETTER ESH -10448 DESERET SMALL LETTER ZHEE -10449 DESERET SMALL LETTER ER -1044A DESERET SMALL LETTER EL -1044B DESERET SMALL LETTER EM -1044C DESERET SMALL LETTER EN -1044D DESERET SMALL LETTER ENG -1044E DESERET SMALL LETTER OI -1044F DESERET SMALL LETTER EW -10450 SHAVIAN LETTER PEEP -10451 SHAVIAN LETTER TOT -10452 SHAVIAN LETTER KICK -10453 SHAVIAN LETTER FEE -10454 SHAVIAN LETTER THIGH -10455 SHAVIAN LETTER SO -10456 SHAVIAN LETTER SURE -10457 SHAVIAN LETTER CHURCH -10458 SHAVIAN LETTER YEA -10459 SHAVIAN LETTER HUNG -1045A SHAVIAN LETTER BIB -1045B SHAVIAN LETTER DEAD -1045C SHAVIAN LETTER GAG -1045D SHAVIAN LETTER VOW -1045E SHAVIAN LETTER THEY -1045F SHAVIAN LETTER ZOO -10460 SHAVIAN LETTER MEASURE -10461 SHAVIAN LETTER JUDGE -10462 SHAVIAN LETTER WOE -10463 SHAVIAN LETTER HA-HA -10464 SHAVIAN LETTER LOLL -10465 SHAVIAN LETTER MIME -10466 SHAVIAN LETTER IF -10467 SHAVIAN LETTER EGG -10468 SHAVIAN LETTER ASH -10469 SHAVIAN LETTER ADO -1046A SHAVIAN LETTER ON -1046B SHAVIAN LETTER WOOL -1046C SHAVIAN LETTER OUT -1046D SHAVIAN LETTER AH -1046E SHAVIAN LETTER ROAR -1046F SHAVIAN LETTER NUN -10470 SHAVIAN LETTER EAT -10471 SHAVIAN LETTER AGE -10472 SHAVIAN LETTER ICE -10473 SHAVIAN LETTER UP -10474 SHAVIAN LETTER OAK -10475 SHAVIAN LETTER OOZE -10476 SHAVIAN LETTER OIL -10477 SHAVIAN LETTER AWE -10478 SHAVIAN LETTER ARE -10479 SHAVIAN LETTER OR -1047A SHAVIAN LETTER AIR -1047B SHAVIAN LETTER ERR -1047C SHAVIAN LETTER ARRAY -1047D SHAVIAN LETTER EAR -1047E SHAVIAN LETTER IAN -1047F SHAVIAN LETTER YEW -10480 OSMANYA LETTER ALEF -10481 OSMANYA LETTER BA -10482 OSMANYA LETTER TA -10483 OSMANYA LETTER JA -10484 OSMANYA LETTER XA -10485 OSMANYA LETTER KHA -10486 OSMANYA LETTER DEEL -10487 OSMANYA LETTER RA -10488 OSMANYA LETTER SA -10489 OSMANYA LETTER SHIIN -1048A OSMANYA LETTER DHA -1048B OSMANYA LETTER CAYN -1048C OSMANYA LETTER GA -1048D OSMANYA LETTER FA -1048E OSMANYA LETTER QAAF -1048F OSMANYA LETTER KAAF -10490 OSMANYA LETTER LAAN -10491 OSMANYA LETTER MIIN -10492 OSMANYA LETTER NUUN -10493 OSMANYA LETTER WAW -10494 OSMANYA LETTER HA -10495 OSMANYA LETTER YA -10496 OSMANYA LETTER A -10497 OSMANYA LETTER E -10498 OSMANYA LETTER I -10499 OSMANYA LETTER O -1049A OSMANYA LETTER U -1049B OSMANYA LETTER AA -1049C OSMANYA LETTER EE -1049D OSMANYA LETTER OO -104A0 OSMANYA DIGIT ZERO -104A1 OSMANYA DIGIT ONE -104A2 OSMANYA DIGIT TWO -104A3 OSMANYA DIGIT THREE -104A4 OSMANYA DIGIT FOUR -104A5 OSMANYA DIGIT FIVE -104A6 OSMANYA DIGIT SIX -104A7 OSMANYA DIGIT SEVEN -104A8 OSMANYA DIGIT EIGHT -104A9 OSMANYA DIGIT NINE -10500 ELBASAN LETTER A -10501 ELBASAN LETTER BE -10502 ELBASAN LETTER CE -10503 ELBASAN LETTER CHE -10504 ELBASAN LETTER DE -10505 ELBASAN LETTER NDE -10506 ELBASAN LETTER DHE -10507 ELBASAN LETTER EI -10508 ELBASAN LETTER E -10509 ELBASAN LETTER FE -1050A ELBASAN LETTER GE -1050B ELBASAN LETTER GJE -1050C ELBASAN LETTER HE -1050D ELBASAN LETTER I -1050E ELBASAN LETTER JE -1050F ELBASAN LETTER KE -10510 ELBASAN LETTER LE -10511 ELBASAN LETTER LLE -10512 ELBASAN LETTER ME -10513 ELBASAN LETTER NE -10514 ELBASAN LETTER NA -10515 ELBASAN LETTER NJE -10516 ELBASAN LETTER O -10517 ELBASAN LETTER PE -10518 ELBASAN LETTER QE -10519 ELBASAN LETTER RE -1051A ELBASAN LETTER RRE -1051B ELBASAN LETTER SE -1051C ELBASAN LETTER SHE -1051D ELBASAN LETTER TE -1051E ELBASAN LETTER THE -1051F ELBASAN LETTER U -10520 ELBASAN LETTER VE -10521 ELBASAN LETTER XE -10522 ELBASAN LETTER Y -10523 ELBASAN LETTER ZE -10524 ELBASAN LETTER ZHE -10525 ELBASAN LETTER GHE -10526 ELBASAN LETTER GHAMMA -10527 ELBASAN LETTER KHE -10530 CAUCASIAN ALBANIAN LETTER ALT -10531 CAUCASIAN ALBANIAN LETTER BET -10532 CAUCASIAN ALBANIAN LETTER GIM -10533 CAUCASIAN ALBANIAN LETTER DAT -10534 CAUCASIAN ALBANIAN LETTER EB -10535 CAUCASIAN ALBANIAN LETTER ZARL -10536 CAUCASIAN ALBANIAN LETTER EYN -10537 CAUCASIAN ALBANIAN LETTER ZHIL -10538 CAUCASIAN ALBANIAN LETTER TAS -10539 CAUCASIAN ALBANIAN LETTER CHA -1053A CAUCASIAN ALBANIAN LETTER YOWD -1053B CAUCASIAN ALBANIAN LETTER ZHA -1053C CAUCASIAN ALBANIAN LETTER IRB -1053D CAUCASIAN ALBANIAN LETTER SHA -1053E CAUCASIAN ALBANIAN LETTER LAN -1053F CAUCASIAN ALBANIAN LETTER INYA -10540 CAUCASIAN ALBANIAN LETTER XEYN -10541 CAUCASIAN ALBANIAN LETTER DYAN -10542 CAUCASIAN ALBANIAN LETTER CAR -10543 CAUCASIAN ALBANIAN LETTER JHOX -10544 CAUCASIAN ALBANIAN LETTER KAR -10545 CAUCASIAN ALBANIAN LETTER LYIT -10546 CAUCASIAN ALBANIAN LETTER HEYT -10547 CAUCASIAN ALBANIAN LETTER QAY -10548 CAUCASIAN ALBANIAN LETTER AOR -10549 CAUCASIAN ALBANIAN LETTER CHOY -1054A CAUCASIAN ALBANIAN LETTER CHI -1054B CAUCASIAN ALBANIAN LETTER CYAY -1054C CAUCASIAN ALBANIAN LETTER MAQ -1054D CAUCASIAN ALBANIAN LETTER QAR -1054E CAUCASIAN ALBANIAN LETTER NOWC -1054F CAUCASIAN ALBANIAN LETTER DZYAY -10550 CAUCASIAN ALBANIAN LETTER SHAK -10551 CAUCASIAN ALBANIAN LETTER JAYN -10552 CAUCASIAN ALBANIAN LETTER ON -10553 CAUCASIAN ALBANIAN LETTER TYAY -10554 CAUCASIAN ALBANIAN LETTER FAM -10555 CAUCASIAN ALBANIAN LETTER DZAY -10556 CAUCASIAN ALBANIAN LETTER CHAT -10557 CAUCASIAN ALBANIAN LETTER PEN -10558 CAUCASIAN ALBANIAN LETTER GHEYS -10559 CAUCASIAN ALBANIAN LETTER RAT -1055A CAUCASIAN ALBANIAN LETTER SEYK -1055B CAUCASIAN ALBANIAN LETTER VEYZ -1055C CAUCASIAN ALBANIAN LETTER TIWR -1055D CAUCASIAN ALBANIAN LETTER SHOY -1055E CAUCASIAN ALBANIAN LETTER IWN -1055F CAUCASIAN ALBANIAN LETTER CYAW -10560 CAUCASIAN ALBANIAN LETTER CAYN -10561 CAUCASIAN ALBANIAN LETTER YAYD -10562 CAUCASIAN ALBANIAN LETTER PIWR -10563 CAUCASIAN ALBANIAN LETTER KIW -1056F CAUCASIAN ALBANIAN CITATION MARK -10600 LINEAR A SIGN AB001 -10601 LINEAR A SIGN AB002 -10602 LINEAR A SIGN AB003 -10603 LINEAR A SIGN AB004 -10604 LINEAR A SIGN AB005 -10605 LINEAR A SIGN AB006 -10606 LINEAR A SIGN AB007 -10607 LINEAR A SIGN AB008 -10608 LINEAR A SIGN AB009 -10609 LINEAR A SIGN AB010 -1060A LINEAR A SIGN AB011 -1060B LINEAR A SIGN AB013 -1060C LINEAR A SIGN AB016 -1060D LINEAR A SIGN AB017 -1060E LINEAR A SIGN AB020 -1060F LINEAR A SIGN AB021 -10610 LINEAR A SIGN AB021F -10611 LINEAR A SIGN AB021M -10612 LINEAR A SIGN AB022 -10613 LINEAR A SIGN AB022F -10614 LINEAR A SIGN AB022M -10615 LINEAR A SIGN AB023 -10616 LINEAR A SIGN AB023M -10617 LINEAR A SIGN AB024 -10618 LINEAR A SIGN AB026 -10619 LINEAR A SIGN AB027 -1061A LINEAR A SIGN AB028 -1061B LINEAR A SIGN A028B -1061C LINEAR A SIGN AB029 -1061D LINEAR A SIGN AB030 -1061E LINEAR A SIGN AB031 -1061F LINEAR A SIGN AB034 -10620 LINEAR A SIGN AB037 -10621 LINEAR A SIGN AB038 -10622 LINEAR A SIGN AB039 -10623 LINEAR A SIGN AB040 -10624 LINEAR A SIGN AB041 -10625 LINEAR A SIGN AB044 -10626 LINEAR A SIGN AB045 -10627 LINEAR A SIGN AB046 -10628 LINEAR A SIGN AB047 -10629 LINEAR A SIGN AB048 -1062A LINEAR A SIGN AB049 -1062B LINEAR A SIGN AB050 -1062C LINEAR A SIGN AB051 -1062D LINEAR A SIGN AB053 -1062E LINEAR A SIGN AB054 -1062F LINEAR A SIGN AB055 -10630 LINEAR A SIGN AB056 -10631 LINEAR A SIGN AB057 -10632 LINEAR A SIGN AB058 -10633 LINEAR A SIGN AB059 -10634 LINEAR A SIGN AB060 -10635 LINEAR A SIGN AB061 -10636 LINEAR A SIGN AB065 -10637 LINEAR A SIGN AB066 -10638 LINEAR A SIGN AB067 -10639 LINEAR A SIGN AB069 -1063A LINEAR A SIGN AB070 -1063B LINEAR A SIGN AB073 -1063C LINEAR A SIGN AB074 -1063D LINEAR A SIGN AB076 -1063E LINEAR A SIGN AB077 -1063F LINEAR A SIGN AB078 -10640 LINEAR A SIGN AB079 -10641 LINEAR A SIGN AB080 -10642 LINEAR A SIGN AB081 -10643 LINEAR A SIGN AB082 -10644 LINEAR A SIGN AB085 -10645 LINEAR A SIGN AB086 -10646 LINEAR A SIGN AB087 -10647 LINEAR A SIGN A100-102 -10648 LINEAR A SIGN AB118 -10649 LINEAR A SIGN AB120 -1064A LINEAR A SIGN A120B -1064B LINEAR A SIGN AB122 -1064C LINEAR A SIGN AB123 -1064D LINEAR A SIGN AB131A -1064E LINEAR A SIGN AB131B -1064F LINEAR A SIGN A131C -10650 LINEAR A SIGN AB164 -10651 LINEAR A SIGN AB171 -10652 LINEAR A SIGN AB180 -10653 LINEAR A SIGN AB188 -10654 LINEAR A SIGN AB191 -10655 LINEAR A SIGN A301 -10656 LINEAR A SIGN A302 -10657 LINEAR A SIGN A303 -10658 LINEAR A SIGN A304 -10659 LINEAR A SIGN A305 -1065A LINEAR A SIGN A306 -1065B LINEAR A SIGN A307 -1065C LINEAR A SIGN A308 -1065D LINEAR A SIGN A309A -1065E LINEAR A SIGN A309B -1065F LINEAR A SIGN A309C -10660 LINEAR A SIGN A310 -10661 LINEAR A SIGN A311 -10662 LINEAR A SIGN A312 -10663 LINEAR A SIGN A313A -10664 LINEAR A SIGN A313B -10665 LINEAR A SIGN A313C -10666 LINEAR A SIGN A314 -10667 LINEAR A SIGN A315 -10668 LINEAR A SIGN A316 -10669 LINEAR A SIGN A317 -1066A LINEAR A SIGN A318 -1066B LINEAR A SIGN A319 -1066C LINEAR A SIGN A320 -1066D LINEAR A SIGN A321 -1066E LINEAR A SIGN A322 -1066F LINEAR A SIGN A323 -10670 LINEAR A SIGN A324 -10671 LINEAR A SIGN A325 -10672 LINEAR A SIGN A326 -10673 LINEAR A SIGN A327 -10674 LINEAR A SIGN A328 -10675 LINEAR A SIGN A329 -10676 LINEAR A SIGN A330 -10677 LINEAR A SIGN A331 -10678 LINEAR A SIGN A332 -10679 LINEAR A SIGN A333 -1067A LINEAR A SIGN A334 -1067B LINEAR A SIGN A335 -1067C LINEAR A SIGN A336 -1067D LINEAR A SIGN A337 -1067E LINEAR A SIGN A338 -1067F LINEAR A SIGN A339 -10680 LINEAR A SIGN A340 -10681 LINEAR A SIGN A341 -10682 LINEAR A SIGN A342 -10683 LINEAR A SIGN A343 -10684 LINEAR A SIGN A344 -10685 LINEAR A SIGN A345 -10686 LINEAR A SIGN A346 -10687 LINEAR A SIGN A347 -10688 LINEAR A SIGN A348 -10689 LINEAR A SIGN A349 -1068A LINEAR A SIGN A350 -1068B LINEAR A SIGN A351 -1068C LINEAR A SIGN A352 -1068D LINEAR A SIGN A353 -1068E LINEAR A SIGN A354 -1068F LINEAR A SIGN A355 -10690 LINEAR A SIGN A356 -10691 LINEAR A SIGN A357 -10692 LINEAR A SIGN A358 -10693 LINEAR A SIGN A359 -10694 LINEAR A SIGN A360 -10695 LINEAR A SIGN A361 -10696 LINEAR A SIGN A362 -10697 LINEAR A SIGN A363 -10698 LINEAR A SIGN A364 -10699 LINEAR A SIGN A365 -1069A LINEAR A SIGN A366 -1069B LINEAR A SIGN A367 -1069C LINEAR A SIGN A368 -1069D LINEAR A SIGN A369 -1069E LINEAR A SIGN A370 -1069F LINEAR A SIGN A371 -106A0 LINEAR A SIGN A400-VAS -106A1 LINEAR A SIGN A401-VAS -106A2 LINEAR A SIGN A402-VAS -106A3 LINEAR A SIGN A403-VAS -106A4 LINEAR A SIGN A404-VAS -106A5 LINEAR A SIGN A405-VAS -106A6 LINEAR A SIGN A406-VAS -106A7 LINEAR A SIGN A407-VAS -106A8 LINEAR A SIGN A408-VAS -106A9 LINEAR A SIGN A409-VAS -106AA LINEAR A SIGN A410-VAS -106AB LINEAR A SIGN A411-VAS -106AC LINEAR A SIGN A412-VAS -106AD LINEAR A SIGN A413-VAS -106AE LINEAR A SIGN A414-VAS -106AF LINEAR A SIGN A415-VAS -106B0 LINEAR A SIGN A416-VAS -106B1 LINEAR A SIGN A417-VAS -106B2 LINEAR A SIGN A418-VAS -106B3 LINEAR A SIGN A501 -106B4 LINEAR A SIGN A502 -106B5 LINEAR A SIGN A503 -106B6 LINEAR A SIGN A504 -106B7 LINEAR A SIGN A505 -106B8 LINEAR A SIGN A506 -106B9 LINEAR A SIGN A508 -106BA LINEAR A SIGN A509 -106BB LINEAR A SIGN A510 -106BC LINEAR A SIGN A511 -106BD LINEAR A SIGN A512 -106BE LINEAR A SIGN A513 -106BF LINEAR A SIGN A515 -106C0 LINEAR A SIGN A516 -106C1 LINEAR A SIGN A520 -106C2 LINEAR A SIGN A521 -106C3 LINEAR A SIGN A523 -106C4 LINEAR A SIGN A524 -106C5 LINEAR A SIGN A525 -106C6 LINEAR A SIGN A526 -106C7 LINEAR A SIGN A527 -106C8 LINEAR A SIGN A528 -106C9 LINEAR A SIGN A529 -106CA LINEAR A SIGN A530 -106CB LINEAR A SIGN A531 -106CC LINEAR A SIGN A532 -106CD LINEAR A SIGN A534 -106CE LINEAR A SIGN A535 -106CF LINEAR A SIGN A536 -106D0 LINEAR A SIGN A537 -106D1 LINEAR A SIGN A538 -106D2 LINEAR A SIGN A539 -106D3 LINEAR A SIGN A540 -106D4 LINEAR A SIGN A541 -106D5 LINEAR A SIGN A542 -106D6 LINEAR A SIGN A545 -106D7 LINEAR A SIGN A547 -106D8 LINEAR A SIGN A548 -106D9 LINEAR A SIGN A549 -106DA LINEAR A SIGN A550 -106DB LINEAR A SIGN A551 -106DC LINEAR A SIGN A552 -106DD LINEAR A SIGN A553 -106DE LINEAR A SIGN A554 -106DF LINEAR A SIGN A555 -106E0 LINEAR A SIGN A556 -106E1 LINEAR A SIGN A557 -106E2 LINEAR A SIGN A559 -106E3 LINEAR A SIGN A563 -106E4 LINEAR A SIGN A564 -106E5 LINEAR A SIGN A565 -106E6 LINEAR A SIGN A566 -106E7 LINEAR A SIGN A568 -106E8 LINEAR A SIGN A569 -106E9 LINEAR A SIGN A570 -106EA LINEAR A SIGN A571 -106EB LINEAR A SIGN A572 -106EC LINEAR A SIGN A573 -106ED LINEAR A SIGN A574 -106EE LINEAR A SIGN A575 -106EF LINEAR A SIGN A576 -106F0 LINEAR A SIGN A577 -106F1 LINEAR A SIGN A578 -106F2 LINEAR A SIGN A579 -106F3 LINEAR A SIGN A580 -106F4 LINEAR A SIGN A581 -106F5 LINEAR A SIGN A582 -106F6 LINEAR A SIGN A583 -106F7 LINEAR A SIGN A584 -106F8 LINEAR A SIGN A585 -106F9 LINEAR A SIGN A586 -106FA LINEAR A SIGN A587 -106FB LINEAR A SIGN A588 -106FC LINEAR A SIGN A589 -106FD LINEAR A SIGN A591 -106FE LINEAR A SIGN A592 -106FF LINEAR A SIGN A594 -10700 LINEAR A SIGN A595 -10701 LINEAR A SIGN A596 -10702 LINEAR A SIGN A598 -10703 LINEAR A SIGN A600 -10704 LINEAR A SIGN A601 -10705 LINEAR A SIGN A602 -10706 LINEAR A SIGN A603 -10707 LINEAR A SIGN A604 -10708 LINEAR A SIGN A606 -10709 LINEAR A SIGN A608 -1070A LINEAR A SIGN A609 -1070B LINEAR A SIGN A610 -1070C LINEAR A SIGN A611 -1070D LINEAR A SIGN A612 -1070E LINEAR A SIGN A613 -1070F LINEAR A SIGN A614 -10710 LINEAR A SIGN A615 -10711 LINEAR A SIGN A616 -10712 LINEAR A SIGN A617 -10713 LINEAR A SIGN A618 -10714 LINEAR A SIGN A619 -10715 LINEAR A SIGN A620 -10716 LINEAR A SIGN A621 -10717 LINEAR A SIGN A622 -10718 LINEAR A SIGN A623 -10719 LINEAR A SIGN A624 -1071A LINEAR A SIGN A626 -1071B LINEAR A SIGN A627 -1071C LINEAR A SIGN A628 -1071D LINEAR A SIGN A629 -1071E LINEAR A SIGN A634 -1071F LINEAR A SIGN A637 -10720 LINEAR A SIGN A638 -10721 LINEAR A SIGN A640 -10722 LINEAR A SIGN A642 -10723 LINEAR A SIGN A643 -10724 LINEAR A SIGN A644 -10725 LINEAR A SIGN A645 -10726 LINEAR A SIGN A646 -10727 LINEAR A SIGN A648 -10728 LINEAR A SIGN A649 -10729 LINEAR A SIGN A651 -1072A LINEAR A SIGN A652 -1072B LINEAR A SIGN A653 -1072C LINEAR A SIGN A654 -1072D LINEAR A SIGN A655 -1072E LINEAR A SIGN A656 -1072F LINEAR A SIGN A657 -10730 LINEAR A SIGN A658 -10731 LINEAR A SIGN A659 -10732 LINEAR A SIGN A660 -10733 LINEAR A SIGN A661 -10734 LINEAR A SIGN A662 -10735 LINEAR A SIGN A663 -10736 LINEAR A SIGN A664 -10740 LINEAR A SIGN A701 A -10741 LINEAR A SIGN A702 B -10742 LINEAR A SIGN A703 D -10743 LINEAR A SIGN A704 E -10744 LINEAR A SIGN A705 F -10745 LINEAR A SIGN A706 H -10746 LINEAR A SIGN A707 J -10747 LINEAR A SIGN A708 K -10748 LINEAR A SIGN A709 L -10749 LINEAR A SIGN A709-2 L2 -1074A LINEAR A SIGN A709-3 L3 -1074B LINEAR A SIGN A709-4 L4 -1074C LINEAR A SIGN A709-6 L6 -1074D LINEAR A SIGN A710 W -1074E LINEAR A SIGN A711 X -1074F LINEAR A SIGN A712 Y -10750 LINEAR A SIGN A713 OMEGA -10751 LINEAR A SIGN A714 ABB -10752 LINEAR A SIGN A715 BB -10753 LINEAR A SIGN A717 DD -10754 LINEAR A SIGN A726 EYYY -10755 LINEAR A SIGN A732 JE -10760 LINEAR A SIGN A800 -10761 LINEAR A SIGN A801 -10762 LINEAR A SIGN A802 -10763 LINEAR A SIGN A803 -10764 LINEAR A SIGN A804 -10765 LINEAR A SIGN A805 -10766 LINEAR A SIGN A806 -10767 LINEAR A SIGN A807 -10800 CYPRIOT SYLLABLE A -10801 CYPRIOT SYLLABLE E -10802 CYPRIOT SYLLABLE I -10803 CYPRIOT SYLLABLE O -10804 CYPRIOT SYLLABLE U -10805 CYPRIOT SYLLABLE JA -10808 CYPRIOT SYLLABLE JO -1080A CYPRIOT SYLLABLE KA -1080B CYPRIOT SYLLABLE KE -1080C CYPRIOT SYLLABLE KI -1080D CYPRIOT SYLLABLE KO -1080E CYPRIOT SYLLABLE KU -1080F CYPRIOT SYLLABLE LA -10810 CYPRIOT SYLLABLE LE -10811 CYPRIOT SYLLABLE LI -10812 CYPRIOT SYLLABLE LO -10813 CYPRIOT SYLLABLE LU -10814 CYPRIOT SYLLABLE MA -10815 CYPRIOT SYLLABLE ME -10816 CYPRIOT SYLLABLE MI -10817 CYPRIOT SYLLABLE MO -10818 CYPRIOT SYLLABLE MU -10819 CYPRIOT SYLLABLE NA -1081A CYPRIOT SYLLABLE NE -1081B CYPRIOT SYLLABLE NI -1081C CYPRIOT SYLLABLE NO -1081D CYPRIOT SYLLABLE NU -1081E CYPRIOT SYLLABLE PA -1081F CYPRIOT SYLLABLE PE -10820 CYPRIOT SYLLABLE PI -10821 CYPRIOT SYLLABLE PO -10822 CYPRIOT SYLLABLE PU -10823 CYPRIOT SYLLABLE RA -10824 CYPRIOT SYLLABLE RE -10825 CYPRIOT SYLLABLE RI -10826 CYPRIOT SYLLABLE RO -10827 CYPRIOT SYLLABLE RU -10828 CYPRIOT SYLLABLE SA -10829 CYPRIOT SYLLABLE SE -1082A CYPRIOT SYLLABLE SI -1082B CYPRIOT SYLLABLE SO -1082C CYPRIOT SYLLABLE SU -1082D CYPRIOT SYLLABLE TA -1082E CYPRIOT SYLLABLE TE -1082F CYPRIOT SYLLABLE TI -10830 CYPRIOT SYLLABLE TO -10831 CYPRIOT SYLLABLE TU -10832 CYPRIOT SYLLABLE WA -10833 CYPRIOT SYLLABLE WE -10834 CYPRIOT SYLLABLE WI -10835 CYPRIOT SYLLABLE WO -10837 CYPRIOT SYLLABLE XA -10838 CYPRIOT SYLLABLE XE -1083C CYPRIOT SYLLABLE ZA -1083F CYPRIOT SYLLABLE ZO -10840 IMPERIAL ARAMAIC LETTER ALEPH -10841 IMPERIAL ARAMAIC LETTER BETH -10842 IMPERIAL ARAMAIC LETTER GIMEL -10843 IMPERIAL ARAMAIC LETTER DALETH -10844 IMPERIAL ARAMAIC LETTER HE -10845 IMPERIAL ARAMAIC LETTER WAW -10846 IMPERIAL ARAMAIC LETTER ZAYIN -10847 IMPERIAL ARAMAIC LETTER HETH -10848 IMPERIAL ARAMAIC LETTER TETH -10849 IMPERIAL ARAMAIC LETTER YODH -1084A IMPERIAL ARAMAIC LETTER KAPH -1084B IMPERIAL ARAMAIC LETTER LAMEDH -1084C IMPERIAL ARAMAIC LETTER MEM -1084D IMPERIAL ARAMAIC LETTER NUN -1084E IMPERIAL ARAMAIC LETTER SAMEKH -1084F IMPERIAL ARAMAIC LETTER AYIN -10850 IMPERIAL ARAMAIC LETTER PE -10851 IMPERIAL ARAMAIC LETTER SADHE -10852 IMPERIAL ARAMAIC LETTER QOPH -10853 IMPERIAL ARAMAIC LETTER RESH -10854 IMPERIAL ARAMAIC LETTER SHIN -10855 IMPERIAL ARAMAIC LETTER TAW -10857 IMPERIAL ARAMAIC SECTION SIGN -10858 IMPERIAL ARAMAIC NUMBER ONE -10859 IMPERIAL ARAMAIC NUMBER TWO -1085A IMPERIAL ARAMAIC NUMBER THREE -1085B IMPERIAL ARAMAIC NUMBER TEN -1085C IMPERIAL ARAMAIC NUMBER TWENTY -1085D IMPERIAL ARAMAIC NUMBER ONE HUNDRED -1085E IMPERIAL ARAMAIC NUMBER ONE THOUSAND -1085F IMPERIAL ARAMAIC NUMBER TEN THOUSAND -10860 PALMYRENE LETTER ALEPH -10861 PALMYRENE LETTER BETH -10862 PALMYRENE LETTER GIMEL -10863 PALMYRENE LETTER DALETH -10864 PALMYRENE LETTER HE -10865 PALMYRENE LETTER WAW -10866 PALMYRENE LETTER ZAYIN -10867 PALMYRENE LETTER HETH -10868 PALMYRENE LETTER TETH -10869 PALMYRENE LETTER YODH -1086A PALMYRENE LETTER KAPH -1086B PALMYRENE LETTER LAMEDH -1086C PALMYRENE LETTER MEM -1086D PALMYRENE LETTER FINAL NUN -1086E PALMYRENE LETTER NUN -1086F PALMYRENE LETTER SAMEKH -10870 PALMYRENE LETTER AYIN -10871 PALMYRENE LETTER PE -10872 PALMYRENE LETTER SADHE -10873 PALMYRENE LETTER QOPH -10874 PALMYRENE LETTER RESH -10875 PALMYRENE LETTER SHIN -10876 PALMYRENE LETTER TAW -10877 PALMYRENE LEFT-POINTING FLEURON -10878 PALMYRENE RIGHT-POINTING FLEURON -10879 PALMYRENE NUMBER ONE -1087A PALMYRENE NUMBER TWO -1087B PALMYRENE NUMBER THREE -1087C PALMYRENE NUMBER FOUR -1087D PALMYRENE NUMBER FIVE -1087E PALMYRENE NUMBER TEN -1087F PALMYRENE NUMBER TWENTY -10880 NABATAEAN LETTER FINAL ALEPH -10881 NABATAEAN LETTER ALEPH -10882 NABATAEAN LETTER FINAL BETH -10883 NABATAEAN LETTER BETH -10884 NABATAEAN LETTER GIMEL -10885 NABATAEAN LETTER DALETH -10886 NABATAEAN LETTER FINAL HE -10887 NABATAEAN LETTER HE -10888 NABATAEAN LETTER WAW -10889 NABATAEAN LETTER ZAYIN -1088A NABATAEAN LETTER HETH -1088B NABATAEAN LETTER TETH -1088C NABATAEAN LETTER FINAL YODH -1088D NABATAEAN LETTER YODH -1088E NABATAEAN LETTER FINAL KAPH -1088F NABATAEAN LETTER KAPH -10890 NABATAEAN LETTER FINAL LAMEDH -10891 NABATAEAN LETTER LAMEDH -10892 NABATAEAN LETTER FINAL MEM -10893 NABATAEAN LETTER MEM -10894 NABATAEAN LETTER FINAL NUN -10895 NABATAEAN LETTER NUN -10896 NABATAEAN LETTER SAMEKH -10897 NABATAEAN LETTER AYIN -10898 NABATAEAN LETTER PE -10899 NABATAEAN LETTER SADHE -1089A NABATAEAN LETTER QOPH -1089B NABATAEAN LETTER RESH -1089C NABATAEAN LETTER FINAL SHIN -1089D NABATAEAN LETTER SHIN -1089E NABATAEAN LETTER TAW -108A7 NABATAEAN NUMBER ONE -108A8 NABATAEAN NUMBER TWO -108A9 NABATAEAN NUMBER THREE -108AA NABATAEAN NUMBER FOUR -108AB NABATAEAN CRUCIFORM NUMBER FOUR -108AC NABATAEAN NUMBER FIVE -108AD NABATAEAN NUMBER TEN -108AE NABATAEAN NUMBER TWENTY -108AF NABATAEAN NUMBER ONE HUNDRED -108E0 HATRAN LETTER ALEPH -108E1 HATRAN LETTER BETH -108E2 HATRAN LETTER GIMEL -108E3 HATRAN LETTER DALETH-RESH -108E4 HATRAN LETTER HE -108E5 HATRAN LETTER WAW -108E6 HATRAN LETTER ZAYN -108E7 HATRAN LETTER HETH -108E8 HATRAN LETTER TETH -108E9 HATRAN LETTER YODH -108EA HATRAN LETTER KAPH -108EB HATRAN LETTER LAMEDH -108EC HATRAN LETTER MEM -108ED HATRAN LETTER NUN -108EE HATRAN LETTER SAMEKH -108EF HATRAN LETTER AYN -108F0 HATRAN LETTER PE -108F1 HATRAN LETTER SADHE -108F2 HATRAN LETTER QOPH -108F4 HATRAN LETTER SHIN -108F5 HATRAN LETTER TAW -108FB HATRAN NUMBER ONE -108FC HATRAN NUMBER FIVE -108FD HATRAN NUMBER TEN -108FE HATRAN NUMBER TWENTY -108FF HATRAN NUMBER ONE HUNDRED -10900 PHOENICIAN LETTER ALF -10901 PHOENICIAN LETTER BET -10902 PHOENICIAN LETTER GAML -10903 PHOENICIAN LETTER DELT -10904 PHOENICIAN LETTER HE -10905 PHOENICIAN LETTER WAU -10906 PHOENICIAN LETTER ZAI -10907 PHOENICIAN LETTER HET -10908 PHOENICIAN LETTER TET -10909 PHOENICIAN LETTER YOD -1090A PHOENICIAN LETTER KAF -1090B PHOENICIAN LETTER LAMD -1090C PHOENICIAN LETTER MEM -1090D PHOENICIAN LETTER NUN -1090E PHOENICIAN LETTER SEMK -1090F PHOENICIAN LETTER AIN -10910 PHOENICIAN LETTER PE -10911 PHOENICIAN LETTER SADE -10912 PHOENICIAN LETTER QOF -10913 PHOENICIAN LETTER ROSH -10914 PHOENICIAN LETTER SHIN -10915 PHOENICIAN LETTER TAU -10916 PHOENICIAN NUMBER ONE -10917 PHOENICIAN NUMBER TEN -10918 PHOENICIAN NUMBER TWENTY -10919 PHOENICIAN NUMBER ONE HUNDRED -1091A PHOENICIAN NUMBER TWO -1091B PHOENICIAN NUMBER THREE -1091F PHOENICIAN WORD SEPARATOR -10920 LYDIAN LETTER A -10921 LYDIAN LETTER B -10922 LYDIAN LETTER G -10923 LYDIAN LETTER D -10924 LYDIAN LETTER E -10925 LYDIAN LETTER V -10926 LYDIAN LETTER I -10927 LYDIAN LETTER Y -10928 LYDIAN LETTER K -10929 LYDIAN LETTER L -1092A LYDIAN LETTER M -1092B LYDIAN LETTER N -1092C LYDIAN LETTER O -1092D LYDIAN LETTER R -1092E LYDIAN LETTER SS -1092F LYDIAN LETTER T -10930 LYDIAN LETTER U -10931 LYDIAN LETTER F -10932 LYDIAN LETTER Q -10933 LYDIAN LETTER S -10934 LYDIAN LETTER TT -10935 LYDIAN LETTER AN -10936 LYDIAN LETTER EN -10937 LYDIAN LETTER LY -10938 LYDIAN LETTER NN -10939 LYDIAN LETTER C -1093F LYDIAN TRIANGULAR MARK -10980 MEROITIC HIEROGLYPHIC LETTER A -10981 MEROITIC HIEROGLYPHIC LETTER E -10982 MEROITIC HIEROGLYPHIC LETTER I -10983 MEROITIC HIEROGLYPHIC LETTER O -10984 MEROITIC HIEROGLYPHIC LETTER YA -10985 MEROITIC HIEROGLYPHIC LETTER WA -10986 MEROITIC HIEROGLYPHIC LETTER BA -10987 MEROITIC HIEROGLYPHIC LETTER BA-2 -10988 MEROITIC HIEROGLYPHIC LETTER PA -10989 MEROITIC HIEROGLYPHIC LETTER MA -1098A MEROITIC HIEROGLYPHIC LETTER NA -1098B MEROITIC HIEROGLYPHIC LETTER NA-2 -1098C MEROITIC HIEROGLYPHIC LETTER NE -1098D MEROITIC HIEROGLYPHIC LETTER NE-2 -1098E MEROITIC HIEROGLYPHIC LETTER RA -1098F MEROITIC HIEROGLYPHIC LETTER RA-2 -10990 MEROITIC HIEROGLYPHIC LETTER LA -10991 MEROITIC HIEROGLYPHIC LETTER KHA -10992 MEROITIC HIEROGLYPHIC LETTER HHA -10993 MEROITIC HIEROGLYPHIC LETTER SA -10994 MEROITIC HIEROGLYPHIC LETTER SA-2 -10995 MEROITIC HIEROGLYPHIC LETTER SE -10996 MEROITIC HIEROGLYPHIC LETTER KA -10997 MEROITIC HIEROGLYPHIC LETTER QA -10998 MEROITIC HIEROGLYPHIC LETTER TA -10999 MEROITIC HIEROGLYPHIC LETTER TA-2 -1099A MEROITIC HIEROGLYPHIC LETTER TE -1099B MEROITIC HIEROGLYPHIC LETTER TE-2 -1099C MEROITIC HIEROGLYPHIC LETTER TO -1099D MEROITIC HIEROGLYPHIC LETTER DA -1099E MEROITIC HIEROGLYPHIC SYMBOL VIDJ -1099F MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2 -109A0 MEROITIC CURSIVE LETTER A -109A1 MEROITIC CURSIVE LETTER E -109A2 MEROITIC CURSIVE LETTER I -109A3 MEROITIC CURSIVE LETTER O -109A4 MEROITIC CURSIVE LETTER YA -109A5 MEROITIC CURSIVE LETTER WA -109A6 MEROITIC CURSIVE LETTER BA -109A7 MEROITIC CURSIVE LETTER PA -109A8 MEROITIC CURSIVE LETTER MA -109A9 MEROITIC CURSIVE LETTER NA -109AA MEROITIC CURSIVE LETTER NE -109AB MEROITIC CURSIVE LETTER RA -109AC MEROITIC CURSIVE LETTER LA -109AD MEROITIC CURSIVE LETTER KHA -109AE MEROITIC CURSIVE LETTER HHA -109AF MEROITIC CURSIVE LETTER SA -109B0 MEROITIC CURSIVE LETTER ARCHAIC SA -109B1 MEROITIC CURSIVE LETTER SE -109B2 MEROITIC CURSIVE LETTER KA -109B3 MEROITIC CURSIVE LETTER QA -109B4 MEROITIC CURSIVE LETTER TA -109B5 MEROITIC CURSIVE LETTER TE -109B6 MEROITIC CURSIVE LETTER TO -109B7 MEROITIC CURSIVE LETTER DA -109BC MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS -109BD MEROITIC CURSIVE FRACTION ONE HALF -109BE MEROITIC CURSIVE LOGOGRAM RMT -109BF MEROITIC CURSIVE LOGOGRAM IMN -109C0 MEROITIC CURSIVE NUMBER ONE -109C1 MEROITIC CURSIVE NUMBER TWO -109C2 MEROITIC CURSIVE NUMBER THREE -109C3 MEROITIC CURSIVE NUMBER FOUR -109C4 MEROITIC CURSIVE NUMBER FIVE -109C5 MEROITIC CURSIVE NUMBER SIX -109C6 MEROITIC CURSIVE NUMBER SEVEN -109C7 MEROITIC CURSIVE NUMBER EIGHT -109C8 MEROITIC CURSIVE NUMBER NINE -109C9 MEROITIC CURSIVE NUMBER TEN -109CA MEROITIC CURSIVE NUMBER TWENTY -109CB MEROITIC CURSIVE NUMBER THIRTY -109CC MEROITIC CURSIVE NUMBER FORTY -109CD MEROITIC CURSIVE NUMBER FIFTY -109CE MEROITIC CURSIVE NUMBER SIXTY -109CF MEROITIC CURSIVE NUMBER SEVENTY -109D2 MEROITIC CURSIVE NUMBER ONE HUNDRED -109D3 MEROITIC CURSIVE NUMBER TWO HUNDRED -109D4 MEROITIC CURSIVE NUMBER THREE HUNDRED -109D5 MEROITIC CURSIVE NUMBER FOUR HUNDRED -109D6 MEROITIC CURSIVE NUMBER FIVE HUNDRED -109D7 MEROITIC CURSIVE NUMBER SIX HUNDRED -109D8 MEROITIC CURSIVE NUMBER SEVEN HUNDRED -109D9 MEROITIC CURSIVE NUMBER EIGHT HUNDRED -109DA MEROITIC CURSIVE NUMBER NINE HUNDRED -109DB MEROITIC CURSIVE NUMBER ONE THOUSAND -109DC MEROITIC CURSIVE NUMBER TWO THOUSAND -109DD MEROITIC CURSIVE NUMBER THREE THOUSAND -109DE MEROITIC CURSIVE NUMBER FOUR THOUSAND -109DF MEROITIC CURSIVE NUMBER FIVE THOUSAND -109E0 MEROITIC CURSIVE NUMBER SIX THOUSAND -109E1 MEROITIC CURSIVE NUMBER SEVEN THOUSAND -109E2 MEROITIC CURSIVE NUMBER EIGHT THOUSAND -109E3 MEROITIC CURSIVE NUMBER NINE THOUSAND -109E4 MEROITIC CURSIVE NUMBER TEN THOUSAND -109E5 MEROITIC CURSIVE NUMBER TWENTY THOUSAND -109E6 MEROITIC CURSIVE NUMBER THIRTY THOUSAND -109E7 MEROITIC CURSIVE NUMBER FORTY THOUSAND -109E8 MEROITIC CURSIVE NUMBER FIFTY THOUSAND -109E9 MEROITIC CURSIVE NUMBER SIXTY THOUSAND -109EA MEROITIC CURSIVE NUMBER SEVENTY THOUSAND -109EB MEROITIC CURSIVE NUMBER EIGHTY THOUSAND -109EC MEROITIC CURSIVE NUMBER NINETY THOUSAND -109ED MEROITIC CURSIVE NUMBER ONE HUNDRED THOUSAND -109EE MEROITIC CURSIVE NUMBER TWO HUNDRED THOUSAND -109EF MEROITIC CURSIVE NUMBER THREE HUNDRED THOUSAND -109F0 MEROITIC CURSIVE NUMBER FOUR HUNDRED THOUSAND -109F1 MEROITIC CURSIVE NUMBER FIVE HUNDRED THOUSAND -109F2 MEROITIC CURSIVE NUMBER SIX HUNDRED THOUSAND -109F3 MEROITIC CURSIVE NUMBER SEVEN HUNDRED THOUSAND -109F4 MEROITIC CURSIVE NUMBER EIGHT HUNDRED THOUSAND -109F5 MEROITIC CURSIVE NUMBER NINE HUNDRED THOUSAND -109F6 MEROITIC CURSIVE FRACTION ONE TWELFTH -109F7 MEROITIC CURSIVE FRACTION TWO TWELFTHS -109F8 MEROITIC CURSIVE FRACTION THREE TWELFTHS -109F9 MEROITIC CURSIVE FRACTION FOUR TWELFTHS -109FA MEROITIC CURSIVE FRACTION FIVE TWELFTHS -109FB MEROITIC CURSIVE FRACTION SIX TWELFTHS -109FC MEROITIC CURSIVE FRACTION SEVEN TWELFTHS -109FD MEROITIC CURSIVE FRACTION EIGHT TWELFTHS -109FE MEROITIC CURSIVE FRACTION NINE TWELFTHS -109FF MEROITIC CURSIVE FRACTION TEN TWELFTHS -10A00 KHAROSHTHI LETTER A -10A01 KHAROSHTHI VOWEL SIGN I -10A02 KHAROSHTHI VOWEL SIGN U -10A03 KHAROSHTHI VOWEL SIGN VOCALIC R -10A05 KHAROSHTHI VOWEL SIGN E -10A06 KHAROSHTHI VOWEL SIGN O -10A0C KHAROSHTHI VOWEL LENGTH MARK -10A0D KHAROSHTHI SIGN DOUBLE RING BELOW -10A0E KHAROSHTHI SIGN ANUSVARA -10A0F KHAROSHTHI SIGN VISARGA -10A10 KHAROSHTHI LETTER KA -10A11 KHAROSHTHI LETTER KHA -10A12 KHAROSHTHI LETTER GA -10A13 KHAROSHTHI LETTER GHA -10A15 KHAROSHTHI LETTER CA -10A16 KHAROSHTHI LETTER CHA -10A17 KHAROSHTHI LETTER JA -10A19 KHAROSHTHI LETTER NYA -10A1A KHAROSHTHI LETTER TTA -10A1B KHAROSHTHI LETTER TTHA -10A1C KHAROSHTHI LETTER DDA -10A1D KHAROSHTHI LETTER DDHA -10A1E KHAROSHTHI LETTER NNA -10A1F KHAROSHTHI LETTER TA -10A20 KHAROSHTHI LETTER THA -10A21 KHAROSHTHI LETTER DA -10A22 KHAROSHTHI LETTER DHA -10A23 KHAROSHTHI LETTER NA -10A24 KHAROSHTHI LETTER PA -10A25 KHAROSHTHI LETTER PHA -10A26 KHAROSHTHI LETTER BA -10A27 KHAROSHTHI LETTER BHA -10A28 KHAROSHTHI LETTER MA -10A29 KHAROSHTHI LETTER YA -10A2A KHAROSHTHI LETTER RA -10A2B KHAROSHTHI LETTER LA -10A2C KHAROSHTHI LETTER VA -10A2D KHAROSHTHI LETTER SHA -10A2E KHAROSHTHI LETTER SSA -10A2F KHAROSHTHI LETTER SA -10A30 KHAROSHTHI LETTER ZA -10A31 KHAROSHTHI LETTER HA -10A32 KHAROSHTHI LETTER KKA -10A33 KHAROSHTHI LETTER TTTHA -10A38 KHAROSHTHI SIGN BAR ABOVE -10A39 KHAROSHTHI SIGN CAUDA -10A3A KHAROSHTHI SIGN DOT BELOW -10A3F KHAROSHTHI VIRAMA -10A40 KHAROSHTHI DIGIT ONE -10A41 KHAROSHTHI DIGIT TWO -10A42 KHAROSHTHI DIGIT THREE -10A43 KHAROSHTHI DIGIT FOUR -10A44 KHAROSHTHI NUMBER TEN -10A45 KHAROSHTHI NUMBER TWENTY -10A46 KHAROSHTHI NUMBER ONE HUNDRED -10A47 KHAROSHTHI NUMBER ONE THOUSAND -10A50 KHAROSHTHI PUNCTUATION DOT -10A51 KHAROSHTHI PUNCTUATION SMALL CIRCLE -10A52 KHAROSHTHI PUNCTUATION CIRCLE -10A53 KHAROSHTHI PUNCTUATION CRESCENT BAR -10A54 KHAROSHTHI PUNCTUATION MANGALAM -10A55 KHAROSHTHI PUNCTUATION LOTUS -10A56 KHAROSHTHI PUNCTUATION DANDA -10A57 KHAROSHTHI PUNCTUATION DOUBLE DANDA -10A58 KHAROSHTHI PUNCTUATION LINES -10A60 OLD SOUTH ARABIAN LETTER HE -10A61 OLD SOUTH ARABIAN LETTER LAMEDH -10A62 OLD SOUTH ARABIAN LETTER HETH -10A63 OLD SOUTH ARABIAN LETTER MEM -10A64 OLD SOUTH ARABIAN LETTER QOPH -10A65 OLD SOUTH ARABIAN LETTER WAW -10A66 OLD SOUTH ARABIAN LETTER SHIN -10A67 OLD SOUTH ARABIAN LETTER RESH -10A68 OLD SOUTH ARABIAN LETTER BETH -10A69 OLD SOUTH ARABIAN LETTER TAW -10A6A OLD SOUTH ARABIAN LETTER SAT -10A6B OLD SOUTH ARABIAN LETTER KAPH -10A6C OLD SOUTH ARABIAN LETTER NUN -10A6D OLD SOUTH ARABIAN LETTER KHETH -10A6E OLD SOUTH ARABIAN LETTER SADHE -10A6F OLD SOUTH ARABIAN LETTER SAMEKH -10A70 OLD SOUTH ARABIAN LETTER FE -10A71 OLD SOUTH ARABIAN LETTER ALEF -10A72 OLD SOUTH ARABIAN LETTER AYN -10A73 OLD SOUTH ARABIAN LETTER DHADHE -10A74 OLD SOUTH ARABIAN LETTER GIMEL -10A75 OLD SOUTH ARABIAN LETTER DALETH -10A76 OLD SOUTH ARABIAN LETTER GHAYN -10A77 OLD SOUTH ARABIAN LETTER TETH -10A78 OLD SOUTH ARABIAN LETTER ZAYN -10A79 OLD SOUTH ARABIAN LETTER DHALETH -10A7A OLD SOUTH ARABIAN LETTER YODH -10A7B OLD SOUTH ARABIAN LETTER THAW -10A7C OLD SOUTH ARABIAN LETTER THETH -10A7D OLD SOUTH ARABIAN NUMBER ONE -10A7E OLD SOUTH ARABIAN NUMBER FIFTY -10A7F OLD SOUTH ARABIAN NUMERIC INDICATOR -10A80 OLD NORTH ARABIAN LETTER HEH -10A81 OLD NORTH ARABIAN LETTER LAM -10A82 OLD NORTH ARABIAN LETTER HAH -10A83 OLD NORTH ARABIAN LETTER MEEM -10A84 OLD NORTH ARABIAN LETTER QAF -10A85 OLD NORTH ARABIAN LETTER WAW -10A86 OLD NORTH ARABIAN LETTER ES-2 -10A87 OLD NORTH ARABIAN LETTER REH -10A88 OLD NORTH ARABIAN LETTER BEH -10A89 OLD NORTH ARABIAN LETTER TEH -10A8A OLD NORTH ARABIAN LETTER ES-1 -10A8B OLD NORTH ARABIAN LETTER KAF -10A8C OLD NORTH ARABIAN LETTER NOON -10A8D OLD NORTH ARABIAN LETTER KHAH -10A8E OLD NORTH ARABIAN LETTER SAD -10A8F OLD NORTH ARABIAN LETTER ES-3 -10A90 OLD NORTH ARABIAN LETTER FEH -10A91 OLD NORTH ARABIAN LETTER ALEF -10A92 OLD NORTH ARABIAN LETTER AIN -10A93 OLD NORTH ARABIAN LETTER DAD -10A94 OLD NORTH ARABIAN LETTER GEEM -10A95 OLD NORTH ARABIAN LETTER DAL -10A96 OLD NORTH ARABIAN LETTER GHAIN -10A97 OLD NORTH ARABIAN LETTER TAH -10A98 OLD NORTH ARABIAN LETTER ZAIN -10A99 OLD NORTH ARABIAN LETTER THAL -10A9A OLD NORTH ARABIAN LETTER YEH -10A9B OLD NORTH ARABIAN LETTER THEH -10A9C OLD NORTH ARABIAN LETTER ZAH -10A9D OLD NORTH ARABIAN NUMBER ONE -10A9E OLD NORTH ARABIAN NUMBER TEN -10A9F OLD NORTH ARABIAN NUMBER TWENTY -10AC0 MANICHAEAN LETTER ALEPH -10AC1 MANICHAEAN LETTER BETH -10AC2 MANICHAEAN LETTER BHETH -10AC3 MANICHAEAN LETTER GIMEL -10AC4 MANICHAEAN LETTER GHIMEL -10AC5 MANICHAEAN LETTER DALETH -10AC6 MANICHAEAN LETTER HE -10AC7 MANICHAEAN LETTER WAW -10AC8 MANICHAEAN SIGN UD -10AC9 MANICHAEAN LETTER ZAYIN -10ACA MANICHAEAN LETTER ZHAYIN -10ACB MANICHAEAN LETTER JAYIN -10ACC MANICHAEAN LETTER JHAYIN -10ACD MANICHAEAN LETTER HETH -10ACE MANICHAEAN LETTER TETH -10ACF MANICHAEAN LETTER YODH -10AD0 MANICHAEAN LETTER KAPH -10AD1 MANICHAEAN LETTER XAPH -10AD2 MANICHAEAN LETTER KHAPH -10AD3 MANICHAEAN LETTER LAMEDH -10AD4 MANICHAEAN LETTER DHAMEDH -10AD5 MANICHAEAN LETTER THAMEDH -10AD6 MANICHAEAN LETTER MEM -10AD7 MANICHAEAN LETTER NUN -10AD8 MANICHAEAN LETTER SAMEKH -10AD9 MANICHAEAN LETTER AYIN -10ADA MANICHAEAN LETTER AAYIN -10ADB MANICHAEAN LETTER PE -10ADC MANICHAEAN LETTER FE -10ADD MANICHAEAN LETTER SADHE -10ADE MANICHAEAN LETTER QOPH -10ADF MANICHAEAN LETTER XOPH -10AE0 MANICHAEAN LETTER QHOPH -10AE1 MANICHAEAN LETTER RESH -10AE2 MANICHAEAN LETTER SHIN -10AE3 MANICHAEAN LETTER SSHIN -10AE4 MANICHAEAN LETTER TAW -10AE5 MANICHAEAN ABBREVIATION MARK ABOVE -10AE6 MANICHAEAN ABBREVIATION MARK BELOW -10AEB MANICHAEAN NUMBER ONE -10AEC MANICHAEAN NUMBER FIVE -10AED MANICHAEAN NUMBER TEN -10AEE MANICHAEAN NUMBER TWENTY -10AEF MANICHAEAN NUMBER ONE HUNDRED -10AF0 MANICHAEAN PUNCTUATION STAR -10AF1 MANICHAEAN PUNCTUATION FLEURON -10AF2 MANICHAEAN PUNCTUATION DOUBLE DOT WITHIN DOT -10AF3 MANICHAEAN PUNCTUATION DOT WITHIN DOT -10AF4 MANICHAEAN PUNCTUATION DOT -10AF5 MANICHAEAN PUNCTUATION TWO DOTS -10AF6 MANICHAEAN PUNCTUATION LINE FILLER -10B00 AVESTAN LETTER A -10B01 AVESTAN LETTER AA -10B02 AVESTAN LETTER AO -10B03 AVESTAN LETTER AAO -10B04 AVESTAN LETTER AN -10B05 AVESTAN LETTER AAN -10B06 AVESTAN LETTER AE -10B07 AVESTAN LETTER AEE -10B08 AVESTAN LETTER E -10B09 AVESTAN LETTER EE -10B0A AVESTAN LETTER O -10B0B AVESTAN LETTER OO -10B0C AVESTAN LETTER I -10B0D AVESTAN LETTER II -10B0E AVESTAN LETTER U -10B0F AVESTAN LETTER UU -10B10 AVESTAN LETTER KE -10B11 AVESTAN LETTER XE -10B12 AVESTAN LETTER XYE -10B13 AVESTAN LETTER XVE -10B14 AVESTAN LETTER GE -10B15 AVESTAN LETTER GGE -10B16 AVESTAN LETTER GHE -10B17 AVESTAN LETTER CE -10B18 AVESTAN LETTER JE -10B19 AVESTAN LETTER TE -10B1A AVESTAN LETTER THE -10B1B AVESTAN LETTER DE -10B1C AVESTAN LETTER DHE -10B1D AVESTAN LETTER TTE -10B1E AVESTAN LETTER PE -10B1F AVESTAN LETTER FE -10B20 AVESTAN LETTER BE -10B21 AVESTAN LETTER BHE -10B22 AVESTAN LETTER NGE -10B23 AVESTAN LETTER NGYE -10B24 AVESTAN LETTER NGVE -10B25 AVESTAN LETTER NE -10B26 AVESTAN LETTER NYE -10B27 AVESTAN LETTER NNE -10B28 AVESTAN LETTER ME -10B29 AVESTAN LETTER HME -10B2A AVESTAN LETTER YYE -10B2B AVESTAN LETTER YE -10B2C AVESTAN LETTER VE -10B2D AVESTAN LETTER RE -10B2E AVESTAN LETTER LE -10B2F AVESTAN LETTER SE -10B30 AVESTAN LETTER ZE -10B31 AVESTAN LETTER SHE -10B32 AVESTAN LETTER ZHE -10B33 AVESTAN LETTER SHYE -10B34 AVESTAN LETTER SSHE -10B35 AVESTAN LETTER HE -10B39 AVESTAN ABBREVIATION MARK -10B3A TINY TWO DOTS OVER ONE DOT PUNCTUATION -10B3B SMALL TWO DOTS OVER ONE DOT PUNCTUATION -10B3C LARGE TWO DOTS OVER ONE DOT PUNCTUATION -10B3D LARGE ONE DOT OVER TWO DOTS PUNCTUATION -10B3E LARGE TWO RINGS OVER ONE RING PUNCTUATION -10B3F LARGE ONE RING OVER TWO RINGS PUNCTUATION -10B40 INSCRIPTIONAL PARTHIAN LETTER ALEPH -10B41 INSCRIPTIONAL PARTHIAN LETTER BETH -10B42 INSCRIPTIONAL PARTHIAN LETTER GIMEL -10B43 INSCRIPTIONAL PARTHIAN LETTER DALETH -10B44 INSCRIPTIONAL PARTHIAN LETTER HE -10B45 INSCRIPTIONAL PARTHIAN LETTER WAW -10B46 INSCRIPTIONAL PARTHIAN LETTER ZAYIN -10B47 INSCRIPTIONAL PARTHIAN LETTER HETH -10B48 INSCRIPTIONAL PARTHIAN LETTER TETH -10B49 INSCRIPTIONAL PARTHIAN LETTER YODH -10B4A INSCRIPTIONAL PARTHIAN LETTER KAPH -10B4B INSCRIPTIONAL PARTHIAN LETTER LAMEDH -10B4C INSCRIPTIONAL PARTHIAN LETTER MEM -10B4D INSCRIPTIONAL PARTHIAN LETTER NUN -10B4E INSCRIPTIONAL PARTHIAN LETTER SAMEKH -10B4F INSCRIPTIONAL PARTHIAN LETTER AYIN -10B50 INSCRIPTIONAL PARTHIAN LETTER PE -10B51 INSCRIPTIONAL PARTHIAN LETTER SADHE -10B52 INSCRIPTIONAL PARTHIAN LETTER QOPH -10B53 INSCRIPTIONAL PARTHIAN LETTER RESH -10B54 INSCRIPTIONAL PARTHIAN LETTER SHIN -10B55 INSCRIPTIONAL PARTHIAN LETTER TAW -10B58 INSCRIPTIONAL PARTHIAN NUMBER ONE -10B59 INSCRIPTIONAL PARTHIAN NUMBER TWO -10B5A INSCRIPTIONAL PARTHIAN NUMBER THREE -10B5B INSCRIPTIONAL PARTHIAN NUMBER FOUR -10B5C INSCRIPTIONAL PARTHIAN NUMBER TEN -10B5D INSCRIPTIONAL PARTHIAN NUMBER TWENTY -10B5E INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED -10B5F INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND -10B60 INSCRIPTIONAL PAHLAVI LETTER ALEPH -10B61 INSCRIPTIONAL PAHLAVI LETTER BETH -10B62 INSCRIPTIONAL PAHLAVI LETTER GIMEL -10B63 INSCRIPTIONAL PAHLAVI LETTER DALETH -10B64 INSCRIPTIONAL PAHLAVI LETTER HE -10B65 INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH -10B66 INSCRIPTIONAL PAHLAVI LETTER ZAYIN -10B67 INSCRIPTIONAL PAHLAVI LETTER HETH -10B68 INSCRIPTIONAL PAHLAVI LETTER TETH -10B69 INSCRIPTIONAL PAHLAVI LETTER YODH -10B6A INSCRIPTIONAL PAHLAVI LETTER KAPH -10B6B INSCRIPTIONAL PAHLAVI LETTER LAMEDH -10B6C INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH -10B6D INSCRIPTIONAL PAHLAVI LETTER NUN -10B6E INSCRIPTIONAL PAHLAVI LETTER SAMEKH -10B6F INSCRIPTIONAL PAHLAVI LETTER PE -10B70 INSCRIPTIONAL PAHLAVI LETTER SADHE -10B71 INSCRIPTIONAL PAHLAVI LETTER SHIN -10B72 INSCRIPTIONAL PAHLAVI LETTER TAW -10B78 INSCRIPTIONAL PAHLAVI NUMBER ONE -10B79 INSCRIPTIONAL PAHLAVI NUMBER TWO -10B7A INSCRIPTIONAL PAHLAVI NUMBER THREE -10B7B INSCRIPTIONAL PAHLAVI NUMBER FOUR -10B7C INSCRIPTIONAL PAHLAVI NUMBER TEN -10B7D INSCRIPTIONAL PAHLAVI NUMBER TWENTY -10B7E INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED -10B7F INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND -10B80 PSALTER PAHLAVI LETTER ALEPH -10B81 PSALTER PAHLAVI LETTER BETH -10B82 PSALTER PAHLAVI LETTER GIMEL -10B83 PSALTER PAHLAVI LETTER DALETH -10B84 PSALTER PAHLAVI LETTER HE -10B85 PSALTER PAHLAVI LETTER WAW-AYIN-RESH -10B86 PSALTER PAHLAVI LETTER ZAYIN -10B87 PSALTER PAHLAVI LETTER HETH -10B88 PSALTER PAHLAVI LETTER YODH -10B89 PSALTER PAHLAVI LETTER KAPH -10B8A PSALTER PAHLAVI LETTER LAMEDH -10B8B PSALTER PAHLAVI LETTER MEM-QOPH -10B8C PSALTER PAHLAVI LETTER NUN -10B8D PSALTER PAHLAVI LETTER SAMEKH -10B8E PSALTER PAHLAVI LETTER PE -10B8F PSALTER PAHLAVI LETTER SADHE -10B90 PSALTER PAHLAVI LETTER SHIN -10B91 PSALTER PAHLAVI LETTER TAW -10B99 PSALTER PAHLAVI SECTION MARK -10B9A PSALTER PAHLAVI TURNED SECTION MARK -10B9B PSALTER PAHLAVI FOUR DOTS WITH CROSS -10B9C PSALTER PAHLAVI FOUR DOTS WITH DOT -10BA9 PSALTER PAHLAVI NUMBER ONE -10BAA PSALTER PAHLAVI NUMBER TWO -10BAB PSALTER PAHLAVI NUMBER THREE -10BAC PSALTER PAHLAVI NUMBER FOUR -10BAD PSALTER PAHLAVI NUMBER TEN -10BAE PSALTER PAHLAVI NUMBER TWENTY -10BAF PSALTER PAHLAVI NUMBER ONE HUNDRED -10C00 OLD TURKIC LETTER ORKHON A -10C01 OLD TURKIC LETTER YENISEI A -10C02 OLD TURKIC LETTER YENISEI AE -10C03 OLD TURKIC LETTER ORKHON I -10C04 OLD TURKIC LETTER YENISEI I -10C05 OLD TURKIC LETTER YENISEI E -10C06 OLD TURKIC LETTER ORKHON O -10C07 OLD TURKIC LETTER ORKHON OE -10C08 OLD TURKIC LETTER YENISEI OE -10C09 OLD TURKIC LETTER ORKHON AB -10C0A OLD TURKIC LETTER YENISEI AB -10C0B OLD TURKIC LETTER ORKHON AEB -10C0C OLD TURKIC LETTER YENISEI AEB -10C0D OLD TURKIC LETTER ORKHON AG -10C0E OLD TURKIC LETTER YENISEI AG -10C0F OLD TURKIC LETTER ORKHON AEG -10C10 OLD TURKIC LETTER YENISEI AEG -10C11 OLD TURKIC LETTER ORKHON AD -10C12 OLD TURKIC LETTER YENISEI AD -10C13 OLD TURKIC LETTER ORKHON AED -10C14 OLD TURKIC LETTER ORKHON EZ -10C15 OLD TURKIC LETTER YENISEI EZ -10C16 OLD TURKIC LETTER ORKHON AY -10C17 OLD TURKIC LETTER YENISEI AY -10C18 OLD TURKIC LETTER ORKHON AEY -10C19 OLD TURKIC LETTER YENISEI AEY -10C1A OLD TURKIC LETTER ORKHON AEK -10C1B OLD TURKIC LETTER YENISEI AEK -10C1C OLD TURKIC LETTER ORKHON OEK -10C1D OLD TURKIC LETTER YENISEI OEK -10C1E OLD TURKIC LETTER ORKHON AL -10C1F OLD TURKIC LETTER YENISEI AL -10C20 OLD TURKIC LETTER ORKHON AEL -10C21 OLD TURKIC LETTER ORKHON ELT -10C22 OLD TURKIC LETTER ORKHON EM -10C23 OLD TURKIC LETTER ORKHON AN -10C24 OLD TURKIC LETTER ORKHON AEN -10C25 OLD TURKIC LETTER YENISEI AEN -10C26 OLD TURKIC LETTER ORKHON ENT -10C27 OLD TURKIC LETTER YENISEI ENT -10C28 OLD TURKIC LETTER ORKHON ENC -10C29 OLD TURKIC LETTER YENISEI ENC -10C2A OLD TURKIC LETTER ORKHON ENY -10C2B OLD TURKIC LETTER YENISEI ENY -10C2C OLD TURKIC LETTER YENISEI ANG -10C2D OLD TURKIC LETTER ORKHON ENG -10C2E OLD TURKIC LETTER YENISEI AENG -10C2F OLD TURKIC LETTER ORKHON EP -10C30 OLD TURKIC LETTER ORKHON OP -10C31 OLD TURKIC LETTER ORKHON IC -10C32 OLD TURKIC LETTER ORKHON EC -10C33 OLD TURKIC LETTER YENISEI EC -10C34 OLD TURKIC LETTER ORKHON AQ -10C35 OLD TURKIC LETTER YENISEI AQ -10C36 OLD TURKIC LETTER ORKHON IQ -10C37 OLD TURKIC LETTER YENISEI IQ -10C38 OLD TURKIC LETTER ORKHON OQ -10C39 OLD TURKIC LETTER YENISEI OQ -10C3A OLD TURKIC LETTER ORKHON AR -10C3B OLD TURKIC LETTER YENISEI AR -10C3C OLD TURKIC LETTER ORKHON AER -10C3D OLD TURKIC LETTER ORKHON AS -10C3E OLD TURKIC LETTER ORKHON AES -10C3F OLD TURKIC LETTER ORKHON ASH -10C40 OLD TURKIC LETTER YENISEI ASH -10C41 OLD TURKIC LETTER ORKHON ESH -10C42 OLD TURKIC LETTER YENISEI ESH -10C43 OLD TURKIC LETTER ORKHON AT -10C44 OLD TURKIC LETTER YENISEI AT -10C45 OLD TURKIC LETTER ORKHON AET -10C46 OLD TURKIC LETTER YENISEI AET -10C47 OLD TURKIC LETTER ORKHON OT -10C48 OLD TURKIC LETTER ORKHON BASH -10C80 OLD HUNGARIAN CAPITAL LETTER A -10C81 OLD HUNGARIAN CAPITAL LETTER AA -10C82 OLD HUNGARIAN CAPITAL LETTER EB -10C83 OLD HUNGARIAN CAPITAL LETTER AMB -10C84 OLD HUNGARIAN CAPITAL LETTER EC -10C85 OLD HUNGARIAN CAPITAL LETTER ENC -10C86 OLD HUNGARIAN CAPITAL LETTER ECS -10C87 OLD HUNGARIAN CAPITAL LETTER ED -10C88 OLD HUNGARIAN CAPITAL LETTER AND -10C89 OLD HUNGARIAN CAPITAL LETTER E -10C8A OLD HUNGARIAN CAPITAL LETTER CLOSE E -10C8B OLD HUNGARIAN CAPITAL LETTER EE -10C8C OLD HUNGARIAN CAPITAL LETTER EF -10C8D OLD HUNGARIAN CAPITAL LETTER EG -10C8E OLD HUNGARIAN CAPITAL LETTER EGY -10C8F OLD HUNGARIAN CAPITAL LETTER EH -10C90 OLD HUNGARIAN CAPITAL LETTER I -10C91 OLD HUNGARIAN CAPITAL LETTER II -10C92 OLD HUNGARIAN CAPITAL LETTER EJ -10C93 OLD HUNGARIAN CAPITAL LETTER EK -10C94 OLD HUNGARIAN CAPITAL LETTER AK -10C95 OLD HUNGARIAN CAPITAL LETTER UNK -10C96 OLD HUNGARIAN CAPITAL LETTER EL -10C97 OLD HUNGARIAN CAPITAL LETTER ELY -10C98 OLD HUNGARIAN CAPITAL LETTER EM -10C99 OLD HUNGARIAN CAPITAL LETTER EN -10C9A OLD HUNGARIAN CAPITAL LETTER ENY -10C9B OLD HUNGARIAN CAPITAL LETTER O -10C9C OLD HUNGARIAN CAPITAL LETTER OO -10C9D OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG OE -10C9E OLD HUNGARIAN CAPITAL LETTER RUDIMENTA OE -10C9F OLD HUNGARIAN CAPITAL LETTER OEE -10CA0 OLD HUNGARIAN CAPITAL LETTER EP -10CA1 OLD HUNGARIAN CAPITAL LETTER EMP -10CA2 OLD HUNGARIAN CAPITAL LETTER ER -10CA3 OLD HUNGARIAN CAPITAL LETTER SHORT ER -10CA4 OLD HUNGARIAN CAPITAL LETTER ES -10CA5 OLD HUNGARIAN CAPITAL LETTER ESZ -10CA6 OLD HUNGARIAN CAPITAL LETTER ET -10CA7 OLD HUNGARIAN CAPITAL LETTER ENT -10CA8 OLD HUNGARIAN CAPITAL LETTER ETY -10CA9 OLD HUNGARIAN CAPITAL LETTER ECH -10CAA OLD HUNGARIAN CAPITAL LETTER U -10CAB OLD HUNGARIAN CAPITAL LETTER UU -10CAC OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG UE -10CAD OLD HUNGARIAN CAPITAL LETTER RUDIMENTA UE -10CAE OLD HUNGARIAN CAPITAL LETTER EV -10CAF OLD HUNGARIAN CAPITAL LETTER EZ -10CB0 OLD HUNGARIAN CAPITAL LETTER EZS -10CB1 OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN -10CB2 OLD HUNGARIAN CAPITAL LETTER US -10CC0 OLD HUNGARIAN SMALL LETTER A -10CC1 OLD HUNGARIAN SMALL LETTER AA -10CC2 OLD HUNGARIAN SMALL LETTER EB -10CC3 OLD HUNGARIAN SMALL LETTER AMB -10CC4 OLD HUNGARIAN SMALL LETTER EC -10CC5 OLD HUNGARIAN SMALL LETTER ENC -10CC6 OLD HUNGARIAN SMALL LETTER ECS -10CC7 OLD HUNGARIAN SMALL LETTER ED -10CC8 OLD HUNGARIAN SMALL LETTER AND -10CC9 OLD HUNGARIAN SMALL LETTER E -10CCA OLD HUNGARIAN SMALL LETTER CLOSE E -10CCB OLD HUNGARIAN SMALL LETTER EE -10CCC OLD HUNGARIAN SMALL LETTER EF -10CCD OLD HUNGARIAN SMALL LETTER EG -10CCE OLD HUNGARIAN SMALL LETTER EGY -10CCF OLD HUNGARIAN SMALL LETTER EH -10CD0 OLD HUNGARIAN SMALL LETTER I -10CD1 OLD HUNGARIAN SMALL LETTER II -10CD2 OLD HUNGARIAN SMALL LETTER EJ -10CD3 OLD HUNGARIAN SMALL LETTER EK -10CD4 OLD HUNGARIAN SMALL LETTER AK -10CD5 OLD HUNGARIAN SMALL LETTER UNK -10CD6 OLD HUNGARIAN SMALL LETTER EL -10CD7 OLD HUNGARIAN SMALL LETTER ELY -10CD8 OLD HUNGARIAN SMALL LETTER EM -10CD9 OLD HUNGARIAN SMALL LETTER EN -10CDA OLD HUNGARIAN SMALL LETTER ENY -10CDB OLD HUNGARIAN SMALL LETTER O -10CDC OLD HUNGARIAN SMALL LETTER OO -10CDD OLD HUNGARIAN SMALL LETTER NIKOLSBURG OE -10CDE OLD HUNGARIAN SMALL LETTER RUDIMENTA OE -10CDF OLD HUNGARIAN SMALL LETTER OEE -10CE0 OLD HUNGARIAN SMALL LETTER EP -10CE1 OLD HUNGARIAN SMALL LETTER EMP -10CE2 OLD HUNGARIAN SMALL LETTER ER -10CE3 OLD HUNGARIAN SMALL LETTER SHORT ER -10CE4 OLD HUNGARIAN SMALL LETTER ES -10CE5 OLD HUNGARIAN SMALL LETTER ESZ -10CE6 OLD HUNGARIAN SMALL LETTER ET -10CE7 OLD HUNGARIAN SMALL LETTER ENT -10CE8 OLD HUNGARIAN SMALL LETTER ETY -10CE9 OLD HUNGARIAN SMALL LETTER ECH -10CEA OLD HUNGARIAN SMALL LETTER U -10CEB OLD HUNGARIAN SMALL LETTER UU -10CEC OLD HUNGARIAN SMALL LETTER NIKOLSBURG UE -10CED OLD HUNGARIAN SMALL LETTER RUDIMENTA UE -10CEE OLD HUNGARIAN SMALL LETTER EV -10CEF OLD HUNGARIAN SMALL LETTER EZ -10CF0 OLD HUNGARIAN SMALL LETTER EZS -10CF1 OLD HUNGARIAN SMALL LETTER ENT-SHAPED SIGN -10CF2 OLD HUNGARIAN SMALL LETTER US -10CFA OLD HUNGARIAN NUMBER ONE -10CFB OLD HUNGARIAN NUMBER FIVE -10CFC OLD HUNGARIAN NUMBER TEN -10CFD OLD HUNGARIAN NUMBER FIFTY -10CFE OLD HUNGARIAN NUMBER ONE HUNDRED -10CFF OLD HUNGARIAN NUMBER ONE THOUSAND -10E60 RUMI DIGIT ONE -10E61 RUMI DIGIT TWO -10E62 RUMI DIGIT THREE -10E63 RUMI DIGIT FOUR -10E64 RUMI DIGIT FIVE -10E65 RUMI DIGIT SIX -10E66 RUMI DIGIT SEVEN -10E67 RUMI DIGIT EIGHT -10E68 RUMI DIGIT NINE -10E69 RUMI NUMBER TEN -10E6A RUMI NUMBER TWENTY -10E6B RUMI NUMBER THIRTY -10E6C RUMI NUMBER FORTY -10E6D RUMI NUMBER FIFTY -10E6E RUMI NUMBER SIXTY -10E6F RUMI NUMBER SEVENTY -10E70 RUMI NUMBER EIGHTY -10E71 RUMI NUMBER NINETY -10E72 RUMI NUMBER ONE HUNDRED -10E73 RUMI NUMBER TWO HUNDRED -10E74 RUMI NUMBER THREE HUNDRED -10E75 RUMI NUMBER FOUR HUNDRED -10E76 RUMI NUMBER FIVE HUNDRED -10E77 RUMI NUMBER SIX HUNDRED -10E78 RUMI NUMBER SEVEN HUNDRED -10E79 RUMI NUMBER EIGHT HUNDRED -10E7A RUMI NUMBER NINE HUNDRED -10E7B RUMI FRACTION ONE HALF -10E7C RUMI FRACTION ONE QUARTER -10E7D RUMI FRACTION ONE THIRD -10E7E RUMI FRACTION TWO THIRDS -11000 BRAHMI SIGN CANDRABINDU -11001 BRAHMI SIGN ANUSVARA -11002 BRAHMI SIGN VISARGA -11003 BRAHMI SIGN JIHVAMULIYA -11004 BRAHMI SIGN UPADHMANIYA -11005 BRAHMI LETTER A -11006 BRAHMI LETTER AA -11007 BRAHMI LETTER I -11008 BRAHMI LETTER II -11009 BRAHMI LETTER U -1100A BRAHMI LETTER UU -1100B BRAHMI LETTER VOCALIC R -1100C BRAHMI LETTER VOCALIC RR -1100D BRAHMI LETTER VOCALIC L -1100E BRAHMI LETTER VOCALIC LL -1100F BRAHMI LETTER E -11010 BRAHMI LETTER AI -11011 BRAHMI LETTER O -11012 BRAHMI LETTER AU -11013 BRAHMI LETTER KA -11014 BRAHMI LETTER KHA -11015 BRAHMI LETTER GA -11016 BRAHMI LETTER GHA -11017 BRAHMI LETTER NGA -11018 BRAHMI LETTER CA -11019 BRAHMI LETTER CHA -1101A BRAHMI LETTER JA -1101B BRAHMI LETTER JHA -1101C BRAHMI LETTER NYA -1101D BRAHMI LETTER TTA -1101E BRAHMI LETTER TTHA -1101F BRAHMI LETTER DDA -11020 BRAHMI LETTER DDHA -11021 BRAHMI LETTER NNA -11022 BRAHMI LETTER TA -11023 BRAHMI LETTER THA -11024 BRAHMI LETTER DA -11025 BRAHMI LETTER DHA -11026 BRAHMI LETTER NA -11027 BRAHMI LETTER PA -11028 BRAHMI LETTER PHA -11029 BRAHMI LETTER BA -1102A BRAHMI LETTER BHA -1102B BRAHMI LETTER MA -1102C BRAHMI LETTER YA -1102D BRAHMI LETTER RA -1102E BRAHMI LETTER LA -1102F BRAHMI LETTER VA -11030 BRAHMI LETTER SHA -11031 BRAHMI LETTER SSA -11032 BRAHMI LETTER SA -11033 BRAHMI LETTER HA -11034 BRAHMI LETTER LLA -11035 BRAHMI LETTER OLD TAMIL LLLA -11036 BRAHMI LETTER OLD TAMIL RRA -11037 BRAHMI LETTER OLD TAMIL NNNA -11038 BRAHMI VOWEL SIGN AA -11039 BRAHMI VOWEL SIGN BHATTIPROLU AA -1103A BRAHMI VOWEL SIGN I -1103B BRAHMI VOWEL SIGN II -1103C BRAHMI VOWEL SIGN U -1103D BRAHMI VOWEL SIGN UU -1103E BRAHMI VOWEL SIGN VOCALIC R -1103F BRAHMI VOWEL SIGN VOCALIC RR -11040 BRAHMI VOWEL SIGN VOCALIC L -11041 BRAHMI VOWEL SIGN VOCALIC LL -11042 BRAHMI VOWEL SIGN E -11043 BRAHMI VOWEL SIGN AI -11044 BRAHMI VOWEL SIGN O -11045 BRAHMI VOWEL SIGN AU -11046 BRAHMI VIRAMA -11047 BRAHMI DANDA -11048 BRAHMI DOUBLE DANDA -11049 BRAHMI PUNCTUATION DOT -1104A BRAHMI PUNCTUATION DOUBLE DOT -1104B BRAHMI PUNCTUATION LINE -1104C BRAHMI PUNCTUATION CRESCENT BAR -1104D BRAHMI PUNCTUATION LOTUS -11052 BRAHMI NUMBER ONE -11053 BRAHMI NUMBER TWO -11054 BRAHMI NUMBER THREE -11055 BRAHMI NUMBER FOUR -11056 BRAHMI NUMBER FIVE -11057 BRAHMI NUMBER SIX -11058 BRAHMI NUMBER SEVEN -11059 BRAHMI NUMBER EIGHT -1105A BRAHMI NUMBER NINE -1105B BRAHMI NUMBER TEN -1105C BRAHMI NUMBER TWENTY -1105D BRAHMI NUMBER THIRTY -1105E BRAHMI NUMBER FORTY -1105F BRAHMI NUMBER FIFTY -11060 BRAHMI NUMBER SIXTY -11061 BRAHMI NUMBER SEVENTY -11062 BRAHMI NUMBER EIGHTY -11063 BRAHMI NUMBER NINETY -11064 BRAHMI NUMBER ONE HUNDRED -11065 BRAHMI NUMBER ONE THOUSAND -11066 BRAHMI DIGIT ZERO -11067 BRAHMI DIGIT ONE -11068 BRAHMI DIGIT TWO -11069 BRAHMI DIGIT THREE -1106A BRAHMI DIGIT FOUR -1106B BRAHMI DIGIT FIVE -1106C BRAHMI DIGIT SIX -1106D BRAHMI DIGIT SEVEN -1106E BRAHMI DIGIT EIGHT -1106F BRAHMI DIGIT NINE -1107F BRAHMI NUMBER JOINER -11080 KAITHI SIGN CANDRABINDU -11081 KAITHI SIGN ANUSVARA -11082 KAITHI SIGN VISARGA -11083 KAITHI LETTER A -11084 KAITHI LETTER AA -11085 KAITHI LETTER I -11086 KAITHI LETTER II -11087 KAITHI LETTER U -11088 KAITHI LETTER UU -11089 KAITHI LETTER E -1108A KAITHI LETTER AI -1108B KAITHI LETTER O -1108C KAITHI LETTER AU -1108D KAITHI LETTER KA -1108E KAITHI LETTER KHA -1108F KAITHI LETTER GA -11090 KAITHI LETTER GHA -11091 KAITHI LETTER NGA -11092 KAITHI LETTER CA -11093 KAITHI LETTER CHA -11094 KAITHI LETTER JA -11095 KAITHI LETTER JHA -11096 KAITHI LETTER NYA -11097 KAITHI LETTER TTA -11098 KAITHI LETTER TTHA -11099 KAITHI LETTER DDA -1109A KAITHI LETTER DDDHA -1109B KAITHI LETTER DDHA -1109C KAITHI LETTER RHA -1109D KAITHI LETTER NNA -1109E KAITHI LETTER TA -1109F KAITHI LETTER THA -110A0 KAITHI LETTER DA -110A1 KAITHI LETTER DHA -110A2 KAITHI LETTER NA -110A3 KAITHI LETTER PA -110A4 KAITHI LETTER PHA -110A5 KAITHI LETTER BA -110A6 KAITHI LETTER BHA -110A7 KAITHI LETTER MA -110A8 KAITHI LETTER YA -110A9 KAITHI LETTER RA -110AA KAITHI LETTER LA -110AB KAITHI LETTER VA -110AC KAITHI LETTER SHA -110AD KAITHI LETTER SSA -110AE KAITHI LETTER SA -110AF KAITHI LETTER HA -110B0 KAITHI VOWEL SIGN AA -110B1 KAITHI VOWEL SIGN I -110B2 KAITHI VOWEL SIGN II -110B3 KAITHI VOWEL SIGN U -110B4 KAITHI VOWEL SIGN UU -110B5 KAITHI VOWEL SIGN E -110B6 KAITHI VOWEL SIGN AI -110B7 KAITHI VOWEL SIGN O -110B8 KAITHI VOWEL SIGN AU -110B9 KAITHI SIGN VIRAMA -110BA KAITHI SIGN NUKTA -110BB KAITHI ABBREVIATION SIGN -110BC KAITHI ENUMERATION SIGN -110BD KAITHI NUMBER SIGN -110BE KAITHI SECTION MARK -110BF KAITHI DOUBLE SECTION MARK -110C0 KAITHI DANDA -110C1 KAITHI DOUBLE DANDA -110D0 SORA SOMPENG LETTER SAH -110D1 SORA SOMPENG LETTER TAH -110D2 SORA SOMPENG LETTER BAH -110D3 SORA SOMPENG LETTER CAH -110D4 SORA SOMPENG LETTER DAH -110D5 SORA SOMPENG LETTER GAH -110D6 SORA SOMPENG LETTER MAH -110D7 SORA SOMPENG LETTER NGAH -110D8 SORA SOMPENG LETTER LAH -110D9 SORA SOMPENG LETTER NAH -110DA SORA SOMPENG LETTER VAH -110DB SORA SOMPENG LETTER PAH -110DC SORA SOMPENG LETTER YAH -110DD SORA SOMPENG LETTER RAH -110DE SORA SOMPENG LETTER HAH -110DF SORA SOMPENG LETTER KAH -110E0 SORA SOMPENG LETTER JAH -110E1 SORA SOMPENG LETTER NYAH -110E2 SORA SOMPENG LETTER AH -110E3 SORA SOMPENG LETTER EEH -110E4 SORA SOMPENG LETTER IH -110E5 SORA SOMPENG LETTER UH -110E6 SORA SOMPENG LETTER OH -110E7 SORA SOMPENG LETTER EH -110E8 SORA SOMPENG LETTER MAE -110F0 SORA SOMPENG DIGIT ZERO -110F1 SORA SOMPENG DIGIT ONE -110F2 SORA SOMPENG DIGIT TWO -110F3 SORA SOMPENG DIGIT THREE -110F4 SORA SOMPENG DIGIT FOUR -110F5 SORA SOMPENG DIGIT FIVE -110F6 SORA SOMPENG DIGIT SIX -110F7 SORA SOMPENG DIGIT SEVEN -110F8 SORA SOMPENG DIGIT EIGHT -110F9 SORA SOMPENG DIGIT NINE -11100 CHAKMA SIGN CANDRABINDU -11101 CHAKMA SIGN ANUSVARA -11102 CHAKMA SIGN VISARGA -11103 CHAKMA LETTER AA -11104 CHAKMA LETTER I -11105 CHAKMA LETTER U -11106 CHAKMA LETTER E -11107 CHAKMA LETTER KAA -11108 CHAKMA LETTER KHAA -11109 CHAKMA LETTER GAA -1110A CHAKMA LETTER GHAA -1110B CHAKMA LETTER NGAA -1110C CHAKMA LETTER CAA -1110D CHAKMA LETTER CHAA -1110E CHAKMA LETTER JAA -1110F CHAKMA LETTER JHAA -11110 CHAKMA LETTER NYAA -11111 CHAKMA LETTER TTAA -11112 CHAKMA LETTER TTHAA -11113 CHAKMA LETTER DDAA -11114 CHAKMA LETTER DDHAA -11115 CHAKMA LETTER NNAA -11116 CHAKMA LETTER TAA -11117 CHAKMA LETTER THAA -11118 CHAKMA LETTER DAA -11119 CHAKMA LETTER DHAA -1111A CHAKMA LETTER NAA -1111B CHAKMA LETTER PAA -1111C CHAKMA LETTER PHAA -1111D CHAKMA LETTER BAA -1111E CHAKMA LETTER BHAA -1111F CHAKMA LETTER MAA -11120 CHAKMA LETTER YYAA -11121 CHAKMA LETTER YAA -11122 CHAKMA LETTER RAA -11123 CHAKMA LETTER LAA -11124 CHAKMA LETTER WAA -11125 CHAKMA LETTER SAA -11126 CHAKMA LETTER HAA -11127 CHAKMA VOWEL SIGN A -11128 CHAKMA VOWEL SIGN I -11129 CHAKMA VOWEL SIGN II -1112A CHAKMA VOWEL SIGN U -1112B CHAKMA VOWEL SIGN UU -1112C CHAKMA VOWEL SIGN E -1112D CHAKMA VOWEL SIGN AI -1112E CHAKMA VOWEL SIGN O -1112F CHAKMA VOWEL SIGN AU -11130 CHAKMA VOWEL SIGN OI -11131 CHAKMA O MARK -11132 CHAKMA AU MARK -11133 CHAKMA VIRAMA -11134 CHAKMA MAAYYAA -11136 CHAKMA DIGIT ZERO -11137 CHAKMA DIGIT ONE -11138 CHAKMA DIGIT TWO -11139 CHAKMA DIGIT THREE -1113A CHAKMA DIGIT FOUR -1113B CHAKMA DIGIT FIVE -1113C CHAKMA DIGIT SIX -1113D CHAKMA DIGIT SEVEN -1113E CHAKMA DIGIT EIGHT -1113F CHAKMA DIGIT NINE -11140 CHAKMA SECTION MARK -11141 CHAKMA DANDA -11142 CHAKMA DOUBLE DANDA -11143 CHAKMA QUESTION MARK -11150 MAHAJANI LETTER A -11151 MAHAJANI LETTER I -11152 MAHAJANI LETTER U -11153 MAHAJANI LETTER E -11154 MAHAJANI LETTER O -11155 MAHAJANI LETTER KA -11156 MAHAJANI LETTER KHA -11157 MAHAJANI LETTER GA -11158 MAHAJANI LETTER GHA -11159 MAHAJANI LETTER CA -1115A MAHAJANI LETTER CHA -1115B MAHAJANI LETTER JA -1115C MAHAJANI LETTER JHA -1115D MAHAJANI LETTER NYA -1115E MAHAJANI LETTER TTA -1115F MAHAJANI LETTER TTHA -11160 MAHAJANI LETTER DDA -11161 MAHAJANI LETTER DDHA -11162 MAHAJANI LETTER NNA -11163 MAHAJANI LETTER TA -11164 MAHAJANI LETTER THA -11165 MAHAJANI LETTER DA -11166 MAHAJANI LETTER DHA -11167 MAHAJANI LETTER NA -11168 MAHAJANI LETTER PA -11169 MAHAJANI LETTER PHA -1116A MAHAJANI LETTER BA -1116B MAHAJANI LETTER BHA -1116C MAHAJANI LETTER MA -1116D MAHAJANI LETTER RA -1116E MAHAJANI LETTER LA -1116F MAHAJANI LETTER VA -11170 MAHAJANI LETTER SA -11171 MAHAJANI LETTER HA -11172 MAHAJANI LETTER RRA -11173 MAHAJANI SIGN NUKTA -11174 MAHAJANI ABBREVIATION SIGN -11175 MAHAJANI SECTION MARK -11176 MAHAJANI LIGATURE SHRI -11180 SHARADA SIGN CANDRABINDU -11181 SHARADA SIGN ANUSVARA -11182 SHARADA SIGN VISARGA -11183 SHARADA LETTER A -11184 SHARADA LETTER AA -11185 SHARADA LETTER I -11186 SHARADA LETTER II -11187 SHARADA LETTER U -11188 SHARADA LETTER UU -11189 SHARADA LETTER VOCALIC R -1118A SHARADA LETTER VOCALIC RR -1118B SHARADA LETTER VOCALIC L -1118C SHARADA LETTER VOCALIC LL -1118D SHARADA LETTER E -1118E SHARADA LETTER AI -1118F SHARADA LETTER O -11190 SHARADA LETTER AU -11191 SHARADA LETTER KA -11192 SHARADA LETTER KHA -11193 SHARADA LETTER GA -11194 SHARADA LETTER GHA -11195 SHARADA LETTER NGA -11196 SHARADA LETTER CA -11197 SHARADA LETTER CHA -11198 SHARADA LETTER JA -11199 SHARADA LETTER JHA -1119A SHARADA LETTER NYA -1119B SHARADA LETTER TTA -1119C SHARADA LETTER TTHA -1119D SHARADA LETTER DDA -1119E SHARADA LETTER DDHA -1119F SHARADA LETTER NNA -111A0 SHARADA LETTER TA -111A1 SHARADA LETTER THA -111A2 SHARADA LETTER DA -111A3 SHARADA LETTER DHA -111A4 SHARADA LETTER NA -111A5 SHARADA LETTER PA -111A6 SHARADA LETTER PHA -111A7 SHARADA LETTER BA -111A8 SHARADA LETTER BHA -111A9 SHARADA LETTER MA -111AA SHARADA LETTER YA -111AB SHARADA LETTER RA -111AC SHARADA LETTER LA -111AD SHARADA LETTER LLA -111AE SHARADA LETTER VA -111AF SHARADA LETTER SHA -111B0 SHARADA LETTER SSA -111B1 SHARADA LETTER SA -111B2 SHARADA LETTER HA -111B3 SHARADA VOWEL SIGN AA -111B4 SHARADA VOWEL SIGN I -111B5 SHARADA VOWEL SIGN II -111B6 SHARADA VOWEL SIGN U -111B7 SHARADA VOWEL SIGN UU -111B8 SHARADA VOWEL SIGN VOCALIC R -111B9 SHARADA VOWEL SIGN VOCALIC RR -111BA SHARADA VOWEL SIGN VOCALIC L -111BB SHARADA VOWEL SIGN VOCALIC LL -111BC SHARADA VOWEL SIGN E -111BD SHARADA VOWEL SIGN AI -111BE SHARADA VOWEL SIGN O -111BF SHARADA VOWEL SIGN AU -111C0 SHARADA SIGN VIRAMA -111C1 SHARADA SIGN AVAGRAHA -111C2 SHARADA SIGN JIHVAMULIYA -111C3 SHARADA SIGN UPADHMANIYA -111C4 SHARADA OM -111C5 SHARADA DANDA -111C6 SHARADA DOUBLE DANDA -111C7 SHARADA ABBREVIATION SIGN -111C8 SHARADA SEPARATOR -111C9 SHARADA SANDHI MARK -111CA SHARADA SIGN NUKTA -111CB SHARADA VOWEL MODIFIER MARK -111CC SHARADA EXTRA SHORT VOWEL MARK -111CD SHARADA SUTRA MARK -111D0 SHARADA DIGIT ZERO -111D1 SHARADA DIGIT ONE -111D2 SHARADA DIGIT TWO -111D3 SHARADA DIGIT THREE -111D4 SHARADA DIGIT FOUR -111D5 SHARADA DIGIT FIVE -111D6 SHARADA DIGIT SIX -111D7 SHARADA DIGIT SEVEN -111D8 SHARADA DIGIT EIGHT -111D9 SHARADA DIGIT NINE -111DA SHARADA EKAM -111DB SHARADA SIGN SIDDHAM -111DC SHARADA HEADSTROKE -111DD SHARADA CONTINUATION SIGN -111DE SHARADA SECTION MARK-1 -111DF SHARADA SECTION MARK-2 -111E1 SINHALA ARCHAIC DIGIT ONE -111E2 SINHALA ARCHAIC DIGIT TWO -111E3 SINHALA ARCHAIC DIGIT THREE -111E4 SINHALA ARCHAIC DIGIT FOUR -111E5 SINHALA ARCHAIC DIGIT FIVE -111E6 SINHALA ARCHAIC DIGIT SIX -111E7 SINHALA ARCHAIC DIGIT SEVEN -111E8 SINHALA ARCHAIC DIGIT EIGHT -111E9 SINHALA ARCHAIC DIGIT NINE -111EA SINHALA ARCHAIC NUMBER TEN -111EB SINHALA ARCHAIC NUMBER TWENTY -111EC SINHALA ARCHAIC NUMBER THIRTY -111ED SINHALA ARCHAIC NUMBER FORTY -111EE SINHALA ARCHAIC NUMBER FIFTY -111EF SINHALA ARCHAIC NUMBER SIXTY -111F0 SINHALA ARCHAIC NUMBER SEVENTY -111F1 SINHALA ARCHAIC NUMBER EIGHTY -111F2 SINHALA ARCHAIC NUMBER NINETY -111F3 SINHALA ARCHAIC NUMBER ONE HUNDRED -111F4 SINHALA ARCHAIC NUMBER ONE THOUSAND -11200 KHOJKI LETTER A -11201 KHOJKI LETTER AA -11202 KHOJKI LETTER I -11203 KHOJKI LETTER U -11204 KHOJKI LETTER E -11205 KHOJKI LETTER AI -11206 KHOJKI LETTER O -11207 KHOJKI LETTER AU -11208 KHOJKI LETTER KA -11209 KHOJKI LETTER KHA -1120A KHOJKI LETTER GA -1120B KHOJKI LETTER GGA -1120C KHOJKI LETTER GHA -1120D KHOJKI LETTER NGA -1120E KHOJKI LETTER CA -1120F KHOJKI LETTER CHA -11210 KHOJKI LETTER JA -11211 KHOJKI LETTER JJA -11213 KHOJKI LETTER NYA -11214 KHOJKI LETTER TTA -11215 KHOJKI LETTER TTHA -11216 KHOJKI LETTER DDA -11217 KHOJKI LETTER DDHA -11218 KHOJKI LETTER NNA -11219 KHOJKI LETTER TA -1121A KHOJKI LETTER THA -1121B KHOJKI LETTER DA -1121C KHOJKI LETTER DDDA -1121D KHOJKI LETTER DHA -1121E KHOJKI LETTER NA -1121F KHOJKI LETTER PA -11220 KHOJKI LETTER PHA -11221 KHOJKI LETTER BA -11222 KHOJKI LETTER BBA -11223 KHOJKI LETTER BHA -11224 KHOJKI LETTER MA -11225 KHOJKI LETTER YA -11226 KHOJKI LETTER RA -11227 KHOJKI LETTER LA -11228 KHOJKI LETTER VA -11229 KHOJKI LETTER SA -1122A KHOJKI LETTER HA -1122B KHOJKI LETTER LLA -1122C KHOJKI VOWEL SIGN AA -1122D KHOJKI VOWEL SIGN I -1122E KHOJKI VOWEL SIGN II -1122F KHOJKI VOWEL SIGN U -11230 KHOJKI VOWEL SIGN E -11231 KHOJKI VOWEL SIGN AI -11232 KHOJKI VOWEL SIGN O -11233 KHOJKI VOWEL SIGN AU -11234 KHOJKI SIGN ANUSVARA -11235 KHOJKI SIGN VIRAMA -11236 KHOJKI SIGN NUKTA -11237 KHOJKI SIGN SHADDA -11238 KHOJKI DANDA -11239 KHOJKI DOUBLE DANDA -1123A KHOJKI WORD SEPARATOR -1123B KHOJKI SECTION MARK -1123C KHOJKI DOUBLE SECTION MARK -1123D KHOJKI ABBREVIATION SIGN -11280 MULTANI LETTER A -11281 MULTANI LETTER I -11282 MULTANI LETTER U -11283 MULTANI LETTER E -11284 MULTANI LETTER KA -11285 MULTANI LETTER KHA -11286 MULTANI LETTER GA -11288 MULTANI LETTER GHA -1128A MULTANI LETTER CA -1128B MULTANI LETTER CHA -1128C MULTANI LETTER JA -1128D MULTANI LETTER JJA -1128F MULTANI LETTER NYA -11290 MULTANI LETTER TTA -11291 MULTANI LETTER TTHA -11292 MULTANI LETTER DDA -11293 MULTANI LETTER DDDA -11294 MULTANI LETTER DDHA -11295 MULTANI LETTER NNA -11296 MULTANI LETTER TA -11297 MULTANI LETTER THA -11298 MULTANI LETTER DA -11299 MULTANI LETTER DHA -1129A MULTANI LETTER NA -1129B MULTANI LETTER PA -1129C MULTANI LETTER PHA -1129D MULTANI LETTER BA -1129F MULTANI LETTER BHA -112A0 MULTANI LETTER MA -112A1 MULTANI LETTER YA -112A2 MULTANI LETTER RA -112A3 MULTANI LETTER LA -112A4 MULTANI LETTER VA -112A5 MULTANI LETTER SA -112A6 MULTANI LETTER HA -112A7 MULTANI LETTER RRA -112A8 MULTANI LETTER RHA -112A9 MULTANI SECTION MARK -112B0 KHUDAWADI LETTER A -112B1 KHUDAWADI LETTER AA -112B2 KHUDAWADI LETTER I -112B3 KHUDAWADI LETTER II -112B4 KHUDAWADI LETTER U -112B5 KHUDAWADI LETTER UU -112B6 KHUDAWADI LETTER E -112B7 KHUDAWADI LETTER AI -112B8 KHUDAWADI LETTER O -112B9 KHUDAWADI LETTER AU -112BA KHUDAWADI LETTER KA -112BB KHUDAWADI LETTER KHA -112BC KHUDAWADI LETTER GA -112BD KHUDAWADI LETTER GGA -112BE KHUDAWADI LETTER GHA -112BF KHUDAWADI LETTER NGA -112C0 KHUDAWADI LETTER CA -112C1 KHUDAWADI LETTER CHA -112C2 KHUDAWADI LETTER JA -112C3 KHUDAWADI LETTER JJA -112C4 KHUDAWADI LETTER JHA -112C5 KHUDAWADI LETTER NYA -112C6 KHUDAWADI LETTER TTA -112C7 KHUDAWADI LETTER TTHA -112C8 KHUDAWADI LETTER DDA -112C9 KHUDAWADI LETTER DDDA -112CA KHUDAWADI LETTER RRA -112CB KHUDAWADI LETTER DDHA -112CC KHUDAWADI LETTER NNA -112CD KHUDAWADI LETTER TA -112CE KHUDAWADI LETTER THA -112CF KHUDAWADI LETTER DA -112D0 KHUDAWADI LETTER DHA -112D1 KHUDAWADI LETTER NA -112D2 KHUDAWADI LETTER PA -112D3 KHUDAWADI LETTER PHA -112D4 KHUDAWADI LETTER BA -112D5 KHUDAWADI LETTER BBA -112D6 KHUDAWADI LETTER BHA -112D7 KHUDAWADI LETTER MA -112D8 KHUDAWADI LETTER YA -112D9 KHUDAWADI LETTER RA -112DA KHUDAWADI LETTER LA -112DB KHUDAWADI LETTER VA -112DC KHUDAWADI LETTER SHA -112DD KHUDAWADI LETTER SA -112DE KHUDAWADI LETTER HA -112DF KHUDAWADI SIGN ANUSVARA -112E0 KHUDAWADI VOWEL SIGN AA -112E1 KHUDAWADI VOWEL SIGN I -112E2 KHUDAWADI VOWEL SIGN II -112E3 KHUDAWADI VOWEL SIGN U -112E4 KHUDAWADI VOWEL SIGN UU -112E5 KHUDAWADI VOWEL SIGN E -112E6 KHUDAWADI VOWEL SIGN AI -112E7 KHUDAWADI VOWEL SIGN O -112E8 KHUDAWADI VOWEL SIGN AU -112E9 KHUDAWADI SIGN NUKTA -112EA KHUDAWADI SIGN VIRAMA -112F0 KHUDAWADI DIGIT ZERO -112F1 KHUDAWADI DIGIT ONE -112F2 KHUDAWADI DIGIT TWO -112F3 KHUDAWADI DIGIT THREE -112F4 KHUDAWADI DIGIT FOUR -112F5 KHUDAWADI DIGIT FIVE -112F6 KHUDAWADI DIGIT SIX -112F7 KHUDAWADI DIGIT SEVEN -112F8 KHUDAWADI DIGIT EIGHT -112F9 KHUDAWADI DIGIT NINE -11300 GRANTHA SIGN COMBINING ANUSVARA ABOVE -11301 GRANTHA SIGN CANDRABINDU -11302 GRANTHA SIGN ANUSVARA -11303 GRANTHA SIGN VISARGA -11305 GRANTHA LETTER A -11306 GRANTHA LETTER AA -11307 GRANTHA LETTER I -11308 GRANTHA LETTER II -11309 GRANTHA LETTER U -1130A GRANTHA LETTER UU -1130B GRANTHA LETTER VOCALIC R -1130C GRANTHA LETTER VOCALIC L -1130F GRANTHA LETTER EE -11310 GRANTHA LETTER AI -11313 GRANTHA LETTER OO -11314 GRANTHA LETTER AU -11315 GRANTHA LETTER KA -11316 GRANTHA LETTER KHA -11317 GRANTHA LETTER GA -11318 GRANTHA LETTER GHA -11319 GRANTHA LETTER NGA -1131A GRANTHA LETTER CA -1131B GRANTHA LETTER CHA -1131C GRANTHA LETTER JA -1131D GRANTHA LETTER JHA -1131E GRANTHA LETTER NYA -1131F GRANTHA LETTER TTA -11320 GRANTHA LETTER TTHA -11321 GRANTHA LETTER DDA -11322 GRANTHA LETTER DDHA -11323 GRANTHA LETTER NNA -11324 GRANTHA LETTER TA -11325 GRANTHA LETTER THA -11326 GRANTHA LETTER DA -11327 GRANTHA LETTER DHA -11328 GRANTHA LETTER NA -1132A GRANTHA LETTER PA -1132B GRANTHA LETTER PHA -1132C GRANTHA LETTER BA -1132D GRANTHA LETTER BHA -1132E GRANTHA LETTER MA -1132F GRANTHA LETTER YA -11330 GRANTHA LETTER RA -11332 GRANTHA LETTER LA -11333 GRANTHA LETTER LLA -11335 GRANTHA LETTER VA -11336 GRANTHA LETTER SHA -11337 GRANTHA LETTER SSA -11338 GRANTHA LETTER SA -11339 GRANTHA LETTER HA -1133C GRANTHA SIGN NUKTA -1133D GRANTHA SIGN AVAGRAHA -1133E GRANTHA VOWEL SIGN AA -1133F GRANTHA VOWEL SIGN I -11340 GRANTHA VOWEL SIGN II -11341 GRANTHA VOWEL SIGN U -11342 GRANTHA VOWEL SIGN UU -11343 GRANTHA VOWEL SIGN VOCALIC R -11344 GRANTHA VOWEL SIGN VOCALIC RR -11347 GRANTHA VOWEL SIGN EE -11348 GRANTHA VOWEL SIGN AI -1134B GRANTHA VOWEL SIGN OO -1134C GRANTHA VOWEL SIGN AU -1134D GRANTHA SIGN VIRAMA -11350 GRANTHA OM -11357 GRANTHA AU LENGTH MARK -1135D GRANTHA SIGN PLUTA -1135E GRANTHA LETTER VEDIC ANUSVARA -1135F GRANTHA LETTER VEDIC DOUBLE ANUSVARA -11360 GRANTHA LETTER VOCALIC RR -11361 GRANTHA LETTER VOCALIC LL -11362 GRANTHA VOWEL SIGN VOCALIC L -11363 GRANTHA VOWEL SIGN VOCALIC LL -11366 COMBINING GRANTHA DIGIT ZERO -11367 COMBINING GRANTHA DIGIT ONE -11368 COMBINING GRANTHA DIGIT TWO -11369 COMBINING GRANTHA DIGIT THREE -1136A COMBINING GRANTHA DIGIT FOUR -1136B COMBINING GRANTHA DIGIT FIVE -1136C COMBINING GRANTHA DIGIT SIX -11370 COMBINING GRANTHA LETTER A -11371 COMBINING GRANTHA LETTER KA -11372 COMBINING GRANTHA LETTER NA -11373 COMBINING GRANTHA LETTER VI -11374 COMBINING GRANTHA LETTER PA -11480 TIRHUTA ANJI -11481 TIRHUTA LETTER A -11482 TIRHUTA LETTER AA -11483 TIRHUTA LETTER I -11484 TIRHUTA LETTER II -11485 TIRHUTA LETTER U -11486 TIRHUTA LETTER UU -11487 TIRHUTA LETTER VOCALIC R -11488 TIRHUTA LETTER VOCALIC RR -11489 TIRHUTA LETTER VOCALIC L -1148A TIRHUTA LETTER VOCALIC LL -1148B TIRHUTA LETTER E -1148C TIRHUTA LETTER AI -1148D TIRHUTA LETTER O -1148E TIRHUTA LETTER AU -1148F TIRHUTA LETTER KA -11490 TIRHUTA LETTER KHA -11491 TIRHUTA LETTER GA -11492 TIRHUTA LETTER GHA -11493 TIRHUTA LETTER NGA -11494 TIRHUTA LETTER CA -11495 TIRHUTA LETTER CHA -11496 TIRHUTA LETTER JA -11497 TIRHUTA LETTER JHA -11498 TIRHUTA LETTER NYA -11499 TIRHUTA LETTER TTA -1149A TIRHUTA LETTER TTHA -1149B TIRHUTA LETTER DDA -1149C TIRHUTA LETTER DDHA -1149D TIRHUTA LETTER NNA -1149E TIRHUTA LETTER TA -1149F TIRHUTA LETTER THA -114A0 TIRHUTA LETTER DA -114A1 TIRHUTA LETTER DHA -114A2 TIRHUTA LETTER NA -114A3 TIRHUTA LETTER PA -114A4 TIRHUTA LETTER PHA -114A5 TIRHUTA LETTER BA -114A6 TIRHUTA LETTER BHA -114A7 TIRHUTA LETTER MA -114A8 TIRHUTA LETTER YA -114A9 TIRHUTA LETTER RA -114AA TIRHUTA LETTER LA -114AB TIRHUTA LETTER VA -114AC TIRHUTA LETTER SHA -114AD TIRHUTA LETTER SSA -114AE TIRHUTA LETTER SA -114AF TIRHUTA LETTER HA -114B0 TIRHUTA VOWEL SIGN AA -114B1 TIRHUTA VOWEL SIGN I -114B2 TIRHUTA VOWEL SIGN II -114B3 TIRHUTA VOWEL SIGN U -114B4 TIRHUTA VOWEL SIGN UU -114B5 TIRHUTA VOWEL SIGN VOCALIC R -114B6 TIRHUTA VOWEL SIGN VOCALIC RR -114B7 TIRHUTA VOWEL SIGN VOCALIC L -114B8 TIRHUTA VOWEL SIGN VOCALIC LL -114B9 TIRHUTA VOWEL SIGN E -114BA TIRHUTA VOWEL SIGN SHORT E -114BB TIRHUTA VOWEL SIGN AI -114BC TIRHUTA VOWEL SIGN O -114BD TIRHUTA VOWEL SIGN SHORT O -114BE TIRHUTA VOWEL SIGN AU -114BF TIRHUTA SIGN CANDRABINDU -114C0 TIRHUTA SIGN ANUSVARA -114C1 TIRHUTA SIGN VISARGA -114C2 TIRHUTA SIGN VIRAMA -114C3 TIRHUTA SIGN NUKTA -114C4 TIRHUTA SIGN AVAGRAHA -114C5 TIRHUTA GVANG -114C6 TIRHUTA ABBREVIATION SIGN -114C7 TIRHUTA OM -114D0 TIRHUTA DIGIT ZERO -114D1 TIRHUTA DIGIT ONE -114D2 TIRHUTA DIGIT TWO -114D3 TIRHUTA DIGIT THREE -114D4 TIRHUTA DIGIT FOUR -114D5 TIRHUTA DIGIT FIVE -114D6 TIRHUTA DIGIT SIX -114D7 TIRHUTA DIGIT SEVEN -114D8 TIRHUTA DIGIT EIGHT -114D9 TIRHUTA DIGIT NINE -11580 SIDDHAM LETTER A -11581 SIDDHAM LETTER AA -11582 SIDDHAM LETTER I -11583 SIDDHAM LETTER II -11584 SIDDHAM LETTER U -11585 SIDDHAM LETTER UU -11586 SIDDHAM LETTER VOCALIC R -11587 SIDDHAM LETTER VOCALIC RR -11588 SIDDHAM LETTER VOCALIC L -11589 SIDDHAM LETTER VOCALIC LL -1158A SIDDHAM LETTER E -1158B SIDDHAM LETTER AI -1158C SIDDHAM LETTER O -1158D SIDDHAM LETTER AU -1158E SIDDHAM LETTER KA -1158F SIDDHAM LETTER KHA -11590 SIDDHAM LETTER GA -11591 SIDDHAM LETTER GHA -11592 SIDDHAM LETTER NGA -11593 SIDDHAM LETTER CA -11594 SIDDHAM LETTER CHA -11595 SIDDHAM LETTER JA -11596 SIDDHAM LETTER JHA -11597 SIDDHAM LETTER NYA -11598 SIDDHAM LETTER TTA -11599 SIDDHAM LETTER TTHA -1159A SIDDHAM LETTER DDA -1159B SIDDHAM LETTER DDHA -1159C SIDDHAM LETTER NNA -1159D SIDDHAM LETTER TA -1159E SIDDHAM LETTER THA -1159F SIDDHAM LETTER DA -115A0 SIDDHAM LETTER DHA -115A1 SIDDHAM LETTER NA -115A2 SIDDHAM LETTER PA -115A3 SIDDHAM LETTER PHA -115A4 SIDDHAM LETTER BA -115A5 SIDDHAM LETTER BHA -115A6 SIDDHAM LETTER MA -115A7 SIDDHAM LETTER YA -115A8 SIDDHAM LETTER RA -115A9 SIDDHAM LETTER LA -115AA SIDDHAM LETTER VA -115AB SIDDHAM LETTER SHA -115AC SIDDHAM LETTER SSA -115AD SIDDHAM LETTER SA -115AE SIDDHAM LETTER HA -115AF SIDDHAM VOWEL SIGN AA -115B0 SIDDHAM VOWEL SIGN I -115B1 SIDDHAM VOWEL SIGN II -115B2 SIDDHAM VOWEL SIGN U -115B3 SIDDHAM VOWEL SIGN UU -115B4 SIDDHAM VOWEL SIGN VOCALIC R -115B5 SIDDHAM VOWEL SIGN VOCALIC RR -115B8 SIDDHAM VOWEL SIGN E -115B9 SIDDHAM VOWEL SIGN AI -115BA SIDDHAM VOWEL SIGN O -115BB SIDDHAM VOWEL SIGN AU -115BC SIDDHAM SIGN CANDRABINDU -115BD SIDDHAM SIGN ANUSVARA -115BE SIDDHAM SIGN VISARGA -115BF SIDDHAM SIGN VIRAMA -115C0 SIDDHAM SIGN NUKTA -115C1 SIDDHAM SIGN SIDDHAM -115C2 SIDDHAM DANDA -115C3 SIDDHAM DOUBLE DANDA -115C4 SIDDHAM SEPARATOR DOT -115C5 SIDDHAM SEPARATOR BAR -115C6 SIDDHAM REPETITION MARK-1 -115C7 SIDDHAM REPETITION MARK-2 -115C8 SIDDHAM REPETITION MARK-3 -115C9 SIDDHAM END OF TEXT MARK -115CA SIDDHAM SECTION MARK WITH TRIDENT AND U-SHAPED ORNAMENTS -115CB SIDDHAM SECTION MARK WITH TRIDENT AND DOTTED CRESCENTS -115CC SIDDHAM SECTION MARK WITH RAYS AND DOTTED CRESCENTS -115CD SIDDHAM SECTION MARK WITH RAYS AND DOTTED DOUBLE CRESCENTS -115CE SIDDHAM SECTION MARK WITH RAYS AND DOTTED TRIPLE CRESCENTS -115CF SIDDHAM SECTION MARK DOUBLE RING -115D0 SIDDHAM SECTION MARK DOUBLE RING WITH RAYS -115D1 SIDDHAM SECTION MARK WITH DOUBLE CRESCENTS -115D2 SIDDHAM SECTION MARK WITH TRIPLE CRESCENTS -115D3 SIDDHAM SECTION MARK WITH QUADRUPLE CRESCENTS -115D4 SIDDHAM SECTION MARK WITH SEPTUPLE CRESCENTS -115D5 SIDDHAM SECTION MARK WITH CIRCLES AND RAYS -115D6 SIDDHAM SECTION MARK WITH CIRCLES AND TWO ENCLOSURES -115D7 SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES -115D8 SIDDHAM LETTER THREE-CIRCLE ALTERNATE I -115D9 SIDDHAM LETTER TWO-CIRCLE ALTERNATE I -115DA SIDDHAM LETTER TWO-CIRCLE ALTERNATE II -115DB SIDDHAM LETTER ALTERNATE U -115DC SIDDHAM VOWEL SIGN ALTERNATE U -115DD SIDDHAM VOWEL SIGN ALTERNATE UU -11600 MODI LETTER A -11601 MODI LETTER AA -11602 MODI LETTER I -11603 MODI LETTER II -11604 MODI LETTER U -11605 MODI LETTER UU -11606 MODI LETTER VOCALIC R -11607 MODI LETTER VOCALIC RR -11608 MODI LETTER VOCALIC L -11609 MODI LETTER VOCALIC LL -1160A MODI LETTER E -1160B MODI LETTER AI -1160C MODI LETTER O -1160D MODI LETTER AU -1160E MODI LETTER KA -1160F MODI LETTER KHA -11610 MODI LETTER GA -11611 MODI LETTER GHA -11612 MODI LETTER NGA -11613 MODI LETTER CA -11614 MODI LETTER CHA -11615 MODI LETTER JA -11616 MODI LETTER JHA -11617 MODI LETTER NYA -11618 MODI LETTER TTA -11619 MODI LETTER TTHA -1161A MODI LETTER DDA -1161B MODI LETTER DDHA -1161C MODI LETTER NNA -1161D MODI LETTER TA -1161E MODI LETTER THA -1161F MODI LETTER DA -11620 MODI LETTER DHA -11621 MODI LETTER NA -11622 MODI LETTER PA -11623 MODI LETTER PHA -11624 MODI LETTER BA -11625 MODI LETTER BHA -11626 MODI LETTER MA -11627 MODI LETTER YA -11628 MODI LETTER RA -11629 MODI LETTER LA -1162A MODI LETTER VA -1162B MODI LETTER SHA -1162C MODI LETTER SSA -1162D MODI LETTER SA -1162E MODI LETTER HA -1162F MODI LETTER LLA -11630 MODI VOWEL SIGN AA -11631 MODI VOWEL SIGN I -11632 MODI VOWEL SIGN II -11633 MODI VOWEL SIGN U -11634 MODI VOWEL SIGN UU -11635 MODI VOWEL SIGN VOCALIC R -11636 MODI VOWEL SIGN VOCALIC RR -11637 MODI VOWEL SIGN VOCALIC L -11638 MODI VOWEL SIGN VOCALIC LL -11639 MODI VOWEL SIGN E -1163A MODI VOWEL SIGN AI -1163B MODI VOWEL SIGN O -1163C MODI VOWEL SIGN AU -1163D MODI SIGN ANUSVARA -1163E MODI SIGN VISARGA -1163F MODI SIGN VIRAMA -11640 MODI SIGN ARDHACANDRA -11641 MODI DANDA -11642 MODI DOUBLE DANDA -11643 MODI ABBREVIATION SIGN -11644 MODI SIGN HUVA -11650 MODI DIGIT ZERO -11651 MODI DIGIT ONE -11652 MODI DIGIT TWO -11653 MODI DIGIT THREE -11654 MODI DIGIT FOUR -11655 MODI DIGIT FIVE -11656 MODI DIGIT SIX -11657 MODI DIGIT SEVEN -11658 MODI DIGIT EIGHT -11659 MODI DIGIT NINE -11680 TAKRI LETTER A -11681 TAKRI LETTER AA -11682 TAKRI LETTER I -11683 TAKRI LETTER II -11684 TAKRI LETTER U -11685 TAKRI LETTER UU -11686 TAKRI LETTER E -11687 TAKRI LETTER AI -11688 TAKRI LETTER O -11689 TAKRI LETTER AU -1168A TAKRI LETTER KA -1168B TAKRI LETTER KHA -1168C TAKRI LETTER GA -1168D TAKRI LETTER GHA -1168E TAKRI LETTER NGA -1168F TAKRI LETTER CA -11690 TAKRI LETTER CHA -11691 TAKRI LETTER JA -11692 TAKRI LETTER JHA -11693 TAKRI LETTER NYA -11694 TAKRI LETTER TTA -11695 TAKRI LETTER TTHA -11696 TAKRI LETTER DDA -11697 TAKRI LETTER DDHA -11698 TAKRI LETTER NNA -11699 TAKRI LETTER TA -1169A TAKRI LETTER THA -1169B TAKRI LETTER DA -1169C TAKRI LETTER DHA -1169D TAKRI LETTER NA -1169E TAKRI LETTER PA -1169F TAKRI LETTER PHA -116A0 TAKRI LETTER BA -116A1 TAKRI LETTER BHA -116A2 TAKRI LETTER MA -116A3 TAKRI LETTER YA -116A4 TAKRI LETTER RA -116A5 TAKRI LETTER LA -116A6 TAKRI LETTER VA -116A7 TAKRI LETTER SHA -116A8 TAKRI LETTER SA -116A9 TAKRI LETTER HA -116AA TAKRI LETTER RRA -116AB TAKRI SIGN ANUSVARA -116AC TAKRI SIGN VISARGA -116AD TAKRI VOWEL SIGN AA -116AE TAKRI VOWEL SIGN I -116AF TAKRI VOWEL SIGN II -116B0 TAKRI VOWEL SIGN U -116B1 TAKRI VOWEL SIGN UU -116B2 TAKRI VOWEL SIGN E -116B3 TAKRI VOWEL SIGN AI -116B4 TAKRI VOWEL SIGN O -116B5 TAKRI VOWEL SIGN AU -116B6 TAKRI SIGN VIRAMA -116B7 TAKRI SIGN NUKTA -116C0 TAKRI DIGIT ZERO -116C1 TAKRI DIGIT ONE -116C2 TAKRI DIGIT TWO -116C3 TAKRI DIGIT THREE -116C4 TAKRI DIGIT FOUR -116C5 TAKRI DIGIT FIVE -116C6 TAKRI DIGIT SIX -116C7 TAKRI DIGIT SEVEN -116C8 TAKRI DIGIT EIGHT -116C9 TAKRI DIGIT NINE -11700 AHOM LETTER KA -11701 AHOM LETTER KHA -11702 AHOM LETTER NGA -11703 AHOM LETTER NA -11704 AHOM LETTER TA -11705 AHOM LETTER ALTERNATE TA -11706 AHOM LETTER PA -11707 AHOM LETTER PHA -11708 AHOM LETTER BA -11709 AHOM LETTER MA -1170A AHOM LETTER JA -1170B AHOM LETTER CHA -1170C AHOM LETTER THA -1170D AHOM LETTER RA -1170E AHOM LETTER LA -1170F AHOM LETTER SA -11710 AHOM LETTER NYA -11711 AHOM LETTER HA -11712 AHOM LETTER A -11713 AHOM LETTER DA -11714 AHOM LETTER DHA -11715 AHOM LETTER GA -11716 AHOM LETTER ALTERNATE GA -11717 AHOM LETTER GHA -11718 AHOM LETTER BHA -11719 AHOM LETTER JHA -1171D AHOM CONSONANT SIGN MEDIAL LA -1171E AHOM CONSONANT SIGN MEDIAL RA -1171F AHOM CONSONANT SIGN MEDIAL LIGATING RA -11720 AHOM VOWEL SIGN A -11721 AHOM VOWEL SIGN AA -11722 AHOM VOWEL SIGN I -11723 AHOM VOWEL SIGN II -11724 AHOM VOWEL SIGN U -11725 AHOM VOWEL SIGN UU -11726 AHOM VOWEL SIGN E -11727 AHOM VOWEL SIGN AW -11728 AHOM VOWEL SIGN O -11729 AHOM VOWEL SIGN AI -1172A AHOM VOWEL SIGN AM -1172B AHOM SIGN KILLER -11730 AHOM DIGIT ZERO -11731 AHOM DIGIT ONE -11732 AHOM DIGIT TWO -11733 AHOM DIGIT THREE -11734 AHOM DIGIT FOUR -11735 AHOM DIGIT FIVE -11736 AHOM DIGIT SIX -11737 AHOM DIGIT SEVEN -11738 AHOM DIGIT EIGHT -11739 AHOM DIGIT NINE -1173A AHOM NUMBER TEN -1173B AHOM NUMBER TWENTY -1173C AHOM SIGN SMALL SECTION -1173D AHOM SIGN SECTION -1173E AHOM SIGN RULAI -1173F AHOM SYMBOL VI -118A0 WARANG CITI CAPITAL LETTER NGAA -118A1 WARANG CITI CAPITAL LETTER A -118A2 WARANG CITI CAPITAL LETTER WI -118A3 WARANG CITI CAPITAL LETTER YU -118A4 WARANG CITI CAPITAL LETTER YA -118A5 WARANG CITI CAPITAL LETTER YO -118A6 WARANG CITI CAPITAL LETTER II -118A7 WARANG CITI CAPITAL LETTER UU -118A8 WARANG CITI CAPITAL LETTER E -118A9 WARANG CITI CAPITAL LETTER O -118AA WARANG CITI CAPITAL LETTER ANG -118AB WARANG CITI CAPITAL LETTER GA -118AC WARANG CITI CAPITAL LETTER KO -118AD WARANG CITI CAPITAL LETTER ENY -118AE WARANG CITI CAPITAL LETTER YUJ -118AF WARANG CITI CAPITAL LETTER UC -118B0 WARANG CITI CAPITAL LETTER ENN -118B1 WARANG CITI CAPITAL LETTER ODD -118B2 WARANG CITI CAPITAL LETTER TTE -118B3 WARANG CITI CAPITAL LETTER NUNG -118B4 WARANG CITI CAPITAL LETTER DA -118B5 WARANG CITI CAPITAL LETTER AT -118B6 WARANG CITI CAPITAL LETTER AM -118B7 WARANG CITI CAPITAL LETTER BU -118B8 WARANG CITI CAPITAL LETTER PU -118B9 WARANG CITI CAPITAL LETTER HIYO -118BA WARANG CITI CAPITAL LETTER HOLO -118BB WARANG CITI CAPITAL LETTER HORR -118BC WARANG CITI CAPITAL LETTER HAR -118BD WARANG CITI CAPITAL LETTER SSUU -118BE WARANG CITI CAPITAL LETTER SII -118BF WARANG CITI CAPITAL LETTER VIYO -118C0 WARANG CITI SMALL LETTER NGAA -118C1 WARANG CITI SMALL LETTER A -118C2 WARANG CITI SMALL LETTER WI -118C3 WARANG CITI SMALL LETTER YU -118C4 WARANG CITI SMALL LETTER YA -118C5 WARANG CITI SMALL LETTER YO -118C6 WARANG CITI SMALL LETTER II -118C7 WARANG CITI SMALL LETTER UU -118C8 WARANG CITI SMALL LETTER E -118C9 WARANG CITI SMALL LETTER O -118CA WARANG CITI SMALL LETTER ANG -118CB WARANG CITI SMALL LETTER GA -118CC WARANG CITI SMALL LETTER KO -118CD WARANG CITI SMALL LETTER ENY -118CE WARANG CITI SMALL LETTER YUJ -118CF WARANG CITI SMALL LETTER UC -118D0 WARANG CITI SMALL LETTER ENN -118D1 WARANG CITI SMALL LETTER ODD -118D2 WARANG CITI SMALL LETTER TTE -118D3 WARANG CITI SMALL LETTER NUNG -118D4 WARANG CITI SMALL LETTER DA -118D5 WARANG CITI SMALL LETTER AT -118D6 WARANG CITI SMALL LETTER AM -118D7 WARANG CITI SMALL LETTER BU -118D8 WARANG CITI SMALL LETTER PU -118D9 WARANG CITI SMALL LETTER HIYO -118DA WARANG CITI SMALL LETTER HOLO -118DB WARANG CITI SMALL LETTER HORR -118DC WARANG CITI SMALL LETTER HAR -118DD WARANG CITI SMALL LETTER SSUU -118DE WARANG CITI SMALL LETTER SII -118DF WARANG CITI SMALL LETTER VIYO -118E0 WARANG CITI DIGIT ZERO -118E1 WARANG CITI DIGIT ONE -118E2 WARANG CITI DIGIT TWO -118E3 WARANG CITI DIGIT THREE -118E4 WARANG CITI DIGIT FOUR -118E5 WARANG CITI DIGIT FIVE -118E6 WARANG CITI DIGIT SIX -118E7 WARANG CITI DIGIT SEVEN -118E8 WARANG CITI DIGIT EIGHT -118E9 WARANG CITI DIGIT NINE -118EA WARANG CITI NUMBER TEN -118EB WARANG CITI NUMBER TWENTY -118EC WARANG CITI NUMBER THIRTY -118ED WARANG CITI NUMBER FORTY -118EE WARANG CITI NUMBER FIFTY -118EF WARANG CITI NUMBER SIXTY -118F0 WARANG CITI NUMBER SEVENTY -118F1 WARANG CITI NUMBER EIGHTY -118F2 WARANG CITI NUMBER NINETY -118FF WARANG CITI OM -11AC0 PAU CIN HAU LETTER PA -11AC1 PAU CIN HAU LETTER KA -11AC2 PAU CIN HAU LETTER LA -11AC3 PAU CIN HAU LETTER MA -11AC4 PAU CIN HAU LETTER DA -11AC5 PAU CIN HAU LETTER ZA -11AC6 PAU CIN HAU LETTER VA -11AC7 PAU CIN HAU LETTER NGA -11AC8 PAU CIN HAU LETTER HA -11AC9 PAU CIN HAU LETTER GA -11ACA PAU CIN HAU LETTER KHA -11ACB PAU CIN HAU LETTER SA -11ACC PAU CIN HAU LETTER BA -11ACD PAU CIN HAU LETTER CA -11ACE PAU CIN HAU LETTER TA -11ACF PAU CIN HAU LETTER THA -11AD0 PAU CIN HAU LETTER NA -11AD1 PAU CIN HAU LETTER PHA -11AD2 PAU CIN HAU LETTER RA -11AD3 PAU CIN HAU LETTER FA -11AD4 PAU CIN HAU LETTER CHA -11AD5 PAU CIN HAU LETTER A -11AD6 PAU CIN HAU LETTER E -11AD7 PAU CIN HAU LETTER I -11AD8 PAU CIN HAU LETTER O -11AD9 PAU CIN HAU LETTER U -11ADA PAU CIN HAU LETTER UA -11ADB PAU CIN HAU LETTER IA -11ADC PAU CIN HAU LETTER FINAL P -11ADD PAU CIN HAU LETTER FINAL K -11ADE PAU CIN HAU LETTER FINAL T -11ADF PAU CIN HAU LETTER FINAL M -11AE0 PAU CIN HAU LETTER FINAL N -11AE1 PAU CIN HAU LETTER FINAL L -11AE2 PAU CIN HAU LETTER FINAL W -11AE3 PAU CIN HAU LETTER FINAL NG -11AE4 PAU CIN HAU LETTER FINAL Y -11AE5 PAU CIN HAU RISING TONE LONG -11AE6 PAU CIN HAU RISING TONE -11AE7 PAU CIN HAU SANDHI GLOTTAL STOP -11AE8 PAU CIN HAU RISING TONE LONG FINAL -11AE9 PAU CIN HAU RISING TONE FINAL -11AEA PAU CIN HAU SANDHI GLOTTAL STOP FINAL -11AEB PAU CIN HAU SANDHI TONE LONG -11AEC PAU CIN HAU SANDHI TONE -11AED PAU CIN HAU SANDHI TONE LONG FINAL -11AEE PAU CIN HAU SANDHI TONE FINAL -11AEF PAU CIN HAU MID-LEVEL TONE -11AF0 PAU CIN HAU GLOTTAL STOP VARIANT -11AF1 PAU CIN HAU MID-LEVEL TONE LONG FINAL -11AF2 PAU CIN HAU MID-LEVEL TONE FINAL -11AF3 PAU CIN HAU LOW-FALLING TONE LONG -11AF4 PAU CIN HAU LOW-FALLING TONE -11AF5 PAU CIN HAU GLOTTAL STOP -11AF6 PAU CIN HAU LOW-FALLING TONE LONG FINAL -11AF7 PAU CIN HAU LOW-FALLING TONE FINAL -11AF8 PAU CIN HAU GLOTTAL STOP FINAL -12000 CUNEIFORM SIGN A -12001 CUNEIFORM SIGN A TIMES A -12002 CUNEIFORM SIGN A TIMES BAD -12003 CUNEIFORM SIGN A TIMES GAN2 TENU -12004 CUNEIFORM SIGN A TIMES HA -12005 CUNEIFORM SIGN A TIMES IGI -12006 CUNEIFORM SIGN A TIMES LAGAR GUNU -12007 CUNEIFORM SIGN A TIMES MUSH -12008 CUNEIFORM SIGN A TIMES SAG -12009 CUNEIFORM SIGN A2 -1200A CUNEIFORM SIGN AB -1200B CUNEIFORM SIGN AB TIMES ASH2 -1200C CUNEIFORM SIGN AB TIMES DUN3 GUNU -1200D CUNEIFORM SIGN AB TIMES GAL -1200E CUNEIFORM SIGN AB TIMES GAN2 TENU -1200F CUNEIFORM SIGN AB TIMES HA -12010 CUNEIFORM SIGN AB TIMES IGI GUNU -12011 CUNEIFORM SIGN AB TIMES IMIN -12012 CUNEIFORM SIGN AB TIMES LAGAB -12013 CUNEIFORM SIGN AB TIMES SHESH -12014 CUNEIFORM SIGN AB TIMES U PLUS U PLUS U -12015 CUNEIFORM SIGN AB GUNU -12016 CUNEIFORM SIGN AB2 -12017 CUNEIFORM SIGN AB2 TIMES BALAG -12018 CUNEIFORM SIGN AB2 TIMES GAN2 TENU -12019 CUNEIFORM SIGN AB2 TIMES ME PLUS EN -1201A CUNEIFORM SIGN AB2 TIMES SHA3 -1201B CUNEIFORM SIGN AB2 TIMES TAK4 -1201C CUNEIFORM SIGN AD -1201D CUNEIFORM SIGN AK -1201E CUNEIFORM SIGN AK TIMES ERIN2 -1201F CUNEIFORM SIGN AK TIMES SHITA PLUS GISH -12020 CUNEIFORM SIGN AL -12021 CUNEIFORM SIGN AL TIMES AL -12022 CUNEIFORM SIGN AL TIMES DIM2 -12023 CUNEIFORM SIGN AL TIMES GISH -12024 CUNEIFORM SIGN AL TIMES HA -12025 CUNEIFORM SIGN AL TIMES KAD3 -12026 CUNEIFORM SIGN AL TIMES KI -12027 CUNEIFORM SIGN AL TIMES SHE -12028 CUNEIFORM SIGN AL TIMES USH -12029 CUNEIFORM SIGN ALAN -1202A CUNEIFORM SIGN ALEPH -1202B CUNEIFORM SIGN AMAR -1202C CUNEIFORM SIGN AMAR TIMES SHE -1202D CUNEIFORM SIGN AN -1202E CUNEIFORM SIGN AN OVER AN -1202F CUNEIFORM SIGN AN THREE TIMES -12030 CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA -12031 CUNEIFORM SIGN AN PLUS NAGA SQUARED -12032 CUNEIFORM SIGN ANSHE -12033 CUNEIFORM SIGN APIN -12034 CUNEIFORM SIGN ARAD -12035 CUNEIFORM SIGN ARAD TIMES KUR -12036 CUNEIFORM SIGN ARKAB -12037 CUNEIFORM SIGN ASAL2 -12038 CUNEIFORM SIGN ASH -12039 CUNEIFORM SIGN ASH ZIDA TENU -1203A CUNEIFORM SIGN ASH KABA TENU -1203B CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP -1203C CUNEIFORM SIGN ASH OVER ASH OVER ASH -1203D CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH -1203E CUNEIFORM SIGN ASH2 -1203F CUNEIFORM SIGN ASHGAB -12040 CUNEIFORM SIGN BA -12041 CUNEIFORM SIGN BAD -12042 CUNEIFORM SIGN BAG3 -12043 CUNEIFORM SIGN BAHAR2 -12044 CUNEIFORM SIGN BAL -12045 CUNEIFORM SIGN BAL OVER BAL -12046 CUNEIFORM SIGN BALAG -12047 CUNEIFORM SIGN BAR -12048 CUNEIFORM SIGN BARA2 -12049 CUNEIFORM SIGN BI -1204A CUNEIFORM SIGN BI TIMES A -1204B CUNEIFORM SIGN BI TIMES GAR -1204C CUNEIFORM SIGN BI TIMES IGI GUNU -1204D CUNEIFORM SIGN BU -1204E CUNEIFORM SIGN BU OVER BU AB -1204F CUNEIFORM SIGN BU OVER BU UN -12050 CUNEIFORM SIGN BU CROSSING BU -12051 CUNEIFORM SIGN BULUG -12052 CUNEIFORM SIGN BULUG OVER BULUG -12053 CUNEIFORM SIGN BUR -12054 CUNEIFORM SIGN BUR2 -12055 CUNEIFORM SIGN DA -12056 CUNEIFORM SIGN DAG -12057 CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH -12058 CUNEIFORM SIGN DAG KISIM5 TIMES AMAR -12059 CUNEIFORM SIGN DAG KISIM5 TIMES BALAG -1205A CUNEIFORM SIGN DAG KISIM5 TIMES BI -1205B CUNEIFORM SIGN DAG KISIM5 TIMES GA -1205C CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH -1205D CUNEIFORM SIGN DAG KISIM5 TIMES GI -1205E CUNEIFORM SIGN DAG KISIM5 TIMES GIR2 -1205F CUNEIFORM SIGN DAG KISIM5 TIMES GUD -12060 CUNEIFORM SIGN DAG KISIM5 TIMES HA -12061 CUNEIFORM SIGN DAG KISIM5 TIMES IR -12062 CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU -12063 CUNEIFORM SIGN DAG KISIM5 TIMES KAK -12064 CUNEIFORM SIGN DAG KISIM5 TIMES LA -12065 CUNEIFORM SIGN DAG KISIM5 TIMES LU -12066 CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2 -12067 CUNEIFORM SIGN DAG KISIM5 TIMES LUM -12068 CUNEIFORM SIGN DAG KISIM5 TIMES NE -12069 CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP -1206A CUNEIFORM SIGN DAG KISIM5 TIMES SI -1206B CUNEIFORM SIGN DAG KISIM5 TIMES TAK4 -1206C CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2 -1206D CUNEIFORM SIGN DAG KISIM5 TIMES USH -1206E CUNEIFORM SIGN DAM -1206F CUNEIFORM SIGN DAR -12070 CUNEIFORM SIGN DARA3 -12071 CUNEIFORM SIGN DARA4 -12072 CUNEIFORM SIGN DI -12073 CUNEIFORM SIGN DIB -12074 CUNEIFORM SIGN DIM -12075 CUNEIFORM SIGN DIM TIMES SHE -12076 CUNEIFORM SIGN DIM2 -12077 CUNEIFORM SIGN DIN -12078 CUNEIFORM SIGN DIN KASKAL U GUNU DISH -12079 CUNEIFORM SIGN DISH -1207A CUNEIFORM SIGN DU -1207B CUNEIFORM SIGN DU OVER DU -1207C CUNEIFORM SIGN DU GUNU -1207D CUNEIFORM SIGN DU SHESHIG -1207E CUNEIFORM SIGN DUB -1207F CUNEIFORM SIGN DUB TIMES ESH2 -12080 CUNEIFORM SIGN DUB2 -12081 CUNEIFORM SIGN DUG -12082 CUNEIFORM SIGN DUGUD -12083 CUNEIFORM SIGN DUH -12084 CUNEIFORM SIGN DUN -12085 CUNEIFORM SIGN DUN3 -12086 CUNEIFORM SIGN DUN3 GUNU -12087 CUNEIFORM SIGN DUN3 GUNU GUNU -12088 CUNEIFORM SIGN DUN4 -12089 CUNEIFORM SIGN DUR2 -1208A CUNEIFORM SIGN E -1208B CUNEIFORM SIGN E TIMES PAP -1208C CUNEIFORM SIGN E OVER E NUN OVER NUN -1208D CUNEIFORM SIGN E2 -1208E CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA -1208F CUNEIFORM SIGN E2 TIMES GAR -12090 CUNEIFORM SIGN E2 TIMES MI -12091 CUNEIFORM SIGN E2 TIMES SAL -12092 CUNEIFORM SIGN E2 TIMES SHE -12093 CUNEIFORM SIGN E2 TIMES U -12094 CUNEIFORM SIGN EDIN -12095 CUNEIFORM SIGN EGIR -12096 CUNEIFORM SIGN EL -12097 CUNEIFORM SIGN EN -12098 CUNEIFORM SIGN EN TIMES GAN2 -12099 CUNEIFORM SIGN EN TIMES GAN2 TENU -1209A CUNEIFORM SIGN EN TIMES ME -1209B CUNEIFORM SIGN EN CROSSING EN -1209C CUNEIFORM SIGN EN OPPOSING EN -1209D CUNEIFORM SIGN EN SQUARED -1209E CUNEIFORM SIGN EREN -1209F CUNEIFORM SIGN ERIN2 -120A0 CUNEIFORM SIGN ESH2 -120A1 CUNEIFORM SIGN EZEN -120A2 CUNEIFORM SIGN EZEN TIMES A -120A3 CUNEIFORM SIGN EZEN TIMES A PLUS LAL -120A4 CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL -120A5 CUNEIFORM SIGN EZEN TIMES AN -120A6 CUNEIFORM SIGN EZEN TIMES BAD -120A7 CUNEIFORM SIGN EZEN TIMES DUN3 GUNU -120A8 CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU -120A9 CUNEIFORM SIGN EZEN TIMES HA -120AA CUNEIFORM SIGN EZEN TIMES HA GUNU -120AB CUNEIFORM SIGN EZEN TIMES IGI GUNU -120AC CUNEIFORM SIGN EZEN TIMES KASKAL -120AD CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED -120AE CUNEIFORM SIGN EZEN TIMES KU3 -120AF CUNEIFORM SIGN EZEN TIMES LA -120B0 CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL -120B1 CUNEIFORM SIGN EZEN TIMES LI -120B2 CUNEIFORM SIGN EZEN TIMES LU -120B3 CUNEIFORM SIGN EZEN TIMES U2 -120B4 CUNEIFORM SIGN EZEN TIMES UD -120B5 CUNEIFORM SIGN GA -120B6 CUNEIFORM SIGN GA GUNU -120B7 CUNEIFORM SIGN GA2 -120B8 CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA -120B9 CUNEIFORM SIGN GA2 TIMES A PLUS HA -120BA CUNEIFORM SIGN GA2 TIMES A PLUS IGI -120BB CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB -120BC CUNEIFORM SIGN GA2 TIMES AN -120BD CUNEIFORM SIGN GA2 TIMES ASH -120BE CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL -120BF CUNEIFORM SIGN GA2 TIMES BAD -120C0 CUNEIFORM SIGN GA2 TIMES BAR PLUS RA -120C1 CUNEIFORM SIGN GA2 TIMES BUR -120C2 CUNEIFORM SIGN GA2 TIMES BUR PLUS RA -120C3 CUNEIFORM SIGN GA2 TIMES DA -120C4 CUNEIFORM SIGN GA2 TIMES DI -120C5 CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE -120C6 CUNEIFORM SIGN GA2 TIMES DUB -120C7 CUNEIFORM SIGN GA2 TIMES EL -120C8 CUNEIFORM SIGN GA2 TIMES EL PLUS LA -120C9 CUNEIFORM SIGN GA2 TIMES EN -120CA CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU -120CB CUNEIFORM SIGN GA2 TIMES GAN2 TENU -120CC CUNEIFORM SIGN GA2 TIMES GAR -120CD CUNEIFORM SIGN GA2 TIMES GI -120CE CUNEIFORM SIGN GA2 TIMES GI4 -120CF CUNEIFORM SIGN GA2 TIMES GI4 PLUS A -120D0 CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU -120D1 CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2 -120D2 CUNEIFORM SIGN GA2 TIMES HAL -120D3 CUNEIFORM SIGN GA2 TIMES HAL PLUS LA -120D4 CUNEIFORM SIGN GA2 TIMES HI PLUS LI -120D5 CUNEIFORM SIGN GA2 TIMES HUB2 -120D6 CUNEIFORM SIGN GA2 TIMES IGI GUNU -120D7 CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH -120D8 CUNEIFORM SIGN GA2 TIMES KAK -120D9 CUNEIFORM SIGN GA2 TIMES KASKAL -120DA CUNEIFORM SIGN GA2 TIMES KID -120DB CUNEIFORM SIGN GA2 TIMES KID PLUS LAL -120DC CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN -120DD CUNEIFORM SIGN GA2 TIMES LA -120DE CUNEIFORM SIGN GA2 TIMES ME PLUS EN -120DF CUNEIFORM SIGN GA2 TIMES MI -120E0 CUNEIFORM SIGN GA2 TIMES NUN -120E1 CUNEIFORM SIGN GA2 TIMES NUN OVER NUN -120E2 CUNEIFORM SIGN GA2 TIMES PA -120E3 CUNEIFORM SIGN GA2 TIMES SAL -120E4 CUNEIFORM SIGN GA2 TIMES SAR -120E5 CUNEIFORM SIGN GA2 TIMES SHE -120E6 CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR -120E7 CUNEIFORM SIGN GA2 TIMES SHID -120E8 CUNEIFORM SIGN GA2 TIMES SUM -120E9 CUNEIFORM SIGN GA2 TIMES TAK4 -120EA CUNEIFORM SIGN GA2 TIMES U -120EB CUNEIFORM SIGN GA2 TIMES UD -120EC CUNEIFORM SIGN GA2 TIMES UD PLUS DU -120ED CUNEIFORM SIGN GA2 OVER GA2 -120EE CUNEIFORM SIGN GABA -120EF CUNEIFORM SIGN GABA CROSSING GABA -120F0 CUNEIFORM SIGN GAD -120F1 CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR -120F2 CUNEIFORM SIGN GAL -120F3 CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR -120F4 CUNEIFORM SIGN GALAM -120F5 CUNEIFORM SIGN GAM -120F6 CUNEIFORM SIGN GAN -120F7 CUNEIFORM SIGN GAN2 -120F8 CUNEIFORM SIGN GAN2 TENU -120F9 CUNEIFORM SIGN GAN2 OVER GAN2 -120FA CUNEIFORM SIGN GAN2 CROSSING GAN2 -120FB CUNEIFORM SIGN GAR -120FC CUNEIFORM SIGN GAR3 -120FD CUNEIFORM SIGN GASHAN -120FE CUNEIFORM SIGN GESHTIN -120FF CUNEIFORM SIGN GESHTIN TIMES KUR -12100 CUNEIFORM SIGN GI -12101 CUNEIFORM SIGN GI TIMES E -12102 CUNEIFORM SIGN GI TIMES U -12103 CUNEIFORM SIGN GI CROSSING GI -12104 CUNEIFORM SIGN GI4 -12105 CUNEIFORM SIGN GI4 OVER GI4 -12106 CUNEIFORM SIGN GI4 CROSSING GI4 -12107 CUNEIFORM SIGN GIDIM -12108 CUNEIFORM SIGN GIR2 -12109 CUNEIFORM SIGN GIR2 GUNU -1210A CUNEIFORM SIGN GIR3 -1210B CUNEIFORM SIGN GIR3 TIMES A PLUS IGI -1210C CUNEIFORM SIGN GIR3 TIMES GAN2 TENU -1210D CUNEIFORM SIGN GIR3 TIMES IGI -1210E CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI -1210F CUNEIFORM SIGN GIR3 TIMES PA -12110 CUNEIFORM SIGN GISAL -12111 CUNEIFORM SIGN GISH -12112 CUNEIFORM SIGN GISH CROSSING GISH -12113 CUNEIFORM SIGN GISH TIMES BAD -12114 CUNEIFORM SIGN GISH TIMES TAK4 -12115 CUNEIFORM SIGN GISH TENU -12116 CUNEIFORM SIGN GU -12117 CUNEIFORM SIGN GU CROSSING GU -12118 CUNEIFORM SIGN GU2 -12119 CUNEIFORM SIGN GU2 TIMES KAK -1211A CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU -1211B CUNEIFORM SIGN GU2 TIMES NUN -1211C CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2 -1211D CUNEIFORM SIGN GU2 GUNU -1211E CUNEIFORM SIGN GUD -1211F CUNEIFORM SIGN GUD TIMES A PLUS KUR -12120 CUNEIFORM SIGN GUD TIMES KUR -12121 CUNEIFORM SIGN GUD OVER GUD LUGAL -12122 CUNEIFORM SIGN GUL -12123 CUNEIFORM SIGN GUM -12124 CUNEIFORM SIGN GUM TIMES SHE -12125 CUNEIFORM SIGN GUR -12126 CUNEIFORM SIGN GUR7 -12127 CUNEIFORM SIGN GURUN -12128 CUNEIFORM SIGN GURUSH -12129 CUNEIFORM SIGN HA -1212A CUNEIFORM SIGN HA TENU -1212B CUNEIFORM SIGN HA GUNU -1212C CUNEIFORM SIGN HAL -1212D CUNEIFORM SIGN HI -1212E CUNEIFORM SIGN HI TIMES ASH -1212F CUNEIFORM SIGN HI TIMES ASH2 -12130 CUNEIFORM SIGN HI TIMES BAD -12131 CUNEIFORM SIGN HI TIMES DISH -12132 CUNEIFORM SIGN HI TIMES GAD -12133 CUNEIFORM SIGN HI TIMES KIN -12134 CUNEIFORM SIGN HI TIMES NUN -12135 CUNEIFORM SIGN HI TIMES SHE -12136 CUNEIFORM SIGN HI TIMES U -12137 CUNEIFORM SIGN HU -12138 CUNEIFORM SIGN HUB2 -12139 CUNEIFORM SIGN HUB2 TIMES AN -1213A CUNEIFORM SIGN HUB2 TIMES HAL -1213B CUNEIFORM SIGN HUB2 TIMES KASKAL -1213C CUNEIFORM SIGN HUB2 TIMES LISH -1213D CUNEIFORM SIGN HUB2 TIMES UD -1213E CUNEIFORM SIGN HUL2 -1213F CUNEIFORM SIGN I -12140 CUNEIFORM SIGN I A -12141 CUNEIFORM SIGN IB -12142 CUNEIFORM SIGN IDIM -12143 CUNEIFORM SIGN IDIM OVER IDIM BUR -12144 CUNEIFORM SIGN IDIM OVER IDIM SQUARED -12145 CUNEIFORM SIGN IG -12146 CUNEIFORM SIGN IGI -12147 CUNEIFORM SIGN IGI DIB -12148 CUNEIFORM SIGN IGI RI -12149 CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD -1214A CUNEIFORM SIGN IGI GUNU -1214B CUNEIFORM SIGN IL -1214C CUNEIFORM SIGN IL TIMES GAN2 TENU -1214D CUNEIFORM SIGN IL2 -1214E CUNEIFORM SIGN IM -1214F CUNEIFORM SIGN IM TIMES TAK4 -12150 CUNEIFORM SIGN IM CROSSING IM -12151 CUNEIFORM SIGN IM OPPOSING IM -12152 CUNEIFORM SIGN IM SQUARED -12153 CUNEIFORM SIGN IMIN -12154 CUNEIFORM SIGN IN -12155 CUNEIFORM SIGN IR -12156 CUNEIFORM SIGN ISH -12157 CUNEIFORM SIGN KA -12158 CUNEIFORM SIGN KA TIMES A -12159 CUNEIFORM SIGN KA TIMES AD -1215A CUNEIFORM SIGN KA TIMES AD PLUS KU3 -1215B CUNEIFORM SIGN KA TIMES ASH2 -1215C CUNEIFORM SIGN KA TIMES BAD -1215D CUNEIFORM SIGN KA TIMES BALAG -1215E CUNEIFORM SIGN KA TIMES BAR -1215F CUNEIFORM SIGN KA TIMES BI -12160 CUNEIFORM SIGN KA TIMES ERIN2 -12161 CUNEIFORM SIGN KA TIMES ESH2 -12162 CUNEIFORM SIGN KA TIMES GA -12163 CUNEIFORM SIGN KA TIMES GAL -12164 CUNEIFORM SIGN KA TIMES GAN2 TENU -12165 CUNEIFORM SIGN KA TIMES GAR -12166 CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A -12167 CUNEIFORM SIGN KA TIMES GI -12168 CUNEIFORM SIGN KA TIMES GIR2 -12169 CUNEIFORM SIGN KA TIMES GISH PLUS SAR -1216A CUNEIFORM SIGN KA TIMES GISH CROSSING GISH -1216B CUNEIFORM SIGN KA TIMES GU -1216C CUNEIFORM SIGN KA TIMES GUR7 -1216D CUNEIFORM SIGN KA TIMES IGI -1216E CUNEIFORM SIGN KA TIMES IM -1216F CUNEIFORM SIGN KA TIMES KAK -12170 CUNEIFORM SIGN KA TIMES KI -12171 CUNEIFORM SIGN KA TIMES KID -12172 CUNEIFORM SIGN KA TIMES LI -12173 CUNEIFORM SIGN KA TIMES LU -12174 CUNEIFORM SIGN KA TIMES ME -12175 CUNEIFORM SIGN KA TIMES ME PLUS DU -12176 CUNEIFORM SIGN KA TIMES ME PLUS GI -12177 CUNEIFORM SIGN KA TIMES ME PLUS TE -12178 CUNEIFORM SIGN KA TIMES MI -12179 CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ -1217A CUNEIFORM SIGN KA TIMES NE -1217B CUNEIFORM SIGN KA TIMES NUN -1217C CUNEIFORM SIGN KA TIMES PI -1217D CUNEIFORM SIGN KA TIMES RU -1217E CUNEIFORM SIGN KA TIMES SA -1217F CUNEIFORM SIGN KA TIMES SAR -12180 CUNEIFORM SIGN KA TIMES SHA -12181 CUNEIFORM SIGN KA TIMES SHE -12182 CUNEIFORM SIGN KA TIMES SHID -12183 CUNEIFORM SIGN KA TIMES SHU -12184 CUNEIFORM SIGN KA TIMES SIG -12185 CUNEIFORM SIGN KA TIMES SUHUR -12186 CUNEIFORM SIGN KA TIMES TAR -12187 CUNEIFORM SIGN KA TIMES U -12188 CUNEIFORM SIGN KA TIMES U2 -12189 CUNEIFORM SIGN KA TIMES UD -1218A CUNEIFORM SIGN KA TIMES UMUM TIMES PA -1218B CUNEIFORM SIGN KA TIMES USH -1218C CUNEIFORM SIGN KA TIMES ZI -1218D CUNEIFORM SIGN KA2 -1218E CUNEIFORM SIGN KA2 CROSSING KA2 -1218F CUNEIFORM SIGN KAB -12190 CUNEIFORM SIGN KAD2 -12191 CUNEIFORM SIGN KAD3 -12192 CUNEIFORM SIGN KAD4 -12193 CUNEIFORM SIGN KAD5 -12194 CUNEIFORM SIGN KAD5 OVER KAD5 -12195 CUNEIFORM SIGN KAK -12196 CUNEIFORM SIGN KAK TIMES IGI GUNU -12197 CUNEIFORM SIGN KAL -12198 CUNEIFORM SIGN KAL TIMES BAD -12199 CUNEIFORM SIGN KAL CROSSING KAL -1219A CUNEIFORM SIGN KAM2 -1219B CUNEIFORM SIGN KAM4 -1219C CUNEIFORM SIGN KASKAL -1219D CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U -1219E CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U -1219F CUNEIFORM SIGN KESH2 -121A0 CUNEIFORM SIGN KI -121A1 CUNEIFORM SIGN KI TIMES BAD -121A2 CUNEIFORM SIGN KI TIMES U -121A3 CUNEIFORM SIGN KI TIMES UD -121A4 CUNEIFORM SIGN KID -121A5 CUNEIFORM SIGN KIN -121A6 CUNEIFORM SIGN KISAL -121A7 CUNEIFORM SIGN KISH -121A8 CUNEIFORM SIGN KISIM5 -121A9 CUNEIFORM SIGN KISIM5 OVER KISIM5 -121AA CUNEIFORM SIGN KU -121AB CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2 -121AC CUNEIFORM SIGN KU3 -121AD CUNEIFORM SIGN KU4 -121AE CUNEIFORM SIGN KU4 VARIANT FORM -121AF CUNEIFORM SIGN KU7 -121B0 CUNEIFORM SIGN KUL -121B1 CUNEIFORM SIGN KUL GUNU -121B2 CUNEIFORM SIGN KUN -121B3 CUNEIFORM SIGN KUR -121B4 CUNEIFORM SIGN KUR OPPOSING KUR -121B5 CUNEIFORM SIGN KUSHU2 -121B6 CUNEIFORM SIGN KWU318 -121B7 CUNEIFORM SIGN LA -121B8 CUNEIFORM SIGN LAGAB -121B9 CUNEIFORM SIGN LAGAB TIMES A -121BA CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA -121BB CUNEIFORM SIGN LAGAB TIMES A PLUS GAR -121BC CUNEIFORM SIGN LAGAB TIMES A PLUS LAL -121BD CUNEIFORM SIGN LAGAB TIMES AL -121BE CUNEIFORM SIGN LAGAB TIMES AN -121BF CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU -121C0 CUNEIFORM SIGN LAGAB TIMES BAD -121C1 CUNEIFORM SIGN LAGAB TIMES BI -121C2 CUNEIFORM SIGN LAGAB TIMES DAR -121C3 CUNEIFORM SIGN LAGAB TIMES EN -121C4 CUNEIFORM SIGN LAGAB TIMES GA -121C5 CUNEIFORM SIGN LAGAB TIMES GAR -121C6 CUNEIFORM SIGN LAGAB TIMES GUD -121C7 CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD -121C8 CUNEIFORM SIGN LAGAB TIMES HA -121C9 CUNEIFORM SIGN LAGAB TIMES HAL -121CA CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN -121CB CUNEIFORM SIGN LAGAB TIMES IGI GUNU -121CC CUNEIFORM SIGN LAGAB TIMES IM -121CD CUNEIFORM SIGN LAGAB TIMES IM PLUS HA -121CE CUNEIFORM SIGN LAGAB TIMES IM PLUS LU -121CF CUNEIFORM SIGN LAGAB TIMES KI -121D0 CUNEIFORM SIGN LAGAB TIMES KIN -121D1 CUNEIFORM SIGN LAGAB TIMES KU3 -121D2 CUNEIFORM SIGN LAGAB TIMES KUL -121D3 CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A -121D4 CUNEIFORM SIGN LAGAB TIMES LAGAB -121D5 CUNEIFORM SIGN LAGAB TIMES LISH -121D6 CUNEIFORM SIGN LAGAB TIMES LU -121D7 CUNEIFORM SIGN LAGAB TIMES LUL -121D8 CUNEIFORM SIGN LAGAB TIMES ME -121D9 CUNEIFORM SIGN LAGAB TIMES ME PLUS EN -121DA CUNEIFORM SIGN LAGAB TIMES MUSH -121DB CUNEIFORM SIGN LAGAB TIMES NE -121DC CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM -121DD CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2 -121DE CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU -121DF CUNEIFORM SIGN LAGAB TIMES SHU2 -121E0 CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2 -121E1 CUNEIFORM SIGN LAGAB TIMES SUM -121E2 CUNEIFORM SIGN LAGAB TIMES TAG -121E3 CUNEIFORM SIGN LAGAB TIMES TAK4 -121E4 CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA -121E5 CUNEIFORM SIGN LAGAB TIMES U -121E6 CUNEIFORM SIGN LAGAB TIMES U PLUS A -121E7 CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U -121E8 CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH -121E9 CUNEIFORM SIGN LAGAB TIMES UD -121EA CUNEIFORM SIGN LAGAB TIMES USH -121EB CUNEIFORM SIGN LAGAB SQUARED -121EC CUNEIFORM SIGN LAGAR -121ED CUNEIFORM SIGN LAGAR TIMES SHE -121EE CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM -121EF CUNEIFORM SIGN LAGAR GUNU -121F0 CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE -121F1 CUNEIFORM SIGN LAHSHU -121F2 CUNEIFORM SIGN LAL -121F3 CUNEIFORM SIGN LAL TIMES LAL -121F4 CUNEIFORM SIGN LAM -121F5 CUNEIFORM SIGN LAM TIMES KUR -121F6 CUNEIFORM SIGN LAM TIMES KUR PLUS RU -121F7 CUNEIFORM SIGN LI -121F8 CUNEIFORM SIGN LIL -121F9 CUNEIFORM SIGN LIMMU2 -121FA CUNEIFORM SIGN LISH -121FB CUNEIFORM SIGN LU -121FC CUNEIFORM SIGN LU TIMES BAD -121FD CUNEIFORM SIGN LU2 -121FE CUNEIFORM SIGN LU2 TIMES AL -121FF CUNEIFORM SIGN LU2 TIMES BAD -12200 CUNEIFORM SIGN LU2 TIMES ESH2 -12201 CUNEIFORM SIGN LU2 TIMES ESH2 TENU -12202 CUNEIFORM SIGN LU2 TIMES GAN2 TENU -12203 CUNEIFORM SIGN LU2 TIMES HI TIMES BAD -12204 CUNEIFORM SIGN LU2 TIMES IM -12205 CUNEIFORM SIGN LU2 TIMES KAD2 -12206 CUNEIFORM SIGN LU2 TIMES KAD3 -12207 CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH -12208 CUNEIFORM SIGN LU2 TIMES KI -12209 CUNEIFORM SIGN LU2 TIMES LA PLUS ASH -1220A CUNEIFORM SIGN LU2 TIMES LAGAB -1220B CUNEIFORM SIGN LU2 TIMES ME PLUS EN -1220C CUNEIFORM SIGN LU2 TIMES NE -1220D CUNEIFORM SIGN LU2 TIMES NU -1220E CUNEIFORM SIGN LU2 TIMES SI PLUS ASH -1220F CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU -12210 CUNEIFORM SIGN LU2 TIMES TUG2 -12211 CUNEIFORM SIGN LU2 TENU -12212 CUNEIFORM SIGN LU2 CROSSING LU2 -12213 CUNEIFORM SIGN LU2 OPPOSING LU2 -12214 CUNEIFORM SIGN LU2 SQUARED -12215 CUNEIFORM SIGN LU2 SHESHIG -12216 CUNEIFORM SIGN LU3 -12217 CUNEIFORM SIGN LUGAL -12218 CUNEIFORM SIGN LUGAL OVER LUGAL -12219 CUNEIFORM SIGN LUGAL OPPOSING LUGAL -1221A CUNEIFORM SIGN LUGAL SHESHIG -1221B CUNEIFORM SIGN LUH -1221C CUNEIFORM SIGN LUL -1221D CUNEIFORM SIGN LUM -1221E CUNEIFORM SIGN LUM OVER LUM -1221F CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR -12220 CUNEIFORM SIGN MA -12221 CUNEIFORM SIGN MA TIMES TAK4 -12222 CUNEIFORM SIGN MA GUNU -12223 CUNEIFORM SIGN MA2 -12224 CUNEIFORM SIGN MAH -12225 CUNEIFORM SIGN MAR -12226 CUNEIFORM SIGN MASH -12227 CUNEIFORM SIGN MASH2 -12228 CUNEIFORM SIGN ME -12229 CUNEIFORM SIGN MES -1222A CUNEIFORM SIGN MI -1222B CUNEIFORM SIGN MIN -1222C CUNEIFORM SIGN MU -1222D CUNEIFORM SIGN MU OVER MU -1222E CUNEIFORM SIGN MUG -1222F CUNEIFORM SIGN MUG GUNU -12230 CUNEIFORM SIGN MUNSUB -12231 CUNEIFORM SIGN MURGU2 -12232 CUNEIFORM SIGN MUSH -12233 CUNEIFORM SIGN MUSH TIMES A -12234 CUNEIFORM SIGN MUSH TIMES KUR -12235 CUNEIFORM SIGN MUSH TIMES ZA -12236 CUNEIFORM SIGN MUSH OVER MUSH -12237 CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA -12238 CUNEIFORM SIGN MUSH CROSSING MUSH -12239 CUNEIFORM SIGN MUSH3 -1223A CUNEIFORM SIGN MUSH3 TIMES A -1223B CUNEIFORM SIGN MUSH3 TIMES A PLUS DI -1223C CUNEIFORM SIGN MUSH3 TIMES DI -1223D CUNEIFORM SIGN MUSH3 GUNU -1223E CUNEIFORM SIGN NA -1223F CUNEIFORM SIGN NA2 -12240 CUNEIFORM SIGN NAGA -12241 CUNEIFORM SIGN NAGA INVERTED -12242 CUNEIFORM SIGN NAGA TIMES SHU TENU -12243 CUNEIFORM SIGN NAGA OPPOSING NAGA -12244 CUNEIFORM SIGN NAGAR -12245 CUNEIFORM SIGN NAM NUTILLU -12246 CUNEIFORM SIGN NAM -12247 CUNEIFORM SIGN NAM2 -12248 CUNEIFORM SIGN NE -12249 CUNEIFORM SIGN NE TIMES A -1224A CUNEIFORM SIGN NE TIMES UD -1224B CUNEIFORM SIGN NE SHESHIG -1224C CUNEIFORM SIGN NI -1224D CUNEIFORM SIGN NI TIMES E -1224E CUNEIFORM SIGN NI2 -1224F CUNEIFORM SIGN NIM -12250 CUNEIFORM SIGN NIM TIMES GAN2 TENU -12251 CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU -12252 CUNEIFORM SIGN NINDA2 -12253 CUNEIFORM SIGN NINDA2 TIMES AN -12254 CUNEIFORM SIGN NINDA2 TIMES ASH -12255 CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH -12256 CUNEIFORM SIGN NINDA2 TIMES GUD -12257 CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU -12258 CUNEIFORM SIGN NINDA2 TIMES NE -12259 CUNEIFORM SIGN NINDA2 TIMES NUN -1225A CUNEIFORM SIGN NINDA2 TIMES SHE -1225B CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN -1225C CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH -1225D CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH -1225E CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH -1225F CUNEIFORM SIGN NINDA2 TIMES USH -12260 CUNEIFORM SIGN NISAG -12261 CUNEIFORM SIGN NU -12262 CUNEIFORM SIGN NU11 -12263 CUNEIFORM SIGN NUN -12264 CUNEIFORM SIGN NUN LAGAR TIMES GAR -12265 CUNEIFORM SIGN NUN LAGAR TIMES MASH -12266 CUNEIFORM SIGN NUN LAGAR TIMES SAL -12267 CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL -12268 CUNEIFORM SIGN NUN LAGAR TIMES USH -12269 CUNEIFORM SIGN NUN TENU -1226A CUNEIFORM SIGN NUN OVER NUN -1226B CUNEIFORM SIGN NUN CROSSING NUN -1226C CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR -1226D CUNEIFORM SIGN NUNUZ -1226E CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB -1226F CUNEIFORM SIGN NUNUZ AB2 TIMES BI -12270 CUNEIFORM SIGN NUNUZ AB2 TIMES DUG -12271 CUNEIFORM SIGN NUNUZ AB2 TIMES GUD -12272 CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU -12273 CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3 -12274 CUNEIFORM SIGN NUNUZ AB2 TIMES LA -12275 CUNEIFORM SIGN NUNUZ AB2 TIMES NE -12276 CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3 -12277 CUNEIFORM SIGN NUNUZ AB2 TIMES U2 -12278 CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI -12279 CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U -1227A CUNEIFORM SIGN PA -1227B CUNEIFORM SIGN PAD -1227C CUNEIFORM SIGN PAN -1227D CUNEIFORM SIGN PAP -1227E CUNEIFORM SIGN PESH2 -1227F CUNEIFORM SIGN PI -12280 CUNEIFORM SIGN PI TIMES A -12281 CUNEIFORM SIGN PI TIMES AB -12282 CUNEIFORM SIGN PI TIMES BI -12283 CUNEIFORM SIGN PI TIMES BU -12284 CUNEIFORM SIGN PI TIMES E -12285 CUNEIFORM SIGN PI TIMES I -12286 CUNEIFORM SIGN PI TIMES IB -12287 CUNEIFORM SIGN PI TIMES U -12288 CUNEIFORM SIGN PI TIMES U2 -12289 CUNEIFORM SIGN PI CROSSING PI -1228A CUNEIFORM SIGN PIRIG -1228B CUNEIFORM SIGN PIRIG TIMES KAL -1228C CUNEIFORM SIGN PIRIG TIMES UD -1228D CUNEIFORM SIGN PIRIG TIMES ZA -1228E CUNEIFORM SIGN PIRIG OPPOSING PIRIG -1228F CUNEIFORM SIGN RA -12290 CUNEIFORM SIGN RAB -12291 CUNEIFORM SIGN RI -12292 CUNEIFORM SIGN RU -12293 CUNEIFORM SIGN SA -12294 CUNEIFORM SIGN SAG NUTILLU -12295 CUNEIFORM SIGN SAG -12296 CUNEIFORM SIGN SAG TIMES A -12297 CUNEIFORM SIGN SAG TIMES DU -12298 CUNEIFORM SIGN SAG TIMES DUB -12299 CUNEIFORM SIGN SAG TIMES HA -1229A CUNEIFORM SIGN SAG TIMES KAK -1229B CUNEIFORM SIGN SAG TIMES KUR -1229C CUNEIFORM SIGN SAG TIMES LUM -1229D CUNEIFORM SIGN SAG TIMES MI -1229E CUNEIFORM SIGN SAG TIMES NUN -1229F CUNEIFORM SIGN SAG TIMES SAL -122A0 CUNEIFORM SIGN SAG TIMES SHID -122A1 CUNEIFORM SIGN SAG TIMES TAB -122A2 CUNEIFORM SIGN SAG TIMES U2 -122A3 CUNEIFORM SIGN SAG TIMES UB -122A4 CUNEIFORM SIGN SAG TIMES UM -122A5 CUNEIFORM SIGN SAG TIMES UR -122A6 CUNEIFORM SIGN SAG TIMES USH -122A7 CUNEIFORM SIGN SAG OVER SAG -122A8 CUNEIFORM SIGN SAG GUNU -122A9 CUNEIFORM SIGN SAL -122AA CUNEIFORM SIGN SAL LAGAB TIMES ASH2 -122AB CUNEIFORM SIGN SANGA2 -122AC CUNEIFORM SIGN SAR -122AD CUNEIFORM SIGN SHA -122AE CUNEIFORM SIGN SHA3 -122AF CUNEIFORM SIGN SHA3 TIMES A -122B0 CUNEIFORM SIGN SHA3 TIMES BAD -122B1 CUNEIFORM SIGN SHA3 TIMES GISH -122B2 CUNEIFORM SIGN SHA3 TIMES NE -122B3 CUNEIFORM SIGN SHA3 TIMES SHU2 -122B4 CUNEIFORM SIGN SHA3 TIMES TUR -122B5 CUNEIFORM SIGN SHA3 TIMES U -122B6 CUNEIFORM SIGN SHA3 TIMES U PLUS A -122B7 CUNEIFORM SIGN SHA6 -122B8 CUNEIFORM SIGN SHAB6 -122B9 CUNEIFORM SIGN SHAR2 -122BA CUNEIFORM SIGN SHE -122BB CUNEIFORM SIGN SHE HU -122BC CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR -122BD CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR -122BE CUNEIFORM SIGN SHEG9 -122BF CUNEIFORM SIGN SHEN -122C0 CUNEIFORM SIGN SHESH -122C1 CUNEIFORM SIGN SHESH2 -122C2 CUNEIFORM SIGN SHESHLAM -122C3 CUNEIFORM SIGN SHID -122C4 CUNEIFORM SIGN SHID TIMES A -122C5 CUNEIFORM SIGN SHID TIMES IM -122C6 CUNEIFORM SIGN SHIM -122C7 CUNEIFORM SIGN SHIM TIMES A -122C8 CUNEIFORM SIGN SHIM TIMES BAL -122C9 CUNEIFORM SIGN SHIM TIMES BULUG -122CA CUNEIFORM SIGN SHIM TIMES DIN -122CB CUNEIFORM SIGN SHIM TIMES GAR -122CC CUNEIFORM SIGN SHIM TIMES IGI -122CD CUNEIFORM SIGN SHIM TIMES IGI GUNU -122CE CUNEIFORM SIGN SHIM TIMES KUSHU2 -122CF CUNEIFORM SIGN SHIM TIMES LUL -122D0 CUNEIFORM SIGN SHIM TIMES MUG -122D1 CUNEIFORM SIGN SHIM TIMES SAL -122D2 CUNEIFORM SIGN SHINIG -122D3 CUNEIFORM SIGN SHIR -122D4 CUNEIFORM SIGN NU11 TENU -122D4 CUNEIFORM SIGN SHIR TENU -122D5 CUNEIFORM SIGN NU11 OVER NU11 BUR OVER BUR -122D5 CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR -122D6 CUNEIFORM SIGN SHITA -122D7 CUNEIFORM SIGN SHU -122D8 CUNEIFORM SIGN SHU OVER INVERTED SHU -122D9 CUNEIFORM SIGN SHU2 -122DA CUNEIFORM SIGN SHUBUR -122DB CUNEIFORM SIGN SI -122DC CUNEIFORM SIGN SI GUNU -122DD CUNEIFORM SIGN SIG -122DE CUNEIFORM SIGN SIG4 -122DF CUNEIFORM SIGN SIG4 OVER SIG4 SHU2 -122E0 CUNEIFORM SIGN SIK2 -122E1 CUNEIFORM SIGN SILA3 -122E2 CUNEIFORM SIGN SU -122E3 CUNEIFORM SIGN SU OVER SU -122E4 CUNEIFORM SIGN SUD -122E5 CUNEIFORM SIGN SUD2 -122E6 CUNEIFORM SIGN SUHUR -122E7 CUNEIFORM SIGN SUM -122E8 CUNEIFORM SIGN SUMASH -122E9 CUNEIFORM SIGN SUR -122EA CUNEIFORM SIGN SUR9 -122EB CUNEIFORM SIGN TA -122EC CUNEIFORM SIGN TA ASTERISK -122ED CUNEIFORM SIGN TA TIMES HI -122EE CUNEIFORM SIGN TA TIMES MI -122EF CUNEIFORM SIGN TA GUNU -122F0 CUNEIFORM SIGN TAB -122F1 CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH -122F2 CUNEIFORM SIGN TAB SQUARED -122F3 CUNEIFORM SIGN TAG -122F4 CUNEIFORM SIGN TAG TIMES BI -122F5 CUNEIFORM SIGN TAG TIMES GUD -122F6 CUNEIFORM SIGN TAG TIMES SHE -122F7 CUNEIFORM SIGN TAG TIMES SHU -122F8 CUNEIFORM SIGN TAG TIMES TUG2 -122F9 CUNEIFORM SIGN TAG TIMES UD -122FA CUNEIFORM SIGN TAK4 -122FB CUNEIFORM SIGN TAR -122FC CUNEIFORM SIGN TE -122FD CUNEIFORM SIGN TE GUNU -122FE CUNEIFORM SIGN TI -122FF CUNEIFORM SIGN TI TENU -12300 CUNEIFORM SIGN TIL -12301 CUNEIFORM SIGN TIR -12302 CUNEIFORM SIGN TIR TIMES TAK4 -12303 CUNEIFORM SIGN TIR OVER TIR -12304 CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR -12305 CUNEIFORM SIGN TU -12306 CUNEIFORM SIGN TUG2 -12307 CUNEIFORM SIGN TUK -12308 CUNEIFORM SIGN TUM -12309 CUNEIFORM SIGN TUR -1230A CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA -1230B CUNEIFORM SIGN U -1230C CUNEIFORM SIGN U GUD -1230D CUNEIFORM SIGN U U U -1230E CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR -1230F CUNEIFORM SIGN U OVER U SUR OVER SUR -12310 CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED -12311 CUNEIFORM SIGN U2 -12312 CUNEIFORM SIGN UB -12313 CUNEIFORM SIGN UD -12314 CUNEIFORM SIGN UD KUSHU2 -12315 CUNEIFORM SIGN UD TIMES BAD -12316 CUNEIFORM SIGN UD TIMES MI -12317 CUNEIFORM SIGN UD TIMES U PLUS U PLUS U -12318 CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU -12319 CUNEIFORM SIGN UD GUNU -1231A CUNEIFORM SIGN UD SHESHIG -1231B CUNEIFORM SIGN UD SHESHIG TIMES BAD -1231C CUNEIFORM SIGN UDUG -1231D CUNEIFORM SIGN UM -1231E CUNEIFORM SIGN UM TIMES LAGAB -1231F CUNEIFORM SIGN UM TIMES ME PLUS DA -12320 CUNEIFORM SIGN UM TIMES SHA3 -12321 CUNEIFORM SIGN UM TIMES U -12322 CUNEIFORM SIGN UMBIN -12323 CUNEIFORM SIGN UMUM -12324 CUNEIFORM SIGN UMUM TIMES KASKAL -12325 CUNEIFORM SIGN UMUM TIMES PA -12326 CUNEIFORM SIGN UN -12327 CUNEIFORM SIGN UN GUNU -12328 CUNEIFORM SIGN UR -12329 CUNEIFORM SIGN UR CROSSING UR -1232A CUNEIFORM SIGN UR SHESHIG -1232B CUNEIFORM SIGN UR2 -1232C CUNEIFORM SIGN UR2 TIMES A PLUS HA -1232D CUNEIFORM SIGN UR2 TIMES A PLUS NA -1232E CUNEIFORM SIGN UR2 TIMES AL -1232F CUNEIFORM SIGN UR2 TIMES HA -12330 CUNEIFORM SIGN UR2 TIMES NUN -12331 CUNEIFORM SIGN UR2 TIMES U2 -12332 CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH -12333 CUNEIFORM SIGN UR2 TIMES U2 PLUS BI -12334 CUNEIFORM SIGN UR4 -12335 CUNEIFORM SIGN URI -12336 CUNEIFORM SIGN URI3 -12337 CUNEIFORM SIGN URU -12338 CUNEIFORM SIGN URU TIMES A -12339 CUNEIFORM SIGN URU TIMES ASHGAB -1233A CUNEIFORM SIGN URU TIMES BAR -1233B CUNEIFORM SIGN URU TIMES DUN -1233C CUNEIFORM SIGN URU TIMES GA -1233D CUNEIFORM SIGN URU TIMES GAL -1233E CUNEIFORM SIGN URU TIMES GAN2 TENU -1233F CUNEIFORM SIGN URU TIMES GAR -12340 CUNEIFORM SIGN URU TIMES GU -12341 CUNEIFORM SIGN URU TIMES HA -12342 CUNEIFORM SIGN URU TIMES IGI -12343 CUNEIFORM SIGN URU TIMES IM -12344 CUNEIFORM SIGN URU TIMES ISH -12345 CUNEIFORM SIGN URU TIMES KI -12346 CUNEIFORM SIGN URU TIMES LUM -12347 CUNEIFORM SIGN URU TIMES MIN -12348 CUNEIFORM SIGN URU TIMES PA -12349 CUNEIFORM SIGN URU TIMES SHE -1234A CUNEIFORM SIGN URU TIMES SIG4 -1234B CUNEIFORM SIGN URU TIMES TU -1234C CUNEIFORM SIGN URU TIMES U PLUS GUD -1234D CUNEIFORM SIGN URU TIMES UD -1234E CUNEIFORM SIGN URU TIMES URUDA -1234F CUNEIFORM SIGN URUDA -12350 CUNEIFORM SIGN URUDA TIMES U -12351 CUNEIFORM SIGN USH -12352 CUNEIFORM SIGN USH TIMES A -12353 CUNEIFORM SIGN USH TIMES KU -12354 CUNEIFORM SIGN USH TIMES KUR -12355 CUNEIFORM SIGN USH TIMES TAK4 -12356 CUNEIFORM SIGN USHX -12357 CUNEIFORM SIGN USH2 -12358 CUNEIFORM SIGN USHUMX -12359 CUNEIFORM SIGN UTUKI -1235A CUNEIFORM SIGN UZ3 -1235B CUNEIFORM SIGN UZ3 TIMES KASKAL -1235C CUNEIFORM SIGN UZU -1235D CUNEIFORM SIGN ZA -1235E CUNEIFORM SIGN ZA TENU -1235F CUNEIFORM SIGN ZA SQUARED TIMES KUR -12360 CUNEIFORM SIGN ZAG -12361 CUNEIFORM SIGN ZAMX -12362 CUNEIFORM SIGN ZE2 -12363 CUNEIFORM SIGN ZI -12364 CUNEIFORM SIGN ZI OVER ZI -12365 CUNEIFORM SIGN ZI3 -12366 CUNEIFORM SIGN ZIB -12367 CUNEIFORM SIGN ZIB KABA TENU -12368 CUNEIFORM SIGN ZIG -12369 CUNEIFORM SIGN ZIZ2 -1236A CUNEIFORM SIGN ZU -1236B CUNEIFORM SIGN ZU5 -1236C CUNEIFORM SIGN ZU5 TIMES A -1236D CUNEIFORM SIGN ZUBUR -1236E CUNEIFORM SIGN ZUM -1236F CUNEIFORM SIGN KAP ELAMITE -12370 CUNEIFORM SIGN AB TIMES NUN -12371 CUNEIFORM SIGN AB2 TIMES A -12372 CUNEIFORM SIGN AMAR TIMES KUG -12373 CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS MASH -12374 CUNEIFORM SIGN DAG3 -12375 CUNEIFORM SIGN DISH PLUS SHU -12376 CUNEIFORM SIGN DUB TIMES SHE -12377 CUNEIFORM SIGN EZEN TIMES GUD -12378 CUNEIFORM SIGN EZEN TIMES SHE -12379 CUNEIFORM SIGN GA2 TIMES AN PLUS KAK PLUS A -1237A CUNEIFORM SIGN GA2 TIMES ASH2 -1237B CUNEIFORM SIGN GE22 -1237C CUNEIFORM SIGN GIG -1237D CUNEIFORM SIGN HUSH -1237E CUNEIFORM SIGN KA TIMES ANSHE -1237F CUNEIFORM SIGN KA TIMES ASH3 -12380 CUNEIFORM SIGN KA TIMES GISH -12381 CUNEIFORM SIGN KA TIMES GUD -12382 CUNEIFORM SIGN KA TIMES HI TIMES ASH2 -12383 CUNEIFORM SIGN KA TIMES LUM -12384 CUNEIFORM SIGN KA TIMES PA -12385 CUNEIFORM SIGN KA TIMES SHUL -12386 CUNEIFORM SIGN KA TIMES TU -12387 CUNEIFORM SIGN KA TIMES UR2 -12388 CUNEIFORM SIGN LAGAB TIMES GI -12389 CUNEIFORM SIGN LU2 SHESHIG TIMES BAD -1238A CUNEIFORM SIGN LU2 TIMES ESH2 PLUS LAL -1238B CUNEIFORM SIGN LU2 TIMES SHU -1238C CUNEIFORM SIGN MESH -1238D CUNEIFORM SIGN MUSH3 TIMES ZA -1238E CUNEIFORM SIGN NA4 -1238F CUNEIFORM SIGN NIN -12390 CUNEIFORM SIGN NIN9 -12391 CUNEIFORM SIGN NINDA2 TIMES BAL -12392 CUNEIFORM SIGN NINDA2 TIMES GI -12393 CUNEIFORM SIGN NU11 ROTATED NINETY DEGREES -12394 CUNEIFORM SIGN PESH2 ASTERISK -12395 CUNEIFORM SIGN PIR2 -12396 CUNEIFORM SIGN SAG TIMES IGI GUNU -12397 CUNEIFORM SIGN TI2 -12398 CUNEIFORM SIGN UM TIMES ME -12399 CUNEIFORM SIGN U U -12400 CUNEIFORM NUMERIC SIGN TWO ASH -12401 CUNEIFORM NUMERIC SIGN THREE ASH -12402 CUNEIFORM NUMERIC SIGN FOUR ASH -12403 CUNEIFORM NUMERIC SIGN FIVE ASH -12404 CUNEIFORM NUMERIC SIGN SIX ASH -12405 CUNEIFORM NUMERIC SIGN SEVEN ASH -12406 CUNEIFORM NUMERIC SIGN EIGHT ASH -12407 CUNEIFORM NUMERIC SIGN NINE ASH -12408 CUNEIFORM NUMERIC SIGN THREE DISH -12409 CUNEIFORM NUMERIC SIGN FOUR DISH -1240A CUNEIFORM NUMERIC SIGN FIVE DISH -1240B CUNEIFORM NUMERIC SIGN SIX DISH -1240C CUNEIFORM NUMERIC SIGN SEVEN DISH -1240D CUNEIFORM NUMERIC SIGN EIGHT DISH -1240E CUNEIFORM NUMERIC SIGN NINE DISH -1240F CUNEIFORM NUMERIC SIGN FOUR U -12410 CUNEIFORM NUMERIC SIGN FIVE U -12411 CUNEIFORM NUMERIC SIGN SIX U -12412 CUNEIFORM NUMERIC SIGN SEVEN U -12413 CUNEIFORM NUMERIC SIGN EIGHT U -12414 CUNEIFORM NUMERIC SIGN NINE U -12415 CUNEIFORM NUMERIC SIGN ONE GESH2 -12416 CUNEIFORM NUMERIC SIGN TWO GESH2 -12417 CUNEIFORM NUMERIC SIGN THREE GESH2 -12418 CUNEIFORM NUMERIC SIGN FOUR GESH2 -12419 CUNEIFORM NUMERIC SIGN FIVE GESH2 -1241A CUNEIFORM NUMERIC SIGN SIX GESH2 -1241B CUNEIFORM NUMERIC SIGN SEVEN GESH2 -1241C CUNEIFORM NUMERIC SIGN EIGHT GESH2 -1241D CUNEIFORM NUMERIC SIGN NINE GESH2 -1241E CUNEIFORM NUMERIC SIGN ONE GESHU -1241F CUNEIFORM NUMERIC SIGN TWO GESHU -12420 CUNEIFORM NUMERIC SIGN THREE GESHU -12421 CUNEIFORM NUMERIC SIGN FOUR GESHU -12422 CUNEIFORM NUMERIC SIGN FIVE GESHU -12423 CUNEIFORM NUMERIC SIGN TWO SHAR2 -12424 CUNEIFORM NUMERIC SIGN THREE SHAR2 -12425 CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM -12426 CUNEIFORM NUMERIC SIGN FOUR SHAR2 -12427 CUNEIFORM NUMERIC SIGN FIVE SHAR2 -12428 CUNEIFORM NUMERIC SIGN SIX SHAR2 -12429 CUNEIFORM NUMERIC SIGN SEVEN SHAR2 -1242A CUNEIFORM NUMERIC SIGN EIGHT SHAR2 -1242B CUNEIFORM NUMERIC SIGN NINE SHAR2 -1242C CUNEIFORM NUMERIC SIGN ONE SHARU -1242D CUNEIFORM NUMERIC SIGN TWO SHARU -1242E CUNEIFORM NUMERIC SIGN THREE SHARU -1242F CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM -12430 CUNEIFORM NUMERIC SIGN FOUR SHARU -12431 CUNEIFORM NUMERIC SIGN FIVE SHARU -12432 CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH -12433 CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN -12434 CUNEIFORM NUMERIC SIGN ONE BURU -12435 CUNEIFORM NUMERIC SIGN TWO BURU -12436 CUNEIFORM NUMERIC SIGN THREE BURU -12437 CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM -12438 CUNEIFORM NUMERIC SIGN FOUR BURU -12439 CUNEIFORM NUMERIC SIGN FIVE BURU -1243A CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16 -1243B CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21 -1243C CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU -1243D CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4 -1243E CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A -1243F CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B -12440 CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9 -12441 CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3 -12442 CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A -12443 CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B -12444 CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU -12445 CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3 -12446 CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU -12447 CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3 -12448 CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4 -12449 CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A -1244A CUNEIFORM NUMERIC SIGN TWO ASH TENU -1244B CUNEIFORM NUMERIC SIGN THREE ASH TENU -1244C CUNEIFORM NUMERIC SIGN FOUR ASH TENU -1244D CUNEIFORM NUMERIC SIGN FIVE ASH TENU -1244E CUNEIFORM NUMERIC SIGN SIX ASH TENU -1244F CUNEIFORM NUMERIC SIGN ONE BAN2 -12450 CUNEIFORM NUMERIC SIGN TWO BAN2 -12451 CUNEIFORM NUMERIC SIGN THREE BAN2 -12452 CUNEIFORM NUMERIC SIGN FOUR BAN2 -12453 CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM -12454 CUNEIFORM NUMERIC SIGN FIVE BAN2 -12455 CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM -12456 CUNEIFORM NUMERIC SIGN NIGIDAMIN -12457 CUNEIFORM NUMERIC SIGN NIGIDAESH -12458 CUNEIFORM NUMERIC SIGN ONE ESHE3 -12459 CUNEIFORM NUMERIC SIGN TWO ESHE3 -1245A CUNEIFORM NUMERIC SIGN ONE THIRD DISH -1245B CUNEIFORM NUMERIC SIGN TWO THIRDS DISH -1245C CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH -1245D CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A -1245E CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A -1245F CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH -12460 CUNEIFORM NUMERIC SIGN ONE QUARTER ASH -12461 CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH -12462 CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER -12463 CUNEIFORM NUMERIC SIGN ONE QUARTER GUR -12464 CUNEIFORM NUMERIC SIGN ONE HALF GUR -12465 CUNEIFORM NUMERIC SIGN ELAMITE ONE THIRD -12466 CUNEIFORM NUMERIC SIGN ELAMITE TWO THIRDS -12467 CUNEIFORM NUMERIC SIGN ELAMITE FORTY -12468 CUNEIFORM NUMERIC SIGN ELAMITE FIFTY -12469 CUNEIFORM NUMERIC SIGN FOUR U VARIANT FORM -1246A CUNEIFORM NUMERIC SIGN FIVE U VARIANT FORM -1246B CUNEIFORM NUMERIC SIGN SIX U VARIANT FORM -1246C CUNEIFORM NUMERIC SIGN SEVEN U VARIANT FORM -1246D CUNEIFORM NUMERIC SIGN EIGHT U VARIANT FORM -1246E CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM -12470 CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER -12471 CUNEIFORM PUNCTUATION SIGN VERTICAL COLON -12472 CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON -12473 CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON -12474 CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON -12480 CUNEIFORM SIGN AB TIMES NUN TENU -12481 CUNEIFORM SIGN AB TIMES SHU2 -12482 CUNEIFORM SIGN AD TIMES ESH2 -12483 CUNEIFORM SIGN BAD TIMES DISH TENU -12484 CUNEIFORM SIGN BAHAR2 TIMES AB2 -12485 CUNEIFORM SIGN BAHAR2 TIMES NI -12486 CUNEIFORM SIGN BAHAR2 TIMES ZA -12487 CUNEIFORM SIGN BU OVER BU TIMES NA2 -12488 CUNEIFORM SIGN DA TIMES TAK4 -12489 CUNEIFORM SIGN DAG TIMES KUR -1248A CUNEIFORM SIGN DIM TIMES IGI -1248B CUNEIFORM SIGN DIM TIMES U U U -1248C CUNEIFORM SIGN DIM2 TIMES UD -1248D CUNEIFORM SIGN DUG TIMES ANSHE -1248E CUNEIFORM SIGN DUG TIMES ASH -1248F CUNEIFORM SIGN DUG TIMES ASH AT LEFT -12490 CUNEIFORM SIGN DUG TIMES DIN -12491 CUNEIFORM SIGN DUG TIMES DUN -12492 CUNEIFORM SIGN DUG TIMES ERIN2 -12493 CUNEIFORM SIGN DUG TIMES GA -12494 CUNEIFORM SIGN DUG TIMES GI -12495 CUNEIFORM SIGN DUG TIMES GIR2 GUNU -12496 CUNEIFORM SIGN DUG TIMES GISH -12497 CUNEIFORM SIGN DUG TIMES HA -12498 CUNEIFORM SIGN DUG TIMES HI -12499 CUNEIFORM SIGN DUG TIMES IGI GUNU -1249A CUNEIFORM SIGN DUG TIMES KASKAL -1249B CUNEIFORM SIGN DUG TIMES KUR -1249C CUNEIFORM SIGN DUG TIMES KUSHU2 -1249D CUNEIFORM SIGN DUG TIMES KUSHU2 PLUS KASKAL -1249E CUNEIFORM SIGN DUG TIMES LAK-020 -1249F CUNEIFORM SIGN DUG TIMES LAM -124A0 CUNEIFORM SIGN DUG TIMES LAM TIMES KUR -124A1 CUNEIFORM SIGN DUG TIMES LUH PLUS GISH -124A2 CUNEIFORM SIGN DUG TIMES MASH -124A3 CUNEIFORM SIGN DUG TIMES MES -124A4 CUNEIFORM SIGN DUG TIMES MI -124A5 CUNEIFORM SIGN DUG TIMES NI -124A6 CUNEIFORM SIGN DUG TIMES PI -124A7 CUNEIFORM SIGN DUG TIMES SHE -124A8 CUNEIFORM SIGN DUG TIMES SI GUNU -124A9 CUNEIFORM SIGN E2 TIMES KUR -124AA CUNEIFORM SIGN E2 TIMES PAP -124AB CUNEIFORM SIGN ERIN2 X -124AC CUNEIFORM SIGN ESH2 CROSSING ESH2 -124AD CUNEIFORM SIGN EZEN SHESHIG TIMES ASH -124AE CUNEIFORM SIGN EZEN SHESHIG TIMES HI -124AF CUNEIFORM SIGN EZEN SHESHIG TIMES IGI GUNU -124B0 CUNEIFORM SIGN EZEN SHESHIG TIMES LA -124B1 CUNEIFORM SIGN EZEN SHESHIG TIMES LAL -124B2 CUNEIFORM SIGN EZEN SHESHIG TIMES ME -124B3 CUNEIFORM SIGN EZEN SHESHIG TIMES MES -124B4 CUNEIFORM SIGN EZEN SHESHIG TIMES SU -124B5 CUNEIFORM SIGN EZEN TIMES SU -124B6 CUNEIFORM SIGN GA2 TIMES BAHAR2 -124B7 CUNEIFORM SIGN GA2 TIMES DIM GUNU -124B8 CUNEIFORM SIGN GA2 TIMES DUG TIMES IGI GUNU -124B9 CUNEIFORM SIGN GA2 TIMES DUG TIMES KASKAL -124BA CUNEIFORM SIGN GA2 TIMES EREN -124BB CUNEIFORM SIGN GA2 TIMES GA -124BC CUNEIFORM SIGN GA2 TIMES GAR PLUS DI -124BD CUNEIFORM SIGN GA2 TIMES GAR PLUS NE -124BE CUNEIFORM SIGN GA2 TIMES HA PLUS A -124BF CUNEIFORM SIGN GA2 TIMES KUSHU2 PLUS KASKAL -124C0 CUNEIFORM SIGN GA2 TIMES LAM -124C1 CUNEIFORM SIGN GA2 TIMES LAM TIMES KUR -124C2 CUNEIFORM SIGN GA2 TIMES LUH -124C3 CUNEIFORM SIGN GA2 TIMES MUSH -124C4 CUNEIFORM SIGN GA2 TIMES NE -124C5 CUNEIFORM SIGN GA2 TIMES NE PLUS E2 -124C6 CUNEIFORM SIGN GA2 TIMES NE PLUS GI -124C7 CUNEIFORM SIGN GA2 TIMES SHIM -124C8 CUNEIFORM SIGN GA2 TIMES ZIZ2 -124C9 CUNEIFORM SIGN GABA ROTATED NINETY DEGREES -124CA CUNEIFORM SIGN GESHTIN TIMES U -124CB CUNEIFORM SIGN GISH TIMES GISH CROSSING GISH -124CC CUNEIFORM SIGN GU2 TIMES IGI GUNU -124CD CUNEIFORM SIGN GUD PLUS GISH TIMES TAK4 -124CE CUNEIFORM SIGN HA TENU GUNU -124CF CUNEIFORM SIGN HI TIMES ASH OVER HI TIMES ASH -124D0 CUNEIFORM SIGN KA TIMES BU -124D1 CUNEIFORM SIGN KA TIMES KA -124D2 CUNEIFORM SIGN KA TIMES U U U -124D3 CUNEIFORM SIGN KA TIMES UR -124D4 CUNEIFORM SIGN LAGAB TIMES ZU OVER ZU -124D5 CUNEIFORM SIGN LAK-003 -124D6 CUNEIFORM SIGN LAK-021 -124D7 CUNEIFORM SIGN LAK-025 -124D8 CUNEIFORM SIGN LAK-030 -124D9 CUNEIFORM SIGN LAK-050 -124DA CUNEIFORM SIGN LAK-051 -124DB CUNEIFORM SIGN LAK-062 -124DC CUNEIFORM SIGN LAK-079 OVER LAK-079 GUNU -124DD CUNEIFORM SIGN LAK-080 -124DE CUNEIFORM SIGN LAK-081 OVER LAK-081 -124DF CUNEIFORM SIGN LAK-092 -124E0 CUNEIFORM SIGN LAK-130 -124E1 CUNEIFORM SIGN LAK-142 -124E2 CUNEIFORM SIGN LAK-210 -124E3 CUNEIFORM SIGN LAK-219 -124E4 CUNEIFORM SIGN LAK-220 -124E5 CUNEIFORM SIGN LAK-225 -124E6 CUNEIFORM SIGN LAK-228 -124E7 CUNEIFORM SIGN LAK-238 -124E8 CUNEIFORM SIGN LAK-265 -124E9 CUNEIFORM SIGN LAK-266 -124EA CUNEIFORM SIGN LAK-343 -124EB CUNEIFORM SIGN LAK-347 -124EC CUNEIFORM SIGN LAK-348 -124ED CUNEIFORM SIGN LAK-383 -124EE CUNEIFORM SIGN LAK-384 -124EF CUNEIFORM SIGN LAK-390 -124F0 CUNEIFORM SIGN LAK-441 -124F1 CUNEIFORM SIGN LAK-449 -124F2 CUNEIFORM SIGN LAK-449 TIMES GU -124F3 CUNEIFORM SIGN LAK-449 TIMES IGI -124F4 CUNEIFORM SIGN LAK-449 TIMES PAP PLUS LU3 -124F5 CUNEIFORM SIGN LAK-449 TIMES PAP PLUS PAP PLUS LU3 -124F6 CUNEIFORM SIGN LAK-449 TIMES U2 PLUS BA -124F7 CUNEIFORM SIGN LAK-450 -124F8 CUNEIFORM SIGN LAK-457 -124F9 CUNEIFORM SIGN LAK-470 -124FA CUNEIFORM SIGN LAK-483 -124FB CUNEIFORM SIGN LAK-490 -124FC CUNEIFORM SIGN LAK-492 -124FD CUNEIFORM SIGN LAK-493 -124FE CUNEIFORM SIGN LAK-495 -124FF CUNEIFORM SIGN LAK-550 -12500 CUNEIFORM SIGN LAK-608 -12501 CUNEIFORM SIGN LAK-617 -12502 CUNEIFORM SIGN LAK-617 TIMES ASH -12503 CUNEIFORM SIGN LAK-617 TIMES BAD -12504 CUNEIFORM SIGN LAK-617 TIMES DUN3 GUNU GUNU -12505 CUNEIFORM SIGN LAK-617 TIMES KU3 -12506 CUNEIFORM SIGN LAK-617 TIMES LA -12507 CUNEIFORM SIGN LAK-617 TIMES TAR -12508 CUNEIFORM SIGN LAK-617 TIMES TE -12509 CUNEIFORM SIGN LAK-617 TIMES U2 -1250A CUNEIFORM SIGN LAK-617 TIMES UD -1250B CUNEIFORM SIGN LAK-617 TIMES URUDA -1250C CUNEIFORM SIGN LAK-636 -1250D CUNEIFORM SIGN LAK-648 -1250E CUNEIFORM SIGN LAK-648 TIMES DUB -1250F CUNEIFORM SIGN LAK-648 TIMES GA -12510 CUNEIFORM SIGN LAK-648 TIMES IGI -12511 CUNEIFORM SIGN LAK-648 TIMES IGI GUNU -12512 CUNEIFORM SIGN LAK-648 TIMES NI -12513 CUNEIFORM SIGN LAK-648 TIMES PAP PLUS PAP PLUS LU3 -12514 CUNEIFORM SIGN LAK-648 TIMES SHESH PLUS KI -12515 CUNEIFORM SIGN LAK-648 TIMES UD -12516 CUNEIFORM SIGN LAK-648 TIMES URUDA -12517 CUNEIFORM SIGN LAK-724 -12518 CUNEIFORM SIGN LAK-749 -12519 CUNEIFORM SIGN LU2 GUNU TIMES ASH -1251A CUNEIFORM SIGN LU2 TIMES DISH -1251B CUNEIFORM SIGN LU2 TIMES HAL -1251C CUNEIFORM SIGN LU2 TIMES PAP -1251D CUNEIFORM SIGN LU2 TIMES PAP PLUS PAP PLUS LU3 -1251E CUNEIFORM SIGN LU2 TIMES TAK4 -1251F CUNEIFORM SIGN MI PLUS ZA7 -12520 CUNEIFORM SIGN MUSH OVER MUSH TIMES GA -12521 CUNEIFORM SIGN MUSH OVER MUSH TIMES KAK -12522 CUNEIFORM SIGN NINDA2 TIMES DIM GUNU -12523 CUNEIFORM SIGN NINDA2 TIMES GISH -12524 CUNEIFORM SIGN NINDA2 TIMES GUL -12525 CUNEIFORM SIGN NINDA2 TIMES HI -12526 CUNEIFORM SIGN NINDA2 TIMES KESH2 -12527 CUNEIFORM SIGN NINDA2 TIMES LAK-050 -12528 CUNEIFORM SIGN NINDA2 TIMES MASH -12529 CUNEIFORM SIGN NINDA2 TIMES PAP PLUS PAP -1252A CUNEIFORM SIGN NINDA2 TIMES U -1252B CUNEIFORM SIGN NINDA2 TIMES U PLUS U -1252C CUNEIFORM SIGN NINDA2 TIMES URUDA -1252D CUNEIFORM SIGN SAG GUNU TIMES HA -1252E CUNEIFORM SIGN SAG TIMES EN -1252F CUNEIFORM SIGN SAG TIMES SHE AT LEFT -12530 CUNEIFORM SIGN SAG TIMES TAK4 -12531 CUNEIFORM SIGN SHA6 TENU -12532 CUNEIFORM SIGN SHE OVER SHE -12533 CUNEIFORM SIGN SHE PLUS HUB2 -12534 CUNEIFORM SIGN SHE PLUS NAM2 -12535 CUNEIFORM SIGN SHE PLUS SAR -12536 CUNEIFORM SIGN SHU2 PLUS DUG TIMES NI -12537 CUNEIFORM SIGN SHU2 PLUS E2 TIMES AN -12538 CUNEIFORM SIGN SI TIMES TAK4 -12539 CUNEIFORM SIGN TAK4 PLUS SAG -1253A CUNEIFORM SIGN TUM TIMES GAN2 TENU -1253B CUNEIFORM SIGN TUM TIMES THREE DISH -1253C CUNEIFORM SIGN UR2 INVERTED -1253D CUNEIFORM SIGN UR2 TIMES UD -1253E CUNEIFORM SIGN URU TIMES DARA3 -1253F CUNEIFORM SIGN URU TIMES LAK-668 -12540 CUNEIFORM SIGN URU TIMES LU3 -12541 CUNEIFORM SIGN ZA7 -12542 CUNEIFORM SIGN ZU OVER ZU PLUS SAR -12543 CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU -13000 EGYPTIAN HIEROGLYPH A001 -13001 EGYPTIAN HIEROGLYPH A002 -13002 EGYPTIAN HIEROGLYPH A003 -13003 EGYPTIAN HIEROGLYPH A004 -13004 EGYPTIAN HIEROGLYPH A005 -13005 EGYPTIAN HIEROGLYPH A005A -13006 EGYPTIAN HIEROGLYPH A006 -13007 EGYPTIAN HIEROGLYPH A006A -13008 EGYPTIAN HIEROGLYPH A006B -13009 EGYPTIAN HIEROGLYPH A007 -1300A EGYPTIAN HIEROGLYPH A008 -1300B EGYPTIAN HIEROGLYPH A009 -1300C EGYPTIAN HIEROGLYPH A010 -1300D EGYPTIAN HIEROGLYPH A011 -1300E EGYPTIAN HIEROGLYPH A012 -1300F EGYPTIAN HIEROGLYPH A013 -13010 EGYPTIAN HIEROGLYPH A014 -13011 EGYPTIAN HIEROGLYPH A014A -13012 EGYPTIAN HIEROGLYPH A015 -13013 EGYPTIAN HIEROGLYPH A016 -13014 EGYPTIAN HIEROGLYPH A017 -13015 EGYPTIAN HIEROGLYPH A017A -13016 EGYPTIAN HIEROGLYPH A018 -13017 EGYPTIAN HIEROGLYPH A019 -13018 EGYPTIAN HIEROGLYPH A020 -13019 EGYPTIAN HIEROGLYPH A021 -1301A EGYPTIAN HIEROGLYPH A022 -1301B EGYPTIAN HIEROGLYPH A023 -1301C EGYPTIAN HIEROGLYPH A024 -1301D EGYPTIAN HIEROGLYPH A025 -1301E EGYPTIAN HIEROGLYPH A026 -1301F EGYPTIAN HIEROGLYPH A027 -13020 EGYPTIAN HIEROGLYPH A028 -13021 EGYPTIAN HIEROGLYPH A029 -13022 EGYPTIAN HIEROGLYPH A030 -13023 EGYPTIAN HIEROGLYPH A031 -13024 EGYPTIAN HIEROGLYPH A032 -13025 EGYPTIAN HIEROGLYPH A032A -13026 EGYPTIAN HIEROGLYPH A033 -13027 EGYPTIAN HIEROGLYPH A034 -13028 EGYPTIAN HIEROGLYPH A035 -13029 EGYPTIAN HIEROGLYPH A036 -1302A EGYPTIAN HIEROGLYPH A037 -1302B EGYPTIAN HIEROGLYPH A038 -1302C EGYPTIAN HIEROGLYPH A039 -1302D EGYPTIAN HIEROGLYPH A040 -1302E EGYPTIAN HIEROGLYPH A040A -1302F EGYPTIAN HIEROGLYPH A041 -13030 EGYPTIAN HIEROGLYPH A042 -13031 EGYPTIAN HIEROGLYPH A042A -13032 EGYPTIAN HIEROGLYPH A043 -13033 EGYPTIAN HIEROGLYPH A043A -13034 EGYPTIAN HIEROGLYPH A044 -13035 EGYPTIAN HIEROGLYPH A045 -13036 EGYPTIAN HIEROGLYPH A045A -13037 EGYPTIAN HIEROGLYPH A046 -13038 EGYPTIAN HIEROGLYPH A047 -13039 EGYPTIAN HIEROGLYPH A048 -1303A EGYPTIAN HIEROGLYPH A049 -1303B EGYPTIAN HIEROGLYPH A050 -1303C EGYPTIAN HIEROGLYPH A051 -1303D EGYPTIAN HIEROGLYPH A052 -1303E EGYPTIAN HIEROGLYPH A053 -1303F EGYPTIAN HIEROGLYPH A054 -13040 EGYPTIAN HIEROGLYPH A055 -13041 EGYPTIAN HIEROGLYPH A056 -13042 EGYPTIAN HIEROGLYPH A057 -13043 EGYPTIAN HIEROGLYPH A058 -13044 EGYPTIAN HIEROGLYPH A059 -13045 EGYPTIAN HIEROGLYPH A060 -13046 EGYPTIAN HIEROGLYPH A061 -13047 EGYPTIAN HIEROGLYPH A062 -13048 EGYPTIAN HIEROGLYPH A063 -13049 EGYPTIAN HIEROGLYPH A064 -1304A EGYPTIAN HIEROGLYPH A065 -1304B EGYPTIAN HIEROGLYPH A066 -1304C EGYPTIAN HIEROGLYPH A067 -1304D EGYPTIAN HIEROGLYPH A068 -1304E EGYPTIAN HIEROGLYPH A069 -1304F EGYPTIAN HIEROGLYPH A070 -13050 EGYPTIAN HIEROGLYPH B001 -13051 EGYPTIAN HIEROGLYPH B002 -13052 EGYPTIAN HIEROGLYPH B003 -13053 EGYPTIAN HIEROGLYPH B004 -13054 EGYPTIAN HIEROGLYPH B005 -13055 EGYPTIAN HIEROGLYPH B005A -13056 EGYPTIAN HIEROGLYPH B006 -13057 EGYPTIAN HIEROGLYPH B007 -13058 EGYPTIAN HIEROGLYPH B008 -13059 EGYPTIAN HIEROGLYPH B009 -1305A EGYPTIAN HIEROGLYPH C001 -1305B EGYPTIAN HIEROGLYPH C002 -1305C EGYPTIAN HIEROGLYPH C002A -1305D EGYPTIAN HIEROGLYPH C002B -1305E EGYPTIAN HIEROGLYPH C002C -1305F EGYPTIAN HIEROGLYPH C003 -13060 EGYPTIAN HIEROGLYPH C004 -13061 EGYPTIAN HIEROGLYPH C005 -13062 EGYPTIAN HIEROGLYPH C006 -13063 EGYPTIAN HIEROGLYPH C007 -13064 EGYPTIAN HIEROGLYPH C008 -13065 EGYPTIAN HIEROGLYPH C009 -13066 EGYPTIAN HIEROGLYPH C010 -13067 EGYPTIAN HIEROGLYPH C010A -13068 EGYPTIAN HIEROGLYPH C011 -13069 EGYPTIAN HIEROGLYPH C012 -1306A EGYPTIAN HIEROGLYPH C013 -1306B EGYPTIAN HIEROGLYPH C014 -1306C EGYPTIAN HIEROGLYPH C015 -1306D EGYPTIAN HIEROGLYPH C016 -1306E EGYPTIAN HIEROGLYPH C017 -1306F EGYPTIAN HIEROGLYPH C018 -13070 EGYPTIAN HIEROGLYPH C019 -13071 EGYPTIAN HIEROGLYPH C020 -13072 EGYPTIAN HIEROGLYPH C021 -13073 EGYPTIAN HIEROGLYPH C022 -13074 EGYPTIAN HIEROGLYPH C023 -13075 EGYPTIAN HIEROGLYPH C024 -13076 EGYPTIAN HIEROGLYPH D001 -13077 EGYPTIAN HIEROGLYPH D002 -13078 EGYPTIAN HIEROGLYPH D003 -13079 EGYPTIAN HIEROGLYPH D004 -1307A EGYPTIAN HIEROGLYPH D005 -1307B EGYPTIAN HIEROGLYPH D006 -1307C EGYPTIAN HIEROGLYPH D007 -1307D EGYPTIAN HIEROGLYPH D008 -1307E EGYPTIAN HIEROGLYPH D008A -1307F EGYPTIAN HIEROGLYPH D009 -13080 EGYPTIAN HIEROGLYPH D010 -13081 EGYPTIAN HIEROGLYPH D011 -13082 EGYPTIAN HIEROGLYPH D012 -13083 EGYPTIAN HIEROGLYPH D013 -13084 EGYPTIAN HIEROGLYPH D014 -13085 EGYPTIAN HIEROGLYPH D015 -13086 EGYPTIAN HIEROGLYPH D016 -13087 EGYPTIAN HIEROGLYPH D017 -13088 EGYPTIAN HIEROGLYPH D018 -13089 EGYPTIAN HIEROGLYPH D019 -1308A EGYPTIAN HIEROGLYPH D020 -1308B EGYPTIAN HIEROGLYPH D021 -1308C EGYPTIAN HIEROGLYPH D022 -1308D EGYPTIAN HIEROGLYPH D023 -1308E EGYPTIAN HIEROGLYPH D024 -1308F EGYPTIAN HIEROGLYPH D025 -13090 EGYPTIAN HIEROGLYPH D026 -13091 EGYPTIAN HIEROGLYPH D027 -13092 EGYPTIAN HIEROGLYPH D027A -13093 EGYPTIAN HIEROGLYPH D028 -13094 EGYPTIAN HIEROGLYPH D029 -13095 EGYPTIAN HIEROGLYPH D030 -13096 EGYPTIAN HIEROGLYPH D031 -13097 EGYPTIAN HIEROGLYPH D031A -13098 EGYPTIAN HIEROGLYPH D032 -13099 EGYPTIAN HIEROGLYPH D033 -1309A EGYPTIAN HIEROGLYPH D034 -1309B EGYPTIAN HIEROGLYPH D034A -1309C EGYPTIAN HIEROGLYPH D035 -1309D EGYPTIAN HIEROGLYPH D036 -1309E EGYPTIAN HIEROGLYPH D037 -1309F EGYPTIAN HIEROGLYPH D038 -130A0 EGYPTIAN HIEROGLYPH D039 -130A1 EGYPTIAN HIEROGLYPH D040 -130A2 EGYPTIAN HIEROGLYPH D041 -130A3 EGYPTIAN HIEROGLYPH D042 -130A4 EGYPTIAN HIEROGLYPH D043 -130A5 EGYPTIAN HIEROGLYPH D044 -130A6 EGYPTIAN HIEROGLYPH D045 -130A7 EGYPTIAN HIEROGLYPH D046 -130A8 EGYPTIAN HIEROGLYPH D046A -130A9 EGYPTIAN HIEROGLYPH D047 -130AA EGYPTIAN HIEROGLYPH D048 -130AB EGYPTIAN HIEROGLYPH D048A -130AC EGYPTIAN HIEROGLYPH D049 -130AD EGYPTIAN HIEROGLYPH D050 -130AE EGYPTIAN HIEROGLYPH D050A -130AF EGYPTIAN HIEROGLYPH D050B -130B0 EGYPTIAN HIEROGLYPH D050C -130B1 EGYPTIAN HIEROGLYPH D050D -130B2 EGYPTIAN HIEROGLYPH D050E -130B3 EGYPTIAN HIEROGLYPH D050F -130B4 EGYPTIAN HIEROGLYPH D050G -130B5 EGYPTIAN HIEROGLYPH D050H -130B6 EGYPTIAN HIEROGLYPH D050I -130B7 EGYPTIAN HIEROGLYPH D051 -130B8 EGYPTIAN HIEROGLYPH D052 -130B9 EGYPTIAN HIEROGLYPH D052A -130BA EGYPTIAN HIEROGLYPH D053 -130BB EGYPTIAN HIEROGLYPH D054 -130BC EGYPTIAN HIEROGLYPH D054A -130BD EGYPTIAN HIEROGLYPH D055 -130BE EGYPTIAN HIEROGLYPH D056 -130BF EGYPTIAN HIEROGLYPH D057 -130C0 EGYPTIAN HIEROGLYPH D058 -130C1 EGYPTIAN HIEROGLYPH D059 -130C2 EGYPTIAN HIEROGLYPH D060 -130C3 EGYPTIAN HIEROGLYPH D061 -130C4 EGYPTIAN HIEROGLYPH D062 -130C5 EGYPTIAN HIEROGLYPH D063 -130C6 EGYPTIAN HIEROGLYPH D064 -130C7 EGYPTIAN HIEROGLYPH D065 -130C8 EGYPTIAN HIEROGLYPH D066 -130C9 EGYPTIAN HIEROGLYPH D067 -130CA EGYPTIAN HIEROGLYPH D067A -130CB EGYPTIAN HIEROGLYPH D067B -130CC EGYPTIAN HIEROGLYPH D067C -130CD EGYPTIAN HIEROGLYPH D067D -130CE EGYPTIAN HIEROGLYPH D067E -130CF EGYPTIAN HIEROGLYPH D067F -130D0 EGYPTIAN HIEROGLYPH D067G -130D1 EGYPTIAN HIEROGLYPH D067H -130D2 EGYPTIAN HIEROGLYPH E001 -130D3 EGYPTIAN HIEROGLYPH E002 -130D4 EGYPTIAN HIEROGLYPH E003 -130D5 EGYPTIAN HIEROGLYPH E004 -130D6 EGYPTIAN HIEROGLYPH E005 -130D7 EGYPTIAN HIEROGLYPH E006 -130D8 EGYPTIAN HIEROGLYPH E007 -130D9 EGYPTIAN HIEROGLYPH E008 -130DA EGYPTIAN HIEROGLYPH E008A -130DB EGYPTIAN HIEROGLYPH E009 -130DC EGYPTIAN HIEROGLYPH E009A -130DD EGYPTIAN HIEROGLYPH E010 -130DE EGYPTIAN HIEROGLYPH E011 -130DF EGYPTIAN HIEROGLYPH E012 -130E0 EGYPTIAN HIEROGLYPH E013 -130E1 EGYPTIAN HIEROGLYPH E014 -130E2 EGYPTIAN HIEROGLYPH E015 -130E3 EGYPTIAN HIEROGLYPH E016 -130E4 EGYPTIAN HIEROGLYPH E016A -130E5 EGYPTIAN HIEROGLYPH E017 -130E6 EGYPTIAN HIEROGLYPH E017A -130E7 EGYPTIAN HIEROGLYPH E018 -130E8 EGYPTIAN HIEROGLYPH E019 -130E9 EGYPTIAN HIEROGLYPH E020 -130EA EGYPTIAN HIEROGLYPH E020A -130EB EGYPTIAN HIEROGLYPH E021 -130EC EGYPTIAN HIEROGLYPH E022 -130ED EGYPTIAN HIEROGLYPH E023 -130EE EGYPTIAN HIEROGLYPH E024 -130EF EGYPTIAN HIEROGLYPH E025 -130F0 EGYPTIAN HIEROGLYPH E026 -130F1 EGYPTIAN HIEROGLYPH E027 -130F2 EGYPTIAN HIEROGLYPH E028 -130F3 EGYPTIAN HIEROGLYPH E028A -130F4 EGYPTIAN HIEROGLYPH E029 -130F5 EGYPTIAN HIEROGLYPH E030 -130F6 EGYPTIAN HIEROGLYPH E031 -130F7 EGYPTIAN HIEROGLYPH E032 -130F8 EGYPTIAN HIEROGLYPH E033 -130F9 EGYPTIAN HIEROGLYPH E034 -130FA EGYPTIAN HIEROGLYPH E034A -130FB EGYPTIAN HIEROGLYPH E036 -130FC EGYPTIAN HIEROGLYPH E037 -130FD EGYPTIAN HIEROGLYPH E038 -130FE EGYPTIAN HIEROGLYPH F001 -130FF EGYPTIAN HIEROGLYPH F001A -13100 EGYPTIAN HIEROGLYPH F002 -13101 EGYPTIAN HIEROGLYPH F003 -13102 EGYPTIAN HIEROGLYPH F004 -13103 EGYPTIAN HIEROGLYPH F005 -13104 EGYPTIAN HIEROGLYPH F006 -13105 EGYPTIAN HIEROGLYPH F007 -13106 EGYPTIAN HIEROGLYPH F008 -13107 EGYPTIAN HIEROGLYPH F009 -13108 EGYPTIAN HIEROGLYPH F010 -13109 EGYPTIAN HIEROGLYPH F011 -1310A EGYPTIAN HIEROGLYPH F012 -1310B EGYPTIAN HIEROGLYPH F013 -1310C EGYPTIAN HIEROGLYPH F013A -1310D EGYPTIAN HIEROGLYPH F014 -1310E EGYPTIAN HIEROGLYPH F015 -1310F EGYPTIAN HIEROGLYPH F016 -13110 EGYPTIAN HIEROGLYPH F017 -13111 EGYPTIAN HIEROGLYPH F018 -13112 EGYPTIAN HIEROGLYPH F019 -13113 EGYPTIAN HIEROGLYPH F020 -13114 EGYPTIAN HIEROGLYPH F021 -13115 EGYPTIAN HIEROGLYPH F021A -13116 EGYPTIAN HIEROGLYPH F022 -13117 EGYPTIAN HIEROGLYPH F023 -13118 EGYPTIAN HIEROGLYPH F024 -13119 EGYPTIAN HIEROGLYPH F025 -1311A EGYPTIAN HIEROGLYPH F026 -1311B EGYPTIAN HIEROGLYPH F027 -1311C EGYPTIAN HIEROGLYPH F028 -1311D EGYPTIAN HIEROGLYPH F029 -1311E EGYPTIAN HIEROGLYPH F030 -1311F EGYPTIAN HIEROGLYPH F031 -13120 EGYPTIAN HIEROGLYPH F031A -13121 EGYPTIAN HIEROGLYPH F032 -13122 EGYPTIAN HIEROGLYPH F033 -13123 EGYPTIAN HIEROGLYPH F034 -13124 EGYPTIAN HIEROGLYPH F035 -13125 EGYPTIAN HIEROGLYPH F036 -13126 EGYPTIAN HIEROGLYPH F037 -13127 EGYPTIAN HIEROGLYPH F037A -13128 EGYPTIAN HIEROGLYPH F038 -13129 EGYPTIAN HIEROGLYPH F038A -1312A EGYPTIAN HIEROGLYPH F039 -1312B EGYPTIAN HIEROGLYPH F040 -1312C EGYPTIAN HIEROGLYPH F041 -1312D EGYPTIAN HIEROGLYPH F042 -1312E EGYPTIAN HIEROGLYPH F043 -1312F EGYPTIAN HIEROGLYPH F044 -13130 EGYPTIAN HIEROGLYPH F045 -13131 EGYPTIAN HIEROGLYPH F045A -13132 EGYPTIAN HIEROGLYPH F046 -13133 EGYPTIAN HIEROGLYPH F046A -13134 EGYPTIAN HIEROGLYPH F047 -13135 EGYPTIAN HIEROGLYPH F047A -13136 EGYPTIAN HIEROGLYPH F048 -13137 EGYPTIAN HIEROGLYPH F049 -13138 EGYPTIAN HIEROGLYPH F050 -13139 EGYPTIAN HIEROGLYPH F051 -1313A EGYPTIAN HIEROGLYPH F051A -1313B EGYPTIAN HIEROGLYPH F051B -1313C EGYPTIAN HIEROGLYPH F051C -1313D EGYPTIAN HIEROGLYPH F052 -1313E EGYPTIAN HIEROGLYPH F053 -1313F EGYPTIAN HIEROGLYPH G001 -13140 EGYPTIAN HIEROGLYPH G002 -13141 EGYPTIAN HIEROGLYPH G003 -13142 EGYPTIAN HIEROGLYPH G004 -13143 EGYPTIAN HIEROGLYPH G005 -13144 EGYPTIAN HIEROGLYPH G006 -13145 EGYPTIAN HIEROGLYPH G006A -13146 EGYPTIAN HIEROGLYPH G007 -13147 EGYPTIAN HIEROGLYPH G007A -13148 EGYPTIAN HIEROGLYPH G007B -13149 EGYPTIAN HIEROGLYPH G008 -1314A EGYPTIAN HIEROGLYPH G009 -1314B EGYPTIAN HIEROGLYPH G010 -1314C EGYPTIAN HIEROGLYPH G011 -1314D EGYPTIAN HIEROGLYPH G011A -1314E EGYPTIAN HIEROGLYPH G012 -1314F EGYPTIAN HIEROGLYPH G013 -13150 EGYPTIAN HIEROGLYPH G014 -13151 EGYPTIAN HIEROGLYPH G015 -13152 EGYPTIAN HIEROGLYPH G016 -13153 EGYPTIAN HIEROGLYPH G017 -13154 EGYPTIAN HIEROGLYPH G018 -13155 EGYPTIAN HIEROGLYPH G019 -13156 EGYPTIAN HIEROGLYPH G020 -13157 EGYPTIAN HIEROGLYPH G020A -13158 EGYPTIAN HIEROGLYPH G021 -13159 EGYPTIAN HIEROGLYPH G022 -1315A EGYPTIAN HIEROGLYPH G023 -1315B EGYPTIAN HIEROGLYPH G024 -1315C EGYPTIAN HIEROGLYPH G025 -1315D EGYPTIAN HIEROGLYPH G026 -1315E EGYPTIAN HIEROGLYPH G026A -1315F EGYPTIAN HIEROGLYPH G027 -13160 EGYPTIAN HIEROGLYPH G028 -13161 EGYPTIAN HIEROGLYPH G029 -13162 EGYPTIAN HIEROGLYPH G030 -13163 EGYPTIAN HIEROGLYPH G031 -13164 EGYPTIAN HIEROGLYPH G032 -13165 EGYPTIAN HIEROGLYPH G033 -13166 EGYPTIAN HIEROGLYPH G034 -13167 EGYPTIAN HIEROGLYPH G035 -13168 EGYPTIAN HIEROGLYPH G036 -13169 EGYPTIAN HIEROGLYPH G036A -1316A EGYPTIAN HIEROGLYPH G037 -1316B EGYPTIAN HIEROGLYPH G037A -1316C EGYPTIAN HIEROGLYPH G038 -1316D EGYPTIAN HIEROGLYPH G039 -1316E EGYPTIAN HIEROGLYPH G040 -1316F EGYPTIAN HIEROGLYPH G041 -13170 EGYPTIAN HIEROGLYPH G042 -13171 EGYPTIAN HIEROGLYPH G043 -13172 EGYPTIAN HIEROGLYPH G043A -13173 EGYPTIAN HIEROGLYPH G044 -13174 EGYPTIAN HIEROGLYPH G045 -13175 EGYPTIAN HIEROGLYPH G045A -13176 EGYPTIAN HIEROGLYPH G046 -13177 EGYPTIAN HIEROGLYPH G047 -13178 EGYPTIAN HIEROGLYPH G048 -13179 EGYPTIAN HIEROGLYPH G049 -1317A EGYPTIAN HIEROGLYPH G050 -1317B EGYPTIAN HIEROGLYPH G051 -1317C EGYPTIAN HIEROGLYPH G052 -1317D EGYPTIAN HIEROGLYPH G053 -1317E EGYPTIAN HIEROGLYPH G054 -1317F EGYPTIAN HIEROGLYPH H001 -13180 EGYPTIAN HIEROGLYPH H002 -13181 EGYPTIAN HIEROGLYPH H003 -13182 EGYPTIAN HIEROGLYPH H004 -13183 EGYPTIAN HIEROGLYPH H005 -13184 EGYPTIAN HIEROGLYPH H006 -13185 EGYPTIAN HIEROGLYPH H006A -13186 EGYPTIAN HIEROGLYPH H007 -13187 EGYPTIAN HIEROGLYPH H008 -13188 EGYPTIAN HIEROGLYPH I001 -13189 EGYPTIAN HIEROGLYPH I002 -1318A EGYPTIAN HIEROGLYPH I003 -1318B EGYPTIAN HIEROGLYPH I004 -1318C EGYPTIAN HIEROGLYPH I005 -1318D EGYPTIAN HIEROGLYPH I005A -1318E EGYPTIAN HIEROGLYPH I006 -1318F EGYPTIAN HIEROGLYPH I007 -13190 EGYPTIAN HIEROGLYPH I008 -13191 EGYPTIAN HIEROGLYPH I009 -13192 EGYPTIAN HIEROGLYPH I009A -13193 EGYPTIAN HIEROGLYPH I010 -13194 EGYPTIAN HIEROGLYPH I010A -13195 EGYPTIAN HIEROGLYPH I011 -13196 EGYPTIAN HIEROGLYPH I011A -13197 EGYPTIAN HIEROGLYPH I012 -13198 EGYPTIAN HIEROGLYPH I013 -13199 EGYPTIAN HIEROGLYPH I014 -1319A EGYPTIAN HIEROGLYPH I015 -1319B EGYPTIAN HIEROGLYPH K001 -1319C EGYPTIAN HIEROGLYPH K002 -1319D EGYPTIAN HIEROGLYPH K003 -1319E EGYPTIAN HIEROGLYPH K004 -1319F EGYPTIAN HIEROGLYPH K005 -131A0 EGYPTIAN HIEROGLYPH K006 -131A1 EGYPTIAN HIEROGLYPH K007 -131A2 EGYPTIAN HIEROGLYPH K008 -131A3 EGYPTIAN HIEROGLYPH L001 -131A4 EGYPTIAN HIEROGLYPH L002 -131A5 EGYPTIAN HIEROGLYPH L002A -131A6 EGYPTIAN HIEROGLYPH L003 -131A7 EGYPTIAN HIEROGLYPH L004 -131A8 EGYPTIAN HIEROGLYPH L005 -131A9 EGYPTIAN HIEROGLYPH L006 -131AA EGYPTIAN HIEROGLYPH L006A -131AB EGYPTIAN HIEROGLYPH L007 -131AC EGYPTIAN HIEROGLYPH L008 -131AD EGYPTIAN HIEROGLYPH M001 -131AE EGYPTIAN HIEROGLYPH M001A -131AF EGYPTIAN HIEROGLYPH M001B -131B0 EGYPTIAN HIEROGLYPH M002 -131B1 EGYPTIAN HIEROGLYPH M003 -131B2 EGYPTIAN HIEROGLYPH M003A -131B3 EGYPTIAN HIEROGLYPH M004 -131B4 EGYPTIAN HIEROGLYPH M005 -131B5 EGYPTIAN HIEROGLYPH M006 -131B6 EGYPTIAN HIEROGLYPH M007 -131B7 EGYPTIAN HIEROGLYPH M008 -131B8 EGYPTIAN HIEROGLYPH M009 -131B9 EGYPTIAN HIEROGLYPH M010 -131BA EGYPTIAN HIEROGLYPH M010A -131BB EGYPTIAN HIEROGLYPH M011 -131BC EGYPTIAN HIEROGLYPH M012 -131BD EGYPTIAN HIEROGLYPH M012A -131BE EGYPTIAN HIEROGLYPH M012B -131BF EGYPTIAN HIEROGLYPH M012C -131C0 EGYPTIAN HIEROGLYPH M012D -131C1 EGYPTIAN HIEROGLYPH M012E -131C2 EGYPTIAN HIEROGLYPH M012F -131C3 EGYPTIAN HIEROGLYPH M012G -131C4 EGYPTIAN HIEROGLYPH M012H -131C5 EGYPTIAN HIEROGLYPH M013 -131C6 EGYPTIAN HIEROGLYPH M014 -131C7 EGYPTIAN HIEROGLYPH M015 -131C8 EGYPTIAN HIEROGLYPH M015A -131C9 EGYPTIAN HIEROGLYPH M016 -131CA EGYPTIAN HIEROGLYPH M016A -131CB EGYPTIAN HIEROGLYPH M017 -131CC EGYPTIAN HIEROGLYPH M017A -131CD EGYPTIAN HIEROGLYPH M018 -131CE EGYPTIAN HIEROGLYPH M019 -131CF EGYPTIAN HIEROGLYPH M020 -131D0 EGYPTIAN HIEROGLYPH M021 -131D1 EGYPTIAN HIEROGLYPH M022 -131D2 EGYPTIAN HIEROGLYPH M022A -131D3 EGYPTIAN HIEROGLYPH M023 -131D4 EGYPTIAN HIEROGLYPH M024 -131D5 EGYPTIAN HIEROGLYPH M024A -131D6 EGYPTIAN HIEROGLYPH M025 -131D7 EGYPTIAN HIEROGLYPH M026 -131D8 EGYPTIAN HIEROGLYPH M027 -131D9 EGYPTIAN HIEROGLYPH M028 -131DA EGYPTIAN HIEROGLYPH M028A -131DB EGYPTIAN HIEROGLYPH M029 -131DC EGYPTIAN HIEROGLYPH M030 -131DD EGYPTIAN HIEROGLYPH M031 -131DE EGYPTIAN HIEROGLYPH M031A -131DF EGYPTIAN HIEROGLYPH M032 -131E0 EGYPTIAN HIEROGLYPH M033 -131E1 EGYPTIAN HIEROGLYPH M033A -131E2 EGYPTIAN HIEROGLYPH M033B -131E3 EGYPTIAN HIEROGLYPH M034 -131E4 EGYPTIAN HIEROGLYPH M035 -131E5 EGYPTIAN HIEROGLYPH M036 -131E6 EGYPTIAN HIEROGLYPH M037 -131E7 EGYPTIAN HIEROGLYPH M038 -131E8 EGYPTIAN HIEROGLYPH M039 -131E9 EGYPTIAN HIEROGLYPH M040 -131EA EGYPTIAN HIEROGLYPH M040A -131EB EGYPTIAN HIEROGLYPH M041 -131EC EGYPTIAN HIEROGLYPH M042 -131ED EGYPTIAN HIEROGLYPH M043 -131EE EGYPTIAN HIEROGLYPH M044 -131EF EGYPTIAN HIEROGLYPH N001 -131F0 EGYPTIAN HIEROGLYPH N002 -131F1 EGYPTIAN HIEROGLYPH N003 -131F2 EGYPTIAN HIEROGLYPH N004 -131F3 EGYPTIAN HIEROGLYPH N005 -131F4 EGYPTIAN HIEROGLYPH N006 -131F5 EGYPTIAN HIEROGLYPH N007 -131F6 EGYPTIAN HIEROGLYPH N008 -131F7 EGYPTIAN HIEROGLYPH N009 -131F8 EGYPTIAN HIEROGLYPH N010 -131F9 EGYPTIAN HIEROGLYPH N011 -131FA EGYPTIAN HIEROGLYPH N012 -131FB EGYPTIAN HIEROGLYPH N013 -131FC EGYPTIAN HIEROGLYPH N014 -131FD EGYPTIAN HIEROGLYPH N015 -131FE EGYPTIAN HIEROGLYPH N016 -131FF EGYPTIAN HIEROGLYPH N017 -13200 EGYPTIAN HIEROGLYPH N018 -13201 EGYPTIAN HIEROGLYPH N018A -13202 EGYPTIAN HIEROGLYPH N018B -13203 EGYPTIAN HIEROGLYPH N019 -13204 EGYPTIAN HIEROGLYPH N020 -13205 EGYPTIAN HIEROGLYPH N021 -13206 EGYPTIAN HIEROGLYPH N022 -13207 EGYPTIAN HIEROGLYPH N023 -13208 EGYPTIAN HIEROGLYPH N024 -13209 EGYPTIAN HIEROGLYPH N025 -1320A EGYPTIAN HIEROGLYPH N025A -1320B EGYPTIAN HIEROGLYPH N026 -1320C EGYPTIAN HIEROGLYPH N027 -1320D EGYPTIAN HIEROGLYPH N028 -1320E EGYPTIAN HIEROGLYPH N029 -1320F EGYPTIAN HIEROGLYPH N030 -13210 EGYPTIAN HIEROGLYPH N031 -13211 EGYPTIAN HIEROGLYPH N032 -13212 EGYPTIAN HIEROGLYPH N033 -13213 EGYPTIAN HIEROGLYPH N033A -13214 EGYPTIAN HIEROGLYPH N034 -13215 EGYPTIAN HIEROGLYPH N034A -13216 EGYPTIAN HIEROGLYPH N035 -13217 EGYPTIAN HIEROGLYPH N035A -13218 EGYPTIAN HIEROGLYPH N036 -13219 EGYPTIAN HIEROGLYPH N037 -1321A EGYPTIAN HIEROGLYPH N037A -1321B EGYPTIAN HIEROGLYPH N038 -1321C EGYPTIAN HIEROGLYPH N039 -1321D EGYPTIAN HIEROGLYPH N040 -1321E EGYPTIAN HIEROGLYPH N041 -1321F EGYPTIAN HIEROGLYPH N042 -13220 EGYPTIAN HIEROGLYPH NL001 -13221 EGYPTIAN HIEROGLYPH NL002 -13222 EGYPTIAN HIEROGLYPH NL003 -13223 EGYPTIAN HIEROGLYPH NL004 -13224 EGYPTIAN HIEROGLYPH NL005 -13225 EGYPTIAN HIEROGLYPH NL005A -13226 EGYPTIAN HIEROGLYPH NL006 -13227 EGYPTIAN HIEROGLYPH NL007 -13228 EGYPTIAN HIEROGLYPH NL008 -13229 EGYPTIAN HIEROGLYPH NL009 -1322A EGYPTIAN HIEROGLYPH NL010 -1322B EGYPTIAN HIEROGLYPH NL011 -1322C EGYPTIAN HIEROGLYPH NL012 -1322D EGYPTIAN HIEROGLYPH NL013 -1322E EGYPTIAN HIEROGLYPH NL014 -1322F EGYPTIAN HIEROGLYPH NL015 -13230 EGYPTIAN HIEROGLYPH NL016 -13231 EGYPTIAN HIEROGLYPH NL017 -13232 EGYPTIAN HIEROGLYPH NL017A -13233 EGYPTIAN HIEROGLYPH NL018 -13234 EGYPTIAN HIEROGLYPH NL019 -13235 EGYPTIAN HIEROGLYPH NL020 -13236 EGYPTIAN HIEROGLYPH NU001 -13237 EGYPTIAN HIEROGLYPH NU002 -13238 EGYPTIAN HIEROGLYPH NU003 -13239 EGYPTIAN HIEROGLYPH NU004 -1323A EGYPTIAN HIEROGLYPH NU005 -1323B EGYPTIAN HIEROGLYPH NU006 -1323C EGYPTIAN HIEROGLYPH NU007 -1323D EGYPTIAN HIEROGLYPH NU008 -1323E EGYPTIAN HIEROGLYPH NU009 -1323F EGYPTIAN HIEROGLYPH NU010 -13240 EGYPTIAN HIEROGLYPH NU010A -13241 EGYPTIAN HIEROGLYPH NU011 -13242 EGYPTIAN HIEROGLYPH NU011A -13243 EGYPTIAN HIEROGLYPH NU012 -13244 EGYPTIAN HIEROGLYPH NU013 -13245 EGYPTIAN HIEROGLYPH NU014 -13246 EGYPTIAN HIEROGLYPH NU015 -13247 EGYPTIAN HIEROGLYPH NU016 -13248 EGYPTIAN HIEROGLYPH NU017 -13249 EGYPTIAN HIEROGLYPH NU018 -1324A EGYPTIAN HIEROGLYPH NU018A -1324B EGYPTIAN HIEROGLYPH NU019 -1324C EGYPTIAN HIEROGLYPH NU020 -1324D EGYPTIAN HIEROGLYPH NU021 -1324E EGYPTIAN HIEROGLYPH NU022 -1324F EGYPTIAN HIEROGLYPH NU022A -13250 EGYPTIAN HIEROGLYPH O001 -13251 EGYPTIAN HIEROGLYPH O001A -13252 EGYPTIAN HIEROGLYPH O002 -13253 EGYPTIAN HIEROGLYPH O003 -13254 EGYPTIAN HIEROGLYPH O004 -13255 EGYPTIAN HIEROGLYPH O005 -13256 EGYPTIAN HIEROGLYPH O005A -13257 EGYPTIAN HIEROGLYPH O006 -13258 EGYPTIAN HIEROGLYPH O006A -13259 EGYPTIAN HIEROGLYPH O006B -1325A EGYPTIAN HIEROGLYPH O006C -1325B EGYPTIAN HIEROGLYPH O006D -1325C EGYPTIAN HIEROGLYPH O006E -1325D EGYPTIAN HIEROGLYPH O006F -1325E EGYPTIAN HIEROGLYPH O007 -1325F EGYPTIAN HIEROGLYPH O008 -13260 EGYPTIAN HIEROGLYPH O009 -13261 EGYPTIAN HIEROGLYPH O010 -13262 EGYPTIAN HIEROGLYPH O010A -13263 EGYPTIAN HIEROGLYPH O010B -13264 EGYPTIAN HIEROGLYPH O010C -13265 EGYPTIAN HIEROGLYPH O011 -13266 EGYPTIAN HIEROGLYPH O012 -13267 EGYPTIAN HIEROGLYPH O013 -13268 EGYPTIAN HIEROGLYPH O014 -13269 EGYPTIAN HIEROGLYPH O015 -1326A EGYPTIAN HIEROGLYPH O016 -1326B EGYPTIAN HIEROGLYPH O017 -1326C EGYPTIAN HIEROGLYPH O018 -1326D EGYPTIAN HIEROGLYPH O019 -1326E EGYPTIAN HIEROGLYPH O019A -1326F EGYPTIAN HIEROGLYPH O020 -13270 EGYPTIAN HIEROGLYPH O020A -13271 EGYPTIAN HIEROGLYPH O021 -13272 EGYPTIAN HIEROGLYPH O022 -13273 EGYPTIAN HIEROGLYPH O023 -13274 EGYPTIAN HIEROGLYPH O024 -13275 EGYPTIAN HIEROGLYPH O024A -13276 EGYPTIAN HIEROGLYPH O025 -13277 EGYPTIAN HIEROGLYPH O025A -13278 EGYPTIAN HIEROGLYPH O026 -13279 EGYPTIAN HIEROGLYPH O027 -1327A EGYPTIAN HIEROGLYPH O028 -1327B EGYPTIAN HIEROGLYPH O029 -1327C EGYPTIAN HIEROGLYPH O029A -1327D EGYPTIAN HIEROGLYPH O030 -1327E EGYPTIAN HIEROGLYPH O030A -1327F EGYPTIAN HIEROGLYPH O031 -13280 EGYPTIAN HIEROGLYPH O032 -13281 EGYPTIAN HIEROGLYPH O033 -13282 EGYPTIAN HIEROGLYPH O033A -13283 EGYPTIAN HIEROGLYPH O034 -13284 EGYPTIAN HIEROGLYPH O035 -13285 EGYPTIAN HIEROGLYPH O036 -13286 EGYPTIAN HIEROGLYPH O036A -13287 EGYPTIAN HIEROGLYPH O036B -13288 EGYPTIAN HIEROGLYPH O036C -13289 EGYPTIAN HIEROGLYPH O036D -1328A EGYPTIAN HIEROGLYPH O037 -1328B EGYPTIAN HIEROGLYPH O038 -1328C EGYPTIAN HIEROGLYPH O039 -1328D EGYPTIAN HIEROGLYPH O040 -1328E EGYPTIAN HIEROGLYPH O041 -1328F EGYPTIAN HIEROGLYPH O042 -13290 EGYPTIAN HIEROGLYPH O043 -13291 EGYPTIAN HIEROGLYPH O044 -13292 EGYPTIAN HIEROGLYPH O045 -13293 EGYPTIAN HIEROGLYPH O046 -13294 EGYPTIAN HIEROGLYPH O047 -13295 EGYPTIAN HIEROGLYPH O048 -13296 EGYPTIAN HIEROGLYPH O049 -13297 EGYPTIAN HIEROGLYPH O050 -13298 EGYPTIAN HIEROGLYPH O050A -13299 EGYPTIAN HIEROGLYPH O050B -1329A EGYPTIAN HIEROGLYPH O051 -1329B EGYPTIAN HIEROGLYPH P001 -1329C EGYPTIAN HIEROGLYPH P001A -1329D EGYPTIAN HIEROGLYPH P002 -1329E EGYPTIAN HIEROGLYPH P003 -1329F EGYPTIAN HIEROGLYPH P003A -132A0 EGYPTIAN HIEROGLYPH P004 -132A1 EGYPTIAN HIEROGLYPH P005 -132A2 EGYPTIAN HIEROGLYPH P006 -132A3 EGYPTIAN HIEROGLYPH P007 -132A4 EGYPTIAN HIEROGLYPH P008 -132A5 EGYPTIAN HIEROGLYPH P009 -132A6 EGYPTIAN HIEROGLYPH P010 -132A7 EGYPTIAN HIEROGLYPH P011 -132A8 EGYPTIAN HIEROGLYPH Q001 -132A9 EGYPTIAN HIEROGLYPH Q002 -132AA EGYPTIAN HIEROGLYPH Q003 -132AB EGYPTIAN HIEROGLYPH Q004 -132AC EGYPTIAN HIEROGLYPH Q005 -132AD EGYPTIAN HIEROGLYPH Q006 -132AE EGYPTIAN HIEROGLYPH Q007 -132AF EGYPTIAN HIEROGLYPH R001 -132B0 EGYPTIAN HIEROGLYPH R002 -132B1 EGYPTIAN HIEROGLYPH R002A -132B2 EGYPTIAN HIEROGLYPH R003 -132B3 EGYPTIAN HIEROGLYPH R003A -132B4 EGYPTIAN HIEROGLYPH R003B -132B5 EGYPTIAN HIEROGLYPH R004 -132B6 EGYPTIAN HIEROGLYPH R005 -132B7 EGYPTIAN HIEROGLYPH R006 -132B8 EGYPTIAN HIEROGLYPH R007 -132B9 EGYPTIAN HIEROGLYPH R008 -132BA EGYPTIAN HIEROGLYPH R009 -132BB EGYPTIAN HIEROGLYPH R010 -132BC EGYPTIAN HIEROGLYPH R010A -132BD EGYPTIAN HIEROGLYPH R011 -132BE EGYPTIAN HIEROGLYPH R012 -132BF EGYPTIAN HIEROGLYPH R013 -132C0 EGYPTIAN HIEROGLYPH R014 -132C1 EGYPTIAN HIEROGLYPH R015 -132C2 EGYPTIAN HIEROGLYPH R016 -132C3 EGYPTIAN HIEROGLYPH R016A -132C4 EGYPTIAN HIEROGLYPH R017 -132C5 EGYPTIAN HIEROGLYPH R018 -132C6 EGYPTIAN HIEROGLYPH R019 -132C7 EGYPTIAN HIEROGLYPH R020 -132C8 EGYPTIAN HIEROGLYPH R021 -132C9 EGYPTIAN HIEROGLYPH R022 -132CA EGYPTIAN HIEROGLYPH R023 -132CB EGYPTIAN HIEROGLYPH R024 -132CC EGYPTIAN HIEROGLYPH R025 -132CD EGYPTIAN HIEROGLYPH R026 -132CE EGYPTIAN HIEROGLYPH R027 -132CF EGYPTIAN HIEROGLYPH R028 -132D0 EGYPTIAN HIEROGLYPH R029 -132D1 EGYPTIAN HIEROGLYPH S001 -132D2 EGYPTIAN HIEROGLYPH S002 -132D3 EGYPTIAN HIEROGLYPH S002A -132D4 EGYPTIAN HIEROGLYPH S003 -132D5 EGYPTIAN HIEROGLYPH S004 -132D6 EGYPTIAN HIEROGLYPH S005 -132D7 EGYPTIAN HIEROGLYPH S006 -132D8 EGYPTIAN HIEROGLYPH S006A -132D9 EGYPTIAN HIEROGLYPH S007 -132DA EGYPTIAN HIEROGLYPH S008 -132DB EGYPTIAN HIEROGLYPH S009 -132DC EGYPTIAN HIEROGLYPH S010 -132DD EGYPTIAN HIEROGLYPH S011 -132DE EGYPTIAN HIEROGLYPH S012 -132DF EGYPTIAN HIEROGLYPH S013 -132E0 EGYPTIAN HIEROGLYPH S014 -132E1 EGYPTIAN HIEROGLYPH S014A -132E2 EGYPTIAN HIEROGLYPH S014B -132E3 EGYPTIAN HIEROGLYPH S015 -132E4 EGYPTIAN HIEROGLYPH S016 -132E5 EGYPTIAN HIEROGLYPH S017 -132E6 EGYPTIAN HIEROGLYPH S017A -132E7 EGYPTIAN HIEROGLYPH S018 -132E8 EGYPTIAN HIEROGLYPH S019 -132E9 EGYPTIAN HIEROGLYPH S020 -132EA EGYPTIAN HIEROGLYPH S021 -132EB EGYPTIAN HIEROGLYPH S022 -132EC EGYPTIAN HIEROGLYPH S023 -132ED EGYPTIAN HIEROGLYPH S024 -132EE EGYPTIAN HIEROGLYPH S025 -132EF EGYPTIAN HIEROGLYPH S026 -132F0 EGYPTIAN HIEROGLYPH S026A -132F1 EGYPTIAN HIEROGLYPH S026B -132F2 EGYPTIAN HIEROGLYPH S027 -132F3 EGYPTIAN HIEROGLYPH S028 -132F4 EGYPTIAN HIEROGLYPH S029 -132F5 EGYPTIAN HIEROGLYPH S030 -132F6 EGYPTIAN HIEROGLYPH S031 -132F7 EGYPTIAN HIEROGLYPH S032 -132F8 EGYPTIAN HIEROGLYPH S033 -132F9 EGYPTIAN HIEROGLYPH S034 -132FA EGYPTIAN HIEROGLYPH S035 -132FB EGYPTIAN HIEROGLYPH S035A -132FC EGYPTIAN HIEROGLYPH S036 -132FD EGYPTIAN HIEROGLYPH S037 -132FE EGYPTIAN HIEROGLYPH S038 -132FF EGYPTIAN HIEROGLYPH S039 -13300 EGYPTIAN HIEROGLYPH S040 -13301 EGYPTIAN HIEROGLYPH S041 -13302 EGYPTIAN HIEROGLYPH S042 -13303 EGYPTIAN HIEROGLYPH S043 -13304 EGYPTIAN HIEROGLYPH S044 -13305 EGYPTIAN HIEROGLYPH S045 -13306 EGYPTIAN HIEROGLYPH S046 -13307 EGYPTIAN HIEROGLYPH T001 -13308 EGYPTIAN HIEROGLYPH T002 -13309 EGYPTIAN HIEROGLYPH T003 -1330A EGYPTIAN HIEROGLYPH T003A -1330B EGYPTIAN HIEROGLYPH T004 -1330C EGYPTIAN HIEROGLYPH T005 -1330D EGYPTIAN HIEROGLYPH T006 -1330E EGYPTIAN HIEROGLYPH T007 -1330F EGYPTIAN HIEROGLYPH T007A -13310 EGYPTIAN HIEROGLYPH T008 -13311 EGYPTIAN HIEROGLYPH T008A -13312 EGYPTIAN HIEROGLYPH T009 -13313 EGYPTIAN HIEROGLYPH T009A -13314 EGYPTIAN HIEROGLYPH T010 -13315 EGYPTIAN HIEROGLYPH T011 -13316 EGYPTIAN HIEROGLYPH T011A -13317 EGYPTIAN HIEROGLYPH T012 -13318 EGYPTIAN HIEROGLYPH T013 -13319 EGYPTIAN HIEROGLYPH T014 -1331A EGYPTIAN HIEROGLYPH T015 -1331B EGYPTIAN HIEROGLYPH T016 -1331C EGYPTIAN HIEROGLYPH T016A -1331D EGYPTIAN HIEROGLYPH T017 -1331E EGYPTIAN HIEROGLYPH T018 -1331F EGYPTIAN HIEROGLYPH T019 -13320 EGYPTIAN HIEROGLYPH T020 -13321 EGYPTIAN HIEROGLYPH T021 -13322 EGYPTIAN HIEROGLYPH T022 -13323 EGYPTIAN HIEROGLYPH T023 -13324 EGYPTIAN HIEROGLYPH T024 -13325 EGYPTIAN HIEROGLYPH T025 -13326 EGYPTIAN HIEROGLYPH T026 -13327 EGYPTIAN HIEROGLYPH T027 -13328 EGYPTIAN HIEROGLYPH T028 -13329 EGYPTIAN HIEROGLYPH T029 -1332A EGYPTIAN HIEROGLYPH T030 -1332B EGYPTIAN HIEROGLYPH T031 -1332C EGYPTIAN HIEROGLYPH T032 -1332D EGYPTIAN HIEROGLYPH T032A -1332E EGYPTIAN HIEROGLYPH T033 -1332F EGYPTIAN HIEROGLYPH T033A -13330 EGYPTIAN HIEROGLYPH T034 -13331 EGYPTIAN HIEROGLYPH T035 -13332 EGYPTIAN HIEROGLYPH T036 -13333 EGYPTIAN HIEROGLYPH U001 -13334 EGYPTIAN HIEROGLYPH U002 -13335 EGYPTIAN HIEROGLYPH U003 -13336 EGYPTIAN HIEROGLYPH U004 -13337 EGYPTIAN HIEROGLYPH U005 -13338 EGYPTIAN HIEROGLYPH U006 -13339 EGYPTIAN HIEROGLYPH U006A -1333A EGYPTIAN HIEROGLYPH U006B -1333B EGYPTIAN HIEROGLYPH U007 -1333C EGYPTIAN HIEROGLYPH U008 -1333D EGYPTIAN HIEROGLYPH U009 -1333E EGYPTIAN HIEROGLYPH U010 -1333F EGYPTIAN HIEROGLYPH U011 -13340 EGYPTIAN HIEROGLYPH U012 -13341 EGYPTIAN HIEROGLYPH U013 -13342 EGYPTIAN HIEROGLYPH U014 -13343 EGYPTIAN HIEROGLYPH U015 -13344 EGYPTIAN HIEROGLYPH U016 -13345 EGYPTIAN HIEROGLYPH U017 -13346 EGYPTIAN HIEROGLYPH U018 -13347 EGYPTIAN HIEROGLYPH U019 -13348 EGYPTIAN HIEROGLYPH U020 -13349 EGYPTIAN HIEROGLYPH U021 -1334A EGYPTIAN HIEROGLYPH U022 -1334B EGYPTIAN HIEROGLYPH U023 -1334C EGYPTIAN HIEROGLYPH U023A -1334D EGYPTIAN HIEROGLYPH U024 -1334E EGYPTIAN HIEROGLYPH U025 -1334F EGYPTIAN HIEROGLYPH U026 -13350 EGYPTIAN HIEROGLYPH U027 -13351 EGYPTIAN HIEROGLYPH U028 -13352 EGYPTIAN HIEROGLYPH U029 -13353 EGYPTIAN HIEROGLYPH U029A -13354 EGYPTIAN HIEROGLYPH U030 -13355 EGYPTIAN HIEROGLYPH U031 -13356 EGYPTIAN HIEROGLYPH U032 -13357 EGYPTIAN HIEROGLYPH U032A -13358 EGYPTIAN HIEROGLYPH U033 -13359 EGYPTIAN HIEROGLYPH U034 -1335A EGYPTIAN HIEROGLYPH U035 -1335B EGYPTIAN HIEROGLYPH U036 -1335C EGYPTIAN HIEROGLYPH U037 -1335D EGYPTIAN HIEROGLYPH U038 -1335E EGYPTIAN HIEROGLYPH U039 -1335F EGYPTIAN HIEROGLYPH U040 -13360 EGYPTIAN HIEROGLYPH U041 -13361 EGYPTIAN HIEROGLYPH U042 -13362 EGYPTIAN HIEROGLYPH V001 -13363 EGYPTIAN HIEROGLYPH V001A -13364 EGYPTIAN HIEROGLYPH V001B -13365 EGYPTIAN HIEROGLYPH V001C -13366 EGYPTIAN HIEROGLYPH V001D -13367 EGYPTIAN HIEROGLYPH V001E -13368 EGYPTIAN HIEROGLYPH V001F -13369 EGYPTIAN HIEROGLYPH V001G -1336A EGYPTIAN HIEROGLYPH V001H -1336B EGYPTIAN HIEROGLYPH V001I -1336C EGYPTIAN HIEROGLYPH V002 -1336D EGYPTIAN HIEROGLYPH V002A -1336E EGYPTIAN HIEROGLYPH V003 -1336F EGYPTIAN HIEROGLYPH V004 -13370 EGYPTIAN HIEROGLYPH V005 -13371 EGYPTIAN HIEROGLYPH V006 -13372 EGYPTIAN HIEROGLYPH V007 -13373 EGYPTIAN HIEROGLYPH V007A -13374 EGYPTIAN HIEROGLYPH V007B -13375 EGYPTIAN HIEROGLYPH V008 -13376 EGYPTIAN HIEROGLYPH V009 -13377 EGYPTIAN HIEROGLYPH V010 -13378 EGYPTIAN HIEROGLYPH V011 -13379 EGYPTIAN HIEROGLYPH V011A -1337A EGYPTIAN HIEROGLYPH V011B -1337B EGYPTIAN HIEROGLYPH V011C -1337C EGYPTIAN HIEROGLYPH V012 -1337D EGYPTIAN HIEROGLYPH V012A -1337E EGYPTIAN HIEROGLYPH V012B -1337F EGYPTIAN HIEROGLYPH V013 -13380 EGYPTIAN HIEROGLYPH V014 -13381 EGYPTIAN HIEROGLYPH V015 -13382 EGYPTIAN HIEROGLYPH V016 -13383 EGYPTIAN HIEROGLYPH V017 -13384 EGYPTIAN HIEROGLYPH V018 -13385 EGYPTIAN HIEROGLYPH V019 -13386 EGYPTIAN HIEROGLYPH V020 -13387 EGYPTIAN HIEROGLYPH V020A -13388 EGYPTIAN HIEROGLYPH V020B -13389 EGYPTIAN HIEROGLYPH V020C -1338A EGYPTIAN HIEROGLYPH V020D -1338B EGYPTIAN HIEROGLYPH V020E -1338C EGYPTIAN HIEROGLYPH V020F -1338D EGYPTIAN HIEROGLYPH V020G -1338E EGYPTIAN HIEROGLYPH V020H -1338F EGYPTIAN HIEROGLYPH V020I -13390 EGYPTIAN HIEROGLYPH V020J -13391 EGYPTIAN HIEROGLYPH V020K -13392 EGYPTIAN HIEROGLYPH V020L -13393 EGYPTIAN HIEROGLYPH V021 -13394 EGYPTIAN HIEROGLYPH V022 -13395 EGYPTIAN HIEROGLYPH V023 -13396 EGYPTIAN HIEROGLYPH V023A -13397 EGYPTIAN HIEROGLYPH V024 -13398 EGYPTIAN HIEROGLYPH V025 -13399 EGYPTIAN HIEROGLYPH V026 -1339A EGYPTIAN HIEROGLYPH V027 -1339B EGYPTIAN HIEROGLYPH V028 -1339C EGYPTIAN HIEROGLYPH V028A -1339D EGYPTIAN HIEROGLYPH V029 -1339E EGYPTIAN HIEROGLYPH V029A -1339F EGYPTIAN HIEROGLYPH V030 -133A0 EGYPTIAN HIEROGLYPH V030A -133A1 EGYPTIAN HIEROGLYPH V031 -133A2 EGYPTIAN HIEROGLYPH V031A -133A3 EGYPTIAN HIEROGLYPH V032 -133A4 EGYPTIAN HIEROGLYPH V033 -133A5 EGYPTIAN HIEROGLYPH V033A -133A6 EGYPTIAN HIEROGLYPH V034 -133A7 EGYPTIAN HIEROGLYPH V035 -133A8 EGYPTIAN HIEROGLYPH V036 -133A9 EGYPTIAN HIEROGLYPH V037 -133AA EGYPTIAN HIEROGLYPH V037A -133AB EGYPTIAN HIEROGLYPH V038 -133AC EGYPTIAN HIEROGLYPH V039 -133AD EGYPTIAN HIEROGLYPH V040 -133AE EGYPTIAN HIEROGLYPH V040A -133AF EGYPTIAN HIEROGLYPH W001 -133B0 EGYPTIAN HIEROGLYPH W002 -133B1 EGYPTIAN HIEROGLYPH W003 -133B2 EGYPTIAN HIEROGLYPH W003A -133B3 EGYPTIAN HIEROGLYPH W004 -133B4 EGYPTIAN HIEROGLYPH W005 -133B5 EGYPTIAN HIEROGLYPH W006 -133B6 EGYPTIAN HIEROGLYPH W007 -133B7 EGYPTIAN HIEROGLYPH W008 -133B8 EGYPTIAN HIEROGLYPH W009 -133B9 EGYPTIAN HIEROGLYPH W009A -133BA EGYPTIAN HIEROGLYPH W010 -133BB EGYPTIAN HIEROGLYPH W010A -133BC EGYPTIAN HIEROGLYPH W011 -133BD EGYPTIAN HIEROGLYPH W012 -133BE EGYPTIAN HIEROGLYPH W013 -133BF EGYPTIAN HIEROGLYPH W014 -133C0 EGYPTIAN HIEROGLYPH W014A -133C1 EGYPTIAN HIEROGLYPH W015 -133C2 EGYPTIAN HIEROGLYPH W016 -133C3 EGYPTIAN HIEROGLYPH W017 -133C4 EGYPTIAN HIEROGLYPH W017A -133C5 EGYPTIAN HIEROGLYPH W018 -133C6 EGYPTIAN HIEROGLYPH W018A -133C7 EGYPTIAN HIEROGLYPH W019 -133C8 EGYPTIAN HIEROGLYPH W020 -133C9 EGYPTIAN HIEROGLYPH W021 -133CA EGYPTIAN HIEROGLYPH W022 -133CB EGYPTIAN HIEROGLYPH W023 -133CC EGYPTIAN HIEROGLYPH W024 -133CD EGYPTIAN HIEROGLYPH W024A -133CE EGYPTIAN HIEROGLYPH W025 -133CF EGYPTIAN HIEROGLYPH X001 -133D0 EGYPTIAN HIEROGLYPH X002 -133D1 EGYPTIAN HIEROGLYPH X003 -133D2 EGYPTIAN HIEROGLYPH X004 -133D3 EGYPTIAN HIEROGLYPH X004A -133D4 EGYPTIAN HIEROGLYPH X004B -133D5 EGYPTIAN HIEROGLYPH X005 -133D6 EGYPTIAN HIEROGLYPH X006 -133D7 EGYPTIAN HIEROGLYPH X006A -133D8 EGYPTIAN HIEROGLYPH X007 -133D9 EGYPTIAN HIEROGLYPH X008 -133DA EGYPTIAN HIEROGLYPH X008A -133DB EGYPTIAN HIEROGLYPH Y001 -133DC EGYPTIAN HIEROGLYPH Y001A -133DD EGYPTIAN HIEROGLYPH Y002 -133DE EGYPTIAN HIEROGLYPH Y003 -133DF EGYPTIAN HIEROGLYPH Y004 -133E0 EGYPTIAN HIEROGLYPH Y005 -133E1 EGYPTIAN HIEROGLYPH Y006 -133E2 EGYPTIAN HIEROGLYPH Y007 -133E3 EGYPTIAN HIEROGLYPH Y008 -133E4 EGYPTIAN HIEROGLYPH Z001 -133E5 EGYPTIAN HIEROGLYPH Z002 -133E6 EGYPTIAN HIEROGLYPH Z002A -133E7 EGYPTIAN HIEROGLYPH Z002B -133E8 EGYPTIAN HIEROGLYPH Z002C -133E9 EGYPTIAN HIEROGLYPH Z002D -133EA EGYPTIAN HIEROGLYPH Z003 -133EB EGYPTIAN HIEROGLYPH Z003A -133EC EGYPTIAN HIEROGLYPH Z003B -133ED EGYPTIAN HIEROGLYPH Z004 -133EE EGYPTIAN HIEROGLYPH Z004A -133EF EGYPTIAN HIEROGLYPH Z005 -133F0 EGYPTIAN HIEROGLYPH Z005A -133F1 EGYPTIAN HIEROGLYPH Z006 -133F2 EGYPTIAN HIEROGLYPH Z007 -133F3 EGYPTIAN HIEROGLYPH Z008 -133F4 EGYPTIAN HIEROGLYPH Z009 -133F5 EGYPTIAN HIEROGLYPH Z010 -133F6 EGYPTIAN HIEROGLYPH Z011 -133F7 EGYPTIAN HIEROGLYPH Z012 -133F8 EGYPTIAN HIEROGLYPH Z013 -133F9 EGYPTIAN HIEROGLYPH Z014 -133FA EGYPTIAN HIEROGLYPH Z015 -133FB EGYPTIAN HIEROGLYPH Z015A -133FC EGYPTIAN HIEROGLYPH Z015B -133FD EGYPTIAN HIEROGLYPH Z015C -133FE EGYPTIAN HIEROGLYPH Z015D -133FF EGYPTIAN HIEROGLYPH Z015E -13400 EGYPTIAN HIEROGLYPH Z015F -13401 EGYPTIAN HIEROGLYPH Z015G -13402 EGYPTIAN HIEROGLYPH Z015H -13403 EGYPTIAN HIEROGLYPH Z015I -13404 EGYPTIAN HIEROGLYPH Z016 -13405 EGYPTIAN HIEROGLYPH Z016A -13406 EGYPTIAN HIEROGLYPH Z016B -13407 EGYPTIAN HIEROGLYPH Z016C -13408 EGYPTIAN HIEROGLYPH Z016D -13409 EGYPTIAN HIEROGLYPH Z016E -1340A EGYPTIAN HIEROGLYPH Z016F -1340B EGYPTIAN HIEROGLYPH Z016G -1340C EGYPTIAN HIEROGLYPH Z016H -1340D EGYPTIAN HIEROGLYPH AA001 -1340E EGYPTIAN HIEROGLYPH AA002 -1340F EGYPTIAN HIEROGLYPH AA003 -13410 EGYPTIAN HIEROGLYPH AA004 -13411 EGYPTIAN HIEROGLYPH AA005 -13412 EGYPTIAN HIEROGLYPH AA006 -13413 EGYPTIAN HIEROGLYPH AA007 -13414 EGYPTIAN HIEROGLYPH AA007A -13415 EGYPTIAN HIEROGLYPH AA007B -13416 EGYPTIAN HIEROGLYPH AA008 -13417 EGYPTIAN HIEROGLYPH AA009 -13418 EGYPTIAN HIEROGLYPH AA010 -13419 EGYPTIAN HIEROGLYPH AA011 -1341A EGYPTIAN HIEROGLYPH AA012 -1341B EGYPTIAN HIEROGLYPH AA013 -1341C EGYPTIAN HIEROGLYPH AA014 -1341D EGYPTIAN HIEROGLYPH AA015 -1341E EGYPTIAN HIEROGLYPH AA016 -1341F EGYPTIAN HIEROGLYPH AA017 -13420 EGYPTIAN HIEROGLYPH AA018 -13421 EGYPTIAN HIEROGLYPH AA019 -13422 EGYPTIAN HIEROGLYPH AA020 -13423 EGYPTIAN HIEROGLYPH AA021 -13424 EGYPTIAN HIEROGLYPH AA022 -13425 EGYPTIAN HIEROGLYPH AA023 -13426 EGYPTIAN HIEROGLYPH AA024 -13427 EGYPTIAN HIEROGLYPH AA025 -13428 EGYPTIAN HIEROGLYPH AA026 -13429 EGYPTIAN HIEROGLYPH AA027 -1342A EGYPTIAN HIEROGLYPH AA028 -1342B EGYPTIAN HIEROGLYPH AA029 -1342C EGYPTIAN HIEROGLYPH AA030 -1342D EGYPTIAN HIEROGLYPH AA031 -1342E EGYPTIAN HIEROGLYPH AA032 -14400 ANATOLIAN HIEROGLYPH A001 -14401 ANATOLIAN HIEROGLYPH A002 -14402 ANATOLIAN HIEROGLYPH A003 -14403 ANATOLIAN HIEROGLYPH A004 -14404 ANATOLIAN HIEROGLYPH A005 -14405 ANATOLIAN HIEROGLYPH A006 -14406 ANATOLIAN HIEROGLYPH A007 -14407 ANATOLIAN HIEROGLYPH A008 -14408 ANATOLIAN HIEROGLYPH A009 -14409 ANATOLIAN HIEROGLYPH A010 -1440A ANATOLIAN HIEROGLYPH A010A -1440B ANATOLIAN HIEROGLYPH A011 -1440C ANATOLIAN HIEROGLYPH A012 -1440D ANATOLIAN HIEROGLYPH A013 -1440E ANATOLIAN HIEROGLYPH A014 -1440F ANATOLIAN HIEROGLYPH A015 -14410 ANATOLIAN HIEROGLYPH A016 -14411 ANATOLIAN HIEROGLYPH A017 -14412 ANATOLIAN HIEROGLYPH A018 -14413 ANATOLIAN HIEROGLYPH A019 -14414 ANATOLIAN HIEROGLYPH A020 -14415 ANATOLIAN HIEROGLYPH A021 -14416 ANATOLIAN HIEROGLYPH A022 -14417 ANATOLIAN HIEROGLYPH A023 -14418 ANATOLIAN HIEROGLYPH A024 -14419 ANATOLIAN HIEROGLYPH A025 -1441A ANATOLIAN HIEROGLYPH A026 -1441B ANATOLIAN HIEROGLYPH A026A -1441C ANATOLIAN HIEROGLYPH A027 -1441D ANATOLIAN HIEROGLYPH A028 -1441E ANATOLIAN HIEROGLYPH A029 -1441F ANATOLIAN HIEROGLYPH A030 -14420 ANATOLIAN HIEROGLYPH A031 -14421 ANATOLIAN HIEROGLYPH A032 -14422 ANATOLIAN HIEROGLYPH A033 -14423 ANATOLIAN HIEROGLYPH A034 -14424 ANATOLIAN HIEROGLYPH A035 -14425 ANATOLIAN HIEROGLYPH A036 -14426 ANATOLIAN HIEROGLYPH A037 -14427 ANATOLIAN HIEROGLYPH A038 -14428 ANATOLIAN HIEROGLYPH A039 -14429 ANATOLIAN HIEROGLYPH A039A -1442A ANATOLIAN HIEROGLYPH A040 -1442B ANATOLIAN HIEROGLYPH A041 -1442C ANATOLIAN HIEROGLYPH A041A -1442D ANATOLIAN HIEROGLYPH A042 -1442E ANATOLIAN HIEROGLYPH A043 -1442F ANATOLIAN HIEROGLYPH A044 -14430 ANATOLIAN HIEROGLYPH A045 -14431 ANATOLIAN HIEROGLYPH A045A -14432 ANATOLIAN HIEROGLYPH A046 -14433 ANATOLIAN HIEROGLYPH A046A -14434 ANATOLIAN HIEROGLYPH A046B -14435 ANATOLIAN HIEROGLYPH A047 -14436 ANATOLIAN HIEROGLYPH A048 -14437 ANATOLIAN HIEROGLYPH A049 -14438 ANATOLIAN HIEROGLYPH A050 -14439 ANATOLIAN HIEROGLYPH A051 -1443A ANATOLIAN HIEROGLYPH A052 -1443B ANATOLIAN HIEROGLYPH A053 -1443C ANATOLIAN HIEROGLYPH A054 -1443D ANATOLIAN HIEROGLYPH A055 -1443E ANATOLIAN HIEROGLYPH A056 -1443F ANATOLIAN HIEROGLYPH A057 -14440 ANATOLIAN HIEROGLYPH A058 -14441 ANATOLIAN HIEROGLYPH A059 -14442 ANATOLIAN HIEROGLYPH A060 -14443 ANATOLIAN HIEROGLYPH A061 -14444 ANATOLIAN HIEROGLYPH A062 -14445 ANATOLIAN HIEROGLYPH A063 -14446 ANATOLIAN HIEROGLYPH A064 -14447 ANATOLIAN HIEROGLYPH A065 -14448 ANATOLIAN HIEROGLYPH A066 -14449 ANATOLIAN HIEROGLYPH A066A -1444A ANATOLIAN HIEROGLYPH A066B -1444B ANATOLIAN HIEROGLYPH A066C -1444C ANATOLIAN HIEROGLYPH A067 -1444D ANATOLIAN HIEROGLYPH A068 -1444E ANATOLIAN HIEROGLYPH A069 -1444F ANATOLIAN HIEROGLYPH A070 -14450 ANATOLIAN HIEROGLYPH A071 -14451 ANATOLIAN HIEROGLYPH A072 -14452 ANATOLIAN HIEROGLYPH A073 -14453 ANATOLIAN HIEROGLYPH A074 -14454 ANATOLIAN HIEROGLYPH A075 -14455 ANATOLIAN HIEROGLYPH A076 -14456 ANATOLIAN HIEROGLYPH A077 -14457 ANATOLIAN HIEROGLYPH A078 -14458 ANATOLIAN HIEROGLYPH A079 -14459 ANATOLIAN HIEROGLYPH A080 -1445A ANATOLIAN HIEROGLYPH A081 -1445B ANATOLIAN HIEROGLYPH A082 -1445C ANATOLIAN HIEROGLYPH A083 -1445D ANATOLIAN HIEROGLYPH A084 -1445E ANATOLIAN HIEROGLYPH A085 -1445F ANATOLIAN HIEROGLYPH A086 -14460 ANATOLIAN HIEROGLYPH A087 -14461 ANATOLIAN HIEROGLYPH A088 -14462 ANATOLIAN HIEROGLYPH A089 -14463 ANATOLIAN HIEROGLYPH A090 -14464 ANATOLIAN HIEROGLYPH A091 -14465 ANATOLIAN HIEROGLYPH A092 -14466 ANATOLIAN HIEROGLYPH A093 -14467 ANATOLIAN HIEROGLYPH A094 -14468 ANATOLIAN HIEROGLYPH A095 -14469 ANATOLIAN HIEROGLYPH A096 -1446A ANATOLIAN HIEROGLYPH A097 -1446B ANATOLIAN HIEROGLYPH A097A -1446C ANATOLIAN HIEROGLYPH A098 -1446D ANATOLIAN HIEROGLYPH A098A -1446E ANATOLIAN HIEROGLYPH A099 -1446F ANATOLIAN HIEROGLYPH A100 -14470 ANATOLIAN HIEROGLYPH A100A -14471 ANATOLIAN HIEROGLYPH A101 -14472 ANATOLIAN HIEROGLYPH A101A -14473 ANATOLIAN HIEROGLYPH A102 -14474 ANATOLIAN HIEROGLYPH A102A -14475 ANATOLIAN HIEROGLYPH A103 -14476 ANATOLIAN HIEROGLYPH A104 -14477 ANATOLIAN HIEROGLYPH A104A -14478 ANATOLIAN HIEROGLYPH A104B -14479 ANATOLIAN HIEROGLYPH A104C -1447A ANATOLIAN HIEROGLYPH A105 -1447B ANATOLIAN HIEROGLYPH A105A -1447C ANATOLIAN HIEROGLYPH A105B -1447D ANATOLIAN HIEROGLYPH A106 -1447E ANATOLIAN HIEROGLYPH A107 -1447F ANATOLIAN HIEROGLYPH A107A -14480 ANATOLIAN HIEROGLYPH A107B -14481 ANATOLIAN HIEROGLYPH A107C -14482 ANATOLIAN HIEROGLYPH A108 -14483 ANATOLIAN HIEROGLYPH A109 -14484 ANATOLIAN HIEROGLYPH A110 -14485 ANATOLIAN HIEROGLYPH A110A -14486 ANATOLIAN HIEROGLYPH A110B -14487 ANATOLIAN HIEROGLYPH A111 -14488 ANATOLIAN HIEROGLYPH A112 -14489 ANATOLIAN HIEROGLYPH A113 -1448A ANATOLIAN HIEROGLYPH A114 -1448B ANATOLIAN HIEROGLYPH A115 -1448C ANATOLIAN HIEROGLYPH A115A -1448D ANATOLIAN HIEROGLYPH A116 -1448E ANATOLIAN HIEROGLYPH A117 -1448F ANATOLIAN HIEROGLYPH A118 -14490 ANATOLIAN HIEROGLYPH A119 -14491 ANATOLIAN HIEROGLYPH A120 -14492 ANATOLIAN HIEROGLYPH A121 -14493 ANATOLIAN HIEROGLYPH A122 -14494 ANATOLIAN HIEROGLYPH A123 -14495 ANATOLIAN HIEROGLYPH A124 -14496 ANATOLIAN HIEROGLYPH A125 -14497 ANATOLIAN HIEROGLYPH A125A -14498 ANATOLIAN HIEROGLYPH A126 -14499 ANATOLIAN HIEROGLYPH A127 -1449A ANATOLIAN HIEROGLYPH A128 -1449B ANATOLIAN HIEROGLYPH A129 -1449C ANATOLIAN HIEROGLYPH A130 -1449D ANATOLIAN HIEROGLYPH A131 -1449E ANATOLIAN HIEROGLYPH A132 -1449F ANATOLIAN HIEROGLYPH A133 -144A0 ANATOLIAN HIEROGLYPH A134 -144A1 ANATOLIAN HIEROGLYPH A135 -144A2 ANATOLIAN HIEROGLYPH A135A -144A3 ANATOLIAN HIEROGLYPH A136 -144A4 ANATOLIAN HIEROGLYPH A137 -144A5 ANATOLIAN HIEROGLYPH A138 -144A6 ANATOLIAN HIEROGLYPH A139 -144A7 ANATOLIAN HIEROGLYPH A140 -144A8 ANATOLIAN HIEROGLYPH A141 -144A9 ANATOLIAN HIEROGLYPH A142 -144AA ANATOLIAN HIEROGLYPH A143 -144AB ANATOLIAN HIEROGLYPH A144 -144AC ANATOLIAN HIEROGLYPH A145 -144AD ANATOLIAN HIEROGLYPH A146 -144AE ANATOLIAN HIEROGLYPH A147 -144AF ANATOLIAN HIEROGLYPH A148 -144B0 ANATOLIAN HIEROGLYPH A149 -144B1 ANATOLIAN HIEROGLYPH A150 -144B2 ANATOLIAN HIEROGLYPH A151 -144B3 ANATOLIAN HIEROGLYPH A152 -144B4 ANATOLIAN HIEROGLYPH A153 -144B5 ANATOLIAN HIEROGLYPH A154 -144B6 ANATOLIAN HIEROGLYPH A155 -144B7 ANATOLIAN HIEROGLYPH A156 -144B8 ANATOLIAN HIEROGLYPH A157 -144B9 ANATOLIAN HIEROGLYPH A158 -144BA ANATOLIAN HIEROGLYPH A159 -144BB ANATOLIAN HIEROGLYPH A160 -144BC ANATOLIAN HIEROGLYPH A161 -144BD ANATOLIAN HIEROGLYPH A162 -144BE ANATOLIAN HIEROGLYPH A163 -144BF ANATOLIAN HIEROGLYPH A164 -144C0 ANATOLIAN HIEROGLYPH A165 -144C1 ANATOLIAN HIEROGLYPH A166 -144C2 ANATOLIAN HIEROGLYPH A167 -144C3 ANATOLIAN HIEROGLYPH A168 -144C4 ANATOLIAN HIEROGLYPH A169 -144C5 ANATOLIAN HIEROGLYPH A170 -144C6 ANATOLIAN HIEROGLYPH A171 -144C7 ANATOLIAN HIEROGLYPH A172 -144C8 ANATOLIAN HIEROGLYPH A173 -144C9 ANATOLIAN HIEROGLYPH A174 -144CA ANATOLIAN HIEROGLYPH A175 -144CB ANATOLIAN HIEROGLYPH A176 -144CC ANATOLIAN HIEROGLYPH A177 -144CD ANATOLIAN HIEROGLYPH A178 -144CE ANATOLIAN HIEROGLYPH A179 -144CF ANATOLIAN HIEROGLYPH A180 -144D0 ANATOLIAN HIEROGLYPH A181 -144D1 ANATOLIAN HIEROGLYPH A182 -144D2 ANATOLIAN HIEROGLYPH A183 -144D3 ANATOLIAN HIEROGLYPH A184 -144D4 ANATOLIAN HIEROGLYPH A185 -144D5 ANATOLIAN HIEROGLYPH A186 -144D6 ANATOLIAN HIEROGLYPH A187 -144D7 ANATOLIAN HIEROGLYPH A188 -144D8 ANATOLIAN HIEROGLYPH A189 -144D9 ANATOLIAN HIEROGLYPH A190 -144DA ANATOLIAN HIEROGLYPH A191 -144DB ANATOLIAN HIEROGLYPH A192 -144DC ANATOLIAN HIEROGLYPH A193 -144DD ANATOLIAN HIEROGLYPH A194 -144DE ANATOLIAN HIEROGLYPH A195 -144DF ANATOLIAN HIEROGLYPH A196 -144E0 ANATOLIAN HIEROGLYPH A197 -144E1 ANATOLIAN HIEROGLYPH A198 -144E2 ANATOLIAN HIEROGLYPH A199 -144E3 ANATOLIAN HIEROGLYPH A200 -144E4 ANATOLIAN HIEROGLYPH A201 -144E5 ANATOLIAN HIEROGLYPH A202 -144E6 ANATOLIAN HIEROGLYPH A202A -144E7 ANATOLIAN HIEROGLYPH A202B -144E8 ANATOLIAN HIEROGLYPH A203 -144E9 ANATOLIAN HIEROGLYPH A204 -144EA ANATOLIAN HIEROGLYPH A205 -144EB ANATOLIAN HIEROGLYPH A206 -144EC ANATOLIAN HIEROGLYPH A207 -144ED ANATOLIAN HIEROGLYPH A207A -144EE ANATOLIAN HIEROGLYPH A208 -144EF ANATOLIAN HIEROGLYPH A209 -144F0 ANATOLIAN HIEROGLYPH A209A -144F1 ANATOLIAN HIEROGLYPH A210 -144F2 ANATOLIAN HIEROGLYPH A211 -144F3 ANATOLIAN HIEROGLYPH A212 -144F4 ANATOLIAN HIEROGLYPH A213 -144F5 ANATOLIAN HIEROGLYPH A214 -144F6 ANATOLIAN HIEROGLYPH A215 -144F7 ANATOLIAN HIEROGLYPH A215A -144F8 ANATOLIAN HIEROGLYPH A216 -144F9 ANATOLIAN HIEROGLYPH A216A -144FA ANATOLIAN HIEROGLYPH A217 -144FB ANATOLIAN HIEROGLYPH A218 -144FC ANATOLIAN HIEROGLYPH A219 -144FD ANATOLIAN HIEROGLYPH A220 -144FE ANATOLIAN HIEROGLYPH A221 -144FF ANATOLIAN HIEROGLYPH A222 -14500 ANATOLIAN HIEROGLYPH A223 -14501 ANATOLIAN HIEROGLYPH A224 -14502 ANATOLIAN HIEROGLYPH A225 -14503 ANATOLIAN HIEROGLYPH A226 -14504 ANATOLIAN HIEROGLYPH A227 -14505 ANATOLIAN HIEROGLYPH A227A -14506 ANATOLIAN HIEROGLYPH A228 -14507 ANATOLIAN HIEROGLYPH A229 -14508 ANATOLIAN HIEROGLYPH A230 -14509 ANATOLIAN HIEROGLYPH A231 -1450A ANATOLIAN HIEROGLYPH A232 -1450B ANATOLIAN HIEROGLYPH A233 -1450C ANATOLIAN HIEROGLYPH A234 -1450D ANATOLIAN HIEROGLYPH A235 -1450E ANATOLIAN HIEROGLYPH A236 -1450F ANATOLIAN HIEROGLYPH A237 -14510 ANATOLIAN HIEROGLYPH A238 -14511 ANATOLIAN HIEROGLYPH A239 -14512 ANATOLIAN HIEROGLYPH A240 -14513 ANATOLIAN HIEROGLYPH A241 -14514 ANATOLIAN HIEROGLYPH A242 -14515 ANATOLIAN HIEROGLYPH A243 -14516 ANATOLIAN HIEROGLYPH A244 -14517 ANATOLIAN HIEROGLYPH A245 -14518 ANATOLIAN HIEROGLYPH A246 -14519 ANATOLIAN HIEROGLYPH A247 -1451A ANATOLIAN HIEROGLYPH A248 -1451B ANATOLIAN HIEROGLYPH A249 -1451C ANATOLIAN HIEROGLYPH A250 -1451D ANATOLIAN HIEROGLYPH A251 -1451E ANATOLIAN HIEROGLYPH A252 -1451F ANATOLIAN HIEROGLYPH A253 -14520 ANATOLIAN HIEROGLYPH A254 -14521 ANATOLIAN HIEROGLYPH A255 -14522 ANATOLIAN HIEROGLYPH A256 -14523 ANATOLIAN HIEROGLYPH A257 -14524 ANATOLIAN HIEROGLYPH A258 -14525 ANATOLIAN HIEROGLYPH A259 -14526 ANATOLIAN HIEROGLYPH A260 -14527 ANATOLIAN HIEROGLYPH A261 -14528 ANATOLIAN HIEROGLYPH A262 -14529 ANATOLIAN HIEROGLYPH A263 -1452A ANATOLIAN HIEROGLYPH A264 -1452B ANATOLIAN HIEROGLYPH A265 -1452C ANATOLIAN HIEROGLYPH A266 -1452D ANATOLIAN HIEROGLYPH A267 -1452E ANATOLIAN HIEROGLYPH A267A -1452F ANATOLIAN HIEROGLYPH A268 -14530 ANATOLIAN HIEROGLYPH A269 -14531 ANATOLIAN HIEROGLYPH A270 -14532 ANATOLIAN HIEROGLYPH A271 -14533 ANATOLIAN HIEROGLYPH A272 -14534 ANATOLIAN HIEROGLYPH A273 -14535 ANATOLIAN HIEROGLYPH A274 -14536 ANATOLIAN HIEROGLYPH A275 -14537 ANATOLIAN HIEROGLYPH A276 -14538 ANATOLIAN HIEROGLYPH A277 -14539 ANATOLIAN HIEROGLYPH A278 -1453A ANATOLIAN HIEROGLYPH A279 -1453B ANATOLIAN HIEROGLYPH A280 -1453C ANATOLIAN HIEROGLYPH A281 -1453D ANATOLIAN HIEROGLYPH A282 -1453E ANATOLIAN HIEROGLYPH A283 -1453F ANATOLIAN HIEROGLYPH A284 -14540 ANATOLIAN HIEROGLYPH A285 -14541 ANATOLIAN HIEROGLYPH A286 -14542 ANATOLIAN HIEROGLYPH A287 -14543 ANATOLIAN HIEROGLYPH A288 -14544 ANATOLIAN HIEROGLYPH A289 -14545 ANATOLIAN HIEROGLYPH A289A -14546 ANATOLIAN HIEROGLYPH A290 -14547 ANATOLIAN HIEROGLYPH A291 -14548 ANATOLIAN HIEROGLYPH A292 -14549 ANATOLIAN HIEROGLYPH A293 -1454A ANATOLIAN HIEROGLYPH A294 -1454B ANATOLIAN HIEROGLYPH A294A -1454C ANATOLIAN HIEROGLYPH A295 -1454D ANATOLIAN HIEROGLYPH A296 -1454E ANATOLIAN HIEROGLYPH A297 -1454F ANATOLIAN HIEROGLYPH A298 -14550 ANATOLIAN HIEROGLYPH A299 -14551 ANATOLIAN HIEROGLYPH A299A -14552 ANATOLIAN HIEROGLYPH A300 -14553 ANATOLIAN HIEROGLYPH A301 -14554 ANATOLIAN HIEROGLYPH A302 -14555 ANATOLIAN HIEROGLYPH A303 -14556 ANATOLIAN HIEROGLYPH A304 -14557 ANATOLIAN HIEROGLYPH A305 -14558 ANATOLIAN HIEROGLYPH A306 -14559 ANATOLIAN HIEROGLYPH A307 -1455A ANATOLIAN HIEROGLYPH A308 -1455B ANATOLIAN HIEROGLYPH A309 -1455C ANATOLIAN HIEROGLYPH A309A -1455D ANATOLIAN HIEROGLYPH A310 -1455E ANATOLIAN HIEROGLYPH A311 -1455F ANATOLIAN HIEROGLYPH A312 -14560 ANATOLIAN HIEROGLYPH A313 -14561 ANATOLIAN HIEROGLYPH A314 -14562 ANATOLIAN HIEROGLYPH A315 -14563 ANATOLIAN HIEROGLYPH A316 -14564 ANATOLIAN HIEROGLYPH A317 -14565 ANATOLIAN HIEROGLYPH A318 -14566 ANATOLIAN HIEROGLYPH A319 -14567 ANATOLIAN HIEROGLYPH A320 -14568 ANATOLIAN HIEROGLYPH A321 -14569 ANATOLIAN HIEROGLYPH A322 -1456A ANATOLIAN HIEROGLYPH A323 -1456B ANATOLIAN HIEROGLYPH A324 -1456C ANATOLIAN HIEROGLYPH A325 -1456D ANATOLIAN HIEROGLYPH A326 -1456E ANATOLIAN HIEROGLYPH A327 -1456F ANATOLIAN HIEROGLYPH A328 -14570 ANATOLIAN HIEROGLYPH A329 -14571 ANATOLIAN HIEROGLYPH A329A -14572 ANATOLIAN HIEROGLYPH A330 -14573 ANATOLIAN HIEROGLYPH A331 -14574 ANATOLIAN HIEROGLYPH A332A -14575 ANATOLIAN HIEROGLYPH A332B -14576 ANATOLIAN HIEROGLYPH A332C -14577 ANATOLIAN HIEROGLYPH A333 -14578 ANATOLIAN HIEROGLYPH A334 -14579 ANATOLIAN HIEROGLYPH A335 -1457A ANATOLIAN HIEROGLYPH A336 -1457B ANATOLIAN HIEROGLYPH A336A -1457C ANATOLIAN HIEROGLYPH A336B -1457D ANATOLIAN HIEROGLYPH A336C -1457E ANATOLIAN HIEROGLYPH A337 -1457F ANATOLIAN HIEROGLYPH A338 -14580 ANATOLIAN HIEROGLYPH A339 -14581 ANATOLIAN HIEROGLYPH A340 -14582 ANATOLIAN HIEROGLYPH A341 -14583 ANATOLIAN HIEROGLYPH A342 -14584 ANATOLIAN HIEROGLYPH A343 -14585 ANATOLIAN HIEROGLYPH A344 -14586 ANATOLIAN HIEROGLYPH A345 -14587 ANATOLIAN HIEROGLYPH A346 -14588 ANATOLIAN HIEROGLYPH A347 -14589 ANATOLIAN HIEROGLYPH A348 -1458A ANATOLIAN HIEROGLYPH A349 -1458B ANATOLIAN HIEROGLYPH A350 -1458C ANATOLIAN HIEROGLYPH A351 -1458D ANATOLIAN HIEROGLYPH A352 -1458E ANATOLIAN HIEROGLYPH A353 -1458F ANATOLIAN HIEROGLYPH A354 -14590 ANATOLIAN HIEROGLYPH A355 -14591 ANATOLIAN HIEROGLYPH A356 -14592 ANATOLIAN HIEROGLYPH A357 -14593 ANATOLIAN HIEROGLYPH A358 -14594 ANATOLIAN HIEROGLYPH A359 -14595 ANATOLIAN HIEROGLYPH A359A -14596 ANATOLIAN HIEROGLYPH A360 -14597 ANATOLIAN HIEROGLYPH A361 -14598 ANATOLIAN HIEROGLYPH A362 -14599 ANATOLIAN HIEROGLYPH A363 -1459A ANATOLIAN HIEROGLYPH A364 -1459B ANATOLIAN HIEROGLYPH A364A -1459C ANATOLIAN HIEROGLYPH A365 -1459D ANATOLIAN HIEROGLYPH A366 -1459E ANATOLIAN HIEROGLYPH A367 -1459F ANATOLIAN HIEROGLYPH A368 -145A0 ANATOLIAN HIEROGLYPH A368A -145A1 ANATOLIAN HIEROGLYPH A369 -145A2 ANATOLIAN HIEROGLYPH A370 -145A3 ANATOLIAN HIEROGLYPH A371 -145A4 ANATOLIAN HIEROGLYPH A371A -145A5 ANATOLIAN HIEROGLYPH A372 -145A6 ANATOLIAN HIEROGLYPH A373 -145A7 ANATOLIAN HIEROGLYPH A374 -145A8 ANATOLIAN HIEROGLYPH A375 -145A9 ANATOLIAN HIEROGLYPH A376 -145AA ANATOLIAN HIEROGLYPH A377 -145AB ANATOLIAN HIEROGLYPH A378 -145AC ANATOLIAN HIEROGLYPH A379 -145AD ANATOLIAN HIEROGLYPH A380 -145AE ANATOLIAN HIEROGLYPH A381 -145AF ANATOLIAN HIEROGLYPH A381A -145B0 ANATOLIAN HIEROGLYPH A382 -145B1 ANATOLIAN HIEROGLYPH A383 RA OR RI -145B2 ANATOLIAN HIEROGLYPH A383A -145B3 ANATOLIAN HIEROGLYPH A384 -145B4 ANATOLIAN HIEROGLYPH A385 -145B5 ANATOLIAN HIEROGLYPH A386 -145B6 ANATOLIAN HIEROGLYPH A386A -145B7 ANATOLIAN HIEROGLYPH A387 -145B8 ANATOLIAN HIEROGLYPH A388 -145B9 ANATOLIAN HIEROGLYPH A389 -145BA ANATOLIAN HIEROGLYPH A390 -145BB ANATOLIAN HIEROGLYPH A391 -145BC ANATOLIAN HIEROGLYPH A392 -145BD ANATOLIAN HIEROGLYPH A393 EIGHT -145BE ANATOLIAN HIEROGLYPH A394 -145BF ANATOLIAN HIEROGLYPH A395 -145C0 ANATOLIAN HIEROGLYPH A396 -145C1 ANATOLIAN HIEROGLYPH A397 -145C2 ANATOLIAN HIEROGLYPH A398 -145C3 ANATOLIAN HIEROGLYPH A399 -145C4 ANATOLIAN HIEROGLYPH A400 -145C5 ANATOLIAN HIEROGLYPH A401 -145C6 ANATOLIAN HIEROGLYPH A402 -145C7 ANATOLIAN HIEROGLYPH A403 -145C8 ANATOLIAN HIEROGLYPH A404 -145C9 ANATOLIAN HIEROGLYPH A405 -145CA ANATOLIAN HIEROGLYPH A406 -145CB ANATOLIAN HIEROGLYPH A407 -145CC ANATOLIAN HIEROGLYPH A408 -145CD ANATOLIAN HIEROGLYPH A409 -145CE ANATOLIAN HIEROGLYPH A410 BEGIN LOGOGRAM MARK -145CF ANATOLIAN HIEROGLYPH A410A END LOGOGRAM MARK -145D0 ANATOLIAN HIEROGLYPH A411 -145D1 ANATOLIAN HIEROGLYPH A412 -145D2 ANATOLIAN HIEROGLYPH A413 -145D3 ANATOLIAN HIEROGLYPH A414 -145D4 ANATOLIAN HIEROGLYPH A415 -145D5 ANATOLIAN HIEROGLYPH A416 -145D6 ANATOLIAN HIEROGLYPH A417 -145D7 ANATOLIAN HIEROGLYPH A418 -145D8 ANATOLIAN HIEROGLYPH A419 -145D9 ANATOLIAN HIEROGLYPH A420 -145DA ANATOLIAN HIEROGLYPH A421 -145DB ANATOLIAN HIEROGLYPH A422 -145DC ANATOLIAN HIEROGLYPH A423 -145DD ANATOLIAN HIEROGLYPH A424 -145DE ANATOLIAN HIEROGLYPH A425 -145DF ANATOLIAN HIEROGLYPH A426 -145E0 ANATOLIAN HIEROGLYPH A427 -145E1 ANATOLIAN HIEROGLYPH A428 -145E2 ANATOLIAN HIEROGLYPH A429 -145E3 ANATOLIAN HIEROGLYPH A430 -145E4 ANATOLIAN HIEROGLYPH A431 -145E5 ANATOLIAN HIEROGLYPH A432 -145E6 ANATOLIAN HIEROGLYPH A433 -145E7 ANATOLIAN HIEROGLYPH A434 -145E8 ANATOLIAN HIEROGLYPH A435 -145E9 ANATOLIAN HIEROGLYPH A436 -145EA ANATOLIAN HIEROGLYPH A437 -145EB ANATOLIAN HIEROGLYPH A438 -145EC ANATOLIAN HIEROGLYPH A439 -145ED ANATOLIAN HIEROGLYPH A440 -145EE ANATOLIAN HIEROGLYPH A441 -145EF ANATOLIAN HIEROGLYPH A442 -145F0 ANATOLIAN HIEROGLYPH A443 -145F1 ANATOLIAN HIEROGLYPH A444 -145F2 ANATOLIAN HIEROGLYPH A445 -145F3 ANATOLIAN HIEROGLYPH A446 -145F4 ANATOLIAN HIEROGLYPH A447 -145F5 ANATOLIAN HIEROGLYPH A448 -145F6 ANATOLIAN HIEROGLYPH A449 -145F7 ANATOLIAN HIEROGLYPH A450 -145F8 ANATOLIAN HIEROGLYPH A450A -145F9 ANATOLIAN HIEROGLYPH A451 -145FA ANATOLIAN HIEROGLYPH A452 -145FB ANATOLIAN HIEROGLYPH A453 -145FC ANATOLIAN HIEROGLYPH A454 -145FD ANATOLIAN HIEROGLYPH A455 -145FE ANATOLIAN HIEROGLYPH A456 -145FF ANATOLIAN HIEROGLYPH A457 -14600 ANATOLIAN HIEROGLYPH A457A -14601 ANATOLIAN HIEROGLYPH A458 -14602 ANATOLIAN HIEROGLYPH A459 -14603 ANATOLIAN HIEROGLYPH A460 -14604 ANATOLIAN HIEROGLYPH A461 -14605 ANATOLIAN HIEROGLYPH A462 -14606 ANATOLIAN HIEROGLYPH A463 -14607 ANATOLIAN HIEROGLYPH A464 -14608 ANATOLIAN HIEROGLYPH A465 -14609 ANATOLIAN HIEROGLYPH A466 -1460A ANATOLIAN HIEROGLYPH A467 -1460B ANATOLIAN HIEROGLYPH A468 -1460C ANATOLIAN HIEROGLYPH A469 -1460D ANATOLIAN HIEROGLYPH A470 -1460E ANATOLIAN HIEROGLYPH A471 -1460F ANATOLIAN HIEROGLYPH A472 -14610 ANATOLIAN HIEROGLYPH A473 -14611 ANATOLIAN HIEROGLYPH A474 -14612 ANATOLIAN HIEROGLYPH A475 -14613 ANATOLIAN HIEROGLYPH A476 -14614 ANATOLIAN HIEROGLYPH A477 -14615 ANATOLIAN HIEROGLYPH A478 -14616 ANATOLIAN HIEROGLYPH A479 -14617 ANATOLIAN HIEROGLYPH A480 -14618 ANATOLIAN HIEROGLYPH A481 -14619 ANATOLIAN HIEROGLYPH A482 -1461A ANATOLIAN HIEROGLYPH A483 -1461B ANATOLIAN HIEROGLYPH A484 -1461C ANATOLIAN HIEROGLYPH A485 -1461D ANATOLIAN HIEROGLYPH A486 -1461E ANATOLIAN HIEROGLYPH A487 -1461F ANATOLIAN HIEROGLYPH A488 -14620 ANATOLIAN HIEROGLYPH A489 -14621 ANATOLIAN HIEROGLYPH A490 -14622 ANATOLIAN HIEROGLYPH A491 -14623 ANATOLIAN HIEROGLYPH A492 -14624 ANATOLIAN HIEROGLYPH A493 -14625 ANATOLIAN HIEROGLYPH A494 -14626 ANATOLIAN HIEROGLYPH A495 -14627 ANATOLIAN HIEROGLYPH A496 -14628 ANATOLIAN HIEROGLYPH A497 -14629 ANATOLIAN HIEROGLYPH A501 -1462A ANATOLIAN HIEROGLYPH A502 -1462B ANATOLIAN HIEROGLYPH A503 -1462C ANATOLIAN HIEROGLYPH A504 -1462D ANATOLIAN HIEROGLYPH A505 -1462E ANATOLIAN HIEROGLYPH A506 -1462F ANATOLIAN HIEROGLYPH A507 -14630 ANATOLIAN HIEROGLYPH A508 -14631 ANATOLIAN HIEROGLYPH A509 -14632 ANATOLIAN HIEROGLYPH A510 -14633 ANATOLIAN HIEROGLYPH A511 -14634 ANATOLIAN HIEROGLYPH A512 -14635 ANATOLIAN HIEROGLYPH A513 -14636 ANATOLIAN HIEROGLYPH A514 -14637 ANATOLIAN HIEROGLYPH A515 -14638 ANATOLIAN HIEROGLYPH A516 -14639 ANATOLIAN HIEROGLYPH A517 -1463A ANATOLIAN HIEROGLYPH A518 -1463B ANATOLIAN HIEROGLYPH A519 -1463C ANATOLIAN HIEROGLYPH A520 -1463D ANATOLIAN HIEROGLYPH A521 -1463E ANATOLIAN HIEROGLYPH A522 -1463F ANATOLIAN HIEROGLYPH A523 -14640 ANATOLIAN HIEROGLYPH A524 -14641 ANATOLIAN HIEROGLYPH A525 -14642 ANATOLIAN HIEROGLYPH A526 -14643 ANATOLIAN HIEROGLYPH A527 -14644 ANATOLIAN HIEROGLYPH A528 -14645 ANATOLIAN HIEROGLYPH A529 -14646 ANATOLIAN HIEROGLYPH A530 -16800 BAMUM LETTER PHASE-A NGKUE MFON -16801 BAMUM LETTER PHASE-A GBIEE FON -16802 BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE -16803 BAMUM LETTER PHASE-A PON MFON PIPAEMBA -16804 BAMUM LETTER PHASE-A NAA MFON -16805 BAMUM LETTER PHASE-A SHUENSHUET -16806 BAMUM LETTER PHASE-A TITA MFON -16807 BAMUM LETTER PHASE-A NZA MFON -16808 BAMUM LETTER PHASE-A SHINDA PA NJI -16809 BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE -1680A BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA -1680B BAMUM LETTER PHASE-A MAEMBGBIEE -1680C BAMUM LETTER PHASE-A TU MAEMBA -1680D BAMUM LETTER PHASE-A NGANGU -1680E BAMUM LETTER PHASE-A MAEMVEUX -1680F BAMUM LETTER PHASE-A MANSUAE -16810 BAMUM LETTER PHASE-A MVEUAENGAM -16811 BAMUM LETTER PHASE-A SEUNYAM -16812 BAMUM LETTER PHASE-A NTOQPEN -16813 BAMUM LETTER PHASE-A KEUKEUTNDA -16814 BAMUM LETTER PHASE-A NKINDI -16815 BAMUM LETTER PHASE-A SUU -16816 BAMUM LETTER PHASE-A NGKUENZEUM -16817 BAMUM LETTER PHASE-A LAPAQ -16818 BAMUM LETTER PHASE-A LET KUT -16819 BAMUM LETTER PHASE-A NTAP MFAA -1681A BAMUM LETTER PHASE-A MAEKEUP -1681B BAMUM LETTER PHASE-A PASHAE -1681C BAMUM LETTER PHASE-A GHEUAERAE -1681D BAMUM LETTER PHASE-A PAMSHAE -1681E BAMUM LETTER PHASE-A MON NGGEUAET -1681F BAMUM LETTER PHASE-A NZUN MEUT -16820 BAMUM LETTER PHASE-A U YUQ NAE -16821 BAMUM LETTER PHASE-A GHEUAEGHEUAE -16822 BAMUM LETTER PHASE-A NTAP NTAA -16823 BAMUM LETTER PHASE-A SISA -16824 BAMUM LETTER PHASE-A MGBASA -16825 BAMUM LETTER PHASE-A MEUNJOMNDEUQ -16826 BAMUM LETTER PHASE-A MOOMPUQ -16827 BAMUM LETTER PHASE-A KAFA -16828 BAMUM LETTER PHASE-A PA LEERAEWA -16829 BAMUM LETTER PHASE-A NDA LEERAEWA -1682A BAMUM LETTER PHASE-A PET -1682B BAMUM LETTER PHASE-A MAEMKPEN -1682C BAMUM LETTER PHASE-A NIKA -1682D BAMUM LETTER PHASE-A PUP -1682E BAMUM LETTER PHASE-A TUAEP -1682F BAMUM LETTER PHASE-A LUAEP -16830 BAMUM LETTER PHASE-A SONJAM -16831 BAMUM LETTER PHASE-A TEUTEUWEN -16832 BAMUM LETTER PHASE-A MAENYI -16833 BAMUM LETTER PHASE-A KET -16834 BAMUM LETTER PHASE-A NDAANGGEUAET -16835 BAMUM LETTER PHASE-A KUOQ -16836 BAMUM LETTER PHASE-A MOOMEUT -16837 BAMUM LETTER PHASE-A SHUM -16838 BAMUM LETTER PHASE-A LOMMAE -16839 BAMUM LETTER PHASE-A FIRI -1683A BAMUM LETTER PHASE-A ROM -1683B BAMUM LETTER PHASE-A KPOQ -1683C BAMUM LETTER PHASE-A SOQ -1683D BAMUM LETTER PHASE-A MAP PIEET -1683E BAMUM LETTER PHASE-A SHIRAE -1683F BAMUM LETTER PHASE-A NTAP -16840 BAMUM LETTER PHASE-A SHOQ NSHUT YUM -16841 BAMUM LETTER PHASE-A NYIT MONGKEUAEQ -16842 BAMUM LETTER PHASE-A PAARAE -16843 BAMUM LETTER PHASE-A NKAARAE -16844 BAMUM LETTER PHASE-A UNKNOWN -16845 BAMUM LETTER PHASE-A NGGEN -16846 BAMUM LETTER PHASE-A MAESI -16847 BAMUM LETTER PHASE-A NJAM -16848 BAMUM LETTER PHASE-A MBANYI -16849 BAMUM LETTER PHASE-A NYET -1684A BAMUM LETTER PHASE-A TEUAEN -1684B BAMUM LETTER PHASE-A SOT -1684C BAMUM LETTER PHASE-A PAAM -1684D BAMUM LETTER PHASE-A NSHIEE -1684E BAMUM LETTER PHASE-A MAEM -1684F BAMUM LETTER PHASE-A NYI -16850 BAMUM LETTER PHASE-A KAQ -16851 BAMUM LETTER PHASE-A NSHA -16852 BAMUM LETTER PHASE-A VEE -16853 BAMUM LETTER PHASE-A LU -16854 BAMUM LETTER PHASE-A NEN -16855 BAMUM LETTER PHASE-A NAQ -16856 BAMUM LETTER PHASE-A MBAQ -16857 BAMUM LETTER PHASE-B NSHUET -16858 BAMUM LETTER PHASE-B TU MAEMGBIEE -16859 BAMUM LETTER PHASE-B SIEE -1685A BAMUM LETTER PHASE-B SET TU -1685B BAMUM LETTER PHASE-B LOM NTEUM -1685C BAMUM LETTER PHASE-B MBA MAELEE -1685D BAMUM LETTER PHASE-B KIEEM -1685E BAMUM LETTER PHASE-B YEURAE -1685F BAMUM LETTER PHASE-B MBAARAE -16860 BAMUM LETTER PHASE-B KAM -16861 BAMUM LETTER PHASE-B PEESHI -16862 BAMUM LETTER PHASE-B YAFU LEERAEWA -16863 BAMUM LETTER PHASE-B LAM NSHUT NYAM -16864 BAMUM LETTER PHASE-B NTIEE SHEUOQ -16865 BAMUM LETTER PHASE-B NDU NJAA -16866 BAMUM LETTER PHASE-B GHEUGHEUAEM -16867 BAMUM LETTER PHASE-B PIT -16868 BAMUM LETTER PHASE-B TU NSIEE -16869 BAMUM LETTER PHASE-B SHET NJAQ -1686A BAMUM LETTER PHASE-B SHEUAEQTU -1686B BAMUM LETTER PHASE-B MFON TEUAEQ -1686C BAMUM LETTER PHASE-B MBIT MBAAKET -1686D BAMUM LETTER PHASE-B NYI NTEUM -1686E BAMUM LETTER PHASE-B KEUPUQ -1686F BAMUM LETTER PHASE-B GHEUGHEN -16870 BAMUM LETTER PHASE-B KEUYEUX -16871 BAMUM LETTER PHASE-B LAANAE -16872 BAMUM LETTER PHASE-B PARUM -16873 BAMUM LETTER PHASE-B VEUM -16874 BAMUM LETTER PHASE-B NGKINDI MVOP -16875 BAMUM LETTER PHASE-B NGGEU MBU -16876 BAMUM LETTER PHASE-B WUAET -16877 BAMUM LETTER PHASE-B SAKEUAE -16878 BAMUM LETTER PHASE-B TAAM -16879 BAMUM LETTER PHASE-B MEUQ -1687A BAMUM LETTER PHASE-B NGGUOQ -1687B BAMUM LETTER PHASE-B NGGUOQ LARGE -1687C BAMUM LETTER PHASE-B MFIYAQ -1687D BAMUM LETTER PHASE-B SUE -1687E BAMUM LETTER PHASE-B MBEURI -1687F BAMUM LETTER PHASE-B MONTIEEN -16880 BAMUM LETTER PHASE-B NYAEMAE -16881 BAMUM LETTER PHASE-B PUNGAAM -16882 BAMUM LETTER PHASE-B MEUT NGGEET -16883 BAMUM LETTER PHASE-B FEUX -16884 BAMUM LETTER PHASE-B MBUOQ -16885 BAMUM LETTER PHASE-B FEE -16886 BAMUM LETTER PHASE-B KEUAEM -16887 BAMUM LETTER PHASE-B MA NJEUAENA -16888 BAMUM LETTER PHASE-B MA NJUQA -16889 BAMUM LETTER PHASE-B LET -1688A BAMUM LETTER PHASE-B NGGAAM -1688B BAMUM LETTER PHASE-B NSEN -1688C BAMUM LETTER PHASE-B MA -1688D BAMUM LETTER PHASE-B KIQ -1688E BAMUM LETTER PHASE-B NGOM -1688F BAMUM LETTER PHASE-C NGKUE MAEMBA -16890 BAMUM LETTER PHASE-C NZA -16891 BAMUM LETTER PHASE-C YUM -16892 BAMUM LETTER PHASE-C WANGKUOQ -16893 BAMUM LETTER PHASE-C NGGEN -16894 BAMUM LETTER PHASE-C NDEUAEREE -16895 BAMUM LETTER PHASE-C NGKAQ -16896 BAMUM LETTER PHASE-C GHARAE -16897 BAMUM LETTER PHASE-C MBEEKEET -16898 BAMUM LETTER PHASE-C GBAYI -16899 BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN -1689A BAMUM LETTER PHASE-C NTU MBIT -1689B BAMUM LETTER PHASE-C MBEUM -1689C BAMUM LETTER PHASE-C PIRIEEN -1689D BAMUM LETTER PHASE-C NDOMBU -1689E BAMUM LETTER PHASE-C MBAA CABBAGE-TREE -1689F BAMUM LETTER PHASE-C KEUSHEUAEP -168A0 BAMUM LETTER PHASE-C GHAP -168A1 BAMUM LETTER PHASE-C KEUKAQ -168A2 BAMUM LETTER PHASE-C YU MUOMAE -168A3 BAMUM LETTER PHASE-C NZEUM -168A4 BAMUM LETTER PHASE-C MBUE -168A5 BAMUM LETTER PHASE-C NSEUAEN -168A6 BAMUM LETTER PHASE-C MBIT -168A7 BAMUM LETTER PHASE-C YEUQ -168A8 BAMUM LETTER PHASE-C KPARAQ -168A9 BAMUM LETTER PHASE-C KAA -168AA BAMUM LETTER PHASE-C SEUX -168AB BAMUM LETTER PHASE-C NDIDA -168AC BAMUM LETTER PHASE-C TAASHAE -168AD BAMUM LETTER PHASE-C NJUEQ -168AE BAMUM LETTER PHASE-C TITA YUE -168AF BAMUM LETTER PHASE-C SUAET -168B0 BAMUM LETTER PHASE-C NGGUAEN NYAM -168B1 BAMUM LETTER PHASE-C VEUX -168B2 BAMUM LETTER PHASE-C NANSANAQ -168B3 BAMUM LETTER PHASE-C MA KEUAERI -168B4 BAMUM LETTER PHASE-C NTAA -168B5 BAMUM LETTER PHASE-C NGGUON -168B6 BAMUM LETTER PHASE-C LAP -168B7 BAMUM LETTER PHASE-C MBIRIEEN -168B8 BAMUM LETTER PHASE-C MGBASAQ -168B9 BAMUM LETTER PHASE-C NTEUNGBA -168BA BAMUM LETTER PHASE-C TEUTEUX -168BB BAMUM LETTER PHASE-C NGGUM -168BC BAMUM LETTER PHASE-C FUE -168BD BAMUM LETTER PHASE-C NDEUT -168BE BAMUM LETTER PHASE-C NSA -168BF BAMUM LETTER PHASE-C NSHAQ -168C0 BAMUM LETTER PHASE-C BUNG -168C1 BAMUM LETTER PHASE-C VEUAEPEN -168C2 BAMUM LETTER PHASE-C MBERAE -168C3 BAMUM LETTER PHASE-C RU -168C4 BAMUM LETTER PHASE-C NJAEM -168C5 BAMUM LETTER PHASE-C LAM -168C6 BAMUM LETTER PHASE-C TITUAEP -168C7 BAMUM LETTER PHASE-C NSUOT NGOM -168C8 BAMUM LETTER PHASE-C NJEEEE -168C9 BAMUM LETTER PHASE-C KET -168CA BAMUM LETTER PHASE-C NGGU -168CB BAMUM LETTER PHASE-C MAESI -168CC BAMUM LETTER PHASE-C MBUAEM -168CD BAMUM LETTER PHASE-C LU -168CE BAMUM LETTER PHASE-C KUT -168CF BAMUM LETTER PHASE-C NJAM -168D0 BAMUM LETTER PHASE-C NGOM -168D1 BAMUM LETTER PHASE-C WUP -168D2 BAMUM LETTER PHASE-C NGGUEET -168D3 BAMUM LETTER PHASE-C NSOM -168D4 BAMUM LETTER PHASE-C NTEN -168D5 BAMUM LETTER PHASE-C KUOP NKAARAE -168D6 BAMUM LETTER PHASE-C NSUN -168D7 BAMUM LETTER PHASE-C NDAM -168D8 BAMUM LETTER PHASE-C MA NSIEE -168D9 BAMUM LETTER PHASE-C YAA -168DA BAMUM LETTER PHASE-C NDAP -168DB BAMUM LETTER PHASE-C SHUEQ -168DC BAMUM LETTER PHASE-C SETFON -168DD BAMUM LETTER PHASE-C MBI -168DE BAMUM LETTER PHASE-C MAEMBA -168DF BAMUM LETTER PHASE-C MBANYI -168E0 BAMUM LETTER PHASE-C KEUSEUX -168E1 BAMUM LETTER PHASE-C MBEUX -168E2 BAMUM LETTER PHASE-C KEUM -168E3 BAMUM LETTER PHASE-C MBAA PICKET -168E4 BAMUM LETTER PHASE-C YUWOQ -168E5 BAMUM LETTER PHASE-C NJEUX -168E6 BAMUM LETTER PHASE-C MIEE -168E7 BAMUM LETTER PHASE-C MUAE -168E8 BAMUM LETTER PHASE-C SHIQ -168E9 BAMUM LETTER PHASE-C KEN LAW -168EA BAMUM LETTER PHASE-C KEN FATIGUE -168EB BAMUM LETTER PHASE-C NGAQ -168EC BAMUM LETTER PHASE-C NAQ -168ED BAMUM LETTER PHASE-C LIQ -168EE BAMUM LETTER PHASE-C PIN -168EF BAMUM LETTER PHASE-C PEN -168F0 BAMUM LETTER PHASE-C TET -168F1 BAMUM LETTER PHASE-D MBUO -168F2 BAMUM LETTER PHASE-D WAP -168F3 BAMUM LETTER PHASE-D NJI -168F4 BAMUM LETTER PHASE-D MFON -168F5 BAMUM LETTER PHASE-D NJIEE -168F6 BAMUM LETTER PHASE-D LIEE -168F7 BAMUM LETTER PHASE-D NJEUT -168F8 BAMUM LETTER PHASE-D NSHEE -168F9 BAMUM LETTER PHASE-D NGGAAMAE -168FA BAMUM LETTER PHASE-D NYAM -168FB BAMUM LETTER PHASE-D WUAEN -168FC BAMUM LETTER PHASE-D NGKUN -168FD BAMUM LETTER PHASE-D SHEE -168FE BAMUM LETTER PHASE-D NGKAP -168FF BAMUM LETTER PHASE-D KEUAETMEUN -16900 BAMUM LETTER PHASE-D TEUT -16901 BAMUM LETTER PHASE-D SHEUAE -16902 BAMUM LETTER PHASE-D NJAP -16903 BAMUM LETTER PHASE-D SUE -16904 BAMUM LETTER PHASE-D KET -16905 BAMUM LETTER PHASE-D YAEMMAE -16906 BAMUM LETTER PHASE-D KUOM -16907 BAMUM LETTER PHASE-D SAP -16908 BAMUM LETTER PHASE-D MFEUT -16909 BAMUM LETTER PHASE-D NDEUX -1690A BAMUM LETTER PHASE-D MALEERI -1690B BAMUM LETTER PHASE-D MEUT -1690C BAMUM LETTER PHASE-D SEUAEQ -1690D BAMUM LETTER PHASE-D YEN -1690E BAMUM LETTER PHASE-D NJEUAEM -1690F BAMUM LETTER PHASE-D KEUOT MBUAE -16910 BAMUM LETTER PHASE-D NGKEURI -16911 BAMUM LETTER PHASE-D TU -16912 BAMUM LETTER PHASE-D GHAA -16913 BAMUM LETTER PHASE-D NGKYEE -16914 BAMUM LETTER PHASE-D FEUFEUAET -16915 BAMUM LETTER PHASE-D NDEE -16916 BAMUM LETTER PHASE-D MGBOFUM -16917 BAMUM LETTER PHASE-D LEUAEP -16918 BAMUM LETTER PHASE-D NDON -16919 BAMUM LETTER PHASE-D MONI -1691A BAMUM LETTER PHASE-D MGBEUN -1691B BAMUM LETTER PHASE-D PUUT -1691C BAMUM LETTER PHASE-D MGBIEE -1691D BAMUM LETTER PHASE-D MFO -1691E BAMUM LETTER PHASE-D LUM -1691F BAMUM LETTER PHASE-D NSIEEP -16920 BAMUM LETTER PHASE-D MBAA -16921 BAMUM LETTER PHASE-D KWAET -16922 BAMUM LETTER PHASE-D NYET -16923 BAMUM LETTER PHASE-D TEUAEN -16924 BAMUM LETTER PHASE-D SOT -16925 BAMUM LETTER PHASE-D YUWOQ -16926 BAMUM LETTER PHASE-D KEUM -16927 BAMUM LETTER PHASE-D RAEM -16928 BAMUM LETTER PHASE-D TEEEE -16929 BAMUM LETTER PHASE-D NGKEUAEQ -1692A BAMUM LETTER PHASE-D MFEUAE -1692B BAMUM LETTER PHASE-D NSIEET -1692C BAMUM LETTER PHASE-D KEUP -1692D BAMUM LETTER PHASE-D PIP -1692E BAMUM LETTER PHASE-D PEUTAE -1692F BAMUM LETTER PHASE-D NYUE -16930 BAMUM LETTER PHASE-D LET -16931 BAMUM LETTER PHASE-D NGGAAM -16932 BAMUM LETTER PHASE-D MFIEE -16933 BAMUM LETTER PHASE-D NGGWAEN -16934 BAMUM LETTER PHASE-D YUOM -16935 BAMUM LETTER PHASE-D PAP -16936 BAMUM LETTER PHASE-D YUOP -16937 BAMUM LETTER PHASE-D NDAM -16938 BAMUM LETTER PHASE-D NTEUM -16939 BAMUM LETTER PHASE-D SUAE -1693A BAMUM LETTER PHASE-D KUN -1693B BAMUM LETTER PHASE-D NGGEUX -1693C BAMUM LETTER PHASE-D NGKIEE -1693D BAMUM LETTER PHASE-D TUOT -1693E BAMUM LETTER PHASE-D MEUN -1693F BAMUM LETTER PHASE-D KUQ -16940 BAMUM LETTER PHASE-D NSUM -16941 BAMUM LETTER PHASE-D TEUN -16942 BAMUM LETTER PHASE-D MAENJET -16943 BAMUM LETTER PHASE-D NGGAP -16944 BAMUM LETTER PHASE-D LEUM -16945 BAMUM LETTER PHASE-D NGGUOM -16946 BAMUM LETTER PHASE-D NSHUT -16947 BAMUM LETTER PHASE-D NJUEQ -16948 BAMUM LETTER PHASE-D GHEUAE -16949 BAMUM LETTER PHASE-D KU -1694A BAMUM LETTER PHASE-D REN OLD -1694B BAMUM LETTER PHASE-D TAE -1694C BAMUM LETTER PHASE-D TOQ -1694D BAMUM LETTER PHASE-D NYI -1694E BAMUM LETTER PHASE-D RII -1694F BAMUM LETTER PHASE-D LEEEE -16950 BAMUM LETTER PHASE-D MEEEE -16951 BAMUM LETTER PHASE-D M -16952 BAMUM LETTER PHASE-D SUU -16953 BAMUM LETTER PHASE-D MU -16954 BAMUM LETTER PHASE-D SHII -16955 BAMUM LETTER PHASE-D SHEUX -16956 BAMUM LETTER PHASE-D KYEE -16957 BAMUM LETTER PHASE-D NU -16958 BAMUM LETTER PHASE-D SHU -16959 BAMUM LETTER PHASE-D NTEE -1695A BAMUM LETTER PHASE-D PEE -1695B BAMUM LETTER PHASE-D NI -1695C BAMUM LETTER PHASE-D SHOQ -1695D BAMUM LETTER PHASE-D PUQ -1695E BAMUM LETTER PHASE-D MVOP -1695F BAMUM LETTER PHASE-D LOQ -16960 BAMUM LETTER PHASE-D REN MUCH -16961 BAMUM LETTER PHASE-D TI -16962 BAMUM LETTER PHASE-D NTUU -16963 BAMUM LETTER PHASE-D MBAA SEVEN -16964 BAMUM LETTER PHASE-D SAQ -16965 BAMUM LETTER PHASE-D FAA -16966 BAMUM LETTER PHASE-E NDAP -16967 BAMUM LETTER PHASE-E TOON -16968 BAMUM LETTER PHASE-E MBEUM -16969 BAMUM LETTER PHASE-E LAP -1696A BAMUM LETTER PHASE-E VOM -1696B BAMUM LETTER PHASE-E LOON -1696C BAMUM LETTER PHASE-E PAA -1696D BAMUM LETTER PHASE-E SOM -1696E BAMUM LETTER PHASE-E RAQ -1696F BAMUM LETTER PHASE-E NSHUOP -16970 BAMUM LETTER PHASE-E NDUN -16971 BAMUM LETTER PHASE-E PUAE -16972 BAMUM LETTER PHASE-E TAM -16973 BAMUM LETTER PHASE-E NGKA -16974 BAMUM LETTER PHASE-E KPEUX -16975 BAMUM LETTER PHASE-E WUO -16976 BAMUM LETTER PHASE-E SEE -16977 BAMUM LETTER PHASE-E NGGEUAET -16978 BAMUM LETTER PHASE-E PAAM -16979 BAMUM LETTER PHASE-E TOO -1697A BAMUM LETTER PHASE-E KUOP -1697B BAMUM LETTER PHASE-E LOM -1697C BAMUM LETTER PHASE-E NSHIEE -1697D BAMUM LETTER PHASE-E NGOP -1697E BAMUM LETTER PHASE-E MAEM -1697F BAMUM LETTER PHASE-E NGKEUX -16980 BAMUM LETTER PHASE-E NGOQ -16981 BAMUM LETTER PHASE-E NSHUE -16982 BAMUM LETTER PHASE-E RIMGBA -16983 BAMUM LETTER PHASE-E NJEUX -16984 BAMUM LETTER PHASE-E PEEM -16985 BAMUM LETTER PHASE-E SAA -16986 BAMUM LETTER PHASE-E NGGURAE -16987 BAMUM LETTER PHASE-E MGBA -16988 BAMUM LETTER PHASE-E GHEUX -16989 BAMUM LETTER PHASE-E NGKEUAEM -1698A BAMUM LETTER PHASE-E NJAEMLI -1698B BAMUM LETTER PHASE-E MAP -1698C BAMUM LETTER PHASE-E LOOT -1698D BAMUM LETTER PHASE-E NGGEEEE -1698E BAMUM LETTER PHASE-E NDIQ -1698F BAMUM LETTER PHASE-E TAEN NTEUM -16990 BAMUM LETTER PHASE-E SET -16991 BAMUM LETTER PHASE-E PUM -16992 BAMUM LETTER PHASE-E NDAA SOFTNESS -16993 BAMUM LETTER PHASE-E NGGUAESHAE NYAM -16994 BAMUM LETTER PHASE-E YIEE -16995 BAMUM LETTER PHASE-E GHEUN -16996 BAMUM LETTER PHASE-E TUAE -16997 BAMUM LETTER PHASE-E YEUAE -16998 BAMUM LETTER PHASE-E PO -16999 BAMUM LETTER PHASE-E TUMAE -1699A BAMUM LETTER PHASE-E KEUAE -1699B BAMUM LETTER PHASE-E SUAEN -1699C BAMUM LETTER PHASE-E TEUAEQ -1699D BAMUM LETTER PHASE-E VEUAE -1699E BAMUM LETTER PHASE-E WEUX -1699F BAMUM LETTER PHASE-E LAAM -169A0 BAMUM LETTER PHASE-E PU -169A1 BAMUM LETTER PHASE-E TAAQ -169A2 BAMUM LETTER PHASE-E GHAAMAE -169A3 BAMUM LETTER PHASE-E NGEUREUT -169A4 BAMUM LETTER PHASE-E SHEUAEQ -169A5 BAMUM LETTER PHASE-E MGBEN -169A6 BAMUM LETTER PHASE-E MBEE -169A7 BAMUM LETTER PHASE-E NZAQ -169A8 BAMUM LETTER PHASE-E NKOM -169A9 BAMUM LETTER PHASE-E GBET -169AA BAMUM LETTER PHASE-E TUM -169AB BAMUM LETTER PHASE-E KUET -169AC BAMUM LETTER PHASE-E YAP -169AD BAMUM LETTER PHASE-E NYI CLEAVER -169AE BAMUM LETTER PHASE-E YIT -169AF BAMUM LETTER PHASE-E MFEUQ -169B0 BAMUM LETTER PHASE-E NDIAQ -169B1 BAMUM LETTER PHASE-E PIEEQ -169B2 BAMUM LETTER PHASE-E YUEQ -169B3 BAMUM LETTER PHASE-E LEUAEM -169B4 BAMUM LETTER PHASE-E FUE -169B5 BAMUM LETTER PHASE-E GBEUX -169B6 BAMUM LETTER PHASE-E NGKUP -169B7 BAMUM LETTER PHASE-E KET -169B8 BAMUM LETTER PHASE-E MAE -169B9 BAMUM LETTER PHASE-E NGKAAMI -169BA BAMUM LETTER PHASE-E GHET -169BB BAMUM LETTER PHASE-E FA -169BC BAMUM LETTER PHASE-E NTUM -169BD BAMUM LETTER PHASE-E PEUT -169BE BAMUM LETTER PHASE-E YEUM -169BF BAMUM LETTER PHASE-E NGGEUAE -169C0 BAMUM LETTER PHASE-E NYI BETWEEN -169C1 BAMUM LETTER PHASE-E NZUQ -169C2 BAMUM LETTER PHASE-E POON -169C3 BAMUM LETTER PHASE-E MIEE -169C4 BAMUM LETTER PHASE-E FUET -169C5 BAMUM LETTER PHASE-E NAE -169C6 BAMUM LETTER PHASE-E MUAE -169C7 BAMUM LETTER PHASE-E GHEUAE -169C8 BAMUM LETTER PHASE-E FU I -169C9 BAMUM LETTER PHASE-E MVI -169CA BAMUM LETTER PHASE-E PUAQ -169CB BAMUM LETTER PHASE-E NGKUM -169CC BAMUM LETTER PHASE-E KUT -169CD BAMUM LETTER PHASE-E PIET -169CE BAMUM LETTER PHASE-E NTAP -169CF BAMUM LETTER PHASE-E YEUAET -169D0 BAMUM LETTER PHASE-E NGGUP -169D1 BAMUM LETTER PHASE-E PA PEOPLE -169D2 BAMUM LETTER PHASE-E FU CALL -169D3 BAMUM LETTER PHASE-E FOM -169D4 BAMUM LETTER PHASE-E NJEE -169D5 BAMUM LETTER PHASE-E A -169D6 BAMUM LETTER PHASE-E TOQ -169D7 BAMUM LETTER PHASE-E O -169D8 BAMUM LETTER PHASE-E I -169D9 BAMUM LETTER PHASE-E LAQ -169DA BAMUM LETTER PHASE-E PA PLURAL -169DB BAMUM LETTER PHASE-E TAA -169DC BAMUM LETTER PHASE-E TAQ -169DD BAMUM LETTER PHASE-E NDAA MY HOUSE -169DE BAMUM LETTER PHASE-E SHIQ -169DF BAMUM LETTER PHASE-E YEUX -169E0 BAMUM LETTER PHASE-E NGUAE -169E1 BAMUM LETTER PHASE-E YUAEN -169E2 BAMUM LETTER PHASE-E YOQ SWIMMING -169E3 BAMUM LETTER PHASE-E YOQ COVER -169E4 BAMUM LETTER PHASE-E YUQ -169E5 BAMUM LETTER PHASE-E YUN -169E6 BAMUM LETTER PHASE-E KEUX -169E7 BAMUM LETTER PHASE-E PEUX -169E8 BAMUM LETTER PHASE-E NJEE EPOCH -169E9 BAMUM LETTER PHASE-E PUE -169EA BAMUM LETTER PHASE-E WUE -169EB BAMUM LETTER PHASE-E FEE -169EC BAMUM LETTER PHASE-E VEE -169ED BAMUM LETTER PHASE-E LU -169EE BAMUM LETTER PHASE-E MI -169EF BAMUM LETTER PHASE-E REUX -169F0 BAMUM LETTER PHASE-E RAE -169F1 BAMUM LETTER PHASE-E NGUAET -169F2 BAMUM LETTER PHASE-E NGA -169F3 BAMUM LETTER PHASE-E SHO -169F4 BAMUM LETTER PHASE-E SHOQ -169F5 BAMUM LETTER PHASE-E FU REMEDY -169F6 BAMUM LETTER PHASE-E NA -169F7 BAMUM LETTER PHASE-E PI -169F8 BAMUM LETTER PHASE-E LOQ -169F9 BAMUM LETTER PHASE-E KO -169FA BAMUM LETTER PHASE-E MEN -169FB BAMUM LETTER PHASE-E MA -169FC BAMUM LETTER PHASE-E MAQ -169FD BAMUM LETTER PHASE-E TEU -169FE BAMUM LETTER PHASE-E KI -169FF BAMUM LETTER PHASE-E MON -16A00 BAMUM LETTER PHASE-E TEN -16A01 BAMUM LETTER PHASE-E FAQ -16A02 BAMUM LETTER PHASE-E GHOM -16A03 BAMUM LETTER PHASE-F KA -16A04 BAMUM LETTER PHASE-F U -16A05 BAMUM LETTER PHASE-F KU -16A06 BAMUM LETTER PHASE-F EE -16A07 BAMUM LETTER PHASE-F REE -16A08 BAMUM LETTER PHASE-F TAE -16A09 BAMUM LETTER PHASE-F NYI -16A0A BAMUM LETTER PHASE-F LA -16A0B BAMUM LETTER PHASE-F RII -16A0C BAMUM LETTER PHASE-F RIEE -16A0D BAMUM LETTER PHASE-F MEEEE -16A0E BAMUM LETTER PHASE-F TAA -16A0F BAMUM LETTER PHASE-F NDAA -16A10 BAMUM LETTER PHASE-F NJAEM -16A11 BAMUM LETTER PHASE-F M -16A12 BAMUM LETTER PHASE-F SUU -16A13 BAMUM LETTER PHASE-F SHII -16A14 BAMUM LETTER PHASE-F SI -16A15 BAMUM LETTER PHASE-F SEUX -16A16 BAMUM LETTER PHASE-F KYEE -16A17 BAMUM LETTER PHASE-F KET -16A18 BAMUM LETTER PHASE-F NUAE -16A19 BAMUM LETTER PHASE-F NU -16A1A BAMUM LETTER PHASE-F NJUAE -16A1B BAMUM LETTER PHASE-F YOQ -16A1C BAMUM LETTER PHASE-F SHU -16A1D BAMUM LETTER PHASE-F YA -16A1E BAMUM LETTER PHASE-F NSHA -16A1F BAMUM LETTER PHASE-F PEUX -16A20 BAMUM LETTER PHASE-F NTEE -16A21 BAMUM LETTER PHASE-F WUE -16A22 BAMUM LETTER PHASE-F PEE -16A23 BAMUM LETTER PHASE-F RU -16A24 BAMUM LETTER PHASE-F NI -16A25 BAMUM LETTER PHASE-F REUX -16A26 BAMUM LETTER PHASE-F KEN -16A27 BAMUM LETTER PHASE-F NGKWAEN -16A28 BAMUM LETTER PHASE-F NGGA -16A29 BAMUM LETTER PHASE-F SHO -16A2A BAMUM LETTER PHASE-F PUAE -16A2B BAMUM LETTER PHASE-F FOM -16A2C BAMUM LETTER PHASE-F WA -16A2D BAMUM LETTER PHASE-F LI -16A2E BAMUM LETTER PHASE-F LOQ -16A2F BAMUM LETTER PHASE-F KO -16A30 BAMUM LETTER PHASE-F MBEN -16A31 BAMUM LETTER PHASE-F REN -16A32 BAMUM LETTER PHASE-F MA -16A33 BAMUM LETTER PHASE-F MO -16A34 BAMUM LETTER PHASE-F MBAA -16A35 BAMUM LETTER PHASE-F TET -16A36 BAMUM LETTER PHASE-F KPA -16A37 BAMUM LETTER PHASE-F SAMBA -16A38 BAMUM LETTER PHASE-F VUEQ -16A40 MRO LETTER TA -16A41 MRO LETTER NGI -16A42 MRO LETTER YO -16A43 MRO LETTER MIM -16A44 MRO LETTER BA -16A45 MRO LETTER DA -16A46 MRO LETTER A -16A47 MRO LETTER PHI -16A48 MRO LETTER KHAI -16A49 MRO LETTER HAO -16A4A MRO LETTER DAI -16A4B MRO LETTER CHU -16A4C MRO LETTER KEAAE -16A4D MRO LETTER OL -16A4E MRO LETTER MAEM -16A4F MRO LETTER NIN -16A50 MRO LETTER PA -16A51 MRO LETTER OO -16A52 MRO LETTER O -16A53 MRO LETTER RO -16A54 MRO LETTER SHI -16A55 MRO LETTER THEA -16A56 MRO LETTER EA -16A57 MRO LETTER WA -16A58 MRO LETTER E -16A59 MRO LETTER KO -16A5A MRO LETTER LAN -16A5B MRO LETTER LA -16A5C MRO LETTER HAI -16A5D MRO LETTER RI -16A5E MRO LETTER TEK -16A60 MRO DIGIT ZERO -16A61 MRO DIGIT ONE -16A62 MRO DIGIT TWO -16A63 MRO DIGIT THREE -16A64 MRO DIGIT FOUR -16A65 MRO DIGIT FIVE -16A66 MRO DIGIT SIX -16A67 MRO DIGIT SEVEN -16A68 MRO DIGIT EIGHT -16A69 MRO DIGIT NINE -16A6E MRO DANDA -16A6F MRO DOUBLE DANDA -16AD0 BASSA VAH LETTER ENNI -16AD1 BASSA VAH LETTER KA -16AD2 BASSA VAH LETTER SE -16AD3 BASSA VAH LETTER FA -16AD4 BASSA VAH LETTER MBE -16AD5 BASSA VAH LETTER YIE -16AD6 BASSA VAH LETTER GAH -16AD7 BASSA VAH LETTER DHII -16AD8 BASSA VAH LETTER KPAH -16AD9 BASSA VAH LETTER JO -16ADA BASSA VAH LETTER HWAH -16ADB BASSA VAH LETTER WA -16ADC BASSA VAH LETTER ZO -16ADD BASSA VAH LETTER GBU -16ADE BASSA VAH LETTER DO -16ADF BASSA VAH LETTER CE -16AE0 BASSA VAH LETTER UWU -16AE1 BASSA VAH LETTER TO -16AE2 BASSA VAH LETTER BA -16AE3 BASSA VAH LETTER VU -16AE4 BASSA VAH LETTER YEIN -16AE5 BASSA VAH LETTER PA -16AE6 BASSA VAH LETTER WADDA -16AE7 BASSA VAH LETTER A -16AE8 BASSA VAH LETTER O -16AE9 BASSA VAH LETTER OO -16AEA BASSA VAH LETTER U -16AEB BASSA VAH LETTER EE -16AEC BASSA VAH LETTER E -16AED BASSA VAH LETTER I -16AF0 BASSA VAH COMBINING HIGH TONE -16AF1 BASSA VAH COMBINING LOW TONE -16AF2 BASSA VAH COMBINING MID TONE -16AF3 BASSA VAH COMBINING LOW-MID TONE -16AF4 BASSA VAH COMBINING HIGH-LOW TONE -16AF5 BASSA VAH FULL STOP -16B00 PAHAWH HMONG VOWEL KEEB -16B01 PAHAWH HMONG VOWEL KEEV -16B02 PAHAWH HMONG VOWEL KIB -16B03 PAHAWH HMONG VOWEL KIV -16B04 PAHAWH HMONG VOWEL KAUB -16B05 PAHAWH HMONG VOWEL KAUV -16B06 PAHAWH HMONG VOWEL KUB -16B07 PAHAWH HMONG VOWEL KUV -16B08 PAHAWH HMONG VOWEL KEB -16B09 PAHAWH HMONG VOWEL KEV -16B0A PAHAWH HMONG VOWEL KAIB -16B0B PAHAWH HMONG VOWEL KAIV -16B0C PAHAWH HMONG VOWEL KOOB -16B0D PAHAWH HMONG VOWEL KOOV -16B0E PAHAWH HMONG VOWEL KAWB -16B0F PAHAWH HMONG VOWEL KAWV -16B10 PAHAWH HMONG VOWEL KUAB -16B11 PAHAWH HMONG VOWEL KUAV -16B12 PAHAWH HMONG VOWEL KOB -16B13 PAHAWH HMONG VOWEL KOV -16B14 PAHAWH HMONG VOWEL KIAB -16B15 PAHAWH HMONG VOWEL KIAV -16B16 PAHAWH HMONG VOWEL KAB -16B17 PAHAWH HMONG VOWEL KAV -16B18 PAHAWH HMONG VOWEL KWB -16B19 PAHAWH HMONG VOWEL KWV -16B1A PAHAWH HMONG VOWEL KAAB -16B1B PAHAWH HMONG VOWEL KAAV -16B1C PAHAWH HMONG CONSONANT VAU -16B1D PAHAWH HMONG CONSONANT NTSAU -16B1E PAHAWH HMONG CONSONANT LAU -16B1F PAHAWH HMONG CONSONANT HAU -16B20 PAHAWH HMONG CONSONANT NLAU -16B21 PAHAWH HMONG CONSONANT RAU -16B22 PAHAWH HMONG CONSONANT NKAU -16B23 PAHAWH HMONG CONSONANT QHAU -16B24 PAHAWH HMONG CONSONANT YAU -16B25 PAHAWH HMONG CONSONANT HLAU -16B26 PAHAWH HMONG CONSONANT MAU -16B27 PAHAWH HMONG CONSONANT CHAU -16B28 PAHAWH HMONG CONSONANT NCHAU -16B29 PAHAWH HMONG CONSONANT HNAU -16B2A PAHAWH HMONG CONSONANT PLHAU -16B2B PAHAWH HMONG CONSONANT NTHAU -16B2C PAHAWH HMONG CONSONANT NAU -16B2D PAHAWH HMONG CONSONANT AU -16B2E PAHAWH HMONG CONSONANT XAU -16B2F PAHAWH HMONG CONSONANT CAU -16B30 PAHAWH HMONG MARK CIM TUB -16B31 PAHAWH HMONG MARK CIM SO -16B32 PAHAWH HMONG MARK CIM KES -16B33 PAHAWH HMONG MARK CIM KHAV -16B34 PAHAWH HMONG MARK CIM SUAM -16B35 PAHAWH HMONG MARK CIM HOM -16B36 PAHAWH HMONG MARK CIM TAUM -16B37 PAHAWH HMONG SIGN VOS THOM -16B38 PAHAWH HMONG SIGN VOS TSHAB CEEB -16B39 PAHAWH HMONG SIGN CIM CHEEM -16B3A PAHAWH HMONG SIGN VOS THIAB -16B3B PAHAWH HMONG SIGN VOS FEEM -16B3C PAHAWH HMONG SIGN XYEEM NTXIV -16B3D PAHAWH HMONG SIGN XYEEM RHO -16B3E PAHAWH HMONG SIGN XYEEM TOV -16B3F PAHAWH HMONG SIGN XYEEM FAIB -16B40 PAHAWH HMONG SIGN VOS SEEV -16B41 PAHAWH HMONG SIGN MEEJ SUAB -16B42 PAHAWH HMONG SIGN VOS NRUA -16B43 PAHAWH HMONG SIGN IB YAM -16B44 PAHAWH HMONG SIGN XAUS -16B45 PAHAWH HMONG SIGN CIM TSOV ROG -16B50 PAHAWH HMONG DIGIT ZERO -16B51 PAHAWH HMONG DIGIT ONE -16B52 PAHAWH HMONG DIGIT TWO -16B53 PAHAWH HMONG DIGIT THREE -16B54 PAHAWH HMONG DIGIT FOUR -16B55 PAHAWH HMONG DIGIT FIVE -16B56 PAHAWH HMONG DIGIT SIX -16B57 PAHAWH HMONG DIGIT SEVEN -16B58 PAHAWH HMONG DIGIT EIGHT -16B59 PAHAWH HMONG DIGIT NINE -16B5B PAHAWH HMONG NUMBER TENS -16B5C PAHAWH HMONG NUMBER HUNDREDS -16B5D PAHAWH HMONG NUMBER TEN THOUSANDS -16B5E PAHAWH HMONG NUMBER MILLIONS -16B5F PAHAWH HMONG NUMBER HUNDRED MILLIONS -16B60 PAHAWH HMONG NUMBER TEN BILLIONS -16B61 PAHAWH HMONG NUMBER TRILLIONS -16B63 PAHAWH HMONG SIGN VOS LUB -16B64 PAHAWH HMONG SIGN XYOO -16B65 PAHAWH HMONG SIGN HLI -16B66 PAHAWH HMONG SIGN THIRD-STAGE HLI -16B67 PAHAWH HMONG SIGN ZWJ THAJ -16B68 PAHAWH HMONG SIGN HNUB -16B69 PAHAWH HMONG SIGN NQIG -16B6A PAHAWH HMONG SIGN XIAB -16B6B PAHAWH HMONG SIGN NTUJ -16B6C PAHAWH HMONG SIGN AV -16B6D PAHAWH HMONG SIGN TXHEEJ CEEV -16B6E PAHAWH HMONG SIGN MEEJ TSEEB -16B6F PAHAWH HMONG SIGN TAU -16B70 PAHAWH HMONG SIGN LOS -16B71 PAHAWH HMONG SIGN MUS -16B72 PAHAWH HMONG SIGN CIM HAIS LUS NTOG NTOG -16B73 PAHAWH HMONG SIGN CIM CUAM TSHOOJ -16B74 PAHAWH HMONG SIGN CIM TXWV -16B75 PAHAWH HMONG SIGN CIM TXWV CHWV -16B76 PAHAWH HMONG SIGN CIM PUB DAWB -16B77 PAHAWH HMONG SIGN CIM NRES TOS -16B7D PAHAWH HMONG CLAN SIGN TSHEEJ -16B7E PAHAWH HMONG CLAN SIGN YEEG -16B7F PAHAWH HMONG CLAN SIGN LIS -16B80 PAHAWH HMONG CLAN SIGN LAUJ -16B81 PAHAWH HMONG CLAN SIGN XYOOJ -16B82 PAHAWH HMONG CLAN SIGN KOO -16B83 PAHAWH HMONG CLAN SIGN HAWJ -16B84 PAHAWH HMONG CLAN SIGN MUAS -16B85 PAHAWH HMONG CLAN SIGN THOJ -16B86 PAHAWH HMONG CLAN SIGN TSAB -16B87 PAHAWH HMONG CLAN SIGN PHAB -16B88 PAHAWH HMONG CLAN SIGN KHAB -16B89 PAHAWH HMONG CLAN SIGN HAM -16B8A PAHAWH HMONG CLAN SIGN VAJ -16B8B PAHAWH HMONG CLAN SIGN FAJ -16B8C PAHAWH HMONG CLAN SIGN YAJ -16B8D PAHAWH HMONG CLAN SIGN TSWB -16B8E PAHAWH HMONG CLAN SIGN KWM -16B8F PAHAWH HMONG CLAN SIGN VWJ -16F00 MIAO LETTER PA -16F01 MIAO LETTER BA -16F02 MIAO LETTER YI PA -16F03 MIAO LETTER PLA -16F04 MIAO LETTER MA -16F05 MIAO LETTER MHA -16F06 MIAO LETTER ARCHAIC MA -16F07 MIAO LETTER FA -16F08 MIAO LETTER VA -16F09 MIAO LETTER VFA -16F0A MIAO LETTER TA -16F0B MIAO LETTER DA -16F0C MIAO LETTER YI TTA -16F0D MIAO LETTER YI TA -16F0E MIAO LETTER TTA -16F0F MIAO LETTER DDA -16F10 MIAO LETTER NA -16F11 MIAO LETTER NHA -16F12 MIAO LETTER YI NNA -16F13 MIAO LETTER ARCHAIC NA -16F14 MIAO LETTER NNA -16F15 MIAO LETTER NNHA -16F16 MIAO LETTER LA -16F17 MIAO LETTER LYA -16F18 MIAO LETTER LHA -16F19 MIAO LETTER LHYA -16F1A MIAO LETTER TLHA -16F1B MIAO LETTER DLHA -16F1C MIAO LETTER TLHYA -16F1D MIAO LETTER DLHYA -16F1E MIAO LETTER KA -16F1F MIAO LETTER GA -16F20 MIAO LETTER YI KA -16F21 MIAO LETTER QA -16F22 MIAO LETTER QGA -16F23 MIAO LETTER NGA -16F24 MIAO LETTER NGHA -16F25 MIAO LETTER ARCHAIC NGA -16F26 MIAO LETTER HA -16F27 MIAO LETTER XA -16F28 MIAO LETTER GHA -16F29 MIAO LETTER GHHA -16F2A MIAO LETTER TSSA -16F2B MIAO LETTER DZZA -16F2C MIAO LETTER NYA -16F2D MIAO LETTER NYHA -16F2E MIAO LETTER TSHA -16F2F MIAO LETTER DZHA -16F30 MIAO LETTER YI TSHA -16F31 MIAO LETTER YI DZHA -16F32 MIAO LETTER REFORMED TSHA -16F33 MIAO LETTER SHA -16F34 MIAO LETTER SSA -16F35 MIAO LETTER ZHA -16F36 MIAO LETTER ZSHA -16F37 MIAO LETTER TSA -16F38 MIAO LETTER DZA -16F39 MIAO LETTER YI TSA -16F3A MIAO LETTER SA -16F3B MIAO LETTER ZA -16F3C MIAO LETTER ZSA -16F3D MIAO LETTER ZZA -16F3E MIAO LETTER ZZSA -16F3F MIAO LETTER ARCHAIC ZZA -16F40 MIAO LETTER ZZYA -16F41 MIAO LETTER ZZSYA -16F42 MIAO LETTER WA -16F43 MIAO LETTER AH -16F44 MIAO LETTER HHA -16F50 MIAO LETTER NASALIZATION -16F51 MIAO SIGN ASPIRATION -16F52 MIAO SIGN REFORMED VOICING -16F53 MIAO SIGN REFORMED ASPIRATION -16F54 MIAO VOWEL SIGN A -16F55 MIAO VOWEL SIGN AA -16F56 MIAO VOWEL SIGN AHH -16F57 MIAO VOWEL SIGN AN -16F58 MIAO VOWEL SIGN ANG -16F59 MIAO VOWEL SIGN O -16F5A MIAO VOWEL SIGN OO -16F5B MIAO VOWEL SIGN WO -16F5C MIAO VOWEL SIGN W -16F5D MIAO VOWEL SIGN E -16F5E MIAO VOWEL SIGN EN -16F5F MIAO VOWEL SIGN ENG -16F60 MIAO VOWEL SIGN OEY -16F61 MIAO VOWEL SIGN I -16F62 MIAO VOWEL SIGN IA -16F63 MIAO VOWEL SIGN IAN -16F64 MIAO VOWEL SIGN IANG -16F65 MIAO VOWEL SIGN IO -16F66 MIAO VOWEL SIGN IE -16F67 MIAO VOWEL SIGN II -16F68 MIAO VOWEL SIGN IU -16F69 MIAO VOWEL SIGN ING -16F6A MIAO VOWEL SIGN U -16F6B MIAO VOWEL SIGN UA -16F6C MIAO VOWEL SIGN UAN -16F6D MIAO VOWEL SIGN UANG -16F6E MIAO VOWEL SIGN UU -16F6F MIAO VOWEL SIGN UEI -16F70 MIAO VOWEL SIGN UNG -16F71 MIAO VOWEL SIGN Y -16F72 MIAO VOWEL SIGN YI -16F73 MIAO VOWEL SIGN AE -16F74 MIAO VOWEL SIGN AEE -16F75 MIAO VOWEL SIGN ERR -16F76 MIAO VOWEL SIGN ROUNDED ERR -16F77 MIAO VOWEL SIGN ER -16F78 MIAO VOWEL SIGN ROUNDED ER -16F79 MIAO VOWEL SIGN AI -16F7A MIAO VOWEL SIGN EI -16F7B MIAO VOWEL SIGN AU -16F7C MIAO VOWEL SIGN OU -16F7D MIAO VOWEL SIGN N -16F7E MIAO VOWEL SIGN NG -16F8F MIAO TONE RIGHT -16F90 MIAO TONE TOP RIGHT -16F91 MIAO TONE ABOVE -16F92 MIAO TONE BELOW -16F93 MIAO LETTER TONE-2 -16F94 MIAO LETTER TONE-3 -16F95 MIAO LETTER TONE-4 -16F96 MIAO LETTER TONE-5 -16F97 MIAO LETTER TONE-6 -16F98 MIAO LETTER TONE-7 -16F99 MIAO LETTER TONE-8 -16F9A MIAO LETTER REFORMED TONE-1 -16F9B MIAO LETTER REFORMED TONE-2 -16F9C MIAO LETTER REFORMED TONE-4 -16F9D MIAO LETTER REFORMED TONE-5 -16F9E MIAO LETTER REFORMED TONE-6 -16F9F MIAO LETTER REFORMED TONE-8 -1B000 KATAKANA LETTER ARCHAIC E -1B001 HIRAGANA LETTER ARCHAIC YE -1BC00 DUPLOYAN LETTER H -1BC01 DUPLOYAN LETTER X -1BC02 DUPLOYAN LETTER P -1BC03 DUPLOYAN LETTER T -1BC04 DUPLOYAN LETTER F -1BC05 DUPLOYAN LETTER K -1BC06 DUPLOYAN LETTER L -1BC07 DUPLOYAN LETTER B -1BC08 DUPLOYAN LETTER D -1BC09 DUPLOYAN LETTER V -1BC0A DUPLOYAN LETTER G -1BC0B DUPLOYAN LETTER R -1BC0C DUPLOYAN LETTER P N -1BC0D DUPLOYAN LETTER D S -1BC0E DUPLOYAN LETTER F N -1BC0F DUPLOYAN LETTER K M -1BC10 DUPLOYAN LETTER R S -1BC11 DUPLOYAN LETTER TH -1BC12 DUPLOYAN LETTER SLOAN DH -1BC13 DUPLOYAN LETTER DH -1BC14 DUPLOYAN LETTER KK -1BC15 DUPLOYAN LETTER SLOAN J -1BC16 DUPLOYAN LETTER HL -1BC17 DUPLOYAN LETTER LH -1BC18 DUPLOYAN LETTER RH -1BC19 DUPLOYAN LETTER M -1BC1A DUPLOYAN LETTER N -1BC1B DUPLOYAN LETTER J -1BC1C DUPLOYAN LETTER S -1BC1D DUPLOYAN LETTER M N -1BC1E DUPLOYAN LETTER N M -1BC1F DUPLOYAN LETTER J M -1BC20 DUPLOYAN LETTER S J -1BC21 DUPLOYAN LETTER M WITH DOT -1BC22 DUPLOYAN LETTER N WITH DOT -1BC23 DUPLOYAN LETTER J WITH DOT -1BC24 DUPLOYAN LETTER J WITH DOTS INSIDE AND ABOVE -1BC25 DUPLOYAN LETTER S WITH DOT -1BC26 DUPLOYAN LETTER S WITH DOT BELOW -1BC27 DUPLOYAN LETTER M S -1BC28 DUPLOYAN LETTER N S -1BC29 DUPLOYAN LETTER J S -1BC2A DUPLOYAN LETTER S S -1BC2B DUPLOYAN LETTER M N S -1BC2C DUPLOYAN LETTER N M S -1BC2D DUPLOYAN LETTER J M S -1BC2E DUPLOYAN LETTER S J S -1BC2F DUPLOYAN LETTER J S WITH DOT -1BC30 DUPLOYAN LETTER J N -1BC31 DUPLOYAN LETTER J N S -1BC32 DUPLOYAN LETTER S T -1BC33 DUPLOYAN LETTER S T R -1BC34 DUPLOYAN LETTER S P -1BC35 DUPLOYAN LETTER S P R -1BC36 DUPLOYAN LETTER T S -1BC37 DUPLOYAN LETTER T R S -1BC38 DUPLOYAN LETTER W -1BC39 DUPLOYAN LETTER WH -1BC3A DUPLOYAN LETTER W R -1BC3B DUPLOYAN LETTER S N -1BC3C DUPLOYAN LETTER S M -1BC3D DUPLOYAN LETTER K R S -1BC3E DUPLOYAN LETTER G R S -1BC3F DUPLOYAN LETTER S K -1BC40 DUPLOYAN LETTER S K R -1BC41 DUPLOYAN LETTER A -1BC42 DUPLOYAN LETTER SLOAN OW -1BC43 DUPLOYAN LETTER OA -1BC44 DUPLOYAN LETTER O -1BC45 DUPLOYAN LETTER AOU -1BC46 DUPLOYAN LETTER I -1BC47 DUPLOYAN LETTER E -1BC48 DUPLOYAN LETTER IE -1BC49 DUPLOYAN LETTER SHORT I -1BC4A DUPLOYAN LETTER UI -1BC4B DUPLOYAN LETTER EE -1BC4C DUPLOYAN LETTER SLOAN EH -1BC4D DUPLOYAN LETTER ROMANIAN I -1BC4E DUPLOYAN LETTER SLOAN EE -1BC4F DUPLOYAN LETTER LONG I -1BC50 DUPLOYAN LETTER YE -1BC51 DUPLOYAN LETTER U -1BC52 DUPLOYAN LETTER EU -1BC53 DUPLOYAN LETTER XW -1BC54 DUPLOYAN LETTER U N -1BC55 DUPLOYAN LETTER LONG U -1BC56 DUPLOYAN LETTER ROMANIAN U -1BC57 DUPLOYAN LETTER UH -1BC58 DUPLOYAN LETTER SLOAN U -1BC59 DUPLOYAN LETTER OOH -1BC5A DUPLOYAN LETTER OW -1BC5B DUPLOYAN LETTER OU -1BC5C DUPLOYAN LETTER WA -1BC5D DUPLOYAN LETTER WO -1BC5E DUPLOYAN LETTER WI -1BC5F DUPLOYAN LETTER WEI -1BC60 DUPLOYAN LETTER WOW -1BC61 DUPLOYAN LETTER NASAL U -1BC62 DUPLOYAN LETTER NASAL O -1BC63 DUPLOYAN LETTER NASAL I -1BC64 DUPLOYAN LETTER NASAL A -1BC65 DUPLOYAN LETTER PERNIN AN -1BC66 DUPLOYAN LETTER PERNIN AM -1BC67 DUPLOYAN LETTER SLOAN EN -1BC68 DUPLOYAN LETTER SLOAN AN -1BC69 DUPLOYAN LETTER SLOAN ON -1BC6A DUPLOYAN LETTER VOCALIC M -1BC70 DUPLOYAN AFFIX LEFT HORIZONTAL SECANT -1BC71 DUPLOYAN AFFIX MID HORIZONTAL SECANT -1BC72 DUPLOYAN AFFIX RIGHT HORIZONTAL SECANT -1BC73 DUPLOYAN AFFIX LOW VERTICAL SECANT -1BC74 DUPLOYAN AFFIX MID VERTICAL SECANT -1BC75 DUPLOYAN AFFIX HIGH VERTICAL SECANT -1BC76 DUPLOYAN AFFIX ATTACHED SECANT -1BC77 DUPLOYAN AFFIX ATTACHED LEFT-TO-RIGHT SECANT -1BC78 DUPLOYAN AFFIX ATTACHED TANGENT -1BC79 DUPLOYAN AFFIX ATTACHED TAIL -1BC7A DUPLOYAN AFFIX ATTACHED E HOOK -1BC7B DUPLOYAN AFFIX ATTACHED I HOOK -1BC7C DUPLOYAN AFFIX ATTACHED TANGENT HOOK -1BC80 DUPLOYAN AFFIX HIGH ACUTE -1BC81 DUPLOYAN AFFIX HIGH TIGHT ACUTE -1BC82 DUPLOYAN AFFIX HIGH GRAVE -1BC83 DUPLOYAN AFFIX HIGH LONG GRAVE -1BC84 DUPLOYAN AFFIX HIGH DOT -1BC85 DUPLOYAN AFFIX HIGH CIRCLE -1BC86 DUPLOYAN AFFIX HIGH LINE -1BC87 DUPLOYAN AFFIX HIGH WAVE -1BC88 DUPLOYAN AFFIX HIGH VERTICAL -1BC90 DUPLOYAN AFFIX LOW ACUTE -1BC91 DUPLOYAN AFFIX LOW TIGHT ACUTE -1BC92 DUPLOYAN AFFIX LOW GRAVE -1BC93 DUPLOYAN AFFIX LOW LONG GRAVE -1BC94 DUPLOYAN AFFIX LOW DOT -1BC95 DUPLOYAN AFFIX LOW CIRCLE -1BC96 DUPLOYAN AFFIX LOW LINE -1BC97 DUPLOYAN AFFIX LOW WAVE -1BC98 DUPLOYAN AFFIX LOW VERTICAL -1BC99 DUPLOYAN AFFIX LOW ARROW -1BC9C DUPLOYAN SIGN O WITH CROSS -1BC9D DUPLOYAN THICK LETTER SELECTOR -1BC9E DUPLOYAN DOUBLE MARK -1BC9F DUPLOYAN PUNCTUATION CHINOOK FULL STOP -1BCA0 SHORTHAND FORMAT LETTER OVERLAP -1BCA1 SHORTHAND FORMAT CONTINUING OVERLAP -1BCA2 SHORTHAND FORMAT DOWN STEP -1BCA3 SHORTHAND FORMAT UP STEP -1D000 BYZANTINE MUSICAL SYMBOL PSILI -1D001 BYZANTINE MUSICAL SYMBOL DASEIA -1D002 BYZANTINE MUSICAL SYMBOL PERISPOMENI -1D003 BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON -1D004 BYZANTINE MUSICAL SYMBOL OXEIA DIPLI -1D005 BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON -1D006 BYZANTINE MUSICAL SYMBOL VAREIA DIPLI -1D007 BYZANTINE MUSICAL SYMBOL KATHISTI -1D008 BYZANTINE MUSICAL SYMBOL SYRMATIKI -1D009 BYZANTINE MUSICAL SYMBOL PARAKLITIKI -1D00A BYZANTINE MUSICAL SYMBOL YPOKRISIS -1D00B BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI -1D00C BYZANTINE MUSICAL SYMBOL KREMASTI -1D00D BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON -1D00E BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON -1D00F BYZANTINE MUSICAL SYMBOL TELEIA -1D010 BYZANTINE MUSICAL SYMBOL KENTIMATA -1D011 BYZANTINE MUSICAL SYMBOL APOSTROFOS -1D012 BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI -1D013 BYZANTINE MUSICAL SYMBOL SYNEVMA -1D014 BYZANTINE MUSICAL SYMBOL THITA -1D015 BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION -1D016 BYZANTINE MUSICAL SYMBOL GORGON ARCHAION -1D017 BYZANTINE MUSICAL SYMBOL PSILON -1D018 BYZANTINE MUSICAL SYMBOL CHAMILON -1D019 BYZANTINE MUSICAL SYMBOL VATHY -1D01A BYZANTINE MUSICAL SYMBOL ISON ARCHAION -1D01B BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION -1D01C BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION -1D01D BYZANTINE MUSICAL SYMBOL SAXIMATA -1D01E BYZANTINE MUSICAL SYMBOL PARICHON -1D01F BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA -1D020 BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION -1D021 BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION -1D022 BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION -1D023 BYZANTINE MUSICAL SYMBOL APOTHEMA -1D024 BYZANTINE MUSICAL SYMBOL KLASMA -1D025 BYZANTINE MUSICAL SYMBOL REVMA -1D026 BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION -1D027 BYZANTINE MUSICAL SYMBOL TINAGMA -1D028 BYZANTINE MUSICAL SYMBOL ANATRICHISMA -1D029 BYZANTINE MUSICAL SYMBOL SEISMA -1D02A BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION -1D02B BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU -1D02C BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION -1D02D BYZANTINE MUSICAL SYMBOL THEMA -1D02E BYZANTINE MUSICAL SYMBOL LEMOI -1D02F BYZANTINE MUSICAL SYMBOL DYO -1D030 BYZANTINE MUSICAL SYMBOL TRIA -1D031 BYZANTINE MUSICAL SYMBOL TESSERA -1D032 BYZANTINE MUSICAL SYMBOL KRATIMATA -1D033 BYZANTINE MUSICAL SYMBOL APESO EXO NEO -1D034 BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION -1D035 BYZANTINE MUSICAL SYMBOL IMIFTHORA -1D036 BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION -1D037 BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON -1D038 BYZANTINE MUSICAL SYMBOL PELASTON -1D039 BYZANTINE MUSICAL SYMBOL PSIFISTON -1D03A BYZANTINE MUSICAL SYMBOL KONTEVMA -1D03B BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION -1D03C BYZANTINE MUSICAL SYMBOL RAPISMA -1D03D BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION -1D03E BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION -1D03F BYZANTINE MUSICAL SYMBOL ICHADIN -1D040 BYZANTINE MUSICAL SYMBOL NANA -1D041 BYZANTINE MUSICAL SYMBOL PETASMA -1D042 BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO -1D043 BYZANTINE MUSICAL SYMBOL TROMIKON ALLO -1D044 BYZANTINE MUSICAL SYMBOL STRAGGISMATA -1D045 BYZANTINE MUSICAL SYMBOL GRONTHISMATA -1D046 BYZANTINE MUSICAL SYMBOL ISON NEO -1D047 BYZANTINE MUSICAL SYMBOL OLIGON NEO -1D048 BYZANTINE MUSICAL SYMBOL OXEIA NEO -1D049 BYZANTINE MUSICAL SYMBOL PETASTI -1D04A BYZANTINE MUSICAL SYMBOL KOUFISMA -1D04B BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA -1D04C BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA -1D04D BYZANTINE MUSICAL SYMBOL PELASTON NEO -1D04E BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO -1D04F BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO -1D050 BYZANTINE MUSICAL SYMBOL YPSILI -1D051 BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO -1D052 BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO -1D053 BYZANTINE MUSICAL SYMBOL YPORROI -1D054 BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON -1D055 BYZANTINE MUSICAL SYMBOL ELAFRON -1D056 BYZANTINE MUSICAL SYMBOL CHAMILI -1D057 BYZANTINE MUSICAL SYMBOL MIKRON ISON -1D058 BYZANTINE MUSICAL SYMBOL VAREIA NEO -1D059 BYZANTINE MUSICAL SYMBOL PIASMA NEO -1D05A BYZANTINE MUSICAL SYMBOL PSIFISTON NEO -1D05B BYZANTINE MUSICAL SYMBOL OMALON -1D05C BYZANTINE MUSICAL SYMBOL ANTIKENOMA -1D05D BYZANTINE MUSICAL SYMBOL LYGISMA -1D05E BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO -1D05F BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO -1D060 BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA -1D061 BYZANTINE MUSICAL SYMBOL KYLISMA -1D062 BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA -1D063 BYZANTINE MUSICAL SYMBOL TROMIKON NEO -1D064 BYZANTINE MUSICAL SYMBOL EKSTREPTON -1D065 BYZANTINE MUSICAL SYMBOL SYNAGMA NEO -1D066 BYZANTINE MUSICAL SYMBOL SYRMA -1D067 BYZANTINE MUSICAL SYMBOL CHOREVMA NEO -1D068 BYZANTINE MUSICAL SYMBOL EPEGERMA -1D069 BYZANTINE MUSICAL SYMBOL SEISMA NEO -1D06A BYZANTINE MUSICAL SYMBOL XIRON KLASMA -1D06B BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON -1D06C BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA -1D06D BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA -1D06E BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA -1D06F BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA -1D070 BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA -1D071 BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA -1D072 BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON -1D073 BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON -1D074 BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON -1D075 BYZANTINE MUSICAL SYMBOL OYRANISMA NEO -1D076 BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO -1D077 BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO -1D078 BYZANTINE MUSICAL SYMBOL THEMA APLOUN -1D079 BYZANTINE MUSICAL SYMBOL THES KAI APOTHES -1D07A BYZANTINE MUSICAL SYMBOL KATAVASMA -1D07B BYZANTINE MUSICAL SYMBOL ENDOFONON -1D07C BYZANTINE MUSICAL SYMBOL YFEN KATO -1D07D BYZANTINE MUSICAL SYMBOL YFEN ANO -1D07E BYZANTINE MUSICAL SYMBOL STAVROS -1D07F BYZANTINE MUSICAL SYMBOL KLASMA ANO -1D080 BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION -1D081 BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION -1D082 BYZANTINE MUSICAL SYMBOL KRATIMA ALLO -1D083 BYZANTINE MUSICAL SYMBOL KRATIMA NEO -1D084 BYZANTINE MUSICAL SYMBOL APODERMA NEO -1D085 BYZANTINE MUSICAL SYMBOL APLI -1D086 BYZANTINE MUSICAL SYMBOL DIPLI -1D087 BYZANTINE MUSICAL SYMBOL TRIPLI -1D088 BYZANTINE MUSICAL SYMBOL TETRAPLI -1D089 BYZANTINE MUSICAL SYMBOL KORONIS -1D08A BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU -1D08B BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON -1D08C BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON -1D08D BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON -1D08E BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU -1D08F BYZANTINE MUSICAL SYMBOL GORGON NEO ANO -1D090 BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA -1D091 BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA -1D092 BYZANTINE MUSICAL SYMBOL DIGORGON -1D093 BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO -1D094 BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO -1D095 BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA -1D096 BYZANTINE MUSICAL SYMBOL TRIGORGON -1D097 BYZANTINE MUSICAL SYMBOL ARGON -1D098 BYZANTINE MUSICAL SYMBOL IMIDIARGON -1D099 BYZANTINE MUSICAL SYMBOL DIARGON -1D09A BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI -1D09B BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI -1D09C BYZANTINE MUSICAL SYMBOL AGOGI ARGI -1D09D BYZANTINE MUSICAL SYMBOL AGOGI METRIA -1D09E BYZANTINE MUSICAL SYMBOL AGOGI MESI -1D09F BYZANTINE MUSICAL SYMBOL AGOGI GORGI -1D0A0 BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI -1D0A1 BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI -1D0A2 BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS -1D0A3 BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS -1D0A4 BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS -1D0A5 BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS -1D0A6 BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS -1D0A7 BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS -1D0A8 BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS -1D0A9 BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS -1D0AA BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS -1D0AB BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS -1D0AC BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS -1D0AD BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS -1D0AE BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS -1D0AF BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS -1D0B0 BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS -1D0B1 BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS -1D0B2 BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS -1D0B3 BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS -1D0B4 BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN -1D0B5 BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN -1D0B6 BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU -1D0B7 BYZANTINE MUSICAL SYMBOL IMIFONON -1D0B8 BYZANTINE MUSICAL SYMBOL IMIFTHORON -1D0B9 BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU -1D0BA BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA -1D0BB BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA -1D0BC BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS -1D0BD BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI -1D0BE BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI -1D0BF BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE -1D0C0 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO -1D0C1 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO -1D0C2 BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO -1D0C3 BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS -1D0C4 BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS -1D0C5 BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA VASIS -1D0C5 BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS -1D0C6 BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI -1D0C7 BYZANTINE MUSICAL SYMBOL FTHORA NENANO -1D0C8 BYZANTINE MUSICAL SYMBOL CHROA ZYGOS -1D0C9 BYZANTINE MUSICAL SYMBOL CHROA KLITON -1D0CA BYZANTINE MUSICAL SYMBOL CHROA SPATHI -1D0CB BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION -1D0CC BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA -1D0CD BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION -1D0CE BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION -1D0CF BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION -1D0D0 BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA -1D0D1 BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA -1D0D2 BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA -1D0D3 BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA -1D0D4 BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA -1D0D5 BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA -1D0D6 BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA -1D0D7 BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA -1D0D8 BYZANTINE MUSICAL SYMBOL GENIKI DIESIS -1D0D9 BYZANTINE MUSICAL SYMBOL GENIKI YFESIS -1D0DA BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI -1D0DB BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI -1D0DC BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI -1D0DD BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS -1D0DE BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS -1D0DF BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU -1D0E0 BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU -1D0E1 BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU -1D0E2 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS -1D0E3 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU -1D0E4 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU -1D0E5 BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU -1D0E6 BYZANTINE MUSICAL SYMBOL DIGRAMMA GG -1D0E7 BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU -1D0E8 BYZANTINE MUSICAL SYMBOL STIGMA -1D0E9 BYZANTINE MUSICAL SYMBOL ARKTIKO PA -1D0EA BYZANTINE MUSICAL SYMBOL ARKTIKO VOU -1D0EB BYZANTINE MUSICAL SYMBOL ARKTIKO GA -1D0EC BYZANTINE MUSICAL SYMBOL ARKTIKO DI -1D0ED BYZANTINE MUSICAL SYMBOL ARKTIKO KE -1D0EE BYZANTINE MUSICAL SYMBOL ARKTIKO ZO -1D0EF BYZANTINE MUSICAL SYMBOL ARKTIKO NI -1D0F0 BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO -1D0F1 BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO -1D0F2 BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO -1D0F3 BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO -1D0F4 BYZANTINE MUSICAL SYMBOL KLASMA KATO -1D0F5 BYZANTINE MUSICAL SYMBOL GORGON NEO KATO -1D100 MUSICAL SYMBOL SINGLE BARLINE -1D101 MUSICAL SYMBOL DOUBLE BARLINE -1D102 MUSICAL SYMBOL FINAL BARLINE -1D103 MUSICAL SYMBOL REVERSE FINAL BARLINE -1D104 MUSICAL SYMBOL DASHED BARLINE -1D105 MUSICAL SYMBOL SHORT BARLINE -1D106 MUSICAL SYMBOL LEFT REPEAT SIGN -1D107 MUSICAL SYMBOL RIGHT REPEAT SIGN -1D108 MUSICAL SYMBOL REPEAT DOTS -1D109 MUSICAL SYMBOL DAL SEGNO -1D10A MUSICAL SYMBOL DA CAPO -1D10B MUSICAL SYMBOL SEGNO -1D10C MUSICAL SYMBOL CODA -1D10D MUSICAL SYMBOL REPEATED FIGURE-1 -1D10E MUSICAL SYMBOL REPEATED FIGURE-2 -1D10F MUSICAL SYMBOL REPEATED FIGURE-3 -1D110 MUSICAL SYMBOL FERMATA -1D111 MUSICAL SYMBOL FERMATA BELOW -1D112 MUSICAL SYMBOL BREATH MARK -1D113 MUSICAL SYMBOL CAESURA -1D114 MUSICAL SYMBOL BRACE -1D115 MUSICAL SYMBOL BRACKET -1D116 MUSICAL SYMBOL ONE-LINE STAFF -1D117 MUSICAL SYMBOL TWO-LINE STAFF -1D118 MUSICAL SYMBOL THREE-LINE STAFF -1D119 MUSICAL SYMBOL FOUR-LINE STAFF -1D11A MUSICAL SYMBOL FIVE-LINE STAFF -1D11B MUSICAL SYMBOL SIX-LINE STAFF -1D11C MUSICAL SYMBOL SIX-STRING FRETBOARD -1D11D MUSICAL SYMBOL FOUR-STRING FRETBOARD -1D11E MUSICAL SYMBOL G CLEF -1D11F MUSICAL SYMBOL G CLEF OTTAVA ALTA -1D120 MUSICAL SYMBOL G CLEF OTTAVA BASSA -1D121 MUSICAL SYMBOL C CLEF -1D122 MUSICAL SYMBOL F CLEF -1D123 MUSICAL SYMBOL F CLEF OTTAVA ALTA -1D124 MUSICAL SYMBOL F CLEF OTTAVA BASSA -1D125 MUSICAL SYMBOL DRUM CLEF-1 -1D126 MUSICAL SYMBOL DRUM CLEF-2 -1D129 MUSICAL SYMBOL MULTIPLE MEASURE REST -1D12A MUSICAL SYMBOL DOUBLE SHARP -1D12B MUSICAL SYMBOL DOUBLE FLAT -1D12C MUSICAL SYMBOL FLAT UP -1D12D MUSICAL SYMBOL FLAT DOWN -1D12E MUSICAL SYMBOL NATURAL UP -1D12F MUSICAL SYMBOL NATURAL DOWN -1D130 MUSICAL SYMBOL SHARP UP -1D131 MUSICAL SYMBOL SHARP DOWN -1D132 MUSICAL SYMBOL QUARTER TONE SHARP -1D133 MUSICAL SYMBOL QUARTER TONE FLAT -1D134 MUSICAL SYMBOL COMMON TIME -1D135 MUSICAL SYMBOL CUT TIME -1D136 MUSICAL SYMBOL OTTAVA ALTA -1D137 MUSICAL SYMBOL OTTAVA BASSA -1D138 MUSICAL SYMBOL QUINDICESIMA ALTA -1D139 MUSICAL SYMBOL QUINDICESIMA BASSA -1D13A MUSICAL SYMBOL MULTI REST -1D13B MUSICAL SYMBOL WHOLE REST -1D13C MUSICAL SYMBOL HALF REST -1D13D MUSICAL SYMBOL QUARTER REST -1D13E MUSICAL SYMBOL EIGHTH REST -1D13F MUSICAL SYMBOL SIXTEENTH REST -1D140 MUSICAL SYMBOL THIRTY-SECOND REST -1D141 MUSICAL SYMBOL SIXTY-FOURTH REST -1D142 MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST -1D143 MUSICAL SYMBOL X NOTEHEAD -1D144 MUSICAL SYMBOL PLUS NOTEHEAD -1D145 MUSICAL SYMBOL CIRCLE X NOTEHEAD -1D146 MUSICAL SYMBOL SQUARE NOTEHEAD WHITE -1D147 MUSICAL SYMBOL SQUARE NOTEHEAD BLACK -1D148 MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE -1D149 MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK -1D14A MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE -1D14B MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK -1D14C MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE -1D14D MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK -1D14E MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE -1D14F MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK -1D150 MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE -1D151 MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK -1D152 MUSICAL SYMBOL MOON NOTEHEAD WHITE -1D153 MUSICAL SYMBOL MOON NOTEHEAD BLACK -1D154 MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE -1D155 MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK -1D156 MUSICAL SYMBOL PARENTHESIS NOTEHEAD -1D157 MUSICAL SYMBOL VOID NOTEHEAD -1D158 MUSICAL SYMBOL NOTEHEAD BLACK -1D159 MUSICAL SYMBOL NULL NOTEHEAD -1D15A MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE -1D15B MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK -1D15C MUSICAL SYMBOL BREVE -1D15D MUSICAL SYMBOL WHOLE NOTE -1D15E MUSICAL SYMBOL HALF NOTE -1D15F MUSICAL SYMBOL QUARTER NOTE -1D160 MUSICAL SYMBOL EIGHTH NOTE -1D161 MUSICAL SYMBOL SIXTEENTH NOTE -1D162 MUSICAL SYMBOL THIRTY-SECOND NOTE -1D163 MUSICAL SYMBOL SIXTY-FOURTH NOTE -1D164 MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE -1D165 MUSICAL SYMBOL COMBINING STEM -1D166 MUSICAL SYMBOL COMBINING SPRECHGESANG STEM -1D167 MUSICAL SYMBOL COMBINING TREMOLO-1 -1D168 MUSICAL SYMBOL COMBINING TREMOLO-2 -1D169 MUSICAL SYMBOL COMBINING TREMOLO-3 -1D16A MUSICAL SYMBOL FINGERED TREMOLO-1 -1D16B MUSICAL SYMBOL FINGERED TREMOLO-2 -1D16C MUSICAL SYMBOL FINGERED TREMOLO-3 -1D16D MUSICAL SYMBOL COMBINING AUGMENTATION DOT -1D16E MUSICAL SYMBOL COMBINING FLAG-1 -1D16F MUSICAL SYMBOL COMBINING FLAG-2 -1D170 MUSICAL SYMBOL COMBINING FLAG-3 -1D171 MUSICAL SYMBOL COMBINING FLAG-4 -1D172 MUSICAL SYMBOL COMBINING FLAG-5 -1D173 MUSICAL SYMBOL BEGIN BEAM -1D174 MUSICAL SYMBOL END BEAM -1D175 MUSICAL SYMBOL BEGIN TIE -1D176 MUSICAL SYMBOL END TIE -1D177 MUSICAL SYMBOL BEGIN SLUR -1D178 MUSICAL SYMBOL END SLUR -1D179 MUSICAL SYMBOL BEGIN PHRASE -1D17A MUSICAL SYMBOL END PHRASE -1D17B MUSICAL SYMBOL COMBINING ACCENT -1D17C MUSICAL SYMBOL COMBINING STACCATO -1D17D MUSICAL SYMBOL COMBINING TENUTO -1D17E MUSICAL SYMBOL COMBINING STACCATISSIMO -1D17F MUSICAL SYMBOL COMBINING MARCATO -1D180 MUSICAL SYMBOL COMBINING MARCATO-STACCATO -1D181 MUSICAL SYMBOL COMBINING ACCENT-STACCATO -1D182 MUSICAL SYMBOL COMBINING LOURE -1D183 MUSICAL SYMBOL ARPEGGIATO UP -1D184 MUSICAL SYMBOL ARPEGGIATO DOWN -1D185 MUSICAL SYMBOL COMBINING DOIT -1D186 MUSICAL SYMBOL COMBINING RIP -1D187 MUSICAL SYMBOL COMBINING FLIP -1D188 MUSICAL SYMBOL COMBINING SMEAR -1D189 MUSICAL SYMBOL COMBINING BEND -1D18A MUSICAL SYMBOL COMBINING DOUBLE TONGUE -1D18B MUSICAL SYMBOL COMBINING TRIPLE TONGUE -1D18C MUSICAL SYMBOL RINFORZANDO -1D18D MUSICAL SYMBOL SUBITO -1D18E MUSICAL SYMBOL Z -1D18F MUSICAL SYMBOL PIANO -1D190 MUSICAL SYMBOL MEZZO -1D191 MUSICAL SYMBOL FORTE -1D192 MUSICAL SYMBOL CRESCENDO -1D193 MUSICAL SYMBOL DECRESCENDO -1D194 MUSICAL SYMBOL GRACE NOTE SLASH -1D195 MUSICAL SYMBOL GRACE NOTE NO SLASH -1D196 MUSICAL SYMBOL TR -1D197 MUSICAL SYMBOL TURN -1D198 MUSICAL SYMBOL INVERTED TURN -1D199 MUSICAL SYMBOL TURN SLASH -1D19A MUSICAL SYMBOL TURN UP -1D19B MUSICAL SYMBOL ORNAMENT STROKE-1 -1D19C MUSICAL SYMBOL ORNAMENT STROKE-2 -1D19D MUSICAL SYMBOL ORNAMENT STROKE-3 -1D19E MUSICAL SYMBOL ORNAMENT STROKE-4 -1D19F MUSICAL SYMBOL ORNAMENT STROKE-5 -1D1A0 MUSICAL SYMBOL ORNAMENT STROKE-6 -1D1A1 MUSICAL SYMBOL ORNAMENT STROKE-7 -1D1A2 MUSICAL SYMBOL ORNAMENT STROKE-8 -1D1A3 MUSICAL SYMBOL ORNAMENT STROKE-9 -1D1A4 MUSICAL SYMBOL ORNAMENT STROKE-10 -1D1A5 MUSICAL SYMBOL ORNAMENT STROKE-11 -1D1A6 MUSICAL SYMBOL HAUPTSTIMME -1D1A7 MUSICAL SYMBOL NEBENSTIMME -1D1A8 MUSICAL SYMBOL END OF STIMME -1D1A9 MUSICAL SYMBOL DEGREE SLASH -1D1AA MUSICAL SYMBOL COMBINING DOWN BOW -1D1AB MUSICAL SYMBOL COMBINING UP BOW -1D1AC MUSICAL SYMBOL COMBINING HARMONIC -1D1AD MUSICAL SYMBOL COMBINING SNAP PIZZICATO -1D1AE MUSICAL SYMBOL PEDAL MARK -1D1AF MUSICAL SYMBOL PEDAL UP MARK -1D1B0 MUSICAL SYMBOL HALF PEDAL MARK -1D1B1 MUSICAL SYMBOL GLISSANDO UP -1D1B2 MUSICAL SYMBOL GLISSANDO DOWN -1D1B3 MUSICAL SYMBOL WITH FINGERNAILS -1D1B4 MUSICAL SYMBOL DAMP -1D1B5 MUSICAL SYMBOL DAMP ALL -1D1B6 MUSICAL SYMBOL MAXIMA -1D1B7 MUSICAL SYMBOL LONGA -1D1B8 MUSICAL SYMBOL BREVIS -1D1B9 MUSICAL SYMBOL SEMIBREVIS WHITE -1D1BA MUSICAL SYMBOL SEMIBREVIS BLACK -1D1BB MUSICAL SYMBOL MINIMA -1D1BC MUSICAL SYMBOL MINIMA BLACK -1D1BD MUSICAL SYMBOL SEMIMINIMA WHITE -1D1BE MUSICAL SYMBOL SEMIMINIMA BLACK -1D1BF MUSICAL SYMBOL FUSA WHITE -1D1C0 MUSICAL SYMBOL FUSA BLACK -1D1C1 MUSICAL SYMBOL LONGA PERFECTA REST -1D1C2 MUSICAL SYMBOL LONGA IMPERFECTA REST -1D1C3 MUSICAL SYMBOL BREVIS REST -1D1C4 MUSICAL SYMBOL SEMIBREVIS REST -1D1C5 MUSICAL SYMBOL MINIMA REST -1D1C6 MUSICAL SYMBOL SEMIMINIMA REST -1D1C7 MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA -1D1C8 MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA -1D1C9 MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1 -1D1CA MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA -1D1CB MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA -1D1CC MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1 -1D1CD MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2 -1D1CE MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3 -1D1CF MUSICAL SYMBOL CROIX -1D1D0 MUSICAL SYMBOL GREGORIAN C CLEF -1D1D1 MUSICAL SYMBOL GREGORIAN F CLEF -1D1D2 MUSICAL SYMBOL SQUARE B -1D1D3 MUSICAL SYMBOL VIRGA -1D1D4 MUSICAL SYMBOL PODATUS -1D1D5 MUSICAL SYMBOL CLIVIS -1D1D6 MUSICAL SYMBOL SCANDICUS -1D1D7 MUSICAL SYMBOL CLIMACUS -1D1D8 MUSICAL SYMBOL TORCULUS -1D1D9 MUSICAL SYMBOL PORRECTUS -1D1DA MUSICAL SYMBOL PORRECTUS FLEXUS -1D1DB MUSICAL SYMBOL SCANDICUS FLEXUS -1D1DC MUSICAL SYMBOL TORCULUS RESUPINUS -1D1DD MUSICAL SYMBOL PES SUBPUNCTIS -1D1DE MUSICAL SYMBOL KIEVAN C CLEF -1D1DF MUSICAL SYMBOL KIEVAN END OF PIECE -1D1E0 MUSICAL SYMBOL KIEVAN FINAL NOTE -1D1E1 MUSICAL SYMBOL KIEVAN RECITATIVE MARK -1D1E2 MUSICAL SYMBOL KIEVAN WHOLE NOTE -1D1E3 MUSICAL SYMBOL KIEVAN HALF NOTE -1D1E4 MUSICAL SYMBOL KIEVAN QUARTER NOTE STEM DOWN -1D1E5 MUSICAL SYMBOL KIEVAN QUARTER NOTE STEM UP -1D1E6 MUSICAL SYMBOL KIEVAN EIGHTH NOTE STEM DOWN -1D1E7 MUSICAL SYMBOL KIEVAN EIGHTH NOTE STEM UP -1D1E8 MUSICAL SYMBOL KIEVAN FLAT SIGN -1D200 GREEK VOCAL NOTATION SYMBOL-1 -1D201 GREEK VOCAL NOTATION SYMBOL-2 -1D202 GREEK VOCAL NOTATION SYMBOL-3 -1D203 GREEK VOCAL NOTATION SYMBOL-4 -1D204 GREEK VOCAL NOTATION SYMBOL-5 -1D205 GREEK VOCAL NOTATION SYMBOL-6 -1D206 GREEK VOCAL NOTATION SYMBOL-7 -1D207 GREEK VOCAL NOTATION SYMBOL-8 -1D208 GREEK VOCAL NOTATION SYMBOL-9 -1D209 GREEK VOCAL NOTATION SYMBOL-10 -1D20A GREEK VOCAL NOTATION SYMBOL-11 -1D20B GREEK VOCAL NOTATION SYMBOL-12 -1D20C GREEK VOCAL NOTATION SYMBOL-13 -1D20D GREEK VOCAL NOTATION SYMBOL-14 -1D20E GREEK VOCAL NOTATION SYMBOL-15 -1D20F GREEK VOCAL NOTATION SYMBOL-16 -1D210 GREEK VOCAL NOTATION SYMBOL-17 -1D211 GREEK VOCAL NOTATION SYMBOL-18 -1D212 GREEK VOCAL NOTATION SYMBOL-19 -1D213 GREEK VOCAL NOTATION SYMBOL-20 -1D214 GREEK VOCAL NOTATION SYMBOL-21 -1D215 GREEK VOCAL NOTATION SYMBOL-22 -1D216 GREEK VOCAL NOTATION SYMBOL-23 -1D217 GREEK VOCAL NOTATION SYMBOL-24 -1D218 GREEK VOCAL NOTATION SYMBOL-50 -1D219 GREEK VOCAL NOTATION SYMBOL-51 -1D21A GREEK VOCAL NOTATION SYMBOL-52 -1D21B GREEK VOCAL NOTATION SYMBOL-53 -1D21C GREEK VOCAL NOTATION SYMBOL-54 -1D21D GREEK INSTRUMENTAL NOTATION SYMBOL-1 -1D21E GREEK INSTRUMENTAL NOTATION SYMBOL-2 -1D21F GREEK INSTRUMENTAL NOTATION SYMBOL-4 -1D220 GREEK INSTRUMENTAL NOTATION SYMBOL-5 -1D221 GREEK INSTRUMENTAL NOTATION SYMBOL-7 -1D222 GREEK INSTRUMENTAL NOTATION SYMBOL-8 -1D223 GREEK INSTRUMENTAL NOTATION SYMBOL-11 -1D224 GREEK INSTRUMENTAL NOTATION SYMBOL-12 -1D225 GREEK INSTRUMENTAL NOTATION SYMBOL-13 -1D226 GREEK INSTRUMENTAL NOTATION SYMBOL-14 -1D227 GREEK INSTRUMENTAL NOTATION SYMBOL-17 -1D228 GREEK INSTRUMENTAL NOTATION SYMBOL-18 -1D229 GREEK INSTRUMENTAL NOTATION SYMBOL-19 -1D22A GREEK INSTRUMENTAL NOTATION SYMBOL-23 -1D22B GREEK INSTRUMENTAL NOTATION SYMBOL-24 -1D22C GREEK INSTRUMENTAL NOTATION SYMBOL-25 -1D22D GREEK INSTRUMENTAL NOTATION SYMBOL-26 -1D22E GREEK INSTRUMENTAL NOTATION SYMBOL-27 -1D22F GREEK INSTRUMENTAL NOTATION SYMBOL-29 -1D230 GREEK INSTRUMENTAL NOTATION SYMBOL-30 -1D231 GREEK INSTRUMENTAL NOTATION SYMBOL-32 -1D232 GREEK INSTRUMENTAL NOTATION SYMBOL-36 -1D233 GREEK INSTRUMENTAL NOTATION SYMBOL-37 -1D234 GREEK INSTRUMENTAL NOTATION SYMBOL-38 -1D235 GREEK INSTRUMENTAL NOTATION SYMBOL-39 -1D236 GREEK INSTRUMENTAL NOTATION SYMBOL-40 -1D237 GREEK INSTRUMENTAL NOTATION SYMBOL-42 -1D238 GREEK INSTRUMENTAL NOTATION SYMBOL-43 -1D239 GREEK INSTRUMENTAL NOTATION SYMBOL-45 -1D23A GREEK INSTRUMENTAL NOTATION SYMBOL-47 -1D23B GREEK INSTRUMENTAL NOTATION SYMBOL-48 -1D23C GREEK INSTRUMENTAL NOTATION SYMBOL-49 -1D23D GREEK INSTRUMENTAL NOTATION SYMBOL-50 -1D23E GREEK INSTRUMENTAL NOTATION SYMBOL-51 -1D23F GREEK INSTRUMENTAL NOTATION SYMBOL-52 -1D240 GREEK INSTRUMENTAL NOTATION SYMBOL-53 -1D241 GREEK INSTRUMENTAL NOTATION SYMBOL-54 -1D242 COMBINING GREEK MUSICAL TRISEME -1D243 COMBINING GREEK MUSICAL TETRASEME -1D244 COMBINING GREEK MUSICAL PENTASEME -1D245 GREEK MUSICAL LEIMMA -1D300 MONOGRAM FOR EARTH -1D301 DIGRAM FOR HEAVENLY EARTH -1D302 DIGRAM FOR HUMAN EARTH -1D303 DIGRAM FOR EARTHLY HEAVEN -1D304 DIGRAM FOR EARTHLY HUMAN -1D305 DIGRAM FOR EARTH -1D306 TETRAGRAM FOR CENTRE -1D307 TETRAGRAM FOR FULL CIRCLE -1D308 TETRAGRAM FOR MIRED -1D309 TETRAGRAM FOR BARRIER -1D30A TETRAGRAM FOR KEEPING SMALL -1D30B TETRAGRAM FOR CONTRARIETY -1D30C TETRAGRAM FOR ASCENT -1D30D TETRAGRAM FOR OPPOSITION -1D30E TETRAGRAM FOR BRANCHING OUT -1D30F TETRAGRAM FOR DEFECTIVENESS OR DISTORTION -1D310 TETRAGRAM FOR DIVERGENCE -1D311 TETRAGRAM FOR YOUTHFULNESS -1D312 TETRAGRAM FOR INCREASE -1D313 TETRAGRAM FOR PENETRATION -1D314 TETRAGRAM FOR REACH -1D315 TETRAGRAM FOR CONTACT -1D316 TETRAGRAM FOR HOLDING BACK -1D317 TETRAGRAM FOR WAITING -1D318 TETRAGRAM FOR FOLLOWING -1D319 TETRAGRAM FOR ADVANCE -1D31A TETRAGRAM FOR RELEASE -1D31B TETRAGRAM FOR RESISTANCE -1D31C TETRAGRAM FOR EASE -1D31D TETRAGRAM FOR JOY -1D31E TETRAGRAM FOR CONTENTION -1D31F TETRAGRAM FOR ENDEAVOUR -1D320 TETRAGRAM FOR DUTIES -1D321 TETRAGRAM FOR CHANGE -1D322 TETRAGRAM FOR DECISIVENESS -1D323 TETRAGRAM FOR BOLD RESOLUTION -1D324 TETRAGRAM FOR PACKING -1D325 TETRAGRAM FOR LEGION -1D326 TETRAGRAM FOR CLOSENESS -1D327 TETRAGRAM FOR KINSHIP -1D328 TETRAGRAM FOR GATHERING -1D329 TETRAGRAM FOR STRENGTH -1D32A TETRAGRAM FOR PURITY -1D32B TETRAGRAM FOR FULLNESS -1D32C TETRAGRAM FOR RESIDENCE -1D32D TETRAGRAM FOR LAW OR MODEL -1D32E TETRAGRAM FOR RESPONSE -1D32F TETRAGRAM FOR GOING TO MEET -1D330 TETRAGRAM FOR ENCOUNTERS -1D331 TETRAGRAM FOR STOVE -1D332 TETRAGRAM FOR GREATNESS -1D333 TETRAGRAM FOR ENLARGEMENT -1D334 TETRAGRAM FOR PATTERN -1D335 TETRAGRAM FOR RITUAL -1D336 TETRAGRAM FOR FLIGHT -1D337 TETRAGRAM FOR VASTNESS OR WASTING -1D338 TETRAGRAM FOR CONSTANCY -1D339 TETRAGRAM FOR MEASURE -1D33A TETRAGRAM FOR ETERNITY -1D33B TETRAGRAM FOR UNITY -1D33C TETRAGRAM FOR DIMINISHMENT -1D33D TETRAGRAM FOR CLOSED MOUTH -1D33E TETRAGRAM FOR GUARDEDNESS -1D33F TETRAGRAM FOR GATHERING IN -1D340 TETRAGRAM FOR MASSING -1D341 TETRAGRAM FOR ACCUMULATION -1D342 TETRAGRAM FOR EMBELLISHMENT -1D343 TETRAGRAM FOR DOUBT -1D344 TETRAGRAM FOR WATCH -1D345 TETRAGRAM FOR SINKING -1D346 TETRAGRAM FOR INNER -1D347 TETRAGRAM FOR DEPARTURE -1D348 TETRAGRAM FOR DARKENING -1D349 TETRAGRAM FOR DIMMING -1D34A TETRAGRAM FOR EXHAUSTION -1D34B TETRAGRAM FOR SEVERANCE -1D34C TETRAGRAM FOR STOPPAGE -1D34D TETRAGRAM FOR HARDNESS -1D34E TETRAGRAM FOR COMPLETION -1D34F TETRAGRAM FOR CLOSURE -1D350 TETRAGRAM FOR FAILURE -1D351 TETRAGRAM FOR AGGRAVATION -1D352 TETRAGRAM FOR COMPLIANCE -1D353 TETRAGRAM FOR ON THE VERGE -1D354 TETRAGRAM FOR DIFFICULTIES -1D355 TETRAGRAM FOR LABOURING -1D356 TETRAGRAM FOR FOSTERING -1D360 COUNTING ROD UNIT DIGIT ONE -1D361 COUNTING ROD UNIT DIGIT TWO -1D362 COUNTING ROD UNIT DIGIT THREE -1D363 COUNTING ROD UNIT DIGIT FOUR -1D364 COUNTING ROD UNIT DIGIT FIVE -1D365 COUNTING ROD UNIT DIGIT SIX -1D366 COUNTING ROD UNIT DIGIT SEVEN -1D367 COUNTING ROD UNIT DIGIT EIGHT -1D368 COUNTING ROD UNIT DIGIT NINE -1D369 COUNTING ROD TENS DIGIT ONE -1D36A COUNTING ROD TENS DIGIT TWO -1D36B COUNTING ROD TENS DIGIT THREE -1D36C COUNTING ROD TENS DIGIT FOUR -1D36D COUNTING ROD TENS DIGIT FIVE -1D36E COUNTING ROD TENS DIGIT SIX -1D36F COUNTING ROD TENS DIGIT SEVEN -1D370 COUNTING ROD TENS DIGIT EIGHT -1D371 COUNTING ROD TENS DIGIT NINE -1D400 MATHEMATICAL BOLD CAPITAL A -1D401 MATHEMATICAL BOLD CAPITAL B -1D402 MATHEMATICAL BOLD CAPITAL C -1D403 MATHEMATICAL BOLD CAPITAL D -1D404 MATHEMATICAL BOLD CAPITAL E -1D405 MATHEMATICAL BOLD CAPITAL F -1D406 MATHEMATICAL BOLD CAPITAL G -1D407 MATHEMATICAL BOLD CAPITAL H -1D408 MATHEMATICAL BOLD CAPITAL I -1D409 MATHEMATICAL BOLD CAPITAL J -1D40A MATHEMATICAL BOLD CAPITAL K -1D40B MATHEMATICAL BOLD CAPITAL L -1D40C MATHEMATICAL BOLD CAPITAL M -1D40D MATHEMATICAL BOLD CAPITAL N -1D40E MATHEMATICAL BOLD CAPITAL O -1D40F MATHEMATICAL BOLD CAPITAL P -1D410 MATHEMATICAL BOLD CAPITAL Q -1D411 MATHEMATICAL BOLD CAPITAL R -1D412 MATHEMATICAL BOLD CAPITAL S -1D413 MATHEMATICAL BOLD CAPITAL T -1D414 MATHEMATICAL BOLD CAPITAL U -1D415 MATHEMATICAL BOLD CAPITAL V -1D416 MATHEMATICAL BOLD CAPITAL W -1D417 MATHEMATICAL BOLD CAPITAL X -1D418 MATHEMATICAL BOLD CAPITAL Y -1D419 MATHEMATICAL BOLD CAPITAL Z -1D41A MATHEMATICAL BOLD SMALL A -1D41B MATHEMATICAL BOLD SMALL B -1D41C MATHEMATICAL BOLD SMALL C -1D41D MATHEMATICAL BOLD SMALL D -1D41E MATHEMATICAL BOLD SMALL E -1D41F MATHEMATICAL BOLD SMALL F -1D420 MATHEMATICAL BOLD SMALL G -1D421 MATHEMATICAL BOLD SMALL H -1D422 MATHEMATICAL BOLD SMALL I -1D423 MATHEMATICAL BOLD SMALL J -1D424 MATHEMATICAL BOLD SMALL K -1D425 MATHEMATICAL BOLD SMALL L -1D426 MATHEMATICAL BOLD SMALL M -1D427 MATHEMATICAL BOLD SMALL N -1D428 MATHEMATICAL BOLD SMALL O -1D429 MATHEMATICAL BOLD SMALL P -1D42A MATHEMATICAL BOLD SMALL Q -1D42B MATHEMATICAL BOLD SMALL R -1D42C MATHEMATICAL BOLD SMALL S -1D42D MATHEMATICAL BOLD SMALL T -1D42E MATHEMATICAL BOLD SMALL U -1D42F MATHEMATICAL BOLD SMALL V -1D430 MATHEMATICAL BOLD SMALL W -1D431 MATHEMATICAL BOLD SMALL X -1D432 MATHEMATICAL BOLD SMALL Y -1D433 MATHEMATICAL BOLD SMALL Z -1D434 MATHEMATICAL ITALIC CAPITAL A -1D435 MATHEMATICAL ITALIC CAPITAL B -1D436 MATHEMATICAL ITALIC CAPITAL C -1D437 MATHEMATICAL ITALIC CAPITAL D -1D438 MATHEMATICAL ITALIC CAPITAL E -1D439 MATHEMATICAL ITALIC CAPITAL F -1D43A MATHEMATICAL ITALIC CAPITAL G -1D43B MATHEMATICAL ITALIC CAPITAL H -1D43C MATHEMATICAL ITALIC CAPITAL I -1D43D MATHEMATICAL ITALIC CAPITAL J -1D43E MATHEMATICAL ITALIC CAPITAL K -1D43F MATHEMATICAL ITALIC CAPITAL L -1D440 MATHEMATICAL ITALIC CAPITAL M -1D441 MATHEMATICAL ITALIC CAPITAL N -1D442 MATHEMATICAL ITALIC CAPITAL O -1D443 MATHEMATICAL ITALIC CAPITAL P -1D444 MATHEMATICAL ITALIC CAPITAL Q -1D445 MATHEMATICAL ITALIC CAPITAL R -1D446 MATHEMATICAL ITALIC CAPITAL S -1D447 MATHEMATICAL ITALIC CAPITAL T -1D448 MATHEMATICAL ITALIC CAPITAL U -1D449 MATHEMATICAL ITALIC CAPITAL V -1D44A MATHEMATICAL ITALIC CAPITAL W -1D44B MATHEMATICAL ITALIC CAPITAL X -1D44C MATHEMATICAL ITALIC CAPITAL Y -1D44D MATHEMATICAL ITALIC CAPITAL Z -1D44E MATHEMATICAL ITALIC SMALL A -1D44F MATHEMATICAL ITALIC SMALL B -1D450 MATHEMATICAL ITALIC SMALL C -1D451 MATHEMATICAL ITALIC SMALL D -1D452 MATHEMATICAL ITALIC SMALL E -1D453 MATHEMATICAL ITALIC SMALL F -1D454 MATHEMATICAL ITALIC SMALL G -1D456 MATHEMATICAL ITALIC SMALL I -1D457 MATHEMATICAL ITALIC SMALL J -1D458 MATHEMATICAL ITALIC SMALL K -1D459 MATHEMATICAL ITALIC SMALL L -1D45A MATHEMATICAL ITALIC SMALL M -1D45B MATHEMATICAL ITALIC SMALL N -1D45C MATHEMATICAL ITALIC SMALL O -1D45D MATHEMATICAL ITALIC SMALL P -1D45E MATHEMATICAL ITALIC SMALL Q -1D45F MATHEMATICAL ITALIC SMALL R -1D460 MATHEMATICAL ITALIC SMALL S -1D461 MATHEMATICAL ITALIC SMALL T -1D462 MATHEMATICAL ITALIC SMALL U -1D463 MATHEMATICAL ITALIC SMALL V -1D464 MATHEMATICAL ITALIC SMALL W -1D465 MATHEMATICAL ITALIC SMALL X -1D466 MATHEMATICAL ITALIC SMALL Y -1D467 MATHEMATICAL ITALIC SMALL Z -1D468 MATHEMATICAL BOLD ITALIC CAPITAL A -1D469 MATHEMATICAL BOLD ITALIC CAPITAL B -1D46A MATHEMATICAL BOLD ITALIC CAPITAL C -1D46B MATHEMATICAL BOLD ITALIC CAPITAL D -1D46C MATHEMATICAL BOLD ITALIC CAPITAL E -1D46D MATHEMATICAL BOLD ITALIC CAPITAL F -1D46E MATHEMATICAL BOLD ITALIC CAPITAL G -1D46F MATHEMATICAL BOLD ITALIC CAPITAL H -1D470 MATHEMATICAL BOLD ITALIC CAPITAL I -1D471 MATHEMATICAL BOLD ITALIC CAPITAL J -1D472 MATHEMATICAL BOLD ITALIC CAPITAL K -1D473 MATHEMATICAL BOLD ITALIC CAPITAL L -1D474 MATHEMATICAL BOLD ITALIC CAPITAL M -1D475 MATHEMATICAL BOLD ITALIC CAPITAL N -1D476 MATHEMATICAL BOLD ITALIC CAPITAL O -1D477 MATHEMATICAL BOLD ITALIC CAPITAL P -1D478 MATHEMATICAL BOLD ITALIC CAPITAL Q -1D479 MATHEMATICAL BOLD ITALIC CAPITAL R -1D47A MATHEMATICAL BOLD ITALIC CAPITAL S -1D47B MATHEMATICAL BOLD ITALIC CAPITAL T -1D47C MATHEMATICAL BOLD ITALIC CAPITAL U -1D47D MATHEMATICAL BOLD ITALIC CAPITAL V -1D47E MATHEMATICAL BOLD ITALIC CAPITAL W -1D47F MATHEMATICAL BOLD ITALIC CAPITAL X -1D480 MATHEMATICAL BOLD ITALIC CAPITAL Y -1D481 MATHEMATICAL BOLD ITALIC CAPITAL Z -1D482 MATHEMATICAL BOLD ITALIC SMALL A -1D483 MATHEMATICAL BOLD ITALIC SMALL B -1D484 MATHEMATICAL BOLD ITALIC SMALL C -1D485 MATHEMATICAL BOLD ITALIC SMALL D -1D486 MATHEMATICAL BOLD ITALIC SMALL E -1D487 MATHEMATICAL BOLD ITALIC SMALL F -1D488 MATHEMATICAL BOLD ITALIC SMALL G -1D489 MATHEMATICAL BOLD ITALIC SMALL H -1D48A MATHEMATICAL BOLD ITALIC SMALL I -1D48B MATHEMATICAL BOLD ITALIC SMALL J -1D48C MATHEMATICAL BOLD ITALIC SMALL K -1D48D MATHEMATICAL BOLD ITALIC SMALL L -1D48E MATHEMATICAL BOLD ITALIC SMALL M -1D48F MATHEMATICAL BOLD ITALIC SMALL N -1D490 MATHEMATICAL BOLD ITALIC SMALL O -1D491 MATHEMATICAL BOLD ITALIC SMALL P -1D492 MATHEMATICAL BOLD ITALIC SMALL Q -1D493 MATHEMATICAL BOLD ITALIC SMALL R -1D494 MATHEMATICAL BOLD ITALIC SMALL S -1D495 MATHEMATICAL BOLD ITALIC SMALL T -1D496 MATHEMATICAL BOLD ITALIC SMALL U -1D497 MATHEMATICAL BOLD ITALIC SMALL V -1D498 MATHEMATICAL BOLD ITALIC SMALL W -1D499 MATHEMATICAL BOLD ITALIC SMALL X -1D49A MATHEMATICAL BOLD ITALIC SMALL Y -1D49B MATHEMATICAL BOLD ITALIC SMALL Z -1D49C MATHEMATICAL SCRIPT CAPITAL A -1D49E MATHEMATICAL SCRIPT CAPITAL C -1D49F MATHEMATICAL SCRIPT CAPITAL D -1D4A2 MATHEMATICAL SCRIPT CAPITAL G -1D4A5 MATHEMATICAL SCRIPT CAPITAL J -1D4A6 MATHEMATICAL SCRIPT CAPITAL K -1D4A9 MATHEMATICAL SCRIPT CAPITAL N -1D4AA MATHEMATICAL SCRIPT CAPITAL O -1D4AB MATHEMATICAL SCRIPT CAPITAL P -1D4AC MATHEMATICAL SCRIPT CAPITAL Q -1D4AE MATHEMATICAL SCRIPT CAPITAL S -1D4AF MATHEMATICAL SCRIPT CAPITAL T -1D4B0 MATHEMATICAL SCRIPT CAPITAL U -1D4B1 MATHEMATICAL SCRIPT CAPITAL V -1D4B2 MATHEMATICAL SCRIPT CAPITAL W -1D4B3 MATHEMATICAL SCRIPT CAPITAL X -1D4B4 MATHEMATICAL SCRIPT CAPITAL Y -1D4B5 MATHEMATICAL SCRIPT CAPITAL Z -1D4B6 MATHEMATICAL SCRIPT SMALL A -1D4B7 MATHEMATICAL SCRIPT SMALL B -1D4B8 MATHEMATICAL SCRIPT SMALL C -1D4B9 MATHEMATICAL SCRIPT SMALL D -1D4BB MATHEMATICAL SCRIPT SMALL F -1D4BD MATHEMATICAL SCRIPT SMALL H -1D4BE MATHEMATICAL SCRIPT SMALL I -1D4BF MATHEMATICAL SCRIPT SMALL J -1D4C0 MATHEMATICAL SCRIPT SMALL K -1D4C1 MATHEMATICAL SCRIPT SMALL L -1D4C2 MATHEMATICAL SCRIPT SMALL M -1D4C3 MATHEMATICAL SCRIPT SMALL N -1D4C5 MATHEMATICAL SCRIPT SMALL P -1D4C6 MATHEMATICAL SCRIPT SMALL Q -1D4C7 MATHEMATICAL SCRIPT SMALL R -1D4C8 MATHEMATICAL SCRIPT SMALL S -1D4C9 MATHEMATICAL SCRIPT SMALL T -1D4CA MATHEMATICAL SCRIPT SMALL U -1D4CB MATHEMATICAL SCRIPT SMALL V -1D4CC MATHEMATICAL SCRIPT SMALL W -1D4CD MATHEMATICAL SCRIPT SMALL X -1D4CE MATHEMATICAL SCRIPT SMALL Y -1D4CF MATHEMATICAL SCRIPT SMALL Z -1D4D0 MATHEMATICAL BOLD SCRIPT CAPITAL A -1D4D1 MATHEMATICAL BOLD SCRIPT CAPITAL B -1D4D2 MATHEMATICAL BOLD SCRIPT CAPITAL C -1D4D3 MATHEMATICAL BOLD SCRIPT CAPITAL D -1D4D4 MATHEMATICAL BOLD SCRIPT CAPITAL E -1D4D5 MATHEMATICAL BOLD SCRIPT CAPITAL F -1D4D6 MATHEMATICAL BOLD SCRIPT CAPITAL G -1D4D7 MATHEMATICAL BOLD SCRIPT CAPITAL H -1D4D8 MATHEMATICAL BOLD SCRIPT CAPITAL I -1D4D9 MATHEMATICAL BOLD SCRIPT CAPITAL J -1D4DA MATHEMATICAL BOLD SCRIPT CAPITAL K -1D4DB MATHEMATICAL BOLD SCRIPT CAPITAL L -1D4DC MATHEMATICAL BOLD SCRIPT CAPITAL M -1D4DD MATHEMATICAL BOLD SCRIPT CAPITAL N -1D4DE MATHEMATICAL BOLD SCRIPT CAPITAL O -1D4DF MATHEMATICAL BOLD SCRIPT CAPITAL P -1D4E0 MATHEMATICAL BOLD SCRIPT CAPITAL Q -1D4E1 MATHEMATICAL BOLD SCRIPT CAPITAL R -1D4E2 MATHEMATICAL BOLD SCRIPT CAPITAL S -1D4E3 MATHEMATICAL BOLD SCRIPT CAPITAL T -1D4E4 MATHEMATICAL BOLD SCRIPT CAPITAL U -1D4E5 MATHEMATICAL BOLD SCRIPT CAPITAL V -1D4E6 MATHEMATICAL BOLD SCRIPT CAPITAL W -1D4E7 MATHEMATICAL BOLD SCRIPT CAPITAL X -1D4E8 MATHEMATICAL BOLD SCRIPT CAPITAL Y -1D4E9 MATHEMATICAL BOLD SCRIPT CAPITAL Z -1D4EA MATHEMATICAL BOLD SCRIPT SMALL A -1D4EB MATHEMATICAL BOLD SCRIPT SMALL B -1D4EC MATHEMATICAL BOLD SCRIPT SMALL C -1D4ED MATHEMATICAL BOLD SCRIPT SMALL D -1D4EE MATHEMATICAL BOLD SCRIPT SMALL E -1D4EF MATHEMATICAL BOLD SCRIPT SMALL F -1D4F0 MATHEMATICAL BOLD SCRIPT SMALL G -1D4F1 MATHEMATICAL BOLD SCRIPT SMALL H -1D4F2 MATHEMATICAL BOLD SCRIPT SMALL I -1D4F3 MATHEMATICAL BOLD SCRIPT SMALL J -1D4F4 MATHEMATICAL BOLD SCRIPT SMALL K -1D4F5 MATHEMATICAL BOLD SCRIPT SMALL L -1D4F6 MATHEMATICAL BOLD SCRIPT SMALL M -1D4F7 MATHEMATICAL BOLD SCRIPT SMALL N -1D4F8 MATHEMATICAL BOLD SCRIPT SMALL O -1D4F9 MATHEMATICAL BOLD SCRIPT SMALL P -1D4FA MATHEMATICAL BOLD SCRIPT SMALL Q -1D4FB MATHEMATICAL BOLD SCRIPT SMALL R -1D4FC MATHEMATICAL BOLD SCRIPT SMALL S -1D4FD MATHEMATICAL BOLD SCRIPT SMALL T -1D4FE MATHEMATICAL BOLD SCRIPT SMALL U -1D4FF MATHEMATICAL BOLD SCRIPT SMALL V -1D500 MATHEMATICAL BOLD SCRIPT SMALL W -1D501 MATHEMATICAL BOLD SCRIPT SMALL X -1D502 MATHEMATICAL BOLD SCRIPT SMALL Y -1D503 MATHEMATICAL BOLD SCRIPT SMALL Z -1D504 MATHEMATICAL FRAKTUR CAPITAL A -1D505 MATHEMATICAL FRAKTUR CAPITAL B -1D507 MATHEMATICAL FRAKTUR CAPITAL D -1D508 MATHEMATICAL FRAKTUR CAPITAL E -1D509 MATHEMATICAL FRAKTUR CAPITAL F -1D50A MATHEMATICAL FRAKTUR CAPITAL G -1D50D MATHEMATICAL FRAKTUR CAPITAL J -1D50E MATHEMATICAL FRAKTUR CAPITAL K -1D50F MATHEMATICAL FRAKTUR CAPITAL L -1D510 MATHEMATICAL FRAKTUR CAPITAL M -1D511 MATHEMATICAL FRAKTUR CAPITAL N -1D512 MATHEMATICAL FRAKTUR CAPITAL O -1D513 MATHEMATICAL FRAKTUR CAPITAL P -1D514 MATHEMATICAL FRAKTUR CAPITAL Q -1D516 MATHEMATICAL FRAKTUR CAPITAL S -1D517 MATHEMATICAL FRAKTUR CAPITAL T -1D518 MATHEMATICAL FRAKTUR CAPITAL U -1D519 MATHEMATICAL FRAKTUR CAPITAL V -1D51A MATHEMATICAL FRAKTUR CAPITAL W -1D51B MATHEMATICAL FRAKTUR CAPITAL X -1D51C MATHEMATICAL FRAKTUR CAPITAL Y -1D51E MATHEMATICAL FRAKTUR SMALL A -1D51F MATHEMATICAL FRAKTUR SMALL B -1D520 MATHEMATICAL FRAKTUR SMALL C -1D521 MATHEMATICAL FRAKTUR SMALL D -1D522 MATHEMATICAL FRAKTUR SMALL E -1D523 MATHEMATICAL FRAKTUR SMALL F -1D524 MATHEMATICAL FRAKTUR SMALL G -1D525 MATHEMATICAL FRAKTUR SMALL H -1D526 MATHEMATICAL FRAKTUR SMALL I -1D527 MATHEMATICAL FRAKTUR SMALL J -1D528 MATHEMATICAL FRAKTUR SMALL K -1D529 MATHEMATICAL FRAKTUR SMALL L -1D52A MATHEMATICAL FRAKTUR SMALL M -1D52B MATHEMATICAL FRAKTUR SMALL N -1D52C MATHEMATICAL FRAKTUR SMALL O -1D52D MATHEMATICAL FRAKTUR SMALL P -1D52E MATHEMATICAL FRAKTUR SMALL Q -1D52F MATHEMATICAL FRAKTUR SMALL R -1D530 MATHEMATICAL FRAKTUR SMALL S -1D531 MATHEMATICAL FRAKTUR SMALL T -1D532 MATHEMATICAL FRAKTUR SMALL U -1D533 MATHEMATICAL FRAKTUR SMALL V -1D534 MATHEMATICAL FRAKTUR SMALL W -1D535 MATHEMATICAL FRAKTUR SMALL X -1D536 MATHEMATICAL FRAKTUR SMALL Y -1D537 MATHEMATICAL FRAKTUR SMALL Z -1D538 MATHEMATICAL DOUBLE-STRUCK CAPITAL A -1D539 MATHEMATICAL DOUBLE-STRUCK CAPITAL B -1D53B MATHEMATICAL DOUBLE-STRUCK CAPITAL D -1D53C MATHEMATICAL DOUBLE-STRUCK CAPITAL E -1D53D MATHEMATICAL DOUBLE-STRUCK CAPITAL F -1D53E MATHEMATICAL DOUBLE-STRUCK CAPITAL G -1D540 MATHEMATICAL DOUBLE-STRUCK CAPITAL I -1D541 MATHEMATICAL DOUBLE-STRUCK CAPITAL J -1D542 MATHEMATICAL DOUBLE-STRUCK CAPITAL K -1D543 MATHEMATICAL DOUBLE-STRUCK CAPITAL L -1D544 MATHEMATICAL DOUBLE-STRUCK CAPITAL M -1D546 MATHEMATICAL DOUBLE-STRUCK CAPITAL O -1D54A MATHEMATICAL DOUBLE-STRUCK CAPITAL S -1D54B MATHEMATICAL DOUBLE-STRUCK CAPITAL T -1D54C MATHEMATICAL DOUBLE-STRUCK CAPITAL U -1D54D MATHEMATICAL DOUBLE-STRUCK CAPITAL V -1D54E MATHEMATICAL DOUBLE-STRUCK CAPITAL W -1D54F MATHEMATICAL DOUBLE-STRUCK CAPITAL X -1D550 MATHEMATICAL DOUBLE-STRUCK CAPITAL Y -1D552 MATHEMATICAL DOUBLE-STRUCK SMALL A -1D553 MATHEMATICAL DOUBLE-STRUCK SMALL B -1D554 MATHEMATICAL DOUBLE-STRUCK SMALL C -1D555 MATHEMATICAL DOUBLE-STRUCK SMALL D -1D556 MATHEMATICAL DOUBLE-STRUCK SMALL E -1D557 MATHEMATICAL DOUBLE-STRUCK SMALL F -1D558 MATHEMATICAL DOUBLE-STRUCK SMALL G -1D559 MATHEMATICAL DOUBLE-STRUCK SMALL H -1D55A MATHEMATICAL DOUBLE-STRUCK SMALL I -1D55B MATHEMATICAL DOUBLE-STRUCK SMALL J -1D55C MATHEMATICAL DOUBLE-STRUCK SMALL K -1D55D MATHEMATICAL DOUBLE-STRUCK SMALL L -1D55E MATHEMATICAL DOUBLE-STRUCK SMALL M -1D55F MATHEMATICAL DOUBLE-STRUCK SMALL N -1D560 MATHEMATICAL DOUBLE-STRUCK SMALL O -1D561 MATHEMATICAL DOUBLE-STRUCK SMALL P -1D562 MATHEMATICAL DOUBLE-STRUCK SMALL Q -1D563 MATHEMATICAL DOUBLE-STRUCK SMALL R -1D564 MATHEMATICAL DOUBLE-STRUCK SMALL S -1D565 MATHEMATICAL DOUBLE-STRUCK SMALL T -1D566 MATHEMATICAL DOUBLE-STRUCK SMALL U -1D567 MATHEMATICAL DOUBLE-STRUCK SMALL V -1D568 MATHEMATICAL DOUBLE-STRUCK SMALL W -1D569 MATHEMATICAL DOUBLE-STRUCK SMALL X -1D56A MATHEMATICAL DOUBLE-STRUCK SMALL Y -1D56B MATHEMATICAL DOUBLE-STRUCK SMALL Z -1D56C MATHEMATICAL BOLD FRAKTUR CAPITAL A -1D56D MATHEMATICAL BOLD FRAKTUR CAPITAL B -1D56E MATHEMATICAL BOLD FRAKTUR CAPITAL C -1D56F MATHEMATICAL BOLD FRAKTUR CAPITAL D -1D570 MATHEMATICAL BOLD FRAKTUR CAPITAL E -1D571 MATHEMATICAL BOLD FRAKTUR CAPITAL F -1D572 MATHEMATICAL BOLD FRAKTUR CAPITAL G -1D573 MATHEMATICAL BOLD FRAKTUR CAPITAL H -1D574 MATHEMATICAL BOLD FRAKTUR CAPITAL I -1D575 MATHEMATICAL BOLD FRAKTUR CAPITAL J -1D576 MATHEMATICAL BOLD FRAKTUR CAPITAL K -1D577 MATHEMATICAL BOLD FRAKTUR CAPITAL L -1D578 MATHEMATICAL BOLD FRAKTUR CAPITAL M -1D579 MATHEMATICAL BOLD FRAKTUR CAPITAL N -1D57A MATHEMATICAL BOLD FRAKTUR CAPITAL O -1D57B MATHEMATICAL BOLD FRAKTUR CAPITAL P -1D57C MATHEMATICAL BOLD FRAKTUR CAPITAL Q -1D57D MATHEMATICAL BOLD FRAKTUR CAPITAL R -1D57E MATHEMATICAL BOLD FRAKTUR CAPITAL S -1D57F MATHEMATICAL BOLD FRAKTUR CAPITAL T -1D580 MATHEMATICAL BOLD FRAKTUR CAPITAL U -1D581 MATHEMATICAL BOLD FRAKTUR CAPITAL V -1D582 MATHEMATICAL BOLD FRAKTUR CAPITAL W -1D583 MATHEMATICAL BOLD FRAKTUR CAPITAL X -1D584 MATHEMATICAL BOLD FRAKTUR CAPITAL Y -1D585 MATHEMATICAL BOLD FRAKTUR CAPITAL Z -1D586 MATHEMATICAL BOLD FRAKTUR SMALL A -1D587 MATHEMATICAL BOLD FRAKTUR SMALL B -1D588 MATHEMATICAL BOLD FRAKTUR SMALL C -1D589 MATHEMATICAL BOLD FRAKTUR SMALL D -1D58A MATHEMATICAL BOLD FRAKTUR SMALL E -1D58B MATHEMATICAL BOLD FRAKTUR SMALL F -1D58C MATHEMATICAL BOLD FRAKTUR SMALL G -1D58D MATHEMATICAL BOLD FRAKTUR SMALL H -1D58E MATHEMATICAL BOLD FRAKTUR SMALL I -1D58F MATHEMATICAL BOLD FRAKTUR SMALL J -1D590 MATHEMATICAL BOLD FRAKTUR SMALL K -1D591 MATHEMATICAL BOLD FRAKTUR SMALL L -1D592 MATHEMATICAL BOLD FRAKTUR SMALL M -1D593 MATHEMATICAL BOLD FRAKTUR SMALL N -1D594 MATHEMATICAL BOLD FRAKTUR SMALL O -1D595 MATHEMATICAL BOLD FRAKTUR SMALL P -1D596 MATHEMATICAL BOLD FRAKTUR SMALL Q -1D597 MATHEMATICAL BOLD FRAKTUR SMALL R -1D598 MATHEMATICAL BOLD FRAKTUR SMALL S -1D599 MATHEMATICAL BOLD FRAKTUR SMALL T -1D59A MATHEMATICAL BOLD FRAKTUR SMALL U -1D59B MATHEMATICAL BOLD FRAKTUR SMALL V -1D59C MATHEMATICAL BOLD FRAKTUR SMALL W -1D59D MATHEMATICAL BOLD FRAKTUR SMALL X -1D59E MATHEMATICAL BOLD FRAKTUR SMALL Y -1D59F MATHEMATICAL BOLD FRAKTUR SMALL Z -1D5A0 MATHEMATICAL SANS-SERIF CAPITAL A -1D5A1 MATHEMATICAL SANS-SERIF CAPITAL B -1D5A2 MATHEMATICAL SANS-SERIF CAPITAL C -1D5A3 MATHEMATICAL SANS-SERIF CAPITAL D -1D5A4 MATHEMATICAL SANS-SERIF CAPITAL E -1D5A5 MATHEMATICAL SANS-SERIF CAPITAL F -1D5A6 MATHEMATICAL SANS-SERIF CAPITAL G -1D5A7 MATHEMATICAL SANS-SERIF CAPITAL H -1D5A8 MATHEMATICAL SANS-SERIF CAPITAL I -1D5A9 MATHEMATICAL SANS-SERIF CAPITAL J -1D5AA MATHEMATICAL SANS-SERIF CAPITAL K -1D5AB MATHEMATICAL SANS-SERIF CAPITAL L -1D5AC MATHEMATICAL SANS-SERIF CAPITAL M -1D5AD MATHEMATICAL SANS-SERIF CAPITAL N -1D5AE MATHEMATICAL SANS-SERIF CAPITAL O -1D5AF MATHEMATICAL SANS-SERIF CAPITAL P -1D5B0 MATHEMATICAL SANS-SERIF CAPITAL Q -1D5B1 MATHEMATICAL SANS-SERIF CAPITAL R -1D5B2 MATHEMATICAL SANS-SERIF CAPITAL S -1D5B3 MATHEMATICAL SANS-SERIF CAPITAL T -1D5B4 MATHEMATICAL SANS-SERIF CAPITAL U -1D5B5 MATHEMATICAL SANS-SERIF CAPITAL V -1D5B6 MATHEMATICAL SANS-SERIF CAPITAL W -1D5B7 MATHEMATICAL SANS-SERIF CAPITAL X -1D5B8 MATHEMATICAL SANS-SERIF CAPITAL Y -1D5B9 MATHEMATICAL SANS-SERIF CAPITAL Z -1D5BA MATHEMATICAL SANS-SERIF SMALL A -1D5BB MATHEMATICAL SANS-SERIF SMALL B -1D5BC MATHEMATICAL SANS-SERIF SMALL C -1D5BD MATHEMATICAL SANS-SERIF SMALL D -1D5BE MATHEMATICAL SANS-SERIF SMALL E -1D5BF MATHEMATICAL SANS-SERIF SMALL F -1D5C0 MATHEMATICAL SANS-SERIF SMALL G -1D5C1 MATHEMATICAL SANS-SERIF SMALL H -1D5C2 MATHEMATICAL SANS-SERIF SMALL I -1D5C3 MATHEMATICAL SANS-SERIF SMALL J -1D5C4 MATHEMATICAL SANS-SERIF SMALL K -1D5C5 MATHEMATICAL SANS-SERIF SMALL L -1D5C6 MATHEMATICAL SANS-SERIF SMALL M -1D5C7 MATHEMATICAL SANS-SERIF SMALL N -1D5C8 MATHEMATICAL SANS-SERIF SMALL O -1D5C9 MATHEMATICAL SANS-SERIF SMALL P -1D5CA MATHEMATICAL SANS-SERIF SMALL Q -1D5CB MATHEMATICAL SANS-SERIF SMALL R -1D5CC MATHEMATICAL SANS-SERIF SMALL S -1D5CD MATHEMATICAL SANS-SERIF SMALL T -1D5CE MATHEMATICAL SANS-SERIF SMALL U -1D5CF MATHEMATICAL SANS-SERIF SMALL V -1D5D0 MATHEMATICAL SANS-SERIF SMALL W -1D5D1 MATHEMATICAL SANS-SERIF SMALL X -1D5D2 MATHEMATICAL SANS-SERIF SMALL Y -1D5D3 MATHEMATICAL SANS-SERIF SMALL Z -1D5D4 MATHEMATICAL SANS-SERIF BOLD CAPITAL A -1D5D5 MATHEMATICAL SANS-SERIF BOLD CAPITAL B -1D5D6 MATHEMATICAL SANS-SERIF BOLD CAPITAL C -1D5D7 MATHEMATICAL SANS-SERIF BOLD CAPITAL D -1D5D8 MATHEMATICAL SANS-SERIF BOLD CAPITAL E -1D5D9 MATHEMATICAL SANS-SERIF BOLD CAPITAL F -1D5DA MATHEMATICAL SANS-SERIF BOLD CAPITAL G -1D5DB MATHEMATICAL SANS-SERIF BOLD CAPITAL H -1D5DC MATHEMATICAL SANS-SERIF BOLD CAPITAL I -1D5DD MATHEMATICAL SANS-SERIF BOLD CAPITAL J -1D5DE MATHEMATICAL SANS-SERIF BOLD CAPITAL K -1D5DF MATHEMATICAL SANS-SERIF BOLD CAPITAL L -1D5E0 MATHEMATICAL SANS-SERIF BOLD CAPITAL M -1D5E1 MATHEMATICAL SANS-SERIF BOLD CAPITAL N -1D5E2 MATHEMATICAL SANS-SERIF BOLD CAPITAL O -1D5E3 MATHEMATICAL SANS-SERIF BOLD CAPITAL P -1D5E4 MATHEMATICAL SANS-SERIF BOLD CAPITAL Q -1D5E5 MATHEMATICAL SANS-SERIF BOLD CAPITAL R -1D5E6 MATHEMATICAL SANS-SERIF BOLD CAPITAL S -1D5E7 MATHEMATICAL SANS-SERIF BOLD CAPITAL T -1D5E8 MATHEMATICAL SANS-SERIF BOLD CAPITAL U -1D5E9 MATHEMATICAL SANS-SERIF BOLD CAPITAL V -1D5EA MATHEMATICAL SANS-SERIF BOLD CAPITAL W -1D5EB MATHEMATICAL SANS-SERIF BOLD CAPITAL X -1D5EC MATHEMATICAL SANS-SERIF BOLD CAPITAL Y -1D5ED MATHEMATICAL SANS-SERIF BOLD CAPITAL Z -1D5EE MATHEMATICAL SANS-SERIF BOLD SMALL A -1D5EF MATHEMATICAL SANS-SERIF BOLD SMALL B -1D5F0 MATHEMATICAL SANS-SERIF BOLD SMALL C -1D5F1 MATHEMATICAL SANS-SERIF BOLD SMALL D -1D5F2 MATHEMATICAL SANS-SERIF BOLD SMALL E -1D5F3 MATHEMATICAL SANS-SERIF BOLD SMALL F -1D5F4 MATHEMATICAL SANS-SERIF BOLD SMALL G -1D5F5 MATHEMATICAL SANS-SERIF BOLD SMALL H -1D5F6 MATHEMATICAL SANS-SERIF BOLD SMALL I -1D5F7 MATHEMATICAL SANS-SERIF BOLD SMALL J -1D5F8 MATHEMATICAL SANS-SERIF BOLD SMALL K -1D5F9 MATHEMATICAL SANS-SERIF BOLD SMALL L -1D5FA MATHEMATICAL SANS-SERIF BOLD SMALL M -1D5FB MATHEMATICAL SANS-SERIF BOLD SMALL N -1D5FC MATHEMATICAL SANS-SERIF BOLD SMALL O -1D5FD MATHEMATICAL SANS-SERIF BOLD SMALL P -1D5FE MATHEMATICAL SANS-SERIF BOLD SMALL Q -1D5FF MATHEMATICAL SANS-SERIF BOLD SMALL R -1D600 MATHEMATICAL SANS-SERIF BOLD SMALL S -1D601 MATHEMATICAL SANS-SERIF BOLD SMALL T -1D602 MATHEMATICAL SANS-SERIF BOLD SMALL U -1D603 MATHEMATICAL SANS-SERIF BOLD SMALL V -1D604 MATHEMATICAL SANS-SERIF BOLD SMALL W -1D605 MATHEMATICAL SANS-SERIF BOLD SMALL X -1D606 MATHEMATICAL SANS-SERIF BOLD SMALL Y -1D607 MATHEMATICAL SANS-SERIF BOLD SMALL Z -1D608 MATHEMATICAL SANS-SERIF ITALIC CAPITAL A -1D609 MATHEMATICAL SANS-SERIF ITALIC CAPITAL B -1D60A MATHEMATICAL SANS-SERIF ITALIC CAPITAL C -1D60B MATHEMATICAL SANS-SERIF ITALIC CAPITAL D -1D60C MATHEMATICAL SANS-SERIF ITALIC CAPITAL E -1D60D MATHEMATICAL SANS-SERIF ITALIC CAPITAL F -1D60E MATHEMATICAL SANS-SERIF ITALIC CAPITAL G -1D60F MATHEMATICAL SANS-SERIF ITALIC CAPITAL H -1D610 MATHEMATICAL SANS-SERIF ITALIC CAPITAL I -1D611 MATHEMATICAL SANS-SERIF ITALIC CAPITAL J -1D612 MATHEMATICAL SANS-SERIF ITALIC CAPITAL K -1D613 MATHEMATICAL SANS-SERIF ITALIC CAPITAL L -1D614 MATHEMATICAL SANS-SERIF ITALIC CAPITAL M -1D615 MATHEMATICAL SANS-SERIF ITALIC CAPITAL N -1D616 MATHEMATICAL SANS-SERIF ITALIC CAPITAL O -1D617 MATHEMATICAL SANS-SERIF ITALIC CAPITAL P -1D618 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q -1D619 MATHEMATICAL SANS-SERIF ITALIC CAPITAL R -1D61A MATHEMATICAL SANS-SERIF ITALIC CAPITAL S -1D61B MATHEMATICAL SANS-SERIF ITALIC CAPITAL T -1D61C MATHEMATICAL SANS-SERIF ITALIC CAPITAL U -1D61D MATHEMATICAL SANS-SERIF ITALIC CAPITAL V -1D61E MATHEMATICAL SANS-SERIF ITALIC CAPITAL W -1D61F MATHEMATICAL SANS-SERIF ITALIC CAPITAL X -1D620 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y -1D621 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z -1D622 MATHEMATICAL SANS-SERIF ITALIC SMALL A -1D623 MATHEMATICAL SANS-SERIF ITALIC SMALL B -1D624 MATHEMATICAL SANS-SERIF ITALIC SMALL C -1D625 MATHEMATICAL SANS-SERIF ITALIC SMALL D -1D626 MATHEMATICAL SANS-SERIF ITALIC SMALL E -1D627 MATHEMATICAL SANS-SERIF ITALIC SMALL F -1D628 MATHEMATICAL SANS-SERIF ITALIC SMALL G -1D629 MATHEMATICAL SANS-SERIF ITALIC SMALL H -1D62A MATHEMATICAL SANS-SERIF ITALIC SMALL I -1D62B MATHEMATICAL SANS-SERIF ITALIC SMALL J -1D62C MATHEMATICAL SANS-SERIF ITALIC SMALL K -1D62D MATHEMATICAL SANS-SERIF ITALIC SMALL L -1D62E MATHEMATICAL SANS-SERIF ITALIC SMALL M -1D62F MATHEMATICAL SANS-SERIF ITALIC SMALL N -1D630 MATHEMATICAL SANS-SERIF ITALIC SMALL O -1D631 MATHEMATICAL SANS-SERIF ITALIC SMALL P -1D632 MATHEMATICAL SANS-SERIF ITALIC SMALL Q -1D633 MATHEMATICAL SANS-SERIF ITALIC SMALL R -1D634 MATHEMATICAL SANS-SERIF ITALIC SMALL S -1D635 MATHEMATICAL SANS-SERIF ITALIC SMALL T -1D636 MATHEMATICAL SANS-SERIF ITALIC SMALL U -1D637 MATHEMATICAL SANS-SERIF ITALIC SMALL V -1D638 MATHEMATICAL SANS-SERIF ITALIC SMALL W -1D639 MATHEMATICAL SANS-SERIF ITALIC SMALL X -1D63A MATHEMATICAL SANS-SERIF ITALIC SMALL Y -1D63B MATHEMATICAL SANS-SERIF ITALIC SMALL Z -1D63C MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A -1D63D MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B -1D63E MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C -1D63F MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D -1D640 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E -1D641 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F -1D642 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G -1D643 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H -1D644 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I -1D645 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J -1D646 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K -1D647 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L -1D648 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M -1D649 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N -1D64A MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O -1D64B MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P -1D64C MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q -1D64D MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R -1D64E MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S -1D64F MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T -1D650 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U -1D651 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V -1D652 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W -1D653 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X -1D654 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y -1D655 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z -1D656 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A -1D657 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B -1D658 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C -1D659 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D -1D65A MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E -1D65B MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F -1D65C MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G -1D65D MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H -1D65E MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I -1D65F MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J -1D660 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K -1D661 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L -1D662 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M -1D663 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N -1D664 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O -1D665 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P -1D666 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q -1D667 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R -1D668 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S -1D669 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T -1D66A MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U -1D66B MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V -1D66C MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W -1D66D MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X -1D66E MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y -1D66F MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z -1D670 MATHEMATICAL MONOSPACE CAPITAL A -1D671 MATHEMATICAL MONOSPACE CAPITAL B -1D672 MATHEMATICAL MONOSPACE CAPITAL C -1D673 MATHEMATICAL MONOSPACE CAPITAL D -1D674 MATHEMATICAL MONOSPACE CAPITAL E -1D675 MATHEMATICAL MONOSPACE CAPITAL F -1D676 MATHEMATICAL MONOSPACE CAPITAL G -1D677 MATHEMATICAL MONOSPACE CAPITAL H -1D678 MATHEMATICAL MONOSPACE CAPITAL I -1D679 MATHEMATICAL MONOSPACE CAPITAL J -1D67A MATHEMATICAL MONOSPACE CAPITAL K -1D67B MATHEMATICAL MONOSPACE CAPITAL L -1D67C MATHEMATICAL MONOSPACE CAPITAL M -1D67D MATHEMATICAL MONOSPACE CAPITAL N -1D67E MATHEMATICAL MONOSPACE CAPITAL O -1D67F MATHEMATICAL MONOSPACE CAPITAL P -1D680 MATHEMATICAL MONOSPACE CAPITAL Q -1D681 MATHEMATICAL MONOSPACE CAPITAL R -1D682 MATHEMATICAL MONOSPACE CAPITAL S -1D683 MATHEMATICAL MONOSPACE CAPITAL T -1D684 MATHEMATICAL MONOSPACE CAPITAL U -1D685 MATHEMATICAL MONOSPACE CAPITAL V -1D686 MATHEMATICAL MONOSPACE CAPITAL W -1D687 MATHEMATICAL MONOSPACE CAPITAL X -1D688 MATHEMATICAL MONOSPACE CAPITAL Y -1D689 MATHEMATICAL MONOSPACE CAPITAL Z -1D68A MATHEMATICAL MONOSPACE SMALL A -1D68B MATHEMATICAL MONOSPACE SMALL B -1D68C MATHEMATICAL MONOSPACE SMALL C -1D68D MATHEMATICAL MONOSPACE SMALL D -1D68E MATHEMATICAL MONOSPACE SMALL E -1D68F MATHEMATICAL MONOSPACE SMALL F -1D690 MATHEMATICAL MONOSPACE SMALL G -1D691 MATHEMATICAL MONOSPACE SMALL H -1D692 MATHEMATICAL MONOSPACE SMALL I -1D693 MATHEMATICAL MONOSPACE SMALL J -1D694 MATHEMATICAL MONOSPACE SMALL K -1D695 MATHEMATICAL MONOSPACE SMALL L -1D696 MATHEMATICAL MONOSPACE SMALL M -1D697 MATHEMATICAL MONOSPACE SMALL N -1D698 MATHEMATICAL MONOSPACE SMALL O -1D699 MATHEMATICAL MONOSPACE SMALL P -1D69A MATHEMATICAL MONOSPACE SMALL Q -1D69B MATHEMATICAL MONOSPACE SMALL R -1D69C MATHEMATICAL MONOSPACE SMALL S -1D69D MATHEMATICAL MONOSPACE SMALL T -1D69E MATHEMATICAL MONOSPACE SMALL U -1D69F MATHEMATICAL MONOSPACE SMALL V -1D6A0 MATHEMATICAL MONOSPACE SMALL W -1D6A1 MATHEMATICAL MONOSPACE SMALL X -1D6A2 MATHEMATICAL MONOSPACE SMALL Y -1D6A3 MATHEMATICAL MONOSPACE SMALL Z -1D6A4 MATHEMATICAL ITALIC SMALL DOTLESS I -1D6A5 MATHEMATICAL ITALIC SMALL DOTLESS J -1D6A8 MATHEMATICAL BOLD CAPITAL ALPHA -1D6A9 MATHEMATICAL BOLD CAPITAL BETA -1D6AA MATHEMATICAL BOLD CAPITAL GAMMA -1D6AB MATHEMATICAL BOLD CAPITAL DELTA -1D6AC MATHEMATICAL BOLD CAPITAL EPSILON -1D6AD MATHEMATICAL BOLD CAPITAL ZETA -1D6AE MATHEMATICAL BOLD CAPITAL ETA -1D6AF MATHEMATICAL BOLD CAPITAL THETA -1D6B0 MATHEMATICAL BOLD CAPITAL IOTA -1D6B1 MATHEMATICAL BOLD CAPITAL KAPPA -1D6B2 MATHEMATICAL BOLD CAPITAL LAMDA -1D6B3 MATHEMATICAL BOLD CAPITAL MU -1D6B4 MATHEMATICAL BOLD CAPITAL NU -1D6B5 MATHEMATICAL BOLD CAPITAL XI -1D6B6 MATHEMATICAL BOLD CAPITAL OMICRON -1D6B7 MATHEMATICAL BOLD CAPITAL PI -1D6B8 MATHEMATICAL BOLD CAPITAL RHO -1D6B9 MATHEMATICAL BOLD CAPITAL THETA SYMBOL -1D6BA MATHEMATICAL BOLD CAPITAL SIGMA -1D6BB MATHEMATICAL BOLD CAPITAL TAU -1D6BC MATHEMATICAL BOLD CAPITAL UPSILON -1D6BD MATHEMATICAL BOLD CAPITAL PHI -1D6BE MATHEMATICAL BOLD CAPITAL CHI -1D6BF MATHEMATICAL BOLD CAPITAL PSI -1D6C0 MATHEMATICAL BOLD CAPITAL OMEGA -1D6C1 MATHEMATICAL BOLD NABLA -1D6C2 MATHEMATICAL BOLD SMALL ALPHA -1D6C3 MATHEMATICAL BOLD SMALL BETA -1D6C4 MATHEMATICAL BOLD SMALL GAMMA -1D6C5 MATHEMATICAL BOLD SMALL DELTA -1D6C6 MATHEMATICAL BOLD SMALL EPSILON -1D6C7 MATHEMATICAL BOLD SMALL ZETA -1D6C8 MATHEMATICAL BOLD SMALL ETA -1D6C9 MATHEMATICAL BOLD SMALL THETA -1D6CA MATHEMATICAL BOLD SMALL IOTA -1D6CB MATHEMATICAL BOLD SMALL KAPPA -1D6CC MATHEMATICAL BOLD SMALL LAMDA -1D6CD MATHEMATICAL BOLD SMALL MU -1D6CE MATHEMATICAL BOLD SMALL NU -1D6CF MATHEMATICAL BOLD SMALL XI -1D6D0 MATHEMATICAL BOLD SMALL OMICRON -1D6D1 MATHEMATICAL BOLD SMALL PI -1D6D2 MATHEMATICAL BOLD SMALL RHO -1D6D3 MATHEMATICAL BOLD SMALL FINAL SIGMA -1D6D4 MATHEMATICAL BOLD SMALL SIGMA -1D6D5 MATHEMATICAL BOLD SMALL TAU -1D6D6 MATHEMATICAL BOLD SMALL UPSILON -1D6D7 MATHEMATICAL BOLD SMALL PHI -1D6D8 MATHEMATICAL BOLD SMALL CHI -1D6D9 MATHEMATICAL BOLD SMALL PSI -1D6DA MATHEMATICAL BOLD SMALL OMEGA -1D6DB MATHEMATICAL BOLD PARTIAL DIFFERENTIAL -1D6DC MATHEMATICAL BOLD EPSILON SYMBOL -1D6DD MATHEMATICAL BOLD THETA SYMBOL -1D6DE MATHEMATICAL BOLD KAPPA SYMBOL -1D6DF MATHEMATICAL BOLD PHI SYMBOL -1D6E0 MATHEMATICAL BOLD RHO SYMBOL -1D6E1 MATHEMATICAL BOLD PI SYMBOL -1D6E2 MATHEMATICAL ITALIC CAPITAL ALPHA -1D6E3 MATHEMATICAL ITALIC CAPITAL BETA -1D6E4 MATHEMATICAL ITALIC CAPITAL GAMMA -1D6E5 MATHEMATICAL ITALIC CAPITAL DELTA -1D6E6 MATHEMATICAL ITALIC CAPITAL EPSILON -1D6E7 MATHEMATICAL ITALIC CAPITAL ZETA -1D6E8 MATHEMATICAL ITALIC CAPITAL ETA -1D6E9 MATHEMATICAL ITALIC CAPITAL THETA -1D6EA MATHEMATICAL ITALIC CAPITAL IOTA -1D6EB MATHEMATICAL ITALIC CAPITAL KAPPA -1D6EC MATHEMATICAL ITALIC CAPITAL LAMDA -1D6ED MATHEMATICAL ITALIC CAPITAL MU -1D6EE MATHEMATICAL ITALIC CAPITAL NU -1D6EF MATHEMATICAL ITALIC CAPITAL XI -1D6F0 MATHEMATICAL ITALIC CAPITAL OMICRON -1D6F1 MATHEMATICAL ITALIC CAPITAL PI -1D6F2 MATHEMATICAL ITALIC CAPITAL RHO -1D6F3 MATHEMATICAL ITALIC CAPITAL THETA SYMBOL -1D6F4 MATHEMATICAL ITALIC CAPITAL SIGMA -1D6F5 MATHEMATICAL ITALIC CAPITAL TAU -1D6F6 MATHEMATICAL ITALIC CAPITAL UPSILON -1D6F7 MATHEMATICAL ITALIC CAPITAL PHI -1D6F8 MATHEMATICAL ITALIC CAPITAL CHI -1D6F9 MATHEMATICAL ITALIC CAPITAL PSI -1D6FA MATHEMATICAL ITALIC CAPITAL OMEGA -1D6FB MATHEMATICAL ITALIC NABLA -1D6FC MATHEMATICAL ITALIC SMALL ALPHA -1D6FD MATHEMATICAL ITALIC SMALL BETA -1D6FE MATHEMATICAL ITALIC SMALL GAMMA -1D6FF MATHEMATICAL ITALIC SMALL DELTA -1D700 MATHEMATICAL ITALIC SMALL EPSILON -1D701 MATHEMATICAL ITALIC SMALL ZETA -1D702 MATHEMATICAL ITALIC SMALL ETA -1D703 MATHEMATICAL ITALIC SMALL THETA -1D704 MATHEMATICAL ITALIC SMALL IOTA -1D705 MATHEMATICAL ITALIC SMALL KAPPA -1D706 MATHEMATICAL ITALIC SMALL LAMDA -1D707 MATHEMATICAL ITALIC SMALL MU -1D708 MATHEMATICAL ITALIC SMALL NU -1D709 MATHEMATICAL ITALIC SMALL XI -1D70A MATHEMATICAL ITALIC SMALL OMICRON -1D70B MATHEMATICAL ITALIC SMALL PI -1D70C MATHEMATICAL ITALIC SMALL RHO -1D70D MATHEMATICAL ITALIC SMALL FINAL SIGMA -1D70E MATHEMATICAL ITALIC SMALL SIGMA -1D70F MATHEMATICAL ITALIC SMALL TAU -1D710 MATHEMATICAL ITALIC SMALL UPSILON -1D711 MATHEMATICAL ITALIC SMALL PHI -1D712 MATHEMATICAL ITALIC SMALL CHI -1D713 MATHEMATICAL ITALIC SMALL PSI -1D714 MATHEMATICAL ITALIC SMALL OMEGA -1D715 MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL -1D716 MATHEMATICAL ITALIC EPSILON SYMBOL -1D717 MATHEMATICAL ITALIC THETA SYMBOL -1D718 MATHEMATICAL ITALIC KAPPA SYMBOL -1D719 MATHEMATICAL ITALIC PHI SYMBOL -1D71A MATHEMATICAL ITALIC RHO SYMBOL -1D71B MATHEMATICAL ITALIC PI SYMBOL -1D71C MATHEMATICAL BOLD ITALIC CAPITAL ALPHA -1D71D MATHEMATICAL BOLD ITALIC CAPITAL BETA -1D71E MATHEMATICAL BOLD ITALIC CAPITAL GAMMA -1D71F MATHEMATICAL BOLD ITALIC CAPITAL DELTA -1D720 MATHEMATICAL BOLD ITALIC CAPITAL EPSILON -1D721 MATHEMATICAL BOLD ITALIC CAPITAL ZETA -1D722 MATHEMATICAL BOLD ITALIC CAPITAL ETA -1D723 MATHEMATICAL BOLD ITALIC CAPITAL THETA -1D724 MATHEMATICAL BOLD ITALIC CAPITAL IOTA -1D725 MATHEMATICAL BOLD ITALIC CAPITAL KAPPA -1D726 MATHEMATICAL BOLD ITALIC CAPITAL LAMDA -1D727 MATHEMATICAL BOLD ITALIC CAPITAL MU -1D728 MATHEMATICAL BOLD ITALIC CAPITAL NU -1D729 MATHEMATICAL BOLD ITALIC CAPITAL XI -1D72A MATHEMATICAL BOLD ITALIC CAPITAL OMICRON -1D72B MATHEMATICAL BOLD ITALIC CAPITAL PI -1D72C MATHEMATICAL BOLD ITALIC CAPITAL RHO -1D72D MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL -1D72E MATHEMATICAL BOLD ITALIC CAPITAL SIGMA -1D72F MATHEMATICAL BOLD ITALIC CAPITAL TAU -1D730 MATHEMATICAL BOLD ITALIC CAPITAL UPSILON -1D731 MATHEMATICAL BOLD ITALIC CAPITAL PHI -1D732 MATHEMATICAL BOLD ITALIC CAPITAL CHI -1D733 MATHEMATICAL BOLD ITALIC CAPITAL PSI -1D734 MATHEMATICAL BOLD ITALIC CAPITAL OMEGA -1D735 MATHEMATICAL BOLD ITALIC NABLA -1D736 MATHEMATICAL BOLD ITALIC SMALL ALPHA -1D737 MATHEMATICAL BOLD ITALIC SMALL BETA -1D738 MATHEMATICAL BOLD ITALIC SMALL GAMMA -1D739 MATHEMATICAL BOLD ITALIC SMALL DELTA -1D73A MATHEMATICAL BOLD ITALIC SMALL EPSILON -1D73B MATHEMATICAL BOLD ITALIC SMALL ZETA -1D73C MATHEMATICAL BOLD ITALIC SMALL ETA -1D73D MATHEMATICAL BOLD ITALIC SMALL THETA -1D73E MATHEMATICAL BOLD ITALIC SMALL IOTA -1D73F MATHEMATICAL BOLD ITALIC SMALL KAPPA -1D740 MATHEMATICAL BOLD ITALIC SMALL LAMDA -1D741 MATHEMATICAL BOLD ITALIC SMALL MU -1D742 MATHEMATICAL BOLD ITALIC SMALL NU -1D743 MATHEMATICAL BOLD ITALIC SMALL XI -1D744 MATHEMATICAL BOLD ITALIC SMALL OMICRON -1D745 MATHEMATICAL BOLD ITALIC SMALL PI -1D746 MATHEMATICAL BOLD ITALIC SMALL RHO -1D747 MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA -1D748 MATHEMATICAL BOLD ITALIC SMALL SIGMA -1D749 MATHEMATICAL BOLD ITALIC SMALL TAU -1D74A MATHEMATICAL BOLD ITALIC SMALL UPSILON -1D74B MATHEMATICAL BOLD ITALIC SMALL PHI -1D74C MATHEMATICAL BOLD ITALIC SMALL CHI -1D74D MATHEMATICAL BOLD ITALIC SMALL PSI -1D74E MATHEMATICAL BOLD ITALIC SMALL OMEGA -1D74F MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL -1D750 MATHEMATICAL BOLD ITALIC EPSILON SYMBOL -1D751 MATHEMATICAL BOLD ITALIC THETA SYMBOL -1D752 MATHEMATICAL BOLD ITALIC KAPPA SYMBOL -1D753 MATHEMATICAL BOLD ITALIC PHI SYMBOL -1D754 MATHEMATICAL BOLD ITALIC RHO SYMBOL -1D755 MATHEMATICAL BOLD ITALIC PI SYMBOL -1D756 MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA -1D757 MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA -1D758 MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA -1D759 MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA -1D75A MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON -1D75B MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA -1D75C MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA -1D75D MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA -1D75E MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA -1D75F MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA -1D760 MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA -1D761 MATHEMATICAL SANS-SERIF BOLD CAPITAL MU -1D762 MATHEMATICAL SANS-SERIF BOLD CAPITAL NU -1D763 MATHEMATICAL SANS-SERIF BOLD CAPITAL XI -1D764 MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON -1D765 MATHEMATICAL SANS-SERIF BOLD CAPITAL PI -1D766 MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO -1D767 MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL -1D768 MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA -1D769 MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU -1D76A MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON -1D76B MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI -1D76C MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI -1D76D MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI -1D76E MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA -1D76F MATHEMATICAL SANS-SERIF BOLD NABLA -1D770 MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA -1D771 MATHEMATICAL SANS-SERIF BOLD SMALL BETA -1D772 MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA -1D773 MATHEMATICAL SANS-SERIF BOLD SMALL DELTA -1D774 MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON -1D775 MATHEMATICAL SANS-SERIF BOLD SMALL ZETA -1D776 MATHEMATICAL SANS-SERIF BOLD SMALL ETA -1D777 MATHEMATICAL SANS-SERIF BOLD SMALL THETA -1D778 MATHEMATICAL SANS-SERIF BOLD SMALL IOTA -1D779 MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA -1D77A MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA -1D77B MATHEMATICAL SANS-SERIF BOLD SMALL MU -1D77C MATHEMATICAL SANS-SERIF BOLD SMALL NU -1D77D MATHEMATICAL SANS-SERIF BOLD SMALL XI -1D77E MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON -1D77F MATHEMATICAL SANS-SERIF BOLD SMALL PI -1D780 MATHEMATICAL SANS-SERIF BOLD SMALL RHO -1D781 MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA -1D782 MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA -1D783 MATHEMATICAL SANS-SERIF BOLD SMALL TAU -1D784 MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON -1D785 MATHEMATICAL SANS-SERIF BOLD SMALL PHI -1D786 MATHEMATICAL SANS-SERIF BOLD SMALL CHI -1D787 MATHEMATICAL SANS-SERIF BOLD SMALL PSI -1D788 MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA -1D789 MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL -1D78A MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL -1D78B MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL -1D78C MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL -1D78D MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL -1D78E MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL -1D78F MATHEMATICAL SANS-SERIF BOLD PI SYMBOL -1D790 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA -1D791 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA -1D792 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA -1D793 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA -1D794 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON -1D795 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA -1D796 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA -1D797 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA -1D798 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA -1D799 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA -1D79A MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA -1D79B MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU -1D79C MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU -1D79D MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI -1D79E MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON -1D79F MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI -1D7A0 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO -1D7A1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL -1D7A2 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA -1D7A3 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU -1D7A4 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON -1D7A5 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI -1D7A6 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI -1D7A7 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI -1D7A8 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA -1D7A9 MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA -1D7AA MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA -1D7AB MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA -1D7AC MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA -1D7AD MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA -1D7AE MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON -1D7AF MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA -1D7B0 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA -1D7B1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA -1D7B2 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA -1D7B3 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA -1D7B4 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA -1D7B5 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU -1D7B6 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU -1D7B7 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI -1D7B8 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON -1D7B9 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI -1D7BA MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO -1D7BB MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA -1D7BC MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA -1D7BD MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU -1D7BE MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON -1D7BF MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI -1D7C0 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI -1D7C1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI -1D7C2 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA -1D7C3 MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL -1D7C4 MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL -1D7C5 MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL -1D7C6 MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL -1D7C7 MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL -1D7C8 MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL -1D7C9 MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL -1D7CA MATHEMATICAL BOLD CAPITAL DIGAMMA -1D7CB MATHEMATICAL BOLD SMALL DIGAMMA -1D7CE MATHEMATICAL BOLD DIGIT ZERO -1D7CF MATHEMATICAL BOLD DIGIT ONE -1D7D0 MATHEMATICAL BOLD DIGIT TWO -1D7D1 MATHEMATICAL BOLD DIGIT THREE -1D7D2 MATHEMATICAL BOLD DIGIT FOUR -1D7D3 MATHEMATICAL BOLD DIGIT FIVE -1D7D4 MATHEMATICAL BOLD DIGIT SIX -1D7D5 MATHEMATICAL BOLD DIGIT SEVEN -1D7D6 MATHEMATICAL BOLD DIGIT EIGHT -1D7D7 MATHEMATICAL BOLD DIGIT NINE -1D7D8 MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO -1D7D9 MATHEMATICAL DOUBLE-STRUCK DIGIT ONE -1D7DA MATHEMATICAL DOUBLE-STRUCK DIGIT TWO -1D7DB MATHEMATICAL DOUBLE-STRUCK DIGIT THREE -1D7DC MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR -1D7DD MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE -1D7DE MATHEMATICAL DOUBLE-STRUCK DIGIT SIX -1D7DF MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN -1D7E0 MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT -1D7E1 MATHEMATICAL DOUBLE-STRUCK DIGIT NINE -1D7E2 MATHEMATICAL SANS-SERIF DIGIT ZERO -1D7E3 MATHEMATICAL SANS-SERIF DIGIT ONE -1D7E4 MATHEMATICAL SANS-SERIF DIGIT TWO -1D7E5 MATHEMATICAL SANS-SERIF DIGIT THREE -1D7E6 MATHEMATICAL SANS-SERIF DIGIT FOUR -1D7E7 MATHEMATICAL SANS-SERIF DIGIT FIVE -1D7E8 MATHEMATICAL SANS-SERIF DIGIT SIX -1D7E9 MATHEMATICAL SANS-SERIF DIGIT SEVEN -1D7EA MATHEMATICAL SANS-SERIF DIGIT EIGHT -1D7EB MATHEMATICAL SANS-SERIF DIGIT NINE -1D7EC MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO -1D7ED MATHEMATICAL SANS-SERIF BOLD DIGIT ONE -1D7EE MATHEMATICAL SANS-SERIF BOLD DIGIT TWO -1D7EF MATHEMATICAL SANS-SERIF BOLD DIGIT THREE -1D7F0 MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR -1D7F1 MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE -1D7F2 MATHEMATICAL SANS-SERIF BOLD DIGIT SIX -1D7F3 MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN -1D7F4 MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT -1D7F5 MATHEMATICAL SANS-SERIF BOLD DIGIT NINE -1D7F6 MATHEMATICAL MONOSPACE DIGIT ZERO -1D7F7 MATHEMATICAL MONOSPACE DIGIT ONE -1D7F8 MATHEMATICAL MONOSPACE DIGIT TWO -1D7F9 MATHEMATICAL MONOSPACE DIGIT THREE -1D7FA MATHEMATICAL MONOSPACE DIGIT FOUR -1D7FB MATHEMATICAL MONOSPACE DIGIT FIVE -1D7FC MATHEMATICAL MONOSPACE DIGIT SIX -1D7FD MATHEMATICAL MONOSPACE DIGIT SEVEN -1D7FE MATHEMATICAL MONOSPACE DIGIT EIGHT -1D7FF MATHEMATICAL MONOSPACE DIGIT NINE -1D800 SIGNWRITING HAND-FIST INDEX -1D801 SIGNWRITING HAND-CIRCLE INDEX -1D802 SIGNWRITING HAND-CUP INDEX -1D803 SIGNWRITING HAND-OVAL INDEX -1D804 SIGNWRITING HAND-HINGE INDEX -1D805 SIGNWRITING HAND-ANGLE INDEX -1D806 SIGNWRITING HAND-FIST INDEX BENT -1D807 SIGNWRITING HAND-CIRCLE INDEX BENT -1D808 SIGNWRITING HAND-FIST THUMB UNDER INDEX BENT -1D809 SIGNWRITING HAND-FIST INDEX RAISED KNUCKLE -1D80A SIGNWRITING HAND-FIST INDEX CUPPED -1D80B SIGNWRITING HAND-FIST INDEX HINGED -1D80C SIGNWRITING HAND-FIST INDEX HINGED LOW -1D80D SIGNWRITING HAND-CIRCLE INDEX HINGE -1D80E SIGNWRITING HAND-FIST INDEX MIDDLE -1D80F SIGNWRITING HAND-CIRCLE INDEX MIDDLE -1D810 SIGNWRITING HAND-FIST INDEX MIDDLE BENT -1D811 SIGNWRITING HAND-FIST INDEX MIDDLE RAISED KNUCKLES -1D812 SIGNWRITING HAND-FIST INDEX MIDDLE HINGED -1D813 SIGNWRITING HAND-FIST INDEX UP MIDDLE HINGED -1D814 SIGNWRITING HAND-FIST INDEX HINGED MIDDLE UP -1D815 SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED -1D816 SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED INDEX BENT -1D817 SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED MIDDLE BENT -1D818 SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED CUPPED -1D819 SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED HINGED -1D81A SIGNWRITING HAND-FIST INDEX MIDDLE CROSSED -1D81B SIGNWRITING HAND-CIRCLE INDEX MIDDLE CROSSED -1D81C SIGNWRITING HAND-FIST MIDDLE BENT OVER INDEX -1D81D SIGNWRITING HAND-FIST INDEX BENT OVER MIDDLE -1D81E SIGNWRITING HAND-FIST INDEX MIDDLE THUMB -1D81F SIGNWRITING HAND-CIRCLE INDEX MIDDLE THUMB -1D820 SIGNWRITING HAND-FIST INDEX MIDDLE STRAIGHT THUMB BENT -1D821 SIGNWRITING HAND-FIST INDEX MIDDLE BENT THUMB STRAIGHT -1D822 SIGNWRITING HAND-FIST INDEX MIDDLE THUMB BENT -1D823 SIGNWRITING HAND-FIST INDEX MIDDLE HINGED SPREAD THUMB SIDE -1D824 SIGNWRITING HAND-FIST INDEX UP MIDDLE HINGED THUMB SIDE -1D825 SIGNWRITING HAND-FIST INDEX UP MIDDLE HINGED THUMB CONJOINED -1D826 SIGNWRITING HAND-FIST INDEX HINGED MIDDLE UP THUMB SIDE -1D827 SIGNWRITING HAND-FIST INDEX MIDDLE UP SPREAD THUMB FORWARD -1D828 SIGNWRITING HAND-FIST INDEX MIDDLE THUMB CUPPED -1D829 SIGNWRITING HAND-FIST INDEX MIDDLE THUMB CIRCLED -1D82A SIGNWRITING HAND-FIST INDEX MIDDLE THUMB HOOKED -1D82B SIGNWRITING HAND-FIST INDEX MIDDLE THUMB HINGED -1D82C SIGNWRITING HAND-FIST THUMB BETWEEN INDEX MIDDLE STRAIGHT -1D82D SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED THUMB SIDE -1D82E SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED THUMB SIDE CONJOINED -1D82F SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED THUMB SIDE BENT -1D830 SIGNWRITING HAND-FIST MIDDLE THUMB HOOKED INDEX UP -1D831 SIGNWRITING HAND-FIST INDEX THUMB HOOKED MIDDLE UP -1D832 SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED HINGED THUMB SIDE -1D833 SIGNWRITING HAND-FIST INDEX MIDDLE CROSSED THUMB SIDE -1D834 SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED THUMB FORWARD -1D835 SIGNWRITING HAND-FIST INDEX MIDDLE CONJOINED CUPPED THUMB FORWARD -1D836 SIGNWRITING HAND-FIST MIDDLE THUMB CUPPED INDEX UP -1D837 SIGNWRITING HAND-FIST INDEX THUMB CUPPED MIDDLE UP -1D838 SIGNWRITING HAND-FIST MIDDLE THUMB CIRCLED INDEX UP -1D839 SIGNWRITING HAND-FIST MIDDLE THUMB CIRCLED INDEX HINGED -1D83A SIGNWRITING HAND-FIST INDEX THUMB ANGLED OUT MIDDLE UP -1D83B SIGNWRITING HAND-FIST INDEX THUMB ANGLED IN MIDDLE UP -1D83C SIGNWRITING HAND-FIST INDEX THUMB CIRCLED MIDDLE UP -1D83D SIGNWRITING HAND-FIST INDEX MIDDLE THUMB CONJOINED HINGED -1D83E SIGNWRITING HAND-FIST INDEX MIDDLE THUMB ANGLED OUT -1D83F SIGNWRITING HAND-FIST INDEX MIDDLE THUMB ANGLED -1D840 SIGNWRITING HAND-FIST MIDDLE THUMB ANGLED OUT INDEX UP -1D841 SIGNWRITING HAND-FIST MIDDLE THUMB ANGLED OUT INDEX CROSSED -1D842 SIGNWRITING HAND-FIST MIDDLE THUMB ANGLED INDEX UP -1D843 SIGNWRITING HAND-FIST INDEX THUMB HOOKED MIDDLE HINGED -1D844 SIGNWRITING HAND-FLAT FOUR FINGERS -1D845 SIGNWRITING HAND-FLAT FOUR FINGERS BENT -1D846 SIGNWRITING HAND-FLAT FOUR FINGERS HINGED -1D847 SIGNWRITING HAND-FLAT FOUR FINGERS CONJOINED -1D848 SIGNWRITING HAND-FLAT FOUR FINGERS CONJOINED SPLIT -1D849 SIGNWRITING HAND-CLAW FOUR FINGERS CONJOINED -1D84A SIGNWRITING HAND-FIST FOUR FINGERS CONJOINED BENT -1D84B SIGNWRITING HAND-HINGE FOUR FINGERS CONJOINED -1D84C SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD -1D84D SIGNWRITING HAND-FLAT HEEL FIVE FINGERS SPREAD -1D84E SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD FOUR BENT -1D84F SIGNWRITING HAND-FLAT HEEL FIVE FINGERS SPREAD FOUR BENT -1D850 SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD BENT -1D851 SIGNWRITING HAND-FLAT HEEL FIVE FINGERS SPREAD BENT -1D852 SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD THUMB FORWARD -1D853 SIGNWRITING HAND-CUP FIVE FINGERS SPREAD -1D854 SIGNWRITING HAND-CUP FIVE FINGERS SPREAD OPEN -1D855 SIGNWRITING HAND-HINGE FIVE FINGERS SPREAD OPEN -1D856 SIGNWRITING HAND-OVAL FIVE FINGERS SPREAD -1D857 SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD HINGED -1D858 SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD HINGED THUMB SIDE -1D859 SIGNWRITING HAND-FLAT FIVE FINGERS SPREAD HINGED NO THUMB -1D85A SIGNWRITING HAND-FLAT -1D85B SIGNWRITING HAND-FLAT BETWEEN PALM FACINGS -1D85C SIGNWRITING HAND-FLAT HEEL -1D85D SIGNWRITING HAND-FLAT THUMB SIDE -1D85E SIGNWRITING HAND-FLAT HEEL THUMB SIDE -1D85F SIGNWRITING HAND-FLAT THUMB BENT -1D860 SIGNWRITING HAND-FLAT THUMB FORWARD -1D861 SIGNWRITING HAND-FLAT SPLIT INDEX THUMB SIDE -1D862 SIGNWRITING HAND-FLAT SPLIT CENTRE -1D863 SIGNWRITING HAND-FLAT SPLIT CENTRE THUMB SIDE -1D864 SIGNWRITING HAND-FLAT SPLIT CENTRE THUMB SIDE BENT -1D865 SIGNWRITING HAND-FLAT SPLIT LITTLE -1D866 SIGNWRITING HAND-CLAW -1D867 SIGNWRITING HAND-CLAW THUMB SIDE -1D868 SIGNWRITING HAND-CLAW NO THUMB -1D869 SIGNWRITING HAND-CLAW THUMB FORWARD -1D86A SIGNWRITING HAND-HOOK CURLICUE -1D86B SIGNWRITING HAND-HOOK -1D86C SIGNWRITING HAND-CUP OPEN -1D86D SIGNWRITING HAND-CUP -1D86E SIGNWRITING HAND-CUP OPEN THUMB SIDE -1D86F SIGNWRITING HAND-CUP THUMB SIDE -1D870 SIGNWRITING HAND-CUP OPEN NO THUMB -1D871 SIGNWRITING HAND-CUP NO THUMB -1D872 SIGNWRITING HAND-CUP OPEN THUMB FORWARD -1D873 SIGNWRITING HAND-CUP THUMB FORWARD -1D874 SIGNWRITING HAND-CURLICUE OPEN -1D875 SIGNWRITING HAND-CURLICUE -1D876 SIGNWRITING HAND-CIRCLE -1D877 SIGNWRITING HAND-OVAL -1D878 SIGNWRITING HAND-OVAL THUMB SIDE -1D879 SIGNWRITING HAND-OVAL NO THUMB -1D87A SIGNWRITING HAND-OVAL THUMB FORWARD -1D87B SIGNWRITING HAND-HINGE OPEN -1D87C SIGNWRITING HAND-HINGE OPEN THUMB FORWARD -1D87D SIGNWRITING HAND-HINGE -1D87E SIGNWRITING HAND-HINGE SMALL -1D87F SIGNWRITING HAND-HINGE OPEN THUMB SIDE -1D880 SIGNWRITING HAND-HINGE THUMB SIDE -1D881 SIGNWRITING HAND-HINGE OPEN NO THUMB -1D882 SIGNWRITING HAND-HINGE NO THUMB -1D883 SIGNWRITING HAND-HINGE THUMB SIDE TOUCHING INDEX -1D884 SIGNWRITING HAND-HINGE THUMB BETWEEN MIDDLE RING -1D885 SIGNWRITING HAND-ANGLE -1D886 SIGNWRITING HAND-FIST INDEX MIDDLE RING -1D887 SIGNWRITING HAND-CIRCLE INDEX MIDDLE RING -1D888 SIGNWRITING HAND-HINGE INDEX MIDDLE RING -1D889 SIGNWRITING HAND-ANGLE INDEX MIDDLE RING -1D88A SIGNWRITING HAND-HINGE LITTLE -1D88B SIGNWRITING HAND-FIST INDEX MIDDLE RING BENT -1D88C SIGNWRITING HAND-FIST INDEX MIDDLE RING CONJOINED -1D88D SIGNWRITING HAND-HINGE INDEX MIDDLE RING CONJOINED -1D88E SIGNWRITING HAND-FIST LITTLE DOWN -1D88F SIGNWRITING HAND-FIST LITTLE DOWN RIPPLE STRAIGHT -1D890 SIGNWRITING HAND-FIST LITTLE DOWN RIPPLE CURVED -1D891 SIGNWRITING HAND-FIST LITTLE DOWN OTHERS CIRCLED -1D892 SIGNWRITING HAND-FIST LITTLE UP -1D893 SIGNWRITING HAND-FIST THUMB UNDER LITTLE UP -1D894 SIGNWRITING HAND-CIRCLE LITTLE UP -1D895 SIGNWRITING HAND-OVAL LITTLE UP -1D896 SIGNWRITING HAND-ANGLE LITTLE UP -1D897 SIGNWRITING HAND-FIST LITTLE RAISED KNUCKLE -1D898 SIGNWRITING HAND-FIST LITTLE BENT -1D899 SIGNWRITING HAND-FIST LITTLE TOUCHES THUMB -1D89A SIGNWRITING HAND-FIST LITTLE THUMB -1D89B SIGNWRITING HAND-HINGE LITTLE THUMB -1D89C SIGNWRITING HAND-FIST LITTLE INDEX THUMB -1D89D SIGNWRITING HAND-HINGE LITTLE INDEX THUMB -1D89E SIGNWRITING HAND-ANGLE LITTLE INDEX THUMB INDEX THUMB OUT -1D89F SIGNWRITING HAND-ANGLE LITTLE INDEX THUMB INDEX THUMB -1D8A0 SIGNWRITING HAND-FIST LITTLE INDEX -1D8A1 SIGNWRITING HAND-CIRCLE LITTLE INDEX -1D8A2 SIGNWRITING HAND-HINGE LITTLE INDEX -1D8A3 SIGNWRITING HAND-ANGLE LITTLE INDEX -1D8A4 SIGNWRITING HAND-FIST INDEX MIDDLE LITTLE -1D8A5 SIGNWRITING HAND-CIRCLE INDEX MIDDLE LITTLE -1D8A6 SIGNWRITING HAND-HINGE INDEX MIDDLE LITTLE -1D8A7 SIGNWRITING HAND-HINGE RING -1D8A8 SIGNWRITING HAND-ANGLE INDEX MIDDLE LITTLE -1D8A9 SIGNWRITING HAND-FIST INDEX MIDDLE CROSS LITTLE -1D8AA SIGNWRITING HAND-CIRCLE INDEX MIDDLE CROSS LITTLE -1D8AB SIGNWRITING HAND-FIST RING DOWN -1D8AC SIGNWRITING HAND-HINGE RING DOWN INDEX THUMB HOOK MIDDLE -1D8AD SIGNWRITING HAND-ANGLE RING DOWN MIDDLE THUMB INDEX CROSS -1D8AE SIGNWRITING HAND-FIST RING UP -1D8AF SIGNWRITING HAND-FIST RING RAISED KNUCKLE -1D8B0 SIGNWRITING HAND-FIST RING LITTLE -1D8B1 SIGNWRITING HAND-CIRCLE RING LITTLE -1D8B2 SIGNWRITING HAND-OVAL RING LITTLE -1D8B3 SIGNWRITING HAND-ANGLE RING LITTLE -1D8B4 SIGNWRITING HAND-FIST RING MIDDLE -1D8B5 SIGNWRITING HAND-FIST RING MIDDLE CONJOINED -1D8B6 SIGNWRITING HAND-FIST RING MIDDLE RAISED KNUCKLES -1D8B7 SIGNWRITING HAND-FIST RING INDEX -1D8B8 SIGNWRITING HAND-FIST RING THUMB -1D8B9 SIGNWRITING HAND-HOOK RING THUMB -1D8BA SIGNWRITING HAND-FIST INDEX RING LITTLE -1D8BB SIGNWRITING HAND-CIRCLE INDEX RING LITTLE -1D8BC SIGNWRITING HAND-CURLICUE INDEX RING LITTLE ON -1D8BD SIGNWRITING HAND-HOOK INDEX RING LITTLE OUT -1D8BE SIGNWRITING HAND-HOOK INDEX RING LITTLE IN -1D8BF SIGNWRITING HAND-HOOK INDEX RING LITTLE UNDER -1D8C0 SIGNWRITING HAND-CUP INDEX RING LITTLE -1D8C1 SIGNWRITING HAND-HINGE INDEX RING LITTLE -1D8C2 SIGNWRITING HAND-ANGLE INDEX RING LITTLE OUT -1D8C3 SIGNWRITING HAND-ANGLE INDEX RING LITTLE -1D8C4 SIGNWRITING HAND-FIST MIDDLE DOWN -1D8C5 SIGNWRITING HAND-HINGE MIDDLE -1D8C6 SIGNWRITING HAND-FIST MIDDLE UP -1D8C7 SIGNWRITING HAND-CIRCLE MIDDLE UP -1D8C8 SIGNWRITING HAND-FIST MIDDLE RAISED KNUCKLE -1D8C9 SIGNWRITING HAND-FIST MIDDLE UP THUMB SIDE -1D8CA SIGNWRITING HAND-HOOK MIDDLE THUMB -1D8CB SIGNWRITING HAND-FIST MIDDLE THUMB LITTLE -1D8CC SIGNWRITING HAND-FIST MIDDLE LITTLE -1D8CD SIGNWRITING HAND-FIST MIDDLE RING LITTLE -1D8CE SIGNWRITING HAND-CIRCLE MIDDLE RING LITTLE -1D8CF SIGNWRITING HAND-CURLICUE MIDDLE RING LITTLE ON -1D8D0 SIGNWRITING HAND-CUP MIDDLE RING LITTLE -1D8D1 SIGNWRITING HAND-HINGE MIDDLE RING LITTLE -1D8D2 SIGNWRITING HAND-ANGLE MIDDLE RING LITTLE OUT -1D8D3 SIGNWRITING HAND-ANGLE MIDDLE RING LITTLE IN -1D8D4 SIGNWRITING HAND-ANGLE MIDDLE RING LITTLE -1D8D5 SIGNWRITING HAND-CIRCLE MIDDLE RING LITTLE BENT -1D8D6 SIGNWRITING HAND-CLAW MIDDLE RING LITTLE CONJOINED -1D8D7 SIGNWRITING HAND-CLAW MIDDLE RING LITTLE CONJOINED SIDE -1D8D8 SIGNWRITING HAND-HOOK MIDDLE RING LITTLE CONJOINED OUT -1D8D9 SIGNWRITING HAND-HOOK MIDDLE RING LITTLE CONJOINED IN -1D8DA SIGNWRITING HAND-HOOK MIDDLE RING LITTLE CONJOINED -1D8DB SIGNWRITING HAND-HINGE INDEX HINGED -1D8DC SIGNWRITING HAND-FIST INDEX THUMB SIDE -1D8DD SIGNWRITING HAND-HINGE INDEX THUMB SIDE -1D8DE SIGNWRITING HAND-FIST INDEX THUMB SIDE THUMB DIAGONAL -1D8DF SIGNWRITING HAND-FIST INDEX THUMB SIDE THUMB CONJOINED -1D8E0 SIGNWRITING HAND-FIST INDEX THUMB SIDE THUMB BENT -1D8E1 SIGNWRITING HAND-FIST INDEX THUMB SIDE INDEX BENT -1D8E2 SIGNWRITING HAND-FIST INDEX THUMB SIDE BOTH BENT -1D8E3 SIGNWRITING HAND-FIST INDEX THUMB SIDE INDEX HINGE -1D8E4 SIGNWRITING HAND-FIST INDEX THUMB FORWARD INDEX STRAIGHT -1D8E5 SIGNWRITING HAND-FIST INDEX THUMB FORWARD INDEX BENT -1D8E6 SIGNWRITING HAND-FIST INDEX THUMB HOOK -1D8E7 SIGNWRITING HAND-FIST INDEX THUMB CURLICUE -1D8E8 SIGNWRITING HAND-FIST INDEX THUMB CURVE THUMB INSIDE -1D8E9 SIGNWRITING HAND-CLAW INDEX THUMB CURVE THUMB INSIDE -1D8EA SIGNWRITING HAND-FIST INDEX THUMB CURVE THUMB UNDER -1D8EB SIGNWRITING HAND-FIST INDEX THUMB CIRCLE -1D8EC SIGNWRITING HAND-CUP INDEX THUMB -1D8ED SIGNWRITING HAND-CUP INDEX THUMB OPEN -1D8EE SIGNWRITING HAND-HINGE INDEX THUMB OPEN -1D8EF SIGNWRITING HAND-HINGE INDEX THUMB LARGE -1D8F0 SIGNWRITING HAND-HINGE INDEX THUMB -1D8F1 SIGNWRITING HAND-HINGE INDEX THUMB SMALL -1D8F2 SIGNWRITING HAND-ANGLE INDEX THUMB OUT -1D8F3 SIGNWRITING HAND-ANGLE INDEX THUMB IN -1D8F4 SIGNWRITING HAND-ANGLE INDEX THUMB -1D8F5 SIGNWRITING HAND-FIST THUMB -1D8F6 SIGNWRITING HAND-FIST THUMB HEEL -1D8F7 SIGNWRITING HAND-FIST THUMB SIDE DIAGONAL -1D8F8 SIGNWRITING HAND-FIST THUMB SIDE CONJOINED -1D8F9 SIGNWRITING HAND-FIST THUMB SIDE BENT -1D8FA SIGNWRITING HAND-FIST THUMB FORWARD -1D8FB SIGNWRITING HAND-FIST THUMB BETWEEN INDEX MIDDLE -1D8FC SIGNWRITING HAND-FIST THUMB BETWEEN MIDDLE RING -1D8FD SIGNWRITING HAND-FIST THUMB BETWEEN RING LITTLE -1D8FE SIGNWRITING HAND-FIST THUMB UNDER TWO FINGERS -1D8FF SIGNWRITING HAND-FIST THUMB OVER TWO FINGERS -1D900 SIGNWRITING HAND-FIST THUMB UNDER THREE FINGERS -1D901 SIGNWRITING HAND-FIST THUMB UNDER FOUR FINGERS -1D902 SIGNWRITING HAND-FIST THUMB OVER FOUR RAISED KNUCKLES -1D903 SIGNWRITING HAND-FIST -1D904 SIGNWRITING HAND-FIST HEEL -1D905 SIGNWRITING TOUCH SINGLE -1D906 SIGNWRITING TOUCH MULTIPLE -1D907 SIGNWRITING TOUCH BETWEEN -1D908 SIGNWRITING GRASP SINGLE -1D909 SIGNWRITING GRASP MULTIPLE -1D90A SIGNWRITING GRASP BETWEEN -1D90B SIGNWRITING STRIKE SINGLE -1D90C SIGNWRITING STRIKE MULTIPLE -1D90D SIGNWRITING STRIKE BETWEEN -1D90E SIGNWRITING BRUSH SINGLE -1D90F SIGNWRITING BRUSH MULTIPLE -1D910 SIGNWRITING BRUSH BETWEEN -1D911 SIGNWRITING RUB SINGLE -1D912 SIGNWRITING RUB MULTIPLE -1D913 SIGNWRITING RUB BETWEEN -1D914 SIGNWRITING SURFACE SYMBOLS -1D915 SIGNWRITING SURFACE BETWEEN -1D916 SIGNWRITING SQUEEZE LARGE SINGLE -1D917 SIGNWRITING SQUEEZE SMALL SINGLE -1D918 SIGNWRITING SQUEEZE LARGE MULTIPLE -1D919 SIGNWRITING SQUEEZE SMALL MULTIPLE -1D91A SIGNWRITING SQUEEZE SEQUENTIAL -1D91B SIGNWRITING FLICK LARGE SINGLE -1D91C SIGNWRITING FLICK SMALL SINGLE -1D91D SIGNWRITING FLICK LARGE MULTIPLE -1D91E SIGNWRITING FLICK SMALL MULTIPLE -1D91F SIGNWRITING FLICK SEQUENTIAL -1D920 SIGNWRITING SQUEEZE FLICK ALTERNATING -1D921 SIGNWRITING MOVEMENT-HINGE UP DOWN LARGE -1D922 SIGNWRITING MOVEMENT-HINGE UP DOWN SMALL -1D923 SIGNWRITING MOVEMENT-HINGE UP SEQUENTIAL -1D924 SIGNWRITING MOVEMENT-HINGE DOWN SEQUENTIAL -1D925 SIGNWRITING MOVEMENT-HINGE UP DOWN ALTERNATING LARGE -1D926 SIGNWRITING MOVEMENT-HINGE UP DOWN ALTERNATING SMALL -1D927 SIGNWRITING MOVEMENT-HINGE SIDE TO SIDE SCISSORS -1D928 SIGNWRITING MOVEMENT-WALLPLANE FINGER CONTACT -1D929 SIGNWRITING MOVEMENT-FLOORPLANE FINGER CONTACT -1D92A SIGNWRITING MOVEMENT-WALLPLANE SINGLE STRAIGHT SMALL -1D92B SIGNWRITING MOVEMENT-WALLPLANE SINGLE STRAIGHT MEDIUM -1D92C SIGNWRITING MOVEMENT-WALLPLANE SINGLE STRAIGHT LARGE -1D92D SIGNWRITING MOVEMENT-WALLPLANE SINGLE STRAIGHT LARGEST -1D92E SIGNWRITING MOVEMENT-WALLPLANE SINGLE WRIST FLEX -1D92F SIGNWRITING MOVEMENT-WALLPLANE DOUBLE STRAIGHT -1D930 SIGNWRITING MOVEMENT-WALLPLANE DOUBLE WRIST FLEX -1D931 SIGNWRITING MOVEMENT-WALLPLANE DOUBLE ALTERNATING -1D932 SIGNWRITING MOVEMENT-WALLPLANE DOUBLE ALTERNATING WRIST FLEX -1D933 SIGNWRITING MOVEMENT-WALLPLANE CROSS -1D934 SIGNWRITING MOVEMENT-WALLPLANE TRIPLE STRAIGHT MOVEMENT -1D935 SIGNWRITING MOVEMENT-WALLPLANE TRIPLE WRIST FLEX -1D936 SIGNWRITING MOVEMENT-WALLPLANE TRIPLE ALTERNATING -1D937 SIGNWRITING MOVEMENT-WALLPLANE TRIPLE ALTERNATING WRIST FLEX -1D938 SIGNWRITING MOVEMENT-WALLPLANE BEND SMALL -1D939 SIGNWRITING MOVEMENT-WALLPLANE BEND MEDIUM -1D93A SIGNWRITING MOVEMENT-WALLPLANE BEND LARGE -1D93B SIGNWRITING MOVEMENT-WALLPLANE CORNER SMALL -1D93C SIGNWRITING MOVEMENT-WALLPLANE CORNER MEDIUM -1D93D SIGNWRITING MOVEMENT-WALLPLANE CORNER LARGE -1D93E SIGNWRITING MOVEMENT-WALLPLANE CORNER ROTATION -1D93F SIGNWRITING MOVEMENT-WALLPLANE CHECK SMALL -1D940 SIGNWRITING MOVEMENT-WALLPLANE CHECK MEDIUM -1D941 SIGNWRITING MOVEMENT-WALLPLANE CHECK LARGE -1D942 SIGNWRITING MOVEMENT-WALLPLANE BOX SMALL -1D943 SIGNWRITING MOVEMENT-WALLPLANE BOX MEDIUM -1D944 SIGNWRITING MOVEMENT-WALLPLANE BOX LARGE -1D945 SIGNWRITING MOVEMENT-WALLPLANE ZIGZAG SMALL -1D946 SIGNWRITING MOVEMENT-WALLPLANE ZIGZAG MEDIUM -1D947 SIGNWRITING MOVEMENT-WALLPLANE ZIGZAG LARGE -1D948 SIGNWRITING MOVEMENT-WALLPLANE PEAKS SMALL -1D949 SIGNWRITING MOVEMENT-WALLPLANE PEAKS MEDIUM -1D94A SIGNWRITING MOVEMENT-WALLPLANE PEAKS LARGE -1D94B SIGNWRITING TRAVEL-WALLPLANE ROTATION-WALLPLANE SINGLE -1D94C SIGNWRITING TRAVEL-WALLPLANE ROTATION-WALLPLANE DOUBLE -1D94D SIGNWRITING TRAVEL-WALLPLANE ROTATION-WALLPLANE ALTERNATING -1D94E SIGNWRITING TRAVEL-WALLPLANE ROTATION-FLOORPLANE SINGLE -1D94F SIGNWRITING TRAVEL-WALLPLANE ROTATION-FLOORPLANE DOUBLE -1D950 SIGNWRITING TRAVEL-WALLPLANE ROTATION-FLOORPLANE ALTERNATING -1D951 SIGNWRITING TRAVEL-WALLPLANE SHAKING -1D952 SIGNWRITING TRAVEL-WALLPLANE ARM SPIRAL SINGLE -1D953 SIGNWRITING TRAVEL-WALLPLANE ARM SPIRAL DOUBLE -1D954 SIGNWRITING TRAVEL-WALLPLANE ARM SPIRAL TRIPLE -1D955 SIGNWRITING MOVEMENT-DIAGONAL AWAY SMALL -1D956 SIGNWRITING MOVEMENT-DIAGONAL AWAY MEDIUM -1D957 SIGNWRITING MOVEMENT-DIAGONAL AWAY LARGE -1D958 SIGNWRITING MOVEMENT-DIAGONAL AWAY LARGEST -1D959 SIGNWRITING MOVEMENT-DIAGONAL TOWARDS SMALL -1D95A SIGNWRITING MOVEMENT-DIAGONAL TOWARDS MEDIUM -1D95B SIGNWRITING MOVEMENT-DIAGONAL TOWARDS LARGE -1D95C SIGNWRITING MOVEMENT-DIAGONAL TOWARDS LARGEST -1D95D SIGNWRITING MOVEMENT-DIAGONAL BETWEEN AWAY SMALL -1D95E SIGNWRITING MOVEMENT-DIAGONAL BETWEEN AWAY MEDIUM -1D95F SIGNWRITING MOVEMENT-DIAGONAL BETWEEN AWAY LARGE -1D960 SIGNWRITING MOVEMENT-DIAGONAL BETWEEN AWAY LARGEST -1D961 SIGNWRITING MOVEMENT-DIAGONAL BETWEEN TOWARDS SMALL -1D962 SIGNWRITING MOVEMENT-DIAGONAL BETWEEN TOWARDS MEDIUM -1D963 SIGNWRITING MOVEMENT-DIAGONAL BETWEEN TOWARDS LARGE -1D964 SIGNWRITING MOVEMENT-DIAGONAL BETWEEN TOWARDS LARGEST -1D965 SIGNWRITING MOVEMENT-FLOORPLANE SINGLE STRAIGHT SMALL -1D966 SIGNWRITING MOVEMENT-FLOORPLANE SINGLE STRAIGHT MEDIUM -1D967 SIGNWRITING MOVEMENT-FLOORPLANE SINGLE STRAIGHT LARGE -1D968 SIGNWRITING MOVEMENT-FLOORPLANE SINGLE STRAIGHT LARGEST -1D969 SIGNWRITING MOVEMENT-FLOORPLANE SINGLE WRIST FLEX -1D96A SIGNWRITING MOVEMENT-FLOORPLANE DOUBLE STRAIGHT -1D96B SIGNWRITING MOVEMENT-FLOORPLANE DOUBLE WRIST FLEX -1D96C SIGNWRITING MOVEMENT-FLOORPLANE DOUBLE ALTERNATING -1D96D SIGNWRITING MOVEMENT-FLOORPLANE DOUBLE ALTERNATING WRIST FLEX -1D96E SIGNWRITING MOVEMENT-FLOORPLANE CROSS -1D96F SIGNWRITING MOVEMENT-FLOORPLANE TRIPLE STRAIGHT MOVEMENT -1D970 SIGNWRITING MOVEMENT-FLOORPLANE TRIPLE WRIST FLEX -1D971 SIGNWRITING MOVEMENT-FLOORPLANE TRIPLE ALTERNATING MOVEMENT -1D972 SIGNWRITING MOVEMENT-FLOORPLANE TRIPLE ALTERNATING WRIST FLEX -1D973 SIGNWRITING MOVEMENT-FLOORPLANE BEND -1D974 SIGNWRITING MOVEMENT-FLOORPLANE CORNER SMALL -1D975 SIGNWRITING MOVEMENT-FLOORPLANE CORNER MEDIUM -1D976 SIGNWRITING MOVEMENT-FLOORPLANE CORNER LARGE -1D977 SIGNWRITING MOVEMENT-FLOORPLANE CHECK -1D978 SIGNWRITING MOVEMENT-FLOORPLANE BOX SMALL -1D979 SIGNWRITING MOVEMENT-FLOORPLANE BOX MEDIUM -1D97A SIGNWRITING MOVEMENT-FLOORPLANE BOX LARGE -1D97B SIGNWRITING MOVEMENT-FLOORPLANE ZIGZAG SMALL -1D97C SIGNWRITING MOVEMENT-FLOORPLANE ZIGZAG MEDIUM -1D97D SIGNWRITING MOVEMENT-FLOORPLANE ZIGZAG LARGE -1D97E SIGNWRITING MOVEMENT-FLOORPLANE PEAKS SMALL -1D97F SIGNWRITING MOVEMENT-FLOORPLANE PEAKS MEDIUM -1D980 SIGNWRITING MOVEMENT-FLOORPLANE PEAKS LARGE -1D981 SIGNWRITING TRAVEL-FLOORPLANE ROTATION-FLOORPLANE SINGLE -1D982 SIGNWRITING TRAVEL-FLOORPLANE ROTATION-FLOORPLANE DOUBLE -1D983 SIGNWRITING TRAVEL-FLOORPLANE ROTATION-FLOORPLANE ALTERNATING -1D984 SIGNWRITING TRAVEL-FLOORPLANE ROTATION-WALLPLANE SINGLE -1D985 SIGNWRITING TRAVEL-FLOORPLANE ROTATION-WALLPLANE DOUBLE -1D986 SIGNWRITING TRAVEL-FLOORPLANE ROTATION-WALLPLANE ALTERNATING -1D987 SIGNWRITING TRAVEL-FLOORPLANE SHAKING -1D988 SIGNWRITING MOVEMENT-WALLPLANE CURVE QUARTER SMALL -1D989 SIGNWRITING MOVEMENT-WALLPLANE CURVE QUARTER MEDIUM -1D98A SIGNWRITING MOVEMENT-WALLPLANE CURVE QUARTER LARGE -1D98B SIGNWRITING MOVEMENT-WALLPLANE CURVE QUARTER LARGEST -1D98C SIGNWRITING MOVEMENT-WALLPLANE CURVE HALF-CIRCLE SMALL -1D98D SIGNWRITING MOVEMENT-WALLPLANE CURVE HALF-CIRCLE MEDIUM -1D98E SIGNWRITING MOVEMENT-WALLPLANE CURVE HALF-CIRCLE LARGE -1D98F SIGNWRITING MOVEMENT-WALLPLANE CURVE HALF-CIRCLE LARGEST -1D990 SIGNWRITING MOVEMENT-WALLPLANE CURVE THREE-QUARTER CIRCLE SMALL -1D991 SIGNWRITING MOVEMENT-WALLPLANE CURVE THREE-QUARTER CIRCLE MEDIUM -1D992 SIGNWRITING MOVEMENT-WALLPLANE HUMP SMALL -1D993 SIGNWRITING MOVEMENT-WALLPLANE HUMP MEDIUM -1D994 SIGNWRITING MOVEMENT-WALLPLANE HUMP LARGE -1D995 SIGNWRITING MOVEMENT-WALLPLANE LOOP SMALL -1D996 SIGNWRITING MOVEMENT-WALLPLANE LOOP MEDIUM -1D997 SIGNWRITING MOVEMENT-WALLPLANE LOOP LARGE -1D998 SIGNWRITING MOVEMENT-WALLPLANE LOOP SMALL DOUBLE -1D999 SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE DOUBLE SMALL -1D99A SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE DOUBLE MEDIUM -1D99B SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE DOUBLE LARGE -1D99C SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE TRIPLE SMALL -1D99D SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE TRIPLE MEDIUM -1D99E SIGNWRITING MOVEMENT-WALLPLANE WAVE CURVE TRIPLE LARGE -1D99F SIGNWRITING MOVEMENT-WALLPLANE CURVE THEN STRAIGHT -1D9A0 SIGNWRITING MOVEMENT-WALLPLANE CURVED CROSS SMALL -1D9A1 SIGNWRITING MOVEMENT-WALLPLANE CURVED CROSS MEDIUM -1D9A2 SIGNWRITING ROTATION-WALLPLANE SINGLE -1D9A3 SIGNWRITING ROTATION-WALLPLANE DOUBLE -1D9A4 SIGNWRITING ROTATION-WALLPLANE ALTERNATE -1D9A5 SIGNWRITING MOVEMENT-WALLPLANE SHAKING -1D9A6 SIGNWRITING MOVEMENT-WALLPLANE CURVE HITTING FRONT WALL -1D9A7 SIGNWRITING MOVEMENT-WALLPLANE HUMP HITTING FRONT WALL -1D9A8 SIGNWRITING MOVEMENT-WALLPLANE LOOP HITTING FRONT WALL -1D9A9 SIGNWRITING MOVEMENT-WALLPLANE WAVE HITTING FRONT WALL -1D9AA SIGNWRITING ROTATION-WALLPLANE SINGLE HITTING FRONT WALL -1D9AB SIGNWRITING ROTATION-WALLPLANE DOUBLE HITTING FRONT WALL -1D9AC SIGNWRITING ROTATION-WALLPLANE ALTERNATING HITTING FRONT WALL -1D9AD SIGNWRITING MOVEMENT-WALLPLANE CURVE HITTING CHEST -1D9AE SIGNWRITING MOVEMENT-WALLPLANE HUMP HITTING CHEST -1D9AF SIGNWRITING MOVEMENT-WALLPLANE LOOP HITTING CHEST -1D9B0 SIGNWRITING MOVEMENT-WALLPLANE WAVE HITTING CHEST -1D9B1 SIGNWRITING ROTATION-WALLPLANE SINGLE HITTING CHEST -1D9B2 SIGNWRITING ROTATION-WALLPLANE DOUBLE HITTING CHEST -1D9B3 SIGNWRITING ROTATION-WALLPLANE ALTERNATING HITTING CHEST -1D9B4 SIGNWRITING MOVEMENT-WALLPLANE WAVE DIAGONAL PATH SMALL -1D9B5 SIGNWRITING MOVEMENT-WALLPLANE WAVE DIAGONAL PATH MEDIUM -1D9B6 SIGNWRITING MOVEMENT-WALLPLANE WAVE DIAGONAL PATH LARGE -1D9B7 SIGNWRITING MOVEMENT-FLOORPLANE CURVE HITTING CEILING SMALL -1D9B8 SIGNWRITING MOVEMENT-FLOORPLANE CURVE HITTING CEILING LARGE -1D9B9 SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING CEILING SMALL DOUBLE -1D9BA SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING CEILING LARGE DOUBLE -1D9BB SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING CEILING SMALL TRIPLE -1D9BC SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING CEILING LARGE TRIPLE -1D9BD SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING CEILING SMALL SINGLE -1D9BE SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING CEILING LARGE SINGLE -1D9BF SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING CEILING SMALL DOUBLE -1D9C0 SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING CEILING LARGE DOUBLE -1D9C1 SIGNWRITING MOVEMENT-FLOORPLANE WAVE HITTING CEILING SMALL -1D9C2 SIGNWRITING MOVEMENT-FLOORPLANE WAVE HITTING CEILING LARGE -1D9C3 SIGNWRITING ROTATION-FLOORPLANE SINGLE HITTING CEILING -1D9C4 SIGNWRITING ROTATION-FLOORPLANE DOUBLE HITTING CEILING -1D9C5 SIGNWRITING ROTATION-FLOORPLANE ALTERNATING HITTING CEILING -1D9C6 SIGNWRITING MOVEMENT-FLOORPLANE CURVE HITTING FLOOR SMALL -1D9C7 SIGNWRITING MOVEMENT-FLOORPLANE CURVE HITTING FLOOR LARGE -1D9C8 SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING FLOOR SMALL DOUBLE -1D9C9 SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING FLOOR LARGE DOUBLE -1D9CA SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING FLOOR TRIPLE SMALL TRIPLE -1D9CB SIGNWRITING MOVEMENT-FLOORPLANE HUMP HITTING FLOOR TRIPLE LARGE TRIPLE -1D9CC SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING FLOOR SMALL SINGLE -1D9CD SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING FLOOR LARGE SINGLE -1D9CE SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING FLOOR SMALL DOUBLE -1D9CF SIGNWRITING MOVEMENT-FLOORPLANE LOOP HITTING FLOOR LARGE DOUBLE -1D9D0 SIGNWRITING MOVEMENT-FLOORPLANE WAVE HITTING FLOOR SMALL -1D9D1 SIGNWRITING MOVEMENT-FLOORPLANE WAVE HITTING FLOOR LARGE -1D9D2 SIGNWRITING ROTATION-FLOORPLANE SINGLE HITTING FLOOR -1D9D3 SIGNWRITING ROTATION-FLOORPLANE DOUBLE HITTING FLOOR -1D9D4 SIGNWRITING ROTATION-FLOORPLANE ALTERNATING HITTING FLOOR -1D9D5 SIGNWRITING MOVEMENT-FLOORPLANE CURVE SMALL -1D9D6 SIGNWRITING MOVEMENT-FLOORPLANE CURVE MEDIUM -1D9D7 SIGNWRITING MOVEMENT-FLOORPLANE CURVE LARGE -1D9D8 SIGNWRITING MOVEMENT-FLOORPLANE CURVE LARGEST -1D9D9 SIGNWRITING MOVEMENT-FLOORPLANE CURVE COMBINED -1D9DA SIGNWRITING MOVEMENT-FLOORPLANE HUMP SMALL -1D9DB SIGNWRITING MOVEMENT-FLOORPLANE LOOP SMALL -1D9DC SIGNWRITING MOVEMENT-FLOORPLANE WAVE SNAKE -1D9DD SIGNWRITING MOVEMENT-FLOORPLANE WAVE SMALL -1D9DE SIGNWRITING MOVEMENT-FLOORPLANE WAVE LARGE -1D9DF SIGNWRITING ROTATION-FLOORPLANE SINGLE -1D9E0 SIGNWRITING ROTATION-FLOORPLANE DOUBLE -1D9E1 SIGNWRITING ROTATION-FLOORPLANE ALTERNATING -1D9E2 SIGNWRITING MOVEMENT-FLOORPLANE SHAKING PARALLEL -1D9E3 SIGNWRITING MOVEMENT-WALLPLANE ARM CIRCLE SMALL SINGLE -1D9E4 SIGNWRITING MOVEMENT-WALLPLANE ARM CIRCLE MEDIUM SINGLE -1D9E5 SIGNWRITING MOVEMENT-WALLPLANE ARM CIRCLE SMALL DOUBLE -1D9E6 SIGNWRITING MOVEMENT-WALLPLANE ARM CIRCLE MEDIUM DOUBLE -1D9E7 SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL SMALL SINGLE -1D9E8 SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL MEDIUM SINGLE -1D9E9 SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL LARGE SINGLE -1D9EA SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL SMALL DOUBLE -1D9EB SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL MEDIUM DOUBLE -1D9EC SIGNWRITING MOVEMENT-FLOORPLANE ARM CIRCLE HITTING WALL LARGE DOUBLE -1D9ED SIGNWRITING MOVEMENT-WALLPLANE WRIST CIRCLE FRONT SINGLE -1D9EE SIGNWRITING MOVEMENT-WALLPLANE WRIST CIRCLE FRONT DOUBLE -1D9EF SIGNWRITING MOVEMENT-FLOORPLANE WRIST CIRCLE HITTING WALL SINGLE -1D9F0 SIGNWRITING MOVEMENT-FLOORPLANE WRIST CIRCLE HITTING WALL DOUBLE -1D9F1 SIGNWRITING MOVEMENT-WALLPLANE FINGER CIRCLES SINGLE -1D9F2 SIGNWRITING MOVEMENT-WALLPLANE FINGER CIRCLES DOUBLE -1D9F3 SIGNWRITING MOVEMENT-FLOORPLANE FINGER CIRCLES HITTING WALL SINGLE -1D9F4 SIGNWRITING MOVEMENT-FLOORPLANE FINGER CIRCLES HITTING WALL DOUBLE -1D9F5 SIGNWRITING DYNAMIC ARROWHEAD SMALL -1D9F6 SIGNWRITING DYNAMIC ARROWHEAD LARGE -1D9F7 SIGNWRITING DYNAMIC FAST -1D9F8 SIGNWRITING DYNAMIC SLOW -1D9F9 SIGNWRITING DYNAMIC TENSE -1D9FA SIGNWRITING DYNAMIC RELAXED -1D9FB SIGNWRITING DYNAMIC SIMULTANEOUS -1D9FC SIGNWRITING DYNAMIC SIMULTANEOUS ALTERNATING -1D9FD SIGNWRITING DYNAMIC EVERY OTHER TIME -1D9FE SIGNWRITING DYNAMIC GRADUAL -1D9FF SIGNWRITING HEAD -1DA00 SIGNWRITING HEAD RIM -1DA01 SIGNWRITING HEAD MOVEMENT-WALLPLANE STRAIGHT -1DA02 SIGNWRITING HEAD MOVEMENT-WALLPLANE TILT -1DA03 SIGNWRITING HEAD MOVEMENT-FLOORPLANE STRAIGHT -1DA04 SIGNWRITING HEAD MOVEMENT-WALLPLANE CURVE -1DA05 SIGNWRITING HEAD MOVEMENT-FLOORPLANE CURVE -1DA06 SIGNWRITING HEAD MOVEMENT CIRCLE -1DA07 SIGNWRITING FACE DIRECTION POSITION NOSE FORWARD TILTING -1DA08 SIGNWRITING FACE DIRECTION POSITION NOSE UP OR DOWN -1DA09 SIGNWRITING FACE DIRECTION POSITION NOSE UP OR DOWN TILTING -1DA0A SIGNWRITING EYEBROWS STRAIGHT UP -1DA0B SIGNWRITING EYEBROWS STRAIGHT NEUTRAL -1DA0C SIGNWRITING EYEBROWS STRAIGHT DOWN -1DA0D SIGNWRITING DREAMY EYEBROWS NEUTRAL DOWN -1DA0E SIGNWRITING DREAMY EYEBROWS DOWN NEUTRAL -1DA0F SIGNWRITING DREAMY EYEBROWS UP NEUTRAL -1DA10 SIGNWRITING DREAMY EYEBROWS NEUTRAL UP -1DA11 SIGNWRITING FOREHEAD NEUTRAL -1DA12 SIGNWRITING FOREHEAD CONTACT -1DA13 SIGNWRITING FOREHEAD WRINKLED -1DA14 SIGNWRITING EYES OPEN -1DA15 SIGNWRITING EYES SQUEEZED -1DA16 SIGNWRITING EYES CLOSED -1DA17 SIGNWRITING EYE BLINK SINGLE -1DA18 SIGNWRITING EYE BLINK MULTIPLE -1DA19 SIGNWRITING EYES HALF OPEN -1DA1A SIGNWRITING EYES WIDE OPEN -1DA1B SIGNWRITING EYES HALF CLOSED -1DA1C SIGNWRITING EYES WIDENING MOVEMENT -1DA1D SIGNWRITING EYE WINK -1DA1E SIGNWRITING EYELASHES UP -1DA1F SIGNWRITING EYELASHES DOWN -1DA20 SIGNWRITING EYELASHES FLUTTERING -1DA21 SIGNWRITING EYEGAZE-WALLPLANE STRAIGHT -1DA22 SIGNWRITING EYEGAZE-WALLPLANE STRAIGHT DOUBLE -1DA23 SIGNWRITING EYEGAZE-WALLPLANE STRAIGHT ALTERNATING -1DA24 SIGNWRITING EYEGAZE-FLOORPLANE STRAIGHT -1DA25 SIGNWRITING EYEGAZE-FLOORPLANE STRAIGHT DOUBLE -1DA26 SIGNWRITING EYEGAZE-FLOORPLANE STRAIGHT ALTERNATING -1DA27 SIGNWRITING EYEGAZE-WALLPLANE CURVED -1DA28 SIGNWRITING EYEGAZE-FLOORPLANE CURVED -1DA29 SIGNWRITING EYEGAZE-WALLPLANE CIRCLING -1DA2A SIGNWRITING CHEEKS PUFFED -1DA2B SIGNWRITING CHEEKS NEUTRAL -1DA2C SIGNWRITING CHEEKS SUCKED -1DA2D SIGNWRITING TENSE CHEEKS HIGH -1DA2E SIGNWRITING TENSE CHEEKS MIDDLE -1DA2F SIGNWRITING TENSE CHEEKS LOW -1DA30 SIGNWRITING EARS -1DA31 SIGNWRITING NOSE NEUTRAL -1DA32 SIGNWRITING NOSE CONTACT -1DA33 SIGNWRITING NOSE WRINKLES -1DA34 SIGNWRITING NOSE WIGGLES -1DA35 SIGNWRITING AIR BLOWING OUT -1DA36 SIGNWRITING AIR SUCKING IN -1DA37 SIGNWRITING AIR BLOW SMALL ROTATIONS -1DA38 SIGNWRITING AIR SUCK SMALL ROTATIONS -1DA39 SIGNWRITING BREATH INHALE -1DA3A SIGNWRITING BREATH EXHALE -1DA3B SIGNWRITING MOUTH CLOSED NEUTRAL -1DA3C SIGNWRITING MOUTH CLOSED FORWARD -1DA3D SIGNWRITING MOUTH CLOSED CONTACT -1DA3E SIGNWRITING MOUTH SMILE -1DA3F SIGNWRITING MOUTH SMILE WRINKLED -1DA40 SIGNWRITING MOUTH SMILE OPEN -1DA41 SIGNWRITING MOUTH FROWN -1DA42 SIGNWRITING MOUTH FROWN WRINKLED -1DA43 SIGNWRITING MOUTH FROWN OPEN -1DA44 SIGNWRITING MOUTH OPEN CIRCLE -1DA45 SIGNWRITING MOUTH OPEN FORWARD -1DA46 SIGNWRITING MOUTH OPEN WRINKLED -1DA47 SIGNWRITING MOUTH OPEN OVAL -1DA48 SIGNWRITING MOUTH OPEN OVAL WRINKLED -1DA49 SIGNWRITING MOUTH OPEN OVAL YAWN -1DA4A SIGNWRITING MOUTH OPEN RECTANGLE -1DA4B SIGNWRITING MOUTH OPEN RECTANGLE WRINKLED -1DA4C SIGNWRITING MOUTH OPEN RECTANGLE YAWN -1DA4D SIGNWRITING MOUTH KISS -1DA4E SIGNWRITING MOUTH KISS FORWARD -1DA4F SIGNWRITING MOUTH KISS WRINKLED -1DA50 SIGNWRITING MOUTH TENSE -1DA51 SIGNWRITING MOUTH TENSE FORWARD -1DA52 SIGNWRITING MOUTH TENSE SUCKED -1DA53 SIGNWRITING LIPS PRESSED TOGETHER -1DA54 SIGNWRITING LIP LOWER OVER UPPER -1DA55 SIGNWRITING LIP UPPER OVER LOWER -1DA56 SIGNWRITING MOUTH CORNERS -1DA57 SIGNWRITING MOUTH WRINKLES SINGLE -1DA58 SIGNWRITING MOUTH WRINKLES DOUBLE -1DA59 SIGNWRITING TONGUE STICKING OUT FAR -1DA5A SIGNWRITING TONGUE LICKING LIPS -1DA5B SIGNWRITING TONGUE TIP BETWEEN LIPS -1DA5C SIGNWRITING TONGUE TIP TOUCHING INSIDE MOUTH -1DA5D SIGNWRITING TONGUE INSIDE MOUTH RELAXED -1DA5E SIGNWRITING TONGUE MOVES AGAINST CHEEK -1DA5F SIGNWRITING TONGUE CENTRE STICKING OUT -1DA60 SIGNWRITING TONGUE CENTRE INSIDE MOUTH -1DA61 SIGNWRITING TEETH -1DA62 SIGNWRITING TEETH MOVEMENT -1DA63 SIGNWRITING TEETH ON TONGUE -1DA64 SIGNWRITING TEETH ON TONGUE MOVEMENT -1DA65 SIGNWRITING TEETH ON LIPS -1DA66 SIGNWRITING TEETH ON LIPS MOVEMENT -1DA67 SIGNWRITING TEETH BITE LIPS -1DA68 SIGNWRITING MOVEMENT-WALLPLANE JAW -1DA69 SIGNWRITING MOVEMENT-FLOORPLANE JAW -1DA6A SIGNWRITING NECK -1DA6B SIGNWRITING HAIR -1DA6C SIGNWRITING EXCITEMENT -1DA6D SIGNWRITING SHOULDER HIP SPINE -1DA6E SIGNWRITING SHOULDER HIP POSITIONS -1DA6F SIGNWRITING WALLPLANE SHOULDER HIP MOVE -1DA70 SIGNWRITING FLOORPLANE SHOULDER HIP MOVE -1DA71 SIGNWRITING SHOULDER TILTING FROM WAIST -1DA72 SIGNWRITING TORSO-WALLPLANE STRAIGHT STRETCH -1DA73 SIGNWRITING TORSO-WALLPLANE CURVED BEND -1DA74 SIGNWRITING TORSO-FLOORPLANE TWISTING -1DA75 SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS -1DA76 SIGNWRITING LIMB COMBINATION -1DA77 SIGNWRITING LIMB LENGTH-1 -1DA78 SIGNWRITING LIMB LENGTH-2 -1DA79 SIGNWRITING LIMB LENGTH-3 -1DA7A SIGNWRITING LIMB LENGTH-4 -1DA7B SIGNWRITING LIMB LENGTH-5 -1DA7C SIGNWRITING LIMB LENGTH-6 -1DA7D SIGNWRITING LIMB LENGTH-7 -1DA7E SIGNWRITING FINGER -1DA7F SIGNWRITING LOCATION-WALLPLANE SPACE -1DA80 SIGNWRITING LOCATION-FLOORPLANE SPACE -1DA81 SIGNWRITING LOCATION HEIGHT -1DA82 SIGNWRITING LOCATION WIDTH -1DA83 SIGNWRITING LOCATION DEPTH -1DA84 SIGNWRITING LOCATION HEAD NECK -1DA85 SIGNWRITING LOCATION TORSO -1DA86 SIGNWRITING LOCATION LIMBS DIGITS -1DA87 SIGNWRITING COMMA -1DA88 SIGNWRITING FULL STOP -1DA89 SIGNWRITING SEMICOLON -1DA8A SIGNWRITING COLON -1DA8B SIGNWRITING PARENTHESIS -1DA9B SIGNWRITING FILL MODIFIER-2 -1DA9C SIGNWRITING FILL MODIFIER-3 -1DA9D SIGNWRITING FILL MODIFIER-4 -1DA9E SIGNWRITING FILL MODIFIER-5 -1DA9F SIGNWRITING FILL MODIFIER-6 -1DAA1 SIGNWRITING ROTATION MODIFIER-2 -1DAA2 SIGNWRITING ROTATION MODIFIER-3 -1DAA3 SIGNWRITING ROTATION MODIFIER-4 -1DAA4 SIGNWRITING ROTATION MODIFIER-5 -1DAA5 SIGNWRITING ROTATION MODIFIER-6 -1DAA6 SIGNWRITING ROTATION MODIFIER-7 -1DAA7 SIGNWRITING ROTATION MODIFIER-8 -1DAA8 SIGNWRITING ROTATION MODIFIER-9 -1DAA9 SIGNWRITING ROTATION MODIFIER-10 -1DAAA SIGNWRITING ROTATION MODIFIER-11 -1DAAB SIGNWRITING ROTATION MODIFIER-12 -1DAAC SIGNWRITING ROTATION MODIFIER-13 -1DAAD SIGNWRITING ROTATION MODIFIER-14 -1DAAE SIGNWRITING ROTATION MODIFIER-15 -1DAAF SIGNWRITING ROTATION MODIFIER-16 -1E800 MENDE KIKAKUI SYLLABLE M001 KI -1E801 MENDE KIKAKUI SYLLABLE M002 KA -1E802 MENDE KIKAKUI SYLLABLE M003 KU -1E803 MENDE KIKAKUI SYLLABLE M065 KEE -1E804 MENDE KIKAKUI SYLLABLE M095 KE -1E805 MENDE KIKAKUI SYLLABLE M076 KOO -1E806 MENDE KIKAKUI SYLLABLE M048 KO -1E807 MENDE KIKAKUI SYLLABLE M179 KUA -1E808 MENDE KIKAKUI SYLLABLE M004 WI -1E809 MENDE KIKAKUI SYLLABLE M005 WA -1E80A MENDE KIKAKUI SYLLABLE M006 WU -1E80B MENDE KIKAKUI SYLLABLE M126 WEE -1E80C MENDE KIKAKUI SYLLABLE M118 WE -1E80D MENDE KIKAKUI SYLLABLE M114 WOO -1E80E MENDE KIKAKUI SYLLABLE M045 WO -1E80F MENDE KIKAKUI SYLLABLE M194 WUI -1E810 MENDE KIKAKUI SYLLABLE M143 WEI -1E811 MENDE KIKAKUI SYLLABLE M061 WVI -1E812 MENDE KIKAKUI SYLLABLE M049 WVA -1E813 MENDE KIKAKUI SYLLABLE M139 WVE -1E814 MENDE KIKAKUI SYLLABLE M007 MIN -1E815 MENDE KIKAKUI SYLLABLE M008 MAN -1E816 MENDE KIKAKUI SYLLABLE M009 MUN -1E817 MENDE KIKAKUI SYLLABLE M059 MEN -1E818 MENDE KIKAKUI SYLLABLE M094 MON -1E819 MENDE KIKAKUI SYLLABLE M154 MUAN -1E81A MENDE KIKAKUI SYLLABLE M189 MUEN -1E81B MENDE KIKAKUI SYLLABLE M010 BI -1E81C MENDE KIKAKUI SYLLABLE M011 BA -1E81D MENDE KIKAKUI SYLLABLE M012 BU -1E81E MENDE KIKAKUI SYLLABLE M150 BEE -1E81F MENDE KIKAKUI SYLLABLE M097 BE -1E820 MENDE KIKAKUI SYLLABLE M103 BOO -1E821 MENDE KIKAKUI SYLLABLE M138 BO -1E822 MENDE KIKAKUI SYLLABLE M013 I -1E823 MENDE KIKAKUI SYLLABLE M014 A -1E824 MENDE KIKAKUI SYLLABLE M015 U -1E825 MENDE KIKAKUI SYLLABLE M163 EE -1E826 MENDE KIKAKUI SYLLABLE M100 E -1E827 MENDE KIKAKUI SYLLABLE M165 OO -1E828 MENDE KIKAKUI SYLLABLE M147 O -1E829 MENDE KIKAKUI SYLLABLE M137 EI -1E82A MENDE KIKAKUI SYLLABLE M131 IN -1E82B MENDE KIKAKUI SYLLABLE M135 IN -1E82C MENDE KIKAKUI SYLLABLE M195 AN -1E82D MENDE KIKAKUI SYLLABLE M178 EN -1E82E MENDE KIKAKUI SYLLABLE M019 SI -1E82F MENDE KIKAKUI SYLLABLE M020 SA -1E830 MENDE KIKAKUI SYLLABLE M021 SU -1E831 MENDE KIKAKUI SYLLABLE M162 SEE -1E832 MENDE KIKAKUI SYLLABLE M116 SE -1E833 MENDE KIKAKUI SYLLABLE M136 SOO -1E834 MENDE KIKAKUI SYLLABLE M079 SO -1E835 MENDE KIKAKUI SYLLABLE M196 SIA -1E836 MENDE KIKAKUI SYLLABLE M025 LI -1E837 MENDE KIKAKUI SYLLABLE M026 LA -1E838 MENDE KIKAKUI SYLLABLE M027 LU -1E839 MENDE KIKAKUI SYLLABLE M084 LEE -1E83A MENDE KIKAKUI SYLLABLE M073 LE -1E83B MENDE KIKAKUI SYLLABLE M054 LOO -1E83C MENDE KIKAKUI SYLLABLE M153 LO -1E83D MENDE KIKAKUI SYLLABLE M110 LONG LE -1E83E MENDE KIKAKUI SYLLABLE M016 DI -1E83F MENDE KIKAKUI SYLLABLE M017 DA -1E840 MENDE KIKAKUI SYLLABLE M018 DU -1E841 MENDE KIKAKUI SYLLABLE M089 DEE -1E842 MENDE KIKAKUI SYLLABLE M180 DOO -1E843 MENDE KIKAKUI SYLLABLE M181 DO -1E844 MENDE KIKAKUI SYLLABLE M022 TI -1E845 MENDE KIKAKUI SYLLABLE M023 TA -1E846 MENDE KIKAKUI SYLLABLE M024 TU -1E847 MENDE KIKAKUI SYLLABLE M091 TEE -1E848 MENDE KIKAKUI SYLLABLE M055 TE -1E849 MENDE KIKAKUI SYLLABLE M104 TOO -1E84A MENDE KIKAKUI SYLLABLE M069 TO -1E84B MENDE KIKAKUI SYLLABLE M028 JI -1E84C MENDE KIKAKUI SYLLABLE M029 JA -1E84D MENDE KIKAKUI SYLLABLE M030 JU -1E84E MENDE KIKAKUI SYLLABLE M157 JEE -1E84F MENDE KIKAKUI SYLLABLE M113 JE -1E850 MENDE KIKAKUI SYLLABLE M160 JOO -1E851 MENDE KIKAKUI SYLLABLE M063 JO -1E852 MENDE KIKAKUI SYLLABLE M175 LONG JO -1E853 MENDE KIKAKUI SYLLABLE M031 YI -1E854 MENDE KIKAKUI SYLLABLE M032 YA -1E855 MENDE KIKAKUI SYLLABLE M033 YU -1E856 MENDE KIKAKUI SYLLABLE M109 YEE -1E857 MENDE KIKAKUI SYLLABLE M080 YE -1E858 MENDE KIKAKUI SYLLABLE M141 YOO -1E859 MENDE KIKAKUI SYLLABLE M121 YO -1E85A MENDE KIKAKUI SYLLABLE M034 FI -1E85B MENDE KIKAKUI SYLLABLE M035 FA -1E85C MENDE KIKAKUI SYLLABLE M036 FU -1E85D MENDE KIKAKUI SYLLABLE M078 FEE -1E85E MENDE KIKAKUI SYLLABLE M075 FE -1E85F MENDE KIKAKUI SYLLABLE M133 FOO -1E860 MENDE KIKAKUI SYLLABLE M088 FO -1E861 MENDE KIKAKUI SYLLABLE M197 FUA -1E862 MENDE KIKAKUI SYLLABLE M101 FAN -1E863 MENDE KIKAKUI SYLLABLE M037 NIN -1E864 MENDE KIKAKUI SYLLABLE M038 NAN -1E865 MENDE KIKAKUI SYLLABLE M039 NUN -1E866 MENDE KIKAKUI SYLLABLE M117 NEN -1E867 MENDE KIKAKUI SYLLABLE M169 NON -1E868 MENDE KIKAKUI SYLLABLE M176 HI -1E869 MENDE KIKAKUI SYLLABLE M041 HA -1E86A MENDE KIKAKUI SYLLABLE M186 HU -1E86B MENDE KIKAKUI SYLLABLE M040 HEE -1E86C MENDE KIKAKUI SYLLABLE M096 HE -1E86D MENDE KIKAKUI SYLLABLE M042 HOO -1E86E MENDE KIKAKUI SYLLABLE M140 HO -1E86F MENDE KIKAKUI SYLLABLE M083 HEEI -1E870 MENDE KIKAKUI SYLLABLE M128 HOOU -1E871 MENDE KIKAKUI SYLLABLE M053 HIN -1E872 MENDE KIKAKUI SYLLABLE M130 HAN -1E873 MENDE KIKAKUI SYLLABLE M087 HUN -1E874 MENDE KIKAKUI SYLLABLE M052 HEN -1E875 MENDE KIKAKUI SYLLABLE M193 HON -1E876 MENDE KIKAKUI SYLLABLE M046 HUAN -1E877 MENDE KIKAKUI SYLLABLE M090 NGGI -1E878 MENDE KIKAKUI SYLLABLE M043 NGGA -1E879 MENDE KIKAKUI SYLLABLE M082 NGGU -1E87A MENDE KIKAKUI SYLLABLE M115 NGGEE -1E87B MENDE KIKAKUI SYLLABLE M146 NGGE -1E87C MENDE KIKAKUI SYLLABLE M156 NGGOO -1E87D MENDE KIKAKUI SYLLABLE M120 NGGO -1E87E MENDE KIKAKUI SYLLABLE M159 NGGAA -1E87F MENDE KIKAKUI SYLLABLE M127 NGGUA -1E880 MENDE KIKAKUI SYLLABLE M086 LONG NGGE -1E881 MENDE KIKAKUI SYLLABLE M106 LONG NGGOO -1E882 MENDE KIKAKUI SYLLABLE M183 LONG NGGO -1E883 MENDE KIKAKUI SYLLABLE M155 GI -1E884 MENDE KIKAKUI SYLLABLE M111 GA -1E885 MENDE KIKAKUI SYLLABLE M168 GU -1E886 MENDE KIKAKUI SYLLABLE M190 GEE -1E887 MENDE KIKAKUI SYLLABLE M166 GUEI -1E888 MENDE KIKAKUI SYLLABLE M167 GUAN -1E889 MENDE KIKAKUI SYLLABLE M184 NGEN -1E88A MENDE KIKAKUI SYLLABLE M057 NGON -1E88B MENDE KIKAKUI SYLLABLE M177 NGUAN -1E88C MENDE KIKAKUI SYLLABLE M068 PI -1E88D MENDE KIKAKUI SYLLABLE M099 PA -1E88E MENDE KIKAKUI SYLLABLE M050 PU -1E88F MENDE KIKAKUI SYLLABLE M081 PEE -1E890 MENDE KIKAKUI SYLLABLE M051 PE -1E891 MENDE KIKAKUI SYLLABLE M102 POO -1E892 MENDE KIKAKUI SYLLABLE M066 PO -1E893 MENDE KIKAKUI SYLLABLE M145 MBI -1E894 MENDE KIKAKUI SYLLABLE M062 MBA -1E895 MENDE KIKAKUI SYLLABLE M122 MBU -1E896 MENDE KIKAKUI SYLLABLE M047 MBEE -1E897 MENDE KIKAKUI SYLLABLE M188 MBEE -1E898 MENDE KIKAKUI SYLLABLE M072 MBE -1E899 MENDE KIKAKUI SYLLABLE M172 MBOO -1E89A MENDE KIKAKUI SYLLABLE M174 MBO -1E89B MENDE KIKAKUI SYLLABLE M187 MBUU -1E89C MENDE KIKAKUI SYLLABLE M161 LONG MBE -1E89D MENDE KIKAKUI SYLLABLE M105 LONG MBOO -1E89E MENDE KIKAKUI SYLLABLE M142 LONG MBO -1E89F MENDE KIKAKUI SYLLABLE M132 KPI -1E8A0 MENDE KIKAKUI SYLLABLE M092 KPA -1E8A1 MENDE KIKAKUI SYLLABLE M074 KPU -1E8A2 MENDE KIKAKUI SYLLABLE M044 KPEE -1E8A3 MENDE KIKAKUI SYLLABLE M108 KPE -1E8A4 MENDE KIKAKUI SYLLABLE M112 KPOO -1E8A5 MENDE KIKAKUI SYLLABLE M158 KPO -1E8A6 MENDE KIKAKUI SYLLABLE M124 GBI -1E8A7 MENDE KIKAKUI SYLLABLE M056 GBA -1E8A8 MENDE KIKAKUI SYLLABLE M148 GBU -1E8A9 MENDE KIKAKUI SYLLABLE M093 GBEE -1E8AA MENDE KIKAKUI SYLLABLE M107 GBE -1E8AB MENDE KIKAKUI SYLLABLE M071 GBOO -1E8AC MENDE KIKAKUI SYLLABLE M070 GBO -1E8AD MENDE KIKAKUI SYLLABLE M171 RA -1E8AE MENDE KIKAKUI SYLLABLE M123 NDI -1E8AF MENDE KIKAKUI SYLLABLE M129 NDA -1E8B0 MENDE KIKAKUI SYLLABLE M125 NDU -1E8B1 MENDE KIKAKUI SYLLABLE M191 NDEE -1E8B2 MENDE KIKAKUI SYLLABLE M119 NDE -1E8B3 MENDE KIKAKUI SYLLABLE M067 NDOO -1E8B4 MENDE KIKAKUI SYLLABLE M064 NDO -1E8B5 MENDE KIKAKUI SYLLABLE M152 NJA -1E8B6 MENDE KIKAKUI SYLLABLE M192 NJU -1E8B7 MENDE KIKAKUI SYLLABLE M149 NJEE -1E8B8 MENDE KIKAKUI SYLLABLE M134 NJOO -1E8B9 MENDE KIKAKUI SYLLABLE M182 VI -1E8BA MENDE KIKAKUI SYLLABLE M185 VA -1E8BB MENDE KIKAKUI SYLLABLE M151 VU -1E8BC MENDE KIKAKUI SYLLABLE M173 VEE -1E8BD MENDE KIKAKUI SYLLABLE M085 VE -1E8BE MENDE KIKAKUI SYLLABLE M144 VOO -1E8BF MENDE KIKAKUI SYLLABLE M077 VO -1E8C0 MENDE KIKAKUI SYLLABLE M164 NYIN -1E8C1 MENDE KIKAKUI SYLLABLE M058 NYAN -1E8C2 MENDE KIKAKUI SYLLABLE M170 NYUN -1E8C3 MENDE KIKAKUI SYLLABLE M098 NYEN -1E8C4 MENDE KIKAKUI SYLLABLE M060 NYON -1E8C7 MENDE KIKAKUI DIGIT ONE -1E8C8 MENDE KIKAKUI DIGIT TWO -1E8C9 MENDE KIKAKUI DIGIT THREE -1E8CA MENDE KIKAKUI DIGIT FOUR -1E8CB MENDE KIKAKUI DIGIT FIVE -1E8CC MENDE KIKAKUI DIGIT SIX -1E8CD MENDE KIKAKUI DIGIT SEVEN -1E8CE MENDE KIKAKUI DIGIT EIGHT -1E8CF MENDE KIKAKUI DIGIT NINE -1E8D0 MENDE KIKAKUI COMBINING NUMBER TEENS -1E8D1 MENDE KIKAKUI COMBINING NUMBER TENS -1E8D2 MENDE KIKAKUI COMBINING NUMBER HUNDREDS -1E8D3 MENDE KIKAKUI COMBINING NUMBER THOUSANDS -1E8D4 MENDE KIKAKUI COMBINING NUMBER TEN THOUSANDS -1E8D5 MENDE KIKAKUI COMBINING NUMBER HUNDRED THOUSANDS -1E8D6 MENDE KIKAKUI COMBINING NUMBER MILLIONS -1EE00 ARABIC MATHEMATICAL ALEF -1EE01 ARABIC MATHEMATICAL BEH -1EE02 ARABIC MATHEMATICAL JEEM -1EE03 ARABIC MATHEMATICAL DAL -1EE05 ARABIC MATHEMATICAL WAW -1EE06 ARABIC MATHEMATICAL ZAIN -1EE07 ARABIC MATHEMATICAL HAH -1EE08 ARABIC MATHEMATICAL TAH -1EE09 ARABIC MATHEMATICAL YEH -1EE0A ARABIC MATHEMATICAL KAF -1EE0B ARABIC MATHEMATICAL LAM -1EE0C ARABIC MATHEMATICAL MEEM -1EE0D ARABIC MATHEMATICAL NOON -1EE0E ARABIC MATHEMATICAL SEEN -1EE0F ARABIC MATHEMATICAL AIN -1EE10 ARABIC MATHEMATICAL FEH -1EE11 ARABIC MATHEMATICAL SAD -1EE12 ARABIC MATHEMATICAL QAF -1EE13 ARABIC MATHEMATICAL REH -1EE14 ARABIC MATHEMATICAL SHEEN -1EE15 ARABIC MATHEMATICAL TEH -1EE16 ARABIC MATHEMATICAL THEH -1EE17 ARABIC MATHEMATICAL KHAH -1EE18 ARABIC MATHEMATICAL THAL -1EE19 ARABIC MATHEMATICAL DAD -1EE1A ARABIC MATHEMATICAL ZAH -1EE1B ARABIC MATHEMATICAL GHAIN -1EE1C ARABIC MATHEMATICAL DOTLESS BEH -1EE1D ARABIC MATHEMATICAL DOTLESS NOON -1EE1E ARABIC MATHEMATICAL DOTLESS FEH -1EE1F ARABIC MATHEMATICAL DOTLESS QAF -1EE21 ARABIC MATHEMATICAL INITIAL BEH -1EE22 ARABIC MATHEMATICAL INITIAL JEEM -1EE24 ARABIC MATHEMATICAL INITIAL HEH -1EE27 ARABIC MATHEMATICAL INITIAL HAH -1EE29 ARABIC MATHEMATICAL INITIAL YEH -1EE2A ARABIC MATHEMATICAL INITIAL KAF -1EE2B ARABIC MATHEMATICAL INITIAL LAM -1EE2C ARABIC MATHEMATICAL INITIAL MEEM -1EE2D ARABIC MATHEMATICAL INITIAL NOON -1EE2E ARABIC MATHEMATICAL INITIAL SEEN -1EE2F ARABIC MATHEMATICAL INITIAL AIN -1EE30 ARABIC MATHEMATICAL INITIAL FEH -1EE31 ARABIC MATHEMATICAL INITIAL SAD -1EE32 ARABIC MATHEMATICAL INITIAL QAF -1EE34 ARABIC MATHEMATICAL INITIAL SHEEN -1EE35 ARABIC MATHEMATICAL INITIAL TEH -1EE36 ARABIC MATHEMATICAL INITIAL THEH -1EE37 ARABIC MATHEMATICAL INITIAL KHAH -1EE39 ARABIC MATHEMATICAL INITIAL DAD -1EE3B ARABIC MATHEMATICAL INITIAL GHAIN -1EE42 ARABIC MATHEMATICAL TAILED JEEM -1EE47 ARABIC MATHEMATICAL TAILED HAH -1EE49 ARABIC MATHEMATICAL TAILED YEH -1EE4B ARABIC MATHEMATICAL TAILED LAM -1EE4D ARABIC MATHEMATICAL TAILED NOON -1EE4E ARABIC MATHEMATICAL TAILED SEEN -1EE4F ARABIC MATHEMATICAL TAILED AIN -1EE51 ARABIC MATHEMATICAL TAILED SAD -1EE52 ARABIC MATHEMATICAL TAILED QAF -1EE54 ARABIC MATHEMATICAL TAILED SHEEN -1EE57 ARABIC MATHEMATICAL TAILED KHAH -1EE59 ARABIC MATHEMATICAL TAILED DAD -1EE5B ARABIC MATHEMATICAL TAILED GHAIN -1EE5D ARABIC MATHEMATICAL TAILED DOTLESS NOON -1EE5F ARABIC MATHEMATICAL TAILED DOTLESS QAF -1EE61 ARABIC MATHEMATICAL STRETCHED BEH -1EE62 ARABIC MATHEMATICAL STRETCHED JEEM -1EE64 ARABIC MATHEMATICAL STRETCHED HEH -1EE67 ARABIC MATHEMATICAL STRETCHED HAH -1EE68 ARABIC MATHEMATICAL STRETCHED TAH -1EE69 ARABIC MATHEMATICAL STRETCHED YEH -1EE6A ARABIC MATHEMATICAL STRETCHED KAF -1EE6C ARABIC MATHEMATICAL STRETCHED MEEM -1EE6D ARABIC MATHEMATICAL STRETCHED NOON -1EE6E ARABIC MATHEMATICAL STRETCHED SEEN -1EE6F ARABIC MATHEMATICAL STRETCHED AIN -1EE70 ARABIC MATHEMATICAL STRETCHED FEH -1EE71 ARABIC MATHEMATICAL STRETCHED SAD -1EE72 ARABIC MATHEMATICAL STRETCHED QAF -1EE74 ARABIC MATHEMATICAL STRETCHED SHEEN -1EE75 ARABIC MATHEMATICAL STRETCHED TEH -1EE76 ARABIC MATHEMATICAL STRETCHED THEH -1EE77 ARABIC MATHEMATICAL STRETCHED KHAH -1EE79 ARABIC MATHEMATICAL STRETCHED DAD -1EE7A ARABIC MATHEMATICAL STRETCHED ZAH -1EE7B ARABIC MATHEMATICAL STRETCHED GHAIN -1EE7C ARABIC MATHEMATICAL STRETCHED DOTLESS BEH -1EE7E ARABIC MATHEMATICAL STRETCHED DOTLESS FEH -1EE80 ARABIC MATHEMATICAL LOOPED ALEF -1EE81 ARABIC MATHEMATICAL LOOPED BEH -1EE82 ARABIC MATHEMATICAL LOOPED JEEM -1EE83 ARABIC MATHEMATICAL LOOPED DAL -1EE84 ARABIC MATHEMATICAL LOOPED HEH -1EE85 ARABIC MATHEMATICAL LOOPED WAW -1EE86 ARABIC MATHEMATICAL LOOPED ZAIN -1EE87 ARABIC MATHEMATICAL LOOPED HAH -1EE88 ARABIC MATHEMATICAL LOOPED TAH -1EE89 ARABIC MATHEMATICAL LOOPED YEH -1EE8B ARABIC MATHEMATICAL LOOPED LAM -1EE8C ARABIC MATHEMATICAL LOOPED MEEM -1EE8D ARABIC MATHEMATICAL LOOPED NOON -1EE8E ARABIC MATHEMATICAL LOOPED SEEN -1EE8F ARABIC MATHEMATICAL LOOPED AIN -1EE90 ARABIC MATHEMATICAL LOOPED FEH -1EE91 ARABIC MATHEMATICAL LOOPED SAD -1EE92 ARABIC MATHEMATICAL LOOPED QAF -1EE93 ARABIC MATHEMATICAL LOOPED REH -1EE94 ARABIC MATHEMATICAL LOOPED SHEEN -1EE95 ARABIC MATHEMATICAL LOOPED TEH -1EE96 ARABIC MATHEMATICAL LOOPED THEH -1EE97 ARABIC MATHEMATICAL LOOPED KHAH -1EE98 ARABIC MATHEMATICAL LOOPED THAL -1EE99 ARABIC MATHEMATICAL LOOPED DAD -1EE9A ARABIC MATHEMATICAL LOOPED ZAH -1EE9B ARABIC MATHEMATICAL LOOPED GHAIN -1EEA1 ARABIC MATHEMATICAL DOUBLE-STRUCK BEH -1EEA2 ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM -1EEA3 ARABIC MATHEMATICAL DOUBLE-STRUCK DAL -1EEA5 ARABIC MATHEMATICAL DOUBLE-STRUCK WAW -1EEA6 ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN -1EEA7 ARABIC MATHEMATICAL DOUBLE-STRUCK HAH -1EEA8 ARABIC MATHEMATICAL DOUBLE-STRUCK TAH -1EEA9 ARABIC MATHEMATICAL DOUBLE-STRUCK YEH -1EEAB ARABIC MATHEMATICAL DOUBLE-STRUCK LAM -1EEAC ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM -1EEAD ARABIC MATHEMATICAL DOUBLE-STRUCK NOON -1EEAE ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN -1EEAF ARABIC MATHEMATICAL DOUBLE-STRUCK AIN -1EEB0 ARABIC MATHEMATICAL DOUBLE-STRUCK FEH -1EEB1 ARABIC MATHEMATICAL DOUBLE-STRUCK SAD -1EEB2 ARABIC MATHEMATICAL DOUBLE-STRUCK QAF -1EEB3 ARABIC MATHEMATICAL DOUBLE-STRUCK REH -1EEB4 ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN -1EEB5 ARABIC MATHEMATICAL DOUBLE-STRUCK TEH -1EEB6 ARABIC MATHEMATICAL DOUBLE-STRUCK THEH -1EEB7 ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH -1EEB8 ARABIC MATHEMATICAL DOUBLE-STRUCK THAL -1EEB9 ARABIC MATHEMATICAL DOUBLE-STRUCK DAD -1EEBA ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH -1EEBB ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN -1EEF0 ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL -1EEF1 ARABIC MATHEMATICAL OPERATOR HAH WITH DAL -1F000 MAHJONG TILE EAST WIND -1F001 MAHJONG TILE SOUTH WIND -1F002 MAHJONG TILE WEST WIND -1F003 MAHJONG TILE NORTH WIND -1F004 MAHJONG TILE RED DRAGON -1F005 MAHJONG TILE GREEN DRAGON -1F006 MAHJONG TILE WHITE DRAGON -1F007 MAHJONG TILE ONE OF CHARACTERS -1F008 MAHJONG TILE TWO OF CHARACTERS -1F009 MAHJONG TILE THREE OF CHARACTERS -1F00A MAHJONG TILE FOUR OF CHARACTERS -1F00B MAHJONG TILE FIVE OF CHARACTERS -1F00C MAHJONG TILE SIX OF CHARACTERS -1F00D MAHJONG TILE SEVEN OF CHARACTERS -1F00E MAHJONG TILE EIGHT OF CHARACTERS -1F00F MAHJONG TILE NINE OF CHARACTERS -1F010 MAHJONG TILE ONE OF BAMBOOS -1F011 MAHJONG TILE TWO OF BAMBOOS -1F012 MAHJONG TILE THREE OF BAMBOOS -1F013 MAHJONG TILE FOUR OF BAMBOOS -1F014 MAHJONG TILE FIVE OF BAMBOOS -1F015 MAHJONG TILE SIX OF BAMBOOS -1F016 MAHJONG TILE SEVEN OF BAMBOOS -1F017 MAHJONG TILE EIGHT OF BAMBOOS -1F018 MAHJONG TILE NINE OF BAMBOOS -1F019 MAHJONG TILE ONE OF CIRCLES -1F01A MAHJONG TILE TWO OF CIRCLES -1F01B MAHJONG TILE THREE OF CIRCLES -1F01C MAHJONG TILE FOUR OF CIRCLES -1F01D MAHJONG TILE FIVE OF CIRCLES -1F01E MAHJONG TILE SIX OF CIRCLES -1F01F MAHJONG TILE SEVEN OF CIRCLES -1F020 MAHJONG TILE EIGHT OF CIRCLES -1F021 MAHJONG TILE NINE OF CIRCLES -1F022 MAHJONG TILE PLUM -1F023 MAHJONG TILE ORCHID -1F024 MAHJONG TILE BAMBOO -1F025 MAHJONG TILE CHRYSANTHEMUM -1F026 MAHJONG TILE SPRING -1F027 MAHJONG TILE SUMMER -1F028 MAHJONG TILE AUTUMN -1F029 MAHJONG TILE WINTER -1F02A MAHJONG TILE JOKER -1F02B MAHJONG TILE BACK -1F030 DOMINO TILE HORIZONTAL BACK -1F031 DOMINO TILE HORIZONTAL-00-00 -1F032 DOMINO TILE HORIZONTAL-00-01 -1F033 DOMINO TILE HORIZONTAL-00-02 -1F034 DOMINO TILE HORIZONTAL-00-03 -1F035 DOMINO TILE HORIZONTAL-00-04 -1F036 DOMINO TILE HORIZONTAL-00-05 -1F037 DOMINO TILE HORIZONTAL-00-06 -1F038 DOMINO TILE HORIZONTAL-01-00 -1F039 DOMINO TILE HORIZONTAL-01-01 -1F03A DOMINO TILE HORIZONTAL-01-02 -1F03B DOMINO TILE HORIZONTAL-01-03 -1F03C DOMINO TILE HORIZONTAL-01-04 -1F03D DOMINO TILE HORIZONTAL-01-05 -1F03E DOMINO TILE HORIZONTAL-01-06 -1F03F DOMINO TILE HORIZONTAL-02-00 -1F040 DOMINO TILE HORIZONTAL-02-01 -1F041 DOMINO TILE HORIZONTAL-02-02 -1F042 DOMINO TILE HORIZONTAL-02-03 -1F043 DOMINO TILE HORIZONTAL-02-04 -1F044 DOMINO TILE HORIZONTAL-02-05 -1F045 DOMINO TILE HORIZONTAL-02-06 -1F046 DOMINO TILE HORIZONTAL-03-00 -1F047 DOMINO TILE HORIZONTAL-03-01 -1F048 DOMINO TILE HORIZONTAL-03-02 -1F049 DOMINO TILE HORIZONTAL-03-03 -1F04A DOMINO TILE HORIZONTAL-03-04 -1F04B DOMINO TILE HORIZONTAL-03-05 -1F04C DOMINO TILE HORIZONTAL-03-06 -1F04D DOMINO TILE HORIZONTAL-04-00 -1F04E DOMINO TILE HORIZONTAL-04-01 -1F04F DOMINO TILE HORIZONTAL-04-02 -1F050 DOMINO TILE HORIZONTAL-04-03 -1F051 DOMINO TILE HORIZONTAL-04-04 -1F052 DOMINO TILE HORIZONTAL-04-05 -1F053 DOMINO TILE HORIZONTAL-04-06 -1F054 DOMINO TILE HORIZONTAL-05-00 -1F055 DOMINO TILE HORIZONTAL-05-01 -1F056 DOMINO TILE HORIZONTAL-05-02 -1F057 DOMINO TILE HORIZONTAL-05-03 -1F058 DOMINO TILE HORIZONTAL-05-04 -1F059 DOMINO TILE HORIZONTAL-05-05 -1F05A DOMINO TILE HORIZONTAL-05-06 -1F05B DOMINO TILE HORIZONTAL-06-00 -1F05C DOMINO TILE HORIZONTAL-06-01 -1F05D DOMINO TILE HORIZONTAL-06-02 -1F05E DOMINO TILE HORIZONTAL-06-03 -1F05F DOMINO TILE HORIZONTAL-06-04 -1F060 DOMINO TILE HORIZONTAL-06-05 -1F061 DOMINO TILE HORIZONTAL-06-06 -1F062 DOMINO TILE VERTICAL BACK -1F063 DOMINO TILE VERTICAL-00-00 -1F064 DOMINO TILE VERTICAL-00-01 -1F065 DOMINO TILE VERTICAL-00-02 -1F066 DOMINO TILE VERTICAL-00-03 -1F067 DOMINO TILE VERTICAL-00-04 -1F068 DOMINO TILE VERTICAL-00-05 -1F069 DOMINO TILE VERTICAL-00-06 -1F06A DOMINO TILE VERTICAL-01-00 -1F06B DOMINO TILE VERTICAL-01-01 -1F06C DOMINO TILE VERTICAL-01-02 -1F06D DOMINO TILE VERTICAL-01-03 -1F06E DOMINO TILE VERTICAL-01-04 -1F06F DOMINO TILE VERTICAL-01-05 -1F070 DOMINO TILE VERTICAL-01-06 -1F071 DOMINO TILE VERTICAL-02-00 -1F072 DOMINO TILE VERTICAL-02-01 -1F073 DOMINO TILE VERTICAL-02-02 -1F074 DOMINO TILE VERTICAL-02-03 -1F075 DOMINO TILE VERTICAL-02-04 -1F076 DOMINO TILE VERTICAL-02-05 -1F077 DOMINO TILE VERTICAL-02-06 -1F078 DOMINO TILE VERTICAL-03-00 -1F079 DOMINO TILE VERTICAL-03-01 -1F07A DOMINO TILE VERTICAL-03-02 -1F07B DOMINO TILE VERTICAL-03-03 -1F07C DOMINO TILE VERTICAL-03-04 -1F07D DOMINO TILE VERTICAL-03-05 -1F07E DOMINO TILE VERTICAL-03-06 -1F07F DOMINO TILE VERTICAL-04-00 -1F080 DOMINO TILE VERTICAL-04-01 -1F081 DOMINO TILE VERTICAL-04-02 -1F082 DOMINO TILE VERTICAL-04-03 -1F083 DOMINO TILE VERTICAL-04-04 -1F084 DOMINO TILE VERTICAL-04-05 -1F085 DOMINO TILE VERTICAL-04-06 -1F086 DOMINO TILE VERTICAL-05-00 -1F087 DOMINO TILE VERTICAL-05-01 -1F088 DOMINO TILE VERTICAL-05-02 -1F089 DOMINO TILE VERTICAL-05-03 -1F08A DOMINO TILE VERTICAL-05-04 -1F08B DOMINO TILE VERTICAL-05-05 -1F08C DOMINO TILE VERTICAL-05-06 -1F08D DOMINO TILE VERTICAL-06-00 -1F08E DOMINO TILE VERTICAL-06-01 -1F08F DOMINO TILE VERTICAL-06-02 -1F090 DOMINO TILE VERTICAL-06-03 -1F091 DOMINO TILE VERTICAL-06-04 -1F092 DOMINO TILE VERTICAL-06-05 -1F093 DOMINO TILE VERTICAL-06-06 -1F0A0 PLAYING CARD BACK -1F0A1 PLAYING CARD ACE OF SPADES -1F0A2 PLAYING CARD TWO OF SPADES -1F0A3 PLAYING CARD THREE OF SPADES -1F0A4 PLAYING CARD FOUR OF SPADES -1F0A5 PLAYING CARD FIVE OF SPADES -1F0A6 PLAYING CARD SIX OF SPADES -1F0A7 PLAYING CARD SEVEN OF SPADES -1F0A8 PLAYING CARD EIGHT OF SPADES -1F0A9 PLAYING CARD NINE OF SPADES -1F0AA PLAYING CARD TEN OF SPADES -1F0AB PLAYING CARD JACK OF SPADES -1F0AC PLAYING CARD KNIGHT OF SPADES -1F0AD PLAYING CARD QUEEN OF SPADES -1F0AE PLAYING CARD KING OF SPADES -1F0B1 PLAYING CARD ACE OF HEARTS -1F0B2 PLAYING CARD TWO OF HEARTS -1F0B3 PLAYING CARD THREE OF HEARTS -1F0B4 PLAYING CARD FOUR OF HEARTS -1F0B5 PLAYING CARD FIVE OF HEARTS -1F0B6 PLAYING CARD SIX OF HEARTS -1F0B7 PLAYING CARD SEVEN OF HEARTS -1F0B8 PLAYING CARD EIGHT OF HEARTS -1F0B9 PLAYING CARD NINE OF HEARTS -1F0BA PLAYING CARD TEN OF HEARTS -1F0BB PLAYING CARD JACK OF HEARTS -1F0BC PLAYING CARD KNIGHT OF HEARTS -1F0BD PLAYING CARD QUEEN OF HEARTS -1F0BE PLAYING CARD KING OF HEARTS -1F0BF PLAYING CARD RED JOKER -1F0C1 PLAYING CARD ACE OF DIAMONDS -1F0C2 PLAYING CARD TWO OF DIAMONDS -1F0C3 PLAYING CARD THREE OF DIAMONDS -1F0C4 PLAYING CARD FOUR OF DIAMONDS -1F0C5 PLAYING CARD FIVE OF DIAMONDS -1F0C6 PLAYING CARD SIX OF DIAMONDS -1F0C7 PLAYING CARD SEVEN OF DIAMONDS -1F0C8 PLAYING CARD EIGHT OF DIAMONDS -1F0C9 PLAYING CARD NINE OF DIAMONDS -1F0CA PLAYING CARD TEN OF DIAMONDS -1F0CB PLAYING CARD JACK OF DIAMONDS -1F0CC PLAYING CARD KNIGHT OF DIAMONDS -1F0CD PLAYING CARD QUEEN OF DIAMONDS -1F0CE PLAYING CARD KING OF DIAMONDS -1F0CF PLAYING CARD BLACK JOKER -1F0D1 PLAYING CARD ACE OF CLUBS -1F0D2 PLAYING CARD TWO OF CLUBS -1F0D3 PLAYING CARD THREE OF CLUBS -1F0D4 PLAYING CARD FOUR OF CLUBS -1F0D5 PLAYING CARD FIVE OF CLUBS -1F0D6 PLAYING CARD SIX OF CLUBS -1F0D7 PLAYING CARD SEVEN OF CLUBS -1F0D8 PLAYING CARD EIGHT OF CLUBS -1F0D9 PLAYING CARD NINE OF CLUBS -1F0DA PLAYING CARD TEN OF CLUBS -1F0DB PLAYING CARD JACK OF CLUBS -1F0DC PLAYING CARD KNIGHT OF CLUBS -1F0DD PLAYING CARD QUEEN OF CLUBS -1F0DE PLAYING CARD KING OF CLUBS -1F0DF PLAYING CARD WHITE JOKER -1F0E0 PLAYING CARD FOOL -1F0E1 PLAYING CARD TRUMP-1 -1F0E2 PLAYING CARD TRUMP-2 -1F0E3 PLAYING CARD TRUMP-3 -1F0E4 PLAYING CARD TRUMP-4 -1F0E5 PLAYING CARD TRUMP-5 -1F0E6 PLAYING CARD TRUMP-6 -1F0E7 PLAYING CARD TRUMP-7 -1F0E8 PLAYING CARD TRUMP-8 -1F0E9 PLAYING CARD TRUMP-9 -1F0EA PLAYING CARD TRUMP-10 -1F0EB PLAYING CARD TRUMP-11 -1F0EC PLAYING CARD TRUMP-12 -1F0ED PLAYING CARD TRUMP-13 -1F0EE PLAYING CARD TRUMP-14 -1F0EF PLAYING CARD TRUMP-15 -1F0F0 PLAYING CARD TRUMP-16 -1F0F1 PLAYING CARD TRUMP-17 -1F0F2 PLAYING CARD TRUMP-18 -1F0F3 PLAYING CARD TRUMP-19 -1F0F4 PLAYING CARD TRUMP-20 -1F0F5 PLAYING CARD TRUMP-21 -1F100 DIGIT ZERO FULL STOP -1F101 DIGIT ZERO COMMA -1F102 DIGIT ONE COMMA -1F103 DIGIT TWO COMMA -1F104 DIGIT THREE COMMA -1F105 DIGIT FOUR COMMA -1F106 DIGIT FIVE COMMA -1F107 DIGIT SIX COMMA -1F108 DIGIT SEVEN COMMA -1F109 DIGIT EIGHT COMMA -1F10A DIGIT NINE COMMA -1F10B DINGBAT CIRCLED SANS-SERIF DIGIT ZERO -1F10C DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO -1F110 PARENTHESIZED LATIN CAPITAL LETTER A -1F111 PARENTHESIZED LATIN CAPITAL LETTER B -1F112 PARENTHESIZED LATIN CAPITAL LETTER C -1F113 PARENTHESIZED LATIN CAPITAL LETTER D -1F114 PARENTHESIZED LATIN CAPITAL LETTER E -1F115 PARENTHESIZED LATIN CAPITAL LETTER F -1F116 PARENTHESIZED LATIN CAPITAL LETTER G -1F117 PARENTHESIZED LATIN CAPITAL LETTER H -1F118 PARENTHESIZED LATIN CAPITAL LETTER I -1F119 PARENTHESIZED LATIN CAPITAL LETTER J -1F11A PARENTHESIZED LATIN CAPITAL LETTER K -1F11B PARENTHESIZED LATIN CAPITAL LETTER L -1F11C PARENTHESIZED LATIN CAPITAL LETTER M -1F11D PARENTHESIZED LATIN CAPITAL LETTER N -1F11E PARENTHESIZED LATIN CAPITAL LETTER O -1F11F PARENTHESIZED LATIN CAPITAL LETTER P -1F120 PARENTHESIZED LATIN CAPITAL LETTER Q -1F121 PARENTHESIZED LATIN CAPITAL LETTER R -1F122 PARENTHESIZED LATIN CAPITAL LETTER S -1F123 PARENTHESIZED LATIN CAPITAL LETTER T -1F124 PARENTHESIZED LATIN CAPITAL LETTER U -1F125 PARENTHESIZED LATIN CAPITAL LETTER V -1F126 PARENTHESIZED LATIN CAPITAL LETTER W -1F127 PARENTHESIZED LATIN CAPITAL LETTER X -1F128 PARENTHESIZED LATIN CAPITAL LETTER Y -1F129 PARENTHESIZED LATIN CAPITAL LETTER Z -1F12A TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S -1F12B CIRCLED ITALIC LATIN CAPITAL LETTER C -1F12C CIRCLED ITALIC LATIN CAPITAL LETTER R -1F12D CIRCLED CD -1F12E CIRCLED WZ -1F130 SQUARED LATIN CAPITAL LETTER A -1F131 SQUARED LATIN CAPITAL LETTER B -1F132 SQUARED LATIN CAPITAL LETTER C -1F133 SQUARED LATIN CAPITAL LETTER D -1F134 SQUARED LATIN CAPITAL LETTER E -1F135 SQUARED LATIN CAPITAL LETTER F -1F136 SQUARED LATIN CAPITAL LETTER G -1F137 SQUARED LATIN CAPITAL LETTER H -1F138 SQUARED LATIN CAPITAL LETTER I -1F139 SQUARED LATIN CAPITAL LETTER J -1F13A SQUARED LATIN CAPITAL LETTER K -1F13B SQUARED LATIN CAPITAL LETTER L -1F13C SQUARED LATIN CAPITAL LETTER M -1F13D SQUARED LATIN CAPITAL LETTER N -1F13E SQUARED LATIN CAPITAL LETTER O -1F13F SQUARED LATIN CAPITAL LETTER P -1F140 SQUARED LATIN CAPITAL LETTER Q -1F141 SQUARED LATIN CAPITAL LETTER R -1F142 SQUARED LATIN CAPITAL LETTER S -1F143 SQUARED LATIN CAPITAL LETTER T -1F144 SQUARED LATIN CAPITAL LETTER U -1F145 SQUARED LATIN CAPITAL LETTER V -1F146 SQUARED LATIN CAPITAL LETTER W -1F147 SQUARED LATIN CAPITAL LETTER X -1F148 SQUARED LATIN CAPITAL LETTER Y -1F149 SQUARED LATIN CAPITAL LETTER Z -1F14A SQUARED HV -1F14B SQUARED MV -1F14C SQUARED SD -1F14D SQUARED SS -1F14E SQUARED PPV -1F14F SQUARED WC -1F150 NEGATIVE CIRCLED LATIN CAPITAL LETTER A -1F151 NEGATIVE CIRCLED LATIN CAPITAL LETTER B -1F152 NEGATIVE CIRCLED LATIN CAPITAL LETTER C -1F153 NEGATIVE CIRCLED LATIN CAPITAL LETTER D -1F154 NEGATIVE CIRCLED LATIN CAPITAL LETTER E -1F155 NEGATIVE CIRCLED LATIN CAPITAL LETTER F -1F156 NEGATIVE CIRCLED LATIN CAPITAL LETTER G -1F157 NEGATIVE CIRCLED LATIN CAPITAL LETTER H -1F158 NEGATIVE CIRCLED LATIN CAPITAL LETTER I -1F159 NEGATIVE CIRCLED LATIN CAPITAL LETTER J -1F15A NEGATIVE CIRCLED LATIN CAPITAL LETTER K -1F15B NEGATIVE CIRCLED LATIN CAPITAL LETTER L -1F15C NEGATIVE CIRCLED LATIN CAPITAL LETTER M -1F15D NEGATIVE CIRCLED LATIN CAPITAL LETTER N -1F15E NEGATIVE CIRCLED LATIN CAPITAL LETTER O -1F15F NEGATIVE CIRCLED LATIN CAPITAL LETTER P -1F160 NEGATIVE CIRCLED LATIN CAPITAL LETTER Q -1F161 NEGATIVE CIRCLED LATIN CAPITAL LETTER R -1F162 NEGATIVE CIRCLED LATIN CAPITAL LETTER S -1F163 NEGATIVE CIRCLED LATIN CAPITAL LETTER T -1F164 NEGATIVE CIRCLED LATIN CAPITAL LETTER U -1F165 NEGATIVE CIRCLED LATIN CAPITAL LETTER V -1F166 NEGATIVE CIRCLED LATIN CAPITAL LETTER W -1F167 NEGATIVE CIRCLED LATIN CAPITAL LETTER X -1F168 NEGATIVE CIRCLED LATIN CAPITAL LETTER Y -1F169 NEGATIVE CIRCLED LATIN CAPITAL LETTER Z -1F16A RAISED MC SIGN -1F16B RAISED MD SIGN -1F170 NEGATIVE SQUARED LATIN CAPITAL LETTER A -1F171 NEGATIVE SQUARED LATIN CAPITAL LETTER B -1F172 NEGATIVE SQUARED LATIN CAPITAL LETTER C -1F173 NEGATIVE SQUARED LATIN CAPITAL LETTER D -1F174 NEGATIVE SQUARED LATIN CAPITAL LETTER E -1F175 NEGATIVE SQUARED LATIN CAPITAL LETTER F -1F176 NEGATIVE SQUARED LATIN CAPITAL LETTER G -1F177 NEGATIVE SQUARED LATIN CAPITAL LETTER H -1F178 NEGATIVE SQUARED LATIN CAPITAL LETTER I -1F179 NEGATIVE SQUARED LATIN CAPITAL LETTER J -1F17A NEGATIVE SQUARED LATIN CAPITAL LETTER K -1F17B NEGATIVE SQUARED LATIN CAPITAL LETTER L -1F17C NEGATIVE SQUARED LATIN CAPITAL LETTER M -1F17D NEGATIVE SQUARED LATIN CAPITAL LETTER N -1F17E NEGATIVE SQUARED LATIN CAPITAL LETTER O -1F17F NEGATIVE SQUARED LATIN CAPITAL LETTER P -1F180 NEGATIVE SQUARED LATIN CAPITAL LETTER Q -1F181 NEGATIVE SQUARED LATIN CAPITAL LETTER R -1F182 NEGATIVE SQUARED LATIN CAPITAL LETTER S -1F183 NEGATIVE SQUARED LATIN CAPITAL LETTER T -1F184 NEGATIVE SQUARED LATIN CAPITAL LETTER U -1F185 NEGATIVE SQUARED LATIN CAPITAL LETTER V -1F186 NEGATIVE SQUARED LATIN CAPITAL LETTER W -1F187 NEGATIVE SQUARED LATIN CAPITAL LETTER X -1F188 NEGATIVE SQUARED LATIN CAPITAL LETTER Y -1F189 NEGATIVE SQUARED LATIN CAPITAL LETTER Z -1F18A CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P -1F18B NEGATIVE SQUARED IC -1F18C NEGATIVE SQUARED PA -1F18D NEGATIVE SQUARED SA -1F18E NEGATIVE SQUARED AB -1F18F NEGATIVE SQUARED WC -1F190 SQUARE DJ -1F191 SQUARED CL -1F192 SQUARED COOL -1F193 SQUARED FREE -1F194 SQUARED ID -1F195 SQUARED NEW -1F196 SQUARED NG -1F197 SQUARED OK -1F198 SQUARED SOS -1F199 SQUARED UP WITH EXCLAMATION MARK -1F19A SQUARED VS -1F1E6 REGIONAL INDICATOR SYMBOL LETTER A -1F1E7 REGIONAL INDICATOR SYMBOL LETTER B -1F1E8 REGIONAL INDICATOR SYMBOL LETTER C -1F1E9 REGIONAL INDICATOR SYMBOL LETTER D -1F1EA REGIONAL INDICATOR SYMBOL LETTER E -1F1EB REGIONAL INDICATOR SYMBOL LETTER F -1F1EC REGIONAL INDICATOR SYMBOL LETTER G -1F1ED REGIONAL INDICATOR SYMBOL LETTER H -1F1EE REGIONAL INDICATOR SYMBOL LETTER I -1F1EF REGIONAL INDICATOR SYMBOL LETTER J -1F1F0 REGIONAL INDICATOR SYMBOL LETTER K -1F1F1 REGIONAL INDICATOR SYMBOL LETTER L -1F1F2 REGIONAL INDICATOR SYMBOL LETTER M -1F1F3 REGIONAL INDICATOR SYMBOL LETTER N -1F1F4 REGIONAL INDICATOR SYMBOL LETTER O -1F1F5 REGIONAL INDICATOR SYMBOL LETTER P -1F1F6 REGIONAL INDICATOR SYMBOL LETTER Q -1F1F7 REGIONAL INDICATOR SYMBOL LETTER R -1F1F8 REGIONAL INDICATOR SYMBOL LETTER S -1F1F9 REGIONAL INDICATOR SYMBOL LETTER T -1F1FA REGIONAL INDICATOR SYMBOL LETTER U -1F1FB REGIONAL INDICATOR SYMBOL LETTER V -1F1FC REGIONAL INDICATOR SYMBOL LETTER W -1F1FD REGIONAL INDICATOR SYMBOL LETTER X -1F1FE REGIONAL INDICATOR SYMBOL LETTER Y -1F1FF REGIONAL INDICATOR SYMBOL LETTER Z -1F200 SQUARE HIRAGANA HOKA -1F201 SQUARED KATAKANA KOKO -1F202 SQUARED KATAKANA SA -1F210 SQUARED CJK UNIFIED IDEOGRAPH-624B -1F211 SQUARED CJK UNIFIED IDEOGRAPH-5B57 -1F212 SQUARED CJK UNIFIED IDEOGRAPH-53CC -1F213 SQUARED KATAKANA DE -1F214 SQUARED CJK UNIFIED IDEOGRAPH-4E8C -1F215 SQUARED CJK UNIFIED IDEOGRAPH-591A -1F216 SQUARED CJK UNIFIED IDEOGRAPH-89E3 -1F217 SQUARED CJK UNIFIED IDEOGRAPH-5929 -1F218 SQUARED CJK UNIFIED IDEOGRAPH-4EA4 -1F219 SQUARED CJK UNIFIED IDEOGRAPH-6620 -1F21A SQUARED CJK UNIFIED IDEOGRAPH-7121 -1F21B SQUARED CJK UNIFIED IDEOGRAPH-6599 -1F21C SQUARED CJK UNIFIED IDEOGRAPH-524D -1F21D SQUARED CJK UNIFIED IDEOGRAPH-5F8C -1F21E SQUARED CJK UNIFIED IDEOGRAPH-518D -1F21F SQUARED CJK UNIFIED IDEOGRAPH-65B0 -1F220 SQUARED CJK UNIFIED IDEOGRAPH-521D -1F221 SQUARED CJK UNIFIED IDEOGRAPH-7D42 -1F222 SQUARED CJK UNIFIED IDEOGRAPH-751F -1F223 SQUARED CJK UNIFIED IDEOGRAPH-8CA9 -1F224 SQUARED CJK UNIFIED IDEOGRAPH-58F0 -1F225 SQUARED CJK UNIFIED IDEOGRAPH-5439 -1F226 SQUARED CJK UNIFIED IDEOGRAPH-6F14 -1F227 SQUARED CJK UNIFIED IDEOGRAPH-6295 -1F228 SQUARED CJK UNIFIED IDEOGRAPH-6355 -1F229 SQUARED CJK UNIFIED IDEOGRAPH-4E00 -1F22A SQUARED CJK UNIFIED IDEOGRAPH-4E09 -1F22B SQUARED CJK UNIFIED IDEOGRAPH-904A -1F22C SQUARED CJK UNIFIED IDEOGRAPH-5DE6 -1F22D SQUARED CJK UNIFIED IDEOGRAPH-4E2D -1F22E SQUARED CJK UNIFIED IDEOGRAPH-53F3 -1F22F SQUARED CJK UNIFIED IDEOGRAPH-6307 -1F230 SQUARED CJK UNIFIED IDEOGRAPH-8D70 -1F231 SQUARED CJK UNIFIED IDEOGRAPH-6253 -1F232 SQUARED CJK UNIFIED IDEOGRAPH-7981 -1F233 SQUARED CJK UNIFIED IDEOGRAPH-7A7A -1F234 SQUARED CJK UNIFIED IDEOGRAPH-5408 -1F235 SQUARED CJK UNIFIED IDEOGRAPH-6E80 -1F236 SQUARED CJK UNIFIED IDEOGRAPH-6709 -1F237 SQUARED CJK UNIFIED IDEOGRAPH-6708 -1F238 SQUARED CJK UNIFIED IDEOGRAPH-7533 -1F239 SQUARED CJK UNIFIED IDEOGRAPH-5272 -1F23A SQUARED CJK UNIFIED IDEOGRAPH-55B6 -1F240 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C -1F241 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09 -1F242 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C -1F243 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89 -1F244 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9 -1F245 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253 -1F246 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7 -1F247 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD -1F248 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557 -1F250 CIRCLED IDEOGRAPH ADVANTAGE -1F251 CIRCLED IDEOGRAPH ACCEPT -1F300 CYCLONE -1F301 FOGGY -1F302 CLOSED UMBRELLA -1F303 NIGHT WITH STARS -1F304 SUNRISE OVER MOUNTAINS -1F305 SUNRISE -1F306 CITYSCAPE AT DUSK -1F307 SUNSET OVER BUILDINGS -1F308 RAINBOW -1F309 BRIDGE AT NIGHT -1F30A WATER WAVE -1F30B VOLCANO -1F30C MILKY WAY -1F30D EARTH GLOBE EUROPE-AFRICA -1F30E EARTH GLOBE AMERICAS -1F30F EARTH GLOBE ASIA-AUSTRALIA -1F310 GLOBE WITH MERIDIANS -1F311 NEW MOON SYMBOL -1F312 WAXING CRESCENT MOON SYMBOL -1F313 FIRST QUARTER MOON SYMBOL -1F314 WAXING GIBBOUS MOON SYMBOL -1F315 FULL MOON SYMBOL -1F316 WANING GIBBOUS MOON SYMBOL -1F317 LAST QUARTER MOON SYMBOL -1F318 WANING CRESCENT MOON SYMBOL -1F319 CRESCENT MOON -1F31A NEW MOON WITH FACE -1F31B FIRST QUARTER MOON WITH FACE -1F31C LAST QUARTER MOON WITH FACE -1F31D FULL MOON WITH FACE -1F31E SUN WITH FACE -1F31F GLOWING STAR -1F320 SHOOTING STAR -1F321 THERMOMETER -1F322 BLACK DROPLET -1F323 WHITE SUN -1F324 WHITE SUN WITH SMALL CLOUD -1F325 WHITE SUN BEHIND CLOUD -1F326 WHITE SUN BEHIND CLOUD WITH RAIN -1F327 CLOUD WITH RAIN -1F328 CLOUD WITH SNOW -1F329 CLOUD WITH LIGHTNING -1F32A CLOUD WITH TORNADO -1F32B FOG -1F32C WIND BLOWING FACE -1F32D HOT DOG -1F32E TACO -1F32F BURRITO -1F330 CHESTNUT -1F331 SEEDLING -1F332 EVERGREEN TREE -1F333 DECIDUOUS TREE -1F334 PALM TREE -1F335 CACTUS -1F336 HOT PEPPER -1F337 TULIP -1F338 CHERRY BLOSSOM -1F339 ROSE -1F33A HIBISCUS -1F33B SUNFLOWER -1F33C BLOSSOM -1F33D EAR OF MAIZE -1F33E EAR OF RICE -1F33F HERB -1F340 FOUR LEAF CLOVER -1F341 MAPLE LEAF -1F342 FALLEN LEAF -1F343 LEAF FLUTTERING IN WIND -1F344 MUSHROOM -1F345 TOMATO -1F346 AUBERGINE -1F347 GRAPES -1F348 MELON -1F349 WATERMELON -1F34A TANGERINE -1F34B LEMON -1F34C BANANA -1F34D PINEAPPLE -1F34E RED APPLE -1F34F GREEN APPLE -1F350 PEAR -1F351 PEACH -1F352 CHERRIES -1F353 STRAWBERRY -1F354 HAMBURGER -1F355 SLICE OF PIZZA -1F356 MEAT ON BONE -1F357 POULTRY LEG -1F358 RICE CRACKER -1F359 RICE BALL -1F35A COOKED RICE -1F35B CURRY AND RICE -1F35C STEAMING BOWL -1F35D SPAGHETTI -1F35E BREAD -1F35F FRENCH FRIES -1F360 ROASTED SWEET POTATO -1F361 DANGO -1F362 ODEN -1F363 SUSHI -1F364 FRIED SHRIMP -1F365 FISH CAKE WITH SWIRL DESIGN -1F366 SOFT ICE CREAM -1F367 SHAVED ICE -1F368 ICE CREAM -1F369 DOUGHNUT -1F36A COOKIE -1F36B CHOCOLATE BAR -1F36C CANDY -1F36D LOLLIPOP -1F36E CUSTARD -1F36F HONEY POT -1F370 SHORTCAKE -1F371 BENTO BOX -1F372 POT OF FOOD -1F373 COOKING -1F374 FORK AND KNIFE -1F375 TEACUP WITHOUT HANDLE -1F376 SAKE BOTTLE AND CUP -1F377 WINE GLASS -1F378 COCKTAIL GLASS -1F379 TROPICAL DRINK -1F37A BEER MUG -1F37B CLINKING BEER MUGS -1F37C BABY BOTTLE -1F37D FORK AND KNIFE WITH PLATE -1F37E BOTTLE WITH POPPING CORK -1F37F POPCORN -1F380 RIBBON -1F381 WRAPPED PRESENT -1F382 BIRTHDAY CAKE -1F383 JACK-O-LANTERN -1F384 CHRISTMAS TREE -1F385 FATHER CHRISTMAS -1F386 FIREWORKS -1F387 FIREWORK SPARKLER -1F388 BALLOON -1F389 PARTY POPPER -1F38A CONFETTI BALL -1F38B TANABATA TREE -1F38C CROSSED FLAGS -1F38D PINE DECORATION -1F38E JAPANESE DOLLS -1F38F CARP STREAMER -1F390 WIND CHIME -1F391 MOON VIEWING CEREMONY -1F392 SCHOOL SATCHEL -1F393 GRADUATION CAP -1F394 HEART WITH TIP ON THE LEFT -1F395 BOUQUET OF FLOWERS -1F396 MILITARY MEDAL -1F397 REMINDER RIBBON -1F398 MUSICAL KEYBOARD WITH JACKS -1F399 STUDIO MICROPHONE -1F39A LEVEL SLIDER -1F39B CONTROL KNOBS -1F39C BEAMED ASCENDING MUSICAL NOTES -1F39D BEAMED DESCENDING MUSICAL NOTES -1F39E FILM FRAMES -1F39F ADMISSION TICKETS -1F3A0 CAROUSEL HORSE -1F3A1 FERRIS WHEEL -1F3A2 ROLLER COASTER -1F3A3 FISHING POLE AND FISH -1F3A4 MICROPHONE -1F3A5 MOVIE CAMERA -1F3A6 CINEMA -1F3A7 HEADPHONE -1F3A8 ARTIST PALETTE -1F3A9 TOP HAT -1F3AA CIRCUS TENT -1F3AB TICKET -1F3AC CLAPPER BOARD -1F3AD PERFORMING ARTS -1F3AE VIDEO GAME -1F3AF DIRECT HIT -1F3B0 SLOT MACHINE -1F3B1 BILLIARDS -1F3B2 GAME DIE -1F3B3 BOWLING -1F3B4 FLOWER PLAYING CARDS -1F3B5 MUSICAL NOTE -1F3B6 MULTIPLE MUSICAL NOTES -1F3B7 SAXOPHONE -1F3B8 GUITAR -1F3B9 MUSICAL KEYBOARD -1F3BA TRUMPET -1F3BB VIOLIN -1F3BC MUSICAL SCORE -1F3BD RUNNING SHIRT WITH SASH -1F3BE TENNIS RACQUET AND BALL -1F3BF SKI AND SKI BOOT -1F3C0 BASKETBALL AND HOOP -1F3C1 CHEQUERED FLAG -1F3C2 SNOWBOARDER -1F3C3 RUNNER -1F3C4 SURFER -1F3C5 SPORTS MEDAL -1F3C6 TROPHY -1F3C7 HORSE RACING -1F3C8 AMERICAN FOOTBALL -1F3C9 RUGBY FOOTBALL -1F3CA SWIMMER -1F3CB WEIGHT LIFTER -1F3CC GOLFER -1F3CD RACING MOTORCYCLE -1F3CE RACING CAR -1F3CF CRICKET BAT AND BALL -1F3D0 VOLLEYBALL -1F3D1 FIELD HOCKEY STICK AND BALL -1F3D2 ICE HOCKEY STICK AND PUCK -1F3D3 TABLE TENNIS PADDLE AND BALL -1F3D4 SNOW CAPPED MOUNTAIN -1F3D5 CAMPING -1F3D6 BEACH WITH UMBRELLA -1F3D7 BUILDING CONSTRUCTION -1F3D8 HOUSE BUILDINGS -1F3D9 CITYSCAPE -1F3DA DERELICT HOUSE BUILDING -1F3DB CLASSICAL BUILDING -1F3DC DESERT -1F3DD DESERT ISLAND -1F3DE NATIONAL PARK -1F3DF STADIUM -1F3E0 HOUSE BUILDING -1F3E1 HOUSE WITH GARDEN -1F3E2 OFFICE BUILDING -1F3E3 JAPANESE POST OFFICE -1F3E4 EUROPEAN POST OFFICE -1F3E5 HOSPITAL -1F3E6 BANK -1F3E7 AUTOMATED TELLER MACHINE -1F3E8 HOTEL -1F3E9 LOVE HOTEL -1F3EA CONVENIENCE STORE -1F3EB SCHOOL -1F3EC DEPARTMENT STORE -1F3ED FACTORY -1F3EE IZAKAYA LANTERN -1F3EF JAPANESE CASTLE -1F3F0 EUROPEAN CASTLE -1F3F1 WHITE PENNANT -1F3F2 BLACK PENNANT -1F3F3 WAVING WHITE FLAG -1F3F4 WAVING BLACK FLAG -1F3F5 ROSETTE -1F3F6 BLACK ROSETTE -1F3F7 LABEL -1F3F8 BADMINTON RACQUET AND SHUTTLECOCK -1F3F9 BOW AND ARROW -1F3FA AMPHORA -1F3FB EMOJI MODIFIER FITZPATRICK TYPE-1-2 -1F3FC EMOJI MODIFIER FITZPATRICK TYPE-3 -1F3FD EMOJI MODIFIER FITZPATRICK TYPE-4 -1F3FE EMOJI MODIFIER FITZPATRICK TYPE-5 -1F3FF EMOJI MODIFIER FITZPATRICK TYPE-6 -1F400 RAT -1F401 MOUSE -1F402 OX -1F403 WATER BUFFALO -1F404 COW -1F405 TIGER -1F406 LEOPARD -1F407 RABBIT -1F408 CAT -1F409 DRAGON -1F40A CROCODILE -1F40B WHALE -1F40C SNAIL -1F40D SNAKE -1F40E HORSE -1F40F RAM -1F410 GOAT -1F411 SHEEP -1F412 MONKEY -1F413 ROOSTER -1F414 CHICKEN -1F415 DOG -1F416 PIG -1F417 BOAR -1F418 ELEPHANT -1F419 OCTOPUS -1F41A SPIRAL SHELL -1F41B BUG -1F41C ANT -1F41D HONEYBEE -1F41E LADY BEETLE -1F41F FISH -1F420 TROPICAL FISH -1F421 BLOWFISH -1F422 TURTLE -1F423 HATCHING CHICK -1F424 BABY CHICK -1F425 FRONT-FACING BABY CHICK -1F426 BIRD -1F427 PENGUIN -1F428 KOALA -1F429 POODLE -1F42A DROMEDARY CAMEL -1F42B BACTRIAN CAMEL -1F42C DOLPHIN -1F42D MOUSE FACE -1F42E COW FACE -1F42F TIGER FACE -1F430 RABBIT FACE -1F431 CAT FACE -1F432 DRAGON FACE -1F433 SPOUTING WHALE -1F434 HORSE FACE -1F435 MONKEY FACE -1F436 DOG FACE -1F437 PIG FACE -1F438 FROG FACE -1F439 HAMSTER FACE -1F43A WOLF FACE -1F43B BEAR FACE -1F43C PANDA FACE -1F43D PIG NOSE -1F43E PAW PRINTS -1F43F CHIPMUNK -1F440 EYES -1F441 EYE -1F442 EAR -1F443 NOSE -1F444 MOUTH -1F445 TONGUE -1F446 WHITE UP POINTING BACKHAND INDEX -1F447 WHITE DOWN POINTING BACKHAND INDEX -1F448 WHITE LEFT POINTING BACKHAND INDEX -1F449 WHITE RIGHT POINTING BACKHAND INDEX -1F44A FISTED HAND SIGN -1F44B WAVING HAND SIGN -1F44C OK HAND SIGN -1F44D THUMBS UP SIGN -1F44E THUMBS DOWN SIGN -1F44F CLAPPING HANDS SIGN -1F450 OPEN HANDS SIGN -1F451 CROWN -1F452 WOMANS HAT -1F453 EYEGLASSES -1F454 NECKTIE -1F455 T-SHIRT -1F456 JEANS -1F457 DRESS -1F458 KIMONO -1F459 BIKINI -1F45A WOMANS CLOTHES -1F45B PURSE -1F45C HANDBAG -1F45D POUCH -1F45E MANS SHOE -1F45F ATHLETIC SHOE -1F460 HIGH-HEELED SHOE -1F461 WOMANS SANDAL -1F462 WOMANS BOOTS -1F463 FOOTPRINTS -1F464 BUST IN SILHOUETTE -1F465 BUSTS IN SILHOUETTE -1F466 BOY -1F467 GIRL -1F468 MAN -1F469 WOMAN -1F46A FAMILY -1F46B MAN AND WOMAN HOLDING HANDS -1F46C TWO MEN HOLDING HANDS -1F46D TWO WOMEN HOLDING HANDS -1F46E POLICE OFFICER -1F46F WOMAN WITH BUNNY EARS -1F470 BRIDE WITH VEIL -1F471 PERSON WITH BLOND HAIR -1F472 MAN WITH GUA PI MAO -1F473 MAN WITH TURBAN -1F474 OLDER MAN -1F475 OLDER WOMAN -1F476 BABY -1F477 CONSTRUCTION WORKER -1F478 PRINCESS -1F479 JAPANESE OGRE -1F47A JAPANESE GOBLIN -1F47B GHOST -1F47C BABY ANGEL -1F47D EXTRATERRESTRIAL ALIEN -1F47E ALIEN MONSTER -1F47F IMP -1F480 SKULL -1F481 INFORMATION DESK PERSON -1F482 GUARDSMAN -1F483 DANCER -1F484 LIPSTICK -1F485 NAIL POLISH -1F486 FACE MASSAGE -1F487 HAIRCUT -1F488 BARBER POLE -1F489 SYRINGE -1F48A PILL -1F48B KISS MARK -1F48C LOVE LETTER -1F48D RING -1F48E GEM STONE -1F48F KISS -1F490 BOUQUET -1F491 COUPLE WITH HEART -1F492 WEDDING -1F493 BEATING HEART -1F494 BROKEN HEART -1F495 TWO HEARTS -1F496 SPARKLING HEART -1F497 GROWING HEART -1F498 HEART WITH ARROW -1F499 BLUE HEART -1F49A GREEN HEART -1F49B YELLOW HEART -1F49C PURPLE HEART -1F49D HEART WITH RIBBON -1F49E REVOLVING HEARTS -1F49F HEART DECORATION -1F4A0 DIAMOND SHAPE WITH A DOT INSIDE -1F4A1 ELECTRIC LIGHT BULB -1F4A2 ANGER SYMBOL -1F4A3 BOMB -1F4A4 SLEEPING SYMBOL -1F4A5 COLLISION SYMBOL -1F4A6 SPLASHING SWEAT SYMBOL -1F4A7 DROPLET -1F4A8 DASH SYMBOL -1F4A9 PILE OF POO -1F4AA FLEXED BICEPS -1F4AB DIZZY SYMBOL -1F4AC SPEECH BALLOON -1F4AD THOUGHT BALLOON -1F4AE WHITE FLOWER -1F4AF HUNDRED POINTS SYMBOL -1F4B0 MONEY BAG -1F4B1 CURRENCY EXCHANGE -1F4B2 HEAVY DOLLAR SIGN -1F4B3 CREDIT CARD -1F4B4 BANKNOTE WITH YEN SIGN -1F4B5 BANKNOTE WITH DOLLAR SIGN -1F4B6 BANKNOTE WITH EURO SIGN -1F4B7 BANKNOTE WITH POUND SIGN -1F4B8 MONEY WITH WINGS -1F4B9 CHART WITH UPWARDS TREND AND YEN SIGN -1F4BA SEAT -1F4BB PERSONAL COMPUTER -1F4BC BRIEFCASE -1F4BD MINIDISC -1F4BE FLOPPY DISK -1F4BF OPTICAL DISC -1F4C0 DVD -1F4C1 FILE FOLDER -1F4C2 OPEN FILE FOLDER -1F4C3 PAGE WITH CURL -1F4C4 PAGE FACING UP -1F4C5 CALENDAR -1F4C6 TEAR-OFF CALENDAR -1F4C7 CARD INDEX -1F4C8 CHART WITH UPWARDS TREND -1F4C9 CHART WITH DOWNWARDS TREND -1F4CA BAR CHART -1F4CB CLIPBOARD -1F4CC PUSHPIN -1F4CD ROUND PUSHPIN -1F4CE PAPERCLIP -1F4CF STRAIGHT RULER -1F4D0 TRIANGULAR RULER -1F4D1 BOOKMARK TABS -1F4D2 LEDGER -1F4D3 NOTEBOOK -1F4D4 NOTEBOOK WITH DECORATIVE COVER -1F4D5 CLOSED BOOK -1F4D6 OPEN BOOK -1F4D7 GREEN BOOK -1F4D8 BLUE BOOK -1F4D9 ORANGE BOOK -1F4DA BOOKS -1F4DB NAME BADGE -1F4DC SCROLL -1F4DD MEMO -1F4DE TELEPHONE RECEIVER -1F4DF PAGER -1F4E0 FAX MACHINE -1F4E1 SATELLITE ANTENNA -1F4E2 PUBLIC ADDRESS LOUDSPEAKER -1F4E3 CHEERING MEGAPHONE -1F4E4 OUTBOX TRAY -1F4E5 INBOX TRAY -1F4E6 PACKAGE -1F4E7 E-MAIL SYMBOL -1F4E8 INCOMING ENVELOPE -1F4E9 ENVELOPE WITH DOWNWARDS ARROW ABOVE -1F4EA CLOSED MAILBOX WITH LOWERED FLAG -1F4EB CLOSED MAILBOX WITH RAISED FLAG -1F4EC OPEN MAILBOX WITH RAISED FLAG -1F4ED OPEN MAILBOX WITH LOWERED FLAG -1F4EE POSTBOX -1F4EF POSTAL HORN -1F4F0 NEWSPAPER -1F4F1 MOBILE PHONE -1F4F2 MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT -1F4F3 VIBRATION MODE -1F4F4 MOBILE PHONE OFF -1F4F5 NO MOBILE PHONES -1F4F6 ANTENNA WITH BARS -1F4F7 CAMERA -1F4F8 CAMERA WITH FLASH -1F4F9 VIDEO CAMERA -1F4FA TELEVISION -1F4FB RADIO -1F4FC VIDEOCASSETTE -1F4FD FILM PROJECTOR -1F4FE PORTABLE STEREO -1F4FF PRAYER BEADS -1F500 TWISTED RIGHTWARDS ARROWS -1F501 CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS -1F502 CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY -1F503 CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS -1F504 ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS -1F505 LOW BRIGHTNESS SYMBOL -1F506 HIGH BRIGHTNESS SYMBOL -1F507 SPEAKER WITH CANCELLATION STROKE -1F508 SPEAKER -1F509 SPEAKER WITH ONE SOUND WAVE -1F50A SPEAKER WITH THREE SOUND WAVES -1F50B BATTERY -1F50C ELECTRIC PLUG -1F50D LEFT-POINTING MAGNIFYING GLASS -1F50E RIGHT-POINTING MAGNIFYING GLASS -1F50F LOCK WITH INK PEN -1F510 CLOSED LOCK WITH KEY -1F511 KEY -1F512 LOCK -1F513 OPEN LOCK -1F514 BELL -1F515 BELL WITH CANCELLATION STROKE -1F516 BOOKMARK -1F517 LINK SYMBOL -1F518 RADIO BUTTON -1F519 BACK WITH LEFTWARDS ARROW ABOVE -1F51A END WITH LEFTWARDS ARROW ABOVE -1F51B ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE -1F51C SOON WITH RIGHTWARDS ARROW ABOVE -1F51D TOP WITH UPWARDS ARROW ABOVE -1F51E NO ONE UNDER EIGHTEEN SYMBOL -1F51F KEYCAP TEN -1F520 INPUT SYMBOL FOR LATIN CAPITAL LETTERS -1F521 INPUT SYMBOL FOR LATIN SMALL LETTERS -1F522 INPUT SYMBOL FOR NUMBERS -1F523 INPUT SYMBOL FOR SYMBOLS -1F524 INPUT SYMBOL FOR LATIN LETTERS -1F525 FIRE -1F526 ELECTRIC TORCH -1F527 WRENCH -1F528 HAMMER -1F529 NUT AND BOLT -1F52A HOCHO -1F52B PISTOL -1F52C MICROSCOPE -1F52D TELESCOPE -1F52E CRYSTAL BALL -1F52F SIX POINTED STAR WITH MIDDLE DOT -1F530 JAPANESE SYMBOL FOR BEGINNER -1F531 TRIDENT EMBLEM -1F532 BLACK SQUARE BUTTON -1F533 WHITE SQUARE BUTTON -1F534 LARGE RED CIRCLE -1F535 LARGE BLUE CIRCLE -1F536 LARGE ORANGE DIAMOND -1F537 LARGE BLUE DIAMOND -1F538 SMALL ORANGE DIAMOND -1F539 SMALL BLUE DIAMOND -1F53A UP-POINTING RED TRIANGLE -1F53B DOWN-POINTING RED TRIANGLE -1F53C UP-POINTING SMALL RED TRIANGLE -1F53D DOWN-POINTING SMALL RED TRIANGLE -1F53E LOWER RIGHT SHADOWED WHITE CIRCLE -1F53F UPPER RIGHT SHADOWED WHITE CIRCLE -1F540 CIRCLED CROSS POMMEE -1F541 CROSS POMMEE WITH HALF-CIRCLE BELOW -1F542 CROSS POMMEE -1F543 NOTCHED LEFT SEMICIRCLE WITH THREE DOTS -1F544 NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS -1F545 SYMBOL FOR MARKS CHAPTER -1F546 WHITE LATIN CROSS -1F547 HEAVY LATIN CROSS -1F548 CELTIC CROSS -1F549 OM SYMBOL -1F54A DOVE OF PEACE -1F54B KAABA -1F54C MOSQUE -1F54D SYNAGOGUE -1F54E MENORAH WITH NINE BRANCHES -1F54F BOWL OF HYGIEIA -1F550 CLOCK FACE ONE OCLOCK -1F551 CLOCK FACE TWO OCLOCK -1F552 CLOCK FACE THREE OCLOCK -1F553 CLOCK FACE FOUR OCLOCK -1F554 CLOCK FACE FIVE OCLOCK -1F555 CLOCK FACE SIX OCLOCK -1F556 CLOCK FACE SEVEN OCLOCK -1F557 CLOCK FACE EIGHT OCLOCK -1F558 CLOCK FACE NINE OCLOCK -1F559 CLOCK FACE TEN OCLOCK -1F55A CLOCK FACE ELEVEN OCLOCK -1F55B CLOCK FACE TWELVE OCLOCK -1F55C CLOCK FACE ONE-THIRTY -1F55D CLOCK FACE TWO-THIRTY -1F55E CLOCK FACE THREE-THIRTY -1F55F CLOCK FACE FOUR-THIRTY -1F560 CLOCK FACE FIVE-THIRTY -1F561 CLOCK FACE SIX-THIRTY -1F562 CLOCK FACE SEVEN-THIRTY -1F563 CLOCK FACE EIGHT-THIRTY -1F564 CLOCK FACE NINE-THIRTY -1F565 CLOCK FACE TEN-THIRTY -1F566 CLOCK FACE ELEVEN-THIRTY -1F567 CLOCK FACE TWELVE-THIRTY -1F568 RIGHT SPEAKER -1F569 RIGHT SPEAKER WITH ONE SOUND WAVE -1F56A RIGHT SPEAKER WITH THREE SOUND WAVES -1F56B BULLHORN -1F56C BULLHORN WITH SOUND WAVES -1F56D RINGING BELL -1F56E BOOK -1F56F CANDLE -1F570 MANTELPIECE CLOCK -1F571 BLACK SKULL AND CROSSBONES -1F572 NO PIRACY -1F573 HOLE -1F574 MAN IN BUSINESS SUIT LEVITATING -1F575 SLEUTH OR SPY -1F576 DARK SUNGLASSES -1F577 SPIDER -1F578 SPIDER WEB -1F579 JOYSTICK -1F57B LEFT HAND TELEPHONE RECEIVER -1F57C TELEPHONE RECEIVER WITH PAGE -1F57D RIGHT HAND TELEPHONE RECEIVER -1F57E WHITE TOUCHTONE TELEPHONE -1F57F BLACK TOUCHTONE TELEPHONE -1F580 TELEPHONE ON TOP OF MODEM -1F581 CLAMSHELL MOBILE PHONE -1F582 BACK OF ENVELOPE -1F583 STAMPED ENVELOPE -1F584 ENVELOPE WITH LIGHTNING -1F585 FLYING ENVELOPE -1F586 PEN OVER STAMPED ENVELOPE -1F587 LINKED PAPERCLIPS -1F588 BLACK PUSHPIN -1F589 LOWER LEFT PENCIL -1F58A LOWER LEFT BALLPOINT PEN -1F58B LOWER LEFT FOUNTAIN PEN -1F58C LOWER LEFT PAINTBRUSH -1F58D LOWER LEFT CRAYON -1F58E LEFT WRITING HAND -1F58F TURNED OK HAND SIGN -1F590 RAISED HAND WITH FINGERS SPLAYED -1F591 REVERSED RAISED HAND WITH FINGERS SPLAYED -1F592 REVERSED THUMBS UP SIGN -1F593 REVERSED THUMBS DOWN SIGN -1F594 REVERSED VICTORY HAND -1F595 REVERSED HAND WITH MIDDLE FINGER EXTENDED -1F596 RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS -1F597 WHITE DOWN POINTING LEFT HAND INDEX -1F598 SIDEWAYS WHITE LEFT POINTING INDEX -1F599 SIDEWAYS WHITE RIGHT POINTING INDEX -1F59A SIDEWAYS BLACK LEFT POINTING INDEX -1F59B SIDEWAYS BLACK RIGHT POINTING INDEX -1F59C BLACK LEFT POINTING BACKHAND INDEX -1F59D BLACK RIGHT POINTING BACKHAND INDEX -1F59E SIDEWAYS WHITE UP POINTING INDEX -1F59F SIDEWAYS WHITE DOWN POINTING INDEX -1F5A0 SIDEWAYS BLACK UP POINTING INDEX -1F5A1 SIDEWAYS BLACK DOWN POINTING INDEX -1F5A2 BLACK UP POINTING BACKHAND INDEX -1F5A3 BLACK DOWN POINTING BACKHAND INDEX -1F5A5 DESKTOP COMPUTER -1F5A6 KEYBOARD AND MOUSE -1F5A7 THREE NETWORKED COMPUTERS -1F5A8 PRINTER -1F5A9 POCKET CALCULATOR -1F5AA BLACK HARD SHELL FLOPPY DISK -1F5AB WHITE HARD SHELL FLOPPY DISK -1F5AC SOFT SHELL FLOPPY DISK -1F5AD TAPE CARTRIDGE -1F5AE WIRED KEYBOARD -1F5AF ONE BUTTON MOUSE -1F5B0 TWO BUTTON MOUSE -1F5B1 THREE BUTTON MOUSE -1F5B2 TRACKBALL -1F5B3 OLD PERSONAL COMPUTER -1F5B4 HARD DISK -1F5B5 SCREEN -1F5B6 PRINTER ICON -1F5B7 FAX ICON -1F5B8 OPTICAL DISC ICON -1F5B9 DOCUMENT WITH TEXT -1F5BA DOCUMENT WITH TEXT AND PICTURE -1F5BB DOCUMENT WITH PICTURE -1F5BC FRAME WITH PICTURE -1F5BD FRAME WITH TILES -1F5BE FRAME WITH AN X -1F5BF BLACK FOLDER -1F5C0 FOLDER -1F5C1 OPEN FOLDER -1F5C2 CARD INDEX DIVIDERS -1F5C3 CARD FILE BOX -1F5C4 FILE CABINET -1F5C5 EMPTY NOTE -1F5C6 EMPTY NOTE PAGE -1F5C7 EMPTY NOTE PAD -1F5C8 NOTE -1F5C9 NOTE PAGE -1F5CA NOTE PAD -1F5CB EMPTY DOCUMENT -1F5CC EMPTY PAGE -1F5CD EMPTY PAGES -1F5CE DOCUMENT -1F5CF PAGE -1F5D0 PAGES -1F5D1 WASTEBASKET -1F5D2 SPIRAL NOTE PAD -1F5D3 SPIRAL CALENDAR PAD -1F5D4 DESKTOP WINDOW -1F5D5 MINIMIZE -1F5D6 MAXIMIZE -1F5D7 OVERLAP -1F5D8 CLOCKWISE RIGHT AND LEFT SEMICIRCLE ARROWS -1F5D9 CANCELLATION X -1F5DA INCREASE FONT SIZE SYMBOL -1F5DB DECREASE FONT SIZE SYMBOL -1F5DC COMPRESSION -1F5DD OLD KEY -1F5DE ROLLED-UP NEWSPAPER -1F5DF PAGE WITH CIRCLED TEXT -1F5E0 STOCK CHART -1F5E1 DAGGER KNIFE -1F5E2 LIPS -1F5E3 SPEAKING HEAD IN SILHOUETTE -1F5E4 THREE RAYS ABOVE -1F5E5 THREE RAYS BELOW -1F5E6 THREE RAYS LEFT -1F5E7 THREE RAYS RIGHT -1F5E8 LEFT SPEECH BUBBLE -1F5E9 RIGHT SPEECH BUBBLE -1F5EA TWO SPEECH BUBBLES -1F5EB THREE SPEECH BUBBLES -1F5EC LEFT THOUGHT BUBBLE -1F5ED RIGHT THOUGHT BUBBLE -1F5EE LEFT ANGER BUBBLE -1F5EF RIGHT ANGER BUBBLE -1F5F0 MOOD BUBBLE -1F5F1 LIGHTNING MOOD BUBBLE -1F5F2 LIGHTNING MOOD -1F5F3 BALLOT BOX WITH BALLOT -1F5F4 BALLOT SCRIPT X -1F5F5 BALLOT BOX WITH SCRIPT X -1F5F6 BALLOT BOLD SCRIPT X -1F5F7 BALLOT BOX WITH BOLD SCRIPT X -1F5F8 LIGHT CHECK MARK -1F5F9 BALLOT BOX WITH BOLD CHECK -1F5FA WORLD MAP -1F5FB MOUNT FUJI -1F5FC TOKYO TOWER -1F5FD STATUE OF LIBERTY -1F5FE SILHOUETTE OF JAPAN -1F5FF MOYAI -1F600 GRINNING FACE -1F601 GRINNING FACE WITH SMILING EYES -1F602 FACE WITH TEARS OF JOY -1F603 SMILING FACE WITH OPEN MOUTH -1F604 SMILING FACE WITH OPEN MOUTH AND SMILING EYES -1F605 SMILING FACE WITH OPEN MOUTH AND COLD SWEAT -1F606 SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES -1F607 SMILING FACE WITH HALO -1F608 SMILING FACE WITH HORNS -1F609 WINKING FACE -1F60A SMILING FACE WITH SMILING EYES -1F60B FACE SAVOURING DELICIOUS FOOD -1F60C RELIEVED FACE -1F60D SMILING FACE WITH HEART-SHAPED EYES -1F60E SMILING FACE WITH SUNGLASSES -1F60F SMIRKING FACE -1F610 NEUTRAL FACE -1F611 EXPRESSIONLESS FACE -1F612 UNAMUSED FACE -1F613 FACE WITH COLD SWEAT -1F614 PENSIVE FACE -1F615 CONFUSED FACE -1F616 CONFOUNDED FACE -1F617 KISSING FACE -1F618 FACE THROWING A KISS -1F619 KISSING FACE WITH SMILING EYES -1F61A KISSING FACE WITH CLOSED EYES -1F61B FACE WITH STUCK-OUT TONGUE -1F61C FACE WITH STUCK-OUT TONGUE AND WINKING EYE -1F61D FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES -1F61E DISAPPOINTED FACE -1F61F WORRIED FACE -1F620 ANGRY FACE -1F621 POUTING FACE -1F622 CRYING FACE -1F623 PERSEVERING FACE -1F624 FACE WITH LOOK OF TRIUMPH -1F625 DISAPPOINTED BUT RELIEVED FACE -1F626 FROWNING FACE WITH OPEN MOUTH -1F627 ANGUISHED FACE -1F628 FEARFUL FACE -1F629 WEARY FACE -1F62A SLEEPY FACE -1F62B TIRED FACE -1F62C GRIMACING FACE -1F62D LOUDLY CRYING FACE -1F62E FACE WITH OPEN MOUTH -1F62F HUSHED FACE -1F630 FACE WITH OPEN MOUTH AND COLD SWEAT -1F631 FACE SCREAMING IN FEAR -1F632 ASTONISHED FACE -1F633 FLUSHED FACE -1F634 SLEEPING FACE -1F635 DIZZY FACE -1F636 FACE WITHOUT MOUTH -1F637 FACE WITH MEDICAL MASK -1F638 GRINNING CAT FACE WITH SMILING EYES -1F639 CAT FACE WITH TEARS OF JOY -1F63A SMILING CAT FACE WITH OPEN MOUTH -1F63B SMILING CAT FACE WITH HEART-SHAPED EYES -1F63C CAT FACE WITH WRY SMILE -1F63D KISSING CAT FACE WITH CLOSED EYES -1F63E POUTING CAT FACE -1F63F CRYING CAT FACE -1F640 WEARY CAT FACE -1F641 SLIGHTLY FROWNING FACE -1F642 SLIGHTLY SMILING FACE -1F643 UPSIDE-DOWN FACE -1F644 FACE WITH ROLLING EYES -1F645 FACE WITH NO GOOD GESTURE -1F646 FACE WITH OK GESTURE -1F647 PERSON BOWING DEEPLY -1F648 SEE-NO-EVIL MONKEY -1F649 HEAR-NO-EVIL MONKEY -1F64A SPEAK-NO-EVIL MONKEY -1F64B HAPPY PERSON RAISING ONE HAND -1F64C PERSON RAISING BOTH HANDS IN CELEBRATION -1F64D PERSON FROWNING -1F64E PERSON WITH POUTING FACE -1F64F PERSON WITH FOLDED HANDS -1F650 NORTH WEST POINTING LEAF -1F651 SOUTH WEST POINTING LEAF -1F652 NORTH EAST POINTING LEAF -1F653 SOUTH EAST POINTING LEAF -1F654 TURNED NORTH WEST POINTING LEAF -1F655 TURNED SOUTH WEST POINTING LEAF -1F656 TURNED NORTH EAST POINTING LEAF -1F657 TURNED SOUTH EAST POINTING LEAF -1F658 NORTH WEST POINTING VINE LEAF -1F659 SOUTH WEST POINTING VINE LEAF -1F65A NORTH EAST POINTING VINE LEAF -1F65B SOUTH EAST POINTING VINE LEAF -1F65C HEAVY NORTH WEST POINTING VINE LEAF -1F65D HEAVY SOUTH WEST POINTING VINE LEAF -1F65E HEAVY NORTH EAST POINTING VINE LEAF -1F65F HEAVY SOUTH EAST POINTING VINE LEAF -1F660 NORTH WEST POINTING BUD -1F661 SOUTH WEST POINTING BUD -1F662 NORTH EAST POINTING BUD -1F663 SOUTH EAST POINTING BUD -1F664 HEAVY NORTH WEST POINTING BUD -1F665 HEAVY SOUTH WEST POINTING BUD -1F666 HEAVY NORTH EAST POINTING BUD -1F667 HEAVY SOUTH EAST POINTING BUD -1F668 HOLLOW QUILT SQUARE ORNAMENT -1F669 HOLLOW QUILT SQUARE ORNAMENT IN BLACK SQUARE -1F66A SOLID QUILT SQUARE ORNAMENT -1F66B SOLID QUILT SQUARE ORNAMENT IN BLACK SQUARE -1F66C LEFTWARDS ROCKET -1F66D UPWARDS ROCKET -1F66E RIGHTWARDS ROCKET -1F66F DOWNWARDS ROCKET -1F670 SCRIPT LIGATURE ET ORNAMENT -1F671 HEAVY SCRIPT LIGATURE ET ORNAMENT -1F672 LIGATURE OPEN ET ORNAMENT -1F673 HEAVY LIGATURE OPEN ET ORNAMENT -1F674 HEAVY AMPERSAND ORNAMENT -1F675 SWASH AMPERSAND ORNAMENT -1F676 SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT -1F677 SANS-SERIF HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT -1F678 SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT -1F679 HEAVY INTERROBANG ORNAMENT -1F67A SANS-SERIF INTERROBANG ORNAMENT -1F67B HEAVY SANS-SERIF INTERROBANG ORNAMENT -1F67C VERY HEAVY SOLIDUS -1F67D VERY HEAVY REVERSE SOLIDUS -1F67E CHECKER BOARD -1F67F REVERSE CHECKER BOARD -1F680 ROCKET -1F681 HELICOPTER -1F682 STEAM LOCOMOTIVE -1F683 RAILWAY CAR -1F684 HIGH-SPEED TRAIN -1F685 HIGH-SPEED TRAIN WITH BULLET NOSE -1F686 TRAIN -1F687 METRO -1F688 LIGHT RAIL -1F689 STATION -1F68A TRAM -1F68B TRAM CAR -1F68C BUS -1F68D ONCOMING BUS -1F68E TROLLEYBUS -1F68F BUS STOP -1F690 MINIBUS -1F691 AMBULANCE -1F692 FIRE ENGINE -1F693 POLICE CAR -1F694 ONCOMING POLICE CAR -1F695 TAXI -1F696 ONCOMING TAXI -1F697 AUTOMOBILE -1F698 ONCOMING AUTOMOBILE -1F699 RECREATIONAL VEHICLE -1F69A DELIVERY TRUCK -1F69B ARTICULATED LORRY -1F69C TRACTOR -1F69D MONORAIL -1F69E MOUNTAIN RAILWAY -1F69F SUSPENSION RAILWAY -1F6A0 MOUNTAIN CABLEWAY -1F6A1 AERIAL TRAMWAY -1F6A2 SHIP -1F6A3 ROWBOAT -1F6A4 SPEEDBOAT -1F6A5 HORIZONTAL TRAFFIC LIGHT -1F6A6 VERTICAL TRAFFIC LIGHT -1F6A7 CONSTRUCTION SIGN -1F6A8 POLICE CARS REVOLVING LIGHT -1F6A9 TRIANGULAR FLAG ON POST -1F6AA DOOR -1F6AB NO ENTRY SIGN -1F6AC SMOKING SYMBOL -1F6AD NO SMOKING SYMBOL -1F6AE PUT LITTER IN ITS PLACE SYMBOL -1F6AF DO NOT LITTER SYMBOL -1F6B0 POTABLE WATER SYMBOL -1F6B1 NON-POTABLE WATER SYMBOL -1F6B2 BICYCLE -1F6B3 NO BICYCLES -1F6B4 BICYCLIST -1F6B5 MOUNTAIN BICYCLIST -1F6B6 PEDESTRIAN -1F6B7 NO PEDESTRIANS -1F6B8 CHILDREN CROSSING -1F6B9 MENS SYMBOL -1F6BA WOMENS SYMBOL -1F6BB RESTROOM -1F6BC BABY SYMBOL -1F6BD TOILET -1F6BE WATER CLOSET -1F6BF SHOWER -1F6C0 BATH -1F6C1 BATHTUB -1F6C2 PASSPORT CONTROL -1F6C3 CUSTOMS -1F6C4 BAGGAGE CLAIM -1F6C5 LEFT LUGGAGE -1F6C6 TRIANGLE WITH ROUNDED CORNERS -1F6C7 PROHIBITED SIGN -1F6C8 CIRCLED INFORMATION SOURCE -1F6C9 BOYS SYMBOL -1F6CA GIRLS SYMBOL -1F6CB COUCH AND LAMP -1F6CC SLEEPING ACCOMMODATION -1F6CD SHOPPING BAGS -1F6CE BELLHOP BELL -1F6CF BED -1F6D0 PLACE OF WORSHIP -1F6E0 HAMMER AND WRENCH -1F6E1 SHIELD -1F6E2 OIL DRUM -1F6E3 MOTORWAY -1F6E4 RAILWAY TRACK -1F6E5 MOTOR BOAT -1F6E6 UP-POINTING MILITARY AIRPLANE -1F6E7 UP-POINTING AIRPLANE -1F6E8 UP-POINTING SMALL AIRPLANE -1F6E9 SMALL AIRPLANE -1F6EA NORTHEAST-POINTING AIRPLANE -1F6EB AIRPLANE DEPARTURE -1F6EC AIRPLANE ARRIVING -1F6F0 SATELLITE -1F6F1 ONCOMING FIRE ENGINE -1F6F2 DIESEL LOCOMOTIVE -1F6F3 PASSENGER SHIP -1F700 ALCHEMICAL SYMBOL FOR QUINTESSENCE -1F701 ALCHEMICAL SYMBOL FOR AIR -1F702 ALCHEMICAL SYMBOL FOR FIRE -1F703 ALCHEMICAL SYMBOL FOR EARTH -1F704 ALCHEMICAL SYMBOL FOR WATER -1F705 ALCHEMICAL SYMBOL FOR AQUAFORTIS -1F706 ALCHEMICAL SYMBOL FOR AQUA REGIA -1F707 ALCHEMICAL SYMBOL FOR AQUA REGIA-2 -1F708 ALCHEMICAL SYMBOL FOR AQUA VITAE -1F709 ALCHEMICAL SYMBOL FOR AQUA VITAE-2 -1F70A ALCHEMICAL SYMBOL FOR VINEGAR -1F70B ALCHEMICAL SYMBOL FOR VINEGAR-2 -1F70C ALCHEMICAL SYMBOL FOR VINEGAR-3 -1F70D ALCHEMICAL SYMBOL FOR SULFUR -1F70E ALCHEMICAL SYMBOL FOR PHILOSOPHERS SULFUR -1F70F ALCHEMICAL SYMBOL FOR BLACK SULFUR -1F710 ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE -1F711 ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-2 -1F712 ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-3 -1F713 ALCHEMICAL SYMBOL FOR CINNABAR -1F714 ALCHEMICAL SYMBOL FOR SALT -1F715 ALCHEMICAL SYMBOL FOR NITRE -1F716 ALCHEMICAL SYMBOL FOR VITRIOL -1F717 ALCHEMICAL SYMBOL FOR VITRIOL-2 -1F718 ALCHEMICAL SYMBOL FOR ROCK SALT -1F719 ALCHEMICAL SYMBOL FOR ROCK SALT-2 -1F71A ALCHEMICAL SYMBOL FOR GOLD -1F71B ALCHEMICAL SYMBOL FOR SILVER -1F71C ALCHEMICAL SYMBOL FOR IRON ORE -1F71D ALCHEMICAL SYMBOL FOR IRON ORE-2 -1F71E ALCHEMICAL SYMBOL FOR CROCUS OF IRON -1F71F ALCHEMICAL SYMBOL FOR REGULUS OF IRON -1F720 ALCHEMICAL SYMBOL FOR COPPER ORE -1F721 ALCHEMICAL SYMBOL FOR IRON-COPPER ORE -1F722 ALCHEMICAL SYMBOL FOR SUBLIMATE OF COPPER -1F723 ALCHEMICAL SYMBOL FOR CROCUS OF COPPER -1F724 ALCHEMICAL SYMBOL FOR CROCUS OF COPPER-2 -1F725 ALCHEMICAL SYMBOL FOR COPPER ANTIMONIATE -1F726 ALCHEMICAL SYMBOL FOR SALT OF COPPER ANTIMONIATE -1F727 ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF COPPER -1F728 ALCHEMICAL SYMBOL FOR VERDIGRIS -1F729 ALCHEMICAL SYMBOL FOR TIN ORE -1F72A ALCHEMICAL SYMBOL FOR LEAD ORE -1F72B ALCHEMICAL SYMBOL FOR ANTIMONY ORE -1F72C ALCHEMICAL SYMBOL FOR SUBLIMATE OF ANTIMONY -1F72D ALCHEMICAL SYMBOL FOR SALT OF ANTIMONY -1F72E ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF ANTIMONY -1F72F ALCHEMICAL SYMBOL FOR VINEGAR OF ANTIMONY -1F730 ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY -1F731 ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY-2 -1F732 ALCHEMICAL SYMBOL FOR REGULUS -1F733 ALCHEMICAL SYMBOL FOR REGULUS-2 -1F734 ALCHEMICAL SYMBOL FOR REGULUS-3 -1F735 ALCHEMICAL SYMBOL FOR REGULUS-4 -1F736 ALCHEMICAL SYMBOL FOR ALKALI -1F737 ALCHEMICAL SYMBOL FOR ALKALI-2 -1F738 ALCHEMICAL SYMBOL FOR MARCASITE -1F739 ALCHEMICAL SYMBOL FOR SAL-AMMONIAC -1F73A ALCHEMICAL SYMBOL FOR ARSENIC -1F73B ALCHEMICAL SYMBOL FOR REALGAR -1F73C ALCHEMICAL SYMBOL FOR REALGAR-2 -1F73D ALCHEMICAL SYMBOL FOR AURIPIGMENT -1F73E ALCHEMICAL SYMBOL FOR BISMUTH ORE -1F73F ALCHEMICAL SYMBOL FOR TARTAR -1F740 ALCHEMICAL SYMBOL FOR TARTAR-2 -1F741 ALCHEMICAL SYMBOL FOR QUICK LIME -1F742 ALCHEMICAL SYMBOL FOR BORAX -1F743 ALCHEMICAL SYMBOL FOR BORAX-2 -1F744 ALCHEMICAL SYMBOL FOR BORAX-3 -1F745 ALCHEMICAL SYMBOL FOR ALUM -1F746 ALCHEMICAL SYMBOL FOR OIL -1F747 ALCHEMICAL SYMBOL FOR SPIRIT -1F748 ALCHEMICAL SYMBOL FOR TINCTURE -1F749 ALCHEMICAL SYMBOL FOR GUM -1F74A ALCHEMICAL SYMBOL FOR WAX -1F74B ALCHEMICAL SYMBOL FOR POWDER -1F74C ALCHEMICAL SYMBOL FOR CALX -1F74D ALCHEMICAL SYMBOL FOR TUTTY -1F74E ALCHEMICAL SYMBOL FOR CAPUT MORTUUM -1F74F ALCHEMICAL SYMBOL FOR SCEPTER OF JOVE -1F750 ALCHEMICAL SYMBOL FOR CADUCEUS -1F751 ALCHEMICAL SYMBOL FOR TRIDENT -1F752 ALCHEMICAL SYMBOL FOR STARRED TRIDENT -1F753 ALCHEMICAL SYMBOL FOR LODESTONE -1F754 ALCHEMICAL SYMBOL FOR SOAP -1F755 ALCHEMICAL SYMBOL FOR URINE -1F756 ALCHEMICAL SYMBOL FOR HORSE DUNG -1F757 ALCHEMICAL SYMBOL FOR ASHES -1F758 ALCHEMICAL SYMBOL FOR POT ASHES -1F759 ALCHEMICAL SYMBOL FOR BRICK -1F75A ALCHEMICAL SYMBOL FOR POWDERED BRICK -1F75B ALCHEMICAL SYMBOL FOR AMALGAM -1F75C ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM -1F75D ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM-2 -1F75E ALCHEMICAL SYMBOL FOR SUBLIMATION -1F75F ALCHEMICAL SYMBOL FOR PRECIPITATE -1F760 ALCHEMICAL SYMBOL FOR DISTILL -1F761 ALCHEMICAL SYMBOL FOR DISSOLVE -1F762 ALCHEMICAL SYMBOL FOR DISSOLVE-2 -1F763 ALCHEMICAL SYMBOL FOR PURIFY -1F764 ALCHEMICAL SYMBOL FOR PUTREFACTION -1F765 ALCHEMICAL SYMBOL FOR CRUCIBLE -1F766 ALCHEMICAL SYMBOL FOR CRUCIBLE-2 -1F767 ALCHEMICAL SYMBOL FOR CRUCIBLE-3 -1F768 ALCHEMICAL SYMBOL FOR CRUCIBLE-4 -1F769 ALCHEMICAL SYMBOL FOR CRUCIBLE-5 -1F76A ALCHEMICAL SYMBOL FOR ALEMBIC -1F76B ALCHEMICAL SYMBOL FOR BATH OF MARY -1F76C ALCHEMICAL SYMBOL FOR BATH OF VAPOURS -1F76D ALCHEMICAL SYMBOL FOR RETORT -1F76E ALCHEMICAL SYMBOL FOR HOUR -1F76F ALCHEMICAL SYMBOL FOR NIGHT -1F770 ALCHEMICAL SYMBOL FOR DAY-NIGHT -1F771 ALCHEMICAL SYMBOL FOR MONTH -1F772 ALCHEMICAL SYMBOL FOR HALF DRAM -1F773 ALCHEMICAL SYMBOL FOR HALF OUNCE -1F780 BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE -1F781 BLACK UP-POINTING ISOSCELES RIGHT TRIANGLE -1F782 BLACK RIGHT-POINTING ISOSCELES RIGHT TRIANGLE -1F783 BLACK DOWN-POINTING ISOSCELES RIGHT TRIANGLE -1F784 BLACK SLIGHTLY SMALL CIRCLE -1F785 MEDIUM BOLD WHITE CIRCLE -1F786 BOLD WHITE CIRCLE -1F787 HEAVY WHITE CIRCLE -1F788 VERY HEAVY WHITE CIRCLE -1F789 EXTREMELY HEAVY WHITE CIRCLE -1F78A WHITE CIRCLE CONTAINING BLACK SMALL CIRCLE -1F78B ROUND TARGET -1F78C BLACK TINY SQUARE -1F78D BLACK SLIGHTLY SMALL SQUARE -1F78E LIGHT WHITE SQUARE -1F78F MEDIUM WHITE SQUARE -1F790 BOLD WHITE SQUARE -1F791 HEAVY WHITE SQUARE -1F792 VERY HEAVY WHITE SQUARE -1F793 EXTREMELY HEAVY WHITE SQUARE -1F794 WHITE SQUARE CONTAINING BLACK VERY SMALL SQUARE -1F795 WHITE SQUARE CONTAINING BLACK MEDIUM SQUARE -1F796 SQUARE TARGET -1F797 BLACK TINY DIAMOND -1F798 BLACK VERY SMALL DIAMOND -1F799 BLACK MEDIUM SMALL DIAMOND -1F79A WHITE DIAMOND CONTAINING BLACK VERY SMALL DIAMOND -1F79B WHITE DIAMOND CONTAINING BLACK MEDIUM DIAMOND -1F79C DIAMOND TARGET -1F79D BLACK TINY LOZENGE -1F79E BLACK VERY SMALL LOZENGE -1F79F BLACK MEDIUM SMALL LOZENGE -1F7A0 WHITE LOZENGE CONTAINING BLACK SMALL LOZENGE -1F7A1 THIN GREEK CROSS -1F7A2 LIGHT GREEK CROSS -1F7A3 MEDIUM GREEK CROSS -1F7A4 BOLD GREEK CROSS -1F7A5 VERY BOLD GREEK CROSS -1F7A6 VERY HEAVY GREEK CROSS -1F7A7 EXTREMELY HEAVY GREEK CROSS -1F7A8 THIN SALTIRE -1F7A9 LIGHT SALTIRE -1F7AA MEDIUM SALTIRE -1F7AB BOLD SALTIRE -1F7AC HEAVY SALTIRE -1F7AD VERY HEAVY SALTIRE -1F7AE EXTREMELY HEAVY SALTIRE -1F7AF LIGHT FIVE SPOKED ASTERISK -1F7B0 MEDIUM FIVE SPOKED ASTERISK -1F7B1 BOLD FIVE SPOKED ASTERISK -1F7B2 HEAVY FIVE SPOKED ASTERISK -1F7B3 VERY HEAVY FIVE SPOKED ASTERISK -1F7B4 EXTREMELY HEAVY FIVE SPOKED ASTERISK -1F7B5 LIGHT SIX SPOKED ASTERISK -1F7B6 MEDIUM SIX SPOKED ASTERISK -1F7B7 BOLD SIX SPOKED ASTERISK -1F7B8 HEAVY SIX SPOKED ASTERISK -1F7B9 VERY HEAVY SIX SPOKED ASTERISK -1F7BA EXTREMELY HEAVY SIX SPOKED ASTERISK -1F7BB LIGHT EIGHT SPOKED ASTERISK -1F7BC MEDIUM EIGHT SPOKED ASTERISK -1F7BD BOLD EIGHT SPOKED ASTERISK -1F7BE HEAVY EIGHT SPOKED ASTERISK -1F7BF VERY HEAVY EIGHT SPOKED ASTERISK -1F7C0 LIGHT THREE POINTED BLACK STAR -1F7C1 MEDIUM THREE POINTED BLACK STAR -1F7C2 THREE POINTED BLACK STAR -1F7C3 MEDIUM THREE POINTED PINWHEEL STAR -1F7C4 LIGHT FOUR POINTED BLACK STAR -1F7C5 MEDIUM FOUR POINTED BLACK STAR -1F7C6 FOUR POINTED BLACK STAR -1F7C7 MEDIUM FOUR POINTED PINWHEEL STAR -1F7C8 REVERSE LIGHT FOUR POINTED PINWHEEL STAR -1F7C9 LIGHT FIVE POINTED BLACK STAR -1F7CA HEAVY FIVE POINTED BLACK STAR -1F7CB MEDIUM SIX POINTED BLACK STAR -1F7CC HEAVY SIX POINTED BLACK STAR -1F7CD SIX POINTED PINWHEEL STAR -1F7CE MEDIUM EIGHT POINTED BLACK STAR -1F7CF HEAVY EIGHT POINTED BLACK STAR -1F7D0 VERY HEAVY EIGHT POINTED BLACK STAR -1F7D1 HEAVY EIGHT POINTED PINWHEEL STAR -1F7D2 LIGHT TWELVE POINTED BLACK STAR -1F7D3 HEAVY TWELVE POINTED BLACK STAR -1F7D4 HEAVY TWELVE POINTED PINWHEEL STAR -1F800 LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD -1F801 UPWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD -1F802 RIGHTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD -1F803 DOWNWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD -1F804 LEFTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD -1F805 UPWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD -1F806 RIGHTWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD -1F807 DOWNWARDS ARROW WITH MEDIUM TRIANGLE ARROWHEAD -1F808 LEFTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD -1F809 UPWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD -1F80A RIGHTWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD -1F80B DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD -1F810 LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD -1F811 UPWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD -1F812 RIGHTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD -1F813 DOWNWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD -1F814 LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD -1F815 UPWARDS ARROW WITH EQUILATERAL ARROWHEAD -1F816 RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD -1F817 DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD -1F818 HEAVY LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD -1F819 HEAVY UPWARDS ARROW WITH EQUILATERAL ARROWHEAD -1F81A HEAVY RIGHTWARDS ARROW WITH EQUILATERAL ARROWHEAD -1F81B HEAVY DOWNWARDS ARROW WITH EQUILATERAL ARROWHEAD -1F81C HEAVY LEFTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD -1F81D HEAVY UPWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD -1F81E HEAVY RIGHTWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD -1F81F HEAVY DOWNWARDS ARROW WITH LARGE EQUILATERAL ARROWHEAD -1F820 LEFTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT -1F821 UPWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT -1F822 RIGHTWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT -1F823 DOWNWARDS TRIANGLE-HEADED ARROW WITH NARROW SHAFT -1F824 LEFTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT -1F825 UPWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT -1F826 RIGHTWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT -1F827 DOWNWARDS TRIANGLE-HEADED ARROW WITH MEDIUM SHAFT -1F828 LEFTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT -1F829 UPWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT -1F82A RIGHTWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT -1F82B DOWNWARDS TRIANGLE-HEADED ARROW WITH BOLD SHAFT -1F82C LEFTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT -1F82D UPWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT -1F82E RIGHTWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT -1F82F DOWNWARDS TRIANGLE-HEADED ARROW WITH HEAVY SHAFT -1F830 LEFTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT -1F831 UPWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT -1F832 RIGHTWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT -1F833 DOWNWARDS TRIANGLE-HEADED ARROW WITH VERY HEAVY SHAFT -1F834 LEFTWARDS FINGER-POST ARROW -1F835 UPWARDS FINGER-POST ARROW -1F836 RIGHTWARDS FINGER-POST ARROW -1F837 DOWNWARDS FINGER-POST ARROW -1F838 LEFTWARDS SQUARED ARROW -1F839 UPWARDS SQUARED ARROW -1F83A RIGHTWARDS SQUARED ARROW -1F83B DOWNWARDS SQUARED ARROW -1F83C LEFTWARDS COMPRESSED ARROW -1F83D UPWARDS COMPRESSED ARROW -1F83E RIGHTWARDS COMPRESSED ARROW -1F83F DOWNWARDS COMPRESSED ARROW -1F840 LEFTWARDS HEAVY COMPRESSED ARROW -1F841 UPWARDS HEAVY COMPRESSED ARROW -1F842 RIGHTWARDS HEAVY COMPRESSED ARROW -1F843 DOWNWARDS HEAVY COMPRESSED ARROW -1F844 LEFTWARDS HEAVY ARROW -1F845 UPWARDS HEAVY ARROW -1F846 RIGHTWARDS HEAVY ARROW -1F847 DOWNWARDS HEAVY ARROW -1F850 LEFTWARDS SANS-SERIF ARROW -1F851 UPWARDS SANS-SERIF ARROW -1F852 RIGHTWARDS SANS-SERIF ARROW -1F853 DOWNWARDS SANS-SERIF ARROW -1F854 NORTH WEST SANS-SERIF ARROW -1F855 NORTH EAST SANS-SERIF ARROW -1F856 SOUTH EAST SANS-SERIF ARROW -1F857 SOUTH WEST SANS-SERIF ARROW -1F858 LEFT RIGHT SANS-SERIF ARROW -1F859 UP DOWN SANS-SERIF ARROW -1F860 WIDE-HEADED LEFTWARDS LIGHT BARB ARROW -1F861 WIDE-HEADED UPWARDS LIGHT BARB ARROW -1F862 WIDE-HEADED RIGHTWARDS LIGHT BARB ARROW -1F863 WIDE-HEADED DOWNWARDS LIGHT BARB ARROW -1F864 WIDE-HEADED NORTH WEST LIGHT BARB ARROW -1F865 WIDE-HEADED NORTH EAST LIGHT BARB ARROW -1F866 WIDE-HEADED SOUTH EAST LIGHT BARB ARROW -1F867 WIDE-HEADED SOUTH WEST LIGHT BARB ARROW -1F868 WIDE-HEADED LEFTWARDS BARB ARROW -1F869 WIDE-HEADED UPWARDS BARB ARROW -1F86A WIDE-HEADED RIGHTWARDS BARB ARROW -1F86B WIDE-HEADED DOWNWARDS BARB ARROW -1F86C WIDE-HEADED NORTH WEST BARB ARROW -1F86D WIDE-HEADED NORTH EAST BARB ARROW -1F86E WIDE-HEADED SOUTH EAST BARB ARROW -1F86F WIDE-HEADED SOUTH WEST BARB ARROW -1F870 WIDE-HEADED LEFTWARDS MEDIUM BARB ARROW -1F871 WIDE-HEADED UPWARDS MEDIUM BARB ARROW -1F872 WIDE-HEADED RIGHTWARDS MEDIUM BARB ARROW -1F873 WIDE-HEADED DOWNWARDS MEDIUM BARB ARROW -1F874 WIDE-HEADED NORTH WEST MEDIUM BARB ARROW -1F875 WIDE-HEADED NORTH EAST MEDIUM BARB ARROW -1F876 WIDE-HEADED SOUTH EAST MEDIUM BARB ARROW -1F877 WIDE-HEADED SOUTH WEST MEDIUM BARB ARROW -1F878 WIDE-HEADED LEFTWARDS HEAVY BARB ARROW -1F879 WIDE-HEADED UPWARDS HEAVY BARB ARROW -1F87A WIDE-HEADED RIGHTWARDS HEAVY BARB ARROW -1F87B WIDE-HEADED DOWNWARDS HEAVY BARB ARROW -1F87C WIDE-HEADED NORTH WEST HEAVY BARB ARROW -1F87D WIDE-HEADED NORTH EAST HEAVY BARB ARROW -1F87E WIDE-HEADED SOUTH EAST HEAVY BARB ARROW -1F87F WIDE-HEADED SOUTH WEST HEAVY BARB ARROW -1F880 WIDE-HEADED LEFTWARDS VERY HEAVY BARB ARROW -1F881 WIDE-HEADED UPWARDS VERY HEAVY BARB ARROW -1F882 WIDE-HEADED RIGHTWARDS VERY HEAVY BARB ARROW -1F883 WIDE-HEADED DOWNWARDS VERY HEAVY BARB ARROW -1F884 WIDE-HEADED NORTH WEST VERY HEAVY BARB ARROW -1F885 WIDE-HEADED NORTH EAST VERY HEAVY BARB ARROW -1F886 WIDE-HEADED SOUTH EAST VERY HEAVY BARB ARROW -1F887 WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW -1F890 LEFTWARDS TRIANGLE ARROWHEAD -1F891 UPWARDS TRIANGLE ARROWHEAD -1F892 RIGHTWARDS TRIANGLE ARROWHEAD -1F893 DOWNWARDS TRIANGLE ARROWHEAD -1F894 LEFTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD -1F895 UPWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD -1F896 RIGHTWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD -1F897 DOWNWARDS WHITE ARROW WITHIN TRIANGLE ARROWHEAD -1F898 LEFTWARDS ARROW WITH NOTCHED TAIL -1F899 UPWARDS ARROW WITH NOTCHED TAIL -1F89A RIGHTWARDS ARROW WITH NOTCHED TAIL -1F89B DOWNWARDS ARROW WITH NOTCHED TAIL -1F89C HEAVY ARROW SHAFT WIDTH ONE -1F89D HEAVY ARROW SHAFT WIDTH TWO THIRDS -1F89E HEAVY ARROW SHAFT WIDTH ONE HALF -1F89F HEAVY ARROW SHAFT WIDTH ONE THIRD -1F8A0 LEFTWARDS BOTTOM-SHADED WHITE ARROW -1F8A1 RIGHTWARDS BOTTOM SHADED WHITE ARROW -1F8A2 LEFTWARDS TOP SHADED WHITE ARROW -1F8A3 RIGHTWARDS TOP SHADED WHITE ARROW -1F8A4 LEFTWARDS LEFT-SHADED WHITE ARROW -1F8A5 RIGHTWARDS RIGHT-SHADED WHITE ARROW -1F8A6 LEFTWARDS RIGHT-SHADED WHITE ARROW -1F8A7 RIGHTWARDS LEFT-SHADED WHITE ARROW -1F8A8 LEFTWARDS BACK-TILTED SHADOWED WHITE ARROW -1F8A9 RIGHTWARDS BACK-TILTED SHADOWED WHITE ARROW -1F8AA LEFTWARDS FRONT-TILTED SHADOWED WHITE ARROW -1F8AB RIGHTWARDS FRONT-TILTED SHADOWED WHITE ARROW -1F8AC WHITE ARROW SHAFT WIDTH ONE -1F8AD WHITE ARROW SHAFT WIDTH TWO THIRDS -1F910 ZIPPER-MOUTH FACE -1F911 MONEY-MOUTH FACE -1F912 FACE WITH THERMOMETER -1F913 NERD FACE -1F914 THINKING FACE -1F915 FACE WITH HEAD-BANDAGE -1F916 ROBOT FACE -1F917 HUGGING FACE -1F918 SIGN OF THE HORNS -1F980 CRAB -1F981 LION FACE -1F982 SCORPION -1F983 TURKEY -1F984 UNICORN FACE -1F9C0 CHEESE WEDGE -E0001 LANGUAGE TAG -E0020 TAG SPACE -E0021 TAG EXCLAMATION MARK -E0022 TAG QUOTATION MARK -E0023 TAG NUMBER SIGN -E0024 TAG DOLLAR SIGN -E0025 TAG PERCENT SIGN -E0026 TAG AMPERSAND -E0027 TAG APOSTROPHE -E0028 TAG LEFT PARENTHESIS -E0029 TAG RIGHT PARENTHESIS -E002A TAG ASTERISK -E002B TAG PLUS SIGN -E002C TAG COMMA -E002D TAG HYPHEN-MINUS -E002E TAG FULL STOP -E002F TAG SOLIDUS -E0030 TAG DIGIT ZERO -E0031 TAG DIGIT ONE -E0032 TAG DIGIT TWO -E0033 TAG DIGIT THREE -E0034 TAG DIGIT FOUR -E0035 TAG DIGIT FIVE -E0036 TAG DIGIT SIX -E0037 TAG DIGIT SEVEN -E0038 TAG DIGIT EIGHT -E0039 TAG DIGIT NINE -E003A TAG COLON -E003B TAG SEMICOLON -E003C TAG LESS-THAN SIGN -E003D TAG EQUALS SIGN -E003E TAG GREATER-THAN SIGN -E003F TAG QUESTION MARK -E0040 TAG COMMERCIAL AT -E0041 TAG LATIN CAPITAL LETTER A -E0042 TAG LATIN CAPITAL LETTER B -E0043 TAG LATIN CAPITAL LETTER C -E0044 TAG LATIN CAPITAL LETTER D -E0045 TAG LATIN CAPITAL LETTER E -E0046 TAG LATIN CAPITAL LETTER F -E0047 TAG LATIN CAPITAL LETTER G -E0048 TAG LATIN CAPITAL LETTER H -E0049 TAG LATIN CAPITAL LETTER I -E004A TAG LATIN CAPITAL LETTER J -E004B TAG LATIN CAPITAL LETTER K -E004C TAG LATIN CAPITAL LETTER L -E004D TAG LATIN CAPITAL LETTER M -E004E TAG LATIN CAPITAL LETTER N -E004F TAG LATIN CAPITAL LETTER O -E0050 TAG LATIN CAPITAL LETTER P -E0051 TAG LATIN CAPITAL LETTER Q -E0052 TAG LATIN CAPITAL LETTER R -E0053 TAG LATIN CAPITAL LETTER S -E0054 TAG LATIN CAPITAL LETTER T -E0055 TAG LATIN CAPITAL LETTER U -E0056 TAG LATIN CAPITAL LETTER V -E0057 TAG LATIN CAPITAL LETTER W -E0058 TAG LATIN CAPITAL LETTER X -E0059 TAG LATIN CAPITAL LETTER Y -E005A TAG LATIN CAPITAL LETTER Z -E005B TAG LEFT SQUARE BRACKET -E005C TAG REVERSE SOLIDUS -E005D TAG RIGHT SQUARE BRACKET -E005E TAG CIRCUMFLEX ACCENT -E005F TAG LOW LINE -E0060 TAG GRAVE ACCENT -E0061 TAG LATIN SMALL LETTER A -E0062 TAG LATIN SMALL LETTER B -E0063 TAG LATIN SMALL LETTER C -E0064 TAG LATIN SMALL LETTER D -E0065 TAG LATIN SMALL LETTER E -E0066 TAG LATIN SMALL LETTER F -E0067 TAG LATIN SMALL LETTER G -E0068 TAG LATIN SMALL LETTER H -E0069 TAG LATIN SMALL LETTER I -E006A TAG LATIN SMALL LETTER J -E006B TAG LATIN SMALL LETTER K -E006C TAG LATIN SMALL LETTER L -E006D TAG LATIN SMALL LETTER M -E006E TAG LATIN SMALL LETTER N -E006F TAG LATIN SMALL LETTER O -E0070 TAG LATIN SMALL LETTER P -E0071 TAG LATIN SMALL LETTER Q -E0072 TAG LATIN SMALL LETTER R -E0073 TAG LATIN SMALL LETTER S -E0074 TAG LATIN SMALL LETTER T -E0075 TAG LATIN SMALL LETTER U -E0076 TAG LATIN SMALL LETTER V -E0077 TAG LATIN SMALL LETTER W -E0078 TAG LATIN SMALL LETTER X -E0079 TAG LATIN SMALL LETTER Y -E007A TAG LATIN SMALL LETTER Z -E007B TAG LEFT CURLY BRACKET -E007C TAG VERTICAL LINE -E007D TAG RIGHT CURLY BRACKET -E007E TAG TILDE -E007F CANCEL TAG -E0100 VARIATION SELECTOR-17 -E0100 VS17 -E0101 VARIATION SELECTOR-18 -E0101 VS18 -E0102 VARIATION SELECTOR-19 -E0102 VS19 -E0103 VARIATION SELECTOR-20 -E0103 VS20 -E0104 VARIATION SELECTOR-21 -E0104 VS21 -E0105 VARIATION SELECTOR-22 -E0105 VS22 -E0106 VARIATION SELECTOR-23 -E0106 VS23 -E0107 VARIATION SELECTOR-24 -E0107 VS24 -E0108 VARIATION SELECTOR-25 -E0108 VS25 -E0109 VARIATION SELECTOR-26 -E0109 VS26 -E010A VARIATION SELECTOR-27 -E010A VS27 -E010B VARIATION SELECTOR-28 -E010B VS28 -E010C VARIATION SELECTOR-29 -E010C VS29 -E010D VARIATION SELECTOR-30 -E010D VS30 -E010E VARIATION SELECTOR-31 -E010E VS31 -E010F VARIATION SELECTOR-32 -E010F VS32 -E0110 VARIATION SELECTOR-33 -E0110 VS33 -E0111 VARIATION SELECTOR-34 -E0111 VS34 -E0112 VARIATION SELECTOR-35 -E0112 VS35 -E0113 VARIATION SELECTOR-36 -E0113 VS36 -E0114 VARIATION SELECTOR-37 -E0114 VS37 -E0115 VARIATION SELECTOR-38 -E0115 VS38 -E0116 VARIATION SELECTOR-39 -E0116 VS39 -E0117 VARIATION SELECTOR-40 -E0117 VS40 -E0118 VARIATION SELECTOR-41 -E0118 VS41 -E0119 VARIATION SELECTOR-42 -E0119 VS42 -E011A VARIATION SELECTOR-43 -E011A VS43 -E011B VARIATION SELECTOR-44 -E011B VS44 -E011C VARIATION SELECTOR-45 -E011C VS45 -E011D VARIATION SELECTOR-46 -E011D VS46 -E011E VARIATION SELECTOR-47 -E011E VS47 -E011F VARIATION SELECTOR-48 -E011F VS48 -E0120 VARIATION SELECTOR-49 -E0120 VS49 -E0121 VARIATION SELECTOR-50 -E0121 VS50 -E0122 VARIATION SELECTOR-51 -E0122 VS51 -E0123 VARIATION SELECTOR-52 -E0123 VS52 -E0124 VARIATION SELECTOR-53 -E0124 VS53 -E0125 VARIATION SELECTOR-54 -E0125 VS54 -E0126 VARIATION SELECTOR-55 -E0126 VS55 -E0127 VARIATION SELECTOR-56 -E0127 VS56 -E0128 VARIATION SELECTOR-57 -E0128 VS57 -E0129 VARIATION SELECTOR-58 -E0129 VS58 -E012A VARIATION SELECTOR-59 -E012A VS59 -E012B VARIATION SELECTOR-60 -E012B VS60 -E012C VARIATION SELECTOR-61 -E012C VS61 -E012D VARIATION SELECTOR-62 -E012D VS62 -E012E VARIATION SELECTOR-63 -E012E VS63 -E012F VARIATION SELECTOR-64 -E012F VS64 -E0130 VARIATION SELECTOR-65 -E0130 VS65 -E0131 VARIATION SELECTOR-66 -E0131 VS66 -E0132 VARIATION SELECTOR-67 -E0132 VS67 -E0133 VARIATION SELECTOR-68 -E0133 VS68 -E0134 VARIATION SELECTOR-69 -E0134 VS69 -E0135 VARIATION SELECTOR-70 -E0135 VS70 -E0136 VARIATION SELECTOR-71 -E0136 VS71 -E0137 VARIATION SELECTOR-72 -E0137 VS72 -E0138 VARIATION SELECTOR-73 -E0138 VS73 -E0139 VARIATION SELECTOR-74 -E0139 VS74 -E013A VARIATION SELECTOR-75 -E013A VS75 -E013B VARIATION SELECTOR-76 -E013B VS76 -E013C VARIATION SELECTOR-77 -E013C VS77 -E013D VARIATION SELECTOR-78 -E013D VS78 -E013E VARIATION SELECTOR-79 -E013E VS79 -E013F VARIATION SELECTOR-80 -E013F VS80 -E0140 VARIATION SELECTOR-81 -E0140 VS81 -E0141 VARIATION SELECTOR-82 -E0141 VS82 -E0142 VARIATION SELECTOR-83 -E0142 VS83 -E0143 VARIATION SELECTOR-84 -E0143 VS84 -E0144 VARIATION SELECTOR-85 -E0144 VS85 -E0145 VARIATION SELECTOR-86 -E0145 VS86 -E0146 VARIATION SELECTOR-87 -E0146 VS87 -E0147 VARIATION SELECTOR-88 -E0147 VS88 -E0148 VARIATION SELECTOR-89 -E0148 VS89 -E0149 VARIATION SELECTOR-90 -E0149 VS90 -E014A VARIATION SELECTOR-91 -E014A VS91 -E014B VARIATION SELECTOR-92 -E014B VS92 -E014C VARIATION SELECTOR-93 -E014C VS93 -E014D VARIATION SELECTOR-94 -E014D VS94 -E014E VARIATION SELECTOR-95 -E014E VS95 -E014F VARIATION SELECTOR-96 -E014F VS96 -E0150 VARIATION SELECTOR-97 -E0150 VS97 -E0151 VARIATION SELECTOR-98 -E0151 VS98 -E0152 VARIATION SELECTOR-99 -E0152 VS99 -E0153 VARIATION SELECTOR-100 -E0153 VS100 -E0154 VARIATION SELECTOR-101 -E0154 VS101 -E0155 VARIATION SELECTOR-102 -E0155 VS102 -E0156 VARIATION SELECTOR-103 -E0156 VS103 -E0157 VARIATION SELECTOR-104 -E0157 VS104 -E0158 VARIATION SELECTOR-105 -E0158 VS105 -E0159 VARIATION SELECTOR-106 -E0159 VS106 -E015A VARIATION SELECTOR-107 -E015A VS107 -E015B VARIATION SELECTOR-108 -E015B VS108 -E015C VARIATION SELECTOR-109 -E015C VS109 -E015D VARIATION SELECTOR-110 -E015D VS110 -E015E VARIATION SELECTOR-111 -E015E VS111 -E015F VARIATION SELECTOR-112 -E015F VS112 -E0160 VARIATION SELECTOR-113 -E0160 VS113 -E0161 VARIATION SELECTOR-114 -E0161 VS114 -E0162 VARIATION SELECTOR-115 -E0162 VS115 -E0163 VARIATION SELECTOR-116 -E0163 VS116 -E0164 VARIATION SELECTOR-117 -E0164 VS117 -E0165 VARIATION SELECTOR-118 -E0165 VS118 -E0166 VARIATION SELECTOR-119 -E0166 VS119 -E0167 VARIATION SELECTOR-120 -E0167 VS120 -E0168 VARIATION SELECTOR-121 -E0168 VS121 -E0169 VARIATION SELECTOR-122 -E0169 VS122 -E016A VARIATION SELECTOR-123 -E016A VS123 -E016B VARIATION SELECTOR-124 -E016B VS124 -E016C VARIATION SELECTOR-125 -E016C VS125 -E016D VARIATION SELECTOR-126 -E016D VS126 -E016E VARIATION SELECTOR-127 -E016E VS127 -E016F VARIATION SELECTOR-128 -E016F VS128 -E0170 VARIATION SELECTOR-129 -E0170 VS129 -E0171 VARIATION SELECTOR-130 -E0171 VS130 -E0172 VARIATION SELECTOR-131 -E0172 VS131 -E0173 VARIATION SELECTOR-132 -E0173 VS132 -E0174 VARIATION SELECTOR-133 -E0174 VS133 -E0175 VARIATION SELECTOR-134 -E0175 VS134 -E0176 VARIATION SELECTOR-135 -E0176 VS135 -E0177 VARIATION SELECTOR-136 -E0177 VS136 -E0178 VARIATION SELECTOR-137 -E0178 VS137 -E0179 VARIATION SELECTOR-138 -E0179 VS138 -E017A VARIATION SELECTOR-139 -E017A VS139 -E017B VARIATION SELECTOR-140 -E017B VS140 -E017C VARIATION SELECTOR-141 -E017C VS141 -E017D VARIATION SELECTOR-142 -E017D VS142 -E017E VARIATION SELECTOR-143 -E017E VS143 -E017F VARIATION SELECTOR-144 -E017F VS144 -E0180 VARIATION SELECTOR-145 -E0180 VS145 -E0181 VARIATION SELECTOR-146 -E0181 VS146 -E0182 VARIATION SELECTOR-147 -E0182 VS147 -E0183 VARIATION SELECTOR-148 -E0183 VS148 -E0184 VARIATION SELECTOR-149 -E0184 VS149 -E0185 VARIATION SELECTOR-150 -E0185 VS150 -E0186 VARIATION SELECTOR-151 -E0186 VS151 -E0187 VARIATION SELECTOR-152 -E0187 VS152 -E0188 VARIATION SELECTOR-153 -E0188 VS153 -E0189 VARIATION SELECTOR-154 -E0189 VS154 -E018A VARIATION SELECTOR-155 -E018A VS155 -E018B VARIATION SELECTOR-156 -E018B VS156 -E018C VARIATION SELECTOR-157 -E018C VS157 -E018D VARIATION SELECTOR-158 -E018D VS158 -E018E VARIATION SELECTOR-159 -E018E VS159 -E018F VARIATION SELECTOR-160 -E018F VS160 -E0190 VARIATION SELECTOR-161 -E0190 VS161 -E0191 VARIATION SELECTOR-162 -E0191 VS162 -E0192 VARIATION SELECTOR-163 -E0192 VS163 -E0193 VARIATION SELECTOR-164 -E0193 VS164 -E0194 VARIATION SELECTOR-165 -E0194 VS165 -E0195 VARIATION SELECTOR-166 -E0195 VS166 -E0196 VARIATION SELECTOR-167 -E0196 VS167 -E0197 VARIATION SELECTOR-168 -E0197 VS168 -E0198 VARIATION SELECTOR-169 -E0198 VS169 -E0199 VARIATION SELECTOR-170 -E0199 VS170 -E019A VARIATION SELECTOR-171 -E019A VS171 -E019B VARIATION SELECTOR-172 -E019B VS172 -E019C VARIATION SELECTOR-173 -E019C VS173 -E019D VARIATION SELECTOR-174 -E019D VS174 -E019E VARIATION SELECTOR-175 -E019E VS175 -E019F VARIATION SELECTOR-176 -E019F VS176 -E01A0 VARIATION SELECTOR-177 -E01A0 VS177 -E01A1 VARIATION SELECTOR-178 -E01A1 VS178 -E01A2 VARIATION SELECTOR-179 -E01A2 VS179 -E01A3 VARIATION SELECTOR-180 -E01A3 VS180 -E01A4 VARIATION SELECTOR-181 -E01A4 VS181 -E01A5 VARIATION SELECTOR-182 -E01A5 VS182 -E01A6 VARIATION SELECTOR-183 -E01A6 VS183 -E01A7 VARIATION SELECTOR-184 -E01A7 VS184 -E01A8 VARIATION SELECTOR-185 -E01A8 VS185 -E01A9 VARIATION SELECTOR-186 -E01A9 VS186 -E01AA VARIATION SELECTOR-187 -E01AA VS187 -E01AB VARIATION SELECTOR-188 -E01AB VS188 -E01AC VARIATION SELECTOR-189 -E01AC VS189 -E01AD VARIATION SELECTOR-190 -E01AD VS190 -E01AE VARIATION SELECTOR-191 -E01AE VS191 -E01AF VARIATION SELECTOR-192 -E01AF VS192 -E01B0 VARIATION SELECTOR-193 -E01B0 VS193 -E01B1 VARIATION SELECTOR-194 -E01B1 VS194 -E01B2 VARIATION SELECTOR-195 -E01B2 VS195 -E01B3 VARIATION SELECTOR-196 -E01B3 VS196 -E01B4 VARIATION SELECTOR-197 -E01B4 VS197 -E01B5 VARIATION SELECTOR-198 -E01B5 VS198 -E01B6 VARIATION SELECTOR-199 -E01B6 VS199 -E01B7 VARIATION SELECTOR-200 -E01B7 VS200 -E01B8 VARIATION SELECTOR-201 -E01B8 VS201 -E01B9 VARIATION SELECTOR-202 -E01B9 VS202 -E01BA VARIATION SELECTOR-203 -E01BA VS203 -E01BB VARIATION SELECTOR-204 -E01BB VS204 -E01BC VARIATION SELECTOR-205 -E01BC VS205 -E01BD VARIATION SELECTOR-206 -E01BD VS206 -E01BE VARIATION SELECTOR-207 -E01BE VS207 -E01BF VARIATION SELECTOR-208 -E01BF VS208 -E01C0 VARIATION SELECTOR-209 -E01C0 VS209 -E01C1 VARIATION SELECTOR-210 -E01C1 VS210 -E01C2 VARIATION SELECTOR-211 -E01C2 VS211 -E01C3 VARIATION SELECTOR-212 -E01C3 VS212 -E01C4 VARIATION SELECTOR-213 -E01C4 VS213 -E01C5 VARIATION SELECTOR-214 -E01C5 VS214 -E01C6 VARIATION SELECTOR-215 -E01C6 VS215 -E01C7 VARIATION SELECTOR-216 -E01C7 VS216 -E01C8 VARIATION SELECTOR-217 -E01C8 VS217 -E01C9 VARIATION SELECTOR-218 -E01C9 VS218 -E01CA VARIATION SELECTOR-219 -E01CA VS219 -E01CB VARIATION SELECTOR-220 -E01CB VS220 -E01CC VARIATION SELECTOR-221 -E01CC VS221 -E01CD VARIATION SELECTOR-222 -E01CD VS222 -E01CE VARIATION SELECTOR-223 -E01CE VS223 -E01CF VARIATION SELECTOR-224 -E01CF VS224 -E01D0 VARIATION SELECTOR-225 -E01D0 VS225 -E01D1 VARIATION SELECTOR-226 -E01D1 VS226 -E01D2 VARIATION SELECTOR-227 -E01D2 VS227 -E01D3 VARIATION SELECTOR-228 -E01D3 VS228 -E01D4 VARIATION SELECTOR-229 -E01D4 VS229 -E01D5 VARIATION SELECTOR-230 -E01D5 VS230 -E01D6 VARIATION SELECTOR-231 -E01D6 VS231 -E01D7 VARIATION SELECTOR-232 -E01D7 VS232 -E01D8 VARIATION SELECTOR-233 -E01D8 VS233 -E01D9 VARIATION SELECTOR-234 -E01D9 VS234 -E01DA VARIATION SELECTOR-235 -E01DA VS235 -E01DB VARIATION SELECTOR-236 -E01DB VS236 -E01DC VARIATION SELECTOR-237 -E01DC VS237 -E01DD VARIATION SELECTOR-238 -E01DD VS238 -E01DE VARIATION SELECTOR-239 -E01DE VS239 -E01DF VARIATION SELECTOR-240 -E01DF VS240 -E01E0 VARIATION SELECTOR-241 -E01E0 VS241 -E01E1 VARIATION SELECTOR-242 -E01E1 VS242 -E01E2 VARIATION SELECTOR-243 -E01E2 VS243 -E01E3 VARIATION SELECTOR-244 -E01E3 VS244 -E01E4 VARIATION SELECTOR-245 -E01E4 VS245 -E01E5 VARIATION SELECTOR-246 -E01E5 VS246 -E01E6 VARIATION SELECTOR-247 -E01E6 VS247 -E01E7 VARIATION SELECTOR-248 -E01E7 VS248 -E01E8 VARIATION SELECTOR-249 -E01E8 VS249 -E01E9 VARIATION SELECTOR-250 -E01E9 VS250 -E01EA VARIATION SELECTOR-251 -E01EA VS251 -E01EB VARIATION SELECTOR-252 -E01EB VS252 -E01EC VARIATION SELECTOR-253 -E01EC VS253 -E01ED VARIATION SELECTOR-254 -E01ED VS254 -E01EE VARIATION SELECTOR-255 -E01EE VS255 -E01EF VARIATION SELECTOR-256 -E01EF VS256 -0100 0300 LATIN CAPITAL LETTER A WITH MACRON AND GRAVE -0101 0300 LATIN SMALL LETTER A WITH MACRON AND GRAVE -0045 0329 LATIN CAPITAL LETTER E WITH VERTICAL LINE BELOW -0065 0329 LATIN SMALL LETTER E WITH VERTICAL LINE BELOW -00C8 0329 LATIN CAPITAL LETTER E WITH VERTICAL LINE BELOW AND GRAVE -00E8 0329 LATIN SMALL LETTER E WITH VERTICAL LINE BELOW AND GRAVE -00C9 0329 LATIN CAPITAL LETTER E WITH VERTICAL LINE BELOW AND ACUTE -00E9 0329 LATIN SMALL LETTER E WITH VERTICAL LINE BELOW AND ACUTE -00CA 0304 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND MACRON -00EA 0304 LATIN SMALL LETTER E WITH CIRCUMFLEX AND MACRON -00CA 030C LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND CARON -00EA 030C LATIN SMALL LETTER E WITH CIRCUMFLEX AND CARON -012A 0300 LATIN CAPITAL LETTER I WITH MACRON AND GRAVE -012B 0300 LATIN SMALL LETTER I WITH MACRON AND GRAVE -0069 0307 0301 LATIN SMALL LETTER I WITH DOT ABOVE AND ACUTE -006E 0360 0067 LATIN SMALL LETTER NG WITH TILDE ABOVE -004F 0329 LATIN CAPITAL LETTER O WITH VERTICAL LINE BELOW -006F 0329 LATIN SMALL LETTER O WITH VERTICAL LINE BELOW -00D2 0329 LATIN CAPITAL LETTER O WITH VERTICAL LINE BELOW AND GRAVE -00F2 0329 LATIN SMALL LETTER O WITH VERTICAL LINE BELOW AND GRAVE -00D3 0329 LATIN CAPITAL LETTER O WITH VERTICAL LINE BELOW AND ACUTE -00F3 0329 LATIN SMALL LETTER O WITH VERTICAL LINE BELOW AND ACUTE -0053 0329 LATIN CAPITAL LETTER S WITH VERTICAL LINE BELOW -0073 0329 LATIN SMALL LETTER S WITH VERTICAL LINE BELOW -016A 0300 LATIN CAPITAL LETTER U WITH MACRON AND GRAVE -016B 0300 LATIN SMALL LETTER U WITH MACRON AND GRAVE -0104 0301 LATIN CAPITAL LETTER A WITH OGONEK AND ACUTE -0105 0301 LATIN SMALL LETTER A WITH OGONEK AND ACUTE -0104 0303 LATIN CAPITAL LETTER A WITH OGONEK AND TILDE -0105 0303 LATIN SMALL LETTER A WITH OGONEK AND TILDE -0118 0301 LATIN CAPITAL LETTER E WITH OGONEK AND ACUTE -0119 0301 LATIN SMALL LETTER E WITH OGONEK AND ACUTE -0118 0303 LATIN CAPITAL LETTER E WITH OGONEK AND TILDE -0119 0303 LATIN SMALL LETTER E WITH OGONEK AND TILDE -0116 0301 LATIN CAPITAL LETTER E WITH DOT ABOVE AND ACUTE -0117 0301 LATIN SMALL LETTER E WITH DOT ABOVE AND ACUTE -0116 0303 LATIN CAPITAL LETTER E WITH DOT ABOVE AND TILDE -0117 0303 LATIN SMALL LETTER E WITH DOT ABOVE AND TILDE -0069 0307 0300 LATIN SMALL LETTER I WITH DOT ABOVE AND GRAVE -0069 0307 0303 LATIN SMALL LETTER I WITH DOT ABOVE AND TILDE -012E 0301 LATIN CAPITAL LETTER I WITH OGONEK AND ACUTE -012F 0307 0301 LATIN SMALL LETTER I WITH OGONEK AND DOT ABOVE AND ACUTE -012E 0303 LATIN CAPITAL LETTER I WITH OGONEK AND TILDE -012F 0307 0303 LATIN SMALL LETTER I WITH OGONEK AND DOT ABOVE AND TILDE -004A 0303 LATIN CAPITAL LETTER J WITH TILDE -006A 0307 0303 LATIN SMALL LETTER J WITH DOT ABOVE AND TILDE -004C 0303 LATIN CAPITAL LETTER L WITH TILDE -006C 0303 LATIN SMALL LETTER L WITH TILDE -004D 0303 LATIN CAPITAL LETTER M WITH TILDE -006D 0303 LATIN SMALL LETTER M WITH TILDE -0052 0303 LATIN CAPITAL LETTER R WITH TILDE -0072 0303 LATIN SMALL LETTER R WITH TILDE -0172 0301 LATIN CAPITAL LETTER U WITH OGONEK AND ACUTE -0173 0301 LATIN SMALL LETTER U WITH OGONEK AND ACUTE -0172 0303 LATIN CAPITAL LETTER U WITH OGONEK AND TILDE -0173 0303 LATIN SMALL LETTER U WITH OGONEK AND TILDE -016A 0301 LATIN CAPITAL LETTER U WITH MACRON AND ACUTE -016B 0301 LATIN SMALL LETTER U WITH MACRON AND ACUTE -016A 0303 LATIN CAPITAL LETTER U WITH MACRON AND TILDE -016B 0303 LATIN SMALL LETTER U WITH MACRON AND TILDE -00E6 0300 LATIN SMALL LETTER AE WITH GRAVE -0254 0300 LATIN SMALL LETTER OPEN O WITH GRAVE -0254 0301 LATIN SMALL LETTER OPEN O WITH ACUTE -028C 0300 LATIN SMALL LETTER TURNED V WITH GRAVE -028C 0301 LATIN SMALL LETTER TURNED V WITH ACUTE -0259 0300 LATIN SMALL LETTER SCHWA WITH GRAVE -0259 0301 LATIN SMALL LETTER SCHWA WITH ACUTE -025A 0300 LATIN SMALL LETTER HOOKED SCHWA WITH GRAVE -025A 0301 LATIN SMALL LETTER HOOKED SCHWA WITH ACUTE -0626 0627 ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH ALEF -0626 0648 ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH WAW -0626 0649 ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA -0626 06C6 ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH OE -0626 06C7 ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH U -0626 06C8 ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH YU -0626 06D0 ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH E -0626 06D5 ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH AE -0646 06A9 ARABIC SEQUENCE NOON WITH KEHEH -0995 09CD 09B7 BENGALI LETTER KHINYA -0B95 0BCD TAMIL CONSONANT K -0B99 0BCD TAMIL CONSONANT NG -0B9A 0BCD TAMIL CONSONANT C -0B9E 0BCD TAMIL CONSONANT NY -0B9F 0BCD TAMIL CONSONANT TT -0BA3 0BCD TAMIL CONSONANT NN -0BA4 0BCD TAMIL CONSONANT T -0BA8 0BCD TAMIL CONSONANT N -0BAA 0BCD TAMIL CONSONANT P -0BAE 0BCD TAMIL CONSONANT M -0BAF 0BCD TAMIL CONSONANT Y -0BB0 0BCD TAMIL CONSONANT R -0BB2 0BCD TAMIL CONSONANT L -0BB5 0BCD TAMIL CONSONANT V -0BB4 0BCD TAMIL CONSONANT LLL -0BB3 0BCD TAMIL CONSONANT LL -0BB1 0BCD TAMIL CONSONANT RR -0BA9 0BCD TAMIL CONSONANT NNN -0B9C 0BCD TAMIL CONSONANT J -0BB6 0BCD TAMIL CONSONANT SH -0BB7 0BCD TAMIL CONSONANT SS -0BB8 0BCD TAMIL CONSONANT S -0BB9 0BCD TAMIL CONSONANT H -0B95 0BCD 0BB7 0BCD TAMIL CONSONANT KSS -0B95 0BBE TAMIL SYLLABLE KAA -0B95 0BBF TAMIL SYLLABLE KI -0B95 0BC0 TAMIL SYLLABLE KII -0B95 0BC1 TAMIL SYLLABLE KU -0B95 0BC2 TAMIL SYLLABLE KUU -0B95 0BC6 TAMIL SYLLABLE KE -0B95 0BC7 TAMIL SYLLABLE KEE -0B95 0BC8 TAMIL SYLLABLE KAI -0B95 0BCA TAMIL SYLLABLE KO -0B95 0BCB TAMIL SYLLABLE KOO -0B95 0BCC TAMIL SYLLABLE KAU -0B99 0BBE TAMIL SYLLABLE NGAA -0B99 0BBF TAMIL SYLLABLE NGI -0B99 0BC0 TAMIL SYLLABLE NGII -0B99 0BC1 TAMIL SYLLABLE NGU -0B99 0BC2 TAMIL SYLLABLE NGUU -0B99 0BC6 TAMIL SYLLABLE NGE -0B99 0BC7 TAMIL SYLLABLE NGEE -0B99 0BC8 TAMIL SYLLABLE NGAI -0B99 0BCA TAMIL SYLLABLE NGO -0B99 0BCB TAMIL SYLLABLE NGOO -0B99 0BCC TAMIL SYLLABLE NGAU -0B9A 0BBE TAMIL SYLLABLE CAA -0B9A 0BBF TAMIL SYLLABLE CI -0B9A 0BC0 TAMIL SYLLABLE CII -0B9A 0BC1 TAMIL SYLLABLE CU -0B9A 0BC2 TAMIL SYLLABLE CUU -0B9A 0BC6 TAMIL SYLLABLE CE -0B9A 0BC7 TAMIL SYLLABLE CEE -0B9A 0BC8 TAMIL SYLLABLE CAI -0B9A 0BCA TAMIL SYLLABLE CO -0B9A 0BCB TAMIL SYLLABLE COO -0B9A 0BCC TAMIL SYLLABLE CAU -0B9E 0BBE TAMIL SYLLABLE NYAA -0B9E 0BBF TAMIL SYLLABLE NYI -0B9E 0BC0 TAMIL SYLLABLE NYII -0B9E 0BC1 TAMIL SYLLABLE NYU -0B9E 0BC2 TAMIL SYLLABLE NYUU -0B9E 0BC6 TAMIL SYLLABLE NYE -0B9E 0BC7 TAMIL SYLLABLE NYEE -0B9E 0BC8 TAMIL SYLLABLE NYAI -0B9E 0BCA TAMIL SYLLABLE NYO -0B9E 0BCB TAMIL SYLLABLE NYOO -0B9E 0BCC TAMIL SYLLABLE NYAU -0B9F 0BBE TAMIL SYLLABLE TTAA -0B9F 0BBF TAMIL SYLLABLE TTI -0B9F 0BC0 TAMIL SYLLABLE TTII -0B9F 0BC1 TAMIL SYLLABLE TTU -0B9F 0BC2 TAMIL SYLLABLE TTUU -0B9F 0BC6 TAMIL SYLLABLE TTE -0B9F 0BC7 TAMIL SYLLABLE TTEE -0B9F 0BC8 TAMIL SYLLABLE TTAI -0B9F 0BCA TAMIL SYLLABLE TTO -0B9F 0BCB TAMIL SYLLABLE TTOO -0B9F 0BCC TAMIL SYLLABLE TTAU -0BA3 0BBE TAMIL SYLLABLE NNAA -0BA3 0BBF TAMIL SYLLABLE NNI -0BA3 0BC0 TAMIL SYLLABLE NNII -0BA3 0BC1 TAMIL SYLLABLE NNU -0BA3 0BC2 TAMIL SYLLABLE NNUU -0BA3 0BC6 TAMIL SYLLABLE NNE -0BA3 0BC7 TAMIL SYLLABLE NNEE -0BA3 0BC8 TAMIL SYLLABLE NNAI -0BA3 0BCA TAMIL SYLLABLE NNO -0BA3 0BCB TAMIL SYLLABLE NNOO -0BA3 0BCC TAMIL SYLLABLE NNAU -0BA4 0BBE TAMIL SYLLABLE TAA -0BA4 0BBF TAMIL SYLLABLE TI -0BA4 0BC0 TAMIL SYLLABLE TII -0BA4 0BC1 TAMIL SYLLABLE TU -0BA4 0BC2 TAMIL SYLLABLE TUU -0BA4 0BC6 TAMIL SYLLABLE TE -0BA4 0BC7 TAMIL SYLLABLE TEE -0BA4 0BC8 TAMIL SYLLABLE TAI -0BA4 0BCA TAMIL SYLLABLE TO -0BA4 0BCB TAMIL SYLLABLE TOO -0BA4 0BCC TAMIL SYLLABLE TAU -0BA8 0BBE TAMIL SYLLABLE NAA -0BA8 0BBF TAMIL SYLLABLE NI -0BA8 0BC0 TAMIL SYLLABLE NII -0BA8 0BC1 TAMIL SYLLABLE NU -0BA8 0BC2 TAMIL SYLLABLE NUU -0BA8 0BC6 TAMIL SYLLABLE NE -0BA8 0BC7 TAMIL SYLLABLE NEE -0BA8 0BC8 TAMIL SYLLABLE NAI -0BA8 0BCA TAMIL SYLLABLE NO -0BA8 0BCB TAMIL SYLLABLE NOO -0BA8 0BCC TAMIL SYLLABLE NAU -0BAA 0BBE TAMIL SYLLABLE PAA -0BAA 0BBF TAMIL SYLLABLE PI -0BAA 0BC0 TAMIL SYLLABLE PII -0BAA 0BC1 TAMIL SYLLABLE PU -0BAA 0BC2 TAMIL SYLLABLE PUU -0BAA 0BC6 TAMIL SYLLABLE PE -0BAA 0BC7 TAMIL SYLLABLE PEE -0BAA 0BC8 TAMIL SYLLABLE PAI -0BAA 0BCA TAMIL SYLLABLE PO -0BAA 0BCB TAMIL SYLLABLE POO -0BAA 0BCC TAMIL SYLLABLE PAU -0BAE 0BBE TAMIL SYLLABLE MAA -0BAE 0BBF TAMIL SYLLABLE MI -0BAE 0BC0 TAMIL SYLLABLE MII -0BAE 0BC1 TAMIL SYLLABLE MU -0BAE 0BC2 TAMIL SYLLABLE MUU -0BAE 0BC6 TAMIL SYLLABLE ME -0BAE 0BC7 TAMIL SYLLABLE MEE -0BAE 0BC8 TAMIL SYLLABLE MAI -0BAE 0BCA TAMIL SYLLABLE MO -0BAE 0BCB TAMIL SYLLABLE MOO -0BAE 0BCC TAMIL SYLLABLE MAU -0BAF 0BBE TAMIL SYLLABLE YAA -0BAF 0BBF TAMIL SYLLABLE YI -0BAF 0BC0 TAMIL SYLLABLE YII -0BAF 0BC1 TAMIL SYLLABLE YU -0BAF 0BC2 TAMIL SYLLABLE YUU -0BAF 0BC6 TAMIL SYLLABLE YE -0BAF 0BC7 TAMIL SYLLABLE YEE -0BAF 0BC8 TAMIL SYLLABLE YAI -0BAF 0BCA TAMIL SYLLABLE YO -0BAF 0BCB TAMIL SYLLABLE YOO -0BAF 0BCC TAMIL SYLLABLE YAU -0BB0 0BBE TAMIL SYLLABLE RAA -0BB0 0BBF TAMIL SYLLABLE RI -0BB0 0BC0 TAMIL SYLLABLE RII -0BB0 0BC1 TAMIL SYLLABLE RU -0BB0 0BC2 TAMIL SYLLABLE RUU -0BB0 0BC6 TAMIL SYLLABLE RE -0BB0 0BC7 TAMIL SYLLABLE REE -0BB0 0BC8 TAMIL SYLLABLE RAI -0BB0 0BCA TAMIL SYLLABLE RO -0BB0 0BCB TAMIL SYLLABLE ROO -0BB0 0BCC TAMIL SYLLABLE RAU -0BB2 0BBE TAMIL SYLLABLE LAA -0BB2 0BBF TAMIL SYLLABLE LI -0BB2 0BC0 TAMIL SYLLABLE LII -0BB2 0BC1 TAMIL SYLLABLE LU -0BB2 0BC2 TAMIL SYLLABLE LUU -0BB2 0BC6 TAMIL SYLLABLE LE -0BB2 0BC7 TAMIL SYLLABLE LEE -0BB2 0BC8 TAMIL SYLLABLE LAI -0BB2 0BCA TAMIL SYLLABLE LO -0BB2 0BCB TAMIL SYLLABLE LOO -0BB2 0BCC TAMIL SYLLABLE LAU -0BB5 0BBE TAMIL SYLLABLE VAA -0BB5 0BBF TAMIL SYLLABLE VI -0BB5 0BC0 TAMIL SYLLABLE VII -0BB5 0BC1 TAMIL SYLLABLE VU -0BB5 0BC2 TAMIL SYLLABLE VUU -0BB5 0BC6 TAMIL SYLLABLE VE -0BB5 0BC7 TAMIL SYLLABLE VEE -0BB5 0BC8 TAMIL SYLLABLE VAI -0BB5 0BCA TAMIL SYLLABLE VO -0BB5 0BCB TAMIL SYLLABLE VOO -0BB5 0BCC TAMIL SYLLABLE VAU -0BB4 0BBE TAMIL SYLLABLE LLLAA -0BB4 0BBF TAMIL SYLLABLE LLLI -0BB4 0BC0 TAMIL SYLLABLE LLLII -0BB4 0BC1 TAMIL SYLLABLE LLLU -0BB4 0BC2 TAMIL SYLLABLE LLLUU -0BB4 0BC6 TAMIL SYLLABLE LLLE -0BB4 0BC7 TAMIL SYLLABLE LLLEE -0BB4 0BC8 TAMIL SYLLABLE LLLAI -0BB4 0BCA TAMIL SYLLABLE LLLO -0BB4 0BCB TAMIL SYLLABLE LLLOO -0BB4 0BCC TAMIL SYLLABLE LLLAU -0BB3 0BBE TAMIL SYLLABLE LLAA -0BB3 0BBF TAMIL SYLLABLE LLI -0BB3 0BC0 TAMIL SYLLABLE LLII -0BB3 0BC1 TAMIL SYLLABLE LLU -0BB3 0BC2 TAMIL SYLLABLE LLUU -0BB3 0BC6 TAMIL SYLLABLE LLE -0BB3 0BC7 TAMIL SYLLABLE LLEE -0BB3 0BC8 TAMIL SYLLABLE LLAI -0BB3 0BCA TAMIL SYLLABLE LLO -0BB3 0BCB TAMIL SYLLABLE LLOO -0BB3 0BCC TAMIL SYLLABLE LLAU -0BB1 0BBE TAMIL SYLLABLE RRAA -0BB1 0BBF TAMIL SYLLABLE RRI -0BB1 0BC0 TAMIL SYLLABLE RRII -0BB1 0BC1 TAMIL SYLLABLE RRU -0BB1 0BC2 TAMIL SYLLABLE RRUU -0BB1 0BC6 TAMIL SYLLABLE RRE -0BB1 0BC7 TAMIL SYLLABLE RREE -0BB1 0BC8 TAMIL SYLLABLE RRAI -0BB1 0BCA TAMIL SYLLABLE RRO -0BB1 0BCB TAMIL SYLLABLE RROO -0BB1 0BCC TAMIL SYLLABLE RRAU -0BA9 0BBE TAMIL SYLLABLE NNNAA -0BA9 0BBF TAMIL SYLLABLE NNNI -0BA9 0BC0 TAMIL SYLLABLE NNNII -0BA9 0BC1 TAMIL SYLLABLE NNNU -0BA9 0BC2 TAMIL SYLLABLE NNNUU -0BA9 0BC6 TAMIL SYLLABLE NNNE -0BA9 0BC7 TAMIL SYLLABLE NNNEE -0BA9 0BC8 TAMIL SYLLABLE NNNAI -0BA9 0BCA TAMIL SYLLABLE NNNO -0BA9 0BCB TAMIL SYLLABLE NNNOO -0BA9 0BCC TAMIL SYLLABLE NNNAU -0B9C 0BBE TAMIL SYLLABLE JAA -0B9C 0BBF TAMIL SYLLABLE JI -0B9C 0BC0 TAMIL SYLLABLE JII -0B9C 0BC1 TAMIL SYLLABLE JU -0B9C 0BC2 TAMIL SYLLABLE JUU -0B9C 0BC6 TAMIL SYLLABLE JE -0B9C 0BC7 TAMIL SYLLABLE JEE -0B9C 0BC8 TAMIL SYLLABLE JAI -0B9C 0BCA TAMIL SYLLABLE JO -0B9C 0BCB TAMIL SYLLABLE JOO -0B9C 0BCC TAMIL SYLLABLE JAU -0BB6 0BBE TAMIL SYLLABLE SHAA -0BB6 0BBF TAMIL SYLLABLE SHI -0BB6 0BC0 TAMIL SYLLABLE SHII -0BB6 0BC1 TAMIL SYLLABLE SHU -0BB6 0BC2 TAMIL SYLLABLE SHUU -0BB6 0BC6 TAMIL SYLLABLE SHE -0BB6 0BC7 TAMIL SYLLABLE SHEE -0BB6 0BC8 TAMIL SYLLABLE SHAI -0BB6 0BCA TAMIL SYLLABLE SHO -0BB6 0BCB TAMIL SYLLABLE SHOO -0BB6 0BCC TAMIL SYLLABLE SHAU -0BB7 0BBE TAMIL SYLLABLE SSAA -0BB7 0BBF TAMIL SYLLABLE SSI -0BB7 0BC0 TAMIL SYLLABLE SSII -0BB7 0BC1 TAMIL SYLLABLE SSU -0BB7 0BC2 TAMIL SYLLABLE SSUU -0BB7 0BC6 TAMIL SYLLABLE SSE -0BB7 0BC7 TAMIL SYLLABLE SSEE -0BB7 0BC8 TAMIL SYLLABLE SSAI -0BB7 0BCA TAMIL SYLLABLE SSO -0BB7 0BCB TAMIL SYLLABLE SSOO -0BB7 0BCC TAMIL SYLLABLE SSAU -0BB8 0BBE TAMIL SYLLABLE SAA -0BB8 0BBF TAMIL SYLLABLE SI -0BB8 0BC0 TAMIL SYLLABLE SII -0BB8 0BC1 TAMIL SYLLABLE SU -0BB8 0BC2 TAMIL SYLLABLE SUU -0BB8 0BC6 TAMIL SYLLABLE SE -0BB8 0BC7 TAMIL SYLLABLE SEE -0BB8 0BC8 TAMIL SYLLABLE SAI -0BB8 0BCA TAMIL SYLLABLE SO -0BB8 0BCB TAMIL SYLLABLE SOO -0BB8 0BCC TAMIL SYLLABLE SAU -0BB9 0BBE TAMIL SYLLABLE HAA -0BB9 0BBF TAMIL SYLLABLE HI -0BB9 0BC0 TAMIL SYLLABLE HII -0BB9 0BC1 TAMIL SYLLABLE HU -0BB9 0BC2 TAMIL SYLLABLE HUU -0BB9 0BC6 TAMIL SYLLABLE HE -0BB9 0BC7 TAMIL SYLLABLE HEE -0BB9 0BC8 TAMIL SYLLABLE HAI -0BB9 0BCA TAMIL SYLLABLE HO -0BB9 0BCB TAMIL SYLLABLE HOO -0BB9 0BCC TAMIL SYLLABLE HAU -0B95 0BCD 0BB7 TAMIL SYLLABLE KSSA -0B95 0BCD 0BB7 0BBE TAMIL SYLLABLE KSSAA -0B95 0BCD 0BB7 0BBF TAMIL SYLLABLE KSSI -0B95 0BCD 0BB7 0BC0 TAMIL SYLLABLE KSSII -0B95 0BCD 0BB7 0BC1 TAMIL SYLLABLE KSSU -0B95 0BCD 0BB7 0BC2 TAMIL SYLLABLE KSSUU -0B95 0BCD 0BB7 0BC6 TAMIL SYLLABLE KSSE -0B95 0BCD 0BB7 0BC7 TAMIL SYLLABLE KSSEE -0B95 0BCD 0BB7 0BC8 TAMIL SYLLABLE KSSAI -0B95 0BCD 0BB7 0BCA TAMIL SYLLABLE KSSO -0B95 0BCD 0BB7 0BCB TAMIL SYLLABLE KSSOO -0B95 0BCD 0BB7 0BCC TAMIL SYLLABLE KSSAU -0BB6 0BCD 0BB0 0BC0 TAMIL SYLLABLE SHRII -0DCA 200D 0DBA SINHALA CONSONANT SIGN YANSAYA -0DCA 200D 0DBB SINHALA CONSONANT SIGN RAKAARAANSAYA -0DBB 0DCA 200D SINHALA CONSONANT SIGN REPAYA -10E3 0302 GEORGIAN LETTER U-BRJGU -17D2 1780 KHMER CONSONANT SIGN COENG KA -17D2 1781 KHMER CONSONANT SIGN COENG KHA -17D2 1782 KHMER CONSONANT SIGN COENG KO -17D2 1783 KHMER CONSONANT SIGN COENG KHO -17D2 1784 KHMER CONSONANT SIGN COENG NGO -17D2 1785 KHMER CONSONANT SIGN COENG CA -17D2 1786 KHMER CONSONANT SIGN COENG CHA -17D2 1787 KHMER CONSONANT SIGN COENG CO -17D2 1788 KHMER CONSONANT SIGN COENG CHO -17D2 1789 KHMER CONSONANT SIGN COENG NYO -17D2 178A KHMER CONSONANT SIGN COENG DA -17D2 178B KHMER CONSONANT SIGN COENG TTHA -17D2 178C KHMER CONSONANT SIGN COENG DO -17D2 178D KHMER CONSONANT SIGN COENG TTHO -17D2 178E KHMER CONSONANT SIGN COENG NA -17D2 178F KHMER CONSONANT SIGN COENG TA -17D2 1790 KHMER CONSONANT SIGN COENG THA -17D2 1791 KHMER CONSONANT SIGN COENG TO -17D2 1792 KHMER CONSONANT SIGN COENG THO -17D2 1793 KHMER CONSONANT SIGN COENG NO -17D2 1794 KHMER CONSONANT SIGN COENG BA -17D2 1795 KHMER CONSONANT SIGN COENG PHA -17D2 1796 KHMER CONSONANT SIGN COENG PO -17D2 1797 KHMER CONSONANT SIGN COENG PHO -17D2 1798 KHMER CONSONANT SIGN COENG MO -17D2 1799 KHMER CONSONANT SIGN COENG YO -17D2 179A KHMER CONSONANT SIGN COENG RO -17D2 179B KHMER CONSONANT SIGN COENG LO -17D2 179C KHMER CONSONANT SIGN COENG VO -17D2 179D KHMER CONSONANT SIGN COENG SHA -17D2 179E KHMER CONSONANT SIGN COENG SSA -17D2 179F KHMER CONSONANT SIGN COENG SA -17D2 17A0 KHMER CONSONANT SIGN COENG HA -17D2 17A1 KHMER CONSONANT SIGN COENG LA -17D2 17A2 KHMER VOWEL SIGN COENG QA -17D2 17A7 KHMER INDEPENDENT VOWEL SIGN COENG QU -17D2 17AB KHMER INDEPENDENT VOWEL SIGN COENG RY -17D2 17AC KHMER INDEPENDENT VOWEL SIGN COENG RYY -17D2 17AF KHMER INDEPENDENT VOWEL SIGN COENG QE -17BB 17C6 KHMER VOWEL SIGN OM -17B6 17C6 KHMER VOWEL SIGN AAM -304B 309A HIRAGANA LETTER BIDAKUON NGA -304D 309A HIRAGANA LETTER BIDAKUON NGI -304F 309A HIRAGANA LETTER BIDAKUON NGU -3051 309A HIRAGANA LETTER BIDAKUON NGE -3053 309A HIRAGANA LETTER BIDAKUON NGO -30AB 309A KATAKANA LETTER BIDAKUON NGA -30AD 309A KATAKANA LETTER BIDAKUON NGI -30AF 309A KATAKANA LETTER BIDAKUON NGU -30B1 309A KATAKANA LETTER BIDAKUON NGE -30B3 309A KATAKANA LETTER BIDAKUON NGO -30BB 309A KATAKANA LETTER AINU CE -30C4 309A KATAKANA LETTER AINU TU -30C8 309A KATAKANA LETTER AINU TO -31F7 309A KATAKANA LETTER AINU P -02E5 02E9 MODIFIER LETTER EXTRA-HIGH EXTRA-LOW CONTOUR TONE BAR -02E9 02E5 MODIFIER LETTER EXTRA-LOW EXTRA-HIGH CONTOUR TONE BAR -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/Name.pm b/software/Slic3r-1.3.0.64bit/lib/unicore/Name.pm deleted file mode 100644 index 6c94c1e2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/Name.pm +++ /dev/null @@ -1,426 +0,0 @@ -#line 1 "unicore/Name.pm" -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -package charnames; - -# This module contains machine-generated tables and code for the -# algorithmically-determinable Unicode character names. The following -# routines can be used to translate between name and code point and vice versa - -{ # Closure - - # Matches legal code point. 4-6 hex numbers, If there are 6, the first - # two must be 10; if there are 5, the first must not be a 0. Written this - # way to decrease backtracking. The first regex allows the code point to - # be at the end of a word, but to work properly, the word shouldn't end - # with a valid hex character. The second one won't match a code point at - # the end of a word, and doesn't have the run-on issue - my $run_on_code_point_re = qr/(?^aax: (?: 10[0-9A-F]{4} | [1-9A-F][0-9A-F]{4} | [0-9A-F]{4} ) \b)/; - my $code_point_re = qr/(?^aa:\b(?^aax: (?: 10[0-9A-F]{4} | [1-9A-F][0-9A-F]{4} | [0-9A-F]{4} ) \b))/; - - # In the following hash, the keys are the bases of names which include - # the code point in the name, like CJK UNIFIED IDEOGRAPH-4E01. The value - # of each key is another hash which is used to get the low and high ends - # for each range of code points that apply to the name. - my %names_ending_in_code_point = ( -'CJK COMPATIBILITY IDEOGRAPH' => -{ -'high' => -[ -64109, -64217, -195101, -], -'low' => -[ -63744, -64112, -194560, -], -}, -'CJK UNIFIED IDEOGRAPH' => -{ -'high' => -[ -19893, -40917, -173782, -177972, -178205, -183969, -], -'low' => -[ -13312, -19968, -131072, -173824, -177984, -178208, -], -}, - - ); - - # The following hash is a copy of the previous one, except is for loose - # matching, so each name has blanks and dashes squeezed out - my %loose_names_ending_in_code_point = ( -'CJKCOMPATIBILITYIDEOGRAPH' => -{ -'high' => -[ -64109, -64217, -195101, -], -'low' => -[ -63744, -64112, -194560, -], -}, -'CJKUNIFIEDIDEOGRAPH' => -{ -'high' => -[ -19893, -40917, -173782, -177972, -178205, -183969, -], -'low' => -[ -13312, -19968, -131072, -173824, -177984, -178208, -], -}, - - ); - - # And the following array gives the inverse mapping from code points to - # names. Lowest code points are first - my @code_points_ending_in_code_point = ( - -{ -'high' => 19893, -'low' => 13312, -'name' => 'CJK UNIFIED IDEOGRAPH', -}, -{ -'high' => 40917, -'low' => 19968, -'name' => 'CJK UNIFIED IDEOGRAPH', -}, -{ -'high' => 64109, -'low' => 63744, -'name' => 'CJK COMPATIBILITY IDEOGRAPH', -}, -{ -'high' => 64217, -'low' => 64112, -'name' => 'CJK COMPATIBILITY IDEOGRAPH', -}, -{ -'high' => 173782, -'low' => 131072, -'name' => 'CJK UNIFIED IDEOGRAPH', -}, -{ -'high' => 177972, -'low' => 173824, -'name' => 'CJK UNIFIED IDEOGRAPH', -}, -{ -'high' => 178205, -'low' => 177984, -'name' => 'CJK UNIFIED IDEOGRAPH', -}, -{ -'high' => 183969, -'low' => 178208, -'name' => 'CJK UNIFIED IDEOGRAPH', -}, -{ -'high' => 195101, -'low' => 194560, -'name' => 'CJK COMPATIBILITY IDEOGRAPH', -}, -, - - ); - - # Convert from code point to Jamo short name for use in composing Hangul - # syllable names - my %Jamo = ( -4352 => 'G', -4353 => 'GG', -4354 => 'N', -4355 => 'D', -4356 => 'DD', -4357 => 'R', -4358 => 'M', -4359 => 'B', -4360 => 'BB', -4361 => 'S', -4362 => 'SS', -4363 => '', -4364 => 'J', -4365 => 'JJ', -4366 => 'C', -4367 => 'K', -4368 => 'T', -4369 => 'P', -4370 => 'H', -4449 => 'A', -4450 => 'AE', -4451 => 'YA', -4452 => 'YAE', -4453 => 'EO', -4454 => 'E', -4455 => 'YEO', -4456 => 'YE', -4457 => 'O', -4458 => 'WA', -4459 => 'WAE', -4460 => 'OE', -4461 => 'YO', -4462 => 'U', -4463 => 'WEO', -4464 => 'WE', -4465 => 'WI', -4466 => 'YU', -4467 => 'EU', -4468 => 'YI', -4469 => 'I', -4520 => 'G', -4521 => 'GG', -4522 => 'GS', -4523 => 'N', -4524 => 'NJ', -4525 => 'NH', -4526 => 'D', -4527 => 'L', -4528 => 'LG', -4529 => 'LM', -4530 => 'LB', -4531 => 'LS', -4532 => 'LT', -4533 => 'LP', -4534 => 'LH', -4535 => 'M', -4536 => 'B', -4537 => 'BS', -4538 => 'S', -4539 => 'SS', -4540 => 'NG', -4541 => 'J', -4542 => 'C', -4543 => 'K', -4544 => 'T', -4545 => 'P', -4546 => 'H', - - ); - - # Leading consonant (can be null) - my %Jamo_L = ( -'' => 11, -'B' => 7, -'BB' => 8, -'C' => 14, -'D' => 3, -'DD' => 4, -'G' => 0, -'GG' => 1, -'H' => 18, -'J' => 12, -'JJ' => 13, -'K' => 15, -'M' => 6, -'N' => 2, -'P' => 17, -'R' => 5, -'S' => 9, -'SS' => 10, -'T' => 16, - - ); - - # Vowel - my %Jamo_V = ( -'A' => 0, -'AE' => 1, -'E' => 5, -'EO' => 4, -'EU' => 18, -'I' => 20, -'O' => 8, -'OE' => 11, -'U' => 13, -'WA' => 9, -'WAE' => 10, -'WE' => 15, -'WEO' => 14, -'WI' => 16, -'YA' => 2, -'YAE' => 3, -'YE' => 7, -'YEO' => 6, -'YI' => 19, -'YO' => 12, -'YU' => 17, - - ); - - # Optional trailing consonant - my %Jamo_T = ( -'B' => 17, -'BS' => 18, -'C' => 23, -'D' => 7, -'G' => 1, -'GG' => 2, -'GS' => 3, -'H' => 27, -'J' => 22, -'K' => 24, -'L' => 8, -'LB' => 11, -'LG' => 9, -'LH' => 15, -'LM' => 10, -'LP' => 14, -'LS' => 12, -'LT' => 13, -'M' => 16, -'N' => 4, -'NG' => 21, -'NH' => 6, -'NJ' => 5, -'P' => 26, -'S' => 19, -'SS' => 20, -'T' => 25, - - ); - - # Computed re that splits up a Hangul name into LVT or LV syllables - my $syllable_re = qr/(|B|BB|C|D|DD|G|GG|H|J|JJ|K|M|N|P|R|S|SS|T)(A|AE|E|EO|EU|I|O|OE|U|WA|WAE|WE|WEO|WI|YA|YAE|YE|YEO|YI|YO|YU)(B|BS|C|D|G|GG|GS|H|J|K|L|LB|LG|LH|LM|LP|LS|LT|M|N|NG|NH|NJ|P|S|SS|T)?/; - - my $HANGUL_SYLLABLE = "HANGUL SYLLABLE "; - my $loose_HANGUL_SYLLABLE = "HANGULSYLLABLE"; - - # These constants names and values were taken from the Unicode standard, - # version 5.1, section 3.12. They are used in conjunction with Hangul - # syllables - my $SBase = 0xAC00; - my $LBase = 0x1100; - my $VBase = 0x1161; - my $TBase = 0x11A7; - my $SCount = 11172; - my $LCount = 19; - my $VCount = 21; - my $TCount = 28; - my $NCount = $VCount * $TCount; - - sub name_to_code_point_special { - my ($name, $loose) = @_; - - # Returns undef if not one of the specially handled names; otherwise - # returns the code point equivalent to the input name - # $loose is non-zero if to use loose matching, 'name' in that case - # must be input as upper case with all blanks and dashes squeezed out. - - if ((! $loose && $name =~ s/$HANGUL_SYLLABLE//) - || ($loose && $name =~ s/$loose_HANGUL_SYLLABLE//)) - { - return if $name !~ qr/^$syllable_re$/; - my $L = $Jamo_L{$1}; - my $V = $Jamo_V{$2}; - my $T = (defined $3) ? $Jamo_T{$3} : 0; - return ($L * $VCount + $V) * $TCount + $T + $SBase; - } - - # Name must end in 'code_point' for this to handle. - return if (($loose && $name !~ /^ (.*?) ($run_on_code_point_re) $/x) - || (! $loose && $name !~ /^ (.*) ($code_point_re) $/x)); - - my $base = $1; - my $code_point = CORE::hex $2; - my $names_ref; - - if ($loose) { - $names_ref = \%loose_names_ending_in_code_point; - } - else { - return if $base !~ s/-$//; - $names_ref = \%names_ending_in_code_point; - } - - # Name must be one of the ones which has the code point in it. - return if ! $names_ref->{$base}; - - # Look through the list of ranges that apply to this name to see if - # the code point is in one of them. - for (my $i = 0; $i < scalar @{$names_ref->{$base}{'low'}}; $i++) { - return if $names_ref->{$base}{'low'}->[$i] > $code_point; - next if $names_ref->{$base}{'high'}->[$i] < $code_point; - - # Here, the code point is in the range. - return $code_point; - } - - # Here, looked like the name had a code point number in it, but - # did not match one of the valid ones. - return; - } - - sub code_point_to_name_special { - my $code_point = shift; - - # Returns the name of a code point if algorithmically determinable; - # undef if not - - # If in the Hangul range, calculate the name based on Unicode's - # algorithm - if ($code_point >= $SBase && $code_point <= $SBase + $SCount -1) { - use integer; - my $SIndex = $code_point - $SBase; - my $L = $LBase + $SIndex / $NCount; - my $V = $VBase + ($SIndex % $NCount) / $TCount; - my $T = $TBase + $SIndex % $TCount; - $name = "$HANGUL_SYLLABLE$Jamo{$L}$Jamo{$V}"; - $name .= $Jamo{$T} if $T != $TBase; - return $name; - } - - # Look through list of these code points for one in range. - foreach my $hash (@code_points_ending_in_code_point) { - return if $code_point < $hash->{'low'}; - if ($code_point <= $hash->{'high'}) { - return sprintf("%s-%04X", $hash->{'name'}, $code_point); - } - } - return; # None found - } -} # End closure - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/NamedSequences.txt b/software/Slic3r-1.3.0.64bit/lib/unicore/NamedSequences.txt deleted file mode 100644 index b1bfc2f0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/NamedSequences.txt +++ /dev/null @@ -1,529 +0,0 @@ -# NamedSequences-8.0.0.txt -# Date: 2015-02-19, 00:30:00 GMT [KW, LI] -# -# Unicode Named Character Sequences -# -# This file is a normative contributory data file in the Unicode -# Character Database. -# -# Copyright (c) 1991-2015 Unicode, Inc. -# For terms of use, see http://www.unicode.org/terms_of_use.html -# -# Format: -# Name of Sequence; Code Point Sequence for USI -# -# Code point sequences in the Unicode Character Database -# use spaces as delimiters. The corresponding format for a -# UCS Sequence Identifier (USI) in ISO/IEC 10646 uses -# comma delimitation and angle brackets. Thus, a Unicode -# named character sequence of the form: -# -# EXAMPLE NAME;1000 1001 1002 -# -# in this data file, would correspond to an ISO/IEC 10646 USI -# as follows: -# -# <1000, 1001, 1002> -# -# For more information, see UAX #34: Unicode Named Character -# Sequences, at http://www.unicode.org/unicode/reports/tr34/ -# -# Note: The order of entries in this file is not significant. -# However, entries are generally in script order corresponding -# to block order in the Unicode Standard, to make it easier -# to find entries in the list. - -# ================================================ - -LATIN CAPITAL LETTER A WITH MACRON AND GRAVE;0100 0300 -LATIN SMALL LETTER A WITH MACRON AND GRAVE;0101 0300 -LATIN CAPITAL LETTER E WITH VERTICAL LINE BELOW;0045 0329 -LATIN SMALL LETTER E WITH VERTICAL LINE BELOW;0065 0329 -LATIN CAPITAL LETTER E WITH VERTICAL LINE BELOW AND GRAVE;00C8 0329 -LATIN SMALL LETTER E WITH VERTICAL LINE BELOW AND GRAVE;00E8 0329 -LATIN CAPITAL LETTER E WITH VERTICAL LINE BELOW AND ACUTE;00C9 0329 -LATIN SMALL LETTER E WITH VERTICAL LINE BELOW AND ACUTE;00E9 0329 -LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND MACRON;00CA 0304 -LATIN SMALL LETTER E WITH CIRCUMFLEX AND MACRON;00EA 0304 -LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND CARON;00CA 030C -LATIN SMALL LETTER E WITH CIRCUMFLEX AND CARON;00EA 030C -LATIN CAPITAL LETTER I WITH MACRON AND GRAVE;012A 0300 -LATIN SMALL LETTER I WITH MACRON AND GRAVE;012B 0300 -LATIN SMALL LETTER I WITH DOT ABOVE AND ACUTE;0069 0307 0301 -LATIN SMALL LETTER NG WITH TILDE ABOVE;006E 0360 0067 -LATIN CAPITAL LETTER O WITH VERTICAL LINE BELOW;004F 0329 -LATIN SMALL LETTER O WITH VERTICAL LINE BELOW;006F 0329 -LATIN CAPITAL LETTER O WITH VERTICAL LINE BELOW AND GRAVE;00D2 0329 -LATIN SMALL LETTER O WITH VERTICAL LINE BELOW AND GRAVE;00F2 0329 -LATIN CAPITAL LETTER O WITH VERTICAL LINE BELOW AND ACUTE;00D3 0329 -LATIN SMALL LETTER O WITH VERTICAL LINE BELOW AND ACUTE;00F3 0329 -LATIN CAPITAL LETTER S WITH VERTICAL LINE BELOW;0053 0329 -LATIN SMALL LETTER S WITH VERTICAL LINE BELOW;0073 0329 -LATIN CAPITAL LETTER U WITH MACRON AND GRAVE;016A 0300 -LATIN SMALL LETTER U WITH MACRON AND GRAVE;016B 0300 - -# Additions for Lithuanian. -# Provisional 2006-05-18, Approved 2007-10-19 - -LATIN CAPITAL LETTER A WITH OGONEK AND ACUTE;0104 0301 -LATIN SMALL LETTER A WITH OGONEK AND ACUTE;0105 0301 -LATIN CAPITAL LETTER A WITH OGONEK AND TILDE;0104 0303 -LATIN SMALL LETTER A WITH OGONEK AND TILDE;0105 0303 -LATIN CAPITAL LETTER E WITH OGONEK AND ACUTE;0118 0301 -LATIN SMALL LETTER E WITH OGONEK AND ACUTE;0119 0301 -LATIN CAPITAL LETTER E WITH OGONEK AND TILDE;0118 0303 -LATIN SMALL LETTER E WITH OGONEK AND TILDE;0119 0303 -LATIN CAPITAL LETTER E WITH DOT ABOVE AND ACUTE;0116 0301 -LATIN SMALL LETTER E WITH DOT ABOVE AND ACUTE;0117 0301 -LATIN CAPITAL LETTER E WITH DOT ABOVE AND TILDE;0116 0303 -LATIN SMALL LETTER E WITH DOT ABOVE AND TILDE;0117 0303 -LATIN SMALL LETTER I WITH DOT ABOVE AND GRAVE;0069 0307 0300 -LATIN SMALL LETTER I WITH DOT ABOVE AND TILDE;0069 0307 0303 -LATIN CAPITAL LETTER I WITH OGONEK AND ACUTE;012E 0301 -LATIN SMALL LETTER I WITH OGONEK AND DOT ABOVE AND ACUTE;012F 0307 0301 -LATIN CAPITAL LETTER I WITH OGONEK AND TILDE;012E 0303 -LATIN SMALL LETTER I WITH OGONEK AND DOT ABOVE AND TILDE;012F 0307 0303 -LATIN CAPITAL LETTER J WITH TILDE;004A 0303 -LATIN SMALL LETTER J WITH DOT ABOVE AND TILDE;006A 0307 0303 -LATIN CAPITAL LETTER L WITH TILDE;004C 0303 -LATIN SMALL LETTER L WITH TILDE;006C 0303 -LATIN CAPITAL LETTER M WITH TILDE;004D 0303 -LATIN SMALL LETTER M WITH TILDE;006D 0303 -LATIN CAPITAL LETTER R WITH TILDE;0052 0303 -LATIN SMALL LETTER R WITH TILDE;0072 0303 -LATIN CAPITAL LETTER U WITH OGONEK AND ACUTE;0172 0301 -LATIN SMALL LETTER U WITH OGONEK AND ACUTE;0173 0301 -LATIN CAPITAL LETTER U WITH OGONEK AND TILDE;0172 0303 -LATIN SMALL LETTER U WITH OGONEK AND TILDE;0173 0303 -LATIN CAPITAL LETTER U WITH MACRON AND ACUTE;016A 0301 -LATIN SMALL LETTER U WITH MACRON AND ACUTE;016B 0301 -LATIN CAPITAL LETTER U WITH MACRON AND TILDE;016A 0303 -LATIN SMALL LETTER U WITH MACRON AND TILDE;016B 0303 - -# Entries for JIS X 0213 compatibility mapping. -# Provisional 2008-11-07, Approved 2010-05-14 - -LATIN SMALL LETTER AE WITH GRAVE;00E6 0300 -LATIN SMALL LETTER OPEN O WITH GRAVE;0254 0300 -LATIN SMALL LETTER OPEN O WITH ACUTE;0254 0301 -LATIN SMALL LETTER TURNED V WITH GRAVE;028C 0300 -LATIN SMALL LETTER TURNED V WITH ACUTE;028C 0301 -LATIN SMALL LETTER SCHWA WITH GRAVE;0259 0300 -LATIN SMALL LETTER SCHWA WITH ACUTE;0259 0301 -LATIN SMALL LETTER HOOKED SCHWA WITH GRAVE;025A 0300 -LATIN SMALL LETTER HOOKED SCHWA WITH ACUTE;025A 0301 - -# Entries for Uyghur and Chagatai. -# Provisional N/A, Approved 2012-11-08 - -ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH ALEF;0626 0627 -ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH WAW;0626 0648 -ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA;0626 0649 -ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH OE;0626 06C6 -ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH U;0626 06C7 -ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH YU;0626 06C8 -ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH E;0626 06D0 -ARABIC SEQUENCE YEH WITH HAMZA ABOVE WITH AE;0626 06D5 -ARABIC SEQUENCE NOON WITH KEHEH;0646 06A9 - -# Entry for a Bangla entity. -# Provisional 2009-08-10, Approved 2010-05-14 -# -# Note that this same sequence is also used for the ASSAMESE LETTER KSSA. - -BENGALI LETTER KHINYA;0995 09CD 09B7 - -# Additions for Tamil. -# Provisional 2008-02-08, Approved 2009-08-14 -# -# A visual display of the Tamil named character sequences is available -# in the documentation for the Unicode Standard. See Section 12.6, Tamil in -# http://www.unicode.org/versions/latest/ - -TAMIL CONSONANT K; 0B95 0BCD -TAMIL CONSONANT NG; 0B99 0BCD -TAMIL CONSONANT C; 0B9A 0BCD -TAMIL CONSONANT NY; 0B9E 0BCD -TAMIL CONSONANT TT; 0B9F 0BCD -TAMIL CONSONANT NN; 0BA3 0BCD -TAMIL CONSONANT T; 0BA4 0BCD -TAMIL CONSONANT N; 0BA8 0BCD -TAMIL CONSONANT P; 0BAA 0BCD -TAMIL CONSONANT M; 0BAE 0BCD -TAMIL CONSONANT Y; 0BAF 0BCD -TAMIL CONSONANT R; 0BB0 0BCD -TAMIL CONSONANT L; 0BB2 0BCD -TAMIL CONSONANT V; 0BB5 0BCD -TAMIL CONSONANT LLL;0BB4 0BCD -TAMIL CONSONANT LL; 0BB3 0BCD -TAMIL CONSONANT RR; 0BB1 0BCD -TAMIL CONSONANT NNN;0BA9 0BCD -TAMIL CONSONANT J; 0B9C 0BCD -TAMIL CONSONANT SH; 0BB6 0BCD -TAMIL CONSONANT SS; 0BB7 0BCD -TAMIL CONSONANT S; 0BB8 0BCD -TAMIL CONSONANT H; 0BB9 0BCD -TAMIL CONSONANT KSS;0B95 0BCD 0BB7 0BCD - -TAMIL SYLLABLE KAA; 0B95 0BBE -TAMIL SYLLABLE KI; 0B95 0BBF -TAMIL SYLLABLE KII; 0B95 0BC0 -TAMIL SYLLABLE KU; 0B95 0BC1 -TAMIL SYLLABLE KUU; 0B95 0BC2 -TAMIL SYLLABLE KE; 0B95 0BC6 -TAMIL SYLLABLE KEE; 0B95 0BC7 -TAMIL SYLLABLE KAI; 0B95 0BC8 -TAMIL SYLLABLE KO; 0B95 0BCA -TAMIL SYLLABLE KOO; 0B95 0BCB -TAMIL SYLLABLE KAU; 0B95 0BCC - -TAMIL SYLLABLE NGAA; 0B99 0BBE -TAMIL SYLLABLE NGI; 0B99 0BBF -TAMIL SYLLABLE NGII; 0B99 0BC0 -TAMIL SYLLABLE NGU; 0B99 0BC1 -TAMIL SYLLABLE NGUU; 0B99 0BC2 -TAMIL SYLLABLE NGE; 0B99 0BC6 -TAMIL SYLLABLE NGEE; 0B99 0BC7 -TAMIL SYLLABLE NGAI; 0B99 0BC8 -TAMIL SYLLABLE NGO; 0B99 0BCA -TAMIL SYLLABLE NGOO; 0B99 0BCB -TAMIL SYLLABLE NGAU; 0B99 0BCC - -TAMIL SYLLABLE CAA; 0B9A 0BBE -TAMIL SYLLABLE CI; 0B9A 0BBF -TAMIL SYLLABLE CII; 0B9A 0BC0 -TAMIL SYLLABLE CU; 0B9A 0BC1 -TAMIL SYLLABLE CUU; 0B9A 0BC2 -TAMIL SYLLABLE CE; 0B9A 0BC6 -TAMIL SYLLABLE CEE; 0B9A 0BC7 -TAMIL SYLLABLE CAI; 0B9A 0BC8 -TAMIL SYLLABLE CO; 0B9A 0BCA -TAMIL SYLLABLE COO; 0B9A 0BCB -TAMIL SYLLABLE CAU; 0B9A 0BCC - -TAMIL SYLLABLE NYAA; 0B9E 0BBE -TAMIL SYLLABLE NYI; 0B9E 0BBF -TAMIL SYLLABLE NYII; 0B9E 0BC0 -TAMIL SYLLABLE NYU; 0B9E 0BC1 -TAMIL SYLLABLE NYUU; 0B9E 0BC2 -TAMIL SYLLABLE NYE; 0B9E 0BC6 -TAMIL SYLLABLE NYEE; 0B9E 0BC7 -TAMIL SYLLABLE NYAI; 0B9E 0BC8 -TAMIL SYLLABLE NYO; 0B9E 0BCA -TAMIL SYLLABLE NYOO; 0B9E 0BCB -TAMIL SYLLABLE NYAU; 0B9E 0BCC - -TAMIL SYLLABLE TTAA; 0B9F 0BBE -TAMIL SYLLABLE TTI; 0B9F 0BBF -TAMIL SYLLABLE TTII; 0B9F 0BC0 -TAMIL SYLLABLE TTU; 0B9F 0BC1 -TAMIL SYLLABLE TTUU; 0B9F 0BC2 -TAMIL SYLLABLE TTE; 0B9F 0BC6 -TAMIL SYLLABLE TTEE; 0B9F 0BC7 -TAMIL SYLLABLE TTAI; 0B9F 0BC8 -TAMIL SYLLABLE TTO; 0B9F 0BCA -TAMIL SYLLABLE TTOO; 0B9F 0BCB -TAMIL SYLLABLE TTAU; 0B9F 0BCC - -TAMIL SYLLABLE NNAA; 0BA3 0BBE -TAMIL SYLLABLE NNI; 0BA3 0BBF -TAMIL SYLLABLE NNII; 0BA3 0BC0 -TAMIL SYLLABLE NNU; 0BA3 0BC1 -TAMIL SYLLABLE NNUU; 0BA3 0BC2 -TAMIL SYLLABLE NNE; 0BA3 0BC6 -TAMIL SYLLABLE NNEE; 0BA3 0BC7 -TAMIL SYLLABLE NNAI; 0BA3 0BC8 -TAMIL SYLLABLE NNO; 0BA3 0BCA -TAMIL SYLLABLE NNOO; 0BA3 0BCB -TAMIL SYLLABLE NNAU; 0BA3 0BCC - -TAMIL SYLLABLE TAA; 0BA4 0BBE -TAMIL SYLLABLE TI; 0BA4 0BBF -TAMIL SYLLABLE TII; 0BA4 0BC0 -TAMIL SYLLABLE TU; 0BA4 0BC1 -TAMIL SYLLABLE TUU; 0BA4 0BC2 -TAMIL SYLLABLE TE; 0BA4 0BC6 -TAMIL SYLLABLE TEE; 0BA4 0BC7 -TAMIL SYLLABLE TAI; 0BA4 0BC8 -TAMIL SYLLABLE TO; 0BA4 0BCA -TAMIL SYLLABLE TOO; 0BA4 0BCB -TAMIL SYLLABLE TAU; 0BA4 0BCC - -TAMIL SYLLABLE NAA; 0BA8 0BBE -TAMIL SYLLABLE NI; 0BA8 0BBF -TAMIL SYLLABLE NII; 0BA8 0BC0 -TAMIL SYLLABLE NU; 0BA8 0BC1 -TAMIL SYLLABLE NUU; 0BA8 0BC2 -TAMIL SYLLABLE NE; 0BA8 0BC6 -TAMIL SYLLABLE NEE; 0BA8 0BC7 -TAMIL SYLLABLE NAI; 0BA8 0BC8 -TAMIL SYLLABLE NO; 0BA8 0BCA -TAMIL SYLLABLE NOO; 0BA8 0BCB -TAMIL SYLLABLE NAU; 0BA8 0BCC - -TAMIL SYLLABLE PAA; 0BAA 0BBE -TAMIL SYLLABLE PI; 0BAA 0BBF -TAMIL SYLLABLE PII; 0BAA 0BC0 -TAMIL SYLLABLE PU; 0BAA 0BC1 -TAMIL SYLLABLE PUU; 0BAA 0BC2 -TAMIL SYLLABLE PE; 0BAA 0BC6 -TAMIL SYLLABLE PEE; 0BAA 0BC7 -TAMIL SYLLABLE PAI; 0BAA 0BC8 -TAMIL SYLLABLE PO; 0BAA 0BCA -TAMIL SYLLABLE POO; 0BAA 0BCB -TAMIL SYLLABLE PAU; 0BAA 0BCC - -TAMIL SYLLABLE MAA; 0BAE 0BBE -TAMIL SYLLABLE MI; 0BAE 0BBF -TAMIL SYLLABLE MII; 0BAE 0BC0 -TAMIL SYLLABLE MU; 0BAE 0BC1 -TAMIL SYLLABLE MUU; 0BAE 0BC2 -TAMIL SYLLABLE ME; 0BAE 0BC6 -TAMIL SYLLABLE MEE; 0BAE 0BC7 -TAMIL SYLLABLE MAI; 0BAE 0BC8 -TAMIL SYLLABLE MO; 0BAE 0BCA -TAMIL SYLLABLE MOO; 0BAE 0BCB -TAMIL SYLLABLE MAU; 0BAE 0BCC - -TAMIL SYLLABLE YAA; 0BAF 0BBE -TAMIL SYLLABLE YI; 0BAF 0BBF -TAMIL SYLLABLE YII; 0BAF 0BC0 -TAMIL SYLLABLE YU; 0BAF 0BC1 -TAMIL SYLLABLE YUU; 0BAF 0BC2 -TAMIL SYLLABLE YE; 0BAF 0BC6 -TAMIL SYLLABLE YEE; 0BAF 0BC7 -TAMIL SYLLABLE YAI; 0BAF 0BC8 -TAMIL SYLLABLE YO; 0BAF 0BCA -TAMIL SYLLABLE YOO; 0BAF 0BCB -TAMIL SYLLABLE YAU; 0BAF 0BCC - -TAMIL SYLLABLE RAA; 0BB0 0BBE -TAMIL SYLLABLE RI; 0BB0 0BBF -TAMIL SYLLABLE RII; 0BB0 0BC0 -TAMIL SYLLABLE RU; 0BB0 0BC1 -TAMIL SYLLABLE RUU; 0BB0 0BC2 -TAMIL SYLLABLE RE; 0BB0 0BC6 -TAMIL SYLLABLE REE; 0BB0 0BC7 -TAMIL SYLLABLE RAI; 0BB0 0BC8 -TAMIL SYLLABLE RO; 0BB0 0BCA -TAMIL SYLLABLE ROO; 0BB0 0BCB -TAMIL SYLLABLE RAU; 0BB0 0BCC - -TAMIL SYLLABLE LAA; 0BB2 0BBE -TAMIL SYLLABLE LI; 0BB2 0BBF -TAMIL SYLLABLE LII; 0BB2 0BC0 -TAMIL SYLLABLE LU; 0BB2 0BC1 -TAMIL SYLLABLE LUU; 0BB2 0BC2 -TAMIL SYLLABLE LE; 0BB2 0BC6 -TAMIL SYLLABLE LEE; 0BB2 0BC7 -TAMIL SYLLABLE LAI; 0BB2 0BC8 -TAMIL SYLLABLE LO; 0BB2 0BCA -TAMIL SYLLABLE LOO; 0BB2 0BCB -TAMIL SYLLABLE LAU; 0BB2 0BCC - -TAMIL SYLLABLE VAA; 0BB5 0BBE -TAMIL SYLLABLE VI; 0BB5 0BBF -TAMIL SYLLABLE VII; 0BB5 0BC0 -TAMIL SYLLABLE VU; 0BB5 0BC1 -TAMIL SYLLABLE VUU; 0BB5 0BC2 -TAMIL SYLLABLE VE; 0BB5 0BC6 -TAMIL SYLLABLE VEE; 0BB5 0BC7 -TAMIL SYLLABLE VAI; 0BB5 0BC8 -TAMIL SYLLABLE VO; 0BB5 0BCA -TAMIL SYLLABLE VOO; 0BB5 0BCB -TAMIL SYLLABLE VAU; 0BB5 0BCC - -TAMIL SYLLABLE LLLAA; 0BB4 0BBE -TAMIL SYLLABLE LLLI; 0BB4 0BBF -TAMIL SYLLABLE LLLII; 0BB4 0BC0 -TAMIL SYLLABLE LLLU; 0BB4 0BC1 -TAMIL SYLLABLE LLLUU; 0BB4 0BC2 -TAMIL SYLLABLE LLLE; 0BB4 0BC6 -TAMIL SYLLABLE LLLEE; 0BB4 0BC7 -TAMIL SYLLABLE LLLAI; 0BB4 0BC8 -TAMIL SYLLABLE LLLO; 0BB4 0BCA -TAMIL SYLLABLE LLLOO; 0BB4 0BCB -TAMIL SYLLABLE LLLAU; 0BB4 0BCC - -TAMIL SYLLABLE LLAA; 0BB3 0BBE -TAMIL SYLLABLE LLI; 0BB3 0BBF -TAMIL SYLLABLE LLII; 0BB3 0BC0 -TAMIL SYLLABLE LLU; 0BB3 0BC1 -TAMIL SYLLABLE LLUU; 0BB3 0BC2 -TAMIL SYLLABLE LLE; 0BB3 0BC6 -TAMIL SYLLABLE LLEE; 0BB3 0BC7 -TAMIL SYLLABLE LLAI; 0BB3 0BC8 -TAMIL SYLLABLE LLO; 0BB3 0BCA -TAMIL SYLLABLE LLOO; 0BB3 0BCB -TAMIL SYLLABLE LLAU; 0BB3 0BCC - -TAMIL SYLLABLE RRAA; 0BB1 0BBE -TAMIL SYLLABLE RRI; 0BB1 0BBF -TAMIL SYLLABLE RRII; 0BB1 0BC0 -TAMIL SYLLABLE RRU; 0BB1 0BC1 -TAMIL SYLLABLE RRUU; 0BB1 0BC2 -TAMIL SYLLABLE RRE; 0BB1 0BC6 -TAMIL SYLLABLE RREE; 0BB1 0BC7 -TAMIL SYLLABLE RRAI; 0BB1 0BC8 -TAMIL SYLLABLE RRO; 0BB1 0BCA -TAMIL SYLLABLE RROO; 0BB1 0BCB -TAMIL SYLLABLE RRAU; 0BB1 0BCC - -TAMIL SYLLABLE NNNAA; 0BA9 0BBE -TAMIL SYLLABLE NNNI; 0BA9 0BBF -TAMIL SYLLABLE NNNII; 0BA9 0BC0 -TAMIL SYLLABLE NNNU; 0BA9 0BC1 -TAMIL SYLLABLE NNNUU; 0BA9 0BC2 -TAMIL SYLLABLE NNNE; 0BA9 0BC6 -TAMIL SYLLABLE NNNEE; 0BA9 0BC7 -TAMIL SYLLABLE NNNAI; 0BA9 0BC8 -TAMIL SYLLABLE NNNO; 0BA9 0BCA -TAMIL SYLLABLE NNNOO; 0BA9 0BCB -TAMIL SYLLABLE NNNAU; 0BA9 0BCC - -TAMIL SYLLABLE JAA; 0B9C 0BBE -TAMIL SYLLABLE JI; 0B9C 0BBF -TAMIL SYLLABLE JII; 0B9C 0BC0 -TAMIL SYLLABLE JU; 0B9C 0BC1 -TAMIL SYLLABLE JUU; 0B9C 0BC2 -TAMIL SYLLABLE JE; 0B9C 0BC6 -TAMIL SYLLABLE JEE; 0B9C 0BC7 -TAMIL SYLLABLE JAI; 0B9C 0BC8 -TAMIL SYLLABLE JO; 0B9C 0BCA -TAMIL SYLLABLE JOO; 0B9C 0BCB -TAMIL SYLLABLE JAU; 0B9C 0BCC - -TAMIL SYLLABLE SHAA; 0BB6 0BBE -TAMIL SYLLABLE SHI; 0BB6 0BBF -TAMIL SYLLABLE SHII; 0BB6 0BC0 -TAMIL SYLLABLE SHU; 0BB6 0BC1 -TAMIL SYLLABLE SHUU; 0BB6 0BC2 -TAMIL SYLLABLE SHE; 0BB6 0BC6 -TAMIL SYLLABLE SHEE; 0BB6 0BC7 -TAMIL SYLLABLE SHAI; 0BB6 0BC8 -TAMIL SYLLABLE SHO; 0BB6 0BCA -TAMIL SYLLABLE SHOO; 0BB6 0BCB -TAMIL SYLLABLE SHAU; 0BB6 0BCC - -TAMIL SYLLABLE SSAA; 0BB7 0BBE -TAMIL SYLLABLE SSI; 0BB7 0BBF -TAMIL SYLLABLE SSII; 0BB7 0BC0 -TAMIL SYLLABLE SSU; 0BB7 0BC1 -TAMIL SYLLABLE SSUU; 0BB7 0BC2 -TAMIL SYLLABLE SSE; 0BB7 0BC6 -TAMIL SYLLABLE SSEE; 0BB7 0BC7 -TAMIL SYLLABLE SSAI; 0BB7 0BC8 -TAMIL SYLLABLE SSO; 0BB7 0BCA -TAMIL SYLLABLE SSOO; 0BB7 0BCB -TAMIL SYLLABLE SSAU; 0BB7 0BCC - -TAMIL SYLLABLE SAA; 0BB8 0BBE -TAMIL SYLLABLE SI; 0BB8 0BBF -TAMIL SYLLABLE SII; 0BB8 0BC0 -TAMIL SYLLABLE SU; 0BB8 0BC1 -TAMIL SYLLABLE SUU; 0BB8 0BC2 -TAMIL SYLLABLE SE; 0BB8 0BC6 -TAMIL SYLLABLE SEE; 0BB8 0BC7 -TAMIL SYLLABLE SAI; 0BB8 0BC8 -TAMIL SYLLABLE SO; 0BB8 0BCA -TAMIL SYLLABLE SOO; 0BB8 0BCB -TAMIL SYLLABLE SAU; 0BB8 0BCC - -TAMIL SYLLABLE HAA; 0BB9 0BBE -TAMIL SYLLABLE HI; 0BB9 0BBF -TAMIL SYLLABLE HII; 0BB9 0BC0 -TAMIL SYLLABLE HU; 0BB9 0BC1 -TAMIL SYLLABLE HUU; 0BB9 0BC2 -TAMIL SYLLABLE HE; 0BB9 0BC6 -TAMIL SYLLABLE HEE; 0BB9 0BC7 -TAMIL SYLLABLE HAI; 0BB9 0BC8 -TAMIL SYLLABLE HO; 0BB9 0BCA -TAMIL SYLLABLE HOO; 0BB9 0BCB -TAMIL SYLLABLE HAU; 0BB9 0BCC - -TAMIL SYLLABLE KSSA; 0B95 0BCD 0BB7 -TAMIL SYLLABLE KSSAA; 0B95 0BCD 0BB7 0BBE -TAMIL SYLLABLE KSSI; 0B95 0BCD 0BB7 0BBF -TAMIL SYLLABLE KSSII; 0B95 0BCD 0BB7 0BC0 -TAMIL SYLLABLE KSSU; 0B95 0BCD 0BB7 0BC1 -TAMIL SYLLABLE KSSUU; 0B95 0BCD 0BB7 0BC2 -TAMIL SYLLABLE KSSE; 0B95 0BCD 0BB7 0BC6 -TAMIL SYLLABLE KSSEE; 0B95 0BCD 0BB7 0BC7 -TAMIL SYLLABLE KSSAI; 0B95 0BCD 0BB7 0BC8 -TAMIL SYLLABLE KSSO; 0B95 0BCD 0BB7 0BCA -TAMIL SYLLABLE KSSOO; 0B95 0BCD 0BB7 0BCB -TAMIL SYLLABLE KSSAU; 0B95 0BCD 0BB7 0BCC - -TAMIL SYLLABLE SHRII; 0BB6 0BCD 0BB0 0BC0 - -# Sinhala medial consonants and "reph" form. -# Provisional 2010-05-13, Approved 2011-08-05 - -SINHALA CONSONANT SIGN YANSAYA;0DCA 200D 0DBA -SINHALA CONSONANT SIGN RAKAARAANSAYA;0DCA 200D 0DBB -SINHALA CONSONANT SIGN REPAYA;0DBB 0DCA 200D - -GEORGIAN LETTER U-BRJGU;10E3 0302 -KHMER CONSONANT SIGN COENG KA;17D2 1780 -KHMER CONSONANT SIGN COENG KHA;17D2 1781 -KHMER CONSONANT SIGN COENG KO;17D2 1782 -KHMER CONSONANT SIGN COENG KHO;17D2 1783 -KHMER CONSONANT SIGN COENG NGO;17D2 1784 -KHMER CONSONANT SIGN COENG CA;17D2 1785 -KHMER CONSONANT SIGN COENG CHA;17D2 1786 -KHMER CONSONANT SIGN COENG CO;17D2 1787 -KHMER CONSONANT SIGN COENG CHO;17D2 1788 -KHMER CONSONANT SIGN COENG NYO;17D2 1789 -KHMER CONSONANT SIGN COENG DA;17D2 178A -KHMER CONSONANT SIGN COENG TTHA;17D2 178B -KHMER CONSONANT SIGN COENG DO;17D2 178C -KHMER CONSONANT SIGN COENG TTHO;17D2 178D -KHMER CONSONANT SIGN COENG NA;17D2 178E -KHMER CONSONANT SIGN COENG TA;17D2 178F -KHMER CONSONANT SIGN COENG THA;17D2 1790 -KHMER CONSONANT SIGN COENG TO;17D2 1791 -KHMER CONSONANT SIGN COENG THO;17D2 1792 -KHMER CONSONANT SIGN COENG NO;17D2 1793 -KHMER CONSONANT SIGN COENG BA;17D2 1794 -KHMER CONSONANT SIGN COENG PHA;17D2 1795 -KHMER CONSONANT SIGN COENG PO;17D2 1796 -KHMER CONSONANT SIGN COENG PHO;17D2 1797 -KHMER CONSONANT SIGN COENG MO;17D2 1798 -KHMER CONSONANT SIGN COENG YO;17D2 1799 -KHMER CONSONANT SIGN COENG RO;17D2 179A -KHMER CONSONANT SIGN COENG LO;17D2 179B -KHMER CONSONANT SIGN COENG VO;17D2 179C -KHMER CONSONANT SIGN COENG SHA;17D2 179D -KHMER CONSONANT SIGN COENG SSA;17D2 179E -KHMER CONSONANT SIGN COENG SA;17D2 179F -KHMER CONSONANT SIGN COENG HA;17D2 17A0 -KHMER CONSONANT SIGN COENG LA;17D2 17A1 -KHMER VOWEL SIGN COENG QA;17D2 17A2 -KHMER INDEPENDENT VOWEL SIGN COENG QU;17D2 17A7 -KHMER INDEPENDENT VOWEL SIGN COENG RY;17D2 17AB -KHMER INDEPENDENT VOWEL SIGN COENG RYY;17D2 17AC -KHMER INDEPENDENT VOWEL SIGN COENG QE;17D2 17AF -KHMER VOWEL SIGN OM;17BB 17C6 -KHMER VOWEL SIGN AAM;17B6 17C6 - -# Entries for JIS X 0213 compatibility mapping. -# Provisional 2008-11-07, Approved 2010-05-14 - -HIRAGANA LETTER BIDAKUON NGA;304B 309A -HIRAGANA LETTER BIDAKUON NGI;304D 309A -HIRAGANA LETTER BIDAKUON NGU;304F 309A -HIRAGANA LETTER BIDAKUON NGE;3051 309A -HIRAGANA LETTER BIDAKUON NGO;3053 309A -KATAKANA LETTER BIDAKUON NGA;30AB 309A -KATAKANA LETTER BIDAKUON NGI;30AD 309A -KATAKANA LETTER BIDAKUON NGU;30AF 309A -KATAKANA LETTER BIDAKUON NGE;30B1 309A -KATAKANA LETTER BIDAKUON NGO;30B3 309A -KATAKANA LETTER AINU CE;30BB 309A -KATAKANA LETTER AINU TU;30C4 309A -KATAKANA LETTER AINU TO;30C8 309A -KATAKANA LETTER AINU P;31F7 309A -MODIFIER LETTER EXTRA-HIGH EXTRA-LOW CONTOUR TONE BAR;02E5 02E9 -MODIFIER LETTER EXTRA-LOW EXTRA-HIGH CONTOUR TONE BAR;02E9 02E5 - -# EOF diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/SpecialCasing.txt b/software/Slic3r-1.3.0.64bit/lib/unicore/SpecialCasing.txt deleted file mode 100644 index 8de6462f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/SpecialCasing.txt +++ /dev/null @@ -1,280 +0,0 @@ -# SpecialCasing-8.0.0.txt -# Date: 2014-12-16, 23:08:04 GMT [MD] -# -# Unicode Character Database -# Copyright (c) 1991-2014 Unicode, Inc. -# For terms of use, see http://www.unicode.org/terms_of_use.html -# For documentation, see http://www.unicode.org/reports/tr44/ -# -# Special Casing -# -# This file is a supplement to the UnicodeData.txt file. It does not define any -# properties, but rather provides additional information about the casing of -# Unicode characters, for situations when casing incurs a change in string length -# or is dependent on context or locale. For compatibility, the UnicodeData.txt -# file only contains simple case mappings for characters where they are one-to-one -# and independent of context and language. The data in this file, combined with -# the simple case mappings in UnicodeData.txt, defines the full case mappings -# Lowercase_Mapping (lc), Titlecase_Mapping (tc), and Uppercase_Mapping (uc). -# -# Note that the preferred mechanism for defining tailored casing operations is -# the Unicode Common Locale Data Repository (CLDR). For more information, see the -# discussion of case mappings and case algorithms in the Unicode Standard. -# -# All code points not listed in this file that do not have a simple case mappings -# in UnicodeData.txt map to themselves. -# ================================================================================ -# Format -# ================================================================================ -# The entries in this file are in the following machine-readable format: -# -# ; ; ; <upper>; (<condition_list>;)? # <comment> -# -# <code>, <lower>, <title>, and <upper> provide the respective full case mappings -# of <code>, expressed as character values in hex. If there is more than one character, -# they are separated by spaces. Other than as used to separate elements, spaces are -# to be ignored. -# -# The <condition_list> is optional. Where present, it consists of one or more language IDs -# or casing contexts, separated by spaces. In these conditions: -# - A condition list overrides the normal behavior if all of the listed conditions are true. -# - The casing context is always the context of the characters in the original string, -# NOT in the resulting string. -# - Case distinctions in the condition list are not significant. -# - Conditions preceded by "Not_" represent the negation of the condition. -# The condition list is not represented in the UCD as a formal property. -# -# A language ID is defined by BCP 47, with '-' and '_' treated equivalently. -# -# A casing context for a character is defined by Section 3.13 Default Case Algorithms -# of The Unicode Standard. -# -# Parsers of this file must be prepared to deal with future additions to this format: -# * Additional contexts -# * Additional fields -# ================================================================================ - -# ================================================================================ -# Unconditional mappings -# ================================================================================ - -# The German es-zed is special--the normal mapping is to SS. -# Note: the titlecase should never occur in practice. It is equal to titlecase(uppercase(<es-zed>)) - -00DF; 00DF; 0053 0073; 0053 0053; # LATIN SMALL LETTER SHARP S - -# Preserve canonical equivalence for I with dot. Turkic is handled below. - -0130; 0069 0307; 0130; 0130; # LATIN CAPITAL LETTER I WITH DOT ABOVE - -# Ligatures - -FB00; FB00; 0046 0066; 0046 0046; # LATIN SMALL LIGATURE FF -FB01; FB01; 0046 0069; 0046 0049; # LATIN SMALL LIGATURE FI -FB02; FB02; 0046 006C; 0046 004C; # LATIN SMALL LIGATURE FL -FB03; FB03; 0046 0066 0069; 0046 0046 0049; # LATIN SMALL LIGATURE FFI -FB04; FB04; 0046 0066 006C; 0046 0046 004C; # LATIN SMALL LIGATURE FFL -FB05; FB05; 0053 0074; 0053 0054; # LATIN SMALL LIGATURE LONG S T -FB06; FB06; 0053 0074; 0053 0054; # LATIN SMALL LIGATURE ST - -0587; 0587; 0535 0582; 0535 0552; # ARMENIAN SMALL LIGATURE ECH YIWN -FB13; FB13; 0544 0576; 0544 0546; # ARMENIAN SMALL LIGATURE MEN NOW -FB14; FB14; 0544 0565; 0544 0535; # ARMENIAN SMALL LIGATURE MEN ECH -FB15; FB15; 0544 056B; 0544 053B; # ARMENIAN SMALL LIGATURE MEN INI -FB16; FB16; 054E 0576; 054E 0546; # ARMENIAN SMALL LIGATURE VEW NOW -FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH - -# No corresponding uppercase precomposed character - -0149; 0149; 02BC 004E; 02BC 004E; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE -0390; 0390; 0399 0308 0301; 0399 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -03B0; 03B0; 03A5 0308 0301; 03A5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -01F0; 01F0; 004A 030C; 004A 030C; # LATIN SMALL LETTER J WITH CARON -1E96; 1E96; 0048 0331; 0048 0331; # LATIN SMALL LETTER H WITH LINE BELOW -1E97; 1E97; 0054 0308; 0054 0308; # LATIN SMALL LETTER T WITH DIAERESIS -1E98; 1E98; 0057 030A; 0057 030A; # LATIN SMALL LETTER W WITH RING ABOVE -1E99; 1E99; 0059 030A; 0059 030A; # LATIN SMALL LETTER Y WITH RING ABOVE -1E9A; 1E9A; 0041 02BE; 0041 02BE; # LATIN SMALL LETTER A WITH RIGHT HALF RING -1F50; 1F50; 03A5 0313; 03A5 0313; # GREEK SMALL LETTER UPSILON WITH PSILI -1F52; 1F52; 03A5 0313 0300; 03A5 0313 0300; # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA -1F54; 1F54; 03A5 0313 0301; 03A5 0313 0301; # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA -1F56; 1F56; 03A5 0313 0342; 03A5 0313 0342; # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI -1FB6; 1FB6; 0391 0342; 0391 0342; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI -1FC6; 1FC6; 0397 0342; 0397 0342; # GREEK SMALL LETTER ETA WITH PERISPOMENI -1FD2; 1FD2; 0399 0308 0300; 0399 0308 0300; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA -1FD3; 1FD3; 0399 0308 0301; 0399 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA -1FD6; 1FD6; 0399 0342; 0399 0342; # GREEK SMALL LETTER IOTA WITH PERISPOMENI -1FD7; 1FD7; 0399 0308 0342; 0399 0308 0342; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI -1FE2; 1FE2; 03A5 0308 0300; 03A5 0308 0300; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA -1FE3; 1FE3; 03A5 0308 0301; 03A5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA -1FE4; 1FE4; 03A1 0313; 03A1 0313; # GREEK SMALL LETTER RHO WITH PSILI -1FE6; 1FE6; 03A5 0342; 03A5 0342; # GREEK SMALL LETTER UPSILON WITH PERISPOMENI -1FE7; 1FE7; 03A5 0308 0342; 03A5 0308 0342; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI -1FF6; 1FF6; 03A9 0342; 03A9 0342; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI - -# IMPORTANT-when iota-subscript (0345) is uppercased or titlecased, -# the result will be incorrect unless the iota-subscript is moved to the end -# of any sequence of combining marks. Otherwise, the accents will go on the capital iota. -# This process can be achieved by first transforming the text to NFC before casing. -# E.g. <alpha><iota_subscript><acute> is uppercased to <ALPHA><acute><IOTA> - -# The following cases are already in the UnicodeData.txt file, so are only commented here. - -# 0345; 0345; 0345; 0399; # COMBINING GREEK YPOGEGRAMMENI - -# All letters with YPOGEGRAMMENI (iota-subscript) or PROSGEGRAMMENI (iota adscript) -# have special uppercases. -# Note: characters with PROSGEGRAMMENI are actually titlecase, not uppercase! - -1F80; 1F80; 1F88; 1F08 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI -1F81; 1F81; 1F89; 1F09 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI -1F82; 1F82; 1F8A; 1F0A 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI -1F83; 1F83; 1F8B; 1F0B 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI -1F84; 1F84; 1F8C; 1F0C 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI -1F85; 1F85; 1F8D; 1F0D 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI -1F86; 1F86; 1F8E; 1F0E 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI -1F87; 1F87; 1F8F; 1F0F 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI -1F88; 1F80; 1F88; 1F08 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI -1F89; 1F81; 1F89; 1F09 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI -1F8A; 1F82; 1F8A; 1F0A 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI -1F8B; 1F83; 1F8B; 1F0B 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI -1F8C; 1F84; 1F8C; 1F0C 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI -1F8D; 1F85; 1F8D; 1F0D 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI -1F8E; 1F86; 1F8E; 1F0E 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI -1F8F; 1F87; 1F8F; 1F0F 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI -1F90; 1F90; 1F98; 1F28 0399; # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI -1F91; 1F91; 1F99; 1F29 0399; # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI -1F92; 1F92; 1F9A; 1F2A 0399; # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI -1F93; 1F93; 1F9B; 1F2B 0399; # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI -1F94; 1F94; 1F9C; 1F2C 0399; # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI -1F95; 1F95; 1F9D; 1F2D 0399; # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI -1F96; 1F96; 1F9E; 1F2E 0399; # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI -1F97; 1F97; 1F9F; 1F2F 0399; # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI -1F98; 1F90; 1F98; 1F28 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI -1F99; 1F91; 1F99; 1F29 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI -1F9A; 1F92; 1F9A; 1F2A 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI -1F9B; 1F93; 1F9B; 1F2B 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI -1F9C; 1F94; 1F9C; 1F2C 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI -1F9D; 1F95; 1F9D; 1F2D 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI -1F9E; 1F96; 1F9E; 1F2E 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI -1F9F; 1F97; 1F9F; 1F2F 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI -1FA0; 1FA0; 1FA8; 1F68 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI -1FA1; 1FA1; 1FA9; 1F69 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI -1FA2; 1FA2; 1FAA; 1F6A 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI -1FA3; 1FA3; 1FAB; 1F6B 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI -1FA4; 1FA4; 1FAC; 1F6C 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI -1FA5; 1FA5; 1FAD; 1F6D 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI -1FA6; 1FA6; 1FAE; 1F6E 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI -1FA7; 1FA7; 1FAF; 1F6F 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI -1FA8; 1FA0; 1FA8; 1F68 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI -1FA9; 1FA1; 1FA9; 1F69 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI -1FAA; 1FA2; 1FAA; 1F6A 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI -1FAB; 1FA3; 1FAB; 1F6B 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI -1FAC; 1FA4; 1FAC; 1F6C 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI -1FAD; 1FA5; 1FAD; 1F6D 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI -1FAE; 1FA6; 1FAE; 1F6E 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI -1FAF; 1FA7; 1FAF; 1F6F 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI -1FB3; 1FB3; 1FBC; 0391 0399; # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI -1FBC; 1FB3; 1FBC; 0391 0399; # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI -1FC3; 1FC3; 1FCC; 0397 0399; # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI -1FCC; 1FC3; 1FCC; 0397 0399; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI -1FF3; 1FF3; 1FFC; 03A9 0399; # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI -1FFC; 1FF3; 1FFC; 03A9 0399; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI - -# Some characters with YPOGEGRAMMENI also have no corresponding titlecases - -1FB2; 1FB2; 1FBA 0345; 1FBA 0399; # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI -1FB4; 1FB4; 0386 0345; 0386 0399; # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI -1FC2; 1FC2; 1FCA 0345; 1FCA 0399; # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI -1FC4; 1FC4; 0389 0345; 0389 0399; # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI -1FF2; 1FF2; 1FFA 0345; 1FFA 0399; # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI -1FF4; 1FF4; 038F 0345; 038F 0399; # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI - -1FB7; 1FB7; 0391 0342 0345; 0391 0342 0399; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI -1FC7; 1FC7; 0397 0342 0345; 0397 0342 0399; # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI -1FF7; 1FF7; 03A9 0342 0345; 03A9 0342 0399; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI - -# ================================================================================ -# Conditional Mappings -# The remainder of this file provides conditional casing data used to produce -# full case mappings. -# ================================================================================ -# Language-Insensitive Mappings -# These are characters whose full case mappings do not depend on language, but do -# depend on context (which characters come before or after). For more information -# see the header of this file and the Unicode Standard. -# ================================================================================ - -# Special case for final form of sigma - -03A3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK CAPITAL LETTER SIGMA - -# Note: the following cases for non-final are already in the UnicodeData.txt file. - -# 03A3; 03C3; 03A3; 03A3; # GREEK CAPITAL LETTER SIGMA -# 03C3; 03C3; 03A3; 03A3; # GREEK SMALL LETTER SIGMA -# 03C2; 03C2; 03A3; 03A3; # GREEK SMALL LETTER FINAL SIGMA - -# Note: the following cases are not included, since they would case-fold in lowercasing - -# 03C3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK SMALL LETTER SIGMA -# 03C2; 03C3; 03A3; 03A3; Not_Final_Sigma; # GREEK SMALL LETTER FINAL SIGMA - -# ================================================================================ -# Language-Sensitive Mappings -# These are characters whose full case mappings depend on language and perhaps also -# context (which characters come before or after). For more information -# see the header of this file and the Unicode Standard. -# ================================================================================ - -# Lithuanian - -# Lithuanian retains the dot in a lowercase i when followed by accents. - -# Remove DOT ABOVE after "i" with upper or titlecase - -0307; 0307; ; ; lt After_Soft_Dotted; # COMBINING DOT ABOVE - -# Introduce an explicit dot above when lowercasing capital I's and J's -# whenever there are more accents above. -# (of the accents used in Lithuanian: grave, acute, tilde above, and ogonek) - -0049; 0069 0307; 0049; 0049; lt More_Above; # LATIN CAPITAL LETTER I -004A; 006A 0307; 004A; 004A; lt More_Above; # LATIN CAPITAL LETTER J -012E; 012F 0307; 012E; 012E; lt More_Above; # LATIN CAPITAL LETTER I WITH OGONEK -00CC; 0069 0307 0300; 00CC; 00CC; lt; # LATIN CAPITAL LETTER I WITH GRAVE -00CD; 0069 0307 0301; 00CD; 00CD; lt; # LATIN CAPITAL LETTER I WITH ACUTE -0128; 0069 0307 0303; 0128; 0128; lt; # LATIN CAPITAL LETTER I WITH TILDE - -# ================================================================================ - -# Turkish and Azeri - -# I and i-dotless; I-dot and i are case pairs in Turkish and Azeri -# The following rules handle those cases. - -0130; 0069; 0130; 0130; tr; # LATIN CAPITAL LETTER I WITH DOT ABOVE -0130; 0069; 0130; 0130; az; # LATIN CAPITAL LETTER I WITH DOT ABOVE - -# When lowercasing, remove dot_above in the sequence I + dot_above, which will turn into i. -# This matches the behavior of the canonically equivalent I-dot_above - -0307; ; 0307; 0307; tr After_I; # COMBINING DOT ABOVE -0307; ; 0307; 0307; az After_I; # COMBINING DOT ABOVE - -# When lowercasing, unless an I is before a dot_above, it turns into a dotless i. - -0049; 0131; 0049; 0049; tr Not_Before_Dot; # LATIN CAPITAL LETTER I -0049; 0131; 0049; 0049; az Not_Before_Dot; # LATIN CAPITAL LETTER I - -# When uppercasing, i turns into a dotted capital I - -0069; 0069; 0130; 0130; tr; # LATIN SMALL LETTER I -0069; 0069; 0130; 0130; az; # LATIN SMALL LETTER I - -# Note: the following case is already in the UnicodeData.txt file. - -# 0131; 0131; 0049; 0049; tr; # LATIN SMALL LETTER DOTLESS I - -# EOF - diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Age.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Age.pl deleted file mode 100644 index f5d2663f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Age.pl +++ /dev/null @@ -1,1330 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToAge'}{'format'} = 'f'; # floating point number -$utf8::SwashInfo{'ToAge'}{'missing'} = 'Unassigned'; - -return <<'END'; -0 1F5 1.1 -1F6 1F9 3.0 -1FA 217 1.1 -218 21F 3.0 -220 3.2 -221 4.0 -222 233 3.0 -234 236 4.0 -237 241 4.1 -242 24F 5.0 -250 2A8 1.1 -2A9 2AD 3.0 -2AE 2AF 4.0 -2B0 2DE 1.1 -2DF 3.0 -2E0 2E9 1.1 -2EA 2EE 3.0 -2EF 2FF 4.0 -300 345 1.1 -346 34E 3.0 -34F 3.2 -350 357 4.0 -358 35C 4.1 -35D 35F 4.0 -360 361 1.1 -362 3.0 -363 36F 3.2 -370 373 5.1 -374 375 1.1 -376 377 5.1 -37A 1.1 -37B 37D 5.0 -37E 1.1 -37F 7.0 -384 38A 1.1 -38C 1.1 -38E 3A1 1.1 -3A3 3CE 1.1 -3CF 5.1 -3D0 3D6 1.1 -3D7 3.0 -3D8 3D9 3.2 -3DA 1.1 -3DB 3.0 -3DC 1.1 -3DD 3.0 -3DE 1.1 -3DF 3.0 -3E0 1.1 -3E1 3.0 -3E2 3F3 1.1 -3F4 3F5 3.1 -3F6 3.2 -3F7 3FB 4.0 -3FC 3FF 4.1 -400 3.0 -401 40C 1.1 -40D 3.0 -40E 44F 1.1 -450 3.0 -451 45C 1.1 -45D 3.0 -45E 486 1.1 -487 5.1 -488 489 3.0 -48A 48B 3.2 -48C 48F 3.0 -490 4C4 1.1 -4C5 4C6 3.2 -4C7 4C8 1.1 -4C9 4CA 3.2 -4CB 4CC 1.1 -4CD 4CE 3.2 -4CF 5.0 -4D0 4EB 1.1 -4EC 4ED 3.0 -4EE 4F5 1.1 -4F6 4F7 4.1 -4F8 4F9 1.1 -4FA 4FF 5.0 -500 50F 3.2 -510 513 5.0 -514 523 5.1 -524 525 5.2 -526 527 6.0 -528 52F 7.0 -531 556 1.1 -559 55F 1.1 -561 587 1.1 -589 1.1 -58A 3.0 -58D 58E 7.0 -58F 6.1 -591 5A1 2.0 -5A2 4.1 -5A3 5AF 2.0 -5B0 5B9 1.1 -5BA 5.0 -5BB 5C3 1.1 -5C4 2.0 -5C5 5C7 4.1 -5D0 5EA 1.1 -5F0 5F4 1.1 -600 603 4.0 -604 6.1 -605 7.0 -606 60A 5.1 -60B 4.1 -60C 1.1 -60D 615 4.0 -616 61A 5.1 -61B 1.1 -61C 6.3 -61E 4.1 -61F 1.1 -620 6.0 -621 63A 1.1 -63B 63F 5.1 -640 652 1.1 -653 655 3.0 -656 658 4.0 -659 65E 4.1 -65F 6.0 -660 66D 1.1 -66E 66F 3.2 -670 6B7 1.1 -6B8 6B9 3.0 -6BA 6BE 1.1 -6BF 3.0 -6C0 6CE 1.1 -6CF 3.0 -6D0 6ED 1.1 -6EE 6EF 4.0 -6F0 6F9 1.1 -6FA 6FE 3.0 -6FF 4.0 -700 70D 3.0 -70F 72C 3.0 -72D 72F 4.0 -730 74A 3.0 -74D 74F 4.0 -750 76D 4.1 -76E 77F 5.1 -780 7B0 3.0 -7B1 3.2 -7C0 7FA 5.0 -800 82D 5.2 -830 83E 5.2 -840 85B 6.0 -85E 6.0 -8A0 6.1 -8A1 7.0 -8A2 8AC 6.1 -8AD 8B2 7.0 -8B3 8B4 8.0 -8E3 8.0 -8E4 8FE 6.1 -8FF 7.0 -900 5.2 -901 903 1.1 -904 4.0 -905 939 1.1 -93A 93B 6.0 -93C 94D 1.1 -94E 5.2 -94F 6.0 -950 954 1.1 -955 5.2 -956 957 6.0 -958 970 1.1 -971 972 5.1 -973 977 6.0 -978 7.0 -979 97A 5.2 -97B 97C 5.0 -97D 4.1 -97E 97F 5.0 -980 7.0 -981 983 1.1 -985 98C 1.1 -98F 990 1.1 -993 9A8 1.1 -9AA 9B0 1.1 -9B2 1.1 -9B6 9B9 1.1 -9BC 1.1 -9BD 4.0 -9BE 9C4 1.1 -9C7 9C8 1.1 -9CB 9CD 1.1 -9CE 4.1 -9D7 1.1 -9DC 9DD 1.1 -9DF 9E3 1.1 -9E6 9FA 1.1 -9FB 5.2 -A01 4.0 -A02 1.1 -A03 4.0 -A05 A0A 1.1 -A0F A10 1.1 -A13 A28 1.1 -A2A A30 1.1 -A32 A33 1.1 -A35 A36 1.1 -A38 A39 1.1 -A3C 1.1 -A3E A42 1.1 -A47 A48 1.1 -A4B A4D 1.1 -A51 5.1 -A59 A5C 1.1 -A5E 1.1 -A66 A74 1.1 -A75 5.1 -A81 A83 1.1 -A85 A8B 1.1 -A8C 4.0 -A8D 1.1 -A8F A91 1.1 -A93 AA8 1.1 -AAA AB0 1.1 -AB2 AB3 1.1 -AB5 AB9 1.1 -ABC AC5 1.1 -AC7 AC9 1.1 -ACB ACD 1.1 -AD0 1.1 -AE0 1.1 -AE1 AE3 4.0 -AE6 AEF 1.1 -AF0 6.1 -AF1 4.0 -AF9 8.0 -B01 B03 1.1 -B05 B0C 1.1 -B0F B10 1.1 -B13 B28 1.1 -B2A B30 1.1 -B32 B33 1.1 -B35 4.0 -B36 B39 1.1 -B3C B43 1.1 -B44 5.1 -B47 B48 1.1 -B4B B4D 1.1 -B56 B57 1.1 -B5C B5D 1.1 -B5F B61 1.1 -B62 B63 5.1 -B66 B70 1.1 -B71 4.0 -B72 B77 6.0 -B82 B83 1.1 -B85 B8A 1.1 -B8E B90 1.1 -B92 B95 1.1 -B99 B9A 1.1 -B9C 1.1 -B9E B9F 1.1 -BA3 BA4 1.1 -BA8 BAA 1.1 -BAE BB5 1.1 -BB6 4.1 -BB7 BB9 1.1 -BBE BC2 1.1 -BC6 BC8 1.1 -BCA BCD 1.1 -BD0 5.1 -BD7 1.1 -BE6 4.1 -BE7 BF2 1.1 -BF3 BFA 4.0 -C00 7.0 -C01 C03 1.1 -C05 C0C 1.1 -C0E C10 1.1 -C12 C28 1.1 -C2A C33 1.1 -C34 7.0 -C35 C39 1.1 -C3D 5.1 -C3E C44 1.1 -C46 C48 1.1 -C4A C4D 1.1 -C55 C56 1.1 -C58 C59 5.1 -C5A 8.0 -C60 C61 1.1 -C62 C63 5.1 -C66 C6F 1.1 -C78 C7F 5.1 -C81 7.0 -C82 C83 1.1 -C85 C8C 1.1 -C8E C90 1.1 -C92 CA8 1.1 -CAA CB3 1.1 -CB5 CB9 1.1 -CBC CBD 4.0 -CBE CC4 1.1 -CC6 CC8 1.1 -CCA CCD 1.1 -CD5 CD6 1.1 -CDE 1.1 -CE0 CE1 1.1 -CE2 CE3 5.0 -CE6 CEF 1.1 -CF1 CF2 5.0 -D01 7.0 -D02 D03 1.1 -D05 D0C 1.1 -D0E D10 1.1 -D12 D28 1.1 -D29 6.0 -D2A D39 1.1 -D3A 6.0 -D3D 5.1 -D3E D43 1.1 -D44 5.1 -D46 D48 1.1 -D4A D4D 1.1 -D4E 6.0 -D57 1.1 -D5F 8.0 -D60 D61 1.1 -D62 D63 5.1 -D66 D6F 1.1 -D70 D75 5.1 -D79 D7F 5.1 -D82 D83 3.0 -D85 D96 3.0 -D9A DB1 3.0 -DB3 DBB 3.0 -DBD 3.0 -DC0 DC6 3.0 -DCA 3.0 -DCF DD4 3.0 -DD6 3.0 -DD8 DDF 3.0 -DE6 DEF 7.0 -DF2 DF4 3.0 -E01 E3A 1.1 -E3F E5B 1.1 -E81 E82 1.1 -E84 1.1 -E87 E88 1.1 -E8A 1.1 -E8D 1.1 -E94 E97 1.1 -E99 E9F 1.1 -EA1 EA3 1.1 -EA5 1.1 -EA7 1.1 -EAA EAB 1.1 -EAD EB9 1.1 -EBB EBD 1.1 -EC0 EC4 1.1 -EC6 1.1 -EC8 ECD 1.1 -ED0 ED9 1.1 -EDC EDD 1.1 -EDE EDF 6.1 -F00 F47 2.0 -F49 F69 2.0 -F6A 3.0 -F6B F6C 5.1 -F71 F8B 2.0 -F8C F8F 6.0 -F90 F95 2.0 -F96 3.0 -F97 2.0 -F99 FAD 2.0 -FAE FB0 3.0 -FB1 FB7 2.0 -FB8 3.0 -FB9 2.0 -FBA FBC 3.0 -FBE FCC 3.0 -FCE 5.1 -FCF 3.0 -FD0 FD1 4.1 -FD2 FD4 5.1 -FD5 FD8 5.2 -FD9 FDA 6.0 -1000 1021 3.0 -1022 5.1 -1023 1027 3.0 -1028 5.1 -1029 102A 3.0 -102B 5.1 -102C 1032 3.0 -1033 1035 5.1 -1036 1039 3.0 -103A 103F 5.1 -1040 1059 3.0 -105A 1099 5.1 -109A 109D 5.2 -109E 109F 5.1 -10A0 10C5 1.1 -10C7 6.1 -10CD 6.1 -10D0 10F6 1.1 -10F7 10F8 3.2 -10F9 10FA 4.1 -10FB 1.1 -10FC 4.1 -10FD 10FF 6.1 -1100 1159 1.1 -115A 115E 5.2 -115F 11A2 1.1 -11A3 11A7 5.2 -11A8 11F9 1.1 -11FA 11FF 5.2 -1200 1206 3.0 -1207 4.1 -1208 1246 3.0 -1247 4.1 -1248 3.0 -124A 124D 3.0 -1250 1256 3.0 -1258 3.0 -125A 125D 3.0 -1260 1286 3.0 -1287 4.1 -1288 3.0 -128A 128D 3.0 -1290 12AE 3.0 -12AF 4.1 -12B0 3.0 -12B2 12B5 3.0 -12B8 12BE 3.0 -12C0 3.0 -12C2 12C5 3.0 -12C8 12CE 3.0 -12CF 4.1 -12D0 12D6 3.0 -12D8 12EE 3.0 -12EF 4.1 -12F0 130E 3.0 -130F 4.1 -1310 3.0 -1312 1315 3.0 -1318 131E 3.0 -131F 4.1 -1320 1346 3.0 -1347 4.1 -1348 135A 3.0 -135D 135E 6.0 -135F 1360 4.1 -1361 137C 3.0 -1380 1399 4.1 -13A0 13F4 3.0 -13F5 8.0 -13F8 13FD 8.0 -1400 5.2 -1401 1676 3.0 -1677 167F 5.2 -1680 169C 3.0 -16A0 16F0 3.0 -16F1 16F8 7.0 -1700 170C 3.2 -170E 1714 3.2 -1720 1736 3.2 -1740 1753 3.2 -1760 176C 3.2 -176E 1770 3.2 -1772 1773 3.2 -1780 17DC 3.0 -17DD 4.0 -17E0 17E9 3.0 -17F0 17F9 4.0 -1800 180E 3.0 -1810 1819 3.0 -1820 1877 3.0 -1880 18A9 3.0 -18AA 5.1 -18B0 18F5 5.2 -1900 191C 4.0 -191D 191E 7.0 -1920 192B 4.0 -1930 193B 4.0 -1940 4.0 -1944 196D 4.0 -1970 1974 4.0 -1980 19A9 4.1 -19AA 19AB 5.2 -19B0 19C9 4.1 -19D0 19D9 4.1 -19DA 5.2 -19DE 19DF 4.1 -19E0 19FF 4.0 -1A00 1A1B 4.1 -1A1E 1A1F 4.1 -1A20 1A5E 5.2 -1A60 1A7C 5.2 -1A7F 1A89 5.2 -1A90 1A99 5.2 -1AA0 1AAD 5.2 -1AB0 1ABE 7.0 -1B00 1B4B 5.0 -1B50 1B7C 5.0 -1B80 1BAA 5.1 -1BAB 1BAD 6.1 -1BAE 1BB9 5.1 -1BBA 1BBF 6.1 -1BC0 1BF3 6.0 -1BFC 1BFF 6.0 -1C00 1C37 5.1 -1C3B 1C49 5.1 -1C4D 1C7F 5.1 -1CC0 1CC7 6.1 -1CD0 1CF2 5.2 -1CF3 1CF6 6.1 -1CF8 1CF9 7.0 -1D00 1D6B 4.0 -1D6C 1DC3 4.1 -1DC4 1DCA 5.0 -1DCB 1DE6 5.1 -1DE7 1DF5 7.0 -1DFC 6.0 -1DFD 5.2 -1DFE 1DFF 5.0 -1E00 1E9A 1.1 -1E9B 2.0 -1E9C 1E9F 5.1 -1EA0 1EF9 1.1 -1EFA 1EFF 5.1 -1F00 1F15 1.1 -1F18 1F1D 1.1 -1F20 1F45 1.1 -1F48 1F4D 1.1 -1F50 1F57 1.1 -1F59 1.1 -1F5B 1.1 -1F5D 1.1 -1F5F 1F7D 1.1 -1F80 1FB4 1.1 -1FB6 1FC4 1.1 -1FC6 1FD3 1.1 -1FD6 1FDB 1.1 -1FDD 1FEF 1.1 -1FF2 1FF4 1.1 -1FF6 1FFE 1.1 -2000 202E 1.1 -202F 3.0 -2030 2046 1.1 -2047 3.2 -2048 204D 3.0 -204E 2052 3.2 -2053 2054 4.0 -2055 2056 4.1 -2057 3.2 -2058 205E 4.1 -205F 2063 3.2 -2064 5.1 -2066 2069 6.3 -206A 2070 1.1 -2071 3.2 -2074 208E 1.1 -2090 2094 4.1 -2095 209C 6.0 -20A0 20AA 1.1 -20AB 2.0 -20AC 2.1 -20AD 20AF 3.0 -20B0 20B1 3.2 -20B2 20B5 4.1 -20B6 20B8 5.2 -20B9 6.0 -20BA 6.2 -20BB 20BD 7.0 -20BE 8.0 -20D0 20E1 1.1 -20E2 20E3 3.0 -20E4 20EA 3.2 -20EB 4.1 -20EC 20EF 5.0 -20F0 5.1 -2100 2138 1.1 -2139 213A 3.0 -213B 4.0 -213C 4.1 -213D 214B 3.2 -214C 4.1 -214D 214E 5.0 -214F 5.1 -2150 2152 5.2 -2153 2182 1.1 -2183 3.0 -2184 5.0 -2185 2188 5.1 -2189 5.2 -218A 218B 8.0 -2190 21EA 1.1 -21EB 21F3 3.0 -21F4 21FF 3.2 -2200 22F1 1.1 -22F2 22FF 3.2 -2300 1.1 -2301 3.0 -2302 237A 1.1 -237B 3.0 -237C 3.2 -237D 239A 3.0 -239B 23CE 3.2 -23CF 23D0 4.0 -23D1 23DB 4.1 -23DC 23E7 5.0 -23E8 5.2 -23E9 23F3 6.0 -23F4 23FA 7.0 -2400 2424 1.1 -2425 2426 3.0 -2440 244A 1.1 -2460 24EA 1.1 -24EB 24FE 3.2 -24FF 4.0 -2500 2595 1.1 -2596 259F 3.2 -25A0 25EF 1.1 -25F0 25F7 3.0 -25F8 25FF 3.2 -2600 2613 1.1 -2614 2615 4.0 -2616 2617 3.2 -2618 4.1 -2619 3.0 -261A 266F 1.1 -2670 2671 3.0 -2672 267D 3.2 -267E 267F 4.1 -2680 2689 3.2 -268A 2691 4.0 -2692 269C 4.1 -269D 5.1 -269E 269F 5.2 -26A0 26A1 4.0 -26A2 26B1 4.1 -26B2 5.0 -26B3 26BC 5.1 -26BD 26BF 5.2 -26C0 26C3 5.1 -26C4 26CD 5.2 -26CE 6.0 -26CF 26E1 5.2 -26E2 6.0 -26E3 5.2 -26E4 26E7 6.0 -26E8 26FF 5.2 -2700 7.0 -2701 2704 1.1 -2705 6.0 -2706 2709 1.1 -270A 270B 6.0 -270C 2727 1.1 -2728 6.0 -2729 274B 1.1 -274C 6.0 -274D 1.1 -274E 6.0 -274F 2752 1.1 -2753 2755 6.0 -2756 1.1 -2757 5.2 -2758 275E 1.1 -275F 2760 6.0 -2761 2767 1.1 -2768 2775 3.2 -2776 2794 1.1 -2795 2797 6.0 -2798 27AF 1.1 -27B0 6.0 -27B1 27BE 1.1 -27BF 6.0 -27C0 27C6 4.1 -27C7 27CA 5.0 -27CB 6.1 -27CC 5.1 -27CD 6.1 -27CE 27CF 6.0 -27D0 27EB 3.2 -27EC 27EF 5.1 -27F0 27FF 3.2 -2800 28FF 3.0 -2900 2AFF 3.2 -2B00 2B0D 4.0 -2B0E 2B13 4.1 -2B14 2B1A 5.0 -2B1B 2B1F 5.1 -2B20 2B23 5.0 -2B24 2B4C 5.1 -2B4D 2B4F 7.0 -2B50 2B54 5.1 -2B55 2B59 5.2 -2B5A 2B73 7.0 -2B76 2B95 7.0 -2B98 2BB9 7.0 -2BBD 2BC8 7.0 -2BCA 2BD1 7.0 -2BEC 2BEF 8.0 -2C00 2C2E 4.1 -2C30 2C5E 4.1 -2C60 2C6C 5.0 -2C6D 2C6F 5.1 -2C70 5.2 -2C71 2C73 5.1 -2C74 2C77 5.0 -2C78 2C7D 5.1 -2C7E 2C7F 5.2 -2C80 2CEA 4.1 -2CEB 2CF1 5.2 -2CF2 2CF3 6.1 -2CF9 2D25 4.1 -2D27 6.1 -2D2D 6.1 -2D30 2D65 4.1 -2D66 2D67 6.1 -2D6F 4.1 -2D70 6.0 -2D7F 6.0 -2D80 2D96 4.1 -2DA0 2DA6 4.1 -2DA8 2DAE 4.1 -2DB0 2DB6 4.1 -2DB8 2DBE 4.1 -2DC0 2DC6 4.1 -2DC8 2DCE 4.1 -2DD0 2DD6 4.1 -2DD8 2DDE 4.1 -2DE0 2DFF 5.1 -2E00 2E17 4.1 -2E18 2E1B 5.1 -2E1C 2E1D 4.1 -2E1E 2E30 5.1 -2E31 5.2 -2E32 2E3B 6.1 -2E3C 2E42 7.0 -2E80 2E99 3.0 -2E9B 2EF3 3.0 -2F00 2FD5 3.0 -2FF0 2FFB 3.0 -3000 3037 1.1 -3038 303A 3.0 -303B 303D 3.2 -303E 3.0 -303F 1.1 -3041 3094 1.1 -3095 3096 3.2 -3099 309E 1.1 -309F 30A0 3.2 -30A1 30FE 1.1 -30FF 3.2 -3105 312C 1.1 -312D 5.1 -3131 318E 1.1 -3190 319F 1.1 -31A0 31B7 3.0 -31B8 31BA 6.0 -31C0 31CF 4.1 -31D0 31E3 5.1 -31F0 31FF 3.2 -3200 321C 1.1 -321D 321E 4.0 -3220 3243 1.1 -3244 324F 5.2 -3250 4.0 -3251 325F 3.2 -3260 327B 1.1 -327C 327D 4.0 -327E 4.1 -327F 32B0 1.1 -32B1 32BF 3.2 -32C0 32CB 1.1 -32CC 32CF 4.0 -32D0 32FE 1.1 -3300 3376 1.1 -3377 337A 4.0 -337B 33DD 1.1 -33DE 33DF 4.0 -33E0 33FE 1.1 -33FF 4.0 -3400 4DB5 3.0 -4DC0 4DFF 4.0 -4E00 9FA5 1.1 -9FA6 9FBB 4.1 -9FBC 9FC3 5.1 -9FC4 9FCB 5.2 -9FCC 6.1 -9FCD 9FD5 8.0 -A000 A48C 3.0 -A490 A4A1 3.0 -A4A2 A4A3 3.2 -A4A4 A4B3 3.0 -A4B4 3.2 -A4B5 A4C0 3.0 -A4C1 3.2 -A4C2 A4C4 3.0 -A4C5 3.2 -A4C6 3.0 -A4D0 A4FF 5.2 -A500 A62B 5.1 -A640 A65F 5.1 -A660 A661 6.0 -A662 A673 5.1 -A674 A67B 6.1 -A67C A697 5.1 -A698 A69D 7.0 -A69E 8.0 -A69F 6.1 -A6A0 A6F7 5.2 -A700 A716 4.1 -A717 A71A 5.0 -A71B A71F 5.1 -A720 A721 5.0 -A722 A78C 5.1 -A78D A78E 6.0 -A78F 8.0 -A790 A791 6.0 -A792 A793 6.1 -A794 A79F 7.0 -A7A0 A7A9 6.0 -A7AA 6.1 -A7AB A7AD 7.0 -A7B0 A7B1 7.0 -A7B2 A7B7 8.0 -A7F7 7.0 -A7F8 A7F9 6.1 -A7FA 6.0 -A7FB A7FF 5.1 -A800 A82B 4.1 -A830 A839 5.2 -A840 A877 5.0 -A880 A8C4 5.1 -A8CE A8D9 5.1 -A8E0 A8FB 5.2 -A8FC A8FD 8.0 -A900 A953 5.1 -A95F 5.1 -A960 A97C 5.2 -A980 A9CD 5.2 -A9CF A9D9 5.2 -A9DE A9DF 5.2 -A9E0 A9FE 7.0 -AA00 AA36 5.1 -AA40 AA4D 5.1 -AA50 AA59 5.1 -AA5C AA5F 5.1 -AA60 AA7B 5.2 -AA7C AA7F 7.0 -AA80 AAC2 5.2 -AADB AADF 5.2 -AAE0 AAF6 6.1 -AB01 AB06 6.0 -AB09 AB0E 6.0 -AB11 AB16 6.0 -AB20 AB26 6.0 -AB28 AB2E 6.0 -AB30 AB5F 7.0 -AB60 AB63 8.0 -AB64 AB65 7.0 -AB70 ABBF 8.0 -ABC0 ABED 5.2 -ABF0 ABF9 5.2 -AC00 D7A3 2.0 -D7B0 D7C6 5.2 -D7CB D7FB 5.2 -D800 DFFF 2.0 -E000 FA2D 1.1 -FA2E FA2F 6.1 -FA30 FA6A 3.2 -FA6B FA6D 5.2 -FA70 FAD9 4.1 -FB00 FB06 1.1 -FB13 FB17 1.1 -FB1D 3.0 -FB1E FB36 1.1 -FB38 FB3C 1.1 -FB3E 1.1 -FB40 FB41 1.1 -FB43 FB44 1.1 -FB46 FBB1 1.1 -FBB2 FBC1 6.0 -FBD3 FD3F 1.1 -FD50 FD8F 1.1 -FD92 FDC7 1.1 -FDD0 FDEF 3.1 -FDF0 FDFB 1.1 -FDFC 3.2 -FDFD 4.0 -FE00 FE0F 3.2 -FE10 FE19 4.1 -FE20 FE23 1.1 -FE24 FE26 5.1 -FE27 FE2D 7.0 -FE2E FE2F 8.0 -FE30 FE44 1.1 -FE45 FE46 3.2 -FE47 FE48 4.0 -FE49 FE52 1.1 -FE54 FE66 1.1 -FE68 FE6B 1.1 -FE70 FE72 1.1 -FE73 3.2 -FE74 1.1 -FE76 FEFC 1.1 -FEFF 1.1 -FF01 FF5E 1.1 -FF5F FF60 3.2 -FF61 FFBE 1.1 -FFC2 FFC7 1.1 -FFCA FFCF 1.1 -FFD2 FFD7 1.1 -FFDA FFDC 1.1 -FFE0 FFE6 1.1 -FFE8 FFEE 1.1 -FFF9 FFFB 3.0 -FFFC 2.1 -FFFD FFFF 1.1 -10000 1000B 4.0 -1000D 10026 4.0 -10028 1003A 4.0 -1003C 1003D 4.0 -1003F 1004D 4.0 -10050 1005D 4.0 -10080 100FA 4.0 -10100 10102 4.0 -10107 10133 4.0 -10137 1013F 4.0 -10140 1018A 4.1 -1018B 1018C 7.0 -10190 1019B 5.1 -101A0 7.0 -101D0 101FD 5.1 -10280 1029C 5.1 -102A0 102D0 5.1 -102E0 102FB 7.0 -10300 1031E 3.1 -1031F 7.0 -10320 10323 3.1 -10330 1034A 3.1 -10350 1037A 7.0 -10380 1039D 4.0 -1039F 4.0 -103A0 103C3 4.1 -103C8 103D5 4.1 -10400 10425 3.1 -10426 10427 4.0 -10428 1044D 3.1 -1044E 1049D 4.0 -104A0 104A9 4.0 -10500 10527 7.0 -10530 10563 7.0 -1056F 7.0 -10600 10736 7.0 -10740 10755 7.0 -10760 10767 7.0 -10800 10805 4.0 -10808 4.0 -1080A 10835 4.0 -10837 10838 4.0 -1083C 4.0 -1083F 4.0 -10840 10855 5.2 -10857 1085F 5.2 -10860 1089E 7.0 -108A7 108AF 7.0 -108E0 108F2 8.0 -108F4 108F5 8.0 -108FB 108FF 8.0 -10900 10919 5.0 -1091A 1091B 5.2 -1091F 5.0 -10920 10939 5.1 -1093F 5.1 -10980 109B7 6.1 -109BC 109BD 8.0 -109BE 109BF 6.1 -109C0 109CF 8.0 -109D2 109FF 8.0 -10A00 10A03 4.1 -10A05 10A06 4.1 -10A0C 10A13 4.1 -10A15 10A17 4.1 -10A19 10A33 4.1 -10A38 10A3A 4.1 -10A3F 10A47 4.1 -10A50 10A58 4.1 -10A60 10A7F 5.2 -10A80 10A9F 7.0 -10AC0 10AE6 7.0 -10AEB 10AF6 7.0 -10B00 10B35 5.2 -10B39 10B55 5.2 -10B58 10B72 5.2 -10B78 10B7F 5.2 -10B80 10B91 7.0 -10B99 10B9C 7.0 -10BA9 10BAF 7.0 -10C00 10C48 5.2 -10C80 10CB2 8.0 -10CC0 10CF2 8.0 -10CFA 10CFF 8.0 -10E60 10E7E 5.2 -11000 1104D 6.0 -11052 1106F 6.0 -1107F 7.0 -11080 110C1 5.2 -110D0 110E8 6.1 -110F0 110F9 6.1 -11100 11134 6.1 -11136 11143 6.1 -11150 11176 7.0 -11180 111C8 6.1 -111C9 111CC 8.0 -111CD 7.0 -111D0 111D9 6.1 -111DA 7.0 -111DB 111DF 8.0 -111E1 111F4 7.0 -11200 11211 7.0 -11213 1123D 7.0 -11280 11286 8.0 -11288 8.0 -1128A 1128D 8.0 -1128F 1129D 8.0 -1129F 112A9 8.0 -112B0 112EA 7.0 -112F0 112F9 7.0 -11300 8.0 -11301 11303 7.0 -11305 1130C 7.0 -1130F 11310 7.0 -11313 11328 7.0 -1132A 11330 7.0 -11332 11333 7.0 -11335 11339 7.0 -1133C 11344 7.0 -11347 11348 7.0 -1134B 1134D 7.0 -11350 8.0 -11357 7.0 -1135D 11363 7.0 -11366 1136C 7.0 -11370 11374 7.0 -11480 114C7 7.0 -114D0 114D9 7.0 -11580 115B5 7.0 -115B8 115C9 7.0 -115CA 115DD 8.0 -11600 11644 7.0 -11650 11659 7.0 -11680 116B7 6.1 -116C0 116C9 6.1 -11700 11719 8.0 -1171D 1172B 8.0 -11730 1173F 8.0 -118A0 118F2 7.0 -118FF 7.0 -11AC0 11AF8 7.0 -12000 1236E 5.0 -1236F 12398 7.0 -12399 8.0 -12400 12462 5.0 -12463 1246E 7.0 -12470 12473 5.0 -12474 7.0 -12480 12543 8.0 -13000 1342E 5.2 -14400 14646 8.0 -16800 16A38 6.0 -16A40 16A5E 7.0 -16A60 16A69 7.0 -16A6E 16A6F 7.0 -16AD0 16AED 7.0 -16AF0 16AF5 7.0 -16B00 16B45 7.0 -16B50 16B59 7.0 -16B5B 16B61 7.0 -16B63 16B77 7.0 -16B7D 16B8F 7.0 -16F00 16F44 6.1 -16F50 16F7E 6.1 -16F8F 16F9F 6.1 -1B000 1B001 6.0 -1BC00 1BC6A 7.0 -1BC70 1BC7C 7.0 -1BC80 1BC88 7.0 -1BC90 1BC99 7.0 -1BC9C 1BCA3 7.0 -1D000 1D0F5 3.1 -1D100 1D126 3.1 -1D129 5.1 -1D12A 1D1DD 3.1 -1D1DE 1D1E8 8.0 -1D200 1D245 4.1 -1D300 1D356 4.0 -1D360 1D371 5.0 -1D400 1D454 3.1 -1D456 1D49C 3.1 -1D49E 1D49F 3.1 -1D4A2 3.1 -1D4A5 1D4A6 3.1 -1D4A9 1D4AC 3.1 -1D4AE 1D4B9 3.1 -1D4BB 3.1 -1D4BD 1D4C0 3.1 -1D4C1 4.0 -1D4C2 1D4C3 3.1 -1D4C5 1D505 3.1 -1D507 1D50A 3.1 -1D50D 1D514 3.1 -1D516 1D51C 3.1 -1D51E 1D539 3.1 -1D53B 1D53E 3.1 -1D540 1D544 3.1 -1D546 3.1 -1D54A 1D550 3.1 -1D552 1D6A3 3.1 -1D6A4 1D6A5 4.1 -1D6A8 1D7C9 3.1 -1D7CA 1D7CB 5.0 -1D7CE 1D7FF 3.1 -1D800 1DA8B 8.0 -1DA9B 1DA9F 8.0 -1DAA1 1DAAF 8.0 -1E800 1E8C4 7.0 -1E8C7 1E8D6 7.0 -1EE00 1EE03 6.1 -1EE05 1EE1F 6.1 -1EE21 1EE22 6.1 -1EE24 6.1 -1EE27 6.1 -1EE29 1EE32 6.1 -1EE34 1EE37 6.1 -1EE39 6.1 -1EE3B 6.1 -1EE42 6.1 -1EE47 6.1 -1EE49 6.1 -1EE4B 6.1 -1EE4D 1EE4F 6.1 -1EE51 1EE52 6.1 -1EE54 6.1 -1EE57 6.1 -1EE59 6.1 -1EE5B 6.1 -1EE5D 6.1 -1EE5F 6.1 -1EE61 1EE62 6.1 -1EE64 6.1 -1EE67 1EE6A 6.1 -1EE6C 1EE72 6.1 -1EE74 1EE77 6.1 -1EE79 1EE7C 6.1 -1EE7E 6.1 -1EE80 1EE89 6.1 -1EE8B 1EE9B 6.1 -1EEA1 1EEA3 6.1 -1EEA5 1EEA9 6.1 -1EEAB 1EEBB 6.1 -1EEF0 1EEF1 6.1 -1F000 1F02B 5.1 -1F030 1F093 5.1 -1F0A0 1F0AE 6.0 -1F0B1 1F0BE 6.0 -1F0BF 7.0 -1F0C1 1F0CF 6.0 -1F0D1 1F0DF 6.0 -1F0E0 1F0F5 7.0 -1F100 1F10A 5.2 -1F10B 1F10C 7.0 -1F110 1F12E 5.2 -1F130 6.0 -1F131 5.2 -1F132 1F13C 6.0 -1F13D 5.2 -1F13E 6.0 -1F13F 5.2 -1F140 1F141 6.0 -1F142 5.2 -1F143 1F145 6.0 -1F146 5.2 -1F147 1F149 6.0 -1F14A 1F14E 5.2 -1F14F 1F156 6.0 -1F157 5.2 -1F158 1F15E 6.0 -1F15F 5.2 -1F160 1F169 6.0 -1F16A 1F16B 6.1 -1F170 1F178 6.0 -1F179 5.2 -1F17A 6.0 -1F17B 1F17C 5.2 -1F17D 1F17E 6.0 -1F17F 5.2 -1F180 1F189 6.0 -1F18A 1F18D 5.2 -1F18E 1F18F 6.0 -1F190 5.2 -1F191 1F19A 6.0 -1F1E6 1F1FF 6.0 -1F200 5.2 -1F201 1F202 6.0 -1F210 1F231 5.2 -1F232 1F23A 6.0 -1F240 1F248 5.2 -1F250 1F251 6.0 -1F300 1F320 6.0 -1F321 1F32C 7.0 -1F32D 1F32F 8.0 -1F330 1F335 6.0 -1F336 7.0 -1F337 1F37C 6.0 -1F37D 7.0 -1F37E 1F37F 8.0 -1F380 1F393 6.0 -1F394 1F39F 7.0 -1F3A0 1F3C4 6.0 -1F3C5 7.0 -1F3C6 1F3CA 6.0 -1F3CB 1F3CE 7.0 -1F3CF 1F3D3 8.0 -1F3D4 1F3DF 7.0 -1F3E0 1F3F0 6.0 -1F3F1 1F3F7 7.0 -1F3F8 1F3FF 8.0 -1F400 1F43E 6.0 -1F43F 7.0 -1F440 6.0 -1F441 7.0 -1F442 1F4F7 6.0 -1F4F8 7.0 -1F4F9 1F4FC 6.0 -1F4FD 1F4FE 7.0 -1F4FF 8.0 -1F500 1F53D 6.0 -1F53E 1F53F 7.0 -1F540 1F543 6.1 -1F544 1F54A 7.0 -1F54B 1F54F 8.0 -1F550 1F567 6.0 -1F568 1F579 7.0 -1F57B 1F5A3 7.0 -1F5A5 1F5FA 7.0 -1F5FB 1F5FF 6.0 -1F600 6.1 -1F601 1F610 6.0 -1F611 6.1 -1F612 1F614 6.0 -1F615 6.1 -1F616 6.0 -1F617 6.1 -1F618 6.0 -1F619 6.1 -1F61A 6.0 -1F61B 6.1 -1F61C 1F61E 6.0 -1F61F 6.1 -1F620 1F625 6.0 -1F626 1F627 6.1 -1F628 1F62B 6.0 -1F62C 6.1 -1F62D 6.0 -1F62E 1F62F 6.1 -1F630 1F633 6.0 -1F634 6.1 -1F635 1F640 6.0 -1F641 1F642 7.0 -1F643 1F644 8.0 -1F645 1F64F 6.0 -1F650 1F67F 7.0 -1F680 1F6C5 6.0 -1F6C6 1F6CF 7.0 -1F6D0 8.0 -1F6E0 1F6EC 7.0 -1F6F0 1F6F3 7.0 -1F700 1F773 6.0 -1F780 1F7D4 7.0 -1F800 1F80B 7.0 -1F810 1F847 7.0 -1F850 1F859 7.0 -1F860 1F887 7.0 -1F890 1F8AD 7.0 -1F910 1F918 8.0 -1F980 1F984 8.0 -1F9C0 8.0 -1FFFE 1FFFF 2.0 -20000 2A6D6 3.1 -2A700 2B734 5.2 -2B740 2B81D 6.0 -2B820 2CEA1 8.0 -2F800 2FA1D 3.1 -2FFFE 2FFFF 2.0 -3FFFE 3FFFF 2.0 -4FFFE 4FFFF 2.0 -5FFFE 5FFFF 2.0 -6FFFE 6FFFF 2.0 -7FFFE 7FFFF 2.0 -8FFFE 8FFFF 2.0 -9FFFE 9FFFF 2.0 -AFFFE AFFFF 2.0 -BFFFE BFFFF 2.0 -CFFFE CFFFF 2.0 -DFFFE DFFFF 2.0 -E0001 3.1 -E0020 E007F 3.1 -E0100 E01EF 4.0 -EFFFE 10FFFF 2.0 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Bc.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Bc.pl deleted file mode 100644 index ec60241b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Bc.pl +++ /dev/null @@ -1,624 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToBc'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToBc'}{'missing'} = 'L'; - -return <<'END'; -0 8 BN -9 S -A B -B S -C WS -D B -E 1B BN -1C 1E B -1F S -20 WS -21 22 ON -23 25 ET -26 2A ON -2B ES -2C CS -2D ES -2E 2F CS -30 39 EN -3A CS -3B 40 ON -5B 60 ON -7B 7E ON -7F 84 BN -85 B -86 9F BN -A0 CS -A1 ON -A2 A5 ET -A6 A9 ON -AB AC ON -AD BN -AE AF ON -B0 B1 ET -B2 B3 EN -B4 ON -B6 B8 ON -B9 EN -BB BF ON -D7 ON -F7 ON -2B9 2BA ON -2C2 2CF ON -2D2 2DF ON -2E5 2ED ON -2EF 2FF ON -300 36F NSM -374 375 ON -37E ON -384 385 ON -387 ON -3F6 ON -483 489 NSM -58A ON -58D 58E ON -58F ET -590 R -591 5BD NSM -5BE R -5BF NSM -5C0 R -5C1 5C2 NSM -5C3 R -5C4 5C5 NSM -5C6 R -5C7 NSM -5C8 5FF R -600 605 AN -606 607 ON -608 AL -609 60A ET -60B AL -60C CS -60D AL -60E 60F ON -610 61A NSM -61B 64A AL -64B 65F NSM -660 669 AN -66A ET -66B 66C AN -66D 66F AL -670 NSM -671 6D5 AL -6D6 6DC NSM -6DD AN -6DE ON -6DF 6E4 NSM -6E5 6E6 AL -6E7 6E8 NSM -6E9 ON -6EA 6ED NSM -6EE 6EF AL -6F0 6F9 EN -6FA 710 AL -711 NSM -712 72F AL -730 74A NSM -74B 7A5 AL -7A6 7B0 NSM -7B1 7BF AL -7C0 7EA R -7EB 7F3 NSM -7F4 7F5 R -7F6 7F9 ON -7FA 815 R -816 819 NSM -81A R -81B 823 NSM -824 R -825 827 NSM -828 R -829 82D NSM -82E 858 R -859 85B NSM -85C 89F R -8A0 8E2 AL -8E3 902 NSM -93A NSM -93C NSM -941 948 NSM -94D NSM -951 957 NSM -962 963 NSM -981 NSM -9BC NSM -9C1 9C4 NSM -9CD NSM -9E2 9E3 NSM -9F2 9F3 ET -9FB ET -A01 A02 NSM -A3C NSM -A41 A42 NSM -A47 A48 NSM -A4B A4D NSM -A51 NSM -A70 A71 NSM -A75 NSM -A81 A82 NSM -ABC NSM -AC1 AC5 NSM -AC7 AC8 NSM -ACD NSM -AE2 AE3 NSM -AF1 ET -B01 NSM -B3C NSM -B3F NSM -B41 B44 NSM -B4D NSM -B56 NSM -B62 B63 NSM -B82 NSM -BC0 NSM -BCD NSM -BF3 BF8 ON -BF9 ET -BFA ON -C00 NSM -C3E C40 NSM -C46 C48 NSM -C4A C4D NSM -C55 C56 NSM -C62 C63 NSM -C78 C7E ON -C81 NSM -CBC NSM -CCC CCD NSM -CE2 CE3 NSM -D01 NSM -D41 D44 NSM -D4D NSM -D62 D63 NSM -DCA NSM -DD2 DD4 NSM -DD6 NSM -E31 NSM -E34 E3A NSM -E3F ET -E47 E4E NSM -EB1 NSM -EB4 EB9 NSM -EBB EBC NSM -EC8 ECD NSM -F18 F19 NSM -F35 NSM -F37 NSM -F39 NSM -F3A F3D ON -F71 F7E NSM -F80 F84 NSM -F86 F87 NSM -F8D F97 NSM -F99 FBC NSM -FC6 NSM -102D 1030 NSM -1032 1037 NSM -1039 103A NSM -103D 103E NSM -1058 1059 NSM -105E 1060 NSM -1071 1074 NSM -1082 NSM -1085 1086 NSM -108D NSM -109D NSM -135D 135F NSM -1390 1399 ON -1400 ON -1680 WS -169B 169C ON -1712 1714 NSM -1732 1734 NSM -1752 1753 NSM -1772 1773 NSM -17B4 17B5 NSM -17B7 17BD NSM -17C6 NSM -17C9 17D3 NSM -17DB ET -17DD NSM -17F0 17F9 ON -1800 180A ON -180B 180D NSM -180E BN -18A9 NSM -1920 1922 NSM -1927 1928 NSM -1932 NSM -1939 193B NSM -1940 ON -1944 1945 ON -19DE 19FF ON -1A17 1A18 NSM -1A1B NSM -1A56 NSM -1A58 1A5E NSM -1A60 NSM -1A62 NSM -1A65 1A6C NSM -1A73 1A7C NSM -1A7F NSM -1AB0 1ABE NSM -1B00 1B03 NSM -1B34 NSM -1B36 1B3A NSM -1B3C NSM -1B42 NSM -1B6B 1B73 NSM -1B80 1B81 NSM -1BA2 1BA5 NSM -1BA8 1BA9 NSM -1BAB 1BAD NSM -1BE6 NSM -1BE8 1BE9 NSM -1BED NSM -1BEF 1BF1 NSM -1C2C 1C33 NSM -1C36 1C37 NSM -1CD0 1CD2 NSM -1CD4 1CE0 NSM -1CE2 1CE8 NSM -1CED NSM -1CF4 NSM -1CF8 1CF9 NSM -1DC0 1DF5 NSM -1DFC 1DFF NSM -1FBD ON -1FBF 1FC1 ON -1FCD 1FCF ON -1FDD 1FDF ON -1FED 1FEF ON -1FFD 1FFE ON -2000 200A WS -200B 200D BN -200F R -2010 2027 ON -2028 WS -2029 B -202A LRE -202B RLE -202C PDF -202D LRO -202E RLO -202F CS -2030 2034 ET -2035 2043 ON -2044 CS -2045 205E ON -205F WS -2060 2065 BN -2066 LRI -2067 RLI -2068 FSI -2069 PDI -206A 206F BN -2070 EN -2074 2079 EN -207A 207B ES -207C 207E ON -2080 2089 EN -208A 208B ES -208C 208E ON -20A0 20CF ET -20D0 20F0 NSM -2100 2101 ON -2103 2106 ON -2108 2109 ON -2114 ON -2116 2118 ON -211E 2123 ON -2125 ON -2127 ON -2129 ON -212E ET -213A 213B ON -2140 2144 ON -214A 214D ON -2150 215F ON -2189 218B ON -2190 2211 ON -2212 ES -2213 ET -2214 2335 ON -237B 2394 ON -2396 23FA ON -2400 2426 ON -2440 244A ON -2460 2487 ON -2488 249B EN -24EA 26AB ON -26AD 27FF ON -2900 2B73 ON -2B76 2B95 ON -2B98 2BB9 ON -2BBD 2BC8 ON -2BCA 2BD1 ON -2BEC 2BEF ON -2CE5 2CEA ON -2CEF 2CF1 NSM -2CF9 2CFF ON -2D7F NSM -2DE0 2DFF NSM -2E00 2E42 ON -2E80 2E99 ON -2E9B 2EF3 ON -2F00 2FD5 ON -2FF0 2FFB ON -3000 WS -3001 3004 ON -3008 3020 ON -302A 302D NSM -3030 ON -3036 3037 ON -303D 303F ON -3099 309A NSM -309B 309C ON -30A0 ON -30FB ON -31C0 31E3 ON -321D 321E ON -3250 325F ON -327C 327E ON -32B1 32BF ON -32CC 32CF ON -3377 337A ON -33DE 33DF ON -33FF ON -4DC0 4DFF ON -A490 A4C6 ON -A60D A60F ON -A66F A672 NSM -A673 ON -A674 A67D NSM -A67E A67F ON -A69E A69F NSM -A6F0 A6F1 NSM -A700 A721 ON -A788 ON -A802 NSM -A806 NSM -A80B NSM -A825 A826 NSM -A828 A82B ON -A838 A839 ET -A874 A877 ON -A8C4 NSM -A8E0 A8F1 NSM -A926 A92D NSM -A947 A951 NSM -A980 A982 NSM -A9B3 NSM -A9B6 A9B9 NSM -A9BC NSM -A9E5 NSM -AA29 AA2E NSM -AA31 AA32 NSM -AA35 AA36 NSM -AA43 NSM -AA4C NSM -AA7C NSM -AAB0 NSM -AAB2 AAB4 NSM -AAB7 AAB8 NSM -AABE AABF NSM -AAC1 NSM -AAEC AAED NSM -AAF6 NSM -ABE5 NSM -ABE8 NSM -ABED NSM -FB1D R -FB1E NSM -FB1F FB28 R -FB29 ES -FB2A FB4F R -FB50 FD3D AL -FD3E FD3F ON -FD40 FDCF AL -FDD0 FDEF BN -FDF0 FDFC AL -FDFD ON -FDFE FDFF AL -FE00 FE0F NSM -FE10 FE19 ON -FE20 FE2F NSM -FE30 FE4F ON -FE50 CS -FE51 ON -FE52 CS -FE54 ON -FE55 CS -FE56 FE5E ON -FE5F ET -FE60 FE61 ON -FE62 FE63 ES -FE64 FE66 ON -FE68 ON -FE69 FE6A ET -FE6B ON -FE70 FEFE AL -FEFF BN -FF01 FF02 ON -FF03 FF05 ET -FF06 FF0A ON -FF0B ES -FF0C CS -FF0D ES -FF0E FF0F CS -FF10 FF19 EN -FF1A CS -FF1B FF20 ON -FF3B FF40 ON -FF5B FF65 ON -FFE0 FFE1 ET -FFE2 FFE4 ON -FFE5 FFE6 ET -FFE8 FFEE ON -FFF0 FFF8 BN -FFF9 FFFD ON -FFFE FFFF BN -10101 ON -10140 1018C ON -10190 1019B ON -101A0 ON -101FD NSM -102E0 NSM -102E1 102FB EN -10376 1037A NSM -10800 1091E R -1091F ON -10920 10A00 R -10A01 10A03 NSM -10A04 R -10A05 10A06 NSM -10A07 10A0B R -10A0C 10A0F NSM -10A10 10A37 R -10A38 10A3A NSM -10A3B 10A3E R -10A3F NSM -10A40 10AE4 R -10AE5 10AE6 NSM -10AE7 10B38 R -10B39 10B3F ON -10B40 10E5F R -10E60 10E7E AN -10E7F 10FFF R -11001 NSM -11038 11046 NSM -11052 11065 ON -1107F 11081 NSM -110B3 110B6 NSM -110B9 110BA NSM -11100 11102 NSM -11127 1112B NSM -1112D 11134 NSM -11173 NSM -11180 11181 NSM -111B6 111BE NSM -111CA 111CC NSM -1122F 11231 NSM -11234 NSM -11236 11237 NSM -112DF NSM -112E3 112EA NSM -11300 11301 NSM -1133C NSM -11340 NSM -11366 1136C NSM -11370 11374 NSM -114B3 114B8 NSM -114BA NSM -114BF 114C0 NSM -114C2 114C3 NSM -115B2 115B5 NSM -115BC 115BD NSM -115BF 115C0 NSM -115DC 115DD NSM -11633 1163A NSM -1163D NSM -1163F 11640 NSM -116AB NSM -116AD NSM -116B0 116B5 NSM -116B7 NSM -1171D 1171F NSM -11722 11725 NSM -11727 1172B NSM -16AF0 16AF4 NSM -16B30 16B36 NSM -16F8F 16F92 NSM -1BC9D 1BC9E NSM -1BCA0 1BCA3 BN -1D167 1D169 NSM -1D173 1D17A BN -1D17B 1D182 NSM -1D185 1D18B NSM -1D1AA 1D1AD NSM -1D200 1D241 ON -1D242 1D244 NSM -1D245 ON -1D300 1D356 ON -1D6DB ON -1D715 ON -1D74F ON -1D789 ON -1D7C3 ON -1D7CE 1D7FF EN -1DA00 1DA36 NSM -1DA3B 1DA6C NSM -1DA75 NSM -1DA84 NSM -1DA9B 1DA9F NSM -1DAA1 1DAAF NSM -1E800 1E8CF R -1E8D0 1E8D6 NSM -1E8D7 1EDFF R -1EE00 1EEEF AL -1EEF0 1EEF1 ON -1EEF2 1EEFF AL -1EF00 1EFFF R -1F000 1F02B ON -1F030 1F093 ON -1F0A0 1F0AE ON -1F0B1 1F0BF ON -1F0C1 1F0CF ON -1F0D1 1F0F5 ON -1F100 1F10A EN -1F10B 1F10C ON -1F16A 1F16B ON -1F300 1F579 ON -1F57B 1F5A3 ON -1F5A5 1F6D0 ON -1F6E0 1F6EC ON -1F6F0 1F6F3 ON -1F700 1F773 ON -1F780 1F7D4 ON -1F800 1F80B ON -1F810 1F847 ON -1F850 1F859 ON -1F860 1F887 ON -1F890 1F8AD ON -1F910 1F918 ON -1F980 1F984 ON -1F9C0 ON -1FFFE 1FFFF BN -2FFFE 2FFFF BN -3FFFE 3FFFF BN -4FFFE 4FFFF BN -5FFFE 5FFFF BN -6FFFE 6FFFF BN -7FFFE 7FFFF BN -8FFFE 8FFFF BN -9FFFE 9FFFF BN -AFFFE AFFFF BN -BFFFE BFFFF BN -CFFFE CFFFF BN -DFFFE E00FF BN -E0100 E01EF NSM -E01F0 E0FFF BN -EFFFE EFFFF BN -FFFFE FFFFF BN -10FFFE 10FFFF BN -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Bmg.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Bmg.pl deleted file mode 100644 index dcb7a4fc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Bmg.pl +++ /dev/null @@ -1,388 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!! - -# This file is for internal use by core Perl only. It is retained for -# backwards compatibility with applications that may have come to rely on it, -# but its format and even its name or existence are subject to change without -# notice in a future Perl version. Don't use it directly. Instead, its -# contents are now retrievable through a stable API in the Unicode::UCD -# module: Unicode::UCD::prop_invmap('Bidi_Mirroring_Glyph') (Values for individual -# code points can be retrieved via Unicode::UCD::charprop()); - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToBmg'}{'format'} = 'x'; # non-negative hex whole number; a code point -$utf8::SwashInfo{'ToBmg'}{'missing'} = ''; # code point maps to the null string - -return <<'END'; -0028 0029 -0029 0028 -003C 003E -003E 003C -005B 005D -005D 005B -007B 007D -007D 007B -00AB 00BB -00BB 00AB -0F3A 0F3B -0F3B 0F3A -0F3C 0F3D -0F3D 0F3C -169B 169C -169C 169B -2039 203A -203A 2039 -2045 2046 -2046 2045 -207D 207E -207E 207D -208D 208E -208E 208D -2208 220B -2209 220C -220A 220D -220B 2208 -220C 2209 -220D 220A -2215 29F5 -223C 223D -223D 223C -2243 22CD -2252 2253 -2253 2252 -2254 2255 -2255 2254 -2264 2265 -2265 2264 -2266 2267 -2267 2266 -2268 2269 -2269 2268 -226A 226B -226B 226A -226E 226F -226F 226E -2270 2271 -2271 2270 -2272 2273 -2273 2272 -2274 2275 -2275 2274 -2276 2277 -2277 2276 -2278 2279 -2279 2278 -227A 227B -227B 227A -227C 227D -227D 227C -227E 227F -227F 227E -2280 2281 -2281 2280 -2282 2283 -2283 2282 -2284 2285 -2285 2284 -2286 2287 -2287 2286 -2288 2289 -2289 2288 -228A 228B -228B 228A -228F 2290 -2290 228F -2291 2292 -2292 2291 -2298 29B8 -22A2 22A3 -22A3 22A2 -22A6 2ADE -22A8 2AE4 -22A9 2AE3 -22AB 2AE5 -22B0 22B1 -22B1 22B0 -22B2 22B3 -22B3 22B2 -22B4 22B5 -22B5 22B4 -22B6 22B7 -22B7 22B6 -22C9 22CA -22CA 22C9 -22CB 22CC -22CC 22CB -22CD 2243 -22D0 22D1 -22D1 22D0 -22D6 22D7 -22D7 22D6 -22D8 22D9 -22D9 22D8 -22DA 22DB -22DB 22DA -22DC 22DD -22DD 22DC -22DE 22DF -22DF 22DE -22E0 22E1 -22E1 22E0 -22E2 22E3 -22E3 22E2 -22E4 22E5 -22E5 22E4 -22E6 22E7 -22E7 22E6 -22E8 22E9 -22E9 22E8 -22EA 22EB -22EB 22EA -22EC 22ED -22ED 22EC -22F0 22F1 -22F1 22F0 -22F2 22FA -22F3 22FB -22F4 22FC -22F6 22FD -22F7 22FE -22FA 22F2 -22FB 22F3 -22FC 22F4 -22FD 22F6 -22FE 22F7 -2308 2309 -2309 2308 -230A 230B -230B 230A -2329 232A -232A 2329 -2768 2769 -2769 2768 -276A 276B -276B 276A -276C 276D -276D 276C -276E 276F -276F 276E -2770 2771 -2771 2770 -2772 2773 -2773 2772 -2774 2775 -2775 2774 -27C3 27C4 -27C4 27C3 -27C5 27C6 -27C6 27C5 -27C8 27C9 -27C9 27C8 -27CB 27CD -27CD 27CB -27D5 27D6 -27D6 27D5 -27DD 27DE -27DE 27DD -27E2 27E3 -27E3 27E2 -27E4 27E5 -27E5 27E4 -27E6 27E7 -27E7 27E6 -27E8 27E9 -27E9 27E8 -27EA 27EB -27EB 27EA -27EC 27ED -27ED 27EC -27EE 27EF -27EF 27EE -2983 2984 -2984 2983 -2985 2986 -2986 2985 -2987 2988 -2988 2987 -2989 298A -298A 2989 -298B 298C -298C 298B -298D 2990 -298E 298F -298F 298E -2990 298D -2991 2992 -2992 2991 -2993 2994 -2994 2993 -2995 2996 -2996 2995 -2997 2998 -2998 2997 -29B8 2298 -29C0 29C1 -29C1 29C0 -29C4 29C5 -29C5 29C4 -29CF 29D0 -29D0 29CF -29D1 29D2 -29D2 29D1 -29D4 29D5 -29D5 29D4 -29D8 29D9 -29D9 29D8 -29DA 29DB -29DB 29DA -29F5 2215 -29F8 29F9 -29F9 29F8 -29FC 29FD -29FD 29FC -2A2B 2A2C -2A2C 2A2B -2A2D 2A2E -2A2E 2A2D -2A34 2A35 -2A35 2A34 -2A3C 2A3D -2A3D 2A3C -2A64 2A65 -2A65 2A64 -2A79 2A7A -2A7A 2A79 -2A7D 2A7E -2A7E 2A7D -2A7F 2A80 -2A80 2A7F -2A81 2A82 -2A82 2A81 -2A83 2A84 -2A84 2A83 -2A8B 2A8C -2A8C 2A8B -2A91 2A92 -2A92 2A91 -2A93 2A94 -2A94 2A93 -2A95 2A96 -2A96 2A95 -2A97 2A98 -2A98 2A97 -2A99 2A9A -2A9A 2A99 -2A9B 2A9C -2A9C 2A9B -2AA1 2AA2 -2AA2 2AA1 -2AA6 2AA7 -2AA7 2AA6 -2AA8 2AA9 -2AA9 2AA8 -2AAA 2AAB -2AAB 2AAA -2AAC 2AAD -2AAD 2AAC -2AAF 2AB0 -2AB0 2AAF -2AB3 2AB4 -2AB4 2AB3 -2ABB 2ABC -2ABC 2ABB -2ABD 2ABE -2ABE 2ABD -2ABF 2AC0 -2AC0 2ABF -2AC1 2AC2 -2AC2 2AC1 -2AC3 2AC4 -2AC4 2AC3 -2AC5 2AC6 -2AC6 2AC5 -2ACD 2ACE -2ACE 2ACD -2ACF 2AD0 -2AD0 2ACF -2AD1 2AD2 -2AD2 2AD1 -2AD3 2AD4 -2AD4 2AD3 -2AD5 2AD6 -2AD6 2AD5 -2ADE 22A6 -2AE3 22A9 -2AE4 22A8 -2AE5 22AB -2AEC 2AED -2AED 2AEC -2AF7 2AF8 -2AF8 2AF7 -2AF9 2AFA -2AFA 2AF9 -2E02 2E03 -2E03 2E02 -2E04 2E05 -2E05 2E04 -2E09 2E0A -2E0A 2E09 -2E0C 2E0D -2E0D 2E0C -2E1C 2E1D -2E1D 2E1C -2E20 2E21 -2E21 2E20 -2E22 2E23 -2E23 2E22 -2E24 2E25 -2E25 2E24 -2E26 2E27 -2E27 2E26 -2E28 2E29 -2E29 2E28 -3008 3009 -3009 3008 -300A 300B -300B 300A -300C 300D -300D 300C -300E 300F -300F 300E -3010 3011 -3011 3010 -3014 3015 -3015 3014 -3016 3017 -3017 3016 -3018 3019 -3019 3018 -301A 301B -301B 301A -FE59 FE5A -FE5A FE59 -FE5B FE5C -FE5C FE5B -FE5D FE5E -FE5E FE5D -FE64 FE65 -FE65 FE64 -FF08 FF09 -FF09 FF08 -FF1C FF1E -FF1E FF1C -FF3B FF3D -FF3D FF3B -FF5B FF5D -FF5D FF5B -FF5F FF60 -FF60 FF5F -FF62 FF63 -FF63 FF62 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Bpb.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Bpb.pl deleted file mode 100644 index d13e97d8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Bpb.pl +++ /dev/null @@ -1,140 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToBpb'}{'format'} = 'x'; # non-negative hex whole number; a code point -$utf8::SwashInfo{'ToBpb'}{'missing'} = ''; # code point maps to the null string - -return <<'END'; -28 0029 -29 0028 -5B 005D -5D 005B -7B 007D -7D 007B -F3A 0F3B -F3B 0F3A -F3C 0F3D -F3D 0F3C -169B 169C -169C 169B -2045 2046 -2046 2045 -207D 207E -207E 207D -208D 208E -208E 208D -2308 2309 -2309 2308 -230A 230B -230B 230A -2329 232A -232A 2329 -2768 2769 -2769 2768 -276A 276B -276B 276A -276C 276D -276D 276C -276E 276F -276F 276E -2770 2771 -2771 2770 -2772 2773 -2773 2772 -2774 2775 -2775 2774 -27C5 27C6 -27C6 27C5 -27E6 27E7 -27E7 27E6 -27E8 27E9 -27E9 27E8 -27EA 27EB -27EB 27EA -27EC 27ED -27ED 27EC -27EE 27EF -27EF 27EE -2983 2984 -2984 2983 -2985 2986 -2986 2985 -2987 2988 -2988 2987 -2989 298A -298A 2989 -298B 298C -298C 298B -298D 2990 -298E 298F -298F 298E -2990 298D -2991 2992 -2992 2991 -2993 2994 -2994 2993 -2995 2996 -2996 2995 -2997 2998 -2998 2997 -29D8 29D9 -29D9 29D8 -29DA 29DB -29DB 29DA -29FC 29FD -29FD 29FC -2E22 2E23 -2E23 2E22 -2E24 2E25 -2E25 2E24 -2E26 2E27 -2E27 2E26 -2E28 2E29 -2E29 2E28 -3008 3009 -3009 3008 -300A 300B -300B 300A -300C 300D -300D 300C -300E 300F -300F 300E -3010 3011 -3011 3010 -3014 3015 -3015 3014 -3016 3017 -3017 3016 -3018 3019 -3019 3018 -301A 301B -301B 301A -FE59 FE5A -FE5A FE59 -FE5B FE5C -FE5C FE5B -FE5D FE5E -FE5E FE5D -FF08 FF09 -FF09 FF08 -FF3B FF3D -FF3D FF3B -FF5B FF5D -FF5D FF5B -FF5F FF60 -FF60 FF5F -FF62 FF63 -FF63 FF62 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Bpt.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Bpt.pl deleted file mode 100644 index c32005b1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Bpt.pl +++ /dev/null @@ -1,140 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToBpt'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToBpt'}{'missing'} = 'n'; - -return <<'END'; -28 o -29 c -5B o -5D c -7B o -7D c -F3A o -F3B c -F3C o -F3D c -169B o -169C c -2045 o -2046 c -207D o -207E c -208D o -208E c -2308 o -2309 c -230A o -230B c -2329 o -232A c -2768 o -2769 c -276A o -276B c -276C o -276D c -276E o -276F c -2770 o -2771 c -2772 o -2773 c -2774 o -2775 c -27C5 o -27C6 c -27E6 o -27E7 c -27E8 o -27E9 c -27EA o -27EB c -27EC o -27ED c -27EE o -27EF c -2983 o -2984 c -2985 o -2986 c -2987 o -2988 c -2989 o -298A c -298B o -298C c -298D o -298E c -298F o -2990 c -2991 o -2992 c -2993 o -2994 c -2995 o -2996 c -2997 o -2998 c -29D8 o -29D9 c -29DA o -29DB c -29FC o -29FD c -2E22 o -2E23 c -2E24 o -2E25 c -2E26 o -2E27 c -2E28 o -2E29 c -3008 o -3009 c -300A o -300B c -300C o -300D c -300E o -300F c -3010 o -3011 c -3014 o -3015 c -3016 o -3017 c -3018 o -3019 c -301A o -301B c -FE59 o -FE5A c -FE5B o -FE5C c -FE5D o -FE5E c -FF08 o -FF09 c -FF3B o -FF3D c -FF5B o -FF5D c -FF5F o -FF60 c -FF62 o -FF63 c -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Cf.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Cf.pl deleted file mode 100644 index bc0dc86d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Cf.pl +++ /dev/null @@ -1,793 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -# The mappings in the non-hash portion of this file must be modified to get the -# correct values by adding the code point ordinal number to each one that is -# numeric. - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToCf'}{'format'} = 'ax'; # mapped value in hex; some entries need adjustment -$utf8::SwashInfo{'ToCf'}{'specials_name'} = 'utf8::ToSpecCf'; # Name of hash of special mappings -$utf8::SwashInfo{'ToCf'}{'missing'} = '0'; # code point maps to itself - -# Some code points require special handling because their mappings are each to -# multiple code points. These do not appear in the main body, but are defined -# in the hash below. - -# Each key is the string of N bytes that together make up the UTF-8 encoding -# for the code point. (i.e. the same as looking at the code point's UTF-8 -# under "use bytes"). Each value is the UTF-8 of the translation, for speed. -%utf8::ToSpecCf = ( -"\xC3\x9F" => "\x{0073}\x{0073}", # U+00DF => 0073 0073 -"\xC4\xB0" => "\x{0069}\x{0307}", # U+0130 => 0069 0307 -"\xC5\x89" => "\x{02BC}\x{006E}", # U+0149 => 02BC 006E -"\xC7\xB0" => "\x{006A}\x{030C}", # U+01F0 => 006A 030C -"\xCE\x90" => "\x{03B9}\x{0308}\x{0301}", # U+0390 => 03B9 0308 0301 -"\xCE\xB0" => "\x{03C5}\x{0308}\x{0301}", # U+03B0 => 03C5 0308 0301 -"\xD6\x87" => "\x{0565}\x{0582}", # U+0587 => 0565 0582 -"\xE1\xBA\x96" => "\x{0068}\x{0331}", # U+1E96 => 0068 0331 -"\xE1\xBA\x97" => "\x{0074}\x{0308}", # U+1E97 => 0074 0308 -"\xE1\xBA\x98" => "\x{0077}\x{030A}", # U+1E98 => 0077 030A -"\xE1\xBA\x99" => "\x{0079}\x{030A}", # U+1E99 => 0079 030A -"\xE1\xBA\x9A" => "\x{0061}\x{02BE}", # U+1E9A => 0061 02BE -"\xE1\xBA\x9E" => "\x{0073}\x{0073}", # U+1E9E => 0073 0073 -"\xE1\xBD\x90" => "\x{03C5}\x{0313}", # U+1F50 => 03C5 0313 -"\xE1\xBD\x92" => "\x{03C5}\x{0313}\x{0300}", # U+1F52 => 03C5 0313 0300 -"\xE1\xBD\x94" => "\x{03C5}\x{0313}\x{0301}", # U+1F54 => 03C5 0313 0301 -"\xE1\xBD\x96" => "\x{03C5}\x{0313}\x{0342}", # U+1F56 => 03C5 0313 0342 -"\xE1\xBE\x80" => "\x{1F00}\x{03B9}", # U+1F80 => 1F00 03B9 -"\xE1\xBE\x81" => "\x{1F01}\x{03B9}", # U+1F81 => 1F01 03B9 -"\xE1\xBE\x82" => "\x{1F02}\x{03B9}", # U+1F82 => 1F02 03B9 -"\xE1\xBE\x83" => "\x{1F03}\x{03B9}", # U+1F83 => 1F03 03B9 -"\xE1\xBE\x84" => "\x{1F04}\x{03B9}", # U+1F84 => 1F04 03B9 -"\xE1\xBE\x85" => "\x{1F05}\x{03B9}", # U+1F85 => 1F05 03B9 -"\xE1\xBE\x86" => "\x{1F06}\x{03B9}", # U+1F86 => 1F06 03B9 -"\xE1\xBE\x87" => "\x{1F07}\x{03B9}", # U+1F87 => 1F07 03B9 -"\xE1\xBE\x88" => "\x{1F00}\x{03B9}", # U+1F88 => 1F00 03B9 -"\xE1\xBE\x89" => "\x{1F01}\x{03B9}", # U+1F89 => 1F01 03B9 -"\xE1\xBE\x8A" => "\x{1F02}\x{03B9}", # U+1F8A => 1F02 03B9 -"\xE1\xBE\x8B" => "\x{1F03}\x{03B9}", # U+1F8B => 1F03 03B9 -"\xE1\xBE\x8C" => "\x{1F04}\x{03B9}", # U+1F8C => 1F04 03B9 -"\xE1\xBE\x8D" => "\x{1F05}\x{03B9}", # U+1F8D => 1F05 03B9 -"\xE1\xBE\x8E" => "\x{1F06}\x{03B9}", # U+1F8E => 1F06 03B9 -"\xE1\xBE\x8F" => "\x{1F07}\x{03B9}", # U+1F8F => 1F07 03B9 -"\xE1\xBE\x90" => "\x{1F20}\x{03B9}", # U+1F90 => 1F20 03B9 -"\xE1\xBE\x91" => "\x{1F21}\x{03B9}", # U+1F91 => 1F21 03B9 -"\xE1\xBE\x92" => "\x{1F22}\x{03B9}", # U+1F92 => 1F22 03B9 -"\xE1\xBE\x93" => "\x{1F23}\x{03B9}", # U+1F93 => 1F23 03B9 -"\xE1\xBE\x94" => "\x{1F24}\x{03B9}", # U+1F94 => 1F24 03B9 -"\xE1\xBE\x95" => "\x{1F25}\x{03B9}", # U+1F95 => 1F25 03B9 -"\xE1\xBE\x96" => "\x{1F26}\x{03B9}", # U+1F96 => 1F26 03B9 -"\xE1\xBE\x97" => "\x{1F27}\x{03B9}", # U+1F97 => 1F27 03B9 -"\xE1\xBE\x98" => "\x{1F20}\x{03B9}", # U+1F98 => 1F20 03B9 -"\xE1\xBE\x99" => "\x{1F21}\x{03B9}", # U+1F99 => 1F21 03B9 -"\xE1\xBE\x9A" => "\x{1F22}\x{03B9}", # U+1F9A => 1F22 03B9 -"\xE1\xBE\x9B" => "\x{1F23}\x{03B9}", # U+1F9B => 1F23 03B9 -"\xE1\xBE\x9C" => "\x{1F24}\x{03B9}", # U+1F9C => 1F24 03B9 -"\xE1\xBE\x9D" => "\x{1F25}\x{03B9}", # U+1F9D => 1F25 03B9 -"\xE1\xBE\x9E" => "\x{1F26}\x{03B9}", # U+1F9E => 1F26 03B9 -"\xE1\xBE\x9F" => "\x{1F27}\x{03B9}", # U+1F9F => 1F27 03B9 -"\xE1\xBE\xA0" => "\x{1F60}\x{03B9}", # U+1FA0 => 1F60 03B9 -"\xE1\xBE\xA1" => "\x{1F61}\x{03B9}", # U+1FA1 => 1F61 03B9 -"\xE1\xBE\xA2" => "\x{1F62}\x{03B9}", # U+1FA2 => 1F62 03B9 -"\xE1\xBE\xA3" => "\x{1F63}\x{03B9}", # U+1FA3 => 1F63 03B9 -"\xE1\xBE\xA4" => "\x{1F64}\x{03B9}", # U+1FA4 => 1F64 03B9 -"\xE1\xBE\xA5" => "\x{1F65}\x{03B9}", # U+1FA5 => 1F65 03B9 -"\xE1\xBE\xA6" => "\x{1F66}\x{03B9}", # U+1FA6 => 1F66 03B9 -"\xE1\xBE\xA7" => "\x{1F67}\x{03B9}", # U+1FA7 => 1F67 03B9 -"\xE1\xBE\xA8" => "\x{1F60}\x{03B9}", # U+1FA8 => 1F60 03B9 -"\xE1\xBE\xA9" => "\x{1F61}\x{03B9}", # U+1FA9 => 1F61 03B9 -"\xE1\xBE\xAA" => "\x{1F62}\x{03B9}", # U+1FAA => 1F62 03B9 -"\xE1\xBE\xAB" => "\x{1F63}\x{03B9}", # U+1FAB => 1F63 03B9 -"\xE1\xBE\xAC" => "\x{1F64}\x{03B9}", # U+1FAC => 1F64 03B9 -"\xE1\xBE\xAD" => "\x{1F65}\x{03B9}", # U+1FAD => 1F65 03B9 -"\xE1\xBE\xAE" => "\x{1F66}\x{03B9}", # U+1FAE => 1F66 03B9 -"\xE1\xBE\xAF" => "\x{1F67}\x{03B9}", # U+1FAF => 1F67 03B9 -"\xE1\xBE\xB2" => "\x{1F70}\x{03B9}", # U+1FB2 => 1F70 03B9 -"\xE1\xBE\xB3" => "\x{03B1}\x{03B9}", # U+1FB3 => 03B1 03B9 -"\xE1\xBE\xB4" => "\x{03AC}\x{03B9}", # U+1FB4 => 03AC 03B9 -"\xE1\xBE\xB6" => "\x{03B1}\x{0342}", # U+1FB6 => 03B1 0342 -"\xE1\xBE\xB7" => "\x{03B1}\x{0342}\x{03B9}", # U+1FB7 => 03B1 0342 03B9 -"\xE1\xBE\xBC" => "\x{03B1}\x{03B9}", # U+1FBC => 03B1 03B9 -"\xE1\xBF\x82" => "\x{1F74}\x{03B9}", # U+1FC2 => 1F74 03B9 -"\xE1\xBF\x83" => "\x{03B7}\x{03B9}", # U+1FC3 => 03B7 03B9 -"\xE1\xBF\x84" => "\x{03AE}\x{03B9}", # U+1FC4 => 03AE 03B9 -"\xE1\xBF\x86" => "\x{03B7}\x{0342}", # U+1FC6 => 03B7 0342 -"\xE1\xBF\x87" => "\x{03B7}\x{0342}\x{03B9}", # U+1FC7 => 03B7 0342 03B9 -"\xE1\xBF\x8C" => "\x{03B7}\x{03B9}", # U+1FCC => 03B7 03B9 -"\xE1\xBF\x92" => "\x{03B9}\x{0308}\x{0300}", # U+1FD2 => 03B9 0308 0300 -"\xE1\xBF\x93" => "\x{03B9}\x{0308}\x{0301}", # U+1FD3 => 03B9 0308 0301 -"\xE1\xBF\x96" => "\x{03B9}\x{0342}", # U+1FD6 => 03B9 0342 -"\xE1\xBF\x97" => "\x{03B9}\x{0308}\x{0342}", # U+1FD7 => 03B9 0308 0342 -"\xE1\xBF\xA2" => "\x{03C5}\x{0308}\x{0300}", # U+1FE2 => 03C5 0308 0300 -"\xE1\xBF\xA3" => "\x{03C5}\x{0308}\x{0301}", # U+1FE3 => 03C5 0308 0301 -"\xE1\xBF\xA4" => "\x{03C1}\x{0313}", # U+1FE4 => 03C1 0313 -"\xE1\xBF\xA6" => "\x{03C5}\x{0342}", # U+1FE6 => 03C5 0342 -"\xE1\xBF\xA7" => "\x{03C5}\x{0308}\x{0342}", # U+1FE7 => 03C5 0308 0342 -"\xE1\xBF\xB2" => "\x{1F7C}\x{03B9}", # U+1FF2 => 1F7C 03B9 -"\xE1\xBF\xB3" => "\x{03C9}\x{03B9}", # U+1FF3 => 03C9 03B9 -"\xE1\xBF\xB4" => "\x{03CE}\x{03B9}", # U+1FF4 => 03CE 03B9 -"\xE1\xBF\xB6" => "\x{03C9}\x{0342}", # U+1FF6 => 03C9 0342 -"\xE1\xBF\xB7" => "\x{03C9}\x{0342}\x{03B9}", # U+1FF7 => 03C9 0342 03B9 -"\xE1\xBF\xBC" => "\x{03C9}\x{03B9}", # U+1FFC => 03C9 03B9 -"\xEF\xAC\x80" => "\x{0066}\x{0066}", # U+FB00 => 0066 0066 -"\xEF\xAC\x81" => "\x{0066}\x{0069}", # U+FB01 => 0066 0069 -"\xEF\xAC\x82" => "\x{0066}\x{006C}", # U+FB02 => 0066 006C -"\xEF\xAC\x83" => "\x{0066}\x{0066}\x{0069}", # U+FB03 => 0066 0066 0069 -"\xEF\xAC\x84" => "\x{0066}\x{0066}\x{006C}", # U+FB04 => 0066 0066 006C -"\xEF\xAC\x85" => "\x{0073}\x{0074}", # U+FB05 => 0073 0074 -"\xEF\xAC\x86" => "\x{0073}\x{0074}", # U+FB06 => 0073 0074 -"\xEF\xAC\x93" => "\x{0574}\x{0576}", # U+FB13 => 0574 0576 -"\xEF\xAC\x94" => "\x{0574}\x{0565}", # U+FB14 => 0574 0565 -"\xEF\xAC\x95" => "\x{0574}\x{056B}", # U+FB15 => 0574 056B -"\xEF\xAC\x96" => "\x{057E}\x{0576}", # U+FB16 => 057E 0576 -"\xEF\xAC\x97" => "\x{0574}\x{056D}", # U+FB17 => 0574 056D -); - -return <<'END'; -41 5A 61 -B5 3BC -C0 D6 E0 -D8 DE F8 -100 101 -102 103 -104 105 -106 107 -108 109 -10A 10B -10C 10D -10E 10F -110 111 -112 113 -114 115 -116 117 -118 119 -11A 11B -11C 11D -11E 11F -120 121 -122 123 -124 125 -126 127 -128 129 -12A 12B -12C 12D -12E 12F -132 133 -134 135 -136 137 -139 13A -13B 13C -13D 13E -13F 140 -141 142 -143 144 -145 146 -147 148 -14A 14B -14C 14D -14E 14F -150 151 -152 153 -154 155 -156 157 -158 159 -15A 15B -15C 15D -15E 15F -160 161 -162 163 -164 165 -166 167 -168 169 -16A 16B -16C 16D -16E 16F -170 171 -172 173 -174 175 -176 177 -178 FF -179 17A -17B 17C -17D 17E -17F 73 -181 253 -182 183 -184 185 -186 254 -187 188 -189 18A 256 -18B 18C -18E 1DD -18F 259 -190 25B -191 192 -193 260 -194 263 -196 269 -197 268 -198 199 -19C 26F -19D 272 -19F 275 -1A0 1A1 -1A2 1A3 -1A4 1A5 -1A6 280 -1A7 1A8 -1A9 283 -1AC 1AD -1AE 288 -1AF 1B0 -1B1 1B2 28A -1B3 1B4 -1B5 1B6 -1B7 292 -1B8 1B9 -1BC 1BD -1C4 1C6 -1C5 1C6 -1C7 1C9 -1C8 1C9 -1CA 1CC -1CB 1CC -1CD 1CE -1CF 1D0 -1D1 1D2 -1D3 1D4 -1D5 1D6 -1D7 1D8 -1D9 1DA -1DB 1DC -1DE 1DF -1E0 1E1 -1E2 1E3 -1E4 1E5 -1E6 1E7 -1E8 1E9 -1EA 1EB -1EC 1ED -1EE 1EF -1F1 1F3 -1F2 1F3 -1F4 1F5 -1F6 195 -1F7 1BF -1F8 1F9 -1FA 1FB -1FC 1FD -1FE 1FF -200 201 -202 203 -204 205 -206 207 -208 209 -20A 20B -20C 20D -20E 20F -210 211 -212 213 -214 215 -216 217 -218 219 -21A 21B -21C 21D -21E 21F -220 19E -222 223 -224 225 -226 227 -228 229 -22A 22B -22C 22D -22E 22F -230 231 -232 233 -23A 2C65 -23B 23C -23D 19A -23E 2C66 -241 242 -243 180 -244 289 -245 28C -246 247 -248 249 -24A 24B -24C 24D -24E 24F -345 3B9 -370 371 -372 373 -376 377 -37F 3F3 -386 3AC -388 38A 3AD -38C 3CC -38E 38F 3CD -391 3A1 3B1 -3A3 3AB 3C3 -3C2 3C3 -3CF 3D7 -3D0 3B2 -3D1 3B8 -3D5 3C6 -3D6 3C0 -3D8 3D9 -3DA 3DB -3DC 3DD -3DE 3DF -3E0 3E1 -3E2 3E3 -3E4 3E5 -3E6 3E7 -3E8 3E9 -3EA 3EB -3EC 3ED -3EE 3EF -3F0 3BA -3F1 3C1 -3F4 3B8 -3F5 3B5 -3F7 3F8 -3F9 3F2 -3FA 3FB -3FD 3FF 37B -400 40F 450 -410 42F 430 -460 461 -462 463 -464 465 -466 467 -468 469 -46A 46B -46C 46D -46E 46F -470 471 -472 473 -474 475 -476 477 -478 479 -47A 47B -47C 47D -47E 47F -480 481 -48A 48B -48C 48D -48E 48F -490 491 -492 493 -494 495 -496 497 -498 499 -49A 49B -49C 49D -49E 49F -4A0 4A1 -4A2 4A3 -4A4 4A5 -4A6 4A7 -4A8 4A9 -4AA 4AB -4AC 4AD -4AE 4AF -4B0 4B1 -4B2 4B3 -4B4 4B5 -4B6 4B7 -4B8 4B9 -4BA 4BB -4BC 4BD -4BE 4BF -4C0 4CF -4C1 4C2 -4C3 4C4 -4C5 4C6 -4C7 4C8 -4C9 4CA -4CB 4CC -4CD 4CE -4D0 4D1 -4D2 4D3 -4D4 4D5 -4D6 4D7 -4D8 4D9 -4DA 4DB -4DC 4DD -4DE 4DF -4E0 4E1 -4E2 4E3 -4E4 4E5 -4E6 4E7 -4E8 4E9 -4EA 4EB -4EC 4ED -4EE 4EF -4F0 4F1 -4F2 4F3 -4F4 4F5 -4F6 4F7 -4F8 4F9 -4FA 4FB -4FC 4FD -4FE 4FF -500 501 -502 503 -504 505 -506 507 -508 509 -50A 50B -50C 50D -50E 50F -510 511 -512 513 -514 515 -516 517 -518 519 -51A 51B -51C 51D -51E 51F -520 521 -522 523 -524 525 -526 527 -528 529 -52A 52B -52C 52D -52E 52F -531 556 561 -10A0 10C5 2D00 -10C7 2D27 -10CD 2D2D -13F8 13FD 13F0 -1E00 1E01 -1E02 1E03 -1E04 1E05 -1E06 1E07 -1E08 1E09 -1E0A 1E0B -1E0C 1E0D -1E0E 1E0F -1E10 1E11 -1E12 1E13 -1E14 1E15 -1E16 1E17 -1E18 1E19 -1E1A 1E1B -1E1C 1E1D -1E1E 1E1F -1E20 1E21 -1E22 1E23 -1E24 1E25 -1E26 1E27 -1E28 1E29 -1E2A 1E2B -1E2C 1E2D -1E2E 1E2F -1E30 1E31 -1E32 1E33 -1E34 1E35 -1E36 1E37 -1E38 1E39 -1E3A 1E3B -1E3C 1E3D -1E3E 1E3F -1E40 1E41 -1E42 1E43 -1E44 1E45 -1E46 1E47 -1E48 1E49 -1E4A 1E4B -1E4C 1E4D -1E4E 1E4F -1E50 1E51 -1E52 1E53 -1E54 1E55 -1E56 1E57 -1E58 1E59 -1E5A 1E5B -1E5C 1E5D -1E5E 1E5F -1E60 1E61 -1E62 1E63 -1E64 1E65 -1E66 1E67 -1E68 1E69 -1E6A 1E6B -1E6C 1E6D -1E6E 1E6F -1E70 1E71 -1E72 1E73 -1E74 1E75 -1E76 1E77 -1E78 1E79 -1E7A 1E7B -1E7C 1E7D -1E7E 1E7F -1E80 1E81 -1E82 1E83 -1E84 1E85 -1E86 1E87 -1E88 1E89 -1E8A 1E8B -1E8C 1E8D -1E8E 1E8F -1E90 1E91 -1E92 1E93 -1E94 1E95 -1E9B 1E61 -1E9E DF -1EA0 1EA1 -1EA2 1EA3 -1EA4 1EA5 -1EA6 1EA7 -1EA8 1EA9 -1EAA 1EAB -1EAC 1EAD -1EAE 1EAF -1EB0 1EB1 -1EB2 1EB3 -1EB4 1EB5 -1EB6 1EB7 -1EB8 1EB9 -1EBA 1EBB -1EBC 1EBD -1EBE 1EBF -1EC0 1EC1 -1EC2 1EC3 -1EC4 1EC5 -1EC6 1EC7 -1EC8 1EC9 -1ECA 1ECB -1ECC 1ECD -1ECE 1ECF -1ED0 1ED1 -1ED2 1ED3 -1ED4 1ED5 -1ED6 1ED7 -1ED8 1ED9 -1EDA 1EDB -1EDC 1EDD -1EDE 1EDF -1EE0 1EE1 -1EE2 1EE3 -1EE4 1EE5 -1EE6 1EE7 -1EE8 1EE9 -1EEA 1EEB -1EEC 1EED -1EEE 1EEF -1EF0 1EF1 -1EF2 1EF3 -1EF4 1EF5 -1EF6 1EF7 -1EF8 1EF9 -1EFA 1EFB -1EFC 1EFD -1EFE 1EFF -1F08 1F0F 1F00 -1F18 1F1D 1F10 -1F28 1F2F 1F20 -1F38 1F3F 1F30 -1F48 1F4D 1F40 -1F59 1F51 -1F5B 1F53 -1F5D 1F55 -1F5F 1F57 -1F68 1F6F 1F60 -1F88 1F8F 1F80 -1F98 1F9F 1F90 -1FA8 1FAF 1FA0 -1FB8 1FB9 1FB0 -1FBA 1FBB 1F70 -1FBC 1FB3 -1FBE 3B9 -1FC8 1FCB 1F72 -1FCC 1FC3 -1FD8 1FD9 1FD0 -1FDA 1FDB 1F76 -1FE8 1FE9 1FE0 -1FEA 1FEB 1F7A -1FEC 1FE5 -1FF8 1FF9 1F78 -1FFA 1FFB 1F7C -1FFC 1FF3 -2126 3C9 -212A 6B -212B E5 -2132 214E -2160 216F 2170 -2183 2184 -24B6 24CF 24D0 -2C00 2C2E 2C30 -2C60 2C61 -2C62 26B -2C63 1D7D -2C64 27D -2C67 2C68 -2C69 2C6A -2C6B 2C6C -2C6D 251 -2C6E 271 -2C6F 250 -2C70 252 -2C72 2C73 -2C75 2C76 -2C7E 2C7F 23F -2C80 2C81 -2C82 2C83 -2C84 2C85 -2C86 2C87 -2C88 2C89 -2C8A 2C8B -2C8C 2C8D -2C8E 2C8F -2C90 2C91 -2C92 2C93 -2C94 2C95 -2C96 2C97 -2C98 2C99 -2C9A 2C9B -2C9C 2C9D -2C9E 2C9F -2CA0 2CA1 -2CA2 2CA3 -2CA4 2CA5 -2CA6 2CA7 -2CA8 2CA9 -2CAA 2CAB -2CAC 2CAD -2CAE 2CAF -2CB0 2CB1 -2CB2 2CB3 -2CB4 2CB5 -2CB6 2CB7 -2CB8 2CB9 -2CBA 2CBB -2CBC 2CBD -2CBE 2CBF -2CC0 2CC1 -2CC2 2CC3 -2CC4 2CC5 -2CC6 2CC7 -2CC8 2CC9 -2CCA 2CCB -2CCC 2CCD -2CCE 2CCF -2CD0 2CD1 -2CD2 2CD3 -2CD4 2CD5 -2CD6 2CD7 -2CD8 2CD9 -2CDA 2CDB -2CDC 2CDD -2CDE 2CDF -2CE0 2CE1 -2CE2 2CE3 -2CEB 2CEC -2CED 2CEE -2CF2 2CF3 -A640 A641 -A642 A643 -A644 A645 -A646 A647 -A648 A649 -A64A A64B -A64C A64D -A64E A64F -A650 A651 -A652 A653 -A654 A655 -A656 A657 -A658 A659 -A65A A65B -A65C A65D -A65E A65F -A660 A661 -A662 A663 -A664 A665 -A666 A667 -A668 A669 -A66A A66B -A66C A66D -A680 A681 -A682 A683 -A684 A685 -A686 A687 -A688 A689 -A68A A68B -A68C A68D -A68E A68F -A690 A691 -A692 A693 -A694 A695 -A696 A697 -A698 A699 -A69A A69B -A722 A723 -A724 A725 -A726 A727 -A728 A729 -A72A A72B -A72C A72D -A72E A72F -A732 A733 -A734 A735 -A736 A737 -A738 A739 -A73A A73B -A73C A73D -A73E A73F -A740 A741 -A742 A743 -A744 A745 -A746 A747 -A748 A749 -A74A A74B -A74C A74D -A74E A74F -A750 A751 -A752 A753 -A754 A755 -A756 A757 -A758 A759 -A75A A75B -A75C A75D -A75E A75F -A760 A761 -A762 A763 -A764 A765 -A766 A767 -A768 A769 -A76A A76B -A76C A76D -A76E A76F -A779 A77A -A77B A77C -A77D 1D79 -A77E A77F -A780 A781 -A782 A783 -A784 A785 -A786 A787 -A78B A78C -A78D 265 -A790 A791 -A792 A793 -A796 A797 -A798 A799 -A79A A79B -A79C A79D -A79E A79F -A7A0 A7A1 -A7A2 A7A3 -A7A4 A7A5 -A7A6 A7A7 -A7A8 A7A9 -A7AA 266 -A7AB 25C -A7AC 261 -A7AD 26C -A7B0 29E -A7B1 287 -A7B2 29D -A7B3 AB53 -A7B4 A7B5 -A7B6 A7B7 -AB70 ABBF 13A0 -FF21 FF3A FF41 -10400 10427 10428 -10C80 10CB2 10CC0 -118A0 118BF 118C0 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Digit.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Digit.pl deleted file mode 100644 index 48f54bf4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Digit.pl +++ /dev/null @@ -1,574 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!! - -# This file is for internal use by core Perl only. It is retained for -# backwards compatibility with applications that may have come to rely on it, -# but its format and even its name or existence are subject to change without -# notice in a future Perl version. Don't use it directly. Instead, its -# contents are now retrievable through a stable API in the Unicode::UCD -# module: Unicode::UCD::prop_invmap('Perl_Decimal_Digit') (Values for individual -# code points can be retrieved via Unicode::UCD::charprop()); - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToDigit'}{'format'} = 'd'; # single decimal digit -$utf8::SwashInfo{'ToDigit'}{'missing'} = ''; # code point maps to the null string - -return <<'END'; -0030 0 -0031 1 -0032 2 -0033 3 -0034 4 -0035 5 -0036 6 -0037 7 -0038 8 -0039 9 -0660 0 -0661 1 -0662 2 -0663 3 -0664 4 -0665 5 -0666 6 -0667 7 -0668 8 -0669 9 -06F0 0 -06F1 1 -06F2 2 -06F3 3 -06F4 4 -06F5 5 -06F6 6 -06F7 7 -06F8 8 -06F9 9 -07C0 0 -07C1 1 -07C2 2 -07C3 3 -07C4 4 -07C5 5 -07C6 6 -07C7 7 -07C8 8 -07C9 9 -0966 0 -0967 1 -0968 2 -0969 3 -096A 4 -096B 5 -096C 6 -096D 7 -096E 8 -096F 9 -09E6 0 -09E7 1 -09E8 2 -09E9 3 -09EA 4 -09EB 5 -09EC 6 -09ED 7 -09EE 8 -09EF 9 -0A66 0 -0A67 1 -0A68 2 -0A69 3 -0A6A 4 -0A6B 5 -0A6C 6 -0A6D 7 -0A6E 8 -0A6F 9 -0AE6 0 -0AE7 1 -0AE8 2 -0AE9 3 -0AEA 4 -0AEB 5 -0AEC 6 -0AED 7 -0AEE 8 -0AEF 9 -0B66 0 -0B67 1 -0B68 2 -0B69 3 -0B6A 4 -0B6B 5 -0B6C 6 -0B6D 7 -0B6E 8 -0B6F 9 -0BE6 0 -0BE7 1 -0BE8 2 -0BE9 3 -0BEA 4 -0BEB 5 -0BEC 6 -0BED 7 -0BEE 8 -0BEF 9 -0C66 0 -0C67 1 -0C68 2 -0C69 3 -0C6A 4 -0C6B 5 -0C6C 6 -0C6D 7 -0C6E 8 -0C6F 9 -0CE6 0 -0CE7 1 -0CE8 2 -0CE9 3 -0CEA 4 -0CEB 5 -0CEC 6 -0CED 7 -0CEE 8 -0CEF 9 -0D66 0 -0D67 1 -0D68 2 -0D69 3 -0D6A 4 -0D6B 5 -0D6C 6 -0D6D 7 -0D6E 8 -0D6F 9 -0DE6 0 -0DE7 1 -0DE8 2 -0DE9 3 -0DEA 4 -0DEB 5 -0DEC 6 -0DED 7 -0DEE 8 -0DEF 9 -0E50 0 -0E51 1 -0E52 2 -0E53 3 -0E54 4 -0E55 5 -0E56 6 -0E57 7 -0E58 8 -0E59 9 -0ED0 0 -0ED1 1 -0ED2 2 -0ED3 3 -0ED4 4 -0ED5 5 -0ED6 6 -0ED7 7 -0ED8 8 -0ED9 9 -0F20 0 -0F21 1 -0F22 2 -0F23 3 -0F24 4 -0F25 5 -0F26 6 -0F27 7 -0F28 8 -0F29 9 -1040 0 -1041 1 -1042 2 -1043 3 -1044 4 -1045 5 -1046 6 -1047 7 -1048 8 -1049 9 -1090 0 -1091 1 -1092 2 -1093 3 -1094 4 -1095 5 -1096 6 -1097 7 -1098 8 -1099 9 -17E0 0 -17E1 1 -17E2 2 -17E3 3 -17E4 4 -17E5 5 -17E6 6 -17E7 7 -17E8 8 -17E9 9 -1810 0 -1811 1 -1812 2 -1813 3 -1814 4 -1815 5 -1816 6 -1817 7 -1818 8 -1819 9 -1946 0 -1947 1 -1948 2 -1949 3 -194A 4 -194B 5 -194C 6 -194D 7 -194E 8 -194F 9 -19D0 0 -19D1 1 -19D2 2 -19D3 3 -19D4 4 -19D5 5 -19D6 6 -19D7 7 -19D8 8 -19D9 9 -1A80 0 -1A81 1 -1A82 2 -1A83 3 -1A84 4 -1A85 5 -1A86 6 -1A87 7 -1A88 8 -1A89 9 -1A90 0 -1A91 1 -1A92 2 -1A93 3 -1A94 4 -1A95 5 -1A96 6 -1A97 7 -1A98 8 -1A99 9 -1B50 0 -1B51 1 -1B52 2 -1B53 3 -1B54 4 -1B55 5 -1B56 6 -1B57 7 -1B58 8 -1B59 9 -1BB0 0 -1BB1 1 -1BB2 2 -1BB3 3 -1BB4 4 -1BB5 5 -1BB6 6 -1BB7 7 -1BB8 8 -1BB9 9 -1C40 0 -1C41 1 -1C42 2 -1C43 3 -1C44 4 -1C45 5 -1C46 6 -1C47 7 -1C48 8 -1C49 9 -1C50 0 -1C51 1 -1C52 2 -1C53 3 -1C54 4 -1C55 5 -1C56 6 -1C57 7 -1C58 8 -1C59 9 -A620 0 -A621 1 -A622 2 -A623 3 -A624 4 -A625 5 -A626 6 -A627 7 -A628 8 -A629 9 -A8D0 0 -A8D1 1 -A8D2 2 -A8D3 3 -A8D4 4 -A8D5 5 -A8D6 6 -A8D7 7 -A8D8 8 -A8D9 9 -A900 0 -A901 1 -A902 2 -A903 3 -A904 4 -A905 5 -A906 6 -A907 7 -A908 8 -A909 9 -A9D0 0 -A9D1 1 -A9D2 2 -A9D3 3 -A9D4 4 -A9D5 5 -A9D6 6 -A9D7 7 -A9D8 8 -A9D9 9 -A9F0 0 -A9F1 1 -A9F2 2 -A9F3 3 -A9F4 4 -A9F5 5 -A9F6 6 -A9F7 7 -A9F8 8 -A9F9 9 -AA50 0 -AA51 1 -AA52 2 -AA53 3 -AA54 4 -AA55 5 -AA56 6 -AA57 7 -AA58 8 -AA59 9 -ABF0 0 -ABF1 1 -ABF2 2 -ABF3 3 -ABF4 4 -ABF5 5 -ABF6 6 -ABF7 7 -ABF8 8 -ABF9 9 -FF10 0 -FF11 1 -FF12 2 -FF13 3 -FF14 4 -FF15 5 -FF16 6 -FF17 7 -FF18 8 -FF19 9 -104A0 0 -104A1 1 -104A2 2 -104A3 3 -104A4 4 -104A5 5 -104A6 6 -104A7 7 -104A8 8 -104A9 9 -11066 0 -11067 1 -11068 2 -11069 3 -1106A 4 -1106B 5 -1106C 6 -1106D 7 -1106E 8 -1106F 9 -110F0 0 -110F1 1 -110F2 2 -110F3 3 -110F4 4 -110F5 5 -110F6 6 -110F7 7 -110F8 8 -110F9 9 -11136 0 -11137 1 -11138 2 -11139 3 -1113A 4 -1113B 5 -1113C 6 -1113D 7 -1113E 8 -1113F 9 -111D0 0 -111D1 1 -111D2 2 -111D3 3 -111D4 4 -111D5 5 -111D6 6 -111D7 7 -111D8 8 -111D9 9 -112F0 0 -112F1 1 -112F2 2 -112F3 3 -112F4 4 -112F5 5 -112F6 6 -112F7 7 -112F8 8 -112F9 9 -114D0 0 -114D1 1 -114D2 2 -114D3 3 -114D4 4 -114D5 5 -114D6 6 -114D7 7 -114D8 8 -114D9 9 -11650 0 -11651 1 -11652 2 -11653 3 -11654 4 -11655 5 -11656 6 -11657 7 -11658 8 -11659 9 -116C0 0 -116C1 1 -116C2 2 -116C3 3 -116C4 4 -116C5 5 -116C6 6 -116C7 7 -116C8 8 -116C9 9 -11730 0 -11731 1 -11732 2 -11733 3 -11734 4 -11735 5 -11736 6 -11737 7 -11738 8 -11739 9 -118E0 0 -118E1 1 -118E2 2 -118E3 3 -118E4 4 -118E5 5 -118E6 6 -118E7 7 -118E8 8 -118E9 9 -16A60 0 -16A61 1 -16A62 2 -16A63 3 -16A64 4 -16A65 5 -16A66 6 -16A67 7 -16A68 8 -16A69 9 -16B50 0 -16B51 1 -16B52 2 -16B53 3 -16B54 4 -16B55 5 -16B56 6 -16B57 7 -16B58 8 -16B59 9 -1D7CE 0 -1D7CF 1 -1D7D0 2 -1D7D1 3 -1D7D2 4 -1D7D3 5 -1D7D4 6 -1D7D5 7 -1D7D6 8 -1D7D7 9 -1D7D8 0 -1D7D9 1 -1D7DA 2 -1D7DB 3 -1D7DC 4 -1D7DD 5 -1D7DE 6 -1D7DF 7 -1D7E0 8 -1D7E1 9 -1D7E2 0 -1D7E3 1 -1D7E4 2 -1D7E5 3 -1D7E6 4 -1D7E7 5 -1D7E8 6 -1D7E9 7 -1D7EA 8 -1D7EB 9 -1D7EC 0 -1D7ED 1 -1D7EE 2 -1D7EF 3 -1D7F0 4 -1D7F1 5 -1D7F2 6 -1D7F3 7 -1D7F4 8 -1D7F5 9 -1D7F6 0 -1D7F7 1 -1D7F8 2 -1D7F9 3 -1D7FA 4 -1D7FB 5 -1D7FC 6 -1D7FD 7 -1D7FE 8 -1D7FF 9 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Ea.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Ea.pl deleted file mode 100644 index 04825ddb..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Ea.pl +++ /dev/null @@ -1,243 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToEa'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToEa'}{'missing'} = 'Neutral'; - -return <<'END'; -20 7E Na -A1 A -A2 A3 Na -A4 A -A5 A6 Na -A7 A8 A -AA A -AC Na -AD AE A -AF Na -B0 B4 A -B6 BA A -BC BF A -C6 A -D0 A -D7 D8 A -DE E1 A -E6 A -E8 EA A -EC ED A -F0 A -F2 F3 A -F7 FA A -FC A -FE A -101 A -111 A -113 A -11B A -126 127 A -12B A -131 133 A -138 A -13F 142 A -144 A -148 14B A -14D A -152 153 A -166 167 A -16B A -1CE A -1D0 A -1D2 A -1D4 A -1D6 A -1D8 A -1DA A -1DC A -251 A -261 A -2C4 A -2C7 A -2C9 2CB A -2CD A -2D0 A -2D8 2DB A -2DD A -2DF A -300 36F A -391 3A1 A -3A3 3A9 A -3B1 3C1 A -3C3 3C9 A -401 A -410 44F A -451 A -1100 115F W -2010 A -2013 2016 A -2018 2019 A -201C 201D A -2020 2022 A -2024 2027 A -2030 A -2032 2033 A -2035 A -203B A -203E A -2074 A -207F A -2081 2084 A -20A9 H -20AC A -2103 A -2105 A -2109 A -2113 A -2116 A -2121 2122 A -2126 A -212B A -2153 2154 A -215B 215E A -2160 216B A -2170 2179 A -2189 A -2190 2199 A -21B8 21B9 A -21D2 A -21D4 A -21E7 A -2200 A -2202 2203 A -2207 2208 A -220B A -220F A -2211 A -2215 A -221A A -221D 2220 A -2223 A -2225 A -2227 222C A -222E A -2234 2237 A -223C 223D A -2248 A -224C A -2252 A -2260 2261 A -2264 2267 A -226A 226B A -226E 226F A -2282 2283 A -2286 2287 A -2295 A -2299 A -22A5 A -22BF A -2312 A -2329 232A W -2460 24E9 A -24EB 254B A -2550 2573 A -2580 258F A -2592 2595 A -25A0 25A1 A -25A3 25A9 A -25B2 25B3 A -25B6 25B7 A -25BC 25BD A -25C0 25C1 A -25C6 25C8 A -25CB A -25CE 25D1 A -25E2 25E5 A -25EF A -2605 2606 A -2609 A -260E 260F A -2614 2615 A -261C A -261E A -2640 A -2642 A -2660 2661 A -2663 2665 A -2667 266A A -266C 266D A -266F A -269E 269F A -26BE 26BF A -26C4 26CD A -26CF 26E1 A -26E3 A -26E8 26FF A -273D A -2757 A -2776 277F A -27E6 27ED Na -2985 2986 Na -2B55 2B59 A -2E80 2E99 W -2E9B 2EF3 W -2F00 2FD5 W -2FF0 2FFB W -3000 F -3001 303E W -3041 3096 W -3099 30FF W -3105 312D W -3131 318E W -3190 31BA W -31C0 31E3 W -31F0 321E W -3220 3247 W -3248 324F A -3250 32FE W -3300 4DBF W -4E00 A48C W -A490 A4C6 W -A960 A97C W -AC00 D7A3 W -E000 F8FF A -F900 FAFF W -FE00 FE0F A -FE10 FE19 W -FE30 FE52 W -FE54 FE66 W -FE68 FE6B W -FF01 FF60 F -FF61 FFBE H -FFC2 FFC7 H -FFCA FFCF H -FFD2 FFD7 H -FFDA FFDC H -FFE0 FFE6 F -FFE8 FFEE H -FFFD A -1B000 1B001 W -1F100 1F10A A -1F110 1F12D A -1F130 1F169 A -1F170 1F19A A -1F200 1F202 W -1F210 1F23A W -1F240 1F248 W -1F250 1F251 W -20000 2FFFD W -30000 3FFFD W -E0100 E01EF A -F0000 FFFFD A -100000 10FFFD A -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Fold.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Fold.pl deleted file mode 100644 index 515a43e2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Fold.pl +++ /dev/null @@ -1,1384 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!! - -# This file is for internal use by core Perl only. It is retained for -# backwards compatibility with applications that may have come to rely on it, -# but its format and even its name or existence are subject to change without -# notice in a future Perl version. Don't use it directly. Instead, its -# contents are now retrievable through a stable API in the Unicode::UCD -# module: Unicode::UCD::prop_invmap('Case_Folding') (Values for individual -# code points can be retrieved via Unicode::UCD::charprop()); - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToFold'}{'format'} = 'x'; # non-negative hex whole number; a code point -$utf8::SwashInfo{'ToFold'}{'specials_name'} = 'utf8::ToSpecFold'; # Name of hash of special mappings -$utf8::SwashInfo{'ToFold'}{'missing'} = '<code point>'; # code point maps to itself - -# Some code points require special handling because their mappings are each to -# multiple code points. These do not appear in the main body, but are defined -# in the hash below. - -# Each key is the string of N bytes that together make up the UTF-8 encoding -# for the code point. (i.e. the same as looking at the code point's UTF-8 -# under "use bytes"). Each value is the UTF-8 of the translation, for speed. -%utf8::ToSpecFold = ( -"\xC3\x9F" => "\x{0073}\x{0073}", # U+00DF => 0073 0073 -"\xC4\xB0" => "\x{0069}\x{0307}", # U+0130 => 0069 0307 -"\xC5\x89" => "\x{02BC}\x{006E}", # U+0149 => 02BC 006E -"\xC7\xB0" => "\x{006A}\x{030C}", # U+01F0 => 006A 030C -"\xCE\x90" => "\x{03B9}\x{0308}\x{0301}", # U+0390 => 03B9 0308 0301 -"\xCE\xB0" => "\x{03C5}\x{0308}\x{0301}", # U+03B0 => 03C5 0308 0301 -"\xD6\x87" => "\x{0565}\x{0582}", # U+0587 => 0565 0582 -"\xE1\xBA\x96" => "\x{0068}\x{0331}", # U+1E96 => 0068 0331 -"\xE1\xBA\x97" => "\x{0074}\x{0308}", # U+1E97 => 0074 0308 -"\xE1\xBA\x98" => "\x{0077}\x{030A}", # U+1E98 => 0077 030A -"\xE1\xBA\x99" => "\x{0079}\x{030A}", # U+1E99 => 0079 030A -"\xE1\xBA\x9A" => "\x{0061}\x{02BE}", # U+1E9A => 0061 02BE -"\xE1\xBA\x9E" => "\x{0073}\x{0073}", # U+1E9E => 0073 0073 -"\xE1\xBD\x90" => "\x{03C5}\x{0313}", # U+1F50 => 03C5 0313 -"\xE1\xBD\x92" => "\x{03C5}\x{0313}\x{0300}", # U+1F52 => 03C5 0313 0300 -"\xE1\xBD\x94" => "\x{03C5}\x{0313}\x{0301}", # U+1F54 => 03C5 0313 0301 -"\xE1\xBD\x96" => "\x{03C5}\x{0313}\x{0342}", # U+1F56 => 03C5 0313 0342 -"\xE1\xBE\x80" => "\x{1F00}\x{03B9}", # U+1F80 => 1F00 03B9 -"\xE1\xBE\x81" => "\x{1F01}\x{03B9}", # U+1F81 => 1F01 03B9 -"\xE1\xBE\x82" => "\x{1F02}\x{03B9}", # U+1F82 => 1F02 03B9 -"\xE1\xBE\x83" => "\x{1F03}\x{03B9}", # U+1F83 => 1F03 03B9 -"\xE1\xBE\x84" => "\x{1F04}\x{03B9}", # U+1F84 => 1F04 03B9 -"\xE1\xBE\x85" => "\x{1F05}\x{03B9}", # U+1F85 => 1F05 03B9 -"\xE1\xBE\x86" => "\x{1F06}\x{03B9}", # U+1F86 => 1F06 03B9 -"\xE1\xBE\x87" => "\x{1F07}\x{03B9}", # U+1F87 => 1F07 03B9 -"\xE1\xBE\x88" => "\x{1F00}\x{03B9}", # U+1F88 => 1F00 03B9 -"\xE1\xBE\x89" => "\x{1F01}\x{03B9}", # U+1F89 => 1F01 03B9 -"\xE1\xBE\x8A" => "\x{1F02}\x{03B9}", # U+1F8A => 1F02 03B9 -"\xE1\xBE\x8B" => "\x{1F03}\x{03B9}", # U+1F8B => 1F03 03B9 -"\xE1\xBE\x8C" => "\x{1F04}\x{03B9}", # U+1F8C => 1F04 03B9 -"\xE1\xBE\x8D" => "\x{1F05}\x{03B9}", # U+1F8D => 1F05 03B9 -"\xE1\xBE\x8E" => "\x{1F06}\x{03B9}", # U+1F8E => 1F06 03B9 -"\xE1\xBE\x8F" => "\x{1F07}\x{03B9}", # U+1F8F => 1F07 03B9 -"\xE1\xBE\x90" => "\x{1F20}\x{03B9}", # U+1F90 => 1F20 03B9 -"\xE1\xBE\x91" => "\x{1F21}\x{03B9}", # U+1F91 => 1F21 03B9 -"\xE1\xBE\x92" => "\x{1F22}\x{03B9}", # U+1F92 => 1F22 03B9 -"\xE1\xBE\x93" => "\x{1F23}\x{03B9}", # U+1F93 => 1F23 03B9 -"\xE1\xBE\x94" => "\x{1F24}\x{03B9}", # U+1F94 => 1F24 03B9 -"\xE1\xBE\x95" => "\x{1F25}\x{03B9}", # U+1F95 => 1F25 03B9 -"\xE1\xBE\x96" => "\x{1F26}\x{03B9}", # U+1F96 => 1F26 03B9 -"\xE1\xBE\x97" => "\x{1F27}\x{03B9}", # U+1F97 => 1F27 03B9 -"\xE1\xBE\x98" => "\x{1F20}\x{03B9}", # U+1F98 => 1F20 03B9 -"\xE1\xBE\x99" => "\x{1F21}\x{03B9}", # U+1F99 => 1F21 03B9 -"\xE1\xBE\x9A" => "\x{1F22}\x{03B9}", # U+1F9A => 1F22 03B9 -"\xE1\xBE\x9B" => "\x{1F23}\x{03B9}", # U+1F9B => 1F23 03B9 -"\xE1\xBE\x9C" => "\x{1F24}\x{03B9}", # U+1F9C => 1F24 03B9 -"\xE1\xBE\x9D" => "\x{1F25}\x{03B9}", # U+1F9D => 1F25 03B9 -"\xE1\xBE\x9E" => "\x{1F26}\x{03B9}", # U+1F9E => 1F26 03B9 -"\xE1\xBE\x9F" => "\x{1F27}\x{03B9}", # U+1F9F => 1F27 03B9 -"\xE1\xBE\xA0" => "\x{1F60}\x{03B9}", # U+1FA0 => 1F60 03B9 -"\xE1\xBE\xA1" => "\x{1F61}\x{03B9}", # U+1FA1 => 1F61 03B9 -"\xE1\xBE\xA2" => "\x{1F62}\x{03B9}", # U+1FA2 => 1F62 03B9 -"\xE1\xBE\xA3" => "\x{1F63}\x{03B9}", # U+1FA3 => 1F63 03B9 -"\xE1\xBE\xA4" => "\x{1F64}\x{03B9}", # U+1FA4 => 1F64 03B9 -"\xE1\xBE\xA5" => "\x{1F65}\x{03B9}", # U+1FA5 => 1F65 03B9 -"\xE1\xBE\xA6" => "\x{1F66}\x{03B9}", # U+1FA6 => 1F66 03B9 -"\xE1\xBE\xA7" => "\x{1F67}\x{03B9}", # U+1FA7 => 1F67 03B9 -"\xE1\xBE\xA8" => "\x{1F60}\x{03B9}", # U+1FA8 => 1F60 03B9 -"\xE1\xBE\xA9" => "\x{1F61}\x{03B9}", # U+1FA9 => 1F61 03B9 -"\xE1\xBE\xAA" => "\x{1F62}\x{03B9}", # U+1FAA => 1F62 03B9 -"\xE1\xBE\xAB" => "\x{1F63}\x{03B9}", # U+1FAB => 1F63 03B9 -"\xE1\xBE\xAC" => "\x{1F64}\x{03B9}", # U+1FAC => 1F64 03B9 -"\xE1\xBE\xAD" => "\x{1F65}\x{03B9}", # U+1FAD => 1F65 03B9 -"\xE1\xBE\xAE" => "\x{1F66}\x{03B9}", # U+1FAE => 1F66 03B9 -"\xE1\xBE\xAF" => "\x{1F67}\x{03B9}", # U+1FAF => 1F67 03B9 -"\xE1\xBE\xB2" => "\x{1F70}\x{03B9}", # U+1FB2 => 1F70 03B9 -"\xE1\xBE\xB3" => "\x{03B1}\x{03B9}", # U+1FB3 => 03B1 03B9 -"\xE1\xBE\xB4" => "\x{03AC}\x{03B9}", # U+1FB4 => 03AC 03B9 -"\xE1\xBE\xB6" => "\x{03B1}\x{0342}", # U+1FB6 => 03B1 0342 -"\xE1\xBE\xB7" => "\x{03B1}\x{0342}\x{03B9}", # U+1FB7 => 03B1 0342 03B9 -"\xE1\xBE\xBC" => "\x{03B1}\x{03B9}", # U+1FBC => 03B1 03B9 -"\xE1\xBF\x82" => "\x{1F74}\x{03B9}", # U+1FC2 => 1F74 03B9 -"\xE1\xBF\x83" => "\x{03B7}\x{03B9}", # U+1FC3 => 03B7 03B9 -"\xE1\xBF\x84" => "\x{03AE}\x{03B9}", # U+1FC4 => 03AE 03B9 -"\xE1\xBF\x86" => "\x{03B7}\x{0342}", # U+1FC6 => 03B7 0342 -"\xE1\xBF\x87" => "\x{03B7}\x{0342}\x{03B9}", # U+1FC7 => 03B7 0342 03B9 -"\xE1\xBF\x8C" => "\x{03B7}\x{03B9}", # U+1FCC => 03B7 03B9 -"\xE1\xBF\x92" => "\x{03B9}\x{0308}\x{0300}", # U+1FD2 => 03B9 0308 0300 -"\xE1\xBF\x93" => "\x{03B9}\x{0308}\x{0301}", # U+1FD3 => 03B9 0308 0301 -"\xE1\xBF\x96" => "\x{03B9}\x{0342}", # U+1FD6 => 03B9 0342 -"\xE1\xBF\x97" => "\x{03B9}\x{0308}\x{0342}", # U+1FD7 => 03B9 0308 0342 -"\xE1\xBF\xA2" => "\x{03C5}\x{0308}\x{0300}", # U+1FE2 => 03C5 0308 0300 -"\xE1\xBF\xA3" => "\x{03C5}\x{0308}\x{0301}", # U+1FE3 => 03C5 0308 0301 -"\xE1\xBF\xA4" => "\x{03C1}\x{0313}", # U+1FE4 => 03C1 0313 -"\xE1\xBF\xA6" => "\x{03C5}\x{0342}", # U+1FE6 => 03C5 0342 -"\xE1\xBF\xA7" => "\x{03C5}\x{0308}\x{0342}", # U+1FE7 => 03C5 0308 0342 -"\xE1\xBF\xB2" => "\x{1F7C}\x{03B9}", # U+1FF2 => 1F7C 03B9 -"\xE1\xBF\xB3" => "\x{03C9}\x{03B9}", # U+1FF3 => 03C9 03B9 -"\xE1\xBF\xB4" => "\x{03CE}\x{03B9}", # U+1FF4 => 03CE 03B9 -"\xE1\xBF\xB6" => "\x{03C9}\x{0342}", # U+1FF6 => 03C9 0342 -"\xE1\xBF\xB7" => "\x{03C9}\x{0342}\x{03B9}", # U+1FF7 => 03C9 0342 03B9 -"\xE1\xBF\xBC" => "\x{03C9}\x{03B9}", # U+1FFC => 03C9 03B9 -"\xEF\xAC\x80" => "\x{0066}\x{0066}", # U+FB00 => 0066 0066 -"\xEF\xAC\x81" => "\x{0066}\x{0069}", # U+FB01 => 0066 0069 -"\xEF\xAC\x82" => "\x{0066}\x{006C}", # U+FB02 => 0066 006C -"\xEF\xAC\x83" => "\x{0066}\x{0066}\x{0069}", # U+FB03 => 0066 0066 0069 -"\xEF\xAC\x84" => "\x{0066}\x{0066}\x{006C}", # U+FB04 => 0066 0066 006C -"\xEF\xAC\x85" => "\x{0073}\x{0074}", # U+FB05 => 0073 0074 -"\xEF\xAC\x86" => "\x{0073}\x{0074}", # U+FB06 => 0073 0074 -"\xEF\xAC\x93" => "\x{0574}\x{0576}", # U+FB13 => 0574 0576 -"\xEF\xAC\x94" => "\x{0574}\x{0565}", # U+FB14 => 0574 0565 -"\xEF\xAC\x95" => "\x{0574}\x{056B}", # U+FB15 => 0574 056B -"\xEF\xAC\x96" => "\x{057E}\x{0576}", # U+FB16 => 057E 0576 -"\xEF\xAC\x97" => "\x{0574}\x{056D}", # U+FB17 => 0574 056D -); - -return <<'END'; -0041 0061 -0042 0062 -0043 0063 -0044 0064 -0045 0065 -0046 0066 -0047 0067 -0048 0068 -0049 0069 -004A 006A -004B 006B -004C 006C -004D 006D -004E 006E -004F 006F -0050 0070 -0051 0071 -0052 0072 -0053 0073 -0054 0074 -0055 0075 -0056 0076 -0057 0077 -0058 0078 -0059 0079 -005A 007A -00B5 03BC -00C0 00E0 -00C1 00E1 -00C2 00E2 -00C3 00E3 -00C4 00E4 -00C5 00E5 -00C6 00E6 -00C7 00E7 -00C8 00E8 -00C9 00E9 -00CA 00EA -00CB 00EB -00CC 00EC -00CD 00ED -00CE 00EE -00CF 00EF -00D0 00F0 -00D1 00F1 -00D2 00F2 -00D3 00F3 -00D4 00F4 -00D5 00F5 -00D6 00F6 -00D8 00F8 -00D9 00F9 -00DA 00FA -00DB 00FB -00DC 00FC -00DD 00FD -00DE 00FE -0100 0101 -0102 0103 -0104 0105 -0106 0107 -0108 0109 -010A 010B -010C 010D -010E 010F -0110 0111 -0112 0113 -0114 0115 -0116 0117 -0118 0119 -011A 011B -011C 011D -011E 011F -0120 0121 -0122 0123 -0124 0125 -0126 0127 -0128 0129 -012A 012B -012C 012D -012E 012F -0132 0133 -0134 0135 -0136 0137 -0139 013A -013B 013C -013D 013E -013F 0140 -0141 0142 -0143 0144 -0145 0146 -0147 0148 -014A 014B -014C 014D -014E 014F -0150 0151 -0152 0153 -0154 0155 -0156 0157 -0158 0159 -015A 015B -015C 015D -015E 015F -0160 0161 -0162 0163 -0164 0165 -0166 0167 -0168 0169 -016A 016B -016C 016D -016E 016F -0170 0171 -0172 0173 -0174 0175 -0176 0177 -0178 00FF -0179 017A -017B 017C -017D 017E -017F 0073 -0181 0253 -0182 0183 -0184 0185 -0186 0254 -0187 0188 -0189 0256 -018A 0257 -018B 018C -018E 01DD -018F 0259 -0190 025B -0191 0192 -0193 0260 -0194 0263 -0196 0269 -0197 0268 -0198 0199 -019C 026F -019D 0272 -019F 0275 -01A0 01A1 -01A2 01A3 -01A4 01A5 -01A6 0280 -01A7 01A8 -01A9 0283 -01AC 01AD -01AE 0288 -01AF 01B0 -01B1 028A -01B2 028B -01B3 01B4 -01B5 01B6 -01B7 0292 -01B8 01B9 -01BC 01BD -01C4 01C6 -01C5 01C6 -01C7 01C9 -01C8 01C9 -01CA 01CC -01CB 01CC -01CD 01CE -01CF 01D0 -01D1 01D2 -01D3 01D4 -01D5 01D6 -01D7 01D8 -01D9 01DA -01DB 01DC -01DE 01DF -01E0 01E1 -01E2 01E3 -01E4 01E5 -01E6 01E7 -01E8 01E9 -01EA 01EB -01EC 01ED -01EE 01EF -01F1 01F3 -01F2 01F3 -01F4 01F5 -01F6 0195 -01F7 01BF -01F8 01F9 -01FA 01FB -01FC 01FD -01FE 01FF -0200 0201 -0202 0203 -0204 0205 -0206 0207 -0208 0209 -020A 020B -020C 020D -020E 020F -0210 0211 -0212 0213 -0214 0215 -0216 0217 -0218 0219 -021A 021B -021C 021D -021E 021F -0220 019E -0222 0223 -0224 0225 -0226 0227 -0228 0229 -022A 022B -022C 022D -022E 022F -0230 0231 -0232 0233 -023A 2C65 -023B 023C -023D 019A -023E 2C66 -0241 0242 -0243 0180 -0244 0289 -0245 028C -0246 0247 -0248 0249 -024A 024B -024C 024D -024E 024F -0345 03B9 -0370 0371 -0372 0373 -0376 0377 -037F 03F3 -0386 03AC -0388 03AD -0389 03AE -038A 03AF -038C 03CC -038E 03CD -038F 03CE -0391 03B1 -0392 03B2 -0393 03B3 -0394 03B4 -0395 03B5 -0396 03B6 -0397 03B7 -0398 03B8 -0399 03B9 -039A 03BA -039B 03BB -039C 03BC -039D 03BD -039E 03BE -039F 03BF -03A0 03C0 -03A1 03C1 -03A3 03C3 -03A4 03C4 -03A5 03C5 -03A6 03C6 -03A7 03C7 -03A8 03C8 -03A9 03C9 -03AA 03CA -03AB 03CB -03C2 03C3 -03CF 03D7 -03D0 03B2 -03D1 03B8 -03D5 03C6 -03D6 03C0 -03D8 03D9 -03DA 03DB -03DC 03DD -03DE 03DF -03E0 03E1 -03E2 03E3 -03E4 03E5 -03E6 03E7 -03E8 03E9 -03EA 03EB -03EC 03ED -03EE 03EF -03F0 03BA -03F1 03C1 -03F4 03B8 -03F5 03B5 -03F7 03F8 -03F9 03F2 -03FA 03FB -03FD 037B -03FE 037C -03FF 037D -0400 0450 -0401 0451 -0402 0452 -0403 0453 -0404 0454 -0405 0455 -0406 0456 -0407 0457 -0408 0458 -0409 0459 -040A 045A -040B 045B -040C 045C -040D 045D -040E 045E -040F 045F -0410 0430 -0411 0431 -0412 0432 -0413 0433 -0414 0434 -0415 0435 -0416 0436 -0417 0437 -0418 0438 -0419 0439 -041A 043A -041B 043B -041C 043C -041D 043D -041E 043E -041F 043F -0420 0440 -0421 0441 -0422 0442 -0423 0443 -0424 0444 -0425 0445 -0426 0446 -0427 0447 -0428 0448 -0429 0449 -042A 044A -042B 044B -042C 044C -042D 044D -042E 044E -042F 044F -0460 0461 -0462 0463 -0464 0465 -0466 0467 -0468 0469 -046A 046B -046C 046D -046E 046F -0470 0471 -0472 0473 -0474 0475 -0476 0477 -0478 0479 -047A 047B -047C 047D -047E 047F -0480 0481 -048A 048B -048C 048D -048E 048F -0490 0491 -0492 0493 -0494 0495 -0496 0497 -0498 0499 -049A 049B -049C 049D -049E 049F -04A0 04A1 -04A2 04A3 -04A4 04A5 -04A6 04A7 -04A8 04A9 -04AA 04AB -04AC 04AD -04AE 04AF -04B0 04B1 -04B2 04B3 -04B4 04B5 -04B6 04B7 -04B8 04B9 -04BA 04BB -04BC 04BD -04BE 04BF -04C0 04CF -04C1 04C2 -04C3 04C4 -04C5 04C6 -04C7 04C8 -04C9 04CA -04CB 04CC -04CD 04CE -04D0 04D1 -04D2 04D3 -04D4 04D5 -04D6 04D7 -04D8 04D9 -04DA 04DB -04DC 04DD -04DE 04DF -04E0 04E1 -04E2 04E3 -04E4 04E5 -04E6 04E7 -04E8 04E9 -04EA 04EB -04EC 04ED -04EE 04EF -04F0 04F1 -04F2 04F3 -04F4 04F5 -04F6 04F7 -04F8 04F9 -04FA 04FB -04FC 04FD -04FE 04FF -0500 0501 -0502 0503 -0504 0505 -0506 0507 -0508 0509 -050A 050B -050C 050D -050E 050F -0510 0511 -0512 0513 -0514 0515 -0516 0517 -0518 0519 -051A 051B -051C 051D -051E 051F -0520 0521 -0522 0523 -0524 0525 -0526 0527 -0528 0529 -052A 052B -052C 052D -052E 052F -0531 0561 -0532 0562 -0533 0563 -0534 0564 -0535 0565 -0536 0566 -0537 0567 -0538 0568 -0539 0569 -053A 056A -053B 056B -053C 056C -053D 056D -053E 056E -053F 056F -0540 0570 -0541 0571 -0542 0572 -0543 0573 -0544 0574 -0545 0575 -0546 0576 -0547 0577 -0548 0578 -0549 0579 -054A 057A -054B 057B -054C 057C -054D 057D -054E 057E -054F 057F -0550 0580 -0551 0581 -0552 0582 -0553 0583 -0554 0584 -0555 0585 -0556 0586 -10A0 2D00 -10A1 2D01 -10A2 2D02 -10A3 2D03 -10A4 2D04 -10A5 2D05 -10A6 2D06 -10A7 2D07 -10A8 2D08 -10A9 2D09 -10AA 2D0A -10AB 2D0B -10AC 2D0C -10AD 2D0D -10AE 2D0E -10AF 2D0F -10B0 2D10 -10B1 2D11 -10B2 2D12 -10B3 2D13 -10B4 2D14 -10B5 2D15 -10B6 2D16 -10B7 2D17 -10B8 2D18 -10B9 2D19 -10BA 2D1A -10BB 2D1B -10BC 2D1C -10BD 2D1D -10BE 2D1E -10BF 2D1F -10C0 2D20 -10C1 2D21 -10C2 2D22 -10C3 2D23 -10C4 2D24 -10C5 2D25 -10C7 2D27 -10CD 2D2D -13F8 13F0 -13F9 13F1 -13FA 13F2 -13FB 13F3 -13FC 13F4 -13FD 13F5 -1E00 1E01 -1E02 1E03 -1E04 1E05 -1E06 1E07 -1E08 1E09 -1E0A 1E0B -1E0C 1E0D -1E0E 1E0F -1E10 1E11 -1E12 1E13 -1E14 1E15 -1E16 1E17 -1E18 1E19 -1E1A 1E1B -1E1C 1E1D -1E1E 1E1F -1E20 1E21 -1E22 1E23 -1E24 1E25 -1E26 1E27 -1E28 1E29 -1E2A 1E2B -1E2C 1E2D -1E2E 1E2F -1E30 1E31 -1E32 1E33 -1E34 1E35 -1E36 1E37 -1E38 1E39 -1E3A 1E3B -1E3C 1E3D -1E3E 1E3F -1E40 1E41 -1E42 1E43 -1E44 1E45 -1E46 1E47 -1E48 1E49 -1E4A 1E4B -1E4C 1E4D -1E4E 1E4F -1E50 1E51 -1E52 1E53 -1E54 1E55 -1E56 1E57 -1E58 1E59 -1E5A 1E5B -1E5C 1E5D -1E5E 1E5F -1E60 1E61 -1E62 1E63 -1E64 1E65 -1E66 1E67 -1E68 1E69 -1E6A 1E6B -1E6C 1E6D -1E6E 1E6F -1E70 1E71 -1E72 1E73 -1E74 1E75 -1E76 1E77 -1E78 1E79 -1E7A 1E7B -1E7C 1E7D -1E7E 1E7F -1E80 1E81 -1E82 1E83 -1E84 1E85 -1E86 1E87 -1E88 1E89 -1E8A 1E8B -1E8C 1E8D -1E8E 1E8F -1E90 1E91 -1E92 1E93 -1E94 1E95 -1E9B 1E61 -1E9E 00DF -1EA0 1EA1 -1EA2 1EA3 -1EA4 1EA5 -1EA6 1EA7 -1EA8 1EA9 -1EAA 1EAB -1EAC 1EAD -1EAE 1EAF -1EB0 1EB1 -1EB2 1EB3 -1EB4 1EB5 -1EB6 1EB7 -1EB8 1EB9 -1EBA 1EBB -1EBC 1EBD -1EBE 1EBF -1EC0 1EC1 -1EC2 1EC3 -1EC4 1EC5 -1EC6 1EC7 -1EC8 1EC9 -1ECA 1ECB -1ECC 1ECD -1ECE 1ECF -1ED0 1ED1 -1ED2 1ED3 -1ED4 1ED5 -1ED6 1ED7 -1ED8 1ED9 -1EDA 1EDB -1EDC 1EDD -1EDE 1EDF -1EE0 1EE1 -1EE2 1EE3 -1EE4 1EE5 -1EE6 1EE7 -1EE8 1EE9 -1EEA 1EEB -1EEC 1EED -1EEE 1EEF -1EF0 1EF1 -1EF2 1EF3 -1EF4 1EF5 -1EF6 1EF7 -1EF8 1EF9 -1EFA 1EFB -1EFC 1EFD -1EFE 1EFF -1F08 1F00 -1F09 1F01 -1F0A 1F02 -1F0B 1F03 -1F0C 1F04 -1F0D 1F05 -1F0E 1F06 -1F0F 1F07 -1F18 1F10 -1F19 1F11 -1F1A 1F12 -1F1B 1F13 -1F1C 1F14 -1F1D 1F15 -1F28 1F20 -1F29 1F21 -1F2A 1F22 -1F2B 1F23 -1F2C 1F24 -1F2D 1F25 -1F2E 1F26 -1F2F 1F27 -1F38 1F30 -1F39 1F31 -1F3A 1F32 -1F3B 1F33 -1F3C 1F34 -1F3D 1F35 -1F3E 1F36 -1F3F 1F37 -1F48 1F40 -1F49 1F41 -1F4A 1F42 -1F4B 1F43 -1F4C 1F44 -1F4D 1F45 -1F59 1F51 -1F5B 1F53 -1F5D 1F55 -1F5F 1F57 -1F68 1F60 -1F69 1F61 -1F6A 1F62 -1F6B 1F63 -1F6C 1F64 -1F6D 1F65 -1F6E 1F66 -1F6F 1F67 -1F88 1F80 -1F89 1F81 -1F8A 1F82 -1F8B 1F83 -1F8C 1F84 -1F8D 1F85 -1F8E 1F86 -1F8F 1F87 -1F98 1F90 -1F99 1F91 -1F9A 1F92 -1F9B 1F93 -1F9C 1F94 -1F9D 1F95 -1F9E 1F96 -1F9F 1F97 -1FA8 1FA0 -1FA9 1FA1 -1FAA 1FA2 -1FAB 1FA3 -1FAC 1FA4 -1FAD 1FA5 -1FAE 1FA6 -1FAF 1FA7 -1FB8 1FB0 -1FB9 1FB1 -1FBA 1F70 -1FBB 1F71 -1FBC 1FB3 -1FBE 03B9 -1FC8 1F72 -1FC9 1F73 -1FCA 1F74 -1FCB 1F75 -1FCC 1FC3 -1FD8 1FD0 -1FD9 1FD1 -1FDA 1F76 -1FDB 1F77 -1FE8 1FE0 -1FE9 1FE1 -1FEA 1F7A -1FEB 1F7B -1FEC 1FE5 -1FF8 1F78 -1FF9 1F79 -1FFA 1F7C -1FFB 1F7D -1FFC 1FF3 -2126 03C9 -212A 006B -212B 00E5 -2132 214E -2160 2170 -2161 2171 -2162 2172 -2163 2173 -2164 2174 -2165 2175 -2166 2176 -2167 2177 -2168 2178 -2169 2179 -216A 217A -216B 217B -216C 217C -216D 217D -216E 217E -216F 217F -2183 2184 -24B6 24D0 -24B7 24D1 -24B8 24D2 -24B9 24D3 -24BA 24D4 -24BB 24D5 -24BC 24D6 -24BD 24D7 -24BE 24D8 -24BF 24D9 -24C0 24DA -24C1 24DB -24C2 24DC -24C3 24DD -24C4 24DE -24C5 24DF -24C6 24E0 -24C7 24E1 -24C8 24E2 -24C9 24E3 -24CA 24E4 -24CB 24E5 -24CC 24E6 -24CD 24E7 -24CE 24E8 -24CF 24E9 -2C00 2C30 -2C01 2C31 -2C02 2C32 -2C03 2C33 -2C04 2C34 -2C05 2C35 -2C06 2C36 -2C07 2C37 -2C08 2C38 -2C09 2C39 -2C0A 2C3A -2C0B 2C3B -2C0C 2C3C -2C0D 2C3D -2C0E 2C3E -2C0F 2C3F -2C10 2C40 -2C11 2C41 -2C12 2C42 -2C13 2C43 -2C14 2C44 -2C15 2C45 -2C16 2C46 -2C17 2C47 -2C18 2C48 -2C19 2C49 -2C1A 2C4A -2C1B 2C4B -2C1C 2C4C -2C1D 2C4D -2C1E 2C4E -2C1F 2C4F -2C20 2C50 -2C21 2C51 -2C22 2C52 -2C23 2C53 -2C24 2C54 -2C25 2C55 -2C26 2C56 -2C27 2C57 -2C28 2C58 -2C29 2C59 -2C2A 2C5A -2C2B 2C5B -2C2C 2C5C -2C2D 2C5D -2C2E 2C5E -2C60 2C61 -2C62 026B -2C63 1D7D -2C64 027D -2C67 2C68 -2C69 2C6A -2C6B 2C6C -2C6D 0251 -2C6E 0271 -2C6F 0250 -2C70 0252 -2C72 2C73 -2C75 2C76 -2C7E 023F -2C7F 0240 -2C80 2C81 -2C82 2C83 -2C84 2C85 -2C86 2C87 -2C88 2C89 -2C8A 2C8B -2C8C 2C8D -2C8E 2C8F -2C90 2C91 -2C92 2C93 -2C94 2C95 -2C96 2C97 -2C98 2C99 -2C9A 2C9B -2C9C 2C9D -2C9E 2C9F -2CA0 2CA1 -2CA2 2CA3 -2CA4 2CA5 -2CA6 2CA7 -2CA8 2CA9 -2CAA 2CAB -2CAC 2CAD -2CAE 2CAF -2CB0 2CB1 -2CB2 2CB3 -2CB4 2CB5 -2CB6 2CB7 -2CB8 2CB9 -2CBA 2CBB -2CBC 2CBD -2CBE 2CBF -2CC0 2CC1 -2CC2 2CC3 -2CC4 2CC5 -2CC6 2CC7 -2CC8 2CC9 -2CCA 2CCB -2CCC 2CCD -2CCE 2CCF -2CD0 2CD1 -2CD2 2CD3 -2CD4 2CD5 -2CD6 2CD7 -2CD8 2CD9 -2CDA 2CDB -2CDC 2CDD -2CDE 2CDF -2CE0 2CE1 -2CE2 2CE3 -2CEB 2CEC -2CED 2CEE -2CF2 2CF3 -A640 A641 -A642 A643 -A644 A645 -A646 A647 -A648 A649 -A64A A64B -A64C A64D -A64E A64F -A650 A651 -A652 A653 -A654 A655 -A656 A657 -A658 A659 -A65A A65B -A65C A65D -A65E A65F -A660 A661 -A662 A663 -A664 A665 -A666 A667 -A668 A669 -A66A A66B -A66C A66D -A680 A681 -A682 A683 -A684 A685 -A686 A687 -A688 A689 -A68A A68B -A68C A68D -A68E A68F -A690 A691 -A692 A693 -A694 A695 -A696 A697 -A698 A699 -A69A A69B -A722 A723 -A724 A725 -A726 A727 -A728 A729 -A72A A72B -A72C A72D -A72E A72F -A732 A733 -A734 A735 -A736 A737 -A738 A739 -A73A A73B -A73C A73D -A73E A73F -A740 A741 -A742 A743 -A744 A745 -A746 A747 -A748 A749 -A74A A74B -A74C A74D -A74E A74F -A750 A751 -A752 A753 -A754 A755 -A756 A757 -A758 A759 -A75A A75B -A75C A75D -A75E A75F -A760 A761 -A762 A763 -A764 A765 -A766 A767 -A768 A769 -A76A A76B -A76C A76D -A76E A76F -A779 A77A -A77B A77C -A77D 1D79 -A77E A77F -A780 A781 -A782 A783 -A784 A785 -A786 A787 -A78B A78C -A78D 0265 -A790 A791 -A792 A793 -A796 A797 -A798 A799 -A79A A79B -A79C A79D -A79E A79F -A7A0 A7A1 -A7A2 A7A3 -A7A4 A7A5 -A7A6 A7A7 -A7A8 A7A9 -A7AA 0266 -A7AB 025C -A7AC 0261 -A7AD 026C -A7B0 029E -A7B1 0287 -A7B2 029D -A7B3 AB53 -A7B4 A7B5 -A7B6 A7B7 -AB70 13A0 -AB71 13A1 -AB72 13A2 -AB73 13A3 -AB74 13A4 -AB75 13A5 -AB76 13A6 -AB77 13A7 -AB78 13A8 -AB79 13A9 -AB7A 13AA -AB7B 13AB -AB7C 13AC -AB7D 13AD -AB7E 13AE -AB7F 13AF -AB80 13B0 -AB81 13B1 -AB82 13B2 -AB83 13B3 -AB84 13B4 -AB85 13B5 -AB86 13B6 -AB87 13B7 -AB88 13B8 -AB89 13B9 -AB8A 13BA -AB8B 13BB -AB8C 13BC -AB8D 13BD -AB8E 13BE -AB8F 13BF -AB90 13C0 -AB91 13C1 -AB92 13C2 -AB93 13C3 -AB94 13C4 -AB95 13C5 -AB96 13C6 -AB97 13C7 -AB98 13C8 -AB99 13C9 -AB9A 13CA -AB9B 13CB -AB9C 13CC -AB9D 13CD -AB9E 13CE -AB9F 13CF -ABA0 13D0 -ABA1 13D1 -ABA2 13D2 -ABA3 13D3 -ABA4 13D4 -ABA5 13D5 -ABA6 13D6 -ABA7 13D7 -ABA8 13D8 -ABA9 13D9 -ABAA 13DA -ABAB 13DB -ABAC 13DC -ABAD 13DD -ABAE 13DE -ABAF 13DF -ABB0 13E0 -ABB1 13E1 -ABB2 13E2 -ABB3 13E3 -ABB4 13E4 -ABB5 13E5 -ABB6 13E6 -ABB7 13E7 -ABB8 13E8 -ABB9 13E9 -ABBA 13EA -ABBB 13EB -ABBC 13EC -ABBD 13ED -ABBE 13EE -ABBF 13EF -FF21 FF41 -FF22 FF42 -FF23 FF43 -FF24 FF44 -FF25 FF45 -FF26 FF46 -FF27 FF47 -FF28 FF48 -FF29 FF49 -FF2A FF4A -FF2B FF4B -FF2C FF4C -FF2D FF4D -FF2E FF4E -FF2F FF4F -FF30 FF50 -FF31 FF51 -FF32 FF52 -FF33 FF53 -FF34 FF54 -FF35 FF55 -FF36 FF56 -FF37 FF57 -FF38 FF58 -FF39 FF59 -FF3A FF5A -10400 10428 -10401 10429 -10402 1042A -10403 1042B -10404 1042C -10405 1042D -10406 1042E -10407 1042F -10408 10430 -10409 10431 -1040A 10432 -1040B 10433 -1040C 10434 -1040D 10435 -1040E 10436 -1040F 10437 -10410 10438 -10411 10439 -10412 1043A -10413 1043B -10414 1043C -10415 1043D -10416 1043E -10417 1043F -10418 10440 -10419 10441 -1041A 10442 -1041B 10443 -1041C 10444 -1041D 10445 -1041E 10446 -1041F 10447 -10420 10448 -10421 10449 -10422 1044A -10423 1044B -10424 1044C -10425 1044D -10426 1044E -10427 1044F -10C80 10CC0 -10C81 10CC1 -10C82 10CC2 -10C83 10CC3 -10C84 10CC4 -10C85 10CC5 -10C86 10CC6 -10C87 10CC7 -10C88 10CC8 -10C89 10CC9 -10C8A 10CCA -10C8B 10CCB -10C8C 10CCC -10C8D 10CCD -10C8E 10CCE -10C8F 10CCF -10C90 10CD0 -10C91 10CD1 -10C92 10CD2 -10C93 10CD3 -10C94 10CD4 -10C95 10CD5 -10C96 10CD6 -10C97 10CD7 -10C98 10CD8 -10C99 10CD9 -10C9A 10CDA -10C9B 10CDB -10C9C 10CDC -10C9D 10CDD -10C9E 10CDE -10C9F 10CDF -10CA0 10CE0 -10CA1 10CE1 -10CA2 10CE2 -10CA3 10CE3 -10CA4 10CE4 -10CA5 10CE5 -10CA6 10CE6 -10CA7 10CE7 -10CA8 10CE8 -10CA9 10CE9 -10CAA 10CEA -10CAB 10CEB -10CAC 10CEC -10CAD 10CED -10CAE 10CEE -10CAF 10CEF -10CB0 10CF0 -10CB1 10CF1 -10CB2 10CF2 -118A0 118C0 -118A1 118C1 -118A2 118C2 -118A3 118C3 -118A4 118C4 -118A5 118C5 -118A6 118C6 -118A7 118C7 -118A8 118C8 -118A9 118C9 -118AA 118CA -118AB 118CB -118AC 118CC -118AD 118CD -118AE 118CE -118AF 118CF -118B0 118D0 -118B1 118D1 -118B2 118D2 -118B3 118D3 -118B4 118D4 -118B5 118D5 -118B6 118D6 -118B7 118D7 -118B8 118D8 -118B9 118D9 -118BA 118DA -118BB 118DB -118BC 118DC -118BD 118DD -118BE 118DE -118BF 118DF -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/GCB.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/GCB.pl deleted file mode 100644 index c81ecea9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/GCB.pl +++ /dev/null @@ -1,1264 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToGCB'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToGCB'}{'missing'} = 'Other'; - -return <<'END'; -0 9 Control -A LF -B C Control -D CR -E 1F Control -7F 9F Control -AD Control -300 36F Extend -483 489 Extend -591 5BD Extend -5BF Extend -5C1 5C2 Extend -5C4 5C5 Extend -5C7 Extend -600 605 Control -610 61A Extend -61C Control -64B 65F Extend -670 Extend -6D6 6DC Extend -6DD Control -6DF 6E4 Extend -6E7 6E8 Extend -6EA 6ED Extend -70F Control -711 Extend -730 74A Extend -7A6 7B0 Extend -7EB 7F3 Extend -816 819 Extend -81B 823 Extend -825 827 Extend -829 82D Extend -859 85B Extend -8E3 902 Extend -903 SpacingMark -93A Extend -93B SpacingMark -93C Extend -93E 940 SpacingMark -941 948 Extend -949 94C SpacingMark -94D Extend -94E 94F SpacingMark -951 957 Extend -962 963 Extend -981 Extend -982 983 SpacingMark -9BC Extend -9BE Extend -9BF 9C0 SpacingMark -9C1 9C4 Extend -9C7 9C8 SpacingMark -9CB 9CC SpacingMark -9CD Extend -9D7 Extend -9E2 9E3 Extend -A01 A02 Extend -A03 SpacingMark -A3C Extend -A3E A40 SpacingMark -A41 A42 Extend -A47 A48 Extend -A4B A4D Extend -A51 Extend -A70 A71 Extend -A75 Extend -A81 A82 Extend -A83 SpacingMark -ABC Extend -ABE AC0 SpacingMark -AC1 AC5 Extend -AC7 AC8 Extend -AC9 SpacingMark -ACB ACC SpacingMark -ACD Extend -AE2 AE3 Extend -B01 Extend -B02 B03 SpacingMark -B3C Extend -B3E B3F Extend -B40 SpacingMark -B41 B44 Extend -B47 B48 SpacingMark -B4B B4C SpacingMark -B4D Extend -B56 B57 Extend -B62 B63 Extend -B82 Extend -BBE Extend -BBF SpacingMark -BC0 Extend -BC1 BC2 SpacingMark -BC6 BC8 SpacingMark -BCA BCC SpacingMark -BCD Extend -BD7 Extend -C00 Extend -C01 C03 SpacingMark -C3E C40 Extend -C41 C44 SpacingMark -C46 C48 Extend -C4A C4D Extend -C55 C56 Extend -C62 C63 Extend -C81 Extend -C82 C83 SpacingMark -CBC Extend -CBE SpacingMark -CBF Extend -CC0 CC1 SpacingMark -CC2 Extend -CC3 CC4 SpacingMark -CC6 Extend -CC7 CC8 SpacingMark -CCA CCB SpacingMark -CCC CCD Extend -CD5 CD6 Extend -CE2 CE3 Extend -D01 Extend -D02 D03 SpacingMark -D3E Extend -D3F D40 SpacingMark -D41 D44 Extend -D46 D48 SpacingMark -D4A D4C SpacingMark -D4D Extend -D57 Extend -D62 D63 Extend -D82 D83 SpacingMark -DCA Extend -DCF Extend -DD0 DD1 SpacingMark -DD2 DD4 Extend -DD6 Extend -DD8 DDE SpacingMark -DDF Extend -DF2 DF3 SpacingMark -E31 Extend -E33 SpacingMark -E34 E3A Extend -E47 E4E Extend -EB1 Extend -EB3 SpacingMark -EB4 EB9 Extend -EBB EBC Extend -EC8 ECD Extend -F18 F19 Extend -F35 Extend -F37 Extend -F39 Extend -F3E F3F SpacingMark -F71 F7E Extend -F7F SpacingMark -F80 F84 Extend -F86 F87 Extend -F8D F97 Extend -F99 FBC Extend -FC6 Extend -102D 1030 Extend -1031 SpacingMark -1032 1037 Extend -1039 103A Extend -103B 103C SpacingMark -103D 103E Extend -1056 1057 SpacingMark -1058 1059 Extend -105E 1060 Extend -1071 1074 Extend -1082 Extend -1084 SpacingMark -1085 1086 Extend -108D Extend -109D Extend -1100 115F L -1160 11A7 V -11A8 11FF T -135D 135F Extend -1712 1714 Extend -1732 1734 Extend -1752 1753 Extend -1772 1773 Extend -17B4 17B5 Extend -17B6 SpacingMark -17B7 17BD Extend -17BE 17C5 SpacingMark -17C6 Extend -17C7 17C8 SpacingMark -17C9 17D3 Extend -17DD Extend -180B 180D Extend -180E Control -18A9 Extend -1920 1922 Extend -1923 1926 SpacingMark -1927 1928 Extend -1929 192B SpacingMark -1930 1931 SpacingMark -1932 Extend -1933 1938 SpacingMark -1939 193B Extend -1A17 1A18 Extend -1A19 1A1A SpacingMark -1A1B Extend -1A55 SpacingMark -1A56 Extend -1A57 SpacingMark -1A58 1A5E Extend -1A60 Extend -1A62 Extend -1A65 1A6C Extend -1A6D 1A72 SpacingMark -1A73 1A7C Extend -1A7F Extend -1AB0 1ABE Extend -1B00 1B03 Extend -1B04 SpacingMark -1B34 Extend -1B35 SpacingMark -1B36 1B3A Extend -1B3B SpacingMark -1B3C Extend -1B3D 1B41 SpacingMark -1B42 Extend -1B43 1B44 SpacingMark -1B6B 1B73 Extend -1B80 1B81 Extend -1B82 SpacingMark -1BA1 SpacingMark -1BA2 1BA5 Extend -1BA6 1BA7 SpacingMark -1BA8 1BA9 Extend -1BAA SpacingMark -1BAB 1BAD Extend -1BE6 Extend -1BE7 SpacingMark -1BE8 1BE9 Extend -1BEA 1BEC SpacingMark -1BED Extend -1BEE SpacingMark -1BEF 1BF1 Extend -1BF2 1BF3 SpacingMark -1C24 1C2B SpacingMark -1C2C 1C33 Extend -1C34 1C35 SpacingMark -1C36 1C37 Extend -1CD0 1CD2 Extend -1CD4 1CE0 Extend -1CE1 SpacingMark -1CE2 1CE8 Extend -1CED Extend -1CF2 1CF3 SpacingMark -1CF4 Extend -1CF8 1CF9 Extend -1DC0 1DF5 Extend -1DFC 1DFF Extend -200B Control -200C 200D Extend -200E 200F Control -2028 202E Control -2060 206F Control -20D0 20F0 Extend -2CEF 2CF1 Extend -2D7F Extend -2DE0 2DFF Extend -302A 302F Extend -3099 309A Extend -A66F A672 Extend -A674 A67D Extend -A69E A69F Extend -A6F0 A6F1 Extend -A802 Extend -A806 Extend -A80B Extend -A823 A824 SpacingMark -A825 A826 Extend -A827 SpacingMark -A880 A881 SpacingMark -A8B4 A8C3 SpacingMark -A8C4 Extend -A8E0 A8F1 Extend -A926 A92D Extend -A947 A951 Extend -A952 A953 SpacingMark -A960 A97C L -A980 A982 Extend -A983 SpacingMark -A9B3 Extend -A9B4 A9B5 SpacingMark -A9B6 A9B9 Extend -A9BA A9BB SpacingMark -A9BC Extend -A9BD A9C0 SpacingMark -A9E5 Extend -AA29 AA2E Extend -AA2F AA30 SpacingMark -AA31 AA32 Extend -AA33 AA34 SpacingMark -AA35 AA36 Extend -AA43 Extend -AA4C Extend -AA4D SpacingMark -AA7C Extend -AAB0 Extend -AAB2 AAB4 Extend -AAB7 AAB8 Extend -AABE AABF Extend -AAC1 Extend -AAEB SpacingMark -AAEC AAED Extend -AAEE AAEF SpacingMark -AAF5 SpacingMark -AAF6 Extend -ABE3 ABE4 SpacingMark -ABE5 Extend -ABE6 ABE7 SpacingMark -ABE8 Extend -ABE9 ABEA SpacingMark -ABEC SpacingMark -ABED Extend -AC00 LV -AC01 AC1B LVT -AC1C LV -AC1D AC37 LVT -AC38 LV -AC39 AC53 LVT -AC54 LV -AC55 AC6F LVT -AC70 LV -AC71 AC8B LVT -AC8C LV -AC8D ACA7 LVT -ACA8 LV -ACA9 ACC3 LVT -ACC4 LV -ACC5 ACDF LVT -ACE0 LV -ACE1 ACFB LVT -ACFC LV -ACFD AD17 LVT -AD18 LV -AD19 AD33 LVT -AD34 LV -AD35 AD4F LVT -AD50 LV -AD51 AD6B LVT -AD6C LV -AD6D AD87 LVT -AD88 LV -AD89 ADA3 LVT -ADA4 LV -ADA5 ADBF LVT -ADC0 LV -ADC1 ADDB LVT -ADDC LV -ADDD ADF7 LVT -ADF8 LV -ADF9 AE13 LVT -AE14 LV -AE15 AE2F LVT -AE30 LV -AE31 AE4B LVT -AE4C LV -AE4D AE67 LVT -AE68 LV -AE69 AE83 LVT -AE84 LV -AE85 AE9F LVT -AEA0 LV -AEA1 AEBB LVT -AEBC LV -AEBD AED7 LVT -AED8 LV -AED9 AEF3 LVT -AEF4 LV -AEF5 AF0F LVT -AF10 LV -AF11 AF2B LVT -AF2C LV -AF2D AF47 LVT -AF48 LV -AF49 AF63 LVT -AF64 LV -AF65 AF7F LVT -AF80 LV -AF81 AF9B LVT -AF9C LV -AF9D AFB7 LVT -AFB8 LV -AFB9 AFD3 LVT -AFD4 LV -AFD5 AFEF LVT -AFF0 LV -AFF1 B00B LVT -B00C LV -B00D B027 LVT -B028 LV -B029 B043 LVT -B044 LV -B045 B05F LVT -B060 LV -B061 B07B LVT -B07C LV -B07D B097 LVT -B098 LV -B099 B0B3 LVT -B0B4 LV -B0B5 B0CF LVT -B0D0 LV -B0D1 B0EB LVT -B0EC LV -B0ED B107 LVT -B108 LV -B109 B123 LVT -B124 LV -B125 B13F LVT -B140 LV -B141 B15B LVT -B15C LV -B15D B177 LVT -B178 LV -B179 B193 LVT -B194 LV -B195 B1AF LVT -B1B0 LV -B1B1 B1CB LVT -B1CC LV -B1CD B1E7 LVT -B1E8 LV -B1E9 B203 LVT -B204 LV -B205 B21F LVT -B220 LV -B221 B23B LVT -B23C LV -B23D B257 LVT -B258 LV -B259 B273 LVT -B274 LV -B275 B28F LVT -B290 LV -B291 B2AB LVT -B2AC LV -B2AD B2C7 LVT -B2C8 LV -B2C9 B2E3 LVT -B2E4 LV -B2E5 B2FF LVT -B300 LV -B301 B31B LVT -B31C LV -B31D B337 LVT -B338 LV -B339 B353 LVT -B354 LV -B355 B36F LVT -B370 LV -B371 B38B LVT -B38C LV -B38D B3A7 LVT -B3A8 LV -B3A9 B3C3 LVT -B3C4 LV -B3C5 B3DF LVT -B3E0 LV -B3E1 B3FB LVT -B3FC LV -B3FD B417 LVT -B418 LV -B419 B433 LVT -B434 LV -B435 B44F LVT -B450 LV -B451 B46B LVT -B46C LV -B46D B487 LVT -B488 LV -B489 B4A3 LVT -B4A4 LV -B4A5 B4BF LVT -B4C0 LV -B4C1 B4DB LVT -B4DC LV -B4DD B4F7 LVT -B4F8 LV -B4F9 B513 LVT -B514 LV -B515 B52F LVT -B530 LV -B531 B54B LVT -B54C LV -B54D B567 LVT -B568 LV -B569 B583 LVT -B584 LV -B585 B59F LVT -B5A0 LV -B5A1 B5BB LVT -B5BC LV -B5BD B5D7 LVT -B5D8 LV -B5D9 B5F3 LVT -B5F4 LV -B5F5 B60F LVT -B610 LV -B611 B62B LVT -B62C LV -B62D B647 LVT -B648 LV -B649 B663 LVT -B664 LV -B665 B67F LVT -B680 LV -B681 B69B LVT -B69C LV -B69D B6B7 LVT -B6B8 LV -B6B9 B6D3 LVT -B6D4 LV -B6D5 B6EF LVT -B6F0 LV -B6F1 B70B LVT -B70C LV -B70D B727 LVT -B728 LV -B729 B743 LVT -B744 LV -B745 B75F LVT -B760 LV -B761 B77B LVT -B77C LV -B77D B797 LVT -B798 LV -B799 B7B3 LVT -B7B4 LV -B7B5 B7CF LVT -B7D0 LV -B7D1 B7EB LVT -B7EC LV -B7ED B807 LVT -B808 LV -B809 B823 LVT -B824 LV -B825 B83F LVT -B840 LV -B841 B85B LVT -B85C LV -B85D B877 LVT -B878 LV -B879 B893 LVT -B894 LV -B895 B8AF LVT -B8B0 LV -B8B1 B8CB LVT -B8CC LV -B8CD B8E7 LVT -B8E8 LV -B8E9 B903 LVT -B904 LV -B905 B91F LVT -B920 LV -B921 B93B LVT -B93C LV -B93D B957 LVT -B958 LV -B959 B973 LVT -B974 LV -B975 B98F LVT -B990 LV -B991 B9AB LVT -B9AC LV -B9AD B9C7 LVT -B9C8 LV -B9C9 B9E3 LVT -B9E4 LV -B9E5 B9FF LVT -BA00 LV -BA01 BA1B LVT -BA1C LV -BA1D BA37 LVT -BA38 LV -BA39 BA53 LVT -BA54 LV -BA55 BA6F LVT -BA70 LV -BA71 BA8B LVT -BA8C LV -BA8D BAA7 LVT -BAA8 LV -BAA9 BAC3 LVT -BAC4 LV -BAC5 BADF LVT -BAE0 LV -BAE1 BAFB LVT -BAFC LV -BAFD BB17 LVT -BB18 LV -BB19 BB33 LVT -BB34 LV -BB35 BB4F LVT -BB50 LV -BB51 BB6B LVT -BB6C LV -BB6D BB87 LVT -BB88 LV -BB89 BBA3 LVT -BBA4 LV -BBA5 BBBF LVT -BBC0 LV -BBC1 BBDB LVT -BBDC LV -BBDD BBF7 LVT -BBF8 LV -BBF9 BC13 LVT -BC14 LV -BC15 BC2F LVT -BC30 LV -BC31 BC4B LVT -BC4C LV -BC4D BC67 LVT -BC68 LV -BC69 BC83 LVT -BC84 LV -BC85 BC9F LVT -BCA0 LV -BCA1 BCBB LVT -BCBC LV -BCBD BCD7 LVT -BCD8 LV -BCD9 BCF3 LVT -BCF4 LV -BCF5 BD0F LVT -BD10 LV -BD11 BD2B LVT -BD2C LV -BD2D BD47 LVT -BD48 LV -BD49 BD63 LVT -BD64 LV -BD65 BD7F LVT -BD80 LV -BD81 BD9B LVT -BD9C LV -BD9D BDB7 LVT -BDB8 LV -BDB9 BDD3 LVT -BDD4 LV -BDD5 BDEF LVT -BDF0 LV -BDF1 BE0B LVT -BE0C LV -BE0D BE27 LVT -BE28 LV -BE29 BE43 LVT -BE44 LV -BE45 BE5F LVT -BE60 LV -BE61 BE7B LVT -BE7C LV -BE7D BE97 LVT -BE98 LV -BE99 BEB3 LVT -BEB4 LV -BEB5 BECF LVT -BED0 LV -BED1 BEEB LVT -BEEC LV -BEED BF07 LVT -BF08 LV -BF09 BF23 LVT -BF24 LV -BF25 BF3F LVT -BF40 LV -BF41 BF5B LVT -BF5C LV -BF5D BF77 LVT -BF78 LV -BF79 BF93 LVT -BF94 LV -BF95 BFAF LVT -BFB0 LV -BFB1 BFCB LVT -BFCC LV -BFCD BFE7 LVT -BFE8 LV -BFE9 C003 LVT -C004 LV -C005 C01F LVT -C020 LV -C021 C03B LVT -C03C LV -C03D C057 LVT -C058 LV -C059 C073 LVT -C074 LV -C075 C08F LVT -C090 LV -C091 C0AB LVT -C0AC LV -C0AD C0C7 LVT -C0C8 LV -C0C9 C0E3 LVT -C0E4 LV -C0E5 C0FF LVT -C100 LV -C101 C11B LVT -C11C LV -C11D C137 LVT -C138 LV -C139 C153 LVT -C154 LV -C155 C16F LVT -C170 LV -C171 C18B LVT -C18C LV -C18D C1A7 LVT -C1A8 LV -C1A9 C1C3 LVT -C1C4 LV -C1C5 C1DF LVT -C1E0 LV -C1E1 C1FB LVT -C1FC LV -C1FD C217 LVT -C218 LV -C219 C233 LVT -C234 LV -C235 C24F LVT -C250 LV -C251 C26B LVT -C26C LV -C26D C287 LVT -C288 LV -C289 C2A3 LVT -C2A4 LV -C2A5 C2BF LVT -C2C0 LV -C2C1 C2DB LVT -C2DC LV -C2DD C2F7 LVT -C2F8 LV -C2F9 C313 LVT -C314 LV -C315 C32F LVT -C330 LV -C331 C34B LVT -C34C LV -C34D C367 LVT -C368 LV -C369 C383 LVT -C384 LV -C385 C39F LVT -C3A0 LV -C3A1 C3BB LVT -C3BC LV -C3BD C3D7 LVT -C3D8 LV -C3D9 C3F3 LVT -C3F4 LV -C3F5 C40F LVT -C410 LV -C411 C42B LVT -C42C LV -C42D C447 LVT -C448 LV -C449 C463 LVT -C464 LV -C465 C47F LVT -C480 LV -C481 C49B LVT -C49C LV -C49D C4B7 LVT -C4B8 LV -C4B9 C4D3 LVT -C4D4 LV -C4D5 C4EF LVT -C4F0 LV -C4F1 C50B LVT -C50C LV -C50D C527 LVT -C528 LV -C529 C543 LVT -C544 LV -C545 C55F LVT -C560 LV -C561 C57B LVT -C57C LV -C57D C597 LVT -C598 LV -C599 C5B3 LVT -C5B4 LV -C5B5 C5CF LVT -C5D0 LV -C5D1 C5EB LVT -C5EC LV -C5ED C607 LVT -C608 LV -C609 C623 LVT -C624 LV -C625 C63F LVT -C640 LV -C641 C65B LVT -C65C LV -C65D C677 LVT -C678 LV -C679 C693 LVT -C694 LV -C695 C6AF LVT -C6B0 LV -C6B1 C6CB LVT -C6CC LV -C6CD C6E7 LVT -C6E8 LV -C6E9 C703 LVT -C704 LV -C705 C71F LVT -C720 LV -C721 C73B LVT -C73C LV -C73D C757 LVT -C758 LV -C759 C773 LVT -C774 LV -C775 C78F LVT -C790 LV -C791 C7AB LVT -C7AC LV -C7AD C7C7 LVT -C7C8 LV -C7C9 C7E3 LVT -C7E4 LV -C7E5 C7FF LVT -C800 LV -C801 C81B LVT -C81C LV -C81D C837 LVT -C838 LV -C839 C853 LVT -C854 LV -C855 C86F LVT -C870 LV -C871 C88B LVT -C88C LV -C88D C8A7 LVT -C8A8 LV -C8A9 C8C3 LVT -C8C4 LV -C8C5 C8DF LVT -C8E0 LV -C8E1 C8FB LVT -C8FC LV -C8FD C917 LVT -C918 LV -C919 C933 LVT -C934 LV -C935 C94F LVT -C950 LV -C951 C96B LVT -C96C LV -C96D C987 LVT -C988 LV -C989 C9A3 LVT -C9A4 LV -C9A5 C9BF LVT -C9C0 LV -C9C1 C9DB LVT -C9DC LV -C9DD C9F7 LVT -C9F8 LV -C9F9 CA13 LVT -CA14 LV -CA15 CA2F LVT -CA30 LV -CA31 CA4B LVT -CA4C LV -CA4D CA67 LVT -CA68 LV -CA69 CA83 LVT -CA84 LV -CA85 CA9F LVT -CAA0 LV -CAA1 CABB LVT -CABC LV -CABD CAD7 LVT -CAD8 LV -CAD9 CAF3 LVT -CAF4 LV -CAF5 CB0F LVT -CB10 LV -CB11 CB2B LVT -CB2C LV -CB2D CB47 LVT -CB48 LV -CB49 CB63 LVT -CB64 LV -CB65 CB7F LVT -CB80 LV -CB81 CB9B LVT -CB9C LV -CB9D CBB7 LVT -CBB8 LV -CBB9 CBD3 LVT -CBD4 LV -CBD5 CBEF LVT -CBF0 LV -CBF1 CC0B LVT -CC0C LV -CC0D CC27 LVT -CC28 LV -CC29 CC43 LVT -CC44 LV -CC45 CC5F LVT -CC60 LV -CC61 CC7B LVT -CC7C LV -CC7D CC97 LVT -CC98 LV -CC99 CCB3 LVT -CCB4 LV -CCB5 CCCF LVT -CCD0 LV -CCD1 CCEB LVT -CCEC LV -CCED CD07 LVT -CD08 LV -CD09 CD23 LVT -CD24 LV -CD25 CD3F LVT -CD40 LV -CD41 CD5B LVT -CD5C LV -CD5D CD77 LVT -CD78 LV -CD79 CD93 LVT -CD94 LV -CD95 CDAF LVT -CDB0 LV -CDB1 CDCB LVT -CDCC LV -CDCD CDE7 LVT -CDE8 LV -CDE9 CE03 LVT -CE04 LV -CE05 CE1F LVT -CE20 LV -CE21 CE3B LVT -CE3C LV -CE3D CE57 LVT -CE58 LV -CE59 CE73 LVT -CE74 LV -CE75 CE8F LVT -CE90 LV -CE91 CEAB LVT -CEAC LV -CEAD CEC7 LVT -CEC8 LV -CEC9 CEE3 LVT -CEE4 LV -CEE5 CEFF LVT -CF00 LV -CF01 CF1B LVT -CF1C LV -CF1D CF37 LVT -CF38 LV -CF39 CF53 LVT -CF54 LV -CF55 CF6F LVT -CF70 LV -CF71 CF8B LVT -CF8C LV -CF8D CFA7 LVT -CFA8 LV -CFA9 CFC3 LVT -CFC4 LV -CFC5 CFDF LVT -CFE0 LV -CFE1 CFFB LVT -CFFC LV -CFFD D017 LVT -D018 LV -D019 D033 LVT -D034 LV -D035 D04F LVT -D050 LV -D051 D06B LVT -D06C LV -D06D D087 LVT -D088 LV -D089 D0A3 LVT -D0A4 LV -D0A5 D0BF LVT -D0C0 LV -D0C1 D0DB LVT -D0DC LV -D0DD D0F7 LVT -D0F8 LV -D0F9 D113 LVT -D114 LV -D115 D12F LVT -D130 LV -D131 D14B LVT -D14C LV -D14D D167 LVT -D168 LV -D169 D183 LVT -D184 LV -D185 D19F LVT -D1A0 LV -D1A1 D1BB LVT -D1BC LV -D1BD D1D7 LVT -D1D8 LV -D1D9 D1F3 LVT -D1F4 LV -D1F5 D20F LVT -D210 LV -D211 D22B LVT -D22C LV -D22D D247 LVT -D248 LV -D249 D263 LVT -D264 LV -D265 D27F LVT -D280 LV -D281 D29B LVT -D29C LV -D29D D2B7 LVT -D2B8 LV -D2B9 D2D3 LVT -D2D4 LV -D2D5 D2EF LVT -D2F0 LV -D2F1 D30B LVT -D30C LV -D30D D327 LVT -D328 LV -D329 D343 LVT -D344 LV -D345 D35F LVT -D360 LV -D361 D37B LVT -D37C LV -D37D D397 LVT -D398 LV -D399 D3B3 LVT -D3B4 LV -D3B5 D3CF LVT -D3D0 LV -D3D1 D3EB LVT -D3EC LV -D3ED D407 LVT -D408 LV -D409 D423 LVT -D424 LV -D425 D43F LVT -D440 LV -D441 D45B LVT -D45C LV -D45D D477 LVT -D478 LV -D479 D493 LVT -D494 LV -D495 D4AF LVT -D4B0 LV -D4B1 D4CB LVT -D4CC LV -D4CD D4E7 LVT -D4E8 LV -D4E9 D503 LVT -D504 LV -D505 D51F LVT -D520 LV -D521 D53B LVT -D53C LV -D53D D557 LVT -D558 LV -D559 D573 LVT -D574 LV -D575 D58F LVT -D590 LV -D591 D5AB LVT -D5AC LV -D5AD D5C7 LVT -D5C8 LV -D5C9 D5E3 LVT -D5E4 LV -D5E5 D5FF LVT -D600 LV -D601 D61B LVT -D61C LV -D61D D637 LVT -D638 LV -D639 D653 LVT -D654 LV -D655 D66F LVT -D670 LV -D671 D68B LVT -D68C LV -D68D D6A7 LVT -D6A8 LV -D6A9 D6C3 LVT -D6C4 LV -D6C5 D6DF LVT -D6E0 LV -D6E1 D6FB LVT -D6FC LV -D6FD D717 LVT -D718 LV -D719 D733 LVT -D734 LV -D735 D74F LVT -D750 LV -D751 D76B LVT -D76C LV -D76D D787 LVT -D788 LV -D789 D7A3 LVT -D7B0 D7C6 V -D7CB D7FB T -D800 DFFF Control -FB1E Extend -FE00 FE0F Extend -FE20 FE2F Extend -FEFF Control -FF9E FF9F Extend -FFF0 FFFB Control -101FD Extend -102E0 Extend -10376 1037A Extend -10A01 10A03 Extend -10A05 10A06 Extend -10A0C 10A0F Extend -10A38 10A3A Extend -10A3F Extend -10AE5 10AE6 Extend -11000 SpacingMark -11001 Extend -11002 SpacingMark -11038 11046 Extend -1107F 11081 Extend -11082 SpacingMark -110B0 110B2 SpacingMark -110B3 110B6 Extend -110B7 110B8 SpacingMark -110B9 110BA Extend -110BD Control -11100 11102 Extend -11127 1112B Extend -1112C SpacingMark -1112D 11134 Extend -11173 Extend -11180 11181 Extend -11182 SpacingMark -111B3 111B5 SpacingMark -111B6 111BE Extend -111BF 111C0 SpacingMark -111CA 111CC Extend -1122C 1122E SpacingMark -1122F 11231 Extend -11232 11233 SpacingMark -11234 Extend -11235 SpacingMark -11236 11237 Extend -112DF Extend -112E0 112E2 SpacingMark -112E3 112EA Extend -11300 11301 Extend -11302 11303 SpacingMark -1133C Extend -1133E Extend -1133F SpacingMark -11340 Extend -11341 11344 SpacingMark -11347 11348 SpacingMark -1134B 1134D SpacingMark -11357 Extend -11362 11363 SpacingMark -11366 1136C Extend -11370 11374 Extend -114B0 Extend -114B1 114B2 SpacingMark -114B3 114B8 Extend -114B9 SpacingMark -114BA Extend -114BB 114BC SpacingMark -114BD Extend -114BE SpacingMark -114BF 114C0 Extend -114C1 SpacingMark -114C2 114C3 Extend -115AF Extend -115B0 115B1 SpacingMark -115B2 115B5 Extend -115B8 115BB SpacingMark -115BC 115BD Extend -115BE SpacingMark -115BF 115C0 Extend -115DC 115DD Extend -11630 11632 SpacingMark -11633 1163A Extend -1163B 1163C SpacingMark -1163D Extend -1163E SpacingMark -1163F 11640 Extend -116AB Extend -116AC SpacingMark -116AD Extend -116AE 116AF SpacingMark -116B0 116B5 Extend -116B6 SpacingMark -116B7 Extend -1171D 1171F Extend -11720 11721 SpacingMark -11722 11725 Extend -11726 SpacingMark -11727 1172B Extend -16AF0 16AF4 Extend -16B30 16B36 Extend -16F51 16F7E SpacingMark -16F8F 16F92 Extend -1BC9D 1BC9E Extend -1BCA0 1BCA3 Control -1D165 Extend -1D166 SpacingMark -1D167 1D169 Extend -1D16D SpacingMark -1D16E 1D172 Extend -1D173 1D17A Control -1D17B 1D182 Extend -1D185 1D18B Extend -1D1AA 1D1AD Extend -1D242 1D244 Extend -1DA00 1DA36 Extend -1DA3B 1DA6C Extend -1DA75 Extend -1DA84 Extend -1DA9B 1DA9F Extend -1DAA1 1DAAF Extend -1E8D0 1E8D6 Extend -1F1E6 1F1FF Regional_Indicator -E0000 E00FF Control -E0100 E01EF Extend -E01F0 E0FFF Control -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Gc.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Gc.pl deleted file mode 100644 index cd8ca282..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Gc.pl +++ /dev/null @@ -1,2973 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToGc'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToGc'}{'missing'} = 'Cn'; - -return <<'END'; -0 1F Cc -20 Zs -21 23 Po -24 Sc -25 27 Po -28 Ps -29 Pe -2A Po -2B Sm -2C Po -2D Pd -2E 2F Po -30 39 Nd -3A 3B Po -3C 3E Sm -3F 40 Po -41 5A Lu -5B Ps -5C Po -5D Pe -5E Sk -5F Pc -60 Sk -61 7A Ll -7B Ps -7C Sm -7D Pe -7E Sm -7F 9F Cc -A0 Zs -A1 Po -A2 A5 Sc -A6 So -A7 Po -A8 Sk -A9 So -AA Lo -AB Pi -AC Sm -AD Cf -AE So -AF Sk -B0 So -B1 Sm -B2 B3 No -B4 Sk -B5 Ll -B6 B7 Po -B8 Sk -B9 No -BA Lo -BB Pf -BC BE No -BF Po -C0 D6 Lu -D7 Sm -D8 DE Lu -DF F6 Ll -F7 Sm -F8 FF Ll -100 Lu -101 Ll -102 Lu -103 Ll -104 Lu -105 Ll -106 Lu -107 Ll -108 Lu -109 Ll -10A Lu -10B Ll -10C Lu -10D Ll -10E Lu -10F Ll -110 Lu -111 Ll -112 Lu -113 Ll -114 Lu -115 Ll -116 Lu -117 Ll -118 Lu -119 Ll -11A Lu -11B Ll -11C Lu -11D Ll -11E Lu -11F Ll -120 Lu -121 Ll -122 Lu -123 Ll -124 Lu -125 Ll -126 Lu -127 Ll -128 Lu -129 Ll -12A Lu -12B Ll -12C Lu -12D Ll -12E Lu -12F Ll -130 Lu -131 Ll -132 Lu -133 Ll -134 Lu -135 Ll -136 Lu -137 138 Ll -139 Lu -13A Ll -13B Lu -13C Ll -13D Lu -13E Ll -13F Lu -140 Ll -141 Lu -142 Ll -143 Lu -144 Ll -145 Lu -146 Ll -147 Lu -148 149 Ll -14A Lu -14B Ll -14C Lu -14D Ll -14E Lu -14F Ll -150 Lu -151 Ll -152 Lu -153 Ll -154 Lu -155 Ll -156 Lu -157 Ll -158 Lu -159 Ll -15A Lu -15B Ll -15C Lu -15D Ll -15E Lu -15F Ll -160 Lu -161 Ll -162 Lu -163 Ll -164 Lu -165 Ll -166 Lu -167 Ll -168 Lu -169 Ll -16A Lu -16B Ll -16C Lu -16D Ll -16E Lu -16F Ll -170 Lu -171 Ll -172 Lu -173 Ll -174 Lu -175 Ll -176 Lu -177 Ll -178 179 Lu -17A Ll -17B Lu -17C Ll -17D Lu -17E 180 Ll -181 182 Lu -183 Ll -184 Lu -185 Ll -186 187 Lu -188 Ll -189 18B Lu -18C 18D Ll -18E 191 Lu -192 Ll -193 194 Lu -195 Ll -196 198 Lu -199 19B Ll -19C 19D Lu -19E Ll -19F 1A0 Lu -1A1 Ll -1A2 Lu -1A3 Ll -1A4 Lu -1A5 Ll -1A6 1A7 Lu -1A8 Ll -1A9 Lu -1AA 1AB Ll -1AC Lu -1AD Ll -1AE 1AF Lu -1B0 Ll -1B1 1B3 Lu -1B4 Ll -1B5 Lu -1B6 Ll -1B7 1B8 Lu -1B9 1BA Ll -1BB Lo -1BC Lu -1BD 1BF Ll -1C0 1C3 Lo -1C4 Lu -1C5 Lt -1C6 Ll -1C7 Lu -1C8 Lt -1C9 Ll -1CA Lu -1CB Lt -1CC Ll -1CD Lu -1CE Ll -1CF Lu -1D0 Ll -1D1 Lu -1D2 Ll -1D3 Lu -1D4 Ll -1D5 Lu -1D6 Ll -1D7 Lu -1D8 Ll -1D9 Lu -1DA Ll -1DB Lu -1DC 1DD Ll -1DE Lu -1DF Ll -1E0 Lu -1E1 Ll -1E2 Lu -1E3 Ll -1E4 Lu -1E5 Ll -1E6 Lu -1E7 Ll -1E8 Lu -1E9 Ll -1EA Lu -1EB Ll -1EC Lu -1ED Ll -1EE Lu -1EF 1F0 Ll -1F1 Lu -1F2 Lt -1F3 Ll -1F4 Lu -1F5 Ll -1F6 1F8 Lu -1F9 Ll -1FA Lu -1FB Ll -1FC Lu -1FD Ll -1FE Lu -1FF Ll -200 Lu -201 Ll -202 Lu -203 Ll -204 Lu -205 Ll -206 Lu -207 Ll -208 Lu -209 Ll -20A Lu -20B Ll -20C Lu -20D Ll -20E Lu -20F Ll -210 Lu -211 Ll -212 Lu -213 Ll -214 Lu -215 Ll -216 Lu -217 Ll -218 Lu -219 Ll -21A Lu -21B Ll -21C Lu -21D Ll -21E Lu -21F Ll -220 Lu -221 Ll -222 Lu -223 Ll -224 Lu -225 Ll -226 Lu -227 Ll -228 Lu -229 Ll -22A Lu -22B Ll -22C Lu -22D Ll -22E Lu -22F Ll -230 Lu -231 Ll -232 Lu -233 239 Ll -23A 23B Lu -23C Ll -23D 23E Lu -23F 240 Ll -241 Lu -242 Ll -243 246 Lu -247 Ll -248 Lu -249 Ll -24A Lu -24B Ll -24C Lu -24D Ll -24E Lu -24F 293 Ll -294 Lo -295 2AF Ll -2B0 2C1 Lm -2C2 2C5 Sk -2C6 2D1 Lm -2D2 2DF Sk -2E0 2E4 Lm -2E5 2EB Sk -2EC Lm -2ED Sk -2EE Lm -2EF 2FF Sk -300 36F Mn -370 Lu -371 Ll -372 Lu -373 Ll -374 Lm -375 Sk -376 Lu -377 Ll -37A Lm -37B 37D Ll -37E Po -37F Lu -384 385 Sk -386 Lu -387 Po -388 38A Lu -38C Lu -38E 38F Lu -390 Ll -391 3A1 Lu -3A3 3AB Lu -3AC 3CE Ll -3CF Lu -3D0 3D1 Ll -3D2 3D4 Lu -3D5 3D7 Ll -3D8 Lu -3D9 Ll -3DA Lu -3DB Ll -3DC Lu -3DD Ll -3DE Lu -3DF Ll -3E0 Lu -3E1 Ll -3E2 Lu -3E3 Ll -3E4 Lu -3E5 Ll -3E6 Lu -3E7 Ll -3E8 Lu -3E9 Ll -3EA Lu -3EB Ll -3EC Lu -3ED Ll -3EE Lu -3EF 3F3 Ll -3F4 Lu -3F5 Ll -3F6 Sm -3F7 Lu -3F8 Ll -3F9 3FA Lu -3FB 3FC Ll -3FD 42F Lu -430 45F Ll -460 Lu -461 Ll -462 Lu -463 Ll -464 Lu -465 Ll -466 Lu -467 Ll -468 Lu -469 Ll -46A Lu -46B Ll -46C Lu -46D Ll -46E Lu -46F Ll -470 Lu -471 Ll -472 Lu -473 Ll -474 Lu -475 Ll -476 Lu -477 Ll -478 Lu -479 Ll -47A Lu -47B Ll -47C Lu -47D Ll -47E Lu -47F Ll -480 Lu -481 Ll -482 So -483 487 Mn -488 489 Me -48A Lu -48B Ll -48C Lu -48D Ll -48E Lu -48F Ll -490 Lu -491 Ll -492 Lu -493 Ll -494 Lu -495 Ll -496 Lu -497 Ll -498 Lu -499 Ll -49A Lu -49B Ll -49C Lu -49D Ll -49E Lu -49F Ll -4A0 Lu -4A1 Ll -4A2 Lu -4A3 Ll -4A4 Lu -4A5 Ll -4A6 Lu -4A7 Ll -4A8 Lu -4A9 Ll -4AA Lu -4AB Ll -4AC Lu -4AD Ll -4AE Lu -4AF Ll -4B0 Lu -4B1 Ll -4B2 Lu -4B3 Ll -4B4 Lu -4B5 Ll -4B6 Lu -4B7 Ll -4B8 Lu -4B9 Ll -4BA Lu -4BB Ll -4BC Lu -4BD Ll -4BE Lu -4BF Ll -4C0 4C1 Lu -4C2 Ll -4C3 Lu -4C4 Ll -4C5 Lu -4C6 Ll -4C7 Lu -4C8 Ll -4C9 Lu -4CA Ll -4CB Lu -4CC Ll -4CD Lu -4CE 4CF Ll -4D0 Lu -4D1 Ll -4D2 Lu -4D3 Ll -4D4 Lu -4D5 Ll -4D6 Lu -4D7 Ll -4D8 Lu -4D9 Ll -4DA Lu -4DB Ll -4DC Lu -4DD Ll -4DE Lu -4DF Ll -4E0 Lu -4E1 Ll -4E2 Lu -4E3 Ll -4E4 Lu -4E5 Ll -4E6 Lu -4E7 Ll -4E8 Lu -4E9 Ll -4EA Lu -4EB Ll -4EC Lu -4ED Ll -4EE Lu -4EF Ll -4F0 Lu -4F1 Ll -4F2 Lu -4F3 Ll -4F4 Lu -4F5 Ll -4F6 Lu -4F7 Ll -4F8 Lu -4F9 Ll -4FA Lu -4FB Ll -4FC Lu -4FD Ll -4FE Lu -4FF Ll -500 Lu -501 Ll -502 Lu -503 Ll -504 Lu -505 Ll -506 Lu -507 Ll -508 Lu -509 Ll -50A Lu -50B Ll -50C Lu -50D Ll -50E Lu -50F Ll -510 Lu -511 Ll -512 Lu -513 Ll -514 Lu -515 Ll -516 Lu -517 Ll -518 Lu -519 Ll -51A Lu -51B Ll -51C Lu -51D Ll -51E Lu -51F Ll -520 Lu -521 Ll -522 Lu -523 Ll -524 Lu -525 Ll -526 Lu -527 Ll -528 Lu -529 Ll -52A Lu -52B Ll -52C Lu -52D Ll -52E Lu -52F Ll -531 556 Lu -559 Lm -55A 55F Po -561 587 Ll -589 Po -58A Pd -58D 58E So -58F Sc -591 5BD Mn -5BE Pd -5BF Mn -5C0 Po -5C1 5C2 Mn -5C3 Po -5C4 5C5 Mn -5C6 Po -5C7 Mn -5D0 5EA Lo -5F0 5F2 Lo -5F3 5F4 Po -600 605 Cf -606 608 Sm -609 60A Po -60B Sc -60C 60D Po -60E 60F So -610 61A Mn -61B Po -61C Cf -61E 61F Po -620 63F Lo -640 Lm -641 64A Lo -64B 65F Mn -660 669 Nd -66A 66D Po -66E 66F Lo -670 Mn -671 6D3 Lo -6D4 Po -6D5 Lo -6D6 6DC Mn -6DD Cf -6DE So -6DF 6E4 Mn -6E5 6E6 Lm -6E7 6E8 Mn -6E9 So -6EA 6ED Mn -6EE 6EF Lo -6F0 6F9 Nd -6FA 6FC Lo -6FD 6FE So -6FF Lo -700 70D Po -70F Cf -710 Lo -711 Mn -712 72F Lo -730 74A Mn -74D 7A5 Lo -7A6 7B0 Mn -7B1 Lo -7C0 7C9 Nd -7CA 7EA Lo -7EB 7F3 Mn -7F4 7F5 Lm -7F6 So -7F7 7F9 Po -7FA Lm -800 815 Lo -816 819 Mn -81A Lm -81B 823 Mn -824 Lm -825 827 Mn -828 Lm -829 82D Mn -830 83E Po -840 858 Lo -859 85B Mn -85E Po -8A0 8B4 Lo -8E3 902 Mn -903 Mc -904 939 Lo -93A Mn -93B Mc -93C Mn -93D Lo -93E 940 Mc -941 948 Mn -949 94C Mc -94D Mn -94E 94F Mc -950 Lo -951 957 Mn -958 961 Lo -962 963 Mn -964 965 Po -966 96F Nd -970 Po -971 Lm -972 980 Lo -981 Mn -982 983 Mc -985 98C Lo -98F 990 Lo -993 9A8 Lo -9AA 9B0 Lo -9B2 Lo -9B6 9B9 Lo -9BC Mn -9BD Lo -9BE 9C0 Mc -9C1 9C4 Mn -9C7 9C8 Mc -9CB 9CC Mc -9CD Mn -9CE Lo -9D7 Mc -9DC 9DD Lo -9DF 9E1 Lo -9E2 9E3 Mn -9E6 9EF Nd -9F0 9F1 Lo -9F2 9F3 Sc -9F4 9F9 No -9FA So -9FB Sc -A01 A02 Mn -A03 Mc -A05 A0A Lo -A0F A10 Lo -A13 A28 Lo -A2A A30 Lo -A32 A33 Lo -A35 A36 Lo -A38 A39 Lo -A3C Mn -A3E A40 Mc -A41 A42 Mn -A47 A48 Mn -A4B A4D Mn -A51 Mn -A59 A5C Lo -A5E Lo -A66 A6F Nd -A70 A71 Mn -A72 A74 Lo -A75 Mn -A81 A82 Mn -A83 Mc -A85 A8D Lo -A8F A91 Lo -A93 AA8 Lo -AAA AB0 Lo -AB2 AB3 Lo -AB5 AB9 Lo -ABC Mn -ABD Lo -ABE AC0 Mc -AC1 AC5 Mn -AC7 AC8 Mn -AC9 Mc -ACB ACC Mc -ACD Mn -AD0 Lo -AE0 AE1 Lo -AE2 AE3 Mn -AE6 AEF Nd -AF0 Po -AF1 Sc -AF9 Lo -B01 Mn -B02 B03 Mc -B05 B0C Lo -B0F B10 Lo -B13 B28 Lo -B2A B30 Lo -B32 B33 Lo -B35 B39 Lo -B3C Mn -B3D Lo -B3E Mc -B3F Mn -B40 Mc -B41 B44 Mn -B47 B48 Mc -B4B B4C Mc -B4D Mn -B56 Mn -B57 Mc -B5C B5D Lo -B5F B61 Lo -B62 B63 Mn -B66 B6F Nd -B70 So -B71 Lo -B72 B77 No -B82 Mn -B83 Lo -B85 B8A Lo -B8E B90 Lo -B92 B95 Lo -B99 B9A Lo -B9C Lo -B9E B9F Lo -BA3 BA4 Lo -BA8 BAA Lo -BAE BB9 Lo -BBE BBF Mc -BC0 Mn -BC1 BC2 Mc -BC6 BC8 Mc -BCA BCC Mc -BCD Mn -BD0 Lo -BD7 Mc -BE6 BEF Nd -BF0 BF2 No -BF3 BF8 So -BF9 Sc -BFA So -C00 Mn -C01 C03 Mc -C05 C0C Lo -C0E C10 Lo -C12 C28 Lo -C2A C39 Lo -C3D Lo -C3E C40 Mn -C41 C44 Mc -C46 C48 Mn -C4A C4D Mn -C55 C56 Mn -C58 C5A Lo -C60 C61 Lo -C62 C63 Mn -C66 C6F Nd -C78 C7E No -C7F So -C81 Mn -C82 C83 Mc -C85 C8C Lo -C8E C90 Lo -C92 CA8 Lo -CAA CB3 Lo -CB5 CB9 Lo -CBC Mn -CBD Lo -CBE Mc -CBF Mn -CC0 CC4 Mc -CC6 Mn -CC7 CC8 Mc -CCA CCB Mc -CCC CCD Mn -CD5 CD6 Mc -CDE Lo -CE0 CE1 Lo -CE2 CE3 Mn -CE6 CEF Nd -CF1 CF2 Lo -D01 Mn -D02 D03 Mc -D05 D0C Lo -D0E D10 Lo -D12 D3A Lo -D3D Lo -D3E D40 Mc -D41 D44 Mn -D46 D48 Mc -D4A D4C Mc -D4D Mn -D4E Lo -D57 Mc -D5F D61 Lo -D62 D63 Mn -D66 D6F Nd -D70 D75 No -D79 So -D7A D7F Lo -D82 D83 Mc -D85 D96 Lo -D9A DB1 Lo -DB3 DBB Lo -DBD Lo -DC0 DC6 Lo -DCA Mn -DCF DD1 Mc -DD2 DD4 Mn -DD6 Mn -DD8 DDF Mc -DE6 DEF Nd -DF2 DF3 Mc -DF4 Po -E01 E30 Lo -E31 Mn -E32 E33 Lo -E34 E3A Mn -E3F Sc -E40 E45 Lo -E46 Lm -E47 E4E Mn -E4F Po -E50 E59 Nd -E5A E5B Po -E81 E82 Lo -E84 Lo -E87 E88 Lo -E8A Lo -E8D Lo -E94 E97 Lo -E99 E9F Lo -EA1 EA3 Lo -EA5 Lo -EA7 Lo -EAA EAB Lo -EAD EB0 Lo -EB1 Mn -EB2 EB3 Lo -EB4 EB9 Mn -EBB EBC Mn -EBD Lo -EC0 EC4 Lo -EC6 Lm -EC8 ECD Mn -ED0 ED9 Nd -EDC EDF Lo -F00 Lo -F01 F03 So -F04 F12 Po -F13 So -F14 Po -F15 F17 So -F18 F19 Mn -F1A F1F So -F20 F29 Nd -F2A F33 No -F34 So -F35 Mn -F36 So -F37 Mn -F38 So -F39 Mn -F3A Ps -F3B Pe -F3C Ps -F3D Pe -F3E F3F Mc -F40 F47 Lo -F49 F6C Lo -F71 F7E Mn -F7F Mc -F80 F84 Mn -F85 Po -F86 F87 Mn -F88 F8C Lo -F8D F97 Mn -F99 FBC Mn -FBE FC5 So -FC6 Mn -FC7 FCC So -FCE FCF So -FD0 FD4 Po -FD5 FD8 So -FD9 FDA Po -1000 102A Lo -102B 102C Mc -102D 1030 Mn -1031 Mc -1032 1037 Mn -1038 Mc -1039 103A Mn -103B 103C Mc -103D 103E Mn -103F Lo -1040 1049 Nd -104A 104F Po -1050 1055 Lo -1056 1057 Mc -1058 1059 Mn -105A 105D Lo -105E 1060 Mn -1061 Lo -1062 1064 Mc -1065 1066 Lo -1067 106D Mc -106E 1070 Lo -1071 1074 Mn -1075 1081 Lo -1082 Mn -1083 1084 Mc -1085 1086 Mn -1087 108C Mc -108D Mn -108E Lo -108F Mc -1090 1099 Nd -109A 109C Mc -109D Mn -109E 109F So -10A0 10C5 Lu -10C7 Lu -10CD Lu -10D0 10FA Lo -10FB Po -10FC Lm -10FD 1248 Lo -124A 124D Lo -1250 1256 Lo -1258 Lo -125A 125D Lo -1260 1288 Lo -128A 128D Lo -1290 12B0 Lo -12B2 12B5 Lo -12B8 12BE Lo -12C0 Lo -12C2 12C5 Lo -12C8 12D6 Lo -12D8 1310 Lo -1312 1315 Lo -1318 135A Lo -135D 135F Mn -1360 1368 Po -1369 137C No -1380 138F Lo -1390 1399 So -13A0 13F5 Lu -13F8 13FD Ll -1400 Pd -1401 166C Lo -166D 166E Po -166F 167F Lo -1680 Zs -1681 169A Lo -169B Ps -169C Pe -16A0 16EA Lo -16EB 16ED Po -16EE 16F0 Nl -16F1 16F8 Lo -1700 170C Lo -170E 1711 Lo -1712 1714 Mn -1720 1731 Lo -1732 1734 Mn -1735 1736 Po -1740 1751 Lo -1752 1753 Mn -1760 176C Lo -176E 1770 Lo -1772 1773 Mn -1780 17B3 Lo -17B4 17B5 Mn -17B6 Mc -17B7 17BD Mn -17BE 17C5 Mc -17C6 Mn -17C7 17C8 Mc -17C9 17D3 Mn -17D4 17D6 Po -17D7 Lm -17D8 17DA Po -17DB Sc -17DC Lo -17DD Mn -17E0 17E9 Nd -17F0 17F9 No -1800 1805 Po -1806 Pd -1807 180A Po -180B 180D Mn -180E Cf -1810 1819 Nd -1820 1842 Lo -1843 Lm -1844 1877 Lo -1880 18A8 Lo -18A9 Mn -18AA Lo -18B0 18F5 Lo -1900 191E Lo -1920 1922 Mn -1923 1926 Mc -1927 1928 Mn -1929 192B Mc -1930 1931 Mc -1932 Mn -1933 1938 Mc -1939 193B Mn -1940 So -1944 1945 Po -1946 194F Nd -1950 196D Lo -1970 1974 Lo -1980 19AB Lo -19B0 19C9 Lo -19D0 19D9 Nd -19DA No -19DE 19FF So -1A00 1A16 Lo -1A17 1A18 Mn -1A19 1A1A Mc -1A1B Mn -1A1E 1A1F Po -1A20 1A54 Lo -1A55 Mc -1A56 Mn -1A57 Mc -1A58 1A5E Mn -1A60 Mn -1A61 Mc -1A62 Mn -1A63 1A64 Mc -1A65 1A6C Mn -1A6D 1A72 Mc -1A73 1A7C Mn -1A7F Mn -1A80 1A89 Nd -1A90 1A99 Nd -1AA0 1AA6 Po -1AA7 Lm -1AA8 1AAD Po -1AB0 1ABD Mn -1ABE Me -1B00 1B03 Mn -1B04 Mc -1B05 1B33 Lo -1B34 Mn -1B35 Mc -1B36 1B3A Mn -1B3B Mc -1B3C Mn -1B3D 1B41 Mc -1B42 Mn -1B43 1B44 Mc -1B45 1B4B Lo -1B50 1B59 Nd -1B5A 1B60 Po -1B61 1B6A So -1B6B 1B73 Mn -1B74 1B7C So -1B80 1B81 Mn -1B82 Mc -1B83 1BA0 Lo -1BA1 Mc -1BA2 1BA5 Mn -1BA6 1BA7 Mc -1BA8 1BA9 Mn -1BAA Mc -1BAB 1BAD Mn -1BAE 1BAF Lo -1BB0 1BB9 Nd -1BBA 1BE5 Lo -1BE6 Mn -1BE7 Mc -1BE8 1BE9 Mn -1BEA 1BEC Mc -1BED Mn -1BEE Mc -1BEF 1BF1 Mn -1BF2 1BF3 Mc -1BFC 1BFF Po -1C00 1C23 Lo -1C24 1C2B Mc -1C2C 1C33 Mn -1C34 1C35 Mc -1C36 1C37 Mn -1C3B 1C3F Po -1C40 1C49 Nd -1C4D 1C4F Lo -1C50 1C59 Nd -1C5A 1C77 Lo -1C78 1C7D Lm -1C7E 1C7F Po -1CC0 1CC7 Po -1CD0 1CD2 Mn -1CD3 Po -1CD4 1CE0 Mn -1CE1 Mc -1CE2 1CE8 Mn -1CE9 1CEC Lo -1CED Mn -1CEE 1CF1 Lo -1CF2 1CF3 Mc -1CF4 Mn -1CF5 1CF6 Lo -1CF8 1CF9 Mn -1D00 1D2B Ll -1D2C 1D6A Lm -1D6B 1D77 Ll -1D78 Lm -1D79 1D9A Ll -1D9B 1DBF Lm -1DC0 1DF5 Mn -1DFC 1DFF Mn -1E00 Lu -1E01 Ll -1E02 Lu -1E03 Ll -1E04 Lu -1E05 Ll -1E06 Lu -1E07 Ll -1E08 Lu -1E09 Ll -1E0A Lu -1E0B Ll -1E0C Lu -1E0D Ll -1E0E Lu -1E0F Ll -1E10 Lu -1E11 Ll -1E12 Lu -1E13 Ll -1E14 Lu -1E15 Ll -1E16 Lu -1E17 Ll -1E18 Lu -1E19 Ll -1E1A Lu -1E1B Ll -1E1C Lu -1E1D Ll -1E1E Lu -1E1F Ll -1E20 Lu -1E21 Ll -1E22 Lu -1E23 Ll -1E24 Lu -1E25 Ll -1E26 Lu -1E27 Ll -1E28 Lu -1E29 Ll -1E2A Lu -1E2B Ll -1E2C Lu -1E2D Ll -1E2E Lu -1E2F Ll -1E30 Lu -1E31 Ll -1E32 Lu -1E33 Ll -1E34 Lu -1E35 Ll -1E36 Lu -1E37 Ll -1E38 Lu -1E39 Ll -1E3A Lu -1E3B Ll -1E3C Lu -1E3D Ll -1E3E Lu -1E3F Ll -1E40 Lu -1E41 Ll -1E42 Lu -1E43 Ll -1E44 Lu -1E45 Ll -1E46 Lu -1E47 Ll -1E48 Lu -1E49 Ll -1E4A Lu -1E4B Ll -1E4C Lu -1E4D Ll -1E4E Lu -1E4F Ll -1E50 Lu -1E51 Ll -1E52 Lu -1E53 Ll -1E54 Lu -1E55 Ll -1E56 Lu -1E57 Ll -1E58 Lu -1E59 Ll -1E5A Lu -1E5B Ll -1E5C Lu -1E5D Ll -1E5E Lu -1E5F Ll -1E60 Lu -1E61 Ll -1E62 Lu -1E63 Ll -1E64 Lu -1E65 Ll -1E66 Lu -1E67 Ll -1E68 Lu -1E69 Ll -1E6A Lu -1E6B Ll -1E6C Lu -1E6D Ll -1E6E Lu -1E6F Ll -1E70 Lu -1E71 Ll -1E72 Lu -1E73 Ll -1E74 Lu -1E75 Ll -1E76 Lu -1E77 Ll -1E78 Lu -1E79 Ll -1E7A Lu -1E7B Ll -1E7C Lu -1E7D Ll -1E7E Lu -1E7F Ll -1E80 Lu -1E81 Ll -1E82 Lu -1E83 Ll -1E84 Lu -1E85 Ll -1E86 Lu -1E87 Ll -1E88 Lu -1E89 Ll -1E8A Lu -1E8B Ll -1E8C Lu -1E8D Ll -1E8E Lu -1E8F Ll -1E90 Lu -1E91 Ll -1E92 Lu -1E93 Ll -1E94 Lu -1E95 1E9D Ll -1E9E Lu -1E9F Ll -1EA0 Lu -1EA1 Ll -1EA2 Lu -1EA3 Ll -1EA4 Lu -1EA5 Ll -1EA6 Lu -1EA7 Ll -1EA8 Lu -1EA9 Ll -1EAA Lu -1EAB Ll -1EAC Lu -1EAD Ll -1EAE Lu -1EAF Ll -1EB0 Lu -1EB1 Ll -1EB2 Lu -1EB3 Ll -1EB4 Lu -1EB5 Ll -1EB6 Lu -1EB7 Ll -1EB8 Lu -1EB9 Ll -1EBA Lu -1EBB Ll -1EBC Lu -1EBD Ll -1EBE Lu -1EBF Ll -1EC0 Lu -1EC1 Ll -1EC2 Lu -1EC3 Ll -1EC4 Lu -1EC5 Ll -1EC6 Lu -1EC7 Ll -1EC8 Lu -1EC9 Ll -1ECA Lu -1ECB Ll -1ECC Lu -1ECD Ll -1ECE Lu -1ECF Ll -1ED0 Lu -1ED1 Ll -1ED2 Lu -1ED3 Ll -1ED4 Lu -1ED5 Ll -1ED6 Lu -1ED7 Ll -1ED8 Lu -1ED9 Ll -1EDA Lu -1EDB Ll -1EDC Lu -1EDD Ll -1EDE Lu -1EDF Ll -1EE0 Lu -1EE1 Ll -1EE2 Lu -1EE3 Ll -1EE4 Lu -1EE5 Ll -1EE6 Lu -1EE7 Ll -1EE8 Lu -1EE9 Ll -1EEA Lu -1EEB Ll -1EEC Lu -1EED Ll -1EEE Lu -1EEF Ll -1EF0 Lu -1EF1 Ll -1EF2 Lu -1EF3 Ll -1EF4 Lu -1EF5 Ll -1EF6 Lu -1EF7 Ll -1EF8 Lu -1EF9 Ll -1EFA Lu -1EFB Ll -1EFC Lu -1EFD Ll -1EFE Lu -1EFF 1F07 Ll -1F08 1F0F Lu -1F10 1F15 Ll -1F18 1F1D Lu -1F20 1F27 Ll -1F28 1F2F Lu -1F30 1F37 Ll -1F38 1F3F Lu -1F40 1F45 Ll -1F48 1F4D Lu -1F50 1F57 Ll -1F59 Lu -1F5B Lu -1F5D Lu -1F5F Lu -1F60 1F67 Ll -1F68 1F6F Lu -1F70 1F7D Ll -1F80 1F87 Ll -1F88 1F8F Lt -1F90 1F97 Ll -1F98 1F9F Lt -1FA0 1FA7 Ll -1FA8 1FAF Lt -1FB0 1FB4 Ll -1FB6 1FB7 Ll -1FB8 1FBB Lu -1FBC Lt -1FBD Sk -1FBE Ll -1FBF 1FC1 Sk -1FC2 1FC4 Ll -1FC6 1FC7 Ll -1FC8 1FCB Lu -1FCC Lt -1FCD 1FCF Sk -1FD0 1FD3 Ll -1FD6 1FD7 Ll -1FD8 1FDB Lu -1FDD 1FDF Sk -1FE0 1FE7 Ll -1FE8 1FEC Lu -1FED 1FEF Sk -1FF2 1FF4 Ll -1FF6 1FF7 Ll -1FF8 1FFB Lu -1FFC Lt -1FFD 1FFE Sk -2000 200A Zs -200B 200F Cf -2010 2015 Pd -2016 2017 Po -2018 Pi -2019 Pf -201A Ps -201B 201C Pi -201D Pf -201E Ps -201F Pi -2020 2027 Po -2028 Zl -2029 Zp -202A 202E Cf -202F Zs -2030 2038 Po -2039 Pi -203A Pf -203B 203E Po -203F 2040 Pc -2041 2043 Po -2044 Sm -2045 Ps -2046 Pe -2047 2051 Po -2052 Sm -2053 Po -2054 Pc -2055 205E Po -205F Zs -2060 2064 Cf -2066 206F Cf -2070 No -2071 Lm -2074 2079 No -207A 207C Sm -207D Ps -207E Pe -207F Lm -2080 2089 No -208A 208C Sm -208D Ps -208E Pe -2090 209C Lm -20A0 20BE Sc -20D0 20DC Mn -20DD 20E0 Me -20E1 Mn -20E2 20E4 Me -20E5 20F0 Mn -2100 2101 So -2102 Lu -2103 2106 So -2107 Lu -2108 2109 So -210A Ll -210B 210D Lu -210E 210F Ll -2110 2112 Lu -2113 Ll -2114 So -2115 Lu -2116 2117 So -2118 Sm -2119 211D Lu -211E 2123 So -2124 Lu -2125 So -2126 Lu -2127 So -2128 Lu -2129 So -212A 212D Lu -212E So -212F Ll -2130 2133 Lu -2134 Ll -2135 2138 Lo -2139 Ll -213A 213B So -213C 213D Ll -213E 213F Lu -2140 2144 Sm -2145 Lu -2146 2149 Ll -214A So -214B Sm -214C 214D So -214E Ll -214F So -2150 215F No -2160 2182 Nl -2183 Lu -2184 Ll -2185 2188 Nl -2189 No -218A 218B So -2190 2194 Sm -2195 2199 So -219A 219B Sm -219C 219F So -21A0 Sm -21A1 21A2 So -21A3 Sm -21A4 21A5 So -21A6 Sm -21A7 21AD So -21AE Sm -21AF 21CD So -21CE 21CF Sm -21D0 21D1 So -21D2 Sm -21D3 So -21D4 Sm -21D5 21F3 So -21F4 22FF Sm -2300 2307 So -2308 Ps -2309 Pe -230A Ps -230B Pe -230C 231F So -2320 2321 Sm -2322 2328 So -2329 Ps -232A Pe -232B 237B So -237C Sm -237D 239A So -239B 23B3 Sm -23B4 23DB So -23DC 23E1 Sm -23E2 23FA So -2400 2426 So -2440 244A So -2460 249B No -249C 24E9 So -24EA 24FF No -2500 25B6 So -25B7 Sm -25B8 25C0 So -25C1 Sm -25C2 25F7 So -25F8 25FF Sm -2600 266E So -266F Sm -2670 2767 So -2768 Ps -2769 Pe -276A Ps -276B Pe -276C Ps -276D Pe -276E Ps -276F Pe -2770 Ps -2771 Pe -2772 Ps -2773 Pe -2774 Ps -2775 Pe -2776 2793 No -2794 27BF So -27C0 27C4 Sm -27C5 Ps -27C6 Pe -27C7 27E5 Sm -27E6 Ps -27E7 Pe -27E8 Ps -27E9 Pe -27EA Ps -27EB Pe -27EC Ps -27ED Pe -27EE Ps -27EF Pe -27F0 27FF Sm -2800 28FF So -2900 2982 Sm -2983 Ps -2984 Pe -2985 Ps -2986 Pe -2987 Ps -2988 Pe -2989 Ps -298A Pe -298B Ps -298C Pe -298D Ps -298E Pe -298F Ps -2990 Pe -2991 Ps -2992 Pe -2993 Ps -2994 Pe -2995 Ps -2996 Pe -2997 Ps -2998 Pe -2999 29D7 Sm -29D8 Ps -29D9 Pe -29DA Ps -29DB Pe -29DC 29FB Sm -29FC Ps -29FD Pe -29FE 2AFF Sm -2B00 2B2F So -2B30 2B44 Sm -2B45 2B46 So -2B47 2B4C Sm -2B4D 2B73 So -2B76 2B95 So -2B98 2BB9 So -2BBD 2BC8 So -2BCA 2BD1 So -2BEC 2BEF So -2C00 2C2E Lu -2C30 2C5E Ll -2C60 Lu -2C61 Ll -2C62 2C64 Lu -2C65 2C66 Ll -2C67 Lu -2C68 Ll -2C69 Lu -2C6A Ll -2C6B Lu -2C6C Ll -2C6D 2C70 Lu -2C71 Ll -2C72 Lu -2C73 2C74 Ll -2C75 Lu -2C76 2C7B Ll -2C7C 2C7D Lm -2C7E 2C80 Lu -2C81 Ll -2C82 Lu -2C83 Ll -2C84 Lu -2C85 Ll -2C86 Lu -2C87 Ll -2C88 Lu -2C89 Ll -2C8A Lu -2C8B Ll -2C8C Lu -2C8D Ll -2C8E Lu -2C8F Ll -2C90 Lu -2C91 Ll -2C92 Lu -2C93 Ll -2C94 Lu -2C95 Ll -2C96 Lu -2C97 Ll -2C98 Lu -2C99 Ll -2C9A Lu -2C9B Ll -2C9C Lu -2C9D Ll -2C9E Lu -2C9F Ll -2CA0 Lu -2CA1 Ll -2CA2 Lu -2CA3 Ll -2CA4 Lu -2CA5 Ll -2CA6 Lu -2CA7 Ll -2CA8 Lu -2CA9 Ll -2CAA Lu -2CAB Ll -2CAC Lu -2CAD Ll -2CAE Lu -2CAF Ll -2CB0 Lu -2CB1 Ll -2CB2 Lu -2CB3 Ll -2CB4 Lu -2CB5 Ll -2CB6 Lu -2CB7 Ll -2CB8 Lu -2CB9 Ll -2CBA Lu -2CBB Ll -2CBC Lu -2CBD Ll -2CBE Lu -2CBF Ll -2CC0 Lu -2CC1 Ll -2CC2 Lu -2CC3 Ll -2CC4 Lu -2CC5 Ll -2CC6 Lu -2CC7 Ll -2CC8 Lu -2CC9 Ll -2CCA Lu -2CCB Ll -2CCC Lu -2CCD Ll -2CCE Lu -2CCF Ll -2CD0 Lu -2CD1 Ll -2CD2 Lu -2CD3 Ll -2CD4 Lu -2CD5 Ll -2CD6 Lu -2CD7 Ll -2CD8 Lu -2CD9 Ll -2CDA Lu -2CDB Ll -2CDC Lu -2CDD Ll -2CDE Lu -2CDF Ll -2CE0 Lu -2CE1 Ll -2CE2 Lu -2CE3 2CE4 Ll -2CE5 2CEA So -2CEB Lu -2CEC Ll -2CED Lu -2CEE Ll -2CEF 2CF1 Mn -2CF2 Lu -2CF3 Ll -2CF9 2CFC Po -2CFD No -2CFE 2CFF Po -2D00 2D25 Ll -2D27 Ll -2D2D Ll -2D30 2D67 Lo -2D6F Lm -2D70 Po -2D7F Mn -2D80 2D96 Lo -2DA0 2DA6 Lo -2DA8 2DAE Lo -2DB0 2DB6 Lo -2DB8 2DBE Lo -2DC0 2DC6 Lo -2DC8 2DCE Lo -2DD0 2DD6 Lo -2DD8 2DDE Lo -2DE0 2DFF Mn -2E00 2E01 Po -2E02 Pi -2E03 Pf -2E04 Pi -2E05 Pf -2E06 2E08 Po -2E09 Pi -2E0A Pf -2E0B Po -2E0C Pi -2E0D Pf -2E0E 2E16 Po -2E17 Pd -2E18 2E19 Po -2E1A Pd -2E1B Po -2E1C Pi -2E1D Pf -2E1E 2E1F Po -2E20 Pi -2E21 Pf -2E22 Ps -2E23 Pe -2E24 Ps -2E25 Pe -2E26 Ps -2E27 Pe -2E28 Ps -2E29 Pe -2E2A 2E2E Po -2E2F Lm -2E30 2E39 Po -2E3A 2E3B Pd -2E3C 2E3F Po -2E40 Pd -2E41 Po -2E42 Ps -2E80 2E99 So -2E9B 2EF3 So -2F00 2FD5 So -2FF0 2FFB So -3000 Zs -3001 3003 Po -3004 So -3005 Lm -3006 Lo -3007 Nl -3008 Ps -3009 Pe -300A Ps -300B Pe -300C Ps -300D Pe -300E Ps -300F Pe -3010 Ps -3011 Pe -3012 3013 So -3014 Ps -3015 Pe -3016 Ps -3017 Pe -3018 Ps -3019 Pe -301A Ps -301B Pe -301C Pd -301D Ps -301E 301F Pe -3020 So -3021 3029 Nl -302A 302D Mn -302E 302F Mc -3030 Pd -3031 3035 Lm -3036 3037 So -3038 303A Nl -303B Lm -303C Lo -303D Po -303E 303F So -3041 3096 Lo -3099 309A Mn -309B 309C Sk -309D 309E Lm -309F Lo -30A0 Pd -30A1 30FA Lo -30FB Po -30FC 30FE Lm -30FF Lo -3105 312D Lo -3131 318E Lo -3190 3191 So -3192 3195 No -3196 319F So -31A0 31BA Lo -31C0 31E3 So -31F0 31FF Lo -3200 321E So -3220 3229 No -322A 3247 So -3248 324F No -3250 So -3251 325F No -3260 327F So -3280 3289 No -328A 32B0 So -32B1 32BF No -32C0 32FE So -3300 33FF So -3400 4DB5 Lo -4DC0 4DFF So -4E00 9FD5 Lo -A000 A014 Lo -A015 Lm -A016 A48C Lo -A490 A4C6 So -A4D0 A4F7 Lo -A4F8 A4FD Lm -A4FE A4FF Po -A500 A60B Lo -A60C Lm -A60D A60F Po -A610 A61F Lo -A620 A629 Nd -A62A A62B Lo -A640 Lu -A641 Ll -A642 Lu -A643 Ll -A644 Lu -A645 Ll -A646 Lu -A647 Ll -A648 Lu -A649 Ll -A64A Lu -A64B Ll -A64C Lu -A64D Ll -A64E Lu -A64F Ll -A650 Lu -A651 Ll -A652 Lu -A653 Ll -A654 Lu -A655 Ll -A656 Lu -A657 Ll -A658 Lu -A659 Ll -A65A Lu -A65B Ll -A65C Lu -A65D Ll -A65E Lu -A65F Ll -A660 Lu -A661 Ll -A662 Lu -A663 Ll -A664 Lu -A665 Ll -A666 Lu -A667 Ll -A668 Lu -A669 Ll -A66A Lu -A66B Ll -A66C Lu -A66D Ll -A66E Lo -A66F Mn -A670 A672 Me -A673 Po -A674 A67D Mn -A67E Po -A67F Lm -A680 Lu -A681 Ll -A682 Lu -A683 Ll -A684 Lu -A685 Ll -A686 Lu -A687 Ll -A688 Lu -A689 Ll -A68A Lu -A68B Ll -A68C Lu -A68D Ll -A68E Lu -A68F Ll -A690 Lu -A691 Ll -A692 Lu -A693 Ll -A694 Lu -A695 Ll -A696 Lu -A697 Ll -A698 Lu -A699 Ll -A69A Lu -A69B Ll -A69C A69D Lm -A69E A69F Mn -A6A0 A6E5 Lo -A6E6 A6EF Nl -A6F0 A6F1 Mn -A6F2 A6F7 Po -A700 A716 Sk -A717 A71F Lm -A720 A721 Sk -A722 Lu -A723 Ll -A724 Lu -A725 Ll -A726 Lu -A727 Ll -A728 Lu -A729 Ll -A72A Lu -A72B Ll -A72C Lu -A72D Ll -A72E Lu -A72F A731 Ll -A732 Lu -A733 Ll -A734 Lu -A735 Ll -A736 Lu -A737 Ll -A738 Lu -A739 Ll -A73A Lu -A73B Ll -A73C Lu -A73D Ll -A73E Lu -A73F Ll -A740 Lu -A741 Ll -A742 Lu -A743 Ll -A744 Lu -A745 Ll -A746 Lu -A747 Ll -A748 Lu -A749 Ll -A74A Lu -A74B Ll -A74C Lu -A74D Ll -A74E Lu -A74F Ll -A750 Lu -A751 Ll -A752 Lu -A753 Ll -A754 Lu -A755 Ll -A756 Lu -A757 Ll -A758 Lu -A759 Ll -A75A Lu -A75B Ll -A75C Lu -A75D Ll -A75E Lu -A75F Ll -A760 Lu -A761 Ll -A762 Lu -A763 Ll -A764 Lu -A765 Ll -A766 Lu -A767 Ll -A768 Lu -A769 Ll -A76A Lu -A76B Ll -A76C Lu -A76D Ll -A76E Lu -A76F Ll -A770 Lm -A771 A778 Ll -A779 Lu -A77A Ll -A77B Lu -A77C Ll -A77D A77E Lu -A77F Ll -A780 Lu -A781 Ll -A782 Lu -A783 Ll -A784 Lu -A785 Ll -A786 Lu -A787 Ll -A788 Lm -A789 A78A Sk -A78B Lu -A78C Ll -A78D Lu -A78E Ll -A78F Lo -A790 Lu -A791 Ll -A792 Lu -A793 A795 Ll -A796 Lu -A797 Ll -A798 Lu -A799 Ll -A79A Lu -A79B Ll -A79C Lu -A79D Ll -A79E Lu -A79F Ll -A7A0 Lu -A7A1 Ll -A7A2 Lu -A7A3 Ll -A7A4 Lu -A7A5 Ll -A7A6 Lu -A7A7 Ll -A7A8 Lu -A7A9 Ll -A7AA A7AD Lu -A7B0 A7B4 Lu -A7B5 Ll -A7B6 Lu -A7B7 Ll -A7F7 Lo -A7F8 A7F9 Lm -A7FA Ll -A7FB A801 Lo -A802 Mn -A803 A805 Lo -A806 Mn -A807 A80A Lo -A80B Mn -A80C A822 Lo -A823 A824 Mc -A825 A826 Mn -A827 Mc -A828 A82B So -A830 A835 No -A836 A837 So -A838 Sc -A839 So -A840 A873 Lo -A874 A877 Po -A880 A881 Mc -A882 A8B3 Lo -A8B4 A8C3 Mc -A8C4 Mn -A8CE A8CF Po -A8D0 A8D9 Nd -A8E0 A8F1 Mn -A8F2 A8F7 Lo -A8F8 A8FA Po -A8FB Lo -A8FC Po -A8FD Lo -A900 A909 Nd -A90A A925 Lo -A926 A92D Mn -A92E A92F Po -A930 A946 Lo -A947 A951 Mn -A952 A953 Mc -A95F Po -A960 A97C Lo -A980 A982 Mn -A983 Mc -A984 A9B2 Lo -A9B3 Mn -A9B4 A9B5 Mc -A9B6 A9B9 Mn -A9BA A9BB Mc -A9BC Mn -A9BD A9C0 Mc -A9C1 A9CD Po -A9CF Lm -A9D0 A9D9 Nd -A9DE A9DF Po -A9E0 A9E4 Lo -A9E5 Mn -A9E6 Lm -A9E7 A9EF Lo -A9F0 A9F9 Nd -A9FA A9FE Lo -AA00 AA28 Lo -AA29 AA2E Mn -AA2F AA30 Mc -AA31 AA32 Mn -AA33 AA34 Mc -AA35 AA36 Mn -AA40 AA42 Lo -AA43 Mn -AA44 AA4B Lo -AA4C Mn -AA4D Mc -AA50 AA59 Nd -AA5C AA5F Po -AA60 AA6F Lo -AA70 Lm -AA71 AA76 Lo -AA77 AA79 So -AA7A Lo -AA7B Mc -AA7C Mn -AA7D Mc -AA7E AAAF Lo -AAB0 Mn -AAB1 Lo -AAB2 AAB4 Mn -AAB5 AAB6 Lo -AAB7 AAB8 Mn -AAB9 AABD Lo -AABE AABF Mn -AAC0 Lo -AAC1 Mn -AAC2 Lo -AADB AADC Lo -AADD Lm -AADE AADF Po -AAE0 AAEA Lo -AAEB Mc -AAEC AAED Mn -AAEE AAEF Mc -AAF0 AAF1 Po -AAF2 Lo -AAF3 AAF4 Lm -AAF5 Mc -AAF6 Mn -AB01 AB06 Lo -AB09 AB0E Lo -AB11 AB16 Lo -AB20 AB26 Lo -AB28 AB2E Lo -AB30 AB5A Ll -AB5B Sk -AB5C AB5F Lm -AB60 AB65 Ll -AB70 ABBF Ll -ABC0 ABE2 Lo -ABE3 ABE4 Mc -ABE5 Mn -ABE6 ABE7 Mc -ABE8 Mn -ABE9 ABEA Mc -ABEB Po -ABEC Mc -ABED Mn -ABF0 ABF9 Nd -AC00 D7A3 Lo -D7B0 D7C6 Lo -D7CB D7FB Lo -D800 DFFF Cs -E000 F8FF Co -F900 FA6D Lo -FA70 FAD9 Lo -FB00 FB06 Ll -FB13 FB17 Ll -FB1D Lo -FB1E Mn -FB1F FB28 Lo -FB29 Sm -FB2A FB36 Lo -FB38 FB3C Lo -FB3E Lo -FB40 FB41 Lo -FB43 FB44 Lo -FB46 FBB1 Lo -FBB2 FBC1 Sk -FBD3 FD3D Lo -FD3E Pe -FD3F Ps -FD50 FD8F Lo -FD92 FDC7 Lo -FDF0 FDFB Lo -FDFC Sc -FDFD So -FE00 FE0F Mn -FE10 FE16 Po -FE17 Ps -FE18 Pe -FE19 Po -FE20 FE2F Mn -FE30 Po -FE31 FE32 Pd -FE33 FE34 Pc -FE35 Ps -FE36 Pe -FE37 Ps -FE38 Pe -FE39 Ps -FE3A Pe -FE3B Ps -FE3C Pe -FE3D Ps -FE3E Pe -FE3F Ps -FE40 Pe -FE41 Ps -FE42 Pe -FE43 Ps -FE44 Pe -FE45 FE46 Po -FE47 Ps -FE48 Pe -FE49 FE4C Po -FE4D FE4F Pc -FE50 FE52 Po -FE54 FE57 Po -FE58 Pd -FE59 Ps -FE5A Pe -FE5B Ps -FE5C Pe -FE5D Ps -FE5E Pe -FE5F FE61 Po -FE62 Sm -FE63 Pd -FE64 FE66 Sm -FE68 Po -FE69 Sc -FE6A FE6B Po -FE70 FE74 Lo -FE76 FEFC Lo -FEFF Cf -FF01 FF03 Po -FF04 Sc -FF05 FF07 Po -FF08 Ps -FF09 Pe -FF0A Po -FF0B Sm -FF0C Po -FF0D Pd -FF0E FF0F Po -FF10 FF19 Nd -FF1A FF1B Po -FF1C FF1E Sm -FF1F FF20 Po -FF21 FF3A Lu -FF3B Ps -FF3C Po -FF3D Pe -FF3E Sk -FF3F Pc -FF40 Sk -FF41 FF5A Ll -FF5B Ps -FF5C Sm -FF5D Pe -FF5E Sm -FF5F Ps -FF60 Pe -FF61 Po -FF62 Ps -FF63 Pe -FF64 FF65 Po -FF66 FF6F Lo -FF70 Lm -FF71 FF9D Lo -FF9E FF9F Lm -FFA0 FFBE Lo -FFC2 FFC7 Lo -FFCA FFCF Lo -FFD2 FFD7 Lo -FFDA FFDC Lo -FFE0 FFE1 Sc -FFE2 Sm -FFE3 Sk -FFE4 So -FFE5 FFE6 Sc -FFE8 So -FFE9 FFEC Sm -FFED FFEE So -FFF9 FFFB Cf -FFFC FFFD So -10000 1000B Lo -1000D 10026 Lo -10028 1003A Lo -1003C 1003D Lo -1003F 1004D Lo -10050 1005D Lo -10080 100FA Lo -10100 10102 Po -10107 10133 No -10137 1013F So -10140 10174 Nl -10175 10178 No -10179 10189 So -1018A 1018B No -1018C So -10190 1019B So -101A0 So -101D0 101FC So -101FD Mn -10280 1029C Lo -102A0 102D0 Lo -102E0 Mn -102E1 102FB No -10300 1031F Lo -10320 10323 No -10330 10340 Lo -10341 Nl -10342 10349 Lo -1034A Nl -10350 10375 Lo -10376 1037A Mn -10380 1039D Lo -1039F Po -103A0 103C3 Lo -103C8 103CF Lo -103D0 Po -103D1 103D5 Nl -10400 10427 Lu -10428 1044F Ll -10450 1049D Lo -104A0 104A9 Nd -10500 10527 Lo -10530 10563 Lo -1056F Po -10600 10736 Lo -10740 10755 Lo -10760 10767 Lo -10800 10805 Lo -10808 Lo -1080A 10835 Lo -10837 10838 Lo -1083C Lo -1083F 10855 Lo -10857 Po -10858 1085F No -10860 10876 Lo -10877 10878 So -10879 1087F No -10880 1089E Lo -108A7 108AF No -108E0 108F2 Lo -108F4 108F5 Lo -108FB 108FF No -10900 10915 Lo -10916 1091B No -1091F Po -10920 10939 Lo -1093F Po -10980 109B7 Lo -109BC 109BD No -109BE 109BF Lo -109C0 109CF No -109D2 109FF No -10A00 Lo -10A01 10A03 Mn -10A05 10A06 Mn -10A0C 10A0F Mn -10A10 10A13 Lo -10A15 10A17 Lo -10A19 10A33 Lo -10A38 10A3A Mn -10A3F Mn -10A40 10A47 No -10A50 10A58 Po -10A60 10A7C Lo -10A7D 10A7E No -10A7F Po -10A80 10A9C Lo -10A9D 10A9F No -10AC0 10AC7 Lo -10AC8 So -10AC9 10AE4 Lo -10AE5 10AE6 Mn -10AEB 10AEF No -10AF0 10AF6 Po -10B00 10B35 Lo -10B39 10B3F Po -10B40 10B55 Lo -10B58 10B5F No -10B60 10B72 Lo -10B78 10B7F No -10B80 10B91 Lo -10B99 10B9C Po -10BA9 10BAF No -10C00 10C48 Lo -10C80 10CB2 Lu -10CC0 10CF2 Ll -10CFA 10CFF No -10E60 10E7E No -11000 Mc -11001 Mn -11002 Mc -11003 11037 Lo -11038 11046 Mn -11047 1104D Po -11052 11065 No -11066 1106F Nd -1107F 11081 Mn -11082 Mc -11083 110AF Lo -110B0 110B2 Mc -110B3 110B6 Mn -110B7 110B8 Mc -110B9 110BA Mn -110BB 110BC Po -110BD Cf -110BE 110C1 Po -110D0 110E8 Lo -110F0 110F9 Nd -11100 11102 Mn -11103 11126 Lo -11127 1112B Mn -1112C Mc -1112D 11134 Mn -11136 1113F Nd -11140 11143 Po -11150 11172 Lo -11173 Mn -11174 11175 Po -11176 Lo -11180 11181 Mn -11182 Mc -11183 111B2 Lo -111B3 111B5 Mc -111B6 111BE Mn -111BF 111C0 Mc -111C1 111C4 Lo -111C5 111C9 Po -111CA 111CC Mn -111CD Po -111D0 111D9 Nd -111DA Lo -111DB Po -111DC Lo -111DD 111DF Po -111E1 111F4 No -11200 11211 Lo -11213 1122B Lo -1122C 1122E Mc -1122F 11231 Mn -11232 11233 Mc -11234 Mn -11235 Mc -11236 11237 Mn -11238 1123D Po -11280 11286 Lo -11288 Lo -1128A 1128D Lo -1128F 1129D Lo -1129F 112A8 Lo -112A9 Po -112B0 112DE Lo -112DF Mn -112E0 112E2 Mc -112E3 112EA Mn -112F0 112F9 Nd -11300 11301 Mn -11302 11303 Mc -11305 1130C Lo -1130F 11310 Lo -11313 11328 Lo -1132A 11330 Lo -11332 11333 Lo -11335 11339 Lo -1133C Mn -1133D Lo -1133E 1133F Mc -11340 Mn -11341 11344 Mc -11347 11348 Mc -1134B 1134D Mc -11350 Lo -11357 Mc -1135D 11361 Lo -11362 11363 Mc -11366 1136C Mn -11370 11374 Mn -11480 114AF Lo -114B0 114B2 Mc -114B3 114B8 Mn -114B9 Mc -114BA Mn -114BB 114BE Mc -114BF 114C0 Mn -114C1 Mc -114C2 114C3 Mn -114C4 114C5 Lo -114C6 Po -114C7 Lo -114D0 114D9 Nd -11580 115AE Lo -115AF 115B1 Mc -115B2 115B5 Mn -115B8 115BB Mc -115BC 115BD Mn -115BE Mc -115BF 115C0 Mn -115C1 115D7 Po -115D8 115DB Lo -115DC 115DD Mn -11600 1162F Lo -11630 11632 Mc -11633 1163A Mn -1163B 1163C Mc -1163D Mn -1163E Mc -1163F 11640 Mn -11641 11643 Po -11644 Lo -11650 11659 Nd -11680 116AA Lo -116AB Mn -116AC Mc -116AD Mn -116AE 116AF Mc -116B0 116B5 Mn -116B6 Mc -116B7 Mn -116C0 116C9 Nd -11700 11719 Lo -1171D 1171F Mn -11720 11721 Mc -11722 11725 Mn -11726 Mc -11727 1172B Mn -11730 11739 Nd -1173A 1173B No -1173C 1173E Po -1173F So -118A0 118BF Lu -118C0 118DF Ll -118E0 118E9 Nd -118EA 118F2 No -118FF Lo -11AC0 11AF8 Lo -12000 12399 Lo -12400 1246E Nl -12470 12474 Po -12480 12543 Lo -13000 1342E Lo -14400 14646 Lo -16800 16A38 Lo -16A40 16A5E Lo -16A60 16A69 Nd -16A6E 16A6F Po -16AD0 16AED Lo -16AF0 16AF4 Mn -16AF5 Po -16B00 16B2F Lo -16B30 16B36 Mn -16B37 16B3B Po -16B3C 16B3F So -16B40 16B43 Lm -16B44 Po -16B45 So -16B50 16B59 Nd -16B5B 16B61 No -16B63 16B77 Lo -16B7D 16B8F Lo -16F00 16F44 Lo -16F50 Lo -16F51 16F7E Mc -16F8F 16F92 Mn -16F93 16F9F Lm -1B000 1B001 Lo -1BC00 1BC6A Lo -1BC70 1BC7C Lo -1BC80 1BC88 Lo -1BC90 1BC99 Lo -1BC9C So -1BC9D 1BC9E Mn -1BC9F Po -1BCA0 1BCA3 Cf -1D000 1D0F5 So -1D100 1D126 So -1D129 1D164 So -1D165 1D166 Mc -1D167 1D169 Mn -1D16A 1D16C So -1D16D 1D172 Mc -1D173 1D17A Cf -1D17B 1D182 Mn -1D183 1D184 So -1D185 1D18B Mn -1D18C 1D1A9 So -1D1AA 1D1AD Mn -1D1AE 1D1E8 So -1D200 1D241 So -1D242 1D244 Mn -1D245 So -1D300 1D356 So -1D360 1D371 No -1D400 1D419 Lu -1D41A 1D433 Ll -1D434 1D44D Lu -1D44E 1D454 Ll -1D456 1D467 Ll -1D468 1D481 Lu -1D482 1D49B Ll -1D49C Lu -1D49E 1D49F Lu -1D4A2 Lu -1D4A5 1D4A6 Lu -1D4A9 1D4AC Lu -1D4AE 1D4B5 Lu -1D4B6 1D4B9 Ll -1D4BB Ll -1D4BD 1D4C3 Ll -1D4C5 1D4CF Ll -1D4D0 1D4E9 Lu -1D4EA 1D503 Ll -1D504 1D505 Lu -1D507 1D50A Lu -1D50D 1D514 Lu -1D516 1D51C Lu -1D51E 1D537 Ll -1D538 1D539 Lu -1D53B 1D53E Lu -1D540 1D544 Lu -1D546 Lu -1D54A 1D550 Lu -1D552 1D56B Ll -1D56C 1D585 Lu -1D586 1D59F Ll -1D5A0 1D5B9 Lu -1D5BA 1D5D3 Ll -1D5D4 1D5ED Lu -1D5EE 1D607 Ll -1D608 1D621 Lu -1D622 1D63B Ll -1D63C 1D655 Lu -1D656 1D66F Ll -1D670 1D689 Lu -1D68A 1D6A5 Ll -1D6A8 1D6C0 Lu -1D6C1 Sm -1D6C2 1D6DA Ll -1D6DB Sm -1D6DC 1D6E1 Ll -1D6E2 1D6FA Lu -1D6FB Sm -1D6FC 1D714 Ll -1D715 Sm -1D716 1D71B Ll -1D71C 1D734 Lu -1D735 Sm -1D736 1D74E Ll -1D74F Sm -1D750 1D755 Ll -1D756 1D76E Lu -1D76F Sm -1D770 1D788 Ll -1D789 Sm -1D78A 1D78F Ll -1D790 1D7A8 Lu -1D7A9 Sm -1D7AA 1D7C2 Ll -1D7C3 Sm -1D7C4 1D7C9 Ll -1D7CA Lu -1D7CB Ll -1D7CE 1D7FF Nd -1D800 1D9FF So -1DA00 1DA36 Mn -1DA37 1DA3A So -1DA3B 1DA6C Mn -1DA6D 1DA74 So -1DA75 Mn -1DA76 1DA83 So -1DA84 Mn -1DA85 1DA86 So -1DA87 1DA8B Po -1DA9B 1DA9F Mn -1DAA1 1DAAF Mn -1E800 1E8C4 Lo -1E8C7 1E8CF No -1E8D0 1E8D6 Mn -1EE00 1EE03 Lo -1EE05 1EE1F Lo -1EE21 1EE22 Lo -1EE24 Lo -1EE27 Lo -1EE29 1EE32 Lo -1EE34 1EE37 Lo -1EE39 Lo -1EE3B Lo -1EE42 Lo -1EE47 Lo -1EE49 Lo -1EE4B Lo -1EE4D 1EE4F Lo -1EE51 1EE52 Lo -1EE54 Lo -1EE57 Lo -1EE59 Lo -1EE5B Lo -1EE5D Lo -1EE5F Lo -1EE61 1EE62 Lo -1EE64 Lo -1EE67 1EE6A Lo -1EE6C 1EE72 Lo -1EE74 1EE77 Lo -1EE79 1EE7C Lo -1EE7E Lo -1EE80 1EE89 Lo -1EE8B 1EE9B Lo -1EEA1 1EEA3 Lo -1EEA5 1EEA9 Lo -1EEAB 1EEBB Lo -1EEF0 1EEF1 Sm -1F000 1F02B So -1F030 1F093 So -1F0A0 1F0AE So -1F0B1 1F0BF So -1F0C1 1F0CF So -1F0D1 1F0F5 So -1F100 1F10C No -1F110 1F12E So -1F130 1F16B So -1F170 1F19A So -1F1E6 1F202 So -1F210 1F23A So -1F240 1F248 So -1F250 1F251 So -1F300 1F3FA So -1F3FB 1F3FF Sk -1F400 1F579 So -1F57B 1F5A3 So -1F5A5 1F6D0 So -1F6E0 1F6EC So -1F6F0 1F6F3 So -1F700 1F773 So -1F780 1F7D4 So -1F800 1F80B So -1F810 1F847 So -1F850 1F859 So -1F860 1F887 So -1F890 1F8AD So -1F910 1F918 So -1F980 1F984 So -1F9C0 So -20000 2A6D6 Lo -2A700 2B734 Lo -2B740 2B81D Lo -2B820 2CEA1 Lo -2F800 2FA1D Lo -E0001 Cf -E0020 E007F Cf -E0100 E01EF Mn -F0000 FFFFD Co -100000 10FFFD Co -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Hst.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Hst.pl deleted file mode 100644 index 8758b11c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Hst.pl +++ /dev/null @@ -1,824 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToHst'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToHst'}{'missing'} = 'NA'; - -return <<'END'; -1100 115F L -1160 11A7 V -11A8 11FF T -A960 A97C L -AC00 LV -AC01 AC1B LVT -AC1C LV -AC1D AC37 LVT -AC38 LV -AC39 AC53 LVT -AC54 LV -AC55 AC6F LVT -AC70 LV -AC71 AC8B LVT -AC8C LV -AC8D ACA7 LVT -ACA8 LV -ACA9 ACC3 LVT -ACC4 LV -ACC5 ACDF LVT -ACE0 LV -ACE1 ACFB LVT -ACFC LV -ACFD AD17 LVT -AD18 LV -AD19 AD33 LVT -AD34 LV -AD35 AD4F LVT -AD50 LV -AD51 AD6B LVT -AD6C LV -AD6D AD87 LVT -AD88 LV -AD89 ADA3 LVT -ADA4 LV -ADA5 ADBF LVT -ADC0 LV -ADC1 ADDB LVT -ADDC LV -ADDD ADF7 LVT -ADF8 LV -ADF9 AE13 LVT -AE14 LV -AE15 AE2F LVT -AE30 LV -AE31 AE4B LVT -AE4C LV -AE4D AE67 LVT -AE68 LV -AE69 AE83 LVT -AE84 LV -AE85 AE9F LVT -AEA0 LV -AEA1 AEBB LVT -AEBC LV -AEBD AED7 LVT -AED8 LV -AED9 AEF3 LVT -AEF4 LV -AEF5 AF0F LVT -AF10 LV -AF11 AF2B LVT -AF2C LV -AF2D AF47 LVT -AF48 LV -AF49 AF63 LVT -AF64 LV -AF65 AF7F LVT -AF80 LV -AF81 AF9B LVT -AF9C LV -AF9D AFB7 LVT -AFB8 LV -AFB9 AFD3 LVT -AFD4 LV -AFD5 AFEF LVT -AFF0 LV -AFF1 B00B LVT -B00C LV -B00D B027 LVT -B028 LV -B029 B043 LVT -B044 LV -B045 B05F LVT -B060 LV -B061 B07B LVT -B07C LV -B07D B097 LVT -B098 LV -B099 B0B3 LVT -B0B4 LV -B0B5 B0CF LVT -B0D0 LV -B0D1 B0EB LVT -B0EC LV -B0ED B107 LVT -B108 LV -B109 B123 LVT -B124 LV -B125 B13F LVT -B140 LV -B141 B15B LVT -B15C LV -B15D B177 LVT -B178 LV -B179 B193 LVT -B194 LV -B195 B1AF LVT -B1B0 LV -B1B1 B1CB LVT -B1CC LV -B1CD B1E7 LVT -B1E8 LV -B1E9 B203 LVT -B204 LV -B205 B21F LVT -B220 LV -B221 B23B LVT -B23C LV -B23D B257 LVT -B258 LV -B259 B273 LVT -B274 LV -B275 B28F LVT -B290 LV -B291 B2AB LVT -B2AC LV -B2AD B2C7 LVT -B2C8 LV -B2C9 B2E3 LVT -B2E4 LV -B2E5 B2FF LVT -B300 LV -B301 B31B LVT -B31C LV -B31D B337 LVT -B338 LV -B339 B353 LVT -B354 LV -B355 B36F LVT -B370 LV -B371 B38B LVT -B38C LV -B38D B3A7 LVT -B3A8 LV -B3A9 B3C3 LVT -B3C4 LV -B3C5 B3DF LVT -B3E0 LV -B3E1 B3FB LVT -B3FC LV -B3FD B417 LVT -B418 LV -B419 B433 LVT -B434 LV -B435 B44F LVT -B450 LV -B451 B46B LVT -B46C LV -B46D B487 LVT -B488 LV -B489 B4A3 LVT -B4A4 LV -B4A5 B4BF LVT -B4C0 LV -B4C1 B4DB LVT -B4DC LV -B4DD B4F7 LVT -B4F8 LV -B4F9 B513 LVT -B514 LV -B515 B52F LVT -B530 LV -B531 B54B LVT -B54C LV -B54D B567 LVT -B568 LV -B569 B583 LVT -B584 LV -B585 B59F LVT -B5A0 LV -B5A1 B5BB LVT -B5BC LV -B5BD B5D7 LVT -B5D8 LV -B5D9 B5F3 LVT -B5F4 LV -B5F5 B60F LVT -B610 LV -B611 B62B LVT -B62C LV -B62D B647 LVT -B648 LV -B649 B663 LVT -B664 LV -B665 B67F LVT -B680 LV -B681 B69B LVT -B69C LV -B69D B6B7 LVT -B6B8 LV -B6B9 B6D3 LVT -B6D4 LV -B6D5 B6EF LVT -B6F0 LV -B6F1 B70B LVT -B70C LV -B70D B727 LVT -B728 LV -B729 B743 LVT -B744 LV -B745 B75F LVT -B760 LV -B761 B77B LVT -B77C LV -B77D B797 LVT -B798 LV -B799 B7B3 LVT -B7B4 LV -B7B5 B7CF LVT -B7D0 LV -B7D1 B7EB LVT -B7EC LV -B7ED B807 LVT -B808 LV -B809 B823 LVT -B824 LV -B825 B83F LVT -B840 LV -B841 B85B LVT -B85C LV -B85D B877 LVT -B878 LV -B879 B893 LVT -B894 LV -B895 B8AF LVT -B8B0 LV -B8B1 B8CB LVT -B8CC LV -B8CD B8E7 LVT -B8E8 LV -B8E9 B903 LVT -B904 LV -B905 B91F LVT -B920 LV -B921 B93B LVT -B93C LV -B93D B957 LVT -B958 LV -B959 B973 LVT -B974 LV -B975 B98F LVT -B990 LV -B991 B9AB LVT -B9AC LV -B9AD B9C7 LVT -B9C8 LV -B9C9 B9E3 LVT -B9E4 LV -B9E5 B9FF LVT -BA00 LV -BA01 BA1B LVT -BA1C LV -BA1D BA37 LVT -BA38 LV -BA39 BA53 LVT -BA54 LV -BA55 BA6F LVT -BA70 LV -BA71 BA8B LVT -BA8C LV -BA8D BAA7 LVT -BAA8 LV -BAA9 BAC3 LVT -BAC4 LV -BAC5 BADF LVT -BAE0 LV -BAE1 BAFB LVT -BAFC LV -BAFD BB17 LVT -BB18 LV -BB19 BB33 LVT -BB34 LV -BB35 BB4F LVT -BB50 LV -BB51 BB6B LVT -BB6C LV -BB6D BB87 LVT -BB88 LV -BB89 BBA3 LVT -BBA4 LV -BBA5 BBBF LVT -BBC0 LV -BBC1 BBDB LVT -BBDC LV -BBDD BBF7 LVT -BBF8 LV -BBF9 BC13 LVT -BC14 LV -BC15 BC2F LVT -BC30 LV -BC31 BC4B LVT -BC4C LV -BC4D BC67 LVT -BC68 LV -BC69 BC83 LVT -BC84 LV -BC85 BC9F LVT -BCA0 LV -BCA1 BCBB LVT -BCBC LV -BCBD BCD7 LVT -BCD8 LV -BCD9 BCF3 LVT -BCF4 LV -BCF5 BD0F LVT -BD10 LV -BD11 BD2B LVT -BD2C LV -BD2D BD47 LVT -BD48 LV -BD49 BD63 LVT -BD64 LV -BD65 BD7F LVT -BD80 LV -BD81 BD9B LVT -BD9C LV -BD9D BDB7 LVT -BDB8 LV -BDB9 BDD3 LVT -BDD4 LV -BDD5 BDEF LVT -BDF0 LV -BDF1 BE0B LVT -BE0C LV -BE0D BE27 LVT -BE28 LV -BE29 BE43 LVT -BE44 LV -BE45 BE5F LVT -BE60 LV -BE61 BE7B LVT -BE7C LV -BE7D BE97 LVT -BE98 LV -BE99 BEB3 LVT -BEB4 LV -BEB5 BECF LVT -BED0 LV -BED1 BEEB LVT -BEEC LV -BEED BF07 LVT -BF08 LV -BF09 BF23 LVT -BF24 LV -BF25 BF3F LVT -BF40 LV -BF41 BF5B LVT -BF5C LV -BF5D BF77 LVT -BF78 LV -BF79 BF93 LVT -BF94 LV -BF95 BFAF LVT -BFB0 LV -BFB1 BFCB LVT -BFCC LV -BFCD BFE7 LVT -BFE8 LV -BFE9 C003 LVT -C004 LV -C005 C01F LVT -C020 LV -C021 C03B LVT -C03C LV -C03D C057 LVT -C058 LV -C059 C073 LVT -C074 LV -C075 C08F LVT -C090 LV -C091 C0AB LVT -C0AC LV -C0AD C0C7 LVT -C0C8 LV -C0C9 C0E3 LVT -C0E4 LV -C0E5 C0FF LVT -C100 LV -C101 C11B LVT -C11C LV -C11D C137 LVT -C138 LV -C139 C153 LVT -C154 LV -C155 C16F LVT -C170 LV -C171 C18B LVT -C18C LV -C18D C1A7 LVT -C1A8 LV -C1A9 C1C3 LVT -C1C4 LV -C1C5 C1DF LVT -C1E0 LV -C1E1 C1FB LVT -C1FC LV -C1FD C217 LVT -C218 LV -C219 C233 LVT -C234 LV -C235 C24F LVT -C250 LV -C251 C26B LVT -C26C LV -C26D C287 LVT -C288 LV -C289 C2A3 LVT -C2A4 LV -C2A5 C2BF LVT -C2C0 LV -C2C1 C2DB LVT -C2DC LV -C2DD C2F7 LVT -C2F8 LV -C2F9 C313 LVT -C314 LV -C315 C32F LVT -C330 LV -C331 C34B LVT -C34C LV -C34D C367 LVT -C368 LV -C369 C383 LVT -C384 LV -C385 C39F LVT -C3A0 LV -C3A1 C3BB LVT -C3BC LV -C3BD C3D7 LVT -C3D8 LV -C3D9 C3F3 LVT -C3F4 LV -C3F5 C40F LVT -C410 LV -C411 C42B LVT -C42C LV -C42D C447 LVT -C448 LV -C449 C463 LVT -C464 LV -C465 C47F LVT -C480 LV -C481 C49B LVT -C49C LV -C49D C4B7 LVT -C4B8 LV -C4B9 C4D3 LVT -C4D4 LV -C4D5 C4EF LVT -C4F0 LV -C4F1 C50B LVT -C50C LV -C50D C527 LVT -C528 LV -C529 C543 LVT -C544 LV -C545 C55F LVT -C560 LV -C561 C57B LVT -C57C LV -C57D C597 LVT -C598 LV -C599 C5B3 LVT -C5B4 LV -C5B5 C5CF LVT -C5D0 LV -C5D1 C5EB LVT -C5EC LV -C5ED C607 LVT -C608 LV -C609 C623 LVT -C624 LV -C625 C63F LVT -C640 LV -C641 C65B LVT -C65C LV -C65D C677 LVT -C678 LV -C679 C693 LVT -C694 LV -C695 C6AF LVT -C6B0 LV -C6B1 C6CB LVT -C6CC LV -C6CD C6E7 LVT -C6E8 LV -C6E9 C703 LVT -C704 LV -C705 C71F LVT -C720 LV -C721 C73B LVT -C73C LV -C73D C757 LVT -C758 LV -C759 C773 LVT -C774 LV -C775 C78F LVT -C790 LV -C791 C7AB LVT -C7AC LV -C7AD C7C7 LVT -C7C8 LV -C7C9 C7E3 LVT -C7E4 LV -C7E5 C7FF LVT -C800 LV -C801 C81B LVT -C81C LV -C81D C837 LVT -C838 LV -C839 C853 LVT -C854 LV -C855 C86F LVT -C870 LV -C871 C88B LVT -C88C LV -C88D C8A7 LVT -C8A8 LV -C8A9 C8C3 LVT -C8C4 LV -C8C5 C8DF LVT -C8E0 LV -C8E1 C8FB LVT -C8FC LV -C8FD C917 LVT -C918 LV -C919 C933 LVT -C934 LV -C935 C94F LVT -C950 LV -C951 C96B LVT -C96C LV -C96D C987 LVT -C988 LV -C989 C9A3 LVT -C9A4 LV -C9A5 C9BF LVT -C9C0 LV -C9C1 C9DB LVT -C9DC LV -C9DD C9F7 LVT -C9F8 LV -C9F9 CA13 LVT -CA14 LV -CA15 CA2F LVT -CA30 LV -CA31 CA4B LVT -CA4C LV -CA4D CA67 LVT -CA68 LV -CA69 CA83 LVT -CA84 LV -CA85 CA9F LVT -CAA0 LV -CAA1 CABB LVT -CABC LV -CABD CAD7 LVT -CAD8 LV -CAD9 CAF3 LVT -CAF4 LV -CAF5 CB0F LVT -CB10 LV -CB11 CB2B LVT -CB2C LV -CB2D CB47 LVT -CB48 LV -CB49 CB63 LVT -CB64 LV -CB65 CB7F LVT -CB80 LV -CB81 CB9B LVT -CB9C LV -CB9D CBB7 LVT -CBB8 LV -CBB9 CBD3 LVT -CBD4 LV -CBD5 CBEF LVT -CBF0 LV -CBF1 CC0B LVT -CC0C LV -CC0D CC27 LVT -CC28 LV -CC29 CC43 LVT -CC44 LV -CC45 CC5F LVT -CC60 LV -CC61 CC7B LVT -CC7C LV -CC7D CC97 LVT -CC98 LV -CC99 CCB3 LVT -CCB4 LV -CCB5 CCCF LVT -CCD0 LV -CCD1 CCEB LVT -CCEC LV -CCED CD07 LVT -CD08 LV -CD09 CD23 LVT -CD24 LV -CD25 CD3F LVT -CD40 LV -CD41 CD5B LVT -CD5C LV -CD5D CD77 LVT -CD78 LV -CD79 CD93 LVT -CD94 LV -CD95 CDAF LVT -CDB0 LV -CDB1 CDCB LVT -CDCC LV -CDCD CDE7 LVT -CDE8 LV -CDE9 CE03 LVT -CE04 LV -CE05 CE1F LVT -CE20 LV -CE21 CE3B LVT -CE3C LV -CE3D CE57 LVT -CE58 LV -CE59 CE73 LVT -CE74 LV -CE75 CE8F LVT -CE90 LV -CE91 CEAB LVT -CEAC LV -CEAD CEC7 LVT -CEC8 LV -CEC9 CEE3 LVT -CEE4 LV -CEE5 CEFF LVT -CF00 LV -CF01 CF1B LVT -CF1C LV -CF1D CF37 LVT -CF38 LV -CF39 CF53 LVT -CF54 LV -CF55 CF6F LVT -CF70 LV -CF71 CF8B LVT -CF8C LV -CF8D CFA7 LVT -CFA8 LV -CFA9 CFC3 LVT -CFC4 LV -CFC5 CFDF LVT -CFE0 LV -CFE1 CFFB LVT -CFFC LV -CFFD D017 LVT -D018 LV -D019 D033 LVT -D034 LV -D035 D04F LVT -D050 LV -D051 D06B LVT -D06C LV -D06D D087 LVT -D088 LV -D089 D0A3 LVT -D0A4 LV -D0A5 D0BF LVT -D0C0 LV -D0C1 D0DB LVT -D0DC LV -D0DD D0F7 LVT -D0F8 LV -D0F9 D113 LVT -D114 LV -D115 D12F LVT -D130 LV -D131 D14B LVT -D14C LV -D14D D167 LVT -D168 LV -D169 D183 LVT -D184 LV -D185 D19F LVT -D1A0 LV -D1A1 D1BB LVT -D1BC LV -D1BD D1D7 LVT -D1D8 LV -D1D9 D1F3 LVT -D1F4 LV -D1F5 D20F LVT -D210 LV -D211 D22B LVT -D22C LV -D22D D247 LVT -D248 LV -D249 D263 LVT -D264 LV -D265 D27F LVT -D280 LV -D281 D29B LVT -D29C LV -D29D D2B7 LVT -D2B8 LV -D2B9 D2D3 LVT -D2D4 LV -D2D5 D2EF LVT -D2F0 LV -D2F1 D30B LVT -D30C LV -D30D D327 LVT -D328 LV -D329 D343 LVT -D344 LV -D345 D35F LVT -D360 LV -D361 D37B LVT -D37C LV -D37D D397 LVT -D398 LV -D399 D3B3 LVT -D3B4 LV -D3B5 D3CF LVT -D3D0 LV -D3D1 D3EB LVT -D3EC LV -D3ED D407 LVT -D408 LV -D409 D423 LVT -D424 LV -D425 D43F LVT -D440 LV -D441 D45B LVT -D45C LV -D45D D477 LVT -D478 LV -D479 D493 LVT -D494 LV -D495 D4AF LVT -D4B0 LV -D4B1 D4CB LVT -D4CC LV -D4CD D4E7 LVT -D4E8 LV -D4E9 D503 LVT -D504 LV -D505 D51F LVT -D520 LV -D521 D53B LVT -D53C LV -D53D D557 LVT -D558 LV -D559 D573 LVT -D574 LV -D575 D58F LVT -D590 LV -D591 D5AB LVT -D5AC LV -D5AD D5C7 LVT -D5C8 LV -D5C9 D5E3 LVT -D5E4 LV -D5E5 D5FF LVT -D600 LV -D601 D61B LVT -D61C LV -D61D D637 LVT -D638 LV -D639 D653 LVT -D654 LV -D655 D66F LVT -D670 LV -D671 D68B LVT -D68C LV -D68D D6A7 LVT -D6A8 LV -D6A9 D6C3 LVT -D6C4 LV -D6C5 D6DF LVT -D6E0 LV -D6E1 D6FB LVT -D6FC LV -D6FD D717 LVT -D718 LV -D719 D733 LVT -D734 LV -D735 D74F LVT -D750 LV -D751 D76B LVT -D76C LV -D76D D787 LVT -D788 LV -D789 D7A3 LVT -D7B0 D7C6 V -D7CB D7FB T -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/InPC.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/InPC.pl deleted file mode 100644 index 3b3c3c85..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/InPC.pl +++ /dev/null @@ -1,512 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToInPC'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToInPC'}{'missing'} = 'NA'; - -return <<'END'; -900 902 Top -903 Right -93A Top -93B Right -93C Bottom -93E Right -93F Left -940 Right -941 944 Bottom -945 948 Top -949 94C Right -94D Bottom -94E Left -94F Right -951 Top -952 Bottom -953 955 Top -956 957 Bottom -962 963 Bottom -981 Top -982 983 Right -9BC Bottom -9BE Right -9BF Left -9C0 Right -9C1 9C4 Bottom -9C7 9C8 Left -9CB 9CC Left_And_Right -9CD Bottom -9D7 Right -9E2 9E3 Bottom -A01 A02 Top -A03 Right -A3C Bottom -A3E Right -A3F Left -A40 Right -A41 A42 Bottom -A47 A48 Top -A4B A4C Top -A4D Bottom -A70 A71 Top -A75 Bottom -A81 A82 Top -A83 Right -ABC Bottom -ABE Right -ABF Left -AC0 Right -AC1 AC4 Bottom -AC5 Top -AC7 AC8 Top -AC9 Top_And_Right -ACB ACC Right -ACD Bottom -AE2 AE3 Bottom -B01 Top -B02 B03 Right -B3C Bottom -B3E Right -B3F Top -B40 Right -B41 B44 Bottom -B47 Left -B48 Top_And_Left -B4B Left_And_Right -B4C Top_And_Left_And_Right -B4D Bottom -B56 Top -B57 Top_And_Right -B62 B63 Bottom -B82 Top -BBE BBF Right -BC0 Top -BC1 BC2 Right -BC6 BC8 Left -BCA BCC Left_And_Right -BCD Top -BD7 Right -C00 Top -C01 C03 Right -C3E C40 Top -C41 C44 Right -C46 C47 Top -C48 Top_And_Bottom -C4A C4D Top -C55 Top -C56 Bottom -C62 C63 Bottom -C81 Top -C82 C83 Right -CBC Bottom -CBE Right -CBF Top -CC0 Top_And_Right -CC1 CC4 Right -CC6 Top -CC7 CC8 Top_And_Right -CCA CCB Top_And_Right -CCC CCD Top -CD5 CD6 Right -CE2 CE3 Bottom -D01 Top -D02 D03 Right -D3E D42 Right -D43 D44 Bottom -D46 D48 Left -D4A D4C Left_And_Right -D4D Top -D57 Right -D62 D63 Bottom -D82 D83 Right -DCA Top -DCF DD1 Right -DD2 DD3 Top -DD4 Bottom -DD6 Bottom -DD8 Right -DD9 Left -DDA Top_And_Left -DDB Left -DDC Left_And_Right -DDD Top_And_Left_And_Right -DDE Left_And_Right -DDF Right -DF2 DF3 Right -E30 Right -E31 Top -E32 E33 Right -E34 E37 Top -E38 E3A Bottom -E40 E44 Visual_Order_Left -E45 Right -E47 E4E Top -EB0 Right -EB1 Top -EB2 EB3 Right -EB4 EB7 Top -EB8 EB9 Bottom -EBB Top -EBC Bottom -EC0 EC4 Visual_Order_Left -EC8 ECD Top -F18 F19 Bottom -F35 Bottom -F37 Bottom -F39 Top -F3E Right -F3F Left -F71 Bottom -F72 Top -F73 Top_And_Bottom -F74 F75 Bottom -F76 F79 Top_And_Bottom -F7A F7E Top -F7F Right -F80 Top -F81 Top_And_Bottom -F82 F83 Top -F84 Bottom -F86 F87 Top -F8D F97 Bottom -F99 FBC Bottom -FC6 Bottom -102B 102C Right -102D 102E Top -102F 1030 Bottom -1031 Left -1032 1036 Top -1037 Bottom -1038 Right -103A Top -103B Right -103D 103E Bottom -1056 1057 Right -1058 1059 Bottom -105E 1060 Bottom -1062 1064 Right -1067 106D Right -1071 1074 Top -1082 Bottom -1083 Right -1084 Left -1085 1086 Top -1087 108C Right -108D Bottom -108F Right -109A 109C Right -109D Top -1712 Top -1713 1714 Bottom -1732 Top -1733 1734 Bottom -1752 Top -1753 Bottom -1772 Top -1773 Bottom -17B6 Right -17B7 17BA Top -17BB 17BD Bottom -17BE Top_And_Left -17BF Top_And_Left_And_Right -17C0 Left_And_Right -17C1 17C3 Left -17C4 17C5 Left_And_Right -17C6 Top -17C7 17C8 Right -17C9 17D1 Top -17D3 Top -17DD Top -1920 1921 Top -1922 Bottom -1923 1924 Right -1925 1926 Top_And_Right -1927 1928 Top -1929 192B Right -1930 1931 Right -1932 Bottom -1933 1938 Right -1939 Bottom -193A Top -193B Bottom -19B0 19B4 Right -19B5 19B7 Visual_Order_Left -19B8 19B9 Right -19BA Visual_Order_Left -19BB 19C0 Right -19C8 19C9 Right -1A17 Top -1A18 Bottom -1A19 Left -1A1A Right -1A1B Top -1A55 Left -1A56 Bottom -1A57 Right -1A58 1A5A Top -1A5B 1A5E Bottom -1A61 Right -1A62 Top -1A63 1A64 Right -1A65 1A68 Top -1A69 1A6A Bottom -1A6B Top -1A6C Bottom -1A6D Right -1A6E 1A72 Left -1A73 1A7C Top -1A7F Bottom -1B00 1B03 Top -1B04 Right -1B34 Top -1B35 Right -1B36 1B37 Top -1B38 1B3A Bottom -1B3B Bottom_And_Right -1B3C Top_And_Bottom -1B3D Top_And_Bottom_And_Right -1B3E 1B3F Left -1B40 1B41 Left_And_Right -1B42 Top -1B43 Top_And_Right -1B44 Right -1B6B Top -1B6C Bottom -1B6D 1B73 Top -1B80 1B81 Top -1B82 Right -1BA1 Right -1BA2 1BA3 Bottom -1BA4 Top -1BA5 Bottom -1BA6 Left -1BA7 Right -1BA8 1BA9 Top -1BAA Right -1BAC 1BAD Bottom -1BE6 Top -1BE7 Right -1BE8 1BE9 Top -1BEA 1BEC Right -1BED Top -1BEE Right -1BEF 1BF1 Top -1BF2 1BF3 Right -1C24 1C26 Right -1C27 1C28 Left -1C29 Top_And_Left -1C2A 1C2B Right -1C2C Bottom -1C2D 1C33 Top -1C34 1C35 Left -1C36 Top -1C37 Bottom -1CD0 1CD2 Top -1CD4 Overstruck -1CD5 1CD9 Bottom -1CDA 1CDB Top -1CDC 1CDF Bottom -1CE0 Top -1CE1 Right -1CE2 1CE8 Overstruck -1CED Bottom -1CF4 Top -A806 Top -A80B Top -A823 A824 Right -A825 Bottom -A826 Top -A827 Right -A880 A881 Right -A8B4 A8C3 Right -A8C4 Bottom -A8E0 A8F1 Top -A92B A92D Bottom -A947 A949 Bottom -A94A Top -A94B A94E Bottom -A94F A951 Top -A952 A953 Right -A980 A982 Top -A983 Right -A9B3 Top -A9B4 A9B5 Right -A9B6 A9B7 Top -A9B8 A9B9 Bottom -A9BA A9BB Left -A9BC Top -A9BD A9BF Right -A9C0 Bottom_And_Right -A9E5 Top -AA29 AA2C Top -AA2D Bottom -AA2E Top -AA2F AA30 Left -AA31 Top -AA32 Bottom -AA33 Right -AA34 Left -AA35 AA36 Bottom -AA43 Top -AA4C Top -AA4D Right -AA7B Right -AA7C Top -AA7D Right -AAB0 Top -AAB1 Right -AAB2 AAB3 Top -AAB4 Bottom -AAB5 AAB6 Visual_Order_Left -AAB7 AAB8 Top -AAB9 Visual_Order_Left -AABA Right -AABB AABC Visual_Order_Left -AABD Right -AABE AABF Top -AAC1 Top -AAEB Left -AAEC Bottom -AAED Top -AAEE Left -AAEF Right -AAF5 Right -ABE3 ABE4 Right -ABE5 Top -ABE6 ABE7 Right -ABE8 Bottom -ABE9 ABEA Right -ABEC Right -ABED Bottom -10A01 Overstruck -10A02 10A03 Bottom -10A05 Top -10A06 Overstruck -10A0C 10A0E Bottom -10A0F Top -10A38 Top -10A39 10A3A Bottom -11000 Right -11001 Top -11002 Right -11038 1103B Top -1103C 11041 Bottom -11042 11046 Top -11080 11081 Top -11082 Right -110B0 Right -110B1 Left -110B2 Right -110B3 110B4 Bottom -110B5 110B6 Top -110B7 110B8 Right -110B9 110BA Bottom -11100 11102 Top -11127 11129 Top -1112A 1112B Bottom -1112C Left -1112D Top -1112E 1112F Top_And_Bottom -11130 Top -11131 11132 Bottom -11134 Top -11173 Bottom -11180 11181 Top -11182 Right -111B3 Right -111B4 Left -111B5 Right -111B6 111BB Bottom -111BC 111BE Top -111BF Top_And_Right -111C0 Right -111CB Top -111CC Bottom -1122C 1122E Right -1122F Bottom -11230 11231 Top -11232 11233 Top_And_Right -11234 Top -11235 Right -11236 11237 Top -112DF Top -112E0 Right -112E1 Left -112E2 Right -112E3 112E4 Bottom -112E5 112E8 Top -112E9 112EA Bottom -11301 Top -11302 11303 Right -1133E 1133F Right -11340 Top -11341 11344 Right -11347 11348 Left -1134B 1134C Left_And_Right -1134D Right -11357 Right -11362 11363 Right -11366 1136C Top -11370 11374 Top -114B0 Right -114B1 Left -114B2 Right -114B3 114B8 Bottom -114B9 Left -114BA Top -114BB Top_And_Left -114BC Left_And_Right -114BD Right -114BE Left_And_Right -114BF 114C0 Top -114C1 Right -114C2 114C3 Bottom -115AF Right -115B0 Left -115B1 Right -115B2 115B5 Bottom -115B8 Left -115B9 Top_And_Left -115BA Left_And_Right -115BB Top_And_Left_And_Right -115BC 115BD Top -115BE Right -115BF 115C0 Bottom -115DC 115DD Bottom -11630 11632 Right -11633 11638 Bottom -11639 1163A Top -1163B 1163C Right -1163D Top -1163E Right -1163F Bottom -11640 Top -116AB Top -116AC Right -116AD Top -116AE Left -116AF Right -116B0 116B1 Bottom -116B2 116B5 Top -116B6 Right -116B7 Bottom -1171D Bottom -1171F Top -11720 11721 Right -11722 11723 Top -11724 11725 Bottom -11726 Left -11727 Top -11728 Bottom -11729 1172B Top -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/InSC.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/InSC.pl deleted file mode 100644 index f3bea2fd..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/InSC.pl +++ /dev/null @@ -1,625 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToInSC'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToInSC'}{'missing'} = 'Other'; - -return <<'END'; -2D Consonant_Placeholder -30 39 Number -A0 Consonant_Placeholder -B2 B3 Syllable_Modifier -D7 Consonant_Placeholder -900 902 Bindu -903 Visarga -904 914 Vowel_Independent -915 939 Consonant -93A 93B Vowel_Dependent -93C Nukta -93D Avagraha -93E 94C Vowel_Dependent -94D Virama -94E 94F Vowel_Dependent -951 952 Cantillation_Mark -955 957 Vowel_Dependent -958 95F Consonant -960 961 Vowel_Independent -962 963 Vowel_Dependent -966 96F Number -972 977 Vowel_Independent -978 97F Consonant -981 982 Bindu -983 Visarga -985 98C Vowel_Independent -98F 990 Vowel_Independent -993 994 Vowel_Independent -995 9A8 Consonant -9AA 9B0 Consonant -9B2 Consonant -9B6 9B9 Consonant -9BC Nukta -9BD Avagraha -9BE 9C4 Vowel_Dependent -9C7 9C8 Vowel_Dependent -9CB 9CC Vowel_Dependent -9CD Virama -9CE Consonant_Dead -9D7 Vowel_Dependent -9DC 9DD Consonant -9DF Consonant -9E0 9E1 Vowel_Independent -9E2 9E3 Vowel_Dependent -9E6 9EF Number -9F0 9F1 Consonant -A01 A02 Bindu -A03 Visarga -A05 A0A Vowel_Independent -A0F A10 Vowel_Independent -A13 A14 Vowel_Independent -A15 A28 Consonant -A2A A30 Consonant -A32 A33 Consonant -A35 A36 Consonant -A38 A39 Consonant -A3C Nukta -A3E A42 Vowel_Dependent -A47 A48 Vowel_Dependent -A4B A4C Vowel_Dependent -A4D Virama -A59 A5C Consonant -A5E Consonant -A66 A6F Number -A70 Bindu -A71 Gemination_Mark -A72 A73 Consonant_Placeholder -A75 Consonant_Medial -A81 A82 Bindu -A83 Visarga -A85 A8D Vowel_Independent -A8F A91 Vowel_Independent -A93 A94 Vowel_Independent -A95 AA8 Consonant -AAA AB0 Consonant -AB2 AB3 Consonant -AB5 AB9 Consonant -ABC Nukta -ABD Avagraha -ABE AC5 Vowel_Dependent -AC7 AC9 Vowel_Dependent -ACB ACC Vowel_Dependent -ACD Virama -AE0 AE1 Vowel_Independent -AE2 AE3 Vowel_Dependent -AE6 AEF Number -AF9 Consonant -B01 B02 Bindu -B03 Visarga -B05 B0C Vowel_Independent -B0F B10 Vowel_Independent -B13 B14 Vowel_Independent -B15 B28 Consonant -B2A B30 Consonant -B32 B33 Consonant -B35 B39 Consonant -B3C Nukta -B3D Avagraha -B3E B44 Vowel_Dependent -B47 B48 Vowel_Dependent -B4B B4C Vowel_Dependent -B4D Virama -B56 B57 Vowel_Dependent -B5C B5D Consonant -B5F Consonant -B60 B61 Vowel_Independent -B62 B63 Vowel_Dependent -B66 B6F Number -B71 Consonant -B82 Bindu -B83 Modifying_Letter -B85 B8A Vowel_Independent -B8E B90 Vowel_Independent -B92 B94 Vowel_Independent -B95 Consonant -B99 B9A Consonant -B9C Consonant -B9E B9F Consonant -BA3 BA4 Consonant -BA8 BAA Consonant -BAE BB9 Consonant -BBE BC2 Vowel_Dependent -BC6 BC8 Vowel_Dependent -BCA BCC Vowel_Dependent -BCD Virama -BD7 Vowel_Dependent -BE6 BEF Number -C00 C02 Bindu -C03 Visarga -C05 C0C Vowel_Independent -C0E C10 Vowel_Independent -C12 C14 Vowel_Independent -C15 C28 Consonant -C2A C39 Consonant -C3D Avagraha -C3E C44 Vowel_Dependent -C46 C48 Vowel_Dependent -C4A C4C Vowel_Dependent -C4D Virama -C55 C56 Vowel_Dependent -C58 C5A Consonant -C60 C61 Vowel_Independent -C62 C63 Vowel_Dependent -C66 C6F Number -C81 C82 Bindu -C83 Visarga -C85 C8C Vowel_Independent -C8E C90 Vowel_Independent -C92 C94 Vowel_Independent -C95 CA8 Consonant -CAA CB3 Consonant -CB5 CB9 Consonant -CBC Nukta -CBD Avagraha -CBE CC4 Vowel_Dependent -CC6 CC8 Vowel_Dependent -CCA CCC Vowel_Dependent -CCD Virama -CD5 CD6 Vowel_Dependent -CDE Consonant -CE0 CE1 Vowel_Independent -CE2 CE3 Vowel_Dependent -CE6 CEF Number -CF1 CF2 Consonant_With_Stacker -D01 D02 Bindu -D03 Visarga -D05 D0C Vowel_Independent -D0E D10 Vowel_Independent -D12 D14 Vowel_Independent -D15 D3A Consonant -D3D Avagraha -D3E D44 Vowel_Dependent -D46 D48 Vowel_Dependent -D4A D4C Vowel_Dependent -D4D Virama -D4E Consonant_Preceding_Repha -D57 Vowel_Dependent -D5F D61 Vowel_Independent -D62 D63 Vowel_Dependent -D66 D6F Number -D7A D7F Consonant_Dead -D82 Bindu -D83 Visarga -D85 D96 Vowel_Independent -D9A DB1 Consonant -DB3 DBB Consonant -DBD Consonant -DC0 DC6 Consonant -DCA Virama -DCF DD4 Vowel_Dependent -DD6 Vowel_Dependent -DD8 DDF Vowel_Dependent -DE6 DEF Number -DF2 DF3 Vowel_Dependent -E01 E2E Consonant -E30 E39 Vowel_Dependent -E3A Pure_Killer -E40 E45 Vowel_Dependent -E47 Vowel_Dependent -E48 E4B Tone_Mark -E4C Consonant_Killer -E4D Bindu -E4E Pure_Killer -E50 E59 Number -E81 E82 Consonant -E84 Consonant -E87 E88 Consonant -E8A Consonant -E8D Consonant -E94 E97 Consonant -E99 E9F Consonant -EA1 EA3 Consonant -EA5 Consonant -EA7 Consonant -EAA EAB Consonant -EAD EAE Consonant -EB0 EB9 Vowel_Dependent -EBB Vowel_Dependent -EBC EBD Consonant_Medial -EC0 EC4 Vowel_Dependent -EC8 ECB Tone_Mark -ECD Bindu -ED0 ED9 Number -EDC EDF Consonant -F20 F33 Number -F35 Syllable_Modifier -F37 Syllable_Modifier -F39 Nukta -F40 F47 Consonant -F49 F6C Consonant -F71 F7D Vowel_Dependent -F7E Bindu -F7F Visarga -F80 F81 Vowel_Dependent -F82 F83 Bindu -F84 Pure_Killer -F85 Avagraha -F88 F8C Consonant_Head_Letter -F8D F97 Consonant_Subjoined -F99 FBC Consonant_Subjoined -FC6 Syllable_Modifier -1000 1020 Consonant -1021 102A Vowel_Independent -102B 1035 Vowel_Dependent -1036 Bindu -1037 Tone_Mark -1038 Visarga -1039 Invisible_Stacker -103A Pure_Killer -103B 103E Consonant_Medial -103F Consonant -1040 1049 Number -104E Consonant_Placeholder -1050 1051 Consonant -1052 1055 Vowel_Independent -1056 1059 Vowel_Dependent -105A 105D Consonant -105E 1060 Consonant_Medial -1061 Consonant -1062 Vowel_Dependent -1063 1064 Tone_Mark -1065 1066 Consonant -1067 1068 Vowel_Dependent -1069 106D Tone_Mark -106E 1070 Consonant -1071 1074 Vowel_Dependent -1075 1081 Consonant -1082 Consonant_Medial -1083 1086 Vowel_Dependent -1087 108D Tone_Mark -108E Consonant -108F Tone_Mark -1090 1099 Number -109A 109B Tone_Mark -109C 109D Vowel_Dependent -1700 1702 Vowel_Independent -1703 170C Consonant -170E 1711 Consonant -1712 1713 Vowel_Dependent -1714 Pure_Killer -1720 1722 Vowel_Independent -1723 1731 Consonant -1732 1733 Vowel_Dependent -1734 Pure_Killer -1740 1742 Vowel_Independent -1743 1751 Consonant -1752 1753 Vowel_Dependent -1760 1762 Vowel_Independent -1763 176C Consonant -176E 1770 Consonant -1772 1773 Vowel_Dependent -1780 17A2 Consonant -17A3 17B3 Vowel_Independent -17B6 17C5 Vowel_Dependent -17C6 Bindu -17C7 Visarga -17C8 Vowel_Dependent -17C9 17CA Register_Shifter -17CB Syllable_Modifier -17CC Consonant_Succeeding_Repha -17CD Consonant_Killer -17CE 17D0 Syllable_Modifier -17D1 Pure_Killer -17D2 Invisible_Stacker -17D3 Syllable_Modifier -17DC Avagraha -17E0 17E9 Number -1900 Consonant_Placeholder -1901 191E Consonant -1920 1928 Vowel_Dependent -1929 192B Consonant_Subjoined -1930 1931 Consonant_Final -1932 Bindu -1933 1939 Consonant_Final -193A Vowel_Dependent -193B Syllable_Modifier -1946 194F Number -1950 1962 Consonant -1963 196D Vowel -1970 1974 Tone_Letter -1980 19AB Consonant -19B0 19C0 Vowel_Dependent -19C1 19C7 Consonant_Final -19C8 19C9 Tone_Mark -19D0 19D9 Number -1A00 1A16 Consonant -1A17 1A1B Vowel_Dependent -1A20 1A4C Consonant -1A4D 1A52 Vowel_Independent -1A53 1A54 Consonant -1A55 1A56 Consonant_Medial -1A57 1A5E Consonant_Final -1A60 Invisible_Stacker -1A61 1A74 Vowel_Dependent -1A75 1A79 Tone_Mark -1A7A 1A7C Syllable_Modifier -1A7F Syllable_Modifier -1A80 1A89 Number -1A90 1A99 Number -1B00 1B02 Bindu -1B03 Consonant_Succeeding_Repha -1B04 Visarga -1B05 1B12 Vowel_Independent -1B13 1B33 Consonant -1B34 Nukta -1B35 1B43 Vowel_Dependent -1B44 Virama -1B45 1B4B Consonant -1B50 1B59 Number -1B80 Bindu -1B81 Consonant_Succeeding_Repha -1B82 Visarga -1B83 1B89 Vowel_Independent -1B8A 1BA0 Consonant -1BA1 1BA3 Consonant_Subjoined -1BA4 1BA9 Vowel_Dependent -1BAA Pure_Killer -1BAB Invisible_Stacker -1BAC 1BAD Consonant_Subjoined -1BAE 1BAF Consonant -1BB0 1BB9 Number -1BBA Avagraha -1BBB 1BBD Consonant -1BBE 1BBF Consonant_Final -1BC0 1BE3 Consonant -1BE4 1BE5 Vowel_Independent -1BE6 Nukta -1BE7 1BEF Vowel_Dependent -1BF0 1BF1 Consonant_Final -1BF2 1BF3 Pure_Killer -1C00 1C23 Consonant -1C24 1C25 Consonant_Subjoined -1C26 1C2C Vowel_Dependent -1C2D 1C33 Consonant_Final -1C34 1C35 Bindu -1C36 Syllable_Modifier -1C37 Nukta -1C40 1C49 Number -1C4D 1C4F Consonant -1CD0 1CD2 Cantillation_Mark -1CD4 1CE1 Cantillation_Mark -1CF2 1CF3 Visarga -1CF4 Cantillation_Mark -1CF8 1CF9 Cantillation_Mark -200C Non_Joiner -200D Joiner -2010 2014 Consonant_Placeholder -2074 Syllable_Modifier -2082 2084 Syllable_Modifier -25CC Consonant_Placeholder -A800 A801 Vowel_Independent -A803 A805 Vowel_Independent -A806 Pure_Killer -A807 A80A Consonant -A80B Bindu -A80C A822 Consonant -A823 A827 Vowel_Dependent -A840 A85D Consonant -A85E A861 Vowel -A862 A865 Consonant -A866 Vowel -A867 A868 Consonant_Subjoined -A869 A870 Consonant -A871 Consonant_Subjoined -A872 Consonant -A873 Bindu -A880 Bindu -A881 Visarga -A882 A891 Vowel_Independent -A892 A8B3 Consonant -A8B4 Consonant_Final -A8B5 A8C3 Vowel_Dependent -A8C4 Virama -A8D0 A8D9 Number -A8E0 A8F1 Cantillation_Mark -A900 A909 Number -A90A A921 Consonant -A922 A92A Vowel -A92B A92D Tone_Mark -A930 A946 Consonant -A947 A94E Vowel_Dependent -A94F A952 Consonant_Final -A953 Pure_Killer -A980 A981 Bindu -A982 Consonant_Succeeding_Repha -A983 Visarga -A984 A988 Vowel_Independent -A989 A98B Consonant -A98C A98E Vowel_Independent -A98F A9B2 Consonant -A9B3 Nukta -A9B4 A9BC Vowel_Dependent -A9BD Consonant_Subjoined -A9BE A9BF Consonant_Medial -A9C0 Virama -A9D0 A9D9 Number -A9E0 A9E4 Consonant -A9E5 Vowel_Dependent -A9E7 A9EF Consonant -A9F0 A9F9 Number -A9FA A9FE Consonant -AA00 AA05 Vowel_Independent -AA06 AA28 Consonant -AA29 AA32 Vowel_Dependent -AA33 AA36 Consonant_Medial -AA40 AA4D Consonant_Final -AA50 AA59 Number -AA60 AA6F Consonant -AA71 AA73 Consonant -AA7A Consonant -AA7B AA7D Tone_Mark -AA7E AAAF Consonant -AAB0 AABE Vowel_Dependent -AABF Tone_Mark -AAC0 Tone_Letter -AAC1 Tone_Mark -AAC2 Tone_Letter -AAE0 AAE1 Vowel_Independent -AAE2 AAEA Consonant -AAEB AAEF Vowel_Dependent -AAF5 Visarga -AAF6 Invisible_Stacker -ABC0 ABCD Consonant -ABCE ABCF Vowel_Independent -ABD0 Consonant -ABD1 Vowel_Independent -ABD2 ABDA Consonant -ABDB ABE2 Consonant_Final -ABE3 ABEA Vowel_Dependent -ABEC Tone_Mark -ABED Pure_Killer -ABF0 ABF9 Number -10A00 Consonant -10A01 10A03 Vowel_Dependent -10A05 10A06 Vowel_Dependent -10A0C 10A0D Vowel_Dependent -10A0E Bindu -10A0F Visarga -10A10 10A13 Consonant -10A15 10A17 Consonant -10A19 10A33 Consonant -10A38 10A3A Nukta -10A3F Invisible_Stacker -10A40 10A47 Number -11000 11001 Bindu -11002 Visarga -11003 11004 Consonant_With_Stacker -11005 11012 Vowel_Independent -11013 11037 Consonant -11038 11045 Vowel_Dependent -11046 Virama -11052 11065 Brahmi_Joining_Number -11066 1106F Number -1107F Number_Joiner -11080 11081 Bindu -11082 Visarga -11083 1108C Vowel_Independent -1108D 110AF Consonant -110B0 110B8 Vowel_Dependent -110B9 Virama -110BA Nukta -11100 11101 Bindu -11102 Visarga -11103 11106 Vowel_Independent -11107 11126 Consonant -11127 11132 Vowel_Dependent -11133 Invisible_Stacker -11134 Pure_Killer -11136 1113F Number -11150 11154 Vowel -11155 11172 Consonant -11173 Nukta -11180 11181 Bindu -11182 Visarga -11183 11190 Vowel_Independent -11191 111B2 Consonant -111B3 111BF Vowel_Dependent -111C0 Virama -111C1 Avagraha -111C2 111C3 Consonant_Prefixed -111CA Nukta -111CB 111CC Vowel_Dependent -111D0 111D9 Number -111E1 111F4 Number -11200 11207 Vowel_Independent -11208 11211 Consonant -11213 1122B Consonant -1122C 11233 Vowel_Dependent -11234 Bindu -11235 Virama -11236 Nukta -11237 Gemination_Mark -11280 11283 Vowel_Independent -11284 11286 Consonant -11288 Consonant -1128A 1128D Consonant -1128F 1129D Consonant -1129F 112A8 Consonant -112B0 112B9 Vowel_Independent -112BA 112DE Consonant -112DF Bindu -112E0 112E8 Vowel_Dependent -112E9 Nukta -112EA Pure_Killer -112F0 112F9 Number -11300 11302 Bindu -11303 Visarga -11305 1130C Vowel_Independent -1130F 11310 Vowel_Independent -11313 11314 Vowel_Independent -11315 11328 Consonant -1132A 11330 Consonant -11332 11333 Consonant -11335 11339 Consonant -1133C Nukta -1133D Avagraha -1133E 11344 Vowel_Dependent -11347 11348 Vowel_Dependent -1134B 1134C Vowel_Dependent -1134D Virama -11357 Vowel_Dependent -11360 11361 Vowel_Independent -11362 11363 Vowel_Dependent -11366 1136C Cantillation_Mark -11370 11374 Cantillation_Mark -11481 1148E Vowel_Independent -1148F 114AF Consonant -114B0 114BE Vowel_Dependent -114BF 114C0 Bindu -114C1 Visarga -114C2 Virama -114C3 Nukta -114C4 Avagraha -114D0 114D9 Number -11580 1158D Vowel_Independent -1158E 115AE Consonant -115AF 115B5 Vowel_Dependent -115B8 115BB Vowel_Dependent -115BC 115BD Bindu -115BE Visarga -115BF Virama -115C0 Nukta -115D8 115DB Vowel_Independent -115DC 115DD Vowel_Dependent -11600 1160D Vowel_Independent -1160E 1162F Consonant -11630 1163C Vowel_Dependent -1163D Bindu -1163E Visarga -1163F Virama -11640 Vowel_Dependent -11650 11659 Number -11680 11689 Vowel_Independent -1168A 116AA Consonant -116AB Bindu -116AC Visarga -116AD 116B5 Vowel_Dependent -116B6 Virama -116B7 Nukta -116C0 116C9 Number -11700 11719 Consonant -1171D 1171F Consonant_Medial -11720 1172A Vowel_Dependent -1172B Pure_Killer -11730 1173B Number -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Isc.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Isc.pl deleted file mode 100644 index fc9f6c7f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Isc.pl +++ /dev/null @@ -1,20 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToIsc'}{'format'} = 'd'; # single decimal digit -$utf8::SwashInfo{'ToIsc'}{'missing'} = ''; # code point maps to the null string - -return <<'END'; -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Jg.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Jg.pl deleted file mode 100644 index 26666302..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Jg.pl +++ /dev/null @@ -1,191 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToJg'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToJg'}{'missing'} = 'No_Joining_Group'; - -return <<'END'; -620 Yeh -622 623 Alef -624 Waw -625 Alef -626 Yeh -627 Alef -628 Beh -629 Teh_Marbuta -62A 62B Beh -62C 62E Hah -62F 630 Dal -631 632 Reh -633 634 Seen -635 636 Sad -637 638 Tah -639 63A Ain -63B 63C Gaf -63D 63F Farsi_Yeh -641 Feh -642 Qaf -643 Kaf -644 Lam -645 Meem -646 Noon -647 Heh -648 Waw -649 64A Yeh -66E Beh -66F Qaf -671 673 Alef -675 Alef -676 677 Waw -678 Yeh -679 680 Beh -681 687 Hah -688 690 Dal -691 699 Reh -69A 69C Seen -69D 69E Sad -69F Tah -6A0 Ain -6A1 6A6 Feh -6A7 6A8 Qaf -6A9 Gaf -6AA Swash_Kaf -6AB Gaf -6AC 6AE Kaf -6AF 6B4 Gaf -6B5 6B8 Lam -6B9 6BC Noon -6BD Nya -6BE Knotted_Heh -6BF Hah -6C0 Teh_Marbuta -6C1 6C2 Heh_Goal -6C3 Teh_Marbuta_Goal -6C4 6CB Waw -6CC Farsi_Yeh -6CD Yeh_With_Tail -6CE Farsi_Yeh -6CF Waw -6D0 6D1 Yeh -6D2 6D3 Yeh_Barree -6D5 Teh_Marbuta -6EE Dal -6EF Reh -6FA Seen -6FB Sad -6FC Ain -6FF Knotted_Heh -710 Alaph -712 Beth -713 714 Gamal -715 716 Dalath_Rish -717 He -718 Syriac_Waw -719 Zain -71A Heth -71B 71C Teth -71D Yudh -71E Yudh_He -71F Kaph -720 Lamadh -721 Mim -722 Nun -723 Semkath -724 Final_Semkath -725 E -726 Pe -727 Reversed_Pe -728 Sadhe -729 Qaph -72A Dalath_Rish -72B Shin -72C Taw -72D Beth -72E Gamal -72F Dalath_Rish -74D Zhain -74E Khaph -74F Fe -750 756 Beh -757 758 Hah -759 75A Dal -75B Reh -75C Seen -75D 75F Ain -760 761 Feh -762 764 Gaf -765 766 Meem -767 769 Noon -76A Lam -76B 76C Reh -76D Seen -76E 76F Hah -770 Seen -771 Reh -772 Hah -773 774 Alef -775 776 Farsi_Yeh -777 Yeh -778 779 Waw -77A 77B Burushaski_Yeh_Barree -77C Hah -77D 77E Seen -77F Kaf -8A0 8A1 Beh -8A2 Hah -8A3 Tah -8A4 Feh -8A5 Qaf -8A6 Lam -8A7 Meem -8A8 8A9 Yeh -8AA Reh -8AB Waw -8AC Rohingya_Yeh -8AE Dal -8AF Sad -8B0 Gaf -8B1 Straight_Waw -8B2 Reh -8B3 Ain -8B4 Kaf -10AC0 Manichaean_Aleph -10AC1 10AC2 Manichaean_Beth -10AC3 10AC4 Manichaean_Gimel -10AC5 Manichaean_Daleth -10AC7 Manichaean_Waw -10AC9 10ACA Manichaean_Zayin -10ACD Manichaean_Heth -10ACE Manichaean_Teth -10ACF Manichaean_Yodh -10AD0 10AD2 Manichaean_Kaph -10AD3 Manichaean_Lamedh -10AD4 Manichaean_Dhamedh -10AD5 Manichaean_Thamedh -10AD6 Manichaean_Mem -10AD7 Manichaean_Nun -10AD8 Manichaean_Samekh -10AD9 10ADA Manichaean_Ayin -10ADB 10ADC Manichaean_Pe -10ADD Manichaean_Sadhe -10ADE 10AE0 Manichaean_Qoph -10AE1 Manichaean_Resh -10AE4 Manichaean_Taw -10AEB Manichaean_One -10AEC Manichaean_Five -10AED Manichaean_Ten -10AEE Manichaean_Twenty -10AEF Manichaean_Hundred -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Jt.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Jt.pl deleted file mode 100644 index b25e638b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Jt.pl +++ /dev/null @@ -1,408 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToJt'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToJt'}{'missing'} = 'Non_Joining'; - -return <<'END'; -AD T -300 36F T -483 489 T -591 5BD T -5BF T -5C1 5C2 T -5C4 5C5 T -5C7 T -610 61A T -61C T -620 D -622 625 R -626 D -627 R -628 D -629 R -62A 62E D -62F 632 R -633 63F D -640 C -641 647 D -648 R -649 64A D -64B 65F T -66E 66F D -670 T -671 673 R -675 677 R -678 687 D -688 699 R -69A 6BF D -6C0 R -6C1 6C2 D -6C3 6CB R -6CC D -6CD R -6CE D -6CF R -6D0 6D1 D -6D2 6D3 R -6D5 R -6D6 6DC T -6DF 6E4 T -6E7 6E8 T -6EA 6ED T -6EE 6EF R -6FA 6FC D -6FF D -70F T -710 R -711 T -712 714 D -715 719 R -71A 71D D -71E R -71F 727 D -728 R -729 D -72A R -72B D -72C R -72D 72E D -72F R -730 74A T -74D R -74E 758 D -759 75B R -75C 76A D -76B 76C R -76D 770 D -771 R -772 D -773 774 R -775 777 D -778 779 R -77A 77F D -7A6 7B0 T -7CA 7EA D -7EB 7F3 T -7FA C -816 819 T -81B 823 T -825 827 T -829 82D T -840 R -841 845 D -846 847 R -848 D -849 R -84A 853 D -854 R -855 D -859 85B T -8A0 8A9 D -8AA 8AC R -8AE R -8AF 8B0 D -8B1 8B2 R -8B3 8B4 D -8E3 902 T -93A T -93C T -941 948 T -94D T -951 957 T -962 963 T -981 T -9BC T -9C1 9C4 T -9CD T -9E2 9E3 T -A01 A02 T -A3C T -A41 A42 T -A47 A48 T -A4B A4D T -A51 T -A70 A71 T -A75 T -A81 A82 T -ABC T -AC1 AC5 T -AC7 AC8 T -ACD T -AE2 AE3 T -B01 T -B3C T -B3F T -B41 B44 T -B4D T -B56 T -B62 B63 T -B82 T -BC0 T -BCD T -C00 T -C3E C40 T -C46 C48 T -C4A C4D T -C55 C56 T -C62 C63 T -C81 T -CBC T -CBF T -CC6 T -CCC CCD T -CE2 CE3 T -D01 T -D41 D44 T -D4D T -D62 D63 T -DCA T -DD2 DD4 T -DD6 T -E31 T -E34 E3A T -E47 E4E T -EB1 T -EB4 EB9 T -EBB EBC T -EC8 ECD T -F18 F19 T -F35 T -F37 T -F39 T -F71 F7E T -F80 F84 T -F86 F87 T -F8D F97 T -F99 FBC T -FC6 T -102D 1030 T -1032 1037 T -1039 103A T -103D 103E T -1058 1059 T -105E 1060 T -1071 1074 T -1082 T -1085 1086 T -108D T -109D T -135D 135F T -1712 1714 T -1732 1734 T -1752 1753 T -1772 1773 T -17B4 17B5 T -17B7 17BD T -17C6 T -17C9 17D3 T -17DD T -1807 D -180A C -180B 180D T -1820 1877 D -1887 18A8 D -18A9 T -18AA D -1920 1922 T -1927 1928 T -1932 T -1939 193B T -1A17 1A18 T -1A1B T -1A56 T -1A58 1A5E T -1A60 T -1A62 T -1A65 1A6C T -1A73 1A7C T -1A7F T -1AB0 1ABE T -1B00 1B03 T -1B34 T -1B36 1B3A T -1B3C T -1B42 T -1B6B 1B73 T -1B80 1B81 T -1BA2 1BA5 T -1BA8 1BA9 T -1BAB 1BAD T -1BE6 T -1BE8 1BE9 T -1BED T -1BEF 1BF1 T -1C2C 1C33 T -1C36 1C37 T -1CD0 1CD2 T -1CD4 1CE0 T -1CE2 1CE8 T -1CED T -1CF4 T -1CF8 1CF9 T -1DC0 1DF5 T -1DFC 1DFF T -200B T -200D C -200E 200F T -202A 202E T -2060 2064 T -206A 206F T -20D0 20F0 T -2CEF 2CF1 T -2D7F T -2DE0 2DFF T -302A 302D T -3099 309A T -A66F A672 T -A674 A67D T -A69E A69F T -A6F0 A6F1 T -A802 T -A806 T -A80B T -A825 A826 T -A840 A871 D -A872 L -A8C4 T -A8E0 A8F1 T -A926 A92D T -A947 A951 T -A980 A982 T -A9B3 T -A9B6 A9B9 T -A9BC T -A9E5 T -AA29 AA2E T -AA31 AA32 T -AA35 AA36 T -AA43 T -AA4C T -AA7C T -AAB0 T -AAB2 AAB4 T -AAB7 AAB8 T -AABE AABF T -AAC1 T -AAEC AAED T -AAF6 T -ABE5 T -ABE8 T -ABED T -FB1E T -FE00 FE0F T -FE20 FE2F T -FEFF T -FFF9 FFFB T -101FD T -102E0 T -10376 1037A T -10A01 10A03 T -10A05 10A06 T -10A0C 10A0F T -10A38 10A3A T -10A3F T -10AC0 10AC4 D -10AC5 R -10AC7 R -10AC9 10ACA R -10ACD L -10ACE 10AD2 R -10AD3 10AD6 D -10AD7 L -10AD8 10ADC D -10ADD R -10ADE 10AE0 D -10AE1 R -10AE4 R -10AE5 10AE6 T -10AEB 10AEE D -10AEF R -10B80 D -10B81 R -10B82 D -10B83 10B85 R -10B86 10B88 D -10B89 R -10B8A 10B8B D -10B8C R -10B8D D -10B8E 10B8F R -10B90 D -10B91 R -10BA9 10BAC R -10BAD 10BAE D -11001 T -11038 11046 T -1107F 11081 T -110B3 110B6 T -110B9 110BA T -110BD T -11100 11102 T -11127 1112B T -1112D 11134 T -11173 T -11180 11181 T -111B6 111BE T -111CA 111CC T -1122F 11231 T -11234 T -11236 11237 T -112DF T -112E3 112EA T -11300 11301 T -1133C T -11340 T -11366 1136C T -11370 11374 T -114B3 114B8 T -114BA T -114BF 114C0 T -114C2 114C3 T -115B2 115B5 T -115BC 115BD T -115BF 115C0 T -115DC 115DD T -11633 1163A T -1163D T -1163F 11640 T -116AB T -116AD T -116B0 116B5 T -116B7 T -1171D 1171F T -11722 11725 T -11727 1172B T -16AF0 16AF4 T -16B30 16B36 T -16F8F 16F92 T -1BC9D 1BC9E T -1BCA0 1BCA3 T -1D167 1D169 T -1D173 1D182 T -1D185 1D18B T -1D1AA 1D1AD T -1D242 1D244 T -1DA00 1DA36 T -1DA3B 1DA6C T -1DA75 T -1DA84 T -1DA9B 1DA9F T -1DAA1 1DAAF T -1E8D0 1E8D6 T -E0001 T -E0020 E007F T -E0100 E01EF T -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Lb.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Lb.pl deleted file mode 100644 index db58ccdd..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Lb.pl +++ /dev/null @@ -1,2508 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToLb'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToLb'}{'missing'} = 'Unknown'; - -return <<'END'; -0 8 CM -9 BA -A LF -B C BK -D CR -E 1F CM -20 SP -21 EX -22 QU -23 AL -24 PR -25 PO -26 AL -27 QU -28 OP -29 CP -2A AL -2B PR -2C IS -2D HY -2E IS -2F SY -30 39 NU -3A 3B IS -3C 3E AL -3F EX -40 5A AL -5B OP -5C PR -5D CP -5E 7A AL -7B OP -7C BA -7D CL -7E AL -7F 84 CM -85 NL -86 9F CM -A0 GL -A1 OP -A2 PO -A3 A5 PR -A6 AL -A7 A8 AI -A9 AL -AA AI -AB QU -AC AL -AD BA -AE AF AL -B0 PO -B1 PR -B2 B3 AI -B4 BB -B5 AL -B6 BA AI -BB QU -BC BE AI -BF OP -C0 D6 AL -D7 AI -D8 F6 AL -F7 AI -F8 2C6 AL -2C7 AI -2C8 BB -2C9 2CB AI -2CC BB -2CD AI -2CE 2CF AL -2D0 AI -2D1 2D7 AL -2D8 2DB AI -2DC AL -2DD AI -2DE AL -2DF BB -2E0 2FF AL -300 34E CM -34F GL -350 35B CM -35C 362 GL -363 36F CM -370 377 AL -37A 37D AL -37E IS -37F AL -384 38A AL -38C AL -38E 3A1 AL -3A3 482 AL -483 489 CM -48A 52F AL -531 556 AL -559 55F AL -561 587 AL -589 IS -58A BA -58D 58E AL -58F PR -591 5BD CM -5BE BA -5BF CM -5C0 AL -5C1 5C2 CM -5C3 AL -5C4 5C5 CM -5C6 EX -5C7 CM -5D0 5EA HL -5F0 5F2 HL -5F3 5F4 AL -600 608 AL -609 60B PO -60C 60D IS -60E 60F AL -610 61A CM -61B EX -61C CM -61E 61F EX -620 64A AL -64B 65F CM -660 669 NU -66A PO -66B 66C NU -66D 66F AL -670 CM -671 6D3 AL -6D4 EX -6D5 AL -6D6 6DC CM -6DD 6DE AL -6DF 6E4 CM -6E5 6E6 AL -6E7 6E8 CM -6E9 AL -6EA 6ED CM -6EE 6EF AL -6F0 6F9 NU -6FA 70D AL -70F 710 AL -711 CM -712 72F AL -730 74A CM -74D 7A5 AL -7A6 7B0 CM -7B1 AL -7C0 7C9 NU -7CA 7EA AL -7EB 7F3 CM -7F4 7F7 AL -7F8 IS -7F9 EX -7FA AL -800 815 AL -816 819 CM -81A AL -81B 823 CM -824 AL -825 827 CM -828 AL -829 82D CM -830 83E AL -840 858 AL -859 85B CM -85E AL -8A0 8B4 AL -8E3 903 CM -904 939 AL -93A 93C CM -93D AL -93E 94F CM -950 AL -951 957 CM -958 961 AL -962 963 CM -964 965 BA -966 96F NU -970 980 AL -981 983 CM -985 98C AL -98F 990 AL -993 9A8 AL -9AA 9B0 AL -9B2 AL -9B6 9B9 AL -9BC CM -9BD AL -9BE 9C4 CM -9C7 9C8 CM -9CB 9CD CM -9CE AL -9D7 CM -9DC 9DD AL -9DF 9E1 AL -9E2 9E3 CM -9E6 9EF NU -9F0 9F1 AL -9F2 9F3 PO -9F4 9F8 AL -9F9 PO -9FA AL -9FB PR -A01 A03 CM -A05 A0A AL -A0F A10 AL -A13 A28 AL -A2A A30 AL -A32 A33 AL -A35 A36 AL -A38 A39 AL -A3C CM -A3E A42 CM -A47 A48 CM -A4B A4D CM -A51 CM -A59 A5C AL -A5E AL -A66 A6F NU -A70 A71 CM -A72 A74 AL -A75 CM -A81 A83 CM -A85 A8D AL -A8F A91 AL -A93 AA8 AL -AAA AB0 AL -AB2 AB3 AL -AB5 AB9 AL -ABC CM -ABD AL -ABE AC5 CM -AC7 AC9 CM -ACB ACD CM -AD0 AL -AE0 AE1 AL -AE2 AE3 CM -AE6 AEF NU -AF0 AL -AF1 PR -AF9 AL -B01 B03 CM -B05 B0C AL -B0F B10 AL -B13 B28 AL -B2A B30 AL -B32 B33 AL -B35 B39 AL -B3C CM -B3D AL -B3E B44 CM -B47 B48 CM -B4B B4D CM -B56 B57 CM -B5C B5D AL -B5F B61 AL -B62 B63 CM -B66 B6F NU -B70 B77 AL -B82 CM -B83 AL -B85 B8A AL -B8E B90 AL -B92 B95 AL -B99 B9A AL -B9C AL -B9E B9F AL -BA3 BA4 AL -BA8 BAA AL -BAE BB9 AL -BBE BC2 CM -BC6 BC8 CM -BCA BCD CM -BD0 AL -BD7 CM -BE6 BEF NU -BF0 BF8 AL -BF9 PR -BFA AL -C00 C03 CM -C05 C0C AL -C0E C10 AL -C12 C28 AL -C2A C39 AL -C3D AL -C3E C44 CM -C46 C48 CM -C4A C4D CM -C55 C56 CM -C58 C5A AL -C60 C61 AL -C62 C63 CM -C66 C6F NU -C78 C7F AL -C81 C83 CM -C85 C8C AL -C8E C90 AL -C92 CA8 AL -CAA CB3 AL -CB5 CB9 AL -CBC CM -CBD AL -CBE CC4 CM -CC6 CC8 CM -CCA CCD CM -CD5 CD6 CM -CDE AL -CE0 CE1 AL -CE2 CE3 CM -CE6 CEF NU -CF1 CF2 AL -D01 D03 CM -D05 D0C AL -D0E D10 AL -D12 D3A AL -D3D AL -D3E D44 CM -D46 D48 CM -D4A D4D CM -D4E AL -D57 CM -D5F D61 AL -D62 D63 CM -D66 D6F NU -D70 D75 AL -D79 PO -D7A D7F AL -D82 D83 CM -D85 D96 AL -D9A DB1 AL -DB3 DBB AL -DBD AL -DC0 DC6 AL -DCA CM -DCF DD4 CM -DD6 CM -DD8 DDF CM -DE6 DEF NU -DF2 DF3 CM -DF4 AL -E01 E3A SA -E3F PR -E40 E4E SA -E4F AL -E50 E59 NU -E5A E5B BA -E81 E82 SA -E84 SA -E87 E88 SA -E8A SA -E8D SA -E94 E97 SA -E99 E9F SA -EA1 EA3 SA -EA5 SA -EA7 SA -EAA EAB SA -EAD EB9 SA -EBB EBD SA -EC0 EC4 SA -EC6 SA -EC8 ECD SA -ED0 ED9 NU -EDC EDF SA -F00 AL -F01 F04 BB -F05 AL -F06 F07 BB -F08 GL -F09 F0A BB -F0B BA -F0C GL -F0D F11 EX -F12 GL -F13 AL -F14 EX -F15 F17 AL -F18 F19 CM -F1A F1F AL -F20 F29 NU -F2A F33 AL -F34 BA -F35 CM -F36 AL -F37 CM -F38 AL -F39 CM -F3A OP -F3B CL -F3C OP -F3D CL -F3E F3F CM -F40 F47 AL -F49 F6C AL -F71 F7E CM -F7F BA -F80 F84 CM -F85 BA -F86 F87 CM -F88 F8C AL -F8D F97 CM -F99 FBC CM -FBE FBF BA -FC0 FC5 AL -FC6 CM -FC7 FCC AL -FCE FCF AL -FD0 FD1 BB -FD2 BA -FD3 BB -FD4 FD8 AL -FD9 FDA GL -1000 103F SA -1040 1049 NU -104A 104B BA -104C 104F AL -1050 108F SA -1090 1099 NU -109A 109F SA -10A0 10C5 AL -10C7 AL -10CD AL -10D0 10FF AL -1100 115F JL -1160 11A7 JV -11A8 11FF JT -1200 1248 AL -124A 124D AL -1250 1256 AL -1258 AL -125A 125D AL -1260 1288 AL -128A 128D AL -1290 12B0 AL -12B2 12B5 AL -12B8 12BE AL -12C0 AL -12C2 12C5 AL -12C8 12D6 AL -12D8 1310 AL -1312 1315 AL -1318 135A AL -135D 135F CM -1360 AL -1361 BA -1362 137C AL -1380 1399 AL -13A0 13F5 AL -13F8 13FD AL -1400 BA -1401 167F AL -1680 BA -1681 169A AL -169B OP -169C CL -16A0 16EA AL -16EB 16ED BA -16EE 16F8 AL -1700 170C AL -170E 1711 AL -1712 1714 CM -1720 1731 AL -1732 1734 CM -1735 1736 BA -1740 1751 AL -1752 1753 CM -1760 176C AL -176E 1770 AL -1772 1773 CM -1780 17D3 SA -17D4 17D5 BA -17D6 NS -17D7 SA -17D8 BA -17D9 AL -17DA BA -17DB PR -17DC 17DD SA -17E0 17E9 NU -17F0 17F9 AL -1800 1801 AL -1802 1803 EX -1804 1805 BA -1806 BB -1807 AL -1808 1809 EX -180A AL -180B 180D CM -180E GL -1810 1819 NU -1820 1877 AL -1880 18A8 AL -18A9 CM -18AA AL -18B0 18F5 AL -1900 191E AL -1920 192B CM -1930 193B CM -1940 AL -1944 1945 EX -1946 194F NU -1950 196D SA -1970 1974 SA -1980 19AB SA -19B0 19C9 SA -19D0 19D9 NU -19DA SA -19DE 19DF SA -19E0 1A16 AL -1A17 1A1B CM -1A1E 1A1F AL -1A20 1A5E SA -1A60 1A7C SA -1A7F CM -1A80 1A89 NU -1A90 1A99 NU -1AA0 1AAD SA -1AB0 1ABE CM -1B00 1B04 CM -1B05 1B33 AL -1B34 1B44 CM -1B45 1B4B AL -1B50 1B59 NU -1B5A 1B5B BA -1B5C AL -1B5D 1B60 BA -1B61 1B6A AL -1B6B 1B73 CM -1B74 1B7C AL -1B80 1B82 CM -1B83 1BA0 AL -1BA1 1BAD CM -1BAE 1BAF AL -1BB0 1BB9 NU -1BBA 1BE5 AL -1BE6 1BF3 CM -1BFC 1C23 AL -1C24 1C37 CM -1C3B 1C3F BA -1C40 1C49 NU -1C4D 1C4F AL -1C50 1C59 NU -1C5A 1C7D AL -1C7E 1C7F BA -1CC0 1CC7 AL -1CD0 1CD2 CM -1CD3 AL -1CD4 1CE8 CM -1CE9 1CEC AL -1CED CM -1CEE 1CF1 AL -1CF2 1CF4 CM -1CF5 1CF6 AL -1CF8 1CF9 CM -1D00 1DBF AL -1DC0 1DF5 CM -1DFC 1DFF CM -1E00 1F15 AL -1F18 1F1D AL -1F20 1F45 AL -1F48 1F4D AL -1F50 1F57 AL -1F59 AL -1F5B AL -1F5D AL -1F5F 1F7D AL -1F80 1FB4 AL -1FB6 1FC4 AL -1FC6 1FD3 AL -1FD6 1FDB AL -1FDD 1FEF AL -1FF2 1FF4 AL -1FF6 1FFC AL -1FFD BB -1FFE AL -2000 2006 BA -2007 GL -2008 200A BA -200B ZW -200C 200F CM -2010 BA -2011 GL -2012 2013 BA -2014 B2 -2015 2016 AI -2017 AL -2018 2019 QU -201A OP -201B 201D QU -201E OP -201F QU -2020 2021 AI -2022 2023 AL -2024 2026 IN -2027 BA -2028 2029 BK -202A 202E CM -202F GL -2030 2037 PO -2038 AL -2039 203A QU -203B AI -203C 203D NS -203E 2043 AL -2044 IS -2045 OP -2046 CL -2047 2049 NS -204A 2055 AL -2056 BA -2057 AL -2058 205B BA -205C AL -205D 205F BA -2060 WJ -2061 2064 AL -2066 206F CM -2070 2071 AL -2074 AI -2075 207C AL -207D OP -207E CL -207F AI -2080 AL -2081 2084 AI -2085 208C AL -208D OP -208E CL -2090 209C AL -20A0 20A6 PR -20A7 PO -20A8 20B5 PR -20B6 PO -20B7 20BA PR -20BB PO -20BC 20BD PR -20BE PO -20BF 20CF PR -20D0 20F0 CM -2100 2102 AL -2103 PO -2104 AL -2105 AI -2106 2108 AL -2109 PO -210A 2112 AL -2113 AI -2114 2115 AL -2116 PR -2117 2120 AL -2121 2122 AI -2123 212A AL -212B AI -212C 2153 AL -2154 2155 AI -2156 215A AL -215B AI -215C 215D AL -215E AI -215F AL -2160 216B AI -216C 216F AL -2170 2179 AI -217A 2188 AL -2189 AI -218A 218B AL -2190 2199 AI -219A 21D1 AL -21D2 AI -21D3 AL -21D4 AI -21D5 21FF AL -2200 AI -2201 AL -2202 2203 AI -2204 2206 AL -2207 2208 AI -2209 220A AL -220B AI -220C 220E AL -220F AI -2210 AL -2211 AI -2212 2213 PR -2214 AL -2215 AI -2216 2219 AL -221A AI -221B 221C AL -221D 2220 AI -2221 2222 AL -2223 AI -2224 AL -2225 AI -2226 AL -2227 222C AI -222D AL -222E AI -222F 2233 AL -2234 2237 AI -2238 223B AL -223C 223D AI -223E 2247 AL -2248 AI -2249 224B AL -224C AI -224D 2251 AL -2252 AI -2253 225F AL -2260 2261 AI -2262 2263 AL -2264 2267 AI -2268 2269 AL -226A 226B AI -226C 226D AL -226E 226F AI -2270 2281 AL -2282 2283 AI -2284 2285 AL -2286 2287 AI -2288 2294 AL -2295 AI -2296 2298 AL -2299 AI -229A 22A4 AL -22A5 AI -22A6 22BE AL -22BF AI -22C0 22EE AL -22EF IN -22F0 2307 AL -2308 OP -2309 CL -230A OP -230B CL -230C 2311 AL -2312 AI -2313 2319 AL -231A 231B ID -231C 2328 AL -2329 OP -232A CL -232B 23EF AL -23F0 23F3 ID -23F4 23FA AL -2400 2426 AL -2440 244A AL -2460 24FE AI -24FF AL -2500 254B AI -254C 254F AL -2550 2574 AI -2575 257F AL -2580 258F AI -2590 2591 AL -2592 2595 AI -2596 259F AL -25A0 25A1 AI -25A2 AL -25A3 25A9 AI -25AA 25B1 AL -25B2 25B3 AI -25B4 25B5 AL -25B6 25B7 AI -25B8 25BB AL -25BC 25BD AI -25BE 25BF AL -25C0 25C1 AI -25C2 25C5 AL -25C6 25C8 AI -25C9 25CA AL -25CB AI -25CC 25CD AL -25CE 25D1 AI -25D2 25E1 AL -25E2 25E5 AI -25E6 25EE AL -25EF AI -25F0 25FF AL -2600 2603 ID -2604 AL -2605 2606 AI -2607 2608 AL -2609 AI -260A 260D AL -260E 260F AI -2610 2613 AL -2614 2615 ID -2616 2617 AI -2618 ID -2619 AL -261A 261F ID -2620 2638 AL -2639 263B ID -263C 263F AL -2640 AI -2641 AL -2642 AI -2643 265F AL -2660 2661 AI -2662 AL -2663 2665 AI -2666 AL -2667 AI -2668 ID -2669 266A AI -266B AL -266C 266D AI -266E AL -266F AI -2670 267E AL -267F ID -2680 269D AL -269E 269F AI -26A0 26BC AL -26BD 26C8 ID -26C9 26CC AI -26CD ID -26CE AL -26CF 26D1 ID -26D2 AI -26D3 26D4 ID -26D5 26D7 AI -26D8 26D9 ID -26DA 26DB AI -26DC ID -26DD 26DE AI -26DF 26E1 ID -26E2 AL -26E3 AI -26E4 26E7 AL -26E8 26E9 AI -26EA ID -26EB 26F0 AI -26F1 26F5 ID -26F6 AI -26F7 26FA ID -26FB 26FC AI -26FD 2704 ID -2705 2707 AL -2708 270D ID -270E 2756 AL -2757 AI -2758 275A AL -275B 2760 QU -2761 AL -2762 2763 EX -2764 2767 AL -2768 OP -2769 CL -276A OP -276B CL -276C OP -276D CL -276E OP -276F CL -2770 OP -2771 CL -2772 OP -2773 CL -2774 OP -2775 CL -2776 2793 AI -2794 27C4 AL -27C5 OP -27C6 CL -27C7 27E5 AL -27E6 OP -27E7 CL -27E8 OP -27E9 CL -27EA OP -27EB CL -27EC OP -27ED CL -27EE OP -27EF CL -27F0 2982 AL -2983 OP -2984 CL -2985 OP -2986 CL -2987 OP -2988 CL -2989 OP -298A CL -298B OP -298C CL -298D OP -298E CL -298F OP -2990 CL -2991 OP -2992 CL -2993 OP -2994 CL -2995 OP -2996 CL -2997 OP -2998 CL -2999 29D7 AL -29D8 OP -29D9 CL -29DA OP -29DB CL -29DC 29FB AL -29FC OP -29FD CL -29FE 2B54 AL -2B55 2B59 AI -2B5A 2B73 AL -2B76 2B95 AL -2B98 2BB9 AL -2BBD 2BC8 AL -2BCA 2BD1 AL -2BEC 2BEF AL -2C00 2C2E AL -2C30 2C5E AL -2C60 2CEE AL -2CEF 2CF1 CM -2CF2 2CF3 AL -2CF9 EX -2CFA 2CFC BA -2CFD AL -2CFE EX -2CFF BA -2D00 2D25 AL -2D27 AL -2D2D AL -2D30 2D67 AL -2D6F AL -2D70 BA -2D7F CM -2D80 2D96 AL -2DA0 2DA6 AL -2DA8 2DAE AL -2DB0 2DB6 AL -2DB8 2DBE AL -2DC0 2DC6 AL -2DC8 2DCE AL -2DD0 2DD6 AL -2DD8 2DDE AL -2DE0 2DFF CM -2E00 2E0D QU -2E0E 2E15 BA -2E16 AL -2E17 BA -2E18 OP -2E19 BA -2E1A 2E1B AL -2E1C 2E1D QU -2E1E 2E1F AL -2E20 2E21 QU -2E22 OP -2E23 CL -2E24 OP -2E25 CL -2E26 OP -2E27 CL -2E28 OP -2E29 CL -2E2A 2E2D BA -2E2E EX -2E2F AL -2E30 2E31 BA -2E32 AL -2E33 2E34 BA -2E35 2E39 AL -2E3A 2E3B B2 -2E3C 2E3E BA -2E3F AL -2E40 2E41 BA -2E42 OP -2E80 2E99 ID -2E9B 2EF3 ID -2F00 2FD5 ID -2FF0 2FFB ID -3000 BA -3001 3002 CL -3003 3004 ID -3005 NS -3006 3007 ID -3008 OP -3009 CL -300A OP -300B CL -300C OP -300D CL -300E OP -300F CL -3010 OP -3011 CL -3012 3013 ID -3014 OP -3015 CL -3016 OP -3017 CL -3018 OP -3019 CL -301A OP -301B CL -301C NS -301D OP -301E 301F CL -3020 3029 ID -302A 302F CM -3030 3034 ID -3035 CM -3036 303A ID -303B 303C NS -303D 303F ID -3041 CJ -3042 ID -3043 CJ -3044 ID -3045 CJ -3046 ID -3047 CJ -3048 ID -3049 CJ -304A 3062 ID -3063 CJ -3064 3082 ID -3083 CJ -3084 ID -3085 CJ -3086 ID -3087 CJ -3088 308D ID -308E CJ -308F 3094 ID -3095 3096 CJ -3099 309A CM -309B 309E NS -309F ID -30A0 NS -30A1 CJ -30A2 ID -30A3 CJ -30A4 ID -30A5 CJ -30A6 ID -30A7 CJ -30A8 ID -30A9 CJ -30AA 30C2 ID -30C3 CJ -30C4 30E2 ID -30E3 CJ -30E4 ID -30E5 CJ -30E6 ID -30E7 CJ -30E8 30ED ID -30EE CJ -30EF 30F4 ID -30F5 30F6 CJ -30F7 30FA ID -30FB NS -30FC CJ -30FD 30FE NS -30FF ID -3105 312D ID -3131 318E ID -3190 31BA ID -31C0 31E3 ID -31F0 31FF CJ -3200 321E ID -3220 3247 ID -3248 324F AI -3250 32FE ID -3300 4DBF ID -4DC0 4DFF AL -4E00 A014 ID -A015 NS -A016 A48C ID -A490 A4C6 ID -A4D0 A4FD AL -A4FE A4FF BA -A500 A60C AL -A60D BA -A60E EX -A60F BA -A610 A61F AL -A620 A629 NU -A62A A62B AL -A640 A66E AL -A66F A672 CM -A673 AL -A674 A67D CM -A67E A69D AL -A69E A69F CM -A6A0 A6EF AL -A6F0 A6F1 CM -A6F2 AL -A6F3 A6F7 BA -A700 A7AD AL -A7B0 A7B7 AL -A7F7 A801 AL -A802 CM -A803 A805 AL -A806 CM -A807 A80A AL -A80B CM -A80C A822 AL -A823 A827 CM -A828 A82B AL -A830 A837 AL -A838 PO -A839 AL -A840 A873 AL -A874 A875 BB -A876 A877 EX -A880 A881 CM -A882 A8B3 AL -A8B4 A8C4 CM -A8CE A8CF BA -A8D0 A8D9 NU -A8E0 A8F1 CM -A8F2 A8FB AL -A8FC BB -A8FD AL -A900 A909 NU -A90A A925 AL -A926 A92D CM -A92E A92F BA -A930 A946 AL -A947 A953 CM -A95F AL -A960 A97C JL -A980 A983 CM -A984 A9B2 AL -A9B3 A9C0 CM -A9C1 A9C6 AL -A9C7 A9C9 BA -A9CA A9CD AL -A9CF AL -A9D0 A9D9 NU -A9DE A9DF AL -A9E0 A9EF SA -A9F0 A9F9 NU -A9FA A9FE SA -AA00 AA28 AL -AA29 AA36 CM -AA40 AA42 AL -AA43 CM -AA44 AA4B AL -AA4C AA4D CM -AA50 AA59 NU -AA5C AL -AA5D AA5F BA -AA60 AAC2 SA -AADB AADF SA -AAE0 AAEA AL -AAEB AAEF CM -AAF0 AAF1 BA -AAF2 AAF4 AL -AAF5 AAF6 CM -AB01 AB06 AL -AB09 AB0E AL -AB11 AB16 AL -AB20 AB26 AL -AB28 AB2E AL -AB30 AB65 AL -AB70 ABE2 AL -ABE3 ABEA CM -ABEB BA -ABEC ABED CM -ABF0 ABF9 NU -AC00 H2 -AC01 AC1B H3 -AC1C H2 -AC1D AC37 H3 -AC38 H2 -AC39 AC53 H3 -AC54 H2 -AC55 AC6F H3 -AC70 H2 -AC71 AC8B H3 -AC8C H2 -AC8D ACA7 H3 -ACA8 H2 -ACA9 ACC3 H3 -ACC4 H2 -ACC5 ACDF H3 -ACE0 H2 -ACE1 ACFB H3 -ACFC H2 -ACFD AD17 H3 -AD18 H2 -AD19 AD33 H3 -AD34 H2 -AD35 AD4F H3 -AD50 H2 -AD51 AD6B H3 -AD6C H2 -AD6D AD87 H3 -AD88 H2 -AD89 ADA3 H3 -ADA4 H2 -ADA5 ADBF H3 -ADC0 H2 -ADC1 ADDB H3 -ADDC H2 -ADDD ADF7 H3 -ADF8 H2 -ADF9 AE13 H3 -AE14 H2 -AE15 AE2F H3 -AE30 H2 -AE31 AE4B H3 -AE4C H2 -AE4D AE67 H3 -AE68 H2 -AE69 AE83 H3 -AE84 H2 -AE85 AE9F H3 -AEA0 H2 -AEA1 AEBB H3 -AEBC H2 -AEBD AED7 H3 -AED8 H2 -AED9 AEF3 H3 -AEF4 H2 -AEF5 AF0F H3 -AF10 H2 -AF11 AF2B H3 -AF2C H2 -AF2D AF47 H3 -AF48 H2 -AF49 AF63 H3 -AF64 H2 -AF65 AF7F H3 -AF80 H2 -AF81 AF9B H3 -AF9C H2 -AF9D AFB7 H3 -AFB8 H2 -AFB9 AFD3 H3 -AFD4 H2 -AFD5 AFEF H3 -AFF0 H2 -AFF1 B00B H3 -B00C H2 -B00D B027 H3 -B028 H2 -B029 B043 H3 -B044 H2 -B045 B05F H3 -B060 H2 -B061 B07B H3 -B07C H2 -B07D B097 H3 -B098 H2 -B099 B0B3 H3 -B0B4 H2 -B0B5 B0CF H3 -B0D0 H2 -B0D1 B0EB H3 -B0EC H2 -B0ED B107 H3 -B108 H2 -B109 B123 H3 -B124 H2 -B125 B13F H3 -B140 H2 -B141 B15B H3 -B15C H2 -B15D B177 H3 -B178 H2 -B179 B193 H3 -B194 H2 -B195 B1AF H3 -B1B0 H2 -B1B1 B1CB H3 -B1CC H2 -B1CD B1E7 H3 -B1E8 H2 -B1E9 B203 H3 -B204 H2 -B205 B21F H3 -B220 H2 -B221 B23B H3 -B23C H2 -B23D B257 H3 -B258 H2 -B259 B273 H3 -B274 H2 -B275 B28F H3 -B290 H2 -B291 B2AB H3 -B2AC H2 -B2AD B2C7 H3 -B2C8 H2 -B2C9 B2E3 H3 -B2E4 H2 -B2E5 B2FF H3 -B300 H2 -B301 B31B H3 -B31C H2 -B31D B337 H3 -B338 H2 -B339 B353 H3 -B354 H2 -B355 B36F H3 -B370 H2 -B371 B38B H3 -B38C H2 -B38D B3A7 H3 -B3A8 H2 -B3A9 B3C3 H3 -B3C4 H2 -B3C5 B3DF H3 -B3E0 H2 -B3E1 B3FB H3 -B3FC H2 -B3FD B417 H3 -B418 H2 -B419 B433 H3 -B434 H2 -B435 B44F H3 -B450 H2 -B451 B46B H3 -B46C H2 -B46D B487 H3 -B488 H2 -B489 B4A3 H3 -B4A4 H2 -B4A5 B4BF H3 -B4C0 H2 -B4C1 B4DB H3 -B4DC H2 -B4DD B4F7 H3 -B4F8 H2 -B4F9 B513 H3 -B514 H2 -B515 B52F H3 -B530 H2 -B531 B54B H3 -B54C H2 -B54D B567 H3 -B568 H2 -B569 B583 H3 -B584 H2 -B585 B59F H3 -B5A0 H2 -B5A1 B5BB H3 -B5BC H2 -B5BD B5D7 H3 -B5D8 H2 -B5D9 B5F3 H3 -B5F4 H2 -B5F5 B60F H3 -B610 H2 -B611 B62B H3 -B62C H2 -B62D B647 H3 -B648 H2 -B649 B663 H3 -B664 H2 -B665 B67F H3 -B680 H2 -B681 B69B H3 -B69C H2 -B69D B6B7 H3 -B6B8 H2 -B6B9 B6D3 H3 -B6D4 H2 -B6D5 B6EF H3 -B6F0 H2 -B6F1 B70B H3 -B70C H2 -B70D B727 H3 -B728 H2 -B729 B743 H3 -B744 H2 -B745 B75F H3 -B760 H2 -B761 B77B H3 -B77C H2 -B77D B797 H3 -B798 H2 -B799 B7B3 H3 -B7B4 H2 -B7B5 B7CF H3 -B7D0 H2 -B7D1 B7EB H3 -B7EC H2 -B7ED B807 H3 -B808 H2 -B809 B823 H3 -B824 H2 -B825 B83F H3 -B840 H2 -B841 B85B H3 -B85C H2 -B85D B877 H3 -B878 H2 -B879 B893 H3 -B894 H2 -B895 B8AF H3 -B8B0 H2 -B8B1 B8CB H3 -B8CC H2 -B8CD B8E7 H3 -B8E8 H2 -B8E9 B903 H3 -B904 H2 -B905 B91F H3 -B920 H2 -B921 B93B H3 -B93C H2 -B93D B957 H3 -B958 H2 -B959 B973 H3 -B974 H2 -B975 B98F H3 -B990 H2 -B991 B9AB H3 -B9AC H2 -B9AD B9C7 H3 -B9C8 H2 -B9C9 B9E3 H3 -B9E4 H2 -B9E5 B9FF H3 -BA00 H2 -BA01 BA1B H3 -BA1C H2 -BA1D BA37 H3 -BA38 H2 -BA39 BA53 H3 -BA54 H2 -BA55 BA6F H3 -BA70 H2 -BA71 BA8B H3 -BA8C H2 -BA8D BAA7 H3 -BAA8 H2 -BAA9 BAC3 H3 -BAC4 H2 -BAC5 BADF H3 -BAE0 H2 -BAE1 BAFB H3 -BAFC H2 -BAFD BB17 H3 -BB18 H2 -BB19 BB33 H3 -BB34 H2 -BB35 BB4F H3 -BB50 H2 -BB51 BB6B H3 -BB6C H2 -BB6D BB87 H3 -BB88 H2 -BB89 BBA3 H3 -BBA4 H2 -BBA5 BBBF H3 -BBC0 H2 -BBC1 BBDB H3 -BBDC H2 -BBDD BBF7 H3 -BBF8 H2 -BBF9 BC13 H3 -BC14 H2 -BC15 BC2F H3 -BC30 H2 -BC31 BC4B H3 -BC4C H2 -BC4D BC67 H3 -BC68 H2 -BC69 BC83 H3 -BC84 H2 -BC85 BC9F H3 -BCA0 H2 -BCA1 BCBB H3 -BCBC H2 -BCBD BCD7 H3 -BCD8 H2 -BCD9 BCF3 H3 -BCF4 H2 -BCF5 BD0F H3 -BD10 H2 -BD11 BD2B H3 -BD2C H2 -BD2D BD47 H3 -BD48 H2 -BD49 BD63 H3 -BD64 H2 -BD65 BD7F H3 -BD80 H2 -BD81 BD9B H3 -BD9C H2 -BD9D BDB7 H3 -BDB8 H2 -BDB9 BDD3 H3 -BDD4 H2 -BDD5 BDEF H3 -BDF0 H2 -BDF1 BE0B H3 -BE0C H2 -BE0D BE27 H3 -BE28 H2 -BE29 BE43 H3 -BE44 H2 -BE45 BE5F H3 -BE60 H2 -BE61 BE7B H3 -BE7C H2 -BE7D BE97 H3 -BE98 H2 -BE99 BEB3 H3 -BEB4 H2 -BEB5 BECF H3 -BED0 H2 -BED1 BEEB H3 -BEEC H2 -BEED BF07 H3 -BF08 H2 -BF09 BF23 H3 -BF24 H2 -BF25 BF3F H3 -BF40 H2 -BF41 BF5B H3 -BF5C H2 -BF5D BF77 H3 -BF78 H2 -BF79 BF93 H3 -BF94 H2 -BF95 BFAF H3 -BFB0 H2 -BFB1 BFCB H3 -BFCC H2 -BFCD BFE7 H3 -BFE8 H2 -BFE9 C003 H3 -C004 H2 -C005 C01F H3 -C020 H2 -C021 C03B H3 -C03C H2 -C03D C057 H3 -C058 H2 -C059 C073 H3 -C074 H2 -C075 C08F H3 -C090 H2 -C091 C0AB H3 -C0AC H2 -C0AD C0C7 H3 -C0C8 H2 -C0C9 C0E3 H3 -C0E4 H2 -C0E5 C0FF H3 -C100 H2 -C101 C11B H3 -C11C H2 -C11D C137 H3 -C138 H2 -C139 C153 H3 -C154 H2 -C155 C16F H3 -C170 H2 -C171 C18B H3 -C18C H2 -C18D C1A7 H3 -C1A8 H2 -C1A9 C1C3 H3 -C1C4 H2 -C1C5 C1DF H3 -C1E0 H2 -C1E1 C1FB H3 -C1FC H2 -C1FD C217 H3 -C218 H2 -C219 C233 H3 -C234 H2 -C235 C24F H3 -C250 H2 -C251 C26B H3 -C26C H2 -C26D C287 H3 -C288 H2 -C289 C2A3 H3 -C2A4 H2 -C2A5 C2BF H3 -C2C0 H2 -C2C1 C2DB H3 -C2DC H2 -C2DD C2F7 H3 -C2F8 H2 -C2F9 C313 H3 -C314 H2 -C315 C32F H3 -C330 H2 -C331 C34B H3 -C34C H2 -C34D C367 H3 -C368 H2 -C369 C383 H3 -C384 H2 -C385 C39F H3 -C3A0 H2 -C3A1 C3BB H3 -C3BC H2 -C3BD C3D7 H3 -C3D8 H2 -C3D9 C3F3 H3 -C3F4 H2 -C3F5 C40F H3 -C410 H2 -C411 C42B H3 -C42C H2 -C42D C447 H3 -C448 H2 -C449 C463 H3 -C464 H2 -C465 C47F H3 -C480 H2 -C481 C49B H3 -C49C H2 -C49D C4B7 H3 -C4B8 H2 -C4B9 C4D3 H3 -C4D4 H2 -C4D5 C4EF H3 -C4F0 H2 -C4F1 C50B H3 -C50C H2 -C50D C527 H3 -C528 H2 -C529 C543 H3 -C544 H2 -C545 C55F H3 -C560 H2 -C561 C57B H3 -C57C H2 -C57D C597 H3 -C598 H2 -C599 C5B3 H3 -C5B4 H2 -C5B5 C5CF H3 -C5D0 H2 -C5D1 C5EB H3 -C5EC H2 -C5ED C607 H3 -C608 H2 -C609 C623 H3 -C624 H2 -C625 C63F H3 -C640 H2 -C641 C65B H3 -C65C H2 -C65D C677 H3 -C678 H2 -C679 C693 H3 -C694 H2 -C695 C6AF H3 -C6B0 H2 -C6B1 C6CB H3 -C6CC H2 -C6CD C6E7 H3 -C6E8 H2 -C6E9 C703 H3 -C704 H2 -C705 C71F H3 -C720 H2 -C721 C73B H3 -C73C H2 -C73D C757 H3 -C758 H2 -C759 C773 H3 -C774 H2 -C775 C78F H3 -C790 H2 -C791 C7AB H3 -C7AC H2 -C7AD C7C7 H3 -C7C8 H2 -C7C9 C7E3 H3 -C7E4 H2 -C7E5 C7FF H3 -C800 H2 -C801 C81B H3 -C81C H2 -C81D C837 H3 -C838 H2 -C839 C853 H3 -C854 H2 -C855 C86F H3 -C870 H2 -C871 C88B H3 -C88C H2 -C88D C8A7 H3 -C8A8 H2 -C8A9 C8C3 H3 -C8C4 H2 -C8C5 C8DF H3 -C8E0 H2 -C8E1 C8FB H3 -C8FC H2 -C8FD C917 H3 -C918 H2 -C919 C933 H3 -C934 H2 -C935 C94F H3 -C950 H2 -C951 C96B H3 -C96C H2 -C96D C987 H3 -C988 H2 -C989 C9A3 H3 -C9A4 H2 -C9A5 C9BF H3 -C9C0 H2 -C9C1 C9DB H3 -C9DC H2 -C9DD C9F7 H3 -C9F8 H2 -C9F9 CA13 H3 -CA14 H2 -CA15 CA2F H3 -CA30 H2 -CA31 CA4B H3 -CA4C H2 -CA4D CA67 H3 -CA68 H2 -CA69 CA83 H3 -CA84 H2 -CA85 CA9F H3 -CAA0 H2 -CAA1 CABB H3 -CABC H2 -CABD CAD7 H3 -CAD8 H2 -CAD9 CAF3 H3 -CAF4 H2 -CAF5 CB0F H3 -CB10 H2 -CB11 CB2B H3 -CB2C H2 -CB2D CB47 H3 -CB48 H2 -CB49 CB63 H3 -CB64 H2 -CB65 CB7F H3 -CB80 H2 -CB81 CB9B H3 -CB9C H2 -CB9D CBB7 H3 -CBB8 H2 -CBB9 CBD3 H3 -CBD4 H2 -CBD5 CBEF H3 -CBF0 H2 -CBF1 CC0B H3 -CC0C H2 -CC0D CC27 H3 -CC28 H2 -CC29 CC43 H3 -CC44 H2 -CC45 CC5F H3 -CC60 H2 -CC61 CC7B H3 -CC7C H2 -CC7D CC97 H3 -CC98 H2 -CC99 CCB3 H3 -CCB4 H2 -CCB5 CCCF H3 -CCD0 H2 -CCD1 CCEB H3 -CCEC H2 -CCED CD07 H3 -CD08 H2 -CD09 CD23 H3 -CD24 H2 -CD25 CD3F H3 -CD40 H2 -CD41 CD5B H3 -CD5C H2 -CD5D CD77 H3 -CD78 H2 -CD79 CD93 H3 -CD94 H2 -CD95 CDAF H3 -CDB0 H2 -CDB1 CDCB H3 -CDCC H2 -CDCD CDE7 H3 -CDE8 H2 -CDE9 CE03 H3 -CE04 H2 -CE05 CE1F H3 -CE20 H2 -CE21 CE3B H3 -CE3C H2 -CE3D CE57 H3 -CE58 H2 -CE59 CE73 H3 -CE74 H2 -CE75 CE8F H3 -CE90 H2 -CE91 CEAB H3 -CEAC H2 -CEAD CEC7 H3 -CEC8 H2 -CEC9 CEE3 H3 -CEE4 H2 -CEE5 CEFF H3 -CF00 H2 -CF01 CF1B H3 -CF1C H2 -CF1D CF37 H3 -CF38 H2 -CF39 CF53 H3 -CF54 H2 -CF55 CF6F H3 -CF70 H2 -CF71 CF8B H3 -CF8C H2 -CF8D CFA7 H3 -CFA8 H2 -CFA9 CFC3 H3 -CFC4 H2 -CFC5 CFDF H3 -CFE0 H2 -CFE1 CFFB H3 -CFFC H2 -CFFD D017 H3 -D018 H2 -D019 D033 H3 -D034 H2 -D035 D04F H3 -D050 H2 -D051 D06B H3 -D06C H2 -D06D D087 H3 -D088 H2 -D089 D0A3 H3 -D0A4 H2 -D0A5 D0BF H3 -D0C0 H2 -D0C1 D0DB H3 -D0DC H2 -D0DD D0F7 H3 -D0F8 H2 -D0F9 D113 H3 -D114 H2 -D115 D12F H3 -D130 H2 -D131 D14B H3 -D14C H2 -D14D D167 H3 -D168 H2 -D169 D183 H3 -D184 H2 -D185 D19F H3 -D1A0 H2 -D1A1 D1BB H3 -D1BC H2 -D1BD D1D7 H3 -D1D8 H2 -D1D9 D1F3 H3 -D1F4 H2 -D1F5 D20F H3 -D210 H2 -D211 D22B H3 -D22C H2 -D22D D247 H3 -D248 H2 -D249 D263 H3 -D264 H2 -D265 D27F H3 -D280 H2 -D281 D29B H3 -D29C H2 -D29D D2B7 H3 -D2B8 H2 -D2B9 D2D3 H3 -D2D4 H2 -D2D5 D2EF H3 -D2F0 H2 -D2F1 D30B H3 -D30C H2 -D30D D327 H3 -D328 H2 -D329 D343 H3 -D344 H2 -D345 D35F H3 -D360 H2 -D361 D37B H3 -D37C H2 -D37D D397 H3 -D398 H2 -D399 D3B3 H3 -D3B4 H2 -D3B5 D3CF H3 -D3D0 H2 -D3D1 D3EB H3 -D3EC H2 -D3ED D407 H3 -D408 H2 -D409 D423 H3 -D424 H2 -D425 D43F H3 -D440 H2 -D441 D45B H3 -D45C H2 -D45D D477 H3 -D478 H2 -D479 D493 H3 -D494 H2 -D495 D4AF H3 -D4B0 H2 -D4B1 D4CB H3 -D4CC H2 -D4CD D4E7 H3 -D4E8 H2 -D4E9 D503 H3 -D504 H2 -D505 D51F H3 -D520 H2 -D521 D53B H3 -D53C H2 -D53D D557 H3 -D558 H2 -D559 D573 H3 -D574 H2 -D575 D58F H3 -D590 H2 -D591 D5AB H3 -D5AC H2 -D5AD D5C7 H3 -D5C8 H2 -D5C9 D5E3 H3 -D5E4 H2 -D5E5 D5FF H3 -D600 H2 -D601 D61B H3 -D61C H2 -D61D D637 H3 -D638 H2 -D639 D653 H3 -D654 H2 -D655 D66F H3 -D670 H2 -D671 D68B H3 -D68C H2 -D68D D6A7 H3 -D6A8 H2 -D6A9 D6C3 H3 -D6C4 H2 -D6C5 D6DF H3 -D6E0 H2 -D6E1 D6FB H3 -D6FC H2 -D6FD D717 H3 -D718 H2 -D719 D733 H3 -D734 H2 -D735 D74F H3 -D750 H2 -D751 D76B H3 -D76C H2 -D76D D787 H3 -D788 H2 -D789 D7A3 H3 -D7B0 D7C6 JV -D7CB D7FB JT -D800 DFFF SG -F900 FAFF ID -FB00 FB06 AL -FB13 FB17 AL -FB1D HL -FB1E CM -FB1F FB28 HL -FB29 AL -FB2A FB36 HL -FB38 FB3C HL -FB3E HL -FB40 FB41 HL -FB43 FB44 HL -FB46 FB4F HL -FB50 FBC1 AL -FBD3 FD3D AL -FD3E CL -FD3F OP -FD50 FD8F AL -FD92 FDC7 AL -FDF0 FDFB AL -FDFC PO -FDFD AL -FE00 FE0F CM -FE10 IS -FE11 FE12 CL -FE13 FE14 IS -FE15 FE16 EX -FE17 OP -FE18 CL -FE19 IN -FE20 FE2F CM -FE30 FE34 ID -FE35 OP -FE36 CL -FE37 OP -FE38 CL -FE39 OP -FE3A CL -FE3B OP -FE3C CL -FE3D OP -FE3E CL -FE3F OP -FE40 CL -FE41 OP -FE42 CL -FE43 OP -FE44 CL -FE45 FE46 ID -FE47 OP -FE48 CL -FE49 FE4F ID -FE50 CL -FE51 ID -FE52 CL -FE54 FE55 NS -FE56 FE57 EX -FE58 ID -FE59 OP -FE5A CL -FE5B OP -FE5C CL -FE5D OP -FE5E CL -FE5F FE66 ID -FE68 ID -FE69 PR -FE6A PO -FE6B ID -FE70 FE74 AL -FE76 FEFC AL -FEFF WJ -FF01 EX -FF02 FF03 ID -FF04 PR -FF05 PO -FF06 FF07 ID -FF08 OP -FF09 CL -FF0A FF0B ID -FF0C CL -FF0D ID -FF0E CL -FF0F FF19 ID -FF1A FF1B NS -FF1C FF1E ID -FF1F EX -FF20 FF3A ID -FF3B OP -FF3C ID -FF3D CL -FF3E FF5A ID -FF5B OP -FF5C ID -FF5D CL -FF5E ID -FF5F OP -FF60 FF61 CL -FF62 OP -FF63 FF64 CL -FF65 NS -FF66 AL -FF67 FF70 CJ -FF71 FF9D AL -FF9E FF9F NS -FFA0 FFBE AL -FFC2 FFC7 AL -FFCA FFCF AL -FFD2 FFD7 AL -FFDA FFDC AL -FFE0 PO -FFE1 PR -FFE2 FFE4 ID -FFE5 FFE6 PR -FFE8 FFEE AL -FFF9 FFFB CM -FFFC CB -FFFD AI -10000 1000B AL -1000D 10026 AL -10028 1003A AL -1003C 1003D AL -1003F 1004D AL -10050 1005D AL -10080 100FA AL -10100 10102 BA -10107 10133 AL -10137 1018C AL -10190 1019B AL -101A0 AL -101D0 101FC AL -101FD CM -10280 1029C AL -102A0 102D0 AL -102E0 CM -102E1 102FB AL -10300 10323 AL -10330 1034A AL -10350 10375 AL -10376 1037A CM -10380 1039D AL -1039F BA -103A0 103C3 AL -103C8 103CF AL -103D0 BA -103D1 103D5 AL -10400 1049D AL -104A0 104A9 NU -10500 10527 AL -10530 10563 AL -1056F AL -10600 10736 AL -10740 10755 AL -10760 10767 AL -10800 10805 AL -10808 AL -1080A 10835 AL -10837 10838 AL -1083C AL -1083F 10855 AL -10857 BA -10858 1089E AL -108A7 108AF AL -108E0 108F2 AL -108F4 108F5 AL -108FB 1091B AL -1091F BA -10920 10939 AL -1093F AL -10980 109B7 AL -109BC 109CF AL -109D2 10A00 AL -10A01 10A03 CM -10A05 10A06 CM -10A0C 10A0F CM -10A10 10A13 AL -10A15 10A17 AL -10A19 10A33 AL -10A38 10A3A CM -10A3F CM -10A40 10A47 AL -10A50 10A57 BA -10A58 AL -10A60 10A9F AL -10AC0 10AE4 AL -10AE5 10AE6 CM -10AEB 10AEF AL -10AF0 10AF5 BA -10AF6 IN -10B00 10B35 AL -10B39 10B3F BA -10B40 10B55 AL -10B58 10B72 AL -10B78 10B91 AL -10B99 10B9C AL -10BA9 10BAF AL -10C00 10C48 AL -10C80 10CB2 AL -10CC0 10CF2 AL -10CFA 10CFF AL -10E60 10E7E AL -11000 11002 CM -11003 11037 AL -11038 11046 CM -11047 11048 BA -11049 1104D AL -11052 11065 AL -11066 1106F NU -1107F 11082 CM -11083 110AF AL -110B0 110BA CM -110BB 110BD AL -110BE 110C1 BA -110D0 110E8 AL -110F0 110F9 NU -11100 11102 CM -11103 11126 AL -11127 11134 CM -11136 1113F NU -11140 11143 BA -11150 11172 AL -11173 CM -11174 AL -11175 BB -11176 AL -11180 11182 CM -11183 111B2 AL -111B3 111C0 CM -111C1 111C4 AL -111C5 111C6 BA -111C7 AL -111C8 BA -111C9 AL -111CA 111CC CM -111CD AL -111D0 111D9 NU -111DA AL -111DB BB -111DC AL -111DD 111DF BA -111E1 111F4 AL -11200 11211 AL -11213 1122B AL -1122C 11237 CM -11238 11239 BA -1123A AL -1123B 1123C BA -1123D AL -11280 11286 AL -11288 AL -1128A 1128D AL -1128F 1129D AL -1129F 112A8 AL -112A9 BA -112B0 112DE AL -112DF 112EA CM -112F0 112F9 NU -11300 11303 CM -11305 1130C AL -1130F 11310 AL -11313 11328 AL -1132A 11330 AL -11332 11333 AL -11335 11339 AL -1133C CM -1133D AL -1133E 11344 CM -11347 11348 CM -1134B 1134D CM -11350 AL -11357 CM -1135D 11361 AL -11362 11363 CM -11366 1136C CM -11370 11374 CM -11480 114AF AL -114B0 114C3 CM -114C4 114C7 AL -114D0 114D9 NU -11580 115AE AL -115AF 115B5 CM -115B8 115C0 CM -115C1 BB -115C2 115C3 BA -115C4 115C5 EX -115C6 115C8 AL -115C9 115D7 BA -115D8 115DB AL -115DC 115DD CM -11600 1162F AL -11630 11640 CM -11641 11642 BA -11643 11644 AL -11650 11659 NU -11680 116AA AL -116AB 116B7 CM -116C0 116C9 NU -11700 11719 SA -1171D 1172B SA -11730 11739 NU -1173A 1173B SA -1173C 1173E BA -1173F SA -118A0 118DF AL -118E0 118E9 NU -118EA 118F2 AL -118FF AL -11AC0 11AF8 AL -12000 12399 AL -12400 1246E AL -12470 12474 BA -12480 12543 AL -13000 13257 AL -13258 1325A OP -1325B 1325D CL -1325E 13281 AL -13282 CL -13283 13285 AL -13286 OP -13287 CL -13288 OP -13289 CL -1328A 13378 AL -13379 OP -1337A 1337B CL -1337C 1342E AL -14400 145CD AL -145CE OP -145CF CL -145D0 14646 AL -16800 16A38 AL -16A40 16A5E AL -16A60 16A69 NU -16A6E 16A6F BA -16AD0 16AED AL -16AF0 16AF4 CM -16AF5 BA -16B00 16B2F AL -16B30 16B36 CM -16B37 16B39 BA -16B3A 16B43 AL -16B44 BA -16B45 AL -16B50 16B59 NU -16B5B 16B61 AL -16B63 16B77 AL -16B7D 16B8F AL -16F00 16F44 AL -16F50 AL -16F51 16F7E CM -16F8F 16F92 CM -16F93 16F9F AL -1B000 1B001 ID -1BC00 1BC6A AL -1BC70 1BC7C AL -1BC80 1BC88 AL -1BC90 1BC99 AL -1BC9C AL -1BC9D 1BC9E CM -1BC9F BA -1BCA0 1BCA3 CM -1D000 1D0F5 AL -1D100 1D126 AL -1D129 1D164 AL -1D165 1D169 CM -1D16A 1D16C AL -1D16D 1D182 CM -1D183 1D184 AL -1D185 1D18B CM -1D18C 1D1A9 AL -1D1AA 1D1AD CM -1D1AE 1D1E8 AL -1D200 1D241 AL -1D242 1D244 CM -1D245 AL -1D300 1D356 AL -1D360 1D371 AL -1D400 1D454 AL -1D456 1D49C AL -1D49E 1D49F AL -1D4A2 AL -1D4A5 1D4A6 AL -1D4A9 1D4AC AL -1D4AE 1D4B9 AL -1D4BB AL -1D4BD 1D4C3 AL -1D4C5 1D505 AL -1D507 1D50A AL -1D50D 1D514 AL -1D516 1D51C AL -1D51E 1D539 AL -1D53B 1D53E AL -1D540 1D544 AL -1D546 AL -1D54A 1D550 AL -1D552 1D6A5 AL -1D6A8 1D7CB AL -1D7CE 1D7FF NU -1D800 1D9FF AL -1DA00 1DA36 CM -1DA37 1DA3A AL -1DA3B 1DA6C CM -1DA6D 1DA74 AL -1DA75 CM -1DA76 1DA83 AL -1DA84 CM -1DA85 1DA86 AL -1DA87 1DA8A BA -1DA8B AL -1DA9B 1DA9F CM -1DAA1 1DAAF CM -1E800 1E8C4 AL -1E8C7 1E8CF AL -1E8D0 1E8D6 CM -1EE00 1EE03 AL -1EE05 1EE1F AL -1EE21 1EE22 AL -1EE24 AL -1EE27 AL -1EE29 1EE32 AL -1EE34 1EE37 AL -1EE39 AL -1EE3B AL -1EE42 AL -1EE47 AL -1EE49 AL -1EE4B AL -1EE4D 1EE4F AL -1EE51 1EE52 AL -1EE54 AL -1EE57 AL -1EE59 AL -1EE5B AL -1EE5D AL -1EE5F AL -1EE61 1EE62 AL -1EE64 AL -1EE67 1EE6A AL -1EE6C 1EE72 AL -1EE74 1EE77 AL -1EE79 1EE7C AL -1EE7E AL -1EE80 1EE89 AL -1EE8B 1EE9B AL -1EEA1 1EEA3 AL -1EEA5 1EEA9 AL -1EEAB 1EEBB AL -1EEF0 1EEF1 AL -1F000 1F02B ID -1F030 1F093 ID -1F0A0 1F0AE ID -1F0B1 1F0BF ID -1F0C1 1F0CF ID -1F0D1 1F0F5 ID -1F100 1F10C AI -1F110 1F12D AI -1F12E AL -1F130 1F169 AI -1F16A 1F16B AL -1F170 1F19A AI -1F1E6 1F1FF RI -1F200 1F202 ID -1F210 1F23A ID -1F240 1F248 ID -1F250 1F251 ID -1F300 1F39B ID -1F39C 1F39D AL -1F39E 1F3B4 ID -1F3B5 1F3B6 AL -1F3B7 1F3BB ID -1F3BC AL -1F3BD 1F3FA ID -1F3FB 1F3FF AL -1F400 1F49F ID -1F4A0 AL -1F4A1 ID -1F4A2 AL -1F4A3 ID -1F4A4 AL -1F4A5 1F4AE ID -1F4AF AL -1F4B0 ID -1F4B1 1F4B2 AL -1F4B3 1F4FF ID -1F500 1F506 AL -1F507 1F516 ID -1F517 1F524 AL -1F525 1F531 ID -1F532 1F549 AL -1F54A 1F579 ID -1F57B 1F5A3 ID -1F5A5 1F5D3 ID -1F5D4 1F5DB AL -1F5DC 1F5F3 ID -1F5F4 1F5F9 AL -1F5FA 1F64F ID -1F650 1F675 AL -1F676 1F678 QU -1F679 1F67B NS -1F67C 1F67F AL -1F680 1F6D0 ID -1F6E0 1F6EC ID -1F6F0 1F6F3 ID -1F700 1F773 AL -1F780 1F7D4 AL -1F800 1F80B AL -1F810 1F847 AL -1F850 1F859 AL -1F860 1F887 AL -1F890 1F8AD AL -1F910 1F918 ID -1F980 1F984 ID -1F9C0 ID -20000 2FFFD ID -30000 3FFFD ID -E0001 CM -E0020 E007F CM -E0100 E01EF CM -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Lc.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Lc.pl deleted file mode 100644 index 44003252..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Lc.pl +++ /dev/null @@ -1,678 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -# The mappings in the non-hash portion of this file must be modified to get the -# correct values by adding the code point ordinal number to each one that is -# numeric. - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToLc'}{'format'} = 'ax'; # mapped value in hex; some entries need adjustment -$utf8::SwashInfo{'ToLc'}{'specials_name'} = 'utf8::ToSpecLc'; # Name of hash of special mappings -$utf8::SwashInfo{'ToLc'}{'missing'} = '0'; # code point maps to itself - -# Some code points require special handling because their mappings are each to -# multiple code points. These do not appear in the main body, but are defined -# in the hash below. - -# Each key is the string of N bytes that together make up the UTF-8 encoding -# for the code point. (i.e. the same as looking at the code point's UTF-8 -# under "use bytes"). Each value is the UTF-8 of the translation, for speed. -%utf8::ToSpecLc = ( -"\xC4\xB0" => "\x{0069}\x{0307}", # U+0130 => 0069 0307 -); - -return <<'END'; -41 5A 61 -C0 D6 E0 -D8 DE F8 -100 101 -102 103 -104 105 -106 107 -108 109 -10A 10B -10C 10D -10E 10F -110 111 -112 113 -114 115 -116 117 -118 119 -11A 11B -11C 11D -11E 11F -120 121 -122 123 -124 125 -126 127 -128 129 -12A 12B -12C 12D -12E 12F -130 69 -132 133 -134 135 -136 137 -139 13A -13B 13C -13D 13E -13F 140 -141 142 -143 144 -145 146 -147 148 -14A 14B -14C 14D -14E 14F -150 151 -152 153 -154 155 -156 157 -158 159 -15A 15B -15C 15D -15E 15F -160 161 -162 163 -164 165 -166 167 -168 169 -16A 16B -16C 16D -16E 16F -170 171 -172 173 -174 175 -176 177 -178 FF -179 17A -17B 17C -17D 17E -181 253 -182 183 -184 185 -186 254 -187 188 -189 18A 256 -18B 18C -18E 1DD -18F 259 -190 25B -191 192 -193 260 -194 263 -196 269 -197 268 -198 199 -19C 26F -19D 272 -19F 275 -1A0 1A1 -1A2 1A3 -1A4 1A5 -1A6 280 -1A7 1A8 -1A9 283 -1AC 1AD -1AE 288 -1AF 1B0 -1B1 1B2 28A -1B3 1B4 -1B5 1B6 -1B7 292 -1B8 1B9 -1BC 1BD -1C4 1C6 -1C5 1C6 -1C7 1C9 -1C8 1C9 -1CA 1CC -1CB 1CC -1CD 1CE -1CF 1D0 -1D1 1D2 -1D3 1D4 -1D5 1D6 -1D7 1D8 -1D9 1DA -1DB 1DC -1DE 1DF -1E0 1E1 -1E2 1E3 -1E4 1E5 -1E6 1E7 -1E8 1E9 -1EA 1EB -1EC 1ED -1EE 1EF -1F1 1F3 -1F2 1F3 -1F4 1F5 -1F6 195 -1F7 1BF -1F8 1F9 -1FA 1FB -1FC 1FD -1FE 1FF -200 201 -202 203 -204 205 -206 207 -208 209 -20A 20B -20C 20D -20E 20F -210 211 -212 213 -214 215 -216 217 -218 219 -21A 21B -21C 21D -21E 21F -220 19E -222 223 -224 225 -226 227 -228 229 -22A 22B -22C 22D -22E 22F -230 231 -232 233 -23A 2C65 -23B 23C -23D 19A -23E 2C66 -241 242 -243 180 -244 289 -245 28C -246 247 -248 249 -24A 24B -24C 24D -24E 24F -370 371 -372 373 -376 377 -37F 3F3 -386 3AC -388 38A 3AD -38C 3CC -38E 38F 3CD -391 3A1 3B1 -3A3 3AB 3C3 -3CF 3D7 -3D8 3D9 -3DA 3DB -3DC 3DD -3DE 3DF -3E0 3E1 -3E2 3E3 -3E4 3E5 -3E6 3E7 -3E8 3E9 -3EA 3EB -3EC 3ED -3EE 3EF -3F4 3B8 -3F7 3F8 -3F9 3F2 -3FA 3FB -3FD 3FF 37B -400 40F 450 -410 42F 430 -460 461 -462 463 -464 465 -466 467 -468 469 -46A 46B -46C 46D -46E 46F -470 471 -472 473 -474 475 -476 477 -478 479 -47A 47B -47C 47D -47E 47F -480 481 -48A 48B -48C 48D -48E 48F -490 491 -492 493 -494 495 -496 497 -498 499 -49A 49B -49C 49D -49E 49F -4A0 4A1 -4A2 4A3 -4A4 4A5 -4A6 4A7 -4A8 4A9 -4AA 4AB -4AC 4AD -4AE 4AF -4B0 4B1 -4B2 4B3 -4B4 4B5 -4B6 4B7 -4B8 4B9 -4BA 4BB -4BC 4BD -4BE 4BF -4C0 4CF -4C1 4C2 -4C3 4C4 -4C5 4C6 -4C7 4C8 -4C9 4CA -4CB 4CC -4CD 4CE -4D0 4D1 -4D2 4D3 -4D4 4D5 -4D6 4D7 -4D8 4D9 -4DA 4DB -4DC 4DD -4DE 4DF -4E0 4E1 -4E2 4E3 -4E4 4E5 -4E6 4E7 -4E8 4E9 -4EA 4EB -4EC 4ED -4EE 4EF -4F0 4F1 -4F2 4F3 -4F4 4F5 -4F6 4F7 -4F8 4F9 -4FA 4FB -4FC 4FD -4FE 4FF -500 501 -502 503 -504 505 -506 507 -508 509 -50A 50B -50C 50D -50E 50F -510 511 -512 513 -514 515 -516 517 -518 519 -51A 51B -51C 51D -51E 51F -520 521 -522 523 -524 525 -526 527 -528 529 -52A 52B -52C 52D -52E 52F -531 556 561 -10A0 10C5 2D00 -10C7 2D27 -10CD 2D2D -13A0 13EF AB70 -13F0 13F5 13F8 -1E00 1E01 -1E02 1E03 -1E04 1E05 -1E06 1E07 -1E08 1E09 -1E0A 1E0B -1E0C 1E0D -1E0E 1E0F -1E10 1E11 -1E12 1E13 -1E14 1E15 -1E16 1E17 -1E18 1E19 -1E1A 1E1B -1E1C 1E1D -1E1E 1E1F -1E20 1E21 -1E22 1E23 -1E24 1E25 -1E26 1E27 -1E28 1E29 -1E2A 1E2B -1E2C 1E2D -1E2E 1E2F -1E30 1E31 -1E32 1E33 -1E34 1E35 -1E36 1E37 -1E38 1E39 -1E3A 1E3B -1E3C 1E3D -1E3E 1E3F -1E40 1E41 -1E42 1E43 -1E44 1E45 -1E46 1E47 -1E48 1E49 -1E4A 1E4B -1E4C 1E4D -1E4E 1E4F -1E50 1E51 -1E52 1E53 -1E54 1E55 -1E56 1E57 -1E58 1E59 -1E5A 1E5B -1E5C 1E5D -1E5E 1E5F -1E60 1E61 -1E62 1E63 -1E64 1E65 -1E66 1E67 -1E68 1E69 -1E6A 1E6B -1E6C 1E6D -1E6E 1E6F -1E70 1E71 -1E72 1E73 -1E74 1E75 -1E76 1E77 -1E78 1E79 -1E7A 1E7B -1E7C 1E7D -1E7E 1E7F -1E80 1E81 -1E82 1E83 -1E84 1E85 -1E86 1E87 -1E88 1E89 -1E8A 1E8B -1E8C 1E8D -1E8E 1E8F -1E90 1E91 -1E92 1E93 -1E94 1E95 -1E9E DF -1EA0 1EA1 -1EA2 1EA3 -1EA4 1EA5 -1EA6 1EA7 -1EA8 1EA9 -1EAA 1EAB -1EAC 1EAD -1EAE 1EAF -1EB0 1EB1 -1EB2 1EB3 -1EB4 1EB5 -1EB6 1EB7 -1EB8 1EB9 -1EBA 1EBB -1EBC 1EBD -1EBE 1EBF -1EC0 1EC1 -1EC2 1EC3 -1EC4 1EC5 -1EC6 1EC7 -1EC8 1EC9 -1ECA 1ECB -1ECC 1ECD -1ECE 1ECF -1ED0 1ED1 -1ED2 1ED3 -1ED4 1ED5 -1ED6 1ED7 -1ED8 1ED9 -1EDA 1EDB -1EDC 1EDD -1EDE 1EDF -1EE0 1EE1 -1EE2 1EE3 -1EE4 1EE5 -1EE6 1EE7 -1EE8 1EE9 -1EEA 1EEB -1EEC 1EED -1EEE 1EEF -1EF0 1EF1 -1EF2 1EF3 -1EF4 1EF5 -1EF6 1EF7 -1EF8 1EF9 -1EFA 1EFB -1EFC 1EFD -1EFE 1EFF -1F08 1F0F 1F00 -1F18 1F1D 1F10 -1F28 1F2F 1F20 -1F38 1F3F 1F30 -1F48 1F4D 1F40 -1F59 1F51 -1F5B 1F53 -1F5D 1F55 -1F5F 1F57 -1F68 1F6F 1F60 -1F88 1F8F 1F80 -1F98 1F9F 1F90 -1FA8 1FAF 1FA0 -1FB8 1FB9 1FB0 -1FBA 1FBB 1F70 -1FBC 1FB3 -1FC8 1FCB 1F72 -1FCC 1FC3 -1FD8 1FD9 1FD0 -1FDA 1FDB 1F76 -1FE8 1FE9 1FE0 -1FEA 1FEB 1F7A -1FEC 1FE5 -1FF8 1FF9 1F78 -1FFA 1FFB 1F7C -1FFC 1FF3 -2126 3C9 -212A 6B -212B E5 -2132 214E -2160 216F 2170 -2183 2184 -24B6 24CF 24D0 -2C00 2C2E 2C30 -2C60 2C61 -2C62 26B -2C63 1D7D -2C64 27D -2C67 2C68 -2C69 2C6A -2C6B 2C6C -2C6D 251 -2C6E 271 -2C6F 250 -2C70 252 -2C72 2C73 -2C75 2C76 -2C7E 2C7F 23F -2C80 2C81 -2C82 2C83 -2C84 2C85 -2C86 2C87 -2C88 2C89 -2C8A 2C8B -2C8C 2C8D -2C8E 2C8F -2C90 2C91 -2C92 2C93 -2C94 2C95 -2C96 2C97 -2C98 2C99 -2C9A 2C9B -2C9C 2C9D -2C9E 2C9F -2CA0 2CA1 -2CA2 2CA3 -2CA4 2CA5 -2CA6 2CA7 -2CA8 2CA9 -2CAA 2CAB -2CAC 2CAD -2CAE 2CAF -2CB0 2CB1 -2CB2 2CB3 -2CB4 2CB5 -2CB6 2CB7 -2CB8 2CB9 -2CBA 2CBB -2CBC 2CBD -2CBE 2CBF -2CC0 2CC1 -2CC2 2CC3 -2CC4 2CC5 -2CC6 2CC7 -2CC8 2CC9 -2CCA 2CCB -2CCC 2CCD -2CCE 2CCF -2CD0 2CD1 -2CD2 2CD3 -2CD4 2CD5 -2CD6 2CD7 -2CD8 2CD9 -2CDA 2CDB -2CDC 2CDD -2CDE 2CDF -2CE0 2CE1 -2CE2 2CE3 -2CEB 2CEC -2CED 2CEE -2CF2 2CF3 -A640 A641 -A642 A643 -A644 A645 -A646 A647 -A648 A649 -A64A A64B -A64C A64D -A64E A64F -A650 A651 -A652 A653 -A654 A655 -A656 A657 -A658 A659 -A65A A65B -A65C A65D -A65E A65F -A660 A661 -A662 A663 -A664 A665 -A666 A667 -A668 A669 -A66A A66B -A66C A66D -A680 A681 -A682 A683 -A684 A685 -A686 A687 -A688 A689 -A68A A68B -A68C A68D -A68E A68F -A690 A691 -A692 A693 -A694 A695 -A696 A697 -A698 A699 -A69A A69B -A722 A723 -A724 A725 -A726 A727 -A728 A729 -A72A A72B -A72C A72D -A72E A72F -A732 A733 -A734 A735 -A736 A737 -A738 A739 -A73A A73B -A73C A73D -A73E A73F -A740 A741 -A742 A743 -A744 A745 -A746 A747 -A748 A749 -A74A A74B -A74C A74D -A74E A74F -A750 A751 -A752 A753 -A754 A755 -A756 A757 -A758 A759 -A75A A75B -A75C A75D -A75E A75F -A760 A761 -A762 A763 -A764 A765 -A766 A767 -A768 A769 -A76A A76B -A76C A76D -A76E A76F -A779 A77A -A77B A77C -A77D 1D79 -A77E A77F -A780 A781 -A782 A783 -A784 A785 -A786 A787 -A78B A78C -A78D 265 -A790 A791 -A792 A793 -A796 A797 -A798 A799 -A79A A79B -A79C A79D -A79E A79F -A7A0 A7A1 -A7A2 A7A3 -A7A4 A7A5 -A7A6 A7A7 -A7A8 A7A9 -A7AA 266 -A7AB 25C -A7AC 261 -A7AD 26C -A7B0 29E -A7B1 287 -A7B2 29D -A7B3 AB53 -A7B4 A7B5 -A7B6 A7B7 -FF21 FF3A FF41 -10400 10427 10428 -10C80 10CB2 10CC0 -118A0 118BF 118C0 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Lower.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Lower.pl deleted file mode 100644 index ec34f9d7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Lower.pl +++ /dev/null @@ -1,1268 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!! - -# This file is for internal use by core Perl only. It is retained for -# backwards compatibility with applications that may have come to rely on it, -# but its format and even its name or existence are subject to change without -# notice in a future Perl version. Don't use it directly. Instead, its -# contents are now retrievable through a stable API in the Unicode::UCD -# module: Unicode::UCD::prop_invmap('Lowercase_Mapping') (Values for individual -# code points can be retrieved via Unicode::UCD::charprop()); - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToLower'}{'format'} = 'x'; # non-negative hex whole number; a code point -$utf8::SwashInfo{'ToLower'}{'specials_name'} = 'utf8::ToSpecLower'; # Name of hash of special mappings -$utf8::SwashInfo{'ToLower'}{'missing'} = '<code point>'; # code point maps to itself - -# Some code points require special handling because their mappings are each to -# multiple code points. These do not appear in the main body, but are defined -# in the hash below. - -# Each key is the string of N bytes that together make up the UTF-8 encoding -# for the code point. (i.e. the same as looking at the code point's UTF-8 -# under "use bytes"). Each value is the UTF-8 of the translation, for speed. -%utf8::ToSpecLower = ( -"\xC4\xB0" => "\x{0069}\x{0307}", # U+0130 => 0069 0307 -); - -return <<'END'; -0041 0061 -0042 0062 -0043 0063 -0044 0064 -0045 0065 -0046 0066 -0047 0067 -0048 0068 -0049 0069 -004A 006A -004B 006B -004C 006C -004D 006D -004E 006E -004F 006F -0050 0070 -0051 0071 -0052 0072 -0053 0073 -0054 0074 -0055 0075 -0056 0076 -0057 0077 -0058 0078 -0059 0079 -005A 007A -00C0 00E0 -00C1 00E1 -00C2 00E2 -00C3 00E3 -00C4 00E4 -00C5 00E5 -00C6 00E6 -00C7 00E7 -00C8 00E8 -00C9 00E9 -00CA 00EA -00CB 00EB -00CC 00EC -00CD 00ED -00CE 00EE -00CF 00EF -00D0 00F0 -00D1 00F1 -00D2 00F2 -00D3 00F3 -00D4 00F4 -00D5 00F5 -00D6 00F6 -00D8 00F8 -00D9 00F9 -00DA 00FA -00DB 00FB -00DC 00FC -00DD 00FD -00DE 00FE -0100 0101 -0102 0103 -0104 0105 -0106 0107 -0108 0109 -010A 010B -010C 010D -010E 010F -0110 0111 -0112 0113 -0114 0115 -0116 0117 -0118 0119 -011A 011B -011C 011D -011E 011F -0120 0121 -0122 0123 -0124 0125 -0126 0127 -0128 0129 -012A 012B -012C 012D -012E 012F -0132 0133 -0134 0135 -0136 0137 -0139 013A -013B 013C -013D 013E -013F 0140 -0141 0142 -0143 0144 -0145 0146 -0147 0148 -014A 014B -014C 014D -014E 014F -0150 0151 -0152 0153 -0154 0155 -0156 0157 -0158 0159 -015A 015B -015C 015D -015E 015F -0160 0161 -0162 0163 -0164 0165 -0166 0167 -0168 0169 -016A 016B -016C 016D -016E 016F -0170 0171 -0172 0173 -0174 0175 -0176 0177 -0178 00FF -0179 017A -017B 017C -017D 017E -0181 0253 -0182 0183 -0184 0185 -0186 0254 -0187 0188 -0189 0256 -018A 0257 -018B 018C -018E 01DD -018F 0259 -0190 025B -0191 0192 -0193 0260 -0194 0263 -0196 0269 -0197 0268 -0198 0199 -019C 026F -019D 0272 -019F 0275 -01A0 01A1 -01A2 01A3 -01A4 01A5 -01A6 0280 -01A7 01A8 -01A9 0283 -01AC 01AD -01AE 0288 -01AF 01B0 -01B1 028A -01B2 028B -01B3 01B4 -01B5 01B6 -01B7 0292 -01B8 01B9 -01BC 01BD -01C4 01C6 -01C5 01C6 -01C7 01C9 -01C8 01C9 -01CA 01CC -01CB 01CC -01CD 01CE -01CF 01D0 -01D1 01D2 -01D3 01D4 -01D5 01D6 -01D7 01D8 -01D9 01DA -01DB 01DC -01DE 01DF -01E0 01E1 -01E2 01E3 -01E4 01E5 -01E6 01E7 -01E8 01E9 -01EA 01EB -01EC 01ED -01EE 01EF -01F1 01F3 -01F2 01F3 -01F4 01F5 -01F6 0195 -01F7 01BF -01F8 01F9 -01FA 01FB -01FC 01FD -01FE 01FF -0200 0201 -0202 0203 -0204 0205 -0206 0207 -0208 0209 -020A 020B -020C 020D -020E 020F -0210 0211 -0212 0213 -0214 0215 -0216 0217 -0218 0219 -021A 021B -021C 021D -021E 021F -0220 019E -0222 0223 -0224 0225 -0226 0227 -0228 0229 -022A 022B -022C 022D -022E 022F -0230 0231 -0232 0233 -023A 2C65 -023B 023C -023D 019A -023E 2C66 -0241 0242 -0243 0180 -0244 0289 -0245 028C -0246 0247 -0248 0249 -024A 024B -024C 024D -024E 024F -0370 0371 -0372 0373 -0376 0377 -037F 03F3 -0386 03AC -0388 03AD -0389 03AE -038A 03AF -038C 03CC -038E 03CD -038F 03CE -0391 03B1 -0392 03B2 -0393 03B3 -0394 03B4 -0395 03B5 -0396 03B6 -0397 03B7 -0398 03B8 -0399 03B9 -039A 03BA -039B 03BB -039C 03BC -039D 03BD -039E 03BE -039F 03BF -03A0 03C0 -03A1 03C1 -03A3 03C3 -03A4 03C4 -03A5 03C5 -03A6 03C6 -03A7 03C7 -03A8 03C8 -03A9 03C9 -03AA 03CA -03AB 03CB -03CF 03D7 -03D8 03D9 -03DA 03DB -03DC 03DD -03DE 03DF -03E0 03E1 -03E2 03E3 -03E4 03E5 -03E6 03E7 -03E8 03E9 -03EA 03EB -03EC 03ED -03EE 03EF -03F4 03B8 -03F7 03F8 -03F9 03F2 -03FA 03FB -03FD 037B -03FE 037C -03FF 037D -0400 0450 -0401 0451 -0402 0452 -0403 0453 -0404 0454 -0405 0455 -0406 0456 -0407 0457 -0408 0458 -0409 0459 -040A 045A -040B 045B -040C 045C -040D 045D -040E 045E -040F 045F -0410 0430 -0411 0431 -0412 0432 -0413 0433 -0414 0434 -0415 0435 -0416 0436 -0417 0437 -0418 0438 -0419 0439 -041A 043A -041B 043B -041C 043C -041D 043D -041E 043E -041F 043F -0420 0440 -0421 0441 -0422 0442 -0423 0443 -0424 0444 -0425 0445 -0426 0446 -0427 0447 -0428 0448 -0429 0449 -042A 044A -042B 044B -042C 044C -042D 044D -042E 044E -042F 044F -0460 0461 -0462 0463 -0464 0465 -0466 0467 -0468 0469 -046A 046B -046C 046D -046E 046F -0470 0471 -0472 0473 -0474 0475 -0476 0477 -0478 0479 -047A 047B -047C 047D -047E 047F -0480 0481 -048A 048B -048C 048D -048E 048F -0490 0491 -0492 0493 -0494 0495 -0496 0497 -0498 0499 -049A 049B -049C 049D -049E 049F -04A0 04A1 -04A2 04A3 -04A4 04A5 -04A6 04A7 -04A8 04A9 -04AA 04AB -04AC 04AD -04AE 04AF -04B0 04B1 -04B2 04B3 -04B4 04B5 -04B6 04B7 -04B8 04B9 -04BA 04BB -04BC 04BD -04BE 04BF -04C0 04CF -04C1 04C2 -04C3 04C4 -04C5 04C6 -04C7 04C8 -04C9 04CA -04CB 04CC -04CD 04CE -04D0 04D1 -04D2 04D3 -04D4 04D5 -04D6 04D7 -04D8 04D9 -04DA 04DB -04DC 04DD -04DE 04DF -04E0 04E1 -04E2 04E3 -04E4 04E5 -04E6 04E7 -04E8 04E9 -04EA 04EB -04EC 04ED -04EE 04EF -04F0 04F1 -04F2 04F3 -04F4 04F5 -04F6 04F7 -04F8 04F9 -04FA 04FB -04FC 04FD -04FE 04FF -0500 0501 -0502 0503 -0504 0505 -0506 0507 -0508 0509 -050A 050B -050C 050D -050E 050F -0510 0511 -0512 0513 -0514 0515 -0516 0517 -0518 0519 -051A 051B -051C 051D -051E 051F -0520 0521 -0522 0523 -0524 0525 -0526 0527 -0528 0529 -052A 052B -052C 052D -052E 052F -0531 0561 -0532 0562 -0533 0563 -0534 0564 -0535 0565 -0536 0566 -0537 0567 -0538 0568 -0539 0569 -053A 056A -053B 056B -053C 056C -053D 056D -053E 056E -053F 056F -0540 0570 -0541 0571 -0542 0572 -0543 0573 -0544 0574 -0545 0575 -0546 0576 -0547 0577 -0548 0578 -0549 0579 -054A 057A -054B 057B -054C 057C -054D 057D -054E 057E -054F 057F -0550 0580 -0551 0581 -0552 0582 -0553 0583 -0554 0584 -0555 0585 -0556 0586 -10A0 2D00 -10A1 2D01 -10A2 2D02 -10A3 2D03 -10A4 2D04 -10A5 2D05 -10A6 2D06 -10A7 2D07 -10A8 2D08 -10A9 2D09 -10AA 2D0A -10AB 2D0B -10AC 2D0C -10AD 2D0D -10AE 2D0E -10AF 2D0F -10B0 2D10 -10B1 2D11 -10B2 2D12 -10B3 2D13 -10B4 2D14 -10B5 2D15 -10B6 2D16 -10B7 2D17 -10B8 2D18 -10B9 2D19 -10BA 2D1A -10BB 2D1B -10BC 2D1C -10BD 2D1D -10BE 2D1E -10BF 2D1F -10C0 2D20 -10C1 2D21 -10C2 2D22 -10C3 2D23 -10C4 2D24 -10C5 2D25 -10C7 2D27 -10CD 2D2D -13A0 AB70 -13A1 AB71 -13A2 AB72 -13A3 AB73 -13A4 AB74 -13A5 AB75 -13A6 AB76 -13A7 AB77 -13A8 AB78 -13A9 AB79 -13AA AB7A -13AB AB7B -13AC AB7C -13AD AB7D -13AE AB7E -13AF AB7F -13B0 AB80 -13B1 AB81 -13B2 AB82 -13B3 AB83 -13B4 AB84 -13B5 AB85 -13B6 AB86 -13B7 AB87 -13B8 AB88 -13B9 AB89 -13BA AB8A -13BB AB8B -13BC AB8C -13BD AB8D -13BE AB8E -13BF AB8F -13C0 AB90 -13C1 AB91 -13C2 AB92 -13C3 AB93 -13C4 AB94 -13C5 AB95 -13C6 AB96 -13C7 AB97 -13C8 AB98 -13C9 AB99 -13CA AB9A -13CB AB9B -13CC AB9C -13CD AB9D -13CE AB9E -13CF AB9F -13D0 ABA0 -13D1 ABA1 -13D2 ABA2 -13D3 ABA3 -13D4 ABA4 -13D5 ABA5 -13D6 ABA6 -13D7 ABA7 -13D8 ABA8 -13D9 ABA9 -13DA ABAA -13DB ABAB -13DC ABAC -13DD ABAD -13DE ABAE -13DF ABAF -13E0 ABB0 -13E1 ABB1 -13E2 ABB2 -13E3 ABB3 -13E4 ABB4 -13E5 ABB5 -13E6 ABB6 -13E7 ABB7 -13E8 ABB8 -13E9 ABB9 -13EA ABBA -13EB ABBB -13EC ABBC -13ED ABBD -13EE ABBE -13EF ABBF -13F0 13F8 -13F1 13F9 -13F2 13FA -13F3 13FB -13F4 13FC -13F5 13FD -1E00 1E01 -1E02 1E03 -1E04 1E05 -1E06 1E07 -1E08 1E09 -1E0A 1E0B -1E0C 1E0D -1E0E 1E0F -1E10 1E11 -1E12 1E13 -1E14 1E15 -1E16 1E17 -1E18 1E19 -1E1A 1E1B -1E1C 1E1D -1E1E 1E1F -1E20 1E21 -1E22 1E23 -1E24 1E25 -1E26 1E27 -1E28 1E29 -1E2A 1E2B -1E2C 1E2D -1E2E 1E2F -1E30 1E31 -1E32 1E33 -1E34 1E35 -1E36 1E37 -1E38 1E39 -1E3A 1E3B -1E3C 1E3D -1E3E 1E3F -1E40 1E41 -1E42 1E43 -1E44 1E45 -1E46 1E47 -1E48 1E49 -1E4A 1E4B -1E4C 1E4D -1E4E 1E4F -1E50 1E51 -1E52 1E53 -1E54 1E55 -1E56 1E57 -1E58 1E59 -1E5A 1E5B -1E5C 1E5D -1E5E 1E5F -1E60 1E61 -1E62 1E63 -1E64 1E65 -1E66 1E67 -1E68 1E69 -1E6A 1E6B -1E6C 1E6D -1E6E 1E6F -1E70 1E71 -1E72 1E73 -1E74 1E75 -1E76 1E77 -1E78 1E79 -1E7A 1E7B -1E7C 1E7D -1E7E 1E7F -1E80 1E81 -1E82 1E83 -1E84 1E85 -1E86 1E87 -1E88 1E89 -1E8A 1E8B -1E8C 1E8D -1E8E 1E8F -1E90 1E91 -1E92 1E93 -1E94 1E95 -1E9E 00DF -1EA0 1EA1 -1EA2 1EA3 -1EA4 1EA5 -1EA6 1EA7 -1EA8 1EA9 -1EAA 1EAB -1EAC 1EAD -1EAE 1EAF -1EB0 1EB1 -1EB2 1EB3 -1EB4 1EB5 -1EB6 1EB7 -1EB8 1EB9 -1EBA 1EBB -1EBC 1EBD -1EBE 1EBF -1EC0 1EC1 -1EC2 1EC3 -1EC4 1EC5 -1EC6 1EC7 -1EC8 1EC9 -1ECA 1ECB -1ECC 1ECD -1ECE 1ECF -1ED0 1ED1 -1ED2 1ED3 -1ED4 1ED5 -1ED6 1ED7 -1ED8 1ED9 -1EDA 1EDB -1EDC 1EDD -1EDE 1EDF -1EE0 1EE1 -1EE2 1EE3 -1EE4 1EE5 -1EE6 1EE7 -1EE8 1EE9 -1EEA 1EEB -1EEC 1EED -1EEE 1EEF -1EF0 1EF1 -1EF2 1EF3 -1EF4 1EF5 -1EF6 1EF7 -1EF8 1EF9 -1EFA 1EFB -1EFC 1EFD -1EFE 1EFF -1F08 1F00 -1F09 1F01 -1F0A 1F02 -1F0B 1F03 -1F0C 1F04 -1F0D 1F05 -1F0E 1F06 -1F0F 1F07 -1F18 1F10 -1F19 1F11 -1F1A 1F12 -1F1B 1F13 -1F1C 1F14 -1F1D 1F15 -1F28 1F20 -1F29 1F21 -1F2A 1F22 -1F2B 1F23 -1F2C 1F24 -1F2D 1F25 -1F2E 1F26 -1F2F 1F27 -1F38 1F30 -1F39 1F31 -1F3A 1F32 -1F3B 1F33 -1F3C 1F34 -1F3D 1F35 -1F3E 1F36 -1F3F 1F37 -1F48 1F40 -1F49 1F41 -1F4A 1F42 -1F4B 1F43 -1F4C 1F44 -1F4D 1F45 -1F59 1F51 -1F5B 1F53 -1F5D 1F55 -1F5F 1F57 -1F68 1F60 -1F69 1F61 -1F6A 1F62 -1F6B 1F63 -1F6C 1F64 -1F6D 1F65 -1F6E 1F66 -1F6F 1F67 -1F88 1F80 -1F89 1F81 -1F8A 1F82 -1F8B 1F83 -1F8C 1F84 -1F8D 1F85 -1F8E 1F86 -1F8F 1F87 -1F98 1F90 -1F99 1F91 -1F9A 1F92 -1F9B 1F93 -1F9C 1F94 -1F9D 1F95 -1F9E 1F96 -1F9F 1F97 -1FA8 1FA0 -1FA9 1FA1 -1FAA 1FA2 -1FAB 1FA3 -1FAC 1FA4 -1FAD 1FA5 -1FAE 1FA6 -1FAF 1FA7 -1FB8 1FB0 -1FB9 1FB1 -1FBA 1F70 -1FBB 1F71 -1FBC 1FB3 -1FC8 1F72 -1FC9 1F73 -1FCA 1F74 -1FCB 1F75 -1FCC 1FC3 -1FD8 1FD0 -1FD9 1FD1 -1FDA 1F76 -1FDB 1F77 -1FE8 1FE0 -1FE9 1FE1 -1FEA 1F7A -1FEB 1F7B -1FEC 1FE5 -1FF8 1F78 -1FF9 1F79 -1FFA 1F7C -1FFB 1F7D -1FFC 1FF3 -2126 03C9 -212A 006B -212B 00E5 -2132 214E -2160 2170 -2161 2171 -2162 2172 -2163 2173 -2164 2174 -2165 2175 -2166 2176 -2167 2177 -2168 2178 -2169 2179 -216A 217A -216B 217B -216C 217C -216D 217D -216E 217E -216F 217F -2183 2184 -24B6 24D0 -24B7 24D1 -24B8 24D2 -24B9 24D3 -24BA 24D4 -24BB 24D5 -24BC 24D6 -24BD 24D7 -24BE 24D8 -24BF 24D9 -24C0 24DA -24C1 24DB -24C2 24DC -24C3 24DD -24C4 24DE -24C5 24DF -24C6 24E0 -24C7 24E1 -24C8 24E2 -24C9 24E3 -24CA 24E4 -24CB 24E5 -24CC 24E6 -24CD 24E7 -24CE 24E8 -24CF 24E9 -2C00 2C30 -2C01 2C31 -2C02 2C32 -2C03 2C33 -2C04 2C34 -2C05 2C35 -2C06 2C36 -2C07 2C37 -2C08 2C38 -2C09 2C39 -2C0A 2C3A -2C0B 2C3B -2C0C 2C3C -2C0D 2C3D -2C0E 2C3E -2C0F 2C3F -2C10 2C40 -2C11 2C41 -2C12 2C42 -2C13 2C43 -2C14 2C44 -2C15 2C45 -2C16 2C46 -2C17 2C47 -2C18 2C48 -2C19 2C49 -2C1A 2C4A -2C1B 2C4B -2C1C 2C4C -2C1D 2C4D -2C1E 2C4E -2C1F 2C4F -2C20 2C50 -2C21 2C51 -2C22 2C52 -2C23 2C53 -2C24 2C54 -2C25 2C55 -2C26 2C56 -2C27 2C57 -2C28 2C58 -2C29 2C59 -2C2A 2C5A -2C2B 2C5B -2C2C 2C5C -2C2D 2C5D -2C2E 2C5E -2C60 2C61 -2C62 026B -2C63 1D7D -2C64 027D -2C67 2C68 -2C69 2C6A -2C6B 2C6C -2C6D 0251 -2C6E 0271 -2C6F 0250 -2C70 0252 -2C72 2C73 -2C75 2C76 -2C7E 023F -2C7F 0240 -2C80 2C81 -2C82 2C83 -2C84 2C85 -2C86 2C87 -2C88 2C89 -2C8A 2C8B -2C8C 2C8D -2C8E 2C8F -2C90 2C91 -2C92 2C93 -2C94 2C95 -2C96 2C97 -2C98 2C99 -2C9A 2C9B -2C9C 2C9D -2C9E 2C9F -2CA0 2CA1 -2CA2 2CA3 -2CA4 2CA5 -2CA6 2CA7 -2CA8 2CA9 -2CAA 2CAB -2CAC 2CAD -2CAE 2CAF -2CB0 2CB1 -2CB2 2CB3 -2CB4 2CB5 -2CB6 2CB7 -2CB8 2CB9 -2CBA 2CBB -2CBC 2CBD -2CBE 2CBF -2CC0 2CC1 -2CC2 2CC3 -2CC4 2CC5 -2CC6 2CC7 -2CC8 2CC9 -2CCA 2CCB -2CCC 2CCD -2CCE 2CCF -2CD0 2CD1 -2CD2 2CD3 -2CD4 2CD5 -2CD6 2CD7 -2CD8 2CD9 -2CDA 2CDB -2CDC 2CDD -2CDE 2CDF -2CE0 2CE1 -2CE2 2CE3 -2CEB 2CEC -2CED 2CEE -2CF2 2CF3 -A640 A641 -A642 A643 -A644 A645 -A646 A647 -A648 A649 -A64A A64B -A64C A64D -A64E A64F -A650 A651 -A652 A653 -A654 A655 -A656 A657 -A658 A659 -A65A A65B -A65C A65D -A65E A65F -A660 A661 -A662 A663 -A664 A665 -A666 A667 -A668 A669 -A66A A66B -A66C A66D -A680 A681 -A682 A683 -A684 A685 -A686 A687 -A688 A689 -A68A A68B -A68C A68D -A68E A68F -A690 A691 -A692 A693 -A694 A695 -A696 A697 -A698 A699 -A69A A69B -A722 A723 -A724 A725 -A726 A727 -A728 A729 -A72A A72B -A72C A72D -A72E A72F -A732 A733 -A734 A735 -A736 A737 -A738 A739 -A73A A73B -A73C A73D -A73E A73F -A740 A741 -A742 A743 -A744 A745 -A746 A747 -A748 A749 -A74A A74B -A74C A74D -A74E A74F -A750 A751 -A752 A753 -A754 A755 -A756 A757 -A758 A759 -A75A A75B -A75C A75D -A75E A75F -A760 A761 -A762 A763 -A764 A765 -A766 A767 -A768 A769 -A76A A76B -A76C A76D -A76E A76F -A779 A77A -A77B A77C -A77D 1D79 -A77E A77F -A780 A781 -A782 A783 -A784 A785 -A786 A787 -A78B A78C -A78D 0265 -A790 A791 -A792 A793 -A796 A797 -A798 A799 -A79A A79B -A79C A79D -A79E A79F -A7A0 A7A1 -A7A2 A7A3 -A7A4 A7A5 -A7A6 A7A7 -A7A8 A7A9 -A7AA 0266 -A7AB 025C -A7AC 0261 -A7AD 026C -A7B0 029E -A7B1 0287 -A7B2 029D -A7B3 AB53 -A7B4 A7B5 -A7B6 A7B7 -FF21 FF41 -FF22 FF42 -FF23 FF43 -FF24 FF44 -FF25 FF45 -FF26 FF46 -FF27 FF47 -FF28 FF48 -FF29 FF49 -FF2A FF4A -FF2B FF4B -FF2C FF4C -FF2D FF4D -FF2E FF4E -FF2F FF4F -FF30 FF50 -FF31 FF51 -FF32 FF52 -FF33 FF53 -FF34 FF54 -FF35 FF55 -FF36 FF56 -FF37 FF57 -FF38 FF58 -FF39 FF59 -FF3A FF5A -10400 10428 -10401 10429 -10402 1042A -10403 1042B -10404 1042C -10405 1042D -10406 1042E -10407 1042F -10408 10430 -10409 10431 -1040A 10432 -1040B 10433 -1040C 10434 -1040D 10435 -1040E 10436 -1040F 10437 -10410 10438 -10411 10439 -10412 1043A -10413 1043B -10414 1043C -10415 1043D -10416 1043E -10417 1043F -10418 10440 -10419 10441 -1041A 10442 -1041B 10443 -1041C 10444 -1041D 10445 -1041E 10446 -1041F 10447 -10420 10448 -10421 10449 -10422 1044A -10423 1044B -10424 1044C -10425 1044D -10426 1044E -10427 1044F -10C80 10CC0 -10C81 10CC1 -10C82 10CC2 -10C83 10CC3 -10C84 10CC4 -10C85 10CC5 -10C86 10CC6 -10C87 10CC7 -10C88 10CC8 -10C89 10CC9 -10C8A 10CCA -10C8B 10CCB -10C8C 10CCC -10C8D 10CCD -10C8E 10CCE -10C8F 10CCF -10C90 10CD0 -10C91 10CD1 -10C92 10CD2 -10C93 10CD3 -10C94 10CD4 -10C95 10CD5 -10C96 10CD6 -10C97 10CD7 -10C98 10CD8 -10C99 10CD9 -10C9A 10CDA -10C9B 10CDB -10C9C 10CDC -10C9D 10CDD -10C9E 10CDE -10C9F 10CDF -10CA0 10CE0 -10CA1 10CE1 -10CA2 10CE2 -10CA3 10CE3 -10CA4 10CE4 -10CA5 10CE5 -10CA6 10CE6 -10CA7 10CE7 -10CA8 10CE8 -10CA9 10CE9 -10CAA 10CEA -10CAB 10CEB -10CAC 10CEC -10CAD 10CED -10CAE 10CEE -10CAF 10CEF -10CB0 10CF0 -10CB1 10CF1 -10CB2 10CF2 -118A0 118C0 -118A1 118C1 -118A2 118C2 -118A3 118C3 -118A4 118C4 -118A5 118C5 -118A6 118C6 -118A7 118C7 -118A8 118C8 -118A9 118C9 -118AA 118CA -118AB 118CB -118AC 118CC -118AD 118CD -118AE 118CE -118AF 118CF -118B0 118D0 -118B1 118D1 -118B2 118D2 -118B3 118D3 -118B4 118D4 -118B5 118D5 -118B6 118D6 -118B7 118D7 -118B8 118D8 -118B9 118D9 -118BA 118DA -118BB 118DB -118BC 118DC -118BD 118DD -118BE 118DE -118BF 118DF -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/NFCQC.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/NFCQC.pl deleted file mode 100644 index 16162e33..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/NFCQC.pl +++ /dev/null @@ -1,134 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToNFCQC'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToNFCQC'}{'missing'} = 'Yes'; - -return <<'END'; -300 304 M -306 30C M -30F M -311 M -313 314 M -31B M -323 328 M -32D 32E M -330 331 M -338 M -340 341 N -342 M -343 344 N -345 M -374 N -37E N -387 N -653 655 M -93C M -958 95F N -9BE M -9D7 M -9DC 9DD N -9DF N -A33 N -A36 N -A59 A5B N -A5E N -B3E M -B56 B57 M -B5C B5D N -BBE M -BD7 M -C56 M -CC2 M -CD5 CD6 M -D3E M -D57 M -DCA M -DCF M -DDF M -F43 N -F4D N -F52 N -F57 N -F5C N -F69 N -F73 N -F75 F76 N -F78 N -F81 N -F93 N -F9D N -FA2 N -FA7 N -FAC N -FB9 N -102E M -1161 1175 M -11A8 11C2 M -1B35 M -1F71 N -1F73 N -1F75 N -1F77 N -1F79 N -1F7B N -1F7D N -1FBB N -1FBE N -1FC9 N -1FCB N -1FD3 N -1FDB N -1FE3 N -1FEB N -1FEE 1FEF N -1FF9 N -1FFB N -1FFD N -2000 2001 N -2126 N -212A 212B N -2329 232A N -2ADC N -3099 309A M -F900 FA0D N -FA10 N -FA12 N -FA15 FA1E N -FA20 N -FA22 N -FA25 FA26 N -FA2A FA6D N -FA70 FAD9 N -FB1D N -FB1F N -FB2A FB36 N -FB38 FB3C N -FB3E N -FB40 FB41 N -FB43 FB44 N -FB46 FB4E N -110BA M -11127 M -1133E M -11357 M -114B0 M -114BA M -114BD M -115AF M -1D15E 1D164 N -1D1BB 1D1C0 N -2F800 2FA1D N -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/NFDQC.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/NFDQC.pl deleted file mode 100644 index 97edf49f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/NFDQC.pl +++ /dev/null @@ -1,251 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToNFDQC'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToNFDQC'}{'missing'} = 'Yes'; - -return <<'END'; -C0 C5 N -C7 CF N -D1 D6 N -D9 DD N -E0 E5 N -E7 EF N -F1 F6 N -F9 FD N -FF 10F N -112 125 N -128 130 N -134 137 N -139 13E N -143 148 N -14C 151 N -154 165 N -168 17E N -1A0 1A1 N -1AF 1B0 N -1CD 1DC N -1DE 1E3 N -1E6 1F0 N -1F4 1F5 N -1F8 21B N -21E 21F N -226 233 N -340 341 N -343 344 N -374 N -37E N -385 38A N -38C N -38E 390 N -3AA 3B0 N -3CA 3CE N -3D3 3D4 N -400 401 N -403 N -407 N -40C 40E N -419 N -439 N -450 451 N -453 N -457 N -45C 45E N -476 477 N -4C1 4C2 N -4D0 4D3 N -4D6 4D7 N -4DA 4DF N -4E2 4E7 N -4EA 4F5 N -4F8 4F9 N -622 626 N -6C0 N -6C2 N -6D3 N -929 N -931 N -934 N -958 95F N -9CB 9CC N -9DC 9DD N -9DF N -A33 N -A36 N -A59 A5B N -A5E N -B48 N -B4B B4C N -B5C B5D N -B94 N -BCA BCC N -C48 N -CC0 N -CC7 CC8 N -CCA CCB N -D4A D4C N -DDA N -DDC DDE N -F43 N -F4D N -F52 N -F57 N -F5C N -F69 N -F73 N -F75 F76 N -F78 N -F81 N -F93 N -F9D N -FA2 N -FA7 N -FAC N -FB9 N -1026 N -1B06 N -1B08 N -1B0A N -1B0C N -1B0E N -1B12 N -1B3B N -1B3D N -1B40 1B41 N -1B43 N -1E00 1E99 N -1E9B N -1EA0 1EF9 N -1F00 1F15 N -1F18 1F1D N -1F20 1F45 N -1F48 1F4D N -1F50 1F57 N -1F59 N -1F5B N -1F5D N -1F5F 1F7D N -1F80 1FB4 N -1FB6 1FBC N -1FBE N -1FC1 1FC4 N -1FC6 1FD3 N -1FD6 1FDB N -1FDD 1FEF N -1FF2 1FF4 N -1FF6 1FFD N -2000 2001 N -2126 N -212A 212B N -219A 219B N -21AE N -21CD 21CF N -2204 N -2209 N -220C N -2224 N -2226 N -2241 N -2244 N -2247 N -2249 N -2260 N -2262 N -226D 2271 N -2274 2275 N -2278 2279 N -2280 2281 N -2284 2285 N -2288 2289 N -22AC 22AF N -22E0 22E3 N -22EA 22ED N -2329 232A N -2ADC N -304C N -304E N -3050 N -3052 N -3054 N -3056 N -3058 N -305A N -305C N -305E N -3060 N -3062 N -3065 N -3067 N -3069 N -3070 3071 N -3073 3074 N -3076 3077 N -3079 307A N -307C 307D N -3094 N -309E N -30AC N -30AE N -30B0 N -30B2 N -30B4 N -30B6 N -30B8 N -30BA N -30BC N -30BE N -30C0 N -30C2 N -30C5 N -30C7 N -30C9 N -30D0 30D1 N -30D3 30D4 N -30D6 30D7 N -30D9 30DA N -30DC 30DD N -30F4 N -30F7 30FA N -30FE N -AC00 D7A3 N -F900 FA0D N -FA10 N -FA12 N -FA15 FA1E N -FA20 N -FA22 N -FA25 FA26 N -FA2A FA6D N -FA70 FAD9 N -FB1D N -FB1F N -FB2A FB36 N -FB38 FB3C N -FB3E N -FB40 FB41 N -FB43 FB44 N -FB46 FB4E N -1109A N -1109C N -110AB N -1112E 1112F N -1134B 1134C N -114BB 114BC N -114BE N -115BA 115BB N -1D15E 1D164 N -1D1BB 1D1C0 N -2F800 2FA1D N -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/NFKCCF.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/NFKCCF.pl deleted file mode 100644 index 1c74b00c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/NFKCCF.pl +++ /dev/null @@ -1,10181 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!! - -# This file is for internal use by core Perl only. It is retained for -# backwards compatibility with applications that may have come to rely on it, -# but its format and even its name or existence are subject to change without -# notice in a future Perl version. Don't use it directly. Instead, its -# contents are now retrievable through a stable API in the Unicode::UCD -# module: Unicode::UCD::prop_invmap('NFKC_Casefold') (Values for individual -# code points can be retrieved via Unicode::UCD::charprop()); - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToNFKCCF'}{'format'} = 'x'; # non-negative hex whole number; a code point -$utf8::SwashInfo{'ToNFKCCF'}{'specials_name'} = 'utf8::ToSpecNFKCCF'; # Name of hash of special mappings -$utf8::SwashInfo{'ToNFKCCF'}{'missing'} = '<code point>'; # code point maps to itself - -# Some code points require special handling because their mappings are each to -# multiple code points. These do not appear in the main body, but are defined -# in the hash below. - -# Each key is the string of N bytes that together make up the UTF-8 encoding -# for the code point. (i.e. the same as looking at the code point's UTF-8 -# under "use bytes"). Each value is the UTF-8 of the translation, for speed. -%utf8::ToSpecNFKCCF = ( -"\xC2\xA8" => "\x{0020}\x{0308}", # U+00A8 => 0020 0308 -"\xC2\xAD" => "", # U+00AD => -"\xC2\xAF" => "\x{0020}\x{0304}", # U+00AF => 0020 0304 -"\xC2\xB4" => "\x{0020}\x{0301}", # U+00B4 => 0020 0301 -"\xC2\xB8" => "\x{0020}\x{0327}", # U+00B8 => 0020 0327 -"\xC2\xBC" => "\x{0031}\x{2044}\x{0034}", # U+00BC => 0031 2044 0034 -"\xC2\xBD" => "\x{0031}\x{2044}\x{0032}", # U+00BD => 0031 2044 0032 -"\xC2\xBE" => "\x{0033}\x{2044}\x{0034}", # U+00BE => 0033 2044 0034 -"\xC3\x9F" => "\x{0073}\x{0073}", # U+00DF => 0073 0073 -"\xC4\xB0" => "\x{0069}\x{0307}", # U+0130 => 0069 0307 -"\xC4\xB2" => "\x{0069}\x{006A}", # U+0132 => 0069 006A -"\xC4\xB3" => "\x{0069}\x{006A}", # U+0133 => 0069 006A -"\xC4\xBF" => "\x{006C}\x{00B7}", # U+013F => 006C 00B7 -"\xC5\x80" => "\x{006C}\x{00B7}", # U+0140 => 006C 00B7 -"\xC5\x89" => "\x{02BC}\x{006E}", # U+0149 => 02BC 006E -"\xC7\x84" => "\x{0064}\x{017E}", # U+01C4 => 0064 017E -"\xC7\x85" => "\x{0064}\x{017E}", # U+01C5 => 0064 017E -"\xC7\x86" => "\x{0064}\x{017E}", # U+01C6 => 0064 017E -"\xC7\x87" => "\x{006C}\x{006A}", # U+01C7 => 006C 006A -"\xC7\x88" => "\x{006C}\x{006A}", # U+01C8 => 006C 006A -"\xC7\x89" => "\x{006C}\x{006A}", # U+01C9 => 006C 006A -"\xC7\x8A" => "\x{006E}\x{006A}", # U+01CA => 006E 006A -"\xC7\x8B" => "\x{006E}\x{006A}", # U+01CB => 006E 006A -"\xC7\x8C" => "\x{006E}\x{006A}", # U+01CC => 006E 006A -"\xC7\xB1" => "\x{0064}\x{007A}", # U+01F1 => 0064 007A -"\xC7\xB2" => "\x{0064}\x{007A}", # U+01F2 => 0064 007A -"\xC7\xB3" => "\x{0064}\x{007A}", # U+01F3 => 0064 007A -"\xCB\x98" => "\x{0020}\x{0306}", # U+02D8 => 0020 0306 -"\xCB\x99" => "\x{0020}\x{0307}", # U+02D9 => 0020 0307 -"\xCB\x9A" => "\x{0020}\x{030A}", # U+02DA => 0020 030A -"\xCB\x9B" => "\x{0020}\x{0328}", # U+02DB => 0020 0328 -"\xCB\x9C" => "\x{0020}\x{0303}", # U+02DC => 0020 0303 -"\xCB\x9D" => "\x{0020}\x{030B}", # U+02DD => 0020 030B -"\xCD\x84" => "\x{0308}\x{0301}", # U+0344 => 0308 0301 -"\xCD\x8F" => "", # U+034F => -"\xCD\xBA" => "\x{0020}\x{03B9}", # U+037A => 0020 03B9 -"\xCE\x84" => "\x{0020}\x{0301}", # U+0384 => 0020 0301 -"\xCE\x85" => "\x{0020}\x{0308}\x{0301}", # U+0385 => 0020 0308 0301 -"\xD6\x87" => "\x{0565}\x{0582}", # U+0587 => 0565 0582 -"\xD8\x9C" => "", # U+061C => -"\xD9\xB5" => "\x{0627}\x{0674}", # U+0675 => 0627 0674 -"\xD9\xB6" => "\x{0648}\x{0674}", # U+0676 => 0648 0674 -"\xD9\xB7" => "\x{06C7}\x{0674}", # U+0677 => 06C7 0674 -"\xD9\xB8" => "\x{064A}\x{0674}", # U+0678 => 064A 0674 -"\xE0\xA5\x98" => "\x{0915}\x{093C}", # U+0958 => 0915 093C -"\xE0\xA5\x99" => "\x{0916}\x{093C}", # U+0959 => 0916 093C -"\xE0\xA5\x9A" => "\x{0917}\x{093C}", # U+095A => 0917 093C -"\xE0\xA5\x9B" => "\x{091C}\x{093C}", # U+095B => 091C 093C -"\xE0\xA5\x9C" => "\x{0921}\x{093C}", # U+095C => 0921 093C -"\xE0\xA5\x9D" => "\x{0922}\x{093C}", # U+095D => 0922 093C -"\xE0\xA5\x9E" => "\x{092B}\x{093C}", # U+095E => 092B 093C -"\xE0\xA5\x9F" => "\x{092F}\x{093C}", # U+095F => 092F 093C -"\xE0\xA7\x9C" => "\x{09A1}\x{09BC}", # U+09DC => 09A1 09BC -"\xE0\xA7\x9D" => "\x{09A2}\x{09BC}", # U+09DD => 09A2 09BC -"\xE0\xA7\x9F" => "\x{09AF}\x{09BC}", # U+09DF => 09AF 09BC -"\xE0\xA8\xB3" => "\x{0A32}\x{0A3C}", # U+0A33 => 0A32 0A3C -"\xE0\xA8\xB6" => "\x{0A38}\x{0A3C}", # U+0A36 => 0A38 0A3C -"\xE0\xA9\x99" => "\x{0A16}\x{0A3C}", # U+0A59 => 0A16 0A3C -"\xE0\xA9\x9A" => "\x{0A17}\x{0A3C}", # U+0A5A => 0A17 0A3C -"\xE0\xA9\x9B" => "\x{0A1C}\x{0A3C}", # U+0A5B => 0A1C 0A3C -"\xE0\xA9\x9E" => "\x{0A2B}\x{0A3C}", # U+0A5E => 0A2B 0A3C -"\xE0\xAD\x9C" => "\x{0B21}\x{0B3C}", # U+0B5C => 0B21 0B3C -"\xE0\xAD\x9D" => "\x{0B22}\x{0B3C}", # U+0B5D => 0B22 0B3C -"\xE0\xB8\xB3" => "\x{0E4D}\x{0E32}", # U+0E33 => 0E4D 0E32 -"\xE0\xBA\xB3" => "\x{0ECD}\x{0EB2}", # U+0EB3 => 0ECD 0EB2 -"\xE0\xBB\x9C" => "\x{0EAB}\x{0E99}", # U+0EDC => 0EAB 0E99 -"\xE0\xBB\x9D" => "\x{0EAB}\x{0EA1}", # U+0EDD => 0EAB 0EA1 -"\xE0\xBD\x83" => "\x{0F42}\x{0FB7}", # U+0F43 => 0F42 0FB7 -"\xE0\xBD\x8D" => "\x{0F4C}\x{0FB7}", # U+0F4D => 0F4C 0FB7 -"\xE0\xBD\x92" => "\x{0F51}\x{0FB7}", # U+0F52 => 0F51 0FB7 -"\xE0\xBD\x97" => "\x{0F56}\x{0FB7}", # U+0F57 => 0F56 0FB7 -"\xE0\xBD\x9C" => "\x{0F5B}\x{0FB7}", # U+0F5C => 0F5B 0FB7 -"\xE0\xBD\xA9" => "\x{0F40}\x{0FB5}", # U+0F69 => 0F40 0FB5 -"\xE0\xBD\xB3" => "\x{0F71}\x{0F72}", # U+0F73 => 0F71 0F72 -"\xE0\xBD\xB5" => "\x{0F71}\x{0F74}", # U+0F75 => 0F71 0F74 -"\xE0\xBD\xB6" => "\x{0FB2}\x{0F80}", # U+0F76 => 0FB2 0F80 -"\xE0\xBD\xB7" => "\x{0FB2}\x{0F71}\x{0F80}", # U+0F77 => 0FB2 0F71 0F80 -"\xE0\xBD\xB8" => "\x{0FB3}\x{0F80}", # U+0F78 => 0FB3 0F80 -"\xE0\xBD\xB9" => "\x{0FB3}\x{0F71}\x{0F80}", # U+0F79 => 0FB3 0F71 0F80 -"\xE0\xBE\x81" => "\x{0F71}\x{0F80}", # U+0F81 => 0F71 0F80 -"\xE0\xBE\x93" => "\x{0F92}\x{0FB7}", # U+0F93 => 0F92 0FB7 -"\xE0\xBE\x9D" => "\x{0F9C}\x{0FB7}", # U+0F9D => 0F9C 0FB7 -"\xE0\xBE\xA2" => "\x{0FA1}\x{0FB7}", # U+0FA2 => 0FA1 0FB7 -"\xE0\xBE\xA7" => "\x{0FA6}\x{0FB7}", # U+0FA7 => 0FA6 0FB7 -"\xE0\xBE\xAC" => "\x{0FAB}\x{0FB7}", # U+0FAC => 0FAB 0FB7 -"\xE0\xBE\xB9" => "\x{0F90}\x{0FB5}", # U+0FB9 => 0F90 0FB5 -"\xE1\x85\x9F" => "", # U+115F => -"\xE1\x85\xA0" => "", # U+1160 => -"\xE1\x9E\xB4" => "", # U+17B4 => -"\xE1\x9E\xB5" => "", # U+17B5 => -"\xE1\xA0\x8B" => "", # U+180B => -"\xE1\xA0\x8C" => "", # U+180C => -"\xE1\xA0\x8D" => "", # U+180D => -"\xE1\xA0\x8E" => "", # U+180E => -"\xE1\xBA\x9A" => "\x{0061}\x{02BE}", # U+1E9A => 0061 02BE -"\xE1\xBA\x9E" => "\x{0073}\x{0073}", # U+1E9E => 0073 0073 -"\xE1\xBE\x80" => "\x{1F00}\x{03B9}", # U+1F80 => 1F00 03B9 -"\xE1\xBE\x81" => "\x{1F01}\x{03B9}", # U+1F81 => 1F01 03B9 -"\xE1\xBE\x82" => "\x{1F02}\x{03B9}", # U+1F82 => 1F02 03B9 -"\xE1\xBE\x83" => "\x{1F03}\x{03B9}", # U+1F83 => 1F03 03B9 -"\xE1\xBE\x84" => "\x{1F04}\x{03B9}", # U+1F84 => 1F04 03B9 -"\xE1\xBE\x85" => "\x{1F05}\x{03B9}", # U+1F85 => 1F05 03B9 -"\xE1\xBE\x86" => "\x{1F06}\x{03B9}", # U+1F86 => 1F06 03B9 -"\xE1\xBE\x87" => "\x{1F07}\x{03B9}", # U+1F87 => 1F07 03B9 -"\xE1\xBE\x88" => "\x{1F00}\x{03B9}", # U+1F88 => 1F00 03B9 -"\xE1\xBE\x89" => "\x{1F01}\x{03B9}", # U+1F89 => 1F01 03B9 -"\xE1\xBE\x8A" => "\x{1F02}\x{03B9}", # U+1F8A => 1F02 03B9 -"\xE1\xBE\x8B" => "\x{1F03}\x{03B9}", # U+1F8B => 1F03 03B9 -"\xE1\xBE\x8C" => "\x{1F04}\x{03B9}", # U+1F8C => 1F04 03B9 -"\xE1\xBE\x8D" => "\x{1F05}\x{03B9}", # U+1F8D => 1F05 03B9 -"\xE1\xBE\x8E" => "\x{1F06}\x{03B9}", # U+1F8E => 1F06 03B9 -"\xE1\xBE\x8F" => "\x{1F07}\x{03B9}", # U+1F8F => 1F07 03B9 -"\xE1\xBE\x90" => "\x{1F20}\x{03B9}", # U+1F90 => 1F20 03B9 -"\xE1\xBE\x91" => "\x{1F21}\x{03B9}", # U+1F91 => 1F21 03B9 -"\xE1\xBE\x92" => "\x{1F22}\x{03B9}", # U+1F92 => 1F22 03B9 -"\xE1\xBE\x93" => "\x{1F23}\x{03B9}", # U+1F93 => 1F23 03B9 -"\xE1\xBE\x94" => "\x{1F24}\x{03B9}", # U+1F94 => 1F24 03B9 -"\xE1\xBE\x95" => "\x{1F25}\x{03B9}", # U+1F95 => 1F25 03B9 -"\xE1\xBE\x96" => "\x{1F26}\x{03B9}", # U+1F96 => 1F26 03B9 -"\xE1\xBE\x97" => "\x{1F27}\x{03B9}", # U+1F97 => 1F27 03B9 -"\xE1\xBE\x98" => "\x{1F20}\x{03B9}", # U+1F98 => 1F20 03B9 -"\xE1\xBE\x99" => "\x{1F21}\x{03B9}", # U+1F99 => 1F21 03B9 -"\xE1\xBE\x9A" => "\x{1F22}\x{03B9}", # U+1F9A => 1F22 03B9 -"\xE1\xBE\x9B" => "\x{1F23}\x{03B9}", # U+1F9B => 1F23 03B9 -"\xE1\xBE\x9C" => "\x{1F24}\x{03B9}", # U+1F9C => 1F24 03B9 -"\xE1\xBE\x9D" => "\x{1F25}\x{03B9}", # U+1F9D => 1F25 03B9 -"\xE1\xBE\x9E" => "\x{1F26}\x{03B9}", # U+1F9E => 1F26 03B9 -"\xE1\xBE\x9F" => "\x{1F27}\x{03B9}", # U+1F9F => 1F27 03B9 -"\xE1\xBE\xA0" => "\x{1F60}\x{03B9}", # U+1FA0 => 1F60 03B9 -"\xE1\xBE\xA1" => "\x{1F61}\x{03B9}", # U+1FA1 => 1F61 03B9 -"\xE1\xBE\xA2" => "\x{1F62}\x{03B9}", # U+1FA2 => 1F62 03B9 -"\xE1\xBE\xA3" => "\x{1F63}\x{03B9}", # U+1FA3 => 1F63 03B9 -"\xE1\xBE\xA4" => "\x{1F64}\x{03B9}", # U+1FA4 => 1F64 03B9 -"\xE1\xBE\xA5" => "\x{1F65}\x{03B9}", # U+1FA5 => 1F65 03B9 -"\xE1\xBE\xA6" => "\x{1F66}\x{03B9}", # U+1FA6 => 1F66 03B9 -"\xE1\xBE\xA7" => "\x{1F67}\x{03B9}", # U+1FA7 => 1F67 03B9 -"\xE1\xBE\xA8" => "\x{1F60}\x{03B9}", # U+1FA8 => 1F60 03B9 -"\xE1\xBE\xA9" => "\x{1F61}\x{03B9}", # U+1FA9 => 1F61 03B9 -"\xE1\xBE\xAA" => "\x{1F62}\x{03B9}", # U+1FAA => 1F62 03B9 -"\xE1\xBE\xAB" => "\x{1F63}\x{03B9}", # U+1FAB => 1F63 03B9 -"\xE1\xBE\xAC" => "\x{1F64}\x{03B9}", # U+1FAC => 1F64 03B9 -"\xE1\xBE\xAD" => "\x{1F65}\x{03B9}", # U+1FAD => 1F65 03B9 -"\xE1\xBE\xAE" => "\x{1F66}\x{03B9}", # U+1FAE => 1F66 03B9 -"\xE1\xBE\xAF" => "\x{1F67}\x{03B9}", # U+1FAF => 1F67 03B9 -"\xE1\xBE\xB2" => "\x{1F70}\x{03B9}", # U+1FB2 => 1F70 03B9 -"\xE1\xBE\xB3" => "\x{03B1}\x{03B9}", # U+1FB3 => 03B1 03B9 -"\xE1\xBE\xB4" => "\x{03AC}\x{03B9}", # U+1FB4 => 03AC 03B9 -"\xE1\xBE\xB7" => "\x{1FB6}\x{03B9}", # U+1FB7 => 1FB6 03B9 -"\xE1\xBE\xBC" => "\x{03B1}\x{03B9}", # U+1FBC => 03B1 03B9 -"\xE1\xBE\xBD" => "\x{0020}\x{0313}", # U+1FBD => 0020 0313 -"\xE1\xBE\xBF" => "\x{0020}\x{0313}", # U+1FBF => 0020 0313 -"\xE1\xBF\x80" => "\x{0020}\x{0342}", # U+1FC0 => 0020 0342 -"\xE1\xBF\x81" => "\x{0020}\x{0308}\x{0342}", # U+1FC1 => 0020 0308 0342 -"\xE1\xBF\x82" => "\x{1F74}\x{03B9}", # U+1FC2 => 1F74 03B9 -"\xE1\xBF\x83" => "\x{03B7}\x{03B9}", # U+1FC3 => 03B7 03B9 -"\xE1\xBF\x84" => "\x{03AE}\x{03B9}", # U+1FC4 => 03AE 03B9 -"\xE1\xBF\x87" => "\x{1FC6}\x{03B9}", # U+1FC7 => 1FC6 03B9 -"\xE1\xBF\x8C" => "\x{03B7}\x{03B9}", # U+1FCC => 03B7 03B9 -"\xE1\xBF\x8D" => "\x{0020}\x{0313}\x{0300}", # U+1FCD => 0020 0313 0300 -"\xE1\xBF\x8E" => "\x{0020}\x{0313}\x{0301}", # U+1FCE => 0020 0313 0301 -"\xE1\xBF\x8F" => "\x{0020}\x{0313}\x{0342}", # U+1FCF => 0020 0313 0342 -"\xE1\xBF\x9D" => "\x{0020}\x{0314}\x{0300}", # U+1FDD => 0020 0314 0300 -"\xE1\xBF\x9E" => "\x{0020}\x{0314}\x{0301}", # U+1FDE => 0020 0314 0301 -"\xE1\xBF\x9F" => "\x{0020}\x{0314}\x{0342}", # U+1FDF => 0020 0314 0342 -"\xE1\xBF\xAD" => "\x{0020}\x{0308}\x{0300}", # U+1FED => 0020 0308 0300 -"\xE1\xBF\xAE" => "\x{0020}\x{0308}\x{0301}", # U+1FEE => 0020 0308 0301 -"\xE1\xBF\xB2" => "\x{1F7C}\x{03B9}", # U+1FF2 => 1F7C 03B9 -"\xE1\xBF\xB3" => "\x{03C9}\x{03B9}", # U+1FF3 => 03C9 03B9 -"\xE1\xBF\xB4" => "\x{03CE}\x{03B9}", # U+1FF4 => 03CE 03B9 -"\xE1\xBF\xB7" => "\x{1FF6}\x{03B9}", # U+1FF7 => 1FF6 03B9 -"\xE1\xBF\xBC" => "\x{03C9}\x{03B9}", # U+1FFC => 03C9 03B9 -"\xE1\xBF\xBD" => "\x{0020}\x{0301}", # U+1FFD => 0020 0301 -"\xE1\xBF\xBE" => "\x{0020}\x{0314}", # U+1FFE => 0020 0314 -"\xE2\x80\x8B" => "", # U+200B => -"\xE2\x80\x8C" => "", # U+200C => -"\xE2\x80\x8D" => "", # U+200D => -"\xE2\x80\x8E" => "", # U+200E => -"\xE2\x80\x8F" => "", # U+200F => -"\xE2\x80\x97" => "\x{0020}\x{0333}", # U+2017 => 0020 0333 -"\xE2\x80\xA5" => "\x{002E}\x{002E}", # U+2025 => 002E 002E -"\xE2\x80\xA6" => "\x{002E}\x{002E}\x{002E}", # U+2026 => 002E 002E 002E -"\xE2\x80\xAA" => "", # U+202A => -"\xE2\x80\xAB" => "", # U+202B => -"\xE2\x80\xAC" => "", # U+202C => -"\xE2\x80\xAD" => "", # U+202D => -"\xE2\x80\xAE" => "", # U+202E => -"\xE2\x80\xB3" => "\x{2032}\x{2032}", # U+2033 => 2032 2032 -"\xE2\x80\xB4" => "\x{2032}\x{2032}\x{2032}", # U+2034 => 2032 2032 2032 -"\xE2\x80\xB6" => "\x{2035}\x{2035}", # U+2036 => 2035 2035 -"\xE2\x80\xB7" => "\x{2035}\x{2035}\x{2035}", # U+2037 => 2035 2035 2035 -"\xE2\x80\xBC" => "\x{0021}\x{0021}", # U+203C => 0021 0021 -"\xE2\x80\xBE" => "\x{0020}\x{0305}", # U+203E => 0020 0305 -"\xE2\x81\x87" => "\x{003F}\x{003F}", # U+2047 => 003F 003F -"\xE2\x81\x88" => "\x{003F}\x{0021}", # U+2048 => 003F 0021 -"\xE2\x81\x89" => "\x{0021}\x{003F}", # U+2049 => 0021 003F -"\xE2\x81\x97" => "\x{2032}\x{2032}\x{2032}\x{2032}", # U+2057 => 2032 2032 2032 2032 -"\xE2\x81\xA0" => "", # U+2060 => -"\xE2\x81\xA1" => "", # U+2061 => -"\xE2\x81\xA2" => "", # U+2062 => -"\xE2\x81\xA3" => "", # U+2063 => -"\xE2\x81\xA4" => "", # U+2064 => -"\xE2\x81\xA5" => "", # U+2065 => -"\xE2\x81\xA6" => "", # U+2066 => -"\xE2\x81\xA7" => "", # U+2067 => -"\xE2\x81\xA8" => "", # U+2068 => -"\xE2\x81\xA9" => "", # U+2069 => -"\xE2\x81\xAA" => "", # U+206A => -"\xE2\x81\xAB" => "", # U+206B => -"\xE2\x81\xAC" => "", # U+206C => -"\xE2\x81\xAD" => "", # U+206D => -"\xE2\x81\xAE" => "", # U+206E => -"\xE2\x81\xAF" => "", # U+206F => -"\xE2\x82\xA8" => "\x{0072}\x{0073}", # U+20A8 => 0072 0073 -"\xE2\x84\x80" => "\x{0061}\x{002F}\x{0063}", # U+2100 => 0061 002F 0063 -"\xE2\x84\x81" => "\x{0061}\x{002F}\x{0073}", # U+2101 => 0061 002F 0073 -"\xE2\x84\x83" => "\x{00B0}\x{0063}", # U+2103 => 00B0 0063 -"\xE2\x84\x85" => "\x{0063}\x{002F}\x{006F}", # U+2105 => 0063 002F 006F -"\xE2\x84\x86" => "\x{0063}\x{002F}\x{0075}", # U+2106 => 0063 002F 0075 -"\xE2\x84\x89" => "\x{00B0}\x{0066}", # U+2109 => 00B0 0066 -"\xE2\x84\x96" => "\x{006E}\x{006F}", # U+2116 => 006E 006F -"\xE2\x84\xA0" => "\x{0073}\x{006D}", # U+2120 => 0073 006D -"\xE2\x84\xA1" => "\x{0074}\x{0065}\x{006C}", # U+2121 => 0074 0065 006C -"\xE2\x84\xA2" => "\x{0074}\x{006D}", # U+2122 => 0074 006D -"\xE2\x84\xBB" => "\x{0066}\x{0061}\x{0078}", # U+213B => 0066 0061 0078 -"\xE2\x85\x90" => "\x{0031}\x{2044}\x{0037}", # U+2150 => 0031 2044 0037 -"\xE2\x85\x91" => "\x{0031}\x{2044}\x{0039}", # U+2151 => 0031 2044 0039 -"\xE2\x85\x92" => "\x{0031}\x{2044}\x{0031}\x{0030}", # U+2152 => 0031 2044 0031 0030 -"\xE2\x85\x93" => "\x{0031}\x{2044}\x{0033}", # U+2153 => 0031 2044 0033 -"\xE2\x85\x94" => "\x{0032}\x{2044}\x{0033}", # U+2154 => 0032 2044 0033 -"\xE2\x85\x95" => "\x{0031}\x{2044}\x{0035}", # U+2155 => 0031 2044 0035 -"\xE2\x85\x96" => "\x{0032}\x{2044}\x{0035}", # U+2156 => 0032 2044 0035 -"\xE2\x85\x97" => "\x{0033}\x{2044}\x{0035}", # U+2157 => 0033 2044 0035 -"\xE2\x85\x98" => "\x{0034}\x{2044}\x{0035}", # U+2158 => 0034 2044 0035 -"\xE2\x85\x99" => "\x{0031}\x{2044}\x{0036}", # U+2159 => 0031 2044 0036 -"\xE2\x85\x9A" => "\x{0035}\x{2044}\x{0036}", # U+215A => 0035 2044 0036 -"\xE2\x85\x9B" => "\x{0031}\x{2044}\x{0038}", # U+215B => 0031 2044 0038 -"\xE2\x85\x9C" => "\x{0033}\x{2044}\x{0038}", # U+215C => 0033 2044 0038 -"\xE2\x85\x9D" => "\x{0035}\x{2044}\x{0038}", # U+215D => 0035 2044 0038 -"\xE2\x85\x9E" => "\x{0037}\x{2044}\x{0038}", # U+215E => 0037 2044 0038 -"\xE2\x85\x9F" => "\x{0031}\x{2044}", # U+215F => 0031 2044 -"\xE2\x85\xA1" => "\x{0069}\x{0069}", # U+2161 => 0069 0069 -"\xE2\x85\xA2" => "\x{0069}\x{0069}\x{0069}", # U+2162 => 0069 0069 0069 -"\xE2\x85\xA3" => "\x{0069}\x{0076}", # U+2163 => 0069 0076 -"\xE2\x85\xA5" => "\x{0076}\x{0069}", # U+2165 => 0076 0069 -"\xE2\x85\xA6" => "\x{0076}\x{0069}\x{0069}", # U+2166 => 0076 0069 0069 -"\xE2\x85\xA7" => "\x{0076}\x{0069}\x{0069}\x{0069}", # U+2167 => 0076 0069 0069 0069 -"\xE2\x85\xA8" => "\x{0069}\x{0078}", # U+2168 => 0069 0078 -"\xE2\x85\xAA" => "\x{0078}\x{0069}", # U+216A => 0078 0069 -"\xE2\x85\xAB" => "\x{0078}\x{0069}\x{0069}", # U+216B => 0078 0069 0069 -"\xE2\x85\xB1" => "\x{0069}\x{0069}", # U+2171 => 0069 0069 -"\xE2\x85\xB2" => "\x{0069}\x{0069}\x{0069}", # U+2172 => 0069 0069 0069 -"\xE2\x85\xB3" => "\x{0069}\x{0076}", # U+2173 => 0069 0076 -"\xE2\x85\xB5" => "\x{0076}\x{0069}", # U+2175 => 0076 0069 -"\xE2\x85\xB6" => "\x{0076}\x{0069}\x{0069}", # U+2176 => 0076 0069 0069 -"\xE2\x85\xB7" => "\x{0076}\x{0069}\x{0069}\x{0069}", # U+2177 => 0076 0069 0069 0069 -"\xE2\x85\xB8" => "\x{0069}\x{0078}", # U+2178 => 0069 0078 -"\xE2\x85\xBA" => "\x{0078}\x{0069}", # U+217A => 0078 0069 -"\xE2\x85\xBB" => "\x{0078}\x{0069}\x{0069}", # U+217B => 0078 0069 0069 -"\xE2\x86\x89" => "\x{0030}\x{2044}\x{0033}", # U+2189 => 0030 2044 0033 -"\xE2\x88\xAC" => "\x{222B}\x{222B}", # U+222C => 222B 222B -"\xE2\x88\xAD" => "\x{222B}\x{222B}\x{222B}", # U+222D => 222B 222B 222B -"\xE2\x88\xAF" => "\x{222E}\x{222E}", # U+222F => 222E 222E -"\xE2\x88\xB0" => "\x{222E}\x{222E}\x{222E}", # U+2230 => 222E 222E 222E -"\xE2\x91\xA9" => "\x{0031}\x{0030}", # U+2469 => 0031 0030 -"\xE2\x91\xAA" => "\x{0031}\x{0031}", # U+246A => 0031 0031 -"\xE2\x91\xAB" => "\x{0031}\x{0032}", # U+246B => 0031 0032 -"\xE2\x91\xAC" => "\x{0031}\x{0033}", # U+246C => 0031 0033 -"\xE2\x91\xAD" => "\x{0031}\x{0034}", # U+246D => 0031 0034 -"\xE2\x91\xAE" => "\x{0031}\x{0035}", # U+246E => 0031 0035 -"\xE2\x91\xAF" => "\x{0031}\x{0036}", # U+246F => 0031 0036 -"\xE2\x91\xB0" => "\x{0031}\x{0037}", # U+2470 => 0031 0037 -"\xE2\x91\xB1" => "\x{0031}\x{0038}", # U+2471 => 0031 0038 -"\xE2\x91\xB2" => "\x{0031}\x{0039}", # U+2472 => 0031 0039 -"\xE2\x91\xB3" => "\x{0032}\x{0030}", # U+2473 => 0032 0030 -"\xE2\x91\xB4" => "\x{0028}\x{0031}\x{0029}", # U+2474 => 0028 0031 0029 -"\xE2\x91\xB5" => "\x{0028}\x{0032}\x{0029}", # U+2475 => 0028 0032 0029 -"\xE2\x91\xB6" => "\x{0028}\x{0033}\x{0029}", # U+2476 => 0028 0033 0029 -"\xE2\x91\xB7" => "\x{0028}\x{0034}\x{0029}", # U+2477 => 0028 0034 0029 -"\xE2\x91\xB8" => "\x{0028}\x{0035}\x{0029}", # U+2478 => 0028 0035 0029 -"\xE2\x91\xB9" => "\x{0028}\x{0036}\x{0029}", # U+2479 => 0028 0036 0029 -"\xE2\x91\xBA" => "\x{0028}\x{0037}\x{0029}", # U+247A => 0028 0037 0029 -"\xE2\x91\xBB" => "\x{0028}\x{0038}\x{0029}", # U+247B => 0028 0038 0029 -"\xE2\x91\xBC" => "\x{0028}\x{0039}\x{0029}", # U+247C => 0028 0039 0029 -"\xE2\x91\xBD" => "\x{0028}\x{0031}\x{0030}\x{0029}", # U+247D => 0028 0031 0030 0029 -"\xE2\x91\xBE" => "\x{0028}\x{0031}\x{0031}\x{0029}", # U+247E => 0028 0031 0031 0029 -"\xE2\x91\xBF" => "\x{0028}\x{0031}\x{0032}\x{0029}", # U+247F => 0028 0031 0032 0029 -"\xE2\x92\x80" => "\x{0028}\x{0031}\x{0033}\x{0029}", # U+2480 => 0028 0031 0033 0029 -"\xE2\x92\x81" => "\x{0028}\x{0031}\x{0034}\x{0029}", # U+2481 => 0028 0031 0034 0029 -"\xE2\x92\x82" => "\x{0028}\x{0031}\x{0035}\x{0029}", # U+2482 => 0028 0031 0035 0029 -"\xE2\x92\x83" => "\x{0028}\x{0031}\x{0036}\x{0029}", # U+2483 => 0028 0031 0036 0029 -"\xE2\x92\x84" => "\x{0028}\x{0031}\x{0037}\x{0029}", # U+2484 => 0028 0031 0037 0029 -"\xE2\x92\x85" => "\x{0028}\x{0031}\x{0038}\x{0029}", # U+2485 => 0028 0031 0038 0029 -"\xE2\x92\x86" => "\x{0028}\x{0031}\x{0039}\x{0029}", # U+2486 => 0028 0031 0039 0029 -"\xE2\x92\x87" => "\x{0028}\x{0032}\x{0030}\x{0029}", # U+2487 => 0028 0032 0030 0029 -"\xE2\x92\x88" => "\x{0031}\x{002E}", # U+2488 => 0031 002E -"\xE2\x92\x89" => "\x{0032}\x{002E}", # U+2489 => 0032 002E -"\xE2\x92\x8A" => "\x{0033}\x{002E}", # U+248A => 0033 002E -"\xE2\x92\x8B" => "\x{0034}\x{002E}", # U+248B => 0034 002E -"\xE2\x92\x8C" => "\x{0035}\x{002E}", # U+248C => 0035 002E -"\xE2\x92\x8D" => "\x{0036}\x{002E}", # U+248D => 0036 002E -"\xE2\x92\x8E" => "\x{0037}\x{002E}", # U+248E => 0037 002E -"\xE2\x92\x8F" => "\x{0038}\x{002E}", # U+248F => 0038 002E -"\xE2\x92\x90" => "\x{0039}\x{002E}", # U+2490 => 0039 002E -"\xE2\x92\x91" => "\x{0031}\x{0030}\x{002E}", # U+2491 => 0031 0030 002E -"\xE2\x92\x92" => "\x{0031}\x{0031}\x{002E}", # U+2492 => 0031 0031 002E -"\xE2\x92\x93" => "\x{0031}\x{0032}\x{002E}", # U+2493 => 0031 0032 002E -"\xE2\x92\x94" => "\x{0031}\x{0033}\x{002E}", # U+2494 => 0031 0033 002E -"\xE2\x92\x95" => "\x{0031}\x{0034}\x{002E}", # U+2495 => 0031 0034 002E -"\xE2\x92\x96" => "\x{0031}\x{0035}\x{002E}", # U+2496 => 0031 0035 002E -"\xE2\x92\x97" => "\x{0031}\x{0036}\x{002E}", # U+2497 => 0031 0036 002E -"\xE2\x92\x98" => "\x{0031}\x{0037}\x{002E}", # U+2498 => 0031 0037 002E -"\xE2\x92\x99" => "\x{0031}\x{0038}\x{002E}", # U+2499 => 0031 0038 002E -"\xE2\x92\x9A" => "\x{0031}\x{0039}\x{002E}", # U+249A => 0031 0039 002E -"\xE2\x92\x9B" => "\x{0032}\x{0030}\x{002E}", # U+249B => 0032 0030 002E -"\xE2\x92\x9C" => "\x{0028}\x{0061}\x{0029}", # U+249C => 0028 0061 0029 -"\xE2\x92\x9D" => "\x{0028}\x{0062}\x{0029}", # U+249D => 0028 0062 0029 -"\xE2\x92\x9E" => "\x{0028}\x{0063}\x{0029}", # U+249E => 0028 0063 0029 -"\xE2\x92\x9F" => "\x{0028}\x{0064}\x{0029}", # U+249F => 0028 0064 0029 -"\xE2\x92\xA0" => "\x{0028}\x{0065}\x{0029}", # U+24A0 => 0028 0065 0029 -"\xE2\x92\xA1" => "\x{0028}\x{0066}\x{0029}", # U+24A1 => 0028 0066 0029 -"\xE2\x92\xA2" => "\x{0028}\x{0067}\x{0029}", # U+24A2 => 0028 0067 0029 -"\xE2\x92\xA3" => "\x{0028}\x{0068}\x{0029}", # U+24A3 => 0028 0068 0029 -"\xE2\x92\xA4" => "\x{0028}\x{0069}\x{0029}", # U+24A4 => 0028 0069 0029 -"\xE2\x92\xA5" => "\x{0028}\x{006A}\x{0029}", # U+24A5 => 0028 006A 0029 -"\xE2\x92\xA6" => "\x{0028}\x{006B}\x{0029}", # U+24A6 => 0028 006B 0029 -"\xE2\x92\xA7" => "\x{0028}\x{006C}\x{0029}", # U+24A7 => 0028 006C 0029 -"\xE2\x92\xA8" => "\x{0028}\x{006D}\x{0029}", # U+24A8 => 0028 006D 0029 -"\xE2\x92\xA9" => "\x{0028}\x{006E}\x{0029}", # U+24A9 => 0028 006E 0029 -"\xE2\x92\xAA" => "\x{0028}\x{006F}\x{0029}", # U+24AA => 0028 006F 0029 -"\xE2\x92\xAB" => "\x{0028}\x{0070}\x{0029}", # U+24AB => 0028 0070 0029 -"\xE2\x92\xAC" => "\x{0028}\x{0071}\x{0029}", # U+24AC => 0028 0071 0029 -"\xE2\x92\xAD" => "\x{0028}\x{0072}\x{0029}", # U+24AD => 0028 0072 0029 -"\xE2\x92\xAE" => "\x{0028}\x{0073}\x{0029}", # U+24AE => 0028 0073 0029 -"\xE2\x92\xAF" => "\x{0028}\x{0074}\x{0029}", # U+24AF => 0028 0074 0029 -"\xE2\x92\xB0" => "\x{0028}\x{0075}\x{0029}", # U+24B0 => 0028 0075 0029 -"\xE2\x92\xB1" => "\x{0028}\x{0076}\x{0029}", # U+24B1 => 0028 0076 0029 -"\xE2\x92\xB2" => "\x{0028}\x{0077}\x{0029}", # U+24B2 => 0028 0077 0029 -"\xE2\x92\xB3" => "\x{0028}\x{0078}\x{0029}", # U+24B3 => 0028 0078 0029 -"\xE2\x92\xB4" => "\x{0028}\x{0079}\x{0029}", # U+24B4 => 0028 0079 0029 -"\xE2\x92\xB5" => "\x{0028}\x{007A}\x{0029}", # U+24B5 => 0028 007A 0029 -"\xE2\xA8\x8C" => "\x{222B}\x{222B}\x{222B}\x{222B}", # U+2A0C => 222B 222B 222B 222B -"\xE2\xA9\xB4" => "\x{003A}\x{003A}\x{003D}", # U+2A74 => 003A 003A 003D -"\xE2\xA9\xB5" => "\x{003D}\x{003D}", # U+2A75 => 003D 003D -"\xE2\xA9\xB6" => "\x{003D}\x{003D}\x{003D}", # U+2A76 => 003D 003D 003D -"\xE2\xAB\x9C" => "\x{2ADD}\x{0338}", # U+2ADC => 2ADD 0338 -"\xE3\x82\x9B" => "\x{0020}\x{3099}", # U+309B => 0020 3099 -"\xE3\x82\x9C" => "\x{0020}\x{309A}", # U+309C => 0020 309A -"\xE3\x82\x9F" => "\x{3088}\x{308A}", # U+309F => 3088 308A -"\xE3\x83\xBF" => "\x{30B3}\x{30C8}", # U+30FF => 30B3 30C8 -"\xE3\x85\xA4" => "", # U+3164 => -"\xE3\x88\x80" => "\x{0028}\x{1100}\x{0029}", # U+3200 => 0028 1100 0029 -"\xE3\x88\x81" => "\x{0028}\x{1102}\x{0029}", # U+3201 => 0028 1102 0029 -"\xE3\x88\x82" => "\x{0028}\x{1103}\x{0029}", # U+3202 => 0028 1103 0029 -"\xE3\x88\x83" => "\x{0028}\x{1105}\x{0029}", # U+3203 => 0028 1105 0029 -"\xE3\x88\x84" => "\x{0028}\x{1106}\x{0029}", # U+3204 => 0028 1106 0029 -"\xE3\x88\x85" => "\x{0028}\x{1107}\x{0029}", # U+3205 => 0028 1107 0029 -"\xE3\x88\x86" => "\x{0028}\x{1109}\x{0029}", # U+3206 => 0028 1109 0029 -"\xE3\x88\x87" => "\x{0028}\x{110B}\x{0029}", # U+3207 => 0028 110B 0029 -"\xE3\x88\x88" => "\x{0028}\x{110C}\x{0029}", # U+3208 => 0028 110C 0029 -"\xE3\x88\x89" => "\x{0028}\x{110E}\x{0029}", # U+3209 => 0028 110E 0029 -"\xE3\x88\x8A" => "\x{0028}\x{110F}\x{0029}", # U+320A => 0028 110F 0029 -"\xE3\x88\x8B" => "\x{0028}\x{1110}\x{0029}", # U+320B => 0028 1110 0029 -"\xE3\x88\x8C" => "\x{0028}\x{1111}\x{0029}", # U+320C => 0028 1111 0029 -"\xE3\x88\x8D" => "\x{0028}\x{1112}\x{0029}", # U+320D => 0028 1112 0029 -"\xE3\x88\x8E" => "\x{0028}\x{AC00}\x{0029}", # U+320E => 0028 AC00 0029 -"\xE3\x88\x8F" => "\x{0028}\x{B098}\x{0029}", # U+320F => 0028 B098 0029 -"\xE3\x88\x90" => "\x{0028}\x{B2E4}\x{0029}", # U+3210 => 0028 B2E4 0029 -"\xE3\x88\x91" => "\x{0028}\x{B77C}\x{0029}", # U+3211 => 0028 B77C 0029 -"\xE3\x88\x92" => "\x{0028}\x{B9C8}\x{0029}", # U+3212 => 0028 B9C8 0029 -"\xE3\x88\x93" => "\x{0028}\x{BC14}\x{0029}", # U+3213 => 0028 BC14 0029 -"\xE3\x88\x94" => "\x{0028}\x{C0AC}\x{0029}", # U+3214 => 0028 C0AC 0029 -"\xE3\x88\x95" => "\x{0028}\x{C544}\x{0029}", # U+3215 => 0028 C544 0029 -"\xE3\x88\x96" => "\x{0028}\x{C790}\x{0029}", # U+3216 => 0028 C790 0029 -"\xE3\x88\x97" => "\x{0028}\x{CC28}\x{0029}", # U+3217 => 0028 CC28 0029 -"\xE3\x88\x98" => "\x{0028}\x{CE74}\x{0029}", # U+3218 => 0028 CE74 0029 -"\xE3\x88\x99" => "\x{0028}\x{D0C0}\x{0029}", # U+3219 => 0028 D0C0 0029 -"\xE3\x88\x9A" => "\x{0028}\x{D30C}\x{0029}", # U+321A => 0028 D30C 0029 -"\xE3\x88\x9B" => "\x{0028}\x{D558}\x{0029}", # U+321B => 0028 D558 0029 -"\xE3\x88\x9C" => "\x{0028}\x{C8FC}\x{0029}", # U+321C => 0028 C8FC 0029 -"\xE3\x88\x9D" => "\x{0028}\x{C624}\x{C804}\x{0029}", # U+321D => 0028 C624 C804 0029 -"\xE3\x88\x9E" => "\x{0028}\x{C624}\x{D6C4}\x{0029}", # U+321E => 0028 C624 D6C4 0029 -"\xE3\x88\xA0" => "\x{0028}\x{4E00}\x{0029}", # U+3220 => 0028 4E00 0029 -"\xE3\x88\xA1" => "\x{0028}\x{4E8C}\x{0029}", # U+3221 => 0028 4E8C 0029 -"\xE3\x88\xA2" => "\x{0028}\x{4E09}\x{0029}", # U+3222 => 0028 4E09 0029 -"\xE3\x88\xA3" => "\x{0028}\x{56DB}\x{0029}", # U+3223 => 0028 56DB 0029 -"\xE3\x88\xA4" => "\x{0028}\x{4E94}\x{0029}", # U+3224 => 0028 4E94 0029 -"\xE3\x88\xA5" => "\x{0028}\x{516D}\x{0029}", # U+3225 => 0028 516D 0029 -"\xE3\x88\xA6" => "\x{0028}\x{4E03}\x{0029}", # U+3226 => 0028 4E03 0029 -"\xE3\x88\xA7" => "\x{0028}\x{516B}\x{0029}", # U+3227 => 0028 516B 0029 -"\xE3\x88\xA8" => "\x{0028}\x{4E5D}\x{0029}", # U+3228 => 0028 4E5D 0029 -"\xE3\x88\xA9" => "\x{0028}\x{5341}\x{0029}", # U+3229 => 0028 5341 0029 -"\xE3\x88\xAA" => "\x{0028}\x{6708}\x{0029}", # U+322A => 0028 6708 0029 -"\xE3\x88\xAB" => "\x{0028}\x{706B}\x{0029}", # U+322B => 0028 706B 0029 -"\xE3\x88\xAC" => "\x{0028}\x{6C34}\x{0029}", # U+322C => 0028 6C34 0029 -"\xE3\x88\xAD" => "\x{0028}\x{6728}\x{0029}", # U+322D => 0028 6728 0029 -"\xE3\x88\xAE" => "\x{0028}\x{91D1}\x{0029}", # U+322E => 0028 91D1 0029 -"\xE3\x88\xAF" => "\x{0028}\x{571F}\x{0029}", # U+322F => 0028 571F 0029 -"\xE3\x88\xB0" => "\x{0028}\x{65E5}\x{0029}", # U+3230 => 0028 65E5 0029 -"\xE3\x88\xB1" => "\x{0028}\x{682A}\x{0029}", # U+3231 => 0028 682A 0029 -"\xE3\x88\xB2" => "\x{0028}\x{6709}\x{0029}", # U+3232 => 0028 6709 0029 -"\xE3\x88\xB3" => "\x{0028}\x{793E}\x{0029}", # U+3233 => 0028 793E 0029 -"\xE3\x88\xB4" => "\x{0028}\x{540D}\x{0029}", # U+3234 => 0028 540D 0029 -"\xE3\x88\xB5" => "\x{0028}\x{7279}\x{0029}", # U+3235 => 0028 7279 0029 -"\xE3\x88\xB6" => "\x{0028}\x{8CA1}\x{0029}", # U+3236 => 0028 8CA1 0029 -"\xE3\x88\xB7" => "\x{0028}\x{795D}\x{0029}", # U+3237 => 0028 795D 0029 -"\xE3\x88\xB8" => "\x{0028}\x{52B4}\x{0029}", # U+3238 => 0028 52B4 0029 -"\xE3\x88\xB9" => "\x{0028}\x{4EE3}\x{0029}", # U+3239 => 0028 4EE3 0029 -"\xE3\x88\xBA" => "\x{0028}\x{547C}\x{0029}", # U+323A => 0028 547C 0029 -"\xE3\x88\xBB" => "\x{0028}\x{5B66}\x{0029}", # U+323B => 0028 5B66 0029 -"\xE3\x88\xBC" => "\x{0028}\x{76E3}\x{0029}", # U+323C => 0028 76E3 0029 -"\xE3\x88\xBD" => "\x{0028}\x{4F01}\x{0029}", # U+323D => 0028 4F01 0029 -"\xE3\x88\xBE" => "\x{0028}\x{8CC7}\x{0029}", # U+323E => 0028 8CC7 0029 -"\xE3\x88\xBF" => "\x{0028}\x{5354}\x{0029}", # U+323F => 0028 5354 0029 -"\xE3\x89\x80" => "\x{0028}\x{796D}\x{0029}", # U+3240 => 0028 796D 0029 -"\xE3\x89\x81" => "\x{0028}\x{4F11}\x{0029}", # U+3241 => 0028 4F11 0029 -"\xE3\x89\x82" => "\x{0028}\x{81EA}\x{0029}", # U+3242 => 0028 81EA 0029 -"\xE3\x89\x83" => "\x{0028}\x{81F3}\x{0029}", # U+3243 => 0028 81F3 0029 -"\xE3\x89\x90" => "\x{0070}\x{0074}\x{0065}", # U+3250 => 0070 0074 0065 -"\xE3\x89\x91" => "\x{0032}\x{0031}", # U+3251 => 0032 0031 -"\xE3\x89\x92" => "\x{0032}\x{0032}", # U+3252 => 0032 0032 -"\xE3\x89\x93" => "\x{0032}\x{0033}", # U+3253 => 0032 0033 -"\xE3\x89\x94" => "\x{0032}\x{0034}", # U+3254 => 0032 0034 -"\xE3\x89\x95" => "\x{0032}\x{0035}", # U+3255 => 0032 0035 -"\xE3\x89\x96" => "\x{0032}\x{0036}", # U+3256 => 0032 0036 -"\xE3\x89\x97" => "\x{0032}\x{0037}", # U+3257 => 0032 0037 -"\xE3\x89\x98" => "\x{0032}\x{0038}", # U+3258 => 0032 0038 -"\xE3\x89\x99" => "\x{0032}\x{0039}", # U+3259 => 0032 0039 -"\xE3\x89\x9A" => "\x{0033}\x{0030}", # U+325A => 0033 0030 -"\xE3\x89\x9B" => "\x{0033}\x{0031}", # U+325B => 0033 0031 -"\xE3\x89\x9C" => "\x{0033}\x{0032}", # U+325C => 0033 0032 -"\xE3\x89\x9D" => "\x{0033}\x{0033}", # U+325D => 0033 0033 -"\xE3\x89\x9E" => "\x{0033}\x{0034}", # U+325E => 0033 0034 -"\xE3\x89\x9F" => "\x{0033}\x{0035}", # U+325F => 0033 0035 -"\xE3\x89\xBC" => "\x{CC38}\x{ACE0}", # U+327C => CC38 ACE0 -"\xE3\x89\xBD" => "\x{C8FC}\x{C758}", # U+327D => C8FC C758 -"\xE3\x8A\xB1" => "\x{0033}\x{0036}", # U+32B1 => 0033 0036 -"\xE3\x8A\xB2" => "\x{0033}\x{0037}", # U+32B2 => 0033 0037 -"\xE3\x8A\xB3" => "\x{0033}\x{0038}", # U+32B3 => 0033 0038 -"\xE3\x8A\xB4" => "\x{0033}\x{0039}", # U+32B4 => 0033 0039 -"\xE3\x8A\xB5" => "\x{0034}\x{0030}", # U+32B5 => 0034 0030 -"\xE3\x8A\xB6" => "\x{0034}\x{0031}", # U+32B6 => 0034 0031 -"\xE3\x8A\xB7" => "\x{0034}\x{0032}", # U+32B7 => 0034 0032 -"\xE3\x8A\xB8" => "\x{0034}\x{0033}", # U+32B8 => 0034 0033 -"\xE3\x8A\xB9" => "\x{0034}\x{0034}", # U+32B9 => 0034 0034 -"\xE3\x8A\xBA" => "\x{0034}\x{0035}", # U+32BA => 0034 0035 -"\xE3\x8A\xBB" => "\x{0034}\x{0036}", # U+32BB => 0034 0036 -"\xE3\x8A\xBC" => "\x{0034}\x{0037}", # U+32BC => 0034 0037 -"\xE3\x8A\xBD" => "\x{0034}\x{0038}", # U+32BD => 0034 0038 -"\xE3\x8A\xBE" => "\x{0034}\x{0039}", # U+32BE => 0034 0039 -"\xE3\x8A\xBF" => "\x{0035}\x{0030}", # U+32BF => 0035 0030 -"\xE3\x8B\x80" => "\x{0031}\x{6708}", # U+32C0 => 0031 6708 -"\xE3\x8B\x81" => "\x{0032}\x{6708}", # U+32C1 => 0032 6708 -"\xE3\x8B\x82" => "\x{0033}\x{6708}", # U+32C2 => 0033 6708 -"\xE3\x8B\x83" => "\x{0034}\x{6708}", # U+32C3 => 0034 6708 -"\xE3\x8B\x84" => "\x{0035}\x{6708}", # U+32C4 => 0035 6708 -"\xE3\x8B\x85" => "\x{0036}\x{6708}", # U+32C5 => 0036 6708 -"\xE3\x8B\x86" => "\x{0037}\x{6708}", # U+32C6 => 0037 6708 -"\xE3\x8B\x87" => "\x{0038}\x{6708}", # U+32C7 => 0038 6708 -"\xE3\x8B\x88" => "\x{0039}\x{6708}", # U+32C8 => 0039 6708 -"\xE3\x8B\x89" => "\x{0031}\x{0030}\x{6708}", # U+32C9 => 0031 0030 6708 -"\xE3\x8B\x8A" => "\x{0031}\x{0031}\x{6708}", # U+32CA => 0031 0031 6708 -"\xE3\x8B\x8B" => "\x{0031}\x{0032}\x{6708}", # U+32CB => 0031 0032 6708 -"\xE3\x8B\x8C" => "\x{0068}\x{0067}", # U+32CC => 0068 0067 -"\xE3\x8B\x8D" => "\x{0065}\x{0072}\x{0067}", # U+32CD => 0065 0072 0067 -"\xE3\x8B\x8E" => "\x{0065}\x{0076}", # U+32CE => 0065 0076 -"\xE3\x8B\x8F" => "\x{006C}\x{0074}\x{0064}", # U+32CF => 006C 0074 0064 -"\xE3\x8C\x80" => "\x{30A2}\x{30D1}\x{30FC}\x{30C8}", # U+3300 => 30A2 30D1 30FC 30C8 -"\xE3\x8C\x81" => "\x{30A2}\x{30EB}\x{30D5}\x{30A1}", # U+3301 => 30A2 30EB 30D5 30A1 -"\xE3\x8C\x82" => "\x{30A2}\x{30F3}\x{30DA}\x{30A2}", # U+3302 => 30A2 30F3 30DA 30A2 -"\xE3\x8C\x83" => "\x{30A2}\x{30FC}\x{30EB}", # U+3303 => 30A2 30FC 30EB -"\xE3\x8C\x84" => "\x{30A4}\x{30CB}\x{30F3}\x{30B0}", # U+3304 => 30A4 30CB 30F3 30B0 -"\xE3\x8C\x85" => "\x{30A4}\x{30F3}\x{30C1}", # U+3305 => 30A4 30F3 30C1 -"\xE3\x8C\x86" => "\x{30A6}\x{30A9}\x{30F3}", # U+3306 => 30A6 30A9 30F3 -"\xE3\x8C\x87" => "\x{30A8}\x{30B9}\x{30AF}\x{30FC}\x{30C9}", # U+3307 => 30A8 30B9 30AF 30FC 30C9 -"\xE3\x8C\x88" => "\x{30A8}\x{30FC}\x{30AB}\x{30FC}", # U+3308 => 30A8 30FC 30AB 30FC -"\xE3\x8C\x89" => "\x{30AA}\x{30F3}\x{30B9}", # U+3309 => 30AA 30F3 30B9 -"\xE3\x8C\x8A" => "\x{30AA}\x{30FC}\x{30E0}", # U+330A => 30AA 30FC 30E0 -"\xE3\x8C\x8B" => "\x{30AB}\x{30A4}\x{30EA}", # U+330B => 30AB 30A4 30EA -"\xE3\x8C\x8C" => "\x{30AB}\x{30E9}\x{30C3}\x{30C8}", # U+330C => 30AB 30E9 30C3 30C8 -"\xE3\x8C\x8D" => "\x{30AB}\x{30ED}\x{30EA}\x{30FC}", # U+330D => 30AB 30ED 30EA 30FC -"\xE3\x8C\x8E" => "\x{30AC}\x{30ED}\x{30F3}", # U+330E => 30AC 30ED 30F3 -"\xE3\x8C\x8F" => "\x{30AC}\x{30F3}\x{30DE}", # U+330F => 30AC 30F3 30DE -"\xE3\x8C\x90" => "\x{30AE}\x{30AC}", # U+3310 => 30AE 30AC -"\xE3\x8C\x91" => "\x{30AE}\x{30CB}\x{30FC}", # U+3311 => 30AE 30CB 30FC -"\xE3\x8C\x92" => "\x{30AD}\x{30E5}\x{30EA}\x{30FC}", # U+3312 => 30AD 30E5 30EA 30FC -"\xE3\x8C\x93" => "\x{30AE}\x{30EB}\x{30C0}\x{30FC}", # U+3313 => 30AE 30EB 30C0 30FC -"\xE3\x8C\x94" => "\x{30AD}\x{30ED}", # U+3314 => 30AD 30ED -"\xE3\x8C\x95" => "\x{30AD}\x{30ED}\x{30B0}\x{30E9}\x{30E0}", # U+3315 => 30AD 30ED 30B0 30E9 30E0 -"\xE3\x8C\x96" => "\x{30AD}\x{30ED}\x{30E1}\x{30FC}\x{30C8}\x{30EB}", # U+3316 => 30AD 30ED 30E1 30FC 30C8 30EB -"\xE3\x8C\x97" => "\x{30AD}\x{30ED}\x{30EF}\x{30C3}\x{30C8}", # U+3317 => 30AD 30ED 30EF 30C3 30C8 -"\xE3\x8C\x98" => "\x{30B0}\x{30E9}\x{30E0}", # U+3318 => 30B0 30E9 30E0 -"\xE3\x8C\x99" => "\x{30B0}\x{30E9}\x{30E0}\x{30C8}\x{30F3}", # U+3319 => 30B0 30E9 30E0 30C8 30F3 -"\xE3\x8C\x9A" => "\x{30AF}\x{30EB}\x{30BC}\x{30A4}\x{30ED}", # U+331A => 30AF 30EB 30BC 30A4 30ED -"\xE3\x8C\x9B" => "\x{30AF}\x{30ED}\x{30FC}\x{30CD}", # U+331B => 30AF 30ED 30FC 30CD -"\xE3\x8C\x9C" => "\x{30B1}\x{30FC}\x{30B9}", # U+331C => 30B1 30FC 30B9 -"\xE3\x8C\x9D" => "\x{30B3}\x{30EB}\x{30CA}", # U+331D => 30B3 30EB 30CA -"\xE3\x8C\x9E" => "\x{30B3}\x{30FC}\x{30DD}", # U+331E => 30B3 30FC 30DD -"\xE3\x8C\x9F" => "\x{30B5}\x{30A4}\x{30AF}\x{30EB}", # U+331F => 30B5 30A4 30AF 30EB -"\xE3\x8C\xA0" => "\x{30B5}\x{30F3}\x{30C1}\x{30FC}\x{30E0}", # U+3320 => 30B5 30F3 30C1 30FC 30E0 -"\xE3\x8C\xA1" => "\x{30B7}\x{30EA}\x{30F3}\x{30B0}", # U+3321 => 30B7 30EA 30F3 30B0 -"\xE3\x8C\xA2" => "\x{30BB}\x{30F3}\x{30C1}", # U+3322 => 30BB 30F3 30C1 -"\xE3\x8C\xA3" => "\x{30BB}\x{30F3}\x{30C8}", # U+3323 => 30BB 30F3 30C8 -"\xE3\x8C\xA4" => "\x{30C0}\x{30FC}\x{30B9}", # U+3324 => 30C0 30FC 30B9 -"\xE3\x8C\xA5" => "\x{30C7}\x{30B7}", # U+3325 => 30C7 30B7 -"\xE3\x8C\xA6" => "\x{30C9}\x{30EB}", # U+3326 => 30C9 30EB -"\xE3\x8C\xA7" => "\x{30C8}\x{30F3}", # U+3327 => 30C8 30F3 -"\xE3\x8C\xA8" => "\x{30CA}\x{30CE}", # U+3328 => 30CA 30CE -"\xE3\x8C\xA9" => "\x{30CE}\x{30C3}\x{30C8}", # U+3329 => 30CE 30C3 30C8 -"\xE3\x8C\xAA" => "\x{30CF}\x{30A4}\x{30C4}", # U+332A => 30CF 30A4 30C4 -"\xE3\x8C\xAB" => "\x{30D1}\x{30FC}\x{30BB}\x{30F3}\x{30C8}", # U+332B => 30D1 30FC 30BB 30F3 30C8 -"\xE3\x8C\xAC" => "\x{30D1}\x{30FC}\x{30C4}", # U+332C => 30D1 30FC 30C4 -"\xE3\x8C\xAD" => "\x{30D0}\x{30FC}\x{30EC}\x{30EB}", # U+332D => 30D0 30FC 30EC 30EB -"\xE3\x8C\xAE" => "\x{30D4}\x{30A2}\x{30B9}\x{30C8}\x{30EB}", # U+332E => 30D4 30A2 30B9 30C8 30EB -"\xE3\x8C\xAF" => "\x{30D4}\x{30AF}\x{30EB}", # U+332F => 30D4 30AF 30EB -"\xE3\x8C\xB0" => "\x{30D4}\x{30B3}", # U+3330 => 30D4 30B3 -"\xE3\x8C\xB1" => "\x{30D3}\x{30EB}", # U+3331 => 30D3 30EB -"\xE3\x8C\xB2" => "\x{30D5}\x{30A1}\x{30E9}\x{30C3}\x{30C9}", # U+3332 => 30D5 30A1 30E9 30C3 30C9 -"\xE3\x8C\xB3" => "\x{30D5}\x{30A3}\x{30FC}\x{30C8}", # U+3333 => 30D5 30A3 30FC 30C8 -"\xE3\x8C\xB4" => "\x{30D6}\x{30C3}\x{30B7}\x{30A7}\x{30EB}", # U+3334 => 30D6 30C3 30B7 30A7 30EB -"\xE3\x8C\xB5" => "\x{30D5}\x{30E9}\x{30F3}", # U+3335 => 30D5 30E9 30F3 -"\xE3\x8C\xB6" => "\x{30D8}\x{30AF}\x{30BF}\x{30FC}\x{30EB}", # U+3336 => 30D8 30AF 30BF 30FC 30EB -"\xE3\x8C\xB7" => "\x{30DA}\x{30BD}", # U+3337 => 30DA 30BD -"\xE3\x8C\xB8" => "\x{30DA}\x{30CB}\x{30D2}", # U+3338 => 30DA 30CB 30D2 -"\xE3\x8C\xB9" => "\x{30D8}\x{30EB}\x{30C4}", # U+3339 => 30D8 30EB 30C4 -"\xE3\x8C\xBA" => "\x{30DA}\x{30F3}\x{30B9}", # U+333A => 30DA 30F3 30B9 -"\xE3\x8C\xBB" => "\x{30DA}\x{30FC}\x{30B8}", # U+333B => 30DA 30FC 30B8 -"\xE3\x8C\xBC" => "\x{30D9}\x{30FC}\x{30BF}", # U+333C => 30D9 30FC 30BF -"\xE3\x8C\xBD" => "\x{30DD}\x{30A4}\x{30F3}\x{30C8}", # U+333D => 30DD 30A4 30F3 30C8 -"\xE3\x8C\xBE" => "\x{30DC}\x{30EB}\x{30C8}", # U+333E => 30DC 30EB 30C8 -"\xE3\x8C\xBF" => "\x{30DB}\x{30F3}", # U+333F => 30DB 30F3 -"\xE3\x8D\x80" => "\x{30DD}\x{30F3}\x{30C9}", # U+3340 => 30DD 30F3 30C9 -"\xE3\x8D\x81" => "\x{30DB}\x{30FC}\x{30EB}", # U+3341 => 30DB 30FC 30EB -"\xE3\x8D\x82" => "\x{30DB}\x{30FC}\x{30F3}", # U+3342 => 30DB 30FC 30F3 -"\xE3\x8D\x83" => "\x{30DE}\x{30A4}\x{30AF}\x{30ED}", # U+3343 => 30DE 30A4 30AF 30ED -"\xE3\x8D\x84" => "\x{30DE}\x{30A4}\x{30EB}", # U+3344 => 30DE 30A4 30EB -"\xE3\x8D\x85" => "\x{30DE}\x{30C3}\x{30CF}", # U+3345 => 30DE 30C3 30CF -"\xE3\x8D\x86" => "\x{30DE}\x{30EB}\x{30AF}", # U+3346 => 30DE 30EB 30AF -"\xE3\x8D\x87" => "\x{30DE}\x{30F3}\x{30B7}\x{30E7}\x{30F3}", # U+3347 => 30DE 30F3 30B7 30E7 30F3 -"\xE3\x8D\x88" => "\x{30DF}\x{30AF}\x{30ED}\x{30F3}", # U+3348 => 30DF 30AF 30ED 30F3 -"\xE3\x8D\x89" => "\x{30DF}\x{30EA}", # U+3349 => 30DF 30EA -"\xE3\x8D\x8A" => "\x{30DF}\x{30EA}\x{30D0}\x{30FC}\x{30EB}", # U+334A => 30DF 30EA 30D0 30FC 30EB -"\xE3\x8D\x8B" => "\x{30E1}\x{30AC}", # U+334B => 30E1 30AC -"\xE3\x8D\x8C" => "\x{30E1}\x{30AC}\x{30C8}\x{30F3}", # U+334C => 30E1 30AC 30C8 30F3 -"\xE3\x8D\x8D" => "\x{30E1}\x{30FC}\x{30C8}\x{30EB}", # U+334D => 30E1 30FC 30C8 30EB -"\xE3\x8D\x8E" => "\x{30E4}\x{30FC}\x{30C9}", # U+334E => 30E4 30FC 30C9 -"\xE3\x8D\x8F" => "\x{30E4}\x{30FC}\x{30EB}", # U+334F => 30E4 30FC 30EB -"\xE3\x8D\x90" => "\x{30E6}\x{30A2}\x{30F3}", # U+3350 => 30E6 30A2 30F3 -"\xE3\x8D\x91" => "\x{30EA}\x{30C3}\x{30C8}\x{30EB}", # U+3351 => 30EA 30C3 30C8 30EB -"\xE3\x8D\x92" => "\x{30EA}\x{30E9}", # U+3352 => 30EA 30E9 -"\xE3\x8D\x93" => "\x{30EB}\x{30D4}\x{30FC}", # U+3353 => 30EB 30D4 30FC -"\xE3\x8D\x94" => "\x{30EB}\x{30FC}\x{30D6}\x{30EB}", # U+3354 => 30EB 30FC 30D6 30EB -"\xE3\x8D\x95" => "\x{30EC}\x{30E0}", # U+3355 => 30EC 30E0 -"\xE3\x8D\x96" => "\x{30EC}\x{30F3}\x{30C8}\x{30B2}\x{30F3}", # U+3356 => 30EC 30F3 30C8 30B2 30F3 -"\xE3\x8D\x97" => "\x{30EF}\x{30C3}\x{30C8}", # U+3357 => 30EF 30C3 30C8 -"\xE3\x8D\x98" => "\x{0030}\x{70B9}", # U+3358 => 0030 70B9 -"\xE3\x8D\x99" => "\x{0031}\x{70B9}", # U+3359 => 0031 70B9 -"\xE3\x8D\x9A" => "\x{0032}\x{70B9}", # U+335A => 0032 70B9 -"\xE3\x8D\x9B" => "\x{0033}\x{70B9}", # U+335B => 0033 70B9 -"\xE3\x8D\x9C" => "\x{0034}\x{70B9}", # U+335C => 0034 70B9 -"\xE3\x8D\x9D" => "\x{0035}\x{70B9}", # U+335D => 0035 70B9 -"\xE3\x8D\x9E" => "\x{0036}\x{70B9}", # U+335E => 0036 70B9 -"\xE3\x8D\x9F" => "\x{0037}\x{70B9}", # U+335F => 0037 70B9 -"\xE3\x8D\xA0" => "\x{0038}\x{70B9}", # U+3360 => 0038 70B9 -"\xE3\x8D\xA1" => "\x{0039}\x{70B9}", # U+3361 => 0039 70B9 -"\xE3\x8D\xA2" => "\x{0031}\x{0030}\x{70B9}", # U+3362 => 0031 0030 70B9 -"\xE3\x8D\xA3" => "\x{0031}\x{0031}\x{70B9}", # U+3363 => 0031 0031 70B9 -"\xE3\x8D\xA4" => "\x{0031}\x{0032}\x{70B9}", # U+3364 => 0031 0032 70B9 -"\xE3\x8D\xA5" => "\x{0031}\x{0033}\x{70B9}", # U+3365 => 0031 0033 70B9 -"\xE3\x8D\xA6" => "\x{0031}\x{0034}\x{70B9}", # U+3366 => 0031 0034 70B9 -"\xE3\x8D\xA7" => "\x{0031}\x{0035}\x{70B9}", # U+3367 => 0031 0035 70B9 -"\xE3\x8D\xA8" => "\x{0031}\x{0036}\x{70B9}", # U+3368 => 0031 0036 70B9 -"\xE3\x8D\xA9" => "\x{0031}\x{0037}\x{70B9}", # U+3369 => 0031 0037 70B9 -"\xE3\x8D\xAA" => "\x{0031}\x{0038}\x{70B9}", # U+336A => 0031 0038 70B9 -"\xE3\x8D\xAB" => "\x{0031}\x{0039}\x{70B9}", # U+336B => 0031 0039 70B9 -"\xE3\x8D\xAC" => "\x{0032}\x{0030}\x{70B9}", # U+336C => 0032 0030 70B9 -"\xE3\x8D\xAD" => "\x{0032}\x{0031}\x{70B9}", # U+336D => 0032 0031 70B9 -"\xE3\x8D\xAE" => "\x{0032}\x{0032}\x{70B9}", # U+336E => 0032 0032 70B9 -"\xE3\x8D\xAF" => "\x{0032}\x{0033}\x{70B9}", # U+336F => 0032 0033 70B9 -"\xE3\x8D\xB0" => "\x{0032}\x{0034}\x{70B9}", # U+3370 => 0032 0034 70B9 -"\xE3\x8D\xB1" => "\x{0068}\x{0070}\x{0061}", # U+3371 => 0068 0070 0061 -"\xE3\x8D\xB2" => "\x{0064}\x{0061}", # U+3372 => 0064 0061 -"\xE3\x8D\xB3" => "\x{0061}\x{0075}", # U+3373 => 0061 0075 -"\xE3\x8D\xB4" => "\x{0062}\x{0061}\x{0072}", # U+3374 => 0062 0061 0072 -"\xE3\x8D\xB5" => "\x{006F}\x{0076}", # U+3375 => 006F 0076 -"\xE3\x8D\xB6" => "\x{0070}\x{0063}", # U+3376 => 0070 0063 -"\xE3\x8D\xB7" => "\x{0064}\x{006D}", # U+3377 => 0064 006D -"\xE3\x8D\xB8" => "\x{0064}\x{006D}\x{0032}", # U+3378 => 0064 006D 0032 -"\xE3\x8D\xB9" => "\x{0064}\x{006D}\x{0033}", # U+3379 => 0064 006D 0033 -"\xE3\x8D\xBA" => "\x{0069}\x{0075}", # U+337A => 0069 0075 -"\xE3\x8D\xBB" => "\x{5E73}\x{6210}", # U+337B => 5E73 6210 -"\xE3\x8D\xBC" => "\x{662D}\x{548C}", # U+337C => 662D 548C -"\xE3\x8D\xBD" => "\x{5927}\x{6B63}", # U+337D => 5927 6B63 -"\xE3\x8D\xBE" => "\x{660E}\x{6CBB}", # U+337E => 660E 6CBB -"\xE3\x8D\xBF" => "\x{682A}\x{5F0F}\x{4F1A}\x{793E}", # U+337F => 682A 5F0F 4F1A 793E -"\xE3\x8E\x80" => "\x{0070}\x{0061}", # U+3380 => 0070 0061 -"\xE3\x8E\x81" => "\x{006E}\x{0061}", # U+3381 => 006E 0061 -"\xE3\x8E\x82" => "\x{03BC}\x{0061}", # U+3382 => 03BC 0061 -"\xE3\x8E\x83" => "\x{006D}\x{0061}", # U+3383 => 006D 0061 -"\xE3\x8E\x84" => "\x{006B}\x{0061}", # U+3384 => 006B 0061 -"\xE3\x8E\x85" => "\x{006B}\x{0062}", # U+3385 => 006B 0062 -"\xE3\x8E\x86" => "\x{006D}\x{0062}", # U+3386 => 006D 0062 -"\xE3\x8E\x87" => "\x{0067}\x{0062}", # U+3387 => 0067 0062 -"\xE3\x8E\x88" => "\x{0063}\x{0061}\x{006C}", # U+3388 => 0063 0061 006C -"\xE3\x8E\x89" => "\x{006B}\x{0063}\x{0061}\x{006C}", # U+3389 => 006B 0063 0061 006C -"\xE3\x8E\x8A" => "\x{0070}\x{0066}", # U+338A => 0070 0066 -"\xE3\x8E\x8B" => "\x{006E}\x{0066}", # U+338B => 006E 0066 -"\xE3\x8E\x8C" => "\x{03BC}\x{0066}", # U+338C => 03BC 0066 -"\xE3\x8E\x8D" => "\x{03BC}\x{0067}", # U+338D => 03BC 0067 -"\xE3\x8E\x8E" => "\x{006D}\x{0067}", # U+338E => 006D 0067 -"\xE3\x8E\x8F" => "\x{006B}\x{0067}", # U+338F => 006B 0067 -"\xE3\x8E\x90" => "\x{0068}\x{007A}", # U+3390 => 0068 007A -"\xE3\x8E\x91" => "\x{006B}\x{0068}\x{007A}", # U+3391 => 006B 0068 007A -"\xE3\x8E\x92" => "\x{006D}\x{0068}\x{007A}", # U+3392 => 006D 0068 007A -"\xE3\x8E\x93" => "\x{0067}\x{0068}\x{007A}", # U+3393 => 0067 0068 007A -"\xE3\x8E\x94" => "\x{0074}\x{0068}\x{007A}", # U+3394 => 0074 0068 007A -"\xE3\x8E\x95" => "\x{03BC}\x{006C}", # U+3395 => 03BC 006C -"\xE3\x8E\x96" => "\x{006D}\x{006C}", # U+3396 => 006D 006C -"\xE3\x8E\x97" => "\x{0064}\x{006C}", # U+3397 => 0064 006C -"\xE3\x8E\x98" => "\x{006B}\x{006C}", # U+3398 => 006B 006C -"\xE3\x8E\x99" => "\x{0066}\x{006D}", # U+3399 => 0066 006D -"\xE3\x8E\x9A" => "\x{006E}\x{006D}", # U+339A => 006E 006D -"\xE3\x8E\x9B" => "\x{03BC}\x{006D}", # U+339B => 03BC 006D -"\xE3\x8E\x9C" => "\x{006D}\x{006D}", # U+339C => 006D 006D -"\xE3\x8E\x9D" => "\x{0063}\x{006D}", # U+339D => 0063 006D -"\xE3\x8E\x9E" => "\x{006B}\x{006D}", # U+339E => 006B 006D -"\xE3\x8E\x9F" => "\x{006D}\x{006D}\x{0032}", # U+339F => 006D 006D 0032 -"\xE3\x8E\xA0" => "\x{0063}\x{006D}\x{0032}", # U+33A0 => 0063 006D 0032 -"\xE3\x8E\xA1" => "\x{006D}\x{0032}", # U+33A1 => 006D 0032 -"\xE3\x8E\xA2" => "\x{006B}\x{006D}\x{0032}", # U+33A2 => 006B 006D 0032 -"\xE3\x8E\xA3" => "\x{006D}\x{006D}\x{0033}", # U+33A3 => 006D 006D 0033 -"\xE3\x8E\xA4" => "\x{0063}\x{006D}\x{0033}", # U+33A4 => 0063 006D 0033 -"\xE3\x8E\xA5" => "\x{006D}\x{0033}", # U+33A5 => 006D 0033 -"\xE3\x8E\xA6" => "\x{006B}\x{006D}\x{0033}", # U+33A6 => 006B 006D 0033 -"\xE3\x8E\xA7" => "\x{006D}\x{2215}\x{0073}", # U+33A7 => 006D 2215 0073 -"\xE3\x8E\xA8" => "\x{006D}\x{2215}\x{0073}\x{0032}", # U+33A8 => 006D 2215 0073 0032 -"\xE3\x8E\xA9" => "\x{0070}\x{0061}", # U+33A9 => 0070 0061 -"\xE3\x8E\xAA" => "\x{006B}\x{0070}\x{0061}", # U+33AA => 006B 0070 0061 -"\xE3\x8E\xAB" => "\x{006D}\x{0070}\x{0061}", # U+33AB => 006D 0070 0061 -"\xE3\x8E\xAC" => "\x{0067}\x{0070}\x{0061}", # U+33AC => 0067 0070 0061 -"\xE3\x8E\xAD" => "\x{0072}\x{0061}\x{0064}", # U+33AD => 0072 0061 0064 -"\xE3\x8E\xAE" => "\x{0072}\x{0061}\x{0064}\x{2215}\x{0073}", # U+33AE => 0072 0061 0064 2215 0073 -"\xE3\x8E\xAF" => "\x{0072}\x{0061}\x{0064}\x{2215}\x{0073}\x{0032}", # U+33AF => 0072 0061 0064 2215 0073 0032 -"\xE3\x8E\xB0" => "\x{0070}\x{0073}", # U+33B0 => 0070 0073 -"\xE3\x8E\xB1" => "\x{006E}\x{0073}", # U+33B1 => 006E 0073 -"\xE3\x8E\xB2" => "\x{03BC}\x{0073}", # U+33B2 => 03BC 0073 -"\xE3\x8E\xB3" => "\x{006D}\x{0073}", # U+33B3 => 006D 0073 -"\xE3\x8E\xB4" => "\x{0070}\x{0076}", # U+33B4 => 0070 0076 -"\xE3\x8E\xB5" => "\x{006E}\x{0076}", # U+33B5 => 006E 0076 -"\xE3\x8E\xB6" => "\x{03BC}\x{0076}", # U+33B6 => 03BC 0076 -"\xE3\x8E\xB7" => "\x{006D}\x{0076}", # U+33B7 => 006D 0076 -"\xE3\x8E\xB8" => "\x{006B}\x{0076}", # U+33B8 => 006B 0076 -"\xE3\x8E\xB9" => "\x{006D}\x{0076}", # U+33B9 => 006D 0076 -"\xE3\x8E\xBA" => "\x{0070}\x{0077}", # U+33BA => 0070 0077 -"\xE3\x8E\xBB" => "\x{006E}\x{0077}", # U+33BB => 006E 0077 -"\xE3\x8E\xBC" => "\x{03BC}\x{0077}", # U+33BC => 03BC 0077 -"\xE3\x8E\xBD" => "\x{006D}\x{0077}", # U+33BD => 006D 0077 -"\xE3\x8E\xBE" => "\x{006B}\x{0077}", # U+33BE => 006B 0077 -"\xE3\x8E\xBF" => "\x{006D}\x{0077}", # U+33BF => 006D 0077 -"\xE3\x8F\x80" => "\x{006B}\x{03C9}", # U+33C0 => 006B 03C9 -"\xE3\x8F\x81" => "\x{006D}\x{03C9}", # U+33C1 => 006D 03C9 -"\xE3\x8F\x82" => "\x{0061}\x{002E}\x{006D}\x{002E}", # U+33C2 => 0061 002E 006D 002E -"\xE3\x8F\x83" => "\x{0062}\x{0071}", # U+33C3 => 0062 0071 -"\xE3\x8F\x84" => "\x{0063}\x{0063}", # U+33C4 => 0063 0063 -"\xE3\x8F\x85" => "\x{0063}\x{0064}", # U+33C5 => 0063 0064 -"\xE3\x8F\x86" => "\x{0063}\x{2215}\x{006B}\x{0067}", # U+33C6 => 0063 2215 006B 0067 -"\xE3\x8F\x87" => "\x{0063}\x{006F}\x{002E}", # U+33C7 => 0063 006F 002E -"\xE3\x8F\x88" => "\x{0064}\x{0062}", # U+33C8 => 0064 0062 -"\xE3\x8F\x89" => "\x{0067}\x{0079}", # U+33C9 => 0067 0079 -"\xE3\x8F\x8A" => "\x{0068}\x{0061}", # U+33CA => 0068 0061 -"\xE3\x8F\x8B" => "\x{0068}\x{0070}", # U+33CB => 0068 0070 -"\xE3\x8F\x8C" => "\x{0069}\x{006E}", # U+33CC => 0069 006E -"\xE3\x8F\x8D" => "\x{006B}\x{006B}", # U+33CD => 006B 006B -"\xE3\x8F\x8E" => "\x{006B}\x{006D}", # U+33CE => 006B 006D -"\xE3\x8F\x8F" => "\x{006B}\x{0074}", # U+33CF => 006B 0074 -"\xE3\x8F\x90" => "\x{006C}\x{006D}", # U+33D0 => 006C 006D -"\xE3\x8F\x91" => "\x{006C}\x{006E}", # U+33D1 => 006C 006E -"\xE3\x8F\x92" => "\x{006C}\x{006F}\x{0067}", # U+33D2 => 006C 006F 0067 -"\xE3\x8F\x93" => "\x{006C}\x{0078}", # U+33D3 => 006C 0078 -"\xE3\x8F\x94" => "\x{006D}\x{0062}", # U+33D4 => 006D 0062 -"\xE3\x8F\x95" => "\x{006D}\x{0069}\x{006C}", # U+33D5 => 006D 0069 006C -"\xE3\x8F\x96" => "\x{006D}\x{006F}\x{006C}", # U+33D6 => 006D 006F 006C -"\xE3\x8F\x97" => "\x{0070}\x{0068}", # U+33D7 => 0070 0068 -"\xE3\x8F\x98" => "\x{0070}\x{002E}\x{006D}\x{002E}", # U+33D8 => 0070 002E 006D 002E -"\xE3\x8F\x99" => "\x{0070}\x{0070}\x{006D}", # U+33D9 => 0070 0070 006D -"\xE3\x8F\x9A" => "\x{0070}\x{0072}", # U+33DA => 0070 0072 -"\xE3\x8F\x9B" => "\x{0073}\x{0072}", # U+33DB => 0073 0072 -"\xE3\x8F\x9C" => "\x{0073}\x{0076}", # U+33DC => 0073 0076 -"\xE3\x8F\x9D" => "\x{0077}\x{0062}", # U+33DD => 0077 0062 -"\xE3\x8F\x9E" => "\x{0076}\x{2215}\x{006D}", # U+33DE => 0076 2215 006D -"\xE3\x8F\x9F" => "\x{0061}\x{2215}\x{006D}", # U+33DF => 0061 2215 006D -"\xE3\x8F\xA0" => "\x{0031}\x{65E5}", # U+33E0 => 0031 65E5 -"\xE3\x8F\xA1" => "\x{0032}\x{65E5}", # U+33E1 => 0032 65E5 -"\xE3\x8F\xA2" => "\x{0033}\x{65E5}", # U+33E2 => 0033 65E5 -"\xE3\x8F\xA3" => "\x{0034}\x{65E5}", # U+33E3 => 0034 65E5 -"\xE3\x8F\xA4" => "\x{0035}\x{65E5}", # U+33E4 => 0035 65E5 -"\xE3\x8F\xA5" => "\x{0036}\x{65E5}", # U+33E5 => 0036 65E5 -"\xE3\x8F\xA6" => "\x{0037}\x{65E5}", # U+33E6 => 0037 65E5 -"\xE3\x8F\xA7" => "\x{0038}\x{65E5}", # U+33E7 => 0038 65E5 -"\xE3\x8F\xA8" => "\x{0039}\x{65E5}", # U+33E8 => 0039 65E5 -"\xE3\x8F\xA9" => "\x{0031}\x{0030}\x{65E5}", # U+33E9 => 0031 0030 65E5 -"\xE3\x8F\xAA" => "\x{0031}\x{0031}\x{65E5}", # U+33EA => 0031 0031 65E5 -"\xE3\x8F\xAB" => "\x{0031}\x{0032}\x{65E5}", # U+33EB => 0031 0032 65E5 -"\xE3\x8F\xAC" => "\x{0031}\x{0033}\x{65E5}", # U+33EC => 0031 0033 65E5 -"\xE3\x8F\xAD" => "\x{0031}\x{0034}\x{65E5}", # U+33ED => 0031 0034 65E5 -"\xE3\x8F\xAE" => "\x{0031}\x{0035}\x{65E5}", # U+33EE => 0031 0035 65E5 -"\xE3\x8F\xAF" => "\x{0031}\x{0036}\x{65E5}", # U+33EF => 0031 0036 65E5 -"\xE3\x8F\xB0" => "\x{0031}\x{0037}\x{65E5}", # U+33F0 => 0031 0037 65E5 -"\xE3\x8F\xB1" => "\x{0031}\x{0038}\x{65E5}", # U+33F1 => 0031 0038 65E5 -"\xE3\x8F\xB2" => "\x{0031}\x{0039}\x{65E5}", # U+33F2 => 0031 0039 65E5 -"\xE3\x8F\xB3" => "\x{0032}\x{0030}\x{65E5}", # U+33F3 => 0032 0030 65E5 -"\xE3\x8F\xB4" => "\x{0032}\x{0031}\x{65E5}", # U+33F4 => 0032 0031 65E5 -"\xE3\x8F\xB5" => "\x{0032}\x{0032}\x{65E5}", # U+33F5 => 0032 0032 65E5 -"\xE3\x8F\xB6" => "\x{0032}\x{0033}\x{65E5}", # U+33F6 => 0032 0033 65E5 -"\xE3\x8F\xB7" => "\x{0032}\x{0034}\x{65E5}", # U+33F7 => 0032 0034 65E5 -"\xE3\x8F\xB8" => "\x{0032}\x{0035}\x{65E5}", # U+33F8 => 0032 0035 65E5 -"\xE3\x8F\xB9" => "\x{0032}\x{0036}\x{65E5}", # U+33F9 => 0032 0036 65E5 -"\xE3\x8F\xBA" => "\x{0032}\x{0037}\x{65E5}", # U+33FA => 0032 0037 65E5 -"\xE3\x8F\xBB" => "\x{0032}\x{0038}\x{65E5}", # U+33FB => 0032 0038 65E5 -"\xE3\x8F\xBC" => "\x{0032}\x{0039}\x{65E5}", # U+33FC => 0032 0039 65E5 -"\xE3\x8F\xBD" => "\x{0033}\x{0030}\x{65E5}", # U+33FD => 0033 0030 65E5 -"\xE3\x8F\xBE" => "\x{0033}\x{0031}\x{65E5}", # U+33FE => 0033 0031 65E5 -"\xE3\x8F\xBF" => "\x{0067}\x{0061}\x{006C}", # U+33FF => 0067 0061 006C -"\xEF\xAC\x80" => "\x{0066}\x{0066}", # U+FB00 => 0066 0066 -"\xEF\xAC\x81" => "\x{0066}\x{0069}", # U+FB01 => 0066 0069 -"\xEF\xAC\x82" => "\x{0066}\x{006C}", # U+FB02 => 0066 006C -"\xEF\xAC\x83" => "\x{0066}\x{0066}\x{0069}", # U+FB03 => 0066 0066 0069 -"\xEF\xAC\x84" => "\x{0066}\x{0066}\x{006C}", # U+FB04 => 0066 0066 006C -"\xEF\xAC\x85" => "\x{0073}\x{0074}", # U+FB05 => 0073 0074 -"\xEF\xAC\x86" => "\x{0073}\x{0074}", # U+FB06 => 0073 0074 -"\xEF\xAC\x93" => "\x{0574}\x{0576}", # U+FB13 => 0574 0576 -"\xEF\xAC\x94" => "\x{0574}\x{0565}", # U+FB14 => 0574 0565 -"\xEF\xAC\x95" => "\x{0574}\x{056B}", # U+FB15 => 0574 056B -"\xEF\xAC\x96" => "\x{057E}\x{0576}", # U+FB16 => 057E 0576 -"\xEF\xAC\x97" => "\x{0574}\x{056D}", # U+FB17 => 0574 056D -"\xEF\xAC\x9D" => "\x{05D9}\x{05B4}", # U+FB1D => 05D9 05B4 -"\xEF\xAC\x9F" => "\x{05F2}\x{05B7}", # U+FB1F => 05F2 05B7 -"\xEF\xAC\xAA" => "\x{05E9}\x{05C1}", # U+FB2A => 05E9 05C1 -"\xEF\xAC\xAB" => "\x{05E9}\x{05C2}", # U+FB2B => 05E9 05C2 -"\xEF\xAC\xAC" => "\x{05E9}\x{05BC}\x{05C1}", # U+FB2C => 05E9 05BC 05C1 -"\xEF\xAC\xAD" => "\x{05E9}\x{05BC}\x{05C2}", # U+FB2D => 05E9 05BC 05C2 -"\xEF\xAC\xAE" => "\x{05D0}\x{05B7}", # U+FB2E => 05D0 05B7 -"\xEF\xAC\xAF" => "\x{05D0}\x{05B8}", # U+FB2F => 05D0 05B8 -"\xEF\xAC\xB0" => "\x{05D0}\x{05BC}", # U+FB30 => 05D0 05BC -"\xEF\xAC\xB1" => "\x{05D1}\x{05BC}", # U+FB31 => 05D1 05BC -"\xEF\xAC\xB2" => "\x{05D2}\x{05BC}", # U+FB32 => 05D2 05BC -"\xEF\xAC\xB3" => "\x{05D3}\x{05BC}", # U+FB33 => 05D3 05BC -"\xEF\xAC\xB4" => "\x{05D4}\x{05BC}", # U+FB34 => 05D4 05BC -"\xEF\xAC\xB5" => "\x{05D5}\x{05BC}", # U+FB35 => 05D5 05BC -"\xEF\xAC\xB6" => "\x{05D6}\x{05BC}", # U+FB36 => 05D6 05BC -"\xEF\xAC\xB8" => "\x{05D8}\x{05BC}", # U+FB38 => 05D8 05BC -"\xEF\xAC\xB9" => "\x{05D9}\x{05BC}", # U+FB39 => 05D9 05BC -"\xEF\xAC\xBA" => "\x{05DA}\x{05BC}", # U+FB3A => 05DA 05BC -"\xEF\xAC\xBB" => "\x{05DB}\x{05BC}", # U+FB3B => 05DB 05BC -"\xEF\xAC\xBC" => "\x{05DC}\x{05BC}", # U+FB3C => 05DC 05BC -"\xEF\xAC\xBE" => "\x{05DE}\x{05BC}", # U+FB3E => 05DE 05BC -"\xEF\xAD\x80" => "\x{05E0}\x{05BC}", # U+FB40 => 05E0 05BC -"\xEF\xAD\x81" => "\x{05E1}\x{05BC}", # U+FB41 => 05E1 05BC -"\xEF\xAD\x83" => "\x{05E3}\x{05BC}", # U+FB43 => 05E3 05BC -"\xEF\xAD\x84" => "\x{05E4}\x{05BC}", # U+FB44 => 05E4 05BC -"\xEF\xAD\x86" => "\x{05E6}\x{05BC}", # U+FB46 => 05E6 05BC -"\xEF\xAD\x87" => "\x{05E7}\x{05BC}", # U+FB47 => 05E7 05BC -"\xEF\xAD\x88" => "\x{05E8}\x{05BC}", # U+FB48 => 05E8 05BC -"\xEF\xAD\x89" => "\x{05E9}\x{05BC}", # U+FB49 => 05E9 05BC -"\xEF\xAD\x8A" => "\x{05EA}\x{05BC}", # U+FB4A => 05EA 05BC -"\xEF\xAD\x8B" => "\x{05D5}\x{05B9}", # U+FB4B => 05D5 05B9 -"\xEF\xAD\x8C" => "\x{05D1}\x{05BF}", # U+FB4C => 05D1 05BF -"\xEF\xAD\x8D" => "\x{05DB}\x{05BF}", # U+FB4D => 05DB 05BF -"\xEF\xAD\x8E" => "\x{05E4}\x{05BF}", # U+FB4E => 05E4 05BF -"\xEF\xAD\x8F" => "\x{05D0}\x{05DC}", # U+FB4F => 05D0 05DC -"\xEF\xAF\x9D" => "\x{06C7}\x{0674}", # U+FBDD => 06C7 0674 -"\xEF\xAF\xAA" => "\x{0626}\x{0627}", # U+FBEA => 0626 0627 -"\xEF\xAF\xAB" => "\x{0626}\x{0627}", # U+FBEB => 0626 0627 -"\xEF\xAF\xAC" => "\x{0626}\x{06D5}", # U+FBEC => 0626 06D5 -"\xEF\xAF\xAD" => "\x{0626}\x{06D5}", # U+FBED => 0626 06D5 -"\xEF\xAF\xAE" => "\x{0626}\x{0648}", # U+FBEE => 0626 0648 -"\xEF\xAF\xAF" => "\x{0626}\x{0648}", # U+FBEF => 0626 0648 -"\xEF\xAF\xB0" => "\x{0626}\x{06C7}", # U+FBF0 => 0626 06C7 -"\xEF\xAF\xB1" => "\x{0626}\x{06C7}", # U+FBF1 => 0626 06C7 -"\xEF\xAF\xB2" => "\x{0626}\x{06C6}", # U+FBF2 => 0626 06C6 -"\xEF\xAF\xB3" => "\x{0626}\x{06C6}", # U+FBF3 => 0626 06C6 -"\xEF\xAF\xB4" => "\x{0626}\x{06C8}", # U+FBF4 => 0626 06C8 -"\xEF\xAF\xB5" => "\x{0626}\x{06C8}", # U+FBF5 => 0626 06C8 -"\xEF\xAF\xB6" => "\x{0626}\x{06D0}", # U+FBF6 => 0626 06D0 -"\xEF\xAF\xB7" => "\x{0626}\x{06D0}", # U+FBF7 => 0626 06D0 -"\xEF\xAF\xB8" => "\x{0626}\x{06D0}", # U+FBF8 => 0626 06D0 -"\xEF\xAF\xB9" => "\x{0626}\x{0649}", # U+FBF9 => 0626 0649 -"\xEF\xAF\xBA" => "\x{0626}\x{0649}", # U+FBFA => 0626 0649 -"\xEF\xAF\xBB" => "\x{0626}\x{0649}", # U+FBFB => 0626 0649 -"\xEF\xB0\x80" => "\x{0626}\x{062C}", # U+FC00 => 0626 062C -"\xEF\xB0\x81" => "\x{0626}\x{062D}", # U+FC01 => 0626 062D -"\xEF\xB0\x82" => "\x{0626}\x{0645}", # U+FC02 => 0626 0645 -"\xEF\xB0\x83" => "\x{0626}\x{0649}", # U+FC03 => 0626 0649 -"\xEF\xB0\x84" => "\x{0626}\x{064A}", # U+FC04 => 0626 064A -"\xEF\xB0\x85" => "\x{0628}\x{062C}", # U+FC05 => 0628 062C -"\xEF\xB0\x86" => "\x{0628}\x{062D}", # U+FC06 => 0628 062D -"\xEF\xB0\x87" => "\x{0628}\x{062E}", # U+FC07 => 0628 062E -"\xEF\xB0\x88" => "\x{0628}\x{0645}", # U+FC08 => 0628 0645 -"\xEF\xB0\x89" => "\x{0628}\x{0649}", # U+FC09 => 0628 0649 -"\xEF\xB0\x8A" => "\x{0628}\x{064A}", # U+FC0A => 0628 064A -"\xEF\xB0\x8B" => "\x{062A}\x{062C}", # U+FC0B => 062A 062C -"\xEF\xB0\x8C" => "\x{062A}\x{062D}", # U+FC0C => 062A 062D -"\xEF\xB0\x8D" => "\x{062A}\x{062E}", # U+FC0D => 062A 062E -"\xEF\xB0\x8E" => "\x{062A}\x{0645}", # U+FC0E => 062A 0645 -"\xEF\xB0\x8F" => "\x{062A}\x{0649}", # U+FC0F => 062A 0649 -"\xEF\xB0\x90" => "\x{062A}\x{064A}", # U+FC10 => 062A 064A -"\xEF\xB0\x91" => "\x{062B}\x{062C}", # U+FC11 => 062B 062C -"\xEF\xB0\x92" => "\x{062B}\x{0645}", # U+FC12 => 062B 0645 -"\xEF\xB0\x93" => "\x{062B}\x{0649}", # U+FC13 => 062B 0649 -"\xEF\xB0\x94" => "\x{062B}\x{064A}", # U+FC14 => 062B 064A -"\xEF\xB0\x95" => "\x{062C}\x{062D}", # U+FC15 => 062C 062D -"\xEF\xB0\x96" => "\x{062C}\x{0645}", # U+FC16 => 062C 0645 -"\xEF\xB0\x97" => "\x{062D}\x{062C}", # U+FC17 => 062D 062C -"\xEF\xB0\x98" => "\x{062D}\x{0645}", # U+FC18 => 062D 0645 -"\xEF\xB0\x99" => "\x{062E}\x{062C}", # U+FC19 => 062E 062C -"\xEF\xB0\x9A" => "\x{062E}\x{062D}", # U+FC1A => 062E 062D -"\xEF\xB0\x9B" => "\x{062E}\x{0645}", # U+FC1B => 062E 0645 -"\xEF\xB0\x9C" => "\x{0633}\x{062C}", # U+FC1C => 0633 062C -"\xEF\xB0\x9D" => "\x{0633}\x{062D}", # U+FC1D => 0633 062D -"\xEF\xB0\x9E" => "\x{0633}\x{062E}", # U+FC1E => 0633 062E -"\xEF\xB0\x9F" => "\x{0633}\x{0645}", # U+FC1F => 0633 0645 -"\xEF\xB0\xA0" => "\x{0635}\x{062D}", # U+FC20 => 0635 062D -"\xEF\xB0\xA1" => "\x{0635}\x{0645}", # U+FC21 => 0635 0645 -"\xEF\xB0\xA2" => "\x{0636}\x{062C}", # U+FC22 => 0636 062C -"\xEF\xB0\xA3" => "\x{0636}\x{062D}", # U+FC23 => 0636 062D -"\xEF\xB0\xA4" => "\x{0636}\x{062E}", # U+FC24 => 0636 062E -"\xEF\xB0\xA5" => "\x{0636}\x{0645}", # U+FC25 => 0636 0645 -"\xEF\xB0\xA6" => "\x{0637}\x{062D}", # U+FC26 => 0637 062D -"\xEF\xB0\xA7" => "\x{0637}\x{0645}", # U+FC27 => 0637 0645 -"\xEF\xB0\xA8" => "\x{0638}\x{0645}", # U+FC28 => 0638 0645 -"\xEF\xB0\xA9" => "\x{0639}\x{062C}", # U+FC29 => 0639 062C -"\xEF\xB0\xAA" => "\x{0639}\x{0645}", # U+FC2A => 0639 0645 -"\xEF\xB0\xAB" => "\x{063A}\x{062C}", # U+FC2B => 063A 062C -"\xEF\xB0\xAC" => "\x{063A}\x{0645}", # U+FC2C => 063A 0645 -"\xEF\xB0\xAD" => "\x{0641}\x{062C}", # U+FC2D => 0641 062C -"\xEF\xB0\xAE" => "\x{0641}\x{062D}", # U+FC2E => 0641 062D -"\xEF\xB0\xAF" => "\x{0641}\x{062E}", # U+FC2F => 0641 062E -"\xEF\xB0\xB0" => "\x{0641}\x{0645}", # U+FC30 => 0641 0645 -"\xEF\xB0\xB1" => "\x{0641}\x{0649}", # U+FC31 => 0641 0649 -"\xEF\xB0\xB2" => "\x{0641}\x{064A}", # U+FC32 => 0641 064A -"\xEF\xB0\xB3" => "\x{0642}\x{062D}", # U+FC33 => 0642 062D -"\xEF\xB0\xB4" => "\x{0642}\x{0645}", # U+FC34 => 0642 0645 -"\xEF\xB0\xB5" => "\x{0642}\x{0649}", # U+FC35 => 0642 0649 -"\xEF\xB0\xB6" => "\x{0642}\x{064A}", # U+FC36 => 0642 064A -"\xEF\xB0\xB7" => "\x{0643}\x{0627}", # U+FC37 => 0643 0627 -"\xEF\xB0\xB8" => "\x{0643}\x{062C}", # U+FC38 => 0643 062C -"\xEF\xB0\xB9" => "\x{0643}\x{062D}", # U+FC39 => 0643 062D -"\xEF\xB0\xBA" => "\x{0643}\x{062E}", # U+FC3A => 0643 062E -"\xEF\xB0\xBB" => "\x{0643}\x{0644}", # U+FC3B => 0643 0644 -"\xEF\xB0\xBC" => "\x{0643}\x{0645}", # U+FC3C => 0643 0645 -"\xEF\xB0\xBD" => "\x{0643}\x{0649}", # U+FC3D => 0643 0649 -"\xEF\xB0\xBE" => "\x{0643}\x{064A}", # U+FC3E => 0643 064A -"\xEF\xB0\xBF" => "\x{0644}\x{062C}", # U+FC3F => 0644 062C -"\xEF\xB1\x80" => "\x{0644}\x{062D}", # U+FC40 => 0644 062D -"\xEF\xB1\x81" => "\x{0644}\x{062E}", # U+FC41 => 0644 062E -"\xEF\xB1\x82" => "\x{0644}\x{0645}", # U+FC42 => 0644 0645 -"\xEF\xB1\x83" => "\x{0644}\x{0649}", # U+FC43 => 0644 0649 -"\xEF\xB1\x84" => "\x{0644}\x{064A}", # U+FC44 => 0644 064A -"\xEF\xB1\x85" => "\x{0645}\x{062C}", # U+FC45 => 0645 062C -"\xEF\xB1\x86" => "\x{0645}\x{062D}", # U+FC46 => 0645 062D -"\xEF\xB1\x87" => "\x{0645}\x{062E}", # U+FC47 => 0645 062E -"\xEF\xB1\x88" => "\x{0645}\x{0645}", # U+FC48 => 0645 0645 -"\xEF\xB1\x89" => "\x{0645}\x{0649}", # U+FC49 => 0645 0649 -"\xEF\xB1\x8A" => "\x{0645}\x{064A}", # U+FC4A => 0645 064A -"\xEF\xB1\x8B" => "\x{0646}\x{062C}", # U+FC4B => 0646 062C -"\xEF\xB1\x8C" => "\x{0646}\x{062D}", # U+FC4C => 0646 062D -"\xEF\xB1\x8D" => "\x{0646}\x{062E}", # U+FC4D => 0646 062E -"\xEF\xB1\x8E" => "\x{0646}\x{0645}", # U+FC4E => 0646 0645 -"\xEF\xB1\x8F" => "\x{0646}\x{0649}", # U+FC4F => 0646 0649 -"\xEF\xB1\x90" => "\x{0646}\x{064A}", # U+FC50 => 0646 064A -"\xEF\xB1\x91" => "\x{0647}\x{062C}", # U+FC51 => 0647 062C -"\xEF\xB1\x92" => "\x{0647}\x{0645}", # U+FC52 => 0647 0645 -"\xEF\xB1\x93" => "\x{0647}\x{0649}", # U+FC53 => 0647 0649 -"\xEF\xB1\x94" => "\x{0647}\x{064A}", # U+FC54 => 0647 064A -"\xEF\xB1\x95" => "\x{064A}\x{062C}", # U+FC55 => 064A 062C -"\xEF\xB1\x96" => "\x{064A}\x{062D}", # U+FC56 => 064A 062D -"\xEF\xB1\x97" => "\x{064A}\x{062E}", # U+FC57 => 064A 062E -"\xEF\xB1\x98" => "\x{064A}\x{0645}", # U+FC58 => 064A 0645 -"\xEF\xB1\x99" => "\x{064A}\x{0649}", # U+FC59 => 064A 0649 -"\xEF\xB1\x9A" => "\x{064A}\x{064A}", # U+FC5A => 064A 064A -"\xEF\xB1\x9B" => "\x{0630}\x{0670}", # U+FC5B => 0630 0670 -"\xEF\xB1\x9C" => "\x{0631}\x{0670}", # U+FC5C => 0631 0670 -"\xEF\xB1\x9D" => "\x{0649}\x{0670}", # U+FC5D => 0649 0670 -"\xEF\xB1\x9E" => "\x{0020}\x{064C}\x{0651}", # U+FC5E => 0020 064C 0651 -"\xEF\xB1\x9F" => "\x{0020}\x{064D}\x{0651}", # U+FC5F => 0020 064D 0651 -"\xEF\xB1\xA0" => "\x{0020}\x{064E}\x{0651}", # U+FC60 => 0020 064E 0651 -"\xEF\xB1\xA1" => "\x{0020}\x{064F}\x{0651}", # U+FC61 => 0020 064F 0651 -"\xEF\xB1\xA2" => "\x{0020}\x{0650}\x{0651}", # U+FC62 => 0020 0650 0651 -"\xEF\xB1\xA3" => "\x{0020}\x{0651}\x{0670}", # U+FC63 => 0020 0651 0670 -"\xEF\xB1\xA4" => "\x{0626}\x{0631}", # U+FC64 => 0626 0631 -"\xEF\xB1\xA5" => "\x{0626}\x{0632}", # U+FC65 => 0626 0632 -"\xEF\xB1\xA6" => "\x{0626}\x{0645}", # U+FC66 => 0626 0645 -"\xEF\xB1\xA7" => "\x{0626}\x{0646}", # U+FC67 => 0626 0646 -"\xEF\xB1\xA8" => "\x{0626}\x{0649}", # U+FC68 => 0626 0649 -"\xEF\xB1\xA9" => "\x{0626}\x{064A}", # U+FC69 => 0626 064A -"\xEF\xB1\xAA" => "\x{0628}\x{0631}", # U+FC6A => 0628 0631 -"\xEF\xB1\xAB" => "\x{0628}\x{0632}", # U+FC6B => 0628 0632 -"\xEF\xB1\xAC" => "\x{0628}\x{0645}", # U+FC6C => 0628 0645 -"\xEF\xB1\xAD" => "\x{0628}\x{0646}", # U+FC6D => 0628 0646 -"\xEF\xB1\xAE" => "\x{0628}\x{0649}", # U+FC6E => 0628 0649 -"\xEF\xB1\xAF" => "\x{0628}\x{064A}", # U+FC6F => 0628 064A -"\xEF\xB1\xB0" => "\x{062A}\x{0631}", # U+FC70 => 062A 0631 -"\xEF\xB1\xB1" => "\x{062A}\x{0632}", # U+FC71 => 062A 0632 -"\xEF\xB1\xB2" => "\x{062A}\x{0645}", # U+FC72 => 062A 0645 -"\xEF\xB1\xB3" => "\x{062A}\x{0646}", # U+FC73 => 062A 0646 -"\xEF\xB1\xB4" => "\x{062A}\x{0649}", # U+FC74 => 062A 0649 -"\xEF\xB1\xB5" => "\x{062A}\x{064A}", # U+FC75 => 062A 064A -"\xEF\xB1\xB6" => "\x{062B}\x{0631}", # U+FC76 => 062B 0631 -"\xEF\xB1\xB7" => "\x{062B}\x{0632}", # U+FC77 => 062B 0632 -"\xEF\xB1\xB8" => "\x{062B}\x{0645}", # U+FC78 => 062B 0645 -"\xEF\xB1\xB9" => "\x{062B}\x{0646}", # U+FC79 => 062B 0646 -"\xEF\xB1\xBA" => "\x{062B}\x{0649}", # U+FC7A => 062B 0649 -"\xEF\xB1\xBB" => "\x{062B}\x{064A}", # U+FC7B => 062B 064A -"\xEF\xB1\xBC" => "\x{0641}\x{0649}", # U+FC7C => 0641 0649 -"\xEF\xB1\xBD" => "\x{0641}\x{064A}", # U+FC7D => 0641 064A -"\xEF\xB1\xBE" => "\x{0642}\x{0649}", # U+FC7E => 0642 0649 -"\xEF\xB1\xBF" => "\x{0642}\x{064A}", # U+FC7F => 0642 064A -"\xEF\xB2\x80" => "\x{0643}\x{0627}", # U+FC80 => 0643 0627 -"\xEF\xB2\x81" => "\x{0643}\x{0644}", # U+FC81 => 0643 0644 -"\xEF\xB2\x82" => "\x{0643}\x{0645}", # U+FC82 => 0643 0645 -"\xEF\xB2\x83" => "\x{0643}\x{0649}", # U+FC83 => 0643 0649 -"\xEF\xB2\x84" => "\x{0643}\x{064A}", # U+FC84 => 0643 064A -"\xEF\xB2\x85" => "\x{0644}\x{0645}", # U+FC85 => 0644 0645 -"\xEF\xB2\x86" => "\x{0644}\x{0649}", # U+FC86 => 0644 0649 -"\xEF\xB2\x87" => "\x{0644}\x{064A}", # U+FC87 => 0644 064A -"\xEF\xB2\x88" => "\x{0645}\x{0627}", # U+FC88 => 0645 0627 -"\xEF\xB2\x89" => "\x{0645}\x{0645}", # U+FC89 => 0645 0645 -"\xEF\xB2\x8A" => "\x{0646}\x{0631}", # U+FC8A => 0646 0631 -"\xEF\xB2\x8B" => "\x{0646}\x{0632}", # U+FC8B => 0646 0632 -"\xEF\xB2\x8C" => "\x{0646}\x{0645}", # U+FC8C => 0646 0645 -"\xEF\xB2\x8D" => "\x{0646}\x{0646}", # U+FC8D => 0646 0646 -"\xEF\xB2\x8E" => "\x{0646}\x{0649}", # U+FC8E => 0646 0649 -"\xEF\xB2\x8F" => "\x{0646}\x{064A}", # U+FC8F => 0646 064A -"\xEF\xB2\x90" => "\x{0649}\x{0670}", # U+FC90 => 0649 0670 -"\xEF\xB2\x91" => "\x{064A}\x{0631}", # U+FC91 => 064A 0631 -"\xEF\xB2\x92" => "\x{064A}\x{0632}", # U+FC92 => 064A 0632 -"\xEF\xB2\x93" => "\x{064A}\x{0645}", # U+FC93 => 064A 0645 -"\xEF\xB2\x94" => "\x{064A}\x{0646}", # U+FC94 => 064A 0646 -"\xEF\xB2\x95" => "\x{064A}\x{0649}", # U+FC95 => 064A 0649 -"\xEF\xB2\x96" => "\x{064A}\x{064A}", # U+FC96 => 064A 064A -"\xEF\xB2\x97" => "\x{0626}\x{062C}", # U+FC97 => 0626 062C -"\xEF\xB2\x98" => "\x{0626}\x{062D}", # U+FC98 => 0626 062D -"\xEF\xB2\x99" => "\x{0626}\x{062E}", # U+FC99 => 0626 062E -"\xEF\xB2\x9A" => "\x{0626}\x{0645}", # U+FC9A => 0626 0645 -"\xEF\xB2\x9B" => "\x{0626}\x{0647}", # U+FC9B => 0626 0647 -"\xEF\xB2\x9C" => "\x{0628}\x{062C}", # U+FC9C => 0628 062C -"\xEF\xB2\x9D" => "\x{0628}\x{062D}", # U+FC9D => 0628 062D -"\xEF\xB2\x9E" => "\x{0628}\x{062E}", # U+FC9E => 0628 062E -"\xEF\xB2\x9F" => "\x{0628}\x{0645}", # U+FC9F => 0628 0645 -"\xEF\xB2\xA0" => "\x{0628}\x{0647}", # U+FCA0 => 0628 0647 -"\xEF\xB2\xA1" => "\x{062A}\x{062C}", # U+FCA1 => 062A 062C -"\xEF\xB2\xA2" => "\x{062A}\x{062D}", # U+FCA2 => 062A 062D -"\xEF\xB2\xA3" => "\x{062A}\x{062E}", # U+FCA3 => 062A 062E -"\xEF\xB2\xA4" => "\x{062A}\x{0645}", # U+FCA4 => 062A 0645 -"\xEF\xB2\xA5" => "\x{062A}\x{0647}", # U+FCA5 => 062A 0647 -"\xEF\xB2\xA6" => "\x{062B}\x{0645}", # U+FCA6 => 062B 0645 -"\xEF\xB2\xA7" => "\x{062C}\x{062D}", # U+FCA7 => 062C 062D -"\xEF\xB2\xA8" => "\x{062C}\x{0645}", # U+FCA8 => 062C 0645 -"\xEF\xB2\xA9" => "\x{062D}\x{062C}", # U+FCA9 => 062D 062C -"\xEF\xB2\xAA" => "\x{062D}\x{0645}", # U+FCAA => 062D 0645 -"\xEF\xB2\xAB" => "\x{062E}\x{062C}", # U+FCAB => 062E 062C -"\xEF\xB2\xAC" => "\x{062E}\x{0645}", # U+FCAC => 062E 0645 -"\xEF\xB2\xAD" => "\x{0633}\x{062C}", # U+FCAD => 0633 062C -"\xEF\xB2\xAE" => "\x{0633}\x{062D}", # U+FCAE => 0633 062D -"\xEF\xB2\xAF" => "\x{0633}\x{062E}", # U+FCAF => 0633 062E -"\xEF\xB2\xB0" => "\x{0633}\x{0645}", # U+FCB0 => 0633 0645 -"\xEF\xB2\xB1" => "\x{0635}\x{062D}", # U+FCB1 => 0635 062D -"\xEF\xB2\xB2" => "\x{0635}\x{062E}", # U+FCB2 => 0635 062E -"\xEF\xB2\xB3" => "\x{0635}\x{0645}", # U+FCB3 => 0635 0645 -"\xEF\xB2\xB4" => "\x{0636}\x{062C}", # U+FCB4 => 0636 062C -"\xEF\xB2\xB5" => "\x{0636}\x{062D}", # U+FCB5 => 0636 062D -"\xEF\xB2\xB6" => "\x{0636}\x{062E}", # U+FCB6 => 0636 062E -"\xEF\xB2\xB7" => "\x{0636}\x{0645}", # U+FCB7 => 0636 0645 -"\xEF\xB2\xB8" => "\x{0637}\x{062D}", # U+FCB8 => 0637 062D -"\xEF\xB2\xB9" => "\x{0638}\x{0645}", # U+FCB9 => 0638 0645 -"\xEF\xB2\xBA" => "\x{0639}\x{062C}", # U+FCBA => 0639 062C -"\xEF\xB2\xBB" => "\x{0639}\x{0645}", # U+FCBB => 0639 0645 -"\xEF\xB2\xBC" => "\x{063A}\x{062C}", # U+FCBC => 063A 062C -"\xEF\xB2\xBD" => "\x{063A}\x{0645}", # U+FCBD => 063A 0645 -"\xEF\xB2\xBE" => "\x{0641}\x{062C}", # U+FCBE => 0641 062C -"\xEF\xB2\xBF" => "\x{0641}\x{062D}", # U+FCBF => 0641 062D -"\xEF\xB3\x80" => "\x{0641}\x{062E}", # U+FCC0 => 0641 062E -"\xEF\xB3\x81" => "\x{0641}\x{0645}", # U+FCC1 => 0641 0645 -"\xEF\xB3\x82" => "\x{0642}\x{062D}", # U+FCC2 => 0642 062D -"\xEF\xB3\x83" => "\x{0642}\x{0645}", # U+FCC3 => 0642 0645 -"\xEF\xB3\x84" => "\x{0643}\x{062C}", # U+FCC4 => 0643 062C -"\xEF\xB3\x85" => "\x{0643}\x{062D}", # U+FCC5 => 0643 062D -"\xEF\xB3\x86" => "\x{0643}\x{062E}", # U+FCC6 => 0643 062E -"\xEF\xB3\x87" => "\x{0643}\x{0644}", # U+FCC7 => 0643 0644 -"\xEF\xB3\x88" => "\x{0643}\x{0645}", # U+FCC8 => 0643 0645 -"\xEF\xB3\x89" => "\x{0644}\x{062C}", # U+FCC9 => 0644 062C -"\xEF\xB3\x8A" => "\x{0644}\x{062D}", # U+FCCA => 0644 062D -"\xEF\xB3\x8B" => "\x{0644}\x{062E}", # U+FCCB => 0644 062E -"\xEF\xB3\x8C" => "\x{0644}\x{0645}", # U+FCCC => 0644 0645 -"\xEF\xB3\x8D" => "\x{0644}\x{0647}", # U+FCCD => 0644 0647 -"\xEF\xB3\x8E" => "\x{0645}\x{062C}", # U+FCCE => 0645 062C -"\xEF\xB3\x8F" => "\x{0645}\x{062D}", # U+FCCF => 0645 062D -"\xEF\xB3\x90" => "\x{0645}\x{062E}", # U+FCD0 => 0645 062E -"\xEF\xB3\x91" => "\x{0645}\x{0645}", # U+FCD1 => 0645 0645 -"\xEF\xB3\x92" => "\x{0646}\x{062C}", # U+FCD2 => 0646 062C -"\xEF\xB3\x93" => "\x{0646}\x{062D}", # U+FCD3 => 0646 062D -"\xEF\xB3\x94" => "\x{0646}\x{062E}", # U+FCD4 => 0646 062E -"\xEF\xB3\x95" => "\x{0646}\x{0645}", # U+FCD5 => 0646 0645 -"\xEF\xB3\x96" => "\x{0646}\x{0647}", # U+FCD6 => 0646 0647 -"\xEF\xB3\x97" => "\x{0647}\x{062C}", # U+FCD7 => 0647 062C -"\xEF\xB3\x98" => "\x{0647}\x{0645}", # U+FCD8 => 0647 0645 -"\xEF\xB3\x99" => "\x{0647}\x{0670}", # U+FCD9 => 0647 0670 -"\xEF\xB3\x9A" => "\x{064A}\x{062C}", # U+FCDA => 064A 062C -"\xEF\xB3\x9B" => "\x{064A}\x{062D}", # U+FCDB => 064A 062D -"\xEF\xB3\x9C" => "\x{064A}\x{062E}", # U+FCDC => 064A 062E -"\xEF\xB3\x9D" => "\x{064A}\x{0645}", # U+FCDD => 064A 0645 -"\xEF\xB3\x9E" => "\x{064A}\x{0647}", # U+FCDE => 064A 0647 -"\xEF\xB3\x9F" => "\x{0626}\x{0645}", # U+FCDF => 0626 0645 -"\xEF\xB3\xA0" => "\x{0626}\x{0647}", # U+FCE0 => 0626 0647 -"\xEF\xB3\xA1" => "\x{0628}\x{0645}", # U+FCE1 => 0628 0645 -"\xEF\xB3\xA2" => "\x{0628}\x{0647}", # U+FCE2 => 0628 0647 -"\xEF\xB3\xA3" => "\x{062A}\x{0645}", # U+FCE3 => 062A 0645 -"\xEF\xB3\xA4" => "\x{062A}\x{0647}", # U+FCE4 => 062A 0647 -"\xEF\xB3\xA5" => "\x{062B}\x{0645}", # U+FCE5 => 062B 0645 -"\xEF\xB3\xA6" => "\x{062B}\x{0647}", # U+FCE6 => 062B 0647 -"\xEF\xB3\xA7" => "\x{0633}\x{0645}", # U+FCE7 => 0633 0645 -"\xEF\xB3\xA8" => "\x{0633}\x{0647}", # U+FCE8 => 0633 0647 -"\xEF\xB3\xA9" => "\x{0634}\x{0645}", # U+FCE9 => 0634 0645 -"\xEF\xB3\xAA" => "\x{0634}\x{0647}", # U+FCEA => 0634 0647 -"\xEF\xB3\xAB" => "\x{0643}\x{0644}", # U+FCEB => 0643 0644 -"\xEF\xB3\xAC" => "\x{0643}\x{0645}", # U+FCEC => 0643 0645 -"\xEF\xB3\xAD" => "\x{0644}\x{0645}", # U+FCED => 0644 0645 -"\xEF\xB3\xAE" => "\x{0646}\x{0645}", # U+FCEE => 0646 0645 -"\xEF\xB3\xAF" => "\x{0646}\x{0647}", # U+FCEF => 0646 0647 -"\xEF\xB3\xB0" => "\x{064A}\x{0645}", # U+FCF0 => 064A 0645 -"\xEF\xB3\xB1" => "\x{064A}\x{0647}", # U+FCF1 => 064A 0647 -"\xEF\xB3\xB2" => "\x{0640}\x{064E}\x{0651}", # U+FCF2 => 0640 064E 0651 -"\xEF\xB3\xB3" => "\x{0640}\x{064F}\x{0651}", # U+FCF3 => 0640 064F 0651 -"\xEF\xB3\xB4" => "\x{0640}\x{0650}\x{0651}", # U+FCF4 => 0640 0650 0651 -"\xEF\xB3\xB5" => "\x{0637}\x{0649}", # U+FCF5 => 0637 0649 -"\xEF\xB3\xB6" => "\x{0637}\x{064A}", # U+FCF6 => 0637 064A -"\xEF\xB3\xB7" => "\x{0639}\x{0649}", # U+FCF7 => 0639 0649 -"\xEF\xB3\xB8" => "\x{0639}\x{064A}", # U+FCF8 => 0639 064A -"\xEF\xB3\xB9" => "\x{063A}\x{0649}", # U+FCF9 => 063A 0649 -"\xEF\xB3\xBA" => "\x{063A}\x{064A}", # U+FCFA => 063A 064A -"\xEF\xB3\xBB" => "\x{0633}\x{0649}", # U+FCFB => 0633 0649 -"\xEF\xB3\xBC" => "\x{0633}\x{064A}", # U+FCFC => 0633 064A -"\xEF\xB3\xBD" => "\x{0634}\x{0649}", # U+FCFD => 0634 0649 -"\xEF\xB3\xBE" => "\x{0634}\x{064A}", # U+FCFE => 0634 064A -"\xEF\xB3\xBF" => "\x{062D}\x{0649}", # U+FCFF => 062D 0649 -"\xEF\xB4\x80" => "\x{062D}\x{064A}", # U+FD00 => 062D 064A -"\xEF\xB4\x81" => "\x{062C}\x{0649}", # U+FD01 => 062C 0649 -"\xEF\xB4\x82" => "\x{062C}\x{064A}", # U+FD02 => 062C 064A -"\xEF\xB4\x83" => "\x{062E}\x{0649}", # U+FD03 => 062E 0649 -"\xEF\xB4\x84" => "\x{062E}\x{064A}", # U+FD04 => 062E 064A -"\xEF\xB4\x85" => "\x{0635}\x{0649}", # U+FD05 => 0635 0649 -"\xEF\xB4\x86" => "\x{0635}\x{064A}", # U+FD06 => 0635 064A -"\xEF\xB4\x87" => "\x{0636}\x{0649}", # U+FD07 => 0636 0649 -"\xEF\xB4\x88" => "\x{0636}\x{064A}", # U+FD08 => 0636 064A -"\xEF\xB4\x89" => "\x{0634}\x{062C}", # U+FD09 => 0634 062C -"\xEF\xB4\x8A" => "\x{0634}\x{062D}", # U+FD0A => 0634 062D -"\xEF\xB4\x8B" => "\x{0634}\x{062E}", # U+FD0B => 0634 062E -"\xEF\xB4\x8C" => "\x{0634}\x{0645}", # U+FD0C => 0634 0645 -"\xEF\xB4\x8D" => "\x{0634}\x{0631}", # U+FD0D => 0634 0631 -"\xEF\xB4\x8E" => "\x{0633}\x{0631}", # U+FD0E => 0633 0631 -"\xEF\xB4\x8F" => "\x{0635}\x{0631}", # U+FD0F => 0635 0631 -"\xEF\xB4\x90" => "\x{0636}\x{0631}", # U+FD10 => 0636 0631 -"\xEF\xB4\x91" => "\x{0637}\x{0649}", # U+FD11 => 0637 0649 -"\xEF\xB4\x92" => "\x{0637}\x{064A}", # U+FD12 => 0637 064A -"\xEF\xB4\x93" => "\x{0639}\x{0649}", # U+FD13 => 0639 0649 -"\xEF\xB4\x94" => "\x{0639}\x{064A}", # U+FD14 => 0639 064A -"\xEF\xB4\x95" => "\x{063A}\x{0649}", # U+FD15 => 063A 0649 -"\xEF\xB4\x96" => "\x{063A}\x{064A}", # U+FD16 => 063A 064A -"\xEF\xB4\x97" => "\x{0633}\x{0649}", # U+FD17 => 0633 0649 -"\xEF\xB4\x98" => "\x{0633}\x{064A}", # U+FD18 => 0633 064A -"\xEF\xB4\x99" => "\x{0634}\x{0649}", # U+FD19 => 0634 0649 -"\xEF\xB4\x9A" => "\x{0634}\x{064A}", # U+FD1A => 0634 064A -"\xEF\xB4\x9B" => "\x{062D}\x{0649}", # U+FD1B => 062D 0649 -"\xEF\xB4\x9C" => "\x{062D}\x{064A}", # U+FD1C => 062D 064A -"\xEF\xB4\x9D" => "\x{062C}\x{0649}", # U+FD1D => 062C 0649 -"\xEF\xB4\x9E" => "\x{062C}\x{064A}", # U+FD1E => 062C 064A -"\xEF\xB4\x9F" => "\x{062E}\x{0649}", # U+FD1F => 062E 0649 -"\xEF\xB4\xA0" => "\x{062E}\x{064A}", # U+FD20 => 062E 064A -"\xEF\xB4\xA1" => "\x{0635}\x{0649}", # U+FD21 => 0635 0649 -"\xEF\xB4\xA2" => "\x{0635}\x{064A}", # U+FD22 => 0635 064A -"\xEF\xB4\xA3" => "\x{0636}\x{0649}", # U+FD23 => 0636 0649 -"\xEF\xB4\xA4" => "\x{0636}\x{064A}", # U+FD24 => 0636 064A -"\xEF\xB4\xA5" => "\x{0634}\x{062C}", # U+FD25 => 0634 062C -"\xEF\xB4\xA6" => "\x{0634}\x{062D}", # U+FD26 => 0634 062D -"\xEF\xB4\xA7" => "\x{0634}\x{062E}", # U+FD27 => 0634 062E -"\xEF\xB4\xA8" => "\x{0634}\x{0645}", # U+FD28 => 0634 0645 -"\xEF\xB4\xA9" => "\x{0634}\x{0631}", # U+FD29 => 0634 0631 -"\xEF\xB4\xAA" => "\x{0633}\x{0631}", # U+FD2A => 0633 0631 -"\xEF\xB4\xAB" => "\x{0635}\x{0631}", # U+FD2B => 0635 0631 -"\xEF\xB4\xAC" => "\x{0636}\x{0631}", # U+FD2C => 0636 0631 -"\xEF\xB4\xAD" => "\x{0634}\x{062C}", # U+FD2D => 0634 062C -"\xEF\xB4\xAE" => "\x{0634}\x{062D}", # U+FD2E => 0634 062D -"\xEF\xB4\xAF" => "\x{0634}\x{062E}", # U+FD2F => 0634 062E -"\xEF\xB4\xB0" => "\x{0634}\x{0645}", # U+FD30 => 0634 0645 -"\xEF\xB4\xB1" => "\x{0633}\x{0647}", # U+FD31 => 0633 0647 -"\xEF\xB4\xB2" => "\x{0634}\x{0647}", # U+FD32 => 0634 0647 -"\xEF\xB4\xB3" => "\x{0637}\x{0645}", # U+FD33 => 0637 0645 -"\xEF\xB4\xB4" => "\x{0633}\x{062C}", # U+FD34 => 0633 062C -"\xEF\xB4\xB5" => "\x{0633}\x{062D}", # U+FD35 => 0633 062D -"\xEF\xB4\xB6" => "\x{0633}\x{062E}", # U+FD36 => 0633 062E -"\xEF\xB4\xB7" => "\x{0634}\x{062C}", # U+FD37 => 0634 062C -"\xEF\xB4\xB8" => "\x{0634}\x{062D}", # U+FD38 => 0634 062D -"\xEF\xB4\xB9" => "\x{0634}\x{062E}", # U+FD39 => 0634 062E -"\xEF\xB4\xBA" => "\x{0637}\x{0645}", # U+FD3A => 0637 0645 -"\xEF\xB4\xBB" => "\x{0638}\x{0645}", # U+FD3B => 0638 0645 -"\xEF\xB4\xBC" => "\x{0627}\x{064B}", # U+FD3C => 0627 064B -"\xEF\xB4\xBD" => "\x{0627}\x{064B}", # U+FD3D => 0627 064B -"\xEF\xB5\x90" => "\x{062A}\x{062C}\x{0645}", # U+FD50 => 062A 062C 0645 -"\xEF\xB5\x91" => "\x{062A}\x{062D}\x{062C}", # U+FD51 => 062A 062D 062C -"\xEF\xB5\x92" => "\x{062A}\x{062D}\x{062C}", # U+FD52 => 062A 062D 062C -"\xEF\xB5\x93" => "\x{062A}\x{062D}\x{0645}", # U+FD53 => 062A 062D 0645 -"\xEF\xB5\x94" => "\x{062A}\x{062E}\x{0645}", # U+FD54 => 062A 062E 0645 -"\xEF\xB5\x95" => "\x{062A}\x{0645}\x{062C}", # U+FD55 => 062A 0645 062C -"\xEF\xB5\x96" => "\x{062A}\x{0645}\x{062D}", # U+FD56 => 062A 0645 062D -"\xEF\xB5\x97" => "\x{062A}\x{0645}\x{062E}", # U+FD57 => 062A 0645 062E -"\xEF\xB5\x98" => "\x{062C}\x{0645}\x{062D}", # U+FD58 => 062C 0645 062D -"\xEF\xB5\x99" => "\x{062C}\x{0645}\x{062D}", # U+FD59 => 062C 0645 062D -"\xEF\xB5\x9A" => "\x{062D}\x{0645}\x{064A}", # U+FD5A => 062D 0645 064A -"\xEF\xB5\x9B" => "\x{062D}\x{0645}\x{0649}", # U+FD5B => 062D 0645 0649 -"\xEF\xB5\x9C" => "\x{0633}\x{062D}\x{062C}", # U+FD5C => 0633 062D 062C -"\xEF\xB5\x9D" => "\x{0633}\x{062C}\x{062D}", # U+FD5D => 0633 062C 062D -"\xEF\xB5\x9E" => "\x{0633}\x{062C}\x{0649}", # U+FD5E => 0633 062C 0649 -"\xEF\xB5\x9F" => "\x{0633}\x{0645}\x{062D}", # U+FD5F => 0633 0645 062D -"\xEF\xB5\xA0" => "\x{0633}\x{0645}\x{062D}", # U+FD60 => 0633 0645 062D -"\xEF\xB5\xA1" => "\x{0633}\x{0645}\x{062C}", # U+FD61 => 0633 0645 062C -"\xEF\xB5\xA2" => "\x{0633}\x{0645}\x{0645}", # U+FD62 => 0633 0645 0645 -"\xEF\xB5\xA3" => "\x{0633}\x{0645}\x{0645}", # U+FD63 => 0633 0645 0645 -"\xEF\xB5\xA4" => "\x{0635}\x{062D}\x{062D}", # U+FD64 => 0635 062D 062D -"\xEF\xB5\xA5" => "\x{0635}\x{062D}\x{062D}", # U+FD65 => 0635 062D 062D -"\xEF\xB5\xA6" => "\x{0635}\x{0645}\x{0645}", # U+FD66 => 0635 0645 0645 -"\xEF\xB5\xA7" => "\x{0634}\x{062D}\x{0645}", # U+FD67 => 0634 062D 0645 -"\xEF\xB5\xA8" => "\x{0634}\x{062D}\x{0645}", # U+FD68 => 0634 062D 0645 -"\xEF\xB5\xA9" => "\x{0634}\x{062C}\x{064A}", # U+FD69 => 0634 062C 064A -"\xEF\xB5\xAA" => "\x{0634}\x{0645}\x{062E}", # U+FD6A => 0634 0645 062E -"\xEF\xB5\xAB" => "\x{0634}\x{0645}\x{062E}", # U+FD6B => 0634 0645 062E -"\xEF\xB5\xAC" => "\x{0634}\x{0645}\x{0645}", # U+FD6C => 0634 0645 0645 -"\xEF\xB5\xAD" => "\x{0634}\x{0645}\x{0645}", # U+FD6D => 0634 0645 0645 -"\xEF\xB5\xAE" => "\x{0636}\x{062D}\x{0649}", # U+FD6E => 0636 062D 0649 -"\xEF\xB5\xAF" => "\x{0636}\x{062E}\x{0645}", # U+FD6F => 0636 062E 0645 -"\xEF\xB5\xB0" => "\x{0636}\x{062E}\x{0645}", # U+FD70 => 0636 062E 0645 -"\xEF\xB5\xB1" => "\x{0637}\x{0645}\x{062D}", # U+FD71 => 0637 0645 062D -"\xEF\xB5\xB2" => "\x{0637}\x{0645}\x{062D}", # U+FD72 => 0637 0645 062D -"\xEF\xB5\xB3" => "\x{0637}\x{0645}\x{0645}", # U+FD73 => 0637 0645 0645 -"\xEF\xB5\xB4" => "\x{0637}\x{0645}\x{064A}", # U+FD74 => 0637 0645 064A -"\xEF\xB5\xB5" => "\x{0639}\x{062C}\x{0645}", # U+FD75 => 0639 062C 0645 -"\xEF\xB5\xB6" => "\x{0639}\x{0645}\x{0645}", # U+FD76 => 0639 0645 0645 -"\xEF\xB5\xB7" => "\x{0639}\x{0645}\x{0645}", # U+FD77 => 0639 0645 0645 -"\xEF\xB5\xB8" => "\x{0639}\x{0645}\x{0649}", # U+FD78 => 0639 0645 0649 -"\xEF\xB5\xB9" => "\x{063A}\x{0645}\x{0645}", # U+FD79 => 063A 0645 0645 -"\xEF\xB5\xBA" => "\x{063A}\x{0645}\x{064A}", # U+FD7A => 063A 0645 064A -"\xEF\xB5\xBB" => "\x{063A}\x{0645}\x{0649}", # U+FD7B => 063A 0645 0649 -"\xEF\xB5\xBC" => "\x{0641}\x{062E}\x{0645}", # U+FD7C => 0641 062E 0645 -"\xEF\xB5\xBD" => "\x{0641}\x{062E}\x{0645}", # U+FD7D => 0641 062E 0645 -"\xEF\xB5\xBE" => "\x{0642}\x{0645}\x{062D}", # U+FD7E => 0642 0645 062D -"\xEF\xB5\xBF" => "\x{0642}\x{0645}\x{0645}", # U+FD7F => 0642 0645 0645 -"\xEF\xB6\x80" => "\x{0644}\x{062D}\x{0645}", # U+FD80 => 0644 062D 0645 -"\xEF\xB6\x81" => "\x{0644}\x{062D}\x{064A}", # U+FD81 => 0644 062D 064A -"\xEF\xB6\x82" => "\x{0644}\x{062D}\x{0649}", # U+FD82 => 0644 062D 0649 -"\xEF\xB6\x83" => "\x{0644}\x{062C}\x{062C}", # U+FD83 => 0644 062C 062C -"\xEF\xB6\x84" => "\x{0644}\x{062C}\x{062C}", # U+FD84 => 0644 062C 062C -"\xEF\xB6\x85" => "\x{0644}\x{062E}\x{0645}", # U+FD85 => 0644 062E 0645 -"\xEF\xB6\x86" => "\x{0644}\x{062E}\x{0645}", # U+FD86 => 0644 062E 0645 -"\xEF\xB6\x87" => "\x{0644}\x{0645}\x{062D}", # U+FD87 => 0644 0645 062D -"\xEF\xB6\x88" => "\x{0644}\x{0645}\x{062D}", # U+FD88 => 0644 0645 062D -"\xEF\xB6\x89" => "\x{0645}\x{062D}\x{062C}", # U+FD89 => 0645 062D 062C -"\xEF\xB6\x8A" => "\x{0645}\x{062D}\x{0645}", # U+FD8A => 0645 062D 0645 -"\xEF\xB6\x8B" => "\x{0645}\x{062D}\x{064A}", # U+FD8B => 0645 062D 064A -"\xEF\xB6\x8C" => "\x{0645}\x{062C}\x{062D}", # U+FD8C => 0645 062C 062D -"\xEF\xB6\x8D" => "\x{0645}\x{062C}\x{0645}", # U+FD8D => 0645 062C 0645 -"\xEF\xB6\x8E" => "\x{0645}\x{062E}\x{062C}", # U+FD8E => 0645 062E 062C -"\xEF\xB6\x8F" => "\x{0645}\x{062E}\x{0645}", # U+FD8F => 0645 062E 0645 -"\xEF\xB6\x92" => "\x{0645}\x{062C}\x{062E}", # U+FD92 => 0645 062C 062E -"\xEF\xB6\x93" => "\x{0647}\x{0645}\x{062C}", # U+FD93 => 0647 0645 062C -"\xEF\xB6\x94" => "\x{0647}\x{0645}\x{0645}", # U+FD94 => 0647 0645 0645 -"\xEF\xB6\x95" => "\x{0646}\x{062D}\x{0645}", # U+FD95 => 0646 062D 0645 -"\xEF\xB6\x96" => "\x{0646}\x{062D}\x{0649}", # U+FD96 => 0646 062D 0649 -"\xEF\xB6\x97" => "\x{0646}\x{062C}\x{0645}", # U+FD97 => 0646 062C 0645 -"\xEF\xB6\x98" => "\x{0646}\x{062C}\x{0645}", # U+FD98 => 0646 062C 0645 -"\xEF\xB6\x99" => "\x{0646}\x{062C}\x{0649}", # U+FD99 => 0646 062C 0649 -"\xEF\xB6\x9A" => "\x{0646}\x{0645}\x{064A}", # U+FD9A => 0646 0645 064A -"\xEF\xB6\x9B" => "\x{0646}\x{0645}\x{0649}", # U+FD9B => 0646 0645 0649 -"\xEF\xB6\x9C" => "\x{064A}\x{0645}\x{0645}", # U+FD9C => 064A 0645 0645 -"\xEF\xB6\x9D" => "\x{064A}\x{0645}\x{0645}", # U+FD9D => 064A 0645 0645 -"\xEF\xB6\x9E" => "\x{0628}\x{062E}\x{064A}", # U+FD9E => 0628 062E 064A -"\xEF\xB6\x9F" => "\x{062A}\x{062C}\x{064A}", # U+FD9F => 062A 062C 064A -"\xEF\xB6\xA0" => "\x{062A}\x{062C}\x{0649}", # U+FDA0 => 062A 062C 0649 -"\xEF\xB6\xA1" => "\x{062A}\x{062E}\x{064A}", # U+FDA1 => 062A 062E 064A -"\xEF\xB6\xA2" => "\x{062A}\x{062E}\x{0649}", # U+FDA2 => 062A 062E 0649 -"\xEF\xB6\xA3" => "\x{062A}\x{0645}\x{064A}", # U+FDA3 => 062A 0645 064A -"\xEF\xB6\xA4" => "\x{062A}\x{0645}\x{0649}", # U+FDA4 => 062A 0645 0649 -"\xEF\xB6\xA5" => "\x{062C}\x{0645}\x{064A}", # U+FDA5 => 062C 0645 064A -"\xEF\xB6\xA6" => "\x{062C}\x{062D}\x{0649}", # U+FDA6 => 062C 062D 0649 -"\xEF\xB6\xA7" => "\x{062C}\x{0645}\x{0649}", # U+FDA7 => 062C 0645 0649 -"\xEF\xB6\xA8" => "\x{0633}\x{062E}\x{0649}", # U+FDA8 => 0633 062E 0649 -"\xEF\xB6\xA9" => "\x{0635}\x{062D}\x{064A}", # U+FDA9 => 0635 062D 064A -"\xEF\xB6\xAA" => "\x{0634}\x{062D}\x{064A}", # U+FDAA => 0634 062D 064A -"\xEF\xB6\xAB" => "\x{0636}\x{062D}\x{064A}", # U+FDAB => 0636 062D 064A -"\xEF\xB6\xAC" => "\x{0644}\x{062C}\x{064A}", # U+FDAC => 0644 062C 064A -"\xEF\xB6\xAD" => "\x{0644}\x{0645}\x{064A}", # U+FDAD => 0644 0645 064A -"\xEF\xB6\xAE" => "\x{064A}\x{062D}\x{064A}", # U+FDAE => 064A 062D 064A -"\xEF\xB6\xAF" => "\x{064A}\x{062C}\x{064A}", # U+FDAF => 064A 062C 064A -"\xEF\xB6\xB0" => "\x{064A}\x{0645}\x{064A}", # U+FDB0 => 064A 0645 064A -"\xEF\xB6\xB1" => "\x{0645}\x{0645}\x{064A}", # U+FDB1 => 0645 0645 064A -"\xEF\xB6\xB2" => "\x{0642}\x{0645}\x{064A}", # U+FDB2 => 0642 0645 064A -"\xEF\xB6\xB3" => "\x{0646}\x{062D}\x{064A}", # U+FDB3 => 0646 062D 064A -"\xEF\xB6\xB4" => "\x{0642}\x{0645}\x{062D}", # U+FDB4 => 0642 0645 062D -"\xEF\xB6\xB5" => "\x{0644}\x{062D}\x{0645}", # U+FDB5 => 0644 062D 0645 -"\xEF\xB6\xB6" => "\x{0639}\x{0645}\x{064A}", # U+FDB6 => 0639 0645 064A -"\xEF\xB6\xB7" => "\x{0643}\x{0645}\x{064A}", # U+FDB7 => 0643 0645 064A -"\xEF\xB6\xB8" => "\x{0646}\x{062C}\x{062D}", # U+FDB8 => 0646 062C 062D -"\xEF\xB6\xB9" => "\x{0645}\x{062E}\x{064A}", # U+FDB9 => 0645 062E 064A -"\xEF\xB6\xBA" => "\x{0644}\x{062C}\x{0645}", # U+FDBA => 0644 062C 0645 -"\xEF\xB6\xBB" => "\x{0643}\x{0645}\x{0645}", # U+FDBB => 0643 0645 0645 -"\xEF\xB6\xBC" => "\x{0644}\x{062C}\x{0645}", # U+FDBC => 0644 062C 0645 -"\xEF\xB6\xBD" => "\x{0646}\x{062C}\x{062D}", # U+FDBD => 0646 062C 062D -"\xEF\xB6\xBE" => "\x{062C}\x{062D}\x{064A}", # U+FDBE => 062C 062D 064A -"\xEF\xB6\xBF" => "\x{062D}\x{062C}\x{064A}", # U+FDBF => 062D 062C 064A -"\xEF\xB7\x80" => "\x{0645}\x{062C}\x{064A}", # U+FDC0 => 0645 062C 064A -"\xEF\xB7\x81" => "\x{0641}\x{0645}\x{064A}", # U+FDC1 => 0641 0645 064A -"\xEF\xB7\x82" => "\x{0628}\x{062D}\x{064A}", # U+FDC2 => 0628 062D 064A -"\xEF\xB7\x83" => "\x{0643}\x{0645}\x{0645}", # U+FDC3 => 0643 0645 0645 -"\xEF\xB7\x84" => "\x{0639}\x{062C}\x{0645}", # U+FDC4 => 0639 062C 0645 -"\xEF\xB7\x85" => "\x{0635}\x{0645}\x{0645}", # U+FDC5 => 0635 0645 0645 -"\xEF\xB7\x86" => "\x{0633}\x{062E}\x{064A}", # U+FDC6 => 0633 062E 064A -"\xEF\xB7\x87" => "\x{0646}\x{062C}\x{064A}", # U+FDC7 => 0646 062C 064A -"\xEF\xB7\xB0" => "\x{0635}\x{0644}\x{06D2}", # U+FDF0 => 0635 0644 06D2 -"\xEF\xB7\xB1" => "\x{0642}\x{0644}\x{06D2}", # U+FDF1 => 0642 0644 06D2 -"\xEF\xB7\xB2" => "\x{0627}\x{0644}\x{0644}\x{0647}", # U+FDF2 => 0627 0644 0644 0647 -"\xEF\xB7\xB3" => "\x{0627}\x{0643}\x{0628}\x{0631}", # U+FDF3 => 0627 0643 0628 0631 -"\xEF\xB7\xB4" => "\x{0645}\x{062D}\x{0645}\x{062F}", # U+FDF4 => 0645 062D 0645 062F -"\xEF\xB7\xB5" => "\x{0635}\x{0644}\x{0639}\x{0645}", # U+FDF5 => 0635 0644 0639 0645 -"\xEF\xB7\xB6" => "\x{0631}\x{0633}\x{0648}\x{0644}", # U+FDF6 => 0631 0633 0648 0644 -"\xEF\xB7\xB7" => "\x{0639}\x{0644}\x{064A}\x{0647}", # U+FDF7 => 0639 0644 064A 0647 -"\xEF\xB7\xB8" => "\x{0648}\x{0633}\x{0644}\x{0645}", # U+FDF8 => 0648 0633 0644 0645 -"\xEF\xB7\xB9" => "\x{0635}\x{0644}\x{0649}", # U+FDF9 => 0635 0644 0649 -"\xEF\xB7\xBA" => "\x{0635}\x{0644}\x{0649}\x{0020}\x{0627}\x{0644}\x{0644}\x{0647}\x{0020}\x{0639}\x{0644}\x{064A}\x{0647}\x{0020}\x{0648}\x{0633}\x{0644}\x{0645}", # U+FDFA => 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645 -"\xEF\xB7\xBB" => "\x{062C}\x{0644}\x{0020}\x{062C}\x{0644}\x{0627}\x{0644}\x{0647}", # U+FDFB => 062C 0644 0020 062C 0644 0627 0644 0647 -"\xEF\xB7\xBC" => "\x{0631}\x{06CC}\x{0627}\x{0644}", # U+FDFC => 0631 06CC 0627 0644 -"\xEF\xB8\x80" => "", # U+FE00 => -"\xEF\xB8\x81" => "", # U+FE01 => -"\xEF\xB8\x82" => "", # U+FE02 => -"\xEF\xB8\x83" => "", # U+FE03 => -"\xEF\xB8\x84" => "", # U+FE04 => -"\xEF\xB8\x85" => "", # U+FE05 => -"\xEF\xB8\x86" => "", # U+FE06 => -"\xEF\xB8\x87" => "", # U+FE07 => -"\xEF\xB8\x88" => "", # U+FE08 => -"\xEF\xB8\x89" => "", # U+FE09 => -"\xEF\xB8\x8A" => "", # U+FE0A => -"\xEF\xB8\x8B" => "", # U+FE0B => -"\xEF\xB8\x8C" => "", # U+FE0C => -"\xEF\xB8\x8D" => "", # U+FE0D => -"\xEF\xB8\x8E" => "", # U+FE0E => -"\xEF\xB8\x8F" => "", # U+FE0F => -"\xEF\xB8\x99" => "\x{002E}\x{002E}\x{002E}", # U+FE19 => 002E 002E 002E -"\xEF\xB8\xB0" => "\x{002E}\x{002E}", # U+FE30 => 002E 002E -"\xEF\xB9\x89" => "\x{0020}\x{0305}", # U+FE49 => 0020 0305 -"\xEF\xB9\x8A" => "\x{0020}\x{0305}", # U+FE4A => 0020 0305 -"\xEF\xB9\x8B" => "\x{0020}\x{0305}", # U+FE4B => 0020 0305 -"\xEF\xB9\x8C" => "\x{0020}\x{0305}", # U+FE4C => 0020 0305 -"\xEF\xB9\xB0" => "\x{0020}\x{064B}", # U+FE70 => 0020 064B -"\xEF\xB9\xB1" => "\x{0640}\x{064B}", # U+FE71 => 0640 064B -"\xEF\xB9\xB2" => "\x{0020}\x{064C}", # U+FE72 => 0020 064C -"\xEF\xB9\xB4" => "\x{0020}\x{064D}", # U+FE74 => 0020 064D -"\xEF\xB9\xB6" => "\x{0020}\x{064E}", # U+FE76 => 0020 064E -"\xEF\xB9\xB7" => "\x{0640}\x{064E}", # U+FE77 => 0640 064E -"\xEF\xB9\xB8" => "\x{0020}\x{064F}", # U+FE78 => 0020 064F -"\xEF\xB9\xB9" => "\x{0640}\x{064F}", # U+FE79 => 0640 064F -"\xEF\xB9\xBA" => "\x{0020}\x{0650}", # U+FE7A => 0020 0650 -"\xEF\xB9\xBB" => "\x{0640}\x{0650}", # U+FE7B => 0640 0650 -"\xEF\xB9\xBC" => "\x{0020}\x{0651}", # U+FE7C => 0020 0651 -"\xEF\xB9\xBD" => "\x{0640}\x{0651}", # U+FE7D => 0640 0651 -"\xEF\xB9\xBE" => "\x{0020}\x{0652}", # U+FE7E => 0020 0652 -"\xEF\xB9\xBF" => "\x{0640}\x{0652}", # U+FE7F => 0640 0652 -"\xEF\xBB\xB5" => "\x{0644}\x{0622}", # U+FEF5 => 0644 0622 -"\xEF\xBB\xB6" => "\x{0644}\x{0622}", # U+FEF6 => 0644 0622 -"\xEF\xBB\xB7" => "\x{0644}\x{0623}", # U+FEF7 => 0644 0623 -"\xEF\xBB\xB8" => "\x{0644}\x{0623}", # U+FEF8 => 0644 0623 -"\xEF\xBB\xB9" => "\x{0644}\x{0625}", # U+FEF9 => 0644 0625 -"\xEF\xBB\xBA" => "\x{0644}\x{0625}", # U+FEFA => 0644 0625 -"\xEF\xBB\xBB" => "\x{0644}\x{0627}", # U+FEFB => 0644 0627 -"\xEF\xBB\xBC" => "\x{0644}\x{0627}", # U+FEFC => 0644 0627 -"\xEF\xBB\xBF" => "", # U+FEFF => -"\xEF\xBE\xA0" => "", # U+FFA0 => -"\xEF\xBF\xA3" => "\x{0020}\x{0304}", # U+FFE3 => 0020 0304 -"\xEF\xBF\xB0" => "", # U+FFF0 => -"\xEF\xBF\xB1" => "", # U+FFF1 => -"\xEF\xBF\xB2" => "", # U+FFF2 => -"\xEF\xBF\xB3" => "", # U+FFF3 => -"\xEF\xBF\xB4" => "", # U+FFF4 => -"\xEF\xBF\xB5" => "", # U+FFF5 => -"\xEF\xBF\xB6" => "", # U+FFF6 => -"\xEF\xBF\xB7" => "", # U+FFF7 => -"\xEF\xBF\xB8" => "", # U+FFF8 => -"\xF0\x9B\xB2\xA0" => "", # U+1BCA0 => -"\xF0\x9B\xB2\xA1" => "", # U+1BCA1 => -"\xF0\x9B\xB2\xA2" => "", # U+1BCA2 => -"\xF0\x9B\xB2\xA3" => "", # U+1BCA3 => -"\xF0\x9D\x85\x9E" => "\x{1D157}\x{1D165}", # U+1D15E => 1D157 1D165 -"\xF0\x9D\x85\x9F" => "\x{1D158}\x{1D165}", # U+1D15F => 1D158 1D165 -"\xF0\x9D\x85\xA0" => "\x{1D158}\x{1D165}\x{1D16E}", # U+1D160 => 1D158 1D165 1D16E -"\xF0\x9D\x85\xA1" => "\x{1D158}\x{1D165}\x{1D16F}", # U+1D161 => 1D158 1D165 1D16F -"\xF0\x9D\x85\xA2" => "\x{1D158}\x{1D165}\x{1D170}", # U+1D162 => 1D158 1D165 1D170 -"\xF0\x9D\x85\xA3" => "\x{1D158}\x{1D165}\x{1D171}", # U+1D163 => 1D158 1D165 1D171 -"\xF0\x9D\x85\xA4" => "\x{1D158}\x{1D165}\x{1D172}", # U+1D164 => 1D158 1D165 1D172 -"\xF0\x9D\x85\xB3" => "", # U+1D173 => -"\xF0\x9D\x85\xB4" => "", # U+1D174 => -"\xF0\x9D\x85\xB5" => "", # U+1D175 => -"\xF0\x9D\x85\xB6" => "", # U+1D176 => -"\xF0\x9D\x85\xB7" => "", # U+1D177 => -"\xF0\x9D\x85\xB8" => "", # U+1D178 => -"\xF0\x9D\x85\xB9" => "", # U+1D179 => -"\xF0\x9D\x85\xBA" => "", # U+1D17A => -"\xF0\x9D\x86\xBB" => "\x{1D1B9}\x{1D165}", # U+1D1BB => 1D1B9 1D165 -"\xF0\x9D\x86\xBC" => "\x{1D1BA}\x{1D165}", # U+1D1BC => 1D1BA 1D165 -"\xF0\x9D\x86\xBD" => "\x{1D1B9}\x{1D165}\x{1D16E}", # U+1D1BD => 1D1B9 1D165 1D16E -"\xF0\x9D\x86\xBE" => "\x{1D1BA}\x{1D165}\x{1D16E}", # U+1D1BE => 1D1BA 1D165 1D16E -"\xF0\x9D\x86\xBF" => "\x{1D1B9}\x{1D165}\x{1D16F}", # U+1D1BF => 1D1B9 1D165 1D16F -"\xF0\x9D\x87\x80" => "\x{1D1BA}\x{1D165}\x{1D16F}", # U+1D1C0 => 1D1BA 1D165 1D16F -"\xF0\x9F\x84\x80" => "\x{0030}\x{002E}", # U+1F100 => 0030 002E -"\xF0\x9F\x84\x81" => "\x{0030}\x{002C}", # U+1F101 => 0030 002C -"\xF0\x9F\x84\x82" => "\x{0031}\x{002C}", # U+1F102 => 0031 002C -"\xF0\x9F\x84\x83" => "\x{0032}\x{002C}", # U+1F103 => 0032 002C -"\xF0\x9F\x84\x84" => "\x{0033}\x{002C}", # U+1F104 => 0033 002C -"\xF0\x9F\x84\x85" => "\x{0034}\x{002C}", # U+1F105 => 0034 002C -"\xF0\x9F\x84\x86" => "\x{0035}\x{002C}", # U+1F106 => 0035 002C -"\xF0\x9F\x84\x87" => "\x{0036}\x{002C}", # U+1F107 => 0036 002C -"\xF0\x9F\x84\x88" => "\x{0037}\x{002C}", # U+1F108 => 0037 002C -"\xF0\x9F\x84\x89" => "\x{0038}\x{002C}", # U+1F109 => 0038 002C -"\xF0\x9F\x84\x8A" => "\x{0039}\x{002C}", # U+1F10A => 0039 002C -"\xF0\x9F\x84\x90" => "\x{0028}\x{0061}\x{0029}", # U+1F110 => 0028 0061 0029 -"\xF0\x9F\x84\x91" => "\x{0028}\x{0062}\x{0029}", # U+1F111 => 0028 0062 0029 -"\xF0\x9F\x84\x92" => "\x{0028}\x{0063}\x{0029}", # U+1F112 => 0028 0063 0029 -"\xF0\x9F\x84\x93" => "\x{0028}\x{0064}\x{0029}", # U+1F113 => 0028 0064 0029 -"\xF0\x9F\x84\x94" => "\x{0028}\x{0065}\x{0029}", # U+1F114 => 0028 0065 0029 -"\xF0\x9F\x84\x95" => "\x{0028}\x{0066}\x{0029}", # U+1F115 => 0028 0066 0029 -"\xF0\x9F\x84\x96" => "\x{0028}\x{0067}\x{0029}", # U+1F116 => 0028 0067 0029 -"\xF0\x9F\x84\x97" => "\x{0028}\x{0068}\x{0029}", # U+1F117 => 0028 0068 0029 -"\xF0\x9F\x84\x98" => "\x{0028}\x{0069}\x{0029}", # U+1F118 => 0028 0069 0029 -"\xF0\x9F\x84\x99" => "\x{0028}\x{006A}\x{0029}", # U+1F119 => 0028 006A 0029 -"\xF0\x9F\x84\x9A" => "\x{0028}\x{006B}\x{0029}", # U+1F11A => 0028 006B 0029 -"\xF0\x9F\x84\x9B" => "\x{0028}\x{006C}\x{0029}", # U+1F11B => 0028 006C 0029 -"\xF0\x9F\x84\x9C" => "\x{0028}\x{006D}\x{0029}", # U+1F11C => 0028 006D 0029 -"\xF0\x9F\x84\x9D" => "\x{0028}\x{006E}\x{0029}", # U+1F11D => 0028 006E 0029 -"\xF0\x9F\x84\x9E" => "\x{0028}\x{006F}\x{0029}", # U+1F11E => 0028 006F 0029 -"\xF0\x9F\x84\x9F" => "\x{0028}\x{0070}\x{0029}", # U+1F11F => 0028 0070 0029 -"\xF0\x9F\x84\xA0" => "\x{0028}\x{0071}\x{0029}", # U+1F120 => 0028 0071 0029 -"\xF0\x9F\x84\xA1" => "\x{0028}\x{0072}\x{0029}", # U+1F121 => 0028 0072 0029 -"\xF0\x9F\x84\xA2" => "\x{0028}\x{0073}\x{0029}", # U+1F122 => 0028 0073 0029 -"\xF0\x9F\x84\xA3" => "\x{0028}\x{0074}\x{0029}", # U+1F123 => 0028 0074 0029 -"\xF0\x9F\x84\xA4" => "\x{0028}\x{0075}\x{0029}", # U+1F124 => 0028 0075 0029 -"\xF0\x9F\x84\xA5" => "\x{0028}\x{0076}\x{0029}", # U+1F125 => 0028 0076 0029 -"\xF0\x9F\x84\xA6" => "\x{0028}\x{0077}\x{0029}", # U+1F126 => 0028 0077 0029 -"\xF0\x9F\x84\xA7" => "\x{0028}\x{0078}\x{0029}", # U+1F127 => 0028 0078 0029 -"\xF0\x9F\x84\xA8" => "\x{0028}\x{0079}\x{0029}", # U+1F128 => 0028 0079 0029 -"\xF0\x9F\x84\xA9" => "\x{0028}\x{007A}\x{0029}", # U+1F129 => 0028 007A 0029 -"\xF0\x9F\x84\xAA" => "\x{3014}\x{0073}\x{3015}", # U+1F12A => 3014 0073 3015 -"\xF0\x9F\x84\xAD" => "\x{0063}\x{0064}", # U+1F12D => 0063 0064 -"\xF0\x9F\x84\xAE" => "\x{0077}\x{007A}", # U+1F12E => 0077 007A -"\xF0\x9F\x85\x8A" => "\x{0068}\x{0076}", # U+1F14A => 0068 0076 -"\xF0\x9F\x85\x8B" => "\x{006D}\x{0076}", # U+1F14B => 006D 0076 -"\xF0\x9F\x85\x8C" => "\x{0073}\x{0064}", # U+1F14C => 0073 0064 -"\xF0\x9F\x85\x8D" => "\x{0073}\x{0073}", # U+1F14D => 0073 0073 -"\xF0\x9F\x85\x8E" => "\x{0070}\x{0070}\x{0076}", # U+1F14E => 0070 0070 0076 -"\xF0\x9F\x85\x8F" => "\x{0077}\x{0063}", # U+1F14F => 0077 0063 -"\xF0\x9F\x85\xAA" => "\x{006D}\x{0063}", # U+1F16A => 006D 0063 -"\xF0\x9F\x85\xAB" => "\x{006D}\x{0064}", # U+1F16B => 006D 0064 -"\xF0\x9F\x86\x90" => "\x{0064}\x{006A}", # U+1F190 => 0064 006A -"\xF0\x9F\x88\x80" => "\x{307B}\x{304B}", # U+1F200 => 307B 304B -"\xF0\x9F\x88\x81" => "\x{30B3}\x{30B3}", # U+1F201 => 30B3 30B3 -"\xF0\x9F\x89\x80" => "\x{3014}\x{672C}\x{3015}", # U+1F240 => 3014 672C 3015 -"\xF0\x9F\x89\x81" => "\x{3014}\x{4E09}\x{3015}", # U+1F241 => 3014 4E09 3015 -"\xF0\x9F\x89\x82" => "\x{3014}\x{4E8C}\x{3015}", # U+1F242 => 3014 4E8C 3015 -"\xF0\x9F\x89\x83" => "\x{3014}\x{5B89}\x{3015}", # U+1F243 => 3014 5B89 3015 -"\xF0\x9F\x89\x84" => "\x{3014}\x{70B9}\x{3015}", # U+1F244 => 3014 70B9 3015 -"\xF0\x9F\x89\x85" => "\x{3014}\x{6253}\x{3015}", # U+1F245 => 3014 6253 3015 -"\xF0\x9F\x89\x86" => "\x{3014}\x{76D7}\x{3015}", # U+1F246 => 3014 76D7 3015 -"\xF0\x9F\x89\x87" => "\x{3014}\x{52DD}\x{3015}", # U+1F247 => 3014 52DD 3015 -"\xF0\x9F\x89\x88" => "\x{3014}\x{6557}\x{3015}", # U+1F248 => 3014 6557 3015 -"\xF3\xA0\x80\x80" => "", # U+E0000 => -"\xF3\xA0\x80\x81" => "", # U+E0001 => -"\xF3\xA0\x80\x82" => "", # U+E0002 => -"\xF3\xA0\x80\x83" => "", # U+E0003 => -"\xF3\xA0\x80\x84" => "", # U+E0004 => -"\xF3\xA0\x80\x85" => "", # U+E0005 => -"\xF3\xA0\x80\x86" => "", # U+E0006 => -"\xF3\xA0\x80\x87" => "", # U+E0007 => -"\xF3\xA0\x80\x88" => "", # U+E0008 => -"\xF3\xA0\x80\x89" => "", # U+E0009 => -"\xF3\xA0\x80\x8A" => "", # U+E000A => -"\xF3\xA0\x80\x8B" => "", # U+E000B => -"\xF3\xA0\x80\x8C" => "", # U+E000C => -"\xF3\xA0\x80\x8D" => "", # U+E000D => -"\xF3\xA0\x80\x8E" => "", # U+E000E => -"\xF3\xA0\x80\x8F" => "", # U+E000F => -"\xF3\xA0\x80\x90" => "", # U+E0010 => -"\xF3\xA0\x80\x91" => "", # U+E0011 => -"\xF3\xA0\x80\x92" => "", # U+E0012 => -"\xF3\xA0\x80\x93" => "", # U+E0013 => -"\xF3\xA0\x80\x94" => "", # U+E0014 => -"\xF3\xA0\x80\x95" => "", # U+E0015 => -"\xF3\xA0\x80\x96" => "", # U+E0016 => -"\xF3\xA0\x80\x97" => "", # U+E0017 => -"\xF3\xA0\x80\x98" => "", # U+E0018 => -"\xF3\xA0\x80\x99" => "", # U+E0019 => -"\xF3\xA0\x80\x9A" => "", # U+E001A => -"\xF3\xA0\x80\x9B" => "", # U+E001B => -"\xF3\xA0\x80\x9C" => "", # U+E001C => -"\xF3\xA0\x80\x9D" => "", # U+E001D => -"\xF3\xA0\x80\x9E" => "", # U+E001E => -"\xF3\xA0\x80\x9F" => "", # U+E001F => -"\xF3\xA0\x80\xA0" => "", # U+E0020 => -"\xF3\xA0\x80\xA1" => "", # U+E0021 => -"\xF3\xA0\x80\xA2" => "", # U+E0022 => -"\xF3\xA0\x80\xA3" => "", # U+E0023 => -"\xF3\xA0\x80\xA4" => "", # U+E0024 => -"\xF3\xA0\x80\xA5" => "", # U+E0025 => -"\xF3\xA0\x80\xA6" => "", # U+E0026 => -"\xF3\xA0\x80\xA7" => "", # U+E0027 => -"\xF3\xA0\x80\xA8" => "", # U+E0028 => -"\xF3\xA0\x80\xA9" => "", # U+E0029 => -"\xF3\xA0\x80\xAA" => "", # U+E002A => -"\xF3\xA0\x80\xAB" => "", # U+E002B => -"\xF3\xA0\x80\xAC" => "", # U+E002C => -"\xF3\xA0\x80\xAD" => "", # U+E002D => -"\xF3\xA0\x80\xAE" => "", # U+E002E => -"\xF3\xA0\x80\xAF" => "", # U+E002F => -"\xF3\xA0\x80\xB0" => "", # U+E0030 => -"\xF3\xA0\x80\xB1" => "", # U+E0031 => -"\xF3\xA0\x80\xB2" => "", # U+E0032 => -"\xF3\xA0\x80\xB3" => "", # U+E0033 => -"\xF3\xA0\x80\xB4" => "", # U+E0034 => -"\xF3\xA0\x80\xB5" => "", # U+E0035 => -"\xF3\xA0\x80\xB6" => "", # U+E0036 => -"\xF3\xA0\x80\xB7" => "", # U+E0037 => -"\xF3\xA0\x80\xB8" => "", # U+E0038 => -"\xF3\xA0\x80\xB9" => "", # U+E0039 => -"\xF3\xA0\x80\xBA" => "", # U+E003A => -"\xF3\xA0\x80\xBB" => "", # U+E003B => -"\xF3\xA0\x80\xBC" => "", # U+E003C => -"\xF3\xA0\x80\xBD" => "", # U+E003D => -"\xF3\xA0\x80\xBE" => "", # U+E003E => -"\xF3\xA0\x80\xBF" => "", # U+E003F => -"\xF3\xA0\x81\x80" => "", # U+E0040 => -"\xF3\xA0\x81\x81" => "", # U+E0041 => -"\xF3\xA0\x81\x82" => "", # U+E0042 => -"\xF3\xA0\x81\x83" => "", # U+E0043 => -"\xF3\xA0\x81\x84" => "", # U+E0044 => -"\xF3\xA0\x81\x85" => "", # U+E0045 => -"\xF3\xA0\x81\x86" => "", # U+E0046 => -"\xF3\xA0\x81\x87" => "", # U+E0047 => -"\xF3\xA0\x81\x88" => "", # U+E0048 => -"\xF3\xA0\x81\x89" => "", # U+E0049 => -"\xF3\xA0\x81\x8A" => "", # U+E004A => -"\xF3\xA0\x81\x8B" => "", # U+E004B => -"\xF3\xA0\x81\x8C" => "", # U+E004C => -"\xF3\xA0\x81\x8D" => "", # U+E004D => -"\xF3\xA0\x81\x8E" => "", # U+E004E => -"\xF3\xA0\x81\x8F" => "", # U+E004F => -"\xF3\xA0\x81\x90" => "", # U+E0050 => -"\xF3\xA0\x81\x91" => "", # U+E0051 => -"\xF3\xA0\x81\x92" => "", # U+E0052 => -"\xF3\xA0\x81\x93" => "", # U+E0053 => -"\xF3\xA0\x81\x94" => "", # U+E0054 => -"\xF3\xA0\x81\x95" => "", # U+E0055 => -"\xF3\xA0\x81\x96" => "", # U+E0056 => -"\xF3\xA0\x81\x97" => "", # U+E0057 => -"\xF3\xA0\x81\x98" => "", # U+E0058 => -"\xF3\xA0\x81\x99" => "", # U+E0059 => -"\xF3\xA0\x81\x9A" => "", # U+E005A => -"\xF3\xA0\x81\x9B" => "", # U+E005B => -"\xF3\xA0\x81\x9C" => "", # U+E005C => -"\xF3\xA0\x81\x9D" => "", # U+E005D => -"\xF3\xA0\x81\x9E" => "", # U+E005E => -"\xF3\xA0\x81\x9F" => "", # U+E005F => -"\xF3\xA0\x81\xA0" => "", # U+E0060 => -"\xF3\xA0\x81\xA1" => "", # U+E0061 => -"\xF3\xA0\x81\xA2" => "", # U+E0062 => -"\xF3\xA0\x81\xA3" => "", # U+E0063 => -"\xF3\xA0\x81\xA4" => "", # U+E0064 => -"\xF3\xA0\x81\xA5" => "", # U+E0065 => -"\xF3\xA0\x81\xA6" => "", # U+E0066 => -"\xF3\xA0\x81\xA7" => "", # U+E0067 => -"\xF3\xA0\x81\xA8" => "", # U+E0068 => -"\xF3\xA0\x81\xA9" => "", # U+E0069 => -"\xF3\xA0\x81\xAA" => "", # U+E006A => -"\xF3\xA0\x81\xAB" => "", # U+E006B => -"\xF3\xA0\x81\xAC" => "", # U+E006C => -"\xF3\xA0\x81\xAD" => "", # U+E006D => -"\xF3\xA0\x81\xAE" => "", # U+E006E => -"\xF3\xA0\x81\xAF" => "", # U+E006F => -"\xF3\xA0\x81\xB0" => "", # U+E0070 => -"\xF3\xA0\x81\xB1" => "", # U+E0071 => -"\xF3\xA0\x81\xB2" => "", # U+E0072 => -"\xF3\xA0\x81\xB3" => "", # U+E0073 => -"\xF3\xA0\x81\xB4" => "", # U+E0074 => -"\xF3\xA0\x81\xB5" => "", # U+E0075 => -"\xF3\xA0\x81\xB6" => "", # U+E0076 => -"\xF3\xA0\x81\xB7" => "", # U+E0077 => -"\xF3\xA0\x81\xB8" => "", # U+E0078 => -"\xF3\xA0\x81\xB9" => "", # U+E0079 => -"\xF3\xA0\x81\xBA" => "", # U+E007A => -"\xF3\xA0\x81\xBB" => "", # U+E007B => -"\xF3\xA0\x81\xBC" => "", # U+E007C => -"\xF3\xA0\x81\xBD" => "", # U+E007D => -"\xF3\xA0\x81\xBE" => "", # U+E007E => -"\xF3\xA0\x81\xBF" => "", # U+E007F => -"\xF3\xA0\x82\x80" => "", # U+E0080 => -"\xF3\xA0\x82\x81" => "", # U+E0081 => -"\xF3\xA0\x82\x82" => "", # U+E0082 => -"\xF3\xA0\x82\x83" => "", # U+E0083 => -"\xF3\xA0\x82\x84" => "", # U+E0084 => -"\xF3\xA0\x82\x85" => "", # U+E0085 => -"\xF3\xA0\x82\x86" => "", # U+E0086 => -"\xF3\xA0\x82\x87" => "", # U+E0087 => -"\xF3\xA0\x82\x88" => "", # U+E0088 => -"\xF3\xA0\x82\x89" => "", # U+E0089 => -"\xF3\xA0\x82\x8A" => "", # U+E008A => -"\xF3\xA0\x82\x8B" => "", # U+E008B => -"\xF3\xA0\x82\x8C" => "", # U+E008C => -"\xF3\xA0\x82\x8D" => "", # U+E008D => -"\xF3\xA0\x82\x8E" => "", # U+E008E => -"\xF3\xA0\x82\x8F" => "", # U+E008F => -"\xF3\xA0\x82\x90" => "", # U+E0090 => -"\xF3\xA0\x82\x91" => "", # U+E0091 => -"\xF3\xA0\x82\x92" => "", # U+E0092 => -"\xF3\xA0\x82\x93" => "", # U+E0093 => -"\xF3\xA0\x82\x94" => "", # U+E0094 => -"\xF3\xA0\x82\x95" => "", # U+E0095 => -"\xF3\xA0\x82\x96" => "", # U+E0096 => -"\xF3\xA0\x82\x97" => "", # U+E0097 => -"\xF3\xA0\x82\x98" => "", # U+E0098 => -"\xF3\xA0\x82\x99" => "", # U+E0099 => -"\xF3\xA0\x82\x9A" => "", # U+E009A => -"\xF3\xA0\x82\x9B" => "", # U+E009B => -"\xF3\xA0\x82\x9C" => "", # U+E009C => -"\xF3\xA0\x82\x9D" => "", # U+E009D => -"\xF3\xA0\x82\x9E" => "", # U+E009E => -"\xF3\xA0\x82\x9F" => "", # U+E009F => -"\xF3\xA0\x82\xA0" => "", # U+E00A0 => -"\xF3\xA0\x82\xA1" => "", # U+E00A1 => -"\xF3\xA0\x82\xA2" => "", # U+E00A2 => -"\xF3\xA0\x82\xA3" => "", # U+E00A3 => -"\xF3\xA0\x82\xA4" => "", # U+E00A4 => -"\xF3\xA0\x82\xA5" => "", # U+E00A5 => -"\xF3\xA0\x82\xA6" => "", # U+E00A6 => -"\xF3\xA0\x82\xA7" => "", # U+E00A7 => -"\xF3\xA0\x82\xA8" => "", # U+E00A8 => -"\xF3\xA0\x82\xA9" => "", # U+E00A9 => -"\xF3\xA0\x82\xAA" => "", # U+E00AA => -"\xF3\xA0\x82\xAB" => "", # U+E00AB => -"\xF3\xA0\x82\xAC" => "", # U+E00AC => -"\xF3\xA0\x82\xAD" => "", # U+E00AD => -"\xF3\xA0\x82\xAE" => "", # U+E00AE => -"\xF3\xA0\x82\xAF" => "", # U+E00AF => -"\xF3\xA0\x82\xB0" => "", # U+E00B0 => -"\xF3\xA0\x82\xB1" => "", # U+E00B1 => -"\xF3\xA0\x82\xB2" => "", # U+E00B2 => -"\xF3\xA0\x82\xB3" => "", # U+E00B3 => -"\xF3\xA0\x82\xB4" => "", # U+E00B4 => -"\xF3\xA0\x82\xB5" => "", # U+E00B5 => -"\xF3\xA0\x82\xB6" => "", # U+E00B6 => -"\xF3\xA0\x82\xB7" => "", # U+E00B7 => -"\xF3\xA0\x82\xB8" => "", # U+E00B8 => -"\xF3\xA0\x82\xB9" => "", # U+E00B9 => -"\xF3\xA0\x82\xBA" => "", # U+E00BA => -"\xF3\xA0\x82\xBB" => "", # U+E00BB => -"\xF3\xA0\x82\xBC" => "", # U+E00BC => -"\xF3\xA0\x82\xBD" => "", # U+E00BD => -"\xF3\xA0\x82\xBE" => "", # U+E00BE => -"\xF3\xA0\x82\xBF" => "", # U+E00BF => -"\xF3\xA0\x83\x80" => "", # U+E00C0 => -"\xF3\xA0\x83\x81" => "", # U+E00C1 => -"\xF3\xA0\x83\x82" => "", # U+E00C2 => -"\xF3\xA0\x83\x83" => "", # U+E00C3 => -"\xF3\xA0\x83\x84" => "", # U+E00C4 => -"\xF3\xA0\x83\x85" => "", # U+E00C5 => -"\xF3\xA0\x83\x86" => "", # U+E00C6 => -"\xF3\xA0\x83\x87" => "", # U+E00C7 => -"\xF3\xA0\x83\x88" => "", # U+E00C8 => -"\xF3\xA0\x83\x89" => "", # U+E00C9 => -"\xF3\xA0\x83\x8A" => "", # U+E00CA => -"\xF3\xA0\x83\x8B" => "", # U+E00CB => -"\xF3\xA0\x83\x8C" => "", # U+E00CC => -"\xF3\xA0\x83\x8D" => "", # U+E00CD => -"\xF3\xA0\x83\x8E" => "", # U+E00CE => -"\xF3\xA0\x83\x8F" => "", # U+E00CF => -"\xF3\xA0\x83\x90" => "", # U+E00D0 => -"\xF3\xA0\x83\x91" => "", # U+E00D1 => -"\xF3\xA0\x83\x92" => "", # U+E00D2 => -"\xF3\xA0\x83\x93" => "", # U+E00D3 => -"\xF3\xA0\x83\x94" => "", # U+E00D4 => -"\xF3\xA0\x83\x95" => "", # U+E00D5 => -"\xF3\xA0\x83\x96" => "", # U+E00D6 => -"\xF3\xA0\x83\x97" => "", # U+E00D7 => -"\xF3\xA0\x83\x98" => "", # U+E00D8 => -"\xF3\xA0\x83\x99" => "", # U+E00D9 => -"\xF3\xA0\x83\x9A" => "", # U+E00DA => -"\xF3\xA0\x83\x9B" => "", # U+E00DB => -"\xF3\xA0\x83\x9C" => "", # U+E00DC => -"\xF3\xA0\x83\x9D" => "", # U+E00DD => -"\xF3\xA0\x83\x9E" => "", # U+E00DE => -"\xF3\xA0\x83\x9F" => "", # U+E00DF => -"\xF3\xA0\x83\xA0" => "", # U+E00E0 => -"\xF3\xA0\x83\xA1" => "", # U+E00E1 => -"\xF3\xA0\x83\xA2" => "", # U+E00E2 => -"\xF3\xA0\x83\xA3" => "", # U+E00E3 => -"\xF3\xA0\x83\xA4" => "", # U+E00E4 => -"\xF3\xA0\x83\xA5" => "", # U+E00E5 => -"\xF3\xA0\x83\xA6" => "", # U+E00E6 => -"\xF3\xA0\x83\xA7" => "", # U+E00E7 => -"\xF3\xA0\x83\xA8" => "", # U+E00E8 => -"\xF3\xA0\x83\xA9" => "", # U+E00E9 => -"\xF3\xA0\x83\xAA" => "", # U+E00EA => -"\xF3\xA0\x83\xAB" => "", # U+E00EB => -"\xF3\xA0\x83\xAC" => "", # U+E00EC => -"\xF3\xA0\x83\xAD" => "", # U+E00ED => -"\xF3\xA0\x83\xAE" => "", # U+E00EE => -"\xF3\xA0\x83\xAF" => "", # U+E00EF => -"\xF3\xA0\x83\xB0" => "", # U+E00F0 => -"\xF3\xA0\x83\xB1" => "", # U+E00F1 => -"\xF3\xA0\x83\xB2" => "", # U+E00F2 => -"\xF3\xA0\x83\xB3" => "", # U+E00F3 => -"\xF3\xA0\x83\xB4" => "", # U+E00F4 => -"\xF3\xA0\x83\xB5" => "", # U+E00F5 => -"\xF3\xA0\x83\xB6" => "", # U+E00F6 => -"\xF3\xA0\x83\xB7" => "", # U+E00F7 => -"\xF3\xA0\x83\xB8" => "", # U+E00F8 => -"\xF3\xA0\x83\xB9" => "", # U+E00F9 => -"\xF3\xA0\x83\xBA" => "", # U+E00FA => -"\xF3\xA0\x83\xBB" => "", # U+E00FB => -"\xF3\xA0\x83\xBC" => "", # U+E00FC => -"\xF3\xA0\x83\xBD" => "", # U+E00FD => -"\xF3\xA0\x83\xBE" => "", # U+E00FE => -"\xF3\xA0\x83\xBF" => "", # U+E00FF => -"\xF3\xA0\x84\x80" => "", # U+E0100 => -"\xF3\xA0\x84\x81" => "", # U+E0101 => -"\xF3\xA0\x84\x82" => "", # U+E0102 => -"\xF3\xA0\x84\x83" => "", # U+E0103 => -"\xF3\xA0\x84\x84" => "", # U+E0104 => -"\xF3\xA0\x84\x85" => "", # U+E0105 => -"\xF3\xA0\x84\x86" => "", # U+E0106 => -"\xF3\xA0\x84\x87" => "", # U+E0107 => -"\xF3\xA0\x84\x88" => "", # U+E0108 => -"\xF3\xA0\x84\x89" => "", # U+E0109 => -"\xF3\xA0\x84\x8A" => "", # U+E010A => -"\xF3\xA0\x84\x8B" => "", # U+E010B => -"\xF3\xA0\x84\x8C" => "", # U+E010C => -"\xF3\xA0\x84\x8D" => "", # U+E010D => -"\xF3\xA0\x84\x8E" => "", # U+E010E => -"\xF3\xA0\x84\x8F" => "", # U+E010F => -"\xF3\xA0\x84\x90" => "", # U+E0110 => -"\xF3\xA0\x84\x91" => "", # U+E0111 => -"\xF3\xA0\x84\x92" => "", # U+E0112 => -"\xF3\xA0\x84\x93" => "", # U+E0113 => -"\xF3\xA0\x84\x94" => "", # U+E0114 => -"\xF3\xA0\x84\x95" => "", # U+E0115 => -"\xF3\xA0\x84\x96" => "", # U+E0116 => -"\xF3\xA0\x84\x97" => "", # U+E0117 => -"\xF3\xA0\x84\x98" => "", # U+E0118 => -"\xF3\xA0\x84\x99" => "", # U+E0119 => -"\xF3\xA0\x84\x9A" => "", # U+E011A => -"\xF3\xA0\x84\x9B" => "", # U+E011B => -"\xF3\xA0\x84\x9C" => "", # U+E011C => -"\xF3\xA0\x84\x9D" => "", # U+E011D => -"\xF3\xA0\x84\x9E" => "", # U+E011E => -"\xF3\xA0\x84\x9F" => "", # U+E011F => -"\xF3\xA0\x84\xA0" => "", # U+E0120 => -"\xF3\xA0\x84\xA1" => "", # U+E0121 => -"\xF3\xA0\x84\xA2" => "", # U+E0122 => -"\xF3\xA0\x84\xA3" => "", # U+E0123 => -"\xF3\xA0\x84\xA4" => "", # U+E0124 => -"\xF3\xA0\x84\xA5" => "", # U+E0125 => -"\xF3\xA0\x84\xA6" => "", # U+E0126 => -"\xF3\xA0\x84\xA7" => "", # U+E0127 => -"\xF3\xA0\x84\xA8" => "", # U+E0128 => -"\xF3\xA0\x84\xA9" => "", # U+E0129 => -"\xF3\xA0\x84\xAA" => "", # U+E012A => -"\xF3\xA0\x84\xAB" => "", # U+E012B => -"\xF3\xA0\x84\xAC" => "", # U+E012C => -"\xF3\xA0\x84\xAD" => "", # U+E012D => -"\xF3\xA0\x84\xAE" => "", # U+E012E => -"\xF3\xA0\x84\xAF" => "", # U+E012F => -"\xF3\xA0\x84\xB0" => "", # U+E0130 => -"\xF3\xA0\x84\xB1" => "", # U+E0131 => -"\xF3\xA0\x84\xB2" => "", # U+E0132 => -"\xF3\xA0\x84\xB3" => "", # U+E0133 => -"\xF3\xA0\x84\xB4" => "", # U+E0134 => -"\xF3\xA0\x84\xB5" => "", # U+E0135 => -"\xF3\xA0\x84\xB6" => "", # U+E0136 => -"\xF3\xA0\x84\xB7" => "", # U+E0137 => -"\xF3\xA0\x84\xB8" => "", # U+E0138 => -"\xF3\xA0\x84\xB9" => "", # U+E0139 => -"\xF3\xA0\x84\xBA" => "", # U+E013A => -"\xF3\xA0\x84\xBB" => "", # U+E013B => -"\xF3\xA0\x84\xBC" => "", # U+E013C => -"\xF3\xA0\x84\xBD" => "", # U+E013D => -"\xF3\xA0\x84\xBE" => "", # U+E013E => -"\xF3\xA0\x84\xBF" => "", # U+E013F => -"\xF3\xA0\x85\x80" => "", # U+E0140 => -"\xF3\xA0\x85\x81" => "", # U+E0141 => -"\xF3\xA0\x85\x82" => "", # U+E0142 => -"\xF3\xA0\x85\x83" => "", # U+E0143 => -"\xF3\xA0\x85\x84" => "", # U+E0144 => -"\xF3\xA0\x85\x85" => "", # U+E0145 => -"\xF3\xA0\x85\x86" => "", # U+E0146 => -"\xF3\xA0\x85\x87" => "", # U+E0147 => -"\xF3\xA0\x85\x88" => "", # U+E0148 => -"\xF3\xA0\x85\x89" => "", # U+E0149 => -"\xF3\xA0\x85\x8A" => "", # U+E014A => -"\xF3\xA0\x85\x8B" => "", # U+E014B => -"\xF3\xA0\x85\x8C" => "", # U+E014C => -"\xF3\xA0\x85\x8D" => "", # U+E014D => -"\xF3\xA0\x85\x8E" => "", # U+E014E => -"\xF3\xA0\x85\x8F" => "", # U+E014F => -"\xF3\xA0\x85\x90" => "", # U+E0150 => -"\xF3\xA0\x85\x91" => "", # U+E0151 => -"\xF3\xA0\x85\x92" => "", # U+E0152 => -"\xF3\xA0\x85\x93" => "", # U+E0153 => -"\xF3\xA0\x85\x94" => "", # U+E0154 => -"\xF3\xA0\x85\x95" => "", # U+E0155 => -"\xF3\xA0\x85\x96" => "", # U+E0156 => -"\xF3\xA0\x85\x97" => "", # U+E0157 => -"\xF3\xA0\x85\x98" => "", # U+E0158 => -"\xF3\xA0\x85\x99" => "", # U+E0159 => -"\xF3\xA0\x85\x9A" => "", # U+E015A => -"\xF3\xA0\x85\x9B" => "", # U+E015B => -"\xF3\xA0\x85\x9C" => "", # U+E015C => -"\xF3\xA0\x85\x9D" => "", # U+E015D => -"\xF3\xA0\x85\x9E" => "", # U+E015E => -"\xF3\xA0\x85\x9F" => "", # U+E015F => -"\xF3\xA0\x85\xA0" => "", # U+E0160 => -"\xF3\xA0\x85\xA1" => "", # U+E0161 => -"\xF3\xA0\x85\xA2" => "", # U+E0162 => -"\xF3\xA0\x85\xA3" => "", # U+E0163 => -"\xF3\xA0\x85\xA4" => "", # U+E0164 => -"\xF3\xA0\x85\xA5" => "", # U+E0165 => -"\xF3\xA0\x85\xA6" => "", # U+E0166 => -"\xF3\xA0\x85\xA7" => "", # U+E0167 => -"\xF3\xA0\x85\xA8" => "", # U+E0168 => -"\xF3\xA0\x85\xA9" => "", # U+E0169 => -"\xF3\xA0\x85\xAA" => "", # U+E016A => -"\xF3\xA0\x85\xAB" => "", # U+E016B => -"\xF3\xA0\x85\xAC" => "", # U+E016C => -"\xF3\xA0\x85\xAD" => "", # U+E016D => -"\xF3\xA0\x85\xAE" => "", # U+E016E => -"\xF3\xA0\x85\xAF" => "", # U+E016F => -"\xF3\xA0\x85\xB0" => "", # U+E0170 => -"\xF3\xA0\x85\xB1" => "", # U+E0171 => -"\xF3\xA0\x85\xB2" => "", # U+E0172 => -"\xF3\xA0\x85\xB3" => "", # U+E0173 => -"\xF3\xA0\x85\xB4" => "", # U+E0174 => -"\xF3\xA0\x85\xB5" => "", # U+E0175 => -"\xF3\xA0\x85\xB6" => "", # U+E0176 => -"\xF3\xA0\x85\xB7" => "", # U+E0177 => -"\xF3\xA0\x85\xB8" => "", # U+E0178 => -"\xF3\xA0\x85\xB9" => "", # U+E0179 => -"\xF3\xA0\x85\xBA" => "", # U+E017A => -"\xF3\xA0\x85\xBB" => "", # U+E017B => -"\xF3\xA0\x85\xBC" => "", # U+E017C => -"\xF3\xA0\x85\xBD" => "", # U+E017D => -"\xF3\xA0\x85\xBE" => "", # U+E017E => -"\xF3\xA0\x85\xBF" => "", # U+E017F => -"\xF3\xA0\x86\x80" => "", # U+E0180 => -"\xF3\xA0\x86\x81" => "", # U+E0181 => -"\xF3\xA0\x86\x82" => "", # U+E0182 => -"\xF3\xA0\x86\x83" => "", # U+E0183 => -"\xF3\xA0\x86\x84" => "", # U+E0184 => -"\xF3\xA0\x86\x85" => "", # U+E0185 => -"\xF3\xA0\x86\x86" => "", # U+E0186 => -"\xF3\xA0\x86\x87" => "", # U+E0187 => -"\xF3\xA0\x86\x88" => "", # U+E0188 => -"\xF3\xA0\x86\x89" => "", # U+E0189 => -"\xF3\xA0\x86\x8A" => "", # U+E018A => -"\xF3\xA0\x86\x8B" => "", # U+E018B => -"\xF3\xA0\x86\x8C" => "", # U+E018C => -"\xF3\xA0\x86\x8D" => "", # U+E018D => -"\xF3\xA0\x86\x8E" => "", # U+E018E => -"\xF3\xA0\x86\x8F" => "", # U+E018F => -"\xF3\xA0\x86\x90" => "", # U+E0190 => -"\xF3\xA0\x86\x91" => "", # U+E0191 => -"\xF3\xA0\x86\x92" => "", # U+E0192 => -"\xF3\xA0\x86\x93" => "", # U+E0193 => -"\xF3\xA0\x86\x94" => "", # U+E0194 => -"\xF3\xA0\x86\x95" => "", # U+E0195 => -"\xF3\xA0\x86\x96" => "", # U+E0196 => -"\xF3\xA0\x86\x97" => "", # U+E0197 => -"\xF3\xA0\x86\x98" => "", # U+E0198 => -"\xF3\xA0\x86\x99" => "", # U+E0199 => -"\xF3\xA0\x86\x9A" => "", # U+E019A => -"\xF3\xA0\x86\x9B" => "", # U+E019B => -"\xF3\xA0\x86\x9C" => "", # U+E019C => -"\xF3\xA0\x86\x9D" => "", # U+E019D => -"\xF3\xA0\x86\x9E" => "", # U+E019E => -"\xF3\xA0\x86\x9F" => "", # U+E019F => -"\xF3\xA0\x86\xA0" => "", # U+E01A0 => -"\xF3\xA0\x86\xA1" => "", # U+E01A1 => -"\xF3\xA0\x86\xA2" => "", # U+E01A2 => -"\xF3\xA0\x86\xA3" => "", # U+E01A3 => -"\xF3\xA0\x86\xA4" => "", # U+E01A4 => -"\xF3\xA0\x86\xA5" => "", # U+E01A5 => -"\xF3\xA0\x86\xA6" => "", # U+E01A6 => -"\xF3\xA0\x86\xA7" => "", # U+E01A7 => -"\xF3\xA0\x86\xA8" => "", # U+E01A8 => -"\xF3\xA0\x86\xA9" => "", # U+E01A9 => -"\xF3\xA0\x86\xAA" => "", # U+E01AA => -"\xF3\xA0\x86\xAB" => "", # U+E01AB => -"\xF3\xA0\x86\xAC" => "", # U+E01AC => -"\xF3\xA0\x86\xAD" => "", # U+E01AD => -"\xF3\xA0\x86\xAE" => "", # U+E01AE => -"\xF3\xA0\x86\xAF" => "", # U+E01AF => -"\xF3\xA0\x86\xB0" => "", # U+E01B0 => -"\xF3\xA0\x86\xB1" => "", # U+E01B1 => -"\xF3\xA0\x86\xB2" => "", # U+E01B2 => -"\xF3\xA0\x86\xB3" => "", # U+E01B3 => -"\xF3\xA0\x86\xB4" => "", # U+E01B4 => -"\xF3\xA0\x86\xB5" => "", # U+E01B5 => -"\xF3\xA0\x86\xB6" => "", # U+E01B6 => -"\xF3\xA0\x86\xB7" => "", # U+E01B7 => -"\xF3\xA0\x86\xB8" => "", # U+E01B8 => -"\xF3\xA0\x86\xB9" => "", # U+E01B9 => -"\xF3\xA0\x86\xBA" => "", # U+E01BA => -"\xF3\xA0\x86\xBB" => "", # U+E01BB => -"\xF3\xA0\x86\xBC" => "", # U+E01BC => -"\xF3\xA0\x86\xBD" => "", # U+E01BD => -"\xF3\xA0\x86\xBE" => "", # U+E01BE => -"\xF3\xA0\x86\xBF" => "", # U+E01BF => -"\xF3\xA0\x87\x80" => "", # U+E01C0 => -"\xF3\xA0\x87\x81" => "", # U+E01C1 => -"\xF3\xA0\x87\x82" => "", # U+E01C2 => -"\xF3\xA0\x87\x83" => "", # U+E01C3 => -"\xF3\xA0\x87\x84" => "", # U+E01C4 => -"\xF3\xA0\x87\x85" => "", # U+E01C5 => -"\xF3\xA0\x87\x86" => "", # U+E01C6 => -"\xF3\xA0\x87\x87" => "", # U+E01C7 => -"\xF3\xA0\x87\x88" => "", # U+E01C8 => -"\xF3\xA0\x87\x89" => "", # U+E01C9 => -"\xF3\xA0\x87\x8A" => "", # U+E01CA => -"\xF3\xA0\x87\x8B" => "", # U+E01CB => -"\xF3\xA0\x87\x8C" => "", # U+E01CC => -"\xF3\xA0\x87\x8D" => "", # U+E01CD => -"\xF3\xA0\x87\x8E" => "", # U+E01CE => -"\xF3\xA0\x87\x8F" => "", # U+E01CF => -"\xF3\xA0\x87\x90" => "", # U+E01D0 => -"\xF3\xA0\x87\x91" => "", # U+E01D1 => -"\xF3\xA0\x87\x92" => "", # U+E01D2 => -"\xF3\xA0\x87\x93" => "", # U+E01D3 => -"\xF3\xA0\x87\x94" => "", # U+E01D4 => -"\xF3\xA0\x87\x95" => "", # U+E01D5 => -"\xF3\xA0\x87\x96" => "", # U+E01D6 => -"\xF3\xA0\x87\x97" => "", # U+E01D7 => -"\xF3\xA0\x87\x98" => "", # U+E01D8 => -"\xF3\xA0\x87\x99" => "", # U+E01D9 => -"\xF3\xA0\x87\x9A" => "", # U+E01DA => -"\xF3\xA0\x87\x9B" => "", # U+E01DB => -"\xF3\xA0\x87\x9C" => "", # U+E01DC => -"\xF3\xA0\x87\x9D" => "", # U+E01DD => -"\xF3\xA0\x87\x9E" => "", # U+E01DE => -"\xF3\xA0\x87\x9F" => "", # U+E01DF => -"\xF3\xA0\x87\xA0" => "", # U+E01E0 => -"\xF3\xA0\x87\xA1" => "", # U+E01E1 => -"\xF3\xA0\x87\xA2" => "", # U+E01E2 => -"\xF3\xA0\x87\xA3" => "", # U+E01E3 => -"\xF3\xA0\x87\xA4" => "", # U+E01E4 => -"\xF3\xA0\x87\xA5" => "", # U+E01E5 => -"\xF3\xA0\x87\xA6" => "", # U+E01E6 => -"\xF3\xA0\x87\xA7" => "", # U+E01E7 => -"\xF3\xA0\x87\xA8" => "", # U+E01E8 => -"\xF3\xA0\x87\xA9" => "", # U+E01E9 => -"\xF3\xA0\x87\xAA" => "", # U+E01EA => -"\xF3\xA0\x87\xAB" => "", # U+E01EB => -"\xF3\xA0\x87\xAC" => "", # U+E01EC => -"\xF3\xA0\x87\xAD" => "", # U+E01ED => -"\xF3\xA0\x87\xAE" => "", # U+E01EE => -"\xF3\xA0\x87\xAF" => "", # U+E01EF => -"\xF3\xA0\x87\xB0" => "", # U+E01F0 => -"\xF3\xA0\x87\xB1" => "", # U+E01F1 => -"\xF3\xA0\x87\xB2" => "", # U+E01F2 => -"\xF3\xA0\x87\xB3" => "", # U+E01F3 => -"\xF3\xA0\x87\xB4" => "", # U+E01F4 => -"\xF3\xA0\x87\xB5" => "", # U+E01F5 => -"\xF3\xA0\x87\xB6" => "", # U+E01F6 => -"\xF3\xA0\x87\xB7" => "", # U+E01F7 => -"\xF3\xA0\x87\xB8" => "", # U+E01F8 => -"\xF3\xA0\x87\xB9" => "", # U+E01F9 => -"\xF3\xA0\x87\xBA" => "", # U+E01FA => -"\xF3\xA0\x87\xBB" => "", # U+E01FB => -"\xF3\xA0\x87\xBC" => "", # U+E01FC => -"\xF3\xA0\x87\xBD" => "", # U+E01FD => -"\xF3\xA0\x87\xBE" => "", # U+E01FE => -"\xF3\xA0\x87\xBF" => "", # U+E01FF => -"\xF3\xA0\x88\x80" => "", # U+E0200 => -"\xF3\xA0\x88\x81" => "", # U+E0201 => -"\xF3\xA0\x88\x82" => "", # U+E0202 => -"\xF3\xA0\x88\x83" => "", # U+E0203 => -"\xF3\xA0\x88\x84" => "", # U+E0204 => -"\xF3\xA0\x88\x85" => "", # U+E0205 => -"\xF3\xA0\x88\x86" => "", # U+E0206 => -"\xF3\xA0\x88\x87" => "", # U+E0207 => -"\xF3\xA0\x88\x88" => "", # U+E0208 => -"\xF3\xA0\x88\x89" => "", # U+E0209 => -"\xF3\xA0\x88\x8A" => "", # U+E020A => -"\xF3\xA0\x88\x8B" => "", # U+E020B => -"\xF3\xA0\x88\x8C" => "", # U+E020C => -"\xF3\xA0\x88\x8D" => "", # U+E020D => -"\xF3\xA0\x88\x8E" => "", # U+E020E => -"\xF3\xA0\x88\x8F" => "", # U+E020F => -"\xF3\xA0\x88\x90" => "", # U+E0210 => -"\xF3\xA0\x88\x91" => "", # U+E0211 => -"\xF3\xA0\x88\x92" => "", # U+E0212 => -"\xF3\xA0\x88\x93" => "", # U+E0213 => -"\xF3\xA0\x88\x94" => "", # U+E0214 => -"\xF3\xA0\x88\x95" => "", # U+E0215 => -"\xF3\xA0\x88\x96" => "", # U+E0216 => -"\xF3\xA0\x88\x97" => "", # U+E0217 => -"\xF3\xA0\x88\x98" => "", # U+E0218 => -"\xF3\xA0\x88\x99" => "", # U+E0219 => -"\xF3\xA0\x88\x9A" => "", # U+E021A => -"\xF3\xA0\x88\x9B" => "", # U+E021B => -"\xF3\xA0\x88\x9C" => "", # U+E021C => -"\xF3\xA0\x88\x9D" => "", # U+E021D => -"\xF3\xA0\x88\x9E" => "", # U+E021E => -"\xF3\xA0\x88\x9F" => "", # U+E021F => -"\xF3\xA0\x88\xA0" => "", # U+E0220 => -"\xF3\xA0\x88\xA1" => "", # U+E0221 => -"\xF3\xA0\x88\xA2" => "", # U+E0222 => -"\xF3\xA0\x88\xA3" => "", # U+E0223 => -"\xF3\xA0\x88\xA4" => "", # U+E0224 => -"\xF3\xA0\x88\xA5" => "", # U+E0225 => -"\xF3\xA0\x88\xA6" => "", # U+E0226 => -"\xF3\xA0\x88\xA7" => "", # U+E0227 => -"\xF3\xA0\x88\xA8" => "", # U+E0228 => -"\xF3\xA0\x88\xA9" => "", # U+E0229 => -"\xF3\xA0\x88\xAA" => "", # U+E022A => -"\xF3\xA0\x88\xAB" => "", # U+E022B => -"\xF3\xA0\x88\xAC" => "", # U+E022C => -"\xF3\xA0\x88\xAD" => "", # U+E022D => -"\xF3\xA0\x88\xAE" => "", # U+E022E => -"\xF3\xA0\x88\xAF" => "", # U+E022F => -"\xF3\xA0\x88\xB0" => "", # U+E0230 => -"\xF3\xA0\x88\xB1" => "", # U+E0231 => -"\xF3\xA0\x88\xB2" => "", # U+E0232 => -"\xF3\xA0\x88\xB3" => "", # U+E0233 => -"\xF3\xA0\x88\xB4" => "", # U+E0234 => -"\xF3\xA0\x88\xB5" => "", # U+E0235 => -"\xF3\xA0\x88\xB6" => "", # U+E0236 => -"\xF3\xA0\x88\xB7" => "", # U+E0237 => -"\xF3\xA0\x88\xB8" => "", # U+E0238 => -"\xF3\xA0\x88\xB9" => "", # U+E0239 => -"\xF3\xA0\x88\xBA" => "", # U+E023A => -"\xF3\xA0\x88\xBB" => "", # U+E023B => -"\xF3\xA0\x88\xBC" => "", # U+E023C => -"\xF3\xA0\x88\xBD" => "", # U+E023D => -"\xF3\xA0\x88\xBE" => "", # U+E023E => -"\xF3\xA0\x88\xBF" => "", # U+E023F => -"\xF3\xA0\x89\x80" => "", # U+E0240 => -"\xF3\xA0\x89\x81" => "", # U+E0241 => -"\xF3\xA0\x89\x82" => "", # U+E0242 => -"\xF3\xA0\x89\x83" => "", # U+E0243 => -"\xF3\xA0\x89\x84" => "", # U+E0244 => -"\xF3\xA0\x89\x85" => "", # U+E0245 => -"\xF3\xA0\x89\x86" => "", # U+E0246 => -"\xF3\xA0\x89\x87" => "", # U+E0247 => -"\xF3\xA0\x89\x88" => "", # U+E0248 => -"\xF3\xA0\x89\x89" => "", # U+E0249 => -"\xF3\xA0\x89\x8A" => "", # U+E024A => -"\xF3\xA0\x89\x8B" => "", # U+E024B => -"\xF3\xA0\x89\x8C" => "", # U+E024C => -"\xF3\xA0\x89\x8D" => "", # U+E024D => -"\xF3\xA0\x89\x8E" => "", # U+E024E => -"\xF3\xA0\x89\x8F" => "", # U+E024F => -"\xF3\xA0\x89\x90" => "", # U+E0250 => -"\xF3\xA0\x89\x91" => "", # U+E0251 => -"\xF3\xA0\x89\x92" => "", # U+E0252 => -"\xF3\xA0\x89\x93" => "", # U+E0253 => -"\xF3\xA0\x89\x94" => "", # U+E0254 => -"\xF3\xA0\x89\x95" => "", # U+E0255 => -"\xF3\xA0\x89\x96" => "", # U+E0256 => -"\xF3\xA0\x89\x97" => "", # U+E0257 => -"\xF3\xA0\x89\x98" => "", # U+E0258 => -"\xF3\xA0\x89\x99" => "", # U+E0259 => -"\xF3\xA0\x89\x9A" => "", # U+E025A => -"\xF3\xA0\x89\x9B" => "", # U+E025B => -"\xF3\xA0\x89\x9C" => "", # U+E025C => -"\xF3\xA0\x89\x9D" => "", # U+E025D => -"\xF3\xA0\x89\x9E" => "", # U+E025E => -"\xF3\xA0\x89\x9F" => "", # U+E025F => -"\xF3\xA0\x89\xA0" => "", # U+E0260 => -"\xF3\xA0\x89\xA1" => "", # U+E0261 => -"\xF3\xA0\x89\xA2" => "", # U+E0262 => -"\xF3\xA0\x89\xA3" => "", # U+E0263 => -"\xF3\xA0\x89\xA4" => "", # U+E0264 => -"\xF3\xA0\x89\xA5" => "", # U+E0265 => -"\xF3\xA0\x89\xA6" => "", # U+E0266 => -"\xF3\xA0\x89\xA7" => "", # U+E0267 => -"\xF3\xA0\x89\xA8" => "", # U+E0268 => -"\xF3\xA0\x89\xA9" => "", # U+E0269 => -"\xF3\xA0\x89\xAA" => "", # U+E026A => -"\xF3\xA0\x89\xAB" => "", # U+E026B => -"\xF3\xA0\x89\xAC" => "", # U+E026C => -"\xF3\xA0\x89\xAD" => "", # U+E026D => -"\xF3\xA0\x89\xAE" => "", # U+E026E => -"\xF3\xA0\x89\xAF" => "", # U+E026F => -"\xF3\xA0\x89\xB0" => "", # U+E0270 => -"\xF3\xA0\x89\xB1" => "", # U+E0271 => -"\xF3\xA0\x89\xB2" => "", # U+E0272 => -"\xF3\xA0\x89\xB3" => "", # U+E0273 => -"\xF3\xA0\x89\xB4" => "", # U+E0274 => -"\xF3\xA0\x89\xB5" => "", # U+E0275 => -"\xF3\xA0\x89\xB6" => "", # U+E0276 => -"\xF3\xA0\x89\xB7" => "", # U+E0277 => -"\xF3\xA0\x89\xB8" => "", # U+E0278 => -"\xF3\xA0\x89\xB9" => "", # U+E0279 => -"\xF3\xA0\x89\xBA" => "", # U+E027A => -"\xF3\xA0\x89\xBB" => "", # U+E027B => -"\xF3\xA0\x89\xBC" => "", # U+E027C => -"\xF3\xA0\x89\xBD" => "", # U+E027D => -"\xF3\xA0\x89\xBE" => "", # U+E027E => -"\xF3\xA0\x89\xBF" => "", # U+E027F => -"\xF3\xA0\x8A\x80" => "", # U+E0280 => -"\xF3\xA0\x8A\x81" => "", # U+E0281 => -"\xF3\xA0\x8A\x82" => "", # U+E0282 => -"\xF3\xA0\x8A\x83" => "", # U+E0283 => -"\xF3\xA0\x8A\x84" => "", # U+E0284 => -"\xF3\xA0\x8A\x85" => "", # U+E0285 => -"\xF3\xA0\x8A\x86" => "", # U+E0286 => -"\xF3\xA0\x8A\x87" => "", # U+E0287 => -"\xF3\xA0\x8A\x88" => "", # U+E0288 => -"\xF3\xA0\x8A\x89" => "", # U+E0289 => -"\xF3\xA0\x8A\x8A" => "", # U+E028A => -"\xF3\xA0\x8A\x8B" => "", # U+E028B => -"\xF3\xA0\x8A\x8C" => "", # U+E028C => -"\xF3\xA0\x8A\x8D" => "", # U+E028D => -"\xF3\xA0\x8A\x8E" => "", # U+E028E => -"\xF3\xA0\x8A\x8F" => "", # U+E028F => -"\xF3\xA0\x8A\x90" => "", # U+E0290 => -"\xF3\xA0\x8A\x91" => "", # U+E0291 => -"\xF3\xA0\x8A\x92" => "", # U+E0292 => -"\xF3\xA0\x8A\x93" => "", # U+E0293 => -"\xF3\xA0\x8A\x94" => "", # U+E0294 => -"\xF3\xA0\x8A\x95" => "", # U+E0295 => -"\xF3\xA0\x8A\x96" => "", # U+E0296 => -"\xF3\xA0\x8A\x97" => "", # U+E0297 => -"\xF3\xA0\x8A\x98" => "", # U+E0298 => -"\xF3\xA0\x8A\x99" => "", # U+E0299 => -"\xF3\xA0\x8A\x9A" => "", # U+E029A => -"\xF3\xA0\x8A\x9B" => "", # U+E029B => -"\xF3\xA0\x8A\x9C" => "", # U+E029C => -"\xF3\xA0\x8A\x9D" => "", # U+E029D => -"\xF3\xA0\x8A\x9E" => "", # U+E029E => -"\xF3\xA0\x8A\x9F" => "", # U+E029F => -"\xF3\xA0\x8A\xA0" => "", # U+E02A0 => -"\xF3\xA0\x8A\xA1" => "", # U+E02A1 => -"\xF3\xA0\x8A\xA2" => "", # U+E02A2 => -"\xF3\xA0\x8A\xA3" => "", # U+E02A3 => -"\xF3\xA0\x8A\xA4" => "", # U+E02A4 => -"\xF3\xA0\x8A\xA5" => "", # U+E02A5 => -"\xF3\xA0\x8A\xA6" => "", # U+E02A6 => -"\xF3\xA0\x8A\xA7" => "", # U+E02A7 => -"\xF3\xA0\x8A\xA8" => "", # U+E02A8 => -"\xF3\xA0\x8A\xA9" => "", # U+E02A9 => -"\xF3\xA0\x8A\xAA" => "", # U+E02AA => -"\xF3\xA0\x8A\xAB" => "", # U+E02AB => -"\xF3\xA0\x8A\xAC" => "", # U+E02AC => -"\xF3\xA0\x8A\xAD" => "", # U+E02AD => -"\xF3\xA0\x8A\xAE" => "", # U+E02AE => -"\xF3\xA0\x8A\xAF" => "", # U+E02AF => -"\xF3\xA0\x8A\xB0" => "", # U+E02B0 => -"\xF3\xA0\x8A\xB1" => "", # U+E02B1 => -"\xF3\xA0\x8A\xB2" => "", # U+E02B2 => -"\xF3\xA0\x8A\xB3" => "", # U+E02B3 => -"\xF3\xA0\x8A\xB4" => "", # U+E02B4 => -"\xF3\xA0\x8A\xB5" => "", # U+E02B5 => -"\xF3\xA0\x8A\xB6" => "", # U+E02B6 => -"\xF3\xA0\x8A\xB7" => "", # U+E02B7 => -"\xF3\xA0\x8A\xB8" => "", # U+E02B8 => -"\xF3\xA0\x8A\xB9" => "", # U+E02B9 => -"\xF3\xA0\x8A\xBA" => "", # U+E02BA => -"\xF3\xA0\x8A\xBB" => "", # U+E02BB => -"\xF3\xA0\x8A\xBC" => "", # U+E02BC => -"\xF3\xA0\x8A\xBD" => "", # U+E02BD => -"\xF3\xA0\x8A\xBE" => "", # U+E02BE => -"\xF3\xA0\x8A\xBF" => "", # U+E02BF => -"\xF3\xA0\x8B\x80" => "", # U+E02C0 => -"\xF3\xA0\x8B\x81" => "", # U+E02C1 => -"\xF3\xA0\x8B\x82" => "", # U+E02C2 => -"\xF3\xA0\x8B\x83" => "", # U+E02C3 => -"\xF3\xA0\x8B\x84" => "", # U+E02C4 => -"\xF3\xA0\x8B\x85" => "", # U+E02C5 => -"\xF3\xA0\x8B\x86" => "", # U+E02C6 => -"\xF3\xA0\x8B\x87" => "", # U+E02C7 => -"\xF3\xA0\x8B\x88" => "", # U+E02C8 => -"\xF3\xA0\x8B\x89" => "", # U+E02C9 => -"\xF3\xA0\x8B\x8A" => "", # U+E02CA => -"\xF3\xA0\x8B\x8B" => "", # U+E02CB => -"\xF3\xA0\x8B\x8C" => "", # U+E02CC => -"\xF3\xA0\x8B\x8D" => "", # U+E02CD => -"\xF3\xA0\x8B\x8E" => "", # U+E02CE => -"\xF3\xA0\x8B\x8F" => "", # U+E02CF => -"\xF3\xA0\x8B\x90" => "", # U+E02D0 => -"\xF3\xA0\x8B\x91" => "", # U+E02D1 => -"\xF3\xA0\x8B\x92" => "", # U+E02D2 => -"\xF3\xA0\x8B\x93" => "", # U+E02D3 => -"\xF3\xA0\x8B\x94" => "", # U+E02D4 => -"\xF3\xA0\x8B\x95" => "", # U+E02D5 => -"\xF3\xA0\x8B\x96" => "", # U+E02D6 => -"\xF3\xA0\x8B\x97" => "", # U+E02D7 => -"\xF3\xA0\x8B\x98" => "", # U+E02D8 => -"\xF3\xA0\x8B\x99" => "", # U+E02D9 => -"\xF3\xA0\x8B\x9A" => "", # U+E02DA => -"\xF3\xA0\x8B\x9B" => "", # U+E02DB => -"\xF3\xA0\x8B\x9C" => "", # U+E02DC => -"\xF3\xA0\x8B\x9D" => "", # U+E02DD => -"\xF3\xA0\x8B\x9E" => "", # U+E02DE => -"\xF3\xA0\x8B\x9F" => "", # U+E02DF => -"\xF3\xA0\x8B\xA0" => "", # U+E02E0 => -"\xF3\xA0\x8B\xA1" => "", # U+E02E1 => -"\xF3\xA0\x8B\xA2" => "", # U+E02E2 => -"\xF3\xA0\x8B\xA3" => "", # U+E02E3 => -"\xF3\xA0\x8B\xA4" => "", # U+E02E4 => -"\xF3\xA0\x8B\xA5" => "", # U+E02E5 => -"\xF3\xA0\x8B\xA6" => "", # U+E02E6 => -"\xF3\xA0\x8B\xA7" => "", # U+E02E7 => -"\xF3\xA0\x8B\xA8" => "", # U+E02E8 => -"\xF3\xA0\x8B\xA9" => "", # U+E02E9 => -"\xF3\xA0\x8B\xAA" => "", # U+E02EA => -"\xF3\xA0\x8B\xAB" => "", # U+E02EB => -"\xF3\xA0\x8B\xAC" => "", # U+E02EC => -"\xF3\xA0\x8B\xAD" => "", # U+E02ED => -"\xF3\xA0\x8B\xAE" => "", # U+E02EE => -"\xF3\xA0\x8B\xAF" => "", # U+E02EF => -"\xF3\xA0\x8B\xB0" => "", # U+E02F0 => -"\xF3\xA0\x8B\xB1" => "", # U+E02F1 => -"\xF3\xA0\x8B\xB2" => "", # U+E02F2 => -"\xF3\xA0\x8B\xB3" => "", # U+E02F3 => -"\xF3\xA0\x8B\xB4" => "", # U+E02F4 => -"\xF3\xA0\x8B\xB5" => "", # U+E02F5 => -"\xF3\xA0\x8B\xB6" => "", # U+E02F6 => -"\xF3\xA0\x8B\xB7" => "", # U+E02F7 => -"\xF3\xA0\x8B\xB8" => "", # U+E02F8 => -"\xF3\xA0\x8B\xB9" => "", # U+E02F9 => -"\xF3\xA0\x8B\xBA" => "", # U+E02FA => -"\xF3\xA0\x8B\xBB" => "", # U+E02FB => -"\xF3\xA0\x8B\xBC" => "", # U+E02FC => -"\xF3\xA0\x8B\xBD" => "", # U+E02FD => -"\xF3\xA0\x8B\xBE" => "", # U+E02FE => -"\xF3\xA0\x8B\xBF" => "", # U+E02FF => -"\xF3\xA0\x8C\x80" => "", # U+E0300 => -"\xF3\xA0\x8C\x81" => "", # U+E0301 => -"\xF3\xA0\x8C\x82" => "", # U+E0302 => -"\xF3\xA0\x8C\x83" => "", # U+E0303 => -"\xF3\xA0\x8C\x84" => "", # U+E0304 => -"\xF3\xA0\x8C\x85" => "", # U+E0305 => -"\xF3\xA0\x8C\x86" => "", # U+E0306 => -"\xF3\xA0\x8C\x87" => "", # U+E0307 => -"\xF3\xA0\x8C\x88" => "", # U+E0308 => -"\xF3\xA0\x8C\x89" => "", # U+E0309 => -"\xF3\xA0\x8C\x8A" => "", # U+E030A => -"\xF3\xA0\x8C\x8B" => "", # U+E030B => -"\xF3\xA0\x8C\x8C" => "", # U+E030C => -"\xF3\xA0\x8C\x8D" => "", # U+E030D => -"\xF3\xA0\x8C\x8E" => "", # U+E030E => -"\xF3\xA0\x8C\x8F" => "", # U+E030F => -"\xF3\xA0\x8C\x90" => "", # U+E0310 => -"\xF3\xA0\x8C\x91" => "", # U+E0311 => -"\xF3\xA0\x8C\x92" => "", # U+E0312 => -"\xF3\xA0\x8C\x93" => "", # U+E0313 => -"\xF3\xA0\x8C\x94" => "", # U+E0314 => -"\xF3\xA0\x8C\x95" => "", # U+E0315 => -"\xF3\xA0\x8C\x96" => "", # U+E0316 => -"\xF3\xA0\x8C\x97" => "", # U+E0317 => -"\xF3\xA0\x8C\x98" => "", # U+E0318 => -"\xF3\xA0\x8C\x99" => "", # U+E0319 => -"\xF3\xA0\x8C\x9A" => "", # U+E031A => -"\xF3\xA0\x8C\x9B" => "", # U+E031B => -"\xF3\xA0\x8C\x9C" => "", # U+E031C => -"\xF3\xA0\x8C\x9D" => "", # U+E031D => -"\xF3\xA0\x8C\x9E" => "", # U+E031E => -"\xF3\xA0\x8C\x9F" => "", # U+E031F => -"\xF3\xA0\x8C\xA0" => "", # U+E0320 => -"\xF3\xA0\x8C\xA1" => "", # U+E0321 => -"\xF3\xA0\x8C\xA2" => "", # U+E0322 => -"\xF3\xA0\x8C\xA3" => "", # U+E0323 => -"\xF3\xA0\x8C\xA4" => "", # U+E0324 => -"\xF3\xA0\x8C\xA5" => "", # U+E0325 => -"\xF3\xA0\x8C\xA6" => "", # U+E0326 => -"\xF3\xA0\x8C\xA7" => "", # U+E0327 => -"\xF3\xA0\x8C\xA8" => "", # U+E0328 => -"\xF3\xA0\x8C\xA9" => "", # U+E0329 => -"\xF3\xA0\x8C\xAA" => "", # U+E032A => -"\xF3\xA0\x8C\xAB" => "", # U+E032B => -"\xF3\xA0\x8C\xAC" => "", # U+E032C => -"\xF3\xA0\x8C\xAD" => "", # U+E032D => -"\xF3\xA0\x8C\xAE" => "", # U+E032E => -"\xF3\xA0\x8C\xAF" => "", # U+E032F => -"\xF3\xA0\x8C\xB0" => "", # U+E0330 => -"\xF3\xA0\x8C\xB1" => "", # U+E0331 => -"\xF3\xA0\x8C\xB2" => "", # U+E0332 => -"\xF3\xA0\x8C\xB3" => "", # U+E0333 => -"\xF3\xA0\x8C\xB4" => "", # U+E0334 => -"\xF3\xA0\x8C\xB5" => "", # U+E0335 => -"\xF3\xA0\x8C\xB6" => "", # U+E0336 => -"\xF3\xA0\x8C\xB7" => "", # U+E0337 => -"\xF3\xA0\x8C\xB8" => "", # U+E0338 => -"\xF3\xA0\x8C\xB9" => "", # U+E0339 => -"\xF3\xA0\x8C\xBA" => "", # U+E033A => -"\xF3\xA0\x8C\xBB" => "", # U+E033B => -"\xF3\xA0\x8C\xBC" => "", # U+E033C => -"\xF3\xA0\x8C\xBD" => "", # U+E033D => -"\xF3\xA0\x8C\xBE" => "", # U+E033E => -"\xF3\xA0\x8C\xBF" => "", # U+E033F => -"\xF3\xA0\x8D\x80" => "", # U+E0340 => -"\xF3\xA0\x8D\x81" => "", # U+E0341 => -"\xF3\xA0\x8D\x82" => "", # U+E0342 => -"\xF3\xA0\x8D\x83" => "", # U+E0343 => -"\xF3\xA0\x8D\x84" => "", # U+E0344 => -"\xF3\xA0\x8D\x85" => "", # U+E0345 => -"\xF3\xA0\x8D\x86" => "", # U+E0346 => -"\xF3\xA0\x8D\x87" => "", # U+E0347 => -"\xF3\xA0\x8D\x88" => "", # U+E0348 => -"\xF3\xA0\x8D\x89" => "", # U+E0349 => -"\xF3\xA0\x8D\x8A" => "", # U+E034A => -"\xF3\xA0\x8D\x8B" => "", # U+E034B => -"\xF3\xA0\x8D\x8C" => "", # U+E034C => -"\xF3\xA0\x8D\x8D" => "", # U+E034D => -"\xF3\xA0\x8D\x8E" => "", # U+E034E => -"\xF3\xA0\x8D\x8F" => "", # U+E034F => -"\xF3\xA0\x8D\x90" => "", # U+E0350 => -"\xF3\xA0\x8D\x91" => "", # U+E0351 => -"\xF3\xA0\x8D\x92" => "", # U+E0352 => -"\xF3\xA0\x8D\x93" => "", # U+E0353 => -"\xF3\xA0\x8D\x94" => "", # U+E0354 => -"\xF3\xA0\x8D\x95" => "", # U+E0355 => -"\xF3\xA0\x8D\x96" => "", # U+E0356 => -"\xF3\xA0\x8D\x97" => "", # U+E0357 => -"\xF3\xA0\x8D\x98" => "", # U+E0358 => -"\xF3\xA0\x8D\x99" => "", # U+E0359 => -"\xF3\xA0\x8D\x9A" => "", # U+E035A => -"\xF3\xA0\x8D\x9B" => "", # U+E035B => -"\xF3\xA0\x8D\x9C" => "", # U+E035C => -"\xF3\xA0\x8D\x9D" => "", # U+E035D => -"\xF3\xA0\x8D\x9E" => "", # U+E035E => -"\xF3\xA0\x8D\x9F" => "", # U+E035F => -"\xF3\xA0\x8D\xA0" => "", # U+E0360 => -"\xF3\xA0\x8D\xA1" => "", # U+E0361 => -"\xF3\xA0\x8D\xA2" => "", # U+E0362 => -"\xF3\xA0\x8D\xA3" => "", # U+E0363 => -"\xF3\xA0\x8D\xA4" => "", # U+E0364 => -"\xF3\xA0\x8D\xA5" => "", # U+E0365 => -"\xF3\xA0\x8D\xA6" => "", # U+E0366 => -"\xF3\xA0\x8D\xA7" => "", # U+E0367 => -"\xF3\xA0\x8D\xA8" => "", # U+E0368 => -"\xF3\xA0\x8D\xA9" => "", # U+E0369 => -"\xF3\xA0\x8D\xAA" => "", # U+E036A => -"\xF3\xA0\x8D\xAB" => "", # U+E036B => -"\xF3\xA0\x8D\xAC" => "", # U+E036C => -"\xF3\xA0\x8D\xAD" => "", # U+E036D => -"\xF3\xA0\x8D\xAE" => "", # U+E036E => -"\xF3\xA0\x8D\xAF" => "", # U+E036F => -"\xF3\xA0\x8D\xB0" => "", # U+E0370 => -"\xF3\xA0\x8D\xB1" => "", # U+E0371 => -"\xF3\xA0\x8D\xB2" => "", # U+E0372 => -"\xF3\xA0\x8D\xB3" => "", # U+E0373 => -"\xF3\xA0\x8D\xB4" => "", # U+E0374 => -"\xF3\xA0\x8D\xB5" => "", # U+E0375 => -"\xF3\xA0\x8D\xB6" => "", # U+E0376 => -"\xF3\xA0\x8D\xB7" => "", # U+E0377 => -"\xF3\xA0\x8D\xB8" => "", # U+E0378 => -"\xF3\xA0\x8D\xB9" => "", # U+E0379 => -"\xF3\xA0\x8D\xBA" => "", # U+E037A => -"\xF3\xA0\x8D\xBB" => "", # U+E037B => -"\xF3\xA0\x8D\xBC" => "", # U+E037C => -"\xF3\xA0\x8D\xBD" => "", # U+E037D => -"\xF3\xA0\x8D\xBE" => "", # U+E037E => -"\xF3\xA0\x8D\xBF" => "", # U+E037F => -"\xF3\xA0\x8E\x80" => "", # U+E0380 => -"\xF3\xA0\x8E\x81" => "", # U+E0381 => -"\xF3\xA0\x8E\x82" => "", # U+E0382 => -"\xF3\xA0\x8E\x83" => "", # U+E0383 => -"\xF3\xA0\x8E\x84" => "", # U+E0384 => -"\xF3\xA0\x8E\x85" => "", # U+E0385 => -"\xF3\xA0\x8E\x86" => "", # U+E0386 => -"\xF3\xA0\x8E\x87" => "", # U+E0387 => -"\xF3\xA0\x8E\x88" => "", # U+E0388 => -"\xF3\xA0\x8E\x89" => "", # U+E0389 => -"\xF3\xA0\x8E\x8A" => "", # U+E038A => -"\xF3\xA0\x8E\x8B" => "", # U+E038B => -"\xF3\xA0\x8E\x8C" => "", # U+E038C => -"\xF3\xA0\x8E\x8D" => "", # U+E038D => -"\xF3\xA0\x8E\x8E" => "", # U+E038E => -"\xF3\xA0\x8E\x8F" => "", # U+E038F => -"\xF3\xA0\x8E\x90" => "", # U+E0390 => -"\xF3\xA0\x8E\x91" => "", # U+E0391 => -"\xF3\xA0\x8E\x92" => "", # U+E0392 => -"\xF3\xA0\x8E\x93" => "", # U+E0393 => -"\xF3\xA0\x8E\x94" => "", # U+E0394 => -"\xF3\xA0\x8E\x95" => "", # U+E0395 => -"\xF3\xA0\x8E\x96" => "", # U+E0396 => -"\xF3\xA0\x8E\x97" => "", # U+E0397 => -"\xF3\xA0\x8E\x98" => "", # U+E0398 => -"\xF3\xA0\x8E\x99" => "", # U+E0399 => -"\xF3\xA0\x8E\x9A" => "", # U+E039A => -"\xF3\xA0\x8E\x9B" => "", # U+E039B => -"\xF3\xA0\x8E\x9C" => "", # U+E039C => -"\xF3\xA0\x8E\x9D" => "", # U+E039D => -"\xF3\xA0\x8E\x9E" => "", # U+E039E => -"\xF3\xA0\x8E\x9F" => "", # U+E039F => -"\xF3\xA0\x8E\xA0" => "", # U+E03A0 => -"\xF3\xA0\x8E\xA1" => "", # U+E03A1 => -"\xF3\xA0\x8E\xA2" => "", # U+E03A2 => -"\xF3\xA0\x8E\xA3" => "", # U+E03A3 => -"\xF3\xA0\x8E\xA4" => "", # U+E03A4 => -"\xF3\xA0\x8E\xA5" => "", # U+E03A5 => -"\xF3\xA0\x8E\xA6" => "", # U+E03A6 => -"\xF3\xA0\x8E\xA7" => "", # U+E03A7 => -"\xF3\xA0\x8E\xA8" => "", # U+E03A8 => -"\xF3\xA0\x8E\xA9" => "", # U+E03A9 => -"\xF3\xA0\x8E\xAA" => "", # U+E03AA => -"\xF3\xA0\x8E\xAB" => "", # U+E03AB => -"\xF3\xA0\x8E\xAC" => "", # U+E03AC => -"\xF3\xA0\x8E\xAD" => "", # U+E03AD => -"\xF3\xA0\x8E\xAE" => "", # U+E03AE => -"\xF3\xA0\x8E\xAF" => "", # U+E03AF => -"\xF3\xA0\x8E\xB0" => "", # U+E03B0 => -"\xF3\xA0\x8E\xB1" => "", # U+E03B1 => -"\xF3\xA0\x8E\xB2" => "", # U+E03B2 => -"\xF3\xA0\x8E\xB3" => "", # U+E03B3 => -"\xF3\xA0\x8E\xB4" => "", # U+E03B4 => -"\xF3\xA0\x8E\xB5" => "", # U+E03B5 => -"\xF3\xA0\x8E\xB6" => "", # U+E03B6 => -"\xF3\xA0\x8E\xB7" => "", # U+E03B7 => -"\xF3\xA0\x8E\xB8" => "", # U+E03B8 => -"\xF3\xA0\x8E\xB9" => "", # U+E03B9 => -"\xF3\xA0\x8E\xBA" => "", # U+E03BA => -"\xF3\xA0\x8E\xBB" => "", # U+E03BB => -"\xF3\xA0\x8E\xBC" => "", # U+E03BC => -"\xF3\xA0\x8E\xBD" => "", # U+E03BD => -"\xF3\xA0\x8E\xBE" => "", # U+E03BE => -"\xF3\xA0\x8E\xBF" => "", # U+E03BF => -"\xF3\xA0\x8F\x80" => "", # U+E03C0 => -"\xF3\xA0\x8F\x81" => "", # U+E03C1 => -"\xF3\xA0\x8F\x82" => "", # U+E03C2 => -"\xF3\xA0\x8F\x83" => "", # U+E03C3 => -"\xF3\xA0\x8F\x84" => "", # U+E03C4 => -"\xF3\xA0\x8F\x85" => "", # U+E03C5 => -"\xF3\xA0\x8F\x86" => "", # U+E03C6 => -"\xF3\xA0\x8F\x87" => "", # U+E03C7 => -"\xF3\xA0\x8F\x88" => "", # U+E03C8 => -"\xF3\xA0\x8F\x89" => "", # U+E03C9 => -"\xF3\xA0\x8F\x8A" => "", # U+E03CA => -"\xF3\xA0\x8F\x8B" => "", # U+E03CB => -"\xF3\xA0\x8F\x8C" => "", # U+E03CC => -"\xF3\xA0\x8F\x8D" => "", # U+E03CD => -"\xF3\xA0\x8F\x8E" => "", # U+E03CE => -"\xF3\xA0\x8F\x8F" => "", # U+E03CF => -"\xF3\xA0\x8F\x90" => "", # U+E03D0 => -"\xF3\xA0\x8F\x91" => "", # U+E03D1 => -"\xF3\xA0\x8F\x92" => "", # U+E03D2 => -"\xF3\xA0\x8F\x93" => "", # U+E03D3 => -"\xF3\xA0\x8F\x94" => "", # U+E03D4 => -"\xF3\xA0\x8F\x95" => "", # U+E03D5 => -"\xF3\xA0\x8F\x96" => "", # U+E03D6 => -"\xF3\xA0\x8F\x97" => "", # U+E03D7 => -"\xF3\xA0\x8F\x98" => "", # U+E03D8 => -"\xF3\xA0\x8F\x99" => "", # U+E03D9 => -"\xF3\xA0\x8F\x9A" => "", # U+E03DA => -"\xF3\xA0\x8F\x9B" => "", # U+E03DB => -"\xF3\xA0\x8F\x9C" => "", # U+E03DC => -"\xF3\xA0\x8F\x9D" => "", # U+E03DD => -"\xF3\xA0\x8F\x9E" => "", # U+E03DE => -"\xF3\xA0\x8F\x9F" => "", # U+E03DF => -"\xF3\xA0\x8F\xA0" => "", # U+E03E0 => -"\xF3\xA0\x8F\xA1" => "", # U+E03E1 => -"\xF3\xA0\x8F\xA2" => "", # U+E03E2 => -"\xF3\xA0\x8F\xA3" => "", # U+E03E3 => -"\xF3\xA0\x8F\xA4" => "", # U+E03E4 => -"\xF3\xA0\x8F\xA5" => "", # U+E03E5 => -"\xF3\xA0\x8F\xA6" => "", # U+E03E6 => -"\xF3\xA0\x8F\xA7" => "", # U+E03E7 => -"\xF3\xA0\x8F\xA8" => "", # U+E03E8 => -"\xF3\xA0\x8F\xA9" => "", # U+E03E9 => -"\xF3\xA0\x8F\xAA" => "", # U+E03EA => -"\xF3\xA0\x8F\xAB" => "", # U+E03EB => -"\xF3\xA0\x8F\xAC" => "", # U+E03EC => -"\xF3\xA0\x8F\xAD" => "", # U+E03ED => -"\xF3\xA0\x8F\xAE" => "", # U+E03EE => -"\xF3\xA0\x8F\xAF" => "", # U+E03EF => -"\xF3\xA0\x8F\xB0" => "", # U+E03F0 => -"\xF3\xA0\x8F\xB1" => "", # U+E03F1 => -"\xF3\xA0\x8F\xB2" => "", # U+E03F2 => -"\xF3\xA0\x8F\xB3" => "", # U+E03F3 => -"\xF3\xA0\x8F\xB4" => "", # U+E03F4 => -"\xF3\xA0\x8F\xB5" => "", # U+E03F5 => -"\xF3\xA0\x8F\xB6" => "", # U+E03F6 => -"\xF3\xA0\x8F\xB7" => "", # U+E03F7 => -"\xF3\xA0\x8F\xB8" => "", # U+E03F8 => -"\xF3\xA0\x8F\xB9" => "", # U+E03F9 => -"\xF3\xA0\x8F\xBA" => "", # U+E03FA => -"\xF3\xA0\x8F\xBB" => "", # U+E03FB => -"\xF3\xA0\x8F\xBC" => "", # U+E03FC => -"\xF3\xA0\x8F\xBD" => "", # U+E03FD => -"\xF3\xA0\x8F\xBE" => "", # U+E03FE => -"\xF3\xA0\x8F\xBF" => "", # U+E03FF => -"\xF3\xA0\x90\x80" => "", # U+E0400 => -"\xF3\xA0\x90\x81" => "", # U+E0401 => -"\xF3\xA0\x90\x82" => "", # U+E0402 => -"\xF3\xA0\x90\x83" => "", # U+E0403 => -"\xF3\xA0\x90\x84" => "", # U+E0404 => -"\xF3\xA0\x90\x85" => "", # U+E0405 => -"\xF3\xA0\x90\x86" => "", # U+E0406 => -"\xF3\xA0\x90\x87" => "", # U+E0407 => -"\xF3\xA0\x90\x88" => "", # U+E0408 => -"\xF3\xA0\x90\x89" => "", # U+E0409 => -"\xF3\xA0\x90\x8A" => "", # U+E040A => -"\xF3\xA0\x90\x8B" => "", # U+E040B => -"\xF3\xA0\x90\x8C" => "", # U+E040C => -"\xF3\xA0\x90\x8D" => "", # U+E040D => -"\xF3\xA0\x90\x8E" => "", # U+E040E => -"\xF3\xA0\x90\x8F" => "", # U+E040F => -"\xF3\xA0\x90\x90" => "", # U+E0410 => -"\xF3\xA0\x90\x91" => "", # U+E0411 => -"\xF3\xA0\x90\x92" => "", # U+E0412 => -"\xF3\xA0\x90\x93" => "", # U+E0413 => -"\xF3\xA0\x90\x94" => "", # U+E0414 => -"\xF3\xA0\x90\x95" => "", # U+E0415 => -"\xF3\xA0\x90\x96" => "", # U+E0416 => -"\xF3\xA0\x90\x97" => "", # U+E0417 => -"\xF3\xA0\x90\x98" => "", # U+E0418 => -"\xF3\xA0\x90\x99" => "", # U+E0419 => -"\xF3\xA0\x90\x9A" => "", # U+E041A => -"\xF3\xA0\x90\x9B" => "", # U+E041B => -"\xF3\xA0\x90\x9C" => "", # U+E041C => -"\xF3\xA0\x90\x9D" => "", # U+E041D => -"\xF3\xA0\x90\x9E" => "", # U+E041E => -"\xF3\xA0\x90\x9F" => "", # U+E041F => -"\xF3\xA0\x90\xA0" => "", # U+E0420 => -"\xF3\xA0\x90\xA1" => "", # U+E0421 => -"\xF3\xA0\x90\xA2" => "", # U+E0422 => -"\xF3\xA0\x90\xA3" => "", # U+E0423 => -"\xF3\xA0\x90\xA4" => "", # U+E0424 => -"\xF3\xA0\x90\xA5" => "", # U+E0425 => -"\xF3\xA0\x90\xA6" => "", # U+E0426 => -"\xF3\xA0\x90\xA7" => "", # U+E0427 => -"\xF3\xA0\x90\xA8" => "", # U+E0428 => -"\xF3\xA0\x90\xA9" => "", # U+E0429 => -"\xF3\xA0\x90\xAA" => "", # U+E042A => -"\xF3\xA0\x90\xAB" => "", # U+E042B => -"\xF3\xA0\x90\xAC" => "", # U+E042C => -"\xF3\xA0\x90\xAD" => "", # U+E042D => -"\xF3\xA0\x90\xAE" => "", # U+E042E => -"\xF3\xA0\x90\xAF" => "", # U+E042F => -"\xF3\xA0\x90\xB0" => "", # U+E0430 => -"\xF3\xA0\x90\xB1" => "", # U+E0431 => -"\xF3\xA0\x90\xB2" => "", # U+E0432 => -"\xF3\xA0\x90\xB3" => "", # U+E0433 => -"\xF3\xA0\x90\xB4" => "", # U+E0434 => -"\xF3\xA0\x90\xB5" => "", # U+E0435 => -"\xF3\xA0\x90\xB6" => "", # U+E0436 => -"\xF3\xA0\x90\xB7" => "", # U+E0437 => -"\xF3\xA0\x90\xB8" => "", # U+E0438 => -"\xF3\xA0\x90\xB9" => "", # U+E0439 => -"\xF3\xA0\x90\xBA" => "", # U+E043A => -"\xF3\xA0\x90\xBB" => "", # U+E043B => -"\xF3\xA0\x90\xBC" => "", # U+E043C => -"\xF3\xA0\x90\xBD" => "", # U+E043D => -"\xF3\xA0\x90\xBE" => "", # U+E043E => -"\xF3\xA0\x90\xBF" => "", # U+E043F => -"\xF3\xA0\x91\x80" => "", # U+E0440 => -"\xF3\xA0\x91\x81" => "", # U+E0441 => -"\xF3\xA0\x91\x82" => "", # U+E0442 => -"\xF3\xA0\x91\x83" => "", # U+E0443 => -"\xF3\xA0\x91\x84" => "", # U+E0444 => -"\xF3\xA0\x91\x85" => "", # U+E0445 => -"\xF3\xA0\x91\x86" => "", # U+E0446 => -"\xF3\xA0\x91\x87" => "", # U+E0447 => -"\xF3\xA0\x91\x88" => "", # U+E0448 => -"\xF3\xA0\x91\x89" => "", # U+E0449 => -"\xF3\xA0\x91\x8A" => "", # U+E044A => -"\xF3\xA0\x91\x8B" => "", # U+E044B => -"\xF3\xA0\x91\x8C" => "", # U+E044C => -"\xF3\xA0\x91\x8D" => "", # U+E044D => -"\xF3\xA0\x91\x8E" => "", # U+E044E => -"\xF3\xA0\x91\x8F" => "", # U+E044F => -"\xF3\xA0\x91\x90" => "", # U+E0450 => -"\xF3\xA0\x91\x91" => "", # U+E0451 => -"\xF3\xA0\x91\x92" => "", # U+E0452 => -"\xF3\xA0\x91\x93" => "", # U+E0453 => -"\xF3\xA0\x91\x94" => "", # U+E0454 => -"\xF3\xA0\x91\x95" => "", # U+E0455 => -"\xF3\xA0\x91\x96" => "", # U+E0456 => -"\xF3\xA0\x91\x97" => "", # U+E0457 => -"\xF3\xA0\x91\x98" => "", # U+E0458 => -"\xF3\xA0\x91\x99" => "", # U+E0459 => -"\xF3\xA0\x91\x9A" => "", # U+E045A => -"\xF3\xA0\x91\x9B" => "", # U+E045B => -"\xF3\xA0\x91\x9C" => "", # U+E045C => -"\xF3\xA0\x91\x9D" => "", # U+E045D => -"\xF3\xA0\x91\x9E" => "", # U+E045E => -"\xF3\xA0\x91\x9F" => "", # U+E045F => -"\xF3\xA0\x91\xA0" => "", # U+E0460 => -"\xF3\xA0\x91\xA1" => "", # U+E0461 => -"\xF3\xA0\x91\xA2" => "", # U+E0462 => -"\xF3\xA0\x91\xA3" => "", # U+E0463 => -"\xF3\xA0\x91\xA4" => "", # U+E0464 => -"\xF3\xA0\x91\xA5" => "", # U+E0465 => -"\xF3\xA0\x91\xA6" => "", # U+E0466 => -"\xF3\xA0\x91\xA7" => "", # U+E0467 => -"\xF3\xA0\x91\xA8" => "", # U+E0468 => -"\xF3\xA0\x91\xA9" => "", # U+E0469 => -"\xF3\xA0\x91\xAA" => "", # U+E046A => -"\xF3\xA0\x91\xAB" => "", # U+E046B => -"\xF3\xA0\x91\xAC" => "", # U+E046C => -"\xF3\xA0\x91\xAD" => "", # U+E046D => -"\xF3\xA0\x91\xAE" => "", # U+E046E => -"\xF3\xA0\x91\xAF" => "", # U+E046F => -"\xF3\xA0\x91\xB0" => "", # U+E0470 => -"\xF3\xA0\x91\xB1" => "", # U+E0471 => -"\xF3\xA0\x91\xB2" => "", # U+E0472 => -"\xF3\xA0\x91\xB3" => "", # U+E0473 => -"\xF3\xA0\x91\xB4" => "", # U+E0474 => -"\xF3\xA0\x91\xB5" => "", # U+E0475 => -"\xF3\xA0\x91\xB6" => "", # U+E0476 => -"\xF3\xA0\x91\xB7" => "", # U+E0477 => -"\xF3\xA0\x91\xB8" => "", # U+E0478 => -"\xF3\xA0\x91\xB9" => "", # U+E0479 => -"\xF3\xA0\x91\xBA" => "", # U+E047A => -"\xF3\xA0\x91\xBB" => "", # U+E047B => -"\xF3\xA0\x91\xBC" => "", # U+E047C => -"\xF3\xA0\x91\xBD" => "", # U+E047D => -"\xF3\xA0\x91\xBE" => "", # U+E047E => -"\xF3\xA0\x91\xBF" => "", # U+E047F => -"\xF3\xA0\x92\x80" => "", # U+E0480 => -"\xF3\xA0\x92\x81" => "", # U+E0481 => -"\xF3\xA0\x92\x82" => "", # U+E0482 => -"\xF3\xA0\x92\x83" => "", # U+E0483 => -"\xF3\xA0\x92\x84" => "", # U+E0484 => -"\xF3\xA0\x92\x85" => "", # U+E0485 => -"\xF3\xA0\x92\x86" => "", # U+E0486 => -"\xF3\xA0\x92\x87" => "", # U+E0487 => -"\xF3\xA0\x92\x88" => "", # U+E0488 => -"\xF3\xA0\x92\x89" => "", # U+E0489 => -"\xF3\xA0\x92\x8A" => "", # U+E048A => -"\xF3\xA0\x92\x8B" => "", # U+E048B => -"\xF3\xA0\x92\x8C" => "", # U+E048C => -"\xF3\xA0\x92\x8D" => "", # U+E048D => -"\xF3\xA0\x92\x8E" => "", # U+E048E => -"\xF3\xA0\x92\x8F" => "", # U+E048F => -"\xF3\xA0\x92\x90" => "", # U+E0490 => -"\xF3\xA0\x92\x91" => "", # U+E0491 => -"\xF3\xA0\x92\x92" => "", # U+E0492 => -"\xF3\xA0\x92\x93" => "", # U+E0493 => -"\xF3\xA0\x92\x94" => "", # U+E0494 => -"\xF3\xA0\x92\x95" => "", # U+E0495 => -"\xF3\xA0\x92\x96" => "", # U+E0496 => -"\xF3\xA0\x92\x97" => "", # U+E0497 => -"\xF3\xA0\x92\x98" => "", # U+E0498 => -"\xF3\xA0\x92\x99" => "", # U+E0499 => -"\xF3\xA0\x92\x9A" => "", # U+E049A => -"\xF3\xA0\x92\x9B" => "", # U+E049B => -"\xF3\xA0\x92\x9C" => "", # U+E049C => -"\xF3\xA0\x92\x9D" => "", # U+E049D => -"\xF3\xA0\x92\x9E" => "", # U+E049E => -"\xF3\xA0\x92\x9F" => "", # U+E049F => -"\xF3\xA0\x92\xA0" => "", # U+E04A0 => -"\xF3\xA0\x92\xA1" => "", # U+E04A1 => -"\xF3\xA0\x92\xA2" => "", # U+E04A2 => -"\xF3\xA0\x92\xA3" => "", # U+E04A3 => -"\xF3\xA0\x92\xA4" => "", # U+E04A4 => -"\xF3\xA0\x92\xA5" => "", # U+E04A5 => -"\xF3\xA0\x92\xA6" => "", # U+E04A6 => -"\xF3\xA0\x92\xA7" => "", # U+E04A7 => -"\xF3\xA0\x92\xA8" => "", # U+E04A8 => -"\xF3\xA0\x92\xA9" => "", # U+E04A9 => -"\xF3\xA0\x92\xAA" => "", # U+E04AA => -"\xF3\xA0\x92\xAB" => "", # U+E04AB => -"\xF3\xA0\x92\xAC" => "", # U+E04AC => -"\xF3\xA0\x92\xAD" => "", # U+E04AD => -"\xF3\xA0\x92\xAE" => "", # U+E04AE => -"\xF3\xA0\x92\xAF" => "", # U+E04AF => -"\xF3\xA0\x92\xB0" => "", # U+E04B0 => -"\xF3\xA0\x92\xB1" => "", # U+E04B1 => -"\xF3\xA0\x92\xB2" => "", # U+E04B2 => -"\xF3\xA0\x92\xB3" => "", # U+E04B3 => -"\xF3\xA0\x92\xB4" => "", # U+E04B4 => -"\xF3\xA0\x92\xB5" => "", # U+E04B5 => -"\xF3\xA0\x92\xB6" => "", # U+E04B6 => -"\xF3\xA0\x92\xB7" => "", # U+E04B7 => -"\xF3\xA0\x92\xB8" => "", # U+E04B8 => -"\xF3\xA0\x92\xB9" => "", # U+E04B9 => -"\xF3\xA0\x92\xBA" => "", # U+E04BA => -"\xF3\xA0\x92\xBB" => "", # U+E04BB => -"\xF3\xA0\x92\xBC" => "", # U+E04BC => -"\xF3\xA0\x92\xBD" => "", # U+E04BD => -"\xF3\xA0\x92\xBE" => "", # U+E04BE => -"\xF3\xA0\x92\xBF" => "", # U+E04BF => -"\xF3\xA0\x93\x80" => "", # U+E04C0 => -"\xF3\xA0\x93\x81" => "", # U+E04C1 => -"\xF3\xA0\x93\x82" => "", # U+E04C2 => -"\xF3\xA0\x93\x83" => "", # U+E04C3 => -"\xF3\xA0\x93\x84" => "", # U+E04C4 => -"\xF3\xA0\x93\x85" => "", # U+E04C5 => -"\xF3\xA0\x93\x86" => "", # U+E04C6 => -"\xF3\xA0\x93\x87" => "", # U+E04C7 => -"\xF3\xA0\x93\x88" => "", # U+E04C8 => -"\xF3\xA0\x93\x89" => "", # U+E04C9 => -"\xF3\xA0\x93\x8A" => "", # U+E04CA => -"\xF3\xA0\x93\x8B" => "", # U+E04CB => -"\xF3\xA0\x93\x8C" => "", # U+E04CC => -"\xF3\xA0\x93\x8D" => "", # U+E04CD => -"\xF3\xA0\x93\x8E" => "", # U+E04CE => -"\xF3\xA0\x93\x8F" => "", # U+E04CF => -"\xF3\xA0\x93\x90" => "", # U+E04D0 => -"\xF3\xA0\x93\x91" => "", # U+E04D1 => -"\xF3\xA0\x93\x92" => "", # U+E04D2 => -"\xF3\xA0\x93\x93" => "", # U+E04D3 => -"\xF3\xA0\x93\x94" => "", # U+E04D4 => -"\xF3\xA0\x93\x95" => "", # U+E04D5 => -"\xF3\xA0\x93\x96" => "", # U+E04D6 => -"\xF3\xA0\x93\x97" => "", # U+E04D7 => -"\xF3\xA0\x93\x98" => "", # U+E04D8 => -"\xF3\xA0\x93\x99" => "", # U+E04D9 => -"\xF3\xA0\x93\x9A" => "", # U+E04DA => -"\xF3\xA0\x93\x9B" => "", # U+E04DB => -"\xF3\xA0\x93\x9C" => "", # U+E04DC => -"\xF3\xA0\x93\x9D" => "", # U+E04DD => -"\xF3\xA0\x93\x9E" => "", # U+E04DE => -"\xF3\xA0\x93\x9F" => "", # U+E04DF => -"\xF3\xA0\x93\xA0" => "", # U+E04E0 => -"\xF3\xA0\x93\xA1" => "", # U+E04E1 => -"\xF3\xA0\x93\xA2" => "", # U+E04E2 => -"\xF3\xA0\x93\xA3" => "", # U+E04E3 => -"\xF3\xA0\x93\xA4" => "", # U+E04E4 => -"\xF3\xA0\x93\xA5" => "", # U+E04E5 => -"\xF3\xA0\x93\xA6" => "", # U+E04E6 => -"\xF3\xA0\x93\xA7" => "", # U+E04E7 => -"\xF3\xA0\x93\xA8" => "", # U+E04E8 => -"\xF3\xA0\x93\xA9" => "", # U+E04E9 => -"\xF3\xA0\x93\xAA" => "", # U+E04EA => -"\xF3\xA0\x93\xAB" => "", # U+E04EB => -"\xF3\xA0\x93\xAC" => "", # U+E04EC => -"\xF3\xA0\x93\xAD" => "", # U+E04ED => -"\xF3\xA0\x93\xAE" => "", # U+E04EE => -"\xF3\xA0\x93\xAF" => "", # U+E04EF => -"\xF3\xA0\x93\xB0" => "", # U+E04F0 => -"\xF3\xA0\x93\xB1" => "", # U+E04F1 => -"\xF3\xA0\x93\xB2" => "", # U+E04F2 => -"\xF3\xA0\x93\xB3" => "", # U+E04F3 => -"\xF3\xA0\x93\xB4" => "", # U+E04F4 => -"\xF3\xA0\x93\xB5" => "", # U+E04F5 => -"\xF3\xA0\x93\xB6" => "", # U+E04F6 => -"\xF3\xA0\x93\xB7" => "", # U+E04F7 => -"\xF3\xA0\x93\xB8" => "", # U+E04F8 => -"\xF3\xA0\x93\xB9" => "", # U+E04F9 => -"\xF3\xA0\x93\xBA" => "", # U+E04FA => -"\xF3\xA0\x93\xBB" => "", # U+E04FB => -"\xF3\xA0\x93\xBC" => "", # U+E04FC => -"\xF3\xA0\x93\xBD" => "", # U+E04FD => -"\xF3\xA0\x93\xBE" => "", # U+E04FE => -"\xF3\xA0\x93\xBF" => "", # U+E04FF => -"\xF3\xA0\x94\x80" => "", # U+E0500 => -"\xF3\xA0\x94\x81" => "", # U+E0501 => -"\xF3\xA0\x94\x82" => "", # U+E0502 => -"\xF3\xA0\x94\x83" => "", # U+E0503 => -"\xF3\xA0\x94\x84" => "", # U+E0504 => -"\xF3\xA0\x94\x85" => "", # U+E0505 => -"\xF3\xA0\x94\x86" => "", # U+E0506 => -"\xF3\xA0\x94\x87" => "", # U+E0507 => -"\xF3\xA0\x94\x88" => "", # U+E0508 => -"\xF3\xA0\x94\x89" => "", # U+E0509 => -"\xF3\xA0\x94\x8A" => "", # U+E050A => -"\xF3\xA0\x94\x8B" => "", # U+E050B => -"\xF3\xA0\x94\x8C" => "", # U+E050C => -"\xF3\xA0\x94\x8D" => "", # U+E050D => -"\xF3\xA0\x94\x8E" => "", # U+E050E => -"\xF3\xA0\x94\x8F" => "", # U+E050F => -"\xF3\xA0\x94\x90" => "", # U+E0510 => -"\xF3\xA0\x94\x91" => "", # U+E0511 => -"\xF3\xA0\x94\x92" => "", # U+E0512 => -"\xF3\xA0\x94\x93" => "", # U+E0513 => -"\xF3\xA0\x94\x94" => "", # U+E0514 => -"\xF3\xA0\x94\x95" => "", # U+E0515 => -"\xF3\xA0\x94\x96" => "", # U+E0516 => -"\xF3\xA0\x94\x97" => "", # U+E0517 => -"\xF3\xA0\x94\x98" => "", # U+E0518 => -"\xF3\xA0\x94\x99" => "", # U+E0519 => -"\xF3\xA0\x94\x9A" => "", # U+E051A => -"\xF3\xA0\x94\x9B" => "", # U+E051B => -"\xF3\xA0\x94\x9C" => "", # U+E051C => -"\xF3\xA0\x94\x9D" => "", # U+E051D => -"\xF3\xA0\x94\x9E" => "", # U+E051E => -"\xF3\xA0\x94\x9F" => "", # U+E051F => -"\xF3\xA0\x94\xA0" => "", # U+E0520 => -"\xF3\xA0\x94\xA1" => "", # U+E0521 => -"\xF3\xA0\x94\xA2" => "", # U+E0522 => -"\xF3\xA0\x94\xA3" => "", # U+E0523 => -"\xF3\xA0\x94\xA4" => "", # U+E0524 => -"\xF3\xA0\x94\xA5" => "", # U+E0525 => -"\xF3\xA0\x94\xA6" => "", # U+E0526 => -"\xF3\xA0\x94\xA7" => "", # U+E0527 => -"\xF3\xA0\x94\xA8" => "", # U+E0528 => -"\xF3\xA0\x94\xA9" => "", # U+E0529 => -"\xF3\xA0\x94\xAA" => "", # U+E052A => -"\xF3\xA0\x94\xAB" => "", # U+E052B => -"\xF3\xA0\x94\xAC" => "", # U+E052C => -"\xF3\xA0\x94\xAD" => "", # U+E052D => -"\xF3\xA0\x94\xAE" => "", # U+E052E => -"\xF3\xA0\x94\xAF" => "", # U+E052F => -"\xF3\xA0\x94\xB0" => "", # U+E0530 => -"\xF3\xA0\x94\xB1" => "", # U+E0531 => -"\xF3\xA0\x94\xB2" => "", # U+E0532 => -"\xF3\xA0\x94\xB3" => "", # U+E0533 => -"\xF3\xA0\x94\xB4" => "", # U+E0534 => -"\xF3\xA0\x94\xB5" => "", # U+E0535 => -"\xF3\xA0\x94\xB6" => "", # U+E0536 => -"\xF3\xA0\x94\xB7" => "", # U+E0537 => -"\xF3\xA0\x94\xB8" => "", # U+E0538 => -"\xF3\xA0\x94\xB9" => "", # U+E0539 => -"\xF3\xA0\x94\xBA" => "", # U+E053A => -"\xF3\xA0\x94\xBB" => "", # U+E053B => -"\xF3\xA0\x94\xBC" => "", # U+E053C => -"\xF3\xA0\x94\xBD" => "", # U+E053D => -"\xF3\xA0\x94\xBE" => "", # U+E053E => -"\xF3\xA0\x94\xBF" => "", # U+E053F => -"\xF3\xA0\x95\x80" => "", # U+E0540 => -"\xF3\xA0\x95\x81" => "", # U+E0541 => -"\xF3\xA0\x95\x82" => "", # U+E0542 => -"\xF3\xA0\x95\x83" => "", # U+E0543 => -"\xF3\xA0\x95\x84" => "", # U+E0544 => -"\xF3\xA0\x95\x85" => "", # U+E0545 => -"\xF3\xA0\x95\x86" => "", # U+E0546 => -"\xF3\xA0\x95\x87" => "", # U+E0547 => -"\xF3\xA0\x95\x88" => "", # U+E0548 => -"\xF3\xA0\x95\x89" => "", # U+E0549 => -"\xF3\xA0\x95\x8A" => "", # U+E054A => -"\xF3\xA0\x95\x8B" => "", # U+E054B => -"\xF3\xA0\x95\x8C" => "", # U+E054C => -"\xF3\xA0\x95\x8D" => "", # U+E054D => -"\xF3\xA0\x95\x8E" => "", # U+E054E => -"\xF3\xA0\x95\x8F" => "", # U+E054F => -"\xF3\xA0\x95\x90" => "", # U+E0550 => -"\xF3\xA0\x95\x91" => "", # U+E0551 => -"\xF3\xA0\x95\x92" => "", # U+E0552 => -"\xF3\xA0\x95\x93" => "", # U+E0553 => -"\xF3\xA0\x95\x94" => "", # U+E0554 => -"\xF3\xA0\x95\x95" => "", # U+E0555 => -"\xF3\xA0\x95\x96" => "", # U+E0556 => -"\xF3\xA0\x95\x97" => "", # U+E0557 => -"\xF3\xA0\x95\x98" => "", # U+E0558 => -"\xF3\xA0\x95\x99" => "", # U+E0559 => -"\xF3\xA0\x95\x9A" => "", # U+E055A => -"\xF3\xA0\x95\x9B" => "", # U+E055B => -"\xF3\xA0\x95\x9C" => "", # U+E055C => -"\xF3\xA0\x95\x9D" => "", # U+E055D => -"\xF3\xA0\x95\x9E" => "", # U+E055E => -"\xF3\xA0\x95\x9F" => "", # U+E055F => -"\xF3\xA0\x95\xA0" => "", # U+E0560 => -"\xF3\xA0\x95\xA1" => "", # U+E0561 => -"\xF3\xA0\x95\xA2" => "", # U+E0562 => -"\xF3\xA0\x95\xA3" => "", # U+E0563 => -"\xF3\xA0\x95\xA4" => "", # U+E0564 => -"\xF3\xA0\x95\xA5" => "", # U+E0565 => -"\xF3\xA0\x95\xA6" => "", # U+E0566 => -"\xF3\xA0\x95\xA7" => "", # U+E0567 => -"\xF3\xA0\x95\xA8" => "", # U+E0568 => -"\xF3\xA0\x95\xA9" => "", # U+E0569 => -"\xF3\xA0\x95\xAA" => "", # U+E056A => -"\xF3\xA0\x95\xAB" => "", # U+E056B => -"\xF3\xA0\x95\xAC" => "", # U+E056C => -"\xF3\xA0\x95\xAD" => "", # U+E056D => -"\xF3\xA0\x95\xAE" => "", # U+E056E => -"\xF3\xA0\x95\xAF" => "", # U+E056F => -"\xF3\xA0\x95\xB0" => "", # U+E0570 => -"\xF3\xA0\x95\xB1" => "", # U+E0571 => -"\xF3\xA0\x95\xB2" => "", # U+E0572 => -"\xF3\xA0\x95\xB3" => "", # U+E0573 => -"\xF3\xA0\x95\xB4" => "", # U+E0574 => -"\xF3\xA0\x95\xB5" => "", # U+E0575 => -"\xF3\xA0\x95\xB6" => "", # U+E0576 => -"\xF3\xA0\x95\xB7" => "", # U+E0577 => -"\xF3\xA0\x95\xB8" => "", # U+E0578 => -"\xF3\xA0\x95\xB9" => "", # U+E0579 => -"\xF3\xA0\x95\xBA" => "", # U+E057A => -"\xF3\xA0\x95\xBB" => "", # U+E057B => -"\xF3\xA0\x95\xBC" => "", # U+E057C => -"\xF3\xA0\x95\xBD" => "", # U+E057D => -"\xF3\xA0\x95\xBE" => "", # U+E057E => -"\xF3\xA0\x95\xBF" => "", # U+E057F => -"\xF3\xA0\x96\x80" => "", # U+E0580 => -"\xF3\xA0\x96\x81" => "", # U+E0581 => -"\xF3\xA0\x96\x82" => "", # U+E0582 => -"\xF3\xA0\x96\x83" => "", # U+E0583 => -"\xF3\xA0\x96\x84" => "", # U+E0584 => -"\xF3\xA0\x96\x85" => "", # U+E0585 => -"\xF3\xA0\x96\x86" => "", # U+E0586 => -"\xF3\xA0\x96\x87" => "", # U+E0587 => -"\xF3\xA0\x96\x88" => "", # U+E0588 => -"\xF3\xA0\x96\x89" => "", # U+E0589 => -"\xF3\xA0\x96\x8A" => "", # U+E058A => -"\xF3\xA0\x96\x8B" => "", # U+E058B => -"\xF3\xA0\x96\x8C" => "", # U+E058C => -"\xF3\xA0\x96\x8D" => "", # U+E058D => -"\xF3\xA0\x96\x8E" => "", # U+E058E => -"\xF3\xA0\x96\x8F" => "", # U+E058F => -"\xF3\xA0\x96\x90" => "", # U+E0590 => -"\xF3\xA0\x96\x91" => "", # U+E0591 => -"\xF3\xA0\x96\x92" => "", # U+E0592 => -"\xF3\xA0\x96\x93" => "", # U+E0593 => -"\xF3\xA0\x96\x94" => "", # U+E0594 => -"\xF3\xA0\x96\x95" => "", # U+E0595 => -"\xF3\xA0\x96\x96" => "", # U+E0596 => -"\xF3\xA0\x96\x97" => "", # U+E0597 => -"\xF3\xA0\x96\x98" => "", # U+E0598 => -"\xF3\xA0\x96\x99" => "", # U+E0599 => -"\xF3\xA0\x96\x9A" => "", # U+E059A => -"\xF3\xA0\x96\x9B" => "", # U+E059B => -"\xF3\xA0\x96\x9C" => "", # U+E059C => -"\xF3\xA0\x96\x9D" => "", # U+E059D => -"\xF3\xA0\x96\x9E" => "", # U+E059E => -"\xF3\xA0\x96\x9F" => "", # U+E059F => -"\xF3\xA0\x96\xA0" => "", # U+E05A0 => -"\xF3\xA0\x96\xA1" => "", # U+E05A1 => -"\xF3\xA0\x96\xA2" => "", # U+E05A2 => -"\xF3\xA0\x96\xA3" => "", # U+E05A3 => -"\xF3\xA0\x96\xA4" => "", # U+E05A4 => -"\xF3\xA0\x96\xA5" => "", # U+E05A5 => -"\xF3\xA0\x96\xA6" => "", # U+E05A6 => -"\xF3\xA0\x96\xA7" => "", # U+E05A7 => -"\xF3\xA0\x96\xA8" => "", # U+E05A8 => -"\xF3\xA0\x96\xA9" => "", # U+E05A9 => -"\xF3\xA0\x96\xAA" => "", # U+E05AA => -"\xF3\xA0\x96\xAB" => "", # U+E05AB => -"\xF3\xA0\x96\xAC" => "", # U+E05AC => -"\xF3\xA0\x96\xAD" => "", # U+E05AD => -"\xF3\xA0\x96\xAE" => "", # U+E05AE => -"\xF3\xA0\x96\xAF" => "", # U+E05AF => -"\xF3\xA0\x96\xB0" => "", # U+E05B0 => -"\xF3\xA0\x96\xB1" => "", # U+E05B1 => -"\xF3\xA0\x96\xB2" => "", # U+E05B2 => -"\xF3\xA0\x96\xB3" => "", # U+E05B3 => -"\xF3\xA0\x96\xB4" => "", # U+E05B4 => -"\xF3\xA0\x96\xB5" => "", # U+E05B5 => -"\xF3\xA0\x96\xB6" => "", # U+E05B6 => -"\xF3\xA0\x96\xB7" => "", # U+E05B7 => -"\xF3\xA0\x96\xB8" => "", # U+E05B8 => -"\xF3\xA0\x96\xB9" => "", # U+E05B9 => -"\xF3\xA0\x96\xBA" => "", # U+E05BA => -"\xF3\xA0\x96\xBB" => "", # U+E05BB => -"\xF3\xA0\x96\xBC" => "", # U+E05BC => -"\xF3\xA0\x96\xBD" => "", # U+E05BD => -"\xF3\xA0\x96\xBE" => "", # U+E05BE => -"\xF3\xA0\x96\xBF" => "", # U+E05BF => -"\xF3\xA0\x97\x80" => "", # U+E05C0 => -"\xF3\xA0\x97\x81" => "", # U+E05C1 => -"\xF3\xA0\x97\x82" => "", # U+E05C2 => -"\xF3\xA0\x97\x83" => "", # U+E05C3 => -"\xF3\xA0\x97\x84" => "", # U+E05C4 => -"\xF3\xA0\x97\x85" => "", # U+E05C5 => -"\xF3\xA0\x97\x86" => "", # U+E05C6 => -"\xF3\xA0\x97\x87" => "", # U+E05C7 => -"\xF3\xA0\x97\x88" => "", # U+E05C8 => -"\xF3\xA0\x97\x89" => "", # U+E05C9 => -"\xF3\xA0\x97\x8A" => "", # U+E05CA => -"\xF3\xA0\x97\x8B" => "", # U+E05CB => -"\xF3\xA0\x97\x8C" => "", # U+E05CC => -"\xF3\xA0\x97\x8D" => "", # U+E05CD => -"\xF3\xA0\x97\x8E" => "", # U+E05CE => -"\xF3\xA0\x97\x8F" => "", # U+E05CF => -"\xF3\xA0\x97\x90" => "", # U+E05D0 => -"\xF3\xA0\x97\x91" => "", # U+E05D1 => -"\xF3\xA0\x97\x92" => "", # U+E05D2 => -"\xF3\xA0\x97\x93" => "", # U+E05D3 => -"\xF3\xA0\x97\x94" => "", # U+E05D4 => -"\xF3\xA0\x97\x95" => "", # U+E05D5 => -"\xF3\xA0\x97\x96" => "", # U+E05D6 => -"\xF3\xA0\x97\x97" => "", # U+E05D7 => -"\xF3\xA0\x97\x98" => "", # U+E05D8 => -"\xF3\xA0\x97\x99" => "", # U+E05D9 => -"\xF3\xA0\x97\x9A" => "", # U+E05DA => -"\xF3\xA0\x97\x9B" => "", # U+E05DB => -"\xF3\xA0\x97\x9C" => "", # U+E05DC => -"\xF3\xA0\x97\x9D" => "", # U+E05DD => -"\xF3\xA0\x97\x9E" => "", # U+E05DE => -"\xF3\xA0\x97\x9F" => "", # U+E05DF => -"\xF3\xA0\x97\xA0" => "", # U+E05E0 => -"\xF3\xA0\x97\xA1" => "", # U+E05E1 => -"\xF3\xA0\x97\xA2" => "", # U+E05E2 => -"\xF3\xA0\x97\xA3" => "", # U+E05E3 => -"\xF3\xA0\x97\xA4" => "", # U+E05E4 => -"\xF3\xA0\x97\xA5" => "", # U+E05E5 => -"\xF3\xA0\x97\xA6" => "", # U+E05E6 => -"\xF3\xA0\x97\xA7" => "", # U+E05E7 => -"\xF3\xA0\x97\xA8" => "", # U+E05E8 => -"\xF3\xA0\x97\xA9" => "", # U+E05E9 => -"\xF3\xA0\x97\xAA" => "", # U+E05EA => -"\xF3\xA0\x97\xAB" => "", # U+E05EB => -"\xF3\xA0\x97\xAC" => "", # U+E05EC => -"\xF3\xA0\x97\xAD" => "", # U+E05ED => -"\xF3\xA0\x97\xAE" => "", # U+E05EE => -"\xF3\xA0\x97\xAF" => "", # U+E05EF => -"\xF3\xA0\x97\xB0" => "", # U+E05F0 => -"\xF3\xA0\x97\xB1" => "", # U+E05F1 => -"\xF3\xA0\x97\xB2" => "", # U+E05F2 => -"\xF3\xA0\x97\xB3" => "", # U+E05F3 => -"\xF3\xA0\x97\xB4" => "", # U+E05F4 => -"\xF3\xA0\x97\xB5" => "", # U+E05F5 => -"\xF3\xA0\x97\xB6" => "", # U+E05F6 => -"\xF3\xA0\x97\xB7" => "", # U+E05F7 => -"\xF3\xA0\x97\xB8" => "", # U+E05F8 => -"\xF3\xA0\x97\xB9" => "", # U+E05F9 => -"\xF3\xA0\x97\xBA" => "", # U+E05FA => -"\xF3\xA0\x97\xBB" => "", # U+E05FB => -"\xF3\xA0\x97\xBC" => "", # U+E05FC => -"\xF3\xA0\x97\xBD" => "", # U+E05FD => -"\xF3\xA0\x97\xBE" => "", # U+E05FE => -"\xF3\xA0\x97\xBF" => "", # U+E05FF => -"\xF3\xA0\x98\x80" => "", # U+E0600 => -"\xF3\xA0\x98\x81" => "", # U+E0601 => -"\xF3\xA0\x98\x82" => "", # U+E0602 => -"\xF3\xA0\x98\x83" => "", # U+E0603 => -"\xF3\xA0\x98\x84" => "", # U+E0604 => -"\xF3\xA0\x98\x85" => "", # U+E0605 => -"\xF3\xA0\x98\x86" => "", # U+E0606 => -"\xF3\xA0\x98\x87" => "", # U+E0607 => -"\xF3\xA0\x98\x88" => "", # U+E0608 => -"\xF3\xA0\x98\x89" => "", # U+E0609 => -"\xF3\xA0\x98\x8A" => "", # U+E060A => -"\xF3\xA0\x98\x8B" => "", # U+E060B => -"\xF3\xA0\x98\x8C" => "", # U+E060C => -"\xF3\xA0\x98\x8D" => "", # U+E060D => -"\xF3\xA0\x98\x8E" => "", # U+E060E => -"\xF3\xA0\x98\x8F" => "", # U+E060F => -"\xF3\xA0\x98\x90" => "", # U+E0610 => -"\xF3\xA0\x98\x91" => "", # U+E0611 => -"\xF3\xA0\x98\x92" => "", # U+E0612 => -"\xF3\xA0\x98\x93" => "", # U+E0613 => -"\xF3\xA0\x98\x94" => "", # U+E0614 => -"\xF3\xA0\x98\x95" => "", # U+E0615 => -"\xF3\xA0\x98\x96" => "", # U+E0616 => -"\xF3\xA0\x98\x97" => "", # U+E0617 => -"\xF3\xA0\x98\x98" => "", # U+E0618 => -"\xF3\xA0\x98\x99" => "", # U+E0619 => -"\xF3\xA0\x98\x9A" => "", # U+E061A => -"\xF3\xA0\x98\x9B" => "", # U+E061B => -"\xF3\xA0\x98\x9C" => "", # U+E061C => -"\xF3\xA0\x98\x9D" => "", # U+E061D => -"\xF3\xA0\x98\x9E" => "", # U+E061E => -"\xF3\xA0\x98\x9F" => "", # U+E061F => -"\xF3\xA0\x98\xA0" => "", # U+E0620 => -"\xF3\xA0\x98\xA1" => "", # U+E0621 => -"\xF3\xA0\x98\xA2" => "", # U+E0622 => -"\xF3\xA0\x98\xA3" => "", # U+E0623 => -"\xF3\xA0\x98\xA4" => "", # U+E0624 => -"\xF3\xA0\x98\xA5" => "", # U+E0625 => -"\xF3\xA0\x98\xA6" => "", # U+E0626 => -"\xF3\xA0\x98\xA7" => "", # U+E0627 => -"\xF3\xA0\x98\xA8" => "", # U+E0628 => -"\xF3\xA0\x98\xA9" => "", # U+E0629 => -"\xF3\xA0\x98\xAA" => "", # U+E062A => -"\xF3\xA0\x98\xAB" => "", # U+E062B => -"\xF3\xA0\x98\xAC" => "", # U+E062C => -"\xF3\xA0\x98\xAD" => "", # U+E062D => -"\xF3\xA0\x98\xAE" => "", # U+E062E => -"\xF3\xA0\x98\xAF" => "", # U+E062F => -"\xF3\xA0\x98\xB0" => "", # U+E0630 => -"\xF3\xA0\x98\xB1" => "", # U+E0631 => -"\xF3\xA0\x98\xB2" => "", # U+E0632 => -"\xF3\xA0\x98\xB3" => "", # U+E0633 => -"\xF3\xA0\x98\xB4" => "", # U+E0634 => -"\xF3\xA0\x98\xB5" => "", # U+E0635 => -"\xF3\xA0\x98\xB6" => "", # U+E0636 => -"\xF3\xA0\x98\xB7" => "", # U+E0637 => -"\xF3\xA0\x98\xB8" => "", # U+E0638 => -"\xF3\xA0\x98\xB9" => "", # U+E0639 => -"\xF3\xA0\x98\xBA" => "", # U+E063A => -"\xF3\xA0\x98\xBB" => "", # U+E063B => -"\xF3\xA0\x98\xBC" => "", # U+E063C => -"\xF3\xA0\x98\xBD" => "", # U+E063D => -"\xF3\xA0\x98\xBE" => "", # U+E063E => -"\xF3\xA0\x98\xBF" => "", # U+E063F => -"\xF3\xA0\x99\x80" => "", # U+E0640 => -"\xF3\xA0\x99\x81" => "", # U+E0641 => -"\xF3\xA0\x99\x82" => "", # U+E0642 => -"\xF3\xA0\x99\x83" => "", # U+E0643 => -"\xF3\xA0\x99\x84" => "", # U+E0644 => -"\xF3\xA0\x99\x85" => "", # U+E0645 => -"\xF3\xA0\x99\x86" => "", # U+E0646 => -"\xF3\xA0\x99\x87" => "", # U+E0647 => -"\xF3\xA0\x99\x88" => "", # U+E0648 => -"\xF3\xA0\x99\x89" => "", # U+E0649 => -"\xF3\xA0\x99\x8A" => "", # U+E064A => -"\xF3\xA0\x99\x8B" => "", # U+E064B => -"\xF3\xA0\x99\x8C" => "", # U+E064C => -"\xF3\xA0\x99\x8D" => "", # U+E064D => -"\xF3\xA0\x99\x8E" => "", # U+E064E => -"\xF3\xA0\x99\x8F" => "", # U+E064F => -"\xF3\xA0\x99\x90" => "", # U+E0650 => -"\xF3\xA0\x99\x91" => "", # U+E0651 => -"\xF3\xA0\x99\x92" => "", # U+E0652 => -"\xF3\xA0\x99\x93" => "", # U+E0653 => -"\xF3\xA0\x99\x94" => "", # U+E0654 => -"\xF3\xA0\x99\x95" => "", # U+E0655 => -"\xF3\xA0\x99\x96" => "", # U+E0656 => -"\xF3\xA0\x99\x97" => "", # U+E0657 => -"\xF3\xA0\x99\x98" => "", # U+E0658 => -"\xF3\xA0\x99\x99" => "", # U+E0659 => -"\xF3\xA0\x99\x9A" => "", # U+E065A => -"\xF3\xA0\x99\x9B" => "", # U+E065B => -"\xF3\xA0\x99\x9C" => "", # U+E065C => -"\xF3\xA0\x99\x9D" => "", # U+E065D => -"\xF3\xA0\x99\x9E" => "", # U+E065E => -"\xF3\xA0\x99\x9F" => "", # U+E065F => -"\xF3\xA0\x99\xA0" => "", # U+E0660 => -"\xF3\xA0\x99\xA1" => "", # U+E0661 => -"\xF3\xA0\x99\xA2" => "", # U+E0662 => -"\xF3\xA0\x99\xA3" => "", # U+E0663 => -"\xF3\xA0\x99\xA4" => "", # U+E0664 => -"\xF3\xA0\x99\xA5" => "", # U+E0665 => -"\xF3\xA0\x99\xA6" => "", # U+E0666 => -"\xF3\xA0\x99\xA7" => "", # U+E0667 => -"\xF3\xA0\x99\xA8" => "", # U+E0668 => -"\xF3\xA0\x99\xA9" => "", # U+E0669 => -"\xF3\xA0\x99\xAA" => "", # U+E066A => -"\xF3\xA0\x99\xAB" => "", # U+E066B => -"\xF3\xA0\x99\xAC" => "", # U+E066C => -"\xF3\xA0\x99\xAD" => "", # U+E066D => -"\xF3\xA0\x99\xAE" => "", # U+E066E => -"\xF3\xA0\x99\xAF" => "", # U+E066F => -"\xF3\xA0\x99\xB0" => "", # U+E0670 => -"\xF3\xA0\x99\xB1" => "", # U+E0671 => -"\xF3\xA0\x99\xB2" => "", # U+E0672 => -"\xF3\xA0\x99\xB3" => "", # U+E0673 => -"\xF3\xA0\x99\xB4" => "", # U+E0674 => -"\xF3\xA0\x99\xB5" => "", # U+E0675 => -"\xF3\xA0\x99\xB6" => "", # U+E0676 => -"\xF3\xA0\x99\xB7" => "", # U+E0677 => -"\xF3\xA0\x99\xB8" => "", # U+E0678 => -"\xF3\xA0\x99\xB9" => "", # U+E0679 => -"\xF3\xA0\x99\xBA" => "", # U+E067A => -"\xF3\xA0\x99\xBB" => "", # U+E067B => -"\xF3\xA0\x99\xBC" => "", # U+E067C => -"\xF3\xA0\x99\xBD" => "", # U+E067D => -"\xF3\xA0\x99\xBE" => "", # U+E067E => -"\xF3\xA0\x99\xBF" => "", # U+E067F => -"\xF3\xA0\x9A\x80" => "", # U+E0680 => -"\xF3\xA0\x9A\x81" => "", # U+E0681 => -"\xF3\xA0\x9A\x82" => "", # U+E0682 => -"\xF3\xA0\x9A\x83" => "", # U+E0683 => -"\xF3\xA0\x9A\x84" => "", # U+E0684 => -"\xF3\xA0\x9A\x85" => "", # U+E0685 => -"\xF3\xA0\x9A\x86" => "", # U+E0686 => -"\xF3\xA0\x9A\x87" => "", # U+E0687 => -"\xF3\xA0\x9A\x88" => "", # U+E0688 => -"\xF3\xA0\x9A\x89" => "", # U+E0689 => -"\xF3\xA0\x9A\x8A" => "", # U+E068A => -"\xF3\xA0\x9A\x8B" => "", # U+E068B => -"\xF3\xA0\x9A\x8C" => "", # U+E068C => -"\xF3\xA0\x9A\x8D" => "", # U+E068D => -"\xF3\xA0\x9A\x8E" => "", # U+E068E => -"\xF3\xA0\x9A\x8F" => "", # U+E068F => -"\xF3\xA0\x9A\x90" => "", # U+E0690 => -"\xF3\xA0\x9A\x91" => "", # U+E0691 => -"\xF3\xA0\x9A\x92" => "", # U+E0692 => -"\xF3\xA0\x9A\x93" => "", # U+E0693 => -"\xF3\xA0\x9A\x94" => "", # U+E0694 => -"\xF3\xA0\x9A\x95" => "", # U+E0695 => -"\xF3\xA0\x9A\x96" => "", # U+E0696 => -"\xF3\xA0\x9A\x97" => "", # U+E0697 => -"\xF3\xA0\x9A\x98" => "", # U+E0698 => -"\xF3\xA0\x9A\x99" => "", # U+E0699 => -"\xF3\xA0\x9A\x9A" => "", # U+E069A => -"\xF3\xA0\x9A\x9B" => "", # U+E069B => -"\xF3\xA0\x9A\x9C" => "", # U+E069C => -"\xF3\xA0\x9A\x9D" => "", # U+E069D => -"\xF3\xA0\x9A\x9E" => "", # U+E069E => -"\xF3\xA0\x9A\x9F" => "", # U+E069F => -"\xF3\xA0\x9A\xA0" => "", # U+E06A0 => -"\xF3\xA0\x9A\xA1" => "", # U+E06A1 => -"\xF3\xA0\x9A\xA2" => "", # U+E06A2 => -"\xF3\xA0\x9A\xA3" => "", # U+E06A3 => -"\xF3\xA0\x9A\xA4" => "", # U+E06A4 => -"\xF3\xA0\x9A\xA5" => "", # U+E06A5 => -"\xF3\xA0\x9A\xA6" => "", # U+E06A6 => -"\xF3\xA0\x9A\xA7" => "", # U+E06A7 => -"\xF3\xA0\x9A\xA8" => "", # U+E06A8 => -"\xF3\xA0\x9A\xA9" => "", # U+E06A9 => -"\xF3\xA0\x9A\xAA" => "", # U+E06AA => -"\xF3\xA0\x9A\xAB" => "", # U+E06AB => -"\xF3\xA0\x9A\xAC" => "", # U+E06AC => -"\xF3\xA0\x9A\xAD" => "", # U+E06AD => -"\xF3\xA0\x9A\xAE" => "", # U+E06AE => -"\xF3\xA0\x9A\xAF" => "", # U+E06AF => -"\xF3\xA0\x9A\xB0" => "", # U+E06B0 => -"\xF3\xA0\x9A\xB1" => "", # U+E06B1 => -"\xF3\xA0\x9A\xB2" => "", # U+E06B2 => -"\xF3\xA0\x9A\xB3" => "", # U+E06B3 => -"\xF3\xA0\x9A\xB4" => "", # U+E06B4 => -"\xF3\xA0\x9A\xB5" => "", # U+E06B5 => -"\xF3\xA0\x9A\xB6" => "", # U+E06B6 => -"\xF3\xA0\x9A\xB7" => "", # U+E06B7 => -"\xF3\xA0\x9A\xB8" => "", # U+E06B8 => -"\xF3\xA0\x9A\xB9" => "", # U+E06B9 => -"\xF3\xA0\x9A\xBA" => "", # U+E06BA => -"\xF3\xA0\x9A\xBB" => "", # U+E06BB => -"\xF3\xA0\x9A\xBC" => "", # U+E06BC => -"\xF3\xA0\x9A\xBD" => "", # U+E06BD => -"\xF3\xA0\x9A\xBE" => "", # U+E06BE => -"\xF3\xA0\x9A\xBF" => "", # U+E06BF => -"\xF3\xA0\x9B\x80" => "", # U+E06C0 => -"\xF3\xA0\x9B\x81" => "", # U+E06C1 => -"\xF3\xA0\x9B\x82" => "", # U+E06C2 => -"\xF3\xA0\x9B\x83" => "", # U+E06C3 => -"\xF3\xA0\x9B\x84" => "", # U+E06C4 => -"\xF3\xA0\x9B\x85" => "", # U+E06C5 => -"\xF3\xA0\x9B\x86" => "", # U+E06C6 => -"\xF3\xA0\x9B\x87" => "", # U+E06C7 => -"\xF3\xA0\x9B\x88" => "", # U+E06C8 => -"\xF3\xA0\x9B\x89" => "", # U+E06C9 => -"\xF3\xA0\x9B\x8A" => "", # U+E06CA => -"\xF3\xA0\x9B\x8B" => "", # U+E06CB => -"\xF3\xA0\x9B\x8C" => "", # U+E06CC => -"\xF3\xA0\x9B\x8D" => "", # U+E06CD => -"\xF3\xA0\x9B\x8E" => "", # U+E06CE => -"\xF3\xA0\x9B\x8F" => "", # U+E06CF => -"\xF3\xA0\x9B\x90" => "", # U+E06D0 => -"\xF3\xA0\x9B\x91" => "", # U+E06D1 => -"\xF3\xA0\x9B\x92" => "", # U+E06D2 => -"\xF3\xA0\x9B\x93" => "", # U+E06D3 => -"\xF3\xA0\x9B\x94" => "", # U+E06D4 => -"\xF3\xA0\x9B\x95" => "", # U+E06D5 => -"\xF3\xA0\x9B\x96" => "", # U+E06D6 => -"\xF3\xA0\x9B\x97" => "", # U+E06D7 => -"\xF3\xA0\x9B\x98" => "", # U+E06D8 => -"\xF3\xA0\x9B\x99" => "", # U+E06D9 => -"\xF3\xA0\x9B\x9A" => "", # U+E06DA => -"\xF3\xA0\x9B\x9B" => "", # U+E06DB => -"\xF3\xA0\x9B\x9C" => "", # U+E06DC => -"\xF3\xA0\x9B\x9D" => "", # U+E06DD => -"\xF3\xA0\x9B\x9E" => "", # U+E06DE => -"\xF3\xA0\x9B\x9F" => "", # U+E06DF => -"\xF3\xA0\x9B\xA0" => "", # U+E06E0 => -"\xF3\xA0\x9B\xA1" => "", # U+E06E1 => -"\xF3\xA0\x9B\xA2" => "", # U+E06E2 => -"\xF3\xA0\x9B\xA3" => "", # U+E06E3 => -"\xF3\xA0\x9B\xA4" => "", # U+E06E4 => -"\xF3\xA0\x9B\xA5" => "", # U+E06E5 => -"\xF3\xA0\x9B\xA6" => "", # U+E06E6 => -"\xF3\xA0\x9B\xA7" => "", # U+E06E7 => -"\xF3\xA0\x9B\xA8" => "", # U+E06E8 => -"\xF3\xA0\x9B\xA9" => "", # U+E06E9 => -"\xF3\xA0\x9B\xAA" => "", # U+E06EA => -"\xF3\xA0\x9B\xAB" => "", # U+E06EB => -"\xF3\xA0\x9B\xAC" => "", # U+E06EC => -"\xF3\xA0\x9B\xAD" => "", # U+E06ED => -"\xF3\xA0\x9B\xAE" => "", # U+E06EE => -"\xF3\xA0\x9B\xAF" => "", # U+E06EF => -"\xF3\xA0\x9B\xB0" => "", # U+E06F0 => -"\xF3\xA0\x9B\xB1" => "", # U+E06F1 => -"\xF3\xA0\x9B\xB2" => "", # U+E06F2 => -"\xF3\xA0\x9B\xB3" => "", # U+E06F3 => -"\xF3\xA0\x9B\xB4" => "", # U+E06F4 => -"\xF3\xA0\x9B\xB5" => "", # U+E06F5 => -"\xF3\xA0\x9B\xB6" => "", # U+E06F6 => -"\xF3\xA0\x9B\xB7" => "", # U+E06F7 => -"\xF3\xA0\x9B\xB8" => "", # U+E06F8 => -"\xF3\xA0\x9B\xB9" => "", # U+E06F9 => -"\xF3\xA0\x9B\xBA" => "", # U+E06FA => -"\xF3\xA0\x9B\xBB" => "", # U+E06FB => -"\xF3\xA0\x9B\xBC" => "", # U+E06FC => -"\xF3\xA0\x9B\xBD" => "", # U+E06FD => -"\xF3\xA0\x9B\xBE" => "", # U+E06FE => -"\xF3\xA0\x9B\xBF" => "", # U+E06FF => -"\xF3\xA0\x9C\x80" => "", # U+E0700 => -"\xF3\xA0\x9C\x81" => "", # U+E0701 => -"\xF3\xA0\x9C\x82" => "", # U+E0702 => -"\xF3\xA0\x9C\x83" => "", # U+E0703 => -"\xF3\xA0\x9C\x84" => "", # U+E0704 => -"\xF3\xA0\x9C\x85" => "", # U+E0705 => -"\xF3\xA0\x9C\x86" => "", # U+E0706 => -"\xF3\xA0\x9C\x87" => "", # U+E0707 => -"\xF3\xA0\x9C\x88" => "", # U+E0708 => -"\xF3\xA0\x9C\x89" => "", # U+E0709 => -"\xF3\xA0\x9C\x8A" => "", # U+E070A => -"\xF3\xA0\x9C\x8B" => "", # U+E070B => -"\xF3\xA0\x9C\x8C" => "", # U+E070C => -"\xF3\xA0\x9C\x8D" => "", # U+E070D => -"\xF3\xA0\x9C\x8E" => "", # U+E070E => -"\xF3\xA0\x9C\x8F" => "", # U+E070F => -"\xF3\xA0\x9C\x90" => "", # U+E0710 => -"\xF3\xA0\x9C\x91" => "", # U+E0711 => -"\xF3\xA0\x9C\x92" => "", # U+E0712 => -"\xF3\xA0\x9C\x93" => "", # U+E0713 => -"\xF3\xA0\x9C\x94" => "", # U+E0714 => -"\xF3\xA0\x9C\x95" => "", # U+E0715 => -"\xF3\xA0\x9C\x96" => "", # U+E0716 => -"\xF3\xA0\x9C\x97" => "", # U+E0717 => -"\xF3\xA0\x9C\x98" => "", # U+E0718 => -"\xF3\xA0\x9C\x99" => "", # U+E0719 => -"\xF3\xA0\x9C\x9A" => "", # U+E071A => -"\xF3\xA0\x9C\x9B" => "", # U+E071B => -"\xF3\xA0\x9C\x9C" => "", # U+E071C => -"\xF3\xA0\x9C\x9D" => "", # U+E071D => -"\xF3\xA0\x9C\x9E" => "", # U+E071E => -"\xF3\xA0\x9C\x9F" => "", # U+E071F => -"\xF3\xA0\x9C\xA0" => "", # U+E0720 => -"\xF3\xA0\x9C\xA1" => "", # U+E0721 => -"\xF3\xA0\x9C\xA2" => "", # U+E0722 => -"\xF3\xA0\x9C\xA3" => "", # U+E0723 => -"\xF3\xA0\x9C\xA4" => "", # U+E0724 => -"\xF3\xA0\x9C\xA5" => "", # U+E0725 => -"\xF3\xA0\x9C\xA6" => "", # U+E0726 => -"\xF3\xA0\x9C\xA7" => "", # U+E0727 => -"\xF3\xA0\x9C\xA8" => "", # U+E0728 => -"\xF3\xA0\x9C\xA9" => "", # U+E0729 => -"\xF3\xA0\x9C\xAA" => "", # U+E072A => -"\xF3\xA0\x9C\xAB" => "", # U+E072B => -"\xF3\xA0\x9C\xAC" => "", # U+E072C => -"\xF3\xA0\x9C\xAD" => "", # U+E072D => -"\xF3\xA0\x9C\xAE" => "", # U+E072E => -"\xF3\xA0\x9C\xAF" => "", # U+E072F => -"\xF3\xA0\x9C\xB0" => "", # U+E0730 => -"\xF3\xA0\x9C\xB1" => "", # U+E0731 => -"\xF3\xA0\x9C\xB2" => "", # U+E0732 => -"\xF3\xA0\x9C\xB3" => "", # U+E0733 => -"\xF3\xA0\x9C\xB4" => "", # U+E0734 => -"\xF3\xA0\x9C\xB5" => "", # U+E0735 => -"\xF3\xA0\x9C\xB6" => "", # U+E0736 => -"\xF3\xA0\x9C\xB7" => "", # U+E0737 => -"\xF3\xA0\x9C\xB8" => "", # U+E0738 => -"\xF3\xA0\x9C\xB9" => "", # U+E0739 => -"\xF3\xA0\x9C\xBA" => "", # U+E073A => -"\xF3\xA0\x9C\xBB" => "", # U+E073B => -"\xF3\xA0\x9C\xBC" => "", # U+E073C => -"\xF3\xA0\x9C\xBD" => "", # U+E073D => -"\xF3\xA0\x9C\xBE" => "", # U+E073E => -"\xF3\xA0\x9C\xBF" => "", # U+E073F => -"\xF3\xA0\x9D\x80" => "", # U+E0740 => -"\xF3\xA0\x9D\x81" => "", # U+E0741 => -"\xF3\xA0\x9D\x82" => "", # U+E0742 => -"\xF3\xA0\x9D\x83" => "", # U+E0743 => -"\xF3\xA0\x9D\x84" => "", # U+E0744 => -"\xF3\xA0\x9D\x85" => "", # U+E0745 => -"\xF3\xA0\x9D\x86" => "", # U+E0746 => -"\xF3\xA0\x9D\x87" => "", # U+E0747 => -"\xF3\xA0\x9D\x88" => "", # U+E0748 => -"\xF3\xA0\x9D\x89" => "", # U+E0749 => -"\xF3\xA0\x9D\x8A" => "", # U+E074A => -"\xF3\xA0\x9D\x8B" => "", # U+E074B => -"\xF3\xA0\x9D\x8C" => "", # U+E074C => -"\xF3\xA0\x9D\x8D" => "", # U+E074D => -"\xF3\xA0\x9D\x8E" => "", # U+E074E => -"\xF3\xA0\x9D\x8F" => "", # U+E074F => -"\xF3\xA0\x9D\x90" => "", # U+E0750 => -"\xF3\xA0\x9D\x91" => "", # U+E0751 => -"\xF3\xA0\x9D\x92" => "", # U+E0752 => -"\xF3\xA0\x9D\x93" => "", # U+E0753 => -"\xF3\xA0\x9D\x94" => "", # U+E0754 => -"\xF3\xA0\x9D\x95" => "", # U+E0755 => -"\xF3\xA0\x9D\x96" => "", # U+E0756 => -"\xF3\xA0\x9D\x97" => "", # U+E0757 => -"\xF3\xA0\x9D\x98" => "", # U+E0758 => -"\xF3\xA0\x9D\x99" => "", # U+E0759 => -"\xF3\xA0\x9D\x9A" => "", # U+E075A => -"\xF3\xA0\x9D\x9B" => "", # U+E075B => -"\xF3\xA0\x9D\x9C" => "", # U+E075C => -"\xF3\xA0\x9D\x9D" => "", # U+E075D => -"\xF3\xA0\x9D\x9E" => "", # U+E075E => -"\xF3\xA0\x9D\x9F" => "", # U+E075F => -"\xF3\xA0\x9D\xA0" => "", # U+E0760 => -"\xF3\xA0\x9D\xA1" => "", # U+E0761 => -"\xF3\xA0\x9D\xA2" => "", # U+E0762 => -"\xF3\xA0\x9D\xA3" => "", # U+E0763 => -"\xF3\xA0\x9D\xA4" => "", # U+E0764 => -"\xF3\xA0\x9D\xA5" => "", # U+E0765 => -"\xF3\xA0\x9D\xA6" => "", # U+E0766 => -"\xF3\xA0\x9D\xA7" => "", # U+E0767 => -"\xF3\xA0\x9D\xA8" => "", # U+E0768 => -"\xF3\xA0\x9D\xA9" => "", # U+E0769 => -"\xF3\xA0\x9D\xAA" => "", # U+E076A => -"\xF3\xA0\x9D\xAB" => "", # U+E076B => -"\xF3\xA0\x9D\xAC" => "", # U+E076C => -"\xF3\xA0\x9D\xAD" => "", # U+E076D => -"\xF3\xA0\x9D\xAE" => "", # U+E076E => -"\xF3\xA0\x9D\xAF" => "", # U+E076F => -"\xF3\xA0\x9D\xB0" => "", # U+E0770 => -"\xF3\xA0\x9D\xB1" => "", # U+E0771 => -"\xF3\xA0\x9D\xB2" => "", # U+E0772 => -"\xF3\xA0\x9D\xB3" => "", # U+E0773 => -"\xF3\xA0\x9D\xB4" => "", # U+E0774 => -"\xF3\xA0\x9D\xB5" => "", # U+E0775 => -"\xF3\xA0\x9D\xB6" => "", # U+E0776 => -"\xF3\xA0\x9D\xB7" => "", # U+E0777 => -"\xF3\xA0\x9D\xB8" => "", # U+E0778 => -"\xF3\xA0\x9D\xB9" => "", # U+E0779 => -"\xF3\xA0\x9D\xBA" => "", # U+E077A => -"\xF3\xA0\x9D\xBB" => "", # U+E077B => -"\xF3\xA0\x9D\xBC" => "", # U+E077C => -"\xF3\xA0\x9D\xBD" => "", # U+E077D => -"\xF3\xA0\x9D\xBE" => "", # U+E077E => -"\xF3\xA0\x9D\xBF" => "", # U+E077F => -"\xF3\xA0\x9E\x80" => "", # U+E0780 => -"\xF3\xA0\x9E\x81" => "", # U+E0781 => -"\xF3\xA0\x9E\x82" => "", # U+E0782 => -"\xF3\xA0\x9E\x83" => "", # U+E0783 => -"\xF3\xA0\x9E\x84" => "", # U+E0784 => -"\xF3\xA0\x9E\x85" => "", # U+E0785 => -"\xF3\xA0\x9E\x86" => "", # U+E0786 => -"\xF3\xA0\x9E\x87" => "", # U+E0787 => -"\xF3\xA0\x9E\x88" => "", # U+E0788 => -"\xF3\xA0\x9E\x89" => "", # U+E0789 => -"\xF3\xA0\x9E\x8A" => "", # U+E078A => -"\xF3\xA0\x9E\x8B" => "", # U+E078B => -"\xF3\xA0\x9E\x8C" => "", # U+E078C => -"\xF3\xA0\x9E\x8D" => "", # U+E078D => -"\xF3\xA0\x9E\x8E" => "", # U+E078E => -"\xF3\xA0\x9E\x8F" => "", # U+E078F => -"\xF3\xA0\x9E\x90" => "", # U+E0790 => -"\xF3\xA0\x9E\x91" => "", # U+E0791 => -"\xF3\xA0\x9E\x92" => "", # U+E0792 => -"\xF3\xA0\x9E\x93" => "", # U+E0793 => -"\xF3\xA0\x9E\x94" => "", # U+E0794 => -"\xF3\xA0\x9E\x95" => "", # U+E0795 => -"\xF3\xA0\x9E\x96" => "", # U+E0796 => -"\xF3\xA0\x9E\x97" => "", # U+E0797 => -"\xF3\xA0\x9E\x98" => "", # U+E0798 => -"\xF3\xA0\x9E\x99" => "", # U+E0799 => -"\xF3\xA0\x9E\x9A" => "", # U+E079A => -"\xF3\xA0\x9E\x9B" => "", # U+E079B => -"\xF3\xA0\x9E\x9C" => "", # U+E079C => -"\xF3\xA0\x9E\x9D" => "", # U+E079D => -"\xF3\xA0\x9E\x9E" => "", # U+E079E => -"\xF3\xA0\x9E\x9F" => "", # U+E079F => -"\xF3\xA0\x9E\xA0" => "", # U+E07A0 => -"\xF3\xA0\x9E\xA1" => "", # U+E07A1 => -"\xF3\xA0\x9E\xA2" => "", # U+E07A2 => -"\xF3\xA0\x9E\xA3" => "", # U+E07A3 => -"\xF3\xA0\x9E\xA4" => "", # U+E07A4 => -"\xF3\xA0\x9E\xA5" => "", # U+E07A5 => -"\xF3\xA0\x9E\xA6" => "", # U+E07A6 => -"\xF3\xA0\x9E\xA7" => "", # U+E07A7 => -"\xF3\xA0\x9E\xA8" => "", # U+E07A8 => -"\xF3\xA0\x9E\xA9" => "", # U+E07A9 => -"\xF3\xA0\x9E\xAA" => "", # U+E07AA => -"\xF3\xA0\x9E\xAB" => "", # U+E07AB => -"\xF3\xA0\x9E\xAC" => "", # U+E07AC => -"\xF3\xA0\x9E\xAD" => "", # U+E07AD => -"\xF3\xA0\x9E\xAE" => "", # U+E07AE => -"\xF3\xA0\x9E\xAF" => "", # U+E07AF => -"\xF3\xA0\x9E\xB0" => "", # U+E07B0 => -"\xF3\xA0\x9E\xB1" => "", # U+E07B1 => -"\xF3\xA0\x9E\xB2" => "", # U+E07B2 => -"\xF3\xA0\x9E\xB3" => "", # U+E07B3 => -"\xF3\xA0\x9E\xB4" => "", # U+E07B4 => -"\xF3\xA0\x9E\xB5" => "", # U+E07B5 => -"\xF3\xA0\x9E\xB6" => "", # U+E07B6 => -"\xF3\xA0\x9E\xB7" => "", # U+E07B7 => -"\xF3\xA0\x9E\xB8" => "", # U+E07B8 => -"\xF3\xA0\x9E\xB9" => "", # U+E07B9 => -"\xF3\xA0\x9E\xBA" => "", # U+E07BA => -"\xF3\xA0\x9E\xBB" => "", # U+E07BB => -"\xF3\xA0\x9E\xBC" => "", # U+E07BC => -"\xF3\xA0\x9E\xBD" => "", # U+E07BD => -"\xF3\xA0\x9E\xBE" => "", # U+E07BE => -"\xF3\xA0\x9E\xBF" => "", # U+E07BF => -"\xF3\xA0\x9F\x80" => "", # U+E07C0 => -"\xF3\xA0\x9F\x81" => "", # U+E07C1 => -"\xF3\xA0\x9F\x82" => "", # U+E07C2 => -"\xF3\xA0\x9F\x83" => "", # U+E07C3 => -"\xF3\xA0\x9F\x84" => "", # U+E07C4 => -"\xF3\xA0\x9F\x85" => "", # U+E07C5 => -"\xF3\xA0\x9F\x86" => "", # U+E07C6 => -"\xF3\xA0\x9F\x87" => "", # U+E07C7 => -"\xF3\xA0\x9F\x88" => "", # U+E07C8 => -"\xF3\xA0\x9F\x89" => "", # U+E07C9 => -"\xF3\xA0\x9F\x8A" => "", # U+E07CA => -"\xF3\xA0\x9F\x8B" => "", # U+E07CB => -"\xF3\xA0\x9F\x8C" => "", # U+E07CC => -"\xF3\xA0\x9F\x8D" => "", # U+E07CD => -"\xF3\xA0\x9F\x8E" => "", # U+E07CE => -"\xF3\xA0\x9F\x8F" => "", # U+E07CF => -"\xF3\xA0\x9F\x90" => "", # U+E07D0 => -"\xF3\xA0\x9F\x91" => "", # U+E07D1 => -"\xF3\xA0\x9F\x92" => "", # U+E07D2 => -"\xF3\xA0\x9F\x93" => "", # U+E07D3 => -"\xF3\xA0\x9F\x94" => "", # U+E07D4 => -"\xF3\xA0\x9F\x95" => "", # U+E07D5 => -"\xF3\xA0\x9F\x96" => "", # U+E07D6 => -"\xF3\xA0\x9F\x97" => "", # U+E07D7 => -"\xF3\xA0\x9F\x98" => "", # U+E07D8 => -"\xF3\xA0\x9F\x99" => "", # U+E07D9 => -"\xF3\xA0\x9F\x9A" => "", # U+E07DA => -"\xF3\xA0\x9F\x9B" => "", # U+E07DB => -"\xF3\xA0\x9F\x9C" => "", # U+E07DC => -"\xF3\xA0\x9F\x9D" => "", # U+E07DD => -"\xF3\xA0\x9F\x9E" => "", # U+E07DE => -"\xF3\xA0\x9F\x9F" => "", # U+E07DF => -"\xF3\xA0\x9F\xA0" => "", # U+E07E0 => -"\xF3\xA0\x9F\xA1" => "", # U+E07E1 => -"\xF3\xA0\x9F\xA2" => "", # U+E07E2 => -"\xF3\xA0\x9F\xA3" => "", # U+E07E3 => -"\xF3\xA0\x9F\xA4" => "", # U+E07E4 => -"\xF3\xA0\x9F\xA5" => "", # U+E07E5 => -"\xF3\xA0\x9F\xA6" => "", # U+E07E6 => -"\xF3\xA0\x9F\xA7" => "", # U+E07E7 => -"\xF3\xA0\x9F\xA8" => "", # U+E07E8 => -"\xF3\xA0\x9F\xA9" => "", # U+E07E9 => -"\xF3\xA0\x9F\xAA" => "", # U+E07EA => -"\xF3\xA0\x9F\xAB" => "", # U+E07EB => -"\xF3\xA0\x9F\xAC" => "", # U+E07EC => -"\xF3\xA0\x9F\xAD" => "", # U+E07ED => -"\xF3\xA0\x9F\xAE" => "", # U+E07EE => -"\xF3\xA0\x9F\xAF" => "", # U+E07EF => -"\xF3\xA0\x9F\xB0" => "", # U+E07F0 => -"\xF3\xA0\x9F\xB1" => "", # U+E07F1 => -"\xF3\xA0\x9F\xB2" => "", # U+E07F2 => -"\xF3\xA0\x9F\xB3" => "", # U+E07F3 => -"\xF3\xA0\x9F\xB4" => "", # U+E07F4 => -"\xF3\xA0\x9F\xB5" => "", # U+E07F5 => -"\xF3\xA0\x9F\xB6" => "", # U+E07F6 => -"\xF3\xA0\x9F\xB7" => "", # U+E07F7 => -"\xF3\xA0\x9F\xB8" => "", # U+E07F8 => -"\xF3\xA0\x9F\xB9" => "", # U+E07F9 => -"\xF3\xA0\x9F\xBA" => "", # U+E07FA => -"\xF3\xA0\x9F\xBB" => "", # U+E07FB => -"\xF3\xA0\x9F\xBC" => "", # U+E07FC => -"\xF3\xA0\x9F\xBD" => "", # U+E07FD => -"\xF3\xA0\x9F\xBE" => "", # U+E07FE => -"\xF3\xA0\x9F\xBF" => "", # U+E07FF => -"\xF3\xA0\xA0\x80" => "", # U+E0800 => -"\xF3\xA0\xA0\x81" => "", # U+E0801 => -"\xF3\xA0\xA0\x82" => "", # U+E0802 => -"\xF3\xA0\xA0\x83" => "", # U+E0803 => -"\xF3\xA0\xA0\x84" => "", # U+E0804 => -"\xF3\xA0\xA0\x85" => "", # U+E0805 => -"\xF3\xA0\xA0\x86" => "", # U+E0806 => -"\xF3\xA0\xA0\x87" => "", # U+E0807 => -"\xF3\xA0\xA0\x88" => "", # U+E0808 => -"\xF3\xA0\xA0\x89" => "", # U+E0809 => -"\xF3\xA0\xA0\x8A" => "", # U+E080A => -"\xF3\xA0\xA0\x8B" => "", # U+E080B => -"\xF3\xA0\xA0\x8C" => "", # U+E080C => -"\xF3\xA0\xA0\x8D" => "", # U+E080D => -"\xF3\xA0\xA0\x8E" => "", # U+E080E => -"\xF3\xA0\xA0\x8F" => "", # U+E080F => -"\xF3\xA0\xA0\x90" => "", # U+E0810 => -"\xF3\xA0\xA0\x91" => "", # U+E0811 => -"\xF3\xA0\xA0\x92" => "", # U+E0812 => -"\xF3\xA0\xA0\x93" => "", # U+E0813 => -"\xF3\xA0\xA0\x94" => "", # U+E0814 => -"\xF3\xA0\xA0\x95" => "", # U+E0815 => -"\xF3\xA0\xA0\x96" => "", # U+E0816 => -"\xF3\xA0\xA0\x97" => "", # U+E0817 => -"\xF3\xA0\xA0\x98" => "", # U+E0818 => -"\xF3\xA0\xA0\x99" => "", # U+E0819 => -"\xF3\xA0\xA0\x9A" => "", # U+E081A => -"\xF3\xA0\xA0\x9B" => "", # U+E081B => -"\xF3\xA0\xA0\x9C" => "", # U+E081C => -"\xF3\xA0\xA0\x9D" => "", # U+E081D => -"\xF3\xA0\xA0\x9E" => "", # U+E081E => -"\xF3\xA0\xA0\x9F" => "", # U+E081F => -"\xF3\xA0\xA0\xA0" => "", # U+E0820 => -"\xF3\xA0\xA0\xA1" => "", # U+E0821 => -"\xF3\xA0\xA0\xA2" => "", # U+E0822 => -"\xF3\xA0\xA0\xA3" => "", # U+E0823 => -"\xF3\xA0\xA0\xA4" => "", # U+E0824 => -"\xF3\xA0\xA0\xA5" => "", # U+E0825 => -"\xF3\xA0\xA0\xA6" => "", # U+E0826 => -"\xF3\xA0\xA0\xA7" => "", # U+E0827 => -"\xF3\xA0\xA0\xA8" => "", # U+E0828 => -"\xF3\xA0\xA0\xA9" => "", # U+E0829 => -"\xF3\xA0\xA0\xAA" => "", # U+E082A => -"\xF3\xA0\xA0\xAB" => "", # U+E082B => -"\xF3\xA0\xA0\xAC" => "", # U+E082C => -"\xF3\xA0\xA0\xAD" => "", # U+E082D => -"\xF3\xA0\xA0\xAE" => "", # U+E082E => -"\xF3\xA0\xA0\xAF" => "", # U+E082F => -"\xF3\xA0\xA0\xB0" => "", # U+E0830 => -"\xF3\xA0\xA0\xB1" => "", # U+E0831 => -"\xF3\xA0\xA0\xB2" => "", # U+E0832 => -"\xF3\xA0\xA0\xB3" => "", # U+E0833 => -"\xF3\xA0\xA0\xB4" => "", # U+E0834 => -"\xF3\xA0\xA0\xB5" => "", # U+E0835 => -"\xF3\xA0\xA0\xB6" => "", # U+E0836 => -"\xF3\xA0\xA0\xB7" => "", # U+E0837 => -"\xF3\xA0\xA0\xB8" => "", # U+E0838 => -"\xF3\xA0\xA0\xB9" => "", # U+E0839 => -"\xF3\xA0\xA0\xBA" => "", # U+E083A => -"\xF3\xA0\xA0\xBB" => "", # U+E083B => -"\xF3\xA0\xA0\xBC" => "", # U+E083C => -"\xF3\xA0\xA0\xBD" => "", # U+E083D => -"\xF3\xA0\xA0\xBE" => "", # U+E083E => -"\xF3\xA0\xA0\xBF" => "", # U+E083F => -"\xF3\xA0\xA1\x80" => "", # U+E0840 => -"\xF3\xA0\xA1\x81" => "", # U+E0841 => -"\xF3\xA0\xA1\x82" => "", # U+E0842 => -"\xF3\xA0\xA1\x83" => "", # U+E0843 => -"\xF3\xA0\xA1\x84" => "", # U+E0844 => -"\xF3\xA0\xA1\x85" => "", # U+E0845 => -"\xF3\xA0\xA1\x86" => "", # U+E0846 => -"\xF3\xA0\xA1\x87" => "", # U+E0847 => -"\xF3\xA0\xA1\x88" => "", # U+E0848 => -"\xF3\xA0\xA1\x89" => "", # U+E0849 => -"\xF3\xA0\xA1\x8A" => "", # U+E084A => -"\xF3\xA0\xA1\x8B" => "", # U+E084B => -"\xF3\xA0\xA1\x8C" => "", # U+E084C => -"\xF3\xA0\xA1\x8D" => "", # U+E084D => -"\xF3\xA0\xA1\x8E" => "", # U+E084E => -"\xF3\xA0\xA1\x8F" => "", # U+E084F => -"\xF3\xA0\xA1\x90" => "", # U+E0850 => -"\xF3\xA0\xA1\x91" => "", # U+E0851 => -"\xF3\xA0\xA1\x92" => "", # U+E0852 => -"\xF3\xA0\xA1\x93" => "", # U+E0853 => -"\xF3\xA0\xA1\x94" => "", # U+E0854 => -"\xF3\xA0\xA1\x95" => "", # U+E0855 => -"\xF3\xA0\xA1\x96" => "", # U+E0856 => -"\xF3\xA0\xA1\x97" => "", # U+E0857 => -"\xF3\xA0\xA1\x98" => "", # U+E0858 => -"\xF3\xA0\xA1\x99" => "", # U+E0859 => -"\xF3\xA0\xA1\x9A" => "", # U+E085A => -"\xF3\xA0\xA1\x9B" => "", # U+E085B => -"\xF3\xA0\xA1\x9C" => "", # U+E085C => -"\xF3\xA0\xA1\x9D" => "", # U+E085D => -"\xF3\xA0\xA1\x9E" => "", # U+E085E => -"\xF3\xA0\xA1\x9F" => "", # U+E085F => -"\xF3\xA0\xA1\xA0" => "", # U+E0860 => -"\xF3\xA0\xA1\xA1" => "", # U+E0861 => -"\xF3\xA0\xA1\xA2" => "", # U+E0862 => -"\xF3\xA0\xA1\xA3" => "", # U+E0863 => -"\xF3\xA0\xA1\xA4" => "", # U+E0864 => -"\xF3\xA0\xA1\xA5" => "", # U+E0865 => -"\xF3\xA0\xA1\xA6" => "", # U+E0866 => -"\xF3\xA0\xA1\xA7" => "", # U+E0867 => -"\xF3\xA0\xA1\xA8" => "", # U+E0868 => -"\xF3\xA0\xA1\xA9" => "", # U+E0869 => -"\xF3\xA0\xA1\xAA" => "", # U+E086A => -"\xF3\xA0\xA1\xAB" => "", # U+E086B => -"\xF3\xA0\xA1\xAC" => "", # U+E086C => -"\xF3\xA0\xA1\xAD" => "", # U+E086D => -"\xF3\xA0\xA1\xAE" => "", # U+E086E => -"\xF3\xA0\xA1\xAF" => "", # U+E086F => -"\xF3\xA0\xA1\xB0" => "", # U+E0870 => -"\xF3\xA0\xA1\xB1" => "", # U+E0871 => -"\xF3\xA0\xA1\xB2" => "", # U+E0872 => -"\xF3\xA0\xA1\xB3" => "", # U+E0873 => -"\xF3\xA0\xA1\xB4" => "", # U+E0874 => -"\xF3\xA0\xA1\xB5" => "", # U+E0875 => -"\xF3\xA0\xA1\xB6" => "", # U+E0876 => -"\xF3\xA0\xA1\xB7" => "", # U+E0877 => -"\xF3\xA0\xA1\xB8" => "", # U+E0878 => -"\xF3\xA0\xA1\xB9" => "", # U+E0879 => -"\xF3\xA0\xA1\xBA" => "", # U+E087A => -"\xF3\xA0\xA1\xBB" => "", # U+E087B => -"\xF3\xA0\xA1\xBC" => "", # U+E087C => -"\xF3\xA0\xA1\xBD" => "", # U+E087D => -"\xF3\xA0\xA1\xBE" => "", # U+E087E => -"\xF3\xA0\xA1\xBF" => "", # U+E087F => -"\xF3\xA0\xA2\x80" => "", # U+E0880 => -"\xF3\xA0\xA2\x81" => "", # U+E0881 => -"\xF3\xA0\xA2\x82" => "", # U+E0882 => -"\xF3\xA0\xA2\x83" => "", # U+E0883 => -"\xF3\xA0\xA2\x84" => "", # U+E0884 => -"\xF3\xA0\xA2\x85" => "", # U+E0885 => -"\xF3\xA0\xA2\x86" => "", # U+E0886 => -"\xF3\xA0\xA2\x87" => "", # U+E0887 => -"\xF3\xA0\xA2\x88" => "", # U+E0888 => -"\xF3\xA0\xA2\x89" => "", # U+E0889 => -"\xF3\xA0\xA2\x8A" => "", # U+E088A => -"\xF3\xA0\xA2\x8B" => "", # U+E088B => -"\xF3\xA0\xA2\x8C" => "", # U+E088C => -"\xF3\xA0\xA2\x8D" => "", # U+E088D => -"\xF3\xA0\xA2\x8E" => "", # U+E088E => -"\xF3\xA0\xA2\x8F" => "", # U+E088F => -"\xF3\xA0\xA2\x90" => "", # U+E0890 => -"\xF3\xA0\xA2\x91" => "", # U+E0891 => -"\xF3\xA0\xA2\x92" => "", # U+E0892 => -"\xF3\xA0\xA2\x93" => "", # U+E0893 => -"\xF3\xA0\xA2\x94" => "", # U+E0894 => -"\xF3\xA0\xA2\x95" => "", # U+E0895 => -"\xF3\xA0\xA2\x96" => "", # U+E0896 => -"\xF3\xA0\xA2\x97" => "", # U+E0897 => -"\xF3\xA0\xA2\x98" => "", # U+E0898 => -"\xF3\xA0\xA2\x99" => "", # U+E0899 => -"\xF3\xA0\xA2\x9A" => "", # U+E089A => -"\xF3\xA0\xA2\x9B" => "", # U+E089B => -"\xF3\xA0\xA2\x9C" => "", # U+E089C => -"\xF3\xA0\xA2\x9D" => "", # U+E089D => -"\xF3\xA0\xA2\x9E" => "", # U+E089E => -"\xF3\xA0\xA2\x9F" => "", # U+E089F => -"\xF3\xA0\xA2\xA0" => "", # U+E08A0 => -"\xF3\xA0\xA2\xA1" => "", # U+E08A1 => -"\xF3\xA0\xA2\xA2" => "", # U+E08A2 => -"\xF3\xA0\xA2\xA3" => "", # U+E08A3 => -"\xF3\xA0\xA2\xA4" => "", # U+E08A4 => -"\xF3\xA0\xA2\xA5" => "", # U+E08A5 => -"\xF3\xA0\xA2\xA6" => "", # U+E08A6 => -"\xF3\xA0\xA2\xA7" => "", # U+E08A7 => -"\xF3\xA0\xA2\xA8" => "", # U+E08A8 => -"\xF3\xA0\xA2\xA9" => "", # U+E08A9 => -"\xF3\xA0\xA2\xAA" => "", # U+E08AA => -"\xF3\xA0\xA2\xAB" => "", # U+E08AB => -"\xF3\xA0\xA2\xAC" => "", # U+E08AC => -"\xF3\xA0\xA2\xAD" => "", # U+E08AD => -"\xF3\xA0\xA2\xAE" => "", # U+E08AE => -"\xF3\xA0\xA2\xAF" => "", # U+E08AF => -"\xF3\xA0\xA2\xB0" => "", # U+E08B0 => -"\xF3\xA0\xA2\xB1" => "", # U+E08B1 => -"\xF3\xA0\xA2\xB2" => "", # U+E08B2 => -"\xF3\xA0\xA2\xB3" => "", # U+E08B3 => -"\xF3\xA0\xA2\xB4" => "", # U+E08B4 => -"\xF3\xA0\xA2\xB5" => "", # U+E08B5 => -"\xF3\xA0\xA2\xB6" => "", # U+E08B6 => -"\xF3\xA0\xA2\xB7" => "", # U+E08B7 => -"\xF3\xA0\xA2\xB8" => "", # U+E08B8 => -"\xF3\xA0\xA2\xB9" => "", # U+E08B9 => -"\xF3\xA0\xA2\xBA" => "", # U+E08BA => -"\xF3\xA0\xA2\xBB" => "", # U+E08BB => -"\xF3\xA0\xA2\xBC" => "", # U+E08BC => -"\xF3\xA0\xA2\xBD" => "", # U+E08BD => -"\xF3\xA0\xA2\xBE" => "", # U+E08BE => -"\xF3\xA0\xA2\xBF" => "", # U+E08BF => -"\xF3\xA0\xA3\x80" => "", # U+E08C0 => -"\xF3\xA0\xA3\x81" => "", # U+E08C1 => -"\xF3\xA0\xA3\x82" => "", # U+E08C2 => -"\xF3\xA0\xA3\x83" => "", # U+E08C3 => -"\xF3\xA0\xA3\x84" => "", # U+E08C4 => -"\xF3\xA0\xA3\x85" => "", # U+E08C5 => -"\xF3\xA0\xA3\x86" => "", # U+E08C6 => -"\xF3\xA0\xA3\x87" => "", # U+E08C7 => -"\xF3\xA0\xA3\x88" => "", # U+E08C8 => -"\xF3\xA0\xA3\x89" => "", # U+E08C9 => -"\xF3\xA0\xA3\x8A" => "", # U+E08CA => -"\xF3\xA0\xA3\x8B" => "", # U+E08CB => -"\xF3\xA0\xA3\x8C" => "", # U+E08CC => -"\xF3\xA0\xA3\x8D" => "", # U+E08CD => -"\xF3\xA0\xA3\x8E" => "", # U+E08CE => -"\xF3\xA0\xA3\x8F" => "", # U+E08CF => -"\xF3\xA0\xA3\x90" => "", # U+E08D0 => -"\xF3\xA0\xA3\x91" => "", # U+E08D1 => -"\xF3\xA0\xA3\x92" => "", # U+E08D2 => -"\xF3\xA0\xA3\x93" => "", # U+E08D3 => -"\xF3\xA0\xA3\x94" => "", # U+E08D4 => -"\xF3\xA0\xA3\x95" => "", # U+E08D5 => -"\xF3\xA0\xA3\x96" => "", # U+E08D6 => -"\xF3\xA0\xA3\x97" => "", # U+E08D7 => -"\xF3\xA0\xA3\x98" => "", # U+E08D8 => -"\xF3\xA0\xA3\x99" => "", # U+E08D9 => -"\xF3\xA0\xA3\x9A" => "", # U+E08DA => -"\xF3\xA0\xA3\x9B" => "", # U+E08DB => -"\xF3\xA0\xA3\x9C" => "", # U+E08DC => -"\xF3\xA0\xA3\x9D" => "", # U+E08DD => -"\xF3\xA0\xA3\x9E" => "", # U+E08DE => -"\xF3\xA0\xA3\x9F" => "", # U+E08DF => -"\xF3\xA0\xA3\xA0" => "", # U+E08E0 => -"\xF3\xA0\xA3\xA1" => "", # U+E08E1 => -"\xF3\xA0\xA3\xA2" => "", # U+E08E2 => -"\xF3\xA0\xA3\xA3" => "", # U+E08E3 => -"\xF3\xA0\xA3\xA4" => "", # U+E08E4 => -"\xF3\xA0\xA3\xA5" => "", # U+E08E5 => -"\xF3\xA0\xA3\xA6" => "", # U+E08E6 => -"\xF3\xA0\xA3\xA7" => "", # U+E08E7 => -"\xF3\xA0\xA3\xA8" => "", # U+E08E8 => -"\xF3\xA0\xA3\xA9" => "", # U+E08E9 => -"\xF3\xA0\xA3\xAA" => "", # U+E08EA => -"\xF3\xA0\xA3\xAB" => "", # U+E08EB => -"\xF3\xA0\xA3\xAC" => "", # U+E08EC => -"\xF3\xA0\xA3\xAD" => "", # U+E08ED => -"\xF3\xA0\xA3\xAE" => "", # U+E08EE => -"\xF3\xA0\xA3\xAF" => "", # U+E08EF => -"\xF3\xA0\xA3\xB0" => "", # U+E08F0 => -"\xF3\xA0\xA3\xB1" => "", # U+E08F1 => -"\xF3\xA0\xA3\xB2" => "", # U+E08F2 => -"\xF3\xA0\xA3\xB3" => "", # U+E08F3 => -"\xF3\xA0\xA3\xB4" => "", # U+E08F4 => -"\xF3\xA0\xA3\xB5" => "", # U+E08F5 => -"\xF3\xA0\xA3\xB6" => "", # U+E08F6 => -"\xF3\xA0\xA3\xB7" => "", # U+E08F7 => -"\xF3\xA0\xA3\xB8" => "", # U+E08F8 => -"\xF3\xA0\xA3\xB9" => "", # U+E08F9 => -"\xF3\xA0\xA3\xBA" => "", # U+E08FA => -"\xF3\xA0\xA3\xBB" => "", # U+E08FB => -"\xF3\xA0\xA3\xBC" => "", # U+E08FC => -"\xF3\xA0\xA3\xBD" => "", # U+E08FD => -"\xF3\xA0\xA3\xBE" => "", # U+E08FE => -"\xF3\xA0\xA3\xBF" => "", # U+E08FF => -"\xF3\xA0\xA4\x80" => "", # U+E0900 => -"\xF3\xA0\xA4\x81" => "", # U+E0901 => -"\xF3\xA0\xA4\x82" => "", # U+E0902 => -"\xF3\xA0\xA4\x83" => "", # U+E0903 => -"\xF3\xA0\xA4\x84" => "", # U+E0904 => -"\xF3\xA0\xA4\x85" => "", # U+E0905 => -"\xF3\xA0\xA4\x86" => "", # U+E0906 => -"\xF3\xA0\xA4\x87" => "", # U+E0907 => -"\xF3\xA0\xA4\x88" => "", # U+E0908 => -"\xF3\xA0\xA4\x89" => "", # U+E0909 => -"\xF3\xA0\xA4\x8A" => "", # U+E090A => -"\xF3\xA0\xA4\x8B" => "", # U+E090B => -"\xF3\xA0\xA4\x8C" => "", # U+E090C => -"\xF3\xA0\xA4\x8D" => "", # U+E090D => -"\xF3\xA0\xA4\x8E" => "", # U+E090E => -"\xF3\xA0\xA4\x8F" => "", # U+E090F => -"\xF3\xA0\xA4\x90" => "", # U+E0910 => -"\xF3\xA0\xA4\x91" => "", # U+E0911 => -"\xF3\xA0\xA4\x92" => "", # U+E0912 => -"\xF3\xA0\xA4\x93" => "", # U+E0913 => -"\xF3\xA0\xA4\x94" => "", # U+E0914 => -"\xF3\xA0\xA4\x95" => "", # U+E0915 => -"\xF3\xA0\xA4\x96" => "", # U+E0916 => -"\xF3\xA0\xA4\x97" => "", # U+E0917 => -"\xF3\xA0\xA4\x98" => "", # U+E0918 => -"\xF3\xA0\xA4\x99" => "", # U+E0919 => -"\xF3\xA0\xA4\x9A" => "", # U+E091A => -"\xF3\xA0\xA4\x9B" => "", # U+E091B => -"\xF3\xA0\xA4\x9C" => "", # U+E091C => -"\xF3\xA0\xA4\x9D" => "", # U+E091D => -"\xF3\xA0\xA4\x9E" => "", # U+E091E => -"\xF3\xA0\xA4\x9F" => "", # U+E091F => -"\xF3\xA0\xA4\xA0" => "", # U+E0920 => -"\xF3\xA0\xA4\xA1" => "", # U+E0921 => -"\xF3\xA0\xA4\xA2" => "", # U+E0922 => -"\xF3\xA0\xA4\xA3" => "", # U+E0923 => -"\xF3\xA0\xA4\xA4" => "", # U+E0924 => -"\xF3\xA0\xA4\xA5" => "", # U+E0925 => -"\xF3\xA0\xA4\xA6" => "", # U+E0926 => -"\xF3\xA0\xA4\xA7" => "", # U+E0927 => -"\xF3\xA0\xA4\xA8" => "", # U+E0928 => -"\xF3\xA0\xA4\xA9" => "", # U+E0929 => -"\xF3\xA0\xA4\xAA" => "", # U+E092A => -"\xF3\xA0\xA4\xAB" => "", # U+E092B => -"\xF3\xA0\xA4\xAC" => "", # U+E092C => -"\xF3\xA0\xA4\xAD" => "", # U+E092D => -"\xF3\xA0\xA4\xAE" => "", # U+E092E => -"\xF3\xA0\xA4\xAF" => "", # U+E092F => -"\xF3\xA0\xA4\xB0" => "", # U+E0930 => -"\xF3\xA0\xA4\xB1" => "", # U+E0931 => -"\xF3\xA0\xA4\xB2" => "", # U+E0932 => -"\xF3\xA0\xA4\xB3" => "", # U+E0933 => -"\xF3\xA0\xA4\xB4" => "", # U+E0934 => -"\xF3\xA0\xA4\xB5" => "", # U+E0935 => -"\xF3\xA0\xA4\xB6" => "", # U+E0936 => -"\xF3\xA0\xA4\xB7" => "", # U+E0937 => -"\xF3\xA0\xA4\xB8" => "", # U+E0938 => -"\xF3\xA0\xA4\xB9" => "", # U+E0939 => -"\xF3\xA0\xA4\xBA" => "", # U+E093A => -"\xF3\xA0\xA4\xBB" => "", # U+E093B => -"\xF3\xA0\xA4\xBC" => "", # U+E093C => -"\xF3\xA0\xA4\xBD" => "", # U+E093D => -"\xF3\xA0\xA4\xBE" => "", # U+E093E => -"\xF3\xA0\xA4\xBF" => "", # U+E093F => -"\xF3\xA0\xA5\x80" => "", # U+E0940 => -"\xF3\xA0\xA5\x81" => "", # U+E0941 => -"\xF3\xA0\xA5\x82" => "", # U+E0942 => -"\xF3\xA0\xA5\x83" => "", # U+E0943 => -"\xF3\xA0\xA5\x84" => "", # U+E0944 => -"\xF3\xA0\xA5\x85" => "", # U+E0945 => -"\xF3\xA0\xA5\x86" => "", # U+E0946 => -"\xF3\xA0\xA5\x87" => "", # U+E0947 => -"\xF3\xA0\xA5\x88" => "", # U+E0948 => -"\xF3\xA0\xA5\x89" => "", # U+E0949 => -"\xF3\xA0\xA5\x8A" => "", # U+E094A => -"\xF3\xA0\xA5\x8B" => "", # U+E094B => -"\xF3\xA0\xA5\x8C" => "", # U+E094C => -"\xF3\xA0\xA5\x8D" => "", # U+E094D => -"\xF3\xA0\xA5\x8E" => "", # U+E094E => -"\xF3\xA0\xA5\x8F" => "", # U+E094F => -"\xF3\xA0\xA5\x90" => "", # U+E0950 => -"\xF3\xA0\xA5\x91" => "", # U+E0951 => -"\xF3\xA0\xA5\x92" => "", # U+E0952 => -"\xF3\xA0\xA5\x93" => "", # U+E0953 => -"\xF3\xA0\xA5\x94" => "", # U+E0954 => -"\xF3\xA0\xA5\x95" => "", # U+E0955 => -"\xF3\xA0\xA5\x96" => "", # U+E0956 => -"\xF3\xA0\xA5\x97" => "", # U+E0957 => -"\xF3\xA0\xA5\x98" => "", # U+E0958 => -"\xF3\xA0\xA5\x99" => "", # U+E0959 => -"\xF3\xA0\xA5\x9A" => "", # U+E095A => -"\xF3\xA0\xA5\x9B" => "", # U+E095B => -"\xF3\xA0\xA5\x9C" => "", # U+E095C => -"\xF3\xA0\xA5\x9D" => "", # U+E095D => -"\xF3\xA0\xA5\x9E" => "", # U+E095E => -"\xF3\xA0\xA5\x9F" => "", # U+E095F => -"\xF3\xA0\xA5\xA0" => "", # U+E0960 => -"\xF3\xA0\xA5\xA1" => "", # U+E0961 => -"\xF3\xA0\xA5\xA2" => "", # U+E0962 => -"\xF3\xA0\xA5\xA3" => "", # U+E0963 => -"\xF3\xA0\xA5\xA4" => "", # U+E0964 => -"\xF3\xA0\xA5\xA5" => "", # U+E0965 => -"\xF3\xA0\xA5\xA6" => "", # U+E0966 => -"\xF3\xA0\xA5\xA7" => "", # U+E0967 => -"\xF3\xA0\xA5\xA8" => "", # U+E0968 => -"\xF3\xA0\xA5\xA9" => "", # U+E0969 => -"\xF3\xA0\xA5\xAA" => "", # U+E096A => -"\xF3\xA0\xA5\xAB" => "", # U+E096B => -"\xF3\xA0\xA5\xAC" => "", # U+E096C => -"\xF3\xA0\xA5\xAD" => "", # U+E096D => -"\xF3\xA0\xA5\xAE" => "", # U+E096E => -"\xF3\xA0\xA5\xAF" => "", # U+E096F => -"\xF3\xA0\xA5\xB0" => "", # U+E0970 => -"\xF3\xA0\xA5\xB1" => "", # U+E0971 => -"\xF3\xA0\xA5\xB2" => "", # U+E0972 => -"\xF3\xA0\xA5\xB3" => "", # U+E0973 => -"\xF3\xA0\xA5\xB4" => "", # U+E0974 => -"\xF3\xA0\xA5\xB5" => "", # U+E0975 => -"\xF3\xA0\xA5\xB6" => "", # U+E0976 => -"\xF3\xA0\xA5\xB7" => "", # U+E0977 => -"\xF3\xA0\xA5\xB8" => "", # U+E0978 => -"\xF3\xA0\xA5\xB9" => "", # U+E0979 => -"\xF3\xA0\xA5\xBA" => "", # U+E097A => -"\xF3\xA0\xA5\xBB" => "", # U+E097B => -"\xF3\xA0\xA5\xBC" => "", # U+E097C => -"\xF3\xA0\xA5\xBD" => "", # U+E097D => -"\xF3\xA0\xA5\xBE" => "", # U+E097E => -"\xF3\xA0\xA5\xBF" => "", # U+E097F => -"\xF3\xA0\xA6\x80" => "", # U+E0980 => -"\xF3\xA0\xA6\x81" => "", # U+E0981 => -"\xF3\xA0\xA6\x82" => "", # U+E0982 => -"\xF3\xA0\xA6\x83" => "", # U+E0983 => -"\xF3\xA0\xA6\x84" => "", # U+E0984 => -"\xF3\xA0\xA6\x85" => "", # U+E0985 => -"\xF3\xA0\xA6\x86" => "", # U+E0986 => -"\xF3\xA0\xA6\x87" => "", # U+E0987 => -"\xF3\xA0\xA6\x88" => "", # U+E0988 => -"\xF3\xA0\xA6\x89" => "", # U+E0989 => -"\xF3\xA0\xA6\x8A" => "", # U+E098A => -"\xF3\xA0\xA6\x8B" => "", # U+E098B => -"\xF3\xA0\xA6\x8C" => "", # U+E098C => -"\xF3\xA0\xA6\x8D" => "", # U+E098D => -"\xF3\xA0\xA6\x8E" => "", # U+E098E => -"\xF3\xA0\xA6\x8F" => "", # U+E098F => -"\xF3\xA0\xA6\x90" => "", # U+E0990 => -"\xF3\xA0\xA6\x91" => "", # U+E0991 => -"\xF3\xA0\xA6\x92" => "", # U+E0992 => -"\xF3\xA0\xA6\x93" => "", # U+E0993 => -"\xF3\xA0\xA6\x94" => "", # U+E0994 => -"\xF3\xA0\xA6\x95" => "", # U+E0995 => -"\xF3\xA0\xA6\x96" => "", # U+E0996 => -"\xF3\xA0\xA6\x97" => "", # U+E0997 => -"\xF3\xA0\xA6\x98" => "", # U+E0998 => -"\xF3\xA0\xA6\x99" => "", # U+E0999 => -"\xF3\xA0\xA6\x9A" => "", # U+E099A => -"\xF3\xA0\xA6\x9B" => "", # U+E099B => -"\xF3\xA0\xA6\x9C" => "", # U+E099C => -"\xF3\xA0\xA6\x9D" => "", # U+E099D => -"\xF3\xA0\xA6\x9E" => "", # U+E099E => -"\xF3\xA0\xA6\x9F" => "", # U+E099F => -"\xF3\xA0\xA6\xA0" => "", # U+E09A0 => -"\xF3\xA0\xA6\xA1" => "", # U+E09A1 => -"\xF3\xA0\xA6\xA2" => "", # U+E09A2 => -"\xF3\xA0\xA6\xA3" => "", # U+E09A3 => -"\xF3\xA0\xA6\xA4" => "", # U+E09A4 => -"\xF3\xA0\xA6\xA5" => "", # U+E09A5 => -"\xF3\xA0\xA6\xA6" => "", # U+E09A6 => -"\xF3\xA0\xA6\xA7" => "", # U+E09A7 => -"\xF3\xA0\xA6\xA8" => "", # U+E09A8 => -"\xF3\xA0\xA6\xA9" => "", # U+E09A9 => -"\xF3\xA0\xA6\xAA" => "", # U+E09AA => -"\xF3\xA0\xA6\xAB" => "", # U+E09AB => -"\xF3\xA0\xA6\xAC" => "", # U+E09AC => -"\xF3\xA0\xA6\xAD" => "", # U+E09AD => -"\xF3\xA0\xA6\xAE" => "", # U+E09AE => -"\xF3\xA0\xA6\xAF" => "", # U+E09AF => -"\xF3\xA0\xA6\xB0" => "", # U+E09B0 => -"\xF3\xA0\xA6\xB1" => "", # U+E09B1 => -"\xF3\xA0\xA6\xB2" => "", # U+E09B2 => -"\xF3\xA0\xA6\xB3" => "", # U+E09B3 => -"\xF3\xA0\xA6\xB4" => "", # U+E09B4 => -"\xF3\xA0\xA6\xB5" => "", # U+E09B5 => -"\xF3\xA0\xA6\xB6" => "", # U+E09B6 => -"\xF3\xA0\xA6\xB7" => "", # U+E09B7 => -"\xF3\xA0\xA6\xB8" => "", # U+E09B8 => -"\xF3\xA0\xA6\xB9" => "", # U+E09B9 => -"\xF3\xA0\xA6\xBA" => "", # U+E09BA => -"\xF3\xA0\xA6\xBB" => "", # U+E09BB => -"\xF3\xA0\xA6\xBC" => "", # U+E09BC => -"\xF3\xA0\xA6\xBD" => "", # U+E09BD => -"\xF3\xA0\xA6\xBE" => "", # U+E09BE => -"\xF3\xA0\xA6\xBF" => "", # U+E09BF => -"\xF3\xA0\xA7\x80" => "", # U+E09C0 => -"\xF3\xA0\xA7\x81" => "", # U+E09C1 => -"\xF3\xA0\xA7\x82" => "", # U+E09C2 => -"\xF3\xA0\xA7\x83" => "", # U+E09C3 => -"\xF3\xA0\xA7\x84" => "", # U+E09C4 => -"\xF3\xA0\xA7\x85" => "", # U+E09C5 => -"\xF3\xA0\xA7\x86" => "", # U+E09C6 => -"\xF3\xA0\xA7\x87" => "", # U+E09C7 => -"\xF3\xA0\xA7\x88" => "", # U+E09C8 => -"\xF3\xA0\xA7\x89" => "", # U+E09C9 => -"\xF3\xA0\xA7\x8A" => "", # U+E09CA => -"\xF3\xA0\xA7\x8B" => "", # U+E09CB => -"\xF3\xA0\xA7\x8C" => "", # U+E09CC => -"\xF3\xA0\xA7\x8D" => "", # U+E09CD => -"\xF3\xA0\xA7\x8E" => "", # U+E09CE => -"\xF3\xA0\xA7\x8F" => "", # U+E09CF => -"\xF3\xA0\xA7\x90" => "", # U+E09D0 => -"\xF3\xA0\xA7\x91" => "", # U+E09D1 => -"\xF3\xA0\xA7\x92" => "", # U+E09D2 => -"\xF3\xA0\xA7\x93" => "", # U+E09D3 => -"\xF3\xA0\xA7\x94" => "", # U+E09D4 => -"\xF3\xA0\xA7\x95" => "", # U+E09D5 => -"\xF3\xA0\xA7\x96" => "", # U+E09D6 => -"\xF3\xA0\xA7\x97" => "", # U+E09D7 => -"\xF3\xA0\xA7\x98" => "", # U+E09D8 => -"\xF3\xA0\xA7\x99" => "", # U+E09D9 => -"\xF3\xA0\xA7\x9A" => "", # U+E09DA => -"\xF3\xA0\xA7\x9B" => "", # U+E09DB => -"\xF3\xA0\xA7\x9C" => "", # U+E09DC => -"\xF3\xA0\xA7\x9D" => "", # U+E09DD => -"\xF3\xA0\xA7\x9E" => "", # U+E09DE => -"\xF3\xA0\xA7\x9F" => "", # U+E09DF => -"\xF3\xA0\xA7\xA0" => "", # U+E09E0 => -"\xF3\xA0\xA7\xA1" => "", # U+E09E1 => -"\xF3\xA0\xA7\xA2" => "", # U+E09E2 => -"\xF3\xA0\xA7\xA3" => "", # U+E09E3 => -"\xF3\xA0\xA7\xA4" => "", # U+E09E4 => -"\xF3\xA0\xA7\xA5" => "", # U+E09E5 => -"\xF3\xA0\xA7\xA6" => "", # U+E09E6 => -"\xF3\xA0\xA7\xA7" => "", # U+E09E7 => -"\xF3\xA0\xA7\xA8" => "", # U+E09E8 => -"\xF3\xA0\xA7\xA9" => "", # U+E09E9 => -"\xF3\xA0\xA7\xAA" => "", # U+E09EA => -"\xF3\xA0\xA7\xAB" => "", # U+E09EB => -"\xF3\xA0\xA7\xAC" => "", # U+E09EC => -"\xF3\xA0\xA7\xAD" => "", # U+E09ED => -"\xF3\xA0\xA7\xAE" => "", # U+E09EE => -"\xF3\xA0\xA7\xAF" => "", # U+E09EF => -"\xF3\xA0\xA7\xB0" => "", # U+E09F0 => -"\xF3\xA0\xA7\xB1" => "", # U+E09F1 => -"\xF3\xA0\xA7\xB2" => "", # U+E09F2 => -"\xF3\xA0\xA7\xB3" => "", # U+E09F3 => -"\xF3\xA0\xA7\xB4" => "", # U+E09F4 => -"\xF3\xA0\xA7\xB5" => "", # U+E09F5 => -"\xF3\xA0\xA7\xB6" => "", # U+E09F6 => -"\xF3\xA0\xA7\xB7" => "", # U+E09F7 => -"\xF3\xA0\xA7\xB8" => "", # U+E09F8 => -"\xF3\xA0\xA7\xB9" => "", # U+E09F9 => -"\xF3\xA0\xA7\xBA" => "", # U+E09FA => -"\xF3\xA0\xA7\xBB" => "", # U+E09FB => -"\xF3\xA0\xA7\xBC" => "", # U+E09FC => -"\xF3\xA0\xA7\xBD" => "", # U+E09FD => -"\xF3\xA0\xA7\xBE" => "", # U+E09FE => -"\xF3\xA0\xA7\xBF" => "", # U+E09FF => -"\xF3\xA0\xA8\x80" => "", # U+E0A00 => -"\xF3\xA0\xA8\x81" => "", # U+E0A01 => -"\xF3\xA0\xA8\x82" => "", # U+E0A02 => -"\xF3\xA0\xA8\x83" => "", # U+E0A03 => -"\xF3\xA0\xA8\x84" => "", # U+E0A04 => -"\xF3\xA0\xA8\x85" => "", # U+E0A05 => -"\xF3\xA0\xA8\x86" => "", # U+E0A06 => -"\xF3\xA0\xA8\x87" => "", # U+E0A07 => -"\xF3\xA0\xA8\x88" => "", # U+E0A08 => -"\xF3\xA0\xA8\x89" => "", # U+E0A09 => -"\xF3\xA0\xA8\x8A" => "", # U+E0A0A => -"\xF3\xA0\xA8\x8B" => "", # U+E0A0B => -"\xF3\xA0\xA8\x8C" => "", # U+E0A0C => -"\xF3\xA0\xA8\x8D" => "", # U+E0A0D => -"\xF3\xA0\xA8\x8E" => "", # U+E0A0E => -"\xF3\xA0\xA8\x8F" => "", # U+E0A0F => -"\xF3\xA0\xA8\x90" => "", # U+E0A10 => -"\xF3\xA0\xA8\x91" => "", # U+E0A11 => -"\xF3\xA0\xA8\x92" => "", # U+E0A12 => -"\xF3\xA0\xA8\x93" => "", # U+E0A13 => -"\xF3\xA0\xA8\x94" => "", # U+E0A14 => -"\xF3\xA0\xA8\x95" => "", # U+E0A15 => -"\xF3\xA0\xA8\x96" => "", # U+E0A16 => -"\xF3\xA0\xA8\x97" => "", # U+E0A17 => -"\xF3\xA0\xA8\x98" => "", # U+E0A18 => -"\xF3\xA0\xA8\x99" => "", # U+E0A19 => -"\xF3\xA0\xA8\x9A" => "", # U+E0A1A => -"\xF3\xA0\xA8\x9B" => "", # U+E0A1B => -"\xF3\xA0\xA8\x9C" => "", # U+E0A1C => -"\xF3\xA0\xA8\x9D" => "", # U+E0A1D => -"\xF3\xA0\xA8\x9E" => "", # U+E0A1E => -"\xF3\xA0\xA8\x9F" => "", # U+E0A1F => -"\xF3\xA0\xA8\xA0" => "", # U+E0A20 => -"\xF3\xA0\xA8\xA1" => "", # U+E0A21 => -"\xF3\xA0\xA8\xA2" => "", # U+E0A22 => -"\xF3\xA0\xA8\xA3" => "", # U+E0A23 => -"\xF3\xA0\xA8\xA4" => "", # U+E0A24 => -"\xF3\xA0\xA8\xA5" => "", # U+E0A25 => -"\xF3\xA0\xA8\xA6" => "", # U+E0A26 => -"\xF3\xA0\xA8\xA7" => "", # U+E0A27 => -"\xF3\xA0\xA8\xA8" => "", # U+E0A28 => -"\xF3\xA0\xA8\xA9" => "", # U+E0A29 => -"\xF3\xA0\xA8\xAA" => "", # U+E0A2A => -"\xF3\xA0\xA8\xAB" => "", # U+E0A2B => -"\xF3\xA0\xA8\xAC" => "", # U+E0A2C => -"\xF3\xA0\xA8\xAD" => "", # U+E0A2D => -"\xF3\xA0\xA8\xAE" => "", # U+E0A2E => -"\xF3\xA0\xA8\xAF" => "", # U+E0A2F => -"\xF3\xA0\xA8\xB0" => "", # U+E0A30 => -"\xF3\xA0\xA8\xB1" => "", # U+E0A31 => -"\xF3\xA0\xA8\xB2" => "", # U+E0A32 => -"\xF3\xA0\xA8\xB3" => "", # U+E0A33 => -"\xF3\xA0\xA8\xB4" => "", # U+E0A34 => -"\xF3\xA0\xA8\xB5" => "", # U+E0A35 => -"\xF3\xA0\xA8\xB6" => "", # U+E0A36 => -"\xF3\xA0\xA8\xB7" => "", # U+E0A37 => -"\xF3\xA0\xA8\xB8" => "", # U+E0A38 => -"\xF3\xA0\xA8\xB9" => "", # U+E0A39 => -"\xF3\xA0\xA8\xBA" => "", # U+E0A3A => -"\xF3\xA0\xA8\xBB" => "", # U+E0A3B => -"\xF3\xA0\xA8\xBC" => "", # U+E0A3C => -"\xF3\xA0\xA8\xBD" => "", # U+E0A3D => -"\xF3\xA0\xA8\xBE" => "", # U+E0A3E => -"\xF3\xA0\xA8\xBF" => "", # U+E0A3F => -"\xF3\xA0\xA9\x80" => "", # U+E0A40 => -"\xF3\xA0\xA9\x81" => "", # U+E0A41 => -"\xF3\xA0\xA9\x82" => "", # U+E0A42 => -"\xF3\xA0\xA9\x83" => "", # U+E0A43 => -"\xF3\xA0\xA9\x84" => "", # U+E0A44 => -"\xF3\xA0\xA9\x85" => "", # U+E0A45 => -"\xF3\xA0\xA9\x86" => "", # U+E0A46 => -"\xF3\xA0\xA9\x87" => "", # U+E0A47 => -"\xF3\xA0\xA9\x88" => "", # U+E0A48 => -"\xF3\xA0\xA9\x89" => "", # U+E0A49 => -"\xF3\xA0\xA9\x8A" => "", # U+E0A4A => -"\xF3\xA0\xA9\x8B" => "", # U+E0A4B => -"\xF3\xA0\xA9\x8C" => "", # U+E0A4C => -"\xF3\xA0\xA9\x8D" => "", # U+E0A4D => -"\xF3\xA0\xA9\x8E" => "", # U+E0A4E => -"\xF3\xA0\xA9\x8F" => "", # U+E0A4F => -"\xF3\xA0\xA9\x90" => "", # U+E0A50 => -"\xF3\xA0\xA9\x91" => "", # U+E0A51 => -"\xF3\xA0\xA9\x92" => "", # U+E0A52 => -"\xF3\xA0\xA9\x93" => "", # U+E0A53 => -"\xF3\xA0\xA9\x94" => "", # U+E0A54 => -"\xF3\xA0\xA9\x95" => "", # U+E0A55 => -"\xF3\xA0\xA9\x96" => "", # U+E0A56 => -"\xF3\xA0\xA9\x97" => "", # U+E0A57 => -"\xF3\xA0\xA9\x98" => "", # U+E0A58 => -"\xF3\xA0\xA9\x99" => "", # U+E0A59 => -"\xF3\xA0\xA9\x9A" => "", # U+E0A5A => -"\xF3\xA0\xA9\x9B" => "", # U+E0A5B => -"\xF3\xA0\xA9\x9C" => "", # U+E0A5C => -"\xF3\xA0\xA9\x9D" => "", # U+E0A5D => -"\xF3\xA0\xA9\x9E" => "", # U+E0A5E => -"\xF3\xA0\xA9\x9F" => "", # U+E0A5F => -"\xF3\xA0\xA9\xA0" => "", # U+E0A60 => -"\xF3\xA0\xA9\xA1" => "", # U+E0A61 => -"\xF3\xA0\xA9\xA2" => "", # U+E0A62 => -"\xF3\xA0\xA9\xA3" => "", # U+E0A63 => -"\xF3\xA0\xA9\xA4" => "", # U+E0A64 => -"\xF3\xA0\xA9\xA5" => "", # U+E0A65 => -"\xF3\xA0\xA9\xA6" => "", # U+E0A66 => -"\xF3\xA0\xA9\xA7" => "", # U+E0A67 => -"\xF3\xA0\xA9\xA8" => "", # U+E0A68 => -"\xF3\xA0\xA9\xA9" => "", # U+E0A69 => -"\xF3\xA0\xA9\xAA" => "", # U+E0A6A => -"\xF3\xA0\xA9\xAB" => "", # U+E0A6B => -"\xF3\xA0\xA9\xAC" => "", # U+E0A6C => -"\xF3\xA0\xA9\xAD" => "", # U+E0A6D => -"\xF3\xA0\xA9\xAE" => "", # U+E0A6E => -"\xF3\xA0\xA9\xAF" => "", # U+E0A6F => -"\xF3\xA0\xA9\xB0" => "", # U+E0A70 => -"\xF3\xA0\xA9\xB1" => "", # U+E0A71 => -"\xF3\xA0\xA9\xB2" => "", # U+E0A72 => -"\xF3\xA0\xA9\xB3" => "", # U+E0A73 => -"\xF3\xA0\xA9\xB4" => "", # U+E0A74 => -"\xF3\xA0\xA9\xB5" => "", # U+E0A75 => -"\xF3\xA0\xA9\xB6" => "", # U+E0A76 => -"\xF3\xA0\xA9\xB7" => "", # U+E0A77 => -"\xF3\xA0\xA9\xB8" => "", # U+E0A78 => -"\xF3\xA0\xA9\xB9" => "", # U+E0A79 => -"\xF3\xA0\xA9\xBA" => "", # U+E0A7A => -"\xF3\xA0\xA9\xBB" => "", # U+E0A7B => -"\xF3\xA0\xA9\xBC" => "", # U+E0A7C => -"\xF3\xA0\xA9\xBD" => "", # U+E0A7D => -"\xF3\xA0\xA9\xBE" => "", # U+E0A7E => -"\xF3\xA0\xA9\xBF" => "", # U+E0A7F => -"\xF3\xA0\xAA\x80" => "", # U+E0A80 => -"\xF3\xA0\xAA\x81" => "", # U+E0A81 => -"\xF3\xA0\xAA\x82" => "", # U+E0A82 => -"\xF3\xA0\xAA\x83" => "", # U+E0A83 => -"\xF3\xA0\xAA\x84" => "", # U+E0A84 => -"\xF3\xA0\xAA\x85" => "", # U+E0A85 => -"\xF3\xA0\xAA\x86" => "", # U+E0A86 => -"\xF3\xA0\xAA\x87" => "", # U+E0A87 => -"\xF3\xA0\xAA\x88" => "", # U+E0A88 => -"\xF3\xA0\xAA\x89" => "", # U+E0A89 => -"\xF3\xA0\xAA\x8A" => "", # U+E0A8A => -"\xF3\xA0\xAA\x8B" => "", # U+E0A8B => -"\xF3\xA0\xAA\x8C" => "", # U+E0A8C => -"\xF3\xA0\xAA\x8D" => "", # U+E0A8D => -"\xF3\xA0\xAA\x8E" => "", # U+E0A8E => -"\xF3\xA0\xAA\x8F" => "", # U+E0A8F => -"\xF3\xA0\xAA\x90" => "", # U+E0A90 => -"\xF3\xA0\xAA\x91" => "", # U+E0A91 => -"\xF3\xA0\xAA\x92" => "", # U+E0A92 => -"\xF3\xA0\xAA\x93" => "", # U+E0A93 => -"\xF3\xA0\xAA\x94" => "", # U+E0A94 => -"\xF3\xA0\xAA\x95" => "", # U+E0A95 => -"\xF3\xA0\xAA\x96" => "", # U+E0A96 => -"\xF3\xA0\xAA\x97" => "", # U+E0A97 => -"\xF3\xA0\xAA\x98" => "", # U+E0A98 => -"\xF3\xA0\xAA\x99" => "", # U+E0A99 => -"\xF3\xA0\xAA\x9A" => "", # U+E0A9A => -"\xF3\xA0\xAA\x9B" => "", # U+E0A9B => -"\xF3\xA0\xAA\x9C" => "", # U+E0A9C => -"\xF3\xA0\xAA\x9D" => "", # U+E0A9D => -"\xF3\xA0\xAA\x9E" => "", # U+E0A9E => -"\xF3\xA0\xAA\x9F" => "", # U+E0A9F => -"\xF3\xA0\xAA\xA0" => "", # U+E0AA0 => -"\xF3\xA0\xAA\xA1" => "", # U+E0AA1 => -"\xF3\xA0\xAA\xA2" => "", # U+E0AA2 => -"\xF3\xA0\xAA\xA3" => "", # U+E0AA3 => -"\xF3\xA0\xAA\xA4" => "", # U+E0AA4 => -"\xF3\xA0\xAA\xA5" => "", # U+E0AA5 => -"\xF3\xA0\xAA\xA6" => "", # U+E0AA6 => -"\xF3\xA0\xAA\xA7" => "", # U+E0AA7 => -"\xF3\xA0\xAA\xA8" => "", # U+E0AA8 => -"\xF3\xA0\xAA\xA9" => "", # U+E0AA9 => -"\xF3\xA0\xAA\xAA" => "", # U+E0AAA => -"\xF3\xA0\xAA\xAB" => "", # U+E0AAB => -"\xF3\xA0\xAA\xAC" => "", # U+E0AAC => -"\xF3\xA0\xAA\xAD" => "", # U+E0AAD => -"\xF3\xA0\xAA\xAE" => "", # U+E0AAE => -"\xF3\xA0\xAA\xAF" => "", # U+E0AAF => -"\xF3\xA0\xAA\xB0" => "", # U+E0AB0 => -"\xF3\xA0\xAA\xB1" => "", # U+E0AB1 => -"\xF3\xA0\xAA\xB2" => "", # U+E0AB2 => -"\xF3\xA0\xAA\xB3" => "", # U+E0AB3 => -"\xF3\xA0\xAA\xB4" => "", # U+E0AB4 => -"\xF3\xA0\xAA\xB5" => "", # U+E0AB5 => -"\xF3\xA0\xAA\xB6" => "", # U+E0AB6 => -"\xF3\xA0\xAA\xB7" => "", # U+E0AB7 => -"\xF3\xA0\xAA\xB8" => "", # U+E0AB8 => -"\xF3\xA0\xAA\xB9" => "", # U+E0AB9 => -"\xF3\xA0\xAA\xBA" => "", # U+E0ABA => -"\xF3\xA0\xAA\xBB" => "", # U+E0ABB => -"\xF3\xA0\xAA\xBC" => "", # U+E0ABC => -"\xF3\xA0\xAA\xBD" => "", # U+E0ABD => -"\xF3\xA0\xAA\xBE" => "", # U+E0ABE => -"\xF3\xA0\xAA\xBF" => "", # U+E0ABF => -"\xF3\xA0\xAB\x80" => "", # U+E0AC0 => -"\xF3\xA0\xAB\x81" => "", # U+E0AC1 => -"\xF3\xA0\xAB\x82" => "", # U+E0AC2 => -"\xF3\xA0\xAB\x83" => "", # U+E0AC3 => -"\xF3\xA0\xAB\x84" => "", # U+E0AC4 => -"\xF3\xA0\xAB\x85" => "", # U+E0AC5 => -"\xF3\xA0\xAB\x86" => "", # U+E0AC6 => -"\xF3\xA0\xAB\x87" => "", # U+E0AC7 => -"\xF3\xA0\xAB\x88" => "", # U+E0AC8 => -"\xF3\xA0\xAB\x89" => "", # U+E0AC9 => -"\xF3\xA0\xAB\x8A" => "", # U+E0ACA => -"\xF3\xA0\xAB\x8B" => "", # U+E0ACB => -"\xF3\xA0\xAB\x8C" => "", # U+E0ACC => -"\xF3\xA0\xAB\x8D" => "", # U+E0ACD => -"\xF3\xA0\xAB\x8E" => "", # U+E0ACE => -"\xF3\xA0\xAB\x8F" => "", # U+E0ACF => -"\xF3\xA0\xAB\x90" => "", # U+E0AD0 => -"\xF3\xA0\xAB\x91" => "", # U+E0AD1 => -"\xF3\xA0\xAB\x92" => "", # U+E0AD2 => -"\xF3\xA0\xAB\x93" => "", # U+E0AD3 => -"\xF3\xA0\xAB\x94" => "", # U+E0AD4 => -"\xF3\xA0\xAB\x95" => "", # U+E0AD5 => -"\xF3\xA0\xAB\x96" => "", # U+E0AD6 => -"\xF3\xA0\xAB\x97" => "", # U+E0AD7 => -"\xF3\xA0\xAB\x98" => "", # U+E0AD8 => -"\xF3\xA0\xAB\x99" => "", # U+E0AD9 => -"\xF3\xA0\xAB\x9A" => "", # U+E0ADA => -"\xF3\xA0\xAB\x9B" => "", # U+E0ADB => -"\xF3\xA0\xAB\x9C" => "", # U+E0ADC => -"\xF3\xA0\xAB\x9D" => "", # U+E0ADD => -"\xF3\xA0\xAB\x9E" => "", # U+E0ADE => -"\xF3\xA0\xAB\x9F" => "", # U+E0ADF => -"\xF3\xA0\xAB\xA0" => "", # U+E0AE0 => -"\xF3\xA0\xAB\xA1" => "", # U+E0AE1 => -"\xF3\xA0\xAB\xA2" => "", # U+E0AE2 => -"\xF3\xA0\xAB\xA3" => "", # U+E0AE3 => -"\xF3\xA0\xAB\xA4" => "", # U+E0AE4 => -"\xF3\xA0\xAB\xA5" => "", # U+E0AE5 => -"\xF3\xA0\xAB\xA6" => "", # U+E0AE6 => -"\xF3\xA0\xAB\xA7" => "", # U+E0AE7 => -"\xF3\xA0\xAB\xA8" => "", # U+E0AE8 => -"\xF3\xA0\xAB\xA9" => "", # U+E0AE9 => -"\xF3\xA0\xAB\xAA" => "", # U+E0AEA => -"\xF3\xA0\xAB\xAB" => "", # U+E0AEB => -"\xF3\xA0\xAB\xAC" => "", # U+E0AEC => -"\xF3\xA0\xAB\xAD" => "", # U+E0AED => -"\xF3\xA0\xAB\xAE" => "", # U+E0AEE => -"\xF3\xA0\xAB\xAF" => "", # U+E0AEF => -"\xF3\xA0\xAB\xB0" => "", # U+E0AF0 => -"\xF3\xA0\xAB\xB1" => "", # U+E0AF1 => -"\xF3\xA0\xAB\xB2" => "", # U+E0AF2 => -"\xF3\xA0\xAB\xB3" => "", # U+E0AF3 => -"\xF3\xA0\xAB\xB4" => "", # U+E0AF4 => -"\xF3\xA0\xAB\xB5" => "", # U+E0AF5 => -"\xF3\xA0\xAB\xB6" => "", # U+E0AF6 => -"\xF3\xA0\xAB\xB7" => "", # U+E0AF7 => -"\xF3\xA0\xAB\xB8" => "", # U+E0AF8 => -"\xF3\xA0\xAB\xB9" => "", # U+E0AF9 => -"\xF3\xA0\xAB\xBA" => "", # U+E0AFA => -"\xF3\xA0\xAB\xBB" => "", # U+E0AFB => -"\xF3\xA0\xAB\xBC" => "", # U+E0AFC => -"\xF3\xA0\xAB\xBD" => "", # U+E0AFD => -"\xF3\xA0\xAB\xBE" => "", # U+E0AFE => -"\xF3\xA0\xAB\xBF" => "", # U+E0AFF => -"\xF3\xA0\xAC\x80" => "", # U+E0B00 => -"\xF3\xA0\xAC\x81" => "", # U+E0B01 => -"\xF3\xA0\xAC\x82" => "", # U+E0B02 => -"\xF3\xA0\xAC\x83" => "", # U+E0B03 => -"\xF3\xA0\xAC\x84" => "", # U+E0B04 => -"\xF3\xA0\xAC\x85" => "", # U+E0B05 => -"\xF3\xA0\xAC\x86" => "", # U+E0B06 => -"\xF3\xA0\xAC\x87" => "", # U+E0B07 => -"\xF3\xA0\xAC\x88" => "", # U+E0B08 => -"\xF3\xA0\xAC\x89" => "", # U+E0B09 => -"\xF3\xA0\xAC\x8A" => "", # U+E0B0A => -"\xF3\xA0\xAC\x8B" => "", # U+E0B0B => -"\xF3\xA0\xAC\x8C" => "", # U+E0B0C => -"\xF3\xA0\xAC\x8D" => "", # U+E0B0D => -"\xF3\xA0\xAC\x8E" => "", # U+E0B0E => -"\xF3\xA0\xAC\x8F" => "", # U+E0B0F => -"\xF3\xA0\xAC\x90" => "", # U+E0B10 => -"\xF3\xA0\xAC\x91" => "", # U+E0B11 => -"\xF3\xA0\xAC\x92" => "", # U+E0B12 => -"\xF3\xA0\xAC\x93" => "", # U+E0B13 => -"\xF3\xA0\xAC\x94" => "", # U+E0B14 => -"\xF3\xA0\xAC\x95" => "", # U+E0B15 => -"\xF3\xA0\xAC\x96" => "", # U+E0B16 => -"\xF3\xA0\xAC\x97" => "", # U+E0B17 => -"\xF3\xA0\xAC\x98" => "", # U+E0B18 => -"\xF3\xA0\xAC\x99" => "", # U+E0B19 => -"\xF3\xA0\xAC\x9A" => "", # U+E0B1A => -"\xF3\xA0\xAC\x9B" => "", # U+E0B1B => -"\xF3\xA0\xAC\x9C" => "", # U+E0B1C => -"\xF3\xA0\xAC\x9D" => "", # U+E0B1D => -"\xF3\xA0\xAC\x9E" => "", # U+E0B1E => -"\xF3\xA0\xAC\x9F" => "", # U+E0B1F => -"\xF3\xA0\xAC\xA0" => "", # U+E0B20 => -"\xF3\xA0\xAC\xA1" => "", # U+E0B21 => -"\xF3\xA0\xAC\xA2" => "", # U+E0B22 => -"\xF3\xA0\xAC\xA3" => "", # U+E0B23 => -"\xF3\xA0\xAC\xA4" => "", # U+E0B24 => -"\xF3\xA0\xAC\xA5" => "", # U+E0B25 => -"\xF3\xA0\xAC\xA6" => "", # U+E0B26 => -"\xF3\xA0\xAC\xA7" => "", # U+E0B27 => -"\xF3\xA0\xAC\xA8" => "", # U+E0B28 => -"\xF3\xA0\xAC\xA9" => "", # U+E0B29 => -"\xF3\xA0\xAC\xAA" => "", # U+E0B2A => -"\xF3\xA0\xAC\xAB" => "", # U+E0B2B => -"\xF3\xA0\xAC\xAC" => "", # U+E0B2C => -"\xF3\xA0\xAC\xAD" => "", # U+E0B2D => -"\xF3\xA0\xAC\xAE" => "", # U+E0B2E => -"\xF3\xA0\xAC\xAF" => "", # U+E0B2F => -"\xF3\xA0\xAC\xB0" => "", # U+E0B30 => -"\xF3\xA0\xAC\xB1" => "", # U+E0B31 => -"\xF3\xA0\xAC\xB2" => "", # U+E0B32 => -"\xF3\xA0\xAC\xB3" => "", # U+E0B33 => -"\xF3\xA0\xAC\xB4" => "", # U+E0B34 => -"\xF3\xA0\xAC\xB5" => "", # U+E0B35 => -"\xF3\xA0\xAC\xB6" => "", # U+E0B36 => -"\xF3\xA0\xAC\xB7" => "", # U+E0B37 => -"\xF3\xA0\xAC\xB8" => "", # U+E0B38 => -"\xF3\xA0\xAC\xB9" => "", # U+E0B39 => -"\xF3\xA0\xAC\xBA" => "", # U+E0B3A => -"\xF3\xA0\xAC\xBB" => "", # U+E0B3B => -"\xF3\xA0\xAC\xBC" => "", # U+E0B3C => -"\xF3\xA0\xAC\xBD" => "", # U+E0B3D => -"\xF3\xA0\xAC\xBE" => "", # U+E0B3E => -"\xF3\xA0\xAC\xBF" => "", # U+E0B3F => -"\xF3\xA0\xAD\x80" => "", # U+E0B40 => -"\xF3\xA0\xAD\x81" => "", # U+E0B41 => -"\xF3\xA0\xAD\x82" => "", # U+E0B42 => -"\xF3\xA0\xAD\x83" => "", # U+E0B43 => -"\xF3\xA0\xAD\x84" => "", # U+E0B44 => -"\xF3\xA0\xAD\x85" => "", # U+E0B45 => -"\xF3\xA0\xAD\x86" => "", # U+E0B46 => -"\xF3\xA0\xAD\x87" => "", # U+E0B47 => -"\xF3\xA0\xAD\x88" => "", # U+E0B48 => -"\xF3\xA0\xAD\x89" => "", # U+E0B49 => -"\xF3\xA0\xAD\x8A" => "", # U+E0B4A => -"\xF3\xA0\xAD\x8B" => "", # U+E0B4B => -"\xF3\xA0\xAD\x8C" => "", # U+E0B4C => -"\xF3\xA0\xAD\x8D" => "", # U+E0B4D => -"\xF3\xA0\xAD\x8E" => "", # U+E0B4E => -"\xF3\xA0\xAD\x8F" => "", # U+E0B4F => -"\xF3\xA0\xAD\x90" => "", # U+E0B50 => -"\xF3\xA0\xAD\x91" => "", # U+E0B51 => -"\xF3\xA0\xAD\x92" => "", # U+E0B52 => -"\xF3\xA0\xAD\x93" => "", # U+E0B53 => -"\xF3\xA0\xAD\x94" => "", # U+E0B54 => -"\xF3\xA0\xAD\x95" => "", # U+E0B55 => -"\xF3\xA0\xAD\x96" => "", # U+E0B56 => -"\xF3\xA0\xAD\x97" => "", # U+E0B57 => -"\xF3\xA0\xAD\x98" => "", # U+E0B58 => -"\xF3\xA0\xAD\x99" => "", # U+E0B59 => -"\xF3\xA0\xAD\x9A" => "", # U+E0B5A => -"\xF3\xA0\xAD\x9B" => "", # U+E0B5B => -"\xF3\xA0\xAD\x9C" => "", # U+E0B5C => -"\xF3\xA0\xAD\x9D" => "", # U+E0B5D => -"\xF3\xA0\xAD\x9E" => "", # U+E0B5E => -"\xF3\xA0\xAD\x9F" => "", # U+E0B5F => -"\xF3\xA0\xAD\xA0" => "", # U+E0B60 => -"\xF3\xA0\xAD\xA1" => "", # U+E0B61 => -"\xF3\xA0\xAD\xA2" => "", # U+E0B62 => -"\xF3\xA0\xAD\xA3" => "", # U+E0B63 => -"\xF3\xA0\xAD\xA4" => "", # U+E0B64 => -"\xF3\xA0\xAD\xA5" => "", # U+E0B65 => -"\xF3\xA0\xAD\xA6" => "", # U+E0B66 => -"\xF3\xA0\xAD\xA7" => "", # U+E0B67 => -"\xF3\xA0\xAD\xA8" => "", # U+E0B68 => -"\xF3\xA0\xAD\xA9" => "", # U+E0B69 => -"\xF3\xA0\xAD\xAA" => "", # U+E0B6A => -"\xF3\xA0\xAD\xAB" => "", # U+E0B6B => -"\xF3\xA0\xAD\xAC" => "", # U+E0B6C => -"\xF3\xA0\xAD\xAD" => "", # U+E0B6D => -"\xF3\xA0\xAD\xAE" => "", # U+E0B6E => -"\xF3\xA0\xAD\xAF" => "", # U+E0B6F => -"\xF3\xA0\xAD\xB0" => "", # U+E0B70 => -"\xF3\xA0\xAD\xB1" => "", # U+E0B71 => -"\xF3\xA0\xAD\xB2" => "", # U+E0B72 => -"\xF3\xA0\xAD\xB3" => "", # U+E0B73 => -"\xF3\xA0\xAD\xB4" => "", # U+E0B74 => -"\xF3\xA0\xAD\xB5" => "", # U+E0B75 => -"\xF3\xA0\xAD\xB6" => "", # U+E0B76 => -"\xF3\xA0\xAD\xB7" => "", # U+E0B77 => -"\xF3\xA0\xAD\xB8" => "", # U+E0B78 => -"\xF3\xA0\xAD\xB9" => "", # U+E0B79 => -"\xF3\xA0\xAD\xBA" => "", # U+E0B7A => -"\xF3\xA0\xAD\xBB" => "", # U+E0B7B => -"\xF3\xA0\xAD\xBC" => "", # U+E0B7C => -"\xF3\xA0\xAD\xBD" => "", # U+E0B7D => -"\xF3\xA0\xAD\xBE" => "", # U+E0B7E => -"\xF3\xA0\xAD\xBF" => "", # U+E0B7F => -"\xF3\xA0\xAE\x80" => "", # U+E0B80 => -"\xF3\xA0\xAE\x81" => "", # U+E0B81 => -"\xF3\xA0\xAE\x82" => "", # U+E0B82 => -"\xF3\xA0\xAE\x83" => "", # U+E0B83 => -"\xF3\xA0\xAE\x84" => "", # U+E0B84 => -"\xF3\xA0\xAE\x85" => "", # U+E0B85 => -"\xF3\xA0\xAE\x86" => "", # U+E0B86 => -"\xF3\xA0\xAE\x87" => "", # U+E0B87 => -"\xF3\xA0\xAE\x88" => "", # U+E0B88 => -"\xF3\xA0\xAE\x89" => "", # U+E0B89 => -"\xF3\xA0\xAE\x8A" => "", # U+E0B8A => -"\xF3\xA0\xAE\x8B" => "", # U+E0B8B => -"\xF3\xA0\xAE\x8C" => "", # U+E0B8C => -"\xF3\xA0\xAE\x8D" => "", # U+E0B8D => -"\xF3\xA0\xAE\x8E" => "", # U+E0B8E => -"\xF3\xA0\xAE\x8F" => "", # U+E0B8F => -"\xF3\xA0\xAE\x90" => "", # U+E0B90 => -"\xF3\xA0\xAE\x91" => "", # U+E0B91 => -"\xF3\xA0\xAE\x92" => "", # U+E0B92 => -"\xF3\xA0\xAE\x93" => "", # U+E0B93 => -"\xF3\xA0\xAE\x94" => "", # U+E0B94 => -"\xF3\xA0\xAE\x95" => "", # U+E0B95 => -"\xF3\xA0\xAE\x96" => "", # U+E0B96 => -"\xF3\xA0\xAE\x97" => "", # U+E0B97 => -"\xF3\xA0\xAE\x98" => "", # U+E0B98 => -"\xF3\xA0\xAE\x99" => "", # U+E0B99 => -"\xF3\xA0\xAE\x9A" => "", # U+E0B9A => -"\xF3\xA0\xAE\x9B" => "", # U+E0B9B => -"\xF3\xA0\xAE\x9C" => "", # U+E0B9C => -"\xF3\xA0\xAE\x9D" => "", # U+E0B9D => -"\xF3\xA0\xAE\x9E" => "", # U+E0B9E => -"\xF3\xA0\xAE\x9F" => "", # U+E0B9F => -"\xF3\xA0\xAE\xA0" => "", # U+E0BA0 => -"\xF3\xA0\xAE\xA1" => "", # U+E0BA1 => -"\xF3\xA0\xAE\xA2" => "", # U+E0BA2 => -"\xF3\xA0\xAE\xA3" => "", # U+E0BA3 => -"\xF3\xA0\xAE\xA4" => "", # U+E0BA4 => -"\xF3\xA0\xAE\xA5" => "", # U+E0BA5 => -"\xF3\xA0\xAE\xA6" => "", # U+E0BA6 => -"\xF3\xA0\xAE\xA7" => "", # U+E0BA7 => -"\xF3\xA0\xAE\xA8" => "", # U+E0BA8 => -"\xF3\xA0\xAE\xA9" => "", # U+E0BA9 => -"\xF3\xA0\xAE\xAA" => "", # U+E0BAA => -"\xF3\xA0\xAE\xAB" => "", # U+E0BAB => -"\xF3\xA0\xAE\xAC" => "", # U+E0BAC => -"\xF3\xA0\xAE\xAD" => "", # U+E0BAD => -"\xF3\xA0\xAE\xAE" => "", # U+E0BAE => -"\xF3\xA0\xAE\xAF" => "", # U+E0BAF => -"\xF3\xA0\xAE\xB0" => "", # U+E0BB0 => -"\xF3\xA0\xAE\xB1" => "", # U+E0BB1 => -"\xF3\xA0\xAE\xB2" => "", # U+E0BB2 => -"\xF3\xA0\xAE\xB3" => "", # U+E0BB3 => -"\xF3\xA0\xAE\xB4" => "", # U+E0BB4 => -"\xF3\xA0\xAE\xB5" => "", # U+E0BB5 => -"\xF3\xA0\xAE\xB6" => "", # U+E0BB6 => -"\xF3\xA0\xAE\xB7" => "", # U+E0BB7 => -"\xF3\xA0\xAE\xB8" => "", # U+E0BB8 => -"\xF3\xA0\xAE\xB9" => "", # U+E0BB9 => -"\xF3\xA0\xAE\xBA" => "", # U+E0BBA => -"\xF3\xA0\xAE\xBB" => "", # U+E0BBB => -"\xF3\xA0\xAE\xBC" => "", # U+E0BBC => -"\xF3\xA0\xAE\xBD" => "", # U+E0BBD => -"\xF3\xA0\xAE\xBE" => "", # U+E0BBE => -"\xF3\xA0\xAE\xBF" => "", # U+E0BBF => -"\xF3\xA0\xAF\x80" => "", # U+E0BC0 => -"\xF3\xA0\xAF\x81" => "", # U+E0BC1 => -"\xF3\xA0\xAF\x82" => "", # U+E0BC2 => -"\xF3\xA0\xAF\x83" => "", # U+E0BC3 => -"\xF3\xA0\xAF\x84" => "", # U+E0BC4 => -"\xF3\xA0\xAF\x85" => "", # U+E0BC5 => -"\xF3\xA0\xAF\x86" => "", # U+E0BC6 => -"\xF3\xA0\xAF\x87" => "", # U+E0BC7 => -"\xF3\xA0\xAF\x88" => "", # U+E0BC8 => -"\xF3\xA0\xAF\x89" => "", # U+E0BC9 => -"\xF3\xA0\xAF\x8A" => "", # U+E0BCA => -"\xF3\xA0\xAF\x8B" => "", # U+E0BCB => -"\xF3\xA0\xAF\x8C" => "", # U+E0BCC => -"\xF3\xA0\xAF\x8D" => "", # U+E0BCD => -"\xF3\xA0\xAF\x8E" => "", # U+E0BCE => -"\xF3\xA0\xAF\x8F" => "", # U+E0BCF => -"\xF3\xA0\xAF\x90" => "", # U+E0BD0 => -"\xF3\xA0\xAF\x91" => "", # U+E0BD1 => -"\xF3\xA0\xAF\x92" => "", # U+E0BD2 => -"\xF3\xA0\xAF\x93" => "", # U+E0BD3 => -"\xF3\xA0\xAF\x94" => "", # U+E0BD4 => -"\xF3\xA0\xAF\x95" => "", # U+E0BD5 => -"\xF3\xA0\xAF\x96" => "", # U+E0BD6 => -"\xF3\xA0\xAF\x97" => "", # U+E0BD7 => -"\xF3\xA0\xAF\x98" => "", # U+E0BD8 => -"\xF3\xA0\xAF\x99" => "", # U+E0BD9 => -"\xF3\xA0\xAF\x9A" => "", # U+E0BDA => -"\xF3\xA0\xAF\x9B" => "", # U+E0BDB => -"\xF3\xA0\xAF\x9C" => "", # U+E0BDC => -"\xF3\xA0\xAF\x9D" => "", # U+E0BDD => -"\xF3\xA0\xAF\x9E" => "", # U+E0BDE => -"\xF3\xA0\xAF\x9F" => "", # U+E0BDF => -"\xF3\xA0\xAF\xA0" => "", # U+E0BE0 => -"\xF3\xA0\xAF\xA1" => "", # U+E0BE1 => -"\xF3\xA0\xAF\xA2" => "", # U+E0BE2 => -"\xF3\xA0\xAF\xA3" => "", # U+E0BE3 => -"\xF3\xA0\xAF\xA4" => "", # U+E0BE4 => -"\xF3\xA0\xAF\xA5" => "", # U+E0BE5 => -"\xF3\xA0\xAF\xA6" => "", # U+E0BE6 => -"\xF3\xA0\xAF\xA7" => "", # U+E0BE7 => -"\xF3\xA0\xAF\xA8" => "", # U+E0BE8 => -"\xF3\xA0\xAF\xA9" => "", # U+E0BE9 => -"\xF3\xA0\xAF\xAA" => "", # U+E0BEA => -"\xF3\xA0\xAF\xAB" => "", # U+E0BEB => -"\xF3\xA0\xAF\xAC" => "", # U+E0BEC => -"\xF3\xA0\xAF\xAD" => "", # U+E0BED => -"\xF3\xA0\xAF\xAE" => "", # U+E0BEE => -"\xF3\xA0\xAF\xAF" => "", # U+E0BEF => -"\xF3\xA0\xAF\xB0" => "", # U+E0BF0 => -"\xF3\xA0\xAF\xB1" => "", # U+E0BF1 => -"\xF3\xA0\xAF\xB2" => "", # U+E0BF2 => -"\xF3\xA0\xAF\xB3" => "", # U+E0BF3 => -"\xF3\xA0\xAF\xB4" => "", # U+E0BF4 => -"\xF3\xA0\xAF\xB5" => "", # U+E0BF5 => -"\xF3\xA0\xAF\xB6" => "", # U+E0BF6 => -"\xF3\xA0\xAF\xB7" => "", # U+E0BF7 => -"\xF3\xA0\xAF\xB8" => "", # U+E0BF8 => -"\xF3\xA0\xAF\xB9" => "", # U+E0BF9 => -"\xF3\xA0\xAF\xBA" => "", # U+E0BFA => -"\xF3\xA0\xAF\xBB" => "", # U+E0BFB => -"\xF3\xA0\xAF\xBC" => "", # U+E0BFC => -"\xF3\xA0\xAF\xBD" => "", # U+E0BFD => -"\xF3\xA0\xAF\xBE" => "", # U+E0BFE => -"\xF3\xA0\xAF\xBF" => "", # U+E0BFF => -"\xF3\xA0\xB0\x80" => "", # U+E0C00 => -"\xF3\xA0\xB0\x81" => "", # U+E0C01 => -"\xF3\xA0\xB0\x82" => "", # U+E0C02 => -"\xF3\xA0\xB0\x83" => "", # U+E0C03 => -"\xF3\xA0\xB0\x84" => "", # U+E0C04 => -"\xF3\xA0\xB0\x85" => "", # U+E0C05 => -"\xF3\xA0\xB0\x86" => "", # U+E0C06 => -"\xF3\xA0\xB0\x87" => "", # U+E0C07 => -"\xF3\xA0\xB0\x88" => "", # U+E0C08 => -"\xF3\xA0\xB0\x89" => "", # U+E0C09 => -"\xF3\xA0\xB0\x8A" => "", # U+E0C0A => -"\xF3\xA0\xB0\x8B" => "", # U+E0C0B => -"\xF3\xA0\xB0\x8C" => "", # U+E0C0C => -"\xF3\xA0\xB0\x8D" => "", # U+E0C0D => -"\xF3\xA0\xB0\x8E" => "", # U+E0C0E => -"\xF3\xA0\xB0\x8F" => "", # U+E0C0F => -"\xF3\xA0\xB0\x90" => "", # U+E0C10 => -"\xF3\xA0\xB0\x91" => "", # U+E0C11 => -"\xF3\xA0\xB0\x92" => "", # U+E0C12 => -"\xF3\xA0\xB0\x93" => "", # U+E0C13 => -"\xF3\xA0\xB0\x94" => "", # U+E0C14 => -"\xF3\xA0\xB0\x95" => "", # U+E0C15 => -"\xF3\xA0\xB0\x96" => "", # U+E0C16 => -"\xF3\xA0\xB0\x97" => "", # U+E0C17 => -"\xF3\xA0\xB0\x98" => "", # U+E0C18 => -"\xF3\xA0\xB0\x99" => "", # U+E0C19 => -"\xF3\xA0\xB0\x9A" => "", # U+E0C1A => -"\xF3\xA0\xB0\x9B" => "", # U+E0C1B => -"\xF3\xA0\xB0\x9C" => "", # U+E0C1C => -"\xF3\xA0\xB0\x9D" => "", # U+E0C1D => -"\xF3\xA0\xB0\x9E" => "", # U+E0C1E => -"\xF3\xA0\xB0\x9F" => "", # U+E0C1F => -"\xF3\xA0\xB0\xA0" => "", # U+E0C20 => -"\xF3\xA0\xB0\xA1" => "", # U+E0C21 => -"\xF3\xA0\xB0\xA2" => "", # U+E0C22 => -"\xF3\xA0\xB0\xA3" => "", # U+E0C23 => -"\xF3\xA0\xB0\xA4" => "", # U+E0C24 => -"\xF3\xA0\xB0\xA5" => "", # U+E0C25 => -"\xF3\xA0\xB0\xA6" => "", # U+E0C26 => -"\xF3\xA0\xB0\xA7" => "", # U+E0C27 => -"\xF3\xA0\xB0\xA8" => "", # U+E0C28 => -"\xF3\xA0\xB0\xA9" => "", # U+E0C29 => -"\xF3\xA0\xB0\xAA" => "", # U+E0C2A => -"\xF3\xA0\xB0\xAB" => "", # U+E0C2B => -"\xF3\xA0\xB0\xAC" => "", # U+E0C2C => -"\xF3\xA0\xB0\xAD" => "", # U+E0C2D => -"\xF3\xA0\xB0\xAE" => "", # U+E0C2E => -"\xF3\xA0\xB0\xAF" => "", # U+E0C2F => -"\xF3\xA0\xB0\xB0" => "", # U+E0C30 => -"\xF3\xA0\xB0\xB1" => "", # U+E0C31 => -"\xF3\xA0\xB0\xB2" => "", # U+E0C32 => -"\xF3\xA0\xB0\xB3" => "", # U+E0C33 => -"\xF3\xA0\xB0\xB4" => "", # U+E0C34 => -"\xF3\xA0\xB0\xB5" => "", # U+E0C35 => -"\xF3\xA0\xB0\xB6" => "", # U+E0C36 => -"\xF3\xA0\xB0\xB7" => "", # U+E0C37 => -"\xF3\xA0\xB0\xB8" => "", # U+E0C38 => -"\xF3\xA0\xB0\xB9" => "", # U+E0C39 => -"\xF3\xA0\xB0\xBA" => "", # U+E0C3A => -"\xF3\xA0\xB0\xBB" => "", # U+E0C3B => -"\xF3\xA0\xB0\xBC" => "", # U+E0C3C => -"\xF3\xA0\xB0\xBD" => "", # U+E0C3D => -"\xF3\xA0\xB0\xBE" => "", # U+E0C3E => -"\xF3\xA0\xB0\xBF" => "", # U+E0C3F => -"\xF3\xA0\xB1\x80" => "", # U+E0C40 => -"\xF3\xA0\xB1\x81" => "", # U+E0C41 => -"\xF3\xA0\xB1\x82" => "", # U+E0C42 => -"\xF3\xA0\xB1\x83" => "", # U+E0C43 => -"\xF3\xA0\xB1\x84" => "", # U+E0C44 => -"\xF3\xA0\xB1\x85" => "", # U+E0C45 => -"\xF3\xA0\xB1\x86" => "", # U+E0C46 => -"\xF3\xA0\xB1\x87" => "", # U+E0C47 => -"\xF3\xA0\xB1\x88" => "", # U+E0C48 => -"\xF3\xA0\xB1\x89" => "", # U+E0C49 => -"\xF3\xA0\xB1\x8A" => "", # U+E0C4A => -"\xF3\xA0\xB1\x8B" => "", # U+E0C4B => -"\xF3\xA0\xB1\x8C" => "", # U+E0C4C => -"\xF3\xA0\xB1\x8D" => "", # U+E0C4D => -"\xF3\xA0\xB1\x8E" => "", # U+E0C4E => -"\xF3\xA0\xB1\x8F" => "", # U+E0C4F => -"\xF3\xA0\xB1\x90" => "", # U+E0C50 => -"\xF3\xA0\xB1\x91" => "", # U+E0C51 => -"\xF3\xA0\xB1\x92" => "", # U+E0C52 => -"\xF3\xA0\xB1\x93" => "", # U+E0C53 => -"\xF3\xA0\xB1\x94" => "", # U+E0C54 => -"\xF3\xA0\xB1\x95" => "", # U+E0C55 => -"\xF3\xA0\xB1\x96" => "", # U+E0C56 => -"\xF3\xA0\xB1\x97" => "", # U+E0C57 => -"\xF3\xA0\xB1\x98" => "", # U+E0C58 => -"\xF3\xA0\xB1\x99" => "", # U+E0C59 => -"\xF3\xA0\xB1\x9A" => "", # U+E0C5A => -"\xF3\xA0\xB1\x9B" => "", # U+E0C5B => -"\xF3\xA0\xB1\x9C" => "", # U+E0C5C => -"\xF3\xA0\xB1\x9D" => "", # U+E0C5D => -"\xF3\xA0\xB1\x9E" => "", # U+E0C5E => -"\xF3\xA0\xB1\x9F" => "", # U+E0C5F => -"\xF3\xA0\xB1\xA0" => "", # U+E0C60 => -"\xF3\xA0\xB1\xA1" => "", # U+E0C61 => -"\xF3\xA0\xB1\xA2" => "", # U+E0C62 => -"\xF3\xA0\xB1\xA3" => "", # U+E0C63 => -"\xF3\xA0\xB1\xA4" => "", # U+E0C64 => -"\xF3\xA0\xB1\xA5" => "", # U+E0C65 => -"\xF3\xA0\xB1\xA6" => "", # U+E0C66 => -"\xF3\xA0\xB1\xA7" => "", # U+E0C67 => -"\xF3\xA0\xB1\xA8" => "", # U+E0C68 => -"\xF3\xA0\xB1\xA9" => "", # U+E0C69 => -"\xF3\xA0\xB1\xAA" => "", # U+E0C6A => -"\xF3\xA0\xB1\xAB" => "", # U+E0C6B => -"\xF3\xA0\xB1\xAC" => "", # U+E0C6C => -"\xF3\xA0\xB1\xAD" => "", # U+E0C6D => -"\xF3\xA0\xB1\xAE" => "", # U+E0C6E => -"\xF3\xA0\xB1\xAF" => "", # U+E0C6F => -"\xF3\xA0\xB1\xB0" => "", # U+E0C70 => -"\xF3\xA0\xB1\xB1" => "", # U+E0C71 => -"\xF3\xA0\xB1\xB2" => "", # U+E0C72 => -"\xF3\xA0\xB1\xB3" => "", # U+E0C73 => -"\xF3\xA0\xB1\xB4" => "", # U+E0C74 => -"\xF3\xA0\xB1\xB5" => "", # U+E0C75 => -"\xF3\xA0\xB1\xB6" => "", # U+E0C76 => -"\xF3\xA0\xB1\xB7" => "", # U+E0C77 => -"\xF3\xA0\xB1\xB8" => "", # U+E0C78 => -"\xF3\xA0\xB1\xB9" => "", # U+E0C79 => -"\xF3\xA0\xB1\xBA" => "", # U+E0C7A => -"\xF3\xA0\xB1\xBB" => "", # U+E0C7B => -"\xF3\xA0\xB1\xBC" => "", # U+E0C7C => -"\xF3\xA0\xB1\xBD" => "", # U+E0C7D => -"\xF3\xA0\xB1\xBE" => "", # U+E0C7E => -"\xF3\xA0\xB1\xBF" => "", # U+E0C7F => -"\xF3\xA0\xB2\x80" => "", # U+E0C80 => -"\xF3\xA0\xB2\x81" => "", # U+E0C81 => -"\xF3\xA0\xB2\x82" => "", # U+E0C82 => -"\xF3\xA0\xB2\x83" => "", # U+E0C83 => -"\xF3\xA0\xB2\x84" => "", # U+E0C84 => -"\xF3\xA0\xB2\x85" => "", # U+E0C85 => -"\xF3\xA0\xB2\x86" => "", # U+E0C86 => -"\xF3\xA0\xB2\x87" => "", # U+E0C87 => -"\xF3\xA0\xB2\x88" => "", # U+E0C88 => -"\xF3\xA0\xB2\x89" => "", # U+E0C89 => -"\xF3\xA0\xB2\x8A" => "", # U+E0C8A => -"\xF3\xA0\xB2\x8B" => "", # U+E0C8B => -"\xF3\xA0\xB2\x8C" => "", # U+E0C8C => -"\xF3\xA0\xB2\x8D" => "", # U+E0C8D => -"\xF3\xA0\xB2\x8E" => "", # U+E0C8E => -"\xF3\xA0\xB2\x8F" => "", # U+E0C8F => -"\xF3\xA0\xB2\x90" => "", # U+E0C90 => -"\xF3\xA0\xB2\x91" => "", # U+E0C91 => -"\xF3\xA0\xB2\x92" => "", # U+E0C92 => -"\xF3\xA0\xB2\x93" => "", # U+E0C93 => -"\xF3\xA0\xB2\x94" => "", # U+E0C94 => -"\xF3\xA0\xB2\x95" => "", # U+E0C95 => -"\xF3\xA0\xB2\x96" => "", # U+E0C96 => -"\xF3\xA0\xB2\x97" => "", # U+E0C97 => -"\xF3\xA0\xB2\x98" => "", # U+E0C98 => -"\xF3\xA0\xB2\x99" => "", # U+E0C99 => -"\xF3\xA0\xB2\x9A" => "", # U+E0C9A => -"\xF3\xA0\xB2\x9B" => "", # U+E0C9B => -"\xF3\xA0\xB2\x9C" => "", # U+E0C9C => -"\xF3\xA0\xB2\x9D" => "", # U+E0C9D => -"\xF3\xA0\xB2\x9E" => "", # U+E0C9E => -"\xF3\xA0\xB2\x9F" => "", # U+E0C9F => -"\xF3\xA0\xB2\xA0" => "", # U+E0CA0 => -"\xF3\xA0\xB2\xA1" => "", # U+E0CA1 => -"\xF3\xA0\xB2\xA2" => "", # U+E0CA2 => -"\xF3\xA0\xB2\xA3" => "", # U+E0CA3 => -"\xF3\xA0\xB2\xA4" => "", # U+E0CA4 => -"\xF3\xA0\xB2\xA5" => "", # U+E0CA5 => -"\xF3\xA0\xB2\xA6" => "", # U+E0CA6 => -"\xF3\xA0\xB2\xA7" => "", # U+E0CA7 => -"\xF3\xA0\xB2\xA8" => "", # U+E0CA8 => -"\xF3\xA0\xB2\xA9" => "", # U+E0CA9 => -"\xF3\xA0\xB2\xAA" => "", # U+E0CAA => -"\xF3\xA0\xB2\xAB" => "", # U+E0CAB => -"\xF3\xA0\xB2\xAC" => "", # U+E0CAC => -"\xF3\xA0\xB2\xAD" => "", # U+E0CAD => -"\xF3\xA0\xB2\xAE" => "", # U+E0CAE => -"\xF3\xA0\xB2\xAF" => "", # U+E0CAF => -"\xF3\xA0\xB2\xB0" => "", # U+E0CB0 => -"\xF3\xA0\xB2\xB1" => "", # U+E0CB1 => -"\xF3\xA0\xB2\xB2" => "", # U+E0CB2 => -"\xF3\xA0\xB2\xB3" => "", # U+E0CB3 => -"\xF3\xA0\xB2\xB4" => "", # U+E0CB4 => -"\xF3\xA0\xB2\xB5" => "", # U+E0CB5 => -"\xF3\xA0\xB2\xB6" => "", # U+E0CB6 => -"\xF3\xA0\xB2\xB7" => "", # U+E0CB7 => -"\xF3\xA0\xB2\xB8" => "", # U+E0CB8 => -"\xF3\xA0\xB2\xB9" => "", # U+E0CB9 => -"\xF3\xA0\xB2\xBA" => "", # U+E0CBA => -"\xF3\xA0\xB2\xBB" => "", # U+E0CBB => -"\xF3\xA0\xB2\xBC" => "", # U+E0CBC => -"\xF3\xA0\xB2\xBD" => "", # U+E0CBD => -"\xF3\xA0\xB2\xBE" => "", # U+E0CBE => -"\xF3\xA0\xB2\xBF" => "", # U+E0CBF => -"\xF3\xA0\xB3\x80" => "", # U+E0CC0 => -"\xF3\xA0\xB3\x81" => "", # U+E0CC1 => -"\xF3\xA0\xB3\x82" => "", # U+E0CC2 => -"\xF3\xA0\xB3\x83" => "", # U+E0CC3 => -"\xF3\xA0\xB3\x84" => "", # U+E0CC4 => -"\xF3\xA0\xB3\x85" => "", # U+E0CC5 => -"\xF3\xA0\xB3\x86" => "", # U+E0CC6 => -"\xF3\xA0\xB3\x87" => "", # U+E0CC7 => -"\xF3\xA0\xB3\x88" => "", # U+E0CC8 => -"\xF3\xA0\xB3\x89" => "", # U+E0CC9 => -"\xF3\xA0\xB3\x8A" => "", # U+E0CCA => -"\xF3\xA0\xB3\x8B" => "", # U+E0CCB => -"\xF3\xA0\xB3\x8C" => "", # U+E0CCC => -"\xF3\xA0\xB3\x8D" => "", # U+E0CCD => -"\xF3\xA0\xB3\x8E" => "", # U+E0CCE => -"\xF3\xA0\xB3\x8F" => "", # U+E0CCF => -"\xF3\xA0\xB3\x90" => "", # U+E0CD0 => -"\xF3\xA0\xB3\x91" => "", # U+E0CD1 => -"\xF3\xA0\xB3\x92" => "", # U+E0CD2 => -"\xF3\xA0\xB3\x93" => "", # U+E0CD3 => -"\xF3\xA0\xB3\x94" => "", # U+E0CD4 => -"\xF3\xA0\xB3\x95" => "", # U+E0CD5 => -"\xF3\xA0\xB3\x96" => "", # U+E0CD6 => -"\xF3\xA0\xB3\x97" => "", # U+E0CD7 => -"\xF3\xA0\xB3\x98" => "", # U+E0CD8 => -"\xF3\xA0\xB3\x99" => "", # U+E0CD9 => -"\xF3\xA0\xB3\x9A" => "", # U+E0CDA => -"\xF3\xA0\xB3\x9B" => "", # U+E0CDB => -"\xF3\xA0\xB3\x9C" => "", # U+E0CDC => -"\xF3\xA0\xB3\x9D" => "", # U+E0CDD => -"\xF3\xA0\xB3\x9E" => "", # U+E0CDE => -"\xF3\xA0\xB3\x9F" => "", # U+E0CDF => -"\xF3\xA0\xB3\xA0" => "", # U+E0CE0 => -"\xF3\xA0\xB3\xA1" => "", # U+E0CE1 => -"\xF3\xA0\xB3\xA2" => "", # U+E0CE2 => -"\xF3\xA0\xB3\xA3" => "", # U+E0CE3 => -"\xF3\xA0\xB3\xA4" => "", # U+E0CE4 => -"\xF3\xA0\xB3\xA5" => "", # U+E0CE5 => -"\xF3\xA0\xB3\xA6" => "", # U+E0CE6 => -"\xF3\xA0\xB3\xA7" => "", # U+E0CE7 => -"\xF3\xA0\xB3\xA8" => "", # U+E0CE8 => -"\xF3\xA0\xB3\xA9" => "", # U+E0CE9 => -"\xF3\xA0\xB3\xAA" => "", # U+E0CEA => -"\xF3\xA0\xB3\xAB" => "", # U+E0CEB => -"\xF3\xA0\xB3\xAC" => "", # U+E0CEC => -"\xF3\xA0\xB3\xAD" => "", # U+E0CED => -"\xF3\xA0\xB3\xAE" => "", # U+E0CEE => -"\xF3\xA0\xB3\xAF" => "", # U+E0CEF => -"\xF3\xA0\xB3\xB0" => "", # U+E0CF0 => -"\xF3\xA0\xB3\xB1" => "", # U+E0CF1 => -"\xF3\xA0\xB3\xB2" => "", # U+E0CF2 => -"\xF3\xA0\xB3\xB3" => "", # U+E0CF3 => -"\xF3\xA0\xB3\xB4" => "", # U+E0CF4 => -"\xF3\xA0\xB3\xB5" => "", # U+E0CF5 => -"\xF3\xA0\xB3\xB6" => "", # U+E0CF6 => -"\xF3\xA0\xB3\xB7" => "", # U+E0CF7 => -"\xF3\xA0\xB3\xB8" => "", # U+E0CF8 => -"\xF3\xA0\xB3\xB9" => "", # U+E0CF9 => -"\xF3\xA0\xB3\xBA" => "", # U+E0CFA => -"\xF3\xA0\xB3\xBB" => "", # U+E0CFB => -"\xF3\xA0\xB3\xBC" => "", # U+E0CFC => -"\xF3\xA0\xB3\xBD" => "", # U+E0CFD => -"\xF3\xA0\xB3\xBE" => "", # U+E0CFE => -"\xF3\xA0\xB3\xBF" => "", # U+E0CFF => -"\xF3\xA0\xB4\x80" => "", # U+E0D00 => -"\xF3\xA0\xB4\x81" => "", # U+E0D01 => -"\xF3\xA0\xB4\x82" => "", # U+E0D02 => -"\xF3\xA0\xB4\x83" => "", # U+E0D03 => -"\xF3\xA0\xB4\x84" => "", # U+E0D04 => -"\xF3\xA0\xB4\x85" => "", # U+E0D05 => -"\xF3\xA0\xB4\x86" => "", # U+E0D06 => -"\xF3\xA0\xB4\x87" => "", # U+E0D07 => -"\xF3\xA0\xB4\x88" => "", # U+E0D08 => -"\xF3\xA0\xB4\x89" => "", # U+E0D09 => -"\xF3\xA0\xB4\x8A" => "", # U+E0D0A => -"\xF3\xA0\xB4\x8B" => "", # U+E0D0B => -"\xF3\xA0\xB4\x8C" => "", # U+E0D0C => -"\xF3\xA0\xB4\x8D" => "", # U+E0D0D => -"\xF3\xA0\xB4\x8E" => "", # U+E0D0E => -"\xF3\xA0\xB4\x8F" => "", # U+E0D0F => -"\xF3\xA0\xB4\x90" => "", # U+E0D10 => -"\xF3\xA0\xB4\x91" => "", # U+E0D11 => -"\xF3\xA0\xB4\x92" => "", # U+E0D12 => -"\xF3\xA0\xB4\x93" => "", # U+E0D13 => -"\xF3\xA0\xB4\x94" => "", # U+E0D14 => -"\xF3\xA0\xB4\x95" => "", # U+E0D15 => -"\xF3\xA0\xB4\x96" => "", # U+E0D16 => -"\xF3\xA0\xB4\x97" => "", # U+E0D17 => -"\xF3\xA0\xB4\x98" => "", # U+E0D18 => -"\xF3\xA0\xB4\x99" => "", # U+E0D19 => -"\xF3\xA0\xB4\x9A" => "", # U+E0D1A => -"\xF3\xA0\xB4\x9B" => "", # U+E0D1B => -"\xF3\xA0\xB4\x9C" => "", # U+E0D1C => -"\xF3\xA0\xB4\x9D" => "", # U+E0D1D => -"\xF3\xA0\xB4\x9E" => "", # U+E0D1E => -"\xF3\xA0\xB4\x9F" => "", # U+E0D1F => -"\xF3\xA0\xB4\xA0" => "", # U+E0D20 => -"\xF3\xA0\xB4\xA1" => "", # U+E0D21 => -"\xF3\xA0\xB4\xA2" => "", # U+E0D22 => -"\xF3\xA0\xB4\xA3" => "", # U+E0D23 => -"\xF3\xA0\xB4\xA4" => "", # U+E0D24 => -"\xF3\xA0\xB4\xA5" => "", # U+E0D25 => -"\xF3\xA0\xB4\xA6" => "", # U+E0D26 => -"\xF3\xA0\xB4\xA7" => "", # U+E0D27 => -"\xF3\xA0\xB4\xA8" => "", # U+E0D28 => -"\xF3\xA0\xB4\xA9" => "", # U+E0D29 => -"\xF3\xA0\xB4\xAA" => "", # U+E0D2A => -"\xF3\xA0\xB4\xAB" => "", # U+E0D2B => -"\xF3\xA0\xB4\xAC" => "", # U+E0D2C => -"\xF3\xA0\xB4\xAD" => "", # U+E0D2D => -"\xF3\xA0\xB4\xAE" => "", # U+E0D2E => -"\xF3\xA0\xB4\xAF" => "", # U+E0D2F => -"\xF3\xA0\xB4\xB0" => "", # U+E0D30 => -"\xF3\xA0\xB4\xB1" => "", # U+E0D31 => -"\xF3\xA0\xB4\xB2" => "", # U+E0D32 => -"\xF3\xA0\xB4\xB3" => "", # U+E0D33 => -"\xF3\xA0\xB4\xB4" => "", # U+E0D34 => -"\xF3\xA0\xB4\xB5" => "", # U+E0D35 => -"\xF3\xA0\xB4\xB6" => "", # U+E0D36 => -"\xF3\xA0\xB4\xB7" => "", # U+E0D37 => -"\xF3\xA0\xB4\xB8" => "", # U+E0D38 => -"\xF3\xA0\xB4\xB9" => "", # U+E0D39 => -"\xF3\xA0\xB4\xBA" => "", # U+E0D3A => -"\xF3\xA0\xB4\xBB" => "", # U+E0D3B => -"\xF3\xA0\xB4\xBC" => "", # U+E0D3C => -"\xF3\xA0\xB4\xBD" => "", # U+E0D3D => -"\xF3\xA0\xB4\xBE" => "", # U+E0D3E => -"\xF3\xA0\xB4\xBF" => "", # U+E0D3F => -"\xF3\xA0\xB5\x80" => "", # U+E0D40 => -"\xF3\xA0\xB5\x81" => "", # U+E0D41 => -"\xF3\xA0\xB5\x82" => "", # U+E0D42 => -"\xF3\xA0\xB5\x83" => "", # U+E0D43 => -"\xF3\xA0\xB5\x84" => "", # U+E0D44 => -"\xF3\xA0\xB5\x85" => "", # U+E0D45 => -"\xF3\xA0\xB5\x86" => "", # U+E0D46 => -"\xF3\xA0\xB5\x87" => "", # U+E0D47 => -"\xF3\xA0\xB5\x88" => "", # U+E0D48 => -"\xF3\xA0\xB5\x89" => "", # U+E0D49 => -"\xF3\xA0\xB5\x8A" => "", # U+E0D4A => -"\xF3\xA0\xB5\x8B" => "", # U+E0D4B => -"\xF3\xA0\xB5\x8C" => "", # U+E0D4C => -"\xF3\xA0\xB5\x8D" => "", # U+E0D4D => -"\xF3\xA0\xB5\x8E" => "", # U+E0D4E => -"\xF3\xA0\xB5\x8F" => "", # U+E0D4F => -"\xF3\xA0\xB5\x90" => "", # U+E0D50 => -"\xF3\xA0\xB5\x91" => "", # U+E0D51 => -"\xF3\xA0\xB5\x92" => "", # U+E0D52 => -"\xF3\xA0\xB5\x93" => "", # U+E0D53 => -"\xF3\xA0\xB5\x94" => "", # U+E0D54 => -"\xF3\xA0\xB5\x95" => "", # U+E0D55 => -"\xF3\xA0\xB5\x96" => "", # U+E0D56 => -"\xF3\xA0\xB5\x97" => "", # U+E0D57 => -"\xF3\xA0\xB5\x98" => "", # U+E0D58 => -"\xF3\xA0\xB5\x99" => "", # U+E0D59 => -"\xF3\xA0\xB5\x9A" => "", # U+E0D5A => -"\xF3\xA0\xB5\x9B" => "", # U+E0D5B => -"\xF3\xA0\xB5\x9C" => "", # U+E0D5C => -"\xF3\xA0\xB5\x9D" => "", # U+E0D5D => -"\xF3\xA0\xB5\x9E" => "", # U+E0D5E => -"\xF3\xA0\xB5\x9F" => "", # U+E0D5F => -"\xF3\xA0\xB5\xA0" => "", # U+E0D60 => -"\xF3\xA0\xB5\xA1" => "", # U+E0D61 => -"\xF3\xA0\xB5\xA2" => "", # U+E0D62 => -"\xF3\xA0\xB5\xA3" => "", # U+E0D63 => -"\xF3\xA0\xB5\xA4" => "", # U+E0D64 => -"\xF3\xA0\xB5\xA5" => "", # U+E0D65 => -"\xF3\xA0\xB5\xA6" => "", # U+E0D66 => -"\xF3\xA0\xB5\xA7" => "", # U+E0D67 => -"\xF3\xA0\xB5\xA8" => "", # U+E0D68 => -"\xF3\xA0\xB5\xA9" => "", # U+E0D69 => -"\xF3\xA0\xB5\xAA" => "", # U+E0D6A => -"\xF3\xA0\xB5\xAB" => "", # U+E0D6B => -"\xF3\xA0\xB5\xAC" => "", # U+E0D6C => -"\xF3\xA0\xB5\xAD" => "", # U+E0D6D => -"\xF3\xA0\xB5\xAE" => "", # U+E0D6E => -"\xF3\xA0\xB5\xAF" => "", # U+E0D6F => -"\xF3\xA0\xB5\xB0" => "", # U+E0D70 => -"\xF3\xA0\xB5\xB1" => "", # U+E0D71 => -"\xF3\xA0\xB5\xB2" => "", # U+E0D72 => -"\xF3\xA0\xB5\xB3" => "", # U+E0D73 => -"\xF3\xA0\xB5\xB4" => "", # U+E0D74 => -"\xF3\xA0\xB5\xB5" => "", # U+E0D75 => -"\xF3\xA0\xB5\xB6" => "", # U+E0D76 => -"\xF3\xA0\xB5\xB7" => "", # U+E0D77 => -"\xF3\xA0\xB5\xB8" => "", # U+E0D78 => -"\xF3\xA0\xB5\xB9" => "", # U+E0D79 => -"\xF3\xA0\xB5\xBA" => "", # U+E0D7A => -"\xF3\xA0\xB5\xBB" => "", # U+E0D7B => -"\xF3\xA0\xB5\xBC" => "", # U+E0D7C => -"\xF3\xA0\xB5\xBD" => "", # U+E0D7D => -"\xF3\xA0\xB5\xBE" => "", # U+E0D7E => -"\xF3\xA0\xB5\xBF" => "", # U+E0D7F => -"\xF3\xA0\xB6\x80" => "", # U+E0D80 => -"\xF3\xA0\xB6\x81" => "", # U+E0D81 => -"\xF3\xA0\xB6\x82" => "", # U+E0D82 => -"\xF3\xA0\xB6\x83" => "", # U+E0D83 => -"\xF3\xA0\xB6\x84" => "", # U+E0D84 => -"\xF3\xA0\xB6\x85" => "", # U+E0D85 => -"\xF3\xA0\xB6\x86" => "", # U+E0D86 => -"\xF3\xA0\xB6\x87" => "", # U+E0D87 => -"\xF3\xA0\xB6\x88" => "", # U+E0D88 => -"\xF3\xA0\xB6\x89" => "", # U+E0D89 => -"\xF3\xA0\xB6\x8A" => "", # U+E0D8A => -"\xF3\xA0\xB6\x8B" => "", # U+E0D8B => -"\xF3\xA0\xB6\x8C" => "", # U+E0D8C => -"\xF3\xA0\xB6\x8D" => "", # U+E0D8D => -"\xF3\xA0\xB6\x8E" => "", # U+E0D8E => -"\xF3\xA0\xB6\x8F" => "", # U+E0D8F => -"\xF3\xA0\xB6\x90" => "", # U+E0D90 => -"\xF3\xA0\xB6\x91" => "", # U+E0D91 => -"\xF3\xA0\xB6\x92" => "", # U+E0D92 => -"\xF3\xA0\xB6\x93" => "", # U+E0D93 => -"\xF3\xA0\xB6\x94" => "", # U+E0D94 => -"\xF3\xA0\xB6\x95" => "", # U+E0D95 => -"\xF3\xA0\xB6\x96" => "", # U+E0D96 => -"\xF3\xA0\xB6\x97" => "", # U+E0D97 => -"\xF3\xA0\xB6\x98" => "", # U+E0D98 => -"\xF3\xA0\xB6\x99" => "", # U+E0D99 => -"\xF3\xA0\xB6\x9A" => "", # U+E0D9A => -"\xF3\xA0\xB6\x9B" => "", # U+E0D9B => -"\xF3\xA0\xB6\x9C" => "", # U+E0D9C => -"\xF3\xA0\xB6\x9D" => "", # U+E0D9D => -"\xF3\xA0\xB6\x9E" => "", # U+E0D9E => -"\xF3\xA0\xB6\x9F" => "", # U+E0D9F => -"\xF3\xA0\xB6\xA0" => "", # U+E0DA0 => -"\xF3\xA0\xB6\xA1" => "", # U+E0DA1 => -"\xF3\xA0\xB6\xA2" => "", # U+E0DA2 => -"\xF3\xA0\xB6\xA3" => "", # U+E0DA3 => -"\xF3\xA0\xB6\xA4" => "", # U+E0DA4 => -"\xF3\xA0\xB6\xA5" => "", # U+E0DA5 => -"\xF3\xA0\xB6\xA6" => "", # U+E0DA6 => -"\xF3\xA0\xB6\xA7" => "", # U+E0DA7 => -"\xF3\xA0\xB6\xA8" => "", # U+E0DA8 => -"\xF3\xA0\xB6\xA9" => "", # U+E0DA9 => -"\xF3\xA0\xB6\xAA" => "", # U+E0DAA => -"\xF3\xA0\xB6\xAB" => "", # U+E0DAB => -"\xF3\xA0\xB6\xAC" => "", # U+E0DAC => -"\xF3\xA0\xB6\xAD" => "", # U+E0DAD => -"\xF3\xA0\xB6\xAE" => "", # U+E0DAE => -"\xF3\xA0\xB6\xAF" => "", # U+E0DAF => -"\xF3\xA0\xB6\xB0" => "", # U+E0DB0 => -"\xF3\xA0\xB6\xB1" => "", # U+E0DB1 => -"\xF3\xA0\xB6\xB2" => "", # U+E0DB2 => -"\xF3\xA0\xB6\xB3" => "", # U+E0DB3 => -"\xF3\xA0\xB6\xB4" => "", # U+E0DB4 => -"\xF3\xA0\xB6\xB5" => "", # U+E0DB5 => -"\xF3\xA0\xB6\xB6" => "", # U+E0DB6 => -"\xF3\xA0\xB6\xB7" => "", # U+E0DB7 => -"\xF3\xA0\xB6\xB8" => "", # U+E0DB8 => -"\xF3\xA0\xB6\xB9" => "", # U+E0DB9 => -"\xF3\xA0\xB6\xBA" => "", # U+E0DBA => -"\xF3\xA0\xB6\xBB" => "", # U+E0DBB => -"\xF3\xA0\xB6\xBC" => "", # U+E0DBC => -"\xF3\xA0\xB6\xBD" => "", # U+E0DBD => -"\xF3\xA0\xB6\xBE" => "", # U+E0DBE => -"\xF3\xA0\xB6\xBF" => "", # U+E0DBF => -"\xF3\xA0\xB7\x80" => "", # U+E0DC0 => -"\xF3\xA0\xB7\x81" => "", # U+E0DC1 => -"\xF3\xA0\xB7\x82" => "", # U+E0DC2 => -"\xF3\xA0\xB7\x83" => "", # U+E0DC3 => -"\xF3\xA0\xB7\x84" => "", # U+E0DC4 => -"\xF3\xA0\xB7\x85" => "", # U+E0DC5 => -"\xF3\xA0\xB7\x86" => "", # U+E0DC6 => -"\xF3\xA0\xB7\x87" => "", # U+E0DC7 => -"\xF3\xA0\xB7\x88" => "", # U+E0DC8 => -"\xF3\xA0\xB7\x89" => "", # U+E0DC9 => -"\xF3\xA0\xB7\x8A" => "", # U+E0DCA => -"\xF3\xA0\xB7\x8B" => "", # U+E0DCB => -"\xF3\xA0\xB7\x8C" => "", # U+E0DCC => -"\xF3\xA0\xB7\x8D" => "", # U+E0DCD => -"\xF3\xA0\xB7\x8E" => "", # U+E0DCE => -"\xF3\xA0\xB7\x8F" => "", # U+E0DCF => -"\xF3\xA0\xB7\x90" => "", # U+E0DD0 => -"\xF3\xA0\xB7\x91" => "", # U+E0DD1 => -"\xF3\xA0\xB7\x92" => "", # U+E0DD2 => -"\xF3\xA0\xB7\x93" => "", # U+E0DD3 => -"\xF3\xA0\xB7\x94" => "", # U+E0DD4 => -"\xF3\xA0\xB7\x95" => "", # U+E0DD5 => -"\xF3\xA0\xB7\x96" => "", # U+E0DD6 => -"\xF3\xA0\xB7\x97" => "", # U+E0DD7 => -"\xF3\xA0\xB7\x98" => "", # U+E0DD8 => -"\xF3\xA0\xB7\x99" => "", # U+E0DD9 => -"\xF3\xA0\xB7\x9A" => "", # U+E0DDA => -"\xF3\xA0\xB7\x9B" => "", # U+E0DDB => -"\xF3\xA0\xB7\x9C" => "", # U+E0DDC => -"\xF3\xA0\xB7\x9D" => "", # U+E0DDD => -"\xF3\xA0\xB7\x9E" => "", # U+E0DDE => -"\xF3\xA0\xB7\x9F" => "", # U+E0DDF => -"\xF3\xA0\xB7\xA0" => "", # U+E0DE0 => -"\xF3\xA0\xB7\xA1" => "", # U+E0DE1 => -"\xF3\xA0\xB7\xA2" => "", # U+E0DE2 => -"\xF3\xA0\xB7\xA3" => "", # U+E0DE3 => -"\xF3\xA0\xB7\xA4" => "", # U+E0DE4 => -"\xF3\xA0\xB7\xA5" => "", # U+E0DE5 => -"\xF3\xA0\xB7\xA6" => "", # U+E0DE6 => -"\xF3\xA0\xB7\xA7" => "", # U+E0DE7 => -"\xF3\xA0\xB7\xA8" => "", # U+E0DE8 => -"\xF3\xA0\xB7\xA9" => "", # U+E0DE9 => -"\xF3\xA0\xB7\xAA" => "", # U+E0DEA => -"\xF3\xA0\xB7\xAB" => "", # U+E0DEB => -"\xF3\xA0\xB7\xAC" => "", # U+E0DEC => -"\xF3\xA0\xB7\xAD" => "", # U+E0DED => -"\xF3\xA0\xB7\xAE" => "", # U+E0DEE => -"\xF3\xA0\xB7\xAF" => "", # U+E0DEF => -"\xF3\xA0\xB7\xB0" => "", # U+E0DF0 => -"\xF3\xA0\xB7\xB1" => "", # U+E0DF1 => -"\xF3\xA0\xB7\xB2" => "", # U+E0DF2 => -"\xF3\xA0\xB7\xB3" => "", # U+E0DF3 => -"\xF3\xA0\xB7\xB4" => "", # U+E0DF4 => -"\xF3\xA0\xB7\xB5" => "", # U+E0DF5 => -"\xF3\xA0\xB7\xB6" => "", # U+E0DF6 => -"\xF3\xA0\xB7\xB7" => "", # U+E0DF7 => -"\xF3\xA0\xB7\xB8" => "", # U+E0DF8 => -"\xF3\xA0\xB7\xB9" => "", # U+E0DF9 => -"\xF3\xA0\xB7\xBA" => "", # U+E0DFA => -"\xF3\xA0\xB7\xBB" => "", # U+E0DFB => -"\xF3\xA0\xB7\xBC" => "", # U+E0DFC => -"\xF3\xA0\xB7\xBD" => "", # U+E0DFD => -"\xF3\xA0\xB7\xBE" => "", # U+E0DFE => -"\xF3\xA0\xB7\xBF" => "", # U+E0DFF => -"\xF3\xA0\xB8\x80" => "", # U+E0E00 => -"\xF3\xA0\xB8\x81" => "", # U+E0E01 => -"\xF3\xA0\xB8\x82" => "", # U+E0E02 => -"\xF3\xA0\xB8\x83" => "", # U+E0E03 => -"\xF3\xA0\xB8\x84" => "", # U+E0E04 => -"\xF3\xA0\xB8\x85" => "", # U+E0E05 => -"\xF3\xA0\xB8\x86" => "", # U+E0E06 => -"\xF3\xA0\xB8\x87" => "", # U+E0E07 => -"\xF3\xA0\xB8\x88" => "", # U+E0E08 => -"\xF3\xA0\xB8\x89" => "", # U+E0E09 => -"\xF3\xA0\xB8\x8A" => "", # U+E0E0A => -"\xF3\xA0\xB8\x8B" => "", # U+E0E0B => -"\xF3\xA0\xB8\x8C" => "", # U+E0E0C => -"\xF3\xA0\xB8\x8D" => "", # U+E0E0D => -"\xF3\xA0\xB8\x8E" => "", # U+E0E0E => -"\xF3\xA0\xB8\x8F" => "", # U+E0E0F => -"\xF3\xA0\xB8\x90" => "", # U+E0E10 => -"\xF3\xA0\xB8\x91" => "", # U+E0E11 => -"\xF3\xA0\xB8\x92" => "", # U+E0E12 => -"\xF3\xA0\xB8\x93" => "", # U+E0E13 => -"\xF3\xA0\xB8\x94" => "", # U+E0E14 => -"\xF3\xA0\xB8\x95" => "", # U+E0E15 => -"\xF3\xA0\xB8\x96" => "", # U+E0E16 => -"\xF3\xA0\xB8\x97" => "", # U+E0E17 => -"\xF3\xA0\xB8\x98" => "", # U+E0E18 => -"\xF3\xA0\xB8\x99" => "", # U+E0E19 => -"\xF3\xA0\xB8\x9A" => "", # U+E0E1A => -"\xF3\xA0\xB8\x9B" => "", # U+E0E1B => -"\xF3\xA0\xB8\x9C" => "", # U+E0E1C => -"\xF3\xA0\xB8\x9D" => "", # U+E0E1D => -"\xF3\xA0\xB8\x9E" => "", # U+E0E1E => -"\xF3\xA0\xB8\x9F" => "", # U+E0E1F => -"\xF3\xA0\xB8\xA0" => "", # U+E0E20 => -"\xF3\xA0\xB8\xA1" => "", # U+E0E21 => -"\xF3\xA0\xB8\xA2" => "", # U+E0E22 => -"\xF3\xA0\xB8\xA3" => "", # U+E0E23 => -"\xF3\xA0\xB8\xA4" => "", # U+E0E24 => -"\xF3\xA0\xB8\xA5" => "", # U+E0E25 => -"\xF3\xA0\xB8\xA6" => "", # U+E0E26 => -"\xF3\xA0\xB8\xA7" => "", # U+E0E27 => -"\xF3\xA0\xB8\xA8" => "", # U+E0E28 => -"\xF3\xA0\xB8\xA9" => "", # U+E0E29 => -"\xF3\xA0\xB8\xAA" => "", # U+E0E2A => -"\xF3\xA0\xB8\xAB" => "", # U+E0E2B => -"\xF3\xA0\xB8\xAC" => "", # U+E0E2C => -"\xF3\xA0\xB8\xAD" => "", # U+E0E2D => -"\xF3\xA0\xB8\xAE" => "", # U+E0E2E => -"\xF3\xA0\xB8\xAF" => "", # U+E0E2F => -"\xF3\xA0\xB8\xB0" => "", # U+E0E30 => -"\xF3\xA0\xB8\xB1" => "", # U+E0E31 => -"\xF3\xA0\xB8\xB2" => "", # U+E0E32 => -"\xF3\xA0\xB8\xB3" => "", # U+E0E33 => -"\xF3\xA0\xB8\xB4" => "", # U+E0E34 => -"\xF3\xA0\xB8\xB5" => "", # U+E0E35 => -"\xF3\xA0\xB8\xB6" => "", # U+E0E36 => -"\xF3\xA0\xB8\xB7" => "", # U+E0E37 => -"\xF3\xA0\xB8\xB8" => "", # U+E0E38 => -"\xF3\xA0\xB8\xB9" => "", # U+E0E39 => -"\xF3\xA0\xB8\xBA" => "", # U+E0E3A => -"\xF3\xA0\xB8\xBB" => "", # U+E0E3B => -"\xF3\xA0\xB8\xBC" => "", # U+E0E3C => -"\xF3\xA0\xB8\xBD" => "", # U+E0E3D => -"\xF3\xA0\xB8\xBE" => "", # U+E0E3E => -"\xF3\xA0\xB8\xBF" => "", # U+E0E3F => -"\xF3\xA0\xB9\x80" => "", # U+E0E40 => -"\xF3\xA0\xB9\x81" => "", # U+E0E41 => -"\xF3\xA0\xB9\x82" => "", # U+E0E42 => -"\xF3\xA0\xB9\x83" => "", # U+E0E43 => -"\xF3\xA0\xB9\x84" => "", # U+E0E44 => -"\xF3\xA0\xB9\x85" => "", # U+E0E45 => -"\xF3\xA0\xB9\x86" => "", # U+E0E46 => -"\xF3\xA0\xB9\x87" => "", # U+E0E47 => -"\xF3\xA0\xB9\x88" => "", # U+E0E48 => -"\xF3\xA0\xB9\x89" => "", # U+E0E49 => -"\xF3\xA0\xB9\x8A" => "", # U+E0E4A => -"\xF3\xA0\xB9\x8B" => "", # U+E0E4B => -"\xF3\xA0\xB9\x8C" => "", # U+E0E4C => -"\xF3\xA0\xB9\x8D" => "", # U+E0E4D => -"\xF3\xA0\xB9\x8E" => "", # U+E0E4E => -"\xF3\xA0\xB9\x8F" => "", # U+E0E4F => -"\xF3\xA0\xB9\x90" => "", # U+E0E50 => -"\xF3\xA0\xB9\x91" => "", # U+E0E51 => -"\xF3\xA0\xB9\x92" => "", # U+E0E52 => -"\xF3\xA0\xB9\x93" => "", # U+E0E53 => -"\xF3\xA0\xB9\x94" => "", # U+E0E54 => -"\xF3\xA0\xB9\x95" => "", # U+E0E55 => -"\xF3\xA0\xB9\x96" => "", # U+E0E56 => -"\xF3\xA0\xB9\x97" => "", # U+E0E57 => -"\xF3\xA0\xB9\x98" => "", # U+E0E58 => -"\xF3\xA0\xB9\x99" => "", # U+E0E59 => -"\xF3\xA0\xB9\x9A" => "", # U+E0E5A => -"\xF3\xA0\xB9\x9B" => "", # U+E0E5B => -"\xF3\xA0\xB9\x9C" => "", # U+E0E5C => -"\xF3\xA0\xB9\x9D" => "", # U+E0E5D => -"\xF3\xA0\xB9\x9E" => "", # U+E0E5E => -"\xF3\xA0\xB9\x9F" => "", # U+E0E5F => -"\xF3\xA0\xB9\xA0" => "", # U+E0E60 => -"\xF3\xA0\xB9\xA1" => "", # U+E0E61 => -"\xF3\xA0\xB9\xA2" => "", # U+E0E62 => -"\xF3\xA0\xB9\xA3" => "", # U+E0E63 => -"\xF3\xA0\xB9\xA4" => "", # U+E0E64 => -"\xF3\xA0\xB9\xA5" => "", # U+E0E65 => -"\xF3\xA0\xB9\xA6" => "", # U+E0E66 => -"\xF3\xA0\xB9\xA7" => "", # U+E0E67 => -"\xF3\xA0\xB9\xA8" => "", # U+E0E68 => -"\xF3\xA0\xB9\xA9" => "", # U+E0E69 => -"\xF3\xA0\xB9\xAA" => "", # U+E0E6A => -"\xF3\xA0\xB9\xAB" => "", # U+E0E6B => -"\xF3\xA0\xB9\xAC" => "", # U+E0E6C => -"\xF3\xA0\xB9\xAD" => "", # U+E0E6D => -"\xF3\xA0\xB9\xAE" => "", # U+E0E6E => -"\xF3\xA0\xB9\xAF" => "", # U+E0E6F => -"\xF3\xA0\xB9\xB0" => "", # U+E0E70 => -"\xF3\xA0\xB9\xB1" => "", # U+E0E71 => -"\xF3\xA0\xB9\xB2" => "", # U+E0E72 => -"\xF3\xA0\xB9\xB3" => "", # U+E0E73 => -"\xF3\xA0\xB9\xB4" => "", # U+E0E74 => -"\xF3\xA0\xB9\xB5" => "", # U+E0E75 => -"\xF3\xA0\xB9\xB6" => "", # U+E0E76 => -"\xF3\xA0\xB9\xB7" => "", # U+E0E77 => -"\xF3\xA0\xB9\xB8" => "", # U+E0E78 => -"\xF3\xA0\xB9\xB9" => "", # U+E0E79 => -"\xF3\xA0\xB9\xBA" => "", # U+E0E7A => -"\xF3\xA0\xB9\xBB" => "", # U+E0E7B => -"\xF3\xA0\xB9\xBC" => "", # U+E0E7C => -"\xF3\xA0\xB9\xBD" => "", # U+E0E7D => -"\xF3\xA0\xB9\xBE" => "", # U+E0E7E => -"\xF3\xA0\xB9\xBF" => "", # U+E0E7F => -"\xF3\xA0\xBA\x80" => "", # U+E0E80 => -"\xF3\xA0\xBA\x81" => "", # U+E0E81 => -"\xF3\xA0\xBA\x82" => "", # U+E0E82 => -"\xF3\xA0\xBA\x83" => "", # U+E0E83 => -"\xF3\xA0\xBA\x84" => "", # U+E0E84 => -"\xF3\xA0\xBA\x85" => "", # U+E0E85 => -"\xF3\xA0\xBA\x86" => "", # U+E0E86 => -"\xF3\xA0\xBA\x87" => "", # U+E0E87 => -"\xF3\xA0\xBA\x88" => "", # U+E0E88 => -"\xF3\xA0\xBA\x89" => "", # U+E0E89 => -"\xF3\xA0\xBA\x8A" => "", # U+E0E8A => -"\xF3\xA0\xBA\x8B" => "", # U+E0E8B => -"\xF3\xA0\xBA\x8C" => "", # U+E0E8C => -"\xF3\xA0\xBA\x8D" => "", # U+E0E8D => -"\xF3\xA0\xBA\x8E" => "", # U+E0E8E => -"\xF3\xA0\xBA\x8F" => "", # U+E0E8F => -"\xF3\xA0\xBA\x90" => "", # U+E0E90 => -"\xF3\xA0\xBA\x91" => "", # U+E0E91 => -"\xF3\xA0\xBA\x92" => "", # U+E0E92 => -"\xF3\xA0\xBA\x93" => "", # U+E0E93 => -"\xF3\xA0\xBA\x94" => "", # U+E0E94 => -"\xF3\xA0\xBA\x95" => "", # U+E0E95 => -"\xF3\xA0\xBA\x96" => "", # U+E0E96 => -"\xF3\xA0\xBA\x97" => "", # U+E0E97 => -"\xF3\xA0\xBA\x98" => "", # U+E0E98 => -"\xF3\xA0\xBA\x99" => "", # U+E0E99 => -"\xF3\xA0\xBA\x9A" => "", # U+E0E9A => -"\xF3\xA0\xBA\x9B" => "", # U+E0E9B => -"\xF3\xA0\xBA\x9C" => "", # U+E0E9C => -"\xF3\xA0\xBA\x9D" => "", # U+E0E9D => -"\xF3\xA0\xBA\x9E" => "", # U+E0E9E => -"\xF3\xA0\xBA\x9F" => "", # U+E0E9F => -"\xF3\xA0\xBA\xA0" => "", # U+E0EA0 => -"\xF3\xA0\xBA\xA1" => "", # U+E0EA1 => -"\xF3\xA0\xBA\xA2" => "", # U+E0EA2 => -"\xF3\xA0\xBA\xA3" => "", # U+E0EA3 => -"\xF3\xA0\xBA\xA4" => "", # U+E0EA4 => -"\xF3\xA0\xBA\xA5" => "", # U+E0EA5 => -"\xF3\xA0\xBA\xA6" => "", # U+E0EA6 => -"\xF3\xA0\xBA\xA7" => "", # U+E0EA7 => -"\xF3\xA0\xBA\xA8" => "", # U+E0EA8 => -"\xF3\xA0\xBA\xA9" => "", # U+E0EA9 => -"\xF3\xA0\xBA\xAA" => "", # U+E0EAA => -"\xF3\xA0\xBA\xAB" => "", # U+E0EAB => -"\xF3\xA0\xBA\xAC" => "", # U+E0EAC => -"\xF3\xA0\xBA\xAD" => "", # U+E0EAD => -"\xF3\xA0\xBA\xAE" => "", # U+E0EAE => -"\xF3\xA0\xBA\xAF" => "", # U+E0EAF => -"\xF3\xA0\xBA\xB0" => "", # U+E0EB0 => -"\xF3\xA0\xBA\xB1" => "", # U+E0EB1 => -"\xF3\xA0\xBA\xB2" => "", # U+E0EB2 => -"\xF3\xA0\xBA\xB3" => "", # U+E0EB3 => -"\xF3\xA0\xBA\xB4" => "", # U+E0EB4 => -"\xF3\xA0\xBA\xB5" => "", # U+E0EB5 => -"\xF3\xA0\xBA\xB6" => "", # U+E0EB6 => -"\xF3\xA0\xBA\xB7" => "", # U+E0EB7 => -"\xF3\xA0\xBA\xB8" => "", # U+E0EB8 => -"\xF3\xA0\xBA\xB9" => "", # U+E0EB9 => -"\xF3\xA0\xBA\xBA" => "", # U+E0EBA => -"\xF3\xA0\xBA\xBB" => "", # U+E0EBB => -"\xF3\xA0\xBA\xBC" => "", # U+E0EBC => -"\xF3\xA0\xBA\xBD" => "", # U+E0EBD => -"\xF3\xA0\xBA\xBE" => "", # U+E0EBE => -"\xF3\xA0\xBA\xBF" => "", # U+E0EBF => -"\xF3\xA0\xBB\x80" => "", # U+E0EC0 => -"\xF3\xA0\xBB\x81" => "", # U+E0EC1 => -"\xF3\xA0\xBB\x82" => "", # U+E0EC2 => -"\xF3\xA0\xBB\x83" => "", # U+E0EC3 => -"\xF3\xA0\xBB\x84" => "", # U+E0EC4 => -"\xF3\xA0\xBB\x85" => "", # U+E0EC5 => -"\xF3\xA0\xBB\x86" => "", # U+E0EC6 => -"\xF3\xA0\xBB\x87" => "", # U+E0EC7 => -"\xF3\xA0\xBB\x88" => "", # U+E0EC8 => -"\xF3\xA0\xBB\x89" => "", # U+E0EC9 => -"\xF3\xA0\xBB\x8A" => "", # U+E0ECA => -"\xF3\xA0\xBB\x8B" => "", # U+E0ECB => -"\xF3\xA0\xBB\x8C" => "", # U+E0ECC => -"\xF3\xA0\xBB\x8D" => "", # U+E0ECD => -"\xF3\xA0\xBB\x8E" => "", # U+E0ECE => -"\xF3\xA0\xBB\x8F" => "", # U+E0ECF => -"\xF3\xA0\xBB\x90" => "", # U+E0ED0 => -"\xF3\xA0\xBB\x91" => "", # U+E0ED1 => -"\xF3\xA0\xBB\x92" => "", # U+E0ED2 => -"\xF3\xA0\xBB\x93" => "", # U+E0ED3 => -"\xF3\xA0\xBB\x94" => "", # U+E0ED4 => -"\xF3\xA0\xBB\x95" => "", # U+E0ED5 => -"\xF3\xA0\xBB\x96" => "", # U+E0ED6 => -"\xF3\xA0\xBB\x97" => "", # U+E0ED7 => -"\xF3\xA0\xBB\x98" => "", # U+E0ED8 => -"\xF3\xA0\xBB\x99" => "", # U+E0ED9 => -"\xF3\xA0\xBB\x9A" => "", # U+E0EDA => -"\xF3\xA0\xBB\x9B" => "", # U+E0EDB => -"\xF3\xA0\xBB\x9C" => "", # U+E0EDC => -"\xF3\xA0\xBB\x9D" => "", # U+E0EDD => -"\xF3\xA0\xBB\x9E" => "", # U+E0EDE => -"\xF3\xA0\xBB\x9F" => "", # U+E0EDF => -"\xF3\xA0\xBB\xA0" => "", # U+E0EE0 => -"\xF3\xA0\xBB\xA1" => "", # U+E0EE1 => -"\xF3\xA0\xBB\xA2" => "", # U+E0EE2 => -"\xF3\xA0\xBB\xA3" => "", # U+E0EE3 => -"\xF3\xA0\xBB\xA4" => "", # U+E0EE4 => -"\xF3\xA0\xBB\xA5" => "", # U+E0EE5 => -"\xF3\xA0\xBB\xA6" => "", # U+E0EE6 => -"\xF3\xA0\xBB\xA7" => "", # U+E0EE7 => -"\xF3\xA0\xBB\xA8" => "", # U+E0EE8 => -"\xF3\xA0\xBB\xA9" => "", # U+E0EE9 => -"\xF3\xA0\xBB\xAA" => "", # U+E0EEA => -"\xF3\xA0\xBB\xAB" => "", # U+E0EEB => -"\xF3\xA0\xBB\xAC" => "", # U+E0EEC => -"\xF3\xA0\xBB\xAD" => "", # U+E0EED => -"\xF3\xA0\xBB\xAE" => "", # U+E0EEE => -"\xF3\xA0\xBB\xAF" => "", # U+E0EEF => -"\xF3\xA0\xBB\xB0" => "", # U+E0EF0 => -"\xF3\xA0\xBB\xB1" => "", # U+E0EF1 => -"\xF3\xA0\xBB\xB2" => "", # U+E0EF2 => -"\xF3\xA0\xBB\xB3" => "", # U+E0EF3 => -"\xF3\xA0\xBB\xB4" => "", # U+E0EF4 => -"\xF3\xA0\xBB\xB5" => "", # U+E0EF5 => -"\xF3\xA0\xBB\xB6" => "", # U+E0EF6 => -"\xF3\xA0\xBB\xB7" => "", # U+E0EF7 => -"\xF3\xA0\xBB\xB8" => "", # U+E0EF8 => -"\xF3\xA0\xBB\xB9" => "", # U+E0EF9 => -"\xF3\xA0\xBB\xBA" => "", # U+E0EFA => -"\xF3\xA0\xBB\xBB" => "", # U+E0EFB => -"\xF3\xA0\xBB\xBC" => "", # U+E0EFC => -"\xF3\xA0\xBB\xBD" => "", # U+E0EFD => -"\xF3\xA0\xBB\xBE" => "", # U+E0EFE => -"\xF3\xA0\xBB\xBF" => "", # U+E0EFF => -"\xF3\xA0\xBC\x80" => "", # U+E0F00 => -"\xF3\xA0\xBC\x81" => "", # U+E0F01 => -"\xF3\xA0\xBC\x82" => "", # U+E0F02 => -"\xF3\xA0\xBC\x83" => "", # U+E0F03 => -"\xF3\xA0\xBC\x84" => "", # U+E0F04 => -"\xF3\xA0\xBC\x85" => "", # U+E0F05 => -"\xF3\xA0\xBC\x86" => "", # U+E0F06 => -"\xF3\xA0\xBC\x87" => "", # U+E0F07 => -"\xF3\xA0\xBC\x88" => "", # U+E0F08 => -"\xF3\xA0\xBC\x89" => "", # U+E0F09 => -"\xF3\xA0\xBC\x8A" => "", # U+E0F0A => -"\xF3\xA0\xBC\x8B" => "", # U+E0F0B => -"\xF3\xA0\xBC\x8C" => "", # U+E0F0C => -"\xF3\xA0\xBC\x8D" => "", # U+E0F0D => -"\xF3\xA0\xBC\x8E" => "", # U+E0F0E => -"\xF3\xA0\xBC\x8F" => "", # U+E0F0F => -"\xF3\xA0\xBC\x90" => "", # U+E0F10 => -"\xF3\xA0\xBC\x91" => "", # U+E0F11 => -"\xF3\xA0\xBC\x92" => "", # U+E0F12 => -"\xF3\xA0\xBC\x93" => "", # U+E0F13 => -"\xF3\xA0\xBC\x94" => "", # U+E0F14 => -"\xF3\xA0\xBC\x95" => "", # U+E0F15 => -"\xF3\xA0\xBC\x96" => "", # U+E0F16 => -"\xF3\xA0\xBC\x97" => "", # U+E0F17 => -"\xF3\xA0\xBC\x98" => "", # U+E0F18 => -"\xF3\xA0\xBC\x99" => "", # U+E0F19 => -"\xF3\xA0\xBC\x9A" => "", # U+E0F1A => -"\xF3\xA0\xBC\x9B" => "", # U+E0F1B => -"\xF3\xA0\xBC\x9C" => "", # U+E0F1C => -"\xF3\xA0\xBC\x9D" => "", # U+E0F1D => -"\xF3\xA0\xBC\x9E" => "", # U+E0F1E => -"\xF3\xA0\xBC\x9F" => "", # U+E0F1F => -"\xF3\xA0\xBC\xA0" => "", # U+E0F20 => -"\xF3\xA0\xBC\xA1" => "", # U+E0F21 => -"\xF3\xA0\xBC\xA2" => "", # U+E0F22 => -"\xF3\xA0\xBC\xA3" => "", # U+E0F23 => -"\xF3\xA0\xBC\xA4" => "", # U+E0F24 => -"\xF3\xA0\xBC\xA5" => "", # U+E0F25 => -"\xF3\xA0\xBC\xA6" => "", # U+E0F26 => -"\xF3\xA0\xBC\xA7" => "", # U+E0F27 => -"\xF3\xA0\xBC\xA8" => "", # U+E0F28 => -"\xF3\xA0\xBC\xA9" => "", # U+E0F29 => -"\xF3\xA0\xBC\xAA" => "", # U+E0F2A => -"\xF3\xA0\xBC\xAB" => "", # U+E0F2B => -"\xF3\xA0\xBC\xAC" => "", # U+E0F2C => -"\xF3\xA0\xBC\xAD" => "", # U+E0F2D => -"\xF3\xA0\xBC\xAE" => "", # U+E0F2E => -"\xF3\xA0\xBC\xAF" => "", # U+E0F2F => -"\xF3\xA0\xBC\xB0" => "", # U+E0F30 => -"\xF3\xA0\xBC\xB1" => "", # U+E0F31 => -"\xF3\xA0\xBC\xB2" => "", # U+E0F32 => -"\xF3\xA0\xBC\xB3" => "", # U+E0F33 => -"\xF3\xA0\xBC\xB4" => "", # U+E0F34 => -"\xF3\xA0\xBC\xB5" => "", # U+E0F35 => -"\xF3\xA0\xBC\xB6" => "", # U+E0F36 => -"\xF3\xA0\xBC\xB7" => "", # U+E0F37 => -"\xF3\xA0\xBC\xB8" => "", # U+E0F38 => -"\xF3\xA0\xBC\xB9" => "", # U+E0F39 => -"\xF3\xA0\xBC\xBA" => "", # U+E0F3A => -"\xF3\xA0\xBC\xBB" => "", # U+E0F3B => -"\xF3\xA0\xBC\xBC" => "", # U+E0F3C => -"\xF3\xA0\xBC\xBD" => "", # U+E0F3D => -"\xF3\xA0\xBC\xBE" => "", # U+E0F3E => -"\xF3\xA0\xBC\xBF" => "", # U+E0F3F => -"\xF3\xA0\xBD\x80" => "", # U+E0F40 => -"\xF3\xA0\xBD\x81" => "", # U+E0F41 => -"\xF3\xA0\xBD\x82" => "", # U+E0F42 => -"\xF3\xA0\xBD\x83" => "", # U+E0F43 => -"\xF3\xA0\xBD\x84" => "", # U+E0F44 => -"\xF3\xA0\xBD\x85" => "", # U+E0F45 => -"\xF3\xA0\xBD\x86" => "", # U+E0F46 => -"\xF3\xA0\xBD\x87" => "", # U+E0F47 => -"\xF3\xA0\xBD\x88" => "", # U+E0F48 => -"\xF3\xA0\xBD\x89" => "", # U+E0F49 => -"\xF3\xA0\xBD\x8A" => "", # U+E0F4A => -"\xF3\xA0\xBD\x8B" => "", # U+E0F4B => -"\xF3\xA0\xBD\x8C" => "", # U+E0F4C => -"\xF3\xA0\xBD\x8D" => "", # U+E0F4D => -"\xF3\xA0\xBD\x8E" => "", # U+E0F4E => -"\xF3\xA0\xBD\x8F" => "", # U+E0F4F => -"\xF3\xA0\xBD\x90" => "", # U+E0F50 => -"\xF3\xA0\xBD\x91" => "", # U+E0F51 => -"\xF3\xA0\xBD\x92" => "", # U+E0F52 => -"\xF3\xA0\xBD\x93" => "", # U+E0F53 => -"\xF3\xA0\xBD\x94" => "", # U+E0F54 => -"\xF3\xA0\xBD\x95" => "", # U+E0F55 => -"\xF3\xA0\xBD\x96" => "", # U+E0F56 => -"\xF3\xA0\xBD\x97" => "", # U+E0F57 => -"\xF3\xA0\xBD\x98" => "", # U+E0F58 => -"\xF3\xA0\xBD\x99" => "", # U+E0F59 => -"\xF3\xA0\xBD\x9A" => "", # U+E0F5A => -"\xF3\xA0\xBD\x9B" => "", # U+E0F5B => -"\xF3\xA0\xBD\x9C" => "", # U+E0F5C => -"\xF3\xA0\xBD\x9D" => "", # U+E0F5D => -"\xF3\xA0\xBD\x9E" => "", # U+E0F5E => -"\xF3\xA0\xBD\x9F" => "", # U+E0F5F => -"\xF3\xA0\xBD\xA0" => "", # U+E0F60 => -"\xF3\xA0\xBD\xA1" => "", # U+E0F61 => -"\xF3\xA0\xBD\xA2" => "", # U+E0F62 => -"\xF3\xA0\xBD\xA3" => "", # U+E0F63 => -"\xF3\xA0\xBD\xA4" => "", # U+E0F64 => -"\xF3\xA0\xBD\xA5" => "", # U+E0F65 => -"\xF3\xA0\xBD\xA6" => "", # U+E0F66 => -"\xF3\xA0\xBD\xA7" => "", # U+E0F67 => -"\xF3\xA0\xBD\xA8" => "", # U+E0F68 => -"\xF3\xA0\xBD\xA9" => "", # U+E0F69 => -"\xF3\xA0\xBD\xAA" => "", # U+E0F6A => -"\xF3\xA0\xBD\xAB" => "", # U+E0F6B => -"\xF3\xA0\xBD\xAC" => "", # U+E0F6C => -"\xF3\xA0\xBD\xAD" => "", # U+E0F6D => -"\xF3\xA0\xBD\xAE" => "", # U+E0F6E => -"\xF3\xA0\xBD\xAF" => "", # U+E0F6F => -"\xF3\xA0\xBD\xB0" => "", # U+E0F70 => -"\xF3\xA0\xBD\xB1" => "", # U+E0F71 => -"\xF3\xA0\xBD\xB2" => "", # U+E0F72 => -"\xF3\xA0\xBD\xB3" => "", # U+E0F73 => -"\xF3\xA0\xBD\xB4" => "", # U+E0F74 => -"\xF3\xA0\xBD\xB5" => "", # U+E0F75 => -"\xF3\xA0\xBD\xB6" => "", # U+E0F76 => -"\xF3\xA0\xBD\xB7" => "", # U+E0F77 => -"\xF3\xA0\xBD\xB8" => "", # U+E0F78 => -"\xF3\xA0\xBD\xB9" => "", # U+E0F79 => -"\xF3\xA0\xBD\xBA" => "", # U+E0F7A => -"\xF3\xA0\xBD\xBB" => "", # U+E0F7B => -"\xF3\xA0\xBD\xBC" => "", # U+E0F7C => -"\xF3\xA0\xBD\xBD" => "", # U+E0F7D => -"\xF3\xA0\xBD\xBE" => "", # U+E0F7E => -"\xF3\xA0\xBD\xBF" => "", # U+E0F7F => -"\xF3\xA0\xBE\x80" => "", # U+E0F80 => -"\xF3\xA0\xBE\x81" => "", # U+E0F81 => -"\xF3\xA0\xBE\x82" => "", # U+E0F82 => -"\xF3\xA0\xBE\x83" => "", # U+E0F83 => -"\xF3\xA0\xBE\x84" => "", # U+E0F84 => -"\xF3\xA0\xBE\x85" => "", # U+E0F85 => -"\xF3\xA0\xBE\x86" => "", # U+E0F86 => -"\xF3\xA0\xBE\x87" => "", # U+E0F87 => -"\xF3\xA0\xBE\x88" => "", # U+E0F88 => -"\xF3\xA0\xBE\x89" => "", # U+E0F89 => -"\xF3\xA0\xBE\x8A" => "", # U+E0F8A => -"\xF3\xA0\xBE\x8B" => "", # U+E0F8B => -"\xF3\xA0\xBE\x8C" => "", # U+E0F8C => -"\xF3\xA0\xBE\x8D" => "", # U+E0F8D => -"\xF3\xA0\xBE\x8E" => "", # U+E0F8E => -"\xF3\xA0\xBE\x8F" => "", # U+E0F8F => -"\xF3\xA0\xBE\x90" => "", # U+E0F90 => -"\xF3\xA0\xBE\x91" => "", # U+E0F91 => -"\xF3\xA0\xBE\x92" => "", # U+E0F92 => -"\xF3\xA0\xBE\x93" => "", # U+E0F93 => -"\xF3\xA0\xBE\x94" => "", # U+E0F94 => -"\xF3\xA0\xBE\x95" => "", # U+E0F95 => -"\xF3\xA0\xBE\x96" => "", # U+E0F96 => -"\xF3\xA0\xBE\x97" => "", # U+E0F97 => -"\xF3\xA0\xBE\x98" => "", # U+E0F98 => -"\xF3\xA0\xBE\x99" => "", # U+E0F99 => -"\xF3\xA0\xBE\x9A" => "", # U+E0F9A => -"\xF3\xA0\xBE\x9B" => "", # U+E0F9B => -"\xF3\xA0\xBE\x9C" => "", # U+E0F9C => -"\xF3\xA0\xBE\x9D" => "", # U+E0F9D => -"\xF3\xA0\xBE\x9E" => "", # U+E0F9E => -"\xF3\xA0\xBE\x9F" => "", # U+E0F9F => -"\xF3\xA0\xBE\xA0" => "", # U+E0FA0 => -"\xF3\xA0\xBE\xA1" => "", # U+E0FA1 => -"\xF3\xA0\xBE\xA2" => "", # U+E0FA2 => -"\xF3\xA0\xBE\xA3" => "", # U+E0FA3 => -"\xF3\xA0\xBE\xA4" => "", # U+E0FA4 => -"\xF3\xA0\xBE\xA5" => "", # U+E0FA5 => -"\xF3\xA0\xBE\xA6" => "", # U+E0FA6 => -"\xF3\xA0\xBE\xA7" => "", # U+E0FA7 => -"\xF3\xA0\xBE\xA8" => "", # U+E0FA8 => -"\xF3\xA0\xBE\xA9" => "", # U+E0FA9 => -"\xF3\xA0\xBE\xAA" => "", # U+E0FAA => -"\xF3\xA0\xBE\xAB" => "", # U+E0FAB => -"\xF3\xA0\xBE\xAC" => "", # U+E0FAC => -"\xF3\xA0\xBE\xAD" => "", # U+E0FAD => -"\xF3\xA0\xBE\xAE" => "", # U+E0FAE => -"\xF3\xA0\xBE\xAF" => "", # U+E0FAF => -"\xF3\xA0\xBE\xB0" => "", # U+E0FB0 => -"\xF3\xA0\xBE\xB1" => "", # U+E0FB1 => -"\xF3\xA0\xBE\xB2" => "", # U+E0FB2 => -"\xF3\xA0\xBE\xB3" => "", # U+E0FB3 => -"\xF3\xA0\xBE\xB4" => "", # U+E0FB4 => -"\xF3\xA0\xBE\xB5" => "", # U+E0FB5 => -"\xF3\xA0\xBE\xB6" => "", # U+E0FB6 => -"\xF3\xA0\xBE\xB7" => "", # U+E0FB7 => -"\xF3\xA0\xBE\xB8" => "", # U+E0FB8 => -"\xF3\xA0\xBE\xB9" => "", # U+E0FB9 => -"\xF3\xA0\xBE\xBA" => "", # U+E0FBA => -"\xF3\xA0\xBE\xBB" => "", # U+E0FBB => -"\xF3\xA0\xBE\xBC" => "", # U+E0FBC => -"\xF3\xA0\xBE\xBD" => "", # U+E0FBD => -"\xF3\xA0\xBE\xBE" => "", # U+E0FBE => -"\xF3\xA0\xBE\xBF" => "", # U+E0FBF => -"\xF3\xA0\xBF\x80" => "", # U+E0FC0 => -"\xF3\xA0\xBF\x81" => "", # U+E0FC1 => -"\xF3\xA0\xBF\x82" => "", # U+E0FC2 => -"\xF3\xA0\xBF\x83" => "", # U+E0FC3 => -"\xF3\xA0\xBF\x84" => "", # U+E0FC4 => -"\xF3\xA0\xBF\x85" => "", # U+E0FC5 => -"\xF3\xA0\xBF\x86" => "", # U+E0FC6 => -"\xF3\xA0\xBF\x87" => "", # U+E0FC7 => -"\xF3\xA0\xBF\x88" => "", # U+E0FC8 => -"\xF3\xA0\xBF\x89" => "", # U+E0FC9 => -"\xF3\xA0\xBF\x8A" => "", # U+E0FCA => -"\xF3\xA0\xBF\x8B" => "", # U+E0FCB => -"\xF3\xA0\xBF\x8C" => "", # U+E0FCC => -"\xF3\xA0\xBF\x8D" => "", # U+E0FCD => -"\xF3\xA0\xBF\x8E" => "", # U+E0FCE => -"\xF3\xA0\xBF\x8F" => "", # U+E0FCF => -"\xF3\xA0\xBF\x90" => "", # U+E0FD0 => -"\xF3\xA0\xBF\x91" => "", # U+E0FD1 => -"\xF3\xA0\xBF\x92" => "", # U+E0FD2 => -"\xF3\xA0\xBF\x93" => "", # U+E0FD3 => -"\xF3\xA0\xBF\x94" => "", # U+E0FD4 => -"\xF3\xA0\xBF\x95" => "", # U+E0FD5 => -"\xF3\xA0\xBF\x96" => "", # U+E0FD6 => -"\xF3\xA0\xBF\x97" => "", # U+E0FD7 => -"\xF3\xA0\xBF\x98" => "", # U+E0FD8 => -"\xF3\xA0\xBF\x99" => "", # U+E0FD9 => -"\xF3\xA0\xBF\x9A" => "", # U+E0FDA => -"\xF3\xA0\xBF\x9B" => "", # U+E0FDB => -"\xF3\xA0\xBF\x9C" => "", # U+E0FDC => -"\xF3\xA0\xBF\x9D" => "", # U+E0FDD => -"\xF3\xA0\xBF\x9E" => "", # U+E0FDE => -"\xF3\xA0\xBF\x9F" => "", # U+E0FDF => -"\xF3\xA0\xBF\xA0" => "", # U+E0FE0 => -"\xF3\xA0\xBF\xA1" => "", # U+E0FE1 => -"\xF3\xA0\xBF\xA2" => "", # U+E0FE2 => -"\xF3\xA0\xBF\xA3" => "", # U+E0FE3 => -"\xF3\xA0\xBF\xA4" => "", # U+E0FE4 => -"\xF3\xA0\xBF\xA5" => "", # U+E0FE5 => -"\xF3\xA0\xBF\xA6" => "", # U+E0FE6 => -"\xF3\xA0\xBF\xA7" => "", # U+E0FE7 => -"\xF3\xA0\xBF\xA8" => "", # U+E0FE8 => -"\xF3\xA0\xBF\xA9" => "", # U+E0FE9 => -"\xF3\xA0\xBF\xAA" => "", # U+E0FEA => -"\xF3\xA0\xBF\xAB" => "", # U+E0FEB => -"\xF3\xA0\xBF\xAC" => "", # U+E0FEC => -"\xF3\xA0\xBF\xAD" => "", # U+E0FED => -"\xF3\xA0\xBF\xAE" => "", # U+E0FEE => -"\xF3\xA0\xBF\xAF" => "", # U+E0FEF => -"\xF3\xA0\xBF\xB0" => "", # U+E0FF0 => -"\xF3\xA0\xBF\xB1" => "", # U+E0FF1 => -"\xF3\xA0\xBF\xB2" => "", # U+E0FF2 => -"\xF3\xA0\xBF\xB3" => "", # U+E0FF3 => -"\xF3\xA0\xBF\xB4" => "", # U+E0FF4 => -"\xF3\xA0\xBF\xB5" => "", # U+E0FF5 => -"\xF3\xA0\xBF\xB6" => "", # U+E0FF6 => -"\xF3\xA0\xBF\xB7" => "", # U+E0FF7 => -"\xF3\xA0\xBF\xB8" => "", # U+E0FF8 => -"\xF3\xA0\xBF\xB9" => "", # U+E0FF9 => -"\xF3\xA0\xBF\xBA" => "", # U+E0FFA => -"\xF3\xA0\xBF\xBB" => "", # U+E0FFB => -"\xF3\xA0\xBF\xBC" => "", # U+E0FFC => -"\xF3\xA0\xBF\xBD" => "", # U+E0FFD => -"\xF3\xA0\xBF\xBE" => "", # U+E0FFE => -"\xF3\xA0\xBF\xBF" => "", # U+E0FFF => -); - -return <<'END'; -0041 0061 -0042 0062 -0043 0063 -0044 0064 -0045 0065 -0046 0066 -0047 0067 -0048 0068 -0049 0069 -004A 006A -004B 006B -004C 006C -004D 006D -004E 006E -004F 006F -0050 0070 -0051 0071 -0052 0072 -0053 0073 -0054 0074 -0055 0075 -0056 0076 -0057 0077 -0058 0078 -0059 0079 -005A 007A -00A0 0020 -00AA 0061 -00B2 0032 -00B3 0033 -00B5 03BC -00B9 0031 -00BA 006F -00C0 00E0 -00C1 00E1 -00C2 00E2 -00C3 00E3 -00C4 00E4 -00C5 00E5 -00C6 00E6 -00C7 00E7 -00C8 00E8 -00C9 00E9 -00CA 00EA -00CB 00EB -00CC 00EC -00CD 00ED -00CE 00EE -00CF 00EF -00D0 00F0 -00D1 00F1 -00D2 00F2 -00D3 00F3 -00D4 00F4 -00D5 00F5 -00D6 00F6 -00D8 00F8 -00D9 00F9 -00DA 00FA -00DB 00FB -00DC 00FC -00DD 00FD -00DE 00FE -0100 0101 -0102 0103 -0104 0105 -0106 0107 -0108 0109 -010A 010B -010C 010D -010E 010F -0110 0111 -0112 0113 -0114 0115 -0116 0117 -0118 0119 -011A 011B -011C 011D -011E 011F -0120 0121 -0122 0123 -0124 0125 -0126 0127 -0128 0129 -012A 012B -012C 012D -012E 012F -0134 0135 -0136 0137 -0139 013A -013B 013C -013D 013E -0141 0142 -0143 0144 -0145 0146 -0147 0148 -014A 014B -014C 014D -014E 014F -0150 0151 -0152 0153 -0154 0155 -0156 0157 -0158 0159 -015A 015B -015C 015D -015E 015F -0160 0161 -0162 0163 -0164 0165 -0166 0167 -0168 0169 -016A 016B -016C 016D -016E 016F -0170 0171 -0172 0173 -0174 0175 -0176 0177 -0178 00FF -0179 017A -017B 017C -017D 017E -017F 0073 -0181 0253 -0182 0183 -0184 0185 -0186 0254 -0187 0188 -0189 0256 -018A 0257 -018B 018C -018E 01DD -018F 0259 -0190 025B -0191 0192 -0193 0260 -0194 0263 -0196 0269 -0197 0268 -0198 0199 -019C 026F -019D 0272 -019F 0275 -01A0 01A1 -01A2 01A3 -01A4 01A5 -01A6 0280 -01A7 01A8 -01A9 0283 -01AC 01AD -01AE 0288 -01AF 01B0 -01B1 028A -01B2 028B -01B3 01B4 -01B5 01B6 -01B7 0292 -01B8 01B9 -01BC 01BD -01CD 01CE -01CF 01D0 -01D1 01D2 -01D3 01D4 -01D5 01D6 -01D7 01D8 -01D9 01DA -01DB 01DC -01DE 01DF -01E0 01E1 -01E2 01E3 -01E4 01E5 -01E6 01E7 -01E8 01E9 -01EA 01EB -01EC 01ED -01EE 01EF -01F4 01F5 -01F6 0195 -01F7 01BF -01F8 01F9 -01FA 01FB -01FC 01FD -01FE 01FF -0200 0201 -0202 0203 -0204 0205 -0206 0207 -0208 0209 -020A 020B -020C 020D -020E 020F -0210 0211 -0212 0213 -0214 0215 -0216 0217 -0218 0219 -021A 021B -021C 021D -021E 021F -0220 019E -0222 0223 -0224 0225 -0226 0227 -0228 0229 -022A 022B -022C 022D -022E 022F -0230 0231 -0232 0233 -023A 2C65 -023B 023C -023D 019A -023E 2C66 -0241 0242 -0243 0180 -0244 0289 -0245 028C -0246 0247 -0248 0249 -024A 024B -024C 024D -024E 024F -02B0 0068 -02B1 0266 -02B2 006A -02B3 0072 -02B4 0279 -02B5 027B -02B6 0281 -02B7 0077 -02B8 0079 -02E0 0263 -02E1 006C -02E2 0073 -02E3 0078 -02E4 0295 -0340 0300 -0341 0301 -0343 0313 -0345 03B9 -0370 0371 -0372 0373 -0374 02B9 -0376 0377 -037E 003B -037F 03F3 -0386 03AC -0387 00B7 -0388 03AD -0389 03AE -038A 03AF -038C 03CC -038E 03CD -038F 03CE -0391 03B1 -0392 03B2 -0393 03B3 -0394 03B4 -0395 03B5 -0396 03B6 -0397 03B7 -0398 03B8 -0399 03B9 -039A 03BA -039B 03BB -039C 03BC -039D 03BD -039E 03BE -039F 03BF -03A0 03C0 -03A1 03C1 -03A3 03C3 -03A4 03C4 -03A5 03C5 -03A6 03C6 -03A7 03C7 -03A8 03C8 -03A9 03C9 -03AA 03CA -03AB 03CB -03C2 03C3 -03CF 03D7 -03D0 03B2 -03D1 03B8 -03D2 03C5 -03D3 03CD -03D4 03CB -03D5 03C6 -03D6 03C0 -03D8 03D9 -03DA 03DB -03DC 03DD -03DE 03DF -03E0 03E1 -03E2 03E3 -03E4 03E5 -03E6 03E7 -03E8 03E9 -03EA 03EB -03EC 03ED -03EE 03EF -03F0 03BA -03F1 03C1 -03F2 03C3 -03F4 03B8 -03F5 03B5 -03F7 03F8 -03F9 03C3 -03FA 03FB -03FD 037B -03FE 037C -03FF 037D -0400 0450 -0401 0451 -0402 0452 -0403 0453 -0404 0454 -0405 0455 -0406 0456 -0407 0457 -0408 0458 -0409 0459 -040A 045A -040B 045B -040C 045C -040D 045D -040E 045E -040F 045F -0410 0430 -0411 0431 -0412 0432 -0413 0433 -0414 0434 -0415 0435 -0416 0436 -0417 0437 -0418 0438 -0419 0439 -041A 043A -041B 043B -041C 043C -041D 043D -041E 043E -041F 043F -0420 0440 -0421 0441 -0422 0442 -0423 0443 -0424 0444 -0425 0445 -0426 0446 -0427 0447 -0428 0448 -0429 0449 -042A 044A -042B 044B -042C 044C -042D 044D -042E 044E -042F 044F -0460 0461 -0462 0463 -0464 0465 -0466 0467 -0468 0469 -046A 046B -046C 046D -046E 046F -0470 0471 -0472 0473 -0474 0475 -0476 0477 -0478 0479 -047A 047B -047C 047D -047E 047F -0480 0481 -048A 048B -048C 048D -048E 048F -0490 0491 -0492 0493 -0494 0495 -0496 0497 -0498 0499 -049A 049B -049C 049D -049E 049F -04A0 04A1 -04A2 04A3 -04A4 04A5 -04A6 04A7 -04A8 04A9 -04AA 04AB -04AC 04AD -04AE 04AF -04B0 04B1 -04B2 04B3 -04B4 04B5 -04B6 04B7 -04B8 04B9 -04BA 04BB -04BC 04BD -04BE 04BF -04C0 04CF -04C1 04C2 -04C3 04C4 -04C5 04C6 -04C7 04C8 -04C9 04CA -04CB 04CC -04CD 04CE -04D0 04D1 -04D2 04D3 -04D4 04D5 -04D6 04D7 -04D8 04D9 -04DA 04DB -04DC 04DD -04DE 04DF -04E0 04E1 -04E2 04E3 -04E4 04E5 -04E6 04E7 -04E8 04E9 -04EA 04EB -04EC 04ED -04EE 04EF -04F0 04F1 -04F2 04F3 -04F4 04F5 -04F6 04F7 -04F8 04F9 -04FA 04FB -04FC 04FD -04FE 04FF -0500 0501 -0502 0503 -0504 0505 -0506 0507 -0508 0509 -050A 050B -050C 050D -050E 050F -0510 0511 -0512 0513 -0514 0515 -0516 0517 -0518 0519 -051A 051B -051C 051D -051E 051F -0520 0521 -0522 0523 -0524 0525 -0526 0527 -0528 0529 -052A 052B -052C 052D -052E 052F -0531 0561 -0532 0562 -0533 0563 -0534 0564 -0535 0565 -0536 0566 -0537 0567 -0538 0568 -0539 0569 -053A 056A -053B 056B -053C 056C -053D 056D -053E 056E -053F 056F -0540 0570 -0541 0571 -0542 0572 -0543 0573 -0544 0574 -0545 0575 -0546 0576 -0547 0577 -0548 0578 -0549 0579 -054A 057A -054B 057B -054C 057C -054D 057D -054E 057E -054F 057F -0550 0580 -0551 0581 -0552 0582 -0553 0583 -0554 0584 -0555 0585 -0556 0586 -0F0C 0F0B -10A0 2D00 -10A1 2D01 -10A2 2D02 -10A3 2D03 -10A4 2D04 -10A5 2D05 -10A6 2D06 -10A7 2D07 -10A8 2D08 -10A9 2D09 -10AA 2D0A -10AB 2D0B -10AC 2D0C -10AD 2D0D -10AE 2D0E -10AF 2D0F -10B0 2D10 -10B1 2D11 -10B2 2D12 -10B3 2D13 -10B4 2D14 -10B5 2D15 -10B6 2D16 -10B7 2D17 -10B8 2D18 -10B9 2D19 -10BA 2D1A -10BB 2D1B -10BC 2D1C -10BD 2D1D -10BE 2D1E -10BF 2D1F -10C0 2D20 -10C1 2D21 -10C2 2D22 -10C3 2D23 -10C4 2D24 -10C5 2D25 -10C7 2D27 -10CD 2D2D -10FC 10DC -13F8 13F0 -13F9 13F1 -13FA 13F2 -13FB 13F3 -13FC 13F4 -13FD 13F5 -1D2C 0061 -1D2D 00E6 -1D2E 0062 -1D30 0064 -1D31 0065 -1D32 01DD -1D33 0067 -1D34 0068 -1D35 0069 -1D36 006A -1D37 006B -1D38 006C -1D39 006D -1D3A 006E -1D3C 006F -1D3D 0223 -1D3E 0070 -1D3F 0072 -1D40 0074 -1D41 0075 -1D42 0077 -1D43 0061 -1D44 0250 -1D45 0251 -1D46 1D02 -1D47 0062 -1D48 0064 -1D49 0065 -1D4A 0259 -1D4B 025B -1D4C 025C -1D4D 0067 -1D4F 006B -1D50 006D -1D51 014B -1D52 006F -1D53 0254 -1D54 1D16 -1D55 1D17 -1D56 0070 -1D57 0074 -1D58 0075 -1D59 1D1D -1D5A 026F -1D5B 0076 -1D5C 1D25 -1D5D 03B2 -1D5E 03B3 -1D5F 03B4 -1D60 03C6 -1D61 03C7 -1D62 0069 -1D63 0072 -1D64 0075 -1D65 0076 -1D66 03B2 -1D67 03B3 -1D68 03C1 -1D69 03C6 -1D6A 03C7 -1D78 043D -1D9B 0252 -1D9C 0063 -1D9D 0255 -1D9E 00F0 -1D9F 025C -1DA0 0066 -1DA1 025F -1DA2 0261 -1DA3 0265 -1DA4 0268 -1DA5 0269 -1DA6 026A -1DA7 1D7B -1DA8 029D -1DA9 026D -1DAA 1D85 -1DAB 029F -1DAC 0271 -1DAD 0270 -1DAE 0272 -1DAF 0273 -1DB0 0274 -1DB1 0275 -1DB2 0278 -1DB3 0282 -1DB4 0283 -1DB5 01AB -1DB6 0289 -1DB7 028A -1DB8 1D1C -1DB9 028B -1DBA 028C -1DBB 007A -1DBC 0290 -1DBD 0291 -1DBE 0292 -1DBF 03B8 -1E00 1E01 -1E02 1E03 -1E04 1E05 -1E06 1E07 -1E08 1E09 -1E0A 1E0B -1E0C 1E0D -1E0E 1E0F -1E10 1E11 -1E12 1E13 -1E14 1E15 -1E16 1E17 -1E18 1E19 -1E1A 1E1B -1E1C 1E1D -1E1E 1E1F -1E20 1E21 -1E22 1E23 -1E24 1E25 -1E26 1E27 -1E28 1E29 -1E2A 1E2B -1E2C 1E2D -1E2E 1E2F -1E30 1E31 -1E32 1E33 -1E34 1E35 -1E36 1E37 -1E38 1E39 -1E3A 1E3B -1E3C 1E3D -1E3E 1E3F -1E40 1E41 -1E42 1E43 -1E44 1E45 -1E46 1E47 -1E48 1E49 -1E4A 1E4B -1E4C 1E4D -1E4E 1E4F -1E50 1E51 -1E52 1E53 -1E54 1E55 -1E56 1E57 -1E58 1E59 -1E5A 1E5B -1E5C 1E5D -1E5E 1E5F -1E60 1E61 -1E62 1E63 -1E64 1E65 -1E66 1E67 -1E68 1E69 -1E6A 1E6B -1E6C 1E6D -1E6E 1E6F -1E70 1E71 -1E72 1E73 -1E74 1E75 -1E76 1E77 -1E78 1E79 -1E7A 1E7B -1E7C 1E7D -1E7E 1E7F -1E80 1E81 -1E82 1E83 -1E84 1E85 -1E86 1E87 -1E88 1E89 -1E8A 1E8B -1E8C 1E8D -1E8E 1E8F -1E90 1E91 -1E92 1E93 -1E94 1E95 -1E9B 1E61 -1EA0 1EA1 -1EA2 1EA3 -1EA4 1EA5 -1EA6 1EA7 -1EA8 1EA9 -1EAA 1EAB -1EAC 1EAD -1EAE 1EAF -1EB0 1EB1 -1EB2 1EB3 -1EB4 1EB5 -1EB6 1EB7 -1EB8 1EB9 -1EBA 1EBB -1EBC 1EBD -1EBE 1EBF -1EC0 1EC1 -1EC2 1EC3 -1EC4 1EC5 -1EC6 1EC7 -1EC8 1EC9 -1ECA 1ECB -1ECC 1ECD -1ECE 1ECF -1ED0 1ED1 -1ED2 1ED3 -1ED4 1ED5 -1ED6 1ED7 -1ED8 1ED9 -1EDA 1EDB -1EDC 1EDD -1EDE 1EDF -1EE0 1EE1 -1EE2 1EE3 -1EE4 1EE5 -1EE6 1EE7 -1EE8 1EE9 -1EEA 1EEB -1EEC 1EED -1EEE 1EEF -1EF0 1EF1 -1EF2 1EF3 -1EF4 1EF5 -1EF6 1EF7 -1EF8 1EF9 -1EFA 1EFB -1EFC 1EFD -1EFE 1EFF -1F08 1F00 -1F09 1F01 -1F0A 1F02 -1F0B 1F03 -1F0C 1F04 -1F0D 1F05 -1F0E 1F06 -1F0F 1F07 -1F18 1F10 -1F19 1F11 -1F1A 1F12 -1F1B 1F13 -1F1C 1F14 -1F1D 1F15 -1F28 1F20 -1F29 1F21 -1F2A 1F22 -1F2B 1F23 -1F2C 1F24 -1F2D 1F25 -1F2E 1F26 -1F2F 1F27 -1F38 1F30 -1F39 1F31 -1F3A 1F32 -1F3B 1F33 -1F3C 1F34 -1F3D 1F35 -1F3E 1F36 -1F3F 1F37 -1F48 1F40 -1F49 1F41 -1F4A 1F42 -1F4B 1F43 -1F4C 1F44 -1F4D 1F45 -1F59 1F51 -1F5B 1F53 -1F5D 1F55 -1F5F 1F57 -1F68 1F60 -1F69 1F61 -1F6A 1F62 -1F6B 1F63 -1F6C 1F64 -1F6D 1F65 -1F6E 1F66 -1F6F 1F67 -1F71 03AC -1F73 03AD -1F75 03AE -1F77 03AF -1F79 03CC -1F7B 03CD -1F7D 03CE -1FB8 1FB0 -1FB9 1FB1 -1FBA 1F70 -1FBB 03AC -1FBE 03B9 -1FC8 1F72 -1FC9 03AD -1FCA 1F74 -1FCB 03AE -1FD3 0390 -1FD8 1FD0 -1FD9 1FD1 -1FDA 1F76 -1FDB 03AF -1FE3 03B0 -1FE8 1FE0 -1FE9 1FE1 -1FEA 1F7A -1FEB 03CD -1FEC 1FE5 -1FEF 0060 -1FF8 1F78 -1FF9 03CC -1FFA 1F7C -1FFB 03CE -2000 0020 -2001 0020 -2002 0020 -2003 0020 -2004 0020 -2005 0020 -2006 0020 -2007 0020 -2008 0020 -2009 0020 -200A 0020 -2011 2010 -2024 002E -202F 0020 -205F 0020 -2070 0030 -2071 0069 -2074 0034 -2075 0035 -2076 0036 -2077 0037 -2078 0038 -2079 0039 -207A 002B -207B 2212 -207C 003D -207D 0028 -207E 0029 -207F 006E -2080 0030 -2081 0031 -2082 0032 -2083 0033 -2084 0034 -2085 0035 -2086 0036 -2087 0037 -2088 0038 -2089 0039 -208A 002B -208B 2212 -208C 003D -208D 0028 -208E 0029 -2090 0061 -2091 0065 -2092 006F -2093 0078 -2094 0259 -2095 0068 -2096 006B -2097 006C -2098 006D -2099 006E -209A 0070 -209B 0073 -209C 0074 -2102 0063 -2107 025B -210A 0067 -210B 0068 -210C 0068 -210D 0068 -210E 0068 -210F 0127 -2110 0069 -2111 0069 -2112 006C -2113 006C -2115 006E -2119 0070 -211A 0071 -211B 0072 -211C 0072 -211D 0072 -2124 007A -2126 03C9 -2128 007A -212A 006B -212B 00E5 -212C 0062 -212D 0063 -212F 0065 -2130 0065 -2131 0066 -2132 214E -2133 006D -2134 006F -2135 05D0 -2136 05D1 -2137 05D2 -2138 05D3 -2139 0069 -213C 03C0 -213D 03B3 -213E 03B3 -213F 03C0 -2140 2211 -2145 0064 -2146 0064 -2147 0065 -2148 0069 -2149 006A -2160 0069 -2164 0076 -2169 0078 -216C 006C -216D 0063 -216E 0064 -216F 006D -2170 0069 -2174 0076 -2179 0078 -217C 006C -217D 0063 -217E 0064 -217F 006D -2183 2184 -2329 3008 -232A 3009 -2460 0031 -2461 0032 -2462 0033 -2463 0034 -2464 0035 -2465 0036 -2466 0037 -2467 0038 -2468 0039 -24B6 0061 -24B7 0062 -24B8 0063 -24B9 0064 -24BA 0065 -24BB 0066 -24BC 0067 -24BD 0068 -24BE 0069 -24BF 006A -24C0 006B -24C1 006C -24C2 006D -24C3 006E -24C4 006F -24C5 0070 -24C6 0071 -24C7 0072 -24C8 0073 -24C9 0074 -24CA 0075 -24CB 0076 -24CC 0077 -24CD 0078 -24CE 0079 -24CF 007A -24D0 0061 -24D1 0062 -24D2 0063 -24D3 0064 -24D4 0065 -24D5 0066 -24D6 0067 -24D7 0068 -24D8 0069 -24D9 006A -24DA 006B -24DB 006C -24DC 006D -24DD 006E -24DE 006F -24DF 0070 -24E0 0071 -24E1 0072 -24E2 0073 -24E3 0074 -24E4 0075 -24E5 0076 -24E6 0077 -24E7 0078 -24E8 0079 -24E9 007A -24EA 0030 -2C00 2C30 -2C01 2C31 -2C02 2C32 -2C03 2C33 -2C04 2C34 -2C05 2C35 -2C06 2C36 -2C07 2C37 -2C08 2C38 -2C09 2C39 -2C0A 2C3A -2C0B 2C3B -2C0C 2C3C -2C0D 2C3D -2C0E 2C3E -2C0F 2C3F -2C10 2C40 -2C11 2C41 -2C12 2C42 -2C13 2C43 -2C14 2C44 -2C15 2C45 -2C16 2C46 -2C17 2C47 -2C18 2C48 -2C19 2C49 -2C1A 2C4A -2C1B 2C4B -2C1C 2C4C -2C1D 2C4D -2C1E 2C4E -2C1F 2C4F -2C20 2C50 -2C21 2C51 -2C22 2C52 -2C23 2C53 -2C24 2C54 -2C25 2C55 -2C26 2C56 -2C27 2C57 -2C28 2C58 -2C29 2C59 -2C2A 2C5A -2C2B 2C5B -2C2C 2C5C -2C2D 2C5D -2C2E 2C5E -2C60 2C61 -2C62 026B -2C63 1D7D -2C64 027D -2C67 2C68 -2C69 2C6A -2C6B 2C6C -2C6D 0251 -2C6E 0271 -2C6F 0250 -2C70 0252 -2C72 2C73 -2C75 2C76 -2C7C 006A -2C7D 0076 -2C7E 023F -2C7F 0240 -2C80 2C81 -2C82 2C83 -2C84 2C85 -2C86 2C87 -2C88 2C89 -2C8A 2C8B -2C8C 2C8D -2C8E 2C8F -2C90 2C91 -2C92 2C93 -2C94 2C95 -2C96 2C97 -2C98 2C99 -2C9A 2C9B -2C9C 2C9D -2C9E 2C9F -2CA0 2CA1 -2CA2 2CA3 -2CA4 2CA5 -2CA6 2CA7 -2CA8 2CA9 -2CAA 2CAB -2CAC 2CAD -2CAE 2CAF -2CB0 2CB1 -2CB2 2CB3 -2CB4 2CB5 -2CB6 2CB7 -2CB8 2CB9 -2CBA 2CBB -2CBC 2CBD -2CBE 2CBF -2CC0 2CC1 -2CC2 2CC3 -2CC4 2CC5 -2CC6 2CC7 -2CC8 2CC9 -2CCA 2CCB -2CCC 2CCD -2CCE 2CCF -2CD0 2CD1 -2CD2 2CD3 -2CD4 2CD5 -2CD6 2CD7 -2CD8 2CD9 -2CDA 2CDB -2CDC 2CDD -2CDE 2CDF -2CE0 2CE1 -2CE2 2CE3 -2CEB 2CEC -2CED 2CEE -2CF2 2CF3 -2D6F 2D61 -2E9F 6BCD -2EF3 9F9F -2F00 4E00 -2F01 4E28 -2F02 4E36 -2F03 4E3F -2F04 4E59 -2F05 4E85 -2F06 4E8C -2F07 4EA0 -2F08 4EBA -2F09 513F -2F0A 5165 -2F0B 516B -2F0C 5182 -2F0D 5196 -2F0E 51AB -2F0F 51E0 -2F10 51F5 -2F11 5200 -2F12 529B -2F13 52F9 -2F14 5315 -2F15 531A -2F16 5338 -2F17 5341 -2F18 535C -2F19 5369 -2F1A 5382 -2F1B 53B6 -2F1C 53C8 -2F1D 53E3 -2F1E 56D7 -2F1F 571F -2F20 58EB -2F21 5902 -2F22 590A -2F23 5915 -2F24 5927 -2F25 5973 -2F26 5B50 -2F27 5B80 -2F28 5BF8 -2F29 5C0F -2F2A 5C22 -2F2B 5C38 -2F2C 5C6E -2F2D 5C71 -2F2E 5DDB -2F2F 5DE5 -2F30 5DF1 -2F31 5DFE -2F32 5E72 -2F33 5E7A -2F34 5E7F -2F35 5EF4 -2F36 5EFE -2F37 5F0B -2F38 5F13 -2F39 5F50 -2F3A 5F61 -2F3B 5F73 -2F3C 5FC3 -2F3D 6208 -2F3E 6236 -2F3F 624B -2F40 652F -2F41 6534 -2F42 6587 -2F43 6597 -2F44 65A4 -2F45 65B9 -2F46 65E0 -2F47 65E5 -2F48 66F0 -2F49 6708 -2F4A 6728 -2F4B 6B20 -2F4C 6B62 -2F4D 6B79 -2F4E 6BB3 -2F4F 6BCB -2F50 6BD4 -2F51 6BDB -2F52 6C0F -2F53 6C14 -2F54 6C34 -2F55 706B -2F56 722A -2F57 7236 -2F58 723B -2F59 723F -2F5A 7247 -2F5B 7259 -2F5C 725B -2F5D 72AC -2F5E 7384 -2F5F 7389 -2F60 74DC -2F61 74E6 -2F62 7518 -2F63 751F -2F64 7528 -2F65 7530 -2F66 758B -2F67 7592 -2F68 7676 -2F69 767D -2F6A 76AE -2F6B 76BF -2F6C 76EE -2F6D 77DB -2F6E 77E2 -2F6F 77F3 -2F70 793A -2F71 79B8 -2F72 79BE -2F73 7A74 -2F74 7ACB -2F75 7AF9 -2F76 7C73 -2F77 7CF8 -2F78 7F36 -2F79 7F51 -2F7A 7F8A -2F7B 7FBD -2F7C 8001 -2F7D 800C -2F7E 8012 -2F7F 8033 -2F80 807F -2F81 8089 -2F82 81E3 -2F83 81EA -2F84 81F3 -2F85 81FC -2F86 820C -2F87 821B -2F88 821F -2F89 826E -2F8A 8272 -2F8B 8278 -2F8C 864D -2F8D 866B -2F8E 8840 -2F8F 884C -2F90 8863 -2F91 897E -2F92 898B -2F93 89D2 -2F94 8A00 -2F95 8C37 -2F96 8C46 -2F97 8C55 -2F98 8C78 -2F99 8C9D -2F9A 8D64 -2F9B 8D70 -2F9C 8DB3 -2F9D 8EAB -2F9E 8ECA -2F9F 8F9B -2FA0 8FB0 -2FA1 8FB5 -2FA2 9091 -2FA3 9149 -2FA4 91C6 -2FA5 91CC -2FA6 91D1 -2FA7 9577 -2FA8 9580 -2FA9 961C -2FAA 96B6 -2FAB 96B9 -2FAC 96E8 -2FAD 9751 -2FAE 975E -2FAF 9762 -2FB0 9769 -2FB1 97CB -2FB2 97ED -2FB3 97F3 -2FB4 9801 -2FB5 98A8 -2FB6 98DB -2FB7 98DF -2FB8 9996 -2FB9 9999 -2FBA 99AC -2FBB 9AA8 -2FBC 9AD8 -2FBD 9ADF -2FBE 9B25 -2FBF 9B2F -2FC0 9B32 -2FC1 9B3C -2FC2 9B5A -2FC3 9CE5 -2FC4 9E75 -2FC5 9E7F -2FC6 9EA5 -2FC7 9EBB -2FC8 9EC3 -2FC9 9ECD -2FCA 9ED1 -2FCB 9EF9 -2FCC 9EFD -2FCD 9F0E -2FCE 9F13 -2FCF 9F20 -2FD0 9F3B -2FD1 9F4A -2FD2 9F52 -2FD3 9F8D -2FD4 9F9C -2FD5 9FA0 -3000 0020 -3036 3012 -3038 5341 -3039 5344 -303A 5345 -3131 1100 -3132 1101 -3133 11AA -3134 1102 -3135 11AC -3136 11AD -3137 1103 -3138 1104 -3139 1105 -313A 11B0 -313B 11B1 -313C 11B2 -313D 11B3 -313E 11B4 -313F 11B5 -3140 111A -3141 1106 -3142 1107 -3143 1108 -3144 1121 -3145 1109 -3146 110A -3147 110B -3148 110C -3149 110D -314A 110E -314B 110F -314C 1110 -314D 1111 -314E 1112 -314F 1161 -3150 1162 -3151 1163 -3152 1164 -3153 1165 -3154 1166 -3155 1167 -3156 1168 -3157 1169 -3158 116A -3159 116B -315A 116C -315B 116D -315C 116E -315D 116F -315E 1170 -315F 1171 -3160 1172 -3161 1173 -3162 1174 -3163 1175 -3165 1114 -3166 1115 -3167 11C7 -3168 11C8 -3169 11CC -316A 11CE -316B 11D3 -316C 11D7 -316D 11D9 -316E 111C -316F 11DD -3170 11DF -3171 111D -3172 111E -3173 1120 -3174 1122 -3175 1123 -3176 1127 -3177 1129 -3178 112B -3179 112C -317A 112D -317B 112E -317C 112F -317D 1132 -317E 1136 -317F 1140 -3180 1147 -3181 114C -3182 11F1 -3183 11F2 -3184 1157 -3185 1158 -3186 1159 -3187 1184 -3188 1185 -3189 1188 -318A 1191 -318B 1192 -318C 1194 -318D 119E -318E 11A1 -3192 4E00 -3193 4E8C -3194 4E09 -3195 56DB -3196 4E0A -3197 4E2D -3198 4E0B -3199 7532 -319A 4E59 -319B 4E19 -319C 4E01 -319D 5929 -319E 5730 -319F 4EBA -3244 554F -3245 5E7C -3246 6587 -3247 7B8F -3260 1100 -3261 1102 -3262 1103 -3263 1105 -3264 1106 -3265 1107 -3266 1109 -3267 110B -3268 110C -3269 110E -326A 110F -326B 1110 -326C 1111 -326D 1112 -326E AC00 -326F B098 -3270 B2E4 -3271 B77C -3272 B9C8 -3273 BC14 -3274 C0AC -3275 C544 -3276 C790 -3277 CC28 -3278 CE74 -3279 D0C0 -327A D30C -327B D558 -327E C6B0 -3280 4E00 -3281 4E8C -3282 4E09 -3283 56DB -3284 4E94 -3285 516D -3286 4E03 -3287 516B -3288 4E5D -3289 5341 -328A 6708 -328B 706B -328C 6C34 -328D 6728 -328E 91D1 -328F 571F -3290 65E5 -3291 682A -3292 6709 -3293 793E -3294 540D -3295 7279 -3296 8CA1 -3297 795D -3298 52B4 -3299 79D8 -329A 7537 -329B 5973 -329C 9069 -329D 512A -329E 5370 -329F 6CE8 -32A0 9805 -32A1 4F11 -32A2 5199 -32A3 6B63 -32A4 4E0A -32A5 4E2D -32A6 4E0B -32A7 5DE6 -32A8 53F3 -32A9 533B -32AA 5B97 -32AB 5B66 -32AC 76E3 -32AD 4F01 -32AE 8CC7 -32AF 5354 -32B0 591C -32D0 30A2 -32D1 30A4 -32D2 30A6 -32D3 30A8 -32D4 30AA -32D5 30AB -32D6 30AD -32D7 30AF -32D8 30B1 -32D9 30B3 -32DA 30B5 -32DB 30B7 -32DC 30B9 -32DD 30BB -32DE 30BD -32DF 30BF -32E0 30C1 -32E1 30C4 -32E2 30C6 -32E3 30C8 -32E4 30CA -32E5 30CB -32E6 30CC -32E7 30CD -32E8 30CE -32E9 30CF -32EA 30D2 -32EB 30D5 -32EC 30D8 -32ED 30DB -32EE 30DE -32EF 30DF -32F0 30E0 -32F1 30E1 -32F2 30E2 -32F3 30E4 -32F4 30E6 -32F5 30E8 -32F6 30E9 -32F7 30EA -32F8 30EB -32F9 30EC -32FA 30ED -32FB 30EF -32FC 30F0 -32FD 30F1 -32FE 30F2 -A640 A641 -A642 A643 -A644 A645 -A646 A647 -A648 A649 -A64A A64B -A64C A64D -A64E A64F -A650 A651 -A652 A653 -A654 A655 -A656 A657 -A658 A659 -A65A A65B -A65C A65D -A65E A65F -A660 A661 -A662 A663 -A664 A665 -A666 A667 -A668 A669 -A66A A66B -A66C A66D -A680 A681 -A682 A683 -A684 A685 -A686 A687 -A688 A689 -A68A A68B -A68C A68D -A68E A68F -A690 A691 -A692 A693 -A694 A695 -A696 A697 -A698 A699 -A69A A69B -A69C 044A -A69D 044C -A722 A723 -A724 A725 -A726 A727 -A728 A729 -A72A A72B -A72C A72D -A72E A72F -A732 A733 -A734 A735 -A736 A737 -A738 A739 -A73A A73B -A73C A73D -A73E A73F -A740 A741 -A742 A743 -A744 A745 -A746 A747 -A748 A749 -A74A A74B -A74C A74D -A74E A74F -A750 A751 -A752 A753 -A754 A755 -A756 A757 -A758 A759 -A75A A75B -A75C A75D -A75E A75F -A760 A761 -A762 A763 -A764 A765 -A766 A767 -A768 A769 -A76A A76B -A76C A76D -A76E A76F -A770 A76F -A779 A77A -A77B A77C -A77D 1D79 -A77E A77F -A780 A781 -A782 A783 -A784 A785 -A786 A787 -A78B A78C -A78D 0265 -A790 A791 -A792 A793 -A796 A797 -A798 A799 -A79A A79B -A79C A79D -A79E A79F -A7A0 A7A1 -A7A2 A7A3 -A7A4 A7A5 -A7A6 A7A7 -A7A8 A7A9 -A7AA 0266 -A7AB 025C -A7AC 0261 -A7AD 026C -A7B0 029E -A7B1 0287 -A7B2 029D -A7B3 AB53 -A7B4 A7B5 -A7B6 A7B7 -A7F8 0127 -A7F9 0153 -AB5C A727 -AB5D AB37 -AB5E 026B -AB5F AB52 -AB70 13A0 -AB71 13A1 -AB72 13A2 -AB73 13A3 -AB74 13A4 -AB75 13A5 -AB76 13A6 -AB77 13A7 -AB78 13A8 -AB79 13A9 -AB7A 13AA -AB7B 13AB -AB7C 13AC -AB7D 13AD -AB7E 13AE -AB7F 13AF -AB80 13B0 -AB81 13B1 -AB82 13B2 -AB83 13B3 -AB84 13B4 -AB85 13B5 -AB86 13B6 -AB87 13B7 -AB88 13B8 -AB89 13B9 -AB8A 13BA -AB8B 13BB -AB8C 13BC -AB8D 13BD -AB8E 13BE -AB8F 13BF -AB90 13C0 -AB91 13C1 -AB92 13C2 -AB93 13C3 -AB94 13C4 -AB95 13C5 -AB96 13C6 -AB97 13C7 -AB98 13C8 -AB99 13C9 -AB9A 13CA -AB9B 13CB -AB9C 13CC -AB9D 13CD -AB9E 13CE -AB9F 13CF -ABA0 13D0 -ABA1 13D1 -ABA2 13D2 -ABA3 13D3 -ABA4 13D4 -ABA5 13D5 -ABA6 13D6 -ABA7 13D7 -ABA8 13D8 -ABA9 13D9 -ABAA 13DA -ABAB 13DB -ABAC 13DC -ABAD 13DD -ABAE 13DE -ABAF 13DF -ABB0 13E0 -ABB1 13E1 -ABB2 13E2 -ABB3 13E3 -ABB4 13E4 -ABB5 13E5 -ABB6 13E6 -ABB7 13E7 -ABB8 13E8 -ABB9 13E9 -ABBA 13EA -ABBB 13EB -ABBC 13EC -ABBD 13ED -ABBE 13EE -ABBF 13EF -F900 8C48 -F901 66F4 -F902 8ECA -F903 8CC8 -F904 6ED1 -F905 4E32 -F906 53E5 -F907 9F9C -F908 9F9C -F909 5951 -F90A 91D1 -F90B 5587 -F90C 5948 -F90D 61F6 -F90E 7669 -F90F 7F85 -F910 863F -F911 87BA -F912 88F8 -F913 908F -F914 6A02 -F915 6D1B -F916 70D9 -F917 73DE -F918 843D -F919 916A -F91A 99F1 -F91B 4E82 -F91C 5375 -F91D 6B04 -F91E 721B -F91F 862D -F920 9E1E -F921 5D50 -F922 6FEB -F923 85CD -F924 8964 -F925 62C9 -F926 81D8 -F927 881F -F928 5ECA -F929 6717 -F92A 6D6A -F92B 72FC -F92C 90CE -F92D 4F86 -F92E 51B7 -F92F 52DE -F930 64C4 -F931 6AD3 -F932 7210 -F933 76E7 -F934 8001 -F935 8606 -F936 865C -F937 8DEF -F938 9732 -F939 9B6F -F93A 9DFA -F93B 788C -F93C 797F -F93D 7DA0 -F93E 83C9 -F93F 9304 -F940 9E7F -F941 8AD6 -F942 58DF -F943 5F04 -F944 7C60 -F945 807E -F946 7262 -F947 78CA -F948 8CC2 -F949 96F7 -F94A 58D8 -F94B 5C62 -F94C 6A13 -F94D 6DDA -F94E 6F0F -F94F 7D2F -F950 7E37 -F951 964B -F952 52D2 -F953 808B -F954 51DC -F955 51CC -F956 7A1C -F957 7DBE -F958 83F1 -F959 9675 -F95A 8B80 -F95B 62CF -F95C 6A02 -F95D 8AFE -F95E 4E39 -F95F 5BE7 -F960 6012 -F961 7387 -F962 7570 -F963 5317 -F964 78FB -F965 4FBF -F966 5FA9 -F967 4E0D -F968 6CCC -F969 6578 -F96A 7D22 -F96B 53C3 -F96C 585E -F96D 7701 -F96E 8449 -F96F 8AAA -F970 6BBA -F971 8FB0 -F972 6C88 -F973 62FE -F974 82E5 -F975 63A0 -F976 7565 -F977 4EAE -F978 5169 -F979 51C9 -F97A 6881 -F97B 7CE7 -F97C 826F -F97D 8AD2 -F97E 91CF -F97F 52F5 -F980 5442 -F981 5973 -F982 5EEC -F983 65C5 -F984 6FFE -F985 792A -F986 95AD -F987 9A6A -F988 9E97 -F989 9ECE -F98A 529B -F98B 66C6 -F98C 6B77 -F98D 8F62 -F98E 5E74 -F98F 6190 -F990 6200 -F991 649A -F992 6F23 -F993 7149 -F994 7489 -F995 79CA -F996 7DF4 -F997 806F -F998 8F26 -F999 84EE -F99A 9023 -F99B 934A -F99C 5217 -F99D 52A3 -F99E 54BD -F99F 70C8 -F9A0 88C2 -F9A1 8AAA -F9A2 5EC9 -F9A3 5FF5 -F9A4 637B -F9A5 6BAE -F9A6 7C3E -F9A7 7375 -F9A8 4EE4 -F9A9 56F9 -F9AA 5BE7 -F9AB 5DBA -F9AC 601C -F9AD 73B2 -F9AE 7469 -F9AF 7F9A -F9B0 8046 -F9B1 9234 -F9B2 96F6 -F9B3 9748 -F9B4 9818 -F9B5 4F8B -F9B6 79AE -F9B7 91B4 -F9B8 96B8 -F9B9 60E1 -F9BA 4E86 -F9BB 50DA -F9BC 5BEE -F9BD 5C3F -F9BE 6599 -F9BF 6A02 -F9C0 71CE -F9C1 7642 -F9C2 84FC -F9C3 907C -F9C4 9F8D -F9C5 6688 -F9C6 962E -F9C7 5289 -F9C8 677B -F9C9 67F3 -F9CA 6D41 -F9CB 6E9C -F9CC 7409 -F9CD 7559 -F9CE 786B -F9CF 7D10 -F9D0 985E -F9D1 516D -F9D2 622E -F9D3 9678 -F9D4 502B -F9D5 5D19 -F9D6 6DEA -F9D7 8F2A -F9D8 5F8B -F9D9 6144 -F9DA 6817 -F9DB 7387 -F9DC 9686 -F9DD 5229 -F9DE 540F -F9DF 5C65 -F9E0 6613 -F9E1 674E -F9E2 68A8 -F9E3 6CE5 -F9E4 7406 -F9E5 75E2 -F9E6 7F79 -F9E7 88CF -F9E8 88E1 -F9E9 91CC -F9EA 96E2 -F9EB 533F -F9EC 6EBA -F9ED 541D -F9EE 71D0 -F9EF 7498 -F9F0 85FA -F9F1 96A3 -F9F2 9C57 -F9F3 9E9F -F9F4 6797 -F9F5 6DCB -F9F6 81E8 -F9F7 7ACB -F9F8 7B20 -F9F9 7C92 -F9FA 72C0 -F9FB 7099 -F9FC 8B58 -F9FD 4EC0 -F9FE 8336 -F9FF 523A -FA00 5207 -FA01 5EA6 -FA02 62D3 -FA03 7CD6 -FA04 5B85 -FA05 6D1E -FA06 66B4 -FA07 8F3B -FA08 884C -FA09 964D -FA0A 898B -FA0B 5ED3 -FA0C 5140 -FA0D 55C0 -FA10 585A -FA12 6674 -FA15 51DE -FA16 732A -FA17 76CA -FA18 793C -FA19 795E -FA1A 7965 -FA1B 798F -FA1C 9756 -FA1D 7CBE -FA1E 7FBD -FA20 8612 -FA22 8AF8 -FA25 9038 -FA26 90FD -FA2A 98EF -FA2B 98FC -FA2C 9928 -FA2D 9DB4 -FA2E 90DE -FA2F 96B7 -FA30 4FAE -FA31 50E7 -FA32 514D -FA33 52C9 -FA34 52E4 -FA35 5351 -FA36 559D -FA37 5606 -FA38 5668 -FA39 5840 -FA3A 58A8 -FA3B 5C64 -FA3C 5C6E -FA3D 6094 -FA3E 6168 -FA3F 618E -FA40 61F2 -FA41 654F -FA42 65E2 -FA43 6691 -FA44 6885 -FA45 6D77 -FA46 6E1A -FA47 6F22 -FA48 716E -FA49 722B -FA4A 7422 -FA4B 7891 -FA4C 793E -FA4D 7949 -FA4E 7948 -FA4F 7950 -FA50 7956 -FA51 795D -FA52 798D -FA53 798E -FA54 7A40 -FA55 7A81 -FA56 7BC0 -FA57 7DF4 -FA58 7E09 -FA59 7E41 -FA5A 7F72 -FA5B 8005 -FA5C 81ED -FA5D 8279 -FA5E 8279 -FA5F 8457 -FA60 8910 -FA61 8996 -FA62 8B01 -FA63 8B39 -FA64 8CD3 -FA65 8D08 -FA66 8FB6 -FA67 9038 -FA68 96E3 -FA69 97FF -FA6A 983B -FA6B 6075 -FA6C 242EE -FA6D 8218 -FA70 4E26 -FA71 51B5 -FA72 5168 -FA73 4F80 -FA74 5145 -FA75 5180 -FA76 52C7 -FA77 52FA -FA78 559D -FA79 5555 -FA7A 5599 -FA7B 55E2 -FA7C 585A -FA7D 58B3 -FA7E 5944 -FA7F 5954 -FA80 5A62 -FA81 5B28 -FA82 5ED2 -FA83 5ED9 -FA84 5F69 -FA85 5FAD -FA86 60D8 -FA87 614E -FA88 6108 -FA89 618E -FA8A 6160 -FA8B 61F2 -FA8C 6234 -FA8D 63C4 -FA8E 641C -FA8F 6452 -FA90 6556 -FA91 6674 -FA92 6717 -FA93 671B -FA94 6756 -FA95 6B79 -FA96 6BBA -FA97 6D41 -FA98 6EDB -FA99 6ECB -FA9A 6F22 -FA9B 701E -FA9C 716E -FA9D 77A7 -FA9E 7235 -FA9F 72AF -FAA0 732A -FAA1 7471 -FAA2 7506 -FAA3 753B -FAA4 761D -FAA5 761F -FAA6 76CA -FAA7 76DB -FAA8 76F4 -FAA9 774A -FAAA 7740 -FAAB 78CC -FAAC 7AB1 -FAAD 7BC0 -FAAE 7C7B -FAAF 7D5B -FAB0 7DF4 -FAB1 7F3E -FAB2 8005 -FAB3 8352 -FAB4 83EF -FAB5 8779 -FAB6 8941 -FAB7 8986 -FAB8 8996 -FAB9 8ABF -FABA 8AF8 -FABB 8ACB -FABC 8B01 -FABD 8AFE -FABE 8AED -FABF 8B39 -FAC0 8B8A -FAC1 8D08 -FAC2 8F38 -FAC3 9072 -FAC4 9199 -FAC5 9276 -FAC6 967C -FAC7 96E3 -FAC8 9756 -FAC9 97DB -FACA 97FF -FACB 980B -FACC 983B -FACD 9B12 -FACE 9F9C -FACF 2284A -FAD0 22844 -FAD1 233D5 -FAD2 3B9D -FAD3 4018 -FAD4 4039 -FAD5 25249 -FAD6 25CD0 -FAD7 27ED3 -FAD8 9F43 -FAD9 9F8E -FB20 05E2 -FB21 05D0 -FB22 05D3 -FB23 05D4 -FB24 05DB -FB25 05DC -FB26 05DD -FB27 05E8 -FB28 05EA -FB29 002B -FB50 0671 -FB51 0671 -FB52 067B -FB53 067B -FB54 067B -FB55 067B -FB56 067E -FB57 067E -FB58 067E -FB59 067E -FB5A 0680 -FB5B 0680 -FB5C 0680 -FB5D 0680 -FB5E 067A -FB5F 067A -FB60 067A -FB61 067A -FB62 067F -FB63 067F -FB64 067F -FB65 067F -FB66 0679 -FB67 0679 -FB68 0679 -FB69 0679 -FB6A 06A4 -FB6B 06A4 -FB6C 06A4 -FB6D 06A4 -FB6E 06A6 -FB6F 06A6 -FB70 06A6 -FB71 06A6 -FB72 0684 -FB73 0684 -FB74 0684 -FB75 0684 -FB76 0683 -FB77 0683 -FB78 0683 -FB79 0683 -FB7A 0686 -FB7B 0686 -FB7C 0686 -FB7D 0686 -FB7E 0687 -FB7F 0687 -FB80 0687 -FB81 0687 -FB82 068D -FB83 068D -FB84 068C -FB85 068C -FB86 068E -FB87 068E -FB88 0688 -FB89 0688 -FB8A 0698 -FB8B 0698 -FB8C 0691 -FB8D 0691 -FB8E 06A9 -FB8F 06A9 -FB90 06A9 -FB91 06A9 -FB92 06AF -FB93 06AF -FB94 06AF -FB95 06AF -FB96 06B3 -FB97 06B3 -FB98 06B3 -FB99 06B3 -FB9A 06B1 -FB9B 06B1 -FB9C 06B1 -FB9D 06B1 -FB9E 06BA -FB9F 06BA -FBA0 06BB -FBA1 06BB -FBA2 06BB -FBA3 06BB -FBA4 06C0 -FBA5 06C0 -FBA6 06C1 -FBA7 06C1 -FBA8 06C1 -FBA9 06C1 -FBAA 06BE -FBAB 06BE -FBAC 06BE -FBAD 06BE -FBAE 06D2 -FBAF 06D2 -FBB0 06D3 -FBB1 06D3 -FBD3 06AD -FBD4 06AD -FBD5 06AD -FBD6 06AD -FBD7 06C7 -FBD8 06C7 -FBD9 06C6 -FBDA 06C6 -FBDB 06C8 -FBDC 06C8 -FBDE 06CB -FBDF 06CB -FBE0 06C5 -FBE1 06C5 -FBE2 06C9 -FBE3 06C9 -FBE4 06D0 -FBE5 06D0 -FBE6 06D0 -FBE7 06D0 -FBE8 0649 -FBE9 0649 -FBFC 06CC -FBFD 06CC -FBFE 06CC -FBFF 06CC -FE10 002C -FE11 3001 -FE12 3002 -FE13 003A -FE14 003B -FE15 0021 -FE16 003F -FE17 3016 -FE18 3017 -FE31 2014 -FE32 2013 -FE33 005F -FE34 005F -FE35 0028 -FE36 0029 -FE37 007B -FE38 007D -FE39 3014 -FE3A 3015 -FE3B 3010 -FE3C 3011 -FE3D 300A -FE3E 300B -FE3F 3008 -FE40 3009 -FE41 300C -FE42 300D -FE43 300E -FE44 300F -FE47 005B -FE48 005D -FE4D 005F -FE4E 005F -FE4F 005F -FE50 002C -FE51 3001 -FE52 002E -FE54 003B -FE55 003A -FE56 003F -FE57 0021 -FE58 2014 -FE59 0028 -FE5A 0029 -FE5B 007B -FE5C 007D -FE5D 3014 -FE5E 3015 -FE5F 0023 -FE60 0026 -FE61 002A -FE62 002B -FE63 002D -FE64 003C -FE65 003E -FE66 003D -FE68 005C -FE69 0024 -FE6A 0025 -FE6B 0040 -FE80 0621 -FE81 0622 -FE82 0622 -FE83 0623 -FE84 0623 -FE85 0624 -FE86 0624 -FE87 0625 -FE88 0625 -FE89 0626 -FE8A 0626 -FE8B 0626 -FE8C 0626 -FE8D 0627 -FE8E 0627 -FE8F 0628 -FE90 0628 -FE91 0628 -FE92 0628 -FE93 0629 -FE94 0629 -FE95 062A -FE96 062A -FE97 062A -FE98 062A -FE99 062B -FE9A 062B -FE9B 062B -FE9C 062B -FE9D 062C -FE9E 062C -FE9F 062C -FEA0 062C -FEA1 062D -FEA2 062D -FEA3 062D -FEA4 062D -FEA5 062E -FEA6 062E -FEA7 062E -FEA8 062E -FEA9 062F -FEAA 062F -FEAB 0630 -FEAC 0630 -FEAD 0631 -FEAE 0631 -FEAF 0632 -FEB0 0632 -FEB1 0633 -FEB2 0633 -FEB3 0633 -FEB4 0633 -FEB5 0634 -FEB6 0634 -FEB7 0634 -FEB8 0634 -FEB9 0635 -FEBA 0635 -FEBB 0635 -FEBC 0635 -FEBD 0636 -FEBE 0636 -FEBF 0636 -FEC0 0636 -FEC1 0637 -FEC2 0637 -FEC3 0637 -FEC4 0637 -FEC5 0638 -FEC6 0638 -FEC7 0638 -FEC8 0638 -FEC9 0639 -FECA 0639 -FECB 0639 -FECC 0639 -FECD 063A -FECE 063A -FECF 063A -FED0 063A -FED1 0641 -FED2 0641 -FED3 0641 -FED4 0641 -FED5 0642 -FED6 0642 -FED7 0642 -FED8 0642 -FED9 0643 -FEDA 0643 -FEDB 0643 -FEDC 0643 -FEDD 0644 -FEDE 0644 -FEDF 0644 -FEE0 0644 -FEE1 0645 -FEE2 0645 -FEE3 0645 -FEE4 0645 -FEE5 0646 -FEE6 0646 -FEE7 0646 -FEE8 0646 -FEE9 0647 -FEEA 0647 -FEEB 0647 -FEEC 0647 -FEED 0648 -FEEE 0648 -FEEF 0649 -FEF0 0649 -FEF1 064A -FEF2 064A -FEF3 064A -FEF4 064A -FF01 0021 -FF02 0022 -FF03 0023 -FF04 0024 -FF05 0025 -FF06 0026 -FF07 0027 -FF08 0028 -FF09 0029 -FF0A 002A -FF0B 002B -FF0C 002C -FF0D 002D -FF0E 002E -FF0F 002F -FF10 0030 -FF11 0031 -FF12 0032 -FF13 0033 -FF14 0034 -FF15 0035 -FF16 0036 -FF17 0037 -FF18 0038 -FF19 0039 -FF1A 003A -FF1B 003B -FF1C 003C -FF1D 003D -FF1E 003E -FF1F 003F -FF20 0040 -FF21 0061 -FF22 0062 -FF23 0063 -FF24 0064 -FF25 0065 -FF26 0066 -FF27 0067 -FF28 0068 -FF29 0069 -FF2A 006A -FF2B 006B -FF2C 006C -FF2D 006D -FF2E 006E -FF2F 006F -FF30 0070 -FF31 0071 -FF32 0072 -FF33 0073 -FF34 0074 -FF35 0075 -FF36 0076 -FF37 0077 -FF38 0078 -FF39 0079 -FF3A 007A -FF3B 005B -FF3C 005C -FF3D 005D -FF3E 005E -FF3F 005F -FF40 0060 -FF41 0061 -FF42 0062 -FF43 0063 -FF44 0064 -FF45 0065 -FF46 0066 -FF47 0067 -FF48 0068 -FF49 0069 -FF4A 006A -FF4B 006B -FF4C 006C -FF4D 006D -FF4E 006E -FF4F 006F -FF50 0070 -FF51 0071 -FF52 0072 -FF53 0073 -FF54 0074 -FF55 0075 -FF56 0076 -FF57 0077 -FF58 0078 -FF59 0079 -FF5A 007A -FF5B 007B -FF5C 007C -FF5D 007D -FF5E 007E -FF5F 2985 -FF60 2986 -FF61 3002 -FF62 300C -FF63 300D -FF64 3001 -FF65 30FB -FF66 30F2 -FF67 30A1 -FF68 30A3 -FF69 30A5 -FF6A 30A7 -FF6B 30A9 -FF6C 30E3 -FF6D 30E5 -FF6E 30E7 -FF6F 30C3 -FF70 30FC -FF71 30A2 -FF72 30A4 -FF73 30A6 -FF74 30A8 -FF75 30AA -FF76 30AB -FF77 30AD -FF78 30AF -FF79 30B1 -FF7A 30B3 -FF7B 30B5 -FF7C 30B7 -FF7D 30B9 -FF7E 30BB -FF7F 30BD -FF80 30BF -FF81 30C1 -FF82 30C4 -FF83 30C6 -FF84 30C8 -FF85 30CA -FF86 30CB -FF87 30CC -FF88 30CD -FF89 30CE -FF8A 30CF -FF8B 30D2 -FF8C 30D5 -FF8D 30D8 -FF8E 30DB -FF8F 30DE -FF90 30DF -FF91 30E0 -FF92 30E1 -FF93 30E2 -FF94 30E4 -FF95 30E6 -FF96 30E8 -FF97 30E9 -FF98 30EA -FF99 30EB -FF9A 30EC -FF9B 30ED -FF9C 30EF -FF9D 30F3 -FF9E 3099 -FF9F 309A -FFA1 1100 -FFA2 1101 -FFA3 11AA -FFA4 1102 -FFA5 11AC -FFA6 11AD -FFA7 1103 -FFA8 1104 -FFA9 1105 -FFAA 11B0 -FFAB 11B1 -FFAC 11B2 -FFAD 11B3 -FFAE 11B4 -FFAF 11B5 -FFB0 111A -FFB1 1106 -FFB2 1107 -FFB3 1108 -FFB4 1121 -FFB5 1109 -FFB6 110A -FFB7 110B -FFB8 110C -FFB9 110D -FFBA 110E -FFBB 110F -FFBC 1110 -FFBD 1111 -FFBE 1112 -FFC2 1161 -FFC3 1162 -FFC4 1163 -FFC5 1164 -FFC6 1165 -FFC7 1166 -FFCA 1167 -FFCB 1168 -FFCC 1169 -FFCD 116A -FFCE 116B -FFCF 116C -FFD2 116D -FFD3 116E -FFD4 116F -FFD5 1170 -FFD6 1171 -FFD7 1172 -FFDA 1173 -FFDB 1174 -FFDC 1175 -FFE0 00A2 -FFE1 00A3 -FFE2 00AC -FFE4 00A6 -FFE5 00A5 -FFE6 20A9 -FFE8 2502 -FFE9 2190 -FFEA 2191 -FFEB 2192 -FFEC 2193 -FFED 25A0 -FFEE 25CB -10400 10428 -10401 10429 -10402 1042A -10403 1042B -10404 1042C -10405 1042D -10406 1042E -10407 1042F -10408 10430 -10409 10431 -1040A 10432 -1040B 10433 -1040C 10434 -1040D 10435 -1040E 10436 -1040F 10437 -10410 10438 -10411 10439 -10412 1043A -10413 1043B -10414 1043C -10415 1043D -10416 1043E -10417 1043F -10418 10440 -10419 10441 -1041A 10442 -1041B 10443 -1041C 10444 -1041D 10445 -1041E 10446 -1041F 10447 -10420 10448 -10421 10449 -10422 1044A -10423 1044B -10424 1044C -10425 1044D -10426 1044E -10427 1044F -10C80 10CC0 -10C81 10CC1 -10C82 10CC2 -10C83 10CC3 -10C84 10CC4 -10C85 10CC5 -10C86 10CC6 -10C87 10CC7 -10C88 10CC8 -10C89 10CC9 -10C8A 10CCA -10C8B 10CCB -10C8C 10CCC -10C8D 10CCD -10C8E 10CCE -10C8F 10CCF -10C90 10CD0 -10C91 10CD1 -10C92 10CD2 -10C93 10CD3 -10C94 10CD4 -10C95 10CD5 -10C96 10CD6 -10C97 10CD7 -10C98 10CD8 -10C99 10CD9 -10C9A 10CDA -10C9B 10CDB -10C9C 10CDC -10C9D 10CDD -10C9E 10CDE -10C9F 10CDF -10CA0 10CE0 -10CA1 10CE1 -10CA2 10CE2 -10CA3 10CE3 -10CA4 10CE4 -10CA5 10CE5 -10CA6 10CE6 -10CA7 10CE7 -10CA8 10CE8 -10CA9 10CE9 -10CAA 10CEA -10CAB 10CEB -10CAC 10CEC -10CAD 10CED -10CAE 10CEE -10CAF 10CEF -10CB0 10CF0 -10CB1 10CF1 -10CB2 10CF2 -118A0 118C0 -118A1 118C1 -118A2 118C2 -118A3 118C3 -118A4 118C4 -118A5 118C5 -118A6 118C6 -118A7 118C7 -118A8 118C8 -118A9 118C9 -118AA 118CA -118AB 118CB -118AC 118CC -118AD 118CD -118AE 118CE -118AF 118CF -118B0 118D0 -118B1 118D1 -118B2 118D2 -118B3 118D3 -118B4 118D4 -118B5 118D5 -118B6 118D6 -118B7 118D7 -118B8 118D8 -118B9 118D9 -118BA 118DA -118BB 118DB -118BC 118DC -118BD 118DD -118BE 118DE -118BF 118DF -1D400 0061 -1D401 0062 -1D402 0063 -1D403 0064 -1D404 0065 -1D405 0066 -1D406 0067 -1D407 0068 -1D408 0069 -1D409 006A -1D40A 006B -1D40B 006C -1D40C 006D -1D40D 006E -1D40E 006F -1D40F 0070 -1D410 0071 -1D411 0072 -1D412 0073 -1D413 0074 -1D414 0075 -1D415 0076 -1D416 0077 -1D417 0078 -1D418 0079 -1D419 007A -1D41A 0061 -1D41B 0062 -1D41C 0063 -1D41D 0064 -1D41E 0065 -1D41F 0066 -1D420 0067 -1D421 0068 -1D422 0069 -1D423 006A -1D424 006B -1D425 006C -1D426 006D -1D427 006E -1D428 006F -1D429 0070 -1D42A 0071 -1D42B 0072 -1D42C 0073 -1D42D 0074 -1D42E 0075 -1D42F 0076 -1D430 0077 -1D431 0078 -1D432 0079 -1D433 007A -1D434 0061 -1D435 0062 -1D436 0063 -1D437 0064 -1D438 0065 -1D439 0066 -1D43A 0067 -1D43B 0068 -1D43C 0069 -1D43D 006A -1D43E 006B -1D43F 006C -1D440 006D -1D441 006E -1D442 006F -1D443 0070 -1D444 0071 -1D445 0072 -1D446 0073 -1D447 0074 -1D448 0075 -1D449 0076 -1D44A 0077 -1D44B 0078 -1D44C 0079 -1D44D 007A -1D44E 0061 -1D44F 0062 -1D450 0063 -1D451 0064 -1D452 0065 -1D453 0066 -1D454 0067 -1D456 0069 -1D457 006A -1D458 006B -1D459 006C -1D45A 006D -1D45B 006E -1D45C 006F -1D45D 0070 -1D45E 0071 -1D45F 0072 -1D460 0073 -1D461 0074 -1D462 0075 -1D463 0076 -1D464 0077 -1D465 0078 -1D466 0079 -1D467 007A -1D468 0061 -1D469 0062 -1D46A 0063 -1D46B 0064 -1D46C 0065 -1D46D 0066 -1D46E 0067 -1D46F 0068 -1D470 0069 -1D471 006A -1D472 006B -1D473 006C -1D474 006D -1D475 006E -1D476 006F -1D477 0070 -1D478 0071 -1D479 0072 -1D47A 0073 -1D47B 0074 -1D47C 0075 -1D47D 0076 -1D47E 0077 -1D47F 0078 -1D480 0079 -1D481 007A -1D482 0061 -1D483 0062 -1D484 0063 -1D485 0064 -1D486 0065 -1D487 0066 -1D488 0067 -1D489 0068 -1D48A 0069 -1D48B 006A -1D48C 006B -1D48D 006C -1D48E 006D -1D48F 006E -1D490 006F -1D491 0070 -1D492 0071 -1D493 0072 -1D494 0073 -1D495 0074 -1D496 0075 -1D497 0076 -1D498 0077 -1D499 0078 -1D49A 0079 -1D49B 007A -1D49C 0061 -1D49E 0063 -1D49F 0064 -1D4A2 0067 -1D4A5 006A -1D4A6 006B -1D4A9 006E -1D4AA 006F -1D4AB 0070 -1D4AC 0071 -1D4AE 0073 -1D4AF 0074 -1D4B0 0075 -1D4B1 0076 -1D4B2 0077 -1D4B3 0078 -1D4B4 0079 -1D4B5 007A -1D4B6 0061 -1D4B7 0062 -1D4B8 0063 -1D4B9 0064 -1D4BB 0066 -1D4BD 0068 -1D4BE 0069 -1D4BF 006A -1D4C0 006B -1D4C1 006C -1D4C2 006D -1D4C3 006E -1D4C5 0070 -1D4C6 0071 -1D4C7 0072 -1D4C8 0073 -1D4C9 0074 -1D4CA 0075 -1D4CB 0076 -1D4CC 0077 -1D4CD 0078 -1D4CE 0079 -1D4CF 007A -1D4D0 0061 -1D4D1 0062 -1D4D2 0063 -1D4D3 0064 -1D4D4 0065 -1D4D5 0066 -1D4D6 0067 -1D4D7 0068 -1D4D8 0069 -1D4D9 006A -1D4DA 006B -1D4DB 006C -1D4DC 006D -1D4DD 006E -1D4DE 006F -1D4DF 0070 -1D4E0 0071 -1D4E1 0072 -1D4E2 0073 -1D4E3 0074 -1D4E4 0075 -1D4E5 0076 -1D4E6 0077 -1D4E7 0078 -1D4E8 0079 -1D4E9 007A -1D4EA 0061 -1D4EB 0062 -1D4EC 0063 -1D4ED 0064 -1D4EE 0065 -1D4EF 0066 -1D4F0 0067 -1D4F1 0068 -1D4F2 0069 -1D4F3 006A -1D4F4 006B -1D4F5 006C -1D4F6 006D -1D4F7 006E -1D4F8 006F -1D4F9 0070 -1D4FA 0071 -1D4FB 0072 -1D4FC 0073 -1D4FD 0074 -1D4FE 0075 -1D4FF 0076 -1D500 0077 -1D501 0078 -1D502 0079 -1D503 007A -1D504 0061 -1D505 0062 -1D507 0064 -1D508 0065 -1D509 0066 -1D50A 0067 -1D50D 006A -1D50E 006B -1D50F 006C -1D510 006D -1D511 006E -1D512 006F -1D513 0070 -1D514 0071 -1D516 0073 -1D517 0074 -1D518 0075 -1D519 0076 -1D51A 0077 -1D51B 0078 -1D51C 0079 -1D51E 0061 -1D51F 0062 -1D520 0063 -1D521 0064 -1D522 0065 -1D523 0066 -1D524 0067 -1D525 0068 -1D526 0069 -1D527 006A -1D528 006B -1D529 006C -1D52A 006D -1D52B 006E -1D52C 006F -1D52D 0070 -1D52E 0071 -1D52F 0072 -1D530 0073 -1D531 0074 -1D532 0075 -1D533 0076 -1D534 0077 -1D535 0078 -1D536 0079 -1D537 007A -1D538 0061 -1D539 0062 -1D53B 0064 -1D53C 0065 -1D53D 0066 -1D53E 0067 -1D540 0069 -1D541 006A -1D542 006B -1D543 006C -1D544 006D -1D546 006F -1D54A 0073 -1D54B 0074 -1D54C 0075 -1D54D 0076 -1D54E 0077 -1D54F 0078 -1D550 0079 -1D552 0061 -1D553 0062 -1D554 0063 -1D555 0064 -1D556 0065 -1D557 0066 -1D558 0067 -1D559 0068 -1D55A 0069 -1D55B 006A -1D55C 006B -1D55D 006C -1D55E 006D -1D55F 006E -1D560 006F -1D561 0070 -1D562 0071 -1D563 0072 -1D564 0073 -1D565 0074 -1D566 0075 -1D567 0076 -1D568 0077 -1D569 0078 -1D56A 0079 -1D56B 007A -1D56C 0061 -1D56D 0062 -1D56E 0063 -1D56F 0064 -1D570 0065 -1D571 0066 -1D572 0067 -1D573 0068 -1D574 0069 -1D575 006A -1D576 006B -1D577 006C -1D578 006D -1D579 006E -1D57A 006F -1D57B 0070 -1D57C 0071 -1D57D 0072 -1D57E 0073 -1D57F 0074 -1D580 0075 -1D581 0076 -1D582 0077 -1D583 0078 -1D584 0079 -1D585 007A -1D586 0061 -1D587 0062 -1D588 0063 -1D589 0064 -1D58A 0065 -1D58B 0066 -1D58C 0067 -1D58D 0068 -1D58E 0069 -1D58F 006A -1D590 006B -1D591 006C -1D592 006D -1D593 006E -1D594 006F -1D595 0070 -1D596 0071 -1D597 0072 -1D598 0073 -1D599 0074 -1D59A 0075 -1D59B 0076 -1D59C 0077 -1D59D 0078 -1D59E 0079 -1D59F 007A -1D5A0 0061 -1D5A1 0062 -1D5A2 0063 -1D5A3 0064 -1D5A4 0065 -1D5A5 0066 -1D5A6 0067 -1D5A7 0068 -1D5A8 0069 -1D5A9 006A -1D5AA 006B -1D5AB 006C -1D5AC 006D -1D5AD 006E -1D5AE 006F -1D5AF 0070 -1D5B0 0071 -1D5B1 0072 -1D5B2 0073 -1D5B3 0074 -1D5B4 0075 -1D5B5 0076 -1D5B6 0077 -1D5B7 0078 -1D5B8 0079 -1D5B9 007A -1D5BA 0061 -1D5BB 0062 -1D5BC 0063 -1D5BD 0064 -1D5BE 0065 -1D5BF 0066 -1D5C0 0067 -1D5C1 0068 -1D5C2 0069 -1D5C3 006A -1D5C4 006B -1D5C5 006C -1D5C6 006D -1D5C7 006E -1D5C8 006F -1D5C9 0070 -1D5CA 0071 -1D5CB 0072 -1D5CC 0073 -1D5CD 0074 -1D5CE 0075 -1D5CF 0076 -1D5D0 0077 -1D5D1 0078 -1D5D2 0079 -1D5D3 007A -1D5D4 0061 -1D5D5 0062 -1D5D6 0063 -1D5D7 0064 -1D5D8 0065 -1D5D9 0066 -1D5DA 0067 -1D5DB 0068 -1D5DC 0069 -1D5DD 006A -1D5DE 006B -1D5DF 006C -1D5E0 006D -1D5E1 006E -1D5E2 006F -1D5E3 0070 -1D5E4 0071 -1D5E5 0072 -1D5E6 0073 -1D5E7 0074 -1D5E8 0075 -1D5E9 0076 -1D5EA 0077 -1D5EB 0078 -1D5EC 0079 -1D5ED 007A -1D5EE 0061 -1D5EF 0062 -1D5F0 0063 -1D5F1 0064 -1D5F2 0065 -1D5F3 0066 -1D5F4 0067 -1D5F5 0068 -1D5F6 0069 -1D5F7 006A -1D5F8 006B -1D5F9 006C -1D5FA 006D -1D5FB 006E -1D5FC 006F -1D5FD 0070 -1D5FE 0071 -1D5FF 0072 -1D600 0073 -1D601 0074 -1D602 0075 -1D603 0076 -1D604 0077 -1D605 0078 -1D606 0079 -1D607 007A -1D608 0061 -1D609 0062 -1D60A 0063 -1D60B 0064 -1D60C 0065 -1D60D 0066 -1D60E 0067 -1D60F 0068 -1D610 0069 -1D611 006A -1D612 006B -1D613 006C -1D614 006D -1D615 006E -1D616 006F -1D617 0070 -1D618 0071 -1D619 0072 -1D61A 0073 -1D61B 0074 -1D61C 0075 -1D61D 0076 -1D61E 0077 -1D61F 0078 -1D620 0079 -1D621 007A -1D622 0061 -1D623 0062 -1D624 0063 -1D625 0064 -1D626 0065 -1D627 0066 -1D628 0067 -1D629 0068 -1D62A 0069 -1D62B 006A -1D62C 006B -1D62D 006C -1D62E 006D -1D62F 006E -1D630 006F -1D631 0070 -1D632 0071 -1D633 0072 -1D634 0073 -1D635 0074 -1D636 0075 -1D637 0076 -1D638 0077 -1D639 0078 -1D63A 0079 -1D63B 007A -1D63C 0061 -1D63D 0062 -1D63E 0063 -1D63F 0064 -1D640 0065 -1D641 0066 -1D642 0067 -1D643 0068 -1D644 0069 -1D645 006A -1D646 006B -1D647 006C -1D648 006D -1D649 006E -1D64A 006F -1D64B 0070 -1D64C 0071 -1D64D 0072 -1D64E 0073 -1D64F 0074 -1D650 0075 -1D651 0076 -1D652 0077 -1D653 0078 -1D654 0079 -1D655 007A -1D656 0061 -1D657 0062 -1D658 0063 -1D659 0064 -1D65A 0065 -1D65B 0066 -1D65C 0067 -1D65D 0068 -1D65E 0069 -1D65F 006A -1D660 006B -1D661 006C -1D662 006D -1D663 006E -1D664 006F -1D665 0070 -1D666 0071 -1D667 0072 -1D668 0073 -1D669 0074 -1D66A 0075 -1D66B 0076 -1D66C 0077 -1D66D 0078 -1D66E 0079 -1D66F 007A -1D670 0061 -1D671 0062 -1D672 0063 -1D673 0064 -1D674 0065 -1D675 0066 -1D676 0067 -1D677 0068 -1D678 0069 -1D679 006A -1D67A 006B -1D67B 006C -1D67C 006D -1D67D 006E -1D67E 006F -1D67F 0070 -1D680 0071 -1D681 0072 -1D682 0073 -1D683 0074 -1D684 0075 -1D685 0076 -1D686 0077 -1D687 0078 -1D688 0079 -1D689 007A -1D68A 0061 -1D68B 0062 -1D68C 0063 -1D68D 0064 -1D68E 0065 -1D68F 0066 -1D690 0067 -1D691 0068 -1D692 0069 -1D693 006A -1D694 006B -1D695 006C -1D696 006D -1D697 006E -1D698 006F -1D699 0070 -1D69A 0071 -1D69B 0072 -1D69C 0073 -1D69D 0074 -1D69E 0075 -1D69F 0076 -1D6A0 0077 -1D6A1 0078 -1D6A2 0079 -1D6A3 007A -1D6A4 0131 -1D6A5 0237 -1D6A8 03B1 -1D6A9 03B2 -1D6AA 03B3 -1D6AB 03B4 -1D6AC 03B5 -1D6AD 03B6 -1D6AE 03B7 -1D6AF 03B8 -1D6B0 03B9 -1D6B1 03BA -1D6B2 03BB -1D6B3 03BC -1D6B4 03BD -1D6B5 03BE -1D6B6 03BF -1D6B7 03C0 -1D6B8 03C1 -1D6B9 03B8 -1D6BA 03C3 -1D6BB 03C4 -1D6BC 03C5 -1D6BD 03C6 -1D6BE 03C7 -1D6BF 03C8 -1D6C0 03C9 -1D6C1 2207 -1D6C2 03B1 -1D6C3 03B2 -1D6C4 03B3 -1D6C5 03B4 -1D6C6 03B5 -1D6C7 03B6 -1D6C8 03B7 -1D6C9 03B8 -1D6CA 03B9 -1D6CB 03BA -1D6CC 03BB -1D6CD 03BC -1D6CE 03BD -1D6CF 03BE -1D6D0 03BF -1D6D1 03C0 -1D6D2 03C1 -1D6D3 03C3 -1D6D4 03C3 -1D6D5 03C4 -1D6D6 03C5 -1D6D7 03C6 -1D6D8 03C7 -1D6D9 03C8 -1D6DA 03C9 -1D6DB 2202 -1D6DC 03B5 -1D6DD 03B8 -1D6DE 03BA -1D6DF 03C6 -1D6E0 03C1 -1D6E1 03C0 -1D6E2 03B1 -1D6E3 03B2 -1D6E4 03B3 -1D6E5 03B4 -1D6E6 03B5 -1D6E7 03B6 -1D6E8 03B7 -1D6E9 03B8 -1D6EA 03B9 -1D6EB 03BA -1D6EC 03BB -1D6ED 03BC -1D6EE 03BD -1D6EF 03BE -1D6F0 03BF -1D6F1 03C0 -1D6F2 03C1 -1D6F3 03B8 -1D6F4 03C3 -1D6F5 03C4 -1D6F6 03C5 -1D6F7 03C6 -1D6F8 03C7 -1D6F9 03C8 -1D6FA 03C9 -1D6FB 2207 -1D6FC 03B1 -1D6FD 03B2 -1D6FE 03B3 -1D6FF 03B4 -1D700 03B5 -1D701 03B6 -1D702 03B7 -1D703 03B8 -1D704 03B9 -1D705 03BA -1D706 03BB -1D707 03BC -1D708 03BD -1D709 03BE -1D70A 03BF -1D70B 03C0 -1D70C 03C1 -1D70D 03C3 -1D70E 03C3 -1D70F 03C4 -1D710 03C5 -1D711 03C6 -1D712 03C7 -1D713 03C8 -1D714 03C9 -1D715 2202 -1D716 03B5 -1D717 03B8 -1D718 03BA -1D719 03C6 -1D71A 03C1 -1D71B 03C0 -1D71C 03B1 -1D71D 03B2 -1D71E 03B3 -1D71F 03B4 -1D720 03B5 -1D721 03B6 -1D722 03B7 -1D723 03B8 -1D724 03B9 -1D725 03BA -1D726 03BB -1D727 03BC -1D728 03BD -1D729 03BE -1D72A 03BF -1D72B 03C0 -1D72C 03C1 -1D72D 03B8 -1D72E 03C3 -1D72F 03C4 -1D730 03C5 -1D731 03C6 -1D732 03C7 -1D733 03C8 -1D734 03C9 -1D735 2207 -1D736 03B1 -1D737 03B2 -1D738 03B3 -1D739 03B4 -1D73A 03B5 -1D73B 03B6 -1D73C 03B7 -1D73D 03B8 -1D73E 03B9 -1D73F 03BA -1D740 03BB -1D741 03BC -1D742 03BD -1D743 03BE -1D744 03BF -1D745 03C0 -1D746 03C1 -1D747 03C3 -1D748 03C3 -1D749 03C4 -1D74A 03C5 -1D74B 03C6 -1D74C 03C7 -1D74D 03C8 -1D74E 03C9 -1D74F 2202 -1D750 03B5 -1D751 03B8 -1D752 03BA -1D753 03C6 -1D754 03C1 -1D755 03C0 -1D756 03B1 -1D757 03B2 -1D758 03B3 -1D759 03B4 -1D75A 03B5 -1D75B 03B6 -1D75C 03B7 -1D75D 03B8 -1D75E 03B9 -1D75F 03BA -1D760 03BB -1D761 03BC -1D762 03BD -1D763 03BE -1D764 03BF -1D765 03C0 -1D766 03C1 -1D767 03B8 -1D768 03C3 -1D769 03C4 -1D76A 03C5 -1D76B 03C6 -1D76C 03C7 -1D76D 03C8 -1D76E 03C9 -1D76F 2207 -1D770 03B1 -1D771 03B2 -1D772 03B3 -1D773 03B4 -1D774 03B5 -1D775 03B6 -1D776 03B7 -1D777 03B8 -1D778 03B9 -1D779 03BA -1D77A 03BB -1D77B 03BC -1D77C 03BD -1D77D 03BE -1D77E 03BF -1D77F 03C0 -1D780 03C1 -1D781 03C3 -1D782 03C3 -1D783 03C4 -1D784 03C5 -1D785 03C6 -1D786 03C7 -1D787 03C8 -1D788 03C9 -1D789 2202 -1D78A 03B5 -1D78B 03B8 -1D78C 03BA -1D78D 03C6 -1D78E 03C1 -1D78F 03C0 -1D790 03B1 -1D791 03B2 -1D792 03B3 -1D793 03B4 -1D794 03B5 -1D795 03B6 -1D796 03B7 -1D797 03B8 -1D798 03B9 -1D799 03BA -1D79A 03BB -1D79B 03BC -1D79C 03BD -1D79D 03BE -1D79E 03BF -1D79F 03C0 -1D7A0 03C1 -1D7A1 03B8 -1D7A2 03C3 -1D7A3 03C4 -1D7A4 03C5 -1D7A5 03C6 -1D7A6 03C7 -1D7A7 03C8 -1D7A8 03C9 -1D7A9 2207 -1D7AA 03B1 -1D7AB 03B2 -1D7AC 03B3 -1D7AD 03B4 -1D7AE 03B5 -1D7AF 03B6 -1D7B0 03B7 -1D7B1 03B8 -1D7B2 03B9 -1D7B3 03BA -1D7B4 03BB -1D7B5 03BC -1D7B6 03BD -1D7B7 03BE -1D7B8 03BF -1D7B9 03C0 -1D7BA 03C1 -1D7BB 03C3 -1D7BC 03C3 -1D7BD 03C4 -1D7BE 03C5 -1D7BF 03C6 -1D7C0 03C7 -1D7C1 03C8 -1D7C2 03C9 -1D7C3 2202 -1D7C4 03B5 -1D7C5 03B8 -1D7C6 03BA -1D7C7 03C6 -1D7C8 03C1 -1D7C9 03C0 -1D7CA 03DD -1D7CB 03DD -1D7CE 0030 -1D7CF 0031 -1D7D0 0032 -1D7D1 0033 -1D7D2 0034 -1D7D3 0035 -1D7D4 0036 -1D7D5 0037 -1D7D6 0038 -1D7D7 0039 -1D7D8 0030 -1D7D9 0031 -1D7DA 0032 -1D7DB 0033 -1D7DC 0034 -1D7DD 0035 -1D7DE 0036 -1D7DF 0037 -1D7E0 0038 -1D7E1 0039 -1D7E2 0030 -1D7E3 0031 -1D7E4 0032 -1D7E5 0033 -1D7E6 0034 -1D7E7 0035 -1D7E8 0036 -1D7E9 0037 -1D7EA 0038 -1D7EB 0039 -1D7EC 0030 -1D7ED 0031 -1D7EE 0032 -1D7EF 0033 -1D7F0 0034 -1D7F1 0035 -1D7F2 0036 -1D7F3 0037 -1D7F4 0038 -1D7F5 0039 -1D7F6 0030 -1D7F7 0031 -1D7F8 0032 -1D7F9 0033 -1D7FA 0034 -1D7FB 0035 -1D7FC 0036 -1D7FD 0037 -1D7FE 0038 -1D7FF 0039 -1EE00 0627 -1EE01 0628 -1EE02 062C -1EE03 062F -1EE05 0648 -1EE06 0632 -1EE07 062D -1EE08 0637 -1EE09 064A -1EE0A 0643 -1EE0B 0644 -1EE0C 0645 -1EE0D 0646 -1EE0E 0633 -1EE0F 0639 -1EE10 0641 -1EE11 0635 -1EE12 0642 -1EE13 0631 -1EE14 0634 -1EE15 062A -1EE16 062B -1EE17 062E -1EE18 0630 -1EE19 0636 -1EE1A 0638 -1EE1B 063A -1EE1C 066E -1EE1D 06BA -1EE1E 06A1 -1EE1F 066F -1EE21 0628 -1EE22 062C -1EE24 0647 -1EE27 062D -1EE29 064A -1EE2A 0643 -1EE2B 0644 -1EE2C 0645 -1EE2D 0646 -1EE2E 0633 -1EE2F 0639 -1EE30 0641 -1EE31 0635 -1EE32 0642 -1EE34 0634 -1EE35 062A -1EE36 062B -1EE37 062E -1EE39 0636 -1EE3B 063A -1EE42 062C -1EE47 062D -1EE49 064A -1EE4B 0644 -1EE4D 0646 -1EE4E 0633 -1EE4F 0639 -1EE51 0635 -1EE52 0642 -1EE54 0634 -1EE57 062E -1EE59 0636 -1EE5B 063A -1EE5D 06BA -1EE5F 066F -1EE61 0628 -1EE62 062C -1EE64 0647 -1EE67 062D -1EE68 0637 -1EE69 064A -1EE6A 0643 -1EE6C 0645 -1EE6D 0646 -1EE6E 0633 -1EE6F 0639 -1EE70 0641 -1EE71 0635 -1EE72 0642 -1EE74 0634 -1EE75 062A -1EE76 062B -1EE77 062E -1EE79 0636 -1EE7A 0638 -1EE7B 063A -1EE7C 066E -1EE7E 06A1 -1EE80 0627 -1EE81 0628 -1EE82 062C -1EE83 062F -1EE84 0647 -1EE85 0648 -1EE86 0632 -1EE87 062D -1EE88 0637 -1EE89 064A -1EE8B 0644 -1EE8C 0645 -1EE8D 0646 -1EE8E 0633 -1EE8F 0639 -1EE90 0641 -1EE91 0635 -1EE92 0642 -1EE93 0631 -1EE94 0634 -1EE95 062A -1EE96 062B -1EE97 062E -1EE98 0630 -1EE99 0636 -1EE9A 0638 -1EE9B 063A -1EEA1 0628 -1EEA2 062C -1EEA3 062F -1EEA5 0648 -1EEA6 0632 -1EEA7 062D -1EEA8 0637 -1EEA9 064A -1EEAB 0644 -1EEAC 0645 -1EEAD 0646 -1EEAE 0633 -1EEAF 0639 -1EEB0 0641 -1EEB1 0635 -1EEB2 0642 -1EEB3 0631 -1EEB4 0634 -1EEB5 062A -1EEB6 062B -1EEB7 062E -1EEB8 0630 -1EEB9 0636 -1EEBA 0638 -1EEBB 063A -1F12B 0063 -1F12C 0072 -1F130 0061 -1F131 0062 -1F132 0063 -1F133 0064 -1F134 0065 -1F135 0066 -1F136 0067 -1F137 0068 -1F138 0069 -1F139 006A -1F13A 006B -1F13B 006C -1F13C 006D -1F13D 006E -1F13E 006F -1F13F 0070 -1F140 0071 -1F141 0072 -1F142 0073 -1F143 0074 -1F144 0075 -1F145 0076 -1F146 0077 -1F147 0078 -1F148 0079 -1F149 007A -1F202 30B5 -1F210 624B -1F211 5B57 -1F212 53CC -1F213 30C7 -1F214 4E8C -1F215 591A -1F216 89E3 -1F217 5929 -1F218 4EA4 -1F219 6620 -1F21A 7121 -1F21B 6599 -1F21C 524D -1F21D 5F8C -1F21E 518D -1F21F 65B0 -1F220 521D -1F221 7D42 -1F222 751F -1F223 8CA9 -1F224 58F0 -1F225 5439 -1F226 6F14 -1F227 6295 -1F228 6355 -1F229 4E00 -1F22A 4E09 -1F22B 904A -1F22C 5DE6 -1F22D 4E2D -1F22E 53F3 -1F22F 6307 -1F230 8D70 -1F231 6253 -1F232 7981 -1F233 7A7A -1F234 5408 -1F235 6E80 -1F236 6709 -1F237 6708 -1F238 7533 -1F239 5272 -1F23A 55B6 -1F250 5F97 -1F251 53EF -2F800 4E3D -2F801 4E38 -2F802 4E41 -2F803 20122 -2F804 4F60 -2F805 4FAE -2F806 4FBB -2F807 5002 -2F808 507A -2F809 5099 -2F80A 50E7 -2F80B 50CF -2F80C 349E -2F80D 2063A -2F80E 514D -2F80F 5154 -2F810 5164 -2F811 5177 -2F812 2051C -2F813 34B9 -2F814 5167 -2F815 518D -2F816 2054B -2F817 5197 -2F818 51A4 -2F819 4ECC -2F81A 51AC -2F81B 51B5 -2F81C 291DF -2F81D 51F5 -2F81E 5203 -2F81F 34DF -2F820 523B -2F821 5246 -2F822 5272 -2F823 5277 -2F824 3515 -2F825 52C7 -2F826 52C9 -2F827 52E4 -2F828 52FA -2F829 5305 -2F82A 5306 -2F82B 5317 -2F82C 5349 -2F82D 5351 -2F82E 535A -2F82F 5373 -2F830 537D -2F831 537F -2F832 537F -2F833 537F -2F834 20A2C -2F835 7070 -2F836 53CA -2F837 53DF -2F838 20B63 -2F839 53EB -2F83A 53F1 -2F83B 5406 -2F83C 549E -2F83D 5438 -2F83E 5448 -2F83F 5468 -2F840 54A2 -2F841 54F6 -2F842 5510 -2F843 5553 -2F844 5563 -2F845 5584 -2F846 5584 -2F847 5599 -2F848 55AB -2F849 55B3 -2F84A 55C2 -2F84B 5716 -2F84C 5606 -2F84D 5717 -2F84E 5651 -2F84F 5674 -2F850 5207 -2F851 58EE -2F852 57CE -2F853 57F4 -2F854 580D -2F855 578B -2F856 5832 -2F857 5831 -2F858 58AC -2F859 214E4 -2F85A 58F2 -2F85B 58F7 -2F85C 5906 -2F85D 591A -2F85E 5922 -2F85F 5962 -2F860 216A8 -2F861 216EA -2F862 59EC -2F863 5A1B -2F864 5A27 -2F865 59D8 -2F866 5A66 -2F867 36EE -2F868 36FC -2F869 5B08 -2F86A 5B3E -2F86B 5B3E -2F86C 219C8 -2F86D 5BC3 -2F86E 5BD8 -2F86F 5BE7 -2F870 5BF3 -2F871 21B18 -2F872 5BFF -2F873 5C06 -2F874 5F53 -2F875 5C22 -2F876 3781 -2F877 5C60 -2F878 5C6E -2F879 5CC0 -2F87A 5C8D -2F87B 21DE4 -2F87C 5D43 -2F87D 21DE6 -2F87E 5D6E -2F87F 5D6B -2F880 5D7C -2F881 5DE1 -2F882 5DE2 -2F883 382F -2F884 5DFD -2F885 5E28 -2F886 5E3D -2F887 5E69 -2F888 3862 -2F889 22183 -2F88A 387C -2F88B 5EB0 -2F88C 5EB3 -2F88D 5EB6 -2F88E 5ECA -2F88F 2A392 -2F890 5EFE -2F891 22331 -2F892 22331 -2F893 8201 -2F894 5F22 -2F895 5F22 -2F896 38C7 -2F897 232B8 -2F898 261DA -2F899 5F62 -2F89A 5F6B -2F89B 38E3 -2F89C 5F9A -2F89D 5FCD -2F89E 5FD7 -2F89F 5FF9 -2F8A0 6081 -2F8A1 393A -2F8A2 391C -2F8A3 6094 -2F8A4 226D4 -2F8A5 60C7 -2F8A6 6148 -2F8A7 614C -2F8A8 614E -2F8A9 614C -2F8AA 617A -2F8AB 618E -2F8AC 61B2 -2F8AD 61A4 -2F8AE 61AF -2F8AF 61DE -2F8B0 61F2 -2F8B1 61F6 -2F8B2 6210 -2F8B3 621B -2F8B4 625D -2F8B5 62B1 -2F8B6 62D4 -2F8B7 6350 -2F8B8 22B0C -2F8B9 633D -2F8BA 62FC -2F8BB 6368 -2F8BC 6383 -2F8BD 63E4 -2F8BE 22BF1 -2F8BF 6422 -2F8C0 63C5 -2F8C1 63A9 -2F8C2 3A2E -2F8C3 6469 -2F8C4 647E -2F8C5 649D -2F8C6 6477 -2F8C7 3A6C -2F8C8 654F -2F8C9 656C -2F8CA 2300A -2F8CB 65E3 -2F8CC 66F8 -2F8CD 6649 -2F8CE 3B19 -2F8CF 6691 -2F8D0 3B08 -2F8D1 3AE4 -2F8D2 5192 -2F8D3 5195 -2F8D4 6700 -2F8D5 669C -2F8D6 80AD -2F8D7 43D9 -2F8D8 6717 -2F8D9 671B -2F8DA 6721 -2F8DB 675E -2F8DC 6753 -2F8DD 233C3 -2F8DE 3B49 -2F8DF 67FA -2F8E0 6785 -2F8E1 6852 -2F8E2 6885 -2F8E3 2346D -2F8E4 688E -2F8E5 681F -2F8E6 6914 -2F8E7 3B9D -2F8E8 6942 -2F8E9 69A3 -2F8EA 69EA -2F8EB 6AA8 -2F8EC 236A3 -2F8ED 6ADB -2F8EE 3C18 -2F8EF 6B21 -2F8F0 238A7 -2F8F1 6B54 -2F8F2 3C4E -2F8F3 6B72 -2F8F4 6B9F -2F8F5 6BBA -2F8F6 6BBB -2F8F7 23A8D -2F8F8 21D0B -2F8F9 23AFA -2F8FA 6C4E -2F8FB 23CBC -2F8FC 6CBF -2F8FD 6CCD -2F8FE 6C67 -2F8FF 6D16 -2F900 6D3E -2F901 6D77 -2F902 6D41 -2F903 6D69 -2F904 6D78 -2F905 6D85 -2F906 23D1E -2F907 6D34 -2F908 6E2F -2F909 6E6E -2F90A 3D33 -2F90B 6ECB -2F90C 6EC7 -2F90D 23ED1 -2F90E 6DF9 -2F90F 6F6E -2F910 23F5E -2F911 23F8E -2F912 6FC6 -2F913 7039 -2F914 701E -2F915 701B -2F916 3D96 -2F917 704A -2F918 707D -2F919 7077 -2F91A 70AD -2F91B 20525 -2F91C 7145 -2F91D 24263 -2F91E 719C -2F91F 243AB -2F920 7228 -2F921 7235 -2F922 7250 -2F923 24608 -2F924 7280 -2F925 7295 -2F926 24735 -2F927 24814 -2F928 737A -2F929 738B -2F92A 3EAC -2F92B 73A5 -2F92C 3EB8 -2F92D 3EB8 -2F92E 7447 -2F92F 745C -2F930 7471 -2F931 7485 -2F932 74CA -2F933 3F1B -2F934 7524 -2F935 24C36 -2F936 753E -2F937 24C92 -2F938 7570 -2F939 2219F -2F93A 7610 -2F93B 24FA1 -2F93C 24FB8 -2F93D 25044 -2F93E 3FFC -2F93F 4008 -2F940 76F4 -2F941 250F3 -2F942 250F2 -2F943 25119 -2F944 25133 -2F945 771E -2F946 771F -2F947 771F -2F948 774A -2F949 4039 -2F94A 778B -2F94B 4046 -2F94C 4096 -2F94D 2541D -2F94E 784E -2F94F 788C -2F950 78CC -2F951 40E3 -2F952 25626 -2F953 7956 -2F954 2569A -2F955 256C5 -2F956 798F -2F957 79EB -2F958 412F -2F959 7A40 -2F95A 7A4A -2F95B 7A4F -2F95C 2597C -2F95D 25AA7 -2F95E 25AA7 -2F95F 7AEE -2F960 4202 -2F961 25BAB -2F962 7BC6 -2F963 7BC9 -2F964 4227 -2F965 25C80 -2F966 7CD2 -2F967 42A0 -2F968 7CE8 -2F969 7CE3 -2F96A 7D00 -2F96B 25F86 -2F96C 7D63 -2F96D 4301 -2F96E 7DC7 -2F96F 7E02 -2F970 7E45 -2F971 4334 -2F972 26228 -2F973 26247 -2F974 4359 -2F975 262D9 -2F976 7F7A -2F977 2633E -2F978 7F95 -2F979 7FFA -2F97A 8005 -2F97B 264DA -2F97C 26523 -2F97D 8060 -2F97E 265A8 -2F97F 8070 -2F980 2335F -2F981 43D5 -2F982 80B2 -2F983 8103 -2F984 440B -2F985 813E -2F986 5AB5 -2F987 267A7 -2F988 267B5 -2F989 23393 -2F98A 2339C -2F98B 8201 -2F98C 8204 -2F98D 8F9E -2F98E 446B -2F98F 8291 -2F990 828B -2F991 829D -2F992 52B3 -2F993 82B1 -2F994 82B3 -2F995 82BD -2F996 82E6 -2F997 26B3C -2F998 82E5 -2F999 831D -2F99A 8363 -2F99B 83AD -2F99C 8323 -2F99D 83BD -2F99E 83E7 -2F99F 8457 -2F9A0 8353 -2F9A1 83CA -2F9A2 83CC -2F9A3 83DC -2F9A4 26C36 -2F9A5 26D6B -2F9A6 26CD5 -2F9A7 452B -2F9A8 84F1 -2F9A9 84F3 -2F9AA 8516 -2F9AB 273CA -2F9AC 8564 -2F9AD 26F2C -2F9AE 455D -2F9AF 4561 -2F9B0 26FB1 -2F9B1 270D2 -2F9B2 456B -2F9B3 8650 -2F9B4 865C -2F9B5 8667 -2F9B6 8669 -2F9B7 86A9 -2F9B8 8688 -2F9B9 870E -2F9BA 86E2 -2F9BB 8779 -2F9BC 8728 -2F9BD 876B -2F9BE 8786 -2F9BF 45D7 -2F9C0 87E1 -2F9C1 8801 -2F9C2 45F9 -2F9C3 8860 -2F9C4 8863 -2F9C5 27667 -2F9C6 88D7 -2F9C7 88DE -2F9C8 4635 -2F9C9 88FA -2F9CA 34BB -2F9CB 278AE -2F9CC 27966 -2F9CD 46BE -2F9CE 46C7 -2F9CF 8AA0 -2F9D0 8AED -2F9D1 8B8A -2F9D2 8C55 -2F9D3 27CA8 -2F9D4 8CAB -2F9D5 8CC1 -2F9D6 8D1B -2F9D7 8D77 -2F9D8 27F2F -2F9D9 20804 -2F9DA 8DCB -2F9DB 8DBC -2F9DC 8DF0 -2F9DD 208DE -2F9DE 8ED4 -2F9DF 8F38 -2F9E0 285D2 -2F9E1 285ED -2F9E2 9094 -2F9E3 90F1 -2F9E4 9111 -2F9E5 2872E -2F9E6 911B -2F9E7 9238 -2F9E8 92D7 -2F9E9 92D8 -2F9EA 927C -2F9EB 93F9 -2F9EC 9415 -2F9ED 28BFA -2F9EE 958B -2F9EF 4995 -2F9F0 95B7 -2F9F1 28D77 -2F9F2 49E6 -2F9F3 96C3 -2F9F4 5DB2 -2F9F5 9723 -2F9F6 29145 -2F9F7 2921A -2F9F8 4A6E -2F9F9 4A76 -2F9FA 97E0 -2F9FB 2940A -2F9FC 4AB2 -2F9FD 29496 -2F9FE 980B -2F9FF 980B -2FA00 9829 -2FA01 295B6 -2FA02 98E2 -2FA03 4B33 -2FA04 9929 -2FA05 99A7 -2FA06 99C2 -2FA07 99FE -2FA08 4BCE -2FA09 29B30 -2FA0A 9B12 -2FA0B 9C40 -2FA0C 9CFD -2FA0D 4CCE -2FA0E 4CED -2FA0F 9D67 -2FA10 2A0CE -2FA11 4CF8 -2FA12 2A105 -2FA13 2A20E -2FA14 2A291 -2FA15 9EBB -2FA16 4D56 -2FA17 9EF9 -2FA18 9EFE -2FA19 9F05 -2FA1A 9F0F -2FA1B 9F16 -2FA1C 9F3B -2FA1D 2A600 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/NFKCQC.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/NFKCQC.pl deleted file mode 100644 index 67097a33..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/NFKCQC.pl +++ /dev/null @@ -1,310 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToNFKCQC'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToNFKCQC'}{'missing'} = 'Yes'; - -return <<'END'; -A0 N -A8 N -AA N -AF N -B2 B5 N -B8 BA N -BC BE N -132 133 N -13F 140 N -149 N -17F N -1C4 1CC N -1F1 1F3 N -2B0 2B8 N -2D8 2DD N -2E0 2E4 N -300 304 M -306 30C M -30F M -311 M -313 314 M -31B M -323 328 M -32D 32E M -330 331 M -338 M -340 341 N -342 M -343 344 N -345 M -374 N -37A N -37E N -384 385 N -387 N -3D0 3D6 N -3F0 3F2 N -3F4 3F5 N -3F9 N -587 N -653 655 M -675 678 N -93C M -958 95F N -9BE M -9D7 M -9DC 9DD N -9DF N -A33 N -A36 N -A59 A5B N -A5E N -B3E M -B56 B57 M -B5C B5D N -BBE M -BD7 M -C56 M -CC2 M -CD5 CD6 M -D3E M -D57 M -DCA M -DCF M -DDF M -E33 N -EB3 N -EDC EDD N -F0C N -F43 N -F4D N -F52 N -F57 N -F5C N -F69 N -F73 N -F75 F79 N -F81 N -F93 N -F9D N -FA2 N -FA7 N -FAC N -FB9 N -102E M -10FC N -1161 1175 M -11A8 11C2 M -1B35 M -1D2C 1D2E N -1D30 1D3A N -1D3C 1D4D N -1D4F 1D6A N -1D78 N -1D9B 1DBF N -1E9A 1E9B N -1F71 N -1F73 N -1F75 N -1F77 N -1F79 N -1F7B N -1F7D N -1FBB N -1FBD 1FC1 N -1FC9 N -1FCB N -1FCD 1FCF N -1FD3 N -1FDB N -1FDD 1FDF N -1FE3 N -1FEB N -1FED 1FEF N -1FF9 N -1FFB N -1FFD 1FFE N -2000 200A N -2011 N -2017 N -2024 2026 N -202F N -2033 2034 N -2036 2037 N -203C N -203E N -2047 2049 N -2057 N -205F N -2070 2071 N -2074 208E N -2090 209C N -20A8 N -2100 2103 N -2105 2107 N -2109 2113 N -2115 2116 N -2119 211D N -2120 2122 N -2124 N -2126 N -2128 N -212A 212D N -212F 2131 N -2133 2139 N -213B 2140 N -2145 2149 N -2150 217F N -2189 N -222C 222D N -222F 2230 N -2329 232A N -2460 24EA N -2A0C N -2A74 2A76 N -2ADC N -2C7C 2C7D N -2D6F N -2E9F N -2EF3 N -2F00 2FD5 N -3000 N -3036 N -3038 303A N -3099 309A M -309B 309C N -309F N -30FF N -3131 318E N -3192 319F N -3200 321E N -3220 3247 N -3250 327E N -3280 32FE N -3300 33FF N -A69C A69D N -A770 N -A7F8 A7F9 N -AB5C AB5F N -F900 FA0D N -FA10 N -FA12 N -FA15 FA1E N -FA20 N -FA22 N -FA25 FA26 N -FA2A FA6D N -FA70 FAD9 N -FB00 FB06 N -FB13 FB17 N -FB1D N -FB1F FB36 N -FB38 FB3C N -FB3E N -FB40 FB41 N -FB43 FB44 N -FB46 FBB1 N -FBD3 FD3D N -FD50 FD8F N -FD92 FDC7 N -FDF0 FDFC N -FE10 FE19 N -FE30 FE44 N -FE47 FE52 N -FE54 FE66 N -FE68 FE6B N -FE70 FE72 N -FE74 N -FE76 FEFC N -FF01 FFBE N -FFC2 FFC7 N -FFCA FFCF N -FFD2 FFD7 N -FFDA FFDC N -FFE0 FFE6 N -FFE8 FFEE N -110BA M -11127 M -1133E M -11357 M -114B0 M -114BA M -114BD M -115AF M -1D15E 1D164 N -1D1BB 1D1C0 N -1D400 1D454 N -1D456 1D49C N -1D49E 1D49F N -1D4A2 N -1D4A5 1D4A6 N -1D4A9 1D4AC N -1D4AE 1D4B9 N -1D4BB N -1D4BD 1D4C3 N -1D4C5 1D505 N -1D507 1D50A N -1D50D 1D514 N -1D516 1D51C N -1D51E 1D539 N -1D53B 1D53E N -1D540 1D544 N -1D546 N -1D54A 1D550 N -1D552 1D6A5 N -1D6A8 1D7CB N -1D7CE 1D7FF N -1EE00 1EE03 N -1EE05 1EE1F N -1EE21 1EE22 N -1EE24 N -1EE27 N -1EE29 1EE32 N -1EE34 1EE37 N -1EE39 N -1EE3B N -1EE42 N -1EE47 N -1EE49 N -1EE4B N -1EE4D 1EE4F N -1EE51 1EE52 N -1EE54 N -1EE57 N -1EE59 N -1EE5B N -1EE5D N -1EE5F N -1EE61 1EE62 N -1EE64 N -1EE67 1EE6A N -1EE6C 1EE72 N -1EE74 1EE77 N -1EE79 1EE7C N -1EE7E N -1EE80 1EE89 N -1EE8B 1EE9B N -1EEA1 1EEA3 N -1EEA5 1EEA9 N -1EEAB 1EEBB N -1F100 1F10A N -1F110 1F12E N -1F130 1F14F N -1F16A 1F16B N -1F190 N -1F200 1F202 N -1F210 1F23A N -1F240 1F248 N -1F250 1F251 N -2F800 2FA1D N -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/NFKDQC.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/NFKDQC.pl deleted file mode 100644 index d5e7285a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/NFKDQC.pl +++ /dev/null @@ -1,410 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToNFKDQC'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToNFKDQC'}{'missing'} = 'Yes'; - -return <<'END'; -A0 N -A8 N -AA N -AF N -B2 B5 N -B8 BA N -BC BE N -C0 C5 N -C7 CF N -D1 D6 N -D9 DD N -E0 E5 N -E7 EF N -F1 F6 N -F9 FD N -FF 10F N -112 125 N -128 130 N -132 137 N -139 140 N -143 149 N -14C 151 N -154 165 N -168 17F N -1A0 1A1 N -1AF 1B0 N -1C4 1DC N -1DE 1E3 N -1E6 1F5 N -1F8 21B N -21E 21F N -226 233 N -2B0 2B8 N -2D8 2DD N -2E0 2E4 N -340 341 N -343 344 N -374 N -37A N -37E N -384 38A N -38C N -38E 390 N -3AA 3B0 N -3CA 3CE N -3D0 3D6 N -3F0 3F2 N -3F4 3F5 N -3F9 N -400 401 N -403 N -407 N -40C 40E N -419 N -439 N -450 451 N -453 N -457 N -45C 45E N -476 477 N -4C1 4C2 N -4D0 4D3 N -4D6 4D7 N -4DA 4DF N -4E2 4E7 N -4EA 4F5 N -4F8 4F9 N -587 N -622 626 N -675 678 N -6C0 N -6C2 N -6D3 N -929 N -931 N -934 N -958 95F N -9CB 9CC N -9DC 9DD N -9DF N -A33 N -A36 N -A59 A5B N -A5E N -B48 N -B4B B4C N -B5C B5D N -B94 N -BCA BCC N -C48 N -CC0 N -CC7 CC8 N -CCA CCB N -D4A D4C N -DDA N -DDC DDE N -E33 N -EB3 N -EDC EDD N -F0C N -F43 N -F4D N -F52 N -F57 N -F5C N -F69 N -F73 N -F75 F79 N -F81 N -F93 N -F9D N -FA2 N -FA7 N -FAC N -FB9 N -1026 N -10FC N -1B06 N -1B08 N -1B0A N -1B0C N -1B0E N -1B12 N -1B3B N -1B3D N -1B40 1B41 N -1B43 N -1D2C 1D2E N -1D30 1D3A N -1D3C 1D4D N -1D4F 1D6A N -1D78 N -1D9B 1DBF N -1E00 1E9B N -1EA0 1EF9 N -1F00 1F15 N -1F18 1F1D N -1F20 1F45 N -1F48 1F4D N -1F50 1F57 N -1F59 N -1F5B N -1F5D N -1F5F 1F7D N -1F80 1FB4 N -1FB6 1FC4 N -1FC6 1FD3 N -1FD6 1FDB N -1FDD 1FEF N -1FF2 1FF4 N -1FF6 1FFE N -2000 200A N -2011 N -2017 N -2024 2026 N -202F N -2033 2034 N -2036 2037 N -203C N -203E N -2047 2049 N -2057 N -205F N -2070 2071 N -2074 208E N -2090 209C N -20A8 N -2100 2103 N -2105 2107 N -2109 2113 N -2115 2116 N -2119 211D N -2120 2122 N -2124 N -2126 N -2128 N -212A 212D N -212F 2131 N -2133 2139 N -213B 2140 N -2145 2149 N -2150 217F N -2189 N -219A 219B N -21AE N -21CD 21CF N -2204 N -2209 N -220C N -2224 N -2226 N -222C 222D N -222F 2230 N -2241 N -2244 N -2247 N -2249 N -2260 N -2262 N -226D 2271 N -2274 2275 N -2278 2279 N -2280 2281 N -2284 2285 N -2288 2289 N -22AC 22AF N -22E0 22E3 N -22EA 22ED N -2329 232A N -2460 24EA N -2A0C N -2A74 2A76 N -2ADC N -2C7C 2C7D N -2D6F N -2E9F N -2EF3 N -2F00 2FD5 N -3000 N -3036 N -3038 303A N -304C N -304E N -3050 N -3052 N -3054 N -3056 N -3058 N -305A N -305C N -305E N -3060 N -3062 N -3065 N -3067 N -3069 N -3070 3071 N -3073 3074 N -3076 3077 N -3079 307A N -307C 307D N -3094 N -309B 309C N -309E 309F N -30AC N -30AE N -30B0 N -30B2 N -30B4 N -30B6 N -30B8 N -30BA N -30BC N -30BE N -30C0 N -30C2 N -30C5 N -30C7 N -30C9 N -30D0 30D1 N -30D3 30D4 N -30D6 30D7 N -30D9 30DA N -30DC 30DD N -30F4 N -30F7 30FA N -30FE 30FF N -3131 318E N -3192 319F N -3200 321E N -3220 3247 N -3250 327E N -3280 32FE N -3300 33FF N -A69C A69D N -A770 N -A7F8 A7F9 N -AB5C AB5F N -AC00 D7A3 N -F900 FA0D N -FA10 N -FA12 N -FA15 FA1E N -FA20 N -FA22 N -FA25 FA26 N -FA2A FA6D N -FA70 FAD9 N -FB00 FB06 N -FB13 FB17 N -FB1D N -FB1F FB36 N -FB38 FB3C N -FB3E N -FB40 FB41 N -FB43 FB44 N -FB46 FBB1 N -FBD3 FD3D N -FD50 FD8F N -FD92 FDC7 N -FDF0 FDFC N -FE10 FE19 N -FE30 FE44 N -FE47 FE52 N -FE54 FE66 N -FE68 FE6B N -FE70 FE72 N -FE74 N -FE76 FEFC N -FF01 FFBE N -FFC2 FFC7 N -FFCA FFCF N -FFD2 FFD7 N -FFDA FFDC N -FFE0 FFE6 N -FFE8 FFEE N -1109A N -1109C N -110AB N -1112E 1112F N -1134B 1134C N -114BB 114BC N -114BE N -115BA 115BB N -1D15E 1D164 N -1D1BB 1D1C0 N -1D400 1D454 N -1D456 1D49C N -1D49E 1D49F N -1D4A2 N -1D4A5 1D4A6 N -1D4A9 1D4AC N -1D4AE 1D4B9 N -1D4BB N -1D4BD 1D4C3 N -1D4C5 1D505 N -1D507 1D50A N -1D50D 1D514 N -1D516 1D51C N -1D51E 1D539 N -1D53B 1D53E N -1D540 1D544 N -1D546 N -1D54A 1D550 N -1D552 1D6A5 N -1D6A8 1D7CB N -1D7CE 1D7FF N -1EE00 1EE03 N -1EE05 1EE1F N -1EE21 1EE22 N -1EE24 N -1EE27 N -1EE29 1EE32 N -1EE34 1EE37 N -1EE39 N -1EE3B N -1EE42 N -1EE47 N -1EE49 N -1EE4B N -1EE4D 1EE4F N -1EE51 1EE52 N -1EE54 N -1EE57 N -1EE59 N -1EE5B N -1EE5D N -1EE5F N -1EE61 1EE62 N -1EE64 N -1EE67 1EE6A N -1EE6C 1EE72 N -1EE74 1EE77 N -1EE79 1EE7C N -1EE7E N -1EE80 1EE89 N -1EE8B 1EE9B N -1EEA1 1EEA3 N -1EEA5 1EEA9 N -1EEAB 1EEBB N -1F100 1F10A N -1F110 1F12E N -1F130 1F14F N -1F16A 1F16B N -1F190 N -1F200 1F202 N -1F210 1F23A N -1F240 1F248 N -1F250 1F251 N -2F800 2FA1D N -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Na1.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Na1.pl deleted file mode 100644 index 1d0f10c4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Na1.pl +++ /dev/null @@ -1,1998 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToNa1'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToNa1'}{'missing'} = ''; # code point maps to the null string - -return <<'END'; -0 NULL -1 START OF HEADING -2 START OF TEXT -3 END OF TEXT -4 END OF TRANSMISSION -5 ENQUIRY -6 ACKNOWLEDGE -7 BELL -8 BACKSPACE -9 CHARACTER TABULATION -A LINE FEED (LF) -B LINE TABULATION -C FORM FEED (FF) -D CARRIAGE RETURN (CR) -E SHIFT OUT -F SHIFT IN -10 DATA LINK ESCAPE -11 DEVICE CONTROL ONE -12 DEVICE CONTROL TWO -13 DEVICE CONTROL THREE -14 DEVICE CONTROL FOUR -15 NEGATIVE ACKNOWLEDGE -16 SYNCHRONOUS IDLE -17 END OF TRANSMISSION BLOCK -18 CANCEL -19 END OF MEDIUM -1A SUBSTITUTE -1B ESCAPE -1C INFORMATION SEPARATOR FOUR -1D INFORMATION SEPARATOR THREE -1E INFORMATION SEPARATOR TWO -1F INFORMATION SEPARATOR ONE -27 APOSTROPHE-QUOTE -28 OPENING PARENTHESIS -29 CLOSING PARENTHESIS -2E PERIOD -2F SLASH -5B OPENING SQUARE BRACKET -5C BACKSLASH -5D CLOSING SQUARE BRACKET -5E SPACING CIRCUMFLEX -5F SPACING UNDERSCORE -60 SPACING GRAVE -7B OPENING CURLY BRACKET -7C VERTICAL BAR -7D CLOSING CURLY BRACKET -7F DELETE -82 BREAK PERMITTED HERE -83 NO BREAK HERE -85 NEXT LINE (NEL) -86 START OF SELECTED AREA -87 END OF SELECTED AREA -88 CHARACTER TABULATION SET -89 CHARACTER TABULATION WITH JUSTIFICATION -8A LINE TABULATION SET -8B PARTIAL LINE FORWARD -8C PARTIAL LINE BACKWARD -8D REVERSE LINE FEED -8E SINGLE SHIFT TWO -8F SINGLE SHIFT THREE -90 DEVICE CONTROL STRING -91 PRIVATE USE ONE -92 PRIVATE USE TWO -93 SET TRANSMIT STATE -94 CANCEL CHARACTER -95 MESSAGE WAITING -96 START OF GUARDED AREA -97 END OF GUARDED AREA -98 START OF STRING -9A SINGLE CHARACTER INTRODUCER -9B CONTROL SEQUENCE INTRODUCER -9C STRING TERMINATOR -9D OPERATING SYSTEM COMMAND -9E PRIVACY MESSAGE -9F APPLICATION PROGRAM COMMAND -A0 NON-BREAKING SPACE -A6 BROKEN VERTICAL BAR -A8 SPACING DIAERESIS -AB LEFT POINTING GUILLEMET -AE REGISTERED TRADE MARK SIGN -AF SPACING MACRON -B1 PLUS-OR-MINUS SIGN -B2 SUPERSCRIPT DIGIT TWO -B3 SUPERSCRIPT DIGIT THREE -B4 SPACING ACUTE -B6 PARAGRAPH SIGN -B8 SPACING CEDILLA -B9 SUPERSCRIPT DIGIT ONE -BB RIGHT POINTING GUILLEMET -BC FRACTION ONE QUARTER -BD FRACTION ONE HALF -BE FRACTION THREE QUARTERS -C0 LATIN CAPITAL LETTER A GRAVE -C1 LATIN CAPITAL LETTER A ACUTE -C2 LATIN CAPITAL LETTER A CIRCUMFLEX -C3 LATIN CAPITAL LETTER A TILDE -C4 LATIN CAPITAL LETTER A DIAERESIS -C5 LATIN CAPITAL LETTER A RING -C6 LATIN CAPITAL LETTER A E -C7 LATIN CAPITAL LETTER C CEDILLA -C8 LATIN CAPITAL LETTER E GRAVE -C9 LATIN CAPITAL LETTER E ACUTE -CA LATIN CAPITAL LETTER E CIRCUMFLEX -CB LATIN CAPITAL LETTER E DIAERESIS -CC LATIN CAPITAL LETTER I GRAVE -CD LATIN CAPITAL LETTER I ACUTE -CE LATIN CAPITAL LETTER I CIRCUMFLEX -CF LATIN CAPITAL LETTER I DIAERESIS -D1 LATIN CAPITAL LETTER N TILDE -D2 LATIN CAPITAL LETTER O GRAVE -D3 LATIN CAPITAL LETTER O ACUTE -D4 LATIN CAPITAL LETTER O CIRCUMFLEX -D5 LATIN CAPITAL LETTER O TILDE -D6 LATIN CAPITAL LETTER O DIAERESIS -D8 LATIN CAPITAL LETTER O SLASH -D9 LATIN CAPITAL LETTER U GRAVE -DA LATIN CAPITAL LETTER U ACUTE -DB LATIN CAPITAL LETTER U CIRCUMFLEX -DC LATIN CAPITAL LETTER U DIAERESIS -DD LATIN CAPITAL LETTER Y ACUTE -E0 LATIN SMALL LETTER A GRAVE -E1 LATIN SMALL LETTER A ACUTE -E2 LATIN SMALL LETTER A CIRCUMFLEX -E3 LATIN SMALL LETTER A TILDE -E4 LATIN SMALL LETTER A DIAERESIS -E5 LATIN SMALL LETTER A RING -E6 LATIN SMALL LETTER A E -E7 LATIN SMALL LETTER C CEDILLA -E8 LATIN SMALL LETTER E GRAVE -E9 LATIN SMALL LETTER E ACUTE -EA LATIN SMALL LETTER E CIRCUMFLEX -EB LATIN SMALL LETTER E DIAERESIS -EC LATIN SMALL LETTER I GRAVE -ED LATIN SMALL LETTER I ACUTE -EE LATIN SMALL LETTER I CIRCUMFLEX -EF LATIN SMALL LETTER I DIAERESIS -F1 LATIN SMALL LETTER N TILDE -F2 LATIN SMALL LETTER O GRAVE -F3 LATIN SMALL LETTER O ACUTE -F4 LATIN SMALL LETTER O CIRCUMFLEX -F5 LATIN SMALL LETTER O TILDE -F6 LATIN SMALL LETTER O DIAERESIS -F8 LATIN SMALL LETTER O SLASH -F9 LATIN SMALL LETTER U GRAVE -FA LATIN SMALL LETTER U ACUTE -FB LATIN SMALL LETTER U CIRCUMFLEX -FC LATIN SMALL LETTER U DIAERESIS -FD LATIN SMALL LETTER Y ACUTE -FF LATIN SMALL LETTER Y DIAERESIS -100 LATIN CAPITAL LETTER A MACRON -101 LATIN SMALL LETTER A MACRON -102 LATIN CAPITAL LETTER A BREVE -103 LATIN SMALL LETTER A BREVE -104 LATIN CAPITAL LETTER A OGONEK -105 LATIN SMALL LETTER A OGONEK -106 LATIN CAPITAL LETTER C ACUTE -107 LATIN SMALL LETTER C ACUTE -108 LATIN CAPITAL LETTER C CIRCUMFLEX -109 LATIN SMALL LETTER C CIRCUMFLEX -10A LATIN CAPITAL LETTER C DOT -10B LATIN SMALL LETTER C DOT -10C LATIN CAPITAL LETTER C HACEK -10D LATIN SMALL LETTER C HACEK -10E LATIN CAPITAL LETTER D HACEK -10F LATIN SMALL LETTER D HACEK -110 LATIN CAPITAL LETTER D BAR -111 LATIN SMALL LETTER D BAR -112 LATIN CAPITAL LETTER E MACRON -113 LATIN SMALL LETTER E MACRON -114 LATIN CAPITAL LETTER E BREVE -115 LATIN SMALL LETTER E BREVE -116 LATIN CAPITAL LETTER E DOT -117 LATIN SMALL LETTER E DOT -118 LATIN CAPITAL LETTER E OGONEK -119 LATIN SMALL LETTER E OGONEK -11A LATIN CAPITAL LETTER E HACEK -11B LATIN SMALL LETTER E HACEK -11C LATIN CAPITAL LETTER G CIRCUMFLEX -11D LATIN SMALL LETTER G CIRCUMFLEX -11E LATIN CAPITAL LETTER G BREVE -11F LATIN SMALL LETTER G BREVE -120 LATIN CAPITAL LETTER G DOT -121 LATIN SMALL LETTER G DOT -122 LATIN CAPITAL LETTER G CEDILLA -123 LATIN SMALL LETTER G CEDILLA -124 LATIN CAPITAL LETTER H CIRCUMFLEX -125 LATIN SMALL LETTER H CIRCUMFLEX -126 LATIN CAPITAL LETTER H BAR -127 LATIN SMALL LETTER H BAR -128 LATIN CAPITAL LETTER I TILDE -129 LATIN SMALL LETTER I TILDE -12A LATIN CAPITAL LETTER I MACRON -12B LATIN SMALL LETTER I MACRON -12C LATIN CAPITAL LETTER I BREVE -12D LATIN SMALL LETTER I BREVE -12E LATIN CAPITAL LETTER I OGONEK -12F LATIN SMALL LETTER I OGONEK -130 LATIN CAPITAL LETTER I DOT -132 LATIN CAPITAL LETTER I J -133 LATIN SMALL LETTER I J -134 LATIN CAPITAL LETTER J CIRCUMFLEX -135 LATIN SMALL LETTER J CIRCUMFLEX -136 LATIN CAPITAL LETTER K CEDILLA -137 LATIN SMALL LETTER K CEDILLA -139 LATIN CAPITAL LETTER L ACUTE -13A LATIN SMALL LETTER L ACUTE -13B LATIN CAPITAL LETTER L CEDILLA -13C LATIN SMALL LETTER L CEDILLA -13D LATIN CAPITAL LETTER L HACEK -13E LATIN SMALL LETTER L HACEK -141 LATIN CAPITAL LETTER L SLASH -142 LATIN SMALL LETTER L SLASH -143 LATIN CAPITAL LETTER N ACUTE -144 LATIN SMALL LETTER N ACUTE -145 LATIN CAPITAL LETTER N CEDILLA -146 LATIN SMALL LETTER N CEDILLA -147 LATIN CAPITAL LETTER N HACEK -148 LATIN SMALL LETTER N HACEK -149 LATIN SMALL LETTER APOSTROPHE N -14C LATIN CAPITAL LETTER O MACRON -14D LATIN SMALL LETTER O MACRON -14E LATIN CAPITAL LETTER O BREVE -14F LATIN SMALL LETTER O BREVE -150 LATIN CAPITAL LETTER O DOUBLE ACUTE -151 LATIN SMALL LETTER O DOUBLE ACUTE -152 LATIN CAPITAL LETTER O E -153 LATIN SMALL LETTER O E -154 LATIN CAPITAL LETTER R ACUTE -155 LATIN SMALL LETTER R ACUTE -156 LATIN CAPITAL LETTER R CEDILLA -157 LATIN SMALL LETTER R CEDILLA -158 LATIN CAPITAL LETTER R HACEK -159 LATIN SMALL LETTER R HACEK -15A LATIN CAPITAL LETTER S ACUTE -15B LATIN SMALL LETTER S ACUTE -15C LATIN CAPITAL LETTER S CIRCUMFLEX -15D LATIN SMALL LETTER S CIRCUMFLEX -15E LATIN CAPITAL LETTER S CEDILLA -15F LATIN SMALL LETTER S CEDILLA -160 LATIN CAPITAL LETTER S HACEK -161 LATIN SMALL LETTER S HACEK -162 LATIN CAPITAL LETTER T CEDILLA -163 LATIN SMALL LETTER T CEDILLA -164 LATIN CAPITAL LETTER T HACEK -165 LATIN SMALL LETTER T HACEK -166 LATIN CAPITAL LETTER T BAR -167 LATIN SMALL LETTER T BAR -168 LATIN CAPITAL LETTER U TILDE -169 LATIN SMALL LETTER U TILDE -16A LATIN CAPITAL LETTER U MACRON -16B LATIN SMALL LETTER U MACRON -16C LATIN CAPITAL LETTER U BREVE -16D LATIN SMALL LETTER U BREVE -16E LATIN CAPITAL LETTER U RING -16F LATIN SMALL LETTER U RING -170 LATIN CAPITAL LETTER U DOUBLE ACUTE -171 LATIN SMALL LETTER U DOUBLE ACUTE -172 LATIN CAPITAL LETTER U OGONEK -173 LATIN SMALL LETTER U OGONEK -174 LATIN CAPITAL LETTER W CIRCUMFLEX -175 LATIN SMALL LETTER W CIRCUMFLEX -176 LATIN CAPITAL LETTER Y CIRCUMFLEX -177 LATIN SMALL LETTER Y CIRCUMFLEX -178 LATIN CAPITAL LETTER Y DIAERESIS -179 LATIN CAPITAL LETTER Z ACUTE -17A LATIN SMALL LETTER Z ACUTE -17B LATIN CAPITAL LETTER Z DOT -17C LATIN SMALL LETTER Z DOT -17D LATIN CAPITAL LETTER Z HACEK -17E LATIN SMALL LETTER Z HACEK -180 LATIN SMALL LETTER B BAR -181 LATIN CAPITAL LETTER B HOOK -182 LATIN CAPITAL LETTER B TOPBAR -183 LATIN SMALL LETTER B TOPBAR -187 LATIN CAPITAL LETTER C HOOK -188 LATIN SMALL LETTER C HOOK -18A LATIN CAPITAL LETTER D HOOK -18B LATIN CAPITAL LETTER D TOPBAR -18C LATIN SMALL LETTER D TOPBAR -18E LATIN CAPITAL LETTER TURNED E -190 LATIN CAPITAL LETTER EPSILON -191 LATIN CAPITAL LETTER F HOOK -192 LATIN SMALL LETTER SCRIPT F -193 LATIN CAPITAL LETTER G HOOK -195 LATIN SMALL LETTER H V -197 LATIN CAPITAL LETTER BARRED I -198 LATIN CAPITAL LETTER K HOOK -199 LATIN SMALL LETTER K HOOK -19A LATIN SMALL LETTER BARRED L -19B LATIN SMALL LETTER BARRED LAMBDA -19D LATIN CAPITAL LETTER N HOOK -19F LATIN CAPITAL LETTER BARRED O -1A0 LATIN CAPITAL LETTER O HORN -1A1 LATIN SMALL LETTER O HORN -1A2 LATIN CAPITAL LETTER O I -1A3 LATIN SMALL LETTER O I -1A4 LATIN CAPITAL LETTER P HOOK -1A5 LATIN SMALL LETTER P HOOK -1A6 LATIN LETTER Y R -1AB LATIN SMALL LETTER T PALATAL HOOK -1AC LATIN CAPITAL LETTER T HOOK -1AD LATIN SMALL LETTER T HOOK -1AE LATIN CAPITAL LETTER T RETROFLEX HOOK -1AF LATIN CAPITAL LETTER U HORN -1B0 LATIN SMALL LETTER U HORN -1B2 LATIN CAPITAL LETTER SCRIPT V -1B3 LATIN CAPITAL LETTER Y HOOK -1B4 LATIN SMALL LETTER Y HOOK -1B5 LATIN CAPITAL LETTER Z BAR -1B6 LATIN SMALL LETTER Z BAR -1B7 LATIN CAPITAL LETTER YOGH -1B8 LATIN CAPITAL LETTER REVERSED YOGH -1B9 LATIN SMALL LETTER REVERSED YOGH -1BA LATIN SMALL LETTER YOGH WITH TAIL -1BB LATIN LETTER TWO BAR -1BE LATIN LETTER INVERTED GLOTTAL STOP BAR -1C0 LATIN LETTER PIPE -1C1 LATIN LETTER DOUBLE PIPE -1C2 LATIN LETTER PIPE DOUBLE BAR -1C3 LATIN LETTER EXCLAMATION MARK -1C4 LATIN CAPITAL LETTER D Z HACEK -1C5 LATIN LETTER CAPITAL D SMALL Z HACEK -1C6 LATIN SMALL LETTER D Z HACEK -1C7 LATIN CAPITAL LETTER L J -1C8 LATIN LETTER CAPITAL L SMALL J -1C9 LATIN SMALL LETTER L J -1CA LATIN CAPITAL LETTER N J -1CB LATIN LETTER CAPITAL N SMALL J -1CC LATIN SMALL LETTER N J -1CD LATIN CAPITAL LETTER A HACEK -1CE LATIN SMALL LETTER A HACEK -1CF LATIN CAPITAL LETTER I HACEK -1D0 LATIN SMALL LETTER I HACEK -1D1 LATIN CAPITAL LETTER O HACEK -1D2 LATIN SMALL LETTER O HACEK -1D3 LATIN CAPITAL LETTER U HACEK -1D4 LATIN SMALL LETTER U HACEK -1D5 LATIN CAPITAL LETTER U DIAERESIS MACRON -1D6 LATIN SMALL LETTER U DIAERESIS MACRON -1D7 LATIN CAPITAL LETTER U DIAERESIS ACUTE -1D8 LATIN SMALL LETTER U DIAERESIS ACUTE -1D9 LATIN CAPITAL LETTER U DIAERESIS HACEK -1DA LATIN SMALL LETTER U DIAERESIS HACEK -1DB LATIN CAPITAL LETTER U DIAERESIS GRAVE -1DC LATIN SMALL LETTER U DIAERESIS GRAVE -1DE LATIN CAPITAL LETTER A DIAERESIS MACRON -1DF LATIN SMALL LETTER A DIAERESIS MACRON -1E0 LATIN CAPITAL LETTER A DOT MACRON -1E1 LATIN SMALL LETTER A DOT MACRON -1E2 LATIN CAPITAL LETTER A E MACRON -1E3 LATIN SMALL LETTER A E MACRON -1E4 LATIN CAPITAL LETTER G BAR -1E5 LATIN SMALL LETTER G BAR -1E6 LATIN CAPITAL LETTER G HACEK -1E7 LATIN SMALL LETTER G HACEK -1E8 LATIN CAPITAL LETTER K HACEK -1E9 LATIN SMALL LETTER K HACEK -1EA LATIN CAPITAL LETTER O OGONEK -1EB LATIN SMALL LETTER O OGONEK -1EC LATIN CAPITAL LETTER O OGONEK MACRON -1ED LATIN SMALL LETTER O OGONEK MACRON -1EE LATIN CAPITAL LETTER YOGH HACEK -1EF LATIN SMALL LETTER YOGH HACEK -1F0 LATIN SMALL LETTER J HACEK -251 LATIN SMALL LETTER SCRIPT A -252 LATIN SMALL LETTER TURNED SCRIPT A -253 LATIN SMALL LETTER B HOOK -255 LATIN SMALL LETTER C CURL -256 LATIN SMALL LETTER D RETROFLEX HOOK -257 LATIN SMALL LETTER D HOOK -25A LATIN SMALL LETTER SCHWA HOOK -25B LATIN SMALL LETTER EPSILON -25C LATIN SMALL LETTER REVERSED EPSILON -25D LATIN SMALL LETTER REVERSED EPSILON HOOK -25E LATIN SMALL LETTER CLOSED REVERSED EPSILON -25F LATIN SMALL LETTER DOTLESS J BAR -260 LATIN SMALL LETTER G HOOK -264 LATIN SMALL LETTER BABY GAMMA -266 LATIN SMALL LETTER H HOOK -267 LATIN SMALL LETTER HENG HOOK -268 LATIN SMALL LETTER BARRED I -26C LATIN SMALL LETTER L BELT -26D LATIN SMALL LETTER L RETROFLEX HOOK -26E LATIN SMALL LETTER L YOGH -271 LATIN SMALL LETTER M HOOK -272 LATIN SMALL LETTER N HOOK -273 LATIN SMALL LETTER N RETROFLEX HOOK -276 LATIN LETTER SMALL CAPITAL O E -27B LATIN SMALL LETTER TURNED R HOOK -27D LATIN SMALL LETTER R HOOK -27E LATIN SMALL LETTER FISHHOOK R -27F LATIN SMALL LETTER REVERSED FISHHOOK R -282 LATIN SMALL LETTER S HOOK -284 LATIN SMALL LETTER DOTLESS J BAR HOOK -286 LATIN SMALL LETTER ESH CURL -288 LATIN SMALL LETTER T RETROFLEX HOOK -28B LATIN SMALL LETTER SCRIPT V -290 LATIN SMALL LETTER Z RETROFLEX HOOK -291 LATIN SMALL LETTER Z CURL -292 LATIN SMALL LETTER YOGH -293 LATIN SMALL LETTER YOGH CURL -295 LATIN LETTER REVERSED GLOTTAL STOP -298 LATIN LETTER BULLSEYE -29A LATIN SMALL LETTER CLOSED EPSILON -29B LATIN LETTER SMALL CAPITAL G HOOK -29D LATIN SMALL LETTER CROSSED-TAIL J -2A0 LATIN SMALL LETTER Q HOOK -2A1 LATIN LETTER GLOTTAL STOP BAR -2A2 LATIN LETTER REVERSED GLOTTAL STOP BAR -2A3 LATIN SMALL LETTER D Z -2A4 LATIN SMALL LETTER D YOGH -2A5 LATIN SMALL LETTER D Z CURL -2A6 LATIN SMALL LETTER T S -2A7 LATIN SMALL LETTER T ESH -2A8 LATIN SMALL LETTER T C CURL -2B1 MODIFIER LETTER SMALL H HOOK -2B5 MODIFIER LETTER SMALL TURNED R HOOK -2C6 MODIFIER LETTER CIRCUMFLEX -2C7 MODIFIER LETTER HACEK -2CA MODIFIER LETTER ACUTE -2CB MODIFIER LETTER GRAVE -2CE MODIFIER LETTER LOW GRAVE -2CF MODIFIER LETTER LOW ACUTE -2D2 MODIFIER LETTER CENTERED RIGHT HALF RING -2D3 MODIFIER LETTER CENTERED LEFT HALF RING -2D8 SPACING BREVE -2D9 SPACING DOT ABOVE -2DA SPACING RING ABOVE -2DB SPACING OGONEK -2DC SPACING TILDE -2DD SPACING DOUBLE ACUTE -300 NON-SPACING GRAVE -301 NON-SPACING ACUTE -302 NON-SPACING CIRCUMFLEX -303 NON-SPACING TILDE -304 NON-SPACING MACRON -305 NON-SPACING OVERSCORE -306 NON-SPACING BREVE -307 NON-SPACING DOT ABOVE -308 NON-SPACING DIAERESIS -309 NON-SPACING HOOK ABOVE -30A NON-SPACING RING ABOVE -30B NON-SPACING DOUBLE ACUTE -30C NON-SPACING HACEK -30D NON-SPACING VERTICAL LINE ABOVE -30E NON-SPACING DOUBLE VERTICAL LINE ABOVE -30F NON-SPACING DOUBLE GRAVE -310 NON-SPACING CANDRABINDU -311 NON-SPACING INVERTED BREVE -312 NON-SPACING TURNED COMMA ABOVE -313 NON-SPACING COMMA ABOVE -314 NON-SPACING REVERSED COMMA ABOVE -315 NON-SPACING COMMA ABOVE RIGHT -316 NON-SPACING GRAVE BELOW -317 NON-SPACING ACUTE BELOW -318 NON-SPACING LEFT TACK BELOW -319 NON-SPACING RIGHT TACK BELOW -31A NON-SPACING LEFT ANGLE ABOVE -31B NON-SPACING HORN -31C NON-SPACING LEFT HALF RING BELOW -31D NON-SPACING UP TACK BELOW -31E NON-SPACING DOWN TACK BELOW -31F NON-SPACING PLUS SIGN BELOW -320 NON-SPACING MINUS SIGN BELOW -321 NON-SPACING PALATALIZED HOOK BELOW -322 NON-SPACING RETROFLEX HOOK BELOW -323 NON-SPACING DOT BELOW -324 NON-SPACING DOUBLE DOT BELOW -325 NON-SPACING RING BELOW -326 NON-SPACING COMMA BELOW -327 NON-SPACING CEDILLA -328 NON-SPACING OGONEK -329 NON-SPACING VERTICAL LINE BELOW -32A NON-SPACING BRIDGE BELOW -32B NON-SPACING INVERTED DOUBLE ARCH BELOW -32C NON-SPACING HACEK BELOW -32D NON-SPACING CIRCUMFLEX BELOW -32E NON-SPACING BREVE BELOW -32F NON-SPACING INVERTED BREVE BELOW -330 NON-SPACING TILDE BELOW -331 NON-SPACING MACRON BELOW -332 NON-SPACING UNDERSCORE -333 NON-SPACING DOUBLE UNDERSCORE -334 NON-SPACING TILDE OVERLAY -335 NON-SPACING SHORT BAR OVERLAY -336 NON-SPACING LONG BAR OVERLAY -337 NON-SPACING SHORT SLASH OVERLAY -338 NON-SPACING LONG SLASH OVERLAY -339 NON-SPACING RIGHT HALF RING BELOW -33A NON-SPACING INVERTED BRIDGE BELOW -33B NON-SPACING SQUARE BELOW -33C NON-SPACING SEAGULL BELOW -33D NON-SPACING X ABOVE -33E NON-SPACING VERTICAL TILDE -33F NON-SPACING DOUBLE OVERSCORE -340 NON-SPACING GRAVE TONE MARK -341 NON-SPACING ACUTE TONE MARK -344 GREEK NON-SPACING DIAERESIS TONOS -345 GREEK NON-SPACING IOTA BELOW -374 GREEK UPPER NUMERAL SIGN -37A GREEK SPACING IOTA BELOW -384 GREEK SPACING TONOS -385 GREEK SPACING DIAERESIS TONOS -386 GREEK CAPITAL LETTER ALPHA TONOS -388 GREEK CAPITAL LETTER EPSILON TONOS -389 GREEK CAPITAL LETTER ETA TONOS -38A GREEK CAPITAL LETTER IOTA TONOS -38C GREEK CAPITAL LETTER OMICRON TONOS -38E GREEK CAPITAL LETTER UPSILON TONOS -38F GREEK CAPITAL LETTER OMEGA TONOS -390 GREEK SMALL LETTER IOTA DIAERESIS TONOS -39B GREEK CAPITAL LETTER LAMBDA -3AA GREEK CAPITAL LETTER IOTA DIAERESIS -3AB GREEK CAPITAL LETTER UPSILON DIAERESIS -3AC GREEK SMALL LETTER ALPHA TONOS -3AD GREEK SMALL LETTER EPSILON TONOS -3AE GREEK SMALL LETTER ETA TONOS -3AF GREEK SMALL LETTER IOTA TONOS -3B0 GREEK SMALL LETTER UPSILON DIAERESIS TONOS -3BB GREEK SMALL LETTER LAMBDA -3CA GREEK SMALL LETTER IOTA DIAERESIS -3CB GREEK SMALL LETTER UPSILON DIAERESIS -3CC GREEK SMALL LETTER OMICRON TONOS -3CD GREEK SMALL LETTER UPSILON TONOS -3CE GREEK SMALL LETTER OMEGA TONOS -3D0 GREEK SMALL LETTER CURLED BETA -3D1 GREEK SMALL LETTER SCRIPT THETA -3D2 GREEK CAPITAL LETTER UPSILON HOOK -3D3 GREEK CAPITAL LETTER UPSILON HOOK TONOS -3D4 GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS -3D5 GREEK SMALL LETTER SCRIPT PHI -3D6 GREEK SMALL LETTER OMEGA PI -3DA GREEK CAPITAL LETTER STIGMA -3DC GREEK CAPITAL LETTER DIGAMMA -3DE GREEK CAPITAL LETTER KOPPA -3E0 GREEK CAPITAL LETTER SAMPI -3E2 GREEK CAPITAL LETTER SHEI -3E3 GREEK SMALL LETTER SHEI -3E4 GREEK CAPITAL LETTER FEI -3E5 GREEK SMALL LETTER FEI -3E6 GREEK CAPITAL LETTER KHEI -3E7 GREEK SMALL LETTER KHEI -3E8 GREEK CAPITAL LETTER HORI -3E9 GREEK SMALL LETTER HORI -3EA GREEK CAPITAL LETTER GANGIA -3EB GREEK SMALL LETTER GANGIA -3EC GREEK CAPITAL LETTER SHIMA -3ED GREEK SMALL LETTER SHIMA -3EE GREEK CAPITAL LETTER DEI -3EF GREEK SMALL LETTER DEI -3F0 GREEK SMALL LETTER SCRIPT KAPPA -3F1 GREEK SMALL LETTER TAILED RHO -3F2 GREEK SMALL LETTER LUNATE SIGMA -404 CYRILLIC CAPITAL LETTER E -406 CYRILLIC CAPITAL LETTER I -413 CYRILLIC CAPITAL LETTER GE -418 CYRILLIC CAPITAL LETTER II -419 CYRILLIC CAPITAL LETTER SHORT II -425 CYRILLIC CAPITAL LETTER KHA -42B CYRILLIC CAPITAL LETTER YERI -42D CYRILLIC CAPITAL LETTER REVERSED E -42E CYRILLIC CAPITAL LETTER IU -42F CYRILLIC CAPITAL LETTER IA -433 CYRILLIC SMALL LETTER GE -438 CYRILLIC SMALL LETTER II -439 CYRILLIC SMALL LETTER SHORT II -445 CYRILLIC SMALL LETTER KHA -44B CYRILLIC SMALL LETTER YERI -44D CYRILLIC SMALL LETTER REVERSED E -44E CYRILLIC SMALL LETTER IU -44F CYRILLIC SMALL LETTER IA -454 CYRILLIC SMALL LETTER E -456 CYRILLIC SMALL LETTER I -476 CYRILLIC CAPITAL LETTER IZHITSA DOUBLE GRAVE -477 CYRILLIC SMALL LETTER IZHITSA DOUBLE GRAVE -478 CYRILLIC CAPITAL LETTER UK DIGRAPH -479 CYRILLIC SMALL LETTER UK DIGRAPH -47C CYRILLIC CAPITAL LETTER OMEGA TITLO -47D CYRILLIC SMALL LETTER OMEGA TITLO -483 CYRILLIC NON-SPACING TITLO -484 CYRILLIC NON-SPACING PALATALIZATION -485 CYRILLIC NON-SPACING DASIA PNEUMATA -486 CYRILLIC NON-SPACING PSILI PNEUMATA -490 CYRILLIC CAPITAL LETTER GE WITH UPTURN -491 CYRILLIC SMALL LETTER GE WITH UPTURN -492 CYRILLIC CAPITAL LETTER GE BAR -493 CYRILLIC SMALL LETTER GE BAR -494 CYRILLIC CAPITAL LETTER GE HOOK -495 CYRILLIC SMALL LETTER GE HOOK -496 CYRILLIC CAPITAL LETTER ZHE WITH RIGHT DESCENDER -497 CYRILLIC SMALL LETTER ZHE WITH RIGHT DESCENDER -498 CYRILLIC CAPITAL LETTER ZE CEDILLA -499 CYRILLIC SMALL LETTER ZE CEDILLA -49A CYRILLIC CAPITAL LETTER KA WITH RIGHT DESCENDER -49B CYRILLIC SMALL LETTER KA WITH RIGHT DESCENDER -49C CYRILLIC CAPITAL LETTER KA VERTICAL BAR -49D CYRILLIC SMALL LETTER KA VERTICAL BAR -49E CYRILLIC CAPITAL LETTER KA BAR -49F CYRILLIC SMALL LETTER KA BAR -4A0 CYRILLIC CAPITAL LETTER REVERSED GE KA -4A1 CYRILLIC SMALL LETTER REVERSED GE KA -4A2 CYRILLIC CAPITAL LETTER EN WITH RIGHT DESCENDER -4A3 CYRILLIC SMALL LETTER EN WITH RIGHT DESCENDER -4A4 CYRILLIC CAPITAL LETTER EN GE -4A5 CYRILLIC SMALL LETTER EN GE -4A6 CYRILLIC CAPITAL LETTER PE HOOK -4A7 CYRILLIC SMALL LETTER PE HOOK -4A8 CYRILLIC CAPITAL LETTER O HOOK -4A9 CYRILLIC SMALL LETTER O HOOK -4AA CYRILLIC CAPITAL LETTER ES CEDILLA -4AB CYRILLIC SMALL LETTER ES CEDILLA -4AC CYRILLIC CAPITAL LETTER TE WITH RIGHT DESCENDER -4AD CYRILLIC SMALL LETTER TE WITH RIGHT DESCENDER -4B0 CYRILLIC CAPITAL LETTER STRAIGHT U BAR -4B1 CYRILLIC SMALL LETTER STRAIGHT U BAR -4B2 CYRILLIC CAPITAL LETTER KHA WITH RIGHT DESCENDER -4B3 CYRILLIC SMALL LETTER KHA WITH RIGHT DESCENDER -4B4 CYRILLIC CAPITAL LETTER TE TSE -4B5 CYRILLIC SMALL LETTER TE TSE -4B6 CYRILLIC CAPITAL LETTER CHE WITH RIGHT DESCENDER -4B7 CYRILLIC SMALL LETTER CHE WITH RIGHT DESCENDER -4B8 CYRILLIC CAPITAL LETTER CHE VERTICAL BAR -4B9 CYRILLIC SMALL LETTER CHE VERTICAL BAR -4BA CYRILLIC CAPITAL LETTER H -4BB CYRILLIC SMALL LETTER H -4BC CYRILLIC CAPITAL LETTER IE HOOK -4BD CYRILLIC SMALL LETTER IE HOOK -4BE CYRILLIC CAPITAL LETTER IE HOOK OGONEK -4BF CYRILLIC SMALL LETTER IE HOOK OGONEK -4C0 CYRILLIC LETTER I -4C1 CYRILLIC CAPITAL LETTER SHORT ZHE -4C2 CYRILLIC SMALL LETTER SHORT ZHE -4C3 CYRILLIC CAPITAL LETTER KA HOOK -4C4 CYRILLIC SMALL LETTER KA HOOK -4C7 CYRILLIC CAPITAL LETTER EN HOOK -4C8 CYRILLIC SMALL LETTER EN HOOK -4CB CYRILLIC CAPITAL LETTER CHE WITH LEFT DESCENDER -4CC CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER -542 ARMENIAN CAPITAL LETTER LAD -55A ARMENIAN MODIFIER LETTER RIGHT HALF RING -572 ARMENIAN SMALL LETTER LAD -589 ARMENIAN PERIOD -5BC HEBREW POINT DAGESH -5C0 HEBREW POINT PASEQ -5F0 HEBREW LETTER DOUBLE VAV -5F1 HEBREW LETTER VAV YOD -5F2 HEBREW LETTER DOUBLE YOD -621 ARABIC LETTER HAMZAH -622 ARABIC LETTER MADDAH ON ALEF -623 ARABIC LETTER HAMZAH ON ALEF -624 ARABIC LETTER HAMZAH ON WAW -625 ARABIC LETTER HAMZAH UNDER ALEF -626 ARABIC LETTER HAMZAH ON YA -628 ARABIC LETTER BAA -629 ARABIC LETTER TAA MARBUTAH -62A ARABIC LETTER TAA -62B ARABIC LETTER THAA -62D ARABIC LETTER HAA -62E ARABIC LETTER KHAA -631 ARABIC LETTER RA -638 ARABIC LETTER DHAH -641 ARABIC LETTER FA -643 ARABIC LETTER CAF -647 ARABIC LETTER HA -649 ARABIC LETTER ALEF MAQSURAH -64A ARABIC LETTER YA -64E ARABIC FATHAH -64F ARABIC DAMMAH -650 ARABIC KASRAH -651 ARABIC SHADDAH -670 ARABIC ALEF ABOVE -671 ARABIC LETTER HAMZAT WASL ON ALEF -672 ARABIC LETTER WAVY HAMZAH ON ALEF -673 ARABIC LETTER WAVY HAMZAH UNDER ALEF -674 ARABIC LETTER HIGH HAMZAH -675 ARABIC LETTER HIGH HAMZAH ALEF -676 ARABIC LETTER HIGH HAMZAH WAW -677 ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH -678 ARABIC LETTER HIGH HAMZAH YA -679 ARABIC LETTER TAA WITH SMALL TAH -67A ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE -67B ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW -67C ARABIC LETTER TAA WITH RING -67D ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD -67E ARABIC LETTER TAA WITH THREE DOTS BELOW -67F ARABIC LETTER TAA WITH FOUR DOTS ABOVE -680 ARABIC LETTER BAA WITH FOUR DOTS BELOW -681 ARABIC LETTER HAMZAH ON HAA -682 ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE -683 ARABIC LETTER HAA WITH MIDDLE TWO DOTS -684 ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL -685 ARABIC LETTER HAA WITH THREE DOTS ABOVE -686 ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD -687 ARABIC LETTER HAA WITH MIDDLE FOUR DOTS -688 ARABIC LETTER DAL WITH SMALL TAH -68C ARABIC LETTER DAL WITH TWO DOTS ABOVE -68D ARABIC LETTER DAL WITH TWO DOTS BELOW -68E ARABIC LETTER DAL WITH THREE DOTS ABOVE -68F ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD -691 ARABIC LETTER RA WITH SMALL TAH -692 ARABIC LETTER RA WITH SMALL V -693 ARABIC LETTER RA WITH RING -694 ARABIC LETTER RA WITH DOT BELOW -695 ARABIC LETTER RA WITH SMALL V BELOW -696 ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE -697 ARABIC LETTER RA WITH TWO DOTS ABOVE -698 ARABIC LETTER RA WITH THREE DOTS ABOVE -699 ARABIC LETTER RA WITH FOUR DOTS ABOVE -6A1 ARABIC LETTER DOTLESS FA -6A2 ARABIC LETTER FA WITH DOT MOVED BELOW -6A3 ARABIC LETTER FA WITH DOT BELOW -6A4 ARABIC LETTER FA WITH THREE DOTS ABOVE -6A5 ARABIC LETTER FA WITH THREE DOTS BELOW -6A6 ARABIC LETTER FA WITH FOUR DOTS ABOVE -6A9 ARABIC LETTER OPEN CAF -6AA ARABIC LETTER SWASH CAF -6AB ARABIC LETTER CAF WITH RING -6AC ARABIC LETTER CAF WITH DOT ABOVE -6AD ARABIC LETTER CAF WITH THREE DOTS ABOVE -6AE ARABIC LETTER CAF WITH THREE DOTS BELOW -6B1 ARABIC LETTER GAF WITH TWO DOTS ABOVE -6B3 ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW -6BA ARABIC LETTER DOTLESS NOON -6BB ARABIC LETTER DOTLESS NOON WITH SMALL TAH -6BE ARABIC LETTER KNOTTED HA -6C0 ARABIC LETTER HAMZAH ON HA -6C1 ARABIC LETTER HA GOAL -6C2 ARABIC LETTER HAMZAH ON HA GOAL -6C3 ARABIC LETTER TAA MARBUTAH GOAL -6C5 ARABIC LETTER WAW WITH BAR -6C6 ARABIC LETTER WAW WITH SMALL V -6C7 ARABIC LETTER WAW WITH DAMMAH -6C8 ARABIC LETTER WAW WITH ALEF ABOVE -6C9 ARABIC LETTER WAW WITH INVERTED SMALL V -6CB ARABIC LETTER WAW WITH THREE DOTS ABOVE -6CC ARABIC LETTER DOTLESS YA -6CD ARABIC LETTER YA WITH TAIL -6CE ARABIC LETTER YA WITH SMALL V -6D0 ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW -6D1 ARABIC LETTER YA WITH THREE DOTS BELOW -6D2 ARABIC LETTER YA BARREE -6D3 ARABIC LETTER HAMZAH ON YA BARREE -6D4 ARABIC PERIOD -6F0 EASTERN ARABIC-INDIC DIGIT ZERO -6F1 EASTERN ARABIC-INDIC DIGIT ONE -6F2 EASTERN ARABIC-INDIC DIGIT TWO -6F3 EASTERN ARABIC-INDIC DIGIT THREE -6F4 EASTERN ARABIC-INDIC DIGIT FOUR -6F5 EASTERN ARABIC-INDIC DIGIT FIVE -6F6 EASTERN ARABIC-INDIC DIGIT SIX -6F7 EASTERN ARABIC-INDIC DIGIT SEVEN -6F8 EASTERN ARABIC-INDIC DIGIT EIGHT -6F9 EASTERN ARABIC-INDIC DIGIT NINE -9F1 BENGALI LETTER VA WITH LOWER DIAGONAL -E01 THAI LETTER KO KAI -E02 THAI LETTER KHO KHAI -E03 THAI LETTER KHO KHUAT -E04 THAI LETTER KHO KHWAI -E05 THAI LETTER KHO KHON -E06 THAI LETTER KHO RAKHANG -E07 THAI LETTER NGO NGU -E08 THAI LETTER CHO CHAN -E09 THAI LETTER CHO CHING -E0A THAI LETTER CHO CHANG -E0B THAI LETTER SO SO -E0C THAI LETTER CHO CHOE -E0D THAI LETTER YO YING -E0E THAI LETTER DO CHADA -E0F THAI LETTER TO PATAK -E10 THAI LETTER THO THAN -E11 THAI LETTER THO NANGMONTHO -E12 THAI LETTER THO PHUTHAO -E13 THAI LETTER NO NEN -E14 THAI LETTER DO DEK -E15 THAI LETTER TO TAO -E16 THAI LETTER THO THUNG -E17 THAI LETTER THO THAHAN -E18 THAI LETTER THO THONG -E19 THAI LETTER NO NU -E1A THAI LETTER BO BAIMAI -E1B THAI LETTER PO PLA -E1C THAI LETTER PHO PHUNG -E1D THAI LETTER FO FA -E1E THAI LETTER PHO PHAN -E1F THAI LETTER FO FAN -E20 THAI LETTER PHO SAMPHAO -E21 THAI LETTER MO MA -E22 THAI LETTER YO YAK -E23 THAI LETTER RO RUA -E24 THAI LETTER RU -E25 THAI LETTER LO LING -E26 THAI LETTER LU -E27 THAI LETTER WO WAEN -E28 THAI LETTER SO SALA -E29 THAI LETTER SO RUSI -E2A THAI LETTER SO SUA -E2B THAI LETTER HO HIP -E2C THAI LETTER LO CHULA -E2D THAI LETTER O ANG -E2E THAI LETTER HO NOK HUK -E2F THAI PAI YAN NOI -E30 THAI VOWEL SIGN SARA A -E31 THAI VOWEL SIGN MAI HAN-AKAT -E32 THAI VOWEL SIGN SARA AA -E33 THAI VOWEL SIGN SARA AM -E34 THAI VOWEL SIGN SARA I -E35 THAI VOWEL SIGN SARA II -E36 THAI VOWEL SIGN SARA UE -E37 THAI VOWEL SIGN SARA UEE -E38 THAI VOWEL SIGN SARA U -E39 THAI VOWEL SIGN SARA UU -E3A THAI VOWEL SIGN PHINTHU -E3F THAI BAHT SIGN -E40 THAI VOWEL SIGN SARA E -E41 THAI VOWEL SIGN SARA AE -E42 THAI VOWEL SIGN SARA O -E43 THAI VOWEL SIGN SARA MAI MUAN -E44 THAI VOWEL SIGN SARA MAI MALAI -E45 THAI LAK KHANG YAO -E46 THAI MAI YAMOK -E47 THAI VOWEL SIGN MAI TAI KHU -E48 THAI TONE MAI EK -E49 THAI TONE MAI THO -E4A THAI TONE MAI TRI -E4B THAI TONE MAI CHATTAWA -E4C THAI THANTHAKHAT -E4D THAI NIKKHAHIT -E4E THAI YAMAKKAN -E4F THAI FONGMAN -E5A THAI ANGKHANKHU -E5B THAI KHOMUT -F04 TIBETAN SINGLE ORNAMENT -F08 TIBETAN RGYANSHAD -F0B TIBETAN TSEG -F0D TIBETAN SHAD -F0E TIBETAN DOUBLE SHAD -F11 TIBETAN RINCHANPHUNGSHAD -F14 TIBETAN COMMA -F35 TIBETAN HONORIFIC UNDER RING -F37 TIBETAN UNDER RING -F39 TIBETAN LENITION MARK -F3C TIBETAN LEFT BRACE -F3D TIBETAN RIGHT BRACE -F4A TIBETAN LETTER REVERSED TA -F4B TIBETAN LETTER REVERSED THA -F4C TIBETAN LETTER REVERSED DA -F4E TIBETAN LETTER REVERSED NA -F60 TIBETAN LETTER AA -F65 TIBETAN LETTER REVERSED SHA -F7B TIBETAN VOWEL SIGN AI -F7D TIBETAN VOWEL SIGN AU -F7E TIBETAN ANUSVARA -F7F TIBETAN VISARGA -F80 TIBETAN VOWEL SIGN SHORT I -F82 TIBETAN CANDRABINDU WITH ORNAMENT -F83 TIBETAN CANDRABINDU -F84 TIBETAN VIRAMA -F85 TIBETAN CHUCHENYIGE -10D0 GEORGIAN SMALL LETTER AN -10D1 GEORGIAN SMALL LETTER BAN -10D2 GEORGIAN SMALL LETTER GAN -10D3 GEORGIAN SMALL LETTER DON -10D4 GEORGIAN SMALL LETTER EN -10D5 GEORGIAN SMALL LETTER VIN -10D6 GEORGIAN SMALL LETTER ZEN -10D7 GEORGIAN SMALL LETTER TAN -10D8 GEORGIAN SMALL LETTER IN -10D9 GEORGIAN SMALL LETTER KAN -10DA GEORGIAN SMALL LETTER LAS -10DB GEORGIAN SMALL LETTER MAN -10DC GEORGIAN SMALL LETTER NAR -10DD GEORGIAN SMALL LETTER ON -10DE GEORGIAN SMALL LETTER PAR -10DF GEORGIAN SMALL LETTER ZHAR -10E0 GEORGIAN SMALL LETTER RAE -10E1 GEORGIAN SMALL LETTER SAN -10E2 GEORGIAN SMALL LETTER TAR -10E3 GEORGIAN SMALL LETTER UN -10E4 GEORGIAN SMALL LETTER PHAR -10E5 GEORGIAN SMALL LETTER KHAR -10E6 GEORGIAN SMALL LETTER GHAN -10E7 GEORGIAN SMALL LETTER QAR -10E8 GEORGIAN SMALL LETTER SHIN -10E9 GEORGIAN SMALL LETTER CHIN -10EA GEORGIAN SMALL LETTER CAN -10EB GEORGIAN SMALL LETTER JIL -10EC GEORGIAN SMALL LETTER CIL -10ED GEORGIAN SMALL LETTER CHAR -10EE GEORGIAN SMALL LETTER XAN -10EF GEORGIAN SMALL LETTER JHAN -10F0 GEORGIAN SMALL LETTER HAE -10F1 GEORGIAN SMALL LETTER HE -10F2 GEORGIAN SMALL LETTER HIE -10F3 GEORGIAN SMALL LETTER WE -10F4 GEORGIAN SMALL LETTER HAR -10F5 GEORGIAN SMALL LETTER HOE -10F6 GEORGIAN SMALL LETTER FI -2015 QUOTATION DASH -2016 DOUBLE VERTICAL BAR -2017 SPACING DOUBLE UNDERSCORE -2018 SINGLE TURNED COMMA QUOTATION MARK -2019 SINGLE COMMA QUOTATION MARK -201A LOW SINGLE COMMA QUOTATION MARK -201B SINGLE REVERSED COMMA QUOTATION MARK -201C DOUBLE TURNED COMMA QUOTATION MARK -201D DOUBLE COMMA QUOTATION MARK -201E LOW DOUBLE COMMA QUOTATION MARK -201F DOUBLE REVERSED COMMA QUOTATION MARK -2039 LEFT POINTING SINGLE GUILLEMET -203A RIGHT POINTING SINGLE GUILLEMET -203E SPACING OVERSCORE -2070 SUPERSCRIPT DIGIT ZERO -2074 SUPERSCRIPT DIGIT FOUR -2075 SUPERSCRIPT DIGIT FIVE -2076 SUPERSCRIPT DIGIT SIX -2077 SUPERSCRIPT DIGIT SEVEN -2078 SUPERSCRIPT DIGIT EIGHT -2079 SUPERSCRIPT DIGIT NINE -207B SUPERSCRIPT HYPHEN-MINUS -207D SUPERSCRIPT OPENING PARENTHESIS -207E SUPERSCRIPT CLOSING PARENTHESIS -2080 SUBSCRIPT DIGIT ZERO -2081 SUBSCRIPT DIGIT ONE -2082 SUBSCRIPT DIGIT TWO -2083 SUBSCRIPT DIGIT THREE -2084 SUBSCRIPT DIGIT FOUR -2085 SUBSCRIPT DIGIT FIVE -2086 SUBSCRIPT DIGIT SIX -2087 SUBSCRIPT DIGIT SEVEN -2088 SUBSCRIPT DIGIT EIGHT -2089 SUBSCRIPT DIGIT NINE -208B SUBSCRIPT HYPHEN-MINUS -208D SUBSCRIPT OPENING PARENTHESIS -208E SUBSCRIPT CLOSING PARENTHESIS -20D0 NON-SPACING LEFT HARPOON ABOVE -20D1 NON-SPACING RIGHT HARPOON ABOVE -20D2 NON-SPACING LONG VERTICAL BAR OVERLAY -20D3 NON-SPACING SHORT VERTICAL BAR OVERLAY -20D4 NON-SPACING ANTICLOCKWISE ARROW ABOVE -20D5 NON-SPACING CLOCKWISE ARROW ABOVE -20D6 NON-SPACING LEFT ARROW ABOVE -20D7 NON-SPACING RIGHT ARROW ABOVE -20D8 NON-SPACING RING OVERLAY -20D9 NON-SPACING CLOCKWISE RING OVERLAY -20DA NON-SPACING ANTICLOCKWISE RING OVERLAY -20DB NON-SPACING THREE DOTS ABOVE -20DC NON-SPACING FOUR DOTS ABOVE -20DD ENCLOSING CIRCLE -20DE ENCLOSING SQUARE -20DF ENCLOSING DIAMOND -20E0 ENCLOSING CIRCLE SLASH -20E1 NON-SPACING LEFT RIGHT ARROW ABOVE -2102 DOUBLE-STRUCK C -2103 DEGREES CENTIGRADE -2104 C L SYMBOL -2107 EULERS -2109 DEGREES FAHRENHEIT -210B SCRIPT H -210C BLACK-LETTER H -210D DOUBLE-STRUCK H -210F PLANCK CONSTANT OVER 2 PI -2110 SCRIPT I -2111 BLACK-LETTER I -2112 SCRIPT L -2115 DOUBLE-STRUCK N -2116 NUMERO -2118 SCRIPT P -2119 DOUBLE-STRUCK P -211A DOUBLE-STRUCK Q -211B SCRIPT R -211C BLACK-LETTER R -211D DOUBLE-STRUCK R -2121 T E L SYMBOL -2122 TRADEMARK -2124 DOUBLE-STRUCK Z -2125 OUNCE -2126 OHM -2127 MHO -2128 BLACK-LETTER Z -212A DEGREES KELVIN -212B ANGSTROM UNIT -212C SCRIPT B -212D BLACK-LETTER C -2130 SCRIPT E -2131 SCRIPT F -2132 TURNED F -2133 SCRIPT M -2135 FIRST TRANSFINITE CARDINAL -2136 SECOND TRANSFINITE CARDINAL -2137 THIRD TRANSFINITE CARDINAL -2138 FOURTH TRANSFINITE CARDINAL -2153 FRACTION ONE THIRD -2154 FRACTION TWO THIRDS -2155 FRACTION ONE FIFTH -2156 FRACTION TWO FIFTHS -2157 FRACTION THREE FIFTHS -2158 FRACTION FOUR FIFTHS -2159 FRACTION ONE SIXTH -215A FRACTION FIVE SIXTHS -215B FRACTION ONE EIGHTH -215C FRACTION THREE EIGHTHS -215D FRACTION FIVE EIGHTHS -215E FRACTION SEVEN EIGHTHS -2190 LEFT ARROW -2191 UP ARROW -2192 RIGHT ARROW -2193 DOWN ARROW -2196 UPPER LEFT ARROW -2197 UPPER RIGHT ARROW -2198 LOWER RIGHT ARROW -2199 LOWER LEFT ARROW -219A LEFT ARROW WITH STROKE -219B RIGHT ARROW WITH STROKE -219C LEFT WAVE ARROW -219D RIGHT WAVE ARROW -219E LEFT TWO HEADED ARROW -219F UP TWO HEADED ARROW -21A0 RIGHT TWO HEADED ARROW -21A1 DOWN TWO HEADED ARROW -21A2 LEFT ARROW WITH TAIL -21A3 RIGHT ARROW WITH TAIL -21A4 LEFT ARROW FROM BAR -21A5 UP ARROW FROM BAR -21A6 RIGHT ARROW FROM BAR -21A7 DOWN ARROW FROM BAR -21A9 LEFT ARROW WITH HOOK -21AA RIGHT ARROW WITH HOOK -21AB LEFT ARROW WITH LOOP -21AC RIGHT ARROW WITH LOOP -21AF DOWN ZIGZAG ARROW -21B0 UP ARROW WITH TIP LEFT -21B1 UP ARROW WITH TIP RIGHT -21B2 DOWN ARROW WITH TIP LEFT -21B3 DOWN ARROW WITH TIP RIGHT -21B4 RIGHT ARROW WITH CORNER DOWN -21B5 DOWN ARROW WITH CORNER LEFT -21B8 UPPER LEFT ARROW TO LONG BAR -21B9 LEFT ARROW TO BAR OVER RIGHT ARROW TO BAR -21BC LEFT HARPOON WITH BARB UP -21BD LEFT HARPOON WITH BARB DOWN -21BE UP HARPOON WITH BARB RIGHT -21BF UP HARPOON WITH BARB LEFT -21C0 RIGHT HARPOON WITH BARB UP -21C1 RIGHT HARPOON WITH BARB DOWN -21C2 DOWN HARPOON WITH BARB RIGHT -21C3 DOWN HARPOON WITH BARB LEFT -21C4 RIGHT ARROW OVER LEFT ARROW -21C5 UP ARROW LEFT OF DOWN ARROW -21C6 LEFT ARROW OVER RIGHT ARROW -21C7 LEFT PAIRED ARROWS -21C8 UP PAIRED ARROWS -21C9 RIGHT PAIRED ARROWS -21CA DOWN PAIRED ARROWS -21CB LEFT HARPOON OVER RIGHT HARPOON -21CC RIGHT HARPOON OVER LEFT HARPOON -21CD LEFT DOUBLE ARROW WITH STROKE -21CF RIGHT DOUBLE ARROW WITH STROKE -21D0 LEFT DOUBLE ARROW -21D1 UP DOUBLE ARROW -21D2 RIGHT DOUBLE ARROW -21D3 DOWN DOUBLE ARROW -21D6 UPPER LEFT DOUBLE ARROW -21D7 UPPER RIGHT DOUBLE ARROW -21D8 LOWER RIGHT DOUBLE ARROW -21D9 LOWER LEFT DOUBLE ARROW -21DA LEFT TRIPLE ARROW -21DB RIGHT TRIPLE ARROW -21DC LEFT SQUIGGLE ARROW -21DD RIGHT SQUIGGLE ARROW -21DE UP ARROW WITH DOUBLE STROKE -21DF DOWN ARROW WITH DOUBLE STROKE -21E0 LEFT DASHED ARROW -21E1 UP DASHED ARROW -21E2 RIGHT DASHED ARROW -21E3 DOWN DASHED ARROW -21E4 LEFT ARROW TO BAR -21E5 RIGHT ARROW TO BAR -21E6 WHITE LEFT ARROW -21E7 WHITE UP ARROW -21E8 WHITE RIGHT ARROW -21E9 WHITE DOWN ARROW -21EA WHITE UP ARROW FROM BAR -2254 COLON EQUAL -2255 EQUAL COLON -2264 LESS THAN OR EQUAL TO -2265 GREATER THAN OR EQUAL TO -2266 LESS THAN OVER EQUAL TO -2267 GREATER THAN OVER EQUAL TO -2268 LESS THAN BUT NOT EQUAL TO -2269 GREATER THAN BUT NOT EQUAL TO -226A MUCH LESS THAN -226B MUCH GREATER THAN -226E NOT LESS THAN -226F NOT GREATER THAN -2270 NEITHER LESS THAN NOR EQUAL TO -2271 NEITHER GREATER THAN NOR EQUAL TO -2272 LESS THAN OR EQUIVALENT TO -2273 GREATER THAN OR EQUIVALENT TO -2274 NEITHER LESS THAN NOR EQUIVALENT TO -2275 NEITHER GREATER THAN NOR EQUIVALENT TO -2276 LESS THAN OR GREATER THAN -2277 GREATER THAN OR LESS THAN -2278 NEITHER LESS THAN NOR GREATER THAN -2279 NEITHER GREATER THAN NOR LESS THAN -228A SUBSET OF OR NOT EQUAL TO -228B SUPERSET OF OR NOT EQUAL TO -22D6 LESS THAN WITH DOT -22D7 GREATER THAN WITH DOT -22D8 VERY MUCH LESS THAN -22D9 VERY MUCH GREATER THAN -22DA LESS THAN EQUAL TO OR GREATER THAN -22DB GREATER THAN EQUAL TO OR LESS THAN -22DC EQUAL TO OR LESS THAN -22DD EQUAL TO OR GREATER THAN -22E6 LESS THAN BUT NOT EQUIVALENT TO -22E7 GREATER THAN BUT NOT EQUIVALENT TO -2318 COMMAND KEY -2324 ENTER KEY -2326 DELETE TO THE RIGHT KEY -2327 CLEAR KEY -2329 BRA -232A KET -232B DELETE TO THE LEFT KEY -2400 GRAPHIC FOR NULL -2401 GRAPHIC FOR START OF HEADING -2402 GRAPHIC FOR START OF TEXT -2403 GRAPHIC FOR END OF TEXT -2404 GRAPHIC FOR END OF TRANSMISSION -2405 GRAPHIC FOR ENQUIRY -2406 GRAPHIC FOR ACKNOWLEDGE -2407 GRAPHIC FOR BELL -2408 GRAPHIC FOR BACKSPACE -2409 GRAPHIC FOR HORIZONTAL TABULATION -240A GRAPHIC FOR LINE FEED -240B GRAPHIC FOR VERTICAL TABULATION -240C GRAPHIC FOR FORM FEED -240D GRAPHIC FOR CARRIAGE RETURN -240E GRAPHIC FOR SHIFT OUT -240F GRAPHIC FOR SHIFT IN -2410 GRAPHIC FOR DATA LINK ESCAPE -2411 GRAPHIC FOR DEVICE CONTROL ONE -2412 GRAPHIC FOR DEVICE CONTROL TWO -2413 GRAPHIC FOR DEVICE CONTROL THREE -2414 GRAPHIC FOR DEVICE CONTROL FOUR -2415 GRAPHIC FOR NEGATIVE ACKNOWLEDGE -2416 GRAPHIC FOR SYNCHRONOUS IDLE -2417 GRAPHIC FOR END OF TRANSMISSION BLOCK -2418 GRAPHIC FOR CANCEL -2419 GRAPHIC FOR END OF MEDIUM -241A GRAPHIC FOR SUBSTITUTE -241B GRAPHIC FOR ESCAPE -241C GRAPHIC FOR FILE SEPARATOR -241D GRAPHIC FOR GROUP SEPARATOR -241E GRAPHIC FOR RECORD SEPARATOR -241F GRAPHIC FOR UNIT SEPARATOR -2420 GRAPHIC FOR SPACE -2421 GRAPHIC FOR DELETE -2422 BLANK -2424 GRAPHIC FOR NEWLINE -2488 DIGIT ONE PERIOD -2489 DIGIT TWO PERIOD -248A DIGIT THREE PERIOD -248B DIGIT FOUR PERIOD -248C DIGIT FIVE PERIOD -248D DIGIT SIX PERIOD -248E DIGIT SEVEN PERIOD -248F DIGIT EIGHT PERIOD -2490 DIGIT NINE PERIOD -2491 NUMBER TEN PERIOD -2492 NUMBER ELEVEN PERIOD -2493 NUMBER TWELVE PERIOD -2494 NUMBER THIRTEEN PERIOD -2495 NUMBER FOURTEEN PERIOD -2496 NUMBER FIFTEEN PERIOD -2497 NUMBER SIXTEEN PERIOD -2498 NUMBER SEVENTEEN PERIOD -2499 NUMBER EIGHTEEN PERIOD -249A NUMBER NINETEEN PERIOD -249B NUMBER TWENTY PERIOD -2500 FORMS LIGHT HORIZONTAL -2501 FORMS HEAVY HORIZONTAL -2502 FORMS LIGHT VERTICAL -2503 FORMS HEAVY VERTICAL -2504 FORMS LIGHT TRIPLE DASH HORIZONTAL -2505 FORMS HEAVY TRIPLE DASH HORIZONTAL -2506 FORMS LIGHT TRIPLE DASH VERTICAL -2507 FORMS HEAVY TRIPLE DASH VERTICAL -2508 FORMS LIGHT QUADRUPLE DASH HORIZONTAL -2509 FORMS HEAVY QUADRUPLE DASH HORIZONTAL -250A FORMS LIGHT QUADRUPLE DASH VERTICAL -250B FORMS HEAVY QUADRUPLE DASH VERTICAL -250C FORMS LIGHT DOWN AND RIGHT -250D FORMS DOWN LIGHT AND RIGHT HEAVY -250E FORMS DOWN HEAVY AND RIGHT LIGHT -250F FORMS HEAVY DOWN AND RIGHT -2510 FORMS LIGHT DOWN AND LEFT -2511 FORMS DOWN LIGHT AND LEFT HEAVY -2512 FORMS DOWN HEAVY AND LEFT LIGHT -2513 FORMS HEAVY DOWN AND LEFT -2514 FORMS LIGHT UP AND RIGHT -2515 FORMS UP LIGHT AND RIGHT HEAVY -2516 FORMS UP HEAVY AND RIGHT LIGHT -2517 FORMS HEAVY UP AND RIGHT -2518 FORMS LIGHT UP AND LEFT -2519 FORMS UP LIGHT AND LEFT HEAVY -251A FORMS UP HEAVY AND LEFT LIGHT -251B FORMS HEAVY UP AND LEFT -251C FORMS LIGHT VERTICAL AND RIGHT -251D FORMS VERTICAL LIGHT AND RIGHT HEAVY -251E FORMS UP HEAVY AND RIGHT DOWN LIGHT -251F FORMS DOWN HEAVY AND RIGHT UP LIGHT -2520 FORMS VERTICAL HEAVY AND RIGHT LIGHT -2521 FORMS DOWN LIGHT AND RIGHT UP HEAVY -2522 FORMS UP LIGHT AND RIGHT DOWN HEAVY -2523 FORMS HEAVY VERTICAL AND RIGHT -2524 FORMS LIGHT VERTICAL AND LEFT -2525 FORMS VERTICAL LIGHT AND LEFT HEAVY -2526 FORMS UP HEAVY AND LEFT DOWN LIGHT -2527 FORMS DOWN HEAVY AND LEFT UP LIGHT -2528 FORMS VERTICAL HEAVY AND LEFT LIGHT -2529 FORMS DOWN LIGHT AND LEFT UP HEAVY -252A FORMS UP LIGHT AND LEFT DOWN HEAVY -252B FORMS HEAVY VERTICAL AND LEFT -252C FORMS LIGHT DOWN AND HORIZONTAL -252D FORMS LEFT HEAVY AND RIGHT DOWN LIGHT -252E FORMS RIGHT HEAVY AND LEFT DOWN LIGHT -252F FORMS DOWN LIGHT AND HORIZONTAL HEAVY -2530 FORMS DOWN HEAVY AND HORIZONTAL LIGHT -2531 FORMS RIGHT LIGHT AND LEFT DOWN HEAVY -2532 FORMS LEFT LIGHT AND RIGHT DOWN HEAVY -2533 FORMS HEAVY DOWN AND HORIZONTAL -2534 FORMS LIGHT UP AND HORIZONTAL -2535 FORMS LEFT HEAVY AND RIGHT UP LIGHT -2536 FORMS RIGHT HEAVY AND LEFT UP LIGHT -2537 FORMS UP LIGHT AND HORIZONTAL HEAVY -2538 FORMS UP HEAVY AND HORIZONTAL LIGHT -2539 FORMS RIGHT LIGHT AND LEFT UP HEAVY -253A FORMS LEFT LIGHT AND RIGHT UP HEAVY -253B FORMS HEAVY UP AND HORIZONTAL -253C FORMS LIGHT VERTICAL AND HORIZONTAL -253D FORMS LEFT HEAVY AND RIGHT VERTICAL LIGHT -253E FORMS RIGHT HEAVY AND LEFT VERTICAL LIGHT -253F FORMS VERTICAL LIGHT AND HORIZONTAL HEAVY -2540 FORMS UP HEAVY AND DOWN HORIZONTAL LIGHT -2541 FORMS DOWN HEAVY AND UP HORIZONTAL LIGHT -2542 FORMS VERTICAL HEAVY AND HORIZONTAL LIGHT -2543 FORMS LEFT UP HEAVY AND RIGHT DOWN LIGHT -2544 FORMS RIGHT UP HEAVY AND LEFT DOWN LIGHT -2545 FORMS LEFT DOWN HEAVY AND RIGHT UP LIGHT -2546 FORMS RIGHT DOWN HEAVY AND LEFT UP LIGHT -2547 FORMS DOWN LIGHT AND UP HORIZONTAL HEAVY -2548 FORMS UP LIGHT AND DOWN HORIZONTAL HEAVY -2549 FORMS RIGHT LIGHT AND LEFT VERTICAL HEAVY -254A FORMS LEFT LIGHT AND RIGHT VERTICAL HEAVY -254B FORMS HEAVY VERTICAL AND HORIZONTAL -254C FORMS LIGHT DOUBLE DASH HORIZONTAL -254D FORMS HEAVY DOUBLE DASH HORIZONTAL -254E FORMS LIGHT DOUBLE DASH VERTICAL -254F FORMS HEAVY DOUBLE DASH VERTICAL -2550 FORMS DOUBLE HORIZONTAL -2551 FORMS DOUBLE VERTICAL -2552 FORMS DOWN SINGLE AND RIGHT DOUBLE -2553 FORMS DOWN DOUBLE AND RIGHT SINGLE -2554 FORMS DOUBLE DOWN AND RIGHT -2555 FORMS DOWN SINGLE AND LEFT DOUBLE -2556 FORMS DOWN DOUBLE AND LEFT SINGLE -2557 FORMS DOUBLE DOWN AND LEFT -2558 FORMS UP SINGLE AND RIGHT DOUBLE -2559 FORMS UP DOUBLE AND RIGHT SINGLE -255A FORMS DOUBLE UP AND RIGHT -255B FORMS UP SINGLE AND LEFT DOUBLE -255C FORMS UP DOUBLE AND LEFT SINGLE -255D FORMS DOUBLE UP AND LEFT -255E FORMS VERTICAL SINGLE AND RIGHT DOUBLE -255F FORMS VERTICAL DOUBLE AND RIGHT SINGLE -2560 FORMS DOUBLE VERTICAL AND RIGHT -2561 FORMS VERTICAL SINGLE AND LEFT DOUBLE -2562 FORMS VERTICAL DOUBLE AND LEFT SINGLE -2563 FORMS DOUBLE VERTICAL AND LEFT -2564 FORMS DOWN SINGLE AND HORIZONTAL DOUBLE -2565 FORMS DOWN DOUBLE AND HORIZONTAL SINGLE -2566 FORMS DOUBLE DOWN AND HORIZONTAL -2567 FORMS UP SINGLE AND HORIZONTAL DOUBLE -2568 FORMS UP DOUBLE AND HORIZONTAL SINGLE -2569 FORMS DOUBLE UP AND HORIZONTAL -256A FORMS VERTICAL SINGLE AND HORIZONTAL DOUBLE -256B FORMS VERTICAL DOUBLE AND HORIZONTAL SINGLE -256C FORMS DOUBLE VERTICAL AND HORIZONTAL -256D FORMS LIGHT ARC DOWN AND RIGHT -256E FORMS LIGHT ARC DOWN AND LEFT -256F FORMS LIGHT ARC UP AND LEFT -2570 FORMS LIGHT ARC UP AND RIGHT -2571 FORMS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT -2572 FORMS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT -2573 FORMS LIGHT DIAGONAL CROSS -2574 FORMS LIGHT LEFT -2575 FORMS LIGHT UP -2576 FORMS LIGHT RIGHT -2577 FORMS LIGHT DOWN -2578 FORMS HEAVY LEFT -2579 FORMS HEAVY UP -257A FORMS HEAVY RIGHT -257B FORMS HEAVY DOWN -257C FORMS LIGHT LEFT AND HEAVY RIGHT -257D FORMS LIGHT UP AND HEAVY DOWN -257E FORMS HEAVY LEFT AND LIGHT RIGHT -257F FORMS HEAVY UP AND LIGHT DOWN -2586 LOWER THREE QUARTER BLOCK -258A LEFT THREE QUARTER BLOCK -25B2 BLACK UP POINTING TRIANGLE -25B3 WHITE UP POINTING TRIANGLE -25B4 BLACK UP POINTING SMALL TRIANGLE -25B5 WHITE UP POINTING SMALL TRIANGLE -25B6 BLACK RIGHT POINTING TRIANGLE -25B7 WHITE RIGHT POINTING TRIANGLE -25B8 BLACK RIGHT POINTING SMALL TRIANGLE -25B9 WHITE RIGHT POINTING SMALL TRIANGLE -25BA BLACK RIGHT POINTING POINTER -25BB WHITE RIGHT POINTING POINTER -25BC BLACK DOWN POINTING TRIANGLE -25BD WHITE DOWN POINTING TRIANGLE -25BE BLACK DOWN POINTING SMALL TRIANGLE -25BF WHITE DOWN POINTING SMALL TRIANGLE -25C0 BLACK LEFT POINTING TRIANGLE -25C1 WHITE LEFT POINTING TRIANGLE -25C2 BLACK LEFT POINTING SMALL TRIANGLE -25C3 WHITE LEFT POINTING SMALL TRIANGLE -25C4 BLACK LEFT POINTING POINTER -25C5 WHITE LEFT POINTING POINTER -25EC WHITE UP POINTING TRIANGLE WITH DOT -25ED UP POINTING TRIANGLE WITH LEFT HALF BLACK -25EE UP POINTING TRIANGLE WITH RIGHT HALF BLACK -262B SYMBOL OF IRAN -266B BARRED EIGHTH NOTES -266C BARRED SIXTEENTH NOTES -266D FLAT -266E NATURAL -266F SHARP -271B OPEN CENTER CROSS -271C HEAVY OPEN CENTER CROSS -272B OPEN CENTER BLACK STAR -272C BLACK CENTER WHITE STAR -2732 OPEN CENTER ASTERISK -273C OPEN CENTER TEARDROP-SPOKED ASTERISK -2742 CIRCLED OPEN CENTER EIGHT POINTED STAR -2776 INVERSE CIRCLED DIGIT ONE -2777 INVERSE CIRCLED DIGIT TWO -2778 INVERSE CIRCLED DIGIT THREE -2779 INVERSE CIRCLED DIGIT FOUR -277A INVERSE CIRCLED DIGIT FIVE -277B INVERSE CIRCLED DIGIT SIX -277C INVERSE CIRCLED DIGIT SEVEN -277D INVERSE CIRCLED DIGIT EIGHT -277E INVERSE CIRCLED DIGIT NINE -277F INVERSE CIRCLED NUMBER TEN -2780 CIRCLED SANS-SERIF DIGIT ONE -2781 CIRCLED SANS-SERIF DIGIT TWO -2782 CIRCLED SANS-SERIF DIGIT THREE -2783 CIRCLED SANS-SERIF DIGIT FOUR -2784 CIRCLED SANS-SERIF DIGIT FIVE -2785 CIRCLED SANS-SERIF DIGIT SIX -2786 CIRCLED SANS-SERIF DIGIT SEVEN -2787 CIRCLED SANS-SERIF DIGIT EIGHT -2788 CIRCLED SANS-SERIF DIGIT NINE -2789 CIRCLED SANS-SERIF NUMBER TEN -278A INVERSE CIRCLED SANS-SERIF DIGIT ONE -278B INVERSE CIRCLED SANS-SERIF DIGIT TWO -278C INVERSE CIRCLED SANS-SERIF DIGIT THREE -278D INVERSE CIRCLED SANS-SERIF DIGIT FOUR -278E INVERSE CIRCLED SANS-SERIF DIGIT FIVE -278F INVERSE CIRCLED SANS-SERIF DIGIT SIX -2790 INVERSE CIRCLED SANS-SERIF DIGIT SEVEN -2791 INVERSE CIRCLED SANS-SERIF DIGIT EIGHT -2792 INVERSE CIRCLED SANS-SERIF DIGIT NINE -2793 INVERSE CIRCLED SANS-SERIF NUMBER TEN -2794 HEAVY WIDE-HEADED RIGHT ARROW -2798 HEAVY LOWER RIGHT ARROW -2799 HEAVY RIGHT ARROW -279A HEAVY UPPER RIGHT ARROW -279B DRAFTING POINT RIGHT ARROW -279C HEAVY ROUND-TIPPED RIGHT ARROW -279D TRIANGLE-HEADED RIGHT ARROW -279E HEAVY TRIANGLE-HEADED RIGHT ARROW -279F DASHED TRIANGLE-HEADED RIGHT ARROW -27A0 HEAVY DASHED TRIANGLE-HEADED RIGHT ARROW -27A1 BLACK RIGHT ARROW -27A2 THREE-D TOP-LIGHTED RIGHT ARROWHEAD -27A3 THREE-D BOTTOM-LIGHTED RIGHT ARROWHEAD -27A4 BLACK RIGHT ARROWHEAD -27A5 HEAVY BLACK CURVED DOWN AND RIGHT ARROW -27A6 HEAVY BLACK CURVED UP AND RIGHT ARROW -27A7 SQUAT BLACK RIGHT ARROW -27A8 HEAVY CONCAVE-POINTED BLACK RIGHT ARROW -27A9 RIGHT-SHADED WHITE RIGHT ARROW -27AA LEFT-SHADED WHITE RIGHT ARROW -27AB BACK-TILTED SHADOWED WHITE RIGHT ARROW -27AC FRONT-TILTED SHADOWED WHITE RIGHT ARROW -27AD HEAVY LOWER RIGHT-SHADOWED WHITE RIGHT ARROW -27AE HEAVY UPPER RIGHT-SHADOWED WHITE RIGHT ARROW -27AF NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHT ARROW -27B1 NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHT ARROW -27B2 CIRCLED HEAVY WHITE RIGHT ARROW -27B3 WHITE-FEATHERED RIGHT ARROW -27B4 BLACK-FEATHERED LOWER RIGHT ARROW -27B5 BLACK-FEATHERED RIGHT ARROW -27B6 BLACK-FEATHERED UPPER RIGHT ARROW -27B7 HEAVY BLACK-FEATHERED LOWER RIGHT ARROW -27B8 HEAVY BLACK-FEATHERED RIGHT ARROW -27B9 HEAVY BLACK-FEATHERED UPPER RIGHT ARROW -27BA TEARDROP-BARBED RIGHT ARROW -27BB HEAVY TEARDROP-SHANKED RIGHT ARROW -27BC WEDGE-TAILED RIGHT ARROW -27BD HEAVY WEDGE-TAILED RIGHT ARROW -27BE OPEN-OUTLINED RIGHT ARROW -3002 IDEOGRAPHIC PERIOD -3008 OPENING ANGLE BRACKET -3009 CLOSING ANGLE BRACKET -300A OPENING DOUBLE ANGLE BRACKET -300B CLOSING DOUBLE ANGLE BRACKET -300C OPENING CORNER BRACKET -300D CLOSING CORNER BRACKET -300E OPENING WHITE CORNER BRACKET -300F CLOSING WHITE CORNER BRACKET -3010 OPENING BLACK LENTICULAR BRACKET -3011 CLOSING BLACK LENTICULAR BRACKET -3014 OPENING TORTOISE SHELL BRACKET -3015 CLOSING TORTOISE SHELL BRACKET -3016 OPENING WHITE LENTICULAR BRACKET -3017 CLOSING WHITE LENTICULAR BRACKET -3018 OPENING WHITE TORTOISE SHELL BRACKET -3019 CLOSING WHITE TORTOISE SHELL BRACKET -301A OPENING WHITE SQUARE BRACKET -301B CLOSING WHITE SQUARE BRACKET -3099 NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK -309A NON-SPACING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK -3131 HANGUL LETTER GIYEOG -3132 HANGUL LETTER SSANG GIYEOG -3133 HANGUL LETTER GIYEOG SIOS -3135 HANGUL LETTER NIEUN JIEUJ -3136 HANGUL LETTER NIEUN HIEUH -3137 HANGUL LETTER DIGEUD -3138 HANGUL LETTER SSANG DIGEUD -3139 HANGUL LETTER LIEUL -313A HANGUL LETTER LIEUL GIYEOG -313B HANGUL LETTER LIEUL MIEUM -313C HANGUL LETTER LIEUL BIEUB -313D HANGUL LETTER LIEUL SIOS -313E HANGUL LETTER LIEUL TIEUT -313F HANGUL LETTER LIEUL PIEUP -3140 HANGUL LETTER LIEUL HIEUH -3142 HANGUL LETTER BIEUB -3143 HANGUL LETTER SSANG BIEUB -3144 HANGUL LETTER BIEUB SIOS -3146 HANGUL LETTER SSANG SIOS -3148 HANGUL LETTER JIEUJ -3149 HANGUL LETTER SSANG JIEUJ -314A HANGUL LETTER CIEUC -314B HANGUL LETTER KIYEOK -314C HANGUL LETTER TIEUT -314D HANGUL LETTER PIEUP -3164 HANGUL CAE OM -3165 HANGUL LETTER SSANG NIEUN -3166 HANGUL LETTER NIEUN DIGEUD -3167 HANGUL LETTER NIEUN SIOS -3168 HANGUL LETTER NIEUN BAN CHI EUM -3169 HANGUL LETTER LIEUL GIYEOG SIOS -316A HANGUL LETTER LIEUL DIGEUD -316B HANGUL LETTER LIEUL BIEUB SIOS -316C HANGUL LETTER LIEUL BAN CHI EUM -316D HANGUL LETTER LIEUL YEOLIN HIEUH -316E HANGUL LETTER MIEUM BIEUB -316F HANGUL LETTER MIEUM SIOS -3170 HANGUL LETTER BIEUB BAN CHI EUM -3171 HANGUL LETTER MIEUM SUN GYEONG EUM -3172 HANGUL LETTER BIEUB GIYEOG -3173 HANGUL LETTER BIEUB DIGEUD -3174 HANGUL LETTER BIEUB SIOS GIYEOG -3175 HANGUL LETTER BIEUB SIOS DIGEUD -3176 HANGUL LETTER BIEUB JIEUJ -3177 HANGUL LETTER BIEUB TIEUT -3178 HANGUL LETTER BIEUB SUN GYEONG EUM -3179 HANGUL LETTER SSANG BIEUB SUN GYEONG EUM -317A HANGUL LETTER SIOS GIYEOG -317B HANGUL LETTER SIOS NIEUN -317C HANGUL LETTER SIOS DIGEUD -317D HANGUL LETTER SIOS BIEUB -317E HANGUL LETTER SIOS JIEUJ -317F HANGUL LETTER BAN CHI EUM -3180 HANGUL LETTER SSANG IEUNG -3181 HANGUL LETTER NGIEUNG -3182 HANGUL LETTER NGIEUNG SIOS -3183 HANGUL LETTER NGIEUNG BAN CHI EUM -3184 HANGUL LETTER PIEUP SUN GYEONG EUM -3185 HANGUL LETTER SSANG HIEUH -3186 HANGUL LETTER YEOLIN HIEUH -3187 HANGUL LETTER YOYA -3188 HANGUL LETTER YOYAE -3189 HANGUL LETTER YOI -318A HANGUL LETTER YUYEO -318B HANGUL LETTER YUYE -318C HANGUL LETTER YUI -318D HANGUL LETTER ALAE A -318E HANGUL LETTER ALAE AE -3190 KANBUN TATETEN -3191 KAERITEN RE -3192 KAERITEN ITI -3193 KAERITEN NI -3194 KAERITEN SAN -3195 KAERITEN SI -3196 KAERITEN ZYOU -3197 KAERITEN TYUU -3198 KAERITEN GE -3199 KAERITEN KOU -319A KAERITEN OTU -319B KAERITEN HEI -319C KAERITEN TEI -319D KAERITEN TEN -319E KAERITEN TI -319F KAERITEN ZIN -3200 PARENTHESIZED HANGUL GIYEOG -3202 PARENTHESIZED HANGUL DIGEUD -3203 PARENTHESIZED HANGUL LIEUL -3205 PARENTHESIZED HANGUL BIEUB -3208 PARENTHESIZED HANGUL JIEUJ -3209 PARENTHESIZED HANGUL CIEUC -320A PARENTHESIZED HANGUL KIYEOK -320B PARENTHESIZED HANGUL TIEUT -320C PARENTHESIZED HANGUL PIEUP -320E PARENTHESIZED HANGUL GA -320F PARENTHESIZED HANGUL NA -3210 PARENTHESIZED HANGUL DA -3211 PARENTHESIZED HANGUL LA -3212 PARENTHESIZED HANGUL MA -3213 PARENTHESIZED HANGUL BA -3214 PARENTHESIZED HANGUL SA -3215 PARENTHESIZED HANGUL A -3216 PARENTHESIZED HANGUL JA -3217 PARENTHESIZED HANGUL CA -3218 PARENTHESIZED HANGUL KA -3219 PARENTHESIZED HANGUL TA -321A PARENTHESIZED HANGUL PA -321B PARENTHESIZED HANGUL HA -321C PARENTHESIZED HANGUL JU -3260 CIRCLED HANGUL GIYEOG -3262 CIRCLED HANGUL DIGEUD -3263 CIRCLED HANGUL LIEUL -3265 CIRCLED HANGUL BIEUB -3268 CIRCLED HANGUL JIEUJ -3269 CIRCLED HANGUL CIEUC -326A CIRCLED HANGUL KIYEOK -326B CIRCLED HANGUL TIEUT -326C CIRCLED HANGUL PIEUP -326E CIRCLED HANGUL GA -326F CIRCLED HANGUL NA -3270 CIRCLED HANGUL DA -3271 CIRCLED HANGUL LA -3272 CIRCLED HANGUL MA -3273 CIRCLED HANGUL BA -3274 CIRCLED HANGUL SA -3275 CIRCLED HANGUL A -3276 CIRCLED HANGUL JA -3277 CIRCLED HANGUL CA -3278 CIRCLED HANGUL KA -3279 CIRCLED HANGUL TA -327A CIRCLED HANGUL PA -327B CIRCLED HANGUL HA -32A5 CIRCLED IDEOGRAPH CENTER -3300 SQUARED APAATO -3301 SQUARED ARUHUA -3302 SQUARED ANPEA -3303 SQUARED AARU -3304 SQUARED ININGU -3305 SQUARED INTI -3306 SQUARED UON -3307 SQUARED ESUKUUDO -3308 SQUARED EEKAA -3309 SQUARED ONSU -330A SQUARED OOMU -330B SQUARED KAIRI -330C SQUARED KARATTO -330D SQUARED KARORII -330E SQUARED GARON -330F SQUARED GANMA -3310 SQUARED GIGA -3311 SQUARED GINII -3312 SQUARED KYURII -3313 SQUARED GIRUDAA -3314 SQUARED KIRO -3315 SQUARED KIROGURAMU -3316 SQUARED KIROMEETORU -3317 SQUARED KIROWATTO -3318 SQUARED GURAMU -3319 SQUARED GURAMUTON -331A SQUARED KURUZEIRO -331B SQUARED KUROONE -331C SQUARED KEESU -331D SQUARED KORUNA -331E SQUARED KOOPO -331F SQUARED SAIKURU -3320 SQUARED SANTIIMU -3321 SQUARED SIRINGU -3322 SQUARED SENTI -3323 SQUARED SENTO -3324 SQUARED DAASU -3325 SQUARED DESI -3326 SQUARED DORU -3327 SQUARED TON -3328 SQUARED NANO -3329 SQUARED NOTTO -332A SQUARED HAITU -332B SQUARED PAASENTO -332C SQUARED PAATU -332D SQUARED BAARERU -332E SQUARED PIASUTORU -332F SQUARED PIKURU -3330 SQUARED PIKO -3331 SQUARED BIRU -3332 SQUARED HUARADDO -3333 SQUARED HUIITO -3334 SQUARED BUSSYERU -3335 SQUARED HURAN -3336 SQUARED HEKUTAARU -3337 SQUARED PESO -3338 SQUARED PENIHI -3339 SQUARED HERUTU -333A SQUARED PENSU -333B SQUARED PEEZI -333C SQUARED BEETA -333D SQUARED POINTO -333E SQUARED BORUTO -333F SQUARED HON -3340 SQUARED PONDO -3341 SQUARED HOORU -3342 SQUARED HOON -3343 SQUARED MAIKURO -3344 SQUARED MAIRU -3345 SQUARED MAHHA -3346 SQUARED MARUKU -3347 SQUARED MANSYON -3348 SQUARED MIKURON -3349 SQUARED MIRI -334A SQUARED MIRIBAARU -334B SQUARED MEGA -334C SQUARED MEGATON -334D SQUARED MEETORU -334E SQUARED YAADO -334F SQUARED YAARU -3350 SQUARED YUAN -3351 SQUARED RITTORU -3352 SQUARED RIRA -3353 SQUARED RUPII -3354 SQUARED RUUBURU -3355 SQUARED REMU -3356 SQUARED RENTOGEN -3357 SQUARED WATTO -337B SQUARED TWO IDEOGRAPHS ERA NAME HEISEI -337C SQUARED TWO IDEOGRAPHS ERA NAME SYOUWA -337D SQUARED TWO IDEOGRAPHS ERA NAME TAISYOU -337E SQUARED TWO IDEOGRAPHS ERA NAME MEIZI -337F SQUARED FOUR IDEOGRAPHS CORPORATION -3380 SQUARED PA AMPS -3381 SQUARED NA -3382 SQUARED MU A -3383 SQUARED MA -3384 SQUARED KA -3385 SQUARED KB -3386 SQUARED MB -3387 SQUARED GB -3388 SQUARED CAL -3389 SQUARED KCAL -338A SQUARED PF -338B SQUARED NF -338C SQUARED MU F -338D SQUARED MU G -338E SQUARED MG -338F SQUARED KG -3390 SQUARED HZ -3391 SQUARED KHZ -3392 SQUARED MHZ -3393 SQUARED GHZ -3394 SQUARED THZ -3395 SQUARED MU L -3396 SQUARED ML -3397 SQUARED DL -3398 SQUARED KL -3399 SQUARED FM -339A SQUARED NM -339B SQUARED MU M -339C SQUARED MM -339D SQUARED CM -339E SQUARED KM -339F SQUARED MM SQUARED -33A0 SQUARED CM SQUARED -33A1 SQUARED M SQUARED -33A2 SQUARED KM SQUARED -33A3 SQUARED MM CUBED -33A4 SQUARED CM CUBED -33A5 SQUARED M CUBED -33A6 SQUARED KM CUBED -33A7 SQUARED M OVER S -33A8 SQUARED M OVER S SQUARED -33A9 SQUARED PA -33AA SQUARED KPA -33AB SQUARED MPA -33AC SQUARED GPA -33AD SQUARED RAD -33AE SQUARED RAD OVER S -33AF SQUARED RAD OVER S SQUARED -33B0 SQUARED PS -33B1 SQUARED NS -33B2 SQUARED MU S -33B3 SQUARED MS -33B4 SQUARED PV -33B5 SQUARED NV -33B6 SQUARED MU V -33B7 SQUARED MV -33B8 SQUARED KV -33B9 SQUARED MV MEGA -33BA SQUARED PW -33BB SQUARED NW -33BC SQUARED MU W -33BD SQUARED MW -33BE SQUARED KW -33BF SQUARED MW MEGA -33C0 SQUARED K OHM -33C1 SQUARED M OHM -33C2 SQUARED AM -33C3 SQUARED BQ -33C4 SQUARED CC -33C5 SQUARED CD -33C6 SQUARED C OVER KG -33C7 SQUARED CO -33C8 SQUARED DB -33C9 SQUARED GY -33CA SQUARED HA -33CB SQUARED HP -33CC SQUARED IN -33CD SQUARED KK -33CE SQUARED KM CAPITAL -33CF SQUARED KT -33D0 SQUARED LM -33D1 SQUARED LN -33D2 SQUARED LOG -33D3 SQUARED LX -33D4 SQUARED MB SMALL -33D5 SQUARED MIL -33D6 SQUARED MOL -33D7 SQUARED PH -33D8 SQUARED PM -33D9 SQUARED PPM -33DA SQUARED PR -33DB SQUARED SR -33DC SQUARED SV -33DD SQUARED WB -FB1E HEBREW POINT VARIKA -FDFA ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM -FDFB ARABIC LETTER JALLAJALALOUHOU -FE30 GLYPH FOR VERTICAL TWO DOT LEADER -FE31 GLYPH FOR VERTICAL EM DASH -FE32 GLYPH FOR VERTICAL EN DASH -FE33 GLYPH FOR VERTICAL SPACING UNDERSCORE -FE34 GLYPH FOR VERTICAL SPACING WAVY UNDERSCORE -FE35 GLYPH FOR VERTICAL OPENING PARENTHESIS -FE36 GLYPH FOR VERTICAL CLOSING PARENTHESIS -FE37 GLYPH FOR VERTICAL OPENING CURLY BRACKET -FE38 GLYPH FOR VERTICAL CLOSING CURLY BRACKET -FE39 GLYPH FOR VERTICAL OPENING TORTOISE SHELL BRACKET -FE3A GLYPH FOR VERTICAL CLOSING TORTOISE SHELL BRACKET -FE3B GLYPH FOR VERTICAL OPENING BLACK LENTICULAR BRACKET -FE3C GLYPH FOR VERTICAL CLOSING BLACK LENTICULAR BRACKET -FE3D GLYPH FOR VERTICAL OPENING DOUBLE ANGLE BRACKET -FE3E GLYPH FOR VERTICAL CLOSING DOUBLE ANGLE BRACKET -FE3F GLYPH FOR VERTICAL OPENING ANGLE BRACKET -FE40 GLYPH FOR VERTICAL CLOSING ANGLE BRACKET -FE41 GLYPH FOR VERTICAL OPENING CORNER BRACKET -FE42 GLYPH FOR VERTICAL CLOSING CORNER BRACKET -FE43 GLYPH FOR VERTICAL OPENING WHITE CORNER BRACKET -FE44 GLYPH FOR VERTICAL CLOSING WHITE CORNER BRACKET -FE49 SPACING DASHED OVERSCORE -FE4A SPACING CENTERLINE OVERSCORE -FE4B SPACING WAVY OVERSCORE -FE4C SPACING DOUBLE WAVY OVERSCORE -FE4D SPACING DASHED UNDERSCORE -FE4E SPACING CENTERLINE UNDERSCORE -FE4F SPACING WAVY UNDERSCORE -FE52 SMALL PERIOD -FE59 SMALL OPENING PARENTHESIS -FE5A SMALL CLOSING PARENTHESIS -FE5B SMALL OPENING CURLY BRACKET -FE5C SMALL CLOSING CURLY BRACKET -FE5D SMALL OPENING TORTOISE SHELL BRACKET -FE5E SMALL CLOSING TORTOISE SHELL BRACKET -FE68 SMALL BACKSLASH -FE70 ARABIC SPACING FATHATAN -FE71 ARABIC FATHATAN ON TATWEEL -FE72 ARABIC SPACING DAMMATAN -FE74 ARABIC SPACING KASRATAN -FE76 ARABIC SPACING FATHAH -FE77 ARABIC FATHAH ON TATWEEL -FE78 ARABIC SPACING DAMMAH -FE79 ARABIC DAMMAH ON TATWEEL -FE7A ARABIC SPACING KASRAH -FE7B ARABIC KASRAH ON TATWEEL -FE7C ARABIC SPACING SHADDAH -FE7D ARABIC SHADDAH ON TATWEEL -FE7E ARABIC SPACING SUKUN -FE7F ARABIC SUKUN ON TATWEEL -FE80 GLYPH FOR ISOLATE ARABIC HAMZAH -FE81 GLYPH FOR ISOLATE ARABIC MADDAH ON ALEF -FE82 GLYPH FOR FINAL ARABIC MADDAH ON ALEF -FE83 GLYPH FOR ISOLATE ARABIC HAMZAH ON ALEF -FE84 GLYPH FOR FINAL ARABIC HAMZAH ON ALEF -FE85 GLYPH FOR ISOLATE ARABIC HAMZAH ON WAW -FE86 GLYPH FOR FINAL ARABIC HAMZAH ON WAW -FE87 GLYPH FOR ISOLATE ARABIC HAMZAH UNDER ALEF -FE88 GLYPH FOR FINAL ARABIC HAMZAH UNDER ALEF -FE89 GLYPH FOR ISOLATE ARABIC HAMZAH ON YA -FE8A GLYPH FOR FINAL ARABIC HAMZAH ON YA -FE8B GLYPH FOR INITIAL ARABIC HAMZAH ON YA -FE8C GLYPH FOR MEDIAL ARABIC HAMZAH ON YA -FE8D GLYPH FOR ISOLATE ARABIC ALEF -FE8E GLYPH FOR FINAL ARABIC ALEF -FE8F GLYPH FOR ISOLATE ARABIC BAA -FE90 GLYPH FOR FINAL ARABIC BAA -FE91 GLYPH FOR INITIAL ARABIC BAA -FE92 GLYPH FOR MEDIAL ARABIC BAA -FE93 GLYPH FOR ISOLATE ARABIC TAA MARBUTAH -FE94 GLYPH FOR FINAL ARABIC TAA MARBUTAH -FE95 GLYPH FOR ISOLATE ARABIC TAA -FE96 GLYPH FOR FINAL ARABIC TAA -FE97 GLYPH FOR INITIAL ARABIC TAA -FE98 GLYPH FOR MEDIAL ARABIC TAA -FE99 GLYPH FOR ISOLATE ARABIC THAA -FE9A GLYPH FOR FINAL ARABIC THAA -FE9B GLYPH FOR INITIAL ARABIC THAA -FE9C GLYPH FOR MEDIAL ARABIC THAA -FE9D GLYPH FOR ISOLATE ARABIC JEEM -FE9E GLYPH FOR FINAL ARABIC JEEM -FE9F GLYPH FOR INITIAL ARABIC JEEM -FEA0 GLYPH FOR MEDIAL ARABIC JEEM -FEA1 GLYPH FOR ISOLATE ARABIC HAA -FEA2 GLYPH FOR FINAL ARABIC HAA -FEA3 GLYPH FOR INITIAL ARABIC HAA -FEA4 GLYPH FOR MEDIAL ARABIC HAA -FEA5 GLYPH FOR ISOLATE ARABIC KHAA -FEA6 GLYPH FOR FINAL ARABIC KHAA -FEA7 GLYPH FOR INITIAL ARABIC KHAA -FEA8 GLYPH FOR MEDIAL ARABIC KHAA -FEA9 GLYPH FOR ISOLATE ARABIC DAL -FEAA GLYPH FOR FINAL ARABIC DAL -FEAB GLYPH FOR ISOLATE ARABIC THAL -FEAC GLYPH FOR FINAL ARABIC THAL -FEAD GLYPH FOR ISOLATE ARABIC RA -FEAE GLYPH FOR FINAL ARABIC RA -FEAF GLYPH FOR ISOLATE ARABIC ZAIN -FEB0 GLYPH FOR FINAL ARABIC ZAIN -FEB1 GLYPH FOR ISOLATE ARABIC SEEN -FEB2 GLYPH FOR FINAL ARABIC SEEN -FEB3 GLYPH FOR INITIAL ARABIC SEEN -FEB4 GLYPH FOR MEDIAL ARABIC SEEN -FEB5 GLYPH FOR ISOLATE ARABIC SHEEN -FEB6 GLYPH FOR FINAL ARABIC SHEEN -FEB7 GLYPH FOR INITIAL ARABIC SHEEN -FEB8 GLYPH FOR MEDIAL ARABIC SHEEN -FEB9 GLYPH FOR ISOLATE ARABIC SAD -FEBA GLYPH FOR FINAL ARABIC SAD -FEBB GLYPH FOR INITIAL ARABIC SAD -FEBC GLYPH FOR MEDIAL ARABIC SAD -FEBD GLYPH FOR ISOLATE ARABIC DAD -FEBE GLYPH FOR FINAL ARABIC DAD -FEBF GLYPH FOR INITIAL ARABIC DAD -FEC0 GLYPH FOR MEDIAL ARABIC DAD -FEC1 GLYPH FOR ISOLATE ARABIC TAH -FEC2 GLYPH FOR FINAL ARABIC TAH -FEC3 GLYPH FOR INITIAL ARABIC TAH -FEC4 GLYPH FOR MEDIAL ARABIC TAH -FEC5 GLYPH FOR ISOLATE ARABIC DHAH -FEC6 GLYPH FOR FINAL ARABIC DHAH -FEC7 GLYPH FOR INITIAL ARABIC DHAH -FEC8 GLYPH FOR MEDIAL ARABIC DHAH -FEC9 GLYPH FOR ISOLATE ARABIC AIN -FECA GLYPH FOR FINAL ARABIC AIN -FECB GLYPH FOR INITIAL ARABIC AIN -FECC GLYPH FOR MEDIAL ARABIC AIN -FECD GLYPH FOR ISOLATE ARABIC GHAIN -FECE GLYPH FOR FINAL ARABIC GHAIN -FECF GLYPH FOR INITIAL ARABIC GHAIN -FED0 GLYPH FOR MEDIAL ARABIC GHAIN -FED1 GLYPH FOR ISOLATE ARABIC FA -FED2 GLYPH FOR FINAL ARABIC FA -FED3 GLYPH FOR INITIAL ARABIC FA -FED4 GLYPH FOR MEDIAL ARABIC FA -FED5 GLYPH FOR ISOLATE ARABIC QAF -FED6 GLYPH FOR FINAL ARABIC QAF -FED7 GLYPH FOR INITIAL ARABIC QAF -FED8 GLYPH FOR MEDIAL ARABIC QAF -FED9 GLYPH FOR ISOLATE ARABIC CAF -FEDA GLYPH FOR FINAL ARABIC CAF -FEDB GLYPH FOR INITIAL ARABIC CAF -FEDC GLYPH FOR MEDIAL ARABIC CAF -FEDD GLYPH FOR ISOLATE ARABIC LAM -FEDE GLYPH FOR FINAL ARABIC LAM -FEDF GLYPH FOR INITIAL ARABIC LAM -FEE0 GLYPH FOR MEDIAL ARABIC LAM -FEE1 GLYPH FOR ISOLATE ARABIC MEEM -FEE2 GLYPH FOR FINAL ARABIC MEEM -FEE3 GLYPH FOR INITIAL ARABIC MEEM -FEE4 GLYPH FOR MEDIAL ARABIC MEEM -FEE5 GLYPH FOR ISOLATE ARABIC NOON -FEE6 GLYPH FOR FINAL ARABIC NOON -FEE7 GLYPH FOR INITIAL ARABIC NOON -FEE8 GLYPH FOR MEDIAL ARABIC NOON -FEE9 GLYPH FOR ISOLATE ARABIC HA -FEEA GLYPH FOR FINAL ARABIC HA -FEEB GLYPH FOR INITIAL ARABIC HA -FEEC GLYPH FOR MEDIAL ARABIC HA -FEED GLYPH FOR ISOLATE ARABIC WAW -FEEE GLYPH FOR FINAL ARABIC WAW -FEEF GLYPH FOR ISOLATE ARABIC ALEF MAQSURAH -FEF0 GLYPH FOR FINAL ARABIC ALEF MAQSURAH -FEF1 GLYPH FOR ISOLATE ARABIC YA -FEF2 GLYPH FOR FINAL ARABIC YA -FEF3 GLYPH FOR INITIAL ARABIC YA -FEF4 GLYPH FOR MEDIAL ARABIC YA -FEF5 GLYPH FOR ISOLATE ARABIC MADDAH ON LIGATURE LAM ALEF -FEF6 GLYPH FOR FINAL ARABIC MADDAH ON LIGATURE LAM ALEF -FEF7 GLYPH FOR ISOLATE ARABIC HAMZAH ON LIGATURE LAM ALEF -FEF8 GLYPH FOR FINAL ARABIC HAMZAH ON LIGATURE LAM ALEF -FEF9 GLYPH FOR ISOLATE ARABIC HAMZAH UNDER LIGATURE LAM ALEF -FEFA GLYPH FOR FINAL ARABIC HAMZAH UNDER LIGATURE LAM ALEF -FEFB GLYPH FOR ISOLATE ARABIC LIGATURE LAM ALEF -FEFC GLYPH FOR FINAL ARABIC LIGATURE LAM ALEF -FEFF BYTE ORDER MARK -FF08 FULLWIDTH OPENING PARENTHESIS -FF09 FULLWIDTH CLOSING PARENTHESIS -FF0E FULLWIDTH PERIOD -FF0F FULLWIDTH SLASH -FF3B FULLWIDTH OPENING SQUARE BRACKET -FF3C FULLWIDTH BACKSLASH -FF3D FULLWIDTH CLOSING SQUARE BRACKET -FF3E FULLWIDTH SPACING CIRCUMFLEX -FF3F FULLWIDTH SPACING UNDERSCORE -FF40 FULLWIDTH SPACING GRAVE -FF5B FULLWIDTH OPENING CURLY BRACKET -FF5C FULLWIDTH VERTICAL BAR -FF5D FULLWIDTH CLOSING CURLY BRACKET -FF5E FULLWIDTH SPACING TILDE -FF61 HALFWIDTH IDEOGRAPHIC PERIOD -FF62 HALFWIDTH OPENING CORNER BRACKET -FF63 HALFWIDTH CLOSING CORNER BRACKET -FFA0 HALFWIDTH HANGUL CAE OM -FFA1 HALFWIDTH HANGUL LETTER GIYEOG -FFA2 HALFWIDTH HANGUL LETTER SSANG GIYEOG -FFA3 HALFWIDTH HANGUL LETTER GIYEOG SIOS -FFA5 HALFWIDTH HANGUL LETTER NIEUN JIEUJ -FFA6 HALFWIDTH HANGUL LETTER NIEUN HIEUH -FFA7 HALFWIDTH HANGUL LETTER DIGEUD -FFA8 HALFWIDTH HANGUL LETTER SSANG DIGEUD -FFA9 HALFWIDTH HANGUL LETTER LIEUL -FFAA HALFWIDTH HANGUL LETTER LIEUL GIYEOG -FFAB HALFWIDTH HANGUL LETTER LIEUL MIEUM -FFAC HALFWIDTH HANGUL LETTER LIEUL BIEUB -FFAD HALFWIDTH HANGUL LETTER LIEUL SIOS -FFAE HALFWIDTH HANGUL LETTER LIEUL TIEUT -FFAF HALFWIDTH HANGUL LETTER LIEUL PIEUP -FFB0 HALFWIDTH HANGUL LETTER LIEUL HIEUH -FFB2 HALFWIDTH HANGUL LETTER BIEUB -FFB3 HALFWIDTH HANGUL LETTER SSANG BIEUB -FFB4 HALFWIDTH HANGUL LETTER BIEUB SIOS -FFB6 HALFWIDTH HANGUL LETTER SSANG SIOS -FFB8 HALFWIDTH HANGUL LETTER JIEUJ -FFB9 HALFWIDTH HANGUL LETTER SSANG JIEUJ -FFBA HALFWIDTH HANGUL LETTER CIEUC -FFBB HALFWIDTH HANGUL LETTER KIYEOK -FFBC HALFWIDTH HANGUL LETTER TIEUT -FFBD HALFWIDTH HANGUL LETTER PIEUP -FFE3 FULLWIDTH SPACING MACRON -FFE4 FULLWIDTH BROKEN VERTICAL BAR -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/NameAlia.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/NameAlia.pl deleted file mode 100644 index 4510902e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/NameAlia.pl +++ /dev/null @@ -1,479 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToNameAlias'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToNameAlias'}{'missing'} = ''; # code point maps to the null string - -return <<'END'; -0 NULL: control -0 NUL: abbreviation -1 START OF HEADING: control -1 SOH: abbreviation -2 START OF TEXT: control -2 STX: abbreviation -3 END OF TEXT: control -3 ETX: abbreviation -4 END OF TRANSMISSION: control -4 EOT: abbreviation -5 ENQUIRY: control -5 ENQ: abbreviation -6 ACKNOWLEDGE: control -6 ACK: abbreviation -7 ALERT: control -7 BEL: abbreviation -8 BACKSPACE: control -8 BS: abbreviation -9 CHARACTER TABULATION: control -9 HORIZONTAL TABULATION: control -9 HT: abbreviation -9 TAB: abbreviation -A LINE FEED: control -A NEW LINE: control -A END OF LINE: control -A LF: abbreviation -A NL: abbreviation -A EOL: abbreviation -B LINE TABULATION: control -B VERTICAL TABULATION: control -B VT: abbreviation -C FORM FEED: control -C FF: abbreviation -D CARRIAGE RETURN: control -D CR: abbreviation -E SHIFT OUT: control -E LOCKING-SHIFT ONE: control -E SO: abbreviation -F SHIFT IN: control -F LOCKING-SHIFT ZERO: control -F SI: abbreviation -10 DATA LINK ESCAPE: control -10 DLE: abbreviation -11 DEVICE CONTROL ONE: control -11 DC1: abbreviation -12 DEVICE CONTROL TWO: control -12 DC2: abbreviation -13 DEVICE CONTROL THREE: control -13 DC3: abbreviation -14 DEVICE CONTROL FOUR: control -14 DC4: abbreviation -15 NEGATIVE ACKNOWLEDGE: control -15 NAK: abbreviation -16 SYNCHRONOUS IDLE: control -16 SYN: abbreviation -17 END OF TRANSMISSION BLOCK: control -17 ETB: abbreviation -18 CANCEL: control -18 CAN: abbreviation -19 END OF MEDIUM: control -19 EOM: abbreviation -1A SUBSTITUTE: control -1A SUB: abbreviation -1B ESCAPE: control -1B ESC: abbreviation -1C INFORMATION SEPARATOR FOUR: control -1C FILE SEPARATOR: control -1C FS: abbreviation -1D INFORMATION SEPARATOR THREE: control -1D GROUP SEPARATOR: control -1D GS: abbreviation -1E INFORMATION SEPARATOR TWO: control -1E RECORD SEPARATOR: control -1E RS: abbreviation -1F INFORMATION SEPARATOR ONE: control -1F UNIT SEPARATOR: control -1F US: abbreviation -20 SP: abbreviation -7F DELETE: control -7F DEL: abbreviation -80 PADDING CHARACTER: figment -80 PAD: abbreviation -81 HIGH OCTET PRESET: figment -81 HOP: abbreviation -82 BREAK PERMITTED HERE: control -82 BPH: abbreviation -83 NO BREAK HERE: control -83 NBH: abbreviation -84 INDEX: control -84 IND: abbreviation -85 NEXT LINE: control -85 NEL: abbreviation -86 START OF SELECTED AREA: control -86 SSA: abbreviation -87 END OF SELECTED AREA: control -87 ESA: abbreviation -88 CHARACTER TABULATION SET: control -88 HORIZONTAL TABULATION SET: control -88 HTS: abbreviation -89 CHARACTER TABULATION WITH JUSTIFICATION: control -89 HORIZONTAL TABULATION WITH JUSTIFICATION: control -89 HTJ: abbreviation -8A LINE TABULATION SET: control -8A VERTICAL TABULATION SET: control -8A VTS: abbreviation -8B PARTIAL LINE FORWARD: control -8B PARTIAL LINE DOWN: control -8B PLD: abbreviation -8C PARTIAL LINE BACKWARD: control -8C PARTIAL LINE UP: control -8C PLU: abbreviation -8D REVERSE LINE FEED: control -8D REVERSE INDEX: control -8D RI: abbreviation -8E SINGLE SHIFT TWO: control -8E SINGLE-SHIFT-2: control -8E SS2: abbreviation -8F SINGLE SHIFT THREE: control -8F SINGLE-SHIFT-3: control -8F SS3: abbreviation -90 DEVICE CONTROL STRING: control -90 DCS: abbreviation -91 PRIVATE USE ONE: control -91 PRIVATE USE-1: control -91 PU1: abbreviation -92 PRIVATE USE TWO: control -92 PRIVATE USE-2: control -92 PU2: abbreviation -93 SET TRANSMIT STATE: control -93 STS: abbreviation -94 CANCEL CHARACTER: control -94 CCH: abbreviation -95 MESSAGE WAITING: control -95 MW: abbreviation -96 START OF GUARDED AREA: control -96 START OF PROTECTED AREA: control -96 SPA: abbreviation -97 END OF GUARDED AREA: control -97 END OF PROTECTED AREA: control -97 EPA: abbreviation -98 START OF STRING: control -98 SOS: abbreviation -99 SINGLE GRAPHIC CHARACTER INTRODUCER: figment -99 SGC: abbreviation -9A SINGLE CHARACTER INTRODUCER: control -9A SCI: abbreviation -9B CONTROL SEQUENCE INTRODUCER: control -9B CSI: abbreviation -9C STRING TERMINATOR: control -9C ST: abbreviation -9D OPERATING SYSTEM COMMAND: control -9D OSC: abbreviation -9E PRIVACY MESSAGE: control -9E PM: abbreviation -9F APPLICATION PROGRAM COMMAND: control -9F APC: abbreviation -A0 NBSP: abbreviation -AD SHY: abbreviation -1A2 LATIN CAPITAL LETTER GHA: correction -1A3 LATIN SMALL LETTER GHA: correction -34F CGJ: abbreviation -61C ALM: abbreviation -709 SYRIAC SUBLINEAR COLON SKEWED LEFT: correction -CDE KANNADA LETTER LLLA: correction -E9D LAO LETTER FO FON: correction -E9F LAO LETTER FO FAY: correction -EA3 LAO LETTER RO: correction -EA5 LAO LETTER LO: correction -FD0 TIBETAN MARK BKA- SHOG GI MGO RGYAN: correction -180B FVS1: abbreviation -180C FVS2: abbreviation -180D FVS3: abbreviation -180E MVS: abbreviation -200B ZWSP: abbreviation -200C ZWNJ: abbreviation -200D ZWJ: abbreviation -200E LRM: abbreviation -200F RLM: abbreviation -202A LRE: abbreviation -202B RLE: abbreviation -202C PDF: abbreviation -202D LRO: abbreviation -202E RLO: abbreviation -202F NNBSP: abbreviation -205F MMSP: abbreviation -2060 WJ: abbreviation -2066 LRI: abbreviation -2067 RLI: abbreviation -2068 FSI: abbreviation -2069 PDI: abbreviation -2118 WEIERSTRASS ELLIPTIC FUNCTION: correction -2448 MICR ON US SYMBOL: correction -2449 MICR DASH SYMBOL: correction -2B7A LEFTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE VERTICAL STROKE: correction -2B7C RIGHTWARDS TRIANGLE-HEADED ARROW WITH DOUBLE VERTICAL STROKE: correction -A015 YI SYLLABLE ITERATION MARK: correction -FE00 VS1: abbreviation -FE01 VS2: abbreviation -FE02 VS3: abbreviation -FE03 VS4: abbreviation -FE04 VS5: abbreviation -FE05 VS6: abbreviation -FE06 VS7: abbreviation -FE07 VS8: abbreviation -FE08 VS9: abbreviation -FE09 VS10: abbreviation -FE0A VS11: abbreviation -FE0B VS12: abbreviation -FE0C VS13: abbreviation -FE0D VS14: abbreviation -FE0E VS15: abbreviation -FE0F VS16: abbreviation -FE18 PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRACKET: correction -FEFF BYTE ORDER MARK: alternate -FEFF BOM: abbreviation -FEFF ZWNBSP: abbreviation -122D4 CUNEIFORM SIGN NU11 TENU: correction -122D5 CUNEIFORM SIGN NU11 OVER NU11 BUR OVER BUR: correction -1D0C5 BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA VASIS: correction -E0100 VS17: abbreviation -E0101 VS18: abbreviation -E0102 VS19: abbreviation -E0103 VS20: abbreviation -E0104 VS21: abbreviation -E0105 VS22: abbreviation -E0106 VS23: abbreviation -E0107 VS24: abbreviation -E0108 VS25: abbreviation -E0109 VS26: abbreviation -E010A VS27: abbreviation -E010B VS28: abbreviation -E010C VS29: abbreviation -E010D VS30: abbreviation -E010E VS31: abbreviation -E010F VS32: abbreviation -E0110 VS33: abbreviation -E0111 VS34: abbreviation -E0112 VS35: abbreviation -E0113 VS36: abbreviation -E0114 VS37: abbreviation -E0115 VS38: abbreviation -E0116 VS39: abbreviation -E0117 VS40: abbreviation -E0118 VS41: abbreviation -E0119 VS42: abbreviation -E011A VS43: abbreviation -E011B VS44: abbreviation -E011C VS45: abbreviation -E011D VS46: abbreviation -E011E VS47: abbreviation -E011F VS48: abbreviation -E0120 VS49: abbreviation -E0121 VS50: abbreviation -E0122 VS51: abbreviation -E0123 VS52: abbreviation -E0124 VS53: abbreviation -E0125 VS54: abbreviation -E0126 VS55: abbreviation -E0127 VS56: abbreviation -E0128 VS57: abbreviation -E0129 VS58: abbreviation -E012A VS59: abbreviation -E012B VS60: abbreviation -E012C VS61: abbreviation -E012D VS62: abbreviation -E012E VS63: abbreviation -E012F VS64: abbreviation -E0130 VS65: abbreviation -E0131 VS66: abbreviation -E0132 VS67: abbreviation -E0133 VS68: abbreviation -E0134 VS69: abbreviation -E0135 VS70: abbreviation -E0136 VS71: abbreviation -E0137 VS72: abbreviation -E0138 VS73: abbreviation -E0139 VS74: abbreviation -E013A VS75: abbreviation -E013B VS76: abbreviation -E013C VS77: abbreviation -E013D VS78: abbreviation -E013E VS79: abbreviation -E013F VS80: abbreviation -E0140 VS81: abbreviation -E0141 VS82: abbreviation -E0142 VS83: abbreviation -E0143 VS84: abbreviation -E0144 VS85: abbreviation -E0145 VS86: abbreviation -E0146 VS87: abbreviation -E0147 VS88: abbreviation -E0148 VS89: abbreviation -E0149 VS90: abbreviation -E014A VS91: abbreviation -E014B VS92: abbreviation -E014C VS93: abbreviation -E014D VS94: abbreviation -E014E VS95: abbreviation -E014F VS96: abbreviation -E0150 VS97: abbreviation -E0151 VS98: abbreviation -E0152 VS99: abbreviation -E0153 VS100: abbreviation -E0154 VS101: abbreviation -E0155 VS102: abbreviation -E0156 VS103: abbreviation -E0157 VS104: abbreviation -E0158 VS105: abbreviation -E0159 VS106: abbreviation -E015A VS107: abbreviation -E015B VS108: abbreviation -E015C VS109: abbreviation -E015D VS110: abbreviation -E015E VS111: abbreviation -E015F VS112: abbreviation -E0160 VS113: abbreviation -E0161 VS114: abbreviation -E0162 VS115: abbreviation -E0163 VS116: abbreviation -E0164 VS117: abbreviation -E0165 VS118: abbreviation -E0166 VS119: abbreviation -E0167 VS120: abbreviation -E0168 VS121: abbreviation -E0169 VS122: abbreviation -E016A VS123: abbreviation -E016B VS124: abbreviation -E016C VS125: abbreviation -E016D VS126: abbreviation -E016E VS127: abbreviation -E016F VS128: abbreviation -E0170 VS129: abbreviation -E0171 VS130: abbreviation -E0172 VS131: abbreviation -E0173 VS132: abbreviation -E0174 VS133: abbreviation -E0175 VS134: abbreviation -E0176 VS135: abbreviation -E0177 VS136: abbreviation -E0178 VS137: abbreviation -E0179 VS138: abbreviation -E017A VS139: abbreviation -E017B VS140: abbreviation -E017C VS141: abbreviation -E017D VS142: abbreviation -E017E VS143: abbreviation -E017F VS144: abbreviation -E0180 VS145: abbreviation -E0181 VS146: abbreviation -E0182 VS147: abbreviation -E0183 VS148: abbreviation -E0184 VS149: abbreviation -E0185 VS150: abbreviation -E0186 VS151: abbreviation -E0187 VS152: abbreviation -E0188 VS153: abbreviation -E0189 VS154: abbreviation -E018A VS155: abbreviation -E018B VS156: abbreviation -E018C VS157: abbreviation -E018D VS158: abbreviation -E018E VS159: abbreviation -E018F VS160: abbreviation -E0190 VS161: abbreviation -E0191 VS162: abbreviation -E0192 VS163: abbreviation -E0193 VS164: abbreviation -E0194 VS165: abbreviation -E0195 VS166: abbreviation -E0196 VS167: abbreviation -E0197 VS168: abbreviation -E0198 VS169: abbreviation -E0199 VS170: abbreviation -E019A VS171: abbreviation -E019B VS172: abbreviation -E019C VS173: abbreviation -E019D VS174: abbreviation -E019E VS175: abbreviation -E019F VS176: abbreviation -E01A0 VS177: abbreviation -E01A1 VS178: abbreviation -E01A2 VS179: abbreviation -E01A3 VS180: abbreviation -E01A4 VS181: abbreviation -E01A5 VS182: abbreviation -E01A6 VS183: abbreviation -E01A7 VS184: abbreviation -E01A8 VS185: abbreviation -E01A9 VS186: abbreviation -E01AA VS187: abbreviation -E01AB VS188: abbreviation -E01AC VS189: abbreviation -E01AD VS190: abbreviation -E01AE VS191: abbreviation -E01AF VS192: abbreviation -E01B0 VS193: abbreviation -E01B1 VS194: abbreviation -E01B2 VS195: abbreviation -E01B3 VS196: abbreviation -E01B4 VS197: abbreviation -E01B5 VS198: abbreviation -E01B6 VS199: abbreviation -E01B7 VS200: abbreviation -E01B8 VS201: abbreviation -E01B9 VS202: abbreviation -E01BA VS203: abbreviation -E01BB VS204: abbreviation -E01BC VS205: abbreviation -E01BD VS206: abbreviation -E01BE VS207: abbreviation -E01BF VS208: abbreviation -E01C0 VS209: abbreviation -E01C1 VS210: abbreviation -E01C2 VS211: abbreviation -E01C3 VS212: abbreviation -E01C4 VS213: abbreviation -E01C5 VS214: abbreviation -E01C6 VS215: abbreviation -E01C7 VS216: abbreviation -E01C8 VS217: abbreviation -E01C9 VS218: abbreviation -E01CA VS219: abbreviation -E01CB VS220: abbreviation -E01CC VS221: abbreviation -E01CD VS222: abbreviation -E01CE VS223: abbreviation -E01CF VS224: abbreviation -E01D0 VS225: abbreviation -E01D1 VS226: abbreviation -E01D2 VS227: abbreviation -E01D3 VS228: abbreviation -E01D4 VS229: abbreviation -E01D5 VS230: abbreviation -E01D6 VS231: abbreviation -E01D7 VS232: abbreviation -E01D8 VS233: abbreviation -E01D9 VS234: abbreviation -E01DA VS235: abbreviation -E01DB VS236: abbreviation -E01DC VS237: abbreviation -E01DD VS238: abbreviation -E01DE VS239: abbreviation -E01DF VS240: abbreviation -E01E0 VS241: abbreviation -E01E1 VS242: abbreviation -E01E2 VS243: abbreviation -E01E3 VS244: abbreviation -E01E4 VS245: abbreviation -E01E5 VS246: abbreviation -E01E6 VS247: abbreviation -E01E7 VS248: abbreviation -E01E8 VS249: abbreviation -E01E9 VS250: abbreviation -E01EA VS251: abbreviation -E01EB VS252: abbreviation -E01EC VS253: abbreviation -E01ED VS254: abbreviation -E01EE VS255: abbreviation -E01EF VS256: abbreviation -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Nt.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Nt.pl deleted file mode 100644 index 2b72a112..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Nt.pl +++ /dev/null @@ -1,229 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToNt'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToNt'}{'missing'} = 'None'; - -return <<'END'; -30 39 Decimal -B2 B3 Digit -B9 Digit -BC BE Numeric -660 669 Decimal -6F0 6F9 Decimal -7C0 7C9 Decimal -966 96F Decimal -9E6 9EF Decimal -9F4 9F9 Numeric -A66 A6F Decimal -AE6 AEF Decimal -B66 B6F Decimal -B72 B77 Numeric -BE6 BEF Decimal -BF0 BF2 Numeric -C66 C6F Decimal -C78 C7E Numeric -CE6 CEF Decimal -D66 D6F Decimal -D70 D75 Numeric -DE6 DEF Decimal -E50 E59 Decimal -ED0 ED9 Decimal -F20 F29 Decimal -F2A F33 Numeric -1040 1049 Decimal -1090 1099 Decimal -1369 1371 Digit -1372 137C Numeric -16EE 16F0 Numeric -17E0 17E9 Decimal -17F0 17F9 Numeric -1810 1819 Decimal -1946 194F Decimal -19D0 19D9 Decimal -19DA Digit -1A80 1A89 Decimal -1A90 1A99 Decimal -1B50 1B59 Decimal -1BB0 1BB9 Decimal -1C40 1C49 Decimal -1C50 1C59 Decimal -2070 Digit -2074 2079 Digit -2080 2089 Digit -2150 2182 Numeric -2185 2189 Numeric -2460 2468 Digit -2469 2473 Numeric -2474 247C Digit -247D 2487 Numeric -2488 2490 Digit -2491 249B Numeric -24EA Digit -24EB 24F4 Numeric -24F5 24FD Digit -24FE Numeric -24FF Digit -2776 277E Digit -277F Numeric -2780 2788 Digit -2789 Numeric -278A 2792 Digit -2793 Numeric -2CFD Numeric -3007 Numeric -3021 3029 Numeric -3038 303A Numeric -3192 3195 Numeric -3220 3229 Numeric -3248 324F Numeric -3251 325F Numeric -3280 3289 Numeric -32B1 32BF Numeric -3405 Numeric -3483 Numeric -382A Numeric -3B4D Numeric -4E00 Numeric -4E03 Numeric -4E07 Numeric -4E09 Numeric -4E5D Numeric -4E8C Numeric -4E94 Numeric -4E96 Numeric -4EBF 4EC0 Numeric -4EDF Numeric -4EE8 Numeric -4F0D Numeric -4F70 Numeric -5104 Numeric -5146 Numeric -5169 Numeric -516B Numeric -516D Numeric -5341 Numeric -5343 5345 Numeric -534C Numeric -53C1 53C4 Numeric -56DB Numeric -58F1 Numeric -58F9 Numeric -5E7A Numeric -5EFE 5EFF Numeric -5F0C 5F0E Numeric -5F10 Numeric -62FE Numeric -634C Numeric -67D2 Numeric -6F06 Numeric -7396 Numeric -767E Numeric -8086 Numeric -842C Numeric -8CAE Numeric -8CB3 Numeric -8D30 Numeric -9621 Numeric -9646 Numeric -964C Numeric -9678 Numeric -96F6 Numeric -A620 A629 Decimal -A6E6 A6EF Numeric -A830 A835 Numeric -A8D0 A8D9 Decimal -A900 A909 Decimal -A9D0 A9D9 Decimal -A9F0 A9F9 Decimal -AA50 AA59 Decimal -ABF0 ABF9 Decimal -F96B Numeric -F973 Numeric -F978 Numeric -F9B2 Numeric -F9D1 Numeric -F9D3 Numeric -F9FD Numeric -FF10 FF19 Decimal -10107 10133 Numeric -10140 10178 Numeric -1018A 1018B Numeric -102E1 102FB Numeric -10320 10323 Numeric -10341 Numeric -1034A Numeric -103D1 103D5 Numeric -104A0 104A9 Decimal -10858 1085F Numeric -10879 1087F Numeric -108A7 108AF Numeric -108FB 108FF Numeric -10916 1091B Numeric -109BC 109BD Numeric -109C0 109CF Numeric -109D2 109FF Numeric -10A40 10A43 Digit -10A44 10A47 Numeric -10A7D 10A7E Numeric -10A9D 10A9F Numeric -10AEB 10AEF Numeric -10B58 10B5F Numeric -10B78 10B7F Numeric -10BA9 10BAF Numeric -10CFA 10CFF Numeric -10E60 10E68 Digit -10E69 10E7E Numeric -11052 1105A Digit -1105B 11065 Numeric -11066 1106F Decimal -110F0 110F9 Decimal -11136 1113F Decimal -111D0 111D9 Decimal -111E1 111F4 Numeric -112F0 112F9 Decimal -114D0 114D9 Decimal -11650 11659 Decimal -116C0 116C9 Decimal -11730 11739 Decimal -1173A 1173B Numeric -118E0 118E9 Decimal -118EA 118F2 Numeric -12400 1246E Numeric -16A60 16A69 Decimal -16B50 16B59 Decimal -16B5B 16B61 Numeric -1D360 1D371 Numeric -1D7CE 1D7FF Decimal -1E8C7 1E8CF Numeric -1F100 1F10A Digit -1F10B 1F10C Numeric -20001 Numeric -20064 Numeric -200E2 Numeric -20121 Numeric -2092A Numeric -20983 Numeric -2098C Numeric -2099C Numeric -20AEA Numeric -20AFD Numeric -20B19 Numeric -22390 Numeric -22998 Numeric -23B1B Numeric -2626D Numeric -2F890 Numeric -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Nv.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Nv.pl deleted file mode 100644 index d3d09fc1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Nv.pl +++ /dev/null @@ -1,637 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -# The mappings must be modified to get the correct values by adding the code -# point ordinal number to each one that is numeric. - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToNv'}{'format'} = 'a'; # some entries need adjustment -$utf8::SwashInfo{'ToNv'}{'missing'} = 'NaN'; - -return <<'END'; -30 39 0 -B2 B3 2 -B9 1 -BC 1/4 -BD 1/2 -BE 3/4 -660 669 0 -6F0 6F9 0 -7C0 7C9 0 -966 96F 0 -9E6 9EF 0 -9F4 1/16 -9F5 1/8 -9F6 3/16 -9F7 1/4 -9F8 3/4 -9F9 16 -A66 A6F 0 -AE6 AEF 0 -B66 B6F 0 -B72 1/4 -B73 1/2 -B74 3/4 -B75 1/16 -B76 1/8 -B77 3/16 -BE6 BF0 0 -BF1 100 -BF2 1000 -C66 C6F 0 -C78 C7B 0 -C7C C7E 1 -CE6 CEF 0 -D66 D70 0 -D71 100 -D72 1000 -D73 1/4 -D74 1/2 -D75 3/4 -DE6 DEF 0 -E50 E59 0 -ED0 ED9 0 -F20 F29 0 -F2A 1/2 -F2B 3/2 -F2C 5/2 -F2D 7/2 -F2E 9/2 -F2F 11/2 -F30 13/2 -F31 15/2 -F32 17/2 -F33 -1/2 -1040 1049 0 -1090 1099 0 -1369 1372 1 -1373 20 -1374 30 -1375 40 -1376 50 -1377 60 -1378 70 -1379 80 -137A 90 -137B 100 -137C 10000 -16EE 16F0 17 -17E0 17E9 0 -17F0 17F9 0 -1810 1819 0 -1946 194F 0 -19D0 19D9 0 -19DA 1 -1A80 1A89 0 -1A90 1A99 0 -1B50 1B59 0 -1BB0 1BB9 0 -1C40 1C49 0 -1C50 1C59 0 -2070 0 -2074 2079 4 -2080 2089 0 -2150 1/7 -2151 1/9 -2152 1/10 -2153 1/3 -2154 2/3 -2155 1/5 -2156 2/5 -2157 3/5 -2158 4/5 -2159 1/6 -215A 5/6 -215B 1/8 -215C 3/8 -215D 5/8 -215E 7/8 -215F 1 -2160 216B 1 -216C 50 -216D 100 -216E 500 -216F 1000 -2170 217B 1 -217C 50 -217D 100 -217E 500 -217F 1000 -2180 1000 -2181 5000 -2182 10000 -2185 6 -2186 50 -2187 50000 -2188 100000 -2189 0 -2460 2473 1 -2474 2487 1 -2488 249B 1 -24EA 0 -24EB 24F4 11 -24F5 24FE 1 -24FF 0 -2776 277F 1 -2780 2789 1 -278A 2793 1 -2CFD 1/2 -3007 0 -3021 3029 1 -3038 10 -3039 20 -303A 30 -3192 3195 1 -3220 3229 1 -3248 10 -3249 20 -324A 30 -324B 40 -324C 50 -324D 60 -324E 70 -324F 80 -3251 325F 21 -3280 3289 1 -32B1 32BF 36 -3405 5 -3483 2 -382A 5 -3B4D 7 -4E00 1 -4E03 7 -4E07 10000 -4E09 3 -4E5D 9 -4E8C 2 -4E94 5 -4E96 4 -4EBF 100000000 -4EC0 10 -4EDF 1000 -4EE8 3 -4F0D 5 -4F70 100 -5104 100000000 -5146 1000000000000 -5169 2 -516B 8 -516D 6 -5341 10 -5343 1000 -5344 20 -5345 30 -534C 40 -53C1 3 -53C2 3 -53C3 3 -53C4 3 -56DB 4 -58F1 1 -58F9 1 -5E7A 1 -5EFE 9 -5EFF 20 -5F0C 5F0E 1 -5F10 2 -62FE 10 -634C 8 -67D2 7 -6F06 7 -7396 9 -767E 100 -8086 4 -842C 10000 -8CAE 2 -8CB3 2 -8D30 2 -9621 1000 -9646 6 -964C 100 -9678 6 -96F6 0 -A620 A629 0 -A6E6 A6EE 1 -A6EF 0 -A830 1/4 -A831 1/2 -A832 3/4 -A833 1/16 -A834 1/8 -A835 3/16 -A8D0 A8D9 0 -A900 A909 0 -A9D0 A9D9 0 -A9F0 A9F9 0 -AA50 AA59 0 -ABF0 ABF9 0 -F96B 3 -F973 10 -F978 2 -F9B2 0 -F9D1 6 -F9D3 6 -F9FD 10 -FF10 FF19 0 -10107 10110 1 -10111 20 -10112 30 -10113 40 -10114 50 -10115 60 -10116 70 -10117 80 -10118 90 -10119 100 -1011A 200 -1011B 300 -1011C 400 -1011D 500 -1011E 600 -1011F 700 -10120 800 -10121 900 -10122 1000 -10123 2000 -10124 3000 -10125 4000 -10126 5000 -10127 6000 -10128 7000 -10129 8000 -1012A 9000 -1012B 10000 -1012C 20000 -1012D 30000 -1012E 40000 -1012F 50000 -10130 60000 -10131 70000 -10132 80000 -10133 90000 -10140 1/4 -10141 1/2 -10142 1 -10143 5 -10144 50 -10145 500 -10146 5000 -10147 50000 -10148 5 -10149 10 -1014A 50 -1014B 100 -1014C 500 -1014D 1000 -1014E 5000 -1014F 5 -10150 10 -10151 50 -10152 100 -10153 500 -10154 1000 -10155 10000 -10156 50000 -10157 10 -10158 1 -10159 1 -1015A 1015B 1 -1015C 2 -1015D 2 -1015E 2 -1015F 5 -10160 10 -10161 10 -10162 10 -10163 10 -10164 10 -10165 30 -10166 50 -10167 50 -10168 50 -10169 50 -1016A 100 -1016B 300 -1016C 500 -1016D 500 -1016E 500 -1016F 500 -10170 500 -10171 1000 -10172 5000 -10173 5 -10174 50 -10175 1/2 -10176 1/2 -10177 2/3 -10178 3/4 -1018A 0 -1018B 1/4 -102E1 102EA 1 -102EB 20 -102EC 30 -102ED 40 -102EE 50 -102EF 60 -102F0 70 -102F1 80 -102F2 90 -102F3 100 -102F4 200 -102F5 300 -102F6 400 -102F7 500 -102F8 600 -102F9 700 -102FA 800 -102FB 900 -10320 1 -10321 5 -10322 10 -10323 50 -10341 90 -1034A 900 -103D1 103D2 1 -103D3 10 -103D4 20 -103D5 100 -104A0 104A9 0 -10858 1085A 1 -1085B 10 -1085C 20 -1085D 100 -1085E 1000 -1085F 10000 -10879 1087D 1 -1087E 10 -1087F 20 -108A7 108AA 1 -108AB 108AC 4 -108AD 10 -108AE 20 -108AF 100 -108FB 1 -108FC 5 -108FD 10 -108FE 20 -108FF 100 -10916 1 -10917 10 -10918 20 -10919 100 -1091A 1091B 2 -109BC 11/12 -109BD 1/2 -109C0 109C9 1 -109CA 20 -109CB 30 -109CC 40 -109CD 50 -109CE 60 -109CF 70 -109D2 100 -109D3 200 -109D4 300 -109D5 400 -109D6 500 -109D7 600 -109D8 700 -109D9 800 -109DA 900 -109DB 1000 -109DC 2000 -109DD 3000 -109DE 4000 -109DF 5000 -109E0 6000 -109E1 7000 -109E2 8000 -109E3 9000 -109E4 10000 -109E5 20000 -109E6 30000 -109E7 40000 -109E8 50000 -109E9 60000 -109EA 70000 -109EB 80000 -109EC 90000 -109ED 100000 -109EE 200000 -109EF 300000 -109F0 400000 -109F1 500000 -109F2 600000 -109F3 700000 -109F4 800000 -109F5 900000 -109F6 1/12 -109F7 1/6 -109F8 1/4 -109F9 1/3 -109FA 5/12 -109FB 1/2 -109FC 7/12 -109FD 2/3 -109FE 3/4 -109FF 5/6 -10A40 10A43 1 -10A44 10 -10A45 20 -10A46 100 -10A47 1000 -10A7D 1 -10A7E 50 -10A9D 1 -10A9E 10 -10A9F 20 -10AEB 1 -10AEC 5 -10AED 10 -10AEE 20 -10AEF 100 -10B58 10B5B 1 -10B5C 10 -10B5D 20 -10B5E 100 -10B5F 1000 -10B78 10B7B 1 -10B7C 10 -10B7D 20 -10B7E 100 -10B7F 1000 -10BA9 10BAC 1 -10BAD 10 -10BAE 20 -10BAF 100 -10CFA 1 -10CFB 5 -10CFC 10 -10CFD 50 -10CFE 100 -10CFF 1000 -10E60 10E69 1 -10E6A 20 -10E6B 30 -10E6C 40 -10E6D 50 -10E6E 60 -10E6F 70 -10E70 80 -10E71 90 -10E72 100 -10E73 200 -10E74 300 -10E75 400 -10E76 500 -10E77 600 -10E78 700 -10E79 800 -10E7A 900 -10E7B 1/2 -10E7C 1/4 -10E7D 1/3 -10E7E 2/3 -11052 1105B 1 -1105C 20 -1105D 30 -1105E 40 -1105F 50 -11060 60 -11061 70 -11062 80 -11063 90 -11064 100 -11065 1000 -11066 1106F 0 -110F0 110F9 0 -11136 1113F 0 -111D0 111D9 0 -111E1 111EA 1 -111EB 20 -111EC 30 -111ED 40 -111EE 50 -111EF 60 -111F0 70 -111F1 80 -111F2 90 -111F3 100 -111F4 1000 -112F0 112F9 0 -114D0 114D9 0 -11650 11659 0 -116C0 116C9 0 -11730 1173A 0 -1173B 20 -118E0 118EA 0 -118EB 20 -118EC 30 -118ED 40 -118EE 50 -118EF 60 -118F0 70 -118F1 80 -118F2 90 -12400 12407 2 -12408 1240E 3 -1240F 12414 4 -12415 1241D 1 -1241E 12422 1 -12423 12424 2 -12425 1242B 3 -1242C 1242E 1 -1242F 12431 3 -12432 216000 -12433 432000 -12434 12436 1 -12437 12439 3 -1243A 3 -1243B 1243C 3 -1243D 4 -1243E 4 -1243F 4 -12440 12441 6 -12442 7 -12443 12444 7 -12445 12446 8 -12447 9 -12448 9 -12449 9 -1244A 1244E 2 -1244F 12452 1 -12453 12454 4 -12455 5 -12456 12457 2 -12458 12459 1 -1245A 1/3 -1245B 2/3 -1245C 5/6 -1245D 1/3 -1245E 2/3 -1245F 1/8 -12460 1/4 -12461 1/6 -12462 1/4 -12463 1/4 -12464 1/2 -12465 1/3 -12466 2/3 -12467 40 -12468 50 -12469 1246E 4 -16A60 16A69 0 -16B50 16B59 0 -16B5B 10 -16B5C 100 -16B5D 10000 -16B5E 1000000 -16B5F 100000000 -16B60 10000000000 -16B61 1000000000000 -1D360 1D369 1 -1D36A 20 -1D36B 30 -1D36C 40 -1D36D 50 -1D36E 60 -1D36F 70 -1D370 80 -1D371 90 -1D7CE 1D7D7 0 -1D7D8 1D7E1 0 -1D7E2 1D7EB 0 -1D7EC 1D7F5 0 -1D7F6 1D7FF 0 -1E8C7 1E8CF 1 -1F100 0 -1F101 1F10A 0 -1F10B 0 -1F10C 0 -20001 7 -20064 4 -200E2 4 -20121 5 -2092A 1 -20983 30 -2098C 40 -2099C 40 -20AEA 6 -20AFD 3 -20B19 3 -22390 2 -22998 3 -23B1B 3 -2626D 4 -2F890 9 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/PerlDeci.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/PerlDeci.pl deleted file mode 100644 index 30305284..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/PerlDeci.pl +++ /dev/null @@ -1,77 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -# The mappings must be modified to get the correct values by adding the code -# point ordinal number to each one that is numeric. - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToPerlDecimalDigit'}{'format'} = 'a'; # some entries need adjustment -$utf8::SwashInfo{'ToPerlDecimalDigit'}{'missing'} = ''; # code point maps to the null string - -return <<'END'; -30 39 0 -660 669 0 -6F0 6F9 0 -7C0 7C9 0 -966 96F 0 -9E6 9EF 0 -A66 A6F 0 -AE6 AEF 0 -B66 B6F 0 -BE6 BEF 0 -C66 C6F 0 -CE6 CEF 0 -D66 D6F 0 -DE6 DEF 0 -E50 E59 0 -ED0 ED9 0 -F20 F29 0 -1040 1049 0 -1090 1099 0 -17E0 17E9 0 -1810 1819 0 -1946 194F 0 -19D0 19D9 0 -1A80 1A89 0 -1A90 1A99 0 -1B50 1B59 0 -1BB0 1BB9 0 -1C40 1C49 0 -1C50 1C59 0 -A620 A629 0 -A8D0 A8D9 0 -A900 A909 0 -A9D0 A9D9 0 -A9F0 A9F9 0 -AA50 AA59 0 -ABF0 ABF9 0 -FF10 FF19 0 -104A0 104A9 0 -11066 1106F 0 -110F0 110F9 0 -11136 1113F 0 -111D0 111D9 0 -112F0 112F9 0 -114D0 114D9 0 -11650 11659 0 -116C0 116C9 0 -11730 11739 0 -118E0 118E9 0 -16A60 16A69 0 -16B50 16B59 0 -1D7CE 1D7D7 0 -1D7D8 1D7E1 0 -1D7E2 1D7EB 0 -1D7EC 1D7F5 0 -1D7F6 1D7FF 0 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/SB.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/SB.pl deleted file mode 100644 index a7671752..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/SB.pl +++ /dev/null @@ -1,2192 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToSB'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToSB'}{'missing'} = 'Other'; - -return <<'END'; -9 Sp -A LF -B C Sp -D CR -20 Sp -21 STerm -22 Close -27 29 Close -2C 2D SContinue -2E ATerm -30 39 Numeric -3A SContinue -3F STerm -41 5A Upper -5B Close -5D Close -61 7A Lower -7B Close -7D Close -85 Sep -A0 Sp -AA Lower -AB Close -AD Format -B5 Lower -BA Lower -BB Close -C0 D6 Upper -D8 DE Upper -DF F6 Lower -F8 FF Lower -100 Upper -101 Lower -102 Upper -103 Lower -104 Upper -105 Lower -106 Upper -107 Lower -108 Upper -109 Lower -10A Upper -10B Lower -10C Upper -10D Lower -10E Upper -10F Lower -110 Upper -111 Lower -112 Upper -113 Lower -114 Upper -115 Lower -116 Upper -117 Lower -118 Upper -119 Lower -11A Upper -11B Lower -11C Upper -11D Lower -11E Upper -11F Lower -120 Upper -121 Lower -122 Upper -123 Lower -124 Upper -125 Lower -126 Upper -127 Lower -128 Upper -129 Lower -12A Upper -12B Lower -12C Upper -12D Lower -12E Upper -12F Lower -130 Upper -131 Lower -132 Upper -133 Lower -134 Upper -135 Lower -136 Upper -137 138 Lower -139 Upper -13A Lower -13B Upper -13C Lower -13D Upper -13E Lower -13F Upper -140 Lower -141 Upper -142 Lower -143 Upper -144 Lower -145 Upper -146 Lower -147 Upper -148 149 Lower -14A Upper -14B Lower -14C Upper -14D Lower -14E Upper -14F Lower -150 Upper -151 Lower -152 Upper -153 Lower -154 Upper -155 Lower -156 Upper -157 Lower -158 Upper -159 Lower -15A Upper -15B Lower -15C Upper -15D Lower -15E Upper -15F Lower -160 Upper -161 Lower -162 Upper -163 Lower -164 Upper -165 Lower -166 Upper -167 Lower -168 Upper -169 Lower -16A Upper -16B Lower -16C Upper -16D Lower -16E Upper -16F Lower -170 Upper -171 Lower -172 Upper -173 Lower -174 Upper -175 Lower -176 Upper -177 Lower -178 179 Upper -17A Lower -17B Upper -17C Lower -17D Upper -17E 180 Lower -181 182 Upper -183 Lower -184 Upper -185 Lower -186 187 Upper -188 Lower -189 18B Upper -18C 18D Lower -18E 191 Upper -192 Lower -193 194 Upper -195 Lower -196 198 Upper -199 19B Lower -19C 19D Upper -19E Lower -19F 1A0 Upper -1A1 Lower -1A2 Upper -1A3 Lower -1A4 Upper -1A5 Lower -1A6 1A7 Upper -1A8 Lower -1A9 Upper -1AA 1AB Lower -1AC Upper -1AD Lower -1AE 1AF Upper -1B0 Lower -1B1 1B3 Upper -1B4 Lower -1B5 Upper -1B6 Lower -1B7 1B8 Upper -1B9 1BA Lower -1BB OLetter -1BC Upper -1BD 1BF Lower -1C0 1C3 OLetter -1C4 1C5 Upper -1C6 Lower -1C7 1C8 Upper -1C9 Lower -1CA 1CB Upper -1CC Lower -1CD Upper -1CE Lower -1CF Upper -1D0 Lower -1D1 Upper -1D2 Lower -1D3 Upper -1D4 Lower -1D5 Upper -1D6 Lower -1D7 Upper -1D8 Lower -1D9 Upper -1DA Lower -1DB Upper -1DC 1DD Lower -1DE Upper -1DF Lower -1E0 Upper -1E1 Lower -1E2 Upper -1E3 Lower -1E4 Upper -1E5 Lower -1E6 Upper -1E7 Lower -1E8 Upper -1E9 Lower -1EA Upper -1EB Lower -1EC Upper -1ED Lower -1EE Upper -1EF 1F0 Lower -1F1 1F2 Upper -1F3 Lower -1F4 Upper -1F5 Lower -1F6 1F8 Upper -1F9 Lower -1FA Upper -1FB Lower -1FC Upper -1FD Lower -1FE Upper -1FF Lower -200 Upper -201 Lower -202 Upper -203 Lower -204 Upper -205 Lower -206 Upper -207 Lower -208 Upper -209 Lower -20A Upper -20B Lower -20C Upper -20D Lower -20E Upper -20F Lower -210 Upper -211 Lower -212 Upper -213 Lower -214 Upper -215 Lower -216 Upper -217 Lower -218 Upper -219 Lower -21A Upper -21B Lower -21C Upper -21D Lower -21E Upper -21F Lower -220 Upper -221 Lower -222 Upper -223 Lower -224 Upper -225 Lower -226 Upper -227 Lower -228 Upper -229 Lower -22A Upper -22B Lower -22C Upper -22D Lower -22E Upper -22F Lower -230 Upper -231 Lower -232 Upper -233 239 Lower -23A 23B Upper -23C Lower -23D 23E Upper -23F 240 Lower -241 Upper -242 Lower -243 246 Upper -247 Lower -248 Upper -249 Lower -24A Upper -24B Lower -24C Upper -24D Lower -24E Upper -24F 293 Lower -294 OLetter -295 2B8 Lower -2B9 2BF OLetter -2C0 2C1 Lower -2C6 2D1 OLetter -2E0 2E4 Lower -2EC OLetter -2EE OLetter -300 36F Extend -370 Upper -371 Lower -372 Upper -373 Lower -374 OLetter -376 Upper -377 Lower -37A 37D Lower -37F Upper -386 Upper -388 38A Upper -38C Upper -38E 38F Upper -390 Lower -391 3A1 Upper -3A3 3AB Upper -3AC 3CE Lower -3CF Upper -3D0 3D1 Lower -3D2 3D4 Upper -3D5 3D7 Lower -3D8 Upper -3D9 Lower -3DA Upper -3DB Lower -3DC Upper -3DD Lower -3DE Upper -3DF Lower -3E0 Upper -3E1 Lower -3E2 Upper -3E3 Lower -3E4 Upper -3E5 Lower -3E6 Upper -3E7 Lower -3E8 Upper -3E9 Lower -3EA Upper -3EB Lower -3EC Upper -3ED Lower -3EE Upper -3EF 3F3 Lower -3F4 Upper -3F5 Lower -3F7 Upper -3F8 Lower -3F9 3FA Upper -3FB 3FC Lower -3FD 42F Upper -430 45F Lower -460 Upper -461 Lower -462 Upper -463 Lower -464 Upper -465 Lower -466 Upper -467 Lower -468 Upper -469 Lower -46A Upper -46B Lower -46C Upper -46D Lower -46E Upper -46F Lower -470 Upper -471 Lower -472 Upper -473 Lower -474 Upper -475 Lower -476 Upper -477 Lower -478 Upper -479 Lower -47A Upper -47B Lower -47C Upper -47D Lower -47E Upper -47F Lower -480 Upper -481 Lower -483 489 Extend -48A Upper -48B Lower -48C Upper -48D Lower -48E Upper -48F Lower -490 Upper -491 Lower -492 Upper -493 Lower -494 Upper -495 Lower -496 Upper -497 Lower -498 Upper -499 Lower -49A Upper -49B Lower -49C Upper -49D Lower -49E Upper -49F Lower -4A0 Upper -4A1 Lower -4A2 Upper -4A3 Lower -4A4 Upper -4A5 Lower -4A6 Upper -4A7 Lower -4A8 Upper -4A9 Lower -4AA Upper -4AB Lower -4AC Upper -4AD Lower -4AE Upper -4AF Lower -4B0 Upper -4B1 Lower -4B2 Upper -4B3 Lower -4B4 Upper -4B5 Lower -4B6 Upper -4B7 Lower -4B8 Upper -4B9 Lower -4BA Upper -4BB Lower -4BC Upper -4BD Lower -4BE Upper -4BF Lower -4C0 4C1 Upper -4C2 Lower -4C3 Upper -4C4 Lower -4C5 Upper -4C6 Lower -4C7 Upper -4C8 Lower -4C9 Upper -4CA Lower -4CB Upper -4CC Lower -4CD Upper -4CE 4CF Lower -4D0 Upper -4D1 Lower -4D2 Upper -4D3 Lower -4D4 Upper -4D5 Lower -4D6 Upper -4D7 Lower -4D8 Upper -4D9 Lower -4DA Upper -4DB Lower -4DC Upper -4DD Lower -4DE Upper -4DF Lower -4E0 Upper -4E1 Lower -4E2 Upper -4E3 Lower -4E4 Upper -4E5 Lower -4E6 Upper -4E7 Lower -4E8 Upper -4E9 Lower -4EA Upper -4EB Lower -4EC Upper -4ED Lower -4EE Upper -4EF Lower -4F0 Upper -4F1 Lower -4F2 Upper -4F3 Lower -4F4 Upper -4F5 Lower -4F6 Upper -4F7 Lower -4F8 Upper -4F9 Lower -4FA Upper -4FB Lower -4FC Upper -4FD Lower -4FE Upper -4FF Lower -500 Upper -501 Lower -502 Upper -503 Lower -504 Upper -505 Lower -506 Upper -507 Lower -508 Upper -509 Lower -50A Upper -50B Lower -50C Upper -50D Lower -50E Upper -50F Lower -510 Upper -511 Lower -512 Upper -513 Lower -514 Upper -515 Lower -516 Upper -517 Lower -518 Upper -519 Lower -51A Upper -51B Lower -51C Upper -51D Lower -51E Upper -51F Lower -520 Upper -521 Lower -522 Upper -523 Lower -524 Upper -525 Lower -526 Upper -527 Lower -528 Upper -529 Lower -52A Upper -52B Lower -52C Upper -52D Lower -52E Upper -52F Lower -531 556 Upper -559 OLetter -55D SContinue -561 587 Lower -589 STerm -591 5BD Extend -5BF Extend -5C1 5C2 Extend -5C4 5C5 Extend -5C7 Extend -5D0 5EA OLetter -5F0 5F3 OLetter -600 605 Format -60C 60D SContinue -610 61A Extend -61C Format -61F STerm -620 64A OLetter -64B 65F Extend -660 669 Numeric -66B 66C Numeric -66E 66F OLetter -670 Extend -671 6D3 OLetter -6D4 STerm -6D5 OLetter -6D6 6DC Extend -6DD Format -6DF 6E4 Extend -6E5 6E6 OLetter -6E7 6E8 Extend -6EA 6ED Extend -6EE 6EF OLetter -6F0 6F9 Numeric -6FA 6FC OLetter -6FF OLetter -700 702 STerm -70F Format -710 OLetter -711 Extend -712 72F OLetter -730 74A Extend -74D 7A5 OLetter -7A6 7B0 Extend -7B1 OLetter -7C0 7C9 Numeric -7CA 7EA OLetter -7EB 7F3 Extend -7F4 7F5 OLetter -7F8 SContinue -7F9 STerm -7FA OLetter -800 815 OLetter -816 819 Extend -81A OLetter -81B 823 Extend -824 OLetter -825 827 Extend -828 OLetter -829 82D Extend -840 858 OLetter -859 85B Extend -8A0 8B4 OLetter -8E3 903 Extend -904 939 OLetter -93A 93C Extend -93D OLetter -93E 94F Extend -950 OLetter -951 957 Extend -958 961 OLetter -962 963 Extend -964 965 STerm -966 96F Numeric -971 980 OLetter -981 983 Extend -985 98C OLetter -98F 990 OLetter -993 9A8 OLetter -9AA 9B0 OLetter -9B2 OLetter -9B6 9B9 OLetter -9BC Extend -9BD OLetter -9BE 9C4 Extend -9C7 9C8 Extend -9CB 9CD Extend -9CE OLetter -9D7 Extend -9DC 9DD OLetter -9DF 9E1 OLetter -9E2 9E3 Extend -9E6 9EF Numeric -9F0 9F1 OLetter -A01 A03 Extend -A05 A0A OLetter -A0F A10 OLetter -A13 A28 OLetter -A2A A30 OLetter -A32 A33 OLetter -A35 A36 OLetter -A38 A39 OLetter -A3C Extend -A3E A42 Extend -A47 A48 Extend -A4B A4D Extend -A51 Extend -A59 A5C OLetter -A5E OLetter -A66 A6F Numeric -A70 A71 Extend -A72 A74 OLetter -A75 Extend -A81 A83 Extend -A85 A8D OLetter -A8F A91 OLetter -A93 AA8 OLetter -AAA AB0 OLetter -AB2 AB3 OLetter -AB5 AB9 OLetter -ABC Extend -ABD OLetter -ABE AC5 Extend -AC7 AC9 Extend -ACB ACD Extend -AD0 OLetter -AE0 AE1 OLetter -AE2 AE3 Extend -AE6 AEF Numeric -AF9 OLetter -B01 B03 Extend -B05 B0C OLetter -B0F B10 OLetter -B13 B28 OLetter -B2A B30 OLetter -B32 B33 OLetter -B35 B39 OLetter -B3C Extend -B3D OLetter -B3E B44 Extend -B47 B48 Extend -B4B B4D Extend -B56 B57 Extend -B5C B5D OLetter -B5F B61 OLetter -B62 B63 Extend -B66 B6F Numeric -B71 OLetter -B82 Extend -B83 OLetter -B85 B8A OLetter -B8E B90 OLetter -B92 B95 OLetter -B99 B9A OLetter -B9C OLetter -B9E B9F OLetter -BA3 BA4 OLetter -BA8 BAA OLetter -BAE BB9 OLetter -BBE BC2 Extend -BC6 BC8 Extend -BCA BCD Extend -BD0 OLetter -BD7 Extend -BE6 BEF Numeric -C00 C03 Extend -C05 C0C OLetter -C0E C10 OLetter -C12 C28 OLetter -C2A C39 OLetter -C3D OLetter -C3E C44 Extend -C46 C48 Extend -C4A C4D Extend -C55 C56 Extend -C58 C5A OLetter -C60 C61 OLetter -C62 C63 Extend -C66 C6F Numeric -C81 C83 Extend -C85 C8C OLetter -C8E C90 OLetter -C92 CA8 OLetter -CAA CB3 OLetter -CB5 CB9 OLetter -CBC Extend -CBD OLetter -CBE CC4 Extend -CC6 CC8 Extend -CCA CCD Extend -CD5 CD6 Extend -CDE OLetter -CE0 CE1 OLetter -CE2 CE3 Extend -CE6 CEF Numeric -CF1 CF2 OLetter -D01 D03 Extend -D05 D0C OLetter -D0E D10 OLetter -D12 D3A OLetter -D3D OLetter -D3E D44 Extend -D46 D48 Extend -D4A D4D Extend -D4E OLetter -D57 Extend -D5F D61 OLetter -D62 D63 Extend -D66 D6F Numeric -D7A D7F OLetter -D82 D83 Extend -D85 D96 OLetter -D9A DB1 OLetter -DB3 DBB OLetter -DBD OLetter -DC0 DC6 OLetter -DCA Extend -DCF DD4 Extend -DD6 Extend -DD8 DDF Extend -DE6 DEF Numeric -DF2 DF3 Extend -E01 E30 OLetter -E31 Extend -E32 E33 OLetter -E34 E3A Extend -E40 E46 OLetter -E47 E4E Extend -E50 E59 Numeric -E81 E82 OLetter -E84 OLetter -E87 E88 OLetter -E8A OLetter -E8D OLetter -E94 E97 OLetter -E99 E9F OLetter -EA1 EA3 OLetter -EA5 OLetter -EA7 OLetter -EAA EAB OLetter -EAD EB0 OLetter -EB1 Extend -EB2 EB3 OLetter -EB4 EB9 Extend -EBB EBC Extend -EBD OLetter -EC0 EC4 OLetter -EC6 OLetter -EC8 ECD Extend -ED0 ED9 Numeric -EDC EDF OLetter -F00 OLetter -F18 F19 Extend -F20 F29 Numeric -F35 Extend -F37 Extend -F39 Extend -F3A F3D Close -F3E F3F Extend -F40 F47 OLetter -F49 F6C OLetter -F71 F84 Extend -F86 F87 Extend -F88 F8C OLetter -F8D F97 Extend -F99 FBC Extend -FC6 Extend -1000 102A OLetter -102B 103E Extend -103F OLetter -1040 1049 Numeric -104A 104B STerm -1050 1055 OLetter -1056 1059 Extend -105A 105D OLetter -105E 1060 Extend -1061 OLetter -1062 1064 Extend -1065 1066 OLetter -1067 106D Extend -106E 1070 OLetter -1071 1074 Extend -1075 1081 OLetter -1082 108D Extend -108E OLetter -108F Extend -1090 1099 Numeric -109A 109D Extend -10A0 10C5 Upper -10C7 Upper -10CD Upper -10D0 10FA OLetter -10FC 1248 OLetter -124A 124D OLetter -1250 1256 OLetter -1258 OLetter -125A 125D OLetter -1260 1288 OLetter -128A 128D OLetter -1290 12B0 OLetter -12B2 12B5 OLetter -12B8 12BE OLetter -12C0 OLetter -12C2 12C5 OLetter -12C8 12D6 OLetter -12D8 1310 OLetter -1312 1315 OLetter -1318 135A OLetter -135D 135F Extend -1362 STerm -1367 1368 STerm -1380 138F OLetter -13A0 13F5 Upper -13F8 13FD Lower -1401 166C OLetter -166E STerm -166F 167F OLetter -1680 Sp -1681 169A OLetter -169B 169C Close -16A0 16EA OLetter -16EE 16F8 OLetter -1700 170C OLetter -170E 1711 OLetter -1712 1714 Extend -1720 1731 OLetter -1732 1734 Extend -1735 1736 STerm -1740 1751 OLetter -1752 1753 Extend -1760 176C OLetter -176E 1770 OLetter -1772 1773 Extend -1780 17B3 OLetter -17B4 17D3 Extend -17D7 OLetter -17DC OLetter -17DD Extend -17E0 17E9 Numeric -1802 SContinue -1803 STerm -1808 SContinue -1809 STerm -180B 180D Extend -180E Format -1810 1819 Numeric -1820 1877 OLetter -1880 18A8 OLetter -18A9 Extend -18AA OLetter -18B0 18F5 OLetter -1900 191E OLetter -1920 192B Extend -1930 193B Extend -1944 1945 STerm -1946 194F Numeric -1950 196D OLetter -1970 1974 OLetter -1980 19AB OLetter -19B0 19C9 OLetter -19D0 19D9 Numeric -1A00 1A16 OLetter -1A17 1A1B Extend -1A20 1A54 OLetter -1A55 1A5E Extend -1A60 1A7C Extend -1A7F Extend -1A80 1A89 Numeric -1A90 1A99 Numeric -1AA7 OLetter -1AA8 1AAB STerm -1AB0 1ABE Extend -1B00 1B04 Extend -1B05 1B33 OLetter -1B34 1B44 Extend -1B45 1B4B OLetter -1B50 1B59 Numeric -1B5A 1B5B STerm -1B5E 1B5F STerm -1B6B 1B73 Extend -1B80 1B82 Extend -1B83 1BA0 OLetter -1BA1 1BAD Extend -1BAE 1BAF OLetter -1BB0 1BB9 Numeric -1BBA 1BE5 OLetter -1BE6 1BF3 Extend -1C00 1C23 OLetter -1C24 1C37 Extend -1C3B 1C3C STerm -1C40 1C49 Numeric -1C4D 1C4F OLetter -1C50 1C59 Numeric -1C5A 1C7D OLetter -1C7E 1C7F STerm -1CD0 1CD2 Extend -1CD4 1CE8 Extend -1CE9 1CEC OLetter -1CED Extend -1CEE 1CF1 OLetter -1CF2 1CF4 Extend -1CF5 1CF6 OLetter -1CF8 1CF9 Extend -1D00 1DBF Lower -1DC0 1DF5 Extend -1DFC 1DFF Extend -1E00 Upper -1E01 Lower -1E02 Upper -1E03 Lower -1E04 Upper -1E05 Lower -1E06 Upper -1E07 Lower -1E08 Upper -1E09 Lower -1E0A Upper -1E0B Lower -1E0C Upper -1E0D Lower -1E0E Upper -1E0F Lower -1E10 Upper -1E11 Lower -1E12 Upper -1E13 Lower -1E14 Upper -1E15 Lower -1E16 Upper -1E17 Lower -1E18 Upper -1E19 Lower -1E1A Upper -1E1B Lower -1E1C Upper -1E1D Lower -1E1E Upper -1E1F Lower -1E20 Upper -1E21 Lower -1E22 Upper -1E23 Lower -1E24 Upper -1E25 Lower -1E26 Upper -1E27 Lower -1E28 Upper -1E29 Lower -1E2A Upper -1E2B Lower -1E2C Upper -1E2D Lower -1E2E Upper -1E2F Lower -1E30 Upper -1E31 Lower -1E32 Upper -1E33 Lower -1E34 Upper -1E35 Lower -1E36 Upper -1E37 Lower -1E38 Upper -1E39 Lower -1E3A Upper -1E3B Lower -1E3C Upper -1E3D Lower -1E3E Upper -1E3F Lower -1E40 Upper -1E41 Lower -1E42 Upper -1E43 Lower -1E44 Upper -1E45 Lower -1E46 Upper -1E47 Lower -1E48 Upper -1E49 Lower -1E4A Upper -1E4B Lower -1E4C Upper -1E4D Lower -1E4E Upper -1E4F Lower -1E50 Upper -1E51 Lower -1E52 Upper -1E53 Lower -1E54 Upper -1E55 Lower -1E56 Upper -1E57 Lower -1E58 Upper -1E59 Lower -1E5A Upper -1E5B Lower -1E5C Upper -1E5D Lower -1E5E Upper -1E5F Lower -1E60 Upper -1E61 Lower -1E62 Upper -1E63 Lower -1E64 Upper -1E65 Lower -1E66 Upper -1E67 Lower -1E68 Upper -1E69 Lower -1E6A Upper -1E6B Lower -1E6C Upper -1E6D Lower -1E6E Upper -1E6F Lower -1E70 Upper -1E71 Lower -1E72 Upper -1E73 Lower -1E74 Upper -1E75 Lower -1E76 Upper -1E77 Lower -1E78 Upper -1E79 Lower -1E7A Upper -1E7B Lower -1E7C Upper -1E7D Lower -1E7E Upper -1E7F Lower -1E80 Upper -1E81 Lower -1E82 Upper -1E83 Lower -1E84 Upper -1E85 Lower -1E86 Upper -1E87 Lower -1E88 Upper -1E89 Lower -1E8A Upper -1E8B Lower -1E8C Upper -1E8D Lower -1E8E Upper -1E8F Lower -1E90 Upper -1E91 Lower -1E92 Upper -1E93 Lower -1E94 Upper -1E95 1E9D Lower -1E9E Upper -1E9F Lower -1EA0 Upper -1EA1 Lower -1EA2 Upper -1EA3 Lower -1EA4 Upper -1EA5 Lower -1EA6 Upper -1EA7 Lower -1EA8 Upper -1EA9 Lower -1EAA Upper -1EAB Lower -1EAC Upper -1EAD Lower -1EAE Upper -1EAF Lower -1EB0 Upper -1EB1 Lower -1EB2 Upper -1EB3 Lower -1EB4 Upper -1EB5 Lower -1EB6 Upper -1EB7 Lower -1EB8 Upper -1EB9 Lower -1EBA Upper -1EBB Lower -1EBC Upper -1EBD Lower -1EBE Upper -1EBF Lower -1EC0 Upper -1EC1 Lower -1EC2 Upper -1EC3 Lower -1EC4 Upper -1EC5 Lower -1EC6 Upper -1EC7 Lower -1EC8 Upper -1EC9 Lower -1ECA Upper -1ECB Lower -1ECC Upper -1ECD Lower -1ECE Upper -1ECF Lower -1ED0 Upper -1ED1 Lower -1ED2 Upper -1ED3 Lower -1ED4 Upper -1ED5 Lower -1ED6 Upper -1ED7 Lower -1ED8 Upper -1ED9 Lower -1EDA Upper -1EDB Lower -1EDC Upper -1EDD Lower -1EDE Upper -1EDF Lower -1EE0 Upper -1EE1 Lower -1EE2 Upper -1EE3 Lower -1EE4 Upper -1EE5 Lower -1EE6 Upper -1EE7 Lower -1EE8 Upper -1EE9 Lower -1EEA Upper -1EEB Lower -1EEC Upper -1EED Lower -1EEE Upper -1EEF Lower -1EF0 Upper -1EF1 Lower -1EF2 Upper -1EF3 Lower -1EF4 Upper -1EF5 Lower -1EF6 Upper -1EF7 Lower -1EF8 Upper -1EF9 Lower -1EFA Upper -1EFB Lower -1EFC Upper -1EFD Lower -1EFE Upper -1EFF 1F07 Lower -1F08 1F0F Upper -1F10 1F15 Lower -1F18 1F1D Upper -1F20 1F27 Lower -1F28 1F2F Upper -1F30 1F37 Lower -1F38 1F3F Upper -1F40 1F45 Lower -1F48 1F4D Upper -1F50 1F57 Lower -1F59 Upper -1F5B Upper -1F5D Upper -1F5F Upper -1F60 1F67 Lower -1F68 1F6F Upper -1F70 1F7D Lower -1F80 1F87 Lower -1F88 1F8F Upper -1F90 1F97 Lower -1F98 1F9F Upper -1FA0 1FA7 Lower -1FA8 1FAF Upper -1FB0 1FB4 Lower -1FB6 1FB7 Lower -1FB8 1FBC Upper -1FBE Lower -1FC2 1FC4 Lower -1FC6 1FC7 Lower -1FC8 1FCC Upper -1FD0 1FD3 Lower -1FD6 1FD7 Lower -1FD8 1FDB Upper -1FE0 1FE7 Lower -1FE8 1FEC Upper -1FF2 1FF4 Lower -1FF6 1FF7 Lower -1FF8 1FFC Upper -2000 200A Sp -200B Format -200C 200D Extend -200E 200F Format -2013 2014 SContinue -2018 201F Close -2024 ATerm -2028 2029 Sep -202A 202E Format -202F Sp -2039 203A Close -203C 203D STerm -2045 2046 Close -2047 2049 STerm -205F Sp -2060 2064 Format -2066 206F Format -2071 Lower -207D 207E Close -207F Lower -208D 208E Close -2090 209C Lower -20D0 20F0 Extend -2102 Upper -2107 Upper -210A Lower -210B 210D Upper -210E 210F Lower -2110 2112 Upper -2113 Lower -2115 Upper -2119 211D Upper -2124 Upper -2126 Upper -2128 Upper -212A 212D Upper -212F Lower -2130 2133 Upper -2134 Lower -2135 2138 OLetter -2139 Lower -213C 213D Lower -213E 213F Upper -2145 Upper -2146 2149 Lower -214E Lower -2160 216F Upper -2170 217F Lower -2180 2182 OLetter -2183 Upper -2184 Lower -2185 2188 OLetter -2308 230B Close -2329 232A Close -24B6 24CF Upper -24D0 24E9 Lower -275B 2760 Close -2768 2775 Close -27C5 27C6 Close -27E6 27EF Close -2983 2998 Close -29D8 29DB Close -29FC 29FD Close -2C00 2C2E Upper -2C30 2C5E Lower -2C60 Upper -2C61 Lower -2C62 2C64 Upper -2C65 2C66 Lower -2C67 Upper -2C68 Lower -2C69 Upper -2C6A Lower -2C6B Upper -2C6C Lower -2C6D 2C70 Upper -2C71 Lower -2C72 Upper -2C73 2C74 Lower -2C75 Upper -2C76 2C7D Lower -2C7E 2C80 Upper -2C81 Lower -2C82 Upper -2C83 Lower -2C84 Upper -2C85 Lower -2C86 Upper -2C87 Lower -2C88 Upper -2C89 Lower -2C8A Upper -2C8B Lower -2C8C Upper -2C8D Lower -2C8E Upper -2C8F Lower -2C90 Upper -2C91 Lower -2C92 Upper -2C93 Lower -2C94 Upper -2C95 Lower -2C96 Upper -2C97 Lower -2C98 Upper -2C99 Lower -2C9A Upper -2C9B Lower -2C9C Upper -2C9D Lower -2C9E Upper -2C9F Lower -2CA0 Upper -2CA1 Lower -2CA2 Upper -2CA3 Lower -2CA4 Upper -2CA5 Lower -2CA6 Upper -2CA7 Lower -2CA8 Upper -2CA9 Lower -2CAA Upper -2CAB Lower -2CAC Upper -2CAD Lower -2CAE Upper -2CAF Lower -2CB0 Upper -2CB1 Lower -2CB2 Upper -2CB3 Lower -2CB4 Upper -2CB5 Lower -2CB6 Upper -2CB7 Lower -2CB8 Upper -2CB9 Lower -2CBA Upper -2CBB Lower -2CBC Upper -2CBD Lower -2CBE Upper -2CBF Lower -2CC0 Upper -2CC1 Lower -2CC2 Upper -2CC3 Lower -2CC4 Upper -2CC5 Lower -2CC6 Upper -2CC7 Lower -2CC8 Upper -2CC9 Lower -2CCA Upper -2CCB Lower -2CCC Upper -2CCD Lower -2CCE Upper -2CCF Lower -2CD0 Upper -2CD1 Lower -2CD2 Upper -2CD3 Lower -2CD4 Upper -2CD5 Lower -2CD6 Upper -2CD7 Lower -2CD8 Upper -2CD9 Lower -2CDA Upper -2CDB Lower -2CDC Upper -2CDD Lower -2CDE Upper -2CDF Lower -2CE0 Upper -2CE1 Lower -2CE2 Upper -2CE3 2CE4 Lower -2CEB Upper -2CEC Lower -2CED Upper -2CEE Lower -2CEF 2CF1 Extend -2CF2 Upper -2CF3 Lower -2D00 2D25 Lower -2D27 Lower -2D2D Lower -2D30 2D67 OLetter -2D6F OLetter -2D7F Extend -2D80 2D96 OLetter -2DA0 2DA6 OLetter -2DA8 2DAE OLetter -2DB0 2DB6 OLetter -2DB8 2DBE OLetter -2DC0 2DC6 OLetter -2DC8 2DCE OLetter -2DD0 2DD6 OLetter -2DD8 2DDE OLetter -2DE0 2DFF Extend -2E00 2E0D Close -2E1C 2E1D Close -2E20 2E29 Close -2E2E STerm -2E2F OLetter -2E3C STerm -2E42 Close -3000 Sp -3001 SContinue -3002 STerm -3005 3007 OLetter -3008 3011 Close -3014 301B Close -301D 301F Close -3021 3029 OLetter -302A 302F Extend -3031 3035 OLetter -3038 303C OLetter -3041 3096 OLetter -3099 309A Extend -309D 309F OLetter -30A1 30FA OLetter -30FC 30FF OLetter -3105 312D OLetter -3131 318E OLetter -31A0 31BA OLetter -31F0 31FF OLetter -3400 4DB5 OLetter -4E00 9FD5 OLetter -A000 A48C OLetter -A4D0 A4FD OLetter -A4FF STerm -A500 A60C OLetter -A60E A60F STerm -A610 A61F OLetter -A620 A629 Numeric -A62A A62B OLetter -A640 Upper -A641 Lower -A642 Upper -A643 Lower -A644 Upper -A645 Lower -A646 Upper -A647 Lower -A648 Upper -A649 Lower -A64A Upper -A64B Lower -A64C Upper -A64D Lower -A64E Upper -A64F Lower -A650 Upper -A651 Lower -A652 Upper -A653 Lower -A654 Upper -A655 Lower -A656 Upper -A657 Lower -A658 Upper -A659 Lower -A65A Upper -A65B Lower -A65C Upper -A65D Lower -A65E Upper -A65F Lower -A660 Upper -A661 Lower -A662 Upper -A663 Lower -A664 Upper -A665 Lower -A666 Upper -A667 Lower -A668 Upper -A669 Lower -A66A Upper -A66B Lower -A66C Upper -A66D Lower -A66E OLetter -A66F A672 Extend -A674 A67D Extend -A67F OLetter -A680 Upper -A681 Lower -A682 Upper -A683 Lower -A684 Upper -A685 Lower -A686 Upper -A687 Lower -A688 Upper -A689 Lower -A68A Upper -A68B Lower -A68C Upper -A68D Lower -A68E Upper -A68F Lower -A690 Upper -A691 Lower -A692 Upper -A693 Lower -A694 Upper -A695 Lower -A696 Upper -A697 Lower -A698 Upper -A699 Lower -A69A Upper -A69B A69D Lower -A69E A69F Extend -A6A0 A6EF OLetter -A6F0 A6F1 Extend -A6F3 STerm -A6F7 STerm -A717 A71F OLetter -A722 Upper -A723 Lower -A724 Upper -A725 Lower -A726 Upper -A727 Lower -A728 Upper -A729 Lower -A72A Upper -A72B Lower -A72C Upper -A72D Lower -A72E Upper -A72F A731 Lower -A732 Upper -A733 Lower -A734 Upper -A735 Lower -A736 Upper -A737 Lower -A738 Upper -A739 Lower -A73A Upper -A73B Lower -A73C Upper -A73D Lower -A73E Upper -A73F Lower -A740 Upper -A741 Lower -A742 Upper -A743 Lower -A744 Upper -A745 Lower -A746 Upper -A747 Lower -A748 Upper -A749 Lower -A74A Upper -A74B Lower -A74C Upper -A74D Lower -A74E Upper -A74F Lower -A750 Upper -A751 Lower -A752 Upper -A753 Lower -A754 Upper -A755 Lower -A756 Upper -A757 Lower -A758 Upper -A759 Lower -A75A Upper -A75B Lower -A75C Upper -A75D Lower -A75E Upper -A75F Lower -A760 Upper -A761 Lower -A762 Upper -A763 Lower -A764 Upper -A765 Lower -A766 Upper -A767 Lower -A768 Upper -A769 Lower -A76A Upper -A76B Lower -A76C Upper -A76D Lower -A76E Upper -A76F A778 Lower -A779 Upper -A77A Lower -A77B Upper -A77C Lower -A77D A77E Upper -A77F Lower -A780 Upper -A781 Lower -A782 Upper -A783 Lower -A784 Upper -A785 Lower -A786 Upper -A787 Lower -A788 OLetter -A78B Upper -A78C Lower -A78D Upper -A78E Lower -A78F OLetter -A790 Upper -A791 Lower -A792 Upper -A793 A795 Lower -A796 Upper -A797 Lower -A798 Upper -A799 Lower -A79A Upper -A79B Lower -A79C Upper -A79D Lower -A79E Upper -A79F Lower -A7A0 Upper -A7A1 Lower -A7A2 Upper -A7A3 Lower -A7A4 Upper -A7A5 Lower -A7A6 Upper -A7A7 Lower -A7A8 Upper -A7A9 Lower -A7AA A7AD Upper -A7B0 A7B4 Upper -A7B5 Lower -A7B6 Upper -A7B7 Lower -A7F7 OLetter -A7F8 A7FA Lower -A7FB A801 OLetter -A802 Extend -A803 A805 OLetter -A806 Extend -A807 A80A OLetter -A80B Extend -A80C A822 OLetter -A823 A827 Extend -A840 A873 OLetter -A876 A877 STerm -A880 A881 Extend -A882 A8B3 OLetter -A8B4 A8C4 Extend -A8CE A8CF STerm -A8D0 A8D9 Numeric -A8E0 A8F1 Extend -A8F2 A8F7 OLetter -A8FB OLetter -A8FD OLetter -A900 A909 Numeric -A90A A925 OLetter -A926 A92D Extend -A92F STerm -A930 A946 OLetter -A947 A953 Extend -A960 A97C OLetter -A980 A983 Extend -A984 A9B2 OLetter -A9B3 A9C0 Extend -A9C8 A9C9 STerm -A9CF OLetter -A9D0 A9D9 Numeric -A9E0 A9E4 OLetter -A9E5 Extend -A9E6 A9EF OLetter -A9F0 A9F9 Numeric -A9FA A9FE OLetter -AA00 AA28 OLetter -AA29 AA36 Extend -AA40 AA42 OLetter -AA43 Extend -AA44 AA4B OLetter -AA4C AA4D Extend -AA50 AA59 Numeric -AA5D AA5F STerm -AA60 AA76 OLetter -AA7A OLetter -AA7B AA7D Extend -AA7E AAAF OLetter -AAB0 Extend -AAB1 OLetter -AAB2 AAB4 Extend -AAB5 AAB6 OLetter -AAB7 AAB8 Extend -AAB9 AABD OLetter -AABE AABF Extend -AAC0 OLetter -AAC1 Extend -AAC2 OLetter -AADB AADD OLetter -AAE0 AAEA OLetter -AAEB AAEF Extend -AAF0 AAF1 STerm -AAF2 AAF4 OLetter -AAF5 AAF6 Extend -AB01 AB06 OLetter -AB09 AB0E OLetter -AB11 AB16 OLetter -AB20 AB26 OLetter -AB28 AB2E OLetter -AB30 AB5A Lower -AB5C AB65 Lower -AB70 ABBF Lower -ABC0 ABE2 OLetter -ABE3 ABEA Extend -ABEB STerm -ABEC ABED Extend -ABF0 ABF9 Numeric -AC00 D7A3 OLetter -D7B0 D7C6 OLetter -D7CB D7FB OLetter -F900 FA6D OLetter -FA70 FAD9 OLetter -FB00 FB06 Lower -FB13 FB17 Lower -FB1D OLetter -FB1E Extend -FB1F FB28 OLetter -FB2A FB36 OLetter -FB38 FB3C OLetter -FB3E OLetter -FB40 FB41 OLetter -FB43 FB44 OLetter -FB46 FBB1 OLetter -FBD3 FD3D OLetter -FD3E FD3F Close -FD50 FD8F OLetter -FD92 FDC7 OLetter -FDF0 FDFB OLetter -FE00 FE0F Extend -FE10 FE11 SContinue -FE13 SContinue -FE17 FE18 Close -FE20 FE2F Extend -FE31 FE32 SContinue -FE35 FE44 Close -FE47 FE48 Close -FE50 FE51 SContinue -FE52 ATerm -FE55 SContinue -FE56 FE57 STerm -FE58 SContinue -FE59 FE5E Close -FE63 SContinue -FE70 FE74 OLetter -FE76 FEFC OLetter -FEFF Format -FF01 STerm -FF08 FF09 Close -FF0C FF0D SContinue -FF0E ATerm -FF1A SContinue -FF1F STerm -FF21 FF3A Upper -FF3B Close -FF3D Close -FF41 FF5A Lower -FF5B Close -FF5D Close -FF5F FF60 Close -FF61 STerm -FF62 FF63 Close -FF64 SContinue -FF66 FF9D OLetter -FF9E FF9F Extend -FFA0 FFBE OLetter -FFC2 FFC7 OLetter -FFCA FFCF OLetter -FFD2 FFD7 OLetter -FFDA FFDC OLetter -FFF9 FFFB Format -10000 1000B OLetter -1000D 10026 OLetter -10028 1003A OLetter -1003C 1003D OLetter -1003F 1004D OLetter -10050 1005D OLetter -10080 100FA OLetter -10140 10174 OLetter -101FD Extend -10280 1029C OLetter -102A0 102D0 OLetter -102E0 Extend -10300 1031F OLetter -10330 1034A OLetter -10350 10375 OLetter -10376 1037A Extend -10380 1039D OLetter -103A0 103C3 OLetter -103C8 103CF OLetter -103D1 103D5 OLetter -10400 10427 Upper -10428 1044F Lower -10450 1049D OLetter -104A0 104A9 Numeric -10500 10527 OLetter -10530 10563 OLetter -10600 10736 OLetter -10740 10755 OLetter -10760 10767 OLetter -10800 10805 OLetter -10808 OLetter -1080A 10835 OLetter -10837 10838 OLetter -1083C OLetter -1083F 10855 OLetter -10860 10876 OLetter -10880 1089E OLetter -108E0 108F2 OLetter -108F4 108F5 OLetter -10900 10915 OLetter -10920 10939 OLetter -10980 109B7 OLetter -109BE 109BF OLetter -10A00 OLetter -10A01 10A03 Extend -10A05 10A06 Extend -10A0C 10A0F Extend -10A10 10A13 OLetter -10A15 10A17 OLetter -10A19 10A33 OLetter -10A38 10A3A Extend -10A3F Extend -10A56 10A57 STerm -10A60 10A7C OLetter -10A80 10A9C OLetter -10AC0 10AC7 OLetter -10AC9 10AE4 OLetter -10AE5 10AE6 Extend -10B00 10B35 OLetter -10B40 10B55 OLetter -10B60 10B72 OLetter -10B80 10B91 OLetter -10C00 10C48 OLetter -10C80 10CB2 Upper -10CC0 10CF2 Lower -11000 11002 Extend -11003 11037 OLetter -11038 11046 Extend -11047 11048 STerm -11066 1106F Numeric -1107F 11082 Extend -11083 110AF OLetter -110B0 110BA Extend -110BD Format -110BE 110C1 STerm -110D0 110E8 OLetter -110F0 110F9 Numeric -11100 11102 Extend -11103 11126 OLetter -11127 11134 Extend -11136 1113F Numeric -11141 11143 STerm -11150 11172 OLetter -11173 Extend -11176 OLetter -11180 11182 Extend -11183 111B2 OLetter -111B3 111C0 Extend -111C1 111C4 OLetter -111C5 111C6 STerm -111CA 111CC Extend -111CD STerm -111D0 111D9 Numeric -111DA OLetter -111DC OLetter -111DE 111DF STerm -11200 11211 OLetter -11213 1122B OLetter -1122C 11237 Extend -11238 11239 STerm -1123B 1123C STerm -11280 11286 OLetter -11288 OLetter -1128A 1128D OLetter -1128F 1129D OLetter -1129F 112A8 OLetter -112A9 STerm -112B0 112DE OLetter -112DF 112EA Extend -112F0 112F9 Numeric -11300 11303 Extend -11305 1130C OLetter -1130F 11310 OLetter -11313 11328 OLetter -1132A 11330 OLetter -11332 11333 OLetter -11335 11339 OLetter -1133C Extend -1133D OLetter -1133E 11344 Extend -11347 11348 Extend -1134B 1134D Extend -11350 OLetter -11357 Extend -1135D 11361 OLetter -11362 11363 Extend -11366 1136C Extend -11370 11374 Extend -11480 114AF OLetter -114B0 114C3 Extend -114C4 114C5 OLetter -114C7 OLetter -114D0 114D9 Numeric -11580 115AE OLetter -115AF 115B5 Extend -115B8 115C0 Extend -115C2 115C3 STerm -115C9 115D7 STerm -115D8 115DB OLetter -115DC 115DD Extend -11600 1162F OLetter -11630 11640 Extend -11641 11642 STerm -11644 OLetter -11650 11659 Numeric -11680 116AA OLetter -116AB 116B7 Extend -116C0 116C9 Numeric -11700 11719 OLetter -1171D 1172B Extend -11730 11739 Numeric -1173C 1173E STerm -118A0 118BF Upper -118C0 118DF Lower -118E0 118E9 Numeric -118FF OLetter -11AC0 11AF8 OLetter -12000 12399 OLetter -12400 1246E OLetter -12480 12543 OLetter -13000 1342E OLetter -14400 14646 OLetter -16800 16A38 OLetter -16A40 16A5E OLetter -16A60 16A69 Numeric -16A6E 16A6F STerm -16AD0 16AED OLetter -16AF0 16AF4 Extend -16AF5 STerm -16B00 16B2F OLetter -16B30 16B36 Extend -16B37 16B38 STerm -16B40 16B43 OLetter -16B44 STerm -16B50 16B59 Numeric -16B63 16B77 OLetter -16B7D 16B8F OLetter -16F00 16F44 OLetter -16F50 OLetter -16F51 16F7E Extend -16F8F 16F92 Extend -16F93 16F9F OLetter -1B000 1B001 OLetter -1BC00 1BC6A OLetter -1BC70 1BC7C OLetter -1BC80 1BC88 OLetter -1BC90 1BC99 OLetter -1BC9D 1BC9E Extend -1BC9F STerm -1BCA0 1BCA3 Format -1D165 1D169 Extend -1D16D 1D172 Extend -1D173 1D17A Format -1D17B 1D182 Extend -1D185 1D18B Extend -1D1AA 1D1AD Extend -1D242 1D244 Extend -1D400 1D419 Upper -1D41A 1D433 Lower -1D434 1D44D Upper -1D44E 1D454 Lower -1D456 1D467 Lower -1D468 1D481 Upper -1D482 1D49B Lower -1D49C Upper -1D49E 1D49F Upper -1D4A2 Upper -1D4A5 1D4A6 Upper -1D4A9 1D4AC Upper -1D4AE 1D4B5 Upper -1D4B6 1D4B9 Lower -1D4BB Lower -1D4BD 1D4C3 Lower -1D4C5 1D4CF Lower -1D4D0 1D4E9 Upper -1D4EA 1D503 Lower -1D504 1D505 Upper -1D507 1D50A Upper -1D50D 1D514 Upper -1D516 1D51C Upper -1D51E 1D537 Lower -1D538 1D539 Upper -1D53B 1D53E Upper -1D540 1D544 Upper -1D546 Upper -1D54A 1D550 Upper -1D552 1D56B Lower -1D56C 1D585 Upper -1D586 1D59F Lower -1D5A0 1D5B9 Upper -1D5BA 1D5D3 Lower -1D5D4 1D5ED Upper -1D5EE 1D607 Lower -1D608 1D621 Upper -1D622 1D63B Lower -1D63C 1D655 Upper -1D656 1D66F Lower -1D670 1D689 Upper -1D68A 1D6A5 Lower -1D6A8 1D6C0 Upper -1D6C2 1D6DA Lower -1D6DC 1D6E1 Lower -1D6E2 1D6FA Upper -1D6FC 1D714 Lower -1D716 1D71B Lower -1D71C 1D734 Upper -1D736 1D74E Lower -1D750 1D755 Lower -1D756 1D76E Upper -1D770 1D788 Lower -1D78A 1D78F Lower -1D790 1D7A8 Upper -1D7AA 1D7C2 Lower -1D7C4 1D7C9 Lower -1D7CA Upper -1D7CB Lower -1D7CE 1D7FF Numeric -1DA00 1DA36 Extend -1DA3B 1DA6C Extend -1DA75 Extend -1DA84 Extend -1DA88 STerm -1DA9B 1DA9F Extend -1DAA1 1DAAF Extend -1E800 1E8C4 OLetter -1E8D0 1E8D6 Extend -1EE00 1EE03 OLetter -1EE05 1EE1F OLetter -1EE21 1EE22 OLetter -1EE24 OLetter -1EE27 OLetter -1EE29 1EE32 OLetter -1EE34 1EE37 OLetter -1EE39 OLetter -1EE3B OLetter -1EE42 OLetter -1EE47 OLetter -1EE49 OLetter -1EE4B OLetter -1EE4D 1EE4F OLetter -1EE51 1EE52 OLetter -1EE54 OLetter -1EE57 OLetter -1EE59 OLetter -1EE5B OLetter -1EE5D OLetter -1EE5F OLetter -1EE61 1EE62 OLetter -1EE64 OLetter -1EE67 1EE6A OLetter -1EE6C 1EE72 OLetter -1EE74 1EE77 OLetter -1EE79 1EE7C OLetter -1EE7E OLetter -1EE80 1EE89 OLetter -1EE8B 1EE9B OLetter -1EEA1 1EEA3 OLetter -1EEA5 1EEA9 OLetter -1EEAB 1EEBB OLetter -1F130 1F149 Upper -1F150 1F169 Upper -1F170 1F189 Upper -1F676 1F678 Close -20000 2A6D6 OLetter -2A700 2B734 OLetter -2B740 2B81D OLetter -2B820 2CEA1 OLetter -2F800 2FA1D OLetter -E0001 Format -E0020 E007F Format -E0100 E01EF Extend -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Sc.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Sc.pl deleted file mode 100644 index df0a5132..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Sc.pl +++ /dev/null @@ -1,843 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToSc'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToSc'}{'missing'} = 'Unknown'; - -return <<'END'; -0 40 Common -41 5A Latin -5B 60 Common -61 7A Latin -7B A9 Common -AA Latin -AB B9 Common -BA Latin -BB BF Common -C0 D6 Latin -D7 Common -D8 F6 Latin -F7 Common -F8 2B8 Latin -2B9 2DF Common -2E0 2E4 Latin -2E5 2E9 Common -2EA 2EB Bopomofo -2EC 2FF Common -300 36F Inherited -370 373 Greek -374 Common -375 377 Greek -37A 37D Greek -37E Common -37F Greek -384 Greek -385 Common -386 Greek -387 Common -388 38A Greek -38C Greek -38E 3A1 Greek -3A3 3E1 Greek -3E2 3EF Coptic -3F0 3FF Greek -400 484 Cyrillic -485 486 Inherited -487 52F Cyrillic -531 556 Armenian -559 55F Armenian -561 587 Armenian -589 Common -58A Armenian -58D 58F Armenian -591 5C7 Hebrew -5D0 5EA Hebrew -5F0 5F4 Hebrew -600 604 Arabic -605 Common -606 60B Arabic -60C Common -60D 61A Arabic -61B 61C Common -61E Arabic -61F Common -620 63F Arabic -640 Common -641 64A Arabic -64B 655 Inherited -656 66F Arabic -670 Inherited -671 6DC Arabic -6DD Common -6DE 6FF Arabic -700 70D Syriac -70F 74A Syriac -74D 74F Syriac -750 77F Arabic -780 7B1 Thaana -7C0 7FA Nko -800 82D Samaritan -830 83E Samaritan -840 85B Mandaic -85E Mandaic -8A0 8B4 Arabic -8E3 8FF Arabic -900 950 Devanagari -951 952 Inherited -953 963 Devanagari -964 965 Common -966 97F Devanagari -980 983 Bengali -985 98C Bengali -98F 990 Bengali -993 9A8 Bengali -9AA 9B0 Bengali -9B2 Bengali -9B6 9B9 Bengali -9BC 9C4 Bengali -9C7 9C8 Bengali -9CB 9CE Bengali -9D7 Bengali -9DC 9DD Bengali -9DF 9E3 Bengali -9E6 9FB Bengali -A01 A03 Gurmukhi -A05 A0A Gurmukhi -A0F A10 Gurmukhi -A13 A28 Gurmukhi -A2A A30 Gurmukhi -A32 A33 Gurmukhi -A35 A36 Gurmukhi -A38 A39 Gurmukhi -A3C Gurmukhi -A3E A42 Gurmukhi -A47 A48 Gurmukhi -A4B A4D Gurmukhi -A51 Gurmukhi -A59 A5C Gurmukhi -A5E Gurmukhi -A66 A75 Gurmukhi -A81 A83 Gujarati -A85 A8D Gujarati -A8F A91 Gujarati -A93 AA8 Gujarati -AAA AB0 Gujarati -AB2 AB3 Gujarati -AB5 AB9 Gujarati -ABC AC5 Gujarati -AC7 AC9 Gujarati -ACB ACD Gujarati -AD0 Gujarati -AE0 AE3 Gujarati -AE6 AF1 Gujarati -AF9 Gujarati -B01 B03 Oriya -B05 B0C Oriya -B0F B10 Oriya -B13 B28 Oriya -B2A B30 Oriya -B32 B33 Oriya -B35 B39 Oriya -B3C B44 Oriya -B47 B48 Oriya -B4B B4D Oriya -B56 B57 Oriya -B5C B5D Oriya -B5F B63 Oriya -B66 B77 Oriya -B82 B83 Tamil -B85 B8A Tamil -B8E B90 Tamil -B92 B95 Tamil -B99 B9A Tamil -B9C Tamil -B9E B9F Tamil -BA3 BA4 Tamil -BA8 BAA Tamil -BAE BB9 Tamil -BBE BC2 Tamil -BC6 BC8 Tamil -BCA BCD Tamil -BD0 Tamil -BD7 Tamil -BE6 BFA Tamil -C00 C03 Telugu -C05 C0C Telugu -C0E C10 Telugu -C12 C28 Telugu -C2A C39 Telugu -C3D C44 Telugu -C46 C48 Telugu -C4A C4D Telugu -C55 C56 Telugu -C58 C5A Telugu -C60 C63 Telugu -C66 C6F Telugu -C78 C7F Telugu -C81 C83 Kannada -C85 C8C Kannada -C8E C90 Kannada -C92 CA8 Kannada -CAA CB3 Kannada -CB5 CB9 Kannada -CBC CC4 Kannada -CC6 CC8 Kannada -CCA CCD Kannada -CD5 CD6 Kannada -CDE Kannada -CE0 CE3 Kannada -CE6 CEF Kannada -CF1 CF2 Kannada -D01 D03 Malayalam -D05 D0C Malayalam -D0E D10 Malayalam -D12 D3A Malayalam -D3D D44 Malayalam -D46 D48 Malayalam -D4A D4E Malayalam -D57 Malayalam -D5F D63 Malayalam -D66 D75 Malayalam -D79 D7F Malayalam -D82 D83 Sinhala -D85 D96 Sinhala -D9A DB1 Sinhala -DB3 DBB Sinhala -DBD Sinhala -DC0 DC6 Sinhala -DCA Sinhala -DCF DD4 Sinhala -DD6 Sinhala -DD8 DDF Sinhala -DE6 DEF Sinhala -DF2 DF4 Sinhala -E01 E3A Thai -E3F Common -E40 E5B Thai -E81 E82 Lao -E84 Lao -E87 E88 Lao -E8A Lao -E8D Lao -E94 E97 Lao -E99 E9F Lao -EA1 EA3 Lao -EA5 Lao -EA7 Lao -EAA EAB Lao -EAD EB9 Lao -EBB EBD Lao -EC0 EC4 Lao -EC6 Lao -EC8 ECD Lao -ED0 ED9 Lao -EDC EDF Lao -F00 F47 Tibetan -F49 F6C Tibetan -F71 F97 Tibetan -F99 FBC Tibetan -FBE FCC Tibetan -FCE FD4 Tibetan -FD5 FD8 Common -FD9 FDA Tibetan -1000 109F Myanmar -10A0 10C5 Georgian -10C7 Georgian -10CD Georgian -10D0 10FA Georgian -10FB Common -10FC 10FF Georgian -1100 11FF Hangul -1200 1248 Ethiopic -124A 124D Ethiopic -1250 1256 Ethiopic -1258 Ethiopic -125A 125D Ethiopic -1260 1288 Ethiopic -128A 128D Ethiopic -1290 12B0 Ethiopic -12B2 12B5 Ethiopic -12B8 12BE Ethiopic -12C0 Ethiopic -12C2 12C5 Ethiopic -12C8 12D6 Ethiopic -12D8 1310 Ethiopic -1312 1315 Ethiopic -1318 135A Ethiopic -135D 137C Ethiopic -1380 1399 Ethiopic -13A0 13F5 Cherokee -13F8 13FD Cherokee -1400 167F Canadian_Aboriginal -1680 169C Ogham -16A0 16EA Runic -16EB 16ED Common -16EE 16F8 Runic -1700 170C Tagalog -170E 1714 Tagalog -1720 1734 Hanunoo -1735 1736 Common -1740 1753 Buhid -1760 176C Tagbanwa -176E 1770 Tagbanwa -1772 1773 Tagbanwa -1780 17DD Khmer -17E0 17E9 Khmer -17F0 17F9 Khmer -1800 1801 Mongolian -1802 1803 Common -1804 Mongolian -1805 Common -1806 180E Mongolian -1810 1819 Mongolian -1820 1877 Mongolian -1880 18AA Mongolian -18B0 18F5 Canadian_Aboriginal -1900 191E Limbu -1920 192B Limbu -1930 193B Limbu -1940 Limbu -1944 194F Limbu -1950 196D Tai_Le -1970 1974 Tai_Le -1980 19AB New_Tai_Lue -19B0 19C9 New_Tai_Lue -19D0 19DA New_Tai_Lue -19DE 19DF New_Tai_Lue -19E0 19FF Khmer -1A00 1A1B Buginese -1A1E 1A1F Buginese -1A20 1A5E Tai_Tham -1A60 1A7C Tai_Tham -1A7F 1A89 Tai_Tham -1A90 1A99 Tai_Tham -1AA0 1AAD Tai_Tham -1AB0 1ABE Inherited -1B00 1B4B Balinese -1B50 1B7C Balinese -1B80 1BBF Sundanese -1BC0 1BF3 Batak -1BFC 1BFF Batak -1C00 1C37 Lepcha -1C3B 1C49 Lepcha -1C4D 1C4F Lepcha -1C50 1C7F Ol_Chiki -1CC0 1CC7 Sundanese -1CD0 1CD2 Inherited -1CD3 Common -1CD4 1CE0 Inherited -1CE1 Common -1CE2 1CE8 Inherited -1CE9 1CEC Common -1CED Inherited -1CEE 1CF3 Common -1CF4 Inherited -1CF5 1CF6 Common -1CF8 1CF9 Inherited -1D00 1D25 Latin -1D26 1D2A Greek -1D2B Cyrillic -1D2C 1D5C Latin -1D5D 1D61 Greek -1D62 1D65 Latin -1D66 1D6A Greek -1D6B 1D77 Latin -1D78 Cyrillic -1D79 1DBE Latin -1DBF Greek -1DC0 1DF5 Inherited -1DFC 1DFF Inherited -1E00 1EFF Latin -1F00 1F15 Greek -1F18 1F1D Greek -1F20 1F45 Greek -1F48 1F4D Greek -1F50 1F57 Greek -1F59 Greek -1F5B Greek -1F5D Greek -1F5F 1F7D Greek -1F80 1FB4 Greek -1FB6 1FC4 Greek -1FC6 1FD3 Greek -1FD6 1FDB Greek -1FDD 1FEF Greek -1FF2 1FF4 Greek -1FF6 1FFE Greek -2000 200B Common -200C 200D Inherited -200E 2064 Common -2066 2070 Common -2071 Latin -2074 207E Common -207F Latin -2080 208E Common -2090 209C Latin -20A0 20BE Common -20D0 20F0 Inherited -2100 2125 Common -2126 Greek -2127 2129 Common -212A 212B Latin -212C 2131 Common -2132 Latin -2133 214D Common -214E Latin -214F 215F Common -2160 2188 Latin -2189 218B Common -2190 23FA Common -2400 2426 Common -2440 244A Common -2460 27FF Common -2800 28FF Braille -2900 2B73 Common -2B76 2B95 Common -2B98 2BB9 Common -2BBD 2BC8 Common -2BCA 2BD1 Common -2BEC 2BEF Common -2C00 2C2E Glagolitic -2C30 2C5E Glagolitic -2C60 2C7F Latin -2C80 2CF3 Coptic -2CF9 2CFF Coptic -2D00 2D25 Georgian -2D27 Georgian -2D2D Georgian -2D30 2D67 Tifinagh -2D6F 2D70 Tifinagh -2D7F Tifinagh -2D80 2D96 Ethiopic -2DA0 2DA6 Ethiopic -2DA8 2DAE Ethiopic -2DB0 2DB6 Ethiopic -2DB8 2DBE Ethiopic -2DC0 2DC6 Ethiopic -2DC8 2DCE Ethiopic -2DD0 2DD6 Ethiopic -2DD8 2DDE Ethiopic -2DE0 2DFF Cyrillic -2E00 2E42 Common -2E80 2E99 Han -2E9B 2EF3 Han -2F00 2FD5 Han -2FF0 2FFB Common -3000 3004 Common -3005 Han -3006 Common -3007 Han -3008 3020 Common -3021 3029 Han -302A 302D Inherited -302E 302F Hangul -3030 3037 Common -3038 303B Han -303C 303F Common -3041 3096 Hiragana -3099 309A Inherited -309B 309C Common -309D 309F Hiragana -30A0 Common -30A1 30FA Katakana -30FB 30FC Common -30FD 30FF Katakana -3105 312D Bopomofo -3131 318E Hangul -3190 319F Common -31A0 31BA Bopomofo -31C0 31E3 Common -31F0 31FF Katakana -3200 321E Hangul -3220 325F Common -3260 327E Hangul -327F 32CF Common -32D0 32FE Katakana -3300 3357 Katakana -3358 33FF Common -3400 4DB5 Han -4DC0 4DFF Common -4E00 9FD5 Han -A000 A48C Yi -A490 A4C6 Yi -A4D0 A4FF Lisu -A500 A62B Vai -A640 A69F Cyrillic -A6A0 A6F7 Bamum -A700 A721 Common -A722 A787 Latin -A788 A78A Common -A78B A7AD Latin -A7B0 A7B7 Latin -A7F7 A7FF Latin -A800 A82B Syloti_Nagri -A830 A839 Common -A840 A877 Phags_Pa -A880 A8C4 Saurashtra -A8CE A8D9 Saurashtra -A8E0 A8FD Devanagari -A900 A92D Kayah_Li -A92E Common -A92F Kayah_Li -A930 A953 Rejang -A95F Rejang -A960 A97C Hangul -A980 A9CD Javanese -A9CF Common -A9D0 A9D9 Javanese -A9DE A9DF Javanese -A9E0 A9FE Myanmar -AA00 AA36 Cham -AA40 AA4D Cham -AA50 AA59 Cham -AA5C AA5F Cham -AA60 AA7F Myanmar -AA80 AAC2 Tai_Viet -AADB AADF Tai_Viet -AAE0 AAF6 Meetei_Mayek -AB01 AB06 Ethiopic -AB09 AB0E Ethiopic -AB11 AB16 Ethiopic -AB20 AB26 Ethiopic -AB28 AB2E Ethiopic -AB30 AB5A Latin -AB5B Common -AB5C AB64 Latin -AB65 Greek -AB70 ABBF Cherokee -ABC0 ABED Meetei_Mayek -ABF0 ABF9 Meetei_Mayek -AC00 D7A3 Hangul -D7B0 D7C6 Hangul -D7CB D7FB Hangul -F900 FA6D Han -FA70 FAD9 Han -FB00 FB06 Latin -FB13 FB17 Armenian -FB1D FB36 Hebrew -FB38 FB3C Hebrew -FB3E Hebrew -FB40 FB41 Hebrew -FB43 FB44 Hebrew -FB46 FB4F Hebrew -FB50 FBC1 Arabic -FBD3 FD3D Arabic -FD3E FD3F Common -FD50 FD8F Arabic -FD92 FDC7 Arabic -FDF0 FDFD Arabic -FE00 FE0F Inherited -FE10 FE19 Common -FE20 FE2D Inherited -FE2E FE2F Cyrillic -FE30 FE52 Common -FE54 FE66 Common -FE68 FE6B Common -FE70 FE74 Arabic -FE76 FEFC Arabic -FEFF Common -FF01 FF20 Common -FF21 FF3A Latin -FF3B FF40 Common -FF41 FF5A Latin -FF5B FF65 Common -FF66 FF6F Katakana -FF70 Common -FF71 FF9D Katakana -FF9E FF9F Common -FFA0 FFBE Hangul -FFC2 FFC7 Hangul -FFCA FFCF Hangul -FFD2 FFD7 Hangul -FFDA FFDC Hangul -FFE0 FFE6 Common -FFE8 FFEE Common -FFF9 FFFD Common -10000 1000B Linear_B -1000D 10026 Linear_B -10028 1003A Linear_B -1003C 1003D Linear_B -1003F 1004D Linear_B -10050 1005D Linear_B -10080 100FA Linear_B -10100 10102 Common -10107 10133 Common -10137 1013F Common -10140 1018C Greek -10190 1019B Common -101A0 Greek -101D0 101FC Common -101FD Inherited -10280 1029C Lycian -102A0 102D0 Carian -102E0 Inherited -102E1 102FB Common -10300 10323 Old_Italic -10330 1034A Gothic -10350 1037A Old_Permic -10380 1039D Ugaritic -1039F Ugaritic -103A0 103C3 Old_Persian -103C8 103D5 Old_Persian -10400 1044F Deseret -10450 1047F Shavian -10480 1049D Osmanya -104A0 104A9 Osmanya -10500 10527 Elbasan -10530 10563 Caucasian_Albanian -1056F Caucasian_Albanian -10600 10736 Linear_A -10740 10755 Linear_A -10760 10767 Linear_A -10800 10805 Cypriot -10808 Cypriot -1080A 10835 Cypriot -10837 10838 Cypriot -1083C Cypriot -1083F Cypriot -10840 10855 Imperial_Aramaic -10857 1085F Imperial_Aramaic -10860 1087F Palmyrene -10880 1089E Nabataean -108A7 108AF Nabataean -108E0 108F2 Hatran -108F4 108F5 Hatran -108FB 108FF Hatran -10900 1091B Phoenician -1091F Phoenician -10920 10939 Lydian -1093F Lydian -10980 1099F Meroitic_Hieroglyphs -109A0 109B7 Meroitic_Cursive -109BC 109CF Meroitic_Cursive -109D2 109FF Meroitic_Cursive -10A00 10A03 Kharoshthi -10A05 10A06 Kharoshthi -10A0C 10A13 Kharoshthi -10A15 10A17 Kharoshthi -10A19 10A33 Kharoshthi -10A38 10A3A Kharoshthi -10A3F 10A47 Kharoshthi -10A50 10A58 Kharoshthi -10A60 10A7F Old_South_Arabian -10A80 10A9F Old_North_Arabian -10AC0 10AE6 Manichaean -10AEB 10AF6 Manichaean -10B00 10B35 Avestan -10B39 10B3F Avestan -10B40 10B55 Inscriptional_Parthian -10B58 10B5F Inscriptional_Parthian -10B60 10B72 Inscriptional_Pahlavi -10B78 10B7F Inscriptional_Pahlavi -10B80 10B91 Psalter_Pahlavi -10B99 10B9C Psalter_Pahlavi -10BA9 10BAF Psalter_Pahlavi -10C00 10C48 Old_Turkic -10C80 10CB2 Old_Hungarian -10CC0 10CF2 Old_Hungarian -10CFA 10CFF Old_Hungarian -10E60 10E7E Arabic -11000 1104D Brahmi -11052 1106F Brahmi -1107F Brahmi -11080 110C1 Kaithi -110D0 110E8 Sora_Sompeng -110F0 110F9 Sora_Sompeng -11100 11134 Chakma -11136 11143 Chakma -11150 11176 Mahajani -11180 111CD Sharada -111D0 111DF Sharada -111E1 111F4 Sinhala -11200 11211 Khojki -11213 1123D Khojki -11280 11286 Multani -11288 Multani -1128A 1128D Multani -1128F 1129D Multani -1129F 112A9 Multani -112B0 112EA Khudawadi -112F0 112F9 Khudawadi -11300 11303 Grantha -11305 1130C Grantha -1130F 11310 Grantha -11313 11328 Grantha -1132A 11330 Grantha -11332 11333 Grantha -11335 11339 Grantha -1133C 11344 Grantha -11347 11348 Grantha -1134B 1134D Grantha -11350 Grantha -11357 Grantha -1135D 11363 Grantha -11366 1136C Grantha -11370 11374 Grantha -11480 114C7 Tirhuta -114D0 114D9 Tirhuta -11580 115B5 Siddham -115B8 115DD Siddham -11600 11644 Modi -11650 11659 Modi -11680 116B7 Takri -116C0 116C9 Takri -11700 11719 Ahom -1171D 1172B Ahom -11730 1173F Ahom -118A0 118F2 Warang_Citi -118FF Warang_Citi -11AC0 11AF8 Pau_Cin_Hau -12000 12399 Cuneiform -12400 1246E Cuneiform -12470 12474 Cuneiform -12480 12543 Cuneiform -13000 1342E Egyptian_Hieroglyphs -14400 14646 Anatolian_Hieroglyphs -16800 16A38 Bamum -16A40 16A5E Mro -16A60 16A69 Mro -16A6E 16A6F Mro -16AD0 16AED Bassa_Vah -16AF0 16AF5 Bassa_Vah -16B00 16B45 Pahawh_Hmong -16B50 16B59 Pahawh_Hmong -16B5B 16B61 Pahawh_Hmong -16B63 16B77 Pahawh_Hmong -16B7D 16B8F Pahawh_Hmong -16F00 16F44 Miao -16F50 16F7E Miao -16F8F 16F9F Miao -1B000 Katakana -1B001 Hiragana -1BC00 1BC6A Duployan -1BC70 1BC7C Duployan -1BC80 1BC88 Duployan -1BC90 1BC99 Duployan -1BC9C 1BC9F Duployan -1BCA0 1BCA3 Common -1D000 1D0F5 Common -1D100 1D126 Common -1D129 1D166 Common -1D167 1D169 Inherited -1D16A 1D17A Common -1D17B 1D182 Inherited -1D183 1D184 Common -1D185 1D18B Inherited -1D18C 1D1A9 Common -1D1AA 1D1AD Inherited -1D1AE 1D1E8 Common -1D200 1D245 Greek -1D300 1D356 Common -1D360 1D371 Common -1D400 1D454 Common -1D456 1D49C Common -1D49E 1D49F Common -1D4A2 Common -1D4A5 1D4A6 Common -1D4A9 1D4AC Common -1D4AE 1D4B9 Common -1D4BB Common -1D4BD 1D4C3 Common -1D4C5 1D505 Common -1D507 1D50A Common -1D50D 1D514 Common -1D516 1D51C Common -1D51E 1D539 Common -1D53B 1D53E Common -1D540 1D544 Common -1D546 Common -1D54A 1D550 Common -1D552 1D6A5 Common -1D6A8 1D7CB Common -1D7CE 1D7FF Common -1D800 1DA8B SignWriting -1DA9B 1DA9F SignWriting -1DAA1 1DAAF SignWriting -1E800 1E8C4 Mende_Kikakui -1E8C7 1E8D6 Mende_Kikakui -1EE00 1EE03 Arabic -1EE05 1EE1F Arabic -1EE21 1EE22 Arabic -1EE24 Arabic -1EE27 Arabic -1EE29 1EE32 Arabic -1EE34 1EE37 Arabic -1EE39 Arabic -1EE3B Arabic -1EE42 Arabic -1EE47 Arabic -1EE49 Arabic -1EE4B Arabic -1EE4D 1EE4F Arabic -1EE51 1EE52 Arabic -1EE54 Arabic -1EE57 Arabic -1EE59 Arabic -1EE5B Arabic -1EE5D Arabic -1EE5F Arabic -1EE61 1EE62 Arabic -1EE64 Arabic -1EE67 1EE6A Arabic -1EE6C 1EE72 Arabic -1EE74 1EE77 Arabic -1EE79 1EE7C Arabic -1EE7E Arabic -1EE80 1EE89 Arabic -1EE8B 1EE9B Arabic -1EEA1 1EEA3 Arabic -1EEA5 1EEA9 Arabic -1EEAB 1EEBB Arabic -1EEF0 1EEF1 Arabic -1F000 1F02B Common -1F030 1F093 Common -1F0A0 1F0AE Common -1F0B1 1F0BF Common -1F0C1 1F0CF Common -1F0D1 1F0F5 Common -1F100 1F10C Common -1F110 1F12E Common -1F130 1F16B Common -1F170 1F19A Common -1F1E6 1F1FF Common -1F200 Hiragana -1F201 1F202 Common -1F210 1F23A Common -1F240 1F248 Common -1F250 1F251 Common -1F300 1F579 Common -1F57B 1F5A3 Common -1F5A5 1F6D0 Common -1F6E0 1F6EC Common -1F6F0 1F6F3 Common -1F700 1F773 Common -1F780 1F7D4 Common -1F800 1F80B Common -1F810 1F847 Common -1F850 1F859 Common -1F860 1F887 Common -1F890 1F8AD Common -1F910 1F918 Common -1F980 1F984 Common -1F9C0 Common -20000 2A6D6 Han -2A700 2B734 Han -2B740 2B81D Han -2B820 2CEA1 Han -2F800 2FA1D Han -E0001 Common -E0020 E007F Common -E0100 E01EF Inherited -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Scx.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Scx.pl deleted file mode 100644 index 8637811a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Scx.pl +++ /dev/null @@ -1,903 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToScx'}{'format'} = 'sw'; # string, but some elements are interpreted as a list; white space occurs only as list item separators -$utf8::SwashInfo{'ToScx'}{'missing'} = 'Unknown'; - -return <<'END'; -0 40 Common -41 5A Latin -5B 60 Common -61 7A Latin -7B A9 Common -AA Latin -AB B9 Common -BA Latin -BB BF Common -C0 D6 Latin -D7 Common -D8 F6 Latin -F7 Common -F8 2B8 Latin -2B9 2DF Common -2E0 2E4 Latin -2E5 2E9 Common -2EA 2EB Bopomofo -2EC 2FF Common -300 341 Inherited -342 Greek -343 344 Inherited -345 Greek -346 362 Inherited -363 36F Latin -370 373 Greek -374 Common -375 377 Greek -37A 37D Greek -37E Common -37F Greek -384 Greek -385 Common -386 Greek -387 Common -388 38A Greek -38C Greek -38E 3A1 Greek -3A3 3E1 Greek -3E2 3EF Coptic -3F0 3FF Greek -400 482 Cyrillic -483 Cyrillic Old_Permic -484 Cyrillic -485 486 Cyrillic Latin -487 Cyrillic Glagolitic -488 52F Cyrillic -531 556 Armenian -559 55F Armenian -561 587 Armenian -589 Armenian Georgian -58A Armenian -58D 58F Armenian -591 5C7 Hebrew -5D0 5EA Hebrew -5F0 5F4 Hebrew -600 604 Arabic -605 Common -606 60B Arabic -60C Arabic Syriac Thaana -60D 61A Arabic -61B Arabic Syriac Thaana -61C Common -61E Arabic -61F Arabic Syriac Thaana -620 63F Arabic -640 Arabic Mandaic Manichaean Psalter_Pahlavi Syriac -641 64A Arabic -64B 655 Arabic Syriac -656 65F Arabic -660 669 Arabic Thaana -66A 66F Arabic -670 Arabic Syriac -671 6DC Arabic -6DD Common -6DE 6FF Arabic -700 70D Syriac -70F 74A Syriac -74D 74F Syriac -750 77F Arabic -780 7B1 Thaana -7C0 7FA Nko -800 82D Samaritan -830 83E Samaritan -840 85B Mandaic -85E Mandaic -8A0 8B4 Arabic -8E3 8FF Arabic -900 950 Devanagari -951 Bengali Devanagari Grantha Gujarati Gurmukhi Kannada Latin Malayalam Oriya Sharada Tamil Telugu -952 Bengali Devanagari Grantha Gujarati Gurmukhi Kannada Latin Malayalam Oriya Tamil Telugu -953 963 Devanagari -964 Bengali Devanagari Grantha Gujarati Gurmukhi Kannada Mahajani Malayalam Oriya Khudawadi Sinhala Syloti_Nagri Takri Tamil Telugu Tirhuta -965 Bengali Devanagari Grantha Gujarati Gurmukhi Kannada Limbu Mahajani Malayalam Oriya Khudawadi Sinhala Syloti_Nagri Takri Tamil Telugu Tirhuta -966 96F Devanagari Kaithi Mahajani -970 97F Devanagari -980 983 Bengali -985 98C Bengali -98F 990 Bengali -993 9A8 Bengali -9AA 9B0 Bengali -9B2 Bengali -9B6 9B9 Bengali -9BC 9C4 Bengali -9C7 9C8 Bengali -9CB 9CE Bengali -9D7 Bengali -9DC 9DD Bengali -9DF 9E3 Bengali -9E6 9EF Bengali Chakma Syloti_Nagri -9F0 9FB Bengali -A01 A03 Gurmukhi -A05 A0A Gurmukhi -A0F A10 Gurmukhi -A13 A28 Gurmukhi -A2A A30 Gurmukhi -A32 A33 Gurmukhi -A35 A36 Gurmukhi -A38 A39 Gurmukhi -A3C Gurmukhi -A3E A42 Gurmukhi -A47 A48 Gurmukhi -A4B A4D Gurmukhi -A51 Gurmukhi -A59 A5C Gurmukhi -A5E Gurmukhi -A66 A6F Gurmukhi Multani -A70 A75 Gurmukhi -A81 A83 Gujarati -A85 A8D Gujarati -A8F A91 Gujarati -A93 AA8 Gujarati -AAA AB0 Gujarati -AB2 AB3 Gujarati -AB5 AB9 Gujarati -ABC AC5 Gujarati -AC7 AC9 Gujarati -ACB ACD Gujarati -AD0 Gujarati -AE0 AE3 Gujarati -AE6 AEF Gujarati Khojki -AF0 AF1 Gujarati -AF9 Gujarati -B01 B03 Oriya -B05 B0C Oriya -B0F B10 Oriya -B13 B28 Oriya -B2A B30 Oriya -B32 B33 Oriya -B35 B39 Oriya -B3C B44 Oriya -B47 B48 Oriya -B4B B4D Oriya -B56 B57 Oriya -B5C B5D Oriya -B5F B63 Oriya -B66 B77 Oriya -B82 B83 Tamil -B85 B8A Tamil -B8E B90 Tamil -B92 B95 Tamil -B99 B9A Tamil -B9C Tamil -B9E B9F Tamil -BA3 BA4 Tamil -BA8 BA9 Tamil -BAA Grantha Tamil -BAE BB4 Tamil -BB5 Grantha Tamil -BB6 BB9 Tamil -BBE BC2 Tamil -BC6 BC8 Tamil -BCA BCD Tamil -BD0 Tamil -BD7 Tamil -BE6 BF2 Grantha Tamil -BF3 BFA Tamil -C00 C03 Telugu -C05 C0C Telugu -C0E C10 Telugu -C12 C28 Telugu -C2A C39 Telugu -C3D C44 Telugu -C46 C48 Telugu -C4A C4D Telugu -C55 C56 Telugu -C58 C5A Telugu -C60 C63 Telugu -C66 C6F Telugu -C78 C7F Telugu -C81 C83 Kannada -C85 C8C Kannada -C8E C90 Kannada -C92 CA8 Kannada -CAA CB3 Kannada -CB5 CB9 Kannada -CBC CC4 Kannada -CC6 CC8 Kannada -CCA CCD Kannada -CD5 CD6 Kannada -CDE Kannada -CE0 CE3 Kannada -CE6 CEF Kannada -CF1 CF2 Kannada -D01 D03 Malayalam -D05 D0C Malayalam -D0E D10 Malayalam -D12 D3A Malayalam -D3D D44 Malayalam -D46 D48 Malayalam -D4A D4E Malayalam -D57 Malayalam -D5F D63 Malayalam -D66 D75 Malayalam -D79 D7F Malayalam -D82 D83 Sinhala -D85 D96 Sinhala -D9A DB1 Sinhala -DB3 DBB Sinhala -DBD Sinhala -DC0 DC6 Sinhala -DCA Sinhala -DCF DD4 Sinhala -DD6 Sinhala -DD8 DDF Sinhala -DE6 DEF Sinhala -DF2 DF4 Sinhala -E01 E3A Thai -E3F Common -E40 E5B Thai -E81 E82 Lao -E84 Lao -E87 E88 Lao -E8A Lao -E8D Lao -E94 E97 Lao -E99 E9F Lao -EA1 EA3 Lao -EA5 Lao -EA7 Lao -EAA EAB Lao -EAD EB9 Lao -EBB EBD Lao -EC0 EC4 Lao -EC6 Lao -EC8 ECD Lao -ED0 ED9 Lao -EDC EDF Lao -F00 F47 Tibetan -F49 F6C Tibetan -F71 F97 Tibetan -F99 FBC Tibetan -FBE FCC Tibetan -FCE FD4 Tibetan -FD5 FD8 Common -FD9 FDA Tibetan -1000 103F Myanmar -1040 1049 Chakma Myanmar Tai_Le -104A 109F Myanmar -10A0 10C5 Georgian -10C7 Georgian -10CD Georgian -10D0 10FA Georgian -10FB Common -10FC 10FF Georgian -1100 11FF Hangul -1200 1248 Ethiopic -124A 124D Ethiopic -1250 1256 Ethiopic -1258 Ethiopic -125A 125D Ethiopic -1260 1288 Ethiopic -128A 128D Ethiopic -1290 12B0 Ethiopic -12B2 12B5 Ethiopic -12B8 12BE Ethiopic -12C0 Ethiopic -12C2 12C5 Ethiopic -12C8 12D6 Ethiopic -12D8 1310 Ethiopic -1312 1315 Ethiopic -1318 135A Ethiopic -135D 137C Ethiopic -1380 1399 Ethiopic -13A0 13F5 Cherokee -13F8 13FD Cherokee -1400 167F Canadian_Aboriginal -1680 169C Ogham -16A0 16EA Runic -16EB 16ED Common -16EE 16F8 Runic -1700 170C Tagalog -170E 1714 Tagalog -1720 1734 Hanunoo -1735 1736 Buhid Hanunoo Tagbanwa Tagalog -1740 1753 Buhid -1760 176C Tagbanwa -176E 1770 Tagbanwa -1772 1773 Tagbanwa -1780 17DD Khmer -17E0 17E9 Khmer -17F0 17F9 Khmer -1800 1801 Mongolian -1802 1803 Mongolian Phags_Pa -1804 Mongolian -1805 Mongolian Phags_Pa -1806 180E Mongolian -1810 1819 Mongolian -1820 1877 Mongolian -1880 18AA Mongolian -18B0 18F5 Canadian_Aboriginal -1900 191E Limbu -1920 192B Limbu -1930 193B Limbu -1940 Limbu -1944 194F Limbu -1950 196D Tai_Le -1970 1974 Tai_Le -1980 19AB New_Tai_Lue -19B0 19C9 New_Tai_Lue -19D0 19DA New_Tai_Lue -19DE 19DF New_Tai_Lue -19E0 19FF Khmer -1A00 1A1B Buginese -1A1E 1A1F Buginese -1A20 1A5E Tai_Tham -1A60 1A7C Tai_Tham -1A7F 1A89 Tai_Tham -1A90 1A99 Tai_Tham -1AA0 1AAD Tai_Tham -1AB0 1ABE Inherited -1B00 1B4B Balinese -1B50 1B7C Balinese -1B80 1BBF Sundanese -1BC0 1BF3 Batak -1BFC 1BFF Batak -1C00 1C37 Lepcha -1C3B 1C49 Lepcha -1C4D 1C4F Lepcha -1C50 1C7F Ol_Chiki -1CC0 1CC7 Sundanese -1CD0 Devanagari Grantha -1CD1 Devanagari -1CD2 1CD3 Devanagari Grantha -1CD4 1CD6 Devanagari -1CD7 Devanagari Sharada -1CD8 Devanagari -1CD9 Devanagari Sharada -1CDA Devanagari Kannada Malayalam Tamil Telugu -1CDB Devanagari -1CDC 1CDD Devanagari Sharada -1CDE 1CDF Devanagari -1CE0 Devanagari Sharada -1CE1 1CF1 Devanagari -1CF2 1CF4 Devanagari Grantha -1CF5 Devanagari Kannada -1CF6 Devanagari -1CF8 1CF9 Devanagari Grantha -1D00 1D25 Latin -1D26 1D2A Greek -1D2B Cyrillic -1D2C 1D5C Latin -1D5D 1D61 Greek -1D62 1D65 Latin -1D66 1D6A Greek -1D6B 1D77 Latin -1D78 Cyrillic -1D79 1DBE Latin -1DBF 1DC1 Greek -1DC2 1DF5 Inherited -1DFC 1DFF Inherited -1E00 1EFF Latin -1F00 1F15 Greek -1F18 1F1D Greek -1F20 1F45 Greek -1F48 1F4D Greek -1F50 1F57 Greek -1F59 Greek -1F5B Greek -1F5D Greek -1F5F 1F7D Greek -1F80 1FB4 Greek -1FB6 1FC4 Greek -1FC6 1FD3 Greek -1FD6 1FDB Greek -1FDD 1FEF Greek -1FF2 1FF4 Greek -1FF6 1FFE Greek -2000 200B Common -200C 200D Inherited -200E 2064 Common -2066 2070 Common -2071 Latin -2074 207E Common -207F Latin -2080 208E Common -2090 209C Latin -20A0 20BE Common -20D0 20EF Inherited -20F0 Devanagari Grantha Latin -2100 2125 Common -2126 Greek -2127 2129 Common -212A 212B Latin -212C 2131 Common -2132 Latin -2133 214D Common -214E Latin -214F 215F Common -2160 2188 Latin -2189 218B Common -2190 23FA Common -2400 2426 Common -2440 244A Common -2460 27FF Common -2800 28FF Braille -2900 2B73 Common -2B76 2B95 Common -2B98 2BB9 Common -2BBD 2BC8 Common -2BCA 2BD1 Common -2BEC 2BEF Common -2C00 2C2E Glagolitic -2C30 2C5E Glagolitic -2C60 2C7F Latin -2C80 2CF3 Coptic -2CF9 2CFF Coptic -2D00 2D25 Georgian -2D27 Georgian -2D2D Georgian -2D30 2D67 Tifinagh -2D6F 2D70 Tifinagh -2D7F Tifinagh -2D80 2D96 Ethiopic -2DA0 2DA6 Ethiopic -2DA8 2DAE Ethiopic -2DB0 2DB6 Ethiopic -2DB8 2DBE Ethiopic -2DC0 2DC6 Ethiopic -2DC8 2DCE Ethiopic -2DD0 2DD6 Ethiopic -2DD8 2DDE Ethiopic -2DE0 2DFF Cyrillic -2E00 2E42 Common -2E80 2E99 Han -2E9B 2EF3 Han -2F00 2FD5 Han -2FF0 2FFB Common -3000 Common -3001 3002 Bopomofo Hangul Han Hiragana Katakana Yi -3003 Bopomofo Hangul Han Hiragana Katakana -3004 Common -3005 Han -3006 Han Hiragana Katakana -3007 Han -3008 3011 Bopomofo Hangul Han Hiragana Katakana Yi -3012 Common -3013 Bopomofo Hangul Han Hiragana Katakana -3014 301B Bopomofo Hangul Han Hiragana Katakana Yi -301C 301F Bopomofo Hangul Han Hiragana Katakana -3020 Common -3021 3029 Han -302A 302D Bopomofo Han -302E 302F Hangul -3030 Bopomofo Hangul Han Hiragana Katakana -3031 3035 Hiragana Katakana -3036 Common -3037 Bopomofo Hangul Han Hiragana Katakana -3038 303B Han -303C 303D Han Hiragana Katakana -303E 303F Bopomofo Hangul Han Hiragana Katakana -3041 3096 Hiragana -3099 309C Hiragana Katakana -309D 309F Hiragana -30A0 Hiragana Katakana -30A1 30FA Katakana -30FB Bopomofo Hangul Han Hiragana Katakana Yi -30FC Hiragana Katakana -30FD 30FF Katakana -3105 312D Bopomofo -3131 318E Hangul -3190 319F Han Hiragana Katakana -31A0 31BA Bopomofo -31C0 31E3 Bopomofo Hangul Han Hiragana Katakana -31F0 31FF Katakana -3200 321E Hangul -3220 3243 Bopomofo Hangul Han Hiragana Katakana -3244 325F Common -3260 327E Hangul -327F Common -3280 32B0 Bopomofo Hangul Han Hiragana Katakana -32B1 32BF Common -32C0 32CB Bopomofo Hangul Han Hiragana Katakana -32CC 32CF Common -32D0 32FE Katakana -3300 3357 Katakana -3358 3370 Bopomofo Hangul Han Hiragana Katakana -3371 337A Common -337B 337F Bopomofo Hangul Han Hiragana Katakana -3380 33DF Common -33E0 33FE Bopomofo Hangul Han Hiragana Katakana -33FF Common -3400 4DB5 Han -4DC0 4DFF Common -4E00 9FD5 Han -A000 A48C Yi -A490 A4C6 Yi -A4D0 A4FF Lisu -A500 A62B Vai -A640 A66E Cyrillic -A66F Cyrillic Glagolitic -A670 A69F Cyrillic -A6A0 A6F7 Bamum -A700 A721 Common -A722 A787 Latin -A788 A78A Common -A78B A7AD Latin -A7B0 A7B7 Latin -A7F7 A7FF Latin -A800 A82B Syloti_Nagri -A830 A839 Devanagari Gujarati Gurmukhi Kaithi Mahajani Modi Khudawadi Takri Tirhuta -A840 A877 Phags_Pa -A880 A8C4 Saurashtra -A8CE A8D9 Saurashtra -A8E0 A8F2 Devanagari -A8F3 Devanagari Tamil -A8F4 A8FD Devanagari -A900 A92D Kayah_Li -A92E Kayah_Li Latin Myanmar -A92F Kayah_Li -A930 A953 Rejang -A95F Rejang -A960 A97C Hangul -A980 A9CD Javanese -A9CF Buginese Javanese -A9D0 A9D9 Javanese -A9DE A9DF Javanese -A9E0 A9FE Myanmar -AA00 AA36 Cham -AA40 AA4D Cham -AA50 AA59 Cham -AA5C AA5F Cham -AA60 AA7F Myanmar -AA80 AAC2 Tai_Viet -AADB AADF Tai_Viet -AAE0 AAF6 Meetei_Mayek -AB01 AB06 Ethiopic -AB09 AB0E Ethiopic -AB11 AB16 Ethiopic -AB20 AB26 Ethiopic -AB28 AB2E Ethiopic -AB30 AB5A Latin -AB5B Common -AB5C AB64 Latin -AB65 Greek -AB70 ABBF Cherokee -ABC0 ABED Meetei_Mayek -ABF0 ABF9 Meetei_Mayek -AC00 D7A3 Hangul -D7B0 D7C6 Hangul -D7CB D7FB Hangul -F900 FA6D Han -FA70 FAD9 Han -FB00 FB06 Latin -FB13 FB17 Armenian -FB1D FB36 Hebrew -FB38 FB3C Hebrew -FB3E Hebrew -FB40 FB41 Hebrew -FB43 FB44 Hebrew -FB46 FB4F Hebrew -FB50 FBC1 Arabic -FBD3 FD3D Arabic -FD3E FD3F Common -FD50 FD8F Arabic -FD92 FDC7 Arabic -FDF0 FDF1 Arabic -FDF2 Arabic Thaana -FDF3 FDFC Arabic -FDFD Arabic Thaana -FE00 FE0F Inherited -FE10 FE19 Common -FE20 FE2D Inherited -FE2E FE2F Cyrillic -FE30 FE44 Common -FE45 FE46 Bopomofo Hangul Han Hiragana Katakana -FE47 FE52 Common -FE54 FE66 Common -FE68 FE6B Common -FE70 FE74 Arabic -FE76 FEFC Arabic -FEFF Common -FF01 FF20 Common -FF21 FF3A Latin -FF3B FF40 Common -FF41 FF5A Latin -FF5B FF60 Common -FF61 FF65 Bopomofo Hangul Han Hiragana Katakana Yi -FF66 FF6F Katakana -FF70 Hiragana Katakana -FF71 FF9D Katakana -FF9E FF9F Hiragana Katakana -FFA0 FFBE Hangul -FFC2 FFC7 Hangul -FFCA FFCF Hangul -FFD2 FFD7 Hangul -FFDA FFDC Hangul -FFE0 FFE6 Common -FFE8 FFEE Common -FFF9 FFFD Common -10000 1000B Linear_B -1000D 10026 Linear_B -10028 1003A Linear_B -1003C 1003D Linear_B -1003F 1004D Linear_B -10050 1005D Linear_B -10080 100FA Linear_B -10100 10102 Cypriot Linear_B -10107 10133 Cypriot Linear_B -10137 1013F Cypriot Linear_B -10140 1018C Greek -10190 1019B Common -101A0 Greek -101D0 101FC Common -101FD Inherited -10280 1029C Lycian -102A0 102D0 Carian -102E0 102FB Arabic Coptic -10300 10323 Old_Italic -10330 1034A Gothic -10350 1037A Old_Permic -10380 1039D Ugaritic -1039F Ugaritic -103A0 103C3 Old_Persian -103C8 103D5 Old_Persian -10400 1044F Deseret -10450 1047F Shavian -10480 1049D Osmanya -104A0 104A9 Osmanya -10500 10527 Elbasan -10530 10563 Caucasian_Albanian -1056F Caucasian_Albanian -10600 10736 Linear_A -10740 10755 Linear_A -10760 10767 Linear_A -10800 10805 Cypriot -10808 Cypriot -1080A 10835 Cypriot -10837 10838 Cypriot -1083C Cypriot -1083F Cypriot -10840 10855 Imperial_Aramaic -10857 1085F Imperial_Aramaic -10860 1087F Palmyrene -10880 1089E Nabataean -108A7 108AF Nabataean -108E0 108F2 Hatran -108F4 108F5 Hatran -108FB 108FF Hatran -10900 1091B Phoenician -1091F Phoenician -10920 10939 Lydian -1093F Lydian -10980 1099F Meroitic_Hieroglyphs -109A0 109B7 Meroitic_Cursive -109BC 109CF Meroitic_Cursive -109D2 109FF Meroitic_Cursive -10A00 10A03 Kharoshthi -10A05 10A06 Kharoshthi -10A0C 10A13 Kharoshthi -10A15 10A17 Kharoshthi -10A19 10A33 Kharoshthi -10A38 10A3A Kharoshthi -10A3F 10A47 Kharoshthi -10A50 10A58 Kharoshthi -10A60 10A7F Old_South_Arabian -10A80 10A9F Old_North_Arabian -10AC0 10AE6 Manichaean -10AEB 10AF6 Manichaean -10B00 10B35 Avestan -10B39 10B3F Avestan -10B40 10B55 Inscriptional_Parthian -10B58 10B5F Inscriptional_Parthian -10B60 10B72 Inscriptional_Pahlavi -10B78 10B7F Inscriptional_Pahlavi -10B80 10B91 Psalter_Pahlavi -10B99 10B9C Psalter_Pahlavi -10BA9 10BAF Psalter_Pahlavi -10C00 10C48 Old_Turkic -10C80 10CB2 Old_Hungarian -10CC0 10CF2 Old_Hungarian -10CFA 10CFF Old_Hungarian -10E60 10E7E Arabic -11000 1104D Brahmi -11052 1106F Brahmi -1107F Brahmi -11080 110C1 Kaithi -110D0 110E8 Sora_Sompeng -110F0 110F9 Sora_Sompeng -11100 11134 Chakma -11136 11143 Chakma -11150 11176 Mahajani -11180 111CD Sharada -111D0 111DF Sharada -111E1 111F4 Sinhala -11200 11211 Khojki -11213 1123D Khojki -11280 11286 Multani -11288 Multani -1128A 1128D Multani -1128F 1129D Multani -1129F 112A9 Multani -112B0 112EA Khudawadi -112F0 112F9 Khudawadi -11300 11303 Grantha -11305 1130C Grantha -1130F 11310 Grantha -11313 11328 Grantha -1132A 11330 Grantha -11332 11333 Grantha -11335 11339 Grantha -1133C 11344 Grantha -11347 11348 Grantha -1134B 1134D Grantha -11350 Grantha -11357 Grantha -1135D 11363 Grantha -11366 1136C Grantha -11370 11374 Grantha -11480 114C7 Tirhuta -114D0 114D9 Tirhuta -11580 115B5 Siddham -115B8 115DD Siddham -11600 11644 Modi -11650 11659 Modi -11680 116B7 Takri -116C0 116C9 Takri -11700 11719 Ahom -1171D 1172B Ahom -11730 1173F Ahom -118A0 118F2 Warang_Citi -118FF Warang_Citi -11AC0 11AF8 Pau_Cin_Hau -12000 12399 Cuneiform -12400 1246E Cuneiform -12470 12474 Cuneiform -12480 12543 Cuneiform -13000 1342E Egyptian_Hieroglyphs -14400 14646 Anatolian_Hieroglyphs -16800 16A38 Bamum -16A40 16A5E Mro -16A60 16A69 Mro -16A6E 16A6F Mro -16AD0 16AED Bassa_Vah -16AF0 16AF5 Bassa_Vah -16B00 16B45 Pahawh_Hmong -16B50 16B59 Pahawh_Hmong -16B5B 16B61 Pahawh_Hmong -16B63 16B77 Pahawh_Hmong -16B7D 16B8F Pahawh_Hmong -16F00 16F44 Miao -16F50 16F7E Miao -16F8F 16F9F Miao -1B000 Katakana -1B001 Hiragana -1BC00 1BC6A Duployan -1BC70 1BC7C Duployan -1BC80 1BC88 Duployan -1BC90 1BC99 Duployan -1BC9C 1BCA3 Duployan -1D000 1D0F5 Common -1D100 1D126 Common -1D129 1D166 Common -1D167 1D169 Inherited -1D16A 1D17A Common -1D17B 1D182 Inherited -1D183 1D184 Common -1D185 1D18B Inherited -1D18C 1D1A9 Common -1D1AA 1D1AD Inherited -1D1AE 1D1E8 Common -1D200 1D245 Greek -1D300 1D356 Common -1D360 1D371 Han -1D400 1D454 Common -1D456 1D49C Common -1D49E 1D49F Common -1D4A2 Common -1D4A5 1D4A6 Common -1D4A9 1D4AC Common -1D4AE 1D4B9 Common -1D4BB Common -1D4BD 1D4C3 Common -1D4C5 1D505 Common -1D507 1D50A Common -1D50D 1D514 Common -1D516 1D51C Common -1D51E 1D539 Common -1D53B 1D53E Common -1D540 1D544 Common -1D546 Common -1D54A 1D550 Common -1D552 1D6A5 Common -1D6A8 1D7CB Common -1D7CE 1D7FF Common -1D800 1DA8B SignWriting -1DA9B 1DA9F SignWriting -1DAA1 1DAAF SignWriting -1E800 1E8C4 Mende_Kikakui -1E8C7 1E8D6 Mende_Kikakui -1EE00 1EE03 Arabic -1EE05 1EE1F Arabic -1EE21 1EE22 Arabic -1EE24 Arabic -1EE27 Arabic -1EE29 1EE32 Arabic -1EE34 1EE37 Arabic -1EE39 Arabic -1EE3B Arabic -1EE42 Arabic -1EE47 Arabic -1EE49 Arabic -1EE4B Arabic -1EE4D 1EE4F Arabic -1EE51 1EE52 Arabic -1EE54 Arabic -1EE57 Arabic -1EE59 Arabic -1EE5B Arabic -1EE5D Arabic -1EE5F Arabic -1EE61 1EE62 Arabic -1EE64 Arabic -1EE67 1EE6A Arabic -1EE6C 1EE72 Arabic -1EE74 1EE77 Arabic -1EE79 1EE7C Arabic -1EE7E Arabic -1EE80 1EE89 Arabic -1EE8B 1EE9B Arabic -1EEA1 1EEA3 Arabic -1EEA5 1EEA9 Arabic -1EEAB 1EEBB Arabic -1EEF0 1EEF1 Arabic -1F000 1F02B Common -1F030 1F093 Common -1F0A0 1F0AE Common -1F0B1 1F0BF Common -1F0C1 1F0CF Common -1F0D1 1F0F5 Common -1F100 1F10C Common -1F110 1F12E Common -1F130 1F16B Common -1F170 1F19A Common -1F1E6 1F1FF Common -1F200 Hiragana -1F201 1F202 Common -1F210 1F23A Common -1F240 1F248 Common -1F250 1F251 Common -1F300 1F579 Common -1F57B 1F5A3 Common -1F5A5 1F6D0 Common -1F6E0 1F6EC Common -1F6F0 1F6F3 Common -1F700 1F773 Common -1F780 1F7D4 Common -1F800 1F80B Common -1F810 1F847 Common -1F850 1F859 Common -1F860 1F887 Common -1F890 1F8AD Common -1F910 1F918 Common -1F980 1F984 Common -1F9C0 Common -20000 2A6D6 Han -2A700 2B734 Han -2B740 2B81D Han -2B820 2CEA1 Han -2F800 2FA1D Han -E0001 Common -E0020 E007F Common -E0100 E01EF Inherited -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Tc.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Tc.pl deleted file mode 100644 index b59f5ddf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Tc.pl +++ /dev/null @@ -1,733 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -# The mappings in the non-hash portion of this file must be modified to get the -# correct values by adding the code point ordinal number to each one that is -# numeric. - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToTc'}{'format'} = 'ax'; # mapped value in hex; some entries need adjustment -$utf8::SwashInfo{'ToTc'}{'specials_name'} = 'utf8::ToSpecTc'; # Name of hash of special mappings -$utf8::SwashInfo{'ToTc'}{'missing'} = '0'; # code point maps to itself - -# Some code points require special handling because their mappings are each to -# multiple code points. These do not appear in the main body, but are defined -# in the hash below. - -# Each key is the string of N bytes that together make up the UTF-8 encoding -# for the code point. (i.e. the same as looking at the code point's UTF-8 -# under "use bytes"). Each value is the UTF-8 of the translation, for speed. -%utf8::ToSpecTc = ( -"\xC3\x9F" => "\x{0053}\x{0073}", # U+00DF => 0053 0073 -"\xC5\x89" => "\x{02BC}\x{004E}", # U+0149 => 02BC 004E -"\xC7\xB0" => "\x{004A}\x{030C}", # U+01F0 => 004A 030C -"\xCE\x90" => "\x{0399}\x{0308}\x{0301}", # U+0390 => 0399 0308 0301 -"\xCE\xB0" => "\x{03A5}\x{0308}\x{0301}", # U+03B0 => 03A5 0308 0301 -"\xD6\x87" => "\x{0535}\x{0582}", # U+0587 => 0535 0582 -"\xE1\xBA\x96" => "\x{0048}\x{0331}", # U+1E96 => 0048 0331 -"\xE1\xBA\x97" => "\x{0054}\x{0308}", # U+1E97 => 0054 0308 -"\xE1\xBA\x98" => "\x{0057}\x{030A}", # U+1E98 => 0057 030A -"\xE1\xBA\x99" => "\x{0059}\x{030A}", # U+1E99 => 0059 030A -"\xE1\xBA\x9A" => "\x{0041}\x{02BE}", # U+1E9A => 0041 02BE -"\xE1\xBD\x90" => "\x{03A5}\x{0313}", # U+1F50 => 03A5 0313 -"\xE1\xBD\x92" => "\x{03A5}\x{0313}\x{0300}", # U+1F52 => 03A5 0313 0300 -"\xE1\xBD\x94" => "\x{03A5}\x{0313}\x{0301}", # U+1F54 => 03A5 0313 0301 -"\xE1\xBD\x96" => "\x{03A5}\x{0313}\x{0342}", # U+1F56 => 03A5 0313 0342 -"\xE1\xBE\xB2" => "\x{1FBA}\x{0345}", # U+1FB2 => 1FBA 0345 -"\xE1\xBE\xB4" => "\x{0386}\x{0345}", # U+1FB4 => 0386 0345 -"\xE1\xBE\xB6" => "\x{0391}\x{0342}", # U+1FB6 => 0391 0342 -"\xE1\xBE\xB7" => "\x{0391}\x{0342}\x{0345}", # U+1FB7 => 0391 0342 0345 -"\xE1\xBF\x82" => "\x{1FCA}\x{0345}", # U+1FC2 => 1FCA 0345 -"\xE1\xBF\x84" => "\x{0389}\x{0345}", # U+1FC4 => 0389 0345 -"\xE1\xBF\x86" => "\x{0397}\x{0342}", # U+1FC6 => 0397 0342 -"\xE1\xBF\x87" => "\x{0397}\x{0342}\x{0345}", # U+1FC7 => 0397 0342 0345 -"\xE1\xBF\x92" => "\x{0399}\x{0308}\x{0300}", # U+1FD2 => 0399 0308 0300 -"\xE1\xBF\x93" => "\x{0399}\x{0308}\x{0301}", # U+1FD3 => 0399 0308 0301 -"\xE1\xBF\x96" => "\x{0399}\x{0342}", # U+1FD6 => 0399 0342 -"\xE1\xBF\x97" => "\x{0399}\x{0308}\x{0342}", # U+1FD7 => 0399 0308 0342 -"\xE1\xBF\xA2" => "\x{03A5}\x{0308}\x{0300}", # U+1FE2 => 03A5 0308 0300 -"\xE1\xBF\xA3" => "\x{03A5}\x{0308}\x{0301}", # U+1FE3 => 03A5 0308 0301 -"\xE1\xBF\xA4" => "\x{03A1}\x{0313}", # U+1FE4 => 03A1 0313 -"\xE1\xBF\xA6" => "\x{03A5}\x{0342}", # U+1FE6 => 03A5 0342 -"\xE1\xBF\xA7" => "\x{03A5}\x{0308}\x{0342}", # U+1FE7 => 03A5 0308 0342 -"\xE1\xBF\xB2" => "\x{1FFA}\x{0345}", # U+1FF2 => 1FFA 0345 -"\xE1\xBF\xB4" => "\x{038F}\x{0345}", # U+1FF4 => 038F 0345 -"\xE1\xBF\xB6" => "\x{03A9}\x{0342}", # U+1FF6 => 03A9 0342 -"\xE1\xBF\xB7" => "\x{03A9}\x{0342}\x{0345}", # U+1FF7 => 03A9 0342 0345 -"\xEF\xAC\x80" => "\x{0046}\x{0066}", # U+FB00 => 0046 0066 -"\xEF\xAC\x81" => "\x{0046}\x{0069}", # U+FB01 => 0046 0069 -"\xEF\xAC\x82" => "\x{0046}\x{006C}", # U+FB02 => 0046 006C -"\xEF\xAC\x83" => "\x{0046}\x{0066}\x{0069}", # U+FB03 => 0046 0066 0069 -"\xEF\xAC\x84" => "\x{0046}\x{0066}\x{006C}", # U+FB04 => 0046 0066 006C -"\xEF\xAC\x85" => "\x{0053}\x{0074}", # U+FB05 => 0053 0074 -"\xEF\xAC\x86" => "\x{0053}\x{0074}", # U+FB06 => 0053 0074 -"\xEF\xAC\x93" => "\x{0544}\x{0576}", # U+FB13 => 0544 0576 -"\xEF\xAC\x94" => "\x{0544}\x{0565}", # U+FB14 => 0544 0565 -"\xEF\xAC\x95" => "\x{0544}\x{056B}", # U+FB15 => 0544 056B -"\xEF\xAC\x96" => "\x{054E}\x{0576}", # U+FB16 => 054E 0576 -"\xEF\xAC\x97" => "\x{0544}\x{056D}", # U+FB17 => 0544 056D -); - -return <<'END'; -61 7A 41 -B5 39C -E0 F6 C0 -F8 FE D8 -FF 178 -101 100 -103 102 -105 104 -107 106 -109 108 -10B 10A -10D 10C -10F 10E -111 110 -113 112 -115 114 -117 116 -119 118 -11B 11A -11D 11C -11F 11E -121 120 -123 122 -125 124 -127 126 -129 128 -12B 12A -12D 12C -12F 12E -131 49 -133 132 -135 134 -137 136 -13A 139 -13C 13B -13E 13D -140 13F -142 141 -144 143 -146 145 -148 147 -14B 14A -14D 14C -14F 14E -151 150 -153 152 -155 154 -157 156 -159 158 -15B 15A -15D 15C -15F 15E -161 160 -163 162 -165 164 -167 166 -169 168 -16B 16A -16D 16C -16F 16E -171 170 -173 172 -175 174 -177 176 -17A 179 -17C 17B -17E 17D -17F 53 -180 243 -183 182 -185 184 -188 187 -18C 18B -192 191 -195 1F6 -199 198 -19A 23D -19E 220 -1A1 1A0 -1A3 1A2 -1A5 1A4 -1A8 1A7 -1AD 1AC -1B0 1AF -1B4 1B3 -1B6 1B5 -1B9 1B8 -1BD 1BC -1BF 1F7 -1C4 1C5 -1C6 1C5 -1C7 1C8 -1C9 1C8 -1CA 1CB -1CC 1CB -1CE 1CD -1D0 1CF -1D2 1D1 -1D4 1D3 -1D6 1D5 -1D8 1D7 -1DA 1D9 -1DC 1DB -1DD 18E -1DF 1DE -1E1 1E0 -1E3 1E2 -1E5 1E4 -1E7 1E6 -1E9 1E8 -1EB 1EA -1ED 1EC -1EF 1EE -1F1 1F2 -1F3 1F2 -1F5 1F4 -1F9 1F8 -1FB 1FA -1FD 1FC -1FF 1FE -201 200 -203 202 -205 204 -207 206 -209 208 -20B 20A -20D 20C -20F 20E -211 210 -213 212 -215 214 -217 216 -219 218 -21B 21A -21D 21C -21F 21E -223 222 -225 224 -227 226 -229 228 -22B 22A -22D 22C -22F 22E -231 230 -233 232 -23C 23B -23F 240 2C7E -242 241 -247 246 -249 248 -24B 24A -24D 24C -24F 24E -250 2C6F -251 2C6D -252 2C70 -253 181 -254 186 -256 257 189 -259 18F -25B 190 -25C A7AB -260 193 -261 A7AC -263 194 -265 A78D -266 A7AA -268 197 -269 196 -26B 2C62 -26C A7AD -26F 19C -271 2C6E -272 19D -275 19F -27D 2C64 -280 1A6 -283 1A9 -287 A7B1 -288 1AE -289 244 -28A 28B 1B1 -28C 245 -292 1B7 -29D A7B2 -29E A7B0 -345 399 -371 370 -373 372 -377 376 -37B 37D 3FD -3AC 386 -3AD 3AF 388 -3B1 3C1 391 -3C2 3A3 -3C3 3CB 3A3 -3CC 38C -3CD 3CE 38E -3D0 392 -3D1 398 -3D5 3A6 -3D6 3A0 -3D7 3CF -3D9 3D8 -3DB 3DA -3DD 3DC -3DF 3DE -3E1 3E0 -3E3 3E2 -3E5 3E4 -3E7 3E6 -3E9 3E8 -3EB 3EA -3ED 3EC -3EF 3EE -3F0 39A -3F1 3A1 -3F2 3F9 -3F3 37F -3F5 395 -3F8 3F7 -3FB 3FA -430 44F 410 -450 45F 400 -461 460 -463 462 -465 464 -467 466 -469 468 -46B 46A -46D 46C -46F 46E -471 470 -473 472 -475 474 -477 476 -479 478 -47B 47A -47D 47C -47F 47E -481 480 -48B 48A -48D 48C -48F 48E -491 490 -493 492 -495 494 -497 496 -499 498 -49B 49A -49D 49C -49F 49E -4A1 4A0 -4A3 4A2 -4A5 4A4 -4A7 4A6 -4A9 4A8 -4AB 4AA -4AD 4AC -4AF 4AE -4B1 4B0 -4B3 4B2 -4B5 4B4 -4B7 4B6 -4B9 4B8 -4BB 4BA -4BD 4BC -4BF 4BE -4C2 4C1 -4C4 4C3 -4C6 4C5 -4C8 4C7 -4CA 4C9 -4CC 4CB -4CE 4CD -4CF 4C0 -4D1 4D0 -4D3 4D2 -4D5 4D4 -4D7 4D6 -4D9 4D8 -4DB 4DA -4DD 4DC -4DF 4DE -4E1 4E0 -4E3 4E2 -4E5 4E4 -4E7 4E6 -4E9 4E8 -4EB 4EA -4ED 4EC -4EF 4EE -4F1 4F0 -4F3 4F2 -4F5 4F4 -4F7 4F6 -4F9 4F8 -4FB 4FA -4FD 4FC -4FF 4FE -501 500 -503 502 -505 504 -507 506 -509 508 -50B 50A -50D 50C -50F 50E -511 510 -513 512 -515 514 -517 516 -519 518 -51B 51A -51D 51C -51F 51E -521 520 -523 522 -525 524 -527 526 -529 528 -52B 52A -52D 52C -52F 52E -561 586 531 -13F8 13FD 13F0 -1D79 A77D -1D7D 2C63 -1E01 1E00 -1E03 1E02 -1E05 1E04 -1E07 1E06 -1E09 1E08 -1E0B 1E0A -1E0D 1E0C -1E0F 1E0E -1E11 1E10 -1E13 1E12 -1E15 1E14 -1E17 1E16 -1E19 1E18 -1E1B 1E1A -1E1D 1E1C -1E1F 1E1E -1E21 1E20 -1E23 1E22 -1E25 1E24 -1E27 1E26 -1E29 1E28 -1E2B 1E2A -1E2D 1E2C -1E2F 1E2E -1E31 1E30 -1E33 1E32 -1E35 1E34 -1E37 1E36 -1E39 1E38 -1E3B 1E3A -1E3D 1E3C -1E3F 1E3E -1E41 1E40 -1E43 1E42 -1E45 1E44 -1E47 1E46 -1E49 1E48 -1E4B 1E4A -1E4D 1E4C -1E4F 1E4E -1E51 1E50 -1E53 1E52 -1E55 1E54 -1E57 1E56 -1E59 1E58 -1E5B 1E5A -1E5D 1E5C -1E5F 1E5E -1E61 1E60 -1E63 1E62 -1E65 1E64 -1E67 1E66 -1E69 1E68 -1E6B 1E6A -1E6D 1E6C -1E6F 1E6E -1E71 1E70 -1E73 1E72 -1E75 1E74 -1E77 1E76 -1E79 1E78 -1E7B 1E7A -1E7D 1E7C -1E7F 1E7E -1E81 1E80 -1E83 1E82 -1E85 1E84 -1E87 1E86 -1E89 1E88 -1E8B 1E8A -1E8D 1E8C -1E8F 1E8E -1E91 1E90 -1E93 1E92 -1E95 1E94 -1E9B 1E60 -1EA1 1EA0 -1EA3 1EA2 -1EA5 1EA4 -1EA7 1EA6 -1EA9 1EA8 -1EAB 1EAA -1EAD 1EAC -1EAF 1EAE -1EB1 1EB0 -1EB3 1EB2 -1EB5 1EB4 -1EB7 1EB6 -1EB9 1EB8 -1EBB 1EBA -1EBD 1EBC -1EBF 1EBE -1EC1 1EC0 -1EC3 1EC2 -1EC5 1EC4 -1EC7 1EC6 -1EC9 1EC8 -1ECB 1ECA -1ECD 1ECC -1ECF 1ECE -1ED1 1ED0 -1ED3 1ED2 -1ED5 1ED4 -1ED7 1ED6 -1ED9 1ED8 -1EDB 1EDA -1EDD 1EDC -1EDF 1EDE -1EE1 1EE0 -1EE3 1EE2 -1EE5 1EE4 -1EE7 1EE6 -1EE9 1EE8 -1EEB 1EEA -1EED 1EEC -1EEF 1EEE -1EF1 1EF0 -1EF3 1EF2 -1EF5 1EF4 -1EF7 1EF6 -1EF9 1EF8 -1EFB 1EFA -1EFD 1EFC -1EFF 1EFE -1F00 1F07 1F08 -1F10 1F15 1F18 -1F20 1F27 1F28 -1F30 1F37 1F38 -1F40 1F45 1F48 -1F51 1F59 -1F53 1F5B -1F55 1F5D -1F57 1F5F -1F60 1F67 1F68 -1F70 1F71 1FBA -1F72 1F75 1FC8 -1F76 1F77 1FDA -1F78 1F79 1FF8 -1F7A 1F7B 1FEA -1F7C 1F7D 1FFA -1F80 1F87 1F88 -1F90 1F97 1F98 -1FA0 1FA7 1FA8 -1FB0 1FB1 1FB8 -1FB3 1FBC -1FBE 399 -1FC3 1FCC -1FD0 1FD1 1FD8 -1FE0 1FE1 1FE8 -1FE5 1FEC -1FF3 1FFC -214E 2132 -2170 217F 2160 -2184 2183 -24D0 24E9 24B6 -2C30 2C5E 2C00 -2C61 2C60 -2C65 23A -2C66 23E -2C68 2C67 -2C6A 2C69 -2C6C 2C6B -2C73 2C72 -2C76 2C75 -2C81 2C80 -2C83 2C82 -2C85 2C84 -2C87 2C86 -2C89 2C88 -2C8B 2C8A -2C8D 2C8C -2C8F 2C8E -2C91 2C90 -2C93 2C92 -2C95 2C94 -2C97 2C96 -2C99 2C98 -2C9B 2C9A -2C9D 2C9C -2C9F 2C9E -2CA1 2CA0 -2CA3 2CA2 -2CA5 2CA4 -2CA7 2CA6 -2CA9 2CA8 -2CAB 2CAA -2CAD 2CAC -2CAF 2CAE -2CB1 2CB0 -2CB3 2CB2 -2CB5 2CB4 -2CB7 2CB6 -2CB9 2CB8 -2CBB 2CBA -2CBD 2CBC -2CBF 2CBE -2CC1 2CC0 -2CC3 2CC2 -2CC5 2CC4 -2CC7 2CC6 -2CC9 2CC8 -2CCB 2CCA -2CCD 2CCC -2CCF 2CCE -2CD1 2CD0 -2CD3 2CD2 -2CD5 2CD4 -2CD7 2CD6 -2CD9 2CD8 -2CDB 2CDA -2CDD 2CDC -2CDF 2CDE -2CE1 2CE0 -2CE3 2CE2 -2CEC 2CEB -2CEE 2CED -2CF3 2CF2 -2D00 2D25 10A0 -2D27 10C7 -2D2D 10CD -A641 A640 -A643 A642 -A645 A644 -A647 A646 -A649 A648 -A64B A64A -A64D A64C -A64F A64E -A651 A650 -A653 A652 -A655 A654 -A657 A656 -A659 A658 -A65B A65A -A65D A65C -A65F A65E -A661 A660 -A663 A662 -A665 A664 -A667 A666 -A669 A668 -A66B A66A -A66D A66C -A681 A680 -A683 A682 -A685 A684 -A687 A686 -A689 A688 -A68B A68A -A68D A68C -A68F A68E -A691 A690 -A693 A692 -A695 A694 -A697 A696 -A699 A698 -A69B A69A -A723 A722 -A725 A724 -A727 A726 -A729 A728 -A72B A72A -A72D A72C -A72F A72E -A733 A732 -A735 A734 -A737 A736 -A739 A738 -A73B A73A -A73D A73C -A73F A73E -A741 A740 -A743 A742 -A745 A744 -A747 A746 -A749 A748 -A74B A74A -A74D A74C -A74F A74E -A751 A750 -A753 A752 -A755 A754 -A757 A756 -A759 A758 -A75B A75A -A75D A75C -A75F A75E -A761 A760 -A763 A762 -A765 A764 -A767 A766 -A769 A768 -A76B A76A -A76D A76C -A76F A76E -A77A A779 -A77C A77B -A77F A77E -A781 A780 -A783 A782 -A785 A784 -A787 A786 -A78C A78B -A791 A790 -A793 A792 -A797 A796 -A799 A798 -A79B A79A -A79D A79C -A79F A79E -A7A1 A7A0 -A7A3 A7A2 -A7A5 A7A4 -A7A7 A7A6 -A7A9 A7A8 -A7B5 A7B4 -A7B7 A7B6 -AB53 A7B3 -AB70 ABBF 13A0 -FF41 FF5A FF21 -10428 1044F 10400 -10CC0 10CF2 10C80 -118C0 118DF 118A0 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Title.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Title.pl deleted file mode 100644 index b6363b86..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Title.pl +++ /dev/null @@ -1,1324 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!! - -# This file is for internal use by core Perl only. It is retained for -# backwards compatibility with applications that may have come to rely on it, -# but its format and even its name or existence are subject to change without -# notice in a future Perl version. Don't use it directly. Instead, its -# contents are now retrievable through a stable API in the Unicode::UCD -# module: Unicode::UCD::prop_invmap('Titlecase_Mapping') (Values for individual -# code points can be retrieved via Unicode::UCD::charprop()); - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToTitle'}{'format'} = 'x'; # non-negative hex whole number; a code point -$utf8::SwashInfo{'ToTitle'}{'specials_name'} = 'utf8::ToSpecTitle'; # Name of hash of special mappings -$utf8::SwashInfo{'ToTitle'}{'missing'} = '<code point>'; # code point maps to itself - -# Some code points require special handling because their mappings are each to -# multiple code points. These do not appear in the main body, but are defined -# in the hash below. - -# Each key is the string of N bytes that together make up the UTF-8 encoding -# for the code point. (i.e. the same as looking at the code point's UTF-8 -# under "use bytes"). Each value is the UTF-8 of the translation, for speed. -%utf8::ToSpecTitle = ( -"\xC3\x9F" => "\x{0053}\x{0073}", # U+00DF => 0053 0073 -"\xC5\x89" => "\x{02BC}\x{004E}", # U+0149 => 02BC 004E -"\xC7\xB0" => "\x{004A}\x{030C}", # U+01F0 => 004A 030C -"\xCE\x90" => "\x{0399}\x{0308}\x{0301}", # U+0390 => 0399 0308 0301 -"\xCE\xB0" => "\x{03A5}\x{0308}\x{0301}", # U+03B0 => 03A5 0308 0301 -"\xD6\x87" => "\x{0535}\x{0582}", # U+0587 => 0535 0582 -"\xE1\xBA\x96" => "\x{0048}\x{0331}", # U+1E96 => 0048 0331 -"\xE1\xBA\x97" => "\x{0054}\x{0308}", # U+1E97 => 0054 0308 -"\xE1\xBA\x98" => "\x{0057}\x{030A}", # U+1E98 => 0057 030A -"\xE1\xBA\x99" => "\x{0059}\x{030A}", # U+1E99 => 0059 030A -"\xE1\xBA\x9A" => "\x{0041}\x{02BE}", # U+1E9A => 0041 02BE -"\xE1\xBD\x90" => "\x{03A5}\x{0313}", # U+1F50 => 03A5 0313 -"\xE1\xBD\x92" => "\x{03A5}\x{0313}\x{0300}", # U+1F52 => 03A5 0313 0300 -"\xE1\xBD\x94" => "\x{03A5}\x{0313}\x{0301}", # U+1F54 => 03A5 0313 0301 -"\xE1\xBD\x96" => "\x{03A5}\x{0313}\x{0342}", # U+1F56 => 03A5 0313 0342 -"\xE1\xBE\xB2" => "\x{1FBA}\x{0345}", # U+1FB2 => 1FBA 0345 -"\xE1\xBE\xB4" => "\x{0386}\x{0345}", # U+1FB4 => 0386 0345 -"\xE1\xBE\xB6" => "\x{0391}\x{0342}", # U+1FB6 => 0391 0342 -"\xE1\xBE\xB7" => "\x{0391}\x{0342}\x{0345}", # U+1FB7 => 0391 0342 0345 -"\xE1\xBF\x82" => "\x{1FCA}\x{0345}", # U+1FC2 => 1FCA 0345 -"\xE1\xBF\x84" => "\x{0389}\x{0345}", # U+1FC4 => 0389 0345 -"\xE1\xBF\x86" => "\x{0397}\x{0342}", # U+1FC6 => 0397 0342 -"\xE1\xBF\x87" => "\x{0397}\x{0342}\x{0345}", # U+1FC7 => 0397 0342 0345 -"\xE1\xBF\x92" => "\x{0399}\x{0308}\x{0300}", # U+1FD2 => 0399 0308 0300 -"\xE1\xBF\x93" => "\x{0399}\x{0308}\x{0301}", # U+1FD3 => 0399 0308 0301 -"\xE1\xBF\x96" => "\x{0399}\x{0342}", # U+1FD6 => 0399 0342 -"\xE1\xBF\x97" => "\x{0399}\x{0308}\x{0342}", # U+1FD7 => 0399 0308 0342 -"\xE1\xBF\xA2" => "\x{03A5}\x{0308}\x{0300}", # U+1FE2 => 03A5 0308 0300 -"\xE1\xBF\xA3" => "\x{03A5}\x{0308}\x{0301}", # U+1FE3 => 03A5 0308 0301 -"\xE1\xBF\xA4" => "\x{03A1}\x{0313}", # U+1FE4 => 03A1 0313 -"\xE1\xBF\xA6" => "\x{03A5}\x{0342}", # U+1FE6 => 03A5 0342 -"\xE1\xBF\xA7" => "\x{03A5}\x{0308}\x{0342}", # U+1FE7 => 03A5 0308 0342 -"\xE1\xBF\xB2" => "\x{1FFA}\x{0345}", # U+1FF2 => 1FFA 0345 -"\xE1\xBF\xB4" => "\x{038F}\x{0345}", # U+1FF4 => 038F 0345 -"\xE1\xBF\xB6" => "\x{03A9}\x{0342}", # U+1FF6 => 03A9 0342 -"\xE1\xBF\xB7" => "\x{03A9}\x{0342}\x{0345}", # U+1FF7 => 03A9 0342 0345 -"\xEF\xAC\x80" => "\x{0046}\x{0066}", # U+FB00 => 0046 0066 -"\xEF\xAC\x81" => "\x{0046}\x{0069}", # U+FB01 => 0046 0069 -"\xEF\xAC\x82" => "\x{0046}\x{006C}", # U+FB02 => 0046 006C -"\xEF\xAC\x83" => "\x{0046}\x{0066}\x{0069}", # U+FB03 => 0046 0066 0069 -"\xEF\xAC\x84" => "\x{0046}\x{0066}\x{006C}", # U+FB04 => 0046 0066 006C -"\xEF\xAC\x85" => "\x{0053}\x{0074}", # U+FB05 => 0053 0074 -"\xEF\xAC\x86" => "\x{0053}\x{0074}", # U+FB06 => 0053 0074 -"\xEF\xAC\x93" => "\x{0544}\x{0576}", # U+FB13 => 0544 0576 -"\xEF\xAC\x94" => "\x{0544}\x{0565}", # U+FB14 => 0544 0565 -"\xEF\xAC\x95" => "\x{0544}\x{056B}", # U+FB15 => 0544 056B -"\xEF\xAC\x96" => "\x{054E}\x{0576}", # U+FB16 => 054E 0576 -"\xEF\xAC\x97" => "\x{0544}\x{056D}", # U+FB17 => 0544 056D -); - -return <<'END'; -0061 0041 -0062 0042 -0063 0043 -0064 0044 -0065 0045 -0066 0046 -0067 0047 -0068 0048 -0069 0049 -006A 004A -006B 004B -006C 004C -006D 004D -006E 004E -006F 004F -0070 0050 -0071 0051 -0072 0052 -0073 0053 -0074 0054 -0075 0055 -0076 0056 -0077 0057 -0078 0058 -0079 0059 -007A 005A -00B5 039C -00E0 00C0 -00E1 00C1 -00E2 00C2 -00E3 00C3 -00E4 00C4 -00E5 00C5 -00E6 00C6 -00E7 00C7 -00E8 00C8 -00E9 00C9 -00EA 00CA -00EB 00CB -00EC 00CC -00ED 00CD -00EE 00CE -00EF 00CF -00F0 00D0 -00F1 00D1 -00F2 00D2 -00F3 00D3 -00F4 00D4 -00F5 00D5 -00F6 00D6 -00F8 00D8 -00F9 00D9 -00FA 00DA -00FB 00DB -00FC 00DC -00FD 00DD -00FE 00DE -00FF 0178 -0101 0100 -0103 0102 -0105 0104 -0107 0106 -0109 0108 -010B 010A -010D 010C -010F 010E -0111 0110 -0113 0112 -0115 0114 -0117 0116 -0119 0118 -011B 011A -011D 011C -011F 011E -0121 0120 -0123 0122 -0125 0124 -0127 0126 -0129 0128 -012B 012A -012D 012C -012F 012E -0131 0049 -0133 0132 -0135 0134 -0137 0136 -013A 0139 -013C 013B -013E 013D -0140 013F -0142 0141 -0144 0143 -0146 0145 -0148 0147 -014B 014A -014D 014C -014F 014E -0151 0150 -0153 0152 -0155 0154 -0157 0156 -0159 0158 -015B 015A -015D 015C -015F 015E -0161 0160 -0163 0162 -0165 0164 -0167 0166 -0169 0168 -016B 016A -016D 016C -016F 016E -0171 0170 -0173 0172 -0175 0174 -0177 0176 -017A 0179 -017C 017B -017E 017D -017F 0053 -0180 0243 -0183 0182 -0185 0184 -0188 0187 -018C 018B -0192 0191 -0195 01F6 -0199 0198 -019A 023D -019E 0220 -01A1 01A0 -01A3 01A2 -01A5 01A4 -01A8 01A7 -01AD 01AC -01B0 01AF -01B4 01B3 -01B6 01B5 -01B9 01B8 -01BD 01BC -01BF 01F7 -01C4 01C5 -01C6 01C5 -01C7 01C8 -01C9 01C8 -01CA 01CB -01CC 01CB -01CE 01CD -01D0 01CF -01D2 01D1 -01D4 01D3 -01D6 01D5 -01D8 01D7 -01DA 01D9 -01DC 01DB -01DD 018E -01DF 01DE -01E1 01E0 -01E3 01E2 -01E5 01E4 -01E7 01E6 -01E9 01E8 -01EB 01EA -01ED 01EC -01EF 01EE -01F1 01F2 -01F3 01F2 -01F5 01F4 -01F9 01F8 -01FB 01FA -01FD 01FC -01FF 01FE -0201 0200 -0203 0202 -0205 0204 -0207 0206 -0209 0208 -020B 020A -020D 020C -020F 020E -0211 0210 -0213 0212 -0215 0214 -0217 0216 -0219 0218 -021B 021A -021D 021C -021F 021E -0223 0222 -0225 0224 -0227 0226 -0229 0228 -022B 022A -022D 022C -022F 022E -0231 0230 -0233 0232 -023C 023B -023F 2C7E -0240 2C7F -0242 0241 -0247 0246 -0249 0248 -024B 024A -024D 024C -024F 024E -0250 2C6F -0251 2C6D -0252 2C70 -0253 0181 -0254 0186 -0256 0189 -0257 018A -0259 018F -025B 0190 -025C A7AB -0260 0193 -0261 A7AC -0263 0194 -0265 A78D -0266 A7AA -0268 0197 -0269 0196 -026B 2C62 -026C A7AD -026F 019C -0271 2C6E -0272 019D -0275 019F -027D 2C64 -0280 01A6 -0283 01A9 -0287 A7B1 -0288 01AE -0289 0244 -028A 01B1 -028B 01B2 -028C 0245 -0292 01B7 -029D A7B2 -029E A7B0 -0345 0399 -0371 0370 -0373 0372 -0377 0376 -037B 03FD -037C 03FE -037D 03FF -03AC 0386 -03AD 0388 -03AE 0389 -03AF 038A -03B1 0391 -03B2 0392 -03B3 0393 -03B4 0394 -03B5 0395 -03B6 0396 -03B7 0397 -03B8 0398 -03B9 0399 -03BA 039A -03BB 039B -03BC 039C -03BD 039D -03BE 039E -03BF 039F -03C0 03A0 -03C1 03A1 -03C2 03A3 -03C3 03A3 -03C4 03A4 -03C5 03A5 -03C6 03A6 -03C7 03A7 -03C8 03A8 -03C9 03A9 -03CA 03AA -03CB 03AB -03CC 038C -03CD 038E -03CE 038F -03D0 0392 -03D1 0398 -03D5 03A6 -03D6 03A0 -03D7 03CF -03D9 03D8 -03DB 03DA -03DD 03DC -03DF 03DE -03E1 03E0 -03E3 03E2 -03E5 03E4 -03E7 03E6 -03E9 03E8 -03EB 03EA -03ED 03EC -03EF 03EE -03F0 039A -03F1 03A1 -03F2 03F9 -03F3 037F -03F5 0395 -03F8 03F7 -03FB 03FA -0430 0410 -0431 0411 -0432 0412 -0433 0413 -0434 0414 -0435 0415 -0436 0416 -0437 0417 -0438 0418 -0439 0419 -043A 041A -043B 041B -043C 041C -043D 041D -043E 041E -043F 041F -0440 0420 -0441 0421 -0442 0422 -0443 0423 -0444 0424 -0445 0425 -0446 0426 -0447 0427 -0448 0428 -0449 0429 -044A 042A -044B 042B -044C 042C -044D 042D -044E 042E -044F 042F -0450 0400 -0451 0401 -0452 0402 -0453 0403 -0454 0404 -0455 0405 -0456 0406 -0457 0407 -0458 0408 -0459 0409 -045A 040A -045B 040B -045C 040C -045D 040D -045E 040E -045F 040F -0461 0460 -0463 0462 -0465 0464 -0467 0466 -0469 0468 -046B 046A -046D 046C -046F 046E -0471 0470 -0473 0472 -0475 0474 -0477 0476 -0479 0478 -047B 047A -047D 047C -047F 047E -0481 0480 -048B 048A -048D 048C -048F 048E -0491 0490 -0493 0492 -0495 0494 -0497 0496 -0499 0498 -049B 049A -049D 049C -049F 049E -04A1 04A0 -04A3 04A2 -04A5 04A4 -04A7 04A6 -04A9 04A8 -04AB 04AA -04AD 04AC -04AF 04AE -04B1 04B0 -04B3 04B2 -04B5 04B4 -04B7 04B6 -04B9 04B8 -04BB 04BA -04BD 04BC -04BF 04BE -04C2 04C1 -04C4 04C3 -04C6 04C5 -04C8 04C7 -04CA 04C9 -04CC 04CB -04CE 04CD -04CF 04C0 -04D1 04D0 -04D3 04D2 -04D5 04D4 -04D7 04D6 -04D9 04D8 -04DB 04DA -04DD 04DC -04DF 04DE -04E1 04E0 -04E3 04E2 -04E5 04E4 -04E7 04E6 -04E9 04E8 -04EB 04EA -04ED 04EC -04EF 04EE -04F1 04F0 -04F3 04F2 -04F5 04F4 -04F7 04F6 -04F9 04F8 -04FB 04FA -04FD 04FC -04FF 04FE -0501 0500 -0503 0502 -0505 0504 -0507 0506 -0509 0508 -050B 050A -050D 050C -050F 050E -0511 0510 -0513 0512 -0515 0514 -0517 0516 -0519 0518 -051B 051A -051D 051C -051F 051E -0521 0520 -0523 0522 -0525 0524 -0527 0526 -0529 0528 -052B 052A -052D 052C -052F 052E -0561 0531 -0562 0532 -0563 0533 -0564 0534 -0565 0535 -0566 0536 -0567 0537 -0568 0538 -0569 0539 -056A 053A -056B 053B -056C 053C -056D 053D -056E 053E -056F 053F -0570 0540 -0571 0541 -0572 0542 -0573 0543 -0574 0544 -0575 0545 -0576 0546 -0577 0547 -0578 0548 -0579 0549 -057A 054A -057B 054B -057C 054C -057D 054D -057E 054E -057F 054F -0580 0550 -0581 0551 -0582 0552 -0583 0553 -0584 0554 -0585 0555 -0586 0556 -13F8 13F0 -13F9 13F1 -13FA 13F2 -13FB 13F3 -13FC 13F4 -13FD 13F5 -1D79 A77D -1D7D 2C63 -1E01 1E00 -1E03 1E02 -1E05 1E04 -1E07 1E06 -1E09 1E08 -1E0B 1E0A -1E0D 1E0C -1E0F 1E0E -1E11 1E10 -1E13 1E12 -1E15 1E14 -1E17 1E16 -1E19 1E18 -1E1B 1E1A -1E1D 1E1C -1E1F 1E1E -1E21 1E20 -1E23 1E22 -1E25 1E24 -1E27 1E26 -1E29 1E28 -1E2B 1E2A -1E2D 1E2C -1E2F 1E2E -1E31 1E30 -1E33 1E32 -1E35 1E34 -1E37 1E36 -1E39 1E38 -1E3B 1E3A -1E3D 1E3C -1E3F 1E3E -1E41 1E40 -1E43 1E42 -1E45 1E44 -1E47 1E46 -1E49 1E48 -1E4B 1E4A -1E4D 1E4C -1E4F 1E4E -1E51 1E50 -1E53 1E52 -1E55 1E54 -1E57 1E56 -1E59 1E58 -1E5B 1E5A -1E5D 1E5C -1E5F 1E5E -1E61 1E60 -1E63 1E62 -1E65 1E64 -1E67 1E66 -1E69 1E68 -1E6B 1E6A -1E6D 1E6C -1E6F 1E6E -1E71 1E70 -1E73 1E72 -1E75 1E74 -1E77 1E76 -1E79 1E78 -1E7B 1E7A -1E7D 1E7C -1E7F 1E7E -1E81 1E80 -1E83 1E82 -1E85 1E84 -1E87 1E86 -1E89 1E88 -1E8B 1E8A -1E8D 1E8C -1E8F 1E8E -1E91 1E90 -1E93 1E92 -1E95 1E94 -1E9B 1E60 -1EA1 1EA0 -1EA3 1EA2 -1EA5 1EA4 -1EA7 1EA6 -1EA9 1EA8 -1EAB 1EAA -1EAD 1EAC -1EAF 1EAE -1EB1 1EB0 -1EB3 1EB2 -1EB5 1EB4 -1EB7 1EB6 -1EB9 1EB8 -1EBB 1EBA -1EBD 1EBC -1EBF 1EBE -1EC1 1EC0 -1EC3 1EC2 -1EC5 1EC4 -1EC7 1EC6 -1EC9 1EC8 -1ECB 1ECA -1ECD 1ECC -1ECF 1ECE -1ED1 1ED0 -1ED3 1ED2 -1ED5 1ED4 -1ED7 1ED6 -1ED9 1ED8 -1EDB 1EDA -1EDD 1EDC -1EDF 1EDE -1EE1 1EE0 -1EE3 1EE2 -1EE5 1EE4 -1EE7 1EE6 -1EE9 1EE8 -1EEB 1EEA -1EED 1EEC -1EEF 1EEE -1EF1 1EF0 -1EF3 1EF2 -1EF5 1EF4 -1EF7 1EF6 -1EF9 1EF8 -1EFB 1EFA -1EFD 1EFC -1EFF 1EFE -1F00 1F08 -1F01 1F09 -1F02 1F0A -1F03 1F0B -1F04 1F0C -1F05 1F0D -1F06 1F0E -1F07 1F0F -1F10 1F18 -1F11 1F19 -1F12 1F1A -1F13 1F1B -1F14 1F1C -1F15 1F1D -1F20 1F28 -1F21 1F29 -1F22 1F2A -1F23 1F2B -1F24 1F2C -1F25 1F2D -1F26 1F2E -1F27 1F2F -1F30 1F38 -1F31 1F39 -1F32 1F3A -1F33 1F3B -1F34 1F3C -1F35 1F3D -1F36 1F3E -1F37 1F3F -1F40 1F48 -1F41 1F49 -1F42 1F4A -1F43 1F4B -1F44 1F4C -1F45 1F4D -1F51 1F59 -1F53 1F5B -1F55 1F5D -1F57 1F5F -1F60 1F68 -1F61 1F69 -1F62 1F6A -1F63 1F6B -1F64 1F6C -1F65 1F6D -1F66 1F6E -1F67 1F6F -1F70 1FBA -1F71 1FBB -1F72 1FC8 -1F73 1FC9 -1F74 1FCA -1F75 1FCB -1F76 1FDA -1F77 1FDB -1F78 1FF8 -1F79 1FF9 -1F7A 1FEA -1F7B 1FEB -1F7C 1FFA -1F7D 1FFB -1F80 1F88 -1F81 1F89 -1F82 1F8A -1F83 1F8B -1F84 1F8C -1F85 1F8D -1F86 1F8E -1F87 1F8F -1F90 1F98 -1F91 1F99 -1F92 1F9A -1F93 1F9B -1F94 1F9C -1F95 1F9D -1F96 1F9E -1F97 1F9F -1FA0 1FA8 -1FA1 1FA9 -1FA2 1FAA -1FA3 1FAB -1FA4 1FAC -1FA5 1FAD -1FA6 1FAE -1FA7 1FAF -1FB0 1FB8 -1FB1 1FB9 -1FB3 1FBC -1FBE 0399 -1FC3 1FCC -1FD0 1FD8 -1FD1 1FD9 -1FE0 1FE8 -1FE1 1FE9 -1FE5 1FEC -1FF3 1FFC -214E 2132 -2170 2160 -2171 2161 -2172 2162 -2173 2163 -2174 2164 -2175 2165 -2176 2166 -2177 2167 -2178 2168 -2179 2169 -217A 216A -217B 216B -217C 216C -217D 216D -217E 216E -217F 216F -2184 2183 -24D0 24B6 -24D1 24B7 -24D2 24B8 -24D3 24B9 -24D4 24BA -24D5 24BB -24D6 24BC -24D7 24BD -24D8 24BE -24D9 24BF -24DA 24C0 -24DB 24C1 -24DC 24C2 -24DD 24C3 -24DE 24C4 -24DF 24C5 -24E0 24C6 -24E1 24C7 -24E2 24C8 -24E3 24C9 -24E4 24CA -24E5 24CB -24E6 24CC -24E7 24CD -24E8 24CE -24E9 24CF -2C30 2C00 -2C31 2C01 -2C32 2C02 -2C33 2C03 -2C34 2C04 -2C35 2C05 -2C36 2C06 -2C37 2C07 -2C38 2C08 -2C39 2C09 -2C3A 2C0A -2C3B 2C0B -2C3C 2C0C -2C3D 2C0D -2C3E 2C0E -2C3F 2C0F -2C40 2C10 -2C41 2C11 -2C42 2C12 -2C43 2C13 -2C44 2C14 -2C45 2C15 -2C46 2C16 -2C47 2C17 -2C48 2C18 -2C49 2C19 -2C4A 2C1A -2C4B 2C1B -2C4C 2C1C -2C4D 2C1D -2C4E 2C1E -2C4F 2C1F -2C50 2C20 -2C51 2C21 -2C52 2C22 -2C53 2C23 -2C54 2C24 -2C55 2C25 -2C56 2C26 -2C57 2C27 -2C58 2C28 -2C59 2C29 -2C5A 2C2A -2C5B 2C2B -2C5C 2C2C -2C5D 2C2D -2C5E 2C2E -2C61 2C60 -2C65 023A -2C66 023E -2C68 2C67 -2C6A 2C69 -2C6C 2C6B -2C73 2C72 -2C76 2C75 -2C81 2C80 -2C83 2C82 -2C85 2C84 -2C87 2C86 -2C89 2C88 -2C8B 2C8A -2C8D 2C8C -2C8F 2C8E -2C91 2C90 -2C93 2C92 -2C95 2C94 -2C97 2C96 -2C99 2C98 -2C9B 2C9A -2C9D 2C9C -2C9F 2C9E -2CA1 2CA0 -2CA3 2CA2 -2CA5 2CA4 -2CA7 2CA6 -2CA9 2CA8 -2CAB 2CAA -2CAD 2CAC -2CAF 2CAE -2CB1 2CB0 -2CB3 2CB2 -2CB5 2CB4 -2CB7 2CB6 -2CB9 2CB8 -2CBB 2CBA -2CBD 2CBC -2CBF 2CBE -2CC1 2CC0 -2CC3 2CC2 -2CC5 2CC4 -2CC7 2CC6 -2CC9 2CC8 -2CCB 2CCA -2CCD 2CCC -2CCF 2CCE -2CD1 2CD0 -2CD3 2CD2 -2CD5 2CD4 -2CD7 2CD6 -2CD9 2CD8 -2CDB 2CDA -2CDD 2CDC -2CDF 2CDE -2CE1 2CE0 -2CE3 2CE2 -2CEC 2CEB -2CEE 2CED -2CF3 2CF2 -2D00 10A0 -2D01 10A1 -2D02 10A2 -2D03 10A3 -2D04 10A4 -2D05 10A5 -2D06 10A6 -2D07 10A7 -2D08 10A8 -2D09 10A9 -2D0A 10AA -2D0B 10AB -2D0C 10AC -2D0D 10AD -2D0E 10AE -2D0F 10AF -2D10 10B0 -2D11 10B1 -2D12 10B2 -2D13 10B3 -2D14 10B4 -2D15 10B5 -2D16 10B6 -2D17 10B7 -2D18 10B8 -2D19 10B9 -2D1A 10BA -2D1B 10BB -2D1C 10BC -2D1D 10BD -2D1E 10BE -2D1F 10BF -2D20 10C0 -2D21 10C1 -2D22 10C2 -2D23 10C3 -2D24 10C4 -2D25 10C5 -2D27 10C7 -2D2D 10CD -A641 A640 -A643 A642 -A645 A644 -A647 A646 -A649 A648 -A64B A64A -A64D A64C -A64F A64E -A651 A650 -A653 A652 -A655 A654 -A657 A656 -A659 A658 -A65B A65A -A65D A65C -A65F A65E -A661 A660 -A663 A662 -A665 A664 -A667 A666 -A669 A668 -A66B A66A -A66D A66C -A681 A680 -A683 A682 -A685 A684 -A687 A686 -A689 A688 -A68B A68A -A68D A68C -A68F A68E -A691 A690 -A693 A692 -A695 A694 -A697 A696 -A699 A698 -A69B A69A -A723 A722 -A725 A724 -A727 A726 -A729 A728 -A72B A72A -A72D A72C -A72F A72E -A733 A732 -A735 A734 -A737 A736 -A739 A738 -A73B A73A -A73D A73C -A73F A73E -A741 A740 -A743 A742 -A745 A744 -A747 A746 -A749 A748 -A74B A74A -A74D A74C -A74F A74E -A751 A750 -A753 A752 -A755 A754 -A757 A756 -A759 A758 -A75B A75A -A75D A75C -A75F A75E -A761 A760 -A763 A762 -A765 A764 -A767 A766 -A769 A768 -A76B A76A -A76D A76C -A76F A76E -A77A A779 -A77C A77B -A77F A77E -A781 A780 -A783 A782 -A785 A784 -A787 A786 -A78C A78B -A791 A790 -A793 A792 -A797 A796 -A799 A798 -A79B A79A -A79D A79C -A79F A79E -A7A1 A7A0 -A7A3 A7A2 -A7A5 A7A4 -A7A7 A7A6 -A7A9 A7A8 -A7B5 A7B4 -A7B7 A7B6 -AB53 A7B3 -AB70 13A0 -AB71 13A1 -AB72 13A2 -AB73 13A3 -AB74 13A4 -AB75 13A5 -AB76 13A6 -AB77 13A7 -AB78 13A8 -AB79 13A9 -AB7A 13AA -AB7B 13AB -AB7C 13AC -AB7D 13AD -AB7E 13AE -AB7F 13AF -AB80 13B0 -AB81 13B1 -AB82 13B2 -AB83 13B3 -AB84 13B4 -AB85 13B5 -AB86 13B6 -AB87 13B7 -AB88 13B8 -AB89 13B9 -AB8A 13BA -AB8B 13BB -AB8C 13BC -AB8D 13BD -AB8E 13BE -AB8F 13BF -AB90 13C0 -AB91 13C1 -AB92 13C2 -AB93 13C3 -AB94 13C4 -AB95 13C5 -AB96 13C6 -AB97 13C7 -AB98 13C8 -AB99 13C9 -AB9A 13CA -AB9B 13CB -AB9C 13CC -AB9D 13CD -AB9E 13CE -AB9F 13CF -ABA0 13D0 -ABA1 13D1 -ABA2 13D2 -ABA3 13D3 -ABA4 13D4 -ABA5 13D5 -ABA6 13D6 -ABA7 13D7 -ABA8 13D8 -ABA9 13D9 -ABAA 13DA -ABAB 13DB -ABAC 13DC -ABAD 13DD -ABAE 13DE -ABAF 13DF -ABB0 13E0 -ABB1 13E1 -ABB2 13E2 -ABB3 13E3 -ABB4 13E4 -ABB5 13E5 -ABB6 13E6 -ABB7 13E7 -ABB8 13E8 -ABB9 13E9 -ABBA 13EA -ABBB 13EB -ABBC 13EC -ABBD 13ED -ABBE 13EE -ABBF 13EF -FF41 FF21 -FF42 FF22 -FF43 FF23 -FF44 FF24 -FF45 FF25 -FF46 FF26 -FF47 FF27 -FF48 FF28 -FF49 FF29 -FF4A FF2A -FF4B FF2B -FF4C FF2C -FF4D FF2D -FF4E FF2E -FF4F FF2F -FF50 FF30 -FF51 FF31 -FF52 FF32 -FF53 FF33 -FF54 FF34 -FF55 FF35 -FF56 FF36 -FF57 FF37 -FF58 FF38 -FF59 FF39 -FF5A FF3A -10428 10400 -10429 10401 -1042A 10402 -1042B 10403 -1042C 10404 -1042D 10405 -1042E 10406 -1042F 10407 -10430 10408 -10431 10409 -10432 1040A -10433 1040B -10434 1040C -10435 1040D -10436 1040E -10437 1040F -10438 10410 -10439 10411 -1043A 10412 -1043B 10413 -1043C 10414 -1043D 10415 -1043E 10416 -1043F 10417 -10440 10418 -10441 10419 -10442 1041A -10443 1041B -10444 1041C -10445 1041D -10446 1041E -10447 1041F -10448 10420 -10449 10421 -1044A 10422 -1044B 10423 -1044C 10424 -1044D 10425 -1044E 10426 -1044F 10427 -10CC0 10C80 -10CC1 10C81 -10CC2 10C82 -10CC3 10C83 -10CC4 10C84 -10CC5 10C85 -10CC6 10C86 -10CC7 10C87 -10CC8 10C88 -10CC9 10C89 -10CCA 10C8A -10CCB 10C8B -10CCC 10C8C -10CCD 10C8D -10CCE 10C8E -10CCF 10C8F -10CD0 10C90 -10CD1 10C91 -10CD2 10C92 -10CD3 10C93 -10CD4 10C94 -10CD5 10C95 -10CD6 10C96 -10CD7 10C97 -10CD8 10C98 -10CD9 10C99 -10CDA 10C9A -10CDB 10C9B -10CDC 10C9C -10CDD 10C9D -10CDE 10C9E -10CDF 10C9F -10CE0 10CA0 -10CE1 10CA1 -10CE2 10CA2 -10CE3 10CA3 -10CE4 10CA4 -10CE5 10CA5 -10CE6 10CA6 -10CE7 10CA7 -10CE8 10CA8 -10CE9 10CA9 -10CEA 10CAA -10CEB 10CAB -10CEC 10CAC -10CED 10CAD -10CEE 10CAE -10CEF 10CAF -10CF0 10CB0 -10CF1 10CB1 -10CF2 10CB2 -118C0 118A0 -118C1 118A1 -118C2 118A2 -118C3 118A3 -118C4 118A4 -118C5 118A5 -118C6 118A6 -118C7 118A7 -118C8 118A8 -118C9 118A9 -118CA 118AA -118CB 118AB -118CC 118AC -118CD 118AD -118CE 118AE -118CF 118AF -118D0 118B0 -118D1 118B1 -118D2 118B2 -118D3 118B3 -118D4 118B4 -118D5 118B5 -118D6 118B6 -118D7 118B7 -118D8 118B8 -118D9 118B9 -118DA 118BA -118DB 118BB -118DC 118BC -118DD 118BD -118DE 118BE -118DF 118BF -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Uc.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Uc.pl deleted file mode 100644 index e395ac71..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Uc.pl +++ /dev/null @@ -1,787 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -# The mappings in the non-hash portion of this file must be modified to get the -# correct values by adding the code point ordinal number to each one that is -# numeric. - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToUc'}{'format'} = 'ax'; # mapped value in hex; some entries need adjustment -$utf8::SwashInfo{'ToUc'}{'specials_name'} = 'utf8::ToSpecUc'; # Name of hash of special mappings -$utf8::SwashInfo{'ToUc'}{'missing'} = '0'; # code point maps to itself - -# Some code points require special handling because their mappings are each to -# multiple code points. These do not appear in the main body, but are defined -# in the hash below. - -# Each key is the string of N bytes that together make up the UTF-8 encoding -# for the code point. (i.e. the same as looking at the code point's UTF-8 -# under "use bytes"). Each value is the UTF-8 of the translation, for speed. -%utf8::ToSpecUc = ( -"\xC3\x9F" => "\x{0053}\x{0053}", # U+00DF => 0053 0053 -"\xC5\x89" => "\x{02BC}\x{004E}", # U+0149 => 02BC 004E -"\xC7\xB0" => "\x{004A}\x{030C}", # U+01F0 => 004A 030C -"\xCE\x90" => "\x{0399}\x{0308}\x{0301}", # U+0390 => 0399 0308 0301 -"\xCE\xB0" => "\x{03A5}\x{0308}\x{0301}", # U+03B0 => 03A5 0308 0301 -"\xD6\x87" => "\x{0535}\x{0552}", # U+0587 => 0535 0552 -"\xE1\xBA\x96" => "\x{0048}\x{0331}", # U+1E96 => 0048 0331 -"\xE1\xBA\x97" => "\x{0054}\x{0308}", # U+1E97 => 0054 0308 -"\xE1\xBA\x98" => "\x{0057}\x{030A}", # U+1E98 => 0057 030A -"\xE1\xBA\x99" => "\x{0059}\x{030A}", # U+1E99 => 0059 030A -"\xE1\xBA\x9A" => "\x{0041}\x{02BE}", # U+1E9A => 0041 02BE -"\xE1\xBD\x90" => "\x{03A5}\x{0313}", # U+1F50 => 03A5 0313 -"\xE1\xBD\x92" => "\x{03A5}\x{0313}\x{0300}", # U+1F52 => 03A5 0313 0300 -"\xE1\xBD\x94" => "\x{03A5}\x{0313}\x{0301}", # U+1F54 => 03A5 0313 0301 -"\xE1\xBD\x96" => "\x{03A5}\x{0313}\x{0342}", # U+1F56 => 03A5 0313 0342 -"\xE1\xBE\x80" => "\x{1F08}\x{0399}", # U+1F80 => 1F08 0399 -"\xE1\xBE\x81" => "\x{1F09}\x{0399}", # U+1F81 => 1F09 0399 -"\xE1\xBE\x82" => "\x{1F0A}\x{0399}", # U+1F82 => 1F0A 0399 -"\xE1\xBE\x83" => "\x{1F0B}\x{0399}", # U+1F83 => 1F0B 0399 -"\xE1\xBE\x84" => "\x{1F0C}\x{0399}", # U+1F84 => 1F0C 0399 -"\xE1\xBE\x85" => "\x{1F0D}\x{0399}", # U+1F85 => 1F0D 0399 -"\xE1\xBE\x86" => "\x{1F0E}\x{0399}", # U+1F86 => 1F0E 0399 -"\xE1\xBE\x87" => "\x{1F0F}\x{0399}", # U+1F87 => 1F0F 0399 -"\xE1\xBE\x88" => "\x{1F08}\x{0399}", # U+1F88 => 1F08 0399 -"\xE1\xBE\x89" => "\x{1F09}\x{0399}", # U+1F89 => 1F09 0399 -"\xE1\xBE\x8A" => "\x{1F0A}\x{0399}", # U+1F8A => 1F0A 0399 -"\xE1\xBE\x8B" => "\x{1F0B}\x{0399}", # U+1F8B => 1F0B 0399 -"\xE1\xBE\x8C" => "\x{1F0C}\x{0399}", # U+1F8C => 1F0C 0399 -"\xE1\xBE\x8D" => "\x{1F0D}\x{0399}", # U+1F8D => 1F0D 0399 -"\xE1\xBE\x8E" => "\x{1F0E}\x{0399}", # U+1F8E => 1F0E 0399 -"\xE1\xBE\x8F" => "\x{1F0F}\x{0399}", # U+1F8F => 1F0F 0399 -"\xE1\xBE\x90" => "\x{1F28}\x{0399}", # U+1F90 => 1F28 0399 -"\xE1\xBE\x91" => "\x{1F29}\x{0399}", # U+1F91 => 1F29 0399 -"\xE1\xBE\x92" => "\x{1F2A}\x{0399}", # U+1F92 => 1F2A 0399 -"\xE1\xBE\x93" => "\x{1F2B}\x{0399}", # U+1F93 => 1F2B 0399 -"\xE1\xBE\x94" => "\x{1F2C}\x{0399}", # U+1F94 => 1F2C 0399 -"\xE1\xBE\x95" => "\x{1F2D}\x{0399}", # U+1F95 => 1F2D 0399 -"\xE1\xBE\x96" => "\x{1F2E}\x{0399}", # U+1F96 => 1F2E 0399 -"\xE1\xBE\x97" => "\x{1F2F}\x{0399}", # U+1F97 => 1F2F 0399 -"\xE1\xBE\x98" => "\x{1F28}\x{0399}", # U+1F98 => 1F28 0399 -"\xE1\xBE\x99" => "\x{1F29}\x{0399}", # U+1F99 => 1F29 0399 -"\xE1\xBE\x9A" => "\x{1F2A}\x{0399}", # U+1F9A => 1F2A 0399 -"\xE1\xBE\x9B" => "\x{1F2B}\x{0399}", # U+1F9B => 1F2B 0399 -"\xE1\xBE\x9C" => "\x{1F2C}\x{0399}", # U+1F9C => 1F2C 0399 -"\xE1\xBE\x9D" => "\x{1F2D}\x{0399}", # U+1F9D => 1F2D 0399 -"\xE1\xBE\x9E" => "\x{1F2E}\x{0399}", # U+1F9E => 1F2E 0399 -"\xE1\xBE\x9F" => "\x{1F2F}\x{0399}", # U+1F9F => 1F2F 0399 -"\xE1\xBE\xA0" => "\x{1F68}\x{0399}", # U+1FA0 => 1F68 0399 -"\xE1\xBE\xA1" => "\x{1F69}\x{0399}", # U+1FA1 => 1F69 0399 -"\xE1\xBE\xA2" => "\x{1F6A}\x{0399}", # U+1FA2 => 1F6A 0399 -"\xE1\xBE\xA3" => "\x{1F6B}\x{0399}", # U+1FA3 => 1F6B 0399 -"\xE1\xBE\xA4" => "\x{1F6C}\x{0399}", # U+1FA4 => 1F6C 0399 -"\xE1\xBE\xA5" => "\x{1F6D}\x{0399}", # U+1FA5 => 1F6D 0399 -"\xE1\xBE\xA6" => "\x{1F6E}\x{0399}", # U+1FA6 => 1F6E 0399 -"\xE1\xBE\xA7" => "\x{1F6F}\x{0399}", # U+1FA7 => 1F6F 0399 -"\xE1\xBE\xA8" => "\x{1F68}\x{0399}", # U+1FA8 => 1F68 0399 -"\xE1\xBE\xA9" => "\x{1F69}\x{0399}", # U+1FA9 => 1F69 0399 -"\xE1\xBE\xAA" => "\x{1F6A}\x{0399}", # U+1FAA => 1F6A 0399 -"\xE1\xBE\xAB" => "\x{1F6B}\x{0399}", # U+1FAB => 1F6B 0399 -"\xE1\xBE\xAC" => "\x{1F6C}\x{0399}", # U+1FAC => 1F6C 0399 -"\xE1\xBE\xAD" => "\x{1F6D}\x{0399}", # U+1FAD => 1F6D 0399 -"\xE1\xBE\xAE" => "\x{1F6E}\x{0399}", # U+1FAE => 1F6E 0399 -"\xE1\xBE\xAF" => "\x{1F6F}\x{0399}", # U+1FAF => 1F6F 0399 -"\xE1\xBE\xB2" => "\x{1FBA}\x{0399}", # U+1FB2 => 1FBA 0399 -"\xE1\xBE\xB3" => "\x{0391}\x{0399}", # U+1FB3 => 0391 0399 -"\xE1\xBE\xB4" => "\x{0386}\x{0399}", # U+1FB4 => 0386 0399 -"\xE1\xBE\xB6" => "\x{0391}\x{0342}", # U+1FB6 => 0391 0342 -"\xE1\xBE\xB7" => "\x{0391}\x{0342}\x{0399}", # U+1FB7 => 0391 0342 0399 -"\xE1\xBE\xBC" => "\x{0391}\x{0399}", # U+1FBC => 0391 0399 -"\xE1\xBF\x82" => "\x{1FCA}\x{0399}", # U+1FC2 => 1FCA 0399 -"\xE1\xBF\x83" => "\x{0397}\x{0399}", # U+1FC3 => 0397 0399 -"\xE1\xBF\x84" => "\x{0389}\x{0399}", # U+1FC4 => 0389 0399 -"\xE1\xBF\x86" => "\x{0397}\x{0342}", # U+1FC6 => 0397 0342 -"\xE1\xBF\x87" => "\x{0397}\x{0342}\x{0399}", # U+1FC7 => 0397 0342 0399 -"\xE1\xBF\x8C" => "\x{0397}\x{0399}", # U+1FCC => 0397 0399 -"\xE1\xBF\x92" => "\x{0399}\x{0308}\x{0300}", # U+1FD2 => 0399 0308 0300 -"\xE1\xBF\x93" => "\x{0399}\x{0308}\x{0301}", # U+1FD3 => 0399 0308 0301 -"\xE1\xBF\x96" => "\x{0399}\x{0342}", # U+1FD6 => 0399 0342 -"\xE1\xBF\x97" => "\x{0399}\x{0308}\x{0342}", # U+1FD7 => 0399 0308 0342 -"\xE1\xBF\xA2" => "\x{03A5}\x{0308}\x{0300}", # U+1FE2 => 03A5 0308 0300 -"\xE1\xBF\xA3" => "\x{03A5}\x{0308}\x{0301}", # U+1FE3 => 03A5 0308 0301 -"\xE1\xBF\xA4" => "\x{03A1}\x{0313}", # U+1FE4 => 03A1 0313 -"\xE1\xBF\xA6" => "\x{03A5}\x{0342}", # U+1FE6 => 03A5 0342 -"\xE1\xBF\xA7" => "\x{03A5}\x{0308}\x{0342}", # U+1FE7 => 03A5 0308 0342 -"\xE1\xBF\xB2" => "\x{1FFA}\x{0399}", # U+1FF2 => 1FFA 0399 -"\xE1\xBF\xB3" => "\x{03A9}\x{0399}", # U+1FF3 => 03A9 0399 -"\xE1\xBF\xB4" => "\x{038F}\x{0399}", # U+1FF4 => 038F 0399 -"\xE1\xBF\xB6" => "\x{03A9}\x{0342}", # U+1FF6 => 03A9 0342 -"\xE1\xBF\xB7" => "\x{03A9}\x{0342}\x{0399}", # U+1FF7 => 03A9 0342 0399 -"\xE1\xBF\xBC" => "\x{03A9}\x{0399}", # U+1FFC => 03A9 0399 -"\xEF\xAC\x80" => "\x{0046}\x{0046}", # U+FB00 => 0046 0046 -"\xEF\xAC\x81" => "\x{0046}\x{0049}", # U+FB01 => 0046 0049 -"\xEF\xAC\x82" => "\x{0046}\x{004C}", # U+FB02 => 0046 004C -"\xEF\xAC\x83" => "\x{0046}\x{0046}\x{0049}", # U+FB03 => 0046 0046 0049 -"\xEF\xAC\x84" => "\x{0046}\x{0046}\x{004C}", # U+FB04 => 0046 0046 004C -"\xEF\xAC\x85" => "\x{0053}\x{0054}", # U+FB05 => 0053 0054 -"\xEF\xAC\x86" => "\x{0053}\x{0054}", # U+FB06 => 0053 0054 -"\xEF\xAC\x93" => "\x{0544}\x{0546}", # U+FB13 => 0544 0546 -"\xEF\xAC\x94" => "\x{0544}\x{0535}", # U+FB14 => 0544 0535 -"\xEF\xAC\x95" => "\x{0544}\x{053B}", # U+FB15 => 0544 053B -"\xEF\xAC\x96" => "\x{054E}\x{0546}", # U+FB16 => 054E 0546 -"\xEF\xAC\x97" => "\x{0544}\x{053D}", # U+FB17 => 0544 053D -); - -return <<'END'; -61 7A 41 -B5 39C -E0 F6 C0 -F8 FE D8 -FF 178 -101 100 -103 102 -105 104 -107 106 -109 108 -10B 10A -10D 10C -10F 10E -111 110 -113 112 -115 114 -117 116 -119 118 -11B 11A -11D 11C -11F 11E -121 120 -123 122 -125 124 -127 126 -129 128 -12B 12A -12D 12C -12F 12E -131 49 -133 132 -135 134 -137 136 -13A 139 -13C 13B -13E 13D -140 13F -142 141 -144 143 -146 145 -148 147 -14B 14A -14D 14C -14F 14E -151 150 -153 152 -155 154 -157 156 -159 158 -15B 15A -15D 15C -15F 15E -161 160 -163 162 -165 164 -167 166 -169 168 -16B 16A -16D 16C -16F 16E -171 170 -173 172 -175 174 -177 176 -17A 179 -17C 17B -17E 17D -17F 53 -180 243 -183 182 -185 184 -188 187 -18C 18B -192 191 -195 1F6 -199 198 -19A 23D -19E 220 -1A1 1A0 -1A3 1A2 -1A5 1A4 -1A8 1A7 -1AD 1AC -1B0 1AF -1B4 1B3 -1B6 1B5 -1B9 1B8 -1BD 1BC -1BF 1F7 -1C5 1C4 -1C6 1C4 -1C8 1C7 -1C9 1C7 -1CB 1CA -1CC 1CA -1CE 1CD -1D0 1CF -1D2 1D1 -1D4 1D3 -1D6 1D5 -1D8 1D7 -1DA 1D9 -1DC 1DB -1DD 18E -1DF 1DE -1E1 1E0 -1E3 1E2 -1E5 1E4 -1E7 1E6 -1E9 1E8 -1EB 1EA -1ED 1EC -1EF 1EE -1F2 1F1 -1F3 1F1 -1F5 1F4 -1F9 1F8 -1FB 1FA -1FD 1FC -1FF 1FE -201 200 -203 202 -205 204 -207 206 -209 208 -20B 20A -20D 20C -20F 20E -211 210 -213 212 -215 214 -217 216 -219 218 -21B 21A -21D 21C -21F 21E -223 222 -225 224 -227 226 -229 228 -22B 22A -22D 22C -22F 22E -231 230 -233 232 -23C 23B -23F 240 2C7E -242 241 -247 246 -249 248 -24B 24A -24D 24C -24F 24E -250 2C6F -251 2C6D -252 2C70 -253 181 -254 186 -256 257 189 -259 18F -25B 190 -25C A7AB -260 193 -261 A7AC -263 194 -265 A78D -266 A7AA -268 197 -269 196 -26B 2C62 -26C A7AD -26F 19C -271 2C6E -272 19D -275 19F -27D 2C64 -280 1A6 -283 1A9 -287 A7B1 -288 1AE -289 244 -28A 28B 1B1 -28C 245 -292 1B7 -29D A7B2 -29E A7B0 -345 399 -371 370 -373 372 -377 376 -37B 37D 3FD -3AC 386 -3AD 3AF 388 -3B1 3C1 391 -3C2 3A3 -3C3 3CB 3A3 -3CC 38C -3CD 3CE 38E -3D0 392 -3D1 398 -3D5 3A6 -3D6 3A0 -3D7 3CF -3D9 3D8 -3DB 3DA -3DD 3DC -3DF 3DE -3E1 3E0 -3E3 3E2 -3E5 3E4 -3E7 3E6 -3E9 3E8 -3EB 3EA -3ED 3EC -3EF 3EE -3F0 39A -3F1 3A1 -3F2 3F9 -3F3 37F -3F5 395 -3F8 3F7 -3FB 3FA -430 44F 410 -450 45F 400 -461 460 -463 462 -465 464 -467 466 -469 468 -46B 46A -46D 46C -46F 46E -471 470 -473 472 -475 474 -477 476 -479 478 -47B 47A -47D 47C -47F 47E -481 480 -48B 48A -48D 48C -48F 48E -491 490 -493 492 -495 494 -497 496 -499 498 -49B 49A -49D 49C -49F 49E -4A1 4A0 -4A3 4A2 -4A5 4A4 -4A7 4A6 -4A9 4A8 -4AB 4AA -4AD 4AC -4AF 4AE -4B1 4B0 -4B3 4B2 -4B5 4B4 -4B7 4B6 -4B9 4B8 -4BB 4BA -4BD 4BC -4BF 4BE -4C2 4C1 -4C4 4C3 -4C6 4C5 -4C8 4C7 -4CA 4C9 -4CC 4CB -4CE 4CD -4CF 4C0 -4D1 4D0 -4D3 4D2 -4D5 4D4 -4D7 4D6 -4D9 4D8 -4DB 4DA -4DD 4DC -4DF 4DE -4E1 4E0 -4E3 4E2 -4E5 4E4 -4E7 4E6 -4E9 4E8 -4EB 4EA -4ED 4EC -4EF 4EE -4F1 4F0 -4F3 4F2 -4F5 4F4 -4F7 4F6 -4F9 4F8 -4FB 4FA -4FD 4FC -4FF 4FE -501 500 -503 502 -505 504 -507 506 -509 508 -50B 50A -50D 50C -50F 50E -511 510 -513 512 -515 514 -517 516 -519 518 -51B 51A -51D 51C -51F 51E -521 520 -523 522 -525 524 -527 526 -529 528 -52B 52A -52D 52C -52F 52E -561 586 531 -13F8 13FD 13F0 -1D79 A77D -1D7D 2C63 -1E01 1E00 -1E03 1E02 -1E05 1E04 -1E07 1E06 -1E09 1E08 -1E0B 1E0A -1E0D 1E0C -1E0F 1E0E -1E11 1E10 -1E13 1E12 -1E15 1E14 -1E17 1E16 -1E19 1E18 -1E1B 1E1A -1E1D 1E1C -1E1F 1E1E -1E21 1E20 -1E23 1E22 -1E25 1E24 -1E27 1E26 -1E29 1E28 -1E2B 1E2A -1E2D 1E2C -1E2F 1E2E -1E31 1E30 -1E33 1E32 -1E35 1E34 -1E37 1E36 -1E39 1E38 -1E3B 1E3A -1E3D 1E3C -1E3F 1E3E -1E41 1E40 -1E43 1E42 -1E45 1E44 -1E47 1E46 -1E49 1E48 -1E4B 1E4A -1E4D 1E4C -1E4F 1E4E -1E51 1E50 -1E53 1E52 -1E55 1E54 -1E57 1E56 -1E59 1E58 -1E5B 1E5A -1E5D 1E5C -1E5F 1E5E -1E61 1E60 -1E63 1E62 -1E65 1E64 -1E67 1E66 -1E69 1E68 -1E6B 1E6A -1E6D 1E6C -1E6F 1E6E -1E71 1E70 -1E73 1E72 -1E75 1E74 -1E77 1E76 -1E79 1E78 -1E7B 1E7A -1E7D 1E7C -1E7F 1E7E -1E81 1E80 -1E83 1E82 -1E85 1E84 -1E87 1E86 -1E89 1E88 -1E8B 1E8A -1E8D 1E8C -1E8F 1E8E -1E91 1E90 -1E93 1E92 -1E95 1E94 -1E9B 1E60 -1EA1 1EA0 -1EA3 1EA2 -1EA5 1EA4 -1EA7 1EA6 -1EA9 1EA8 -1EAB 1EAA -1EAD 1EAC -1EAF 1EAE -1EB1 1EB0 -1EB3 1EB2 -1EB5 1EB4 -1EB7 1EB6 -1EB9 1EB8 -1EBB 1EBA -1EBD 1EBC -1EBF 1EBE -1EC1 1EC0 -1EC3 1EC2 -1EC5 1EC4 -1EC7 1EC6 -1EC9 1EC8 -1ECB 1ECA -1ECD 1ECC -1ECF 1ECE -1ED1 1ED0 -1ED3 1ED2 -1ED5 1ED4 -1ED7 1ED6 -1ED9 1ED8 -1EDB 1EDA -1EDD 1EDC -1EDF 1EDE -1EE1 1EE0 -1EE3 1EE2 -1EE5 1EE4 -1EE7 1EE6 -1EE9 1EE8 -1EEB 1EEA -1EED 1EEC -1EEF 1EEE -1EF1 1EF0 -1EF3 1EF2 -1EF5 1EF4 -1EF7 1EF6 -1EF9 1EF8 -1EFB 1EFA -1EFD 1EFC -1EFF 1EFE -1F00 1F07 1F08 -1F10 1F15 1F18 -1F20 1F27 1F28 -1F30 1F37 1F38 -1F40 1F45 1F48 -1F51 1F59 -1F53 1F5B -1F55 1F5D -1F57 1F5F -1F60 1F67 1F68 -1F70 1F71 1FBA -1F72 1F75 1FC8 -1F76 1F77 1FDA -1F78 1F79 1FF8 -1F7A 1F7B 1FEA -1F7C 1F7D 1FFA -1F80 1F87 1F88 -1F90 1F97 1F98 -1FA0 1FA7 1FA8 -1FB0 1FB1 1FB8 -1FB3 1FBC -1FBE 399 -1FC3 1FCC -1FD0 1FD1 1FD8 -1FE0 1FE1 1FE8 -1FE5 1FEC -1FF3 1FFC -214E 2132 -2170 217F 2160 -2184 2183 -24D0 24E9 24B6 -2C30 2C5E 2C00 -2C61 2C60 -2C65 23A -2C66 23E -2C68 2C67 -2C6A 2C69 -2C6C 2C6B -2C73 2C72 -2C76 2C75 -2C81 2C80 -2C83 2C82 -2C85 2C84 -2C87 2C86 -2C89 2C88 -2C8B 2C8A -2C8D 2C8C -2C8F 2C8E -2C91 2C90 -2C93 2C92 -2C95 2C94 -2C97 2C96 -2C99 2C98 -2C9B 2C9A -2C9D 2C9C -2C9F 2C9E -2CA1 2CA0 -2CA3 2CA2 -2CA5 2CA4 -2CA7 2CA6 -2CA9 2CA8 -2CAB 2CAA -2CAD 2CAC -2CAF 2CAE -2CB1 2CB0 -2CB3 2CB2 -2CB5 2CB4 -2CB7 2CB6 -2CB9 2CB8 -2CBB 2CBA -2CBD 2CBC -2CBF 2CBE -2CC1 2CC0 -2CC3 2CC2 -2CC5 2CC4 -2CC7 2CC6 -2CC9 2CC8 -2CCB 2CCA -2CCD 2CCC -2CCF 2CCE -2CD1 2CD0 -2CD3 2CD2 -2CD5 2CD4 -2CD7 2CD6 -2CD9 2CD8 -2CDB 2CDA -2CDD 2CDC -2CDF 2CDE -2CE1 2CE0 -2CE3 2CE2 -2CEC 2CEB -2CEE 2CED -2CF3 2CF2 -2D00 2D25 10A0 -2D27 10C7 -2D2D 10CD -A641 A640 -A643 A642 -A645 A644 -A647 A646 -A649 A648 -A64B A64A -A64D A64C -A64F A64E -A651 A650 -A653 A652 -A655 A654 -A657 A656 -A659 A658 -A65B A65A -A65D A65C -A65F A65E -A661 A660 -A663 A662 -A665 A664 -A667 A666 -A669 A668 -A66B A66A -A66D A66C -A681 A680 -A683 A682 -A685 A684 -A687 A686 -A689 A688 -A68B A68A -A68D A68C -A68F A68E -A691 A690 -A693 A692 -A695 A694 -A697 A696 -A699 A698 -A69B A69A -A723 A722 -A725 A724 -A727 A726 -A729 A728 -A72B A72A -A72D A72C -A72F A72E -A733 A732 -A735 A734 -A737 A736 -A739 A738 -A73B A73A -A73D A73C -A73F A73E -A741 A740 -A743 A742 -A745 A744 -A747 A746 -A749 A748 -A74B A74A -A74D A74C -A74F A74E -A751 A750 -A753 A752 -A755 A754 -A757 A756 -A759 A758 -A75B A75A -A75D A75C -A75F A75E -A761 A760 -A763 A762 -A765 A764 -A767 A766 -A769 A768 -A76B A76A -A76D A76C -A76F A76E -A77A A779 -A77C A77B -A77F A77E -A781 A780 -A783 A782 -A785 A784 -A787 A786 -A78C A78B -A791 A790 -A793 A792 -A797 A796 -A799 A798 -A79B A79A -A79D A79C -A79F A79E -A7A1 A7A0 -A7A3 A7A2 -A7A5 A7A4 -A7A7 A7A6 -A7A9 A7A8 -A7B5 A7B4 -A7B7 A7B6 -AB53 A7B3 -AB70 ABBF 13A0 -FF41 FF5A FF21 -10428 1044F 10400 -10CC0 10CF2 10C80 -118C0 118DF 118A0 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Upper.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/Upper.pl deleted file mode 100644 index bdb0eac6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/Upper.pl +++ /dev/null @@ -1,1351 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! IT IS DEPRECATED TO USE THIS FILE !!!!!!! - -# This file is for internal use by core Perl only. It is retained for -# backwards compatibility with applications that may have come to rely on it, -# but its format and even its name or existence are subject to change without -# notice in a future Perl version. Don't use it directly. Instead, its -# contents are now retrievable through a stable API in the Unicode::UCD -# module: Unicode::UCD::prop_invmap('Uppercase_Mapping') (Values for individual -# code points can be retrieved via Unicode::UCD::charprop()); - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToUpper'}{'format'} = 'x'; # non-negative hex whole number; a code point -$utf8::SwashInfo{'ToUpper'}{'specials_name'} = 'utf8::ToSpecUpper'; # Name of hash of special mappings -$utf8::SwashInfo{'ToUpper'}{'missing'} = '<code point>'; # code point maps to itself - -# Some code points require special handling because their mappings are each to -# multiple code points. These do not appear in the main body, but are defined -# in the hash below. - -# Each key is the string of N bytes that together make up the UTF-8 encoding -# for the code point. (i.e. the same as looking at the code point's UTF-8 -# under "use bytes"). Each value is the UTF-8 of the translation, for speed. -%utf8::ToSpecUpper = ( -"\xC3\x9F" => "\x{0053}\x{0053}", # U+00DF => 0053 0053 -"\xC5\x89" => "\x{02BC}\x{004E}", # U+0149 => 02BC 004E -"\xC7\xB0" => "\x{004A}\x{030C}", # U+01F0 => 004A 030C -"\xCE\x90" => "\x{0399}\x{0308}\x{0301}", # U+0390 => 0399 0308 0301 -"\xCE\xB0" => "\x{03A5}\x{0308}\x{0301}", # U+03B0 => 03A5 0308 0301 -"\xD6\x87" => "\x{0535}\x{0552}", # U+0587 => 0535 0552 -"\xE1\xBA\x96" => "\x{0048}\x{0331}", # U+1E96 => 0048 0331 -"\xE1\xBA\x97" => "\x{0054}\x{0308}", # U+1E97 => 0054 0308 -"\xE1\xBA\x98" => "\x{0057}\x{030A}", # U+1E98 => 0057 030A -"\xE1\xBA\x99" => "\x{0059}\x{030A}", # U+1E99 => 0059 030A -"\xE1\xBA\x9A" => "\x{0041}\x{02BE}", # U+1E9A => 0041 02BE -"\xE1\xBD\x90" => "\x{03A5}\x{0313}", # U+1F50 => 03A5 0313 -"\xE1\xBD\x92" => "\x{03A5}\x{0313}\x{0300}", # U+1F52 => 03A5 0313 0300 -"\xE1\xBD\x94" => "\x{03A5}\x{0313}\x{0301}", # U+1F54 => 03A5 0313 0301 -"\xE1\xBD\x96" => "\x{03A5}\x{0313}\x{0342}", # U+1F56 => 03A5 0313 0342 -"\xE1\xBE\x80" => "\x{1F08}\x{0399}", # U+1F80 => 1F08 0399 -"\xE1\xBE\x81" => "\x{1F09}\x{0399}", # U+1F81 => 1F09 0399 -"\xE1\xBE\x82" => "\x{1F0A}\x{0399}", # U+1F82 => 1F0A 0399 -"\xE1\xBE\x83" => "\x{1F0B}\x{0399}", # U+1F83 => 1F0B 0399 -"\xE1\xBE\x84" => "\x{1F0C}\x{0399}", # U+1F84 => 1F0C 0399 -"\xE1\xBE\x85" => "\x{1F0D}\x{0399}", # U+1F85 => 1F0D 0399 -"\xE1\xBE\x86" => "\x{1F0E}\x{0399}", # U+1F86 => 1F0E 0399 -"\xE1\xBE\x87" => "\x{1F0F}\x{0399}", # U+1F87 => 1F0F 0399 -"\xE1\xBE\x88" => "\x{1F08}\x{0399}", # U+1F88 => 1F08 0399 -"\xE1\xBE\x89" => "\x{1F09}\x{0399}", # U+1F89 => 1F09 0399 -"\xE1\xBE\x8A" => "\x{1F0A}\x{0399}", # U+1F8A => 1F0A 0399 -"\xE1\xBE\x8B" => "\x{1F0B}\x{0399}", # U+1F8B => 1F0B 0399 -"\xE1\xBE\x8C" => "\x{1F0C}\x{0399}", # U+1F8C => 1F0C 0399 -"\xE1\xBE\x8D" => "\x{1F0D}\x{0399}", # U+1F8D => 1F0D 0399 -"\xE1\xBE\x8E" => "\x{1F0E}\x{0399}", # U+1F8E => 1F0E 0399 -"\xE1\xBE\x8F" => "\x{1F0F}\x{0399}", # U+1F8F => 1F0F 0399 -"\xE1\xBE\x90" => "\x{1F28}\x{0399}", # U+1F90 => 1F28 0399 -"\xE1\xBE\x91" => "\x{1F29}\x{0399}", # U+1F91 => 1F29 0399 -"\xE1\xBE\x92" => "\x{1F2A}\x{0399}", # U+1F92 => 1F2A 0399 -"\xE1\xBE\x93" => "\x{1F2B}\x{0399}", # U+1F93 => 1F2B 0399 -"\xE1\xBE\x94" => "\x{1F2C}\x{0399}", # U+1F94 => 1F2C 0399 -"\xE1\xBE\x95" => "\x{1F2D}\x{0399}", # U+1F95 => 1F2D 0399 -"\xE1\xBE\x96" => "\x{1F2E}\x{0399}", # U+1F96 => 1F2E 0399 -"\xE1\xBE\x97" => "\x{1F2F}\x{0399}", # U+1F97 => 1F2F 0399 -"\xE1\xBE\x98" => "\x{1F28}\x{0399}", # U+1F98 => 1F28 0399 -"\xE1\xBE\x99" => "\x{1F29}\x{0399}", # U+1F99 => 1F29 0399 -"\xE1\xBE\x9A" => "\x{1F2A}\x{0399}", # U+1F9A => 1F2A 0399 -"\xE1\xBE\x9B" => "\x{1F2B}\x{0399}", # U+1F9B => 1F2B 0399 -"\xE1\xBE\x9C" => "\x{1F2C}\x{0399}", # U+1F9C => 1F2C 0399 -"\xE1\xBE\x9D" => "\x{1F2D}\x{0399}", # U+1F9D => 1F2D 0399 -"\xE1\xBE\x9E" => "\x{1F2E}\x{0399}", # U+1F9E => 1F2E 0399 -"\xE1\xBE\x9F" => "\x{1F2F}\x{0399}", # U+1F9F => 1F2F 0399 -"\xE1\xBE\xA0" => "\x{1F68}\x{0399}", # U+1FA0 => 1F68 0399 -"\xE1\xBE\xA1" => "\x{1F69}\x{0399}", # U+1FA1 => 1F69 0399 -"\xE1\xBE\xA2" => "\x{1F6A}\x{0399}", # U+1FA2 => 1F6A 0399 -"\xE1\xBE\xA3" => "\x{1F6B}\x{0399}", # U+1FA3 => 1F6B 0399 -"\xE1\xBE\xA4" => "\x{1F6C}\x{0399}", # U+1FA4 => 1F6C 0399 -"\xE1\xBE\xA5" => "\x{1F6D}\x{0399}", # U+1FA5 => 1F6D 0399 -"\xE1\xBE\xA6" => "\x{1F6E}\x{0399}", # U+1FA6 => 1F6E 0399 -"\xE1\xBE\xA7" => "\x{1F6F}\x{0399}", # U+1FA7 => 1F6F 0399 -"\xE1\xBE\xA8" => "\x{1F68}\x{0399}", # U+1FA8 => 1F68 0399 -"\xE1\xBE\xA9" => "\x{1F69}\x{0399}", # U+1FA9 => 1F69 0399 -"\xE1\xBE\xAA" => "\x{1F6A}\x{0399}", # U+1FAA => 1F6A 0399 -"\xE1\xBE\xAB" => "\x{1F6B}\x{0399}", # U+1FAB => 1F6B 0399 -"\xE1\xBE\xAC" => "\x{1F6C}\x{0399}", # U+1FAC => 1F6C 0399 -"\xE1\xBE\xAD" => "\x{1F6D}\x{0399}", # U+1FAD => 1F6D 0399 -"\xE1\xBE\xAE" => "\x{1F6E}\x{0399}", # U+1FAE => 1F6E 0399 -"\xE1\xBE\xAF" => "\x{1F6F}\x{0399}", # U+1FAF => 1F6F 0399 -"\xE1\xBE\xB2" => "\x{1FBA}\x{0399}", # U+1FB2 => 1FBA 0399 -"\xE1\xBE\xB3" => "\x{0391}\x{0399}", # U+1FB3 => 0391 0399 -"\xE1\xBE\xB4" => "\x{0386}\x{0399}", # U+1FB4 => 0386 0399 -"\xE1\xBE\xB6" => "\x{0391}\x{0342}", # U+1FB6 => 0391 0342 -"\xE1\xBE\xB7" => "\x{0391}\x{0342}\x{0399}", # U+1FB7 => 0391 0342 0399 -"\xE1\xBE\xBC" => "\x{0391}\x{0399}", # U+1FBC => 0391 0399 -"\xE1\xBF\x82" => "\x{1FCA}\x{0399}", # U+1FC2 => 1FCA 0399 -"\xE1\xBF\x83" => "\x{0397}\x{0399}", # U+1FC3 => 0397 0399 -"\xE1\xBF\x84" => "\x{0389}\x{0399}", # U+1FC4 => 0389 0399 -"\xE1\xBF\x86" => "\x{0397}\x{0342}", # U+1FC6 => 0397 0342 -"\xE1\xBF\x87" => "\x{0397}\x{0342}\x{0399}", # U+1FC7 => 0397 0342 0399 -"\xE1\xBF\x8C" => "\x{0397}\x{0399}", # U+1FCC => 0397 0399 -"\xE1\xBF\x92" => "\x{0399}\x{0308}\x{0300}", # U+1FD2 => 0399 0308 0300 -"\xE1\xBF\x93" => "\x{0399}\x{0308}\x{0301}", # U+1FD3 => 0399 0308 0301 -"\xE1\xBF\x96" => "\x{0399}\x{0342}", # U+1FD6 => 0399 0342 -"\xE1\xBF\x97" => "\x{0399}\x{0308}\x{0342}", # U+1FD7 => 0399 0308 0342 -"\xE1\xBF\xA2" => "\x{03A5}\x{0308}\x{0300}", # U+1FE2 => 03A5 0308 0300 -"\xE1\xBF\xA3" => "\x{03A5}\x{0308}\x{0301}", # U+1FE3 => 03A5 0308 0301 -"\xE1\xBF\xA4" => "\x{03A1}\x{0313}", # U+1FE4 => 03A1 0313 -"\xE1\xBF\xA6" => "\x{03A5}\x{0342}", # U+1FE6 => 03A5 0342 -"\xE1\xBF\xA7" => "\x{03A5}\x{0308}\x{0342}", # U+1FE7 => 03A5 0308 0342 -"\xE1\xBF\xB2" => "\x{1FFA}\x{0399}", # U+1FF2 => 1FFA 0399 -"\xE1\xBF\xB3" => "\x{03A9}\x{0399}", # U+1FF3 => 03A9 0399 -"\xE1\xBF\xB4" => "\x{038F}\x{0399}", # U+1FF4 => 038F 0399 -"\xE1\xBF\xB6" => "\x{03A9}\x{0342}", # U+1FF6 => 03A9 0342 -"\xE1\xBF\xB7" => "\x{03A9}\x{0342}\x{0399}", # U+1FF7 => 03A9 0342 0399 -"\xE1\xBF\xBC" => "\x{03A9}\x{0399}", # U+1FFC => 03A9 0399 -"\xEF\xAC\x80" => "\x{0046}\x{0046}", # U+FB00 => 0046 0046 -"\xEF\xAC\x81" => "\x{0046}\x{0049}", # U+FB01 => 0046 0049 -"\xEF\xAC\x82" => "\x{0046}\x{004C}", # U+FB02 => 0046 004C -"\xEF\xAC\x83" => "\x{0046}\x{0046}\x{0049}", # U+FB03 => 0046 0046 0049 -"\xEF\xAC\x84" => "\x{0046}\x{0046}\x{004C}", # U+FB04 => 0046 0046 004C -"\xEF\xAC\x85" => "\x{0053}\x{0054}", # U+FB05 => 0053 0054 -"\xEF\xAC\x86" => "\x{0053}\x{0054}", # U+FB06 => 0053 0054 -"\xEF\xAC\x93" => "\x{0544}\x{0546}", # U+FB13 => 0544 0546 -"\xEF\xAC\x94" => "\x{0544}\x{0535}", # U+FB14 => 0544 0535 -"\xEF\xAC\x95" => "\x{0544}\x{053B}", # U+FB15 => 0544 053B -"\xEF\xAC\x96" => "\x{054E}\x{0546}", # U+FB16 => 054E 0546 -"\xEF\xAC\x97" => "\x{0544}\x{053D}", # U+FB17 => 0544 053D -); - -return <<'END'; -0061 0041 -0062 0042 -0063 0043 -0064 0044 -0065 0045 -0066 0046 -0067 0047 -0068 0048 -0069 0049 -006A 004A -006B 004B -006C 004C -006D 004D -006E 004E -006F 004F -0070 0050 -0071 0051 -0072 0052 -0073 0053 -0074 0054 -0075 0055 -0076 0056 -0077 0057 -0078 0058 -0079 0059 -007A 005A -00B5 039C -00E0 00C0 -00E1 00C1 -00E2 00C2 -00E3 00C3 -00E4 00C4 -00E5 00C5 -00E6 00C6 -00E7 00C7 -00E8 00C8 -00E9 00C9 -00EA 00CA -00EB 00CB -00EC 00CC -00ED 00CD -00EE 00CE -00EF 00CF -00F0 00D0 -00F1 00D1 -00F2 00D2 -00F3 00D3 -00F4 00D4 -00F5 00D5 -00F6 00D6 -00F8 00D8 -00F9 00D9 -00FA 00DA -00FB 00DB -00FC 00DC -00FD 00DD -00FE 00DE -00FF 0178 -0101 0100 -0103 0102 -0105 0104 -0107 0106 -0109 0108 -010B 010A -010D 010C -010F 010E -0111 0110 -0113 0112 -0115 0114 -0117 0116 -0119 0118 -011B 011A -011D 011C -011F 011E -0121 0120 -0123 0122 -0125 0124 -0127 0126 -0129 0128 -012B 012A -012D 012C -012F 012E -0131 0049 -0133 0132 -0135 0134 -0137 0136 -013A 0139 -013C 013B -013E 013D -0140 013F -0142 0141 -0144 0143 -0146 0145 -0148 0147 -014B 014A -014D 014C -014F 014E -0151 0150 -0153 0152 -0155 0154 -0157 0156 -0159 0158 -015B 015A -015D 015C -015F 015E -0161 0160 -0163 0162 -0165 0164 -0167 0166 -0169 0168 -016B 016A -016D 016C -016F 016E -0171 0170 -0173 0172 -0175 0174 -0177 0176 -017A 0179 -017C 017B -017E 017D -017F 0053 -0180 0243 -0183 0182 -0185 0184 -0188 0187 -018C 018B -0192 0191 -0195 01F6 -0199 0198 -019A 023D -019E 0220 -01A1 01A0 -01A3 01A2 -01A5 01A4 -01A8 01A7 -01AD 01AC -01B0 01AF -01B4 01B3 -01B6 01B5 -01B9 01B8 -01BD 01BC -01BF 01F7 -01C5 01C4 -01C6 01C4 -01C8 01C7 -01C9 01C7 -01CB 01CA -01CC 01CA -01CE 01CD -01D0 01CF -01D2 01D1 -01D4 01D3 -01D6 01D5 -01D8 01D7 -01DA 01D9 -01DC 01DB -01DD 018E -01DF 01DE -01E1 01E0 -01E3 01E2 -01E5 01E4 -01E7 01E6 -01E9 01E8 -01EB 01EA -01ED 01EC -01EF 01EE -01F2 01F1 -01F3 01F1 -01F5 01F4 -01F9 01F8 -01FB 01FA -01FD 01FC -01FF 01FE -0201 0200 -0203 0202 -0205 0204 -0207 0206 -0209 0208 -020B 020A -020D 020C -020F 020E -0211 0210 -0213 0212 -0215 0214 -0217 0216 -0219 0218 -021B 021A -021D 021C -021F 021E -0223 0222 -0225 0224 -0227 0226 -0229 0228 -022B 022A -022D 022C -022F 022E -0231 0230 -0233 0232 -023C 023B -023F 2C7E -0240 2C7F -0242 0241 -0247 0246 -0249 0248 -024B 024A -024D 024C -024F 024E -0250 2C6F -0251 2C6D -0252 2C70 -0253 0181 -0254 0186 -0256 0189 -0257 018A -0259 018F -025B 0190 -025C A7AB -0260 0193 -0261 A7AC -0263 0194 -0265 A78D -0266 A7AA -0268 0197 -0269 0196 -026B 2C62 -026C A7AD -026F 019C -0271 2C6E -0272 019D -0275 019F -027D 2C64 -0280 01A6 -0283 01A9 -0287 A7B1 -0288 01AE -0289 0244 -028A 01B1 -028B 01B2 -028C 0245 -0292 01B7 -029D A7B2 -029E A7B0 -0345 0399 -0371 0370 -0373 0372 -0377 0376 -037B 03FD -037C 03FE -037D 03FF -03AC 0386 -03AD 0388 -03AE 0389 -03AF 038A -03B1 0391 -03B2 0392 -03B3 0393 -03B4 0394 -03B5 0395 -03B6 0396 -03B7 0397 -03B8 0398 -03B9 0399 -03BA 039A -03BB 039B -03BC 039C -03BD 039D -03BE 039E -03BF 039F -03C0 03A0 -03C1 03A1 -03C2 03A3 -03C3 03A3 -03C4 03A4 -03C5 03A5 -03C6 03A6 -03C7 03A7 -03C8 03A8 -03C9 03A9 -03CA 03AA -03CB 03AB -03CC 038C -03CD 038E -03CE 038F -03D0 0392 -03D1 0398 -03D5 03A6 -03D6 03A0 -03D7 03CF -03D9 03D8 -03DB 03DA -03DD 03DC -03DF 03DE -03E1 03E0 -03E3 03E2 -03E5 03E4 -03E7 03E6 -03E9 03E8 -03EB 03EA -03ED 03EC -03EF 03EE -03F0 039A -03F1 03A1 -03F2 03F9 -03F3 037F -03F5 0395 -03F8 03F7 -03FB 03FA -0430 0410 -0431 0411 -0432 0412 -0433 0413 -0434 0414 -0435 0415 -0436 0416 -0437 0417 -0438 0418 -0439 0419 -043A 041A -043B 041B -043C 041C -043D 041D -043E 041E -043F 041F -0440 0420 -0441 0421 -0442 0422 -0443 0423 -0444 0424 -0445 0425 -0446 0426 -0447 0427 -0448 0428 -0449 0429 -044A 042A -044B 042B -044C 042C -044D 042D -044E 042E -044F 042F -0450 0400 -0451 0401 -0452 0402 -0453 0403 -0454 0404 -0455 0405 -0456 0406 -0457 0407 -0458 0408 -0459 0409 -045A 040A -045B 040B -045C 040C -045D 040D -045E 040E -045F 040F -0461 0460 -0463 0462 -0465 0464 -0467 0466 -0469 0468 -046B 046A -046D 046C -046F 046E -0471 0470 -0473 0472 -0475 0474 -0477 0476 -0479 0478 -047B 047A -047D 047C -047F 047E -0481 0480 -048B 048A -048D 048C -048F 048E -0491 0490 -0493 0492 -0495 0494 -0497 0496 -0499 0498 -049B 049A -049D 049C -049F 049E -04A1 04A0 -04A3 04A2 -04A5 04A4 -04A7 04A6 -04A9 04A8 -04AB 04AA -04AD 04AC -04AF 04AE -04B1 04B0 -04B3 04B2 -04B5 04B4 -04B7 04B6 -04B9 04B8 -04BB 04BA -04BD 04BC -04BF 04BE -04C2 04C1 -04C4 04C3 -04C6 04C5 -04C8 04C7 -04CA 04C9 -04CC 04CB -04CE 04CD -04CF 04C0 -04D1 04D0 -04D3 04D2 -04D5 04D4 -04D7 04D6 -04D9 04D8 -04DB 04DA -04DD 04DC -04DF 04DE -04E1 04E0 -04E3 04E2 -04E5 04E4 -04E7 04E6 -04E9 04E8 -04EB 04EA -04ED 04EC -04EF 04EE -04F1 04F0 -04F3 04F2 -04F5 04F4 -04F7 04F6 -04F9 04F8 -04FB 04FA -04FD 04FC -04FF 04FE -0501 0500 -0503 0502 -0505 0504 -0507 0506 -0509 0508 -050B 050A -050D 050C -050F 050E -0511 0510 -0513 0512 -0515 0514 -0517 0516 -0519 0518 -051B 051A -051D 051C -051F 051E -0521 0520 -0523 0522 -0525 0524 -0527 0526 -0529 0528 -052B 052A -052D 052C -052F 052E -0561 0531 -0562 0532 -0563 0533 -0564 0534 -0565 0535 -0566 0536 -0567 0537 -0568 0538 -0569 0539 -056A 053A -056B 053B -056C 053C -056D 053D -056E 053E -056F 053F -0570 0540 -0571 0541 -0572 0542 -0573 0543 -0574 0544 -0575 0545 -0576 0546 -0577 0547 -0578 0548 -0579 0549 -057A 054A -057B 054B -057C 054C -057D 054D -057E 054E -057F 054F -0580 0550 -0581 0551 -0582 0552 -0583 0553 -0584 0554 -0585 0555 -0586 0556 -13F8 13F0 -13F9 13F1 -13FA 13F2 -13FB 13F3 -13FC 13F4 -13FD 13F5 -1D79 A77D -1D7D 2C63 -1E01 1E00 -1E03 1E02 -1E05 1E04 -1E07 1E06 -1E09 1E08 -1E0B 1E0A -1E0D 1E0C -1E0F 1E0E -1E11 1E10 -1E13 1E12 -1E15 1E14 -1E17 1E16 -1E19 1E18 -1E1B 1E1A -1E1D 1E1C -1E1F 1E1E -1E21 1E20 -1E23 1E22 -1E25 1E24 -1E27 1E26 -1E29 1E28 -1E2B 1E2A -1E2D 1E2C -1E2F 1E2E -1E31 1E30 -1E33 1E32 -1E35 1E34 -1E37 1E36 -1E39 1E38 -1E3B 1E3A -1E3D 1E3C -1E3F 1E3E -1E41 1E40 -1E43 1E42 -1E45 1E44 -1E47 1E46 -1E49 1E48 -1E4B 1E4A -1E4D 1E4C -1E4F 1E4E -1E51 1E50 -1E53 1E52 -1E55 1E54 -1E57 1E56 -1E59 1E58 -1E5B 1E5A -1E5D 1E5C -1E5F 1E5E -1E61 1E60 -1E63 1E62 -1E65 1E64 -1E67 1E66 -1E69 1E68 -1E6B 1E6A -1E6D 1E6C -1E6F 1E6E -1E71 1E70 -1E73 1E72 -1E75 1E74 -1E77 1E76 -1E79 1E78 -1E7B 1E7A -1E7D 1E7C -1E7F 1E7E -1E81 1E80 -1E83 1E82 -1E85 1E84 -1E87 1E86 -1E89 1E88 -1E8B 1E8A -1E8D 1E8C -1E8F 1E8E -1E91 1E90 -1E93 1E92 -1E95 1E94 -1E9B 1E60 -1EA1 1EA0 -1EA3 1EA2 -1EA5 1EA4 -1EA7 1EA6 -1EA9 1EA8 -1EAB 1EAA -1EAD 1EAC -1EAF 1EAE -1EB1 1EB0 -1EB3 1EB2 -1EB5 1EB4 -1EB7 1EB6 -1EB9 1EB8 -1EBB 1EBA -1EBD 1EBC -1EBF 1EBE -1EC1 1EC0 -1EC3 1EC2 -1EC5 1EC4 -1EC7 1EC6 -1EC9 1EC8 -1ECB 1ECA -1ECD 1ECC -1ECF 1ECE -1ED1 1ED0 -1ED3 1ED2 -1ED5 1ED4 -1ED7 1ED6 -1ED9 1ED8 -1EDB 1EDA -1EDD 1EDC -1EDF 1EDE -1EE1 1EE0 -1EE3 1EE2 -1EE5 1EE4 -1EE7 1EE6 -1EE9 1EE8 -1EEB 1EEA -1EED 1EEC -1EEF 1EEE -1EF1 1EF0 -1EF3 1EF2 -1EF5 1EF4 -1EF7 1EF6 -1EF9 1EF8 -1EFB 1EFA -1EFD 1EFC -1EFF 1EFE -1F00 1F08 -1F01 1F09 -1F02 1F0A -1F03 1F0B -1F04 1F0C -1F05 1F0D -1F06 1F0E -1F07 1F0F -1F10 1F18 -1F11 1F19 -1F12 1F1A -1F13 1F1B -1F14 1F1C -1F15 1F1D -1F20 1F28 -1F21 1F29 -1F22 1F2A -1F23 1F2B -1F24 1F2C -1F25 1F2D -1F26 1F2E -1F27 1F2F -1F30 1F38 -1F31 1F39 -1F32 1F3A -1F33 1F3B -1F34 1F3C -1F35 1F3D -1F36 1F3E -1F37 1F3F -1F40 1F48 -1F41 1F49 -1F42 1F4A -1F43 1F4B -1F44 1F4C -1F45 1F4D -1F51 1F59 -1F53 1F5B -1F55 1F5D -1F57 1F5F -1F60 1F68 -1F61 1F69 -1F62 1F6A -1F63 1F6B -1F64 1F6C -1F65 1F6D -1F66 1F6E -1F67 1F6F -1F70 1FBA -1F71 1FBB -1F72 1FC8 -1F73 1FC9 -1F74 1FCA -1F75 1FCB -1F76 1FDA -1F77 1FDB -1F78 1FF8 -1F79 1FF9 -1F7A 1FEA -1F7B 1FEB -1F7C 1FFA -1F7D 1FFB -1FB0 1FB8 -1FB1 1FB9 -1FBE 0399 -1FD0 1FD8 -1FD1 1FD9 -1FE0 1FE8 -1FE1 1FE9 -1FE5 1FEC -214E 2132 -2170 2160 -2171 2161 -2172 2162 -2173 2163 -2174 2164 -2175 2165 -2176 2166 -2177 2167 -2178 2168 -2179 2169 -217A 216A -217B 216B -217C 216C -217D 216D -217E 216E -217F 216F -2184 2183 -24D0 24B6 -24D1 24B7 -24D2 24B8 -24D3 24B9 -24D4 24BA -24D5 24BB -24D6 24BC -24D7 24BD -24D8 24BE -24D9 24BF -24DA 24C0 -24DB 24C1 -24DC 24C2 -24DD 24C3 -24DE 24C4 -24DF 24C5 -24E0 24C6 -24E1 24C7 -24E2 24C8 -24E3 24C9 -24E4 24CA -24E5 24CB -24E6 24CC -24E7 24CD -24E8 24CE -24E9 24CF -2C30 2C00 -2C31 2C01 -2C32 2C02 -2C33 2C03 -2C34 2C04 -2C35 2C05 -2C36 2C06 -2C37 2C07 -2C38 2C08 -2C39 2C09 -2C3A 2C0A -2C3B 2C0B -2C3C 2C0C -2C3D 2C0D -2C3E 2C0E -2C3F 2C0F -2C40 2C10 -2C41 2C11 -2C42 2C12 -2C43 2C13 -2C44 2C14 -2C45 2C15 -2C46 2C16 -2C47 2C17 -2C48 2C18 -2C49 2C19 -2C4A 2C1A -2C4B 2C1B -2C4C 2C1C -2C4D 2C1D -2C4E 2C1E -2C4F 2C1F -2C50 2C20 -2C51 2C21 -2C52 2C22 -2C53 2C23 -2C54 2C24 -2C55 2C25 -2C56 2C26 -2C57 2C27 -2C58 2C28 -2C59 2C29 -2C5A 2C2A -2C5B 2C2B -2C5C 2C2C -2C5D 2C2D -2C5E 2C2E -2C61 2C60 -2C65 023A -2C66 023E -2C68 2C67 -2C6A 2C69 -2C6C 2C6B -2C73 2C72 -2C76 2C75 -2C81 2C80 -2C83 2C82 -2C85 2C84 -2C87 2C86 -2C89 2C88 -2C8B 2C8A -2C8D 2C8C -2C8F 2C8E -2C91 2C90 -2C93 2C92 -2C95 2C94 -2C97 2C96 -2C99 2C98 -2C9B 2C9A -2C9D 2C9C -2C9F 2C9E -2CA1 2CA0 -2CA3 2CA2 -2CA5 2CA4 -2CA7 2CA6 -2CA9 2CA8 -2CAB 2CAA -2CAD 2CAC -2CAF 2CAE -2CB1 2CB0 -2CB3 2CB2 -2CB5 2CB4 -2CB7 2CB6 -2CB9 2CB8 -2CBB 2CBA -2CBD 2CBC -2CBF 2CBE -2CC1 2CC0 -2CC3 2CC2 -2CC5 2CC4 -2CC7 2CC6 -2CC9 2CC8 -2CCB 2CCA -2CCD 2CCC -2CCF 2CCE -2CD1 2CD0 -2CD3 2CD2 -2CD5 2CD4 -2CD7 2CD6 -2CD9 2CD8 -2CDB 2CDA -2CDD 2CDC -2CDF 2CDE -2CE1 2CE0 -2CE3 2CE2 -2CEC 2CEB -2CEE 2CED -2CF3 2CF2 -2D00 10A0 -2D01 10A1 -2D02 10A2 -2D03 10A3 -2D04 10A4 -2D05 10A5 -2D06 10A6 -2D07 10A7 -2D08 10A8 -2D09 10A9 -2D0A 10AA -2D0B 10AB -2D0C 10AC -2D0D 10AD -2D0E 10AE -2D0F 10AF -2D10 10B0 -2D11 10B1 -2D12 10B2 -2D13 10B3 -2D14 10B4 -2D15 10B5 -2D16 10B6 -2D17 10B7 -2D18 10B8 -2D19 10B9 -2D1A 10BA -2D1B 10BB -2D1C 10BC -2D1D 10BD -2D1E 10BE -2D1F 10BF -2D20 10C0 -2D21 10C1 -2D22 10C2 -2D23 10C3 -2D24 10C4 -2D25 10C5 -2D27 10C7 -2D2D 10CD -A641 A640 -A643 A642 -A645 A644 -A647 A646 -A649 A648 -A64B A64A -A64D A64C -A64F A64E -A651 A650 -A653 A652 -A655 A654 -A657 A656 -A659 A658 -A65B A65A -A65D A65C -A65F A65E -A661 A660 -A663 A662 -A665 A664 -A667 A666 -A669 A668 -A66B A66A -A66D A66C -A681 A680 -A683 A682 -A685 A684 -A687 A686 -A689 A688 -A68B A68A -A68D A68C -A68F A68E -A691 A690 -A693 A692 -A695 A694 -A697 A696 -A699 A698 -A69B A69A -A723 A722 -A725 A724 -A727 A726 -A729 A728 -A72B A72A -A72D A72C -A72F A72E -A733 A732 -A735 A734 -A737 A736 -A739 A738 -A73B A73A -A73D A73C -A73F A73E -A741 A740 -A743 A742 -A745 A744 -A747 A746 -A749 A748 -A74B A74A -A74D A74C -A74F A74E -A751 A750 -A753 A752 -A755 A754 -A757 A756 -A759 A758 -A75B A75A -A75D A75C -A75F A75E -A761 A760 -A763 A762 -A765 A764 -A767 A766 -A769 A768 -A76B A76A -A76D A76C -A76F A76E -A77A A779 -A77C A77B -A77F A77E -A781 A780 -A783 A782 -A785 A784 -A787 A786 -A78C A78B -A791 A790 -A793 A792 -A797 A796 -A799 A798 -A79B A79A -A79D A79C -A79F A79E -A7A1 A7A0 -A7A3 A7A2 -A7A5 A7A4 -A7A7 A7A6 -A7A9 A7A8 -A7B5 A7B4 -A7B7 A7B6 -AB53 A7B3 -AB70 13A0 -AB71 13A1 -AB72 13A2 -AB73 13A3 -AB74 13A4 -AB75 13A5 -AB76 13A6 -AB77 13A7 -AB78 13A8 -AB79 13A9 -AB7A 13AA -AB7B 13AB -AB7C 13AC -AB7D 13AD -AB7E 13AE -AB7F 13AF -AB80 13B0 -AB81 13B1 -AB82 13B2 -AB83 13B3 -AB84 13B4 -AB85 13B5 -AB86 13B6 -AB87 13B7 -AB88 13B8 -AB89 13B9 -AB8A 13BA -AB8B 13BB -AB8C 13BC -AB8D 13BD -AB8E 13BE -AB8F 13BF -AB90 13C0 -AB91 13C1 -AB92 13C2 -AB93 13C3 -AB94 13C4 -AB95 13C5 -AB96 13C6 -AB97 13C7 -AB98 13C8 -AB99 13C9 -AB9A 13CA -AB9B 13CB -AB9C 13CC -AB9D 13CD -AB9E 13CE -AB9F 13CF -ABA0 13D0 -ABA1 13D1 -ABA2 13D2 -ABA3 13D3 -ABA4 13D4 -ABA5 13D5 -ABA6 13D6 -ABA7 13D7 -ABA8 13D8 -ABA9 13D9 -ABAA 13DA -ABAB 13DB -ABAC 13DC -ABAD 13DD -ABAE 13DE -ABAF 13DF -ABB0 13E0 -ABB1 13E1 -ABB2 13E2 -ABB3 13E3 -ABB4 13E4 -ABB5 13E5 -ABB6 13E6 -ABB7 13E7 -ABB8 13E8 -ABB9 13E9 -ABBA 13EA -ABBB 13EB -ABBC 13EC -ABBD 13ED -ABBE 13EE -ABBF 13EF -FF41 FF21 -FF42 FF22 -FF43 FF23 -FF44 FF24 -FF45 FF25 -FF46 FF26 -FF47 FF27 -FF48 FF28 -FF49 FF29 -FF4A FF2A -FF4B FF2B -FF4C FF2C -FF4D FF2D -FF4E FF2E -FF4F FF2F -FF50 FF30 -FF51 FF31 -FF52 FF32 -FF53 FF33 -FF54 FF34 -FF55 FF35 -FF56 FF36 -FF57 FF37 -FF58 FF38 -FF59 FF39 -FF5A FF3A -10428 10400 -10429 10401 -1042A 10402 -1042B 10403 -1042C 10404 -1042D 10405 -1042E 10406 -1042F 10407 -10430 10408 -10431 10409 -10432 1040A -10433 1040B -10434 1040C -10435 1040D -10436 1040E -10437 1040F -10438 10410 -10439 10411 -1043A 10412 -1043B 10413 -1043C 10414 -1043D 10415 -1043E 10416 -1043F 10417 -10440 10418 -10441 10419 -10442 1041A -10443 1041B -10444 1041C -10445 1041D -10446 1041E -10447 1041F -10448 10420 -10449 10421 -1044A 10422 -1044B 10423 -1044C 10424 -1044D 10425 -1044E 10426 -1044F 10427 -10CC0 10C80 -10CC1 10C81 -10CC2 10C82 -10CC3 10C83 -10CC4 10C84 -10CC5 10C85 -10CC6 10C86 -10CC7 10C87 -10CC8 10C88 -10CC9 10C89 -10CCA 10C8A -10CCB 10C8B -10CCC 10C8C -10CCD 10C8D -10CCE 10C8E -10CCF 10C8F -10CD0 10C90 -10CD1 10C91 -10CD2 10C92 -10CD3 10C93 -10CD4 10C94 -10CD5 10C95 -10CD6 10C96 -10CD7 10C97 -10CD8 10C98 -10CD9 10C99 -10CDA 10C9A -10CDB 10C9B -10CDC 10C9C -10CDD 10C9D -10CDE 10C9E -10CDF 10C9F -10CE0 10CA0 -10CE1 10CA1 -10CE2 10CA2 -10CE3 10CA3 -10CE4 10CA4 -10CE5 10CA5 -10CE6 10CA6 -10CE7 10CA7 -10CE8 10CA8 -10CE9 10CA9 -10CEA 10CAA -10CEB 10CAB -10CEC 10CAC -10CED 10CAD -10CEE 10CAE -10CEF 10CAF -10CF0 10CB0 -10CF1 10CB1 -10CF2 10CB2 -118C0 118A0 -118C1 118A1 -118C2 118A2 -118C3 118A3 -118C4 118A4 -118C5 118A5 -118C6 118A6 -118C7 118A7 -118C8 118A8 -118C9 118A9 -118CA 118AA -118CB 118AB -118CC 118AC -118CD 118AD -118CE 118AE -118CF 118AF -118D0 118B0 -118D1 118B1 -118D2 118B2 -118D3 118B3 -118D4 118B4 -118D5 118B5 -118D6 118B6 -118D7 118B7 -118D8 118B8 -118D9 118B9 -118DA 118BA -118DB 118BB -118DC 118BC -118DD 118BD -118DE 118BE -118DF 118BF -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/WB.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/WB.pl deleted file mode 100644 index 5e37745b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/WB.pl +++ /dev/null @@ -1,873 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'ToWB'}{'format'} = 's'; # string -$utf8::SwashInfo{'ToWB'}{'missing'} = 'Other'; - -return <<'END'; -A LF -B C Newline -D CR -22 Double_Quote -27 Single_Quote -2C MidNum -2E MidNumLet -30 39 Numeric -3A MidLetter -3B MidNum -41 5A ALetter -5F ExtendNumLet -61 7A ALetter -85 Newline -AA ALetter -AD Format -B5 ALetter -B7 MidLetter -BA ALetter -C0 D6 ALetter -D8 F6 ALetter -F8 2C1 ALetter -2C6 2D1 ALetter -2D7 MidLetter -2E0 2E4 ALetter -2EC ALetter -2EE ALetter -300 36F Extend -370 374 ALetter -376 377 ALetter -37A 37D ALetter -37E MidNum -37F ALetter -386 ALetter -387 MidLetter -388 38A ALetter -38C ALetter -38E 3A1 ALetter -3A3 3F5 ALetter -3F7 481 ALetter -483 489 Extend -48A 52F ALetter -531 556 ALetter -559 ALetter -561 587 ALetter -589 MidNum -591 5BD Extend -5BF Extend -5C1 5C2 Extend -5C4 5C5 Extend -5C7 Extend -5D0 5EA Hebrew_Letter -5F0 5F2 Hebrew_Letter -5F3 ALetter -5F4 MidLetter -600 605 Format -60C 60D MidNum -610 61A Extend -61C Format -620 64A ALetter -64B 65F Extend -660 669 Numeric -66B Numeric -66C MidNum -66E 66F ALetter -670 Extend -671 6D3 ALetter -6D5 ALetter -6D6 6DC Extend -6DD Format -6DF 6E4 Extend -6E5 6E6 ALetter -6E7 6E8 Extend -6EA 6ED Extend -6EE 6EF ALetter -6F0 6F9 Numeric -6FA 6FC ALetter -6FF ALetter -70F Format -710 ALetter -711 Extend -712 72F ALetter -730 74A Extend -74D 7A5 ALetter -7A6 7B0 Extend -7B1 ALetter -7C0 7C9 Numeric -7CA 7EA ALetter -7EB 7F3 Extend -7F4 7F5 ALetter -7F8 MidNum -7FA ALetter -800 815 ALetter -816 819 Extend -81A ALetter -81B 823 Extend -824 ALetter -825 827 Extend -828 ALetter -829 82D Extend -840 858 ALetter -859 85B Extend -8A0 8B4 ALetter -8E3 903 Extend -904 939 ALetter -93A 93C Extend -93D ALetter -93E 94F Extend -950 ALetter -951 957 Extend -958 961 ALetter -962 963 Extend -966 96F Numeric -971 980 ALetter -981 983 Extend -985 98C ALetter -98F 990 ALetter -993 9A8 ALetter -9AA 9B0 ALetter -9B2 ALetter -9B6 9B9 ALetter -9BC Extend -9BD ALetter -9BE 9C4 Extend -9C7 9C8 Extend -9CB 9CD Extend -9CE ALetter -9D7 Extend -9DC 9DD ALetter -9DF 9E1 ALetter -9E2 9E3 Extend -9E6 9EF Numeric -9F0 9F1 ALetter -A01 A03 Extend -A05 A0A ALetter -A0F A10 ALetter -A13 A28 ALetter -A2A A30 ALetter -A32 A33 ALetter -A35 A36 ALetter -A38 A39 ALetter -A3C Extend -A3E A42 Extend -A47 A48 Extend -A4B A4D Extend -A51 Extend -A59 A5C ALetter -A5E ALetter -A66 A6F Numeric -A70 A71 Extend -A72 A74 ALetter -A75 Extend -A81 A83 Extend -A85 A8D ALetter -A8F A91 ALetter -A93 AA8 ALetter -AAA AB0 ALetter -AB2 AB3 ALetter -AB5 AB9 ALetter -ABC Extend -ABD ALetter -ABE AC5 Extend -AC7 AC9 Extend -ACB ACD Extend -AD0 ALetter -AE0 AE1 ALetter -AE2 AE3 Extend -AE6 AEF Numeric -AF9 ALetter -B01 B03 Extend -B05 B0C ALetter -B0F B10 ALetter -B13 B28 ALetter -B2A B30 ALetter -B32 B33 ALetter -B35 B39 ALetter -B3C Extend -B3D ALetter -B3E B44 Extend -B47 B48 Extend -B4B B4D Extend -B56 B57 Extend -B5C B5D ALetter -B5F B61 ALetter -B62 B63 Extend -B66 B6F Numeric -B71 ALetter -B82 Extend -B83 ALetter -B85 B8A ALetter -B8E B90 ALetter -B92 B95 ALetter -B99 B9A ALetter -B9C ALetter -B9E B9F ALetter -BA3 BA4 ALetter -BA8 BAA ALetter -BAE BB9 ALetter -BBE BC2 Extend -BC6 BC8 Extend -BCA BCD Extend -BD0 ALetter -BD7 Extend -BE6 BEF Numeric -C00 C03 Extend -C05 C0C ALetter -C0E C10 ALetter -C12 C28 ALetter -C2A C39 ALetter -C3D ALetter -C3E C44 Extend -C46 C48 Extend -C4A C4D Extend -C55 C56 Extend -C58 C5A ALetter -C60 C61 ALetter -C62 C63 Extend -C66 C6F Numeric -C81 C83 Extend -C85 C8C ALetter -C8E C90 ALetter -C92 CA8 ALetter -CAA CB3 ALetter -CB5 CB9 ALetter -CBC Extend -CBD ALetter -CBE CC4 Extend -CC6 CC8 Extend -CCA CCD Extend -CD5 CD6 Extend -CDE ALetter -CE0 CE1 ALetter -CE2 CE3 Extend -CE6 CEF Numeric -CF1 CF2 ALetter -D01 D03 Extend -D05 D0C ALetter -D0E D10 ALetter -D12 D3A ALetter -D3D ALetter -D3E D44 Extend -D46 D48 Extend -D4A D4D Extend -D4E ALetter -D57 Extend -D5F D61 ALetter -D62 D63 Extend -D66 D6F Numeric -D7A D7F ALetter -D82 D83 Extend -D85 D96 ALetter -D9A DB1 ALetter -DB3 DBB ALetter -DBD ALetter -DC0 DC6 ALetter -DCA Extend -DCF DD4 Extend -DD6 Extend -DD8 DDF Extend -DE6 DEF Numeric -DF2 DF3 Extend -E31 Extend -E34 E3A Extend -E47 E4E Extend -E50 E59 Numeric -EB1 Extend -EB4 EB9 Extend -EBB EBC Extend -EC8 ECD Extend -ED0 ED9 Numeric -F00 ALetter -F18 F19 Extend -F20 F29 Numeric -F35 Extend -F37 Extend -F39 Extend -F3E F3F Extend -F40 F47 ALetter -F49 F6C ALetter -F71 F84 Extend -F86 F87 Extend -F88 F8C ALetter -F8D F97 Extend -F99 FBC Extend -FC6 Extend -102B 103E Extend -1040 1049 Numeric -1056 1059 Extend -105E 1060 Extend -1062 1064 Extend -1067 106D Extend -1071 1074 Extend -1082 108D Extend -108F Extend -1090 1099 Numeric -109A 109D Extend -10A0 10C5 ALetter -10C7 ALetter -10CD ALetter -10D0 10FA ALetter -10FC 1248 ALetter -124A 124D ALetter -1250 1256 ALetter -1258 ALetter -125A 125D ALetter -1260 1288 ALetter -128A 128D ALetter -1290 12B0 ALetter -12B2 12B5 ALetter -12B8 12BE ALetter -12C0 ALetter -12C2 12C5 ALetter -12C8 12D6 ALetter -12D8 1310 ALetter -1312 1315 ALetter -1318 135A ALetter -135D 135F Extend -1380 138F ALetter -13A0 13F5 ALetter -13F8 13FD ALetter -1401 166C ALetter -166F 167F ALetter -1681 169A ALetter -16A0 16EA ALetter -16EE 16F8 ALetter -1700 170C ALetter -170E 1711 ALetter -1712 1714 Extend -1720 1731 ALetter -1732 1734 Extend -1740 1751 ALetter -1752 1753 Extend -1760 176C ALetter -176E 1770 ALetter -1772 1773 Extend -17B4 17D3 Extend -17DD Extend -17E0 17E9 Numeric -180B 180D Extend -180E Format -1810 1819 Numeric -1820 1877 ALetter -1880 18A8 ALetter -18A9 Extend -18AA ALetter -18B0 18F5 ALetter -1900 191E ALetter -1920 192B Extend -1930 193B Extend -1946 194F Numeric -19D0 19D9 Numeric -1A00 1A16 ALetter -1A17 1A1B Extend -1A55 1A5E Extend -1A60 1A7C Extend -1A7F Extend -1A80 1A89 Numeric -1A90 1A99 Numeric -1AB0 1ABE Extend -1B00 1B04 Extend -1B05 1B33 ALetter -1B34 1B44 Extend -1B45 1B4B ALetter -1B50 1B59 Numeric -1B6B 1B73 Extend -1B80 1B82 Extend -1B83 1BA0 ALetter -1BA1 1BAD Extend -1BAE 1BAF ALetter -1BB0 1BB9 Numeric -1BBA 1BE5 ALetter -1BE6 1BF3 Extend -1C00 1C23 ALetter -1C24 1C37 Extend -1C40 1C49 Numeric -1C4D 1C4F ALetter -1C50 1C59 Numeric -1C5A 1C7D ALetter -1CD0 1CD2 Extend -1CD4 1CE8 Extend -1CE9 1CEC ALetter -1CED Extend -1CEE 1CF1 ALetter -1CF2 1CF4 Extend -1CF5 1CF6 ALetter -1CF8 1CF9 Extend -1D00 1DBF ALetter -1DC0 1DF5 Extend -1DFC 1DFF Extend -1E00 1F15 ALetter -1F18 1F1D ALetter -1F20 1F45 ALetter -1F48 1F4D ALetter -1F50 1F57 ALetter -1F59 ALetter -1F5B ALetter -1F5D ALetter -1F5F 1F7D ALetter -1F80 1FB4 ALetter -1FB6 1FBC ALetter -1FBE ALetter -1FC2 1FC4 ALetter -1FC6 1FCC ALetter -1FD0 1FD3 ALetter -1FD6 1FDB ALetter -1FE0 1FEC ALetter -1FF2 1FF4 ALetter -1FF6 1FFC ALetter -200C 200D Extend -200E 200F Format -2018 2019 MidNumLet -2024 MidNumLet -2027 MidLetter -2028 2029 Newline -202A 202E Format -203F 2040 ExtendNumLet -2044 MidNum -2054 ExtendNumLet -2060 2064 Format -2066 206F Format -2071 ALetter -207F ALetter -2090 209C ALetter -20D0 20F0 Extend -2102 ALetter -2107 ALetter -210A 2113 ALetter -2115 ALetter -2119 211D ALetter -2124 ALetter -2126 ALetter -2128 ALetter -212A 212D ALetter -212F 2139 ALetter -213C 213F ALetter -2145 2149 ALetter -214E ALetter -2160 2188 ALetter -24B6 24E9 ALetter -2C00 2C2E ALetter -2C30 2C5E ALetter -2C60 2CE4 ALetter -2CEB 2CEE ALetter -2CEF 2CF1 Extend -2CF2 2CF3 ALetter -2D00 2D25 ALetter -2D27 ALetter -2D2D ALetter -2D30 2D67 ALetter -2D6F ALetter -2D7F Extend -2D80 2D96 ALetter -2DA0 2DA6 ALetter -2DA8 2DAE ALetter -2DB0 2DB6 ALetter -2DB8 2DBE ALetter -2DC0 2DC6 ALetter -2DC8 2DCE ALetter -2DD0 2DD6 ALetter -2DD8 2DDE ALetter -2DE0 2DFF Extend -2E2F ALetter -3005 ALetter -302A 302F Extend -3031 3035 Katakana -303B 303C ALetter -3099 309A Extend -309B 309C Katakana -30A0 30FA Katakana -30FC 30FF Katakana -3105 312D ALetter -3131 318E ALetter -31A0 31BA ALetter -31F0 31FF Katakana -32D0 32FE Katakana -3300 3357 Katakana -A000 A48C ALetter -A4D0 A4FD ALetter -A500 A60C ALetter -A610 A61F ALetter -A620 A629 Numeric -A62A A62B ALetter -A640 A66E ALetter -A66F A672 Extend -A674 A67D Extend -A67F A69D ALetter -A69E A69F Extend -A6A0 A6EF ALetter -A6F0 A6F1 Extend -A717 A71F ALetter -A722 A788 ALetter -A78B A7AD ALetter -A7B0 A7B7 ALetter -A7F7 A801 ALetter -A802 Extend -A803 A805 ALetter -A806 Extend -A807 A80A ALetter -A80B Extend -A80C A822 ALetter -A823 A827 Extend -A840 A873 ALetter -A880 A881 Extend -A882 A8B3 ALetter -A8B4 A8C4 Extend -A8D0 A8D9 Numeric -A8E0 A8F1 Extend -A8F2 A8F7 ALetter -A8FB ALetter -A8FD ALetter -A900 A909 Numeric -A90A A925 ALetter -A926 A92D Extend -A930 A946 ALetter -A947 A953 Extend -A960 A97C ALetter -A980 A983 Extend -A984 A9B2 ALetter -A9B3 A9C0 Extend -A9CF ALetter -A9D0 A9D9 Numeric -A9E5 Extend -A9F0 A9F9 Numeric -AA00 AA28 ALetter -AA29 AA36 Extend -AA40 AA42 ALetter -AA43 Extend -AA44 AA4B ALetter -AA4C AA4D Extend -AA50 AA59 Numeric -AA7B AA7D Extend -AAB0 Extend -AAB2 AAB4 Extend -AAB7 AAB8 Extend -AABE AABF Extend -AAC1 Extend -AAE0 AAEA ALetter -AAEB AAEF Extend -AAF2 AAF4 ALetter -AAF5 AAF6 Extend -AB01 AB06 ALetter -AB09 AB0E ALetter -AB11 AB16 ALetter -AB20 AB26 ALetter -AB28 AB2E ALetter -AB30 AB5A ALetter -AB5C AB65 ALetter -AB70 ABE2 ALetter -ABE3 ABEA Extend -ABEC ABED Extend -ABF0 ABF9 Numeric -AC00 D7A3 ALetter -D7B0 D7C6 ALetter -D7CB D7FB ALetter -FB00 FB06 ALetter -FB13 FB17 ALetter -FB1D Hebrew_Letter -FB1E Extend -FB1F FB28 Hebrew_Letter -FB2A FB36 Hebrew_Letter -FB38 FB3C Hebrew_Letter -FB3E Hebrew_Letter -FB40 FB41 Hebrew_Letter -FB43 FB44 Hebrew_Letter -FB46 FB4F Hebrew_Letter -FB50 FBB1 ALetter -FBD3 FD3D ALetter -FD50 FD8F ALetter -FD92 FDC7 ALetter -FDF0 FDFB ALetter -FE00 FE0F Extend -FE10 MidNum -FE13 MidLetter -FE14 MidNum -FE20 FE2F Extend -FE33 FE34 ExtendNumLet -FE4D FE4F ExtendNumLet -FE50 MidNum -FE52 MidNumLet -FE54 MidNum -FE55 MidLetter -FE70 FE74 ALetter -FE76 FEFC ALetter -FEFF Format -FF07 MidNumLet -FF0C MidNum -FF0E MidNumLet -FF1A MidLetter -FF1B MidNum -FF21 FF3A ALetter -FF3F ExtendNumLet -FF41 FF5A ALetter -FF66 FF9D Katakana -FF9E FF9F Extend -FFA0 FFBE ALetter -FFC2 FFC7 ALetter -FFCA FFCF ALetter -FFD2 FFD7 ALetter -FFDA FFDC ALetter -FFF9 FFFB Format -10000 1000B ALetter -1000D 10026 ALetter -10028 1003A ALetter -1003C 1003D ALetter -1003F 1004D ALetter -10050 1005D ALetter -10080 100FA ALetter -10140 10174 ALetter -101FD Extend -10280 1029C ALetter -102A0 102D0 ALetter -102E0 Extend -10300 1031F ALetter -10330 1034A ALetter -10350 10375 ALetter -10376 1037A Extend -10380 1039D ALetter -103A0 103C3 ALetter -103C8 103CF ALetter -103D1 103D5 ALetter -10400 1049D ALetter -104A0 104A9 Numeric -10500 10527 ALetter -10530 10563 ALetter -10600 10736 ALetter -10740 10755 ALetter -10760 10767 ALetter -10800 10805 ALetter -10808 ALetter -1080A 10835 ALetter -10837 10838 ALetter -1083C ALetter -1083F 10855 ALetter -10860 10876 ALetter -10880 1089E ALetter -108E0 108F2 ALetter -108F4 108F5 ALetter -10900 10915 ALetter -10920 10939 ALetter -10980 109B7 ALetter -109BE 109BF ALetter -10A00 ALetter -10A01 10A03 Extend -10A05 10A06 Extend -10A0C 10A0F Extend -10A10 10A13 ALetter -10A15 10A17 ALetter -10A19 10A33 ALetter -10A38 10A3A Extend -10A3F Extend -10A60 10A7C ALetter -10A80 10A9C ALetter -10AC0 10AC7 ALetter -10AC9 10AE4 ALetter -10AE5 10AE6 Extend -10B00 10B35 ALetter -10B40 10B55 ALetter -10B60 10B72 ALetter -10B80 10B91 ALetter -10C00 10C48 ALetter -10C80 10CB2 ALetter -10CC0 10CF2 ALetter -11000 11002 Extend -11003 11037 ALetter -11038 11046 Extend -11066 1106F Numeric -1107F 11082 Extend -11083 110AF ALetter -110B0 110BA Extend -110BD Format -110D0 110E8 ALetter -110F0 110F9 Numeric -11100 11102 Extend -11103 11126 ALetter -11127 11134 Extend -11136 1113F Numeric -11150 11172 ALetter -11173 Extend -11176 ALetter -11180 11182 Extend -11183 111B2 ALetter -111B3 111C0 Extend -111C1 111C4 ALetter -111CA 111CC Extend -111D0 111D9 Numeric -111DA ALetter -111DC ALetter -11200 11211 ALetter -11213 1122B ALetter -1122C 11237 Extend -11280 11286 ALetter -11288 ALetter -1128A 1128D ALetter -1128F 1129D ALetter -1129F 112A8 ALetter -112B0 112DE ALetter -112DF 112EA Extend -112F0 112F9 Numeric -11300 11303 Extend -11305 1130C ALetter -1130F 11310 ALetter -11313 11328 ALetter -1132A 11330 ALetter -11332 11333 ALetter -11335 11339 ALetter -1133C Extend -1133D ALetter -1133E 11344 Extend -11347 11348 Extend -1134B 1134D Extend -11350 ALetter -11357 Extend -1135D 11361 ALetter -11362 11363 Extend -11366 1136C Extend -11370 11374 Extend -11480 114AF ALetter -114B0 114C3 Extend -114C4 114C5 ALetter -114C7 ALetter -114D0 114D9 Numeric -11580 115AE ALetter -115AF 115B5 Extend -115B8 115C0 Extend -115D8 115DB ALetter -115DC 115DD Extend -11600 1162F ALetter -11630 11640 Extend -11644 ALetter -11650 11659 Numeric -11680 116AA ALetter -116AB 116B7 Extend -116C0 116C9 Numeric -1171D 1172B Extend -11730 11739 Numeric -118A0 118DF ALetter -118E0 118E9 Numeric -118FF ALetter -11AC0 11AF8 ALetter -12000 12399 ALetter -12400 1246E ALetter -12480 12543 ALetter -13000 1342E ALetter -14400 14646 ALetter -16800 16A38 ALetter -16A40 16A5E ALetter -16A60 16A69 Numeric -16AD0 16AED ALetter -16AF0 16AF4 Extend -16B00 16B2F ALetter -16B30 16B36 Extend -16B40 16B43 ALetter -16B50 16B59 Numeric -16B63 16B77 ALetter -16B7D 16B8F ALetter -16F00 16F44 ALetter -16F50 ALetter -16F51 16F7E Extend -16F8F 16F92 Extend -16F93 16F9F ALetter -1B000 Katakana -1BC00 1BC6A ALetter -1BC70 1BC7C ALetter -1BC80 1BC88 ALetter -1BC90 1BC99 ALetter -1BC9D 1BC9E Extend -1BCA0 1BCA3 Format -1D165 1D169 Extend -1D16D 1D172 Extend -1D173 1D17A Format -1D17B 1D182 Extend -1D185 1D18B Extend -1D1AA 1D1AD Extend -1D242 1D244 Extend -1D400 1D454 ALetter -1D456 1D49C ALetter -1D49E 1D49F ALetter -1D4A2 ALetter -1D4A5 1D4A6 ALetter -1D4A9 1D4AC ALetter -1D4AE 1D4B9 ALetter -1D4BB ALetter -1D4BD 1D4C3 ALetter -1D4C5 1D505 ALetter -1D507 1D50A ALetter -1D50D 1D514 ALetter -1D516 1D51C ALetter -1D51E 1D539 ALetter -1D53B 1D53E ALetter -1D540 1D544 ALetter -1D546 ALetter -1D54A 1D550 ALetter -1D552 1D6A5 ALetter -1D6A8 1D6C0 ALetter -1D6C2 1D6DA ALetter -1D6DC 1D6FA ALetter -1D6FC 1D714 ALetter -1D716 1D734 ALetter -1D736 1D74E ALetter -1D750 1D76E ALetter -1D770 1D788 ALetter -1D78A 1D7A8 ALetter -1D7AA 1D7C2 ALetter -1D7C4 1D7CB ALetter -1D7CE 1D7FF Numeric -1DA00 1DA36 Extend -1DA3B 1DA6C Extend -1DA75 Extend -1DA84 Extend -1DA9B 1DA9F Extend -1DAA1 1DAAF Extend -1E800 1E8C4 ALetter -1E8D0 1E8D6 Extend -1EE00 1EE03 ALetter -1EE05 1EE1F ALetter -1EE21 1EE22 ALetter -1EE24 ALetter -1EE27 ALetter -1EE29 1EE32 ALetter -1EE34 1EE37 ALetter -1EE39 ALetter -1EE3B ALetter -1EE42 ALetter -1EE47 ALetter -1EE49 ALetter -1EE4B ALetter -1EE4D 1EE4F ALetter -1EE51 1EE52 ALetter -1EE54 ALetter -1EE57 ALetter -1EE59 ALetter -1EE5B ALetter -1EE5D ALetter -1EE5F ALetter -1EE61 1EE62 ALetter -1EE64 ALetter -1EE67 1EE6A ALetter -1EE6C 1EE72 ALetter -1EE74 1EE77 ALetter -1EE79 1EE7C ALetter -1EE7E ALetter -1EE80 1EE89 ALetter -1EE8B 1EE9B ALetter -1EEA1 1EEA3 ALetter -1EEA5 1EEA9 ALetter -1EEAB 1EEBB ALetter -1F130 1F149 ALetter -1F150 1F169 ALetter -1F170 1F189 ALetter -1F1E6 1F1FF Regional_Indicator -E0001 Format -E0020 E007F Format -E0100 E01EF Extend -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/_PerlLB.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/_PerlLB.pl deleted file mode 100644 index 834f740b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/_PerlLB.pl +++ /dev/null @@ -1,1683 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'To_PerlLB'}{'format'} = 's'; # string -$utf8::SwashInfo{'To_PerlLB'}{'missing'} = 'Alphabetic'; - -return <<'END'; -0 8 Combining_Mark -9 Break_After -A Line_Feed -B C Mandatory_Break -D Carriage_Return -E 1F Combining_Mark -20 Space -21 Exclamation -22 Quotation -24 Prefix_Numeric -25 Postfix_Numeric -27 Quotation -28 Open_Punctuation -29 Close_Parenthesis -2B Prefix_Numeric -2C Infix_Numeric -2D Hyphen -2E Infix_Numeric -2F Break_Symbols -30 39 Numeric -3A 3B Infix_Numeric -3F Exclamation -5B Open_Punctuation -5C Prefix_Numeric -5D Close_Parenthesis -7B Open_Punctuation -7C Break_After -7D Close_Punctuation -7F 84 Combining_Mark -85 Next_Line -86 9F Combining_Mark -A0 Glue -A1 Open_Punctuation -A2 Postfix_Numeric -A3 A5 Prefix_Numeric -AB Quotation -AD Break_After -B0 Postfix_Numeric -B1 Prefix_Numeric -B4 Break_Before -BB Quotation -BF Open_Punctuation -2C8 Break_Before -2CC Break_Before -2DF Break_Before -300 34E Combining_Mark -34F Glue -350 35B Combining_Mark -35C 362 Glue -363 36F Combining_Mark -37E Infix_Numeric -483 489 Combining_Mark -589 Infix_Numeric -58A Break_After -58F Prefix_Numeric -591 5BD Combining_Mark -5BE Break_After -5BF Combining_Mark -5C1 5C2 Combining_Mark -5C4 5C5 Combining_Mark -5C6 Exclamation -5C7 Combining_Mark -5D0 5EA Hebrew_Letter -5F0 5F2 Hebrew_Letter -609 60B Postfix_Numeric -60C 60D Infix_Numeric -610 61A Combining_Mark -61B Exclamation -61C Combining_Mark -61E 61F Exclamation -64B 65F Combining_Mark -660 669 Numeric -66A Postfix_Numeric -66B 66C Numeric -670 Combining_Mark -6D4 Exclamation -6D6 6DC Combining_Mark -6DF 6E4 Combining_Mark -6E7 6E8 Combining_Mark -6EA 6ED Combining_Mark -6F0 6F9 Numeric -711 Combining_Mark -730 74A Combining_Mark -7A6 7B0 Combining_Mark -7C0 7C9 Numeric -7EB 7F3 Combining_Mark -7F8 Infix_Numeric -7F9 Exclamation -816 819 Combining_Mark -81B 823 Combining_Mark -825 827 Combining_Mark -829 82D Combining_Mark -859 85B Combining_Mark -8E3 903 Combining_Mark -93A 93C Combining_Mark -93E 94F Combining_Mark -951 957 Combining_Mark -962 963 Combining_Mark -964 965 Break_After -966 96F Numeric -981 983 Combining_Mark -9BC Combining_Mark -9BE 9C4 Combining_Mark -9C7 9C8 Combining_Mark -9CB 9CD Combining_Mark -9D7 Combining_Mark -9E2 9E3 Combining_Mark -9E6 9EF Numeric -9F2 9F3 Postfix_Numeric -9F9 Postfix_Numeric -9FB Prefix_Numeric -A01 A03 Combining_Mark -A3C Combining_Mark -A3E A42 Combining_Mark -A47 A48 Combining_Mark -A4B A4D Combining_Mark -A51 Combining_Mark -A66 A6F Numeric -A70 A71 Combining_Mark -A75 Combining_Mark -A81 A83 Combining_Mark -ABC Combining_Mark -ABE AC5 Combining_Mark -AC7 AC9 Combining_Mark -ACB ACD Combining_Mark -AE2 AE3 Combining_Mark -AE6 AEF Numeric -AF1 Prefix_Numeric -B01 B03 Combining_Mark -B3C Combining_Mark -B3E B44 Combining_Mark -B47 B48 Combining_Mark -B4B B4D Combining_Mark -B56 B57 Combining_Mark -B62 B63 Combining_Mark -B66 B6F Numeric -B82 Combining_Mark -BBE BC2 Combining_Mark -BC6 BC8 Combining_Mark -BCA BCD Combining_Mark -BD7 Combining_Mark -BE6 BEF Numeric -BF9 Prefix_Numeric -C00 C03 Combining_Mark -C3E C44 Combining_Mark -C46 C48 Combining_Mark -C4A C4D Combining_Mark -C55 C56 Combining_Mark -C62 C63 Combining_Mark -C66 C6F Numeric -C81 C83 Combining_Mark -CBC Combining_Mark -CBE CC4 Combining_Mark -CC6 CC8 Combining_Mark -CCA CCD Combining_Mark -CD5 CD6 Combining_Mark -CE2 CE3 Combining_Mark -CE6 CEF Numeric -D01 D03 Combining_Mark -D3E D44 Combining_Mark -D46 D48 Combining_Mark -D4A D4D Combining_Mark -D57 Combining_Mark -D62 D63 Combining_Mark -D66 D6F Numeric -D79 Postfix_Numeric -D82 D83 Combining_Mark -DCA Combining_Mark -DCF DD4 Combining_Mark -DD6 Combining_Mark -DD8 DDF Combining_Mark -DE6 DEF Numeric -DF2 DF3 Combining_Mark -E31 Combining_Mark -E34 E3A Combining_Mark -E3F Prefix_Numeric -E47 E4E Combining_Mark -E50 E59 Numeric -E5A E5B Break_After -EB1 Combining_Mark -EB4 EB9 Combining_Mark -EBB EBC Combining_Mark -EC8 ECD Combining_Mark -ED0 ED9 Numeric -F01 F04 Break_Before -F06 F07 Break_Before -F08 Glue -F09 F0A Break_Before -F0B Break_After -F0C Glue -F0D F11 Exclamation -F12 Glue -F14 Exclamation -F18 F19 Combining_Mark -F20 F29 Numeric -F34 Break_After -F35 Combining_Mark -F37 Combining_Mark -F39 Combining_Mark -F3A Open_Punctuation -F3B Close_Punctuation -F3C Open_Punctuation -F3D Close_Punctuation -F3E F3F Combining_Mark -F71 F7E Combining_Mark -F7F Break_After -F80 F84 Combining_Mark -F85 Break_After -F86 F87 Combining_Mark -F8D F97 Combining_Mark -F99 FBC Combining_Mark -FBE FBF Break_After -FC6 Combining_Mark -FD0 FD1 Break_Before -FD2 Break_After -FD3 Break_Before -FD9 FDA Glue -102B 103E Combining_Mark -1040 1049 Numeric -104A 104B Break_After -1056 1059 Combining_Mark -105E 1060 Combining_Mark -1062 1064 Combining_Mark -1067 106D Combining_Mark -1071 1074 Combining_Mark -1082 108D Combining_Mark -108F Combining_Mark -1090 1099 Numeric -109A 109D Combining_Mark -1100 115F JL -1160 11A7 JV -11A8 11FF JT -135D 135F Combining_Mark -1361 Break_After -1400 Break_After -1680 Break_After -169B Open_Punctuation -169C Close_Punctuation -16EB 16ED Break_After -1712 1714 Combining_Mark -1732 1734 Combining_Mark -1735 1736 Break_After -1752 1753 Combining_Mark -1772 1773 Combining_Mark -17B4 17D3 Combining_Mark -17D4 17D5 Break_After -17D6 Nonstarter -17D8 Break_After -17DA Break_After -17DB Prefix_Numeric -17DD Combining_Mark -17E0 17E9 Numeric -1802 1803 Exclamation -1804 1805 Break_After -1806 Break_Before -1808 1809 Exclamation -180B 180D Combining_Mark -180E Glue -1810 1819 Numeric -18A9 Combining_Mark -1920 192B Combining_Mark -1930 193B Combining_Mark -1944 1945 Exclamation -1946 194F Numeric -19D0 19D9 Numeric -1A17 1A1B Combining_Mark -1A55 1A5E Combining_Mark -1A60 1A7C Combining_Mark -1A7F Combining_Mark -1A80 1A89 Numeric -1A90 1A99 Numeric -1AB0 1ABE Combining_Mark -1B00 1B04 Combining_Mark -1B34 1B44 Combining_Mark -1B50 1B59 Numeric -1B5A 1B5B Break_After -1B5D 1B60 Break_After -1B6B 1B73 Combining_Mark -1B80 1B82 Combining_Mark -1BA1 1BAD Combining_Mark -1BB0 1BB9 Numeric -1BE6 1BF3 Combining_Mark -1C24 1C37 Combining_Mark -1C3B 1C3F Break_After -1C40 1C49 Numeric -1C50 1C59 Numeric -1C7E 1C7F Break_After -1CD0 1CD2 Combining_Mark -1CD4 1CE8 Combining_Mark -1CED Combining_Mark -1CF2 1CF4 Combining_Mark -1CF8 1CF9 Combining_Mark -1DC0 1DF5 Combining_Mark -1DFC 1DFF Combining_Mark -1FFD Break_Before -2000 2006 Break_After -2007 Glue -2008 200A Break_After -200B ZWSpace -200C 200F Combining_Mark -2010 Break_After -2011 Glue -2012 2013 Break_After -2014 Break_Both -2018 2019 Quotation -201A Open_Punctuation -201B 201D Quotation -201E Open_Punctuation -201F Quotation -2024 2026 Inseparable -2027 Break_After -2028 2029 Mandatory_Break -202A 202E Combining_Mark -202F Glue -2030 2037 Postfix_Numeric -2039 203A Quotation -203C 203D Nonstarter -2044 Infix_Numeric -2045 Open_Punctuation -2046 Close_Punctuation -2047 2049 Nonstarter -2056 Break_After -2058 205B Break_After -205D 205F Break_After -2060 Word_Joiner -2066 206F Combining_Mark -207D Open_Punctuation -207E Close_Punctuation -208D Open_Punctuation -208E Close_Punctuation -20A0 20A6 Prefix_Numeric -20A7 Postfix_Numeric -20A8 20B5 Prefix_Numeric -20B6 Postfix_Numeric -20B7 20BA Prefix_Numeric -20BB Postfix_Numeric -20BC 20BD Prefix_Numeric -20BE Postfix_Numeric -20BF 20CF Prefix_Numeric -20D0 20F0 Combining_Mark -2103 Postfix_Numeric -2109 Postfix_Numeric -2116 Prefix_Numeric -2212 2213 Prefix_Numeric -22EF Inseparable -2308 Open_Punctuation -2309 Close_Punctuation -230A Open_Punctuation -230B Close_Punctuation -231A 231B Ideographic -2329 Open_Punctuation -232A Close_Punctuation -23F0 23F3 Ideographic -2600 2603 Ideographic -2614 2615 Ideographic -2618 Ideographic -261A 261F Ideographic -2639 263B Ideographic -2668 Ideographic -267F Ideographic -26BD 26C8 Ideographic -26CD Ideographic -26CF 26D1 Ideographic -26D3 26D4 Ideographic -26D8 26D9 Ideographic -26DC Ideographic -26DF 26E1 Ideographic -26EA Ideographic -26F1 26F5 Ideographic -26F7 26FA Ideographic -26FD 2704 Ideographic -2708 270D Ideographic -275B 2760 Quotation -2762 2763 Exclamation -2768 Open_Punctuation -2769 Close_Punctuation -276A Open_Punctuation -276B Close_Punctuation -276C Open_Punctuation -276D Close_Punctuation -276E Open_Punctuation -276F Close_Punctuation -2770 Open_Punctuation -2771 Close_Punctuation -2772 Open_Punctuation -2773 Close_Punctuation -2774 Open_Punctuation -2775 Close_Punctuation -27C5 Open_Punctuation -27C6 Close_Punctuation -27E6 Open_Punctuation -27E7 Close_Punctuation -27E8 Open_Punctuation -27E9 Close_Punctuation -27EA Open_Punctuation -27EB Close_Punctuation -27EC Open_Punctuation -27ED Close_Punctuation -27EE Open_Punctuation -27EF Close_Punctuation -2983 Open_Punctuation -2984 Close_Punctuation -2985 Open_Punctuation -2986 Close_Punctuation -2987 Open_Punctuation -2988 Close_Punctuation -2989 Open_Punctuation -298A Close_Punctuation -298B Open_Punctuation -298C Close_Punctuation -298D Open_Punctuation -298E Close_Punctuation -298F Open_Punctuation -2990 Close_Punctuation -2991 Open_Punctuation -2992 Close_Punctuation -2993 Open_Punctuation -2994 Close_Punctuation -2995 Open_Punctuation -2996 Close_Punctuation -2997 Open_Punctuation -2998 Close_Punctuation -29D8 Open_Punctuation -29D9 Close_Punctuation -29DA Open_Punctuation -29DB Close_Punctuation -29FC Open_Punctuation -29FD Close_Punctuation -2CEF 2CF1 Combining_Mark -2CF9 Exclamation -2CFA 2CFC Break_After -2CFE Exclamation -2CFF Break_After -2D70 Break_After -2D7F Combining_Mark -2DE0 2DFF Combining_Mark -2E00 2E0D Quotation -2E0E 2E15 Break_After -2E17 Break_After -2E18 Open_Punctuation -2E19 Break_After -2E1C 2E1D Quotation -2E20 2E21 Quotation -2E22 Open_Punctuation -2E23 Close_Punctuation -2E24 Open_Punctuation -2E25 Close_Punctuation -2E26 Open_Punctuation -2E27 Close_Punctuation -2E28 Open_Punctuation -2E29 Close_Punctuation -2E2A 2E2D Break_After -2E2E Exclamation -2E30 2E31 Break_After -2E33 2E34 Break_After -2E3A 2E3B Break_Both -2E3C 2E3E Break_After -2E40 2E41 Break_After -2E42 Open_Punctuation -2E80 2E99 Ideographic -2E9B 2EF3 Ideographic -2F00 2FD5 Ideographic -2FF0 2FFB Ideographic -3000 Break_After -3001 3002 Close_Punctuation -3003 3004 Ideographic -3005 Nonstarter -3006 3007 Ideographic -3008 Open_Punctuation -3009 Close_Punctuation -300A Open_Punctuation -300B Close_Punctuation -300C Open_Punctuation -300D Close_Punctuation -300E Open_Punctuation -300F Close_Punctuation -3010 Open_Punctuation -3011 Close_Punctuation -3012 3013 Ideographic -3014 Open_Punctuation -3015 Close_Punctuation -3016 Open_Punctuation -3017 Close_Punctuation -3018 Open_Punctuation -3019 Close_Punctuation -301A Open_Punctuation -301B Close_Punctuation -301C Nonstarter -301D Open_Punctuation -301E 301F Close_Punctuation -3020 3029 Ideographic -302A 302F Combining_Mark -3030 3034 Ideographic -3035 Combining_Mark -3036 303A Ideographic -303B 303C Nonstarter -303D 303F Ideographic -3041 Nonstarter -3042 Ideographic -3043 Nonstarter -3044 Ideographic -3045 Nonstarter -3046 Ideographic -3047 Nonstarter -3048 Ideographic -3049 Nonstarter -304A 3062 Ideographic -3063 Nonstarter -3064 3082 Ideographic -3083 Nonstarter -3084 Ideographic -3085 Nonstarter -3086 Ideographic -3087 Nonstarter -3088 308D Ideographic -308E Nonstarter -308F 3094 Ideographic -3095 3096 Nonstarter -3099 309A Combining_Mark -309B 309E Nonstarter -309F Ideographic -30A0 30A1 Nonstarter -30A2 Ideographic -30A3 Nonstarter -30A4 Ideographic -30A5 Nonstarter -30A6 Ideographic -30A7 Nonstarter -30A8 Ideographic -30A9 Nonstarter -30AA 30C2 Ideographic -30C3 Nonstarter -30C4 30E2 Ideographic -30E3 Nonstarter -30E4 Ideographic -30E5 Nonstarter -30E6 Ideographic -30E7 Nonstarter -30E8 30ED Ideographic -30EE Nonstarter -30EF 30F4 Ideographic -30F5 30F6 Nonstarter -30F7 30FA Ideographic -30FB 30FE Nonstarter -30FF Ideographic -3105 312D Ideographic -3131 318E Ideographic -3190 31BA Ideographic -31C0 31E3 Ideographic -31F0 31FF Nonstarter -3200 321E Ideographic -3220 3247 Ideographic -3250 32FE Ideographic -3300 4DBF Ideographic -4E00 A014 Ideographic -A015 Nonstarter -A016 A48C Ideographic -A490 A4C6 Ideographic -A4FE A4FF Break_After -A60D Break_After -A60E Exclamation -A60F Break_After -A620 A629 Numeric -A66F A672 Combining_Mark -A674 A67D Combining_Mark -A69E A69F Combining_Mark -A6F0 A6F1 Combining_Mark -A6F3 A6F7 Break_After -A802 Combining_Mark -A806 Combining_Mark -A80B Combining_Mark -A823 A827 Combining_Mark -A838 Postfix_Numeric -A874 A875 Break_Before -A876 A877 Exclamation -A880 A881 Combining_Mark -A8B4 A8C4 Combining_Mark -A8CE A8CF Break_After -A8D0 A8D9 Numeric -A8E0 A8F1 Combining_Mark -A8FC Break_Before -A900 A909 Numeric -A926 A92D Combining_Mark -A92E A92F Break_After -A947 A953 Combining_Mark -A960 A97C JL -A980 A983 Combining_Mark -A9B3 A9C0 Combining_Mark -A9C7 A9C9 Break_After -A9D0 A9D9 Numeric -A9E5 Combining_Mark -A9F0 A9F9 Numeric -AA29 AA36 Combining_Mark -AA43 Combining_Mark -AA4C AA4D Combining_Mark -AA50 AA59 Numeric -AA5D AA5F Break_After -AA7B AA7D Combining_Mark -AAB0 Combining_Mark -AAB2 AAB4 Combining_Mark -AAB7 AAB8 Combining_Mark -AABE AABF Combining_Mark -AAC1 Combining_Mark -AAEB AAEF Combining_Mark -AAF0 AAF1 Break_After -AAF5 AAF6 Combining_Mark -ABE3 ABEA Combining_Mark -ABEB Break_After -ABEC ABED Combining_Mark -ABF0 ABF9 Numeric -AC00 H2 -AC01 AC1B H3 -AC1C H2 -AC1D AC37 H3 -AC38 H2 -AC39 AC53 H3 -AC54 H2 -AC55 AC6F H3 -AC70 H2 -AC71 AC8B H3 -AC8C H2 -AC8D ACA7 H3 -ACA8 H2 -ACA9 ACC3 H3 -ACC4 H2 -ACC5 ACDF H3 -ACE0 H2 -ACE1 ACFB H3 -ACFC H2 -ACFD AD17 H3 -AD18 H2 -AD19 AD33 H3 -AD34 H2 -AD35 AD4F H3 -AD50 H2 -AD51 AD6B H3 -AD6C H2 -AD6D AD87 H3 -AD88 H2 -AD89 ADA3 H3 -ADA4 H2 -ADA5 ADBF H3 -ADC0 H2 -ADC1 ADDB H3 -ADDC H2 -ADDD ADF7 H3 -ADF8 H2 -ADF9 AE13 H3 -AE14 H2 -AE15 AE2F H3 -AE30 H2 -AE31 AE4B H3 -AE4C H2 -AE4D AE67 H3 -AE68 H2 -AE69 AE83 H3 -AE84 H2 -AE85 AE9F H3 -AEA0 H2 -AEA1 AEBB H3 -AEBC H2 -AEBD AED7 H3 -AED8 H2 -AED9 AEF3 H3 -AEF4 H2 -AEF5 AF0F H3 -AF10 H2 -AF11 AF2B H3 -AF2C H2 -AF2D AF47 H3 -AF48 H2 -AF49 AF63 H3 -AF64 H2 -AF65 AF7F H3 -AF80 H2 -AF81 AF9B H3 -AF9C H2 -AF9D AFB7 H3 -AFB8 H2 -AFB9 AFD3 H3 -AFD4 H2 -AFD5 AFEF H3 -AFF0 H2 -AFF1 B00B H3 -B00C H2 -B00D B027 H3 -B028 H2 -B029 B043 H3 -B044 H2 -B045 B05F H3 -B060 H2 -B061 B07B H3 -B07C H2 -B07D B097 H3 -B098 H2 -B099 B0B3 H3 -B0B4 H2 -B0B5 B0CF H3 -B0D0 H2 -B0D1 B0EB H3 -B0EC H2 -B0ED B107 H3 -B108 H2 -B109 B123 H3 -B124 H2 -B125 B13F H3 -B140 H2 -B141 B15B H3 -B15C H2 -B15D B177 H3 -B178 H2 -B179 B193 H3 -B194 H2 -B195 B1AF H3 -B1B0 H2 -B1B1 B1CB H3 -B1CC H2 -B1CD B1E7 H3 -B1E8 H2 -B1E9 B203 H3 -B204 H2 -B205 B21F H3 -B220 H2 -B221 B23B H3 -B23C H2 -B23D B257 H3 -B258 H2 -B259 B273 H3 -B274 H2 -B275 B28F H3 -B290 H2 -B291 B2AB H3 -B2AC H2 -B2AD B2C7 H3 -B2C8 H2 -B2C9 B2E3 H3 -B2E4 H2 -B2E5 B2FF H3 -B300 H2 -B301 B31B H3 -B31C H2 -B31D B337 H3 -B338 H2 -B339 B353 H3 -B354 H2 -B355 B36F H3 -B370 H2 -B371 B38B H3 -B38C H2 -B38D B3A7 H3 -B3A8 H2 -B3A9 B3C3 H3 -B3C4 H2 -B3C5 B3DF H3 -B3E0 H2 -B3E1 B3FB H3 -B3FC H2 -B3FD B417 H3 -B418 H2 -B419 B433 H3 -B434 H2 -B435 B44F H3 -B450 H2 -B451 B46B H3 -B46C H2 -B46D B487 H3 -B488 H2 -B489 B4A3 H3 -B4A4 H2 -B4A5 B4BF H3 -B4C0 H2 -B4C1 B4DB H3 -B4DC H2 -B4DD B4F7 H3 -B4F8 H2 -B4F9 B513 H3 -B514 H2 -B515 B52F H3 -B530 H2 -B531 B54B H3 -B54C H2 -B54D B567 H3 -B568 H2 -B569 B583 H3 -B584 H2 -B585 B59F H3 -B5A0 H2 -B5A1 B5BB H3 -B5BC H2 -B5BD B5D7 H3 -B5D8 H2 -B5D9 B5F3 H3 -B5F4 H2 -B5F5 B60F H3 -B610 H2 -B611 B62B H3 -B62C H2 -B62D B647 H3 -B648 H2 -B649 B663 H3 -B664 H2 -B665 B67F H3 -B680 H2 -B681 B69B H3 -B69C H2 -B69D B6B7 H3 -B6B8 H2 -B6B9 B6D3 H3 -B6D4 H2 -B6D5 B6EF H3 -B6F0 H2 -B6F1 B70B H3 -B70C H2 -B70D B727 H3 -B728 H2 -B729 B743 H3 -B744 H2 -B745 B75F H3 -B760 H2 -B761 B77B H3 -B77C H2 -B77D B797 H3 -B798 H2 -B799 B7B3 H3 -B7B4 H2 -B7B5 B7CF H3 -B7D0 H2 -B7D1 B7EB H3 -B7EC H2 -B7ED B807 H3 -B808 H2 -B809 B823 H3 -B824 H2 -B825 B83F H3 -B840 H2 -B841 B85B H3 -B85C H2 -B85D B877 H3 -B878 H2 -B879 B893 H3 -B894 H2 -B895 B8AF H3 -B8B0 H2 -B8B1 B8CB H3 -B8CC H2 -B8CD B8E7 H3 -B8E8 H2 -B8E9 B903 H3 -B904 H2 -B905 B91F H3 -B920 H2 -B921 B93B H3 -B93C H2 -B93D B957 H3 -B958 H2 -B959 B973 H3 -B974 H2 -B975 B98F H3 -B990 H2 -B991 B9AB H3 -B9AC H2 -B9AD B9C7 H3 -B9C8 H2 -B9C9 B9E3 H3 -B9E4 H2 -B9E5 B9FF H3 -BA00 H2 -BA01 BA1B H3 -BA1C H2 -BA1D BA37 H3 -BA38 H2 -BA39 BA53 H3 -BA54 H2 -BA55 BA6F H3 -BA70 H2 -BA71 BA8B H3 -BA8C H2 -BA8D BAA7 H3 -BAA8 H2 -BAA9 BAC3 H3 -BAC4 H2 -BAC5 BADF H3 -BAE0 H2 -BAE1 BAFB H3 -BAFC H2 -BAFD BB17 H3 -BB18 H2 -BB19 BB33 H3 -BB34 H2 -BB35 BB4F H3 -BB50 H2 -BB51 BB6B H3 -BB6C H2 -BB6D BB87 H3 -BB88 H2 -BB89 BBA3 H3 -BBA4 H2 -BBA5 BBBF H3 -BBC0 H2 -BBC1 BBDB H3 -BBDC H2 -BBDD BBF7 H3 -BBF8 H2 -BBF9 BC13 H3 -BC14 H2 -BC15 BC2F H3 -BC30 H2 -BC31 BC4B H3 -BC4C H2 -BC4D BC67 H3 -BC68 H2 -BC69 BC83 H3 -BC84 H2 -BC85 BC9F H3 -BCA0 H2 -BCA1 BCBB H3 -BCBC H2 -BCBD BCD7 H3 -BCD8 H2 -BCD9 BCF3 H3 -BCF4 H2 -BCF5 BD0F H3 -BD10 H2 -BD11 BD2B H3 -BD2C H2 -BD2D BD47 H3 -BD48 H2 -BD49 BD63 H3 -BD64 H2 -BD65 BD7F H3 -BD80 H2 -BD81 BD9B H3 -BD9C H2 -BD9D BDB7 H3 -BDB8 H2 -BDB9 BDD3 H3 -BDD4 H2 -BDD5 BDEF H3 -BDF0 H2 -BDF1 BE0B H3 -BE0C H2 -BE0D BE27 H3 -BE28 H2 -BE29 BE43 H3 -BE44 H2 -BE45 BE5F H3 -BE60 H2 -BE61 BE7B H3 -BE7C H2 -BE7D BE97 H3 -BE98 H2 -BE99 BEB3 H3 -BEB4 H2 -BEB5 BECF H3 -BED0 H2 -BED1 BEEB H3 -BEEC H2 -BEED BF07 H3 -BF08 H2 -BF09 BF23 H3 -BF24 H2 -BF25 BF3F H3 -BF40 H2 -BF41 BF5B H3 -BF5C H2 -BF5D BF77 H3 -BF78 H2 -BF79 BF93 H3 -BF94 H2 -BF95 BFAF H3 -BFB0 H2 -BFB1 BFCB H3 -BFCC H2 -BFCD BFE7 H3 -BFE8 H2 -BFE9 C003 H3 -C004 H2 -C005 C01F H3 -C020 H2 -C021 C03B H3 -C03C H2 -C03D C057 H3 -C058 H2 -C059 C073 H3 -C074 H2 -C075 C08F H3 -C090 H2 -C091 C0AB H3 -C0AC H2 -C0AD C0C7 H3 -C0C8 H2 -C0C9 C0E3 H3 -C0E4 H2 -C0E5 C0FF H3 -C100 H2 -C101 C11B H3 -C11C H2 -C11D C137 H3 -C138 H2 -C139 C153 H3 -C154 H2 -C155 C16F H3 -C170 H2 -C171 C18B H3 -C18C H2 -C18D C1A7 H3 -C1A8 H2 -C1A9 C1C3 H3 -C1C4 H2 -C1C5 C1DF H3 -C1E0 H2 -C1E1 C1FB H3 -C1FC H2 -C1FD C217 H3 -C218 H2 -C219 C233 H3 -C234 H2 -C235 C24F H3 -C250 H2 -C251 C26B H3 -C26C H2 -C26D C287 H3 -C288 H2 -C289 C2A3 H3 -C2A4 H2 -C2A5 C2BF H3 -C2C0 H2 -C2C1 C2DB H3 -C2DC H2 -C2DD C2F7 H3 -C2F8 H2 -C2F9 C313 H3 -C314 H2 -C315 C32F H3 -C330 H2 -C331 C34B H3 -C34C H2 -C34D C367 H3 -C368 H2 -C369 C383 H3 -C384 H2 -C385 C39F H3 -C3A0 H2 -C3A1 C3BB H3 -C3BC H2 -C3BD C3D7 H3 -C3D8 H2 -C3D9 C3F3 H3 -C3F4 H2 -C3F5 C40F H3 -C410 H2 -C411 C42B H3 -C42C H2 -C42D C447 H3 -C448 H2 -C449 C463 H3 -C464 H2 -C465 C47F H3 -C480 H2 -C481 C49B H3 -C49C H2 -C49D C4B7 H3 -C4B8 H2 -C4B9 C4D3 H3 -C4D4 H2 -C4D5 C4EF H3 -C4F0 H2 -C4F1 C50B H3 -C50C H2 -C50D C527 H3 -C528 H2 -C529 C543 H3 -C544 H2 -C545 C55F H3 -C560 H2 -C561 C57B H3 -C57C H2 -C57D C597 H3 -C598 H2 -C599 C5B3 H3 -C5B4 H2 -C5B5 C5CF H3 -C5D0 H2 -C5D1 C5EB H3 -C5EC H2 -C5ED C607 H3 -C608 H2 -C609 C623 H3 -C624 H2 -C625 C63F H3 -C640 H2 -C641 C65B H3 -C65C H2 -C65D C677 H3 -C678 H2 -C679 C693 H3 -C694 H2 -C695 C6AF H3 -C6B0 H2 -C6B1 C6CB H3 -C6CC H2 -C6CD C6E7 H3 -C6E8 H2 -C6E9 C703 H3 -C704 H2 -C705 C71F H3 -C720 H2 -C721 C73B H3 -C73C H2 -C73D C757 H3 -C758 H2 -C759 C773 H3 -C774 H2 -C775 C78F H3 -C790 H2 -C791 C7AB H3 -C7AC H2 -C7AD C7C7 H3 -C7C8 H2 -C7C9 C7E3 H3 -C7E4 H2 -C7E5 C7FF H3 -C800 H2 -C801 C81B H3 -C81C H2 -C81D C837 H3 -C838 H2 -C839 C853 H3 -C854 H2 -C855 C86F H3 -C870 H2 -C871 C88B H3 -C88C H2 -C88D C8A7 H3 -C8A8 H2 -C8A9 C8C3 H3 -C8C4 H2 -C8C5 C8DF H3 -C8E0 H2 -C8E1 C8FB H3 -C8FC H2 -C8FD C917 H3 -C918 H2 -C919 C933 H3 -C934 H2 -C935 C94F H3 -C950 H2 -C951 C96B H3 -C96C H2 -C96D C987 H3 -C988 H2 -C989 C9A3 H3 -C9A4 H2 -C9A5 C9BF H3 -C9C0 H2 -C9C1 C9DB H3 -C9DC H2 -C9DD C9F7 H3 -C9F8 H2 -C9F9 CA13 H3 -CA14 H2 -CA15 CA2F H3 -CA30 H2 -CA31 CA4B H3 -CA4C H2 -CA4D CA67 H3 -CA68 H2 -CA69 CA83 H3 -CA84 H2 -CA85 CA9F H3 -CAA0 H2 -CAA1 CABB H3 -CABC H2 -CABD CAD7 H3 -CAD8 H2 -CAD9 CAF3 H3 -CAF4 H2 -CAF5 CB0F H3 -CB10 H2 -CB11 CB2B H3 -CB2C H2 -CB2D CB47 H3 -CB48 H2 -CB49 CB63 H3 -CB64 H2 -CB65 CB7F H3 -CB80 H2 -CB81 CB9B H3 -CB9C H2 -CB9D CBB7 H3 -CBB8 H2 -CBB9 CBD3 H3 -CBD4 H2 -CBD5 CBEF H3 -CBF0 H2 -CBF1 CC0B H3 -CC0C H2 -CC0D CC27 H3 -CC28 H2 -CC29 CC43 H3 -CC44 H2 -CC45 CC5F H3 -CC60 H2 -CC61 CC7B H3 -CC7C H2 -CC7D CC97 H3 -CC98 H2 -CC99 CCB3 H3 -CCB4 H2 -CCB5 CCCF H3 -CCD0 H2 -CCD1 CCEB H3 -CCEC H2 -CCED CD07 H3 -CD08 H2 -CD09 CD23 H3 -CD24 H2 -CD25 CD3F H3 -CD40 H2 -CD41 CD5B H3 -CD5C H2 -CD5D CD77 H3 -CD78 H2 -CD79 CD93 H3 -CD94 H2 -CD95 CDAF H3 -CDB0 H2 -CDB1 CDCB H3 -CDCC H2 -CDCD CDE7 H3 -CDE8 H2 -CDE9 CE03 H3 -CE04 H2 -CE05 CE1F H3 -CE20 H2 -CE21 CE3B H3 -CE3C H2 -CE3D CE57 H3 -CE58 H2 -CE59 CE73 H3 -CE74 H2 -CE75 CE8F H3 -CE90 H2 -CE91 CEAB H3 -CEAC H2 -CEAD CEC7 H3 -CEC8 H2 -CEC9 CEE3 H3 -CEE4 H2 -CEE5 CEFF H3 -CF00 H2 -CF01 CF1B H3 -CF1C H2 -CF1D CF37 H3 -CF38 H2 -CF39 CF53 H3 -CF54 H2 -CF55 CF6F H3 -CF70 H2 -CF71 CF8B H3 -CF8C H2 -CF8D CFA7 H3 -CFA8 H2 -CFA9 CFC3 H3 -CFC4 H2 -CFC5 CFDF H3 -CFE0 H2 -CFE1 CFFB H3 -CFFC H2 -CFFD D017 H3 -D018 H2 -D019 D033 H3 -D034 H2 -D035 D04F H3 -D050 H2 -D051 D06B H3 -D06C H2 -D06D D087 H3 -D088 H2 -D089 D0A3 H3 -D0A4 H2 -D0A5 D0BF H3 -D0C0 H2 -D0C1 D0DB H3 -D0DC H2 -D0DD D0F7 H3 -D0F8 H2 -D0F9 D113 H3 -D114 H2 -D115 D12F H3 -D130 H2 -D131 D14B H3 -D14C H2 -D14D D167 H3 -D168 H2 -D169 D183 H3 -D184 H2 -D185 D19F H3 -D1A0 H2 -D1A1 D1BB H3 -D1BC H2 -D1BD D1D7 H3 -D1D8 H2 -D1D9 D1F3 H3 -D1F4 H2 -D1F5 D20F H3 -D210 H2 -D211 D22B H3 -D22C H2 -D22D D247 H3 -D248 H2 -D249 D263 H3 -D264 H2 -D265 D27F H3 -D280 H2 -D281 D29B H3 -D29C H2 -D29D D2B7 H3 -D2B8 H2 -D2B9 D2D3 H3 -D2D4 H2 -D2D5 D2EF H3 -D2F0 H2 -D2F1 D30B H3 -D30C H2 -D30D D327 H3 -D328 H2 -D329 D343 H3 -D344 H2 -D345 D35F H3 -D360 H2 -D361 D37B H3 -D37C H2 -D37D D397 H3 -D398 H2 -D399 D3B3 H3 -D3B4 H2 -D3B5 D3CF H3 -D3D0 H2 -D3D1 D3EB H3 -D3EC H2 -D3ED D407 H3 -D408 H2 -D409 D423 H3 -D424 H2 -D425 D43F H3 -D440 H2 -D441 D45B H3 -D45C H2 -D45D D477 H3 -D478 H2 -D479 D493 H3 -D494 H2 -D495 D4AF H3 -D4B0 H2 -D4B1 D4CB H3 -D4CC H2 -D4CD D4E7 H3 -D4E8 H2 -D4E9 D503 H3 -D504 H2 -D505 D51F H3 -D520 H2 -D521 D53B H3 -D53C H2 -D53D D557 H3 -D558 H2 -D559 D573 H3 -D574 H2 -D575 D58F H3 -D590 H2 -D591 D5AB H3 -D5AC H2 -D5AD D5C7 H3 -D5C8 H2 -D5C9 D5E3 H3 -D5E4 H2 -D5E5 D5FF H3 -D600 H2 -D601 D61B H3 -D61C H2 -D61D D637 H3 -D638 H2 -D639 D653 H3 -D654 H2 -D655 D66F H3 -D670 H2 -D671 D68B H3 -D68C H2 -D68D D6A7 H3 -D6A8 H2 -D6A9 D6C3 H3 -D6C4 H2 -D6C5 D6DF H3 -D6E0 H2 -D6E1 D6FB H3 -D6FC H2 -D6FD D717 H3 -D718 H2 -D719 D733 H3 -D734 H2 -D735 D74F H3 -D750 H2 -D751 D76B H3 -D76C H2 -D76D D787 H3 -D788 H2 -D789 D7A3 H3 -D7B0 D7C6 JV -D7CB D7FB JT -F900 FAFF Ideographic -FB1D Hebrew_Letter -FB1E Combining_Mark -FB1F FB28 Hebrew_Letter -FB2A FB36 Hebrew_Letter -FB38 FB3C Hebrew_Letter -FB3E Hebrew_Letter -FB40 FB41 Hebrew_Letter -FB43 FB44 Hebrew_Letter -FB46 FB4F Hebrew_Letter -FD3E Close_Punctuation -FD3F Open_Punctuation -FDFC Postfix_Numeric -FE00 FE0F Combining_Mark -FE10 Infix_Numeric -FE11 FE12 Close_Punctuation -FE13 FE14 Infix_Numeric -FE15 FE16 Exclamation -FE17 Open_Punctuation -FE18 Close_Punctuation -FE19 Inseparable -FE20 FE2F Combining_Mark -FE30 FE34 Ideographic -FE35 Open_Punctuation -FE36 Close_Punctuation -FE37 Open_Punctuation -FE38 Close_Punctuation -FE39 Open_Punctuation -FE3A Close_Punctuation -FE3B Open_Punctuation -FE3C Close_Punctuation -FE3D Open_Punctuation -FE3E Close_Punctuation -FE3F Open_Punctuation -FE40 Close_Punctuation -FE41 Open_Punctuation -FE42 Close_Punctuation -FE43 Open_Punctuation -FE44 Close_Punctuation -FE45 FE46 Ideographic -FE47 Open_Punctuation -FE48 Close_Punctuation -FE49 FE4F Ideographic -FE50 Close_Punctuation -FE51 Ideographic -FE52 Close_Punctuation -FE54 FE55 Nonstarter -FE56 FE57 Exclamation -FE58 Ideographic -FE59 Open_Punctuation -FE5A Close_Punctuation -FE5B Open_Punctuation -FE5C Close_Punctuation -FE5D Open_Punctuation -FE5E Close_Punctuation -FE5F FE66 Ideographic -FE68 Ideographic -FE69 Prefix_Numeric -FE6A Postfix_Numeric -FE6B Ideographic -FEFF Word_Joiner -FF01 Exclamation -FF02 FF03 Ideographic -FF04 Prefix_Numeric -FF05 Postfix_Numeric -FF06 FF07 Ideographic -FF08 Open_Punctuation -FF09 Close_Punctuation -FF0A FF0B Ideographic -FF0C Close_Punctuation -FF0D Ideographic -FF0E Close_Punctuation -FF0F FF19 Ideographic -FF1A FF1B Nonstarter -FF1C FF1E Ideographic -FF1F Exclamation -FF20 FF3A Ideographic -FF3B Open_Punctuation -FF3C Ideographic -FF3D Close_Punctuation -FF3E FF5A Ideographic -FF5B Open_Punctuation -FF5C Ideographic -FF5D Close_Punctuation -FF5E Ideographic -FF5F Open_Punctuation -FF60 FF61 Close_Punctuation -FF62 Open_Punctuation -FF63 FF64 Close_Punctuation -FF65 Nonstarter -FF67 FF70 Nonstarter -FF9E FF9F Nonstarter -FFE0 Postfix_Numeric -FFE1 Prefix_Numeric -FFE2 FFE4 Ideographic -FFE5 FFE6 Prefix_Numeric -FFF9 FFFB Combining_Mark -FFFC Contingent_Break -10100 10102 Break_After -101FD Combining_Mark -102E0 Combining_Mark -10376 1037A Combining_Mark -1039F Break_After -103D0 Break_After -104A0 104A9 Numeric -10857 Break_After -1091F Break_After -10A01 10A03 Combining_Mark -10A05 10A06 Combining_Mark -10A0C 10A0F Combining_Mark -10A38 10A3A Combining_Mark -10A3F Combining_Mark -10A50 10A57 Break_After -10AE5 10AE6 Combining_Mark -10AF0 10AF5 Break_After -10AF6 Inseparable -10B39 10B3F Break_After -11000 11002 Combining_Mark -11038 11046 Combining_Mark -11047 11048 Break_After -11066 1106F Numeric -1107F 11082 Combining_Mark -110B0 110BA Combining_Mark -110BE 110C1 Break_After -110F0 110F9 Numeric -11100 11102 Combining_Mark -11127 11134 Combining_Mark -11136 1113F Numeric -11140 11143 Break_After -11173 Combining_Mark -11175 Break_Before -11180 11182 Combining_Mark -111B3 111C0 Combining_Mark -111C5 111C6 Break_After -111C8 Break_After -111CA 111CC Combining_Mark -111D0 111D9 Numeric -111DB Break_Before -111DD 111DF Break_After -1122C 11237 Combining_Mark -11238 11239 Break_After -1123B 1123C Break_After -112A9 Break_After -112DF 112EA Combining_Mark -112F0 112F9 Numeric -11300 11303 Combining_Mark -1133C Combining_Mark -1133E 11344 Combining_Mark -11347 11348 Combining_Mark -1134B 1134D Combining_Mark -11357 Combining_Mark -11362 11363 Combining_Mark -11366 1136C Combining_Mark -11370 11374 Combining_Mark -114B0 114C3 Combining_Mark -114D0 114D9 Numeric -115AF 115B5 Combining_Mark -115B8 115C0 Combining_Mark -115C1 Break_Before -115C2 115C3 Break_After -115C4 115C5 Exclamation -115C9 115D7 Break_After -115DC 115DD Combining_Mark -11630 11640 Combining_Mark -11641 11642 Break_After -11650 11659 Numeric -116AB 116B7 Combining_Mark -116C0 116C9 Numeric -1171D 1172B Combining_Mark -11730 11739 Numeric -1173C 1173E Break_After -118E0 118E9 Numeric -12470 12474 Break_After -13258 1325A Open_Punctuation -1325B 1325D Close_Punctuation -13282 Close_Punctuation -13286 Open_Punctuation -13287 Close_Punctuation -13288 Open_Punctuation -13289 Close_Punctuation -13379 Open_Punctuation -1337A 1337B Close_Punctuation -145CE Open_Punctuation -145CF Close_Punctuation -16A60 16A69 Numeric -16A6E 16A6F Break_After -16AF0 16AF4 Combining_Mark -16AF5 Break_After -16B30 16B36 Combining_Mark -16B37 16B39 Break_After -16B44 Break_After -16B50 16B59 Numeric -16F51 16F7E Combining_Mark -16F8F 16F92 Combining_Mark -1B000 1B001 Ideographic -1BC9D 1BC9E Combining_Mark -1BC9F Break_After -1BCA0 1BCA3 Combining_Mark -1D165 1D169 Combining_Mark -1D16D 1D182 Combining_Mark -1D185 1D18B Combining_Mark -1D1AA 1D1AD Combining_Mark -1D242 1D244 Combining_Mark -1D7CE 1D7FF Numeric -1DA00 1DA36 Combining_Mark -1DA3B 1DA6C Combining_Mark -1DA75 Combining_Mark -1DA84 Combining_Mark -1DA87 1DA8A Break_After -1DA9B 1DA9F Combining_Mark -1DAA1 1DAAF Combining_Mark -1E8D0 1E8D6 Combining_Mark -1F000 1F02B Ideographic -1F030 1F093 Ideographic -1F0A0 1F0AE Ideographic -1F0B1 1F0BF Ideographic -1F0C1 1F0CF Ideographic -1F0D1 1F0F5 Ideographic -1F1E6 1F1FF Regional_Indicator -1F200 1F202 Ideographic -1F210 1F23A Ideographic -1F240 1F248 Ideographic -1F250 1F251 Ideographic -1F300 1F39B Ideographic -1F39E 1F3B4 Ideographic -1F3B7 1F3BB Ideographic -1F3BD 1F3FA Ideographic -1F400 1F49F Ideographic -1F4A1 Ideographic -1F4A3 Ideographic -1F4A5 1F4AE Ideographic -1F4B0 Ideographic -1F4B3 1F4FF Ideographic -1F507 1F516 Ideographic -1F525 1F531 Ideographic -1F54A 1F579 Ideographic -1F57B 1F5A3 Ideographic -1F5A5 1F5D3 Ideographic -1F5DC 1F5F3 Ideographic -1F5FA 1F64F Ideographic -1F676 1F678 Quotation -1F679 1F67B Nonstarter -1F680 1F6D0 Ideographic -1F6E0 1F6EC Ideographic -1F6F0 1F6F3 Ideographic -1F910 1F918 Ideographic -1F980 1F984 Ideographic -1F9C0 Ideographic -20000 2FFFD Ideographic -30000 3FFFD Ideographic -E0001 Combining_Mark -E0020 E007F Combining_Mark -E0100 E01EF Combining_Mark -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/To/_PerlWB.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/To/_PerlWB.pl deleted file mode 100644 index 013bafc1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/To/_PerlWB.pl +++ /dev/null @@ -1,881 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - - -# The name this swash is to be known by, with the format of the mappings in -# the main body of the table, and what all code points missing from this file -# map to. -$utf8::SwashInfo{'To_PerlWB'}{'format'} = 's'; # string -$utf8::SwashInfo{'To_PerlWB'}{'missing'} = 'Other'; - -return <<'END'; -9 Perl_Tailored_HSpace -A LF -B C Newline -D CR -20 Perl_Tailored_HSpace -22 Double_Quote -27 Single_Quote -2C MidNum -2E MidNumLet -30 39 Numeric -3A MidLetter -3B MidNum -41 5A ALetter -5F ExtendNumLet -61 7A ALetter -85 Newline -A0 Perl_Tailored_HSpace -AA ALetter -AD Format -B5 ALetter -B7 MidLetter -BA ALetter -C0 D6 ALetter -D8 F6 ALetter -F8 2C1 ALetter -2C6 2D1 ALetter -2D7 MidLetter -2E0 2E4 ALetter -2EC ALetter -2EE ALetter -300 36F Extend -370 374 ALetter -376 377 ALetter -37A 37D ALetter -37E MidNum -37F ALetter -386 ALetter -387 MidLetter -388 38A ALetter -38C ALetter -38E 3A1 ALetter -3A3 3F5 ALetter -3F7 481 ALetter -483 489 Extend -48A 52F ALetter -531 556 ALetter -559 ALetter -561 587 ALetter -589 MidNum -591 5BD Extend -5BF Extend -5C1 5C2 Extend -5C4 5C5 Extend -5C7 Extend -5D0 5EA Hebrew_Letter -5F0 5F2 Hebrew_Letter -5F3 ALetter -5F4 MidLetter -600 605 Format -60C 60D MidNum -610 61A Extend -61C Format -620 64A ALetter -64B 65F Extend -660 669 Numeric -66B Numeric -66C MidNum -66E 66F ALetter -670 Extend -671 6D3 ALetter -6D5 ALetter -6D6 6DC Extend -6DD Format -6DF 6E4 Extend -6E5 6E6 ALetter -6E7 6E8 Extend -6EA 6ED Extend -6EE 6EF ALetter -6F0 6F9 Numeric -6FA 6FC ALetter -6FF ALetter -70F Format -710 ALetter -711 Extend -712 72F ALetter -730 74A Extend -74D 7A5 ALetter -7A6 7B0 Extend -7B1 ALetter -7C0 7C9 Numeric -7CA 7EA ALetter -7EB 7F3 Extend -7F4 7F5 ALetter -7F8 MidNum -7FA ALetter -800 815 ALetter -816 819 Extend -81A ALetter -81B 823 Extend -824 ALetter -825 827 Extend -828 ALetter -829 82D Extend -840 858 ALetter -859 85B Extend -8A0 8B4 ALetter -8E3 903 Extend -904 939 ALetter -93A 93C Extend -93D ALetter -93E 94F Extend -950 ALetter -951 957 Extend -958 961 ALetter -962 963 Extend -966 96F Numeric -971 980 ALetter -981 983 Extend -985 98C ALetter -98F 990 ALetter -993 9A8 ALetter -9AA 9B0 ALetter -9B2 ALetter -9B6 9B9 ALetter -9BC Extend -9BD ALetter -9BE 9C4 Extend -9C7 9C8 Extend -9CB 9CD Extend -9CE ALetter -9D7 Extend -9DC 9DD ALetter -9DF 9E1 ALetter -9E2 9E3 Extend -9E6 9EF Numeric -9F0 9F1 ALetter -A01 A03 Extend -A05 A0A ALetter -A0F A10 ALetter -A13 A28 ALetter -A2A A30 ALetter -A32 A33 ALetter -A35 A36 ALetter -A38 A39 ALetter -A3C Extend -A3E A42 Extend -A47 A48 Extend -A4B A4D Extend -A51 Extend -A59 A5C ALetter -A5E ALetter -A66 A6F Numeric -A70 A71 Extend -A72 A74 ALetter -A75 Extend -A81 A83 Extend -A85 A8D ALetter -A8F A91 ALetter -A93 AA8 ALetter -AAA AB0 ALetter -AB2 AB3 ALetter -AB5 AB9 ALetter -ABC Extend -ABD ALetter -ABE AC5 Extend -AC7 AC9 Extend -ACB ACD Extend -AD0 ALetter -AE0 AE1 ALetter -AE2 AE3 Extend -AE6 AEF Numeric -AF9 ALetter -B01 B03 Extend -B05 B0C ALetter -B0F B10 ALetter -B13 B28 ALetter -B2A B30 ALetter -B32 B33 ALetter -B35 B39 ALetter -B3C Extend -B3D ALetter -B3E B44 Extend -B47 B48 Extend -B4B B4D Extend -B56 B57 Extend -B5C B5D ALetter -B5F B61 ALetter -B62 B63 Extend -B66 B6F Numeric -B71 ALetter -B82 Extend -B83 ALetter -B85 B8A ALetter -B8E B90 ALetter -B92 B95 ALetter -B99 B9A ALetter -B9C ALetter -B9E B9F ALetter -BA3 BA4 ALetter -BA8 BAA ALetter -BAE BB9 ALetter -BBE BC2 Extend -BC6 BC8 Extend -BCA BCD Extend -BD0 ALetter -BD7 Extend -BE6 BEF Numeric -C00 C03 Extend -C05 C0C ALetter -C0E C10 ALetter -C12 C28 ALetter -C2A C39 ALetter -C3D ALetter -C3E C44 Extend -C46 C48 Extend -C4A C4D Extend -C55 C56 Extend -C58 C5A ALetter -C60 C61 ALetter -C62 C63 Extend -C66 C6F Numeric -C81 C83 Extend -C85 C8C ALetter -C8E C90 ALetter -C92 CA8 ALetter -CAA CB3 ALetter -CB5 CB9 ALetter -CBC Extend -CBD ALetter -CBE CC4 Extend -CC6 CC8 Extend -CCA CCD Extend -CD5 CD6 Extend -CDE ALetter -CE0 CE1 ALetter -CE2 CE3 Extend -CE6 CEF Numeric -CF1 CF2 ALetter -D01 D03 Extend -D05 D0C ALetter -D0E D10 ALetter -D12 D3A ALetter -D3D ALetter -D3E D44 Extend -D46 D48 Extend -D4A D4D Extend -D4E ALetter -D57 Extend -D5F D61 ALetter -D62 D63 Extend -D66 D6F Numeric -D7A D7F ALetter -D82 D83 Extend -D85 D96 ALetter -D9A DB1 ALetter -DB3 DBB ALetter -DBD ALetter -DC0 DC6 ALetter -DCA Extend -DCF DD4 Extend -DD6 Extend -DD8 DDF Extend -DE6 DEF Numeric -DF2 DF3 Extend -E31 Extend -E34 E3A Extend -E47 E4E Extend -E50 E59 Numeric -EB1 Extend -EB4 EB9 Extend -EBB EBC Extend -EC8 ECD Extend -ED0 ED9 Numeric -F00 ALetter -F18 F19 Extend -F20 F29 Numeric -F35 Extend -F37 Extend -F39 Extend -F3E F3F Extend -F40 F47 ALetter -F49 F6C ALetter -F71 F84 Extend -F86 F87 Extend -F88 F8C ALetter -F8D F97 Extend -F99 FBC Extend -FC6 Extend -102B 103E Extend -1040 1049 Numeric -1056 1059 Extend -105E 1060 Extend -1062 1064 Extend -1067 106D Extend -1071 1074 Extend -1082 108D Extend -108F Extend -1090 1099 Numeric -109A 109D Extend -10A0 10C5 ALetter -10C7 ALetter -10CD ALetter -10D0 10FA ALetter -10FC 1248 ALetter -124A 124D ALetter -1250 1256 ALetter -1258 ALetter -125A 125D ALetter -1260 1288 ALetter -128A 128D ALetter -1290 12B0 ALetter -12B2 12B5 ALetter -12B8 12BE ALetter -12C0 ALetter -12C2 12C5 ALetter -12C8 12D6 ALetter -12D8 1310 ALetter -1312 1315 ALetter -1318 135A ALetter -135D 135F Extend -1380 138F ALetter -13A0 13F5 ALetter -13F8 13FD ALetter -1401 166C ALetter -166F 167F ALetter -1680 Perl_Tailored_HSpace -1681 169A ALetter -16A0 16EA ALetter -16EE 16F8 ALetter -1700 170C ALetter -170E 1711 ALetter -1712 1714 Extend -1720 1731 ALetter -1732 1734 Extend -1740 1751 ALetter -1752 1753 Extend -1760 176C ALetter -176E 1770 ALetter -1772 1773 Extend -17B4 17D3 Extend -17DD Extend -17E0 17E9 Numeric -180B 180D Extend -180E Format -1810 1819 Numeric -1820 1877 ALetter -1880 18A8 ALetter -18A9 Extend -18AA ALetter -18B0 18F5 ALetter -1900 191E ALetter -1920 192B Extend -1930 193B Extend -1946 194F Numeric -19D0 19D9 Numeric -1A00 1A16 ALetter -1A17 1A1B Extend -1A55 1A5E Extend -1A60 1A7C Extend -1A7F Extend -1A80 1A89 Numeric -1A90 1A99 Numeric -1AB0 1ABE Extend -1B00 1B04 Extend -1B05 1B33 ALetter -1B34 1B44 Extend -1B45 1B4B ALetter -1B50 1B59 Numeric -1B6B 1B73 Extend -1B80 1B82 Extend -1B83 1BA0 ALetter -1BA1 1BAD Extend -1BAE 1BAF ALetter -1BB0 1BB9 Numeric -1BBA 1BE5 ALetter -1BE6 1BF3 Extend -1C00 1C23 ALetter -1C24 1C37 Extend -1C40 1C49 Numeric -1C4D 1C4F ALetter -1C50 1C59 Numeric -1C5A 1C7D ALetter -1CD0 1CD2 Extend -1CD4 1CE8 Extend -1CE9 1CEC ALetter -1CED Extend -1CEE 1CF1 ALetter -1CF2 1CF4 Extend -1CF5 1CF6 ALetter -1CF8 1CF9 Extend -1D00 1DBF ALetter -1DC0 1DF5 Extend -1DFC 1DFF Extend -1E00 1F15 ALetter -1F18 1F1D ALetter -1F20 1F45 ALetter -1F48 1F4D ALetter -1F50 1F57 ALetter -1F59 ALetter -1F5B ALetter -1F5D ALetter -1F5F 1F7D ALetter -1F80 1FB4 ALetter -1FB6 1FBC ALetter -1FBE ALetter -1FC2 1FC4 ALetter -1FC6 1FCC ALetter -1FD0 1FD3 ALetter -1FD6 1FDB ALetter -1FE0 1FEC ALetter -1FF2 1FF4 ALetter -1FF6 1FFC ALetter -2000 200A Perl_Tailored_HSpace -200C 200D Extend -200E 200F Format -2018 2019 MidNumLet -2024 MidNumLet -2027 MidLetter -2028 2029 Newline -202A 202E Format -202F Perl_Tailored_HSpace -203F 2040 ExtendNumLet -2044 MidNum -2054 ExtendNumLet -205F Perl_Tailored_HSpace -2060 2064 Format -2066 206F Format -2071 ALetter -207F ALetter -2090 209C ALetter -20D0 20F0 Extend -2102 ALetter -2107 ALetter -210A 2113 ALetter -2115 ALetter -2119 211D ALetter -2124 ALetter -2126 ALetter -2128 ALetter -212A 212D ALetter -212F 2139 ALetter -213C 213F ALetter -2145 2149 ALetter -214E ALetter -2160 2188 ALetter -24B6 24E9 ALetter -2C00 2C2E ALetter -2C30 2C5E ALetter -2C60 2CE4 ALetter -2CEB 2CEE ALetter -2CEF 2CF1 Extend -2CF2 2CF3 ALetter -2D00 2D25 ALetter -2D27 ALetter -2D2D ALetter -2D30 2D67 ALetter -2D6F ALetter -2D7F Extend -2D80 2D96 ALetter -2DA0 2DA6 ALetter -2DA8 2DAE ALetter -2DB0 2DB6 ALetter -2DB8 2DBE ALetter -2DC0 2DC6 ALetter -2DC8 2DCE ALetter -2DD0 2DD6 ALetter -2DD8 2DDE ALetter -2DE0 2DFF Extend -2E2F ALetter -3000 Perl_Tailored_HSpace -3005 ALetter -302A 302F Extend -3031 3035 Katakana -303B 303C ALetter -3099 309A Extend -309B 309C Katakana -30A0 30FA Katakana -30FC 30FF Katakana -3105 312D ALetter -3131 318E ALetter -31A0 31BA ALetter -31F0 31FF Katakana -32D0 32FE Katakana -3300 3357 Katakana -A000 A48C ALetter -A4D0 A4FD ALetter -A500 A60C ALetter -A610 A61F ALetter -A620 A629 Numeric -A62A A62B ALetter -A640 A66E ALetter -A66F A672 Extend -A674 A67D Extend -A67F A69D ALetter -A69E A69F Extend -A6A0 A6EF ALetter -A6F0 A6F1 Extend -A717 A71F ALetter -A722 A788 ALetter -A78B A7AD ALetter -A7B0 A7B7 ALetter -A7F7 A801 ALetter -A802 Extend -A803 A805 ALetter -A806 Extend -A807 A80A ALetter -A80B Extend -A80C A822 ALetter -A823 A827 Extend -A840 A873 ALetter -A880 A881 Extend -A882 A8B3 ALetter -A8B4 A8C4 Extend -A8D0 A8D9 Numeric -A8E0 A8F1 Extend -A8F2 A8F7 ALetter -A8FB ALetter -A8FD ALetter -A900 A909 Numeric -A90A A925 ALetter -A926 A92D Extend -A930 A946 ALetter -A947 A953 Extend -A960 A97C ALetter -A980 A983 Extend -A984 A9B2 ALetter -A9B3 A9C0 Extend -A9CF ALetter -A9D0 A9D9 Numeric -A9E5 Extend -A9F0 A9F9 Numeric -AA00 AA28 ALetter -AA29 AA36 Extend -AA40 AA42 ALetter -AA43 Extend -AA44 AA4B ALetter -AA4C AA4D Extend -AA50 AA59 Numeric -AA7B AA7D Extend -AAB0 Extend -AAB2 AAB4 Extend -AAB7 AAB8 Extend -AABE AABF Extend -AAC1 Extend -AAE0 AAEA ALetter -AAEB AAEF Extend -AAF2 AAF4 ALetter -AAF5 AAF6 Extend -AB01 AB06 ALetter -AB09 AB0E ALetter -AB11 AB16 ALetter -AB20 AB26 ALetter -AB28 AB2E ALetter -AB30 AB5A ALetter -AB5C AB65 ALetter -AB70 ABE2 ALetter -ABE3 ABEA Extend -ABEC ABED Extend -ABF0 ABF9 Numeric -AC00 D7A3 ALetter -D7B0 D7C6 ALetter -D7CB D7FB ALetter -FB00 FB06 ALetter -FB13 FB17 ALetter -FB1D Hebrew_Letter -FB1E Extend -FB1F FB28 Hebrew_Letter -FB2A FB36 Hebrew_Letter -FB38 FB3C Hebrew_Letter -FB3E Hebrew_Letter -FB40 FB41 Hebrew_Letter -FB43 FB44 Hebrew_Letter -FB46 FB4F Hebrew_Letter -FB50 FBB1 ALetter -FBD3 FD3D ALetter -FD50 FD8F ALetter -FD92 FDC7 ALetter -FDF0 FDFB ALetter -FE00 FE0F Extend -FE10 MidNum -FE13 MidLetter -FE14 MidNum -FE20 FE2F Extend -FE33 FE34 ExtendNumLet -FE4D FE4F ExtendNumLet -FE50 MidNum -FE52 MidNumLet -FE54 MidNum -FE55 MidLetter -FE70 FE74 ALetter -FE76 FEFC ALetter -FEFF Format -FF07 MidNumLet -FF0C MidNum -FF0E MidNumLet -FF1A MidLetter -FF1B MidNum -FF21 FF3A ALetter -FF3F ExtendNumLet -FF41 FF5A ALetter -FF66 FF9D Katakana -FF9E FF9F Extend -FFA0 FFBE ALetter -FFC2 FFC7 ALetter -FFCA FFCF ALetter -FFD2 FFD7 ALetter -FFDA FFDC ALetter -FFF9 FFFB Format -10000 1000B ALetter -1000D 10026 ALetter -10028 1003A ALetter -1003C 1003D ALetter -1003F 1004D ALetter -10050 1005D ALetter -10080 100FA ALetter -10140 10174 ALetter -101FD Extend -10280 1029C ALetter -102A0 102D0 ALetter -102E0 Extend -10300 1031F ALetter -10330 1034A ALetter -10350 10375 ALetter -10376 1037A Extend -10380 1039D ALetter -103A0 103C3 ALetter -103C8 103CF ALetter -103D1 103D5 ALetter -10400 1049D ALetter -104A0 104A9 Numeric -10500 10527 ALetter -10530 10563 ALetter -10600 10736 ALetter -10740 10755 ALetter -10760 10767 ALetter -10800 10805 ALetter -10808 ALetter -1080A 10835 ALetter -10837 10838 ALetter -1083C ALetter -1083F 10855 ALetter -10860 10876 ALetter -10880 1089E ALetter -108E0 108F2 ALetter -108F4 108F5 ALetter -10900 10915 ALetter -10920 10939 ALetter -10980 109B7 ALetter -109BE 109BF ALetter -10A00 ALetter -10A01 10A03 Extend -10A05 10A06 Extend -10A0C 10A0F Extend -10A10 10A13 ALetter -10A15 10A17 ALetter -10A19 10A33 ALetter -10A38 10A3A Extend -10A3F Extend -10A60 10A7C ALetter -10A80 10A9C ALetter -10AC0 10AC7 ALetter -10AC9 10AE4 ALetter -10AE5 10AE6 Extend -10B00 10B35 ALetter -10B40 10B55 ALetter -10B60 10B72 ALetter -10B80 10B91 ALetter -10C00 10C48 ALetter -10C80 10CB2 ALetter -10CC0 10CF2 ALetter -11000 11002 Extend -11003 11037 ALetter -11038 11046 Extend -11066 1106F Numeric -1107F 11082 Extend -11083 110AF ALetter -110B0 110BA Extend -110BD Format -110D0 110E8 ALetter -110F0 110F9 Numeric -11100 11102 Extend -11103 11126 ALetter -11127 11134 Extend -11136 1113F Numeric -11150 11172 ALetter -11173 Extend -11176 ALetter -11180 11182 Extend -11183 111B2 ALetter -111B3 111C0 Extend -111C1 111C4 ALetter -111CA 111CC Extend -111D0 111D9 Numeric -111DA ALetter -111DC ALetter -11200 11211 ALetter -11213 1122B ALetter -1122C 11237 Extend -11280 11286 ALetter -11288 ALetter -1128A 1128D ALetter -1128F 1129D ALetter -1129F 112A8 ALetter -112B0 112DE ALetter -112DF 112EA Extend -112F0 112F9 Numeric -11300 11303 Extend -11305 1130C ALetter -1130F 11310 ALetter -11313 11328 ALetter -1132A 11330 ALetter -11332 11333 ALetter -11335 11339 ALetter -1133C Extend -1133D ALetter -1133E 11344 Extend -11347 11348 Extend -1134B 1134D Extend -11350 ALetter -11357 Extend -1135D 11361 ALetter -11362 11363 Extend -11366 1136C Extend -11370 11374 Extend -11480 114AF ALetter -114B0 114C3 Extend -114C4 114C5 ALetter -114C7 ALetter -114D0 114D9 Numeric -11580 115AE ALetter -115AF 115B5 Extend -115B8 115C0 Extend -115D8 115DB ALetter -115DC 115DD Extend -11600 1162F ALetter -11630 11640 Extend -11644 ALetter -11650 11659 Numeric -11680 116AA ALetter -116AB 116B7 Extend -116C0 116C9 Numeric -1171D 1172B Extend -11730 11739 Numeric -118A0 118DF ALetter -118E0 118E9 Numeric -118FF ALetter -11AC0 11AF8 ALetter -12000 12399 ALetter -12400 1246E ALetter -12480 12543 ALetter -13000 1342E ALetter -14400 14646 ALetter -16800 16A38 ALetter -16A40 16A5E ALetter -16A60 16A69 Numeric -16AD0 16AED ALetter -16AF0 16AF4 Extend -16B00 16B2F ALetter -16B30 16B36 Extend -16B40 16B43 ALetter -16B50 16B59 Numeric -16B63 16B77 ALetter -16B7D 16B8F ALetter -16F00 16F44 ALetter -16F50 ALetter -16F51 16F7E Extend -16F8F 16F92 Extend -16F93 16F9F ALetter -1B000 Katakana -1BC00 1BC6A ALetter -1BC70 1BC7C ALetter -1BC80 1BC88 ALetter -1BC90 1BC99 ALetter -1BC9D 1BC9E Extend -1BCA0 1BCA3 Format -1D165 1D169 Extend -1D16D 1D172 Extend -1D173 1D17A Format -1D17B 1D182 Extend -1D185 1D18B Extend -1D1AA 1D1AD Extend -1D242 1D244 Extend -1D400 1D454 ALetter -1D456 1D49C ALetter -1D49E 1D49F ALetter -1D4A2 ALetter -1D4A5 1D4A6 ALetter -1D4A9 1D4AC ALetter -1D4AE 1D4B9 ALetter -1D4BB ALetter -1D4BD 1D4C3 ALetter -1D4C5 1D505 ALetter -1D507 1D50A ALetter -1D50D 1D514 ALetter -1D516 1D51C ALetter -1D51E 1D539 ALetter -1D53B 1D53E ALetter -1D540 1D544 ALetter -1D546 ALetter -1D54A 1D550 ALetter -1D552 1D6A5 ALetter -1D6A8 1D6C0 ALetter -1D6C2 1D6DA ALetter -1D6DC 1D6FA ALetter -1D6FC 1D714 ALetter -1D716 1D734 ALetter -1D736 1D74E ALetter -1D750 1D76E ALetter -1D770 1D788 ALetter -1D78A 1D7A8 ALetter -1D7AA 1D7C2 ALetter -1D7C4 1D7CB ALetter -1D7CE 1D7FF Numeric -1DA00 1DA36 Extend -1DA3B 1DA6C Extend -1DA75 Extend -1DA84 Extend -1DA9B 1DA9F Extend -1DAA1 1DAAF Extend -1E800 1E8C4 ALetter -1E8D0 1E8D6 Extend -1EE00 1EE03 ALetter -1EE05 1EE1F ALetter -1EE21 1EE22 ALetter -1EE24 ALetter -1EE27 ALetter -1EE29 1EE32 ALetter -1EE34 1EE37 ALetter -1EE39 ALetter -1EE3B ALetter -1EE42 ALetter -1EE47 ALetter -1EE49 ALetter -1EE4B ALetter -1EE4D 1EE4F ALetter -1EE51 1EE52 ALetter -1EE54 ALetter -1EE57 ALetter -1EE59 ALetter -1EE5B ALetter -1EE5D ALetter -1EE5F ALetter -1EE61 1EE62 ALetter -1EE64 ALetter -1EE67 1EE6A ALetter -1EE6C 1EE72 ALetter -1EE74 1EE77 ALetter -1EE79 1EE7C ALetter -1EE7E ALetter -1EE80 1EE89 ALetter -1EE8B 1EE9B ALetter -1EEA1 1EEA3 ALetter -1EEA5 1EEA9 ALetter -1EEAB 1EEBB ALetter -1F130 1F149 ALetter -1F150 1F169 ALetter -1F170 1F189 ALetter -1F1E6 1F1FF Regional_Indicator -E0001 Format -E0020 E007F Format -E0100 E01EF Extend -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/UCD.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/UCD.pl deleted file mode 100644 index 8f6cdaa9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/UCD.pl +++ /dev/null @@ -1,9178 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -# This file is for the use of Unicode::UCD - -# Highest legal Unicode code point -$Unicode::UCD::MAX_UNICODE_CODEPOINT = 0x10FFFF; - -# Hangul syllables -$Unicode::UCD::HANGUL_BEGIN = 0xAC00; -$Unicode::UCD::HANGUL_COUNT = 11172; - -# Keys are all the possible "prop=value" combinations, in loose form; values -# are the standard loose name for the 'value' part of the key -%Unicode::UCD::loose_to_standard_value = ( -'age=1.1' => '1.1', -'age=2.0' => '2.0', -'age=2.1' => '2.1', -'age=3.0' => '3.0', -'age=3.1' => '3.1', -'age=3.2' => '3.2', -'age=4.0' => '4.0', -'age=4.1' => '4.1', -'age=5.0' => '5.0', -'age=5.1' => '5.1', -'age=5.2' => '5.2', -'age=6.0' => '6.0', -'age=6.1' => '6.1', -'age=6.2' => '6.2', -'age=6.3' => '6.3', -'age=7.0' => '7.0', -'age=8.0' => '8.0', -'age=na' => 'na', -'age=unassigned' => 'na', -'age=v11' => '1.1', -'age=v20' => '2.0', -'age=v21' => '2.1', -'age=v30' => '3.0', -'age=v31' => '3.1', -'age=v32' => '3.2', -'age=v40' => '4.0', -'age=v41' => '4.1', -'age=v50' => '5.0', -'age=v51' => '5.1', -'age=v52' => '5.2', -'age=v60' => '6.0', -'age=v61' => '6.1', -'age=v62' => '6.2', -'age=v63' => '6.3', -'age=v70' => '7.0', -'age=v80' => '8.0', -'ahex=f' => 'n', -'ahex=false' => 'n', -'ahex=n' => 'n', -'ahex=no' => 'n', -'ahex=t' => 'y', -'ahex=true' => 'y', -'ahex=y' => 'y', -'ahex=yes' => 'y', -'alpha=f' => 'n', -'alpha=false' => 'n', -'alpha=n' => 'n', -'alpha=no' => 'n', -'alpha=t' => 'y', -'alpha=true' => 'y', -'alpha=y' => 'y', -'alpha=yes' => 'y', -'bc=al' => 'al', -'bc=an' => 'an', -'bc=arabicletter' => 'al', -'bc=arabicnumber' => 'an', -'bc=b' => 'b', -'bc=bn' => 'bn', -'bc=boundaryneutral' => 'bn', -'bc=commonseparator' => 'cs', -'bc=cs' => 'cs', -'bc=en' => 'en', -'bc=es' => 'es', -'bc=et' => 'et', -'bc=europeannumber' => 'en', -'bc=europeanseparator' => 'es', -'bc=europeanterminator' => 'et', -'bc=firststrongisolate' => 'fsi', -'bc=fsi' => 'fsi', -'bc=l' => 'l', -'bc=lefttoright' => 'l', -'bc=lefttorightembedding' => 'lre', -'bc=lefttorightisolate' => 'lri', -'bc=lefttorightoverride' => 'lro', -'bc=lre' => 'lre', -'bc=lri' => 'lri', -'bc=lro' => 'lro', -'bc=nonspacingmark' => 'nsm', -'bc=nsm' => 'nsm', -'bc=on' => 'on', -'bc=otherneutral' => 'on', -'bc=paragraphseparator' => 'b', -'bc=pdf' => 'pdf', -'bc=pdi' => 'pdi', -'bc=popdirectionalformat' => 'pdf', -'bc=popdirectionalisolate' => 'pdi', -'bc=r' => 'r', -'bc=righttoleft' => 'r', -'bc=righttoleftembedding' => 'rle', -'bc=righttoleftisolate' => 'rli', -'bc=righttoleftoverride' => 'rlo', -'bc=rle' => 'rle', -'bc=rli' => 'rli', -'bc=rlo' => 'rlo', -'bc=s' => 's', -'bc=segmentseparator' => 's', -'bc=whitespace' => 'ws', -'bc=ws' => 'ws', -'bidic=f' => 'n', -'bidic=false' => 'n', -'bidic=n' => 'n', -'bidic=no' => 'n', -'bidic=t' => 'y', -'bidic=true' => 'y', -'bidic=y' => 'y', -'bidic=yes' => 'y', -'bidim=f' => 'n', -'bidim=false' => 'n', -'bidim=n' => 'n', -'bidim=no' => 'n', -'bidim=t' => 'y', -'bidim=true' => 'y', -'bidim=y' => 'y', -'bidim=yes' => 'y', -'blk=aegeannumbers' => 'aegeannumbers', -'blk=ahom' => 'ahom', -'blk=alchemical' => 'alchemical', -'blk=alchemicalsymbols' => 'alchemical', -'blk=alphabeticpf' => 'alphabeticpf', -'blk=alphabeticpresentationforms' => 'alphabeticpf', -'blk=anatolianhieroglyphs' => 'anatolianhieroglyphs', -'blk=ancientgreekmusic' => 'ancientgreekmusic', -'blk=ancientgreekmusicalnotation' => 'ancientgreekmusic', -'blk=ancientgreeknumbers' => 'ancientgreeknumbers', -'blk=ancientsymbols' => 'ancientsymbols', -'blk=arabic' => 'arabic', -'blk=arabicexta' => 'arabicexta', -'blk=arabicextendeda' => 'arabicexta', -'blk=arabicmath' => 'arabicmath', -'blk=arabicmathematicalalphabeticsymbols' => 'arabicmath', -'blk=arabicpfa' => 'arabicpfa', -'blk=arabicpfb' => 'arabicpfb', -'blk=arabicpresentationformsa' => 'arabicpfa', -'blk=arabicpresentationformsb' => 'arabicpfb', -'blk=arabicsup' => 'arabicsup', -'blk=arabicsupplement' => 'arabicsup', -'blk=armenian' => 'armenian', -'blk=arrows' => 'arrows', -'blk=ascii' => 'ascii', -'blk=avestan' => 'avestan', -'blk=balinese' => 'balinese', -'blk=bamum' => 'bamum', -'blk=bamumsup' => 'bamumsup', -'blk=bamumsupplement' => 'bamumsup', -'blk=basiclatin' => 'ascii', -'blk=bassavah' => 'bassavah', -'blk=batak' => 'batak', -'blk=bengali' => 'bengali', -'blk=blockelements' => 'blockelements', -'blk=bopomofo' => 'bopomofo', -'blk=bopomofoext' => 'bopomofoext', -'blk=bopomofoextended' => 'bopomofoext', -'blk=boxdrawing' => 'boxdrawing', -'blk=brahmi' => 'brahmi', -'blk=braille' => 'braille', -'blk=braillepatterns' => 'braille', -'blk=buginese' => 'buginese', -'blk=buhid' => 'buhid', -'blk=byzantinemusic' => 'byzantinemusic', -'blk=byzantinemusicalsymbols' => 'byzantinemusic', -'blk=canadiansyllabics' => 'ucas', -'blk=carian' => 'carian', -'blk=caucasianalbanian' => 'caucasianalbanian', -'blk=chakma' => 'chakma', -'blk=cham' => 'cham', -'blk=cherokee' => 'cherokee', -'blk=cherokeesup' => 'cherokeesup', -'blk=cherokeesupplement' => 'cherokeesup', -'blk=cjk' => 'cjk', -'blk=cjkcompat' => 'cjkcompat', -'blk=cjkcompatforms' => 'cjkcompatforms', -'blk=cjkcompatibility' => 'cjkcompat', -'blk=cjkcompatibilityforms' => 'cjkcompatforms', -'blk=cjkcompatibilityideographs' => 'cjkcompatideographs', -'blk=cjkcompatibilityideographssupplement' => 'cjkcompatideographssup', -'blk=cjkcompatideographs' => 'cjkcompatideographs', -'blk=cjkcompatideographssup' => 'cjkcompatideographssup', -'blk=cjkexta' => 'cjkexta', -'blk=cjkextb' => 'cjkextb', -'blk=cjkextc' => 'cjkextc', -'blk=cjkextd' => 'cjkextd', -'blk=cjkexte' => 'cjkexte', -'blk=cjkradicalssup' => 'cjkradicalssup', -'blk=cjkradicalssupplement' => 'cjkradicalssup', -'blk=cjkstrokes' => 'cjkstrokes', -'blk=cjksymbols' => 'cjksymbols', -'blk=cjksymbolsandpunctuation' => 'cjksymbols', -'blk=cjkunifiedideographs' => 'cjk', -'blk=cjkunifiedideographsextensiona' => 'cjkexta', -'blk=cjkunifiedideographsextensionb' => 'cjkextb', -'blk=cjkunifiedideographsextensionc' => 'cjkextc', -'blk=cjkunifiedideographsextensiond' => 'cjkextd', -'blk=cjkunifiedideographsextensione' => 'cjkexte', -'blk=combiningdiacriticalmarks' => 'diacriticals', -'blk=combiningdiacriticalmarksextended' => 'diacriticalsext', -'blk=combiningdiacriticalmarksforsymbols' => 'diacriticalsforsymbols', -'blk=combiningdiacriticalmarkssupplement' => 'diacriticalssup', -'blk=combininghalfmarks' => 'halfmarks', -'blk=combiningmarksforsymbols' => 'diacriticalsforsymbols', -'blk=commonindicnumberforms' => 'indicnumberforms', -'blk=compatjamo' => 'compatjamo', -'blk=controlpictures' => 'controlpictures', -'blk=coptic' => 'coptic', -'blk=copticepactnumbers' => 'copticepactnumbers', -'blk=countingrod' => 'countingrod', -'blk=countingrodnumerals' => 'countingrod', -'blk=cuneiform' => 'cuneiform', -'blk=cuneiformnumbers' => 'cuneiformnumbers', -'blk=cuneiformnumbersandpunctuation' => 'cuneiformnumbers', -'blk=currencysymbols' => 'currencysymbols', -'blk=cypriotsyllabary' => 'cypriotsyllabary', -'blk=cyrillic' => 'cyrillic', -'blk=cyrillicexta' => 'cyrillicexta', -'blk=cyrillicextb' => 'cyrillicextb', -'blk=cyrillicextendeda' => 'cyrillicexta', -'blk=cyrillicextendedb' => 'cyrillicextb', -'blk=cyrillicsup' => 'cyrillicsup', -'blk=cyrillicsupplement' => 'cyrillicsup', -'blk=cyrillicsupplementary' => 'cyrillicsup', -'blk=deseret' => 'deseret', -'blk=devanagari' => 'devanagari', -'blk=devanagariext' => 'devanagariext', -'blk=devanagariextended' => 'devanagariext', -'blk=diacriticals' => 'diacriticals', -'blk=diacriticalsext' => 'diacriticalsext', -'blk=diacriticalsforsymbols' => 'diacriticalsforsymbols', -'blk=diacriticalssup' => 'diacriticalssup', -'blk=dingbats' => 'dingbats', -'blk=domino' => 'domino', -'blk=dominotiles' => 'domino', -'blk=duployan' => 'duployan', -'blk=earlydynasticcuneiform' => 'earlydynasticcuneiform', -'blk=egyptianhieroglyphs' => 'egyptianhieroglyphs', -'blk=elbasan' => 'elbasan', -'blk=emoticons' => 'emoticons', -'blk=enclosedalphanum' => 'enclosedalphanum', -'blk=enclosedalphanumerics' => 'enclosedalphanum', -'blk=enclosedalphanumericsupplement' => 'enclosedalphanumsup', -'blk=enclosedalphanumsup' => 'enclosedalphanumsup', -'blk=enclosedcjk' => 'enclosedcjk', -'blk=enclosedcjklettersandmonths' => 'enclosedcjk', -'blk=enclosedideographicsup' => 'enclosedideographicsup', -'blk=enclosedideographicsupplement' => 'enclosedideographicsup', -'blk=ethiopic' => 'ethiopic', -'blk=ethiopicext' => 'ethiopicext', -'blk=ethiopicexta' => 'ethiopicexta', -'blk=ethiopicextended' => 'ethiopicext', -'blk=ethiopicextendeda' => 'ethiopicexta', -'blk=ethiopicsup' => 'ethiopicsup', -'blk=ethiopicsupplement' => 'ethiopicsup', -'blk=generalpunctuation' => 'punctuation', -'blk=geometricshapes' => 'geometricshapes', -'blk=geometricshapesext' => 'geometricshapesext', -'blk=geometricshapesextended' => 'geometricshapesext', -'blk=georgian' => 'georgian', -'blk=georgiansup' => 'georgiansup', -'blk=georgiansupplement' => 'georgiansup', -'blk=glagolitic' => 'glagolitic', -'blk=gothic' => 'gothic', -'blk=grantha' => 'grantha', -'blk=greek' => 'greek', -'blk=greekandcoptic' => 'greek', -'blk=greekext' => 'greekext', -'blk=greekextended' => 'greekext', -'blk=gujarati' => 'gujarati', -'blk=gurmukhi' => 'gurmukhi', -'blk=halfandfullforms' => 'halfandfullforms', -'blk=halfmarks' => 'halfmarks', -'blk=halfwidthandfullwidthforms' => 'halfandfullforms', -'blk=hangul' => 'hangul', -'blk=hangulcompatibilityjamo' => 'compatjamo', -'blk=hanguljamo' => 'jamo', -'blk=hanguljamoextendeda' => 'jamoexta', -'blk=hanguljamoextendedb' => 'jamoextb', -'blk=hangulsyllables' => 'hangul', -'blk=hanunoo' => 'hanunoo', -'blk=hatran' => 'hatran', -'blk=hebrew' => 'hebrew', -'blk=highprivateusesurrogates' => 'highpusurrogates', -'blk=highpusurrogates' => 'highpusurrogates', -'blk=highsurrogates' => 'highsurrogates', -'blk=hiragana' => 'hiragana', -'blk=idc' => 'idc', -'blk=ideographicdescriptioncharacters' => 'idc', -'blk=imperialaramaic' => 'imperialaramaic', -'blk=indicnumberforms' => 'indicnumberforms', -'blk=inscriptionalpahlavi' => 'inscriptionalpahlavi', -'blk=inscriptionalparthian' => 'inscriptionalparthian', -'blk=ipaext' => 'ipaext', -'blk=ipaextensions' => 'ipaext', -'blk=jamo' => 'jamo', -'blk=jamoexta' => 'jamoexta', -'blk=jamoextb' => 'jamoextb', -'blk=javanese' => 'javanese', -'blk=kaithi' => 'kaithi', -'blk=kanasup' => 'kanasup', -'blk=kanasupplement' => 'kanasup', -'blk=kanbun' => 'kanbun', -'blk=kangxi' => 'kangxi', -'blk=kangxiradicals' => 'kangxi', -'blk=kannada' => 'kannada', -'blk=katakana' => 'katakana', -'blk=katakanaext' => 'katakanaext', -'blk=katakanaphoneticextensions' => 'katakanaext', -'blk=kayahli' => 'kayahli', -'blk=kharoshthi' => 'kharoshthi', -'blk=khmer' => 'khmer', -'blk=khmersymbols' => 'khmersymbols', -'blk=khojki' => 'khojki', -'blk=khudawadi' => 'khudawadi', -'blk=lao' => 'lao', -'blk=latin1' => 'latin1sup', -'blk=latin1sup' => 'latin1sup', -'blk=latin1supplement' => 'latin1sup', -'blk=latinexta' => 'latinexta', -'blk=latinextadditional' => 'latinextadditional', -'blk=latinextb' => 'latinextb', -'blk=latinextc' => 'latinextc', -'blk=latinextd' => 'latinextd', -'blk=latinexte' => 'latinexte', -'blk=latinextendeda' => 'latinexta', -'blk=latinextendedadditional' => 'latinextadditional', -'blk=latinextendedb' => 'latinextb', -'blk=latinextendedc' => 'latinextc', -'blk=latinextendedd' => 'latinextd', -'blk=latinextendede' => 'latinexte', -'blk=lepcha' => 'lepcha', -'blk=letterlikesymbols' => 'letterlikesymbols', -'blk=limbu' => 'limbu', -'blk=lineara' => 'lineara', -'blk=linearbideograms' => 'linearbideograms', -'blk=linearbsyllabary' => 'linearbsyllabary', -'blk=lisu' => 'lisu', -'blk=lowsurrogates' => 'lowsurrogates', -'blk=lycian' => 'lycian', -'blk=lydian' => 'lydian', -'blk=mahajani' => 'mahajani', -'blk=mahjong' => 'mahjong', -'blk=mahjongtiles' => 'mahjong', -'blk=malayalam' => 'malayalam', -'blk=mandaic' => 'mandaic', -'blk=manichaean' => 'manichaean', -'blk=mathalphanum' => 'mathalphanum', -'blk=mathematicalalphanumericsymbols' => 'mathalphanum', -'blk=mathematicaloperators' => 'mathoperators', -'blk=mathoperators' => 'mathoperators', -'blk=meeteimayek' => 'meeteimayek', -'blk=meeteimayekext' => 'meeteimayekext', -'blk=meeteimayekextensions' => 'meeteimayekext', -'blk=mendekikakui' => 'mendekikakui', -'blk=meroiticcursive' => 'meroiticcursive', -'blk=meroitichieroglyphs' => 'meroitichieroglyphs', -'blk=miao' => 'miao', -'blk=miscarrows' => 'miscarrows', -'blk=miscellaneousmathematicalsymbolsa' => 'miscmathsymbolsa', -'blk=miscellaneousmathematicalsymbolsb' => 'miscmathsymbolsb', -'blk=miscellaneoussymbols' => 'miscsymbols', -'blk=miscellaneoussymbolsandarrows' => 'miscarrows', -'blk=miscellaneoussymbolsandpictographs' => 'miscpictographs', -'blk=miscellaneoustechnical' => 'misctechnical', -'blk=miscmathsymbolsa' => 'miscmathsymbolsa', -'blk=miscmathsymbolsb' => 'miscmathsymbolsb', -'blk=miscpictographs' => 'miscpictographs', -'blk=miscsymbols' => 'miscsymbols', -'blk=misctechnical' => 'misctechnical', -'blk=modi' => 'modi', -'blk=modifierletters' => 'modifierletters', -'blk=modifiertoneletters' => 'modifiertoneletters', -'blk=mongolian' => 'mongolian', -'blk=mro' => 'mro', -'blk=multani' => 'multani', -'blk=music' => 'music', -'blk=musicalsymbols' => 'music', -'blk=myanmar' => 'myanmar', -'blk=myanmarexta' => 'myanmarexta', -'blk=myanmarextb' => 'myanmarextb', -'blk=myanmarextendeda' => 'myanmarexta', -'blk=myanmarextendedb' => 'myanmarextb', -'blk=nabataean' => 'nabataean', -'blk=nb' => 'nb', -'blk=newtailue' => 'newtailue', -'blk=nko' => 'nko', -'blk=noblock' => 'nb', -'blk=numberforms' => 'numberforms', -'blk=ocr' => 'ocr', -'blk=ogham' => 'ogham', -'blk=olchiki' => 'olchiki', -'blk=oldhungarian' => 'oldhungarian', -'blk=olditalic' => 'olditalic', -'blk=oldnortharabian' => 'oldnortharabian', -'blk=oldpermic' => 'oldpermic', -'blk=oldpersian' => 'oldpersian', -'blk=oldsoutharabian' => 'oldsoutharabian', -'blk=oldturkic' => 'oldturkic', -'blk=opticalcharacterrecognition' => 'ocr', -'blk=oriya' => 'oriya', -'blk=ornamentaldingbats' => 'ornamentaldingbats', -'blk=osmanya' => 'osmanya', -'blk=pahawhhmong' => 'pahawhhmong', -'blk=palmyrene' => 'palmyrene', -'blk=paucinhau' => 'paucinhau', -'blk=phagspa' => 'phagspa', -'blk=phaistos' => 'phaistos', -'blk=phaistosdisc' => 'phaistos', -'blk=phoenician' => 'phoenician', -'blk=phoneticext' => 'phoneticext', -'blk=phoneticextensions' => 'phoneticext', -'blk=phoneticextensionssupplement' => 'phoneticextsup', -'blk=phoneticextsup' => 'phoneticextsup', -'blk=playingcards' => 'playingcards', -'blk=privateuse' => 'pua', -'blk=privateusearea' => 'pua', -'blk=psalterpahlavi' => 'psalterpahlavi', -'blk=pua' => 'pua', -'blk=punctuation' => 'punctuation', -'blk=rejang' => 'rejang', -'blk=rumi' => 'rumi', -'blk=ruminumeralsymbols' => 'rumi', -'blk=runic' => 'runic', -'blk=samaritan' => 'samaritan', -'blk=saurashtra' => 'saurashtra', -'blk=sharada' => 'sharada', -'blk=shavian' => 'shavian', -'blk=shorthandformatcontrols' => 'shorthandformatcontrols', -'blk=siddham' => 'siddham', -'blk=sinhala' => 'sinhala', -'blk=sinhalaarchaicnumbers' => 'sinhalaarchaicnumbers', -'blk=smallforms' => 'smallforms', -'blk=smallformvariants' => 'smallforms', -'blk=sorasompeng' => 'sorasompeng', -'blk=spacingmodifierletters' => 'modifierletters', -'blk=specials' => 'specials', -'blk=sundanese' => 'sundanese', -'blk=sundanesesup' => 'sundanesesup', -'blk=sundanesesupplement' => 'sundanesesup', -'blk=suparrowsa' => 'suparrowsa', -'blk=suparrowsb' => 'suparrowsb', -'blk=suparrowsc' => 'suparrowsc', -'blk=superandsub' => 'superandsub', -'blk=superscriptsandsubscripts' => 'superandsub', -'blk=supmathoperators' => 'supmathoperators', -'blk=supplementalarrowsa' => 'suparrowsa', -'blk=supplementalarrowsb' => 'suparrowsb', -'blk=supplementalarrowsc' => 'suparrowsc', -'blk=supplementalmathematicaloperators' => 'supmathoperators', -'blk=supplementalpunctuation' => 'suppunctuation', -'blk=supplementalsymbolsandpictographs' => 'supsymbolsandpictographs', -'blk=supplementaryprivateuseareaa' => 'suppuaa', -'blk=supplementaryprivateuseareab' => 'suppuab', -'blk=suppuaa' => 'suppuaa', -'blk=suppuab' => 'suppuab', -'blk=suppunctuation' => 'suppunctuation', -'blk=supsymbolsandpictographs' => 'supsymbolsandpictographs', -'blk=suttonsignwriting' => 'suttonsignwriting', -'blk=sylotinagri' => 'sylotinagri', -'blk=syriac' => 'syriac', -'blk=tagalog' => 'tagalog', -'blk=tagbanwa' => 'tagbanwa', -'blk=tags' => 'tags', -'blk=taile' => 'taile', -'blk=taitham' => 'taitham', -'blk=taiviet' => 'taiviet', -'blk=taixuanjing' => 'taixuanjing', -'blk=taixuanjingsymbols' => 'taixuanjing', -'blk=takri' => 'takri', -'blk=tamil' => 'tamil', -'blk=telugu' => 'telugu', -'blk=thaana' => 'thaana', -'blk=thai' => 'thai', -'blk=tibetan' => 'tibetan', -'blk=tifinagh' => 'tifinagh', -'blk=tirhuta' => 'tirhuta', -'blk=transportandmap' => 'transportandmap', -'blk=transportandmapsymbols' => 'transportandmap', -'blk=ucas' => 'ucas', -'blk=ucasext' => 'ucasext', -'blk=ugaritic' => 'ugaritic', -'blk=unifiedcanadianaboriginalsyllabics' => 'ucas', -'blk=unifiedcanadianaboriginalsyllabicsextended' => 'ucasext', -'blk=vai' => 'vai', -'blk=variationselectors' => 'vs', -'blk=variationselectorssupplement' => 'vssup', -'blk=vedicext' => 'vedicext', -'blk=vedicextensions' => 'vedicext', -'blk=verticalforms' => 'verticalforms', -'blk=vs' => 'vs', -'blk=vssup' => 'vssup', -'blk=warangciti' => 'warangciti', -'blk=yijing' => 'yijing', -'blk=yijinghexagramsymbols' => 'yijing', -'blk=yiradicals' => 'yiradicals', -'blk=yisyllables' => 'yisyllables', -'bpt=c' => 'c', -'bpt=close' => 'c', -'bpt=n' => 'n', -'bpt=none' => 'n', -'bpt=o' => 'o', -'bpt=open' => 'o', -'cased=f' => 'n', -'cased=false' => 'n', -'cased=n' => 'n', -'cased=no' => 'n', -'cased=t' => 'y', -'cased=true' => 'y', -'cased=y' => 'y', -'cased=yes' => 'y', -'ccc=0' => 'nr', -'ccc=1' => 'ov', -'ccc=10' => 'ccc10', -'ccc=103' => 'ccc103', -'ccc=107' => 'ccc107', -'ccc=11' => 'ccc11', -'ccc=118' => 'ccc118', -'ccc=12' => 'ccc12', -'ccc=122' => 'ccc122', -'ccc=129' => 'ccc129', -'ccc=13' => 'ccc13', -'ccc=130' => 'ccc130', -'ccc=132' => 'ccc132', -'ccc=133' => 'ccc133', -'ccc=14' => 'ccc14', -'ccc=15' => 'ccc15', -'ccc=16' => 'ccc16', -'ccc=17' => 'ccc17', -'ccc=18' => 'ccc18', -'ccc=19' => 'ccc19', -'ccc=20' => 'ccc20', -'ccc=200' => 'atbl', -'ccc=202' => 'atb', -'ccc=21' => 'ccc21', -'ccc=214' => 'ata', -'ccc=216' => 'atar', -'ccc=218' => 'bl', -'ccc=22' => 'ccc22', -'ccc=220' => 'b', -'ccc=222' => 'br', -'ccc=224' => 'l', -'ccc=226' => 'r', -'ccc=228' => 'al', -'ccc=23' => 'ccc23', -'ccc=230' => 'a', -'ccc=232' => 'ar', -'ccc=233' => 'db', -'ccc=234' => 'da', -'ccc=24' => 'ccc24', -'ccc=240' => 'is', -'ccc=25' => 'ccc25', -'ccc=26' => 'ccc26', -'ccc=27' => 'ccc27', -'ccc=28' => 'ccc28', -'ccc=29' => 'ccc29', -'ccc=30' => 'ccc30', -'ccc=31' => 'ccc31', -'ccc=32' => 'ccc32', -'ccc=33' => 'ccc33', -'ccc=34' => 'ccc34', -'ccc=35' => 'ccc35', -'ccc=36' => 'ccc36', -'ccc=7' => 'nk', -'ccc=8' => 'kv', -'ccc=84' => 'ccc84', -'ccc=9' => 'vr', -'ccc=91' => 'ccc91', -'ccc=a' => 'a', -'ccc=above' => 'a', -'ccc=aboveleft' => 'al', -'ccc=aboveright' => 'ar', -'ccc=al' => 'al', -'ccc=ar' => 'ar', -'ccc=ata' => 'ata', -'ccc=atar' => 'atar', -'ccc=atb' => 'atb', -'ccc=atbl' => 'atbl', -'ccc=attachedabove' => 'ata', -'ccc=attachedaboveright' => 'atar', -'ccc=attachedbelow' => 'atb', -'ccc=attachedbelowleft' => 'atbl', -'ccc=b' => 'b', -'ccc=below' => 'b', -'ccc=belowleft' => 'bl', -'ccc=belowright' => 'br', -'ccc=bl' => 'bl', -'ccc=br' => 'br', -'ccc=ccc10' => 'ccc10', -'ccc=ccc103' => 'ccc103', -'ccc=ccc107' => 'ccc107', -'ccc=ccc11' => 'ccc11', -'ccc=ccc118' => 'ccc118', -'ccc=ccc12' => 'ccc12', -'ccc=ccc122' => 'ccc122', -'ccc=ccc129' => 'ccc129', -'ccc=ccc13' => 'ccc13', -'ccc=ccc130' => 'ccc130', -'ccc=ccc132' => 'ccc132', -'ccc=ccc133' => 'ccc133', -'ccc=ccc14' => 'ccc14', -'ccc=ccc15' => 'ccc15', -'ccc=ccc16' => 'ccc16', -'ccc=ccc17' => 'ccc17', -'ccc=ccc18' => 'ccc18', -'ccc=ccc19' => 'ccc19', -'ccc=ccc20' => 'ccc20', -'ccc=ccc21' => 'ccc21', -'ccc=ccc22' => 'ccc22', -'ccc=ccc23' => 'ccc23', -'ccc=ccc24' => 'ccc24', -'ccc=ccc25' => 'ccc25', -'ccc=ccc26' => 'ccc26', -'ccc=ccc27' => 'ccc27', -'ccc=ccc28' => 'ccc28', -'ccc=ccc29' => 'ccc29', -'ccc=ccc30' => 'ccc30', -'ccc=ccc31' => 'ccc31', -'ccc=ccc32' => 'ccc32', -'ccc=ccc33' => 'ccc33', -'ccc=ccc34' => 'ccc34', -'ccc=ccc35' => 'ccc35', -'ccc=ccc36' => 'ccc36', -'ccc=ccc84' => 'ccc84', -'ccc=ccc91' => 'ccc91', -'ccc=da' => 'da', -'ccc=db' => 'db', -'ccc=doubleabove' => 'da', -'ccc=doublebelow' => 'db', -'ccc=iotasubscript' => 'is', -'ccc=is' => 'is', -'ccc=kanavoicing' => 'kv', -'ccc=kv' => 'kv', -'ccc=l' => 'l', -'ccc=left' => 'l', -'ccc=nk' => 'nk', -'ccc=notreordered' => 'nr', -'ccc=nr' => 'nr', -'ccc=nukta' => 'nk', -'ccc=ov' => 'ov', -'ccc=overlay' => 'ov', -'ccc=r' => 'r', -'ccc=right' => 'r', -'ccc=virama' => 'vr', -'ccc=vr' => 'vr', -'ce=f' => 'n', -'ce=false' => 'n', -'ce=n' => 'n', -'ce=no' => 'n', -'ce=t' => 'y', -'ce=true' => 'y', -'ce=y' => 'y', -'ce=yes' => 'y', -'ci=f' => 'n', -'ci=false' => 'n', -'ci=n' => 'n', -'ci=no' => 'n', -'ci=t' => 'y', -'ci=true' => 'y', -'ci=y' => 'y', -'ci=yes' => 'y', -'compex=f' => 'n', -'compex=false' => 'n', -'compex=n' => 'n', -'compex=no' => 'n', -'compex=t' => 'y', -'compex=true' => 'y', -'compex=y' => 'y', -'compex=yes' => 'y', -'cwcf=f' => 'n', -'cwcf=false' => 'n', -'cwcf=n' => 'n', -'cwcf=no' => 'n', -'cwcf=t' => 'y', -'cwcf=true' => 'y', -'cwcf=y' => 'y', -'cwcf=yes' => 'y', -'cwcm=f' => 'n', -'cwcm=false' => 'n', -'cwcm=n' => 'n', -'cwcm=no' => 'n', -'cwcm=t' => 'y', -'cwcm=true' => 'y', -'cwcm=y' => 'y', -'cwcm=yes' => 'y', -'cwkcf=f' => 'n', -'cwkcf=false' => 'n', -'cwkcf=n' => 'n', -'cwkcf=no' => 'n', -'cwkcf=t' => 'y', -'cwkcf=true' => 'y', -'cwkcf=y' => 'y', -'cwkcf=yes' => 'y', -'cwl=f' => 'n', -'cwl=false' => 'n', -'cwl=n' => 'n', -'cwl=no' => 'n', -'cwl=t' => 'y', -'cwl=true' => 'y', -'cwl=y' => 'y', -'cwl=yes' => 'y', -'cwt=f' => 'n', -'cwt=false' => 'n', -'cwt=n' => 'n', -'cwt=no' => 'n', -'cwt=t' => 'y', -'cwt=true' => 'y', -'cwt=y' => 'y', -'cwt=yes' => 'y', -'cwu=f' => 'n', -'cwu=false' => 'n', -'cwu=n' => 'n', -'cwu=no' => 'n', -'cwu=t' => 'y', -'cwu=true' => 'y', -'cwu=y' => 'y', -'cwu=yes' => 'y', -'dash=f' => 'n', -'dash=false' => 'n', -'dash=n' => 'n', -'dash=no' => 'n', -'dash=t' => 'y', -'dash=true' => 'y', -'dash=y' => 'y', -'dash=yes' => 'y', -'dep=f' => 'n', -'dep=false' => 'n', -'dep=n' => 'n', -'dep=no' => 'n', -'dep=t' => 'y', -'dep=true' => 'y', -'dep=y' => 'y', -'dep=yes' => 'y', -'di=f' => 'n', -'di=false' => 'n', -'di=n' => 'n', -'di=no' => 'n', -'di=t' => 'y', -'di=true' => 'y', -'di=y' => 'y', -'di=yes' => 'y', -'dia=f' => 'n', -'dia=false' => 'n', -'dia=n' => 'n', -'dia=no' => 'n', -'dia=t' => 'y', -'dia=true' => 'y', -'dia=y' => 'y', -'dia=yes' => 'y', -'dt=can' => 'can', -'dt=canonical' => 'can', -'dt=circle' => 'enc', -'dt=com' => 'com', -'dt=compat' => 'com', -'dt=enc' => 'enc', -'dt=fin' => 'fin', -'dt=final' => 'fin', -'dt=font' => 'font', -'dt=fra' => 'fra', -'dt=fraction' => 'fra', -'dt=init' => 'init', -'dt=initial' => 'init', -'dt=iso' => 'iso', -'dt=isolated' => 'iso', -'dt=med' => 'med', -'dt=medial' => 'med', -'dt=nar' => 'nar', -'dt=narrow' => 'nar', -'dt=nb' => 'nb', -'dt=nobreak' => 'nb', -'dt=noncanon' => 'noncanon', -'dt=noncanonical' => 'noncanon', -'dt=none' => 'none', -'dt=small' => 'sml', -'dt=sml' => 'sml', -'dt=sqr' => 'sqr', -'dt=square' => 'sqr', -'dt=sub' => 'sub', -'dt=sup' => 'sup', -'dt=super' => 'sup', -'dt=vert' => 'vert', -'dt=vertical' => 'vert', -'dt=wide' => 'wide', -'ea=a' => 'a', -'ea=ambiguous' => 'a', -'ea=f' => 'f', -'ea=fullwidth' => 'f', -'ea=h' => 'h', -'ea=halfwidth' => 'h', -'ea=n' => 'n', -'ea=na' => 'na', -'ea=narrow' => 'na', -'ea=neutral' => 'n', -'ea=w' => 'w', -'ea=wide' => 'w', -'ext=f' => 'n', -'ext=false' => 'n', -'ext=n' => 'n', -'ext=no' => 'n', -'ext=t' => 'y', -'ext=true' => 'y', -'ext=y' => 'y', -'ext=yes' => 'y', -'gc=c' => 'c', -'gc=casedletter' => 'lc', -'gc=cc' => 'cc', -'gc=cf' => 'cf', -'gc=closepunctuation' => 'pe', -'gc=cn' => 'cn', -'gc=cntrl' => 'cc', -'gc=co' => 'co', -'gc=combiningmark' => 'm', -'gc=connectorpunctuation' => 'pc', -'gc=control' => 'cc', -'gc=cs' => 'cs', -'gc=currencysymbol' => 'sc', -'gc=dashpunctuation' => 'pd', -'gc=decimalnumber' => 'nd', -'gc=digit' => 'nd', -'gc=enclosingmark' => 'me', -'gc=finalpunctuation' => 'pf', -'gc=format' => 'cf', -'gc=initialpunctuation' => 'pi', -'gc=l' => 'l', -'gc=l&' => 'lc', -'gc=l_' => 'lc', -'gc=lc' => 'lc', -'gc=letter' => 'l', -'gc=letternumber' => 'nl', -'gc=lineseparator' => 'zl', -'gc=ll' => 'll', -'gc=lm' => 'lm', -'gc=lo' => 'lo', -'gc=lowercaseletter' => 'll', -'gc=lt' => 'lt', -'gc=lu' => 'lu', -'gc=m' => 'm', -'gc=mark' => 'm', -'gc=mathsymbol' => 'sm', -'gc=mc' => 'mc', -'gc=me' => 'me', -'gc=mn' => 'mn', -'gc=modifierletter' => 'lm', -'gc=modifiersymbol' => 'sk', -'gc=n' => 'n', -'gc=nd' => 'nd', -'gc=nl' => 'nl', -'gc=no' => 'no', -'gc=nonspacingmark' => 'mn', -'gc=number' => 'n', -'gc=openpunctuation' => 'ps', -'gc=other' => 'c', -'gc=otherletter' => 'lo', -'gc=othernumber' => 'no', -'gc=otherpunctuation' => 'po', -'gc=othersymbol' => 'so', -'gc=p' => 'p', -'gc=paragraphseparator' => 'zp', -'gc=pc' => 'pc', -'gc=pd' => 'pd', -'gc=pe' => 'pe', -'gc=pf' => 'pf', -'gc=pi' => 'pi', -'gc=po' => 'po', -'gc=privateuse' => 'co', -'gc=ps' => 'ps', -'gc=punct' => 'p', -'gc=punctuation' => 'p', -'gc=s' => 's', -'gc=sc' => 'sc', -'gc=separator' => 'z', -'gc=sk' => 'sk', -'gc=sm' => 'sm', -'gc=so' => 'so', -'gc=spaceseparator' => 'zs', -'gc=spacingmark' => 'mc', -'gc=surrogate' => 'cs', -'gc=symbol' => 's', -'gc=titlecaseletter' => 'lt', -'gc=unassigned' => 'cn', -'gc=uppercaseletter' => 'lu', -'gc=z' => 'z', -'gc=zl' => 'zl', -'gc=zp' => 'zp', -'gc=zs' => 'zs', -'gcb=cn' => 'cn', -'gcb=control' => 'cn', -'gcb=cr' => 'cr', -'gcb=ex' => 'ex', -'gcb=extend' => 'ex', -'gcb=l' => 'l', -'gcb=lf' => 'lf', -'gcb=lv' => 'lv', -'gcb=lvt' => 'lvt', -'gcb=other' => 'xx', -'gcb=pp' => 'pp', -'gcb=prepend' => 'pp', -'gcb=regionalindicator' => 'ri', -'gcb=ri' => 'ri', -'gcb=sm' => 'sm', -'gcb=spacingmark' => 'sm', -'gcb=t' => 't', -'gcb=v' => 'v', -'gcb=xx' => 'xx', -'grbase=f' => 'n', -'grbase=false' => 'n', -'grbase=n' => 'n', -'grbase=no' => 'n', -'grbase=t' => 'y', -'grbase=true' => 'y', -'grbase=y' => 'y', -'grbase=yes' => 'y', -'grext=f' => 'n', -'grext=false' => 'n', -'grext=n' => 'n', -'grext=no' => 'n', -'grext=t' => 'y', -'grext=true' => 'y', -'grext=y' => 'y', -'grext=yes' => 'y', -'hex=f' => 'n', -'hex=false' => 'n', -'hex=n' => 'n', -'hex=no' => 'n', -'hex=t' => 'y', -'hex=true' => 'y', -'hex=y' => 'y', -'hex=yes' => 'y', -'hst=l' => 'l', -'hst=leadingjamo' => 'l', -'hst=lv' => 'lv', -'hst=lvsyllable' => 'lv', -'hst=lvt' => 'lvt', -'hst=lvtsyllable' => 'lvt', -'hst=na' => 'na', -'hst=notapplicable' => 'na', -'hst=t' => 't', -'hst=trailingjamo' => 't', -'hst=v' => 'v', -'hst=voweljamo' => 'v', -'hyphen=f' => 'n', -'hyphen=false' => 'n', -'hyphen=n' => 'n', -'hyphen=no' => 'n', -'hyphen=t' => 'y', -'hyphen=true' => 'y', -'hyphen=y' => 'y', -'hyphen=yes' => 'y', -'idc=f' => 'n', -'idc=false' => 'n', -'idc=n' => 'n', -'idc=no' => 'n', -'idc=t' => 'y', -'idc=true' => 'y', -'idc=y' => 'y', -'idc=yes' => 'y', -'ideo=f' => 'n', -'ideo=false' => 'n', -'ideo=n' => 'n', -'ideo=no' => 'n', -'ideo=t' => 'y', -'ideo=true' => 'y', -'ideo=y' => 'y', -'ideo=yes' => 'y', -'ids=f' => 'n', -'ids=false' => 'n', -'ids=n' => 'n', -'ids=no' => 'n', -'ids=t' => 'y', -'ids=true' => 'y', -'ids=y' => 'y', -'ids=yes' => 'y', -'idsb=f' => 'n', -'idsb=false' => 'n', -'idsb=n' => 'n', -'idsb=no' => 'n', -'idsb=t' => 'y', -'idsb=true' => 'y', -'idsb=y' => 'y', -'idsb=yes' => 'y', -'idst=f' => 'n', -'idst=false' => 'n', -'idst=n' => 'n', -'idst=no' => 'n', -'idst=t' => 'y', -'idst=true' => 'y', -'idst=y' => 'y', -'idst=yes' => 'y', -'in=1.1' => '1.1', -'in=2.0' => '2.0', -'in=2.1' => '2.1', -'in=3.0' => '3.0', -'in=3.1' => '3.1', -'in=3.2' => '3.2', -'in=4.0' => '4.0', -'in=4.1' => '4.1', -'in=5.0' => '5.0', -'in=5.1' => '5.1', -'in=5.2' => '5.2', -'in=6.0' => '6.0', -'in=6.1' => '6.1', -'in=6.2' => '6.2', -'in=6.3' => '6.3', -'in=7.0' => '7.0', -'in=8.0' => '8.0', -'in=unassigned' => 'unassigned', -'inpc=bottom' => 'bottom', -'inpc=bottomandright' => 'bottomandright', -'inpc=left' => 'left', -'inpc=leftandright' => 'leftandright', -'inpc=na' => 'na', -'inpc=overstruck' => 'overstruck', -'inpc=right' => 'right', -'inpc=top' => 'top', -'inpc=topandbottom' => 'topandbottom', -'inpc=topandbottomandright' => 'topandbottomandright', -'inpc=topandleft' => 'topandleft', -'inpc=topandleftandright' => 'topandleftandright', -'inpc=topandright' => 'topandright', -'inpc=visualorderleft' => 'visualorderleft', -'insc=avagraha' => 'avagraha', -'insc=bindu' => 'bindu', -'insc=brahmijoiningnumber' => 'brahmijoiningnumber', -'insc=cantillationmark' => 'cantillationmark', -'insc=consonant' => 'consonant', -'insc=consonantdead' => 'consonantdead', -'insc=consonantfinal' => 'consonantfinal', -'insc=consonantheadletter' => 'consonantheadletter', -'insc=consonantkiller' => 'consonantkiller', -'insc=consonantmedial' => 'consonantmedial', -'insc=consonantplaceholder' => 'consonantplaceholder', -'insc=consonantprecedingrepha' => 'consonantprecedingrepha', -'insc=consonantprefixed' => 'consonantprefixed', -'insc=consonantsubjoined' => 'consonantsubjoined', -'insc=consonantsucceedingrepha' => 'consonantsucceedingrepha', -'insc=consonantwithstacker' => 'consonantwithstacker', -'insc=geminationmark' => 'geminationmark', -'insc=invisiblestacker' => 'invisiblestacker', -'insc=joiner' => 'joiner', -'insc=modifyingletter' => 'modifyingletter', -'insc=nonjoiner' => 'nonjoiner', -'insc=nukta' => 'nukta', -'insc=number' => 'number', -'insc=numberjoiner' => 'numberjoiner', -'insc=other' => 'other', -'insc=purekiller' => 'purekiller', -'insc=registershifter' => 'registershifter', -'insc=syllablemodifier' => 'syllablemodifier', -'insc=toneletter' => 'toneletter', -'insc=tonemark' => 'tonemark', -'insc=virama' => 'virama', -'insc=visarga' => 'visarga', -'insc=vowel' => 'vowel', -'insc=voweldependent' => 'voweldependent', -'insc=vowelindependent' => 'vowelindependent', -'jg=ain' => 'ain', -'jg=alaph' => 'alaph', -'jg=alef' => 'alef', -'jg=beh' => 'beh', -'jg=beth' => 'beth', -'jg=burushaskiyehbarree' => 'burushaskiyehbarree', -'jg=dal' => 'dal', -'jg=dalathrish' => 'dalathrish', -'jg=e' => 'e', -'jg=farsiyeh' => 'farsiyeh', -'jg=fe' => 'fe', -'jg=feh' => 'feh', -'jg=finalsemkath' => 'finalsemkath', -'jg=gaf' => 'gaf', -'jg=gamal' => 'gamal', -'jg=hah' => 'hah', -'jg=hamzaonhehgoal' => 'tehmarbutagoal', -'jg=he' => 'he', -'jg=heh' => 'heh', -'jg=hehgoal' => 'hehgoal', -'jg=heth' => 'heth', -'jg=kaf' => 'kaf', -'jg=kaph' => 'kaph', -'jg=khaph' => 'khaph', -'jg=knottedheh' => 'knottedheh', -'jg=lam' => 'lam', -'jg=lamadh' => 'lamadh', -'jg=manichaeanaleph' => 'manichaeanaleph', -'jg=manichaeanayin' => 'manichaeanayin', -'jg=manichaeanbeth' => 'manichaeanbeth', -'jg=manichaeandaleth' => 'manichaeandaleth', -'jg=manichaeandhamedh' => 'manichaeandhamedh', -'jg=manichaeanfive' => 'manichaeanfive', -'jg=manichaeangimel' => 'manichaeangimel', -'jg=manichaeanheth' => 'manichaeanheth', -'jg=manichaeanhundred' => 'manichaeanhundred', -'jg=manichaeankaph' => 'manichaeankaph', -'jg=manichaeanlamedh' => 'manichaeanlamedh', -'jg=manichaeanmem' => 'manichaeanmem', -'jg=manichaeannun' => 'manichaeannun', -'jg=manichaeanone' => 'manichaeanone', -'jg=manichaeanpe' => 'manichaeanpe', -'jg=manichaeanqoph' => 'manichaeanqoph', -'jg=manichaeanresh' => 'manichaeanresh', -'jg=manichaeansadhe' => 'manichaeansadhe', -'jg=manichaeansamekh' => 'manichaeansamekh', -'jg=manichaeantaw' => 'manichaeantaw', -'jg=manichaeanten' => 'manichaeanten', -'jg=manichaeanteth' => 'manichaeanteth', -'jg=manichaeanthamedh' => 'manichaeanthamedh', -'jg=manichaeantwenty' => 'manichaeantwenty', -'jg=manichaeanwaw' => 'manichaeanwaw', -'jg=manichaeanyodh' => 'manichaeanyodh', -'jg=manichaeanzayin' => 'manichaeanzayin', -'jg=meem' => 'meem', -'jg=mim' => 'mim', -'jg=nojoininggroup' => 'nojoininggroup', -'jg=noon' => 'noon', -'jg=nun' => 'nun', -'jg=nya' => 'nya', -'jg=pe' => 'pe', -'jg=qaf' => 'qaf', -'jg=qaph' => 'qaph', -'jg=reh' => 'reh', -'jg=reversedpe' => 'reversedpe', -'jg=rohingyayeh' => 'rohingyayeh', -'jg=sad' => 'sad', -'jg=sadhe' => 'sadhe', -'jg=seen' => 'seen', -'jg=semkath' => 'semkath', -'jg=shin' => 'shin', -'jg=straightwaw' => 'straightwaw', -'jg=swashkaf' => 'swashkaf', -'jg=syriacwaw' => 'syriacwaw', -'jg=tah' => 'tah', -'jg=taw' => 'taw', -'jg=tehmarbuta' => 'tehmarbuta', -'jg=tehmarbutagoal' => 'tehmarbutagoal', -'jg=teth' => 'teth', -'jg=waw' => 'waw', -'jg=yeh' => 'yeh', -'jg=yehbarree' => 'yehbarree', -'jg=yehwithtail' => 'yehwithtail', -'jg=yudh' => 'yudh', -'jg=yudhhe' => 'yudhhe', -'jg=zain' => 'zain', -'jg=zhain' => 'zhain', -'joinc=f' => 'n', -'joinc=false' => 'n', -'joinc=n' => 'n', -'joinc=no' => 'n', -'joinc=t' => 'y', -'joinc=true' => 'y', -'joinc=y' => 'y', -'joinc=yes' => 'y', -'jt=c' => 'c', -'jt=d' => 'd', -'jt=dualjoining' => 'd', -'jt=joincausing' => 'c', -'jt=l' => 'l', -'jt=leftjoining' => 'l', -'jt=nonjoining' => 'u', -'jt=r' => 'r', -'jt=rightjoining' => 'r', -'jt=t' => 't', -'jt=transparent' => 't', -'jt=u' => 'u', -'lb=ai' => 'ai', -'lb=al' => 'al', -'lb=alphabetic' => 'al', -'lb=ambiguous' => 'ai', -'lb=b2' => 'b2', -'lb=ba' => 'ba', -'lb=bb' => 'bb', -'lb=bk' => 'bk', -'lb=breakafter' => 'ba', -'lb=breakbefore' => 'bb', -'lb=breakboth' => 'b2', -'lb=breaksymbols' => 'sy', -'lb=carriagereturn' => 'cr', -'lb=cb' => 'cb', -'lb=cj' => 'cj', -'lb=cl' => 'cl', -'lb=closeparenthesis' => 'cp', -'lb=closepunctuation' => 'cl', -'lb=cm' => 'cm', -'lb=combiningmark' => 'cm', -'lb=complexcontext' => 'sa', -'lb=conditionaljapanesestarter' => 'cj', -'lb=contingentbreak' => 'cb', -'lb=cp' => 'cp', -'lb=cr' => 'cr', -'lb=ex' => 'ex', -'lb=exclamation' => 'ex', -'lb=gl' => 'gl', -'lb=glue' => 'gl', -'lb=h2' => 'h2', -'lb=h3' => 'h3', -'lb=hebrewletter' => 'hl', -'lb=hl' => 'hl', -'lb=hy' => 'hy', -'lb=hyphen' => 'hy', -'lb=id' => 'id', -'lb=ideographic' => 'id', -'lb=in' => 'in', -'lb=infixnumeric' => 'is', -'lb=inseparable' => 'in', -'lb=inseperable' => 'in', -'lb=is' => 'is', -'lb=jl' => 'jl', -'lb=jt' => 'jt', -'lb=jv' => 'jv', -'lb=lf' => 'lf', -'lb=linefeed' => 'lf', -'lb=mandatorybreak' => 'bk', -'lb=nextline' => 'nl', -'lb=nl' => 'nl', -'lb=nonstarter' => 'ns', -'lb=ns' => 'ns', -'lb=nu' => 'nu', -'lb=numeric' => 'nu', -'lb=op' => 'op', -'lb=openpunctuation' => 'op', -'lb=po' => 'po', -'lb=postfixnumeric' => 'po', -'lb=pr' => 'pr', -'lb=prefixnumeric' => 'pr', -'lb=qu' => 'qu', -'lb=quotation' => 'qu', -'lb=regionalindicator' => 'ri', -'lb=ri' => 'ri', -'lb=sa' => 'sa', -'lb=sg' => 'sg', -'lb=sp' => 'sp', -'lb=space' => 'sp', -'lb=surrogate' => 'sg', -'lb=sy' => 'sy', -'lb=unknown' => 'xx', -'lb=wj' => 'wj', -'lb=wordjoiner' => 'wj', -'lb=xx' => 'xx', -'lb=zw' => 'zw', -'lb=zwspace' => 'zw', -'loe=f' => 'n', -'loe=false' => 'n', -'loe=n' => 'n', -'loe=no' => 'n', -'loe=t' => 'y', -'loe=true' => 'y', -'loe=y' => 'y', -'loe=yes' => 'y', -'lower=f' => 'n', -'lower=false' => 'n', -'lower=n' => 'n', -'lower=no' => 'n', -'lower=t' => 'y', -'lower=true' => 'y', -'lower=y' => 'y', -'lower=yes' => 'y', -'math=f' => 'n', -'math=false' => 'n', -'math=n' => 'n', -'math=no' => 'n', -'math=t' => 'y', -'math=true' => 'y', -'math=y' => 'y', -'math=yes' => 'y', -'nchar=f' => 'n', -'nchar=false' => 'n', -'nchar=n' => 'n', -'nchar=no' => 'n', -'nchar=t' => 'y', -'nchar=true' => 'y', -'nchar=y' => 'y', -'nchar=yes' => 'y', -'nfcqc=m' => 'm', -'nfcqc=maybe' => 'm', -'nfcqc=n' => 'n', -'nfcqc=no' => 'n', -'nfcqc=y' => 'y', -'nfcqc=yes' => 'y', -'nfdqc=n' => 'n', -'nfdqc=no' => 'n', -'nfdqc=y' => 'y', -'nfdqc=yes' => 'y', -'nfkcqc=m' => 'm', -'nfkcqc=maybe' => 'm', -'nfkcqc=n' => 'n', -'nfkcqc=no' => 'n', -'nfkcqc=y' => 'y', -'nfkcqc=yes' => 'y', -'nfkdqc=n' => 'n', -'nfkdqc=no' => 'n', -'nfkdqc=y' => 'y', -'nfkdqc=yes' => 'y', -'nt=de' => 'de', -'nt=decimal' => 'de', -'nt=di' => 'di', -'nt=digit' => 'di', -'nt=none' => 'none', -'nt=nu' => 'nu', -'nt=numeric' => 'nu', -'nv=-1/2' => '-1/2', -'nv=0' => 0, -'nv=1' => 1, -'nv=1/10' => '1/10', -'nv=1/12' => '1/12', -'nv=1/16' => '1/16', -'nv=1/2' => '1/2', -'nv=1/3' => '1/3', -'nv=1/4' => '1/4', -'nv=1/5' => '1/5', -'nv=1/6' => '1/6', -'nv=1/7' => '1/7', -'nv=1/8' => '1/8', -'nv=1/9' => '1/9', -'nv=10' => 10, -'nv=100' => 100, -'nv=1000' => 1000, -'nv=10000' => 10000, -'nv=100000' => 100000, -'nv=1000000' => 1000000, -'nv=100000000' => 100000000, -'nv=10000000000' => 10000000000, -'nv=1000000000000' => 1000000000000, -'nv=11' => 11, -'nv=11/12' => '11/12', -'nv=11/2' => '11/2', -'nv=12' => 12, -'nv=13' => 13, -'nv=13/2' => '13/2', -'nv=14' => 14, -'nv=15' => 15, -'nv=15/2' => '15/2', -'nv=16' => 16, -'nv=17' => 17, -'nv=17/2' => '17/2', -'nv=18' => 18, -'nv=19' => 19, -'nv=2' => 2, -'nv=2/3' => '2/3', -'nv=2/5' => '2/5', -'nv=20' => 20, -'nv=200' => 200, -'nv=2000' => 2000, -'nv=20000' => 20000, -'nv=200000' => 200000, -'nv=21' => 21, -'nv=216000' => 216000, -'nv=22' => 22, -'nv=23' => 23, -'nv=24' => 24, -'nv=25' => 25, -'nv=26' => 26, -'nv=27' => 27, -'nv=28' => 28, -'nv=29' => 29, -'nv=3' => 3, -'nv=3/16' => '3/16', -'nv=3/2' => '3/2', -'nv=3/4' => '3/4', -'nv=3/5' => '3/5', -'nv=3/8' => '3/8', -'nv=30' => 30, -'nv=300' => 300, -'nv=3000' => 3000, -'nv=30000' => 30000, -'nv=300000' => 300000, -'nv=31' => 31, -'nv=32' => 32, -'nv=33' => 33, -'nv=34' => 34, -'nv=35' => 35, -'nv=36' => 36, -'nv=37' => 37, -'nv=38' => 38, -'nv=39' => 39, -'nv=4' => 4, -'nv=4/5' => '4/5', -'nv=40' => 40, -'nv=400' => 400, -'nv=4000' => 4000, -'nv=40000' => 40000, -'nv=400000' => 400000, -'nv=41' => 41, -'nv=42' => 42, -'nv=43' => 43, -'nv=432000' => 432000, -'nv=44' => 44, -'nv=45' => 45, -'nv=46' => 46, -'nv=47' => 47, -'nv=48' => 48, -'nv=49' => 49, -'nv=5' => 5, -'nv=5/12' => '5/12', -'nv=5/2' => '5/2', -'nv=5/6' => '5/6', -'nv=5/8' => '5/8', -'nv=50' => 50, -'nv=500' => 500, -'nv=5000' => 5000, -'nv=50000' => 50000, -'nv=500000' => 500000, -'nv=6' => 6, -'nv=60' => 60, -'nv=600' => 600, -'nv=6000' => 6000, -'nv=60000' => 60000, -'nv=600000' => 600000, -'nv=7' => 7, -'nv=7/12' => '7/12', -'nv=7/2' => '7/2', -'nv=7/8' => '7/8', -'nv=70' => 70, -'nv=700' => 700, -'nv=7000' => 7000, -'nv=70000' => 70000, -'nv=700000' => 700000, -'nv=8' => 8, -'nv=80' => 80, -'nv=800' => 800, -'nv=8000' => 8000, -'nv=80000' => 80000, -'nv=800000' => 800000, -'nv=9' => 9, -'nv=9/2' => '9/2', -'nv=90' => 90, -'nv=900' => 900, -'nv=9000' => 9000, -'nv=90000' => 90000, -'nv=900000' => 900000, -'nv=nan' => 'nan', -'patsyn=f' => 'n', -'patsyn=false' => 'n', -'patsyn=n' => 'n', -'patsyn=no' => 'n', -'patsyn=t' => 'y', -'patsyn=true' => 'y', -'patsyn=y' => 'y', -'patsyn=yes' => 'y', -'patws=f' => 'n', -'patws=false' => 'n', -'patws=n' => 'n', -'patws=no' => 'n', -'patws=t' => 'y', -'patws=true' => 'y', -'patws=y' => 'y', -'patws=yes' => 'y', -'qmark=f' => 'n', -'qmark=false' => 'n', -'qmark=n' => 'n', -'qmark=no' => 'n', -'qmark=t' => 'y', -'qmark=true' => 'y', -'qmark=y' => 'y', -'qmark=yes' => 'y', -'radical=f' => 'n', -'radical=false' => 'n', -'radical=n' => 'n', -'radical=no' => 'n', -'radical=t' => 'y', -'radical=true' => 'y', -'radical=y' => 'y', -'radical=yes' => 'y', -'sb=at' => 'at', -'sb=aterm' => 'at', -'sb=cl' => 'cl', -'sb=close' => 'cl', -'sb=cr' => 'cr', -'sb=ex' => 'ex', -'sb=extend' => 'ex', -'sb=fo' => 'fo', -'sb=format' => 'fo', -'sb=le' => 'le', -'sb=lf' => 'lf', -'sb=lo' => 'lo', -'sb=lower' => 'lo', -'sb=nu' => 'nu', -'sb=numeric' => 'nu', -'sb=oletter' => 'le', -'sb=other' => 'xx', -'sb=sc' => 'sc', -'sb=scontinue' => 'sc', -'sb=se' => 'se', -'sb=sep' => 'se', -'sb=sp' => 'sp', -'sb=st' => 'st', -'sb=sterm' => 'st', -'sb=up' => 'up', -'sb=upper' => 'up', -'sb=xx' => 'xx', -'sc=aghb' => 'aghb', -'sc=ahom' => 'ahom', -'sc=anatolianhieroglyphs' => 'hluw', -'sc=arab' => 'arab', -'sc=arabic' => 'arab', -'sc=armenian' => 'armn', -'sc=armi' => 'armi', -'sc=armn' => 'armn', -'sc=avestan' => 'avst', -'sc=avst' => 'avst', -'sc=bali' => 'bali', -'sc=balinese' => 'bali', -'sc=bamu' => 'bamu', -'sc=bamum' => 'bamu', -'sc=bass' => 'bass', -'sc=bassavah' => 'bass', -'sc=batak' => 'batk', -'sc=batk' => 'batk', -'sc=beng' => 'beng', -'sc=bengali' => 'beng', -'sc=bopo' => 'bopo', -'sc=bopomofo' => 'bopo', -'sc=brah' => 'brah', -'sc=brahmi' => 'brah', -'sc=brai' => 'brai', -'sc=braille' => 'brai', -'sc=bugi' => 'bugi', -'sc=buginese' => 'bugi', -'sc=buhd' => 'buhd', -'sc=buhid' => 'buhd', -'sc=cakm' => 'cakm', -'sc=canadianaboriginal' => 'cans', -'sc=cans' => 'cans', -'sc=cari' => 'cari', -'sc=carian' => 'cari', -'sc=caucasianalbanian' => 'aghb', -'sc=chakma' => 'cakm', -'sc=cham' => 'cham', -'sc=cher' => 'cher', -'sc=cherokee' => 'cher', -'sc=common' => 'zyyy', -'sc=copt' => 'copt', -'sc=coptic' => 'copt', -'sc=cprt' => 'cprt', -'sc=cuneiform' => 'xsux', -'sc=cypriot' => 'cprt', -'sc=cyrillic' => 'cyrl', -'sc=cyrl' => 'cyrl', -'sc=deseret' => 'dsrt', -'sc=deva' => 'deva', -'sc=devanagari' => 'deva', -'sc=dsrt' => 'dsrt', -'sc=dupl' => 'dupl', -'sc=duployan' => 'dupl', -'sc=egyp' => 'egyp', -'sc=egyptianhieroglyphs' => 'egyp', -'sc=elba' => 'elba', -'sc=elbasan' => 'elba', -'sc=ethi' => 'ethi', -'sc=ethiopic' => 'ethi', -'sc=geor' => 'geor', -'sc=georgian' => 'geor', -'sc=glag' => 'glag', -'sc=glagolitic' => 'glag', -'sc=goth' => 'goth', -'sc=gothic' => 'goth', -'sc=gran' => 'gran', -'sc=grantha' => 'gran', -'sc=greek' => 'grek', -'sc=grek' => 'grek', -'sc=gujarati' => 'gujr', -'sc=gujr' => 'gujr', -'sc=gurmukhi' => 'guru', -'sc=guru' => 'guru', -'sc=han' => 'hani', -'sc=hang' => 'hang', -'sc=hangul' => 'hang', -'sc=hani' => 'hani', -'sc=hano' => 'hano', -'sc=hanunoo' => 'hano', -'sc=hatr' => 'hatr', -'sc=hatran' => 'hatr', -'sc=hebr' => 'hebr', -'sc=hebrew' => 'hebr', -'sc=hira' => 'hira', -'sc=hiragana' => 'hira', -'sc=hluw' => 'hluw', -'sc=hmng' => 'hmng', -'sc=hung' => 'hung', -'sc=imperialaramaic' => 'armi', -'sc=inherited' => 'zinh', -'sc=inscriptionalpahlavi' => 'phli', -'sc=inscriptionalparthian' => 'prti', -'sc=ital' => 'ital', -'sc=java' => 'java', -'sc=javanese' => 'java', -'sc=kaithi' => 'kthi', -'sc=kali' => 'kali', -'sc=kana' => 'kana', -'sc=kannada' => 'knda', -'sc=katakana' => 'kana', -'sc=kayahli' => 'kali', -'sc=khar' => 'khar', -'sc=kharoshthi' => 'khar', -'sc=khmer' => 'khmr', -'sc=khmr' => 'khmr', -'sc=khoj' => 'khoj', -'sc=khojki' => 'khoj', -'sc=khudawadi' => 'sind', -'sc=knda' => 'knda', -'sc=kthi' => 'kthi', -'sc=lana' => 'lana', -'sc=lao' => 'laoo', -'sc=laoo' => 'laoo', -'sc=latin' => 'latn', -'sc=latn' => 'latn', -'sc=lepc' => 'lepc', -'sc=lepcha' => 'lepc', -'sc=limb' => 'limb', -'sc=limbu' => 'limb', -'sc=lina' => 'lina', -'sc=linb' => 'linb', -'sc=lineara' => 'lina', -'sc=linearb' => 'linb', -'sc=lisu' => 'lisu', -'sc=lyci' => 'lyci', -'sc=lycian' => 'lyci', -'sc=lydi' => 'lydi', -'sc=lydian' => 'lydi', -'sc=mahajani' => 'mahj', -'sc=mahj' => 'mahj', -'sc=malayalam' => 'mlym', -'sc=mand' => 'mand', -'sc=mandaic' => 'mand', -'sc=mani' => 'mani', -'sc=manichaean' => 'mani', -'sc=meeteimayek' => 'mtei', -'sc=mend' => 'mend', -'sc=mendekikakui' => 'mend', -'sc=merc' => 'merc', -'sc=mero' => 'mero', -'sc=meroiticcursive' => 'merc', -'sc=meroitichieroglyphs' => 'mero', -'sc=miao' => 'plrd', -'sc=mlym' => 'mlym', -'sc=modi' => 'modi', -'sc=mong' => 'mong', -'sc=mongolian' => 'mong', -'sc=mro' => 'mroo', -'sc=mroo' => 'mroo', -'sc=mtei' => 'mtei', -'sc=mult' => 'mult', -'sc=multani' => 'mult', -'sc=myanmar' => 'mymr', -'sc=mymr' => 'mymr', -'sc=nabataean' => 'nbat', -'sc=narb' => 'narb', -'sc=nbat' => 'nbat', -'sc=newtailue' => 'talu', -'sc=nko' => 'nkoo', -'sc=nkoo' => 'nkoo', -'sc=ogam' => 'ogam', -'sc=ogham' => 'ogam', -'sc=olchiki' => 'olck', -'sc=olck' => 'olck', -'sc=oldhungarian' => 'hung', -'sc=olditalic' => 'ital', -'sc=oldnortharabian' => 'narb', -'sc=oldpermic' => 'perm', -'sc=oldpersian' => 'xpeo', -'sc=oldsoutharabian' => 'sarb', -'sc=oldturkic' => 'orkh', -'sc=oriya' => 'orya', -'sc=orkh' => 'orkh', -'sc=orya' => 'orya', -'sc=osma' => 'osma', -'sc=osmanya' => 'osma', -'sc=pahawhhmong' => 'hmng', -'sc=palm' => 'palm', -'sc=palmyrene' => 'palm', -'sc=pauc' => 'pauc', -'sc=paucinhau' => 'pauc', -'sc=perm' => 'perm', -'sc=phag' => 'phag', -'sc=phagspa' => 'phag', -'sc=phli' => 'phli', -'sc=phlp' => 'phlp', -'sc=phnx' => 'phnx', -'sc=phoenician' => 'phnx', -'sc=plrd' => 'plrd', -'sc=prti' => 'prti', -'sc=psalterpahlavi' => 'phlp', -'sc=qaac' => 'copt', -'sc=qaai' => 'zinh', -'sc=rejang' => 'rjng', -'sc=rjng' => 'rjng', -'sc=runic' => 'runr', -'sc=runr' => 'runr', -'sc=samaritan' => 'samr', -'sc=samr' => 'samr', -'sc=sarb' => 'sarb', -'sc=saur' => 'saur', -'sc=saurashtra' => 'saur', -'sc=sgnw' => 'sgnw', -'sc=sharada' => 'shrd', -'sc=shavian' => 'shaw', -'sc=shaw' => 'shaw', -'sc=shrd' => 'shrd', -'sc=sidd' => 'sidd', -'sc=siddham' => 'sidd', -'sc=signwriting' => 'sgnw', -'sc=sind' => 'sind', -'sc=sinh' => 'sinh', -'sc=sinhala' => 'sinh', -'sc=sora' => 'sora', -'sc=sorasompeng' => 'sora', -'sc=sund' => 'sund', -'sc=sundanese' => 'sund', -'sc=sylo' => 'sylo', -'sc=sylotinagri' => 'sylo', -'sc=syrc' => 'syrc', -'sc=syriac' => 'syrc', -'sc=tagalog' => 'tglg', -'sc=tagb' => 'tagb', -'sc=tagbanwa' => 'tagb', -'sc=taile' => 'tale', -'sc=taitham' => 'lana', -'sc=taiviet' => 'tavt', -'sc=takr' => 'takr', -'sc=takri' => 'takr', -'sc=tale' => 'tale', -'sc=talu' => 'talu', -'sc=tamil' => 'taml', -'sc=taml' => 'taml', -'sc=tavt' => 'tavt', -'sc=telu' => 'telu', -'sc=telugu' => 'telu', -'sc=tfng' => 'tfng', -'sc=tglg' => 'tglg', -'sc=thaa' => 'thaa', -'sc=thaana' => 'thaa', -'sc=thai' => 'thai', -'sc=tibetan' => 'tibt', -'sc=tibt' => 'tibt', -'sc=tifinagh' => 'tfng', -'sc=tirh' => 'tirh', -'sc=tirhuta' => 'tirh', -'sc=ugar' => 'ugar', -'sc=ugaritic' => 'ugar', -'sc=unknown' => 'zzzz', -'sc=vai' => 'vaii', -'sc=vaii' => 'vaii', -'sc=wara' => 'wara', -'sc=warangciti' => 'wara', -'sc=xpeo' => 'xpeo', -'sc=xsux' => 'xsux', -'sc=yi' => 'yiii', -'sc=yiii' => 'yiii', -'sc=zinh' => 'zinh', -'sc=zyyy' => 'zyyy', -'sc=zzzz' => 'zzzz', -'scx=aghb' => 'aghb', -'scx=ahom' => 'ahom', -'scx=anatolianhieroglyphs' => 'hluw', -'scx=arab' => 'arab', -'scx=arabic' => 'arab', -'scx=armenian' => 'armn', -'scx=armi' => 'armi', -'scx=armn' => 'armn', -'scx=avestan' => 'avst', -'scx=avst' => 'avst', -'scx=bali' => 'bali', -'scx=balinese' => 'bali', -'scx=bamu' => 'bamu', -'scx=bamum' => 'bamu', -'scx=bass' => 'bass', -'scx=bassavah' => 'bass', -'scx=batak' => 'batk', -'scx=batk' => 'batk', -'scx=beng' => 'beng', -'scx=bengali' => 'beng', -'scx=bopo' => 'bopo', -'scx=bopomofo' => 'bopo', -'scx=brah' => 'brah', -'scx=brahmi' => 'brah', -'scx=brai' => 'brai', -'scx=braille' => 'brai', -'scx=bugi' => 'bugi', -'scx=buginese' => 'bugi', -'scx=buhd' => 'buhd', -'scx=buhid' => 'buhd', -'scx=cakm' => 'cakm', -'scx=canadianaboriginal' => 'cans', -'scx=cans' => 'cans', -'scx=cari' => 'cari', -'scx=carian' => 'cari', -'scx=caucasianalbanian' => 'aghb', -'scx=chakma' => 'cakm', -'scx=cham' => 'cham', -'scx=cher' => 'cher', -'scx=cherokee' => 'cher', -'scx=common' => 'zyyy', -'scx=copt' => 'copt', -'scx=coptic' => 'copt', -'scx=cprt' => 'cprt', -'scx=cuneiform' => 'xsux', -'scx=cypriot' => 'cprt', -'scx=cyrillic' => 'cyrl', -'scx=cyrl' => 'cyrl', -'scx=deseret' => 'dsrt', -'scx=deva' => 'deva', -'scx=devanagari' => 'deva', -'scx=dsrt' => 'dsrt', -'scx=dupl' => 'dupl', -'scx=duployan' => 'dupl', -'scx=egyp' => 'egyp', -'scx=egyptianhieroglyphs' => 'egyp', -'scx=elba' => 'elba', -'scx=elbasan' => 'elba', -'scx=ethi' => 'ethi', -'scx=ethiopic' => 'ethi', -'scx=geor' => 'geor', -'scx=georgian' => 'geor', -'scx=glag' => 'glag', -'scx=glagolitic' => 'glag', -'scx=goth' => 'goth', -'scx=gothic' => 'goth', -'scx=gran' => 'gran', -'scx=grantha' => 'gran', -'scx=greek' => 'grek', -'scx=grek' => 'grek', -'scx=gujarati' => 'gujr', -'scx=gujr' => 'gujr', -'scx=gurmukhi' => 'guru', -'scx=guru' => 'guru', -'scx=han' => 'hani', -'scx=hang' => 'hang', -'scx=hangul' => 'hang', -'scx=hani' => 'hani', -'scx=hano' => 'hano', -'scx=hanunoo' => 'hano', -'scx=hatr' => 'hatr', -'scx=hatran' => 'hatr', -'scx=hebr' => 'hebr', -'scx=hebrew' => 'hebr', -'scx=hira' => 'hira', -'scx=hiragana' => 'hira', -'scx=hluw' => 'hluw', -'scx=hmng' => 'hmng', -'scx=hung' => 'hung', -'scx=imperialaramaic' => 'armi', -'scx=inherited' => 'zinh', -'scx=inscriptionalpahlavi' => 'phli', -'scx=inscriptionalparthian' => 'prti', -'scx=ital' => 'ital', -'scx=java' => 'java', -'scx=javanese' => 'java', -'scx=kaithi' => 'kthi', -'scx=kali' => 'kali', -'scx=kana' => 'kana', -'scx=kannada' => 'knda', -'scx=katakana' => 'kana', -'scx=kayahli' => 'kali', -'scx=khar' => 'khar', -'scx=kharoshthi' => 'khar', -'scx=khmer' => 'khmr', -'scx=khmr' => 'khmr', -'scx=khoj' => 'khoj', -'scx=khojki' => 'khoj', -'scx=khudawadi' => 'sind', -'scx=knda' => 'knda', -'scx=kthi' => 'kthi', -'scx=lana' => 'lana', -'scx=lao' => 'laoo', -'scx=laoo' => 'laoo', -'scx=latin' => 'latn', -'scx=latn' => 'latn', -'scx=lepc' => 'lepc', -'scx=lepcha' => 'lepc', -'scx=limb' => 'limb', -'scx=limbu' => 'limb', -'scx=lina' => 'lina', -'scx=linb' => 'linb', -'scx=lineara' => 'lina', -'scx=linearb' => 'linb', -'scx=lisu' => 'lisu', -'scx=lyci' => 'lyci', -'scx=lycian' => 'lyci', -'scx=lydi' => 'lydi', -'scx=lydian' => 'lydi', -'scx=mahajani' => 'mahj', -'scx=mahj' => 'mahj', -'scx=malayalam' => 'mlym', -'scx=mand' => 'mand', -'scx=mandaic' => 'mand', -'scx=mani' => 'mani', -'scx=manichaean' => 'mani', -'scx=meeteimayek' => 'mtei', -'scx=mend' => 'mend', -'scx=mendekikakui' => 'mend', -'scx=merc' => 'merc', -'scx=mero' => 'mero', -'scx=meroiticcursive' => 'merc', -'scx=meroitichieroglyphs' => 'mero', -'scx=miao' => 'plrd', -'scx=mlym' => 'mlym', -'scx=modi' => 'modi', -'scx=mong' => 'mong', -'scx=mongolian' => 'mong', -'scx=mro' => 'mroo', -'scx=mroo' => 'mroo', -'scx=mtei' => 'mtei', -'scx=mult' => 'mult', -'scx=multani' => 'mult', -'scx=myanmar' => 'mymr', -'scx=mymr' => 'mymr', -'scx=nabataean' => 'nbat', -'scx=narb' => 'narb', -'scx=nbat' => 'nbat', -'scx=newtailue' => 'talu', -'scx=nko' => 'nkoo', -'scx=nkoo' => 'nkoo', -'scx=ogam' => 'ogam', -'scx=ogham' => 'ogam', -'scx=olchiki' => 'olck', -'scx=olck' => 'olck', -'scx=oldhungarian' => 'hung', -'scx=olditalic' => 'ital', -'scx=oldnortharabian' => 'narb', -'scx=oldpermic' => 'perm', -'scx=oldpersian' => 'xpeo', -'scx=oldsoutharabian' => 'sarb', -'scx=oldturkic' => 'orkh', -'scx=oriya' => 'orya', -'scx=orkh' => 'orkh', -'scx=orya' => 'orya', -'scx=osma' => 'osma', -'scx=osmanya' => 'osma', -'scx=pahawhhmong' => 'hmng', -'scx=palm' => 'palm', -'scx=palmyrene' => 'palm', -'scx=pauc' => 'pauc', -'scx=paucinhau' => 'pauc', -'scx=perm' => 'perm', -'scx=phag' => 'phag', -'scx=phagspa' => 'phag', -'scx=phli' => 'phli', -'scx=phlp' => 'phlp', -'scx=phnx' => 'phnx', -'scx=phoenician' => 'phnx', -'scx=plrd' => 'plrd', -'scx=prti' => 'prti', -'scx=psalterpahlavi' => 'phlp', -'scx=qaac' => 'copt', -'scx=qaai' => 'zinh', -'scx=rejang' => 'rjng', -'scx=rjng' => 'rjng', -'scx=runic' => 'runr', -'scx=runr' => 'runr', -'scx=samaritan' => 'samr', -'scx=samr' => 'samr', -'scx=sarb' => 'sarb', -'scx=saur' => 'saur', -'scx=saurashtra' => 'saur', -'scx=sgnw' => 'sgnw', -'scx=sharada' => 'shrd', -'scx=shavian' => 'shaw', -'scx=shaw' => 'shaw', -'scx=shrd' => 'shrd', -'scx=sidd' => 'sidd', -'scx=siddham' => 'sidd', -'scx=signwriting' => 'sgnw', -'scx=sind' => 'sind', -'scx=sinh' => 'sinh', -'scx=sinhala' => 'sinh', -'scx=sora' => 'sora', -'scx=sorasompeng' => 'sora', -'scx=sund' => 'sund', -'scx=sundanese' => 'sund', -'scx=sylo' => 'sylo', -'scx=sylotinagri' => 'sylo', -'scx=syrc' => 'syrc', -'scx=syriac' => 'syrc', -'scx=tagalog' => 'tglg', -'scx=tagb' => 'tagb', -'scx=tagbanwa' => 'tagb', -'scx=taile' => 'tale', -'scx=taitham' => 'lana', -'scx=taiviet' => 'tavt', -'scx=takr' => 'takr', -'scx=takri' => 'takr', -'scx=tale' => 'tale', -'scx=talu' => 'talu', -'scx=tamil' => 'taml', -'scx=taml' => 'taml', -'scx=tavt' => 'tavt', -'scx=telu' => 'telu', -'scx=telugu' => 'telu', -'scx=tfng' => 'tfng', -'scx=tglg' => 'tglg', -'scx=thaa' => 'thaa', -'scx=thaana' => 'thaa', -'scx=thai' => 'thai', -'scx=tibetan' => 'tibt', -'scx=tibt' => 'tibt', -'scx=tifinagh' => 'tfng', -'scx=tirh' => 'tirh', -'scx=tirhuta' => 'tirh', -'scx=ugar' => 'ugar', -'scx=ugaritic' => 'ugar', -'scx=unknown' => 'zzzz', -'scx=vai' => 'vaii', -'scx=vaii' => 'vaii', -'scx=wara' => 'wara', -'scx=warangciti' => 'wara', -'scx=xpeo' => 'xpeo', -'scx=xsux' => 'xsux', -'scx=yi' => 'yiii', -'scx=yiii' => 'yiii', -'scx=zinh' => 'zinh', -'scx=zyyy' => 'zyyy', -'scx=zzzz' => 'zzzz', -'sd=f' => 'n', -'sd=false' => 'n', -'sd=n' => 'n', -'sd=no' => 'n', -'sd=t' => 'y', -'sd=true' => 'y', -'sd=y' => 'y', -'sd=yes' => 'y', -'sterm=f' => 'n', -'sterm=false' => 'n', -'sterm=n' => 'n', -'sterm=no' => 'n', -'sterm=t' => 'y', -'sterm=true' => 'y', -'sterm=y' => 'y', -'sterm=yes' => 'y', -'term=f' => 'n', -'term=false' => 'n', -'term=n' => 'n', -'term=no' => 'n', -'term=t' => 'y', -'term=true' => 'y', -'term=y' => 'y', -'term=yes' => 'y', -'uideo=f' => 'n', -'uideo=false' => 'n', -'uideo=n' => 'n', -'uideo=no' => 'n', -'uideo=t' => 'y', -'uideo=true' => 'y', -'uideo=y' => 'y', -'uideo=yes' => 'y', -'upper=f' => 'n', -'upper=false' => 'n', -'upper=n' => 'n', -'upper=no' => 'n', -'upper=t' => 'y', -'upper=true' => 'y', -'upper=y' => 'y', -'upper=yes' => 'y', -'vs=f' => 'n', -'vs=false' => 'n', -'vs=n' => 'n', -'vs=no' => 'n', -'vs=t' => 'y', -'vs=true' => 'y', -'vs=y' => 'y', -'vs=yes' => 'y', -'wb=aletter' => 'le', -'wb=cr' => 'cr', -'wb=doublequote' => 'dq', -'wb=dq' => 'dq', -'wb=ex' => 'ex', -'wb=extend' => 'extend', -'wb=extendnumlet' => 'ex', -'wb=fo' => 'fo', -'wb=format' => 'fo', -'wb=hebrewletter' => 'hl', -'wb=hl' => 'hl', -'wb=ka' => 'ka', -'wb=katakana' => 'ka', -'wb=le' => 'le', -'wb=lf' => 'lf', -'wb=mb' => 'mb', -'wb=midletter' => 'ml', -'wb=midnum' => 'mn', -'wb=midnumlet' => 'mb', -'wb=ml' => 'ml', -'wb=mn' => 'mn', -'wb=newline' => 'nl', -'wb=nl' => 'nl', -'wb=nu' => 'nu', -'wb=numeric' => 'nu', -'wb=other' => 'xx', -'wb=regionalindicator' => 'ri', -'wb=ri' => 'ri', -'wb=singlequote' => 'sq', -'wb=sq' => 'sq', -'wb=xx' => 'xx', -'wspace=f' => 'n', -'wspace=false' => 'n', -'wspace=n' => 'n', -'wspace=no' => 'n', -'wspace=t' => 'y', -'wspace=true' => 'y', -'wspace=y' => 'y', -'wspace=yes' => 'y', -'xidc=f' => 'n', -'xidc=false' => 'n', -'xidc=n' => 'n', -'xidc=no' => 'n', -'xidc=t' => 'y', -'xidc=true' => 'y', -'xidc=y' => 'y', -'xidc=yes' => 'y', -'xids=f' => 'n', -'xids=false' => 'n', -'xids=n' => 'n', -'xids=no' => 'n', -'xids=t' => 'y', -'xids=true' => 'y', -'xids=y' => 'y', -'xids=yes' => 'y', -); - -# String property loose names to standard loose name -%Unicode::UCD::string_property_loose_to_name = ( -'_perlnamealias' => 'namealias', -'bidimirroringglyph' => 'bmg', -'bidipairedbracket' => 'bpb', -'bmg' => 'bmg', -'bpb' => 'bpb', -'casefolding' => 'cf', -'cf' => 'cf', -'decompositionmapping' => 'dm', -'dm' => 'dm', -'isc' => 'isc', -'isocomment' => 'isc', -'lc' => 'lc', -'lowercasemapping' => 'lc', -'na' => 'na', -'na1' => 'na1', -'name' => 'na', -'namealias' => 'namealias', -'nfkccasefold' => 'nfkccf', -'nfkccf' => 'nfkccf', -'perldecimaldigit' => 'perldecimaldigit', -'scf' => 'scf', -'sfc' => 'scf', -'simplecasefolding' => 'scf', -'simplelowercasemapping' => 'slc', -'simpletitlecasemapping' => 'stc', -'simpleuppercasemapping' => 'suc', -'slc' => 'slc', -'stc' => 'stc', -'suc' => 'suc', -'tc' => 'tc', -'titlecasemapping' => 'tc', -'uc' => 'uc', -'unicode1name' => 'na1', -'uppercasemapping' => 'uc', -); - -# Keys are Perl extensions in loose form; values are each one's list of -# aliases -%Unicode::UCD::loose_perlprop_to_name = ( -'all' => -[ -'All', -], -'alnum' => -[ -'Alnum', -'XPosixAlnum', -], -'any' => -[ -'Any', -'Any', -'Unicode', -], -'ascii' => -[ -'ASCII', -], -'assigned' => -[ -'Assigned', -], -'blank' => -[ -'Blank', -'XPosixBlank', -'HorizSpace', -], -'cntrl' => -[ -'Cntrl', -'XPosixCntrl', -], -'digit' => -[ -'Digit', -'XPosixDigit', -], -'graph' => -[ -'Graph', -'XPosixGraph', -], -'horizspace' => -[ -'Blank', -'XPosixBlank', -'HorizSpace', -], -'perlspace' => -[ -'PosixSpace', -'PosixSpace', -'PerlSpace', -], -'perlword' => -[ -'PosixWord', -'PosixWord', -'PerlWord', -], -'posixalnum' => -[ -'PosixAlnum', -], -'posixalpha' => -[ -'PosixAlpha', -], -'posixblank' => -[ -'PosixBlank', -], -'posixcntrl' => -[ -'PosixCntrl', -], -'posixdigit' => -[ -'PosixDigit', -], -'posixgraph' => -[ -'PosixGraph', -], -'posixlower' => -[ -'PosixLower', -], -'posixprint' => -[ -'PosixPrint', -], -'posixpunct' => -[ -'PosixPunct', -], -'posixspace' => -[ -'PosixSpace', -'PosixSpace', -'PerlSpace', -], -'posixupper' => -[ -'PosixUpper', -], -'posixword' => -[ -'PosixWord', -'PosixWord', -'PerlWord', -], -'posixxdigit' => -[ -'PosixXDigit', -], -'print' => -[ -'Print', -'XPosixPrint', -], -'punct' => -[ -'Punct', -], -'spaceperl' => -[ -'XPosixSpace', -'XPosixSpace', -'XPerlSpace', -'SpacePerl', -], -'title' => -[ -'Title', -'Titlecase', -], -'titlecase' => -[ -'Title', -'Titlecase', -], -'unicode' => -[ -'Any', -'Any', -'Unicode', -], -'vertspace' => -[ -'VertSpace', -], -'word' => -[ -'Word', -'XPosixWord', -], -'xdigit' => -[ -'XDigit', -'XPosixXDigit', -], -'xperlspace' => -[ -'XPosixSpace', -'XPosixSpace', -'XPerlSpace', -'SpacePerl', -], -'xposixalnum' => -[ -'Alnum', -'XPosixAlnum', -], -'xposixalpha' => -[ -'XPosixAlpha', -], -'xposixblank' => -[ -'Blank', -'XPosixBlank', -'HorizSpace', -], -'xposixcntrl' => -[ -'Cntrl', -'XPosixCntrl', -], -'xposixdigit' => -[ -'Digit', -'XPosixDigit', -], -'xposixgraph' => -[ -'Graph', -'XPosixGraph', -], -'xposixlower' => -[ -'XPosixLower', -], -'xposixprint' => -[ -'Print', -'XPosixPrint', -], -'xposixpunct' => -[ -'XPosixPunct', -], -'xposixspace' => -[ -'XPosixSpace', -'XPosixSpace', -'XPerlSpace', -'SpacePerl', -], -'xposixupper' => -[ -'XPosixUpper', -], -'xposixword' => -[ -'Word', -'XPosixWord', -], -'xposixxdigit' => -[ -'XDigit', -'XPosixXDigit', -], -); - -# Keys are standard property name; values are each one's aliases -%Unicode::UCD::prop_aliases = ( -'age' => -[ -'age', -'Age', -], -'ahex' => -[ -'AHex', -'ASCII_Hex_Digit', -], -'alpha' => -[ -'Alpha', -'Alphabetic', -], -'bc' => -[ -'bc', -'Bidi_Class', -], -'bidic' => -[ -'Bidi_C', -'Bidi_Control', -], -'bidim' => -[ -'Bidi_M', -'Bidi_Mirrored', -], -'blk' => -[ -'blk', -'Block', -], -'bmg' => -[ -'bmg', -'Bidi_Mirroring_Glyph', -], -'bpb' => -[ -'bpb', -'Bidi_Paired_Bracket', -], -'bpt' => -[ -'bpt', -'Bidi_Paired_Bracket_Type', -], -'cased' => -[ -'Cased', -'Cased', -], -'ccc' => -[ -'ccc', -'Canonical_Combining_Class', -], -'ce' => -[ -'CE', -'Composition_Exclusion', -], -'cf' => -[ -'cf', -'Case_Folding', -], -'ci' => -[ -'CI', -'Case_Ignorable', -], -'compex' => -[ -'Comp_Ex', -'Full_Composition_Exclusion', -], -'cwcf' => -[ -'CWCF', -'Changes_When_Casefolded', -], -'cwcm' => -[ -'CWCM', -'Changes_When_Casemapped', -], -'cwkcf' => -[ -'CWKCF', -'Changes_When_NFKC_Casefolded', -], -'cwl' => -[ -'CWL', -'Changes_When_Lowercased', -], -'cwt' => -[ -'CWT', -'Changes_When_Titlecased', -], -'cwu' => -[ -'CWU', -'Changes_When_Uppercased', -], -'dash' => -[ -'Dash', -'Dash', -], -'dep' => -[ -'Dep', -'Deprecated', -], -'di' => -[ -'DI', -'Default_Ignorable_Code_Point', -], -'dia' => -[ -'Dia', -'Diacritic', -], -'dm' => -[ -'dm', -'Decomposition_Mapping', -], -'dt' => -[ -'dt', -'Decomposition_Type', -], -'ea' => -[ -'ea', -'East_Asian_Width', -], -'ext' => -[ -'Ext', -'Extender', -], -'gc' => -[ -'gc', -'General_Category', -'Category', -], -'gcb' => -[ -'GCB', -'Grapheme_Cluster_Break', -'_Perl_GCB', -], -'grbase' => -[ -'Gr_Base', -'Grapheme_Base', -], -'grext' => -[ -'Gr_Ext', -'Grapheme_Extend', -], -'hex' => -[ -'Hex', -'Hex_Digit', -], -'hst' => -[ -'hst', -'Hangul_Syllable_Type', -], -'hyphen' => -[ -'Hyphen', -'Hyphen', -], -'idc' => -[ -'IDC', -'ID_Continue', -], -'ideo' => -[ -'Ideo', -'Ideographic', -], -'ids' => -[ -'IDS', -'ID_Start', -], -'idsb' => -[ -'IDSB', -'IDS_Binary_Operator', -], -'idst' => -[ -'IDST', -'IDS_Trinary_Operator', -], -'in' => -[ -'In', -'Present_In', -], -'inpc' => -[ -'InPC', -'Indic_Positional_Category', -], -'insc' => -[ -'InSC', -'Indic_Syllabic_Category', -], -'isc' => -[ -'isc', -'ISO_Comment', -], -'jg' => -[ -'jg', -'Joining_Group', -], -'joinc' => -[ -'Join_C', -'Join_Control', -], -'jt' => -[ -'jt', -'Joining_Type', -], -'lb' => -[ -'lb', -'Line_Break', -], -'lc' => -[ -'lc', -'Lowercase_Mapping', -], -'loe' => -[ -'LOE', -'Logical_Order_Exception', -], -'lower' => -[ -'Lower', -'Lowercase', -], -'math' => -[ -'Math', -'Math', -], -'na' => -[ -'na', -'Name', -], -'na1' => -[ -'na1', -'Unicode_1_Name', -], -'namealias' => -[ -'Name_Alias', -'Name_Alias', -'_Perl_Name_Alias', -], -'nchar' => -[ -'NChar', -'Noncharacter_Code_Point', -], -'nfcqc' => -[ -'NFC_QC', -'NFC_Quick_Check', -], -'nfdqc' => -[ -'NFD_QC', -'NFD_Quick_Check', -], -'nfkccf' => -[ -'NFKC_CF', -'NFKC_Casefold', -], -'nfkcqc' => -[ -'NFKC_QC', -'NFKC_Quick_Check', -], -'nfkdqc' => -[ -'NFKD_QC', -'NFKD_Quick_Check', -], -'nt' => -[ -'nt', -'Numeric_Type', -], -'nv' => -[ -'nv', -'Numeric_Value', -], -'patsyn' => -[ -'Pat_Syn', -'Pattern_Syntax', -], -'patws' => -[ -'Pat_WS', -'Pattern_White_Space', -], -'perldecimaldigit' => -[ -'Perl_Decimal_Digit', -'Perl_Decimal_Digit', -], -'qmark' => -[ -'QMark', -'Quotation_Mark', -], -'radical' => -[ -'Radical', -'Radical', -], -'sb' => -[ -'SB', -'Sentence_Break', -'_Perl_SB', -], -'sc' => -[ -'sc', -'Script', -], -'scf' => -[ -'scf', -'Simple_Case_Folding', -'Sfc', -], -'scx' => -[ -'scx', -'Script_Extensions', -], -'sd' => -[ -'SD', -'Soft_Dotted', -], -'slc' => -[ -'slc', -'Simple_Lowercase_Mapping', -], -'stc' => -[ -'stc', -'Simple_Titlecase_Mapping', -], -'sterm' => -[ -'STerm', -'STerm', -], -'suc' => -[ -'suc', -'Simple_Uppercase_Mapping', -], -'tc' => -[ -'tc', -'Titlecase_Mapping', -], -'term' => -[ -'Term', -'Terminal_Punctuation', -], -'uc' => -[ -'uc', -'Uppercase_Mapping', -], -'uideo' => -[ -'UIdeo', -'Unified_Ideograph', -], -'upper' => -[ -'Upper', -'Uppercase', -], -'vs' => -[ -'VS', -'Variation_Selector', -], -'wb' => -[ -'WB', -'Word_Break', -], -'wspace' => -[ -'WSpace', -'White_Space', -'Space', -], -'xidc' => -[ -'XIDC', -'XID_Continue', -], -'xids' => -[ -'XIDS', -'XID_Start', -], -); - -# Keys of top level are standard property name; values are keys to another -# hash, Each one is one of the property's values, in standard form. The -# values are that prop-val's aliases. If only one specified, the short and -# long alias are identical. -%Unicode::UCD::prop_value_aliases = ( -'age' => -{ -'1.1' => -[ -'1.1', -'V1_1', -], -'2.0' => -[ -'2.0', -'V2_0', -], -'2.1' => -[ -'2.1', -'V2_1', -], -'3.0' => -[ -'3.0', -'V3_0', -], -'3.1' => -[ -'3.1', -'V3_1', -], -'3.2' => -[ -'3.2', -'V3_2', -], -'4.0' => -[ -'4.0', -'V4_0', -], -'4.1' => -[ -'4.1', -'V4_1', -], -'5.0' => -[ -'5.0', -'V5_0', -], -'5.1' => -[ -'5.1', -'V5_1', -], -'5.2' => -[ -'5.2', -'V5_2', -], -'6.0' => -[ -'6.0', -'V6_0', -], -'6.1' => -[ -'6.1', -'V6_1', -], -'6.2' => -[ -'6.2', -'V6_2', -], -'6.3' => -[ -'6.3', -'V6_3', -], -'7.0' => -[ -'7.0', -'V7_0', -], -'8.0' => -[ -'8.0', -'V8_0', -], -'na' => -[ -'NA', -'Unassigned', -], -}, -'ahex' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'alpha' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'bc' => -{ -'al' => -[ -'AL', -'Arabic_Letter', -], -'an' => -[ -'AN', -'Arabic_Number', -], -'b' => -[ -'B', -'Paragraph_Separator', -], -'bn' => -[ -'BN', -'Boundary_Neutral', -], -'cs' => -[ -'CS', -'Common_Separator', -], -'en' => -[ -'EN', -'European_Number', -], -'es' => -[ -'ES', -'European_Separator', -], -'et' => -[ -'ET', -'European_Terminator', -], -'fsi' => -[ -'FSI', -'First_Strong_Isolate', -], -'l' => -[ -'L', -'Left_To_Right', -], -'lre' => -[ -'LRE', -'Left_To_Right_Embedding', -], -'lri' => -[ -'LRI', -'Left_To_Right_Isolate', -], -'lro' => -[ -'LRO', -'Left_To_Right_Override', -], -'nsm' => -[ -'NSM', -'Nonspacing_Mark', -], -'on' => -[ -'ON', -'Other_Neutral', -], -'pdf' => -[ -'PDF', -'Pop_Directional_Format', -], -'pdi' => -[ -'PDI', -'Pop_Directional_Isolate', -], -'r' => -[ -'R', -'Right_To_Left', -], -'rle' => -[ -'RLE', -'Right_To_Left_Embedding', -], -'rli' => -[ -'RLI', -'Right_To_Left_Isolate', -], -'rlo' => -[ -'RLO', -'Right_To_Left_Override', -], -'s' => -[ -'S', -'Segment_Separator', -], -'ws' => -[ -'WS', -'White_Space', -], -}, -'bidic' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'bidim' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'blk' => -{ -'aegeannumbers' => -[ -'Aegean_Numbers', -], -'ahom' => -[ -'Ahom', -], -'alchemical' => -[ -'Alchemical', -'Alchemical_Symbols', -], -'alphabeticpf' => -[ -'Alphabetic_PF', -'Alphabetic_Presentation_Forms', -], -'anatolianhieroglyphs' => -[ -'Anatolian_Hieroglyphs', -], -'ancientgreekmusic' => -[ -'Ancient_Greek_Music', -'Ancient_Greek_Musical_Notation', -], -'ancientgreeknumbers' => -[ -'Ancient_Greek_Numbers', -], -'ancientsymbols' => -[ -'Ancient_Symbols', -], -'arabic' => -[ -'Arabic', -], -'arabicexta' => -[ -'Arabic_Ext_A', -'Arabic_Extended_A', -], -'arabicmath' => -[ -'Arabic_Math', -'Arabic_Mathematical_Alphabetic_Symbols', -], -'arabicpfa' => -[ -'Arabic_PF_A', -'Arabic_Presentation_Forms_A', -], -'arabicpfb' => -[ -'Arabic_PF_B', -'Arabic_Presentation_Forms_B', -], -'arabicsup' => -[ -'Arabic_Sup', -'Arabic_Supplement', -], -'armenian' => -[ -'Armenian', -], -'arrows' => -[ -'Arrows', -], -'ascii' => -[ -'ASCII', -'Basic_Latin', -], -'avestan' => -[ -'Avestan', -], -'balinese' => -[ -'Balinese', -], -'bamum' => -[ -'Bamum', -], -'bamumsup' => -[ -'Bamum_Sup', -'Bamum_Supplement', -], -'bassavah' => -[ -'Bassa_Vah', -], -'batak' => -[ -'Batak', -], -'bengali' => -[ -'Bengali', -], -'blockelements' => -[ -'Block_Elements', -], -'bopomofo' => -[ -'Bopomofo', -], -'bopomofoext' => -[ -'Bopomofo_Ext', -'Bopomofo_Extended', -], -'boxdrawing' => -[ -'Box_Drawing', -], -'brahmi' => -[ -'Brahmi', -], -'braille' => -[ -'Braille', -'Braille_Patterns', -], -'buginese' => -[ -'Buginese', -], -'buhid' => -[ -'Buhid', -], -'byzantinemusic' => -[ -'Byzantine_Music', -'Byzantine_Musical_Symbols', -], -'carian' => -[ -'Carian', -], -'caucasianalbanian' => -[ -'Caucasian_Albanian', -], -'chakma' => -[ -'Chakma', -], -'cham' => -[ -'Cham', -], -'cherokee' => -[ -'Cherokee', -], -'cherokeesup' => -[ -'Cherokee_Sup', -'Cherokee_Supplement', -], -'cjk' => -[ -'CJK', -'CJK_Unified_Ideographs', -], -'cjkcompat' => -[ -'CJK_Compat', -'CJK_Compatibility', -], -'cjkcompatforms' => -[ -'CJK_Compat_Forms', -'CJK_Compatibility_Forms', -], -'cjkcompatideographs' => -[ -'CJK_Compat_Ideographs', -'CJK_Compatibility_Ideographs', -], -'cjkcompatideographssup' => -[ -'CJK_Compat_Ideographs_Sup', -'CJK_Compatibility_Ideographs_Supplement', -], -'cjkexta' => -[ -'CJK_Ext_A', -'CJK_Unified_Ideographs_Extension_A', -], -'cjkextb' => -[ -'CJK_Ext_B', -'CJK_Unified_Ideographs_Extension_B', -], -'cjkextc' => -[ -'CJK_Ext_C', -'CJK_Unified_Ideographs_Extension_C', -], -'cjkextd' => -[ -'CJK_Ext_D', -'CJK_Unified_Ideographs_Extension_D', -], -'cjkexte' => -[ -'CJK_Ext_E', -'CJK_Unified_Ideographs_Extension_E', -], -'cjkradicalssup' => -[ -'CJK_Radicals_Sup', -'CJK_Radicals_Supplement', -], -'cjkstrokes' => -[ -'CJK_Strokes', -], -'cjksymbols' => -[ -'CJK_Symbols', -'CJK_Symbols_And_Punctuation', -], -'compatjamo' => -[ -'Compat_Jamo', -'Hangul_Compatibility_Jamo', -], -'controlpictures' => -[ -'Control_Pictures', -], -'coptic' => -[ -'Coptic', -], -'copticepactnumbers' => -[ -'Coptic_Epact_Numbers', -], -'countingrod' => -[ -'Counting_Rod', -'Counting_Rod_Numerals', -], -'cuneiform' => -[ -'Cuneiform', -], -'cuneiformnumbers' => -[ -'Cuneiform_Numbers', -'Cuneiform_Numbers_And_Punctuation', -], -'currencysymbols' => -[ -'Currency_Symbols', -], -'cypriotsyllabary' => -[ -'Cypriot_Syllabary', -], -'cyrillic' => -[ -'Cyrillic', -], -'cyrillicexta' => -[ -'Cyrillic_Ext_A', -'Cyrillic_Extended_A', -], -'cyrillicextb' => -[ -'Cyrillic_Ext_B', -'Cyrillic_Extended_B', -], -'cyrillicsup' => -[ -'Cyrillic_Sup', -'Cyrillic_Supplement', -'Cyrillic_Supplementary', -], -'deseret' => -[ -'Deseret', -], -'devanagari' => -[ -'Devanagari', -], -'devanagariext' => -[ -'Devanagari_Ext', -'Devanagari_Extended', -], -'diacriticals' => -[ -'Diacriticals', -'Combining_Diacritical_Marks', -], -'diacriticalsext' => -[ -'Diacriticals_Ext', -'Combining_Diacritical_Marks_Extended', -], -'diacriticalsforsymbols' => -[ -'Diacriticals_For_Symbols', -'Combining_Diacritical_Marks_For_Symbols', -'Combining_Marks_For_Symbols', -], -'diacriticalssup' => -[ -'Diacriticals_Sup', -'Combining_Diacritical_Marks_Supplement', -], -'dingbats' => -[ -'Dingbats', -], -'domino' => -[ -'Domino', -'Domino_Tiles', -], -'duployan' => -[ -'Duployan', -], -'earlydynasticcuneiform' => -[ -'Early_Dynastic_Cuneiform', -], -'egyptianhieroglyphs' => -[ -'Egyptian_Hieroglyphs', -], -'elbasan' => -[ -'Elbasan', -], -'emoticons' => -[ -'Emoticons', -], -'enclosedalphanum' => -[ -'Enclosed_Alphanum', -'Enclosed_Alphanumerics', -], -'enclosedalphanumsup' => -[ -'Enclosed_Alphanum_Sup', -'Enclosed_Alphanumeric_Supplement', -], -'enclosedcjk' => -[ -'Enclosed_CJK', -'Enclosed_CJK_Letters_And_Months', -], -'enclosedideographicsup' => -[ -'Enclosed_Ideographic_Sup', -'Enclosed_Ideographic_Supplement', -], -'ethiopic' => -[ -'Ethiopic', -], -'ethiopicext' => -[ -'Ethiopic_Ext', -'Ethiopic_Extended', -], -'ethiopicexta' => -[ -'Ethiopic_Ext_A', -'Ethiopic_Extended_A', -], -'ethiopicsup' => -[ -'Ethiopic_Sup', -'Ethiopic_Supplement', -], -'geometricshapes' => -[ -'Geometric_Shapes', -], -'geometricshapesext' => -[ -'Geometric_Shapes_Ext', -'Geometric_Shapes_Extended', -], -'georgian' => -[ -'Georgian', -], -'georgiansup' => -[ -'Georgian_Sup', -'Georgian_Supplement', -], -'glagolitic' => -[ -'Glagolitic', -], -'gothic' => -[ -'Gothic', -], -'grantha' => -[ -'Grantha', -], -'greek' => -[ -'Greek', -'Greek_And_Coptic', -], -'greekext' => -[ -'Greek_Ext', -'Greek_Extended', -], -'gujarati' => -[ -'Gujarati', -], -'gurmukhi' => -[ -'Gurmukhi', -], -'halfandfullforms' => -[ -'Half_And_Full_Forms', -'Halfwidth_And_Fullwidth_Forms', -], -'halfmarks' => -[ -'Half_Marks', -'Combining_Half_Marks', -], -'hangul' => -[ -'Hangul', -'Hangul_Syllables', -], -'hanunoo' => -[ -'Hanunoo', -], -'hatran' => -[ -'Hatran', -], -'hebrew' => -[ -'Hebrew', -], -'highpusurrogates' => -[ -'High_PU_Surrogates', -'High_Private_Use_Surrogates', -], -'highsurrogates' => -[ -'High_Surrogates', -], -'hiragana' => -[ -'Hiragana', -], -'idc' => -[ -'IDC', -'Ideographic_Description_Characters', -], -'imperialaramaic' => -[ -'Imperial_Aramaic', -], -'indicnumberforms' => -[ -'Indic_Number_Forms', -'Common_Indic_Number_Forms', -], -'inscriptionalpahlavi' => -[ -'Inscriptional_Pahlavi', -], -'inscriptionalparthian' => -[ -'Inscriptional_Parthian', -], -'ipaext' => -[ -'IPA_Ext', -'IPA_Extensions', -], -'jamo' => -[ -'Jamo', -'Hangul_Jamo', -], -'jamoexta' => -[ -'Jamo_Ext_A', -'Hangul_Jamo_Extended_A', -], -'jamoextb' => -[ -'Jamo_Ext_B', -'Hangul_Jamo_Extended_B', -], -'javanese' => -[ -'Javanese', -], -'kaithi' => -[ -'Kaithi', -], -'kanasup' => -[ -'Kana_Sup', -'Kana_Supplement', -], -'kanbun' => -[ -'Kanbun', -], -'kangxi' => -[ -'Kangxi', -'Kangxi_Radicals', -], -'kannada' => -[ -'Kannada', -], -'katakana' => -[ -'Katakana', -], -'katakanaext' => -[ -'Katakana_Ext', -'Katakana_Phonetic_Extensions', -], -'kayahli' => -[ -'Kayah_Li', -], -'kharoshthi' => -[ -'Kharoshthi', -], -'khmer' => -[ -'Khmer', -], -'khmersymbols' => -[ -'Khmer_Symbols', -], -'khojki' => -[ -'Khojki', -], -'khudawadi' => -[ -'Khudawadi', -], -'lao' => -[ -'Lao', -], -'latin1sup' => -[ -'Latin_1_Sup', -'Latin_1_Supplement', -'Latin_1', -], -'latinexta' => -[ -'Latin_Ext_A', -'Latin_Extended_A', -], -'latinextadditional' => -[ -'Latin_Ext_Additional', -'Latin_Extended_Additional', -], -'latinextb' => -[ -'Latin_Ext_B', -'Latin_Extended_B', -], -'latinextc' => -[ -'Latin_Ext_C', -'Latin_Extended_C', -], -'latinextd' => -[ -'Latin_Ext_D', -'Latin_Extended_D', -], -'latinexte' => -[ -'Latin_Ext_E', -'Latin_Extended_E', -], -'lepcha' => -[ -'Lepcha', -], -'letterlikesymbols' => -[ -'Letterlike_Symbols', -], -'limbu' => -[ -'Limbu', -], -'lineara' => -[ -'Linear_A', -], -'linearbideograms' => -[ -'Linear_B_Ideograms', -], -'linearbsyllabary' => -[ -'Linear_B_Syllabary', -], -'lisu' => -[ -'Lisu', -], -'lowsurrogates' => -[ -'Low_Surrogates', -], -'lycian' => -[ -'Lycian', -], -'lydian' => -[ -'Lydian', -], -'mahajani' => -[ -'Mahajani', -], -'mahjong' => -[ -'Mahjong', -'Mahjong_Tiles', -], -'malayalam' => -[ -'Malayalam', -], -'mandaic' => -[ -'Mandaic', -], -'manichaean' => -[ -'Manichaean', -], -'mathalphanum' => -[ -'Math_Alphanum', -'Mathematical_Alphanumeric_Symbols', -], -'mathoperators' => -[ -'Math_Operators', -'Mathematical_Operators', -], -'meeteimayek' => -[ -'Meetei_Mayek', -], -'meeteimayekext' => -[ -'Meetei_Mayek_Ext', -'Meetei_Mayek_Extensions', -], -'mendekikakui' => -[ -'Mende_Kikakui', -], -'meroiticcursive' => -[ -'Meroitic_Cursive', -], -'meroitichieroglyphs' => -[ -'Meroitic_Hieroglyphs', -], -'miao' => -[ -'Miao', -], -'miscarrows' => -[ -'Misc_Arrows', -'Miscellaneous_Symbols_And_Arrows', -], -'miscmathsymbolsa' => -[ -'Misc_Math_Symbols_A', -'Miscellaneous_Mathematical_Symbols_A', -], -'miscmathsymbolsb' => -[ -'Misc_Math_Symbols_B', -'Miscellaneous_Mathematical_Symbols_B', -], -'miscpictographs' => -[ -'Misc_Pictographs', -'Miscellaneous_Symbols_And_Pictographs', -], -'miscsymbols' => -[ -'Misc_Symbols', -'Miscellaneous_Symbols', -], -'misctechnical' => -[ -'Misc_Technical', -'Miscellaneous_Technical', -], -'modi' => -[ -'Modi', -], -'modifierletters' => -[ -'Modifier_Letters', -'Spacing_Modifier_Letters', -], -'modifiertoneletters' => -[ -'Modifier_Tone_Letters', -], -'mongolian' => -[ -'Mongolian', -], -'mro' => -[ -'Mro', -], -'multani' => -[ -'Multani', -], -'music' => -[ -'Music', -'Musical_Symbols', -], -'myanmar' => -[ -'Myanmar', -], -'myanmarexta' => -[ -'Myanmar_Ext_A', -'Myanmar_Extended_A', -], -'myanmarextb' => -[ -'Myanmar_Ext_B', -'Myanmar_Extended_B', -], -'nabataean' => -[ -'Nabataean', -], -'nb' => -[ -'NB', -'No_Block', -], -'newtailue' => -[ -'New_Tai_Lue', -], -'nko' => -[ -'NKo', -], -'numberforms' => -[ -'Number_Forms', -], -'ocr' => -[ -'OCR', -'Optical_Character_Recognition', -], -'ogham' => -[ -'Ogham', -], -'olchiki' => -[ -'Ol_Chiki', -], -'oldhungarian' => -[ -'Old_Hungarian', -], -'olditalic' => -[ -'Old_Italic', -], -'oldnortharabian' => -[ -'Old_North_Arabian', -], -'oldpermic' => -[ -'Old_Permic', -], -'oldpersian' => -[ -'Old_Persian', -], -'oldsoutharabian' => -[ -'Old_South_Arabian', -], -'oldturkic' => -[ -'Old_Turkic', -], -'oriya' => -[ -'Oriya', -], -'ornamentaldingbats' => -[ -'Ornamental_Dingbats', -], -'osmanya' => -[ -'Osmanya', -], -'pahawhhmong' => -[ -'Pahawh_Hmong', -], -'palmyrene' => -[ -'Palmyrene', -], -'paucinhau' => -[ -'Pau_Cin_Hau', -], -'phagspa' => -[ -'Phags_Pa', -], -'phaistos' => -[ -'Phaistos', -'Phaistos_Disc', -], -'phoenician' => -[ -'Phoenician', -], -'phoneticext' => -[ -'Phonetic_Ext', -'Phonetic_Extensions', -], -'phoneticextsup' => -[ -'Phonetic_Ext_Sup', -'Phonetic_Extensions_Supplement', -], -'playingcards' => -[ -'Playing_Cards', -], -'psalterpahlavi' => -[ -'Psalter_Pahlavi', -], -'pua' => -[ -'PUA', -'Private_Use_Area', -'Private_Use', -], -'punctuation' => -[ -'Punctuation', -'General_Punctuation', -], -'rejang' => -[ -'Rejang', -], -'rumi' => -[ -'Rumi', -'Rumi_Numeral_Symbols', -], -'runic' => -[ -'Runic', -], -'samaritan' => -[ -'Samaritan', -], -'saurashtra' => -[ -'Saurashtra', -], -'sharada' => -[ -'Sharada', -], -'shavian' => -[ -'Shavian', -], -'shorthandformatcontrols' => -[ -'Shorthand_Format_Controls', -], -'siddham' => -[ -'Siddham', -], -'sinhala' => -[ -'Sinhala', -], -'sinhalaarchaicnumbers' => -[ -'Sinhala_Archaic_Numbers', -], -'smallforms' => -[ -'Small_Forms', -'Small_Form_Variants', -], -'sorasompeng' => -[ -'Sora_Sompeng', -], -'specials' => -[ -'Specials', -], -'sundanese' => -[ -'Sundanese', -], -'sundanesesup' => -[ -'Sundanese_Sup', -'Sundanese_Supplement', -], -'suparrowsa' => -[ -'Sup_Arrows_A', -'Supplemental_Arrows_A', -], -'suparrowsb' => -[ -'Sup_Arrows_B', -'Supplemental_Arrows_B', -], -'suparrowsc' => -[ -'Sup_Arrows_C', -'Supplemental_Arrows_C', -], -'superandsub' => -[ -'Super_And_Sub', -'Superscripts_And_Subscripts', -], -'supmathoperators' => -[ -'Sup_Math_Operators', -'Supplemental_Mathematical_Operators', -], -'suppuaa' => -[ -'Sup_PUA_A', -'Supplementary_Private_Use_Area_A', -], -'suppuab' => -[ -'Sup_PUA_B', -'Supplementary_Private_Use_Area_B', -], -'suppunctuation' => -[ -'Sup_Punctuation', -'Supplemental_Punctuation', -], -'supsymbolsandpictographs' => -[ -'Sup_Symbols_And_Pictographs', -'Supplemental_Symbols_And_Pictographs', -], -'suttonsignwriting' => -[ -'Sutton_SignWriting', -], -'sylotinagri' => -[ -'Syloti_Nagri', -], -'syriac' => -[ -'Syriac', -], -'tagalog' => -[ -'Tagalog', -], -'tagbanwa' => -[ -'Tagbanwa', -], -'tags' => -[ -'Tags', -], -'taile' => -[ -'Tai_Le', -], -'taitham' => -[ -'Tai_Tham', -], -'taiviet' => -[ -'Tai_Viet', -], -'taixuanjing' => -[ -'Tai_Xuan_Jing', -'Tai_Xuan_Jing_Symbols', -], -'takri' => -[ -'Takri', -], -'tamil' => -[ -'Tamil', -], -'telugu' => -[ -'Telugu', -], -'thaana' => -[ -'Thaana', -], -'thai' => -[ -'Thai', -], -'tibetan' => -[ -'Tibetan', -], -'tifinagh' => -[ -'Tifinagh', -], -'tirhuta' => -[ -'Tirhuta', -], -'transportandmap' => -[ -'Transport_And_Map', -'Transport_And_Map_Symbols', -], -'ucas' => -[ -'UCAS', -'Unified_Canadian_Aboriginal_Syllabics', -'Canadian_Syllabics', -], -'ucasext' => -[ -'UCAS_Ext', -'Unified_Canadian_Aboriginal_Syllabics_Extended', -], -'ugaritic' => -[ -'Ugaritic', -], -'vai' => -[ -'Vai', -], -'vedicext' => -[ -'Vedic_Ext', -'Vedic_Extensions', -], -'verticalforms' => -[ -'Vertical_Forms', -], -'vs' => -[ -'VS', -'Variation_Selectors', -], -'vssup' => -[ -'VS_Sup', -'Variation_Selectors_Supplement', -], -'warangciti' => -[ -'Warang_Citi', -], -'yijing' => -[ -'Yijing', -'Yijing_Hexagram_Symbols', -], -'yiradicals' => -[ -'Yi_Radicals', -], -'yisyllables' => -[ -'Yi_Syllables', -], -}, -'bpt' => -{ -'c' => -[ -'c', -'Close', -], -'n' => -[ -'n', -'None', -], -'o' => -[ -'o', -'Open', -], -}, -'cased' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'ccc' => -{ -'a' => -[ -'A', -'Above', -230, -], -'al' => -[ -'AL', -'Above_Left', -228, -], -'ar' => -[ -'AR', -'Above_Right', -232, -], -'ata' => -[ -'ATA', -'Attached_Above', -214, -], -'atar' => -[ -'ATAR', -'Attached_Above_Right', -216, -], -'atb' => -[ -'ATB', -'Attached_Below', -202, -], -'atbl' => -[ -'ATBL', -'Attached_Below_Left', -200, -], -'b' => -[ -'B', -'Below', -220, -], -'bl' => -[ -'BL', -'Below_Left', -218, -], -'br' => -[ -'BR', -'Below_Right', -222, -], -'ccc10' => -[ -'CCC10', -'CCC10', -10, -], -'ccc103' => -[ -'CCC103', -'CCC103', -103, -], -'ccc107' => -[ -'CCC107', -'CCC107', -107, -], -'ccc11' => -[ -'CCC11', -'CCC11', -11, -], -'ccc118' => -[ -'CCC118', -'CCC118', -118, -], -'ccc12' => -[ -'CCC12', -'CCC12', -12, -], -'ccc122' => -[ -'CCC122', -'CCC122', -122, -], -'ccc129' => -[ -'CCC129', -'CCC129', -129, -], -'ccc13' => -[ -'CCC13', -'CCC13', -13, -], -'ccc130' => -[ -'CCC130', -'CCC130', -130, -], -'ccc132' => -[ -'CCC132', -'CCC132', -132, -], -'ccc133' => -[ -'CCC133', -'CCC133', -133, -], -'ccc14' => -[ -'CCC14', -'CCC14', -14, -], -'ccc15' => -[ -'CCC15', -'CCC15', -15, -], -'ccc16' => -[ -'CCC16', -'CCC16', -16, -], -'ccc17' => -[ -'CCC17', -'CCC17', -17, -], -'ccc18' => -[ -'CCC18', -'CCC18', -18, -], -'ccc19' => -[ -'CCC19', -'CCC19', -19, -], -'ccc20' => -[ -'CCC20', -'CCC20', -20, -], -'ccc21' => -[ -'CCC21', -'CCC21', -21, -], -'ccc22' => -[ -'CCC22', -'CCC22', -22, -], -'ccc23' => -[ -'CCC23', -'CCC23', -23, -], -'ccc24' => -[ -'CCC24', -'CCC24', -24, -], -'ccc25' => -[ -'CCC25', -'CCC25', -25, -], -'ccc26' => -[ -'CCC26', -'CCC26', -26, -], -'ccc27' => -[ -'CCC27', -'CCC27', -27, -], -'ccc28' => -[ -'CCC28', -'CCC28', -28, -], -'ccc29' => -[ -'CCC29', -'CCC29', -29, -], -'ccc30' => -[ -'CCC30', -'CCC30', -30, -], -'ccc31' => -[ -'CCC31', -'CCC31', -31, -], -'ccc32' => -[ -'CCC32', -'CCC32', -32, -], -'ccc33' => -[ -'CCC33', -'CCC33', -33, -], -'ccc34' => -[ -'CCC34', -'CCC34', -34, -], -'ccc35' => -[ -'CCC35', -'CCC35', -35, -], -'ccc36' => -[ -'CCC36', -'CCC36', -36, -], -'ccc84' => -[ -'CCC84', -'CCC84', -84, -], -'ccc91' => -[ -'CCC91', -'CCC91', -91, -], -'da' => -[ -'DA', -'Double_Above', -234, -], -'db' => -[ -'DB', -'Double_Below', -233, -], -'is' => -[ -'IS', -'Iota_Subscript', -240, -], -'kv' => -[ -'KV', -'Kana_Voicing', -8, -], -'l' => -[ -'L', -'Left', -224, -], -'nk' => -[ -'NK', -'Nukta', -7, -], -'nr' => -[ -'NR', -'Not_Reordered', -0, -], -'ov' => -[ -'OV', -'Overlay', -1, -], -'r' => -[ -'R', -'Right', -226, -], -'vr' => -[ -'VR', -'Virama', -9, -], -}, -'ce' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'ci' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'compex' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'cwcf' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'cwcm' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'cwkcf' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'cwl' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'cwt' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'cwu' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'dash' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'dep' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'di' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'dia' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'dt' => -{ -'can' => -[ -'Can', -'Canonical', -], -'com' => -[ -'Com', -'Compat', -], -'enc' => -[ -'Enc', -'Circle', -], -'fin' => -[ -'Fin', -'Final', -], -'font' => -[ -'Font', -], -'fra' => -[ -'Fra', -'Fraction', -], -'init' => -[ -'Init', -'Initial', -], -'iso' => -[ -'Iso', -'Isolated', -], -'med' => -[ -'Med', -'Medial', -], -'nar' => -[ -'Nar', -'Narrow', -], -'nb' => -[ -'Nb', -'Nobreak', -], -'noncanon' => -[ -'Non_Canon', -'Non_Canonical', -], -'none' => -[ -'None', -], -'sml' => -[ -'Sml', -'Small', -], -'sqr' => -[ -'Sqr', -'Square', -], -'sub' => -[ -'Sub', -], -'sup' => -[ -'Sup', -'Super', -], -'vert' => -[ -'Vert', -'Vertical', -], -'wide' => -[ -'Wide', -], -}, -'ea' => -{ -'a' => -[ -'A', -'Ambiguous', -], -'f' => -[ -'F', -'Fullwidth', -], -'h' => -[ -'H', -'Halfwidth', -], -'n' => -[ -'N', -'Neutral', -], -'na' => -[ -'Na', -'Narrow', -], -'w' => -[ -'W', -'Wide', -], -}, -'ext' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'gc' => -{ -'c' => -[ -'C', -'Other', -], -'cc' => -[ -'Cc', -'Control', -'Cntrl', -], -'cf' => -[ -'Cf', -'Format', -], -'cn' => -[ -'Cn', -'Unassigned', -], -'co' => -[ -'Co', -'Private_Use', -], -'cs' => -[ -'Cs', -'Surrogate', -], -'l' => -[ -'L', -'Letter', -], -'lc' => -[ -'LC', -'Cased_Letter', -], -'ll' => -[ -'Ll', -'Lowercase_Letter', -], -'lm' => -[ -'Lm', -'Modifier_Letter', -], -'lo' => -[ -'Lo', -'Other_Letter', -], -'lt' => -[ -'Lt', -'Titlecase_Letter', -], -'lu' => -[ -'Lu', -'Uppercase_Letter', -], -'m' => -[ -'M', -'Mark', -'Combining_Mark', -], -'mc' => -[ -'Mc', -'Spacing_Mark', -], -'me' => -[ -'Me', -'Enclosing_Mark', -], -'mn' => -[ -'Mn', -'Nonspacing_Mark', -], -'n' => -[ -'N', -'Number', -], -'nd' => -[ -'Nd', -'Decimal_Number', -'Digit', -], -'nl' => -[ -'Nl', -'Letter_Number', -], -'no' => -[ -'No', -'Other_Number', -], -'p' => -[ -'P', -'Punctuation', -'Punct', -], -'pc' => -[ -'Pc', -'Connector_Punctuation', -], -'pd' => -[ -'Pd', -'Dash_Punctuation', -], -'pe' => -[ -'Pe', -'Close_Punctuation', -], -'pf' => -[ -'Pf', -'Final_Punctuation', -], -'pi' => -[ -'Pi', -'Initial_Punctuation', -], -'po' => -[ -'Po', -'Other_Punctuation', -], -'ps' => -[ -'Ps', -'Open_Punctuation', -], -'s' => -[ -'S', -'Symbol', -], -'sc' => -[ -'Sc', -'Currency_Symbol', -], -'sk' => -[ -'Sk', -'Modifier_Symbol', -], -'sm' => -[ -'Sm', -'Math_Symbol', -], -'so' => -[ -'So', -'Other_Symbol', -], -'z' => -[ -'Z', -'Separator', -], -'zl' => -[ -'Zl', -'Line_Separator', -], -'zp' => -[ -'Zp', -'Paragraph_Separator', -], -'zs' => -[ -'Zs', -'Space_Separator', -], -}, -'gcb' => -{ -'cn' => -[ -'CN', -'Control', -], -'cr' => -[ -'CR', -], -'ex' => -[ -'EX', -'Extend', -], -'l' => -[ -'L', -], -'lf' => -[ -'LF', -], -'lv' => -[ -'LV', -], -'lvt' => -[ -'LVT', -], -'pp' => -[ -'PP', -'Prepend', -], -'ri' => -[ -'RI', -'Regional_Indicator', -], -'sm' => -[ -'SM', -'SpacingMark', -], -'t' => -[ -'T', -], -'v' => -[ -'V', -], -'xx' => -[ -'XX', -'Other', -], -}, -'grbase' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'grext' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'hex' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'hst' => -{ -'l' => -[ -'L', -'Leading_Jamo', -], -'lv' => -[ -'LV', -'LV_Syllable', -], -'lvt' => -[ -'LVT', -'LVT_Syllable', -], -'na' => -[ -'NA', -'Not_Applicable', -], -'t' => -[ -'T', -'Trailing_Jamo', -], -'v' => -[ -'V', -'Vowel_Jamo', -], -}, -'hyphen' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'idc' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'ideo' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'ids' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'idsb' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'idst' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'in' => -{ -'1.1' => -[ -'1.1', -], -'2.0' => -[ -'2.0', -], -'2.1' => -[ -'2.1', -], -'3.0' => -[ -'3.0', -], -'3.1' => -[ -'3.1', -], -'3.2' => -[ -'3.2', -], -'4.0' => -[ -'4.0', -], -'4.1' => -[ -'4.1', -], -'5.0' => -[ -'5.0', -], -'5.1' => -[ -'5.1', -], -'5.2' => -[ -'5.2', -], -'6.0' => -[ -'6.0', -], -'6.1' => -[ -'6.1', -], -'6.2' => -[ -'6.2', -], -'6.3' => -[ -'6.3', -], -'7.0' => -[ -'7.0', -], -'8.0' => -[ -'8.0', -], -'unassigned' => -[ -'Unassigned', -], -}, -'inpc' => -{ -'bottom' => -[ -'Bottom', -], -'bottomandright' => -[ -'Bottom_And_Right', -], -'left' => -[ -'Left', -], -'leftandright' => -[ -'Left_And_Right', -], -'na' => -[ -'NA', -], -'overstruck' => -[ -'Overstruck', -], -'right' => -[ -'Right', -], -'top' => -[ -'Top', -], -'topandbottom' => -[ -'Top_And_Bottom', -], -'topandbottomandright' => -[ -'Top_And_Bottom_And_Right', -], -'topandleft' => -[ -'Top_And_Left', -], -'topandleftandright' => -[ -'Top_And_Left_And_Right', -], -'topandright' => -[ -'Top_And_Right', -], -'visualorderleft' => -[ -'Visual_Order_Left', -], -}, -'insc' => -{ -'avagraha' => -[ -'Avagraha', -], -'bindu' => -[ -'Bindu', -], -'brahmijoiningnumber' => -[ -'Brahmi_Joining_Number', -], -'cantillationmark' => -[ -'Cantillation_Mark', -], -'consonant' => -[ -'Consonant', -], -'consonantdead' => -[ -'Consonant_Dead', -], -'consonantfinal' => -[ -'Consonant_Final', -], -'consonantheadletter' => -[ -'Consonant_Head_Letter', -], -'consonantkiller' => -[ -'Consonant_Killer', -], -'consonantmedial' => -[ -'Consonant_Medial', -], -'consonantplaceholder' => -[ -'Consonant_Placeholder', -], -'consonantprecedingrepha' => -[ -'Consonant_Preceding_Repha', -], -'consonantprefixed' => -[ -'Consonant_Prefixed', -], -'consonantsubjoined' => -[ -'Consonant_Subjoined', -], -'consonantsucceedingrepha' => -[ -'Consonant_Succeeding_Repha', -], -'consonantwithstacker' => -[ -'Consonant_With_Stacker', -], -'geminationmark' => -[ -'Gemination_Mark', -], -'invisiblestacker' => -[ -'Invisible_Stacker', -], -'joiner' => -[ -'Joiner', -], -'modifyingletter' => -[ -'Modifying_Letter', -], -'nonjoiner' => -[ -'Non_Joiner', -], -'nukta' => -[ -'Nukta', -], -'number' => -[ -'Number', -], -'numberjoiner' => -[ -'Number_Joiner', -], -'other' => -[ -'Other', -], -'purekiller' => -[ -'Pure_Killer', -], -'registershifter' => -[ -'Register_Shifter', -], -'syllablemodifier' => -[ -'Syllable_Modifier', -], -'toneletter' => -[ -'Tone_Letter', -], -'tonemark' => -[ -'Tone_Mark', -], -'virama' => -[ -'Virama', -], -'visarga' => -[ -'Visarga', -], -'vowel' => -[ -'Vowel', -], -'voweldependent' => -[ -'Vowel_Dependent', -], -'vowelindependent' => -[ -'Vowel_Independent', -], -}, -'jg' => -{ -'ain' => -[ -'Ain', -], -'alaph' => -[ -'Alaph', -], -'alef' => -[ -'Alef', -], -'beh' => -[ -'Beh', -], -'beth' => -[ -'Beth', -], -'burushaskiyehbarree' => -[ -'Burushaski_Yeh_Barree', -], -'dal' => -[ -'Dal', -], -'dalathrish' => -[ -'Dalath_Rish', -], -'e' => -[ -'E', -], -'farsiyeh' => -[ -'Farsi_Yeh', -], -'fe' => -[ -'Fe', -], -'feh' => -[ -'Feh', -], -'finalsemkath' => -[ -'Final_Semkath', -], -'gaf' => -[ -'Gaf', -], -'gamal' => -[ -'Gamal', -], -'hah' => -[ -'Hah', -], -'he' => -[ -'He', -], -'heh' => -[ -'Heh', -], -'hehgoal' => -[ -'Heh_Goal', -], -'heth' => -[ -'Heth', -], -'kaf' => -[ -'Kaf', -], -'kaph' => -[ -'Kaph', -], -'khaph' => -[ -'Khaph', -], -'knottedheh' => -[ -'Knotted_Heh', -], -'lam' => -[ -'Lam', -], -'lamadh' => -[ -'Lamadh', -], -'manichaeanaleph' => -[ -'Manichaean_Aleph', -], -'manichaeanayin' => -[ -'Manichaean_Ayin', -], -'manichaeanbeth' => -[ -'Manichaean_Beth', -], -'manichaeandaleth' => -[ -'Manichaean_Daleth', -], -'manichaeandhamedh' => -[ -'Manichaean_Dhamedh', -], -'manichaeanfive' => -[ -'Manichaean_Five', -], -'manichaeangimel' => -[ -'Manichaean_Gimel', -], -'manichaeanheth' => -[ -'Manichaean_Heth', -], -'manichaeanhundred' => -[ -'Manichaean_Hundred', -], -'manichaeankaph' => -[ -'Manichaean_Kaph', -], -'manichaeanlamedh' => -[ -'Manichaean_Lamedh', -], -'manichaeanmem' => -[ -'Manichaean_Mem', -], -'manichaeannun' => -[ -'Manichaean_Nun', -], -'manichaeanone' => -[ -'Manichaean_One', -], -'manichaeanpe' => -[ -'Manichaean_Pe', -], -'manichaeanqoph' => -[ -'Manichaean_Qoph', -], -'manichaeanresh' => -[ -'Manichaean_Resh', -], -'manichaeansadhe' => -[ -'Manichaean_Sadhe', -], -'manichaeansamekh' => -[ -'Manichaean_Samekh', -], -'manichaeantaw' => -[ -'Manichaean_Taw', -], -'manichaeanten' => -[ -'Manichaean_Ten', -], -'manichaeanteth' => -[ -'Manichaean_Teth', -], -'manichaeanthamedh' => -[ -'Manichaean_Thamedh', -], -'manichaeantwenty' => -[ -'Manichaean_Twenty', -], -'manichaeanwaw' => -[ -'Manichaean_Waw', -], -'manichaeanyodh' => -[ -'Manichaean_Yodh', -], -'manichaeanzayin' => -[ -'Manichaean_Zayin', -], -'meem' => -[ -'Meem', -], -'mim' => -[ -'Mim', -], -'nojoininggroup' => -[ -'No_Joining_Group', -], -'noon' => -[ -'Noon', -], -'nun' => -[ -'Nun', -], -'nya' => -[ -'Nya', -], -'pe' => -[ -'Pe', -], -'qaf' => -[ -'Qaf', -], -'qaph' => -[ -'Qaph', -], -'reh' => -[ -'Reh', -], -'reversedpe' => -[ -'Reversed_Pe', -], -'rohingyayeh' => -[ -'Rohingya_Yeh', -], -'sad' => -[ -'Sad', -], -'sadhe' => -[ -'Sadhe', -], -'seen' => -[ -'Seen', -], -'semkath' => -[ -'Semkath', -], -'shin' => -[ -'Shin', -], -'straightwaw' => -[ -'Straight_Waw', -], -'swashkaf' => -[ -'Swash_Kaf', -], -'syriacwaw' => -[ -'Syriac_Waw', -], -'tah' => -[ -'Tah', -], -'taw' => -[ -'Taw', -], -'tehmarbuta' => -[ -'Teh_Marbuta', -], -'tehmarbutagoal' => -[ -'Teh_Marbuta_Goal', -'Hamza_On_Heh_Goal', -], -'teth' => -[ -'Teth', -], -'waw' => -[ -'Waw', -], -'yeh' => -[ -'Yeh', -], -'yehbarree' => -[ -'Yeh_Barree', -], -'yehwithtail' => -[ -'Yeh_With_Tail', -], -'yudh' => -[ -'Yudh', -], -'yudhhe' => -[ -'Yudh_He', -], -'zain' => -[ -'Zain', -], -'zhain' => -[ -'Zhain', -], -}, -'joinc' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'jt' => -{ -'c' => -[ -'C', -'Join_Causing', -], -'d' => -[ -'D', -'Dual_Joining', -], -'l' => -[ -'L', -'Left_Joining', -], -'r' => -[ -'R', -'Right_Joining', -], -'t' => -[ -'T', -'Transparent', -], -'u' => -[ -'U', -'Non_Joining', -], -}, -'lb' => -{ -'ai' => -[ -'AI', -'Ambiguous', -], -'al' => -[ -'AL', -'Alphabetic', -], -'b2' => -[ -'B2', -'Break_Both', -], -'ba' => -[ -'BA', -'Break_After', -], -'bb' => -[ -'BB', -'Break_Before', -], -'bk' => -[ -'BK', -'Mandatory_Break', -], -'cb' => -[ -'CB', -'Contingent_Break', -], -'cj' => -[ -'CJ', -'Conditional_Japanese_Starter', -], -'cl' => -[ -'CL', -'Close_Punctuation', -], -'cm' => -[ -'CM', -'Combining_Mark', -], -'cp' => -[ -'CP', -'Close_Parenthesis', -], -'cr' => -[ -'CR', -'Carriage_Return', -], -'ex' => -[ -'EX', -'Exclamation', -], -'gl' => -[ -'GL', -'Glue', -], -'h2' => -[ -'H2', -], -'h3' => -[ -'H3', -], -'hl' => -[ -'HL', -'Hebrew_Letter', -], -'hy' => -[ -'HY', -'Hyphen', -], -'id' => -[ -'ID', -'Ideographic', -], -'in' => -[ -'IN', -'Inseparable', -'Inseperable', -], -'is' => -[ -'IS', -'Infix_Numeric', -], -'jl' => -[ -'JL', -], -'jt' => -[ -'JT', -], -'jv' => -[ -'JV', -], -'lf' => -[ -'LF', -'Line_Feed', -], -'nl' => -[ -'NL', -'Next_Line', -], -'ns' => -[ -'NS', -'Nonstarter', -], -'nu' => -[ -'NU', -'Numeric', -], -'op' => -[ -'OP', -'Open_Punctuation', -], -'po' => -[ -'PO', -'Postfix_Numeric', -], -'pr' => -[ -'PR', -'Prefix_Numeric', -], -'qu' => -[ -'QU', -'Quotation', -], -'ri' => -[ -'RI', -'Regional_Indicator', -], -'sa' => -[ -'SA', -'Complex_Context', -], -'sg' => -[ -'SG', -'Surrogate', -], -'sp' => -[ -'SP', -'Space', -], -'sy' => -[ -'SY', -'Break_Symbols', -], -'wj' => -[ -'WJ', -'Word_Joiner', -], -'xx' => -[ -'XX', -'Unknown', -], -'zw' => -[ -'ZW', -'ZWSpace', -], -}, -'loe' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'lower' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'math' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'nchar' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'nfcqc' => -{ -'m' => -[ -'M', -'Maybe', -], -'n' => -[ -'N', -'No', -], -'y' => -[ -'Y', -'Yes', -], -}, -'nfdqc' => -{ -'n' => -[ -'N', -'No', -], -'y' => -[ -'Y', -'Yes', -], -}, -'nfkcqc' => -{ -'m' => -[ -'M', -'Maybe', -], -'n' => -[ -'N', -'No', -], -'y' => -[ -'Y', -'Yes', -], -}, -'nfkdqc' => -{ -'n' => -[ -'N', -'No', -], -'y' => -[ -'Y', -'Yes', -], -}, -'nt' => -{ -'de' => -[ -'De', -'Decimal', -], -'di' => -[ -'Di', -'Digit', -], -'none' => -[ -'None', -], -'nu' => -[ -'Nu', -'Numeric', -], -}, -'nv' => -{ -'-1/2' => -[ -'-1/2', -], -0 => -[ -0, -], -1 => -[ -1, -], -'1/10' => -[ -'1/10', -], -'1/12' => -[ -'1/12', -], -'1/16' => -[ -'1/16', -], -'1/2' => -[ -'1/2', -], -'1/3' => -[ -'1/3', -], -'1/4' => -[ -'1/4', -], -'1/5' => -[ -'1/5', -], -'1/6' => -[ -'1/6', -], -'1/7' => -[ -'1/7', -], -'1/8' => -[ -'1/8', -], -'1/9' => -[ -'1/9', -], -10 => -[ -10, -], -100 => -[ -100, -], -1000 => -[ -1000, -], -10000 => -[ -10000, -], -100000 => -[ -100000, -], -1000000 => -[ -1000000, -], -100000000 => -[ -100000000, -], -10000000000 => -[ -10000000000, -], -1000000000000 => -[ -1000000000000, -], -11 => -[ -11, -], -'11/12' => -[ -'11/12', -], -'11/2' => -[ -'11/2', -], -12 => -[ -12, -], -13 => -[ -13, -], -'13/2' => -[ -'13/2', -], -14 => -[ -14, -], -15 => -[ -15, -], -'15/2' => -[ -'15/2', -], -16 => -[ -16, -], -17 => -[ -17, -], -'17/2' => -[ -'17/2', -], -18 => -[ -18, -], -19 => -[ -19, -], -2 => -[ -2, -], -'2/3' => -[ -'2/3', -], -'2/5' => -[ -'2/5', -], -20 => -[ -20, -], -200 => -[ -200, -], -2000 => -[ -2000, -], -20000 => -[ -20000, -], -200000 => -[ -200000, -], -21 => -[ -21, -], -216000 => -[ -216000, -], -22 => -[ -22, -], -23 => -[ -23, -], -24 => -[ -24, -], -25 => -[ -25, -], -26 => -[ -26, -], -27 => -[ -27, -], -28 => -[ -28, -], -29 => -[ -29, -], -3 => -[ -3, -], -'3/16' => -[ -'3/16', -], -'3/2' => -[ -'3/2', -], -'3/4' => -[ -'3/4', -], -'3/5' => -[ -'3/5', -], -'3/8' => -[ -'3/8', -], -30 => -[ -30, -], -300 => -[ -300, -], -3000 => -[ -3000, -], -30000 => -[ -30000, -], -300000 => -[ -300000, -], -31 => -[ -31, -], -32 => -[ -32, -], -33 => -[ -33, -], -34 => -[ -34, -], -35 => -[ -35, -], -36 => -[ -36, -], -37 => -[ -37, -], -38 => -[ -38, -], -39 => -[ -39, -], -4 => -[ -4, -], -'4/5' => -[ -'4/5', -], -40 => -[ -40, -], -400 => -[ -400, -], -4000 => -[ -4000, -], -40000 => -[ -40000, -], -400000 => -[ -400000, -], -41 => -[ -41, -], -42 => -[ -42, -], -43 => -[ -43, -], -432000 => -[ -432000, -], -44 => -[ -44, -], -45 => -[ -45, -], -46 => -[ -46, -], -47 => -[ -47, -], -48 => -[ -48, -], -49 => -[ -49, -], -5 => -[ -5, -], -'5/12' => -[ -'5/12', -], -'5/2' => -[ -'5/2', -], -'5/6' => -[ -'5/6', -], -'5/8' => -[ -'5/8', -], -50 => -[ -50, -], -500 => -[ -500, -], -5000 => -[ -5000, -], -50000 => -[ -50000, -], -500000 => -[ -500000, -], -6 => -[ -6, -], -60 => -[ -60, -], -600 => -[ -600, -], -6000 => -[ -6000, -], -60000 => -[ -60000, -], -600000 => -[ -600000, -], -7 => -[ -7, -], -'7/12' => -[ -'7/12', -], -'7/2' => -[ -'7/2', -], -'7/8' => -[ -'7/8', -], -70 => -[ -70, -], -700 => -[ -700, -], -7000 => -[ -7000, -], -70000 => -[ -70000, -], -700000 => -[ -700000, -], -8 => -[ -8, -], -80 => -[ -80, -], -800 => -[ -800, -], -8000 => -[ -8000, -], -80000 => -[ -80000, -], -800000 => -[ -800000, -], -9 => -[ -9, -], -'9/2' => -[ -'9/2', -], -90 => -[ -90, -], -900 => -[ -900, -], -9000 => -[ -9000, -], -90000 => -[ -90000, -], -900000 => -[ -900000, -], -'nan' => -[ -'NaN', -], -}, -'patsyn' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'patws' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'qmark' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'radical' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'sb' => -{ -'at' => -[ -'AT', -'ATerm', -], -'cl' => -[ -'CL', -'Close', -], -'cr' => -[ -'CR', -], -'ex' => -[ -'EX', -'Extend', -], -'fo' => -[ -'FO', -'Format', -], -'le' => -[ -'LE', -'OLetter', -], -'lf' => -[ -'LF', -], -'lo' => -[ -'LO', -'Lower', -], -'nu' => -[ -'NU', -'Numeric', -], -'sc' => -[ -'SC', -'SContinue', -], -'se' => -[ -'SE', -'Sep', -], -'sp' => -[ -'SP', -'Sp', -], -'st' => -[ -'ST', -'STerm', -], -'up' => -[ -'UP', -'Upper', -], -'xx' => -[ -'XX', -'Other', -], -}, -'sc' => -{ -'aghb' => -[ -'Aghb', -'Caucasian_Albanian', -], -'ahom' => -[ -'Ahom', -], -'arab' => -[ -'Arab', -'Arabic', -], -'armi' => -[ -'Armi', -'Imperial_Aramaic', -], -'armn' => -[ -'Armn', -'Armenian', -], -'avst' => -[ -'Avst', -'Avestan', -], -'bali' => -[ -'Bali', -'Balinese', -], -'bamu' => -[ -'Bamu', -'Bamum', -], -'bass' => -[ -'Bass', -'Bassa_Vah', -], -'batk' => -[ -'Batk', -'Batak', -], -'beng' => -[ -'Beng', -'Bengali', -], -'bopo' => -[ -'Bopo', -'Bopomofo', -], -'brah' => -[ -'Brah', -'Brahmi', -], -'brai' => -[ -'Brai', -'Braille', -], -'bugi' => -[ -'Bugi', -'Buginese', -], -'buhd' => -[ -'Buhd', -'Buhid', -], -'cakm' => -[ -'Cakm', -'Chakma', -], -'cans' => -[ -'Cans', -'Canadian_Aboriginal', -], -'cari' => -[ -'Cari', -'Carian', -], -'cham' => -[ -'Cham', -], -'cher' => -[ -'Cher', -'Cherokee', -], -'copt' => -[ -'Copt', -'Coptic', -'Qaac', -], -'cprt' => -[ -'Cprt', -'Cypriot', -], -'cyrl' => -[ -'Cyrl', -'Cyrillic', -], -'deva' => -[ -'Deva', -'Devanagari', -], -'dsrt' => -[ -'Dsrt', -'Deseret', -], -'dupl' => -[ -'Dupl', -'Duployan', -], -'egyp' => -[ -'Egyp', -'Egyptian_Hieroglyphs', -], -'elba' => -[ -'Elba', -'Elbasan', -], -'ethi' => -[ -'Ethi', -'Ethiopic', -], -'geor' => -[ -'Geor', -'Georgian', -], -'glag' => -[ -'Glag', -'Glagolitic', -], -'goth' => -[ -'Goth', -'Gothic', -], -'gran' => -[ -'Gran', -'Grantha', -], -'grek' => -[ -'Grek', -'Greek', -], -'gujr' => -[ -'Gujr', -'Gujarati', -], -'guru' => -[ -'Guru', -'Gurmukhi', -], -'hang' => -[ -'Hang', -'Hangul', -], -'hani' => -[ -'Hani', -'Han', -], -'hano' => -[ -'Hano', -'Hanunoo', -], -'hatr' => -[ -'Hatr', -'Hatran', -], -'hebr' => -[ -'Hebr', -'Hebrew', -], -'hira' => -[ -'Hira', -'Hiragana', -], -'hluw' => -[ -'Hluw', -'Anatolian_Hieroglyphs', -], -'hmng' => -[ -'Hmng', -'Pahawh_Hmong', -], -'hrkt' => -[ -'Hrkt', -'Katakana_Or_Hiragana', -], -'hung' => -[ -'Hung', -'Old_Hungarian', -], -'ital' => -[ -'Ital', -'Old_Italic', -], -'java' => -[ -'Java', -'Javanese', -], -'kali' => -[ -'Kali', -'Kayah_Li', -], -'kana' => -[ -'Kana', -'Katakana', -], -'khar' => -[ -'Khar', -'Kharoshthi', -], -'khmr' => -[ -'Khmr', -'Khmer', -], -'khoj' => -[ -'Khoj', -'Khojki', -], -'knda' => -[ -'Knda', -'Kannada', -], -'kthi' => -[ -'Kthi', -'Kaithi', -], -'lana' => -[ -'Lana', -'Tai_Tham', -], -'laoo' => -[ -'Laoo', -'Lao', -], -'latn' => -[ -'Latn', -'Latin', -], -'lepc' => -[ -'Lepc', -'Lepcha', -], -'limb' => -[ -'Limb', -'Limbu', -], -'lina' => -[ -'Lina', -'Linear_A', -], -'linb' => -[ -'Linb', -'Linear_B', -], -'lisu' => -[ -'Lisu', -], -'lyci' => -[ -'Lyci', -'Lycian', -], -'lydi' => -[ -'Lydi', -'Lydian', -], -'mahj' => -[ -'Mahj', -'Mahajani', -], -'mand' => -[ -'Mand', -'Mandaic', -], -'mani' => -[ -'Mani', -'Manichaean', -], -'mend' => -[ -'Mend', -'Mende_Kikakui', -], -'merc' => -[ -'Merc', -'Meroitic_Cursive', -], -'mero' => -[ -'Mero', -'Meroitic_Hieroglyphs', -], -'mlym' => -[ -'Mlym', -'Malayalam', -], -'modi' => -[ -'Modi', -], -'mong' => -[ -'Mong', -'Mongolian', -], -'mroo' => -[ -'Mroo', -'Mro', -], -'mtei' => -[ -'Mtei', -'Meetei_Mayek', -], -'mult' => -[ -'Mult', -'Multani', -], -'mymr' => -[ -'Mymr', -'Myanmar', -], -'narb' => -[ -'Narb', -'Old_North_Arabian', -], -'nbat' => -[ -'Nbat', -'Nabataean', -], -'nkoo' => -[ -'Nkoo', -'Nko', -], -'ogam' => -[ -'Ogam', -'Ogham', -], -'olck' => -[ -'Olck', -'Ol_Chiki', -], -'orkh' => -[ -'Orkh', -'Old_Turkic', -], -'orya' => -[ -'Orya', -'Oriya', -], -'osma' => -[ -'Osma', -'Osmanya', -], -'palm' => -[ -'Palm', -'Palmyrene', -], -'pauc' => -[ -'Pauc', -'Pau_Cin_Hau', -], -'perm' => -[ -'Perm', -'Old_Permic', -], -'phag' => -[ -'Phag', -'Phags_Pa', -], -'phli' => -[ -'Phli', -'Inscriptional_Pahlavi', -], -'phlp' => -[ -'Phlp', -'Psalter_Pahlavi', -], -'phnx' => -[ -'Phnx', -'Phoenician', -], -'plrd' => -[ -'Plrd', -'Miao', -], -'prti' => -[ -'Prti', -'Inscriptional_Parthian', -], -'rjng' => -[ -'Rjng', -'Rejang', -], -'runr' => -[ -'Runr', -'Runic', -], -'samr' => -[ -'Samr', -'Samaritan', -], -'sarb' => -[ -'Sarb', -'Old_South_Arabian', -], -'saur' => -[ -'Saur', -'Saurashtra', -], -'sgnw' => -[ -'Sgnw', -'SignWriting', -], -'shaw' => -[ -'Shaw', -'Shavian', -], -'shrd' => -[ -'Shrd', -'Sharada', -], -'sidd' => -[ -'Sidd', -'Siddham', -], -'sind' => -[ -'Sind', -'Khudawadi', -], -'sinh' => -[ -'Sinh', -'Sinhala', -], -'sora' => -[ -'Sora', -'Sora_Sompeng', -], -'sund' => -[ -'Sund', -'Sundanese', -], -'sylo' => -[ -'Sylo', -'Syloti_Nagri', -], -'syrc' => -[ -'Syrc', -'Syriac', -], -'tagb' => -[ -'Tagb', -'Tagbanwa', -], -'takr' => -[ -'Takr', -'Takri', -], -'tale' => -[ -'Tale', -'Tai_Le', -], -'talu' => -[ -'Talu', -'New_Tai_Lue', -], -'taml' => -[ -'Taml', -'Tamil', -], -'tavt' => -[ -'Tavt', -'Tai_Viet', -], -'telu' => -[ -'Telu', -'Telugu', -], -'tfng' => -[ -'Tfng', -'Tifinagh', -], -'tglg' => -[ -'Tglg', -'Tagalog', -], -'thaa' => -[ -'Thaa', -'Thaana', -], -'thai' => -[ -'Thai', -], -'tibt' => -[ -'Tibt', -'Tibetan', -], -'tirh' => -[ -'Tirh', -'Tirhuta', -], -'ugar' => -[ -'Ugar', -'Ugaritic', -], -'vaii' => -[ -'Vaii', -'Vai', -], -'wara' => -[ -'Wara', -'Warang_Citi', -], -'xpeo' => -[ -'Xpeo', -'Old_Persian', -], -'xsux' => -[ -'Xsux', -'Cuneiform', -], -'yiii' => -[ -'Yiii', -'Yi', -], -'zinh' => -[ -'Zinh', -'Inherited', -'Qaai', -], -'zyyy' => -[ -'Zyyy', -'Common', -], -'zzzz' => -[ -'Zzzz', -'Unknown', -], -}, -'scx' => -{ -'aghb' => -[ -'Aghb', -'Caucasian_Albanian', -], -'ahom' => -[ -'Ahom', -], -'arab' => -[ -'Arab', -'Arabic', -], -'armi' => -[ -'Armi', -'Imperial_Aramaic', -], -'armn' => -[ -'Armn', -'Armenian', -], -'avst' => -[ -'Avst', -'Avestan', -], -'bali' => -[ -'Bali', -'Balinese', -], -'bamu' => -[ -'Bamu', -'Bamum', -], -'bass' => -[ -'Bass', -'Bassa_Vah', -], -'batk' => -[ -'Batk', -'Batak', -], -'beng' => -[ -'Beng', -'Bengali', -], -'bopo' => -[ -'Bopo', -'Bopomofo', -], -'brah' => -[ -'Brah', -'Brahmi', -], -'brai' => -[ -'Brai', -'Braille', -], -'bugi' => -[ -'Bugi', -'Buginese', -], -'buhd' => -[ -'Buhd', -'Buhid', -], -'cakm' => -[ -'Cakm', -'Chakma', -], -'cans' => -[ -'Cans', -'Canadian_Aboriginal', -], -'cari' => -[ -'Cari', -'Carian', -], -'cham' => -[ -'Cham', -], -'cher' => -[ -'Cher', -'Cherokee', -], -'copt' => -[ -'Copt', -'Coptic', -'Qaac', -], -'cprt' => -[ -'Cprt', -'Cypriot', -], -'cyrl' => -[ -'Cyrl', -'Cyrillic', -], -'deva' => -[ -'Deva', -'Devanagari', -], -'dsrt' => -[ -'Dsrt', -'Deseret', -], -'dupl' => -[ -'Dupl', -'Duployan', -], -'egyp' => -[ -'Egyp', -'Egyptian_Hieroglyphs', -], -'elba' => -[ -'Elba', -'Elbasan', -], -'ethi' => -[ -'Ethi', -'Ethiopic', -], -'geor' => -[ -'Geor', -'Georgian', -], -'glag' => -[ -'Glag', -'Glagolitic', -], -'goth' => -[ -'Goth', -'Gothic', -], -'gran' => -[ -'Gran', -'Grantha', -], -'grek' => -[ -'Grek', -'Greek', -], -'gujr' => -[ -'Gujr', -'Gujarati', -], -'guru' => -[ -'Guru', -'Gurmukhi', -], -'hang' => -[ -'Hang', -'Hangul', -], -'hani' => -[ -'Hani', -'Han', -], -'hano' => -[ -'Hano', -'Hanunoo', -], -'hatr' => -[ -'Hatr', -'Hatran', -], -'hebr' => -[ -'Hebr', -'Hebrew', -], -'hira' => -[ -'Hira', -'Hiragana', -], -'hluw' => -[ -'Hluw', -'Anatolian_Hieroglyphs', -], -'hmng' => -[ -'Hmng', -'Pahawh_Hmong', -], -'hrkt' => -[ -'Hrkt', -'Katakana_Or_Hiragana', -], -'hung' => -[ -'Hung', -'Old_Hungarian', -], -'ital' => -[ -'Ital', -'Old_Italic', -], -'java' => -[ -'Java', -'Javanese', -], -'kali' => -[ -'Kali', -'Kayah_Li', -], -'kana' => -[ -'Kana', -'Katakana', -], -'khar' => -[ -'Khar', -'Kharoshthi', -], -'khmr' => -[ -'Khmr', -'Khmer', -], -'khoj' => -[ -'Khoj', -'Khojki', -], -'knda' => -[ -'Knda', -'Kannada', -], -'kthi' => -[ -'Kthi', -'Kaithi', -], -'lana' => -[ -'Lana', -'Tai_Tham', -], -'laoo' => -[ -'Laoo', -'Lao', -], -'latn' => -[ -'Latn', -'Latin', -], -'lepc' => -[ -'Lepc', -'Lepcha', -], -'limb' => -[ -'Limb', -'Limbu', -], -'lina' => -[ -'Lina', -'Linear_A', -], -'linb' => -[ -'Linb', -'Linear_B', -], -'lisu' => -[ -'Lisu', -], -'lyci' => -[ -'Lyci', -'Lycian', -], -'lydi' => -[ -'Lydi', -'Lydian', -], -'mahj' => -[ -'Mahj', -'Mahajani', -], -'mand' => -[ -'Mand', -'Mandaic', -], -'mani' => -[ -'Mani', -'Manichaean', -], -'mend' => -[ -'Mend', -'Mende_Kikakui', -], -'merc' => -[ -'Merc', -'Meroitic_Cursive', -], -'mero' => -[ -'Mero', -'Meroitic_Hieroglyphs', -], -'mlym' => -[ -'Mlym', -'Malayalam', -], -'modi' => -[ -'Modi', -], -'mong' => -[ -'Mong', -'Mongolian', -], -'mroo' => -[ -'Mroo', -'Mro', -], -'mtei' => -[ -'Mtei', -'Meetei_Mayek', -], -'mult' => -[ -'Mult', -'Multani', -], -'mymr' => -[ -'Mymr', -'Myanmar', -], -'narb' => -[ -'Narb', -'Old_North_Arabian', -], -'nbat' => -[ -'Nbat', -'Nabataean', -], -'nkoo' => -[ -'Nkoo', -'Nko', -], -'ogam' => -[ -'Ogam', -'Ogham', -], -'olck' => -[ -'Olck', -'Ol_Chiki', -], -'orkh' => -[ -'Orkh', -'Old_Turkic', -], -'orya' => -[ -'Orya', -'Oriya', -], -'osma' => -[ -'Osma', -'Osmanya', -], -'palm' => -[ -'Palm', -'Palmyrene', -], -'pauc' => -[ -'Pauc', -'Pau_Cin_Hau', -], -'perm' => -[ -'Perm', -'Old_Permic', -], -'phag' => -[ -'Phag', -'Phags_Pa', -], -'phli' => -[ -'Phli', -'Inscriptional_Pahlavi', -], -'phlp' => -[ -'Phlp', -'Psalter_Pahlavi', -], -'phnx' => -[ -'Phnx', -'Phoenician', -], -'plrd' => -[ -'Plrd', -'Miao', -], -'prti' => -[ -'Prti', -'Inscriptional_Parthian', -], -'rjng' => -[ -'Rjng', -'Rejang', -], -'runr' => -[ -'Runr', -'Runic', -], -'samr' => -[ -'Samr', -'Samaritan', -], -'sarb' => -[ -'Sarb', -'Old_South_Arabian', -], -'saur' => -[ -'Saur', -'Saurashtra', -], -'sgnw' => -[ -'Sgnw', -'SignWriting', -], -'shaw' => -[ -'Shaw', -'Shavian', -], -'shrd' => -[ -'Shrd', -'Sharada', -], -'sidd' => -[ -'Sidd', -'Siddham', -], -'sind' => -[ -'Sind', -'Khudawadi', -], -'sinh' => -[ -'Sinh', -'Sinhala', -], -'sora' => -[ -'Sora', -'Sora_Sompeng', -], -'sund' => -[ -'Sund', -'Sundanese', -], -'sylo' => -[ -'Sylo', -'Syloti_Nagri', -], -'syrc' => -[ -'Syrc', -'Syriac', -], -'tagb' => -[ -'Tagb', -'Tagbanwa', -], -'takr' => -[ -'Takr', -'Takri', -], -'tale' => -[ -'Tale', -'Tai_Le', -], -'talu' => -[ -'Talu', -'New_Tai_Lue', -], -'taml' => -[ -'Taml', -'Tamil', -], -'tavt' => -[ -'Tavt', -'Tai_Viet', -], -'telu' => -[ -'Telu', -'Telugu', -], -'tfng' => -[ -'Tfng', -'Tifinagh', -], -'tglg' => -[ -'Tglg', -'Tagalog', -], -'thaa' => -[ -'Thaa', -'Thaana', -], -'thai' => -[ -'Thai', -], -'tibt' => -[ -'Tibt', -'Tibetan', -], -'tirh' => -[ -'Tirh', -'Tirhuta', -], -'ugar' => -[ -'Ugar', -'Ugaritic', -], -'vaii' => -[ -'Vaii', -'Vai', -], -'wara' => -[ -'Wara', -'Warang_Citi', -], -'xpeo' => -[ -'Xpeo', -'Old_Persian', -], -'xsux' => -[ -'Xsux', -'Cuneiform', -], -'yiii' => -[ -'Yiii', -'Yi', -], -'zinh' => -[ -'Zinh', -'Inherited', -'Qaai', -], -'zyyy' => -[ -'Zyyy', -'Common', -], -'zzzz' => -[ -'Zzzz', -'Unknown', -], -}, -'sd' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'sterm' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'term' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'uideo' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'upper' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'vs' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'wb' => -{ -'cr' => -[ -'CR', -], -'dq' => -[ -'DQ', -'Double_Quote', -], -'ex' => -[ -'EX', -'ExtendNumLet', -], -'extend' => -[ -'Extend', -], -'fo' => -[ -'FO', -'Format', -], -'hl' => -[ -'HL', -'Hebrew_Letter', -], -'ka' => -[ -'KA', -'Katakana', -], -'le' => -[ -'LE', -'ALetter', -], -'lf' => -[ -'LF', -], -'mb' => -[ -'MB', -'MidNumLet', -], -'ml' => -[ -'ML', -'MidLetter', -], -'mn' => -[ -'MN', -'MidNum', -], -'nl' => -[ -'NL', -'Newline', -], -'nu' => -[ -'NU', -'Numeric', -], -'ri' => -[ -'RI', -'Regional_Indicator', -], -'sq' => -[ -'SQ', -'Single_Quote', -], -'xx' => -[ -'XX', -'Other', -], -}, -'wspace' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'xidc' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -'xids' => -{ -'n' => -[ -'N', -'No', -'F', -'False', -], -'y' => -[ -'Y', -'Yes', -'T', -'True', -], -}, -); - -# Ordered (by code point ordinal) list of the ranges of code points whose -# names are algorithmically determined. Each range entry is an anonymous hash -# of the start and end points and a template for the names within it. -@Unicode::UCD::algorithmic_named_code_points = ( - -{ -'high' => 19893, -'low' => 13312, -'name' => 'CJK UNIFIED IDEOGRAPH-<code point>', -}, -{ -'high' => 40917, -'low' => 19968, -'name' => 'CJK UNIFIED IDEOGRAPH-<code point>', -}, -{ -'high' => 55203, -'low' => 44032, -'name' => '<hangul syllable>', -}, -{ -'high' => 64109, -'low' => 63744, -'name' => 'CJK COMPATIBILITY IDEOGRAPH-<code point>', -}, -{ -'high' => 64217, -'low' => 64112, -'name' => 'CJK COMPATIBILITY IDEOGRAPH-<code point>', -}, -{ -'high' => 173782, -'low' => 131072, -'name' => 'CJK UNIFIED IDEOGRAPH-<code point>', -}, -{ -'high' => 177972, -'low' => 173824, -'name' => 'CJK UNIFIED IDEOGRAPH-<code point>', -}, -{ -'high' => 178205, -'low' => 177984, -'name' => 'CJK UNIFIED IDEOGRAPH-<code point>', -}, -{ -'high' => 183969, -'low' => 178208, -'name' => 'CJK UNIFIED IDEOGRAPH-<code point>', -}, -{ -'high' => 195101, -'low' => 194560, -'name' => 'CJK COMPATIBILITY IDEOGRAPH-<code point>', -}, -, -); - -# The properties that as-is have two meanings, and which must be disambiguated -%Unicode::UCD::ambiguous_names = ( -'cf' => 1, -'isc' => 1, -'lc' => 1, -'sc' => 1, -); - -# Keys are the prop-val combinations which are the default values for the -# given property, expressed in standard loose form -%Unicode::UCD::loose_defaults = ( -'age=na' => 1, -'age=unassigned' => 1, -'ahex=f' => 1, -'ahex=false' => 1, -'ahex=n' => 1, -'ahex=no' => 1, -'alpha=f' => 1, -'alpha=false' => 1, -'alpha=n' => 1, -'alpha=no' => 1, -'bc=l' => 1, -'bc=lefttoright' => 1, -'bidic=f' => 1, -'bidic=false' => 1, -'bidic=n' => 1, -'bidic=no' => 1, -'bidim=f' => 1, -'bidim=false' => 1, -'bidim=n' => 1, -'bidim=no' => 1, -'blk=nb' => 1, -'blk=noblock' => 1, -'bpt=n' => 1, -'bpt=none' => 1, -'cased=f' => 1, -'cased=false' => 1, -'cased=n' => 1, -'cased=no' => 1, -'ccc=0' => 1, -'ccc=notreordered' => 1, -'ccc=nr' => 1, -'ce=f' => 1, -'ce=false' => 1, -'ce=n' => 1, -'ce=no' => 1, -'ci=f' => 1, -'ci=false' => 1, -'ci=n' => 1, -'ci=no' => 1, -'cn' => 1, -'compex=f' => 1, -'compex=false' => 1, -'compex=n' => 1, -'compex=no' => 1, -'cwcf=f' => 1, -'cwcf=false' => 1, -'cwcf=n' => 1, -'cwcf=no' => 1, -'cwcm=f' => 1, -'cwcm=false' => 1, -'cwcm=n' => 1, -'cwcm=no' => 1, -'cwkcf=f' => 1, -'cwkcf=false' => 1, -'cwkcf=n' => 1, -'cwkcf=no' => 1, -'cwl=f' => 1, -'cwl=false' => 1, -'cwl=n' => 1, -'cwl=no' => 1, -'cwt=f' => 1, -'cwt=false' => 1, -'cwt=n' => 1, -'cwt=no' => 1, -'cwu=f' => 1, -'cwu=false' => 1, -'cwu=n' => 1, -'cwu=no' => 1, -'dash=f' => 1, -'dash=false' => 1, -'dash=n' => 1, -'dash=no' => 1, -'dep=f' => 1, -'dep=false' => 1, -'dep=n' => 1, -'dep=no' => 1, -'di=f' => 1, -'di=false' => 1, -'di=n' => 1, -'di=no' => 1, -'dia=f' => 1, -'dia=false' => 1, -'dia=n' => 1, -'dia=no' => 1, -'dt=none' => 1, -'ea=n' => 1, -'ea=neutral' => 1, -'ext=f' => 1, -'ext=false' => 1, -'ext=n' => 1, -'ext=no' => 1, -'gc=cn' => 1, -'gc=unassigned' => 1, -'gcb=other' => 1, -'gcb=xx' => 1, -'grbase=f' => 1, -'grbase=false' => 1, -'grbase=n' => 1, -'grbase=no' => 1, -'grext=f' => 1, -'grext=false' => 1, -'grext=n' => 1, -'grext=no' => 1, -'hex=f' => 1, -'hex=false' => 1, -'hex=n' => 1, -'hex=no' => 1, -'hst=na' => 1, -'hst=notapplicable' => 1, -'hyphen=f' => 1, -'hyphen=false' => 1, -'hyphen=n' => 1, -'hyphen=no' => 1, -'idc=f' => 1, -'idc=false' => 1, -'idc=n' => 1, -'idc=no' => 1, -'ideo=f' => 1, -'ideo=false' => 1, -'ideo=n' => 1, -'ideo=no' => 1, -'ids=f' => 1, -'ids=false' => 1, -'ids=n' => 1, -'ids=no' => 1, -'idsb=f' => 1, -'idsb=false' => 1, -'idsb=n' => 1, -'idsb=no' => 1, -'idst=f' => 1, -'idst=false' => 1, -'idst=n' => 1, -'idst=no' => 1, -'in=unassigned' => 1, -'innb' => 1, -'innoblock' => 1, -'inpc=na' => 1, -'insc=other' => 1, -'iscn' => 1, -'isnb' => 1, -'isnoblock' => 1, -'isunassigned' => 1, -'isunknown' => 1, -'iszzzz' => 1, -'jg=nojoininggroup' => 1, -'joinc=f' => 1, -'joinc=false' => 1, -'joinc=n' => 1, -'joinc=no' => 1, -'jt=nonjoining' => 1, -'jt=u' => 1, -'lb=unknown' => 1, -'lb=xx' => 1, -'loe=f' => 1, -'loe=false' => 1, -'loe=n' => 1, -'loe=no' => 1, -'lower=f' => 1, -'lower=false' => 1, -'lower=n' => 1, -'lower=no' => 1, -'math=f' => 1, -'math=false' => 1, -'math=n' => 1, -'math=no' => 1, -'nb' => 1, -'nchar=f' => 1, -'nchar=false' => 1, -'nchar=n' => 1, -'nchar=no' => 1, -'nfcqc=y' => 1, -'nfcqc=yes' => 1, -'nfdqc=y' => 1, -'nfdqc=yes' => 1, -'nfkcqc=y' => 1, -'nfkcqc=yes' => 1, -'nfkdqc=y' => 1, -'nfkdqc=yes' => 1, -'noblock' => 1, -'nt=none' => 1, -'nv=nan' => 1, -'patsyn=f' => 1, -'patsyn=false' => 1, -'patsyn=n' => 1, -'patsyn=no' => 1, -'patws=f' => 1, -'patws=false' => 1, -'patws=n' => 1, -'patws=no' => 1, -'qmark=f' => 1, -'qmark=false' => 1, -'qmark=n' => 1, -'qmark=no' => 1, -'radical=f' => 1, -'radical=false' => 1, -'radical=n' => 1, -'radical=no' => 1, -'sb=other' => 1, -'sb=xx' => 1, -'sc=unknown' => 1, -'sc=zzzz' => 1, -'scx=unknown' => 1, -'scx=zzzz' => 1, -'sd=f' => 1, -'sd=false' => 1, -'sd=n' => 1, -'sd=no' => 1, -'sterm=f' => 1, -'sterm=false' => 1, -'sterm=n' => 1, -'sterm=no' => 1, -'term=f' => 1, -'term=false' => 1, -'term=n' => 1, -'term=no' => 1, -'uideo=f' => 1, -'uideo=false' => 1, -'uideo=n' => 1, -'uideo=no' => 1, -'unassigned' => 1, -'unknown' => 1, -'upper=f' => 1, -'upper=false' => 1, -'upper=n' => 1, -'upper=no' => 1, -'vs=f' => 1, -'vs=false' => 1, -'vs=n' => 1, -'vs=no' => 1, -'wb=other' => 1, -'wb=xx' => 1, -'wspace=f' => 1, -'wspace=false' => 1, -'wspace=n' => 1, -'wspace=no' => 1, -'xidc=f' => 1, -'xidc=false' => 1, -'xidc=n' => 1, -'xidc=no' => 1, -'xids=f' => 1, -'xids=false' => 1, -'xids=n' => 1, -'xids=no' => 1, -'zzzz' => 1, -); - -# The properties that are combinations, in that they have both a map table and -# a match table. This is actually for UCD.t, so it knows how to test for -# these. -%Unicode::UCD::combination_property = ( - -); - -# All combinations of names that are suppressed. -# This is actually for UCD.t, so it knows which properties shouldn't have -# entries. If it got any bigger, would probably want to put it in its own -# file to use memory only when it was needed, in testing. -@Unicode::UCD::suppressed_properties = ( - -'cjkaccountingnumeric', -'cjkcompatibilityvariant', -'cjkiicore', -'cjkirggsource', -'cjkirghsource', -'cjkirgjsource', -'cjkirgkpsource', -'cjkirgksource', -'cjkirgmsource', -'cjkirgtsource', -'cjkirgusource', -'cjkirgvsource', -'cjkothernumeric', -'cjkprimarynumeric', -'cjkrsunicode', -'expandsonnfc', -'expandsonnfd', -'expandsonnfkc', -'expandsonnfkd', -'fcnfkc', -'fcnfkcclosure', -'graphemelink', -'grlink', -'jamoshortname', -'jsn', -'kaccountingnumeric', -'kcompatibilityvariant', -'kiicore', -'kirggsource', -'kirghsource', -'kirgjsource', -'kirgkpsource', -'kirgksource', -'kirgmsource', -'kirgtsource', -'kirgusource', -'kirgvsource', -'kothernumeric', -'kprimarynumeric', -'krsunicode', -'oalpha', -'odi', -'ogrext', -'oidc', -'oids', -'olower', -'omath', -'otheralphabetic', -'otherdefaultignorablecodepoint', -'othergraphemeextend', -'otheridcontinue', -'otheridstart', -'otherlowercase', -'othermath', -'otheruppercase', -'oupper', -'sc=hrkt', -'sc=katakanaorhiragana', -'script=hrkt', -'script=katakanaorhiragana', -'scriptextensions=hrkt', -'scriptextensions=katakanaorhiragana', -'scx=hrkt', -'scx=katakanaorhiragana', -'unicoderadicalstroke', -'urs', -'xonfc', -'xonfd', -'xonfkc', -'xonfkd', -, -); - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/NA.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/NA.pl deleted file mode 100644 index ad15d63b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/NA.pl +++ /dev/null @@ -1,1259 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1245 -888 -890 -896 -900 -907 -908 -909 -910 -930 -931 -1328 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1421 -1424 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1565 -1566 -1806 -1807 -1867 -1869 -1970 -1984 -2043 -2048 -2094 -2096 -2111 -2112 -2140 -2142 -2143 -2208 -2229 -2275 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2802 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3192 -3200 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3912 -3913 -3949 -3953 -3992 -3993 -4029 -4030 -4045 -4046 -4059 -4096 -4294 -4295 -4296 -4301 -4302 -4304 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4989 -4992 -5018 -5024 -5110 -5112 -5118 -5120 -5789 -5792 -5881 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6684 -6686 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -6832 -6847 -6912 -6988 -6992 -7037 -7040 -7156 -7164 -7224 -7227 -7242 -7245 -7296 -7360 -7368 -7376 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8293 -8294 -8306 -8308 -8335 -8336 -8349 -8352 -8383 -8400 -8433 -8448 -8588 -8592 -9211 -9216 -9255 -9280 -9291 -9312 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11264 -11311 -11312 -11359 -11360 -11508 -11513 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11633 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11843 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19894 -19904 -40918 -40960 -42125 -42128 -42183 -42192 -42540 -42560 -42744 -42752 -42926 -42928 -42936 -42999 -43052 -43056 -43066 -43072 -43128 -43136 -43205 -43214 -43226 -43232 -43262 -43264 -43348 -43359 -43389 -43392 -43470 -43471 -43482 -43486 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43715 -43739 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43878 -43888 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -55296 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64450 -64467 -64832 -64848 -64912 -64914 -64968 -64976 -65022 -65024 -65050 -65056 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65933 -65936 -65948 -65952 -65953 -66000 -66046 -66176 -66205 -66208 -66257 -66272 -66300 -66304 -66340 -66352 -66379 -66384 -66427 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -66927 -66928 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67743 -67751 -67760 -67808 -67827 -67828 -67830 -67835 -67868 -67871 -67898 -67903 -67904 -67968 -68024 -68028 -68048 -68050 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -68192 -68256 -68288 -68327 -68331 -68343 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68498 -68505 -68509 -68521 -68528 -68608 -68681 -68736 -68787 -68800 -68851 -68858 -68864 -69216 -69247 -69632 -69710 -69714 -69744 -69759 -69826 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69956 -69968 -70007 -70016 -70094 -70096 -70112 -70113 -70133 -70144 -70162 -70163 -70206 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70314 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70856 -70864 -70874 -71040 -71094 -71096 -71134 -71168 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71488 -71840 -71923 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74864 -74869 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92782 -92784 -92880 -92910 -92912 -92918 -92928 -92998 -93008 -93018 -93019 -93026 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113820 -113828 -118784 -119030 -119040 -119079 -119081 -119273 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -121484 -121499 -121504 -121505 -121520 -124928 -125125 -125127 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127232 -127245 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -131070 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -917505 -917506 -917536 -917632 -917760 -918000 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V11.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V11.pl deleted file mode 100644 index 65ada347..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V11.pl +++ /dev/null @@ -1,590 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V576 -0 -502 -506 -536 -592 -681 -688 -735 -736 -746 -768 -838 -864 -866 -884 -886 -890 -891 -894 -895 -900 -907 -908 -909 -910 -930 -931 -975 -976 -983 -986 -987 -988 -989 -990 -991 -992 -993 -994 -1012 -1025 -1037 -1038 -1104 -1105 -1117 -1118 -1159 -1168 -1221 -1223 -1225 -1227 -1229 -1232 -1260 -1262 -1270 -1272 -1274 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1418 -1456 -1466 -1467 -1476 -1488 -1515 -1520 -1525 -1548 -1549 -1563 -1564 -1567 -1568 -1569 -1595 -1600 -1619 -1632 -1646 -1648 -1720 -1722 -1727 -1728 -1743 -1744 -1774 -1776 -1786 -2305 -2308 -2309 -2362 -2364 -2382 -2384 -2389 -2392 -2417 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2493 -2494 -2501 -2503 -2505 -2507 -2510 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2555 -2562 -2563 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2649 -2653 -2654 -2655 -2662 -2677 -2689 -2692 -2693 -2700 -2701 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2785 -2790 -2800 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2870 -2874 -2876 -2884 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2914 -2918 -2929 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -2998 -2999 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3031 -3032 -3047 -3059 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3124 -3125 -3130 -3134 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3168 -3170 -3174 -3184 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3262 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3298 -3302 -3312 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3369 -3370 -3386 -3390 -3396 -3398 -3401 -3402 -3406 -3415 -3416 -3424 -3426 -3430 -3440 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3806 -4256 -4294 -4304 -4343 -4347 -4348 -4352 -4442 -4447 -4515 -4520 -4602 -7680 -7835 -7840 -7930 -7936 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8239 -8240 -8263 -8298 -8305 -8308 -8335 -8352 -8363 -8400 -8418 -8448 -8505 -8531 -8579 -8592 -8683 -8704 -8946 -8960 -8961 -8962 -9083 -9216 -9253 -9280 -9291 -9312 -9451 -9472 -9622 -9632 -9712 -9728 -9748 -9754 -9840 -9985 -9989 -9990 -9994 -9996 -10024 -10025 -10060 -10061 -10062 -10063 -10067 -10070 -10071 -10072 -10079 -10081 -10088 -10102 -10133 -10136 -10160 -10161 -10175 -12288 -12344 -12351 -12352 -12353 -12437 -12441 -12447 -12449 -12543 -12549 -12589 -12593 -12687 -12688 -12704 -12800 -12829 -12832 -12868 -12896 -12924 -12927 -12977 -12992 -13004 -13008 -13055 -13056 -13175 -13179 -13278 -13280 -13311 -19968 -40870 -57344 -64046 -64256 -64263 -64275 -64280 -64286 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64832 -64848 -64912 -64914 -64968 -65008 -65020 -65056 -65060 -65072 -65093 -65097 -65107 -65108 -65127 -65128 -65132 -65136 -65139 -65140 -65141 -65142 -65277 -65279 -65280 -65281 -65375 -65377 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65533 -65536 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V20.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V20.pl deleted file mode 100644 index 69df65d3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V20.pl +++ /dev/null @@ -1,72 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V58 -1425 -1442 -1443 -1456 -1476 -1477 -3840 -3912 -3913 -3946 -3953 -3980 -3984 -3990 -3991 -3992 -3993 -4014 -4017 -4024 -4025 -4026 -7835 -7836 -8363 -8364 -44032 -55204 -55296 -57344 -131070 -131072 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V30.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V30.pl deleted file mode 100644 index 839c9791..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V30.pl +++ /dev/null @@ -1,256 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V242 -502 -506 -536 -544 -546 -564 -681 -686 -735 -736 -746 -751 -838 -847 -866 -867 -983 -984 -987 -988 -989 -990 -991 -992 -993 -994 -1024 -1025 -1037 -1038 -1104 -1105 -1117 -1118 -1160 -1162 -1164 -1168 -1260 -1262 -1418 -1419 -1619 -1622 -1720 -1722 -1727 -1728 -1743 -1744 -1786 -1791 -1792 -1806 -1807 -1837 -1840 -1867 -1920 -1969 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3573 -3946 -3947 -3990 -3991 -4014 -4017 -4024 -4025 -4026 -4029 -4030 -4045 -4047 -4048 -4096 -4130 -4131 -4136 -4137 -4139 -4140 -4147 -4150 -4154 -4160 -4186 -4608 -4615 -4616 -4679 -4680 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4743 -4744 -4745 -4746 -4750 -4752 -4783 -4784 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4815 -4816 -4823 -4824 -4847 -4848 -4879 -4880 -4881 -4882 -4886 -4888 -4895 -4896 -4935 -4936 -4955 -4961 -4989 -5024 -5109 -5121 -5751 -5760 -5789 -5792 -5873 -6016 -6109 -6112 -6122 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6314 -8239 -8240 -8264 -8270 -8365 -8368 -8418 -8420 -8505 -8507 -8579 -8580 -8683 -8692 -8961 -8962 -9083 -9084 -9085 -9115 -9253 -9255 -9712 -9720 -9753 -9754 -9840 -9842 -10240 -10496 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12344 -12347 -12350 -12351 -12704 -12728 -13312 -19894 -40960 -42125 -42128 -42146 -42148 -42164 -42165 -42177 -42178 -42181 -42182 -42183 -64285 -64286 -65529 -65532 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V31.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V31.pl deleted file mode 100644 index 1bf604ed..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V31.pl +++ /dev/null @@ -1,86 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V72 -1012 -1014 -64976 -65008 -66304 -66335 -66336 -66340 -66352 -66379 -66560 -66598 -66600 -66638 -118784 -119030 -119040 -119079 -119082 -119262 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120001 -120002 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120484 -120488 -120778 -120782 -120832 -131072 -173783 -194560 -195102 -917505 -917506 -917536 -917632 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V32.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V32.pl deleted file mode 100644 index b28d94aa..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V32.pl +++ /dev/null @@ -1,132 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V118 -544 -545 -847 -848 -867 -880 -984 -986 -1014 -1015 -1162 -1164 -1221 -1223 -1225 -1227 -1229 -1231 -1280 -1296 -1646 -1648 -1969 -1970 -4343 -4345 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -8263 -8264 -8270 -8275 -8279 -8280 -8287 -8292 -8305 -8306 -8368 -8370 -8420 -8427 -8509 -8524 -8692 -8704 -8946 -8960 -9084 -9085 -9115 -9167 -9451 -9471 -9622 -9632 -9720 -9728 -9750 -9752 -9842 -9854 -9856 -9866 -10088 -10102 -10192 -10220 -10224 -10240 -10496 -11008 -12347 -12350 -12437 -12439 -12447 -12449 -12543 -12544 -12784 -12800 -12881 -12896 -12977 -12992 -42146 -42148 -42164 -42165 -42177 -42178 -42181 -42182 -64048 -64107 -65020 -65021 -65024 -65040 -65093 -65095 -65139 -65140 -65375 -65377 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V40.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V40.pl deleted file mode 100644 index a0a80446..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V40.pl +++ /dev/null @@ -1,168 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V154 -545 -546 -564 -567 -686 -688 -751 -768 -848 -856 -861 -864 -1015 -1020 -1536 -1540 -1549 -1558 -1622 -1625 -1774 -1776 -1791 -1792 -1837 -1840 -1869 -1872 -2308 -2309 -2493 -2494 -2561 -2562 -2563 -2564 -2700 -2701 -2785 -2788 -2801 -2802 -2869 -2870 -2929 -2930 -3059 -3067 -3260 -3262 -6109 -6110 -6128 -6138 -6400 -6429 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6624 -6656 -7424 -7532 -8275 -8277 -8507 -8508 -9167 -9169 -9471 -9472 -9748 -9750 -9866 -9874 -9888 -9890 -11008 -11022 -12829 -12831 -12880 -12881 -12924 -12926 -13004 -13008 -13175 -13179 -13278 -13280 -13311 -13312 -19904 -19968 -65021 -65022 -65095 -65097 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65856 -66432 -66462 -66463 -66464 -66598 -66600 -66638 -66718 -66720 -66730 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67648 -119552 -119639 -120001 -120002 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V41.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V41.pl deleted file mode 100644 index 13a0be14..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V41.pl +++ /dev/null @@ -1,186 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V172 -567 -578 -856 -861 -1020 -1024 -1270 -1272 -1442 -1443 -1477 -1480 -1547 -1548 -1566 -1567 -1625 -1631 -1872 -1902 -2429 -2430 -2510 -2511 -2998 -2999 -3046 -3047 -4048 -4050 -4345 -4347 -4348 -4349 -4615 -4616 -4679 -4680 -4743 -4744 -4783 -4784 -4815 -4816 -4847 -4848 -4879 -4880 -4895 -4896 -4935 -4936 -4959 -4961 -4992 -5018 -6528 -6570 -6576 -6602 -6608 -6618 -6622 -6624 -6656 -6684 -6686 -6688 -7532 -7620 -8277 -8279 -8280 -8287 -8336 -8341 -8370 -8374 -8427 -8428 -8508 -8509 -8524 -8525 -9169 -9180 -9752 -9753 -9854 -9856 -9874 -9885 -9890 -9906 -10176 -10183 -11022 -11028 -11264 -11311 -11312 -11359 -11392 -11499 -11513 -11558 -11568 -11622 -11631 -11632 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11776 -11800 -11804 -11806 -12736 -12752 -12926 -12927 -40870 -40892 -42752 -42775 -43008 -43052 -64112 -64218 -65040 -65050 -65856 -65931 -66464 -66500 -66504 -66518 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -119296 -119366 -120484 -120486 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V50.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V50.pl deleted file mode 100644 index 68dc26bd..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V50.pl +++ /dev/null @@ -1,84 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V70 -578 -592 -891 -894 -1231 -1232 -1274 -1280 -1296 -1300 -1466 -1467 -1984 -2043 -2427 -2429 -2430 -2432 -3298 -3300 -3313 -3315 -6912 -6988 -6992 -7037 -7620 -7627 -7678 -7680 -8428 -8432 -8525 -8527 -8580 -8581 -9180 -9192 -9906 -9907 -10183 -10187 -11028 -11035 -11040 -11044 -11360 -11373 -11380 -11384 -42775 -42779 -42784 -42786 -43072 -43128 -67840 -67866 -67871 -67872 -73728 -74607 -74752 -74851 -74864 -74868 -119648 -119666 -120778 -120780 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V51.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V51.pl deleted file mode 100644 index 8f826a11..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V51.pl +++ /dev/null @@ -1,192 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V178 -880 -884 -886 -888 -975 -976 -1159 -1160 -1300 -1316 -1542 -1547 -1558 -1563 -1595 -1600 -1902 -1920 -2417 -2419 -2641 -2642 -2677 -2678 -2884 -2885 -2914 -2916 -3024 -3025 -3133 -3134 -3160 -3162 -3170 -3172 -3192 -3200 -3389 -3390 -3396 -3397 -3426 -3428 -3440 -3446 -3449 -3456 -3947 -3949 -4046 -4047 -4050 -4053 -4130 -4131 -4136 -4137 -4139 -4140 -4147 -4150 -4154 -4160 -4186 -4250 -4254 -4256 -6314 -6315 -7040 -7083 -7086 -7098 -7168 -7224 -7227 -7242 -7245 -7296 -7627 -7655 -7836 -7840 -7930 -7936 -8292 -8293 -8432 -8433 -8527 -8528 -8581 -8585 -9885 -9886 -9907 -9917 -9920 -9924 -10188 -10189 -10220 -10224 -11035 -11040 -11044 -11085 -11088 -11093 -11373 -11376 -11377 -11380 -11384 -11390 -11744 -11776 -11800 -11804 -11806 -11825 -12589 -12590 -12752 -12772 -40892 -40900 -42240 -42540 -42560 -42592 -42594 -42612 -42620 -42648 -42779 -42784 -42786 -42893 -43003 -43008 -43136 -43205 -43214 -43226 -43264 -43348 -43359 -43360 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43616 -65060 -65063 -65936 -65948 -66000 -66046 -66176 -66205 -66208 -66257 -67872 -67898 -67903 -67904 -119081 -119082 -126976 -127020 -127024 -127124 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V52.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V52.pl deleted file mode 100644 index ca108cc7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V52.pl +++ /dev/null @@ -1,194 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V180 -1316 -1318 -2048 -2094 -2096 -2111 -2304 -2305 -2382 -2383 -2389 -2390 -2425 -2427 -2555 -2556 -4053 -4057 -4250 -4254 -4442 -4447 -4515 -4520 -4602 -4608 -5120 -5121 -5751 -5760 -6320 -6390 -6570 -6572 -6618 -6619 -6688 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -7376 -7411 -7677 -7678 -8374 -8377 -8528 -8531 -8585 -8586 -9192 -9193 -9886 -9888 -9917 -9920 -9924 -9934 -9935 -9954 -9955 -9956 -9960 -9984 -10071 -10072 -11093 -11098 -11376 -11377 -11390 -11392 -11499 -11506 -11825 -11826 -12868 -12880 -40900 -40908 -42192 -42240 -42656 -42744 -43056 -43066 -43232 -43260 -43360 -43389 -43392 -43470 -43471 -43482 -43486 -43488 -43616 -43644 -43648 -43715 -43739 -43744 -43968 -44014 -44016 -44026 -55216 -55239 -55243 -55292 -64107 -64110 -67648 -67670 -67671 -67680 -67866 -67868 -68192 -68224 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68480 -68608 -68681 -69216 -69247 -69760 -69826 -77824 -78895 -127232 -127243 -127248 -127279 -127281 -127282 -127293 -127294 -127295 -127296 -127298 -127299 -127302 -127303 -127306 -127311 -127319 -127320 -127327 -127328 -127353 -127354 -127355 -127357 -127359 -127360 -127370 -127374 -127376 -127377 -127488 -127489 -127504 -127538 -127552 -127561 -173824 -177973 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V60.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V60.pl deleted file mode 100644 index a7a5f9f3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V60.pl +++ /dev/null @@ -1,226 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V212 -1318 -1320 -1568 -1569 -1631 -1632 -2112 -2140 -2142 -2143 -2362 -2364 -2383 -2384 -2390 -2392 -2419 -2424 -2930 -2936 -3369 -3370 -3386 -3387 -3406 -3407 -3980 -3984 -4057 -4059 -4957 -4959 -7104 -7156 -7164 -7168 -7676 -7677 -8341 -8349 -8377 -8378 -9193 -9204 -9934 -9935 -9954 -9955 -9956 -9960 -9989 -9990 -9994 -9996 -10024 -10025 -10060 -10061 -10062 -10063 -10067 -10070 -10079 -10081 -10133 -10136 -10160 -10161 -10175 -10176 -10190 -10192 -11632 -11633 -11647 -11648 -12728 -12731 -42592 -42594 -42893 -42895 -42896 -42898 -42912 -42922 -43002 -43003 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -64434 -64450 -69632 -69710 -69714 -69744 -92160 -92729 -110592 -110594 -127136 -127151 -127153 -127167 -127169 -127184 -127185 -127200 -127280 -127281 -127282 -127293 -127294 -127295 -127296 -127298 -127299 -127302 -127303 -127306 -127311 -127319 -127320 -127327 -127328 -127338 -127344 -127353 -127354 -127355 -127357 -127359 -127360 -127370 -127374 -127376 -127377 -127387 -127462 -127488 -127489 -127491 -127538 -127547 -127568 -127570 -127744 -127777 -127792 -127798 -127799 -127869 -127872 -127892 -127904 -127941 -127942 -127947 -127968 -127985 -128000 -128063 -128064 -128065 -128066 -128248 -128249 -128253 -128256 -128318 -128336 -128360 -128507 -128512 -128513 -128529 -128530 -128533 -128534 -128535 -128536 -128537 -128538 -128539 -128540 -128543 -128544 -128550 -128552 -128556 -128557 -128558 -128560 -128564 -128565 -128577 -128581 -128592 -128640 -128710 -128768 -128884 -177984 -178206 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V61.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V61.pl deleted file mode 100644 index 86760945..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V61.pl +++ /dev/null @@ -1,192 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V178 -1423 -1424 -1540 -1541 -2208 -2209 -2210 -2221 -2276 -2303 -2800 -2801 -3806 -3808 -4295 -4296 -4301 -4302 -4349 -4352 -7083 -7086 -7098 -7104 -7360 -7368 -7411 -7415 -10187 -10188 -10189 -10190 -11506 -11508 -11559 -11560 -11565 -11566 -11622 -11624 -11826 -11836 -40908 -40909 -42612 -42620 -42655 -42656 -42898 -42900 -42922 -42923 -43000 -43002 -43744 -43767 -64046 -64048 -67968 -68024 -68030 -68032 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69956 -70016 -70089 -70096 -70106 -71296 -71352 -71360 -71370 -93952 -94021 -94032 -94079 -94095 -94112 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -127338 -127340 -128320 -128324 -128512 -128513 -128529 -128530 -128533 -128534 -128535 -128536 -128537 -128538 -128539 -128540 -128543 -128544 -128550 -128552 -128556 -128557 -128558 -128560 -128564 -128565 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V70.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V70.pl deleted file mode 100644 index 1fdafb79..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V70.pl +++ /dev/null @@ -1,296 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V282 -895 -896 -1320 -1328 -1421 -1423 -1541 -1542 -2209 -2210 -2221 -2227 -2303 -2304 -2424 -2425 -2432 -2433 -3072 -3073 -3124 -3125 -3201 -3202 -3329 -3330 -3558 -3568 -5873 -5881 -6429 -6431 -6832 -6847 -7416 -7418 -7655 -7670 -8379 -8382 -9204 -9211 -9984 -9985 -11085 -11088 -11098 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11836 -11843 -42648 -42654 -42900 -42912 -42923 -42926 -42928 -42930 -42999 -43000 -43488 -43519 -43644 -43648 -43824 -43872 -43876 -43878 -65063 -65070 -65931 -65933 -65952 -65953 -66272 -66300 -66335 -66336 -66384 -66427 -66816 -66856 -66864 -66916 -66927 -66928 -67072 -67383 -67392 -67414 -67424 -67432 -67680 -67743 -67751 -67760 -68224 -68256 -68288 -68327 -68331 -68343 -68480 -68498 -68505 -68509 -68521 -68528 -69759 -69760 -69968 -70007 -70093 -70094 -70106 -70107 -70113 -70133 -70144 -70162 -70163 -70206 -70320 -70379 -70384 -70394 -70401 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70856 -70864 -70874 -71040 -71094 -71096 -71114 -71168 -71237 -71248 -71258 -71840 -71923 -71935 -71936 -72384 -72441 -74607 -74649 -74851 -74863 -74868 -74869 -92736 -92767 -92768 -92778 -92782 -92784 -92880 -92910 -92912 -92918 -92928 -92998 -93008 -93018 -93019 -93026 -93027 -93048 -93053 -93072 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113820 -113828 -124928 -125125 -125127 -125143 -127167 -127168 -127200 -127222 -127243 -127245 -127777 -127789 -127798 -127799 -127869 -127870 -127892 -127904 -127941 -127942 -127947 -127951 -127956 -127968 -127985 -127992 -128063 -128064 -128065 -128066 -128248 -128249 -128253 -128255 -128318 -128320 -128324 -128331 -128360 -128378 -128379 -128420 -128421 -128507 -128577 -128579 -128592 -128640 -128710 -128720 -128736 -128749 -128752 -128756 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V80.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V80.pl deleted file mode 100644 index 8046d40c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Age/V80.pl +++ /dev/null @@ -1,132 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V118 -2227 -2229 -2275 -2276 -2809 -2810 -3162 -3163 -3423 -3424 -5109 -5110 -5112 -5118 -8382 -8383 -8586 -8588 -11244 -11248 -40909 -40918 -42654 -42655 -42895 -42896 -42930 -42936 -43260 -43262 -43872 -43876 -43888 -43968 -65070 -65072 -67808 -67827 -67828 -67830 -67835 -67840 -68028 -68030 -68032 -68048 -68050 -68096 -68736 -68787 -68800 -68851 -68858 -68864 -70089 -70093 -70107 -70112 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70314 -70400 -70401 -70480 -70481 -71114 -71134 -71424 -71450 -71453 -71468 -71472 -71488 -74649 -74650 -74880 -75076 -82944 -83527 -119262 -119273 -120832 -121484 -121499 -121504 -121505 -121520 -127789 -127792 -127870 -127872 -127951 -127956 -127992 -128000 -128255 -128256 -128331 -128336 -128579 -128581 -128720 -128721 -129296 -129305 -129408 -129413 -129472 -129473 -178208 -183970 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Alpha/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Alpha/Y.pl deleted file mode 100644 index d2f43971..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Alpha/Y.pl +++ /dev/null @@ -1,1248 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1234 -65 -91 -97 -123 -170 -171 -181 -182 -186 -187 -192 -215 -216 -247 -248 -706 -710 -722 -736 -741 -748 -749 -750 -751 -837 -838 -880 -885 -886 -888 -890 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1162 -1328 -1329 -1367 -1369 -1370 -1377 -1416 -1456 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1488 -1515 -1520 -1523 -1552 -1563 -1568 -1624 -1625 -1632 -1646 -1748 -1749 -1757 -1761 -1769 -1773 -1776 -1786 -1789 -1791 -1792 -1808 -1856 -1869 -1970 -1994 -2027 -2036 -2038 -2042 -2043 -2048 -2072 -2074 -2093 -2112 -2137 -2208 -2229 -2275 -2282 -2288 -2364 -2365 -2381 -2382 -2385 -2389 -2404 -2417 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2493 -2501 -2503 -2505 -2507 -2509 -2510 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2544 -2546 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2622 -2627 -2631 -2633 -2635 -2637 -2641 -2642 -2649 -2653 -2654 -2655 -2672 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2749 -2758 -2759 -2762 -2763 -2765 -2768 -2769 -2784 -2788 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2877 -2885 -2887 -2889 -2891 -2893 -2902 -2904 -2908 -2910 -2911 -2916 -2929 -2930 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3021 -3024 -3025 -3031 -3032 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3149 -3157 -3159 -3160 -3163 -3168 -3172 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3261 -3269 -3270 -3273 -3274 -3277 -3285 -3287 -3294 -3295 -3296 -3300 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3405 -3406 -3407 -3415 -3416 -3423 -3428 -3450 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3572 -3585 -3643 -3648 -3655 -3661 -3662 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3789 -3790 -3804 -3808 -3840 -3841 -3904 -3912 -3913 -3949 -3953 -3970 -3976 -3992 -3993 -4029 -4096 -4151 -4152 -4153 -4155 -4160 -4176 -4195 -4197 -4201 -4206 -4231 -4238 -4239 -4252 -4254 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4959 -4960 -4992 -5008 -5024 -5110 -5112 -5118 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5870 -5881 -5888 -5901 -5902 -5908 -5920 -5940 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6068 -6070 -6089 -6103 -6104 -6108 -6109 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6457 -6480 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6656 -6684 -6688 -6751 -6753 -6773 -6823 -6824 -6912 -6964 -6965 -6980 -6981 -6988 -7040 -7082 -7084 -7088 -7098 -7142 -7143 -7154 -7168 -7222 -7245 -7248 -7258 -7294 -7401 -7405 -7406 -7412 -7413 -7415 -7424 -7616 -7655 -7669 -7680 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8305 -8306 -8319 -8320 -8336 -8349 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8544 -8585 -9398 -9450 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11503 -11506 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11776 -11823 -11824 -12293 -12296 -12321 -12330 -12337 -12342 -12344 -12349 -12353 -12439 -12445 -12448 -12449 -12539 -12540 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13312 -19894 -19968 -40918 -40960 -42125 -42192 -42238 -42240 -42509 -42512 -42528 -42538 -42540 -42560 -42607 -42612 -42620 -42623 -42736 -42775 -42784 -42786 -42889 -42891 -42926 -42928 -42936 -42999 -43010 -43011 -43014 -43015 -43019 -43020 -43048 -43072 -43124 -43136 -43204 -43250 -43256 -43259 -43260 -43261 -43262 -43274 -43307 -43312 -43347 -43360 -43389 -43392 -43443 -43444 -43456 -43471 -43472 -43488 -43493 -43494 -43504 -43514 -43519 -43520 -43575 -43584 -43598 -43616 -43639 -43642 -43643 -43646 -43711 -43712 -43713 -43714 -43715 -43739 -43742 -43744 -43760 -43762 -43766 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43867 -43868 -43878 -43888 -44011 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65020 -65136 -65141 -65142 -65277 -65313 -65339 -65345 -65371 -65382 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65856 -65909 -66176 -66205 -66208 -66257 -66304 -66336 -66352 -66379 -66384 -66427 -66432 -66462 -66464 -66500 -66504 -66512 -66513 -66518 -66560 -66718 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68325 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -68736 -68787 -68800 -68851 -69632 -69702 -69762 -69817 -69840 -69865 -69888 -69939 -69968 -70003 -70006 -70007 -70016 -70080 -70081 -70085 -70106 -70107 -70108 -70109 -70144 -70162 -70163 -70197 -70199 -70200 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70377 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70461 -70469 -70471 -70473 -70475 -70477 -70480 -70481 -70487 -70488 -70493 -70500 -70784 -70850 -70852 -70854 -70855 -70856 -71040 -71094 -71096 -71103 -71128 -71134 -71168 -71231 -71232 -71233 -71236 -71237 -71296 -71350 -71424 -71450 -71453 -71467 -71840 -71904 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92880 -92910 -92928 -92983 -92992 -92996 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94099 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113822 -113823 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -124928 -125125 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -127280 -127306 -127312 -127338 -127344 -127370 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/AL.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/AL.pl deleted file mode 100644 index 320cc3df..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/AL.pl +++ /dev/null @@ -1,54 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V40 -1544 -1545 -1547 -1548 -1549 -1550 -1563 -1611 -1645 -1648 -1649 -1750 -1765 -1767 -1774 -1776 -1786 -1809 -1810 -1840 -1867 -1958 -1969 -1984 -2208 -2275 -64336 -64830 -64832 -64976 -65008 -65021 -65022 -65024 -65136 -65279 -126464 -126704 -126706 -126720 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/AN.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/AN.pl deleted file mode 100644 index 92d5e9b3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/AN.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -1536 -1542 -1632 -1642 -1643 -1645 -1757 -1758 -69216 -69247 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/B.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/B.pl deleted file mode 100644 index 81417a95..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/B.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -10 -11 -13 -14 -28 -31 -133 -134 -8233 -8234 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/BN.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/BN.pl deleted file mode 100644 index df79919a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/BN.pl +++ /dev/null @@ -1,78 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V64 -0 -9 -14 -28 -127 -133 -134 -160 -173 -174 -6158 -6159 -8203 -8206 -8288 -8294 -8298 -8304 -64976 -65008 -65279 -65280 -65520 -65529 -65534 -65536 -113824 -113828 -119155 -119163 -131070 -131072 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917760 -918000 -921600 -983038 -983040 -1048574 -1048576 -1114110 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/CS.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/CS.pl deleted file mode 100644 index aa8cb362..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/CS.pl +++ /dev/null @@ -1,40 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V26 -44 -45 -46 -48 -58 -59 -160 -161 -1548 -1549 -8239 -8240 -8260 -8261 -65104 -65105 -65106 -65107 -65109 -65110 -65292 -65293 -65294 -65296 -65306 -65307 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/EN.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/EN.pl deleted file mode 100644 index 897c7c25..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/EN.pl +++ /dev/null @@ -1,38 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V24 -48 -58 -178 -180 -185 -186 -1776 -1786 -8304 -8305 -8308 -8314 -8320 -8330 -9352 -9372 -65296 -65306 -66273 -66300 -120782 -120832 -127232 -127243 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/ES.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/ES.pl deleted file mode 100644 index 80a70db7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/ES.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -43 -44 -45 -46 -8314 -8316 -8330 -8332 -8722 -8723 -64297 -64298 -65122 -65124 -65291 -65292 -65293 -65294 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/ET.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/ET.pl deleted file mode 100644 index 43873091..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/ET.pl +++ /dev/null @@ -1,58 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V44 -35 -38 -162 -166 -176 -178 -1423 -1424 -1545 -1547 -1642 -1643 -2546 -2548 -2555 -2556 -2801 -2802 -3065 -3066 -3647 -3648 -6107 -6108 -8240 -8245 -8352 -8400 -8494 -8495 -8723 -8724 -43064 -43066 -65119 -65120 -65129 -65131 -65283 -65286 -65504 -65506 -65509 -65511 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/L.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/L.pl deleted file mode 100644 index 2f89d63d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/L.pl +++ /dev/null @@ -1,803 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V789 -65 -91 -97 -123 -170 -171 -181 -182 -186 -187 -192 -215 -216 -247 -248 -697 -699 -706 -720 -722 -736 -741 -750 -751 -880 -884 -886 -894 -895 -900 -902 -903 -904 -1014 -1015 -1155 -1162 -1418 -1419 -1421 -2307 -2362 -2363 -2364 -2365 -2369 -2377 -2381 -2382 -2385 -2392 -2402 -2404 -2433 -2434 -2492 -2493 -2497 -2501 -2509 -2510 -2530 -2532 -2546 -2548 -2555 -2556 -2561 -2563 -2620 -2621 -2625 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2672 -2674 -2677 -2678 -2689 -2691 -2748 -2749 -2753 -2758 -2759 -2761 -2765 -2766 -2786 -2788 -2801 -2802 -2817 -2818 -2876 -2877 -2879 -2880 -2881 -2885 -2893 -2894 -2902 -2903 -2914 -2916 -2946 -2947 -3008 -3009 -3021 -3022 -3059 -3067 -3072 -3073 -3134 -3137 -3142 -3145 -3146 -3150 -3157 -3159 -3170 -3172 -3192 -3199 -3201 -3202 -3260 -3261 -3276 -3278 -3298 -3300 -3329 -3330 -3393 -3397 -3405 -3406 -3426 -3428 -3530 -3531 -3538 -3541 -3542 -3543 -3633 -3634 -3636 -3643 -3647 -3648 -3655 -3663 -3761 -3762 -3764 -3770 -3771 -3773 -3784 -3790 -3864 -3866 -3893 -3894 -3895 -3896 -3897 -3902 -3953 -3967 -3968 -3973 -3974 -3976 -3981 -3992 -3993 -4029 -4038 -4039 -4141 -4145 -4146 -4152 -4153 -4155 -4157 -4159 -4184 -4186 -4190 -4193 -4209 -4213 -4226 -4227 -4229 -4231 -4237 -4238 -4253 -4254 -4957 -4960 -5008 -5018 -5120 -5121 -5760 -5761 -5787 -5789 -5906 -5909 -5938 -5941 -5970 -5972 -6002 -6004 -6068 -6070 -6071 -6078 -6086 -6087 -6089 -6100 -6107 -6108 -6109 -6110 -6128 -6138 -6144 -6159 -6313 -6314 -6432 -6435 -6439 -6441 -6450 -6451 -6457 -6460 -6464 -6465 -6468 -6470 -6622 -6656 -6679 -6681 -6683 -6684 -6742 -6743 -6744 -6751 -6752 -6753 -6754 -6755 -6757 -6765 -6771 -6781 -6783 -6784 -6832 -6847 -6912 -6916 -6964 -6965 -6966 -6971 -6972 -6973 -6978 -6979 -7019 -7028 -7040 -7042 -7074 -7078 -7080 -7082 -7083 -7086 -7142 -7143 -7144 -7146 -7149 -7150 -7151 -7154 -7212 -7220 -7222 -7224 -7376 -7379 -7380 -7393 -7394 -7401 -7405 -7406 -7412 -7413 -7416 -7418 -7616 -7670 -7676 -7680 -8125 -8126 -8127 -8130 -8141 -8144 -8157 -8160 -8173 -8176 -8189 -8191 -8192 -8206 -8207 -8305 -8308 -8319 -8320 -8335 -8352 -8433 -8448 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8506 -8508 -8512 -8517 -8522 -8526 -8528 -8544 -8585 -8588 -8592 -9014 -9083 -9109 -9110 -9211 -9216 -9255 -9280 -9291 -9312 -9372 -9450 -9900 -9901 -10240 -10496 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11493 -11499 -11503 -11506 -11513 -11520 -11647 -11648 -11744 -11843 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12293 -12296 -12321 -12330 -12334 -12336 -12337 -12342 -12344 -12349 -12352 -12441 -12445 -12448 -12449 -12539 -12540 -12736 -12772 -12829 -12831 -12880 -12896 -12924 -12927 -12977 -12992 -13004 -13008 -13175 -13179 -13278 -13280 -13311 -13312 -19904 -19968 -42128 -42183 -42509 -42512 -42607 -42624 -42654 -42656 -42736 -42738 -42752 -42786 -42888 -42889 -43010 -43011 -43014 -43015 -43019 -43020 -43045 -43047 -43048 -43052 -43064 -43066 -43124 -43128 -43204 -43205 -43232 -43250 -43302 -43310 -43335 -43346 -43392 -43395 -43443 -43444 -43446 -43450 -43452 -43453 -43493 -43494 -43561 -43567 -43569 -43571 -43573 -43575 -43587 -43588 -43596 -43597 -43644 -43645 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43756 -43758 -43766 -43767 -44005 -44006 -44008 -44009 -44013 -44014 -64285 -65050 -65056 -65107 -65108 -65127 -65128 -65132 -65136 -65280 -65281 -65313 -65339 -65345 -65371 -65382 -65504 -65511 -65512 -65519 -65520 -65536 -65793 -65794 -65856 -65933 -65936 -65948 -65952 -65953 -66045 -66046 -66272 -66300 -66422 -66427 -67584 -69632 -69633 -69634 -69688 -69703 -69714 -69734 -69759 -69762 -69811 -69815 -69817 -69819 -69888 -69891 -69927 -69932 -69933 -69941 -70003 -70004 -70016 -70018 -70070 -70079 -70090 -70093 -70191 -70194 -70196 -70197 -70198 -70200 -70367 -70368 -70371 -70379 -70400 -70402 -70460 -70461 -70464 -70465 -70502 -70509 -70512 -70517 -70835 -70841 -70842 -70843 -70847 -70849 -70850 -70852 -71090 -71094 -71100 -71102 -71103 -71105 -71132 -71134 -71219 -71227 -71229 -71230 -71231 -71233 -71339 -71340 -71341 -71342 -71344 -71350 -71351 -71352 -71453 -71456 -71458 -71462 -71463 -71468 -92912 -92917 -92976 -92983 -94095 -94099 -113821 -113823 -113824 -113828 -119143 -119146 -119155 -119171 -119173 -119180 -119210 -119214 -119296 -119366 -119552 -119639 -120539 -120540 -120597 -120598 -120655 -120656 -120713 -120714 -120771 -120772 -120782 -120832 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -124928 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127232 -127245 -127338 -127340 -127744 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -131070 -131072 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -921600 -983038 -983040 -1048574 -1048576 -1114110 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/NSM.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/NSM.pl deleted file mode 100644 index 25cfebae..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/NSM.pl +++ /dev/null @@ -1,538 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V524 -768 -880 -1155 -1162 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1552 -1563 -1611 -1632 -1648 -1649 -1750 -1757 -1759 -1765 -1767 -1769 -1770 -1774 -1809 -1810 -1840 -1867 -1958 -1969 -2027 -2036 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2094 -2137 -2140 -2275 -2307 -2362 -2363 -2364 -2365 -2369 -2377 -2381 -2382 -2385 -2392 -2402 -2404 -2433 -2434 -2492 -2493 -2497 -2501 -2509 -2510 -2530 -2532 -2561 -2563 -2620 -2621 -2625 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2672 -2674 -2677 -2678 -2689 -2691 -2748 -2749 -2753 -2758 -2759 -2761 -2765 -2766 -2786 -2788 -2817 -2818 -2876 -2877 -2879 -2880 -2881 -2885 -2893 -2894 -2902 -2903 -2914 -2916 -2946 -2947 -3008 -3009 -3021 -3022 -3072 -3073 -3134 -3137 -3142 -3145 -3146 -3150 -3157 -3159 -3170 -3172 -3201 -3202 -3260 -3261 -3276 -3278 -3298 -3300 -3329 -3330 -3393 -3397 -3405 -3406 -3426 -3428 -3530 -3531 -3538 -3541 -3542 -3543 -3633 -3634 -3636 -3643 -3655 -3663 -3761 -3762 -3764 -3770 -3771 -3773 -3784 -3790 -3864 -3866 -3893 -3894 -3895 -3896 -3897 -3898 -3953 -3967 -3968 -3973 -3974 -3976 -3981 -3992 -3993 -4029 -4038 -4039 -4141 -4145 -4146 -4152 -4153 -4155 -4157 -4159 -4184 -4186 -4190 -4193 -4209 -4213 -4226 -4227 -4229 -4231 -4237 -4238 -4253 -4254 -4957 -4960 -5906 -5909 -5938 -5941 -5970 -5972 -6002 -6004 -6068 -6070 -6071 -6078 -6086 -6087 -6089 -6100 -6109 -6110 -6155 -6158 -6313 -6314 -6432 -6435 -6439 -6441 -6450 -6451 -6457 -6460 -6679 -6681 -6683 -6684 -6742 -6743 -6744 -6751 -6752 -6753 -6754 -6755 -6757 -6765 -6771 -6781 -6783 -6784 -6832 -6847 -6912 -6916 -6964 -6965 -6966 -6971 -6972 -6973 -6978 -6979 -7019 -7028 -7040 -7042 -7074 -7078 -7080 -7082 -7083 -7086 -7142 -7143 -7144 -7146 -7149 -7150 -7151 -7154 -7212 -7220 -7222 -7224 -7376 -7379 -7380 -7393 -7394 -7401 -7405 -7406 -7412 -7413 -7416 -7418 -7616 -7670 -7676 -7680 -8400 -8433 -11503 -11506 -11647 -11648 -11744 -11776 -12330 -12334 -12441 -12443 -42607 -42611 -42612 -42622 -42654 -42656 -42736 -42738 -43010 -43011 -43014 -43015 -43019 -43020 -43045 -43047 -43204 -43205 -43232 -43250 -43302 -43310 -43335 -43346 -43392 -43395 -43443 -43444 -43446 -43450 -43452 -43453 -43493 -43494 -43561 -43567 -43569 -43571 -43573 -43575 -43587 -43588 -43596 -43597 -43644 -43645 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43756 -43758 -43766 -43767 -44005 -44006 -44008 -44009 -44013 -44014 -64286 -64287 -65024 -65040 -65056 -65072 -66045 -66046 -66272 -66273 -66422 -66427 -68097 -68100 -68101 -68103 -68108 -68112 -68152 -68155 -68159 -68160 -68325 -68327 -69633 -69634 -69688 -69703 -69759 -69762 -69811 -69815 -69817 -69819 -69888 -69891 -69927 -69932 -69933 -69941 -70003 -70004 -70016 -70018 -70070 -70079 -70090 -70093 -70191 -70194 -70196 -70197 -70198 -70200 -70367 -70368 -70371 -70379 -70400 -70402 -70460 -70461 -70464 -70465 -70502 -70509 -70512 -70517 -70835 -70841 -70842 -70843 -70847 -70849 -70850 -70852 -71090 -71094 -71100 -71102 -71103 -71105 -71132 -71134 -71219 -71227 -71229 -71230 -71231 -71233 -71339 -71340 -71341 -71342 -71344 -71350 -71351 -71352 -71453 -71456 -71458 -71462 -71463 -71468 -92912 -92917 -92976 -92983 -94095 -94099 -113821 -113823 -119143 -119146 -119163 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -125136 -125143 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/ON.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/ON.pl deleted file mode 100644 index 273bdab1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/ON.pl +++ /dev/null @@ -1,362 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V348 -33 -35 -38 -43 -59 -65 -91 -97 -123 -127 -161 -162 -166 -170 -171 -173 -174 -176 -180 -181 -182 -185 -187 -192 -215 -216 -247 -248 -697 -699 -706 -720 -722 -736 -741 -750 -751 -768 -884 -886 -894 -895 -900 -902 -903 -904 -1014 -1015 -1418 -1419 -1421 -1423 -1542 -1544 -1550 -1552 -1758 -1759 -1769 -1770 -2038 -2042 -3059 -3065 -3066 -3067 -3192 -3199 -3898 -3902 -5008 -5018 -5120 -5121 -5787 -5789 -6128 -6138 -6144 -6155 -6464 -6465 -6468 -6470 -6622 -6656 -8125 -8126 -8127 -8130 -8141 -8144 -8157 -8160 -8173 -8176 -8189 -8191 -8208 -8232 -8245 -8260 -8261 -8287 -8316 -8319 -8332 -8335 -8448 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8506 -8508 -8512 -8517 -8522 -8526 -8528 -8544 -8585 -8588 -8592 -8722 -8724 -9014 -9083 -9109 -9110 -9211 -9216 -9255 -9280 -9291 -9312 -9352 -9450 -9900 -9901 -10240 -10496 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11493 -11499 -11513 -11520 -11776 -11843 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12289 -12293 -12296 -12321 -12336 -12337 -12342 -12344 -12349 -12352 -12443 -12445 -12448 -12449 -12539 -12540 -12736 -12772 -12829 -12831 -12880 -12896 -12924 -12927 -12977 -12992 -13004 -13008 -13175 -13179 -13278 -13280 -13311 -13312 -19904 -19968 -42128 -42183 -42509 -42512 -42611 -42612 -42622 -42624 -42752 -42786 -42888 -42889 -43048 -43052 -43124 -43128 -64830 -64832 -65021 -65022 -65040 -65050 -65072 -65104 -65105 -65106 -65108 -65109 -65110 -65119 -65120 -65122 -65124 -65127 -65128 -65129 -65131 -65132 -65281 -65283 -65286 -65291 -65307 -65313 -65339 -65345 -65371 -65382 -65506 -65509 -65512 -65519 -65529 -65534 -65793 -65794 -65856 -65933 -65936 -65948 -65952 -65953 -67871 -67872 -68409 -68416 -69714 -69734 -119296 -119362 -119365 -119366 -119552 -119639 -120539 -120540 -120597 -120598 -120655 -120656 -120713 -120714 -120771 -120772 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127243 -127245 -127338 -127340 -127744 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/R.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/R.pl deleted file mode 100644 index bcdfa158..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/R.pl +++ /dev/null @@ -1,76 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V62 -1424 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1536 -1984 -2027 -2036 -2038 -2042 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2094 -2137 -2140 -2208 -8207 -8208 -64285 -64286 -64287 -64297 -64298 -64336 -67584 -67871 -67872 -68097 -68100 -68101 -68103 -68108 -68112 -68152 -68155 -68159 -68160 -68325 -68327 -68409 -68416 -69216 -69247 -69632 -124928 -125136 -125143 -126464 -126720 -126976 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/WS.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/WS.pl deleted file mode 100644 index 5aee3d88..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bc/WS.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -12 -13 -32 -33 -5760 -5761 -8192 -8203 -8232 -8233 -8287 -8288 -12288 -12289 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/BidiC/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/BidiC/Y.pl deleted file mode 100644 index 8dad4290..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/BidiC/Y.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -1564 -1565 -8206 -8208 -8234 -8239 -8294 -8298 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/BidiM/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/BidiM/Y.pl deleted file mode 100644 index 7c687e89..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/BidiM/Y.pl +++ /dev/null @@ -1,236 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V222 -40 -42 -60 -61 -62 -63 -91 -92 -93 -94 -123 -124 -125 -126 -171 -172 -187 -188 -3898 -3902 -5787 -5789 -8249 -8251 -8261 -8263 -8317 -8319 -8333 -8335 -8512 -8513 -8705 -8709 -8712 -8718 -8721 -8722 -8725 -8727 -8730 -8734 -8735 -8739 -8740 -8741 -8742 -8743 -8747 -8756 -8761 -8762 -8763 -8781 -8786 -8790 -8799 -8801 -8802 -8803 -8804 -8812 -8814 -8845 -8847 -8851 -8856 -8857 -8866 -8868 -8870 -8889 -8894 -8896 -8905 -8910 -8912 -8914 -8918 -8942 -8944 -8960 -8968 -8972 -8992 -8994 -9001 -9003 -10088 -10102 -10176 -10177 -10179 -10183 -10184 -10186 -10187 -10190 -10195 -10199 -10204 -10207 -10210 -10224 -10627 -10649 -10651 -10672 -10680 -10681 -10688 -10694 -10697 -10698 -10702 -10707 -10708 -10710 -10712 -10717 -10721 -10722 -10723 -10726 -10728 -10730 -10740 -10746 -10748 -10750 -10762 -10781 -10782 -10786 -10788 -10789 -10790 -10791 -10793 -10794 -10795 -10799 -10804 -10806 -10812 -10815 -10839 -10841 -10852 -10854 -10858 -10862 -10863 -10865 -10867 -10869 -10873 -10916 -10918 -10926 -10927 -10967 -10972 -10973 -10974 -10975 -10978 -10983 -10988 -10991 -10995 -10996 -10999 -11004 -11005 -11006 -11778 -11782 -11785 -11787 -11788 -11790 -11804 -11806 -11808 -11818 -12296 -12306 -12308 -12316 -65113 -65119 -65124 -65126 -65288 -65290 -65308 -65309 -65310 -65311 -65339 -65340 -65341 -65342 -65371 -65372 -65373 -65374 -65375 -65377 -65378 -65380 -120539 -120540 -120597 -120598 -120655 -120656 -120713 -120714 -120771 -120772 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Blk/NB.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Blk/NB.pl deleted file mode 100644 index 49e4343c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Blk/NB.pl +++ /dev/null @@ -1,99 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V85 -2144 -2208 -7296 -7360 -12256 -12272 -66048 -66176 -66528 -66560 -66736 -66816 -66928 -67072 -67456 -67584 -67760 -67808 -67904 -67968 -68256 -68288 -68528 -68608 -68688 -68736 -68864 -69216 -69248 -69632 -70224 -70272 -70528 -70784 -70880 -71040 -71264 -71296 -71376 -71424 -71488 -71840 -71936 -72384 -72448 -73728 -75088 -77824 -78896 -82944 -83584 -92160 -92784 -92880 -93072 -93952 -94112 -110592 -110848 -113664 -113840 -118784 -119376 -119552 -119680 -119808 -121520 -124928 -125152 -126464 -126720 -126976 -129536 -131072 -173792 -173824 -183984 -194560 -195104 -917504 -917632 -917760 -918000 -983040 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bpt/C.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bpt/C.pl deleted file mode 100644 index 46d2bf38..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bpt/C.pl +++ /dev/null @@ -1,134 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V120 -41 -42 -93 -94 -125 -126 -3899 -3900 -3901 -3902 -5788 -5789 -8262 -8263 -8318 -8319 -8334 -8335 -8969 -8970 -8971 -8972 -9002 -9003 -10089 -10090 -10091 -10092 -10093 -10094 -10095 -10096 -10097 -10098 -10099 -10100 -10101 -10102 -10182 -10183 -10215 -10216 -10217 -10218 -10219 -10220 -10221 -10222 -10223 -10224 -10628 -10629 -10630 -10631 -10632 -10633 -10634 -10635 -10636 -10637 -10638 -10639 -10640 -10641 -10642 -10643 -10644 -10645 -10646 -10647 -10648 -10649 -10713 -10714 -10715 -10716 -10749 -10750 -11811 -11812 -11813 -11814 -11815 -11816 -11817 -11818 -12297 -12298 -12299 -12300 -12301 -12302 -12303 -12304 -12305 -12306 -12309 -12310 -12311 -12312 -12313 -12314 -12315 -12316 -65114 -65115 -65116 -65117 -65118 -65119 -65289 -65290 -65341 -65342 -65373 -65374 -65376 -65377 -65379 -65380 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bpt/N.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bpt/N.pl deleted file mode 100644 index 7cb249cb..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bpt/N.pl +++ /dev/null @@ -1,73 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V59 -0 -40 -42 -91 -92 -93 -94 -123 -124 -125 -126 -3898 -3902 -5787 -5789 -8261 -8263 -8317 -8319 -8333 -8335 -8968 -8972 -9001 -9003 -10088 -10102 -10181 -10183 -10214 -10224 -10627 -10649 -10712 -10716 -10748 -10750 -11810 -11818 -12296 -12306 -12308 -12316 -65113 -65119 -65288 -65290 -65339 -65340 -65341 -65342 -65371 -65372 -65373 -65374 -65375 -65377 -65378 -65380 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bpt/O.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bpt/O.pl deleted file mode 100644 index 62a1e548..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Bpt/O.pl +++ /dev/null @@ -1,134 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V120 -40 -41 -91 -92 -123 -124 -3898 -3899 -3900 -3901 -5787 -5788 -8261 -8262 -8317 -8318 -8333 -8334 -8968 -8969 -8970 -8971 -9001 -9002 -10088 -10089 -10090 -10091 -10092 -10093 -10094 -10095 -10096 -10097 -10098 -10099 -10100 -10101 -10181 -10182 -10214 -10215 -10216 -10217 -10218 -10219 -10220 -10221 -10222 -10223 -10627 -10628 -10629 -10630 -10631 -10632 -10633 -10634 -10635 -10636 -10637 -10638 -10639 -10640 -10641 -10642 -10643 -10644 -10645 -10646 -10647 -10648 -10712 -10713 -10714 -10715 -10748 -10749 -11810 -11811 -11812 -11813 -11814 -11815 -11816 -11817 -12296 -12297 -12298 -12299 -12300 -12301 -12302 -12303 -12304 -12305 -12308 -12309 -12310 -12311 -12312 -12313 -12314 -12315 -65113 -65114 -65115 -65116 -65117 -65118 -65288 -65289 -65339 -65340 -65371 -65372 -65375 -65376 -65378 -65379 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CE/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CE/Y.pl deleted file mode 100644 index 5a2362d4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CE/Y.pl +++ /dev/null @@ -1,80 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V66 -2392 -2400 -2524 -2526 -2527 -2528 -2611 -2612 -2614 -2615 -2649 -2652 -2654 -2655 -2908 -2910 -3907 -3908 -3917 -3918 -3922 -3923 -3927 -3928 -3932 -3933 -3945 -3946 -3958 -3959 -3960 -3961 -3987 -3988 -3997 -3998 -4002 -4003 -4007 -4008 -4012 -4013 -4025 -4026 -10972 -10973 -64285 -64286 -64287 -64288 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64335 -119134 -119141 -119227 -119233 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CI/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CI/Y.pl deleted file mode 100644 index 940005bb..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CI/Y.pl +++ /dev/null @@ -1,706 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V692 -39 -40 -46 -47 -58 -59 -94 -95 -96 -97 -168 -169 -173 -174 -175 -176 -180 -181 -183 -185 -688 -880 -884 -886 -890 -891 -900 -902 -903 -904 -1155 -1162 -1369 -1370 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1524 -1525 -1536 -1542 -1552 -1563 -1564 -1565 -1600 -1601 -1611 -1632 -1648 -1649 -1750 -1758 -1759 -1769 -1770 -1774 -1807 -1808 -1809 -1810 -1840 -1867 -1958 -1969 -2027 -2038 -2042 -2043 -2070 -2094 -2137 -2140 -2275 -2307 -2362 -2363 -2364 -2365 -2369 -2377 -2381 -2382 -2385 -2392 -2402 -2404 -2417 -2418 -2433 -2434 -2492 -2493 -2497 -2501 -2509 -2510 -2530 -2532 -2561 -2563 -2620 -2621 -2625 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2672 -2674 -2677 -2678 -2689 -2691 -2748 -2749 -2753 -2758 -2759 -2761 -2765 -2766 -2786 -2788 -2817 -2818 -2876 -2877 -2879 -2880 -2881 -2885 -2893 -2894 -2902 -2903 -2914 -2916 -2946 -2947 -3008 -3009 -3021 -3022 -3072 -3073 -3134 -3137 -3142 -3145 -3146 -3150 -3157 -3159 -3170 -3172 -3201 -3202 -3260 -3261 -3263 -3264 -3270 -3271 -3276 -3278 -3298 -3300 -3329 -3330 -3393 -3397 -3405 -3406 -3426 -3428 -3530 -3531 -3538 -3541 -3542 -3543 -3633 -3634 -3636 -3643 -3654 -3663 -3761 -3762 -3764 -3770 -3771 -3773 -3782 -3783 -3784 -3790 -3864 -3866 -3893 -3894 -3895 -3896 -3897 -3898 -3953 -3967 -3968 -3973 -3974 -3976 -3981 -3992 -3993 -4029 -4038 -4039 -4141 -4145 -4146 -4152 -4153 -4155 -4157 -4159 -4184 -4186 -4190 -4193 -4209 -4213 -4226 -4227 -4229 -4231 -4237 -4238 -4253 -4254 -4348 -4349 -4957 -4960 -5906 -5909 -5938 -5941 -5970 -5972 -6002 -6004 -6068 -6070 -6071 -6078 -6086 -6087 -6089 -6100 -6103 -6104 -6109 -6110 -6155 -6159 -6211 -6212 -6313 -6314 -6432 -6435 -6439 -6441 -6450 -6451 -6457 -6460 -6679 -6681 -6683 -6684 -6742 -6743 -6744 -6751 -6752 -6753 -6754 -6755 -6757 -6765 -6771 -6781 -6783 -6784 -6823 -6824 -6832 -6847 -6912 -6916 -6964 -6965 -6966 -6971 -6972 -6973 -6978 -6979 -7019 -7028 -7040 -7042 -7074 -7078 -7080 -7082 -7083 -7086 -7142 -7143 -7144 -7146 -7149 -7150 -7151 -7154 -7212 -7220 -7222 -7224 -7288 -7294 -7376 -7379 -7380 -7393 -7394 -7401 -7405 -7406 -7412 -7413 -7416 -7418 -7468 -7531 -7544 -7545 -7579 -7670 -7676 -7680 -8125 -8126 -8127 -8130 -8141 -8144 -8157 -8160 -8173 -8176 -8189 -8191 -8203 -8208 -8216 -8218 -8228 -8229 -8231 -8232 -8234 -8239 -8288 -8293 -8294 -8304 -8305 -8306 -8319 -8320 -8336 -8349 -8400 -8433 -11388 -11390 -11503 -11506 -11631 -11632 -11647 -11648 -11744 -11776 -11823 -11824 -12293 -12294 -12330 -12334 -12337 -12342 -12347 -12348 -12441 -12447 -12540 -12543 -40981 -40982 -42232 -42238 -42508 -42509 -42607 -42611 -42612 -42622 -42623 -42624 -42652 -42656 -42736 -42738 -42752 -42786 -42864 -42865 -42888 -42891 -43000 -43002 -43010 -43011 -43014 -43015 -43019 -43020 -43045 -43047 -43204 -43205 -43232 -43250 -43302 -43310 -43335 -43346 -43392 -43395 -43443 -43444 -43446 -43450 -43452 -43453 -43471 -43472 -43493 -43495 -43561 -43567 -43569 -43571 -43573 -43575 -43587 -43588 -43596 -43597 -43632 -43633 -43644 -43645 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43741 -43742 -43756 -43758 -43763 -43765 -43766 -43767 -43867 -43872 -44005 -44006 -44008 -44009 -44013 -44014 -64286 -64287 -64434 -64450 -65024 -65040 -65043 -65044 -65056 -65072 -65106 -65107 -65109 -65110 -65279 -65280 -65287 -65288 -65294 -65295 -65306 -65307 -65342 -65343 -65344 -65345 -65392 -65393 -65438 -65440 -65507 -65508 -65529 -65532 -66045 -66046 -66272 -66273 -66422 -66427 -68097 -68100 -68101 -68103 -68108 -68112 -68152 -68155 -68159 -68160 -68325 -68327 -69633 -69634 -69688 -69703 -69759 -69762 -69811 -69815 -69817 -69819 -69821 -69822 -69888 -69891 -69927 -69932 -69933 -69941 -70003 -70004 -70016 -70018 -70070 -70079 -70090 -70093 -70191 -70194 -70196 -70197 -70198 -70200 -70367 -70368 -70371 -70379 -70400 -70402 -70460 -70461 -70464 -70465 -70502 -70509 -70512 -70517 -70835 -70841 -70842 -70843 -70847 -70849 -70850 -70852 -71090 -71094 -71100 -71102 -71103 -71105 -71132 -71134 -71219 -71227 -71229 -71230 -71231 -71233 -71339 -71340 -71341 -71342 -71344 -71350 -71351 -71352 -71453 -71456 -71458 -71462 -71463 -71468 -92912 -92917 -92976 -92983 -92992 -92996 -94095 -94112 -113821 -113823 -113824 -113828 -119143 -119146 -119155 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -125136 -125143 -127995 -128000 -917505 -917506 -917536 -917632 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWCF/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWCF/Y.pl deleted file mode 100644 index 1741e82e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWCF/Y.pl +++ /dev/null @@ -1,1214 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1200 -65 -91 -181 -182 -192 -215 -216 -224 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -378 -379 -380 -381 -382 -383 -384 -385 -387 -388 -389 -390 -392 -393 -396 -398 -402 -403 -405 -406 -409 -412 -414 -415 -417 -418 -419 -420 -421 -422 -424 -425 -426 -428 -429 -430 -432 -433 -436 -437 -438 -439 -441 -444 -445 -452 -454 -455 -457 -458 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -497 -499 -500 -501 -502 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -570 -572 -573 -575 -577 -578 -579 -583 -584 -585 -586 -587 -588 -589 -590 -591 -837 -838 -880 -881 -882 -883 -886 -887 -895 -896 -902 -903 -904 -907 -908 -909 -910 -912 -913 -930 -931 -940 -962 -963 -975 -978 -981 -983 -984 -985 -986 -987 -988 -989 -990 -991 -992 -993 -994 -995 -996 -997 -998 -999 -1000 -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1008 -1010 -1012 -1014 -1015 -1016 -1017 -1019 -1021 -1072 -1120 -1121 -1122 -1123 -1124 -1125 -1126 -1127 -1128 -1129 -1130 -1131 -1132 -1133 -1134 -1135 -1136 -1137 -1138 -1139 -1140 -1141 -1142 -1143 -1144 -1145 -1146 -1147 -1148 -1149 -1150 -1151 -1152 -1153 -1162 -1163 -1164 -1165 -1166 -1167 -1168 -1169 -1170 -1171 -1172 -1173 -1174 -1175 -1176 -1177 -1178 -1179 -1180 -1181 -1182 -1183 -1184 -1185 -1186 -1187 -1188 -1189 -1190 -1191 -1192 -1193 -1194 -1195 -1196 -1197 -1198 -1199 -1200 -1201 -1202 -1203 -1204 -1205 -1206 -1207 -1208 -1209 -1210 -1211 -1212 -1213 -1214 -1215 -1216 -1218 -1219 -1220 -1221 -1222 -1223 -1224 -1225 -1226 -1227 -1228 -1229 -1230 -1232 -1233 -1234 -1235 -1236 -1237 -1238 -1239 -1240 -1241 -1242 -1243 -1244 -1245 -1246 -1247 -1248 -1249 -1250 -1251 -1252 -1253 -1254 -1255 -1256 -1257 -1258 -1259 -1260 -1261 -1262 -1263 -1264 -1265 -1266 -1267 -1268 -1269 -1270 -1271 -1272 -1273 -1274 -1275 -1276 -1277 -1278 -1279 -1280 -1281 -1282 -1283 -1284 -1285 -1286 -1287 -1288 -1289 -1290 -1291 -1292 -1293 -1294 -1295 -1296 -1297 -1298 -1299 -1300 -1301 -1302 -1303 -1304 -1305 -1306 -1307 -1308 -1309 -1310 -1311 -1312 -1313 -1314 -1315 -1316 -1317 -1318 -1319 -1320 -1321 -1322 -1323 -1324 -1325 -1326 -1327 -1329 -1367 -1415 -1416 -4256 -4294 -4295 -4296 -4301 -4302 -5112 -5118 -7680 -7681 -7682 -7683 -7684 -7685 -7686 -7687 -7688 -7689 -7690 -7691 -7692 -7693 -7694 -7695 -7696 -7697 -7698 -7699 -7700 -7701 -7702 -7703 -7704 -7705 -7706 -7707 -7708 -7709 -7710 -7711 -7712 -7713 -7714 -7715 -7716 -7717 -7718 -7719 -7720 -7721 -7722 -7723 -7724 -7725 -7726 -7727 -7728 -7729 -7730 -7731 -7732 -7733 -7734 -7735 -7736 -7737 -7738 -7739 -7740 -7741 -7742 -7743 -7744 -7745 -7746 -7747 -7748 -7749 -7750 -7751 -7752 -7753 -7754 -7755 -7756 -7757 -7758 -7759 -7760 -7761 -7762 -7763 -7764 -7765 -7766 -7767 -7768 -7769 -7770 -7771 -7772 -7773 -7774 -7775 -7776 -7777 -7778 -7779 -7780 -7781 -7782 -7783 -7784 -7785 -7786 -7787 -7788 -7789 -7790 -7791 -7792 -7793 -7794 -7795 -7796 -7797 -7798 -7799 -7800 -7801 -7802 -7803 -7804 -7805 -7806 -7807 -7808 -7809 -7810 -7811 -7812 -7813 -7814 -7815 -7816 -7817 -7818 -7819 -7820 -7821 -7822 -7823 -7824 -7825 -7826 -7827 -7828 -7829 -7834 -7836 -7838 -7839 -7840 -7841 -7842 -7843 -7844 -7845 -7846 -7847 -7848 -7849 -7850 -7851 -7852 -7853 -7854 -7855 -7856 -7857 -7858 -7859 -7860 -7861 -7862 -7863 -7864 -7865 -7866 -7867 -7868 -7869 -7870 -7871 -7872 -7873 -7874 -7875 -7876 -7877 -7878 -7879 -7880 -7881 -7882 -7883 -7884 -7885 -7886 -7887 -7888 -7889 -7890 -7891 -7892 -7893 -7894 -7895 -7896 -7897 -7898 -7899 -7900 -7901 -7902 -7903 -7904 -7905 -7906 -7907 -7908 -7909 -7910 -7911 -7912 -7913 -7914 -7915 -7916 -7917 -7918 -7919 -7920 -7921 -7922 -7923 -7924 -7925 -7926 -7927 -7928 -7929 -7930 -7931 -7932 -7933 -7934 -7935 -7944 -7952 -7960 -7966 -7976 -7984 -7992 -8000 -8008 -8014 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8032 -8040 -8048 -8064 -8112 -8114 -8117 -8119 -8125 -8130 -8133 -8135 -8141 -8152 -8156 -8168 -8173 -8178 -8181 -8183 -8189 -8486 -8487 -8490 -8492 -8498 -8499 -8544 -8560 -8579 -8580 -9398 -9424 -11264 -11311 -11360 -11361 -11362 -11365 -11367 -11368 -11369 -11370 -11371 -11372 -11373 -11377 -11378 -11379 -11381 -11382 -11390 -11393 -11394 -11395 -11396 -11397 -11398 -11399 -11400 -11401 -11402 -11403 -11404 -11405 -11406 -11407 -11408 -11409 -11410 -11411 -11412 -11413 -11414 -11415 -11416 -11417 -11418 -11419 -11420 -11421 -11422 -11423 -11424 -11425 -11426 -11427 -11428 -11429 -11430 -11431 -11432 -11433 -11434 -11435 -11436 -11437 -11438 -11439 -11440 -11441 -11442 -11443 -11444 -11445 -11446 -11447 -11448 -11449 -11450 -11451 -11452 -11453 -11454 -11455 -11456 -11457 -11458 -11459 -11460 -11461 -11462 -11463 -11464 -11465 -11466 -11467 -11468 -11469 -11470 -11471 -11472 -11473 -11474 -11475 -11476 -11477 -11478 -11479 -11480 -11481 -11482 -11483 -11484 -11485 -11486 -11487 -11488 -11489 -11490 -11491 -11499 -11500 -11501 -11502 -11506 -11507 -42560 -42561 -42562 -42563 -42564 -42565 -42566 -42567 -42568 -42569 -42570 -42571 -42572 -42573 -42574 -42575 -42576 -42577 -42578 -42579 -42580 -42581 -42582 -42583 -42584 -42585 -42586 -42587 -42588 -42589 -42590 -42591 -42592 -42593 -42594 -42595 -42596 -42597 -42598 -42599 -42600 -42601 -42602 -42603 -42604 -42605 -42624 -42625 -42626 -42627 -42628 -42629 -42630 -42631 -42632 -42633 -42634 -42635 -42636 -42637 -42638 -42639 -42640 -42641 -42642 -42643 -42644 -42645 -42646 -42647 -42648 -42649 -42650 -42651 -42786 -42787 -42788 -42789 -42790 -42791 -42792 -42793 -42794 -42795 -42796 -42797 -42798 -42799 -42802 -42803 -42804 -42805 -42806 -42807 -42808 -42809 -42810 -42811 -42812 -42813 -42814 -42815 -42816 -42817 -42818 -42819 -42820 -42821 -42822 -42823 -42824 -42825 -42826 -42827 -42828 -42829 -42830 -42831 -42832 -42833 -42834 -42835 -42836 -42837 -42838 -42839 -42840 -42841 -42842 -42843 -42844 -42845 -42846 -42847 -42848 -42849 -42850 -42851 -42852 -42853 -42854 -42855 -42856 -42857 -42858 -42859 -42860 -42861 -42862 -42863 -42873 -42874 -42875 -42876 -42877 -42879 -42880 -42881 -42882 -42883 -42884 -42885 -42886 -42887 -42891 -42892 -42893 -42894 -42896 -42897 -42898 -42899 -42902 -42903 -42904 -42905 -42906 -42907 -42908 -42909 -42910 -42911 -42912 -42913 -42914 -42915 -42916 -42917 -42918 -42919 -42920 -42921 -42922 -42926 -42928 -42933 -42934 -42935 -43888 -43968 -64256 -64263 -64275 -64280 -65313 -65339 -66560 -66600 -68736 -68787 -71840 -71872 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWCM/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWCM/Y.pl deleted file mode 100644 index 228e801c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWCM/Y.pl +++ /dev/null @@ -1,240 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V226 -65 -91 -97 -123 -181 -182 -192 -215 -216 -247 -248 -312 -313 -397 -398 -411 -412 -426 -428 -442 -444 -446 -447 -448 -452 -545 -546 -564 -570 -597 -598 -600 -601 -602 -603 -605 -608 -610 -611 -612 -613 -615 -616 -618 -619 -621 -623 -624 -625 -627 -629 -630 -637 -638 -640 -641 -643 -644 -647 -653 -658 -659 -669 -671 -837 -838 -880 -884 -886 -888 -891 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -978 -981 -1014 -1015 -1020 -1021 -1154 -1162 -1328 -1329 -1367 -1377 -1416 -4256 -4294 -4295 -4296 -4301 -4302 -5024 -5110 -5112 -5118 -7545 -7546 -7549 -7550 -7680 -7836 -7838 -7839 -7840 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8486 -8487 -8490 -8492 -8498 -8499 -8526 -8527 -8544 -8576 -8579 -8581 -9398 -9450 -11264 -11311 -11312 -11359 -11360 -11377 -11378 -11380 -11381 -11383 -11390 -11492 -11499 -11503 -11506 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -42560 -42606 -42624 -42652 -42786 -42800 -42802 -42864 -42873 -42888 -42891 -42894 -42896 -42900 -42902 -42926 -42928 -42936 -43859 -43860 -43888 -43968 -64256 -64263 -64275 -64280 -65313 -65339 -65345 -65371 -66560 -66640 -68736 -68787 -68800 -68851 -71840 -71904 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWKCF/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWKCF/Y.pl deleted file mode 100644 index 893e93b8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWKCF/Y.pl +++ /dev/null @@ -1,1638 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1624 -65 -91 -160 -161 -168 -169 -170 -171 -173 -174 -175 -176 -178 -182 -184 -187 -188 -191 -192 -215 -216 -224 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -309 -310 -311 -313 -314 -315 -316 -317 -318 -319 -322 -323 -324 -325 -326 -327 -328 -329 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -378 -379 -380 -381 -382 -383 -384 -385 -387 -388 -389 -390 -392 -393 -396 -398 -402 -403 -405 -406 -409 -412 -414 -415 -417 -418 -419 -420 -421 -422 -424 -425 -426 -428 -429 -430 -432 -433 -436 -437 -438 -439 -441 -444 -445 -452 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -497 -501 -502 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -570 -572 -573 -575 -577 -578 -579 -583 -584 -585 -586 -587 -588 -589 -590 -591 -688 -697 -728 -734 -736 -741 -832 -834 -835 -838 -847 -848 -880 -881 -882 -883 -884 -885 -886 -887 -890 -891 -894 -896 -900 -907 -908 -909 -910 -912 -913 -930 -931 -940 -962 -963 -975 -983 -984 -985 -986 -987 -988 -989 -990 -991 -992 -993 -994 -995 -996 -997 -998 -999 -1000 -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1008 -1011 -1012 -1014 -1015 -1016 -1017 -1019 -1021 -1072 -1120 -1121 -1122 -1123 -1124 -1125 -1126 -1127 -1128 -1129 -1130 -1131 -1132 -1133 -1134 -1135 -1136 -1137 -1138 -1139 -1140 -1141 -1142 -1143 -1144 -1145 -1146 -1147 -1148 -1149 -1150 -1151 -1152 -1153 -1162 -1163 -1164 -1165 -1166 -1167 -1168 -1169 -1170 -1171 -1172 -1173 -1174 -1175 -1176 -1177 -1178 -1179 -1180 -1181 -1182 -1183 -1184 -1185 -1186 -1187 -1188 -1189 -1190 -1191 -1192 -1193 -1194 -1195 -1196 -1197 -1198 -1199 -1200 -1201 -1202 -1203 -1204 -1205 -1206 -1207 -1208 -1209 -1210 -1211 -1212 -1213 -1214 -1215 -1216 -1218 -1219 -1220 -1221 -1222 -1223 -1224 -1225 -1226 -1227 -1228 -1229 -1230 -1232 -1233 -1234 -1235 -1236 -1237 -1238 -1239 -1240 -1241 -1242 -1243 -1244 -1245 -1246 -1247 -1248 -1249 -1250 -1251 -1252 -1253 -1254 -1255 -1256 -1257 -1258 -1259 -1260 -1261 -1262 -1263 -1264 -1265 -1266 -1267 -1268 -1269 -1270 -1271 -1272 -1273 -1274 -1275 -1276 -1277 -1278 -1279 -1280 -1281 -1282 -1283 -1284 -1285 -1286 -1287 -1288 -1289 -1290 -1291 -1292 -1293 -1294 -1295 -1296 -1297 -1298 -1299 -1300 -1301 -1302 -1303 -1304 -1305 -1306 -1307 -1308 -1309 -1310 -1311 -1312 -1313 -1314 -1315 -1316 -1317 -1318 -1319 -1320 -1321 -1322 -1323 -1324 -1325 -1326 -1327 -1329 -1367 -1415 -1416 -1564 -1565 -1653 -1657 -2392 -2400 -2524 -2526 -2527 -2528 -2611 -2612 -2614 -2615 -2649 -2652 -2654 -2655 -2908 -2910 -3635 -3636 -3763 -3764 -3804 -3806 -3852 -3853 -3907 -3908 -3917 -3918 -3922 -3923 -3927 -3928 -3932 -3933 -3945 -3946 -3955 -3956 -3957 -3962 -3969 -3970 -3987 -3988 -3997 -3998 -4002 -4003 -4007 -4008 -4012 -4013 -4025 -4026 -4256 -4294 -4295 -4296 -4301 -4302 -4348 -4349 -4447 -4449 -5112 -5118 -6068 -6070 -6155 -6159 -7468 -7471 -7472 -7483 -7484 -7502 -7503 -7531 -7544 -7545 -7579 -7616 -7680 -7681 -7682 -7683 -7684 -7685 -7686 -7687 -7688 -7689 -7690 -7691 -7692 -7693 -7694 -7695 -7696 -7697 -7698 -7699 -7700 -7701 -7702 -7703 -7704 -7705 -7706 -7707 -7708 -7709 -7710 -7711 -7712 -7713 -7714 -7715 -7716 -7717 -7718 -7719 -7720 -7721 -7722 -7723 -7724 -7725 -7726 -7727 -7728 -7729 -7730 -7731 -7732 -7733 -7734 -7735 -7736 -7737 -7738 -7739 -7740 -7741 -7742 -7743 -7744 -7745 -7746 -7747 -7748 -7749 -7750 -7751 -7752 -7753 -7754 -7755 -7756 -7757 -7758 -7759 -7760 -7761 -7762 -7763 -7764 -7765 -7766 -7767 -7768 -7769 -7770 -7771 -7772 -7773 -7774 -7775 -7776 -7777 -7778 -7779 -7780 -7781 -7782 -7783 -7784 -7785 -7786 -7787 -7788 -7789 -7790 -7791 -7792 -7793 -7794 -7795 -7796 -7797 -7798 -7799 -7800 -7801 -7802 -7803 -7804 -7805 -7806 -7807 -7808 -7809 -7810 -7811 -7812 -7813 -7814 -7815 -7816 -7817 -7818 -7819 -7820 -7821 -7822 -7823 -7824 -7825 -7826 -7827 -7828 -7829 -7834 -7836 -7838 -7839 -7840 -7841 -7842 -7843 -7844 -7845 -7846 -7847 -7848 -7849 -7850 -7851 -7852 -7853 -7854 -7855 -7856 -7857 -7858 -7859 -7860 -7861 -7862 -7863 -7864 -7865 -7866 -7867 -7868 -7869 -7870 -7871 -7872 -7873 -7874 -7875 -7876 -7877 -7878 -7879 -7880 -7881 -7882 -7883 -7884 -7885 -7886 -7887 -7888 -7889 -7890 -7891 -7892 -7893 -7894 -7895 -7896 -7897 -7898 -7899 -7900 -7901 -7902 -7903 -7904 -7905 -7906 -7907 -7908 -7909 -7910 -7911 -7912 -7913 -7914 -7915 -7916 -7917 -7918 -7919 -7920 -7921 -7922 -7923 -7924 -7925 -7926 -7927 -7928 -7929 -7930 -7931 -7932 -7933 -7934 -7935 -7944 -7952 -7960 -7966 -7976 -7984 -7992 -8000 -8008 -8014 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8032 -8040 -8048 -8049 -8050 -8051 -8052 -8053 -8054 -8055 -8056 -8057 -8058 -8059 -8060 -8061 -8062 -8064 -8112 -8114 -8117 -8119 -8133 -8135 -8144 -8147 -8148 -8152 -8156 -8157 -8160 -8163 -8164 -8168 -8176 -8178 -8181 -8183 -8191 -8192 -8208 -8209 -8210 -8215 -8216 -8228 -8231 -8234 -8240 -8243 -8245 -8246 -8248 -8252 -8253 -8254 -8255 -8263 -8266 -8279 -8280 -8287 -8306 -8308 -8335 -8336 -8349 -8360 -8361 -8448 -8452 -8453 -8456 -8457 -8468 -8469 -8471 -8473 -8478 -8480 -8483 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8506 -8507 -8513 -8517 -8522 -8528 -8576 -8579 -8580 -8585 -8586 -8748 -8750 -8751 -8753 -9001 -9003 -9312 -9451 -10764 -10765 -10868 -10871 -10972 -10973 -11264 -11311 -11360 -11361 -11362 -11365 -11367 -11368 -11369 -11370 -11371 -11372 -11373 -11377 -11378 -11379 -11381 -11382 -11388 -11393 -11394 -11395 -11396 -11397 -11398 -11399 -11400 -11401 -11402 -11403 -11404 -11405 -11406 -11407 -11408 -11409 -11410 -11411 -11412 -11413 -11414 -11415 -11416 -11417 -11418 -11419 -11420 -11421 -11422 -11423 -11424 -11425 -11426 -11427 -11428 -11429 -11430 -11431 -11432 -11433 -11434 -11435 -11436 -11437 -11438 -11439 -11440 -11441 -11442 -11443 -11444 -11445 -11446 -11447 -11448 -11449 -11450 -11451 -11452 -11453 -11454 -11455 -11456 -11457 -11458 -11459 -11460 -11461 -11462 -11463 -11464 -11465 -11466 -11467 -11468 -11469 -11470 -11471 -11472 -11473 -11474 -11475 -11476 -11477 -11478 -11479 -11480 -11481 -11482 -11483 -11484 -11485 -11486 -11487 -11488 -11489 -11490 -11491 -11499 -11500 -11501 -11502 -11506 -11507 -11631 -11632 -11935 -11936 -12019 -12020 -12032 -12246 -12288 -12289 -12342 -12343 -12344 -12347 -12443 -12445 -12447 -12448 -12543 -12544 -12593 -12687 -12690 -12704 -12800 -12831 -12832 -12872 -12880 -12927 -12928 -13055 -13056 -13312 -42560 -42561 -42562 -42563 -42564 -42565 -42566 -42567 -42568 -42569 -42570 -42571 -42572 -42573 -42574 -42575 -42576 -42577 -42578 -42579 -42580 -42581 -42582 -42583 -42584 -42585 -42586 -42587 -42588 -42589 -42590 -42591 -42592 -42593 -42594 -42595 -42596 -42597 -42598 -42599 -42600 -42601 -42602 -42603 -42604 -42605 -42624 -42625 -42626 -42627 -42628 -42629 -42630 -42631 -42632 -42633 -42634 -42635 -42636 -42637 -42638 -42639 -42640 -42641 -42642 -42643 -42644 -42645 -42646 -42647 -42648 -42649 -42650 -42651 -42652 -42654 -42786 -42787 -42788 -42789 -42790 -42791 -42792 -42793 -42794 -42795 -42796 -42797 -42798 -42799 -42802 -42803 -42804 -42805 -42806 -42807 -42808 -42809 -42810 -42811 -42812 -42813 -42814 -42815 -42816 -42817 -42818 -42819 -42820 -42821 -42822 -42823 -42824 -42825 -42826 -42827 -42828 -42829 -42830 -42831 -42832 -42833 -42834 -42835 -42836 -42837 -42838 -42839 -42840 -42841 -42842 -42843 -42844 -42845 -42846 -42847 -42848 -42849 -42850 -42851 -42852 -42853 -42854 -42855 -42856 -42857 -42858 -42859 -42860 -42861 -42862 -42863 -42864 -42865 -42873 -42874 -42875 -42876 -42877 -42879 -42880 -42881 -42882 -42883 -42884 -42885 -42886 -42887 -42891 -42892 -42893 -42894 -42896 -42897 -42898 -42899 -42902 -42903 -42904 -42905 -42906 -42907 -42908 -42909 -42910 -42911 -42912 -42913 -42914 -42915 -42916 -42917 -42918 -42919 -42920 -42921 -42922 -42926 -42928 -42933 -42934 -42935 -43000 -43002 -43868 -43872 -43888 -43968 -63744 -64014 -64016 -64017 -64018 -64019 -64021 -64031 -64032 -64033 -64034 -64035 -64037 -64039 -64042 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64286 -64287 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65021 -65024 -65050 -65072 -65093 -65095 -65107 -65108 -65127 -65128 -65132 -65136 -65139 -65140 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65520 -65529 -66560 -66600 -68736 -68787 -71840 -71872 -113824 -113828 -119134 -119141 -119155 -119163 -119227 -119233 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -127232 -127243 -127248 -127279 -127280 -127312 -127338 -127340 -127376 -127377 -127488 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -194560 -195102 -917504 -921600 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWL/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWL/Y.pl deleted file mode 100644 index 206515a3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWL/Y.pl +++ /dev/null @@ -1,1190 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1176 -65 -91 -192 -215 -216 -223 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -378 -379 -380 -381 -382 -385 -387 -388 -389 -390 -392 -393 -396 -398 -402 -403 -405 -406 -409 -412 -414 -415 -417 -418 -419 -420 -421 -422 -424 -425 -426 -428 -429 -430 -432 -433 -436 -437 -438 -439 -441 -444 -445 -452 -454 -455 -457 -458 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -497 -499 -500 -501 -502 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -570 -572 -573 -575 -577 -578 -579 -583 -584 -585 -586 -587 -588 -589 -590 -591 -880 -881 -882 -883 -886 -887 -895 -896 -902 -903 -904 -907 -908 -909 -910 -912 -913 -930 -931 -940 -975 -976 -984 -985 -986 -987 -988 -989 -990 -991 -992 -993 -994 -995 -996 -997 -998 -999 -1000 -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1012 -1013 -1015 -1016 -1017 -1019 -1021 -1072 -1120 -1121 -1122 -1123 -1124 -1125 -1126 -1127 -1128 -1129 -1130 -1131 -1132 -1133 -1134 -1135 -1136 -1137 -1138 -1139 -1140 -1141 -1142 -1143 -1144 -1145 -1146 -1147 -1148 -1149 -1150 -1151 -1152 -1153 -1162 -1163 -1164 -1165 -1166 -1167 -1168 -1169 -1170 -1171 -1172 -1173 -1174 -1175 -1176 -1177 -1178 -1179 -1180 -1181 -1182 -1183 -1184 -1185 -1186 -1187 -1188 -1189 -1190 -1191 -1192 -1193 -1194 -1195 -1196 -1197 -1198 -1199 -1200 -1201 -1202 -1203 -1204 -1205 -1206 -1207 -1208 -1209 -1210 -1211 -1212 -1213 -1214 -1215 -1216 -1218 -1219 -1220 -1221 -1222 -1223 -1224 -1225 -1226 -1227 -1228 -1229 -1230 -1232 -1233 -1234 -1235 -1236 -1237 -1238 -1239 -1240 -1241 -1242 -1243 -1244 -1245 -1246 -1247 -1248 -1249 -1250 -1251 -1252 -1253 -1254 -1255 -1256 -1257 -1258 -1259 -1260 -1261 -1262 -1263 -1264 -1265 -1266 -1267 -1268 -1269 -1270 -1271 -1272 -1273 -1274 -1275 -1276 -1277 -1278 -1279 -1280 -1281 -1282 -1283 -1284 -1285 -1286 -1287 -1288 -1289 -1290 -1291 -1292 -1293 -1294 -1295 -1296 -1297 -1298 -1299 -1300 -1301 -1302 -1303 -1304 -1305 -1306 -1307 -1308 -1309 -1310 -1311 -1312 -1313 -1314 -1315 -1316 -1317 -1318 -1319 -1320 -1321 -1322 -1323 -1324 -1325 -1326 -1327 -1329 -1367 -4256 -4294 -4295 -4296 -4301 -4302 -5024 -5110 -7680 -7681 -7682 -7683 -7684 -7685 -7686 -7687 -7688 -7689 -7690 -7691 -7692 -7693 -7694 -7695 -7696 -7697 -7698 -7699 -7700 -7701 -7702 -7703 -7704 -7705 -7706 -7707 -7708 -7709 -7710 -7711 -7712 -7713 -7714 -7715 -7716 -7717 -7718 -7719 -7720 -7721 -7722 -7723 -7724 -7725 -7726 -7727 -7728 -7729 -7730 -7731 -7732 -7733 -7734 -7735 -7736 -7737 -7738 -7739 -7740 -7741 -7742 -7743 -7744 -7745 -7746 -7747 -7748 -7749 -7750 -7751 -7752 -7753 -7754 -7755 -7756 -7757 -7758 -7759 -7760 -7761 -7762 -7763 -7764 -7765 -7766 -7767 -7768 -7769 -7770 -7771 -7772 -7773 -7774 -7775 -7776 -7777 -7778 -7779 -7780 -7781 -7782 -7783 -7784 -7785 -7786 -7787 -7788 -7789 -7790 -7791 -7792 -7793 -7794 -7795 -7796 -7797 -7798 -7799 -7800 -7801 -7802 -7803 -7804 -7805 -7806 -7807 -7808 -7809 -7810 -7811 -7812 -7813 -7814 -7815 -7816 -7817 -7818 -7819 -7820 -7821 -7822 -7823 -7824 -7825 -7826 -7827 -7828 -7829 -7838 -7839 -7840 -7841 -7842 -7843 -7844 -7845 -7846 -7847 -7848 -7849 -7850 -7851 -7852 -7853 -7854 -7855 -7856 -7857 -7858 -7859 -7860 -7861 -7862 -7863 -7864 -7865 -7866 -7867 -7868 -7869 -7870 -7871 -7872 -7873 -7874 -7875 -7876 -7877 -7878 -7879 -7880 -7881 -7882 -7883 -7884 -7885 -7886 -7887 -7888 -7889 -7890 -7891 -7892 -7893 -7894 -7895 -7896 -7897 -7898 -7899 -7900 -7901 -7902 -7903 -7904 -7905 -7906 -7907 -7908 -7909 -7910 -7911 -7912 -7913 -7914 -7915 -7916 -7917 -7918 -7919 -7920 -7921 -7922 -7923 -7924 -7925 -7926 -7927 -7928 -7929 -7930 -7931 -7932 -7933 -7934 -7935 -7944 -7952 -7960 -7966 -7976 -7984 -7992 -8000 -8008 -8014 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8032 -8040 -8048 -8072 -8080 -8088 -8096 -8104 -8112 -8120 -8125 -8136 -8141 -8152 -8156 -8168 -8173 -8184 -8189 -8486 -8487 -8490 -8492 -8498 -8499 -8544 -8560 -8579 -8580 -9398 -9424 -11264 -11311 -11360 -11361 -11362 -11365 -11367 -11368 -11369 -11370 -11371 -11372 -11373 -11377 -11378 -11379 -11381 -11382 -11390 -11393 -11394 -11395 -11396 -11397 -11398 -11399 -11400 -11401 -11402 -11403 -11404 -11405 -11406 -11407 -11408 -11409 -11410 -11411 -11412 -11413 -11414 -11415 -11416 -11417 -11418 -11419 -11420 -11421 -11422 -11423 -11424 -11425 -11426 -11427 -11428 -11429 -11430 -11431 -11432 -11433 -11434 -11435 -11436 -11437 -11438 -11439 -11440 -11441 -11442 -11443 -11444 -11445 -11446 -11447 -11448 -11449 -11450 -11451 -11452 -11453 -11454 -11455 -11456 -11457 -11458 -11459 -11460 -11461 -11462 -11463 -11464 -11465 -11466 -11467 -11468 -11469 -11470 -11471 -11472 -11473 -11474 -11475 -11476 -11477 -11478 -11479 -11480 -11481 -11482 -11483 -11484 -11485 -11486 -11487 -11488 -11489 -11490 -11491 -11499 -11500 -11501 -11502 -11506 -11507 -42560 -42561 -42562 -42563 -42564 -42565 -42566 -42567 -42568 -42569 -42570 -42571 -42572 -42573 -42574 -42575 -42576 -42577 -42578 -42579 -42580 -42581 -42582 -42583 -42584 -42585 -42586 -42587 -42588 -42589 -42590 -42591 -42592 -42593 -42594 -42595 -42596 -42597 -42598 -42599 -42600 -42601 -42602 -42603 -42604 -42605 -42624 -42625 -42626 -42627 -42628 -42629 -42630 -42631 -42632 -42633 -42634 -42635 -42636 -42637 -42638 -42639 -42640 -42641 -42642 -42643 -42644 -42645 -42646 -42647 -42648 -42649 -42650 -42651 -42786 -42787 -42788 -42789 -42790 -42791 -42792 -42793 -42794 -42795 -42796 -42797 -42798 -42799 -42802 -42803 -42804 -42805 -42806 -42807 -42808 -42809 -42810 -42811 -42812 -42813 -42814 -42815 -42816 -42817 -42818 -42819 -42820 -42821 -42822 -42823 -42824 -42825 -42826 -42827 -42828 -42829 -42830 -42831 -42832 -42833 -42834 -42835 -42836 -42837 -42838 -42839 -42840 -42841 -42842 -42843 -42844 -42845 -42846 -42847 -42848 -42849 -42850 -42851 -42852 -42853 -42854 -42855 -42856 -42857 -42858 -42859 -42860 -42861 -42862 -42863 -42873 -42874 -42875 -42876 -42877 -42879 -42880 -42881 -42882 -42883 -42884 -42885 -42886 -42887 -42891 -42892 -42893 -42894 -42896 -42897 -42898 -42899 -42902 -42903 -42904 -42905 -42906 -42907 -42908 -42909 -42910 -42911 -42912 -42913 -42914 -42915 -42916 -42917 -42918 -42919 -42920 -42921 -42922 -42926 -42928 -42933 -42934 -42935 -65313 -65339 -66560 -66600 -68736 -68787 -71840 -71872 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWT/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWT/Y.pl deleted file mode 100644 index 71b7d2fd..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWT/Y.pl +++ /dev/null @@ -1,1226 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1212 -97 -123 -181 -182 -223 -247 -248 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -378 -379 -380 -381 -382 -385 -387 -388 -389 -390 -392 -393 -396 -397 -402 -403 -405 -406 -409 -411 -414 -415 -417 -418 -419 -420 -421 -422 -424 -425 -429 -430 -432 -433 -436 -437 -438 -439 -441 -442 -445 -446 -447 -448 -452 -453 -454 -456 -457 -459 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -498 -499 -500 -501 -502 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -564 -572 -573 -575 -577 -578 -579 -583 -584 -585 -586 -587 -588 -589 -590 -591 -597 -598 -600 -601 -602 -603 -605 -608 -610 -611 -612 -613 -615 -616 -618 -619 -621 -623 -624 -625 -627 -629 -630 -637 -638 -640 -641 -643 -644 -647 -653 -658 -659 -669 -671 -837 -838 -881 -882 -883 -884 -887 -888 -891 -894 -912 -913 -940 -975 -976 -978 -981 -984 -985 -986 -987 -988 -989 -990 -991 -992 -993 -994 -995 -996 -997 -998 -999 -1000 -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1012 -1013 -1014 -1016 -1017 -1019 -1020 -1072 -1120 -1121 -1122 -1123 -1124 -1125 -1126 -1127 -1128 -1129 -1130 -1131 -1132 -1133 -1134 -1135 -1136 -1137 -1138 -1139 -1140 -1141 -1142 -1143 -1144 -1145 -1146 -1147 -1148 -1149 -1150 -1151 -1152 -1153 -1154 -1163 -1164 -1165 -1166 -1167 -1168 -1169 -1170 -1171 -1172 -1173 -1174 -1175 -1176 -1177 -1178 -1179 -1180 -1181 -1182 -1183 -1184 -1185 -1186 -1187 -1188 -1189 -1190 -1191 -1192 -1193 -1194 -1195 -1196 -1197 -1198 -1199 -1200 -1201 -1202 -1203 -1204 -1205 -1206 -1207 -1208 -1209 -1210 -1211 -1212 -1213 -1214 -1215 -1216 -1218 -1219 -1220 -1221 -1222 -1223 -1224 -1225 -1226 -1227 -1228 -1229 -1230 -1232 -1233 -1234 -1235 -1236 -1237 -1238 -1239 -1240 -1241 -1242 -1243 -1244 -1245 -1246 -1247 -1248 -1249 -1250 -1251 -1252 -1253 -1254 -1255 -1256 -1257 -1258 -1259 -1260 -1261 -1262 -1263 -1264 -1265 -1266 -1267 -1268 -1269 -1270 -1271 -1272 -1273 -1274 -1275 -1276 -1277 -1278 -1279 -1280 -1281 -1282 -1283 -1284 -1285 -1286 -1287 -1288 -1289 -1290 -1291 -1292 -1293 -1294 -1295 -1296 -1297 -1298 -1299 -1300 -1301 -1302 -1303 -1304 -1305 -1306 -1307 -1308 -1309 -1310 -1311 -1312 -1313 -1314 -1315 -1316 -1317 -1318 -1319 -1320 -1321 -1322 -1323 -1324 -1325 -1326 -1327 -1328 -1377 -1416 -5112 -5118 -7545 -7546 -7549 -7550 -7681 -7682 -7683 -7684 -7685 -7686 -7687 -7688 -7689 -7690 -7691 -7692 -7693 -7694 -7695 -7696 -7697 -7698 -7699 -7700 -7701 -7702 -7703 -7704 -7705 -7706 -7707 -7708 -7709 -7710 -7711 -7712 -7713 -7714 -7715 -7716 -7717 -7718 -7719 -7720 -7721 -7722 -7723 -7724 -7725 -7726 -7727 -7728 -7729 -7730 -7731 -7732 -7733 -7734 -7735 -7736 -7737 -7738 -7739 -7740 -7741 -7742 -7743 -7744 -7745 -7746 -7747 -7748 -7749 -7750 -7751 -7752 -7753 -7754 -7755 -7756 -7757 -7758 -7759 -7760 -7761 -7762 -7763 -7764 -7765 -7766 -7767 -7768 -7769 -7770 -7771 -7772 -7773 -7774 -7775 -7776 -7777 -7778 -7779 -7780 -7781 -7782 -7783 -7784 -7785 -7786 -7787 -7788 -7789 -7790 -7791 -7792 -7793 -7794 -7795 -7796 -7797 -7798 -7799 -7800 -7801 -7802 -7803 -7804 -7805 -7806 -7807 -7808 -7809 -7810 -7811 -7812 -7813 -7814 -7815 -7816 -7817 -7818 -7819 -7820 -7821 -7822 -7823 -7824 -7825 -7826 -7827 -7828 -7829 -7836 -7841 -7842 -7843 -7844 -7845 -7846 -7847 -7848 -7849 -7850 -7851 -7852 -7853 -7854 -7855 -7856 -7857 -7858 -7859 -7860 -7861 -7862 -7863 -7864 -7865 -7866 -7867 -7868 -7869 -7870 -7871 -7872 -7873 -7874 -7875 -7876 -7877 -7878 -7879 -7880 -7881 -7882 -7883 -7884 -7885 -7886 -7887 -7888 -7889 -7890 -7891 -7892 -7893 -7894 -7895 -7896 -7897 -7898 -7899 -7900 -7901 -7902 -7903 -7904 -7905 -7906 -7907 -7908 -7909 -7910 -7911 -7912 -7913 -7914 -7915 -7916 -7917 -7918 -7919 -7920 -7921 -7922 -7923 -7924 -7925 -7926 -7927 -7928 -7929 -7930 -7931 -7932 -7933 -7934 -7935 -7944 -7952 -7958 -7968 -7976 -7984 -7992 -8000 -8006 -8016 -8024 -8032 -8040 -8048 -8062 -8064 -8072 -8080 -8088 -8096 -8104 -8112 -8117 -8118 -8120 -8126 -8127 -8130 -8133 -8134 -8136 -8144 -8148 -8150 -8152 -8160 -8168 -8178 -8181 -8182 -8184 -8526 -8527 -8560 -8576 -8580 -8581 -9424 -9450 -11312 -11359 -11361 -11362 -11365 -11367 -11368 -11369 -11370 -11371 -11372 -11373 -11379 -11380 -11382 -11383 -11393 -11394 -11395 -11396 -11397 -11398 -11399 -11400 -11401 -11402 -11403 -11404 -11405 -11406 -11407 -11408 -11409 -11410 -11411 -11412 -11413 -11414 -11415 -11416 -11417 -11418 -11419 -11420 -11421 -11422 -11423 -11424 -11425 -11426 -11427 -11428 -11429 -11430 -11431 -11432 -11433 -11434 -11435 -11436 -11437 -11438 -11439 -11440 -11441 -11442 -11443 -11444 -11445 -11446 -11447 -11448 -11449 -11450 -11451 -11452 -11453 -11454 -11455 -11456 -11457 -11458 -11459 -11460 -11461 -11462 -11463 -11464 -11465 -11466 -11467 -11468 -11469 -11470 -11471 -11472 -11473 -11474 -11475 -11476 -11477 -11478 -11479 -11480 -11481 -11482 -11483 -11484 -11485 -11486 -11487 -11488 -11489 -11490 -11491 -11492 -11500 -11501 -11502 -11503 -11507 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -42561 -42562 -42563 -42564 -42565 -42566 -42567 -42568 -42569 -42570 -42571 -42572 -42573 -42574 -42575 -42576 -42577 -42578 -42579 -42580 -42581 -42582 -42583 -42584 -42585 -42586 -42587 -42588 -42589 -42590 -42591 -42592 -42593 -42594 -42595 -42596 -42597 -42598 -42599 -42600 -42601 -42602 -42603 -42604 -42605 -42606 -42625 -42626 -42627 -42628 -42629 -42630 -42631 -42632 -42633 -42634 -42635 -42636 -42637 -42638 -42639 -42640 -42641 -42642 -42643 -42644 -42645 -42646 -42647 -42648 -42649 -42650 -42651 -42652 -42787 -42788 -42789 -42790 -42791 -42792 -42793 -42794 -42795 -42796 -42797 -42798 -42799 -42800 -42803 -42804 -42805 -42806 -42807 -42808 -42809 -42810 -42811 -42812 -42813 -42814 -42815 -42816 -42817 -42818 -42819 -42820 -42821 -42822 -42823 -42824 -42825 -42826 -42827 -42828 -42829 -42830 -42831 -42832 -42833 -42834 -42835 -42836 -42837 -42838 -42839 -42840 -42841 -42842 -42843 -42844 -42845 -42846 -42847 -42848 -42849 -42850 -42851 -42852 -42853 -42854 -42855 -42856 -42857 -42858 -42859 -42860 -42861 -42862 -42863 -42864 -42874 -42875 -42876 -42877 -42879 -42880 -42881 -42882 -42883 -42884 -42885 -42886 -42887 -42888 -42892 -42893 -42897 -42898 -42899 -42900 -42903 -42904 -42905 -42906 -42907 -42908 -42909 -42910 -42911 -42912 -42913 -42914 -42915 -42916 -42917 -42918 -42919 -42920 -42921 -42922 -42933 -42934 -42935 -42936 -43859 -43860 -43888 -43968 -64256 -64263 -64275 -64280 -65345 -65371 -66600 -66640 -68800 -68851 -71872 -71904 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWU/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWU/Y.pl deleted file mode 100644 index db198d4c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CWU/Y.pl +++ /dev/null @@ -1,1224 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1210 -97 -123 -181 -182 -223 -247 -248 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -378 -379 -380 -381 -382 -385 -387 -388 -389 -390 -392 -393 -396 -397 -402 -403 -405 -406 -409 -411 -414 -415 -417 -418 -419 -420 -421 -422 -424 -425 -429 -430 -432 -433 -436 -437 -438 -439 -441 -442 -445 -446 -447 -448 -453 -455 -456 -458 -459 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -497 -498 -500 -501 -502 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -564 -572 -573 -575 -577 -578 -579 -583 -584 -585 -586 -587 -588 -589 -590 -591 -597 -598 -600 -601 -602 -603 -605 -608 -610 -611 -612 -613 -615 -616 -618 -619 -621 -623 -624 -625 -627 -629 -630 -637 -638 -640 -641 -643 -644 -647 -653 -658 -659 -669 -671 -837 -838 -881 -882 -883 -884 -887 -888 -891 -894 -912 -913 -940 -975 -976 -978 -981 -984 -985 -986 -987 -988 -989 -990 -991 -992 -993 -994 -995 -996 -997 -998 -999 -1000 -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1012 -1013 -1014 -1016 -1017 -1019 -1020 -1072 -1120 -1121 -1122 -1123 -1124 -1125 -1126 -1127 -1128 -1129 -1130 -1131 -1132 -1133 -1134 -1135 -1136 -1137 -1138 -1139 -1140 -1141 -1142 -1143 -1144 -1145 -1146 -1147 -1148 -1149 -1150 -1151 -1152 -1153 -1154 -1163 -1164 -1165 -1166 -1167 -1168 -1169 -1170 -1171 -1172 -1173 -1174 -1175 -1176 -1177 -1178 -1179 -1180 -1181 -1182 -1183 -1184 -1185 -1186 -1187 -1188 -1189 -1190 -1191 -1192 -1193 -1194 -1195 -1196 -1197 -1198 -1199 -1200 -1201 -1202 -1203 -1204 -1205 -1206 -1207 -1208 -1209 -1210 -1211 -1212 -1213 -1214 -1215 -1216 -1218 -1219 -1220 -1221 -1222 -1223 -1224 -1225 -1226 -1227 -1228 -1229 -1230 -1232 -1233 -1234 -1235 -1236 -1237 -1238 -1239 -1240 -1241 -1242 -1243 -1244 -1245 -1246 -1247 -1248 -1249 -1250 -1251 -1252 -1253 -1254 -1255 -1256 -1257 -1258 -1259 -1260 -1261 -1262 -1263 -1264 -1265 -1266 -1267 -1268 -1269 -1270 -1271 -1272 -1273 -1274 -1275 -1276 -1277 -1278 -1279 -1280 -1281 -1282 -1283 -1284 -1285 -1286 -1287 -1288 -1289 -1290 -1291 -1292 -1293 -1294 -1295 -1296 -1297 -1298 -1299 -1300 -1301 -1302 -1303 -1304 -1305 -1306 -1307 -1308 -1309 -1310 -1311 -1312 -1313 -1314 -1315 -1316 -1317 -1318 -1319 -1320 -1321 -1322 -1323 -1324 -1325 -1326 -1327 -1328 -1377 -1416 -5112 -5118 -7545 -7546 -7549 -7550 -7681 -7682 -7683 -7684 -7685 -7686 -7687 -7688 -7689 -7690 -7691 -7692 -7693 -7694 -7695 -7696 -7697 -7698 -7699 -7700 -7701 -7702 -7703 -7704 -7705 -7706 -7707 -7708 -7709 -7710 -7711 -7712 -7713 -7714 -7715 -7716 -7717 -7718 -7719 -7720 -7721 -7722 -7723 -7724 -7725 -7726 -7727 -7728 -7729 -7730 -7731 -7732 -7733 -7734 -7735 -7736 -7737 -7738 -7739 -7740 -7741 -7742 -7743 -7744 -7745 -7746 -7747 -7748 -7749 -7750 -7751 -7752 -7753 -7754 -7755 -7756 -7757 -7758 -7759 -7760 -7761 -7762 -7763 -7764 -7765 -7766 -7767 -7768 -7769 -7770 -7771 -7772 -7773 -7774 -7775 -7776 -7777 -7778 -7779 -7780 -7781 -7782 -7783 -7784 -7785 -7786 -7787 -7788 -7789 -7790 -7791 -7792 -7793 -7794 -7795 -7796 -7797 -7798 -7799 -7800 -7801 -7802 -7803 -7804 -7805 -7806 -7807 -7808 -7809 -7810 -7811 -7812 -7813 -7814 -7815 -7816 -7817 -7818 -7819 -7820 -7821 -7822 -7823 -7824 -7825 -7826 -7827 -7828 -7829 -7836 -7841 -7842 -7843 -7844 -7845 -7846 -7847 -7848 -7849 -7850 -7851 -7852 -7853 -7854 -7855 -7856 -7857 -7858 -7859 -7860 -7861 -7862 -7863 -7864 -7865 -7866 -7867 -7868 -7869 -7870 -7871 -7872 -7873 -7874 -7875 -7876 -7877 -7878 -7879 -7880 -7881 -7882 -7883 -7884 -7885 -7886 -7887 -7888 -7889 -7890 -7891 -7892 -7893 -7894 -7895 -7896 -7897 -7898 -7899 -7900 -7901 -7902 -7903 -7904 -7905 -7906 -7907 -7908 -7909 -7910 -7911 -7912 -7913 -7914 -7915 -7916 -7917 -7918 -7919 -7920 -7921 -7922 -7923 -7924 -7925 -7926 -7927 -7928 -7929 -7930 -7931 -7932 -7933 -7934 -7935 -7944 -7952 -7958 -7968 -7976 -7984 -7992 -8000 -8006 -8016 -8024 -8032 -8040 -8048 -8062 -8064 -8117 -8118 -8120 -8124 -8125 -8126 -8127 -8130 -8133 -8134 -8136 -8140 -8141 -8144 -8148 -8150 -8152 -8160 -8168 -8178 -8181 -8182 -8184 -8188 -8189 -8526 -8527 -8560 -8576 -8580 -8581 -9424 -9450 -11312 -11359 -11361 -11362 -11365 -11367 -11368 -11369 -11370 -11371 -11372 -11373 -11379 -11380 -11382 -11383 -11393 -11394 -11395 -11396 -11397 -11398 -11399 -11400 -11401 -11402 -11403 -11404 -11405 -11406 -11407 -11408 -11409 -11410 -11411 -11412 -11413 -11414 -11415 -11416 -11417 -11418 -11419 -11420 -11421 -11422 -11423 -11424 -11425 -11426 -11427 -11428 -11429 -11430 -11431 -11432 -11433 -11434 -11435 -11436 -11437 -11438 -11439 -11440 -11441 -11442 -11443 -11444 -11445 -11446 -11447 -11448 -11449 -11450 -11451 -11452 -11453 -11454 -11455 -11456 -11457 -11458 -11459 -11460 -11461 -11462 -11463 -11464 -11465 -11466 -11467 -11468 -11469 -11470 -11471 -11472 -11473 -11474 -11475 -11476 -11477 -11478 -11479 -11480 -11481 -11482 -11483 -11484 -11485 -11486 -11487 -11488 -11489 -11490 -11491 -11492 -11500 -11501 -11502 -11503 -11507 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -42561 -42562 -42563 -42564 -42565 -42566 -42567 -42568 -42569 -42570 -42571 -42572 -42573 -42574 -42575 -42576 -42577 -42578 -42579 -42580 -42581 -42582 -42583 -42584 -42585 -42586 -42587 -42588 -42589 -42590 -42591 -42592 -42593 -42594 -42595 -42596 -42597 -42598 -42599 -42600 -42601 -42602 -42603 -42604 -42605 -42606 -42625 -42626 -42627 -42628 -42629 -42630 -42631 -42632 -42633 -42634 -42635 -42636 -42637 -42638 -42639 -42640 -42641 -42642 -42643 -42644 -42645 -42646 -42647 -42648 -42649 -42650 -42651 -42652 -42787 -42788 -42789 -42790 -42791 -42792 -42793 -42794 -42795 -42796 -42797 -42798 -42799 -42800 -42803 -42804 -42805 -42806 -42807 -42808 -42809 -42810 -42811 -42812 -42813 -42814 -42815 -42816 -42817 -42818 -42819 -42820 -42821 -42822 -42823 -42824 -42825 -42826 -42827 -42828 -42829 -42830 -42831 -42832 -42833 -42834 -42835 -42836 -42837 -42838 -42839 -42840 -42841 -42842 -42843 -42844 -42845 -42846 -42847 -42848 -42849 -42850 -42851 -42852 -42853 -42854 -42855 -42856 -42857 -42858 -42859 -42860 -42861 -42862 -42863 -42864 -42874 -42875 -42876 -42877 -42879 -42880 -42881 -42882 -42883 -42884 -42885 -42886 -42887 -42888 -42892 -42893 -42897 -42898 -42899 -42900 -42903 -42904 -42905 -42906 -42907 -42908 -42909 -42910 -42911 -42912 -42913 -42914 -42915 -42916 -42917 -42918 -42919 -42920 -42921 -42922 -42933 -42934 -42935 -42936 -43859 -43860 -43888 -43968 -64256 -64263 -64275 -64280 -65345 -65371 -66600 -66640 -68800 -68851 -71872 -71904 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Cased/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Cased/Y.pl deleted file mode 100644 index 24221cb9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Cased/Y.pl +++ /dev/null @@ -1,276 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V262 -65 -91 -97 -123 -170 -171 -181 -182 -186 -187 -192 -215 -216 -247 -248 -443 -444 -448 -452 -660 -661 -697 -704 -706 -736 -741 -837 -838 -880 -884 -886 -888 -890 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1162 -1328 -1329 -1367 -1377 -1416 -4256 -4294 -4295 -4296 -4301 -4302 -5024 -5110 -5112 -5118 -7424 -7616 -7680 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8305 -8306 -8319 -8320 -8336 -8349 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8501 -8505 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8544 -8576 -8579 -8581 -9398 -9450 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11503 -11506 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -42560 -42606 -42624 -42654 -42786 -42888 -42891 -42895 -42896 -42926 -42928 -42936 -43000 -43003 -43824 -43867 -43868 -43878 -43888 -43968 -64256 -64263 -64275 -64280 -65313 -65339 -65345 -65371 -66560 -66640 -68736 -68787 -68800 -68851 -71840 -71904 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -127280 -127306 -127312 -127338 -127344 -127370 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/A.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/A.pl deleted file mode 100644 index cb27aac3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/A.pl +++ /dev/null @@ -1,218 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V204 -768 -789 -829 -837 -838 -839 -842 -845 -848 -851 -855 -856 -859 -860 -867 -880 -1155 -1160 -1426 -1430 -1431 -1434 -1436 -1442 -1448 -1450 -1451 -1453 -1455 -1456 -1476 -1477 -1552 -1560 -1619 -1621 -1623 -1628 -1629 -1631 -1750 -1757 -1759 -1763 -1764 -1765 -1767 -1769 -1771 -1773 -1840 -1841 -1842 -1844 -1845 -1847 -1850 -1851 -1853 -1854 -1855 -1858 -1859 -1860 -1861 -1862 -1863 -1864 -1865 -1867 -2027 -2034 -2035 -2036 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2094 -2276 -2278 -2279 -2281 -2282 -2285 -2291 -2294 -2295 -2297 -2299 -2304 -2385 -2386 -2387 -2389 -3970 -3972 -3974 -3976 -4957 -4960 -6109 -6110 -6458 -6459 -6679 -6680 -6773 -6781 -6832 -6837 -6843 -6845 -7019 -7020 -7021 -7028 -7376 -7379 -7386 -7388 -7392 -7393 -7412 -7413 -7416 -7418 -7616 -7618 -7619 -7626 -7627 -7629 -7633 -7670 -7678 -7679 -8400 -8402 -8404 -8408 -8411 -8413 -8417 -8418 -8423 -8424 -8425 -8426 -8432 -8433 -11503 -11506 -11744 -11776 -42607 -42608 -42612 -42622 -42654 -42656 -42736 -42738 -43232 -43250 -43696 -43697 -43698 -43700 -43703 -43705 -43710 -43712 -43713 -43714 -65056 -65063 -65070 -65072 -66422 -66427 -68111 -68112 -68152 -68153 -68325 -68326 -69888 -69891 -70502 -70509 -70512 -70517 -92976 -92983 -119173 -119178 -119210 -119214 -119362 -119365 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/AR.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/AR.pl deleted file mode 100644 index 7fc1cf0d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/AR.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -789 -790 -794 -795 -856 -857 -12332 -12333 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/ATAR.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/ATAR.pl deleted file mode 100644 index c12b0ebf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/ATAR.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -795 -796 -3897 -3898 -119141 -119143 -119150 -119155 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/B.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/B.pl deleted file mode 100644 index 4b09fdb8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/B.pl +++ /dev/null @@ -1,156 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V142 -790 -794 -796 -801 -803 -807 -809 -820 -825 -829 -839 -842 -845 -847 -851 -855 -857 -859 -1425 -1426 -1430 -1431 -1435 -1436 -1442 -1448 -1450 -1451 -1477 -1478 -1621 -1623 -1628 -1629 -1631 -1632 -1763 -1764 -1770 -1771 -1773 -1774 -1841 -1842 -1844 -1845 -1847 -1850 -1851 -1853 -1854 -1855 -1858 -1859 -1860 -1861 -1862 -1863 -1864 -1865 -2034 -2035 -2137 -2140 -2275 -2276 -2278 -2279 -2281 -2282 -2285 -2288 -2294 -2295 -2297 -2299 -2386 -2387 -3864 -3866 -3893 -3894 -3895 -3896 -4038 -4039 -4237 -4238 -6459 -6460 -6680 -6681 -6783 -6784 -6837 -6843 -6845 -6846 -7020 -7021 -7381 -7386 -7388 -7392 -7405 -7406 -7618 -7619 -7626 -7627 -7631 -7632 -7677 -7678 -7679 -7680 -8424 -8425 -8428 -8432 -43307 -43310 -43700 -43701 -65063 -65070 -66045 -66046 -66272 -66273 -68109 -68110 -68154 -68155 -68326 -68327 -119163 -119171 -119178 -119180 -125136 -125143 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/BR.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/BR.pl deleted file mode 100644 index 2fa7a994..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/BR.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -1434 -1435 -1453 -1454 -6457 -6458 -12333 -12334 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/DB.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/DB.pl deleted file mode 100644 index 703b7cf4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/DB.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -860 -861 -863 -864 -866 -867 -7676 -7677 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/NK.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/NK.pl deleted file mode 100644 index 7c8a2d50..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/NK.pl +++ /dev/null @@ -1,54 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V40 -2364 -2365 -2492 -2493 -2620 -2621 -2748 -2749 -2876 -2877 -3260 -3261 -4151 -4152 -6964 -6965 -7142 -7143 -7223 -7224 -43443 -43444 -69818 -69819 -70003 -70004 -70090 -70091 -70198 -70199 -70377 -70378 -70460 -70461 -70851 -70852 -71104 -71105 -71351 -71352 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/NR.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/NR.pl deleted file mode 100644 index 9e268582..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/NR.pl +++ /dev/null @@ -1,319 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V305 -0 -768 -847 -848 -880 -1155 -1160 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1552 -1563 -1611 -1632 -1648 -1649 -1750 -1757 -1759 -1765 -1767 -1769 -1770 -1774 -1809 -1810 -1840 -1867 -2027 -2036 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2094 -2137 -2140 -2275 -2304 -2364 -2365 -2381 -2382 -2385 -2389 -2492 -2493 -2509 -2510 -2620 -2621 -2637 -2638 -2748 -2749 -2765 -2766 -2876 -2877 -2893 -2894 -3021 -3022 -3149 -3150 -3157 -3159 -3260 -3261 -3277 -3278 -3405 -3406 -3530 -3531 -3640 -3643 -3656 -3660 -3768 -3770 -3784 -3788 -3864 -3866 -3893 -3894 -3895 -3896 -3897 -3898 -3953 -3955 -3956 -3957 -3962 -3966 -3968 -3969 -3970 -3973 -3974 -3976 -4038 -4039 -4151 -4152 -4153 -4155 -4237 -4238 -4957 -4960 -5908 -5909 -5940 -5941 -6098 -6099 -6109 -6110 -6313 -6314 -6457 -6460 -6679 -6681 -6752 -6753 -6773 -6781 -6783 -6784 -6832 -6846 -6964 -6965 -6980 -6981 -7019 -7028 -7082 -7084 -7142 -7143 -7154 -7156 -7223 -7224 -7376 -7379 -7380 -7393 -7394 -7401 -7405 -7406 -7412 -7413 -7416 -7418 -7616 -7670 -7676 -7680 -8400 -8413 -8417 -8418 -8421 -8433 -11503 -11506 -11647 -11648 -11744 -11776 -12330 -12336 -12441 -12443 -42607 -42608 -42612 -42622 -42654 -42656 -42736 -42738 -43014 -43015 -43204 -43205 -43232 -43250 -43307 -43310 -43347 -43348 -43443 -43444 -43456 -43457 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43766 -43767 -44013 -44014 -64286 -64287 -65056 -65072 -66045 -66046 -66272 -66273 -66422 -66427 -68109 -68110 -68111 -68112 -68152 -68155 -68159 -68160 -68325 -68327 -69702 -69703 -69759 -69760 -69817 -69819 -69888 -69891 -69939 -69941 -70003 -70004 -70080 -70081 -70090 -70091 -70197 -70199 -70377 -70379 -70460 -70461 -70477 -70478 -70502 -70509 -70512 -70517 -70850 -70852 -71103 -71105 -71231 -71232 -71350 -71352 -71467 -71468 -92912 -92917 -92976 -92983 -113822 -113823 -119141 -119146 -119149 -119155 -119163 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -125136 -125143 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/OV.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/OV.pl deleted file mode 100644 index 756e4462..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/OV.pl +++ /dev/null @@ -1,36 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V22 -820 -825 -7380 -7381 -7394 -7401 -8402 -8404 -8408 -8411 -8421 -8423 -8426 -8428 -68153 -68154 -92912 -92917 -113822 -113823 -119143 -119146 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/VR.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/VR.pl deleted file mode 100644 index 9c70aee1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ccc/VR.pl +++ /dev/null @@ -1,96 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V82 -2381 -2382 -2509 -2510 -2637 -2638 -2765 -2766 -2893 -2894 -3021 -3022 -3149 -3150 -3277 -3278 -3405 -3406 -3530 -3531 -3642 -3643 -3972 -3973 -4153 -4155 -5908 -5909 -5940 -5941 -6098 -6099 -6752 -6753 -6980 -6981 -7082 -7084 -7154 -7156 -11647 -11648 -43014 -43015 -43204 -43205 -43347 -43348 -43456 -43457 -43766 -43767 -44013 -44014 -68159 -68160 -69702 -69703 -69759 -69760 -69817 -69818 -69939 -69941 -70080 -70081 -70197 -70198 -70378 -70379 -70477 -70478 -70850 -70851 -71103 -71104 -71231 -71232 -71350 -71351 -71467 -71468 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CompEx/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CompEx/Y.pl deleted file mode 100644 index 96fb11df..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/CompEx/Y.pl +++ /dev/null @@ -1,160 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V146 -832 -834 -835 -837 -884 -885 -894 -895 -903 -904 -2392 -2400 -2524 -2526 -2527 -2528 -2611 -2612 -2614 -2615 -2649 -2652 -2654 -2655 -2908 -2910 -3907 -3908 -3917 -3918 -3922 -3923 -3927 -3928 -3932 -3933 -3945 -3946 -3955 -3956 -3957 -3959 -3960 -3961 -3969 -3970 -3987 -3988 -3997 -3998 -4002 -4003 -4007 -4008 -4012 -4013 -4025 -4026 -8049 -8050 -8051 -8052 -8053 -8054 -8055 -8056 -8057 -8058 -8059 -8060 -8061 -8062 -8123 -8124 -8126 -8127 -8137 -8138 -8139 -8140 -8147 -8148 -8155 -8156 -8163 -8164 -8171 -8172 -8174 -8176 -8185 -8186 -8187 -8188 -8189 -8190 -8192 -8194 -8486 -8487 -8490 -8492 -9001 -9003 -10972 -10973 -63744 -64014 -64016 -64017 -64018 -64019 -64021 -64031 -64032 -64033 -64034 -64035 -64037 -64039 -64042 -64110 -64112 -64218 -64285 -64286 -64287 -64288 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64335 -119134 -119141 -119227 -119233 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/DI/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/DI/Y.pl deleted file mode 100644 index ddfacf02..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/DI/Y.pl +++ /dev/null @@ -1,48 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V34 -173 -174 -847 -848 -1564 -1565 -4447 -4449 -6068 -6070 -6155 -6159 -8203 -8208 -8234 -8239 -8288 -8304 -12644 -12645 -65024 -65040 -65279 -65280 -65440 -65441 -65520 -65529 -113824 -113828 -119155 -119163 -917504 -921600 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dash/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dash/Y.pl deleted file mode 100644 index 37a896d3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dash/Y.pl +++ /dev/null @@ -1,56 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V42 -45 -46 -1418 -1419 -1470 -1471 -5120 -5121 -6150 -6151 -8208 -8214 -8275 -8276 -8315 -8316 -8331 -8332 -8722 -8723 -11799 -11800 -11802 -11803 -11834 -11836 -11840 -11841 -12316 -12317 -12336 -12337 -12448 -12449 -65073 -65075 -65112 -65113 -65123 -65124 -65293 -65294 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dep/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dep/Y.pl deleted file mode 100644 index bc56a291..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dep/Y.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -329 -330 -1651 -1652 -3959 -3960 -3961 -3962 -6051 -6053 -8298 -8304 -9001 -9003 -917505 -917506 -917631 -917632 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dia/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dia/Y.pl deleted file mode 100644 index ee64e220..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dia/Y.pl +++ /dev/null @@ -1,308 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V294 -94 -95 -96 -97 -168 -169 -175 -176 -180 -181 -183 -185 -688 -847 -848 -856 -861 -867 -884 -886 -890 -891 -900 -902 -1155 -1160 -1369 -1370 -1425 -1442 -1443 -1470 -1471 -1472 -1473 -1475 -1476 -1477 -1611 -1619 -1623 -1625 -1759 -1761 -1765 -1767 -1770 -1773 -1840 -1867 -1958 -1969 -2027 -2038 -2072 -2074 -2275 -2303 -2364 -2365 -2381 -2382 -2385 -2389 -2417 -2418 -2492 -2493 -2509 -2510 -2620 -2621 -2637 -2638 -2748 -2749 -2765 -2766 -2876 -2877 -2893 -2894 -3021 -3022 -3149 -3150 -3260 -3261 -3277 -3278 -3405 -3406 -3530 -3531 -3655 -3661 -3662 -3663 -3784 -3789 -3864 -3866 -3893 -3894 -3895 -3896 -3897 -3898 -3902 -3904 -3970 -3973 -3974 -3976 -4038 -4039 -4151 -4152 -4153 -4155 -4231 -4238 -4239 -4240 -4250 -4252 -6089 -6100 -6109 -6110 -6457 -6460 -6773 -6781 -6783 -6784 -6832 -6846 -6964 -6965 -6980 -6981 -7019 -7028 -7082 -7084 -7222 -7224 -7288 -7294 -7376 -7401 -7405 -7406 -7412 -7413 -7416 -7418 -7468 -7531 -7620 -7632 -7669 -7670 -7677 -7680 -8125 -8126 -8127 -8130 -8141 -8144 -8157 -8160 -8173 -8176 -8189 -8191 -11503 -11506 -11823 -11824 -12330 -12336 -12441 -12445 -12540 -12541 -42607 -42608 -42620 -42622 -42623 -42624 -42652 -42654 -42736 -42738 -42775 -42786 -42888 -42889 -43000 -43002 -43204 -43205 -43232 -43250 -43307 -43311 -43347 -43348 -43443 -43444 -43456 -43457 -43493 -43494 -43643 -43646 -43711 -43715 -43766 -43767 -43867 -43872 -44012 -44014 -64286 -64287 -65056 -65072 -65342 -65343 -65344 -65345 -65392 -65393 -65438 -65440 -65507 -65508 -66272 -66273 -68325 -68327 -69817 -69819 -69939 -69941 -70003 -70004 -70080 -70081 -70090 -70093 -70197 -70199 -70377 -70379 -70460 -70461 -70477 -70478 -70502 -70509 -70512 -70517 -70850 -70852 -71103 -71105 -71231 -71232 -71350 -71352 -71467 -71468 -92912 -92917 -94095 -94112 -119143 -119146 -119149 -119155 -119163 -119171 -119173 -119180 -119210 -119214 -125136 -125143 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Com.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Com.pl deleted file mode 100644 index 91d1eada..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Com.pl +++ /dev/null @@ -1,162 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V148 -168 -169 -175 -176 -180 -182 -184 -185 -306 -308 -319 -321 -329 -330 -383 -384 -452 -461 -497 -500 -728 -734 -890 -891 -900 -901 -976 -979 -981 -983 -1008 -1011 -1012 -1014 -1017 -1018 -1415 -1416 -1653 -1657 -3635 -3636 -3763 -3764 -3804 -3806 -3959 -3960 -3961 -3962 -7834 -7835 -8125 -8126 -8127 -8129 -8190 -8191 -8194 -8199 -8200 -8203 -8215 -8216 -8228 -8231 -8243 -8245 -8246 -8248 -8252 -8253 -8254 -8255 -8263 -8266 -8279 -8280 -8287 -8288 -8360 -8361 -8448 -8450 -8451 -8452 -8453 -8456 -8457 -8458 -8470 -8471 -8481 -8482 -8501 -8505 -8507 -8508 -8544 -8576 -8748 -8750 -8751 -8753 -9332 -9398 -10764 -10765 -10868 -10871 -11935 -11936 -12019 -12020 -12032 -12246 -12342 -12343 -12344 -12347 -12443 -12445 -12593 -12687 -12800 -12831 -12832 -12868 -12992 -13004 -13144 -13169 -13280 -13311 -64256 -64263 -64275 -64280 -64335 -64336 -65097 -65104 -127232 -127243 -127248 -127275 -127552 -127561 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Enc.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Enc.pl deleted file mode 100644 index 6f374364..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Enc.pl +++ /dev/null @@ -1,30 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V16 -9312 -9332 -9398 -9451 -12868 -12872 -12881 -12927 -12928 -12992 -13008 -13055 -127275 -127279 -127568 -127570 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Fin.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Fin.pl deleted file mode 100644 index d0ee8d42..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Fin.pl +++ /dev/null @@ -1,240 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V226 -64337 -64338 -64339 -64340 -64343 -64344 -64347 -64348 -64351 -64352 -64355 -64356 -64359 -64360 -64363 -64364 -64367 -64368 -64371 -64372 -64375 -64376 -64379 -64380 -64383 -64384 -64387 -64388 -64389 -64390 -64391 -64392 -64393 -64394 -64395 -64396 -64397 -64398 -64399 -64400 -64403 -64404 -64407 -64408 -64411 -64412 -64415 -64416 -64417 -64418 -64421 -64422 -64423 -64424 -64427 -64428 -64431 -64432 -64433 -64434 -64468 -64469 -64472 -64473 -64474 -64475 -64476 -64477 -64479 -64480 -64481 -64482 -64483 -64484 -64485 -64486 -64491 -64492 -64493 -64494 -64495 -64496 -64497 -64498 -64499 -64500 -64501 -64502 -64503 -64504 -64506 -64507 -64509 -64510 -64612 -64663 -64785 -64813 -64828 -64829 -64849 -64850 -64856 -64857 -64858 -64860 -64862 -64864 -64866 -64867 -64868 -64869 -64870 -64872 -64873 -64875 -64876 -64877 -64878 -64880 -64881 -64882 -64884 -64887 -64888 -64893 -64894 -64899 -64900 -64902 -64903 -64904 -64907 -64908 -64918 -64920 -64921 -64925 -64926 -64948 -64950 -64952 -64953 -64954 -64955 -64963 -64966 -64968 -65154 -65155 -65156 -65157 -65158 -65159 -65160 -65161 -65162 -65163 -65166 -65167 -65168 -65169 -65172 -65173 -65174 -65175 -65178 -65179 -65182 -65183 -65186 -65187 -65190 -65191 -65194 -65195 -65196 -65197 -65198 -65199 -65200 -65201 -65202 -65203 -65206 -65207 -65210 -65211 -65214 -65215 -65218 -65219 -65222 -65223 -65226 -65227 -65230 -65231 -65234 -65235 -65238 -65239 -65242 -65243 -65246 -65247 -65250 -65251 -65254 -65255 -65258 -65259 -65262 -65263 -65264 -65265 -65266 -65267 -65270 -65271 -65272 -65273 -65274 -65275 -65276 -65277 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Font.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Font.pl deleted file mode 100644 index c34ea3e4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Font.pl +++ /dev/null @@ -1,148 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V134 -8450 -8451 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8488 -8489 -8492 -8494 -8495 -8498 -8499 -8501 -8505 -8506 -8508 -8513 -8517 -8522 -64288 -64298 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Init.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Init.pl deleted file mode 100644 index 4078371e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Init.pl +++ /dev/null @@ -1,164 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V150 -64340 -64341 -64344 -64345 -64348 -64349 -64352 -64353 -64356 -64357 -64360 -64361 -64364 -64365 -64368 -64369 -64372 -64373 -64376 -64377 -64380 -64381 -64384 -64385 -64400 -64401 -64404 -64405 -64408 -64409 -64412 -64413 -64418 -64419 -64424 -64425 -64428 -64429 -64469 -64470 -64486 -64487 -64488 -64489 -64504 -64505 -64507 -64508 -64510 -64511 -64663 -64735 -64813 -64820 -64848 -64849 -64850 -64856 -64857 -64858 -64860 -64862 -64864 -64866 -64867 -64868 -64869 -64870 -64872 -64873 -64875 -64876 -64877 -64878 -64880 -64881 -64882 -64884 -64887 -64888 -64893 -64894 -64899 -64900 -64902 -64903 -64904 -64907 -64908 -64912 -64914 -64918 -64920 -64921 -64925 -64926 -64948 -64950 -64952 -64953 -64954 -64955 -64963 -64966 -65163 -65164 -65169 -65170 -65175 -65176 -65179 -65180 -65183 -65184 -65187 -65188 -65191 -65192 -65203 -65204 -65207 -65208 -65211 -65212 -65215 -65216 -65219 -65220 -65223 -65224 -65227 -65228 -65231 -65232 -65235 -65236 -65239 -65240 -65243 -65244 -65247 -65248 -65251 -65252 -65255 -65256 -65259 -65260 -65267 -65268 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Iso.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Iso.pl deleted file mode 100644 index 4907d201..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Iso.pl +++ /dev/null @@ -1,210 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V196 -64336 -64337 -64338 -64339 -64342 -64343 -64346 -64347 -64350 -64351 -64354 -64355 -64358 -64359 -64362 -64363 -64366 -64367 -64370 -64371 -64374 -64375 -64378 -64379 -64382 -64383 -64386 -64387 -64388 -64389 -64390 -64391 -64392 -64393 -64394 -64395 -64396 -64397 -64398 -64399 -64402 -64403 -64406 -64407 -64410 -64411 -64414 -64415 -64416 -64417 -64420 -64421 -64422 -64423 -64426 -64427 -64430 -64431 -64432 -64433 -64467 -64468 -64471 -64472 -64473 -64474 -64475 -64476 -64477 -64479 -64480 -64481 -64482 -64483 -64484 -64485 -64490 -64491 -64492 -64493 -64494 -64495 -64496 -64497 -64498 -64499 -64500 -64501 -64502 -64503 -64505 -64506 -64508 -64509 -64512 -64612 -64757 -64785 -64829 -64830 -65008 -65021 -65136 -65137 -65138 -65139 -65140 -65141 -65142 -65143 -65144 -65145 -65146 -65147 -65148 -65149 -65150 -65151 -65152 -65154 -65155 -65156 -65157 -65158 -65159 -65160 -65161 -65162 -65165 -65166 -65167 -65168 -65171 -65172 -65173 -65174 -65177 -65178 -65181 -65182 -65185 -65186 -65189 -65190 -65193 -65194 -65195 -65196 -65197 -65198 -65199 -65200 -65201 -65202 -65205 -65206 -65209 -65210 -65213 -65214 -65217 -65218 -65221 -65222 -65225 -65226 -65229 -65230 -65233 -65234 -65237 -65238 -65241 -65242 -65245 -65246 -65249 -65250 -65253 -65254 -65257 -65258 -65261 -65262 -65263 -65264 -65265 -65266 -65269 -65270 -65271 -65272 -65273 -65274 -65275 -65276 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Med.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Med.pl deleted file mode 100644 index 578457ee..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Med.pl +++ /dev/null @@ -1,122 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V108 -64341 -64342 -64345 -64346 -64349 -64350 -64353 -64354 -64357 -64358 -64361 -64362 -64365 -64366 -64369 -64370 -64373 -64374 -64377 -64378 -64381 -64382 -64385 -64386 -64401 -64402 -64405 -64406 -64409 -64410 -64413 -64414 -64419 -64420 -64425 -64426 -64429 -64430 -64470 -64471 -64487 -64488 -64489 -64490 -64511 -64512 -64735 -64757 -64820 -64828 -65137 -65138 -65143 -65144 -65145 -65146 -65147 -65148 -65149 -65150 -65151 -65152 -65164 -65165 -65170 -65171 -65176 -65177 -65180 -65181 -65184 -65185 -65188 -65189 -65192 -65193 -65204 -65205 -65208 -65209 -65212 -65213 -65216 -65217 -65220 -65221 -65224 -65225 -65228 -65229 -65232 -65233 -65236 -65237 -65240 -65241 -65244 -65245 -65248 -65249 -65252 -65253 -65256 -65257 -65260 -65261 -65268 -65269 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Nar.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Nar.pl deleted file mode 100644 index 468a8319..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Nar.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -65377 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65512 -65519 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Nb.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Nb.pl deleted file mode 100644 index 93a576d7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Nb.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -160 -161 -3852 -3853 -8199 -8200 -8209 -8210 -8239 -8240 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/NonCanon.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/NonCanon.pl deleted file mode 100644 index 7af606ee..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/NonCanon.pl +++ /dev/null @@ -1,386 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V372 -160 -161 -168 -169 -170 -171 -175 -176 -178 -182 -184 -187 -188 -191 -306 -308 -319 -321 -329 -330 -383 -384 -452 -461 -497 -500 -688 -697 -728 -734 -736 -741 -890 -891 -900 -901 -976 -979 -981 -983 -1008 -1011 -1012 -1014 -1017 -1018 -1415 -1416 -1653 -1657 -3635 -3636 -3763 -3764 -3804 -3806 -3852 -3853 -3959 -3960 -3961 -3962 -4348 -4349 -7468 -7471 -7472 -7483 -7484 -7502 -7503 -7531 -7544 -7545 -7579 -7616 -7834 -7835 -8125 -8126 -8127 -8129 -8190 -8191 -8194 -8203 -8209 -8210 -8215 -8216 -8228 -8231 -8239 -8240 -8243 -8245 -8246 -8248 -8252 -8253 -8254 -8255 -8263 -8266 -8279 -8280 -8287 -8288 -8304 -8306 -8308 -8335 -8336 -8349 -8360 -8361 -8448 -8452 -8453 -8456 -8457 -8468 -8469 -8471 -8473 -8478 -8480 -8483 -8484 -8485 -8488 -8489 -8492 -8494 -8495 -8498 -8499 -8506 -8507 -8513 -8517 -8522 -8528 -8576 -8585 -8586 -8748 -8750 -8751 -8753 -9312 -9451 -10764 -10765 -10868 -10871 -11388 -11390 -11631 -11632 -11935 -11936 -12019 -12020 -12032 -12246 -12288 -12289 -12342 -12343 -12344 -12347 -12443 -12445 -12447 -12448 -12543 -12544 -12593 -12687 -12690 -12704 -12800 -12831 -12832 -12872 -12880 -12927 -12928 -13055 -13056 -13312 -42652 -42654 -42864 -42865 -43000 -43002 -43868 -43872 -64256 -64263 -64275 -64280 -64288 -64298 -64335 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65021 -65040 -65050 -65072 -65093 -65095 -65107 -65108 -65127 -65128 -65132 -65136 -65139 -65140 -65141 -65142 -65277 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -127232 -127243 -127248 -127279 -127280 -127312 -127338 -127340 -127376 -127377 -127488 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Sqr.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Sqr.pl deleted file mode 100644 index 44ca06d9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Sqr.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -12880 -12881 -13004 -13008 -13056 -13144 -13169 -13280 -13311 -13312 -127280 -127312 -127376 -127377 -127488 -127491 -127504 -127547 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Sub.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Sub.pl deleted file mode 100644 index 55028b1e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Sub.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -7522 -7531 -8320 -8335 -8336 -8349 -11388 -11389 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Sup.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Sup.pl deleted file mode 100644 index cf5f04c1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Sup.pl +++ /dev/null @@ -1,62 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V48 -170 -171 -178 -180 -185 -187 -688 -697 -736 -741 -4348 -4349 -7468 -7471 -7472 -7483 -7484 -7502 -7503 -7522 -7544 -7545 -7579 -7616 -8304 -8306 -8308 -8320 -8480 -8481 -8482 -8483 -11389 -11390 -11631 -11632 -12690 -12704 -42652 -42654 -42864 -42865 -43000 -43002 -43868 -43872 -127338 -127340 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Vert.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Vert.pl deleted file mode 100644 index f96345b5..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Dt/Vert.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -12447 -12448 -12543 -12544 -65040 -65050 -65072 -65093 -65095 -65097 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ea/A.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ea/A.pl deleted file mode 100644 index a514509c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ea/A.pl +++ /dev/null @@ -1,360 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V346 -161 -162 -164 -165 -167 -169 -170 -171 -173 -175 -176 -181 -182 -187 -188 -192 -198 -199 -208 -209 -215 -217 -222 -226 -230 -231 -232 -235 -236 -238 -240 -241 -242 -244 -247 -251 -252 -253 -254 -255 -257 -258 -273 -274 -275 -276 -283 -284 -294 -296 -299 -300 -305 -308 -312 -313 -319 -323 -324 -325 -328 -332 -333 -334 -338 -340 -358 -360 -363 -364 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -477 -593 -594 -609 -610 -708 -709 -711 -712 -713 -716 -717 -718 -720 -721 -728 -732 -733 -734 -735 -736 -768 -880 -913 -930 -931 -938 -945 -962 -963 -970 -1025 -1026 -1040 -1104 -1105 -1106 -8208 -8209 -8211 -8215 -8216 -8218 -8220 -8222 -8224 -8227 -8228 -8232 -8240 -8241 -8242 -8244 -8245 -8246 -8251 -8252 -8254 -8255 -8308 -8309 -8319 -8320 -8321 -8325 -8364 -8365 -8451 -8452 -8453 -8454 -8457 -8458 -8467 -8468 -8470 -8471 -8481 -8483 -8486 -8487 -8491 -8492 -8531 -8533 -8539 -8543 -8544 -8556 -8560 -8570 -8585 -8586 -8592 -8602 -8632 -8634 -8658 -8659 -8660 -8661 -8679 -8680 -8704 -8705 -8706 -8708 -8711 -8713 -8715 -8716 -8719 -8720 -8721 -8722 -8725 -8726 -8730 -8731 -8733 -8737 -8739 -8740 -8741 -8742 -8743 -8749 -8750 -8751 -8756 -8760 -8764 -8766 -8776 -8777 -8780 -8781 -8786 -8787 -8800 -8802 -8804 -8808 -8810 -8812 -8814 -8816 -8834 -8836 -8838 -8840 -8853 -8854 -8857 -8858 -8869 -8870 -8895 -8896 -8978 -8979 -9312 -9450 -9451 -9548 -9552 -9588 -9600 -9616 -9618 -9622 -9632 -9634 -9635 -9642 -9650 -9652 -9654 -9656 -9660 -9662 -9664 -9666 -9670 -9673 -9675 -9676 -9678 -9682 -9698 -9702 -9711 -9712 -9733 -9735 -9737 -9738 -9742 -9744 -9748 -9750 -9756 -9757 -9758 -9759 -9792 -9793 -9794 -9795 -9824 -9826 -9827 -9830 -9831 -9835 -9836 -9838 -9839 -9840 -9886 -9888 -9918 -9920 -9924 -9934 -9935 -9954 -9955 -9956 -9960 -9984 -10045 -10046 -10071 -10072 -10102 -10112 -11093 -11098 -12872 -12880 -57344 -63744 -65024 -65040 -65533 -65534 -127232 -127243 -127248 -127278 -127280 -127338 -127344 -127387 -917760 -918000 -983040 -1048574 -1048576 -1114110 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ea/H.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ea/H.pl deleted file mode 100644 index 48a8ce7d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ea/H.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -8361 -8362 -65377 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65512 -65519 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ea/N.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ea/N.pl deleted file mode 100644 index 4074ea70..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ea/N.pl +++ /dev/null @@ -1,435 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V421 -0 -32 -127 -161 -169 -170 -171 -172 -181 -182 -187 -188 -192 -198 -199 -208 -209 -215 -217 -222 -226 -230 -231 -232 -235 -236 -238 -240 -241 -242 -244 -247 -251 -252 -253 -254 -255 -257 -258 -273 -274 -275 -276 -283 -284 -294 -296 -299 -300 -305 -308 -312 -313 -319 -323 -324 -325 -328 -332 -333 -334 -338 -340 -358 -360 -363 -364 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -477 -593 -594 -609 -610 -708 -709 -711 -712 -713 -716 -717 -718 -720 -721 -728 -732 -733 -734 -735 -736 -768 -880 -913 -930 -931 -938 -945 -962 -963 -970 -1025 -1026 -1040 -1104 -1105 -1106 -4352 -4448 -8208 -8209 -8211 -8215 -8216 -8218 -8220 -8222 -8224 -8227 -8228 -8232 -8240 -8241 -8242 -8244 -8245 -8246 -8251 -8252 -8254 -8255 -8308 -8309 -8319 -8320 -8321 -8325 -8361 -8362 -8364 -8365 -8451 -8452 -8453 -8454 -8457 -8458 -8467 -8468 -8470 -8471 -8481 -8483 -8486 -8487 -8491 -8492 -8531 -8533 -8539 -8543 -8544 -8556 -8560 -8570 -8585 -8586 -8592 -8602 -8632 -8634 -8658 -8659 -8660 -8661 -8679 -8680 -8704 -8705 -8706 -8708 -8711 -8713 -8715 -8716 -8719 -8720 -8721 -8722 -8725 -8726 -8730 -8731 -8733 -8737 -8739 -8740 -8741 -8742 -8743 -8749 -8750 -8751 -8756 -8760 -8764 -8766 -8776 -8777 -8780 -8781 -8786 -8787 -8800 -8802 -8804 -8808 -8810 -8812 -8814 -8816 -8834 -8836 -8838 -8840 -8853 -8854 -8857 -8858 -8869 -8870 -8895 -8896 -8978 -8979 -9001 -9003 -9312 -9450 -9451 -9548 -9552 -9588 -9600 -9616 -9618 -9622 -9632 -9634 -9635 -9642 -9650 -9652 -9654 -9656 -9660 -9662 -9664 -9666 -9670 -9673 -9675 -9676 -9678 -9682 -9698 -9702 -9711 -9712 -9733 -9735 -9737 -9738 -9742 -9744 -9748 -9750 -9756 -9757 -9758 -9759 -9792 -9793 -9794 -9795 -9824 -9826 -9827 -9830 -9831 -9835 -9836 -9838 -9839 -9840 -9886 -9888 -9918 -9920 -9924 -9934 -9935 -9954 -9955 -9956 -9960 -9984 -10045 -10046 -10071 -10072 -10102 -10112 -10214 -10222 -10629 -10631 -11093 -11098 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12351 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19904 -19968 -42125 -42128 -42183 -43360 -43389 -44032 -55204 -57344 -64256 -65024 -65050 -65072 -65107 -65108 -65127 -65128 -65132 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65533 -65534 -110592 -110594 -127232 -127243 -127248 -127278 -127280 -127338 -127344 -127387 -127488 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -131072 -196606 -196608 -262142 -917760 -918000 -983040 -1048574 -1048576 -1114110 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ea/Na.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ea/Na.pl deleted file mode 100644 index 2a900e62..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ea/Na.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -32 -127 -162 -164 -165 -167 -172 -173 -175 -176 -10214 -10222 -10629 -10631 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ea/W.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ea/W.pl deleted file mode 100644 index 6a5e5f21..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ea/W.pl +++ /dev/null @@ -1,80 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V66 -4352 -4448 -9001 -9003 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12289 -12351 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -12872 -12880 -13055 -13056 -19904 -19968 -42125 -42128 -42183 -43360 -43389 -44032 -55204 -63744 -64256 -65040 -65050 -65072 -65107 -65108 -65127 -65128 -65132 -110592 -110594 -127488 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -131072 -196606 -196608 -262142 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ext/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ext/Y.pl deleted file mode 100644 index 32f1d62c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ext/Y.pl +++ /dev/null @@ -1,66 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V52 -183 -184 -720 -722 -1600 -1601 -2042 -2043 -3654 -3655 -3782 -3783 -6154 -6155 -6211 -6212 -6823 -6824 -7222 -7223 -7291 -7292 -12293 -12294 -12337 -12342 -12445 -12447 -12540 -12543 -40981 -40982 -42508 -42509 -43471 -43472 -43494 -43495 -43632 -43633 -43741 -43742 -43763 -43765 -65392 -65393 -70493 -70494 -71110 -71113 -92994 -92996 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/CN.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/CN.pl deleted file mode 100644 index 95d24ec4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/CN.pl +++ /dev/null @@ -1,58 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V44 -0 -10 -11 -13 -14 -32 -127 -160 -173 -174 -1536 -1542 -1564 -1565 -1757 -1758 -1807 -1808 -6158 -6159 -8203 -8204 -8206 -8208 -8232 -8239 -8288 -8304 -55296 -57344 -65279 -65280 -65520 -65532 -69821 -69822 -113824 -113828 -119155 -119163 -917504 -917760 -918000 -921600 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/EX.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/EX.pl deleted file mode 100644 index 38b743db..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/EX.pl +++ /dev/null @@ -1,580 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V566 -768 -880 -1155 -1162 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1552 -1563 -1611 -1632 -1648 -1649 -1750 -1757 -1759 -1765 -1767 -1769 -1770 -1774 -1809 -1810 -1840 -1867 -1958 -1969 -2027 -2036 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2094 -2137 -2140 -2275 -2307 -2362 -2363 -2364 -2365 -2369 -2377 -2381 -2382 -2385 -2392 -2402 -2404 -2433 -2434 -2492 -2493 -2494 -2495 -2497 -2501 -2509 -2510 -2519 -2520 -2530 -2532 -2561 -2563 -2620 -2621 -2625 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2672 -2674 -2677 -2678 -2689 -2691 -2748 -2749 -2753 -2758 -2759 -2761 -2765 -2766 -2786 -2788 -2817 -2818 -2876 -2877 -2878 -2880 -2881 -2885 -2893 -2894 -2902 -2904 -2914 -2916 -2946 -2947 -3006 -3007 -3008 -3009 -3021 -3022 -3031 -3032 -3072 -3073 -3134 -3137 -3142 -3145 -3146 -3150 -3157 -3159 -3170 -3172 -3201 -3202 -3260 -3261 -3263 -3264 -3266 -3267 -3270 -3271 -3276 -3278 -3285 -3287 -3298 -3300 -3329 -3330 -3390 -3391 -3393 -3397 -3405 -3406 -3415 -3416 -3426 -3428 -3530 -3531 -3535 -3536 -3538 -3541 -3542 -3543 -3551 -3552 -3633 -3634 -3636 -3643 -3655 -3663 -3761 -3762 -3764 -3770 -3771 -3773 -3784 -3790 -3864 -3866 -3893 -3894 -3895 -3896 -3897 -3898 -3953 -3967 -3968 -3973 -3974 -3976 -3981 -3992 -3993 -4029 -4038 -4039 -4141 -4145 -4146 -4152 -4153 -4155 -4157 -4159 -4184 -4186 -4190 -4193 -4209 -4213 -4226 -4227 -4229 -4231 -4237 -4238 -4253 -4254 -4957 -4960 -5906 -5909 -5938 -5941 -5970 -5972 -6002 -6004 -6068 -6070 -6071 -6078 -6086 -6087 -6089 -6100 -6109 -6110 -6155 -6158 -6313 -6314 -6432 -6435 -6439 -6441 -6450 -6451 -6457 -6460 -6679 -6681 -6683 -6684 -6742 -6743 -6744 -6751 -6752 -6753 -6754 -6755 -6757 -6765 -6771 -6781 -6783 -6784 -6832 -6847 -6912 -6916 -6964 -6965 -6966 -6971 -6972 -6973 -6978 -6979 -7019 -7028 -7040 -7042 -7074 -7078 -7080 -7082 -7083 -7086 -7142 -7143 -7144 -7146 -7149 -7150 -7151 -7154 -7212 -7220 -7222 -7224 -7376 -7379 -7380 -7393 -7394 -7401 -7405 -7406 -7412 -7413 -7416 -7418 -7616 -7670 -7676 -7680 -8204 -8206 -8400 -8433 -11503 -11506 -11647 -11648 -11744 -11776 -12330 -12336 -12441 -12443 -42607 -42611 -42612 -42622 -42654 -42656 -42736 -42738 -43010 -43011 -43014 -43015 -43019 -43020 -43045 -43047 -43204 -43205 -43232 -43250 -43302 -43310 -43335 -43346 -43392 -43395 -43443 -43444 -43446 -43450 -43452 -43453 -43493 -43494 -43561 -43567 -43569 -43571 -43573 -43575 -43587 -43588 -43596 -43597 -43644 -43645 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43756 -43758 -43766 -43767 -44005 -44006 -44008 -44009 -44013 -44014 -64286 -64287 -65024 -65040 -65056 -65072 -65438 -65440 -66045 -66046 -66272 -66273 -66422 -66427 -68097 -68100 -68101 -68103 -68108 -68112 -68152 -68155 -68159 -68160 -68325 -68327 -69633 -69634 -69688 -69703 -69759 -69762 -69811 -69815 -69817 -69819 -69888 -69891 -69927 -69932 -69933 -69941 -70003 -70004 -70016 -70018 -70070 -70079 -70090 -70093 -70191 -70194 -70196 -70197 -70198 -70200 -70367 -70368 -70371 -70379 -70400 -70402 -70460 -70461 -70462 -70463 -70464 -70465 -70487 -70488 -70502 -70509 -70512 -70517 -70832 -70833 -70835 -70841 -70842 -70843 -70845 -70846 -70847 -70849 -70850 -70852 -71087 -71088 -71090 -71094 -71100 -71102 -71103 -71105 -71132 -71134 -71219 -71227 -71229 -71230 -71231 -71233 -71339 -71340 -71341 -71342 -71344 -71350 -71351 -71352 -71453 -71456 -71458 -71462 -71463 -71468 -92912 -92917 -92976 -92983 -94095 -94099 -113821 -113823 -119141 -119142 -119143 -119146 -119150 -119155 -119163 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -125136 -125143 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/LV.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/LV.pl deleted file mode 100644 index dd70b706..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/LV.pl +++ /dev/null @@ -1,812 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V798 -44032 -44033 -44060 -44061 -44088 -44089 -44116 -44117 -44144 -44145 -44172 -44173 -44200 -44201 -44228 -44229 -44256 -44257 -44284 -44285 -44312 -44313 -44340 -44341 -44368 -44369 -44396 -44397 -44424 -44425 -44452 -44453 -44480 -44481 -44508 -44509 -44536 -44537 -44564 -44565 -44592 -44593 -44620 -44621 -44648 -44649 -44676 -44677 -44704 -44705 -44732 -44733 -44760 -44761 -44788 -44789 -44816 -44817 -44844 -44845 -44872 -44873 -44900 -44901 -44928 -44929 -44956 -44957 -44984 -44985 -45012 -45013 -45040 -45041 -45068 -45069 -45096 -45097 -45124 -45125 -45152 -45153 -45180 -45181 -45208 -45209 -45236 -45237 -45264 -45265 -45292 -45293 -45320 -45321 -45348 -45349 -45376 -45377 -45404 -45405 -45432 -45433 -45460 -45461 -45488 -45489 -45516 -45517 -45544 -45545 -45572 -45573 -45600 -45601 -45628 -45629 -45656 -45657 -45684 -45685 -45712 -45713 -45740 -45741 -45768 -45769 -45796 -45797 -45824 -45825 -45852 -45853 -45880 -45881 -45908 -45909 -45936 -45937 -45964 -45965 -45992 -45993 -46020 -46021 -46048 -46049 -46076 -46077 -46104 -46105 -46132 -46133 -46160 -46161 -46188 -46189 -46216 -46217 -46244 -46245 -46272 -46273 -46300 -46301 -46328 -46329 -46356 -46357 -46384 -46385 -46412 -46413 -46440 -46441 -46468 -46469 -46496 -46497 -46524 -46525 -46552 -46553 -46580 -46581 -46608 -46609 -46636 -46637 -46664 -46665 -46692 -46693 -46720 -46721 -46748 -46749 -46776 -46777 -46804 -46805 -46832 -46833 -46860 -46861 -46888 -46889 -46916 -46917 -46944 -46945 -46972 -46973 -47000 -47001 -47028 -47029 -47056 -47057 -47084 -47085 -47112 -47113 -47140 -47141 -47168 -47169 -47196 -47197 -47224 -47225 -47252 -47253 -47280 -47281 -47308 -47309 -47336 -47337 -47364 -47365 -47392 -47393 -47420 -47421 -47448 -47449 -47476 -47477 -47504 -47505 -47532 -47533 -47560 -47561 -47588 -47589 -47616 -47617 -47644 -47645 -47672 -47673 -47700 -47701 -47728 -47729 -47756 -47757 -47784 -47785 -47812 -47813 -47840 -47841 -47868 -47869 -47896 -47897 -47924 -47925 -47952 -47953 -47980 -47981 -48008 -48009 -48036 -48037 -48064 -48065 -48092 -48093 -48120 -48121 -48148 -48149 -48176 -48177 -48204 -48205 -48232 -48233 -48260 -48261 -48288 -48289 -48316 -48317 -48344 -48345 -48372 -48373 -48400 -48401 -48428 -48429 -48456 -48457 -48484 -48485 -48512 -48513 -48540 -48541 -48568 -48569 -48596 -48597 -48624 -48625 -48652 -48653 -48680 -48681 -48708 -48709 -48736 -48737 -48764 -48765 -48792 -48793 -48820 -48821 -48848 -48849 -48876 -48877 -48904 -48905 -48932 -48933 -48960 -48961 -48988 -48989 -49016 -49017 -49044 -49045 -49072 -49073 -49100 -49101 -49128 -49129 -49156 -49157 -49184 -49185 -49212 -49213 -49240 -49241 -49268 -49269 -49296 -49297 -49324 -49325 -49352 -49353 -49380 -49381 -49408 -49409 -49436 -49437 -49464 -49465 -49492 -49493 -49520 -49521 -49548 -49549 -49576 -49577 -49604 -49605 -49632 -49633 -49660 -49661 -49688 -49689 -49716 -49717 -49744 -49745 -49772 -49773 -49800 -49801 -49828 -49829 -49856 -49857 -49884 -49885 -49912 -49913 -49940 -49941 -49968 -49969 -49996 -49997 -50024 -50025 -50052 -50053 -50080 -50081 -50108 -50109 -50136 -50137 -50164 -50165 -50192 -50193 -50220 -50221 -50248 -50249 -50276 -50277 -50304 -50305 -50332 -50333 -50360 -50361 -50388 -50389 -50416 -50417 -50444 -50445 -50472 -50473 -50500 -50501 -50528 -50529 -50556 -50557 -50584 -50585 -50612 -50613 -50640 -50641 -50668 -50669 -50696 -50697 -50724 -50725 -50752 -50753 -50780 -50781 -50808 -50809 -50836 -50837 -50864 -50865 -50892 -50893 -50920 -50921 -50948 -50949 -50976 -50977 -51004 -51005 -51032 -51033 -51060 -51061 -51088 -51089 -51116 -51117 -51144 -51145 -51172 -51173 -51200 -51201 -51228 -51229 -51256 -51257 -51284 -51285 -51312 -51313 -51340 -51341 -51368 -51369 -51396 -51397 -51424 -51425 -51452 -51453 -51480 -51481 -51508 -51509 -51536 -51537 -51564 -51565 -51592 -51593 -51620 -51621 -51648 -51649 -51676 -51677 -51704 -51705 -51732 -51733 -51760 -51761 -51788 -51789 -51816 -51817 -51844 -51845 -51872 -51873 -51900 -51901 -51928 -51929 -51956 -51957 -51984 -51985 -52012 -52013 -52040 -52041 -52068 -52069 -52096 -52097 -52124 -52125 -52152 -52153 -52180 -52181 -52208 -52209 -52236 -52237 -52264 -52265 -52292 -52293 -52320 -52321 -52348 -52349 -52376 -52377 -52404 -52405 -52432 -52433 -52460 -52461 -52488 -52489 -52516 -52517 -52544 -52545 -52572 -52573 -52600 -52601 -52628 -52629 -52656 -52657 -52684 -52685 -52712 -52713 -52740 -52741 -52768 -52769 -52796 -52797 -52824 -52825 -52852 -52853 -52880 -52881 -52908 -52909 -52936 -52937 -52964 -52965 -52992 -52993 -53020 -53021 -53048 -53049 -53076 -53077 -53104 -53105 -53132 -53133 -53160 -53161 -53188 -53189 -53216 -53217 -53244 -53245 -53272 -53273 -53300 -53301 -53328 -53329 -53356 -53357 -53384 -53385 -53412 -53413 -53440 -53441 -53468 -53469 -53496 -53497 -53524 -53525 -53552 -53553 -53580 -53581 -53608 -53609 -53636 -53637 -53664 -53665 -53692 -53693 -53720 -53721 -53748 -53749 -53776 -53777 -53804 -53805 -53832 -53833 -53860 -53861 -53888 -53889 -53916 -53917 -53944 -53945 -53972 -53973 -54000 -54001 -54028 -54029 -54056 -54057 -54084 -54085 -54112 -54113 -54140 -54141 -54168 -54169 -54196 -54197 -54224 -54225 -54252 -54253 -54280 -54281 -54308 -54309 -54336 -54337 -54364 -54365 -54392 -54393 -54420 -54421 -54448 -54449 -54476 -54477 -54504 -54505 -54532 -54533 -54560 -54561 -54588 -54589 -54616 -54617 -54644 -54645 -54672 -54673 -54700 -54701 -54728 -54729 -54756 -54757 -54784 -54785 -54812 -54813 -54840 -54841 -54868 -54869 -54896 -54897 -54924 -54925 -54952 -54953 -54980 -54981 -55008 -55009 -55036 -55037 -55064 -55065 -55092 -55093 -55120 -55121 -55148 -55149 -55176 -55177 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/LVT.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/LVT.pl deleted file mode 100644 index b752d89b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/LVT.pl +++ /dev/null @@ -1,812 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V798 -44033 -44060 -44061 -44088 -44089 -44116 -44117 -44144 -44145 -44172 -44173 -44200 -44201 -44228 -44229 -44256 -44257 -44284 -44285 -44312 -44313 -44340 -44341 -44368 -44369 -44396 -44397 -44424 -44425 -44452 -44453 -44480 -44481 -44508 -44509 -44536 -44537 -44564 -44565 -44592 -44593 -44620 -44621 -44648 -44649 -44676 -44677 -44704 -44705 -44732 -44733 -44760 -44761 -44788 -44789 -44816 -44817 -44844 -44845 -44872 -44873 -44900 -44901 -44928 -44929 -44956 -44957 -44984 -44985 -45012 -45013 -45040 -45041 -45068 -45069 -45096 -45097 -45124 -45125 -45152 -45153 -45180 -45181 -45208 -45209 -45236 -45237 -45264 -45265 -45292 -45293 -45320 -45321 -45348 -45349 -45376 -45377 -45404 -45405 -45432 -45433 -45460 -45461 -45488 -45489 -45516 -45517 -45544 -45545 -45572 -45573 -45600 -45601 -45628 -45629 -45656 -45657 -45684 -45685 -45712 -45713 -45740 -45741 -45768 -45769 -45796 -45797 -45824 -45825 -45852 -45853 -45880 -45881 -45908 -45909 -45936 -45937 -45964 -45965 -45992 -45993 -46020 -46021 -46048 -46049 -46076 -46077 -46104 -46105 -46132 -46133 -46160 -46161 -46188 -46189 -46216 -46217 -46244 -46245 -46272 -46273 -46300 -46301 -46328 -46329 -46356 -46357 -46384 -46385 -46412 -46413 -46440 -46441 -46468 -46469 -46496 -46497 -46524 -46525 -46552 -46553 -46580 -46581 -46608 -46609 -46636 -46637 -46664 -46665 -46692 -46693 -46720 -46721 -46748 -46749 -46776 -46777 -46804 -46805 -46832 -46833 -46860 -46861 -46888 -46889 -46916 -46917 -46944 -46945 -46972 -46973 -47000 -47001 -47028 -47029 -47056 -47057 -47084 -47085 -47112 -47113 -47140 -47141 -47168 -47169 -47196 -47197 -47224 -47225 -47252 -47253 -47280 -47281 -47308 -47309 -47336 -47337 -47364 -47365 -47392 -47393 -47420 -47421 -47448 -47449 -47476 -47477 -47504 -47505 -47532 -47533 -47560 -47561 -47588 -47589 -47616 -47617 -47644 -47645 -47672 -47673 -47700 -47701 -47728 -47729 -47756 -47757 -47784 -47785 -47812 -47813 -47840 -47841 -47868 -47869 -47896 -47897 -47924 -47925 -47952 -47953 -47980 -47981 -48008 -48009 -48036 -48037 -48064 -48065 -48092 -48093 -48120 -48121 -48148 -48149 -48176 -48177 -48204 -48205 -48232 -48233 -48260 -48261 -48288 -48289 -48316 -48317 -48344 -48345 -48372 -48373 -48400 -48401 -48428 -48429 -48456 -48457 -48484 -48485 -48512 -48513 -48540 -48541 -48568 -48569 -48596 -48597 -48624 -48625 -48652 -48653 -48680 -48681 -48708 -48709 -48736 -48737 -48764 -48765 -48792 -48793 -48820 -48821 -48848 -48849 -48876 -48877 -48904 -48905 -48932 -48933 -48960 -48961 -48988 -48989 -49016 -49017 -49044 -49045 -49072 -49073 -49100 -49101 -49128 -49129 -49156 -49157 -49184 -49185 -49212 -49213 -49240 -49241 -49268 -49269 -49296 -49297 -49324 -49325 -49352 -49353 -49380 -49381 -49408 -49409 -49436 -49437 -49464 -49465 -49492 -49493 -49520 -49521 -49548 -49549 -49576 -49577 -49604 -49605 -49632 -49633 -49660 -49661 -49688 -49689 -49716 -49717 -49744 -49745 -49772 -49773 -49800 -49801 -49828 -49829 -49856 -49857 -49884 -49885 -49912 -49913 -49940 -49941 -49968 -49969 -49996 -49997 -50024 -50025 -50052 -50053 -50080 -50081 -50108 -50109 -50136 -50137 -50164 -50165 -50192 -50193 -50220 -50221 -50248 -50249 -50276 -50277 -50304 -50305 -50332 -50333 -50360 -50361 -50388 -50389 -50416 -50417 -50444 -50445 -50472 -50473 -50500 -50501 -50528 -50529 -50556 -50557 -50584 -50585 -50612 -50613 -50640 -50641 -50668 -50669 -50696 -50697 -50724 -50725 -50752 -50753 -50780 -50781 -50808 -50809 -50836 -50837 -50864 -50865 -50892 -50893 -50920 -50921 -50948 -50949 -50976 -50977 -51004 -51005 -51032 -51033 -51060 -51061 -51088 -51089 -51116 -51117 -51144 -51145 -51172 -51173 -51200 -51201 -51228 -51229 -51256 -51257 -51284 -51285 -51312 -51313 -51340 -51341 -51368 -51369 -51396 -51397 -51424 -51425 -51452 -51453 -51480 -51481 -51508 -51509 -51536 -51537 -51564 -51565 -51592 -51593 -51620 -51621 -51648 -51649 -51676 -51677 -51704 -51705 -51732 -51733 -51760 -51761 -51788 -51789 -51816 -51817 -51844 -51845 -51872 -51873 -51900 -51901 -51928 -51929 -51956 -51957 -51984 -51985 -52012 -52013 -52040 -52041 -52068 -52069 -52096 -52097 -52124 -52125 -52152 -52153 -52180 -52181 -52208 -52209 -52236 -52237 -52264 -52265 -52292 -52293 -52320 -52321 -52348 -52349 -52376 -52377 -52404 -52405 -52432 -52433 -52460 -52461 -52488 -52489 -52516 -52517 -52544 -52545 -52572 -52573 -52600 -52601 -52628 -52629 -52656 -52657 -52684 -52685 -52712 -52713 -52740 -52741 -52768 -52769 -52796 -52797 -52824 -52825 -52852 -52853 -52880 -52881 -52908 -52909 -52936 -52937 -52964 -52965 -52992 -52993 -53020 -53021 -53048 -53049 -53076 -53077 -53104 -53105 -53132 -53133 -53160 -53161 -53188 -53189 -53216 -53217 -53244 -53245 -53272 -53273 -53300 -53301 -53328 -53329 -53356 -53357 -53384 -53385 -53412 -53413 -53440 -53441 -53468 -53469 -53496 -53497 -53524 -53525 -53552 -53553 -53580 -53581 -53608 -53609 -53636 -53637 -53664 -53665 -53692 -53693 -53720 -53721 -53748 -53749 -53776 -53777 -53804 -53805 -53832 -53833 -53860 -53861 -53888 -53889 -53916 -53917 -53944 -53945 -53972 -53973 -54000 -54001 -54028 -54029 -54056 -54057 -54084 -54085 -54112 -54113 -54140 -54141 -54168 -54169 -54196 -54197 -54224 -54225 -54252 -54253 -54280 -54281 -54308 -54309 -54336 -54337 -54364 -54365 -54392 -54393 -54420 -54421 -54448 -54449 -54476 -54477 -54504 -54505 -54532 -54533 -54560 -54561 -54588 -54589 -54616 -54617 -54644 -54645 -54672 -54673 -54700 -54701 -54728 -54729 -54756 -54757 -54784 -54785 -54812 -54813 -54840 -54841 -54868 -54869 -54896 -54897 -54924 -54925 -54952 -54953 -54980 -54981 -55008 -55009 -55036 -55037 -55064 -55065 -55092 -55093 -55120 -55121 -55148 -55149 -55176 -55177 -55204 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/SM.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/SM.pl deleted file mode 100644 index 5cfeb741..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/SM.pl +++ /dev/null @@ -1,278 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V264 -2307 -2308 -2363 -2364 -2366 -2369 -2377 -2381 -2382 -2384 -2434 -2436 -2495 -2497 -2503 -2505 -2507 -2509 -2563 -2564 -2622 -2625 -2691 -2692 -2750 -2753 -2761 -2762 -2763 -2765 -2818 -2820 -2880 -2881 -2887 -2889 -2891 -2893 -3007 -3008 -3009 -3011 -3014 -3017 -3018 -3021 -3073 -3076 -3137 -3141 -3202 -3204 -3262 -3263 -3264 -3266 -3267 -3269 -3271 -3273 -3274 -3276 -3330 -3332 -3391 -3393 -3398 -3401 -3402 -3405 -3458 -3460 -3536 -3538 -3544 -3551 -3570 -3572 -3635 -3636 -3763 -3764 -3902 -3904 -3967 -3968 -4145 -4146 -4155 -4157 -4182 -4184 -4228 -4229 -6070 -6071 -6078 -6086 -6087 -6089 -6435 -6439 -6441 -6444 -6448 -6450 -6451 -6457 -6681 -6683 -6741 -6742 -6743 -6744 -6765 -6771 -6916 -6917 -6965 -6966 -6971 -6972 -6973 -6978 -6979 -6981 -7042 -7043 -7073 -7074 -7078 -7080 -7082 -7083 -7143 -7144 -7146 -7149 -7150 -7151 -7154 -7156 -7204 -7212 -7220 -7222 -7393 -7394 -7410 -7412 -43043 -43045 -43047 -43048 -43136 -43138 -43188 -43204 -43346 -43348 -43395 -43396 -43444 -43446 -43450 -43452 -43453 -43457 -43567 -43569 -43571 -43573 -43597 -43598 -43755 -43756 -43758 -43760 -43765 -43766 -44003 -44005 -44006 -44008 -44009 -44011 -44012 -44013 -69632 -69633 -69634 -69635 -69762 -69763 -69808 -69811 -69815 -69817 -69932 -69933 -70018 -70019 -70067 -70070 -70079 -70081 -70188 -70191 -70194 -70196 -70197 -70198 -70368 -70371 -70402 -70404 -70463 -70464 -70465 -70469 -70471 -70473 -70475 -70478 -70498 -70500 -70833 -70835 -70841 -70842 -70843 -70845 -70846 -70847 -70849 -70850 -71088 -71090 -71096 -71100 -71102 -71103 -71216 -71219 -71227 -71229 -71230 -71231 -71340 -71341 -71342 -71344 -71350 -71351 -71456 -71458 -71462 -71463 -94033 -94079 -119142 -119143 -119149 -119150 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/XX.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/XX.pl deleted file mode 100644 index 4530b30b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GCB/XX.pl +++ /dev/null @@ -1,529 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V515 -32 -127 -160 -173 -174 -768 -880 -1155 -1162 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1536 -1542 -1552 -1563 -1564 -1565 -1611 -1632 -1648 -1649 -1750 -1758 -1759 -1765 -1767 -1769 -1770 -1774 -1807 -1808 -1809 -1810 -1840 -1867 -1958 -1969 -2027 -2036 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2094 -2137 -2140 -2275 -2308 -2362 -2365 -2366 -2384 -2385 -2392 -2402 -2404 -2433 -2436 -2492 -2493 -2494 -2501 -2503 -2505 -2507 -2510 -2519 -2520 -2530 -2532 -2561 -2564 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2672 -2674 -2677 -2678 -2689 -2692 -2748 -2749 -2750 -2758 -2759 -2762 -2763 -2766 -2786 -2788 -2817 -2820 -2876 -2877 -2878 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2914 -2916 -2946 -2947 -3006 -3011 -3014 -3017 -3018 -3022 -3031 -3032 -3072 -3076 -3134 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3170 -3172 -3201 -3204 -3260 -3261 -3262 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3298 -3300 -3329 -3332 -3390 -3397 -3398 -3401 -3402 -3406 -3415 -3416 -3426 -3428 -3458 -3460 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3572 -3633 -3634 -3635 -3643 -3655 -3663 -3761 -3762 -3763 -3770 -3771 -3773 -3784 -3790 -3864 -3866 -3893 -3894 -3895 -3896 -3897 -3898 -3902 -3904 -3953 -3973 -3974 -3976 -3981 -3992 -3993 -4029 -4038 -4039 -4141 -4152 -4153 -4159 -4182 -4186 -4190 -4193 -4209 -4213 -4226 -4227 -4228 -4231 -4237 -4238 -4253 -4254 -4352 -4608 -4957 -4960 -5906 -5909 -5938 -5941 -5970 -5972 -6002 -6004 -6068 -6100 -6109 -6110 -6155 -6159 -6313 -6314 -6432 -6444 -6448 -6460 -6679 -6684 -6741 -6751 -6752 -6753 -6754 -6755 -6757 -6781 -6783 -6784 -6832 -6847 -6912 -6917 -6964 -6981 -7019 -7028 -7040 -7043 -7073 -7086 -7142 -7156 -7204 -7224 -7376 -7379 -7380 -7401 -7405 -7406 -7410 -7413 -7416 -7418 -7616 -7670 -7676 -7680 -8203 -8208 -8232 -8239 -8288 -8304 -8400 -8433 -11503 -11506 -11647 -11648 -11744 -11776 -12330 -12336 -12441 -12443 -42607 -42611 -42612 -42622 -42654 -42656 -42736 -42738 -43010 -43011 -43014 -43015 -43019 -43020 -43043 -43048 -43136 -43138 -43188 -43205 -43232 -43250 -43302 -43310 -43335 -43348 -43360 -43389 -43392 -43396 -43443 -43457 -43493 -43494 -43561 -43575 -43587 -43588 -43596 -43598 -43644 -43645 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43755 -43760 -43765 -43767 -44003 -44011 -44012 -44014 -44032 -55204 -55216 -55239 -55243 -55292 -55296 -57344 -64286 -64287 -65024 -65040 -65056 -65072 -65279 -65280 -65438 -65440 -65520 -65532 -66045 -66046 -66272 -66273 -66422 -66427 -68097 -68100 -68101 -68103 -68108 -68112 -68152 -68155 -68159 -68160 -68325 -68327 -69632 -69635 -69688 -69703 -69759 -69763 -69808 -69819 -69821 -69822 -69888 -69891 -69927 -69941 -70003 -70004 -70016 -70019 -70067 -70081 -70090 -70093 -70188 -70200 -70367 -70379 -70400 -70404 -70460 -70461 -70462 -70469 -70471 -70473 -70475 -70478 -70487 -70488 -70498 -70500 -70502 -70509 -70512 -70517 -70832 -70852 -71087 -71094 -71096 -71105 -71132 -71134 -71216 -71233 -71339 -71352 -71453 -71468 -92912 -92917 -92976 -92983 -94033 -94079 -94095 -94099 -113821 -113823 -113824 -113828 -119141 -119146 -119149 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -125136 -125143 -127462 -127488 -917504 -921600 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/C.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/C.pl deleted file mode 100644 index 8b298dde..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/C.pl +++ /dev/null @@ -1,1245 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1231 -0 -32 -127 -160 -173 -174 -888 -890 -896 -900 -907 -908 -909 -910 -930 -931 -1328 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1421 -1424 -1425 -1480 -1488 -1515 -1520 -1525 -1542 -1564 -1566 -1757 -1758 -1806 -1808 -1867 -1869 -1970 -1984 -2043 -2048 -2094 -2096 -2111 -2112 -2140 -2142 -2143 -2208 -2229 -2275 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2802 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3192 -3200 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3912 -3913 -3949 -3953 -3992 -3993 -4029 -4030 -4045 -4046 -4059 -4096 -4294 -4295 -4296 -4301 -4302 -4304 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4989 -4992 -5018 -5024 -5110 -5112 -5118 -5120 -5789 -5792 -5881 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6158 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6684 -6686 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -6832 -6847 -6912 -6988 -6992 -7037 -7040 -7156 -7164 -7224 -7227 -7242 -7245 -7296 -7360 -7368 -7376 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8203 -8208 -8234 -8239 -8288 -8304 -8306 -8308 -8335 -8336 -8349 -8352 -8383 -8400 -8433 -8448 -8588 -8592 -9211 -9216 -9255 -9280 -9291 -9312 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11264 -11311 -11312 -11359 -11360 -11508 -11513 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11633 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11843 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19894 -19904 -40918 -40960 -42125 -42128 -42183 -42192 -42540 -42560 -42744 -42752 -42926 -42928 -42936 -42999 -43052 -43056 -43066 -43072 -43128 -43136 -43205 -43214 -43226 -43232 -43262 -43264 -43348 -43359 -43389 -43392 -43470 -43471 -43482 -43486 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43715 -43739 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43878 -43888 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64450 -64467 -64832 -64848 -64912 -64914 -64968 -65008 -65022 -65024 -65050 -65056 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65532 -65534 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65933 -65936 -65948 -65952 -65953 -66000 -66046 -66176 -66205 -66208 -66257 -66272 -66300 -66304 -66340 -66352 -66379 -66384 -66427 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -66927 -66928 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67743 -67751 -67760 -67808 -67827 -67828 -67830 -67835 -67868 -67871 -67898 -67903 -67904 -67968 -68024 -68028 -68048 -68050 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -68192 -68256 -68288 -68327 -68331 -68343 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68498 -68505 -68509 -68521 -68528 -68608 -68681 -68736 -68787 -68800 -68851 -68858 -68864 -69216 -69247 -69632 -69710 -69714 -69744 -69759 -69821 -69822 -69826 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69956 -69968 -70007 -70016 -70094 -70096 -70112 -70113 -70133 -70144 -70162 -70163 -70206 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70314 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70856 -70864 -70874 -71040 -71094 -71096 -71134 -71168 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71488 -71840 -71923 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74864 -74869 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92782 -92784 -92880 -92910 -92912 -92918 -92928 -92998 -93008 -93018 -93019 -93026 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113820 -113824 -118784 -119030 -119040 -119079 -119081 -119155 -119163 -119273 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -121484 -121499 -121504 -121505 -121520 -124928 -125125 -125127 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127232 -127245 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Cf.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Cf.pl deleted file mode 100644 index 8e17ab98..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Cf.pl +++ /dev/null @@ -1,48 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V34 -173 -174 -1536 -1542 -1564 -1565 -1757 -1758 -1807 -1808 -6158 -6159 -8203 -8208 -8234 -8239 -8288 -8293 -8294 -8304 -65279 -65280 -65529 -65532 -69821 -69822 -113824 -113828 -119155 -119163 -917505 -917506 -917536 -917632 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Cn.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Cn.pl deleted file mode 100644 index a43420d0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Cn.pl +++ /dev/null @@ -1,1239 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1225 -888 -890 -896 -900 -907 -908 -909 -910 -930 -931 -1328 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1421 -1424 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1565 -1566 -1806 -1807 -1867 -1869 -1970 -1984 -2043 -2048 -2094 -2096 -2111 -2112 -2140 -2142 -2143 -2208 -2229 -2275 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2802 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3192 -3200 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3912 -3913 -3949 -3953 -3992 -3993 -4029 -4030 -4045 -4046 -4059 -4096 -4294 -4295 -4296 -4301 -4302 -4304 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4989 -4992 -5018 -5024 -5110 -5112 -5118 -5120 -5789 -5792 -5881 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6684 -6686 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -6832 -6847 -6912 -6988 -6992 -7037 -7040 -7156 -7164 -7224 -7227 -7242 -7245 -7296 -7360 -7368 -7376 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8293 -8294 -8306 -8308 -8335 -8336 -8349 -8352 -8383 -8400 -8433 -8448 -8588 -8592 -9211 -9216 -9255 -9280 -9291 -9312 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11264 -11311 -11312 -11359 -11360 -11508 -11513 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11633 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11843 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19894 -19904 -40918 -40960 -42125 -42128 -42183 -42192 -42540 -42560 -42744 -42752 -42926 -42928 -42936 -42999 -43052 -43056 -43066 -43072 -43128 -43136 -43205 -43214 -43226 -43232 -43262 -43264 -43348 -43359 -43389 -43392 -43470 -43471 -43482 -43486 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43715 -43739 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43878 -43888 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -55296 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64450 -64467 -64832 -64848 -64912 -64914 -64968 -65008 -65022 -65024 -65050 -65056 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65534 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65933 -65936 -65948 -65952 -65953 -66000 -66046 -66176 -66205 -66208 -66257 -66272 -66300 -66304 -66340 -66352 -66379 -66384 -66427 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -66927 -66928 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67743 -67751 -67760 -67808 -67827 -67828 -67830 -67835 -67868 -67871 -67898 -67903 -67904 -67968 -68024 -68028 -68048 -68050 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -68192 -68256 -68288 -68327 -68331 -68343 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68498 -68505 -68509 -68521 -68528 -68608 -68681 -68736 -68787 -68800 -68851 -68858 -68864 -69216 -69247 -69632 -69710 -69714 -69744 -69759 -69826 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69956 -69968 -70007 -70016 -70094 -70096 -70112 -70113 -70133 -70144 -70162 -70163 -70206 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70314 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70856 -70864 -70874 -71040 -71094 -71096 -71134 -71168 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71488 -71840 -71923 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74864 -74869 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92782 -92784 -92880 -92910 -92912 -92918 -92928 -92998 -93008 -93018 -93019 -93026 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113820 -113828 -118784 -119030 -119040 -119079 -119081 -119273 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -121484 -121499 -121504 -121505 -121520 -124928 -125125 -125127 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127232 -127245 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -917505 -917506 -917536 -917632 -917760 -918000 -983040 -1048574 -1048576 -1114110 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/L.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/L.pl deleted file mode 100644 index 6fa8f24c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/L.pl +++ /dev/null @@ -1,1122 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1108 -65 -91 -97 -123 -170 -171 -181 -182 -186 -187 -192 -215 -216 -247 -248 -706 -710 -722 -736 -741 -748 -749 -750 -751 -880 -885 -886 -888 -890 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1162 -1328 -1329 -1367 -1369 -1370 -1377 -1416 -1488 -1515 -1520 -1523 -1568 -1611 -1646 -1648 -1649 -1748 -1749 -1750 -1765 -1767 -1774 -1776 -1786 -1789 -1791 -1792 -1808 -1809 -1810 -1840 -1869 -1958 -1969 -1970 -1994 -2027 -2036 -2038 -2042 -2043 -2048 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2112 -2137 -2208 -2229 -2308 -2362 -2365 -2366 -2384 -2385 -2392 -2402 -2417 -2433 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2493 -2494 -2510 -2511 -2524 -2526 -2527 -2530 -2544 -2546 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2649 -2653 -2654 -2655 -2674 -2677 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2749 -2750 -2768 -2769 -2784 -2786 -2809 -2810 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2877 -2878 -2908 -2910 -2911 -2914 -2929 -2930 -2947 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3024 -3025 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3134 -3160 -3163 -3168 -3170 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3261 -3262 -3294 -3295 -3296 -3298 -3313 -3315 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3390 -3406 -3407 -3423 -3426 -3450 -3456 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3585 -3633 -3634 -3636 -3648 -3655 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3761 -3762 -3764 -3773 -3774 -3776 -3781 -3782 -3783 -3804 -3808 -3840 -3841 -3904 -3912 -3913 -3949 -3976 -3981 -4096 -4139 -4159 -4160 -4176 -4182 -4186 -4190 -4193 -4194 -4197 -4199 -4206 -4209 -4213 -4226 -4238 -4239 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4992 -5008 -5024 -5110 -5112 -5118 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5873 -5881 -5888 -5901 -5902 -5906 -5920 -5938 -5952 -5970 -5984 -5997 -5998 -6001 -6016 -6068 -6103 -6104 -6108 -6109 -6176 -6264 -6272 -6313 -6314 -6315 -6320 -6390 -6400 -6431 -6480 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6656 -6679 -6688 -6741 -6823 -6824 -6917 -6964 -6981 -6988 -7043 -7073 -7086 -7088 -7098 -7142 -7168 -7204 -7245 -7248 -7258 -7294 -7401 -7405 -7406 -7410 -7413 -7415 -7424 -7616 -7680 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8305 -8306 -8319 -8320 -8336 -8349 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8579 -8581 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11503 -11506 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11823 -11824 -12293 -12295 -12337 -12342 -12347 -12349 -12353 -12439 -12445 -12448 -12449 -12539 -12540 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13312 -19894 -19968 -40918 -40960 -42125 -42192 -42238 -42240 -42509 -42512 -42528 -42538 -42540 -42560 -42607 -42623 -42654 -42656 -42726 -42775 -42784 -42786 -42889 -42891 -42926 -42928 -42936 -42999 -43010 -43011 -43014 -43015 -43019 -43020 -43043 -43072 -43124 -43138 -43188 -43250 -43256 -43259 -43260 -43261 -43262 -43274 -43302 -43312 -43335 -43360 -43389 -43396 -43443 -43471 -43472 -43488 -43493 -43494 -43504 -43514 -43519 -43520 -43561 -43584 -43587 -43588 -43596 -43616 -43639 -43642 -43643 -43646 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43715 -43739 -43742 -43744 -43755 -43762 -43765 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43867 -43868 -43878 -43888 -44003 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64286 -64287 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65020 -65136 -65141 -65142 -65277 -65313 -65339 -65345 -65371 -65382 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -66176 -66205 -66208 -66257 -66304 -66336 -66352 -66369 -66370 -66378 -66384 -66422 -66432 -66462 -66464 -66500 -66504 -66512 -66560 -66718 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68097 -68112 -68116 -68117 -68120 -68121 -68148 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68325 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -68736 -68787 -68800 -68851 -69635 -69688 -69763 -69808 -69840 -69865 -69891 -69927 -69968 -70003 -70006 -70007 -70019 -70067 -70081 -70085 -70106 -70107 -70108 -70109 -70144 -70162 -70163 -70188 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70367 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70461 -70462 -70480 -70481 -70493 -70498 -70784 -70832 -70852 -70854 -70855 -70856 -71040 -71087 -71128 -71132 -71168 -71216 -71236 -71237 -71296 -71339 -71424 -71450 -71840 -71904 -71935 -71936 -72384 -72441 -73728 -74650 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92880 -92910 -92928 -92976 -92992 -92996 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94033 -94099 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -124928 -125125 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/LC.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/LC.pl deleted file mode 100644 index 5945033f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/LC.pl +++ /dev/null @@ -1,258 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V244 -65 -91 -97 -123 -181 -182 -192 -215 -216 -247 -248 -443 -444 -448 -452 -660 -661 -688 -880 -884 -886 -888 -891 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1162 -1328 -1329 -1367 -1377 -1416 -4256 -4294 -4295 -4296 -4301 -4302 -5024 -5110 -5112 -5118 -7424 -7468 -7531 -7544 -7545 -7579 -7680 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8501 -8505 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8579 -8581 -11264 -11311 -11312 -11359 -11360 -11388 -11390 -11493 -11499 -11503 -11506 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -42560 -42606 -42624 -42652 -42786 -42864 -42865 -42888 -42891 -42895 -42896 -42926 -42928 -42936 -43002 -43003 -43824 -43867 -43872 -43878 -43888 -43968 -64256 -64263 -64275 -64280 -65313 -65339 -65345 -65371 -66560 -66640 -68736 -68787 -68800 -68851 -71840 -71904 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Ll.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Ll.pl deleted file mode 100644 index ca177ad7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Ll.pl +++ /dev/null @@ -1,1274 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1260 -97 -123 -181 -182 -223 -247 -248 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -378 -379 -380 -381 -382 -385 -387 -388 -389 -390 -392 -393 -396 -398 -402 -403 -405 -406 -409 -412 -414 -415 -417 -418 -419 -420 -421 -422 -424 -425 -426 -428 -429 -430 -432 -433 -436 -437 -438 -439 -441 -443 -445 -448 -454 -455 -457 -458 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -497 -499 -500 -501 -502 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -570 -572 -573 -575 -577 -578 -579 -583 -584 -585 -586 -587 -588 -589 -590 -591 -660 -661 -688 -881 -882 -883 -884 -887 -888 -891 -894 -912 -913 -940 -975 -976 -978 -981 -984 -985 -986 -987 -988 -989 -990 -991 -992 -993 -994 -995 -996 -997 -998 -999 -1000 -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1012 -1013 -1014 -1016 -1017 -1019 -1021 -1072 -1120 -1121 -1122 -1123 -1124 -1125 -1126 -1127 -1128 -1129 -1130 -1131 -1132 -1133 -1134 -1135 -1136 -1137 -1138 -1139 -1140 -1141 -1142 -1143 -1144 -1145 -1146 -1147 -1148 -1149 -1150 -1151 -1152 -1153 -1154 -1163 -1164 -1165 -1166 -1167 -1168 -1169 -1170 -1171 -1172 -1173 -1174 -1175 -1176 -1177 -1178 -1179 -1180 -1181 -1182 -1183 -1184 -1185 -1186 -1187 -1188 -1189 -1190 -1191 -1192 -1193 -1194 -1195 -1196 -1197 -1198 -1199 -1200 -1201 -1202 -1203 -1204 -1205 -1206 -1207 -1208 -1209 -1210 -1211 -1212 -1213 -1214 -1215 -1216 -1218 -1219 -1220 -1221 -1222 -1223 -1224 -1225 -1226 -1227 -1228 -1229 -1230 -1232 -1233 -1234 -1235 -1236 -1237 -1238 -1239 -1240 -1241 -1242 -1243 -1244 -1245 -1246 -1247 -1248 -1249 -1250 -1251 -1252 -1253 -1254 -1255 -1256 -1257 -1258 -1259 -1260 -1261 -1262 -1263 -1264 -1265 -1266 -1267 -1268 -1269 -1270 -1271 -1272 -1273 -1274 -1275 -1276 -1277 -1278 -1279 -1280 -1281 -1282 -1283 -1284 -1285 -1286 -1287 -1288 -1289 -1290 -1291 -1292 -1293 -1294 -1295 -1296 -1297 -1298 -1299 -1300 -1301 -1302 -1303 -1304 -1305 -1306 -1307 -1308 -1309 -1310 -1311 -1312 -1313 -1314 -1315 -1316 -1317 -1318 -1319 -1320 -1321 -1322 -1323 -1324 -1325 -1326 -1327 -1328 -1377 -1416 -5112 -5118 -7424 -7468 -7531 -7544 -7545 -7579 -7681 -7682 -7683 -7684 -7685 -7686 -7687 -7688 -7689 -7690 -7691 -7692 -7693 -7694 -7695 -7696 -7697 -7698 -7699 -7700 -7701 -7702 -7703 -7704 -7705 -7706 -7707 -7708 -7709 -7710 -7711 -7712 -7713 -7714 -7715 -7716 -7717 -7718 -7719 -7720 -7721 -7722 -7723 -7724 -7725 -7726 -7727 -7728 -7729 -7730 -7731 -7732 -7733 -7734 -7735 -7736 -7737 -7738 -7739 -7740 -7741 -7742 -7743 -7744 -7745 -7746 -7747 -7748 -7749 -7750 -7751 -7752 -7753 -7754 -7755 -7756 -7757 -7758 -7759 -7760 -7761 -7762 -7763 -7764 -7765 -7766 -7767 -7768 -7769 -7770 -7771 -7772 -7773 -7774 -7775 -7776 -7777 -7778 -7779 -7780 -7781 -7782 -7783 -7784 -7785 -7786 -7787 -7788 -7789 -7790 -7791 -7792 -7793 -7794 -7795 -7796 -7797 -7798 -7799 -7800 -7801 -7802 -7803 -7804 -7805 -7806 -7807 -7808 -7809 -7810 -7811 -7812 -7813 -7814 -7815 -7816 -7817 -7818 -7819 -7820 -7821 -7822 -7823 -7824 -7825 -7826 -7827 -7828 -7829 -7838 -7839 -7840 -7841 -7842 -7843 -7844 -7845 -7846 -7847 -7848 -7849 -7850 -7851 -7852 -7853 -7854 -7855 -7856 -7857 -7858 -7859 -7860 -7861 -7862 -7863 -7864 -7865 -7866 -7867 -7868 -7869 -7870 -7871 -7872 -7873 -7874 -7875 -7876 -7877 -7878 -7879 -7880 -7881 -7882 -7883 -7884 -7885 -7886 -7887 -7888 -7889 -7890 -7891 -7892 -7893 -7894 -7895 -7896 -7897 -7898 -7899 -7900 -7901 -7902 -7903 -7904 -7905 -7906 -7907 -7908 -7909 -7910 -7911 -7912 -7913 -7914 -7915 -7916 -7917 -7918 -7919 -7920 -7921 -7922 -7923 -7924 -7925 -7926 -7927 -7928 -7929 -7930 -7931 -7932 -7933 -7934 -7935 -7944 -7952 -7958 -7968 -7976 -7984 -7992 -8000 -8006 -8016 -8024 -8032 -8040 -8048 -8062 -8064 -8072 -8080 -8088 -8096 -8104 -8112 -8117 -8118 -8120 -8126 -8127 -8130 -8133 -8134 -8136 -8144 -8148 -8150 -8152 -8160 -8168 -8178 -8181 -8182 -8184 -8458 -8459 -8462 -8464 -8467 -8468 -8495 -8496 -8500 -8501 -8505 -8506 -8508 -8510 -8518 -8522 -8526 -8527 -8580 -8581 -11312 -11359 -11361 -11362 -11365 -11367 -11368 -11369 -11370 -11371 -11372 -11373 -11377 -11378 -11379 -11381 -11382 -11388 -11393 -11394 -11395 -11396 -11397 -11398 -11399 -11400 -11401 -11402 -11403 -11404 -11405 -11406 -11407 -11408 -11409 -11410 -11411 -11412 -11413 -11414 -11415 -11416 -11417 -11418 -11419 -11420 -11421 -11422 -11423 -11424 -11425 -11426 -11427 -11428 -11429 -11430 -11431 -11432 -11433 -11434 -11435 -11436 -11437 -11438 -11439 -11440 -11441 -11442 -11443 -11444 -11445 -11446 -11447 -11448 -11449 -11450 -11451 -11452 -11453 -11454 -11455 -11456 -11457 -11458 -11459 -11460 -11461 -11462 -11463 -11464 -11465 -11466 -11467 -11468 -11469 -11470 -11471 -11472 -11473 -11474 -11475 -11476 -11477 -11478 -11479 -11480 -11481 -11482 -11483 -11484 -11485 -11486 -11487 -11488 -11489 -11490 -11491 -11493 -11500 -11501 -11502 -11503 -11507 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -42561 -42562 -42563 -42564 -42565 -42566 -42567 -42568 -42569 -42570 -42571 -42572 -42573 -42574 -42575 -42576 -42577 -42578 -42579 -42580 -42581 -42582 -42583 -42584 -42585 -42586 -42587 -42588 -42589 -42590 -42591 -42592 -42593 -42594 -42595 -42596 -42597 -42598 -42599 -42600 -42601 -42602 -42603 -42604 -42605 -42606 -42625 -42626 -42627 -42628 -42629 -42630 -42631 -42632 -42633 -42634 -42635 -42636 -42637 -42638 -42639 -42640 -42641 -42642 -42643 -42644 -42645 -42646 -42647 -42648 -42649 -42650 -42651 -42652 -42787 -42788 -42789 -42790 -42791 -42792 -42793 -42794 -42795 -42796 -42797 -42798 -42799 -42802 -42803 -42804 -42805 -42806 -42807 -42808 -42809 -42810 -42811 -42812 -42813 -42814 -42815 -42816 -42817 -42818 -42819 -42820 -42821 -42822 -42823 -42824 -42825 -42826 -42827 -42828 -42829 -42830 -42831 -42832 -42833 -42834 -42835 -42836 -42837 -42838 -42839 -42840 -42841 -42842 -42843 -42844 -42845 -42846 -42847 -42848 -42849 -42850 -42851 -42852 -42853 -42854 -42855 -42856 -42857 -42858 -42859 -42860 -42861 -42862 -42863 -42864 -42865 -42873 -42874 -42875 -42876 -42877 -42879 -42880 -42881 -42882 -42883 -42884 -42885 -42886 -42887 -42888 -42892 -42893 -42894 -42895 -42897 -42898 -42899 -42902 -42903 -42904 -42905 -42906 -42907 -42908 -42909 -42910 -42911 -42912 -42913 -42914 -42915 -42916 -42917 -42918 -42919 -42920 -42921 -42922 -42933 -42934 -42935 -42936 -43002 -43003 -43824 -43867 -43872 -43878 -43888 -43968 -64256 -64263 -64275 -64280 -65345 -65371 -66600 -66640 -68800 -68851 -71872 -71904 -119834 -119860 -119886 -119893 -119894 -119912 -119938 -119964 -119990 -119994 -119995 -119996 -119997 -120004 -120005 -120016 -120042 -120068 -120094 -120120 -120146 -120172 -120198 -120224 -120250 -120276 -120302 -120328 -120354 -120380 -120406 -120432 -120458 -120486 -120514 -120539 -120540 -120546 -120572 -120597 -120598 -120604 -120630 -120655 -120656 -120662 -120688 -120713 -120714 -120720 -120746 -120771 -120772 -120778 -120779 -120780 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Lm.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Lm.pl deleted file mode 100644 index 8d18d9ca..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Lm.pl +++ /dev/null @@ -1,126 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V112 -688 -706 -710 -722 -736 -741 -748 -749 -750 -751 -884 -885 -890 -891 -1369 -1370 -1600 -1601 -1765 -1767 -2036 -2038 -2042 -2043 -2074 -2075 -2084 -2085 -2088 -2089 -2417 -2418 -3654 -3655 -3782 -3783 -4348 -4349 -6103 -6104 -6211 -6212 -6823 -6824 -7288 -7294 -7468 -7531 -7544 -7545 -7579 -7616 -8305 -8306 -8319 -8320 -8336 -8349 -11388 -11390 -11631 -11632 -11823 -11824 -12293 -12294 -12337 -12342 -12347 -12348 -12445 -12447 -12540 -12543 -40981 -40982 -42232 -42238 -42508 -42509 -42623 -42624 -42652 -42654 -42775 -42784 -42864 -42865 -42888 -42889 -43000 -43002 -43471 -43472 -43494 -43495 -43632 -43633 -43741 -43742 -43763 -43765 -43868 -43872 -65392 -65393 -65438 -65440 -92992 -92996 -94099 -94112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Lo.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Lo.pl deleted file mode 100644 index a8e60c29..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Lo.pl +++ /dev/null @@ -1,880 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V866 -170 -171 -186 -187 -443 -444 -448 -452 -660 -661 -1488 -1515 -1520 -1523 -1568 -1600 -1601 -1611 -1646 -1648 -1649 -1748 -1749 -1750 -1774 -1776 -1786 -1789 -1791 -1792 -1808 -1809 -1810 -1840 -1869 -1958 -1969 -1970 -1994 -2027 -2048 -2070 -2112 -2137 -2208 -2229 -2308 -2362 -2365 -2366 -2384 -2385 -2392 -2402 -2418 -2433 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2493 -2494 -2510 -2511 -2524 -2526 -2527 -2530 -2544 -2546 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2649 -2653 -2654 -2655 -2674 -2677 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2749 -2750 -2768 -2769 -2784 -2786 -2809 -2810 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2877 -2878 -2908 -2910 -2911 -2914 -2929 -2930 -2947 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3024 -3025 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3134 -3160 -3163 -3168 -3170 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3261 -3262 -3294 -3295 -3296 -3298 -3313 -3315 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3390 -3406 -3407 -3423 -3426 -3450 -3456 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3585 -3633 -3634 -3636 -3648 -3654 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3761 -3762 -3764 -3773 -3774 -3776 -3781 -3804 -3808 -3840 -3841 -3904 -3912 -3913 -3949 -3976 -3981 -4096 -4139 -4159 -4160 -4176 -4182 -4186 -4190 -4193 -4194 -4197 -4199 -4206 -4209 -4213 -4226 -4238 -4239 -4304 -4347 -4349 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4992 -5008 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5873 -5881 -5888 -5901 -5902 -5906 -5920 -5938 -5952 -5970 -5984 -5997 -5998 -6001 -6016 -6068 -6108 -6109 -6176 -6211 -6212 -6264 -6272 -6313 -6314 -6315 -6320 -6390 -6400 -6431 -6480 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6656 -6679 -6688 -6741 -6917 -6964 -6981 -6988 -7043 -7073 -7086 -7088 -7098 -7142 -7168 -7204 -7245 -7248 -7258 -7288 -7401 -7405 -7406 -7410 -7413 -7415 -8501 -8505 -11568 -11624 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -12294 -12295 -12348 -12349 -12353 -12439 -12447 -12448 -12449 -12539 -12543 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13312 -19894 -19968 -40918 -40960 -40981 -40982 -42125 -42192 -42232 -42240 -42508 -42512 -42528 -42538 -42540 -42606 -42607 -42656 -42726 -42895 -42896 -42999 -43000 -43003 -43010 -43011 -43014 -43015 -43019 -43020 -43043 -43072 -43124 -43138 -43188 -43250 -43256 -43259 -43260 -43261 -43262 -43274 -43302 -43312 -43335 -43360 -43389 -43396 -43443 -43488 -43493 -43495 -43504 -43514 -43519 -43520 -43561 -43584 -43587 -43588 -43596 -43616 -43632 -43633 -43639 -43642 -43643 -43646 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43715 -43739 -43741 -43744 -43755 -43762 -43763 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43968 -44003 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64285 -64286 -64287 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65020 -65136 -65141 -65142 -65277 -65382 -65392 -65393 -65438 -65440 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -66176 -66205 -66208 -66257 -66304 -66336 -66352 -66369 -66370 -66378 -66384 -66422 -66432 -66462 -66464 -66500 -66504 -66512 -66640 -66718 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68097 -68112 -68116 -68117 -68120 -68121 -68148 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68325 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -69635 -69688 -69763 -69808 -69840 -69865 -69891 -69927 -69968 -70003 -70006 -70007 -70019 -70067 -70081 -70085 -70106 -70107 -70108 -70109 -70144 -70162 -70163 -70188 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70367 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70461 -70462 -70480 -70481 -70493 -70498 -70784 -70832 -70852 -70854 -70855 -70856 -71040 -71087 -71128 -71132 -71168 -71216 -71236 -71237 -71296 -71339 -71424 -71450 -71935 -71936 -72384 -72441 -73728 -74650 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92880 -92910 -92928 -92976 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94033 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -124928 -125125 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Lu.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Lu.pl deleted file mode 100644 index f3ffdbbf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Lu.pl +++ /dev/null @@ -1,1264 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1250 -65 -91 -192 -215 -216 -223 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -378 -379 -380 -381 -382 -385 -387 -388 -389 -390 -392 -393 -396 -398 -402 -403 -405 -406 -409 -412 -414 -415 -417 -418 -419 -420 -421 -422 -424 -425 -426 -428 -429 -430 -432 -433 -436 -437 -438 -439 -441 -444 -445 -452 -453 -455 -456 -458 -459 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -497 -498 -500 -501 -502 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -570 -572 -573 -575 -577 -578 -579 -583 -584 -585 -586 -587 -588 -589 -590 -591 -880 -881 -882 -883 -886 -887 -895 -896 -902 -903 -904 -907 -908 -909 -910 -912 -913 -930 -931 -940 -975 -976 -978 -981 -984 -985 -986 -987 -988 -989 -990 -991 -992 -993 -994 -995 -996 -997 -998 -999 -1000 -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1012 -1013 -1015 -1016 -1017 -1019 -1021 -1072 -1120 -1121 -1122 -1123 -1124 -1125 -1126 -1127 -1128 -1129 -1130 -1131 -1132 -1133 -1134 -1135 -1136 -1137 -1138 -1139 -1140 -1141 -1142 -1143 -1144 -1145 -1146 -1147 -1148 -1149 -1150 -1151 -1152 -1153 -1162 -1163 -1164 -1165 -1166 -1167 -1168 -1169 -1170 -1171 -1172 -1173 -1174 -1175 -1176 -1177 -1178 -1179 -1180 -1181 -1182 -1183 -1184 -1185 -1186 -1187 -1188 -1189 -1190 -1191 -1192 -1193 -1194 -1195 -1196 -1197 -1198 -1199 -1200 -1201 -1202 -1203 -1204 -1205 -1206 -1207 -1208 -1209 -1210 -1211 -1212 -1213 -1214 -1215 -1216 -1218 -1219 -1220 -1221 -1222 -1223 -1224 -1225 -1226 -1227 -1228 -1229 -1230 -1232 -1233 -1234 -1235 -1236 -1237 -1238 -1239 -1240 -1241 -1242 -1243 -1244 -1245 -1246 -1247 -1248 -1249 -1250 -1251 -1252 -1253 -1254 -1255 -1256 -1257 -1258 -1259 -1260 -1261 -1262 -1263 -1264 -1265 -1266 -1267 -1268 -1269 -1270 -1271 -1272 -1273 -1274 -1275 -1276 -1277 -1278 -1279 -1280 -1281 -1282 -1283 -1284 -1285 -1286 -1287 -1288 -1289 -1290 -1291 -1292 -1293 -1294 -1295 -1296 -1297 -1298 -1299 -1300 -1301 -1302 -1303 -1304 -1305 -1306 -1307 -1308 -1309 -1310 -1311 -1312 -1313 -1314 -1315 -1316 -1317 -1318 -1319 -1320 -1321 -1322 -1323 -1324 -1325 -1326 -1327 -1329 -1367 -4256 -4294 -4295 -4296 -4301 -4302 -5024 -5110 -7680 -7681 -7682 -7683 -7684 -7685 -7686 -7687 -7688 -7689 -7690 -7691 -7692 -7693 -7694 -7695 -7696 -7697 -7698 -7699 -7700 -7701 -7702 -7703 -7704 -7705 -7706 -7707 -7708 -7709 -7710 -7711 -7712 -7713 -7714 -7715 -7716 -7717 -7718 -7719 -7720 -7721 -7722 -7723 -7724 -7725 -7726 -7727 -7728 -7729 -7730 -7731 -7732 -7733 -7734 -7735 -7736 -7737 -7738 -7739 -7740 -7741 -7742 -7743 -7744 -7745 -7746 -7747 -7748 -7749 -7750 -7751 -7752 -7753 -7754 -7755 -7756 -7757 -7758 -7759 -7760 -7761 -7762 -7763 -7764 -7765 -7766 -7767 -7768 -7769 -7770 -7771 -7772 -7773 -7774 -7775 -7776 -7777 -7778 -7779 -7780 -7781 -7782 -7783 -7784 -7785 -7786 -7787 -7788 -7789 -7790 -7791 -7792 -7793 -7794 -7795 -7796 -7797 -7798 -7799 -7800 -7801 -7802 -7803 -7804 -7805 -7806 -7807 -7808 -7809 -7810 -7811 -7812 -7813 -7814 -7815 -7816 -7817 -7818 -7819 -7820 -7821 -7822 -7823 -7824 -7825 -7826 -7827 -7828 -7829 -7838 -7839 -7840 -7841 -7842 -7843 -7844 -7845 -7846 -7847 -7848 -7849 -7850 -7851 -7852 -7853 -7854 -7855 -7856 -7857 -7858 -7859 -7860 -7861 -7862 -7863 -7864 -7865 -7866 -7867 -7868 -7869 -7870 -7871 -7872 -7873 -7874 -7875 -7876 -7877 -7878 -7879 -7880 -7881 -7882 -7883 -7884 -7885 -7886 -7887 -7888 -7889 -7890 -7891 -7892 -7893 -7894 -7895 -7896 -7897 -7898 -7899 -7900 -7901 -7902 -7903 -7904 -7905 -7906 -7907 -7908 -7909 -7910 -7911 -7912 -7913 -7914 -7915 -7916 -7917 -7918 -7919 -7920 -7921 -7922 -7923 -7924 -7925 -7926 -7927 -7928 -7929 -7930 -7931 -7932 -7933 -7934 -7935 -7944 -7952 -7960 -7966 -7976 -7984 -7992 -8000 -8008 -8014 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8032 -8040 -8048 -8120 -8124 -8136 -8140 -8152 -8156 -8168 -8173 -8184 -8188 -8450 -8451 -8455 -8456 -8459 -8462 -8464 -8467 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8496 -8500 -8510 -8512 -8517 -8518 -8579 -8580 -11264 -11311 -11360 -11361 -11362 -11365 -11367 -11368 -11369 -11370 -11371 -11372 -11373 -11377 -11378 -11379 -11381 -11382 -11390 -11393 -11394 -11395 -11396 -11397 -11398 -11399 -11400 -11401 -11402 -11403 -11404 -11405 -11406 -11407 -11408 -11409 -11410 -11411 -11412 -11413 -11414 -11415 -11416 -11417 -11418 -11419 -11420 -11421 -11422 -11423 -11424 -11425 -11426 -11427 -11428 -11429 -11430 -11431 -11432 -11433 -11434 -11435 -11436 -11437 -11438 -11439 -11440 -11441 -11442 -11443 -11444 -11445 -11446 -11447 -11448 -11449 -11450 -11451 -11452 -11453 -11454 -11455 -11456 -11457 -11458 -11459 -11460 -11461 -11462 -11463 -11464 -11465 -11466 -11467 -11468 -11469 -11470 -11471 -11472 -11473 -11474 -11475 -11476 -11477 -11478 -11479 -11480 -11481 -11482 -11483 -11484 -11485 -11486 -11487 -11488 -11489 -11490 -11491 -11499 -11500 -11501 -11502 -11506 -11507 -42560 -42561 -42562 -42563 -42564 -42565 -42566 -42567 -42568 -42569 -42570 -42571 -42572 -42573 -42574 -42575 -42576 -42577 -42578 -42579 -42580 -42581 -42582 -42583 -42584 -42585 -42586 -42587 -42588 -42589 -42590 -42591 -42592 -42593 -42594 -42595 -42596 -42597 -42598 -42599 -42600 -42601 -42602 -42603 -42604 -42605 -42624 -42625 -42626 -42627 -42628 -42629 -42630 -42631 -42632 -42633 -42634 -42635 -42636 -42637 -42638 -42639 -42640 -42641 -42642 -42643 -42644 -42645 -42646 -42647 -42648 -42649 -42650 -42651 -42786 -42787 -42788 -42789 -42790 -42791 -42792 -42793 -42794 -42795 -42796 -42797 -42798 -42799 -42802 -42803 -42804 -42805 -42806 -42807 -42808 -42809 -42810 -42811 -42812 -42813 -42814 -42815 -42816 -42817 -42818 -42819 -42820 -42821 -42822 -42823 -42824 -42825 -42826 -42827 -42828 -42829 -42830 -42831 -42832 -42833 -42834 -42835 -42836 -42837 -42838 -42839 -42840 -42841 -42842 -42843 -42844 -42845 -42846 -42847 -42848 -42849 -42850 -42851 -42852 -42853 -42854 -42855 -42856 -42857 -42858 -42859 -42860 -42861 -42862 -42863 -42873 -42874 -42875 -42876 -42877 -42879 -42880 -42881 -42882 -42883 -42884 -42885 -42886 -42887 -42891 -42892 -42893 -42894 -42896 -42897 -42898 -42899 -42902 -42903 -42904 -42905 -42906 -42907 -42908 -42909 -42910 -42911 -42912 -42913 -42914 -42915 -42916 -42917 -42918 -42919 -42920 -42921 -42922 -42926 -42928 -42933 -42934 -42935 -65313 -65339 -66560 -66600 -68736 -68787 -71840 -71872 -119808 -119834 -119860 -119886 -119912 -119938 -119964 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119990 -120016 -120042 -120068 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120120 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120172 -120198 -120224 -120250 -120276 -120302 -120328 -120354 -120380 -120406 -120432 -120458 -120488 -120513 -120546 -120571 -120604 -120629 -120662 -120687 -120720 -120745 -120778 -120779 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/M.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/M.pl deleted file mode 100644 index 133f419a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/M.pl +++ /dev/null @@ -1,486 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V472 -768 -880 -1155 -1162 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1552 -1563 -1611 -1632 -1648 -1649 -1750 -1757 -1759 -1765 -1767 -1769 -1770 -1774 -1809 -1810 -1840 -1867 -1958 -1969 -2027 -2036 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2094 -2137 -2140 -2275 -2308 -2362 -2365 -2366 -2384 -2385 -2392 -2402 -2404 -2433 -2436 -2492 -2493 -2494 -2501 -2503 -2505 -2507 -2510 -2519 -2520 -2530 -2532 -2561 -2564 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2672 -2674 -2677 -2678 -2689 -2692 -2748 -2749 -2750 -2758 -2759 -2762 -2763 -2766 -2786 -2788 -2817 -2820 -2876 -2877 -2878 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2914 -2916 -2946 -2947 -3006 -3011 -3014 -3017 -3018 -3022 -3031 -3032 -3072 -3076 -3134 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3170 -3172 -3201 -3204 -3260 -3261 -3262 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3298 -3300 -3329 -3332 -3390 -3397 -3398 -3401 -3402 -3406 -3415 -3416 -3426 -3428 -3458 -3460 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3572 -3633 -3634 -3636 -3643 -3655 -3663 -3761 -3762 -3764 -3770 -3771 -3773 -3784 -3790 -3864 -3866 -3893 -3894 -3895 -3896 -3897 -3898 -3902 -3904 -3953 -3973 -3974 -3976 -3981 -3992 -3993 -4029 -4038 -4039 -4139 -4159 -4182 -4186 -4190 -4193 -4194 -4197 -4199 -4206 -4209 -4213 -4226 -4238 -4239 -4240 -4250 -4254 -4957 -4960 -5906 -5909 -5938 -5941 -5970 -5972 -6002 -6004 -6068 -6100 -6109 -6110 -6155 -6158 -6313 -6314 -6432 -6444 -6448 -6460 -6679 -6684 -6741 -6751 -6752 -6781 -6783 -6784 -6832 -6847 -6912 -6917 -6964 -6981 -7019 -7028 -7040 -7043 -7073 -7086 -7142 -7156 -7204 -7224 -7376 -7379 -7380 -7401 -7405 -7406 -7410 -7413 -7416 -7418 -7616 -7670 -7676 -7680 -8400 -8433 -11503 -11506 -11647 -11648 -11744 -11776 -12330 -12336 -12441 -12443 -42607 -42611 -42612 -42622 -42654 -42656 -42736 -42738 -43010 -43011 -43014 -43015 -43019 -43020 -43043 -43048 -43136 -43138 -43188 -43205 -43232 -43250 -43302 -43310 -43335 -43348 -43392 -43396 -43443 -43457 -43493 -43494 -43561 -43575 -43587 -43588 -43596 -43598 -43643 -43646 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43755 -43760 -43765 -43767 -44003 -44011 -44012 -44014 -64286 -64287 -65024 -65040 -65056 -65072 -66045 -66046 -66272 -66273 -66422 -66427 -68097 -68100 -68101 -68103 -68108 -68112 -68152 -68155 -68159 -68160 -68325 -68327 -69632 -69635 -69688 -69703 -69759 -69763 -69808 -69819 -69888 -69891 -69927 -69941 -70003 -70004 -70016 -70019 -70067 -70081 -70090 -70093 -70188 -70200 -70367 -70379 -70400 -70404 -70460 -70461 -70462 -70469 -70471 -70473 -70475 -70478 -70487 -70488 -70498 -70500 -70502 -70509 -70512 -70517 -70832 -70852 -71087 -71094 -71096 -71105 -71132 -71134 -71216 -71233 -71339 -71352 -71453 -71468 -92912 -92917 -92976 -92983 -94033 -94079 -94095 -94099 -113821 -113823 -119141 -119146 -119149 -119155 -119163 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -125136 -125143 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Mc.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Mc.pl deleted file mode 100644 index 3fbf7fdc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Mc.pl +++ /dev/null @@ -1,308 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V294 -2307 -2308 -2363 -2364 -2366 -2369 -2377 -2381 -2382 -2384 -2434 -2436 -2494 -2497 -2503 -2505 -2507 -2509 -2519 -2520 -2563 -2564 -2622 -2625 -2691 -2692 -2750 -2753 -2761 -2762 -2763 -2765 -2818 -2820 -2878 -2879 -2880 -2881 -2887 -2889 -2891 -2893 -2903 -2904 -3006 -3008 -3009 -3011 -3014 -3017 -3018 -3021 -3031 -3032 -3073 -3076 -3137 -3141 -3202 -3204 -3262 -3263 -3264 -3269 -3271 -3273 -3274 -3276 -3285 -3287 -3330 -3332 -3390 -3393 -3398 -3401 -3402 -3405 -3415 -3416 -3458 -3460 -3535 -3538 -3544 -3552 -3570 -3572 -3902 -3904 -3967 -3968 -4139 -4141 -4145 -4146 -4152 -4153 -4155 -4157 -4182 -4184 -4194 -4197 -4199 -4206 -4227 -4229 -4231 -4237 -4239 -4240 -4250 -4253 -6070 -6071 -6078 -6086 -6087 -6089 -6435 -6439 -6441 -6444 -6448 -6450 -6451 -6457 -6681 -6683 -6741 -6742 -6743 -6744 -6753 -6754 -6755 -6757 -6765 -6771 -6916 -6917 -6965 -6966 -6971 -6972 -6973 -6978 -6979 -6981 -7042 -7043 -7073 -7074 -7078 -7080 -7082 -7083 -7143 -7144 -7146 -7149 -7150 -7151 -7154 -7156 -7204 -7212 -7220 -7222 -7393 -7394 -7410 -7412 -12334 -12336 -43043 -43045 -43047 -43048 -43136 -43138 -43188 -43204 -43346 -43348 -43395 -43396 -43444 -43446 -43450 -43452 -43453 -43457 -43567 -43569 -43571 -43573 -43597 -43598 -43643 -43644 -43645 -43646 -43755 -43756 -43758 -43760 -43765 -43766 -44003 -44005 -44006 -44008 -44009 -44011 -44012 -44013 -69632 -69633 -69634 -69635 -69762 -69763 -69808 -69811 -69815 -69817 -69932 -69933 -70018 -70019 -70067 -70070 -70079 -70081 -70188 -70191 -70194 -70196 -70197 -70198 -70368 -70371 -70402 -70404 -70462 -70464 -70465 -70469 -70471 -70473 -70475 -70478 -70487 -70488 -70498 -70500 -70832 -70835 -70841 -70842 -70843 -70847 -70849 -70850 -71087 -71090 -71096 -71100 -71102 -71103 -71216 -71219 -71227 -71229 -71230 -71231 -71340 -71341 -71342 -71344 -71350 -71351 -71456 -71458 -71462 -71463 -94033 -94079 -119141 -119143 -119149 -119155 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Me.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Me.pl deleted file mode 100644 index 42c5a705..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Me.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -1160 -1162 -6846 -6847 -8413 -8417 -8418 -8421 -42608 -42611 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Mn.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Mn.pl deleted file mode 100644 index 11e4d5c2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Mn.pl +++ /dev/null @@ -1,546 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V532 -768 -880 -1155 -1160 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1552 -1563 -1611 -1632 -1648 -1649 -1750 -1757 -1759 -1765 -1767 -1769 -1770 -1774 -1809 -1810 -1840 -1867 -1958 -1969 -2027 -2036 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2094 -2137 -2140 -2275 -2307 -2362 -2363 -2364 -2365 -2369 -2377 -2381 -2382 -2385 -2392 -2402 -2404 -2433 -2434 -2492 -2493 -2497 -2501 -2509 -2510 -2530 -2532 -2561 -2563 -2620 -2621 -2625 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2672 -2674 -2677 -2678 -2689 -2691 -2748 -2749 -2753 -2758 -2759 -2761 -2765 -2766 -2786 -2788 -2817 -2818 -2876 -2877 -2879 -2880 -2881 -2885 -2893 -2894 -2902 -2903 -2914 -2916 -2946 -2947 -3008 -3009 -3021 -3022 -3072 -3073 -3134 -3137 -3142 -3145 -3146 -3150 -3157 -3159 -3170 -3172 -3201 -3202 -3260 -3261 -3263 -3264 -3270 -3271 -3276 -3278 -3298 -3300 -3329 -3330 -3393 -3397 -3405 -3406 -3426 -3428 -3530 -3531 -3538 -3541 -3542 -3543 -3633 -3634 -3636 -3643 -3655 -3663 -3761 -3762 -3764 -3770 -3771 -3773 -3784 -3790 -3864 -3866 -3893 -3894 -3895 -3896 -3897 -3898 -3953 -3967 -3968 -3973 -3974 -3976 -3981 -3992 -3993 -4029 -4038 -4039 -4141 -4145 -4146 -4152 -4153 -4155 -4157 -4159 -4184 -4186 -4190 -4193 -4209 -4213 -4226 -4227 -4229 -4231 -4237 -4238 -4253 -4254 -4957 -4960 -5906 -5909 -5938 -5941 -5970 -5972 -6002 -6004 -6068 -6070 -6071 -6078 -6086 -6087 -6089 -6100 -6109 -6110 -6155 -6158 -6313 -6314 -6432 -6435 -6439 -6441 -6450 -6451 -6457 -6460 -6679 -6681 -6683 -6684 -6742 -6743 -6744 -6751 -6752 -6753 -6754 -6755 -6757 -6765 -6771 -6781 -6783 -6784 -6832 -6846 -6912 -6916 -6964 -6965 -6966 -6971 -6972 -6973 -6978 -6979 -7019 -7028 -7040 -7042 -7074 -7078 -7080 -7082 -7083 -7086 -7142 -7143 -7144 -7146 -7149 -7150 -7151 -7154 -7212 -7220 -7222 -7224 -7376 -7379 -7380 -7393 -7394 -7401 -7405 -7406 -7412 -7413 -7416 -7418 -7616 -7670 -7676 -7680 -8400 -8413 -8417 -8418 -8421 -8433 -11503 -11506 -11647 -11648 -11744 -11776 -12330 -12334 -12441 -12443 -42607 -42608 -42612 -42622 -42654 -42656 -42736 -42738 -43010 -43011 -43014 -43015 -43019 -43020 -43045 -43047 -43204 -43205 -43232 -43250 -43302 -43310 -43335 -43346 -43392 -43395 -43443 -43444 -43446 -43450 -43452 -43453 -43493 -43494 -43561 -43567 -43569 -43571 -43573 -43575 -43587 -43588 -43596 -43597 -43644 -43645 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43756 -43758 -43766 -43767 -44005 -44006 -44008 -44009 -44013 -44014 -64286 -64287 -65024 -65040 -65056 -65072 -66045 -66046 -66272 -66273 -66422 -66427 -68097 -68100 -68101 -68103 -68108 -68112 -68152 -68155 -68159 -68160 -68325 -68327 -69633 -69634 -69688 -69703 -69759 -69762 -69811 -69815 -69817 -69819 -69888 -69891 -69927 -69932 -69933 -69941 -70003 -70004 -70016 -70018 -70070 -70079 -70090 -70093 -70191 -70194 -70196 -70197 -70198 -70200 -70367 -70368 -70371 -70379 -70400 -70402 -70460 -70461 -70464 -70465 -70502 -70509 -70512 -70517 -70835 -70841 -70842 -70843 -70847 -70849 -70850 -70852 -71090 -71094 -71100 -71102 -71103 -71105 -71132 -71134 -71219 -71227 -71229 -71230 -71231 -71233 -71339 -71340 -71341 -71342 -71344 -71350 -71351 -71352 -71453 -71456 -71458 -71462 -71463 -71468 -92912 -92917 -92976 -92983 -94095 -94099 -113821 -113823 -119143 -119146 -119163 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -125136 -125143 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/N.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/N.pl deleted file mode 100644 index dcb20052..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/N.pl +++ /dev/null @@ -1,236 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V222 -48 -58 -178 -180 -185 -186 -188 -191 -1632 -1642 -1776 -1786 -1984 -1994 -2406 -2416 -2534 -2544 -2548 -2554 -2662 -2672 -2790 -2800 -2918 -2928 -2930 -2936 -3046 -3059 -3174 -3184 -3192 -3199 -3302 -3312 -3430 -3446 -3558 -3568 -3664 -3674 -3792 -3802 -3872 -3892 -4160 -4170 -4240 -4250 -4969 -4989 -5870 -5873 -6112 -6122 -6128 -6138 -6160 -6170 -6470 -6480 -6608 -6619 -6784 -6794 -6800 -6810 -6992 -7002 -7088 -7098 -7232 -7242 -7248 -7258 -8304 -8305 -8308 -8314 -8320 -8330 -8528 -8579 -8581 -8586 -9312 -9372 -9450 -9472 -10102 -10132 -11517 -11518 -12295 -12296 -12321 -12330 -12344 -12347 -12690 -12694 -12832 -12842 -12872 -12880 -12881 -12896 -12928 -12938 -12977 -12992 -42528 -42538 -42726 -42736 -43056 -43062 -43216 -43226 -43264 -43274 -43472 -43482 -43504 -43514 -43600 -43610 -44016 -44026 -65296 -65306 -65799 -65844 -65856 -65913 -65930 -65932 -66273 -66300 -66336 -66340 -66369 -66370 -66378 -66379 -66513 -66518 -66720 -66730 -67672 -67680 -67705 -67712 -67751 -67760 -67835 -67840 -67862 -67868 -68028 -68030 -68032 -68048 -68050 -68096 -68160 -68168 -68221 -68223 -68253 -68256 -68331 -68336 -68440 -68448 -68472 -68480 -68521 -68528 -68858 -68864 -69216 -69247 -69714 -69744 -69872 -69882 -69942 -69952 -70096 -70106 -70113 -70133 -70384 -70394 -70864 -70874 -71248 -71258 -71360 -71370 -71472 -71484 -71904 -71923 -74752 -74863 -92768 -92778 -93008 -93018 -93019 -93026 -119648 -119666 -120782 -120832 -125127 -125136 -127232 -127245 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Nd.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Nd.pl deleted file mode 100644 index 73794262..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Nd.pl +++ /dev/null @@ -1,116 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V102 -48 -58 -1632 -1642 -1776 -1786 -1984 -1994 -2406 -2416 -2534 -2544 -2662 -2672 -2790 -2800 -2918 -2928 -3046 -3056 -3174 -3184 -3302 -3312 -3430 -3440 -3558 -3568 -3664 -3674 -3792 -3802 -3872 -3882 -4160 -4170 -4240 -4250 -6112 -6122 -6160 -6170 -6470 -6480 -6608 -6618 -6784 -6794 -6800 -6810 -6992 -7002 -7088 -7098 -7232 -7242 -7248 -7258 -42528 -42538 -43216 -43226 -43264 -43274 -43472 -43482 -43504 -43514 -43600 -43610 -44016 -44026 -65296 -65306 -66720 -66730 -69734 -69744 -69872 -69882 -69942 -69952 -70096 -70106 -70384 -70394 -70864 -70874 -71248 -71258 -71360 -71370 -71472 -71482 -71904 -71914 -92768 -92778 -93008 -93018 -120782 -120832 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Nl.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Nl.pl deleted file mode 100644 index d8d48ca8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Nl.pl +++ /dev/null @@ -1,38 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V24 -5870 -5873 -8544 -8579 -8581 -8585 -12295 -12296 -12321 -12330 -12344 -12347 -42726 -42736 -65856 -65909 -66369 -66370 -66378 -66379 -66513 -66518 -74752 -74863 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/No.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/No.pl deleted file mode 100644 index 9d84af0a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/No.pl +++ /dev/null @@ -1,130 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V116 -178 -180 -185 -186 -188 -191 -2548 -2554 -2930 -2936 -3056 -3059 -3192 -3199 -3440 -3446 -3882 -3892 -4969 -4989 -6128 -6138 -6618 -6619 -8304 -8305 -8308 -8314 -8320 -8330 -8528 -8544 -8585 -8586 -9312 -9372 -9450 -9472 -10102 -10132 -11517 -11518 -12690 -12694 -12832 -12842 -12872 -12880 -12881 -12896 -12928 -12938 -12977 -12992 -43056 -43062 -65799 -65844 -65909 -65913 -65930 -65932 -66273 -66300 -66336 -66340 -67672 -67680 -67705 -67712 -67751 -67760 -67835 -67840 -67862 -67868 -68028 -68030 -68032 -68048 -68050 -68096 -68160 -68168 -68221 -68223 -68253 -68256 -68331 -68336 -68440 -68448 -68472 -68480 -68521 -68528 -68858 -68864 -69216 -69247 -69714 -69734 -70113 -70133 -71482 -71484 -71914 -71923 -93019 -93026 -119648 -119666 -125127 -125136 -127232 -127245 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/P.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/P.pl deleted file mode 100644 index 24f27e0e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/P.pl +++ /dev/null @@ -1,336 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V322 -33 -36 -37 -43 -44 -48 -58 -60 -63 -65 -91 -94 -95 -96 -123 -124 -125 -126 -161 -162 -167 -168 -171 -172 -182 -184 -187 -188 -191 -192 -894 -895 -903 -904 -1370 -1376 -1417 -1419 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1523 -1525 -1545 -1547 -1548 -1550 -1563 -1564 -1566 -1568 -1642 -1646 -1748 -1749 -1792 -1806 -2039 -2042 -2096 -2111 -2142 -2143 -2404 -2406 -2416 -2417 -2800 -2801 -3572 -3573 -3663 -3664 -3674 -3676 -3844 -3859 -3860 -3861 -3898 -3902 -3973 -3974 -4048 -4053 -4057 -4059 -4170 -4176 -4347 -4348 -4960 -4969 -5120 -5121 -5741 -5743 -5787 -5789 -5867 -5870 -5941 -5943 -6100 -6103 -6104 -6107 -6144 -6155 -6468 -6470 -6686 -6688 -6816 -6823 -6824 -6830 -7002 -7009 -7164 -7168 -7227 -7232 -7294 -7296 -7360 -7368 -7379 -7380 -8208 -8232 -8240 -8260 -8261 -8274 -8275 -8287 -8317 -8319 -8333 -8335 -8968 -8972 -9001 -9003 -10088 -10102 -10181 -10183 -10214 -10224 -10627 -10649 -10712 -10716 -10748 -10750 -11513 -11517 -11518 -11520 -11632 -11633 -11776 -11823 -11824 -11843 -12289 -12292 -12296 -12306 -12308 -12320 -12336 -12337 -12349 -12350 -12448 -12449 -12539 -12540 -42238 -42240 -42509 -42512 -42611 -42612 -42622 -42623 -42738 -42744 -43124 -43128 -43214 -43216 -43256 -43259 -43260 -43261 -43310 -43312 -43359 -43360 -43457 -43470 -43486 -43488 -43612 -43616 -43742 -43744 -43760 -43762 -44011 -44012 -64830 -64832 -65040 -65050 -65072 -65107 -65108 -65122 -65123 -65124 -65128 -65129 -65130 -65132 -65281 -65284 -65285 -65291 -65292 -65296 -65306 -65308 -65311 -65313 -65339 -65342 -65343 -65344 -65371 -65372 -65373 -65374 -65375 -65382 -65792 -65795 -66463 -66464 -66512 -66513 -66927 -66928 -67671 -67672 -67871 -67872 -67903 -67904 -68176 -68185 -68223 -68224 -68336 -68343 -68409 -68416 -68505 -68509 -69703 -69710 -69819 -69821 -69822 -69826 -69952 -69956 -70004 -70006 -70085 -70090 -70093 -70094 -70107 -70108 -70109 -70112 -70200 -70206 -70313 -70314 -70854 -70855 -71105 -71128 -71233 -71236 -71484 -71487 -74864 -74869 -92782 -92784 -92917 -92918 -92983 -92988 -92996 -92997 -113823 -113824 -121479 -121484 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Pd.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Pd.pl deleted file mode 100644 index 92142c38..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Pd.pl +++ /dev/null @@ -1,48 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V34 -45 -46 -1418 -1419 -1470 -1471 -5120 -5121 -6150 -6151 -8208 -8214 -11799 -11800 -11802 -11803 -11834 -11836 -11840 -11841 -12316 -12317 -12336 -12337 -12448 -12449 -65073 -65075 -65112 -65113 -65123 -65124 -65293 -65294 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Pe.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Pe.pl deleted file mode 100644 index 73144b5c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Pe.pl +++ /dev/null @@ -1,158 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V144 -41 -42 -93 -94 -125 -126 -3899 -3900 -3901 -3902 -5788 -5789 -8262 -8263 -8318 -8319 -8334 -8335 -8969 -8970 -8971 -8972 -9002 -9003 -10089 -10090 -10091 -10092 -10093 -10094 -10095 -10096 -10097 -10098 -10099 -10100 -10101 -10102 -10182 -10183 -10215 -10216 -10217 -10218 -10219 -10220 -10221 -10222 -10223 -10224 -10628 -10629 -10630 -10631 -10632 -10633 -10634 -10635 -10636 -10637 -10638 -10639 -10640 -10641 -10642 -10643 -10644 -10645 -10646 -10647 -10648 -10649 -10713 -10714 -10715 -10716 -10749 -10750 -11811 -11812 -11813 -11814 -11815 -11816 -11817 -11818 -12297 -12298 -12299 -12300 -12301 -12302 -12303 -12304 -12305 -12306 -12309 -12310 -12311 -12312 -12313 -12314 -12315 -12316 -12318 -12320 -64830 -64831 -65048 -65049 -65078 -65079 -65080 -65081 -65082 -65083 -65084 -65085 -65086 -65087 -65088 -65089 -65090 -65091 -65092 -65093 -65096 -65097 -65114 -65115 -65116 -65117 -65118 -65119 -65289 -65290 -65341 -65342 -65373 -65374 -65376 -65377 -65379 -65380 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Pf.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Pf.pl deleted file mode 100644 index ff5a0048..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Pf.pl +++ /dev/null @@ -1,34 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V20 -187 -188 -8217 -8218 -8221 -8222 -8250 -8251 -11779 -11780 -11781 -11782 -11786 -11787 -11789 -11790 -11805 -11806 -11809 -11810 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Pi.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Pi.pl deleted file mode 100644 index 078f68dc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Pi.pl +++ /dev/null @@ -1,36 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V22 -171 -172 -8216 -8217 -8219 -8221 -8223 -8224 -8249 -8250 -11778 -11779 -11780 -11781 -11785 -11786 -11788 -11789 -11804 -11805 -11808 -11809 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Po.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Po.pl deleted file mode 100644 index e2df0661..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Po.pl +++ /dev/null @@ -1,328 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V314 -33 -36 -37 -40 -42 -43 -44 -45 -46 -48 -58 -60 -63 -65 -92 -93 -161 -162 -167 -168 -182 -184 -191 -192 -894 -895 -903 -904 -1370 -1376 -1417 -1418 -1472 -1473 -1475 -1476 -1478 -1479 -1523 -1525 -1545 -1547 -1548 -1550 -1563 -1564 -1566 -1568 -1642 -1646 -1748 -1749 -1792 -1806 -2039 -2042 -2096 -2111 -2142 -2143 -2404 -2406 -2416 -2417 -2800 -2801 -3572 -3573 -3663 -3664 -3674 -3676 -3844 -3859 -3860 -3861 -3973 -3974 -4048 -4053 -4057 -4059 -4170 -4176 -4347 -4348 -4960 -4969 -5741 -5743 -5867 -5870 -5941 -5943 -6100 -6103 -6104 -6107 -6144 -6150 -6151 -6155 -6468 -6470 -6686 -6688 -6816 -6823 -6824 -6830 -7002 -7009 -7164 -7168 -7227 -7232 -7294 -7296 -7360 -7368 -7379 -7380 -8214 -8216 -8224 -8232 -8240 -8249 -8251 -8255 -8257 -8260 -8263 -8274 -8275 -8276 -8277 -8287 -11513 -11517 -11518 -11520 -11632 -11633 -11776 -11778 -11782 -11785 -11787 -11788 -11790 -11799 -11800 -11802 -11803 -11804 -11806 -11808 -11818 -11823 -11824 -11834 -11836 -11840 -11841 -11842 -12289 -12292 -12349 -12350 -12539 -12540 -42238 -42240 -42509 -42512 -42611 -42612 -42622 -42623 -42738 -42744 -43124 -43128 -43214 -43216 -43256 -43259 -43260 -43261 -43310 -43312 -43359 -43360 -43457 -43470 -43486 -43488 -43612 -43616 -43742 -43744 -43760 -43762 -44011 -44012 -65040 -65047 -65049 -65050 -65072 -65073 -65093 -65095 -65097 -65101 -65104 -65107 -65108 -65112 -65119 -65122 -65128 -65129 -65130 -65132 -65281 -65284 -65285 -65288 -65290 -65291 -65292 -65293 -65294 -65296 -65306 -65308 -65311 -65313 -65340 -65341 -65377 -65378 -65380 -65382 -65792 -65795 -66463 -66464 -66512 -66513 -66927 -66928 -67671 -67672 -67871 -67872 -67903 -67904 -68176 -68185 -68223 -68224 -68336 -68343 -68409 -68416 -68505 -68509 -69703 -69710 -69819 -69821 -69822 -69826 -69952 -69956 -70004 -70006 -70085 -70090 -70093 -70094 -70107 -70108 -70109 -70112 -70200 -70206 -70313 -70314 -70854 -70855 -71105 -71128 -71233 -71236 -71484 -71487 -74864 -74869 -92782 -92784 -92917 -92918 -92983 -92988 -92996 -92997 -113823 -113824 -121479 -121484 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Ps.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Ps.pl deleted file mode 100644 index 93ddd66c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Ps.pl +++ /dev/null @@ -1,164 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V150 -40 -41 -91 -92 -123 -124 -3898 -3899 -3900 -3901 -5787 -5788 -8218 -8219 -8222 -8223 -8261 -8262 -8317 -8318 -8333 -8334 -8968 -8969 -8970 -8971 -9001 -9002 -10088 -10089 -10090 -10091 -10092 -10093 -10094 -10095 -10096 -10097 -10098 -10099 -10100 -10101 -10181 -10182 -10214 -10215 -10216 -10217 -10218 -10219 -10220 -10221 -10222 -10223 -10627 -10628 -10629 -10630 -10631 -10632 -10633 -10634 -10635 -10636 -10637 -10638 -10639 -10640 -10641 -10642 -10643 -10644 -10645 -10646 -10647 -10648 -10712 -10713 -10714 -10715 -10748 -10749 -11810 -11811 -11812 -11813 -11814 -11815 -11816 -11817 -11842 -11843 -12296 -12297 -12298 -12299 -12300 -12301 -12302 -12303 -12304 -12305 -12308 -12309 -12310 -12311 -12312 -12313 -12314 -12315 -12317 -12318 -64831 -64832 -65047 -65048 -65077 -65078 -65079 -65080 -65081 -65082 -65083 -65084 -65085 -65086 -65087 -65088 -65089 -65090 -65091 -65092 -65095 -65096 -65113 -65114 -65115 -65116 -65117 -65118 -65288 -65289 -65339 -65340 -65371 -65372 -65375 -65376 -65378 -65379 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/S.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/S.pl deleted file mode 100644 index 07caf715..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/S.pl +++ /dev/null @@ -1,442 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V428 -36 -37 -43 -44 -60 -63 -94 -95 -96 -97 -124 -125 -126 -127 -162 -167 -168 -170 -172 -173 -174 -178 -180 -181 -184 -185 -215 -216 -247 -248 -706 -710 -722 -736 -741 -748 -749 -750 -751 -768 -885 -886 -900 -902 -1014 -1015 -1154 -1155 -1421 -1424 -1542 -1545 -1547 -1548 -1550 -1552 -1758 -1759 -1769 -1770 -1789 -1791 -2038 -2039 -2546 -2548 -2554 -2556 -2801 -2802 -2928 -2929 -3059 -3067 -3199 -3200 -3449 -3450 -3647 -3648 -3841 -3844 -3859 -3860 -3861 -3864 -3866 -3872 -3892 -3893 -3894 -3895 -3896 -3897 -4030 -4038 -4039 -4045 -4046 -4048 -4053 -4057 -4254 -4256 -5008 -5018 -6107 -6108 -6464 -6465 -6622 -6656 -7009 -7019 -7028 -7037 -8125 -8126 -8127 -8130 -8141 -8144 -8157 -8160 -8173 -8176 -8189 -8191 -8260 -8261 -8274 -8275 -8314 -8317 -8330 -8333 -8352 -8383 -8448 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8528 -8586 -8588 -8592 -8968 -8972 -9001 -9003 -9211 -9216 -9255 -9280 -9291 -9372 -9450 -9472 -10088 -10132 -10181 -10183 -10214 -10224 -10627 -10649 -10712 -10716 -10748 -10750 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11493 -11499 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12292 -12293 -12306 -12308 -12320 -12321 -12342 -12344 -12350 -12352 -12443 -12445 -12688 -12690 -12694 -12704 -12736 -12772 -12800 -12831 -12842 -12872 -12880 -12881 -12896 -12928 -12938 -12977 -12992 -13055 -13056 -13312 -19904 -19968 -42128 -42183 -42752 -42775 -42784 -42786 -42889 -42891 -43048 -43052 -43062 -43066 -43639 -43642 -43867 -43868 -64297 -64298 -64434 -64450 -65020 -65022 -65122 -65123 -65124 -65127 -65129 -65130 -65284 -65285 -65291 -65292 -65308 -65311 -65342 -65343 -65344 -65345 -65372 -65373 -65374 -65375 -65504 -65511 -65512 -65519 -65532 -65534 -65847 -65856 -65913 -65930 -65932 -65933 -65936 -65948 -65952 -65953 -66000 -66045 -67703 -67705 -68296 -68297 -71487 -71488 -92988 -92992 -92997 -92998 -113820 -113821 -118784 -119030 -119040 -119079 -119081 -119141 -119146 -119149 -119171 -119173 -119180 -119210 -119214 -119273 -119296 -119362 -119365 -119366 -119552 -119639 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120832 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121479 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Sc.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Sc.pl deleted file mode 100644 index 1e50d734..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Sc.pl +++ /dev/null @@ -1,48 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V34 -36 -37 -162 -166 -1423 -1424 -1547 -1548 -2546 -2548 -2555 -2556 -2801 -2802 -3065 -3066 -3647 -3648 -6107 -6108 -8352 -8383 -43064 -43065 -65020 -65021 -65129 -65130 -65284 -65285 -65504 -65506 -65509 -65511 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Sk.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Sk.pl deleted file mode 100644 index 3da2c124..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Sk.pl +++ /dev/null @@ -1,72 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V58 -94 -95 -96 -97 -168 -169 -175 -176 -180 -181 -184 -185 -706 -710 -722 -736 -741 -748 -749 -750 -751 -768 -885 -886 -900 -902 -8125 -8126 -8127 -8130 -8141 -8144 -8157 -8160 -8173 -8176 -8189 -8191 -12443 -12445 -42752 -42775 -42784 -42786 -42889 -42891 -43867 -43868 -64434 -64450 -65342 -65343 -65344 -65345 -65507 -65508 -127995 -128000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Sm.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Sm.pl deleted file mode 100644 index d1be9b89..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Sm.pl +++ /dev/null @@ -1,142 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V128 -43 -44 -60 -63 -124 -125 -126 -127 -172 -173 -177 -178 -215 -216 -247 -248 -1014 -1015 -1542 -1545 -8260 -8261 -8274 -8275 -8314 -8317 -8330 -8333 -8472 -8473 -8512 -8517 -8523 -8524 -8592 -8597 -8602 -8604 -8608 -8609 -8611 -8612 -8614 -8615 -8622 -8623 -8654 -8656 -8658 -8659 -8660 -8661 -8692 -8960 -8992 -8994 -9084 -9085 -9115 -9140 -9180 -9186 -9655 -9656 -9665 -9666 -9720 -9728 -9839 -9840 -10176 -10181 -10183 -10214 -10224 -10240 -10496 -10627 -10649 -10712 -10716 -10748 -10750 -11008 -11056 -11077 -11079 -11085 -64297 -64298 -65122 -65123 -65124 -65127 -65291 -65292 -65308 -65311 -65372 -65373 -65374 -65375 -65506 -65507 -65513 -65517 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -126704 -126706 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/So.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/So.pl deleted file mode 100644 index 4385852a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/So.pl +++ /dev/null @@ -1,354 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V340 -166 -167 -169 -170 -174 -175 -176 -177 -1154 -1155 -1421 -1423 -1550 -1552 -1758 -1759 -1769 -1770 -1789 -1791 -2038 -2039 -2554 -2555 -2928 -2929 -3059 -3065 -3066 -3067 -3199 -3200 -3449 -3450 -3841 -3844 -3859 -3860 -3861 -3864 -3866 -3872 -3892 -3893 -3894 -3895 -3896 -3897 -4030 -4038 -4039 -4045 -4046 -4048 -4053 -4057 -4254 -4256 -5008 -5018 -6464 -6465 -6622 -6656 -7009 -7019 -7028 -7037 -8448 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8472 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8506 -8508 -8522 -8523 -8524 -8526 -8527 -8528 -8586 -8588 -8597 -8602 -8604 -8608 -8609 -8611 -8612 -8614 -8615 -8622 -8623 -8654 -8656 -8658 -8659 -8660 -8661 -8692 -8960 -8968 -8972 -8992 -8994 -9001 -9003 -9084 -9085 -9115 -9140 -9180 -9186 -9211 -9216 -9255 -9280 -9291 -9372 -9450 -9472 -9655 -9656 -9665 -9666 -9720 -9728 -9839 -9840 -10088 -10132 -10176 -10240 -10496 -11008 -11056 -11077 -11079 -11085 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11493 -11499 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12292 -12293 -12306 -12308 -12320 -12321 -12342 -12344 -12350 -12352 -12688 -12690 -12694 -12704 -12736 -12772 -12800 -12831 -12842 -12872 -12880 -12881 -12896 -12928 -12938 -12977 -12992 -13055 -13056 -13312 -19904 -19968 -42128 -42183 -43048 -43052 -43062 -43064 -43065 -43066 -43639 -43642 -65021 -65022 -65508 -65509 -65512 -65513 -65517 -65519 -65532 -65534 -65847 -65856 -65913 -65930 -65932 -65933 -65936 -65948 -65952 -65953 -66000 -66045 -67703 -67705 -68296 -68297 -71487 -71488 -92988 -92992 -92997 -92998 -113820 -113821 -118784 -119030 -119040 -119079 -119081 -119141 -119146 -119149 -119171 -119173 -119180 -119210 -119214 -119273 -119296 -119362 -119365 -119366 -119552 -119639 -120832 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121479 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -127995 -128000 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Z.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Z.pl deleted file mode 100644 index 2df1c02e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Z.pl +++ /dev/null @@ -1,30 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V16 -32 -33 -160 -161 -5760 -5761 -8192 -8203 -8232 -8234 -8239 -8240 -8287 -8288 -12288 -12289 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Zs.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Zs.pl deleted file mode 100644 index 26e83593..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Gc/Zs.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -32 -33 -160 -161 -5760 -5761 -8192 -8203 -8239 -8240 -8287 -8288 -12288 -12289 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GrBase/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GrBase/Y.pl deleted file mode 100644 index d115e99e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/GrBase/Y.pl +++ /dev/null @@ -1,1500 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1486 -32 -127 -160 -173 -174 -768 -880 -888 -890 -896 -900 -907 -908 -909 -910 -930 -931 -1155 -1162 -1328 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1421 -1424 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1488 -1515 -1520 -1525 -1542 -1552 -1563 -1564 -1566 -1611 -1632 -1648 -1649 -1750 -1758 -1759 -1765 -1767 -1769 -1770 -1774 -1806 -1808 -1809 -1810 -1840 -1869 -1958 -1969 -1970 -1984 -2027 -2036 -2043 -2048 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2096 -2111 -2112 -2137 -2142 -2143 -2208 -2229 -2307 -2362 -2363 -2364 -2365 -2369 -2377 -2381 -2382 -2385 -2392 -2402 -2404 -2433 -2434 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2493 -2494 -2495 -2497 -2503 -2505 -2507 -2509 -2510 -2511 -2524 -2526 -2527 -2530 -2534 -2556 -2563 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2622 -2625 -2649 -2653 -2654 -2655 -2662 -2672 -2674 -2677 -2691 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2749 -2753 -2761 -2762 -2763 -2765 -2768 -2769 -2784 -2786 -2790 -2802 -2809 -2810 -2818 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2877 -2878 -2880 -2881 -2887 -2889 -2891 -2893 -2908 -2910 -2911 -2914 -2918 -2936 -2947 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3007 -3008 -3009 -3011 -3014 -3017 -3018 -3021 -3024 -3025 -3046 -3067 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3134 -3137 -3141 -3160 -3163 -3168 -3170 -3174 -3184 -3192 -3200 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3261 -3263 -3264 -3266 -3267 -3269 -3271 -3273 -3274 -3276 -3294 -3295 -3296 -3298 -3302 -3312 -3313 -3315 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3390 -3391 -3393 -3398 -3401 -3402 -3405 -3406 -3407 -3423 -3426 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3536 -3538 -3544 -3551 -3558 -3568 -3570 -3573 -3585 -3633 -3634 -3636 -3647 -3655 -3663 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3761 -3762 -3764 -3773 -3774 -3776 -3781 -3782 -3783 -3792 -3802 -3804 -3808 -3840 -3864 -3866 -3893 -3894 -3895 -3896 -3897 -3898 -3912 -3913 -3949 -3967 -3968 -3973 -3974 -3976 -3981 -4030 -4038 -4039 -4045 -4046 -4059 -4096 -4141 -4145 -4146 -4152 -4153 -4155 -4157 -4159 -4184 -4186 -4190 -4193 -4209 -4213 -4226 -4227 -4229 -4231 -4237 -4238 -4253 -4254 -4294 -4295 -4296 -4301 -4302 -4304 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4960 -4989 -4992 -5018 -5024 -5110 -5112 -5118 -5120 -5789 -5792 -5881 -5888 -5901 -5902 -5906 -5920 -5938 -5941 -5943 -5952 -5970 -5984 -5997 -5998 -6001 -6016 -6068 -6070 -6071 -6078 -6086 -6087 -6089 -6100 -6109 -6112 -6122 -6128 -6138 -6144 -6155 -6160 -6170 -6176 -6264 -6272 -6313 -6314 -6315 -6320 -6390 -6400 -6431 -6435 -6439 -6441 -6444 -6448 -6450 -6451 -6457 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6679 -6681 -6683 -6686 -6742 -6743 -6744 -6753 -6754 -6755 -6757 -6765 -6771 -6784 -6794 -6800 -6810 -6816 -6830 -6916 -6964 -6965 -6966 -6971 -6972 -6973 -6978 -6979 -6988 -6992 -7019 -7028 -7037 -7042 -7074 -7078 -7080 -7082 -7083 -7086 -7142 -7143 -7144 -7146 -7149 -7150 -7151 -7154 -7156 -7164 -7212 -7220 -7222 -7227 -7242 -7245 -7296 -7360 -7368 -7379 -7380 -7393 -7394 -7401 -7405 -7406 -7412 -7413 -7415 -7424 -7616 -7680 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8203 -8208 -8232 -8239 -8288 -8304 -8306 -8308 -8335 -8336 -8349 -8352 -8383 -8448 -8588 -8592 -9211 -9216 -9255 -9280 -9291 -9312 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11264 -11311 -11312 -11359 -11360 -11503 -11506 -11508 -11513 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11633 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11776 -11843 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12330 -12336 -12352 -12353 -12439 -12443 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19894 -19904 -40918 -40960 -42125 -42128 -42183 -42192 -42540 -42560 -42607 -42611 -42612 -42622 -42654 -42656 -42736 -42738 -42744 -42752 -42926 -42928 -42936 -42999 -43010 -43011 -43014 -43015 -43019 -43020 -43045 -43047 -43052 -43056 -43066 -43072 -43128 -43136 -43204 -43214 -43226 -43250 -43262 -43264 -43302 -43310 -43335 -43346 -43348 -43359 -43389 -43395 -43443 -43444 -43446 -43450 -43452 -43453 -43470 -43471 -43482 -43486 -43493 -43494 -43519 -43520 -43561 -43567 -43569 -43571 -43573 -43584 -43587 -43588 -43596 -43597 -43598 -43600 -43610 -43612 -43644 -43645 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43715 -43739 -43756 -43758 -43766 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43878 -43888 -44005 -44006 -44008 -44009 -44013 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64286 -64287 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64450 -64467 -64832 -64848 -64912 -64914 -64968 -65008 -65022 -65040 -65050 -65072 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65281 -65438 -65440 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65532 -65534 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65933 -65936 -65948 -65952 -65953 -66000 -66045 -66176 -66205 -66208 -66257 -66273 -66300 -66304 -66340 -66352 -66379 -66384 -66422 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -66927 -66928 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67743 -67751 -67760 -67808 -67827 -67828 -67830 -67835 -67868 -67871 -67898 -67903 -67904 -67968 -68024 -68028 -68048 -68050 -68097 -68112 -68116 -68117 -68120 -68121 -68148 -68160 -68168 -68176 -68185 -68192 -68256 -68288 -68325 -68331 -68343 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68498 -68505 -68509 -68521 -68528 -68608 -68681 -68736 -68787 -68800 -68851 -68858 -68864 -69216 -69247 -69632 -69633 -69634 -69688 -69703 -69710 -69714 -69744 -69762 -69811 -69815 -69817 -69819 -69821 -69822 -69826 -69840 -69865 -69872 -69882 -69891 -69927 -69932 -69933 -69942 -69956 -69968 -70003 -70004 -70007 -70018 -70070 -70079 -70090 -70093 -70094 -70096 -70112 -70113 -70133 -70144 -70162 -70163 -70191 -70194 -70196 -70197 -70198 -70200 -70206 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70314 -70320 -70367 -70368 -70371 -70384 -70394 -70402 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70461 -70462 -70463 -70464 -70465 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70493 -70500 -70784 -70832 -70833 -70835 -70841 -70842 -70843 -70845 -70846 -70847 -70849 -70850 -70852 -70856 -70864 -70874 -71040 -71087 -71088 -71090 -71096 -71100 -71102 -71103 -71105 -71132 -71168 -71219 -71227 -71229 -71230 -71231 -71233 -71237 -71248 -71258 -71296 -71339 -71340 -71341 -71342 -71344 -71350 -71351 -71360 -71370 -71424 -71450 -71456 -71458 -71462 -71463 -71472 -71488 -71840 -71923 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74864 -74869 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92782 -92784 -92880 -92910 -92917 -92918 -92928 -92976 -92983 -92998 -93008 -93018 -93019 -93026 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94099 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113820 -113821 -113823 -113824 -118784 -119030 -119040 -119079 -119081 -119141 -119142 -119143 -119146 -119150 -119171 -119173 -119180 -119210 -119214 -119273 -119296 -119362 -119365 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121484 -124928 -125125 -125127 -125136 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127232 -127245 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Hex/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Hex/Y.pl deleted file mode 100644 index 007a407a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Hex/Y.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -48 -58 -65 -71 -97 -103 -65296 -65306 -65313 -65319 -65345 -65351 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Hst/NA.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Hst/NA.pl deleted file mode 100644 index 9958bacf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Hst/NA.pl +++ /dev/null @@ -1,25 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V11 -0 -4352 -4608 -43360 -43389 -44032 -55204 -55216 -55239 -55243 -55292 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Hyphen/T.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Hyphen/T.pl deleted file mode 100644 index 82eaf74a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Hyphen/T.pl +++ /dev/null @@ -1,34 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V20 -45 -46 -173 -174 -1418 -1419 -6150 -6151 -8208 -8210 -11799 -11800 -12539 -12540 -65123 -65124 -65293 -65294 -65381 -65382 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/IDC/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/IDC/Y.pl deleted file mode 100644 index 705c92ac..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/IDC/Y.pl +++ /dev/null @@ -1,1316 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1302 -48 -58 -65 -91 -95 -96 -97 -123 -170 -171 -181 -182 -183 -184 -186 -187 -192 -215 -216 -247 -248 -706 -710 -722 -736 -741 -748 -749 -750 -751 -768 -885 -886 -888 -890 -894 -895 -896 -902 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1155 -1160 -1162 -1328 -1329 -1367 -1369 -1370 -1377 -1416 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1488 -1515 -1520 -1523 -1552 -1563 -1568 -1642 -1646 -1748 -1749 -1757 -1759 -1769 -1770 -1789 -1791 -1792 -1808 -1867 -1869 -1970 -1984 -2038 -2042 -2043 -2048 -2094 -2112 -2140 -2208 -2229 -2275 -2404 -2406 -2416 -2417 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2546 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2800 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2928 -2929 -2930 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3056 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3440 -3450 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3572 -3585 -3643 -3648 -3663 -3664 -3674 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3841 -3864 -3866 -3872 -3882 -3893 -3894 -3895 -3896 -3897 -3898 -3902 -3912 -3913 -3949 -3953 -3973 -3974 -3992 -3993 -4029 -4038 -4039 -4096 -4170 -4176 -4254 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4960 -4969 -4978 -4992 -5008 -5024 -5110 -5112 -5118 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5870 -5881 -5888 -5901 -5902 -5909 -5920 -5941 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6100 -6103 -6104 -6108 -6110 -6112 -6122 -6155 -6158 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6470 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6656 -6684 -6688 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6823 -6824 -6832 -6846 -6912 -6988 -6992 -7002 -7019 -7028 -7040 -7156 -7168 -7224 -7232 -7242 -7245 -7294 -7376 -7379 -7380 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8255 -8257 -8276 -8277 -8305 -8306 -8319 -8320 -8336 -8349 -8400 -8413 -8417 -8418 -8421 -8433 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8472 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8544 -8585 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11776 -12293 -12296 -12321 -12336 -12337 -12342 -12344 -12349 -12353 -12439 -12441 -12448 -12449 -12539 -12540 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13312 -19894 -19968 -40918 -40960 -42125 -42192 -42238 -42240 -42509 -42512 -42540 -42560 -42608 -42612 -42622 -42623 -42738 -42775 -42784 -42786 -42889 -42891 -42926 -42928 -42936 -42999 -43048 -43072 -43124 -43136 -43205 -43216 -43226 -43232 -43256 -43259 -43260 -43261 -43262 -43264 -43310 -43312 -43348 -43360 -43389 -43392 -43457 -43471 -43482 -43488 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43616 -43639 -43642 -43715 -43739 -43742 -43744 -43760 -43762 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43867 -43868 -43878 -43888 -44011 -44012 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65020 -65024 -65040 -65056 -65072 -65075 -65077 -65101 -65104 -65136 -65141 -65142 -65277 -65296 -65306 -65313 -65339 -65343 -65344 -65345 -65371 -65382 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65856 -65909 -66045 -66046 -66176 -66205 -66208 -66257 -66272 -66273 -66304 -66336 -66352 -66379 -66384 -66427 -66432 -66462 -66464 -66500 -66504 -66512 -66513 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68160 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68327 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -68736 -68787 -68800 -68851 -69632 -69703 -69734 -69744 -69759 -69819 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69952 -69968 -70004 -70006 -70007 -70016 -70085 -70090 -70093 -70096 -70107 -70108 -70109 -70144 -70162 -70163 -70200 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70854 -70855 -70856 -70864 -70874 -71040 -71094 -71096 -71105 -71128 -71134 -71168 -71233 -71236 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71482 -71840 -71914 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92880 -92910 -92912 -92917 -92928 -92983 -92992 -92996 -93008 -93018 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113821 -113823 -119141 -119146 -119149 -119155 -119163 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -120782 -120832 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -124928 -125125 -125136 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/IDS/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/IDS/Y.pl deleted file mode 100644 index 35f85caa..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/IDS/Y.pl +++ /dev/null @@ -1,1124 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1110 -65 -91 -97 -123 -170 -171 -181 -182 -186 -187 -192 -215 -216 -247 -248 -706 -710 -722 -736 -741 -748 -749 -750 -751 -880 -885 -886 -888 -890 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1162 -1328 -1329 -1367 -1369 -1370 -1377 -1416 -1488 -1515 -1520 -1523 -1568 -1611 -1646 -1648 -1649 -1748 -1749 -1750 -1765 -1767 -1774 -1776 -1786 -1789 -1791 -1792 -1808 -1809 -1810 -1840 -1869 -1958 -1969 -1970 -1994 -2027 -2036 -2038 -2042 -2043 -2048 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2112 -2137 -2208 -2229 -2308 -2362 -2365 -2366 -2384 -2385 -2392 -2402 -2417 -2433 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2493 -2494 -2510 -2511 -2524 -2526 -2527 -2530 -2544 -2546 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2649 -2653 -2654 -2655 -2674 -2677 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2749 -2750 -2768 -2769 -2784 -2786 -2809 -2810 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2877 -2878 -2908 -2910 -2911 -2914 -2929 -2930 -2947 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3024 -3025 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3134 -3160 -3163 -3168 -3170 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3261 -3262 -3294 -3295 -3296 -3298 -3313 -3315 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3390 -3406 -3407 -3423 -3426 -3450 -3456 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3585 -3633 -3634 -3636 -3648 -3655 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3761 -3762 -3764 -3773 -3774 -3776 -3781 -3782 -3783 -3804 -3808 -3840 -3841 -3904 -3912 -3913 -3949 -3976 -3981 -4096 -4139 -4159 -4160 -4176 -4182 -4186 -4190 -4193 -4194 -4197 -4199 -4206 -4209 -4213 -4226 -4238 -4239 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4992 -5008 -5024 -5110 -5112 -5118 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5870 -5881 -5888 -5901 -5902 -5906 -5920 -5938 -5952 -5970 -5984 -5997 -5998 -6001 -6016 -6068 -6103 -6104 -6108 -6109 -6176 -6264 -6272 -6313 -6314 -6315 -6320 -6390 -6400 -6431 -6480 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6656 -6679 -6688 -6741 -6823 -6824 -6917 -6964 -6981 -6988 -7043 -7073 -7086 -7088 -7098 -7142 -7168 -7204 -7245 -7248 -7258 -7294 -7401 -7405 -7406 -7410 -7413 -7415 -7424 -7616 -7680 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8305 -8306 -8319 -8320 -8336 -8349 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8472 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8544 -8585 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11503 -11506 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -12293 -12296 -12321 -12330 -12337 -12342 -12344 -12349 -12353 -12439 -12443 -12448 -12449 -12539 -12540 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13312 -19894 -19968 -40918 -40960 -42125 -42192 -42238 -42240 -42509 -42512 -42528 -42538 -42540 -42560 -42607 -42623 -42654 -42656 -42736 -42775 -42784 -42786 -42889 -42891 -42926 -42928 -42936 -42999 -43010 -43011 -43014 -43015 -43019 -43020 -43043 -43072 -43124 -43138 -43188 -43250 -43256 -43259 -43260 -43261 -43262 -43274 -43302 -43312 -43335 -43360 -43389 -43396 -43443 -43471 -43472 -43488 -43493 -43494 -43504 -43514 -43519 -43520 -43561 -43584 -43587 -43588 -43596 -43616 -43639 -43642 -43643 -43646 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43715 -43739 -43742 -43744 -43755 -43762 -43765 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43867 -43868 -43878 -43888 -44003 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64286 -64287 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65020 -65136 -65141 -65142 -65277 -65313 -65339 -65345 -65371 -65382 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65856 -65909 -66176 -66205 -66208 -66257 -66304 -66336 -66352 -66379 -66384 -66422 -66432 -66462 -66464 -66500 -66504 -66512 -66513 -66518 -66560 -66718 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68097 -68112 -68116 -68117 -68120 -68121 -68148 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68325 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -68736 -68787 -68800 -68851 -69635 -69688 -69763 -69808 -69840 -69865 -69891 -69927 -69968 -70003 -70006 -70007 -70019 -70067 -70081 -70085 -70106 -70107 -70108 -70109 -70144 -70162 -70163 -70188 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70367 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70461 -70462 -70480 -70481 -70493 -70498 -70784 -70832 -70852 -70854 -70855 -70856 -71040 -71087 -71128 -71132 -71168 -71216 -71236 -71237 -71296 -71339 -71424 -71450 -71840 -71904 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92880 -92910 -92928 -92976 -92992 -92996 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94033 -94099 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -124928 -125125 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ideo/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ideo/Y.pl deleted file mode 100644 index bc8da269..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Ideo/Y.pl +++ /dev/null @@ -1,38 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V24 -12294 -12296 -12321 -12330 -12344 -12347 -13312 -19894 -19968 -40918 -63744 -64110 -64112 -64218 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/2_0.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/2_0.pl deleted file mode 100644 index f78b645b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/2_0.pl +++ /dev/null @@ -1,638 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V624 -0 -502 -506 -536 -592 -681 -688 -735 -736 -746 -768 -838 -864 -866 -884 -886 -890 -891 -894 -895 -900 -907 -908 -909 -910 -930 -931 -975 -976 -983 -986 -987 -988 -989 -990 -991 -992 -993 -994 -1012 -1025 -1037 -1038 -1104 -1105 -1117 -1118 -1159 -1168 -1221 -1223 -1225 -1227 -1229 -1232 -1260 -1262 -1270 -1272 -1274 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1418 -1425 -1442 -1443 -1466 -1467 -1477 -1488 -1515 -1520 -1525 -1548 -1549 -1563 -1564 -1567 -1568 -1569 -1595 -1600 -1619 -1632 -1646 -1648 -1720 -1722 -1727 -1728 -1743 -1744 -1774 -1776 -1786 -2305 -2308 -2309 -2362 -2364 -2382 -2384 -2389 -2392 -2417 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2493 -2494 -2501 -2503 -2505 -2507 -2510 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2555 -2562 -2563 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2649 -2653 -2654 -2655 -2662 -2677 -2689 -2692 -2693 -2700 -2701 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2785 -2790 -2800 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2870 -2874 -2876 -2884 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2914 -2918 -2929 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -2998 -2999 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3031 -3032 -3047 -3059 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3124 -3125 -3130 -3134 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3168 -3170 -3174 -3184 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3262 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3298 -3302 -3312 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3369 -3370 -3386 -3390 -3396 -3398 -3401 -3402 -3406 -3415 -3416 -3424 -3426 -3430 -3440 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3806 -3840 -3912 -3913 -3946 -3953 -3980 -3984 -3990 -3991 -3992 -3993 -4014 -4017 -4024 -4025 -4026 -4256 -4294 -4304 -4343 -4347 -4348 -4352 -4442 -4447 -4515 -4520 -4602 -7680 -7836 -7840 -7930 -7936 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8239 -8240 -8263 -8298 -8305 -8308 -8335 -8352 -8364 -8400 -8418 -8448 -8505 -8531 -8579 -8592 -8683 -8704 -8946 -8960 -8961 -8962 -9083 -9216 -9253 -9280 -9291 -9312 -9451 -9472 -9622 -9632 -9712 -9728 -9748 -9754 -9840 -9985 -9989 -9990 -9994 -9996 -10024 -10025 -10060 -10061 -10062 -10063 -10067 -10070 -10071 -10072 -10079 -10081 -10088 -10102 -10133 -10136 -10160 -10161 -10175 -12288 -12344 -12351 -12352 -12353 -12437 -12441 -12447 -12449 -12543 -12549 -12589 -12593 -12687 -12688 -12704 -12800 -12829 -12832 -12868 -12896 -12924 -12927 -12977 -12992 -13004 -13008 -13055 -13056 -13175 -13179 -13278 -13280 -13311 -19968 -40870 -44032 -55204 -55296 -64046 -64256 -64263 -64275 -64280 -64286 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64832 -64848 -64912 -64914 -64968 -65008 -65020 -65056 -65060 -65072 -65093 -65097 -65107 -65108 -65127 -65128 -65132 -65136 -65139 -65140 -65141 -65142 -65277 -65279 -65280 -65281 -65375 -65377 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65533 -65536 -131070 -131072 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/2_1.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/2_1.pl deleted file mode 100644 index fab8a553..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/2_1.pl +++ /dev/null @@ -1,638 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V624 -0 -502 -506 -536 -592 -681 -688 -735 -736 -746 -768 -838 -864 -866 -884 -886 -890 -891 -894 -895 -900 -907 -908 -909 -910 -930 -931 -975 -976 -983 -986 -987 -988 -989 -990 -991 -992 -993 -994 -1012 -1025 -1037 -1038 -1104 -1105 -1117 -1118 -1159 -1168 -1221 -1223 -1225 -1227 -1229 -1232 -1260 -1262 -1270 -1272 -1274 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1418 -1425 -1442 -1443 -1466 -1467 -1477 -1488 -1515 -1520 -1525 -1548 -1549 -1563 -1564 -1567 -1568 -1569 -1595 -1600 -1619 -1632 -1646 -1648 -1720 -1722 -1727 -1728 -1743 -1744 -1774 -1776 -1786 -2305 -2308 -2309 -2362 -2364 -2382 -2384 -2389 -2392 -2417 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2493 -2494 -2501 -2503 -2505 -2507 -2510 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2555 -2562 -2563 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2649 -2653 -2654 -2655 -2662 -2677 -2689 -2692 -2693 -2700 -2701 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2785 -2790 -2800 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2870 -2874 -2876 -2884 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2914 -2918 -2929 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -2998 -2999 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3031 -3032 -3047 -3059 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3124 -3125 -3130 -3134 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3168 -3170 -3174 -3184 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3262 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3298 -3302 -3312 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3369 -3370 -3386 -3390 -3396 -3398 -3401 -3402 -3406 -3415 -3416 -3424 -3426 -3430 -3440 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3806 -3840 -3912 -3913 -3946 -3953 -3980 -3984 -3990 -3991 -3992 -3993 -4014 -4017 -4024 -4025 -4026 -4256 -4294 -4304 -4343 -4347 -4348 -4352 -4442 -4447 -4515 -4520 -4602 -7680 -7836 -7840 -7930 -7936 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8239 -8240 -8263 -8298 -8305 -8308 -8335 -8352 -8365 -8400 -8418 -8448 -8505 -8531 -8579 -8592 -8683 -8704 -8946 -8960 -8961 -8962 -9083 -9216 -9253 -9280 -9291 -9312 -9451 -9472 -9622 -9632 -9712 -9728 -9748 -9754 -9840 -9985 -9989 -9990 -9994 -9996 -10024 -10025 -10060 -10061 -10062 -10063 -10067 -10070 -10071 -10072 -10079 -10081 -10088 -10102 -10133 -10136 -10160 -10161 -10175 -12288 -12344 -12351 -12352 -12353 -12437 -12441 -12447 -12449 -12543 -12549 -12589 -12593 -12687 -12688 -12704 -12800 -12829 -12832 -12868 -12896 -12924 -12927 -12977 -12992 -13004 -13008 -13055 -13056 -13175 -13179 -13278 -13280 -13311 -19968 -40870 -44032 -55204 -55296 -64046 -64256 -64263 -64275 -64280 -64286 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64832 -64848 -64912 -64914 -64968 -65008 -65020 -65056 -65060 -65072 -65093 -65097 -65107 -65108 -65127 -65128 -65132 -65136 -65139 -65140 -65141 -65142 -65277 -65279 -65280 -65281 -65375 -65377 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65532 -65536 -131070 -131072 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/3_0.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/3_0.pl deleted file mode 100644 index bf8d255c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/3_0.pl +++ /dev/null @@ -1,752 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V738 -0 -544 -546 -564 -592 -686 -688 -751 -768 -847 -864 -867 -884 -886 -890 -891 -894 -895 -900 -907 -908 -909 -910 -930 -931 -975 -976 -984 -986 -1012 -1024 -1159 -1160 -1162 -1164 -1221 -1223 -1225 -1227 -1229 -1232 -1270 -1272 -1274 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1425 -1442 -1443 -1466 -1467 -1477 -1488 -1515 -1520 -1525 -1548 -1549 -1563 -1564 -1567 -1568 -1569 -1595 -1600 -1622 -1632 -1646 -1648 -1774 -1776 -1791 -1792 -1806 -1807 -1837 -1840 -1867 -1920 -1969 -2305 -2308 -2309 -2362 -2364 -2382 -2384 -2389 -2392 -2417 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2493 -2494 -2501 -2503 -2505 -2507 -2510 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2555 -2562 -2563 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2649 -2653 -2654 -2655 -2662 -2677 -2689 -2692 -2693 -2700 -2701 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2785 -2790 -2800 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2870 -2874 -2876 -2884 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2914 -2918 -2929 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -2998 -2999 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3031 -3032 -3047 -3059 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3124 -3125 -3130 -3134 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3168 -3170 -3174 -3184 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3262 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3298 -3302 -3312 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3369 -3370 -3386 -3390 -3396 -3398 -3401 -3402 -3406 -3415 -3416 -3424 -3426 -3430 -3440 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3806 -3840 -3912 -3913 -3947 -3953 -3980 -3984 -3992 -3993 -4029 -4030 -4045 -4047 -4048 -4096 -4130 -4131 -4136 -4137 -4139 -4140 -4147 -4150 -4154 -4160 -4186 -4256 -4294 -4304 -4343 -4347 -4348 -4352 -4442 -4447 -4515 -4520 -4602 -4608 -4615 -4616 -4679 -4680 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4743 -4744 -4745 -4746 -4750 -4752 -4783 -4784 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4815 -4816 -4823 -4824 -4847 -4848 -4879 -4880 -4881 -4882 -4886 -4888 -4895 -4896 -4935 -4936 -4955 -4961 -4989 -5024 -5109 -5121 -5751 -5760 -5789 -5792 -5873 -6016 -6109 -6112 -6122 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6314 -7680 -7836 -7840 -7930 -7936 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8263 -8264 -8270 -8298 -8305 -8308 -8335 -8352 -8368 -8400 -8420 -8448 -8507 -8531 -8580 -8592 -8692 -8704 -8946 -8960 -9084 -9085 -9115 -9216 -9255 -9280 -9291 -9312 -9451 -9472 -9622 -9632 -9720 -9728 -9748 -9753 -9842 -9985 -9989 -9990 -9994 -9996 -10024 -10025 -10060 -10061 -10062 -10063 -10067 -10070 -10071 -10072 -10079 -10081 -10088 -10102 -10133 -10136 -10160 -10161 -10175 -10240 -10496 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12347 -12350 -12352 -12353 -12437 -12441 -12447 -12449 -12543 -12549 -12589 -12593 -12687 -12688 -12728 -12800 -12829 -12832 -12868 -12896 -12924 -12927 -12977 -12992 -13004 -13008 -13055 -13056 -13175 -13179 -13278 -13280 -13311 -13312 -19894 -19968 -40870 -40960 -42125 -42128 -42146 -42148 -42164 -42165 -42177 -42178 -42181 -42182 -42183 -44032 -55204 -55296 -64046 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64832 -64848 -64912 -64914 -64968 -65008 -65020 -65056 -65060 -65072 -65093 -65097 -65107 -65108 -65127 -65128 -65132 -65136 -65139 -65140 -65141 -65142 -65277 -65279 -65280 -65281 -65375 -65377 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65536 -131070 -131072 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/3_1.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/3_1.pl deleted file mode 100644 index f23f07fb..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/3_1.pl +++ /dev/null @@ -1,818 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V804 -0 -544 -546 -564 -592 -686 -688 -751 -768 -847 -864 -867 -884 -886 -890 -891 -894 -895 -900 -907 -908 -909 -910 -930 -931 -975 -976 -984 -986 -1014 -1024 -1159 -1160 -1162 -1164 -1221 -1223 -1225 -1227 -1229 -1232 -1270 -1272 -1274 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1425 -1442 -1443 -1466 -1467 -1477 -1488 -1515 -1520 -1525 -1548 -1549 -1563 -1564 -1567 -1568 -1569 -1595 -1600 -1622 -1632 -1646 -1648 -1774 -1776 -1791 -1792 -1806 -1807 -1837 -1840 -1867 -1920 -1969 -2305 -2308 -2309 -2362 -2364 -2382 -2384 -2389 -2392 -2417 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2493 -2494 -2501 -2503 -2505 -2507 -2510 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2555 -2562 -2563 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2649 -2653 -2654 -2655 -2662 -2677 -2689 -2692 -2693 -2700 -2701 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2785 -2790 -2800 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2870 -2874 -2876 -2884 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2914 -2918 -2929 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -2998 -2999 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3031 -3032 -3047 -3059 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3124 -3125 -3130 -3134 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3168 -3170 -3174 -3184 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3262 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3298 -3302 -3312 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3369 -3370 -3386 -3390 -3396 -3398 -3401 -3402 -3406 -3415 -3416 -3424 -3426 -3430 -3440 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3806 -3840 -3912 -3913 -3947 -3953 -3980 -3984 -3992 -3993 -4029 -4030 -4045 -4047 -4048 -4096 -4130 -4131 -4136 -4137 -4139 -4140 -4147 -4150 -4154 -4160 -4186 -4256 -4294 -4304 -4343 -4347 -4348 -4352 -4442 -4447 -4515 -4520 -4602 -4608 -4615 -4616 -4679 -4680 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4743 -4744 -4745 -4746 -4750 -4752 -4783 -4784 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4815 -4816 -4823 -4824 -4847 -4848 -4879 -4880 -4881 -4882 -4886 -4888 -4895 -4896 -4935 -4936 -4955 -4961 -4989 -5024 -5109 -5121 -5751 -5760 -5789 -5792 -5873 -6016 -6109 -6112 -6122 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6314 -7680 -7836 -7840 -7930 -7936 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8263 -8264 -8270 -8298 -8305 -8308 -8335 -8352 -8368 -8400 -8420 -8448 -8507 -8531 -8580 -8592 -8692 -8704 -8946 -8960 -9084 -9085 -9115 -9216 -9255 -9280 -9291 -9312 -9451 -9472 -9622 -9632 -9720 -9728 -9748 -9753 -9842 -9985 -9989 -9990 -9994 -9996 -10024 -10025 -10060 -10061 -10062 -10063 -10067 -10070 -10071 -10072 -10079 -10081 -10088 -10102 -10133 -10136 -10160 -10161 -10175 -10240 -10496 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12347 -12350 -12352 -12353 -12437 -12441 -12447 -12449 -12543 -12549 -12589 -12593 -12687 -12688 -12728 -12800 -12829 -12832 -12868 -12896 -12924 -12927 -12977 -12992 -13004 -13008 -13055 -13056 -13175 -13179 -13278 -13280 -13311 -13312 -19894 -19968 -40870 -40960 -42125 -42128 -42146 -42148 -42164 -42165 -42177 -42178 -42181 -42182 -42183 -44032 -55204 -55296 -64046 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64832 -64848 -64912 -64914 -64968 -64976 -65020 -65056 -65060 -65072 -65093 -65097 -65107 -65108 -65127 -65128 -65132 -65136 -65139 -65140 -65141 -65142 -65277 -65279 -65280 -65281 -65375 -65377 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65536 -66304 -66335 -66336 -66340 -66352 -66379 -66560 -66598 -66600 -66638 -118784 -119030 -119040 -119079 -119082 -119262 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120001 -120002 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120484 -120488 -120778 -120782 -120832 -131070 -173783 -194560 -195102 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -917505 -917506 -917536 -917632 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/3_2.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/3_2.pl deleted file mode 100644 index fe067b2e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/3_2.pl +++ /dev/null @@ -1,808 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V794 -0 -545 -546 -564 -592 -686 -688 -751 -768 -848 -864 -880 -884 -886 -890 -891 -894 -895 -900 -907 -908 -909 -910 -930 -931 -975 -976 -1015 -1024 -1159 -1160 -1231 -1232 -1270 -1272 -1274 -1280 -1296 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1425 -1442 -1443 -1466 -1467 -1477 -1488 -1515 -1520 -1525 -1548 -1549 -1563 -1564 -1567 -1568 -1569 -1595 -1600 -1622 -1632 -1774 -1776 -1791 -1792 -1806 -1807 -1837 -1840 -1867 -1920 -1970 -2305 -2308 -2309 -2362 -2364 -2382 -2384 -2389 -2392 -2417 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2493 -2494 -2501 -2503 -2505 -2507 -2510 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2555 -2562 -2563 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2649 -2653 -2654 -2655 -2662 -2677 -2689 -2692 -2693 -2700 -2701 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2785 -2790 -2800 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2870 -2874 -2876 -2884 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2914 -2918 -2929 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -2998 -2999 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3031 -3032 -3047 -3059 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3124 -3125 -3130 -3134 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3168 -3170 -3174 -3184 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3262 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3298 -3302 -3312 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3369 -3370 -3386 -3390 -3396 -3398 -3401 -3402 -3406 -3415 -3416 -3424 -3426 -3430 -3440 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3806 -3840 -3912 -3913 -3947 -3953 -3980 -3984 -3992 -3993 -4029 -4030 -4045 -4047 -4048 -4096 -4130 -4131 -4136 -4137 -4139 -4140 -4147 -4150 -4154 -4160 -4186 -4256 -4294 -4304 -4345 -4347 -4348 -4352 -4442 -4447 -4515 -4520 -4602 -4608 -4615 -4616 -4679 -4680 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4743 -4744 -4745 -4746 -4750 -4752 -4783 -4784 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4815 -4816 -4823 -4824 -4847 -4848 -4879 -4880 -4881 -4882 -4886 -4888 -4895 -4896 -4935 -4936 -4955 -4961 -4989 -5024 -5109 -5121 -5751 -5760 -5789 -5792 -5873 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6109 -6112 -6122 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6314 -7680 -7836 -7840 -7930 -7936 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8275 -8279 -8280 -8287 -8292 -8298 -8306 -8308 -8335 -8352 -8370 -8400 -8427 -8448 -8507 -8509 -8524 -8531 -8580 -8592 -9167 -9216 -9255 -9280 -9291 -9312 -9471 -9472 -9748 -9750 -9752 -9753 -9854 -9856 -9866 -9985 -9989 -9990 -9994 -9996 -10024 -10025 -10060 -10061 -10062 -10063 -10067 -10070 -10071 -10072 -10079 -10081 -10133 -10136 -10160 -10161 -10175 -10192 -10220 -10224 -11008 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12589 -12593 -12687 -12688 -12728 -12784 -12829 -12832 -12868 -12881 -12924 -12927 -13004 -13008 -13055 -13056 -13175 -13179 -13278 -13280 -13311 -13312 -19894 -19968 -40870 -40960 -42125 -42128 -42183 -44032 -55204 -55296 -64046 -64048 -64107 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64832 -64848 -64912 -64914 -64968 -64976 -65021 -65024 -65040 -65056 -65060 -65072 -65095 -65097 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65536 -66304 -66335 -66336 -66340 -66352 -66379 -66560 -66598 -66600 -66638 -118784 -119030 -119040 -119079 -119082 -119262 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120001 -120002 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120484 -120488 -120778 -120782 -120832 -131070 -173783 -194560 -195102 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -917505 -917506 -917536 -917632 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/4_0.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/4_0.pl deleted file mode 100644 index 8e920c55..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/4_0.pl +++ /dev/null @@ -1,838 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V824 -0 -567 -592 -856 -861 -880 -884 -886 -890 -891 -894 -895 -900 -907 -908 -909 -910 -930 -931 -975 -976 -1020 -1024 -1159 -1160 -1231 -1232 -1270 -1272 -1274 -1280 -1296 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1425 -1442 -1443 -1466 -1467 -1477 -1488 -1515 -1520 -1525 -1536 -1540 -1548 -1558 -1563 -1564 -1567 -1568 -1569 -1595 -1600 -1625 -1632 -1806 -1807 -1867 -1869 -1872 -1920 -1970 -2305 -2362 -2364 -2382 -2384 -2389 -2392 -2417 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2510 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2555 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2649 -2653 -2654 -2655 -2662 -2677 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2800 -2801 -2802 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2884 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2914 -2918 -2930 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -2998 -2999 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3031 -3032 -3047 -3067 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3124 -3125 -3130 -3134 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3168 -3170 -3174 -3184 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3298 -3302 -3312 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3369 -3370 -3386 -3390 -3396 -3398 -3401 -3402 -3406 -3415 -3416 -3424 -3426 -3430 -3440 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3806 -3840 -3912 -3913 -3947 -3953 -3980 -3984 -3992 -3993 -4029 -4030 -4045 -4047 -4048 -4096 -4130 -4131 -4136 -4137 -4139 -4140 -4147 -4150 -4154 -4160 -4186 -4256 -4294 -4304 -4345 -4347 -4348 -4352 -4442 -4447 -4515 -4520 -4602 -4608 -4615 -4616 -4679 -4680 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4743 -4744 -4745 -4746 -4750 -4752 -4783 -4784 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4815 -4816 -4823 -4824 -4847 -4848 -4879 -4880 -4881 -4882 -4886 -4888 -4895 -4896 -4935 -4936 -4955 -4961 -4989 -5024 -5109 -5121 -5751 -5760 -5789 -5792 -5873 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6314 -6400 -6429 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6624 -6656 -7424 -7532 -7680 -7836 -7840 -7930 -7936 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8277 -8279 -8280 -8287 -8292 -8298 -8306 -8308 -8335 -8352 -8370 -8400 -8427 -8448 -8508 -8509 -8524 -8531 -8580 -8592 -9169 -9216 -9255 -9280 -9291 -9312 -9752 -9753 -9854 -9856 -9874 -9888 -9890 -9985 -9989 -9990 -9994 -9996 -10024 -10025 -10060 -10061 -10062 -10063 -10067 -10070 -10071 -10072 -10079 -10081 -10133 -10136 -10160 -10161 -10175 -10192 -10220 -10224 -11022 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12589 -12593 -12687 -12688 -12728 -12784 -12831 -12832 -12868 -12880 -12926 -12927 -13055 -13056 -19894 -19904 -40870 -40960 -42125 -42128 -42183 -44032 -55204 -55296 -64046 -64048 -64107 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64832 -64848 -64912 -64914 -64968 -64976 -65022 -65024 -65040 -65056 -65060 -65072 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65856 -66304 -66335 -66336 -66340 -66352 -66379 -66432 -66462 -66463 -66464 -66560 -66718 -66720 -66730 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67648 -118784 -119030 -119040 -119079 -119082 -119262 -119552 -119639 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120484 -120488 -120778 -120782 -120832 -131070 -173783 -194560 -195102 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -917505 -917506 -917536 -917632 -917760 -918000 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/4_1.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/4_1.pl deleted file mode 100644 index 5366e455..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/4_1.pl +++ /dev/null @@ -1,874 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V860 -0 -578 -592 -880 -884 -886 -890 -891 -894 -895 -900 -907 -908 -909 -910 -930 -931 -975 -976 -1159 -1160 -1231 -1232 -1274 -1280 -1296 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1425 -1466 -1467 -1480 -1488 -1515 -1520 -1525 -1536 -1540 -1547 -1558 -1563 -1564 -1566 -1568 -1569 -1595 -1600 -1631 -1632 -1806 -1807 -1867 -1869 -1902 -1920 -1970 -2305 -2362 -2364 -2382 -2384 -2389 -2392 -2417 -2429 -2430 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2555 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2649 -2653 -2654 -2655 -2662 -2677 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2800 -2801 -2802 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2884 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2914 -2918 -2930 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3031 -3032 -3046 -3067 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3124 -3125 -3130 -3134 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3168 -3170 -3174 -3184 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3298 -3302 -3312 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3369 -3370 -3386 -3390 -3396 -3398 -3401 -3402 -3406 -3415 -3416 -3424 -3426 -3430 -3440 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3806 -3840 -3912 -3913 -3947 -3953 -3980 -3984 -3992 -3993 -4029 -4030 -4045 -4047 -4050 -4096 -4130 -4131 -4136 -4137 -4139 -4140 -4147 -4150 -4154 -4160 -4186 -4256 -4294 -4304 -4349 -4352 -4442 -4447 -4515 -4520 -4602 -4608 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4959 -4989 -4992 -5018 -5024 -5109 -5121 -5751 -5760 -5789 -5792 -5873 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6314 -6400 -6429 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6570 -6576 -6602 -6608 -6618 -6622 -6684 -6686 -6688 -7424 -7620 -7680 -7836 -7840 -7930 -7936 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8292 -8298 -8306 -8308 -8335 -8336 -8341 -8352 -8374 -8400 -8428 -8448 -8525 -8531 -8580 -8592 -9180 -9216 -9255 -9280 -9291 -9312 -9885 -9888 -9906 -9985 -9989 -9990 -9994 -9996 -10024 -10025 -10060 -10061 -10062 -10063 -10067 -10070 -10071 -10072 -10079 -10081 -10133 -10136 -10160 -10161 -10175 -10176 -10183 -10192 -10220 -10224 -11028 -11264 -11311 -11312 -11359 -11392 -11499 -11513 -11558 -11568 -11622 -11631 -11632 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11776 -11800 -11804 -11806 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12589 -12593 -12687 -12688 -12728 -12736 -12752 -12784 -12831 -12832 -12868 -12880 -13055 -13056 -19894 -19904 -40892 -40960 -42125 -42128 -42183 -42752 -42775 -43008 -43052 -44032 -55204 -55296 -64046 -64048 -64107 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64832 -64848 -64912 -64914 -64968 -64976 -65022 -65024 -65050 -65056 -65060 -65072 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65931 -66304 -66335 -66336 -66340 -66352 -66379 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67648 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -118784 -119030 -119040 -119079 -119082 -119262 -119296 -119366 -119552 -119639 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120778 -120782 -120832 -131070 -173783 -194560 -195102 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -917505 -917506 -917536 -917632 -917760 -918000 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/5_0.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/5_0.pl deleted file mode 100644 index 64dcf0d3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/5_0.pl +++ /dev/null @@ -1,894 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V880 -0 -880 -884 -886 -890 -895 -900 -907 -908 -909 -910 -930 -931 -975 -976 -1159 -1160 -1300 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1540 -1547 -1558 -1563 -1564 -1566 -1568 -1569 -1595 -1600 -1631 -1632 -1806 -1807 -1867 -1869 -1902 -1920 -1970 -1984 -2043 -2305 -2362 -2364 -2382 -2384 -2389 -2392 -2417 -2427 -2432 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2555 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2649 -2653 -2654 -2655 -2662 -2677 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2800 -2801 -2802 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2884 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2914 -2918 -2930 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3031 -3032 -3046 -3067 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3124 -3125 -3130 -3134 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3168 -3170 -3174 -3184 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3369 -3370 -3386 -3390 -3396 -3398 -3401 -3402 -3406 -3415 -3416 -3424 -3426 -3430 -3440 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3806 -3840 -3912 -3913 -3947 -3953 -3980 -3984 -3992 -3993 -4029 -4030 -4045 -4047 -4050 -4096 -4130 -4131 -4136 -4137 -4139 -4140 -4147 -4150 -4154 -4160 -4186 -4256 -4294 -4304 -4349 -4352 -4442 -4447 -4515 -4520 -4602 -4608 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4959 -4989 -4992 -5018 -5024 -5109 -5121 -5751 -5760 -5789 -5792 -5873 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6314 -6400 -6429 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6570 -6576 -6602 -6608 -6618 -6622 -6684 -6686 -6688 -6912 -6988 -6992 -7037 -7424 -7627 -7678 -7836 -7840 -7930 -7936 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8292 -8298 -8306 -8308 -8335 -8336 -8341 -8352 -8374 -8400 -8432 -8448 -8527 -8531 -8581 -8592 -9192 -9216 -9255 -9280 -9291 -9312 -9885 -9888 -9907 -9985 -9989 -9990 -9994 -9996 -10024 -10025 -10060 -10061 -10062 -10063 -10067 -10070 -10071 -10072 -10079 -10081 -10133 -10136 -10160 -10161 -10175 -10176 -10187 -10192 -10220 -10224 -11035 -11040 -11044 -11264 -11311 -11312 -11359 -11360 -11373 -11380 -11384 -11392 -11499 -11513 -11558 -11568 -11622 -11631 -11632 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11776 -11800 -11804 -11806 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12589 -12593 -12687 -12688 -12728 -12736 -12752 -12784 -12831 -12832 -12868 -12880 -13055 -13056 -19894 -19904 -40892 -40960 -42125 -42128 -42183 -42752 -42779 -42784 -42786 -43008 -43052 -43072 -43128 -44032 -55204 -55296 -64046 -64048 -64107 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64832 -64848 -64912 -64914 -64968 -64976 -65022 -65024 -65050 -65056 -65060 -65072 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65931 -66304 -66335 -66336 -66340 -66352 -66379 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67648 -67840 -67866 -67871 -67872 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -73728 -74607 -74752 -74851 -74864 -74868 -118784 -119030 -119040 -119079 -119082 -119262 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -131070 -173783 -194560 -195102 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -917505 -917506 -917536 -917632 -917760 -918000 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/5_1.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/5_1.pl deleted file mode 100644 index 088f7b0b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/5_1.pl +++ /dev/null @@ -1,924 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V910 -0 -888 -890 -895 -900 -907 -908 -909 -910 -930 -931 -1316 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1540 -1542 -1564 -1566 -1568 -1569 -1631 -1632 -1806 -1807 -1867 -1869 -1970 -1984 -2043 -2305 -2362 -2364 -2382 -2384 -2389 -2392 -2419 -2427 -2432 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2555 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2800 -2801 -2802 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2930 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3124 -3125 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3162 -3168 -3172 -3174 -3184 -3192 -3200 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3369 -3370 -3386 -3389 -3397 -3398 -3401 -3402 -3406 -3415 -3416 -3424 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3806 -3840 -3912 -3913 -3949 -3953 -3980 -3984 -3992 -3993 -4029 -4030 -4045 -4046 -4053 -4096 -4250 -4254 -4294 -4304 -4349 -4352 -4442 -4447 -4515 -4520 -4602 -4608 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4959 -4989 -4992 -5018 -5024 -5109 -5121 -5751 -5760 -5789 -5792 -5873 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6400 -6429 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6570 -6576 -6602 -6608 -6618 -6622 -6684 -6686 -6688 -6912 -6988 -6992 -7037 -7040 -7083 -7086 -7098 -7168 -7224 -7227 -7242 -7245 -7296 -7424 -7655 -7678 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8293 -8298 -8306 -8308 -8335 -8336 -8341 -8352 -8374 -8400 -8433 -8448 -8528 -8531 -8585 -8592 -9192 -9216 -9255 -9280 -9291 -9312 -9886 -9888 -9917 -9920 -9924 -9985 -9989 -9990 -9994 -9996 -10024 -10025 -10060 -10061 -10062 -10063 -10067 -10070 -10071 -10072 -10079 -10081 -10133 -10136 -10160 -10161 -10175 -10176 -10187 -10188 -10189 -10192 -11085 -11088 -11093 -11264 -11311 -11312 -11359 -11360 -11376 -11377 -11390 -11392 -11499 -11513 -11558 -11568 -11622 -11631 -11632 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11825 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12728 -12736 -12772 -12784 -12831 -12832 -12868 -12880 -13055 -13056 -19894 -19904 -40900 -40960 -42125 -42128 -42183 -42240 -42540 -42560 -42592 -42594 -42612 -42620 -42648 -42752 -42893 -43003 -43052 -43072 -43128 -43136 -43205 -43214 -43226 -43264 -43348 -43359 -43360 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43616 -44032 -55204 -55296 -64046 -64048 -64107 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64832 -64848 -64912 -64914 -64968 -64976 -65022 -65024 -65050 -65056 -65063 -65072 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65931 -65936 -65948 -66000 -66046 -66176 -66205 -66208 -66257 -66304 -66335 -66336 -66340 -66352 -66379 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67648 -67840 -67866 -67871 -67898 -67903 -67904 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -73728 -74607 -74752 -74851 -74864 -74868 -118784 -119030 -119040 -119079 -119081 -119262 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126976 -127020 -127024 -127124 -131070 -173783 -194560 -195102 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -917505 -917506 -917536 -917632 -917760 -918000 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/5_2.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/5_2.pl deleted file mode 100644 index 8f6988b1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/5_2.pl +++ /dev/null @@ -1,1004 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V990 -0 -888 -890 -895 -900 -907 -908 -909 -910 -930 -931 -1318 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1540 -1542 -1564 -1566 -1568 -1569 -1631 -1632 -1806 -1807 -1867 -1869 -1970 -1984 -2043 -2048 -2094 -2096 -2111 -2304 -2362 -2364 -2383 -2384 -2390 -2392 -2419 -2425 -2432 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2800 -2801 -2802 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2930 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3124 -3125 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3162 -3168 -3172 -3174 -3184 -3192 -3200 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3369 -3370 -3386 -3389 -3397 -3398 -3401 -3402 -3406 -3415 -3416 -3424 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3806 -3840 -3912 -3913 -3949 -3953 -3980 -3984 -3992 -3993 -4029 -4030 -4045 -4046 -4057 -4096 -4294 -4304 -4349 -4352 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4959 -4989 -4992 -5018 -5024 -5109 -5120 -5789 -5792 -5873 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6429 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6684 -6686 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -6912 -6988 -6992 -7037 -7040 -7083 -7086 -7098 -7168 -7224 -7227 -7242 -7245 -7296 -7376 -7411 -7424 -7655 -7677 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8293 -8298 -8306 -8308 -8335 -8336 -8341 -8352 -8377 -8400 -8433 -8448 -8586 -8592 -9193 -9216 -9255 -9280 -9291 -9312 -9934 -9935 -9954 -9955 -9956 -9960 -9984 -9985 -9989 -9990 -9994 -9996 -10024 -10025 -10060 -10061 -10062 -10063 -10067 -10070 -10079 -10081 -10133 -10136 -10160 -10161 -10175 -10176 -10187 -10188 -10189 -10192 -11085 -11088 -11098 -11264 -11311 -11312 -11359 -11360 -11506 -11513 -11558 -11568 -11622 -11631 -11632 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11826 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12728 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19894 -19904 -40908 -40960 -42125 -42128 -42183 -42192 -42540 -42560 -42592 -42594 -42612 -42620 -42648 -42656 -42744 -42752 -42893 -43003 -43052 -43056 -43066 -43072 -43128 -43136 -43205 -43214 -43226 -43232 -43260 -43264 -43348 -43359 -43389 -43392 -43470 -43471 -43482 -43486 -43488 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43644 -43648 -43715 -43739 -43744 -43968 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -55296 -64046 -64048 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64832 -64848 -64912 -64914 -64968 -64976 -65022 -65024 -65050 -65056 -65063 -65072 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65931 -65936 -65948 -66000 -66046 -66176 -66205 -66208 -66257 -66304 -66335 -66336 -66340 -66352 -66379 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67680 -67840 -67868 -67871 -67898 -67903 -67904 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -68192 -68224 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68480 -68608 -68681 -69216 -69247 -69760 -69826 -73728 -74607 -74752 -74851 -74864 -74868 -77824 -78895 -118784 -119030 -119040 -119079 -119081 -119262 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126976 -127020 -127024 -127124 -127232 -127243 -127248 -127279 -127281 -127282 -127293 -127294 -127295 -127296 -127298 -127299 -127302 -127303 -127306 -127311 -127319 -127320 -127327 -127328 -127353 -127354 -127355 -127357 -127359 -127360 -127370 -127374 -127376 -127377 -127488 -127489 -127504 -127538 -127552 -127561 -131070 -173783 -173824 -177973 -194560 -195102 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -917505 -917506 -917536 -917632 -917760 -918000 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/6_0.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/6_0.pl deleted file mode 100644 index 5d93f2fa..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/6_0.pl +++ /dev/null @@ -1,1036 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1022 -0 -888 -890 -895 -900 -907 -908 -909 -910 -930 -931 -1320 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1540 -1542 -1564 -1566 -1806 -1807 -1867 -1869 -1970 -1984 -2043 -2048 -2094 -2096 -2111 -2112 -2140 -2142 -2143 -2304 -2424 -2425 -2432 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2800 -2801 -2802 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3124 -3125 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3162 -3168 -3172 -3174 -3184 -3192 -3200 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3424 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3806 -3840 -3912 -3913 -3949 -3953 -3992 -3993 -4029 -4030 -4045 -4046 -4059 -4096 -4294 -4304 -4349 -4352 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4989 -4992 -5018 -5024 -5109 -5120 -5789 -5792 -5873 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6429 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6684 -6686 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -6912 -6988 -6992 -7037 -7040 -7083 -7086 -7098 -7104 -7156 -7164 -7224 -7227 -7242 -7245 -7296 -7376 -7411 -7424 -7655 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8293 -8298 -8306 -8308 -8335 -8336 -8349 -8352 -8378 -8400 -8433 -8448 -8586 -8592 -9204 -9216 -9255 -9280 -9291 -9312 -9984 -9985 -10187 -10188 -10189 -10190 -11085 -11088 -11098 -11264 -11311 -11312 -11359 -11360 -11506 -11513 -11558 -11568 -11622 -11631 -11633 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11826 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19894 -19904 -40908 -40960 -42125 -42128 -42183 -42192 -42540 -42560 -42612 -42620 -42648 -42656 -42744 -42752 -42895 -42896 -42898 -42912 -42922 -43002 -43052 -43056 -43066 -43072 -43128 -43136 -43205 -43214 -43226 -43232 -43260 -43264 -43348 -43359 -43389 -43392 -43470 -43471 -43482 -43486 -43488 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43644 -43648 -43715 -43739 -43744 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43968 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -55296 -64046 -64048 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64450 -64467 -64832 -64848 -64912 -64914 -64968 -64976 -65022 -65024 -65050 -65056 -65063 -65072 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65931 -65936 -65948 -66000 -66046 -66176 -66205 -66208 -66257 -66304 -66335 -66336 -66340 -66352 -66379 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67680 -67840 -67868 -67871 -67898 -67903 -67904 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -68192 -68224 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68480 -68608 -68681 -69216 -69247 -69632 -69710 -69714 -69744 -69760 -69826 -73728 -74607 -74752 -74851 -74864 -74868 -77824 -78895 -92160 -92729 -110592 -110594 -118784 -119030 -119040 -119079 -119081 -119262 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127167 -127169 -127184 -127185 -127200 -127232 -127243 -127248 -127279 -127280 -127338 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -127777 -127792 -127798 -127799 -127869 -127872 -127892 -127904 -127941 -127942 -127947 -127968 -127985 -128000 -128063 -128064 -128065 -128066 -128248 -128249 -128253 -128256 -128318 -128336 -128360 -128507 -128512 -128513 -128529 -128530 -128533 -128534 -128535 -128536 -128537 -128538 -128539 -128540 -128543 -128544 -128550 -128552 -128556 -128557 -128558 -128560 -128564 -128565 -128577 -128581 -128592 -128640 -128710 -128768 -128884 -131070 -173783 -173824 -177973 -177984 -178206 -194560 -195102 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -917505 -917506 -917536 -917632 -917760 -918000 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/6_1.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/6_1.pl deleted file mode 100644 index 32e3761d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/6_1.pl +++ /dev/null @@ -1,1112 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1098 -0 -888 -890 -895 -900 -907 -908 -909 -910 -930 -931 -1320 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1423 -1424 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1541 -1542 -1564 -1566 -1806 -1807 -1867 -1869 -1970 -1984 -2043 -2048 -2094 -2096 -2111 -2112 -2140 -2142 -2143 -2208 -2209 -2210 -2221 -2276 -2303 -2304 -2424 -2425 -2432 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2802 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3124 -3125 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3162 -3168 -3172 -3174 -3184 -3192 -3200 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3424 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3912 -3913 -3949 -3953 -3992 -3993 -4029 -4030 -4045 -4046 -4059 -4096 -4294 -4295 -4296 -4301 -4302 -4304 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4989 -4992 -5018 -5024 -5109 -5120 -5789 -5792 -5873 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6429 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6684 -6686 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -6912 -6988 -6992 -7037 -7040 -7156 -7164 -7224 -7227 -7242 -7245 -7296 -7360 -7368 -7376 -7415 -7424 -7655 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8293 -8298 -8306 -8308 -8335 -8336 -8349 -8352 -8378 -8400 -8433 -8448 -8586 -8592 -9204 -9216 -9255 -9280 -9291 -9312 -9984 -9985 -11085 -11088 -11098 -11264 -11311 -11312 -11359 -11360 -11508 -11513 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11633 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11836 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19894 -19904 -40909 -40960 -42125 -42128 -42183 -42192 -42540 -42560 -42648 -42655 -42744 -42752 -42895 -42896 -42900 -42912 -42923 -43000 -43052 -43056 -43066 -43072 -43128 -43136 -43205 -43214 -43226 -43232 -43260 -43264 -43348 -43359 -43389 -43392 -43470 -43471 -43482 -43486 -43488 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43644 -43648 -43715 -43739 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43968 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -55296 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64450 -64467 -64832 -64848 -64912 -64914 -64968 -64976 -65022 -65024 -65050 -65056 -65063 -65072 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65931 -65936 -65948 -66000 -66046 -66176 -66205 -66208 -66257 -66304 -66335 -66336 -66340 -66352 -66379 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67680 -67840 -67868 -67871 -67898 -67903 -67904 -67968 -68024 -68030 -68032 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -68192 -68224 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68480 -68608 -68681 -69216 -69247 -69632 -69710 -69714 -69744 -69760 -69826 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69956 -70016 -70089 -70096 -70106 -71296 -71352 -71360 -71370 -73728 -74607 -74752 -74851 -74864 -74868 -77824 -78895 -92160 -92729 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -118784 -119030 -119040 -119079 -119081 -119262 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127167 -127169 -127184 -127185 -127200 -127232 -127243 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -127777 -127792 -127798 -127799 -127869 -127872 -127892 -127904 -127941 -127942 -127947 -127968 -127985 -128000 -128063 -128064 -128065 -128066 -128248 -128249 -128253 -128256 -128318 -128320 -128324 -128336 -128360 -128507 -128577 -128581 -128592 -128640 -128710 -128768 -128884 -131070 -173783 -173824 -177973 -177984 -178206 -194560 -195102 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -917505 -917506 -917536 -917632 -917760 -918000 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/6_2.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/6_2.pl deleted file mode 100644 index c491c80d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/6_2.pl +++ /dev/null @@ -1,1112 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1098 -0 -888 -890 -895 -900 -907 -908 -909 -910 -930 -931 -1320 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1423 -1424 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1541 -1542 -1564 -1566 -1806 -1807 -1867 -1869 -1970 -1984 -2043 -2048 -2094 -2096 -2111 -2112 -2140 -2142 -2143 -2208 -2209 -2210 -2221 -2276 -2303 -2304 -2424 -2425 -2432 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2802 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3124 -3125 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3162 -3168 -3172 -3174 -3184 -3192 -3200 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3424 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3912 -3913 -3949 -3953 -3992 -3993 -4029 -4030 -4045 -4046 -4059 -4096 -4294 -4295 -4296 -4301 -4302 -4304 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4989 -4992 -5018 -5024 -5109 -5120 -5789 -5792 -5873 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6429 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6684 -6686 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -6912 -6988 -6992 -7037 -7040 -7156 -7164 -7224 -7227 -7242 -7245 -7296 -7360 -7368 -7376 -7415 -7424 -7655 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8293 -8298 -8306 -8308 -8335 -8336 -8349 -8352 -8379 -8400 -8433 -8448 -8586 -8592 -9204 -9216 -9255 -9280 -9291 -9312 -9984 -9985 -11085 -11088 -11098 -11264 -11311 -11312 -11359 -11360 -11508 -11513 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11633 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11836 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19894 -19904 -40909 -40960 -42125 -42128 -42183 -42192 -42540 -42560 -42648 -42655 -42744 -42752 -42895 -42896 -42900 -42912 -42923 -43000 -43052 -43056 -43066 -43072 -43128 -43136 -43205 -43214 -43226 -43232 -43260 -43264 -43348 -43359 -43389 -43392 -43470 -43471 -43482 -43486 -43488 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43644 -43648 -43715 -43739 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43968 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -55296 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64450 -64467 -64832 -64848 -64912 -64914 -64968 -64976 -65022 -65024 -65050 -65056 -65063 -65072 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65931 -65936 -65948 -66000 -66046 -66176 -66205 -66208 -66257 -66304 -66335 -66336 -66340 -66352 -66379 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67680 -67840 -67868 -67871 -67898 -67903 -67904 -67968 -68024 -68030 -68032 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -68192 -68224 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68480 -68608 -68681 -69216 -69247 -69632 -69710 -69714 -69744 -69760 -69826 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69956 -70016 -70089 -70096 -70106 -71296 -71352 -71360 -71370 -73728 -74607 -74752 -74851 -74864 -74868 -77824 -78895 -92160 -92729 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -118784 -119030 -119040 -119079 -119081 -119262 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127167 -127169 -127184 -127185 -127200 -127232 -127243 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -127777 -127792 -127798 -127799 -127869 -127872 -127892 -127904 -127941 -127942 -127947 -127968 -127985 -128000 -128063 -128064 -128065 -128066 -128248 -128249 -128253 -128256 -128318 -128320 -128324 -128336 -128360 -128507 -128577 -128581 -128592 -128640 -128710 -128768 -128884 -131070 -173783 -173824 -177973 -177984 -178206 -194560 -195102 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -917505 -917506 -917536 -917632 -917760 -918000 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/6_3.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/6_3.pl deleted file mode 100644 index 083ea65d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/6_3.pl +++ /dev/null @@ -1,1112 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1098 -0 -888 -890 -895 -900 -907 -908 -909 -910 -930 -931 -1320 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1423 -1424 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1541 -1542 -1565 -1566 -1806 -1807 -1867 -1869 -1970 -1984 -2043 -2048 -2094 -2096 -2111 -2112 -2140 -2142 -2143 -2208 -2209 -2210 -2221 -2276 -2303 -2304 -2424 -2425 -2432 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2802 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3073 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3124 -3125 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3162 -3168 -3172 -3174 -3184 -3192 -3200 -3202 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3330 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3424 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3912 -3913 -3949 -3953 -3992 -3993 -4029 -4030 -4045 -4046 -4059 -4096 -4294 -4295 -4296 -4301 -4302 -4304 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4989 -4992 -5018 -5024 -5109 -5120 -5789 -5792 -5873 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6429 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6684 -6686 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -6912 -6988 -6992 -7037 -7040 -7156 -7164 -7224 -7227 -7242 -7245 -7296 -7360 -7368 -7376 -7415 -7424 -7655 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8293 -8294 -8306 -8308 -8335 -8336 -8349 -8352 -8379 -8400 -8433 -8448 -8586 -8592 -9204 -9216 -9255 -9280 -9291 -9312 -9984 -9985 -11085 -11088 -11098 -11264 -11311 -11312 -11359 -11360 -11508 -11513 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11633 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11836 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19894 -19904 -40909 -40960 -42125 -42128 -42183 -42192 -42540 -42560 -42648 -42655 -42744 -42752 -42895 -42896 -42900 -42912 -42923 -43000 -43052 -43056 -43066 -43072 -43128 -43136 -43205 -43214 -43226 -43232 -43260 -43264 -43348 -43359 -43389 -43392 -43470 -43471 -43482 -43486 -43488 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43644 -43648 -43715 -43739 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43968 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -55296 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64450 -64467 -64832 -64848 -64912 -64914 -64968 -64976 -65022 -65024 -65050 -65056 -65063 -65072 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65931 -65936 -65948 -66000 -66046 -66176 -66205 -66208 -66257 -66304 -66335 -66336 -66340 -66352 -66379 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67680 -67840 -67868 -67871 -67898 -67903 -67904 -67968 -68024 -68030 -68032 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -68192 -68224 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68480 -68608 -68681 -69216 -69247 -69632 -69710 -69714 -69744 -69760 -69826 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69956 -70016 -70089 -70096 -70106 -71296 -71352 -71360 -71370 -73728 -74607 -74752 -74851 -74864 -74868 -77824 -78895 -92160 -92729 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -118784 -119030 -119040 -119079 -119081 -119262 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127167 -127169 -127184 -127185 -127200 -127232 -127243 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -127777 -127792 -127798 -127799 -127869 -127872 -127892 -127904 -127941 -127942 -127947 -127968 -127985 -128000 -128063 -128064 -128065 -128066 -128248 -128249 -128253 -128256 -128318 -128320 -128324 -128336 -128360 -128507 -128577 -128581 -128592 -128640 -128710 -128768 -128884 -131070 -173783 -173824 -177973 -177984 -178206 -194560 -195102 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -917505 -917506 -917536 -917632 -917760 -918000 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/7_0.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/7_0.pl deleted file mode 100644 index 28635ce6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/7_0.pl +++ /dev/null @@ -1,1234 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1220 -0 -888 -890 -896 -900 -907 -908 -909 -910 -930 -931 -1328 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1421 -1424 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1565 -1566 -1806 -1807 -1867 -1869 -1970 -1984 -2043 -2048 -2094 -2096 -2111 -2112 -2140 -2142 -2143 -2208 -2227 -2276 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2802 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3162 -3168 -3172 -3174 -3184 -3192 -3200 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3424 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3912 -3913 -3949 -3953 -3992 -3993 -4029 -4030 -4045 -4046 -4059 -4096 -4294 -4295 -4296 -4301 -4302 -4304 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4989 -4992 -5018 -5024 -5109 -5120 -5789 -5792 -5881 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6684 -6686 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -6832 -6847 -6912 -6988 -6992 -7037 -7040 -7156 -7164 -7224 -7227 -7242 -7245 -7296 -7360 -7368 -7376 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8293 -8294 -8306 -8308 -8335 -8336 -8349 -8352 -8382 -8400 -8433 -8448 -8586 -8592 -9211 -9216 -9255 -9280 -9291 -9312 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11264 -11311 -11312 -11359 -11360 -11508 -11513 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11633 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11843 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19894 -19904 -40909 -40960 -42125 -42128 -42183 -42192 -42540 -42560 -42654 -42655 -42744 -42752 -42895 -42896 -42926 -42928 -42930 -42999 -43052 -43056 -43066 -43072 -43128 -43136 -43205 -43214 -43226 -43232 -43260 -43264 -43348 -43359 -43389 -43392 -43470 -43471 -43482 -43486 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43715 -43739 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43872 -43876 -43878 -43968 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -55296 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64450 -64467 -64832 -64848 -64912 -64914 -64968 -64976 -65022 -65024 -65050 -65056 -65070 -65072 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65933 -65936 -65948 -65952 -65953 -66000 -66046 -66176 -66205 -66208 -66257 -66272 -66300 -66304 -66340 -66352 -66379 -66384 -66427 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -66927 -66928 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67743 -67751 -67760 -67840 -67868 -67871 -67898 -67903 -67904 -67968 -68024 -68030 -68032 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -68192 -68256 -68288 -68327 -68331 -68343 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68498 -68505 -68509 -68521 -68528 -68608 -68681 -69216 -69247 -69632 -69710 -69714 -69744 -69759 -69826 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69956 -69968 -70007 -70016 -70089 -70093 -70094 -70096 -70107 -70113 -70133 -70144 -70162 -70163 -70206 -70320 -70379 -70384 -70394 -70401 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70856 -70864 -70874 -71040 -71094 -71096 -71114 -71168 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71840 -71923 -71935 -71936 -72384 -72441 -73728 -74649 -74752 -74863 -74864 -74869 -77824 -78895 -92160 -92729 -92736 -92767 -92768 -92778 -92782 -92784 -92880 -92910 -92912 -92918 -92928 -92998 -93008 -93018 -93019 -93026 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113820 -113828 -118784 -119030 -119040 -119079 -119081 -119262 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -124928 -125125 -125127 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127232 -127245 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -127789 -127792 -127870 -127872 -127951 -127956 -127992 -128000 -128255 -128256 -128331 -128336 -128378 -128379 -128420 -128421 -128579 -128581 -128720 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -131070 -173783 -173824 -177973 -177984 -178206 -194560 -195102 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -917505 -917506 -917536 -917632 -917760 -918000 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/8_0.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/8_0.pl deleted file mode 100644 index 4b571be9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/In/8_0.pl +++ /dev/null @@ -1,1260 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1246 -0 -888 -890 -896 -900 -907 -908 -909 -910 -930 -931 -1328 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1421 -1424 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1565 -1566 -1806 -1807 -1867 -1869 -1970 -1984 -2043 -2048 -2094 -2096 -2111 -2112 -2140 -2142 -2143 -2208 -2229 -2275 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2802 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3192 -3200 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3912 -3913 -3949 -3953 -3992 -3993 -4029 -4030 -4045 -4046 -4059 -4096 -4294 -4295 -4296 -4301 -4302 -4304 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4989 -4992 -5018 -5024 -5110 -5112 -5118 -5120 -5789 -5792 -5881 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6684 -6686 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -6832 -6847 -6912 -6988 -6992 -7037 -7040 -7156 -7164 -7224 -7227 -7242 -7245 -7296 -7360 -7368 -7376 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8293 -8294 -8306 -8308 -8335 -8336 -8349 -8352 -8383 -8400 -8433 -8448 -8588 -8592 -9211 -9216 -9255 -9280 -9291 -9312 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11264 -11311 -11312 -11359 -11360 -11508 -11513 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11633 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11843 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19894 -19904 -40918 -40960 -42125 -42128 -42183 -42192 -42540 -42560 -42744 -42752 -42926 -42928 -42936 -42999 -43052 -43056 -43066 -43072 -43128 -43136 -43205 -43214 -43226 -43232 -43262 -43264 -43348 -43359 -43389 -43392 -43470 -43471 -43482 -43486 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43715 -43739 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43878 -43888 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -55296 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64450 -64467 -64832 -64848 -64912 -64914 -64968 -64976 -65022 -65024 -65050 -65056 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65933 -65936 -65948 -65952 -65953 -66000 -66046 -66176 -66205 -66208 -66257 -66272 -66300 -66304 -66340 -66352 -66379 -66384 -66427 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -66927 -66928 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67743 -67751 -67760 -67808 -67827 -67828 -67830 -67835 -67868 -67871 -67898 -67903 -67904 -67968 -68024 -68028 -68048 -68050 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -68192 -68256 -68288 -68327 -68331 -68343 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68498 -68505 -68509 -68521 -68528 -68608 -68681 -68736 -68787 -68800 -68851 -68858 -68864 -69216 -69247 -69632 -69710 -69714 -69744 -69759 -69826 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69956 -69968 -70007 -70016 -70094 -70096 -70112 -70113 -70133 -70144 -70162 -70163 -70206 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70314 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70856 -70864 -70874 -71040 -71094 -71096 -71134 -71168 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71488 -71840 -71923 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74864 -74869 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92782 -92784 -92880 -92910 -92912 -92918 -92928 -92998 -93008 -93018 -93019 -93026 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113820 -113828 -118784 -119030 -119040 -119079 -119081 -119273 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -121484 -121499 -121504 -121505 -121520 -124928 -125125 -125127 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127232 -127245 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -131070 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -917505 -917506 -917536 -917632 -917760 -918000 -983038 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/Bottom.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/Bottom.pl deleted file mode 100644 index e2c2c14c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/Bottom.pl +++ /dev/null @@ -1,240 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V226 -2364 -2365 -2369 -2373 -2381 -2382 -2386 -2387 -2390 -2392 -2402 -2404 -2492 -2493 -2497 -2501 -2509 -2510 -2530 -2532 -2620 -2621 -2625 -2627 -2637 -2638 -2677 -2678 -2748 -2749 -2753 -2757 -2765 -2766 -2786 -2788 -2876 -2877 -2881 -2885 -2893 -2894 -2914 -2916 -3158 -3159 -3170 -3172 -3260 -3261 -3298 -3300 -3395 -3397 -3426 -3428 -3540 -3541 -3542 -3543 -3640 -3643 -3768 -3770 -3772 -3773 -3864 -3866 -3893 -3894 -3895 -3896 -3953 -3954 -3956 -3958 -3972 -3973 -3981 -3992 -3993 -4029 -4038 -4039 -4143 -4145 -4151 -4152 -4157 -4159 -4184 -4186 -4190 -4193 -4226 -4227 -4237 -4238 -5907 -5909 -5939 -5941 -5971 -5972 -6003 -6004 -6075 -6078 -6434 -6435 -6450 -6451 -6457 -6458 -6459 -6460 -6680 -6681 -6742 -6743 -6747 -6751 -6761 -6763 -6764 -6765 -6783 -6784 -6968 -6971 -7020 -7021 -7074 -7076 -7077 -7078 -7084 -7086 -7212 -7213 -7223 -7224 -7381 -7386 -7388 -7392 -7405 -7406 -43045 -43046 -43204 -43205 -43307 -43310 -43335 -43338 -43339 -43343 -43448 -43450 -43565 -43566 -43570 -43571 -43573 -43575 -43700 -43701 -43756 -43757 -44008 -44009 -44013 -44014 -68098 -68100 -68108 -68111 -68153 -68155 -69692 -69698 -69811 -69813 -69817 -69819 -69930 -69932 -69937 -69939 -70003 -70004 -70070 -70076 -70092 -70093 -70191 -70192 -70371 -70373 -70377 -70379 -70835 -70841 -70850 -70852 -71090 -71094 -71103 -71105 -71132 -71134 -71219 -71225 -71231 -71232 -71344 -71346 -71351 -71352 -71453 -71454 -71460 -71462 -71464 -71465 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/Left.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/Left.pl deleted file mode 100644 index 0b407627..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/Left.pl +++ /dev/null @@ -1,90 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V76 -2367 -2368 -2382 -2383 -2495 -2496 -2503 -2505 -2623 -2624 -2751 -2752 -2887 -2888 -3014 -3017 -3398 -3401 -3545 -3546 -3547 -3548 -3903 -3904 -4145 -4146 -4228 -4229 -6081 -6084 -6681 -6682 -6741 -6742 -6766 -6771 -6974 -6976 -7078 -7079 -7207 -7209 -7220 -7222 -43450 -43452 -43567 -43569 -43572 -43573 -43755 -43756 -43758 -43759 -69809 -69810 -69932 -69933 -70068 -70069 -70369 -70370 -70471 -70473 -70833 -70834 -70841 -70842 -71088 -71089 -71096 -71097 -71342 -71343 -71462 -71463 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/LeftAndR.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/LeftAndR.pl deleted file mode 100644 index 55e7b6bf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/LeftAndR.pl +++ /dev/null @@ -1,40 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V26 -2507 -2509 -2891 -2892 -3018 -3021 -3402 -3405 -3548 -3549 -3550 -3551 -6080 -6081 -6084 -6086 -6976 -6978 -70475 -70477 -70844 -70845 -70846 -70847 -71098 -71099 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/NA.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/NA.pl deleted file mode 100644 index eb3cfce0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/NA.pl +++ /dev/null @@ -1,357 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V343 -0 -2304 -2308 -2362 -2365 -2366 -2384 -2385 -2392 -2402 -2404 -2433 -2436 -2492 -2493 -2494 -2501 -2503 -2505 -2507 -2510 -2519 -2520 -2530 -2532 -2561 -2564 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2672 -2674 -2677 -2678 -2689 -2692 -2748 -2749 -2750 -2758 -2759 -2762 -2763 -2766 -2786 -2788 -2817 -2820 -2876 -2877 -2878 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2914 -2916 -2946 -2947 -3006 -3011 -3014 -3017 -3018 -3022 -3031 -3032 -3072 -3076 -3134 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3170 -3172 -3201 -3204 -3260 -3261 -3262 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3298 -3300 -3329 -3332 -3390 -3397 -3398 -3401 -3402 -3406 -3415 -3416 -3426 -3428 -3458 -3460 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3572 -3632 -3643 -3648 -3654 -3655 -3663 -3760 -3770 -3771 -3773 -3776 -3781 -3784 -3790 -3864 -3866 -3893 -3894 -3895 -3896 -3897 -3898 -3902 -3904 -3953 -3973 -3974 -3976 -3981 -3992 -3993 -4029 -4038 -4039 -4139 -4153 -4154 -4156 -4157 -4159 -4182 -4186 -4190 -4193 -4194 -4197 -4199 -4206 -4209 -4213 -4226 -4238 -4239 -4240 -4250 -4254 -5906 -5909 -5938 -5941 -5970 -5972 -6002 -6004 -6070 -6098 -6099 -6100 -6109 -6110 -6432 -6444 -6448 -6460 -6576 -6593 -6600 -6602 -6679 -6684 -6741 -6751 -6753 -6781 -6783 -6784 -6912 -6917 -6964 -6981 -7019 -7028 -7040 -7043 -7073 -7083 -7084 -7086 -7142 -7156 -7204 -7224 -7376 -7379 -7380 -7401 -7405 -7406 -7412 -7413 -43014 -43015 -43019 -43020 -43043 -43048 -43136 -43138 -43188 -43205 -43232 -43250 -43307 -43310 -43335 -43348 -43392 -43396 -43443 -43457 -43493 -43494 -43561 -43575 -43587 -43588 -43596 -43598 -43643 -43646 -43696 -43712 -43713 -43714 -43755 -43760 -43765 -43766 -44003 -44011 -44012 -44014 -68097 -68100 -68101 -68103 -68108 -68112 -68152 -68155 -69632 -69635 -69688 -69703 -69760 -69763 -69808 -69819 -69888 -69891 -69927 -69939 -69940 -69941 -70003 -70004 -70016 -70019 -70067 -70081 -70091 -70093 -70188 -70200 -70367 -70379 -70401 -70404 -70462 -70469 -70471 -70473 -70475 -70478 -70487 -70488 -70498 -70500 -70502 -70509 -70512 -70517 -70832 -70852 -71087 -71094 -71096 -71105 -71132 -71134 -71216 -71233 -71339 -71352 -71453 -71454 -71455 -71468 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/Overstru.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/Overstru.pl deleted file mode 100644 index c793e561..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/Overstru.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -7380 -7381 -7394 -7401 -68097 -68098 -68102 -68103 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/Right.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/Right.pl deleted file mode 100644 index f66d1de6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/Right.pl +++ /dev/null @@ -1,290 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V276 -2307 -2308 -2363 -2364 -2366 -2367 -2368 -2369 -2377 -2381 -2383 -2384 -2434 -2436 -2494 -2495 -2496 -2497 -2519 -2520 -2563 -2564 -2622 -2623 -2624 -2625 -2691 -2692 -2750 -2751 -2752 -2753 -2763 -2765 -2818 -2820 -2878 -2879 -2880 -2881 -3006 -3008 -3009 -3011 -3031 -3032 -3073 -3076 -3137 -3141 -3202 -3204 -3262 -3263 -3265 -3269 -3285 -3287 -3330 -3332 -3390 -3395 -3415 -3416 -3458 -3460 -3535 -3538 -3544 -3545 -3551 -3552 -3570 -3572 -3632 -3633 -3634 -3636 -3653 -3654 -3760 -3761 -3762 -3764 -3902 -3903 -3967 -3968 -4139 -4141 -4152 -4153 -4155 -4156 -4182 -4184 -4194 -4197 -4199 -4206 -4227 -4228 -4231 -4237 -4239 -4240 -4250 -4253 -6070 -6071 -6087 -6089 -6435 -6437 -6441 -6444 -6448 -6450 -6451 -6457 -6576 -6581 -6584 -6586 -6587 -6593 -6600 -6602 -6682 -6683 -6743 -6744 -6753 -6754 -6755 -6757 -6765 -6766 -6916 -6917 -6965 -6966 -6980 -6981 -7042 -7043 -7073 -7074 -7079 -7080 -7082 -7083 -7143 -7144 -7146 -7149 -7150 -7151 -7154 -7156 -7204 -7207 -7210 -7212 -7393 -7394 -43043 -43045 -43047 -43048 -43136 -43138 -43188 -43204 -43346 -43348 -43395 -43396 -43444 -43446 -43453 -43456 -43571 -43572 -43597 -43598 -43643 -43644 -43645 -43646 -43697 -43698 -43706 -43707 -43709 -43710 -43759 -43760 -43765 -43766 -44003 -44005 -44006 -44008 -44009 -44011 -44012 -44013 -69632 -69633 -69634 -69635 -69762 -69763 -69808 -69809 -69810 -69811 -69815 -69817 -70018 -70019 -70067 -70068 -70069 -70070 -70080 -70081 -70188 -70191 -70197 -70198 -70368 -70369 -70370 -70371 -70402 -70404 -70462 -70464 -70465 -70469 -70477 -70478 -70487 -70488 -70498 -70500 -70832 -70833 -70834 -70835 -70845 -70846 -70849 -70850 -71087 -71088 -71089 -71090 -71102 -71103 -71216 -71219 -71227 -71229 -71230 -71231 -71340 -71341 -71343 -71344 -71350 -71351 -71456 -71458 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/Top.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/Top.pl deleted file mode 100644 index 9807ef65..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/Top.pl +++ /dev/null @@ -1,316 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V302 -2304 -2307 -2362 -2363 -2373 -2377 -2385 -2386 -2387 -2390 -2433 -2434 -2561 -2563 -2631 -2633 -2635 -2637 -2672 -2674 -2689 -2691 -2757 -2758 -2759 -2761 -2817 -2818 -2879 -2880 -2902 -2903 -2946 -2947 -3008 -3009 -3021 -3022 -3072 -3073 -3134 -3137 -3142 -3144 -3146 -3150 -3157 -3158 -3201 -3202 -3263 -3264 -3270 -3271 -3276 -3278 -3329 -3330 -3405 -3406 -3530 -3531 -3538 -3540 -3633 -3634 -3636 -3640 -3655 -3663 -3761 -3762 -3764 -3768 -3771 -3772 -3784 -3790 -3897 -3898 -3954 -3955 -3962 -3967 -3968 -3969 -3970 -3972 -3974 -3976 -4141 -4143 -4146 -4151 -4154 -4155 -4209 -4213 -4229 -4231 -4253 -4254 -5906 -5907 -5938 -5939 -5970 -5971 -6002 -6003 -6071 -6075 -6086 -6087 -6089 -6098 -6099 -6100 -6109 -6110 -6432 -6434 -6439 -6441 -6458 -6459 -6679 -6680 -6683 -6684 -6744 -6747 -6754 -6755 -6757 -6761 -6763 -6764 -6771 -6781 -6912 -6916 -6964 -6965 -6966 -6968 -6978 -6979 -7019 -7020 -7021 -7028 -7040 -7042 -7076 -7077 -7080 -7082 -7142 -7143 -7144 -7146 -7149 -7150 -7151 -7154 -7213 -7220 -7222 -7223 -7376 -7379 -7386 -7388 -7392 -7393 -7412 -7413 -43014 -43015 -43019 -43020 -43046 -43047 -43232 -43250 -43338 -43339 -43343 -43346 -43392 -43395 -43443 -43444 -43446 -43448 -43452 -43453 -43493 -43494 -43561 -43565 -43566 -43567 -43569 -43570 -43587 -43588 -43596 -43597 -43644 -43645 -43696 -43697 -43698 -43700 -43703 -43705 -43710 -43712 -43713 -43714 -43757 -43758 -44005 -44006 -68101 -68102 -68111 -68112 -68152 -68153 -69633 -69634 -69688 -69692 -69698 -69703 -69760 -69762 -69813 -69815 -69888 -69891 -69927 -69930 -69933 -69934 -69936 -69937 -69940 -69941 -70016 -70018 -70076 -70079 -70091 -70092 -70192 -70194 -70196 -70197 -70198 -70200 -70367 -70368 -70373 -70377 -70401 -70402 -70464 -70465 -70502 -70509 -70512 -70517 -70842 -70843 -70847 -70849 -71100 -71102 -71225 -71227 -71229 -71230 -71232 -71233 -71339 -71340 -71341 -71342 -71346 -71350 -71455 -71456 -71458 -71460 -71463 -71464 -71465 -71468 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/TopAndBo.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/TopAndBo.pl deleted file mode 100644 index e7bd8723..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/TopAndBo.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -3144 -3145 -3955 -3956 -3958 -3962 -3969 -3970 -6972 -6973 -69934 -69936 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/TopAndL2.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/TopAndL2.pl deleted file mode 100644 index 58d81aa1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/TopAndL2.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -2892 -2893 -3549 -3550 -6079 -6080 -71099 -71100 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/TopAndLe.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/TopAndLe.pl deleted file mode 100644 index 09fae26e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/TopAndLe.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -2888 -2889 -3546 -3547 -6078 -6079 -7209 -7210 -70843 -70844 -71097 -71098 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/TopAndRi.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/TopAndRi.pl deleted file mode 100644 index b45c5363..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/TopAndRi.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -2761 -2762 -2903 -2904 -3264 -3265 -3271 -3273 -3274 -3276 -6437 -6439 -6979 -6980 -70079 -70080 -70194 -70196 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/VisualOr.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/VisualOr.pl deleted file mode 100644 index e64466e3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InPC/VisualOr.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -3648 -3653 -3776 -3781 -6581 -6584 -6586 -6587 -43701 -43703 -43705 -43706 -43707 -43709 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Avagraha.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Avagraha.pl deleted file mode 100644 index aebd78a3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Avagraha.pl +++ /dev/null @@ -1,40 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V26 -2365 -2366 -2493 -2494 -2749 -2750 -2877 -2878 -3133 -3134 -3261 -3262 -3389 -3390 -3973 -3974 -6108 -6109 -7098 -7099 -70081 -70082 -70461 -70462 -70852 -70853 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Bindu.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Bindu.pl deleted file mode 100644 index 56076685..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Bindu.pl +++ /dev/null @@ -1,88 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V74 -2304 -2307 -2433 -2435 -2561 -2563 -2672 -2673 -2689 -2691 -2817 -2819 -2946 -2947 -3072 -3075 -3201 -3203 -3329 -3331 -3458 -3459 -3661 -3662 -3789 -3790 -3966 -3967 -3970 -3972 -4150 -4151 -6086 -6087 -6450 -6451 -6912 -6915 -7040 -7041 -7220 -7222 -43019 -43020 -43123 -43124 -43136 -43137 -43392 -43394 -68110 -68111 -69632 -69634 -69760 -69762 -69888 -69890 -70016 -70018 -70196 -70197 -70367 -70368 -70400 -70403 -70847 -70849 -71100 -71102 -71229 -71230 -71339 -71340 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Cantilla.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Cantilla.pl deleted file mode 100644 index bd8909fc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Cantilla.pl +++ /dev/null @@ -1,30 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V16 -2385 -2387 -7376 -7379 -7380 -7394 -7412 -7413 -7416 -7418 -43232 -43250 -70502 -70509 -70512 -70517 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consona2.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consona2.pl deleted file mode 100644 index ce2217f0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consona2.pl +++ /dev/null @@ -1,36 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V22 -6448 -6450 -6451 -6458 -6593 -6600 -6743 -6751 -7102 -7104 -7152 -7154 -7213 -7220 -43188 -43189 -43343 -43347 -43584 -43598 -43995 -44003 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consona3.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consona3.pl deleted file mode 100644 index 27205d85..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consona3.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -2677 -2678 -3772 -3774 -4155 -4159 -4190 -4193 -4226 -4227 -6741 -6743 -43454 -43456 -43571 -43575 -71453 -71456 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consona4.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consona4.pl deleted file mode 100644 index 0e4d02d8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consona4.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -3981 -3992 -3993 -4029 -6441 -6444 -7073 -7076 -7084 -7086 -7204 -7206 -43111 -43113 -43121 -43122 -43453 -43454 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consona5.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consona5.pl deleted file mode 100644 index 62e77178..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consona5.pl +++ /dev/null @@ -1,30 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V16 -45 -46 -160 -161 -215 -216 -2674 -2676 -4174 -4175 -6400 -6401 -8208 -8213 -9676 -9677 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consona6.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consona6.pl deleted file mode 100644 index b10906b4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consona6.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -6092 -6093 -6915 -6916 -7041 -7042 -43394 -43395 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consonan.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consonan.pl deleted file mode 100644 index e95e490c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Consonan.pl +++ /dev/null @@ -1,300 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V286 -2325 -2362 -2392 -2400 -2424 -2432 -2453 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2524 -2526 -2527 -2528 -2544 -2546 -2581 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2649 -2653 -2654 -2655 -2709 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2809 -2810 -2837 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2908 -2910 -2911 -2912 -2929 -2930 -2965 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3093 -3113 -3114 -3130 -3160 -3163 -3221 -3241 -3242 -3252 -3253 -3258 -3294 -3295 -3349 -3387 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3585 -3631 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3759 -3804 -3808 -3904 -3912 -3913 -3949 -4096 -4129 -4159 -4160 -4176 -4178 -4186 -4190 -4193 -4194 -4197 -4199 -4206 -4209 -4213 -4226 -4238 -4239 -5891 -5901 -5902 -5906 -5923 -5938 -5955 -5970 -5987 -5997 -5998 -6001 -6016 -6051 -6401 -6431 -6480 -6499 -6528 -6572 -6656 -6679 -6688 -6733 -6739 -6741 -6931 -6964 -6981 -6988 -7050 -7073 -7086 -7088 -7099 -7102 -7104 -7140 -7168 -7204 -7245 -7248 -43015 -43019 -43020 -43043 -43072 -43102 -43106 -43110 -43113 -43121 -43122 -43123 -43154 -43188 -43274 -43298 -43312 -43335 -43401 -43404 -43407 -43443 -43488 -43493 -43495 -43504 -43514 -43519 -43526 -43561 -43616 -43632 -43633 -43636 -43642 -43643 -43646 -43696 -43746 -43755 -43968 -43982 -43984 -43985 -43986 -43995 -68096 -68097 -68112 -68116 -68117 -68120 -68121 -68148 -69651 -69688 -69773 -69808 -69895 -69927 -69973 -70003 -70033 -70067 -70152 -70162 -70163 -70188 -70276 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70330 -70367 -70421 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70799 -70832 -71054 -71087 -71182 -71216 -71306 -71339 -71424 -71450 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Invisibl.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Invisibl.pl deleted file mode 100644 index a4230249..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Invisibl.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -4153 -4154 -6098 -6099 -6752 -6753 -7083 -7084 -43766 -43767 -68159 -68160 -69939 -69940 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Nukta.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Nukta.pl deleted file mode 100644 index e7ffb6eb..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Nukta.pl +++ /dev/null @@ -1,56 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V42 -2364 -2365 -2492 -2493 -2620 -2621 -2748 -2749 -2876 -2877 -3260 -3261 -3897 -3898 -6964 -6965 -7142 -7143 -7223 -7224 -43443 -43444 -68152 -68155 -69818 -69819 -70003 -70004 -70090 -70091 -70198 -70199 -70377 -70378 -70460 -70461 -70851 -70852 -71104 -71105 -71351 -71352 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Number.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Number.pl deleted file mode 100644 index a0a07f50..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Number.pl +++ /dev/null @@ -1,94 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V80 -48 -58 -2406 -2416 -2534 -2544 -2662 -2672 -2790 -2800 -2918 -2928 -3046 -3056 -3174 -3184 -3302 -3312 -3430 -3440 -3558 -3568 -3664 -3674 -3792 -3802 -3872 -3892 -4160 -4170 -4240 -4250 -6112 -6122 -6470 -6480 -6608 -6618 -6784 -6794 -6800 -6810 -6992 -7002 -7088 -7098 -7232 -7242 -43216 -43226 -43264 -43274 -43472 -43482 -43504 -43514 -43600 -43610 -44016 -44026 -68160 -68168 -69734 -69744 -69942 -69952 -70096 -70106 -70113 -70133 -70384 -70394 -70864 -70874 -71248 -71258 -71360 -71370 -71472 -71484 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Other.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Other.pl deleted file mode 100644 index 279487cd..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Other.pl +++ /dev/null @@ -1,581 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V567 -0 -45 -46 -48 -58 -160 -161 -178 -180 -215 -216 -2304 -2384 -2385 -2387 -2389 -2404 -2406 -2416 -2418 -2432 -2433 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2546 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2649 -2653 -2654 -2655 -2662 -2676 -2677 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2784 -2788 -2790 -2800 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2928 -2929 -2930 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3031 -3032 -3046 -3056 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3440 -3450 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3572 -3585 -3631 -3632 -3643 -3648 -3654 -3655 -3663 -3664 -3674 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3759 -3760 -3770 -3771 -3774 -3776 -3781 -3784 -3788 -3789 -3790 -3792 -3802 -3804 -3808 -3872 -3892 -3893 -3894 -3895 -3896 -3897 -3898 -3904 -3912 -3913 -3949 -3953 -3974 -3976 -3992 -3993 -4029 -4038 -4039 -4096 -4170 -4174 -4175 -4176 -4254 -5888 -5901 -5902 -5909 -5920 -5941 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6068 -6070 -6100 -6108 -6109 -6112 -6122 -6400 -6431 -6432 -6444 -6448 -6460 -6470 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6618 -6656 -6684 -6688 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6912 -6988 -6992 -7002 -7040 -7156 -7168 -7224 -7232 -7242 -7245 -7248 -7376 -7379 -7380 -7394 -7410 -7413 -7416 -7418 -8204 -8206 -8208 -8213 -8308 -8309 -8322 -8325 -9676 -9677 -43008 -43010 -43011 -43048 -43072 -43124 -43136 -43205 -43216 -43226 -43232 -43250 -43264 -43310 -43312 -43348 -43392 -43457 -43472 -43482 -43488 -43494 -43495 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43616 -43632 -43633 -43636 -43642 -43715 -43744 -43760 -43765 -43767 -43968 -44011 -44012 -44014 -44016 -44026 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -69632 -69703 -69714 -69744 -69759 -69819 -69888 -69941 -69942 -69952 -69968 -70004 -70016 -70084 -70090 -70093 -70096 -70106 -70113 -70133 -70144 -70162 -70163 -70200 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70487 -70488 -70496 -70500 -70502 -70509 -70512 -70517 -70785 -70853 -70864 -70874 -71040 -71094 -71096 -71105 -71128 -71134 -71168 -71233 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71484 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/PureKill.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/PureKill.pl deleted file mode 100644 index 15d17caf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/PureKill.pl +++ /dev/null @@ -1,44 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V30 -3642 -3643 -3662 -3663 -3972 -3973 -4154 -4155 -5908 -5909 -5940 -5941 -6097 -6098 -7082 -7083 -7154 -7156 -43014 -43015 -43347 -43348 -44013 -44014 -69940 -69941 -70378 -70379 -71467 -71468 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Syllable.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Syllable.pl deleted file mode 100644 index 339b8303..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Syllable.pl +++ /dev/null @@ -1,40 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V26 -178 -180 -3893 -3894 -3895 -3896 -4038 -4039 -6091 -6092 -6094 -6097 -6099 -6100 -6459 -6460 -6778 -6781 -6783 -6784 -7222 -7223 -8308 -8309 -8322 -8325 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/ToneMark.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/ToneMark.pl deleted file mode 100644 index fae75edf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/ToneMark.pl +++ /dev/null @@ -1,44 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V30 -3656 -3660 -3784 -3788 -4151 -4152 -4195 -4197 -4201 -4206 -4231 -4238 -4239 -4240 -4250 -4252 -6600 -6602 -6773 -6778 -43307 -43310 -43643 -43646 -43711 -43712 -43713 -43714 -44012 -44013 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Virama.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Virama.pl deleted file mode 100644 index b6daaa8a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Virama.pl +++ /dev/null @@ -1,58 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V44 -2381 -2382 -2509 -2510 -2637 -2638 -2765 -2766 -2893 -2894 -3021 -3022 -3149 -3150 -3277 -3278 -3405 -3406 -3530 -3531 -6980 -6981 -43204 -43205 -43456 -43457 -69702 -69703 -69817 -69818 -70080 -70081 -70197 -70198 -70477 -70478 -70850 -70851 -71103 -71104 -71231 -71232 -71350 -71351 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Visarga.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Visarga.pl deleted file mode 100644 index ab4daf1c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Visarga.pl +++ /dev/null @@ -1,70 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V56 -2307 -2308 -2435 -2436 -2563 -2564 -2691 -2692 -2819 -2820 -3075 -3076 -3203 -3204 -3331 -3332 -3459 -3460 -3967 -3968 -4152 -4153 -6087 -6088 -6916 -6917 -7042 -7043 -7410 -7412 -43137 -43138 -43395 -43396 -43765 -43766 -68111 -68112 -69634 -69635 -69762 -69763 -69890 -69891 -70018 -70019 -70403 -70404 -70849 -70850 -71102 -71103 -71230 -71231 -71340 -71341 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Vowel.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Vowel.pl deleted file mode 100644 index d2e31377..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/Vowel.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -6499 -6510 -43102 -43106 -43110 -43111 -43298 -43307 -69968 -69973 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/VowelDep.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/VowelDep.pl deleted file mode 100644 index ace82a8e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/VowelDep.pl +++ /dev/null @@ -1,228 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V214 -2362 -2364 -2366 -2381 -2382 -2384 -2389 -2392 -2402 -2404 -2494 -2501 -2503 -2505 -2507 -2509 -2519 -2520 -2530 -2532 -2622 -2627 -2631 -2633 -2635 -2637 -2750 -2758 -2759 -2762 -2763 -2765 -2786 -2788 -2878 -2885 -2887 -2889 -2891 -2893 -2902 -2904 -2914 -2916 -3006 -3011 -3014 -3017 -3018 -3021 -3031 -3032 -3134 -3141 -3142 -3145 -3146 -3149 -3157 -3159 -3170 -3172 -3262 -3269 -3270 -3273 -3274 -3277 -3285 -3287 -3298 -3300 -3390 -3397 -3398 -3401 -3402 -3405 -3415 -3416 -3426 -3428 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3572 -3632 -3642 -3648 -3654 -3655 -3656 -3760 -3770 -3771 -3772 -3776 -3781 -3953 -3966 -3968 -3970 -4139 -4150 -4182 -4186 -4194 -4195 -4199 -4201 -4209 -4213 -4227 -4231 -4252 -4254 -5906 -5908 -5938 -5940 -5970 -5972 -6002 -6004 -6070 -6086 -6088 -6089 -6432 -6441 -6458 -6459 -6576 -6593 -6679 -6684 -6753 -6773 -6965 -6980 -7076 -7082 -7143 -7152 -7206 -7213 -43043 -43048 -43189 -43204 -43335 -43343 -43444 -43453 -43493 -43494 -43561 -43571 -43696 -43711 -43755 -43760 -44003 -44011 -68097 -68100 -68101 -68103 -68108 -68110 -69688 -69702 -69808 -69817 -69927 -69939 -70067 -70080 -70091 -70093 -70188 -70196 -70368 -70377 -70462 -70469 -70471 -70473 -70475 -70477 -70487 -70488 -70498 -70500 -70832 -70847 -71087 -71094 -71096 -71100 -71132 -71134 -71216 -71229 -71232 -71233 -71341 -71350 -71456 -71467 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/VowelInd.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/VowelInd.pl deleted file mode 100644 index 1f455bd6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/InSC/VowelInd.pl +++ /dev/null @@ -1,154 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V140 -2308 -2325 -2400 -2402 -2418 -2424 -2437 -2445 -2447 -2449 -2451 -2453 -2528 -2530 -2565 -2571 -2575 -2577 -2579 -2581 -2693 -2702 -2703 -2706 -2707 -2709 -2784 -2786 -2821 -2829 -2831 -2833 -2835 -2837 -2912 -2914 -2949 -2955 -2958 -2961 -2962 -2965 -3077 -3085 -3086 -3089 -3090 -3093 -3168 -3170 -3205 -3213 -3214 -3217 -3218 -3221 -3296 -3298 -3333 -3341 -3342 -3345 -3346 -3349 -3423 -3426 -3461 -3479 -4129 -4139 -4178 -4182 -5888 -5891 -5920 -5923 -5952 -5955 -5984 -5987 -6051 -6068 -6733 -6739 -6917 -6931 -7043 -7050 -7140 -7142 -43008 -43010 -43011 -43014 -43138 -43154 -43396 -43401 -43404 -43407 -43520 -43526 -43744 -43746 -43982 -43984 -43985 -43986 -69637 -69651 -69763 -69773 -69891 -69895 -70019 -70033 -70144 -70152 -70272 -70276 -70320 -70330 -70405 -70413 -70415 -70417 -70419 -70421 -70496 -70498 -70785 -70799 -71040 -71054 -71128 -71132 -71168 -71182 -71296 -71306 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Ain.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Ain.pl deleted file mode 100644 index 2967c6ea..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Ain.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -1593 -1595 -1696 -1697 -1788 -1789 -1885 -1888 -2227 -2228 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Alef.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Alef.pl deleted file mode 100644 index 7fee23f9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Alef.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -1570 -1572 -1573 -1574 -1575 -1576 -1649 -1652 -1653 -1654 -1907 -1909 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Beh.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Beh.pl deleted file mode 100644 index c68d0f7c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Beh.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -1576 -1577 -1578 -1580 -1646 -1647 -1657 -1665 -1872 -1879 -2208 -2210 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Dal.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Dal.pl deleted file mode 100644 index 2695ade2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Dal.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -1583 -1585 -1672 -1681 -1774 -1775 -1881 -1883 -2222 -2223 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/FarsiYeh.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/FarsiYeh.pl deleted file mode 100644 index 9e1599b9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/FarsiYeh.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -1597 -1600 -1740 -1741 -1742 -1743 -1909 -1911 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Feh.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Feh.pl deleted file mode 100644 index 065a9399..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Feh.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -1601 -1602 -1697 -1703 -1888 -1890 -2212 -2213 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Gaf.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Gaf.pl deleted file mode 100644 index 862bc46f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Gaf.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -1595 -1597 -1705 -1706 -1707 -1708 -1711 -1717 -1890 -1893 -2224 -2225 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Hah.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Hah.pl deleted file mode 100644 index 432e18ff..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Hah.pl +++ /dev/null @@ -1,30 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V16 -1580 -1583 -1665 -1672 -1727 -1728 -1879 -1881 -1902 -1904 -1906 -1907 -1916 -1917 -2210 -2211 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Kaf.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Kaf.pl deleted file mode 100644 index cbf7aca9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Kaf.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -1603 -1604 -1708 -1711 -1919 -1920 -2228 -2229 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Lam.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Lam.pl deleted file mode 100644 index 84e768f6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Lam.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -1604 -1605 -1717 -1721 -1898 -1899 -2214 -2215 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/NoJoinin.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/NoJoinin.pl deleted file mode 100644 index c533746b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/NoJoinin.pl +++ /dev/null @@ -1,57 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V43 -0 -1568 -1569 -1570 -1600 -1601 -1611 -1646 -1648 -1649 -1652 -1653 -1748 -1749 -1750 -1774 -1776 -1786 -1789 -1791 -1792 -1808 -1809 -1810 -1840 -1869 -1920 -2208 -2221 -2222 -2229 -68288 -68294 -68295 -68296 -68297 -68299 -68301 -68322 -68324 -68325 -68331 -68336 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Qaf.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Qaf.pl deleted file mode 100644 index e79cf802..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Qaf.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -1602 -1603 -1647 -1648 -1703 -1705 -2213 -2214 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Reh.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Reh.pl deleted file mode 100644 index 81f29f9d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Reh.pl +++ /dev/null @@ -1,30 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V16 -1585 -1587 -1681 -1690 -1775 -1776 -1883 -1884 -1899 -1901 -1905 -1906 -2218 -2219 -2226 -2227 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Sad.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Sad.pl deleted file mode 100644 index 47dca873..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Sad.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -1589 -1591 -1693 -1695 -1787 -1788 -2223 -2224 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Seen.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Seen.pl deleted file mode 100644 index b6a7b2c2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Seen.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -1587 -1589 -1690 -1693 -1786 -1787 -1884 -1885 -1901 -1902 -1904 -1905 -1917 -1919 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Waw.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Waw.pl deleted file mode 100644 index 501a7190..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Waw.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -1572 -1573 -1608 -1609 -1654 -1656 -1732 -1740 -1743 -1744 -1912 -1914 -2219 -2220 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Yeh.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Yeh.pl deleted file mode 100644 index a7fc24bf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jg/Yeh.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -1568 -1569 -1574 -1575 -1609 -1611 -1656 -1657 -1744 -1746 -1911 -1912 -2216 -2218 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jt/C.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jt/C.pl deleted file mode 100644 index e373166d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jt/C.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -1600 -1601 -2042 -2043 -6154 -6155 -8205 -8206 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jt/D.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jt/D.pl deleted file mode 100644 index d5fb083e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jt/D.pl +++ /dev/null @@ -1,120 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V106 -1568 -1569 -1574 -1575 -1576 -1577 -1578 -1583 -1587 -1600 -1601 -1608 -1609 -1611 -1646 -1648 -1656 -1672 -1690 -1728 -1729 -1731 -1740 -1741 -1742 -1743 -1744 -1746 -1786 -1789 -1791 -1792 -1810 -1813 -1818 -1822 -1823 -1832 -1833 -1834 -1835 -1836 -1837 -1839 -1870 -1881 -1884 -1899 -1901 -1905 -1906 -1907 -1909 -1912 -1914 -1920 -1994 -2027 -2113 -2118 -2120 -2121 -2122 -2132 -2133 -2134 -2208 -2218 -2223 -2225 -2227 -2229 -6151 -6152 -6176 -6264 -6279 -6313 -6314 -6315 -43072 -43122 -68288 -68293 -68307 -68311 -68312 -68317 -68318 -68321 -68331 -68335 -68480 -68481 -68482 -68483 -68486 -68489 -68490 -68492 -68493 -68494 -68496 -68497 -68525 -68527 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jt/R.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jt/R.pl deleted file mode 100644 index f81ecbfb..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jt/R.pl +++ /dev/null @@ -1,114 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V100 -1570 -1574 -1575 -1576 -1577 -1578 -1583 -1587 -1608 -1609 -1649 -1652 -1653 -1656 -1672 -1690 -1728 -1729 -1731 -1740 -1741 -1742 -1743 -1744 -1746 -1748 -1749 -1750 -1774 -1776 -1808 -1809 -1813 -1818 -1822 -1823 -1832 -1833 -1834 -1835 -1836 -1837 -1839 -1840 -1869 -1870 -1881 -1884 -1899 -1901 -1905 -1906 -1907 -1909 -1912 -1914 -2112 -2113 -2118 -2120 -2121 -2122 -2132 -2133 -2218 -2221 -2222 -2223 -2225 -2227 -68293 -68294 -68295 -68296 -68297 -68299 -68302 -68307 -68317 -68318 -68321 -68322 -68324 -68325 -68335 -68336 -68481 -68482 -68483 -68486 -68489 -68490 -68492 -68493 -68494 -68496 -68497 -68498 -68521 -68525 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jt/T.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jt/T.pl deleted file mode 100644 index be851093..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jt/T.pl +++ /dev/null @@ -1,570 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V556 -173 -174 -768 -880 -1155 -1162 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1552 -1563 -1564 -1565 -1611 -1632 -1648 -1649 -1750 -1757 -1759 -1765 -1767 -1769 -1770 -1774 -1807 -1808 -1809 -1810 -1840 -1867 -1958 -1969 -2027 -2036 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2094 -2137 -2140 -2275 -2307 -2362 -2363 -2364 -2365 -2369 -2377 -2381 -2382 -2385 -2392 -2402 -2404 -2433 -2434 -2492 -2493 -2497 -2501 -2509 -2510 -2530 -2532 -2561 -2563 -2620 -2621 -2625 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2672 -2674 -2677 -2678 -2689 -2691 -2748 -2749 -2753 -2758 -2759 -2761 -2765 -2766 -2786 -2788 -2817 -2818 -2876 -2877 -2879 -2880 -2881 -2885 -2893 -2894 -2902 -2903 -2914 -2916 -2946 -2947 -3008 -3009 -3021 -3022 -3072 -3073 -3134 -3137 -3142 -3145 -3146 -3150 -3157 -3159 -3170 -3172 -3201 -3202 -3260 -3261 -3263 -3264 -3270 -3271 -3276 -3278 -3298 -3300 -3329 -3330 -3393 -3397 -3405 -3406 -3426 -3428 -3530 -3531 -3538 -3541 -3542 -3543 -3633 -3634 -3636 -3643 -3655 -3663 -3761 -3762 -3764 -3770 -3771 -3773 -3784 -3790 -3864 -3866 -3893 -3894 -3895 -3896 -3897 -3898 -3953 -3967 -3968 -3973 -3974 -3976 -3981 -3992 -3993 -4029 -4038 -4039 -4141 -4145 -4146 -4152 -4153 -4155 -4157 -4159 -4184 -4186 -4190 -4193 -4209 -4213 -4226 -4227 -4229 -4231 -4237 -4238 -4253 -4254 -4957 -4960 -5906 -5909 -5938 -5941 -5970 -5972 -6002 -6004 -6068 -6070 -6071 -6078 -6086 -6087 -6089 -6100 -6109 -6110 -6155 -6158 -6313 -6314 -6432 -6435 -6439 -6441 -6450 -6451 -6457 -6460 -6679 -6681 -6683 -6684 -6742 -6743 -6744 -6751 -6752 -6753 -6754 -6755 -6757 -6765 -6771 -6781 -6783 -6784 -6832 -6847 -6912 -6916 -6964 -6965 -6966 -6971 -6972 -6973 -6978 -6979 -7019 -7028 -7040 -7042 -7074 -7078 -7080 -7082 -7083 -7086 -7142 -7143 -7144 -7146 -7149 -7150 -7151 -7154 -7212 -7220 -7222 -7224 -7376 -7379 -7380 -7393 -7394 -7401 -7405 -7406 -7412 -7413 -7416 -7418 -7616 -7670 -7676 -7680 -8203 -8204 -8206 -8208 -8234 -8239 -8288 -8293 -8298 -8304 -8400 -8433 -11503 -11506 -11647 -11648 -11744 -11776 -12330 -12334 -12441 -12443 -42607 -42611 -42612 -42622 -42654 -42656 -42736 -42738 -43010 -43011 -43014 -43015 -43019 -43020 -43045 -43047 -43204 -43205 -43232 -43250 -43302 -43310 -43335 -43346 -43392 -43395 -43443 -43444 -43446 -43450 -43452 -43453 -43493 -43494 -43561 -43567 -43569 -43571 -43573 -43575 -43587 -43588 -43596 -43597 -43644 -43645 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43756 -43758 -43766 -43767 -44005 -44006 -44008 -44009 -44013 -44014 -64286 -64287 -65024 -65040 -65056 -65072 -65279 -65280 -65529 -65532 -66045 -66046 -66272 -66273 -66422 -66427 -68097 -68100 -68101 -68103 -68108 -68112 -68152 -68155 -68159 -68160 -68325 -68327 -69633 -69634 -69688 -69703 -69759 -69762 -69811 -69815 -69817 -69819 -69821 -69822 -69888 -69891 -69927 -69932 -69933 -69941 -70003 -70004 -70016 -70018 -70070 -70079 -70090 -70093 -70191 -70194 -70196 -70197 -70198 -70200 -70367 -70368 -70371 -70379 -70400 -70402 -70460 -70461 -70464 -70465 -70502 -70509 -70512 -70517 -70835 -70841 -70842 -70843 -70847 -70849 -70850 -70852 -71090 -71094 -71100 -71102 -71103 -71105 -71132 -71134 -71219 -71227 -71229 -71230 -71231 -71233 -71339 -71340 -71341 -71342 -71344 -71350 -71351 -71352 -71453 -71456 -71458 -71462 -71463 -71468 -92912 -92917 -92976 -92983 -94095 -94099 -113821 -113823 -113824 -113828 -119143 -119146 -119155 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -125136 -125143 -917505 -917506 -917536 -917632 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jt/U.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jt/U.pl deleted file mode 100644 index 657b8874..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Jt/U.pl +++ /dev/null @@ -1,605 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V591 -0 -173 -174 -768 -880 -1155 -1162 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1552 -1563 -1564 -1565 -1568 -1569 -1570 -1632 -1646 -1652 -1653 -1748 -1749 -1757 -1759 -1765 -1767 -1769 -1770 -1776 -1786 -1789 -1791 -1792 -1807 -1867 -1869 -1920 -1958 -1969 -1994 -2036 -2042 -2043 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2094 -2112 -2134 -2137 -2140 -2208 -2221 -2222 -2229 -2275 -2307 -2362 -2363 -2364 -2365 -2369 -2377 -2381 -2382 -2385 -2392 -2402 -2404 -2433 -2434 -2492 -2493 -2497 -2501 -2509 -2510 -2530 -2532 -2561 -2563 -2620 -2621 -2625 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2672 -2674 -2677 -2678 -2689 -2691 -2748 -2749 -2753 -2758 -2759 -2761 -2765 -2766 -2786 -2788 -2817 -2818 -2876 -2877 -2879 -2880 -2881 -2885 -2893 -2894 -2902 -2903 -2914 -2916 -2946 -2947 -3008 -3009 -3021 -3022 -3072 -3073 -3134 -3137 -3142 -3145 -3146 -3150 -3157 -3159 -3170 -3172 -3201 -3202 -3260 -3261 -3263 -3264 -3270 -3271 -3276 -3278 -3298 -3300 -3329 -3330 -3393 -3397 -3405 -3406 -3426 -3428 -3530 -3531 -3538 -3541 -3542 -3543 -3633 -3634 -3636 -3643 -3655 -3663 -3761 -3762 -3764 -3770 -3771 -3773 -3784 -3790 -3864 -3866 -3893 -3894 -3895 -3896 -3897 -3898 -3953 -3967 -3968 -3973 -3974 -3976 -3981 -3992 -3993 -4029 -4038 -4039 -4141 -4145 -4146 -4152 -4153 -4155 -4157 -4159 -4184 -4186 -4190 -4193 -4209 -4213 -4226 -4227 -4229 -4231 -4237 -4238 -4253 -4254 -4957 -4960 -5906 -5909 -5938 -5941 -5970 -5972 -6002 -6004 -6068 -6070 -6071 -6078 -6086 -6087 -6089 -6100 -6109 -6110 -6151 -6152 -6154 -6158 -6176 -6264 -6279 -6315 -6432 -6435 -6439 -6441 -6450 -6451 -6457 -6460 -6679 -6681 -6683 -6684 -6742 -6743 -6744 -6751 -6752 -6753 -6754 -6755 -6757 -6765 -6771 -6781 -6783 -6784 -6832 -6847 -6912 -6916 -6964 -6965 -6966 -6971 -6972 -6973 -6978 -6979 -7019 -7028 -7040 -7042 -7074 -7078 -7080 -7082 -7083 -7086 -7142 -7143 -7144 -7146 -7149 -7150 -7151 -7154 -7212 -7220 -7222 -7224 -7376 -7379 -7380 -7393 -7394 -7401 -7405 -7406 -7412 -7413 -7416 -7418 -7616 -7670 -7676 -7680 -8203 -8204 -8205 -8208 -8234 -8239 -8288 -8293 -8298 -8304 -8400 -8433 -11503 -11506 -11647 -11648 -11744 -11776 -12330 -12334 -12441 -12443 -42607 -42611 -42612 -42622 -42654 -42656 -42736 -42738 -43010 -43011 -43014 -43015 -43019 -43020 -43045 -43047 -43072 -43123 -43204 -43205 -43232 -43250 -43302 -43310 -43335 -43346 -43392 -43395 -43443 -43444 -43446 -43450 -43452 -43453 -43493 -43494 -43561 -43567 -43569 -43571 -43573 -43575 -43587 -43588 -43596 -43597 -43644 -43645 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43756 -43758 -43766 -43767 -44005 -44006 -44008 -44009 -44013 -44014 -64286 -64287 -65024 -65040 -65056 -65072 -65279 -65280 -65529 -65532 -66045 -66046 -66272 -66273 -66422 -66427 -68097 -68100 -68101 -68103 -68108 -68112 -68152 -68155 -68159 -68160 -68288 -68294 -68295 -68296 -68297 -68299 -68301 -68322 -68324 -68327 -68331 -68336 -68480 -68498 -68521 -68527 -69633 -69634 -69688 -69703 -69759 -69762 -69811 -69815 -69817 -69819 -69821 -69822 -69888 -69891 -69927 -69932 -69933 -69941 -70003 -70004 -70016 -70018 -70070 -70079 -70090 -70093 -70191 -70194 -70196 -70197 -70198 -70200 -70367 -70368 -70371 -70379 -70400 -70402 -70460 -70461 -70464 -70465 -70502 -70509 -70512 -70517 -70835 -70841 -70842 -70843 -70847 -70849 -70850 -70852 -71090 -71094 -71100 -71102 -71103 -71105 -71132 -71134 -71219 -71227 -71229 -71230 -71231 -71233 -71339 -71340 -71341 -71342 -71344 -71350 -71351 -71352 -71453 -71456 -71458 -71462 -71463 -71468 -92912 -92917 -92976 -92983 -94095 -94099 -113821 -113823 -113824 -113828 -119143 -119146 -119155 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -125136 -125143 -917505 -917506 -917536 -917632 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/AI.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/AI.pl deleted file mode 100644 index d3127661..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/AI.pl +++ /dev/null @@ -1,232 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V218 -167 -169 -170 -171 -178 -180 -182 -187 -188 -191 -215 -216 -247 -248 -711 -712 -713 -716 -717 -718 -720 -721 -728 -732 -733 -734 -8213 -8215 -8224 -8226 -8251 -8252 -8308 -8309 -8319 -8320 -8321 -8325 -8453 -8454 -8467 -8468 -8481 -8483 -8491 -8492 -8532 -8534 -8539 -8540 -8542 -8543 -8544 -8556 -8560 -8570 -8585 -8586 -8592 -8602 -8658 -8659 -8660 -8661 -8704 -8705 -8706 -8708 -8711 -8713 -8715 -8716 -8719 -8720 -8721 -8722 -8725 -8726 -8730 -8731 -8733 -8737 -8739 -8740 -8741 -8742 -8743 -8749 -8750 -8751 -8756 -8760 -8764 -8766 -8776 -8777 -8780 -8781 -8786 -8787 -8800 -8802 -8804 -8808 -8810 -8812 -8814 -8816 -8834 -8836 -8838 -8840 -8853 -8854 -8857 -8858 -8869 -8870 -8895 -8896 -8978 -8979 -9312 -9471 -9472 -9548 -9552 -9589 -9600 -9616 -9618 -9622 -9632 -9634 -9635 -9642 -9650 -9652 -9654 -9656 -9660 -9662 -9664 -9666 -9670 -9673 -9675 -9676 -9678 -9682 -9698 -9702 -9711 -9712 -9733 -9735 -9737 -9738 -9742 -9744 -9750 -9752 -9792 -9793 -9794 -9795 -9824 -9826 -9827 -9830 -9831 -9832 -9833 -9835 -9836 -9838 -9839 -9840 -9886 -9888 -9929 -9933 -9938 -9939 -9941 -9944 -9946 -9948 -9949 -9951 -9955 -9956 -9960 -9962 -9963 -9969 -9974 -9975 -9979 -9981 -10071 -10072 -10102 -10132 -11093 -11098 -12872 -12880 -65533 -65534 -127232 -127245 -127248 -127278 -127280 -127338 -127344 -127387 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/AL.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/AL.pl deleted file mode 100644 index 02f6aa62..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/AL.pl +++ /dev/null @@ -1,1410 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1396 -35 -36 -38 -39 -42 -43 -60 -63 -64 -91 -94 -123 -126 -127 -166 -167 -169 -170 -172 -173 -174 -176 -181 -182 -192 -215 -216 -247 -248 -711 -718 -720 -721 -728 -732 -733 -734 -735 -736 -768 -880 -888 -890 -894 -895 -896 -900 -907 -908 -909 -910 -930 -931 -1155 -1162 -1328 -1329 -1367 -1369 -1376 -1377 -1416 -1421 -1423 -1472 -1473 -1475 -1476 -1523 -1525 -1536 -1545 -1550 -1552 -1568 -1611 -1645 -1648 -1649 -1748 -1749 -1750 -1757 -1759 -1765 -1767 -1769 -1770 -1774 -1776 -1786 -1806 -1807 -1809 -1810 -1840 -1869 -1958 -1969 -1970 -1994 -2027 -2036 -2040 -2042 -2043 -2048 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2096 -2111 -2112 -2137 -2142 -2143 -2208 -2229 -2308 -2362 -2365 -2366 -2384 -2385 -2392 -2402 -2416 -2433 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2493 -2494 -2510 -2511 -2524 -2526 -2527 -2530 -2544 -2546 -2548 -2553 -2554 -2555 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2649 -2653 -2654 -2655 -2674 -2677 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2749 -2750 -2768 -2769 -2784 -2786 -2800 -2801 -2809 -2810 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2877 -2878 -2908 -2910 -2911 -2914 -2928 -2936 -2947 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3024 -3025 -3056 -3065 -3066 -3067 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3134 -3160 -3163 -3168 -3170 -3192 -3200 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3261 -3262 -3294 -3295 -3296 -3298 -3313 -3315 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3390 -3406 -3407 -3423 -3426 -3440 -3446 -3450 -3456 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3572 -3573 -3663 -3664 -3840 -3841 -3845 -3846 -3859 -3860 -3861 -3864 -3866 -3872 -3882 -3892 -3894 -3895 -3896 -3897 -3904 -3912 -3913 -3949 -3976 -3981 -4032 -4038 -4039 -4045 -4046 -4048 -4052 -4057 -4172 -4176 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4352 -4608 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4960 -4961 -4962 -4989 -4992 -5018 -5024 -5110 -5112 -5118 -5121 -5760 -5761 -5787 -5792 -5867 -5870 -5881 -5888 -5901 -5902 -5906 -5920 -5938 -5952 -5970 -5984 -5997 -5998 -6001 -6105 -6106 -6128 -6138 -6144 -6146 -6151 -6152 -6154 -6155 -6176 -6264 -6272 -6313 -6314 -6315 -6320 -6390 -6400 -6431 -6464 -6465 -6624 -6679 -6686 -6688 -6917 -6964 -6981 -6988 -7004 -7005 -7009 -7019 -7028 -7037 -7043 -7073 -7086 -7088 -7098 -7142 -7164 -7204 -7245 -7248 -7258 -7294 -7360 -7368 -7379 -7380 -7401 -7405 -7406 -7410 -7413 -7415 -7424 -7616 -7680 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8189 -8190 -8191 -8215 -8216 -8226 -8228 -8248 -8249 -8254 -8260 -8266 -8278 -8279 -8280 -8284 -8285 -8289 -8293 -8304 -8306 -8309 -8317 -8320 -8321 -8325 -8333 -8336 -8349 -8448 -8451 -8452 -8453 -8454 -8457 -8458 -8467 -8468 -8470 -8471 -8481 -8483 -8491 -8492 -8532 -8534 -8539 -8540 -8542 -8543 -8544 -8556 -8560 -8570 -8585 -8586 -8588 -8602 -8658 -8659 -8660 -8661 -8704 -8705 -8706 -8708 -8711 -8713 -8715 -8716 -8719 -8720 -8721 -8724 -8725 -8726 -8730 -8731 -8733 -8737 -8739 -8740 -8741 -8742 -8743 -8749 -8750 -8751 -8756 -8760 -8764 -8766 -8776 -8777 -8780 -8781 -8786 -8787 -8800 -8802 -8804 -8808 -8810 -8812 -8814 -8816 -8834 -8836 -8838 -8840 -8853 -8854 -8857 -8858 -8869 -8870 -8895 -8896 -8943 -8944 -8968 -8972 -8978 -8979 -8986 -8988 -9001 -9003 -9200 -9204 -9211 -9216 -9255 -9280 -9291 -9471 -9472 -9548 -9552 -9589 -9600 -9616 -9618 -9622 -9632 -9634 -9635 -9642 -9650 -9652 -9654 -9656 -9660 -9662 -9664 -9666 -9670 -9673 -9675 -9676 -9678 -9682 -9698 -9702 -9711 -9712 -9728 -9732 -9733 -9735 -9737 -9738 -9742 -9744 -9748 -9753 -9754 -9760 -9785 -9788 -9792 -9793 -9794 -9795 -9824 -9826 -9827 -9830 -9831 -9835 -9836 -9838 -9839 -9840 -9855 -9856 -9886 -9888 -9917 -9934 -9935 -9954 -9955 -9956 -9960 -9989 -9992 -9998 -10071 -10072 -10075 -10081 -10082 -10084 -10088 -10132 -10181 -10183 -10214 -10224 -10627 -10649 -10712 -10716 -10748 -10750 -11093 -11098 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11264 -11311 -11312 -11359 -11360 -11503 -11506 -11508 -11517 -11518 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11798 -11799 -11802 -11804 -11806 -11808 -11823 -11824 -11826 -11827 -11829 -11834 -11839 -11840 -19904 -19968 -42192 -42238 -42240 -42509 -42512 -42528 -42538 -42540 -42560 -42607 -42611 -42612 -42622 -42654 -42656 -42736 -42738 -42739 -42752 -42926 -42928 -42936 -42999 -43010 -43011 -43014 -43015 -43019 -43020 -43043 -43048 -43052 -43056 -43064 -43065 -43066 -43072 -43124 -43138 -43188 -43250 -43260 -43261 -43262 -43274 -43302 -43312 -43335 -43359 -43360 -43396 -43443 -43457 -43463 -43466 -43470 -43471 -43472 -43486 -43488 -43520 -43561 -43584 -43587 -43588 -43596 -43612 -43613 -43744 -43755 -43762 -43765 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43878 -43888 -44003 -64256 -64263 -64275 -64280 -64297 -64298 -64336 -64450 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65020 -65021 -65022 -65136 -65141 -65142 -65277 -65382 -65383 -65393 -65438 -65440 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65512 -65519 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65799 -65844 -65847 -65933 -65936 -65948 -65952 -65953 -66000 -66045 -66176 -66205 -66208 -66257 -66273 -66300 -66304 -66340 -66352 -66379 -66384 -66422 -66432 -66462 -66464 -66500 -66504 -66512 -66513 -66518 -66560 -66718 -66816 -66856 -66864 -66916 -66927 -66928 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67672 -67743 -67751 -67760 -67808 -67827 -67828 -67830 -67835 -67868 -67872 -67898 -67903 -67904 -67968 -68024 -68028 -68048 -68050 -68097 -68112 -68116 -68117 -68120 -68121 -68148 -68160 -68168 -68184 -68185 -68192 -68256 -68288 -68325 -68331 -68336 -68352 -68406 -68416 -68438 -68440 -68467 -68472 -68498 -68505 -68509 -68521 -68528 -68608 -68681 -68736 -68787 -68800 -68851 -68858 -68864 -69216 -69247 -69635 -69688 -69705 -69710 -69714 -69734 -69763 -69808 -69819 -69822 -69840 -69865 -69891 -69927 -69968 -70003 -70004 -70005 -70006 -70007 -70019 -70067 -70081 -70085 -70087 -70088 -70089 -70090 -70093 -70094 -70106 -70107 -70108 -70109 -70113 -70133 -70144 -70162 -70163 -70188 -70202 -70203 -70205 -70206 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70367 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70461 -70462 -70480 -70481 -70493 -70498 -70784 -70832 -70852 -70856 -71040 -71087 -71110 -71113 -71128 -71132 -71168 -71216 -71235 -71237 -71296 -71339 -71840 -71904 -71914 -71923 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74880 -75076 -77824 -78424 -78430 -78466 -78467 -78470 -78474 -78713 -78716 -78895 -82944 -83406 -83408 -83527 -92160 -92729 -92736 -92767 -92880 -92910 -92928 -92976 -92986 -92996 -92997 -92998 -93019 -93026 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94033 -94099 -94112 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113820 -113821 -118784 -119030 -119040 -119079 -119081 -119141 -119146 -119149 -119171 -119173 -119180 -119210 -119214 -119273 -119296 -119362 -119365 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120832 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121479 -121483 -121484 -124928 -125125 -125127 -125136 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -127278 -127279 -127338 -127340 -127900 -127902 -127925 -127927 -127932 -127933 -127995 -128000 -128160 -128161 -128162 -128163 -128164 -128165 -128175 -128176 -128177 -128179 -128256 -128263 -128279 -128293 -128306 -128330 -128468 -128476 -128500 -128506 -128592 -128630 -128636 -128640 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/BA.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/BA.pl deleted file mode 100644 index 24e9fe61..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/BA.pl +++ /dev/null @@ -1,184 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V170 -9 -10 -124 -125 -173 -174 -1418 -1419 -1470 -1471 -2404 -2406 -3674 -3676 -3851 -3852 -3892 -3893 -3967 -3968 -3973 -3974 -4030 -4032 -4050 -4051 -4170 -4172 -4961 -4962 -5120 -5121 -5760 -5761 -5867 -5870 -5941 -5943 -6100 -6102 -6104 -6105 -6106 -6107 -6148 -6150 -7002 -7004 -7005 -7009 -7227 -7232 -7294 -7296 -8192 -8199 -8200 -8203 -8208 -8209 -8210 -8212 -8231 -8232 -8278 -8279 -8280 -8284 -8285 -8288 -11514 -11517 -11519 -11520 -11632 -11633 -11790 -11798 -11799 -11800 -11801 -11802 -11818 -11822 -11824 -11826 -11827 -11829 -11836 -11839 -11840 -11842 -12288 -12289 -42238 -42240 -42509 -42510 -42511 -42512 -42739 -42744 -43214 -43216 -43310 -43312 -43463 -43466 -43613 -43616 -43760 -43762 -44011 -44012 -65792 -65795 -66463 -66464 -66512 -66513 -67671 -67672 -67871 -67872 -68176 -68184 -68336 -68342 -68409 -68416 -69703 -69705 -69822 -69826 -69952 -69956 -70085 -70087 -70088 -70089 -70109 -70112 -70200 -70202 -70203 -70205 -70313 -70314 -71106 -71108 -71113 -71128 -71233 -71235 -71484 -71487 -74864 -74869 -92782 -92784 -92917 -92918 -92983 -92986 -92996 -92997 -113823 -113824 -121479 -121483 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/BB.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/BB.pl deleted file mode 100644 index 341accea..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/BB.pl +++ /dev/null @@ -1,46 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V32 -180 -181 -712 -713 -716 -717 -735 -736 -3841 -3845 -3846 -3848 -3849 -3851 -4048 -4050 -4051 -4052 -6150 -6151 -8189 -8190 -43124 -43126 -43260 -43261 -70005 -70006 -70107 -70108 -71105 -71106 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/CJ.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/CJ.pl deleted file mode 100644 index e556ecaf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/CJ.pl +++ /dev/null @@ -1,64 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V50 -12353 -12354 -12355 -12356 -12357 -12358 -12359 -12360 -12361 -12362 -12387 -12388 -12419 -12420 -12421 -12422 -12423 -12424 -12430 -12431 -12437 -12439 -12449 -12450 -12451 -12452 -12453 -12454 -12455 -12456 -12457 -12458 -12483 -12484 -12515 -12516 -12517 -12518 -12519 -12520 -12526 -12527 -12533 -12535 -12540 -12541 -12784 -12800 -65383 -65393 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/CL.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/CL.pl deleted file mode 100644 index 69b6793f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/CL.pl +++ /dev/null @@ -1,178 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V164 -125 -126 -3899 -3900 -3901 -3902 -5788 -5789 -8262 -8263 -8318 -8319 -8334 -8335 -8969 -8970 -8971 -8972 -9002 -9003 -10089 -10090 -10091 -10092 -10093 -10094 -10095 -10096 -10097 -10098 -10099 -10100 -10101 -10102 -10182 -10183 -10215 -10216 -10217 -10218 -10219 -10220 -10221 -10222 -10223 -10224 -10628 -10629 -10630 -10631 -10632 -10633 -10634 -10635 -10636 -10637 -10638 -10639 -10640 -10641 -10642 -10643 -10644 -10645 -10646 -10647 -10648 -10649 -10713 -10714 -10715 -10716 -10749 -10750 -11811 -11812 -11813 -11814 -11815 -11816 -11817 -11818 -12289 -12291 -12297 -12298 -12299 -12300 -12301 -12302 -12303 -12304 -12305 -12306 -12309 -12310 -12311 -12312 -12313 -12314 -12315 -12316 -12318 -12320 -64830 -64831 -65041 -65043 -65048 -65049 -65078 -65079 -65080 -65081 -65082 -65083 -65084 -65085 -65086 -65087 -65088 -65089 -65090 -65091 -65092 -65093 -65096 -65097 -65104 -65105 -65106 -65107 -65114 -65115 -65116 -65117 -65118 -65119 -65289 -65290 -65292 -65293 -65294 -65295 -65341 -65342 -65373 -65374 -65376 -65378 -65379 -65381 -78427 -78430 -78466 -78467 -78471 -78472 -78473 -78474 -78714 -78716 -83407 -83408 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/CM.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/CM.pl deleted file mode 100644 index 988128db..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/CM.pl +++ /dev/null @@ -1,460 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V446 -0 -9 -14 -32 -127 -133 -134 -160 -768 -847 -848 -860 -867 -880 -1155 -1162 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1552 -1563 -1564 -1565 -1611 -1632 -1648 -1649 -1750 -1757 -1759 -1765 -1767 -1769 -1770 -1774 -1809 -1810 -1840 -1867 -1958 -1969 -2027 -2036 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2094 -2137 -2140 -2275 -2308 -2362 -2365 -2366 -2384 -2385 -2392 -2402 -2404 -2433 -2436 -2492 -2493 -2494 -2501 -2503 -2505 -2507 -2510 -2519 -2520 -2530 -2532 -2561 -2564 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2672 -2674 -2677 -2678 -2689 -2692 -2748 -2749 -2750 -2758 -2759 -2762 -2763 -2766 -2786 -2788 -2817 -2820 -2876 -2877 -2878 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2914 -2916 -2946 -2947 -3006 -3011 -3014 -3017 -3018 -3022 -3031 -3032 -3072 -3076 -3134 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3170 -3172 -3201 -3204 -3260 -3261 -3262 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3298 -3300 -3329 -3332 -3390 -3397 -3398 -3401 -3402 -3406 -3415 -3416 -3426 -3428 -3458 -3460 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3572 -3864 -3866 -3893 -3894 -3895 -3896 -3897 -3898 -3902 -3904 -3953 -3967 -3968 -3973 -3974 -3976 -3981 -3992 -3993 -4029 -4038 -4039 -4957 -4960 -5906 -5909 -5938 -5941 -5970 -5972 -6002 -6004 -6155 -6158 -6313 -6314 -6432 -6444 -6448 -6460 -6679 -6684 -6783 -6784 -6832 -6847 -6912 -6917 -6964 -6981 -7019 -7028 -7040 -7043 -7073 -7086 -7142 -7156 -7204 -7224 -7376 -7379 -7380 -7401 -7405 -7406 -7410 -7413 -7416 -7418 -7616 -7670 -7676 -7680 -8204 -8208 -8234 -8239 -8294 -8304 -8400 -8433 -11503 -11506 -11647 -11648 -11744 -11776 -12330 -12336 -12341 -12342 -12441 -12443 -42607 -42611 -42612 -42622 -42654 -42656 -42736 -42738 -43010 -43011 -43014 -43015 -43019 -43020 -43043 -43048 -43136 -43138 -43188 -43205 -43232 -43250 -43302 -43310 -43335 -43348 -43392 -43396 -43443 -43457 -43561 -43575 -43587 -43588 -43596 -43598 -43755 -43760 -43765 -43767 -44003 -44011 -44012 -44014 -64286 -64287 -65024 -65040 -65056 -65072 -65529 -65532 -66045 -66046 -66272 -66273 -66422 -66427 -68097 -68100 -68101 -68103 -68108 -68112 -68152 -68155 -68159 -68160 -68325 -68327 -69632 -69635 -69688 -69703 -69759 -69763 -69808 -69819 -69888 -69891 -69927 -69941 -70003 -70004 -70016 -70019 -70067 -70081 -70090 -70093 -70188 -70200 -70367 -70379 -70400 -70404 -70460 -70461 -70462 -70469 -70471 -70473 -70475 -70478 -70487 -70488 -70498 -70500 -70502 -70509 -70512 -70517 -70832 -70852 -71087 -71094 -71096 -71105 -71132 -71134 -71216 -71233 -71339 -71352 -92912 -92917 -92976 -92983 -94033 -94079 -94095 -94099 -113821 -113823 -113824 -113828 -119141 -119146 -119149 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -125136 -125143 -917505 -917506 -917536 -917632 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/EX.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/EX.pl deleted file mode 100644 index 355e93b4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/EX.pl +++ /dev/null @@ -1,60 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V46 -33 -34 -63 -64 -1478 -1479 -1563 -1564 -1566 -1568 -1748 -1749 -2041 -2042 -3853 -3858 -3860 -3861 -6146 -6148 -6152 -6154 -6468 -6470 -10082 -10084 -11513 -11514 -11518 -11519 -11822 -11823 -42510 -42511 -43126 -43128 -65045 -65047 -65110 -65112 -65281 -65282 -65311 -65312 -71108 -71110 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/GL.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/GL.pl deleted file mode 100644 index 274796a6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/GL.pl +++ /dev/null @@ -1,36 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V22 -160 -161 -847 -848 -860 -867 -3848 -3849 -3852 -3853 -3858 -3859 -4057 -4059 -6158 -6159 -8199 -8200 -8209 -8210 -8239 -8240 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/ID.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/ID.pl deleted file mode 100644 index 4ef7438b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/ID.pl +++ /dev/null @@ -1,260 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V246 -8986 -8988 -9200 -9204 -9728 -9732 -9748 -9750 -9752 -9753 -9754 -9760 -9785 -9788 -9832 -9833 -9855 -9856 -9917 -9929 -9933 -9934 -9935 -9938 -9939 -9941 -9944 -9946 -9948 -9949 -9951 -9954 -9962 -9963 -9969 -9974 -9975 -9979 -9981 -9989 -9992 -9998 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12291 -12293 -12294 -12296 -12306 -12308 -12320 -12330 -12336 -12341 -12342 -12347 -12349 -12352 -12354 -12355 -12356 -12357 -12358 -12359 -12360 -12361 -12362 -12387 -12388 -12419 -12420 -12421 -12422 -12423 -12424 -12430 -12431 -12437 -12447 -12448 -12450 -12451 -12452 -12453 -12454 -12455 -12456 -12457 -12458 -12483 -12484 -12515 -12516 -12517 -12518 -12519 -12520 -12526 -12527 -12533 -12535 -12539 -12543 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12800 -12831 -12832 -12872 -12880 -13055 -13056 -19904 -19968 -40981 -40982 -42125 -42128 -42183 -63744 -64256 -65072 -65077 -65093 -65095 -65097 -65104 -65105 -65106 -65112 -65113 -65119 -65127 -65128 -65129 -65131 -65132 -65282 -65284 -65286 -65288 -65290 -65292 -65293 -65294 -65295 -65306 -65308 -65311 -65312 -65339 -65340 -65341 -65342 -65371 -65372 -65373 -65374 -65375 -65506 -65509 -110592 -110594 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127488 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -127900 -127902 -127925 -127927 -127932 -127933 -127995 -128000 -128160 -128161 -128162 -128163 -128164 -128165 -128175 -128176 -128177 -128179 -128256 -128263 -128279 -128293 -128306 -128330 -128378 -128379 -128420 -128421 -128468 -128476 -128500 -128506 -128592 -128640 -128721 -128736 -128749 -128752 -128756 -129296 -129305 -129408 -129413 -129472 -129473 -131072 -196606 -196608 -262142 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/IN.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/IN.pl deleted file mode 100644 index ab2a75c3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/IN.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -8228 -8231 -8943 -8944 -65049 -65050 -68342 -68343 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/IS.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/IS.pl deleted file mode 100644 index ecdf6acf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/IS.pl +++ /dev/null @@ -1,34 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V20 -44 -45 -46 -47 -58 -60 -894 -895 -1417 -1418 -1548 -1550 -2040 -2041 -8260 -8261 -65040 -65041 -65043 -65045 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/NS.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/NS.pl deleted file mode 100644 index 65a8371f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/NS.pl +++ /dev/null @@ -1,46 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V32 -6102 -6103 -8252 -8254 -8263 -8266 -12293 -12294 -12316 -12317 -12347 -12349 -12443 -12447 -12448 -12449 -12539 -12540 -12541 -12543 -40981 -40982 -65108 -65110 -65306 -65308 -65381 -65382 -65438 -65440 -128633 -128636 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/OP.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/OP.pl deleted file mode 100644 index d712ec1f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/OP.pl +++ /dev/null @@ -1,180 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V166 -40 -41 -91 -92 -123 -124 -161 -162 -191 -192 -3898 -3899 -3900 -3901 -5787 -5788 -8218 -8219 -8222 -8223 -8261 -8262 -8317 -8318 -8333 -8334 -8968 -8969 -8970 -8971 -9001 -9002 -10088 -10089 -10090 -10091 -10092 -10093 -10094 -10095 -10096 -10097 -10098 -10099 -10100 -10101 -10181 -10182 -10214 -10215 -10216 -10217 -10218 -10219 -10220 -10221 -10222 -10223 -10627 -10628 -10629 -10630 -10631 -10632 -10633 -10634 -10635 -10636 -10637 -10638 -10639 -10640 -10641 -10642 -10643 -10644 -10645 -10646 -10647 -10648 -10712 -10713 -10714 -10715 -10748 -10749 -11800 -11801 -11810 -11811 -11812 -11813 -11814 -11815 -11816 -11817 -11842 -11843 -12296 -12297 -12298 -12299 -12300 -12301 -12302 -12303 -12304 -12305 -12308 -12309 -12310 -12311 -12312 -12313 -12314 -12315 -12317 -12318 -64831 -64832 -65047 -65048 -65077 -65078 -65079 -65080 -65081 -65082 -65083 -65084 -65085 -65086 -65087 -65088 -65089 -65090 -65091 -65092 -65095 -65096 -65113 -65114 -65115 -65116 -65117 -65118 -65288 -65289 -65339 -65340 -65371 -65372 -65375 -65376 -65378 -65379 -78424 -78427 -78470 -78471 -78472 -78473 -78713 -78714 -83406 -83407 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/PO.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/PO.pl deleted file mode 100644 index 8928c230..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/PO.pl +++ /dev/null @@ -1,54 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V40 -37 -38 -162 -163 -176 -177 -1545 -1548 -1642 -1643 -2546 -2548 -2553 -2554 -3449 -3450 -8240 -8248 -8359 -8360 -8374 -8375 -8379 -8380 -8382 -8383 -8451 -8452 -8457 -8458 -43064 -43065 -65020 -65021 -65130 -65131 -65285 -65286 -65504 -65505 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/PR.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/PR.pl deleted file mode 100644 index 7b064d10..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/PR.pl +++ /dev/null @@ -1,58 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V44 -36 -37 -43 -44 -92 -93 -163 -166 -177 -178 -1423 -1424 -2555 -2556 -2801 -2802 -3065 -3066 -3647 -3648 -6107 -6108 -8352 -8359 -8360 -8374 -8375 -8379 -8380 -8382 -8383 -8400 -8470 -8471 -8722 -8724 -65129 -65130 -65284 -65285 -65505 -65506 -65509 -65511 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/QU.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/QU.pl deleted file mode 100644 index 5827fa77..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/QU.pl +++ /dev/null @@ -1,40 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V26 -34 -35 -39 -40 -171 -172 -187 -188 -8216 -8218 -8219 -8222 -8223 -8224 -8249 -8251 -10075 -10081 -11776 -11790 -11804 -11806 -11808 -11810 -128630 -128633 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/SA.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/SA.pl deleted file mode 100644 index 70c8bfd6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/SA.pl +++ /dev/null @@ -1,98 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V84 -3585 -3643 -3648 -3663 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3804 -3808 -4096 -4160 -4176 -4240 -4250 -4256 -6016 -6100 -6103 -6104 -6108 -6110 -6480 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6618 -6619 -6622 -6624 -6688 -6751 -6752 -6781 -6816 -6830 -43488 -43504 -43514 -43519 -43616 -43715 -43739 -43744 -71424 -71450 -71453 -71468 -71482 -71484 -71487 -71488 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/XX.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/XX.pl deleted file mode 100644 index 01e8e24e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lb/XX.pl +++ /dev/null @@ -1,1221 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1207 -888 -890 -896 -900 -907 -908 -909 -910 -930 -931 -1328 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1421 -1424 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1565 -1566 -1806 -1807 -1867 -1869 -1970 -1984 -2043 -2048 -2094 -2096 -2111 -2112 -2140 -2142 -2143 -2208 -2229 -2275 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2802 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3192 -3200 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3912 -3913 -3949 -3953 -3992 -3993 -4029 -4030 -4045 -4046 -4059 -4096 -4294 -4295 -4296 -4301 -4302 -4304 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4989 -4992 -5018 -5024 -5110 -5112 -5118 -5120 -5789 -5792 -5881 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6684 -6686 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -6832 -6847 -6912 -6988 -6992 -7037 -7040 -7156 -7164 -7224 -7227 -7242 -7245 -7296 -7360 -7368 -7376 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8293 -8294 -8306 -8308 -8335 -8336 -8349 -8352 -8433 -8448 -8588 -8592 -9211 -9216 -9255 -9280 -9291 -9312 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11264 -11311 -11312 -11359 -11360 -11508 -11513 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11633 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11843 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -42125 -42128 -42183 -42192 -42540 -42560 -42744 -42752 -42926 -42928 -42936 -42999 -43052 -43056 -43066 -43072 -43128 -43136 -43205 -43214 -43226 -43232 -43262 -43264 -43348 -43359 -43389 -43392 -43470 -43471 -43482 -43486 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43715 -43739 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43878 -43888 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -55296 -57344 -63744 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64450 -64467 -64832 -64848 -64912 -64914 -64968 -65008 -65022 -65024 -65050 -65056 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65534 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65933 -65936 -65948 -65952 -65953 -66000 -66046 -66176 -66205 -66208 -66257 -66272 -66300 -66304 -66340 -66352 -66379 -66384 -66427 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -66927 -66928 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67743 -67751 -67760 -67808 -67827 -67828 -67830 -67835 -67868 -67871 -67898 -67903 -67904 -67968 -68024 -68028 -68048 -68050 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -68192 -68256 -68288 -68327 -68331 -68343 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68498 -68505 -68509 -68521 -68528 -68608 -68681 -68736 -68787 -68800 -68851 -68858 -68864 -69216 -69247 -69632 -69710 -69714 -69744 -69759 -69826 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69956 -69968 -70007 -70016 -70094 -70096 -70112 -70113 -70133 -70144 -70162 -70163 -70206 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70314 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70856 -70864 -70874 -71040 -71094 -71096 -71134 -71168 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71488 -71840 -71923 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74864 -74869 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92782 -92784 -92880 -92910 -92912 -92918 -92928 -92998 -93008 -93018 -93019 -93026 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113820 -113828 -118784 -119030 -119040 -119079 -119081 -119273 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -121484 -121499 -121504 -121505 -121520 -124928 -125125 -125127 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127232 -127245 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -131072 -196606 -196608 -262142 -917505 -917506 -917536 -917632 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lower/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lower/Y.pl deleted file mode 100644 index ad4b8b04..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Lower/Y.pl +++ /dev/null @@ -1,1288 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1274 -97 -123 -170 -171 -181 -182 -186 -187 -223 -247 -248 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -378 -379 -380 -381 -382 -385 -387 -388 -389 -390 -392 -393 -396 -398 -402 -403 -405 -406 -409 -412 -414 -415 -417 -418 -419 -420 -421 -422 -424 -425 -426 -428 -429 -430 -432 -433 -436 -437 -438 -439 -441 -443 -445 -448 -454 -455 -457 -458 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -497 -499 -500 -501 -502 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -570 -572 -573 -575 -577 -578 -579 -583 -584 -585 -586 -587 -588 -589 -590 -591 -660 -661 -697 -704 -706 -736 -741 -837 -838 -881 -882 -883 -884 -887 -888 -890 -894 -912 -913 -940 -975 -976 -978 -981 -984 -985 -986 -987 -988 -989 -990 -991 -992 -993 -994 -995 -996 -997 -998 -999 -1000 -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1012 -1013 -1014 -1016 -1017 -1019 -1021 -1072 -1120 -1121 -1122 -1123 -1124 -1125 -1126 -1127 -1128 -1129 -1130 -1131 -1132 -1133 -1134 -1135 -1136 -1137 -1138 -1139 -1140 -1141 -1142 -1143 -1144 -1145 -1146 -1147 -1148 -1149 -1150 -1151 -1152 -1153 -1154 -1163 -1164 -1165 -1166 -1167 -1168 -1169 -1170 -1171 -1172 -1173 -1174 -1175 -1176 -1177 -1178 -1179 -1180 -1181 -1182 -1183 -1184 -1185 -1186 -1187 -1188 -1189 -1190 -1191 -1192 -1193 -1194 -1195 -1196 -1197 -1198 -1199 -1200 -1201 -1202 -1203 -1204 -1205 -1206 -1207 -1208 -1209 -1210 -1211 -1212 -1213 -1214 -1215 -1216 -1218 -1219 -1220 -1221 -1222 -1223 -1224 -1225 -1226 -1227 -1228 -1229 -1230 -1232 -1233 -1234 -1235 -1236 -1237 -1238 -1239 -1240 -1241 -1242 -1243 -1244 -1245 -1246 -1247 -1248 -1249 -1250 -1251 -1252 -1253 -1254 -1255 -1256 -1257 -1258 -1259 -1260 -1261 -1262 -1263 -1264 -1265 -1266 -1267 -1268 -1269 -1270 -1271 -1272 -1273 -1274 -1275 -1276 -1277 -1278 -1279 -1280 -1281 -1282 -1283 -1284 -1285 -1286 -1287 -1288 -1289 -1290 -1291 -1292 -1293 -1294 -1295 -1296 -1297 -1298 -1299 -1300 -1301 -1302 -1303 -1304 -1305 -1306 -1307 -1308 -1309 -1310 -1311 -1312 -1313 -1314 -1315 -1316 -1317 -1318 -1319 -1320 -1321 -1322 -1323 -1324 -1325 -1326 -1327 -1328 -1377 -1416 -5112 -5118 -7424 -7616 -7681 -7682 -7683 -7684 -7685 -7686 -7687 -7688 -7689 -7690 -7691 -7692 -7693 -7694 -7695 -7696 -7697 -7698 -7699 -7700 -7701 -7702 -7703 -7704 -7705 -7706 -7707 -7708 -7709 -7710 -7711 -7712 -7713 -7714 -7715 -7716 -7717 -7718 -7719 -7720 -7721 -7722 -7723 -7724 -7725 -7726 -7727 -7728 -7729 -7730 -7731 -7732 -7733 -7734 -7735 -7736 -7737 -7738 -7739 -7740 -7741 -7742 -7743 -7744 -7745 -7746 -7747 -7748 -7749 -7750 -7751 -7752 -7753 -7754 -7755 -7756 -7757 -7758 -7759 -7760 -7761 -7762 -7763 -7764 -7765 -7766 -7767 -7768 -7769 -7770 -7771 -7772 -7773 -7774 -7775 -7776 -7777 -7778 -7779 -7780 -7781 -7782 -7783 -7784 -7785 -7786 -7787 -7788 -7789 -7790 -7791 -7792 -7793 -7794 -7795 -7796 -7797 -7798 -7799 -7800 -7801 -7802 -7803 -7804 -7805 -7806 -7807 -7808 -7809 -7810 -7811 -7812 -7813 -7814 -7815 -7816 -7817 -7818 -7819 -7820 -7821 -7822 -7823 -7824 -7825 -7826 -7827 -7828 -7829 -7838 -7839 -7840 -7841 -7842 -7843 -7844 -7845 -7846 -7847 -7848 -7849 -7850 -7851 -7852 -7853 -7854 -7855 -7856 -7857 -7858 -7859 -7860 -7861 -7862 -7863 -7864 -7865 -7866 -7867 -7868 -7869 -7870 -7871 -7872 -7873 -7874 -7875 -7876 -7877 -7878 -7879 -7880 -7881 -7882 -7883 -7884 -7885 -7886 -7887 -7888 -7889 -7890 -7891 -7892 -7893 -7894 -7895 -7896 -7897 -7898 -7899 -7900 -7901 -7902 -7903 -7904 -7905 -7906 -7907 -7908 -7909 -7910 -7911 -7912 -7913 -7914 -7915 -7916 -7917 -7918 -7919 -7920 -7921 -7922 -7923 -7924 -7925 -7926 -7927 -7928 -7929 -7930 -7931 -7932 -7933 -7934 -7935 -7944 -7952 -7958 -7968 -7976 -7984 -7992 -8000 -8006 -8016 -8024 -8032 -8040 -8048 -8062 -8064 -8072 -8080 -8088 -8096 -8104 -8112 -8117 -8118 -8120 -8126 -8127 -8130 -8133 -8134 -8136 -8144 -8148 -8150 -8152 -8160 -8168 -8178 -8181 -8182 -8184 -8305 -8306 -8319 -8320 -8336 -8349 -8458 -8459 -8462 -8464 -8467 -8468 -8495 -8496 -8500 -8501 -8505 -8506 -8508 -8510 -8518 -8522 -8526 -8527 -8560 -8576 -8580 -8581 -9424 -9450 -11312 -11359 -11361 -11362 -11365 -11367 -11368 -11369 -11370 -11371 -11372 -11373 -11377 -11378 -11379 -11381 -11382 -11390 -11393 -11394 -11395 -11396 -11397 -11398 -11399 -11400 -11401 -11402 -11403 -11404 -11405 -11406 -11407 -11408 -11409 -11410 -11411 -11412 -11413 -11414 -11415 -11416 -11417 -11418 -11419 -11420 -11421 -11422 -11423 -11424 -11425 -11426 -11427 -11428 -11429 -11430 -11431 -11432 -11433 -11434 -11435 -11436 -11437 -11438 -11439 -11440 -11441 -11442 -11443 -11444 -11445 -11446 -11447 -11448 -11449 -11450 -11451 -11452 -11453 -11454 -11455 -11456 -11457 -11458 -11459 -11460 -11461 -11462 -11463 -11464 -11465 -11466 -11467 -11468 -11469 -11470 -11471 -11472 -11473 -11474 -11475 -11476 -11477 -11478 -11479 -11480 -11481 -11482 -11483 -11484 -11485 -11486 -11487 -11488 -11489 -11490 -11491 -11493 -11500 -11501 -11502 -11503 -11507 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -42561 -42562 -42563 -42564 -42565 -42566 -42567 -42568 -42569 -42570 -42571 -42572 -42573 -42574 -42575 -42576 -42577 -42578 -42579 -42580 -42581 -42582 -42583 -42584 -42585 -42586 -42587 -42588 -42589 -42590 -42591 -42592 -42593 -42594 -42595 -42596 -42597 -42598 -42599 -42600 -42601 -42602 -42603 -42604 -42605 -42606 -42625 -42626 -42627 -42628 -42629 -42630 -42631 -42632 -42633 -42634 -42635 -42636 -42637 -42638 -42639 -42640 -42641 -42642 -42643 -42644 -42645 -42646 -42647 -42648 -42649 -42650 -42651 -42654 -42787 -42788 -42789 -42790 -42791 -42792 -42793 -42794 -42795 -42796 -42797 -42798 -42799 -42802 -42803 -42804 -42805 -42806 -42807 -42808 -42809 -42810 -42811 -42812 -42813 -42814 -42815 -42816 -42817 -42818 -42819 -42820 -42821 -42822 -42823 -42824 -42825 -42826 -42827 -42828 -42829 -42830 -42831 -42832 -42833 -42834 -42835 -42836 -42837 -42838 -42839 -42840 -42841 -42842 -42843 -42844 -42845 -42846 -42847 -42848 -42849 -42850 -42851 -42852 -42853 -42854 -42855 -42856 -42857 -42858 -42859 -42860 -42861 -42862 -42863 -42873 -42874 -42875 -42876 -42877 -42879 -42880 -42881 -42882 -42883 -42884 -42885 -42886 -42887 -42888 -42892 -42893 -42894 -42895 -42897 -42898 -42899 -42902 -42903 -42904 -42905 -42906 -42907 -42908 -42909 -42910 -42911 -42912 -42913 -42914 -42915 -42916 -42917 -42918 -42919 -42920 -42921 -42922 -42933 -42934 -42935 -42936 -43000 -43003 -43824 -43867 -43868 -43878 -43888 -43968 -64256 -64263 -64275 -64280 -65345 -65371 -66600 -66640 -68800 -68851 -71872 -71904 -119834 -119860 -119886 -119893 -119894 -119912 -119938 -119964 -119990 -119994 -119995 -119996 -119997 -120004 -120005 -120016 -120042 -120068 -120094 -120120 -120146 -120172 -120198 -120224 -120250 -120276 -120302 -120328 -120354 -120380 -120406 -120432 -120458 -120486 -120514 -120539 -120540 -120546 -120572 -120597 -120598 -120604 -120630 -120655 -120656 -120662 -120688 -120713 -120714 -120720 -120746 -120771 -120772 -120778 -120779 -120780 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Math/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Math/Y.pl deleted file mode 100644 index 953a231d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Math/Y.pl +++ /dev/null @@ -1,290 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V276 -43 -44 -60 -63 -94 -95 -124 -125 -126 -127 -172 -173 -177 -178 -215 -216 -247 -248 -976 -979 -981 -982 -1008 -1010 -1012 -1015 -1542 -1545 -8214 -8215 -8242 -8245 -8256 -8257 -8260 -8261 -8274 -8275 -8289 -8293 -8314 -8319 -8330 -8335 -8400 -8413 -8417 -8418 -8421 -8423 -8427 -8432 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8472 -8478 -8484 -8485 -8488 -8490 -8492 -8494 -8495 -8498 -8499 -8505 -8508 -8522 -8523 -8524 -8592 -8616 -8617 -8623 -8624 -8626 -8630 -8632 -8636 -8668 -8669 -8670 -8676 -8678 -8692 -8960 -8968 -8972 -8992 -8994 -9084 -9085 -9115 -9142 -9143 -9144 -9168 -9169 -9180 -9187 -9632 -9634 -9646 -9656 -9660 -9666 -9670 -9672 -9674 -9676 -9679 -9684 -9698 -9699 -9700 -9701 -9703 -9709 -9720 -9728 -9733 -9735 -9792 -9793 -9794 -9795 -9824 -9828 -9837 -9840 -10176 -10240 -10496 -11008 -11056 -11077 -11079 -11085 -64297 -64298 -65121 -65127 -65128 -65129 -65291 -65292 -65308 -65311 -65340 -65341 -65342 -65343 -65372 -65373 -65374 -65375 -65506 -65507 -65513 -65517 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFCQC/M.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFCQC/M.pl deleted file mode 100644 index 671f9075..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFCQC/M.pl +++ /dev/null @@ -1,96 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V82 -768 -773 -774 -781 -783 -784 -785 -786 -787 -789 -795 -796 -803 -809 -813 -815 -816 -818 -824 -825 -834 -835 -837 -838 -1619 -1622 -2364 -2365 -2494 -2495 -2519 -2520 -2878 -2879 -2902 -2904 -3006 -3007 -3031 -3032 -3158 -3159 -3266 -3267 -3285 -3287 -3390 -3391 -3415 -3416 -3530 -3531 -3535 -3536 -3551 -3552 -4142 -4143 -4449 -4470 -4520 -4547 -6965 -6966 -12441 -12443 -69818 -69819 -69927 -69928 -70462 -70463 -70487 -70488 -70832 -70833 -70842 -70843 -70845 -70846 -71087 -71088 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFCQC/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFCQC/Y.pl deleted file mode 100644 index aabaefc9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFCQC/Y.pl +++ /dev/null @@ -1,237 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V223 -0 -768 -773 -774 -781 -783 -784 -785 -786 -787 -789 -795 -796 -803 -809 -813 -815 -816 -818 -824 -825 -832 -838 -884 -885 -894 -895 -903 -904 -1619 -1622 -2364 -2365 -2392 -2400 -2494 -2495 -2519 -2520 -2524 -2526 -2527 -2528 -2611 -2612 -2614 -2615 -2649 -2652 -2654 -2655 -2878 -2879 -2902 -2904 -2908 -2910 -3006 -3007 -3031 -3032 -3158 -3159 -3266 -3267 -3285 -3287 -3390 -3391 -3415 -3416 -3530 -3531 -3535 -3536 -3551 -3552 -3907 -3908 -3917 -3918 -3922 -3923 -3927 -3928 -3932 -3933 -3945 -3946 -3955 -3956 -3957 -3959 -3960 -3961 -3969 -3970 -3987 -3988 -3997 -3998 -4002 -4003 -4007 -4008 -4012 -4013 -4025 -4026 -4142 -4143 -4449 -4470 -4520 -4547 -6965 -6966 -8049 -8050 -8051 -8052 -8053 -8054 -8055 -8056 -8057 -8058 -8059 -8060 -8061 -8062 -8123 -8124 -8126 -8127 -8137 -8138 -8139 -8140 -8147 -8148 -8155 -8156 -8163 -8164 -8171 -8172 -8174 -8176 -8185 -8186 -8187 -8188 -8189 -8190 -8192 -8194 -8486 -8487 -8490 -8492 -9001 -9003 -10972 -10973 -12441 -12443 -63744 -64014 -64016 -64017 -64018 -64019 -64021 -64031 -64032 -64033 -64034 -64035 -64037 -64039 -64042 -64110 -64112 -64218 -64285 -64286 -64287 -64288 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64335 -69818 -69819 -69927 -69928 -70462 -70463 -70487 -70488 -70832 -70833 -70842 -70843 -70845 -70846 -71087 -71088 -119134 -119141 -119227 -119233 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFDQC/N.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFDQC/N.pl deleted file mode 100644 index e9eb4324..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFDQC/N.pl +++ /dev/null @@ -1,476 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V462 -192 -198 -199 -208 -209 -215 -217 -222 -224 -230 -231 -240 -241 -247 -249 -254 -255 -272 -274 -294 -296 -305 -308 -312 -313 -319 -323 -329 -332 -338 -340 -358 -360 -383 -416 -418 -431 -433 -461 -477 -478 -484 -486 -497 -500 -502 -504 -540 -542 -544 -550 -564 -832 -834 -835 -837 -884 -885 -894 -895 -901 -907 -908 -909 -910 -913 -938 -945 -970 -975 -979 -981 -1024 -1026 -1027 -1028 -1031 -1032 -1036 -1039 -1049 -1050 -1081 -1082 -1104 -1106 -1107 -1108 -1111 -1112 -1116 -1119 -1142 -1144 -1217 -1219 -1232 -1236 -1238 -1240 -1242 -1248 -1250 -1256 -1258 -1270 -1272 -1274 -1570 -1575 -1728 -1729 -1730 -1731 -1747 -1748 -2345 -2346 -2353 -2354 -2356 -2357 -2392 -2400 -2507 -2509 -2524 -2526 -2527 -2528 -2611 -2612 -2614 -2615 -2649 -2652 -2654 -2655 -2888 -2889 -2891 -2893 -2908 -2910 -2964 -2965 -3018 -3021 -3144 -3145 -3264 -3265 -3271 -3273 -3274 -3276 -3402 -3405 -3546 -3547 -3548 -3551 -3907 -3908 -3917 -3918 -3922 -3923 -3927 -3928 -3932 -3933 -3945 -3946 -3955 -3956 -3957 -3959 -3960 -3961 -3969 -3970 -3987 -3988 -3997 -3998 -4002 -4003 -4007 -4008 -4012 -4013 -4025 -4026 -4134 -4135 -6918 -6919 -6920 -6921 -6922 -6923 -6924 -6925 -6926 -6927 -6930 -6931 -6971 -6972 -6973 -6974 -6976 -6978 -6979 -6980 -7680 -7834 -7835 -7836 -7840 -7930 -7936 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8129 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8190 -8192 -8194 -8486 -8487 -8490 -8492 -8602 -8604 -8622 -8623 -8653 -8656 -8708 -8709 -8713 -8714 -8716 -8717 -8740 -8741 -8742 -8743 -8769 -8770 -8772 -8773 -8775 -8776 -8777 -8778 -8800 -8801 -8802 -8803 -8813 -8818 -8820 -8822 -8824 -8826 -8832 -8834 -8836 -8838 -8840 -8842 -8876 -8880 -8928 -8932 -8938 -8942 -9001 -9003 -10972 -10973 -12364 -12365 -12366 -12367 -12368 -12369 -12370 -12371 -12372 -12373 -12374 -12375 -12376 -12377 -12378 -12379 -12380 -12381 -12382 -12383 -12384 -12385 -12386 -12387 -12389 -12390 -12391 -12392 -12393 -12394 -12400 -12402 -12403 -12405 -12406 -12408 -12409 -12411 -12412 -12414 -12436 -12437 -12446 -12447 -12460 -12461 -12462 -12463 -12464 -12465 -12466 -12467 -12468 -12469 -12470 -12471 -12472 -12473 -12474 -12475 -12476 -12477 -12478 -12479 -12480 -12481 -12482 -12483 -12485 -12486 -12487 -12488 -12489 -12490 -12496 -12498 -12499 -12501 -12502 -12504 -12505 -12507 -12508 -12510 -12532 -12533 -12535 -12539 -12542 -12543 -44032 -55204 -63744 -64014 -64016 -64017 -64018 -64019 -64021 -64031 -64032 -64033 -64034 -64035 -64037 -64039 -64042 -64110 -64112 -64218 -64285 -64286 -64287 -64288 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64335 -69786 -69787 -69788 -69789 -69803 -69804 -69934 -69936 -70475 -70477 -70843 -70845 -70846 -70847 -71098 -71100 -119134 -119141 -119227 -119233 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFDQC/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFDQC/Y.pl deleted file mode 100644 index 2c1edc8e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFDQC/Y.pl +++ /dev/null @@ -1,477 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V463 -0 -192 -198 -199 -208 -209 -215 -217 -222 -224 -230 -231 -240 -241 -247 -249 -254 -255 -272 -274 -294 -296 -305 -308 -312 -313 -319 -323 -329 -332 -338 -340 -358 -360 -383 -416 -418 -431 -433 -461 -477 -478 -484 -486 -497 -500 -502 -504 -540 -542 -544 -550 -564 -832 -834 -835 -837 -884 -885 -894 -895 -901 -907 -908 -909 -910 -913 -938 -945 -970 -975 -979 -981 -1024 -1026 -1027 -1028 -1031 -1032 -1036 -1039 -1049 -1050 -1081 -1082 -1104 -1106 -1107 -1108 -1111 -1112 -1116 -1119 -1142 -1144 -1217 -1219 -1232 -1236 -1238 -1240 -1242 -1248 -1250 -1256 -1258 -1270 -1272 -1274 -1570 -1575 -1728 -1729 -1730 -1731 -1747 -1748 -2345 -2346 -2353 -2354 -2356 -2357 -2392 -2400 -2507 -2509 -2524 -2526 -2527 -2528 -2611 -2612 -2614 -2615 -2649 -2652 -2654 -2655 -2888 -2889 -2891 -2893 -2908 -2910 -2964 -2965 -3018 -3021 -3144 -3145 -3264 -3265 -3271 -3273 -3274 -3276 -3402 -3405 -3546 -3547 -3548 -3551 -3907 -3908 -3917 -3918 -3922 -3923 -3927 -3928 -3932 -3933 -3945 -3946 -3955 -3956 -3957 -3959 -3960 -3961 -3969 -3970 -3987 -3988 -3997 -3998 -4002 -4003 -4007 -4008 -4012 -4013 -4025 -4026 -4134 -4135 -6918 -6919 -6920 -6921 -6922 -6923 -6924 -6925 -6926 -6927 -6930 -6931 -6971 -6972 -6973 -6974 -6976 -6978 -6979 -6980 -7680 -7834 -7835 -7836 -7840 -7930 -7936 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8129 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8190 -8192 -8194 -8486 -8487 -8490 -8492 -8602 -8604 -8622 -8623 -8653 -8656 -8708 -8709 -8713 -8714 -8716 -8717 -8740 -8741 -8742 -8743 -8769 -8770 -8772 -8773 -8775 -8776 -8777 -8778 -8800 -8801 -8802 -8803 -8813 -8818 -8820 -8822 -8824 -8826 -8832 -8834 -8836 -8838 -8840 -8842 -8876 -8880 -8928 -8932 -8938 -8942 -9001 -9003 -10972 -10973 -12364 -12365 -12366 -12367 -12368 -12369 -12370 -12371 -12372 -12373 -12374 -12375 -12376 -12377 -12378 -12379 -12380 -12381 -12382 -12383 -12384 -12385 -12386 -12387 -12389 -12390 -12391 -12392 -12393 -12394 -12400 -12402 -12403 -12405 -12406 -12408 -12409 -12411 -12412 -12414 -12436 -12437 -12446 -12447 -12460 -12461 -12462 -12463 -12464 -12465 -12466 -12467 -12468 -12469 -12470 -12471 -12472 -12473 -12474 -12475 -12476 -12477 -12478 -12479 -12480 -12481 -12482 -12483 -12485 -12486 -12487 -12488 -12489 -12490 -12496 -12498 -12499 -12501 -12502 -12504 -12505 -12507 -12508 -12510 -12532 -12533 -12535 -12539 -12542 -12543 -44032 -55204 -63744 -64014 -64016 -64017 -64018 -64019 -64021 -64031 -64032 -64033 -64034 -64035 -64037 -64039 -64042 -64110 -64112 -64218 -64285 -64286 -64287 -64288 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64335 -69786 -69787 -69788 -69789 -69803 -69804 -69934 -69936 -70475 -70477 -70843 -70845 -70846 -70847 -71098 -71100 -119134 -119141 -119227 -119233 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFKCQC/N.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFKCQC/N.pl deleted file mode 100644 index f6ddbdcc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFKCQC/N.pl +++ /dev/null @@ -1,512 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V498 -160 -161 -168 -169 -170 -171 -175 -176 -178 -182 -184 -187 -188 -191 -306 -308 -319 -321 -329 -330 -383 -384 -452 -461 -497 -500 -688 -697 -728 -734 -736 -741 -832 -834 -835 -837 -884 -885 -890 -891 -894 -895 -900 -902 -903 -904 -976 -983 -1008 -1011 -1012 -1014 -1017 -1018 -1415 -1416 -1653 -1657 -2392 -2400 -2524 -2526 -2527 -2528 -2611 -2612 -2614 -2615 -2649 -2652 -2654 -2655 -2908 -2910 -3635 -3636 -3763 -3764 -3804 -3806 -3852 -3853 -3907 -3908 -3917 -3918 -3922 -3923 -3927 -3928 -3932 -3933 -3945 -3946 -3955 -3956 -3957 -3962 -3969 -3970 -3987 -3988 -3997 -3998 -4002 -4003 -4007 -4008 -4012 -4013 -4025 -4026 -4348 -4349 -7468 -7471 -7472 -7483 -7484 -7502 -7503 -7531 -7544 -7545 -7579 -7616 -7834 -7836 -8049 -8050 -8051 -8052 -8053 -8054 -8055 -8056 -8057 -8058 -8059 -8060 -8061 -8062 -8123 -8124 -8125 -8130 -8137 -8138 -8139 -8140 -8141 -8144 -8147 -8148 -8155 -8156 -8157 -8160 -8163 -8164 -8171 -8172 -8173 -8176 -8185 -8186 -8187 -8188 -8189 -8191 -8192 -8203 -8209 -8210 -8215 -8216 -8228 -8231 -8239 -8240 -8243 -8245 -8246 -8248 -8252 -8253 -8254 -8255 -8263 -8266 -8279 -8280 -8287 -8288 -8304 -8306 -8308 -8335 -8336 -8349 -8360 -8361 -8448 -8452 -8453 -8456 -8457 -8468 -8469 -8471 -8473 -8478 -8480 -8483 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8498 -8499 -8506 -8507 -8513 -8517 -8522 -8528 -8576 -8585 -8586 -8748 -8750 -8751 -8753 -9001 -9003 -9312 -9451 -10764 -10765 -10868 -10871 -10972 -10973 -11388 -11390 -11631 -11632 -11935 -11936 -12019 -12020 -12032 -12246 -12288 -12289 -12342 -12343 -12344 -12347 -12443 -12445 -12447 -12448 -12543 -12544 -12593 -12687 -12690 -12704 -12800 -12831 -12832 -12872 -12880 -12927 -12928 -13055 -13056 -13312 -42652 -42654 -42864 -42865 -43000 -43002 -43868 -43872 -63744 -64014 -64016 -64017 -64018 -64019 -64021 -64031 -64032 -64033 -64034 -64035 -64037 -64039 -64042 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64286 -64287 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65021 -65040 -65050 -65072 -65093 -65095 -65107 -65108 -65127 -65128 -65132 -65136 -65139 -65140 -65141 -65142 -65277 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -119134 -119141 -119227 -119233 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -127232 -127243 -127248 -127279 -127280 -127312 -127338 -127340 -127376 -127377 -127488 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFKCQC/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFKCQC/Y.pl deleted file mode 100644 index ca7dc148..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFKCQC/Y.pl +++ /dev/null @@ -1,587 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V573 -0 -160 -161 -168 -169 -170 -171 -175 -176 -178 -182 -184 -187 -188 -191 -306 -308 -319 -321 -329 -330 -383 -384 -452 -461 -497 -500 -688 -697 -728 -734 -736 -741 -768 -773 -774 -781 -783 -784 -785 -786 -787 -789 -795 -796 -803 -809 -813 -815 -816 -818 -824 -825 -832 -838 -884 -885 -890 -891 -894 -895 -900 -902 -903 -904 -976 -983 -1008 -1011 -1012 -1014 -1017 -1018 -1415 -1416 -1619 -1622 -1653 -1657 -2364 -2365 -2392 -2400 -2494 -2495 -2519 -2520 -2524 -2526 -2527 -2528 -2611 -2612 -2614 -2615 -2649 -2652 -2654 -2655 -2878 -2879 -2902 -2904 -2908 -2910 -3006 -3007 -3031 -3032 -3158 -3159 -3266 -3267 -3285 -3287 -3390 -3391 -3415 -3416 -3530 -3531 -3535 -3536 -3551 -3552 -3635 -3636 -3763 -3764 -3804 -3806 -3852 -3853 -3907 -3908 -3917 -3918 -3922 -3923 -3927 -3928 -3932 -3933 -3945 -3946 -3955 -3956 -3957 -3962 -3969 -3970 -3987 -3988 -3997 -3998 -4002 -4003 -4007 -4008 -4012 -4013 -4025 -4026 -4142 -4143 -4348 -4349 -4449 -4470 -4520 -4547 -6965 -6966 -7468 -7471 -7472 -7483 -7484 -7502 -7503 -7531 -7544 -7545 -7579 -7616 -7834 -7836 -8049 -8050 -8051 -8052 -8053 -8054 -8055 -8056 -8057 -8058 -8059 -8060 -8061 -8062 -8123 -8124 -8125 -8130 -8137 -8138 -8139 -8140 -8141 -8144 -8147 -8148 -8155 -8156 -8157 -8160 -8163 -8164 -8171 -8172 -8173 -8176 -8185 -8186 -8187 -8188 -8189 -8191 -8192 -8203 -8209 -8210 -8215 -8216 -8228 -8231 -8239 -8240 -8243 -8245 -8246 -8248 -8252 -8253 -8254 -8255 -8263 -8266 -8279 -8280 -8287 -8288 -8304 -8306 -8308 -8335 -8336 -8349 -8360 -8361 -8448 -8452 -8453 -8456 -8457 -8468 -8469 -8471 -8473 -8478 -8480 -8483 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8498 -8499 -8506 -8507 -8513 -8517 -8522 -8528 -8576 -8585 -8586 -8748 -8750 -8751 -8753 -9001 -9003 -9312 -9451 -10764 -10765 -10868 -10871 -10972 -10973 -11388 -11390 -11631 -11632 -11935 -11936 -12019 -12020 -12032 -12246 -12288 -12289 -12342 -12343 -12344 -12347 -12441 -12445 -12447 -12448 -12543 -12544 -12593 -12687 -12690 -12704 -12800 -12831 -12832 -12872 -12880 -12927 -12928 -13055 -13056 -13312 -42652 -42654 -42864 -42865 -43000 -43002 -43868 -43872 -63744 -64014 -64016 -64017 -64018 -64019 -64021 -64031 -64032 -64033 -64034 -64035 -64037 -64039 -64042 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64286 -64287 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65021 -65040 -65050 -65072 -65093 -65095 -65107 -65108 -65127 -65128 -65132 -65136 -65139 -65140 -65141 -65142 -65277 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -69818 -69819 -69927 -69928 -70462 -70463 -70487 -70488 -70832 -70833 -70842 -70843 -70845 -70846 -71087 -71088 -119134 -119141 -119227 -119233 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -127232 -127243 -127248 -127279 -127280 -127312 -127338 -127340 -127376 -127377 -127488 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFKDQC/N.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFKDQC/N.pl deleted file mode 100644 index 5080d12d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFKDQC/N.pl +++ /dev/null @@ -1,794 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V780 -160 -161 -168 -169 -170 -171 -175 -176 -178 -182 -184 -187 -188 -191 -192 -198 -199 -208 -209 -215 -217 -222 -224 -230 -231 -240 -241 -247 -249 -254 -255 -272 -274 -294 -296 -305 -306 -312 -313 -321 -323 -330 -332 -338 -340 -358 -360 -384 -416 -418 -431 -433 -452 -477 -478 -484 -486 -502 -504 -540 -542 -544 -550 -564 -688 -697 -728 -734 -736 -741 -832 -834 -835 -837 -884 -885 -890 -891 -894 -895 -900 -907 -908 -909 -910 -913 -938 -945 -970 -975 -976 -983 -1008 -1011 -1012 -1014 -1017 -1018 -1024 -1026 -1027 -1028 -1031 -1032 -1036 -1039 -1049 -1050 -1081 -1082 -1104 -1106 -1107 -1108 -1111 -1112 -1116 -1119 -1142 -1144 -1217 -1219 -1232 -1236 -1238 -1240 -1242 -1248 -1250 -1256 -1258 -1270 -1272 -1274 -1415 -1416 -1570 -1575 -1653 -1657 -1728 -1729 -1730 -1731 -1747 -1748 -2345 -2346 -2353 -2354 -2356 -2357 -2392 -2400 -2507 -2509 -2524 -2526 -2527 -2528 -2611 -2612 -2614 -2615 -2649 -2652 -2654 -2655 -2888 -2889 -2891 -2893 -2908 -2910 -2964 -2965 -3018 -3021 -3144 -3145 -3264 -3265 -3271 -3273 -3274 -3276 -3402 -3405 -3546 -3547 -3548 -3551 -3635 -3636 -3763 -3764 -3804 -3806 -3852 -3853 -3907 -3908 -3917 -3918 -3922 -3923 -3927 -3928 -3932 -3933 -3945 -3946 -3955 -3956 -3957 -3962 -3969 -3970 -3987 -3988 -3997 -3998 -4002 -4003 -4007 -4008 -4012 -4013 -4025 -4026 -4134 -4135 -4348 -4349 -6918 -6919 -6920 -6921 -6922 -6923 -6924 -6925 -6926 -6927 -6930 -6931 -6971 -6972 -6973 -6974 -6976 -6978 -6979 -6980 -7468 -7471 -7472 -7483 -7484 -7502 -7503 -7531 -7544 -7545 -7579 -7616 -7680 -7836 -7840 -7930 -7936 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8203 -8209 -8210 -8215 -8216 -8228 -8231 -8239 -8240 -8243 -8245 -8246 -8248 -8252 -8253 -8254 -8255 -8263 -8266 -8279 -8280 -8287 -8288 -8304 -8306 -8308 -8335 -8336 -8349 -8360 -8361 -8448 -8452 -8453 -8456 -8457 -8468 -8469 -8471 -8473 -8478 -8480 -8483 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8498 -8499 -8506 -8507 -8513 -8517 -8522 -8528 -8576 -8585 -8586 -8602 -8604 -8622 -8623 -8653 -8656 -8708 -8709 -8713 -8714 -8716 -8717 -8740 -8741 -8742 -8743 -8748 -8750 -8751 -8753 -8769 -8770 -8772 -8773 -8775 -8776 -8777 -8778 -8800 -8801 -8802 -8803 -8813 -8818 -8820 -8822 -8824 -8826 -8832 -8834 -8836 -8838 -8840 -8842 -8876 -8880 -8928 -8932 -8938 -8942 -9001 -9003 -9312 -9451 -10764 -10765 -10868 -10871 -10972 -10973 -11388 -11390 -11631 -11632 -11935 -11936 -12019 -12020 -12032 -12246 -12288 -12289 -12342 -12343 -12344 -12347 -12364 -12365 -12366 -12367 -12368 -12369 -12370 -12371 -12372 -12373 -12374 -12375 -12376 -12377 -12378 -12379 -12380 -12381 -12382 -12383 -12384 -12385 -12386 -12387 -12389 -12390 -12391 -12392 -12393 -12394 -12400 -12402 -12403 -12405 -12406 -12408 -12409 -12411 -12412 -12414 -12436 -12437 -12443 -12445 -12446 -12448 -12460 -12461 -12462 -12463 -12464 -12465 -12466 -12467 -12468 -12469 -12470 -12471 -12472 -12473 -12474 -12475 -12476 -12477 -12478 -12479 -12480 -12481 -12482 -12483 -12485 -12486 -12487 -12488 -12489 -12490 -12496 -12498 -12499 -12501 -12502 -12504 -12505 -12507 -12508 -12510 -12532 -12533 -12535 -12539 -12542 -12544 -12593 -12687 -12690 -12704 -12800 -12831 -12832 -12872 -12880 -12927 -12928 -13055 -13056 -13312 -42652 -42654 -42864 -42865 -43000 -43002 -43868 -43872 -44032 -55204 -63744 -64014 -64016 -64017 -64018 -64019 -64021 -64031 -64032 -64033 -64034 -64035 -64037 -64039 -64042 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64286 -64287 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65021 -65040 -65050 -65072 -65093 -65095 -65107 -65108 -65127 -65128 -65132 -65136 -65139 -65140 -65141 -65142 -65277 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -69786 -69787 -69788 -69789 -69803 -69804 -69934 -69936 -70475 -70477 -70843 -70845 -70846 -70847 -71098 -71100 -119134 -119141 -119227 -119233 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -127232 -127243 -127248 -127279 -127280 -127312 -127338 -127340 -127376 -127377 -127488 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFKDQC/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFKDQC/Y.pl deleted file mode 100644 index eb0c29ee..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/NFKDQC/Y.pl +++ /dev/null @@ -1,795 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V781 -0 -160 -161 -168 -169 -170 -171 -175 -176 -178 -182 -184 -187 -188 -191 -192 -198 -199 -208 -209 -215 -217 -222 -224 -230 -231 -240 -241 -247 -249 -254 -255 -272 -274 -294 -296 -305 -306 -312 -313 -321 -323 -330 -332 -338 -340 -358 -360 -384 -416 -418 -431 -433 -452 -477 -478 -484 -486 -502 -504 -540 -542 -544 -550 -564 -688 -697 -728 -734 -736 -741 -832 -834 -835 -837 -884 -885 -890 -891 -894 -895 -900 -907 -908 -909 -910 -913 -938 -945 -970 -975 -976 -983 -1008 -1011 -1012 -1014 -1017 -1018 -1024 -1026 -1027 -1028 -1031 -1032 -1036 -1039 -1049 -1050 -1081 -1082 -1104 -1106 -1107 -1108 -1111 -1112 -1116 -1119 -1142 -1144 -1217 -1219 -1232 -1236 -1238 -1240 -1242 -1248 -1250 -1256 -1258 -1270 -1272 -1274 -1415 -1416 -1570 -1575 -1653 -1657 -1728 -1729 -1730 -1731 -1747 -1748 -2345 -2346 -2353 -2354 -2356 -2357 -2392 -2400 -2507 -2509 -2524 -2526 -2527 -2528 -2611 -2612 -2614 -2615 -2649 -2652 -2654 -2655 -2888 -2889 -2891 -2893 -2908 -2910 -2964 -2965 -3018 -3021 -3144 -3145 -3264 -3265 -3271 -3273 -3274 -3276 -3402 -3405 -3546 -3547 -3548 -3551 -3635 -3636 -3763 -3764 -3804 -3806 -3852 -3853 -3907 -3908 -3917 -3918 -3922 -3923 -3927 -3928 -3932 -3933 -3945 -3946 -3955 -3956 -3957 -3962 -3969 -3970 -3987 -3988 -3997 -3998 -4002 -4003 -4007 -4008 -4012 -4013 -4025 -4026 -4134 -4135 -4348 -4349 -6918 -6919 -6920 -6921 -6922 -6923 -6924 -6925 -6926 -6927 -6930 -6931 -6971 -6972 -6973 -6974 -6976 -6978 -6979 -6980 -7468 -7471 -7472 -7483 -7484 -7502 -7503 -7531 -7544 -7545 -7579 -7616 -7680 -7836 -7840 -7930 -7936 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8203 -8209 -8210 -8215 -8216 -8228 -8231 -8239 -8240 -8243 -8245 -8246 -8248 -8252 -8253 -8254 -8255 -8263 -8266 -8279 -8280 -8287 -8288 -8304 -8306 -8308 -8335 -8336 -8349 -8360 -8361 -8448 -8452 -8453 -8456 -8457 -8468 -8469 -8471 -8473 -8478 -8480 -8483 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8498 -8499 -8506 -8507 -8513 -8517 -8522 -8528 -8576 -8585 -8586 -8602 -8604 -8622 -8623 -8653 -8656 -8708 -8709 -8713 -8714 -8716 -8717 -8740 -8741 -8742 -8743 -8748 -8750 -8751 -8753 -8769 -8770 -8772 -8773 -8775 -8776 -8777 -8778 -8800 -8801 -8802 -8803 -8813 -8818 -8820 -8822 -8824 -8826 -8832 -8834 -8836 -8838 -8840 -8842 -8876 -8880 -8928 -8932 -8938 -8942 -9001 -9003 -9312 -9451 -10764 -10765 -10868 -10871 -10972 -10973 -11388 -11390 -11631 -11632 -11935 -11936 -12019 -12020 -12032 -12246 -12288 -12289 -12342 -12343 -12344 -12347 -12364 -12365 -12366 -12367 -12368 -12369 -12370 -12371 -12372 -12373 -12374 -12375 -12376 -12377 -12378 -12379 -12380 -12381 -12382 -12383 -12384 -12385 -12386 -12387 -12389 -12390 -12391 -12392 -12393 -12394 -12400 -12402 -12403 -12405 -12406 -12408 -12409 -12411 -12412 -12414 -12436 -12437 -12443 -12445 -12446 -12448 -12460 -12461 -12462 -12463 -12464 -12465 -12466 -12467 -12468 -12469 -12470 -12471 -12472 -12473 -12474 -12475 -12476 -12477 -12478 -12479 -12480 -12481 -12482 -12483 -12485 -12486 -12487 -12488 -12489 -12490 -12496 -12498 -12499 -12501 -12502 -12504 -12505 -12507 -12508 -12510 -12532 -12533 -12535 -12539 -12542 -12544 -12593 -12687 -12690 -12704 -12800 -12831 -12832 -12872 -12880 -12927 -12928 -13055 -13056 -13312 -42652 -42654 -42864 -42865 -43000 -43002 -43868 -43872 -44032 -55204 -63744 -64014 -64016 -64017 -64018 -64019 -64021 -64031 -64032 -64033 -64034 -64035 -64037 -64039 -64042 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64286 -64287 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65021 -65040 -65050 -65072 -65093 -65095 -65107 -65108 -65127 -65128 -65132 -65136 -65139 -65140 -65141 -65142 -65277 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -69786 -69787 -69788 -69789 -69803 -69804 -69934 -69936 -70475 -70477 -70843 -70845 -70846 -70847 -71098 -71100 -119134 -119141 -119227 -119233 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -127232 -127243 -127248 -127279 -127280 -127312 -127338 -127340 -127376 -127377 -127488 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nt/Di.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nt/Di.pl deleted file mode 100644 index 4cd6e136..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nt/Di.pl +++ /dev/null @@ -1,54 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V40 -178 -180 -185 -186 -4969 -4978 -6618 -6619 -8304 -8305 -8308 -8314 -8320 -8330 -9312 -9321 -9332 -9341 -9352 -9361 -9450 -9451 -9461 -9470 -9471 -9472 -10102 -10111 -10112 -10121 -10122 -10131 -68160 -68164 -69216 -69225 -69714 -69723 -127232 -127243 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nt/None.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nt/None.pl deleted file mode 100644 index e0f757d7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nt/None.pl +++ /dev/null @@ -1,381 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V367 -0 -48 -58 -178 -180 -185 -186 -188 -191 -1632 -1642 -1776 -1786 -1984 -1994 -2406 -2416 -2534 -2544 -2548 -2554 -2662 -2672 -2790 -2800 -2918 -2928 -2930 -2936 -3046 -3059 -3174 -3184 -3192 -3199 -3302 -3312 -3430 -3446 -3558 -3568 -3664 -3674 -3792 -3802 -3872 -3892 -4160 -4170 -4240 -4250 -4969 -4989 -5870 -5873 -6112 -6122 -6128 -6138 -6160 -6170 -6470 -6480 -6608 -6619 -6784 -6794 -6800 -6810 -6992 -7002 -7088 -7098 -7232 -7242 -7248 -7258 -8304 -8305 -8308 -8314 -8320 -8330 -8528 -8579 -8581 -8586 -9312 -9372 -9450 -9472 -10102 -10132 -11517 -11518 -12295 -12296 -12321 -12330 -12344 -12347 -12690 -12694 -12832 -12842 -12872 -12880 -12881 -12896 -12928 -12938 -12977 -12992 -13317 -13318 -13443 -13444 -14378 -14379 -15181 -15182 -19968 -19969 -19971 -19972 -19975 -19976 -19977 -19978 -20061 -20062 -20108 -20109 -20116 -20117 -20118 -20119 -20159 -20161 -20191 -20192 -20200 -20201 -20237 -20238 -20336 -20337 -20740 -20741 -20806 -20807 -20841 -20842 -20843 -20844 -20845 -20846 -21313 -21314 -21315 -21318 -21324 -21325 -21441 -21445 -22235 -22236 -22769 -22770 -22777 -22778 -24186 -24187 -24318 -24320 -24332 -24335 -24336 -24337 -25342 -25343 -25420 -25421 -26578 -26579 -28422 -28423 -29590 -29591 -30334 -30335 -32902 -32903 -33836 -33837 -36014 -36015 -36019 -36020 -36144 -36145 -38433 -38434 -38470 -38471 -38476 -38477 -38520 -38521 -38646 -38647 -42528 -42538 -42726 -42736 -43056 -43062 -43216 -43226 -43264 -43274 -43472 -43482 -43504 -43514 -43600 -43610 -44016 -44026 -63851 -63852 -63859 -63860 -63864 -63865 -63922 -63923 -63953 -63954 -63955 -63956 -63997 -63998 -65296 -65306 -65799 -65844 -65856 -65913 -65930 -65932 -66273 -66300 -66336 -66340 -66369 -66370 -66378 -66379 -66513 -66518 -66720 -66730 -67672 -67680 -67705 -67712 -67751 -67760 -67835 -67840 -67862 -67868 -68028 -68030 -68032 -68048 -68050 -68096 -68160 -68168 -68221 -68223 -68253 -68256 -68331 -68336 -68440 -68448 -68472 -68480 -68521 -68528 -68858 -68864 -69216 -69247 -69714 -69744 -69872 -69882 -69942 -69952 -70096 -70106 -70113 -70133 -70384 -70394 -70864 -70874 -71248 -71258 -71360 -71370 -71472 -71484 -71904 -71923 -74752 -74863 -92768 -92778 -93008 -93018 -93019 -93026 -119648 -119666 -120782 -120832 -125127 -125136 -127232 -127245 -131073 -131074 -131172 -131173 -131298 -131299 -131361 -131362 -133418 -133419 -133507 -133508 -133516 -133517 -133532 -133533 -133866 -133867 -133885 -133886 -133913 -133914 -140176 -140177 -141720 -141721 -146203 -146204 -156269 -156270 -194704 -194705 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nt/Nu.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nt/Nu.pl deleted file mode 100644 index be0ad14e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nt/Nu.pl +++ /dev/null @@ -1,290 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V276 -188 -191 -2548 -2554 -2930 -2936 -3056 -3059 -3192 -3199 -3440 -3446 -3882 -3892 -4978 -4989 -5870 -5873 -6128 -6138 -8528 -8579 -8581 -8586 -9321 -9332 -9341 -9352 -9361 -9372 -9451 -9461 -9470 -9471 -10111 -10112 -10121 -10122 -10131 -10132 -11517 -11518 -12295 -12296 -12321 -12330 -12344 -12347 -12690 -12694 -12832 -12842 -12872 -12880 -12881 -12896 -12928 -12938 -12977 -12992 -13317 -13318 -13443 -13444 -14378 -14379 -15181 -15182 -19968 -19969 -19971 -19972 -19975 -19976 -19977 -19978 -20061 -20062 -20108 -20109 -20116 -20117 -20118 -20119 -20159 -20161 -20191 -20192 -20200 -20201 -20237 -20238 -20336 -20337 -20740 -20741 -20806 -20807 -20841 -20842 -20843 -20844 -20845 -20846 -21313 -21314 -21315 -21318 -21324 -21325 -21441 -21445 -22235 -22236 -22769 -22770 -22777 -22778 -24186 -24187 -24318 -24320 -24332 -24335 -24336 -24337 -25342 -25343 -25420 -25421 -26578 -26579 -28422 -28423 -29590 -29591 -30334 -30335 -32902 -32903 -33836 -33837 -36014 -36015 -36019 -36020 -36144 -36145 -38433 -38434 -38470 -38471 -38476 -38477 -38520 -38521 -38646 -38647 -42726 -42736 -43056 -43062 -63851 -63852 -63859 -63860 -63864 -63865 -63922 -63923 -63953 -63954 -63955 -63956 -63997 -63998 -65799 -65844 -65856 -65913 -65930 -65932 -66273 -66300 -66336 -66340 -66369 -66370 -66378 -66379 -66513 -66518 -67672 -67680 -67705 -67712 -67751 -67760 -67835 -67840 -67862 -67868 -68028 -68030 -68032 -68048 -68050 -68096 -68164 -68168 -68221 -68223 -68253 -68256 -68331 -68336 -68440 -68448 -68472 -68480 -68521 -68528 -68858 -68864 -69225 -69247 -69723 -69734 -70113 -70133 -71482 -71484 -71914 -71923 -74752 -74863 -93019 -93026 -119648 -119666 -125127 -125136 -127243 -127245 -131073 -131074 -131172 -131173 -131298 -131299 -131361 -131362 -133418 -133419 -133507 -133508 -133516 -133517 -133532 -133533 -133866 -133867 -133885 -133886 -133913 -133914 -140176 -140177 -141720 -141721 -146203 -146204 -156269 -156270 -194704 -194705 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/0.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/0.pl deleted file mode 100644 index 3617059e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/0.pl +++ /dev/null @@ -1,152 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V138 -48 -49 -1632 -1633 -1776 -1777 -1984 -1985 -2406 -2407 -2534 -2535 -2662 -2663 -2790 -2791 -2918 -2919 -3046 -3047 -3174 -3175 -3192 -3193 -3302 -3303 -3430 -3431 -3558 -3559 -3664 -3665 -3792 -3793 -3872 -3873 -4160 -4161 -4240 -4241 -6112 -6113 -6128 -6129 -6160 -6161 -6470 -6471 -6608 -6609 -6784 -6785 -6800 -6801 -6992 -6993 -7088 -7089 -7232 -7233 -7248 -7249 -8304 -8305 -8320 -8321 -8585 -8586 -9450 -9451 -9471 -9472 -12295 -12296 -38646 -38647 -42528 -42529 -42735 -42736 -43216 -43217 -43264 -43265 -43472 -43473 -43504 -43505 -43600 -43601 -44016 -44017 -63922 -63923 -65296 -65297 -65930 -65931 -66720 -66721 -69734 -69735 -69872 -69873 -69942 -69943 -70096 -70097 -70384 -70385 -70864 -70865 -71248 -71249 -71360 -71361 -71472 -71473 -71904 -71905 -92768 -92769 -93008 -93009 -120782 -120783 -120792 -120793 -120802 -120803 -120812 -120813 -120822 -120823 -127232 -127234 -127243 -127245 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1.pl deleted file mode 100644 index 435db97b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1.pl +++ /dev/null @@ -1,242 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V228 -49 -50 -185 -186 -1633 -1634 -1777 -1778 -1985 -1986 -2407 -2408 -2535 -2536 -2663 -2664 -2791 -2792 -2919 -2920 -3047 -3048 -3175 -3176 -3193 -3194 -3196 -3197 -3303 -3304 -3431 -3432 -3559 -3560 -3665 -3666 -3793 -3794 -3873 -3874 -4161 -4162 -4241 -4242 -4969 -4970 -6113 -6114 -6129 -6130 -6161 -6162 -6471 -6472 -6609 -6610 -6618 -6619 -6785 -6786 -6801 -6802 -6993 -6994 -7089 -7090 -7233 -7234 -7249 -7250 -8321 -8322 -8543 -8545 -8560 -8561 -9312 -9313 -9332 -9333 -9352 -9353 -9461 -9462 -10102 -10103 -10112 -10113 -10122 -10123 -12321 -12322 -12690 -12691 -12832 -12833 -12928 -12929 -19968 -19969 -22769 -22770 -22777 -22778 -24186 -24187 -24332 -24333 -42529 -42530 -42726 -42727 -43217 -43218 -43265 -43266 -43473 -43474 -43505 -43506 -43601 -43602 -44017 -44018 -65297 -65298 -65799 -65800 -65858 -65859 -65880 -65883 -66273 -66274 -66336 -66337 -66513 -66514 -66721 -66722 -67672 -67673 -67705 -67706 -67751 -67752 -67835 -67836 -67862 -67863 -68032 -68033 -68160 -68161 -68221 -68222 -68253 -68254 -68331 -68332 -68440 -68441 -68472 -68473 -68521 -68522 -68858 -68859 -69216 -69217 -69714 -69715 -69735 -69736 -69873 -69874 -69943 -69944 -70097 -70098 -70113 -70114 -70385 -70386 -70865 -70866 -71249 -71250 -71361 -71362 -71473 -71474 -71905 -71906 -74773 -74774 -74782 -74783 -74796 -74797 -74804 -74805 -74831 -74832 -74840 -74841 -92769 -92770 -93009 -93010 -119648 -119649 -120783 -120784 -120793 -120794 -120803 -120804 -120813 -120814 -120823 -120824 -125127 -125128 -127234 -127235 -133418 -133419 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/10.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/10.pl deleted file mode 100644 index 4f93ec8e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/10.pl +++ /dev/null @@ -1,112 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V98 -3056 -3057 -3440 -3441 -4978 -4979 -8553 -8554 -8569 -8570 -9321 -9322 -9341 -9342 -9361 -9362 -9470 -9471 -10111 -10112 -10121 -10122 -10131 -10132 -12344 -12345 -12841 -12842 -12872 -12873 -12937 -12938 -20160 -20161 -21313 -21314 -25342 -25343 -63859 -63860 -63997 -63998 -65808 -65809 -65865 -65866 -65872 -65873 -65879 -65880 -65888 -65893 -66282 -66283 -66338 -66339 -66515 -66516 -67675 -67676 -67710 -67711 -67757 -67758 -67837 -67838 -67863 -67864 -68041 -68042 -68164 -68165 -68254 -68255 -68333 -68334 -68444 -68445 -68476 -68477 -68525 -68526 -68860 -68861 -69225 -69226 -69723 -69724 -70122 -70123 -71482 -71483 -71914 -71915 -93019 -93020 -119657 -119658 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/100.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/100.pl deleted file mode 100644 index 33f68d57..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/100.pl +++ /dev/null @@ -1,72 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V58 -3057 -3058 -3441 -3442 -4987 -4988 -8557 -8558 -8573 -8574 -20336 -20337 -30334 -30335 -38476 -38477 -65817 -65818 -65867 -65868 -65874 -65875 -65898 -65899 -66291 -66292 -66517 -66518 -67677 -67678 -67759 -67760 -67839 -67840 -67865 -67866 -68050 -68051 -68166 -68167 -68335 -68336 -68446 -68447 -68478 -68479 -68527 -68528 -68862 -68863 -69234 -69235 -69732 -69733 -70131 -70132 -93020 -93021 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1000.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1000.pl deleted file mode 100644 index 9d862c0a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1000.pl +++ /dev/null @@ -1,52 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V38 -3058 -3059 -3442 -3443 -8559 -8560 -8575 -8577 -20191 -20192 -21315 -21316 -38433 -38434 -65826 -65827 -65869 -65870 -65876 -65877 -65905 -65906 -67678 -67679 -68059 -68060 -68167 -68168 -68447 -68448 -68479 -68480 -68863 -68864 -69733 -69734 -70132 -70133 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/10000.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/10000.pl deleted file mode 100644 index a233fc39..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/10000.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -4988 -4989 -8578 -8579 -19975 -19976 -33836 -33837 -65835 -65836 -65877 -65878 -67679 -67680 -68068 -68069 -93021 -93022 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/11.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/11.pl deleted file mode 100644 index 2ae7fb86..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/11.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -8554 -8555 -8570 -8571 -9322 -9323 -9342 -9343 -9362 -9363 -9451 -9452 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/12.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/12.pl deleted file mode 100644 index fcdbe503..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/12.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -8555 -8556 -8571 -8572 -9323 -9324 -9343 -9344 -9363 -9364 -9452 -9453 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/13.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/13.pl deleted file mode 100644 index 402bf170..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/13.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -9324 -9325 -9344 -9345 -9364 -9365 -9453 -9454 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/14.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/14.pl deleted file mode 100644 index f419d2c4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/14.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -9325 -9326 -9345 -9346 -9365 -9366 -9454 -9455 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/15.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/15.pl deleted file mode 100644 index 0a009c3f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/15.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -9326 -9327 -9346 -9347 -9366 -9367 -9455 -9456 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/16.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/16.pl deleted file mode 100644 index f685565d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/16.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -2553 -2554 -9327 -9328 -9347 -9348 -9367 -9368 -9456 -9457 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/17.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/17.pl deleted file mode 100644 index 5e80a177..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/17.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -5870 -5871 -9328 -9329 -9348 -9349 -9368 -9369 -9457 -9458 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/18.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/18.pl deleted file mode 100644 index 23690561..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/18.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -5871 -5872 -9329 -9330 -9349 -9350 -9369 -9370 -9458 -9459 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/19.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/19.pl deleted file mode 100644 index 04f3fbd0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/19.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -5872 -5873 -9330 -9331 -9350 -9351 -9370 -9371 -9459 -9460 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1_2.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1_2.pl deleted file mode 100644 index a34a19d4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1_2.pl +++ /dev/null @@ -1,38 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V24 -189 -190 -2931 -2932 -3444 -3445 -3882 -3883 -11517 -11518 -43057 -43058 -65857 -65858 -65909 -65911 -68029 -68030 -68091 -68092 -69243 -69244 -74852 -74853 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1_3.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1_3.pl deleted file mode 100644 index 95bc1e90..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1_3.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -8531 -8532 -68089 -68090 -69245 -69246 -74842 -74843 -74845 -74846 -74853 -74854 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1_4.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1_4.pl deleted file mode 100644 index aa6427e8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1_4.pl +++ /dev/null @@ -1,36 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V22 -188 -189 -2551 -2552 -2930 -2931 -3443 -3444 -43056 -43057 -65856 -65857 -65931 -65932 -68088 -68089 -69244 -69245 -74848 -74849 -74850 -74852 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1_8.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1_8.pl deleted file mode 100644 index 7a15dcbc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/1_8.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -2549 -2550 -2934 -2935 -8539 -8540 -43060 -43061 -74847 -74848 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/2.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/2.pl deleted file mode 100644 index 916b2acf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/2.pl +++ /dev/null @@ -1,242 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V228 -50 -51 -178 -179 -1634 -1635 -1778 -1779 -1986 -1987 -2408 -2409 -2536 -2537 -2664 -2665 -2792 -2793 -2920 -2921 -3048 -3049 -3176 -3177 -3194 -3195 -3197 -3198 -3304 -3305 -3432 -3433 -3560 -3561 -3666 -3667 -3794 -3795 -3874 -3875 -4162 -4163 -4242 -4243 -4970 -4971 -6114 -6115 -6130 -6131 -6162 -6163 -6472 -6473 -6610 -6611 -6786 -6787 -6802 -6803 -6994 -6995 -7090 -7091 -7234 -7235 -7250 -7251 -8322 -8323 -8545 -8546 -8561 -8562 -9313 -9314 -9333 -9334 -9353 -9354 -9462 -9463 -10103 -10104 -10113 -10114 -10123 -10124 -12322 -12323 -12691 -12692 -12833 -12834 -12929 -12930 -13443 -13444 -20108 -20109 -20841 -20842 -24333 -24334 -24336 -24337 -36014 -36015 -36019 -36020 -36144 -36145 -42530 -42531 -42727 -42728 -43218 -43219 -43266 -43267 -43474 -43475 -43506 -43507 -43602 -43603 -44018 -44019 -63864 -63865 -65298 -65299 -65800 -65801 -65883 -65887 -66274 -66275 -66514 -66515 -66722 -66723 -67673 -67674 -67706 -67707 -67752 -67753 -67866 -67867 -68033 -68034 -68161 -68162 -68441 -68442 -68473 -68474 -68522 -68523 -69217 -69218 -69715 -69716 -69736 -69737 -69874 -69875 -69944 -69945 -70098 -70099 -70114 -70115 -70386 -70387 -70866 -70867 -71250 -71251 -71362 -71363 -71474 -71475 -71906 -71907 -74752 -74753 -74774 -74775 -74783 -74784 -74787 -74788 -74797 -74798 -74805 -74806 -74826 -74827 -74832 -74833 -74838 -74839 -74841 -74842 -92770 -92771 -93010 -93011 -119649 -119650 -120784 -120785 -120794 -120795 -120804 -120805 -120814 -120815 -120824 -120825 -125128 -125129 -127235 -127236 -140176 -140177 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/20.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/20.pl deleted file mode 100644 index 62296d92..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/20.pl +++ /dev/null @@ -1,74 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V60 -4979 -4980 -9331 -9332 -9351 -9352 -9371 -9372 -9460 -9461 -12345 -12346 -12873 -12874 -21316 -21317 -24319 -24320 -65809 -65810 -66283 -66284 -66516 -66517 -67676 -67677 -67711 -67712 -67758 -67759 -67838 -67839 -67864 -67865 -68042 -68043 -68165 -68166 -68255 -68256 -68334 -68335 -68445 -68446 -68477 -68478 -68526 -68527 -69226 -69227 -69724 -69725 -70123 -70124 -71483 -71484 -71915 -71916 -119658 -119659 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/200.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/200.pl deleted file mode 100644 index 3d7817f1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/200.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -65818 -65819 -66292 -66293 -68051 -68052 -69235 -69236 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/2_3.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/2_3.pl deleted file mode 100644 index 4414d4b3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/2_3.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -8532 -8533 -65911 -65912 -68093 -68094 -69246 -69247 -74843 -74844 -74846 -74847 -74854 -74855 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/3.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/3.pl deleted file mode 100644 index 6436c753..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/3.pl +++ /dev/null @@ -1,238 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V224 -51 -52 -179 -180 -1635 -1636 -1779 -1780 -1987 -1988 -2409 -2410 -2537 -2538 -2665 -2666 -2793 -2794 -2921 -2922 -3049 -3050 -3177 -3178 -3195 -3196 -3198 -3199 -3305 -3306 -3433 -3434 -3561 -3562 -3667 -3668 -3795 -3796 -3875 -3876 -4163 -4164 -4243 -4244 -4971 -4972 -6115 -6116 -6131 -6132 -6163 -6164 -6473 -6474 -6611 -6612 -6787 -6788 -6803 -6804 -6995 -6996 -7091 -7092 -7235 -7236 -7251 -7252 -8323 -8324 -8546 -8547 -8562 -8563 -9314 -9315 -9334 -9335 -9354 -9355 -9463 -9464 -10104 -10105 -10114 -10115 -10124 -10125 -12323 -12324 -12692 -12693 -12834 -12835 -12930 -12931 -19977 -19978 -20200 -20201 -21441 -21445 -24334 -24335 -42531 -42532 -42728 -42729 -43219 -43220 -43267 -43268 -43475 -43476 -43507 -43508 -43603 -43604 -44019 -44020 -63851 -63852 -65299 -65300 -65801 -65802 -66275 -66276 -66723 -66724 -67674 -67675 -67707 -67708 -67753 -67754 -67867 -67868 -68034 -68035 -68162 -68163 -68442 -68443 -68474 -68475 -68523 -68524 -69218 -69219 -69716 -69717 -69737 -69738 -69875 -69876 -69945 -69946 -70099 -70100 -70115 -70116 -70387 -70388 -70867 -70868 -71251 -71252 -71363 -71364 -71475 -71476 -71907 -71908 -74753 -74754 -74760 -74761 -74775 -74776 -74784 -74785 -74788 -74790 -74798 -74800 -74806 -74808 -74810 -74812 -74827 -74828 -74833 -74834 -74839 -74840 -92771 -92772 -93011 -93012 -119650 -119651 -120785 -120786 -120795 -120796 -120805 -120806 -120815 -120816 -120825 -120826 -125129 -125130 -127236 -127237 -133885 -133886 -133913 -133914 -141720 -141721 -146203 -146204 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/30.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/30.pl deleted file mode 100644 index fcbe25c6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/30.pl +++ /dev/null @@ -1,44 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V30 -4980 -4981 -12346 -12347 -12874 -12875 -12890 -12891 -21317 -21318 -65810 -65811 -65893 -65894 -66284 -66285 -68043 -68044 -69227 -69228 -69725 -69726 -70124 -70125 -71916 -71917 -119659 -119660 -133507 -133508 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/300.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/300.pl deleted file mode 100644 index 73dde027..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/300.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -65819 -65820 -65899 -65900 -66293 -66294 -68052 -68053 -69236 -69237 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/3_4.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/3_4.pl deleted file mode 100644 index 62691bf8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/3_4.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -190 -191 -2552 -2553 -2932 -2933 -3445 -3446 -43058 -43059 -65912 -65913 -68094 -68095 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/4.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/4.pl deleted file mode 100644 index dd8a272d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/4.pl +++ /dev/null @@ -1,226 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V212 -52 -53 -1636 -1637 -1780 -1781 -1988 -1989 -2410 -2411 -2538 -2539 -2666 -2667 -2794 -2795 -2922 -2923 -3050 -3051 -3178 -3179 -3306 -3307 -3434 -3435 -3562 -3563 -3668 -3669 -3796 -3797 -3876 -3877 -4164 -4165 -4244 -4245 -4972 -4973 -6116 -6117 -6132 -6133 -6164 -6165 -6474 -6475 -6612 -6613 -6788 -6789 -6804 -6805 -6996 -6997 -7092 -7093 -7236 -7237 -7252 -7253 -8308 -8309 -8324 -8325 -8547 -8548 -8563 -8564 -9315 -9316 -9335 -9336 -9355 -9356 -9464 -9465 -10105 -10106 -10115 -10116 -10125 -10126 -12324 -12325 -12693 -12694 -12835 -12836 -12931 -12932 -20118 -20119 -22235 -22236 -32902 -32903 -42532 -42533 -42729 -42730 -43220 -43221 -43268 -43269 -43476 -43477 -43508 -43509 -43604 -43605 -44020 -44021 -65300 -65301 -65802 -65803 -66276 -66277 -66724 -66725 -67708 -67709 -67754 -67756 -68035 -68036 -68163 -68164 -68443 -68444 -68475 -68476 -68524 -68525 -69219 -69220 -69717 -69718 -69738 -69739 -69876 -69877 -69946 -69947 -70100 -70101 -70116 -70117 -70388 -70389 -70868 -70869 -71252 -71253 -71364 -71365 -71476 -71477 -71908 -71909 -74754 -74755 -74761 -74762 -74767 -74768 -74776 -74777 -74785 -74786 -74790 -74791 -74800 -74801 -74808 -74809 -74812 -74816 -74828 -74829 -74834 -74836 -74857 -74858 -92772 -92773 -93012 -93013 -119651 -119652 -120786 -120787 -120796 -120797 -120806 -120807 -120816 -120817 -120826 -120827 -125130 -125131 -127237 -127238 -131172 -131173 -131298 -131299 -156269 -156270 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/40.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/40.pl deleted file mode 100644 index 0420e13c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/40.pl +++ /dev/null @@ -1,44 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V30 -4981 -4982 -12875 -12876 -12981 -12982 -21324 -21325 -65811 -65812 -66285 -66286 -68044 -68045 -69228 -69229 -69726 -69727 -70125 -70126 -71917 -71918 -74855 -74856 -119660 -119661 -133516 -133517 -133532 -133533 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/400.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/400.pl deleted file mode 100644 index b94662a2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/400.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -65820 -65821 -66294 -66295 -68053 -68054 -69237 -69238 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/5.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/5.pl deleted file mode 100644 index f12d8e32..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/5.pl +++ /dev/null @@ -1,230 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V216 -53 -54 -1637 -1638 -1781 -1782 -1989 -1990 -2411 -2412 -2539 -2540 -2667 -2668 -2795 -2796 -2923 -2924 -3051 -3052 -3179 -3180 -3307 -3308 -3435 -3436 -3563 -3564 -3669 -3670 -3797 -3798 -3877 -3878 -4165 -4166 -4245 -4246 -4973 -4974 -6117 -6118 -6133 -6134 -6165 -6166 -6475 -6476 -6613 -6614 -6789 -6790 -6805 -6806 -6997 -6998 -7093 -7094 -7237 -7238 -7253 -7254 -8309 -8310 -8325 -8326 -8548 -8549 -8564 -8565 -9316 -9317 -9336 -9337 -9356 -9357 -9465 -9466 -10106 -10107 -10116 -10117 -10126 -10127 -12325 -12326 -12836 -12837 -12932 -12933 -13317 -13318 -14378 -14379 -20116 -20117 -20237 -20238 -42533 -42534 -42730 -42731 -43221 -43222 -43269 -43270 -43477 -43478 -43509 -43510 -43605 -43606 -44021 -44022 -65301 -65302 -65803 -65804 -65859 -65860 -65864 -65865 -65871 -65872 -65887 -65888 -65907 -65908 -66277 -66278 -66337 -66338 -66725 -66726 -67709 -67710 -67756 -67757 -67836 -67837 -68036 -68037 -68332 -68333 -68859 -68860 -69220 -69221 -69718 -69719 -69739 -69740 -69877 -69878 -69947 -69948 -70101 -70102 -70117 -70118 -70389 -70390 -70869 -70870 -71253 -71254 -71365 -71366 -71477 -71478 -71909 -71910 -74755 -74756 -74762 -74763 -74768 -74769 -74777 -74778 -74786 -74787 -74791 -74792 -74801 -74802 -74809 -74810 -74829 -74830 -74836 -74838 -74858 -74859 -92773 -92774 -93013 -93014 -119652 -119653 -120787 -120788 -120797 -120798 -120807 -120808 -120817 -120818 -120827 -120828 -125131 -125132 -127238 -127239 -131361 -131362 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/50.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/50.pl deleted file mode 100644 index 9db946e8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/50.pl +++ /dev/null @@ -1,60 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V46 -4982 -4983 -8556 -8557 -8572 -8573 -8582 -8583 -12876 -12877 -12991 -12992 -65812 -65813 -65860 -65861 -65866 -65867 -65873 -65874 -65894 -65898 -65908 -65909 -66286 -66287 -66339 -66340 -68045 -68046 -68222 -68223 -68861 -68862 -69229 -69230 -69727 -69728 -70126 -70127 -71918 -71919 -74856 -74857 -119661 -119662 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/500.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/500.pl deleted file mode 100644 index 66c596ba..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/500.pl +++ /dev/null @@ -1,34 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V20 -8558 -8559 -8574 -8575 -65821 -65822 -65861 -65862 -65868 -65869 -65875 -65876 -65900 -65905 -66295 -66296 -68054 -68055 -69238 -69239 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/5000.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/5000.pl deleted file mode 100644 index 0e7aa577..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/5000.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -8577 -8578 -65830 -65831 -65862 -65863 -65870 -65871 -65906 -65907 -68063 -68064 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/50000.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/50000.pl deleted file mode 100644 index a5e710c1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/50000.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -8583 -8584 -65839 -65840 -65863 -65864 -65878 -65879 -68072 -68073 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/6.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/6.pl deleted file mode 100644 index 98e51ecd..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/6.pl +++ /dev/null @@ -1,206 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V192 -54 -55 -1638 -1639 -1782 -1783 -1990 -1991 -2412 -2413 -2540 -2541 -2668 -2669 -2796 -2797 -2924 -2925 -3052 -3053 -3180 -3181 -3308 -3309 -3436 -3437 -3564 -3565 -3670 -3671 -3798 -3799 -3878 -3879 -4166 -4167 -4246 -4247 -4974 -4975 -6118 -6119 -6134 -6135 -6166 -6167 -6476 -6477 -6614 -6615 -6790 -6791 -6806 -6807 -6998 -6999 -7094 -7095 -7238 -7239 -7254 -7255 -8310 -8311 -8326 -8327 -8549 -8550 -8565 -8566 -8581 -8582 -9317 -9318 -9337 -9338 -9357 -9358 -9466 -9467 -10107 -10108 -10117 -10118 -10127 -10128 -12326 -12327 -12837 -12838 -12933 -12934 -20845 -20846 -38470 -38471 -38520 -38521 -42534 -42535 -42731 -42732 -43222 -43223 -43270 -43271 -43478 -43479 -43510 -43511 -43606 -43607 -44022 -44023 -63953 -63954 -63955 -63956 -65302 -65303 -65804 -65805 -66278 -66279 -66726 -66727 -68037 -68038 -69221 -69222 -69719 -69720 -69740 -69741 -69878 -69879 -69948 -69949 -70102 -70103 -70118 -70119 -70390 -70391 -70870 -70871 -71254 -71255 -71366 -71367 -71478 -71479 -71910 -71911 -74756 -74757 -74763 -74764 -74769 -74770 -74778 -74779 -74792 -74793 -74816 -74817 -74830 -74831 -74859 -74860 -92774 -92775 -93014 -93015 -119653 -119654 -120788 -120789 -120798 -120799 -120808 -120809 -120818 -120819 -120828 -120829 -125132 -125133 -127239 -127240 -133866 -133867 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/60.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/60.pl deleted file mode 100644 index 9b766809..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/60.pl +++ /dev/null @@ -1,34 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V20 -4983 -4984 -12877 -12878 -65813 -65814 -66287 -66288 -68046 -68047 -69230 -69231 -69728 -69729 -70127 -70128 -71919 -71920 -119662 -119663 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/600.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/600.pl deleted file mode 100644 index af608c4c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/600.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -65822 -65823 -66296 -66297 -68055 -68056 -69239 -69240 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/7.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/7.pl deleted file mode 100644 index 02197032..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/7.pl +++ /dev/null @@ -1,200 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V186 -55 -56 -1639 -1640 -1783 -1784 -1991 -1992 -2413 -2414 -2541 -2542 -2669 -2670 -2797 -2798 -2925 -2926 -3053 -3054 -3181 -3182 -3309 -3310 -3437 -3438 -3565 -3566 -3671 -3672 -3799 -3800 -3879 -3880 -4167 -4168 -4247 -4248 -4975 -4976 -6119 -6120 -6135 -6136 -6167 -6168 -6477 -6478 -6615 -6616 -6791 -6792 -6807 -6808 -6999 -7000 -7095 -7096 -7239 -7240 -7255 -7256 -8311 -8312 -8327 -8328 -8550 -8551 -8566 -8567 -9318 -9319 -9338 -9339 -9358 -9359 -9467 -9468 -10108 -10109 -10118 -10119 -10128 -10129 -12327 -12328 -12838 -12839 -12934 -12935 -15181 -15182 -19971 -19972 -26578 -26579 -28422 -28423 -42535 -42536 -42732 -42733 -43223 -43224 -43271 -43272 -43479 -43480 -43511 -43512 -43607 -43608 -44023 -44024 -65303 -65304 -65805 -65806 -66279 -66280 -66727 -66728 -68038 -68039 -69222 -69223 -69720 -69721 -69741 -69742 -69879 -69880 -69949 -69950 -70103 -70104 -70119 -70120 -70391 -70392 -70871 -70872 -71255 -71256 -71367 -71368 -71479 -71480 -71911 -71912 -74757 -74758 -74764 -74765 -74770 -74771 -74779 -74780 -74793 -74794 -74817 -74820 -74860 -74861 -92775 -92776 -93015 -93016 -119654 -119655 -120789 -120790 -120799 -120800 -120809 -120810 -120819 -120820 -120829 -120830 -125133 -125134 -127240 -127241 -131073 -131074 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/70.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/70.pl deleted file mode 100644 index d354e8d6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/70.pl +++ /dev/null @@ -1,34 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V20 -4984 -4985 -12878 -12879 -65814 -65815 -66288 -66289 -68047 -68048 -69231 -69232 -69729 -69730 -70128 -70129 -71920 -71921 -119663 -119664 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/700.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/700.pl deleted file mode 100644 index e629778e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/700.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -65823 -65824 -66297 -66298 -68056 -68057 -69240 -69241 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/8.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/8.pl deleted file mode 100644 index 48137975..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/8.pl +++ /dev/null @@ -1,194 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V180 -56 -57 -1640 -1641 -1784 -1785 -1992 -1993 -2414 -2415 -2542 -2543 -2670 -2671 -2798 -2799 -2926 -2927 -3054 -3055 -3182 -3183 -3310 -3311 -3438 -3439 -3566 -3567 -3672 -3673 -3800 -3801 -3880 -3881 -4168 -4169 -4248 -4249 -4976 -4977 -6120 -6121 -6136 -6137 -6168 -6169 -6478 -6479 -6616 -6617 -6792 -6793 -6808 -6809 -7000 -7001 -7096 -7097 -7240 -7241 -7256 -7257 -8312 -8313 -8328 -8329 -8551 -8552 -8567 -8568 -9319 -9320 -9339 -9340 -9359 -9360 -9468 -9469 -10109 -10110 -10119 -10120 -10129 -10130 -12328 -12329 -12839 -12840 -12935 -12936 -20843 -20844 -25420 -25421 -42536 -42537 -42733 -42734 -43224 -43225 -43272 -43273 -43480 -43481 -43512 -43513 -43608 -43609 -44024 -44025 -65304 -65305 -65806 -65807 -66280 -66281 -66728 -66729 -68039 -68040 -69223 -69224 -69721 -69722 -69742 -69743 -69880 -69881 -69950 -69951 -70104 -70105 -70120 -70121 -70392 -70393 -70872 -70873 -71256 -71257 -71368 -71369 -71480 -71481 -71912 -71913 -74758 -74759 -74765 -74766 -74771 -74772 -74780 -74781 -74794 -74795 -74820 -74822 -74861 -74862 -92776 -92777 -93016 -93017 -119655 -119656 -120790 -120791 -120800 -120801 -120810 -120811 -120820 -120821 -120830 -120831 -125134 -125135 -127241 -127242 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/80.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/80.pl deleted file mode 100644 index 96786de0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/80.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -4985 -4986 -12879 -12880 -65815 -65816 -66289 -66290 -69232 -69233 -69730 -69731 -70129 -70130 -71921 -71922 -119664 -119665 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/800.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/800.pl deleted file mode 100644 index aa1d84c7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/800.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -65824 -65825 -66298 -66299 -68057 -68058 -69241 -69242 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/9.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/9.pl deleted file mode 100644 index 00703374..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/9.pl +++ /dev/null @@ -1,198 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V184 -57 -58 -1641 -1642 -1785 -1786 -1993 -1994 -2415 -2416 -2543 -2544 -2671 -2672 -2799 -2800 -2927 -2928 -3055 -3056 -3183 -3184 -3311 -3312 -3439 -3440 -3567 -3568 -3673 -3674 -3801 -3802 -3881 -3882 -4169 -4170 -4249 -4250 -4977 -4978 -6121 -6122 -6137 -6138 -6169 -6170 -6479 -6480 -6617 -6618 -6793 -6794 -6809 -6810 -7001 -7002 -7097 -7098 -7241 -7242 -7257 -7258 -8313 -8314 -8329 -8330 -8552 -8553 -8568 -8569 -9320 -9321 -9340 -9341 -9360 -9361 -9469 -9470 -10110 -10111 -10120 -10121 -10130 -10131 -12329 -12330 -12840 -12841 -12936 -12937 -20061 -20062 -24318 -24319 -29590 -29591 -42537 -42538 -42734 -42735 -43225 -43226 -43273 -43274 -43481 -43482 -43513 -43514 -43609 -43610 -44025 -44026 -65305 -65306 -65807 -65808 -66281 -66282 -66729 -66730 -68040 -68041 -69224 -69225 -69722 -69723 -69743 -69744 -69881 -69882 -69951 -69952 -70105 -70106 -70121 -70122 -70393 -70394 -70873 -70874 -71257 -71258 -71369 -71370 -71481 -71482 -71913 -71914 -74759 -74760 -74766 -74767 -74772 -74773 -74781 -74782 -74795 -74796 -74822 -74826 -74862 -74863 -92777 -92778 -93017 -93018 -119656 -119657 -120791 -120792 -120801 -120802 -120811 -120812 -120821 -120822 -120831 -120832 -125135 -125136 -127242 -127243 -194704 -194705 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/90.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/90.pl deleted file mode 100644 index bd4732b3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/90.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -4986 -4987 -65816 -65817 -66290 -66291 -66369 -66370 -69233 -69234 -69731 -69732 -70130 -70131 -71922 -71923 -119665 -119666 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/900.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/900.pl deleted file mode 100644 index 1fd42542..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Nv/900.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -65825 -65826 -66299 -66300 -66378 -66379 -68058 -68059 -69242 -69243 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/PatSyn/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/PatSyn/Y.pl deleted file mode 100644 index f2e39180..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/PatSyn/Y.pl +++ /dev/null @@ -1,70 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V56 -33 -48 -58 -65 -91 -95 -96 -97 -123 -127 -161 -168 -169 -170 -171 -173 -174 -175 -176 -178 -182 -183 -187 -188 -191 -192 -215 -216 -247 -248 -8208 -8232 -8240 -8255 -8257 -8276 -8277 -8287 -8592 -9312 -9472 -10102 -10132 -11264 -11776 -11904 -12289 -12292 -12296 -12321 -12336 -12337 -64830 -64832 -65093 -65095 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Alnum.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Alnum.pl deleted file mode 100644 index 5d580182..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Alnum.pl +++ /dev/null @@ -1,1310 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1296 -48 -58 -65 -91 -97 -123 -170 -171 -181 -182 -186 -187 -192 -215 -216 -247 -248 -706 -710 -722 -736 -741 -748 -749 -750 -751 -837 -838 -880 -885 -886 -888 -890 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1162 -1328 -1329 -1367 -1369 -1370 -1377 -1416 -1456 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1488 -1515 -1520 -1523 -1552 -1563 -1568 -1624 -1625 -1642 -1646 -1748 -1749 -1757 -1761 -1769 -1773 -1789 -1791 -1792 -1808 -1856 -1869 -1970 -1984 -2027 -2036 -2038 -2042 -2043 -2048 -2072 -2074 -2093 -2112 -2137 -2208 -2229 -2275 -2282 -2288 -2364 -2365 -2381 -2382 -2385 -2389 -2404 -2406 -2416 -2417 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2493 -2501 -2503 -2505 -2507 -2509 -2510 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2546 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2622 -2627 -2631 -2633 -2635 -2637 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2749 -2758 -2759 -2762 -2763 -2765 -2768 -2769 -2784 -2788 -2790 -2800 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2877 -2885 -2887 -2889 -2891 -2893 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2928 -2929 -2930 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3021 -3024 -3025 -3031 -3032 -3046 -3056 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3149 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3261 -3269 -3270 -3273 -3274 -3277 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3405 -3406 -3407 -3415 -3416 -3423 -3428 -3430 -3440 -3450 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3572 -3585 -3643 -3648 -3655 -3661 -3662 -3664 -3674 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3789 -3790 -3792 -3802 -3804 -3808 -3840 -3841 -3872 -3882 -3904 -3912 -3913 -3949 -3953 -3970 -3976 -3992 -3993 -4029 -4096 -4151 -4152 -4153 -4155 -4170 -4176 -4195 -4197 -4201 -4206 -4231 -4238 -4239 -4240 -4250 -4252 -4254 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4959 -4960 -4992 -5008 -5024 -5110 -5112 -5118 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5870 -5881 -5888 -5901 -5902 -5908 -5920 -5940 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6068 -6070 -6089 -6103 -6104 -6108 -6109 -6112 -6122 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6457 -6470 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6618 -6656 -6684 -6688 -6751 -6753 -6773 -6784 -6794 -6800 -6810 -6823 -6824 -6912 -6964 -6965 -6980 -6981 -6988 -6992 -7002 -7040 -7082 -7084 -7142 -7143 -7154 -7168 -7222 -7232 -7242 -7245 -7294 -7401 -7405 -7406 -7412 -7413 -7415 -7424 -7616 -7655 -7669 -7680 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8305 -8306 -8319 -8320 -8336 -8349 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8544 -8585 -9398 -9450 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11503 -11506 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11776 -11823 -11824 -12293 -12296 -12321 -12330 -12337 -12342 -12344 -12349 -12353 -12439 -12445 -12448 -12449 -12539 -12540 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13312 -19894 -19968 -40918 -40960 -42125 -42192 -42238 -42240 -42509 -42512 -42540 -42560 -42607 -42612 -42620 -42623 -42736 -42775 -42784 -42786 -42889 -42891 -42926 -42928 -42936 -42999 -43010 -43011 -43014 -43015 -43019 -43020 -43048 -43072 -43124 -43136 -43204 -43216 -43226 -43250 -43256 -43259 -43260 -43261 -43262 -43264 -43307 -43312 -43347 -43360 -43389 -43392 -43443 -43444 -43456 -43471 -43482 -43488 -43493 -43494 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43616 -43639 -43642 -43643 -43646 -43711 -43712 -43713 -43714 -43715 -43739 -43742 -43744 -43760 -43762 -43766 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43867 -43868 -43878 -43888 -44011 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65020 -65136 -65141 -65142 -65277 -65296 -65306 -65313 -65339 -65345 -65371 -65382 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65856 -65909 -66176 -66205 -66208 -66257 -66304 -66336 -66352 -66379 -66384 -66427 -66432 -66462 -66464 -66500 -66504 -66512 -66513 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68325 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -68736 -68787 -68800 -68851 -69632 -69702 -69734 -69744 -69762 -69817 -69840 -69865 -69872 -69882 -69888 -69939 -69942 -69952 -69968 -70003 -70006 -70007 -70016 -70080 -70081 -70085 -70096 -70107 -70108 -70109 -70144 -70162 -70163 -70197 -70199 -70200 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70377 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70461 -70469 -70471 -70473 -70475 -70477 -70480 -70481 -70487 -70488 -70493 -70500 -70784 -70850 -70852 -70854 -70855 -70856 -70864 -70874 -71040 -71094 -71096 -71103 -71128 -71134 -71168 -71231 -71232 -71233 -71236 -71237 -71248 -71258 -71296 -71350 -71360 -71370 -71424 -71450 -71453 -71467 -71472 -71482 -71840 -71914 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92880 -92910 -92928 -92983 -92992 -92996 -93008 -93018 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94099 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113822 -113823 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -120782 -120832 -124928 -125125 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -127280 -127306 -127312 -127338 -127344 -127370 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Assigned.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Assigned.pl deleted file mode 100644 index 391864f9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Assigned.pl +++ /dev/null @@ -1,1240 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1226 -0 -888 -890 -896 -900 -907 -908 -909 -910 -930 -931 -1328 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1421 -1424 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1565 -1566 -1806 -1807 -1867 -1869 -1970 -1984 -2043 -2048 -2094 -2096 -2111 -2112 -2140 -2142 -2143 -2208 -2229 -2275 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2802 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3192 -3200 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3912 -3913 -3949 -3953 -3992 -3993 -4029 -4030 -4045 -4046 -4059 -4096 -4294 -4295 -4296 -4301 -4302 -4304 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4989 -4992 -5018 -5024 -5110 -5112 -5118 -5120 -5789 -5792 -5881 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6684 -6686 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -6832 -6847 -6912 -6988 -6992 -7037 -7040 -7156 -7164 -7224 -7227 -7242 -7245 -7296 -7360 -7368 -7376 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8293 -8294 -8306 -8308 -8335 -8336 -8349 -8352 -8383 -8400 -8433 -8448 -8588 -8592 -9211 -9216 -9255 -9280 -9291 -9312 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11264 -11311 -11312 -11359 -11360 -11508 -11513 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11633 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11843 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19894 -19904 -40918 -40960 -42125 -42128 -42183 -42192 -42540 -42560 -42744 -42752 -42926 -42928 -42936 -42999 -43052 -43056 -43066 -43072 -43128 -43136 -43205 -43214 -43226 -43232 -43262 -43264 -43348 -43359 -43389 -43392 -43470 -43471 -43482 -43486 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43715 -43739 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43878 -43888 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -55296 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64450 -64467 -64832 -64848 -64912 -64914 -64968 -65008 -65022 -65024 -65050 -65056 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65534 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65933 -65936 -65948 -65952 -65953 -66000 -66046 -66176 -66205 -66208 -66257 -66272 -66300 -66304 -66340 -66352 -66379 -66384 -66427 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -66927 -66928 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67743 -67751 -67760 -67808 -67827 -67828 -67830 -67835 -67868 -67871 -67898 -67903 -67904 -67968 -68024 -68028 -68048 -68050 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -68192 -68256 -68288 -68327 -68331 -68343 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68498 -68505 -68509 -68521 -68528 -68608 -68681 -68736 -68787 -68800 -68851 -68858 -68864 -69216 -69247 -69632 -69710 -69714 -69744 -69759 -69826 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69956 -69968 -70007 -70016 -70094 -70096 -70112 -70113 -70133 -70144 -70162 -70163 -70206 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70314 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70856 -70864 -70874 -71040 -71094 -71096 -71134 -71168 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71488 -71840 -71923 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74864 -74869 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92782 -92784 -92880 -92910 -92912 -92918 -92928 -92998 -93008 -93018 -93019 -93026 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113820 -113828 -118784 -119030 -119040 -119079 -119081 -119273 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -121484 -121499 -121504 -121505 -121520 -124928 -125125 -125127 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127232 -127245 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -917505 -917506 -917536 -917632 -917760 -918000 -983040 -1048574 -1048576 -1114110 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Blank.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Blank.pl deleted file mode 100644 index 636766c6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Blank.pl +++ /dev/null @@ -1,30 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V16 -9 -10 -32 -33 -160 -161 -5760 -5761 -8192 -8203 -8239 -8240 -8287 -8288 -12288 -12289 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Graph.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Graph.pl deleted file mode 100644 index fd507124..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Graph.pl +++ /dev/null @@ -1,1250 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1236 -33 -127 -161 -888 -890 -896 -900 -907 -908 -909 -910 -930 -931 -1328 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1421 -1424 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1565 -1566 -1806 -1807 -1867 -1869 -1970 -1984 -2043 -2048 -2094 -2096 -2111 -2112 -2140 -2142 -2143 -2208 -2229 -2275 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2802 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3192 -3200 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3912 -3913 -3949 -3953 -3992 -3993 -4029 -4030 -4045 -4046 -4059 -4096 -4294 -4295 -4296 -4301 -4302 -4304 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4989 -4992 -5018 -5024 -5110 -5112 -5118 -5120 -5760 -5761 -5789 -5792 -5881 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6684 -6686 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -6832 -6847 -6912 -6988 -6992 -7037 -7040 -7156 -7164 -7224 -7227 -7242 -7245 -7296 -7360 -7368 -7376 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8203 -8232 -8234 -8239 -8240 -8287 -8288 -8293 -8294 -8306 -8308 -8335 -8336 -8349 -8352 -8383 -8400 -8433 -8448 -8588 -8592 -9211 -9216 -9255 -9280 -9291 -9312 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11264 -11311 -11312 -11359 -11360 -11508 -11513 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11633 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11843 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12289 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19894 -19904 -40918 -40960 -42125 -42128 -42183 -42192 -42540 -42560 -42744 -42752 -42926 -42928 -42936 -42999 -43052 -43056 -43066 -43072 -43128 -43136 -43205 -43214 -43226 -43232 -43262 -43264 -43348 -43359 -43389 -43392 -43470 -43471 -43482 -43486 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43715 -43739 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43878 -43888 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -57344 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64450 -64467 -64832 -64848 -64912 -64914 -64968 -65008 -65022 -65024 -65050 -65056 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65534 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65933 -65936 -65948 -65952 -65953 -66000 -66046 -66176 -66205 -66208 -66257 -66272 -66300 -66304 -66340 -66352 -66379 -66384 -66427 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -66927 -66928 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67743 -67751 -67760 -67808 -67827 -67828 -67830 -67835 -67868 -67871 -67898 -67903 -67904 -67968 -68024 -68028 -68048 -68050 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -68192 -68256 -68288 -68327 -68331 -68343 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68498 -68505 -68509 -68521 -68528 -68608 -68681 -68736 -68787 -68800 -68851 -68858 -68864 -69216 -69247 -69632 -69710 -69714 -69744 -69759 -69826 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69956 -69968 -70007 -70016 -70094 -70096 -70112 -70113 -70133 -70144 -70162 -70163 -70206 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70314 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70856 -70864 -70874 -71040 -71094 -71096 -71134 -71168 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71488 -71840 -71923 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74864 -74869 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92782 -92784 -92880 -92910 -92912 -92918 -92928 -92998 -93008 -93018 -93019 -93026 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113820 -113828 -118784 -119030 -119040 -119079 -119081 -119273 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -121484 -121499 -121504 -121505 -121520 -124928 -125125 -125127 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127232 -127245 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -917505 -917506 -917536 -917632 -917760 -918000 -983040 -1048574 -1048576 -1114110 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/PerlWord.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/PerlWord.pl deleted file mode 100644 index 7d5c2e2d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/PerlWord.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -48 -58 -65 -91 -95 -96 -97 -123 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/PosixPun.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/PosixPun.pl deleted file mode 100644 index 6dd35ddb..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/PosixPun.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -33 -48 -58 -65 -91 -97 -123 -127 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Print.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Print.pl deleted file mode 100644 index 53e52dea..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Print.pl +++ /dev/null @@ -1,1244 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1230 -32 -127 -160 -888 -890 -896 -900 -907 -908 -909 -910 -930 -931 -1328 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1421 -1424 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1565 -1566 -1806 -1807 -1867 -1869 -1970 -1984 -2043 -2048 -2094 -2096 -2111 -2112 -2140 -2142 -2143 -2208 -2229 -2275 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2802 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3192 -3200 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3912 -3913 -3949 -3953 -3992 -3993 -4029 -4030 -4045 -4046 -4059 -4096 -4294 -4295 -4296 -4301 -4302 -4304 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4989 -4992 -5018 -5024 -5110 -5112 -5118 -5120 -5789 -5792 -5881 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6684 -6686 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -6832 -6847 -6912 -6988 -6992 -7037 -7040 -7156 -7164 -7224 -7227 -7242 -7245 -7296 -7360 -7368 -7376 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8232 -8234 -8293 -8294 -8306 -8308 -8335 -8336 -8349 -8352 -8383 -8400 -8433 -8448 -8588 -8592 -9211 -9216 -9255 -9280 -9291 -9312 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11264 -11311 -11312 -11359 -11360 -11508 -11513 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11633 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11843 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19894 -19904 -40918 -40960 -42125 -42128 -42183 -42192 -42540 -42560 -42744 -42752 -42926 -42928 -42936 -42999 -43052 -43056 -43066 -43072 -43128 -43136 -43205 -43214 -43226 -43232 -43262 -43264 -43348 -43359 -43389 -43392 -43470 -43471 -43482 -43486 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43715 -43739 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43878 -43888 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -57344 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64450 -64467 -64832 -64848 -64912 -64914 -64968 -65008 -65022 -65024 -65050 -65056 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65534 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65933 -65936 -65948 -65952 -65953 -66000 -66046 -66176 -66205 -66208 -66257 -66272 -66300 -66304 -66340 -66352 -66379 -66384 -66427 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -66927 -66928 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67743 -67751 -67760 -67808 -67827 -67828 -67830 -67835 -67868 -67871 -67898 -67903 -67904 -67968 -68024 -68028 -68048 -68050 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -68192 -68256 -68288 -68327 -68331 -68343 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68498 -68505 -68509 -68521 -68528 -68608 -68681 -68736 -68787 -68800 -68851 -68858 -68864 -69216 -69247 -69632 -69710 -69714 -69744 -69759 -69826 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69956 -69968 -70007 -70016 -70094 -70096 -70112 -70113 -70133 -70144 -70162 -70163 -70206 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70314 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70856 -70864 -70874 -71040 -71094 -71096 -71134 -71168 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71488 -71840 -71923 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74864 -74869 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92782 -92784 -92880 -92910 -92912 -92918 -92928 -92998 -93008 -93018 -93019 -93026 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113820 -113828 -118784 -119030 -119040 -119079 -119081 -119273 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -121484 -121499 -121504 -121505 -121520 -124928 -125125 -125127 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127232 -127245 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -917505 -917506 -917536 -917632 -917760 -918000 -983040 -1048574 -1048576 -1114110 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/SpacePer.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/SpacePer.pl deleted file mode 100644 index 46bc1118..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/SpacePer.pl +++ /dev/null @@ -1,34 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V20 -9 -14 -32 -33 -133 -134 -160 -161 -5760 -5761 -8192 -8203 -8232 -8234 -8239 -8240 -8287 -8288 -12288 -12289 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Title.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Title.pl deleted file mode 100644 index d40fb555..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Title.pl +++ /dev/null @@ -1,34 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V20 -453 -454 -456 -457 -459 -460 -498 -499 -8072 -8080 -8088 -8096 -8104 -8112 -8124 -8125 -8140 -8141 -8188 -8189 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Word.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Word.pl deleted file mode 100644 index d1877ce7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/Word.pl +++ /dev/null @@ -1,1324 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1310 -48 -58 -65 -91 -95 -96 -97 -123 -170 -171 -181 -182 -186 -187 -192 -215 -216 -247 -248 -706 -710 -722 -736 -741 -748 -749 -750 -751 -768 -885 -886 -888 -890 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1155 -1328 -1329 -1367 -1369 -1370 -1377 -1416 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1488 -1515 -1520 -1523 -1552 -1563 -1568 -1642 -1646 -1748 -1749 -1757 -1759 -1769 -1770 -1789 -1791 -1792 -1808 -1867 -1869 -1970 -1984 -2038 -2042 -2043 -2048 -2094 -2112 -2140 -2208 -2229 -2275 -2404 -2406 -2416 -2417 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2546 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2800 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2928 -2929 -2930 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3056 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3440 -3450 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3572 -3585 -3643 -3648 -3663 -3664 -3674 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3841 -3864 -3866 -3872 -3882 -3893 -3894 -3895 -3896 -3897 -3898 -3902 -3912 -3913 -3949 -3953 -3973 -3974 -3992 -3993 -4029 -4038 -4039 -4096 -4170 -4176 -4254 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4960 -4992 -5008 -5024 -5110 -5112 -5118 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5870 -5881 -5888 -5901 -5902 -5909 -5920 -5941 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6100 -6103 -6104 -6108 -6110 -6112 -6122 -6155 -6158 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6470 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6618 -6656 -6684 -6688 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6823 -6824 -6832 -6847 -6912 -6988 -6992 -7002 -7019 -7028 -7040 -7156 -7168 -7224 -7232 -7242 -7245 -7294 -7376 -7379 -7380 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8204 -8206 -8255 -8257 -8276 -8277 -8305 -8306 -8319 -8320 -8336 -8349 -8400 -8433 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8544 -8585 -9398 -9450 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11776 -11823 -11824 -12293 -12296 -12321 -12336 -12337 -12342 -12344 -12349 -12353 -12439 -12441 -12443 -12445 -12448 -12449 -12539 -12540 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13312 -19894 -19968 -40918 -40960 -42125 -42192 -42238 -42240 -42509 -42512 -42540 -42560 -42611 -42612 -42622 -42623 -42738 -42775 -42784 -42786 -42889 -42891 -42926 -42928 -42936 -42999 -43048 -43072 -43124 -43136 -43205 -43216 -43226 -43232 -43256 -43259 -43260 -43261 -43262 -43264 -43310 -43312 -43348 -43360 -43389 -43392 -43457 -43471 -43482 -43488 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43616 -43639 -43642 -43715 -43739 -43742 -43744 -43760 -43762 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43867 -43868 -43878 -43888 -44011 -44012 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65020 -65024 -65040 -65056 -65072 -65075 -65077 -65101 -65104 -65136 -65141 -65142 -65277 -65296 -65306 -65313 -65339 -65343 -65344 -65345 -65371 -65382 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65856 -65909 -66045 -66046 -66176 -66205 -66208 -66257 -66272 -66273 -66304 -66336 -66352 -66379 -66384 -66427 -66432 -66462 -66464 -66500 -66504 -66512 -66513 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68160 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68327 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -68736 -68787 -68800 -68851 -69632 -69703 -69734 -69744 -69759 -69819 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69952 -69968 -70004 -70006 -70007 -70016 -70085 -70090 -70093 -70096 -70107 -70108 -70109 -70144 -70162 -70163 -70200 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70854 -70855 -70856 -70864 -70874 -71040 -71094 -71096 -71105 -71128 -71134 -71168 -71233 -71236 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71482 -71840 -71914 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92880 -92910 -92912 -92917 -92928 -92983 -92992 -92996 -93008 -93018 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113821 -113823 -119141 -119146 -119149 -119155 -119163 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -120782 -120832 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -124928 -125125 -125136 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -127280 -127306 -127312 -127338 -127344 -127370 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/XPosixPu.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/XPosixPu.pl deleted file mode 100644 index b3c789a5..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/XPosixPu.pl +++ /dev/null @@ -1,326 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V312 -33 -48 -58 -65 -91 -97 -123 -127 -161 -162 -167 -168 -171 -172 -182 -184 -187 -188 -191 -192 -894 -895 -903 -904 -1370 -1376 -1417 -1419 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1523 -1525 -1545 -1547 -1548 -1550 -1563 -1564 -1566 -1568 -1642 -1646 -1748 -1749 -1792 -1806 -2039 -2042 -2096 -2111 -2142 -2143 -2404 -2406 -2416 -2417 -2800 -2801 -3572 -3573 -3663 -3664 -3674 -3676 -3844 -3859 -3860 -3861 -3898 -3902 -3973 -3974 -4048 -4053 -4057 -4059 -4170 -4176 -4347 -4348 -4960 -4969 -5120 -5121 -5741 -5743 -5787 -5789 -5867 -5870 -5941 -5943 -6100 -6103 -6104 -6107 -6144 -6155 -6468 -6470 -6686 -6688 -6816 -6823 -6824 -6830 -7002 -7009 -7164 -7168 -7227 -7232 -7294 -7296 -7360 -7368 -7379 -7380 -8208 -8232 -8240 -8260 -8261 -8274 -8275 -8287 -8317 -8319 -8333 -8335 -8968 -8972 -9001 -9003 -10088 -10102 -10181 -10183 -10214 -10224 -10627 -10649 -10712 -10716 -10748 -10750 -11513 -11517 -11518 -11520 -11632 -11633 -11776 -11823 -11824 -11843 -12289 -12292 -12296 -12306 -12308 -12320 -12336 -12337 -12349 -12350 -12448 -12449 -12539 -12540 -42238 -42240 -42509 -42512 -42611 -42612 -42622 -42623 -42738 -42744 -43124 -43128 -43214 -43216 -43256 -43259 -43260 -43261 -43310 -43312 -43359 -43360 -43457 -43470 -43486 -43488 -43612 -43616 -43742 -43744 -43760 -43762 -44011 -44012 -64830 -64832 -65040 -65050 -65072 -65107 -65108 -65122 -65123 -65124 -65128 -65129 -65130 -65132 -65281 -65284 -65285 -65291 -65292 -65296 -65306 -65308 -65311 -65313 -65339 -65342 -65343 -65344 -65371 -65372 -65373 -65374 -65375 -65382 -65792 -65795 -66463 -66464 -66512 -66513 -66927 -66928 -67671 -67672 -67871 -67872 -67903 -67904 -68176 -68185 -68223 -68224 -68336 -68343 -68409 -68416 -68505 -68509 -69703 -69710 -69819 -69821 -69822 -69826 -69952 -69956 -70004 -70006 -70085 -70090 -70093 -70094 -70107 -70108 -70109 -70112 -70200 -70206 -70313 -70314 -70854 -70855 -71105 -71128 -71233 -71236 -71484 -71487 -74864 -74869 -92782 -92784 -92917 -92918 -92983 -92988 -92996 -92997 -113823 -113824 -121479 -121484 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlAny.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlAny.pl deleted file mode 100644 index ddbfe162..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlAny.pl +++ /dev/null @@ -1,260 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V246 -65 -91 -97 -123 -181 -182 -192 -215 -216 -247 -248 -305 -306 -312 -313 -397 -398 -411 -412 -426 -428 -442 -444 -446 -447 -448 -452 -545 -546 -564 -570 -597 -598 -600 -601 -602 -603 -605 -608 -610 -611 -612 -613 -615 -616 -618 -619 -621 -623 -624 -625 -627 -629 -630 -637 -638 -640 -641 -643 -644 -647 -653 -658 -659 -669 -671 -700 -701 -702 -703 -768 -770 -775 -777 -778 -779 -780 -781 -787 -788 -817 -818 -834 -835 -837 -838 -880 -884 -886 -888 -891 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -978 -981 -1014 -1015 -1020 -1021 -1154 -1162 -1328 -1329 -1367 -1377 -1416 -4256 -4294 -4295 -4296 -4301 -4302 -5024 -5110 -5112 -5118 -7545 -7546 -7549 -7550 -7680 -7836 -7838 -7839 -7840 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8486 -8487 -8490 -8492 -8498 -8499 -8526 -8527 -8544 -8576 -8579 -8581 -9398 -9450 -11264 -11311 -11312 -11359 -11360 -11377 -11378 -11380 -11381 -11383 -11390 -11492 -11499 -11503 -11506 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -42560 -42606 -42624 -42652 -42786 -42800 -42802 -42864 -42873 -42888 -42891 -42894 -42896 -42900 -42902 -42926 -42928 -42936 -43859 -43860 -43888 -43968 -64256 -64263 -64275 -64280 -65313 -65339 -65345 -65371 -66560 -66640 -68736 -68787 -68800 -68851 -71840 -71904 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlCh2.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlCh2.pl deleted file mode 100644 index 8aa82392..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlCh2.pl +++ /dev/null @@ -1,1338 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1324 -32 -33 -40 -42 -45 -46 -48 -58 -65 -91 -95 -96 -97 -123 -160 -161 -170 -171 -181 -182 -186 -187 -192 -215 -216 -247 -248 -706 -710 -722 -736 -741 -748 -749 -750 -751 -768 -885 -886 -888 -891 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1155 -1160 -1162 -1328 -1329 -1367 -1369 -1370 -1377 -1416 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1488 -1515 -1520 -1523 -1552 -1563 -1568 -1642 -1646 -1748 -1749 -1757 -1759 -1769 -1770 -1789 -1791 -1792 -1808 -1867 -1869 -1970 -1984 -2038 -2042 -2043 -2048 -2094 -2112 -2140 -2208 -2229 -2275 -2404 -2406 -2416 -2417 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2546 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2800 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2928 -2929 -2930 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3056 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3440 -3450 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3572 -3585 -3643 -3648 -3663 -3664 -3674 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3841 -3864 -3866 -3872 -3882 -3893 -3894 -3895 -3896 -3897 -3898 -3902 -3912 -3913 -3949 -3953 -3973 -3974 -3992 -3993 -4029 -4038 -4039 -4096 -4170 -4176 -4254 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4960 -4992 -5008 -5024 -5110 -5112 -5118 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5870 -5881 -5888 -5901 -5902 -5909 -5920 -5941 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6100 -6103 -6104 -6108 -6110 -6112 -6122 -6155 -6158 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6470 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6618 -6656 -6684 -6688 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6823 -6824 -6832 -6846 -6912 -6988 -6992 -7002 -7019 -7028 -7040 -7156 -7168 -7224 -7232 -7242 -7245 -7294 -7376 -7379 -7380 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8255 -8257 -8276 -8277 -8305 -8306 -8319 -8320 -8336 -8349 -8400 -8413 -8417 -8418 -8421 -8433 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8544 -8585 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11776 -12293 -12296 -12321 -12336 -12337 -12342 -12344 -12349 -12353 -12439 -12441 -12443 -12445 -12448 -12449 -12539 -12540 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13312 -19894 -19968 -40918 -40960 -42125 -42192 -42238 -42240 -42509 -42512 -42540 -42560 -42608 -42612 -42622 -42623 -42738 -42775 -42784 -42786 -42889 -42891 -42926 -42928 -42936 -42999 -43048 -43072 -43124 -43136 -43205 -43216 -43226 -43232 -43256 -43259 -43260 -43261 -43262 -43264 -43310 -43312 -43348 -43360 -43389 -43392 -43457 -43471 -43482 -43488 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43616 -43639 -43642 -43715 -43739 -43742 -43744 -43760 -43762 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43867 -43868 -43878 -43888 -44011 -44012 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64606 -64612 -64830 -64848 -64912 -64914 -64968 -65008 -65018 -65024 -65040 -65056 -65072 -65075 -65077 -65101 -65104 -65137 -65138 -65139 -65140 -65143 -65144 -65145 -65146 -65147 -65148 -65149 -65150 -65151 -65277 -65296 -65306 -65313 -65339 -65343 -65344 -65345 -65371 -65382 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65856 -65909 -66045 -66046 -66176 -66205 -66208 -66257 -66272 -66273 -66304 -66336 -66352 -66379 -66384 -66427 -66432 -66462 -66464 -66500 -66504 -66512 -66513 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68160 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68327 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -68736 -68787 -68800 -68851 -69632 -69703 -69734 -69744 -69759 -69819 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69952 -69968 -70004 -70006 -70007 -70016 -70085 -70090 -70093 -70096 -70107 -70108 -70109 -70144 -70162 -70163 -70200 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70854 -70855 -70856 -70864 -70874 -71040 -71094 -71096 -71105 -71128 -71134 -71168 -71233 -71236 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71482 -71840 -71914 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92880 -92910 -92912 -92917 -92928 -92983 -92992 -92996 -93008 -93018 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113821 -113823 -119141 -119146 -119149 -119155 -119163 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -120782 -120832 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -124928 -125125 -125136 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlCha.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlCha.pl deleted file mode 100644 index 1424a8d6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlCha.pl +++ /dev/null @@ -1,1134 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1120 -65 -91 -97 -123 -170 -171 -181 -182 -186 -187 -192 -215 -216 -247 -248 -706 -710 -722 -736 -741 -748 -749 -750 -751 -880 -885 -886 -888 -891 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1162 -1328 -1329 -1367 -1369 -1370 -1377 -1416 -1488 -1515 -1520 -1523 -1568 -1611 -1646 -1648 -1649 -1748 -1749 -1750 -1765 -1767 -1774 -1776 -1786 -1789 -1791 -1792 -1808 -1809 -1810 -1840 -1869 -1958 -1969 -1970 -1994 -2027 -2036 -2038 -2042 -2043 -2048 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2112 -2137 -2208 -2229 -2308 -2362 -2365 -2366 -2384 -2385 -2392 -2402 -2417 -2433 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2493 -2494 -2510 -2511 -2524 -2526 -2527 -2530 -2544 -2546 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2649 -2653 -2654 -2655 -2674 -2677 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2749 -2750 -2768 -2769 -2784 -2786 -2809 -2810 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2877 -2878 -2908 -2910 -2911 -2914 -2929 -2930 -2947 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3024 -3025 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3134 -3160 -3163 -3168 -3170 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3261 -3262 -3294 -3295 -3296 -3298 -3313 -3315 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3390 -3406 -3407 -3423 -3426 -3450 -3456 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3585 -3633 -3634 -3635 -3648 -3655 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3761 -3762 -3763 -3773 -3774 -3776 -3781 -3782 -3783 -3804 -3808 -3840 -3841 -3904 -3912 -3913 -3949 -3976 -3981 -4096 -4139 -4159 -4160 -4176 -4182 -4186 -4190 -4193 -4194 -4197 -4199 -4206 -4209 -4213 -4226 -4238 -4239 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4992 -5008 -5024 -5110 -5112 -5118 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5873 -5881 -5888 -5901 -5902 -5906 -5920 -5938 -5952 -5970 -5984 -5997 -5998 -6001 -6016 -6068 -6103 -6104 -6108 -6109 -6176 -6264 -6272 -6313 -6314 -6315 -6320 -6390 -6400 -6431 -6480 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6656 -6679 -6688 -6741 -6823 -6824 -6917 -6964 -6981 -6988 -7043 -7073 -7086 -7088 -7098 -7142 -7168 -7204 -7245 -7248 -7258 -7294 -7401 -7405 -7406 -7410 -7413 -7415 -7424 -7616 -7680 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8305 -8306 -8319 -8320 -8336 -8349 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8579 -8581 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11503 -11506 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -12293 -12295 -12337 -12342 -12347 -12349 -12353 -12439 -12445 -12448 -12449 -12539 -12540 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13312 -19894 -19968 -40918 -40960 -42125 -42192 -42238 -42240 -42509 -42512 -42528 -42538 -42540 -42560 -42607 -42623 -42654 -42656 -42726 -42775 -42784 -42786 -42889 -42891 -42926 -42928 -42936 -42999 -43010 -43011 -43014 -43015 -43019 -43020 -43043 -43072 -43124 -43138 -43188 -43250 -43256 -43259 -43260 -43261 -43262 -43274 -43302 -43312 -43335 -43360 -43389 -43396 -43443 -43471 -43472 -43488 -43493 -43494 -43504 -43514 -43519 -43520 -43561 -43584 -43587 -43588 -43596 -43616 -43639 -43642 -43643 -43646 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43715 -43739 -43742 -43744 -43755 -43762 -43765 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43867 -43868 -43878 -43888 -44003 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64286 -64287 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64606 -64612 -64830 -64848 -64912 -64914 -64968 -65008 -65018 -65137 -65138 -65139 -65140 -65143 -65144 -65145 -65146 -65147 -65148 -65149 -65150 -65151 -65277 -65313 -65339 -65345 -65371 -65382 -65438 -65440 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -66176 -66205 -66208 -66257 -66304 -66336 -66352 -66369 -66370 -66378 -66384 -66422 -66432 -66462 -66464 -66500 -66504 -66512 -66560 -66718 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68097 -68112 -68116 -68117 -68120 -68121 -68148 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68325 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -68736 -68787 -68800 -68851 -69635 -69688 -69763 -69808 -69840 -69865 -69891 -69927 -69968 -70003 -70006 -70007 -70019 -70067 -70081 -70085 -70106 -70107 -70108 -70109 -70144 -70162 -70163 -70188 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70367 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70461 -70462 -70480 -70481 -70493 -70498 -70784 -70832 -70852 -70854 -70855 -70856 -71040 -71087 -71128 -71132 -71168 -71216 -71236 -71237 -71296 -71339 -71424 -71450 -71840 -71904 -71935 -71936 -72384 -72441 -73728 -74650 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92880 -92910 -92928 -92976 -92992 -92996 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94033 -94099 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -124928 -125125 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlFol.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlFol.pl deleted file mode 100644 index e43d835a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlFol.pl +++ /dev/null @@ -1,72 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V58 -223 -224 -304 -305 -329 -330 -496 -497 -912 -913 -944 -945 -1415 -1416 -7830 -7835 -7838 -7839 -8016 -8017 -8018 -8019 -8020 -8021 -8022 -8023 -8064 -8112 -8114 -8117 -8118 -8120 -8124 -8125 -8130 -8133 -8134 -8136 -8140 -8141 -8146 -8148 -8150 -8152 -8162 -8165 -8166 -8168 -8178 -8181 -8182 -8184 -8188 -8189 -64256 -64263 -64275 -64280 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlIDC.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlIDC.pl deleted file mode 100644 index 70a7f401..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlIDC.pl +++ /dev/null @@ -1,1330 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1316 -48 -58 -65 -91 -95 -96 -97 -123 -170 -171 -181 -182 -186 -187 -192 -215 -216 -247 -248 -706 -710 -722 -736 -741 -748 -749 -750 -751 -768 -885 -886 -888 -891 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1155 -1160 -1162 -1328 -1329 -1367 -1369 -1370 -1377 -1416 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1488 -1515 -1520 -1523 -1552 -1563 -1568 -1642 -1646 -1748 -1749 -1757 -1759 -1769 -1770 -1789 -1791 -1792 -1808 -1867 -1869 -1970 -1984 -2038 -2042 -2043 -2048 -2094 -2112 -2140 -2208 -2229 -2275 -2404 -2406 -2416 -2417 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2546 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2800 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2928 -2929 -2930 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3056 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3440 -3450 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3572 -3585 -3643 -3648 -3663 -3664 -3674 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3841 -3864 -3866 -3872 -3882 -3893 -3894 -3895 -3896 -3897 -3898 -3902 -3912 -3913 -3949 -3953 -3973 -3974 -3992 -3993 -4029 -4038 -4039 -4096 -4170 -4176 -4254 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4960 -4992 -5008 -5024 -5110 -5112 -5118 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5870 -5881 -5888 -5901 -5902 -5909 -5920 -5941 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6100 -6103 -6104 -6108 -6110 -6112 -6122 -6155 -6158 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6470 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6618 -6656 -6684 -6688 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6823 -6824 -6832 -6846 -6912 -6988 -6992 -7002 -7019 -7028 -7040 -7156 -7168 -7224 -7232 -7242 -7245 -7294 -7376 -7379 -7380 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8255 -8257 -8276 -8277 -8305 -8306 -8319 -8320 -8336 -8349 -8400 -8413 -8417 -8418 -8421 -8433 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8544 -8585 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11776 -12293 -12296 -12321 -12336 -12337 -12342 -12344 -12349 -12353 -12439 -12441 -12443 -12445 -12448 -12449 -12539 -12540 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13312 -19894 -19968 -40918 -40960 -42125 -42192 -42238 -42240 -42509 -42512 -42540 -42560 -42608 -42612 -42622 -42623 -42738 -42775 -42784 -42786 -42889 -42891 -42926 -42928 -42936 -42999 -43048 -43072 -43124 -43136 -43205 -43216 -43226 -43232 -43256 -43259 -43260 -43261 -43262 -43264 -43310 -43312 -43348 -43360 -43389 -43392 -43457 -43471 -43482 -43488 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43616 -43639 -43642 -43715 -43739 -43742 -43744 -43760 -43762 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43867 -43868 -43878 -43888 -44011 -44012 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64606 -64612 -64830 -64848 -64912 -64914 -64968 -65008 -65018 -65024 -65040 -65056 -65072 -65075 -65077 -65101 -65104 -65137 -65138 -65139 -65140 -65143 -65144 -65145 -65146 -65147 -65148 -65149 -65150 -65151 -65277 -65296 -65306 -65313 -65339 -65343 -65344 -65345 -65371 -65382 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65856 -65909 -66045 -66046 -66176 -66205 -66208 -66257 -66272 -66273 -66304 -66336 -66352 -66379 -66384 -66427 -66432 -66462 -66464 -66500 -66504 -66512 -66513 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68160 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68327 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -68736 -68787 -68800 -68851 -69632 -69703 -69734 -69744 -69759 -69819 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69952 -69968 -70004 -70006 -70007 -70016 -70085 -70090 -70093 -70096 -70107 -70108 -70109 -70144 -70162 -70163 -70200 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70854 -70855 -70856 -70864 -70874 -71040 -71094 -71096 -71105 -71128 -71134 -71168 -71233 -71236 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71482 -71840 -71914 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92880 -92910 -92912 -92917 -92928 -92983 -92992 -92996 -93008 -93018 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113821 -113823 -119141 -119146 -119149 -119155 -119163 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -120782 -120832 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -124928 -125125 -125136 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlIDS.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlIDS.pl deleted file mode 100644 index 01efce2d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlIDS.pl +++ /dev/null @@ -1,1142 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1128 -65 -91 -95 -96 -97 -123 -170 -171 -181 -182 -186 -187 -192 -215 -216 -247 -248 -706 -710 -722 -736 -741 -748 -749 -750 -751 -880 -885 -886 -888 -891 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1162 -1328 -1329 -1367 -1369 -1370 -1377 -1416 -1488 -1515 -1520 -1523 -1568 -1611 -1646 -1648 -1649 -1748 -1749 -1750 -1765 -1767 -1774 -1776 -1786 -1789 -1791 -1792 -1808 -1809 -1810 -1840 -1869 -1958 -1969 -1970 -1994 -2027 -2036 -2038 -2042 -2043 -2048 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2112 -2137 -2208 -2229 -2308 -2362 -2365 -2366 -2384 -2385 -2392 -2402 -2417 -2433 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2493 -2494 -2510 -2511 -2524 -2526 -2527 -2530 -2544 -2546 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2649 -2653 -2654 -2655 -2674 -2677 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2749 -2750 -2768 -2769 -2784 -2786 -2809 -2810 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2877 -2878 -2908 -2910 -2911 -2914 -2929 -2930 -2947 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3024 -3025 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3134 -3160 -3163 -3168 -3170 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3261 -3262 -3294 -3295 -3296 -3298 -3313 -3315 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3390 -3406 -3407 -3423 -3426 -3450 -3456 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3585 -3633 -3634 -3635 -3648 -3655 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3761 -3762 -3763 -3773 -3774 -3776 -3781 -3782 -3783 -3804 -3808 -3840 -3841 -3904 -3912 -3913 -3949 -3976 -3981 -4096 -4139 -4159 -4160 -4176 -4182 -4186 -4190 -4193 -4194 -4197 -4199 -4206 -4209 -4213 -4226 -4238 -4239 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4992 -5008 -5024 -5110 -5112 -5118 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5870 -5881 -5888 -5901 -5902 -5906 -5920 -5938 -5952 -5970 -5984 -5997 -5998 -6001 -6016 -6068 -6103 -6104 -6108 -6109 -6176 -6264 -6272 -6313 -6314 -6315 -6320 -6390 -6400 -6431 -6480 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6656 -6679 -6688 -6741 -6823 -6824 -6917 -6964 -6981 -6988 -7043 -7073 -7086 -7088 -7098 -7142 -7168 -7204 -7245 -7248 -7258 -7294 -7401 -7405 -7406 -7410 -7413 -7415 -7424 -7616 -7680 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8305 -8306 -8319 -8320 -8336 -8349 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8544 -8585 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11503 -11506 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -12293 -12296 -12321 -12330 -12337 -12342 -12344 -12349 -12353 -12439 -12445 -12448 -12449 -12539 -12540 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13312 -19894 -19968 -40918 -40960 -42125 -42192 -42238 -42240 -42509 -42512 -42528 -42538 -42540 -42560 -42607 -42623 -42654 -42656 -42736 -42775 -42784 -42786 -42889 -42891 -42926 -42928 -42936 -42999 -43010 -43011 -43014 -43015 -43019 -43020 -43043 -43072 -43124 -43138 -43188 -43250 -43256 -43259 -43260 -43261 -43262 -43274 -43302 -43312 -43335 -43360 -43389 -43396 -43443 -43471 -43472 -43488 -43493 -43494 -43504 -43514 -43519 -43520 -43561 -43584 -43587 -43588 -43596 -43616 -43639 -43642 -43643 -43646 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43715 -43739 -43742 -43744 -43755 -43762 -43765 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43867 -43868 -43878 -43888 -44003 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64286 -64287 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64606 -64612 -64830 -64848 -64912 -64914 -64968 -65008 -65018 -65137 -65138 -65139 -65140 -65143 -65144 -65145 -65146 -65147 -65148 -65149 -65150 -65151 -65277 -65313 -65339 -65345 -65371 -65382 -65438 -65440 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65856 -65909 -66176 -66205 -66208 -66257 -66304 -66336 -66352 -66379 -66384 -66422 -66432 -66462 -66464 -66500 -66504 -66512 -66513 -66518 -66560 -66718 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68097 -68112 -68116 -68117 -68120 -68121 -68148 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68325 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -68736 -68787 -68800 -68851 -69635 -69688 -69763 -69808 -69840 -69865 -69891 -69927 -69968 -70003 -70006 -70007 -70019 -70067 -70081 -70085 -70106 -70107 -70108 -70109 -70144 -70162 -70163 -70188 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70367 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70461 -70462 -70480 -70481 -70493 -70498 -70784 -70832 -70852 -70854 -70855 -70856 -71040 -71087 -71128 -71132 -71168 -71216 -71236 -71237 -71296 -71339 -71424 -71450 -71840 -71904 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92880 -92910 -92928 -92976 -92992 -92996 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94033 -94099 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -124928 -125125 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlNch.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlNch.pl deleted file mode 100644 index 59894b1b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlNch.pl +++ /dev/null @@ -1,50 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V36 -64976 -65008 -65534 -65536 -131070 -131072 -196606 -196608 -262142 -262144 -327678 -327680 -393214 -393216 -458750 -458752 -524286 -524288 -589822 -589824 -655358 -655360 -720894 -720896 -786430 -786432 -851966 -851968 -917502 -917504 -983038 -983040 -1048574 -1048576 -1114110 -1114112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlPat.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlPat.pl deleted file mode 100644 index 7316e86b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlPat.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -9 -14 -32 -33 -133 -134 -8206 -8208 -8232 -8234 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlPr2.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlPr2.pl deleted file mode 100644 index 5ea11902..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlPr2.pl +++ /dev/null @@ -1,40 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V26 -0 -256 -304 -305 -329 -330 -376 -377 -383 -384 -496 -497 -700 -701 -924 -925 -956 -957 -7830 -7835 -7838 -7839 -8490 -8492 -64256 -64263 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlPro.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlPro.pl deleted file mode 100644 index 10dfa312..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlPro.pl +++ /dev/null @@ -1,38 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V24 -0 -256 -304 -305 -329 -330 -376 -377 -383 -384 -496 -497 -924 -925 -956 -957 -7830 -7835 -7838 -7839 -8490 -8492 -64256 -64263 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlQuo.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlQuo.pl deleted file mode 100644 index 83cdf1c2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Perl/_PerlQuo.pl +++ /dev/null @@ -1,92 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V78 -0 -48 -58 -65 -91 -95 -96 -97 -123 -168 -169 -170 -171 -175 -176 -178 -182 -183 -187 -188 -191 -192 -215 -216 -247 -248 -847 -848 -1564 -1565 -4447 -4449 -5760 -5761 -6068 -6070 -6155 -6159 -8192 -8255 -8257 -8276 -8277 -8304 -8592 -9312 -9472 -10102 -10132 -11264 -11776 -11904 -12288 -12292 -12296 -12321 -12336 -12337 -12644 -12645 -64830 -64832 -65024 -65040 -65093 -65095 -65279 -65280 -65440 -65441 -65520 -65529 -113824 -113828 -119155 -119163 -917504 -921600 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/QMark/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/QMark/Y.pl deleted file mode 100644 index 6c02ca3e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/QMark/Y.pl +++ /dev/null @@ -1,40 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V26 -34 -35 -39 -40 -171 -172 -187 -188 -8216 -8224 -8249 -8251 -11842 -11843 -12300 -12304 -12317 -12320 -65089 -65093 -65282 -65283 -65287 -65288 -65378 -65380 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/AT.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/AT.pl deleted file mode 100644 index a4b9a938..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/AT.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -46 -47 -8228 -8229 -65106 -65107 -65294 -65295 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/CL.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/CL.pl deleted file mode 100644 index c6047450..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/CL.pl +++ /dev/null @@ -1,102 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V88 -34 -35 -39 -42 -91 -92 -93 -94 -123 -124 -125 -126 -171 -172 -187 -188 -3898 -3902 -5787 -5789 -8216 -8224 -8249 -8251 -8261 -8263 -8317 -8319 -8333 -8335 -8968 -8972 -9001 -9003 -10075 -10081 -10088 -10102 -10181 -10183 -10214 -10224 -10627 -10649 -10712 -10716 -10748 -10750 -11776 -11790 -11804 -11806 -11808 -11818 -11842 -11843 -12296 -12306 -12308 -12316 -12317 -12320 -64830 -64832 -65047 -65049 -65077 -65093 -65095 -65097 -65113 -65119 -65288 -65290 -65339 -65340 -65341 -65342 -65371 -65372 -65373 -65374 -65375 -65377 -65378 -65380 -128630 -128633 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/EX.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/EX.pl deleted file mode 100644 index 5b1edaae..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/EX.pl +++ /dev/null @@ -1,490 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V476 -768 -880 -1155 -1162 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1552 -1563 -1611 -1632 -1648 -1649 -1750 -1757 -1759 -1765 -1767 -1769 -1770 -1774 -1809 -1810 -1840 -1867 -1958 -1969 -2027 -2036 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2094 -2137 -2140 -2275 -2308 -2362 -2365 -2366 -2384 -2385 -2392 -2402 -2404 -2433 -2436 -2492 -2493 -2494 -2501 -2503 -2505 -2507 -2510 -2519 -2520 -2530 -2532 -2561 -2564 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2672 -2674 -2677 -2678 -2689 -2692 -2748 -2749 -2750 -2758 -2759 -2762 -2763 -2766 -2786 -2788 -2817 -2820 -2876 -2877 -2878 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2914 -2916 -2946 -2947 -3006 -3011 -3014 -3017 -3018 -3022 -3031 -3032 -3072 -3076 -3134 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3170 -3172 -3201 -3204 -3260 -3261 -3262 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3298 -3300 -3329 -3332 -3390 -3397 -3398 -3401 -3402 -3406 -3415 -3416 -3426 -3428 -3458 -3460 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3570 -3572 -3633 -3634 -3636 -3643 -3655 -3663 -3761 -3762 -3764 -3770 -3771 -3773 -3784 -3790 -3864 -3866 -3893 -3894 -3895 -3896 -3897 -3898 -3902 -3904 -3953 -3973 -3974 -3976 -3981 -3992 -3993 -4029 -4038 -4039 -4139 -4159 -4182 -4186 -4190 -4193 -4194 -4197 -4199 -4206 -4209 -4213 -4226 -4238 -4239 -4240 -4250 -4254 -4957 -4960 -5906 -5909 -5938 -5941 -5970 -5972 -6002 -6004 -6068 -6100 -6109 -6110 -6155 -6158 -6313 -6314 -6432 -6444 -6448 -6460 -6679 -6684 -6741 -6751 -6752 -6781 -6783 -6784 -6832 -6847 -6912 -6917 -6964 -6981 -7019 -7028 -7040 -7043 -7073 -7086 -7142 -7156 -7204 -7224 -7376 -7379 -7380 -7401 -7405 -7406 -7410 -7413 -7416 -7418 -7616 -7670 -7676 -7680 -8204 -8206 -8400 -8433 -11503 -11506 -11647 -11648 -11744 -11776 -12330 -12336 -12441 -12443 -42607 -42611 -42612 -42622 -42654 -42656 -42736 -42738 -43010 -43011 -43014 -43015 -43019 -43020 -43043 -43048 -43136 -43138 -43188 -43205 -43232 -43250 -43302 -43310 -43335 -43348 -43392 -43396 -43443 -43457 -43493 -43494 -43561 -43575 -43587 -43588 -43596 -43598 -43643 -43646 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43755 -43760 -43765 -43767 -44003 -44011 -44012 -44014 -64286 -64287 -65024 -65040 -65056 -65072 -65438 -65440 -66045 -66046 -66272 -66273 -66422 -66427 -68097 -68100 -68101 -68103 -68108 -68112 -68152 -68155 -68159 -68160 -68325 -68327 -69632 -69635 -69688 -69703 -69759 -69763 -69808 -69819 -69888 -69891 -69927 -69941 -70003 -70004 -70016 -70019 -70067 -70081 -70090 -70093 -70188 -70200 -70367 -70379 -70400 -70404 -70460 -70461 -70462 -70469 -70471 -70473 -70475 -70478 -70487 -70488 -70498 -70500 -70502 -70509 -70512 -70517 -70832 -70852 -71087 -71094 -71096 -71105 -71132 -71134 -71216 -71233 -71339 -71352 -71453 -71468 -92912 -92917 -92976 -92983 -94033 -94079 -94095 -94099 -113821 -113823 -119141 -119146 -119149 -119155 -119163 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -125136 -125143 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/FO.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/FO.pl deleted file mode 100644 index ab86cea2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/FO.pl +++ /dev/null @@ -1,50 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V36 -173 -174 -1536 -1542 -1564 -1565 -1757 -1758 -1807 -1808 -6158 -6159 -8203 -8204 -8206 -8208 -8234 -8239 -8288 -8293 -8294 -8304 -65279 -65280 -65529 -65532 -69821 -69822 -113824 -113828 -119155 -119163 -917505 -917506 -917536 -917632 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/LE.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/LE.pl deleted file mode 100644 index 5afdb356..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/LE.pl +++ /dev/null @@ -1,924 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V910 -443 -444 -448 -452 -660 -661 -697 -704 -710 -722 -748 -749 -750 -751 -884 -885 -1369 -1370 -1488 -1515 -1520 -1524 -1568 -1611 -1646 -1648 -1649 -1748 -1749 -1750 -1765 -1767 -1774 -1776 -1786 -1789 -1791 -1792 -1808 -1809 -1810 -1840 -1869 -1958 -1969 -1970 -1994 -2027 -2036 -2038 -2042 -2043 -2048 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2112 -2137 -2208 -2229 -2308 -2362 -2365 -2366 -2384 -2385 -2392 -2402 -2417 -2433 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2493 -2494 -2510 -2511 -2524 -2526 -2527 -2530 -2544 -2546 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2649 -2653 -2654 -2655 -2674 -2677 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2749 -2750 -2768 -2769 -2784 -2786 -2809 -2810 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2877 -2878 -2908 -2910 -2911 -2914 -2929 -2930 -2947 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3024 -3025 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3134 -3160 -3163 -3168 -3170 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3261 -3262 -3294 -3295 -3296 -3298 -3313 -3315 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3390 -3406 -3407 -3423 -3426 -3450 -3456 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3585 -3633 -3634 -3636 -3648 -3655 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3761 -3762 -3764 -3773 -3774 -3776 -3781 -3782 -3783 -3804 -3808 -3840 -3841 -3904 -3912 -3913 -3949 -3976 -3981 -4096 -4139 -4159 -4160 -4176 -4182 -4186 -4190 -4193 -4194 -4197 -4199 -4206 -4209 -4213 -4226 -4238 -4239 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4992 -5008 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5870 -5881 -5888 -5901 -5902 -5906 -5920 -5938 -5952 -5970 -5984 -5997 -5998 -6001 -6016 -6068 -6103 -6104 -6108 -6109 -6176 -6264 -6272 -6313 -6314 -6315 -6320 -6390 -6400 -6431 -6480 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6656 -6679 -6688 -6741 -6823 -6824 -6917 -6964 -6981 -6988 -7043 -7073 -7086 -7088 -7098 -7142 -7168 -7204 -7245 -7248 -7258 -7294 -7401 -7405 -7406 -7410 -7413 -7415 -8501 -8505 -8576 -8579 -8581 -8585 -11568 -11624 -11631 -11632 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11823 -11824 -12293 -12296 -12321 -12330 -12337 -12342 -12344 -12349 -12353 -12439 -12445 -12448 -12449 -12539 -12540 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13312 -19894 -19968 -40918 -40960 -42125 -42192 -42238 -42240 -42509 -42512 -42528 -42538 -42540 -42606 -42607 -42623 -42624 -42656 -42736 -42775 -42784 -42888 -42889 -42895 -42896 -42999 -43000 -43003 -43010 -43011 -43014 -43015 -43019 -43020 -43043 -43072 -43124 -43138 -43188 -43250 -43256 -43259 -43260 -43261 -43262 -43274 -43302 -43312 -43335 -43360 -43389 -43396 -43443 -43471 -43472 -43488 -43493 -43494 -43504 -43514 -43519 -43520 -43561 -43584 -43587 -43588 -43596 -43616 -43639 -43642 -43643 -43646 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43715 -43739 -43742 -43744 -43755 -43762 -43765 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43968 -44003 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64285 -64286 -64287 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65020 -65136 -65141 -65142 -65277 -65382 -65438 -65440 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65856 -65909 -66176 -66205 -66208 -66257 -66304 -66336 -66352 -66379 -66384 -66422 -66432 -66462 -66464 -66500 -66504 -66512 -66513 -66518 -66640 -66718 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68097 -68112 -68116 -68117 -68120 -68121 -68148 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68325 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -69635 -69688 -69763 -69808 -69840 -69865 -69891 -69927 -69968 -70003 -70006 -70007 -70019 -70067 -70081 -70085 -70106 -70107 -70108 -70109 -70144 -70162 -70163 -70188 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70367 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70461 -70462 -70480 -70481 -70493 -70498 -70784 -70832 -70852 -70854 -70855 -70856 -71040 -71087 -71128 -71132 -71168 -71216 -71236 -71237 -71296 -71339 -71424 -71450 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92880 -92910 -92928 -92976 -92992 -92996 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94033 -94099 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -124928 -125125 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/LO.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/LO.pl deleted file mode 100644 index 475e0cde..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/LO.pl +++ /dev/null @@ -1,1286 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1272 -97 -123 -170 -171 -181 -182 -186 -187 -223 -247 -248 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -378 -379 -380 -381 -382 -385 -387 -388 -389 -390 -392 -393 -396 -398 -402 -403 -405 -406 -409 -412 -414 -415 -417 -418 -419 -420 -421 -422 -424 -425 -426 -428 -429 -430 -432 -433 -436 -437 -438 -439 -441 -443 -445 -448 -454 -455 -457 -458 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -497 -499 -500 -501 -502 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -570 -572 -573 -575 -577 -578 -579 -583 -584 -585 -586 -587 -588 -589 -590 -591 -660 -661 -697 -704 -706 -736 -741 -881 -882 -883 -884 -887 -888 -890 -894 -912 -913 -940 -975 -976 -978 -981 -984 -985 -986 -987 -988 -989 -990 -991 -992 -993 -994 -995 -996 -997 -998 -999 -1000 -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1012 -1013 -1014 -1016 -1017 -1019 -1021 -1072 -1120 -1121 -1122 -1123 -1124 -1125 -1126 -1127 -1128 -1129 -1130 -1131 -1132 -1133 -1134 -1135 -1136 -1137 -1138 -1139 -1140 -1141 -1142 -1143 -1144 -1145 -1146 -1147 -1148 -1149 -1150 -1151 -1152 -1153 -1154 -1163 -1164 -1165 -1166 -1167 -1168 -1169 -1170 -1171 -1172 -1173 -1174 -1175 -1176 -1177 -1178 -1179 -1180 -1181 -1182 -1183 -1184 -1185 -1186 -1187 -1188 -1189 -1190 -1191 -1192 -1193 -1194 -1195 -1196 -1197 -1198 -1199 -1200 -1201 -1202 -1203 -1204 -1205 -1206 -1207 -1208 -1209 -1210 -1211 -1212 -1213 -1214 -1215 -1216 -1218 -1219 -1220 -1221 -1222 -1223 -1224 -1225 -1226 -1227 -1228 -1229 -1230 -1232 -1233 -1234 -1235 -1236 -1237 -1238 -1239 -1240 -1241 -1242 -1243 -1244 -1245 -1246 -1247 -1248 -1249 -1250 -1251 -1252 -1253 -1254 -1255 -1256 -1257 -1258 -1259 -1260 -1261 -1262 -1263 -1264 -1265 -1266 -1267 -1268 -1269 -1270 -1271 -1272 -1273 -1274 -1275 -1276 -1277 -1278 -1279 -1280 -1281 -1282 -1283 -1284 -1285 -1286 -1287 -1288 -1289 -1290 -1291 -1292 -1293 -1294 -1295 -1296 -1297 -1298 -1299 -1300 -1301 -1302 -1303 -1304 -1305 -1306 -1307 -1308 -1309 -1310 -1311 -1312 -1313 -1314 -1315 -1316 -1317 -1318 -1319 -1320 -1321 -1322 -1323 -1324 -1325 -1326 -1327 -1328 -1377 -1416 -5112 -5118 -7424 -7616 -7681 -7682 -7683 -7684 -7685 -7686 -7687 -7688 -7689 -7690 -7691 -7692 -7693 -7694 -7695 -7696 -7697 -7698 -7699 -7700 -7701 -7702 -7703 -7704 -7705 -7706 -7707 -7708 -7709 -7710 -7711 -7712 -7713 -7714 -7715 -7716 -7717 -7718 -7719 -7720 -7721 -7722 -7723 -7724 -7725 -7726 -7727 -7728 -7729 -7730 -7731 -7732 -7733 -7734 -7735 -7736 -7737 -7738 -7739 -7740 -7741 -7742 -7743 -7744 -7745 -7746 -7747 -7748 -7749 -7750 -7751 -7752 -7753 -7754 -7755 -7756 -7757 -7758 -7759 -7760 -7761 -7762 -7763 -7764 -7765 -7766 -7767 -7768 -7769 -7770 -7771 -7772 -7773 -7774 -7775 -7776 -7777 -7778 -7779 -7780 -7781 -7782 -7783 -7784 -7785 -7786 -7787 -7788 -7789 -7790 -7791 -7792 -7793 -7794 -7795 -7796 -7797 -7798 -7799 -7800 -7801 -7802 -7803 -7804 -7805 -7806 -7807 -7808 -7809 -7810 -7811 -7812 -7813 -7814 -7815 -7816 -7817 -7818 -7819 -7820 -7821 -7822 -7823 -7824 -7825 -7826 -7827 -7828 -7829 -7838 -7839 -7840 -7841 -7842 -7843 -7844 -7845 -7846 -7847 -7848 -7849 -7850 -7851 -7852 -7853 -7854 -7855 -7856 -7857 -7858 -7859 -7860 -7861 -7862 -7863 -7864 -7865 -7866 -7867 -7868 -7869 -7870 -7871 -7872 -7873 -7874 -7875 -7876 -7877 -7878 -7879 -7880 -7881 -7882 -7883 -7884 -7885 -7886 -7887 -7888 -7889 -7890 -7891 -7892 -7893 -7894 -7895 -7896 -7897 -7898 -7899 -7900 -7901 -7902 -7903 -7904 -7905 -7906 -7907 -7908 -7909 -7910 -7911 -7912 -7913 -7914 -7915 -7916 -7917 -7918 -7919 -7920 -7921 -7922 -7923 -7924 -7925 -7926 -7927 -7928 -7929 -7930 -7931 -7932 -7933 -7934 -7935 -7944 -7952 -7958 -7968 -7976 -7984 -7992 -8000 -8006 -8016 -8024 -8032 -8040 -8048 -8062 -8064 -8072 -8080 -8088 -8096 -8104 -8112 -8117 -8118 -8120 -8126 -8127 -8130 -8133 -8134 -8136 -8144 -8148 -8150 -8152 -8160 -8168 -8178 -8181 -8182 -8184 -8305 -8306 -8319 -8320 -8336 -8349 -8458 -8459 -8462 -8464 -8467 -8468 -8495 -8496 -8500 -8501 -8505 -8506 -8508 -8510 -8518 -8522 -8526 -8527 -8560 -8576 -8580 -8581 -9424 -9450 -11312 -11359 -11361 -11362 -11365 -11367 -11368 -11369 -11370 -11371 -11372 -11373 -11377 -11378 -11379 -11381 -11382 -11390 -11393 -11394 -11395 -11396 -11397 -11398 -11399 -11400 -11401 -11402 -11403 -11404 -11405 -11406 -11407 -11408 -11409 -11410 -11411 -11412 -11413 -11414 -11415 -11416 -11417 -11418 -11419 -11420 -11421 -11422 -11423 -11424 -11425 -11426 -11427 -11428 -11429 -11430 -11431 -11432 -11433 -11434 -11435 -11436 -11437 -11438 -11439 -11440 -11441 -11442 -11443 -11444 -11445 -11446 -11447 -11448 -11449 -11450 -11451 -11452 -11453 -11454 -11455 -11456 -11457 -11458 -11459 -11460 -11461 -11462 -11463 -11464 -11465 -11466 -11467 -11468 -11469 -11470 -11471 -11472 -11473 -11474 -11475 -11476 -11477 -11478 -11479 -11480 -11481 -11482 -11483 -11484 -11485 -11486 -11487 -11488 -11489 -11490 -11491 -11493 -11500 -11501 -11502 -11503 -11507 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -42561 -42562 -42563 -42564 -42565 -42566 -42567 -42568 -42569 -42570 -42571 -42572 -42573 -42574 -42575 -42576 -42577 -42578 -42579 -42580 -42581 -42582 -42583 -42584 -42585 -42586 -42587 -42588 -42589 -42590 -42591 -42592 -42593 -42594 -42595 -42596 -42597 -42598 -42599 -42600 -42601 -42602 -42603 -42604 -42605 -42606 -42625 -42626 -42627 -42628 -42629 -42630 -42631 -42632 -42633 -42634 -42635 -42636 -42637 -42638 -42639 -42640 -42641 -42642 -42643 -42644 -42645 -42646 -42647 -42648 -42649 -42650 -42651 -42654 -42787 -42788 -42789 -42790 -42791 -42792 -42793 -42794 -42795 -42796 -42797 -42798 -42799 -42802 -42803 -42804 -42805 -42806 -42807 -42808 -42809 -42810 -42811 -42812 -42813 -42814 -42815 -42816 -42817 -42818 -42819 -42820 -42821 -42822 -42823 -42824 -42825 -42826 -42827 -42828 -42829 -42830 -42831 -42832 -42833 -42834 -42835 -42836 -42837 -42838 -42839 -42840 -42841 -42842 -42843 -42844 -42845 -42846 -42847 -42848 -42849 -42850 -42851 -42852 -42853 -42854 -42855 -42856 -42857 -42858 -42859 -42860 -42861 -42862 -42863 -42873 -42874 -42875 -42876 -42877 -42879 -42880 -42881 -42882 -42883 -42884 -42885 -42886 -42887 -42888 -42892 -42893 -42894 -42895 -42897 -42898 -42899 -42902 -42903 -42904 -42905 -42906 -42907 -42908 -42909 -42910 -42911 -42912 -42913 -42914 -42915 -42916 -42917 -42918 -42919 -42920 -42921 -42922 -42933 -42934 -42935 -42936 -43000 -43003 -43824 -43867 -43868 -43878 -43888 -43968 -64256 -64263 -64275 -64280 -65345 -65371 -66600 -66640 -68800 -68851 -71872 -71904 -119834 -119860 -119886 -119893 -119894 -119912 -119938 -119964 -119990 -119994 -119995 -119996 -119997 -120004 -120005 -120016 -120042 -120068 -120094 -120120 -120146 -120172 -120198 -120224 -120250 -120276 -120302 -120328 -120354 -120380 -120406 -120432 -120458 -120486 -120514 -120539 -120540 -120546 -120572 -120597 -120598 -120604 -120630 -120655 -120656 -120662 -120688 -120713 -120714 -120720 -120746 -120771 -120772 -120778 -120779 -120780 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/NU.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/NU.pl deleted file mode 100644 index fa16812c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/NU.pl +++ /dev/null @@ -1,116 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V102 -48 -58 -1632 -1642 -1643 -1645 -1776 -1786 -1984 -1994 -2406 -2416 -2534 -2544 -2662 -2672 -2790 -2800 -2918 -2928 -3046 -3056 -3174 -3184 -3302 -3312 -3430 -3440 -3558 -3568 -3664 -3674 -3792 -3802 -3872 -3882 -4160 -4170 -4240 -4250 -6112 -6122 -6160 -6170 -6470 -6480 -6608 -6618 -6784 -6794 -6800 -6810 -6992 -7002 -7088 -7098 -7232 -7242 -7248 -7258 -42528 -42538 -43216 -43226 -43264 -43274 -43472 -43482 -43504 -43514 -43600 -43610 -44016 -44026 -66720 -66730 -69734 -69744 -69872 -69882 -69942 -69952 -70096 -70106 -70384 -70394 -70864 -70874 -71248 -71258 -71360 -71370 -71472 -71482 -71904 -71914 -92768 -92778 -93008 -93018 -120782 -120832 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/SC.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/SC.pl deleted file mode 100644 index eacbf765..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/SC.pl +++ /dev/null @@ -1,52 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V38 -44 -46 -58 -59 -1373 -1374 -1548 -1550 -2040 -2041 -6146 -6147 -6152 -6153 -8211 -8213 -12289 -12290 -65040 -65042 -65043 -65044 -65073 -65075 -65104 -65106 -65109 -65110 -65112 -65113 -65123 -65124 -65292 -65294 -65306 -65307 -65380 -65381 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/ST.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/ST.pl deleted file mode 100644 index 4544baef..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/ST.pl +++ /dev/null @@ -1,136 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V122 -33 -34 -63 -64 -1417 -1418 -1567 -1568 -1748 -1749 -1792 -1795 -2041 -2042 -2404 -2406 -4170 -4172 -4962 -4963 -4967 -4969 -5742 -5743 -5941 -5943 -6147 -6148 -6153 -6154 -6468 -6470 -6824 -6828 -7002 -7004 -7006 -7008 -7227 -7229 -7294 -7296 -8252 -8254 -8263 -8266 -11822 -11823 -11836 -11837 -12290 -12291 -42239 -42240 -42510 -42512 -42739 -42740 -42743 -42744 -43126 -43128 -43214 -43216 -43311 -43312 -43464 -43466 -43613 -43616 -43760 -43762 -44011 -44012 -65110 -65112 -65281 -65282 -65311 -65312 -65377 -65378 -68182 -68184 -69703 -69705 -69822 -69826 -69953 -69956 -70085 -70087 -70093 -70094 -70110 -70112 -70200 -70202 -70203 -70205 -70313 -70314 -71106 -71108 -71113 -71128 -71233 -71235 -71484 -71487 -92782 -92784 -92917 -92918 -92983 -92985 -92996 -92997 -113823 -113824 -121480 -121481 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/Sp.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/Sp.pl deleted file mode 100644 index e8a18a5d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/Sp.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -9 -10 -11 -13 -32 -33 -160 -161 -5760 -5761 -8192 -8203 -8239 -8240 -8287 -8288 -12288 -12289 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/UP.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/UP.pl deleted file mode 100644 index 832fead1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/UP.pl +++ /dev/null @@ -1,1280 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1266 -65 -91 -192 -215 -216 -223 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -378 -379 -380 -381 -382 -385 -387 -388 -389 -390 -392 -393 -396 -398 -402 -403 -405 -406 -409 -412 -414 -415 -417 -418 -419 -420 -421 -422 -424 -425 -426 -428 -429 -430 -432 -433 -436 -437 -438 -439 -441 -444 -445 -452 -454 -455 -457 -458 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -497 -499 -500 -501 -502 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -570 -572 -573 -575 -577 -578 -579 -583 -584 -585 -586 -587 -588 -589 -590 -591 -880 -881 -882 -883 -886 -887 -895 -896 -902 -903 -904 -907 -908 -909 -910 -912 -913 -930 -931 -940 -975 -976 -978 -981 -984 -985 -986 -987 -988 -989 -990 -991 -992 -993 -994 -995 -996 -997 -998 -999 -1000 -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1012 -1013 -1015 -1016 -1017 -1019 -1021 -1072 -1120 -1121 -1122 -1123 -1124 -1125 -1126 -1127 -1128 -1129 -1130 -1131 -1132 -1133 -1134 -1135 -1136 -1137 -1138 -1139 -1140 -1141 -1142 -1143 -1144 -1145 -1146 -1147 -1148 -1149 -1150 -1151 -1152 -1153 -1162 -1163 -1164 -1165 -1166 -1167 -1168 -1169 -1170 -1171 -1172 -1173 -1174 -1175 -1176 -1177 -1178 -1179 -1180 -1181 -1182 -1183 -1184 -1185 -1186 -1187 -1188 -1189 -1190 -1191 -1192 -1193 -1194 -1195 -1196 -1197 -1198 -1199 -1200 -1201 -1202 -1203 -1204 -1205 -1206 -1207 -1208 -1209 -1210 -1211 -1212 -1213 -1214 -1215 -1216 -1218 -1219 -1220 -1221 -1222 -1223 -1224 -1225 -1226 -1227 -1228 -1229 -1230 -1232 -1233 -1234 -1235 -1236 -1237 -1238 -1239 -1240 -1241 -1242 -1243 -1244 -1245 -1246 -1247 -1248 -1249 -1250 -1251 -1252 -1253 -1254 -1255 -1256 -1257 -1258 -1259 -1260 -1261 -1262 -1263 -1264 -1265 -1266 -1267 -1268 -1269 -1270 -1271 -1272 -1273 -1274 -1275 -1276 -1277 -1278 -1279 -1280 -1281 -1282 -1283 -1284 -1285 -1286 -1287 -1288 -1289 -1290 -1291 -1292 -1293 -1294 -1295 -1296 -1297 -1298 -1299 -1300 -1301 -1302 -1303 -1304 -1305 -1306 -1307 -1308 -1309 -1310 -1311 -1312 -1313 -1314 -1315 -1316 -1317 -1318 -1319 -1320 -1321 -1322 -1323 -1324 -1325 -1326 -1327 -1329 -1367 -4256 -4294 -4295 -4296 -4301 -4302 -5024 -5110 -7680 -7681 -7682 -7683 -7684 -7685 -7686 -7687 -7688 -7689 -7690 -7691 -7692 -7693 -7694 -7695 -7696 -7697 -7698 -7699 -7700 -7701 -7702 -7703 -7704 -7705 -7706 -7707 -7708 -7709 -7710 -7711 -7712 -7713 -7714 -7715 -7716 -7717 -7718 -7719 -7720 -7721 -7722 -7723 -7724 -7725 -7726 -7727 -7728 -7729 -7730 -7731 -7732 -7733 -7734 -7735 -7736 -7737 -7738 -7739 -7740 -7741 -7742 -7743 -7744 -7745 -7746 -7747 -7748 -7749 -7750 -7751 -7752 -7753 -7754 -7755 -7756 -7757 -7758 -7759 -7760 -7761 -7762 -7763 -7764 -7765 -7766 -7767 -7768 -7769 -7770 -7771 -7772 -7773 -7774 -7775 -7776 -7777 -7778 -7779 -7780 -7781 -7782 -7783 -7784 -7785 -7786 -7787 -7788 -7789 -7790 -7791 -7792 -7793 -7794 -7795 -7796 -7797 -7798 -7799 -7800 -7801 -7802 -7803 -7804 -7805 -7806 -7807 -7808 -7809 -7810 -7811 -7812 -7813 -7814 -7815 -7816 -7817 -7818 -7819 -7820 -7821 -7822 -7823 -7824 -7825 -7826 -7827 -7828 -7829 -7838 -7839 -7840 -7841 -7842 -7843 -7844 -7845 -7846 -7847 -7848 -7849 -7850 -7851 -7852 -7853 -7854 -7855 -7856 -7857 -7858 -7859 -7860 -7861 -7862 -7863 -7864 -7865 -7866 -7867 -7868 -7869 -7870 -7871 -7872 -7873 -7874 -7875 -7876 -7877 -7878 -7879 -7880 -7881 -7882 -7883 -7884 -7885 -7886 -7887 -7888 -7889 -7890 -7891 -7892 -7893 -7894 -7895 -7896 -7897 -7898 -7899 -7900 -7901 -7902 -7903 -7904 -7905 -7906 -7907 -7908 -7909 -7910 -7911 -7912 -7913 -7914 -7915 -7916 -7917 -7918 -7919 -7920 -7921 -7922 -7923 -7924 -7925 -7926 -7927 -7928 -7929 -7930 -7931 -7932 -7933 -7934 -7935 -7944 -7952 -7960 -7966 -7976 -7984 -7992 -8000 -8008 -8014 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8032 -8040 -8048 -8072 -8080 -8088 -8096 -8104 -8112 -8120 -8125 -8136 -8141 -8152 -8156 -8168 -8173 -8184 -8189 -8450 -8451 -8455 -8456 -8459 -8462 -8464 -8467 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8496 -8500 -8510 -8512 -8517 -8518 -8544 -8560 -8579 -8580 -9398 -9424 -11264 -11311 -11360 -11361 -11362 -11365 -11367 -11368 -11369 -11370 -11371 -11372 -11373 -11377 -11378 -11379 -11381 -11382 -11390 -11393 -11394 -11395 -11396 -11397 -11398 -11399 -11400 -11401 -11402 -11403 -11404 -11405 -11406 -11407 -11408 -11409 -11410 -11411 -11412 -11413 -11414 -11415 -11416 -11417 -11418 -11419 -11420 -11421 -11422 -11423 -11424 -11425 -11426 -11427 -11428 -11429 -11430 -11431 -11432 -11433 -11434 -11435 -11436 -11437 -11438 -11439 -11440 -11441 -11442 -11443 -11444 -11445 -11446 -11447 -11448 -11449 -11450 -11451 -11452 -11453 -11454 -11455 -11456 -11457 -11458 -11459 -11460 -11461 -11462 -11463 -11464 -11465 -11466 -11467 -11468 -11469 -11470 -11471 -11472 -11473 -11474 -11475 -11476 -11477 -11478 -11479 -11480 -11481 -11482 -11483 -11484 -11485 -11486 -11487 -11488 -11489 -11490 -11491 -11499 -11500 -11501 -11502 -11506 -11507 -42560 -42561 -42562 -42563 -42564 -42565 -42566 -42567 -42568 -42569 -42570 -42571 -42572 -42573 -42574 -42575 -42576 -42577 -42578 -42579 -42580 -42581 -42582 -42583 -42584 -42585 -42586 -42587 -42588 -42589 -42590 -42591 -42592 -42593 -42594 -42595 -42596 -42597 -42598 -42599 -42600 -42601 -42602 -42603 -42604 -42605 -42624 -42625 -42626 -42627 -42628 -42629 -42630 -42631 -42632 -42633 -42634 -42635 -42636 -42637 -42638 -42639 -42640 -42641 -42642 -42643 -42644 -42645 -42646 -42647 -42648 -42649 -42650 -42651 -42786 -42787 -42788 -42789 -42790 -42791 -42792 -42793 -42794 -42795 -42796 -42797 -42798 -42799 -42802 -42803 -42804 -42805 -42806 -42807 -42808 -42809 -42810 -42811 -42812 -42813 -42814 -42815 -42816 -42817 -42818 -42819 -42820 -42821 -42822 -42823 -42824 -42825 -42826 -42827 -42828 -42829 -42830 -42831 -42832 -42833 -42834 -42835 -42836 -42837 -42838 -42839 -42840 -42841 -42842 -42843 -42844 -42845 -42846 -42847 -42848 -42849 -42850 -42851 -42852 -42853 -42854 -42855 -42856 -42857 -42858 -42859 -42860 -42861 -42862 -42863 -42873 -42874 -42875 -42876 -42877 -42879 -42880 -42881 -42882 -42883 -42884 -42885 -42886 -42887 -42891 -42892 -42893 -42894 -42896 -42897 -42898 -42899 -42902 -42903 -42904 -42905 -42906 -42907 -42908 -42909 -42910 -42911 -42912 -42913 -42914 -42915 -42916 -42917 -42918 -42919 -42920 -42921 -42922 -42926 -42928 -42933 -42934 -42935 -65313 -65339 -66560 -66600 -68736 -68787 -71840 -71872 -119808 -119834 -119860 -119886 -119912 -119938 -119964 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119990 -120016 -120042 -120068 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120120 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120172 -120198 -120224 -120250 -120276 -120302 -120328 -120354 -120380 -120406 -120432 -120458 -120488 -120513 -120546 -120571 -120604 -120629 -120662 -120687 -120720 -120745 -120778 -120779 -127280 -127306 -127312 -127338 -127344 -127370 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/XX.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/XX.pl deleted file mode 100644 index f060e13b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SB/XX.pl +++ /dev/null @@ -1,1461 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1447 -0 -9 -14 -32 -35 -39 -42 -44 -47 -48 -59 -63 -64 -65 -92 -93 -94 -97 -124 -125 -126 -133 -134 -160 -161 -170 -172 -173 -174 -181 -182 -186 -188 -192 -215 -216 -247 -248 -706 -710 -722 -736 -741 -748 -749 -750 -751 -768 -885 -886 -888 -890 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1155 -1328 -1329 -1367 -1369 -1370 -1373 -1374 -1377 -1416 -1417 -1418 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1488 -1515 -1520 -1524 -1536 -1542 -1548 -1550 -1552 -1563 -1564 -1565 -1567 -1642 -1643 -1645 -1646 -1758 -1759 -1769 -1770 -1789 -1791 -1795 -1807 -1867 -1869 -1970 -1984 -2038 -2040 -2043 -2048 -2094 -2112 -2140 -2208 -2229 -2275 -2416 -2417 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2546 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2800 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2928 -2929 -2930 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3056 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3440 -3450 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3572 -3585 -3643 -3648 -3663 -3664 -3674 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3841 -3864 -3866 -3872 -3882 -3893 -3894 -3895 -3896 -3897 -3912 -3913 -3949 -3953 -3973 -3974 -3992 -3993 -4029 -4038 -4039 -4096 -4172 -4176 -4254 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4960 -4962 -4963 -4967 -4969 -4992 -5008 -5024 -5110 -5112 -5118 -5121 -5741 -5742 -5789 -5792 -5867 -5870 -5881 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6100 -6103 -6104 -6108 -6110 -6112 -6122 -6146 -6148 -6152 -6154 -6155 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6618 -6656 -6684 -6688 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6823 -6828 -6832 -6847 -6912 -6988 -6992 -7004 -7006 -7008 -7019 -7028 -7040 -7156 -7168 -7224 -7227 -7229 -7232 -7242 -7245 -7296 -7376 -7379 -7380 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8192 -8208 -8211 -8213 -8216 -8224 -8228 -8229 -8232 -8240 -8249 -8251 -8252 -8254 -8261 -8266 -8287 -8293 -8294 -8304 -8305 -8306 -8317 -8320 -8333 -8335 -8336 -8349 -8400 -8433 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8544 -8585 -8968 -8972 -9001 -9003 -9398 -9450 -10075 -10081 -10088 -10102 -10181 -10183 -10214 -10224 -10627 -10649 -10712 -10716 -10748 -10750 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11790 -11804 -11806 -11808 -11818 -11822 -11824 -11836 -11837 -11842 -11843 -12288 -12291 -12293 -12306 -12308 -12316 -12317 -12320 -12321 -12336 -12337 -12342 -12344 -12349 -12353 -12439 -12441 -12443 -12445 -12448 -12449 -12539 -12540 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13312 -19894 -19968 -40918 -40960 -42125 -42192 -42238 -42239 -42509 -42510 -42540 -42560 -42611 -42612 -42622 -42623 -42738 -42739 -42740 -42743 -42744 -42775 -42784 -42786 -42889 -42891 -42926 -42928 -42936 -42999 -43048 -43072 -43124 -43126 -43128 -43136 -43205 -43214 -43226 -43232 -43256 -43259 -43260 -43261 -43262 -43264 -43310 -43311 -43348 -43360 -43389 -43392 -43457 -43464 -43466 -43471 -43482 -43488 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43613 -43639 -43642 -43715 -43739 -43742 -43744 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43867 -43868 -43878 -43888 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64832 -64848 -64912 -64914 -64968 -65008 -65020 -65024 -65042 -65043 -65044 -65047 -65049 -65056 -65072 -65073 -65075 -65077 -65093 -65095 -65097 -65104 -65107 -65109 -65119 -65123 -65124 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65282 -65288 -65290 -65292 -65295 -65306 -65307 -65311 -65312 -65313 -65340 -65341 -65342 -65345 -65372 -65373 -65374 -65375 -65381 -65382 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65529 -65532 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65856 -65909 -66045 -66046 -66176 -66205 -66208 -66257 -66272 -66273 -66304 -66336 -66352 -66379 -66384 -66427 -66432 -66462 -66464 -66500 -66504 -66512 -66513 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68160 -68182 -68184 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68327 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -68736 -68787 -68800 -68851 -69632 -69705 -69734 -69744 -69759 -69819 -69821 -69826 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69952 -69953 -69956 -69968 -70004 -70006 -70007 -70016 -70087 -70090 -70094 -70096 -70107 -70108 -70109 -70110 -70112 -70144 -70162 -70163 -70202 -70203 -70205 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70314 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70854 -70855 -70856 -70864 -70874 -71040 -71094 -71096 -71105 -71106 -71108 -71113 -71134 -71168 -71235 -71236 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71482 -71484 -71487 -71840 -71914 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92782 -92784 -92880 -92910 -92912 -92918 -92928 -92985 -92992 -92997 -93008 -93018 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113821 -113828 -119141 -119146 -119149 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -120782 -120832 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121480 -121481 -121499 -121504 -121505 -121520 -124928 -125125 -125136 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -127280 -127306 -127312 -127338 -127344 -127370 -128630 -128633 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -917505 -917506 -917536 -917632 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SD/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SD/Y.pl deleted file mode 100644 index 30342320..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/SD/Y.pl +++ /dev/null @@ -1,76 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V62 -105 -107 -303 -304 -585 -586 -616 -617 -669 -670 -690 -691 -1011 -1012 -1110 -1111 -1112 -1113 -7522 -7523 -7574 -7575 -7588 -7589 -7592 -7593 -7725 -7726 -7883 -7884 -8305 -8306 -8520 -8522 -11388 -11389 -119842 -119844 -119894 -119896 -119946 -119948 -119998 -120000 -120050 -120052 -120102 -120104 -120154 -120156 -120206 -120208 -120258 -120260 -120310 -120312 -120362 -120364 -120414 -120416 -120466 -120468 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/STerm/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/STerm/Y.pl deleted file mode 100644 index a8d853e0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/STerm/Y.pl +++ /dev/null @@ -1,142 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V128 -33 -34 -46 -47 -63 -64 -1417 -1418 -1567 -1568 -1748 -1749 -1792 -1795 -2041 -2042 -2404 -2406 -4170 -4172 -4962 -4963 -4967 -4969 -5742 -5743 -5941 -5943 -6147 -6148 -6153 -6154 -6468 -6470 -6824 -6828 -7002 -7004 -7006 -7008 -7227 -7229 -7294 -7296 -8252 -8254 -8263 -8266 -11822 -11823 -11836 -11837 -12290 -12291 -42239 -42240 -42510 -42512 -42739 -42740 -42743 -42744 -43126 -43128 -43214 -43216 -43311 -43312 -43464 -43466 -43613 -43616 -43760 -43762 -44011 -44012 -65106 -65107 -65110 -65112 -65281 -65282 -65294 -65295 -65311 -65312 -65377 -65378 -68182 -68184 -69703 -69705 -69822 -69826 -69953 -69956 -70085 -70087 -70093 -70094 -70110 -70112 -70200 -70202 -70203 -70205 -70313 -70314 -71106 -71108 -71113 -71128 -71233 -71235 -71484 -71487 -92782 -92784 -92917 -92918 -92983 -92985 -92996 -92997 -113823 -113824 -121480 -121481 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Arab.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Arab.pl deleted file mode 100644 index 75572595..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Arab.pl +++ /dev/null @@ -1,122 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V108 -1536 -1541 -1542 -1548 -1549 -1563 -1566 -1567 -1568 -1600 -1601 -1611 -1622 -1648 -1649 -1757 -1758 -1792 -1872 -1920 -2208 -2229 -2275 -2304 -64336 -64450 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65022 -65136 -65141 -65142 -65277 -69216 -69247 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Armn.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Armn.pl deleted file mode 100644 index 4f28d91e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Armn.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -1329 -1367 -1369 -1376 -1377 -1416 -1418 -1419 -1421 -1424 -64275 -64280 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Beng.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Beng.pl deleted file mode 100644 index b6b053bc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Beng.pl +++ /dev/null @@ -1,42 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V28 -2432 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Cham.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Cham.pl deleted file mode 100644 index 76137706..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Cham.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43616 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Cprt.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Cprt.pl deleted file mode 100644 index 1f0f4ecf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Cprt.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67648 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Cyrl.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Cyrl.pl deleted file mode 100644 index 63c3a2ce..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Cyrl.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -1024 -1157 -1159 -1328 -7467 -7468 -7544 -7545 -11744 -11776 -42560 -42656 -65070 -65072 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Deva.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Deva.pl deleted file mode 100644 index 9907cc07..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Deva.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -2304 -2385 -2387 -2404 -2406 -2432 -43232 -43262 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Dupl.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Dupl.pl deleted file mode 100644 index 2f406552..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Dupl.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113820 -113824 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Ethi.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Ethi.pl deleted file mode 100644 index b5de3ad9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Ethi.pl +++ /dev/null @@ -1,78 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V64 -4608 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4989 -4992 -5018 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Geor.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Geor.pl deleted file mode 100644 index 418b3553..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Geor.pl +++ /dev/null @@ -1,30 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V16 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4352 -11520 -11558 -11559 -11560 -11565 -11566 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Gran.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Gran.pl deleted file mode 100644 index 530372a3..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Gran.pl +++ /dev/null @@ -1,44 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V30 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Grek.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Grek.pl deleted file mode 100644 index e5d7d132..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Grek.pl +++ /dev/null @@ -1,86 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V72 -880 -884 -885 -888 -890 -894 -895 -896 -900 -901 -902 -903 -904 -907 -908 -909 -910 -930 -931 -994 -1008 -1024 -7462 -7467 -7517 -7522 -7526 -7531 -7615 -7616 -7936 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8486 -8487 -43877 -43878 -65856 -65933 -65952 -65953 -119296 -119366 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Gujr.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Gujr.pl deleted file mode 100644 index aa6899e5..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Gujr.pl +++ /dev/null @@ -1,42 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V28 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2802 -2809 -2810 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Guru.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Guru.pl deleted file mode 100644 index 78cbf12c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Guru.pl +++ /dev/null @@ -1,46 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V32 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Han.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Han.pl deleted file mode 100644 index 6e24e783..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Han.pl +++ /dev/null @@ -1,46 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V32 -11904 -11930 -11931 -12020 -12032 -12246 -12293 -12294 -12295 -12296 -12321 -12330 -12344 -12348 -13312 -19894 -19968 -40918 -63744 -64110 -64112 -64218 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Hang.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Hang.pl deleted file mode 100644 index f351ed12..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Hang.pl +++ /dev/null @@ -1,42 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V28 -4352 -4608 -12334 -12336 -12593 -12687 -12800 -12831 -12896 -12927 -43360 -43389 -44032 -55204 -55216 -55239 -55243 -55292 -65440 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Hebr.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Hebr.pl deleted file mode 100644 index 6707e032..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Hebr.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -1425 -1480 -1488 -1515 -1520 -1525 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64336 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Hira.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Hira.pl deleted file mode 100644 index 10e1705d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Hira.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -12353 -12439 -12445 -12448 -110593 -110594 -127488 -127489 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Hmng.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Hmng.pl deleted file mode 100644 index f99eeee8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Hmng.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -92928 -92998 -93008 -93018 -93019 -93026 -93027 -93048 -93053 -93072 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Kana.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Kana.pl deleted file mode 100644 index 688c00f4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Kana.pl +++ /dev/null @@ -1,30 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V16 -12449 -12539 -12541 -12544 -12784 -12800 -13008 -13055 -13056 -13144 -65382 -65392 -65393 -65438 -110592 -110593 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Khar.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Khar.pl deleted file mode 100644 index 8969c11c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Khar.pl +++ /dev/null @@ -1,30 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V16 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Khmr.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Khmr.pl deleted file mode 100644 index c1199c8a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Khmr.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -6016 -6110 -6112 -6122 -6128 -6138 -6624 -6656 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Knda.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Knda.pl deleted file mode 100644 index 7f34013b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Knda.pl +++ /dev/null @@ -1,42 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V28 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Lana.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Lana.pl deleted file mode 100644 index 6bde5f79..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Lana.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -6688 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Lao.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Lao.pl deleted file mode 100644 index 0f56fae8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Lao.pl +++ /dev/null @@ -1,50 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V36 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Latn.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Latn.pl deleted file mode 100644 index 53e7f218..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Latn.pl +++ /dev/null @@ -1,76 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V62 -65 -91 -97 -123 -170 -171 -186 -187 -192 -215 -216 -247 -248 -697 -736 -741 -7424 -7462 -7468 -7517 -7522 -7526 -7531 -7544 -7545 -7615 -7680 -7936 -8305 -8306 -8319 -8320 -8336 -8349 -8490 -8492 -8498 -8499 -8526 -8527 -8544 -8585 -11360 -11392 -42786 -42888 -42891 -42926 -42928 -42936 -42999 -43008 -43824 -43867 -43868 -43877 -64256 -64263 -65313 -65339 -65345 -65371 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Limb.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Limb.pl deleted file mode 100644 index 2f7bcf79..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Limb.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -6400 -6431 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6480 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Linb.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Linb.pl deleted file mode 100644 index a5daf93e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Linb.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Mlym.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Mlym.pl deleted file mode 100644 index 3f578744..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Mlym.pl +++ /dev/null @@ -1,36 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V22 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3446 -3449 -3456 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Mong.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Mong.pl deleted file mode 100644 index 091ffbb6..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Mong.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -6144 -6146 -6148 -6149 -6150 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Mult.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Mult.pl deleted file mode 100644 index 0a34803d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Mult.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70314 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Orya.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Orya.pl deleted file mode 100644 index 78ed4b73..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Orya.pl +++ /dev/null @@ -1,42 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V28 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Sinh.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Sinh.pl deleted file mode 100644 index c9bcf776..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Sinh.pl +++ /dev/null @@ -1,40 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V26 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3573 -70113 -70133 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Talu.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Talu.pl deleted file mode 100644 index 8fb2afb5..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Talu.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6624 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Taml.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Taml.pl deleted file mode 100644 index 289e9b62..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Taml.pl +++ /dev/null @@ -1,46 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V32 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Telu.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Telu.pl deleted file mode 100644 index 30974f59..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Telu.pl +++ /dev/null @@ -1,40 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V26 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3192 -3200 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Tibt.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Tibt.pl deleted file mode 100644 index 36fe8523..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Tibt.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -3840 -3912 -3913 -3949 -3953 -3992 -3993 -4029 -4030 -4045 -4046 -4053 -4057 -4059 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Xsux.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Xsux.pl deleted file mode 100644 index 3148b29e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Xsux.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -73728 -74650 -74752 -74863 -74864 -74869 -74880 -75076 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Zinh.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Zinh.pl deleted file mode 100644 index ea066a3c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Zinh.pl +++ /dev/null @@ -1,68 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V54 -768 -880 -1157 -1159 -1611 -1622 -1648 -1649 -2385 -2387 -6832 -6847 -7376 -7379 -7380 -7393 -7394 -7401 -7405 -7406 -7412 -7413 -7416 -7418 -7616 -7670 -7676 -7680 -8204 -8206 -8400 -8433 -12330 -12334 -12441 -12443 -65024 -65040 -65056 -65070 -66045 -66046 -66272 -66273 -119143 -119146 -119163 -119171 -119173 -119180 -119210 -119214 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Zyyy.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Zyyy.pl deleted file mode 100644 index 661f814d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Zyyy.pl +++ /dev/null @@ -1,336 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V322 -0 -65 -91 -97 -123 -170 -171 -186 -187 -192 -215 -216 -247 -248 -697 -736 -741 -746 -748 -768 -884 -885 -894 -895 -901 -902 -903 -904 -1417 -1418 -1541 -1542 -1548 -1549 -1563 -1565 -1567 -1568 -1600 -1601 -1757 -1758 -2404 -2406 -3647 -3648 -4053 -4057 -4347 -4348 -5867 -5870 -5941 -5943 -6146 -6148 -6149 -6150 -7379 -7380 -7393 -7394 -7401 -7405 -7406 -7412 -7413 -7415 -8192 -8204 -8206 -8293 -8294 -8305 -8308 -8319 -8320 -8335 -8352 -8383 -8448 -8486 -8487 -8490 -8492 -8498 -8499 -8526 -8527 -8544 -8585 -8588 -8592 -9211 -9216 -9255 -9280 -9291 -9312 -10240 -10496 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11776 -11843 -12272 -12284 -12288 -12293 -12294 -12295 -12296 -12321 -12336 -12344 -12348 -12352 -12443 -12445 -12448 -12449 -12539 -12541 -12688 -12704 -12736 -12772 -12832 -12896 -12927 -13008 -13144 -13312 -19904 -19968 -42752 -42786 -42888 -42891 -43056 -43066 -43310 -43311 -43471 -43472 -43867 -43868 -64830 -64832 -65040 -65050 -65072 -65107 -65108 -65127 -65128 -65132 -65279 -65280 -65281 -65313 -65339 -65345 -65371 -65382 -65392 -65393 -65438 -65440 -65504 -65511 -65512 -65519 -65529 -65534 -65792 -65795 -65799 -65844 -65847 -65856 -65936 -65948 -66000 -66045 -66273 -66300 -113824 -113828 -118784 -119030 -119040 -119079 -119081 -119143 -119146 -119163 -119171 -119173 -119180 -119210 -119214 -119273 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127232 -127245 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127488 -127489 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -917505 -917506 -917536 -917632 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Zzzz.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Zzzz.pl deleted file mode 100644 index 57233ec4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Sc/Zzzz.pl +++ /dev/null @@ -1,1235 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1221 -888 -890 -896 -900 -907 -908 -909 -910 -930 -931 -1328 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1421 -1424 -1425 -1480 -1488 -1515 -1520 -1525 -1536 -1565 -1566 -1806 -1807 -1867 -1869 -1970 -1984 -2043 -2048 -2094 -2096 -2111 -2112 -2140 -2142 -2143 -2208 -2229 -2275 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2802 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3192 -3200 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3446 -3449 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3573 -3585 -3643 -3647 -3676 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3912 -3913 -3949 -3953 -3992 -3993 -4029 -4030 -4045 -4046 -4059 -4096 -4294 -4295 -4296 -4301 -4302 -4304 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4989 -4992 -5018 -5024 -5110 -5112 -5118 -5120 -5789 -5792 -5881 -5888 -5901 -5902 -5909 -5920 -5943 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6110 -6112 -6122 -6128 -6138 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6622 -6684 -6686 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6816 -6830 -6832 -6847 -6912 -6988 -6992 -7037 -7040 -7156 -7164 -7224 -7227 -7242 -7245 -7296 -7360 -7368 -7376 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8192 -8293 -8294 -8306 -8308 -8335 -8336 -8349 -8352 -8383 -8400 -8433 -8448 -8588 -8592 -9211 -9216 -9255 -9280 -9291 -9312 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11264 -11311 -11312 -11359 -11360 -11508 -11513 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11633 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11843 -11904 -11930 -11931 -12020 -12032 -12246 -12272 -12284 -12288 -12352 -12353 -12439 -12441 -12544 -12549 -12590 -12593 -12687 -12688 -12731 -12736 -12772 -12784 -12831 -12832 -13055 -13056 -19894 -19904 -40918 -40960 -42125 -42128 -42183 -42192 -42540 -42560 -42744 -42752 -42926 -42928 -42936 -42999 -43052 -43056 -43066 -43072 -43128 -43136 -43205 -43214 -43226 -43232 -43262 -43264 -43348 -43359 -43389 -43392 -43470 -43471 -43482 -43486 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43612 -43715 -43739 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43878 -43888 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64450 -64467 -64832 -64848 -64912 -64914 -64968 -65008 -65022 -65024 -65050 -65056 -65107 -65108 -65127 -65128 -65132 -65136 -65141 -65142 -65277 -65279 -65280 -65281 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65504 -65511 -65512 -65519 -65529 -65534 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65933 -65936 -65948 -65952 -65953 -66000 -66046 -66176 -66205 -66208 -66257 -66272 -66300 -66304 -66340 -66352 -66379 -66384 -66427 -66432 -66462 -66463 -66500 -66504 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -66927 -66928 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67671 -67743 -67751 -67760 -67808 -67827 -67828 -67830 -67835 -67868 -67871 -67898 -67903 -67904 -67968 -68024 -68028 -68048 -68050 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68168 -68176 -68185 -68192 -68256 -68288 -68327 -68331 -68343 -68352 -68406 -68409 -68438 -68440 -68467 -68472 -68498 -68505 -68509 -68521 -68528 -68608 -68681 -68736 -68787 -68800 -68851 -68858 -68864 -69216 -69247 -69632 -69710 -69714 -69744 -69759 -69826 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69956 -69968 -70007 -70016 -70094 -70096 -70112 -70113 -70133 -70144 -70162 -70163 -70206 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70314 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70856 -70864 -70874 -71040 -71094 -71096 -71134 -71168 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71488 -71840 -71923 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74864 -74869 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92782 -92784 -92880 -92910 -92912 -92918 -92928 -92998 -93008 -93018 -93019 -93026 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113820 -113828 -118784 -119030 -119040 -119079 -119081 -119273 -119296 -119366 -119552 -119639 -119648 -119666 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -121484 -121499 -121504 -121505 -121520 -124928 -125125 -125127 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127232 -127245 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -917505 -917506 -917536 -917632 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Arab.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Arab.pl deleted file mode 100644 index 4379f19f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Arab.pl +++ /dev/null @@ -1,114 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V100 -1536 -1541 -1542 -1564 -1566 -1757 -1758 -1792 -1872 -1920 -2208 -2229 -2275 -2304 -64336 -64450 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65022 -65136 -65141 -65142 -65277 -66272 -66300 -69216 -69247 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -126704 -126706 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Armn.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Armn.pl deleted file mode 100644 index fe8adaac..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Armn.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -1329 -1367 -1369 -1376 -1377 -1416 -1417 -1419 -1421 -1424 -64275 -64280 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Beng.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Beng.pl deleted file mode 100644 index 7734ce37..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Beng.pl +++ /dev/null @@ -1,46 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V32 -2385 -2387 -2404 -2406 -2432 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2556 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Bopo.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Bopo.pl deleted file mode 100644 index 1d09efaf..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Bopo.pl +++ /dev/null @@ -1,54 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V40 -746 -748 -12289 -12292 -12296 -12306 -12307 -12320 -12330 -12334 -12336 -12337 -12343 -12344 -12350 -12352 -12539 -12540 -12549 -12590 -12704 -12731 -12736 -12772 -12832 -12868 -12928 -12977 -12992 -13004 -13144 -13169 -13179 -13184 -13280 -13311 -65093 -65095 -65377 -65382 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Cakm.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Cakm.pl deleted file mode 100644 index 91f9df9c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Cakm.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -2534 -2544 -4160 -4170 -69888 -69941 -69942 -69956 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Copt.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Copt.pl deleted file mode 100644 index ffb1abc1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Copt.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -994 -1008 -11392 -11508 -11513 -11520 -66272 -66300 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Cprt.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Cprt.pl deleted file mode 100644 index 4490f79b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Cprt.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -65792 -65795 -65799 -65844 -65847 -65856 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67648 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Cyrl.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Cyrl.pl deleted file mode 100644 index 732c019e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Cyrl.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -1024 -1328 -7467 -7468 -7544 -7545 -11744 -11776 -42560 -42656 -65070 -65072 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Deva.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Deva.pl deleted file mode 100644 index 450161b8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Deva.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -2304 -2432 -7376 -7415 -7416 -7418 -8432 -8433 -43056 -43066 -43232 -43262 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Dupl.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Dupl.pl deleted file mode 100644 index 1c347648..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Dupl.pl +++ /dev/null @@ -1,24 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V10 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113820 -113828 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Geor.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Geor.pl deleted file mode 100644 index b3057d2d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Geor.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -1417 -1418 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4352 -11520 -11558 -11559 -11560 -11565 -11566 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Glag.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Glag.pl deleted file mode 100644 index 33dbaf2b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Glag.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -1159 -1160 -11264 -11311 -11312 -11359 -42607 -42608 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Gran.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Gran.pl deleted file mode 100644 index 71711460..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Gran.pl +++ /dev/null @@ -1,64 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V50 -2385 -2387 -2404 -2406 -2986 -2987 -2997 -2998 -3046 -3059 -7376 -7377 -7378 -7380 -7410 -7413 -7416 -7418 -8432 -8433 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Grek.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Grek.pl deleted file mode 100644 index 085d973a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Grek.pl +++ /dev/null @@ -1,90 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V76 -834 -835 -837 -838 -880 -884 -885 -888 -890 -894 -895 -896 -900 -901 -902 -903 -904 -907 -908 -909 -910 -930 -931 -994 -1008 -1024 -7462 -7467 -7517 -7522 -7526 -7531 -7615 -7618 -7936 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8133 -8134 -8148 -8150 -8156 -8157 -8176 -8178 -8181 -8182 -8191 -8486 -8487 -43877 -43878 -65856 -65933 -65952 -65953 -119296 -119366 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Gujr.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Gujr.pl deleted file mode 100644 index 8fe8939d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Gujr.pl +++ /dev/null @@ -1,48 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V34 -2385 -2387 -2404 -2406 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2802 -2809 -2810 -43056 -43066 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Guru.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Guru.pl deleted file mode 100644 index 2f50527e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Guru.pl +++ /dev/null @@ -1,52 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V38 -2385 -2387 -2404 -2406 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -43056 -43066 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Han.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Han.pl deleted file mode 100644 index 2105af9d..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Han.pl +++ /dev/null @@ -1,74 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V60 -11904 -11930 -11931 -12020 -12032 -12246 -12289 -12292 -12293 -12306 -12307 -12320 -12321 -12334 -12336 -12337 -12343 -12352 -12539 -12540 -12688 -12704 -12736 -12772 -12832 -12868 -12928 -12977 -12992 -13004 -13144 -13169 -13179 -13184 -13280 -13311 -13312 -19894 -19968 -40918 -63744 -64110 -64112 -64218 -65093 -65095 -65377 -65382 -119648 -119666 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Hang.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Hang.pl deleted file mode 100644 index accab266..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Hang.pl +++ /dev/null @@ -1,72 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V58 -4352 -4608 -12289 -12292 -12296 -12306 -12307 -12320 -12334 -12337 -12343 -12344 -12350 -12352 -12539 -12540 -12593 -12687 -12736 -12772 -12800 -12831 -12832 -12868 -12896 -12927 -12928 -12977 -12992 -13004 -13144 -13169 -13179 -13184 -13280 -13311 -43360 -43389 -44032 -55204 -55216 -55239 -55243 -55292 -65093 -65095 -65377 -65382 -65440 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Hira.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Hira.pl deleted file mode 100644 index abf59f75..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Hira.pl +++ /dev/null @@ -1,62 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V48 -12289 -12292 -12294 -12295 -12296 -12306 -12307 -12320 -12336 -12342 -12343 -12344 -12348 -12352 -12353 -12439 -12441 -12449 -12539 -12541 -12688 -12704 -12736 -12772 -12832 -12868 -12928 -12977 -12992 -13004 -13144 -13169 -13179 -13184 -13280 -13311 -65093 -65095 -65377 -65382 -65392 -65393 -65438 -65440 -110593 -110594 -127488 -127489 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Kana.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Kana.pl deleted file mode 100644 index c3b3e968..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Kana.pl +++ /dev/null @@ -1,58 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V44 -12289 -12292 -12294 -12295 -12296 -12306 -12307 -12320 -12336 -12342 -12343 -12344 -12348 -12352 -12441 -12445 -12448 -12544 -12688 -12704 -12736 -12772 -12784 -12800 -12832 -12868 -12928 -12977 -12992 -13004 -13008 -13055 -13056 -13169 -13179 -13184 -13280 -13311 -65093 -65095 -65377 -65440 -110592 -110593 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Knda.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Knda.pl deleted file mode 100644 index d9f825eb..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Knda.pl +++ /dev/null @@ -1,50 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V36 -2385 -2387 -2404 -2406 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -7386 -7387 -7413 -7414 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Latn.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Latn.pl deleted file mode 100644 index 1107808f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Latn.pl +++ /dev/null @@ -1,86 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V72 -65 -91 -97 -123 -170 -171 -186 -187 -192 -215 -216 -247 -248 -697 -736 -741 -867 -880 -1157 -1159 -2385 -2387 -7424 -7462 -7468 -7517 -7522 -7526 -7531 -7544 -7545 -7615 -7680 -7936 -8305 -8306 -8319 -8320 -8336 -8349 -8432 -8433 -8490 -8492 -8498 -8499 -8526 -8527 -8544 -8585 -11360 -11392 -42786 -42888 -42891 -42926 -42928 -42936 -42999 -43008 -43310 -43311 -43824 -43867 -43868 -43877 -64256 -64263 -65313 -65339 -65345 -65371 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Limb.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Limb.pl deleted file mode 100644 index 2e0b2d6f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Limb.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -2405 -2406 -6400 -6431 -6432 -6444 -6448 -6460 -6464 -6465 -6468 -6480 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Linb.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Linb.pl deleted file mode 100644 index 12bdc9a1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Linb.pl +++ /dev/null @@ -1,34 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V20 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65792 -65795 -65799 -65844 -65847 -65856 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Mlym.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Mlym.pl deleted file mode 100644 index f0d04883..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Mlym.pl +++ /dev/null @@ -1,42 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V28 -2385 -2387 -2404 -2406 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3446 -3449 -3456 -7386 -7387 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Mong.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Mong.pl deleted file mode 100644 index 578f7eb5..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Mong.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -6144 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Mult.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Mult.pl deleted file mode 100644 index 5badb944..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Mult.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -2662 -2672 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70314 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Mymr.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Mymr.pl deleted file mode 100644 index 7e001c2b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Mymr.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -4096 -4256 -43310 -43311 -43488 -43519 -43616 -43648 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Orya.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Orya.pl deleted file mode 100644 index c527402a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Orya.pl +++ /dev/null @@ -1,46 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V32 -2385 -2387 -2404 -2406 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2936 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Phlp.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Phlp.pl deleted file mode 100644 index 0597ba70..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Phlp.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -1600 -1601 -68480 -68498 -68505 -68509 -68521 -68528 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Shrd.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Shrd.pl deleted file mode 100644 index b5ce60f0..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Shrd.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -2385 -2386 -7383 -7384 -7385 -7386 -7388 -7390 -7392 -7393 -70016 -70094 -70096 -70112 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Sind.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Sind.pl deleted file mode 100644 index 6f6aa2da..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Sind.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -2404 -2406 -43056 -43066 -70320 -70379 -70384 -70394 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Sinh.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Sinh.pl deleted file mode 100644 index a4236f5e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Sinh.pl +++ /dev/null @@ -1,42 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V28 -2404 -2406 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3573 -70113 -70133 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Syrc.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Syrc.pl deleted file mode 100644 index 88ae2047..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Syrc.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -1548 -1549 -1563 -1564 -1567 -1568 -1600 -1601 -1611 -1622 -1648 -1649 -1792 -1806 -1807 -1867 -1869 -1872 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Tagb.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Tagb.pl deleted file mode 100644 index 06d43587..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Tagb.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -5941 -5943 -5984 -5997 -5998 -6001 -6002 -6004 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Takr.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Takr.pl deleted file mode 100644 index 6ea5d2ce..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Takr.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -2404 -2406 -43056 -43066 -71296 -71352 -71360 -71370 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Taml.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Taml.pl deleted file mode 100644 index be1db023..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Taml.pl +++ /dev/null @@ -1,54 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V40 -2385 -2387 -2404 -2406 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3067 -7386 -7387 -43251 -43252 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Telu.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Telu.pl deleted file mode 100644 index 65aabdaa..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Telu.pl +++ /dev/null @@ -1,46 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V32 -2385 -2387 -2404 -2406 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3192 -3200 -7386 -7387 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Thaa.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Thaa.pl deleted file mode 100644 index 71e9ecc8..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Thaa.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -1548 -1549 -1563 -1564 -1567 -1568 -1632 -1642 -1920 -1970 -65010 -65011 -65021 -65022 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Tirh.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Tirh.pl deleted file mode 100644 index 31344c4f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Tirh.pl +++ /dev/null @@ -1,22 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V8 -2404 -2406 -43056 -43066 -70784 -70856 -70864 -70874 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Yi.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Yi.pl deleted file mode 100644 index f2f4c11c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Yi.pl +++ /dev/null @@ -1,28 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V14 -12289 -12291 -12296 -12306 -12308 -12316 -12539 -12540 -40960 -42125 -42128 -42183 -65377 -65382 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Zinh.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Zinh.pl deleted file mode 100644 index 9b46d0d7..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Zinh.pl +++ /dev/null @@ -1,46 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V32 -768 -834 -835 -837 -838 -867 -6832 -6847 -7618 -7670 -7676 -7680 -8204 -8206 -8400 -8432 -65024 -65040 -65056 -65070 -66045 -66046 -119143 -119146 -119163 -119171 -119173 -119180 -119210 -119214 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Zyyy.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Zyyy.pl deleted file mode 100644 index 5d39e62b..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Scx/Zyyy.pl +++ /dev/null @@ -1,288 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V274 -0 -65 -91 -97 -123 -170 -171 -186 -187 -192 -215 -216 -247 -248 -697 -736 -741 -746 -748 -768 -884 -885 -894 -895 -901 -902 -903 -904 -1541 -1542 -1564 -1565 -1757 -1758 -3647 -3648 -4053 -4057 -4347 -4348 -5867 -5870 -8192 -8204 -8206 -8293 -8294 -8305 -8308 -8319 -8320 -8335 -8352 -8383 -8448 -8486 -8487 -8490 -8492 -8498 -8499 -8526 -8527 -8544 -8585 -8588 -8592 -9211 -9216 -9255 -9280 -9291 -9312 -10240 -10496 -11124 -11126 -11158 -11160 -11194 -11197 -11209 -11210 -11218 -11244 -11248 -11776 -11843 -12272 -12284 -12288 -12289 -12292 -12293 -12306 -12307 -12320 -12321 -12342 -12343 -12868 -12896 -12927 -12928 -12977 -12992 -13004 -13008 -13169 -13179 -13184 -13280 -13311 -13312 -19904 -19968 -42752 -42786 -42888 -42891 -43867 -43868 -64830 -64832 -65040 -65050 -65072 -65093 -65095 -65107 -65108 -65127 -65128 -65132 -65279 -65280 -65281 -65313 -65339 -65345 -65371 -65377 -65504 -65511 -65512 -65519 -65529 -65534 -65936 -65948 -66000 -66045 -118784 -119030 -119040 -119079 -119081 -119143 -119146 -119163 -119171 -119173 -119180 -119210 -119214 -119273 -119552 -119639 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120780 -120782 -120832 -126976 -127020 -127024 -127124 -127136 -127151 -127153 -127168 -127169 -127184 -127185 -127222 -127232 -127245 -127248 -127279 -127280 -127340 -127344 -127387 -127462 -127488 -127489 -127491 -127504 -127547 -127552 -127561 -127568 -127570 -127744 -128378 -128379 -128420 -128421 -128721 -128736 -128749 -128752 -128756 -128768 -128884 -128896 -128981 -129024 -129036 -129040 -129096 -129104 -129114 -129120 -129160 -129168 -129198 -129296 -129305 -129408 -129413 -129472 -129473 -917505 -917506 -917536 -917632 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Term/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Term/Y.pl deleted file mode 100644 index 2e75fe36..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Term/Y.pl +++ /dev/null @@ -1,194 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V180 -33 -34 -44 -45 -46 -47 -58 -60 -63 -64 -894 -895 -903 -904 -1417 -1418 -1475 -1476 -1548 -1549 -1563 -1564 -1567 -1568 -1748 -1749 -1792 -1803 -1804 -1805 -2040 -2042 -2096 -2111 -2142 -2143 -2404 -2406 -3674 -3676 -3848 -3849 -3853 -3859 -4170 -4172 -4961 -4969 -5741 -5743 -5867 -5870 -5941 -5943 -6100 -6103 -6106 -6107 -6146 -6150 -6152 -6154 -6468 -6470 -6824 -6828 -7002 -7004 -7005 -7008 -7227 -7232 -7294 -7296 -8252 -8254 -8263 -8266 -11822 -11823 -11836 -11837 -11841 -11842 -12289 -12291 -42238 -42240 -42509 -42512 -42739 -42744 -43126 -43128 -43214 -43216 -43311 -43312 -43463 -43466 -43613 -43616 -43743 -43744 -43760 -43762 -44011 -44012 -65104 -65107 -65108 -65112 -65281 -65282 -65292 -65293 -65294 -65295 -65306 -65308 -65311 -65312 -65377 -65378 -65380 -65381 -66463 -66464 -66512 -66513 -67671 -67672 -67871 -67872 -68182 -68184 -68336 -68342 -68410 -68416 -68505 -68509 -69703 -69710 -69822 -69826 -69953 -69956 -70085 -70087 -70093 -70094 -70110 -70112 -70200 -70205 -70313 -70314 -71106 -71110 -71113 -71128 -71233 -71235 -71484 -71487 -74864 -74869 -92782 -92784 -92917 -92918 -92983 -92986 -92996 -92997 -113823 -113824 -121479 -121483 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/UIdeo/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/UIdeo/Y.pl deleted file mode 100644 index 9a6394d4..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/UIdeo/Y.pl +++ /dev/null @@ -1,40 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V26 -13312 -19894 -19968 -40918 -64014 -64016 -64017 -64018 -64019 -64021 -64031 -64032 -64033 -64034 -64035 -64037 -64039 -64042 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Upper/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Upper/Y.pl deleted file mode 100644 index f62ed13e..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/Upper/Y.pl +++ /dev/null @@ -1,1274 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1260 -65 -91 -192 -215 -216 -223 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -378 -379 -380 -381 -382 -385 -387 -388 -389 -390 -392 -393 -396 -398 -402 -403 -405 -406 -409 -412 -414 -415 -417 -418 -419 -420 -421 -422 -424 -425 -426 -428 -429 -430 -432 -433 -436 -437 -438 -439 -441 -444 -445 -452 -453 -455 -456 -458 -459 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -497 -498 -500 -501 -502 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -570 -572 -573 -575 -577 -578 -579 -583 -584 -585 -586 -587 -588 -589 -590 -591 -880 -881 -882 -883 -886 -887 -895 -896 -902 -903 -904 -907 -908 -909 -910 -912 -913 -930 -931 -940 -975 -976 -978 -981 -984 -985 -986 -987 -988 -989 -990 -991 -992 -993 -994 -995 -996 -997 -998 -999 -1000 -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1012 -1013 -1015 -1016 -1017 -1019 -1021 -1072 -1120 -1121 -1122 -1123 -1124 -1125 -1126 -1127 -1128 -1129 -1130 -1131 -1132 -1133 -1134 -1135 -1136 -1137 -1138 -1139 -1140 -1141 -1142 -1143 -1144 -1145 -1146 -1147 -1148 -1149 -1150 -1151 -1152 -1153 -1162 -1163 -1164 -1165 -1166 -1167 -1168 -1169 -1170 -1171 -1172 -1173 -1174 -1175 -1176 -1177 -1178 -1179 -1180 -1181 -1182 -1183 -1184 -1185 -1186 -1187 -1188 -1189 -1190 -1191 -1192 -1193 -1194 -1195 -1196 -1197 -1198 -1199 -1200 -1201 -1202 -1203 -1204 -1205 -1206 -1207 -1208 -1209 -1210 -1211 -1212 -1213 -1214 -1215 -1216 -1218 -1219 -1220 -1221 -1222 -1223 -1224 -1225 -1226 -1227 -1228 -1229 -1230 -1232 -1233 -1234 -1235 -1236 -1237 -1238 -1239 -1240 -1241 -1242 -1243 -1244 -1245 -1246 -1247 -1248 -1249 -1250 -1251 -1252 -1253 -1254 -1255 -1256 -1257 -1258 -1259 -1260 -1261 -1262 -1263 -1264 -1265 -1266 -1267 -1268 -1269 -1270 -1271 -1272 -1273 -1274 -1275 -1276 -1277 -1278 -1279 -1280 -1281 -1282 -1283 -1284 -1285 -1286 -1287 -1288 -1289 -1290 -1291 -1292 -1293 -1294 -1295 -1296 -1297 -1298 -1299 -1300 -1301 -1302 -1303 -1304 -1305 -1306 -1307 -1308 -1309 -1310 -1311 -1312 -1313 -1314 -1315 -1316 -1317 -1318 -1319 -1320 -1321 -1322 -1323 -1324 -1325 -1326 -1327 -1329 -1367 -4256 -4294 -4295 -4296 -4301 -4302 -5024 -5110 -7680 -7681 -7682 -7683 -7684 -7685 -7686 -7687 -7688 -7689 -7690 -7691 -7692 -7693 -7694 -7695 -7696 -7697 -7698 -7699 -7700 -7701 -7702 -7703 -7704 -7705 -7706 -7707 -7708 -7709 -7710 -7711 -7712 -7713 -7714 -7715 -7716 -7717 -7718 -7719 -7720 -7721 -7722 -7723 -7724 -7725 -7726 -7727 -7728 -7729 -7730 -7731 -7732 -7733 -7734 -7735 -7736 -7737 -7738 -7739 -7740 -7741 -7742 -7743 -7744 -7745 -7746 -7747 -7748 -7749 -7750 -7751 -7752 -7753 -7754 -7755 -7756 -7757 -7758 -7759 -7760 -7761 -7762 -7763 -7764 -7765 -7766 -7767 -7768 -7769 -7770 -7771 -7772 -7773 -7774 -7775 -7776 -7777 -7778 -7779 -7780 -7781 -7782 -7783 -7784 -7785 -7786 -7787 -7788 -7789 -7790 -7791 -7792 -7793 -7794 -7795 -7796 -7797 -7798 -7799 -7800 -7801 -7802 -7803 -7804 -7805 -7806 -7807 -7808 -7809 -7810 -7811 -7812 -7813 -7814 -7815 -7816 -7817 -7818 -7819 -7820 -7821 -7822 -7823 -7824 -7825 -7826 -7827 -7828 -7829 -7838 -7839 -7840 -7841 -7842 -7843 -7844 -7845 -7846 -7847 -7848 -7849 -7850 -7851 -7852 -7853 -7854 -7855 -7856 -7857 -7858 -7859 -7860 -7861 -7862 -7863 -7864 -7865 -7866 -7867 -7868 -7869 -7870 -7871 -7872 -7873 -7874 -7875 -7876 -7877 -7878 -7879 -7880 -7881 -7882 -7883 -7884 -7885 -7886 -7887 -7888 -7889 -7890 -7891 -7892 -7893 -7894 -7895 -7896 -7897 -7898 -7899 -7900 -7901 -7902 -7903 -7904 -7905 -7906 -7907 -7908 -7909 -7910 -7911 -7912 -7913 -7914 -7915 -7916 -7917 -7918 -7919 -7920 -7921 -7922 -7923 -7924 -7925 -7926 -7927 -7928 -7929 -7930 -7931 -7932 -7933 -7934 -7935 -7944 -7952 -7960 -7966 -7976 -7984 -7992 -8000 -8008 -8014 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8032 -8040 -8048 -8120 -8124 -8136 -8140 -8152 -8156 -8168 -8173 -8184 -8188 -8450 -8451 -8455 -8456 -8459 -8462 -8464 -8467 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8496 -8500 -8510 -8512 -8517 -8518 -8544 -8560 -8579 -8580 -9398 -9424 -11264 -11311 -11360 -11361 -11362 -11365 -11367 -11368 -11369 -11370 -11371 -11372 -11373 -11377 -11378 -11379 -11381 -11382 -11390 -11393 -11394 -11395 -11396 -11397 -11398 -11399 -11400 -11401 -11402 -11403 -11404 -11405 -11406 -11407 -11408 -11409 -11410 -11411 -11412 -11413 -11414 -11415 -11416 -11417 -11418 -11419 -11420 -11421 -11422 -11423 -11424 -11425 -11426 -11427 -11428 -11429 -11430 -11431 -11432 -11433 -11434 -11435 -11436 -11437 -11438 -11439 -11440 -11441 -11442 -11443 -11444 -11445 -11446 -11447 -11448 -11449 -11450 -11451 -11452 -11453 -11454 -11455 -11456 -11457 -11458 -11459 -11460 -11461 -11462 -11463 -11464 -11465 -11466 -11467 -11468 -11469 -11470 -11471 -11472 -11473 -11474 -11475 -11476 -11477 -11478 -11479 -11480 -11481 -11482 -11483 -11484 -11485 -11486 -11487 -11488 -11489 -11490 -11491 -11499 -11500 -11501 -11502 -11506 -11507 -42560 -42561 -42562 -42563 -42564 -42565 -42566 -42567 -42568 -42569 -42570 -42571 -42572 -42573 -42574 -42575 -42576 -42577 -42578 -42579 -42580 -42581 -42582 -42583 -42584 -42585 -42586 -42587 -42588 -42589 -42590 -42591 -42592 -42593 -42594 -42595 -42596 -42597 -42598 -42599 -42600 -42601 -42602 -42603 -42604 -42605 -42624 -42625 -42626 -42627 -42628 -42629 -42630 -42631 -42632 -42633 -42634 -42635 -42636 -42637 -42638 -42639 -42640 -42641 -42642 -42643 -42644 -42645 -42646 -42647 -42648 -42649 -42650 -42651 -42786 -42787 -42788 -42789 -42790 -42791 -42792 -42793 -42794 -42795 -42796 -42797 -42798 -42799 -42802 -42803 -42804 -42805 -42806 -42807 -42808 -42809 -42810 -42811 -42812 -42813 -42814 -42815 -42816 -42817 -42818 -42819 -42820 -42821 -42822 -42823 -42824 -42825 -42826 -42827 -42828 -42829 -42830 -42831 -42832 -42833 -42834 -42835 -42836 -42837 -42838 -42839 -42840 -42841 -42842 -42843 -42844 -42845 -42846 -42847 -42848 -42849 -42850 -42851 -42852 -42853 -42854 -42855 -42856 -42857 -42858 -42859 -42860 -42861 -42862 -42863 -42873 -42874 -42875 -42876 -42877 -42879 -42880 -42881 -42882 -42883 -42884 -42885 -42886 -42887 -42891 -42892 -42893 -42894 -42896 -42897 -42898 -42899 -42902 -42903 -42904 -42905 -42906 -42907 -42908 -42909 -42910 -42911 -42912 -42913 -42914 -42915 -42916 -42917 -42918 -42919 -42920 -42921 -42922 -42926 -42928 -42933 -42934 -42935 -65313 -65339 -66560 -66600 -68736 -68787 -71840 -71872 -119808 -119834 -119860 -119886 -119912 -119938 -119964 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119990 -120016 -120042 -120068 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120120 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120172 -120198 -120224 -120250 -120276 -120302 -120328 -120354 -120380 -120406 -120432 -120458 -120488 -120513 -120546 -120571 -120604 -120629 -120662 -120687 -120720 -120745 -120778 -120779 -127280 -127306 -127312 -127338 -127344 -127370 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/EX.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/EX.pl deleted file mode 100644 index 5665344a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/EX.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -95 -96 -8255 -8257 -8276 -8277 -65075 -65077 -65101 -65104 -65343 -65344 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/FO.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/FO.pl deleted file mode 100644 index 6f39f858..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/FO.pl +++ /dev/null @@ -1,48 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V34 -173 -174 -1536 -1542 -1564 -1565 -1757 -1758 -1807 -1808 -6158 -6159 -8206 -8208 -8234 -8239 -8288 -8293 -8294 -8304 -65279 -65280 -65529 -65532 -69821 -69822 -113824 -113828 -119155 -119163 -917505 -917506 -917536 -917632 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/HL.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/HL.pl deleted file mode 100644 index d3daf3d1..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/HL.pl +++ /dev/null @@ -1,34 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V20 -1488 -1515 -1520 -1523 -64285 -64286 -64287 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64336 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/KA.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/KA.pl deleted file mode 100644 index eca8cebc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/KA.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -12337 -12342 -12443 -12445 -12448 -12539 -12540 -12544 -12784 -12800 -13008 -13055 -13056 -13144 -65382 -65438 -110592 -110593 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/LE.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/LE.pl deleted file mode 100644 index cc54e29f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/LE.pl +++ /dev/null @@ -1,984 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V970 -65 -91 -97 -123 -170 -171 -181 -182 -186 -187 -192 -215 -216 -247 -248 -706 -710 -722 -736 -741 -748 -749 -750 -751 -880 -885 -886 -888 -890 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1162 -1328 -1329 -1367 -1369 -1370 -1377 -1416 -1523 -1524 -1568 -1611 -1646 -1648 -1649 -1748 -1749 -1750 -1765 -1767 -1774 -1776 -1786 -1789 -1791 -1792 -1808 -1809 -1810 -1840 -1869 -1958 -1969 -1970 -1994 -2027 -2036 -2038 -2042 -2043 -2048 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2112 -2137 -2208 -2229 -2308 -2362 -2365 -2366 -2384 -2385 -2392 -2402 -2417 -2433 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2493 -2494 -2510 -2511 -2524 -2526 -2527 -2530 -2544 -2546 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2649 -2653 -2654 -2655 -2674 -2677 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2749 -2750 -2768 -2769 -2784 -2786 -2809 -2810 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2877 -2878 -2908 -2910 -2911 -2914 -2929 -2930 -2947 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3024 -3025 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3134 -3160 -3163 -3168 -3170 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3261 -3262 -3294 -3295 -3296 -3298 -3313 -3315 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3390 -3406 -3407 -3423 -3426 -3450 -3456 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3840 -3841 -3904 -3912 -3913 -3949 -3976 -3981 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4992 -5008 -5024 -5110 -5112 -5118 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5870 -5881 -5888 -5901 -5902 -5906 -5920 -5938 -5952 -5970 -5984 -5997 -5998 -6001 -6176 -6264 -6272 -6313 -6314 -6315 -6320 -6390 -6400 -6431 -6656 -6679 -6917 -6964 -6981 -6988 -7043 -7073 -7086 -7088 -7098 -7142 -7168 -7204 -7245 -7248 -7258 -7294 -7401 -7405 -7406 -7410 -7413 -7415 -7424 -7616 -7680 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8305 -8306 -8319 -8320 -8336 -8349 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8544 -8585 -9398 -9450 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11503 -11506 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11823 -11824 -12293 -12294 -12347 -12349 -12549 -12590 -12593 -12687 -12704 -12731 -40960 -42125 -42192 -42238 -42240 -42509 -42512 -42528 -42538 -42540 -42560 -42607 -42623 -42654 -42656 -42736 -42775 -42784 -42786 -42889 -42891 -42926 -42928 -42936 -42999 -43010 -43011 -43014 -43015 -43019 -43020 -43043 -43072 -43124 -43138 -43188 -43250 -43256 -43259 -43260 -43261 -43262 -43274 -43302 -43312 -43335 -43360 -43389 -43396 -43443 -43471 -43472 -43520 -43561 -43584 -43587 -43588 -43596 -43744 -43755 -43762 -43765 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43867 -43868 -43878 -43888 -44003 -44032 -55204 -55216 -55239 -55243 -55292 -64256 -64263 -64275 -64280 -64336 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65020 -65136 -65141 -65142 -65277 -65313 -65339 -65345 -65371 -65440 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65856 -65909 -66176 -66205 -66208 -66257 -66304 -66336 -66352 -66379 -66384 -66422 -66432 -66462 -66464 -66500 -66504 -66512 -66513 -66518 -66560 -66718 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68097 -68112 -68116 -68117 -68120 -68121 -68148 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68325 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -68736 -68787 -68800 -68851 -69635 -69688 -69763 -69808 -69840 -69865 -69891 -69927 -69968 -70003 -70006 -70007 -70019 -70067 -70081 -70085 -70106 -70107 -70108 -70109 -70144 -70162 -70163 -70188 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70367 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70461 -70462 -70480 -70481 -70493 -70498 -70784 -70832 -70852 -70854 -70855 -70856 -71040 -71087 -71128 -71132 -71168 -71216 -71236 -71237 -71296 -71339 -71840 -71904 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92880 -92910 -92928 -92976 -92992 -92996 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94033 -94099 -94112 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -124928 -125125 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -127280 -127306 -127312 -127338 -127344 -127370 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/MB.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/MB.pl deleted file mode 100644 index 5599715c..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/MB.pl +++ /dev/null @@ -1,26 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V12 -46 -47 -8216 -8218 -8228 -8229 -65106 -65107 -65287 -65288 -65294 -65295 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/ML.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/ML.pl deleted file mode 100644 index 3cf905dc..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/ML.pl +++ /dev/null @@ -1,32 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V18 -58 -59 -183 -184 -727 -728 -903 -904 -1524 -1525 -8231 -8232 -65043 -65044 -65109 -65110 -65306 -65307 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/MN.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/MN.pl deleted file mode 100644 index 97199b0a..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/MN.pl +++ /dev/null @@ -1,42 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V28 -44 -45 -59 -60 -894 -895 -1417 -1418 -1548 -1550 -1644 -1645 -2040 -2041 -8260 -8261 -65040 -65041 -65044 -65045 -65104 -65105 -65108 -65109 -65292 -65293 -65307 -65308 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/NU.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/NU.pl deleted file mode 100644 index b7ad8e36..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/NU.pl +++ /dev/null @@ -1,116 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V102 -48 -58 -1632 -1642 -1643 -1644 -1776 -1786 -1984 -1994 -2406 -2416 -2534 -2544 -2662 -2672 -2790 -2800 -2918 -2928 -3046 -3056 -3174 -3184 -3302 -3312 -3430 -3440 -3558 -3568 -3664 -3674 -3792 -3802 -3872 -3882 -4160 -4170 -4240 -4250 -6112 -6122 -6160 -6170 -6470 -6480 -6608 -6618 -6784 -6794 -6800 -6810 -6992 -7002 -7088 -7098 -7232 -7242 -7248 -7258 -42528 -42538 -43216 -43226 -43264 -43274 -43472 -43482 -43504 -43514 -43600 -43610 -44016 -44026 -66720 -66730 -69734 -69744 -69872 -69882 -69942 -69952 -70096 -70106 -70384 -70394 -70864 -70874 -71248 -71258 -71360 -71370 -71472 -71482 -71904 -71914 -92768 -92778 -93008 -93018 -120782 -120832 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/XX.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/XX.pl deleted file mode 100644 index 9a0c1126..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/WB/XX.pl +++ /dev/null @@ -1,1355 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1341 -0 -10 -14 -34 -35 -39 -40 -44 -45 -46 -47 -48 -60 -65 -91 -95 -96 -97 -123 -133 -134 -170 -171 -173 -174 -181 -182 -183 -184 -186 -187 -192 -215 -216 -247 -248 -706 -710 -722 -727 -728 -736 -741 -748 -749 -750 -751 -768 -885 -886 -888 -890 -896 -902 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1155 -1328 -1329 -1367 -1369 -1370 -1377 -1416 -1417 -1418 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1488 -1515 -1520 -1525 -1536 -1542 -1548 -1550 -1552 -1563 -1564 -1565 -1568 -1642 -1643 -1645 -1646 -1748 -1749 -1758 -1759 -1769 -1770 -1789 -1791 -1792 -1807 -1867 -1869 -1970 -1984 -2038 -2040 -2041 -2042 -2043 -2048 -2094 -2112 -2140 -2208 -2229 -2275 -2404 -2406 -2416 -2417 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2546 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2800 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2928 -2929 -2930 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3056 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3440 -3450 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3572 -3633 -3634 -3636 -3643 -3655 -3663 -3664 -3674 -3761 -3762 -3764 -3770 -3771 -3773 -3784 -3790 -3792 -3802 -3840 -3841 -3864 -3866 -3872 -3882 -3893 -3894 -3895 -3896 -3897 -3898 -3902 -3912 -3913 -3949 -3953 -3973 -3974 -3992 -3993 -4029 -4038 -4039 -4139 -4159 -4160 -4170 -4182 -4186 -4190 -4193 -4194 -4197 -4199 -4206 -4209 -4213 -4226 -4238 -4239 -4254 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4960 -4992 -5008 -5024 -5110 -5112 -5118 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5870 -5881 -5888 -5901 -5902 -5909 -5920 -5941 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6068 -6100 -6109 -6110 -6112 -6122 -6155 -6159 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6470 -6480 -6608 -6618 -6656 -6684 -6741 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6832 -6847 -6912 -6988 -6992 -7002 -7019 -7028 -7040 -7156 -7168 -7224 -7232 -7242 -7245 -7294 -7376 -7379 -7380 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8204 -8208 -8216 -8218 -8228 -8229 -8231 -8239 -8255 -8257 -8260 -8261 -8276 -8277 -8288 -8293 -8294 -8304 -8305 -8306 -8319 -8320 -8336 -8349 -8400 -8433 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8473 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8494 -8495 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8544 -8585 -9398 -9450 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11776 -11823 -11824 -12293 -12294 -12330 -12336 -12337 -12342 -12347 -12349 -12441 -12445 -12448 -12539 -12540 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13008 -13055 -13056 -13144 -40960 -42125 -42192 -42238 -42240 -42509 -42512 -42540 -42560 -42611 -42612 -42622 -42623 -42738 -42775 -42784 -42786 -42889 -42891 -42926 -42928 -42936 -42999 -43048 -43072 -43124 -43136 -43205 -43216 -43226 -43232 -43256 -43259 -43260 -43261 -43262 -43264 -43310 -43312 -43348 -43360 -43389 -43392 -43457 -43471 -43482 -43493 -43494 -43504 -43514 -43520 -43575 -43584 -43598 -43600 -43610 -43643 -43646 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43744 -43760 -43762 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43867 -43868 -43878 -43888 -44011 -44012 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -64256 -64263 -64275 -64280 -64285 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64830 -64848 -64912 -64914 -64968 -65008 -65020 -65024 -65041 -65043 -65045 -65056 -65072 -65075 -65077 -65101 -65105 -65106 -65107 -65108 -65110 -65136 -65141 -65142 -65277 -65279 -65280 -65287 -65288 -65292 -65293 -65294 -65295 -65306 -65308 -65313 -65339 -65343 -65344 -65345 -65371 -65382 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65529 -65532 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65856 -65909 -66045 -66046 -66176 -66205 -66208 -66257 -66272 -66273 -66304 -66336 -66352 -66379 -66384 -66427 -66432 -66462 -66464 -66500 -66504 -66512 -66513 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68160 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68327 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -68736 -68787 -68800 -68851 -69632 -69703 -69734 -69744 -69759 -69819 -69821 -69822 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69952 -69968 -70004 -70006 -70007 -70016 -70085 -70090 -70093 -70096 -70107 -70108 -70109 -70144 -70162 -70163 -70200 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70854 -70855 -70856 -70864 -70874 -71040 -71094 -71096 -71105 -71128 -71134 -71168 -71233 -71236 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71453 -71468 -71472 -71482 -71840 -71914 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92880 -92910 -92912 -92917 -92928 -92983 -92992 -92996 -93008 -93018 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110593 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113821 -113823 -113824 -113828 -119141 -119146 -119149 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -120782 -120832 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -124928 -125125 -125136 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -127280 -127306 -127312 -127338 -127344 -127370 -127462 -127488 -917505 -917506 -917536 -917632 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/XIDC/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/XIDC/Y.pl deleted file mode 100644 index 9a0fbc39..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/XIDC/Y.pl +++ /dev/null @@ -1,1330 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1316 -48 -58 -65 -91 -95 -96 -97 -123 -170 -171 -181 -182 -183 -184 -186 -187 -192 -215 -216 -247 -248 -706 -710 -722 -736 -741 -748 -749 -750 -751 -768 -885 -886 -888 -891 -894 -895 -896 -902 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1155 -1160 -1162 -1328 -1329 -1367 -1369 -1370 -1377 -1416 -1425 -1470 -1471 -1472 -1473 -1475 -1476 -1478 -1479 -1480 -1488 -1515 -1520 -1523 -1552 -1563 -1568 -1642 -1646 -1748 -1749 -1757 -1759 -1769 -1770 -1789 -1791 -1792 -1808 -1867 -1869 -1970 -1984 -2038 -2042 -2043 -2048 -2094 -2112 -2140 -2208 -2229 -2275 -2404 -2406 -2416 -2417 -2436 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2492 -2501 -2503 -2505 -2507 -2511 -2519 -2520 -2524 -2526 -2527 -2532 -2534 -2546 -2561 -2564 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2620 -2621 -2622 -2627 -2631 -2633 -2635 -2638 -2641 -2642 -2649 -2653 -2654 -2655 -2662 -2678 -2689 -2692 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2748 -2758 -2759 -2762 -2763 -2766 -2768 -2769 -2784 -2788 -2790 -2800 -2809 -2810 -2817 -2820 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2876 -2885 -2887 -2889 -2891 -2894 -2902 -2904 -2908 -2910 -2911 -2916 -2918 -2928 -2929 -2930 -2946 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3006 -3011 -3014 -3017 -3018 -3022 -3024 -3025 -3031 -3032 -3046 -3056 -3072 -3076 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3141 -3142 -3145 -3146 -3150 -3157 -3159 -3160 -3163 -3168 -3172 -3174 -3184 -3201 -3204 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3260 -3269 -3270 -3273 -3274 -3278 -3285 -3287 -3294 -3295 -3296 -3300 -3302 -3312 -3313 -3315 -3329 -3332 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3397 -3398 -3401 -3402 -3407 -3415 -3416 -3423 -3428 -3430 -3440 -3450 -3456 -3458 -3460 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3530 -3531 -3535 -3541 -3542 -3543 -3544 -3552 -3558 -3568 -3570 -3572 -3585 -3643 -3648 -3663 -3664 -3674 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3770 -3771 -3774 -3776 -3781 -3782 -3783 -3784 -3790 -3792 -3802 -3804 -3808 -3840 -3841 -3864 -3866 -3872 -3882 -3893 -3894 -3895 -3896 -3897 -3898 -3902 -3912 -3913 -3949 -3953 -3973 -3974 -3992 -3993 -4029 -4038 -4039 -4096 -4170 -4176 -4254 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4957 -4960 -4969 -4978 -4992 -5008 -5024 -5110 -5112 -5118 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5870 -5881 -5888 -5901 -5902 -5909 -5920 -5941 -5952 -5972 -5984 -5997 -5998 -6001 -6002 -6004 -6016 -6100 -6103 -6104 -6108 -6110 -6112 -6122 -6155 -6158 -6160 -6170 -6176 -6264 -6272 -6315 -6320 -6390 -6400 -6431 -6432 -6444 -6448 -6460 -6470 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6608 -6619 -6656 -6684 -6688 -6751 -6752 -6781 -6783 -6794 -6800 -6810 -6823 -6824 -6832 -6846 -6912 -6988 -6992 -7002 -7019 -7028 -7040 -7156 -7168 -7224 -7232 -7242 -7245 -7294 -7376 -7379 -7380 -7415 -7416 -7418 -7424 -7670 -7676 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8255 -8257 -8276 -8277 -8305 -8306 -8319 -8320 -8336 -8349 -8400 -8413 -8417 -8418 -8421 -8433 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8472 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8544 -8585 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11647 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -11744 -11776 -12293 -12296 -12321 -12336 -12337 -12342 -12344 -12349 -12353 -12439 -12441 -12443 -12445 -12448 -12449 -12539 -12540 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13312 -19894 -19968 -40918 -40960 -42125 -42192 -42238 -42240 -42509 -42512 -42540 -42560 -42608 -42612 -42622 -42623 -42738 -42775 -42784 -42786 -42889 -42891 -42926 -42928 -42936 -42999 -43048 -43072 -43124 -43136 -43205 -43216 -43226 -43232 -43256 -43259 -43260 -43261 -43262 -43264 -43310 -43312 -43348 -43360 -43389 -43392 -43457 -43471 -43482 -43488 -43519 -43520 -43575 -43584 -43598 -43600 -43610 -43616 -43639 -43642 -43715 -43739 -43742 -43744 -43760 -43762 -43767 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43867 -43868 -43878 -43888 -44011 -44012 -44014 -44016 -44026 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64606 -64612 -64830 -64848 -64912 -64914 -64968 -65008 -65018 -65024 -65040 -65056 -65072 -65075 -65077 -65101 -65104 -65137 -65138 -65139 -65140 -65143 -65144 -65145 -65146 -65147 -65148 -65149 -65150 -65151 -65277 -65296 -65306 -65313 -65339 -65343 -65344 -65345 -65371 -65382 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65856 -65909 -66045 -66046 -66176 -66205 -66208 -66257 -66272 -66273 -66304 -66336 -66352 -66379 -66384 -66427 -66432 -66462 -66464 -66500 -66504 -66512 -66513 -66518 -66560 -66718 -66720 -66730 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68100 -68101 -68103 -68108 -68116 -68117 -68120 -68121 -68148 -68152 -68155 -68159 -68160 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68327 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -68736 -68787 -68800 -68851 -69632 -69703 -69734 -69744 -69759 -69819 -69840 -69865 -69872 -69882 -69888 -69941 -69942 -69952 -69968 -70004 -70006 -70007 -70016 -70085 -70090 -70093 -70096 -70107 -70108 -70109 -70144 -70162 -70163 -70200 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70379 -70384 -70394 -70400 -70404 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70460 -70469 -70471 -70473 -70475 -70478 -70480 -70481 -70487 -70488 -70493 -70500 -70502 -70509 -70512 -70517 -70784 -70854 -70855 -70856 -70864 -70874 -71040 -71094 -71096 -71105 -71128 -71134 -71168 -71233 -71236 -71237 -71248 -71258 -71296 -71352 -71360 -71370 -71424 -71450 -71453 -71468 -71472 -71482 -71840 -71914 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92768 -92778 -92880 -92910 -92912 -92917 -92928 -92983 -92992 -92996 -93008 -93018 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94079 -94095 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -113821 -113823 -119141 -119146 -119149 -119155 -119163 -119171 -119173 -119180 -119210 -119214 -119362 -119365 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -120782 -120832 -121344 -121399 -121403 -121453 -121461 -121462 -121476 -121477 -121499 -121504 -121505 -121520 -124928 -125125 -125136 -125143 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -917760 -918000 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/XIDS/Y.pl b/software/Slic3r-1.3.0.64bit/lib/unicore/lib/XIDS/Y.pl deleted file mode 100644 index 95e18da2..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/lib/XIDS/Y.pl +++ /dev/null @@ -1,1138 +0,0 @@ -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is machine-generated by ..\lib\unicore\mktables from the Unicode -# database, Version 8.0.0. Any changes made here will be lost! - -# !!!!!!! INTERNAL PERL USE ONLY !!!!!!! -# This file is for internal use by core Perl only. The format and even the -# name or existence of this file are subject to change without notice. Don't -# use it directly. Use Unicode::UCD to access the Unicode character data -# base. - - -return <<'END'; -V1124 -65 -91 -97 -123 -170 -171 -181 -182 -186 -187 -192 -215 -216 -247 -248 -706 -710 -722 -736 -741 -748 -749 -750 -751 -880 -885 -886 -888 -891 -894 -895 -896 -902 -903 -904 -907 -908 -909 -910 -930 -931 -1014 -1015 -1154 -1162 -1328 -1329 -1367 -1369 -1370 -1377 -1416 -1488 -1515 -1520 -1523 -1568 -1611 -1646 -1648 -1649 -1748 -1749 -1750 -1765 -1767 -1774 -1776 -1786 -1789 -1791 -1792 -1808 -1809 -1810 -1840 -1869 -1958 -1969 -1970 -1994 -2027 -2036 -2038 -2042 -2043 -2048 -2070 -2074 -2075 -2084 -2085 -2088 -2089 -2112 -2137 -2208 -2229 -2308 -2362 -2365 -2366 -2384 -2385 -2392 -2402 -2417 -2433 -2437 -2445 -2447 -2449 -2451 -2473 -2474 -2481 -2482 -2483 -2486 -2490 -2493 -2494 -2510 -2511 -2524 -2526 -2527 -2530 -2544 -2546 -2565 -2571 -2575 -2577 -2579 -2601 -2602 -2609 -2610 -2612 -2613 -2615 -2616 -2618 -2649 -2653 -2654 -2655 -2674 -2677 -2693 -2702 -2703 -2706 -2707 -2729 -2730 -2737 -2738 -2740 -2741 -2746 -2749 -2750 -2768 -2769 -2784 -2786 -2809 -2810 -2821 -2829 -2831 -2833 -2835 -2857 -2858 -2865 -2866 -2868 -2869 -2874 -2877 -2878 -2908 -2910 -2911 -2914 -2929 -2930 -2947 -2948 -2949 -2955 -2958 -2961 -2962 -2966 -2969 -2971 -2972 -2973 -2974 -2976 -2979 -2981 -2984 -2987 -2990 -3002 -3024 -3025 -3077 -3085 -3086 -3089 -3090 -3113 -3114 -3130 -3133 -3134 -3160 -3163 -3168 -3170 -3205 -3213 -3214 -3217 -3218 -3241 -3242 -3252 -3253 -3258 -3261 -3262 -3294 -3295 -3296 -3298 -3313 -3315 -3333 -3341 -3342 -3345 -3346 -3387 -3389 -3390 -3406 -3407 -3423 -3426 -3450 -3456 -3461 -3479 -3482 -3506 -3507 -3516 -3517 -3518 -3520 -3527 -3585 -3633 -3634 -3635 -3648 -3655 -3713 -3715 -3716 -3717 -3719 -3721 -3722 -3723 -3725 -3726 -3732 -3736 -3737 -3744 -3745 -3748 -3749 -3750 -3751 -3752 -3754 -3756 -3757 -3761 -3762 -3763 -3773 -3774 -3776 -3781 -3782 -3783 -3804 -3808 -3840 -3841 -3904 -3912 -3913 -3949 -3976 -3981 -4096 -4139 -4159 -4160 -4176 -4182 -4186 -4190 -4193 -4194 -4197 -4199 -4206 -4209 -4213 -4226 -4238 -4239 -4256 -4294 -4295 -4296 -4301 -4302 -4304 -4347 -4348 -4681 -4682 -4686 -4688 -4695 -4696 -4697 -4698 -4702 -4704 -4745 -4746 -4750 -4752 -4785 -4786 -4790 -4792 -4799 -4800 -4801 -4802 -4806 -4808 -4823 -4824 -4881 -4882 -4886 -4888 -4955 -4992 -5008 -5024 -5110 -5112 -5118 -5121 -5741 -5743 -5760 -5761 -5787 -5792 -5867 -5870 -5881 -5888 -5901 -5902 -5906 -5920 -5938 -5952 -5970 -5984 -5997 -5998 -6001 -6016 -6068 -6103 -6104 -6108 -6109 -6176 -6264 -6272 -6313 -6314 -6315 -6320 -6390 -6400 -6431 -6480 -6510 -6512 -6517 -6528 -6572 -6576 -6602 -6656 -6679 -6688 -6741 -6823 -6824 -6917 -6964 -6981 -6988 -7043 -7073 -7086 -7088 -7098 -7142 -7168 -7204 -7245 -7248 -7258 -7294 -7401 -7405 -7406 -7410 -7413 -7415 -7424 -7616 -7680 -7958 -7960 -7966 -7968 -8006 -8008 -8014 -8016 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8062 -8064 -8117 -8118 -8125 -8126 -8127 -8130 -8133 -8134 -8141 -8144 -8148 -8150 -8156 -8160 -8173 -8178 -8181 -8182 -8189 -8305 -8306 -8319 -8320 -8336 -8349 -8450 -8451 -8455 -8456 -8458 -8468 -8469 -8470 -8472 -8478 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8506 -8508 -8512 -8517 -8522 -8526 -8527 -8544 -8585 -11264 -11311 -11312 -11359 -11360 -11493 -11499 -11503 -11506 -11508 -11520 -11558 -11559 -11560 -11565 -11566 -11568 -11624 -11631 -11632 -11648 -11671 -11680 -11687 -11688 -11695 -11696 -11703 -11704 -11711 -11712 -11719 -11720 -11727 -11728 -11735 -11736 -11743 -12293 -12296 -12321 -12330 -12337 -12342 -12344 -12349 -12353 -12439 -12445 -12448 -12449 -12539 -12540 -12544 -12549 -12590 -12593 -12687 -12704 -12731 -12784 -12800 -13312 -19894 -19968 -40918 -40960 -42125 -42192 -42238 -42240 -42509 -42512 -42528 -42538 -42540 -42560 -42607 -42623 -42654 -42656 -42736 -42775 -42784 -42786 -42889 -42891 -42926 -42928 -42936 -42999 -43010 -43011 -43014 -43015 -43019 -43020 -43043 -43072 -43124 -43138 -43188 -43250 -43256 -43259 -43260 -43261 -43262 -43274 -43302 -43312 -43335 -43360 -43389 -43396 -43443 -43471 -43472 -43488 -43493 -43494 -43504 -43514 -43519 -43520 -43561 -43584 -43587 -43588 -43596 -43616 -43639 -43642 -43643 -43646 -43696 -43697 -43698 -43701 -43703 -43705 -43710 -43712 -43713 -43714 -43715 -43739 -43742 -43744 -43755 -43762 -43765 -43777 -43783 -43785 -43791 -43793 -43799 -43808 -43815 -43816 -43823 -43824 -43867 -43868 -43878 -43888 -44003 -44032 -55204 -55216 -55239 -55243 -55292 -63744 -64110 -64112 -64218 -64256 -64263 -64275 -64280 -64285 -64286 -64287 -64297 -64298 -64311 -64312 -64317 -64318 -64319 -64320 -64322 -64323 -64325 -64326 -64434 -64467 -64606 -64612 -64830 -64848 -64912 -64914 -64968 -65008 -65018 -65137 -65138 -65139 -65140 -65143 -65144 -65145 -65146 -65147 -65148 -65149 -65150 -65151 -65277 -65313 -65339 -65345 -65371 -65382 -65438 -65440 -65471 -65474 -65480 -65482 -65488 -65490 -65496 -65498 -65501 -65536 -65548 -65549 -65575 -65576 -65595 -65596 -65598 -65599 -65614 -65616 -65630 -65664 -65787 -65856 -65909 -66176 -66205 -66208 -66257 -66304 -66336 -66352 -66379 -66384 -66422 -66432 -66462 -66464 -66500 -66504 -66512 -66513 -66518 -66560 -66718 -66816 -66856 -66864 -66916 -67072 -67383 -67392 -67414 -67424 -67432 -67584 -67590 -67592 -67593 -67594 -67638 -67639 -67641 -67644 -67645 -67647 -67670 -67680 -67703 -67712 -67743 -67808 -67827 -67828 -67830 -67840 -67862 -67872 -67898 -67968 -68024 -68030 -68032 -68096 -68097 -68112 -68116 -68117 -68120 -68121 -68148 -68192 -68221 -68224 -68253 -68288 -68296 -68297 -68325 -68352 -68406 -68416 -68438 -68448 -68467 -68480 -68498 -68608 -68681 -68736 -68787 -68800 -68851 -69635 -69688 -69763 -69808 -69840 -69865 -69891 -69927 -69968 -70003 -70006 -70007 -70019 -70067 -70081 -70085 -70106 -70107 -70108 -70109 -70144 -70162 -70163 -70188 -70272 -70279 -70280 -70281 -70282 -70286 -70287 -70302 -70303 -70313 -70320 -70367 -70405 -70413 -70415 -70417 -70419 -70441 -70442 -70449 -70450 -70452 -70453 -70458 -70461 -70462 -70480 -70481 -70493 -70498 -70784 -70832 -70852 -70854 -70855 -70856 -71040 -71087 -71128 -71132 -71168 -71216 -71236 -71237 -71296 -71339 -71424 -71450 -71840 -71904 -71935 -71936 -72384 -72441 -73728 -74650 -74752 -74863 -74880 -75076 -77824 -78895 -82944 -83527 -92160 -92729 -92736 -92767 -92880 -92910 -92928 -92976 -92992 -92996 -93027 -93048 -93053 -93072 -93952 -94021 -94032 -94033 -94099 -94112 -110592 -110594 -113664 -113771 -113776 -113789 -113792 -113801 -113808 -113818 -119808 -119893 -119894 -119965 -119966 -119968 -119970 -119971 -119973 -119975 -119977 -119981 -119982 -119994 -119995 -119996 -119997 -120004 -120005 -120070 -120071 -120075 -120077 -120085 -120086 -120093 -120094 -120122 -120123 -120127 -120128 -120133 -120134 -120135 -120138 -120145 -120146 -120486 -120488 -120513 -120514 -120539 -120540 -120571 -120572 -120597 -120598 -120629 -120630 -120655 -120656 -120687 -120688 -120713 -120714 -120745 -120746 -120771 -120772 -120780 -124928 -125125 -126464 -126468 -126469 -126496 -126497 -126499 -126500 -126501 -126503 -126504 -126505 -126515 -126516 -126520 -126521 -126522 -126523 -126524 -126530 -126531 -126535 -126536 -126537 -126538 -126539 -126540 -126541 -126544 -126545 -126547 -126548 -126549 -126551 -126552 -126553 -126554 -126555 -126556 -126557 -126558 -126559 -126560 -126561 -126563 -126564 -126565 -126567 -126571 -126572 -126579 -126580 -126584 -126585 -126589 -126590 -126591 -126592 -126602 -126603 -126620 -126625 -126628 -126629 -126634 -126635 -126652 -131072 -173783 -173824 -177973 -177984 -178206 -178208 -183970 -194560 -195102 -END diff --git a/software/Slic3r-1.3.0.64bit/lib/unicore/version b/software/Slic3r-1.3.0.64bit/lib/unicore/version deleted file mode 100644 index ae9a76b9..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/unicore/version +++ /dev/null @@ -1 +0,0 @@ -8.0.0 diff --git a/software/Slic3r-1.3.0.64bit/lib/utf8.pm b/software/Slic3r-1.3.0.64bit/lib/utf8.pm deleted file mode 100644 index 5cca108f..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/utf8.pm +++ /dev/null @@ -1,26 +0,0 @@ -#line 1 "utf8.pm" -package utf8; - -$utf8::hint_bits = 0x00800000; - -our $VERSION = '1.19'; - -sub import { - $^H |= $utf8::hint_bits; -} - -sub unimport { - $^H &= ~$utf8::hint_bits; -} - -sub AUTOLOAD { - require "utf8_heavy.pl"; - goto &$AUTOLOAD if defined &$AUTOLOAD; - require Carp; - Carp::croak("Undefined subroutine $AUTOLOAD called"); -} - -1; -__END__ - -#line 246 diff --git a/software/Slic3r-1.3.0.64bit/lib/utf8_heavy.pl b/software/Slic3r-1.3.0.64bit/lib/utf8_heavy.pl deleted file mode 100644 index cc0cae45..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/utf8_heavy.pl +++ /dev/null @@ -1,688 +0,0 @@ -#line 1 "utf8_heavy.pl" -package utf8; -use strict; -use warnings; -use re "/aa"; # So we won't even try to look at above Latin1, potentially - # resulting in a recursive call - -sub DEBUG () { 0 } -$|=1 if DEBUG; - -sub DESTROY {} - -my %Cache; - -sub croak { require Carp; Carp::croak(@_) } - -sub _loose_name ($) { - # Given a lowercase property or property-value name, return its - # standardized version that is expected for look-up in the 'loose' hashes - # in Heavy.pl (hence, this depends on what mktables does). This squeezes - # out blanks, underscores and dashes. The complication stems from the - # grandfathered-in 'L_', which retains a single trailing underscore. - - (my $loose = $_[0]) =~ s/[-_ \t]//g; - - return $loose if $loose !~ / ^ (?: is | to )? l $/x; - return 'l_' if $_[0] =~ / l .* _ /x; # If original had a trailing '_' - return $loose; -} - -## -## "SWASH" == "SWATCH HASH". A "swatch" is a swatch of the Unicode landscape. -## It's a data structure that encodes a set of Unicode characters. -## - -{ - # If a floating point number is within this distance from the value of a - # fraction, it is considered to be that fraction, even if many more digits - # are specified that don't exactly match. - my $min_floating_slop; - - # To guard against this program calling something that in turn ends up - # calling this program with the same inputs, and hence infinitely - # recursing, we keep a stack of the properties that are currently in - # progress, pushed upon entry, popped upon return. - my @recursed; - - sub SWASHNEW { - my ($class, $type, $list, $minbits, $none) = @_; - my $user_defined = 0; - local $^D = 0 if $^D; - - $class = "" unless defined $class; - print STDERR __LINE__, ": class=$class, type=$type, list=", - (defined $list) ? $list : ':undef:', - ", minbits=$minbits, none=$none\n" if DEBUG; - - ## - ## Get the list of codepoints for the type. - ## Called from swash_init (see utf8.c) or SWASHNEW itself. - ## - ## Callers of swash_init: - ## op.c:pmtrans -- for tr/// and y/// - ## regexec.c:regclass_swash -- for /[]/, \p, and \P - ## utf8.c:is_utf8_common -- for common Unicode properties - ## utf8.c:S__to_utf8_case -- for lc, uc, ucfirst, etc. and //i - ## Unicode::UCD::prop_invlist - ## Unicode::UCD::prop_invmap - ## - ## Given a $type, our goal is to fill $list with the set of codepoint - ## ranges. If $type is false, $list passed is used. - ## - ## $minbits: - ## For binary properties, $minbits must be 1. - ## For character mappings (case and transliteration), $minbits must - ## be a number except 1. - ## - ## $list (or that filled according to $type): - ## Refer to perlunicode.pod, "User-Defined Character Properties." - ## - ## For binary properties, only characters with the property value - ## of True should be listed. The 3rd column, if any, will be ignored - ## - ## $none is undocumented, so I'm (khw) trying to do some documentation - ## of it now. It appears to be if there is a mapping in an input file - ## that maps to 'XXXX', then that is replaced by $none+1, expressed in - ## hexadecimal. It is used somehow in tr///. - ## - ## To make the parsing of $type clear, this code takes the a rather - ## unorthodox approach of last'ing out of the block once we have the - ## info we need. Were this to be a subroutine, the 'last' would just - ## be a 'return'. - ## - # If a problem is found $type is returned; - # Upon success, a new (or cached) blessed object is returned with - # keys TYPE, BITS, EXTRAS, LIST, and NONE with values having the - # same meanings as the input parameters. - # SPECIALS contains a reference to any special-treatment hash in the - # property. - # INVERT_IT is non-zero if the result should be inverted before use - # USER_DEFINED is non-zero if the result came from a user-defined - my $file; ## file to load data from, and also part of the %Cache key. - - # Change this to get a different set of Unicode tables - my $unicore_dir = 'unicore'; - my $invert_it = 0; - my $list_is_from_mktables = 0; # Is $list returned from a mktables - # generated file? If so, we know it's - # well behaved. - - if ($type) - { - # Verify that this isn't a recursive call for this property. - # Can't use croak, as it may try to recurse to here itself. - my $class_type = $class . "::$type"; - if (grep { $_ eq $class_type } @recursed) { - CORE::die "panic: Infinite recursion in SWASHNEW for '$type'\n"; - } - push @recursed, $class_type; - - $type =~ s/^\s+//; - $type =~ s/\s+$//; - - # regcomp.c surrounds the property name with '__" and '_i' if this - # is to be caseless matching. - my $caseless = $type =~ s/^(.*)__(.*)_i$/$1$2/; - - print STDERR __LINE__, ": type=$type, caseless=$caseless\n" if DEBUG; - - GETFILE: - { - ## - ## It could be a user-defined property. Look in current - ## package if no package given - ## - - - my $caller0 = caller(0); - my $caller1 = $type =~ s/(.+)::// - ? $1 - : $caller0 eq 'main' - ? 'main' - : caller(1); - - if (defined $caller1 && $type =~ /^I[ns]\w+$/) { - my $prop = "${caller1}::$type"; - if (exists &{$prop}) { - # stolen from Scalar::Util::PP::tainted() - my $tainted; - { - local($@, $SIG{__DIE__}, $SIG{__WARN__}); - local $^W = 0; - no warnings; - eval { kill 0 * $prop }; - $tainted = 1 if $@ =~ /^Insecure/; - } - die "Insecure user-defined property \\p{$prop}\n" - if $tainted; - no strict 'refs'; - $list = &{$prop}($caseless); - $user_defined = 1; - last GETFILE; - } - } - - # During Perl's compilation, this routine may be called before - # the tables are constructed. If so, we have a chicken/egg - # problem. If we die, the tables never get constructed, so - # keep going, but return an empty table so only what the code - # has compiled in internally (currently ASCII/Latin1 range - # matching) will work. - BEGIN { - # Poor man's constant, to avoid a run-time check. - $utf8::{miniperl} - = \! defined &DynaLoader::boot_DynaLoader; - } - if (miniperl) { - eval "require '$unicore_dir/Heavy.pl'"; - if ($@) { - print STDERR __LINE__, ": '$@'\n" if DEBUG; - pop @recursed if @recursed; - return $type; - } - } - else { - require "$unicore_dir/Heavy.pl"; - } - BEGIN { delete $utf8::{miniperl} } - - # All property names are matched caselessly - my $property_and_table = CORE::lc $type; - print STDERR __LINE__, ": $property_and_table\n" if DEBUG; - - # See if is of the compound form 'property=value', where the - # value indicates the table we should use. - my ($property, $table, @remainder) = - split /\s*[:=]\s*/, $property_and_table, -1; - if (@remainder) { - pop @recursed if @recursed; - return $type; - } - - my $prefix; - if (! defined $table) { - - # Here, is the single form. The property becomes empty, and - # the whole value is the table. - $table = $property; - $prefix = $property = ""; - } else { - print STDERR __LINE__, ": $property\n" if DEBUG; - - # Here it is the compound property=table form. The property - # name is always loosely matched, and always can have an - # optional 'is' prefix (which isn't true in the single - # form). - $property = _loose_name($property) =~ s/^is//r; - - # And convert to canonical form. Quit if not valid. - $property = $utf8::loose_property_name_of{$property}; - if (! defined $property) { - pop @recursed if @recursed; - return $type; - } - - $prefix = "$property="; - - # If the rhs looks like it is a number... - print STDERR __LINE__, ": table=$table\n" if DEBUG; - if ($table =~ m{ ^ [ \s 0-9 _ + / . -]+ $ }x) { - print STDERR __LINE__, ": table=$table\n" if DEBUG; - - # Don't allow leading nor trailing slashes - if ($table =~ / ^ \/ | \/ $ /x) { - pop @recursed if @recursed; - return $type; - } - - # Split on slash, in case it is a rational, like \p{1/5} - my @parts = split m{ \s* / \s* }x, $table, -1; - print __LINE__, ": $type\n" if @parts > 2 && DEBUG; - - # Can have maximum of one slash - if (@parts > 2) { - pop @recursed if @recursed; - return $type; - } - - foreach my $part (@parts) { - print __LINE__, ": part=$part\n" if DEBUG; - - $part =~ s/^\+\s*//; # Remove leading plus - $part =~ s/^-\s*/-/; # Remove blanks after unary - # minus - - # Remove underscores between digits. - $part =~ s/(?<= [0-9] ) _ (?= [0-9] ) //xg; - - # No leading zeros (but don't make a single '0' - # into a null string) - $part =~ s/ ^ ( -? ) 0+ /$1/x; - $part .= '0' if $part eq '-' || $part eq ""; - - # No trailing zeros after a decimal point - $part =~ s/ ( \. .*? ) 0+ $ /$1/x; - - # Begin with a 0 if a leading decimal point - $part =~ s/ ^ ( -? ) \. /${1}0./x; - - # Ensure not a trailing decimal point: turn into an - # integer - $part =~ s/ \. $ //x; - - print STDERR __LINE__, ": part=$part\n" if DEBUG; - #return $type if $part eq ""; - - # Result better look like a number. (This test is - # needed because, for example could have a plus in - # the middle.) - if ($part !~ / ^ -? [0-9]+ ( \. [0-9]+)? $ /x) { - pop @recursed if @recursed; - return $type; - } - } - - # If a rational... - if (@parts == 2) { - - # If denominator is negative, get rid of it, and ... - if ($parts[1] =~ s/^-//) { - - # If numerator is also negative, convert the - # whole thing to positive, else move the minus - # to the numerator - if ($parts[0] !~ s/^-//) { - $parts[0] = '-' . $parts[0]; - } - } - $table = join '/', @parts; - } - elsif ($property ne 'nv' || $parts[0] !~ /\./) { - - # Here is not numeric value, or doesn't have a - # decimal point. No further manipulation is - # necessary. (Note the hard-coded property name. - # This could fail if other properties eventually - # had fractions as well; perhaps the cjk ones - # could evolve to do that. This hard-coding could - # be fixed by mktables generating a list of - # properties that could have fractions.) - $table = $parts[0]; - } else { - - # Here is a floating point numeric_value. Try to - # convert to rational. First see if is in the list - # of known ones. - if (exists $utf8::nv_floating_to_rational{$parts[0]}) { - $table = $utf8::nv_floating_to_rational{$parts[0]}; - } else { - - # Here not in the list. See if is close - # enough to something in the list. First - # determine what 'close enough' means. It has - # to be as tight as what mktables says is the - # maximum slop, and as tight as how many - # digits we were passed. That is, if the user - # said .667, .6667, .66667, etc. we match as - # many digits as they passed until get to - # where it doesn't matter any more due to the - # machine's precision. If they said .6666668, - # we fail. - (my $fraction = $parts[0]) =~ s/^.*\.//; - my $epsilon = 10 ** - (length($fraction)); - if ($epsilon > $utf8::max_floating_slop) { - $epsilon = $utf8::max_floating_slop; - } - - # But it can't be tighter than the minimum - # precision for this machine. If haven't - # already calculated that minimum, do so now. - if (! defined $min_floating_slop) { - - # Keep going down an order of magnitude - # until find that adding this quantity to - # 1 remains 1; but put an upper limit on - # this so in case this algorithm doesn't - # work properly on some platform, that we - # won't loop forever. - my $count = 0; - $min_floating_slop = 1; - while (1+ $min_floating_slop != 1 - && $count++ < 50) - { - my $next = $min_floating_slop / 10; - last if $next == 0; # If underflows, - # use previous one - $min_floating_slop = $next; - print STDERR __LINE__, ": min_float_slop=$min_floating_slop\n" if DEBUG; - } - - # Back off a couple orders of magnitude, - # just to be safe. - $min_floating_slop *= 100; - } - - if ($epsilon < $min_floating_slop) { - $epsilon = $min_floating_slop; - } - print STDERR __LINE__, ": fraction=.$fraction; epsilon=$epsilon\n" if DEBUG; - - undef $table; - - # And for each possible rational in the table, - # see if it is within epsilon of the input. - foreach my $official - (keys %utf8::nv_floating_to_rational) - { - print STDERR __LINE__, ": epsilon=$epsilon, official=$official, diff=", abs($parts[0] - $official), "\n" if DEBUG; - if (abs($parts[0] - $official) < $epsilon) { - $table = - $utf8::nv_floating_to_rational{$official}; - last; - } - } - - # Quit if didn't find one. - if (! defined $table) { - pop @recursed if @recursed; - return $type; - } - } - } - print STDERR __LINE__, ": $property=$table\n" if DEBUG; - } - } - - # Combine lhs (if any) and rhs to get something that matches - # the syntax of the lookups. - $property_and_table = "$prefix$table"; - print STDERR __LINE__, ": $property_and_table\n" if DEBUG; - - # First try stricter matching. - $file = $utf8::stricter_to_file_of{$property_and_table}; - - # If didn't find it, try again with looser matching by editing - # out the applicable characters on the rhs and looking up - # again. - my $strict_property_and_table; - if (! defined $file) { - - # This isn't used unless the name begins with 'to' - $strict_property_and_table = $property_and_table =~ s/^to//r; - $table = _loose_name($table); - $property_and_table = "$prefix$table"; - print STDERR __LINE__, ": $property_and_table\n" if DEBUG; - $file = $utf8::loose_to_file_of{$property_and_table}; - } - - # Add the constant and go fetch it in. - if (defined $file) { - - # If the file name contains a !, it means to invert. The - # 0+ makes sure result is numeric - $invert_it = 0 + $file =~ s/!//; - - if ($utf8::why_deprecated{$file}) { - warnings::warnif('deprecated', "Use of '$type' in \\p{} or \\P{} is deprecated because: $utf8::why_deprecated{$file};"); - } - - if ($caseless - && exists $utf8::caseless_equivalent{$property_and_table}) - { - $file = $utf8::caseless_equivalent{$property_and_table}; - } - - # The pseudo-directory '#' means that there really isn't a - # file to read, the data is in-line as part of the string; - # we extract it below. - $file = "$unicore_dir/lib/$file.pl" unless $file =~ m!^#/!; - last GETFILE; - } - print STDERR __LINE__, ": didn't find $property_and_table\n" if DEBUG; - - ## - ## Last attempt -- see if it's a standard "To" name - ## (e.g. "ToLower") ToTitle is used by ucfirst(). - ## The user-level way to access ToDigit() and ToFold() - ## is to use Unicode::UCD. - ## - # Only check if caller wants non-binary - if ($minbits != 1) { - if ($property_and_table =~ s/^to//) { - # Look input up in list of properties for which we have - # mapping files. First do it with the strict approach - if (defined ($file = $utf8::strict_property_to_file_of{ - $strict_property_and_table})) - { - $type = $utf8::file_to_swash_name{$file}; - print STDERR __LINE__, ": type set to $type\n" - if DEBUG; - $file = "$unicore_dir/$file.pl"; - last GETFILE; - } - elsif (defined ($file = - $utf8::loose_property_to_file_of{$property_and_table})) - { - $type = $utf8::file_to_swash_name{$file}; - print STDERR __LINE__, ": type set to $type\n" - if DEBUG; - $file = "$unicore_dir/$file.pl"; - last GETFILE; - } # If that fails see if there is a corresponding binary - # property file - elsif (defined ($file = - $utf8::loose_to_file_of{$property_and_table})) - { - - # Here, there is no map file for the property we - # are trying to get the map of, but this is a - # binary property, and there is a file for it that - # can easily be translated to a mapping, so use - # that, treating this as a binary property. - # Setting 'minbits' here causes it to be stored as - # such in the cache, so if someone comes along - # later looking for just a binary, they get it. - $minbits = 1; - - # The 0+ makes sure is numeric - $invert_it = 0 + $file =~ s/!//; - $file = "$unicore_dir/lib/$file.pl" - unless $file =~ m!^#/!; - last GETFILE; - } - } - } - - ## - ## If we reach this line, it's because we couldn't figure - ## out what to do with $type. Ouch. - ## - - pop @recursed if @recursed; - return $type; - } # end of GETFILE block - - if (defined $file) { - print STDERR __LINE__, ": found it (file='$file')\n" if DEBUG; - - ## - ## If we reach here, it was due to a 'last GETFILE' above - ## (exception: user-defined properties and mappings), so we - ## have a filename, so now we load it if we haven't already. - - # The pseudo-directory '#' means the result isn't really a - # file, but is in-line, with semi-colons to be turned into - # new-lines. Since it is in-line there is no advantage to - # caching the result - if ($file =~ s!^#/!!) { - $list = $utf8::inline_definitions[$file]; - } - else { - # Here, we have an actual file to read in and load, but it - # may already have been read-in and cached. The cache key - # is the class and file to load, and whether the results - # need to be inverted. - my $found = $Cache{$class, $file, $invert_it}; - if ($found and ref($found) eq $class) { - print STDERR __LINE__, ": Returning cached swash for '$class,$file,$invert_it' for \\p{$type}\n" if DEBUG; - pop @recursed if @recursed; - return $found; - } - - local $@; - local $!; - $list = do $file; die $@ if $@; - } - - $list_is_from_mktables = 1; - } - } # End of $type is non-null - - # Here, either $type was null, or we found the requested property and - # read it into $list - - my $extras = ""; - - my $bits = $minbits; - - # mktables lists don't have extras, like '&utf8::prop', so don't need - # to separate them; also lists are already sorted, so don't need to do - # that. - if ($list && ! $list_is_from_mktables) { - my $taint = substr($list,0,0); # maintain taint - - # Separate the extras from the code point list, and make sure - # user-defined properties and tr/// are well-behaved for - # downstream code. - if ($user_defined || $none) { - my @tmp = split(/^/m, $list); - my %seen; - no warnings; - - # The extras are anything that doesn't begin with a hex digit. - $extras = join '', $taint, grep /^[^0-9a-fA-F]/, @tmp; - - # Remove the extras, and sort the remaining entries by the - # numeric value of their beginning hex digits, removing any - # duplicates. - $list = join '', $taint, - map { $_->[1] } - sort { $a->[0] <=> $b->[0] } - map { /^([0-9a-fA-F]+)/ && !$seen{$1}++ ? [ CORE::hex($1), $_ ] : () } - @tmp; # XXX doesn't do ranges right - } - else { - # mktables has gone to some trouble to make non-user defined - # properties well-behaved, so we can skip the effort we do for - # user-defined ones. Any extras are at the very beginning of - # the string. - - # This regex splits out the first lines of $list into $1 and - # strips them off from $list, until we get one that begins - # with a hex number, alone on the line, or followed by a tab. - # Either portion may be empty. - $list =~ s/ \A ( .*? ) - (?: \z | (?= ^ [0-9a-fA-F]+ (?: \t | $) ) ) - //msx; - - $extras = "$taint$1"; - } - } - - if ($none) { - my $hextra = sprintf "%04x", $none + 1; - $list =~ s/\tXXXX$/\t$hextra/mg; - } - - if ($minbits != 1 && $minbits < 32) { # not binary property - my $top = 0; - while ($list =~ /^([0-9a-fA-F]+)(?:[\t]([0-9a-fA-F]+)?)(?:[ \t]([0-9a-fA-F]+))?/mg) { - my $min = CORE::hex $1; - my $max = defined $2 ? CORE::hex $2 : $min; - my $val = defined $3 ? CORE::hex $3 : 0; - $val += $max - $min if defined $3; - $top = $val if $val > $top; - } - my $topbits = - $top > 0xffff ? 32 : - $top > 0xff ? 16 : 8; - $bits = $topbits if $bits < $topbits; - } - - my @extras; - if ($extras) { - for my $x ($extras) { - my $taint = substr($x,0,0); # maintain taint - pos $x = 0; - while ($x =~ /^([^0-9a-fA-F\n])(.*)/mg) { - my $char = "$1$taint"; - my $name = "$2$taint"; - print STDERR __LINE__, ": char [$char] => name [$name]\n" - if DEBUG; - if ($char =~ /[-+!&]/) { - my ($c,$t) = split(/::/, $name, 2); # bogus use of ::, really - my $subobj; - if ($c eq 'utf8') { - $subobj = utf8->SWASHNEW($t, "", $minbits, 0); - } - elsif (exists &$name) { - $subobj = utf8->SWASHNEW($name, "", $minbits, 0); - } - elsif ($c =~ /^([0-9a-fA-F]+)/) { - $subobj = utf8->SWASHNEW("", $c, $minbits, 0); - } - print STDERR __LINE__, ": returned from getting sub object for $name\n" if DEBUG; - if (! ref $subobj) { - pop @recursed if @recursed && $type; - return $subobj; - } - push @extras, $name => $subobj; - $bits = $subobj->{BITS} if $bits < $subobj->{BITS}; - $user_defined = $subobj->{USER_DEFINED} - if $subobj->{USER_DEFINED}; - } - } - } - } - - if (DEBUG) { - print STDERR __LINE__, ": CLASS = $class, TYPE => $type, BITS => $bits, NONE => $none, INVERT_IT => $invert_it, USER_DEFINED => $user_defined"; - print STDERR "\nLIST =>\n$list" if defined $list; - print STDERR "\nEXTRAS =>\n$extras" if defined $extras; - print STDERR "\n"; - } - - my $SWASH = bless { - TYPE => $type, - BITS => $bits, - EXTRAS => $extras, - LIST => $list, - NONE => $none, - USER_DEFINED => $user_defined, - @extras, - } => $class; - - if ($file) { - $Cache{$class, $file, $invert_it} = $SWASH; - if ($type - && exists $utf8::SwashInfo{$type} - && exists $utf8::SwashInfo{$type}{'specials_name'}) - { - my $specials_name = $utf8::SwashInfo{$type}{'specials_name'}; - no strict "refs"; - print STDERR "\nspecials_name => $specials_name\n" if DEBUG; - $SWASH->{'SPECIALS'} = \%$specials_name; - } - $SWASH->{'INVERT_IT'} = $invert_it; - } - - pop @recursed if @recursed && $type; - - return $SWASH; - } -} - -# Now SWASHGET is recasted into a C function S_swatch_get (see utf8.c). - -1; diff --git a/software/Slic3r-1.3.0.64bit/lib/vars.pm b/software/Slic3r-1.3.0.64bit/lib/vars.pm deleted file mode 100644 index a1a0d958..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/vars.pm +++ /dev/null @@ -1,50 +0,0 @@ -#line 1 "vars.pm" -package vars; - -use 5.006; - -our $VERSION = '1.03'; - -use warnings::register; -use strict qw(vars subs); - -sub import { - my $callpack = caller; - my (undef, @imports) = @_; - my ($sym, $ch); - foreach (@imports) { - if (($ch, $sym) = /^([\$\@\%\*\&])(.+)/) { - if ($sym =~ /\W/) { - # time for a more-detailed check-up - if ($sym =~ /^\w+[[{].*[]}]$/) { - require Carp; - Carp::croak("Can't declare individual elements of hash or array"); - } elsif (warnings::enabled() and length($sym) == 1 and $sym !~ tr/a-zA-Z//) { - warnings::warn("No need to declare built-in vars"); - } elsif (($^H &= strict::bits('vars'))) { - require Carp; - Carp::croak("'$_' is not a valid variable name under strict vars"); - } - } - $sym = "${callpack}::$sym" unless $sym =~ /::/; - *$sym = - ( $ch eq "\$" ? \$$sym - : $ch eq "\@" ? \@$sym - : $ch eq "\%" ? \%$sym - : $ch eq "\*" ? \*$sym - : $ch eq "\&" ? \&$sym - : do { - require Carp; - Carp::croak("'$_' is not a valid variable name"); - }); - } else { - require Carp; - Carp::croak("'$_' is not a valid variable name"); - } - } -}; - -1; -__END__ - -#line 84 diff --git a/software/Slic3r-1.3.0.64bit/lib/warnings.pm b/software/Slic3r-1.3.0.64bit/lib/warnings.pm deleted file mode 100644 index eb948c52..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/warnings.pm +++ /dev/null @@ -1,478 +0,0 @@ -#line 1 "warnings.pm" -# -*- buffer-read-only: t -*- -# !!!!!!! DO NOT EDIT THIS FILE !!!!!!! -# This file is built by regen/warnings.pl. -# Any changes made here will be lost! - -package warnings; - -our $VERSION = "1.36"; - -# Verify that we're called correctly so that warnings will work. -# Can't use Carp, since Carp uses us! -# String regexps because constant folding = smaller optree = less memory vs regexp literal -# see also strict.pm. -die sprintf "Incorrect use of pragma '%s' at %s line %d.\n", __PACKAGE__, +(caller)[1,2] - if __FILE__ !~ ( '(?x) \b '.__PACKAGE__.' \.pmc? \z' ) - && __FILE__ =~ ( '(?x) \b (?i:'.__PACKAGE__.') \.pmc? \z' ); - -our %Offsets = ( - # Warnings Categories added in Perl 5.008 - 'all' => 0, - 'closure' => 2, - 'deprecated' => 4, - 'exiting' => 6, - 'glob' => 8, - 'io' => 10, - 'closed' => 12, - 'exec' => 14, - 'layer' => 16, - 'newline' => 18, - 'pipe' => 20, - 'unopened' => 22, - 'misc' => 24, - 'numeric' => 26, - 'once' => 28, - 'overflow' => 30, - 'pack' => 32, - 'portable' => 34, - 'recursion' => 36, - 'redefine' => 38, - 'regexp' => 40, - 'severe' => 42, - 'debugging' => 44, - 'inplace' => 46, - 'internal' => 48, - 'malloc' => 50, - 'signal' => 52, - 'substr' => 54, - 'syntax' => 56, - 'ambiguous' => 58, - 'bareword' => 60, - 'digit' => 62, - 'parenthesis' => 64, - 'precedence' => 66, - 'printf' => 68, - 'prototype' => 70, - 'qw' => 72, - 'reserved' => 74, - 'semicolon' => 76, - 'taint' => 78, - 'threads' => 80, - 'uninitialized' => 82, - 'unpack' => 84, - 'untie' => 86, - 'utf8' => 88, - 'void' => 90, - - # Warnings Categories added in Perl 5.011 - 'imprecision' => 92, - 'illegalproto' => 94, - - # Warnings Categories added in Perl 5.013 - 'non_unicode' => 96, - 'nonchar' => 98, - 'surrogate' => 100, - - # Warnings Categories added in Perl 5.017 - 'experimental' => 102, - 'experimental::lexical_subs' => 104, - 'experimental::regex_sets' => 106, - 'experimental::smartmatch' => 108, - - # Warnings Categories added in Perl 5.019 - 'experimental::postderef' => 110, - 'experimental::signatures' => 112, - 'syscalls' => 114, - - # Warnings Categories added in Perl 5.021 - 'experimental::bitwise' => 116, - 'experimental::const_attr' => 118, - 'experimental::re_strict' => 120, - 'experimental::refaliasing' => 122, - 'experimental::win32_perlio' => 124, - 'locale' => 126, - 'missing' => 128, - 'redundant' => 130, -); - -our %Bits = ( - 'all' => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x05", # [0..65] - 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [29] - 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [30] - 'closed' => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6] - 'closure' => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1] - 'debugging' => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22] - 'deprecated' => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2] - 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31] - 'exec' => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7] - 'exiting' => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3] - 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x55\x51\x15\x00", # [51..56,58..62] - 'experimental::bitwise' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [58] - 'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [59] - 'experimental::lexical_subs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [52] - 'experimental::postderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [55] - 'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [60] - 'experimental::refaliasing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [61] - 'experimental::regex_sets' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [53] - 'experimental::signatures' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [56] - 'experimental::smartmatch' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [54] - 'experimental::win32_perlio' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [62] - 'glob' => "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4] - 'illegalproto' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [47] - 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [46] - 'inplace' => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23] - 'internal' => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24] - 'io' => "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [5..11,57] - 'layer' => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8] - 'locale' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [63] - 'malloc' => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25] - 'misc' => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12] - 'missing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [64] - 'newline' => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9] - 'non_unicode' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [48] - 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [49] - 'numeric' => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13] - 'once' => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14] - 'overflow' => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15] - 'pack' => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16] - 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00", # [32] - 'pipe' => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10] - 'portable' => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17] - 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [33] - 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [34] - 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [35] - 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [36] - 'recursion' => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18] - 'redefine' => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19] - 'redundant' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [65] - 'regexp' => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20] - 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [37] - 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [38] - 'severe' => "\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25] - 'signal' => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26] - 'substr' => "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27] - 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [50] - 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x40\x00\x00\x00\x00\x00", # [28..38,47] - 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [57] - 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [39] - 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [40] - 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00", # [41] - 'unopened' => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11] - 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [42] - 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [43] - 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x15\x00\x00\x00\x00", # [44,48..50] - 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [45] -); - -our %DeadBits = ( - 'all' => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\x0a", # [0..65] - 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [29] - 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [30] - 'closed' => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6] - 'closure' => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1] - 'debugging' => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22] - 'deprecated' => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2] - 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31] - 'exec' => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7] - 'exiting' => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3] - 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xaa\xa2\x2a\x00", # [51..56,58..62] - 'experimental::bitwise' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [58] - 'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [59] - 'experimental::lexical_subs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [52] - 'experimental::postderef' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [55] - 'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [60] - 'experimental::refaliasing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [61] - 'experimental::regex_sets' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [53] - 'experimental::signatures' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [56] - 'experimental::smartmatch' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [54] - 'experimental::win32_perlio' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [62] - 'glob' => "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4] - 'illegalproto' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [47] - 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [46] - 'inplace' => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23] - 'internal' => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24] - 'io' => "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [5..11,57] - 'layer' => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8] - 'locale' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [63] - 'malloc' => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25] - 'misc' => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12] - 'missing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [64] - 'newline' => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9] - 'non_unicode' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [48] - 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [49] - 'numeric' => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13] - 'once' => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14] - 'overflow' => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15] - 'pack' => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16] - 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00", # [32] - 'pipe' => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10] - 'portable' => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17] - 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [33] - 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [34] - 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [35] - 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [36] - 'recursion' => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18] - 'redefine' => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19] - 'redundant' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [65] - 'regexp' => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20] - 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [37] - 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [38] - 'severe' => "\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25] - 'signal' => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26] - 'substr' => "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27] - 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [50] - 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x80\x00\x00\x00\x00\x00", # [28..38,47] - 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [57] - 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [39] - 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [40] - 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00", # [41] - 'unopened' => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11] - 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [42] - 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [43] - 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x2a\x00\x00\x00\x00", # [44,48..50] - 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [45] -); - -# These are used by various things, including our own tests -our $NONE = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; -our $DEFAULT = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x00\x55\x51\x55\x00", # [2,58,59,52,55,60,61,53,56,54,62,4,63,22,23,25] -our $LAST_BIT = 132 ; -our $BYTES = 17 ; - -our $All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ; - -sub Croaker -{ - require Carp; # this initializes %CarpInternal - local $Carp::CarpInternal{'warnings'}; - delete $Carp::CarpInternal{'warnings'}; - Carp::croak(@_); -} - -sub _bits { - my $mask = shift ; - my $catmask ; - my $fatal = 0 ; - my $no_fatal = 0 ; - - foreach my $word ( @_ ) { - if ($word eq 'FATAL') { - $fatal = 1; - $no_fatal = 0; - } - elsif ($word eq 'NONFATAL') { - $fatal = 0; - $no_fatal = 1; - } - elsif ($catmask = $Bits{$word}) { - $mask |= $catmask ; - $mask |= $DeadBits{$word} if $fatal ; - $mask &= ~($DeadBits{$word}|$All) if $no_fatal ; - } - else - { Croaker("Unknown warnings category '$word'")} - } - - return $mask ; -} - -sub bits -{ - # called from B::Deparse.pm - push @_, 'all' unless @_ ; - return _bits(undef, @_) ; -} - -sub import -{ - shift; - - my $mask = ${^WARNING_BITS} // ($^W ? $Bits{all} : $DEFAULT) ; - - if (vec($mask, $Offsets{'all'}, 1)) { - $mask |= $Bits{'all'} ; - $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1); - } - - # append 'all' when implied (after a lone "FATAL" or "NONFATAL") - push @_, 'all' if @_==1 && ( $_[0] eq 'FATAL' || $_[0] eq 'NONFATAL' ); - - # Empty @_ is equivalent to @_ = 'all' ; - ${^WARNING_BITS} = @_ ? _bits($mask, @_) : $mask | $Bits{all} ; -} - -sub unimport -{ - shift; - - my $catmask ; - my $mask = ${^WARNING_BITS} // ($^W ? $Bits{all} : $DEFAULT) ; - - if (vec($mask, $Offsets{'all'}, 1)) { - $mask |= $Bits{'all'} ; - $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1); - } - - # append 'all' when implied (empty import list or after a lone "FATAL") - push @_, 'all' if !@_ || @_==1 && $_[0] eq 'FATAL'; - - foreach my $word ( @_ ) { - if ($word eq 'FATAL') { - next; - } - elsif ($catmask = $Bits{$word}) { - $mask &= ~($catmask | $DeadBits{$word} | $All); - } - else - { Croaker("Unknown warnings category '$word'")} - } - - ${^WARNING_BITS} = $mask ; -} - -my %builtin_type; @builtin_type{qw(SCALAR ARRAY HASH CODE REF GLOB LVALUE Regexp)} = (); - -sub MESSAGE () { 4 }; -sub FATAL () { 2 }; -sub NORMAL () { 1 }; - -sub __chk -{ - my $category ; - my $offset ; - my $isobj = 0 ; - my $wanted = shift; - my $has_message = $wanted & MESSAGE; - - unless (@_ == 1 || @_ == ($has_message ? 2 : 0)) { - my $sub = (caller 1)[3]; - my $syntax = $has_message ? "[category,] 'message'" : '[category]'; - Croaker("Usage: $sub($syntax)"); - } - - my $message = pop if $has_message; - - if (@_) { - # check the category supplied. - $category = shift ; - if (my $type = ref $category) { - Croaker("not an object") - if exists $builtin_type{$type}; - $category = $type; - $isobj = 1 ; - } - $offset = $Offsets{$category}; - Croaker("Unknown warnings category '$category'") - unless defined $offset; - } - else { - $category = (caller(1))[0] ; - $offset = $Offsets{$category}; - Croaker("package '$category' not registered for warnings") - unless defined $offset ; - } - - my $i; - - if ($isobj) { - my $pkg; - $i = 2; - while (do { { package DB; $pkg = (caller($i++))[0] } } ) { - last unless @DB::args && $DB::args[0] =~ /^$category=/ ; - } - $i -= 2 ; - } - else { - $i = _error_loc(); # see where Carp will allocate the error - } - - # Default to 0 if caller returns nothing. Default to $DEFAULT if it - # explicitly returns undef. - my(@callers_bitmask) = (caller($i))[9] ; - my $callers_bitmask = - @callers_bitmask ? $callers_bitmask[0] // $DEFAULT : 0 ; - - my @results; - foreach my $type (FATAL, NORMAL) { - next unless $wanted & $type; - - push @results, (vec($callers_bitmask, $offset + $type - 1, 1) || - vec($callers_bitmask, $Offsets{'all'} + $type - 1, 1)); - } - - # &enabled and &fatal_enabled - return $results[0] unless $has_message; - - # &warnif, and the category is neither enabled as warning nor as fatal - return if $wanted == (NORMAL | FATAL | MESSAGE) - && !($results[0] || $results[1]); - - require Carp; - Carp::croak($message) if $results[0]; - # will always get here for &warn. will only get here for &warnif if the - # category is enabled - Carp::carp($message); -} - -sub _mkMask -{ - my ($bit) = @_; - my $mask = ""; - - vec($mask, $bit, 1) = 1; - return $mask; -} - -sub register_categories -{ - my @names = @_; - - for my $name (@names) { - if (! defined $Bits{$name}) { - $Bits{$name} = _mkMask($LAST_BIT); - vec($Bits{'all'}, $LAST_BIT, 1) = 1; - $Offsets{$name} = $LAST_BIT ++; - foreach my $k (keys %Bits) { - vec($Bits{$k}, $LAST_BIT, 1) = 0; - } - $DeadBits{$name} = _mkMask($LAST_BIT); - vec($DeadBits{'all'}, $LAST_BIT++, 1) = 1; - } - } -} - -sub _error_loc { - require Carp; - goto &Carp::short_error_loc; # don't introduce another stack frame -} - -sub enabled -{ - return __chk(NORMAL, @_); -} - -sub fatal_enabled -{ - return __chk(FATAL, @_); -} - -sub warn -{ - return __chk(FATAL | MESSAGE, @_); -} - -sub warnif -{ - return __chk(NORMAL | FATAL | MESSAGE, @_); -} - -# These are not part of any public interface, so we can delete them to save -# space. -delete @warnings::{qw(NORMAL FATAL MESSAGE)}; - -1; -__END__ -#line 1242 - -# ex: set ro: diff --git a/software/Slic3r-1.3.0.64bit/lib/warnings/register.pm b/software/Slic3r-1.3.0.64bit/lib/warnings/register.pm deleted file mode 100644 index 50d1fdfd..00000000 --- a/software/Slic3r-1.3.0.64bit/lib/warnings/register.pm +++ /dev/null @@ -1,31 +0,0 @@ -#line 1 "warnings/register.pm" -package warnings::register; - -our $VERSION = '1.04'; -require warnings; - -# left here as cruft in case other users were using this undocumented routine -# -- rjbs, 2010-09-08 -sub mkMask -{ - my ($bit) = @_; - my $mask = ""; - - vec($mask, $bit, 1) = 1; - return $mask; -} - -sub import -{ - shift; - my @categories = @_; - - my $package = (caller(0))[0]; - warnings::register_categories($package); - - warnings::register_categories($package . "::$_") for @categories; -} -1; -__END__ - -#line 47 diff --git a/software/Slic3r-1.3.0.64bit/libgcc_s_seh-1.dll b/software/Slic3r-1.3.0.64bit/libgcc_s_seh-1.dll deleted file mode 100644 index a6e6b5d8..00000000 Binary files a/software/Slic3r-1.3.0.64bit/libgcc_s_seh-1.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/libglut-0__.dll b/software/Slic3r-1.3.0.64bit/libglut-0__.dll deleted file mode 100644 index 1f13680b..00000000 Binary files a/software/Slic3r-1.3.0.64bit/libglut-0__.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/libstdc++-6.dll b/software/Slic3r-1.3.0.64bit/libstdc++-6.dll deleted file mode 100644 index cdf4c6c8..00000000 Binary files a/software/Slic3r-1.3.0.64bit/libstdc++-6.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/libwinpthread-1.dll b/software/Slic3r-1.3.0.64bit/libwinpthread-1.dll deleted file mode 100644 index 2d5ecc2e..00000000 Binary files a/software/Slic3r-1.3.0.64bit/libwinpthread-1.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/cpanm b/software/Slic3r-1.3.0.64bit/local-lib/bin/cpanm deleted file mode 100644 index bfa21e05..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/cpanm +++ /dev/null @@ -1,1075 +0,0 @@ -#!perl -# -# This is a pre-compiled source code for the cpanm (cpanminus) program. -# For more details about how to install cpanm, go to the following URL: -# -# https://github.com/miyagawa/cpanminus -# -# Quickstart: Run the following command and it will install itself for -# you. You might want to run it as a root with sudo if you want to install -# to places like /usr/local/bin. -# -# % curl -L https://cpanmin.us | perl - App::cpanminus -# -# If you don't have curl but wget, replace `curl -L` with `wget -O -`. - -# DO NOT EDIT -- this is an auto generated file - -# This chunk of stuff was generated by App::FatPacker. To find the original -# file's code, look for the end of this BEGIN block or the string 'FATPACK' -BEGIN { -my %fatpacked; - -$fatpacked{"App/cpanminus.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'APP_CPANMINUS'; - package App::cpanminus;our$VERSION="1.7044";1; -APP_CPANMINUS - -$fatpacked{"App/cpanminus/Dependency.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'APP_CPANMINUS_DEPENDENCY'; - package App::cpanminus::Dependency;use strict;use CPAN::Meta::Requirements;sub from_prereqs {my($class,$prereqs,$phases,$types)=@_;my@deps;for my$type (@$types){push@deps,$class->from_versions($prereqs->merged_requirements($phases,[$type])->as_string_hash,$type,)}return@deps}sub from_versions {my($class,$versions,$type)=@_;my@deps;while (my($module,$version)=each %$versions){push@deps,$class->new($module,$version,$type)}@deps}sub merge_with {my($self,$requirements)=@_;$self->{original_version}=$self->version;eval {$requirements->add_string_requirement($self->module,$self->version)};if ($@ =~ /illegal requirements/){warn sprintf("Can't merge requirements for %s: '%s' and '%s'",$self->module,$self->version,$requirements->requirements_for_module($self->module))}$self->{version}=$requirements->requirements_for_module($self->module)}sub new {my($class,$module,$version,$type)=@_;bless {module=>$module,version=>$version,type=>$type || 'requires',},$class}sub module {$_[0]->{module}}sub version {$_[0]->{version}}sub type {$_[0]->{type}}sub requires_version {my$self=shift;if (defined$self->{original_version}){return$self->{original_version}}$self->version}sub is_requirement {$_[0]->{type}eq 'requires'}1; -APP_CPANMINUS_DEPENDENCY - -$fatpacked{"App/cpanminus/script.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'APP_CPANMINUS_SCRIPT'; - package App::cpanminus::script;use strict;use Config;use Cwd ();use App::cpanminus;use App::cpanminus::Dependency;use File::Basename ();use File::Find ();use File::Path ();use File::Spec ();use File::Copy ();use File::Temp ();use Getopt::Long ();use Symbol ();use String::ShellQuote ();use version ();use constant WIN32=>$^O eq 'MSWin32';use constant BAD_TAR=>($^O eq 'solaris' || $^O eq 'hpux');use constant CAN_SYMLINK=>eval {symlink("","");1};our$VERSION=$App::cpanminus::VERSION;if ($INC{"App/FatPacker/Trace.pm"}){require version::vpp}my$quote=WIN32 ? q/"/ : q/'/;sub agent {my$self=shift;my$agent="cpanminus/$VERSION";$agent .= " perl/$]" if$self->{report_perl_version};$agent}sub determine_home {my$class=shift;my$homedir=$ENV{HOME}|| eval {require File::HomeDir;File::HomeDir->my_home}|| join('',@ENV{qw(HOMEDRIVE HOMEPATH)});if (WIN32){require Win32;$homedir=Win32::GetShortPathName($homedir)}return "$homedir/.cpanm"}sub new {my$class=shift;bless {home=>$class->determine_home,cmd=>'install',seen=>{},notest=>undef,test_only=>undef,installdeps=>undef,force=>undef,sudo=>undef,make=>undef,verbose=>undef,quiet=>undef,interactive=>undef,log=>undef,mirrors=>[],mirror_only=>undef,mirror_index=>undef,cpanmetadb=>"http://cpanmetadb.plackperl.org/v1.0/",perl=>$^X,argv=>[],local_lib=>undef,self_contained=>undef,exclude_vendor=>undef,prompt_timeout=>0,prompt=>undef,configure_timeout=>60,build_timeout=>3600,test_timeout=>1800,try_lwp=>1,try_wget=>1,try_curl=>1,uninstall_shadows=>($] < 5.012),skip_installed=>1,skip_satisfied=>0,auto_cleanup=>7,pod2man=>1,installed_dists=>0,install_types=>['requires'],with_develop=>0,with_configure=>0,showdeps=>0,scandeps=>0,scandeps_tree=>[],format=>'tree',save_dists=>undef,skip_configure=>0,verify=>0,report_perl_version=>!$class->maybe_ci,build_args=>{},features=>{},pure_perl=>0,cpanfile_path=>'cpanfile',@_,},$class}sub env {my($self,$key)=@_;$ENV{"PERL_CPANM_" .$key}}sub maybe_ci {my$class=shift;grep$ENV{$_},qw(TRAVIS CI AUTOMATED_TESTING AUTHOR_TESTING)}sub install_type_handlers {my$self=shift;my@handlers;for my$type (qw(recommends suggests)){push@handlers,"with-$type"=>sub {my%uniq;$self->{install_types}=[grep!$uniq{$_}++,@{$self->{install_types}},$type ]};push@handlers,"without-$type"=>sub {$self->{install_types}=[grep $_ ne $type,@{$self->{install_types}}]}}@handlers}sub build_args_handlers {my$self=shift;my@handlers;for my$phase (qw(configure build test install)){push@handlers,"$phase-args=s"=>\($self->{build_args}{$phase})}@handlers}sub parse_options {my$self=shift;local@ARGV=@{$self->{argv}};push@ARGV,grep length,split /\s+/,$self->env('OPT');push@ARGV,@_;Getopt::Long::Configure("bundling");Getopt::Long::GetOptions('f|force'=>sub {$self->{skip_installed}=0;$self->{force}=1},'n|notest!'=>\$self->{notest},'test-only'=>sub {$self->{notest}=0;$self->{skip_installed}=0;$self->{test_only}=1},'S|sudo!'=>\$self->{sudo},'v|verbose'=>\$self->{verbose},'verify!'=>\$self->{verify},'q|quiet!'=>\$self->{quiet},'h|help'=>sub {$self->{action}='show_help'},'V|version'=>sub {$self->{action}='show_version'},'perl=s'=>sub {$self->diag("--perl is deprecated since it's known to be fragile in figuring out dependencies. Run `$_[1] -S cpanm` instead.\n",1);$self->{perl}=$_[1]},'l|local-lib=s'=>sub {$self->{local_lib}=$self->maybe_abs($_[1])},'L|local-lib-contained=s'=>sub {$self->{local_lib}=$self->maybe_abs($_[1]);$self->{self_contained}=1;$self->{pod2man}=undef},'self-contained!'=>\$self->{self_contained},'exclude-vendor!'=>\$self->{exclude_vendor},'mirror=s@'=>$self->{mirrors},'mirror-only!'=>\$self->{mirror_only},'mirror-index=s'=>sub {$self->{mirror_index}=$self->maybe_abs($_[1])},'M|from=s'=>sub {$self->{mirrors}=[$_[1]];$self->{mirror_only}=1},'cpanmetadb=s'=>\$self->{cpanmetadb},'cascade-search!'=>\$self->{cascade_search},'prompt!'=>\$self->{prompt},'installdeps'=>\$self->{installdeps},'skip-installed!'=>\$self->{skip_installed},'skip-satisfied!'=>\$self->{skip_satisfied},'reinstall'=>sub {$self->{skip_installed}=0},'interactive!'=>\$self->{interactive},'i|install'=>sub {$self->{cmd}='install'},'info'=>sub {$self->{cmd}='info'},'look'=>sub {$self->{cmd}='look';$self->{skip_installed}=0},'U|uninstall'=>sub {$self->{cmd}='uninstall'},'self-upgrade'=>sub {$self->{action}='self_upgrade'},'uninst-shadows!'=>\$self->{uninstall_shadows},'lwp!'=>\$self->{try_lwp},'wget!'=>\$self->{try_wget},'curl!'=>\$self->{try_curl},'auto-cleanup=s'=>\$self->{auto_cleanup},'man-pages!'=>\$self->{pod2man},'scandeps'=>\$self->{scandeps},'showdeps'=>sub {$self->{showdeps}=1;$self->{skip_installed}=0},'format=s'=>\$self->{format},'save-dists=s'=>sub {$self->{save_dists}=$self->maybe_abs($_[1])},'skip-configure!'=>\$self->{skip_configure},'dev!'=>\$self->{dev_release},'metacpan!'=>\$self->{metacpan},'report-perl-version!'=>\$self->{report_perl_version},'configure-timeout=i'=>\$self->{configure_timeout},'build-timeout=i'=>\$self->{build_timeout},'test-timeout=i'=>\$self->{test_timeout},'with-develop'=>\$self->{with_develop},'without-develop'=>sub {$self->{with_develop}=0},'with-configure'=>\$self->{with_configure},'without-configure'=>sub {$self->{with_configure}=0},'with-feature=s'=>sub {$self->{features}{$_[1]}=1},'without-feature=s'=>sub {$self->{features}{$_[1]}=0},'with-all-features'=>sub {$self->{features}{__all}=1},'pp|pureperl!'=>\$self->{pure_perl},"cpanfile=s"=>\$self->{cpanfile_path},$self->install_type_handlers,$self->build_args_handlers,);if (!@ARGV && $0 ne '-' &&!-t STDIN){push@ARGV,$self->load_argv_from_fh(\*STDIN);$self->{load_from_stdin}=1}$self->{argv}=\@ARGV}sub check_upgrade {my$self=shift;my$install_base=$ENV{PERL_LOCAL_LIB_ROOT}? $self->local_lib_target($ENV{PERL_LOCAL_LIB_ROOT}): $Config{installsitebin};if ($0 eq '-'){return}elsif ($0 !~ /^$install_base/){if ($0 =~ m!perlbrew/bin!){die <<DIE}else {die <<DIE}}}sub check_libs {my$self=shift;return if$self->{_checked}++;$self->bootstrap_local_lib}sub setup_verify {my$self=shift;my$has_modules=eval {require Module::Signature;require Digest::SHA;1};$self->{cpansign}=$self->which('cpansign');unless ($has_modules && $self->{cpansign}){warn "WARNING: Module::Signature and Digest::SHA is required for distribution verifications.\n";$self->{verify}=0}}sub parse_module_args {my($self,$module)=@_;$module =~ s/^([A-Za-z0-9_:]+)@([v\d\._]+)$/$1~== $2/;if ($module =~ /\~[v\d\._,\!<>= ]+$/){return split /\~/,$module,2}else {return$module,undef}}sub doit {my$self=shift;my$code;eval {$code=($self->_doit==0)};if (my$e=$@){warn$e;$code=1}return$code}sub _doit {my$self=shift;$self->setup_home;$self->init_tools;$self->setup_verify if$self->{verify};if (my$action=$self->{action}){$self->$action()and return 1}return$self->show_help(1)unless @{$self->{argv}}or $self->{load_from_stdin};$self->configure_mirrors;my$cwd=Cwd::cwd;my@fail;for my$module (@{$self->{argv}}){if ($module =~ s/\.pm$//i){my ($volume,$dirs,$file)=File::Spec->splitpath($module);$module=join '::',grep {$_}File::Spec->splitdir($dirs),$file}($module,my$version)=$self->parse_module_args($module);$self->chdir($cwd);if ($self->{cmd}eq 'uninstall'){$self->uninstall_module($module)or push@fail,$module}else {$self->install_module($module,0,$version)or push@fail,$module}}if ($self->{base}&& $self->{auto_cleanup}){$self->cleanup_workdirs}if ($self->{installed_dists}){my$dists=$self->{installed_dists}> 1 ? "distributions" : "distribution";$self->diag("$self->{installed_dists} $dists installed\n",1)}if ($self->{scandeps}){$self->dump_scandeps()}$self->chdir($cwd);return!@fail}sub setup_home {my$self=shift;$self->{home}=$self->env('HOME')if$self->env('HOME');unless (_writable($self->{home})){die "Can't write to cpanm home '$self->{home}': You should fix it with chown/chmod first.\n"}$self->{base}="$self->{home}/work/" .time .".$$";File::Path::mkpath([$self->{base}],0,0777);$self->{log}=File::Spec->catfile($self->{base},"build.log");my$final_log="$self->{home}/build.log";{open my$out,">$self->{log}" or die "$self->{log}: $!"}if (CAN_SYMLINK){my$build_link="$self->{home}/latest-build";unlink$build_link;symlink$self->{base},$build_link;unlink$final_log;symlink$self->{log},$final_log}else {my$log=$self->{log};my$home=$self->{home};$self->{at_exit}=sub {my$self=shift;my$temp_log="$home/build.log." .time .".$$";File::Copy::copy($log,$temp_log)&& unlink($final_log);rename($temp_log,$final_log)}}$self->chat("cpanm (App::cpanminus) $VERSION on perl $] built for $Config{archname}\n" ."Work directory is $self->{base}\n")}sub package_index_for {my ($self,$mirror)=@_;return$self->source_for($mirror)."/02packages.details.txt"}sub generate_mirror_index {my ($self,$mirror)=@_;my$file=$self->package_index_for($mirror);my$gz_file=$file .'.gz';my$index_mtime=(stat$gz_file)[9];unless (-e $file && (stat$file)[9]>= $index_mtime){$self->chat("Uncompressing index file...\n");if (eval {require Compress::Zlib}){my$gz=Compress::Zlib::gzopen($gz_file,"rb")or do {$self->diag_fail("$Compress::Zlib::gzerrno opening compressed index");return};open my$fh,'>',$file or do {$self->diag_fail("$! opening uncompressed index for write");return};my$buffer;while (my$status=$gz->gzread($buffer)){if ($status < 0){$self->diag_fail($gz->gzerror ." reading compressed index");return}print$fh $buffer}}else {if (system("gunzip -c $gz_file > $file")){$self->diag_fail("Cannot uncompress -- please install gunzip or Compress::Zlib");return}}utime$index_mtime,$index_mtime,$file}return 1}sub search_mirror_index {my ($self,$mirror,$module,$version)=@_;$self->search_mirror_index_file($self->package_index_for($mirror),$module,$version)}sub search_mirror_index_file {my($self,$file,$module,$version)=@_;open my$fh,'<',$file or return;my$found;while (<$fh>){if (m!^\Q$module\E\s+([\w\.]+)\s+(\S*)!m){$found=$self->cpan_module($module,$2,$1);last}}return$found unless$self->{cascade_search};if ($found){if ($self->satisfy_version($module,$found->{module_version},$version)){return$found}else {$self->chat("Found $module $found->{module_version} which doesn't satisfy $version.\n")}}return}sub with_version_range {my($self,$version)=@_;defined($version)&& $version =~ /(?:<|!=|==)/}sub encode_json {my($self,$data)=@_;require JSON::PP;my$json=JSON::PP::encode_json($data);$self->uri_escape($json)}sub decode_json {my($self,$json)=@_;require JSON::PP;JSON::PP::decode_json($json)}sub uri_escape {my($self,$fragment)=@_;$fragment =~ s/([^A-Za-z0-9\-\._~])/uc sprintf("%%%02X", ord($1))/eg;$fragment}sub uri_params {my($self,@params)=@_;my@param_strings;while (my$key=shift@params){my$value=shift@params;push@param_strings,join '=',map$self->uri_escape($_),$key,$value}return join '&',@param_strings}sub numify_ver {my($self,$ver)=@_;eval version->new($ver)->numify}sub search_metacpan {my($self,$module,$version,$dev_release)=@_;my$metacpan_uri='http://fastapi.metacpan.org/v1/download_url/';my$url=$metacpan_uri .$module;my$query=$self->uri_params(($version ? (version=>$version): ()),($dev_release ? (dev=>1): ()),);$url .= '?' .$query if length$query;my$dist_json=$self->get($url);my$dist_meta=eval {$self->decode_json($dist_json)};if ($dist_meta && $dist_meta->{download_url}){(my$distfile=$dist_meta->{download_url})=~ s!.+/authors/id/!!;local$self->{mirrors}=$self->{mirrors};$self->{mirrors}=['http://cpan.metacpan.org' ];return$self->cpan_module($module,$distfile,$dist_meta->{version})}$self->chat("! Could not find a release matching $module".($version?" ($version)":'')." on MetaCPAN.\n");return}sub search_database {my($self,$module,$version)=@_;my$found;if ($self->{dev_release}or $self->{metacpan}){$found=$self->search_metacpan($module,$version,$self->{dev_release})and return$found;$found=$self->search_cpanmetadb($module,$version,$self->{dev_release})and return$found}else {$found=$self->search_cpanmetadb($module,$version)and return$found;$found=$self->search_metacpan($module,$version)and return$found}}sub search_cpanmetadb {my($self,$module,$version,$dev_release)=@_;$self->chat("Searching $module ($version) on cpanmetadb ...\n");if ($self->with_version_range($version)){return$self->search_cpanmetadb_history($module,$version,$dev_release)}else {return$self->search_cpanmetadb_package($module,$version,$dev_release)}}sub search_cpanmetadb_package {my($self,$module,$version,$dev_release)=@_;require CPAN::Meta::YAML;(my$uri=$self->{cpanmetadb})=~ s{/?$}{/package/$module};my$yaml=$self->get($uri);my$meta=eval {CPAN::Meta::YAML::Load($yaml)};if ($meta && $meta->{distfile}){return$self->cpan_module($module,$meta->{distfile},$meta->{version})}$self->diag_fail("Finding $module on cpanmetadb failed.");return}sub search_cpanmetadb_history {my($self,$module,$version)=@_;(my$uri=$self->{cpanmetadb})=~ s{/?$}{/history/$module};my$content=$self->get($uri)or return;my@found;for my$line (split /\r?\n/,$content){if ($line =~ /^$module\s+(\S+)\s+(\S+)$/){push@found,{version=>$1,version_obj=>version::->parse($1),distfile=>$2,}}}return unless@found;$found[-1]->{latest}=1;my$match;for my$try (sort {$b->{version_obj}cmp $a->{version_obj}}@found){if ($self->satisfy_version($module,$try->{version_obj},$version)){local$self->{mirrors}=$self->{mirrors};unshift @{$self->{mirrors}},'http://backpan.perl.org' unless$try->{latest};return$self->cpan_module($module,$try->{distfile},$try->{version})}}$self->diag_fail("Finding $module ($version) on cpanmetadb failed.");return}sub search_module {my($self,$module,$version)=@_;if ($self->{mirror_index}){$self->mask_output(chat=>"Searching $module on mirror index $self->{mirror_index} ...\n");my$pkg=$self->search_mirror_index_file($self->{mirror_index},$module,$version);return$pkg if$pkg;unless ($self->{cascade_search}){$self->mask_output(diag_fail=>"Finding $module ($version) on mirror index $self->{mirror_index} failed.");return}}unless ($self->{mirror_only}){my$found=$self->search_database($module,$version);return$found if$found}MIRROR: for my$mirror (@{$self->{mirrors}}){$self->mask_output(chat=>"Searching $module on mirror $mirror ...\n");my$name='02packages.details.txt.gz';my$uri="$mirror/modules/$name";my$gz_file=$self->package_index_for($mirror).'.gz';unless ($self->{pkgs}{$uri}){$self->mask_output(chat=>"Downloading index file $uri ...\n");$self->mirror($uri,$gz_file);$self->generate_mirror_index($mirror)or next MIRROR;$self->{pkgs}{$uri}="!!retrieved!!"}my$pkg=$self->search_mirror_index($mirror,$module,$version);return$pkg if$pkg;$self->mask_output(diag_fail=>"Finding $module ($version) on mirror $mirror failed.")}return}sub source_for {my($self,$mirror)=@_;$mirror =~ s/[^\w\.\-]+/%/g;my$dir="$self->{home}/sources/$mirror";File::Path::mkpath([$dir ],0,0777);return$dir}sub load_argv_from_fh {my($self,$fh)=@_;my@argv;while(defined(my$line=<$fh>)){chomp$line;$line =~ s/#.+$//;$line =~ s/^\s+//;$line =~ s/\s+$//;push@argv,split ' ',$line if$line}return@argv}sub show_version {my$self=shift;print "cpanm (App::cpanminus) version $VERSION ($0)\n";print "perl version $] ($^X)\n\n";print " \%Config:\n";for my$key (qw(archname installsitelib installsitebin installman1dir installman3dir sitearchexp sitelibexp vendorarch vendorlibexp archlibexp privlibexp)){print " $key=$Config{$key}\n" if$Config{$key}}print " \%ENV:\n";for my$key (grep /^PERL/,sort keys%ENV){print " $key=$ENV{$key}\n"}print " \@INC:\n";for my$inc (@INC){print " $inc\n" unless ref($inc)eq 'CODE'}return 1}sub show_help {my$self=shift;if ($_[0]){print <<USAGE;return}print <<HELP;return 1}sub _writable {my$dir=shift;my@dir=File::Spec->splitdir($dir);while (@dir){$dir=File::Spec->catdir(@dir);if (-e $dir){return -w _}pop@dir}return}sub maybe_abs {my($self,$lib)=@_;if ($lib eq '_' or $lib =~ /^~/ or File::Spec->file_name_is_absolute($lib)){return$lib}else {return File::Spec->canonpath(File::Spec->catdir(Cwd::cwd(),$lib))}}sub local_lib_target {my($self,$root)=@_;(grep {$_ ne ''}split /\Q$Config{path_sep}/,$root)[0]}sub bootstrap_local_lib {my$self=shift;if ($self->{local_lib}){return$self->setup_local_lib($self->{local_lib})}if ($ENV{PERL_LOCAL_LIB_ROOT}&& $ENV{PERL_MM_OPT}){return$self->setup_local_lib($self->local_lib_target($ENV{PERL_LOCAL_LIB_ROOT}),1)}return if$self->{sudo}or (_writable($Config{installsitelib})and _writable($Config{installsitebin}));if ($ENV{PERL_MM_OPT}and ($ENV{MODULEBUILDRC}or $ENV{PERL_MB_OPT})){return}$self->setup_local_lib;$self->diag(<<DIAG,1);sleep 2}sub upgrade_toolchain {my($self,$config_deps)=@_;my%deps=map {$_->module=>$_}@$config_deps;my$reqs=CPAN::Meta::Requirements->from_string_hash({'Module::Build'=>'0.38','ExtUtils::MakeMaker'=>'6.58','ExtUtils::Install'=>'1.46',});if ($deps{"ExtUtils::MakeMaker"}){$deps{"ExtUtils::MakeMaker"}->merge_with($reqs)}elsif ($deps{"Module::Build"}){$deps{"Module::Build"}->merge_with($reqs);$deps{"ExtUtils::Install"}||= App::cpanminus::Dependency->new("ExtUtils::Install",0,'configure');$deps{"ExtUtils::Install"}->merge_with($reqs)}@$config_deps=values%deps}sub _core_only_inc {my($self,$base)=@_;require local::lib;(local::lib->resolve_path(local::lib->install_base_arch_path($base)),local::lib->resolve_path(local::lib->install_base_perl_path($base)),(!$self->{exclude_vendor}? grep {$_}@Config{qw(vendorarch vendorlibexp)}: ()),@Config{qw(archlibexp privlibexp)},)}sub _diff {my($self,$old,$new)=@_;my@diff;my%old=map {$_=>1}@$old;for my$n (@$new){push@diff,$n unless exists$old{$n}}@diff}sub _setup_local_lib_env {my($self,$base)=@_;$self->diag(<<WARN,1)if$base =~ /\s/;local$SIG{__WARN__}=sub {};local::lib->setup_env_hash_for($base,0)}sub setup_local_lib {my($self,$base,$no_env)=@_;$base=undef if$base eq '_';require local::lib;{local $0='cpanm';$base ||= "~/perl5";$base=local::lib->resolve_path($base);if ($self->{self_contained}){my@inc=$self->_core_only_inc($base);$self->{search_inc}=[@inc ]}else {$self->{search_inc}=[local::lib->install_base_arch_path($base),local::lib->install_base_perl_path($base),@INC,]}$self->_setup_local_lib_env($base)unless$no_env;$self->{local_lib}=$base}}sub prompt_bool {my($self,$mess,$def)=@_;my$val=$self->prompt($mess,$def);return lc$val eq 'y'}sub prompt {my($self,$mess,$def)=@_;my$isa_tty=-t STDIN && (-t STDOUT ||!(-f STDOUT || -c STDOUT));my$dispdef=defined$def ? "[$def] " : " ";$def=defined$def ? $def : "";if (!$self->{prompt}|| (!$isa_tty && eof STDIN)){return$def}local $|=1;local $\;my$ans;eval {local$SIG{ALRM}=sub {undef$ans;die "alarm\n"};print STDOUT "$mess $dispdef";alarm$self->{prompt_timeout}if$self->{prompt_timeout};$ans=<STDIN>;alarm 0};if (defined$ans){chomp$ans}else {print STDOUT "\n"}return (!defined$ans || $ans eq '')? $def : $ans}sub diag_ok {my($self,$msg)=@_;chomp$msg;$msg ||= "OK";if ($self->{in_progress}){$self->_diag("$msg\n");$self->{in_progress}=0}$self->log("-> $msg\n")}sub diag_fail {my($self,$msg,$always)=@_;chomp$msg;if ($self->{in_progress}){$self->_diag("FAIL\n");$self->{in_progress}=0}if ($msg){$self->_diag("! $msg\n",$always,1);$self->log("-> FAIL $msg\n")}}sub diag_progress {my($self,$msg)=@_;chomp$msg;$self->{in_progress}=1;$self->_diag("$msg ... ");$self->log("$msg\n")}sub _diag {my($self,$msg,$always,$error)=@_;my$fh=$error ? *STDERR : *STDOUT;print {$fh}$msg if$always or $self->{verbose}or!$self->{quiet}}sub diag {my($self,$msg,$always)=@_;$self->_diag($msg,$always);$self->log($msg)}sub chat {my$self=shift;print STDERR @_ if$self->{verbose};$self->log(@_)}sub mask_output {my$self=shift;my$method=shift;$self->$method($self->mask_uri_passwords(@_))}sub log {my$self=shift;open my$out,">>$self->{log}";print$out @_}sub run {my($self,$cmd)=@_;if (WIN32){$cmd=$self->shell_quote(@$cmd)if ref$cmd eq 'ARRAY';unless ($self->{verbose}){$cmd .= " >> " .$self->shell_quote($self->{log})." 2>&1"}!system$cmd}else {my$pid=fork;if ($pid){waitpid$pid,0;return!$?}else {$self->run_exec($cmd)}}}sub run_exec {my($self,$cmd)=@_;if (ref$cmd eq 'ARRAY'){unless ($self->{verbose}){open my$logfh,">>",$self->{log};open STDERR,'>&',$logfh;open STDOUT,'>&',$logfh;close$logfh}exec @$cmd}else {unless ($self->{verbose}){$cmd .= " >> " .$self->shell_quote($self->{log})." 2>&1"}exec$cmd}}sub run_timeout {my($self,$cmd,$timeout)=@_;return$self->run($cmd)if WIN32 || $self->{verbose}||!$timeout;my$pid=fork;if ($pid){eval {local$SIG{ALRM}=sub {die "alarm\n"};alarm$timeout;waitpid$pid,0;alarm 0};if ($@ && $@ eq "alarm\n"){$self->diag_fail("Timed out (> ${timeout}s). Use --verbose to retry.");local$SIG{TERM}='IGNORE';kill TERM=>0;waitpid$pid,0;return}return!$?}elsif ($pid==0){$self->run_exec($cmd)}else {$self->chat("! fork failed: falling back to system()\n");$self->run($cmd)}}sub append_args {my($self,$cmd,$phase)=@_;if (my$args=$self->{build_args}{$phase}){$cmd=join ' ',$self->shell_quote(@$cmd),$args}$cmd}sub configure {my($self,$cmd,$depth)=@_;local$ENV{PERL5_CPAN_IS_RUNNING}=local$ENV{PERL5_CPANPLUS_IS_RUNNING}=$$;local$ENV{PERL5_CPANM_IS_RUNNING}=$$;my$use_default=!$self->{interactive};local$ENV{PERL_MM_USE_DEFAULT}=$use_default;local$ENV{PERL_MM_OPT}=$ENV{PERL_MM_OPT};local$ENV{PERL_MB_OPT}=$ENV{PERL_MB_OPT};unless ($self->{pod2man}){$ENV{PERL_MM_OPT}.= " INSTALLMAN1DIR=none INSTALLMAN3DIR=none";$ENV{PERL_MB_OPT}.= " --config installman1dir= --config installsiteman1dir= --config installman3dir= --config installsiteman3dir="}if ($self->{pure_perl}){$ENV{PERL_MM_OPT}.= " PUREPERL_ONLY=1";$ENV{PERL_MB_OPT}.= " --pureperl-only"}local$ENV{PERL_USE_UNSAFE_INC}=1 unless exists$ENV{PERL_USE_UNSAFE_INC};$cmd=$self->append_args($cmd,'configure')if$depth==0;local$self->{verbose}=$self->{verbose}|| $self->{interactive};$self->run_timeout($cmd,$self->{configure_timeout})}sub build {my($self,$cmd,$distname,$depth)=@_;local$ENV{PERL_MM_USE_DEFAULT}=!$self->{interactive};local$ENV{PERL_USE_UNSAFE_INC}=1 unless exists$ENV{PERL_USE_UNSAFE_INC};$cmd=$self->append_args($cmd,'build')if$depth==0;return 1 if$self->run_timeout($cmd,$self->{build_timeout});while (1){my$ans=lc$self->prompt("Building $distname failed.\nYou can s)kip, r)etry, e)xamine build log, or l)ook ?","s");return if$ans eq 's';return$self->build($cmd,$distname,$depth)if$ans eq 'r';$self->show_build_log if$ans eq 'e';$self->look if$ans eq 'l'}}sub test {my($self,$cmd,$distname,$depth)=@_;return 1 if$self->{notest};local$ENV{PERL_MM_USE_DEFAULT}=!$self->{interactive};local$ENV{NONINTERACTIVE_TESTING}=!$self->{interactive};$cmd=$self->append_args($cmd,'test')if$depth==0;local$ENV{PERL_USE_UNSAFE_INC}=1 unless exists$ENV{PERL_USE_UNSAFE_INC};return 1 if$self->run_timeout($cmd,$self->{test_timeout});if ($self->{force}){$self->diag_fail("Testing $distname failed but installing it anyway.");return 1}else {$self->diag_fail;while (1){my$ans=lc$self->prompt("Testing $distname failed.\nYou can s)kip, r)etry, f)orce install, e)xamine build log, or l)ook ?","s");return if$ans eq 's';return$self->test($cmd,$distname,$depth)if$ans eq 'r';return 1 if$ans eq 'f';$self->show_build_log if$ans eq 'e';$self->look if$ans eq 'l'}}}sub install {my($self,$cmd,$uninst_opts,$depth)=@_;if ($depth==0 && $self->{test_only}){return 1}local$ENV{PERL_USE_UNSAFE_INC}=1 unless exists$ENV{PERL_USE_UNSAFE_INC};if ($self->{sudo}){unshift @$cmd,"sudo"}if ($self->{uninstall_shadows}&&!$ENV{PERL_MM_OPT}){push @$cmd,@$uninst_opts}$cmd=$self->append_args($cmd,'install')if$depth==0;$self->run($cmd)}sub look {my$self=shift;my$shell=$ENV{SHELL};$shell ||= $ENV{COMSPEC}if WIN32;if ($shell){my$cwd=Cwd::cwd;$self->diag("Entering $cwd with $shell\n");system$shell}else {$self->diag_fail("You don't seem to have a SHELL :/")}}sub show_build_log {my$self=shift;my@pagers=($ENV{PAGER},(WIN32 ? (): ('less')),'more');my$pager;while (@pagers){$pager=shift@pagers;next unless$pager;$pager=$self->which($pager);next unless$pager;last}if ($pager){system("$pager < $self->{log}")}else {$self->diag_fail("You don't seem to have a PAGER :/")}}sub chdir {my$self=shift;Cwd::chdir(File::Spec->canonpath($_[0]))or die "$_[0]: $!"}sub configure_mirrors {my$self=shift;unless (@{$self->{mirrors}}){$self->{mirrors}=['http://www.cpan.org' ]}for (@{$self->{mirrors}}){s!^/!file:///!;s!/$!!}}sub self_upgrade {my$self=shift;$self->check_upgrade;$self->{argv}=['App::cpanminus' ];return}sub install_module {my($self,$module,$depth,$version)=@_;$self->check_libs;if ($self->{seen}{$module}++){$self->chat("Already tried $module. Skipping.\n");return 1}if ($self->{skip_satisfied}){my($ok,$local)=$self->check_module($module,$version || 0);if ($ok){$self->diag("You have $module ($local)\n",1);return 1}}my$dist=$self->resolve_name($module,$version);unless ($dist){my$what=$module .($version ? " ($version)" : "");$self->diag_fail("Couldn't find module or a distribution $what",1);return}if ($dist->{distvname}&& $self->{seen}{$dist->{distvname}}++){$self->chat("Already tried $dist->{distvname}. Skipping.\n");return 1}if ($self->{cmd}eq 'info'){print$self->format_dist($dist),"\n";return 1}$dist->{depth}=$depth;if ($dist->{module}){unless ($self->satisfy_version($dist->{module},$dist->{module_version},$version)){$self->diag("Found $dist->{module} $dist->{module_version} which doesn't satisfy $version.\n",1);return}my$cmp=$version ? "==" : "";my$requirement=$dist->{module_version}? "$cmp$dist->{module_version}" : 0;my($ok,$local)=$self->check_module($dist->{module},$requirement);if ($self->{skip_installed}&& $ok){$self->diag("$dist->{module} is up to date. ($local)\n",1);return 1}}if ($dist->{dist}eq 'perl'){$self->diag("skipping $dist->{pathname}\n");return 1}$self->diag("--> Working on $module\n");$dist->{dir}||= $self->fetch_module($dist);unless ($dist->{dir}){$self->diag_fail("Failed to fetch distribution $dist->{distvname}",1);return}$self->chat("Entering $dist->{dir}\n");$self->chdir($self->{base});$self->chdir($dist->{dir});if ($self->{cmd}eq 'look'){$self->look;return 1}return$self->build_stuff($module,$dist,$depth)}sub uninstall_search_path {my$self=shift;$self->{local_lib}? (local::lib->install_base_arch_path($self->{local_lib}),local::lib->install_base_perl_path($self->{local_lib})): @Config{qw(installsitearch installsitelib)}}sub uninstall_module {my ($self,$module)=@_;$self->check_libs;my@inc=$self->uninstall_search_path;my($metadata,$packlist)=$self->packlists_containing($module,\@inc);unless ($packlist){$self->diag_fail(<<DIAG,1);return}my@uninst_files=$self->uninstall_target($metadata,$packlist);$self->ask_permission($module,\@uninst_files)or return;$self->uninstall_files(@uninst_files,$packlist);$self->diag("Successfully uninstalled $module\n",1);return 1}sub packlists_containing {my($self,$module,$inc)=@_;require Module::Metadata;my$metadata=Module::Metadata->new_from_module($module,inc=>$inc)or return;my$packlist;my$wanted=sub {return unless $_ eq '.packlist' && -f $_;for my$file ($self->unpack_packlist($File::Find::name)){$packlist ||= $File::Find::name if$file eq $metadata->filename}};{require File::pushd;my$pushd=File::pushd::pushd();my@search=grep -d $_,map File::Spec->catdir($_,'auto'),@$inc;File::Find::find($wanted,@search)}return$metadata,$packlist}sub uninstall_target {my($self,$metadata,$packlist)=@_;if ($self->has_shadow_install($metadata)or $self->{local_lib}){grep$self->should_unlink($_),$self->unpack_packlist($packlist)}else {$self->unpack_packlist($packlist)}}sub has_shadow_install {my($self,$metadata)=@_;my@shadow=grep defined,map Module::Metadata->new_from_module($metadata->name,inc=>[$_]),@INC;@shadow >= 2}sub should_unlink {my($self,$file)=@_;if ($self->{local_lib}){$file =~ /^\Q$self->{local_lib}\E/}else {!(grep$file =~ /^\Q$_\E/,@Config{qw(installbin installscript installman1dir installman3dir)})}}sub ask_permission {my ($self,$module,$files)=@_;$self->diag("$module contains the following files:\n\n");for my$file (@$files){$self->diag(" $file\n")}$self->diag("\n");return 'force uninstall' if$self->{force};local$self->{prompt}=1;return$self->prompt_bool("Are you sure you want to uninstall $module?",'y')}sub unpack_packlist {my ($self,$packlist)=@_;open my$fh,'<',$packlist or die "$packlist: $!";map {chomp;$_}<$fh>}sub uninstall_files {my ($self,@files)=@_;$self->diag("\n");for my$file (@files){$self->diag("Unlink: $file\n");unlink$file or $self->diag_fail("$!: $file")}$self->diag("\n");return 1}sub format_dist {my($self,$dist)=@_;return "$dist->{cpanid}/$dist->{filename}"}sub trim {local $_=shift;tr/\n/ /d;s/^\s*|\s*$//g;$_}sub fetch_module {my($self,$dist)=@_;$self->chdir($self->{base});for my$uri (@{$dist->{uris}}){$self->mask_output(diag_progress=>"Fetching $uri");my$filename=$dist->{filename}|| $uri;my$name=File::Basename::basename($filename);my$cancelled;my$fetch=sub {my$file;eval {local$SIG{INT}=sub {$cancelled=1;die "SIGINT\n"};$self->mirror($uri,$name);$file=$name if -e $name};$self->diag("ERROR: " .trim("$@")."\n",1)if $@ && $@ ne "SIGINT\n";return$file};my($try,$file);while ($try++ < 3){$file=$fetch->();last if$cancelled or $file;$self->mask_output(diag_fail=>"Download $uri failed. Retrying ... ")}if ($cancelled){$self->diag_fail("Download cancelled.");return}unless ($file){$self->mask_output(diag_fail=>"Failed to download $uri");next}$self->diag_ok;$dist->{local_path}=File::Spec->rel2abs($name);my$dir=$self->unpack($file,$uri,$dist);next unless$dir;if (my$save=$self->{save_dists}){my$path=$dist->{pathname}? "$save/authors/id/$dist->{pathname}" : "$save/vendor/$file";$self->chat("Copying $name to $path\n");File::Path::mkpath([File::Basename::dirname($path)],0,0777);File::Copy::copy($file,$path)or warn $!}return$dist,$dir}}sub unpack {my($self,$file,$uri,$dist)=@_;if ($self->{verify}){$self->verify_archive($file,$uri,$dist)or return}$self->chat("Unpacking $file\n");my$dir=$file =~ /\.zip/i ? $self->unzip($file): $self->untar($file);unless ($dir){$self->diag_fail("Failed to unpack $file: no directory")}return$dir}sub verify_checksums_signature {my($self,$chk_file)=@_;require Module::Signature;$self->chat("Verifying the signature of CHECKSUMS\n");my$rv=eval {local$SIG{__WARN__}=sub {};my$v=Module::Signature::_verify($chk_file);$v==Module::Signature::SIGNATURE_OK()};if ($rv){$self->chat("Verified OK!\n")}else {$self->diag_fail("Verifying CHECKSUMS signature failed: $rv\n");return}return 1}sub verify_archive {my($self,$file,$uri,$dist)=@_;unless ($dist->{cpanid}){$self->chat("Archive '$file' does not seem to be from PAUSE. Skip verification.\n");return 1}(my$mirror=$uri)=~ s!/authors/id.*$!!;(my$chksum_uri=$uri)=~ s!/[^/]*$!/CHECKSUMS!;my$chk_file=$self->source_for($mirror)."/$dist->{cpanid}.CHECKSUMS";$self->mask_output(diag_progress=>"Fetching $chksum_uri");$self->mirror($chksum_uri,$chk_file);unless (-e $chk_file){$self->diag_fail("Fetching $chksum_uri failed.\n");return}$self->diag_ok;$self->verify_checksums_signature($chk_file)or return;$self->verify_checksum($file,$chk_file)}sub verify_checksum {my($self,$file,$chk_file)=@_;$self->chat("Verifying the SHA1 for $file\n");open my$fh,"<$chk_file" or die "$chk_file: $!";my$data=join '',<$fh>;$data =~ s/\015?\012/\n/g;require Safe;my$chksum=Safe->new->reval($data);if (!ref$chksum or ref$chksum ne 'HASH'){$self->diag_fail("! Checksum file downloaded from $chk_file is broken.\n");return}if (my$sha=$chksum->{$file}{sha256}){my$hex=$self->sha1_for($file);if ($hex eq $sha){$self->chat("Checksum for $file: Verified!\n")}else {$self->diag_fail("Checksum mismatch for $file\n");return}}else {$self->chat("Checksum for $file not found in CHECKSUMS.\n");return}}sub sha1_for {my($self,$file)=@_;require Digest::SHA;open my$fh,"<",$file or die "$file: $!";my$dg=Digest::SHA->new(256);my($data);while (read($fh,$data,4096)){$dg->add($data)}return$dg->hexdigest}sub verify_signature {my($self,$dist)=@_;$self->diag_progress("Verifying the SIGNATURE file");my$out=`$self->{cpansign} -v --skip 2>&1`;$self->log($out);if ($out =~ /Signature verified OK/){$self->diag_ok("Verified OK");return 1}else {$self->diag_fail("SIGNATURE verification for $dist->{filename} failed\n");return}}sub resolve_name {my($self,$module,$version)=@_;if ($module =~ /(?:^git:|\.git(?:@.+)?$)/){return$self->git_uri($module)}if ($module =~ /^(ftp|https?|file):/){if ($module =~ m!authors/id/(.*)!){return$self->cpan_dist($1,$module)}else {return {uris=>[$module ]}}}if ($module =~ m!^[\./]! && -d $module){return {source=>'local',dir=>Cwd::abs_path($module),}}if (-f $module){return {source=>'local',uris=>["file://" .Cwd::abs_path($module)],}}if ($module =~ s!^cpan:///distfile/!!){return$self->cpan_dist($module)}if ($module =~ m!^(?:[A-Z]/[A-Z]{2}/)?([A-Z]{2}[\-A-Z0-9]*/.*)$!){return$self->cpan_dist($1)}return$self->search_module($module,$version)}sub cpan_module {my($self,$module,$dist_file,$version)=@_;my$dist=$self->cpan_dist($dist_file);$dist->{module}=$module;$dist->{module_version}=$version if$version && $version ne 'undef';return$dist}sub cpan_dist {my($self,$dist,$url)=@_;$dist =~ s!^([A-Z]{2})!substr($1,0,1)."/".substr($1,0,2)."/".$1!e;require CPAN::DistnameInfo;my$d=CPAN::DistnameInfo->new($dist);if ($url){$url=[$url ]unless ref$url eq 'ARRAY'}else {my$id=$d->cpanid;my$fn=substr($id,0,1)."/" .substr($id,0,2)."/" .$id ."/" .$d->filename;my@mirrors=@{$self->{mirrors}};my@urls=map "$_/authors/id/$fn",@mirrors;$url=\@urls,}return {$d->properties,source=>'cpan',uris=>$url,}}sub git_uri {my ($self,$uri)=@_;($uri,my$commitish)=split /(?<=\.git)@/i,$uri,2;my$dir=File::Temp::tempdir(CLEANUP=>1);$self->mask_output(diag_progress=>"Cloning $uri");$self->run(['git','clone',$uri,$dir ]);unless (-e "$dir/.git"){$self->diag_fail("Failed cloning git repository $uri",1);return}if ($commitish){require File::pushd;my$dir=File::pushd::pushd($dir);unless ($self->run(['git','checkout',$commitish ])){$self->diag_fail("Failed to checkout '$commitish' in git repository $uri\n");return}}$self->diag_ok;return {source=>'local',dir=>$dir,}}sub setup_module_build_patch {my$self=shift;open my$out,">$self->{base}/ModuleBuildSkipMan.pm" or die $!;print$out <<EOF}sub core_version_for {my($self,$module)=@_;require Module::CoreList;unless (exists$Module::CoreList::version{$]+0}){die sprintf("Module::CoreList %s (loaded from %s) doesn't seem to have entries for perl $]. " ."You're strongly recommended to upgrade Module::CoreList from CPAN.\n",$Module::CoreList::VERSION,$INC{"Module/CoreList.pm"})}unless (exists$Module::CoreList::version{$]+0}{$module}){return -1}return$Module::CoreList::version{$]+0}{$module}}sub search_inc {my$self=shift;$self->{search_inc}||= do {if (defined$::Bin){[grep!/^\Q$::Bin\E\/..\/(?:fat)?lib$/,@INC]}else {[@INC]}}}sub check_module {my($self,$mod,$want_ver)=@_;require Module::Metadata;my$meta=Module::Metadata->new_from_module($mod,inc=>$self->search_inc)or return 0,undef;my$version=$meta->version;if ($self->{self_contained}&& $self->loaded_from_perl_lib($meta)){$version=$self->core_version_for($mod);return 0,undef if$version && $version==-1}$self->{local_versions}{$mod}=$version;if ($self->is_deprecated($meta)){return 0,$version}elsif ($self->satisfy_version($mod,$version,$want_ver)){return 1,($version || 'undef')}else {return 0,$version}}sub satisfy_version {my($self,$mod,$version,$want_ver)=@_;$want_ver='0' unless defined($want_ver)&& length($want_ver);require CPAN::Meta::Requirements;my$requirements=CPAN::Meta::Requirements->new;$requirements->add_string_requirement($mod,$want_ver);$requirements->accepts_module($mod,$version)}sub unsatisfy_how {my($self,$ver,$want_ver)=@_;if ($want_ver =~ /^[v0-9\.\_]+$/){return "$ver < $want_ver"}else {return "$ver doesn't satisfy $want_ver"}}sub is_deprecated {my($self,$meta)=@_;my$deprecated=eval {require Module::CoreList;Module::CoreList::is_deprecated($meta->{module})};return$deprecated && $self->loaded_from_perl_lib($meta)}sub loaded_from_perl_lib {my($self,$meta)=@_;require Config;my@dirs=qw(archlibexp privlibexp);if ($self->{self_contained}&&!$self->{exclude_vendor}&& $Config{vendorarch}){unshift@dirs,qw(vendorarch vendorlibexp)}for my$dir (@dirs){my$confdir=$Config{$dir};if ($confdir eq substr($meta->filename,0,length($confdir))){return 1}}return}sub should_install {my($self,$mod,$ver)=@_;$self->chat("Checking if you have $mod $ver ... ");my($ok,$local)=$self->check_module($mod,$ver);if ($ok){$self->chat("Yes ($local)\n")}elsif ($local){$self->chat("No (" .$self->unsatisfy_how($local,$ver).")\n")}else {$self->chat("No\n")}return$mod unless$ok;return}sub check_perl_version {my($self,$version)=@_;require CPAN::Meta::Requirements;my$req=CPAN::Meta::Requirements->from_string_hash({perl=>$version });$req->accepts_module(perl=>$])}sub install_deps {my($self,$dir,$depth,@deps)=@_;my(@install,%seen,@fail);for my$dep (@deps){next if$seen{$dep->module};if ($dep->module eq 'perl'){if ($dep->is_requirement &&!$self->check_perl_version($dep->version)){$self->diag("Needs perl @{[$dep->version]}, you have $]\n");push@fail,'perl'}}elsif ($self->should_install($dep->module,$dep->version)){push@install,$dep;$seen{$dep->module}=1}}if (@install){$self->diag("==> Found dependencies: " .join(", ",map $_->module,@install)."\n")}for my$dep (@install){$self->install_module($dep->module,$depth + 1,$dep->version)}$self->chdir($self->{base});$self->chdir($dir)if$dir;if ($self->{scandeps}){return 1}my@not_ok=$self->unsatisfied_deps(@deps);if (@not_ok){return 0,\@not_ok}else {return 1}}sub unsatisfied_deps {my($self,@deps)=@_;require CPAN::Meta::Check;require CPAN::Meta::Requirements;my$reqs=CPAN::Meta::Requirements->new;for my$dep (grep $_->is_requirement,@deps){$reqs->add_string_requirement($dep->module=>$dep->requires_version || '0')}my$ret=CPAN::Meta::Check::check_requirements($reqs,'requires',$self->{search_inc});grep defined,values %$ret}sub install_deps_bailout {my($self,$target,$dir,$depth,@deps)=@_;my($ok,$fail)=$self->install_deps($dir,$depth,@deps);if (!$ok){$self->diag_fail("Installing the dependencies failed: " .join(", ",@$fail),1);unless ($self->prompt_bool("Do you want to continue building $target anyway?","n")){$self->diag_fail("Bailing out the installation for $target.",1);return}}return 1}sub build_stuff {my($self,$stuff,$dist,$depth)=@_;if ($self->{verify}&& -e 'SIGNATURE'){$self->verify_signature($dist)or return}require CPAN::Meta;my($meta_file)=grep -f,qw(META.json META.yml);if ($meta_file){$self->chat("Checking configure dependencies from $meta_file\n");$dist->{cpanmeta}=eval {CPAN::Meta->load_file($meta_file)}}elsif ($dist->{dist}&& $dist->{version}){$self->chat("META.yml/json not found. Creating skeleton for it.\n");$dist->{cpanmeta}=CPAN::Meta->new({name=>$dist->{dist},version=>$dist->{version}})}$dist->{meta}=$dist->{cpanmeta}? $dist->{cpanmeta}->as_struct : {};my@config_deps;if ($dist->{cpanmeta}){push@config_deps,App::cpanminus::Dependency->from_prereqs($dist->{cpanmeta}->effective_prereqs,['configure'],$self->{install_types},)}if (-e 'Build.PL' &&!$self->should_use_mm($dist->{dist})&&!@config_deps){push@config_deps,App::cpanminus::Dependency->from_versions({'Module::Build'=>'0.38' },'configure',)}$self->merge_with_cpanfile($dist,\@config_deps);$self->upgrade_toolchain(\@config_deps);my$target=$dist->{meta}{name}? "$dist->{meta}{name}-$dist->{meta}{version}" : $dist->{dir};{$self->install_deps_bailout($target,$dist->{dir},$depth,@config_deps)or return}$self->diag_progress("Configuring $target");my$configure_state=$self->configure_this($dist,$depth);$self->diag_ok($configure_state->{configured_ok}? "OK" : "N/A");if ($dist->{cpanmeta}&& $dist->{source}eq 'cpan'){$dist->{provides}=$dist->{cpanmeta}{provides}|| $self->extract_packages($dist->{cpanmeta},".")}my$root_target=(($self->{installdeps}or $self->{showdeps})and $depth==0);$dist->{want_phases}=$self->{notest}&&!$root_target ? [qw(build runtime)]: [qw(build test runtime)];push @{$dist->{want_phases}},'develop' if$self->{with_develop}&& $depth==0;push @{$dist->{want_phases}},'configure' if$self->{with_configure}&& $depth==0;my@deps=$self->find_prereqs($dist);my$module_name=$self->find_module_name($configure_state)|| $dist->{meta}{name};$module_name =~ s/-/::/g;if ($self->{showdeps}){for my$dep (@config_deps,@deps){print$dep->module,($dep->version ? ("~".$dep->version): ""),"\n"}return 1}my$distname=$dist->{meta}{name}? "$dist->{meta}{name}-$dist->{meta}{version}" : $stuff;my$walkup;if ($self->{scandeps}){$walkup=$self->scandeps_append_child($dist)}$self->install_deps_bailout($distname,$dist->{dir},$depth,@deps)or return;if ($self->{scandeps}){unless ($configure_state->{configured_ok}){my$diag=<<DIAG;if (@config_deps){my@tree=@{$self->{scandeps_tree}};$diag .= "!\n" .join("",map "! * $_->[0]{module}\n",@tree[0..$#tree-1])if@tree}$self->diag("!\n$diag!\n",1)}$walkup->();return 1}if ($self->{installdeps}&& $depth==0){if ($configure_state->{configured_ok}){$self->diag("<== Installed dependencies for $stuff. Finishing.\n");return 1}else {$self->diag("! Configuring $distname failed. See $self->{log} for details.\n",1);return}}my$installed;if ($configure_state->{use_module_build}&& -e 'Build' && -f _){$self->diag_progress("Building " .($self->{notest}? "" : "and testing ").$distname);$self->build([$self->{perl},"./Build" ],$distname,$depth)&& $self->test([$self->{perl},"./Build","test" ],$distname,$depth)&& $self->install([$self->{perl},"./Build","install" ],["--uninst",1 ],$depth)&& $installed++}elsif ($self->{make}&& -e 'Makefile'){$self->diag_progress("Building " .($self->{notest}? "" : "and testing ").$distname);$self->build([$self->{make}],$distname,$depth)&& $self->test([$self->{make},"test" ],$distname,$depth)&& $self->install([$self->{make},"install" ],["UNINST=1" ],$depth)&& $installed++}else {my$why;my$configure_failed=$configure_state->{configured}&&!$configure_state->{configured_ok};if ($configure_failed){$why="Configure failed for $distname."}elsif ($self->{make}){$why="The distribution doesn't have a proper Makefile.PL/Build.PL"}else {$why="Can't configure the distribution. You probably need to have 'make'."}$self->diag_fail("$why See $self->{log} for details.",1);return}if ($installed && $self->{test_only}){$self->diag_ok;$self->diag("Successfully tested $distname\n",1)}elsif ($installed){my$local=$self->{local_versions}{$dist->{module}|| ''};my$version=$dist->{module_version}|| $dist->{meta}{version}|| $dist->{version};my$reinstall=$local && ($local eq $version);my$action=$local &&!$reinstall ? $self->numify_ver($version)< $self->numify_ver($local)? "downgraded" : "upgraded" : undef;my$how=$reinstall ? "reinstalled $distname" : $local ? "installed $distname ($action from $local)" : "installed $distname" ;my$msg="Successfully $how";$self->diag_ok;$self->diag("$msg\n",1);$self->{installed_dists}++;$self->save_meta($stuff,$dist,$module_name,\@config_deps,\@deps);return 1}else {my$what=$self->{test_only}? "Testing" : "Installing";$self->diag_fail("$what $stuff failed. See $self->{log} for details. Retry with --force to force install it.",1);return}}sub perl_requirements {my($self,@requires)=@_;my@perl;for my$requires (grep defined,@requires){if (exists$requires->{perl}){push@perl,App::cpanminus::Dependency->new(perl=>$requires->{perl})}}return@perl}sub should_use_mm {my($self,$dist)=@_;my%should_use_mm=map {$_=>1}qw(version ExtUtils-ParseXS ExtUtils-Install ExtUtils-Manifest);$should_use_mm{$dist}}sub configure_this {my($self,$dist,$depth)=@_;if (-e $self->{cpanfile_path}&& $self->{installdeps}&& $depth==0){require Module::CPANfile;$dist->{cpanfile}=eval {Module::CPANfile->load($self->{cpanfile_path})};$self->diag_fail($@,1)if $@;return {configured=>1,configured_ok=>!!$dist->{cpanfile},use_module_build=>0,}}if ($self->{skip_configure}){my$eumm=-e 'Makefile';my$mb=-e 'Build' && -f _;return {configured=>1,configured_ok=>$eumm || $mb,use_module_build=>$mb,}}my$state={};my$try_eumm=sub {if (-e 'Makefile.PL'){$self->chat("Running Makefile.PL\n");if ($self->configure([$self->{perl},"Makefile.PL" ],$depth)){$state->{configured_ok}=-e 'Makefile'}$state->{configured}++}};my$try_mb=sub {if (-e 'Build.PL'){$self->chat("Running Build.PL\n");if ($self->configure([$self->{perl},"Build.PL" ],$depth)){$state->{configured_ok}=-e 'Build' && -f _}$state->{use_module_build}++;$state->{configured}++}};my@try;if ($dist->{dist}&& $self->should_use_mm($dist->{dist})){@try=($try_eumm,$try_mb)}else {@try=($try_mb,$try_eumm)}for my$try (@try){$try->();last if$state->{configured_ok}}unless ($state->{configured_ok}){while (1){my$ans=lc$self->prompt("Configuring $dist->{dist} failed.\nYou can s)kip, r)etry, e)xamine build log, or l)ook ?","s");last if$ans eq 's';return$self->configure_this($dist,$depth)if$ans eq 'r';$self->show_build_log if$ans eq 'e';$self->look if$ans eq 'l'}}return$state}sub find_module_name {my($self,$state)=@_;return unless$state->{configured_ok};if ($state->{use_module_build}&& -e "_build/build_params"){my$params=do {open my$in,"_build/build_params";$self->safe_eval(join "",<$in>)};return eval {$params->[2]{module_name}}|| undef}elsif (-e "Makefile"){open my$mf,"Makefile";while (<$mf>){if (/^\#\s+NAME\s+=>\s+(.*)/){return$self->safe_eval($1)}}}return}sub list_files {my$self=shift;if (-e 'MANIFEST'){require ExtUtils::Manifest;my$manifest=eval {ExtUtils::Manifest::manifind()}|| {};return sort {lc$a cmp lc$b}keys %$manifest}else {require File::Find;my@files;my$finder=sub {my$name=$File::Find::name;$name =~ s!\.[/\\]!!;push@files,$name};File::Find::find($finder,".");return sort {lc$a cmp lc$b}@files}}sub extract_packages {my($self,$meta,$dir)=@_;my$try=sub {my$file=shift;return 0 if$file =~ m!^(?:x?t|inc|local|perl5|fatlib|_build)/!;return 1 unless$meta->{no_index};return 0 if grep {$file =~ m!^$_/!}@{$meta->{no_index}{directory}|| []};return 0 if grep {$file eq $_}@{$meta->{no_index}{file}|| []};return 1};require Parse::PMFile;my@files=grep {/\.pm(?:\.PL)?$/ && $try->($_)}$self->list_files;my$provides={};for my$file (@files){my$parser=Parse::PMFile->new($meta,{UNSAFE=>1,ALLOW_DEV_VERSION=>1 });my$packages=$parser->parse($file);while (my($package,$meta)=each %$packages){$provides->{$package}||= {file=>$meta->{infile},($meta->{version}eq 'undef')? (): (version=>$meta->{version}),}}}return$provides}sub save_meta {my($self,$module,$dist,$module_name,$config_deps,$build_deps)=@_;return unless$dist->{distvname}&& $dist->{source}eq 'cpan';my$base=($ENV{PERL_MM_OPT}|| '')=~ /INSTALL_BASE=/ ? ($self->install_base($ENV{PERL_MM_OPT})."/lib/perl5"): $Config{sitelibexp};my$provides=$dist->{provides};File::Path::mkpath("blib/meta",0,0777);my$local={name=>$module_name,target=>$module,version=>exists$provides->{$module_name}? ($provides->{$module_name}{version}|| $dist->{version}): $dist->{version},dist=>$dist->{distvname},pathname=>$dist->{pathname},provides=>$provides,};require JSON::PP;open my$fh,">","blib/meta/install.json" or die $!;print$fh JSON::PP::encode_json($local);if (-e "MYMETA.json"){File::Copy::copy("MYMETA.json","blib/meta/MYMETA.json")}my@cmd=(($self->{sudo}? 'sudo' : ()),$^X,'-MExtUtils::Install=install','-e',qq[install({ 'blib/meta' => '$base/$Config{archname}/.meta/$dist->{distvname}' })],);$self->run(\@cmd)}sub _merge_hashref {my($self,@hashrefs)=@_;my%hash;for my$h (@hashrefs){%hash=(%hash,%$h)}return \%hash}sub install_base {my($self,$mm_opt)=@_;$mm_opt =~ /INSTALL_BASE=(\S+)/ and return $1;die "Your PERL_MM_OPT doesn't contain INSTALL_BASE"}sub safe_eval {my($self,$code)=@_;eval$code}sub configure_features {my($self,$dist,@features)=@_;map $_->identifier,grep {$self->effective_feature($dist,$_)}@features}sub effective_feature {my($self,$dist,$feature)=@_;if ($dist->{depth}==0){my$value=$self->{features}{$feature->identifier};return$value if defined$value;return 1 if$self->{features}{__all}}if ($self->{interactive}){require CPAN::Meta::Requirements;$self->diag("[@{[ $feature->description ]}]\n",1);my$req=CPAN::Meta::Requirements->new;for my$phase (@{$dist->{want_phases}}){for my$type (@{$self->{install_types}}){$req->add_requirements($feature->prereqs->requirements_for($phase,$type))}}my$reqs=$req->as_string_hash;my@missing;for my$module (keys %$reqs){if ($self->should_install($module,$req->{$module})){push@missing,$module}}if (@missing){my$howmany=@missing;$self->diag("==> Found missing dependencies: " .join(", ",@missing)."\n",1);local$self->{prompt}=1;return$self->prompt_bool("Install the $howmany optional module(s)?","y")}}return}sub find_prereqs {my($self,$dist)=@_;my@deps=$self->extract_meta_prereqs($dist);if ($dist->{module}=~ /^Bundle::/i){push@deps,$self->bundle_deps($dist)}$self->merge_with_cpanfile($dist,\@deps);return@deps}sub merge_with_cpanfile {my($self,$dist,$deps)=@_;if ($self->{cpanfile_requirements}&&!$dist->{cpanfile}){for my$dep (@$deps){$dep->merge_with($self->{cpanfile_requirements})}}}sub extract_meta_prereqs {my($self,$dist)=@_;if ($dist->{cpanfile}){my@features=$self->configure_features($dist,$dist->{cpanfile}->features);my$prereqs=$dist->{cpanfile}->prereqs_with(@features);$self->{cpanfile_requirements}=$prereqs->merged_requirements($dist->{want_phases},['requires']);return App::cpanminus::Dependency->from_prereqs($prereqs,$dist->{want_phases},$self->{install_types})}require CPAN::Meta;my@deps;my($meta_file)=grep -f,qw(MYMETA.json MYMETA.yml);if ($meta_file){$self->chat("Checking dependencies from $meta_file ...\n");my$mymeta=eval {CPAN::Meta->load_file($meta_file,{lazy_validation=>1 })};if ($mymeta){$dist->{meta}{name}=$mymeta->name;$dist->{meta}{version}=$mymeta->version;return$self->extract_prereqs($mymeta,$dist)}}if (-e '_build/prereqs'){$self->chat("Checking dependencies from _build/prereqs ...\n");my$prereqs=do {open my$in,"_build/prereqs";$self->safe_eval(join "",<$in>)};my$meta=CPAN::Meta->new({name=>$dist->{meta}{name},version=>$dist->{meta}{version},%$prereqs },{lazy_validation=>1 },);@deps=$self->extract_prereqs($meta,$dist)}elsif (-e 'Makefile'){$self->chat("Finding PREREQ from Makefile ...\n");open my$mf,"Makefile";while (<$mf>){if (/^\#\s+PREREQ_PM => \{\s*(.*?)\s*\}/){my@all;my@pairs=split ', ',$1;for (@pairs){my ($pkg,$v)=split '=>',$_;push@all,[$pkg,$v ]}my$list=join ", ",map {"'$_->[0]' => $_->[1]"}@all;my$prereq=$self->safe_eval("no strict; +{ $list }");push@deps,App::cpanminus::Dependency->from_versions($prereq)if$prereq;last}}}return@deps}sub bundle_deps {my($self,$dist)=@_;my$match;if ($dist->{module}){$match=sub {my$meta=Module::Metadata->new_from_file($_[0]);$meta && ($meta->name eq $dist->{module})}}else {$match=sub {1}}my@files;File::Find::find({wanted=>sub {push@files,File::Spec->rel2abs($_)if /\.pm$/i && $match->($_)},no_chdir=>1,},'.');my@deps;for my$file (@files){open my$pod,"<",$file or next;my$in_contents;while (<$pod>){if (/^=head\d\s+CONTENTS/){$in_contents=1}elsif (/^=/){$in_contents=0}elsif ($in_contents){/^(\S+)\s*(\S+)?/ and push@deps,App::cpanminus::Dependency->new($1,$self->maybe_version($2))}}}return@deps}sub maybe_version {my($self,$string)=@_;return$string && $string =~ /^\.?\d/ ? $string : undef}sub extract_prereqs {my($self,$meta,$dist)=@_;my@features=$self->configure_features($dist,$meta->features);my$prereqs=$self->soften_makemaker_prereqs($meta->effective_prereqs(\@features)->clone);return App::cpanminus::Dependency->from_prereqs($prereqs,$dist->{want_phases},$self->{install_types})}sub soften_makemaker_prereqs {my($self,$prereqs)=@_;return$prereqs unless -e "inc/Module/Install.pm";for my$phase (qw(build test runtime)){my$reqs=$prereqs->requirements_for($phase,'requires');if ($reqs->requirements_for_module('ExtUtils::MakeMaker')){$reqs->clear_requirement('ExtUtils::MakeMaker');$reqs->add_minimum('ExtUtils::MakeMaker'=>0)}}$prereqs}sub cleanup_workdirs {my$self=shift;my$expire=time - 24 * 60 * 60 * $self->{auto_cleanup};my@targets;opendir my$dh,"$self->{home}/work";while (my$e=readdir$dh){next if$e !~ /^(\d+)\.\d+$/;my$time=$1;if ($time < $expire){push@targets,"$self->{home}/work/$e"}}if (@targets){if (@targets >= 64){$self->diag("Expiring " .scalar(@targets)." work directories. This might take a while...\n")}else {$self->chat("Expiring " .scalar(@targets)." work directories.\n")}File::Path::rmtree(\@targets,0,0)}}sub scandeps_append_child {my($self,$dist)=@_;my$new_node=[$dist,[]];my$curr_node=$self->{scandeps_current}|| [undef,$self->{scandeps_tree}];push @{$curr_node->[1]},$new_node;$self->{scandeps_current}=$new_node;return sub {$self->{scandeps_current}=$curr_node}}sub dump_scandeps {my$self=shift;if ($self->{format}eq 'tree'){$self->walk_down(sub {my($dist,$depth)=@_;if ($depth==0){print "$dist->{distvname}\n"}else {print " " x ($depth - 1);print "\\_ $dist->{distvname}\n"}},1)}elsif ($self->{format}=~ /^dists?$/){$self->walk_down(sub {my($dist,$depth)=@_;print$self->format_dist($dist),"\n"},0)}elsif ($self->{format}eq 'json'){require JSON::PP;print JSON::PP::encode_json($self->{scandeps_tree})}elsif ($self->{format}eq 'yaml'){require YAML;print YAML::Dump($self->{scandeps_tree})}else {$self->diag("Unknown format: $self->{format}\n")}}sub walk_down {my($self,$cb,$pre)=@_;$self->_do_walk_down($self->{scandeps_tree},$cb,0,$pre)}sub _do_walk_down {my($self,$children,$cb,$depth,$pre)=@_;for my$node (@$children){$cb->($node->[0],$depth)if$pre;$self->_do_walk_down($node->[1],$cb,$depth + 1,$pre);$cb->($node->[0],$depth)unless$pre}}sub DESTROY {my$self=shift;$self->{at_exit}->($self)if$self->{at_exit}}sub shell_quote {my($self,@stuff)=@_;if (WIN32){join ' ',map {/^${quote}.+${quote}$/ ? $_ : ($quote .$_ .$quote)}@stuff}else {String::ShellQuote::shell_quote_best_effort(@stuff)}}sub which {my($self,$name)=@_;if (File::Spec->file_name_is_absolute($name)){if (-x $name &&!-d _){return$name}}my$exe_ext=$Config{_exe};for my$dir (File::Spec->path){my$fullpath=File::Spec->catfile($dir,$name);if ((-x $fullpath || -x ($fullpath .= $exe_ext))&&!-d _){if ($fullpath =~ /\s/){$fullpath=$self->shell_quote($fullpath)}return$fullpath}}return}sub get {my($self,$uri)=@_;if ($uri =~ /^file:/){$self->file_get($uri)}else {$self->{_backends}{get}->(@_)}}sub mirror {my($self,$uri,$local)=@_;if ($uri =~ /^file:/){$self->file_mirror($uri,$local)}else {$self->{_backends}{mirror}->(@_)}}sub untar {$_[0]->{_backends}{untar}->(@_)};sub unzip {$_[0]->{_backends}{unzip}->(@_)};sub uri_to_file {my($self,$uri)=@_;if ($uri =~ s!file:/+!!){$uri="/$uri" unless$uri =~ m![a-zA-Z]:!}return$uri}sub file_get {my($self,$uri)=@_;my$file=$self->uri_to_file($uri);open my$fh,"<$file" or return;join '',<$fh>}sub file_mirror {my($self,$uri,$path)=@_;my$file=$self->uri_to_file($uri);my$source_mtime=(stat$file)[9];return 1 if -e $path && (stat$path)[9]>= $source_mtime;File::Copy::copy($file,$path);utime$source_mtime,$source_mtime,$path}sub has_working_lwp {my($self,$mirrors)=@_;my$https=grep /^https:/,@$mirrors;eval {require LWP::UserAgent;LWP::UserAgent->VERSION(5.802);require LWP::Protocol::https if$https;1}}sub init_tools {my$self=shift;return if$self->{initialized}++;if ($self->{make}=$self->which($Config{make})){$self->chat("You have make $self->{make}\n")}if ($self->{try_lwp}&& $self->has_working_lwp($self->{mirrors})){$self->chat("You have LWP $LWP::VERSION\n");my$ua=sub {LWP::UserAgent->new(parse_head=>0,env_proxy=>1,agent=>$self->agent,timeout=>30,@_,)};$self->{_backends}{get}=sub {my$self=shift;my$res=$ua->()->request(HTTP::Request->new(GET=>$_[0]));return unless$res->is_success;return$res->decoded_content};$self->{_backends}{mirror}=sub {my$self=shift;my$res=$ua->()->mirror(@_);die$res->content if$res->code==501;$res->code}}elsif ($self->{try_wget}and my$wget=$self->which('wget')){$self->chat("You have $wget\n");my@common=('--user-agent',$self->agent,'--retry-connrefused',($self->{verbose}? (): ('-q')),);$self->{_backends}{get}=sub {my($self,$uri)=@_;$self->safeexec(my$fh,$wget,$uri,@common,'-O','-')or die "wget $uri: $!";local $/;<$fh>};$self->{_backends}{mirror}=sub {my($self,$uri,$path)=@_;$self->safeexec(my$fh,$wget,$uri,@common,'-O',$path)or die "wget $uri: $!";local $/;<$fh>}}elsif ($self->{try_curl}and my$curl=$self->which('curl')){$self->chat("You have $curl\n");my@common=('--location','--user-agent',$self->agent,($self->{verbose}? (): '-s'),);$self->{_backends}{get}=sub {my($self,$uri)=@_;$self->safeexec(my$fh,$curl,@common,$uri)or die "curl $uri: $!";local $/;<$fh>};$self->{_backends}{mirror}=sub {my($self,$uri,$path)=@_;$self->safeexec(my$fh,$curl,@common,$uri,'-#','-o',$path)or die "curl $uri: $!";local $/;<$fh>}}else {require HTTP::Tiny;$self->chat("Falling back to HTTP::Tiny $HTTP::Tiny::VERSION\n");my%common=(agent=>$self->agent,);$self->{_backends}{get}=sub {my$self=shift;my$res=HTTP::Tiny->new(%common)->get($_[0]);return unless$res->{success};return$res->{content}};$self->{_backends}{mirror}=sub {my$self=shift;my$res=HTTP::Tiny->new(%common)->mirror(@_);return$res->{status}}}my$tar=$self->which('tar');my$tar_ver;my$maybe_bad_tar=sub {WIN32 || BAD_TAR || (($tar_ver=`$tar --version 2>/dev/null`)=~ /GNU.*1\.13/i)};if ($tar &&!$maybe_bad_tar->()){chomp$tar_ver;$self->chat("You have $tar: $tar_ver\n");$self->{_backends}{untar}=sub {my($self,$tarfile)=@_;my$xf=($self->{verbose}? 'v' : '')."xf";my$ar=$tarfile =~ /bz2$/ ? 'j' : 'z';my($root,@others)=`$tar ${ar}tf $tarfile` or return undef;FILE: {chomp$root;$root =~ s!^\./!!;$root =~ s{^(.+?)/.*$}{$1};if (!length($root)){$root=shift(@others);redo FILE if$root}}system "$tar $ar$xf $tarfile";return$root if -d $root;$self->diag_fail("Bad archive: $tarfile");return undef}}elsif ($tar and my$gzip=$self->which('gzip')and my$bzip2=$self->which('bzip2')){$self->chat("You have $tar, $gzip and $bzip2\n");$self->{_backends}{untar}=sub {my($self,$tarfile)=@_;my$x="x" .($self->{verbose}? 'v' : '')."f -";my$ar=$tarfile =~ /bz2$/ ? $bzip2 : $gzip;my($root,@others)=`$ar -dc $tarfile | $tar tf -` or return undef;FILE: {chomp$root;$root =~ s!^\./!!;$root =~ s{^(.+?)/.*$}{$1};if (!length($root)){$root=shift(@others);redo FILE if$root}}system "$ar -dc $tarfile | $tar $x";return$root if -d $root;$self->diag_fail("Bad archive: $tarfile");return undef}}elsif (eval {require Archive::Tar}){$self->chat("Falling back to Archive::Tar $Archive::Tar::VERSION\n");$self->{_backends}{untar}=sub {my$self=shift;my$t=Archive::Tar->new($_[0]);my($root,@others)=$t->list_files;FILE: {$root =~ s!^\./!!;$root =~ s{^(.+?)/.*$}{$1};if (!length($root)){$root=shift(@others);redo FILE if$root}}$t->extract;return -d $root ? $root : undef}}else {$self->{_backends}{untar}=sub {die "Failed to extract $_[1] - You need to have tar or Archive::Tar installed.\n"}}if (my$unzip=$self->which('unzip')){$self->chat("You have $unzip\n");$self->{_backends}{unzip}=sub {my($self,$zipfile)=@_;my$opt=$self->{verbose}? '' : '-q';my(undef,$root,@others)=`$unzip -t $zipfile` or return undef;FILE: {chomp$root;if ($root !~ s{^\s+testing:\s+([^/]+)/.*?\s+OK$}{$1}){$root=shift(@others);redo FILE if$root}}system "$unzip $opt $zipfile";return$root if -d $root;$self->diag_fail("Bad archive: [$root] $zipfile");return undef}}else {$self->{_backends}{unzip}=sub {eval {require Archive::Zip}or die "Failed to extract $_[1] - You need to have unzip or Archive::Zip installed.\n";my($self,$file)=@_;my$zip=Archive::Zip->new();my$status;$status=$zip->read($file);$self->diag_fail("Read of file[$file] failed")if$status!=Archive::Zip::AZ_OK();my@members=$zip->members();for my$member (@members){my$af=$member->fileName();next if ($af =~ m!^(/|\.\./)!);$status=$member->extractToFileNamed($af);$self->diag_fail("Extracting of file[$af] from zipfile[$file failed")if$status!=Archive::Zip::AZ_OK()}my ($root)=$zip->membersMatching(qr<^[^/]+/$>);$root &&= $root->fileName;return -d $root ? $root : undef}}}sub safeexec {my$self=shift;my$rdr=$_[0]||= Symbol::gensym();if (WIN32){my$cmd=$self->shell_quote(@_[1..$#_]);return open($rdr,"$cmd |")}if (my$pid=open($rdr,'-|')){return$pid}elsif (defined$pid){exec(@_[1 .. $#_ ]);exit 1}else {return}}sub mask_uri_passwords {my($self,@strings)=@_;s{ (https?://) ([^:/]+) : [^@/]+ @ }{$1$2:********@}gx for@strings;return@strings}1; - It appears your cpanm executable was installed via `perlbrew install-cpanm`. - cpanm --self-upgrade won't upgrade the version of cpanm you're running. - - Run the following command to get it upgraded. - - perlbrew install-cpanm - - DIE - You are running cpanm from the path where your current perl won't install executables to. - Because of that, cpanm --self-upgrade won't upgrade the version of cpanm you're running. - - cpanm path : $0 - Install path : $Config{installsitebin} - - It means you either installed cpanm globally with system perl, or use distro packages such - as rpm or apt-get, and you have to use them again to upgrade cpanm. - DIE - Usage: cpanm [options] Module [...] - - Try `cpanm --help` or `man cpanm` for more options. - USAGE - Usage: cpanm [options] Module [...] - - Options: - -v,--verbose Turns on chatty output - -q,--quiet Turns off the most output - --interactive Turns on interactive configure (required for Task:: modules) - -f,--force force install - -n,--notest Do not run unit tests - --test-only Run tests only, do not install - -S,--sudo sudo to run install commands - --installdeps Only install dependencies - --showdeps Only display direct dependencies - --reinstall Reinstall the distribution even if you already have the latest version installed - --mirror Specify the base URL for the mirror (e.g. http://cpan.cpantesters.org/) - --mirror-only Use the mirror's index file instead of the CPAN Meta DB - -M,--from Use only this mirror base URL and its index file - --prompt Prompt when configure/build/test fails - -l,--local-lib Specify the install base to install modules - -L,--local-lib-contained Specify the install base to install all non-core modules - --self-contained Install all non-core modules, even if they're already installed. - --auto-cleanup Number of days that cpanm's work directories expire in. Defaults to 7 - - Commands: - --self-upgrade upgrades itself - --info Displays distribution info on CPAN - --look Opens the distribution with your SHELL - -U,--uninstall Uninstalls the modules (EXPERIMENTAL) - -V,--version Displays software version - - Examples: - - cpanm Test::More # install Test::More - cpanm MIYAGAWA/Plack-0.99_05.tar.gz # full distribution path - cpanm http://example.org/LDS/CGI.pm-3.20.tar.gz # install from URL - cpanm ~/dists/MyCompany-Enterprise-1.00.tar.gz # install from a local file - cpanm --interactive Task::Kensho # Configure interactively - cpanm . # install from local directory - cpanm --installdeps . # install all the deps for the current directory - cpanm -L extlib Plack # install Plack and all non-core deps into extlib - cpanm --mirror http://cpan.cpantesters.org/ DBI # use the fast-syncing mirror - cpanm -M https://cpan.metacpan.org App::perlbrew # use only this secure mirror and its index - - You can also specify the default options in PERL_CPANM_OPT environment variable in the shell rc: - - export PERL_CPANM_OPT="--prompt --reinstall -l ~/perl --mirror http://cpan.cpantesters.org" - - Type `man cpanm` or `perldoc cpanm` for the more detailed explanation of the options. - - HELP - ! - ! Can't write to $Config{installsitelib} and $Config{installsitebin}: Installing modules to $ENV{HOME}/perl5 - ! To turn off this warning, you have to do one of the following: - ! - run me as a root or with --sudo option (to install to $Config{installsitelib} and $Config{installsitebin}) - ! - Configure local::lib in your existing shell to set PERL_MM_OPT etc. - ! - Install local::lib by running the following commands - ! - ! cpanm --local-lib=~/perl5 local::lib && eval \$(perl -I ~/perl5/lib/perl5/ -Mlocal::lib) - ! - DIAG - WARNING: Your lib directory name ($base) contains a space in it. It's known to cause issues with perl builder tools such as local::lib and MakeMaker. You're recommended to rename your directory. - WARN - $module is not found in the following directories and can't be uninstalled. - - @{[ join(" \n", map " $_", @inc) ]} - - DIAG - package ModuleBuildSkipMan; - CHECK { - if (%Module::Build::) { - no warnings 'redefine'; - *Module::Build::Base::ACTION_manpages = sub {}; - *Module::Build::Base::ACTION_docs = sub {}; - } - } - 1; - EOF - ! Configuring $distname failed. See $self->{log} for details. - ! You might have to install the following modules first to get --scandeps working correctly. - DIAG -APP_CPANMINUS_SCRIPT - -$fatpacked{"CPAN/DistnameInfo.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_DISTNAMEINFO'; - package CPAN::DistnameInfo;$VERSION="0.12";use strict;sub distname_info {my$file=shift or return;my ($dist,$version)=$file =~ /^ - ((?:[-+.]*(?:[A-Za-z0-9]+|(?<=\D)_|_(?=\D))* - (?: - [A-Za-z](?=[^A-Za-z]|$) - | - \d(?=-) - )(?<![._-][vV]) - )+)(.*) - $/xs or return ($file,undef,undef);if ($dist =~ /-undef\z/ and!length$version){$dist =~ s/-undef\z//}$version =~ s/-withoutworldwriteables$//;if ($version =~ /^(-[Vv].*)-(\d.*)/){$dist .= $1;$version=$2}if ($version =~ /(.+_.*)-(\d.*)/){$dist .= $1;$version=$2}$dist =~ s{\.pm$}{};$version=$1 if!length$version and $dist =~ s/-(\d+\w)$//;$version=$1 .$version if$version =~ /^\d+$/ and $dist =~ s/-(\w+)$//;if ($version =~ /\d\.\d/){$version =~ s/^[-_.]+//}else {$version =~ s/^[-_]+//}my$dev;if (length$version){if ($file =~ /^perl-?\d+\.(\d+)(?:\D(\d+))?(-(?:TRIAL|RC)\d+)?$/){$dev=1 if (($1 > 6 and $1 & 1)or ($2 and $2 >= 50))or $3}elsif ($version =~ /\d\D\d+_\d/ or $version =~ /-TRIAL/){$dev=1}}else {$version=undef}($dist,$version,$dev)}sub new {my$class=shift;my$distfile=shift;$distfile =~ s,//+,/,g;my%info=(pathname=>$distfile);($info{filename}=$distfile)=~ s,^(((.*?/)?authors/)?id/)?([A-Z])/(\4[A-Z])/(\5[-A-Z0-9]*)/,, and $info{cpanid}=$6;if ($distfile =~ m,([^/]+)\.(tar\.(?:g?z|bz2)|zip|tgz)$,i){$info{distvname}=$1;$info{extension}=$2}@info{qw(dist version beta)}=distname_info($info{distvname});$info{maturity}=delete$info{beta}? 'developer' : 'released';return bless \%info,$class}sub dist {shift->{dist}}sub version {shift->{version}}sub maturity {shift->{maturity}}sub filename {shift->{filename}}sub cpanid {shift->{cpanid}}sub distvname {shift->{distvname}}sub extension {shift->{extension}}sub pathname {shift->{pathname}}sub properties {%{$_[0]}}1; -CPAN_DISTNAMEINFO - -$fatpacked{"CPAN/Meta.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META'; - use 5.006;use strict;use warnings;package CPAN::Meta;our$VERSION='2.150005';use Carp qw(carp croak);use CPAN::Meta::Feature;use CPAN::Meta::Prereqs;use CPAN::Meta::Converter;use CPAN::Meta::Validator;use Parse::CPAN::Meta 1.4414 ();BEGIN {*_dclone=\&CPAN::Meta::Converter::_dclone}BEGIN {my@STRING_READERS=qw(abstract description dynamic_config generated_by name release_status version);no strict 'refs';for my$attr (@STRING_READERS){*$attr=sub {$_[0]{$attr }}}}BEGIN {my@LIST_READERS=qw(author keywords license);no strict 'refs';for my$attr (@LIST_READERS){*$attr=sub {my$value=$_[0]{$attr };croak "$attr must be called in list context" unless wantarray;return @{_dclone($value)}if ref$value;return$value}}}sub authors {$_[0]->author}sub licenses {$_[0]->license}BEGIN {my@MAP_READERS=qw(meta-spec resources provides no_index prereqs optional_features);no strict 'refs';for my$attr (@MAP_READERS){(my$subname=$attr)=~ s/-/_/;*$subname=sub {my$value=$_[0]{$attr };return _dclone($value)if$value;return {}}}}sub custom_keys {return grep {/^x_/i}keys %{$_[0]}}sub custom {my ($self,$attr)=@_;my$value=$self->{$attr};return _dclone($value)if ref$value;return$value}sub _new {my ($class,$struct,$options)=@_;my$self;if ($options->{lazy_validation}){my$cmc=CPAN::Meta::Converter->new($struct);$self=$cmc->convert(version=>2);return bless$self,$class}else {my$cmv=CPAN::Meta::Validator->new($struct);unless ($cmv->is_valid){die "Invalid metadata structure. Errors: " .join(", ",$cmv->errors)."\n"}}my$version=$struct->{'meta-spec'}{version}|| '1.0';if ($version==2){$self=$struct}else {my$cmc=CPAN::Meta::Converter->new($struct);$self=$cmc->convert(version=>2)}return bless$self,$class}sub new {my ($class,$struct,$options)=@_;my$self=eval {$class->_new($struct,$options)};croak($@)if $@;return$self}sub create {my ($class,$struct,$options)=@_;my$version=__PACKAGE__->VERSION || 2;$struct->{generated_by}||= __PACKAGE__ ." version $version" ;$struct->{'meta-spec'}{version}||= int($version);my$self=eval {$class->_new($struct,$options)};croak ($@)if $@;return$self}sub load_file {my ($class,$file,$options)=@_;$options->{lazy_validation}=1 unless exists$options->{lazy_validation};croak "load_file() requires a valid, readable filename" unless -r $file;my$self;eval {my$struct=Parse::CPAN::Meta->load_file($file);$self=$class->_new($struct,$options)};croak($@)if $@;return$self}sub load_yaml_string {my ($class,$yaml,$options)=@_;$options->{lazy_validation}=1 unless exists$options->{lazy_validation};my$self;eval {my ($struct)=Parse::CPAN::Meta->load_yaml_string($yaml);$self=$class->_new($struct,$options)};croak($@)if $@;return$self}sub load_json_string {my ($class,$json,$options)=@_;$options->{lazy_validation}=1 unless exists$options->{lazy_validation};my$self;eval {my$struct=Parse::CPAN::Meta->load_json_string($json);$self=$class->_new($struct,$options)};croak($@)if $@;return$self}sub load_string {my ($class,$string,$options)=@_;$options->{lazy_validation}=1 unless exists$options->{lazy_validation};my$self;eval {my$struct=Parse::CPAN::Meta->load_string($string);$self=$class->_new($struct,$options)};croak($@)if $@;return$self}sub save {my ($self,$file,$options)=@_;my$version=$options->{version}|| '2';my$layer=$] ge '5.008001' ? ':utf8' : '';if ($version ge '2'){carp "'$file' should end in '.json'" unless$file =~ m{\.json$}}else {carp "'$file' should end in '.yml'" unless$file =~ m{\.yml$}}my$data=$self->as_string($options);open my$fh,">$layer",$file or die "Error opening '$file' for writing: $!\n";print {$fh}$data;close$fh or die "Error closing '$file': $!\n";return 1}sub meta_spec_version {my ($self)=@_;return$self->meta_spec->{version}}sub effective_prereqs {my ($self,$features)=@_;$features ||= [];my$prereq=CPAN::Meta::Prereqs->new($self->prereqs);return$prereq unless @$features;my@other=map {;$self->feature($_)->prereqs}@$features;return$prereq->with_merged_prereqs(\@other)}sub should_index_file {my ($self,$filename)=@_;for my$no_index_file (@{$self->no_index->{file}|| []}){return if$filename eq $no_index_file}for my$no_index_dir (@{$self->no_index->{directory}}){$no_index_dir =~ s{$}{/} unless$no_index_dir =~ m{/\z};return if index($filename,$no_index_dir)==0}return 1}sub should_index_package {my ($self,$package)=@_;for my$no_index_pkg (@{$self->no_index->{package}|| []}){return if$package eq $no_index_pkg}for my$no_index_ns (@{$self->no_index->{namespace}}){return if index($package,"${no_index_ns}::")==0}return 1}sub features {my ($self)=@_;my$opt_f=$self->optional_features;my@features=map {;CPAN::Meta::Feature->new($_=>$opt_f->{$_ })}keys %$opt_f;return@features}sub feature {my ($self,$ident)=@_;croak "no feature named $ident" unless my$f=$self->optional_features->{$ident };return CPAN::Meta::Feature->new($ident,$f)}sub as_struct {my ($self,$options)=@_;my$struct=_dclone($self);if ($options->{version}){my$cmc=CPAN::Meta::Converter->new($struct);$struct=$cmc->convert(version=>$options->{version})}return$struct}sub as_string {my ($self,$options)=@_;my$version=$options->{version}|| '2';my$struct;if ($self->meta_spec_version ne $version){my$cmc=CPAN::Meta::Converter->new($self->as_struct);$struct=$cmc->convert(version=>$version)}else {$struct=$self->as_struct}my ($data,$backend);if ($version ge '2'){$backend=Parse::CPAN::Meta->json_backend();local$struct->{x_serialization_backend}=sprintf '%s version %s',$backend,$backend->VERSION;$data=$backend->new->pretty->canonical->encode($struct)}else {$backend=Parse::CPAN::Meta->yaml_backend();local$struct->{x_serialization_backend}=sprintf '%s version %s',$backend,$backend->VERSION;$data=eval {no strict 'refs';&{"$backend\::Dump"}($struct)};if ($@){croak$backend->can('errstr')? $backend->errstr : $@}}return$data}sub TO_JSON {return {%{$_[0]}}}1; -CPAN_META - -$fatpacked{"CPAN/Meta/Check.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_CHECK'; - package CPAN::Meta::Check;$CPAN::Meta::Check::VERSION='0.012';use strict;use warnings;use base 'Exporter';our@EXPORT=qw//;our@EXPORT_OK=qw/check_requirements requirements_for verify_dependencies/;our%EXPORT_TAGS=(all=>[@EXPORT,@EXPORT_OK ]);use CPAN::Meta::Prereqs '2.132830';use CPAN::Meta::Requirements 2.121;use Module::Metadata 1.000023;sub _check_dep {my ($reqs,$module,$dirs)=@_;$module eq 'perl' and return ($reqs->accepts_module($module,$])? (): sprintf "Your Perl (%s) is not in the range '%s'",$],$reqs->requirements_for_module($module));my$metadata=Module::Metadata->new_from_module($module,inc=>$dirs);return "Module '$module' is not installed" if not defined$metadata;my$version=eval {$metadata->version};return "Missing version info for module '$module'" if$reqs->requirements_for_module($module)and not $version;return sprintf 'Installed version (%s) of %s is not in range \'%s\'',$version,$module,$reqs->requirements_for_module($module)if not $reqs->accepts_module($module,$version || 0);return}sub _check_conflict {my ($reqs,$module,$dirs)=@_;my$metadata=Module::Metadata->new_from_module($module,inc=>$dirs);return if not defined$metadata;my$version=eval {$metadata->version};return "Missing version info for module '$module'" if not $version;return sprintf 'Installed version (%s) of %s is in range \'%s\'',$version,$module,$reqs->requirements_for_module($module)if$reqs->accepts_module($module,$version);return}sub requirements_for {my ($meta,$phases,$type)=@_;my$prereqs=ref($meta)eq 'CPAN::Meta' ? $meta->effective_prereqs : $meta;return$prereqs->merged_requirements(ref($phases)? $phases : [$phases ],[$type ])}sub check_requirements {my ($reqs,$type,$dirs)=@_;return +{map {$_=>$type ne 'conflicts' ? scalar _check_dep($reqs,$_,$dirs): scalar _check_conflict($reqs,$_,$dirs)}$reqs->required_modules }}sub verify_dependencies {my ($meta,$phases,$type,$dirs)=@_;my$reqs=requirements_for($meta,$phases,$type);my$issues=check_requirements($reqs,$type,$dirs);return grep {defined}values %{$issues}}1; -CPAN_META_CHECK - -$fatpacked{"CPAN/Meta/Converter.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_CONVERTER'; - use 5.006;use strict;use warnings;package CPAN::Meta::Converter;our$VERSION='2.150005';use CPAN::Meta::Validator;use CPAN::Meta::Requirements;use Parse::CPAN::Meta 1.4400 ();BEGIN {eval "use version ()";if (my$err=$@){eval "use ExtUtils::MakeMaker::version" or die$err}}*_is_qv=version->can('is_qv')? sub {$_[0]->is_qv}: sub {exists $_[0]->{qv}};sub _dclone {my$ref=shift;no warnings 'once';no warnings 'redefine';local*UNIVERSAL::TO_JSON=sub {"$_[0]"};my$json=Parse::CPAN::Meta->json_backend()->new ->utf8 ->allow_blessed ->convert_blessed;$json->decode($json->encode($ref))}my%known_specs=('2'=>'http://search.cpan.org/perldoc?CPAN::Meta::Spec','1.4'=>'http://module-build.sourceforge.net/META-spec-v1.4.html','1.3'=>'http://module-build.sourceforge.net/META-spec-v1.3.html','1.2'=>'http://module-build.sourceforge.net/META-spec-v1.2.html','1.1'=>'http://module-build.sourceforge.net/META-spec-v1.1.html','1.0'=>'http://module-build.sourceforge.net/META-spec-v1.0.html');my@spec_list=sort {$a <=> $b}keys%known_specs;my ($LOWEST,$HIGHEST)=@spec_list[0,-1];sub _keep {$_[0]}sub _keep_or_one {defined($_[0])? $_[0]: 1}sub _keep_or_zero {defined($_[0])? $_[0]: 0}sub _keep_or_unknown {defined($_[0])&& length($_[0])? $_[0]: "unknown"}sub _generated_by {my$gen=shift;my$sig=__PACKAGE__ ." version " .(__PACKAGE__->VERSION || "<dev>");return$sig unless defined$gen and length$gen;return$gen if$gen =~ /\Q$sig/;return "$gen, $sig"}sub _listify {!defined $_[0]? undef : ref $_[0]eq 'ARRAY' ? $_[0]: [$_[0]]}sub _prefix_custom {my$key=shift;$key =~ s/^(?!x_) # Unless it already starts with x_ - (?:x-?)? # Remove leading x- or x (if present) - /x_/ix;return$key}sub _ucfirst_custom {my$key=shift;$key=ucfirst$key unless$key =~ /[A-Z]/;return$key}sub _no_prefix_ucfirst_custom {my$key=shift;$key =~ s/^x_//;return _ucfirst_custom($key)}sub _change_meta_spec {my ($element,undef,undef,$version)=@_;return {version=>$version,url=>$known_specs{$version},}}my@open_source=('perl','gpl','apache','artistic','artistic_2','lgpl','bsd','gpl','mit','mozilla','open_source',);my%is_open_source=map {;$_=>1}@open_source;my@valid_licenses_1=(@open_source,'unrestricted','restrictive','unknown',);my%license_map_1=((map {$_=>$_}@valid_licenses_1),artistic2=>'artistic_2',);sub _license_1 {my ($element)=@_;return 'unknown' unless defined$element;if ($license_map_1{lc$element}){return$license_map_1{lc$element}}else {return 'unknown'}}my@valid_licenses_2=qw(agpl_3 apache_1_1 apache_2_0 artistic_1 artistic_2 bsd freebsd gfdl_1_2 gfdl_1_3 gpl_1 gpl_2 gpl_3 lgpl_2_1 lgpl_3_0 mit mozilla_1_0 mozilla_1_1 openssl perl_5 qpl_1_0 ssleay sun zlib open_source restricted unrestricted unknown);my%license_map_2=((map {$_=>$_}@valid_licenses_2),apache=>'apache_2_0',artistic=>'artistic_1',artistic2=>'artistic_2',gpl=>'open_source',lgpl=>'open_source',mozilla=>'open_source',perl=>'perl_5',restrictive=>'restricted',);sub _license_2 {my ($element)=@_;return ['unknown' ]unless defined$element;$element=[$element ]unless ref$element eq 'ARRAY';my@new_list;for my$lic (@$element){next unless defined$lic;if (my$new=$license_map_2{lc$lic}){push@new_list,$new}}return@new_list ? \@new_list : ['unknown' ]}my%license_downgrade_map=qw(agpl_3 open_source apache_1_1 apache apache_2_0 apache artistic_1 artistic artistic_2 artistic_2 bsd bsd freebsd open_source gfdl_1_2 open_source gfdl_1_3 open_source gpl_1 gpl gpl_2 gpl gpl_3 gpl lgpl_2_1 lgpl lgpl_3_0 lgpl mit mit mozilla_1_0 mozilla mozilla_1_1 mozilla openssl open_source perl_5 perl qpl_1_0 open_source ssleay open_source sun open_source zlib open_source open_source open_source restricted restrictive unrestricted unrestricted unknown unknown);sub _downgrade_license {my ($element)=@_;if (!defined$element){return "unknown"}elsif(ref$element eq 'ARRAY'){if (@$element > 1){if (grep {!$is_open_source{$license_downgrade_map{lc $_}|| 'unknown' }}@$element){return 'unknown'}else {return 'open_source'}}elsif (@$element==1){return$license_downgrade_map{lc$element->[0]}|| "unknown"}}elsif (!ref$element){return$license_downgrade_map{lc$element}|| "unknown"}return "unknown"}my$no_index_spec_1_2={'file'=>\&_listify,'dir'=>\&_listify,'package'=>\&_listify,'namespace'=>\&_listify,};my$no_index_spec_1_3={'file'=>\&_listify,'directory'=>\&_listify,'package'=>\&_listify,'namespace'=>\&_listify,};my$no_index_spec_2={'file'=>\&_listify,'directory'=>\&_listify,'package'=>\&_listify,'namespace'=>\&_listify,':custom'=>\&_prefix_custom,};sub _no_index_1_2 {my (undef,undef,$meta)=@_;my$no_index=$meta->{no_index}|| $meta->{private};return unless$no_index;if (!ref$no_index){my$item=$no_index;$no_index={dir=>[$item ],file=>[$item ]}}elsif (ref$no_index eq 'ARRAY'){my$list=$no_index;$no_index={dir=>[@$list ],file=>[@$list ]}}if (exists$no_index->{files}){$no_index->{file}=delete$no_index->{files}}if (exists$no_index->{modules}){$no_index->{module}=delete$no_index->{modules}}return _convert($no_index,$no_index_spec_1_2)}sub _no_index_directory {my ($element,$key,$meta,$version)=@_;return unless$element;if (!ref$element){my$item=$element;$element={directory=>[$item ],file=>[$item ]}}elsif (ref$element eq 'ARRAY'){my$list=$element;$element={directory=>[@$list ],file=>[@$list ]}}if (exists$element->{dir}){$element->{directory}=delete$element->{dir}}if (exists$element->{files}){$element->{file}=delete$element->{files}}if (exists$element->{modules}){$element->{module}=delete$element->{modules}}my$spec=$version==2 ? $no_index_spec_2 : $no_index_spec_1_3;return _convert($element,$spec)}sub _is_module_name {my$mod=shift;return unless defined$mod && length$mod;return$mod =~ m{^[A-Za-z][A-Za-z0-9_]*(?:::[A-Za-z0-9_]+)*$}}sub _clean_version {my ($element)=@_;return 0 if!defined$element;$element =~ s{^\s*}{};$element =~ s{\s*$}{};$element =~ s{^\.}{0.};return 0 if!length$element;return 0 if ($element eq 'undef' || $element eq '<undef>');my$v=eval {version->new($element)};if (defined$v){return _is_qv($v)? $v->normal : $element}else {return 0}}sub _bad_version_hook {my ($v)=@_;$v =~ s{^\s*}{};$v =~ s{\s*$}{};$v =~ s{[a-z]+$}{};my$vobj=eval {version->new($v)};return defined($vobj)? $vobj : version->new(0)}sub _version_map {my ($element)=@_;return unless defined$element;if (ref$element eq 'HASH'){my$new_map=CPAN::Meta::Requirements->new({bad_version_hook=>\&_bad_version_hook });while (my ($k,$v)=each %$element){next unless _is_module_name($k);if (!defined($v)||!length($v)|| $v eq 'undef' || $v eq '<undef>'){$v=0}if (_is_module_name($v)&&!version::is_lax($v)){$new_map->add_minimum($k=>0);$new_map->add_minimum($v=>0)}$new_map->add_string_requirement($k=>$v)}return$new_map->as_string_hash}elsif (ref$element eq 'ARRAY'){my$hashref={map {$_=>0}@$element };return _version_map($hashref)}elsif (ref$element eq '' && length$element){return {$element=>0 }}return}sub _prereqs_from_1 {my (undef,undef,$meta)=@_;my$prereqs={};for my$phase (qw/build configure/){my$key="${phase}_requires";$prereqs->{$phase}{requires}=_version_map($meta->{$key})if$meta->{$key}}for my$rel (qw/requires recommends conflicts/){$prereqs->{runtime}{$rel}=_version_map($meta->{$rel})if$meta->{$rel}}return$prereqs}my$prereqs_spec={configure=>\&_prereqs_rel,build=>\&_prereqs_rel,test=>\&_prereqs_rel,runtime=>\&_prereqs_rel,develop=>\&_prereqs_rel,':custom'=>\&_prefix_custom,};my$relation_spec={requires=>\&_version_map,recommends=>\&_version_map,suggests=>\&_version_map,conflicts=>\&_version_map,':custom'=>\&_prefix_custom,};sub _cleanup_prereqs {my ($prereqs,$key,$meta,$to_version)=@_;return unless$prereqs && ref$prereqs eq 'HASH';return _convert($prereqs,$prereqs_spec,$to_version)}sub _prereqs_rel {my ($relation,$key,$meta,$to_version)=@_;return unless$relation && ref$relation eq 'HASH';return _convert($relation,$relation_spec,$to_version)}BEGIN {my@old_prereqs=qw(requires configure_requires recommends conflicts);for (@old_prereqs){my$sub="_get_$_";my ($phase,$type)=split qr/_/,$_;if (!defined$type){$type=$phase;$phase='runtime'}no strict 'refs';*{$sub}=sub {_extract_prereqs($_[2]->{prereqs},$phase,$type)}}}sub _get_build_requires {my ($data,$key,$meta)=@_;my$test_h=_extract_prereqs($_[2]->{prereqs},qw(test requires))|| {};my$build_h=_extract_prereqs($_[2]->{prereqs},qw(build requires))|| {};my$test_req=CPAN::Meta::Requirements->from_string_hash($test_h);my$build_req=CPAN::Meta::Requirements->from_string_hash($build_h);$test_req->add_requirements($build_req)->as_string_hash}sub _extract_prereqs {my ($prereqs,$phase,$type)=@_;return unless ref$prereqs eq 'HASH';return scalar _version_map($prereqs->{$phase}{$type})}sub _downgrade_optional_features {my (undef,undef,$meta)=@_;return unless exists$meta->{optional_features};my$origin=$meta->{optional_features};my$features={};for my$name (keys %$origin){$features->{$name}={description=>$origin->{$name}{description},requires=>_extract_prereqs($origin->{$name}{prereqs},'runtime','requires'),configure_requires=>_extract_prereqs($origin->{$name}{prereqs},'runtime','configure_requires'),build_requires=>_extract_prereqs($origin->{$name}{prereqs},'runtime','build_requires'),recommends=>_extract_prereqs($origin->{$name}{prereqs},'runtime','recommends'),conflicts=>_extract_prereqs($origin->{$name}{prereqs},'runtime','conflicts'),};for my$k (keys %{$features->{$name}}){delete$features->{$name}{$k}unless defined$features->{$name}{$k}}}return$features}sub _upgrade_optional_features {my (undef,undef,$meta)=@_;return unless exists$meta->{optional_features};my$origin=$meta->{optional_features};my$features={};for my$name (keys %$origin){$features->{$name}={description=>$origin->{$name}{description},prereqs=>_prereqs_from_1(undef,undef,$origin->{$name}),};delete$features->{$name}{prereqs}{configure}}return$features}my$optional_features_2_spec={description=>\&_keep,prereqs=>\&_cleanup_prereqs,':custom'=>\&_prefix_custom,};sub _feature_2 {my ($element,$key,$meta,$to_version)=@_;return unless$element && ref$element eq 'HASH';_convert($element,$optional_features_2_spec,$to_version)}sub _cleanup_optional_features_2 {my ($element,$key,$meta,$to_version)=@_;return unless$element && ref$element eq 'HASH';my$new_data={};for my$k (keys %$element){$new_data->{$k}=_feature_2($element->{$k},$k,$meta,$to_version)}return unless keys %$new_data;return$new_data}sub _optional_features_1_4 {my ($element)=@_;return unless$element;$element=_optional_features_as_map($element);for my$name (keys %$element){for my$drop (qw/requires_packages requires_os excluded_os/){delete$element->{$name}{$drop}}}return$element}sub _optional_features_as_map {my ($element)=@_;return unless$element;if (ref$element eq 'ARRAY'){my%map;for my$feature (@$element){my (@parts)=%$feature;$map{$parts[0]}=$parts[1]}$element=\%map}return$element}sub _is_urlish {defined $_[0]&& $_[0]=~ m{\A[-+.a-z0-9]+:.+}i}sub _url_or_drop {my ($element)=@_;return$element if _is_urlish($element);return}sub _url_list {my ($element)=@_;return unless$element;$element=_listify($element);$element=[grep {_is_urlish($_)}@$element ];return unless @$element;return$element}sub _author_list {my ($element)=@_;return ['unknown' ]unless$element;$element=_listify($element);$element=[map {defined $_ && length $_ ? $_ : 'unknown'}@$element ];return ['unknown' ]unless @$element;return$element}my$resource2_upgrade={license=>sub {return _is_urlish($_[0])? _listify($_[0]): undef},homepage=>\&_url_or_drop,bugtracker=>sub {my ($item)=@_;return unless$item;if ($item =~ m{^mailto:(.*)$}){return {mailto=>$1 }}elsif(_is_urlish($item)){return {web=>$item }}else {return}},repository=>sub {return _is_urlish($_[0])? {url=>$_[0]}: undef},':custom'=>\&_prefix_custom,};sub _upgrade_resources_2 {my (undef,undef,$meta,$version)=@_;return unless exists$meta->{resources};return _convert($meta->{resources},$resource2_upgrade)}my$bugtracker2_spec={web=>\&_url_or_drop,mailto=>\&_keep,':custom'=>\&_prefix_custom,};sub _repo_type {my ($element,$key,$meta,$to_version)=@_;return$element if defined$element;return unless exists$meta->{url};my$repo_url=$meta->{url};for my$type (qw/git svn/){return$type if$repo_url =~ m{\A$type}}return}my$repository2_spec={web=>\&_url_or_drop,url=>\&_url_or_drop,type=>\&_repo_type,':custom'=>\&_prefix_custom,};my$resources2_cleanup={license=>\&_url_list,homepage=>\&_url_or_drop,bugtracker=>sub {ref $_[0]? _convert($_[0],$bugtracker2_spec): undef},repository=>sub {my$data=shift;ref$data ? _convert($data,$repository2_spec): undef},':custom'=>\&_prefix_custom,};sub _cleanup_resources_2 {my ($resources,$key,$meta,$to_version)=@_;return unless$resources && ref$resources eq 'HASH';return _convert($resources,$resources2_cleanup,$to_version)}my$resource1_spec={license=>\&_url_or_drop,homepage=>\&_url_or_drop,bugtracker=>\&_url_or_drop,repository=>\&_url_or_drop,':custom'=>\&_keep,};sub _resources_1_3 {my (undef,undef,$meta,$version)=@_;return unless exists$meta->{resources};return _convert($meta->{resources},$resource1_spec)}*_resources_1_4=*_resources_1_3;sub _resources_1_2 {my (undef,undef,$meta)=@_;my$resources=$meta->{resources}|| {};if ($meta->{license_url}&&!$resources->{license}){$resources->{license}=$meta->{license_url}if _is_urlish($meta->{license_url})}return unless keys %$resources;return _convert($resources,$resource1_spec)}my$resource_downgrade_spec={license=>sub {return ref $_[0]? $_[0]->[0]: $_[0]},homepage=>\&_url_or_drop,bugtracker=>sub {return $_[0]->{web}},repository=>sub {return $_[0]->{url}|| $_[0]->{web}},':custom'=>\&_no_prefix_ucfirst_custom,};sub _downgrade_resources {my (undef,undef,$meta,$version)=@_;return unless exists$meta->{resources};return _convert($meta->{resources},$resource_downgrade_spec)}sub _release_status {my ($element,undef,$meta)=@_;return$element if$element && $element =~ m{\A(?:stable|testing|unstable)\z};return _release_status_from_version(undef,undef,$meta)}sub _release_status_from_version {my (undef,undef,$meta)=@_;my$version=$meta->{version}|| '';return ($version =~ /_/)? 'testing' : 'stable'}my$provides_spec={file=>\&_keep,version=>\&_keep,};my$provides_spec_2={file=>\&_keep,version=>\&_keep,':custom'=>\&_prefix_custom,};sub _provides {my ($element,$key,$meta,$to_version)=@_;return unless defined$element && ref$element eq 'HASH';my$spec=$to_version==2 ? $provides_spec_2 : $provides_spec;my$new_data={};for my$k (keys %$element){$new_data->{$k}=_convert($element->{$k},$spec,$to_version);$new_data->{$k}{version}=_clean_version($element->{$k}{version})if exists$element->{$k}{version}}return$new_data}sub _convert {my ($data,$spec,$to_version,$is_fragment)=@_;my$new_data={};for my$key (keys %$spec){next if$key eq ':custom' || $key eq ':drop';next unless my$fcn=$spec->{$key};if ($is_fragment && $key eq 'generated_by'){$fcn=\&_keep}die "spec for '$key' is not a coderef" unless ref$fcn && ref$fcn eq 'CODE';my$new_value=$fcn->($data->{$key},$key,$data,$to_version);$new_data->{$key}=$new_value if defined$new_value}my$drop_list=$spec->{':drop'};my$customizer=$spec->{':custom'}|| \&_keep;for my$key (keys %$data){next if$drop_list && grep {$key eq $_}@$drop_list;next if exists$spec->{$key};$new_data->{$customizer->($key)}=$data->{$key}}return$new_data}my%up_convert=('2-from-1.4'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_2,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'release_status'=>\&_release_status,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_upgrade_optional_features,'provides'=>\&_provides,'resources'=>\&_upgrade_resources_2,'description'=>\&_keep,'prereqs'=>\&_prereqs_from_1,':drop'=>[qw(build_requires configure_requires conflicts distribution_type license_url private recommends requires) ],':custom'=>\&_prefix_custom,},'1.4-from-1.3'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_optional_features_1_4,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_4,'configure_requires'=>\&_keep,':drop'=>[qw(license_url private)],':custom'=>\&_keep },'1.3-from-1.2'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_3,':drop'=>[qw(license_url private)],':custom'=>\&_keep },'1.2-from-1.1'=>{'version'=>\&_keep,'license'=>\&_license_1,'name'=>\&_keep,'generated_by'=>\&_generated_by,'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'meta-spec'=>\&_change_meta_spec,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'recommends'=>\&_version_map,'requires'=>\&_version_map,'keywords'=>\&_keep,'no_index'=>\&_no_index_1_2,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'resources'=>\&_resources_1_2,':drop'=>[qw(license_url private)],':custom'=>\&_keep },'1.1-from-1.0'=>{'version'=>\&_keep,'name'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'recommends'=>\&_version_map,'requires'=>\&_version_map,'license_url'=>\&_url_or_drop,'private'=>\&_keep,':custom'=>\&_keep },);my%down_convert=('1.4-from-2'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_downgrade_license,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_get_build_requires,'configure_requires'=>\&_get_configure_requires,'conflicts'=>\&_get_conflicts,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_downgrade_optional_features,'provides'=>\&_provides,'recommends'=>\&_get_recommends,'requires'=>\&_get_requires,'resources'=>\&_downgrade_resources,':drop'=>[qw(description prereqs release_status)],':custom'=>\&_keep },'1.3-from-1.4'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_3,':drop'=>[qw(configure_requires)],':custom'=>\&_keep,},'1.2-from-1.3'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_1_2,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_3,':custom'=>\&_keep,},'1.1-from-1.2'=>{'version'=>\&_keep,'name'=>\&_keep,'meta-spec'=>\&_change_meta_spec,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'private'=>\&_keep,'recommends'=>\&_version_map,'requires'=>\&_version_map,':drop'=>[qw(abstract author provides no_index keywords resources)],':custom'=>\&_keep,},'1.0-from-1.1'=>{'name'=>\&_keep,'meta-spec'=>\&_change_meta_spec,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'recommends'=>\&_version_map,'requires'=>\&_version_map,':custom'=>\&_keep,},);my%cleanup=('2'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_2,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'release_status'=>\&_release_status,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_cleanup_optional_features_2,'provides'=>\&_provides,'resources'=>\&_cleanup_resources_2,'description'=>\&_keep,'prereqs'=>\&_cleanup_prereqs,':drop'=>[qw(build_requires configure_requires conflicts distribution_type license_url private recommends requires) ],':custom'=>\&_prefix_custom,},'1.4'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_optional_features_1_4,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_4,'configure_requires'=>\&_keep,':custom'=>\&_keep },'1.3'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_3,':custom'=>\&_keep },'1.2'=>{'version'=>\&_keep,'license'=>\&_license_1,'name'=>\&_keep,'generated_by'=>\&_generated_by,'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'meta-spec'=>\&_change_meta_spec,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'recommends'=>\&_version_map,'requires'=>\&_version_map,'keywords'=>\&_keep,'no_index'=>\&_no_index_1_2,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'resources'=>\&_resources_1_2,':custom'=>\&_keep },'1.1'=>{'version'=>\&_keep,'name'=>\&_keep,'meta-spec'=>\&_change_meta_spec,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'recommends'=>\&_version_map,'requires'=>\&_version_map,'license_url'=>\&_url_or_drop,'private'=>\&_keep,':custom'=>\&_keep },'1.0'=>{'name'=>\&_keep,'meta-spec'=>\&_change_meta_spec,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'recommends'=>\&_version_map,'requires'=>\&_version_map,':custom'=>\&_keep,},);my%fragments_generate=('2'=>{'abstract'=>'abstract','author'=>'author','generated_by'=>'generated_by','license'=>'license','name'=>'name','version'=>'version','dynamic_config'=>'dynamic_config','release_status'=>'release_status','keywords'=>'keywords','no_index'=>'no_index','optional_features'=>'optional_features','provides'=>'provides','resources'=>'resources','description'=>'description','prereqs'=>'prereqs',},'1.4'=>{'abstract'=>'abstract','author'=>'author','generated_by'=>'generated_by','license'=>'license','name'=>'name','version'=>'version','build_requires'=>'prereqs','conflicts'=>'prereqs','distribution_type'=>'distribution_type','dynamic_config'=>'dynamic_config','keywords'=>'keywords','no_index'=>'no_index','optional_features'=>'optional_features','provides'=>'provides','recommends'=>'prereqs','requires'=>'prereqs','resources'=>'resources','configure_requires'=>'prereqs',},);$fragments_generate{$_}=$fragments_generate{'1.4'}for qw/1.3 1.2 1.1 1.0/;sub new {my ($class,$data,%args)=@_;my$self={'data'=>$data,'spec'=>_extract_spec_version($data,$args{default_version}),};return bless$self,$class}sub _extract_spec_version {my ($data,$default)=@_;my$spec=$data->{'meta-spec'};return($default || "1.0")unless defined$spec && ref$spec eq 'HASH';my$v=$spec->{version};if (defined$v && $v =~ /^\d+(?:\.\d+)?$/){return$v if defined$v && grep {$v eq $_}keys%known_specs;return$v+0 if defined$v && grep {$v==$_}keys%known_specs}return "2" if exists$data->{prereqs};return "1.4" if exists$data->{configure_requires};return($default || "1.2")}sub convert {my ($self,%args)=@_;my$args={%args };my$new_version=$args->{version}|| $HIGHEST;my$is_fragment=$args->{is_fragment};my ($old_version)=$self->{spec};my$converted=_dclone($self->{data});if ($old_version==$new_version){$converted=_convert($converted,$cleanup{$old_version},$old_version,$is_fragment);unless ($args->{is_fragment}){my$cmv=CPAN::Meta::Validator->new($converted);unless ($cmv->is_valid){my$errs=join("\n",$cmv->errors);die "Failed to clean-up $old_version metadata. Errors:\n$errs\n"}}return$converted}elsif ($old_version > $new_version){my@vers=sort {$b <=> $a}keys%known_specs;for my$i (0 .. $#vers-1){next if$vers[$i]> $old_version;last if$vers[$i+1]< $new_version;my$spec_string="$vers[$i+1]-from-$vers[$i]";$converted=_convert($converted,$down_convert{$spec_string},$vers[$i+1],$is_fragment);unless ($args->{is_fragment}){my$cmv=CPAN::Meta::Validator->new($converted);unless ($cmv->is_valid){my$errs=join("\n",$cmv->errors);die "Failed to downconvert metadata to $vers[$i+1]. Errors:\n$errs\n"}}}return$converted}else {my@vers=sort {$a <=> $b}keys%known_specs;for my$i (0 .. $#vers-1){next if$vers[$i]< $old_version;last if$vers[$i+1]> $new_version;my$spec_string="$vers[$i+1]-from-$vers[$i]";$converted=_convert($converted,$up_convert{$spec_string},$vers[$i+1],$is_fragment);unless ($args->{is_fragment}){my$cmv=CPAN::Meta::Validator->new($converted);unless ($cmv->is_valid){my$errs=join("\n",$cmv->errors);die "Failed to upconvert metadata to $vers[$i+1]. Errors:\n$errs\n"}}}return$converted}}sub upgrade_fragment {my ($self)=@_;my ($old_version)=$self->{spec};my%expected=map {;$_=>1}grep {defined}map {$fragments_generate{$old_version}{$_}}keys %{$self->{data}};my$converted=$self->convert(version=>$HIGHEST,is_fragment=>1);for my$key (keys %$converted){next if$key =~ /^x_/i || $key eq 'meta-spec';delete$converted->{$key}unless$expected{$key}}return$converted}1; -CPAN_META_CONVERTER - -$fatpacked{"CPAN/Meta/Feature.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_FEATURE'; - use 5.006;use strict;use warnings;package CPAN::Meta::Feature;our$VERSION='2.150005';use CPAN::Meta::Prereqs;sub new {my ($class,$identifier,$spec)=@_;my%guts=(identifier=>$identifier,description=>$spec->{description},prereqs=>CPAN::Meta::Prereqs->new($spec->{prereqs}),);bless \%guts=>$class}sub identifier {$_[0]{identifier}}sub description {$_[0]{description}}sub prereqs {$_[0]{prereqs}}1; -CPAN_META_FEATURE - -$fatpacked{"CPAN/Meta/History.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_HISTORY'; - use 5.006;use strict;use warnings;package CPAN::Meta::History;our$VERSION='2.150005';1; -CPAN_META_HISTORY - -$fatpacked{"CPAN/Meta/Merge.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_MERGE'; - use strict;use warnings;package CPAN::Meta::Merge;our$VERSION='2.150005';use Carp qw/croak/;use Scalar::Util qw/blessed/;use CPAN::Meta::Converter 2.141170;sub _is_identical {my ($left,$right)=@_;return (not defined$left and not defined$right)|| (defined$left and defined$right and $left eq $right)}sub _identical {my ($left,$right,$path)=@_;croak sprintf "Can't merge attribute %s: '%s' does not equal '%s'",join('.',@{$path}),$left,$right unless _is_identical($left,$right);return$left}sub _merge {my ($current,$next,$mergers,$path)=@_;for my$key (keys %{$next}){if (not exists$current->{$key}){$current->{$key}=$next->{$key}}elsif (my$merger=$mergers->{$key}){$current->{$key}=$merger->($current->{$key},$next->{$key},[@{$path},$key ])}elsif ($merger=$mergers->{':default'}){$current->{$key}=$merger->($current->{$key},$next->{$key},[@{$path},$key ])}else {croak sprintf "Can't merge unknown attribute '%s'",join '.',@{$path},$key}}return$current}sub _uniq {my%seen=();return grep {not $seen{$_}++}@_}sub _set_addition {my ($left,$right)=@_;return [+_uniq(@{$left},@{$right})]}sub _uniq_map {my ($left,$right,$path)=@_;for my$key (keys %{$right}){if (not exists$left->{$key}){$left->{$key}=$right->{$key}}elsif (_is_identical($left->{$key},$right->{$key})){1}elsif (ref$left->{$key}eq 'HASH' and ref$right->{$key}eq 'HASH'){$left->{$key}=_uniq_map($left->{$key},$right->{$key},[@{$path},$key ])}else {croak 'Duplication of element ' .join '.',@{$path},$key}}return$left}sub _improvize {my ($left,$right,$path)=@_;my ($name)=reverse @{$path};if ($name =~ /^x_/){if (ref($left)eq 'ARRAY'){return _set_addition($left,$right,$path)}elsif (ref($left)eq 'HASH'){return _uniq_map($left,$right,$path)}else {return _identical($left,$right,$path)}}croak sprintf "Can't merge '%s'",join '.',@{$path}}sub _optional_features {my ($left,$right,$path)=@_;for my$key (keys %{$right}){if (not exists$left->{$key}){$left->{$key}=$right->{$key}}else {for my$subkey (keys %{$right->{$key}}){next if$subkey eq 'prereqs';if (not exists$left->{$key}{$subkey}){$left->{$key}{$subkey}=$right->{$key}{$subkey}}else {Carp::croak "Cannot merge two optional_features named '$key' with different '$subkey' values" if do {no warnings 'uninitialized';$left->{$key}{$subkey}ne $right->{$key}{$subkey}}}}require CPAN::Meta::Prereqs;$left->{$key}{prereqs}=CPAN::Meta::Prereqs->new($left->{$key}{prereqs})->with_merged_prereqs(CPAN::Meta::Prereqs->new($right->{$key}{prereqs}))->as_string_hash}}return$left}my%default=(abstract=>\&_identical,author=>\&_set_addition,dynamic_config=>sub {my ($left,$right)=@_;return$left || $right},generated_by=>sub {my ($left,$right)=@_;return join ', ',_uniq(split(/, /,$left),split(/, /,$right))},license=>\&_set_addition,'meta-spec'=>{version=>\&_identical,url=>\&_identical },name=>\&_identical,release_status=>\&_identical,version=>\&_identical,description=>\&_identical,keywords=>\&_set_addition,no_index=>{map {($_=>\&_set_addition)}qw/file directory package namespace/ },optional_features=>\&_optional_features,prereqs=>sub {require CPAN::Meta::Prereqs;my ($left,$right)=map {CPAN::Meta::Prereqs->new($_)}@_[0,1];return$left->with_merged_prereqs($right)->as_string_hash},provides=>\&_uniq_map,resources=>{license=>\&_set_addition,homepage=>\&_identical,bugtracker=>\&_uniq_map,repository=>\&_uniq_map,':default'=>\&_improvize,},':default'=>\&_improvize,);sub new {my ($class,%arguments)=@_;croak 'default version required' if not exists$arguments{default_version};my%mapping=%default;my%extra=%{$arguments{extra_mappings}|| {}};for my$key (keys%extra){if (ref($mapping{$key})eq 'HASH'){$mapping{$key}={%{$mapping{$key}},%{$extra{$key}}}}else {$mapping{$key}=$extra{$key}}}return bless {default_version=>$arguments{default_version},mapping=>_coerce_mapping(\%mapping,[]),},$class}my%coderef_for=(set_addition=>\&_set_addition,uniq_map=>\&_uniq_map,identical=>\&_identical,improvize=>\&_improvize,);sub _coerce_mapping {my ($orig,$map_path)=@_;my%ret;for my$key (keys %{$orig}){my$value=$orig->{$key};if (ref($orig->{$key})eq 'CODE'){$ret{$key}=$value}elsif (ref($value)eq 'HASH'){my$mapping=_coerce_mapping($value,[@{$map_path},$key ]);$ret{$key}=sub {my ($left,$right,$path)=@_;return _merge($left,$right,$mapping,[@{$path}])}}elsif ($coderef_for{$value}){$ret{$key}=$coderef_for{$value}}else {croak "Don't know what to do with " .join '.',@{$map_path},$key}}return \%ret}sub merge {my ($self,@items)=@_;my$current={};for my$next (@items){if (blessed($next)&& $next->isa('CPAN::Meta')){$next=$next->as_struct}elsif (ref($next)eq 'HASH'){my$cmc=CPAN::Meta::Converter->new($next,default_version=>$self->{default_version});$next=$cmc->upgrade_fragment}else {croak "Don't know how to merge '$next'"}$current=_merge($current,$next,$self->{mapping},[])}return$current}1; -CPAN_META_MERGE - -$fatpacked{"CPAN/Meta/Prereqs.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_PREREQS'; - use 5.006;use strict;use warnings;package CPAN::Meta::Prereqs;our$VERSION='2.150005';use Carp qw(confess);use Scalar::Util qw(blessed);use CPAN::Meta::Requirements 2.121;sub __legal_phases {qw(configure build test runtime develop)}sub __legal_types {qw(requires recommends suggests conflicts)}sub new {my ($class,$prereq_spec)=@_;$prereq_spec ||= {};my%is_legal_phase=map {;$_=>1}$class->__legal_phases;my%is_legal_type=map {;$_=>1}$class->__legal_types;my%guts;PHASE: for my$phase (keys %$prereq_spec){next PHASE unless$phase =~ /\Ax_/i or $is_legal_phase{$phase};my$phase_spec=$prereq_spec->{$phase };next PHASE unless keys %$phase_spec;TYPE: for my$type (keys %$phase_spec){next TYPE unless$type =~ /\Ax_/i or $is_legal_type{$type};my$spec=$phase_spec->{$type };next TYPE unless keys %$spec;$guts{prereqs}{$phase}{$type}=CPAN::Meta::Requirements->from_string_hash($spec)}}return bless \%guts=>$class}sub requirements_for {my ($self,$phase,$type)=@_;confess "requirements_for called without phase" unless defined$phase;confess "requirements_for called without type" unless defined$type;unless ($phase =~ /\Ax_/i or grep {$phase eq $_}$self->__legal_phases){confess "requested requirements for unknown phase: $phase"}unless ($type =~ /\Ax_/i or grep {$type eq $_}$self->__legal_types){confess "requested requirements for unknown type: $type"}my$req=($self->{prereqs}{$phase}{$type}||= CPAN::Meta::Requirements->new);$req->finalize if$self->is_finalized;return$req}sub with_merged_prereqs {my ($self,$other)=@_;my@other=blessed($other)? $other : @$other;my@prereq_objs=($self,@other);my%new_arg;for my$phase ($self->__legal_phases){for my$type ($self->__legal_types){my$req=CPAN::Meta::Requirements->new;for my$prereq (@prereq_objs){my$this_req=$prereq->requirements_for($phase,$type);next unless$this_req->required_modules;$req->add_requirements($this_req)}next unless$req->required_modules;$new_arg{$phase }{$type }=$req->as_string_hash}}return (ref$self)->new(\%new_arg)}sub merged_requirements {my ($self,$phases,$types)=@_;$phases=[qw/runtime build test/]unless defined$phases;$types=[qw/requires recommends/]unless defined$types;confess "merged_requirements phases argument must be an arrayref" unless ref$phases eq 'ARRAY';confess "merged_requirements types argument must be an arrayref" unless ref$types eq 'ARRAY';my$req=CPAN::Meta::Requirements->new;for my$phase (@$phases){unless ($phase =~ /\Ax_/i or grep {$phase eq $_}$self->__legal_phases){confess "requested requirements for unknown phase: $phase"}for my$type (@$types){unless ($type =~ /\Ax_/i or grep {$type eq $_}$self->__legal_types){confess "requested requirements for unknown type: $type"}$req->add_requirements($self->requirements_for($phase,$type))}}$req->finalize if$self->is_finalized;return$req}sub as_string_hash {my ($self)=@_;my%hash;for my$phase ($self->__legal_phases){for my$type ($self->__legal_types){my$req=$self->requirements_for($phase,$type);next unless$req->required_modules;$hash{$phase }{$type }=$req->as_string_hash}}return \%hash}sub is_finalized {$_[0]{finalized}}sub finalize {my ($self)=@_;$self->{finalized}=1;for my$phase (keys %{$self->{prereqs}}){$_->finalize for values %{$self->{prereqs}{$phase}}}}sub clone {my ($self)=@_;my$clone=(ref$self)->new($self->as_string_hash)}1; -CPAN_META_PREREQS - -$fatpacked{"CPAN/Meta/Requirements.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_REQUIREMENTS'; - use strict;use warnings;package CPAN::Meta::Requirements;our$VERSION='2.133';use Carp ();BEGIN {eval "use version ()";if (my$err=$@){eval "use ExtUtils::MakeMaker::version" or die$err}}*_is_qv=version->can('is_qv')? sub {$_[0]->is_qv}: sub {exists $_[0]->{qv}};my$V0=version->new(0);my@valid_options=qw(bad_version_hook);sub new {my ($class,$options)=@_;$options ||= {};Carp::croak "Argument to $class\->new() must be a hash reference" unless ref$options eq 'HASH';my%self=map {;$_=>$options->{$_}}@valid_options;return bless \%self=>$class}sub _find_magic_vstring {my$value=shift;my$tvalue='';require B;my$sv=B::svref_2object(\$value);my$magic=ref($sv)eq 'B::PVMG' ? $sv->MAGIC : undef;while ($magic){if ($magic->TYPE eq 'V'){$tvalue=$magic->PTR;$tvalue =~ s/^v?(.+)$/v$1/;last}else {$magic=$magic->MOREMAGIC}}return$tvalue}sub _isa_version {UNIVERSAL::isa($_[0],'UNIVERSAL')&& $_[0]->isa('version')}sub _version_object {my ($self,$module,$version)=@_;my ($vobj,$err);if (not defined$version or (!ref($version)&& $version eq '0')){return$V0}elsif (ref($version)eq 'version' || _isa_version($version)){$vobj=$version}else {if ($INC{'version/vpp.pm'}|| $INC{'ExtUtils/MakeMaker/version/vpp.pm'}){my$magic=_find_magic_vstring($version);$version=$magic if length$magic}eval {local$SIG{__WARN__}=sub {die "Invalid version: $_[0]"};$vobj=version->new($version)};if (my$err=$@){my$hook=$self->{bad_version_hook};$vobj=eval {$hook->($version,$module)}if ref$hook eq 'CODE';unless (eval {$vobj->isa("version")}){$err =~ s{ at .* line \d+.*$}{};die "Can't convert '$version': $err"}}}if ($vobj =~ m{\A\.}){$vobj=version->new("0$vobj")}if (_is_qv($vobj)){$vobj=version->new($vobj->normal)}return$vobj}BEGIN {for my$type (qw(maximum exclusion exact_version)){my$method="with_$type";my$to_add=$type eq 'exact_version' ? $type : "add_$type";my$code=sub {my ($self,$name,$version)=@_;$version=$self->_version_object($name,$version);$self->__modify_entry_for($name,$method,$version);return$self};no strict 'refs';*$to_add=$code}}sub add_minimum {my ($self,$name,$version)=@_;if (not defined$version or "$version" eq '0'){return$self if$self->__entry_for($name);Carp::confess("can't add new requirements to finalized requirements")if$self->is_finalized;$self->{requirements}{$name }=CPAN::Meta::Requirements::_Range::Range->with_minimum($V0)}else {$version=$self->_version_object($name,$version);$self->__modify_entry_for($name,'with_minimum',$version)}return$self}sub add_requirements {my ($self,$req)=@_;for my$module ($req->required_modules){my$modifiers=$req->__entry_for($module)->as_modifiers;for my$modifier (@$modifiers){my ($method,@args)=@$modifier;$self->$method($module=>@args)}}return$self}sub accepts_module {my ($self,$module,$version)=@_;$version=$self->_version_object($module,$version);return 1 unless my$range=$self->__entry_for($module);return$range->_accepts($version)}sub clear_requirement {my ($self,$module)=@_;return$self unless$self->__entry_for($module);Carp::confess("can't clear requirements on finalized requirements")if$self->is_finalized;delete$self->{requirements}{$module };return$self}sub requirements_for_module {my ($self,$module)=@_;my$entry=$self->__entry_for($module);return unless$entry;return$entry->as_string}sub required_modules {keys %{$_[0]{requirements}}}sub clone {my ($self)=@_;my$new=(ref$self)->new;return$new->add_requirements($self)}sub __entry_for {$_[0]{requirements}{$_[1]}}sub __modify_entry_for {my ($self,$name,$method,$version)=@_;my$fin=$self->is_finalized;my$old=$self->__entry_for($name);Carp::confess("can't add new requirements to finalized requirements")if$fin and not $old;my$new=($old || 'CPAN::Meta::Requirements::_Range::Range')->$method($version);Carp::confess("can't modify finalized requirements")if$fin and $old->as_string ne $new->as_string;$self->{requirements}{$name }=$new}sub is_simple {my ($self)=@_;for my$module ($self->required_modules){return if$self->__entry_for($module)->as_string =~ /\s/}return 1}sub is_finalized {$_[0]{finalized}}sub finalize {$_[0]{finalized}=1}sub as_string_hash {my ($self)=@_;my%hash=map {;$_=>$self->{requirements}{$_}->as_string}$self->required_modules;return \%hash}my%methods_for_op=('=='=>[qw(exact_version) ],'!='=>[qw(add_exclusion) ],'>='=>[qw(add_minimum) ],'<='=>[qw(add_maximum) ],'>'=>[qw(add_minimum add_exclusion) ],'<'=>[qw(add_maximum add_exclusion) ],);sub add_string_requirement {my ($self,$module,$req)=@_;unless (defined$req && length$req){$req=0;$self->_blank_carp($module)}my$magic=_find_magic_vstring($req);if (length$magic){$self->add_minimum($module=>$magic);return}my@parts=split qr{\s*,\s*},$req;for my$part (@parts){my ($op,$ver)=$part =~ m{\A\s*(==|>=|>|<=|<|!=)\s*(.*)\z};if (!defined$op){$self->add_minimum($module=>$part)}else {Carp::confess("illegal requirement string: $req")unless my$methods=$methods_for_op{$op };$self->$_($module=>$ver)for @$methods}}}sub _blank_carp {my ($self,$module)=@_;Carp::carp("Undefined requirement for $module treated as '0'")}sub from_string_hash {my ($class,$hash,$options)=@_;my$self=$class->new($options);for my$module (keys %$hash){my$req=$hash->{$module};unless (defined$req && length$req){$req=0;$class->_blank_carp($module)}$self->add_string_requirement($module,$req)}return$self}{package CPAN::Meta::Requirements::_Range::Exact;sub _new {bless {version=>$_[1]}=>$_[0]}sub _accepts {return $_[0]{version}==$_[1]}sub as_string {return "== $_[0]{version}"}sub as_modifiers {return [[exact_version=>$_[0]{version}]]}sub _clone {(ref $_[0])->_new(version->new($_[0]{version}))}sub with_exact_version {my ($self,$version)=@_;return$self->_clone if$self->_accepts($version);Carp::confess("illegal requirements: unequal exact version specified")}sub with_minimum {my ($self,$minimum)=@_;return$self->_clone if$self->{version}>= $minimum;Carp::confess("illegal requirements: minimum above exact specification")}sub with_maximum {my ($self,$maximum)=@_;return$self->_clone if$self->{version}<= $maximum;Carp::confess("illegal requirements: maximum below exact specification")}sub with_exclusion {my ($self,$exclusion)=@_;return$self->_clone unless$exclusion==$self->{version};Carp::confess("illegal requirements: excluded exact specification")}}{package CPAN::Meta::Requirements::_Range::Range;sub _self {ref($_[0])? $_[0]: (bless {}=>$_[0])}sub _clone {return (bless {}=>$_[0])unless ref $_[0];my ($s)=@_;my%guts=((exists$s->{minimum}? (minimum=>version->new($s->{minimum})): ()),(exists$s->{maximum}? (maximum=>version->new($s->{maximum})): ()),(exists$s->{exclusions}? (exclusions=>[map {version->new($_)}@{$s->{exclusions}}]): ()),);bless \%guts=>ref($s)}sub as_modifiers {my ($self)=@_;my@mods;push@mods,[add_minimum=>$self->{minimum}]if exists$self->{minimum};push@mods,[add_maximum=>$self->{maximum}]if exists$self->{maximum};push@mods,map {;[add_exclusion=>$_ ]}@{$self->{exclusions}|| []};return \@mods}sub as_string {my ($self)=@_;return 0 if!keys %$self;return "$self->{minimum}" if (keys %$self)==1 and exists$self->{minimum};my@exclusions=@{$self->{exclusions}|| []};my@parts;for my$pair ([qw(>= > minimum) ],[qw(<= < maximum) ],){my ($op,$e_op,$k)=@$pair;if (exists$self->{$k}){my@new_exclusions=grep {$_!=$self->{$k }}@exclusions;if (@new_exclusions==@exclusions){push@parts,"$op $self->{ $k }"}else {push@parts,"$e_op $self->{ $k }";@exclusions=@new_exclusions}}}push@parts,map {;"!= $_"}@exclusions;return join q{, },@parts}sub with_exact_version {my ($self,$version)=@_;$self=$self->_clone;Carp::confess("illegal requirements: exact specification outside of range")unless$self->_accepts($version);return CPAN::Meta::Requirements::_Range::Exact->_new($version)}sub _simplify {my ($self)=@_;if (defined$self->{minimum}and defined$self->{maximum}){if ($self->{minimum}==$self->{maximum}){Carp::confess("illegal requirements: excluded all values")if grep {$_==$self->{minimum}}@{$self->{exclusions}|| []};return CPAN::Meta::Requirements::_Range::Exact->_new($self->{minimum})}Carp::confess("illegal requirements: minimum exceeds maximum")if$self->{minimum}> $self->{maximum}}if ($self->{exclusions}){my%seen;@{$self->{exclusions}}=grep {(!defined$self->{minimum}or $_ >= $self->{minimum})and (!defined$self->{maximum}or $_ <= $self->{maximum})and !$seen{$_}++}@{$self->{exclusions}}}return$self}sub with_minimum {my ($self,$minimum)=@_;$self=$self->_clone;if (defined (my$old_min=$self->{minimum})){$self->{minimum}=(sort {$b cmp $a}($minimum,$old_min))[0]}else {$self->{minimum}=$minimum}return$self->_simplify}sub with_maximum {my ($self,$maximum)=@_;$self=$self->_clone;if (defined (my$old_max=$self->{maximum})){$self->{maximum}=(sort {$a cmp $b}($maximum,$old_max))[0]}else {$self->{maximum}=$maximum}return$self->_simplify}sub with_exclusion {my ($self,$exclusion)=@_;$self=$self->_clone;push @{$self->{exclusions}||= []},$exclusion;return$self->_simplify}sub _accepts {my ($self,$version)=@_;return if defined$self->{minimum}and $version < $self->{minimum};return if defined$self->{maximum}and $version > $self->{maximum};return if defined$self->{exclusions}and grep {$version==$_}@{$self->{exclusions}};return 1}}1; -CPAN_META_REQUIREMENTS - -$fatpacked{"CPAN/Meta/Spec.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_SPEC'; - use 5.006;use strict;use warnings;package CPAN::Meta::Spec;our$VERSION='2.150005';1; -CPAN_META_SPEC - -$fatpacked{"CPAN/Meta/Validator.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_VALIDATOR'; - use 5.006;use strict;use warnings;package CPAN::Meta::Validator;our$VERSION='2.150005';my%known_specs=('1.4'=>'http://module-build.sourceforge.net/META-spec-v1.4.html','1.3'=>'http://module-build.sourceforge.net/META-spec-v1.3.html','1.2'=>'http://module-build.sourceforge.net/META-spec-v1.2.html','1.1'=>'http://module-build.sourceforge.net/META-spec-v1.1.html','1.0'=>'http://module-build.sourceforge.net/META-spec-v1.0.html');my%known_urls=map {$known_specs{$_}=>$_}keys%known_specs;my$module_map1={'map'=>{':key'=>{name=>\&module,value=>\&exversion }}};my$module_map2={'map'=>{':key'=>{name=>\&module,value=>\&version }}};my$no_index_2={'map'=>{file=>{list=>{value=>\&string }},directory=>{list=>{value=>\&string }},'package'=>{list=>{value=>\&string }},namespace=>{list=>{value=>\&string }},':key'=>{name=>\&custom_2,value=>\&anything },}};my$no_index_1_3={'map'=>{file=>{list=>{value=>\&string }},directory=>{list=>{value=>\&string }},'package'=>{list=>{value=>\&string }},namespace=>{list=>{value=>\&string }},':key'=>{name=>\&string,value=>\&anything },}};my$no_index_1_2={'map'=>{file=>{list=>{value=>\&string }},dir=>{list=>{value=>\&string }},'package'=>{list=>{value=>\&string }},namespace=>{list=>{value=>\&string }},':key'=>{name=>\&string,value=>\&anything },}};my$no_index_1_1={'map'=>{':key'=>{name=>\&string,list=>{value=>\&string }},}};my$prereq_map={map=>{':key'=>{name=>\&phase,'map'=>{':key'=>{name=>\&relation,%$module_map1,},},}},};my%definitions=('2'=>{'abstract'=>{mandatory=>1,value=>\&string },'author'=>{mandatory=>1,list=>{value=>\&string }},'dynamic_config'=>{mandatory=>1,value=>\&boolean },'generated_by'=>{mandatory=>1,value=>\&string },'license'=>{mandatory=>1,list=>{value=>\&license }},'meta-spec'=>{mandatory=>1,'map'=>{version=>{mandatory=>1,value=>\&version},url=>{value=>\&url },':key'=>{name=>\&custom_2,value=>\&anything },}},'name'=>{mandatory=>1,value=>\&string },'release_status'=>{mandatory=>1,value=>\&release_status },'version'=>{mandatory=>1,value=>\&version },'description'=>{value=>\&string },'keywords'=>{list=>{value=>\&string }},'no_index'=>$no_index_2,'optional_features'=>{'map'=>{':key'=>{name=>\&string,'map'=>{description=>{value=>\&string },prereqs=>$prereq_map,':key'=>{name=>\&custom_2,value=>\&anything },}}}},'prereqs'=>$prereq_map,'provides'=>{'map'=>{':key'=>{name=>\&module,'map'=>{file=>{mandatory=>1,value=>\&file },version=>{value=>\&version },':key'=>{name=>\&custom_2,value=>\&anything },}}}},'resources'=>{'map'=>{license=>{list=>{value=>\&url }},homepage=>{value=>\&url },bugtracker=>{'map'=>{web=>{value=>\&url },mailto=>{value=>\&string},':key'=>{name=>\&custom_2,value=>\&anything },}},repository=>{'map'=>{web=>{value=>\&url },url=>{value=>\&url },type=>{value=>\&string },':key'=>{name=>\&custom_2,value=>\&anything },}},':key'=>{value=>\&string,name=>\&custom_2 },}},':key'=>{name=>\&custom_2,value=>\&anything },},'1.4'=>{'meta-spec'=>{mandatory=>1,'map'=>{version=>{mandatory=>1,value=>\&version},url=>{mandatory=>1,value=>\&urlspec },':key'=>{name=>\&string,value=>\&anything },},},'name'=>{mandatory=>1,value=>\&string },'version'=>{mandatory=>1,value=>\&version },'abstract'=>{mandatory=>1,value=>\&string },'author'=>{mandatory=>1,list=>{value=>\&string }},'license'=>{mandatory=>1,value=>\&license },'generated_by'=>{mandatory=>1,value=>\&string },'distribution_type'=>{value=>\&string },'dynamic_config'=>{value=>\&boolean },'requires'=>$module_map1,'recommends'=>$module_map1,'build_requires'=>$module_map1,'configure_requires'=>$module_map1,'conflicts'=>$module_map2,'optional_features'=>{'map'=>{':key'=>{name=>\&string,'map'=>{description=>{value=>\&string },requires=>$module_map1,recommends=>$module_map1,build_requires=>$module_map1,conflicts=>$module_map2,':key'=>{name=>\&string,value=>\&anything },}}}},'provides'=>{'map'=>{':key'=>{name=>\&module,'map'=>{file=>{mandatory=>1,value=>\&file },version=>{value=>\&version },':key'=>{name=>\&string,value=>\&anything },}}}},'no_index'=>$no_index_1_3,'private'=>$no_index_1_3,'keywords'=>{list=>{value=>\&string }},'resources'=>{'map'=>{license=>{value=>\&url },homepage=>{value=>\&url },bugtracker=>{value=>\&url },repository=>{value=>\&url },':key'=>{value=>\&string,name=>\&custom_1 },}},':key'=>{name=>\&string,value=>\&anything },},'1.3'=>{'meta-spec'=>{mandatory=>1,'map'=>{version=>{mandatory=>1,value=>\&version},url=>{mandatory=>1,value=>\&urlspec },':key'=>{name=>\&string,value=>\&anything },},},'name'=>{mandatory=>1,value=>\&string },'version'=>{mandatory=>1,value=>\&version },'abstract'=>{mandatory=>1,value=>\&string },'author'=>{mandatory=>1,list=>{value=>\&string }},'license'=>{mandatory=>1,value=>\&license },'generated_by'=>{mandatory=>1,value=>\&string },'distribution_type'=>{value=>\&string },'dynamic_config'=>{value=>\&boolean },'requires'=>$module_map1,'recommends'=>$module_map1,'build_requires'=>$module_map1,'conflicts'=>$module_map2,'optional_features'=>{'map'=>{':key'=>{name=>\&string,'map'=>{description=>{value=>\&string },requires=>$module_map1,recommends=>$module_map1,build_requires=>$module_map1,conflicts=>$module_map2,':key'=>{name=>\&string,value=>\&anything },}}}},'provides'=>{'map'=>{':key'=>{name=>\&module,'map'=>{file=>{mandatory=>1,value=>\&file },version=>{value=>\&version },':key'=>{name=>\&string,value=>\&anything },}}}},'no_index'=>$no_index_1_3,'private'=>$no_index_1_3,'keywords'=>{list=>{value=>\&string }},'resources'=>{'map'=>{license=>{value=>\&url },homepage=>{value=>\&url },bugtracker=>{value=>\&url },repository=>{value=>\&url },':key'=>{value=>\&string,name=>\&custom_1 },}},':key'=>{name=>\&string,value=>\&anything },},'1.2'=>{'meta-spec'=>{mandatory=>1,'map'=>{version=>{mandatory=>1,value=>\&version},url=>{mandatory=>1,value=>\&urlspec },':key'=>{name=>\&string,value=>\&anything },},},'name'=>{mandatory=>1,value=>\&string },'version'=>{mandatory=>1,value=>\&version },'license'=>{mandatory=>1,value=>\&license },'generated_by'=>{mandatory=>1,value=>\&string },'author'=>{mandatory=>1,list=>{value=>\&string }},'abstract'=>{mandatory=>1,value=>\&string },'distribution_type'=>{value=>\&string },'dynamic_config'=>{value=>\&boolean },'keywords'=>{list=>{value=>\&string }},'private'=>$no_index_1_2,'$no_index'=>$no_index_1_2,'requires'=>$module_map1,'recommends'=>$module_map1,'build_requires'=>$module_map1,'conflicts'=>$module_map2,'optional_features'=>{'map'=>{':key'=>{name=>\&string,'map'=>{description=>{value=>\&string },requires=>$module_map1,recommends=>$module_map1,build_requires=>$module_map1,conflicts=>$module_map2,':key'=>{name=>\&string,value=>\&anything },}}}},'provides'=>{'map'=>{':key'=>{name=>\&module,'map'=>{file=>{mandatory=>1,value=>\&file },version=>{value=>\&version },':key'=>{name=>\&string,value=>\&anything },}}}},'resources'=>{'map'=>{license=>{value=>\&url },homepage=>{value=>\&url },bugtracker=>{value=>\&url },repository=>{value=>\&url },':key'=>{value=>\&string,name=>\&custom_1 },}},':key'=>{name=>\&string,value=>\&anything },},'1.1'=>{'name'=>{value=>\&string },'version'=>{mandatory=>1,value=>\&version },'license'=>{value=>\&license },'generated_by'=>{value=>\&string },'license_uri'=>{value=>\&url },'distribution_type'=>{value=>\&string },'dynamic_config'=>{value=>\&boolean },'private'=>$no_index_1_1,'requires'=>$module_map1,'recommends'=>$module_map1,'build_requires'=>$module_map1,'conflicts'=>$module_map2,':key'=>{name=>\&string,value=>\&anything },},'1.0'=>{'name'=>{value=>\&string },'version'=>{mandatory=>1,value=>\&version },'license'=>{value=>\&license },'generated_by'=>{value=>\&string },'license_uri'=>{value=>\&url },'distribution_type'=>{value=>\&string },'dynamic_config'=>{value=>\&boolean },'requires'=>$module_map1,'recommends'=>$module_map1,'build_requires'=>$module_map1,'conflicts'=>$module_map2,':key'=>{name=>\&string,value=>\&anything },},);sub new {my ($class,$data)=@_;my$self={'data'=>$data,'spec'=>eval {$data->{'meta-spec'}{'version'}}|| "1.0",'errors'=>undef,};return bless$self,$class}sub is_valid {my$self=shift;my$data=$self->{data};my$spec_version=$self->{spec};$self->check_map($definitions{$spec_version},$data);return!$self->errors}sub errors {my$self=shift;return ()unless(defined$self->{errors});return @{$self->{errors}}}my$spec_error="Missing validation action in specification. " ."Must be one of 'map', 'list', or 'value'";sub check_map {my ($self,$spec,$data)=@_;if(ref($spec)ne 'HASH'){$self->_error("Unknown META specification, cannot validate.");return}if(ref($data)ne 'HASH'){$self->_error("Expected a map structure from string or file.");return}for my$key (keys %$spec){next unless($spec->{$key}->{mandatory});next if(defined$data->{$key});push @{$self->{stack}},$key;$self->_error("Missing mandatory field, '$key'");pop @{$self->{stack}}}for my$key (keys %$data){push @{$self->{stack}},$key;if($spec->{$key}){if($spec->{$key}{value}){$spec->{$key}{value}->($self,$key,$data->{$key})}elsif($spec->{$key}{'map'}){$self->check_map($spec->{$key}{'map'},$data->{$key})}elsif($spec->{$key}{'list'}){$self->check_list($spec->{$key}{'list'},$data->{$key})}else {$self->_error("$spec_error for '$key'")}}elsif ($spec->{':key'}){$spec->{':key'}{name}->($self,$key,$key);if($spec->{':key'}{value}){$spec->{':key'}{value}->($self,$key,$data->{$key})}elsif($spec->{':key'}{'map'}){$self->check_map($spec->{':key'}{'map'},$data->{$key})}elsif($spec->{':key'}{'list'}){$self->check_list($spec->{':key'}{'list'},$data->{$key})}else {$self->_error("$spec_error for ':key'")}}else {$self->_error("Unknown key, '$key', found in map structure")}pop @{$self->{stack}}}}sub check_list {my ($self,$spec,$data)=@_;if(ref($data)ne 'ARRAY'){$self->_error("Expected a list structure");return}if(defined$spec->{mandatory}){if(!defined$data->[0]){$self->_error("Missing entries from mandatory list")}}for my$value (@$data){push @{$self->{stack}},$value || "<undef>";if(defined$spec->{value}){$spec->{value}->($self,'list',$value)}elsif(defined$spec->{'map'}){$self->check_map($spec->{'map'},$value)}elsif(defined$spec->{'list'}){$self->check_list($spec->{'list'},$value)}elsif ($spec->{':key'}){$self->check_map($spec,$value)}else {$self->_error("$spec_error associated with '$self->{stack}[-2]'")}pop @{$self->{stack}}}}sub header {my ($self,$key,$value)=@_;if(defined$value){return 1 if($value && $value =~ /^--- #YAML:1.0/)}$self->_error("file does not have a valid YAML header.");return 0}sub release_status {my ($self,$key,$value)=@_;if(defined$value){my$version=$self->{data}{version}|| '';if ($version =~ /_/){return 1 if ($value =~ /\A(?:testing|unstable)\z/);$self->_error("'$value' for '$key' is invalid for version '$version'")}else {return 1 if ($value =~ /\A(?:stable|testing|unstable)\z/);$self->_error("'$value' for '$key' is invalid")}}else {$self->_error("'$key' is not defined")}return 0}sub _uri_split {return $_[0]=~ m,(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?,}sub url {my ($self,$key,$value)=@_;if(defined$value){my ($scheme,$auth,$path,$query,$frag)=_uri_split($value);unless (defined$scheme && length$scheme){$self->_error("'$value' for '$key' does not have a URL scheme");return 0}unless (defined$auth && length$auth){$self->_error("'$value' for '$key' does not have a URL authority");return 0}return 1}$value ||= '';$self->_error("'$value' for '$key' is not a valid URL.");return 0}sub urlspec {my ($self,$key,$value)=@_;if(defined$value){return 1 if($value && $known_specs{$self->{spec}}eq $value);if($value && $known_urls{$value}){$self->_error('META specification URL does not match version');return 0}}$self->_error('Unknown META specification');return 0}sub anything {return 1}sub string {my ($self,$key,$value)=@_;if(defined$value){return 1 if($value || $value =~ /^0$/)}$self->_error("value is an undefined string");return 0}sub string_or_undef {my ($self,$key,$value)=@_;return 1 unless(defined$value);return 1 if($value || $value =~ /^0$/);$self->_error("No string defined for '$key'");return 0}sub file {my ($self,$key,$value)=@_;return 1 if(defined$value);$self->_error("No file defined for '$key'");return 0}sub exversion {my ($self,$key,$value)=@_;if(defined$value && ($value || $value =~ /0/)){my$pass=1;for(split(",",$value)){$self->version($key,$_)or ($pass=0)}return$pass}$value='<undef>' unless(defined$value);$self->_error("'$value' for '$key' is not a valid version.");return 0}sub version {my ($self,$key,$value)=@_;if(defined$value){return 0 unless($value || $value =~ /0/);return 1 if($value =~ /^\s*((<|<=|>=|>|!=|==)\s*)?v?\d+((\.\d+((_|\.)\d+)?)?)/)}else {$value='<undef>'}$self->_error("'$value' for '$key' is not a valid version.");return 0}sub boolean {my ($self,$key,$value)=@_;if(defined$value){return 1 if($value =~ /^(0|1|true|false)$/)}else {$value='<undef>'}$self->_error("'$value' for '$key' is not a boolean value.");return 0}my%v1_licenses=('perl'=>'http://dev.perl.org/licenses/','gpl'=>'http://www.opensource.org/licenses/gpl-license.php','apache'=>'http://apache.org/licenses/LICENSE-2.0','artistic'=>'http://opensource.org/licenses/artistic-license.php','artistic_2'=>'http://opensource.org/licenses/artistic-license-2.0.php','lgpl'=>'http://www.opensource.org/licenses/lgpl-license.php','bsd'=>'http://www.opensource.org/licenses/bsd-license.php','gpl'=>'http://www.opensource.org/licenses/gpl-license.php','mit'=>'http://opensource.org/licenses/mit-license.php','mozilla'=>'http://opensource.org/licenses/mozilla1.1.php','open_source'=>undef,'unrestricted'=>undef,'restrictive'=>undef,'unknown'=>undef,);my%v2_licenses=map {$_=>1}qw(agpl_3 apache_1_1 apache_2_0 artistic_1 artistic_2 bsd freebsd gfdl_1_2 gfdl_1_3 gpl_1 gpl_2 gpl_3 lgpl_2_1 lgpl_3_0 mit mozilla_1_0 mozilla_1_1 openssl perl_5 qpl_1_0 ssleay sun zlib open_source restricted unrestricted unknown);sub license {my ($self,$key,$value)=@_;my$licenses=$self->{spec}< 2 ? \%v1_licenses : \%v2_licenses;if(defined$value){return 1 if($value && exists$licenses->{$value})}else {$value='<undef>'}$self->_error("License '$value' is invalid");return 0}sub custom_1 {my ($self,$key)=@_;if(defined$key){return 1 if($key && $key =~ /^[_a-z]+$/i && $key =~ /[A-Z]/)}else {$key='<undef>'}$self->_error("Custom resource '$key' must be in CamelCase.");return 0}sub custom_2 {my ($self,$key)=@_;if(defined$key){return 1 if($key && $key =~ /^x_/i)}else {$key='<undef>'}$self->_error("Custom key '$key' must begin with 'x_' or 'X_'.");return 0}sub identifier {my ($self,$key)=@_;if(defined$key){return 1 if($key && $key =~ /^([a-z][_a-z]+)$/i)}else {$key='<undef>'}$self->_error("Key '$key' is not a legal identifier.");return 0}sub module {my ($self,$key)=@_;if(defined$key){return 1 if($key && $key =~ /^[A-Za-z0-9_]+(::[A-Za-z0-9_]+)*$/)}else {$key='<undef>'}$self->_error("Key '$key' is not a legal module name.");return 0}my@valid_phases=qw/configure build test runtime develop/;sub phase {my ($self,$key)=@_;if(defined$key){return 1 if(length$key && grep {$key eq $_}@valid_phases);return 1 if$key =~ /x_/i}else {$key='<undef>'}$self->_error("Key '$key' is not a legal phase.");return 0}my@valid_relations=qw/requires recommends suggests conflicts/;sub relation {my ($self,$key)=@_;if(defined$key){return 1 if(length$key && grep {$key eq $_}@valid_relations);return 1 if$key =~ /x_/i}else {$key='<undef>'}$self->_error("Key '$key' is not a legal prereq relationship.");return 0}sub _error {my$self=shift;my$mess=shift;$mess .= ' ('.join(' -> ',@{$self->{stack}}).')' if($self->{stack});$mess .= " [Validation: $self->{spec}]";push @{$self->{errors}},$mess}1; -CPAN_META_VALIDATOR - -$fatpacked{"CPAN/Meta/YAML.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_YAML'; - use 5.008001;use strict;use warnings;package CPAN::Meta::YAML;$CPAN::Meta::YAML::VERSION='0.016';;use Exporter;our@ISA=qw{Exporter};our@EXPORT=qw{Load Dump};our@EXPORT_OK=qw{LoadFile DumpFile freeze thaw};sub Dump {return CPAN::Meta::YAML->new(@_)->_dump_string}sub Load {my$self=CPAN::Meta::YAML->_load_string(@_);if (wantarray){return @$self}else {return$self->[-1]}}BEGIN {*freeze=\&Dump;*thaw=\&Load}sub DumpFile {my$file=shift;return CPAN::Meta::YAML->new(@_)->_dump_file($file)}sub LoadFile {my$file=shift;my$self=CPAN::Meta::YAML->_load_file($file);if (wantarray){return @$self}else {return$self->[-1]}}sub new {my$class=shift;bless [@_ ],$class}sub read_string {my$self=shift;$self->_load_string(@_)}sub write_string {my$self=shift;$self->_dump_string(@_)}sub read {my$self=shift;$self->_load_file(@_)}sub write {my$self=shift;$self->_dump_file(@_)}my@UNPRINTABLE=qw(0 x01 x02 x03 x04 x05 x06 a b t n v f r x0E x0F x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x1A e x1C x1D x1E x1F);my%UNESCAPES=(0=>"\x00",z=>"\x00",N=>"\x85",a=>"\x07",b=>"\x08",t=>"\x09",n=>"\x0a",v=>"\x0b",f=>"\x0c",r=>"\x0d",e=>"\x1b",'\\'=>'\\',);my%QUOTE=map {$_=>1}qw{null true false};my$re_capture_double_quoted=qr/\"([^\\"]*(?:\\.[^\\"]*)*)\"/;my$re_capture_single_quoted=qr/\'([^\']*(?:\'\'[^\']*)*)\'/;my$re_capture_unquoted_key=qr/([^:]+(?::+\S(?:[^:]*|.*?(?=:)))*)(?=\s*\:(?:\s+|$))/;my$re_trailing_comment=qr/(?:\s+\#.*)?/;my$re_key_value_separator=qr/\s*:(?:\s+(?:\#.*)?|$)/;sub _load_file {my$class=ref $_[0]? ref shift : shift;my$file=shift or $class->_error('You did not specify a file name');$class->_error("File '$file' does not exist")unless -e $file;$class->_error("'$file' is a directory, not a file")unless -f _;$class->_error("Insufficient permissions to read '$file'")unless -r _;open(my$fh,"<:unix:encoding(UTF-8)",$file);unless ($fh){$class->_error("Failed to open file '$file': $!")}if (_can_flock()){flock($fh,Fcntl::LOCK_SH())or warn "Couldn't lock '$file' for reading: $!"}my$contents=eval {use warnings FATAL=>'utf8';local $/;<$fh>};if (my$err=$@){$class->_error("Error reading from file '$file': $err")}unless (close$fh){$class->_error("Failed to close file '$file': $!")}$class->_load_string($contents)}sub _load_string {my$class=ref $_[0]? ref shift : shift;my$self=bless [],$class;my$string=$_[0];eval {unless (defined$string){die \"Did not provide a string to load"}if (utf8::is_utf8($string)&&!utf8::valid($string)){die \<<'...'}utf8::upgrade($string);$string =~ s/^\x{FEFF}//;return$self unless length$string;my@lines=grep {!/^\s*(?:\#.*)?\z/}split /(?:\015{1,2}\012|\015|\012)/,$string;@lines and $lines[0]=~ /^\%YAML[: ][\d\.]+.*\z/ and shift@lines;my$in_document=0;while (@lines){if ($lines[0]=~ /^---\s*(?:(.+)\s*)?\z/){shift@lines;if (defined $1 and $1 !~ /^(?:\#.+|\%YAML[: ][\d\.]+)\z/){push @$self,$self->_load_scalar("$1",[undef ],\@lines);next}$in_document=1}if (!@lines or $lines[0]=~ /^(?:---|\.\.\.)/){push @$self,undef;while (@lines and $lines[0]!~ /^---/){shift@lines}$in_document=0}elsif (!$in_document && @$self){die \"CPAN::Meta::YAML failed to classify the line '$lines[0]'"}elsif ($lines[0]=~ /^\s*\-(?:\s|$|-+$)/){my$document=[];push @$self,$document;$self->_load_array($document,[0 ],\@lines)}elsif ($lines[0]=~ /^(\s*)\S/){my$document={};push @$self,$document;$self->_load_hash($document,[length($1)],\@lines)}else {die \"CPAN::Meta::YAML failed to classify the line '$lines[0]'"}}};my$err=$@;if (ref$err eq 'SCALAR'){$self->_error(${$err})}elsif ($err){$self->_error($err)}return$self}sub _unquote_single {my ($self,$string)=@_;return '' unless length$string;$string =~ s/\'\'/\'/g;return$string}sub _unquote_double {my ($self,$string)=@_;return '' unless length$string;$string =~ s/\\"/"/g;$string =~ s{\\([Nnever\\fartz0b]|x([0-9a-fA-F]{2}))} - Read an invalid UTF-8 string (maybe mixed UTF-8 and 8-bit character set). - Did you decode with lax ":utf8" instead of strict ":encoding(UTF-8)"? - ... - {(length($1)>1)?pack("H2",$2):$UNESCAPES{$1}}gex;return$string}sub _load_scalar {my ($self,$string,$indent,$lines)=@_;$string =~ s/\s*\z//;return undef if$string eq '~';if ($string =~ /^$re_capture_single_quoted$re_trailing_comment\z/){return$self->_unquote_single($1)}if ($string =~ /^$re_capture_double_quoted$re_trailing_comment\z/){return$self->_unquote_double($1)}if ($string =~ /^[\'\"!&]/){die \"CPAN::Meta::YAML does not support a feature in line '$string'"}return {}if$string =~ /^{}(?:\s+\#.*)?\z/;return []if$string =~ /^\[\](?:\s+\#.*)?\z/;if ($string !~ /^[>|]/){die \"CPAN::Meta::YAML found illegal characters in plain scalar: '$string'" if$string =~ /^(?:-(?:\s|$)|[\@\%\`])/ or $string =~ /:(?:\s|$)/;$string =~ s/\s+#.*\z//;return$string}die \"CPAN::Meta::YAML failed to find multi-line scalar content" unless @$lines;$lines->[0]=~ /^(\s*)/;$indent->[-1]=length("$1");if (defined$indent->[-2]and $indent->[-1]<= $indent->[-2]){die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'"}my@multiline=();while (@$lines){$lines->[0]=~ /^(\s*)/;last unless length($1)>= $indent->[-1];push@multiline,substr(shift(@$lines),length($1))}my$j=(substr($string,0,1)eq '>')? ' ' : "\n";my$t=(substr($string,1,1)eq '-')? '' : "\n";return join($j,@multiline).$t}sub _load_array {my ($self,$array,$indent,$lines)=@_;while (@$lines){if ($lines->[0]=~ /^(?:---|\.\.\.)/){while (@$lines and $lines->[0]!~ /^---/){shift @$lines}return 1}$lines->[0]=~ /^(\s*)/;if (length($1)< $indent->[-1]){return 1}elsif (length($1)> $indent->[-1]){die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'"}if ($lines->[0]=~ /^(\s*\-\s+)[^\'\"]\S*\s*:(?:\s+|$)/){my$indent2=length("$1");$lines->[0]=~ s/-/ /;push @$array,{};$self->_load_hash($array->[-1],[@$indent,$indent2 ],$lines)}elsif ($lines->[0]=~ /^\s*\-\s*\z/){shift @$lines;unless (@$lines){push @$array,undef;return 1}if ($lines->[0]=~ /^(\s*)\-/){my$indent2=length("$1");if ($indent->[-1]==$indent2){push @$array,undef}else {push @$array,[];$self->_load_array($array->[-1],[@$indent,$indent2 ],$lines)}}elsif ($lines->[0]=~ /^(\s*)\S/){push @$array,{};$self->_load_hash($array->[-1],[@$indent,length("$1")],$lines)}else {die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'"}}elsif ($lines->[0]=~ /^\s*\-(\s*)(.+?)\s*\z/){shift @$lines;push @$array,$self->_load_scalar("$2",[@$indent,undef ],$lines)}elsif (defined$indent->[-2]and $indent->[-1]==$indent->[-2]){return 1}else {die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'"}}return 1}sub _load_hash {my ($self,$hash,$indent,$lines)=@_;while (@$lines){if ($lines->[0]=~ /^(?:---|\.\.\.)/){while (@$lines and $lines->[0]!~ /^---/){shift @$lines}return 1}$lines->[0]=~ /^(\s*)/;if (length($1)< $indent->[-1]){return 1}elsif (length($1)> $indent->[-1]){die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'"}my$key;if ($lines->[0]=~ s/^\s*$re_capture_single_quoted$re_key_value_separator//){$key=$self->_unquote_single($1)}elsif ($lines->[0]=~ s/^\s*$re_capture_double_quoted$re_key_value_separator//){$key=$self->_unquote_double($1)}elsif ($lines->[0]=~ s/^\s*$re_capture_unquoted_key$re_key_value_separator//){$key=$1;$key =~ s/\s+$//}elsif ($lines->[0]=~ /^\s*\?/){die \"CPAN::Meta::YAML does not support a feature in line '$lines->[0]'"}else {die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'"}if (exists$hash->{$key}){warn "CPAN::Meta::YAML found a duplicate key '$key' in line '$lines->[0]'"}if (length$lines->[0]){$hash->{$key}=$self->_load_scalar(shift(@$lines),[@$indent,undef ],$lines)}else {shift @$lines;unless (@$lines){$hash->{$key}=undef;return 1}if ($lines->[0]=~ /^(\s*)-/){$hash->{$key}=[];$self->_load_array($hash->{$key},[@$indent,length($1)],$lines)}elsif ($lines->[0]=~ /^(\s*)./){my$indent2=length("$1");if ($indent->[-1]>= $indent2){$hash->{$key}=undef}else {$hash->{$key}={};$self->_load_hash($hash->{$key},[@$indent,length($1)],$lines)}}}}return 1}sub _dump_file {my$self=shift;require Fcntl;my$file=shift or $self->_error('You did not specify a file name');my$fh;if (_can_flock()){my$flags=Fcntl::O_WRONLY()|Fcntl::O_CREAT();sysopen($fh,$file,$flags);unless ($fh){$self->_error("Failed to open file '$file' for writing: $!")}binmode($fh,":raw:encoding(UTF-8)");flock($fh,Fcntl::LOCK_EX())or warn "Couldn't lock '$file' for reading: $!";truncate$fh,0;seek$fh,0,0}else {open$fh,">:unix:encoding(UTF-8)",$file}print {$fh}$self->_dump_string;unless (close$fh){$self->_error("Failed to close file '$file': $!")}return 1}sub _dump_string {my$self=shift;return '' unless ref$self && @$self;my$indent=0;my@lines=();eval {for my$cursor (@$self){push@lines,'---';if (!defined$cursor){}elsif (!ref$cursor){$lines[-1].= ' ' .$self->_dump_scalar($cursor)}elsif (ref$cursor eq 'ARRAY'){unless (@$cursor){$lines[-1].= ' []';next}push@lines,$self->_dump_array($cursor,$indent,{})}elsif (ref$cursor eq 'HASH'){unless (%$cursor){$lines[-1].= ' {}';next}push@lines,$self->_dump_hash($cursor,$indent,{})}else {die \("Cannot serialize " .ref($cursor))}}};if (ref $@ eq 'SCALAR'){$self->_error(${$@})}elsif ($@){$self->_error($@)}join '',map {"$_\n"}@lines}sub _has_internal_string_value {my$value=shift;my$b_obj=B::svref_2object(\$value);return$b_obj->FLAGS & B::SVf_POK()}sub _dump_scalar {my$string=$_[1];my$is_key=$_[2];my$has_string_flag=_has_internal_string_value($string);return '~' unless defined$string;return "''" unless length$string;if (Scalar::Util::looks_like_number($string)){if ($is_key || $has_string_flag){return qq['$string']}else {return$string}}if ($string =~ /[\x00-\x09\x0b-\x0d\x0e-\x1f\x7f-\x9f\'\n]/){$string =~ s/\\/\\\\/g;$string =~ s/"/\\"/g;$string =~ s/\n/\\n/g;$string =~ s/[\x85]/\\N/g;$string =~ s/([\x00-\x1f])/\\$UNPRINTABLE[ord($1)]/g;$string =~ s/([\x7f-\x9f])/'\x' . sprintf("%X",ord($1))/ge;return qq|"$string"|}if ($string =~ /(?:^[~!@#%&*|>?:,'"`{}\[\]]|^-+$|\s|:\z)/ or $QUOTE{$string}){return "'$string'"}return$string}sub _dump_array {my ($self,$array,$indent,$seen)=@_;if ($seen->{refaddr($array)}++){die \"CPAN::Meta::YAML does not support circular references"}my@lines=();for my$el (@$array){my$line=(' ' x $indent).'-';my$type=ref$el;if (!$type){$line .= ' ' .$self->_dump_scalar($el);push@lines,$line}elsif ($type eq 'ARRAY'){if (@$el){push@lines,$line;push@lines,$self->_dump_array($el,$indent + 1,$seen)}else {$line .= ' []';push@lines,$line}}elsif ($type eq 'HASH'){if (keys %$el){push@lines,$line;push@lines,$self->_dump_hash($el,$indent + 1,$seen)}else {$line .= ' {}';push@lines,$line}}else {die \"CPAN::Meta::YAML does not support $type references"}}@lines}sub _dump_hash {my ($self,$hash,$indent,$seen)=@_;if ($seen->{refaddr($hash)}++){die \"CPAN::Meta::YAML does not support circular references"}my@lines=();for my$name (sort keys %$hash){my$el=$hash->{$name};my$line=(' ' x $indent).$self->_dump_scalar($name,1).":";my$type=ref$el;if (!$type){$line .= ' ' .$self->_dump_scalar($el);push@lines,$line}elsif ($type eq 'ARRAY'){if (@$el){push@lines,$line;push@lines,$self->_dump_array($el,$indent + 1,$seen)}else {$line .= ' []';push@lines,$line}}elsif ($type eq 'HASH'){if (keys %$el){push@lines,$line;push@lines,$self->_dump_hash($el,$indent + 1,$seen)}else {$line .= ' {}';push@lines,$line}}else {die \"CPAN::Meta::YAML does not support $type references"}}@lines}our$errstr='';sub _error {require Carp;$errstr=$_[1];$errstr =~ s/ at \S+ line \d+.*//;Carp::croak($errstr)}my$errstr_warned;sub errstr {require Carp;Carp::carp("CPAN::Meta::YAML->errstr and \$CPAN::Meta::YAML::errstr is deprecated")unless$errstr_warned++;$errstr}use B;my$HAS_FLOCK;sub _can_flock {if (defined$HAS_FLOCK){return$HAS_FLOCK}else {require Config;my$c=\%Config::Config;$HAS_FLOCK=grep {$c->{$_}}qw/d_flock d_fcntl_can_lock d_lockf/;require Fcntl if$HAS_FLOCK;return$HAS_FLOCK}}use Scalar::Util ();BEGIN {local $@;if (eval {Scalar::Util->VERSION(1.18)}){*refaddr=*Scalar::Util::refaddr}else {eval <<'END_PERL'}}delete$CPAN::Meta::YAML::{refaddr};1; - # Scalar::Util failed to load or too old - sub refaddr { - my $pkg = ref($_[0]) or return undef; - if ( !! UNIVERSAL::can($_[0], 'can') ) { - bless $_[0], 'Scalar::Util::Fake'; - } else { - $pkg = undef; - } - "$_[0]" =~ /0x(\w+)/; - my $i = do { no warnings 'portable'; hex $1 }; - bless $_[0], $pkg if defined $pkg; - $i; - } - END_PERL -CPAN_META_YAML - -$fatpacked{"Exporter.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'EXPORTER'; - package Exporter;require 5.006;our$Debug=0;our$ExportLevel=0;our$Verbose ||=0;our$VERSION='5.70';our (%Cache);sub as_heavy {require Exporter::Heavy;my$c=(caller(1))[3];$c =~ s/.*:://;\&{"Exporter::Heavy::heavy_$c"}}sub export {goto &{as_heavy()}}sub import {my$pkg=shift;my$callpkg=caller($ExportLevel);if ($pkg eq "Exporter" and @_ and $_[0]eq "import"){*{$callpkg."::import"}=\&import;return}my$exports=\@{"$pkg\::EXPORT"};my$fail=${$pkg .'::'}{EXPORT_FAIL}&& \@{"$pkg\::EXPORT_FAIL"};return export$pkg,$callpkg,@_ if$Verbose or $Debug or $fail && @$fail > 1;my$export_cache=($Cache{$pkg}||={});my$args=@_ or @_=@$exports;if ($args and not %$export_cache){s/^&//,$export_cache->{$_}=1 foreach (@$exports,@{"$pkg\::EXPORT_OK"})}my$heavy;if ($args or $fail){($heavy=(/\W/ or $args and not exists$export_cache->{$_}or $fail and @$fail and $_ eq $fail->[0]))and last foreach (@_)}else {($heavy=/\W/)and last foreach (@_)}return export$pkg,$callpkg,($args ? @_ : ())if$heavy;local$SIG{__WARN__}=sub {require Carp;&Carp::carp}if not $SIG{__WARN__};*{"$callpkg\::$_"}=\&{"$pkg\::$_"}foreach @_}sub export_fail {my$self=shift;@_}sub export_to_level {goto &{as_heavy()}}sub export_tags {goto &{as_heavy()}}sub export_ok_tags {goto &{as_heavy()}}sub require_version {goto &{as_heavy()}}1; -EXPORTER - -$fatpacked{"Exporter/Heavy.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'EXPORTER_HEAVY'; - package Exporter::Heavy;use strict;no strict 'refs';require Exporter;our$VERSION=$Exporter::VERSION;sub _rebuild_cache {my ($pkg,$exports,$cache)=@_;s/^&// foreach @$exports;@{$cache}{@$exports}=(1)x @$exports;my$ok=\@{"${pkg}::EXPORT_OK"};if (@$ok){s/^&// foreach @$ok;@{$cache}{@$ok}=(1)x @$ok}}sub heavy_export {my$oldwarn=$SIG{__WARN__};local$SIG{__WARN__}=sub {local$SIG{__WARN__}=$oldwarn;my$text=shift;if ($text =~ s/ at \S*Exporter\S*.pm line \d+.*\n//){require Carp;local$Carp::CarpLevel=1;Carp::carp($text)}else {warn$text}};local$SIG{__DIE__}=sub {require Carp;local$Carp::CarpLevel=1;Carp::croak("$_[0]Illegal null symbol in \@${1}::EXPORT")if $_[0]=~ /^Unable to create sub named "(.*?)::"/};my($pkg,$callpkg,@imports)=@_;my($type,$sym,$cache_is_current,$oops);my($exports,$export_cache)=(\@{"${pkg}::EXPORT"},$Exporter::Cache{$pkg}||={});if (@imports){if (!%$export_cache){_rebuild_cache ($pkg,$exports,$export_cache);$cache_is_current=1}if (grep m{^[/!:]},@imports){my$tagsref=\%{"${pkg}::EXPORT_TAGS"};my$tagdata;my%imports;my($remove,$spec,@names,@allexports);unshift@imports,':DEFAULT' if$imports[0]=~ m/^!/;for$spec (@imports){$remove=$spec =~ s/^!//;if ($spec =~ s/^://){if ($spec eq 'DEFAULT'){@names=@$exports}elsif ($tagdata=$tagsref->{$spec}){@names=@$tagdata}else {warn qq["$spec" is not defined in %${pkg}::EXPORT_TAGS];++$oops;next}}elsif ($spec =~ m:^/(.*)/$:){my$patn=$1;@allexports=keys %$export_cache unless@allexports;@names=grep(/$patn/,@allexports)}else {@names=($spec)}warn "Import ".($remove ? "del":"add").": @names " if$Exporter::Verbose;if ($remove){for$sym (@names){delete$imports{$sym}}}else {@imports{@names}=(1)x @names}}@imports=keys%imports}my@carp;for$sym (@imports){if (!$export_cache->{$sym}){if ($sym =~ m/^\d/){$pkg->VERSION($sym);if (@imports==1){@imports=@$exports;last}if (@imports==2 and!$imports[1]){@imports=();last}}elsif ($sym !~ s/^&// ||!$export_cache->{$sym}){unless ($cache_is_current){%$export_cache=();_rebuild_cache ($pkg,$exports,$export_cache);$cache_is_current=1}if (!$export_cache->{$sym}){push@carp,qq["$sym" is not exported by the $pkg module\n];$oops++}}}}if ($oops){require Carp;Carp::croak("@{carp}Can't continue after import errors")}}else {@imports=@$exports}my($fail,$fail_cache)=(\@{"${pkg}::EXPORT_FAIL"},$Exporter::FailCache{$pkg}||={});if (@$fail){if (!%$fail_cache){my@expanded=map {/^\w/ ? ($_,'&'.$_): $_}@$fail;warn "${pkg}::EXPORT_FAIL cached: @expanded" if$Exporter::Verbose;@{$fail_cache}{@expanded}=(1)x @expanded}my@failed;for$sym (@imports){push(@failed,$sym)if$fail_cache->{$sym}}if (@failed){@failed=$pkg->export_fail(@failed);for$sym (@failed){require Carp;Carp::carp(qq["$sym" is not implemented by the $pkg module ],"on this architecture")}if (@failed){require Carp;Carp::croak("Can't continue after import errors")}}}warn "Importing into $callpkg from $pkg: ",join(", ",sort@imports)if$Exporter::Verbose;for$sym (@imports){(*{"${callpkg}::$sym"}=\&{"${pkg}::$sym"},next)unless$sym =~ s/^(\W)//;$type=$1;no warnings 'once';*{"${callpkg}::$sym"}=$type eq '&' ? \&{"${pkg}::$sym"}: $type eq '$' ? \${"${pkg}::$sym"}: $type eq '@' ? \@{"${pkg}::$sym"}: $type eq '%' ? \%{"${pkg}::$sym"}: $type eq '*' ? *{"${pkg}::$sym"}: do {require Carp;Carp::croak("Can't export symbol: $type$sym")}}}sub heavy_export_to_level {my$pkg=shift;my$level=shift;(undef)=shift;my$callpkg=caller($level);$pkg->export($callpkg,@_)}sub _push_tags {my($pkg,$var,$syms)=@_;my@nontag=();my$export_tags=\%{"${pkg}::EXPORT_TAGS"};push(@{"${pkg}::$var"},map {$export_tags->{$_}? @{$export_tags->{$_}}: scalar(push(@nontag,$_),$_)}(@$syms)? @$syms : keys %$export_tags);if (@nontag and $^W){require Carp;Carp::carp(join(", ",@nontag)." are not tags of $pkg")}}sub heavy_require_version {my($self,$wanted)=@_;my$pkg=ref$self || $self;return ${pkg}->VERSION($wanted)}sub heavy_export_tags {_push_tags((caller)[0],"EXPORT",\@_)}sub heavy_export_ok_tags {_push_tags((caller)[0],"EXPORT_OK",\@_)}1; -EXPORTER_HEAVY - -$fatpacked{"File/pushd.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'FILE_PUSHD'; - use strict;use warnings;package File::pushd;our$VERSION='1.009';our@EXPORT=qw(pushd tempd);our@ISA=qw(Exporter);use Exporter;use Carp;use Cwd qw(getcwd abs_path);use File::Path qw(rmtree);use File::Temp qw();use File::Spec;use overload q{""}=>sub {File::Spec->canonpath($_[0]->{_pushd})},fallback=>1;sub pushd {my ($target_dir,$options)=@_;$options->{untaint_pattern}||= qr{^([-+@\w./]+)$};$target_dir="." unless defined$target_dir;croak "Can't locate directory $target_dir" unless -d $target_dir;my$tainted_orig=getcwd;my$orig;if ($tainted_orig =~ $options->{untaint_pattern}){$orig=$1}else {$orig=$tainted_orig}my$tainted_dest;eval {$tainted_dest=$target_dir ? abs_path($target_dir): $orig};croak "Can't locate absolute path for $target_dir: $@" if $@;my$dest;if ($tainted_dest =~ $options->{untaint_pattern}){$dest=$1}else {$dest=$tainted_dest}if ($dest ne $orig){chdir$dest or croak "Can't chdir to $dest\: $!"}my$self=bless {_pushd=>$dest,_original=>$orig },__PACKAGE__;return$self}sub tempd {my ($options)=@_;my$dir;eval {$dir=pushd(File::Temp::tempdir(CLEANUP=>0),$options)};croak $@ if $@;$dir->{_tempd}=1;return$dir}sub preserve {my$self=shift;return 1 if!$self->{"_tempd"};if (@_==0){return$self->{_preserve}=1}else {return$self->{_preserve}=$_[0]? 1 : 0}}sub DESTROY {my ($self)=@_;my$orig=$self->{_original};chdir$orig if$orig;if ($self->{_tempd}&&!$self->{_preserve}){my$err=do {local $@;eval {rmtree($self->{_pushd})};$@};carp$err if$err}}1; -FILE_PUSHD - -$fatpacked{"HTTP/Tiny.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'HTTP_TINY'; - package HTTP::Tiny;use strict;use warnings;our$VERSION='0.056';use Carp ();my@attributes;BEGIN {@attributes=qw(cookie_jar default_headers http_proxy https_proxy keep_alive local_address max_redirect max_size proxy no_proxy timeout SSL_options verify_SSL);my%persist_ok=map {;$_=>1}qw(cookie_jar default_headers max_redirect max_size);no strict 'refs';no warnings 'uninitialized';for my$accessor (@attributes){*{$accessor}=sub {@_ > 1 ? do {delete $_[0]->{handle}if!$persist_ok{$accessor}&& $_[1]ne $_[0]->{$accessor};$_[0]->{$accessor}=$_[1]}: $_[0]->{$accessor}}}}sub agent {my($self,$agent)=@_;if(@_ > 1){$self->{agent}=(defined$agent && $agent =~ / $/)? $agent .$self->_agent : $agent}return$self->{agent}}sub new {my($class,%args)=@_;my$self={max_redirect=>5,timeout=>60,keep_alive=>1,verify_SSL=>$args{verify_SSL}|| $args{verify_ssl}|| 0,no_proxy=>$ENV{no_proxy},};bless$self,$class;$class->_validate_cookie_jar($args{cookie_jar})if$args{cookie_jar};for my$key (@attributes){$self->{$key}=$args{$key}if exists$args{$key}}$self->agent(exists$args{agent}? $args{agent}: $class->_agent);$self->_set_proxies;return$self}sub _set_proxies {my ($self)=@_;if (!exists$self->{proxy}){$self->{proxy}=$ENV{all_proxy}|| $ENV{ALL_PROXY}}if (defined$self->{proxy}){$self->_split_proxy('generic proxy'=>$self->{proxy})}else {delete$self->{proxy}}if (!exists$self->{http_proxy}){local$ENV{HTTP_PROXY}if$ENV{REQUEST_METHOD};$self->{http_proxy}=$ENV{http_proxy}|| $ENV{HTTP_PROXY}|| $self->{proxy}}if (defined$self->{http_proxy}){$self->_split_proxy(http_proxy=>$self->{http_proxy});$self->{_has_proxy}{http}=1}else {delete$self->{http_proxy}}if (!exists$self->{https_proxy}){$self->{https_proxy}=$ENV{https_proxy}|| $ENV{HTTPS_PROXY}|| $self->{proxy}}if ($self->{https_proxy}){$self->_split_proxy(https_proxy=>$self->{https_proxy});$self->{_has_proxy}{https}=1}else {delete$self->{https_proxy}}unless (ref$self->{no_proxy}eq 'ARRAY'){$self->{no_proxy}=(defined$self->{no_proxy})? [split /\s*,\s*/,$self->{no_proxy}]: []}return}for my$sub_name (qw/get head put post delete/){my$req_method=uc$sub_name;no strict 'refs';eval <<"HERE"}sub post_form {my ($self,$url,$data,$args)=@_;(@_==3 || @_==4 && ref$args eq 'HASH')or Carp::croak(q/Usage: $http->post_form(URL, DATAREF, [HASHREF])/ ."\n");my$headers={};while (my ($key,$value)=each %{$args->{headers}|| {}}){$headers->{lc$key}=$value}delete$args->{headers};return$self->request('POST',$url,{%$args,content=>$self->www_form_urlencode($data),headers=>{%$headers,'content-type'=>'application/x-www-form-urlencoded' },})}sub mirror {my ($self,$url,$file,$args)=@_;@_==3 || (@_==4 && ref$args eq 'HASH')or Carp::croak(q/Usage: $http->mirror(URL, FILE, [HASHREF])/ ."\n");if (-e $file and my$mtime=(stat($file))[9]){$args->{headers}{'if-modified-since'}||= $self->_http_date($mtime)}my$tempfile=$file .int(rand(2**31));require Fcntl;sysopen my$fh,$tempfile,Fcntl::O_CREAT()|Fcntl::O_EXCL()|Fcntl::O_WRONLY()or Carp::croak(qq/Error: Could not create temporary file $tempfile for downloading: $!\n/);binmode$fh;$args->{data_callback}=sub {print {$fh}$_[0]};my$response=$self->request('GET',$url,$args);close$fh or Carp::croak(qq/Error: Caught error closing temporary file $tempfile: $!\n/);if ($response->{success}){rename$tempfile,$file or Carp::croak(qq/Error replacing $file with $tempfile: $!\n/);my$lm=$response->{headers}{'last-modified'};if ($lm and my$mtime=$self->_parse_http_date($lm)){utime$mtime,$mtime,$file}}$response->{success}||= $response->{status}eq '304';unlink$tempfile;return$response}my%idempotent=map {$_=>1}qw/GET HEAD PUT DELETE OPTIONS TRACE/;sub request {my ($self,$method,$url,$args)=@_;@_==3 || (@_==4 && ref$args eq 'HASH')or Carp::croak(q/Usage: $http->request(METHOD, URL, [HASHREF])/ ."\n");$args ||= {};my$response;for (0 .. 1){$response=eval {$self->_request($method,$url,$args)};last unless $@ && $idempotent{$method}&& $@ =~ m{^(?:Socket closed|Unexpected end)}}if (my$e=$@){if (ref$e eq 'HASH' && exists$e->{status}){return$e}$e="$e";$response={url=>$url,success=>q{},status=>599,reason=>'Internal Exception',content=>$e,headers=>{'content-type'=>'text/plain','content-length'=>length$e,}}}return$response}sub www_form_urlencode {my ($self,$data)=@_;(@_==2 && ref$data)or Carp::croak(q/Usage: $http->www_form_urlencode(DATAREF)/ ."\n");(ref$data eq 'HASH' || ref$data eq 'ARRAY')or Carp::croak("form data must be a hash or array reference\n");my@params=ref$data eq 'HASH' ? %$data : @$data;@params % 2==0 or Carp::croak("form data reference must have an even number of terms\n");my@terms;while(@params){my ($key,$value)=splice(@params,0,2);if (ref$value eq 'ARRAY'){unshift@params,map {$key=>$_}@$value}else {push@terms,join("=",map {$self->_uri_escape($_)}$key,$value)}}return join("&",(ref$data eq 'ARRAY')? (@terms): (sort@terms))}sub can_ssl {my ($self)=@_;my($ok,$reason)=(1,'');unless (eval {require IO::Socket::SSL;IO::Socket::SSL->VERSION(1.42)}){$ok=0;$reason .= qq/IO::Socket::SSL 1.42 must be installed for https support\n/}unless (eval {require Net::SSLeay;Net::SSLeay->VERSION(1.49)}){$ok=0;$reason .= qq/Net::SSLeay 1.49 must be installed for https support\n/}if (ref($self)&& ($self->{verify_SSL}|| $self->{SSL_options}{SSL_verify_mode})){my$handle=HTTP::Tiny::Handle->new(SSL_options=>$self->{SSL_options},verify_SSL=>$self->{verify_SSL},);unless (eval {$handle->_find_CA_file;1}){$ok=0;$reason .= "$@"}}wantarray ? ($ok,$reason): $ok}my%DefaultPort=(http=>80,https=>443,);sub _agent {my$class=ref($_[0])|| $_[0];(my$default_agent=$class)=~ s{::}{-}g;return$default_agent ."/" .$class->VERSION}sub _request {my ($self,$method,$url,$args)=@_;my ($scheme,$host,$port,$path_query,$auth)=$self->_split_url($url);my$request={method=>$method,scheme=>$scheme,host=>$host,port=>$port,host_port=>($port==$DefaultPort{$scheme}? $host : "$host:$port"),uri=>$path_query,headers=>{},};my$handle=delete$self->{handle};if ($handle){unless ($handle->can_reuse($scheme,$host,$port)){$handle->close;undef$handle}}$handle ||= $self->_open_handle($request,$scheme,$host,$port);$self->_prepare_headers_and_cb($request,$args,$url,$auth);$handle->write_request($request);my$response;do {$response=$handle->read_response_header}until (substr($response->{status},0,1)ne '1');$self->_update_cookie_jar($url,$response)if$self->{cookie_jar};if (my@redir_args=$self->_maybe_redirect($request,$response,$args)){$handle->close;return$self->_request(@redir_args,$args)}my$known_message_length;if ($method eq 'HEAD' || $response->{status}=~ /^[23]04/){$known_message_length=1}else {my$data_cb=$self->_prepare_data_cb($response,$args);$known_message_length=$handle->read_body($data_cb,$response)}if ($self->{keep_alive}&& $known_message_length && $response->{protocol}eq 'HTTP/1.1' && ($response->{headers}{connection}|| '')ne 'close'){$self->{handle}=$handle}else {$handle->close}$response->{success}=substr($response->{status},0,1)eq '2';$response->{url}=$url;return$response}sub _open_handle {my ($self,$request,$scheme,$host,$port)=@_;my$handle=HTTP::Tiny::Handle->new(timeout=>$self->{timeout},SSL_options=>$self->{SSL_options},verify_SSL=>$self->{verify_SSL},local_address=>$self->{local_address},keep_alive=>$self->{keep_alive});if ($self->{_has_proxy}{$scheme}&&!grep {$host =~ /\Q$_\E$/}@{$self->{no_proxy}}){return$self->_proxy_connect($request,$handle)}else {return$handle->connect($scheme,$host,$port)}}sub _proxy_connect {my ($self,$request,$handle)=@_;my@proxy_vars;if ($request->{scheme}eq 'https'){Carp::croak(qq{No https_proxy defined})unless$self->{https_proxy};@proxy_vars=$self->_split_proxy(https_proxy=>$self->{https_proxy});if ($proxy_vars[0]eq 'https'){Carp::croak(qq{Can't proxy https over https: $request->{uri} via $self->{https_proxy}})}}else {Carp::croak(qq{No http_proxy defined})unless$self->{http_proxy};@proxy_vars=$self->_split_proxy(http_proxy=>$self->{http_proxy})}my ($p_scheme,$p_host,$p_port,$p_auth)=@proxy_vars;if (length$p_auth &&!defined$request->{headers}{'proxy-authorization'}){$self->_add_basic_auth_header($request,'proxy-authorization'=>$p_auth)}$handle->connect($p_scheme,$p_host,$p_port);if ($request->{scheme}eq 'https'){$self->_create_proxy_tunnel($request,$handle)}else {$request->{uri}="$request->{scheme}://$request->{host_port}$request->{uri}"}return$handle}sub _split_proxy {my ($self,$type,$proxy)=@_;my ($scheme,$host,$port,$path_query,$auth)=eval {$self->_split_url($proxy)};unless(defined($scheme)&& length($scheme)&& length($host)&& length($port)&& $path_query eq '/'){Carp::croak(qq{$type URL must be in format http[s]://[auth@]<host>:<port>/\n})}return ($scheme,$host,$port,$auth)}sub _create_proxy_tunnel {my ($self,$request,$handle)=@_;$handle->_assert_ssl;my$agent=exists($request->{headers}{'user-agent'})? $request->{headers}{'user-agent'}: $self->{agent};my$connect_request={method=>'CONNECT',uri=>"$request->{host}:$request->{port}",headers=>{host=>"$request->{host}:$request->{port}",'user-agent'=>$agent,}};if ($request->{headers}{'proxy-authorization'}){$connect_request->{headers}{'proxy-authorization'}=delete$request->{headers}{'proxy-authorization'}}$handle->write_request($connect_request);my$response;do {$response=$handle->read_response_header}until (substr($response->{status},0,1)ne '1');unless (substr($response->{status},0,1)eq '2'){die$response}$handle->start_ssl($request->{host});return}sub _prepare_headers_and_cb {my ($self,$request,$args,$url,$auth)=@_;for ($self->{default_headers},$args->{headers}){next unless defined;while (my ($k,$v)=each %$_){$request->{headers}{lc$k}=$v}}if (exists$request->{headers}{'host'}){die(qq/The 'Host' header must not be provided as header option\n/)}$request->{headers}{'host'}=$request->{host_port};$request->{headers}{'user-agent'}||= $self->{agent};$request->{headers}{'connection'}="close" unless$self->{keep_alive};if (defined$args->{content}){if (ref$args->{content}eq 'CODE'){$request->{headers}{'content-type'}||= "application/octet-stream";$request->{headers}{'transfer-encoding'}='chunked' unless$request->{headers}{'content-length'}|| $request->{headers}{'transfer-encoding'};$request->{cb}=$args->{content}}elsif (length$args->{content}){my$content=$args->{content};if ($] ge '5.008'){utf8::downgrade($content,1)or die(qq/Wide character in request message body\n/)}$request->{headers}{'content-type'}||= "application/octet-stream";$request->{headers}{'content-length'}=length$content unless$request->{headers}{'content-length'}|| $request->{headers}{'transfer-encoding'};$request->{cb}=sub {substr$content,0,length$content,''}}$request->{trailer_cb}=$args->{trailer_callback}if ref$args->{trailer_callback}eq 'CODE'}if ($self->{cookie_jar}){my$cookies=$self->cookie_jar->cookie_header($url);$request->{headers}{cookie}=$cookies if length$cookies}if (length$auth &&!defined$request->{headers}{authorization}){$self->_add_basic_auth_header($request,'authorization'=>$auth)}return}sub _add_basic_auth_header {my ($self,$request,$header,$auth)=@_;require MIME::Base64;$request->{headers}{$header}="Basic " .MIME::Base64::encode_base64($auth,"");return}sub _prepare_data_cb {my ($self,$response,$args)=@_;my$data_cb=$args->{data_callback};$response->{content}='';if (!$data_cb || $response->{status}!~ /^2/){if (defined$self->{max_size}){$data_cb=sub {$_[1]->{content}.= $_[0];die(qq/Size of response body exceeds the maximum allowed of $self->{max_size}\n/)if length $_[1]->{content}> $self->{max_size}}}else {$data_cb=sub {$_[1]->{content}.= $_[0]}}}return$data_cb}sub _update_cookie_jar {my ($self,$url,$response)=@_;my$cookies=$response->{headers}->{'set-cookie'};return unless defined$cookies;my@cookies=ref$cookies ? @$cookies : $cookies;$self->cookie_jar->add($url,$_)for@cookies;return}sub _validate_cookie_jar {my ($class,$jar)=@_;for my$method (qw/add cookie_header/){Carp::croak(qq/Cookie jar must provide the '$method' method\n/)unless ref($jar)&& ref($jar)->can($method)}return}sub _maybe_redirect {my ($self,$request,$response,$args)=@_;my$headers=$response->{headers};my ($status,$method)=($response->{status},$request->{method});if (($status eq '303' or ($status =~ /^30[1278]/ && $method =~ /^GET|HEAD$/))and $headers->{location}and ++$args->{redirects}<= $self->{max_redirect}){my$location=($headers->{location}=~ /^\//)? "$request->{scheme}://$request->{host_port}$headers->{location}" : $headers->{location};return (($status eq '303' ? 'GET' : $method),$location)}return}sub _split_url {my$url=pop;my ($scheme,$host,$path_query)=$url =~ m<\A([^:/?#]+)://([^/?#]*)([^#]*)> or die(qq/Cannot parse URL: '$url'\n/);$scheme=lc$scheme;$path_query="/$path_query" unless$path_query =~ m<\A/>;my$auth='';if ((my$i=index$host,'@')!=-1){$auth=substr$host,0,$i,'';substr$host,0,1,'';$auth =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg}my$port=$host =~ s/:(\d*)\z// && length $1 ? $1 : $scheme eq 'http' ? 80 : $scheme eq 'https' ? 443 : undef;return ($scheme,(length$host ? lc$host : "localhost"),$port,$path_query,$auth)}my$DoW="Sun|Mon|Tue|Wed|Thu|Fri|Sat";my$MoY="Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec";sub _http_date {my ($sec,$min,$hour,$mday,$mon,$year,$wday)=gmtime($_[1]);return sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT",substr($DoW,$wday*4,3),$mday,substr($MoY,$mon*4,3),$year+1900,$hour,$min,$sec)}sub _parse_http_date {my ($self,$str)=@_;require Time::Local;my@tl_parts;if ($str =~ /^[SMTWF][a-z]+, +(\d{1,2}) ($MoY) +(\d\d\d\d) +(\d\d):(\d\d):(\d\d) +GMT$/){@tl_parts=($6,$5,$4,$1,(index($MoY,$2)/4),$3)}elsif ($str =~ /^[SMTWF][a-z]+, +(\d\d)-($MoY)-(\d{2,4}) +(\d\d):(\d\d):(\d\d) +GMT$/){@tl_parts=($6,$5,$4,$1,(index($MoY,$2)/4),$3)}elsif ($str =~ /^[SMTWF][a-z]+ +($MoY) +(\d{1,2}) +(\d\d):(\d\d):(\d\d) +(?:[^0-9]+ +)?(\d\d\d\d)$/){@tl_parts=($5,$4,$3,$2,(index($MoY,$1)/4),$6)}return eval {my$t=@tl_parts ? Time::Local::timegm(@tl_parts): -1;$t < 0 ? undef : $t}}my%escapes=map {chr($_)=>sprintf("%%%02X",$_)}0..255;$escapes{' '}="+";my$unsafe_char=qr/[^A-Za-z0-9\-\._~]/;sub _uri_escape {my ($self,$str)=@_;if ($] ge '5.008'){utf8::encode($str)}else {$str=pack("U*",unpack("C*",$str))if (length$str==do {use bytes;length$str});$str=pack("C*",unpack("C*",$str))}$str =~ s/($unsafe_char)/$escapes{$1}/ge;return$str}package HTTP::Tiny::Handle;use strict;use warnings;use Errno qw[EINTR EPIPE];use IO::Socket qw[SOCK_STREAM];my$SOCKET_CLASS=$ENV{PERL_HTTP_TINY_IPV4_ONLY}? 'IO::Socket::INET' : eval {require IO::Socket::IP;IO::Socket::IP->VERSION(0.25)}? 'IO::Socket::IP' : 'IO::Socket::INET';sub BUFSIZE () {32768}my$Printable=sub {local $_=shift;s/\r/\\r/g;s/\n/\\n/g;s/\t/\\t/g;s/([^\x20-\x7E])/sprintf('\\x%.2X', ord($1))/ge;$_};my$Token=qr/[\x21\x23-\x27\x2A\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E-\x7A\x7C\x7E]/;sub new {my ($class,%args)=@_;return bless {rbuf=>'',timeout=>60,max_line_size=>16384,max_header_lines=>64,verify_SSL=>0,SSL_options=>{},%args },$class}sub connect {@_==4 || die(q/Usage: $handle->connect(scheme, host, port)/ ."\n");my ($self,$scheme,$host,$port)=@_;if ($scheme eq 'https'){$self->_assert_ssl}elsif ($scheme ne 'http'){die(qq/Unsupported URL scheme '$scheme'\n/)}$self->{fh}=$SOCKET_CLASS->new(PeerHost=>$host,PeerPort=>$port,$self->{local_address}? (LocalAddr=>$self->{local_address}): (),Proto=>'tcp',Type=>SOCK_STREAM,Timeout=>$self->{timeout},KeepAlive=>!!$self->{keep_alive})or die(qq/Could not connect to '$host:$port': $@\n/);binmode($self->{fh})or die(qq/Could not binmode() socket: '$!'\n/);$self->start_ssl($host)if$scheme eq 'https';$self->{scheme}=$scheme;$self->{host}=$host;$self->{port}=$port;$self->{pid}=$$;$self->{tid}=_get_tid();return$self}sub start_ssl {my ($self,$host)=@_;if (ref($self->{fh})eq 'IO::Socket::SSL'){unless ($self->{fh}->stop_SSL){my$ssl_err=IO::Socket::SSL->errstr;die(qq/Error halting prior SSL connection: $ssl_err/)}}my$ssl_args=$self->_ssl_args($host);IO::Socket::SSL->start_SSL($self->{fh},%$ssl_args,SSL_create_ctx_callback=>sub {my$ctx=shift;Net::SSLeay::CTX_set_mode($ctx,Net::SSLeay::MODE_AUTO_RETRY())},);unless (ref($self->{fh})eq 'IO::Socket::SSL'){my$ssl_err=IO::Socket::SSL->errstr;die(qq/SSL connection failed for $host: $ssl_err\n/)}}sub close {@_==1 || die(q/Usage: $handle->close()/ ."\n");my ($self)=@_;CORE::close($self->{fh})or die(qq/Could not close socket: '$!'\n/)}sub write {@_==2 || die(q/Usage: $handle->write(buf)/ ."\n");my ($self,$buf)=@_;if ($] ge '5.008'){utf8::downgrade($buf,1)or die(qq/Wide character in write()\n/)}my$len=length$buf;my$off=0;local$SIG{PIPE}='IGNORE';while (){$self->can_write or die(qq/Timed out while waiting for socket to become ready for writing\n/);my$r=syswrite($self->{fh},$buf,$len,$off);if (defined$r){$len -= $r;$off += $r;last unless$len > 0}elsif ($!==EPIPE){die(qq/Socket closed by remote server: $!\n/)}elsif ($!!=EINTR){if ($self->{fh}->can('errstr')){my$err=$self->{fh}->errstr();die (qq/Could not write to SSL socket: '$err'\n /)}else {die(qq/Could not write to socket: '$!'\n/)}}}return$off}sub read {@_==2 || @_==3 || die(q/Usage: $handle->read(len [, allow_partial])/ ."\n");my ($self,$len,$allow_partial)=@_;my$buf='';my$got=length$self->{rbuf};if ($got){my$take=($got < $len)? $got : $len;$buf=substr($self->{rbuf},0,$take,'');$len -= $take}while ($len > 0){$self->can_read or die(q/Timed out while waiting for socket to become ready for reading/ ."\n");my$r=sysread($self->{fh},$buf,$len,length$buf);if (defined$r){last unless$r;$len -= $r}elsif ($!!=EINTR){if ($self->{fh}->can('errstr')){my$err=$self->{fh}->errstr();die (qq/Could not read from SSL socket: '$err'\n /)}else {die(qq/Could not read from socket: '$!'\n/)}}}if ($len &&!$allow_partial){die(qq/Unexpected end of stream\n/)}return$buf}sub readline {@_==1 || die(q/Usage: $handle->readline()/ ."\n");my ($self)=@_;while (){if ($self->{rbuf}=~ s/\A ([^\x0D\x0A]* \x0D?\x0A)//x){return $1}if (length$self->{rbuf}>= $self->{max_line_size}){die(qq/Line size exceeds the maximum allowed size of $self->{max_line_size}\n/)}$self->can_read or die(qq/Timed out while waiting for socket to become ready for reading\n/);my$r=sysread($self->{fh},$self->{rbuf},BUFSIZE,length$self->{rbuf});if (defined$r){last unless$r}elsif ($!!=EINTR){if ($self->{fh}->can('errstr')){my$err=$self->{fh}->errstr();die (qq/Could not read from SSL socket: '$err'\n /)}else {die(qq/Could not read from socket: '$!'\n/)}}}die(qq/Unexpected end of stream while looking for line\n/)}sub read_header_lines {@_==1 || @_==2 || die(q/Usage: $handle->read_header_lines([headers])/ ."\n");my ($self,$headers)=@_;$headers ||= {};my$lines=0;my$val;while (){my$line=$self->readline;if (++$lines >= $self->{max_header_lines}){die(qq/Header lines exceeds maximum number allowed of $self->{max_header_lines}\n/)}elsif ($line =~ /\A ([^\x00-\x1F\x7F:]+) : [\x09\x20]* ([^\x0D\x0A]*)/x){my ($field_name)=lc $1;if (exists$headers->{$field_name}){for ($headers->{$field_name}){$_=[$_]unless ref $_ eq "ARRAY";push @$_,$2;$val=\$_->[-1]}}else {$val=\($headers->{$field_name}=$2)}}elsif ($line =~ /\A [\x09\x20]+ ([^\x0D\x0A]*)/x){$val or die(qq/Unexpected header continuation line\n/);next unless length $1;$$val .= ' ' if length $$val;$$val .= $1}elsif ($line =~ /\A \x0D?\x0A \z/x){last}else {die(q/Malformed header line: / .$Printable->($line)."\n")}}return$headers}sub write_request {@_==2 || die(q/Usage: $handle->write_request(request)/ ."\n");my($self,$request)=@_;$self->write_request_header(@{$request}{qw/method uri headers/});$self->write_body($request)if$request->{cb};return}my%HeaderCase=('content-md5'=>'Content-MD5','etag'=>'ETag','te'=>'TE','www-authenticate'=>'WWW-Authenticate','x-xss-protection'=>'X-XSS-Protection',);sub write_header_lines {(@_==2 || @_==3 && ref $_[1]eq 'HASH')|| die(q/Usage: $handle->write_header_lines(headers[,prefix])/ ."\n");my($self,$headers,$prefix_data)=@_;my$buf=(defined$prefix_data ? $prefix_data : '');while (my ($k,$v)=each %$headers){my$field_name=lc$k;if (exists$HeaderCase{$field_name}){$field_name=$HeaderCase{$field_name}}else {$field_name =~ /\A $Token+ \z/xo or die(q/Invalid HTTP header field name: / .$Printable->($field_name)."\n");$field_name =~ s/\b(\w)/\u$1/g;$HeaderCase{lc$field_name}=$field_name}for (ref$v eq 'ARRAY' ? @$v : $v){$_='' unless defined $_;$buf .= "$field_name: $_\x0D\x0A"}}$buf .= "\x0D\x0A";return$self->write($buf)}sub read_body {@_==3 || die(q/Usage: $handle->read_body(callback, response)/ ."\n");my ($self,$cb,$response)=@_;my$te=$response->{headers}{'transfer-encoding'}|| '';my$chunked=grep {/chunked/i}(ref$te eq 'ARRAY' ? @$te : $te);return$chunked ? $self->read_chunked_body($cb,$response): $self->read_content_body($cb,$response)}sub write_body {@_==2 || die(q/Usage: $handle->write_body(request)/ ."\n");my ($self,$request)=@_;if ($request->{headers}{'content-length'}){return$self->write_content_body($request)}else {return$self->write_chunked_body($request)}}sub read_content_body {@_==3 || @_==4 || die(q/Usage: $handle->read_content_body(callback, response, [read_length])/ ."\n");my ($self,$cb,$response,$content_length)=@_;$content_length ||= $response->{headers}{'content-length'};if (defined$content_length){my$len=$content_length;while ($len > 0){my$read=($len > BUFSIZE)? BUFSIZE : $len;$cb->($self->read($read,0),$response);$len -= $read}return length($self->{rbuf})==0}my$chunk;$cb->($chunk,$response)while length($chunk=$self->read(BUFSIZE,1));return}sub write_content_body {@_==2 || die(q/Usage: $handle->write_content_body(request)/ ."\n");my ($self,$request)=@_;my ($len,$content_length)=(0,$request->{headers}{'content-length'});while (){my$data=$request->{cb}->();defined$data && length$data or last;if ($] ge '5.008'){utf8::downgrade($data,1)or die(qq/Wide character in write_content()\n/)}$len += $self->write($data)}$len==$content_length or die(qq/Content-Length mismatch (got: $len expected: $content_length)\n/);return$len}sub read_chunked_body {@_==3 || die(q/Usage: $handle->read_chunked_body(callback, $response)/ ."\n");my ($self,$cb,$response)=@_;while (){my$head=$self->readline;$head =~ /\A ([A-Fa-f0-9]+)/x or die(q/Malformed chunk head: / .$Printable->($head)."\n");my$len=hex($1)or last;$self->read_content_body($cb,$response,$len);$self->read(2)eq "\x0D\x0A" or die(qq/Malformed chunk: missing CRLF after chunk data\n/)}$self->read_header_lines($response->{headers});return 1}sub write_chunked_body {@_==2 || die(q/Usage: $handle->write_chunked_body(request)/ ."\n");my ($self,$request)=@_;my$len=0;while (){my$data=$request->{cb}->();defined$data && length$data or last;if ($] ge '5.008'){utf8::downgrade($data,1)or die(qq/Wide character in write_chunked_body()\n/)}$len += length$data;my$chunk=sprintf '%X',length$data;$chunk .= "\x0D\x0A";$chunk .= $data;$chunk .= "\x0D\x0A";$self->write($chunk)}$self->write("0\x0D\x0A");$self->write_header_lines($request->{trailer_cb}->())if ref$request->{trailer_cb}eq 'CODE';return$len}sub read_response_header {@_==1 || die(q/Usage: $handle->read_response_header()/ ."\n");my ($self)=@_;my$line=$self->readline;$line =~ /\A (HTTP\/(0*\d+\.0*\d+)) [\x09\x20]+ ([0-9]{3}) [\x09\x20]+ ([^\x0D\x0A]*) \x0D?\x0A/x or die(q/Malformed Status-Line: / .$Printable->($line)."\n");my ($protocol,$version,$status,$reason)=($1,$2,$3,$4);die (qq/Unsupported HTTP protocol: $protocol\n/)unless$version =~ /0*1\.0*[01]/;return {status=>$status,reason=>$reason,headers=>$self->read_header_lines,protocol=>$protocol,}}sub write_request_header {@_==4 || die(q/Usage: $handle->write_request_header(method, request_uri, headers)/ ."\n");my ($self,$method,$request_uri,$headers)=@_;return$self->write_header_lines($headers,"$method $request_uri HTTP/1.1\x0D\x0A")}sub _do_timeout {my ($self,$type,$timeout)=@_;$timeout=$self->{timeout}unless defined$timeout && $timeout >= 0;my$fd=fileno$self->{fh};defined$fd && $fd >= 0 or die(qq/select(2): 'Bad file descriptor'\n/);my$initial=time;my$pending=$timeout;my$nfound;vec(my$fdset='',$fd,1)=1;while (){$nfound=($type eq 'read')? select($fdset,undef,undef,$pending): select(undef,$fdset,undef,$pending);if ($nfound==-1){$!==EINTR or die(qq/select(2): '$!'\n/);redo if!$timeout || ($pending=$timeout - (time - $initial))> 0;$nfound=0}last}$!=0;return$nfound}sub can_read {@_==1 || @_==2 || die(q/Usage: $handle->can_read([timeout])/ ."\n");my$self=shift;if (ref($self->{fh})eq 'IO::Socket::SSL'){return 1 if$self->{fh}->pending}return$self->_do_timeout('read',@_)}sub can_write {@_==1 || @_==2 || die(q/Usage: $handle->can_write([timeout])/ ."\n");my$self=shift;return$self->_do_timeout('write',@_)}sub _assert_ssl {my($ok,$reason)=HTTP::Tiny->can_ssl();die$reason unless$ok}sub can_reuse {my ($self,$scheme,$host,$port)=@_;return 0 if $self->{pid}!=$$ || $self->{tid}!=_get_tid()|| length($self->{rbuf})|| $scheme ne $self->{scheme}|| $host ne $self->{host}|| $port ne $self->{port}|| eval {$self->can_read(0)}|| $@ ;return 1}sub _find_CA_file {my$self=shift();if ($self->{SSL_options}->{SSL_ca_file}){unless (-r $self->{SSL_options}->{SSL_ca_file}){die qq/SSL_ca_file '$self->{SSL_options}->{SSL_ca_file}' not found or not readable\n/}return$self->{SSL_options}->{SSL_ca_file}}return Mozilla::CA::SSL_ca_file()if eval {require Mozilla::CA;1};for my$ca_bundle ("/etc/ssl/certs/ca-certificates.crt","/etc/pki/tls/certs/ca-bundle.crt","/etc/ssl/ca-bundle.pem","/etc/openssl/certs/ca-certificates.crt","/etc/ssl/cert.pem","/usr/local/share/certs/ca-root-nss.crt","/etc/pki/tls/cacert.pem","/etc/certs/ca-certificates.crt",){return$ca_bundle if -e $ca_bundle}die qq/Couldn't find a CA bundle with which to verify the SSL certificate.\n/ .qq/Try installing Mozilla::CA from CPAN\n/}sub _get_tid {no warnings 'reserved';return threads->can("tid")? threads->tid : 0}sub _ssl_args {my ($self,$host)=@_;my%ssl_args;if (Net::SSLeay::OPENSSL_VERSION_NUMBER()>= 0x01000000){$ssl_args{SSL_hostname}=$host,}if ($self->{verify_SSL}){$ssl_args{SSL_verifycn_scheme}='http';$ssl_args{SSL_verifycn_name}=$host;$ssl_args{SSL_verify_mode}=0x01;$ssl_args{SSL_ca_file}=$self->_find_CA_file}else {$ssl_args{SSL_verifycn_scheme}='none';$ssl_args{SSL_verify_mode}=0x00}for my$k (keys %{$self->{SSL_options}}){$ssl_args{$k}=$self->{SSL_options}{$k}if$k =~ m/^SSL_/}return \%ssl_args}1; - sub $sub_name { - my (\$self, \$url, \$args) = \@_; - \@_ == 2 || (\@_ == 3 && ref \$args eq 'HASH') - or Carp::croak(q/Usage: \$http->$sub_name(URL, [HASHREF])/ . "\n"); - return \$self->request('$req_method', \$url, \$args || {}); - } - HERE -HTTP_TINY - -$fatpacked{"JSON/PP.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'JSON_PP'; - package JSON::PP;use 5.005;use strict;use base qw(Exporter);use overload ();use Carp ();use B ();$JSON::PP::VERSION='2.27300';@JSON::PP::EXPORT=qw(encode_json decode_json from_json to_json);use constant P_ASCII=>0;use constant P_LATIN1=>1;use constant P_UTF8=>2;use constant P_INDENT=>3;use constant P_CANONICAL=>4;use constant P_SPACE_BEFORE=>5;use constant P_SPACE_AFTER=>6;use constant P_ALLOW_NONREF=>7;use constant P_SHRINK=>8;use constant P_ALLOW_BLESSED=>9;use constant P_CONVERT_BLESSED=>10;use constant P_RELAXED=>11;use constant P_LOOSE=>12;use constant P_ALLOW_BIGNUM=>13;use constant P_ALLOW_BAREKEY=>14;use constant P_ALLOW_SINGLEQUOTE=>15;use constant P_ESCAPE_SLASH=>16;use constant P_AS_NONBLESSED=>17;use constant P_ALLOW_UNKNOWN=>18;use constant OLD_PERL=>$] < 5.008 ? 1 : 0;BEGIN {my@xs_compati_bit_properties=qw(latin1 ascii utf8 indent canonical space_before space_after allow_nonref shrink allow_blessed convert_blessed relaxed allow_unknown);my@pp_bit_properties=qw(allow_singlequote allow_bignum loose allow_barekey escape_slash as_nonblessed);if ($] < 5.008){my$helper=$] >= 5.006 ? 'JSON::PP::Compat5006' : 'JSON::PP::Compat5005';eval qq| require $helper |;if ($@){Carp::croak $@}}for my$name (@xs_compati_bit_properties,@pp_bit_properties){my$flag_name='P_' .uc($name);eval qq/ - sub $name { - my \$enable = defined \$_[1] ? \$_[1] : 1; - - if (\$enable) { - \$_[0]->{PROPS}->[$flag_name] = 1; - } - else { - \$_[0]->{PROPS}->[$flag_name] = 0; - } - - \$_[0]; - } - - sub get_$name { - \$_[0]->{PROPS}->[$flag_name] ? 1 : ''; - } - /}}my%encode_allow_method =map {($_=>1)}qw/utf8 pretty allow_nonref latin1 self_encode escape_slash allow_blessed convert_blessed indent indent_length allow_bignum as_nonblessed/;my%decode_allow_method =map {($_=>1)}qw/utf8 allow_nonref loose allow_singlequote allow_bignum allow_barekey max_size relaxed/;my$JSON;sub encode_json ($) {($JSON ||= __PACKAGE__->new->utf8)->encode(@_)}sub decode_json {($JSON ||= __PACKAGE__->new->utf8)->decode(@_)}sub to_json($) {Carp::croak ("JSON::PP::to_json has been renamed to encode_json.")}sub from_json($) {Carp::croak ("JSON::PP::from_json has been renamed to decode_json.")}sub new {my$class=shift;my$self={max_depth=>512,max_size=>0,indent=>0,FLAGS=>0,fallback=>sub {encode_error('Invalid value. JSON can only reference.')},indent_length=>3,};bless$self,$class}sub encode {return $_[0]->PP_encode_json($_[1])}sub decode {return $_[0]->PP_decode_json($_[1],0x00000000)}sub decode_prefix {return $_[0]->PP_decode_json($_[1],0x00000001)}sub pretty {my ($self,$v)=@_;my$enable=defined$v ? $v : 1;if ($enable){$self->indent(1)->indent_length(3)->space_before(1)->space_after(1)}else {$self->indent(0)->space_before(0)->space_after(0)}$self}sub max_depth {my$max=defined $_[1]? $_[1]: 0x80000000;$_[0]->{max_depth}=$max;$_[0]}sub get_max_depth {$_[0]->{max_depth}}sub max_size {my$max=defined $_[1]? $_[1]: 0;$_[0]->{max_size}=$max;$_[0]}sub get_max_size {$_[0]->{max_size}}sub filter_json_object {$_[0]->{cb_object}=defined $_[1]? $_[1]: 0;$_[0]->{F_HOOK}=($_[0]->{cb_object}or $_[0]->{cb_sk_object})? 1 : 0;$_[0]}sub filter_json_single_key_object {if (@_ > 1){$_[0]->{cb_sk_object}->{$_[1]}=$_[2]}$_[0]->{F_HOOK}=($_[0]->{cb_object}or $_[0]->{cb_sk_object})? 1 : 0;$_[0]}sub indent_length {if (!defined $_[1]or $_[1]> 15 or $_[1]< 0){Carp::carp "The acceptable range of indent_length() is 0 to 15."}else {$_[0]->{indent_length}=$_[1]}$_[0]}sub get_indent_length {$_[0]->{indent_length}}sub sort_by {$_[0]->{sort_by}=defined $_[1]? $_[1]: 1;$_[0]}sub allow_bigint {Carp::carp("allow_bigint() is obsoleted. use allow_bignum() insted.")}{my$max_depth;my$indent;my$ascii;my$latin1;my$utf8;my$space_before;my$space_after;my$canonical;my$allow_blessed;my$convert_blessed;my$indent_length;my$escape_slash;my$bignum;my$as_nonblessed;my$depth;my$indent_count;my$keysort;sub PP_encode_json {my$self=shift;my$obj=shift;$indent_count=0;$depth=0;my$idx=$self->{PROPS};($ascii,$latin1,$utf8,$indent,$canonical,$space_before,$space_after,$allow_blessed,$convert_blessed,$escape_slash,$bignum,$as_nonblessed)=@{$idx}[P_ASCII .. P_SPACE_AFTER,P_ALLOW_BLESSED,P_CONVERT_BLESSED,P_ESCAPE_SLASH,P_ALLOW_BIGNUM,P_AS_NONBLESSED];($max_depth,$indent_length)=@{$self}{qw/max_depth indent_length/};$keysort=$canonical ? sub {$a cmp $b}: undef;if ($self->{sort_by}){$keysort=ref($self->{sort_by})eq 'CODE' ? $self->{sort_by}: $self->{sort_by}=~ /\D+/ ? $self->{sort_by}: sub {$a cmp $b}}encode_error("hash- or arrayref expected (not a simple scalar, use allow_nonref to allow this)")if(!ref$obj and!$idx->[P_ALLOW_NONREF ]);my$str=$self->object_to_json($obj);$str .= "\n" if ($indent);unless ($ascii or $latin1 or $utf8){utf8::upgrade($str)}if ($idx->[P_SHRINK ]){utf8::downgrade($str,1)}return$str}sub object_to_json {my ($self,$obj)=@_;my$type=ref($obj);if($type eq 'HASH'){return$self->hash_to_json($obj)}elsif($type eq 'ARRAY'){return$self->array_to_json($obj)}elsif ($type){if (blessed($obj)){return$self->value_to_json($obj)if ($obj->isa('JSON::PP::Boolean'));if ($convert_blessed and $obj->can('TO_JSON')){my$result=$obj->TO_JSON();if (defined$result and ref($result)){if (refaddr($obj)eq refaddr($result)){encode_error(sprintf("%s::TO_JSON method returned same object as was passed instead of a new one",ref$obj))}}return$self->object_to_json($result)}return "$obj" if ($bignum and _is_bignum($obj));return$self->blessed_to_json($obj)if ($allow_blessed and $as_nonblessed);encode_error(sprintf("encountered object '%s', but neither allow_blessed " ."nor convert_blessed settings are enabled",$obj))unless ($allow_blessed);return 'null'}else {return$self->value_to_json($obj)}}else{return$self->value_to_json($obj)}}sub hash_to_json {my ($self,$obj)=@_;my@res;encode_error("json text or perl structure exceeds maximum nesting level (max_depth set too low?)")if (++$depth > $max_depth);my ($pre,$post)=$indent ? $self->_up_indent(): ('','');my$del=($space_before ? ' ' : '').':' .($space_after ? ' ' : '');for my$k (_sort($obj)){if (OLD_PERL){utf8::decode($k)}push@res,string_to_json($self,$k).$del .($self->object_to_json($obj->{$k})|| $self->value_to_json($obj->{$k}))}--$depth;$self->_down_indent()if ($indent);return '{' .(@res ? $pre : '').(@res ? join(",$pre",@res).$post : '').'}'}sub array_to_json {my ($self,$obj)=@_;my@res;encode_error("json text or perl structure exceeds maximum nesting level (max_depth set too low?)")if (++$depth > $max_depth);my ($pre,$post)=$indent ? $self->_up_indent(): ('','');for my$v (@$obj){push@res,$self->object_to_json($v)|| $self->value_to_json($v)}--$depth;$self->_down_indent()if ($indent);return '[' .(@res ? $pre : '').(@res ? join(",$pre",@res).$post : '').']'}sub value_to_json {my ($self,$value)=@_;return 'null' if(!defined$value);my$b_obj=B::svref_2object(\$value);my$flags=$b_obj->FLAGS;return$value if$flags & (B::SVp_IOK | B::SVp_NOK)and!($flags & B::SVp_POK);my$type=ref($value);if(!$type){return string_to_json($self,$value)}elsif(blessed($value)and $value->isa('JSON::PP::Boolean')){return $$value==1 ? 'true' : 'false'}elsif ($type){if ((overload::StrVal($value)=~ /=(\w+)/)[0]){return$self->value_to_json("$value")}if ($type eq 'SCALAR' and defined $$value){return $$value eq '1' ? 'true' : $$value eq '0' ? 'false' : $self->{PROPS}->[P_ALLOW_UNKNOWN ]? 'null' : encode_error("cannot encode reference to scalar")}if ($self->{PROPS}->[P_ALLOW_UNKNOWN ]){return 'null'}else {if ($type eq 'SCALAR' or $type eq 'REF'){encode_error("cannot encode reference to scalar")}else {encode_error("encountered $value, but JSON can only represent references to arrays or hashes")}}}else {return$self->{fallback}->($value)if ($self->{fallback}and ref($self->{fallback})eq 'CODE');return 'null'}}my%esc=("\n"=>'\n',"\r"=>'\r',"\t"=>'\t',"\f"=>'\f',"\b"=>'\b',"\""=>'\"',"\\"=>'\\\\',"\'"=>'\\\'',);sub string_to_json {my ($self,$arg)=@_;$arg =~ s/([\x22\x5c\n\r\t\f\b])/$esc{$1}/g;$arg =~ s/\//\\\//g if ($escape_slash);$arg =~ s/([\x00-\x08\x0b\x0e-\x1f])/'\\u00' . unpack('H2', $1)/eg;if ($ascii){$arg=JSON_PP_encode_ascii($arg)}if ($latin1){$arg=JSON_PP_encode_latin1($arg)}if ($utf8){utf8::encode($arg)}return '"' .$arg .'"'}sub blessed_to_json {my$reftype=reftype($_[1])|| '';if ($reftype eq 'HASH'){return $_[0]->hash_to_json($_[1])}elsif ($reftype eq 'ARRAY'){return $_[0]->array_to_json($_[1])}else {return 'null'}}sub encode_error {my$error=shift;Carp::croak "$error"}sub _sort {defined$keysort ? (sort$keysort (keys %{$_[0]})): keys %{$_[0]}}sub _up_indent {my$self=shift;my$space=' ' x $indent_length;my ($pre,$post)=('','');$post="\n" .$space x $indent_count;$indent_count++;$pre="\n" .$space x $indent_count;return ($pre,$post)}sub _down_indent {$indent_count--}sub PP_encode_box {{depth=>$depth,indent_count=>$indent_count,}}}sub _encode_ascii {join('',map {$_ <= 127 ? chr($_): $_ <= 65535 ? sprintf('\u%04x',$_): sprintf('\u%x\u%x',_encode_surrogates($_))}unpack('U*',$_[0]))}sub _encode_latin1 {join('',map {$_ <= 255 ? chr($_): $_ <= 65535 ? sprintf('\u%04x',$_): sprintf('\u%x\u%x',_encode_surrogates($_))}unpack('U*',$_[0]))}sub _encode_surrogates {my$uni=$_[0]- 0x10000;return ($uni / 0x400 + 0xD800,$uni % 0x400 + 0xDC00)}sub _is_bignum {$_[0]->isa('Math::BigInt')or $_[0]->isa('Math::BigFloat')}my$max_intsize;BEGIN {my$checkint=1111;for my$d (5..64){$checkint .= 1;my$int=eval qq| $checkint |;if ($int =~ /[eE]/){$max_intsize=$d - 1;last}}}{my%escapes=(b=>"\x8",t=>"\x9",n=>"\xA",f=>"\xC",r=>"\xD",'\\'=>'\\','"'=>'"','/'=>'/',);my$text;my$at;my$ch;my$len;my$depth;my$encoding;my$is_valid_utf8;my$utf8_len;my$utf8;my$max_depth;my$max_size;my$relaxed;my$cb_object;my$cb_sk_object;my$F_HOOK;my$allow_bigint;my$singlequote;my$loose;my$allow_barekey;sub PP_decode_json {my ($self,$opt);($self,$text,$opt)=@_;($at,$ch,$depth)=(0,'',0);if (!defined$text or ref$text){decode_error("malformed JSON string, neither array, object, number, string or atom")}my$idx=$self->{PROPS};($utf8,$relaxed,$loose,$allow_bigint,$allow_barekey,$singlequote)=@{$idx}[P_UTF8,P_RELAXED,P_LOOSE .. P_ALLOW_SINGLEQUOTE];if ($utf8){utf8::downgrade($text,1)or Carp::croak("Wide character in subroutine entry")}else {utf8::upgrade($text);utf8::encode($text)}$len=length$text;($max_depth,$max_size,$cb_object,$cb_sk_object,$F_HOOK)=@{$self}{qw/max_depth max_size cb_object cb_sk_object F_HOOK/};if ($max_size > 1){use bytes;my$bytes=length$text;decode_error(sprintf("attempted decode of JSON text of %s bytes size, but max_size is set to %s" ,$bytes,$max_size),1)if ($bytes > $max_size)}my@octets=unpack('C4',$text);$encoding=($octets[0]and $octets[1])? 'UTF-8' : (!$octets[0]and $octets[1])? 'UTF-16BE' : (!$octets[0]and!$octets[1])? 'UTF-32BE' : ($octets[2])? 'UTF-16LE' : (!$octets[2])? 'UTF-32LE' : 'unknown';white();my$valid_start=defined$ch;my$result=value();return undef if (!$result && ($opt & 0x10000000));decode_error("malformed JSON string, neither array, object, number, string or atom")unless$valid_start;if (!$idx->[P_ALLOW_NONREF ]and!ref$result){decode_error('JSON text must be an object or array (but found number, string, true, false or null,' .' use allow_nonref to allow this)',1)}Carp::croak('something wrong.')if$len < $at;my$consumed=defined$ch ? $at - 1 : $at;white();if ($ch){return ($result,$consumed)if ($opt & 0x00000001);decode_error("garbage after JSON object")}($opt & 0x00000001)? ($result,$consumed): $result}sub next_chr {return$ch=undef if($at >= $len);$ch=substr($text,$at++,1)}sub value {white();return if(!defined$ch);return object()if($ch eq '{');return array()if($ch eq '[');return string()if($ch eq '"' or ($singlequote and $ch eq "'"));return number()if($ch =~ /[0-9]/ or $ch eq '-');return word()}sub string {my ($i,$s,$t,$u);my$utf16;my$is_utf8;($is_valid_utf8,$utf8_len)=('',0);$s='';if($ch eq '"' or ($singlequote and $ch eq "'")){my$boundChar=$ch;OUTER: while(defined(next_chr())){if($ch eq $boundChar){next_chr();if ($utf16){decode_error("missing low surrogate character in surrogate pair")}utf8::decode($s)if($is_utf8);return$s}elsif($ch eq '\\'){next_chr();if(exists$escapes{$ch}){$s .= $escapes{$ch}}elsif($ch eq 'u'){my$u='';for(1..4){$ch=next_chr();last OUTER if($ch !~ /[0-9a-fA-F]/);$u .= $ch}if ($u =~ /^[dD][89abAB][0-9a-fA-F]{2}/){$utf16=$u}elsif ($u =~ /^[dD][c-fC-F][0-9a-fA-F]{2}/){unless (defined$utf16){decode_error("missing high surrogate character in surrogate pair")}$is_utf8=1;$s .= JSON_PP_decode_surrogates($utf16,$u)|| next;$utf16=undef}else {if (defined$utf16){decode_error("surrogate pair expected")}if ((my$hex=hex($u))> 127){$is_utf8=1;$s .= JSON_PP_decode_unicode($u)|| next}else {$s .= chr$hex}}}else{unless ($loose){$at -= 2;decode_error('illegal backslash escape sequence in string')}$s .= $ch}}else{if (ord$ch > 127){unless($ch=is_valid_utf8($ch)){$at -= 1;decode_error("malformed UTF-8 character in JSON string")}else {$at += $utf8_len - 1}$is_utf8=1}if (!$loose){if ($ch =~ /[\x00-\x1f\x22\x5c]/){$at--;decode_error('invalid character encountered while parsing JSON string')}}$s .= $ch}}}decode_error("unexpected end of string while parsing JSON string")}sub white {while(defined$ch){if($ch le ' '){next_chr()}elsif($ch eq '/'){next_chr();if(defined$ch and $ch eq '/'){1 while(defined(next_chr())and $ch ne "\n" and $ch ne "\r")}elsif(defined$ch and $ch eq '*'){next_chr();while(1){if(defined$ch){if($ch eq '*'){if(defined(next_chr())and $ch eq '/'){next_chr();last}}else{next_chr()}}else{decode_error("Unterminated comment")}}next}else{$at--;decode_error("malformed JSON string, neither array, object, number, string or atom")}}else{if ($relaxed and $ch eq '#'){pos($text)=$at;$text =~ /\G([^\n]*(?:\r\n|\r|\n|$))/g;$at=pos($text);next_chr;next}last}}}sub array {my$a=$_[0]|| [];decode_error('json text or perl structure exceeds maximum nesting level (max_depth set too low?)')if (++$depth > $max_depth);next_chr();white();if(defined$ch and $ch eq ']'){--$depth;next_chr();return$a}else {while(defined($ch)){push @$a,value();white();if (!defined$ch){last}if($ch eq ']'){--$depth;next_chr();return$a}if($ch ne ','){last}next_chr();white();if ($relaxed and $ch eq ']'){--$depth;next_chr();return$a}}}decode_error(", or ] expected while parsing array")}sub object {my$o=$_[0]|| {};my$k;decode_error('json text or perl structure exceeds maximum nesting level (max_depth set too low?)')if (++$depth > $max_depth);next_chr();white();if(defined$ch and $ch eq '}'){--$depth;next_chr();if ($F_HOOK){return _json_object_hook($o)}return$o}else {while (defined$ch){$k=($allow_barekey and $ch ne '"' and $ch ne "'")? bareKey(): string();white();if(!defined$ch or $ch ne ':'){$at--;decode_error("':' expected")}next_chr();$o->{$k}=value();white();last if (!defined$ch);if($ch eq '}'){--$depth;next_chr();if ($F_HOOK){return _json_object_hook($o)}return$o}if($ch ne ','){last}next_chr();white();if ($relaxed and $ch eq '}'){--$depth;next_chr();if ($F_HOOK){return _json_object_hook($o)}return$o}}}$at--;decode_error(", or } expected while parsing object/hash")}sub bareKey {my$key;while($ch =~ /[^\x00-\x23\x25-\x2F\x3A-\x40\x5B-\x5E\x60\x7B-\x7F]/){$key .= $ch;next_chr()}return$key}sub word {my$word=substr($text,$at-1,4);if($word eq 'true'){$at += 3;next_chr;return$JSON::PP::true}elsif($word eq 'null'){$at += 3;next_chr;return undef}elsif($word eq 'fals'){$at += 3;if(substr($text,$at,1)eq 'e'){$at++;next_chr;return$JSON::PP::false}}$at--;decode_error("'null' expected")if ($word =~ /^n/);decode_error("'true' expected")if ($word =~ /^t/);decode_error("'false' expected")if ($word =~ /^f/);decode_error("malformed JSON string, neither array, object, number, string or atom")}sub number {my$n='';my$v;if($ch eq '0'){my$peek=substr($text,$at,1);my$hex=$peek =~ /[xX]/;if($hex){decode_error("malformed number (leading zero must not be followed by another digit)");($n)=(substr($text,$at+1)=~ /^([0-9a-fA-F]+)/)}else{($n)=(substr($text,$at)=~ /^([0-7]+)/);if (defined$n and length$n > 1){decode_error("malformed number (leading zero must not be followed by another digit)")}}if(defined$n and length($n)){if (!$hex and length($n)==1){decode_error("malformed number (leading zero must not be followed by another digit)")}$at += length($n)+ $hex;next_chr;return$hex ? hex($n): oct($n)}}if($ch eq '-'){$n='-';next_chr;if (!defined$ch or $ch !~ /\d/){decode_error("malformed number (no digits after initial minus)")}}while(defined$ch and $ch =~ /\d/){$n .= $ch;next_chr}if(defined$ch and $ch eq '.'){$n .= '.';next_chr;if (!defined$ch or $ch !~ /\d/){decode_error("malformed number (no digits after decimal point)")}else {$n .= $ch}while(defined(next_chr)and $ch =~ /\d/){$n .= $ch}}if(defined$ch and ($ch eq 'e' or $ch eq 'E')){$n .= $ch;next_chr;if(defined($ch)and ($ch eq '+' or $ch eq '-')){$n .= $ch;next_chr;if (!defined$ch or $ch =~ /\D/){decode_error("malformed number (no digits after exp sign)")}$n .= $ch}elsif(defined($ch)and $ch =~ /\d/){$n .= $ch}else {decode_error("malformed number (no digits after exp sign)")}while(defined(next_chr)and $ch =~ /\d/){$n .= $ch}}$v .= $n;if ($v !~ /[.eE]/ and length$v > $max_intsize){if ($allow_bigint){require Math::BigInt;return Math::BigInt->new($v)}else {return "$v"}}elsif ($allow_bigint){require Math::BigFloat;return Math::BigFloat->new($v)}return 0+$v}sub is_valid_utf8 {$utf8_len=$_[0]=~ /[\x00-\x7F]/ ? 1 : $_[0]=~ /[\xC2-\xDF]/ ? 2 : $_[0]=~ /[\xE0-\xEF]/ ? 3 : $_[0]=~ /[\xF0-\xF4]/ ? 4 : 0 ;return unless$utf8_len;my$is_valid_utf8=substr($text,$at - 1,$utf8_len);return ($is_valid_utf8 =~ /^(?: - [\x00-\x7F] - |[\xC2-\xDF][\x80-\xBF] - |[\xE0][\xA0-\xBF][\x80-\xBF] - |[\xE1-\xEC][\x80-\xBF][\x80-\xBF] - |[\xED][\x80-\x9F][\x80-\xBF] - |[\xEE-\xEF][\x80-\xBF][\x80-\xBF] - |[\xF0][\x90-\xBF][\x80-\xBF][\x80-\xBF] - |[\xF1-\xF3][\x80-\xBF][\x80-\xBF][\x80-\xBF] - |[\xF4][\x80-\x8F][\x80-\xBF][\x80-\xBF] - )$/x)? $is_valid_utf8 : ''}sub decode_error {my$error=shift;my$no_rep=shift;my$str=defined$text ? substr($text,$at): '';my$mess='';my$type=$] >= 5.008 ? 'U*' : $] < 5.006 ? 'C*' : utf8::is_utf8($str)? 'U*' : 'C*' ;for my$c (unpack($type,$str)){$mess .= $c==0x07 ? '\a' : $c==0x09 ? '\t' : $c==0x0a ? '\n' : $c==0x0d ? '\r' : $c==0x0c ? '\f' : $c < 0x20 ? sprintf('\x{%x}',$c): $c==0x5c ? '\\\\' : $c < 0x80 ? chr($c): sprintf('\x{%x}',$c);if (length$mess >= 20){$mess .= '...';last}}unless (length$mess){$mess='(end of string)'}Carp::croak ($no_rep ? "$error" : "$error, at character offset $at (before \"$mess\")")}sub _json_object_hook {my$o=$_[0];my@ks=keys %{$o};if ($cb_sk_object and @ks==1 and exists$cb_sk_object->{$ks[0]}and ref$cb_sk_object->{$ks[0]}){my@val=$cb_sk_object->{$ks[0]}->($o->{$ks[0]});if (@val==1){return$val[0]}}my@val=$cb_object->($o)if ($cb_object);if (@val==0 or @val > 1){return$o}else {return$val[0]}}sub PP_decode_box {{text=>$text,at=>$at,ch=>$ch,len=>$len,depth=>$depth,encoding=>$encoding,is_valid_utf8=>$is_valid_utf8,}}}sub _decode_surrogates {my$uni=0x10000 + (hex($_[0])- 0xD800)* 0x400 + (hex($_[1])- 0xDC00);my$un=pack('U*',$uni);utf8::encode($un);return$un}sub _decode_unicode {my$un=pack('U',hex shift);utf8::encode($un);return$un}BEGIN {unless (defined&utf8::is_utf8){require Encode;*utf8::is_utf8=*Encode::is_utf8}if ($] >= 5.008){*JSON::PP::JSON_PP_encode_ascii=\&_encode_ascii;*JSON::PP::JSON_PP_encode_latin1=\&_encode_latin1;*JSON::PP::JSON_PP_decode_surrogates=\&_decode_surrogates;*JSON::PP::JSON_PP_decode_unicode=\&_decode_unicode}if ($] >= 5.008 and $] < 5.008003){package JSON::PP;require subs;subs->import('join');eval q| - sub join { - return '' if (@_ < 2); - my $j = shift; - my $str = shift; - for (@_) { $str .= $j . $_; } - return $str; - } - |}sub JSON::PP::incr_parse {local$Carp::CarpLevel=1;($_[0]->{_incr_parser}||= JSON::PP::IncrParser->new)->incr_parse(@_)}sub JSON::PP::incr_skip {($_[0]->{_incr_parser}||= JSON::PP::IncrParser->new)->incr_skip}sub JSON::PP::incr_reset {($_[0]->{_incr_parser}||= JSON::PP::IncrParser->new)->incr_reset}eval q{ - sub JSON::PP::incr_text : lvalue { - $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new; - - if ( $_[0]->{_incr_parser}->{incr_parsing} ) { - Carp::croak("incr_text can not be called when the incremental parser already started parsing"); - } - $_[0]->{_incr_parser}->{incr_text}; - } - } if ($] >= 5.006)}BEGIN {eval 'require Scalar::Util';unless($@){*JSON::PP::blessed=\&Scalar::Util::blessed;*JSON::PP::reftype=\&Scalar::Util::reftype;*JSON::PP::refaddr=\&Scalar::Util::refaddr}else{eval 'sub UNIVERSAL::a_sub_not_likely_to_be_here { ref($_[0]) }';*JSON::PP::blessed=sub {local($@,$SIG{__DIE__},$SIG{__WARN__});ref($_[0])? eval {$_[0]->a_sub_not_likely_to_be_here}: undef};my%tmap=qw(B::NULL SCALAR B::HV HASH B::AV ARRAY B::CV CODE B::IO IO B::GV GLOB B::REGEXP REGEXP);*JSON::PP::reftype=sub {my$r=shift;return undef unless length(ref($r));my$t=ref(B::svref_2object($r));return exists$tmap{$t}? $tmap{$t}: length(ref($$r))? 'REF' : 'SCALAR'};*JSON::PP::refaddr=sub {return undef unless length(ref($_[0]));my$addr;if(defined(my$pkg=blessed($_[0]))){$addr .= bless $_[0],'Scalar::Util::Fake';bless $_[0],$pkg}else {$addr .= $_[0]}$addr =~ /0x(\w+)/;local $^W;hex($1)}}}$JSON::PP::true=do {bless \(my$dummy=1),"JSON::PP::Boolean"};$JSON::PP::false=do {bless \(my$dummy=0),"JSON::PP::Boolean"};sub is_bool {defined $_[0]and UNIVERSAL::isa($_[0],"JSON::PP::Boolean")}sub true {$JSON::PP::true}sub false {$JSON::PP::false}sub null {undef}package JSON::PP::Boolean;use overload ("0+"=>sub {${$_[0]}},"++"=>sub {$_[0]=${$_[0]}+ 1},"--"=>sub {$_[0]=${$_[0]}- 1},fallback=>1,);package JSON::PP::IncrParser;use strict;use constant INCR_M_WS=>0;use constant INCR_M_STR=>1;use constant INCR_M_BS=>2;use constant INCR_M_JSON=>3;use constant INCR_M_C0=>4;use constant INCR_M_C1=>5;$JSON::PP::IncrParser::VERSION='1.01';my$unpack_format=$] < 5.006 ? 'C*' : 'U*';sub new {my ($class)=@_;bless {incr_nest=>0,incr_text=>undef,incr_parsing=>0,incr_p=>0,},$class}sub incr_parse {my ($self,$coder,$text)=@_;$self->{incr_text}='' unless (defined$self->{incr_text});if (defined$text){if (utf8::is_utf8($text)and!utf8::is_utf8($self->{incr_text})){utf8::upgrade($self->{incr_text});utf8::decode($self->{incr_text})}$self->{incr_text}.= $text}my$max_size=$coder->get_max_size;if (defined wantarray){$self->{incr_mode}=INCR_M_WS unless defined$self->{incr_mode};if (wantarray){my@ret;$self->{incr_parsing}=1;do {push@ret,$self->_incr_parse($coder,$self->{incr_text});unless (!$self->{incr_nest}and $self->{incr_mode}==INCR_M_JSON){$self->{incr_mode}=INCR_M_WS if$self->{incr_mode}!=INCR_M_STR}}until (length$self->{incr_text}>= $self->{incr_p});$self->{incr_parsing}=0;return@ret}else {$self->{incr_parsing}=1;my$obj=$self->_incr_parse($coder,$self->{incr_text});$self->{incr_parsing}=0 if defined$obj;return$obj ? $obj : undef}}}sub _incr_parse {my ($self,$coder,$text,$skip)=@_;my$p=$self->{incr_p};my$restore=$p;my@obj;my$len=length$text;if ($self->{incr_mode}==INCR_M_WS){while ($len > $p){my$s=substr($text,$p,1);$p++ and next if (0x20 >= unpack($unpack_format,$s));$self->{incr_mode}=INCR_M_JSON;last}}while ($len > $p){my$s=substr($text,$p++,1);if ($s eq '"'){if (substr($text,$p - 2,1)eq '\\'){next}if ($self->{incr_mode}!=INCR_M_STR){$self->{incr_mode}=INCR_M_STR}else {$self->{incr_mode}=INCR_M_JSON;unless ($self->{incr_nest}){last}}}if ($self->{incr_mode}==INCR_M_JSON){if ($s eq '[' or $s eq '{'){if (++$self->{incr_nest}> $coder->get_max_depth){Carp::croak('json text or perl structure exceeds maximum nesting level (max_depth set too low?)')}}elsif ($s eq ']' or $s eq '}'){last if (--$self->{incr_nest}<= 0)}elsif ($s eq '#'){while ($len > $p){last if substr($text,$p++,1)eq "\n"}}}}$self->{incr_p}=$p;return if ($self->{incr_mode}==INCR_M_STR and not $self->{incr_nest});return if ($self->{incr_mode}==INCR_M_JSON and $self->{incr_nest}> 0);return '' unless (length substr($self->{incr_text},0,$p));local$Carp::CarpLevel=2;$self->{incr_p}=$restore;$self->{incr_c}=$p;my ($obj,$tail)=$coder->PP_decode_json(substr($self->{incr_text},0,$p),0x10000001);$self->{incr_text}=substr($self->{incr_text},$p);$self->{incr_p}=0;return$obj || ''}sub incr_text {if ($_[0]->{incr_parsing}){Carp::croak("incr_text can not be called when the incremental parser already started parsing")}$_[0]->{incr_text}}sub incr_skip {my$self=shift;$self->{incr_text}=substr($self->{incr_text},$self->{incr_c});$self->{incr_p}=0}sub incr_reset {my$self=shift;$self->{incr_text}=undef;$self->{incr_p}=0;$self->{incr_mode}=0;$self->{incr_nest}=0;$self->{incr_parsing}=0}1; -JSON_PP - -$fatpacked{"JSON/PP/Boolean.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'JSON_PP_BOOLEAN'; - use JSON::PP ();use strict;1; -JSON_PP_BOOLEAN - -$fatpacked{"Module/CPANfile.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE'; - package Module::CPANfile;use strict;use warnings;use Cwd;use Carp ();use Module::CPANfile::Environment;use Module::CPANfile::Requirement;our$VERSION='1.1000';sub new {my($class,$file)=@_;bless {},$class}sub load {my($proto,$file)=@_;my$self=ref$proto ? $proto : $proto->new;$self->parse($file || Cwd::abs_path('cpanfile'));$self}sub save {my($self,$path)=@_;open my$out,">",$path or die "$path: $!";print {$out}$self->to_string}sub parse {my($self,$file)=@_;my$code=do {open my$fh,"<",$file or die "$file: $!";join '',<$fh>};my$env=Module::CPANfile::Environment->new($file);$env->parse($code)or die $@;$self->{_mirrors}=$env->mirrors;$self->{_prereqs}=$env->prereqs}sub from_prereqs {my($proto,$prereqs)=@_;my$self=$proto->new;$self->{_prereqs}=Module::CPANfile::Prereqs->from_cpan_meta($prereqs);$self}sub mirrors {my$self=shift;$self->{_mirrors}|| []}sub features {my$self=shift;map$self->feature($_),$self->{_prereqs}->identifiers}sub feature {my($self,$identifier)=@_;$self->{_prereqs}->feature($identifier)}sub prereq {shift->prereqs}sub prereqs {my$self=shift;$self->{_prereqs}->as_cpan_meta}sub merged_requirements {my$self=shift;$self->{_prereqs}->merged_requirements}sub effective_prereqs {my($self,$features)=@_;$self->prereqs_with(@{$features || []})}sub prereqs_with {my($self,@feature_identifiers)=@_;my$prereqs=$self->prereqs;my@others=map {$self->feature($_)->prereqs}@feature_identifiers;$prereqs->with_merged_prereqs(\@others)}sub prereq_specs {my$self=shift;$self->prereqs->as_string_hash}sub prereq_for_module {my($self,$module)=@_;$self->{_prereqs}->find($module)}sub options_for_module {my($self,$module)=@_;my$prereq=$self->prereq_for_module($module)or return;$prereq->requirement->options}sub merge_meta {my($self,$file,$version)=@_;require CPAN::Meta;$version ||= $file =~ /\.yml$/ ? '1.4' : '2';my$prereq=$self->prereqs;my$meta=CPAN::Meta->load_file($file);my$prereqs_hash=$prereq->with_merged_prereqs($meta->effective_prereqs)->as_string_hash;my$struct={%{$meta->as_struct},prereqs=>$prereqs_hash };CPAN::Meta->new($struct)->save($file,{version=>$version })}sub _dump {my$str=shift;require Data::Dumper;chomp(my$value=Data::Dumper->new([$str])->Terse(1)->Dump);$value}sub to_string {my($self,$include_empty)=@_;my$mirrors=$self->mirrors;my$prereqs=$self->prereq_specs;my$code='';$code .= $self->_dump_mirrors($mirrors);$code .= $self->_dump_prereqs($prereqs,$include_empty);for my$feature ($self->features){$code .= sprintf "feature %s, %s => sub {\n",_dump($feature->{identifier}),_dump($feature->{description});$code .= $self->_dump_prereqs($feature->{spec},$include_empty,4);$code .= "}\n\n"}$code =~ s/\n+$/\n/s;$code}sub _dump_mirrors {my($self,$mirrors)=@_;my$code="";for my$url (@$mirrors){$code .= "mirror '$url';\n"}$code =~ s/\n+$/\n/s;$code}sub _dump_prereqs {my($self,$prereqs,$include_empty,$base_indent)=@_;my$code='';for my$phase (qw(runtime configure build test develop)){my$indent=$phase eq 'runtime' ? '' : ' ';$indent=(' ' x ($base_indent || 0)).$indent;my($phase_code,$requirements);$phase_code .= "on $phase => sub {\n" unless$phase eq 'runtime';for my$type (qw(requires recommends suggests conflicts)){for my$mod (sort keys %{$prereqs->{$phase}{$type}}){my$ver=$prereqs->{$phase}{$type}{$mod};$phase_code .= $ver eq '0' ? "${indent}$type '$mod';\n" : "${indent}$type '$mod', '$ver';\n";$requirements++}}$phase_code .= "\n" unless$requirements;$phase_code .= "};\n" unless$phase eq 'runtime';$code .= $phase_code ."\n" if$requirements or $include_empty}$code =~ s/\n+$/\n/s;$code}1; -MODULE_CPANFILE - -$fatpacked{"Module/CPANfile/Environment.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_ENVIRONMENT'; - package Module::CPANfile::Environment;use strict;use warnings;use Module::CPANfile::Prereqs;use Carp ();my@bindings=qw(on requires recommends suggests conflicts feature osname mirror configure_requires build_requires test_requires author_requires);my$file_id=1;sub new {my($class,$file)=@_;bless {file=>$file,phase=>'runtime',feature=>undef,features=>{},prereqs=>Module::CPANfile::Prereqs->new,mirrors=>[],},$class}sub bind {my$self=shift;my$pkg=caller;for my$binding (@bindings){no strict 'refs';*{"$pkg\::$binding"}=sub {$self->$binding(@_)}}}sub parse {my($self,$code)=@_;my$err;{local $@;$file_id++;$self->_evaluate(<<EVAL);$err=$@}if ($err){die "Parsing $self->{file} failed: $err"};return 1}sub _evaluate {my$_environment=$_[0];eval $_[1]}sub prereqs {$_[0]->{prereqs}}sub mirrors {$_[0]->{mirrors}}sub on {my($self,$phase,$code)=@_;local$self->{phase}=$phase;$code->()}sub feature {my($self,$identifier,$description,$code)=@_;if (@_==3 && ref($description)eq 'CODE'){$code=$description;$description=$identifier}unless (ref$description eq '' && ref$code eq 'CODE'){Carp::croak("Usage: feature 'identifier', 'Description' => sub { ... }")}local$self->{feature}=$identifier;$self->prereqs->add_feature($identifier,$description);$code->()}sub osname {die "TODO"}sub mirror {my($self,$url)=@_;push @{$self->{mirrors}},$url}sub requirement_for {my($self,$module,@args)=@_;my$requirement=0;$requirement=shift@args if@args % 2;return Module::CPANfile::Requirement->new(name=>$module,version=>$requirement,@args,)}sub requires {my$self=shift;$self->add_prereq(requires=>@_)}sub recommends {my$self=shift;$self->add_prereq(recommends=>@_)}sub suggests {my$self=shift;$self->add_prereq(suggests=>@_)}sub conflicts {my$self=shift;$self->add_prereq(conflicts=>@_)}sub add_prereq {my($self,$type,$module,@args)=@_;$self->prereqs->add_prereq(feature=>$self->{feature},phase=>$self->{phase},type=>$type,module=>$module,requirement=>$self->requirement_for($module,@args),)}sub configure_requires {my($self,@args)=@_;$self->on(configure=>sub {$self->requires(@args)})}sub build_requires {my($self,@args)=@_;$self->on(build=>sub {$self->requires(@args)})}sub test_requires {my($self,@args)=@_;$self->on(test=>sub {$self->requires(@args)})}sub author_requires {my($self,@args)=@_;$self->on(develop=>sub {$self->requires(@args)})}1; - package Module::CPANfile::Sandbox$file_id; - no warnings; - BEGIN { \$_environment->bind } - - # line 1 "$self->{file}" - $code; - EVAL -MODULE_CPANFILE_ENVIRONMENT - -$fatpacked{"Module/CPANfile/Prereq.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_PREREQ'; - package Module::CPANfile::Prereq;use strict;sub new {my($class,%options)=@_;bless \%options,$class}sub feature {$_[0]->{feature}}sub phase {$_[0]->{phase}}sub type {$_[0]->{type}}sub module {$_[0]->{module}}sub requirement {$_[0]->{requirement}}sub match_feature {my($self,$identifier)=@_;no warnings 'uninitialized';$self->feature eq $identifier}1; -MODULE_CPANFILE_PREREQ - -$fatpacked{"Module/CPANfile/Prereqs.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_PREREQS'; - package Module::CPANfile::Prereqs;use strict;use Carp ();use CPAN::Meta::Feature;use Module::CPANfile::Prereq;sub from_cpan_meta {my($class,$prereqs)=@_;my$self=$class->new;for my$phase (keys %$prereqs){for my$type (keys %{$prereqs->{$phase}}){while (my($module,$requirement)=each %{$prereqs->{$phase}{$type}}){$self->add_prereq(phase=>$phase,type=>$type,module=>$module,requirement=>Module::CPANfile::Requirement->new(name=>$module,version=>$requirement),)}}}$self}sub new {my$class=shift;bless {prereqs=>[],features=>{},},$class}sub add_feature {my($self,$identifier,$description)=@_;$self->{features}{$identifier}={description=>$description }}sub add_prereq {my($self,%args)=@_;$self->add(Module::CPANfile::Prereq->new(%args))}sub add {my($self,$prereq)=@_;push @{$self->{prereqs}},$prereq}sub as_cpan_meta {my$self=shift;$self->{cpanmeta}||= $self->build_cpan_meta}sub build_cpan_meta {my($self,$identifier)=@_;my$prereq_spec={};$self->prereq_each($identifier,sub {my$prereq=shift;$prereq_spec->{$prereq->phase}{$prereq->type}{$prereq->module}=$prereq->requirement->version});CPAN::Meta::Prereqs->new($prereq_spec)}sub prereq_each {my($self,$identifier,$code)=@_;for my$prereq (@{$self->{prereqs}}){next unless$prereq->match_feature($identifier);$code->($prereq)}}sub merged_requirements {my$self=shift;my$reqs=CPAN::Meta::Requirements->new;for my$prereq (@{$self->{prereqs}}){$reqs->add_string_requirement($prereq->module,$prereq->requirement->version)}$reqs}sub find {my($self,$module)=@_;for my$prereq (@{$self->{prereqs}}){return$prereq if$prereq->module eq $module}return}sub identifiers {my$self=shift;keys %{$self->{features}}}sub feature {my($self,$identifier)=@_;my$data=$self->{features}{$identifier}or Carp::croak("Unknown feature '$identifier'");my$prereqs=$self->build_cpan_meta($identifier);CPAN::Meta::Feature->new($identifier,{description=>$data->{description},prereqs=>$prereqs->as_string_hash,})}1; -MODULE_CPANFILE_PREREQS - -$fatpacked{"Module/CPANfile/Requirement.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_REQUIREMENT'; - package Module::CPANfile::Requirement;use strict;sub new {my ($class,%args)=@_;$args{version}||= 0;bless +{name=>delete$args{name},version=>delete$args{version},options=>\%args,},$class}sub name {$_[0]->{name}}sub version {$_[0]->{version}}sub options {$_[0]->{options}}sub has_options {keys %{$_[0]->{options}}> 0}1; -MODULE_CPANFILE_REQUIREMENT - -$fatpacked{"Module/Metadata.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_METADATA'; - package Module::Metadata;sub __clean_eval {eval $_[0]}use strict;use warnings;our$VERSION='1.000027';use Carp qw/croak/;use File::Spec;BEGIN {eval {require Fcntl;Fcntl->import('SEEK_SET');1}or *SEEK_SET=sub {0}}use version 0.87;BEGIN {if ($INC{'Log/Contextual.pm'}){require "Log/Contextual/WarnLogger.pm";Log::Contextual->import('log_info','-default_logger'=>Log::Contextual::WarnLogger->new({env_prefix=>'MODULE_METADATA',}),)}else {*log_info=sub (&) {warn $_[0]->()}}}use File::Find qw(find);my$V_NUM_REGEXP=qr{v?[0-9._]+};my$PKG_FIRST_WORD_REGEXP=qr{ # the FIRST word in a package name - [a-zA-Z_] # the first word CANNOT start with a digit - (?: - [\w']? # can contain letters, digits, _, or ticks - \w # But, NO multi-ticks or trailing ticks - )* - }x;my$PKG_ADDL_WORD_REGEXP=qr{ # the 2nd+ word in a package name - \w # the 2nd+ word CAN start with digits - (?: - [\w']? # and can contain letters or ticks - \w # But, NO multi-ticks or trailing ticks - )* - }x;my$PKG_NAME_REGEXP=qr{ # match a package name - (?: :: )? # a pkg name can start with arisdottle - $PKG_FIRST_WORD_REGEXP # a package word - (?: - (?: :: )+ ### arisdottle (allow one or many times) - $PKG_ADDL_WORD_REGEXP ### a package word - )* # ^ zero, one or many times - (?: - :: # allow trailing arisdottle - )? - }x;my$PKG_REGEXP=qr{ # match a package declaration - ^[\s\{;]* # intro chars on a line - package # the word 'package' - \s+ # whitespace - ($PKG_NAME_REGEXP) # a package name - \s* # optional whitespace - ($V_NUM_REGEXP)? # optional version number - \s* # optional whitesapce - [;\{] # semicolon line terminator or block start (since 5.16) - }x;my$VARNAME_REGEXP=qr{ # match fully-qualified VERSION name - ([\$*]) # sigil - $ or * - ( - ( # optional leading package name - (?:::|\')? # possibly starting like just :: (a la $::VERSION) - (?:\w+(?:::|\'))* # Foo::Bar:: ... - )? - VERSION - )\b - }x;my$VERS_REGEXP=qr{ # match a VERSION definition - (?: - \(\s*$VARNAME_REGEXP\s*\) # with parens - | - $VARNAME_REGEXP # without parens - ) - \s* - =[^=~>] # = but not ==, nor =~, nor => - }x;sub new_from_file {my$class=shift;my$filename=File::Spec->rel2abs(shift);return undef unless defined($filename)&& -f $filename;return$class->_init(undef,$filename,@_)}sub new_from_handle {my$class=shift;my$handle=shift;my$filename=shift;return undef unless defined($handle)&& defined($filename);$filename=File::Spec->rel2abs($filename);return$class->_init(undef,$filename,@_,handle=>$handle)}sub new_from_module {my$class=shift;my$module=shift;my%props=@_;$props{inc}||= \@INC;my$filename=$class->find_module_by_name($module,$props{inc});return undef unless defined($filename)&& -f $filename;return$class->_init($module,$filename,%props)}{my$compare_versions=sub {my ($v1,$op,$v2)=@_;$v1=version->new($v1)unless UNIVERSAL::isa($v1,'version');my$eval_str="\$v1 $op \$v2";my$result=eval$eval_str;log_info {"error comparing versions: '$eval_str' $@"}if $@;return$result};my$normalize_version=sub {my ($version)=@_;if ($version =~ /[=<>!,]/){}elsif (ref$version eq 'version'){$version=$version->is_qv ? $version->normal : $version->stringify}elsif ($version =~ /^[^v][^.]*\.[^.]+\./){$version="v$version"}else {}return$version};my$resolve_module_versions=sub {my$packages=shift;my($file,$version);my$err='';for my$p (@$packages){if (defined($p->{version})){if (defined($version)){if ($compare_versions->($version,'!=',$p->{version})){$err .= " $p->{file} ($p->{version})\n"}else {}}else {$file=$p->{file};$version=$p->{version}}}$file ||= $p->{file}if defined($p->{file})}if ($err){$err=" $file ($version)\n" .$err}my%result=(file=>$file,version=>$version,err=>$err);return \%result};sub provides {my$class=shift;croak "provides() requires key/value pairs \n" if @_ % 2;my%args=@_;croak "provides() takes only one of 'dir' or 'files'\n" if$args{dir}&& $args{files};croak "provides() requires a 'version' argument" unless defined$args{version};croak "provides() does not support version '$args{version}' metadata" unless grep {$args{version}eq $_}qw/1.4 2/;$args{prefix}='lib' unless defined$args{prefix};my$p;if ($args{dir}){$p=$class->package_versions_from_directory($args{dir})}else {croak "provides() requires 'files' to be an array reference\n" unless ref$args{files}eq 'ARRAY';$p=$class->package_versions_from_directory($args{files})}if (length$args{prefix}){$args{prefix}=~ s{/$}{};for my$v (values %$p){$v->{file}="$args{prefix}/$v->{file}"}}return$p}sub package_versions_from_directory {my ($class,$dir,$files)=@_;my@files;if ($files){@files=@$files}else {find({wanted=>sub {push@files,$_ if -f $_ && /\.pm$/},no_chdir=>1,},$dir)}my(%prime,%alt);for my$file (@files){my$mapped_filename=File::Spec::Unix->abs2rel($file,$dir);my@path=split(/\//,$mapped_filename);(my$prime_package=join('::',@path))=~ s/\.pm$//;my$pm_info=$class->new_from_file($file);for my$package ($pm_info->packages_inside){next if$package eq 'main';next if$package eq 'DB';next if grep /^_/,split(/::/,$package);my$version=$pm_info->version($package);$prime_package=$package if lc($prime_package)eq lc($package);if ($package eq $prime_package){if (exists($prime{$package})){croak "Unexpected conflict in '$package'; multiple versions found.\n"}else {$mapped_filename="$package.pm" if lc("$package.pm")eq lc($mapped_filename);$prime{$package}{file}=$mapped_filename;$prime{$package}{version}=$version if defined($version)}}else {push(@{$alt{$package}},{file=>$mapped_filename,version=>$version,})}}}for my$package (keys(%alt)){my$result=$resolve_module_versions->($alt{$package});if (exists($prime{$package})){if ($result->{err}){log_info {"Found conflicting versions for package '$package'\n" ." $prime{$package}{file} ($prime{$package}{version})\n" .$result->{err}}}elsif (defined($result->{version})){if (exists($prime{$package}{version})&& defined($prime{$package}{version})){if ($compare_versions->($prime{$package}{version},'!=',$result->{version})){log_info {"Found conflicting versions for package '$package'\n" ." $prime{$package}{file} ($prime{$package}{version})\n" ." $result->{file} ($result->{version})\n"}}}else {$prime{$package}{file}=$result->{file};$prime{$package}{version}=$result->{version}}}else {}}else {if ($result->{err}){log_info {"Found conflicting versions for package '$package'\n" .$result->{err}}}$prime{$package}{file}=$result->{file};$prime{$package}{version}=$result->{version}if defined($result->{version})}}for (grep defined $_->{version},values%prime){$_->{version}=$normalize_version->($_->{version})}return \%prime}}sub _init {my$class=shift;my$module=shift;my$filename=shift;my%props=@_;my$handle=delete$props{handle};my(%valid_props,@valid_props);@valid_props=qw(collect_pod inc);@valid_props{@valid_props}=delete(@props{@valid_props});warn "Unknown properties: @{[keys %props]}\n" if scalar(%props);my%data=(module=>$module,filename=>$filename,version=>undef,packages=>[],versions=>{},pod=>{},pod_headings=>[],collect_pod=>0,%valid_props,);my$self=bless(\%data,$class);if (not $handle){my$filename=$self->{filename};open$handle,'<',$filename or croak("Can't open '$filename': $!");$self->_handle_bom($handle,$filename)}$self->_parse_fh($handle);unless($self->{module}and length($self->{module})){my ($v,$d,$f)=File::Spec->splitpath($self->{filename});if($f =~ /\.pm$/){$f =~ s/\..+$//;my@candidates=grep /$f$/,@{$self->{packages}};$self->{module}=shift(@candidates)}else {if(grep /main/,@{$self->{packages}}){$self->{module}='main'}else {$self->{module}=$self->{packages}[0]|| ''}}}$self->{version}=$self->{versions}{$self->{module}}if defined($self->{module});return$self}sub _do_find_module {my$class=shift;my$module=shift || croak 'find_module_by_name() requires a package name';my$dirs=shift || \@INC;my$file=File::Spec->catfile(split(/::/,$module));for my$dir (@$dirs){my$testfile=File::Spec->catfile($dir,$file);return [File::Spec->rel2abs($testfile),$dir ]if -e $testfile and!-d _;$testfile .= '.pm';return [File::Spec->rel2abs($testfile),$dir ]if -e $testfile}return}sub find_module_by_name {my$found=shift()->_do_find_module(@_)or return;return$found->[0]}sub find_module_dir_by_name {my$found=shift()->_do_find_module(@_)or return;return$found->[1]}sub _parse_version_expression {my$self=shift;my$line=shift;my($sigil,$variable_name,$package);if ($line =~ /$VERS_REGEXP/o){($sigil,$variable_name,$package)=$2 ? ($1,$2,$3): ($4,$5,$6);if ($package){$package=($package eq '::')? 'main' : $package;$package =~ s/::$//}}return ($sigil,$variable_name,$package)}sub _handle_bom {my ($self,$fh,$filename)=@_;my$pos=tell$fh;return unless defined$pos;my$buf=' ' x 2;my$count=read$fh,$buf,length$buf;return unless defined$count and $count >= 2;my$encoding;if ($buf eq "\x{FE}\x{FF}"){$encoding='UTF-16BE'}elsif ($buf eq "\x{FF}\x{FE}"){$encoding='UTF-16LE'}elsif ($buf eq "\x{EF}\x{BB}"){$buf=' ';$count=read$fh,$buf,length$buf;if (defined$count and $count >= 1 and $buf eq "\x{BF}"){$encoding='UTF-8'}}if (defined$encoding){if ("$]" >= 5.008){binmode($fh,":encoding($encoding)")}}else {seek$fh,$pos,SEEK_SET or croak(sprintf "Can't reset position to the top of '$filename'")}return$encoding}sub _parse_fh {my ($self,$fh)=@_;my($in_pod,$seen_end,$need_vers)=(0,0,0);my(@packages,%vers,%pod,@pod);my$package='main';my$pod_sect='';my$pod_data='';my$in_end=0;while (defined(my$line=<$fh>)){my$line_num=$.;chomp($line);my$is_cut;if ($line =~ /^=([a-zA-Z].*)/){my$cmd=$1;$is_cut=$cmd =~ /^cut(?:[^a-zA-Z]|$)/;$in_pod=!$is_cut}if ($in_pod){if ($line =~ /^=head[1-4]\s+(.+)\s*$/){push(@pod,$1);if ($self->{collect_pod}&& length($pod_data)){$pod{$pod_sect}=$pod_data;$pod_data=''}$pod_sect=$1}elsif ($self->{collect_pod}){$pod_data .= "$line\n"}}elsif ($is_cut){if ($self->{collect_pod}&& length($pod_data)){$pod{$pod_sect}=$pod_data;$pod_data=''}$pod_sect=''}else {next if$in_end;next if$line =~ /^\s*#/;if ($line eq '__END__'){$in_end++;next}last if$line eq '__DATA__';my($version_sigil,$version_fullname,$version_package)=index($line,'VERSION')>= 1 ? $self->_parse_version_expression($line): ();if ($line =~ /$PKG_REGEXP/o){$package=$1;my$version=$2;push(@packages,$package)unless grep($package eq $_,@packages);$need_vers=defined$version ? 0 : 1;if (not exists$vers{$package}and defined$version){my$dwim_version=eval {_dwim_version($version)};croak "Version '$version' from $self->{filename} does not appear to be valid:\n$line\n\nThe fatal error was: $@\n" unless defined$dwim_version;$vers{$package}=$dwim_version}}elsif ($version_fullname && $version_package){push(@packages,$version_package)unless grep($version_package eq $_,@packages);$need_vers=0 if$version_package eq $package;unless (defined$vers{$version_package}&& length$vers{$version_package}){$vers{$version_package}=$self->_evaluate_version_line($version_sigil,$version_fullname,$line)}}elsif ($package eq 'main' && $version_fullname &&!exists($vers{main})){$need_vers=0;my$v=$self->_evaluate_version_line($version_sigil,$version_fullname,$line);$vers{$package}=$v;push(@packages,'main')}elsif ($package eq 'main' &&!exists($vers{main})&& $line =~ /\w/){$need_vers=1;$vers{main}='';push(@packages,'main')}elsif ($version_fullname && $need_vers){$need_vers=0;my$v=$self->_evaluate_version_line($version_sigil,$version_fullname,$line);unless (defined$vers{$package}&& length$vers{$package}){$vers{$package}=$v}}}}if ($self->{collect_pod}&& length($pod_data)){$pod{$pod_sect}=$pod_data}$self->{versions}=\%vers;$self->{packages}=\@packages;$self->{pod}=\%pod;$self->{pod_headings}=\@pod}{my$pn=0;sub _evaluate_version_line {my$self=shift;my($sigil,$variable_name,$line)=@_;$pn++;my$eval=qq{ my \$dummy = q# Hide from _packages_inside() - #; package Module::Metadata::_version::p${pn}; - use version; - sub { - local $sigil$variable_name; - $line; - \$$variable_name - }; - };$eval=$1 if$eval =~ m{^(.+)}s;local $^W;my$vsub=__clean_eval($eval);if ($@ =~ /Can't locate/ && -d 'lib'){local@INC=('lib',@INC);$vsub=__clean_eval($eval)}warn "Error evaling version line '$eval' in $self->{filename}: $@\n" if $@;(ref($vsub)eq 'CODE')or croak "failed to build version sub for $self->{filename}";my$result=eval {$vsub->()};croak "Could not get version from $self->{filename} by executing:\n$eval\n\nThe fatal error was: $@\n" if $@;my$version=eval {_dwim_version($result)};croak "Version '$result' from $self->{filename} does not appear to be valid:\n$eval\n\nThe fatal error was: $@\n" unless defined$version;return$version}}{my@version_prep=(sub {return shift},sub {my$v=shift;$v =~ s{([0-9])[a-z-].*$}{$1}i;return$v},sub {my$v=shift;my$num_dots=()=$v =~ m{(\.)}g;my$num_unders=()=$v =~ m{(_)}g;my$leading_v=substr($v,0,1)eq 'v';if (!$leading_v && $num_dots < 2 && $num_unders > 1){$v =~ s{_}{}g;$num_unders=()=$v =~ m{(_)}g}return$v},sub {my$v=shift;no warnings 'numeric';return 0 + $v},);sub _dwim_version {my ($result)=shift;return$result if ref($result)eq 'version';my ($version,$error);for my$f (@version_prep){$result=$f->($result);$version=eval {version->new($result)};$error ||= $@ if $@;last if defined$version}croak$error unless defined$version;return$version}}sub name {$_[0]->{module}}sub filename {$_[0]->{filename}}sub packages_inside {@{$_[0]->{packages}}}sub pod_inside {@{$_[0]->{pod_headings}}}sub contains_pod {0+@{$_[0]->{pod_headings}}}sub version {my$self=shift;my$mod=shift || $self->{module};my$vers;if (defined($mod)&& length($mod)&& exists($self->{versions}{$mod})){return$self->{versions}{$mod}}else {return undef}}sub pod {my$self=shift;my$sect=shift;if (defined($sect)&& length($sect)&& exists($self->{pod}{$sect})){return$self->{pod}{$sect}}else {return undef}}sub is_indexable {my ($self,$package)=@_;my@indexable_packages=grep {$_ ne 'main'}$self->packages_inside;return!!grep {$_ eq $package}@indexable_packages if$package;return!!@indexable_packages}1; -MODULE_METADATA - -$fatpacked{"Parse/CPAN/Meta.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'PARSE_CPAN_META'; - use 5.008001;use strict;package Parse::CPAN::Meta;our$VERSION='1.4414';use Exporter;use Carp 'croak';our@ISA=qw/Exporter/;our@EXPORT_OK=qw/Load LoadFile/;sub load_file {my ($class,$filename)=@_;my$meta=_slurp($filename);if ($filename =~ /\.ya?ml$/){return$class->load_yaml_string($meta)}elsif ($filename =~ /\.json$/){return$class->load_json_string($meta)}else {$class->load_string($meta)}}sub load_string {my ($class,$string)=@_;if ($string =~ /^---/){return$class->load_yaml_string($string)}elsif ($string =~ /^\s*\{/){return$class->load_json_string($string)}else {return$class->load_yaml_string($string)}}sub load_yaml_string {my ($class,$string)=@_;my$backend=$class->yaml_backend();my$data=eval {no strict 'refs';&{"$backend\::Load"}($string)};croak $@ if $@;return$data || {}}sub load_json_string {my ($class,$string)=@_;my$data=eval {$class->json_backend()->new->decode($string)};croak $@ if $@;return$data || {}}sub yaml_backend {if (!defined$ENV{PERL_YAML_BACKEND}){_can_load('CPAN::Meta::YAML',0.011)or croak "CPAN::Meta::YAML 0.011 is not available\n";return "CPAN::Meta::YAML"}else {my$backend=$ENV{PERL_YAML_BACKEND};_can_load($backend)or croak "Could not load PERL_YAML_BACKEND '$backend'\n";$backend->can("Load")or croak "PERL_YAML_BACKEND '$backend' does not implement Load()\n";return$backend}}sub json_backend {if (!$ENV{PERL_JSON_BACKEND}or $ENV{PERL_JSON_BACKEND}eq 'JSON::PP'){_can_load('JSON::PP'=>2.27103)or croak "JSON::PP 2.27103 is not available\n";return 'JSON::PP'}else {_can_load('JSON'=>2.5)or croak "JSON 2.5 is required for " ."\$ENV{PERL_JSON_BACKEND} = '$ENV{PERL_JSON_BACKEND}'\n";return "JSON"}}sub _slurp {require Encode;open my$fh,"<:raw","$_[0]" or die "can't open $_[0] for reading: $!";my$content=do {local $/;<$fh>};$content=Encode::decode('UTF-8',$content,Encode::PERLQQ());return$content}sub _can_load {my ($module,$version)=@_;(my$file=$module)=~ s{::}{/}g;$file .= ".pm";return 1 if$INC{$file};return 0 if exists$INC{$file};eval {require$file;1}or return 0;if (defined$version){eval {$module->VERSION($version);1}or return 0}return 1}sub LoadFile ($) {return Load(_slurp(shift))}sub Load ($) {require CPAN::Meta::YAML;my$object=eval {CPAN::Meta::YAML::Load(shift)};croak $@ if $@;return$object}1; -PARSE_CPAN_META - -$fatpacked{"Parse/PMFile.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'PARSE_PMFILE'; - package Parse::PMFile;sub __clean_eval {eval $_[0]}use strict;use warnings;use Safe;use JSON::PP ();use Dumpvalue;use version ();use File::Spec ();our$VERSION='0.36';our$VERBOSE=0;our$ALLOW_DEV_VERSION=0;our$FORK=0;our$UNSAFE=$] < 5.010000 ? 1 : 0;sub new {my ($class,$meta,$opts)=@_;bless {%{$opts || {}},META_CONTENT=>$meta},$class}sub parse {my ($self,$pmfile)=@_;$pmfile =~ s|\\|/|g;my($filemtime)=(stat$pmfile)[9];$self->{MTIME}=$filemtime;$self->{PMFILE}=$pmfile;unless ($self->_version_from_meta_ok){my$version;unless (eval {$version=$self->_parse_version;1}){$self->_verbose(1,"error with version in $pmfile: $@");return}$self->{VERSION}=$version;if ($self->{VERSION}=~ /^\{.*\}$/){}elsif ($self->{VERSION}=~ /[_\s]/ &&!$self->{ALLOW_DEV_VERSION}&&!$ALLOW_DEV_VERSION){return}}my($ppp)=$self->_packages_per_pmfile;my@keys_ppp=$self->_filter_ppps(sort keys %$ppp);$self->_verbose(1,"Will check keys_ppp[@keys_ppp]\n");my ($package,%errors);my%checked_in;DBPACK: foreach$package (@keys_ppp){if ($package !~ /^\w[\w\:\']*\w?\z/ || $package !~ /\w\z/ || $package =~ /:/ && $package !~ /::/ || $package =~ /\w:\w/ || $package =~ /:::/){$self->_verbose(1,"Package[$package] did not pass the ultimate sanity check");delete$ppp->{$package};next}if ($self->{USERID}&& $self->{PERMISSIONS}&&!$self->_perm_check($package)){delete$ppp->{$package};next}{my (undef,$module)=split m{/lib/},$self->{PMFILE},2;if ($module){$module =~ s{\.pm\z}{};$module =~ s{/}{::}g;if (lc$module eq lc$package && $module ne $package){$errors{$package}={indexing_warning=>"Capitalization of package ($package) does not match filename!",infile=>$self->{PMFILE},}}}}my$pp=$ppp->{$package};if ($pp->{version}&& $pp->{version}=~ /^\{.*\}$/){my$err=JSON::PP::decode_json($pp->{version});if ($err->{x_normalize}){$errors{$package}={normalize=>$err->{version},infile=>$pp->{infile},};$pp->{version}="undef"}elsif ($err->{openerr}){$pp->{version}="undef";$self->_verbose(1,qq{Parse::PMFile was not able to - read the file. It issued the following error: C< $err->{r} >},);$errors{$package}={open=>$err->{r},infile=>$pp->{infile},}}else {$pp->{version}="undef";$self->_verbose(1,qq{Parse::PMFile was not able to - parse the following line in that file: C< $err->{line} > - - Note: the indexer is running in a Safe compartement and cannot - provide the full functionality of perl in the VERSION line. It - is trying hard, but sometime it fails. As a workaround, please - consider writing a META.yml that contains a 'provides' - attribute or contact the CPAN admins to investigate (yet - another) workaround against "Safe" limitations.)},);$errors{$package}={parse_version=>$err->{line},infile=>$err->{file},}}}for ($package,$pp->{version},){if (!defined || /^\s*$/ || /\s/){delete$ppp->{$package};next}}$checked_in{$package}=$ppp->{$package}}return (wantarray && %errors)? (\%checked_in,\%errors): \%checked_in}sub _perm_check {my ($self,$package)=@_;my$userid=$self->{USERID};my$module=$self->{PERMISSIONS}->module_permissions($package);return 1 if!$module;return 1 if defined$module->m && $module->m eq $userid;return 1 if defined$module->f && $module->f eq $userid;return 1 if defined$module->c && grep {$_ eq $userid}@{$module->c};return}sub _parse_version {my$self=shift;use strict;my$pmfile=$self->{PMFILE};my$tmpfile=File::Spec->catfile(File::Spec->tmpdir,"ParsePMFile$$" .rand(1000));my$pmcp=$pmfile;for ($pmcp){s/([^\\](\\\\)*)@/$1\\@/g}my($v);{package main;my$pid;if ($self->{FORK}|| $FORK){$pid=fork();die "Can't fork: $!" unless defined$pid}if ($pid){waitpid($pid,0);if (open my$fh,'<',$tmpfile){$v=<$fh>}}else {my($comp)=Safe->new;my$eval=qq{ - local(\$^W) = 0; - Parse::PMFile::_parse_version_safely("$pmcp"); - };$comp->permit("entereval");$comp->share("*Parse::PMFile::_parse_version_safely");$comp->share("*version::new");$comp->share("*version::numify");$comp->share_from('main',['*version::','*charstar::','*Exporter::','*DynaLoader::']);$comp->share_from('version',['&qv']);$comp->permit(":base_math");$comp->deny(qw/enteriter iter unstack goto/);version->import('qv')if$self->{UNSAFE}|| $UNSAFE;{no strict;$v=($self->{UNSAFE}|| $UNSAFE)? eval$eval : $comp->reval($eval)}if ($@){my$err=$@;if (ref$err){if ($err->{line}=~ /([\$*])([\w\:\']*)\bVERSION\b.*?\=(.*)/){local($^W)=0;my ($sigil,$vstr)=($1,$3);$self->_restore_overloaded_stuff(1)if$err->{line}=~ /use\s+version\b|version\->|qv\(/;$v=($self->{UNSAFE}|| $UNSAFE)? eval$vstr : $comp->reval($vstr);$v=$$v if$sigil eq '*' && ref$v}if ($@ or!$v){$self->_verbose(1,sprintf("reval failed: err[%s] for eval[%s]",JSON::PP::encode_json($err),$eval,));$v=JSON::PP::encode_json($err)}}else {$v=JSON::PP::encode_json({openerr=>$err })}}if (defined$v){$v=$v->numify if ref($v)=~ /^version(::vpp)?$/}else {$v=""}if ($self->{FORK}|| $FORK){open my$fh,'>:utf8',$tmpfile;print$fh $v;exit 0}else {utf8::encode($v);$v=undef if defined$v &&!length$v;$comp->erase;$self->_restore_overloaded_stuff}}}unlink$tmpfile if ($self->{FORK}|| $FORK)&& -e $tmpfile;return$self->_normalize_version($v)}sub _restore_overloaded_stuff {my ($self,$used_version_in_safe)=@_;return if$self->{UNSAFE}|| $UNSAFE;no strict 'refs';no warnings 'redefine';my$restored;if ($INC{'version/vxs.pm'}){*{'version::(""'}=\&version::vxs::stringify;*{'version::(0+'}=\&version::vxs::numify;*{'version::(cmp'}=\&version::vxs::VCMP;*{'version::(<=>'}=\&version::vxs::VCMP;*{'version::(bool'}=\&version::vxs::boolean;$restored=1}if ($INC{'version/vpp.pm'}){{package charstar;overload->import}if (!$used_version_in_safe){package version::vpp;overload->import}unless ($restored){*{'version::(""'}=\&version::vpp::stringify;*{'version::(0+'}=\&version::vpp::numify;*{'version::(cmp'}=\&version::vpp::vcmp;*{'version::(<=>'}=\&version::vpp::vcmp;*{'version::(bool'}=\&version::vpp::vbool}*{'version::vpp::(""'}=\&version::vpp::stringify;*{'version::vpp::(0+'}=\&version::vpp::numify;*{'version::vpp::(cmp'}=\&version::vpp::vcmp;*{'version::vpp::(<=>'}=\&version::vpp::vcmp;*{'version::vpp::(bool'}=\&version::vpp::vbool;*{'charstar::(""'}=\&charstar::thischar;*{'charstar::(0+'}=\&charstar::thischar;*{'charstar::(++'}=\&charstar::increment;*{'charstar::(--'}=\&charstar::decrement;*{'charstar::(+'}=\&charstar::plus;*{'charstar::(-'}=\&charstar::minus;*{'charstar::(*'}=\&charstar::multiply;*{'charstar::(cmp'}=\&charstar::cmp;*{'charstar::(<=>'}=\&charstar::spaceship;*{'charstar::(bool'}=\&charstar::thischar;*{'charstar::(='}=\&charstar::clone;$restored=1}if (!$restored){*{'version::(""'}=\&version::stringify;*{'version::(0+'}=\&version::numify;*{'version::(cmp'}=\&version::vcmp;*{'version::(<=>'}=\&version::vcmp;*{'version::(bool'}=\&version::boolean}}sub _packages_per_pmfile {my$self=shift;my$ppp={};my$pmfile=$self->{PMFILE};my$filemtime=$self->{MTIME};my$version=$self->{VERSION};open my$fh,"<","$pmfile" or return$ppp;local $/="\n";my$inpod=0;PLINE: while (<$fh>){chomp;my($pline)=$_;$inpod=$pline =~ /^=(?!cut)/ ? 1 : $pline =~ /^=cut/ ? 0 : $inpod;next if$inpod;next if substr($pline,0,4)eq "=cut";$pline =~ s/\#.*//;next if$pline =~ /^\s*$/;if ($pline =~ /^__(?:END|DATA)__\b/ and $pmfile !~ /\.PL$/){last PLINE}my$pkg;my$strict_version;if ($pline =~ m{ - # (.*) # takes too much time if $pline is long - (?<![*\$\\@%&]) # no sigils - \bpackage\s+ - ([\w\:\']+) - \s* - (?: $ | [\}\;] | \{ | \s+($version::STRICT) ) - }x){$pkg=$1;$strict_version=$2;if ($pkg eq "DB"){next PLINE}}if ($pkg){$pkg =~ s/\'/::/;next PLINE unless$pkg =~ /^[A-Za-z]/;next PLINE unless$pkg =~ /\w$/;next PLINE if$pkg eq "main";next PLINE if length($pkg)> 128;$ppp->{$pkg}{parsed}++;$ppp->{$pkg}{infile}=$pmfile;if ($self->_simile($pmfile,$pkg)){$ppp->{$pkg}{simile}=$pmfile;if ($self->_version_from_meta_ok){my$provides=$self->{META_CONTENT}{provides};if (exists$provides->{$pkg}){if (defined$provides->{$pkg}{version}){my$v=$provides->{$pkg}{version};if ($v =~ /[_\s]/ &&!$self->{ALLOW_DEV_VERSION}&&!$ALLOW_DEV_VERSION){next PLINE}unless (eval {$version=$self->_normalize_version($v);1}){$self->_verbose(1,"error with version in $pmfile: $@");next}$ppp->{$pkg}{version}=$version}else {$ppp->{$pkg}{version}="undef"}}}else {if (defined$strict_version){$ppp->{$pkg}{version}=$strict_version }else {$ppp->{$pkg}{version}=defined$version ? $version : ""}no warnings;if ($version eq 'undef'){$ppp->{$pkg}{version}=$version unless defined$ppp->{$pkg}{version}}else {$ppp->{$pkg}{version}=$version if$version > $ppp->{$pkg}{version}|| $version gt $ppp->{$pkg}{version}}}}else {$ppp->{$pkg}{version}=$version unless defined$ppp->{$pkg}{version}&& length($ppp->{$pkg}{version})}$ppp->{$pkg}{filemtime}=$filemtime}else {}}close$fh;$ppp}{no strict;sub _parse_version_safely {my($parsefile)=@_;my$result;local*FH;local $/="\n";open(FH,$parsefile)or die "Could not open '$parsefile': $!";my$inpod=0;while (<FH>){$inpod=/^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod;next if$inpod || /^\s*#/;last if /^__(?:END|DATA)__\b/;chop;if (my ($ver)=/package \s+ \S+ \s+ (\S+) \s* [;{]/x){return$ver if version::is_lax($ver)}next unless /(?<!\\)([\$*])(([\w\:\']*)\bVERSION)\b.*(?<![!><=])\=(?![=>])/;my$current_parsed_line=$_;my$eval=qq{ - package # - ExtUtils::MakeMaker::_version; - - local $1$2; - \$$2=undef; do { - $_ - }; \$$2 - };local $^W=0;local$SIG{__WARN__}=sub {};$result=__clean_eval($eval);if ($@ or!defined$result){die +{eval=>$eval,line=>$current_parsed_line,file=>$parsefile,err=>$@,}}last}close FH;$result="undef" unless defined$result;if ((ref$result)=~ /^version(?:::vpp)?\b/){$result=$result->numify}return$result}}sub _filter_ppps {my($self,@ppps)=@_;my@res;MANI: for my$ppp (@ppps){if ($self->{META_CONTENT}){my$no_index=$self->{META_CONTENT}{no_index}|| $self->{META_CONTENT}{private};if (ref($no_index)eq 'HASH'){my%map=(package=>qr{\z},namespace=>qr{::},);for my$k (qw(package namespace)){next unless my$v=$no_index->{$k};my$rest=$map{$k};if (ref$v eq "ARRAY"){for my$ve (@$v){$ve =~ s|::$||;if ($ppp =~ /^$ve$rest/){$self->_verbose(1,"Skipping ppp[$ppp] due to ve[$ve]");next MANI}else {$self->_verbose(1,"NOT skipping ppp[$ppp] due to ve[$ve]")}}}else {$v =~ s|::$||;if ($ppp =~ /^$v$rest/){$self->_verbose(1,"Skipping ppp[$ppp] due to v[$v]");next MANI}else {$self->_verbose(1,"NOT skipping ppp[$ppp] due to v[$v]")}}}}else {$self->_verbose(1,"No keyword 'no_index' or 'private' in META_CONTENT")}}else {}push@res,$ppp}$self->_verbose(1,"Result of filter_ppps: res[@res]");@res}sub _simile {my($self,$file,$package)=@_;$file =~ s|.*/||;$file =~ s|\.pm(?:\.PL)?||;my$ret=$package =~ m/\b\Q$file\E$/;$ret ||= 0;unless ($ret){$ret=1 if lc$file eq 'version'}$self->_verbose(1,"Result of simile(): file[$file] package[$package] ret[$ret]\n");$ret}sub _normalize_version {my($self,$v)=@_;$v="undef" unless defined$v;my$dv=Dumpvalue->new;my$sdv=$dv->stringify($v,1);$self->_verbose(1,"Result of normalize_version: sdv[$sdv]\n");return$v if$v eq "undef";return$v if$v =~ /^\{.*\}$/;$v =~ s/^\s+//;$v =~ s/\s+\z//;if ($v =~ /_/){return$v }if (!version::is_lax($v)){return JSON::PP::encode_json({x_normalize=>'version::is_lax failed',version=>$v })}my$vv=eval {no warnings;version->new($v)->numify};if ($@){return JSON::PP::encode_json({x_normalize=>$@,version=>$v })}if ($vv eq $v){}else {my$forced=$self->_force_numeric($v);if ($forced eq $vv){}elsif ($forced =~ /^v(.+)/){$vv=version->new($1)->numify}else {if ($forced==$vv){$vv=$forced}}}return$vv}sub _force_numeric {my($self,$v)=@_;$v=$self->_readable($v);if ($v =~ /^(\+?)(\d*)(\.(\d*))?/ && (defined $2 && length $2 || defined $4 && length $4)){my$two=defined $2 ? $2 : "";my$three=defined $3 ? $3 : "";$v="$two$three"}$v}sub _version_from_meta_ok {my($self)=@_;return$self->{VERSION_FROM_META_OK}if exists$self->{VERSION_FROM_META_OK};my$c=$self->{META_CONTENT};return($self->{VERSION_FROM_META_OK}=0)unless$c->{provides};my ($mb_v)=(defined$c->{generated_by}? $c->{generated_by}: '')=~ /Module::Build version ([\d\.]+)/;return($self->{VERSION_FROM_META_OK}=1)unless$mb_v;return($self->{VERSION_FROM_META_OK}=1)if$mb_v eq '0.250.0';if ($mb_v >= 0.19 && $mb_v < 0.26 &&!keys %{$c->{provides}}){return($self->{VERSION_FROM_META_OK}=0)}return($self->{VERSION_FROM_META_OK}=1)}sub _verbose {my($self,$level,@what)=@_;warn@what if$level <= ((ref$self && $self->{VERBOSE})|| $VERBOSE)}sub _vcmp {my($self,$l,$r)=@_;local($^W)=0;$self->_verbose(9,"l[$l] r[$r]");return 0 if$l eq $r;for ($l,$r){s/_//g}$self->_verbose(9,"l[$l] r[$r]");for ($l,$r){next unless tr/.// > 1 || /^v/;s/^v?/v/;1 while s/\.0+(\d)/.$1/}$self->_verbose(9,"l[$l] r[$r]");if ($l=~/^v/ <=> $r=~/^v/){for ($l,$r){next if /^v/;$_=$self->_float2vv($_)}}$self->_verbose(9,"l[$l] r[$r]");my$lvstring="v0";my$rvstring="v0";if ($] >= 5.006 && $l =~ /^v/ && $r =~ /^v/){$lvstring=$self->_vstring($l);$rvstring=$self->_vstring($r);$self->_verbose(9,sprintf "lv[%vd] rv[%vd]",$lvstring,$rvstring)}return (($l ne "undef")<=> ($r ne "undef")|| $lvstring cmp $rvstring || $l <=> $r || $l cmp $r)}sub _vgt {my($self,$l,$r)=@_;$self->_vcmp($l,$r)> 0}sub _vlt {my($self,$l,$r)=@_;$self->_vcmp($l,$r)< 0}sub _vge {my($self,$l,$r)=@_;$self->_vcmp($l,$r)>= 0}sub _vle {my($self,$l,$r)=@_;$self->_vcmp($l,$r)<= 0}sub _vstring {my($self,$n)=@_;$n =~ s/^v// or die "Parse::PMFile::_vstring() called with invalid arg [$n]";pack "U*",split /\./,$n}sub _float2vv {my($self,$n)=@_;my($rev)=int($n);$rev ||= 0;my($mantissa)=$n =~ /\.(\d{1,12})/;$mantissa ||= 0;$mantissa .= "0" while length($mantissa)%3;my$ret="v" .$rev;while ($mantissa){$mantissa =~ s/(\d{1,3})// or die "Panic: length>0 but not a digit? mantissa[$mantissa]";$ret .= ".".int($1)}$ret =~ s/(\.0)+/.0/;$ret}sub _readable {my($self,$n)=@_;$n =~ /^([\w\-\+\.]+)/;return $1 if defined $1 && length($1)>0;if ($] < 5.006){$self->_verbose(9,"Suspicious version string seen [$n]\n");return$n}my$better=sprintf "v%vd",$n;$self->_verbose(9,"n[$n] better[$better]");return$better}1; -PARSE_PMFILE - -$fatpacked{"String/ShellQuote.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'STRING_SHELLQUOTE'; - package String::ShellQuote;use strict;use vars qw($VERSION @ISA @EXPORT);require Exporter;$VERSION='1.04';@ISA=qw(Exporter);@EXPORT=qw(shell_quote shell_quote_best_effort shell_comment_quote);sub croak {require Carp;goto&Carp::croak}sub _shell_quote_backend {my@in=@_;my@err=();if (0){require RS::Handy;print RS::Handy::data_dump(\@in)}return \@err,'' unless@in;my$ret='';my$saw_non_equal=0;for (@in){if (!defined $_ or $_ eq ''){$_="''";next}if (s/\x00//g){push@err,"No way to quote string containing null (\\000) bytes"}my$escape=0;if (/=/){if (!$saw_non_equal){$escape=1}}else {$saw_non_equal=1}if (m|[^\w!%+,\-./:=@^]|){$escape=1}if ($escape || (!$saw_non_equal && /=/)){s/'/'\\''/g;s|((?:'\\''){2,})|q{'"} . (q{'} x (length($1) / 4)) . q{"'}|ge;$_="'$_'";s/^''//;s/''$//}}continue {$ret .= "$_ "}chop$ret;return \@err,$ret}sub shell_quote {my ($rerr,$s)=_shell_quote_backend @_;if (@$rerr){my%seen;@$rerr=grep {!$seen{$_}++}@$rerr;my$s=join '',map {"shell_quote(): $_\n"}@$rerr;chomp$s;croak$s}return$s}sub shell_quote_best_effort {my ($rerr,$s)=_shell_quote_backend @_;return$s}sub shell_comment_quote {return '' unless @_;unless (@_==1){croak "Too many arguments to shell_comment_quote " ."(got " .@_ ." expected 1)"}local $_=shift;s/\n/\n#/g;return $_}1; -STRING_SHELLQUOTE - -$fatpacked{"lib/core/only.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'LIB_CORE_ONLY'; - package lib::core::only;use strict;use warnings FATAL=>'all';use Config;sub import {@INC=@Config{qw(privlibexp archlibexp)};return}1; -LIB_CORE_ONLY - -$fatpacked{"local/lib.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'LOCAL_LIB'; - package local::lib;use 5.006;use strict;use warnings;use Config;our$VERSION='2.000015';$VERSION=eval$VERSION;BEGIN {*_WIN32=($^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'symbian')? sub(){1}: sub(){0};*_USE_FSPEC=($^O eq 'MacOS' || $^O eq 'VMS' || $INC{'File/Spec.pm'})? sub(){1}: sub(){0}}our$_DIR_JOIN=_WIN32 ? '\\' : '/';our$_DIR_SPLIT=(_WIN32 || $^O eq 'cygwin')? qr{[\\/]} : qr{/};our$_ROOT=_WIN32 ? do {my$UNC=qr{[\\/]{2}[^\\/]+[\\/][^\\/]+};qr{^(?:$UNC|[A-Za-z]:|)$_DIR_SPLIT}}: qr{^/};our$_PERL;sub _cwd {my$drive=shift;if (!$_PERL){($_PERL)=$^X =~ /(.+)/;if (_is_abs($_PERL)){}elsif (-x $Config{perlpath}){$_PERL=$Config{perlpath}}else {($_PERL)=map {/(.*)/}grep {-x $_}map {join($_DIR_JOIN,$_,$_PERL)}split /\Q$Config{path_sep}\E/,$ENV{PATH}}}local@ENV{qw(PATH IFS CDPATH ENV BASH_ENV)};my$cmd=$drive ? "eval { Cwd::getdcwd(q($drive)) }" : 'getcwd';my$cwd=`"$_PERL" -MCwd -le "print $cmd"`;chomp$cwd;if (!length$cwd && $drive){$cwd=$drive}$cwd =~ s/$_DIR_SPLIT?$/$_DIR_JOIN/;$cwd}sub _catdir {if (_USE_FSPEC){require File::Spec;File::Spec->catdir(@_)}else {my$dir=join($_DIR_JOIN,@_);$dir =~ s{($_DIR_SPLIT)(?:\.?$_DIR_SPLIT)+}{$1}g;$dir}}sub _is_abs {if (_USE_FSPEC){require File::Spec;File::Spec->file_name_is_absolute($_[0])}else {$_[0]=~ $_ROOT}}sub _rel2abs {my ($dir,$base)=@_;return$dir if _is_abs($dir);$base=_WIN32 && $dir =~ s/^([A-Za-z]:)// ? _cwd("$1"): $base ? $base : _cwd;return _catdir($base,$dir)}sub import {my ($class,@args)=@_;push@args,@ARGV if $0 eq '-';my@steps;my%opts;my$shelltype;while (@args){my$arg=shift@args;if ($arg =~ /\xE2\x88\x92/ or $arg =~ /−/){die <<'DEATH'}elsif ($arg eq '--self-contained'){die <<'DEATH'}elsif($arg =~ /^--deactivate(?:=(.*))?$/){my$path=defined $1 ? $1 : shift@args;push@steps,['deactivate',$path]}elsif ($arg eq '--deactivate-all'){push@steps,['deactivate_all']}elsif ($arg =~ /^--shelltype(?:=(.*))?$/){$shelltype=defined $1 ? $1 : shift@args}elsif ($arg eq '--no-create'){$opts{no_create}=1}elsif ($arg =~ /^--/){die "Unknown import argument: $arg"}else {push@steps,['activate',$arg]}}if (!@steps){push@steps,['activate',undef]}my$self=$class->new(%opts);for (@steps){my ($method,@args)=@$_;$self=$self->$method(@args)}if ($0 eq '-'){print$self->environment_vars_string($shelltype);exit 0}else {$self->setup_local_lib}}sub new {my$class=shift;bless {@_},$class}sub clone {my$self=shift;bless {%$self,@_},ref$self}sub inc {$_[0]->{inc}||= \@INC}sub libs {$_[0]->{libs}||= [\'PERL5LIB' ]}sub bins {$_[0]->{bins}||= [\'PATH' ]}sub roots {$_[0]->{roots}||= [\'PERL_LOCAL_LIB_ROOT' ]}sub extra {$_[0]->{extra}||= {}}sub no_create {$_[0]->{no_create}}my$_archname=$Config{archname};my$_version=$Config{version};my@_inc_version_list=reverse split / /,$Config{inc_version_list};my$_path_sep=$Config{path_sep};sub _as_list {my$list=shift;grep length,map {!(ref $_ && ref $_ eq 'SCALAR')? $_ : (defined$ENV{$$_}? split(/\Q$_path_sep/,$ENV{$$_}): ())}ref$list ? @$list : $list}sub _remove_from {my ($list,@remove)=@_;return @$list if!@remove;my%remove=map {$_=>1}@remove;grep!$remove{$_},_as_list($list)}my@_lib_subdirs=([$_version,$_archname],[$_version],[$_archname],(@_inc_version_list ? \@_inc_version_list : ()),[],);sub install_base_bin_path {my ($class,$path)=@_;return _catdir($path,'bin')}sub install_base_perl_path {my ($class,$path)=@_;return _catdir($path,'lib','perl5')}sub install_base_arch_path {my ($class,$path)=@_;_catdir($class->install_base_perl_path($path),$_archname)}sub lib_paths_for {my ($class,$path)=@_;my$base=$class->install_base_perl_path($path);return map {_catdir($base,@$_)}@_lib_subdirs}sub _mm_escape_path {my$path=shift;$path =~ s/\\/\\\\/g;if ($path =~ s/ /\\ /g){$path=qq{"$path"}}return$path}sub _mb_escape_path {my$path=shift;$path =~ s/\\/\\\\/g;return qq{"$path"}}sub installer_options_for {my ($class,$path)=@_;return (PERL_MM_OPT=>defined$path ? "INSTALL_BASE="._mm_escape_path($path): undef,PERL_MB_OPT=>defined$path ? "--install_base "._mb_escape_path($path): undef,)}sub active_paths {my ($self)=@_;$self=ref$self ? $self : $self->new;return grep {my$active_ll=$self->install_base_perl_path($_);grep {$_ eq $active_ll}@{$self->inc}}_as_list($self->roots)}sub deactivate {my ($self,$path)=@_;$self=$self->new unless ref$self;$path=$self->resolve_path($path);$path=$self->normalize_path($path);my@active_lls=$self->active_paths;if (!grep {$_ eq $path}@active_lls){warn "Tried to deactivate inactive local::lib '$path'\n";return$self}my%args=(bins=>[_remove_from($self->bins,$self->install_base_bin_path($path))],libs=>[_remove_from($self->libs,$self->install_base_perl_path($path))],inc=>[_remove_from($self->inc,$self->lib_paths_for($path))],roots=>[_remove_from($self->roots,$path)],);$args{extra}={$self->installer_options_for($args{roots}[0])};$self->clone(%args)}sub deactivate_all {my ($self)=@_;$self=$self->new unless ref$self;my@active_lls=$self->active_paths;my%args;if (@active_lls){%args=(bins=>[_remove_from($self->bins,map$self->install_base_bin_path($_),@active_lls)],libs=>[_remove_from($self->libs,map$self->install_base_perl_path($_),@active_lls)],inc=>[_remove_from($self->inc,map$self->lib_paths_for($_),@active_lls)],roots=>[_remove_from($self->roots,@active_lls)],)}$args{extra}={$self->installer_options_for(undef)};$self->clone(%args)}sub activate {my ($self,$path)=@_;$self=$self->new unless ref$self;$path=$self->resolve_path($path);$self->ensure_dir_structure_for($path)unless$self->no_create;$path=$self->normalize_path($path);my@active_lls=$self->active_paths;if (grep {$_ eq $path}@active_lls[1 .. $#active_lls]){$self=$self->deactivate($path)}my%args;if (!@active_lls || $active_lls[0]ne $path){%args=(bins=>[$self->install_base_bin_path($path),@{$self->bins}],libs=>[$self->install_base_perl_path($path),@{$self->libs}],inc=>[$self->lib_paths_for($path),@{$self->inc}],roots=>[$path,@{$self->roots}],)}$args{extra}={$self->installer_options_for($path)};$self->clone(%args)}sub normalize_path {my ($self,$path)=@_;$path=(Win32::GetShortPathName($path)|| $path)if $^O eq 'MSWin32';return$path}sub build_environment_vars_for {my$self=$_[0]->new->activate($_[1]);$self->build_environment_vars}sub build_activate_environment_vars_for {my$self=$_[0]->new->activate($_[1]);$self->build_environment_vars}sub build_deactivate_environment_vars_for {my$self=$_[0]->new->deactivate($_[1]);$self->build_environment_vars}sub build_deact_all_environment_vars_for {my$self=$_[0]->new->deactivate_all;$self->build_environment_vars}sub build_environment_vars {my$self=shift;(PATH=>join($_path_sep,_as_list($self->bins)),PERL5LIB=>join($_path_sep,_as_list($self->libs)),PERL_LOCAL_LIB_ROOT=>join($_path_sep,_as_list($self->roots)),%{$self->extra},)}sub setup_local_lib_for {my$self=$_[0]->new->activate($_[1]);$self->setup_local_lib}sub setup_local_lib {my$self=shift;require Carp::Heavy if$INC{'Carp.pm'};$self->setup_env_hash;@INC=@{$self->inc}}sub setup_env_hash_for {my$self=$_[0]->new->activate($_[1]);$self->setup_env_hash}sub setup_env_hash {my$self=shift;my%env=$self->build_environment_vars;for my$key (keys%env){if (defined$env{$key}){$ENV{$key}=$env{$key}}else {delete$ENV{$key}}}}sub print_environment_vars_for {print $_[0]->environment_vars_string_for(@_[1..$#_])}sub environment_vars_string_for {my$self=$_[0]->new->activate($_[1]);$self->environment_vars_string}sub environment_vars_string {my ($self,$shelltype)=@_;$shelltype ||= $self->guess_shelltype;my$extra=$self->extra;my@envs=(PATH=>$self->bins,PERL5LIB=>$self->libs,PERL_LOCAL_LIB_ROOT=>$self->roots,map {$_=>$extra->{$_}}sort keys %$extra,);$self->_build_env_string($shelltype,\@envs)}sub _build_env_string {my ($self,$shelltype,$envs)=@_;my@envs=@$envs;my$build_method="build_${shelltype}_env_declaration";my$out='';while (@envs){my ($name,$value)=(shift(@envs),shift(@envs));if (ref$value && @$value==1 && ref$value->[0]&& ref$value->[0]eq 'SCALAR' && ${$value->[0]}eq $name){next}$out .= $self->$build_method($name,$value)}my$wrap_method="wrap_${shelltype}_output";if ($self->can($wrap_method)){return$self->$wrap_method($out)}return$out}sub build_bourne_env_declaration {my ($class,$name,$args)=@_;my$value=$class->_interpolate($args,'${%s}',qr/["\\\$!`]/,'\\%s');if (!defined$value){return qq{unset $name;\n}}$value =~ s/(^|\G|$_path_sep)\$\{$name\}$_path_sep/$1\${$name}\${$name+$_path_sep}/g;$value =~ s/$_path_sep\$\{$name\}$/\${$name+$_path_sep}\${$name}/;qq{${name}="$value"; export ${name};\n}}sub build_csh_env_declaration {my ($class,$name,$args)=@_;my ($value,@vars)=$class->_interpolate($args,'${%s}','"','"\\%s"');if (!defined$value){return qq{unsetenv $name;\n}}my$out='';for my$var (@vars){$out .= qq{if ! \$?$name setenv $name '';\n}}my$value_without=$value;if ($value_without =~ s/(?:^|$_path_sep)\$\{$name\}(?:$_path_sep|$)//g){$out .= qq{if "\${$name}" != '' setenv $name "$value";\n};$out .= qq{if "\${$name}" == '' }}$out .= qq{setenv $name "$value_without";\n};return$out}sub build_cmd_env_declaration {my ($class,$name,$args)=@_;my$value=$class->_interpolate($args,'%%%s%%',qr(%),'%s');if (!$value){return qq{\@set $name=\n}}my$out='';my$value_without=$value;if ($value_without =~ s/(?:^|$_path_sep)%$name%(?:$_path_sep|$)//g){$out .= qq{\@if not "%$name%"=="" set "$name=$value"\n};$out .= qq{\@if "%$name%"=="" }}$out .= qq{\@set "$name=$value_without"\n};return$out}sub build_powershell_env_declaration {my ($class,$name,$args)=@_;my$value=$class->_interpolate($args,'$env:%s','"','`%s');if (!$value){return qq{Remove-Item -ErrorAction 0 Env:\\$name;\n}}my$maybe_path_sep=qq{\$(if("\$env:$name"-eq""){""}else{"$_path_sep"})};$value =~ s/(^|\G|$_path_sep)\$env:$name$_path_sep/$1\$env:$name"+$maybe_path_sep+"/g;$value =~ s/$_path_sep\$env:$name$/"+$maybe_path_sep+\$env:$name+"/;qq{\$env:$name = \$("$value");\n}}sub wrap_powershell_output {my ($class,$out)=@_;return$out || " \n"}sub build_fish_env_declaration {my ($class,$name,$args)=@_;my$value=$class->_interpolate($args,'$%s',qr/[\\"' ]/,'\\%s');if (!defined$value){return qq{set -e $name;\n}}$value =~ s/$_path_sep/ /g;qq{set -x $name $value;\n}}sub _interpolate {my ($class,$args,$var_pat,$escape,$escape_pat)=@_;return unless defined$args;my@args=ref$args ? @$args : $args;return unless@args;my@vars=map {$$_}grep {ref $_ eq 'SCALAR'}@args;my$string=join$_path_sep,map {ref $_ eq 'SCALAR' ? sprintf($var_pat,$$_): do {s/($escape)/sprintf($escape_pat, $1)/ge;$_}}@args;return wantarray ? ($string,\@vars): $string}sub pipeline;sub pipeline {my@methods=@_;my$last=pop(@methods);if (@methods){\sub {my ($obj,@args)=@_;$obj->${pipeline@methods}($obj->$last(@args))}}else {\sub {shift->$last(@_)}}}sub resolve_path {my ($class,$path)=@_;$path=$class->${pipeline qw(resolve_relative_path resolve_home_path resolve_empty_path)}($path);$path}sub resolve_empty_path {my ($class,$path)=@_;if (defined$path){$path}else {'~/perl5'}}sub resolve_home_path {my ($class,$path)=@_;$path =~ /^~([^\/]*)/ or return$path;my$user=$1;my$homedir=do {if (!length($user)&& defined$ENV{HOME}){$ENV{HOME}}else {require File::Glob;File::Glob::bsd_glob("~$user",File::Glob::GLOB_TILDE())}};unless (defined$homedir){require Carp;require Carp::Heavy;Carp::croak("Couldn't resolve homedir for " .(defined$user ? $user : 'current user'))}$path =~ s/^~[^\/]*/$homedir/;$path}sub resolve_relative_path {my ($class,$path)=@_;_rel2abs($path)}sub ensure_dir_structure_for {my ($class,$path)=@_;unless (-d $path){warn "Attempting to create directory ${path}\n"}require File::Basename;my@dirs;while(!-d $path){push@dirs,$path;$path=File::Basename::dirname($path)}mkdir $_ for reverse@dirs;return}sub guess_shelltype {my$shellbin =defined$ENV{SHELL}? ($ENV{SHELL}=~ /([\w.]+)$/)[-1]: ($^O eq 'MSWin32' && exists$ENV{'!EXITCODE'})? 'bash' : ($^O eq 'MSWin32' && $ENV{PROMPT}&& $ENV{COMSPEC})? ($ENV{COMSPEC}=~ /([\w.]+)$/)[-1]: ($^O eq 'MSWin32' &&!$ENV{PROMPT})? 'powershell.exe' : 'sh';for ($shellbin){return /csh$/ ? 'csh' : /fish/ ? 'fish' : /command(?:\.com)?$/i ? 'cmd' : /cmd(?:\.exe)?$/i ? 'cmd' : /4nt(?:\.exe)?$/i ? 'cmd' : /powershell(?:\.exe)?$/i ? 'powershell' : 'bourne'}}1; - WHOA THERE! It looks like you've got some fancy dashes in your commandline! - These are *not* the traditional -- dashes that software recognizes. You - probably got these by copy-pasting from the perldoc for this module as - rendered by a UTF8-capable formatter. This most typically happens on an OS X - terminal, but can happen elsewhere too. Please try again after replacing the - dashes with normal minus signs. - DEATH - FATAL: The local::lib --self-contained flag has never worked reliably and the - original author, Mark Stosberg, was unable or unwilling to maintain it. As - such, this flag has been removed from the local::lib codebase in order to - prevent misunderstandings and potentially broken builds. The local::lib authors - recommend that you look at the lib::core::only module shipped with this - distribution in order to create a more robust environment that is equivalent to - what --self-contained provided (although quite possibly not what you originally - thought it provided due to the poor quality of the documentation, for which we - apologise). - DEATH -LOCAL_LIB - -$fatpacked{"parent.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'PARENT'; - package parent;use strict;use vars qw($VERSION);$VERSION='0.228';sub import {my$class=shift;my$inheritor=caller(0);if (@_ and $_[0]eq '-norequire'){shift @_}else {for (my@filename=@_){if ($_ eq $inheritor){warn "Class '$inheritor' tried to inherit from itself\n"};s{::|'}{/}g;require "$_.pm"}}{no strict 'refs';push @{"$inheritor\::ISA"},@_}};"All your base are belong to us" -PARENT - -$fatpacked{"version.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'VERSION'; - package version;use 5.006002;use strict;use warnings::register;if ($] >= 5.015){warnings::register_categories(qw/version/)}use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);$VERSION=0.9912;$CLASS='version';{local$SIG{'__DIE__'};if (1){eval "use version::vpp $VERSION";die "$@" if ($@);push@ISA,"version::vpp";local $^W;*version::qv=\&version::vpp::qv;*version::declare=\&version::vpp::declare;*version::_VERSION=\&version::vpp::_VERSION;*version::vcmp=\&version::vpp::vcmp;*version::new=\&version::vpp::new;*version::numify=\&version::vpp::numify;*version::normal=\&version::vpp::normal;if ($] >= 5.009000){no strict 'refs';*version::stringify=\&version::vpp::stringify;*{'version::(""'}=\&version::vpp::stringify;*{'version::(<=>'}=\&version::vpp::vcmp;*version::parse=\&version::vpp::parse}}else {push@ISA,"version::vxs";local $^W;*version::declare=\&version::vxs::declare;*version::qv=\&version::vxs::qv;*version::_VERSION=\&version::vxs::_VERSION;*version::vcmp=\&version::vxs::VCMP;*version::new=\&version::vxs::new;*version::numify=\&version::vxs::numify;*version::normal=\&version::vxs::normal;if ($] >= 5.009000){no strict 'refs';*version::stringify=\&version::vxs::stringify;*{'version::(""'}=\&version::vxs::stringify;*{'version::(<=>'}=\&version::vxs::VCMP;*version::parse=\&version::vxs::parse}}}require version::regex;*version::is_lax=\&version::regex::is_lax;*version::is_strict=\&version::regex::is_strict;*LAX=\$version::regex::LAX;*STRICT=\$version::regex::STRICT;sub import {no strict 'refs';my ($class)=shift;unless ($class eq $CLASS){local $^W;*{$class.'::declare'}=\&{$CLASS.'::declare'};*{$class.'::qv'}=\&{$CLASS.'::qv'}}my%args;if (@_){map {$args{$_}=1}@_}else {%args=(qv=>1,'UNIVERSAL::VERSION'=>1,)}my$callpkg=caller();if (exists($args{declare})){*{$callpkg.'::declare'}=sub {return$class->declare(shift)}unless defined(&{$callpkg.'::declare'})}if (exists($args{qv})){*{$callpkg.'::qv'}=sub {return$class->qv(shift)}unless defined(&{$callpkg.'::qv'})}if (exists($args{'UNIVERSAL::VERSION'})){local $^W;*UNIVERSAL::VERSION =\&{$CLASS.'::_VERSION'}}if (exists($args{'VERSION'})){*{$callpkg.'::VERSION'}=\&{$CLASS.'::_VERSION'}}if (exists($args{'is_strict'})){*{$callpkg.'::is_strict'}=\&{$CLASS.'::is_strict'}unless defined(&{$callpkg.'::is_strict'})}if (exists($args{'is_lax'})){*{$callpkg.'::is_lax'}=\&{$CLASS.'::is_lax'}unless defined(&{$callpkg.'::is_lax'})}}1; -VERSION - -$fatpacked{"version/regex.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'VERSION_REGEX'; - package version::regex;use strict;use vars qw($VERSION $CLASS $STRICT $LAX);$VERSION=0.9912;my$FRACTION_PART=qr/\.[0-9]+/;my$STRICT_INTEGER_PART=qr/0|[1-9][0-9]*/;my$LAX_INTEGER_PART=qr/[0-9]+/;my$STRICT_DOTTED_DECIMAL_PART=qr/\.[0-9]{1,3}/;my$LAX_DOTTED_DECIMAL_PART=qr/\.[0-9]+/;my$LAX_ALPHA_PART=qr/_[0-9]+/;my$STRICT_DECIMAL_VERSION=qr/ $STRICT_INTEGER_PART $FRACTION_PART? /x;my$STRICT_DOTTED_DECIMAL_VERSION=qr/ v $STRICT_INTEGER_PART $STRICT_DOTTED_DECIMAL_PART{2,} /x;$STRICT=qr/ $STRICT_DECIMAL_VERSION | $STRICT_DOTTED_DECIMAL_VERSION /x;my$LAX_DECIMAL_VERSION=qr/ $LAX_INTEGER_PART (?: \. | $FRACTION_PART $LAX_ALPHA_PART? )? - | - $FRACTION_PART $LAX_ALPHA_PART? - /x;my$LAX_DOTTED_DECIMAL_VERSION=qr/ - v $LAX_INTEGER_PART (?: $LAX_DOTTED_DECIMAL_PART+ $LAX_ALPHA_PART? )? - | - $LAX_INTEGER_PART? $LAX_DOTTED_DECIMAL_PART{2,} $LAX_ALPHA_PART? - /x;$LAX=qr/ undef | $LAX_DECIMAL_VERSION | $LAX_DOTTED_DECIMAL_VERSION /x;sub is_strict {defined $_[0]&& $_[0]=~ qr/ \A $STRICT \z /x}sub is_lax {defined $_[0]&& $_[0]=~ qr/ \A $LAX \z /x}1; -VERSION_REGEX - -$fatpacked{"version/vpp.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'VERSION_VPP'; - package charstar;use overload ('""'=>\&thischar,'0+'=>\&thischar,'++'=>\&increment,'--'=>\&decrement,'+'=>\&plus,'-'=>\&minus,'*'=>\&multiply,'cmp'=>\&cmp,'<=>'=>\&spaceship,'bool'=>\&thischar,'='=>\&clone,);sub new {my ($self,$string)=@_;my$class=ref($self)|| $self;my$obj={string=>[split(//,$string)],current=>0,};return bless$obj,$class}sub thischar {my ($self)=@_;my$last=$#{$self->{string}};my$curr=$self->{current};if ($curr >= 0 && $curr <= $last){return$self->{string}->[$curr]}else {return ''}}sub increment {my ($self)=@_;$self->{current}++}sub decrement {my ($self)=@_;$self->{current}--}sub plus {my ($self,$offset)=@_;my$rself=$self->clone;$rself->{current}+= $offset;return$rself}sub minus {my ($self,$offset)=@_;my$rself=$self->clone;$rself->{current}-= $offset;return$rself}sub multiply {my ($left,$right,$swapped)=@_;my$char=$left->thischar();return$char * $right}sub spaceship {my ($left,$right,$swapped)=@_;unless (ref($right)){$right=$left->new($right)}return$left->{current}<=> $right->{current}}sub cmp {my ($left,$right,$swapped)=@_;unless (ref($right)){if (length($right)==1){return$left->thischar cmp $right}$right=$left->new($right)}return$left->currstr cmp $right->currstr}sub bool {my ($self)=@_;my$char=$self->thischar;return ($char ne '')}sub clone {my ($left,$right,$swapped)=@_;$right={string=>[@{$left->{string}}],current=>$left->{current},};return bless$right,ref($left)}sub currstr {my ($self,$s)=@_;my$curr=$self->{current};my$last=$#{$self->{string}};if (defined($s)&& $s->{current}< $last){$last=$s->{current}}my$string=join('',@{$self->{string}}[$curr..$last]);return$string}package version::vpp;use 5.006002;use strict;use warnings::register;use Config;use vars qw($VERSION $CLASS @ISA $LAX $STRICT $WARN_CATEGORY);$VERSION=0.9912;$CLASS='version::vpp';if ($] > 5.015){warnings::register_categories(qw/version/);$WARN_CATEGORY='version'}else {$WARN_CATEGORY='numeric'}require version::regex;*version::vpp::is_strict=\&version::regex::is_strict;*version::vpp::is_lax=\&version::regex::is_lax;*LAX=\$version::regex::LAX;*STRICT=\$version::regex::STRICT;use overload ('""'=>\&stringify,'0+'=>\&numify,'cmp'=>\&vcmp,'<=>'=>\&vcmp,'bool'=>\&vbool,'+'=>\&vnoop,'-'=>\&vnoop,'*'=>\&vnoop,'/'=>\&vnoop,'+='=>\&vnoop,'-='=>\&vnoop,'*='=>\&vnoop,'/='=>\&vnoop,'abs'=>\&vnoop,);sub import {no strict 'refs';my ($class)=shift;unless ($class eq $CLASS){local $^W;*{$class.'::declare'}=\&{$CLASS.'::declare'};*{$class.'::qv'}=\&{$CLASS.'::qv'}}my%args;if (@_){map {$args{$_}=1}@_}else {%args=(qv=>1,'UNIVERSAL::VERSION'=>1,)}my$callpkg=caller();if (exists($args{declare})){*{$callpkg.'::declare'}=sub {return$class->declare(shift)}unless defined(&{$callpkg.'::declare'})}if (exists($args{qv})){*{$callpkg.'::qv'}=sub {return$class->qv(shift)}unless defined(&{$callpkg.'::qv'})}if (exists($args{'UNIVERSAL::VERSION'})){no warnings qw/redefine/;*UNIVERSAL::VERSION =\&{$CLASS.'::_VERSION'}}if (exists($args{'VERSION'})){*{$callpkg.'::VERSION'}=\&{$CLASS.'::_VERSION'}}if (exists($args{'is_strict'})){*{$callpkg.'::is_strict'}=\&{$CLASS.'::is_strict'}unless defined(&{$callpkg.'::is_strict'})}if (exists($args{'is_lax'})){*{$callpkg.'::is_lax'}=\&{$CLASS.'::is_lax'}unless defined(&{$callpkg.'::is_lax'})}}my$VERSION_MAX=0x7FFFFFFF;use constant TRUE=>1;use constant FALSE=>0;sub isDIGIT {my ($char)=shift->thischar();return ($char =~ /\d/)}sub isALPHA {my ($char)=shift->thischar();return ($char =~ /[a-zA-Z]/)}sub isSPACE {my ($char)=shift->thischar();return ($char =~ /\s/)}sub BADVERSION {my ($s,$errstr,$error)=@_;if ($errstr){$$errstr=$error}return$s}sub prescan_version {my ($s,$strict,$errstr,$sqv,$ssaw_decimal,$swidth,$salpha)=@_;my$qv=defined$sqv ? $$sqv : FALSE;my$saw_decimal=defined$ssaw_decimal ? $$ssaw_decimal : 0;my$width=defined$swidth ? $$swidth : 3;my$alpha=defined$salpha ? $$salpha : FALSE;my$d=$s;if ($qv && isDIGIT($d)){goto dotted_decimal_version}if ($d eq 'v'){$d++;if (isDIGIT($d)){$qv=TRUE}else {return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)")}dotted_decimal_version: if ($strict && $d eq '0' && isDIGIT($d+1)){return BADVERSION($s,$errstr,"Invalid version format (no leading zeros)")}while (isDIGIT($d)){$d++}if ($d eq '.'){$saw_decimal++;$d++}else {if ($strict){return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)")}else {goto version_prescan_finish}}{my$i=0;my$j=0;while (isDIGIT($d)){$i++;while (isDIGIT($d)){$d++;$j++;if ($strict && $j > 3){return BADVERSION($s,$errstr,"Invalid version format (maximum 3 digits between decimals)")}}if ($d eq '_'){if ($strict){return BADVERSION($s,$errstr,"Invalid version format (no underscores)")}if ($alpha){return BADVERSION($s,$errstr,"Invalid version format (multiple underscores)")}$d++;$alpha=TRUE}elsif ($d eq '.'){if ($alpha){return BADVERSION($s,$errstr,"Invalid version format (underscores before decimal)")}$saw_decimal++;$d++}elsif (!isDIGIT($d)){last}$j=0}if ($strict && $i < 2){return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)")}}}else {my$j=0;if ($strict){if ($d eq '.'){return BADVERSION($s,$errstr,"Invalid version format (0 before decimal required)")}if ($d eq '0' && isDIGIT($d+1)){return BADVERSION($s,$errstr,"Invalid version format (no leading zeros)")}}if ($d eq '-'){return BADVERSION($s,$errstr,"Invalid version format (negative version number)")}while (isDIGIT($d)){$d++}if ($d eq '.'){$saw_decimal++;$d++}elsif (!$d || $d eq ';' || isSPACE($d)|| $d eq '}'){if ($d==$s){return BADVERSION($s,$errstr,"Invalid version format (version required)")}goto version_prescan_finish}elsif ($d==$s){return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)")}elsif ($d eq '_'){if ($strict){return BADVERSION($s,$errstr,"Invalid version format (no underscores)")}elsif (isDIGIT($d+1)){return BADVERSION($s,$errstr,"Invalid version format (alpha without decimal)")}else {return BADVERSION($s,$errstr,"Invalid version format (misplaced underscore)")}}elsif ($d){return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)")}if ($d &&!isDIGIT($d)&& ($strict ||!($d eq ';' || isSPACE($d)|| $d eq '}'))){return BADVERSION($s,$errstr,"Invalid version format (fractional part required)")}while (isDIGIT($d)){$d++;$j++;if ($d eq '.' && isDIGIT($d-1)){if ($alpha){return BADVERSION($s,$errstr,"Invalid version format (underscores before decimal)")}if ($strict){return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions must begin with 'v')")}$d=$s;$qv=TRUE;goto dotted_decimal_version}if ($d eq '_'){if ($strict){return BADVERSION($s,$errstr,"Invalid version format (no underscores)")}if ($alpha){return BADVERSION($s,$errstr,"Invalid version format (multiple underscores)")}if (!isDIGIT($d+1)){return BADVERSION($s,$errstr,"Invalid version format (misplaced underscore)")}$width=$j;$d++;$alpha=TRUE}}}version_prescan_finish: while (isSPACE($d)){$d++}if ($d &&!isDIGIT($d)&& (!($d eq ';' || $d eq '}'))){return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)")}if ($saw_decimal > 1 && ($d-1)eq '.'){return BADVERSION($s,$errstr,"Invalid version format (trailing decimal)")}if (defined$sqv){$$sqv=$qv}if (defined$swidth){$$swidth=$width}if (defined$ssaw_decimal){$$ssaw_decimal=$saw_decimal}if (defined$salpha){$$salpha=$alpha}return$d}sub scan_version {my ($s,$rv,$qv)=@_;my$start;my$pos;my$last;my$errstr;my$saw_decimal=0;my$width=3;my$alpha=FALSE;my$vinf=FALSE;my@av;$s=new charstar$s;while (isSPACE($s)){$s++}$last=prescan_version($s,FALSE,\$errstr,\$qv,\$saw_decimal,\$width,\$alpha);if ($errstr){if ($s ne 'undef'){require Carp;Carp::croak($errstr)}}$start=$s;if ($s eq 'v'){$s++}$pos=$s;if ($qv){$$rv->{qv}=$qv}if ($alpha){$$rv->{alpha}=$alpha}if (!$qv && $width < 3){$$rv->{width}=$width}while (isDIGIT($pos)){$pos++}if (!isALPHA($pos)){my$rev;for (;;){$rev=0;{my$end=$pos;my$mult=1;my$orev;if (!$qv && $s > $start && $saw_decimal==1){$mult *= 100;while ($s < $end){$orev=$rev;$rev += $s * $mult;$mult /= 10;if ((abs($orev)> abs($rev))|| (abs($rev)> $VERSION_MAX)){warn("Integer overflow in version %d",$VERSION_MAX);$s=$end - 1;$rev=$VERSION_MAX;$vinf=1}$s++;if ($s eq '_'){$s++}}}else {while (--$end >= $s){$orev=$rev;$rev += $end * $mult;$mult *= 10;if ((abs($orev)> abs($rev))|| (abs($rev)> $VERSION_MAX)){warn("Integer overflow in version");$end=$s - 1;$rev=$VERSION_MAX;$vinf=1}}}}push@av,$rev;if ($vinf){$s=$last;last}elsif ($pos eq '.'){$pos++;if ($qv){while ($pos eq '0'){$pos++}}$s=$pos}elsif ($pos eq '_' && isDIGIT($pos+1)){$s=++$pos}elsif ($pos eq ',' && isDIGIT($pos+1)){$s=++$pos}elsif (isDIGIT($pos)){$s=$pos}else {$s=$pos;last}if ($qv){while (isDIGIT($pos)){$pos++}}else {my$digits=0;while ((isDIGIT($pos)|| $pos eq '_')&& $digits < 3){if ($pos ne '_'){$digits++}$pos++}}}}if ($qv){my$len=$#av;$len=2 - $len;while ($len-- > 0){push@av,0}}if ($vinf){$$rv->{original}="v.Inf";$$rv->{vinf}=1}elsif ($s > $start){$$rv->{original}=$start->currstr($s);if ($qv && $saw_decimal==1 && $start ne 'v'){$$rv->{original}='v' .$$rv->{original}}}else {$$rv->{original}='0';push(@av,0)}$$rv->{version}=\@av;if ($s eq 'undef'){$s += 5}return$s}sub new {my$class=shift;unless (defined$class or $#_ > 1){require Carp;Carp::croak('Usage: version::new(class, version)')}my$self=bless ({},ref ($class)|| $class);my$qv=FALSE;if ($#_==1){$qv=TRUE}my$value=pop;if (ref($value)&& eval('$value->isa("version")')){$self->{version}=[@{$value->{version}}];$self->{qv}=1 if$value->{qv};$self->{alpha}=1 if$value->{alpha};$self->{original}=''.$value->{original};return$self}if (not defined$value or $value =~ /^undef$/){push @{$self->{version}},0;$self->{original}="0";return ($self)}if (ref($value)=~ m/ARRAY|HASH/){require Carp;Carp::croak("Invalid version format (non-numeric data)")}$value=_un_vstring($value);if ($Config{d_setlocale}){use POSIX qw/locale_h/;use if$Config{d_setlocale},'locale';my$currlocale=setlocale(LC_ALL);if (localeconv()->{decimal_point}eq ','){$value =~ tr/,/./}}if ($value =~ /\d+.?\d*e[-+]?\d+/){$value=sprintf("%.9f",$value);$value =~ s/(0+)$//}my$s=scan_version($value,\$self,$qv);if ($s){warn("Version string '%s' contains invalid data; " ."ignoring: '%s'",$value,$s)}return ($self)}*parse=\&new;sub numify {my ($self)=@_;unless (_verify($self)){require Carp;Carp::croak("Invalid version object")}my$width=$self->{width}|| 3;my$alpha=$self->{alpha}|| "";my$len=$#{$self->{version}};my$digit=$self->{version}[0];my$string=sprintf("%d.",$digit);if ($alpha and warnings::enabled()){warnings::warn($WARN_CATEGORY,'alpha->numify() is lossy')}for (my$i=1 ;$i < $len ;$i++ ){$digit=$self->{version}[$i];if ($width < 3){my$denom=10**(3-$width);my$quot=int($digit/$denom);my$rem=$digit - ($quot * $denom);$string .= sprintf("%0".$width."d_%d",$quot,$rem)}else {$string .= sprintf("%03d",$digit)}}if ($len > 0){$digit=$self->{version}[$len];if ($alpha && $width==3){$string .= "_"}$string .= sprintf("%0".$width."d",$digit)}else {$string .= sprintf("000")}return$string}sub normal {my ($self)=@_;unless (_verify($self)){require Carp;Carp::croak("Invalid version object")}my$alpha=$self->{alpha}|| "";my$qv=$self->{qv}|| "";my$len=$#{$self->{version}};my$digit=$self->{version}[0];my$string=sprintf("v%d",$digit);for (my$i=1 ;$i < $len ;$i++ ){$digit=$self->{version}[$i];$string .= sprintf(".%d",$digit)}if ($len > 0){$digit=$self->{version}[$len];if ($alpha){$string .= sprintf("_%0d",$digit)}else {$string .= sprintf(".%0d",$digit)}}if ($len <= 2){for ($len=2 - $len;$len!=0;$len-- ){$string .= sprintf(".%0d",0)}}return$string}sub stringify {my ($self)=@_;unless (_verify($self)){require Carp;Carp::croak("Invalid version object")}return exists$self->{original}? $self->{original}: exists$self->{qv}? $self->normal : $self->numify}sub vcmp {require UNIVERSAL;my ($left,$right,$swap)=@_;my$class=ref($left);unless (UNIVERSAL::isa($right,$class)){$right=$class->new($right)}if ($swap){($left,$right)=($right,$left)}unless (_verify($left)){require Carp;Carp::croak("Invalid version object")}unless (_verify($right)){require Carp;Carp::croak("Invalid version format")}my$l=$#{$left->{version}};my$r=$#{$right->{version}};my$m=$l < $r ? $l : $r;my$lalpha=$left->is_alpha;my$ralpha=$right->is_alpha;my$retval=0;my$i=0;while ($i <= $m && $retval==0){$retval=$left->{version}[$i]<=> $right->{version}[$i];$i++}if ($retval==0 && $l==$r && $left->{version}[$m]==$right->{version}[$m]&& ($lalpha || $ralpha)){if ($lalpha &&!$ralpha){$retval=-1}elsif ($ralpha &&!$lalpha){$retval=+1}}if ($retval==0 && $l!=$r){if ($l < $r){while ($i <= $r && $retval==0){if ($right->{version}[$i]!=0){$retval=-1}$i++}}else {while ($i <= $l && $retval==0){if ($left->{version}[$i]!=0){$retval=+1}$i++}}}return$retval}sub vbool {my ($self)=@_;return vcmp($self,$self->new("0"),1)}sub vnoop {require Carp;Carp::croak("operation not supported with version object")}sub is_alpha {my ($self)=@_;return (exists$self->{alpha})}sub qv {my$value=shift;my$class=$CLASS;if (@_){$class=ref($value)|| $value;$value=shift}$value=_un_vstring($value);$value='v'.$value unless$value =~ /(^v|\d+\.\d+\.\d)/;my$obj=$CLASS->new($value);return bless$obj,$class}*declare=\&qv;sub is_qv {my ($self)=@_;return (exists$self->{qv})}sub _verify {my ($self)=@_;if (ref($self)&& eval {exists$self->{version}}&& ref($self->{version})eq 'ARRAY'){return 1}else {return 0}}sub _is_non_alphanumeric {my$s=shift;$s=new charstar$s;while ($s){return 0 if isSPACE($s);return 1 unless (isALPHA($s)|| isDIGIT($s)|| $s =~ /[.-]/);$s++}return 0}sub _un_vstring {my$value=shift;if (length($value)>= 1 && $value !~ /[,._]/ && _is_non_alphanumeric($value)){my$tvalue;if ($] >= 5.008_001){$tvalue=_find_magic_vstring($value);$value=$tvalue if length$tvalue}elsif ($] >= 5.006_000){$tvalue=sprintf("v%vd",$value);if ($tvalue =~ /^v\d+(\.\d+)*$/){$value=$tvalue}}}return$value}sub _find_magic_vstring {my$value=shift;my$tvalue='';require B;my$sv=B::svref_2object(\$value);my$magic=ref($sv)eq 'B::PVMG' ? $sv->MAGIC : undef;while ($magic){if ($magic->TYPE eq 'V'){$tvalue=$magic->PTR;$tvalue =~ s/^v?(.+)$/v$1/;last}else {$magic=$magic->MOREMAGIC}}return$tvalue}sub _VERSION {my ($obj,$req)=@_;my$class=ref($obj)|| $obj;no strict 'refs';if (exists$INC{"$class.pm"}and not %{"$class\::"}and $] >= 5.008){require Carp;Carp::croak("$class defines neither package nor VERSION" ."--version check failed")}my$version=eval "\$$class\::VERSION";if (defined$version){local $^W if $] <= 5.008;$version=version::vpp->new($version)}if (defined$req){unless (defined$version){require Carp;my$msg=$] < 5.006 ? "$class version $req required--this is only version " : "$class does not define \$$class\::VERSION" ."--version check failed";if ($ENV{VERSION_DEBUG}){Carp::confess($msg)}else {Carp::croak($msg)}}$req=version::vpp->new($req);if ($req > $version){require Carp;if ($req->is_qv){Carp::croak(sprintf ("%s version %s required--"."this is only version %s",$class,$req->normal,$version->normal))}else {Carp::croak(sprintf ("%s version %s required--"."this is only version %s",$class,$req->stringify,$version->stringify))}}}return defined$version ? $version->stringify : undef}1; -VERSION_VPP - -s/^ //mg for values %fatpacked; - -my $class = 'FatPacked::'.(0+\%fatpacked); -no strict 'refs'; -*{"${class}::files"} = sub { keys %{$_[0]} }; - -if ($] < 5.008) { - *{"${class}::INC"} = sub { - if (my $fat = $_[0]{$_[1]}) { - my $pos = 0; - my $last = length $fat; - return (sub { - return 0 if $pos == $last; - my $next = (1 + index $fat, "\n", $pos) || $last; - $_ .= substr $fat, $pos, $next - $pos; - $pos = $next; - return 1; - }); - } - }; -} - -else { - *{"${class}::INC"} = sub { - if (my $fat = $_[0]{$_[1]}) { - open my $fh, '<', \$fat - or die "FatPacker error loading $_[1] (could be a perl installation issue?)"; - return $fh; - } - return; - }; -} - -unshift @INC, bless \%fatpacked, $class; - } # END OF FATPACK CODE - - - -use strict; -use App::cpanminus::script; - - -unless (caller) { - my $app = App::cpanminus::script->new; - $app->parse_options(@ARGV); - exit $app->doit; -} - -__END__ - -=head1 NAME - -cpanm - get, unpack build and install modules from CPAN - -=head1 SYNOPSIS - - cpanm Test::More # install Test::More - cpanm MIYAGAWA/Plack-0.99_05.tar.gz # full distribution path - cpanm http://example.org/LDS/CGI.pm-3.20.tar.gz # install from URL - cpanm ~/dists/MyCompany-Enterprise-1.00.tar.gz # install from a local file - cpanm --interactive Task::Kensho # Configure interactively - cpanm . # install from local directory - cpanm --installdeps . # install all the deps for the current directory - cpanm -L extlib Plack # install Plack and all non-core deps into extlib - cpanm --mirror http://cpan.cpantesters.org/ DBI # use the fast-syncing mirror - cpanm --from https://cpan.metacpan.org/ Plack # use only the HTTPS mirror - -=head1 COMMANDS - -=over 4 - -=item (arguments) - -Command line arguments can be either a module name, distribution file, -local file path, HTTP URL or git repository URL. Following commands -will all work as you expect. - - cpanm Plack - cpanm Plack/Request.pm - cpanm MIYAGAWA/Plack-1.0000.tar.gz - cpanm /path/to/Plack-1.0000.tar.gz - cpanm http://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Plack-0.9990.tar.gz - cpanm git://github.com/plack/Plack.git - -Additionally, you can use the notation using C<~> and C<@> to specify -version for a given module. C<~> specifies the version requirement in -the L<CPAN::Meta::Spec> format, while C<@> pins the exact version, and -is a shortcut for C<~"== VERSION">. - - cpanm Plack~1.0000 # 1.0000 or later - cpanm Plack~">= 1.0000, < 2.0000" # latest of 1.xxxx - cpanm Plack@0.9990 # specific version. same as Plack~"== 0.9990" - -The version query including specific version or range will be sent to -L<MetaCPAN> to search for previous releases. The query will search for -BackPAN archives by default, unless you specify C<--dev> option, in -which case, archived versions will be filtered out. - -For a git repository, you can specify a branch, tag, or commit SHA to -build. The default is C<master> - - cpanm git://github.com/plack/Plack.git@1.0000 # tag - cpanm git://github.com/plack/Plack.git@devel # branch - -=item -i, --install - -Installs the modules. This is a default behavior and this is just a -compatibility option to make it work like L<cpan> or L<cpanp>. - -=item --self-upgrade - -Upgrades itself. It's just an alias for: - - cpanm App::cpanminus - -=item --info - -Displays the distribution information in -C<AUTHOR/Dist-Name-ver.tar.gz> format in the standard out. - -=item --installdeps - -Installs the dependencies of the target distribution but won't build -itself. Handy if you want to try the application from a version -controlled repository such as git. - - cpanm --installdeps . - -=item --look - -Download and unpack the distribution and then open the directory with -your shell. Handy to poke around the source code or do manual -testing. - -=item -h, --help - -Displays the help message. - -=item -V, --version - -Displays the version number. - -=back - -=head1 OPTIONS - -You can specify the default options in C<PERL_CPANM_OPT> environment variable. - -=over 4 - -=item -f, --force - -Force install modules even when testing failed. - -=item -n, --notest - -Skip the testing of modules. Use this only when you just want to save -time for installing hundreds of distributions to the same perl and -architecture you've already tested to make sure it builds fine. - -Defaults to false, and you can say C<--no-notest> to override when it -is set in the default options in C<PERL_CPANM_OPT>. - -=item --test-only - -Run the tests only, and do not install the specified module or -distributions. Handy if you want to verify the new (or even old) -releases pass its unit tests without installing the module. - -Note that if you specify this option with a module or distribution -that has dependencies, these dependencies will be installed if you -don't currently have them. - -=item -S, --sudo - -Switch to the root user with C<sudo> when installing modules. Use this -if you want to install modules to the system perl include path. - -Defaults to false, and you can say C<--no-sudo> to override when it is -set in the default options in C<PERL_CPANM_OPT>. - -=item -v, --verbose - -Makes the output verbose. It also enables the interactive -configuration. (See --interactive) - -=item -q, --quiet - -Makes the output even more quiet than the default. It only shows the -successful/failed dependencies to the output. - -=item -l, --local-lib - -Sets the L<local::lib> compatible path to install modules to. You -don't need to set this if you already configure the shell environment -variables using L<local::lib>, but this can be used to override that -as well. - -=item -L, --local-lib-contained - -Same with C<--local-lib> but with L<--self-contained> set. All -non-core dependencies will be installed even if they're already -installed. - -For instance, - - cpanm -L extlib Plack - -would install Plack and all of its non-core dependencies into the -directory C<extlib>, which can be loaded from your application with: - - use local::lib '/path/to/extlib'; - -Note that this option does B<NOT> reliably work with perl installations -supplied by operating system vendors that strips standard modules from perl, -such as RHEL, Fedora and CentOS, B<UNLESS> you also install packages supplying -all the modules that have been stripped. For these systems you will probably -want to install the C<perl-core> meta-package which does just that. - -=item --self-contained - -When examining the dependencies, assume no non-core modules are -installed on the system. Handy if you want to bundle application -dependencies in one directory so you can distribute to other machines. - -=item --exclude-vendor - -Don't include modules installed under the 'vendor' paths when searching for -core modules when the C<--self-contained> flag is in effect. This restores -the behaviour from before version 1.7023 - -=item --mirror - -Specifies the base URL for the CPAN mirror to use, such as -C<http://cpan.cpantesters.org/> (you can omit the trailing slash). You -can specify multiple mirror URLs by repeating the command line option. - -You can use a local directory that has a CPAN mirror structure -(created by tools such as L<OrePAN> or L<Pinto>) by using a special -URL scheme C<file://>. If the given URL begins with `/` (without any -scheme), it is considered as a file scheme as well. - - cpanm --mirror file:///path/to/mirror - cpanm --mirror ~/minicpan # Because shell expands ~ to /home/user - -Defaults to C<http://www.cpan.org/>. - -=item --mirror-only - -Download the mirror's 02packages.details.txt.gz index file instead of -querying the CPAN Meta DB. This will also effectively opt out sending -your local perl versions to backend database servers such as CPAN Meta -DB and MetaCPAN. - -Select this option if you are using a local mirror of CPAN, such as -minicpan when you're offline, or your own CPAN index (a.k.a darkpan). - -=item --from, -M - - cpanm -M https://cpan.metacpan.org/ - cpanm --from https://cpan.metacpan.org/ - -Use the given mirror URL and its index as the I<only> source to search -and download modules from. - -It works similar to C<--mirror> and C<--mirror-only> combined, with a -small difference: unlike C<--mirror> which I<appends> the URL to the -list of mirrors, C<--from> (or C<-M> for short) uses the specified URL -as its I<only> source to download index and modules from. This makes -the option always override the default mirror, which might have been -set via global options such as the one set by C<PERL_CPANM_OPT> -environment variable. - -B<Tip:> It might be useful if you name these options with your shell -aliases, like: - - alias minicpanm='cpanm --from ~/minicpan' - alias darkpan='cpanm --from http://mycompany.example.com/DPAN' - -=item --mirror-index - -B<EXPERIMENTAL>: Specifies the file path to C<02packages.details.txt> -for module search index. - -=item --cpanmetadb - -B<EXPERIMENTAL>: Specifies an alternate URI for CPAN MetaDB index lookups. - -=item --metacpan - -Prefers MetaCPAN API over CPAN MetaDB. - -=item --cpanfile - -B<EXPERIMENTAL>: Specified an alternate path for cpanfile to search for, -when C<--installdeps> command is in use. Defaults to C<cpanfile>. - -=item --prompt - -Prompts when a test fails so that you can skip, force install, retry -or look in the shell to see what's going wrong. It also prompts when -one of the dependency failed if you want to proceed the installation. - -Defaults to false, and you can say C<--no-prompt> to override if it's -set in the default options in C<PERL_CPANM_OPT>. - -=item --dev - -B<EXPERIMENTAL>: search for a newer developer release as well. Defaults to false. - -=item --reinstall - -cpanm, when given a module name in the command line (i.e. C<cpanm -Plack>), checks the locally installed version first and skips if it is -already installed. This option makes it skip the check, so: - - cpanm --reinstall Plack - -would reinstall L<Plack> even if your locally installed version is -latest, or even newer (which would happen if you install a developer -release from version control repositories). - -Defaults to false. - -=item --interactive - -Makes the configuration (such as C<Makefile.PL> and C<Build.PL>) -interactive, so you can answer questions in the distribution that -requires custom configuration or Task:: distributions. - -Defaults to false, and you can say C<--no-interactive> to override -when it's set in the default options in C<PERL_CPANM_OPT>. - -=item --pp, --pureperl - -Prefer Pure perl build of modules by setting C<PUREPERL_ONLY=1> for -MakeMaker and C<--pureperl-only> for Build.PL based -distributions. Note that not all of the CPAN modules support this -convention yet. - -=item --with-recommends, --with-suggests - -B<EXPERIMENTAL>: Installs dependencies declared as C<recommends> and -C<suggests> respectively, per META spec. When these dependencies fail -to install, cpanm continues the installation, since they're just -recommendation/suggestion. - -Enabling this could potentially make a circular dependency for a few -modules on CPAN, when C<recommends> adds a module that C<recommends> -back the module in return. - -There's also C<--without-recommend> and C<--without-suggests> to -override the default decision made earlier in C<PERL_CPANM_OPT>. - -Defaults to false for both. - -=item --with-develop - -B<EXPERIMENTAL>: Installs develop phase dependencies in META files or -C<cpanfile> when used with C<--installdeps>. Defaults to false. - -=item --with-configure - -B<EXPERIMENTAL>: Installs configure phase dependencies in C<cpanfile> -when used with C<--installdeps>. Defaults to false. - -=item --with-feature, --without-feature, --with-all-features - -B<EXPERIMENTAL>: Specifies the feature to enable, if a module supports -optional features per META spec 2.0. - - cpanm --with-feature=opt_csv Spreadsheet::Read - -the features can also be interactively chosen when C<--interactive> -option is enabled. - -C<--with-all-features> enables all the optional features, and -C<--without-feature> can select a feature to disable. - -=item --configure-timeout, --build-timeout, --test-timeout - -Specify the timeout length (in seconds) to wait for the configure, -build and test process. Current default values are: 60 for configure, -3600 for build and 1800 for test. - -=item --configure-args, --build-args, --test-args, --install-args - -B<EXPERIMENTAL>: Pass arguments for configure/build/test/install -commands respectively, for a given module to install. - - cpanm DBD::mysql --configure-args="--cflags=... --libs=..." - -The argument is only enabled for the module passed as a command line -argument, not dependencies. - -=item --scandeps - -B<DEPRECATED>: Scans the depencencies of given modules and output the -tree in a text format. (See C<--format> below for more options) - -Because this command doesn't actually install any distributions, it -will be useful that by typing: - - cpanm --scandeps Catalyst::Runtime - -you can make sure what modules will be installed. - -This command takes into account which modules you already have -installed in your system. If you want to see what modules will be -installed against a vanilla perl installation, you might want to -combine it with C<-L> option. - -=item --format - -B<DEPRECATED>: Determines what format to display the scanned -dependency tree. Available options are C<tree>, C<json>, C<yaml> and -C<dists>. - -=over 8 - -=item tree - -Displays the tree in a plain text format. This is the default value. - -=item json, yaml - -Outputs the tree in a JSON or YAML format. L<JSON> and L<YAML> modules -need to be installed respectively. The output tree is represented as a -recursive tuple of: - - [ distribution, dependencies ] - -and the container is an array containing the root elements. Note that -there may be multiple root nodes, since you can give multiple modules -to the C<--scandeps> command. - -=item dists - -C<dists> is a special output format, where it prints the distribution -filename in the I<depth first order> after the dependency resolution, -like: - - GAAS/MIME-Base64-3.13.tar.gz - GAAS/URI-1.58.tar.gz - PETDANCE/HTML-Tagset-3.20.tar.gz - GAAS/HTML-Parser-3.68.tar.gz - GAAS/libwww-perl-5.837.tar.gz - -which means you can install these distributions in this order without -extra dependencies. When combined with C<-L> option, it will be useful -to replay installations on other machines. - -=back - -=item --save-dists - -Specifies the optional directory path to copy downloaded tarballs in -the CPAN mirror compatible directory structure -i.e. I<authors/id/A/AU/AUTHORS/Foo-Bar-version.tar.gz> - -If the distro tarball did not come from CPAN, for example from a local -file or from GitHub, then it will be saved under -I<vendor/Foo-Bar-version.tar.gz>. - -=item --uninst-shadows - -Uninstalls the shadow files of the distribution that you're -installing. This eliminates the confusion if you're trying to install -core (dual-life) modules from CPAN against perl 5.10 or older, or -modules that used to be XS-based but switched to pure perl at some -version. - -If you run cpanm as root and use C<INSTALL_BASE> or equivalent to -specify custom installation path, you SHOULD disable this option so -you won't accidentally uninstall dual-life modules from the core -include path. - -Defaults to true if your perl version is smaller than 5.12, and you -can disable that with C<--no-uninst-shadows>. - -B<NOTE>: Since version 1.3000 this flag is turned off by default for -perl newer than 5.12, since with 5.12 @INC contains site_perl directory -I<before> the perl core library path, and uninstalling shadows is not -necessary anymore and does more harm by deleting files from the core -library path. - -=item --uninstall, -U - -Uninstalls a module from the library path. It finds a packlist for -given modules, and removes all the files included in the same -distribution. - -If you enable local::lib, it only removes files from the local::lib -directory. - -If you try to uninstall a module in C<perl> directory (i.e. core -module), an error will be thrown. - -A dialog will be prompted to confirm the files to be deleted. If you pass -C<-f> option as well, the dialog will be skipped and uninstallation -will be forced. - -=item --cascade-search - -B<EXPERIMENTAL>: Specifies whether to cascade search when you specify -multiple mirrors and a mirror doesn't have a module or has a lower -version of the module than requested. Defaults to false. - -=item --skip-installed - -Specifies whether a module given in the command line is skipped if its latest -version is already installed. Defaults to true. - -B<NOTE>: The C<PERL5LIB> environment variable have to be correctly set -for this to work with modules installed using L<local::lib>, unless -you always use the C<-l> option. - -=item --skip-satisfied - -B<EXPERIMENTAL>: Specifies whether a module (and version) given in the -command line is skipped if it's already installed. - -If you run: - - cpanm --skip-satisfied CGI DBI~1.2 - -cpanm won't install them if you already have CGI (for whatever -versions) or have DBI with version higher than 1.2. It is similar to -C<--skip-installed> but while C<--skip-installed> checks if the -I<latest> version of CPAN is installed, C<--skip-satisfied> checks if -a requested version (or not, which means any version) is installed. - -Defaults to false. - -=item --verify - -Verify the integrity of distribution files retrieved from PAUSE using -CHECKSUMS and SIGNATURES (if found). Defaults to false. - -=item --report-perl-version - -Whether it reports the locally installed perl version to the various -web server as part of User-Agent. Defaults to true unless CI related -environment variables such as C<TRAVIS>, C<CI> or C<AUTOMATED_TESTING> -is enabled. You can disable it by using C<--no-report-perl-version>. - -=item --auto-cleanup - -Specifies the number of days in which cpanm's work directories -expire. Defaults to 7, which means old work directories will be -cleaned up in one week. - -You can set the value to C<0> to make cpan never cleanup those -directories. - -=item --man-pages - -Generates man pages for executables (man1) and libraries (man3). - -Defaults to true (man pages generated) unless C<-L|--local-lib-contained> -option is supplied in which case it's set to false. You can disable -it with C<--no-man-pages>. - -=item --lwp - -Uses L<LWP> module to download stuff over HTTP. Defaults to true, and -you can say C<--no-lwp> to disable using LWP, when you want to upgrade -LWP from CPAN on some broken perl systems. - -=item --wget - -Uses GNU Wget (if available) to download stuff. Defaults to true, and -you can say C<--no-wget> to disable using Wget (versions of Wget older -than 1.9 don't support the C<--retry-connrefused> option used by cpanm). - -=item --curl - -Uses cURL (if available) to download stuff. Defaults to true, and -you can say C<--no-curl> to disable using cURL. - -Normally with C<--lwp>, C<--wget> and C<--curl> options set to true -(which is the default) cpanm tries L<LWP>, Wget, cURL and L<HTTP::Tiny> -(in that order) and uses the first one available. - -=back - -=head1 ENVIRONMENT VARIABLES - -=over 4 - -=item PERL_CPANM_HOME - -The directory cpanm should use to store downloads and build and test -modules. Defaults to the C<.cpanm> directory in your user's home -directory. - -=item PERL_CPANM_OPT - -If set, adds a set of default options to every cpanm command. These -options come first, and so are overridden by command-line options. - -=back - -=head1 SEE ALSO - -L<App::cpanminus> - -=head1 COPYRIGHT - -Copyright 2010- Tatsuhiko Miyagawa. - -=head1 AUTHOR - -Tatsuhiko Miyagawa - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/cpanm.bat b/software/Slic3r-1.3.0.64bit/local-lib/bin/cpanm.bat deleted file mode 100644 index 1fd0f0e7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/cpanm.bat +++ /dev/null @@ -1,1091 +0,0 @@ -@rem = '--*-Perl-*-- -@echo off -if "%OS%" == "Windows_NT" goto WinNT -perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -goto endofperl -:WinNT -perl -x -S %0 %* -if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl -if %errorlevel% == 9009 echo You do not have Perl in your PATH. -if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul -goto endofperl -@rem '; -#!perl -#line 15 -# -# This is a pre-compiled source code for the cpanm (cpanminus) program. -# For more details about how to install cpanm, go to the following URL: -# -# https://github.com/miyagawa/cpanminus -# -# Quickstart: Run the following command and it will install itself for -# you. You might want to run it as a root with sudo if you want to install -# to places like /usr/local/bin. -# -# % curl -L https://cpanmin.us | perl - App::cpanminus -# -# If you don't have curl but wget, replace `curl -L` with `wget -O -`. - -# DO NOT EDIT -- this is an auto generated file - -# This chunk of stuff was generated by App::FatPacker. To find the original -# file's code, look for the end of this BEGIN block or the string 'FATPACK' -BEGIN { -my %fatpacked; - -$fatpacked{"App/cpanminus.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'APP_CPANMINUS'; - package App::cpanminus;our$VERSION="1.7044";1; -APP_CPANMINUS - -$fatpacked{"App/cpanminus/Dependency.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'APP_CPANMINUS_DEPENDENCY'; - package App::cpanminus::Dependency;use strict;use CPAN::Meta::Requirements;sub from_prereqs {my($class,$prereqs,$phases,$types)=@_;my@deps;for my$type (@$types){push@deps,$class->from_versions($prereqs->merged_requirements($phases,[$type])->as_string_hash,$type,)}return@deps}sub from_versions {my($class,$versions,$type)=@_;my@deps;while (my($module,$version)=each %$versions){push@deps,$class->new($module,$version,$type)}@deps}sub merge_with {my($self,$requirements)=@_;$self->{original_version}=$self->version;eval {$requirements->add_string_requirement($self->module,$self->version)};if ($@ =~ /illegal requirements/){warn sprintf("Can't merge requirements for %s: '%s' and '%s'",$self->module,$self->version,$requirements->requirements_for_module($self->module))}$self->{version}=$requirements->requirements_for_module($self->module)}sub new {my($class,$module,$version,$type)=@_;bless {module=>$module,version=>$version,type=>$type || 'requires',},$class}sub module {$_[0]->{module}}sub version {$_[0]->{version}}sub type {$_[0]->{type}}sub requires_version {my$self=shift;if (defined$self->{original_version}){return$self->{original_version}}$self->version}sub is_requirement {$_[0]->{type}eq 'requires'}1; -APP_CPANMINUS_DEPENDENCY - -$fatpacked{"App/cpanminus/script.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'APP_CPANMINUS_SCRIPT'; - package App::cpanminus::script;use strict;use Config;use Cwd ();use App::cpanminus;use App::cpanminus::Dependency;use File::Basename ();use File::Find ();use File::Path ();use File::Spec ();use File::Copy ();use File::Temp ();use Getopt::Long ();use Symbol ();use String::ShellQuote ();use version ();use constant WIN32=>$^O eq 'MSWin32';use constant BAD_TAR=>($^O eq 'solaris' || $^O eq 'hpux');use constant CAN_SYMLINK=>eval {symlink("","");1};our$VERSION=$App::cpanminus::VERSION;if ($INC{"App/FatPacker/Trace.pm"}){require version::vpp}my$quote=WIN32 ? q/"/ : q/'/;sub agent {my$self=shift;my$agent="cpanminus/$VERSION";$agent .= " perl/$]" if$self->{report_perl_version};$agent}sub determine_home {my$class=shift;my$homedir=$ENV{HOME}|| eval {require File::HomeDir;File::HomeDir->my_home}|| join('',@ENV{qw(HOMEDRIVE HOMEPATH)});if (WIN32){require Win32;$homedir=Win32::GetShortPathName($homedir)}return "$homedir/.cpanm"}sub new {my$class=shift;bless {home=>$class->determine_home,cmd=>'install',seen=>{},notest=>undef,test_only=>undef,installdeps=>undef,force=>undef,sudo=>undef,make=>undef,verbose=>undef,quiet=>undef,interactive=>undef,log=>undef,mirrors=>[],mirror_only=>undef,mirror_index=>undef,cpanmetadb=>"http://cpanmetadb.plackperl.org/v1.0/",perl=>$^X,argv=>[],local_lib=>undef,self_contained=>undef,exclude_vendor=>undef,prompt_timeout=>0,prompt=>undef,configure_timeout=>60,build_timeout=>3600,test_timeout=>1800,try_lwp=>1,try_wget=>1,try_curl=>1,uninstall_shadows=>($] < 5.012),skip_installed=>1,skip_satisfied=>0,auto_cleanup=>7,pod2man=>1,installed_dists=>0,install_types=>['requires'],with_develop=>0,with_configure=>0,showdeps=>0,scandeps=>0,scandeps_tree=>[],format=>'tree',save_dists=>undef,skip_configure=>0,verify=>0,report_perl_version=>!$class->maybe_ci,build_args=>{},features=>{},pure_perl=>0,cpanfile_path=>'cpanfile',@_,},$class}sub env {my($self,$key)=@_;$ENV{"PERL_CPANM_" .$key}}sub maybe_ci {my$class=shift;grep$ENV{$_},qw(TRAVIS CI AUTOMATED_TESTING AUTHOR_TESTING)}sub install_type_handlers {my$self=shift;my@handlers;for my$type (qw(recommends suggests)){push@handlers,"with-$type"=>sub {my%uniq;$self->{install_types}=[grep!$uniq{$_}++,@{$self->{install_types}},$type ]};push@handlers,"without-$type"=>sub {$self->{install_types}=[grep $_ ne $type,@{$self->{install_types}}]}}@handlers}sub build_args_handlers {my$self=shift;my@handlers;for my$phase (qw(configure build test install)){push@handlers,"$phase-args=s"=>\($self->{build_args}{$phase})}@handlers}sub parse_options {my$self=shift;local@ARGV=@{$self->{argv}};push@ARGV,grep length,split /\s+/,$self->env('OPT');push@ARGV,@_;Getopt::Long::Configure("bundling");Getopt::Long::GetOptions('f|force'=>sub {$self->{skip_installed}=0;$self->{force}=1},'n|notest!'=>\$self->{notest},'test-only'=>sub {$self->{notest}=0;$self->{skip_installed}=0;$self->{test_only}=1},'S|sudo!'=>\$self->{sudo},'v|verbose'=>\$self->{verbose},'verify!'=>\$self->{verify},'q|quiet!'=>\$self->{quiet},'h|help'=>sub {$self->{action}='show_help'},'V|version'=>sub {$self->{action}='show_version'},'perl=s'=>sub {$self->diag("--perl is deprecated since it's known to be fragile in figuring out dependencies. Run `$_[1] -S cpanm` instead.\n",1);$self->{perl}=$_[1]},'l|local-lib=s'=>sub {$self->{local_lib}=$self->maybe_abs($_[1])},'L|local-lib-contained=s'=>sub {$self->{local_lib}=$self->maybe_abs($_[1]);$self->{self_contained}=1;$self->{pod2man}=undef},'self-contained!'=>\$self->{self_contained},'exclude-vendor!'=>\$self->{exclude_vendor},'mirror=s@'=>$self->{mirrors},'mirror-only!'=>\$self->{mirror_only},'mirror-index=s'=>sub {$self->{mirror_index}=$self->maybe_abs($_[1])},'M|from=s'=>sub {$self->{mirrors}=[$_[1]];$self->{mirror_only}=1},'cpanmetadb=s'=>\$self->{cpanmetadb},'cascade-search!'=>\$self->{cascade_search},'prompt!'=>\$self->{prompt},'installdeps'=>\$self->{installdeps},'skip-installed!'=>\$self->{skip_installed},'skip-satisfied!'=>\$self->{skip_satisfied},'reinstall'=>sub {$self->{skip_installed}=0},'interactive!'=>\$self->{interactive},'i|install'=>sub {$self->{cmd}='install'},'info'=>sub {$self->{cmd}='info'},'look'=>sub {$self->{cmd}='look';$self->{skip_installed}=0},'U|uninstall'=>sub {$self->{cmd}='uninstall'},'self-upgrade'=>sub {$self->{action}='self_upgrade'},'uninst-shadows!'=>\$self->{uninstall_shadows},'lwp!'=>\$self->{try_lwp},'wget!'=>\$self->{try_wget},'curl!'=>\$self->{try_curl},'auto-cleanup=s'=>\$self->{auto_cleanup},'man-pages!'=>\$self->{pod2man},'scandeps'=>\$self->{scandeps},'showdeps'=>sub {$self->{showdeps}=1;$self->{skip_installed}=0},'format=s'=>\$self->{format},'save-dists=s'=>sub {$self->{save_dists}=$self->maybe_abs($_[1])},'skip-configure!'=>\$self->{skip_configure},'dev!'=>\$self->{dev_release},'metacpan!'=>\$self->{metacpan},'report-perl-version!'=>\$self->{report_perl_version},'configure-timeout=i'=>\$self->{configure_timeout},'build-timeout=i'=>\$self->{build_timeout},'test-timeout=i'=>\$self->{test_timeout},'with-develop'=>\$self->{with_develop},'without-develop'=>sub {$self->{with_develop}=0},'with-configure'=>\$self->{with_configure},'without-configure'=>sub {$self->{with_configure}=0},'with-feature=s'=>sub {$self->{features}{$_[1]}=1},'without-feature=s'=>sub {$self->{features}{$_[1]}=0},'with-all-features'=>sub {$self->{features}{__all}=1},'pp|pureperl!'=>\$self->{pure_perl},"cpanfile=s"=>\$self->{cpanfile_path},$self->install_type_handlers,$self->build_args_handlers,);if (!@ARGV && $0 ne '-' &&!-t STDIN){push@ARGV,$self->load_argv_from_fh(\*STDIN);$self->{load_from_stdin}=1}$self->{argv}=\@ARGV}sub check_upgrade {my$self=shift;my$install_base=$ENV{PERL_LOCAL_LIB_ROOT}? $self->local_lib_target($ENV{PERL_LOCAL_LIB_ROOT}): $Config{installsitebin};if ($0 eq '-'){return}elsif ($0 !~ /^$install_base/){if ($0 =~ m!perlbrew/bin!){die <<DIE}else {die <<DIE}}}sub check_libs {my$self=shift;return if$self->{_checked}++;$self->bootstrap_local_lib}sub setup_verify {my$self=shift;my$has_modules=eval {require Module::Signature;require Digest::SHA;1};$self->{cpansign}=$self->which('cpansign');unless ($has_modules && $self->{cpansign}){warn "WARNING: Module::Signature and Digest::SHA is required for distribution verifications.\n";$self->{verify}=0}}sub parse_module_args {my($self,$module)=@_;$module =~ s/^([A-Za-z0-9_:]+)@([v\d\._]+)$/$1~== $2/;if ($module =~ /\~[v\d\._,\!<>= ]+$/){return split /\~/,$module,2}else {return$module,undef}}sub doit {my$self=shift;my$code;eval {$code=($self->_doit==0)};if (my$e=$@){warn$e;$code=1}return$code}sub _doit {my$self=shift;$self->setup_home;$self->init_tools;$self->setup_verify if$self->{verify};if (my$action=$self->{action}){$self->$action()and return 1}return$self->show_help(1)unless @{$self->{argv}}or $self->{load_from_stdin};$self->configure_mirrors;my$cwd=Cwd::cwd;my@fail;for my$module (@{$self->{argv}}){if ($module =~ s/\.pm$//i){my ($volume,$dirs,$file)=File::Spec->splitpath($module);$module=join '::',grep {$_}File::Spec->splitdir($dirs),$file}($module,my$version)=$self->parse_module_args($module);$self->chdir($cwd);if ($self->{cmd}eq 'uninstall'){$self->uninstall_module($module)or push@fail,$module}else {$self->install_module($module,0,$version)or push@fail,$module}}if ($self->{base}&& $self->{auto_cleanup}){$self->cleanup_workdirs}if ($self->{installed_dists}){my$dists=$self->{installed_dists}> 1 ? "distributions" : "distribution";$self->diag("$self->{installed_dists} $dists installed\n",1)}if ($self->{scandeps}){$self->dump_scandeps()}$self->chdir($cwd);return!@fail}sub setup_home {my$self=shift;$self->{home}=$self->env('HOME')if$self->env('HOME');unless (_writable($self->{home})){die "Can't write to cpanm home '$self->{home}': You should fix it with chown/chmod first.\n"}$self->{base}="$self->{home}/work/" .time .".$$";File::Path::mkpath([$self->{base}],0,0777);$self->{log}=File::Spec->catfile($self->{base},"build.log");my$final_log="$self->{home}/build.log";{open my$out,">$self->{log}" or die "$self->{log}: $!"}if (CAN_SYMLINK){my$build_link="$self->{home}/latest-build";unlink$build_link;symlink$self->{base},$build_link;unlink$final_log;symlink$self->{log},$final_log}else {my$log=$self->{log};my$home=$self->{home};$self->{at_exit}=sub {my$self=shift;my$temp_log="$home/build.log." .time .".$$";File::Copy::copy($log,$temp_log)&& unlink($final_log);rename($temp_log,$final_log)}}$self->chat("cpanm (App::cpanminus) $VERSION on perl $] built for $Config{archname}\n" ."Work directory is $self->{base}\n")}sub package_index_for {my ($self,$mirror)=@_;return$self->source_for($mirror)."/02packages.details.txt"}sub generate_mirror_index {my ($self,$mirror)=@_;my$file=$self->package_index_for($mirror);my$gz_file=$file .'.gz';my$index_mtime=(stat$gz_file)[9];unless (-e $file && (stat$file)[9]>= $index_mtime){$self->chat("Uncompressing index file...\n");if (eval {require Compress::Zlib}){my$gz=Compress::Zlib::gzopen($gz_file,"rb")or do {$self->diag_fail("$Compress::Zlib::gzerrno opening compressed index");return};open my$fh,'>',$file or do {$self->diag_fail("$! opening uncompressed index for write");return};my$buffer;while (my$status=$gz->gzread($buffer)){if ($status < 0){$self->diag_fail($gz->gzerror ." reading compressed index");return}print$fh $buffer}}else {if (system("gunzip -c $gz_file > $file")){$self->diag_fail("Cannot uncompress -- please install gunzip or Compress::Zlib");return}}utime$index_mtime,$index_mtime,$file}return 1}sub search_mirror_index {my ($self,$mirror,$module,$version)=@_;$self->search_mirror_index_file($self->package_index_for($mirror),$module,$version)}sub search_mirror_index_file {my($self,$file,$module,$version)=@_;open my$fh,'<',$file or return;my$found;while (<$fh>){if (m!^\Q$module\E\s+([\w\.]+)\s+(\S*)!m){$found=$self->cpan_module($module,$2,$1);last}}return$found unless$self->{cascade_search};if ($found){if ($self->satisfy_version($module,$found->{module_version},$version)){return$found}else {$self->chat("Found $module $found->{module_version} which doesn't satisfy $version.\n")}}return}sub with_version_range {my($self,$version)=@_;defined($version)&& $version =~ /(?:<|!=|==)/}sub encode_json {my($self,$data)=@_;require JSON::PP;my$json=JSON::PP::encode_json($data);$self->uri_escape($json)}sub decode_json {my($self,$json)=@_;require JSON::PP;JSON::PP::decode_json($json)}sub uri_escape {my($self,$fragment)=@_;$fragment =~ s/([^A-Za-z0-9\-\._~])/uc sprintf("%%%02X", ord($1))/eg;$fragment}sub uri_params {my($self,@params)=@_;my@param_strings;while (my$key=shift@params){my$value=shift@params;push@param_strings,join '=',map$self->uri_escape($_),$key,$value}return join '&',@param_strings}sub numify_ver {my($self,$ver)=@_;eval version->new($ver)->numify}sub search_metacpan {my($self,$module,$version,$dev_release)=@_;my$metacpan_uri='http://fastapi.metacpan.org/v1/download_url/';my$url=$metacpan_uri .$module;my$query=$self->uri_params(($version ? (version=>$version): ()),($dev_release ? (dev=>1): ()),);$url .= '?' .$query if length$query;my$dist_json=$self->get($url);my$dist_meta=eval {$self->decode_json($dist_json)};if ($dist_meta && $dist_meta->{download_url}){(my$distfile=$dist_meta->{download_url})=~ s!.+/authors/id/!!;local$self->{mirrors}=$self->{mirrors};$self->{mirrors}=['http://cpan.metacpan.org' ];return$self->cpan_module($module,$distfile,$dist_meta->{version})}$self->chat("! Could not find a release matching $module".($version?" ($version)":'')." on MetaCPAN.\n");return}sub search_database {my($self,$module,$version)=@_;my$found;if ($self->{dev_release}or $self->{metacpan}){$found=$self->search_metacpan($module,$version,$self->{dev_release})and return$found;$found=$self->search_cpanmetadb($module,$version,$self->{dev_release})and return$found}else {$found=$self->search_cpanmetadb($module,$version)and return$found;$found=$self->search_metacpan($module,$version)and return$found}}sub search_cpanmetadb {my($self,$module,$version,$dev_release)=@_;$self->chat("Searching $module ($version) on cpanmetadb ...\n");if ($self->with_version_range($version)){return$self->search_cpanmetadb_history($module,$version,$dev_release)}else {return$self->search_cpanmetadb_package($module,$version,$dev_release)}}sub search_cpanmetadb_package {my($self,$module,$version,$dev_release)=@_;require CPAN::Meta::YAML;(my$uri=$self->{cpanmetadb})=~ s{/?$}{/package/$module};my$yaml=$self->get($uri);my$meta=eval {CPAN::Meta::YAML::Load($yaml)};if ($meta && $meta->{distfile}){return$self->cpan_module($module,$meta->{distfile},$meta->{version})}$self->diag_fail("Finding $module on cpanmetadb failed.");return}sub search_cpanmetadb_history {my($self,$module,$version)=@_;(my$uri=$self->{cpanmetadb})=~ s{/?$}{/history/$module};my$content=$self->get($uri)or return;my@found;for my$line (split /\r?\n/,$content){if ($line =~ /^$module\s+(\S+)\s+(\S+)$/){push@found,{version=>$1,version_obj=>version::->parse($1),distfile=>$2,}}}return unless@found;$found[-1]->{latest}=1;my$match;for my$try (sort {$b->{version_obj}cmp $a->{version_obj}}@found){if ($self->satisfy_version($module,$try->{version_obj},$version)){local$self->{mirrors}=$self->{mirrors};unshift @{$self->{mirrors}},'http://backpan.perl.org' unless$try->{latest};return$self->cpan_module($module,$try->{distfile},$try->{version})}}$self->diag_fail("Finding $module ($version) on cpanmetadb failed.");return}sub search_module {my($self,$module,$version)=@_;if ($self->{mirror_index}){$self->mask_output(chat=>"Searching $module on mirror index $self->{mirror_index} ...\n");my$pkg=$self->search_mirror_index_file($self->{mirror_index},$module,$version);return$pkg if$pkg;unless ($self->{cascade_search}){$self->mask_output(diag_fail=>"Finding $module ($version) on mirror index $self->{mirror_index} failed.");return}}unless ($self->{mirror_only}){my$found=$self->search_database($module,$version);return$found if$found}MIRROR: for my$mirror (@{$self->{mirrors}}){$self->mask_output(chat=>"Searching $module on mirror $mirror ...\n");my$name='02packages.details.txt.gz';my$uri="$mirror/modules/$name";my$gz_file=$self->package_index_for($mirror).'.gz';unless ($self->{pkgs}{$uri}){$self->mask_output(chat=>"Downloading index file $uri ...\n");$self->mirror($uri,$gz_file);$self->generate_mirror_index($mirror)or next MIRROR;$self->{pkgs}{$uri}="!!retrieved!!"}my$pkg=$self->search_mirror_index($mirror,$module,$version);return$pkg if$pkg;$self->mask_output(diag_fail=>"Finding $module ($version) on mirror $mirror failed.")}return}sub source_for {my($self,$mirror)=@_;$mirror =~ s/[^\w\.\-]+/%/g;my$dir="$self->{home}/sources/$mirror";File::Path::mkpath([$dir ],0,0777);return$dir}sub load_argv_from_fh {my($self,$fh)=@_;my@argv;while(defined(my$line=<$fh>)){chomp$line;$line =~ s/#.+$//;$line =~ s/^\s+//;$line =~ s/\s+$//;push@argv,split ' ',$line if$line}return@argv}sub show_version {my$self=shift;print "cpanm (App::cpanminus) version $VERSION ($0)\n";print "perl version $] ($^X)\n\n";print " \%Config:\n";for my$key (qw(archname installsitelib installsitebin installman1dir installman3dir sitearchexp sitelibexp vendorarch vendorlibexp archlibexp privlibexp)){print " $key=$Config{$key}\n" if$Config{$key}}print " \%ENV:\n";for my$key (grep /^PERL/,sort keys%ENV){print " $key=$ENV{$key}\n"}print " \@INC:\n";for my$inc (@INC){print " $inc\n" unless ref($inc)eq 'CODE'}return 1}sub show_help {my$self=shift;if ($_[0]){print <<USAGE;return}print <<HELP;return 1}sub _writable {my$dir=shift;my@dir=File::Spec->splitdir($dir);while (@dir){$dir=File::Spec->catdir(@dir);if (-e $dir){return -w _}pop@dir}return}sub maybe_abs {my($self,$lib)=@_;if ($lib eq '_' or $lib =~ /^~/ or File::Spec->file_name_is_absolute($lib)){return$lib}else {return File::Spec->canonpath(File::Spec->catdir(Cwd::cwd(),$lib))}}sub local_lib_target {my($self,$root)=@_;(grep {$_ ne ''}split /\Q$Config{path_sep}/,$root)[0]}sub bootstrap_local_lib {my$self=shift;if ($self->{local_lib}){return$self->setup_local_lib($self->{local_lib})}if ($ENV{PERL_LOCAL_LIB_ROOT}&& $ENV{PERL_MM_OPT}){return$self->setup_local_lib($self->local_lib_target($ENV{PERL_LOCAL_LIB_ROOT}),1)}return if$self->{sudo}or (_writable($Config{installsitelib})and _writable($Config{installsitebin}));if ($ENV{PERL_MM_OPT}and ($ENV{MODULEBUILDRC}or $ENV{PERL_MB_OPT})){return}$self->setup_local_lib;$self->diag(<<DIAG,1);sleep 2}sub upgrade_toolchain {my($self,$config_deps)=@_;my%deps=map {$_->module=>$_}@$config_deps;my$reqs=CPAN::Meta::Requirements->from_string_hash({'Module::Build'=>'0.38','ExtUtils::MakeMaker'=>'6.58','ExtUtils::Install'=>'1.46',});if ($deps{"ExtUtils::MakeMaker"}){$deps{"ExtUtils::MakeMaker"}->merge_with($reqs)}elsif ($deps{"Module::Build"}){$deps{"Module::Build"}->merge_with($reqs);$deps{"ExtUtils::Install"}||= App::cpanminus::Dependency->new("ExtUtils::Install",0,'configure');$deps{"ExtUtils::Install"}->merge_with($reqs)}@$config_deps=values%deps}sub _core_only_inc {my($self,$base)=@_;require local::lib;(local::lib->resolve_path(local::lib->install_base_arch_path($base)),local::lib->resolve_path(local::lib->install_base_perl_path($base)),(!$self->{exclude_vendor}? grep {$_}@Config{qw(vendorarch vendorlibexp)}: ()),@Config{qw(archlibexp privlibexp)},)}sub _diff {my($self,$old,$new)=@_;my@diff;my%old=map {$_=>1}@$old;for my$n (@$new){push@diff,$n unless exists$old{$n}}@diff}sub _setup_local_lib_env {my($self,$base)=@_;$self->diag(<<WARN,1)if$base =~ /\s/;local$SIG{__WARN__}=sub {};local::lib->setup_env_hash_for($base,0)}sub setup_local_lib {my($self,$base,$no_env)=@_;$base=undef if$base eq '_';require local::lib;{local $0='cpanm';$base ||= "~/perl5";$base=local::lib->resolve_path($base);if ($self->{self_contained}){my@inc=$self->_core_only_inc($base);$self->{search_inc}=[@inc ]}else {$self->{search_inc}=[local::lib->install_base_arch_path($base),local::lib->install_base_perl_path($base),@INC,]}$self->_setup_local_lib_env($base)unless$no_env;$self->{local_lib}=$base}}sub prompt_bool {my($self,$mess,$def)=@_;my$val=$self->prompt($mess,$def);return lc$val eq 'y'}sub prompt {my($self,$mess,$def)=@_;my$isa_tty=-t STDIN && (-t STDOUT ||!(-f STDOUT || -c STDOUT));my$dispdef=defined$def ? "[$def] " : " ";$def=defined$def ? $def : "";if (!$self->{prompt}|| (!$isa_tty && eof STDIN)){return$def}local $|=1;local $\;my$ans;eval {local$SIG{ALRM}=sub {undef$ans;die "alarm\n"};print STDOUT "$mess $dispdef";alarm$self->{prompt_timeout}if$self->{prompt_timeout};$ans=<STDIN>;alarm 0};if (defined$ans){chomp$ans}else {print STDOUT "\n"}return (!defined$ans || $ans eq '')? $def : $ans}sub diag_ok {my($self,$msg)=@_;chomp$msg;$msg ||= "OK";if ($self->{in_progress}){$self->_diag("$msg\n");$self->{in_progress}=0}$self->log("-> $msg\n")}sub diag_fail {my($self,$msg,$always)=@_;chomp$msg;if ($self->{in_progress}){$self->_diag("FAIL\n");$self->{in_progress}=0}if ($msg){$self->_diag("! $msg\n",$always,1);$self->log("-> FAIL $msg\n")}}sub diag_progress {my($self,$msg)=@_;chomp$msg;$self->{in_progress}=1;$self->_diag("$msg ... ");$self->log("$msg\n")}sub _diag {my($self,$msg,$always,$error)=@_;my$fh=$error ? *STDERR : *STDOUT;print {$fh}$msg if$always or $self->{verbose}or!$self->{quiet}}sub diag {my($self,$msg,$always)=@_;$self->_diag($msg,$always);$self->log($msg)}sub chat {my$self=shift;print STDERR @_ if$self->{verbose};$self->log(@_)}sub mask_output {my$self=shift;my$method=shift;$self->$method($self->mask_uri_passwords(@_))}sub log {my$self=shift;open my$out,">>$self->{log}";print$out @_}sub run {my($self,$cmd)=@_;if (WIN32){$cmd=$self->shell_quote(@$cmd)if ref$cmd eq 'ARRAY';unless ($self->{verbose}){$cmd .= " >> " .$self->shell_quote($self->{log})." 2>&1"}!system$cmd}else {my$pid=fork;if ($pid){waitpid$pid,0;return!$?}else {$self->run_exec($cmd)}}}sub run_exec {my($self,$cmd)=@_;if (ref$cmd eq 'ARRAY'){unless ($self->{verbose}){open my$logfh,">>",$self->{log};open STDERR,'>&',$logfh;open STDOUT,'>&',$logfh;close$logfh}exec @$cmd}else {unless ($self->{verbose}){$cmd .= " >> " .$self->shell_quote($self->{log})." 2>&1"}exec$cmd}}sub run_timeout {my($self,$cmd,$timeout)=@_;return$self->run($cmd)if WIN32 || $self->{verbose}||!$timeout;my$pid=fork;if ($pid){eval {local$SIG{ALRM}=sub {die "alarm\n"};alarm$timeout;waitpid$pid,0;alarm 0};if ($@ && $@ eq "alarm\n"){$self->diag_fail("Timed out (> ${timeout}s). Use --verbose to retry.");local$SIG{TERM}='IGNORE';kill TERM=>0;waitpid$pid,0;return}return!$?}elsif ($pid==0){$self->run_exec($cmd)}else {$self->chat("! fork failed: falling back to system()\n");$self->run($cmd)}}sub append_args {my($self,$cmd,$phase)=@_;if (my$args=$self->{build_args}{$phase}){$cmd=join ' ',$self->shell_quote(@$cmd),$args}$cmd}sub configure {my($self,$cmd,$depth)=@_;local$ENV{PERL5_CPAN_IS_RUNNING}=local$ENV{PERL5_CPANPLUS_IS_RUNNING}=$$;local$ENV{PERL5_CPANM_IS_RUNNING}=$$;my$use_default=!$self->{interactive};local$ENV{PERL_MM_USE_DEFAULT}=$use_default;local$ENV{PERL_MM_OPT}=$ENV{PERL_MM_OPT};local$ENV{PERL_MB_OPT}=$ENV{PERL_MB_OPT};unless ($self->{pod2man}){$ENV{PERL_MM_OPT}.= " INSTALLMAN1DIR=none INSTALLMAN3DIR=none";$ENV{PERL_MB_OPT}.= " --config installman1dir= --config installsiteman1dir= --config installman3dir= --config installsiteman3dir="}if ($self->{pure_perl}){$ENV{PERL_MM_OPT}.= " PUREPERL_ONLY=1";$ENV{PERL_MB_OPT}.= " --pureperl-only"}local$ENV{PERL_USE_UNSAFE_INC}=1 unless exists$ENV{PERL_USE_UNSAFE_INC};$cmd=$self->append_args($cmd,'configure')if$depth==0;local$self->{verbose}=$self->{verbose}|| $self->{interactive};$self->run_timeout($cmd,$self->{configure_timeout})}sub build {my($self,$cmd,$distname,$depth)=@_;local$ENV{PERL_MM_USE_DEFAULT}=!$self->{interactive};local$ENV{PERL_USE_UNSAFE_INC}=1 unless exists$ENV{PERL_USE_UNSAFE_INC};$cmd=$self->append_args($cmd,'build')if$depth==0;return 1 if$self->run_timeout($cmd,$self->{build_timeout});while (1){my$ans=lc$self->prompt("Building $distname failed.\nYou can s)kip, r)etry, e)xamine build log, or l)ook ?","s");return if$ans eq 's';return$self->build($cmd,$distname,$depth)if$ans eq 'r';$self->show_build_log if$ans eq 'e';$self->look if$ans eq 'l'}}sub test {my($self,$cmd,$distname,$depth)=@_;return 1 if$self->{notest};local$ENV{PERL_MM_USE_DEFAULT}=!$self->{interactive};local$ENV{NONINTERACTIVE_TESTING}=!$self->{interactive};$cmd=$self->append_args($cmd,'test')if$depth==0;local$ENV{PERL_USE_UNSAFE_INC}=1 unless exists$ENV{PERL_USE_UNSAFE_INC};return 1 if$self->run_timeout($cmd,$self->{test_timeout});if ($self->{force}){$self->diag_fail("Testing $distname failed but installing it anyway.");return 1}else {$self->diag_fail;while (1){my$ans=lc$self->prompt("Testing $distname failed.\nYou can s)kip, r)etry, f)orce install, e)xamine build log, or l)ook ?","s");return if$ans eq 's';return$self->test($cmd,$distname,$depth)if$ans eq 'r';return 1 if$ans eq 'f';$self->show_build_log if$ans eq 'e';$self->look if$ans eq 'l'}}}sub install {my($self,$cmd,$uninst_opts,$depth)=@_;if ($depth==0 && $self->{test_only}){return 1}local$ENV{PERL_USE_UNSAFE_INC}=1 unless exists$ENV{PERL_USE_UNSAFE_INC};if ($self->{sudo}){unshift @$cmd,"sudo"}if ($self->{uninstall_shadows}&&!$ENV{PERL_MM_OPT}){push @$cmd,@$uninst_opts}$cmd=$self->append_args($cmd,'install')if$depth==0;$self->run($cmd)}sub look {my$self=shift;my$shell=$ENV{SHELL};$shell ||= $ENV{COMSPEC}if WIN32;if ($shell){my$cwd=Cwd::cwd;$self->diag("Entering $cwd with $shell\n");system$shell}else {$self->diag_fail("You don't seem to have a SHELL :/")}}sub show_build_log {my$self=shift;my@pagers=($ENV{PAGER},(WIN32 ? (): ('less')),'more');my$pager;while (@pagers){$pager=shift@pagers;next unless$pager;$pager=$self->which($pager);next unless$pager;last}if ($pager){system("$pager < $self->{log}")}else {$self->diag_fail("You don't seem to have a PAGER :/")}}sub chdir {my$self=shift;Cwd::chdir(File::Spec->canonpath($_[0]))or die "$_[0]: $!"}sub configure_mirrors {my$self=shift;unless (@{$self->{mirrors}}){$self->{mirrors}=['http://www.cpan.org' ]}for (@{$self->{mirrors}}){s!^/!file:///!;s!/$!!}}sub self_upgrade {my$self=shift;$self->check_upgrade;$self->{argv}=['App::cpanminus' ];return}sub install_module {my($self,$module,$depth,$version)=@_;$self->check_libs;if ($self->{seen}{$module}++){$self->chat("Already tried $module. Skipping.\n");return 1}if ($self->{skip_satisfied}){my($ok,$local)=$self->check_module($module,$version || 0);if ($ok){$self->diag("You have $module ($local)\n",1);return 1}}my$dist=$self->resolve_name($module,$version);unless ($dist){my$what=$module .($version ? " ($version)" : "");$self->diag_fail("Couldn't find module or a distribution $what",1);return}if ($dist->{distvname}&& $self->{seen}{$dist->{distvname}}++){$self->chat("Already tried $dist->{distvname}. Skipping.\n");return 1}if ($self->{cmd}eq 'info'){print$self->format_dist($dist),"\n";return 1}$dist->{depth}=$depth;if ($dist->{module}){unless ($self->satisfy_version($dist->{module},$dist->{module_version},$version)){$self->diag("Found $dist->{module} $dist->{module_version} which doesn't satisfy $version.\n",1);return}my$cmp=$version ? "==" : "";my$requirement=$dist->{module_version}? "$cmp$dist->{module_version}" : 0;my($ok,$local)=$self->check_module($dist->{module},$requirement);if ($self->{skip_installed}&& $ok){$self->diag("$dist->{module} is up to date. ($local)\n",1);return 1}}if ($dist->{dist}eq 'perl'){$self->diag("skipping $dist->{pathname}\n");return 1}$self->diag("--> Working on $module\n");$dist->{dir}||= $self->fetch_module($dist);unless ($dist->{dir}){$self->diag_fail("Failed to fetch distribution $dist->{distvname}",1);return}$self->chat("Entering $dist->{dir}\n");$self->chdir($self->{base});$self->chdir($dist->{dir});if ($self->{cmd}eq 'look'){$self->look;return 1}return$self->build_stuff($module,$dist,$depth)}sub uninstall_search_path {my$self=shift;$self->{local_lib}? (local::lib->install_base_arch_path($self->{local_lib}),local::lib->install_base_perl_path($self->{local_lib})): @Config{qw(installsitearch installsitelib)}}sub uninstall_module {my ($self,$module)=@_;$self->check_libs;my@inc=$self->uninstall_search_path;my($metadata,$packlist)=$self->packlists_containing($module,\@inc);unless ($packlist){$self->diag_fail(<<DIAG,1);return}my@uninst_files=$self->uninstall_target($metadata,$packlist);$self->ask_permission($module,\@uninst_files)or return;$self->uninstall_files(@uninst_files,$packlist);$self->diag("Successfully uninstalled $module\n",1);return 1}sub packlists_containing {my($self,$module,$inc)=@_;require Module::Metadata;my$metadata=Module::Metadata->new_from_module($module,inc=>$inc)or return;my$packlist;my$wanted=sub {return unless $_ eq '.packlist' && -f $_;for my$file ($self->unpack_packlist($File::Find::name)){$packlist ||= $File::Find::name if$file eq $metadata->filename}};{require File::pushd;my$pushd=File::pushd::pushd();my@search=grep -d $_,map File::Spec->catdir($_,'auto'),@$inc;File::Find::find($wanted,@search)}return$metadata,$packlist}sub uninstall_target {my($self,$metadata,$packlist)=@_;if ($self->has_shadow_install($metadata)or $self->{local_lib}){grep$self->should_unlink($_),$self->unpack_packlist($packlist)}else {$self->unpack_packlist($packlist)}}sub has_shadow_install {my($self,$metadata)=@_;my@shadow=grep defined,map Module::Metadata->new_from_module($metadata->name,inc=>[$_]),@INC;@shadow >= 2}sub should_unlink {my($self,$file)=@_;if ($self->{local_lib}){$file =~ /^\Q$self->{local_lib}\E/}else {!(grep$file =~ /^\Q$_\E/,@Config{qw(installbin installscript installman1dir installman3dir)})}}sub ask_permission {my ($self,$module,$files)=@_;$self->diag("$module contains the following files:\n\n");for my$file (@$files){$self->diag(" $file\n")}$self->diag("\n");return 'force uninstall' if$self->{force};local$self->{prompt}=1;return$self->prompt_bool("Are you sure you want to uninstall $module?",'y')}sub unpack_packlist {my ($self,$packlist)=@_;open my$fh,'<',$packlist or die "$packlist: $!";map {chomp;$_}<$fh>}sub uninstall_files {my ($self,@files)=@_;$self->diag("\n");for my$file (@files){$self->diag("Unlink: $file\n");unlink$file or $self->diag_fail("$!: $file")}$self->diag("\n");return 1}sub format_dist {my($self,$dist)=@_;return "$dist->{cpanid}/$dist->{filename}"}sub trim {local $_=shift;tr/\n/ /d;s/^\s*|\s*$//g;$_}sub fetch_module {my($self,$dist)=@_;$self->chdir($self->{base});for my$uri (@{$dist->{uris}}){$self->mask_output(diag_progress=>"Fetching $uri");my$filename=$dist->{filename}|| $uri;my$name=File::Basename::basename($filename);my$cancelled;my$fetch=sub {my$file;eval {local$SIG{INT}=sub {$cancelled=1;die "SIGINT\n"};$self->mirror($uri,$name);$file=$name if -e $name};$self->diag("ERROR: " .trim("$@")."\n",1)if $@ && $@ ne "SIGINT\n";return$file};my($try,$file);while ($try++ < 3){$file=$fetch->();last if$cancelled or $file;$self->mask_output(diag_fail=>"Download $uri failed. Retrying ... ")}if ($cancelled){$self->diag_fail("Download cancelled.");return}unless ($file){$self->mask_output(diag_fail=>"Failed to download $uri");next}$self->diag_ok;$dist->{local_path}=File::Spec->rel2abs($name);my$dir=$self->unpack($file,$uri,$dist);next unless$dir;if (my$save=$self->{save_dists}){my$path=$dist->{pathname}? "$save/authors/id/$dist->{pathname}" : "$save/vendor/$file";$self->chat("Copying $name to $path\n");File::Path::mkpath([File::Basename::dirname($path)],0,0777);File::Copy::copy($file,$path)or warn $!}return$dist,$dir}}sub unpack {my($self,$file,$uri,$dist)=@_;if ($self->{verify}){$self->verify_archive($file,$uri,$dist)or return}$self->chat("Unpacking $file\n");my$dir=$file =~ /\.zip/i ? $self->unzip($file): $self->untar($file);unless ($dir){$self->diag_fail("Failed to unpack $file: no directory")}return$dir}sub verify_checksums_signature {my($self,$chk_file)=@_;require Module::Signature;$self->chat("Verifying the signature of CHECKSUMS\n");my$rv=eval {local$SIG{__WARN__}=sub {};my$v=Module::Signature::_verify($chk_file);$v==Module::Signature::SIGNATURE_OK()};if ($rv){$self->chat("Verified OK!\n")}else {$self->diag_fail("Verifying CHECKSUMS signature failed: $rv\n");return}return 1}sub verify_archive {my($self,$file,$uri,$dist)=@_;unless ($dist->{cpanid}){$self->chat("Archive '$file' does not seem to be from PAUSE. Skip verification.\n");return 1}(my$mirror=$uri)=~ s!/authors/id.*$!!;(my$chksum_uri=$uri)=~ s!/[^/]*$!/CHECKSUMS!;my$chk_file=$self->source_for($mirror)."/$dist->{cpanid}.CHECKSUMS";$self->mask_output(diag_progress=>"Fetching $chksum_uri");$self->mirror($chksum_uri,$chk_file);unless (-e $chk_file){$self->diag_fail("Fetching $chksum_uri failed.\n");return}$self->diag_ok;$self->verify_checksums_signature($chk_file)or return;$self->verify_checksum($file,$chk_file)}sub verify_checksum {my($self,$file,$chk_file)=@_;$self->chat("Verifying the SHA1 for $file\n");open my$fh,"<$chk_file" or die "$chk_file: $!";my$data=join '',<$fh>;$data =~ s/\015?\012/\n/g;require Safe;my$chksum=Safe->new->reval($data);if (!ref$chksum or ref$chksum ne 'HASH'){$self->diag_fail("! Checksum file downloaded from $chk_file is broken.\n");return}if (my$sha=$chksum->{$file}{sha256}){my$hex=$self->sha1_for($file);if ($hex eq $sha){$self->chat("Checksum for $file: Verified!\n")}else {$self->diag_fail("Checksum mismatch for $file\n");return}}else {$self->chat("Checksum for $file not found in CHECKSUMS.\n");return}}sub sha1_for {my($self,$file)=@_;require Digest::SHA;open my$fh,"<",$file or die "$file: $!";my$dg=Digest::SHA->new(256);my($data);while (read($fh,$data,4096)){$dg->add($data)}return$dg->hexdigest}sub verify_signature {my($self,$dist)=@_;$self->diag_progress("Verifying the SIGNATURE file");my$out=`$self->{cpansign} -v --skip 2>&1`;$self->log($out);if ($out =~ /Signature verified OK/){$self->diag_ok("Verified OK");return 1}else {$self->diag_fail("SIGNATURE verification for $dist->{filename} failed\n");return}}sub resolve_name {my($self,$module,$version)=@_;if ($module =~ /(?:^git:|\.git(?:@.+)?$)/){return$self->git_uri($module)}if ($module =~ /^(ftp|https?|file):/){if ($module =~ m!authors/id/(.*)!){return$self->cpan_dist($1,$module)}else {return {uris=>[$module ]}}}if ($module =~ m!^[\./]! && -d $module){return {source=>'local',dir=>Cwd::abs_path($module),}}if (-f $module){return {source=>'local',uris=>["file://" .Cwd::abs_path($module)],}}if ($module =~ s!^cpan:///distfile/!!){return$self->cpan_dist($module)}if ($module =~ m!^(?:[A-Z]/[A-Z]{2}/)?([A-Z]{2}[\-A-Z0-9]*/.*)$!){return$self->cpan_dist($1)}return$self->search_module($module,$version)}sub cpan_module {my($self,$module,$dist_file,$version)=@_;my$dist=$self->cpan_dist($dist_file);$dist->{module}=$module;$dist->{module_version}=$version if$version && $version ne 'undef';return$dist}sub cpan_dist {my($self,$dist,$url)=@_;$dist =~ s!^([A-Z]{2})!substr($1,0,1)."/".substr($1,0,2)."/".$1!e;require CPAN::DistnameInfo;my$d=CPAN::DistnameInfo->new($dist);if ($url){$url=[$url ]unless ref$url eq 'ARRAY'}else {my$id=$d->cpanid;my$fn=substr($id,0,1)."/" .substr($id,0,2)."/" .$id ."/" .$d->filename;my@mirrors=@{$self->{mirrors}};my@urls=map "$_/authors/id/$fn",@mirrors;$url=\@urls,}return {$d->properties,source=>'cpan',uris=>$url,}}sub git_uri {my ($self,$uri)=@_;($uri,my$commitish)=split /(?<=\.git)@/i,$uri,2;my$dir=File::Temp::tempdir(CLEANUP=>1);$self->mask_output(diag_progress=>"Cloning $uri");$self->run(['git','clone',$uri,$dir ]);unless (-e "$dir/.git"){$self->diag_fail("Failed cloning git repository $uri",1);return}if ($commitish){require File::pushd;my$dir=File::pushd::pushd($dir);unless ($self->run(['git','checkout',$commitish ])){$self->diag_fail("Failed to checkout '$commitish' in git repository $uri\n");return}}$self->diag_ok;return {source=>'local',dir=>$dir,}}sub setup_module_build_patch {my$self=shift;open my$out,">$self->{base}/ModuleBuildSkipMan.pm" or die $!;print$out <<EOF}sub core_version_for {my($self,$module)=@_;require Module::CoreList;unless (exists$Module::CoreList::version{$]+0}){die sprintf("Module::CoreList %s (loaded from %s) doesn't seem to have entries for perl $]. " ."You're strongly recommended to upgrade Module::CoreList from CPAN.\n",$Module::CoreList::VERSION,$INC{"Module/CoreList.pm"})}unless (exists$Module::CoreList::version{$]+0}{$module}){return -1}return$Module::CoreList::version{$]+0}{$module}}sub search_inc {my$self=shift;$self->{search_inc}||= do {if (defined$::Bin){[grep!/^\Q$::Bin\E\/..\/(?:fat)?lib$/,@INC]}else {[@INC]}}}sub check_module {my($self,$mod,$want_ver)=@_;require Module::Metadata;my$meta=Module::Metadata->new_from_module($mod,inc=>$self->search_inc)or return 0,undef;my$version=$meta->version;if ($self->{self_contained}&& $self->loaded_from_perl_lib($meta)){$version=$self->core_version_for($mod);return 0,undef if$version && $version==-1}$self->{local_versions}{$mod}=$version;if ($self->is_deprecated($meta)){return 0,$version}elsif ($self->satisfy_version($mod,$version,$want_ver)){return 1,($version || 'undef')}else {return 0,$version}}sub satisfy_version {my($self,$mod,$version,$want_ver)=@_;$want_ver='0' unless defined($want_ver)&& length($want_ver);require CPAN::Meta::Requirements;my$requirements=CPAN::Meta::Requirements->new;$requirements->add_string_requirement($mod,$want_ver);$requirements->accepts_module($mod,$version)}sub unsatisfy_how {my($self,$ver,$want_ver)=@_;if ($want_ver =~ /^[v0-9\.\_]+$/){return "$ver < $want_ver"}else {return "$ver doesn't satisfy $want_ver"}}sub is_deprecated {my($self,$meta)=@_;my$deprecated=eval {require Module::CoreList;Module::CoreList::is_deprecated($meta->{module})};return$deprecated && $self->loaded_from_perl_lib($meta)}sub loaded_from_perl_lib {my($self,$meta)=@_;require Config;my@dirs=qw(archlibexp privlibexp);if ($self->{self_contained}&&!$self->{exclude_vendor}&& $Config{vendorarch}){unshift@dirs,qw(vendorarch vendorlibexp)}for my$dir (@dirs){my$confdir=$Config{$dir};if ($confdir eq substr($meta->filename,0,length($confdir))){return 1}}return}sub should_install {my($self,$mod,$ver)=@_;$self->chat("Checking if you have $mod $ver ... ");my($ok,$local)=$self->check_module($mod,$ver);if ($ok){$self->chat("Yes ($local)\n")}elsif ($local){$self->chat("No (" .$self->unsatisfy_how($local,$ver).")\n")}else {$self->chat("No\n")}return$mod unless$ok;return}sub check_perl_version {my($self,$version)=@_;require CPAN::Meta::Requirements;my$req=CPAN::Meta::Requirements->from_string_hash({perl=>$version });$req->accepts_module(perl=>$])}sub install_deps {my($self,$dir,$depth,@deps)=@_;my(@install,%seen,@fail);for my$dep (@deps){next if$seen{$dep->module};if ($dep->module eq 'perl'){if ($dep->is_requirement &&!$self->check_perl_version($dep->version)){$self->diag("Needs perl @{[$dep->version]}, you have $]\n");push@fail,'perl'}}elsif ($self->should_install($dep->module,$dep->version)){push@install,$dep;$seen{$dep->module}=1}}if (@install){$self->diag("==> Found dependencies: " .join(", ",map $_->module,@install)."\n")}for my$dep (@install){$self->install_module($dep->module,$depth + 1,$dep->version)}$self->chdir($self->{base});$self->chdir($dir)if$dir;if ($self->{scandeps}){return 1}my@not_ok=$self->unsatisfied_deps(@deps);if (@not_ok){return 0,\@not_ok}else {return 1}}sub unsatisfied_deps {my($self,@deps)=@_;require CPAN::Meta::Check;require CPAN::Meta::Requirements;my$reqs=CPAN::Meta::Requirements->new;for my$dep (grep $_->is_requirement,@deps){$reqs->add_string_requirement($dep->module=>$dep->requires_version || '0')}my$ret=CPAN::Meta::Check::check_requirements($reqs,'requires',$self->{search_inc});grep defined,values %$ret}sub install_deps_bailout {my($self,$target,$dir,$depth,@deps)=@_;my($ok,$fail)=$self->install_deps($dir,$depth,@deps);if (!$ok){$self->diag_fail("Installing the dependencies failed: " .join(", ",@$fail),1);unless ($self->prompt_bool("Do you want to continue building $target anyway?","n")){$self->diag_fail("Bailing out the installation for $target.",1);return}}return 1}sub build_stuff {my($self,$stuff,$dist,$depth)=@_;if ($self->{verify}&& -e 'SIGNATURE'){$self->verify_signature($dist)or return}require CPAN::Meta;my($meta_file)=grep -f,qw(META.json META.yml);if ($meta_file){$self->chat("Checking configure dependencies from $meta_file\n");$dist->{cpanmeta}=eval {CPAN::Meta->load_file($meta_file)}}elsif ($dist->{dist}&& $dist->{version}){$self->chat("META.yml/json not found. Creating skeleton for it.\n");$dist->{cpanmeta}=CPAN::Meta->new({name=>$dist->{dist},version=>$dist->{version}})}$dist->{meta}=$dist->{cpanmeta}? $dist->{cpanmeta}->as_struct : {};my@config_deps;if ($dist->{cpanmeta}){push@config_deps,App::cpanminus::Dependency->from_prereqs($dist->{cpanmeta}->effective_prereqs,['configure'],$self->{install_types},)}if (-e 'Build.PL' &&!$self->should_use_mm($dist->{dist})&&!@config_deps){push@config_deps,App::cpanminus::Dependency->from_versions({'Module::Build'=>'0.38' },'configure',)}$self->merge_with_cpanfile($dist,\@config_deps);$self->upgrade_toolchain(\@config_deps);my$target=$dist->{meta}{name}? "$dist->{meta}{name}-$dist->{meta}{version}" : $dist->{dir};{$self->install_deps_bailout($target,$dist->{dir},$depth,@config_deps)or return}$self->diag_progress("Configuring $target");my$configure_state=$self->configure_this($dist,$depth);$self->diag_ok($configure_state->{configured_ok}? "OK" : "N/A");if ($dist->{cpanmeta}&& $dist->{source}eq 'cpan'){$dist->{provides}=$dist->{cpanmeta}{provides}|| $self->extract_packages($dist->{cpanmeta},".")}my$root_target=(($self->{installdeps}or $self->{showdeps})and $depth==0);$dist->{want_phases}=$self->{notest}&&!$root_target ? [qw(build runtime)]: [qw(build test runtime)];push @{$dist->{want_phases}},'develop' if$self->{with_develop}&& $depth==0;push @{$dist->{want_phases}},'configure' if$self->{with_configure}&& $depth==0;my@deps=$self->find_prereqs($dist);my$module_name=$self->find_module_name($configure_state)|| $dist->{meta}{name};$module_name =~ s/-/::/g;if ($self->{showdeps}){for my$dep (@config_deps,@deps){print$dep->module,($dep->version ? ("~".$dep->version): ""),"\n"}return 1}my$distname=$dist->{meta}{name}? "$dist->{meta}{name}-$dist->{meta}{version}" : $stuff;my$walkup;if ($self->{scandeps}){$walkup=$self->scandeps_append_child($dist)}$self->install_deps_bailout($distname,$dist->{dir},$depth,@deps)or return;if ($self->{scandeps}){unless ($configure_state->{configured_ok}){my$diag=<<DIAG;if (@config_deps){my@tree=@{$self->{scandeps_tree}};$diag .= "!\n" .join("",map "! * $_->[0]{module}\n",@tree[0..$#tree-1])if@tree}$self->diag("!\n$diag!\n",1)}$walkup->();return 1}if ($self->{installdeps}&& $depth==0){if ($configure_state->{configured_ok}){$self->diag("<== Installed dependencies for $stuff. Finishing.\n");return 1}else {$self->diag("! Configuring $distname failed. See $self->{log} for details.\n",1);return}}my$installed;if ($configure_state->{use_module_build}&& -e 'Build' && -f _){$self->diag_progress("Building " .($self->{notest}? "" : "and testing ").$distname);$self->build([$self->{perl},"./Build" ],$distname,$depth)&& $self->test([$self->{perl},"./Build","test" ],$distname,$depth)&& $self->install([$self->{perl},"./Build","install" ],["--uninst",1 ],$depth)&& $installed++}elsif ($self->{make}&& -e 'Makefile'){$self->diag_progress("Building " .($self->{notest}? "" : "and testing ").$distname);$self->build([$self->{make}],$distname,$depth)&& $self->test([$self->{make},"test" ],$distname,$depth)&& $self->install([$self->{make},"install" ],["UNINST=1" ],$depth)&& $installed++}else {my$why;my$configure_failed=$configure_state->{configured}&&!$configure_state->{configured_ok};if ($configure_failed){$why="Configure failed for $distname."}elsif ($self->{make}){$why="The distribution doesn't have a proper Makefile.PL/Build.PL"}else {$why="Can't configure the distribution. You probably need to have 'make'."}$self->diag_fail("$why See $self->{log} for details.",1);return}if ($installed && $self->{test_only}){$self->diag_ok;$self->diag("Successfully tested $distname\n",1)}elsif ($installed){my$local=$self->{local_versions}{$dist->{module}|| ''};my$version=$dist->{module_version}|| $dist->{meta}{version}|| $dist->{version};my$reinstall=$local && ($local eq $version);my$action=$local &&!$reinstall ? $self->numify_ver($version)< $self->numify_ver($local)? "downgraded" : "upgraded" : undef;my$how=$reinstall ? "reinstalled $distname" : $local ? "installed $distname ($action from $local)" : "installed $distname" ;my$msg="Successfully $how";$self->diag_ok;$self->diag("$msg\n",1);$self->{installed_dists}++;$self->save_meta($stuff,$dist,$module_name,\@config_deps,\@deps);return 1}else {my$what=$self->{test_only}? "Testing" : "Installing";$self->diag_fail("$what $stuff failed. See $self->{log} for details. Retry with --force to force install it.",1);return}}sub perl_requirements {my($self,@requires)=@_;my@perl;for my$requires (grep defined,@requires){if (exists$requires->{perl}){push@perl,App::cpanminus::Dependency->new(perl=>$requires->{perl})}}return@perl}sub should_use_mm {my($self,$dist)=@_;my%should_use_mm=map {$_=>1}qw(version ExtUtils-ParseXS ExtUtils-Install ExtUtils-Manifest);$should_use_mm{$dist}}sub configure_this {my($self,$dist,$depth)=@_;if (-e $self->{cpanfile_path}&& $self->{installdeps}&& $depth==0){require Module::CPANfile;$dist->{cpanfile}=eval {Module::CPANfile->load($self->{cpanfile_path})};$self->diag_fail($@,1)if $@;return {configured=>1,configured_ok=>!!$dist->{cpanfile},use_module_build=>0,}}if ($self->{skip_configure}){my$eumm=-e 'Makefile';my$mb=-e 'Build' && -f _;return {configured=>1,configured_ok=>$eumm || $mb,use_module_build=>$mb,}}my$state={};my$try_eumm=sub {if (-e 'Makefile.PL'){$self->chat("Running Makefile.PL\n");if ($self->configure([$self->{perl},"Makefile.PL" ],$depth)){$state->{configured_ok}=-e 'Makefile'}$state->{configured}++}};my$try_mb=sub {if (-e 'Build.PL'){$self->chat("Running Build.PL\n");if ($self->configure([$self->{perl},"Build.PL" ],$depth)){$state->{configured_ok}=-e 'Build' && -f _}$state->{use_module_build}++;$state->{configured}++}};my@try;if ($dist->{dist}&& $self->should_use_mm($dist->{dist})){@try=($try_eumm,$try_mb)}else {@try=($try_mb,$try_eumm)}for my$try (@try){$try->();last if$state->{configured_ok}}unless ($state->{configured_ok}){while (1){my$ans=lc$self->prompt("Configuring $dist->{dist} failed.\nYou can s)kip, r)etry, e)xamine build log, or l)ook ?","s");last if$ans eq 's';return$self->configure_this($dist,$depth)if$ans eq 'r';$self->show_build_log if$ans eq 'e';$self->look if$ans eq 'l'}}return$state}sub find_module_name {my($self,$state)=@_;return unless$state->{configured_ok};if ($state->{use_module_build}&& -e "_build/build_params"){my$params=do {open my$in,"_build/build_params";$self->safe_eval(join "",<$in>)};return eval {$params->[2]{module_name}}|| undef}elsif (-e "Makefile"){open my$mf,"Makefile";while (<$mf>){if (/^\#\s+NAME\s+=>\s+(.*)/){return$self->safe_eval($1)}}}return}sub list_files {my$self=shift;if (-e 'MANIFEST'){require ExtUtils::Manifest;my$manifest=eval {ExtUtils::Manifest::manifind()}|| {};return sort {lc$a cmp lc$b}keys %$manifest}else {require File::Find;my@files;my$finder=sub {my$name=$File::Find::name;$name =~ s!\.[/\\]!!;push@files,$name};File::Find::find($finder,".");return sort {lc$a cmp lc$b}@files}}sub extract_packages {my($self,$meta,$dir)=@_;my$try=sub {my$file=shift;return 0 if$file =~ m!^(?:x?t|inc|local|perl5|fatlib|_build)/!;return 1 unless$meta->{no_index};return 0 if grep {$file =~ m!^$_/!}@{$meta->{no_index}{directory}|| []};return 0 if grep {$file eq $_}@{$meta->{no_index}{file}|| []};return 1};require Parse::PMFile;my@files=grep {/\.pm(?:\.PL)?$/ && $try->($_)}$self->list_files;my$provides={};for my$file (@files){my$parser=Parse::PMFile->new($meta,{UNSAFE=>1,ALLOW_DEV_VERSION=>1 });my$packages=$parser->parse($file);while (my($package,$meta)=each %$packages){$provides->{$package}||= {file=>$meta->{infile},($meta->{version}eq 'undef')? (): (version=>$meta->{version}),}}}return$provides}sub save_meta {my($self,$module,$dist,$module_name,$config_deps,$build_deps)=@_;return unless$dist->{distvname}&& $dist->{source}eq 'cpan';my$base=($ENV{PERL_MM_OPT}|| '')=~ /INSTALL_BASE=/ ? ($self->install_base($ENV{PERL_MM_OPT})."/lib/perl5"): $Config{sitelibexp};my$provides=$dist->{provides};File::Path::mkpath("blib/meta",0,0777);my$local={name=>$module_name,target=>$module,version=>exists$provides->{$module_name}? ($provides->{$module_name}{version}|| $dist->{version}): $dist->{version},dist=>$dist->{distvname},pathname=>$dist->{pathname},provides=>$provides,};require JSON::PP;open my$fh,">","blib/meta/install.json" or die $!;print$fh JSON::PP::encode_json($local);if (-e "MYMETA.json"){File::Copy::copy("MYMETA.json","blib/meta/MYMETA.json")}my@cmd=(($self->{sudo}? 'sudo' : ()),$^X,'-MExtUtils::Install=install','-e',qq[install({ 'blib/meta' => '$base/$Config{archname}/.meta/$dist->{distvname}' })],);$self->run(\@cmd)}sub _merge_hashref {my($self,@hashrefs)=@_;my%hash;for my$h (@hashrefs){%hash=(%hash,%$h)}return \%hash}sub install_base {my($self,$mm_opt)=@_;$mm_opt =~ /INSTALL_BASE=(\S+)/ and return $1;die "Your PERL_MM_OPT doesn't contain INSTALL_BASE"}sub safe_eval {my($self,$code)=@_;eval$code}sub configure_features {my($self,$dist,@features)=@_;map $_->identifier,grep {$self->effective_feature($dist,$_)}@features}sub effective_feature {my($self,$dist,$feature)=@_;if ($dist->{depth}==0){my$value=$self->{features}{$feature->identifier};return$value if defined$value;return 1 if$self->{features}{__all}}if ($self->{interactive}){require CPAN::Meta::Requirements;$self->diag("[@{[ $feature->description ]}]\n",1);my$req=CPAN::Meta::Requirements->new;for my$phase (@{$dist->{want_phases}}){for my$type (@{$self->{install_types}}){$req->add_requirements($feature->prereqs->requirements_for($phase,$type))}}my$reqs=$req->as_string_hash;my@missing;for my$module (keys %$reqs){if ($self->should_install($module,$req->{$module})){push@missing,$module}}if (@missing){my$howmany=@missing;$self->diag("==> Found missing dependencies: " .join(", ",@missing)."\n",1);local$self->{prompt}=1;return$self->prompt_bool("Install the $howmany optional module(s)?","y")}}return}sub find_prereqs {my($self,$dist)=@_;my@deps=$self->extract_meta_prereqs($dist);if ($dist->{module}=~ /^Bundle::/i){push@deps,$self->bundle_deps($dist)}$self->merge_with_cpanfile($dist,\@deps);return@deps}sub merge_with_cpanfile {my($self,$dist,$deps)=@_;if ($self->{cpanfile_requirements}&&!$dist->{cpanfile}){for my$dep (@$deps){$dep->merge_with($self->{cpanfile_requirements})}}}sub extract_meta_prereqs {my($self,$dist)=@_;if ($dist->{cpanfile}){my@features=$self->configure_features($dist,$dist->{cpanfile}->features);my$prereqs=$dist->{cpanfile}->prereqs_with(@features);$self->{cpanfile_requirements}=$prereqs->merged_requirements($dist->{want_phases},['requires']);return App::cpanminus::Dependency->from_prereqs($prereqs,$dist->{want_phases},$self->{install_types})}require CPAN::Meta;my@deps;my($meta_file)=grep -f,qw(MYMETA.json MYMETA.yml);if ($meta_file){$self->chat("Checking dependencies from $meta_file ...\n");my$mymeta=eval {CPAN::Meta->load_file($meta_file,{lazy_validation=>1 })};if ($mymeta){$dist->{meta}{name}=$mymeta->name;$dist->{meta}{version}=$mymeta->version;return$self->extract_prereqs($mymeta,$dist)}}if (-e '_build/prereqs'){$self->chat("Checking dependencies from _build/prereqs ...\n");my$prereqs=do {open my$in,"_build/prereqs";$self->safe_eval(join "",<$in>)};my$meta=CPAN::Meta->new({name=>$dist->{meta}{name},version=>$dist->{meta}{version},%$prereqs },{lazy_validation=>1 },);@deps=$self->extract_prereqs($meta,$dist)}elsif (-e 'Makefile'){$self->chat("Finding PREREQ from Makefile ...\n");open my$mf,"Makefile";while (<$mf>){if (/^\#\s+PREREQ_PM => \{\s*(.*?)\s*\}/){my@all;my@pairs=split ', ',$1;for (@pairs){my ($pkg,$v)=split '=>',$_;push@all,[$pkg,$v ]}my$list=join ", ",map {"'$_->[0]' => $_->[1]"}@all;my$prereq=$self->safe_eval("no strict; +{ $list }");push@deps,App::cpanminus::Dependency->from_versions($prereq)if$prereq;last}}}return@deps}sub bundle_deps {my($self,$dist)=@_;my$match;if ($dist->{module}){$match=sub {my$meta=Module::Metadata->new_from_file($_[0]);$meta && ($meta->name eq $dist->{module})}}else {$match=sub {1}}my@files;File::Find::find({wanted=>sub {push@files,File::Spec->rel2abs($_)if /\.pm$/i && $match->($_)},no_chdir=>1,},'.');my@deps;for my$file (@files){open my$pod,"<",$file or next;my$in_contents;while (<$pod>){if (/^=head\d\s+CONTENTS/){$in_contents=1}elsif (/^=/){$in_contents=0}elsif ($in_contents){/^(\S+)\s*(\S+)?/ and push@deps,App::cpanminus::Dependency->new($1,$self->maybe_version($2))}}}return@deps}sub maybe_version {my($self,$string)=@_;return$string && $string =~ /^\.?\d/ ? $string : undef}sub extract_prereqs {my($self,$meta,$dist)=@_;my@features=$self->configure_features($dist,$meta->features);my$prereqs=$self->soften_makemaker_prereqs($meta->effective_prereqs(\@features)->clone);return App::cpanminus::Dependency->from_prereqs($prereqs,$dist->{want_phases},$self->{install_types})}sub soften_makemaker_prereqs {my($self,$prereqs)=@_;return$prereqs unless -e "inc/Module/Install.pm";for my$phase (qw(build test runtime)){my$reqs=$prereqs->requirements_for($phase,'requires');if ($reqs->requirements_for_module('ExtUtils::MakeMaker')){$reqs->clear_requirement('ExtUtils::MakeMaker');$reqs->add_minimum('ExtUtils::MakeMaker'=>0)}}$prereqs}sub cleanup_workdirs {my$self=shift;my$expire=time - 24 * 60 * 60 * $self->{auto_cleanup};my@targets;opendir my$dh,"$self->{home}/work";while (my$e=readdir$dh){next if$e !~ /^(\d+)\.\d+$/;my$time=$1;if ($time < $expire){push@targets,"$self->{home}/work/$e"}}if (@targets){if (@targets >= 64){$self->diag("Expiring " .scalar(@targets)." work directories. This might take a while...\n")}else {$self->chat("Expiring " .scalar(@targets)." work directories.\n")}File::Path::rmtree(\@targets,0,0)}}sub scandeps_append_child {my($self,$dist)=@_;my$new_node=[$dist,[]];my$curr_node=$self->{scandeps_current}|| [undef,$self->{scandeps_tree}];push @{$curr_node->[1]},$new_node;$self->{scandeps_current}=$new_node;return sub {$self->{scandeps_current}=$curr_node}}sub dump_scandeps {my$self=shift;if ($self->{format}eq 'tree'){$self->walk_down(sub {my($dist,$depth)=@_;if ($depth==0){print "$dist->{distvname}\n"}else {print " " x ($depth - 1);print "\\_ $dist->{distvname}\n"}},1)}elsif ($self->{format}=~ /^dists?$/){$self->walk_down(sub {my($dist,$depth)=@_;print$self->format_dist($dist),"\n"},0)}elsif ($self->{format}eq 'json'){require JSON::PP;print JSON::PP::encode_json($self->{scandeps_tree})}elsif ($self->{format}eq 'yaml'){require YAML;print YAML::Dump($self->{scandeps_tree})}else {$self->diag("Unknown format: $self->{format}\n")}}sub walk_down {my($self,$cb,$pre)=@_;$self->_do_walk_down($self->{scandeps_tree},$cb,0,$pre)}sub _do_walk_down {my($self,$children,$cb,$depth,$pre)=@_;for my$node (@$children){$cb->($node->[0],$depth)if$pre;$self->_do_walk_down($node->[1],$cb,$depth + 1,$pre);$cb->($node->[0],$depth)unless$pre}}sub DESTROY {my$self=shift;$self->{at_exit}->($self)if$self->{at_exit}}sub shell_quote {my($self,@stuff)=@_;if (WIN32){join ' ',map {/^${quote}.+${quote}$/ ? $_ : ($quote .$_ .$quote)}@stuff}else {String::ShellQuote::shell_quote_best_effort(@stuff)}}sub which {my($self,$name)=@_;if (File::Spec->file_name_is_absolute($name)){if (-x $name &&!-d _){return$name}}my$exe_ext=$Config{_exe};for my$dir (File::Spec->path){my$fullpath=File::Spec->catfile($dir,$name);if ((-x $fullpath || -x ($fullpath .= $exe_ext))&&!-d _){if ($fullpath =~ /\s/){$fullpath=$self->shell_quote($fullpath)}return$fullpath}}return}sub get {my($self,$uri)=@_;if ($uri =~ /^file:/){$self->file_get($uri)}else {$self->{_backends}{get}->(@_)}}sub mirror {my($self,$uri,$local)=@_;if ($uri =~ /^file:/){$self->file_mirror($uri,$local)}else {$self->{_backends}{mirror}->(@_)}}sub untar {$_[0]->{_backends}{untar}->(@_)};sub unzip {$_[0]->{_backends}{unzip}->(@_)};sub uri_to_file {my($self,$uri)=@_;if ($uri =~ s!file:/+!!){$uri="/$uri" unless$uri =~ m![a-zA-Z]:!}return$uri}sub file_get {my($self,$uri)=@_;my$file=$self->uri_to_file($uri);open my$fh,"<$file" or return;join '',<$fh>}sub file_mirror {my($self,$uri,$path)=@_;my$file=$self->uri_to_file($uri);my$source_mtime=(stat$file)[9];return 1 if -e $path && (stat$path)[9]>= $source_mtime;File::Copy::copy($file,$path);utime$source_mtime,$source_mtime,$path}sub has_working_lwp {my($self,$mirrors)=@_;my$https=grep /^https:/,@$mirrors;eval {require LWP::UserAgent;LWP::UserAgent->VERSION(5.802);require LWP::Protocol::https if$https;1}}sub init_tools {my$self=shift;return if$self->{initialized}++;if ($self->{make}=$self->which($Config{make})){$self->chat("You have make $self->{make}\n")}if ($self->{try_lwp}&& $self->has_working_lwp($self->{mirrors})){$self->chat("You have LWP $LWP::VERSION\n");my$ua=sub {LWP::UserAgent->new(parse_head=>0,env_proxy=>1,agent=>$self->agent,timeout=>30,@_,)};$self->{_backends}{get}=sub {my$self=shift;my$res=$ua->()->request(HTTP::Request->new(GET=>$_[0]));return unless$res->is_success;return$res->decoded_content};$self->{_backends}{mirror}=sub {my$self=shift;my$res=$ua->()->mirror(@_);die$res->content if$res->code==501;$res->code}}elsif ($self->{try_wget}and my$wget=$self->which('wget')){$self->chat("You have $wget\n");my@common=('--user-agent',$self->agent,'--retry-connrefused',($self->{verbose}? (): ('-q')),);$self->{_backends}{get}=sub {my($self,$uri)=@_;$self->safeexec(my$fh,$wget,$uri,@common,'-O','-')or die "wget $uri: $!";local $/;<$fh>};$self->{_backends}{mirror}=sub {my($self,$uri,$path)=@_;$self->safeexec(my$fh,$wget,$uri,@common,'-O',$path)or die "wget $uri: $!";local $/;<$fh>}}elsif ($self->{try_curl}and my$curl=$self->which('curl')){$self->chat("You have $curl\n");my@common=('--location','--user-agent',$self->agent,($self->{verbose}? (): '-s'),);$self->{_backends}{get}=sub {my($self,$uri)=@_;$self->safeexec(my$fh,$curl,@common,$uri)or die "curl $uri: $!";local $/;<$fh>};$self->{_backends}{mirror}=sub {my($self,$uri,$path)=@_;$self->safeexec(my$fh,$curl,@common,$uri,'-#','-o',$path)or die "curl $uri: $!";local $/;<$fh>}}else {require HTTP::Tiny;$self->chat("Falling back to HTTP::Tiny $HTTP::Tiny::VERSION\n");my%common=(agent=>$self->agent,);$self->{_backends}{get}=sub {my$self=shift;my$res=HTTP::Tiny->new(%common)->get($_[0]);return unless$res->{success};return$res->{content}};$self->{_backends}{mirror}=sub {my$self=shift;my$res=HTTP::Tiny->new(%common)->mirror(@_);return$res->{status}}}my$tar=$self->which('tar');my$tar_ver;my$maybe_bad_tar=sub {WIN32 || BAD_TAR || (($tar_ver=`$tar --version 2>/dev/null`)=~ /GNU.*1\.13/i)};if ($tar &&!$maybe_bad_tar->()){chomp$tar_ver;$self->chat("You have $tar: $tar_ver\n");$self->{_backends}{untar}=sub {my($self,$tarfile)=@_;my$xf=($self->{verbose}? 'v' : '')."xf";my$ar=$tarfile =~ /bz2$/ ? 'j' : 'z';my($root,@others)=`$tar ${ar}tf $tarfile` or return undef;FILE: {chomp$root;$root =~ s!^\./!!;$root =~ s{^(.+?)/.*$}{$1};if (!length($root)){$root=shift(@others);redo FILE if$root}}system "$tar $ar$xf $tarfile";return$root if -d $root;$self->diag_fail("Bad archive: $tarfile");return undef}}elsif ($tar and my$gzip=$self->which('gzip')and my$bzip2=$self->which('bzip2')){$self->chat("You have $tar, $gzip and $bzip2\n");$self->{_backends}{untar}=sub {my($self,$tarfile)=@_;my$x="x" .($self->{verbose}? 'v' : '')."f -";my$ar=$tarfile =~ /bz2$/ ? $bzip2 : $gzip;my($root,@others)=`$ar -dc $tarfile | $tar tf -` or return undef;FILE: {chomp$root;$root =~ s!^\./!!;$root =~ s{^(.+?)/.*$}{$1};if (!length($root)){$root=shift(@others);redo FILE if$root}}system "$ar -dc $tarfile | $tar $x";return$root if -d $root;$self->diag_fail("Bad archive: $tarfile");return undef}}elsif (eval {require Archive::Tar}){$self->chat("Falling back to Archive::Tar $Archive::Tar::VERSION\n");$self->{_backends}{untar}=sub {my$self=shift;my$t=Archive::Tar->new($_[0]);my($root,@others)=$t->list_files;FILE: {$root =~ s!^\./!!;$root =~ s{^(.+?)/.*$}{$1};if (!length($root)){$root=shift(@others);redo FILE if$root}}$t->extract;return -d $root ? $root : undef}}else {$self->{_backends}{untar}=sub {die "Failed to extract $_[1] - You need to have tar or Archive::Tar installed.\n"}}if (my$unzip=$self->which('unzip')){$self->chat("You have $unzip\n");$self->{_backends}{unzip}=sub {my($self,$zipfile)=@_;my$opt=$self->{verbose}? '' : '-q';my(undef,$root,@others)=`$unzip -t $zipfile` or return undef;FILE: {chomp$root;if ($root !~ s{^\s+testing:\s+([^/]+)/.*?\s+OK$}{$1}){$root=shift(@others);redo FILE if$root}}system "$unzip $opt $zipfile";return$root if -d $root;$self->diag_fail("Bad archive: [$root] $zipfile");return undef}}else {$self->{_backends}{unzip}=sub {eval {require Archive::Zip}or die "Failed to extract $_[1] - You need to have unzip or Archive::Zip installed.\n";my($self,$file)=@_;my$zip=Archive::Zip->new();my$status;$status=$zip->read($file);$self->diag_fail("Read of file[$file] failed")if$status!=Archive::Zip::AZ_OK();my@members=$zip->members();for my$member (@members){my$af=$member->fileName();next if ($af =~ m!^(/|\.\./)!);$status=$member->extractToFileNamed($af);$self->diag_fail("Extracting of file[$af] from zipfile[$file failed")if$status!=Archive::Zip::AZ_OK()}my ($root)=$zip->membersMatching(qr<^[^/]+/$>);$root &&= $root->fileName;return -d $root ? $root : undef}}}sub safeexec {my$self=shift;my$rdr=$_[0]||= Symbol::gensym();if (WIN32){my$cmd=$self->shell_quote(@_[1..$#_]);return open($rdr,"$cmd |")}if (my$pid=open($rdr,'-|')){return$pid}elsif (defined$pid){exec(@_[1 .. $#_ ]);exit 1}else {return}}sub mask_uri_passwords {my($self,@strings)=@_;s{ (https?://) ([^:/]+) : [^@/]+ @ }{$1$2:********@}gx for@strings;return@strings}1; - It appears your cpanm executable was installed via `perlbrew install-cpanm`. - cpanm --self-upgrade won't upgrade the version of cpanm you're running. - - Run the following command to get it upgraded. - - perlbrew install-cpanm - - DIE - You are running cpanm from the path where your current perl won't install executables to. - Because of that, cpanm --self-upgrade won't upgrade the version of cpanm you're running. - - cpanm path : $0 - Install path : $Config{installsitebin} - - It means you either installed cpanm globally with system perl, or use distro packages such - as rpm or apt-get, and you have to use them again to upgrade cpanm. - DIE - Usage: cpanm [options] Module [...] - - Try `cpanm --help` or `man cpanm` for more options. - USAGE - Usage: cpanm [options] Module [...] - - Options: - -v,--verbose Turns on chatty output - -q,--quiet Turns off the most output - --interactive Turns on interactive configure (required for Task:: modules) - -f,--force force install - -n,--notest Do not run unit tests - --test-only Run tests only, do not install - -S,--sudo sudo to run install commands - --installdeps Only install dependencies - --showdeps Only display direct dependencies - --reinstall Reinstall the distribution even if you already have the latest version installed - --mirror Specify the base URL for the mirror (e.g. http://cpan.cpantesters.org/) - --mirror-only Use the mirror's index file instead of the CPAN Meta DB - -M,--from Use only this mirror base URL and its index file - --prompt Prompt when configure/build/test fails - -l,--local-lib Specify the install base to install modules - -L,--local-lib-contained Specify the install base to install all non-core modules - --self-contained Install all non-core modules, even if they're already installed. - --auto-cleanup Number of days that cpanm's work directories expire in. Defaults to 7 - - Commands: - --self-upgrade upgrades itself - --info Displays distribution info on CPAN - --look Opens the distribution with your SHELL - -U,--uninstall Uninstalls the modules (EXPERIMENTAL) - -V,--version Displays software version - - Examples: - - cpanm Test::More # install Test::More - cpanm MIYAGAWA/Plack-0.99_05.tar.gz # full distribution path - cpanm http://example.org/LDS/CGI.pm-3.20.tar.gz # install from URL - cpanm ~/dists/MyCompany-Enterprise-1.00.tar.gz # install from a local file - cpanm --interactive Task::Kensho # Configure interactively - cpanm . # install from local directory - cpanm --installdeps . # install all the deps for the current directory - cpanm -L extlib Plack # install Plack and all non-core deps into extlib - cpanm --mirror http://cpan.cpantesters.org/ DBI # use the fast-syncing mirror - cpanm -M https://cpan.metacpan.org App::perlbrew # use only this secure mirror and its index - - You can also specify the default options in PERL_CPANM_OPT environment variable in the shell rc: - - export PERL_CPANM_OPT="--prompt --reinstall -l ~/perl --mirror http://cpan.cpantesters.org" - - Type `man cpanm` or `perldoc cpanm` for the more detailed explanation of the options. - - HELP - ! - ! Can't write to $Config{installsitelib} and $Config{installsitebin}: Installing modules to $ENV{HOME}/perl5 - ! To turn off this warning, you have to do one of the following: - ! - run me as a root or with --sudo option (to install to $Config{installsitelib} and $Config{installsitebin}) - ! - Configure local::lib in your existing shell to set PERL_MM_OPT etc. - ! - Install local::lib by running the following commands - ! - ! cpanm --local-lib=~/perl5 local::lib && eval \$(perl -I ~/perl5/lib/perl5/ -Mlocal::lib) - ! - DIAG - WARNING: Your lib directory name ($base) contains a space in it. It's known to cause issues with perl builder tools such as local::lib and MakeMaker. You're recommended to rename your directory. - WARN - $module is not found in the following directories and can't be uninstalled. - - @{[ join(" \n", map " $_", @inc) ]} - - DIAG - package ModuleBuildSkipMan; - CHECK { - if (%Module::Build::) { - no warnings 'redefine'; - *Module::Build::Base::ACTION_manpages = sub {}; - *Module::Build::Base::ACTION_docs = sub {}; - } - } - 1; - EOF - ! Configuring $distname failed. See $self->{log} for details. - ! You might have to install the following modules first to get --scandeps working correctly. - DIAG -APP_CPANMINUS_SCRIPT - -$fatpacked{"CPAN/DistnameInfo.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_DISTNAMEINFO'; - package CPAN::DistnameInfo;$VERSION="0.12";use strict;sub distname_info {my$file=shift or return;my ($dist,$version)=$file =~ /^ - ((?:[-+.]*(?:[A-Za-z0-9]+|(?<=\D)_|_(?=\D))* - (?: - [A-Za-z](?=[^A-Za-z]|$) - | - \d(?=-) - )(?<![._-][vV]) - )+)(.*) - $/xs or return ($file,undef,undef);if ($dist =~ /-undef\z/ and!length$version){$dist =~ s/-undef\z//}$version =~ s/-withoutworldwriteables$//;if ($version =~ /^(-[Vv].*)-(\d.*)/){$dist .= $1;$version=$2}if ($version =~ /(.+_.*)-(\d.*)/){$dist .= $1;$version=$2}$dist =~ s{\.pm$}{};$version=$1 if!length$version and $dist =~ s/-(\d+\w)$//;$version=$1 .$version if$version =~ /^\d+$/ and $dist =~ s/-(\w+)$//;if ($version =~ /\d\.\d/){$version =~ s/^[-_.]+//}else {$version =~ s/^[-_]+//}my$dev;if (length$version){if ($file =~ /^perl-?\d+\.(\d+)(?:\D(\d+))?(-(?:TRIAL|RC)\d+)?$/){$dev=1 if (($1 > 6 and $1 & 1)or ($2 and $2 >= 50))or $3}elsif ($version =~ /\d\D\d+_\d/ or $version =~ /-TRIAL/){$dev=1}}else {$version=undef}($dist,$version,$dev)}sub new {my$class=shift;my$distfile=shift;$distfile =~ s,//+,/,g;my%info=(pathname=>$distfile);($info{filename}=$distfile)=~ s,^(((.*?/)?authors/)?id/)?([A-Z])/(\4[A-Z])/(\5[-A-Z0-9]*)/,, and $info{cpanid}=$6;if ($distfile =~ m,([^/]+)\.(tar\.(?:g?z|bz2)|zip|tgz)$,i){$info{distvname}=$1;$info{extension}=$2}@info{qw(dist version beta)}=distname_info($info{distvname});$info{maturity}=delete$info{beta}? 'developer' : 'released';return bless \%info,$class}sub dist {shift->{dist}}sub version {shift->{version}}sub maturity {shift->{maturity}}sub filename {shift->{filename}}sub cpanid {shift->{cpanid}}sub distvname {shift->{distvname}}sub extension {shift->{extension}}sub pathname {shift->{pathname}}sub properties {%{$_[0]}}1; -CPAN_DISTNAMEINFO - -$fatpacked{"CPAN/Meta.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META'; - use 5.006;use strict;use warnings;package CPAN::Meta;our$VERSION='2.150005';use Carp qw(carp croak);use CPAN::Meta::Feature;use CPAN::Meta::Prereqs;use CPAN::Meta::Converter;use CPAN::Meta::Validator;use Parse::CPAN::Meta 1.4414 ();BEGIN {*_dclone=\&CPAN::Meta::Converter::_dclone}BEGIN {my@STRING_READERS=qw(abstract description dynamic_config generated_by name release_status version);no strict 'refs';for my$attr (@STRING_READERS){*$attr=sub {$_[0]{$attr }}}}BEGIN {my@LIST_READERS=qw(author keywords license);no strict 'refs';for my$attr (@LIST_READERS){*$attr=sub {my$value=$_[0]{$attr };croak "$attr must be called in list context" unless wantarray;return @{_dclone($value)}if ref$value;return$value}}}sub authors {$_[0]->author}sub licenses {$_[0]->license}BEGIN {my@MAP_READERS=qw(meta-spec resources provides no_index prereqs optional_features);no strict 'refs';for my$attr (@MAP_READERS){(my$subname=$attr)=~ s/-/_/;*$subname=sub {my$value=$_[0]{$attr };return _dclone($value)if$value;return {}}}}sub custom_keys {return grep {/^x_/i}keys %{$_[0]}}sub custom {my ($self,$attr)=@_;my$value=$self->{$attr};return _dclone($value)if ref$value;return$value}sub _new {my ($class,$struct,$options)=@_;my$self;if ($options->{lazy_validation}){my$cmc=CPAN::Meta::Converter->new($struct);$self=$cmc->convert(version=>2);return bless$self,$class}else {my$cmv=CPAN::Meta::Validator->new($struct);unless ($cmv->is_valid){die "Invalid metadata structure. Errors: " .join(", ",$cmv->errors)."\n"}}my$version=$struct->{'meta-spec'}{version}|| '1.0';if ($version==2){$self=$struct}else {my$cmc=CPAN::Meta::Converter->new($struct);$self=$cmc->convert(version=>2)}return bless$self,$class}sub new {my ($class,$struct,$options)=@_;my$self=eval {$class->_new($struct,$options)};croak($@)if $@;return$self}sub create {my ($class,$struct,$options)=@_;my$version=__PACKAGE__->VERSION || 2;$struct->{generated_by}||= __PACKAGE__ ." version $version" ;$struct->{'meta-spec'}{version}||= int($version);my$self=eval {$class->_new($struct,$options)};croak ($@)if $@;return$self}sub load_file {my ($class,$file,$options)=@_;$options->{lazy_validation}=1 unless exists$options->{lazy_validation};croak "load_file() requires a valid, readable filename" unless -r $file;my$self;eval {my$struct=Parse::CPAN::Meta->load_file($file);$self=$class->_new($struct,$options)};croak($@)if $@;return$self}sub load_yaml_string {my ($class,$yaml,$options)=@_;$options->{lazy_validation}=1 unless exists$options->{lazy_validation};my$self;eval {my ($struct)=Parse::CPAN::Meta->load_yaml_string($yaml);$self=$class->_new($struct,$options)};croak($@)if $@;return$self}sub load_json_string {my ($class,$json,$options)=@_;$options->{lazy_validation}=1 unless exists$options->{lazy_validation};my$self;eval {my$struct=Parse::CPAN::Meta->load_json_string($json);$self=$class->_new($struct,$options)};croak($@)if $@;return$self}sub load_string {my ($class,$string,$options)=@_;$options->{lazy_validation}=1 unless exists$options->{lazy_validation};my$self;eval {my$struct=Parse::CPAN::Meta->load_string($string);$self=$class->_new($struct,$options)};croak($@)if $@;return$self}sub save {my ($self,$file,$options)=@_;my$version=$options->{version}|| '2';my$layer=$] ge '5.008001' ? ':utf8' : '';if ($version ge '2'){carp "'$file' should end in '.json'" unless$file =~ m{\.json$}}else {carp "'$file' should end in '.yml'" unless$file =~ m{\.yml$}}my$data=$self->as_string($options);open my$fh,">$layer",$file or die "Error opening '$file' for writing: $!\n";print {$fh}$data;close$fh or die "Error closing '$file': $!\n";return 1}sub meta_spec_version {my ($self)=@_;return$self->meta_spec->{version}}sub effective_prereqs {my ($self,$features)=@_;$features ||= [];my$prereq=CPAN::Meta::Prereqs->new($self->prereqs);return$prereq unless @$features;my@other=map {;$self->feature($_)->prereqs}@$features;return$prereq->with_merged_prereqs(\@other)}sub should_index_file {my ($self,$filename)=@_;for my$no_index_file (@{$self->no_index->{file}|| []}){return if$filename eq $no_index_file}for my$no_index_dir (@{$self->no_index->{directory}}){$no_index_dir =~ s{$}{/} unless$no_index_dir =~ m{/\z};return if index($filename,$no_index_dir)==0}return 1}sub should_index_package {my ($self,$package)=@_;for my$no_index_pkg (@{$self->no_index->{package}|| []}){return if$package eq $no_index_pkg}for my$no_index_ns (@{$self->no_index->{namespace}}){return if index($package,"${no_index_ns}::")==0}return 1}sub features {my ($self)=@_;my$opt_f=$self->optional_features;my@features=map {;CPAN::Meta::Feature->new($_=>$opt_f->{$_ })}keys %$opt_f;return@features}sub feature {my ($self,$ident)=@_;croak "no feature named $ident" unless my$f=$self->optional_features->{$ident };return CPAN::Meta::Feature->new($ident,$f)}sub as_struct {my ($self,$options)=@_;my$struct=_dclone($self);if ($options->{version}){my$cmc=CPAN::Meta::Converter->new($struct);$struct=$cmc->convert(version=>$options->{version})}return$struct}sub as_string {my ($self,$options)=@_;my$version=$options->{version}|| '2';my$struct;if ($self->meta_spec_version ne $version){my$cmc=CPAN::Meta::Converter->new($self->as_struct);$struct=$cmc->convert(version=>$version)}else {$struct=$self->as_struct}my ($data,$backend);if ($version ge '2'){$backend=Parse::CPAN::Meta->json_backend();local$struct->{x_serialization_backend}=sprintf '%s version %s',$backend,$backend->VERSION;$data=$backend->new->pretty->canonical->encode($struct)}else {$backend=Parse::CPAN::Meta->yaml_backend();local$struct->{x_serialization_backend}=sprintf '%s version %s',$backend,$backend->VERSION;$data=eval {no strict 'refs';&{"$backend\::Dump"}($struct)};if ($@){croak$backend->can('errstr')? $backend->errstr : $@}}return$data}sub TO_JSON {return {%{$_[0]}}}1; -CPAN_META - -$fatpacked{"CPAN/Meta/Check.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_CHECK'; - package CPAN::Meta::Check;$CPAN::Meta::Check::VERSION='0.012';use strict;use warnings;use base 'Exporter';our@EXPORT=qw//;our@EXPORT_OK=qw/check_requirements requirements_for verify_dependencies/;our%EXPORT_TAGS=(all=>[@EXPORT,@EXPORT_OK ]);use CPAN::Meta::Prereqs '2.132830';use CPAN::Meta::Requirements 2.121;use Module::Metadata 1.000023;sub _check_dep {my ($reqs,$module,$dirs)=@_;$module eq 'perl' and return ($reqs->accepts_module($module,$])? (): sprintf "Your Perl (%s) is not in the range '%s'",$],$reqs->requirements_for_module($module));my$metadata=Module::Metadata->new_from_module($module,inc=>$dirs);return "Module '$module' is not installed" if not defined$metadata;my$version=eval {$metadata->version};return "Missing version info for module '$module'" if$reqs->requirements_for_module($module)and not $version;return sprintf 'Installed version (%s) of %s is not in range \'%s\'',$version,$module,$reqs->requirements_for_module($module)if not $reqs->accepts_module($module,$version || 0);return}sub _check_conflict {my ($reqs,$module,$dirs)=@_;my$metadata=Module::Metadata->new_from_module($module,inc=>$dirs);return if not defined$metadata;my$version=eval {$metadata->version};return "Missing version info for module '$module'" if not $version;return sprintf 'Installed version (%s) of %s is in range \'%s\'',$version,$module,$reqs->requirements_for_module($module)if$reqs->accepts_module($module,$version);return}sub requirements_for {my ($meta,$phases,$type)=@_;my$prereqs=ref($meta)eq 'CPAN::Meta' ? $meta->effective_prereqs : $meta;return$prereqs->merged_requirements(ref($phases)? $phases : [$phases ],[$type ])}sub check_requirements {my ($reqs,$type,$dirs)=@_;return +{map {$_=>$type ne 'conflicts' ? scalar _check_dep($reqs,$_,$dirs): scalar _check_conflict($reqs,$_,$dirs)}$reqs->required_modules }}sub verify_dependencies {my ($meta,$phases,$type,$dirs)=@_;my$reqs=requirements_for($meta,$phases,$type);my$issues=check_requirements($reqs,$type,$dirs);return grep {defined}values %{$issues}}1; -CPAN_META_CHECK - -$fatpacked{"CPAN/Meta/Converter.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_CONVERTER'; - use 5.006;use strict;use warnings;package CPAN::Meta::Converter;our$VERSION='2.150005';use CPAN::Meta::Validator;use CPAN::Meta::Requirements;use Parse::CPAN::Meta 1.4400 ();BEGIN {eval "use version ()";if (my$err=$@){eval "use ExtUtils::MakeMaker::version" or die$err}}*_is_qv=version->can('is_qv')? sub {$_[0]->is_qv}: sub {exists $_[0]->{qv}};sub _dclone {my$ref=shift;no warnings 'once';no warnings 'redefine';local*UNIVERSAL::TO_JSON=sub {"$_[0]"};my$json=Parse::CPAN::Meta->json_backend()->new ->utf8 ->allow_blessed ->convert_blessed;$json->decode($json->encode($ref))}my%known_specs=('2'=>'http://search.cpan.org/perldoc?CPAN::Meta::Spec','1.4'=>'http://module-build.sourceforge.net/META-spec-v1.4.html','1.3'=>'http://module-build.sourceforge.net/META-spec-v1.3.html','1.2'=>'http://module-build.sourceforge.net/META-spec-v1.2.html','1.1'=>'http://module-build.sourceforge.net/META-spec-v1.1.html','1.0'=>'http://module-build.sourceforge.net/META-spec-v1.0.html');my@spec_list=sort {$a <=> $b}keys%known_specs;my ($LOWEST,$HIGHEST)=@spec_list[0,-1];sub _keep {$_[0]}sub _keep_or_one {defined($_[0])? $_[0]: 1}sub _keep_or_zero {defined($_[0])? $_[0]: 0}sub _keep_or_unknown {defined($_[0])&& length($_[0])? $_[0]: "unknown"}sub _generated_by {my$gen=shift;my$sig=__PACKAGE__ ." version " .(__PACKAGE__->VERSION || "<dev>");return$sig unless defined$gen and length$gen;return$gen if$gen =~ /\Q$sig/;return "$gen, $sig"}sub _listify {!defined $_[0]? undef : ref $_[0]eq 'ARRAY' ? $_[0]: [$_[0]]}sub _prefix_custom {my$key=shift;$key =~ s/^(?!x_) # Unless it already starts with x_ - (?:x-?)? # Remove leading x- or x (if present) - /x_/ix;return$key}sub _ucfirst_custom {my$key=shift;$key=ucfirst$key unless$key =~ /[A-Z]/;return$key}sub _no_prefix_ucfirst_custom {my$key=shift;$key =~ s/^x_//;return _ucfirst_custom($key)}sub _change_meta_spec {my ($element,undef,undef,$version)=@_;return {version=>$version,url=>$known_specs{$version},}}my@open_source=('perl','gpl','apache','artistic','artistic_2','lgpl','bsd','gpl','mit','mozilla','open_source',);my%is_open_source=map {;$_=>1}@open_source;my@valid_licenses_1=(@open_source,'unrestricted','restrictive','unknown',);my%license_map_1=((map {$_=>$_}@valid_licenses_1),artistic2=>'artistic_2',);sub _license_1 {my ($element)=@_;return 'unknown' unless defined$element;if ($license_map_1{lc$element}){return$license_map_1{lc$element}}else {return 'unknown'}}my@valid_licenses_2=qw(agpl_3 apache_1_1 apache_2_0 artistic_1 artistic_2 bsd freebsd gfdl_1_2 gfdl_1_3 gpl_1 gpl_2 gpl_3 lgpl_2_1 lgpl_3_0 mit mozilla_1_0 mozilla_1_1 openssl perl_5 qpl_1_0 ssleay sun zlib open_source restricted unrestricted unknown);my%license_map_2=((map {$_=>$_}@valid_licenses_2),apache=>'apache_2_0',artistic=>'artistic_1',artistic2=>'artistic_2',gpl=>'open_source',lgpl=>'open_source',mozilla=>'open_source',perl=>'perl_5',restrictive=>'restricted',);sub _license_2 {my ($element)=@_;return ['unknown' ]unless defined$element;$element=[$element ]unless ref$element eq 'ARRAY';my@new_list;for my$lic (@$element){next unless defined$lic;if (my$new=$license_map_2{lc$lic}){push@new_list,$new}}return@new_list ? \@new_list : ['unknown' ]}my%license_downgrade_map=qw(agpl_3 open_source apache_1_1 apache apache_2_0 apache artistic_1 artistic artistic_2 artistic_2 bsd bsd freebsd open_source gfdl_1_2 open_source gfdl_1_3 open_source gpl_1 gpl gpl_2 gpl gpl_3 gpl lgpl_2_1 lgpl lgpl_3_0 lgpl mit mit mozilla_1_0 mozilla mozilla_1_1 mozilla openssl open_source perl_5 perl qpl_1_0 open_source ssleay open_source sun open_source zlib open_source open_source open_source restricted restrictive unrestricted unrestricted unknown unknown);sub _downgrade_license {my ($element)=@_;if (!defined$element){return "unknown"}elsif(ref$element eq 'ARRAY'){if (@$element > 1){if (grep {!$is_open_source{$license_downgrade_map{lc $_}|| 'unknown' }}@$element){return 'unknown'}else {return 'open_source'}}elsif (@$element==1){return$license_downgrade_map{lc$element->[0]}|| "unknown"}}elsif (!ref$element){return$license_downgrade_map{lc$element}|| "unknown"}return "unknown"}my$no_index_spec_1_2={'file'=>\&_listify,'dir'=>\&_listify,'package'=>\&_listify,'namespace'=>\&_listify,};my$no_index_spec_1_3={'file'=>\&_listify,'directory'=>\&_listify,'package'=>\&_listify,'namespace'=>\&_listify,};my$no_index_spec_2={'file'=>\&_listify,'directory'=>\&_listify,'package'=>\&_listify,'namespace'=>\&_listify,':custom'=>\&_prefix_custom,};sub _no_index_1_2 {my (undef,undef,$meta)=@_;my$no_index=$meta->{no_index}|| $meta->{private};return unless$no_index;if (!ref$no_index){my$item=$no_index;$no_index={dir=>[$item ],file=>[$item ]}}elsif (ref$no_index eq 'ARRAY'){my$list=$no_index;$no_index={dir=>[@$list ],file=>[@$list ]}}if (exists$no_index->{files}){$no_index->{file}=delete$no_index->{files}}if (exists$no_index->{modules}){$no_index->{module}=delete$no_index->{modules}}return _convert($no_index,$no_index_spec_1_2)}sub _no_index_directory {my ($element,$key,$meta,$version)=@_;return unless$element;if (!ref$element){my$item=$element;$element={directory=>[$item ],file=>[$item ]}}elsif (ref$element eq 'ARRAY'){my$list=$element;$element={directory=>[@$list ],file=>[@$list ]}}if (exists$element->{dir}){$element->{directory}=delete$element->{dir}}if (exists$element->{files}){$element->{file}=delete$element->{files}}if (exists$element->{modules}){$element->{module}=delete$element->{modules}}my$spec=$version==2 ? $no_index_spec_2 : $no_index_spec_1_3;return _convert($element,$spec)}sub _is_module_name {my$mod=shift;return unless defined$mod && length$mod;return$mod =~ m{^[A-Za-z][A-Za-z0-9_]*(?:::[A-Za-z0-9_]+)*$}}sub _clean_version {my ($element)=@_;return 0 if!defined$element;$element =~ s{^\s*}{};$element =~ s{\s*$}{};$element =~ s{^\.}{0.};return 0 if!length$element;return 0 if ($element eq 'undef' || $element eq '<undef>');my$v=eval {version->new($element)};if (defined$v){return _is_qv($v)? $v->normal : $element}else {return 0}}sub _bad_version_hook {my ($v)=@_;$v =~ s{^\s*}{};$v =~ s{\s*$}{};$v =~ s{[a-z]+$}{};my$vobj=eval {version->new($v)};return defined($vobj)? $vobj : version->new(0)}sub _version_map {my ($element)=@_;return unless defined$element;if (ref$element eq 'HASH'){my$new_map=CPAN::Meta::Requirements->new({bad_version_hook=>\&_bad_version_hook });while (my ($k,$v)=each %$element){next unless _is_module_name($k);if (!defined($v)||!length($v)|| $v eq 'undef' || $v eq '<undef>'){$v=0}if (_is_module_name($v)&&!version::is_lax($v)){$new_map->add_minimum($k=>0);$new_map->add_minimum($v=>0)}$new_map->add_string_requirement($k=>$v)}return$new_map->as_string_hash}elsif (ref$element eq 'ARRAY'){my$hashref={map {$_=>0}@$element };return _version_map($hashref)}elsif (ref$element eq '' && length$element){return {$element=>0 }}return}sub _prereqs_from_1 {my (undef,undef,$meta)=@_;my$prereqs={};for my$phase (qw/build configure/){my$key="${phase}_requires";$prereqs->{$phase}{requires}=_version_map($meta->{$key})if$meta->{$key}}for my$rel (qw/requires recommends conflicts/){$prereqs->{runtime}{$rel}=_version_map($meta->{$rel})if$meta->{$rel}}return$prereqs}my$prereqs_spec={configure=>\&_prereqs_rel,build=>\&_prereqs_rel,test=>\&_prereqs_rel,runtime=>\&_prereqs_rel,develop=>\&_prereqs_rel,':custom'=>\&_prefix_custom,};my$relation_spec={requires=>\&_version_map,recommends=>\&_version_map,suggests=>\&_version_map,conflicts=>\&_version_map,':custom'=>\&_prefix_custom,};sub _cleanup_prereqs {my ($prereqs,$key,$meta,$to_version)=@_;return unless$prereqs && ref$prereqs eq 'HASH';return _convert($prereqs,$prereqs_spec,$to_version)}sub _prereqs_rel {my ($relation,$key,$meta,$to_version)=@_;return unless$relation && ref$relation eq 'HASH';return _convert($relation,$relation_spec,$to_version)}BEGIN {my@old_prereqs=qw(requires configure_requires recommends conflicts);for (@old_prereqs){my$sub="_get_$_";my ($phase,$type)=split qr/_/,$_;if (!defined$type){$type=$phase;$phase='runtime'}no strict 'refs';*{$sub}=sub {_extract_prereqs($_[2]->{prereqs},$phase,$type)}}}sub _get_build_requires {my ($data,$key,$meta)=@_;my$test_h=_extract_prereqs($_[2]->{prereqs},qw(test requires))|| {};my$build_h=_extract_prereqs($_[2]->{prereqs},qw(build requires))|| {};my$test_req=CPAN::Meta::Requirements->from_string_hash($test_h);my$build_req=CPAN::Meta::Requirements->from_string_hash($build_h);$test_req->add_requirements($build_req)->as_string_hash}sub _extract_prereqs {my ($prereqs,$phase,$type)=@_;return unless ref$prereqs eq 'HASH';return scalar _version_map($prereqs->{$phase}{$type})}sub _downgrade_optional_features {my (undef,undef,$meta)=@_;return unless exists$meta->{optional_features};my$origin=$meta->{optional_features};my$features={};for my$name (keys %$origin){$features->{$name}={description=>$origin->{$name}{description},requires=>_extract_prereqs($origin->{$name}{prereqs},'runtime','requires'),configure_requires=>_extract_prereqs($origin->{$name}{prereqs},'runtime','configure_requires'),build_requires=>_extract_prereqs($origin->{$name}{prereqs},'runtime','build_requires'),recommends=>_extract_prereqs($origin->{$name}{prereqs},'runtime','recommends'),conflicts=>_extract_prereqs($origin->{$name}{prereqs},'runtime','conflicts'),};for my$k (keys %{$features->{$name}}){delete$features->{$name}{$k}unless defined$features->{$name}{$k}}}return$features}sub _upgrade_optional_features {my (undef,undef,$meta)=@_;return unless exists$meta->{optional_features};my$origin=$meta->{optional_features};my$features={};for my$name (keys %$origin){$features->{$name}={description=>$origin->{$name}{description},prereqs=>_prereqs_from_1(undef,undef,$origin->{$name}),};delete$features->{$name}{prereqs}{configure}}return$features}my$optional_features_2_spec={description=>\&_keep,prereqs=>\&_cleanup_prereqs,':custom'=>\&_prefix_custom,};sub _feature_2 {my ($element,$key,$meta,$to_version)=@_;return unless$element && ref$element eq 'HASH';_convert($element,$optional_features_2_spec,$to_version)}sub _cleanup_optional_features_2 {my ($element,$key,$meta,$to_version)=@_;return unless$element && ref$element eq 'HASH';my$new_data={};for my$k (keys %$element){$new_data->{$k}=_feature_2($element->{$k},$k,$meta,$to_version)}return unless keys %$new_data;return$new_data}sub _optional_features_1_4 {my ($element)=@_;return unless$element;$element=_optional_features_as_map($element);for my$name (keys %$element){for my$drop (qw/requires_packages requires_os excluded_os/){delete$element->{$name}{$drop}}}return$element}sub _optional_features_as_map {my ($element)=@_;return unless$element;if (ref$element eq 'ARRAY'){my%map;for my$feature (@$element){my (@parts)=%$feature;$map{$parts[0]}=$parts[1]}$element=\%map}return$element}sub _is_urlish {defined $_[0]&& $_[0]=~ m{\A[-+.a-z0-9]+:.+}i}sub _url_or_drop {my ($element)=@_;return$element if _is_urlish($element);return}sub _url_list {my ($element)=@_;return unless$element;$element=_listify($element);$element=[grep {_is_urlish($_)}@$element ];return unless @$element;return$element}sub _author_list {my ($element)=@_;return ['unknown' ]unless$element;$element=_listify($element);$element=[map {defined $_ && length $_ ? $_ : 'unknown'}@$element ];return ['unknown' ]unless @$element;return$element}my$resource2_upgrade={license=>sub {return _is_urlish($_[0])? _listify($_[0]): undef},homepage=>\&_url_or_drop,bugtracker=>sub {my ($item)=@_;return unless$item;if ($item =~ m{^mailto:(.*)$}){return {mailto=>$1 }}elsif(_is_urlish($item)){return {web=>$item }}else {return}},repository=>sub {return _is_urlish($_[0])? {url=>$_[0]}: undef},':custom'=>\&_prefix_custom,};sub _upgrade_resources_2 {my (undef,undef,$meta,$version)=@_;return unless exists$meta->{resources};return _convert($meta->{resources},$resource2_upgrade)}my$bugtracker2_spec={web=>\&_url_or_drop,mailto=>\&_keep,':custom'=>\&_prefix_custom,};sub _repo_type {my ($element,$key,$meta,$to_version)=@_;return$element if defined$element;return unless exists$meta->{url};my$repo_url=$meta->{url};for my$type (qw/git svn/){return$type if$repo_url =~ m{\A$type}}return}my$repository2_spec={web=>\&_url_or_drop,url=>\&_url_or_drop,type=>\&_repo_type,':custom'=>\&_prefix_custom,};my$resources2_cleanup={license=>\&_url_list,homepage=>\&_url_or_drop,bugtracker=>sub {ref $_[0]? _convert($_[0],$bugtracker2_spec): undef},repository=>sub {my$data=shift;ref$data ? _convert($data,$repository2_spec): undef},':custom'=>\&_prefix_custom,};sub _cleanup_resources_2 {my ($resources,$key,$meta,$to_version)=@_;return unless$resources && ref$resources eq 'HASH';return _convert($resources,$resources2_cleanup,$to_version)}my$resource1_spec={license=>\&_url_or_drop,homepage=>\&_url_or_drop,bugtracker=>\&_url_or_drop,repository=>\&_url_or_drop,':custom'=>\&_keep,};sub _resources_1_3 {my (undef,undef,$meta,$version)=@_;return unless exists$meta->{resources};return _convert($meta->{resources},$resource1_spec)}*_resources_1_4=*_resources_1_3;sub _resources_1_2 {my (undef,undef,$meta)=@_;my$resources=$meta->{resources}|| {};if ($meta->{license_url}&&!$resources->{license}){$resources->{license}=$meta->{license_url}if _is_urlish($meta->{license_url})}return unless keys %$resources;return _convert($resources,$resource1_spec)}my$resource_downgrade_spec={license=>sub {return ref $_[0]? $_[0]->[0]: $_[0]},homepage=>\&_url_or_drop,bugtracker=>sub {return $_[0]->{web}},repository=>sub {return $_[0]->{url}|| $_[0]->{web}},':custom'=>\&_no_prefix_ucfirst_custom,};sub _downgrade_resources {my (undef,undef,$meta,$version)=@_;return unless exists$meta->{resources};return _convert($meta->{resources},$resource_downgrade_spec)}sub _release_status {my ($element,undef,$meta)=@_;return$element if$element && $element =~ m{\A(?:stable|testing|unstable)\z};return _release_status_from_version(undef,undef,$meta)}sub _release_status_from_version {my (undef,undef,$meta)=@_;my$version=$meta->{version}|| '';return ($version =~ /_/)? 'testing' : 'stable'}my$provides_spec={file=>\&_keep,version=>\&_keep,};my$provides_spec_2={file=>\&_keep,version=>\&_keep,':custom'=>\&_prefix_custom,};sub _provides {my ($element,$key,$meta,$to_version)=@_;return unless defined$element && ref$element eq 'HASH';my$spec=$to_version==2 ? $provides_spec_2 : $provides_spec;my$new_data={};for my$k (keys %$element){$new_data->{$k}=_convert($element->{$k},$spec,$to_version);$new_data->{$k}{version}=_clean_version($element->{$k}{version})if exists$element->{$k}{version}}return$new_data}sub _convert {my ($data,$spec,$to_version,$is_fragment)=@_;my$new_data={};for my$key (keys %$spec){next if$key eq ':custom' || $key eq ':drop';next unless my$fcn=$spec->{$key};if ($is_fragment && $key eq 'generated_by'){$fcn=\&_keep}die "spec for '$key' is not a coderef" unless ref$fcn && ref$fcn eq 'CODE';my$new_value=$fcn->($data->{$key},$key,$data,$to_version);$new_data->{$key}=$new_value if defined$new_value}my$drop_list=$spec->{':drop'};my$customizer=$spec->{':custom'}|| \&_keep;for my$key (keys %$data){next if$drop_list && grep {$key eq $_}@$drop_list;next if exists$spec->{$key};$new_data->{$customizer->($key)}=$data->{$key}}return$new_data}my%up_convert=('2-from-1.4'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_2,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'release_status'=>\&_release_status,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_upgrade_optional_features,'provides'=>\&_provides,'resources'=>\&_upgrade_resources_2,'description'=>\&_keep,'prereqs'=>\&_prereqs_from_1,':drop'=>[qw(build_requires configure_requires conflicts distribution_type license_url private recommends requires) ],':custom'=>\&_prefix_custom,},'1.4-from-1.3'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_optional_features_1_4,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_4,'configure_requires'=>\&_keep,':drop'=>[qw(license_url private)],':custom'=>\&_keep },'1.3-from-1.2'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_3,':drop'=>[qw(license_url private)],':custom'=>\&_keep },'1.2-from-1.1'=>{'version'=>\&_keep,'license'=>\&_license_1,'name'=>\&_keep,'generated_by'=>\&_generated_by,'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'meta-spec'=>\&_change_meta_spec,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'recommends'=>\&_version_map,'requires'=>\&_version_map,'keywords'=>\&_keep,'no_index'=>\&_no_index_1_2,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'resources'=>\&_resources_1_2,':drop'=>[qw(license_url private)],':custom'=>\&_keep },'1.1-from-1.0'=>{'version'=>\&_keep,'name'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'recommends'=>\&_version_map,'requires'=>\&_version_map,'license_url'=>\&_url_or_drop,'private'=>\&_keep,':custom'=>\&_keep },);my%down_convert=('1.4-from-2'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_downgrade_license,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_get_build_requires,'configure_requires'=>\&_get_configure_requires,'conflicts'=>\&_get_conflicts,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_downgrade_optional_features,'provides'=>\&_provides,'recommends'=>\&_get_recommends,'requires'=>\&_get_requires,'resources'=>\&_downgrade_resources,':drop'=>[qw(description prereqs release_status)],':custom'=>\&_keep },'1.3-from-1.4'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_3,':drop'=>[qw(configure_requires)],':custom'=>\&_keep,},'1.2-from-1.3'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_1_2,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_3,':custom'=>\&_keep,},'1.1-from-1.2'=>{'version'=>\&_keep,'name'=>\&_keep,'meta-spec'=>\&_change_meta_spec,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'private'=>\&_keep,'recommends'=>\&_version_map,'requires'=>\&_version_map,':drop'=>[qw(abstract author provides no_index keywords resources)],':custom'=>\&_keep,},'1.0-from-1.1'=>{'name'=>\&_keep,'meta-spec'=>\&_change_meta_spec,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'recommends'=>\&_version_map,'requires'=>\&_version_map,':custom'=>\&_keep,},);my%cleanup=('2'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_2,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'release_status'=>\&_release_status,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_cleanup_optional_features_2,'provides'=>\&_provides,'resources'=>\&_cleanup_resources_2,'description'=>\&_keep,'prereqs'=>\&_cleanup_prereqs,':drop'=>[qw(build_requires configure_requires conflicts distribution_type license_url private recommends requires) ],':custom'=>\&_prefix_custom,},'1.4'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_optional_features_1_4,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_4,'configure_requires'=>\&_keep,':custom'=>\&_keep },'1.3'=>{'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'meta-spec'=>\&_change_meta_spec,'name'=>\&_keep,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'keywords'=>\&_keep,'no_index'=>\&_no_index_directory,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'recommends'=>\&_version_map,'requires'=>\&_version_map,'resources'=>\&_resources_1_3,':custom'=>\&_keep },'1.2'=>{'version'=>\&_keep,'license'=>\&_license_1,'name'=>\&_keep,'generated_by'=>\&_generated_by,'abstract'=>\&_keep_or_unknown,'author'=>\&_author_list,'meta-spec'=>\&_change_meta_spec,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'recommends'=>\&_version_map,'requires'=>\&_version_map,'keywords'=>\&_keep,'no_index'=>\&_no_index_1_2,'optional_features'=>\&_optional_features_as_map,'provides'=>\&_provides,'resources'=>\&_resources_1_2,':custom'=>\&_keep },'1.1'=>{'version'=>\&_keep,'name'=>\&_keep,'meta-spec'=>\&_change_meta_spec,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'recommends'=>\&_version_map,'requires'=>\&_version_map,'license_url'=>\&_url_or_drop,'private'=>\&_keep,':custom'=>\&_keep },'1.0'=>{'name'=>\&_keep,'meta-spec'=>\&_change_meta_spec,'version'=>\&_keep,'build_requires'=>\&_version_map,'conflicts'=>\&_version_map,'distribution_type'=>\&_keep,'dynamic_config'=>\&_keep_or_one,'generated_by'=>\&_generated_by,'license'=>\&_license_1,'recommends'=>\&_version_map,'requires'=>\&_version_map,':custom'=>\&_keep,},);my%fragments_generate=('2'=>{'abstract'=>'abstract','author'=>'author','generated_by'=>'generated_by','license'=>'license','name'=>'name','version'=>'version','dynamic_config'=>'dynamic_config','release_status'=>'release_status','keywords'=>'keywords','no_index'=>'no_index','optional_features'=>'optional_features','provides'=>'provides','resources'=>'resources','description'=>'description','prereqs'=>'prereqs',},'1.4'=>{'abstract'=>'abstract','author'=>'author','generated_by'=>'generated_by','license'=>'license','name'=>'name','version'=>'version','build_requires'=>'prereqs','conflicts'=>'prereqs','distribution_type'=>'distribution_type','dynamic_config'=>'dynamic_config','keywords'=>'keywords','no_index'=>'no_index','optional_features'=>'optional_features','provides'=>'provides','recommends'=>'prereqs','requires'=>'prereqs','resources'=>'resources','configure_requires'=>'prereqs',},);$fragments_generate{$_}=$fragments_generate{'1.4'}for qw/1.3 1.2 1.1 1.0/;sub new {my ($class,$data,%args)=@_;my$self={'data'=>$data,'spec'=>_extract_spec_version($data,$args{default_version}),};return bless$self,$class}sub _extract_spec_version {my ($data,$default)=@_;my$spec=$data->{'meta-spec'};return($default || "1.0")unless defined$spec && ref$spec eq 'HASH';my$v=$spec->{version};if (defined$v && $v =~ /^\d+(?:\.\d+)?$/){return$v if defined$v && grep {$v eq $_}keys%known_specs;return$v+0 if defined$v && grep {$v==$_}keys%known_specs}return "2" if exists$data->{prereqs};return "1.4" if exists$data->{configure_requires};return($default || "1.2")}sub convert {my ($self,%args)=@_;my$args={%args };my$new_version=$args->{version}|| $HIGHEST;my$is_fragment=$args->{is_fragment};my ($old_version)=$self->{spec};my$converted=_dclone($self->{data});if ($old_version==$new_version){$converted=_convert($converted,$cleanup{$old_version},$old_version,$is_fragment);unless ($args->{is_fragment}){my$cmv=CPAN::Meta::Validator->new($converted);unless ($cmv->is_valid){my$errs=join("\n",$cmv->errors);die "Failed to clean-up $old_version metadata. Errors:\n$errs\n"}}return$converted}elsif ($old_version > $new_version){my@vers=sort {$b <=> $a}keys%known_specs;for my$i (0 .. $#vers-1){next if$vers[$i]> $old_version;last if$vers[$i+1]< $new_version;my$spec_string="$vers[$i+1]-from-$vers[$i]";$converted=_convert($converted,$down_convert{$spec_string},$vers[$i+1],$is_fragment);unless ($args->{is_fragment}){my$cmv=CPAN::Meta::Validator->new($converted);unless ($cmv->is_valid){my$errs=join("\n",$cmv->errors);die "Failed to downconvert metadata to $vers[$i+1]. Errors:\n$errs\n"}}}return$converted}else {my@vers=sort {$a <=> $b}keys%known_specs;for my$i (0 .. $#vers-1){next if$vers[$i]< $old_version;last if$vers[$i+1]> $new_version;my$spec_string="$vers[$i+1]-from-$vers[$i]";$converted=_convert($converted,$up_convert{$spec_string},$vers[$i+1],$is_fragment);unless ($args->{is_fragment}){my$cmv=CPAN::Meta::Validator->new($converted);unless ($cmv->is_valid){my$errs=join("\n",$cmv->errors);die "Failed to upconvert metadata to $vers[$i+1]. Errors:\n$errs\n"}}}return$converted}}sub upgrade_fragment {my ($self)=@_;my ($old_version)=$self->{spec};my%expected=map {;$_=>1}grep {defined}map {$fragments_generate{$old_version}{$_}}keys %{$self->{data}};my$converted=$self->convert(version=>$HIGHEST,is_fragment=>1);for my$key (keys %$converted){next if$key =~ /^x_/i || $key eq 'meta-spec';delete$converted->{$key}unless$expected{$key}}return$converted}1; -CPAN_META_CONVERTER - -$fatpacked{"CPAN/Meta/Feature.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_FEATURE'; - use 5.006;use strict;use warnings;package CPAN::Meta::Feature;our$VERSION='2.150005';use CPAN::Meta::Prereqs;sub new {my ($class,$identifier,$spec)=@_;my%guts=(identifier=>$identifier,description=>$spec->{description},prereqs=>CPAN::Meta::Prereqs->new($spec->{prereqs}),);bless \%guts=>$class}sub identifier {$_[0]{identifier}}sub description {$_[0]{description}}sub prereqs {$_[0]{prereqs}}1; -CPAN_META_FEATURE - -$fatpacked{"CPAN/Meta/History.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_HISTORY'; - use 5.006;use strict;use warnings;package CPAN::Meta::History;our$VERSION='2.150005';1; -CPAN_META_HISTORY - -$fatpacked{"CPAN/Meta/Merge.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_MERGE'; - use strict;use warnings;package CPAN::Meta::Merge;our$VERSION='2.150005';use Carp qw/croak/;use Scalar::Util qw/blessed/;use CPAN::Meta::Converter 2.141170;sub _is_identical {my ($left,$right)=@_;return (not defined$left and not defined$right)|| (defined$left and defined$right and $left eq $right)}sub _identical {my ($left,$right,$path)=@_;croak sprintf "Can't merge attribute %s: '%s' does not equal '%s'",join('.',@{$path}),$left,$right unless _is_identical($left,$right);return$left}sub _merge {my ($current,$next,$mergers,$path)=@_;for my$key (keys %{$next}){if (not exists$current->{$key}){$current->{$key}=$next->{$key}}elsif (my$merger=$mergers->{$key}){$current->{$key}=$merger->($current->{$key},$next->{$key},[@{$path},$key ])}elsif ($merger=$mergers->{':default'}){$current->{$key}=$merger->($current->{$key},$next->{$key},[@{$path},$key ])}else {croak sprintf "Can't merge unknown attribute '%s'",join '.',@{$path},$key}}return$current}sub _uniq {my%seen=();return grep {not $seen{$_}++}@_}sub _set_addition {my ($left,$right)=@_;return [+_uniq(@{$left},@{$right})]}sub _uniq_map {my ($left,$right,$path)=@_;for my$key (keys %{$right}){if (not exists$left->{$key}){$left->{$key}=$right->{$key}}elsif (_is_identical($left->{$key},$right->{$key})){1}elsif (ref$left->{$key}eq 'HASH' and ref$right->{$key}eq 'HASH'){$left->{$key}=_uniq_map($left->{$key},$right->{$key},[@{$path},$key ])}else {croak 'Duplication of element ' .join '.',@{$path},$key}}return$left}sub _improvize {my ($left,$right,$path)=@_;my ($name)=reverse @{$path};if ($name =~ /^x_/){if (ref($left)eq 'ARRAY'){return _set_addition($left,$right,$path)}elsif (ref($left)eq 'HASH'){return _uniq_map($left,$right,$path)}else {return _identical($left,$right,$path)}}croak sprintf "Can't merge '%s'",join '.',@{$path}}sub _optional_features {my ($left,$right,$path)=@_;for my$key (keys %{$right}){if (not exists$left->{$key}){$left->{$key}=$right->{$key}}else {for my$subkey (keys %{$right->{$key}}){next if$subkey eq 'prereqs';if (not exists$left->{$key}{$subkey}){$left->{$key}{$subkey}=$right->{$key}{$subkey}}else {Carp::croak "Cannot merge two optional_features named '$key' with different '$subkey' values" if do {no warnings 'uninitialized';$left->{$key}{$subkey}ne $right->{$key}{$subkey}}}}require CPAN::Meta::Prereqs;$left->{$key}{prereqs}=CPAN::Meta::Prereqs->new($left->{$key}{prereqs})->with_merged_prereqs(CPAN::Meta::Prereqs->new($right->{$key}{prereqs}))->as_string_hash}}return$left}my%default=(abstract=>\&_identical,author=>\&_set_addition,dynamic_config=>sub {my ($left,$right)=@_;return$left || $right},generated_by=>sub {my ($left,$right)=@_;return join ', ',_uniq(split(/, /,$left),split(/, /,$right))},license=>\&_set_addition,'meta-spec'=>{version=>\&_identical,url=>\&_identical },name=>\&_identical,release_status=>\&_identical,version=>\&_identical,description=>\&_identical,keywords=>\&_set_addition,no_index=>{map {($_=>\&_set_addition)}qw/file directory package namespace/ },optional_features=>\&_optional_features,prereqs=>sub {require CPAN::Meta::Prereqs;my ($left,$right)=map {CPAN::Meta::Prereqs->new($_)}@_[0,1];return$left->with_merged_prereqs($right)->as_string_hash},provides=>\&_uniq_map,resources=>{license=>\&_set_addition,homepage=>\&_identical,bugtracker=>\&_uniq_map,repository=>\&_uniq_map,':default'=>\&_improvize,},':default'=>\&_improvize,);sub new {my ($class,%arguments)=@_;croak 'default version required' if not exists$arguments{default_version};my%mapping=%default;my%extra=%{$arguments{extra_mappings}|| {}};for my$key (keys%extra){if (ref($mapping{$key})eq 'HASH'){$mapping{$key}={%{$mapping{$key}},%{$extra{$key}}}}else {$mapping{$key}=$extra{$key}}}return bless {default_version=>$arguments{default_version},mapping=>_coerce_mapping(\%mapping,[]),},$class}my%coderef_for=(set_addition=>\&_set_addition,uniq_map=>\&_uniq_map,identical=>\&_identical,improvize=>\&_improvize,);sub _coerce_mapping {my ($orig,$map_path)=@_;my%ret;for my$key (keys %{$orig}){my$value=$orig->{$key};if (ref($orig->{$key})eq 'CODE'){$ret{$key}=$value}elsif (ref($value)eq 'HASH'){my$mapping=_coerce_mapping($value,[@{$map_path},$key ]);$ret{$key}=sub {my ($left,$right,$path)=@_;return _merge($left,$right,$mapping,[@{$path}])}}elsif ($coderef_for{$value}){$ret{$key}=$coderef_for{$value}}else {croak "Don't know what to do with " .join '.',@{$map_path},$key}}return \%ret}sub merge {my ($self,@items)=@_;my$current={};for my$next (@items){if (blessed($next)&& $next->isa('CPAN::Meta')){$next=$next->as_struct}elsif (ref($next)eq 'HASH'){my$cmc=CPAN::Meta::Converter->new($next,default_version=>$self->{default_version});$next=$cmc->upgrade_fragment}else {croak "Don't know how to merge '$next'"}$current=_merge($current,$next,$self->{mapping},[])}return$current}1; -CPAN_META_MERGE - -$fatpacked{"CPAN/Meta/Prereqs.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_PREREQS'; - use 5.006;use strict;use warnings;package CPAN::Meta::Prereqs;our$VERSION='2.150005';use Carp qw(confess);use Scalar::Util qw(blessed);use CPAN::Meta::Requirements 2.121;sub __legal_phases {qw(configure build test runtime develop)}sub __legal_types {qw(requires recommends suggests conflicts)}sub new {my ($class,$prereq_spec)=@_;$prereq_spec ||= {};my%is_legal_phase=map {;$_=>1}$class->__legal_phases;my%is_legal_type=map {;$_=>1}$class->__legal_types;my%guts;PHASE: for my$phase (keys %$prereq_spec){next PHASE unless$phase =~ /\Ax_/i or $is_legal_phase{$phase};my$phase_spec=$prereq_spec->{$phase };next PHASE unless keys %$phase_spec;TYPE: for my$type (keys %$phase_spec){next TYPE unless$type =~ /\Ax_/i or $is_legal_type{$type};my$spec=$phase_spec->{$type };next TYPE unless keys %$spec;$guts{prereqs}{$phase}{$type}=CPAN::Meta::Requirements->from_string_hash($spec)}}return bless \%guts=>$class}sub requirements_for {my ($self,$phase,$type)=@_;confess "requirements_for called without phase" unless defined$phase;confess "requirements_for called without type" unless defined$type;unless ($phase =~ /\Ax_/i or grep {$phase eq $_}$self->__legal_phases){confess "requested requirements for unknown phase: $phase"}unless ($type =~ /\Ax_/i or grep {$type eq $_}$self->__legal_types){confess "requested requirements for unknown type: $type"}my$req=($self->{prereqs}{$phase}{$type}||= CPAN::Meta::Requirements->new);$req->finalize if$self->is_finalized;return$req}sub with_merged_prereqs {my ($self,$other)=@_;my@other=blessed($other)? $other : @$other;my@prereq_objs=($self,@other);my%new_arg;for my$phase ($self->__legal_phases){for my$type ($self->__legal_types){my$req=CPAN::Meta::Requirements->new;for my$prereq (@prereq_objs){my$this_req=$prereq->requirements_for($phase,$type);next unless$this_req->required_modules;$req->add_requirements($this_req)}next unless$req->required_modules;$new_arg{$phase }{$type }=$req->as_string_hash}}return (ref$self)->new(\%new_arg)}sub merged_requirements {my ($self,$phases,$types)=@_;$phases=[qw/runtime build test/]unless defined$phases;$types=[qw/requires recommends/]unless defined$types;confess "merged_requirements phases argument must be an arrayref" unless ref$phases eq 'ARRAY';confess "merged_requirements types argument must be an arrayref" unless ref$types eq 'ARRAY';my$req=CPAN::Meta::Requirements->new;for my$phase (@$phases){unless ($phase =~ /\Ax_/i or grep {$phase eq $_}$self->__legal_phases){confess "requested requirements for unknown phase: $phase"}for my$type (@$types){unless ($type =~ /\Ax_/i or grep {$type eq $_}$self->__legal_types){confess "requested requirements for unknown type: $type"}$req->add_requirements($self->requirements_for($phase,$type))}}$req->finalize if$self->is_finalized;return$req}sub as_string_hash {my ($self)=@_;my%hash;for my$phase ($self->__legal_phases){for my$type ($self->__legal_types){my$req=$self->requirements_for($phase,$type);next unless$req->required_modules;$hash{$phase }{$type }=$req->as_string_hash}}return \%hash}sub is_finalized {$_[0]{finalized}}sub finalize {my ($self)=@_;$self->{finalized}=1;for my$phase (keys %{$self->{prereqs}}){$_->finalize for values %{$self->{prereqs}{$phase}}}}sub clone {my ($self)=@_;my$clone=(ref$self)->new($self->as_string_hash)}1; -CPAN_META_PREREQS - -$fatpacked{"CPAN/Meta/Requirements.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_REQUIREMENTS'; - use strict;use warnings;package CPAN::Meta::Requirements;our$VERSION='2.133';use Carp ();BEGIN {eval "use version ()";if (my$err=$@){eval "use ExtUtils::MakeMaker::version" or die$err}}*_is_qv=version->can('is_qv')? sub {$_[0]->is_qv}: sub {exists $_[0]->{qv}};my$V0=version->new(0);my@valid_options=qw(bad_version_hook);sub new {my ($class,$options)=@_;$options ||= {};Carp::croak "Argument to $class\->new() must be a hash reference" unless ref$options eq 'HASH';my%self=map {;$_=>$options->{$_}}@valid_options;return bless \%self=>$class}sub _find_magic_vstring {my$value=shift;my$tvalue='';require B;my$sv=B::svref_2object(\$value);my$magic=ref($sv)eq 'B::PVMG' ? $sv->MAGIC : undef;while ($magic){if ($magic->TYPE eq 'V'){$tvalue=$magic->PTR;$tvalue =~ s/^v?(.+)$/v$1/;last}else {$magic=$magic->MOREMAGIC}}return$tvalue}sub _isa_version {UNIVERSAL::isa($_[0],'UNIVERSAL')&& $_[0]->isa('version')}sub _version_object {my ($self,$module,$version)=@_;my ($vobj,$err);if (not defined$version or (!ref($version)&& $version eq '0')){return$V0}elsif (ref($version)eq 'version' || _isa_version($version)){$vobj=$version}else {if ($INC{'version/vpp.pm'}|| $INC{'ExtUtils/MakeMaker/version/vpp.pm'}){my$magic=_find_magic_vstring($version);$version=$magic if length$magic}eval {local$SIG{__WARN__}=sub {die "Invalid version: $_[0]"};$vobj=version->new($version)};if (my$err=$@){my$hook=$self->{bad_version_hook};$vobj=eval {$hook->($version,$module)}if ref$hook eq 'CODE';unless (eval {$vobj->isa("version")}){$err =~ s{ at .* line \d+.*$}{};die "Can't convert '$version': $err"}}}if ($vobj =~ m{\A\.}){$vobj=version->new("0$vobj")}if (_is_qv($vobj)){$vobj=version->new($vobj->normal)}return$vobj}BEGIN {for my$type (qw(maximum exclusion exact_version)){my$method="with_$type";my$to_add=$type eq 'exact_version' ? $type : "add_$type";my$code=sub {my ($self,$name,$version)=@_;$version=$self->_version_object($name,$version);$self->__modify_entry_for($name,$method,$version);return$self};no strict 'refs';*$to_add=$code}}sub add_minimum {my ($self,$name,$version)=@_;if (not defined$version or "$version" eq '0'){return$self if$self->__entry_for($name);Carp::confess("can't add new requirements to finalized requirements")if$self->is_finalized;$self->{requirements}{$name }=CPAN::Meta::Requirements::_Range::Range->with_minimum($V0)}else {$version=$self->_version_object($name,$version);$self->__modify_entry_for($name,'with_minimum',$version)}return$self}sub add_requirements {my ($self,$req)=@_;for my$module ($req->required_modules){my$modifiers=$req->__entry_for($module)->as_modifiers;for my$modifier (@$modifiers){my ($method,@args)=@$modifier;$self->$method($module=>@args)}}return$self}sub accepts_module {my ($self,$module,$version)=@_;$version=$self->_version_object($module,$version);return 1 unless my$range=$self->__entry_for($module);return$range->_accepts($version)}sub clear_requirement {my ($self,$module)=@_;return$self unless$self->__entry_for($module);Carp::confess("can't clear requirements on finalized requirements")if$self->is_finalized;delete$self->{requirements}{$module };return$self}sub requirements_for_module {my ($self,$module)=@_;my$entry=$self->__entry_for($module);return unless$entry;return$entry->as_string}sub required_modules {keys %{$_[0]{requirements}}}sub clone {my ($self)=@_;my$new=(ref$self)->new;return$new->add_requirements($self)}sub __entry_for {$_[0]{requirements}{$_[1]}}sub __modify_entry_for {my ($self,$name,$method,$version)=@_;my$fin=$self->is_finalized;my$old=$self->__entry_for($name);Carp::confess("can't add new requirements to finalized requirements")if$fin and not $old;my$new=($old || 'CPAN::Meta::Requirements::_Range::Range')->$method($version);Carp::confess("can't modify finalized requirements")if$fin and $old->as_string ne $new->as_string;$self->{requirements}{$name }=$new}sub is_simple {my ($self)=@_;for my$module ($self->required_modules){return if$self->__entry_for($module)->as_string =~ /\s/}return 1}sub is_finalized {$_[0]{finalized}}sub finalize {$_[0]{finalized}=1}sub as_string_hash {my ($self)=@_;my%hash=map {;$_=>$self->{requirements}{$_}->as_string}$self->required_modules;return \%hash}my%methods_for_op=('=='=>[qw(exact_version) ],'!='=>[qw(add_exclusion) ],'>='=>[qw(add_minimum) ],'<='=>[qw(add_maximum) ],'>'=>[qw(add_minimum add_exclusion) ],'<'=>[qw(add_maximum add_exclusion) ],);sub add_string_requirement {my ($self,$module,$req)=@_;unless (defined$req && length$req){$req=0;$self->_blank_carp($module)}my$magic=_find_magic_vstring($req);if (length$magic){$self->add_minimum($module=>$magic);return}my@parts=split qr{\s*,\s*},$req;for my$part (@parts){my ($op,$ver)=$part =~ m{\A\s*(==|>=|>|<=|<|!=)\s*(.*)\z};if (!defined$op){$self->add_minimum($module=>$part)}else {Carp::confess("illegal requirement string: $req")unless my$methods=$methods_for_op{$op };$self->$_($module=>$ver)for @$methods}}}sub _blank_carp {my ($self,$module)=@_;Carp::carp("Undefined requirement for $module treated as '0'")}sub from_string_hash {my ($class,$hash,$options)=@_;my$self=$class->new($options);for my$module (keys %$hash){my$req=$hash->{$module};unless (defined$req && length$req){$req=0;$class->_blank_carp($module)}$self->add_string_requirement($module,$req)}return$self}{package CPAN::Meta::Requirements::_Range::Exact;sub _new {bless {version=>$_[1]}=>$_[0]}sub _accepts {return $_[0]{version}==$_[1]}sub as_string {return "== $_[0]{version}"}sub as_modifiers {return [[exact_version=>$_[0]{version}]]}sub _clone {(ref $_[0])->_new(version->new($_[0]{version}))}sub with_exact_version {my ($self,$version)=@_;return$self->_clone if$self->_accepts($version);Carp::confess("illegal requirements: unequal exact version specified")}sub with_minimum {my ($self,$minimum)=@_;return$self->_clone if$self->{version}>= $minimum;Carp::confess("illegal requirements: minimum above exact specification")}sub with_maximum {my ($self,$maximum)=@_;return$self->_clone if$self->{version}<= $maximum;Carp::confess("illegal requirements: maximum below exact specification")}sub with_exclusion {my ($self,$exclusion)=@_;return$self->_clone unless$exclusion==$self->{version};Carp::confess("illegal requirements: excluded exact specification")}}{package CPAN::Meta::Requirements::_Range::Range;sub _self {ref($_[0])? $_[0]: (bless {}=>$_[0])}sub _clone {return (bless {}=>$_[0])unless ref $_[0];my ($s)=@_;my%guts=((exists$s->{minimum}? (minimum=>version->new($s->{minimum})): ()),(exists$s->{maximum}? (maximum=>version->new($s->{maximum})): ()),(exists$s->{exclusions}? (exclusions=>[map {version->new($_)}@{$s->{exclusions}}]): ()),);bless \%guts=>ref($s)}sub as_modifiers {my ($self)=@_;my@mods;push@mods,[add_minimum=>$self->{minimum}]if exists$self->{minimum};push@mods,[add_maximum=>$self->{maximum}]if exists$self->{maximum};push@mods,map {;[add_exclusion=>$_ ]}@{$self->{exclusions}|| []};return \@mods}sub as_string {my ($self)=@_;return 0 if!keys %$self;return "$self->{minimum}" if (keys %$self)==1 and exists$self->{minimum};my@exclusions=@{$self->{exclusions}|| []};my@parts;for my$pair ([qw(>= > minimum) ],[qw(<= < maximum) ],){my ($op,$e_op,$k)=@$pair;if (exists$self->{$k}){my@new_exclusions=grep {$_!=$self->{$k }}@exclusions;if (@new_exclusions==@exclusions){push@parts,"$op $self->{ $k }"}else {push@parts,"$e_op $self->{ $k }";@exclusions=@new_exclusions}}}push@parts,map {;"!= $_"}@exclusions;return join q{, },@parts}sub with_exact_version {my ($self,$version)=@_;$self=$self->_clone;Carp::confess("illegal requirements: exact specification outside of range")unless$self->_accepts($version);return CPAN::Meta::Requirements::_Range::Exact->_new($version)}sub _simplify {my ($self)=@_;if (defined$self->{minimum}and defined$self->{maximum}){if ($self->{minimum}==$self->{maximum}){Carp::confess("illegal requirements: excluded all values")if grep {$_==$self->{minimum}}@{$self->{exclusions}|| []};return CPAN::Meta::Requirements::_Range::Exact->_new($self->{minimum})}Carp::confess("illegal requirements: minimum exceeds maximum")if$self->{minimum}> $self->{maximum}}if ($self->{exclusions}){my%seen;@{$self->{exclusions}}=grep {(!defined$self->{minimum}or $_ >= $self->{minimum})and (!defined$self->{maximum}or $_ <= $self->{maximum})and !$seen{$_}++}@{$self->{exclusions}}}return$self}sub with_minimum {my ($self,$minimum)=@_;$self=$self->_clone;if (defined (my$old_min=$self->{minimum})){$self->{minimum}=(sort {$b cmp $a}($minimum,$old_min))[0]}else {$self->{minimum}=$minimum}return$self->_simplify}sub with_maximum {my ($self,$maximum)=@_;$self=$self->_clone;if (defined (my$old_max=$self->{maximum})){$self->{maximum}=(sort {$a cmp $b}($maximum,$old_max))[0]}else {$self->{maximum}=$maximum}return$self->_simplify}sub with_exclusion {my ($self,$exclusion)=@_;$self=$self->_clone;push @{$self->{exclusions}||= []},$exclusion;return$self->_simplify}sub _accepts {my ($self,$version)=@_;return if defined$self->{minimum}and $version < $self->{minimum};return if defined$self->{maximum}and $version > $self->{maximum};return if defined$self->{exclusions}and grep {$version==$_}@{$self->{exclusions}};return 1}}1; -CPAN_META_REQUIREMENTS - -$fatpacked{"CPAN/Meta/Spec.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_SPEC'; - use 5.006;use strict;use warnings;package CPAN::Meta::Spec;our$VERSION='2.150005';1; -CPAN_META_SPEC - -$fatpacked{"CPAN/Meta/Validator.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_VALIDATOR'; - use 5.006;use strict;use warnings;package CPAN::Meta::Validator;our$VERSION='2.150005';my%known_specs=('1.4'=>'http://module-build.sourceforge.net/META-spec-v1.4.html','1.3'=>'http://module-build.sourceforge.net/META-spec-v1.3.html','1.2'=>'http://module-build.sourceforge.net/META-spec-v1.2.html','1.1'=>'http://module-build.sourceforge.net/META-spec-v1.1.html','1.0'=>'http://module-build.sourceforge.net/META-spec-v1.0.html');my%known_urls=map {$known_specs{$_}=>$_}keys%known_specs;my$module_map1={'map'=>{':key'=>{name=>\&module,value=>\&exversion }}};my$module_map2={'map'=>{':key'=>{name=>\&module,value=>\&version }}};my$no_index_2={'map'=>{file=>{list=>{value=>\&string }},directory=>{list=>{value=>\&string }},'package'=>{list=>{value=>\&string }},namespace=>{list=>{value=>\&string }},':key'=>{name=>\&custom_2,value=>\&anything },}};my$no_index_1_3={'map'=>{file=>{list=>{value=>\&string }},directory=>{list=>{value=>\&string }},'package'=>{list=>{value=>\&string }},namespace=>{list=>{value=>\&string }},':key'=>{name=>\&string,value=>\&anything },}};my$no_index_1_2={'map'=>{file=>{list=>{value=>\&string }},dir=>{list=>{value=>\&string }},'package'=>{list=>{value=>\&string }},namespace=>{list=>{value=>\&string }},':key'=>{name=>\&string,value=>\&anything },}};my$no_index_1_1={'map'=>{':key'=>{name=>\&string,list=>{value=>\&string }},}};my$prereq_map={map=>{':key'=>{name=>\&phase,'map'=>{':key'=>{name=>\&relation,%$module_map1,},},}},};my%definitions=('2'=>{'abstract'=>{mandatory=>1,value=>\&string },'author'=>{mandatory=>1,list=>{value=>\&string }},'dynamic_config'=>{mandatory=>1,value=>\&boolean },'generated_by'=>{mandatory=>1,value=>\&string },'license'=>{mandatory=>1,list=>{value=>\&license }},'meta-spec'=>{mandatory=>1,'map'=>{version=>{mandatory=>1,value=>\&version},url=>{value=>\&url },':key'=>{name=>\&custom_2,value=>\&anything },}},'name'=>{mandatory=>1,value=>\&string },'release_status'=>{mandatory=>1,value=>\&release_status },'version'=>{mandatory=>1,value=>\&version },'description'=>{value=>\&string },'keywords'=>{list=>{value=>\&string }},'no_index'=>$no_index_2,'optional_features'=>{'map'=>{':key'=>{name=>\&string,'map'=>{description=>{value=>\&string },prereqs=>$prereq_map,':key'=>{name=>\&custom_2,value=>\&anything },}}}},'prereqs'=>$prereq_map,'provides'=>{'map'=>{':key'=>{name=>\&module,'map'=>{file=>{mandatory=>1,value=>\&file },version=>{value=>\&version },':key'=>{name=>\&custom_2,value=>\&anything },}}}},'resources'=>{'map'=>{license=>{list=>{value=>\&url }},homepage=>{value=>\&url },bugtracker=>{'map'=>{web=>{value=>\&url },mailto=>{value=>\&string},':key'=>{name=>\&custom_2,value=>\&anything },}},repository=>{'map'=>{web=>{value=>\&url },url=>{value=>\&url },type=>{value=>\&string },':key'=>{name=>\&custom_2,value=>\&anything },}},':key'=>{value=>\&string,name=>\&custom_2 },}},':key'=>{name=>\&custom_2,value=>\&anything },},'1.4'=>{'meta-spec'=>{mandatory=>1,'map'=>{version=>{mandatory=>1,value=>\&version},url=>{mandatory=>1,value=>\&urlspec },':key'=>{name=>\&string,value=>\&anything },},},'name'=>{mandatory=>1,value=>\&string },'version'=>{mandatory=>1,value=>\&version },'abstract'=>{mandatory=>1,value=>\&string },'author'=>{mandatory=>1,list=>{value=>\&string }},'license'=>{mandatory=>1,value=>\&license },'generated_by'=>{mandatory=>1,value=>\&string },'distribution_type'=>{value=>\&string },'dynamic_config'=>{value=>\&boolean },'requires'=>$module_map1,'recommends'=>$module_map1,'build_requires'=>$module_map1,'configure_requires'=>$module_map1,'conflicts'=>$module_map2,'optional_features'=>{'map'=>{':key'=>{name=>\&string,'map'=>{description=>{value=>\&string },requires=>$module_map1,recommends=>$module_map1,build_requires=>$module_map1,conflicts=>$module_map2,':key'=>{name=>\&string,value=>\&anything },}}}},'provides'=>{'map'=>{':key'=>{name=>\&module,'map'=>{file=>{mandatory=>1,value=>\&file },version=>{value=>\&version },':key'=>{name=>\&string,value=>\&anything },}}}},'no_index'=>$no_index_1_3,'private'=>$no_index_1_3,'keywords'=>{list=>{value=>\&string }},'resources'=>{'map'=>{license=>{value=>\&url },homepage=>{value=>\&url },bugtracker=>{value=>\&url },repository=>{value=>\&url },':key'=>{value=>\&string,name=>\&custom_1 },}},':key'=>{name=>\&string,value=>\&anything },},'1.3'=>{'meta-spec'=>{mandatory=>1,'map'=>{version=>{mandatory=>1,value=>\&version},url=>{mandatory=>1,value=>\&urlspec },':key'=>{name=>\&string,value=>\&anything },},},'name'=>{mandatory=>1,value=>\&string },'version'=>{mandatory=>1,value=>\&version },'abstract'=>{mandatory=>1,value=>\&string },'author'=>{mandatory=>1,list=>{value=>\&string }},'license'=>{mandatory=>1,value=>\&license },'generated_by'=>{mandatory=>1,value=>\&string },'distribution_type'=>{value=>\&string },'dynamic_config'=>{value=>\&boolean },'requires'=>$module_map1,'recommends'=>$module_map1,'build_requires'=>$module_map1,'conflicts'=>$module_map2,'optional_features'=>{'map'=>{':key'=>{name=>\&string,'map'=>{description=>{value=>\&string },requires=>$module_map1,recommends=>$module_map1,build_requires=>$module_map1,conflicts=>$module_map2,':key'=>{name=>\&string,value=>\&anything },}}}},'provides'=>{'map'=>{':key'=>{name=>\&module,'map'=>{file=>{mandatory=>1,value=>\&file },version=>{value=>\&version },':key'=>{name=>\&string,value=>\&anything },}}}},'no_index'=>$no_index_1_3,'private'=>$no_index_1_3,'keywords'=>{list=>{value=>\&string }},'resources'=>{'map'=>{license=>{value=>\&url },homepage=>{value=>\&url },bugtracker=>{value=>\&url },repository=>{value=>\&url },':key'=>{value=>\&string,name=>\&custom_1 },}},':key'=>{name=>\&string,value=>\&anything },},'1.2'=>{'meta-spec'=>{mandatory=>1,'map'=>{version=>{mandatory=>1,value=>\&version},url=>{mandatory=>1,value=>\&urlspec },':key'=>{name=>\&string,value=>\&anything },},},'name'=>{mandatory=>1,value=>\&string },'version'=>{mandatory=>1,value=>\&version },'license'=>{mandatory=>1,value=>\&license },'generated_by'=>{mandatory=>1,value=>\&string },'author'=>{mandatory=>1,list=>{value=>\&string }},'abstract'=>{mandatory=>1,value=>\&string },'distribution_type'=>{value=>\&string },'dynamic_config'=>{value=>\&boolean },'keywords'=>{list=>{value=>\&string }},'private'=>$no_index_1_2,'$no_index'=>$no_index_1_2,'requires'=>$module_map1,'recommends'=>$module_map1,'build_requires'=>$module_map1,'conflicts'=>$module_map2,'optional_features'=>{'map'=>{':key'=>{name=>\&string,'map'=>{description=>{value=>\&string },requires=>$module_map1,recommends=>$module_map1,build_requires=>$module_map1,conflicts=>$module_map2,':key'=>{name=>\&string,value=>\&anything },}}}},'provides'=>{'map'=>{':key'=>{name=>\&module,'map'=>{file=>{mandatory=>1,value=>\&file },version=>{value=>\&version },':key'=>{name=>\&string,value=>\&anything },}}}},'resources'=>{'map'=>{license=>{value=>\&url },homepage=>{value=>\&url },bugtracker=>{value=>\&url },repository=>{value=>\&url },':key'=>{value=>\&string,name=>\&custom_1 },}},':key'=>{name=>\&string,value=>\&anything },},'1.1'=>{'name'=>{value=>\&string },'version'=>{mandatory=>1,value=>\&version },'license'=>{value=>\&license },'generated_by'=>{value=>\&string },'license_uri'=>{value=>\&url },'distribution_type'=>{value=>\&string },'dynamic_config'=>{value=>\&boolean },'private'=>$no_index_1_1,'requires'=>$module_map1,'recommends'=>$module_map1,'build_requires'=>$module_map1,'conflicts'=>$module_map2,':key'=>{name=>\&string,value=>\&anything },},'1.0'=>{'name'=>{value=>\&string },'version'=>{mandatory=>1,value=>\&version },'license'=>{value=>\&license },'generated_by'=>{value=>\&string },'license_uri'=>{value=>\&url },'distribution_type'=>{value=>\&string },'dynamic_config'=>{value=>\&boolean },'requires'=>$module_map1,'recommends'=>$module_map1,'build_requires'=>$module_map1,'conflicts'=>$module_map2,':key'=>{name=>\&string,value=>\&anything },},);sub new {my ($class,$data)=@_;my$self={'data'=>$data,'spec'=>eval {$data->{'meta-spec'}{'version'}}|| "1.0",'errors'=>undef,};return bless$self,$class}sub is_valid {my$self=shift;my$data=$self->{data};my$spec_version=$self->{spec};$self->check_map($definitions{$spec_version},$data);return!$self->errors}sub errors {my$self=shift;return ()unless(defined$self->{errors});return @{$self->{errors}}}my$spec_error="Missing validation action in specification. " ."Must be one of 'map', 'list', or 'value'";sub check_map {my ($self,$spec,$data)=@_;if(ref($spec)ne 'HASH'){$self->_error("Unknown META specification, cannot validate.");return}if(ref($data)ne 'HASH'){$self->_error("Expected a map structure from string or file.");return}for my$key (keys %$spec){next unless($spec->{$key}->{mandatory});next if(defined$data->{$key});push @{$self->{stack}},$key;$self->_error("Missing mandatory field, '$key'");pop @{$self->{stack}}}for my$key (keys %$data){push @{$self->{stack}},$key;if($spec->{$key}){if($spec->{$key}{value}){$spec->{$key}{value}->($self,$key,$data->{$key})}elsif($spec->{$key}{'map'}){$self->check_map($spec->{$key}{'map'},$data->{$key})}elsif($spec->{$key}{'list'}){$self->check_list($spec->{$key}{'list'},$data->{$key})}else {$self->_error("$spec_error for '$key'")}}elsif ($spec->{':key'}){$spec->{':key'}{name}->($self,$key,$key);if($spec->{':key'}{value}){$spec->{':key'}{value}->($self,$key,$data->{$key})}elsif($spec->{':key'}{'map'}){$self->check_map($spec->{':key'}{'map'},$data->{$key})}elsif($spec->{':key'}{'list'}){$self->check_list($spec->{':key'}{'list'},$data->{$key})}else {$self->_error("$spec_error for ':key'")}}else {$self->_error("Unknown key, '$key', found in map structure")}pop @{$self->{stack}}}}sub check_list {my ($self,$spec,$data)=@_;if(ref($data)ne 'ARRAY'){$self->_error("Expected a list structure");return}if(defined$spec->{mandatory}){if(!defined$data->[0]){$self->_error("Missing entries from mandatory list")}}for my$value (@$data){push @{$self->{stack}},$value || "<undef>";if(defined$spec->{value}){$spec->{value}->($self,'list',$value)}elsif(defined$spec->{'map'}){$self->check_map($spec->{'map'},$value)}elsif(defined$spec->{'list'}){$self->check_list($spec->{'list'},$value)}elsif ($spec->{':key'}){$self->check_map($spec,$value)}else {$self->_error("$spec_error associated with '$self->{stack}[-2]'")}pop @{$self->{stack}}}}sub header {my ($self,$key,$value)=@_;if(defined$value){return 1 if($value && $value =~ /^--- #YAML:1.0/)}$self->_error("file does not have a valid YAML header.");return 0}sub release_status {my ($self,$key,$value)=@_;if(defined$value){my$version=$self->{data}{version}|| '';if ($version =~ /_/){return 1 if ($value =~ /\A(?:testing|unstable)\z/);$self->_error("'$value' for '$key' is invalid for version '$version'")}else {return 1 if ($value =~ /\A(?:stable|testing|unstable)\z/);$self->_error("'$value' for '$key' is invalid")}}else {$self->_error("'$key' is not defined")}return 0}sub _uri_split {return $_[0]=~ m,(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?,}sub url {my ($self,$key,$value)=@_;if(defined$value){my ($scheme,$auth,$path,$query,$frag)=_uri_split($value);unless (defined$scheme && length$scheme){$self->_error("'$value' for '$key' does not have a URL scheme");return 0}unless (defined$auth && length$auth){$self->_error("'$value' for '$key' does not have a URL authority");return 0}return 1}$value ||= '';$self->_error("'$value' for '$key' is not a valid URL.");return 0}sub urlspec {my ($self,$key,$value)=@_;if(defined$value){return 1 if($value && $known_specs{$self->{spec}}eq $value);if($value && $known_urls{$value}){$self->_error('META specification URL does not match version');return 0}}$self->_error('Unknown META specification');return 0}sub anything {return 1}sub string {my ($self,$key,$value)=@_;if(defined$value){return 1 if($value || $value =~ /^0$/)}$self->_error("value is an undefined string");return 0}sub string_or_undef {my ($self,$key,$value)=@_;return 1 unless(defined$value);return 1 if($value || $value =~ /^0$/);$self->_error("No string defined for '$key'");return 0}sub file {my ($self,$key,$value)=@_;return 1 if(defined$value);$self->_error("No file defined for '$key'");return 0}sub exversion {my ($self,$key,$value)=@_;if(defined$value && ($value || $value =~ /0/)){my$pass=1;for(split(",",$value)){$self->version($key,$_)or ($pass=0)}return$pass}$value='<undef>' unless(defined$value);$self->_error("'$value' for '$key' is not a valid version.");return 0}sub version {my ($self,$key,$value)=@_;if(defined$value){return 0 unless($value || $value =~ /0/);return 1 if($value =~ /^\s*((<|<=|>=|>|!=|==)\s*)?v?\d+((\.\d+((_|\.)\d+)?)?)/)}else {$value='<undef>'}$self->_error("'$value' for '$key' is not a valid version.");return 0}sub boolean {my ($self,$key,$value)=@_;if(defined$value){return 1 if($value =~ /^(0|1|true|false)$/)}else {$value='<undef>'}$self->_error("'$value' for '$key' is not a boolean value.");return 0}my%v1_licenses=('perl'=>'http://dev.perl.org/licenses/','gpl'=>'http://www.opensource.org/licenses/gpl-license.php','apache'=>'http://apache.org/licenses/LICENSE-2.0','artistic'=>'http://opensource.org/licenses/artistic-license.php','artistic_2'=>'http://opensource.org/licenses/artistic-license-2.0.php','lgpl'=>'http://www.opensource.org/licenses/lgpl-license.php','bsd'=>'http://www.opensource.org/licenses/bsd-license.php','gpl'=>'http://www.opensource.org/licenses/gpl-license.php','mit'=>'http://opensource.org/licenses/mit-license.php','mozilla'=>'http://opensource.org/licenses/mozilla1.1.php','open_source'=>undef,'unrestricted'=>undef,'restrictive'=>undef,'unknown'=>undef,);my%v2_licenses=map {$_=>1}qw(agpl_3 apache_1_1 apache_2_0 artistic_1 artistic_2 bsd freebsd gfdl_1_2 gfdl_1_3 gpl_1 gpl_2 gpl_3 lgpl_2_1 lgpl_3_0 mit mozilla_1_0 mozilla_1_1 openssl perl_5 qpl_1_0 ssleay sun zlib open_source restricted unrestricted unknown);sub license {my ($self,$key,$value)=@_;my$licenses=$self->{spec}< 2 ? \%v1_licenses : \%v2_licenses;if(defined$value){return 1 if($value && exists$licenses->{$value})}else {$value='<undef>'}$self->_error("License '$value' is invalid");return 0}sub custom_1 {my ($self,$key)=@_;if(defined$key){return 1 if($key && $key =~ /^[_a-z]+$/i && $key =~ /[A-Z]/)}else {$key='<undef>'}$self->_error("Custom resource '$key' must be in CamelCase.");return 0}sub custom_2 {my ($self,$key)=@_;if(defined$key){return 1 if($key && $key =~ /^x_/i)}else {$key='<undef>'}$self->_error("Custom key '$key' must begin with 'x_' or 'X_'.");return 0}sub identifier {my ($self,$key)=@_;if(defined$key){return 1 if($key && $key =~ /^([a-z][_a-z]+)$/i)}else {$key='<undef>'}$self->_error("Key '$key' is not a legal identifier.");return 0}sub module {my ($self,$key)=@_;if(defined$key){return 1 if($key && $key =~ /^[A-Za-z0-9_]+(::[A-Za-z0-9_]+)*$/)}else {$key='<undef>'}$self->_error("Key '$key' is not a legal module name.");return 0}my@valid_phases=qw/configure build test runtime develop/;sub phase {my ($self,$key)=@_;if(defined$key){return 1 if(length$key && grep {$key eq $_}@valid_phases);return 1 if$key =~ /x_/i}else {$key='<undef>'}$self->_error("Key '$key' is not a legal phase.");return 0}my@valid_relations=qw/requires recommends suggests conflicts/;sub relation {my ($self,$key)=@_;if(defined$key){return 1 if(length$key && grep {$key eq $_}@valid_relations);return 1 if$key =~ /x_/i}else {$key='<undef>'}$self->_error("Key '$key' is not a legal prereq relationship.");return 0}sub _error {my$self=shift;my$mess=shift;$mess .= ' ('.join(' -> ',@{$self->{stack}}).')' if($self->{stack});$mess .= " [Validation: $self->{spec}]";push @{$self->{errors}},$mess}1; -CPAN_META_VALIDATOR - -$fatpacked{"CPAN/Meta/YAML.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_YAML'; - use 5.008001;use strict;use warnings;package CPAN::Meta::YAML;$CPAN::Meta::YAML::VERSION='0.016';;use Exporter;our@ISA=qw{Exporter};our@EXPORT=qw{Load Dump};our@EXPORT_OK=qw{LoadFile DumpFile freeze thaw};sub Dump {return CPAN::Meta::YAML->new(@_)->_dump_string}sub Load {my$self=CPAN::Meta::YAML->_load_string(@_);if (wantarray){return @$self}else {return$self->[-1]}}BEGIN {*freeze=\&Dump;*thaw=\&Load}sub DumpFile {my$file=shift;return CPAN::Meta::YAML->new(@_)->_dump_file($file)}sub LoadFile {my$file=shift;my$self=CPAN::Meta::YAML->_load_file($file);if (wantarray){return @$self}else {return$self->[-1]}}sub new {my$class=shift;bless [@_ ],$class}sub read_string {my$self=shift;$self->_load_string(@_)}sub write_string {my$self=shift;$self->_dump_string(@_)}sub read {my$self=shift;$self->_load_file(@_)}sub write {my$self=shift;$self->_dump_file(@_)}my@UNPRINTABLE=qw(0 x01 x02 x03 x04 x05 x06 a b t n v f r x0E x0F x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x1A e x1C x1D x1E x1F);my%UNESCAPES=(0=>"\x00",z=>"\x00",N=>"\x85",a=>"\x07",b=>"\x08",t=>"\x09",n=>"\x0a",v=>"\x0b",f=>"\x0c",r=>"\x0d",e=>"\x1b",'\\'=>'\\',);my%QUOTE=map {$_=>1}qw{null true false};my$re_capture_double_quoted=qr/\"([^\\"]*(?:\\.[^\\"]*)*)\"/;my$re_capture_single_quoted=qr/\'([^\']*(?:\'\'[^\']*)*)\'/;my$re_capture_unquoted_key=qr/([^:]+(?::+\S(?:[^:]*|.*?(?=:)))*)(?=\s*\:(?:\s+|$))/;my$re_trailing_comment=qr/(?:\s+\#.*)?/;my$re_key_value_separator=qr/\s*:(?:\s+(?:\#.*)?|$)/;sub _load_file {my$class=ref $_[0]? ref shift : shift;my$file=shift or $class->_error('You did not specify a file name');$class->_error("File '$file' does not exist")unless -e $file;$class->_error("'$file' is a directory, not a file")unless -f _;$class->_error("Insufficient permissions to read '$file'")unless -r _;open(my$fh,"<:unix:encoding(UTF-8)",$file);unless ($fh){$class->_error("Failed to open file '$file': $!")}if (_can_flock()){flock($fh,Fcntl::LOCK_SH())or warn "Couldn't lock '$file' for reading: $!"}my$contents=eval {use warnings FATAL=>'utf8';local $/;<$fh>};if (my$err=$@){$class->_error("Error reading from file '$file': $err")}unless (close$fh){$class->_error("Failed to close file '$file': $!")}$class->_load_string($contents)}sub _load_string {my$class=ref $_[0]? ref shift : shift;my$self=bless [],$class;my$string=$_[0];eval {unless (defined$string){die \"Did not provide a string to load"}if (utf8::is_utf8($string)&&!utf8::valid($string)){die \<<'...'}utf8::upgrade($string);$string =~ s/^\x{FEFF}//;return$self unless length$string;my@lines=grep {!/^\s*(?:\#.*)?\z/}split /(?:\015{1,2}\012|\015|\012)/,$string;@lines and $lines[0]=~ /^\%YAML[: ][\d\.]+.*\z/ and shift@lines;my$in_document=0;while (@lines){if ($lines[0]=~ /^---\s*(?:(.+)\s*)?\z/){shift@lines;if (defined $1 and $1 !~ /^(?:\#.+|\%YAML[: ][\d\.]+)\z/){push @$self,$self->_load_scalar("$1",[undef ],\@lines);next}$in_document=1}if (!@lines or $lines[0]=~ /^(?:---|\.\.\.)/){push @$self,undef;while (@lines and $lines[0]!~ /^---/){shift@lines}$in_document=0}elsif (!$in_document && @$self){die \"CPAN::Meta::YAML failed to classify the line '$lines[0]'"}elsif ($lines[0]=~ /^\s*\-(?:\s|$|-+$)/){my$document=[];push @$self,$document;$self->_load_array($document,[0 ],\@lines)}elsif ($lines[0]=~ /^(\s*)\S/){my$document={};push @$self,$document;$self->_load_hash($document,[length($1)],\@lines)}else {die \"CPAN::Meta::YAML failed to classify the line '$lines[0]'"}}};my$err=$@;if (ref$err eq 'SCALAR'){$self->_error(${$err})}elsif ($err){$self->_error($err)}return$self}sub _unquote_single {my ($self,$string)=@_;return '' unless length$string;$string =~ s/\'\'/\'/g;return$string}sub _unquote_double {my ($self,$string)=@_;return '' unless length$string;$string =~ s/\\"/"/g;$string =~ s{\\([Nnever\\fartz0b]|x([0-9a-fA-F]{2}))} - Read an invalid UTF-8 string (maybe mixed UTF-8 and 8-bit character set). - Did you decode with lax ":utf8" instead of strict ":encoding(UTF-8)"? - ... - {(length($1)>1)?pack("H2",$2):$UNESCAPES{$1}}gex;return$string}sub _load_scalar {my ($self,$string,$indent,$lines)=@_;$string =~ s/\s*\z//;return undef if$string eq '~';if ($string =~ /^$re_capture_single_quoted$re_trailing_comment\z/){return$self->_unquote_single($1)}if ($string =~ /^$re_capture_double_quoted$re_trailing_comment\z/){return$self->_unquote_double($1)}if ($string =~ /^[\'\"!&]/){die \"CPAN::Meta::YAML does not support a feature in line '$string'"}return {}if$string =~ /^{}(?:\s+\#.*)?\z/;return []if$string =~ /^\[\](?:\s+\#.*)?\z/;if ($string !~ /^[>|]/){die \"CPAN::Meta::YAML found illegal characters in plain scalar: '$string'" if$string =~ /^(?:-(?:\s|$)|[\@\%\`])/ or $string =~ /:(?:\s|$)/;$string =~ s/\s+#.*\z//;return$string}die \"CPAN::Meta::YAML failed to find multi-line scalar content" unless @$lines;$lines->[0]=~ /^(\s*)/;$indent->[-1]=length("$1");if (defined$indent->[-2]and $indent->[-1]<= $indent->[-2]){die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'"}my@multiline=();while (@$lines){$lines->[0]=~ /^(\s*)/;last unless length($1)>= $indent->[-1];push@multiline,substr(shift(@$lines),length($1))}my$j=(substr($string,0,1)eq '>')? ' ' : "\n";my$t=(substr($string,1,1)eq '-')? '' : "\n";return join($j,@multiline).$t}sub _load_array {my ($self,$array,$indent,$lines)=@_;while (@$lines){if ($lines->[0]=~ /^(?:---|\.\.\.)/){while (@$lines and $lines->[0]!~ /^---/){shift @$lines}return 1}$lines->[0]=~ /^(\s*)/;if (length($1)< $indent->[-1]){return 1}elsif (length($1)> $indent->[-1]){die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'"}if ($lines->[0]=~ /^(\s*\-\s+)[^\'\"]\S*\s*:(?:\s+|$)/){my$indent2=length("$1");$lines->[0]=~ s/-/ /;push @$array,{};$self->_load_hash($array->[-1],[@$indent,$indent2 ],$lines)}elsif ($lines->[0]=~ /^\s*\-\s*\z/){shift @$lines;unless (@$lines){push @$array,undef;return 1}if ($lines->[0]=~ /^(\s*)\-/){my$indent2=length("$1");if ($indent->[-1]==$indent2){push @$array,undef}else {push @$array,[];$self->_load_array($array->[-1],[@$indent,$indent2 ],$lines)}}elsif ($lines->[0]=~ /^(\s*)\S/){push @$array,{};$self->_load_hash($array->[-1],[@$indent,length("$1")],$lines)}else {die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'"}}elsif ($lines->[0]=~ /^\s*\-(\s*)(.+?)\s*\z/){shift @$lines;push @$array,$self->_load_scalar("$2",[@$indent,undef ],$lines)}elsif (defined$indent->[-2]and $indent->[-1]==$indent->[-2]){return 1}else {die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'"}}return 1}sub _load_hash {my ($self,$hash,$indent,$lines)=@_;while (@$lines){if ($lines->[0]=~ /^(?:---|\.\.\.)/){while (@$lines and $lines->[0]!~ /^---/){shift @$lines}return 1}$lines->[0]=~ /^(\s*)/;if (length($1)< $indent->[-1]){return 1}elsif (length($1)> $indent->[-1]){die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'"}my$key;if ($lines->[0]=~ s/^\s*$re_capture_single_quoted$re_key_value_separator//){$key=$self->_unquote_single($1)}elsif ($lines->[0]=~ s/^\s*$re_capture_double_quoted$re_key_value_separator//){$key=$self->_unquote_double($1)}elsif ($lines->[0]=~ s/^\s*$re_capture_unquoted_key$re_key_value_separator//){$key=$1;$key =~ s/\s+$//}elsif ($lines->[0]=~ /^\s*\?/){die \"CPAN::Meta::YAML does not support a feature in line '$lines->[0]'"}else {die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'"}if (exists$hash->{$key}){warn "CPAN::Meta::YAML found a duplicate key '$key' in line '$lines->[0]'"}if (length$lines->[0]){$hash->{$key}=$self->_load_scalar(shift(@$lines),[@$indent,undef ],$lines)}else {shift @$lines;unless (@$lines){$hash->{$key}=undef;return 1}if ($lines->[0]=~ /^(\s*)-/){$hash->{$key}=[];$self->_load_array($hash->{$key},[@$indent,length($1)],$lines)}elsif ($lines->[0]=~ /^(\s*)./){my$indent2=length("$1");if ($indent->[-1]>= $indent2){$hash->{$key}=undef}else {$hash->{$key}={};$self->_load_hash($hash->{$key},[@$indent,length($1)],$lines)}}}}return 1}sub _dump_file {my$self=shift;require Fcntl;my$file=shift or $self->_error('You did not specify a file name');my$fh;if (_can_flock()){my$flags=Fcntl::O_WRONLY()|Fcntl::O_CREAT();sysopen($fh,$file,$flags);unless ($fh){$self->_error("Failed to open file '$file' for writing: $!")}binmode($fh,":raw:encoding(UTF-8)");flock($fh,Fcntl::LOCK_EX())or warn "Couldn't lock '$file' for reading: $!";truncate$fh,0;seek$fh,0,0}else {open$fh,">:unix:encoding(UTF-8)",$file}print {$fh}$self->_dump_string;unless (close$fh){$self->_error("Failed to close file '$file': $!")}return 1}sub _dump_string {my$self=shift;return '' unless ref$self && @$self;my$indent=0;my@lines=();eval {for my$cursor (@$self){push@lines,'---';if (!defined$cursor){}elsif (!ref$cursor){$lines[-1].= ' ' .$self->_dump_scalar($cursor)}elsif (ref$cursor eq 'ARRAY'){unless (@$cursor){$lines[-1].= ' []';next}push@lines,$self->_dump_array($cursor,$indent,{})}elsif (ref$cursor eq 'HASH'){unless (%$cursor){$lines[-1].= ' {}';next}push@lines,$self->_dump_hash($cursor,$indent,{})}else {die \("Cannot serialize " .ref($cursor))}}};if (ref $@ eq 'SCALAR'){$self->_error(${$@})}elsif ($@){$self->_error($@)}join '',map {"$_\n"}@lines}sub _has_internal_string_value {my$value=shift;my$b_obj=B::svref_2object(\$value);return$b_obj->FLAGS & B::SVf_POK()}sub _dump_scalar {my$string=$_[1];my$is_key=$_[2];my$has_string_flag=_has_internal_string_value($string);return '~' unless defined$string;return "''" unless length$string;if (Scalar::Util::looks_like_number($string)){if ($is_key || $has_string_flag){return qq['$string']}else {return$string}}if ($string =~ /[\x00-\x09\x0b-\x0d\x0e-\x1f\x7f-\x9f\'\n]/){$string =~ s/\\/\\\\/g;$string =~ s/"/\\"/g;$string =~ s/\n/\\n/g;$string =~ s/[\x85]/\\N/g;$string =~ s/([\x00-\x1f])/\\$UNPRINTABLE[ord($1)]/g;$string =~ s/([\x7f-\x9f])/'\x' . sprintf("%X",ord($1))/ge;return qq|"$string"|}if ($string =~ /(?:^[~!@#%&*|>?:,'"`{}\[\]]|^-+$|\s|:\z)/ or $QUOTE{$string}){return "'$string'"}return$string}sub _dump_array {my ($self,$array,$indent,$seen)=@_;if ($seen->{refaddr($array)}++){die \"CPAN::Meta::YAML does not support circular references"}my@lines=();for my$el (@$array){my$line=(' ' x $indent).'-';my$type=ref$el;if (!$type){$line .= ' ' .$self->_dump_scalar($el);push@lines,$line}elsif ($type eq 'ARRAY'){if (@$el){push@lines,$line;push@lines,$self->_dump_array($el,$indent + 1,$seen)}else {$line .= ' []';push@lines,$line}}elsif ($type eq 'HASH'){if (keys %$el){push@lines,$line;push@lines,$self->_dump_hash($el,$indent + 1,$seen)}else {$line .= ' {}';push@lines,$line}}else {die \"CPAN::Meta::YAML does not support $type references"}}@lines}sub _dump_hash {my ($self,$hash,$indent,$seen)=@_;if ($seen->{refaddr($hash)}++){die \"CPAN::Meta::YAML does not support circular references"}my@lines=();for my$name (sort keys %$hash){my$el=$hash->{$name};my$line=(' ' x $indent).$self->_dump_scalar($name,1).":";my$type=ref$el;if (!$type){$line .= ' ' .$self->_dump_scalar($el);push@lines,$line}elsif ($type eq 'ARRAY'){if (@$el){push@lines,$line;push@lines,$self->_dump_array($el,$indent + 1,$seen)}else {$line .= ' []';push@lines,$line}}elsif ($type eq 'HASH'){if (keys %$el){push@lines,$line;push@lines,$self->_dump_hash($el,$indent + 1,$seen)}else {$line .= ' {}';push@lines,$line}}else {die \"CPAN::Meta::YAML does not support $type references"}}@lines}our$errstr='';sub _error {require Carp;$errstr=$_[1];$errstr =~ s/ at \S+ line \d+.*//;Carp::croak($errstr)}my$errstr_warned;sub errstr {require Carp;Carp::carp("CPAN::Meta::YAML->errstr and \$CPAN::Meta::YAML::errstr is deprecated")unless$errstr_warned++;$errstr}use B;my$HAS_FLOCK;sub _can_flock {if (defined$HAS_FLOCK){return$HAS_FLOCK}else {require Config;my$c=\%Config::Config;$HAS_FLOCK=grep {$c->{$_}}qw/d_flock d_fcntl_can_lock d_lockf/;require Fcntl if$HAS_FLOCK;return$HAS_FLOCK}}use Scalar::Util ();BEGIN {local $@;if (eval {Scalar::Util->VERSION(1.18)}){*refaddr=*Scalar::Util::refaddr}else {eval <<'END_PERL'}}delete$CPAN::Meta::YAML::{refaddr};1; - # Scalar::Util failed to load or too old - sub refaddr { - my $pkg = ref($_[0]) or return undef; - if ( !! UNIVERSAL::can($_[0], 'can') ) { - bless $_[0], 'Scalar::Util::Fake'; - } else { - $pkg = undef; - } - "$_[0]" =~ /0x(\w+)/; - my $i = do { no warnings 'portable'; hex $1 }; - bless $_[0], $pkg if defined $pkg; - $i; - } - END_PERL -CPAN_META_YAML - -$fatpacked{"Exporter.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'EXPORTER'; - package Exporter;require 5.006;our$Debug=0;our$ExportLevel=0;our$Verbose ||=0;our$VERSION='5.70';our (%Cache);sub as_heavy {require Exporter::Heavy;my$c=(caller(1))[3];$c =~ s/.*:://;\&{"Exporter::Heavy::heavy_$c"}}sub export {goto &{as_heavy()}}sub import {my$pkg=shift;my$callpkg=caller($ExportLevel);if ($pkg eq "Exporter" and @_ and $_[0]eq "import"){*{$callpkg."::import"}=\&import;return}my$exports=\@{"$pkg\::EXPORT"};my$fail=${$pkg .'::'}{EXPORT_FAIL}&& \@{"$pkg\::EXPORT_FAIL"};return export$pkg,$callpkg,@_ if$Verbose or $Debug or $fail && @$fail > 1;my$export_cache=($Cache{$pkg}||={});my$args=@_ or @_=@$exports;if ($args and not %$export_cache){s/^&//,$export_cache->{$_}=1 foreach (@$exports,@{"$pkg\::EXPORT_OK"})}my$heavy;if ($args or $fail){($heavy=(/\W/ or $args and not exists$export_cache->{$_}or $fail and @$fail and $_ eq $fail->[0]))and last foreach (@_)}else {($heavy=/\W/)and last foreach (@_)}return export$pkg,$callpkg,($args ? @_ : ())if$heavy;local$SIG{__WARN__}=sub {require Carp;&Carp::carp}if not $SIG{__WARN__};*{"$callpkg\::$_"}=\&{"$pkg\::$_"}foreach @_}sub export_fail {my$self=shift;@_}sub export_to_level {goto &{as_heavy()}}sub export_tags {goto &{as_heavy()}}sub export_ok_tags {goto &{as_heavy()}}sub require_version {goto &{as_heavy()}}1; -EXPORTER - -$fatpacked{"Exporter/Heavy.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'EXPORTER_HEAVY'; - package Exporter::Heavy;use strict;no strict 'refs';require Exporter;our$VERSION=$Exporter::VERSION;sub _rebuild_cache {my ($pkg,$exports,$cache)=@_;s/^&// foreach @$exports;@{$cache}{@$exports}=(1)x @$exports;my$ok=\@{"${pkg}::EXPORT_OK"};if (@$ok){s/^&// foreach @$ok;@{$cache}{@$ok}=(1)x @$ok}}sub heavy_export {my$oldwarn=$SIG{__WARN__};local$SIG{__WARN__}=sub {local$SIG{__WARN__}=$oldwarn;my$text=shift;if ($text =~ s/ at \S*Exporter\S*.pm line \d+.*\n//){require Carp;local$Carp::CarpLevel=1;Carp::carp($text)}else {warn$text}};local$SIG{__DIE__}=sub {require Carp;local$Carp::CarpLevel=1;Carp::croak("$_[0]Illegal null symbol in \@${1}::EXPORT")if $_[0]=~ /^Unable to create sub named "(.*?)::"/};my($pkg,$callpkg,@imports)=@_;my($type,$sym,$cache_is_current,$oops);my($exports,$export_cache)=(\@{"${pkg}::EXPORT"},$Exporter::Cache{$pkg}||={});if (@imports){if (!%$export_cache){_rebuild_cache ($pkg,$exports,$export_cache);$cache_is_current=1}if (grep m{^[/!:]},@imports){my$tagsref=\%{"${pkg}::EXPORT_TAGS"};my$tagdata;my%imports;my($remove,$spec,@names,@allexports);unshift@imports,':DEFAULT' if$imports[0]=~ m/^!/;for$spec (@imports){$remove=$spec =~ s/^!//;if ($spec =~ s/^://){if ($spec eq 'DEFAULT'){@names=@$exports}elsif ($tagdata=$tagsref->{$spec}){@names=@$tagdata}else {warn qq["$spec" is not defined in %${pkg}::EXPORT_TAGS];++$oops;next}}elsif ($spec =~ m:^/(.*)/$:){my$patn=$1;@allexports=keys %$export_cache unless@allexports;@names=grep(/$patn/,@allexports)}else {@names=($spec)}warn "Import ".($remove ? "del":"add").": @names " if$Exporter::Verbose;if ($remove){for$sym (@names){delete$imports{$sym}}}else {@imports{@names}=(1)x @names}}@imports=keys%imports}my@carp;for$sym (@imports){if (!$export_cache->{$sym}){if ($sym =~ m/^\d/){$pkg->VERSION($sym);if (@imports==1){@imports=@$exports;last}if (@imports==2 and!$imports[1]){@imports=();last}}elsif ($sym !~ s/^&// ||!$export_cache->{$sym}){unless ($cache_is_current){%$export_cache=();_rebuild_cache ($pkg,$exports,$export_cache);$cache_is_current=1}if (!$export_cache->{$sym}){push@carp,qq["$sym" is not exported by the $pkg module\n];$oops++}}}}if ($oops){require Carp;Carp::croak("@{carp}Can't continue after import errors")}}else {@imports=@$exports}my($fail,$fail_cache)=(\@{"${pkg}::EXPORT_FAIL"},$Exporter::FailCache{$pkg}||={});if (@$fail){if (!%$fail_cache){my@expanded=map {/^\w/ ? ($_,'&'.$_): $_}@$fail;warn "${pkg}::EXPORT_FAIL cached: @expanded" if$Exporter::Verbose;@{$fail_cache}{@expanded}=(1)x @expanded}my@failed;for$sym (@imports){push(@failed,$sym)if$fail_cache->{$sym}}if (@failed){@failed=$pkg->export_fail(@failed);for$sym (@failed){require Carp;Carp::carp(qq["$sym" is not implemented by the $pkg module ],"on this architecture")}if (@failed){require Carp;Carp::croak("Can't continue after import errors")}}}warn "Importing into $callpkg from $pkg: ",join(", ",sort@imports)if$Exporter::Verbose;for$sym (@imports){(*{"${callpkg}::$sym"}=\&{"${pkg}::$sym"},next)unless$sym =~ s/^(\W)//;$type=$1;no warnings 'once';*{"${callpkg}::$sym"}=$type eq '&' ? \&{"${pkg}::$sym"}: $type eq '$' ? \${"${pkg}::$sym"}: $type eq '@' ? \@{"${pkg}::$sym"}: $type eq '%' ? \%{"${pkg}::$sym"}: $type eq '*' ? *{"${pkg}::$sym"}: do {require Carp;Carp::croak("Can't export symbol: $type$sym")}}}sub heavy_export_to_level {my$pkg=shift;my$level=shift;(undef)=shift;my$callpkg=caller($level);$pkg->export($callpkg,@_)}sub _push_tags {my($pkg,$var,$syms)=@_;my@nontag=();my$export_tags=\%{"${pkg}::EXPORT_TAGS"};push(@{"${pkg}::$var"},map {$export_tags->{$_}? @{$export_tags->{$_}}: scalar(push(@nontag,$_),$_)}(@$syms)? @$syms : keys %$export_tags);if (@nontag and $^W){require Carp;Carp::carp(join(", ",@nontag)." are not tags of $pkg")}}sub heavy_require_version {my($self,$wanted)=@_;my$pkg=ref$self || $self;return ${pkg}->VERSION($wanted)}sub heavy_export_tags {_push_tags((caller)[0],"EXPORT",\@_)}sub heavy_export_ok_tags {_push_tags((caller)[0],"EXPORT_OK",\@_)}1; -EXPORTER_HEAVY - -$fatpacked{"File/pushd.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'FILE_PUSHD'; - use strict;use warnings;package File::pushd;our$VERSION='1.009';our@EXPORT=qw(pushd tempd);our@ISA=qw(Exporter);use Exporter;use Carp;use Cwd qw(getcwd abs_path);use File::Path qw(rmtree);use File::Temp qw();use File::Spec;use overload q{""}=>sub {File::Spec->canonpath($_[0]->{_pushd})},fallback=>1;sub pushd {my ($target_dir,$options)=@_;$options->{untaint_pattern}||= qr{^([-+@\w./]+)$};$target_dir="." unless defined$target_dir;croak "Can't locate directory $target_dir" unless -d $target_dir;my$tainted_orig=getcwd;my$orig;if ($tainted_orig =~ $options->{untaint_pattern}){$orig=$1}else {$orig=$tainted_orig}my$tainted_dest;eval {$tainted_dest=$target_dir ? abs_path($target_dir): $orig};croak "Can't locate absolute path for $target_dir: $@" if $@;my$dest;if ($tainted_dest =~ $options->{untaint_pattern}){$dest=$1}else {$dest=$tainted_dest}if ($dest ne $orig){chdir$dest or croak "Can't chdir to $dest\: $!"}my$self=bless {_pushd=>$dest,_original=>$orig },__PACKAGE__;return$self}sub tempd {my ($options)=@_;my$dir;eval {$dir=pushd(File::Temp::tempdir(CLEANUP=>0),$options)};croak $@ if $@;$dir->{_tempd}=1;return$dir}sub preserve {my$self=shift;return 1 if!$self->{"_tempd"};if (@_==0){return$self->{_preserve}=1}else {return$self->{_preserve}=$_[0]? 1 : 0}}sub DESTROY {my ($self)=@_;my$orig=$self->{_original};chdir$orig if$orig;if ($self->{_tempd}&&!$self->{_preserve}){my$err=do {local $@;eval {rmtree($self->{_pushd})};$@};carp$err if$err}}1; -FILE_PUSHD - -$fatpacked{"HTTP/Tiny.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'HTTP_TINY'; - package HTTP::Tiny;use strict;use warnings;our$VERSION='0.056';use Carp ();my@attributes;BEGIN {@attributes=qw(cookie_jar default_headers http_proxy https_proxy keep_alive local_address max_redirect max_size proxy no_proxy timeout SSL_options verify_SSL);my%persist_ok=map {;$_=>1}qw(cookie_jar default_headers max_redirect max_size);no strict 'refs';no warnings 'uninitialized';for my$accessor (@attributes){*{$accessor}=sub {@_ > 1 ? do {delete $_[0]->{handle}if!$persist_ok{$accessor}&& $_[1]ne $_[0]->{$accessor};$_[0]->{$accessor}=$_[1]}: $_[0]->{$accessor}}}}sub agent {my($self,$agent)=@_;if(@_ > 1){$self->{agent}=(defined$agent && $agent =~ / $/)? $agent .$self->_agent : $agent}return$self->{agent}}sub new {my($class,%args)=@_;my$self={max_redirect=>5,timeout=>60,keep_alive=>1,verify_SSL=>$args{verify_SSL}|| $args{verify_ssl}|| 0,no_proxy=>$ENV{no_proxy},};bless$self,$class;$class->_validate_cookie_jar($args{cookie_jar})if$args{cookie_jar};for my$key (@attributes){$self->{$key}=$args{$key}if exists$args{$key}}$self->agent(exists$args{agent}? $args{agent}: $class->_agent);$self->_set_proxies;return$self}sub _set_proxies {my ($self)=@_;if (!exists$self->{proxy}){$self->{proxy}=$ENV{all_proxy}|| $ENV{ALL_PROXY}}if (defined$self->{proxy}){$self->_split_proxy('generic proxy'=>$self->{proxy})}else {delete$self->{proxy}}if (!exists$self->{http_proxy}){local$ENV{HTTP_PROXY}if$ENV{REQUEST_METHOD};$self->{http_proxy}=$ENV{http_proxy}|| $ENV{HTTP_PROXY}|| $self->{proxy}}if (defined$self->{http_proxy}){$self->_split_proxy(http_proxy=>$self->{http_proxy});$self->{_has_proxy}{http}=1}else {delete$self->{http_proxy}}if (!exists$self->{https_proxy}){$self->{https_proxy}=$ENV{https_proxy}|| $ENV{HTTPS_PROXY}|| $self->{proxy}}if ($self->{https_proxy}){$self->_split_proxy(https_proxy=>$self->{https_proxy});$self->{_has_proxy}{https}=1}else {delete$self->{https_proxy}}unless (ref$self->{no_proxy}eq 'ARRAY'){$self->{no_proxy}=(defined$self->{no_proxy})? [split /\s*,\s*/,$self->{no_proxy}]: []}return}for my$sub_name (qw/get head put post delete/){my$req_method=uc$sub_name;no strict 'refs';eval <<"HERE"}sub post_form {my ($self,$url,$data,$args)=@_;(@_==3 || @_==4 && ref$args eq 'HASH')or Carp::croak(q/Usage: $http->post_form(URL, DATAREF, [HASHREF])/ ."\n");my$headers={};while (my ($key,$value)=each %{$args->{headers}|| {}}){$headers->{lc$key}=$value}delete$args->{headers};return$self->request('POST',$url,{%$args,content=>$self->www_form_urlencode($data),headers=>{%$headers,'content-type'=>'application/x-www-form-urlencoded' },})}sub mirror {my ($self,$url,$file,$args)=@_;@_==3 || (@_==4 && ref$args eq 'HASH')or Carp::croak(q/Usage: $http->mirror(URL, FILE, [HASHREF])/ ."\n");if (-e $file and my$mtime=(stat($file))[9]){$args->{headers}{'if-modified-since'}||= $self->_http_date($mtime)}my$tempfile=$file .int(rand(2**31));require Fcntl;sysopen my$fh,$tempfile,Fcntl::O_CREAT()|Fcntl::O_EXCL()|Fcntl::O_WRONLY()or Carp::croak(qq/Error: Could not create temporary file $tempfile for downloading: $!\n/);binmode$fh;$args->{data_callback}=sub {print {$fh}$_[0]};my$response=$self->request('GET',$url,$args);close$fh or Carp::croak(qq/Error: Caught error closing temporary file $tempfile: $!\n/);if ($response->{success}){rename$tempfile,$file or Carp::croak(qq/Error replacing $file with $tempfile: $!\n/);my$lm=$response->{headers}{'last-modified'};if ($lm and my$mtime=$self->_parse_http_date($lm)){utime$mtime,$mtime,$file}}$response->{success}||= $response->{status}eq '304';unlink$tempfile;return$response}my%idempotent=map {$_=>1}qw/GET HEAD PUT DELETE OPTIONS TRACE/;sub request {my ($self,$method,$url,$args)=@_;@_==3 || (@_==4 && ref$args eq 'HASH')or Carp::croak(q/Usage: $http->request(METHOD, URL, [HASHREF])/ ."\n");$args ||= {};my$response;for (0 .. 1){$response=eval {$self->_request($method,$url,$args)};last unless $@ && $idempotent{$method}&& $@ =~ m{^(?:Socket closed|Unexpected end)}}if (my$e=$@){if (ref$e eq 'HASH' && exists$e->{status}){return$e}$e="$e";$response={url=>$url,success=>q{},status=>599,reason=>'Internal Exception',content=>$e,headers=>{'content-type'=>'text/plain','content-length'=>length$e,}}}return$response}sub www_form_urlencode {my ($self,$data)=@_;(@_==2 && ref$data)or Carp::croak(q/Usage: $http->www_form_urlencode(DATAREF)/ ."\n");(ref$data eq 'HASH' || ref$data eq 'ARRAY')or Carp::croak("form data must be a hash or array reference\n");my@params=ref$data eq 'HASH' ? %$data : @$data;@params % 2==0 or Carp::croak("form data reference must have an even number of terms\n");my@terms;while(@params){my ($key,$value)=splice(@params,0,2);if (ref$value eq 'ARRAY'){unshift@params,map {$key=>$_}@$value}else {push@terms,join("=",map {$self->_uri_escape($_)}$key,$value)}}return join("&",(ref$data eq 'ARRAY')? (@terms): (sort@terms))}sub can_ssl {my ($self)=@_;my($ok,$reason)=(1,'');unless (eval {require IO::Socket::SSL;IO::Socket::SSL->VERSION(1.42)}){$ok=0;$reason .= qq/IO::Socket::SSL 1.42 must be installed for https support\n/}unless (eval {require Net::SSLeay;Net::SSLeay->VERSION(1.49)}){$ok=0;$reason .= qq/Net::SSLeay 1.49 must be installed for https support\n/}if (ref($self)&& ($self->{verify_SSL}|| $self->{SSL_options}{SSL_verify_mode})){my$handle=HTTP::Tiny::Handle->new(SSL_options=>$self->{SSL_options},verify_SSL=>$self->{verify_SSL},);unless (eval {$handle->_find_CA_file;1}){$ok=0;$reason .= "$@"}}wantarray ? ($ok,$reason): $ok}my%DefaultPort=(http=>80,https=>443,);sub _agent {my$class=ref($_[0])|| $_[0];(my$default_agent=$class)=~ s{::}{-}g;return$default_agent ."/" .$class->VERSION}sub _request {my ($self,$method,$url,$args)=@_;my ($scheme,$host,$port,$path_query,$auth)=$self->_split_url($url);my$request={method=>$method,scheme=>$scheme,host=>$host,port=>$port,host_port=>($port==$DefaultPort{$scheme}? $host : "$host:$port"),uri=>$path_query,headers=>{},};my$handle=delete$self->{handle};if ($handle){unless ($handle->can_reuse($scheme,$host,$port)){$handle->close;undef$handle}}$handle ||= $self->_open_handle($request,$scheme,$host,$port);$self->_prepare_headers_and_cb($request,$args,$url,$auth);$handle->write_request($request);my$response;do {$response=$handle->read_response_header}until (substr($response->{status},0,1)ne '1');$self->_update_cookie_jar($url,$response)if$self->{cookie_jar};if (my@redir_args=$self->_maybe_redirect($request,$response,$args)){$handle->close;return$self->_request(@redir_args,$args)}my$known_message_length;if ($method eq 'HEAD' || $response->{status}=~ /^[23]04/){$known_message_length=1}else {my$data_cb=$self->_prepare_data_cb($response,$args);$known_message_length=$handle->read_body($data_cb,$response)}if ($self->{keep_alive}&& $known_message_length && $response->{protocol}eq 'HTTP/1.1' && ($response->{headers}{connection}|| '')ne 'close'){$self->{handle}=$handle}else {$handle->close}$response->{success}=substr($response->{status},0,1)eq '2';$response->{url}=$url;return$response}sub _open_handle {my ($self,$request,$scheme,$host,$port)=@_;my$handle=HTTP::Tiny::Handle->new(timeout=>$self->{timeout},SSL_options=>$self->{SSL_options},verify_SSL=>$self->{verify_SSL},local_address=>$self->{local_address},keep_alive=>$self->{keep_alive});if ($self->{_has_proxy}{$scheme}&&!grep {$host =~ /\Q$_\E$/}@{$self->{no_proxy}}){return$self->_proxy_connect($request,$handle)}else {return$handle->connect($scheme,$host,$port)}}sub _proxy_connect {my ($self,$request,$handle)=@_;my@proxy_vars;if ($request->{scheme}eq 'https'){Carp::croak(qq{No https_proxy defined})unless$self->{https_proxy};@proxy_vars=$self->_split_proxy(https_proxy=>$self->{https_proxy});if ($proxy_vars[0]eq 'https'){Carp::croak(qq{Can't proxy https over https: $request->{uri} via $self->{https_proxy}})}}else {Carp::croak(qq{No http_proxy defined})unless$self->{http_proxy};@proxy_vars=$self->_split_proxy(http_proxy=>$self->{http_proxy})}my ($p_scheme,$p_host,$p_port,$p_auth)=@proxy_vars;if (length$p_auth &&!defined$request->{headers}{'proxy-authorization'}){$self->_add_basic_auth_header($request,'proxy-authorization'=>$p_auth)}$handle->connect($p_scheme,$p_host,$p_port);if ($request->{scheme}eq 'https'){$self->_create_proxy_tunnel($request,$handle)}else {$request->{uri}="$request->{scheme}://$request->{host_port}$request->{uri}"}return$handle}sub _split_proxy {my ($self,$type,$proxy)=@_;my ($scheme,$host,$port,$path_query,$auth)=eval {$self->_split_url($proxy)};unless(defined($scheme)&& length($scheme)&& length($host)&& length($port)&& $path_query eq '/'){Carp::croak(qq{$type URL must be in format http[s]://[auth@]<host>:<port>/\n})}return ($scheme,$host,$port,$auth)}sub _create_proxy_tunnel {my ($self,$request,$handle)=@_;$handle->_assert_ssl;my$agent=exists($request->{headers}{'user-agent'})? $request->{headers}{'user-agent'}: $self->{agent};my$connect_request={method=>'CONNECT',uri=>"$request->{host}:$request->{port}",headers=>{host=>"$request->{host}:$request->{port}",'user-agent'=>$agent,}};if ($request->{headers}{'proxy-authorization'}){$connect_request->{headers}{'proxy-authorization'}=delete$request->{headers}{'proxy-authorization'}}$handle->write_request($connect_request);my$response;do {$response=$handle->read_response_header}until (substr($response->{status},0,1)ne '1');unless (substr($response->{status},0,1)eq '2'){die$response}$handle->start_ssl($request->{host});return}sub _prepare_headers_and_cb {my ($self,$request,$args,$url,$auth)=@_;for ($self->{default_headers},$args->{headers}){next unless defined;while (my ($k,$v)=each %$_){$request->{headers}{lc$k}=$v}}if (exists$request->{headers}{'host'}){die(qq/The 'Host' header must not be provided as header option\n/)}$request->{headers}{'host'}=$request->{host_port};$request->{headers}{'user-agent'}||= $self->{agent};$request->{headers}{'connection'}="close" unless$self->{keep_alive};if (defined$args->{content}){if (ref$args->{content}eq 'CODE'){$request->{headers}{'content-type'}||= "application/octet-stream";$request->{headers}{'transfer-encoding'}='chunked' unless$request->{headers}{'content-length'}|| $request->{headers}{'transfer-encoding'};$request->{cb}=$args->{content}}elsif (length$args->{content}){my$content=$args->{content};if ($] ge '5.008'){utf8::downgrade($content,1)or die(qq/Wide character in request message body\n/)}$request->{headers}{'content-type'}||= "application/octet-stream";$request->{headers}{'content-length'}=length$content unless$request->{headers}{'content-length'}|| $request->{headers}{'transfer-encoding'};$request->{cb}=sub {substr$content,0,length$content,''}}$request->{trailer_cb}=$args->{trailer_callback}if ref$args->{trailer_callback}eq 'CODE'}if ($self->{cookie_jar}){my$cookies=$self->cookie_jar->cookie_header($url);$request->{headers}{cookie}=$cookies if length$cookies}if (length$auth &&!defined$request->{headers}{authorization}){$self->_add_basic_auth_header($request,'authorization'=>$auth)}return}sub _add_basic_auth_header {my ($self,$request,$header,$auth)=@_;require MIME::Base64;$request->{headers}{$header}="Basic " .MIME::Base64::encode_base64($auth,"");return}sub _prepare_data_cb {my ($self,$response,$args)=@_;my$data_cb=$args->{data_callback};$response->{content}='';if (!$data_cb || $response->{status}!~ /^2/){if (defined$self->{max_size}){$data_cb=sub {$_[1]->{content}.= $_[0];die(qq/Size of response body exceeds the maximum allowed of $self->{max_size}\n/)if length $_[1]->{content}> $self->{max_size}}}else {$data_cb=sub {$_[1]->{content}.= $_[0]}}}return$data_cb}sub _update_cookie_jar {my ($self,$url,$response)=@_;my$cookies=$response->{headers}->{'set-cookie'};return unless defined$cookies;my@cookies=ref$cookies ? @$cookies : $cookies;$self->cookie_jar->add($url,$_)for@cookies;return}sub _validate_cookie_jar {my ($class,$jar)=@_;for my$method (qw/add cookie_header/){Carp::croak(qq/Cookie jar must provide the '$method' method\n/)unless ref($jar)&& ref($jar)->can($method)}return}sub _maybe_redirect {my ($self,$request,$response,$args)=@_;my$headers=$response->{headers};my ($status,$method)=($response->{status},$request->{method});if (($status eq '303' or ($status =~ /^30[1278]/ && $method =~ /^GET|HEAD$/))and $headers->{location}and ++$args->{redirects}<= $self->{max_redirect}){my$location=($headers->{location}=~ /^\//)? "$request->{scheme}://$request->{host_port}$headers->{location}" : $headers->{location};return (($status eq '303' ? 'GET' : $method),$location)}return}sub _split_url {my$url=pop;my ($scheme,$host,$path_query)=$url =~ m<\A([^:/?#]+)://([^/?#]*)([^#]*)> or die(qq/Cannot parse URL: '$url'\n/);$scheme=lc$scheme;$path_query="/$path_query" unless$path_query =~ m<\A/>;my$auth='';if ((my$i=index$host,'@')!=-1){$auth=substr$host,0,$i,'';substr$host,0,1,'';$auth =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg}my$port=$host =~ s/:(\d*)\z// && length $1 ? $1 : $scheme eq 'http' ? 80 : $scheme eq 'https' ? 443 : undef;return ($scheme,(length$host ? lc$host : "localhost"),$port,$path_query,$auth)}my$DoW="Sun|Mon|Tue|Wed|Thu|Fri|Sat";my$MoY="Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec";sub _http_date {my ($sec,$min,$hour,$mday,$mon,$year,$wday)=gmtime($_[1]);return sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT",substr($DoW,$wday*4,3),$mday,substr($MoY,$mon*4,3),$year+1900,$hour,$min,$sec)}sub _parse_http_date {my ($self,$str)=@_;require Time::Local;my@tl_parts;if ($str =~ /^[SMTWF][a-z]+, +(\d{1,2}) ($MoY) +(\d\d\d\d) +(\d\d):(\d\d):(\d\d) +GMT$/){@tl_parts=($6,$5,$4,$1,(index($MoY,$2)/4),$3)}elsif ($str =~ /^[SMTWF][a-z]+, +(\d\d)-($MoY)-(\d{2,4}) +(\d\d):(\d\d):(\d\d) +GMT$/){@tl_parts=($6,$5,$4,$1,(index($MoY,$2)/4),$3)}elsif ($str =~ /^[SMTWF][a-z]+ +($MoY) +(\d{1,2}) +(\d\d):(\d\d):(\d\d) +(?:[^0-9]+ +)?(\d\d\d\d)$/){@tl_parts=($5,$4,$3,$2,(index($MoY,$1)/4),$6)}return eval {my$t=@tl_parts ? Time::Local::timegm(@tl_parts): -1;$t < 0 ? undef : $t}}my%escapes=map {chr($_)=>sprintf("%%%02X",$_)}0..255;$escapes{' '}="+";my$unsafe_char=qr/[^A-Za-z0-9\-\._~]/;sub _uri_escape {my ($self,$str)=@_;if ($] ge '5.008'){utf8::encode($str)}else {$str=pack("U*",unpack("C*",$str))if (length$str==do {use bytes;length$str});$str=pack("C*",unpack("C*",$str))}$str =~ s/($unsafe_char)/$escapes{$1}/ge;return$str}package HTTP::Tiny::Handle;use strict;use warnings;use Errno qw[EINTR EPIPE];use IO::Socket qw[SOCK_STREAM];my$SOCKET_CLASS=$ENV{PERL_HTTP_TINY_IPV4_ONLY}? 'IO::Socket::INET' : eval {require IO::Socket::IP;IO::Socket::IP->VERSION(0.25)}? 'IO::Socket::IP' : 'IO::Socket::INET';sub BUFSIZE () {32768}my$Printable=sub {local $_=shift;s/\r/\\r/g;s/\n/\\n/g;s/\t/\\t/g;s/([^\x20-\x7E])/sprintf('\\x%.2X', ord($1))/ge;$_};my$Token=qr/[\x21\x23-\x27\x2A\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E-\x7A\x7C\x7E]/;sub new {my ($class,%args)=@_;return bless {rbuf=>'',timeout=>60,max_line_size=>16384,max_header_lines=>64,verify_SSL=>0,SSL_options=>{},%args },$class}sub connect {@_==4 || die(q/Usage: $handle->connect(scheme, host, port)/ ."\n");my ($self,$scheme,$host,$port)=@_;if ($scheme eq 'https'){$self->_assert_ssl}elsif ($scheme ne 'http'){die(qq/Unsupported URL scheme '$scheme'\n/)}$self->{fh}=$SOCKET_CLASS->new(PeerHost=>$host,PeerPort=>$port,$self->{local_address}? (LocalAddr=>$self->{local_address}): (),Proto=>'tcp',Type=>SOCK_STREAM,Timeout=>$self->{timeout},KeepAlive=>!!$self->{keep_alive})or die(qq/Could not connect to '$host:$port': $@\n/);binmode($self->{fh})or die(qq/Could not binmode() socket: '$!'\n/);$self->start_ssl($host)if$scheme eq 'https';$self->{scheme}=$scheme;$self->{host}=$host;$self->{port}=$port;$self->{pid}=$$;$self->{tid}=_get_tid();return$self}sub start_ssl {my ($self,$host)=@_;if (ref($self->{fh})eq 'IO::Socket::SSL'){unless ($self->{fh}->stop_SSL){my$ssl_err=IO::Socket::SSL->errstr;die(qq/Error halting prior SSL connection: $ssl_err/)}}my$ssl_args=$self->_ssl_args($host);IO::Socket::SSL->start_SSL($self->{fh},%$ssl_args,SSL_create_ctx_callback=>sub {my$ctx=shift;Net::SSLeay::CTX_set_mode($ctx,Net::SSLeay::MODE_AUTO_RETRY())},);unless (ref($self->{fh})eq 'IO::Socket::SSL'){my$ssl_err=IO::Socket::SSL->errstr;die(qq/SSL connection failed for $host: $ssl_err\n/)}}sub close {@_==1 || die(q/Usage: $handle->close()/ ."\n");my ($self)=@_;CORE::close($self->{fh})or die(qq/Could not close socket: '$!'\n/)}sub write {@_==2 || die(q/Usage: $handle->write(buf)/ ."\n");my ($self,$buf)=@_;if ($] ge '5.008'){utf8::downgrade($buf,1)or die(qq/Wide character in write()\n/)}my$len=length$buf;my$off=0;local$SIG{PIPE}='IGNORE';while (){$self->can_write or die(qq/Timed out while waiting for socket to become ready for writing\n/);my$r=syswrite($self->{fh},$buf,$len,$off);if (defined$r){$len -= $r;$off += $r;last unless$len > 0}elsif ($!==EPIPE){die(qq/Socket closed by remote server: $!\n/)}elsif ($!!=EINTR){if ($self->{fh}->can('errstr')){my$err=$self->{fh}->errstr();die (qq/Could not write to SSL socket: '$err'\n /)}else {die(qq/Could not write to socket: '$!'\n/)}}}return$off}sub read {@_==2 || @_==3 || die(q/Usage: $handle->read(len [, allow_partial])/ ."\n");my ($self,$len,$allow_partial)=@_;my$buf='';my$got=length$self->{rbuf};if ($got){my$take=($got < $len)? $got : $len;$buf=substr($self->{rbuf},0,$take,'');$len -= $take}while ($len > 0){$self->can_read or die(q/Timed out while waiting for socket to become ready for reading/ ."\n");my$r=sysread($self->{fh},$buf,$len,length$buf);if (defined$r){last unless$r;$len -= $r}elsif ($!!=EINTR){if ($self->{fh}->can('errstr')){my$err=$self->{fh}->errstr();die (qq/Could not read from SSL socket: '$err'\n /)}else {die(qq/Could not read from socket: '$!'\n/)}}}if ($len &&!$allow_partial){die(qq/Unexpected end of stream\n/)}return$buf}sub readline {@_==1 || die(q/Usage: $handle->readline()/ ."\n");my ($self)=@_;while (){if ($self->{rbuf}=~ s/\A ([^\x0D\x0A]* \x0D?\x0A)//x){return $1}if (length$self->{rbuf}>= $self->{max_line_size}){die(qq/Line size exceeds the maximum allowed size of $self->{max_line_size}\n/)}$self->can_read or die(qq/Timed out while waiting for socket to become ready for reading\n/);my$r=sysread($self->{fh},$self->{rbuf},BUFSIZE,length$self->{rbuf});if (defined$r){last unless$r}elsif ($!!=EINTR){if ($self->{fh}->can('errstr')){my$err=$self->{fh}->errstr();die (qq/Could not read from SSL socket: '$err'\n /)}else {die(qq/Could not read from socket: '$!'\n/)}}}die(qq/Unexpected end of stream while looking for line\n/)}sub read_header_lines {@_==1 || @_==2 || die(q/Usage: $handle->read_header_lines([headers])/ ."\n");my ($self,$headers)=@_;$headers ||= {};my$lines=0;my$val;while (){my$line=$self->readline;if (++$lines >= $self->{max_header_lines}){die(qq/Header lines exceeds maximum number allowed of $self->{max_header_lines}\n/)}elsif ($line =~ /\A ([^\x00-\x1F\x7F:]+) : [\x09\x20]* ([^\x0D\x0A]*)/x){my ($field_name)=lc $1;if (exists$headers->{$field_name}){for ($headers->{$field_name}){$_=[$_]unless ref $_ eq "ARRAY";push @$_,$2;$val=\$_->[-1]}}else {$val=\($headers->{$field_name}=$2)}}elsif ($line =~ /\A [\x09\x20]+ ([^\x0D\x0A]*)/x){$val or die(qq/Unexpected header continuation line\n/);next unless length $1;$$val .= ' ' if length $$val;$$val .= $1}elsif ($line =~ /\A \x0D?\x0A \z/x){last}else {die(q/Malformed header line: / .$Printable->($line)."\n")}}return$headers}sub write_request {@_==2 || die(q/Usage: $handle->write_request(request)/ ."\n");my($self,$request)=@_;$self->write_request_header(@{$request}{qw/method uri headers/});$self->write_body($request)if$request->{cb};return}my%HeaderCase=('content-md5'=>'Content-MD5','etag'=>'ETag','te'=>'TE','www-authenticate'=>'WWW-Authenticate','x-xss-protection'=>'X-XSS-Protection',);sub write_header_lines {(@_==2 || @_==3 && ref $_[1]eq 'HASH')|| die(q/Usage: $handle->write_header_lines(headers[,prefix])/ ."\n");my($self,$headers,$prefix_data)=@_;my$buf=(defined$prefix_data ? $prefix_data : '');while (my ($k,$v)=each %$headers){my$field_name=lc$k;if (exists$HeaderCase{$field_name}){$field_name=$HeaderCase{$field_name}}else {$field_name =~ /\A $Token+ \z/xo or die(q/Invalid HTTP header field name: / .$Printable->($field_name)."\n");$field_name =~ s/\b(\w)/\u$1/g;$HeaderCase{lc$field_name}=$field_name}for (ref$v eq 'ARRAY' ? @$v : $v){$_='' unless defined $_;$buf .= "$field_name: $_\x0D\x0A"}}$buf .= "\x0D\x0A";return$self->write($buf)}sub read_body {@_==3 || die(q/Usage: $handle->read_body(callback, response)/ ."\n");my ($self,$cb,$response)=@_;my$te=$response->{headers}{'transfer-encoding'}|| '';my$chunked=grep {/chunked/i}(ref$te eq 'ARRAY' ? @$te : $te);return$chunked ? $self->read_chunked_body($cb,$response): $self->read_content_body($cb,$response)}sub write_body {@_==2 || die(q/Usage: $handle->write_body(request)/ ."\n");my ($self,$request)=@_;if ($request->{headers}{'content-length'}){return$self->write_content_body($request)}else {return$self->write_chunked_body($request)}}sub read_content_body {@_==3 || @_==4 || die(q/Usage: $handle->read_content_body(callback, response, [read_length])/ ."\n");my ($self,$cb,$response,$content_length)=@_;$content_length ||= $response->{headers}{'content-length'};if (defined$content_length){my$len=$content_length;while ($len > 0){my$read=($len > BUFSIZE)? BUFSIZE : $len;$cb->($self->read($read,0),$response);$len -= $read}return length($self->{rbuf})==0}my$chunk;$cb->($chunk,$response)while length($chunk=$self->read(BUFSIZE,1));return}sub write_content_body {@_==2 || die(q/Usage: $handle->write_content_body(request)/ ."\n");my ($self,$request)=@_;my ($len,$content_length)=(0,$request->{headers}{'content-length'});while (){my$data=$request->{cb}->();defined$data && length$data or last;if ($] ge '5.008'){utf8::downgrade($data,1)or die(qq/Wide character in write_content()\n/)}$len += $self->write($data)}$len==$content_length or die(qq/Content-Length mismatch (got: $len expected: $content_length)\n/);return$len}sub read_chunked_body {@_==3 || die(q/Usage: $handle->read_chunked_body(callback, $response)/ ."\n");my ($self,$cb,$response)=@_;while (){my$head=$self->readline;$head =~ /\A ([A-Fa-f0-9]+)/x or die(q/Malformed chunk head: / .$Printable->($head)."\n");my$len=hex($1)or last;$self->read_content_body($cb,$response,$len);$self->read(2)eq "\x0D\x0A" or die(qq/Malformed chunk: missing CRLF after chunk data\n/)}$self->read_header_lines($response->{headers});return 1}sub write_chunked_body {@_==2 || die(q/Usage: $handle->write_chunked_body(request)/ ."\n");my ($self,$request)=@_;my$len=0;while (){my$data=$request->{cb}->();defined$data && length$data or last;if ($] ge '5.008'){utf8::downgrade($data,1)or die(qq/Wide character in write_chunked_body()\n/)}$len += length$data;my$chunk=sprintf '%X',length$data;$chunk .= "\x0D\x0A";$chunk .= $data;$chunk .= "\x0D\x0A";$self->write($chunk)}$self->write("0\x0D\x0A");$self->write_header_lines($request->{trailer_cb}->())if ref$request->{trailer_cb}eq 'CODE';return$len}sub read_response_header {@_==1 || die(q/Usage: $handle->read_response_header()/ ."\n");my ($self)=@_;my$line=$self->readline;$line =~ /\A (HTTP\/(0*\d+\.0*\d+)) [\x09\x20]+ ([0-9]{3}) [\x09\x20]+ ([^\x0D\x0A]*) \x0D?\x0A/x or die(q/Malformed Status-Line: / .$Printable->($line)."\n");my ($protocol,$version,$status,$reason)=($1,$2,$3,$4);die (qq/Unsupported HTTP protocol: $protocol\n/)unless$version =~ /0*1\.0*[01]/;return {status=>$status,reason=>$reason,headers=>$self->read_header_lines,protocol=>$protocol,}}sub write_request_header {@_==4 || die(q/Usage: $handle->write_request_header(method, request_uri, headers)/ ."\n");my ($self,$method,$request_uri,$headers)=@_;return$self->write_header_lines($headers,"$method $request_uri HTTP/1.1\x0D\x0A")}sub _do_timeout {my ($self,$type,$timeout)=@_;$timeout=$self->{timeout}unless defined$timeout && $timeout >= 0;my$fd=fileno$self->{fh};defined$fd && $fd >= 0 or die(qq/select(2): 'Bad file descriptor'\n/);my$initial=time;my$pending=$timeout;my$nfound;vec(my$fdset='',$fd,1)=1;while (){$nfound=($type eq 'read')? select($fdset,undef,undef,$pending): select(undef,$fdset,undef,$pending);if ($nfound==-1){$!==EINTR or die(qq/select(2): '$!'\n/);redo if!$timeout || ($pending=$timeout - (time - $initial))> 0;$nfound=0}last}$!=0;return$nfound}sub can_read {@_==1 || @_==2 || die(q/Usage: $handle->can_read([timeout])/ ."\n");my$self=shift;if (ref($self->{fh})eq 'IO::Socket::SSL'){return 1 if$self->{fh}->pending}return$self->_do_timeout('read',@_)}sub can_write {@_==1 || @_==2 || die(q/Usage: $handle->can_write([timeout])/ ."\n");my$self=shift;return$self->_do_timeout('write',@_)}sub _assert_ssl {my($ok,$reason)=HTTP::Tiny->can_ssl();die$reason unless$ok}sub can_reuse {my ($self,$scheme,$host,$port)=@_;return 0 if $self->{pid}!=$$ || $self->{tid}!=_get_tid()|| length($self->{rbuf})|| $scheme ne $self->{scheme}|| $host ne $self->{host}|| $port ne $self->{port}|| eval {$self->can_read(0)}|| $@ ;return 1}sub _find_CA_file {my$self=shift();if ($self->{SSL_options}->{SSL_ca_file}){unless (-r $self->{SSL_options}->{SSL_ca_file}){die qq/SSL_ca_file '$self->{SSL_options}->{SSL_ca_file}' not found or not readable\n/}return$self->{SSL_options}->{SSL_ca_file}}return Mozilla::CA::SSL_ca_file()if eval {require Mozilla::CA;1};for my$ca_bundle ("/etc/ssl/certs/ca-certificates.crt","/etc/pki/tls/certs/ca-bundle.crt","/etc/ssl/ca-bundle.pem","/etc/openssl/certs/ca-certificates.crt","/etc/ssl/cert.pem","/usr/local/share/certs/ca-root-nss.crt","/etc/pki/tls/cacert.pem","/etc/certs/ca-certificates.crt",){return$ca_bundle if -e $ca_bundle}die qq/Couldn't find a CA bundle with which to verify the SSL certificate.\n/ .qq/Try installing Mozilla::CA from CPAN\n/}sub _get_tid {no warnings 'reserved';return threads->can("tid")? threads->tid : 0}sub _ssl_args {my ($self,$host)=@_;my%ssl_args;if (Net::SSLeay::OPENSSL_VERSION_NUMBER()>= 0x01000000){$ssl_args{SSL_hostname}=$host,}if ($self->{verify_SSL}){$ssl_args{SSL_verifycn_scheme}='http';$ssl_args{SSL_verifycn_name}=$host;$ssl_args{SSL_verify_mode}=0x01;$ssl_args{SSL_ca_file}=$self->_find_CA_file}else {$ssl_args{SSL_verifycn_scheme}='none';$ssl_args{SSL_verify_mode}=0x00}for my$k (keys %{$self->{SSL_options}}){$ssl_args{$k}=$self->{SSL_options}{$k}if$k =~ m/^SSL_/}return \%ssl_args}1; - sub $sub_name { - my (\$self, \$url, \$args) = \@_; - \@_ == 2 || (\@_ == 3 && ref \$args eq 'HASH') - or Carp::croak(q/Usage: \$http->$sub_name(URL, [HASHREF])/ . "\n"); - return \$self->request('$req_method', \$url, \$args || {}); - } - HERE -HTTP_TINY - -$fatpacked{"JSON/PP.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'JSON_PP'; - package JSON::PP;use 5.005;use strict;use base qw(Exporter);use overload ();use Carp ();use B ();$JSON::PP::VERSION='2.27300';@JSON::PP::EXPORT=qw(encode_json decode_json from_json to_json);use constant P_ASCII=>0;use constant P_LATIN1=>1;use constant P_UTF8=>2;use constant P_INDENT=>3;use constant P_CANONICAL=>4;use constant P_SPACE_BEFORE=>5;use constant P_SPACE_AFTER=>6;use constant P_ALLOW_NONREF=>7;use constant P_SHRINK=>8;use constant P_ALLOW_BLESSED=>9;use constant P_CONVERT_BLESSED=>10;use constant P_RELAXED=>11;use constant P_LOOSE=>12;use constant P_ALLOW_BIGNUM=>13;use constant P_ALLOW_BAREKEY=>14;use constant P_ALLOW_SINGLEQUOTE=>15;use constant P_ESCAPE_SLASH=>16;use constant P_AS_NONBLESSED=>17;use constant P_ALLOW_UNKNOWN=>18;use constant OLD_PERL=>$] < 5.008 ? 1 : 0;BEGIN {my@xs_compati_bit_properties=qw(latin1 ascii utf8 indent canonical space_before space_after allow_nonref shrink allow_blessed convert_blessed relaxed allow_unknown);my@pp_bit_properties=qw(allow_singlequote allow_bignum loose allow_barekey escape_slash as_nonblessed);if ($] < 5.008){my$helper=$] >= 5.006 ? 'JSON::PP::Compat5006' : 'JSON::PP::Compat5005';eval qq| require $helper |;if ($@){Carp::croak $@}}for my$name (@xs_compati_bit_properties,@pp_bit_properties){my$flag_name='P_' .uc($name);eval qq/ - sub $name { - my \$enable = defined \$_[1] ? \$_[1] : 1; - - if (\$enable) { - \$_[0]->{PROPS}->[$flag_name] = 1; - } - else { - \$_[0]->{PROPS}->[$flag_name] = 0; - } - - \$_[0]; - } - - sub get_$name { - \$_[0]->{PROPS}->[$flag_name] ? 1 : ''; - } - /}}my%encode_allow_method =map {($_=>1)}qw/utf8 pretty allow_nonref latin1 self_encode escape_slash allow_blessed convert_blessed indent indent_length allow_bignum as_nonblessed/;my%decode_allow_method =map {($_=>1)}qw/utf8 allow_nonref loose allow_singlequote allow_bignum allow_barekey max_size relaxed/;my$JSON;sub encode_json ($) {($JSON ||= __PACKAGE__->new->utf8)->encode(@_)}sub decode_json {($JSON ||= __PACKAGE__->new->utf8)->decode(@_)}sub to_json($) {Carp::croak ("JSON::PP::to_json has been renamed to encode_json.")}sub from_json($) {Carp::croak ("JSON::PP::from_json has been renamed to decode_json.")}sub new {my$class=shift;my$self={max_depth=>512,max_size=>0,indent=>0,FLAGS=>0,fallback=>sub {encode_error('Invalid value. JSON can only reference.')},indent_length=>3,};bless$self,$class}sub encode {return $_[0]->PP_encode_json($_[1])}sub decode {return $_[0]->PP_decode_json($_[1],0x00000000)}sub decode_prefix {return $_[0]->PP_decode_json($_[1],0x00000001)}sub pretty {my ($self,$v)=@_;my$enable=defined$v ? $v : 1;if ($enable){$self->indent(1)->indent_length(3)->space_before(1)->space_after(1)}else {$self->indent(0)->space_before(0)->space_after(0)}$self}sub max_depth {my$max=defined $_[1]? $_[1]: 0x80000000;$_[0]->{max_depth}=$max;$_[0]}sub get_max_depth {$_[0]->{max_depth}}sub max_size {my$max=defined $_[1]? $_[1]: 0;$_[0]->{max_size}=$max;$_[0]}sub get_max_size {$_[0]->{max_size}}sub filter_json_object {$_[0]->{cb_object}=defined $_[1]? $_[1]: 0;$_[0]->{F_HOOK}=($_[0]->{cb_object}or $_[0]->{cb_sk_object})? 1 : 0;$_[0]}sub filter_json_single_key_object {if (@_ > 1){$_[0]->{cb_sk_object}->{$_[1]}=$_[2]}$_[0]->{F_HOOK}=($_[0]->{cb_object}or $_[0]->{cb_sk_object})? 1 : 0;$_[0]}sub indent_length {if (!defined $_[1]or $_[1]> 15 or $_[1]< 0){Carp::carp "The acceptable range of indent_length() is 0 to 15."}else {$_[0]->{indent_length}=$_[1]}$_[0]}sub get_indent_length {$_[0]->{indent_length}}sub sort_by {$_[0]->{sort_by}=defined $_[1]? $_[1]: 1;$_[0]}sub allow_bigint {Carp::carp("allow_bigint() is obsoleted. use allow_bignum() insted.")}{my$max_depth;my$indent;my$ascii;my$latin1;my$utf8;my$space_before;my$space_after;my$canonical;my$allow_blessed;my$convert_blessed;my$indent_length;my$escape_slash;my$bignum;my$as_nonblessed;my$depth;my$indent_count;my$keysort;sub PP_encode_json {my$self=shift;my$obj=shift;$indent_count=0;$depth=0;my$idx=$self->{PROPS};($ascii,$latin1,$utf8,$indent,$canonical,$space_before,$space_after,$allow_blessed,$convert_blessed,$escape_slash,$bignum,$as_nonblessed)=@{$idx}[P_ASCII .. P_SPACE_AFTER,P_ALLOW_BLESSED,P_CONVERT_BLESSED,P_ESCAPE_SLASH,P_ALLOW_BIGNUM,P_AS_NONBLESSED];($max_depth,$indent_length)=@{$self}{qw/max_depth indent_length/};$keysort=$canonical ? sub {$a cmp $b}: undef;if ($self->{sort_by}){$keysort=ref($self->{sort_by})eq 'CODE' ? $self->{sort_by}: $self->{sort_by}=~ /\D+/ ? $self->{sort_by}: sub {$a cmp $b}}encode_error("hash- or arrayref expected (not a simple scalar, use allow_nonref to allow this)")if(!ref$obj and!$idx->[P_ALLOW_NONREF ]);my$str=$self->object_to_json($obj);$str .= "\n" if ($indent);unless ($ascii or $latin1 or $utf8){utf8::upgrade($str)}if ($idx->[P_SHRINK ]){utf8::downgrade($str,1)}return$str}sub object_to_json {my ($self,$obj)=@_;my$type=ref($obj);if($type eq 'HASH'){return$self->hash_to_json($obj)}elsif($type eq 'ARRAY'){return$self->array_to_json($obj)}elsif ($type){if (blessed($obj)){return$self->value_to_json($obj)if ($obj->isa('JSON::PP::Boolean'));if ($convert_blessed and $obj->can('TO_JSON')){my$result=$obj->TO_JSON();if (defined$result and ref($result)){if (refaddr($obj)eq refaddr($result)){encode_error(sprintf("%s::TO_JSON method returned same object as was passed instead of a new one",ref$obj))}}return$self->object_to_json($result)}return "$obj" if ($bignum and _is_bignum($obj));return$self->blessed_to_json($obj)if ($allow_blessed and $as_nonblessed);encode_error(sprintf("encountered object '%s', but neither allow_blessed " ."nor convert_blessed settings are enabled",$obj))unless ($allow_blessed);return 'null'}else {return$self->value_to_json($obj)}}else{return$self->value_to_json($obj)}}sub hash_to_json {my ($self,$obj)=@_;my@res;encode_error("json text or perl structure exceeds maximum nesting level (max_depth set too low?)")if (++$depth > $max_depth);my ($pre,$post)=$indent ? $self->_up_indent(): ('','');my$del=($space_before ? ' ' : '').':' .($space_after ? ' ' : '');for my$k (_sort($obj)){if (OLD_PERL){utf8::decode($k)}push@res,string_to_json($self,$k).$del .($self->object_to_json($obj->{$k})|| $self->value_to_json($obj->{$k}))}--$depth;$self->_down_indent()if ($indent);return '{' .(@res ? $pre : '').(@res ? join(",$pre",@res).$post : '').'}'}sub array_to_json {my ($self,$obj)=@_;my@res;encode_error("json text or perl structure exceeds maximum nesting level (max_depth set too low?)")if (++$depth > $max_depth);my ($pre,$post)=$indent ? $self->_up_indent(): ('','');for my$v (@$obj){push@res,$self->object_to_json($v)|| $self->value_to_json($v)}--$depth;$self->_down_indent()if ($indent);return '[' .(@res ? $pre : '').(@res ? join(",$pre",@res).$post : '').']'}sub value_to_json {my ($self,$value)=@_;return 'null' if(!defined$value);my$b_obj=B::svref_2object(\$value);my$flags=$b_obj->FLAGS;return$value if$flags & (B::SVp_IOK | B::SVp_NOK)and!($flags & B::SVp_POK);my$type=ref($value);if(!$type){return string_to_json($self,$value)}elsif(blessed($value)and $value->isa('JSON::PP::Boolean')){return $$value==1 ? 'true' : 'false'}elsif ($type){if ((overload::StrVal($value)=~ /=(\w+)/)[0]){return$self->value_to_json("$value")}if ($type eq 'SCALAR' and defined $$value){return $$value eq '1' ? 'true' : $$value eq '0' ? 'false' : $self->{PROPS}->[P_ALLOW_UNKNOWN ]? 'null' : encode_error("cannot encode reference to scalar")}if ($self->{PROPS}->[P_ALLOW_UNKNOWN ]){return 'null'}else {if ($type eq 'SCALAR' or $type eq 'REF'){encode_error("cannot encode reference to scalar")}else {encode_error("encountered $value, but JSON can only represent references to arrays or hashes")}}}else {return$self->{fallback}->($value)if ($self->{fallback}and ref($self->{fallback})eq 'CODE');return 'null'}}my%esc=("\n"=>'\n',"\r"=>'\r',"\t"=>'\t',"\f"=>'\f',"\b"=>'\b',"\""=>'\"',"\\"=>'\\\\',"\'"=>'\\\'',);sub string_to_json {my ($self,$arg)=@_;$arg =~ s/([\x22\x5c\n\r\t\f\b])/$esc{$1}/g;$arg =~ s/\//\\\//g if ($escape_slash);$arg =~ s/([\x00-\x08\x0b\x0e-\x1f])/'\\u00' . unpack('H2', $1)/eg;if ($ascii){$arg=JSON_PP_encode_ascii($arg)}if ($latin1){$arg=JSON_PP_encode_latin1($arg)}if ($utf8){utf8::encode($arg)}return '"' .$arg .'"'}sub blessed_to_json {my$reftype=reftype($_[1])|| '';if ($reftype eq 'HASH'){return $_[0]->hash_to_json($_[1])}elsif ($reftype eq 'ARRAY'){return $_[0]->array_to_json($_[1])}else {return 'null'}}sub encode_error {my$error=shift;Carp::croak "$error"}sub _sort {defined$keysort ? (sort$keysort (keys %{$_[0]})): keys %{$_[0]}}sub _up_indent {my$self=shift;my$space=' ' x $indent_length;my ($pre,$post)=('','');$post="\n" .$space x $indent_count;$indent_count++;$pre="\n" .$space x $indent_count;return ($pre,$post)}sub _down_indent {$indent_count--}sub PP_encode_box {{depth=>$depth,indent_count=>$indent_count,}}}sub _encode_ascii {join('',map {$_ <= 127 ? chr($_): $_ <= 65535 ? sprintf('\u%04x',$_): sprintf('\u%x\u%x',_encode_surrogates($_))}unpack('U*',$_[0]))}sub _encode_latin1 {join('',map {$_ <= 255 ? chr($_): $_ <= 65535 ? sprintf('\u%04x',$_): sprintf('\u%x\u%x',_encode_surrogates($_))}unpack('U*',$_[0]))}sub _encode_surrogates {my$uni=$_[0]- 0x10000;return ($uni / 0x400 + 0xD800,$uni % 0x400 + 0xDC00)}sub _is_bignum {$_[0]->isa('Math::BigInt')or $_[0]->isa('Math::BigFloat')}my$max_intsize;BEGIN {my$checkint=1111;for my$d (5..64){$checkint .= 1;my$int=eval qq| $checkint |;if ($int =~ /[eE]/){$max_intsize=$d - 1;last}}}{my%escapes=(b=>"\x8",t=>"\x9",n=>"\xA",f=>"\xC",r=>"\xD",'\\'=>'\\','"'=>'"','/'=>'/',);my$text;my$at;my$ch;my$len;my$depth;my$encoding;my$is_valid_utf8;my$utf8_len;my$utf8;my$max_depth;my$max_size;my$relaxed;my$cb_object;my$cb_sk_object;my$F_HOOK;my$allow_bigint;my$singlequote;my$loose;my$allow_barekey;sub PP_decode_json {my ($self,$opt);($self,$text,$opt)=@_;($at,$ch,$depth)=(0,'',0);if (!defined$text or ref$text){decode_error("malformed JSON string, neither array, object, number, string or atom")}my$idx=$self->{PROPS};($utf8,$relaxed,$loose,$allow_bigint,$allow_barekey,$singlequote)=@{$idx}[P_UTF8,P_RELAXED,P_LOOSE .. P_ALLOW_SINGLEQUOTE];if ($utf8){utf8::downgrade($text,1)or Carp::croak("Wide character in subroutine entry")}else {utf8::upgrade($text);utf8::encode($text)}$len=length$text;($max_depth,$max_size,$cb_object,$cb_sk_object,$F_HOOK)=@{$self}{qw/max_depth max_size cb_object cb_sk_object F_HOOK/};if ($max_size > 1){use bytes;my$bytes=length$text;decode_error(sprintf("attempted decode of JSON text of %s bytes size, but max_size is set to %s" ,$bytes,$max_size),1)if ($bytes > $max_size)}my@octets=unpack('C4',$text);$encoding=($octets[0]and $octets[1])? 'UTF-8' : (!$octets[0]and $octets[1])? 'UTF-16BE' : (!$octets[0]and!$octets[1])? 'UTF-32BE' : ($octets[2])? 'UTF-16LE' : (!$octets[2])? 'UTF-32LE' : 'unknown';white();my$valid_start=defined$ch;my$result=value();return undef if (!$result && ($opt & 0x10000000));decode_error("malformed JSON string, neither array, object, number, string or atom")unless$valid_start;if (!$idx->[P_ALLOW_NONREF ]and!ref$result){decode_error('JSON text must be an object or array (but found number, string, true, false or null,' .' use allow_nonref to allow this)',1)}Carp::croak('something wrong.')if$len < $at;my$consumed=defined$ch ? $at - 1 : $at;white();if ($ch){return ($result,$consumed)if ($opt & 0x00000001);decode_error("garbage after JSON object")}($opt & 0x00000001)? ($result,$consumed): $result}sub next_chr {return$ch=undef if($at >= $len);$ch=substr($text,$at++,1)}sub value {white();return if(!defined$ch);return object()if($ch eq '{');return array()if($ch eq '[');return string()if($ch eq '"' or ($singlequote and $ch eq "'"));return number()if($ch =~ /[0-9]/ or $ch eq '-');return word()}sub string {my ($i,$s,$t,$u);my$utf16;my$is_utf8;($is_valid_utf8,$utf8_len)=('',0);$s='';if($ch eq '"' or ($singlequote and $ch eq "'")){my$boundChar=$ch;OUTER: while(defined(next_chr())){if($ch eq $boundChar){next_chr();if ($utf16){decode_error("missing low surrogate character in surrogate pair")}utf8::decode($s)if($is_utf8);return$s}elsif($ch eq '\\'){next_chr();if(exists$escapes{$ch}){$s .= $escapes{$ch}}elsif($ch eq 'u'){my$u='';for(1..4){$ch=next_chr();last OUTER if($ch !~ /[0-9a-fA-F]/);$u .= $ch}if ($u =~ /^[dD][89abAB][0-9a-fA-F]{2}/){$utf16=$u}elsif ($u =~ /^[dD][c-fC-F][0-9a-fA-F]{2}/){unless (defined$utf16){decode_error("missing high surrogate character in surrogate pair")}$is_utf8=1;$s .= JSON_PP_decode_surrogates($utf16,$u)|| next;$utf16=undef}else {if (defined$utf16){decode_error("surrogate pair expected")}if ((my$hex=hex($u))> 127){$is_utf8=1;$s .= JSON_PP_decode_unicode($u)|| next}else {$s .= chr$hex}}}else{unless ($loose){$at -= 2;decode_error('illegal backslash escape sequence in string')}$s .= $ch}}else{if (ord$ch > 127){unless($ch=is_valid_utf8($ch)){$at -= 1;decode_error("malformed UTF-8 character in JSON string")}else {$at += $utf8_len - 1}$is_utf8=1}if (!$loose){if ($ch =~ /[\x00-\x1f\x22\x5c]/){$at--;decode_error('invalid character encountered while parsing JSON string')}}$s .= $ch}}}decode_error("unexpected end of string while parsing JSON string")}sub white {while(defined$ch){if($ch le ' '){next_chr()}elsif($ch eq '/'){next_chr();if(defined$ch and $ch eq '/'){1 while(defined(next_chr())and $ch ne "\n" and $ch ne "\r")}elsif(defined$ch and $ch eq '*'){next_chr();while(1){if(defined$ch){if($ch eq '*'){if(defined(next_chr())and $ch eq '/'){next_chr();last}}else{next_chr()}}else{decode_error("Unterminated comment")}}next}else{$at--;decode_error("malformed JSON string, neither array, object, number, string or atom")}}else{if ($relaxed and $ch eq '#'){pos($text)=$at;$text =~ /\G([^\n]*(?:\r\n|\r|\n|$))/g;$at=pos($text);next_chr;next}last}}}sub array {my$a=$_[0]|| [];decode_error('json text or perl structure exceeds maximum nesting level (max_depth set too low?)')if (++$depth > $max_depth);next_chr();white();if(defined$ch and $ch eq ']'){--$depth;next_chr();return$a}else {while(defined($ch)){push @$a,value();white();if (!defined$ch){last}if($ch eq ']'){--$depth;next_chr();return$a}if($ch ne ','){last}next_chr();white();if ($relaxed and $ch eq ']'){--$depth;next_chr();return$a}}}decode_error(", or ] expected while parsing array")}sub object {my$o=$_[0]|| {};my$k;decode_error('json text or perl structure exceeds maximum nesting level (max_depth set too low?)')if (++$depth > $max_depth);next_chr();white();if(defined$ch and $ch eq '}'){--$depth;next_chr();if ($F_HOOK){return _json_object_hook($o)}return$o}else {while (defined$ch){$k=($allow_barekey and $ch ne '"' and $ch ne "'")? bareKey(): string();white();if(!defined$ch or $ch ne ':'){$at--;decode_error("':' expected")}next_chr();$o->{$k}=value();white();last if (!defined$ch);if($ch eq '}'){--$depth;next_chr();if ($F_HOOK){return _json_object_hook($o)}return$o}if($ch ne ','){last}next_chr();white();if ($relaxed and $ch eq '}'){--$depth;next_chr();if ($F_HOOK){return _json_object_hook($o)}return$o}}}$at--;decode_error(", or } expected while parsing object/hash")}sub bareKey {my$key;while($ch =~ /[^\x00-\x23\x25-\x2F\x3A-\x40\x5B-\x5E\x60\x7B-\x7F]/){$key .= $ch;next_chr()}return$key}sub word {my$word=substr($text,$at-1,4);if($word eq 'true'){$at += 3;next_chr;return$JSON::PP::true}elsif($word eq 'null'){$at += 3;next_chr;return undef}elsif($word eq 'fals'){$at += 3;if(substr($text,$at,1)eq 'e'){$at++;next_chr;return$JSON::PP::false}}$at--;decode_error("'null' expected")if ($word =~ /^n/);decode_error("'true' expected")if ($word =~ /^t/);decode_error("'false' expected")if ($word =~ /^f/);decode_error("malformed JSON string, neither array, object, number, string or atom")}sub number {my$n='';my$v;if($ch eq '0'){my$peek=substr($text,$at,1);my$hex=$peek =~ /[xX]/;if($hex){decode_error("malformed number (leading zero must not be followed by another digit)");($n)=(substr($text,$at+1)=~ /^([0-9a-fA-F]+)/)}else{($n)=(substr($text,$at)=~ /^([0-7]+)/);if (defined$n and length$n > 1){decode_error("malformed number (leading zero must not be followed by another digit)")}}if(defined$n and length($n)){if (!$hex and length($n)==1){decode_error("malformed number (leading zero must not be followed by another digit)")}$at += length($n)+ $hex;next_chr;return$hex ? hex($n): oct($n)}}if($ch eq '-'){$n='-';next_chr;if (!defined$ch or $ch !~ /\d/){decode_error("malformed number (no digits after initial minus)")}}while(defined$ch and $ch =~ /\d/){$n .= $ch;next_chr}if(defined$ch and $ch eq '.'){$n .= '.';next_chr;if (!defined$ch or $ch !~ /\d/){decode_error("malformed number (no digits after decimal point)")}else {$n .= $ch}while(defined(next_chr)and $ch =~ /\d/){$n .= $ch}}if(defined$ch and ($ch eq 'e' or $ch eq 'E')){$n .= $ch;next_chr;if(defined($ch)and ($ch eq '+' or $ch eq '-')){$n .= $ch;next_chr;if (!defined$ch or $ch =~ /\D/){decode_error("malformed number (no digits after exp sign)")}$n .= $ch}elsif(defined($ch)and $ch =~ /\d/){$n .= $ch}else {decode_error("malformed number (no digits after exp sign)")}while(defined(next_chr)and $ch =~ /\d/){$n .= $ch}}$v .= $n;if ($v !~ /[.eE]/ and length$v > $max_intsize){if ($allow_bigint){require Math::BigInt;return Math::BigInt->new($v)}else {return "$v"}}elsif ($allow_bigint){require Math::BigFloat;return Math::BigFloat->new($v)}return 0+$v}sub is_valid_utf8 {$utf8_len=$_[0]=~ /[\x00-\x7F]/ ? 1 : $_[0]=~ /[\xC2-\xDF]/ ? 2 : $_[0]=~ /[\xE0-\xEF]/ ? 3 : $_[0]=~ /[\xF0-\xF4]/ ? 4 : 0 ;return unless$utf8_len;my$is_valid_utf8=substr($text,$at - 1,$utf8_len);return ($is_valid_utf8 =~ /^(?: - [\x00-\x7F] - |[\xC2-\xDF][\x80-\xBF] - |[\xE0][\xA0-\xBF][\x80-\xBF] - |[\xE1-\xEC][\x80-\xBF][\x80-\xBF] - |[\xED][\x80-\x9F][\x80-\xBF] - |[\xEE-\xEF][\x80-\xBF][\x80-\xBF] - |[\xF0][\x90-\xBF][\x80-\xBF][\x80-\xBF] - |[\xF1-\xF3][\x80-\xBF][\x80-\xBF][\x80-\xBF] - |[\xF4][\x80-\x8F][\x80-\xBF][\x80-\xBF] - )$/x)? $is_valid_utf8 : ''}sub decode_error {my$error=shift;my$no_rep=shift;my$str=defined$text ? substr($text,$at): '';my$mess='';my$type=$] >= 5.008 ? 'U*' : $] < 5.006 ? 'C*' : utf8::is_utf8($str)? 'U*' : 'C*' ;for my$c (unpack($type,$str)){$mess .= $c==0x07 ? '\a' : $c==0x09 ? '\t' : $c==0x0a ? '\n' : $c==0x0d ? '\r' : $c==0x0c ? '\f' : $c < 0x20 ? sprintf('\x{%x}',$c): $c==0x5c ? '\\\\' : $c < 0x80 ? chr($c): sprintf('\x{%x}',$c);if (length$mess >= 20){$mess .= '...';last}}unless (length$mess){$mess='(end of string)'}Carp::croak ($no_rep ? "$error" : "$error, at character offset $at (before \"$mess\")")}sub _json_object_hook {my$o=$_[0];my@ks=keys %{$o};if ($cb_sk_object and @ks==1 and exists$cb_sk_object->{$ks[0]}and ref$cb_sk_object->{$ks[0]}){my@val=$cb_sk_object->{$ks[0]}->($o->{$ks[0]});if (@val==1){return$val[0]}}my@val=$cb_object->($o)if ($cb_object);if (@val==0 or @val > 1){return$o}else {return$val[0]}}sub PP_decode_box {{text=>$text,at=>$at,ch=>$ch,len=>$len,depth=>$depth,encoding=>$encoding,is_valid_utf8=>$is_valid_utf8,}}}sub _decode_surrogates {my$uni=0x10000 + (hex($_[0])- 0xD800)* 0x400 + (hex($_[1])- 0xDC00);my$un=pack('U*',$uni);utf8::encode($un);return$un}sub _decode_unicode {my$un=pack('U',hex shift);utf8::encode($un);return$un}BEGIN {unless (defined&utf8::is_utf8){require Encode;*utf8::is_utf8=*Encode::is_utf8}if ($] >= 5.008){*JSON::PP::JSON_PP_encode_ascii=\&_encode_ascii;*JSON::PP::JSON_PP_encode_latin1=\&_encode_latin1;*JSON::PP::JSON_PP_decode_surrogates=\&_decode_surrogates;*JSON::PP::JSON_PP_decode_unicode=\&_decode_unicode}if ($] >= 5.008 and $] < 5.008003){package JSON::PP;require subs;subs->import('join');eval q| - sub join { - return '' if (@_ < 2); - my $j = shift; - my $str = shift; - for (@_) { $str .= $j . $_; } - return $str; - } - |}sub JSON::PP::incr_parse {local$Carp::CarpLevel=1;($_[0]->{_incr_parser}||= JSON::PP::IncrParser->new)->incr_parse(@_)}sub JSON::PP::incr_skip {($_[0]->{_incr_parser}||= JSON::PP::IncrParser->new)->incr_skip}sub JSON::PP::incr_reset {($_[0]->{_incr_parser}||= JSON::PP::IncrParser->new)->incr_reset}eval q{ - sub JSON::PP::incr_text : lvalue { - $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new; - - if ( $_[0]->{_incr_parser}->{incr_parsing} ) { - Carp::croak("incr_text can not be called when the incremental parser already started parsing"); - } - $_[0]->{_incr_parser}->{incr_text}; - } - } if ($] >= 5.006)}BEGIN {eval 'require Scalar::Util';unless($@){*JSON::PP::blessed=\&Scalar::Util::blessed;*JSON::PP::reftype=\&Scalar::Util::reftype;*JSON::PP::refaddr=\&Scalar::Util::refaddr}else{eval 'sub UNIVERSAL::a_sub_not_likely_to_be_here { ref($_[0]) }';*JSON::PP::blessed=sub {local($@,$SIG{__DIE__},$SIG{__WARN__});ref($_[0])? eval {$_[0]->a_sub_not_likely_to_be_here}: undef};my%tmap=qw(B::NULL SCALAR B::HV HASH B::AV ARRAY B::CV CODE B::IO IO B::GV GLOB B::REGEXP REGEXP);*JSON::PP::reftype=sub {my$r=shift;return undef unless length(ref($r));my$t=ref(B::svref_2object($r));return exists$tmap{$t}? $tmap{$t}: length(ref($$r))? 'REF' : 'SCALAR'};*JSON::PP::refaddr=sub {return undef unless length(ref($_[0]));my$addr;if(defined(my$pkg=blessed($_[0]))){$addr .= bless $_[0],'Scalar::Util::Fake';bless $_[0],$pkg}else {$addr .= $_[0]}$addr =~ /0x(\w+)/;local $^W;hex($1)}}}$JSON::PP::true=do {bless \(my$dummy=1),"JSON::PP::Boolean"};$JSON::PP::false=do {bless \(my$dummy=0),"JSON::PP::Boolean"};sub is_bool {defined $_[0]and UNIVERSAL::isa($_[0],"JSON::PP::Boolean")}sub true {$JSON::PP::true}sub false {$JSON::PP::false}sub null {undef}package JSON::PP::Boolean;use overload ("0+"=>sub {${$_[0]}},"++"=>sub {$_[0]=${$_[0]}+ 1},"--"=>sub {$_[0]=${$_[0]}- 1},fallback=>1,);package JSON::PP::IncrParser;use strict;use constant INCR_M_WS=>0;use constant INCR_M_STR=>1;use constant INCR_M_BS=>2;use constant INCR_M_JSON=>3;use constant INCR_M_C0=>4;use constant INCR_M_C1=>5;$JSON::PP::IncrParser::VERSION='1.01';my$unpack_format=$] < 5.006 ? 'C*' : 'U*';sub new {my ($class)=@_;bless {incr_nest=>0,incr_text=>undef,incr_parsing=>0,incr_p=>0,},$class}sub incr_parse {my ($self,$coder,$text)=@_;$self->{incr_text}='' unless (defined$self->{incr_text});if (defined$text){if (utf8::is_utf8($text)and!utf8::is_utf8($self->{incr_text})){utf8::upgrade($self->{incr_text});utf8::decode($self->{incr_text})}$self->{incr_text}.= $text}my$max_size=$coder->get_max_size;if (defined wantarray){$self->{incr_mode}=INCR_M_WS unless defined$self->{incr_mode};if (wantarray){my@ret;$self->{incr_parsing}=1;do {push@ret,$self->_incr_parse($coder,$self->{incr_text});unless (!$self->{incr_nest}and $self->{incr_mode}==INCR_M_JSON){$self->{incr_mode}=INCR_M_WS if$self->{incr_mode}!=INCR_M_STR}}until (length$self->{incr_text}>= $self->{incr_p});$self->{incr_parsing}=0;return@ret}else {$self->{incr_parsing}=1;my$obj=$self->_incr_parse($coder,$self->{incr_text});$self->{incr_parsing}=0 if defined$obj;return$obj ? $obj : undef}}}sub _incr_parse {my ($self,$coder,$text,$skip)=@_;my$p=$self->{incr_p};my$restore=$p;my@obj;my$len=length$text;if ($self->{incr_mode}==INCR_M_WS){while ($len > $p){my$s=substr($text,$p,1);$p++ and next if (0x20 >= unpack($unpack_format,$s));$self->{incr_mode}=INCR_M_JSON;last}}while ($len > $p){my$s=substr($text,$p++,1);if ($s eq '"'){if (substr($text,$p - 2,1)eq '\\'){next}if ($self->{incr_mode}!=INCR_M_STR){$self->{incr_mode}=INCR_M_STR}else {$self->{incr_mode}=INCR_M_JSON;unless ($self->{incr_nest}){last}}}if ($self->{incr_mode}==INCR_M_JSON){if ($s eq '[' or $s eq '{'){if (++$self->{incr_nest}> $coder->get_max_depth){Carp::croak('json text or perl structure exceeds maximum nesting level (max_depth set too low?)')}}elsif ($s eq ']' or $s eq '}'){last if (--$self->{incr_nest}<= 0)}elsif ($s eq '#'){while ($len > $p){last if substr($text,$p++,1)eq "\n"}}}}$self->{incr_p}=$p;return if ($self->{incr_mode}==INCR_M_STR and not $self->{incr_nest});return if ($self->{incr_mode}==INCR_M_JSON and $self->{incr_nest}> 0);return '' unless (length substr($self->{incr_text},0,$p));local$Carp::CarpLevel=2;$self->{incr_p}=$restore;$self->{incr_c}=$p;my ($obj,$tail)=$coder->PP_decode_json(substr($self->{incr_text},0,$p),0x10000001);$self->{incr_text}=substr($self->{incr_text},$p);$self->{incr_p}=0;return$obj || ''}sub incr_text {if ($_[0]->{incr_parsing}){Carp::croak("incr_text can not be called when the incremental parser already started parsing")}$_[0]->{incr_text}}sub incr_skip {my$self=shift;$self->{incr_text}=substr($self->{incr_text},$self->{incr_c});$self->{incr_p}=0}sub incr_reset {my$self=shift;$self->{incr_text}=undef;$self->{incr_p}=0;$self->{incr_mode}=0;$self->{incr_nest}=0;$self->{incr_parsing}=0}1; -JSON_PP - -$fatpacked{"JSON/PP/Boolean.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'JSON_PP_BOOLEAN'; - use JSON::PP ();use strict;1; -JSON_PP_BOOLEAN - -$fatpacked{"Module/CPANfile.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE'; - package Module::CPANfile;use strict;use warnings;use Cwd;use Carp ();use Module::CPANfile::Environment;use Module::CPANfile::Requirement;our$VERSION='1.1000';sub new {my($class,$file)=@_;bless {},$class}sub load {my($proto,$file)=@_;my$self=ref$proto ? $proto : $proto->new;$self->parse($file || Cwd::abs_path('cpanfile'));$self}sub save {my($self,$path)=@_;open my$out,">",$path or die "$path: $!";print {$out}$self->to_string}sub parse {my($self,$file)=@_;my$code=do {open my$fh,"<",$file or die "$file: $!";join '',<$fh>};my$env=Module::CPANfile::Environment->new($file);$env->parse($code)or die $@;$self->{_mirrors}=$env->mirrors;$self->{_prereqs}=$env->prereqs}sub from_prereqs {my($proto,$prereqs)=@_;my$self=$proto->new;$self->{_prereqs}=Module::CPANfile::Prereqs->from_cpan_meta($prereqs);$self}sub mirrors {my$self=shift;$self->{_mirrors}|| []}sub features {my$self=shift;map$self->feature($_),$self->{_prereqs}->identifiers}sub feature {my($self,$identifier)=@_;$self->{_prereqs}->feature($identifier)}sub prereq {shift->prereqs}sub prereqs {my$self=shift;$self->{_prereqs}->as_cpan_meta}sub merged_requirements {my$self=shift;$self->{_prereqs}->merged_requirements}sub effective_prereqs {my($self,$features)=@_;$self->prereqs_with(@{$features || []})}sub prereqs_with {my($self,@feature_identifiers)=@_;my$prereqs=$self->prereqs;my@others=map {$self->feature($_)->prereqs}@feature_identifiers;$prereqs->with_merged_prereqs(\@others)}sub prereq_specs {my$self=shift;$self->prereqs->as_string_hash}sub prereq_for_module {my($self,$module)=@_;$self->{_prereqs}->find($module)}sub options_for_module {my($self,$module)=@_;my$prereq=$self->prereq_for_module($module)or return;$prereq->requirement->options}sub merge_meta {my($self,$file,$version)=@_;require CPAN::Meta;$version ||= $file =~ /\.yml$/ ? '1.4' : '2';my$prereq=$self->prereqs;my$meta=CPAN::Meta->load_file($file);my$prereqs_hash=$prereq->with_merged_prereqs($meta->effective_prereqs)->as_string_hash;my$struct={%{$meta->as_struct},prereqs=>$prereqs_hash };CPAN::Meta->new($struct)->save($file,{version=>$version })}sub _dump {my$str=shift;require Data::Dumper;chomp(my$value=Data::Dumper->new([$str])->Terse(1)->Dump);$value}sub to_string {my($self,$include_empty)=@_;my$mirrors=$self->mirrors;my$prereqs=$self->prereq_specs;my$code='';$code .= $self->_dump_mirrors($mirrors);$code .= $self->_dump_prereqs($prereqs,$include_empty);for my$feature ($self->features){$code .= sprintf "feature %s, %s => sub {\n",_dump($feature->{identifier}),_dump($feature->{description});$code .= $self->_dump_prereqs($feature->{spec},$include_empty,4);$code .= "}\n\n"}$code =~ s/\n+$/\n/s;$code}sub _dump_mirrors {my($self,$mirrors)=@_;my$code="";for my$url (@$mirrors){$code .= "mirror '$url';\n"}$code =~ s/\n+$/\n/s;$code}sub _dump_prereqs {my($self,$prereqs,$include_empty,$base_indent)=@_;my$code='';for my$phase (qw(runtime configure build test develop)){my$indent=$phase eq 'runtime' ? '' : ' ';$indent=(' ' x ($base_indent || 0)).$indent;my($phase_code,$requirements);$phase_code .= "on $phase => sub {\n" unless$phase eq 'runtime';for my$type (qw(requires recommends suggests conflicts)){for my$mod (sort keys %{$prereqs->{$phase}{$type}}){my$ver=$prereqs->{$phase}{$type}{$mod};$phase_code .= $ver eq '0' ? "${indent}$type '$mod';\n" : "${indent}$type '$mod', '$ver';\n";$requirements++}}$phase_code .= "\n" unless$requirements;$phase_code .= "};\n" unless$phase eq 'runtime';$code .= $phase_code ."\n" if$requirements or $include_empty}$code =~ s/\n+$/\n/s;$code}1; -MODULE_CPANFILE - -$fatpacked{"Module/CPANfile/Environment.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_ENVIRONMENT'; - package Module::CPANfile::Environment;use strict;use warnings;use Module::CPANfile::Prereqs;use Carp ();my@bindings=qw(on requires recommends suggests conflicts feature osname mirror configure_requires build_requires test_requires author_requires);my$file_id=1;sub new {my($class,$file)=@_;bless {file=>$file,phase=>'runtime',feature=>undef,features=>{},prereqs=>Module::CPANfile::Prereqs->new,mirrors=>[],},$class}sub bind {my$self=shift;my$pkg=caller;for my$binding (@bindings){no strict 'refs';*{"$pkg\::$binding"}=sub {$self->$binding(@_)}}}sub parse {my($self,$code)=@_;my$err;{local $@;$file_id++;$self->_evaluate(<<EVAL);$err=$@}if ($err){die "Parsing $self->{file} failed: $err"};return 1}sub _evaluate {my$_environment=$_[0];eval $_[1]}sub prereqs {$_[0]->{prereqs}}sub mirrors {$_[0]->{mirrors}}sub on {my($self,$phase,$code)=@_;local$self->{phase}=$phase;$code->()}sub feature {my($self,$identifier,$description,$code)=@_;if (@_==3 && ref($description)eq 'CODE'){$code=$description;$description=$identifier}unless (ref$description eq '' && ref$code eq 'CODE'){Carp::croak("Usage: feature 'identifier', 'Description' => sub { ... }")}local$self->{feature}=$identifier;$self->prereqs->add_feature($identifier,$description);$code->()}sub osname {die "TODO"}sub mirror {my($self,$url)=@_;push @{$self->{mirrors}},$url}sub requirement_for {my($self,$module,@args)=@_;my$requirement=0;$requirement=shift@args if@args % 2;return Module::CPANfile::Requirement->new(name=>$module,version=>$requirement,@args,)}sub requires {my$self=shift;$self->add_prereq(requires=>@_)}sub recommends {my$self=shift;$self->add_prereq(recommends=>@_)}sub suggests {my$self=shift;$self->add_prereq(suggests=>@_)}sub conflicts {my$self=shift;$self->add_prereq(conflicts=>@_)}sub add_prereq {my($self,$type,$module,@args)=@_;$self->prereqs->add_prereq(feature=>$self->{feature},phase=>$self->{phase},type=>$type,module=>$module,requirement=>$self->requirement_for($module,@args),)}sub configure_requires {my($self,@args)=@_;$self->on(configure=>sub {$self->requires(@args)})}sub build_requires {my($self,@args)=@_;$self->on(build=>sub {$self->requires(@args)})}sub test_requires {my($self,@args)=@_;$self->on(test=>sub {$self->requires(@args)})}sub author_requires {my($self,@args)=@_;$self->on(develop=>sub {$self->requires(@args)})}1; - package Module::CPANfile::Sandbox$file_id; - no warnings; - BEGIN { \$_environment->bind } - - # line 1 "$self->{file}" - $code; - EVAL -MODULE_CPANFILE_ENVIRONMENT - -$fatpacked{"Module/CPANfile/Prereq.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_PREREQ'; - package Module::CPANfile::Prereq;use strict;sub new {my($class,%options)=@_;bless \%options,$class}sub feature {$_[0]->{feature}}sub phase {$_[0]->{phase}}sub type {$_[0]->{type}}sub module {$_[0]->{module}}sub requirement {$_[0]->{requirement}}sub match_feature {my($self,$identifier)=@_;no warnings 'uninitialized';$self->feature eq $identifier}1; -MODULE_CPANFILE_PREREQ - -$fatpacked{"Module/CPANfile/Prereqs.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_PREREQS'; - package Module::CPANfile::Prereqs;use strict;use Carp ();use CPAN::Meta::Feature;use Module::CPANfile::Prereq;sub from_cpan_meta {my($class,$prereqs)=@_;my$self=$class->new;for my$phase (keys %$prereqs){for my$type (keys %{$prereqs->{$phase}}){while (my($module,$requirement)=each %{$prereqs->{$phase}{$type}}){$self->add_prereq(phase=>$phase,type=>$type,module=>$module,requirement=>Module::CPANfile::Requirement->new(name=>$module,version=>$requirement),)}}}$self}sub new {my$class=shift;bless {prereqs=>[],features=>{},},$class}sub add_feature {my($self,$identifier,$description)=@_;$self->{features}{$identifier}={description=>$description }}sub add_prereq {my($self,%args)=@_;$self->add(Module::CPANfile::Prereq->new(%args))}sub add {my($self,$prereq)=@_;push @{$self->{prereqs}},$prereq}sub as_cpan_meta {my$self=shift;$self->{cpanmeta}||= $self->build_cpan_meta}sub build_cpan_meta {my($self,$identifier)=@_;my$prereq_spec={};$self->prereq_each($identifier,sub {my$prereq=shift;$prereq_spec->{$prereq->phase}{$prereq->type}{$prereq->module}=$prereq->requirement->version});CPAN::Meta::Prereqs->new($prereq_spec)}sub prereq_each {my($self,$identifier,$code)=@_;for my$prereq (@{$self->{prereqs}}){next unless$prereq->match_feature($identifier);$code->($prereq)}}sub merged_requirements {my$self=shift;my$reqs=CPAN::Meta::Requirements->new;for my$prereq (@{$self->{prereqs}}){$reqs->add_string_requirement($prereq->module,$prereq->requirement->version)}$reqs}sub find {my($self,$module)=@_;for my$prereq (@{$self->{prereqs}}){return$prereq if$prereq->module eq $module}return}sub identifiers {my$self=shift;keys %{$self->{features}}}sub feature {my($self,$identifier)=@_;my$data=$self->{features}{$identifier}or Carp::croak("Unknown feature '$identifier'");my$prereqs=$self->build_cpan_meta($identifier);CPAN::Meta::Feature->new($identifier,{description=>$data->{description},prereqs=>$prereqs->as_string_hash,})}1; -MODULE_CPANFILE_PREREQS - -$fatpacked{"Module/CPANfile/Requirement.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_REQUIREMENT'; - package Module::CPANfile::Requirement;use strict;sub new {my ($class,%args)=@_;$args{version}||= 0;bless +{name=>delete$args{name},version=>delete$args{version},options=>\%args,},$class}sub name {$_[0]->{name}}sub version {$_[0]->{version}}sub options {$_[0]->{options}}sub has_options {keys %{$_[0]->{options}}> 0}1; -MODULE_CPANFILE_REQUIREMENT - -$fatpacked{"Module/Metadata.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_METADATA'; - package Module::Metadata;sub __clean_eval {eval $_[0]}use strict;use warnings;our$VERSION='1.000027';use Carp qw/croak/;use File::Spec;BEGIN {eval {require Fcntl;Fcntl->import('SEEK_SET');1}or *SEEK_SET=sub {0}}use version 0.87;BEGIN {if ($INC{'Log/Contextual.pm'}){require "Log/Contextual/WarnLogger.pm";Log::Contextual->import('log_info','-default_logger'=>Log::Contextual::WarnLogger->new({env_prefix=>'MODULE_METADATA',}),)}else {*log_info=sub (&) {warn $_[0]->()}}}use File::Find qw(find);my$V_NUM_REGEXP=qr{v?[0-9._]+};my$PKG_FIRST_WORD_REGEXP=qr{ # the FIRST word in a package name - [a-zA-Z_] # the first word CANNOT start with a digit - (?: - [\w']? # can contain letters, digits, _, or ticks - \w # But, NO multi-ticks or trailing ticks - )* - }x;my$PKG_ADDL_WORD_REGEXP=qr{ # the 2nd+ word in a package name - \w # the 2nd+ word CAN start with digits - (?: - [\w']? # and can contain letters or ticks - \w # But, NO multi-ticks or trailing ticks - )* - }x;my$PKG_NAME_REGEXP=qr{ # match a package name - (?: :: )? # a pkg name can start with arisdottle - $PKG_FIRST_WORD_REGEXP # a package word - (?: - (?: :: )+ ### arisdottle (allow one or many times) - $PKG_ADDL_WORD_REGEXP ### a package word - )* # ^ zero, one or many times - (?: - :: # allow trailing arisdottle - )? - }x;my$PKG_REGEXP=qr{ # match a package declaration - ^[\s\{;]* # intro chars on a line - package # the word 'package' - \s+ # whitespace - ($PKG_NAME_REGEXP) # a package name - \s* # optional whitespace - ($V_NUM_REGEXP)? # optional version number - \s* # optional whitesapce - [;\{] # semicolon line terminator or block start (since 5.16) - }x;my$VARNAME_REGEXP=qr{ # match fully-qualified VERSION name - ([\$*]) # sigil - $ or * - ( - ( # optional leading package name - (?:::|\')? # possibly starting like just :: (a la $::VERSION) - (?:\w+(?:::|\'))* # Foo::Bar:: ... - )? - VERSION - )\b - }x;my$VERS_REGEXP=qr{ # match a VERSION definition - (?: - \(\s*$VARNAME_REGEXP\s*\) # with parens - | - $VARNAME_REGEXP # without parens - ) - \s* - =[^=~>] # = but not ==, nor =~, nor => - }x;sub new_from_file {my$class=shift;my$filename=File::Spec->rel2abs(shift);return undef unless defined($filename)&& -f $filename;return$class->_init(undef,$filename,@_)}sub new_from_handle {my$class=shift;my$handle=shift;my$filename=shift;return undef unless defined($handle)&& defined($filename);$filename=File::Spec->rel2abs($filename);return$class->_init(undef,$filename,@_,handle=>$handle)}sub new_from_module {my$class=shift;my$module=shift;my%props=@_;$props{inc}||= \@INC;my$filename=$class->find_module_by_name($module,$props{inc});return undef unless defined($filename)&& -f $filename;return$class->_init($module,$filename,%props)}{my$compare_versions=sub {my ($v1,$op,$v2)=@_;$v1=version->new($v1)unless UNIVERSAL::isa($v1,'version');my$eval_str="\$v1 $op \$v2";my$result=eval$eval_str;log_info {"error comparing versions: '$eval_str' $@"}if $@;return$result};my$normalize_version=sub {my ($version)=@_;if ($version =~ /[=<>!,]/){}elsif (ref$version eq 'version'){$version=$version->is_qv ? $version->normal : $version->stringify}elsif ($version =~ /^[^v][^.]*\.[^.]+\./){$version="v$version"}else {}return$version};my$resolve_module_versions=sub {my$packages=shift;my($file,$version);my$err='';for my$p (@$packages){if (defined($p->{version})){if (defined($version)){if ($compare_versions->($version,'!=',$p->{version})){$err .= " $p->{file} ($p->{version})\n"}else {}}else {$file=$p->{file};$version=$p->{version}}}$file ||= $p->{file}if defined($p->{file})}if ($err){$err=" $file ($version)\n" .$err}my%result=(file=>$file,version=>$version,err=>$err);return \%result};sub provides {my$class=shift;croak "provides() requires key/value pairs \n" if @_ % 2;my%args=@_;croak "provides() takes only one of 'dir' or 'files'\n" if$args{dir}&& $args{files};croak "provides() requires a 'version' argument" unless defined$args{version};croak "provides() does not support version '$args{version}' metadata" unless grep {$args{version}eq $_}qw/1.4 2/;$args{prefix}='lib' unless defined$args{prefix};my$p;if ($args{dir}){$p=$class->package_versions_from_directory($args{dir})}else {croak "provides() requires 'files' to be an array reference\n" unless ref$args{files}eq 'ARRAY';$p=$class->package_versions_from_directory($args{files})}if (length$args{prefix}){$args{prefix}=~ s{/$}{};for my$v (values %$p){$v->{file}="$args{prefix}/$v->{file}"}}return$p}sub package_versions_from_directory {my ($class,$dir,$files)=@_;my@files;if ($files){@files=@$files}else {find({wanted=>sub {push@files,$_ if -f $_ && /\.pm$/},no_chdir=>1,},$dir)}my(%prime,%alt);for my$file (@files){my$mapped_filename=File::Spec::Unix->abs2rel($file,$dir);my@path=split(/\//,$mapped_filename);(my$prime_package=join('::',@path))=~ s/\.pm$//;my$pm_info=$class->new_from_file($file);for my$package ($pm_info->packages_inside){next if$package eq 'main';next if$package eq 'DB';next if grep /^_/,split(/::/,$package);my$version=$pm_info->version($package);$prime_package=$package if lc($prime_package)eq lc($package);if ($package eq $prime_package){if (exists($prime{$package})){croak "Unexpected conflict in '$package'; multiple versions found.\n"}else {$mapped_filename="$package.pm" if lc("$package.pm")eq lc($mapped_filename);$prime{$package}{file}=$mapped_filename;$prime{$package}{version}=$version if defined($version)}}else {push(@{$alt{$package}},{file=>$mapped_filename,version=>$version,})}}}for my$package (keys(%alt)){my$result=$resolve_module_versions->($alt{$package});if (exists($prime{$package})){if ($result->{err}){log_info {"Found conflicting versions for package '$package'\n" ." $prime{$package}{file} ($prime{$package}{version})\n" .$result->{err}}}elsif (defined($result->{version})){if (exists($prime{$package}{version})&& defined($prime{$package}{version})){if ($compare_versions->($prime{$package}{version},'!=',$result->{version})){log_info {"Found conflicting versions for package '$package'\n" ." $prime{$package}{file} ($prime{$package}{version})\n" ." $result->{file} ($result->{version})\n"}}}else {$prime{$package}{file}=$result->{file};$prime{$package}{version}=$result->{version}}}else {}}else {if ($result->{err}){log_info {"Found conflicting versions for package '$package'\n" .$result->{err}}}$prime{$package}{file}=$result->{file};$prime{$package}{version}=$result->{version}if defined($result->{version})}}for (grep defined $_->{version},values%prime){$_->{version}=$normalize_version->($_->{version})}return \%prime}}sub _init {my$class=shift;my$module=shift;my$filename=shift;my%props=@_;my$handle=delete$props{handle};my(%valid_props,@valid_props);@valid_props=qw(collect_pod inc);@valid_props{@valid_props}=delete(@props{@valid_props});warn "Unknown properties: @{[keys %props]}\n" if scalar(%props);my%data=(module=>$module,filename=>$filename,version=>undef,packages=>[],versions=>{},pod=>{},pod_headings=>[],collect_pod=>0,%valid_props,);my$self=bless(\%data,$class);if (not $handle){my$filename=$self->{filename};open$handle,'<',$filename or croak("Can't open '$filename': $!");$self->_handle_bom($handle,$filename)}$self->_parse_fh($handle);unless($self->{module}and length($self->{module})){my ($v,$d,$f)=File::Spec->splitpath($self->{filename});if($f =~ /\.pm$/){$f =~ s/\..+$//;my@candidates=grep /$f$/,@{$self->{packages}};$self->{module}=shift(@candidates)}else {if(grep /main/,@{$self->{packages}}){$self->{module}='main'}else {$self->{module}=$self->{packages}[0]|| ''}}}$self->{version}=$self->{versions}{$self->{module}}if defined($self->{module});return$self}sub _do_find_module {my$class=shift;my$module=shift || croak 'find_module_by_name() requires a package name';my$dirs=shift || \@INC;my$file=File::Spec->catfile(split(/::/,$module));for my$dir (@$dirs){my$testfile=File::Spec->catfile($dir,$file);return [File::Spec->rel2abs($testfile),$dir ]if -e $testfile and!-d _;$testfile .= '.pm';return [File::Spec->rel2abs($testfile),$dir ]if -e $testfile}return}sub find_module_by_name {my$found=shift()->_do_find_module(@_)or return;return$found->[0]}sub find_module_dir_by_name {my$found=shift()->_do_find_module(@_)or return;return$found->[1]}sub _parse_version_expression {my$self=shift;my$line=shift;my($sigil,$variable_name,$package);if ($line =~ /$VERS_REGEXP/o){($sigil,$variable_name,$package)=$2 ? ($1,$2,$3): ($4,$5,$6);if ($package){$package=($package eq '::')? 'main' : $package;$package =~ s/::$//}}return ($sigil,$variable_name,$package)}sub _handle_bom {my ($self,$fh,$filename)=@_;my$pos=tell$fh;return unless defined$pos;my$buf=' ' x 2;my$count=read$fh,$buf,length$buf;return unless defined$count and $count >= 2;my$encoding;if ($buf eq "\x{FE}\x{FF}"){$encoding='UTF-16BE'}elsif ($buf eq "\x{FF}\x{FE}"){$encoding='UTF-16LE'}elsif ($buf eq "\x{EF}\x{BB}"){$buf=' ';$count=read$fh,$buf,length$buf;if (defined$count and $count >= 1 and $buf eq "\x{BF}"){$encoding='UTF-8'}}if (defined$encoding){if ("$]" >= 5.008){binmode($fh,":encoding($encoding)")}}else {seek$fh,$pos,SEEK_SET or croak(sprintf "Can't reset position to the top of '$filename'")}return$encoding}sub _parse_fh {my ($self,$fh)=@_;my($in_pod,$seen_end,$need_vers)=(0,0,0);my(@packages,%vers,%pod,@pod);my$package='main';my$pod_sect='';my$pod_data='';my$in_end=0;while (defined(my$line=<$fh>)){my$line_num=$.;chomp($line);my$is_cut;if ($line =~ /^=([a-zA-Z].*)/){my$cmd=$1;$is_cut=$cmd =~ /^cut(?:[^a-zA-Z]|$)/;$in_pod=!$is_cut}if ($in_pod){if ($line =~ /^=head[1-4]\s+(.+)\s*$/){push(@pod,$1);if ($self->{collect_pod}&& length($pod_data)){$pod{$pod_sect}=$pod_data;$pod_data=''}$pod_sect=$1}elsif ($self->{collect_pod}){$pod_data .= "$line\n"}}elsif ($is_cut){if ($self->{collect_pod}&& length($pod_data)){$pod{$pod_sect}=$pod_data;$pod_data=''}$pod_sect=''}else {next if$in_end;next if$line =~ /^\s*#/;if ($line eq '__END__'){$in_end++;next}last if$line eq '__DATA__';my($version_sigil,$version_fullname,$version_package)=index($line,'VERSION')>= 1 ? $self->_parse_version_expression($line): ();if ($line =~ /$PKG_REGEXP/o){$package=$1;my$version=$2;push(@packages,$package)unless grep($package eq $_,@packages);$need_vers=defined$version ? 0 : 1;if (not exists$vers{$package}and defined$version){my$dwim_version=eval {_dwim_version($version)};croak "Version '$version' from $self->{filename} does not appear to be valid:\n$line\n\nThe fatal error was: $@\n" unless defined$dwim_version;$vers{$package}=$dwim_version}}elsif ($version_fullname && $version_package){push(@packages,$version_package)unless grep($version_package eq $_,@packages);$need_vers=0 if$version_package eq $package;unless (defined$vers{$version_package}&& length$vers{$version_package}){$vers{$version_package}=$self->_evaluate_version_line($version_sigil,$version_fullname,$line)}}elsif ($package eq 'main' && $version_fullname &&!exists($vers{main})){$need_vers=0;my$v=$self->_evaluate_version_line($version_sigil,$version_fullname,$line);$vers{$package}=$v;push(@packages,'main')}elsif ($package eq 'main' &&!exists($vers{main})&& $line =~ /\w/){$need_vers=1;$vers{main}='';push(@packages,'main')}elsif ($version_fullname && $need_vers){$need_vers=0;my$v=$self->_evaluate_version_line($version_sigil,$version_fullname,$line);unless (defined$vers{$package}&& length$vers{$package}){$vers{$package}=$v}}}}if ($self->{collect_pod}&& length($pod_data)){$pod{$pod_sect}=$pod_data}$self->{versions}=\%vers;$self->{packages}=\@packages;$self->{pod}=\%pod;$self->{pod_headings}=\@pod}{my$pn=0;sub _evaluate_version_line {my$self=shift;my($sigil,$variable_name,$line)=@_;$pn++;my$eval=qq{ my \$dummy = q# Hide from _packages_inside() - #; package Module::Metadata::_version::p${pn}; - use version; - sub { - local $sigil$variable_name; - $line; - \$$variable_name - }; - };$eval=$1 if$eval =~ m{^(.+)}s;local $^W;my$vsub=__clean_eval($eval);if ($@ =~ /Can't locate/ && -d 'lib'){local@INC=('lib',@INC);$vsub=__clean_eval($eval)}warn "Error evaling version line '$eval' in $self->{filename}: $@\n" if $@;(ref($vsub)eq 'CODE')or croak "failed to build version sub for $self->{filename}";my$result=eval {$vsub->()};croak "Could not get version from $self->{filename} by executing:\n$eval\n\nThe fatal error was: $@\n" if $@;my$version=eval {_dwim_version($result)};croak "Version '$result' from $self->{filename} does not appear to be valid:\n$eval\n\nThe fatal error was: $@\n" unless defined$version;return$version}}{my@version_prep=(sub {return shift},sub {my$v=shift;$v =~ s{([0-9])[a-z-].*$}{$1}i;return$v},sub {my$v=shift;my$num_dots=()=$v =~ m{(\.)}g;my$num_unders=()=$v =~ m{(_)}g;my$leading_v=substr($v,0,1)eq 'v';if (!$leading_v && $num_dots < 2 && $num_unders > 1){$v =~ s{_}{}g;$num_unders=()=$v =~ m{(_)}g}return$v},sub {my$v=shift;no warnings 'numeric';return 0 + $v},);sub _dwim_version {my ($result)=shift;return$result if ref($result)eq 'version';my ($version,$error);for my$f (@version_prep){$result=$f->($result);$version=eval {version->new($result)};$error ||= $@ if $@;last if defined$version}croak$error unless defined$version;return$version}}sub name {$_[0]->{module}}sub filename {$_[0]->{filename}}sub packages_inside {@{$_[0]->{packages}}}sub pod_inside {@{$_[0]->{pod_headings}}}sub contains_pod {0+@{$_[0]->{pod_headings}}}sub version {my$self=shift;my$mod=shift || $self->{module};my$vers;if (defined($mod)&& length($mod)&& exists($self->{versions}{$mod})){return$self->{versions}{$mod}}else {return undef}}sub pod {my$self=shift;my$sect=shift;if (defined($sect)&& length($sect)&& exists($self->{pod}{$sect})){return$self->{pod}{$sect}}else {return undef}}sub is_indexable {my ($self,$package)=@_;my@indexable_packages=grep {$_ ne 'main'}$self->packages_inside;return!!grep {$_ eq $package}@indexable_packages if$package;return!!@indexable_packages}1; -MODULE_METADATA - -$fatpacked{"Parse/CPAN/Meta.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'PARSE_CPAN_META'; - use 5.008001;use strict;package Parse::CPAN::Meta;our$VERSION='1.4414';use Exporter;use Carp 'croak';our@ISA=qw/Exporter/;our@EXPORT_OK=qw/Load LoadFile/;sub load_file {my ($class,$filename)=@_;my$meta=_slurp($filename);if ($filename =~ /\.ya?ml$/){return$class->load_yaml_string($meta)}elsif ($filename =~ /\.json$/){return$class->load_json_string($meta)}else {$class->load_string($meta)}}sub load_string {my ($class,$string)=@_;if ($string =~ /^---/){return$class->load_yaml_string($string)}elsif ($string =~ /^\s*\{/){return$class->load_json_string($string)}else {return$class->load_yaml_string($string)}}sub load_yaml_string {my ($class,$string)=@_;my$backend=$class->yaml_backend();my$data=eval {no strict 'refs';&{"$backend\::Load"}($string)};croak $@ if $@;return$data || {}}sub load_json_string {my ($class,$string)=@_;my$data=eval {$class->json_backend()->new->decode($string)};croak $@ if $@;return$data || {}}sub yaml_backend {if (!defined$ENV{PERL_YAML_BACKEND}){_can_load('CPAN::Meta::YAML',0.011)or croak "CPAN::Meta::YAML 0.011 is not available\n";return "CPAN::Meta::YAML"}else {my$backend=$ENV{PERL_YAML_BACKEND};_can_load($backend)or croak "Could not load PERL_YAML_BACKEND '$backend'\n";$backend->can("Load")or croak "PERL_YAML_BACKEND '$backend' does not implement Load()\n";return$backend}}sub json_backend {if (!$ENV{PERL_JSON_BACKEND}or $ENV{PERL_JSON_BACKEND}eq 'JSON::PP'){_can_load('JSON::PP'=>2.27103)or croak "JSON::PP 2.27103 is not available\n";return 'JSON::PP'}else {_can_load('JSON'=>2.5)or croak "JSON 2.5 is required for " ."\$ENV{PERL_JSON_BACKEND} = '$ENV{PERL_JSON_BACKEND}'\n";return "JSON"}}sub _slurp {require Encode;open my$fh,"<:raw","$_[0]" or die "can't open $_[0] for reading: $!";my$content=do {local $/;<$fh>};$content=Encode::decode('UTF-8',$content,Encode::PERLQQ());return$content}sub _can_load {my ($module,$version)=@_;(my$file=$module)=~ s{::}{/}g;$file .= ".pm";return 1 if$INC{$file};return 0 if exists$INC{$file};eval {require$file;1}or return 0;if (defined$version){eval {$module->VERSION($version);1}or return 0}return 1}sub LoadFile ($) {return Load(_slurp(shift))}sub Load ($) {require CPAN::Meta::YAML;my$object=eval {CPAN::Meta::YAML::Load(shift)};croak $@ if $@;return$object}1; -PARSE_CPAN_META - -$fatpacked{"Parse/PMFile.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'PARSE_PMFILE'; - package Parse::PMFile;sub __clean_eval {eval $_[0]}use strict;use warnings;use Safe;use JSON::PP ();use Dumpvalue;use version ();use File::Spec ();our$VERSION='0.36';our$VERBOSE=0;our$ALLOW_DEV_VERSION=0;our$FORK=0;our$UNSAFE=$] < 5.010000 ? 1 : 0;sub new {my ($class,$meta,$opts)=@_;bless {%{$opts || {}},META_CONTENT=>$meta},$class}sub parse {my ($self,$pmfile)=@_;$pmfile =~ s|\\|/|g;my($filemtime)=(stat$pmfile)[9];$self->{MTIME}=$filemtime;$self->{PMFILE}=$pmfile;unless ($self->_version_from_meta_ok){my$version;unless (eval {$version=$self->_parse_version;1}){$self->_verbose(1,"error with version in $pmfile: $@");return}$self->{VERSION}=$version;if ($self->{VERSION}=~ /^\{.*\}$/){}elsif ($self->{VERSION}=~ /[_\s]/ &&!$self->{ALLOW_DEV_VERSION}&&!$ALLOW_DEV_VERSION){return}}my($ppp)=$self->_packages_per_pmfile;my@keys_ppp=$self->_filter_ppps(sort keys %$ppp);$self->_verbose(1,"Will check keys_ppp[@keys_ppp]\n");my ($package,%errors);my%checked_in;DBPACK: foreach$package (@keys_ppp){if ($package !~ /^\w[\w\:\']*\w?\z/ || $package !~ /\w\z/ || $package =~ /:/ && $package !~ /::/ || $package =~ /\w:\w/ || $package =~ /:::/){$self->_verbose(1,"Package[$package] did not pass the ultimate sanity check");delete$ppp->{$package};next}if ($self->{USERID}&& $self->{PERMISSIONS}&&!$self->_perm_check($package)){delete$ppp->{$package};next}{my (undef,$module)=split m{/lib/},$self->{PMFILE},2;if ($module){$module =~ s{\.pm\z}{};$module =~ s{/}{::}g;if (lc$module eq lc$package && $module ne $package){$errors{$package}={indexing_warning=>"Capitalization of package ($package) does not match filename!",infile=>$self->{PMFILE},}}}}my$pp=$ppp->{$package};if ($pp->{version}&& $pp->{version}=~ /^\{.*\}$/){my$err=JSON::PP::decode_json($pp->{version});if ($err->{x_normalize}){$errors{$package}={normalize=>$err->{version},infile=>$pp->{infile},};$pp->{version}="undef"}elsif ($err->{openerr}){$pp->{version}="undef";$self->_verbose(1,qq{Parse::PMFile was not able to - read the file. It issued the following error: C< $err->{r} >},);$errors{$package}={open=>$err->{r},infile=>$pp->{infile},}}else {$pp->{version}="undef";$self->_verbose(1,qq{Parse::PMFile was not able to - parse the following line in that file: C< $err->{line} > - - Note: the indexer is running in a Safe compartement and cannot - provide the full functionality of perl in the VERSION line. It - is trying hard, but sometime it fails. As a workaround, please - consider writing a META.yml that contains a 'provides' - attribute or contact the CPAN admins to investigate (yet - another) workaround against "Safe" limitations.)},);$errors{$package}={parse_version=>$err->{line},infile=>$err->{file},}}}for ($package,$pp->{version},){if (!defined || /^\s*$/ || /\s/){delete$ppp->{$package};next}}$checked_in{$package}=$ppp->{$package}}return (wantarray && %errors)? (\%checked_in,\%errors): \%checked_in}sub _perm_check {my ($self,$package)=@_;my$userid=$self->{USERID};my$module=$self->{PERMISSIONS}->module_permissions($package);return 1 if!$module;return 1 if defined$module->m && $module->m eq $userid;return 1 if defined$module->f && $module->f eq $userid;return 1 if defined$module->c && grep {$_ eq $userid}@{$module->c};return}sub _parse_version {my$self=shift;use strict;my$pmfile=$self->{PMFILE};my$tmpfile=File::Spec->catfile(File::Spec->tmpdir,"ParsePMFile$$" .rand(1000));my$pmcp=$pmfile;for ($pmcp){s/([^\\](\\\\)*)@/$1\\@/g}my($v);{package main;my$pid;if ($self->{FORK}|| $FORK){$pid=fork();die "Can't fork: $!" unless defined$pid}if ($pid){waitpid($pid,0);if (open my$fh,'<',$tmpfile){$v=<$fh>}}else {my($comp)=Safe->new;my$eval=qq{ - local(\$^W) = 0; - Parse::PMFile::_parse_version_safely("$pmcp"); - };$comp->permit("entereval");$comp->share("*Parse::PMFile::_parse_version_safely");$comp->share("*version::new");$comp->share("*version::numify");$comp->share_from('main',['*version::','*charstar::','*Exporter::','*DynaLoader::']);$comp->share_from('version',['&qv']);$comp->permit(":base_math");$comp->deny(qw/enteriter iter unstack goto/);version->import('qv')if$self->{UNSAFE}|| $UNSAFE;{no strict;$v=($self->{UNSAFE}|| $UNSAFE)? eval$eval : $comp->reval($eval)}if ($@){my$err=$@;if (ref$err){if ($err->{line}=~ /([\$*])([\w\:\']*)\bVERSION\b.*?\=(.*)/){local($^W)=0;my ($sigil,$vstr)=($1,$3);$self->_restore_overloaded_stuff(1)if$err->{line}=~ /use\s+version\b|version\->|qv\(/;$v=($self->{UNSAFE}|| $UNSAFE)? eval$vstr : $comp->reval($vstr);$v=$$v if$sigil eq '*' && ref$v}if ($@ or!$v){$self->_verbose(1,sprintf("reval failed: err[%s] for eval[%s]",JSON::PP::encode_json($err),$eval,));$v=JSON::PP::encode_json($err)}}else {$v=JSON::PP::encode_json({openerr=>$err })}}if (defined$v){$v=$v->numify if ref($v)=~ /^version(::vpp)?$/}else {$v=""}if ($self->{FORK}|| $FORK){open my$fh,'>:utf8',$tmpfile;print$fh $v;exit 0}else {utf8::encode($v);$v=undef if defined$v &&!length$v;$comp->erase;$self->_restore_overloaded_stuff}}}unlink$tmpfile if ($self->{FORK}|| $FORK)&& -e $tmpfile;return$self->_normalize_version($v)}sub _restore_overloaded_stuff {my ($self,$used_version_in_safe)=@_;return if$self->{UNSAFE}|| $UNSAFE;no strict 'refs';no warnings 'redefine';my$restored;if ($INC{'version/vxs.pm'}){*{'version::(""'}=\&version::vxs::stringify;*{'version::(0+'}=\&version::vxs::numify;*{'version::(cmp'}=\&version::vxs::VCMP;*{'version::(<=>'}=\&version::vxs::VCMP;*{'version::(bool'}=\&version::vxs::boolean;$restored=1}if ($INC{'version/vpp.pm'}){{package charstar;overload->import}if (!$used_version_in_safe){package version::vpp;overload->import}unless ($restored){*{'version::(""'}=\&version::vpp::stringify;*{'version::(0+'}=\&version::vpp::numify;*{'version::(cmp'}=\&version::vpp::vcmp;*{'version::(<=>'}=\&version::vpp::vcmp;*{'version::(bool'}=\&version::vpp::vbool}*{'version::vpp::(""'}=\&version::vpp::stringify;*{'version::vpp::(0+'}=\&version::vpp::numify;*{'version::vpp::(cmp'}=\&version::vpp::vcmp;*{'version::vpp::(<=>'}=\&version::vpp::vcmp;*{'version::vpp::(bool'}=\&version::vpp::vbool;*{'charstar::(""'}=\&charstar::thischar;*{'charstar::(0+'}=\&charstar::thischar;*{'charstar::(++'}=\&charstar::increment;*{'charstar::(--'}=\&charstar::decrement;*{'charstar::(+'}=\&charstar::plus;*{'charstar::(-'}=\&charstar::minus;*{'charstar::(*'}=\&charstar::multiply;*{'charstar::(cmp'}=\&charstar::cmp;*{'charstar::(<=>'}=\&charstar::spaceship;*{'charstar::(bool'}=\&charstar::thischar;*{'charstar::(='}=\&charstar::clone;$restored=1}if (!$restored){*{'version::(""'}=\&version::stringify;*{'version::(0+'}=\&version::numify;*{'version::(cmp'}=\&version::vcmp;*{'version::(<=>'}=\&version::vcmp;*{'version::(bool'}=\&version::boolean}}sub _packages_per_pmfile {my$self=shift;my$ppp={};my$pmfile=$self->{PMFILE};my$filemtime=$self->{MTIME};my$version=$self->{VERSION};open my$fh,"<","$pmfile" or return$ppp;local $/="\n";my$inpod=0;PLINE: while (<$fh>){chomp;my($pline)=$_;$inpod=$pline =~ /^=(?!cut)/ ? 1 : $pline =~ /^=cut/ ? 0 : $inpod;next if$inpod;next if substr($pline,0,4)eq "=cut";$pline =~ s/\#.*//;next if$pline =~ /^\s*$/;if ($pline =~ /^__(?:END|DATA)__\b/ and $pmfile !~ /\.PL$/){last PLINE}my$pkg;my$strict_version;if ($pline =~ m{ - # (.*) # takes too much time if $pline is long - (?<![*\$\\@%&]) # no sigils - \bpackage\s+ - ([\w\:\']+) - \s* - (?: $ | [\}\;] | \{ | \s+($version::STRICT) ) - }x){$pkg=$1;$strict_version=$2;if ($pkg eq "DB"){next PLINE}}if ($pkg){$pkg =~ s/\'/::/;next PLINE unless$pkg =~ /^[A-Za-z]/;next PLINE unless$pkg =~ /\w$/;next PLINE if$pkg eq "main";next PLINE if length($pkg)> 128;$ppp->{$pkg}{parsed}++;$ppp->{$pkg}{infile}=$pmfile;if ($self->_simile($pmfile,$pkg)){$ppp->{$pkg}{simile}=$pmfile;if ($self->_version_from_meta_ok){my$provides=$self->{META_CONTENT}{provides};if (exists$provides->{$pkg}){if (defined$provides->{$pkg}{version}){my$v=$provides->{$pkg}{version};if ($v =~ /[_\s]/ &&!$self->{ALLOW_DEV_VERSION}&&!$ALLOW_DEV_VERSION){next PLINE}unless (eval {$version=$self->_normalize_version($v);1}){$self->_verbose(1,"error with version in $pmfile: $@");next}$ppp->{$pkg}{version}=$version}else {$ppp->{$pkg}{version}="undef"}}}else {if (defined$strict_version){$ppp->{$pkg}{version}=$strict_version }else {$ppp->{$pkg}{version}=defined$version ? $version : ""}no warnings;if ($version eq 'undef'){$ppp->{$pkg}{version}=$version unless defined$ppp->{$pkg}{version}}else {$ppp->{$pkg}{version}=$version if$version > $ppp->{$pkg}{version}|| $version gt $ppp->{$pkg}{version}}}}else {$ppp->{$pkg}{version}=$version unless defined$ppp->{$pkg}{version}&& length($ppp->{$pkg}{version})}$ppp->{$pkg}{filemtime}=$filemtime}else {}}close$fh;$ppp}{no strict;sub _parse_version_safely {my($parsefile)=@_;my$result;local*FH;local $/="\n";open(FH,$parsefile)or die "Could not open '$parsefile': $!";my$inpod=0;while (<FH>){$inpod=/^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod;next if$inpod || /^\s*#/;last if /^__(?:END|DATA)__\b/;chop;if (my ($ver)=/package \s+ \S+ \s+ (\S+) \s* [;{]/x){return$ver if version::is_lax($ver)}next unless /(?<!\\)([\$*])(([\w\:\']*)\bVERSION)\b.*(?<![!><=])\=(?![=>])/;my$current_parsed_line=$_;my$eval=qq{ - package # - ExtUtils::MakeMaker::_version; - - local $1$2; - \$$2=undef; do { - $_ - }; \$$2 - };local $^W=0;local$SIG{__WARN__}=sub {};$result=__clean_eval($eval);if ($@ or!defined$result){die +{eval=>$eval,line=>$current_parsed_line,file=>$parsefile,err=>$@,}}last}close FH;$result="undef" unless defined$result;if ((ref$result)=~ /^version(?:::vpp)?\b/){$result=$result->numify}return$result}}sub _filter_ppps {my($self,@ppps)=@_;my@res;MANI: for my$ppp (@ppps){if ($self->{META_CONTENT}){my$no_index=$self->{META_CONTENT}{no_index}|| $self->{META_CONTENT}{private};if (ref($no_index)eq 'HASH'){my%map=(package=>qr{\z},namespace=>qr{::},);for my$k (qw(package namespace)){next unless my$v=$no_index->{$k};my$rest=$map{$k};if (ref$v eq "ARRAY"){for my$ve (@$v){$ve =~ s|::$||;if ($ppp =~ /^$ve$rest/){$self->_verbose(1,"Skipping ppp[$ppp] due to ve[$ve]");next MANI}else {$self->_verbose(1,"NOT skipping ppp[$ppp] due to ve[$ve]")}}}else {$v =~ s|::$||;if ($ppp =~ /^$v$rest/){$self->_verbose(1,"Skipping ppp[$ppp] due to v[$v]");next MANI}else {$self->_verbose(1,"NOT skipping ppp[$ppp] due to v[$v]")}}}}else {$self->_verbose(1,"No keyword 'no_index' or 'private' in META_CONTENT")}}else {}push@res,$ppp}$self->_verbose(1,"Result of filter_ppps: res[@res]");@res}sub _simile {my($self,$file,$package)=@_;$file =~ s|.*/||;$file =~ s|\.pm(?:\.PL)?||;my$ret=$package =~ m/\b\Q$file\E$/;$ret ||= 0;unless ($ret){$ret=1 if lc$file eq 'version'}$self->_verbose(1,"Result of simile(): file[$file] package[$package] ret[$ret]\n");$ret}sub _normalize_version {my($self,$v)=@_;$v="undef" unless defined$v;my$dv=Dumpvalue->new;my$sdv=$dv->stringify($v,1);$self->_verbose(1,"Result of normalize_version: sdv[$sdv]\n");return$v if$v eq "undef";return$v if$v =~ /^\{.*\}$/;$v =~ s/^\s+//;$v =~ s/\s+\z//;if ($v =~ /_/){return$v }if (!version::is_lax($v)){return JSON::PP::encode_json({x_normalize=>'version::is_lax failed',version=>$v })}my$vv=eval {no warnings;version->new($v)->numify};if ($@){return JSON::PP::encode_json({x_normalize=>$@,version=>$v })}if ($vv eq $v){}else {my$forced=$self->_force_numeric($v);if ($forced eq $vv){}elsif ($forced =~ /^v(.+)/){$vv=version->new($1)->numify}else {if ($forced==$vv){$vv=$forced}}}return$vv}sub _force_numeric {my($self,$v)=@_;$v=$self->_readable($v);if ($v =~ /^(\+?)(\d*)(\.(\d*))?/ && (defined $2 && length $2 || defined $4 && length $4)){my$two=defined $2 ? $2 : "";my$three=defined $3 ? $3 : "";$v="$two$three"}$v}sub _version_from_meta_ok {my($self)=@_;return$self->{VERSION_FROM_META_OK}if exists$self->{VERSION_FROM_META_OK};my$c=$self->{META_CONTENT};return($self->{VERSION_FROM_META_OK}=0)unless$c->{provides};my ($mb_v)=(defined$c->{generated_by}? $c->{generated_by}: '')=~ /Module::Build version ([\d\.]+)/;return($self->{VERSION_FROM_META_OK}=1)unless$mb_v;return($self->{VERSION_FROM_META_OK}=1)if$mb_v eq '0.250.0';if ($mb_v >= 0.19 && $mb_v < 0.26 &&!keys %{$c->{provides}}){return($self->{VERSION_FROM_META_OK}=0)}return($self->{VERSION_FROM_META_OK}=1)}sub _verbose {my($self,$level,@what)=@_;warn@what if$level <= ((ref$self && $self->{VERBOSE})|| $VERBOSE)}sub _vcmp {my($self,$l,$r)=@_;local($^W)=0;$self->_verbose(9,"l[$l] r[$r]");return 0 if$l eq $r;for ($l,$r){s/_//g}$self->_verbose(9,"l[$l] r[$r]");for ($l,$r){next unless tr/.// > 1 || /^v/;s/^v?/v/;1 while s/\.0+(\d)/.$1/}$self->_verbose(9,"l[$l] r[$r]");if ($l=~/^v/ <=> $r=~/^v/){for ($l,$r){next if /^v/;$_=$self->_float2vv($_)}}$self->_verbose(9,"l[$l] r[$r]");my$lvstring="v0";my$rvstring="v0";if ($] >= 5.006 && $l =~ /^v/ && $r =~ /^v/){$lvstring=$self->_vstring($l);$rvstring=$self->_vstring($r);$self->_verbose(9,sprintf "lv[%vd] rv[%vd]",$lvstring,$rvstring)}return (($l ne "undef")<=> ($r ne "undef")|| $lvstring cmp $rvstring || $l <=> $r || $l cmp $r)}sub _vgt {my($self,$l,$r)=@_;$self->_vcmp($l,$r)> 0}sub _vlt {my($self,$l,$r)=@_;$self->_vcmp($l,$r)< 0}sub _vge {my($self,$l,$r)=@_;$self->_vcmp($l,$r)>= 0}sub _vle {my($self,$l,$r)=@_;$self->_vcmp($l,$r)<= 0}sub _vstring {my($self,$n)=@_;$n =~ s/^v// or die "Parse::PMFile::_vstring() called with invalid arg [$n]";pack "U*",split /\./,$n}sub _float2vv {my($self,$n)=@_;my($rev)=int($n);$rev ||= 0;my($mantissa)=$n =~ /\.(\d{1,12})/;$mantissa ||= 0;$mantissa .= "0" while length($mantissa)%3;my$ret="v" .$rev;while ($mantissa){$mantissa =~ s/(\d{1,3})// or die "Panic: length>0 but not a digit? mantissa[$mantissa]";$ret .= ".".int($1)}$ret =~ s/(\.0)+/.0/;$ret}sub _readable {my($self,$n)=@_;$n =~ /^([\w\-\+\.]+)/;return $1 if defined $1 && length($1)>0;if ($] < 5.006){$self->_verbose(9,"Suspicious version string seen [$n]\n");return$n}my$better=sprintf "v%vd",$n;$self->_verbose(9,"n[$n] better[$better]");return$better}1; -PARSE_PMFILE - -$fatpacked{"String/ShellQuote.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'STRING_SHELLQUOTE'; - package String::ShellQuote;use strict;use vars qw($VERSION @ISA @EXPORT);require Exporter;$VERSION='1.04';@ISA=qw(Exporter);@EXPORT=qw(shell_quote shell_quote_best_effort shell_comment_quote);sub croak {require Carp;goto&Carp::croak}sub _shell_quote_backend {my@in=@_;my@err=();if (0){require RS::Handy;print RS::Handy::data_dump(\@in)}return \@err,'' unless@in;my$ret='';my$saw_non_equal=0;for (@in){if (!defined $_ or $_ eq ''){$_="''";next}if (s/\x00//g){push@err,"No way to quote string containing null (\\000) bytes"}my$escape=0;if (/=/){if (!$saw_non_equal){$escape=1}}else {$saw_non_equal=1}if (m|[^\w!%+,\-./:=@^]|){$escape=1}if ($escape || (!$saw_non_equal && /=/)){s/'/'\\''/g;s|((?:'\\''){2,})|q{'"} . (q{'} x (length($1) / 4)) . q{"'}|ge;$_="'$_'";s/^''//;s/''$//}}continue {$ret .= "$_ "}chop$ret;return \@err,$ret}sub shell_quote {my ($rerr,$s)=_shell_quote_backend @_;if (@$rerr){my%seen;@$rerr=grep {!$seen{$_}++}@$rerr;my$s=join '',map {"shell_quote(): $_\n"}@$rerr;chomp$s;croak$s}return$s}sub shell_quote_best_effort {my ($rerr,$s)=_shell_quote_backend @_;return$s}sub shell_comment_quote {return '' unless @_;unless (@_==1){croak "Too many arguments to shell_comment_quote " ."(got " .@_ ." expected 1)"}local $_=shift;s/\n/\n#/g;return $_}1; -STRING_SHELLQUOTE - -$fatpacked{"lib/core/only.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'LIB_CORE_ONLY'; - package lib::core::only;use strict;use warnings FATAL=>'all';use Config;sub import {@INC=@Config{qw(privlibexp archlibexp)};return}1; -LIB_CORE_ONLY - -$fatpacked{"local/lib.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'LOCAL_LIB'; - package local::lib;use 5.006;use strict;use warnings;use Config;our$VERSION='2.000015';$VERSION=eval$VERSION;BEGIN {*_WIN32=($^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'symbian')? sub(){1}: sub(){0};*_USE_FSPEC=($^O eq 'MacOS' || $^O eq 'VMS' || $INC{'File/Spec.pm'})? sub(){1}: sub(){0}}our$_DIR_JOIN=_WIN32 ? '\\' : '/';our$_DIR_SPLIT=(_WIN32 || $^O eq 'cygwin')? qr{[\\/]} : qr{/};our$_ROOT=_WIN32 ? do {my$UNC=qr{[\\/]{2}[^\\/]+[\\/][^\\/]+};qr{^(?:$UNC|[A-Za-z]:|)$_DIR_SPLIT}}: qr{^/};our$_PERL;sub _cwd {my$drive=shift;if (!$_PERL){($_PERL)=$^X =~ /(.+)/;if (_is_abs($_PERL)){}elsif (-x $Config{perlpath}){$_PERL=$Config{perlpath}}else {($_PERL)=map {/(.*)/}grep {-x $_}map {join($_DIR_JOIN,$_,$_PERL)}split /\Q$Config{path_sep}\E/,$ENV{PATH}}}local@ENV{qw(PATH IFS CDPATH ENV BASH_ENV)};my$cmd=$drive ? "eval { Cwd::getdcwd(q($drive)) }" : 'getcwd';my$cwd=`"$_PERL" -MCwd -le "print $cmd"`;chomp$cwd;if (!length$cwd && $drive){$cwd=$drive}$cwd =~ s/$_DIR_SPLIT?$/$_DIR_JOIN/;$cwd}sub _catdir {if (_USE_FSPEC){require File::Spec;File::Spec->catdir(@_)}else {my$dir=join($_DIR_JOIN,@_);$dir =~ s{($_DIR_SPLIT)(?:\.?$_DIR_SPLIT)+}{$1}g;$dir}}sub _is_abs {if (_USE_FSPEC){require File::Spec;File::Spec->file_name_is_absolute($_[0])}else {$_[0]=~ $_ROOT}}sub _rel2abs {my ($dir,$base)=@_;return$dir if _is_abs($dir);$base=_WIN32 && $dir =~ s/^([A-Za-z]:)// ? _cwd("$1"): $base ? $base : _cwd;return _catdir($base,$dir)}sub import {my ($class,@args)=@_;push@args,@ARGV if $0 eq '-';my@steps;my%opts;my$shelltype;while (@args){my$arg=shift@args;if ($arg =~ /\xE2\x88\x92/ or $arg =~ /−/){die <<'DEATH'}elsif ($arg eq '--self-contained'){die <<'DEATH'}elsif($arg =~ /^--deactivate(?:=(.*))?$/){my$path=defined $1 ? $1 : shift@args;push@steps,['deactivate',$path]}elsif ($arg eq '--deactivate-all'){push@steps,['deactivate_all']}elsif ($arg =~ /^--shelltype(?:=(.*))?$/){$shelltype=defined $1 ? $1 : shift@args}elsif ($arg eq '--no-create'){$opts{no_create}=1}elsif ($arg =~ /^--/){die "Unknown import argument: $arg"}else {push@steps,['activate',$arg]}}if (!@steps){push@steps,['activate',undef]}my$self=$class->new(%opts);for (@steps){my ($method,@args)=@$_;$self=$self->$method(@args)}if ($0 eq '-'){print$self->environment_vars_string($shelltype);exit 0}else {$self->setup_local_lib}}sub new {my$class=shift;bless {@_},$class}sub clone {my$self=shift;bless {%$self,@_},ref$self}sub inc {$_[0]->{inc}||= \@INC}sub libs {$_[0]->{libs}||= [\'PERL5LIB' ]}sub bins {$_[0]->{bins}||= [\'PATH' ]}sub roots {$_[0]->{roots}||= [\'PERL_LOCAL_LIB_ROOT' ]}sub extra {$_[0]->{extra}||= {}}sub no_create {$_[0]->{no_create}}my$_archname=$Config{archname};my$_version=$Config{version};my@_inc_version_list=reverse split / /,$Config{inc_version_list};my$_path_sep=$Config{path_sep};sub _as_list {my$list=shift;grep length,map {!(ref $_ && ref $_ eq 'SCALAR')? $_ : (defined$ENV{$$_}? split(/\Q$_path_sep/,$ENV{$$_}): ())}ref$list ? @$list : $list}sub _remove_from {my ($list,@remove)=@_;return @$list if!@remove;my%remove=map {$_=>1}@remove;grep!$remove{$_},_as_list($list)}my@_lib_subdirs=([$_version,$_archname],[$_version],[$_archname],(@_inc_version_list ? \@_inc_version_list : ()),[],);sub install_base_bin_path {my ($class,$path)=@_;return _catdir($path,'bin')}sub install_base_perl_path {my ($class,$path)=@_;return _catdir($path,'lib','perl5')}sub install_base_arch_path {my ($class,$path)=@_;_catdir($class->install_base_perl_path($path),$_archname)}sub lib_paths_for {my ($class,$path)=@_;my$base=$class->install_base_perl_path($path);return map {_catdir($base,@$_)}@_lib_subdirs}sub _mm_escape_path {my$path=shift;$path =~ s/\\/\\\\/g;if ($path =~ s/ /\\ /g){$path=qq{"$path"}}return$path}sub _mb_escape_path {my$path=shift;$path =~ s/\\/\\\\/g;return qq{"$path"}}sub installer_options_for {my ($class,$path)=@_;return (PERL_MM_OPT=>defined$path ? "INSTALL_BASE="._mm_escape_path($path): undef,PERL_MB_OPT=>defined$path ? "--install_base "._mb_escape_path($path): undef,)}sub active_paths {my ($self)=@_;$self=ref$self ? $self : $self->new;return grep {my$active_ll=$self->install_base_perl_path($_);grep {$_ eq $active_ll}@{$self->inc}}_as_list($self->roots)}sub deactivate {my ($self,$path)=@_;$self=$self->new unless ref$self;$path=$self->resolve_path($path);$path=$self->normalize_path($path);my@active_lls=$self->active_paths;if (!grep {$_ eq $path}@active_lls){warn "Tried to deactivate inactive local::lib '$path'\n";return$self}my%args=(bins=>[_remove_from($self->bins,$self->install_base_bin_path($path))],libs=>[_remove_from($self->libs,$self->install_base_perl_path($path))],inc=>[_remove_from($self->inc,$self->lib_paths_for($path))],roots=>[_remove_from($self->roots,$path)],);$args{extra}={$self->installer_options_for($args{roots}[0])};$self->clone(%args)}sub deactivate_all {my ($self)=@_;$self=$self->new unless ref$self;my@active_lls=$self->active_paths;my%args;if (@active_lls){%args=(bins=>[_remove_from($self->bins,map$self->install_base_bin_path($_),@active_lls)],libs=>[_remove_from($self->libs,map$self->install_base_perl_path($_),@active_lls)],inc=>[_remove_from($self->inc,map$self->lib_paths_for($_),@active_lls)],roots=>[_remove_from($self->roots,@active_lls)],)}$args{extra}={$self->installer_options_for(undef)};$self->clone(%args)}sub activate {my ($self,$path)=@_;$self=$self->new unless ref$self;$path=$self->resolve_path($path);$self->ensure_dir_structure_for($path)unless$self->no_create;$path=$self->normalize_path($path);my@active_lls=$self->active_paths;if (grep {$_ eq $path}@active_lls[1 .. $#active_lls]){$self=$self->deactivate($path)}my%args;if (!@active_lls || $active_lls[0]ne $path){%args=(bins=>[$self->install_base_bin_path($path),@{$self->bins}],libs=>[$self->install_base_perl_path($path),@{$self->libs}],inc=>[$self->lib_paths_for($path),@{$self->inc}],roots=>[$path,@{$self->roots}],)}$args{extra}={$self->installer_options_for($path)};$self->clone(%args)}sub normalize_path {my ($self,$path)=@_;$path=(Win32::GetShortPathName($path)|| $path)if $^O eq 'MSWin32';return$path}sub build_environment_vars_for {my$self=$_[0]->new->activate($_[1]);$self->build_environment_vars}sub build_activate_environment_vars_for {my$self=$_[0]->new->activate($_[1]);$self->build_environment_vars}sub build_deactivate_environment_vars_for {my$self=$_[0]->new->deactivate($_[1]);$self->build_environment_vars}sub build_deact_all_environment_vars_for {my$self=$_[0]->new->deactivate_all;$self->build_environment_vars}sub build_environment_vars {my$self=shift;(PATH=>join($_path_sep,_as_list($self->bins)),PERL5LIB=>join($_path_sep,_as_list($self->libs)),PERL_LOCAL_LIB_ROOT=>join($_path_sep,_as_list($self->roots)),%{$self->extra},)}sub setup_local_lib_for {my$self=$_[0]->new->activate($_[1]);$self->setup_local_lib}sub setup_local_lib {my$self=shift;require Carp::Heavy if$INC{'Carp.pm'};$self->setup_env_hash;@INC=@{$self->inc}}sub setup_env_hash_for {my$self=$_[0]->new->activate($_[1]);$self->setup_env_hash}sub setup_env_hash {my$self=shift;my%env=$self->build_environment_vars;for my$key (keys%env){if (defined$env{$key}){$ENV{$key}=$env{$key}}else {delete$ENV{$key}}}}sub print_environment_vars_for {print $_[0]->environment_vars_string_for(@_[1..$#_])}sub environment_vars_string_for {my$self=$_[0]->new->activate($_[1]);$self->environment_vars_string}sub environment_vars_string {my ($self,$shelltype)=@_;$shelltype ||= $self->guess_shelltype;my$extra=$self->extra;my@envs=(PATH=>$self->bins,PERL5LIB=>$self->libs,PERL_LOCAL_LIB_ROOT=>$self->roots,map {$_=>$extra->{$_}}sort keys %$extra,);$self->_build_env_string($shelltype,\@envs)}sub _build_env_string {my ($self,$shelltype,$envs)=@_;my@envs=@$envs;my$build_method="build_${shelltype}_env_declaration";my$out='';while (@envs){my ($name,$value)=(shift(@envs),shift(@envs));if (ref$value && @$value==1 && ref$value->[0]&& ref$value->[0]eq 'SCALAR' && ${$value->[0]}eq $name){next}$out .= $self->$build_method($name,$value)}my$wrap_method="wrap_${shelltype}_output";if ($self->can($wrap_method)){return$self->$wrap_method($out)}return$out}sub build_bourne_env_declaration {my ($class,$name,$args)=@_;my$value=$class->_interpolate($args,'${%s}',qr/["\\\$!`]/,'\\%s');if (!defined$value){return qq{unset $name;\n}}$value =~ s/(^|\G|$_path_sep)\$\{$name\}$_path_sep/$1\${$name}\${$name+$_path_sep}/g;$value =~ s/$_path_sep\$\{$name\}$/\${$name+$_path_sep}\${$name}/;qq{${name}="$value"; export ${name};\n}}sub build_csh_env_declaration {my ($class,$name,$args)=@_;my ($value,@vars)=$class->_interpolate($args,'${%s}','"','"\\%s"');if (!defined$value){return qq{unsetenv $name;\n}}my$out='';for my$var (@vars){$out .= qq{if ! \$?$name setenv $name '';\n}}my$value_without=$value;if ($value_without =~ s/(?:^|$_path_sep)\$\{$name\}(?:$_path_sep|$)//g){$out .= qq{if "\${$name}" != '' setenv $name "$value";\n};$out .= qq{if "\${$name}" == '' }}$out .= qq{setenv $name "$value_without";\n};return$out}sub build_cmd_env_declaration {my ($class,$name,$args)=@_;my$value=$class->_interpolate($args,'%%%s%%',qr(%),'%s');if (!$value){return qq{\@set $name=\n}}my$out='';my$value_without=$value;if ($value_without =~ s/(?:^|$_path_sep)%$name%(?:$_path_sep|$)//g){$out .= qq{\@if not "%$name%"=="" set "$name=$value"\n};$out .= qq{\@if "%$name%"=="" }}$out .= qq{\@set "$name=$value_without"\n};return$out}sub build_powershell_env_declaration {my ($class,$name,$args)=@_;my$value=$class->_interpolate($args,'$env:%s','"','`%s');if (!$value){return qq{Remove-Item -ErrorAction 0 Env:\\$name;\n}}my$maybe_path_sep=qq{\$(if("\$env:$name"-eq""){""}else{"$_path_sep"})};$value =~ s/(^|\G|$_path_sep)\$env:$name$_path_sep/$1\$env:$name"+$maybe_path_sep+"/g;$value =~ s/$_path_sep\$env:$name$/"+$maybe_path_sep+\$env:$name+"/;qq{\$env:$name = \$("$value");\n}}sub wrap_powershell_output {my ($class,$out)=@_;return$out || " \n"}sub build_fish_env_declaration {my ($class,$name,$args)=@_;my$value=$class->_interpolate($args,'$%s',qr/[\\"' ]/,'\\%s');if (!defined$value){return qq{set -e $name;\n}}$value =~ s/$_path_sep/ /g;qq{set -x $name $value;\n}}sub _interpolate {my ($class,$args,$var_pat,$escape,$escape_pat)=@_;return unless defined$args;my@args=ref$args ? @$args : $args;return unless@args;my@vars=map {$$_}grep {ref $_ eq 'SCALAR'}@args;my$string=join$_path_sep,map {ref $_ eq 'SCALAR' ? sprintf($var_pat,$$_): do {s/($escape)/sprintf($escape_pat, $1)/ge;$_}}@args;return wantarray ? ($string,\@vars): $string}sub pipeline;sub pipeline {my@methods=@_;my$last=pop(@methods);if (@methods){\sub {my ($obj,@args)=@_;$obj->${pipeline@methods}($obj->$last(@args))}}else {\sub {shift->$last(@_)}}}sub resolve_path {my ($class,$path)=@_;$path=$class->${pipeline qw(resolve_relative_path resolve_home_path resolve_empty_path)}($path);$path}sub resolve_empty_path {my ($class,$path)=@_;if (defined$path){$path}else {'~/perl5'}}sub resolve_home_path {my ($class,$path)=@_;$path =~ /^~([^\/]*)/ or return$path;my$user=$1;my$homedir=do {if (!length($user)&& defined$ENV{HOME}){$ENV{HOME}}else {require File::Glob;File::Glob::bsd_glob("~$user",File::Glob::GLOB_TILDE())}};unless (defined$homedir){require Carp;require Carp::Heavy;Carp::croak("Couldn't resolve homedir for " .(defined$user ? $user : 'current user'))}$path =~ s/^~[^\/]*/$homedir/;$path}sub resolve_relative_path {my ($class,$path)=@_;_rel2abs($path)}sub ensure_dir_structure_for {my ($class,$path)=@_;unless (-d $path){warn "Attempting to create directory ${path}\n"}require File::Basename;my@dirs;while(!-d $path){push@dirs,$path;$path=File::Basename::dirname($path)}mkdir $_ for reverse@dirs;return}sub guess_shelltype {my$shellbin =defined$ENV{SHELL}? ($ENV{SHELL}=~ /([\w.]+)$/)[-1]: ($^O eq 'MSWin32' && exists$ENV{'!EXITCODE'})? 'bash' : ($^O eq 'MSWin32' && $ENV{PROMPT}&& $ENV{COMSPEC})? ($ENV{COMSPEC}=~ /([\w.]+)$/)[-1]: ($^O eq 'MSWin32' &&!$ENV{PROMPT})? 'powershell.exe' : 'sh';for ($shellbin){return /csh$/ ? 'csh' : /fish/ ? 'fish' : /command(?:\.com)?$/i ? 'cmd' : /cmd(?:\.exe)?$/i ? 'cmd' : /4nt(?:\.exe)?$/i ? 'cmd' : /powershell(?:\.exe)?$/i ? 'powershell' : 'bourne'}}1; - WHOA THERE! It looks like you've got some fancy dashes in your commandline! - These are *not* the traditional -- dashes that software recognizes. You - probably got these by copy-pasting from the perldoc for this module as - rendered by a UTF8-capable formatter. This most typically happens on an OS X - terminal, but can happen elsewhere too. Please try again after replacing the - dashes with normal minus signs. - DEATH - FATAL: The local::lib --self-contained flag has never worked reliably and the - original author, Mark Stosberg, was unable or unwilling to maintain it. As - such, this flag has been removed from the local::lib codebase in order to - prevent misunderstandings and potentially broken builds. The local::lib authors - recommend that you look at the lib::core::only module shipped with this - distribution in order to create a more robust environment that is equivalent to - what --self-contained provided (although quite possibly not what you originally - thought it provided due to the poor quality of the documentation, for which we - apologise). - DEATH -LOCAL_LIB - -$fatpacked{"parent.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'PARENT'; - package parent;use strict;use vars qw($VERSION);$VERSION='0.228';sub import {my$class=shift;my$inheritor=caller(0);if (@_ and $_[0]eq '-norequire'){shift @_}else {for (my@filename=@_){if ($_ eq $inheritor){warn "Class '$inheritor' tried to inherit from itself\n"};s{::|'}{/}g;require "$_.pm"}}{no strict 'refs';push @{"$inheritor\::ISA"},@_}};"All your base are belong to us" -PARENT - -$fatpacked{"version.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'VERSION'; - package version;use 5.006002;use strict;use warnings::register;if ($] >= 5.015){warnings::register_categories(qw/version/)}use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);$VERSION=0.9912;$CLASS='version';{local$SIG{'__DIE__'};if (1){eval "use version::vpp $VERSION";die "$@" if ($@);push@ISA,"version::vpp";local $^W;*version::qv=\&version::vpp::qv;*version::declare=\&version::vpp::declare;*version::_VERSION=\&version::vpp::_VERSION;*version::vcmp=\&version::vpp::vcmp;*version::new=\&version::vpp::new;*version::numify=\&version::vpp::numify;*version::normal=\&version::vpp::normal;if ($] >= 5.009000){no strict 'refs';*version::stringify=\&version::vpp::stringify;*{'version::(""'}=\&version::vpp::stringify;*{'version::(<=>'}=\&version::vpp::vcmp;*version::parse=\&version::vpp::parse}}else {push@ISA,"version::vxs";local $^W;*version::declare=\&version::vxs::declare;*version::qv=\&version::vxs::qv;*version::_VERSION=\&version::vxs::_VERSION;*version::vcmp=\&version::vxs::VCMP;*version::new=\&version::vxs::new;*version::numify=\&version::vxs::numify;*version::normal=\&version::vxs::normal;if ($] >= 5.009000){no strict 'refs';*version::stringify=\&version::vxs::stringify;*{'version::(""'}=\&version::vxs::stringify;*{'version::(<=>'}=\&version::vxs::VCMP;*version::parse=\&version::vxs::parse}}}require version::regex;*version::is_lax=\&version::regex::is_lax;*version::is_strict=\&version::regex::is_strict;*LAX=\$version::regex::LAX;*STRICT=\$version::regex::STRICT;sub import {no strict 'refs';my ($class)=shift;unless ($class eq $CLASS){local $^W;*{$class.'::declare'}=\&{$CLASS.'::declare'};*{$class.'::qv'}=\&{$CLASS.'::qv'}}my%args;if (@_){map {$args{$_}=1}@_}else {%args=(qv=>1,'UNIVERSAL::VERSION'=>1,)}my$callpkg=caller();if (exists($args{declare})){*{$callpkg.'::declare'}=sub {return$class->declare(shift)}unless defined(&{$callpkg.'::declare'})}if (exists($args{qv})){*{$callpkg.'::qv'}=sub {return$class->qv(shift)}unless defined(&{$callpkg.'::qv'})}if (exists($args{'UNIVERSAL::VERSION'})){local $^W;*UNIVERSAL::VERSION =\&{$CLASS.'::_VERSION'}}if (exists($args{'VERSION'})){*{$callpkg.'::VERSION'}=\&{$CLASS.'::_VERSION'}}if (exists($args{'is_strict'})){*{$callpkg.'::is_strict'}=\&{$CLASS.'::is_strict'}unless defined(&{$callpkg.'::is_strict'})}if (exists($args{'is_lax'})){*{$callpkg.'::is_lax'}=\&{$CLASS.'::is_lax'}unless defined(&{$callpkg.'::is_lax'})}}1; -VERSION - -$fatpacked{"version/regex.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'VERSION_REGEX'; - package version::regex;use strict;use vars qw($VERSION $CLASS $STRICT $LAX);$VERSION=0.9912;my$FRACTION_PART=qr/\.[0-9]+/;my$STRICT_INTEGER_PART=qr/0|[1-9][0-9]*/;my$LAX_INTEGER_PART=qr/[0-9]+/;my$STRICT_DOTTED_DECIMAL_PART=qr/\.[0-9]{1,3}/;my$LAX_DOTTED_DECIMAL_PART=qr/\.[0-9]+/;my$LAX_ALPHA_PART=qr/_[0-9]+/;my$STRICT_DECIMAL_VERSION=qr/ $STRICT_INTEGER_PART $FRACTION_PART? /x;my$STRICT_DOTTED_DECIMAL_VERSION=qr/ v $STRICT_INTEGER_PART $STRICT_DOTTED_DECIMAL_PART{2,} /x;$STRICT=qr/ $STRICT_DECIMAL_VERSION | $STRICT_DOTTED_DECIMAL_VERSION /x;my$LAX_DECIMAL_VERSION=qr/ $LAX_INTEGER_PART (?: \. | $FRACTION_PART $LAX_ALPHA_PART? )? - | - $FRACTION_PART $LAX_ALPHA_PART? - /x;my$LAX_DOTTED_DECIMAL_VERSION=qr/ - v $LAX_INTEGER_PART (?: $LAX_DOTTED_DECIMAL_PART+ $LAX_ALPHA_PART? )? - | - $LAX_INTEGER_PART? $LAX_DOTTED_DECIMAL_PART{2,} $LAX_ALPHA_PART? - /x;$LAX=qr/ undef | $LAX_DECIMAL_VERSION | $LAX_DOTTED_DECIMAL_VERSION /x;sub is_strict {defined $_[0]&& $_[0]=~ qr/ \A $STRICT \z /x}sub is_lax {defined $_[0]&& $_[0]=~ qr/ \A $LAX \z /x}1; -VERSION_REGEX - -$fatpacked{"version/vpp.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'VERSION_VPP'; - package charstar;use overload ('""'=>\&thischar,'0+'=>\&thischar,'++'=>\&increment,'--'=>\&decrement,'+'=>\&plus,'-'=>\&minus,'*'=>\&multiply,'cmp'=>\&cmp,'<=>'=>\&spaceship,'bool'=>\&thischar,'='=>\&clone,);sub new {my ($self,$string)=@_;my$class=ref($self)|| $self;my$obj={string=>[split(//,$string)],current=>0,};return bless$obj,$class}sub thischar {my ($self)=@_;my$last=$#{$self->{string}};my$curr=$self->{current};if ($curr >= 0 && $curr <= $last){return$self->{string}->[$curr]}else {return ''}}sub increment {my ($self)=@_;$self->{current}++}sub decrement {my ($self)=@_;$self->{current}--}sub plus {my ($self,$offset)=@_;my$rself=$self->clone;$rself->{current}+= $offset;return$rself}sub minus {my ($self,$offset)=@_;my$rself=$self->clone;$rself->{current}-= $offset;return$rself}sub multiply {my ($left,$right,$swapped)=@_;my$char=$left->thischar();return$char * $right}sub spaceship {my ($left,$right,$swapped)=@_;unless (ref($right)){$right=$left->new($right)}return$left->{current}<=> $right->{current}}sub cmp {my ($left,$right,$swapped)=@_;unless (ref($right)){if (length($right)==1){return$left->thischar cmp $right}$right=$left->new($right)}return$left->currstr cmp $right->currstr}sub bool {my ($self)=@_;my$char=$self->thischar;return ($char ne '')}sub clone {my ($left,$right,$swapped)=@_;$right={string=>[@{$left->{string}}],current=>$left->{current},};return bless$right,ref($left)}sub currstr {my ($self,$s)=@_;my$curr=$self->{current};my$last=$#{$self->{string}};if (defined($s)&& $s->{current}< $last){$last=$s->{current}}my$string=join('',@{$self->{string}}[$curr..$last]);return$string}package version::vpp;use 5.006002;use strict;use warnings::register;use Config;use vars qw($VERSION $CLASS @ISA $LAX $STRICT $WARN_CATEGORY);$VERSION=0.9912;$CLASS='version::vpp';if ($] > 5.015){warnings::register_categories(qw/version/);$WARN_CATEGORY='version'}else {$WARN_CATEGORY='numeric'}require version::regex;*version::vpp::is_strict=\&version::regex::is_strict;*version::vpp::is_lax=\&version::regex::is_lax;*LAX=\$version::regex::LAX;*STRICT=\$version::regex::STRICT;use overload ('""'=>\&stringify,'0+'=>\&numify,'cmp'=>\&vcmp,'<=>'=>\&vcmp,'bool'=>\&vbool,'+'=>\&vnoop,'-'=>\&vnoop,'*'=>\&vnoop,'/'=>\&vnoop,'+='=>\&vnoop,'-='=>\&vnoop,'*='=>\&vnoop,'/='=>\&vnoop,'abs'=>\&vnoop,);sub import {no strict 'refs';my ($class)=shift;unless ($class eq $CLASS){local $^W;*{$class.'::declare'}=\&{$CLASS.'::declare'};*{$class.'::qv'}=\&{$CLASS.'::qv'}}my%args;if (@_){map {$args{$_}=1}@_}else {%args=(qv=>1,'UNIVERSAL::VERSION'=>1,)}my$callpkg=caller();if (exists($args{declare})){*{$callpkg.'::declare'}=sub {return$class->declare(shift)}unless defined(&{$callpkg.'::declare'})}if (exists($args{qv})){*{$callpkg.'::qv'}=sub {return$class->qv(shift)}unless defined(&{$callpkg.'::qv'})}if (exists($args{'UNIVERSAL::VERSION'})){no warnings qw/redefine/;*UNIVERSAL::VERSION =\&{$CLASS.'::_VERSION'}}if (exists($args{'VERSION'})){*{$callpkg.'::VERSION'}=\&{$CLASS.'::_VERSION'}}if (exists($args{'is_strict'})){*{$callpkg.'::is_strict'}=\&{$CLASS.'::is_strict'}unless defined(&{$callpkg.'::is_strict'})}if (exists($args{'is_lax'})){*{$callpkg.'::is_lax'}=\&{$CLASS.'::is_lax'}unless defined(&{$callpkg.'::is_lax'})}}my$VERSION_MAX=0x7FFFFFFF;use constant TRUE=>1;use constant FALSE=>0;sub isDIGIT {my ($char)=shift->thischar();return ($char =~ /\d/)}sub isALPHA {my ($char)=shift->thischar();return ($char =~ /[a-zA-Z]/)}sub isSPACE {my ($char)=shift->thischar();return ($char =~ /\s/)}sub BADVERSION {my ($s,$errstr,$error)=@_;if ($errstr){$$errstr=$error}return$s}sub prescan_version {my ($s,$strict,$errstr,$sqv,$ssaw_decimal,$swidth,$salpha)=@_;my$qv=defined$sqv ? $$sqv : FALSE;my$saw_decimal=defined$ssaw_decimal ? $$ssaw_decimal : 0;my$width=defined$swidth ? $$swidth : 3;my$alpha=defined$salpha ? $$salpha : FALSE;my$d=$s;if ($qv && isDIGIT($d)){goto dotted_decimal_version}if ($d eq 'v'){$d++;if (isDIGIT($d)){$qv=TRUE}else {return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)")}dotted_decimal_version: if ($strict && $d eq '0' && isDIGIT($d+1)){return BADVERSION($s,$errstr,"Invalid version format (no leading zeros)")}while (isDIGIT($d)){$d++}if ($d eq '.'){$saw_decimal++;$d++}else {if ($strict){return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)")}else {goto version_prescan_finish}}{my$i=0;my$j=0;while (isDIGIT($d)){$i++;while (isDIGIT($d)){$d++;$j++;if ($strict && $j > 3){return BADVERSION($s,$errstr,"Invalid version format (maximum 3 digits between decimals)")}}if ($d eq '_'){if ($strict){return BADVERSION($s,$errstr,"Invalid version format (no underscores)")}if ($alpha){return BADVERSION($s,$errstr,"Invalid version format (multiple underscores)")}$d++;$alpha=TRUE}elsif ($d eq '.'){if ($alpha){return BADVERSION($s,$errstr,"Invalid version format (underscores before decimal)")}$saw_decimal++;$d++}elsif (!isDIGIT($d)){last}$j=0}if ($strict && $i < 2){return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)")}}}else {my$j=0;if ($strict){if ($d eq '.'){return BADVERSION($s,$errstr,"Invalid version format (0 before decimal required)")}if ($d eq '0' && isDIGIT($d+1)){return BADVERSION($s,$errstr,"Invalid version format (no leading zeros)")}}if ($d eq '-'){return BADVERSION($s,$errstr,"Invalid version format (negative version number)")}while (isDIGIT($d)){$d++}if ($d eq '.'){$saw_decimal++;$d++}elsif (!$d || $d eq ';' || isSPACE($d)|| $d eq '}'){if ($d==$s){return BADVERSION($s,$errstr,"Invalid version format (version required)")}goto version_prescan_finish}elsif ($d==$s){return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)")}elsif ($d eq '_'){if ($strict){return BADVERSION($s,$errstr,"Invalid version format (no underscores)")}elsif (isDIGIT($d+1)){return BADVERSION($s,$errstr,"Invalid version format (alpha without decimal)")}else {return BADVERSION($s,$errstr,"Invalid version format (misplaced underscore)")}}elsif ($d){return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)")}if ($d &&!isDIGIT($d)&& ($strict ||!($d eq ';' || isSPACE($d)|| $d eq '}'))){return BADVERSION($s,$errstr,"Invalid version format (fractional part required)")}while (isDIGIT($d)){$d++;$j++;if ($d eq '.' && isDIGIT($d-1)){if ($alpha){return BADVERSION($s,$errstr,"Invalid version format (underscores before decimal)")}if ($strict){return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions must begin with 'v')")}$d=$s;$qv=TRUE;goto dotted_decimal_version}if ($d eq '_'){if ($strict){return BADVERSION($s,$errstr,"Invalid version format (no underscores)")}if ($alpha){return BADVERSION($s,$errstr,"Invalid version format (multiple underscores)")}if (!isDIGIT($d+1)){return BADVERSION($s,$errstr,"Invalid version format (misplaced underscore)")}$width=$j;$d++;$alpha=TRUE}}}version_prescan_finish: while (isSPACE($d)){$d++}if ($d &&!isDIGIT($d)&& (!($d eq ';' || $d eq '}'))){return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)")}if ($saw_decimal > 1 && ($d-1)eq '.'){return BADVERSION($s,$errstr,"Invalid version format (trailing decimal)")}if (defined$sqv){$$sqv=$qv}if (defined$swidth){$$swidth=$width}if (defined$ssaw_decimal){$$ssaw_decimal=$saw_decimal}if (defined$salpha){$$salpha=$alpha}return$d}sub scan_version {my ($s,$rv,$qv)=@_;my$start;my$pos;my$last;my$errstr;my$saw_decimal=0;my$width=3;my$alpha=FALSE;my$vinf=FALSE;my@av;$s=new charstar$s;while (isSPACE($s)){$s++}$last=prescan_version($s,FALSE,\$errstr,\$qv,\$saw_decimal,\$width,\$alpha);if ($errstr){if ($s ne 'undef'){require Carp;Carp::croak($errstr)}}$start=$s;if ($s eq 'v'){$s++}$pos=$s;if ($qv){$$rv->{qv}=$qv}if ($alpha){$$rv->{alpha}=$alpha}if (!$qv && $width < 3){$$rv->{width}=$width}while (isDIGIT($pos)){$pos++}if (!isALPHA($pos)){my$rev;for (;;){$rev=0;{my$end=$pos;my$mult=1;my$orev;if (!$qv && $s > $start && $saw_decimal==1){$mult *= 100;while ($s < $end){$orev=$rev;$rev += $s * $mult;$mult /= 10;if ((abs($orev)> abs($rev))|| (abs($rev)> $VERSION_MAX)){warn("Integer overflow in version %d",$VERSION_MAX);$s=$end - 1;$rev=$VERSION_MAX;$vinf=1}$s++;if ($s eq '_'){$s++}}}else {while (--$end >= $s){$orev=$rev;$rev += $end * $mult;$mult *= 10;if ((abs($orev)> abs($rev))|| (abs($rev)> $VERSION_MAX)){warn("Integer overflow in version");$end=$s - 1;$rev=$VERSION_MAX;$vinf=1}}}}push@av,$rev;if ($vinf){$s=$last;last}elsif ($pos eq '.'){$pos++;if ($qv){while ($pos eq '0'){$pos++}}$s=$pos}elsif ($pos eq '_' && isDIGIT($pos+1)){$s=++$pos}elsif ($pos eq ',' && isDIGIT($pos+1)){$s=++$pos}elsif (isDIGIT($pos)){$s=$pos}else {$s=$pos;last}if ($qv){while (isDIGIT($pos)){$pos++}}else {my$digits=0;while ((isDIGIT($pos)|| $pos eq '_')&& $digits < 3){if ($pos ne '_'){$digits++}$pos++}}}}if ($qv){my$len=$#av;$len=2 - $len;while ($len-- > 0){push@av,0}}if ($vinf){$$rv->{original}="v.Inf";$$rv->{vinf}=1}elsif ($s > $start){$$rv->{original}=$start->currstr($s);if ($qv && $saw_decimal==1 && $start ne 'v'){$$rv->{original}='v' .$$rv->{original}}}else {$$rv->{original}='0';push(@av,0)}$$rv->{version}=\@av;if ($s eq 'undef'){$s += 5}return$s}sub new {my$class=shift;unless (defined$class or $#_ > 1){require Carp;Carp::croak('Usage: version::new(class, version)')}my$self=bless ({},ref ($class)|| $class);my$qv=FALSE;if ($#_==1){$qv=TRUE}my$value=pop;if (ref($value)&& eval('$value->isa("version")')){$self->{version}=[@{$value->{version}}];$self->{qv}=1 if$value->{qv};$self->{alpha}=1 if$value->{alpha};$self->{original}=''.$value->{original};return$self}if (not defined$value or $value =~ /^undef$/){push @{$self->{version}},0;$self->{original}="0";return ($self)}if (ref($value)=~ m/ARRAY|HASH/){require Carp;Carp::croak("Invalid version format (non-numeric data)")}$value=_un_vstring($value);if ($Config{d_setlocale}){use POSIX qw/locale_h/;use if$Config{d_setlocale},'locale';my$currlocale=setlocale(LC_ALL);if (localeconv()->{decimal_point}eq ','){$value =~ tr/,/./}}if ($value =~ /\d+.?\d*e[-+]?\d+/){$value=sprintf("%.9f",$value);$value =~ s/(0+)$//}my$s=scan_version($value,\$self,$qv);if ($s){warn("Version string '%s' contains invalid data; " ."ignoring: '%s'",$value,$s)}return ($self)}*parse=\&new;sub numify {my ($self)=@_;unless (_verify($self)){require Carp;Carp::croak("Invalid version object")}my$width=$self->{width}|| 3;my$alpha=$self->{alpha}|| "";my$len=$#{$self->{version}};my$digit=$self->{version}[0];my$string=sprintf("%d.",$digit);if ($alpha and warnings::enabled()){warnings::warn($WARN_CATEGORY,'alpha->numify() is lossy')}for (my$i=1 ;$i < $len ;$i++ ){$digit=$self->{version}[$i];if ($width < 3){my$denom=10**(3-$width);my$quot=int($digit/$denom);my$rem=$digit - ($quot * $denom);$string .= sprintf("%0".$width."d_%d",$quot,$rem)}else {$string .= sprintf("%03d",$digit)}}if ($len > 0){$digit=$self->{version}[$len];if ($alpha && $width==3){$string .= "_"}$string .= sprintf("%0".$width."d",$digit)}else {$string .= sprintf("000")}return$string}sub normal {my ($self)=@_;unless (_verify($self)){require Carp;Carp::croak("Invalid version object")}my$alpha=$self->{alpha}|| "";my$qv=$self->{qv}|| "";my$len=$#{$self->{version}};my$digit=$self->{version}[0];my$string=sprintf("v%d",$digit);for (my$i=1 ;$i < $len ;$i++ ){$digit=$self->{version}[$i];$string .= sprintf(".%d",$digit)}if ($len > 0){$digit=$self->{version}[$len];if ($alpha){$string .= sprintf("_%0d",$digit)}else {$string .= sprintf(".%0d",$digit)}}if ($len <= 2){for ($len=2 - $len;$len!=0;$len-- ){$string .= sprintf(".%0d",0)}}return$string}sub stringify {my ($self)=@_;unless (_verify($self)){require Carp;Carp::croak("Invalid version object")}return exists$self->{original}? $self->{original}: exists$self->{qv}? $self->normal : $self->numify}sub vcmp {require UNIVERSAL;my ($left,$right,$swap)=@_;my$class=ref($left);unless (UNIVERSAL::isa($right,$class)){$right=$class->new($right)}if ($swap){($left,$right)=($right,$left)}unless (_verify($left)){require Carp;Carp::croak("Invalid version object")}unless (_verify($right)){require Carp;Carp::croak("Invalid version format")}my$l=$#{$left->{version}};my$r=$#{$right->{version}};my$m=$l < $r ? $l : $r;my$lalpha=$left->is_alpha;my$ralpha=$right->is_alpha;my$retval=0;my$i=0;while ($i <= $m && $retval==0){$retval=$left->{version}[$i]<=> $right->{version}[$i];$i++}if ($retval==0 && $l==$r && $left->{version}[$m]==$right->{version}[$m]&& ($lalpha || $ralpha)){if ($lalpha &&!$ralpha){$retval=-1}elsif ($ralpha &&!$lalpha){$retval=+1}}if ($retval==0 && $l!=$r){if ($l < $r){while ($i <= $r && $retval==0){if ($right->{version}[$i]!=0){$retval=-1}$i++}}else {while ($i <= $l && $retval==0){if ($left->{version}[$i]!=0){$retval=+1}$i++}}}return$retval}sub vbool {my ($self)=@_;return vcmp($self,$self->new("0"),1)}sub vnoop {require Carp;Carp::croak("operation not supported with version object")}sub is_alpha {my ($self)=@_;return (exists$self->{alpha})}sub qv {my$value=shift;my$class=$CLASS;if (@_){$class=ref($value)|| $value;$value=shift}$value=_un_vstring($value);$value='v'.$value unless$value =~ /(^v|\d+\.\d+\.\d)/;my$obj=$CLASS->new($value);return bless$obj,$class}*declare=\&qv;sub is_qv {my ($self)=@_;return (exists$self->{qv})}sub _verify {my ($self)=@_;if (ref($self)&& eval {exists$self->{version}}&& ref($self->{version})eq 'ARRAY'){return 1}else {return 0}}sub _is_non_alphanumeric {my$s=shift;$s=new charstar$s;while ($s){return 0 if isSPACE($s);return 1 unless (isALPHA($s)|| isDIGIT($s)|| $s =~ /[.-]/);$s++}return 0}sub _un_vstring {my$value=shift;if (length($value)>= 1 && $value !~ /[,._]/ && _is_non_alphanumeric($value)){my$tvalue;if ($] >= 5.008_001){$tvalue=_find_magic_vstring($value);$value=$tvalue if length$tvalue}elsif ($] >= 5.006_000){$tvalue=sprintf("v%vd",$value);if ($tvalue =~ /^v\d+(\.\d+)*$/){$value=$tvalue}}}return$value}sub _find_magic_vstring {my$value=shift;my$tvalue='';require B;my$sv=B::svref_2object(\$value);my$magic=ref($sv)eq 'B::PVMG' ? $sv->MAGIC : undef;while ($magic){if ($magic->TYPE eq 'V'){$tvalue=$magic->PTR;$tvalue =~ s/^v?(.+)$/v$1/;last}else {$magic=$magic->MOREMAGIC}}return$tvalue}sub _VERSION {my ($obj,$req)=@_;my$class=ref($obj)|| $obj;no strict 'refs';if (exists$INC{"$class.pm"}and not %{"$class\::"}and $] >= 5.008){require Carp;Carp::croak("$class defines neither package nor VERSION" ."--version check failed")}my$version=eval "\$$class\::VERSION";if (defined$version){local $^W if $] <= 5.008;$version=version::vpp->new($version)}if (defined$req){unless (defined$version){require Carp;my$msg=$] < 5.006 ? "$class version $req required--this is only version " : "$class does not define \$$class\::VERSION" ."--version check failed";if ($ENV{VERSION_DEBUG}){Carp::confess($msg)}else {Carp::croak($msg)}}$req=version::vpp->new($req);if ($req > $version){require Carp;if ($req->is_qv){Carp::croak(sprintf ("%s version %s required--"."this is only version %s",$class,$req->normal,$version->normal))}else {Carp::croak(sprintf ("%s version %s required--"."this is only version %s",$class,$req->stringify,$version->stringify))}}}return defined$version ? $version->stringify : undef}1; -VERSION_VPP - -s/^ //mg for values %fatpacked; - -my $class = 'FatPacked::'.(0+\%fatpacked); -no strict 'refs'; -*{"${class}::files"} = sub { keys %{$_[0]} }; - -if ($] < 5.008) { - *{"${class}::INC"} = sub { - if (my $fat = $_[0]{$_[1]}) { - my $pos = 0; - my $last = length $fat; - return (sub { - return 0 if $pos == $last; - my $next = (1 + index $fat, "\n", $pos) || $last; - $_ .= substr $fat, $pos, $next - $pos; - $pos = $next; - return 1; - }); - } - }; -} - -else { - *{"${class}::INC"} = sub { - if (my $fat = $_[0]{$_[1]}) { - open my $fh, '<', \$fat - or die "FatPacker error loading $_[1] (could be a perl installation issue?)"; - return $fh; - } - return; - }; -} - -unshift @INC, bless \%fatpacked, $class; - } # END OF FATPACK CODE - - - -use strict; -use App::cpanminus::script; - - -unless (caller) { - my $app = App::cpanminus::script->new; - $app->parse_options(@ARGV); - exit $app->doit; -} - -__END__ - -=head1 NAME - -cpanm - get, unpack build and install modules from CPAN - -=head1 SYNOPSIS - - cpanm Test::More # install Test::More - cpanm MIYAGAWA/Plack-0.99_05.tar.gz # full distribution path - cpanm http://example.org/LDS/CGI.pm-3.20.tar.gz # install from URL - cpanm ~/dists/MyCompany-Enterprise-1.00.tar.gz # install from a local file - cpanm --interactive Task::Kensho # Configure interactively - cpanm . # install from local directory - cpanm --installdeps . # install all the deps for the current directory - cpanm -L extlib Plack # install Plack and all non-core deps into extlib - cpanm --mirror http://cpan.cpantesters.org/ DBI # use the fast-syncing mirror - cpanm --from https://cpan.metacpan.org/ Plack # use only the HTTPS mirror - -=head1 COMMANDS - -=over 4 - -=item (arguments) - -Command line arguments can be either a module name, distribution file, -local file path, HTTP URL or git repository URL. Following commands -will all work as you expect. - - cpanm Plack - cpanm Plack/Request.pm - cpanm MIYAGAWA/Plack-1.0000.tar.gz - cpanm /path/to/Plack-1.0000.tar.gz - cpanm http://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Plack-0.9990.tar.gz - cpanm git://github.com/plack/Plack.git - -Additionally, you can use the notation using C<~> and C<@> to specify -version for a given module. C<~> specifies the version requirement in -the L<CPAN::Meta::Spec> format, while C<@> pins the exact version, and -is a shortcut for C<~"== VERSION">. - - cpanm Plack~1.0000 # 1.0000 or later - cpanm Plack~">= 1.0000, < 2.0000" # latest of 1.xxxx - cpanm Plack@0.9990 # specific version. same as Plack~"== 0.9990" - -The version query including specific version or range will be sent to -L<MetaCPAN> to search for previous releases. The query will search for -BackPAN archives by default, unless you specify C<--dev> option, in -which case, archived versions will be filtered out. - -For a git repository, you can specify a branch, tag, or commit SHA to -build. The default is C<master> - - cpanm git://github.com/plack/Plack.git@1.0000 # tag - cpanm git://github.com/plack/Plack.git@devel # branch - -=item -i, --install - -Installs the modules. This is a default behavior and this is just a -compatibility option to make it work like L<cpan> or L<cpanp>. - -=item --self-upgrade - -Upgrades itself. It's just an alias for: - - cpanm App::cpanminus - -=item --info - -Displays the distribution information in -C<AUTHOR/Dist-Name-ver.tar.gz> format in the standard out. - -=item --installdeps - -Installs the dependencies of the target distribution but won't build -itself. Handy if you want to try the application from a version -controlled repository such as git. - - cpanm --installdeps . - -=item --look - -Download and unpack the distribution and then open the directory with -your shell. Handy to poke around the source code or do manual -testing. - -=item -h, --help - -Displays the help message. - -=item -V, --version - -Displays the version number. - -=back - -=head1 OPTIONS - -You can specify the default options in C<PERL_CPANM_OPT> environment variable. - -=over 4 - -=item -f, --force - -Force install modules even when testing failed. - -=item -n, --notest - -Skip the testing of modules. Use this only when you just want to save -time for installing hundreds of distributions to the same perl and -architecture you've already tested to make sure it builds fine. - -Defaults to false, and you can say C<--no-notest> to override when it -is set in the default options in C<PERL_CPANM_OPT>. - -=item --test-only - -Run the tests only, and do not install the specified module or -distributions. Handy if you want to verify the new (or even old) -releases pass its unit tests without installing the module. - -Note that if you specify this option with a module or distribution -that has dependencies, these dependencies will be installed if you -don't currently have them. - -=item -S, --sudo - -Switch to the root user with C<sudo> when installing modules. Use this -if you want to install modules to the system perl include path. - -Defaults to false, and you can say C<--no-sudo> to override when it is -set in the default options in C<PERL_CPANM_OPT>. - -=item -v, --verbose - -Makes the output verbose. It also enables the interactive -configuration. (See --interactive) - -=item -q, --quiet - -Makes the output even more quiet than the default. It only shows the -successful/failed dependencies to the output. - -=item -l, --local-lib - -Sets the L<local::lib> compatible path to install modules to. You -don't need to set this if you already configure the shell environment -variables using L<local::lib>, but this can be used to override that -as well. - -=item -L, --local-lib-contained - -Same with C<--local-lib> but with L<--self-contained> set. All -non-core dependencies will be installed even if they're already -installed. - -For instance, - - cpanm -L extlib Plack - -would install Plack and all of its non-core dependencies into the -directory C<extlib>, which can be loaded from your application with: - - use local::lib '/path/to/extlib'; - -Note that this option does B<NOT> reliably work with perl installations -supplied by operating system vendors that strips standard modules from perl, -such as RHEL, Fedora and CentOS, B<UNLESS> you also install packages supplying -all the modules that have been stripped. For these systems you will probably -want to install the C<perl-core> meta-package which does just that. - -=item --self-contained - -When examining the dependencies, assume no non-core modules are -installed on the system. Handy if you want to bundle application -dependencies in one directory so you can distribute to other machines. - -=item --exclude-vendor - -Don't include modules installed under the 'vendor' paths when searching for -core modules when the C<--self-contained> flag is in effect. This restores -the behaviour from before version 1.7023 - -=item --mirror - -Specifies the base URL for the CPAN mirror to use, such as -C<http://cpan.cpantesters.org/> (you can omit the trailing slash). You -can specify multiple mirror URLs by repeating the command line option. - -You can use a local directory that has a CPAN mirror structure -(created by tools such as L<OrePAN> or L<Pinto>) by using a special -URL scheme C<file://>. If the given URL begins with `/` (without any -scheme), it is considered as a file scheme as well. - - cpanm --mirror file:///path/to/mirror - cpanm --mirror ~/minicpan # Because shell expands ~ to /home/user - -Defaults to C<http://www.cpan.org/>. - -=item --mirror-only - -Download the mirror's 02packages.details.txt.gz index file instead of -querying the CPAN Meta DB. This will also effectively opt out sending -your local perl versions to backend database servers such as CPAN Meta -DB and MetaCPAN. - -Select this option if you are using a local mirror of CPAN, such as -minicpan when you're offline, or your own CPAN index (a.k.a darkpan). - -=item --from, -M - - cpanm -M https://cpan.metacpan.org/ - cpanm --from https://cpan.metacpan.org/ - -Use the given mirror URL and its index as the I<only> source to search -and download modules from. - -It works similar to C<--mirror> and C<--mirror-only> combined, with a -small difference: unlike C<--mirror> which I<appends> the URL to the -list of mirrors, C<--from> (or C<-M> for short) uses the specified URL -as its I<only> source to download index and modules from. This makes -the option always override the default mirror, which might have been -set via global options such as the one set by C<PERL_CPANM_OPT> -environment variable. - -B<Tip:> It might be useful if you name these options with your shell -aliases, like: - - alias minicpanm='cpanm --from ~/minicpan' - alias darkpan='cpanm --from http://mycompany.example.com/DPAN' - -=item --mirror-index - -B<EXPERIMENTAL>: Specifies the file path to C<02packages.details.txt> -for module search index. - -=item --cpanmetadb - -B<EXPERIMENTAL>: Specifies an alternate URI for CPAN MetaDB index lookups. - -=item --metacpan - -Prefers MetaCPAN API over CPAN MetaDB. - -=item --cpanfile - -B<EXPERIMENTAL>: Specified an alternate path for cpanfile to search for, -when C<--installdeps> command is in use. Defaults to C<cpanfile>. - -=item --prompt - -Prompts when a test fails so that you can skip, force install, retry -or look in the shell to see what's going wrong. It also prompts when -one of the dependency failed if you want to proceed the installation. - -Defaults to false, and you can say C<--no-prompt> to override if it's -set in the default options in C<PERL_CPANM_OPT>. - -=item --dev - -B<EXPERIMENTAL>: search for a newer developer release as well. Defaults to false. - -=item --reinstall - -cpanm, when given a module name in the command line (i.e. C<cpanm -Plack>), checks the locally installed version first and skips if it is -already installed. This option makes it skip the check, so: - - cpanm --reinstall Plack - -would reinstall L<Plack> even if your locally installed version is -latest, or even newer (which would happen if you install a developer -release from version control repositories). - -Defaults to false. - -=item --interactive - -Makes the configuration (such as C<Makefile.PL> and C<Build.PL>) -interactive, so you can answer questions in the distribution that -requires custom configuration or Task:: distributions. - -Defaults to false, and you can say C<--no-interactive> to override -when it's set in the default options in C<PERL_CPANM_OPT>. - -=item --pp, --pureperl - -Prefer Pure perl build of modules by setting C<PUREPERL_ONLY=1> for -MakeMaker and C<--pureperl-only> for Build.PL based -distributions. Note that not all of the CPAN modules support this -convention yet. - -=item --with-recommends, --with-suggests - -B<EXPERIMENTAL>: Installs dependencies declared as C<recommends> and -C<suggests> respectively, per META spec. When these dependencies fail -to install, cpanm continues the installation, since they're just -recommendation/suggestion. - -Enabling this could potentially make a circular dependency for a few -modules on CPAN, when C<recommends> adds a module that C<recommends> -back the module in return. - -There's also C<--without-recommend> and C<--without-suggests> to -override the default decision made earlier in C<PERL_CPANM_OPT>. - -Defaults to false for both. - -=item --with-develop - -B<EXPERIMENTAL>: Installs develop phase dependencies in META files or -C<cpanfile> when used with C<--installdeps>. Defaults to false. - -=item --with-configure - -B<EXPERIMENTAL>: Installs configure phase dependencies in C<cpanfile> -when used with C<--installdeps>. Defaults to false. - -=item --with-feature, --without-feature, --with-all-features - -B<EXPERIMENTAL>: Specifies the feature to enable, if a module supports -optional features per META spec 2.0. - - cpanm --with-feature=opt_csv Spreadsheet::Read - -the features can also be interactively chosen when C<--interactive> -option is enabled. - -C<--with-all-features> enables all the optional features, and -C<--without-feature> can select a feature to disable. - -=item --configure-timeout, --build-timeout, --test-timeout - -Specify the timeout length (in seconds) to wait for the configure, -build and test process. Current default values are: 60 for configure, -3600 for build and 1800 for test. - -=item --configure-args, --build-args, --test-args, --install-args - -B<EXPERIMENTAL>: Pass arguments for configure/build/test/install -commands respectively, for a given module to install. - - cpanm DBD::mysql --configure-args="--cflags=... --libs=..." - -The argument is only enabled for the module passed as a command line -argument, not dependencies. - -=item --scandeps - -B<DEPRECATED>: Scans the depencencies of given modules and output the -tree in a text format. (See C<--format> below for more options) - -Because this command doesn't actually install any distributions, it -will be useful that by typing: - - cpanm --scandeps Catalyst::Runtime - -you can make sure what modules will be installed. - -This command takes into account which modules you already have -installed in your system. If you want to see what modules will be -installed against a vanilla perl installation, you might want to -combine it with C<-L> option. - -=item --format - -B<DEPRECATED>: Determines what format to display the scanned -dependency tree. Available options are C<tree>, C<json>, C<yaml> and -C<dists>. - -=over 8 - -=item tree - -Displays the tree in a plain text format. This is the default value. - -=item json, yaml - -Outputs the tree in a JSON or YAML format. L<JSON> and L<YAML> modules -need to be installed respectively. The output tree is represented as a -recursive tuple of: - - [ distribution, dependencies ] - -and the container is an array containing the root elements. Note that -there may be multiple root nodes, since you can give multiple modules -to the C<--scandeps> command. - -=item dists - -C<dists> is a special output format, where it prints the distribution -filename in the I<depth first order> after the dependency resolution, -like: - - GAAS/MIME-Base64-3.13.tar.gz - GAAS/URI-1.58.tar.gz - PETDANCE/HTML-Tagset-3.20.tar.gz - GAAS/HTML-Parser-3.68.tar.gz - GAAS/libwww-perl-5.837.tar.gz - -which means you can install these distributions in this order without -extra dependencies. When combined with C<-L> option, it will be useful -to replay installations on other machines. - -=back - -=item --save-dists - -Specifies the optional directory path to copy downloaded tarballs in -the CPAN mirror compatible directory structure -i.e. I<authors/id/A/AU/AUTHORS/Foo-Bar-version.tar.gz> - -If the distro tarball did not come from CPAN, for example from a local -file or from GitHub, then it will be saved under -I<vendor/Foo-Bar-version.tar.gz>. - -=item --uninst-shadows - -Uninstalls the shadow files of the distribution that you're -installing. This eliminates the confusion if you're trying to install -core (dual-life) modules from CPAN against perl 5.10 or older, or -modules that used to be XS-based but switched to pure perl at some -version. - -If you run cpanm as root and use C<INSTALL_BASE> or equivalent to -specify custom installation path, you SHOULD disable this option so -you won't accidentally uninstall dual-life modules from the core -include path. - -Defaults to true if your perl version is smaller than 5.12, and you -can disable that with C<--no-uninst-shadows>. - -B<NOTE>: Since version 1.3000 this flag is turned off by default for -perl newer than 5.12, since with 5.12 @INC contains site_perl directory -I<before> the perl core library path, and uninstalling shadows is not -necessary anymore and does more harm by deleting files from the core -library path. - -=item --uninstall, -U - -Uninstalls a module from the library path. It finds a packlist for -given modules, and removes all the files included in the same -distribution. - -If you enable local::lib, it only removes files from the local::lib -directory. - -If you try to uninstall a module in C<perl> directory (i.e. core -module), an error will be thrown. - -A dialog will be prompted to confirm the files to be deleted. If you pass -C<-f> option as well, the dialog will be skipped and uninstallation -will be forced. - -=item --cascade-search - -B<EXPERIMENTAL>: Specifies whether to cascade search when you specify -multiple mirrors and a mirror doesn't have a module or has a lower -version of the module than requested. Defaults to false. - -=item --skip-installed - -Specifies whether a module given in the command line is skipped if its latest -version is already installed. Defaults to true. - -B<NOTE>: The C<PERL5LIB> environment variable have to be correctly set -for this to work with modules installed using L<local::lib>, unless -you always use the C<-l> option. - -=item --skip-satisfied - -B<EXPERIMENTAL>: Specifies whether a module (and version) given in the -command line is skipped if it's already installed. - -If you run: - - cpanm --skip-satisfied CGI DBI~1.2 - -cpanm won't install them if you already have CGI (for whatever -versions) or have DBI with version higher than 1.2. It is similar to -C<--skip-installed> but while C<--skip-installed> checks if the -I<latest> version of CPAN is installed, C<--skip-satisfied> checks if -a requested version (or not, which means any version) is installed. - -Defaults to false. - -=item --verify - -Verify the integrity of distribution files retrieved from PAUSE using -CHECKSUMS and SIGNATURES (if found). Defaults to false. - -=item --report-perl-version - -Whether it reports the locally installed perl version to the various -web server as part of User-Agent. Defaults to true unless CI related -environment variables such as C<TRAVIS>, C<CI> or C<AUTOMATED_TESTING> -is enabled. You can disable it by using C<--no-report-perl-version>. - -=item --auto-cleanup - -Specifies the number of days in which cpanm's work directories -expire. Defaults to 7, which means old work directories will be -cleaned up in one week. - -You can set the value to C<0> to make cpan never cleanup those -directories. - -=item --man-pages - -Generates man pages for executables (man1) and libraries (man3). - -Defaults to true (man pages generated) unless C<-L|--local-lib-contained> -option is supplied in which case it's set to false. You can disable -it with C<--no-man-pages>. - -=item --lwp - -Uses L<LWP> module to download stuff over HTTP. Defaults to true, and -you can say C<--no-lwp> to disable using LWP, when you want to upgrade -LWP from CPAN on some broken perl systems. - -=item --wget - -Uses GNU Wget (if available) to download stuff. Defaults to true, and -you can say C<--no-wget> to disable using Wget (versions of Wget older -than 1.9 don't support the C<--retry-connrefused> option used by cpanm). - -=item --curl - -Uses cURL (if available) to download stuff. Defaults to true, and -you can say C<--no-curl> to disable using cURL. - -Normally with C<--lwp>, C<--wget> and C<--curl> options set to true -(which is the default) cpanm tries L<LWP>, Wget, cURL and L<HTTP::Tiny> -(in that order) and uses the first one available. - -=back - -=head1 ENVIRONMENT VARIABLES - -=over 4 - -=item PERL_CPANM_HOME - -The directory cpanm should use to store downloads and build and test -modules. Defaults to the C<.cpanm> directory in your user's home -directory. - -=item PERL_CPANM_OPT - -If set, adds a set of default options to every cpanm command. These -options come first, and so are overridden by command-line options. - -=back - -=head1 SEE ALSO - -L<App::cpanminus> - -=head1 COPYRIGHT - -Copyright 2010- Tatsuhiko Miyagawa. - -=head1 AUTHOR - -Tatsuhiko Miyagawa - -=cut - -__END__ -:endofperl diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/enc2xs b/software/Slic3r-1.3.0.64bit/local-lib/bin/enc2xs deleted file mode 100644 index 619b64b7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/enc2xs +++ /dev/null @@ -1,1492 +0,0 @@ -#!./perl -BEGIN { - # @INC poking no longer needed w/ new MakeMaker and Makefile.PL's - # with $ENV{PERL_CORE} set - # In case we need it in future... - require Config; import Config; - pop @INC if $INC[-1] eq '.'; -} -use strict; -use warnings; -use Getopt::Std; -use Config; -my @orig_ARGV = @ARGV; -our $VERSION = do { my @r = (q$Revision: 2.21 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; - -# These may get re-ordered. -# RAW is a do_now as inserted by &enter -# AGG is an aggregated do_now, as built up by &process - -use constant { - RAW_NEXT => 0, - RAW_IN_LEN => 1, - RAW_OUT_BYTES => 2, - RAW_FALLBACK => 3, - - AGG_MIN_IN => 0, - AGG_MAX_IN => 1, - AGG_OUT_BYTES => 2, - AGG_NEXT => 3, - AGG_IN_LEN => 4, - AGG_OUT_LEN => 5, - AGG_FALLBACK => 6, -}; - -# (See the algorithm in encengine.c - we're building structures for it) - -# There are two sorts of structures. -# "do_now" (an array, two variants of what needs storing) is whatever we need -# to do now we've read an input byte. -# It's housed in a "do_next" (which is how we got to it), and in turn points -# to a "do_next" which contains all the "do_now"s for the next input byte. - -# There will be a "do_next" which is the start state. -# For a single byte encoding it's the only "do_next" - each "do_now" points -# back to it, and each "do_now" will cause bytes. There is no state. - -# For a multi-byte encoding where all characters in the input are the same -# length, then there will be a tree of "do_now"->"do_next"->"do_now" -# branching out from the start state, one step for each input byte. -# The leaf "do_now"s will all be at the same distance from the start state, -# only the leaf "do_now"s cause output bytes, and they in turn point back to -# the start state. - -# For an encoding where there are variable length input byte sequences, you -# will encounter a leaf "do_now" sooner for the shorter input sequences, but -# as before the leaves will point back to the start state. - -# The system will cope with escape encodings (imagine them as a mostly -# self-contained tree for each escape state, and cross links between trees -# at the state-switching characters) but so far no input format defines these. - -# The system will also cope with having output "leaves" in the middle of -# the bifurcating branches, not just at the extremities, but again no -# input format does this yet. - -# There are two variants of the "do_now" structure. The first, smaller variant -# is generated by &enter as the input file is read. There is one structure -# for each input byte. Say we are mapping a single byte encoding to a -# single byte encoding, with "ABCD" going "abcd". There will be -# 4 "do_now"s, {"A" => [...,"a",...], "B" => [...,"b",...], "C"=>..., "D"=>...} - -# &process then walks the tree, building aggregate "do_now" structures for -# adjacent bytes where possible. The aggregate is for a contiguous range of -# bytes which each produce the same length of output, each move to the -# same next state, and each have the same fallback flag. -# So our 4 RAW "do_now"s above become replaced by a single structure -# containing: -# ["A", "D", "abcd", 1, ...] -# ie, for an input byte $_ in "A".."D", output 1 byte, found as -# substr ("abcd", (ord $_ - ord "A") * 1, 1) -# which maps very nicely into pointer arithmetic in C for encengine.c - -sub encode_U -{ - # UTF-8 encode long hand - only covers part of perl's range - ## my $uv = shift; - # chr() works in native space so convert value from table - # into that space before using chr(). - my $ch = chr(utf8::unicode_to_native($_[0])); - # Now get core perl to encode that the way it likes. - utf8::encode($ch); - return $ch; -} - -sub encode_S -{ - # encode single byte - ## my ($ch,$page) = @_; return chr($ch); - return chr $_[0]; -} - -sub encode_D -{ - # encode double byte MS byte first - ## my ($ch,$page) = @_; return chr($page).chr($ch); - return chr ($_[1]) . chr $_[0]; -} - -sub encode_M -{ - # encode Multi-byte - single for 0..255 otherwise double - ## my ($ch,$page) = @_; - ## return &encode_D if $page; - ## return &encode_S; - return chr ($_[1]) . chr $_[0] if $_[1]; - return chr $_[0]; -} - -my %encode_types = (U => \&encode_U, - S => \&encode_S, - D => \&encode_D, - M => \&encode_M, - ); - -# Win32 does not expand globs on command line -if ($^O eq 'MSWin32' and !$ENV{PERL_CORE}) { - eval "\@ARGV = map(glob(\$_),\@ARGV)"; - @ARGV = @orig_ARGV unless @ARGV; -} - -my %opt; -# I think these are: -# -Q to disable the duplicate codepoint test -# -S make mapping errors fatal -# -q to remove comments written to output files -# -O to enable the (brute force) substring optimiser -# -o <output> to specify the output file name (else it's the first arg) -# -f <inlist> to give a file with a list of input files (else use the args) -# -n <name> to name the encoding (else use the basename of the input file. -#Getopt::Long::Configure("bundling"); -#GetOptions(\%opt, qw(C M=s S Q q O o=s f=s n=s v)); -getopts('CM:SQqOo:f:n:v',\%opt); - -$opt{M} and make_makefile_pl($opt{M}, @ARGV); -$opt{C} and make_configlocal_pm($opt{C}, @ARGV); -$opt{v} ||= $ENV{ENC2XS_VERBOSE}; - -sub verbose { - print STDERR @_ if $opt{v}; -} -sub verbosef { - printf STDERR @_ if $opt{v}; -} - - -# ($cpp, $static, $sized) = compiler_info($declaration) -# -# return some information about the compiler and compile options we're using: -# -# $declaration - true if we're doing a declaration rather than a definition. -# -# $cpp - we're using C++ -# $static - ok to declare the arrays as static -# $sized - the array declarations should be sized - -sub compiler_info { - my ($declaration) = @_; - - my $ccflags = $Config{ccflags}; - if (defined $Config{ccwarnflags}) { - $ccflags .= " " . $Config{ccwarnflags}; - } - my $compat = $ccflags =~ /\Q-Wc++-compat/; - my $pedantic = $ccflags =~ /-pedantic/; - - my $cpp = ($Config{d_cplusplus} || '') eq 'define'; - - # The encpage_t tables contain recursive and mutually recursive - # references. To allow them to compile under C++ and some restrictive - # cc options, it may be necessary to make the tables non-static/const - # (thus moving them from the text to the data segment) and/or not - # include the size in the declaration. - - my $static = !( - $cpp - || ($compat && $pedantic) - || ($^O eq 'MacOS' && $declaration) - ); - - # -Wc++-compat on its own warns if the array declaration is sized. - # The easiest way to avoid this warning is simply not to include - # the size in the declaration. - # With -pedantic as well, the issue doesn't arise because $static - # above becomes false. - my $sized = $declaration && !($compat && !$pedantic); - - return ($cpp, $static, $sized); -} - - -# This really should go first, else the die here causes empty (non-erroneous) -# output files to be written. -my @encfiles; -if (exists $opt{f}) { - # -F is followed by name of file containing list of filenames - my $flist = $opt{f}; - open(FLIST,$flist) || die "Cannot open $flist:$!"; - chomp(@encfiles = <FLIST>); - close(FLIST); -} else { - @encfiles = @ARGV; -} - -my $cname = $opt{o} ? $opt{o} : shift(@ARGV); -unless ($cname) { #debuging a win32 nmake error-only. works via cmdline - print "\nARGV:"; - print "$_ " for @ARGV; - print "\nopt:"; - print " $_ => ",defined $opt{$_}?$opt{$_}:"undef","\n" for keys %opt; -} -chmod(0666,$cname) if -f $cname && !-w $cname; -open(C,">", $cname) || die "Cannot open $cname:$!"; - -my $dname = $cname; -my $hname = $cname; - -my ($doC,$doEnc,$doUcm,$doPet); - -if ($cname =~ /\.(c|xs)$/i) # VMS may have upcased filenames with DECC$ARGV_PARSE_STYLE defined - { - $doC = 1; - $dname =~ s/(\.[^\.]*)?$/.exh/; - chmod(0666,$dname) if -f $cname && !-w $dname; - open(D,">", $dname) || die "Cannot open $dname:$!"; - $hname =~ s/(\.[^\.]*)?$/.h/; - chmod(0666,$hname) if -f $cname && !-w $hname; - open(H,">", $hname) || die "Cannot open $hname:$!"; - - foreach my $fh (\*C,\*D,\*H) - { - print $fh <<"END" unless $opt{'q'}; -/* - !!!!!!! DO NOT EDIT THIS FILE !!!!!!! - This file was autogenerated by: - $^X $0 @orig_ARGV - enc2xs VERSION $VERSION -*/ -END - } - - if ($cname =~ /(\w+)\.xs$/) - { - print C "#define PERL_NO_GET_CONTEXT\n"; - print C "#include <EXTERN.h>\n"; - print C "#include <perl.h>\n"; - print C "#include <XSUB.h>\n"; - } - print C "#include \"encode.h\"\n\n"; - - } -elsif ($cname =~ /\.enc$/) - { - $doEnc = 1; - } -elsif ($cname =~ /\.ucm$/) - { - $doUcm = 1; - } -elsif ($cname =~ /\.pet$/) - { - $doPet = 1; - } - -my %encoding; -my %strings; -my $string_acc; -my %strings_in_acc; - -my $saved = 0; -my $subsave = 0; -my $strings = 0; - -sub cmp_name -{ - if ($a =~ /^.*-(\d+)/) - { - my $an = $1; - if ($b =~ /^.*-(\d+)/) - { - my $r = $an <=> $1; - return $r if $r; - } - } - return $a cmp $b; -} - - -foreach my $enc (sort cmp_name @encfiles) - { - my ($name,$sfx) = $enc =~ /^.*?([\w-]+)\.(enc|ucm)$/; - $name = $opt{'n'} if exists $opt{'n'}; - if (open(E,$enc)) - { - if ($sfx eq 'enc') - { - compile_enc(\*E,lc($name)); - } - else - { - compile_ucm(\*E,lc($name)); - } - } - else - { - warn "Cannot open $enc for $name:$!"; - } - } - -if ($doC) - { - verbose "Writing compiled form\n"; - foreach my $name (sort cmp_name keys %encoding) - { - my ($e2u,$u2e,$erep,$min_el,$max_el) = @{$encoding{$name}}; - process($name.'_utf8',$e2u); - addstrings(\*C,$e2u); - - process('utf8_'.$name,$u2e); - addstrings(\*C,$u2e); - } - outbigstring(\*C,"enctable"); - foreach my $name (sort cmp_name keys %encoding) - { - my ($e2u,$u2e,$erep,$min_el,$max_el) = @{$encoding{$name}}; - outtable(\*C,$e2u, "enctable"); - outtable(\*C,$u2e, "enctable"); - - # push(@{$encoding{$name}},outstring(\*C,$e2u->{Cname}.'_def',$erep)); - } - my ($cpp) = compiler_info(0); - my $ext = $cpp ? 'extern "C"' : "extern"; - my $exta = $cpp ? 'extern "C"' : "static"; - my $extb = $cpp ? 'extern "C"' : ""; - foreach my $enc (sort cmp_name keys %encoding) - { - # my ($e2u,$u2e,$rep,$min_el,$max_el,$rsym) = @{$encoding{$enc}}; - my ($e2u,$u2e,$rep,$min_el,$max_el) = @{$encoding{$enc}}; - #my @info = ($e2u->{Cname},$u2e->{Cname},$rsym,length($rep),$min_el,$max_el); - my $replen = 0; - $replen++ while($rep =~ /\G\\x[0-9A-Fa-f]/g); - my $sym = "${enc}_encoding"; - $sym =~ s/\W+/_/g; - my @info = ($e2u->{Cname},$u2e->{Cname},"${sym}_rep_character",$replen, - $min_el,$max_el); - print C "${exta} const U8 ${sym}_rep_character[] = \"$rep\";\n"; - print C "${exta} const char ${sym}_enc_name[] = \"$enc\";\n\n"; - print C "${extb} const encode_t $sym = \n"; - # This is to make null encoding work -- dankogai - for (my $i = (scalar @info) - 1; $i >= 0; --$i){ - $info[$i] ||= 1; - } - # end of null tweak -- dankogai - print C " {",join(',',@info,"{${sym}_enc_name,(const char *)0}"),"};\n\n"; - } - - foreach my $enc (sort cmp_name keys %encoding) - { - my $sym = "${enc}_encoding"; - $sym =~ s/\W+/_/g; - print H "${ext} encode_t $sym;\n"; - print D " Encode_XSEncoding(aTHX_ &$sym);\n"; - } - - if ($cname =~ /(\w+)\.xs$/) - { - my $mod = $1; - print C <<'END'; - -static void -Encode_XSEncoding(pTHX_ encode_t *enc) -{ - dSP; - HV *stash = gv_stashpv("Encode::XS", TRUE); - SV *iv = newSViv(PTR2IV(enc)); - SV *sv = sv_bless(newRV_noinc(iv),stash); - int i = 0; - /* with the SvLEN() == 0 hack, PVX won't be freed. We cast away name's - constness, in the hope that perl won't mess with it. */ - assert(SvTYPE(iv) >= SVt_PV); assert(SvLEN(iv) == 0); - SvFLAGS(iv) |= SVp_POK; - SvPVX(iv) = (char*) enc->name[0]; - PUSHMARK(sp); - XPUSHs(sv); - while (enc->name[i]) - { - const char *name = enc->name[i++]; - XPUSHs(sv_2mortal(newSVpvn(name,strlen(name)))); - } - PUTBACK; - call_pv("Encode::define_encoding",G_DISCARD); - SvREFCNT_dec(sv); -} - -END - - print C "\nMODULE = Encode::$mod\tPACKAGE = Encode::$mod\n\n"; - print C "BOOT:\n{\n"; - print C "#include \"$dname\"\n"; - print C "}\n"; - } - # Close in void context is bad, m'kay - close(D) or warn "Error closing '$dname': $!"; - close(H) or warn "Error closing '$hname': $!"; - - my $perc_saved = $saved/($strings + $saved) * 100; - my $perc_subsaved = $subsave/($strings + $subsave) * 100; - verbosef "%d bytes in string tables\n",$strings; - verbosef "%d bytes (%.3g%%) saved spotting duplicates\n", - $saved, $perc_saved if $saved; - verbosef "%d bytes (%.3g%%) saved using substrings\n", - $subsave, $perc_subsaved if $subsave; - } -elsif ($doEnc) - { - foreach my $name (sort cmp_name keys %encoding) - { - my ($e2u,$u2e,$erep,$min_el,$max_el) = @{$encoding{$name}}; - output_enc(\*C,$name,$e2u); - } - } -elsif ($doUcm) - { - foreach my $name (sort cmp_name keys %encoding) - { - my ($e2u,$u2e,$erep,$min_el,$max_el) = @{$encoding{$name}}; - output_ucm(\*C,$name,$u2e,$erep,$min_el,$max_el); - } - } - -# writing half meg files and then not checking to see if you just filled the -# disk is bad, m'kay -close(C) or die "Error closing '$cname': $!"; - -# End of the main program. - -sub compile_ucm -{ - my ($fh,$name) = @_; - my $e2u = {}; - my $u2e = {}; - my $cs; - my %attr; - while (<$fh>) - { - s/#.*$//; - last if /^\s*CHARMAP\s*$/i; - if (/^\s*<(\w+)>\s+"?([^"]*)"?\s*$/i) # " # Grrr - { - $attr{$1} = $2; - } - } - if (!defined($cs = $attr{'code_set_name'})) - { - warn "No <code_set_name> in $name\n"; - } - else - { - $name = $cs unless exists $opt{'n'}; - } - my $erep; - my $urep; - my $max_el; - my $min_el; - if (exists $attr{'subchar'}) - { - #my @byte; - #$attr{'subchar'} =~ /^\s*/cg; - #push(@byte,$1) while $attr{'subchar'} =~ /\G\\x([0-9a-f]+)/icg; - #$erep = join('',map(chr(hex($_)),@byte)); - $erep = $attr{'subchar'}; - $erep =~ s/^\s+//; $erep =~ s/\s+$//; - } - print "Reading $name ($cs)\n" - unless defined $ENV{MAKEFLAGS} - and $ENV{MAKEFLAGS} =~ /\b(s|silent|quiet)\b/; - my $nfb = 0; - my $hfb = 0; - while (<$fh>) - { - s/#.*$//; - last if /^\s*END\s+CHARMAP\s*$/i; - next if /^\s*$/; - my (@uni, @byte) = (); - my ($uni, $byte, $fb) = m/^(\S+)\s+(\S+)\s+(\S+)\s+/o - or die "Bad line: $_"; - while ($uni =~ m/\G<([U0-9a-fA-F\+]+)>/g){ - push @uni, map { substr($_, 1) } split(/\+/, $1); - } - while ($byte =~ m/\G\\x([0-9a-fA-F]+)/g){ - push @byte, $1; - } - if (@uni) - { - my $uch = join('', map { encode_U(hex($_)) } @uni ); - my $ech = join('',map(chr(hex($_)),@byte)); - my $el = length($ech); - $max_el = $el if (!defined($max_el) || $el > $max_el); - $min_el = $el if (!defined($min_el) || $el < $min_el); - if (length($fb)) - { - $fb = substr($fb,1); - $hfb++; - } - else - { - $nfb++; - $fb = '0'; - } - # $fb is fallback flag - # 0 - round trip safe - # 1 - fallback for unicode -> enc - # 2 - skip sub-char mapping - # 3 - fallback enc -> unicode - enter($u2e,$uch,$ech,$u2e,$fb+0) if ($fb =~ /[01]/); - enter($e2u,$ech,$uch,$e2u,$fb+0) if ($fb =~ /[03]/); - } - else - { - warn $_; - } - } - if ($nfb && $hfb) - { - die "$nfb entries without fallback, $hfb entries with\n"; - } - $encoding{$name} = [$e2u,$u2e,$erep,$min_el,$max_el]; -} - - - -sub compile_enc -{ - my ($fh,$name) = @_; - my $e2u = {}; - my $u2e = {}; - - my $type; - while ($type = <$fh>) - { - last if $type !~ /^\s*#/; - } - chomp($type); - return if $type eq 'E'; - # Do the hash lookup once, rather than once per function call. 4% speedup. - my $type_func = $encode_types{$type}; - my ($def,$sym,$pages) = split(/\s+/,scalar(<$fh>)); - warn "$type encoded $name\n"; - my $rep = ''; - # Save a defined test by setting these to defined values. - my $min_el = ~0; # A very big integer - my $max_el = 0; # Anything must be longer than 0 - { - my $v = hex($def); - $rep = &$type_func($v & 0xFF, ($v >> 8) & 0xffe); - } - my $errors; - my $seen; - # use -Q to silence the seen test. Makefile.PL uses this by default. - $seen = {} unless $opt{Q}; - do - { - my $line = <$fh>; - chomp($line); - my $page = hex($line); - my $ch = 0; - my $i = 16; - do - { - # So why is it 1% faster to leave the my here? - my $line = <$fh>; - $line =~ s/\r\n$/\n/; - die "$.:${line}Line should be exactly 65 characters long including - newline (".length($line).")" unless length ($line) == 65; - # Split line into groups of 4 hex digits, convert groups to ints - # This takes 65.35 - # map {hex $_} $line =~ /(....)/g - # This takes 63.75 (2.5% less time) - # unpack "n*", pack "H*", $line - # There's an implicit loop in map. Loops are bad, m'kay. Ops are bad, m'kay - # Doing it as while ($line =~ /(....)/g) took 74.63 - foreach my $val (unpack "n*", pack "H*", $line) - { - next if $val == 0xFFFD; - my $ech = &$type_func($ch,$page); - if ($val || (!$ch && !$page)) - { - my $el = length($ech); - $max_el = $el if $el > $max_el; - $min_el = $el if $el < $min_el; - my $uch = encode_U($val); - if ($seen) { - # We're doing the test. - # We don't need to read this quickly, so storing it as a scalar, - # rather than 3 (anon array, plus the 2 scalars it holds) saves - # RAM and may make us faster on low RAM systems. [see __END__] - if (exists $seen->{$uch}) - { - warn sprintf("U%04X is %02X%02X and %04X\n", - $val,$page,$ch,$seen->{$uch}); - $errors++; - } - else - { - $seen->{$uch} = $page << 8 | $ch; - } - } - # Passing 2 extra args each time is 3.6% slower! - # Even with having to add $fallback ||= 0 later - enter_fb0($e2u,$ech,$uch); - enter_fb0($u2e,$uch,$ech); - } - else - { - # No character at this position - # enter($e2u,$ech,undef,$e2u); - } - $ch++; - } - } while --$i; - } while --$pages; - die "\$min_el=$min_el, \$max_el=$max_el - seems we read no lines" - if $min_el > $max_el; - die "$errors mapping conflicts\n" if ($errors && $opt{'S'}); - $encoding{$name} = [$e2u,$u2e,$rep,$min_el,$max_el]; -} - -# my ($a,$s,$d,$t,$fb) = @_; -sub enter { - my ($current,$inbytes,$outbytes,$next,$fallback) = @_; - # state we shift to after this (multibyte) input character defaults to same - # as current state. - $next ||= $current; - # Making sure it is defined seems to be faster than {no warnings;} in - # &process, or passing it in as 0 explicitly. - # XXX $fallback ||= 0; - - # Start at the beginning and work forwards through the string to zero. - # effectively we are removing 1 character from the front each time - # but we don't actually edit the string. [this alone seems to be 14% speedup] - # Hence -$pos is the length of the remaining string. - my $pos = -length $inbytes; - while (1) { - my $byte = substr $inbytes, $pos, 1; - # RAW_NEXT => 0, - # RAW_IN_LEN => 1, - # RAW_OUT_BYTES => 2, - # RAW_FALLBACK => 3, - # to unicode an array would seem to be better, because the pages are dense. - # from unicode can be very sparse, favouring a hash. - # hash using the bytes (all length 1) as keys rather than ord value, - # as it's easier to sort these in &process. - - # It's faster to always add $fallback even if it's undef, rather than - # choosing between 3 and 4 element array. (hence why we set it defined - # above) - my $do_now = $current->{Raw}{$byte} ||= [{},-$pos,'',$fallback]; - # When $pos was -1 we were at the last input character. - unless (++$pos) { - $do_now->[RAW_OUT_BYTES] = $outbytes; - $do_now->[RAW_NEXT] = $next; - return; - } - # Tail recursion. The intermediate state may not have a name yet. - $current = $do_now->[RAW_NEXT]; - } -} - -# This is purely for optimisation. It's just &enter hard coded for $fallback -# of 0, using only a 3 entry array ref to save memory for every entry. -sub enter_fb0 { - my ($current,$inbytes,$outbytes,$next) = @_; - $next ||= $current; - - my $pos = -length $inbytes; - while (1) { - my $byte = substr $inbytes, $pos, 1; - my $do_now = $current->{Raw}{$byte} ||= [{},-$pos,'']; - unless (++$pos) { - $do_now->[RAW_OUT_BYTES] = $outbytes; - $do_now->[RAW_NEXT] = $next; - return; - } - $current = $do_now->[RAW_NEXT]; - } -} - -sub process -{ - my ($name,$a) = @_; - $name =~ s/\W+/_/g; - $a->{Cname} = $name; - my $raw = $a->{Raw}; - my ($l, $agg_max_in, $agg_next, $agg_in_len, $agg_out_len, $agg_fallback); - my @ent; - $agg_max_in = 0; - foreach my $key (sort keys %$raw) { - # RAW_NEXT => 0, - # RAW_IN_LEN => 1, - # RAW_OUT_BYTES => 2, - # RAW_FALLBACK => 3, - my ($next, $in_len, $out_bytes, $fallback) = @{$raw->{$key}}; - # Now we are converting from raw to aggregate, switch from 1 byte strings - # to numbers - my $b = ord $key; - $fallback ||= 0; - if ($l && - # If this == fails, we're going to reset $agg_max_in below anyway. - $b == ++$agg_max_in && - # References in numeric context give the pointer as an int. - $agg_next == $next && - $agg_in_len == $in_len && - $agg_out_len == length $out_bytes && - $agg_fallback == $fallback - # && length($l->[AGG_OUT_BYTES]) < 16 - ) { - # my $i = ord($b)-ord($l->[AGG_MIN_IN]); - # we can aggregate this byte onto the end. - $l->[AGG_MAX_IN] = $b; - $l->[AGG_OUT_BYTES] .= $out_bytes; - } else { - # AGG_MIN_IN => 0, - # AGG_MAX_IN => 1, - # AGG_OUT_BYTES => 2, - # AGG_NEXT => 3, - # AGG_IN_LEN => 4, - # AGG_OUT_LEN => 5, - # AGG_FALLBACK => 6, - # Reset the last thing we saw, plus set 5 lexicals to save some derefs. - # (only gains .6% on euc-jp -- is it worth it?) - push @ent, $l = [$b, $agg_max_in = $b, $out_bytes, $agg_next = $next, - $agg_in_len = $in_len, $agg_out_len = length $out_bytes, - $agg_fallback = $fallback]; - } - if (exists $next->{Cname}) { - $next->{'Forward'} = 1 if $next != $a; - } else { - process(sprintf("%s_%02x",$name,$b),$next); - } - } - # encengine.c rules say that last entry must be for 255 - if ($agg_max_in < 255) { - push @ent, [1+$agg_max_in, 255,undef,$a,0,0]; - } - $a->{'Entries'} = \@ent; -} - - -sub addstrings -{ - my ($fh,$a) = @_; - my $name = $a->{'Cname'}; - # String tables - foreach my $b (@{$a->{'Entries'}}) - { - next unless $b->[AGG_OUT_LEN]; - $strings{$b->[AGG_OUT_BYTES]} = undef; - } - if ($a->{'Forward'}) - { - my ($cpp, $static, $sized) = compiler_info(1); - my $count = $sized ? scalar(@{$a->{'Entries'}}) : ''; - if ($static) { - # we cannot ask Config for d_plusplus since we can override CC=g++-6 on the cmdline - print $fh "#ifdef __cplusplus\n"; # -fpermissive since g++-6 - print $fh "extern encpage_t $name\[$count];\n"; - print $fh "#else\n"; - print $fh "static const encpage_t $name\[$count];\n"; - print $fh "#endif\n"; - } else { - print $fh "extern encpage_t $name\[$count];\n"; - } - } - $a->{'DoneStrings'} = 1; - foreach my $b (@{$a->{'Entries'}}) - { - my ($s,$e,$out,$t,$end,$l) = @$b; - addstrings($fh,$t) unless $t->{'DoneStrings'}; - } -} - -sub outbigstring -{ - my ($fh,$name) = @_; - - $string_acc = ''; - - # Make the big string in the string accumulator. Longest first, on the hope - # that this makes it more likely that we find the short strings later on. - # Not sure if it helps sorting strings of the same length lexically. - foreach my $s (sort {length $b <=> length $a || $a cmp $b} keys %strings) { - my $index = index $string_acc, $s; - if ($index >= 0) { - $saved += length($s); - $strings_in_acc{$s} = $index; - } else { - OPTIMISER: { - if ($opt{'O'}) { - my $sublength = length $s; - while (--$sublength > 0) { - # progressively lop characters off the end, to see if the start of - # the new string overlaps the end of the accumulator. - if (substr ($string_acc, -$sublength) - eq substr ($s, 0, $sublength)) { - $subsave += $sublength; - $strings_in_acc{$s} = length ($string_acc) - $sublength; - # append the last bit on the end. - $string_acc .= substr ($s, $sublength); - last OPTIMISER; - } - # or if the end of the new string overlaps the start of the - # accumulator - next unless substr ($string_acc, 0, $sublength) - eq substr ($s, -$sublength); - # well, the last $sublength characters of the accumulator match. - # so as we're prepending to the accumulator, need to shift all our - # existing offsets forwards - $_ += $sublength foreach values %strings_in_acc; - $subsave += $sublength; - $strings_in_acc{$s} = 0; - # append the first bit on the start. - $string_acc = substr ($s, 0, -$sublength) . $string_acc; - last OPTIMISER; - } - } - # Optimiser (if it ran) found nothing, so just going have to tack the - # whole thing on the end. - $strings_in_acc{$s} = length $string_acc; - $string_acc .= $s; - }; - } - } - - $strings = length $string_acc; - my ($cpp) = compiler_info(0); - my $var = $cpp ? '' : 'static'; - my $definition = "\n$var const U8 $name\[$strings] = { " . - join(',',unpack "C*",$string_acc); - # We have a single long line. Split it at convenient commas. - print $fh $1, "\n" while $definition =~ /\G(.{74,77},)/gcs; - print $fh substr ($definition, pos $definition), " };\n"; -} - -sub findstring { - my ($name,$s) = @_; - my $offset = $strings_in_acc{$s}; - die "Can't find string " . join (',',unpack "C*",$s) . " in accumulator" - unless defined $offset; - "$name + $offset"; -} - -sub outtable -{ - my ($fh,$a,$bigname) = @_; - my $name = $a->{'Cname'}; - $a->{'Done'} = 1; - foreach my $b (@{$a->{'Entries'}}) - { - my ($s,$e,$out,$t,$end,$l) = @$b; - outtable($fh,$t,$bigname) unless $t->{'Done'}; - } - my ($cpp, $static) = compiler_info(0); - my $count = scalar(@{$a->{'Entries'}}); - if ($static) { - print $fh "#ifdef __cplusplus\n"; # -fpermissive since g++-6 - print $fh "encpage_t $name\[$count] = {\n"; - print $fh "#else\n"; - print $fh "static const encpage_t $name\[$count] = {\n"; - print $fh "#endif\n"; - } else { - print $fh "\nencpage_t $name\[$count] = {\n"; - } - foreach my $b (@{$a->{'Entries'}}) - { - my ($sc,$ec,$out,$t,$end,$l,$fb) = @$b; - # $end |= 0x80 if $fb; # what the heck was on your mind, Nick? -- Dan - print $fh "{"; - if ($l) - { - printf $fh findstring($bigname,$out); - } - else - { - print $fh "0"; - } - print $fh ",",$t->{Cname}; - printf $fh ",0x%02x,0x%02x,$l,$end},\n",$sc,$ec; - } - print $fh "};\n"; -} - -sub output_enc -{ - my ($fh,$name,$a) = @_; - die "Changed - fix me for new structure"; - foreach my $b (sort keys %$a) - { - my ($s,$e,$out,$t,$end,$l,$fb) = @{$a->{$b}}; - } -} - -sub decode_U -{ - my $s = shift; -} - -my @uname; -sub char_names -{ - my $s = do "unicore/Name.pl"; - die "char_names: unicore/Name.pl: $!\n" unless defined $s; - pos($s) = 0; - while ($s =~ /\G([0-9a-f]+)\t([0-9a-f]*)\t(.*?)\s*\n/igc) - { - my $name = $3; - my $s = hex($1); - last if $s >= 0x10000; - my $e = length($2) ? hex($2) : $s; - for (my $i = $s; $i <= $e; $i++) - { - $uname[$i] = $name; -# print sprintf("U%04X $name\n",$i); - } - } -} - -sub output_ucm_page -{ - my ($cmap,$a,$t,$pre) = @_; - # warn sprintf("Page %x\n",$pre); - my $raw = $t->{Raw}; - foreach my $key (sort keys %$raw) { - # RAW_NEXT => 0, - # RAW_IN_LEN => 1, - # RAW_OUT_BYTES => 2, - # RAW_FALLBACK => 3, - my ($next, $in_len, $out_bytes, $fallback) = @{$raw->{$key}}; - my $u = ord $key; - $fallback ||= 0; - - if ($next != $a && $next != $t) { - output_ucm_page($cmap,$a,$next,(($pre|($u &0x3F)) << 6)&0xFFFF); - } elsif (length $out_bytes) { - if ($pre) { - $u = $pre|($u &0x3f); - } - my $s = sprintf "<U%04X> ",$u; - #foreach my $c (split(//,$out_bytes)) { - # $s .= sprintf "\\x%02X",ord($c); - #} - # 9.5% faster changing that loop to this: - $s .= sprintf +("\\x%02X" x length $out_bytes), unpack "C*", $out_bytes; - $s .= sprintf " |%d # %s\n",($fallback ? 1 : 0),$uname[$u]; - push(@$cmap,$s); - } else { - warn join(',',$u, @{$raw->{$key}},$a,$t); - } - } -} - -sub output_ucm -{ - my ($fh,$name,$h,$rep,$min_el,$max_el) = @_; - print $fh "# $0 @orig_ARGV\n" unless $opt{'q'}; - print $fh "<code_set_name> \"$name\"\n"; - char_names(); - if (defined $min_el) - { - print $fh "<mb_cur_min> $min_el\n"; - } - if (defined $max_el) - { - print $fh "<mb_cur_max> $max_el\n"; - } - if (defined $rep) - { - print $fh "<subchar> "; - foreach my $c (split(//,$rep)) - { - printf $fh "\\x%02X",ord($c); - } - print $fh "\n"; - } - my @cmap; - output_ucm_page(\@cmap,$h,$h,0); - print $fh "#\nCHARMAP\n"; - foreach my $line (sort { substr($a,8) cmp substr($b,8) } @cmap) - { - print $fh $line; - } - print $fh "END CHARMAP\n"; -} - -use vars qw( - $_Enc2xs - $_Version - $_Inc - $_E2X - $_Name - $_TableFiles - $_Now -); - -sub find_e2x{ - eval { require File::Find; }; - my (@inc, %e2x_dir); - for my $inc (@INC){ - push @inc, $inc unless $inc eq '.'; #skip current dir - } - File::Find::find( - sub { - my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, - $atime,$mtime,$ctime,$blksize,$blocks) - = lstat($_) or return; - -f _ or return; - if (/^.*\.e2x$/o){ - no warnings 'once'; - $e2x_dir{$File::Find::dir} ||= $mtime; - } - return; - }, @inc); - warn join("\n", keys %e2x_dir), "\n"; - for my $d (sort {$e2x_dir{$a} <=> $e2x_dir{$b}} keys %e2x_dir){ - $_E2X = $d; - # warn "$_E2X => ", scalar localtime($e2x_dir{$d}); - return $_E2X; - } -} - -sub make_makefile_pl -{ - eval { require Encode } or die "You need to install Encode to use enc2xs -M\nerror: $@\n"; - # our used for variable expansion - $_Enc2xs = $0; - $_Version = $VERSION; - $_E2X = find_e2x(); - $_Name = shift; - $_TableFiles = join(",", map {qq('$_')} @_); - $_Now = scalar localtime(); - - eval { require File::Spec; }; - _print_expand(File::Spec->catfile($_E2X,"Makefile_PL.e2x"),"Makefile.PL"); - _print_expand(File::Spec->catfile($_E2X,"_PM.e2x"), "$_Name.pm"); - _print_expand(File::Spec->catfile($_E2X,"_T.e2x"), "t/$_Name.t"); - _print_expand(File::Spec->catfile($_E2X,"README.e2x"), "README"); - _print_expand(File::Spec->catfile($_E2X,"Changes.e2x"), "Changes"); - exit; -} - -use vars qw( - $_ModLines - $_LocalVer - ); - -sub make_configlocal_pm { - eval { require Encode } or die "Unable to require Encode: $@\n"; - eval { require File::Spec; }; - - # our used for variable expantion - my %in_core = map { $_ => 1 } ( - 'ascii', 'iso-8859-1', 'utf8', - 'ascii-ctrl', 'null', 'utf-8-strict' - ); - my %LocalMod = (); - # check @enc; - use File::Find (); - my $wanted = sub{ - -f $_ or return; - $File::Find::name =~ /\A\./ and return; - $File::Find::name =~ /\.pm\z/ or return; - $File::Find::name =~ m/\bEncode\b/ or return; - my $mod = $File::Find::name; - $mod =~ s/.*\bEncode\b/Encode/o; - $mod =~ s/\.pm\z//o; - $mod =~ s,/,::,og; - eval qq{ require $mod; } or return; - warn qq{ require $mod;\n}; - for my $enc ( Encode->encodings() ) { - no warnings; - $in_core{$enc} and next; - $Encode::Config::ExtModule{$enc} and next; - $LocalMod{$enc} ||= $mod; - } - }; - File::Find::find({wanted => $wanted}, @INC); - $_ModLines = ""; - for my $enc ( sort keys %LocalMod ) { - $_ModLines .= - qq(\$Encode::ExtModule{'$enc'} = "$LocalMod{$enc}";\n); - } - warn $_ModLines if $_ModLines; - $_LocalVer = _mkversion(); - $_E2X = find_e2x(); - $_Inc = $INC{"Encode.pm"}; - $_Inc =~ s/\.pm$//o; - _print_expand( File::Spec->catfile( $_E2X, "ConfigLocal_PM.e2x" ), - File::Spec->catfile( $_Inc, "ConfigLocal.pm" ), 1 ); - exit; -} - -sub _mkversion{ - # v-string is now depreciated; use time() instead; - #my ($ss,$mm,$hh,$dd,$mo,$yyyy) = localtime(); - #$yyyy += 1900, $mo +=1; - #return sprintf("v%04d.%04d.%04d", $yyyy, $mo*100+$dd, $hh*100+$mm); - return time(); -} - -sub _print_expand{ - eval { require File::Basename } or die "File::Basename needed. Are you on miniperl?;\nerror: $@\n"; - File::Basename->import(); - my ($src, $dst, $clobber) = @_; - if (!$clobber and -e $dst){ - warn "$dst exists. skipping\n"; - return; - } - warn "Generating $dst...\n"; - open my $in, $src or die "$src : $!"; - if ((my $d = dirname($dst)) ne '.'){ - -d $d or mkdir $d, 0755 or die "mkdir $d : $!"; - } - open my $out, ">", $dst or die "$!"; - my $asis = 0; - while (<$in>){ - if (/^#### END_OF_HEADER/){ - $asis = 1; next; - } - s/(\$_[A-Z][A-Za-z0-9]+)_/$1/gee unless $asis; - print $out $_; - } -} -__END__ - -=head1 NAME - -enc2xs -- Perl Encode Module Generator - -=head1 SYNOPSIS - - enc2xs -[options] - enc2xs -M ModName mapfiles... - enc2xs -C - -=head1 DESCRIPTION - -F<enc2xs> builds a Perl extension for use by Encode from either -Unicode Character Mapping files (.ucm) or Tcl Encoding Files (.enc). -Besides being used internally during the build process of the Encode -module, you can use F<enc2xs> to add your own encoding to perl. -No knowledge of XS is necessary. - -=head1 Quick Guide - -If you want to know as little about Perl as possible but need to -add a new encoding, just read this chapter and forget the rest. - -=over 4 - -=item 0.Z<> - -Have a .ucm file ready. You can get it from somewhere or you can write -your own from scratch or you can grab one from the Encode distribution -and customize it. For the UCM format, see the next Chapter. In the -example below, I'll call my theoretical encoding myascii, defined -in I<my.ucm>. C<$> is a shell prompt. - - $ ls -F - my.ucm - -=item 1.Z<> - -Issue a command as follows; - - $ enc2xs -M My my.ucm - generating Makefile.PL - generating My.pm - generating README - generating Changes - -Now take a look at your current directory. It should look like this. - - $ ls -F - Makefile.PL My.pm my.ucm t/ - -The following files were created. - - Makefile.PL - MakeMaker script - My.pm - Encode submodule - t/My.t - test file - -=over 4 - -=item 1.1.Z<> - -If you want *.ucm installed together with the modules, do as follows; - - $ mkdir Encode - $ mv *.ucm Encode - $ enc2xs -M My Encode/*ucm - -=back - -=item 2.Z<> - -Edit the files generated. You don't have to if you have no time AND no -intention to give it to someone else. But it is a good idea to edit -the pod and to add more tests. - -=item 3.Z<> - -Now issue a command all Perl Mongers love: - - $ perl Makefile.PL - Writing Makefile for Encode::My - -=item 4.Z<> - -Now all you have to do is make. - - $ make - cp My.pm blib/lib/Encode/My.pm - /usr/local/bin/perl /usr/local/bin/enc2xs -Q -O \ - -o encode_t.c -f encode_t.fnm - Reading myascii (myascii) - Writing compiled form - 128 bytes in string tables - 384 bytes (75%) saved spotting duplicates - 1 bytes (0.775%) saved using substrings - .... - chmod 644 blib/arch/auto/Encode/My/My.bs - $ - -The time it takes varies depending on how fast your machine is and -how large your encoding is. Unless you are working on something big -like euc-tw, it won't take too long. - -=item 5.Z<> - -You can "make install" already but you should test first. - - $ make test - PERL_DL_NONLAZY=1 /usr/local/bin/perl -Iblib/arch -Iblib/lib \ - -e 'use Test::Harness qw(&runtests $verbose); \ - $verbose=0; runtests @ARGV;' t/*.t - t/My....ok - All tests successful. - Files=1, Tests=2, 0 wallclock secs - ( 0.09 cusr + 0.01 csys = 0.09 CPU) - -=item 6.Z<> - -If you are content with the test result, just "make install" - -=item 7.Z<> - -If you want to add your encoding to Encode's demand-loading list -(so you don't have to "use Encode::YourEncoding"), run - - enc2xs -C - -to update Encode::ConfigLocal, a module that controls local settings. -After that, "use Encode;" is enough to load your encodings on demand. - -=back - -=head1 The Unicode Character Map - -Encode uses the Unicode Character Map (UCM) format for source character -mappings. This format is used by IBM's ICU package and was adopted -by Nick Ing-Simmons for use with the Encode module. Since UCM is -more flexible than Tcl's Encoding Map and far more user-friendly, -this is the recommended format for Encode now. - -A UCM file looks like this. - - # - # Comments - # - <code_set_name> "US-ascii" # Required - <code_set_alias> "ascii" # Optional - <mb_cur_min> 1 # Required; usually 1 - <mb_cur_max> 1 # Max. # of bytes/char - <subchar> \x3F # Substitution char - # - CHARMAP - <U0000> \x00 |0 # <control> - <U0001> \x01 |0 # <control> - <U0002> \x02 |0 # <control> - .... - <U007C> \x7C |0 # VERTICAL LINE - <U007D> \x7D |0 # RIGHT CURLY BRACKET - <U007E> \x7E |0 # TILDE - <U007F> \x7F |0 # <control> - END CHARMAP - -=over 4 - -=item * - -Anything that follows C<#> is treated as a comment. - -=item * - -The header section continues until a line containing the word -CHARMAP. This section has a form of I<E<lt>keywordE<gt> value>, one -pair per line. Strings used as values must be quoted. Barewords are -treated as numbers. I<\xXX> represents a byte. - -Most of the keywords are self-explanatory. I<subchar> means -substitution character, not subcharacter. When you decode a Unicode -sequence to this encoding but no matching character is found, the byte -sequence defined here will be used. For most cases, the value here is -\x3F; in ASCII, this is a question mark. - -=item * - -CHARMAP starts the character map section. Each line has a form as -follows: - - <UXXXX> \xXX.. |0 # comment - ^ ^ ^ - | | +- Fallback flag - | +-------- Encoded byte sequence - +-------------- Unicode Character ID in hex - -The format is roughly the same as a header section except for the -fallback flag: | followed by 0..3. The meaning of the possible -values is as follows: - -=over 4 - -=item |0 - -Round trip safe. A character decoded to Unicode encodes back to the -same byte sequence. Most characters have this flag. - -=item |1 - -Fallback for unicode -> encoding. When seen, enc2xs adds this -character for the encode map only. - -=item |2 - -Skip sub-char mapping should there be no code point. - -=item |3 - -Fallback for encoding -> unicode. When seen, enc2xs adds this -character for the decode map only. - -=back - -=item * - -And finally, END OF CHARMAP ends the section. - -=back - -When you are manually creating a UCM file, you should copy ascii.ucm -or an existing encoding which is close to yours, rather than write -your own from scratch. - -When you do so, make sure you leave at least B<U0000> to B<U0020> as -is, unless your environment is EBCDIC. - -B<CAVEAT>: not all features in UCM are implemented. For example, -icu:state is not used. Because of that, you need to write a perl -module if you want to support algorithmical encodings, notably -the ISO-2022 series. Such modules include L<Encode::JP::2022_JP>, -L<Encode::KR::2022_KR>, and L<Encode::TW::HZ>. - -=head2 Coping with duplicate mappings - -When you create a map, you SHOULD make your mappings round-trip safe. -That is, C<encode('your-encoding', decode('your-encoding', $data)) eq -$data> stands for all characters that are marked as C<|0>. Here is -how to make sure: - -=over 4 - -=item * - -Sort your map in Unicode order. - -=item * - -When you have a duplicate entry, mark either one with '|1' or '|3'. - -=item * - -And make sure the '|1' or '|3' entry FOLLOWS the '|0' entry. - -=back - -Here is an example from big5-eten. - - <U2550> \xF9\xF9 |0 - <U2550> \xA2\xA4 |3 - -Internally Encoding -> Unicode and Unicode -> Encoding Map looks like -this; - - E to U U to E - -------------------------------------- - \xF9\xF9 => U2550 U2550 => \xF9\xF9 - \xA2\xA4 => U2550 - -So it is round-trip safe for \xF9\xF9. But if the line above is upside -down, here is what happens. - - E to U U to E - -------------------------------------- - \xA2\xA4 => U2550 U2550 => \xF9\xF9 - (\xF9\xF9 => U2550 is now overwritten!) - -The Encode package comes with F<ucmlint>, a crude but sufficient -utility to check the integrity of a UCM file. Check under the -Encode/bin directory for this. - -When in doubt, you can use F<ucmsort>, yet another utility under -Encode/bin directory. - -=head1 Bookmarks - -=over 4 - -=item * - -ICU Home Page -L<http://www.icu-project.org/> - -=item * - -ICU Character Mapping Tables -L<http://site.icu-project.org/charts/charset> - -=item * - -ICU:Conversion Data -L<http://www.icu-project.org/userguide/conversion-data.html> - -=back - -=head1 SEE ALSO - -L<Encode>, -L<perlmod>, -L<perlpod> - -=cut - -# -Q to disable the duplicate codepoint test -# -S make mapping errors fatal -# -q to remove comments written to output files -# -O to enable the (brute force) substring optimiser -# -o <output> to specify the output file name (else it's the first arg) -# -f <inlist> to give a file with a list of input files (else use the args) -# -n <name> to name the encoding (else use the basename of the input file. - -With %seen holding array refs: - - 865.66 real 28.80 user 8.79 sys - 7904 maximum resident set size - 1356 average shared memory size - 18566 average unshared data size - 229 average unshared stack size - 46080 page reclaims - 33373 page faults - -With %seen holding simple scalars: - - 342.16 real 27.11 user 3.54 sys - 8388 maximum resident set size - 1394 average shared memory size - 14969 average unshared data size - 236 average unshared stack size - 28159 page reclaims - 9839 page faults - -Yes, 5 minutes is faster than 15. Above is for CP936 in CN. Only difference is -how %seen is storing things its seen. So it is pathalogically bad on a 16M -RAM machine, but it's going to help even on modern machines. -Swapping is bad, m'kay :-) diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/enc2xs.bat b/software/Slic3r-1.3.0.64bit/local-lib/bin/enc2xs.bat deleted file mode 100644 index 452d839a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/enc2xs.bat +++ /dev/null @@ -1,1508 +0,0 @@ -@rem = '--*-Perl-*-- -@echo off -if "%OS%" == "Windows_NT" goto WinNT -perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -goto endofperl -:WinNT -perl -x -S %0 %* -if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl -if %errorlevel% == 9009 echo You do not have Perl in your PATH. -if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul -goto endofperl -@rem '; -#!./perl -#line 15 -BEGIN { - # @INC poking no longer needed w/ new MakeMaker and Makefile.PL's - # with $ENV{PERL_CORE} set - # In case we need it in future... - require Config; import Config; - pop @INC if $INC[-1] eq '.'; -} -use strict; -use warnings; -use Getopt::Std; -use Config; -my @orig_ARGV = @ARGV; -our $VERSION = do { my @r = (q$Revision: 2.21 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; - -# These may get re-ordered. -# RAW is a do_now as inserted by &enter -# AGG is an aggregated do_now, as built up by &process - -use constant { - RAW_NEXT => 0, - RAW_IN_LEN => 1, - RAW_OUT_BYTES => 2, - RAW_FALLBACK => 3, - - AGG_MIN_IN => 0, - AGG_MAX_IN => 1, - AGG_OUT_BYTES => 2, - AGG_NEXT => 3, - AGG_IN_LEN => 4, - AGG_OUT_LEN => 5, - AGG_FALLBACK => 6, -}; - -# (See the algorithm in encengine.c - we're building structures for it) - -# There are two sorts of structures. -# "do_now" (an array, two variants of what needs storing) is whatever we need -# to do now we've read an input byte. -# It's housed in a "do_next" (which is how we got to it), and in turn points -# to a "do_next" which contains all the "do_now"s for the next input byte. - -# There will be a "do_next" which is the start state. -# For a single byte encoding it's the only "do_next" - each "do_now" points -# back to it, and each "do_now" will cause bytes. There is no state. - -# For a multi-byte encoding where all characters in the input are the same -# length, then there will be a tree of "do_now"->"do_next"->"do_now" -# branching out from the start state, one step for each input byte. -# The leaf "do_now"s will all be at the same distance from the start state, -# only the leaf "do_now"s cause output bytes, and they in turn point back to -# the start state. - -# For an encoding where there are variable length input byte sequences, you -# will encounter a leaf "do_now" sooner for the shorter input sequences, but -# as before the leaves will point back to the start state. - -# The system will cope with escape encodings (imagine them as a mostly -# self-contained tree for each escape state, and cross links between trees -# at the state-switching characters) but so far no input format defines these. - -# The system will also cope with having output "leaves" in the middle of -# the bifurcating branches, not just at the extremities, but again no -# input format does this yet. - -# There are two variants of the "do_now" structure. The first, smaller variant -# is generated by &enter as the input file is read. There is one structure -# for each input byte. Say we are mapping a single byte encoding to a -# single byte encoding, with "ABCD" going "abcd". There will be -# 4 "do_now"s, {"A" => [...,"a",...], "B" => [...,"b",...], "C"=>..., "D"=>...} - -# &process then walks the tree, building aggregate "do_now" structures for -# adjacent bytes where possible. The aggregate is for a contiguous range of -# bytes which each produce the same length of output, each move to the -# same next state, and each have the same fallback flag. -# So our 4 RAW "do_now"s above become replaced by a single structure -# containing: -# ["A", "D", "abcd", 1, ...] -# ie, for an input byte $_ in "A".."D", output 1 byte, found as -# substr ("abcd", (ord $_ - ord "A") * 1, 1) -# which maps very nicely into pointer arithmetic in C for encengine.c - -sub encode_U -{ - # UTF-8 encode long hand - only covers part of perl's range - ## my $uv = shift; - # chr() works in native space so convert value from table - # into that space before using chr(). - my $ch = chr(utf8::unicode_to_native($_[0])); - # Now get core perl to encode that the way it likes. - utf8::encode($ch); - return $ch; -} - -sub encode_S -{ - # encode single byte - ## my ($ch,$page) = @_; return chr($ch); - return chr $_[0]; -} - -sub encode_D -{ - # encode double byte MS byte first - ## my ($ch,$page) = @_; return chr($page).chr($ch); - return chr ($_[1]) . chr $_[0]; -} - -sub encode_M -{ - # encode Multi-byte - single for 0..255 otherwise double - ## my ($ch,$page) = @_; - ## return &encode_D if $page; - ## return &encode_S; - return chr ($_[1]) . chr $_[0] if $_[1]; - return chr $_[0]; -} - -my %encode_types = (U => \&encode_U, - S => \&encode_S, - D => \&encode_D, - M => \&encode_M, - ); - -# Win32 does not expand globs on command line -if ($^O eq 'MSWin32' and !$ENV{PERL_CORE}) { - eval "\@ARGV = map(glob(\$_),\@ARGV)"; - @ARGV = @orig_ARGV unless @ARGV; -} - -my %opt; -# I think these are: -# -Q to disable the duplicate codepoint test -# -S make mapping errors fatal -# -q to remove comments written to output files -# -O to enable the (brute force) substring optimiser -# -o <output> to specify the output file name (else it's the first arg) -# -f <inlist> to give a file with a list of input files (else use the args) -# -n <name> to name the encoding (else use the basename of the input file. -#Getopt::Long::Configure("bundling"); -#GetOptions(\%opt, qw(C M=s S Q q O o=s f=s n=s v)); -getopts('CM:SQqOo:f:n:v',\%opt); - -$opt{M} and make_makefile_pl($opt{M}, @ARGV); -$opt{C} and make_configlocal_pm($opt{C}, @ARGV); -$opt{v} ||= $ENV{ENC2XS_VERBOSE}; - -sub verbose { - print STDERR @_ if $opt{v}; -} -sub verbosef { - printf STDERR @_ if $opt{v}; -} - - -# ($cpp, $static, $sized) = compiler_info($declaration) -# -# return some information about the compiler and compile options we're using: -# -# $declaration - true if we're doing a declaration rather than a definition. -# -# $cpp - we're using C++ -# $static - ok to declare the arrays as static -# $sized - the array declarations should be sized - -sub compiler_info { - my ($declaration) = @_; - - my $ccflags = $Config{ccflags}; - if (defined $Config{ccwarnflags}) { - $ccflags .= " " . $Config{ccwarnflags}; - } - my $compat = $ccflags =~ /\Q-Wc++-compat/; - my $pedantic = $ccflags =~ /-pedantic/; - - my $cpp = ($Config{d_cplusplus} || '') eq 'define'; - - # The encpage_t tables contain recursive and mutually recursive - # references. To allow them to compile under C++ and some restrictive - # cc options, it may be necessary to make the tables non-static/const - # (thus moving them from the text to the data segment) and/or not - # include the size in the declaration. - - my $static = !( - $cpp - || ($compat && $pedantic) - || ($^O eq 'MacOS' && $declaration) - ); - - # -Wc++-compat on its own warns if the array declaration is sized. - # The easiest way to avoid this warning is simply not to include - # the size in the declaration. - # With -pedantic as well, the issue doesn't arise because $static - # above becomes false. - my $sized = $declaration && !($compat && !$pedantic); - - return ($cpp, $static, $sized); -} - - -# This really should go first, else the die here causes empty (non-erroneous) -# output files to be written. -my @encfiles; -if (exists $opt{f}) { - # -F is followed by name of file containing list of filenames - my $flist = $opt{f}; - open(FLIST,$flist) || die "Cannot open $flist:$!"; - chomp(@encfiles = <FLIST>); - close(FLIST); -} else { - @encfiles = @ARGV; -} - -my $cname = $opt{o} ? $opt{o} : shift(@ARGV); -unless ($cname) { #debuging a win32 nmake error-only. works via cmdline - print "\nARGV:"; - print "$_ " for @ARGV; - print "\nopt:"; - print " $_ => ",defined $opt{$_}?$opt{$_}:"undef","\n" for keys %opt; -} -chmod(0666,$cname) if -f $cname && !-w $cname; -open(C,">", $cname) || die "Cannot open $cname:$!"; - -my $dname = $cname; -my $hname = $cname; - -my ($doC,$doEnc,$doUcm,$doPet); - -if ($cname =~ /\.(c|xs)$/i) # VMS may have upcased filenames with DECC$ARGV_PARSE_STYLE defined - { - $doC = 1; - $dname =~ s/(\.[^\.]*)?$/.exh/; - chmod(0666,$dname) if -f $cname && !-w $dname; - open(D,">", $dname) || die "Cannot open $dname:$!"; - $hname =~ s/(\.[^\.]*)?$/.h/; - chmod(0666,$hname) if -f $cname && !-w $hname; - open(H,">", $hname) || die "Cannot open $hname:$!"; - - foreach my $fh (\*C,\*D,\*H) - { - print $fh <<"END" unless $opt{'q'}; -/* - !!!!!!! DO NOT EDIT THIS FILE !!!!!!! - This file was autogenerated by: - $^X $0 @orig_ARGV - enc2xs VERSION $VERSION -*/ -END - } - - if ($cname =~ /(\w+)\.xs$/) - { - print C "#define PERL_NO_GET_CONTEXT\n"; - print C "#include <EXTERN.h>\n"; - print C "#include <perl.h>\n"; - print C "#include <XSUB.h>\n"; - } - print C "#include \"encode.h\"\n\n"; - - } -elsif ($cname =~ /\.enc$/) - { - $doEnc = 1; - } -elsif ($cname =~ /\.ucm$/) - { - $doUcm = 1; - } -elsif ($cname =~ /\.pet$/) - { - $doPet = 1; - } - -my %encoding; -my %strings; -my $string_acc; -my %strings_in_acc; - -my $saved = 0; -my $subsave = 0; -my $strings = 0; - -sub cmp_name -{ - if ($a =~ /^.*-(\d+)/) - { - my $an = $1; - if ($b =~ /^.*-(\d+)/) - { - my $r = $an <=> $1; - return $r if $r; - } - } - return $a cmp $b; -} - - -foreach my $enc (sort cmp_name @encfiles) - { - my ($name,$sfx) = $enc =~ /^.*?([\w-]+)\.(enc|ucm)$/; - $name = $opt{'n'} if exists $opt{'n'}; - if (open(E,$enc)) - { - if ($sfx eq 'enc') - { - compile_enc(\*E,lc($name)); - } - else - { - compile_ucm(\*E,lc($name)); - } - } - else - { - warn "Cannot open $enc for $name:$!"; - } - } - -if ($doC) - { - verbose "Writing compiled form\n"; - foreach my $name (sort cmp_name keys %encoding) - { - my ($e2u,$u2e,$erep,$min_el,$max_el) = @{$encoding{$name}}; - process($name.'_utf8',$e2u); - addstrings(\*C,$e2u); - - process('utf8_'.$name,$u2e); - addstrings(\*C,$u2e); - } - outbigstring(\*C,"enctable"); - foreach my $name (sort cmp_name keys %encoding) - { - my ($e2u,$u2e,$erep,$min_el,$max_el) = @{$encoding{$name}}; - outtable(\*C,$e2u, "enctable"); - outtable(\*C,$u2e, "enctable"); - - # push(@{$encoding{$name}},outstring(\*C,$e2u->{Cname}.'_def',$erep)); - } - my ($cpp) = compiler_info(0); - my $ext = $cpp ? 'extern "C"' : "extern"; - my $exta = $cpp ? 'extern "C"' : "static"; - my $extb = $cpp ? 'extern "C"' : ""; - foreach my $enc (sort cmp_name keys %encoding) - { - # my ($e2u,$u2e,$rep,$min_el,$max_el,$rsym) = @{$encoding{$enc}}; - my ($e2u,$u2e,$rep,$min_el,$max_el) = @{$encoding{$enc}}; - #my @info = ($e2u->{Cname},$u2e->{Cname},$rsym,length($rep),$min_el,$max_el); - my $replen = 0; - $replen++ while($rep =~ /\G\\x[0-9A-Fa-f]/g); - my $sym = "${enc}_encoding"; - $sym =~ s/\W+/_/g; - my @info = ($e2u->{Cname},$u2e->{Cname},"${sym}_rep_character",$replen, - $min_el,$max_el); - print C "${exta} const U8 ${sym}_rep_character[] = \"$rep\";\n"; - print C "${exta} const char ${sym}_enc_name[] = \"$enc\";\n\n"; - print C "${extb} const encode_t $sym = \n"; - # This is to make null encoding work -- dankogai - for (my $i = (scalar @info) - 1; $i >= 0; --$i){ - $info[$i] ||= 1; - } - # end of null tweak -- dankogai - print C " {",join(',',@info,"{${sym}_enc_name,(const char *)0}"),"};\n\n"; - } - - foreach my $enc (sort cmp_name keys %encoding) - { - my $sym = "${enc}_encoding"; - $sym =~ s/\W+/_/g; - print H "${ext} encode_t $sym;\n"; - print D " Encode_XSEncoding(aTHX_ &$sym);\n"; - } - - if ($cname =~ /(\w+)\.xs$/) - { - my $mod = $1; - print C <<'END'; - -static void -Encode_XSEncoding(pTHX_ encode_t *enc) -{ - dSP; - HV *stash = gv_stashpv("Encode::XS", TRUE); - SV *iv = newSViv(PTR2IV(enc)); - SV *sv = sv_bless(newRV_noinc(iv),stash); - int i = 0; - /* with the SvLEN() == 0 hack, PVX won't be freed. We cast away name's - constness, in the hope that perl won't mess with it. */ - assert(SvTYPE(iv) >= SVt_PV); assert(SvLEN(iv) == 0); - SvFLAGS(iv) |= SVp_POK; - SvPVX(iv) = (char*) enc->name[0]; - PUSHMARK(sp); - XPUSHs(sv); - while (enc->name[i]) - { - const char *name = enc->name[i++]; - XPUSHs(sv_2mortal(newSVpvn(name,strlen(name)))); - } - PUTBACK; - call_pv("Encode::define_encoding",G_DISCARD); - SvREFCNT_dec(sv); -} - -END - - print C "\nMODULE = Encode::$mod\tPACKAGE = Encode::$mod\n\n"; - print C "BOOT:\n{\n"; - print C "#include \"$dname\"\n"; - print C "}\n"; - } - # Close in void context is bad, m'kay - close(D) or warn "Error closing '$dname': $!"; - close(H) or warn "Error closing '$hname': $!"; - - my $perc_saved = $saved/($strings + $saved) * 100; - my $perc_subsaved = $subsave/($strings + $subsave) * 100; - verbosef "%d bytes in string tables\n",$strings; - verbosef "%d bytes (%.3g%%) saved spotting duplicates\n", - $saved, $perc_saved if $saved; - verbosef "%d bytes (%.3g%%) saved using substrings\n", - $subsave, $perc_subsaved if $subsave; - } -elsif ($doEnc) - { - foreach my $name (sort cmp_name keys %encoding) - { - my ($e2u,$u2e,$erep,$min_el,$max_el) = @{$encoding{$name}}; - output_enc(\*C,$name,$e2u); - } - } -elsif ($doUcm) - { - foreach my $name (sort cmp_name keys %encoding) - { - my ($e2u,$u2e,$erep,$min_el,$max_el) = @{$encoding{$name}}; - output_ucm(\*C,$name,$u2e,$erep,$min_el,$max_el); - } - } - -# writing half meg files and then not checking to see if you just filled the -# disk is bad, m'kay -close(C) or die "Error closing '$cname': $!"; - -# End of the main program. - -sub compile_ucm -{ - my ($fh,$name) = @_; - my $e2u = {}; - my $u2e = {}; - my $cs; - my %attr; - while (<$fh>) - { - s/#.*$//; - last if /^\s*CHARMAP\s*$/i; - if (/^\s*<(\w+)>\s+"?([^"]*)"?\s*$/i) # " # Grrr - { - $attr{$1} = $2; - } - } - if (!defined($cs = $attr{'code_set_name'})) - { - warn "No <code_set_name> in $name\n"; - } - else - { - $name = $cs unless exists $opt{'n'}; - } - my $erep; - my $urep; - my $max_el; - my $min_el; - if (exists $attr{'subchar'}) - { - #my @byte; - #$attr{'subchar'} =~ /^\s*/cg; - #push(@byte,$1) while $attr{'subchar'} =~ /\G\\x([0-9a-f]+)/icg; - #$erep = join('',map(chr(hex($_)),@byte)); - $erep = $attr{'subchar'}; - $erep =~ s/^\s+//; $erep =~ s/\s+$//; - } - print "Reading $name ($cs)\n" - unless defined $ENV{MAKEFLAGS} - and $ENV{MAKEFLAGS} =~ /\b(s|silent|quiet)\b/; - my $nfb = 0; - my $hfb = 0; - while (<$fh>) - { - s/#.*$//; - last if /^\s*END\s+CHARMAP\s*$/i; - next if /^\s*$/; - my (@uni, @byte) = (); - my ($uni, $byte, $fb) = m/^(\S+)\s+(\S+)\s+(\S+)\s+/o - or die "Bad line: $_"; - while ($uni =~ m/\G<([U0-9a-fA-F\+]+)>/g){ - push @uni, map { substr($_, 1) } split(/\+/, $1); - } - while ($byte =~ m/\G\\x([0-9a-fA-F]+)/g){ - push @byte, $1; - } - if (@uni) - { - my $uch = join('', map { encode_U(hex($_)) } @uni ); - my $ech = join('',map(chr(hex($_)),@byte)); - my $el = length($ech); - $max_el = $el if (!defined($max_el) || $el > $max_el); - $min_el = $el if (!defined($min_el) || $el < $min_el); - if (length($fb)) - { - $fb = substr($fb,1); - $hfb++; - } - else - { - $nfb++; - $fb = '0'; - } - # $fb is fallback flag - # 0 - round trip safe - # 1 - fallback for unicode -> enc - # 2 - skip sub-char mapping - # 3 - fallback enc -> unicode - enter($u2e,$uch,$ech,$u2e,$fb+0) if ($fb =~ /[01]/); - enter($e2u,$ech,$uch,$e2u,$fb+0) if ($fb =~ /[03]/); - } - else - { - warn $_; - } - } - if ($nfb && $hfb) - { - die "$nfb entries without fallback, $hfb entries with\n"; - } - $encoding{$name} = [$e2u,$u2e,$erep,$min_el,$max_el]; -} - - - -sub compile_enc -{ - my ($fh,$name) = @_; - my $e2u = {}; - my $u2e = {}; - - my $type; - while ($type = <$fh>) - { - last if $type !~ /^\s*#/; - } - chomp($type); - return if $type eq 'E'; - # Do the hash lookup once, rather than once per function call. 4% speedup. - my $type_func = $encode_types{$type}; - my ($def,$sym,$pages) = split(/\s+/,scalar(<$fh>)); - warn "$type encoded $name\n"; - my $rep = ''; - # Save a defined test by setting these to defined values. - my $min_el = ~0; # A very big integer - my $max_el = 0; # Anything must be longer than 0 - { - my $v = hex($def); - $rep = &$type_func($v & 0xFF, ($v >> 8) & 0xffe); - } - my $errors; - my $seen; - # use -Q to silence the seen test. Makefile.PL uses this by default. - $seen = {} unless $opt{Q}; - do - { - my $line = <$fh>; - chomp($line); - my $page = hex($line); - my $ch = 0; - my $i = 16; - do - { - # So why is it 1% faster to leave the my here? - my $line = <$fh>; - $line =~ s/\r\n$/\n/; - die "$.:${line}Line should be exactly 65 characters long including - newline (".length($line).")" unless length ($line) == 65; - # Split line into groups of 4 hex digits, convert groups to ints - # This takes 65.35 - # map {hex $_} $line =~ /(....)/g - # This takes 63.75 (2.5% less time) - # unpack "n*", pack "H*", $line - # There's an implicit loop in map. Loops are bad, m'kay. Ops are bad, m'kay - # Doing it as while ($line =~ /(....)/g) took 74.63 - foreach my $val (unpack "n*", pack "H*", $line) - { - next if $val == 0xFFFD; - my $ech = &$type_func($ch,$page); - if ($val || (!$ch && !$page)) - { - my $el = length($ech); - $max_el = $el if $el > $max_el; - $min_el = $el if $el < $min_el; - my $uch = encode_U($val); - if ($seen) { - # We're doing the test. - # We don't need to read this quickly, so storing it as a scalar, - # rather than 3 (anon array, plus the 2 scalars it holds) saves - # RAM and may make us faster on low RAM systems. [see __END__] - if (exists $seen->{$uch}) - { - warn sprintf("U%04X is %02X%02X and %04X\n", - $val,$page,$ch,$seen->{$uch}); - $errors++; - } - else - { - $seen->{$uch} = $page << 8 | $ch; - } - } - # Passing 2 extra args each time is 3.6% slower! - # Even with having to add $fallback ||= 0 later - enter_fb0($e2u,$ech,$uch); - enter_fb0($u2e,$uch,$ech); - } - else - { - # No character at this position - # enter($e2u,$ech,undef,$e2u); - } - $ch++; - } - } while --$i; - } while --$pages; - die "\$min_el=$min_el, \$max_el=$max_el - seems we read no lines" - if $min_el > $max_el; - die "$errors mapping conflicts\n" if ($errors && $opt{'S'}); - $encoding{$name} = [$e2u,$u2e,$rep,$min_el,$max_el]; -} - -# my ($a,$s,$d,$t,$fb) = @_; -sub enter { - my ($current,$inbytes,$outbytes,$next,$fallback) = @_; - # state we shift to after this (multibyte) input character defaults to same - # as current state. - $next ||= $current; - # Making sure it is defined seems to be faster than {no warnings;} in - # &process, or passing it in as 0 explicitly. - # XXX $fallback ||= 0; - - # Start at the beginning and work forwards through the string to zero. - # effectively we are removing 1 character from the front each time - # but we don't actually edit the string. [this alone seems to be 14% speedup] - # Hence -$pos is the length of the remaining string. - my $pos = -length $inbytes; - while (1) { - my $byte = substr $inbytes, $pos, 1; - # RAW_NEXT => 0, - # RAW_IN_LEN => 1, - # RAW_OUT_BYTES => 2, - # RAW_FALLBACK => 3, - # to unicode an array would seem to be better, because the pages are dense. - # from unicode can be very sparse, favouring a hash. - # hash using the bytes (all length 1) as keys rather than ord value, - # as it's easier to sort these in &process. - - # It's faster to always add $fallback even if it's undef, rather than - # choosing between 3 and 4 element array. (hence why we set it defined - # above) - my $do_now = $current->{Raw}{$byte} ||= [{},-$pos,'',$fallback]; - # When $pos was -1 we were at the last input character. - unless (++$pos) { - $do_now->[RAW_OUT_BYTES] = $outbytes; - $do_now->[RAW_NEXT] = $next; - return; - } - # Tail recursion. The intermediate state may not have a name yet. - $current = $do_now->[RAW_NEXT]; - } -} - -# This is purely for optimisation. It's just &enter hard coded for $fallback -# of 0, using only a 3 entry array ref to save memory for every entry. -sub enter_fb0 { - my ($current,$inbytes,$outbytes,$next) = @_; - $next ||= $current; - - my $pos = -length $inbytes; - while (1) { - my $byte = substr $inbytes, $pos, 1; - my $do_now = $current->{Raw}{$byte} ||= [{},-$pos,'']; - unless (++$pos) { - $do_now->[RAW_OUT_BYTES] = $outbytes; - $do_now->[RAW_NEXT] = $next; - return; - } - $current = $do_now->[RAW_NEXT]; - } -} - -sub process -{ - my ($name,$a) = @_; - $name =~ s/\W+/_/g; - $a->{Cname} = $name; - my $raw = $a->{Raw}; - my ($l, $agg_max_in, $agg_next, $agg_in_len, $agg_out_len, $agg_fallback); - my @ent; - $agg_max_in = 0; - foreach my $key (sort keys %$raw) { - # RAW_NEXT => 0, - # RAW_IN_LEN => 1, - # RAW_OUT_BYTES => 2, - # RAW_FALLBACK => 3, - my ($next, $in_len, $out_bytes, $fallback) = @{$raw->{$key}}; - # Now we are converting from raw to aggregate, switch from 1 byte strings - # to numbers - my $b = ord $key; - $fallback ||= 0; - if ($l && - # If this == fails, we're going to reset $agg_max_in below anyway. - $b == ++$agg_max_in && - # References in numeric context give the pointer as an int. - $agg_next == $next && - $agg_in_len == $in_len && - $agg_out_len == length $out_bytes && - $agg_fallback == $fallback - # && length($l->[AGG_OUT_BYTES]) < 16 - ) { - # my $i = ord($b)-ord($l->[AGG_MIN_IN]); - # we can aggregate this byte onto the end. - $l->[AGG_MAX_IN] = $b; - $l->[AGG_OUT_BYTES] .= $out_bytes; - } else { - # AGG_MIN_IN => 0, - # AGG_MAX_IN => 1, - # AGG_OUT_BYTES => 2, - # AGG_NEXT => 3, - # AGG_IN_LEN => 4, - # AGG_OUT_LEN => 5, - # AGG_FALLBACK => 6, - # Reset the last thing we saw, plus set 5 lexicals to save some derefs. - # (only gains .6% on euc-jp -- is it worth it?) - push @ent, $l = [$b, $agg_max_in = $b, $out_bytes, $agg_next = $next, - $agg_in_len = $in_len, $agg_out_len = length $out_bytes, - $agg_fallback = $fallback]; - } - if (exists $next->{Cname}) { - $next->{'Forward'} = 1 if $next != $a; - } else { - process(sprintf("%s_%02x",$name,$b),$next); - } - } - # encengine.c rules say that last entry must be for 255 - if ($agg_max_in < 255) { - push @ent, [1+$agg_max_in, 255,undef,$a,0,0]; - } - $a->{'Entries'} = \@ent; -} - - -sub addstrings -{ - my ($fh,$a) = @_; - my $name = $a->{'Cname'}; - # String tables - foreach my $b (@{$a->{'Entries'}}) - { - next unless $b->[AGG_OUT_LEN]; - $strings{$b->[AGG_OUT_BYTES]} = undef; - } - if ($a->{'Forward'}) - { - my ($cpp, $static, $sized) = compiler_info(1); - my $count = $sized ? scalar(@{$a->{'Entries'}}) : ''; - if ($static) { - # we cannot ask Config for d_plusplus since we can override CC=g++-6 on the cmdline - print $fh "#ifdef __cplusplus\n"; # -fpermissive since g++-6 - print $fh "extern encpage_t $name\[$count];\n"; - print $fh "#else\n"; - print $fh "static const encpage_t $name\[$count];\n"; - print $fh "#endif\n"; - } else { - print $fh "extern encpage_t $name\[$count];\n"; - } - } - $a->{'DoneStrings'} = 1; - foreach my $b (@{$a->{'Entries'}}) - { - my ($s,$e,$out,$t,$end,$l) = @$b; - addstrings($fh,$t) unless $t->{'DoneStrings'}; - } -} - -sub outbigstring -{ - my ($fh,$name) = @_; - - $string_acc = ''; - - # Make the big string in the string accumulator. Longest first, on the hope - # that this makes it more likely that we find the short strings later on. - # Not sure if it helps sorting strings of the same length lexically. - foreach my $s (sort {length $b <=> length $a || $a cmp $b} keys %strings) { - my $index = index $string_acc, $s; - if ($index >= 0) { - $saved += length($s); - $strings_in_acc{$s} = $index; - } else { - OPTIMISER: { - if ($opt{'O'}) { - my $sublength = length $s; - while (--$sublength > 0) { - # progressively lop characters off the end, to see if the start of - # the new string overlaps the end of the accumulator. - if (substr ($string_acc, -$sublength) - eq substr ($s, 0, $sublength)) { - $subsave += $sublength; - $strings_in_acc{$s} = length ($string_acc) - $sublength; - # append the last bit on the end. - $string_acc .= substr ($s, $sublength); - last OPTIMISER; - } - # or if the end of the new string overlaps the start of the - # accumulator - next unless substr ($string_acc, 0, $sublength) - eq substr ($s, -$sublength); - # well, the last $sublength characters of the accumulator match. - # so as we're prepending to the accumulator, need to shift all our - # existing offsets forwards - $_ += $sublength foreach values %strings_in_acc; - $subsave += $sublength; - $strings_in_acc{$s} = 0; - # append the first bit on the start. - $string_acc = substr ($s, 0, -$sublength) . $string_acc; - last OPTIMISER; - } - } - # Optimiser (if it ran) found nothing, so just going have to tack the - # whole thing on the end. - $strings_in_acc{$s} = length $string_acc; - $string_acc .= $s; - }; - } - } - - $strings = length $string_acc; - my ($cpp) = compiler_info(0); - my $var = $cpp ? '' : 'static'; - my $definition = "\n$var const U8 $name\[$strings] = { " . - join(',',unpack "C*",$string_acc); - # We have a single long line. Split it at convenient commas. - print $fh $1, "\n" while $definition =~ /\G(.{74,77},)/gcs; - print $fh substr ($definition, pos $definition), " };\n"; -} - -sub findstring { - my ($name,$s) = @_; - my $offset = $strings_in_acc{$s}; - die "Can't find string " . join (',',unpack "C*",$s) . " in accumulator" - unless defined $offset; - "$name + $offset"; -} - -sub outtable -{ - my ($fh,$a,$bigname) = @_; - my $name = $a->{'Cname'}; - $a->{'Done'} = 1; - foreach my $b (@{$a->{'Entries'}}) - { - my ($s,$e,$out,$t,$end,$l) = @$b; - outtable($fh,$t,$bigname) unless $t->{'Done'}; - } - my ($cpp, $static) = compiler_info(0); - my $count = scalar(@{$a->{'Entries'}}); - if ($static) { - print $fh "#ifdef __cplusplus\n"; # -fpermissive since g++-6 - print $fh "encpage_t $name\[$count] = {\n"; - print $fh "#else\n"; - print $fh "static const encpage_t $name\[$count] = {\n"; - print $fh "#endif\n"; - } else { - print $fh "\nencpage_t $name\[$count] = {\n"; - } - foreach my $b (@{$a->{'Entries'}}) - { - my ($sc,$ec,$out,$t,$end,$l,$fb) = @$b; - # $end |= 0x80 if $fb; # what the heck was on your mind, Nick? -- Dan - print $fh "{"; - if ($l) - { - printf $fh findstring($bigname,$out); - } - else - { - print $fh "0"; - } - print $fh ",",$t->{Cname}; - printf $fh ",0x%02x,0x%02x,$l,$end},\n",$sc,$ec; - } - print $fh "};\n"; -} - -sub output_enc -{ - my ($fh,$name,$a) = @_; - die "Changed - fix me for new structure"; - foreach my $b (sort keys %$a) - { - my ($s,$e,$out,$t,$end,$l,$fb) = @{$a->{$b}}; - } -} - -sub decode_U -{ - my $s = shift; -} - -my @uname; -sub char_names -{ - my $s = do "unicore/Name.pl"; - die "char_names: unicore/Name.pl: $!\n" unless defined $s; - pos($s) = 0; - while ($s =~ /\G([0-9a-f]+)\t([0-9a-f]*)\t(.*?)\s*\n/igc) - { - my $name = $3; - my $s = hex($1); - last if $s >= 0x10000; - my $e = length($2) ? hex($2) : $s; - for (my $i = $s; $i <= $e; $i++) - { - $uname[$i] = $name; -# print sprintf("U%04X $name\n",$i); - } - } -} - -sub output_ucm_page -{ - my ($cmap,$a,$t,$pre) = @_; - # warn sprintf("Page %x\n",$pre); - my $raw = $t->{Raw}; - foreach my $key (sort keys %$raw) { - # RAW_NEXT => 0, - # RAW_IN_LEN => 1, - # RAW_OUT_BYTES => 2, - # RAW_FALLBACK => 3, - my ($next, $in_len, $out_bytes, $fallback) = @{$raw->{$key}}; - my $u = ord $key; - $fallback ||= 0; - - if ($next != $a && $next != $t) { - output_ucm_page($cmap,$a,$next,(($pre|($u &0x3F)) << 6)&0xFFFF); - } elsif (length $out_bytes) { - if ($pre) { - $u = $pre|($u &0x3f); - } - my $s = sprintf "<U%04X> ",$u; - #foreach my $c (split(//,$out_bytes)) { - # $s .= sprintf "\\x%02X",ord($c); - #} - # 9.5% faster changing that loop to this: - $s .= sprintf +("\\x%02X" x length $out_bytes), unpack "C*", $out_bytes; - $s .= sprintf " |%d # %s\n",($fallback ? 1 : 0),$uname[$u]; - push(@$cmap,$s); - } else { - warn join(',',$u, @{$raw->{$key}},$a,$t); - } - } -} - -sub output_ucm -{ - my ($fh,$name,$h,$rep,$min_el,$max_el) = @_; - print $fh "# $0 @orig_ARGV\n" unless $opt{'q'}; - print $fh "<code_set_name> \"$name\"\n"; - char_names(); - if (defined $min_el) - { - print $fh "<mb_cur_min> $min_el\n"; - } - if (defined $max_el) - { - print $fh "<mb_cur_max> $max_el\n"; - } - if (defined $rep) - { - print $fh "<subchar> "; - foreach my $c (split(//,$rep)) - { - printf $fh "\\x%02X",ord($c); - } - print $fh "\n"; - } - my @cmap; - output_ucm_page(\@cmap,$h,$h,0); - print $fh "#\nCHARMAP\n"; - foreach my $line (sort { substr($a,8) cmp substr($b,8) } @cmap) - { - print $fh $line; - } - print $fh "END CHARMAP\n"; -} - -use vars qw( - $_Enc2xs - $_Version - $_Inc - $_E2X - $_Name - $_TableFiles - $_Now -); - -sub find_e2x{ - eval { require File::Find; }; - my (@inc, %e2x_dir); - for my $inc (@INC){ - push @inc, $inc unless $inc eq '.'; #skip current dir - } - File::Find::find( - sub { - my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, - $atime,$mtime,$ctime,$blksize,$blocks) - = lstat($_) or return; - -f _ or return; - if (/^.*\.e2x$/o){ - no warnings 'once'; - $e2x_dir{$File::Find::dir} ||= $mtime; - } - return; - }, @inc); - warn join("\n", keys %e2x_dir), "\n"; - for my $d (sort {$e2x_dir{$a} <=> $e2x_dir{$b}} keys %e2x_dir){ - $_E2X = $d; - # warn "$_E2X => ", scalar localtime($e2x_dir{$d}); - return $_E2X; - } -} - -sub make_makefile_pl -{ - eval { require Encode } or die "You need to install Encode to use enc2xs -M\nerror: $@\n"; - # our used for variable expansion - $_Enc2xs = $0; - $_Version = $VERSION; - $_E2X = find_e2x(); - $_Name = shift; - $_TableFiles = join(",", map {qq('$_')} @_); - $_Now = scalar localtime(); - - eval { require File::Spec; }; - _print_expand(File::Spec->catfile($_E2X,"Makefile_PL.e2x"),"Makefile.PL"); - _print_expand(File::Spec->catfile($_E2X,"_PM.e2x"), "$_Name.pm"); - _print_expand(File::Spec->catfile($_E2X,"_T.e2x"), "t/$_Name.t"); - _print_expand(File::Spec->catfile($_E2X,"README.e2x"), "README"); - _print_expand(File::Spec->catfile($_E2X,"Changes.e2x"), "Changes"); - exit; -} - -use vars qw( - $_ModLines - $_LocalVer - ); - -sub make_configlocal_pm { - eval { require Encode } or die "Unable to require Encode: $@\n"; - eval { require File::Spec; }; - - # our used for variable expantion - my %in_core = map { $_ => 1 } ( - 'ascii', 'iso-8859-1', 'utf8', - 'ascii-ctrl', 'null', 'utf-8-strict' - ); - my %LocalMod = (); - # check @enc; - use File::Find (); - my $wanted = sub{ - -f $_ or return; - $File::Find::name =~ /\A\./ and return; - $File::Find::name =~ /\.pm\z/ or return; - $File::Find::name =~ m/\bEncode\b/ or return; - my $mod = $File::Find::name; - $mod =~ s/.*\bEncode\b/Encode/o; - $mod =~ s/\.pm\z//o; - $mod =~ s,/,::,og; - eval qq{ require $mod; } or return; - warn qq{ require $mod;\n}; - for my $enc ( Encode->encodings() ) { - no warnings; - $in_core{$enc} and next; - $Encode::Config::ExtModule{$enc} and next; - $LocalMod{$enc} ||= $mod; - } - }; - File::Find::find({wanted => $wanted}, @INC); - $_ModLines = ""; - for my $enc ( sort keys %LocalMod ) { - $_ModLines .= - qq(\$Encode::ExtModule{'$enc'} = "$LocalMod{$enc}";\n); - } - warn $_ModLines if $_ModLines; - $_LocalVer = _mkversion(); - $_E2X = find_e2x(); - $_Inc = $INC{"Encode.pm"}; - $_Inc =~ s/\.pm$//o; - _print_expand( File::Spec->catfile( $_E2X, "ConfigLocal_PM.e2x" ), - File::Spec->catfile( $_Inc, "ConfigLocal.pm" ), 1 ); - exit; -} - -sub _mkversion{ - # v-string is now depreciated; use time() instead; - #my ($ss,$mm,$hh,$dd,$mo,$yyyy) = localtime(); - #$yyyy += 1900, $mo +=1; - #return sprintf("v%04d.%04d.%04d", $yyyy, $mo*100+$dd, $hh*100+$mm); - return time(); -} - -sub _print_expand{ - eval { require File::Basename } or die "File::Basename needed. Are you on miniperl?;\nerror: $@\n"; - File::Basename->import(); - my ($src, $dst, $clobber) = @_; - if (!$clobber and -e $dst){ - warn "$dst exists. skipping\n"; - return; - } - warn "Generating $dst...\n"; - open my $in, $src or die "$src : $!"; - if ((my $d = dirname($dst)) ne '.'){ - -d $d or mkdir $d, 0755 or die "mkdir $d : $!"; - } - open my $out, ">", $dst or die "$!"; - my $asis = 0; - while (<$in>){ - if (/^#### END_OF_HEADER/){ - $asis = 1; next; - } - s/(\$_[A-Z][A-Za-z0-9]+)_/$1/gee unless $asis; - print $out $_; - } -} -__END__ - -=head1 NAME - -enc2xs -- Perl Encode Module Generator - -=head1 SYNOPSIS - - enc2xs -[options] - enc2xs -M ModName mapfiles... - enc2xs -C - -=head1 DESCRIPTION - -F<enc2xs> builds a Perl extension for use by Encode from either -Unicode Character Mapping files (.ucm) or Tcl Encoding Files (.enc). -Besides being used internally during the build process of the Encode -module, you can use F<enc2xs> to add your own encoding to perl. -No knowledge of XS is necessary. - -=head1 Quick Guide - -If you want to know as little about Perl as possible but need to -add a new encoding, just read this chapter and forget the rest. - -=over 4 - -=item 0.Z<> - -Have a .ucm file ready. You can get it from somewhere or you can write -your own from scratch or you can grab one from the Encode distribution -and customize it. For the UCM format, see the next Chapter. In the -example below, I'll call my theoretical encoding myascii, defined -in I<my.ucm>. C<$> is a shell prompt. - - $ ls -F - my.ucm - -=item 1.Z<> - -Issue a command as follows; - - $ enc2xs -M My my.ucm - generating Makefile.PL - generating My.pm - generating README - generating Changes - -Now take a look at your current directory. It should look like this. - - $ ls -F - Makefile.PL My.pm my.ucm t/ - -The following files were created. - - Makefile.PL - MakeMaker script - My.pm - Encode submodule - t/My.t - test file - -=over 4 - -=item 1.1.Z<> - -If you want *.ucm installed together with the modules, do as follows; - - $ mkdir Encode - $ mv *.ucm Encode - $ enc2xs -M My Encode/*ucm - -=back - -=item 2.Z<> - -Edit the files generated. You don't have to if you have no time AND no -intention to give it to someone else. But it is a good idea to edit -the pod and to add more tests. - -=item 3.Z<> - -Now issue a command all Perl Mongers love: - - $ perl Makefile.PL - Writing Makefile for Encode::My - -=item 4.Z<> - -Now all you have to do is make. - - $ make - cp My.pm blib/lib/Encode/My.pm - /usr/local/bin/perl /usr/local/bin/enc2xs -Q -O \ - -o encode_t.c -f encode_t.fnm - Reading myascii (myascii) - Writing compiled form - 128 bytes in string tables - 384 bytes (75%) saved spotting duplicates - 1 bytes (0.775%) saved using substrings - .... - chmod 644 blib/arch/auto/Encode/My/My.bs - $ - -The time it takes varies depending on how fast your machine is and -how large your encoding is. Unless you are working on something big -like euc-tw, it won't take too long. - -=item 5.Z<> - -You can "make install" already but you should test first. - - $ make test - PERL_DL_NONLAZY=1 /usr/local/bin/perl -Iblib/arch -Iblib/lib \ - -e 'use Test::Harness qw(&runtests $verbose); \ - $verbose=0; runtests @ARGV;' t/*.t - t/My....ok - All tests successful. - Files=1, Tests=2, 0 wallclock secs - ( 0.09 cusr + 0.01 csys = 0.09 CPU) - -=item 6.Z<> - -If you are content with the test result, just "make install" - -=item 7.Z<> - -If you want to add your encoding to Encode's demand-loading list -(so you don't have to "use Encode::YourEncoding"), run - - enc2xs -C - -to update Encode::ConfigLocal, a module that controls local settings. -After that, "use Encode;" is enough to load your encodings on demand. - -=back - -=head1 The Unicode Character Map - -Encode uses the Unicode Character Map (UCM) format for source character -mappings. This format is used by IBM's ICU package and was adopted -by Nick Ing-Simmons for use with the Encode module. Since UCM is -more flexible than Tcl's Encoding Map and far more user-friendly, -this is the recommended format for Encode now. - -A UCM file looks like this. - - # - # Comments - # - <code_set_name> "US-ascii" # Required - <code_set_alias> "ascii" # Optional - <mb_cur_min> 1 # Required; usually 1 - <mb_cur_max> 1 # Max. # of bytes/char - <subchar> \x3F # Substitution char - # - CHARMAP - <U0000> \x00 |0 # <control> - <U0001> \x01 |0 # <control> - <U0002> \x02 |0 # <control> - .... - <U007C> \x7C |0 # VERTICAL LINE - <U007D> \x7D |0 # RIGHT CURLY BRACKET - <U007E> \x7E |0 # TILDE - <U007F> \x7F |0 # <control> - END CHARMAP - -=over 4 - -=item * - -Anything that follows C<#> is treated as a comment. - -=item * - -The header section continues until a line containing the word -CHARMAP. This section has a form of I<E<lt>keywordE<gt> value>, one -pair per line. Strings used as values must be quoted. Barewords are -treated as numbers. I<\xXX> represents a byte. - -Most of the keywords are self-explanatory. I<subchar> means -substitution character, not subcharacter. When you decode a Unicode -sequence to this encoding but no matching character is found, the byte -sequence defined here will be used. For most cases, the value here is -\x3F; in ASCII, this is a question mark. - -=item * - -CHARMAP starts the character map section. Each line has a form as -follows: - - <UXXXX> \xXX.. |0 # comment - ^ ^ ^ - | | +- Fallback flag - | +-------- Encoded byte sequence - +-------------- Unicode Character ID in hex - -The format is roughly the same as a header section except for the -fallback flag: | followed by 0..3. The meaning of the possible -values is as follows: - -=over 4 - -=item |0 - -Round trip safe. A character decoded to Unicode encodes back to the -same byte sequence. Most characters have this flag. - -=item |1 - -Fallback for unicode -> encoding. When seen, enc2xs adds this -character for the encode map only. - -=item |2 - -Skip sub-char mapping should there be no code point. - -=item |3 - -Fallback for encoding -> unicode. When seen, enc2xs adds this -character for the decode map only. - -=back - -=item * - -And finally, END OF CHARMAP ends the section. - -=back - -When you are manually creating a UCM file, you should copy ascii.ucm -or an existing encoding which is close to yours, rather than write -your own from scratch. - -When you do so, make sure you leave at least B<U0000> to B<U0020> as -is, unless your environment is EBCDIC. - -B<CAVEAT>: not all features in UCM are implemented. For example, -icu:state is not used. Because of that, you need to write a perl -module if you want to support algorithmical encodings, notably -the ISO-2022 series. Such modules include L<Encode::JP::2022_JP>, -L<Encode::KR::2022_KR>, and L<Encode::TW::HZ>. - -=head2 Coping with duplicate mappings - -When you create a map, you SHOULD make your mappings round-trip safe. -That is, C<encode('your-encoding', decode('your-encoding', $data)) eq -$data> stands for all characters that are marked as C<|0>. Here is -how to make sure: - -=over 4 - -=item * - -Sort your map in Unicode order. - -=item * - -When you have a duplicate entry, mark either one with '|1' or '|3'. - -=item * - -And make sure the '|1' or '|3' entry FOLLOWS the '|0' entry. - -=back - -Here is an example from big5-eten. - - <U2550> \xF9\xF9 |0 - <U2550> \xA2\xA4 |3 - -Internally Encoding -> Unicode and Unicode -> Encoding Map looks like -this; - - E to U U to E - -------------------------------------- - \xF9\xF9 => U2550 U2550 => \xF9\xF9 - \xA2\xA4 => U2550 - -So it is round-trip safe for \xF9\xF9. But if the line above is upside -down, here is what happens. - - E to U U to E - -------------------------------------- - \xA2\xA4 => U2550 U2550 => \xF9\xF9 - (\xF9\xF9 => U2550 is now overwritten!) - -The Encode package comes with F<ucmlint>, a crude but sufficient -utility to check the integrity of a UCM file. Check under the -Encode/bin directory for this. - -When in doubt, you can use F<ucmsort>, yet another utility under -Encode/bin directory. - -=head1 Bookmarks - -=over 4 - -=item * - -ICU Home Page -L<http://www.icu-project.org/> - -=item * - -ICU Character Mapping Tables -L<http://site.icu-project.org/charts/charset> - -=item * - -ICU:Conversion Data -L<http://www.icu-project.org/userguide/conversion-data.html> - -=back - -=head1 SEE ALSO - -L<Encode>, -L<perlmod>, -L<perlpod> - -=cut - -# -Q to disable the duplicate codepoint test -# -S make mapping errors fatal -# -q to remove comments written to output files -# -O to enable the (brute force) substring optimiser -# -o <output> to specify the output file name (else it's the first arg) -# -f <inlist> to give a file with a list of input files (else use the args) -# -n <name> to name the encoding (else use the basename of the input file. - -With %seen holding array refs: - - 865.66 real 28.80 user 8.79 sys - 7904 maximum resident set size - 1356 average shared memory size - 18566 average unshared data size - 229 average unshared stack size - 46080 page reclaims - 33373 page faults - -With %seen holding simple scalars: - - 342.16 real 27.11 user 3.54 sys - 8388 maximum resident set size - 1394 average shared memory size - 14969 average unshared data size - 236 average unshared stack size - 28159 page reclaims - 9839 page faults - -Yes, 5 minutes is faster than 15. Above is for CP936 in CN. Only difference is -how %seen is storing things its seen. So it is pathalogically bad on a 16M -RAM machine, but it's going to help even on modern machines. -Swapping is bad, m'kay :-) - -__END__ -:endofperl diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/encguess b/software/Slic3r-1.3.0.64bit/local-lib/bin/encguess deleted file mode 100644 index 0f344ea3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/encguess +++ /dev/null @@ -1,146 +0,0 @@ -#!./perl -use 5.008001; -BEGIN { pop @INC if $INC[-1] eq '.' } -use strict; -use warnings; -use Encode; -use Getopt::Std; -use Carp; -use Encode::Guess; -$Getopt::Std::STANDARD_HELP_VERSION = 1; - -my %opt; -getopts( "huSs:", \%opt ); -my @suspect_list; -list_valid_suspects() and exit if $opt{S}; -@suspect_list = split /:,/, $opt{s} if $opt{s}; -HELP_MESSAGE() if $opt{h}; -HELP_MESSAGE() unless @ARGV; -do_guess($_) for @ARGV; - -sub read_file { - my $filename = shift; - local $/; - open my $fh, '<:raw', $filename or croak "$filename:$!"; - my $content = <$fh>; - close $fh; - return $content; -} - -sub do_guess { - my $filename = shift; - my $data = read_file($filename); - my $enc = guess_encoding( $data, @suspect_list ); - if ( !ref($enc) && $opt{u} ) { - return 1; - } - print "$filename\t"; - if ( ref($enc) ) { - print $enc->mime_name(); - } - else { - print "unknown"; - } - print "\n"; - return 1; -} - -sub list_valid_suspects { - print join( "\n", Encode->encodings(":all") ); - print "\n"; - return 1; -} - -sub HELP_MESSAGE { - exec 'pod2usage', $0 or die "pod2usage: $!" -} -__END__ -=head1 NAME - -encguess - guess character encodings of files - -=head1 VERSION - -$Id: encguess,v 0.2 2016/08/04 03:15:58 dankogai Exp $ - -=head1 SYNOPSIS - - encguess [switches] filename... - -=head2 SWITCHES - -=over 2 - -=item -h - -show this message and exit. - -=item -s - -specify a list of "suspect encoding types" to test, -seperated by either C<:> or C<,> - -=item -S - -output a list of all acceptable encoding types that can be used with -the -s param - -=item -u - -suppress display of unidentified types - -=back - -=head2 EXAMPLES: - -=over 2 - -=item * - -Guess encoding of a file named C<test.txt>, using only the default -suspect types. - - encguess test.txt - -=item * - -Guess the encoding type of a file named C<test.txt>, using the suspect -types C<euc-jp,shiftjis,7bit-jis>. - - encguess -s euc-jp,shiftjis,7bit-jis test.txt - encguess -s euc-jp:shiftjis:7bit-jis test.txt - -=item * - -Guess the encoding type of several files, do not display results for -unidentified files. - - encguess -us euc-jp,shiftjis,7bit-jis test*.txt - -=back - -=head1 DESCRIPTION - -The encoding identification is done by checking one encoding type at a -time until all but the right type are eliminated. The set of encoding -types to try is defined by the -s parameter and defaults to ascii, -utf8 and UTF-16/32 with BOM. This can be overridden by passing one or -more encoding types via the -s parameter. If you need to pass in -multiple suspect encoding types, use a quoted string with the a space -separating each value. - -=head1 SEE ALSO - -L<Encode::Guess>, L<Encode::Detect> - -=head1 LICENSE AND COPYRIGHT - -Copyright 2015 Michael LaGrasta and Dan Kogai. - -This program is free software; you can redistribute it and/or modify it -under the terms of the the Artistic License (2.0). You may obtain a -copy of the full license at: - -L<http://www.perlfoundation.org/artistic_license_2_0> - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/encguess.bat b/software/Slic3r-1.3.0.64bit/local-lib/bin/encguess.bat deleted file mode 100644 index 5c279bdb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/encguess.bat +++ /dev/null @@ -1,162 +0,0 @@ -@rem = '--*-Perl-*-- -@echo off -if "%OS%" == "Windows_NT" goto WinNT -perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -goto endofperl -:WinNT -perl -x -S %0 %* -if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl -if %errorlevel% == 9009 echo You do not have Perl in your PATH. -if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul -goto endofperl -@rem '; -#!./perl -#line 15 -use 5.008001; -BEGIN { pop @INC if $INC[-1] eq '.' } -use strict; -use warnings; -use Encode; -use Getopt::Std; -use Carp; -use Encode::Guess; -$Getopt::Std::STANDARD_HELP_VERSION = 1; - -my %opt; -getopts( "huSs:", \%opt ); -my @suspect_list; -list_valid_suspects() and exit if $opt{S}; -@suspect_list = split /:,/, $opt{s} if $opt{s}; -HELP_MESSAGE() if $opt{h}; -HELP_MESSAGE() unless @ARGV; -do_guess($_) for @ARGV; - -sub read_file { - my $filename = shift; - local $/; - open my $fh, '<:raw', $filename or croak "$filename:$!"; - my $content = <$fh>; - close $fh; - return $content; -} - -sub do_guess { - my $filename = shift; - my $data = read_file($filename); - my $enc = guess_encoding( $data, @suspect_list ); - if ( !ref($enc) && $opt{u} ) { - return 1; - } - print "$filename\t"; - if ( ref($enc) ) { - print $enc->mime_name(); - } - else { - print "unknown"; - } - print "\n"; - return 1; -} - -sub list_valid_suspects { - print join( "\n", Encode->encodings(":all") ); - print "\n"; - return 1; -} - -sub HELP_MESSAGE { - exec 'pod2usage', $0 or die "pod2usage: $!" -} -__END__ -=head1 NAME - -encguess - guess character encodings of files - -=head1 VERSION - -$Id: encguess,v 0.2 2016/08/04 03:15:58 dankogai Exp $ - -=head1 SYNOPSIS - - encguess [switches] filename... - -=head2 SWITCHES - -=over 2 - -=item -h - -show this message and exit. - -=item -s - -specify a list of "suspect encoding types" to test, -seperated by either C<:> or C<,> - -=item -S - -output a list of all acceptable encoding types that can be used with -the -s param - -=item -u - -suppress display of unidentified types - -=back - -=head2 EXAMPLES: - -=over 2 - -=item * - -Guess encoding of a file named C<test.txt>, using only the default -suspect types. - - encguess test.txt - -=item * - -Guess the encoding type of a file named C<test.txt>, using the suspect -types C<euc-jp,shiftjis,7bit-jis>. - - encguess -s euc-jp,shiftjis,7bit-jis test.txt - encguess -s euc-jp:shiftjis:7bit-jis test.txt - -=item * - -Guess the encoding type of several files, do not display results for -unidentified files. - - encguess -us euc-jp,shiftjis,7bit-jis test*.txt - -=back - -=head1 DESCRIPTION - -The encoding identification is done by checking one encoding type at a -time until all but the right type are eliminated. The set of encoding -types to try is defined by the -s parameter and defaults to ascii, -utf8 and UTF-16/32 with BOM. This can be overridden by passing one or -more encoding types via the -s parameter. If you need to pass in -multiple suspect encoding types, use a quoted string with the a space -separating each value. - -=head1 SEE ALSO - -L<Encode::Guess>, L<Encode::Detect> - -=head1 LICENSE AND COPYRIGHT - -Copyright 2015 Michael LaGrasta and Dan Kogai. - -This program is free software; you can redistribute it and/or modify it -under the terms of the the Artistic License (2.0). You may obtain a -copy of the full license at: - -L<http://www.perlfoundation.org/artistic_license_2_0> - -=cut - -__END__ -:endofperl diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/instmodsh b/software/Slic3r-1.3.0.64bit/local-lib/bin/instmodsh deleted file mode 100644 index ab0f9d1f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/instmodsh +++ /dev/null @@ -1,193 +0,0 @@ -#!/usr/bin/perl -w - -BEGIN { pop @INC if $INC[-1] eq '.' } -use strict; -use IO::File; -use ExtUtils::Packlist; -use ExtUtils::Installed; - -use vars qw($Inst @Modules); - - -=head1 NAME - -instmodsh - A shell to examine installed modules - -=head1 SYNOPSIS - - instmodsh - -=head1 DESCRIPTION - -A little interface to ExtUtils::Installed to examine installed modules, -validate your packlists and even create a tarball from an installed module. - -=head1 SEE ALSO - -ExtUtils::Installed - -=cut - - -my $Module_Help = <<EOF; -Available commands are: - f [all|prog|doc] - List installed files of a given type - d [all|prog|doc] - List the directories used by a module - v - Validate the .packlist - check for missing files - t <tarfile> - Create a tar archive of the module - h - Display module help - q - Quit the module -EOF - -my %Module_Commands = ( - f => \&list_installed, - d => \&list_directories, - v => \&validate_packlist, - t => \&create_archive, - h => \&module_help, - ); - -sub do_module($) { - my ($module) = @_; - - print($Module_Help); - MODULE_CMD: while (1) { - print("$module cmd? "); - - my $reply = <STDIN>; chomp($reply); - my($cmd) = $reply =~ /^(\w)\b/; - - last if $cmd eq 'q'; - - if( $Module_Commands{$cmd} ) { - $Module_Commands{$cmd}->($reply, $module); - } - elsif( $cmd eq 'q' ) { - last MODULE_CMD; - } - else { - module_help(); - } - } -} - - -sub list_installed { - my($reply, $module) = @_; - - my $class = (split(' ', $reply))[1]; - $class = 'all' unless $class; - - my @files; - if (eval { @files = $Inst->files($module, $class); }) { - print("$class files in $module are:\n ", - join("\n ", @files), "\n"); - } - else { - print($@); - } -}; - - -sub list_directories { - my($reply, $module) = @_; - - my $class = (split(' ', $reply))[1]; - $class = 'all' unless $class; - - my @dirs; - if (eval { @dirs = $Inst->directories($module, $class); }) { - print("$class directories in $module are:\n ", - join("\n ", @dirs), "\n"); - } - else { - print($@); - } -} - - -sub create_archive { - my($reply, $module) = @_; - - my $file = (split(' ', $reply))[1]; - - if( !(defined $file and length $file) ) { - print "No tar file specified\n"; - } - elsif( eval { require Archive::Tar } ) { - Archive::Tar->create_archive($file, 0, $Inst->files($module)); - } - else { - my($first, @rest) = $Inst->files($module); - system('tar', 'cvf', $file, $first); - for my $f (@rest) { - system('tar', 'rvf', $file, $f); - } - print "Can't use tar\n" if $?; - } -} - - -sub validate_packlist { - my($reply, $module) = @_; - - if (my @missing = $Inst->validate($module)) { - print("Files missing from $module are:\n ", - join("\n ", @missing), "\n"); - } - else { - print("$module has no missing files\n"); - } -} - -sub module_help { - print $Module_Help; -} - - - -############################################################################## - -sub toplevel() -{ -my $help = <<EOF; -Available commands are: - l - List all installed modules - m <module> - Select a module - q - Quit the program -EOF -print($help); -while (1) - { - print("cmd? "); - my $reply = <STDIN>; chomp($reply); - CASE: - { - $reply eq 'l' and do - { - print("Installed modules are:\n ", join("\n ", @Modules), "\n"); - last CASE; - }; - $reply =~ /^m\s+/ and do - { - do_module((split(' ', $reply))[1]); - last CASE; - }; - $reply eq 'q' and do - { - exit(0); - }; - # Default - print($help); - } - } -} - - -############################################################################### - -$Inst = ExtUtils::Installed->new(); -@Modules = $Inst->modules(); -toplevel(); - -############################################################################### diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/instmodsh.bat b/software/Slic3r-1.3.0.64bit/local-lib/bin/instmodsh.bat deleted file mode 100644 index 073fd1ba..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/instmodsh.bat +++ /dev/null @@ -1,209 +0,0 @@ -@rem = '--*-Perl-*-- -@echo off -if "%OS%" == "Windows_NT" goto WinNT -perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -goto endofperl -:WinNT -perl -x -S %0 %* -if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl -if %errorlevel% == 9009 echo You do not have Perl in your PATH. -if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul -goto endofperl -@rem '; -#!/usr/bin/perl -w -#line 15 - -BEGIN { pop @INC if $INC[-1] eq '.' } -use strict; -use IO::File; -use ExtUtils::Packlist; -use ExtUtils::Installed; - -use vars qw($Inst @Modules); - - -=head1 NAME - -instmodsh - A shell to examine installed modules - -=head1 SYNOPSIS - - instmodsh - -=head1 DESCRIPTION - -A little interface to ExtUtils::Installed to examine installed modules, -validate your packlists and even create a tarball from an installed module. - -=head1 SEE ALSO - -ExtUtils::Installed - -=cut - - -my $Module_Help = <<EOF; -Available commands are: - f [all|prog|doc] - List installed files of a given type - d [all|prog|doc] - List the directories used by a module - v - Validate the .packlist - check for missing files - t <tarfile> - Create a tar archive of the module - h - Display module help - q - Quit the module -EOF - -my %Module_Commands = ( - f => \&list_installed, - d => \&list_directories, - v => \&validate_packlist, - t => \&create_archive, - h => \&module_help, - ); - -sub do_module($) { - my ($module) = @_; - - print($Module_Help); - MODULE_CMD: while (1) { - print("$module cmd? "); - - my $reply = <STDIN>; chomp($reply); - my($cmd) = $reply =~ /^(\w)\b/; - - last if $cmd eq 'q'; - - if( $Module_Commands{$cmd} ) { - $Module_Commands{$cmd}->($reply, $module); - } - elsif( $cmd eq 'q' ) { - last MODULE_CMD; - } - else { - module_help(); - } - } -} - - -sub list_installed { - my($reply, $module) = @_; - - my $class = (split(' ', $reply))[1]; - $class = 'all' unless $class; - - my @files; - if (eval { @files = $Inst->files($module, $class); }) { - print("$class files in $module are:\n ", - join("\n ", @files), "\n"); - } - else { - print($@); - } -}; - - -sub list_directories { - my($reply, $module) = @_; - - my $class = (split(' ', $reply))[1]; - $class = 'all' unless $class; - - my @dirs; - if (eval { @dirs = $Inst->directories($module, $class); }) { - print("$class directories in $module are:\n ", - join("\n ", @dirs), "\n"); - } - else { - print($@); - } -} - - -sub create_archive { - my($reply, $module) = @_; - - my $file = (split(' ', $reply))[1]; - - if( !(defined $file and length $file) ) { - print "No tar file specified\n"; - } - elsif( eval { require Archive::Tar } ) { - Archive::Tar->create_archive($file, 0, $Inst->files($module)); - } - else { - my($first, @rest) = $Inst->files($module); - system('tar', 'cvf', $file, $first); - for my $f (@rest) { - system('tar', 'rvf', $file, $f); - } - print "Can't use tar\n" if $?; - } -} - - -sub validate_packlist { - my($reply, $module) = @_; - - if (my @missing = $Inst->validate($module)) { - print("Files missing from $module are:\n ", - join("\n ", @missing), "\n"); - } - else { - print("$module has no missing files\n"); - } -} - -sub module_help { - print $Module_Help; -} - - - -############################################################################## - -sub toplevel() -{ -my $help = <<EOF; -Available commands are: - l - List all installed modules - m <module> - Select a module - q - Quit the program -EOF -print($help); -while (1) - { - print("cmd? "); - my $reply = <STDIN>; chomp($reply); - CASE: - { - $reply eq 'l' and do - { - print("Installed modules are:\n ", join("\n ", @Modules), "\n"); - last CASE; - }; - $reply =~ /^m\s+/ and do - { - do_module((split(' ', $reply))[1]); - last CASE; - }; - $reply eq 'q' and do - { - exit(0); - }; - # Default - print($help); - } - } -} - - -############################################################################### - -$Inst = ExtUtils::Installed->new(); -@Modules = $Inst->modules(); -toplevel(); - -############################################################################### - -__END__ -:endofperl diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-download b/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-download deleted file mode 100644 index 5778f210..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-download +++ /dev/null @@ -1,334 +0,0 @@ -#!/usr/bin/perl - -=head1 NAME - -lwp-download - Fetch large files from the web - -=head1 SYNOPSIS - -B<lwp-download> [B<-a>] [B<-s>] <I<url>> [<I<local path>>] - -=head1 DESCRIPTION - -The B<lwp-download> program will save the file at I<url> to a local -file. - -If I<local path> is not specified, then the current directory is -assumed. - -If I<local path> is a directory, then the last segment of the path of the -I<url> is appended to form a local filename. If the I<url> path ends with -slash the name "index" is used. With the B<-s> option pick up the last segment -of the filename from server provided sources like the Content-Disposition -header or any redirect URLs. A file extension to match the server reported -Content-Type might also be appended. If a file with the produced filename -already exists, then B<lwp-download> will prompt before it overwrites and will -fail if its standard input is not a terminal. This form of invocation will -also fail is no acceptable filename can be derived from the sources mentioned -above. - -If I<local path> is not a directory, then it is simply used as the -path to save into. If the file already exists it's overwritten. - -The I<lwp-download> program is implemented using the I<libwww-perl> -library. It is better suited to down load big files than the -I<lwp-request> program because it does not store the file in memory. -Another benefit is that it will keep you updated about its progress -and that you don't have much options to worry about. - -Use the C<-a> option to save the file in text (ASCII) mode. Might -make a difference on DOSish systems. - -=head1 EXAMPLE - -Fetch the newest and greatest perl version: - - $ lwp-download http://www.perl.com/CPAN/src/latest.tar.gz - Saving to 'latest.tar.gz'... - 11.4 MB received in 8 seconds (1.43 MB/sec) - -=head1 AUTHOR - -Gisle Aas <gisle@aas.no> - -=cut - -#' get emacs out of quote mode - -use strict; -use warnings; - -use LWP::UserAgent (); -use LWP::MediaTypes qw(guess_media_type media_suffix); -use URI (); -use HTTP::Date (); -use Encode; -use Encode::Locale; - -my $progname = $0; -$progname =~ s,.*/,,; # only basename left in progname -$progname =~ s,.*\\,, if $^O eq "MSWin32"; -$progname =~ s/\.\w*$//; # strip extension if any - -#parse option -use Getopt::Std; -my %opt; -unless (getopts('as', \%opt)) { - usage(); -} - -my $url = URI->new(decode(locale => shift) || usage()); -my $argfile = encode(locale_fs => decode(locale => shift)); -usage() if defined($argfile) && !length($argfile); - -my $ua = LWP::UserAgent->new( - agent => "lwp-download/$LWP::UserAgent::VERSION ", - keep_alive => 1, - env_proxy => 1, -); - -my $file; # name of file we download into -my $length; # total number of bytes to download -my $flength; # formatted length -my $size = 0; # number of bytes received -my $start_t; # start time of download -my $last_dur; # time of last callback - -my $shown = 0; # have we called the show() function yet - -$SIG{INT} = sub { die "Interrupted\n"; }; - -$| = 1; # autoflush - -my $res = $ua->request( - HTTP::Request->new(GET => $url), - sub { - unless (defined $file) { - my $res = $_[1]; - - my $directory; - if (defined $argfile && -d $argfile) { - ($directory, $argfile) = ($argfile, undef); - } - - unless (defined $argfile) { - - # find a suitable name to use - $file = $opt{s} && $res->filename; - - # if this fails we try to make something from the URL - unless ($file) { - $file = ($url->path_segments)[-1]; - if (!defined($file) || !length($file)) { - $file = "index"; - my $suffix = media_suffix($res->content_type); - $file .= ".$suffix" if $suffix; - } - elsif ($url->scheme eq 'ftp' - || $file =~ /\.t[bg]z$/ - || $file =~ /\.tar(\.(Z|gz|bz2?))?$/) - { - # leave the filename as it was - } - else { - my $ct = guess_media_type($file); - unless ($ct eq $res->content_type) { - - # need a better suffix for this type - my $suffix = media_suffix($res->content_type); - $file .= ".$suffix" if $suffix; - } - } - } - - # validate that we don't have a harmful filename now. The server - # might try to trick us into doing something bad. - if (!length($file) - || $file - =~ s/([^a-zA-Z0-9_\.\-\+\~])/sprintf "\\x%02x", ord($1)/ge - || $file =~ /^\./) - { - die - "Will not save <$url> as \"$file\".\nPlease override file name on the command line.\n"; - } - - if (defined $directory) { - require File::Spec; - $file = File::Spec->catfile($directory, $file); - } - - # Check if the file is already present - if (-l $file) { - die - "Will not save <$url> to link \"$file\".\nPlease override file name on the command line.\n"; - } - elsif (-f _) { - die - "Will not save <$url> as \"$file\" without verification.\nEither run from terminal or override file name on the command line.\n" - unless -t; - $shown = 1; - print "Overwrite $file? [y] "; - my $ans = <STDIN>; - unless (defined($ans) && $ans =~ /^y?\n/) { - if (defined $ans) { - print "Ok, aborting.\n"; - } - else { - print "\nAborting.\n"; - } - exit 1; - } - $shown = 0; - } - elsif (-e _) { - die "Will not save <$url> as \"$file\". Path exists.\n"; - } - else { - print "Saving to '$file'...\n"; - use Fcntl qw(O_WRONLY O_EXCL O_CREAT); - sysopen(FILE, $file, O_WRONLY | O_EXCL | O_CREAT) - || die "Can't open $file: $!"; - } - } - else { - $file = $argfile; - } - unless (fileno(FILE)) { - open(FILE, ">", $file) || die "Can't open $file: $!\n"; - } - binmode FILE unless $opt{a}; - $length = $res->content_length; - $flength = fbytes($length) if defined $length; - $start_t = time; - $last_dur = 0; - } - - print FILE $_[0] or die "Can't write to $file: $!\n"; - $size += length($_[0]); - - if (defined $length) { - my $dur = time - $start_t; - if ($dur != $last_dur) { # don't update too often - $last_dur = $dur; - my $perc = $size / $length; - my $speed; - $speed = fbytes($size / $dur) . "/sec" if $dur > 3; - my $secs_left = fduration($dur / $perc - $dur); - $perc = int($perc * 100); - my $show = "$perc% of $flength"; - $show .= " (at $speed, $secs_left remaining)" if $speed; - show($show, 1); - } - } - else { - show(fbytes($size) . " received"); - } - } -); - -if (fileno(FILE)) { - close(FILE) || die "Can't write to $file: $!\n"; - - show(""); # clear text - print "\r"; - print fbytes($size); - print " of ", fbytes($length) if defined($length) && $length != $size; - print " received"; - my $dur = time - $start_t; - if ($dur) { - my $speed = fbytes($size / $dur) . "/sec"; - print " in ", fduration($dur), " ($speed)"; - } - print "\n"; - - if (my $mtime = $res->last_modified) { - utime time, $mtime, $file; - } - - if ($res->header("X-Died") || !$res->is_success) { - if (my $died = $res->header("X-Died")) { - print "$died\n"; - } - if (-t) { - print "Transfer aborted. Delete $file? [n] "; - my $ans = <STDIN>; - if (defined($ans) && $ans =~ /^y\n/) { - unlink($file) && print "Deleted.\n"; - } - elsif ($length > $size) { - print "Truncated file kept: ", fbytes($length - $size), - " missing\n"; - } - else { - print "File kept.\n"; - } - exit 1; - } - else { - print "Transfer aborted, $file kept\n"; - } - } - exit 0; -} - -# Did not manage to create any file -print "\n" if $shown; -if (my $xdied = $res->header("X-Died")) { - print "$progname: Aborted\n$xdied\n"; -} -else { - print "$progname: ", $res->status_line, "\n"; -} -exit 1; - - -sub fbytes { - my $n = int(shift); - if ($n >= 1024 * 1024) { - return sprintf "%.3g MB", $n / (1024.0 * 1024); - } - elsif ($n >= 1024) { - return sprintf "%.3g KB", $n / 1024.0; - } - else { - return "$n bytes"; - } -} - -sub fduration { - use integer; - my $secs = int(shift); - my $hours = $secs / (60 * 60); - $secs -= $hours * 60 * 60; - my $mins = $secs / 60; - $secs %= 60; - if ($hours) { - return "$hours hours $mins minutes"; - } - elsif ($mins >= 2) { - return "$mins minutes"; - } - else { - $secs += $mins * 60; - return "$secs seconds"; - } -} - - -BEGIN { - my @ani = qw(- \ | /); - my $ani = 0; - - sub show { - my ($mess, $show_ani) = @_; - print "\r$mess" . (" " x (75 - length $mess)); - my $msg = $show_ani ? $ani[$ani++]. "\b" : ' '; - print $msg; - $ani %= @ani; - $shown++; - } -} - -sub usage { - die "Usage: $progname [-a] <url> [<lpath>]\n"; -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-download.bat b/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-download.bat deleted file mode 100644 index ab711aac..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-download.bat +++ /dev/null @@ -1,364 +0,0 @@ -@rem = '--*-Perl-*-- -@echo off -if "%OS%" == "Windows_NT" goto WinNT -IF EXIST "%~dp0perl.exe" ( -"%~dp0perl.exe" -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) ELSE IF EXIST "%~dp0..\..\bin\perl.exe" ( -"%~dp0..\..\bin\perl.exe" -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) ELSE ( -perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) - -goto endofperl -:WinNT -IF EXIST "%~dp0perl.exe" ( -"%~dp0perl.exe" -x -S %0 %* -) ELSE IF EXIST "%~dp0..\..\bin\perl.exe" ( -"%~dp0..\..\bin\perl.exe" -x -S %0 %* -) ELSE ( -perl -x -S %0 %* -) - -if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl -if %errorlevel% == 9009 echo You do not have Perl in your PATH. -if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul -goto endofperl -@rem '; -#!/usr/bin/perl -#line 29 - -=head1 NAME - -lwp-download - Fetch large files from the web - -=head1 SYNOPSIS - -B<lwp-download> [B<-a>] [B<-s>] <I<url>> [<I<local path>>] - -=head1 DESCRIPTION - -The B<lwp-download> program will save the file at I<url> to a local -file. - -If I<local path> is not specified, then the current directory is -assumed. - -If I<local path> is a directory, then the last segment of the path of the -I<url> is appended to form a local filename. If the I<url> path ends with -slash the name "index" is used. With the B<-s> option pick up the last segment -of the filename from server provided sources like the Content-Disposition -header or any redirect URLs. A file extension to match the server reported -Content-Type might also be appended. If a file with the produced filename -already exists, then B<lwp-download> will prompt before it overwrites and will -fail if its standard input is not a terminal. This form of invocation will -also fail is no acceptable filename can be derived from the sources mentioned -above. - -If I<local path> is not a directory, then it is simply used as the -path to save into. If the file already exists it's overwritten. - -The I<lwp-download> program is implemented using the I<libwww-perl> -library. It is better suited to down load big files than the -I<lwp-request> program because it does not store the file in memory. -Another benefit is that it will keep you updated about its progress -and that you don't have much options to worry about. - -Use the C<-a> option to save the file in text (ASCII) mode. Might -make a difference on DOSish systems. - -=head1 EXAMPLE - -Fetch the newest and greatest perl version: - - $ lwp-download http://www.perl.com/CPAN/src/latest.tar.gz - Saving to 'latest.tar.gz'... - 11.4 MB received in 8 seconds (1.43 MB/sec) - -=head1 AUTHOR - -Gisle Aas <gisle@aas.no> - -=cut - -#' get emacs out of quote mode - -use strict; -use warnings; - -use LWP::UserAgent (); -use LWP::MediaTypes qw(guess_media_type media_suffix); -use URI (); -use HTTP::Date (); -use Encode; -use Encode::Locale; - -my $progname = $0; -$progname =~ s,.*/,,; # only basename left in progname -$progname =~ s,.*\\,, if $^O eq "MSWin32"; -$progname =~ s/\.\w*$//; # strip extension if any - -#parse option -use Getopt::Std; -my %opt; -unless (getopts('as', \%opt)) { - usage(); -} - -my $url = URI->new(decode(locale => shift) || usage()); -my $argfile = encode(locale_fs => decode(locale => shift)); -usage() if defined($argfile) && !length($argfile); - -my $ua = LWP::UserAgent->new( - agent => "lwp-download/$LWP::UserAgent::VERSION ", - keep_alive => 1, - env_proxy => 1, -); - -my $file; # name of file we download into -my $length; # total number of bytes to download -my $flength; # formatted length -my $size = 0; # number of bytes received -my $start_t; # start time of download -my $last_dur; # time of last callback - -my $shown = 0; # have we called the show() function yet - -$SIG{INT} = sub { die "Interrupted\n"; }; - -$| = 1; # autoflush - -my $res = $ua->request( - HTTP::Request->new(GET => $url), - sub { - unless (defined $file) { - my $res = $_[1]; - - my $directory; - if (defined $argfile && -d $argfile) { - ($directory, $argfile) = ($argfile, undef); - } - - unless (defined $argfile) { - - # find a suitable name to use - $file = $opt{s} && $res->filename; - - # if this fails we try to make something from the URL - unless ($file) { - $file = ($url->path_segments)[-1]; - if (!defined($file) || !length($file)) { - $file = "index"; - my $suffix = media_suffix($res->content_type); - $file .= ".$suffix" if $suffix; - } - elsif ($url->scheme eq 'ftp' - || $file =~ /\.t[bg]z$/ - || $file =~ /\.tar(\.(Z|gz|bz2?))?$/) - { - # leave the filename as it was - } - else { - my $ct = guess_media_type($file); - unless ($ct eq $res->content_type) { - - # need a better suffix for this type - my $suffix = media_suffix($res->content_type); - $file .= ".$suffix" if $suffix; - } - } - } - - # validate that we don't have a harmful filename now. The server - # might try to trick us into doing something bad. - if (!length($file) - || $file - =~ s/([^a-zA-Z0-9_\.\-\+\~])/sprintf "\\x%02x", ord($1)/ge - || $file =~ /^\./) - { - die - "Will not save <$url> as \"$file\".\nPlease override file name on the command line.\n"; - } - - if (defined $directory) { - require File::Spec; - $file = File::Spec->catfile($directory, $file); - } - - # Check if the file is already present - if (-l $file) { - die - "Will not save <$url> to link \"$file\".\nPlease override file name on the command line.\n"; - } - elsif (-f _) { - die - "Will not save <$url> as \"$file\" without verification.\nEither run from terminal or override file name on the command line.\n" - unless -t; - $shown = 1; - print "Overwrite $file? [y] "; - my $ans = <STDIN>; - unless (defined($ans) && $ans =~ /^y?\n/) { - if (defined $ans) { - print "Ok, aborting.\n"; - } - else { - print "\nAborting.\n"; - } - exit 1; - } - $shown = 0; - } - elsif (-e _) { - die "Will not save <$url> as \"$file\". Path exists.\n"; - } - else { - print "Saving to '$file'...\n"; - use Fcntl qw(O_WRONLY O_EXCL O_CREAT); - sysopen(FILE, $file, O_WRONLY | O_EXCL | O_CREAT) - || die "Can't open $file: $!"; - } - } - else { - $file = $argfile; - } - unless (fileno(FILE)) { - open(FILE, ">", $file) || die "Can't open $file: $!\n"; - } - binmode FILE unless $opt{a}; - $length = $res->content_length; - $flength = fbytes($length) if defined $length; - $start_t = time; - $last_dur = 0; - } - - print FILE $_[0] or die "Can't write to $file: $!\n"; - $size += length($_[0]); - - if (defined $length) { - my $dur = time - $start_t; - if ($dur != $last_dur) { # don't update too often - $last_dur = $dur; - my $perc = $size / $length; - my $speed; - $speed = fbytes($size / $dur) . "/sec" if $dur > 3; - my $secs_left = fduration($dur / $perc - $dur); - $perc = int($perc * 100); - my $show = "$perc% of $flength"; - $show .= " (at $speed, $secs_left remaining)" if $speed; - show($show, 1); - } - } - else { - show(fbytes($size) . " received"); - } - } -); - -if (fileno(FILE)) { - close(FILE) || die "Can't write to $file: $!\n"; - - show(""); # clear text - print "\r"; - print fbytes($size); - print " of ", fbytes($length) if defined($length) && $length != $size; - print " received"; - my $dur = time - $start_t; - if ($dur) { - my $speed = fbytes($size / $dur) . "/sec"; - print " in ", fduration($dur), " ($speed)"; - } - print "\n"; - - if (my $mtime = $res->last_modified) { - utime time, $mtime, $file; - } - - if ($res->header("X-Died") || !$res->is_success) { - if (my $died = $res->header("X-Died")) { - print "$died\n"; - } - if (-t) { - print "Transfer aborted. Delete $file? [n] "; - my $ans = <STDIN>; - if (defined($ans) && $ans =~ /^y\n/) { - unlink($file) && print "Deleted.\n"; - } - elsif ($length > $size) { - print "Truncated file kept: ", fbytes($length - $size), - " missing\n"; - } - else { - print "File kept.\n"; - } - exit 1; - } - else { - print "Transfer aborted, $file kept\n"; - } - } - exit 0; -} - -# Did not manage to create any file -print "\n" if $shown; -if (my $xdied = $res->header("X-Died")) { - print "$progname: Aborted\n$xdied\n"; -} -else { - print "$progname: ", $res->status_line, "\n"; -} -exit 1; - - -sub fbytes { - my $n = int(shift); - if ($n >= 1024 * 1024) { - return sprintf "%.3g MB", $n / (1024.0 * 1024); - } - elsif ($n >= 1024) { - return sprintf "%.3g KB", $n / 1024.0; - } - else { - return "$n bytes"; - } -} - -sub fduration { - use integer; - my $secs = int(shift); - my $hours = $secs / (60 * 60); - $secs -= $hours * 60 * 60; - my $mins = $secs / 60; - $secs %= 60; - if ($hours) { - return "$hours hours $mins minutes"; - } - elsif ($mins >= 2) { - return "$mins minutes"; - } - else { - $secs += $mins * 60; - return "$secs seconds"; - } -} - - -BEGIN { - my @ani = qw(- \ | /); - my $ani = 0; - - sub show { - my ($mess, $show_ani) = @_; - print "\r$mess" . (" " x (75 - length $mess)); - my $msg = $show_ani ? $ani[$ani++]. "\b" : ' '; - print $msg; - $ani %= @ani; - $shown++; - } -} - -sub usage { - die "Usage: $progname [-a] <url> [<lpath>]\n"; -} - -__END__ -:endofperl diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-dump b/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-dump deleted file mode 100644 index a161414c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-dump +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; -use LWP::UserAgent (); -use Getopt::Long qw(GetOptions); -use Encode; -use Encode::Locale; - -GetOptions(\my %opt, 'parse-head', 'max-length=n', 'keep-client-headers', - 'method=s', 'agent=s', 'request',) - || usage(); - -my $url = shift || usage(); -@ARGV && usage(); - -sub usage { - (my $progname = $0) =~ s,.*/,,; - die <<"EOT"; -Usage: $progname [options] <url> - -Recognized options are: - --agent <str> - --keep-client-headers - --max-length <n> - --method <str> - --parse-head - --request - -EOT -} - -my $ua = LWP::UserAgent->new( - parse_head => $opt{'parse-head'} || 0, - keep_alive => 1, - env_proxy => 1, - agent => $opt{agent} || "lwp-dump/$LWP::UserAgent::VERSION ", -); - -my $req = HTTP::Request->new($opt{method} || 'GET' => decode(locale => $url)); -my $res = $ua->simple_request($req); -$res->remove_header(grep /^Client-/, $res->header_field_names) - unless $opt{'keep-client-headers'} - or ($res->header("Client-Warning") || "") eq "Internal response"; - -if ($opt{request}) { - $res->request->dump; - print "\n"; -} - -$res->dump(maxlength => $opt{'max-length'}); - -__END__ - -=head1 NAME - -lwp-dump - See what headers and content is returned for a URL - -=head1 SYNOPSIS - -B<lwp-dump> [ I<options> ] I<URL> - -=head1 DESCRIPTION - -The B<lwp-dump> program will get the resource identified by the URL and then -dump the response object to STDOUT. This will display the headers returned and -the initial part of the content, escaped so that it's safe to display even -binary content. The escapes syntax used is the same as for Perl's double -quoted strings. If there is no content the string "(no content)" is shown in -its place. - -The following options are recognized: - -=over - -=item B<--agent> I<string> - -Override the user agent string passed to the server. - -=item B<--keep-client-headers> - -LWP internally generate various C<Client-*> headers that are stripped by -B<lwp-dump> in order to show the headers exactly as the server provided them. -This option will suppress this. - -=item B<--max-length> I<n> - -How much of the content to show. The default is 512. Set this -to 0 for unlimited. - -If the content is longer then the string is chopped at the -limit and the string "...\n(### more bytes not shown)" -appended. - -=item B<--method> I<string> - -Use the given method for the request instead of the default "GET". - -=item B<--parse-head> - -By default B<lwp-dump> will not try to initialize headers by looking at the -head section of HTML documents. This option enables this. This corresponds to -L<LWP::UserAgent/"parse_head">. - -=item B<--request> - -Also dump the request sent. - -=back - -=head1 SEE ALSO - -L<lwp-request>, L<LWP>, L<HTTP::Message/"dump"> diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-dump.bat b/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-dump.bat deleted file mode 100644 index 3e8814f0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-dump.bat +++ /dev/null @@ -1,143 +0,0 @@ -@rem = '--*-Perl-*-- -@echo off -if "%OS%" == "Windows_NT" goto WinNT -IF EXIST "%~dp0perl.exe" ( -"%~dp0perl.exe" -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) ELSE IF EXIST "%~dp0..\..\bin\perl.exe" ( -"%~dp0..\..\bin\perl.exe" -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) ELSE ( -perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) - -goto endofperl -:WinNT -IF EXIST "%~dp0perl.exe" ( -"%~dp0perl.exe" -x -S %0 %* -) ELSE IF EXIST "%~dp0..\..\bin\perl.exe" ( -"%~dp0..\..\bin\perl.exe" -x -S %0 %* -) ELSE ( -perl -x -S %0 %* -) - -if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl -if %errorlevel% == 9009 echo You do not have Perl in your PATH. -if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul -goto endofperl -@rem '; -#!/usr/bin/perl -#line 29 - -use strict; -use warnings; -use LWP::UserAgent (); -use Getopt::Long qw(GetOptions); -use Encode; -use Encode::Locale; - -GetOptions(\my %opt, 'parse-head', 'max-length=n', 'keep-client-headers', - 'method=s', 'agent=s', 'request',) - || usage(); - -my $url = shift || usage(); -@ARGV && usage(); - -sub usage { - (my $progname = $0) =~ s,.*/,,; - die <<"EOT"; -Usage: $progname [options] <url> - -Recognized options are: - --agent <str> - --keep-client-headers - --max-length <n> - --method <str> - --parse-head - --request - -EOT -} - -my $ua = LWP::UserAgent->new( - parse_head => $opt{'parse-head'} || 0, - keep_alive => 1, - env_proxy => 1, - agent => $opt{agent} || "lwp-dump/$LWP::UserAgent::VERSION ", -); - -my $req = HTTP::Request->new($opt{method} || 'GET' => decode(locale => $url)); -my $res = $ua->simple_request($req); -$res->remove_header(grep /^Client-/, $res->header_field_names) - unless $opt{'keep-client-headers'} - or ($res->header("Client-Warning") || "") eq "Internal response"; - -if ($opt{request}) { - $res->request->dump; - print "\n"; -} - -$res->dump(maxlength => $opt{'max-length'}); - -__END__ - -=head1 NAME - -lwp-dump - See what headers and content is returned for a URL - -=head1 SYNOPSIS - -B<lwp-dump> [ I<options> ] I<URL> - -=head1 DESCRIPTION - -The B<lwp-dump> program will get the resource identified by the URL and then -dump the response object to STDOUT. This will display the headers returned and -the initial part of the content, escaped so that it's safe to display even -binary content. The escapes syntax used is the same as for Perl's double -quoted strings. If there is no content the string "(no content)" is shown in -its place. - -The following options are recognized: - -=over - -=item B<--agent> I<string> - -Override the user agent string passed to the server. - -=item B<--keep-client-headers> - -LWP internally generate various C<Client-*> headers that are stripped by -B<lwp-dump> in order to show the headers exactly as the server provided them. -This option will suppress this. - -=item B<--max-length> I<n> - -How much of the content to show. The default is 512. Set this -to 0 for unlimited. - -If the content is longer then the string is chopped at the -limit and the string "...\n(### more bytes not shown)" -appended. - -=item B<--method> I<string> - -Use the given method for the request instead of the default "GET". - -=item B<--parse-head> - -By default B<lwp-dump> will not try to initialize headers by looking at the -head section of HTML documents. This option enables this. This corresponds to -L<LWP::UserAgent/"parse_head">. - -=item B<--request> - -Also dump the request sent. - -=back - -=head1 SEE ALSO - -L<lwp-request>, L<LWP>, L<HTTP::Message/"dump"> - -__END__ -:endofperl diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-mirror b/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-mirror deleted file mode 100644 index 415076f2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-mirror +++ /dev/null @@ -1,103 +0,0 @@ -#!/usr/bin/perl - -# Simple mirror utility using LWP - -=head1 NAME - -lwp-mirror - Simple mirror utility - -=head1 SYNOPSIS - - lwp-mirror [-v] [-t timeout] <url> <local file> - -=head1 DESCRIPTION - -This program can be used to mirror a document from a WWW server. The -document is only transferred if the remote copy is newer than the local -copy. If the local copy is newer nothing happens. - -Use the C<-v> option to print the version number of this program. - -The timeout value specified with the C<-t> option. The timeout value -is the time that the program will wait for response from the remote -server before it fails. The default unit for the timeout value is -seconds. You might append "m" or "h" to the timeout value to make it -minutes or hours, respectively. - -Because this program is implemented using the LWP library, it only -supports the protocols that LWP supports. - -=head1 SEE ALSO - -L<lwp-request>, L<LWP> - -=head1 AUTHOR - -Gisle Aas <gisle@aas.no> - -=cut - -use strict; -use warnings; -use LWP::Simple qw(mirror is_success status_message $ua); -use Getopt::Std; -use Encode; -use Encode::Locale; - -my $progname = $0; -$progname =~ s,.*/,,; # use basename only -$progname =~ s/\.\w*$//; #strip extension if any - -my $opt_h; # print usage -my $opt_v; # print version -my $opt_t; # timeout - -unless (getopts("hvt:")) { - usage(); -} - -if ($opt_v) { - require LWP; - my $DISTNAME = 'libwww-perl-' . LWP::Version(); - die <<"EOT"; -This is lwp-mirror version $LWP::Simple::VERSION ($DISTNAME) - -Copyright 1995-1999, Gisle Aas. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. -EOT -} - -my $url = decode(locale => shift) or usage(); -my $file = encode(locale_fs => decode(locale => shift)) or usage(); -usage() if $opt_h or @ARGV; - -if (defined $opt_t) { - $opt_t =~ /^(\d+)([smh])?/; - die "$progname: Illegal timeout value!\n" unless defined $1; - my $timeout = $1; - $timeout *= 60 if ($2 eq "m"); - $timeout *= 3600 if ($2 eq "h"); - $ua->timeout($timeout); -} - -my $rc = mirror($url, $file); - -if ($rc == 304) { - print STDERR "$progname: $file is up to date\n"; -} -elsif (!is_success($rc)) { - print STDERR "$progname: $rc ", status_message($rc), " ($url)\n"; - exit 1; -} -exit; - - -sub usage { - die <<"EOT"; -Usage: $progname [-options] <url> <file> - -v print version number of program - -t <timeout> Set timeout value -EOT -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-mirror.bat b/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-mirror.bat deleted file mode 100644 index b75482b5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-mirror.bat +++ /dev/null @@ -1,133 +0,0 @@ -@rem = '--*-Perl-*-- -@echo off -if "%OS%" == "Windows_NT" goto WinNT -IF EXIST "%~dp0perl.exe" ( -"%~dp0perl.exe" -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) ELSE IF EXIST "%~dp0..\..\bin\perl.exe" ( -"%~dp0..\..\bin\perl.exe" -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) ELSE ( -perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) - -goto endofperl -:WinNT -IF EXIST "%~dp0perl.exe" ( -"%~dp0perl.exe" -x -S %0 %* -) ELSE IF EXIST "%~dp0..\..\bin\perl.exe" ( -"%~dp0..\..\bin\perl.exe" -x -S %0 %* -) ELSE ( -perl -x -S %0 %* -) - -if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl -if %errorlevel% == 9009 echo You do not have Perl in your PATH. -if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul -goto endofperl -@rem '; -#!/usr/bin/perl -#line 29 - -# Simple mirror utility using LWP - -=head1 NAME - -lwp-mirror - Simple mirror utility - -=head1 SYNOPSIS - - lwp-mirror [-v] [-t timeout] <url> <local file> - -=head1 DESCRIPTION - -This program can be used to mirror a document from a WWW server. The -document is only transferred if the remote copy is newer than the local -copy. If the local copy is newer nothing happens. - -Use the C<-v> option to print the version number of this program. - -The timeout value specified with the C<-t> option. The timeout value -is the time that the program will wait for response from the remote -server before it fails. The default unit for the timeout value is -seconds. You might append "m" or "h" to the timeout value to make it -minutes or hours, respectively. - -Because this program is implemented using the LWP library, it only -supports the protocols that LWP supports. - -=head1 SEE ALSO - -L<lwp-request>, L<LWP> - -=head1 AUTHOR - -Gisle Aas <gisle@aas.no> - -=cut - -use strict; -use warnings; -use LWP::Simple qw(mirror is_success status_message $ua); -use Getopt::Std; -use Encode; -use Encode::Locale; - -my $progname = $0; -$progname =~ s,.*/,,; # use basename only -$progname =~ s/\.\w*$//; #strip extension if any - -my $opt_h; # print usage -my $opt_v; # print version -my $opt_t; # timeout - -unless (getopts("hvt:")) { - usage(); -} - -if ($opt_v) { - require LWP; - my $DISTNAME = 'libwww-perl-' . LWP::Version(); - die <<"EOT"; -This is lwp-mirror version $LWP::Simple::VERSION ($DISTNAME) - -Copyright 1995-1999, Gisle Aas. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. -EOT -} - -my $url = decode(locale => shift) or usage(); -my $file = encode(locale_fs => decode(locale => shift)) or usage(); -usage() if $opt_h or @ARGV; - -if (defined $opt_t) { - $opt_t =~ /^(\d+)([smh])?/; - die "$progname: Illegal timeout value!\n" unless defined $1; - my $timeout = $1; - $timeout *= 60 if ($2 eq "m"); - $timeout *= 3600 if ($2 eq "h"); - $ua->timeout($timeout); -} - -my $rc = mirror($url, $file); - -if ($rc == 304) { - print STDERR "$progname: $file is up to date\n"; -} -elsif (!is_success($rc)) { - print STDERR "$progname: $rc ", status_message($rc), " ($url)\n"; - exit 1; -} -exit; - - -sub usage { - die <<"EOT"; -Usage: $progname [-options] <url> <file> - -v print version number of program - -t <timeout> Set timeout value -EOT -} - -__END__ -:endofperl diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-request b/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-request deleted file mode 100644 index d3c5bc5b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-request +++ /dev/null @@ -1,560 +0,0 @@ -#!/usr/bin/perl - -# Simple user agent using LWP library. - -=head1 NAME - -lwp-request, GET, POST, HEAD - Simple command line user agent - -=head1 SYNOPSIS - -B<lwp-request> [B<-afPuUsSedvhx>] [B<-m> I<method>] [B<-b> I<base URL>] [B<-t> I<timeout>] - [B<-i> I<if-modified-since>] [B<-c> I<content-type>] - [B<-C> I<credentials>] [B<-p> I<proxy-url>] [B<-o> I<format>] I<url>... - -=head1 DESCRIPTION - -This program can be used to send requests to WWW servers and your -local file system. The request content for POST and PUT -methods is read from stdin. The content of the response is printed on -stdout. Error messages are printed on stderr. The program returns a -status value indicating the number of URLs that failed. - -The options are: - -=over 4 - -=item -m <method> - -Set which method to use for the request. If this option is not used, -then the method is derived from the name of the program. - -=item -f - -Force request through, even if the program believes that the method is -illegal. The server might reject the request eventually. - -=item -b <uri> - -This URI will be used as the base URI for resolving all relative URIs -given as argument. - -=item -t <timeout> - -Set the timeout value for the requests. The timeout is the amount of -time that the program will wait for a response from the remote server -before it fails. The default unit for the timeout value is seconds. -You might append "m" or "h" to the timeout value to make it minutes or -hours, respectively. The default timeout is '3m', i.e. 3 minutes. - -=item -i <time> - -Set the If-Modified-Since header in the request. If I<time> is the -name of a file, use the modification timestamp for this file. If -I<time> is not a file, it is parsed as a literal date. Take a look at -L<HTTP::Date> for recognized formats. - -=item -c <content-type> - -Set the Content-Type for the request. This option is only allowed for -requests that take a content, i.e. POST and PUT. You can -force methods to take content by using the C<-f> option together with -C<-c>. The default Content-Type for POST is -C<application/x-www-form-urlencoded>. The default Content-type for -the others is C<text/plain>. - -=item -p <proxy-url> - -Set the proxy to be used for the requests. The program also loads -proxy settings from the environment. You can disable this with the -C<-P> option. - -=item -P - -Don't load proxy settings from environment. - -=item -H <header> - -Send this HTTP header with each request. You can specify several, e.g.: - - lwp-request \ - -H 'Referer: http://other.url/' \ - -H 'Host: somehost' \ - http://this.url/ - -=item -C <username>:<password> - -Provide credentials for documents that are protected by Basic -Authentication. If the document is protected and you did not specify -the username and password with this option, then you will be prompted -to provide these values. - -=back - -The following options controls what is displayed by the program: - -=over 4 - -=item -u - -Print request method and absolute URL as requests are made. - -=item -U - -Print request headers in addition to request method and absolute URL. - -=item -s - -Print response status code. This option is always on for HEAD requests. - -=item -S - -Print response status chain. This shows redirect and authorization -requests that are handled by the library. - -=item -e - -Print response headers. This option is always on for HEAD requests. - -=item -E - -Print response status chain with full response headers. - -=item -d - -Do B<not> print the content of the response. - -=item -o <format> - -Process HTML content in various ways before printing it. If the -content type of the response is not HTML, then this option has no -effect. The legal format values are; C<text>, C<ps>, C<links>, -C<html> and C<dump>. - -If you specify the C<text> format then the HTML will be formatted as -plain C<latin1> text. If you specify the C<ps> format then it will be -formatted as Postscript. - -The C<links> format will output all links found in the HTML document. -Relative links will be expanded to absolute ones. - -The C<html> format will reformat the HTML code and the C<dump> format -will just dump the HTML syntax tree. - -Note that the C<HTML-Tree> distribution needs to be installed for this -option to work. In addition the C<HTML-Format> distribution needs to -be installed for C<-o text> or C<-o ps> to work. - -=item -v - -Print the version number of the program and quit. - -=item -h - -Print usage message and quit. - -=item -a - -Set text(ascii) mode for content input and output. If this option is not -used, content input and output is done in binary mode. - -=back - -Because this program is implemented using the LWP library, it will -only support the protocols that LWP supports. - -=head1 SEE ALSO - -L<lwp-mirror>, L<LWP> - -=head1 COPYRIGHT - -Copyright 1995-1999 Gisle Aas. - -This library is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=head1 AUTHOR - -Gisle Aas <gisle@aas.no> - -=cut - -use strict; -use warnings; - -my $progname = $0; -$progname =~ s,.*[\\/],,; # use basename only -$progname =~ s/\.\w*$//; # strip extension, if any - -require LWP; - -use URI; -use URI::Heuristic qw(uf_uri); -use Encode; -use Encode::Locale; - -use HTTP::Status qw(status_message); -use HTTP::Date qw(time2str str2time); - - -# This table lists the methods that are allowed. It should really be -# a superset for all methods supported for every scheme that may be -# supported by the library. Currently it might be a bit too HTTP -# specific. You might use the -f option to force a method through. -# -# "" = No content in request, "C" = Needs content in request -# -my %allowed_methods = ( - GET => "", - HEAD => "", - POST => "C", - PUT => "C", - DELETE => "", - TRACE => "", - OPTIONS => "", -); - - -# We make our own specialization of LWP::UserAgent that asks for -# user/password if document is protected. -{ - - package RequestAgent; -$RequestAgent::VERSION = '6.26'; -use strict; - use warnings; - use base qw(LWP::UserAgent); - - sub new { - my $self = LWP::UserAgent::new(@_); - $self->agent("lwp-request/$LWP::VERSION "); - $self; - } - - sub get_basic_credentials { - my ($self, $realm, $uri) = @_; - if ($main::options{'C'}) { - return split(':', $main::options{'C'}, 2); - } - elsif (-t) { - my $netloc = $uri->host_port; - print STDERR "Enter username for $realm at $netloc: "; - my $user = <STDIN>; - chomp($user); - return (undef, undef) unless length $user; - print STDERR "Password: "; - system("stty -echo"); - my $password = <STDIN>; - system("stty echo"); - print STDERR "\n"; # because we disabled echo - chomp($password); - return ($user, $password); - } - else { - return (undef, undef); - } - } -} - -my $method = uc(lc($progname) eq "lwp-request" ? "GET" : $progname); - -# Parse command line -use Getopt::Long; -my %options; -my @getopt_args = ( - 'a', # content i/o in text(ascii) mode - 'm=s', # set method - 'f', # make request even if method is not in %allowed_methods - 'b=s', # base url - 't=s', # timeout - 'i=s', # if-modified-since - 'c=s', # content type for POST - 'C=s', # credentials for basic authorization - 'H=s@', # extra headers, form "Header: value string" - # - 'u', # display method and URL of request - 'U', # display request headers also - 's', # display status code - 'S', # display whole chain of status codes - 'e', # display response headers (default for HEAD) - 'E', # display whole chain of headers - 'd', # don't display content - # - 'h', # print usage - 'v', # print version - # - 'p=s', # proxy URL - 'P', # don't load proxy setting from environment - # - 'o=s', # output format -); - -Getopt::Long::config("noignorecase", "bundling"); -unless (GetOptions(\%options, @getopt_args)) { - usage(); -} -if ($options{'v'}) { - require LWP; - my $DISTNAME = 'libwww-perl-' . LWP::Version(); - die <<"EOT"; -This is lwp-request version $LWP::VERSION ($DISTNAME) - -Copyright 1995-1999, Gisle Aas. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. -EOT -} - -usage() if $options{'h'} || !@ARGV; - -# Create the user agent object -my $ua = RequestAgent->new; - -# Load proxy settings from *_proxy environment variables. -$ua->env_proxy unless $options{'P'}; - -$method = uc($options{'m'}) if defined $options{'m'}; - -if ($options{'f'}) { - if ($options{'c'}) { - $allowed_methods{$method} = "C"; # force content - } - else { - $allowed_methods{$method} = ""; - } -} -elsif (!defined $allowed_methods{$method}) { - die "$progname: $method is not an allowed method\n"; -} - -if ($options{'S'} || $options{'E'}) { - $options{'U'} = 1 if $options{'E'}; - $options{'E'} = 1 if $options{'e'}; - $options{'S'} = 1; - $options{'s'} = 1; - $options{'u'} = 1; -} - -if ($method eq "HEAD") { - $options{'s'} = 1; - $options{'e'} = 1 unless $options{'d'}; - $options{'d'} = 1; -} - -$options{'u'} = 1 if $options{'U'}; -$options{'s'} = 1 if $options{'e'}; - -if (defined $options{'t'}) { - $options{'t'} =~ /^(\d+)([smh])?/; - die "$progname: Illegal timeout value!\n" unless defined $1; - my $timeout = $1; - if (defined $2) { - $timeout *= 60 if $2 eq "m"; - $timeout *= 3600 if $2 eq "h"; - } - $ua->timeout($timeout); -} - -if (defined $options{'i'}) { - my $time; - if (-e $options{'i'}) { - $time = (stat _)[9]; - } - else { - $time = str2time($options{'i'}); - die "$progname: Illegal time syntax for -i option\n" - unless defined $time; - } - $options{'i'} = time2str($time); -} - -my $content; -my $user_ct; -if ($allowed_methods{$method} eq "C") { - - # This request needs some content - unless (defined $options{'c'}) { - - # set default content type - $options{'c'} - = ($method eq "POST") - ? "application/x-www-form-urlencoded" - : "text/plain"; - } - else { - die "$progname: Illegal Content-type format\n" - unless $options{'c'} =~ m,^[\w\-]+/[\w\-.+]+(?:\s*;.*)?$,; - $user_ct++; - } - print STDERR "Please enter content ($options{'c'}) to be ${method}ed:\n" - if -t; - binmode STDIN unless -t or $options{'a'}; - $content = join("", <STDIN>); -} -else { - die "$progname: Can't set Content-type for $method requests\n" - if defined $options{'c'}; -} - -# Set up a request. We will use the same request object for all URLs. -my $request = HTTP::Request->new($method); -$request->header('If-Modified-Since', $options{'i'}) if defined $options{'i'}; -for my $user_header (@{$options{'H'} || []}) { - my ($header_name, $header_value) = split /\s*:\s*/, $user_header, 2; - $header_name =~ s/^\s+//; - if (lc($header_name) eq "user-agent") { - $header_value .= $ua->agent if $header_value =~ /\s\z/; - $ua->agent($header_value); - } - else { - $request->push_header($header_name, $header_value); - } -} - -#$request->header('Accept', '*/*'); -if ($options{'c'}) { # will always be set for request that wants content - my $header = ($user_ct ? 'header' : 'init_header'); - $request->$header('Content-Type', $options{'c'}); - $request->header('Content-Length', length $content); # Not really needed - $request->content($content); -} - -my $errors = 0; - -sub show { - my $r = shift; - my $last = shift; - print $method, " ", $r->request->uri->as_string, "\n" if $options{'u'}; - print $r->request->headers_as_string, "\n" if $options{'U'}; - print $r->status_line, "\n" if $options{'s'}; - print $r->headers_as_string, "\n" if $options{'E'} or $last; -} - -# Ok, now we perform the requests, one URL at a time -while (my $url = shift) { - - # Create the URL object, but protect us against bad URLs - eval { - if ($url =~ /^\w+:/ || $options{'b'}) - { # is there any scheme specification - $url = URI->new(decode(locale => $url), - decode(locale => $options{'b'})); - $url = $url->abs(decode(locale => $options{'b'})) if $options{'b'}; - } - else { - $url = uf_uri($url); - } - }; - if ($@) { - $@ =~ s/ at .* line \d+.*//; - print STDERR $@; - $errors++; - next; - } - - $ua->proxy($url->scheme, decode(locale => $options{'p'})) if $options{'p'}; - - # Send the request and get a response back from the server - $request->uri($url); - my $response = $ua->request($request); - - if ($options{'S'}) { - for my $r ($response->redirects) { - show($r); - } - } - show($response, $options{'e'}); - - unless ($options{'d'}) { - if ($options{'o'} && $response->content_type eq 'text/html') { - eval { require HTML::Parse; }; - if ($@) { - if ($@ =~ m,^Can't locate HTML/Parse.pm in \@INC,) { - die - "The HTML-Tree distribution need to be installed for the -o option to be used.\n"; - } - else { - die $@; - } - } - my $html = HTML::Parse::parse_html($response->content); - { - $options{'o'} eq 'ps' && do { - require HTML::FormatPS; - my $f = HTML::FormatPS->new; - print $f->format($html); - last; - }; - $options{'o'} eq 'text' && do { - require HTML::FormatText; - my $f = HTML::FormatText->new; - print $f->format($html); - last; - }; - $options{'o'} eq 'html' && do { - print $html->as_HTML; - last; - }; - $options{'o'} eq 'links' && do { - my $base = $response->base; - $base = $options{'b'} if $options{'b'}; - for (@{$html->extract_links}) { - my ($link, $elem) = @$_; - my $tag = uc $elem->tag; - $link = URI->new($link)->abs($base)->as_string; - print "$tag\t$link\n"; - } - last; - }; - $options{'o'} eq 'dump' && do { - $html->dump; - last; - }; - - # It is bad to not notice this before now :-( - die "Illegal -o option value ($options{'o'})\n"; - } - } - else { - binmode STDOUT unless $options{'a'}; - print $response->content; - } - } - - $errors++ unless $response->is_success; -} - -exit $errors; - - -sub usage { - die <<"EOT"; -Usage: $progname [-options] <url>... - -m <method> use method for the request (default is '$method') - -f make request even if $progname believes method is illegal - -b <base> Use the specified URL as base - -t <timeout> Set timeout value - -i <time> Set the If-Modified-Since header on the request - -c <conttype> use this content-type for POST, PUT, CHECKIN - -a Use text mode for content I/O - -p <proxyurl> use this as a proxy - -P don't load proxy settings from environment - -H <header> send this HTTP header (you can specify several) - -C <username>:<password> - provide credentials for basic authentication - - -u Display method and URL before any response - -U Display request headers (implies -u) - -s Display response status code - -S Display response status chain (implies -u) - -e Display response headers (implies -s) - -E Display whole chain of headers (implies -S and -U) - -d Do not display content - -o <format> Process HTML content in various ways - - -v Show program version - -h Print this message -EOT -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-request.bat b/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-request.bat deleted file mode 100644 index e9b94980..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/lwp-request.bat +++ /dev/null @@ -1,590 +0,0 @@ -@rem = '--*-Perl-*-- -@echo off -if "%OS%" == "Windows_NT" goto WinNT -IF EXIST "%~dp0perl.exe" ( -"%~dp0perl.exe" -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) ELSE IF EXIST "%~dp0..\..\bin\perl.exe" ( -"%~dp0..\..\bin\perl.exe" -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) ELSE ( -perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) - -goto endofperl -:WinNT -IF EXIST "%~dp0perl.exe" ( -"%~dp0perl.exe" -x -S %0 %* -) ELSE IF EXIST "%~dp0..\..\bin\perl.exe" ( -"%~dp0..\..\bin\perl.exe" -x -S %0 %* -) ELSE ( -perl -x -S %0 %* -) - -if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl -if %errorlevel% == 9009 echo You do not have Perl in your PATH. -if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul -goto endofperl -@rem '; -#!/usr/bin/perl -#line 29 - -# Simple user agent using LWP library. - -=head1 NAME - -lwp-request, GET, POST, HEAD - Simple command line user agent - -=head1 SYNOPSIS - -B<lwp-request> [B<-afPuUsSedvhx>] [B<-m> I<method>] [B<-b> I<base URL>] [B<-t> I<timeout>] - [B<-i> I<if-modified-since>] [B<-c> I<content-type>] - [B<-C> I<credentials>] [B<-p> I<proxy-url>] [B<-o> I<format>] I<url>... - -=head1 DESCRIPTION - -This program can be used to send requests to WWW servers and your -local file system. The request content for POST and PUT -methods is read from stdin. The content of the response is printed on -stdout. Error messages are printed on stderr. The program returns a -status value indicating the number of URLs that failed. - -The options are: - -=over 4 - -=item -m <method> - -Set which method to use for the request. If this option is not used, -then the method is derived from the name of the program. - -=item -f - -Force request through, even if the program believes that the method is -illegal. The server might reject the request eventually. - -=item -b <uri> - -This URI will be used as the base URI for resolving all relative URIs -given as argument. - -=item -t <timeout> - -Set the timeout value for the requests. The timeout is the amount of -time that the program will wait for a response from the remote server -before it fails. The default unit for the timeout value is seconds. -You might append "m" or "h" to the timeout value to make it minutes or -hours, respectively. The default timeout is '3m', i.e. 3 minutes. - -=item -i <time> - -Set the If-Modified-Since header in the request. If I<time> is the -name of a file, use the modification timestamp for this file. If -I<time> is not a file, it is parsed as a literal date. Take a look at -L<HTTP::Date> for recognized formats. - -=item -c <content-type> - -Set the Content-Type for the request. This option is only allowed for -requests that take a content, i.e. POST and PUT. You can -force methods to take content by using the C<-f> option together with -C<-c>. The default Content-Type for POST is -C<application/x-www-form-urlencoded>. The default Content-type for -the others is C<text/plain>. - -=item -p <proxy-url> - -Set the proxy to be used for the requests. The program also loads -proxy settings from the environment. You can disable this with the -C<-P> option. - -=item -P - -Don't load proxy settings from environment. - -=item -H <header> - -Send this HTTP header with each request. You can specify several, e.g.: - - lwp-request \ - -H 'Referer: http://other.url/' \ - -H 'Host: somehost' \ - http://this.url/ - -=item -C <username>:<password> - -Provide credentials for documents that are protected by Basic -Authentication. If the document is protected and you did not specify -the username and password with this option, then you will be prompted -to provide these values. - -=back - -The following options controls what is displayed by the program: - -=over 4 - -=item -u - -Print request method and absolute URL as requests are made. - -=item -U - -Print request headers in addition to request method and absolute URL. - -=item -s - -Print response status code. This option is always on for HEAD requests. - -=item -S - -Print response status chain. This shows redirect and authorization -requests that are handled by the library. - -=item -e - -Print response headers. This option is always on for HEAD requests. - -=item -E - -Print response status chain with full response headers. - -=item -d - -Do B<not> print the content of the response. - -=item -o <format> - -Process HTML content in various ways before printing it. If the -content type of the response is not HTML, then this option has no -effect. The legal format values are; C<text>, C<ps>, C<links>, -C<html> and C<dump>. - -If you specify the C<text> format then the HTML will be formatted as -plain C<latin1> text. If you specify the C<ps> format then it will be -formatted as Postscript. - -The C<links> format will output all links found in the HTML document. -Relative links will be expanded to absolute ones. - -The C<html> format will reformat the HTML code and the C<dump> format -will just dump the HTML syntax tree. - -Note that the C<HTML-Tree> distribution needs to be installed for this -option to work. In addition the C<HTML-Format> distribution needs to -be installed for C<-o text> or C<-o ps> to work. - -=item -v - -Print the version number of the program and quit. - -=item -h - -Print usage message and quit. - -=item -a - -Set text(ascii) mode for content input and output. If this option is not -used, content input and output is done in binary mode. - -=back - -Because this program is implemented using the LWP library, it will -only support the protocols that LWP supports. - -=head1 SEE ALSO - -L<lwp-mirror>, L<LWP> - -=head1 COPYRIGHT - -Copyright 1995-1999 Gisle Aas. - -This library is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=head1 AUTHOR - -Gisle Aas <gisle@aas.no> - -=cut - -use strict; -use warnings; - -my $progname = $0; -$progname =~ s,.*[\\/],,; # use basename only -$progname =~ s/\.\w*$//; # strip extension, if any - -require LWP; - -use URI; -use URI::Heuristic qw(uf_uri); -use Encode; -use Encode::Locale; - -use HTTP::Status qw(status_message); -use HTTP::Date qw(time2str str2time); - - -# This table lists the methods that are allowed. It should really be -# a superset for all methods supported for every scheme that may be -# supported by the library. Currently it might be a bit too HTTP -# specific. You might use the -f option to force a method through. -# -# "" = No content in request, "C" = Needs content in request -# -my %allowed_methods = ( - GET => "", - HEAD => "", - POST => "C", - PUT => "C", - DELETE => "", - TRACE => "", - OPTIONS => "", -); - - -# We make our own specialization of LWP::UserAgent that asks for -# user/password if document is protected. -{ - - package RequestAgent; -$RequestAgent::VERSION = '6.26'; -use strict; - use warnings; - use base qw(LWP::UserAgent); - - sub new { - my $self = LWP::UserAgent::new(@_); - $self->agent("lwp-request/$LWP::VERSION "); - $self; - } - - sub get_basic_credentials { - my ($self, $realm, $uri) = @_; - if ($main::options{'C'}) { - return split(':', $main::options{'C'}, 2); - } - elsif (-t) { - my $netloc = $uri->host_port; - print STDERR "Enter username for $realm at $netloc: "; - my $user = <STDIN>; - chomp($user); - return (undef, undef) unless length $user; - print STDERR "Password: "; - system("stty -echo"); - my $password = <STDIN>; - system("stty echo"); - print STDERR "\n"; # because we disabled echo - chomp($password); - return ($user, $password); - } - else { - return (undef, undef); - } - } -} - -my $method = uc(lc($progname) eq "lwp-request" ? "GET" : $progname); - -# Parse command line -use Getopt::Long; -my %options; -my @getopt_args = ( - 'a', # content i/o in text(ascii) mode - 'm=s', # set method - 'f', # make request even if method is not in %allowed_methods - 'b=s', # base url - 't=s', # timeout - 'i=s', # if-modified-since - 'c=s', # content type for POST - 'C=s', # credentials for basic authorization - 'H=s@', # extra headers, form "Header: value string" - # - 'u', # display method and URL of request - 'U', # display request headers also - 's', # display status code - 'S', # display whole chain of status codes - 'e', # display response headers (default for HEAD) - 'E', # display whole chain of headers - 'd', # don't display content - # - 'h', # print usage - 'v', # print version - # - 'p=s', # proxy URL - 'P', # don't load proxy setting from environment - # - 'o=s', # output format -); - -Getopt::Long::config("noignorecase", "bundling"); -unless (GetOptions(\%options, @getopt_args)) { - usage(); -} -if ($options{'v'}) { - require LWP; - my $DISTNAME = 'libwww-perl-' . LWP::Version(); - die <<"EOT"; -This is lwp-request version $LWP::VERSION ($DISTNAME) - -Copyright 1995-1999, Gisle Aas. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. -EOT -} - -usage() if $options{'h'} || !@ARGV; - -# Create the user agent object -my $ua = RequestAgent->new; - -# Load proxy settings from *_proxy environment variables. -$ua->env_proxy unless $options{'P'}; - -$method = uc($options{'m'}) if defined $options{'m'}; - -if ($options{'f'}) { - if ($options{'c'}) { - $allowed_methods{$method} = "C"; # force content - } - else { - $allowed_methods{$method} = ""; - } -} -elsif (!defined $allowed_methods{$method}) { - die "$progname: $method is not an allowed method\n"; -} - -if ($options{'S'} || $options{'E'}) { - $options{'U'} = 1 if $options{'E'}; - $options{'E'} = 1 if $options{'e'}; - $options{'S'} = 1; - $options{'s'} = 1; - $options{'u'} = 1; -} - -if ($method eq "HEAD") { - $options{'s'} = 1; - $options{'e'} = 1 unless $options{'d'}; - $options{'d'} = 1; -} - -$options{'u'} = 1 if $options{'U'}; -$options{'s'} = 1 if $options{'e'}; - -if (defined $options{'t'}) { - $options{'t'} =~ /^(\d+)([smh])?/; - die "$progname: Illegal timeout value!\n" unless defined $1; - my $timeout = $1; - if (defined $2) { - $timeout *= 60 if $2 eq "m"; - $timeout *= 3600 if $2 eq "h"; - } - $ua->timeout($timeout); -} - -if (defined $options{'i'}) { - my $time; - if (-e $options{'i'}) { - $time = (stat _)[9]; - } - else { - $time = str2time($options{'i'}); - die "$progname: Illegal time syntax for -i option\n" - unless defined $time; - } - $options{'i'} = time2str($time); -} - -my $content; -my $user_ct; -if ($allowed_methods{$method} eq "C") { - - # This request needs some content - unless (defined $options{'c'}) { - - # set default content type - $options{'c'} - = ($method eq "POST") - ? "application/x-www-form-urlencoded" - : "text/plain"; - } - else { - die "$progname: Illegal Content-type format\n" - unless $options{'c'} =~ m,^[\w\-]+/[\w\-.+]+(?:\s*;.*)?$,; - $user_ct++; - } - print STDERR "Please enter content ($options{'c'}) to be ${method}ed:\n" - if -t; - binmode STDIN unless -t or $options{'a'}; - $content = join("", <STDIN>); -} -else { - die "$progname: Can't set Content-type for $method requests\n" - if defined $options{'c'}; -} - -# Set up a request. We will use the same request object for all URLs. -my $request = HTTP::Request->new($method); -$request->header('If-Modified-Since', $options{'i'}) if defined $options{'i'}; -for my $user_header (@{$options{'H'} || []}) { - my ($header_name, $header_value) = split /\s*:\s*/, $user_header, 2; - $header_name =~ s/^\s+//; - if (lc($header_name) eq "user-agent") { - $header_value .= $ua->agent if $header_value =~ /\s\z/; - $ua->agent($header_value); - } - else { - $request->push_header($header_name, $header_value); - } -} - -#$request->header('Accept', '*/*'); -if ($options{'c'}) { # will always be set for request that wants content - my $header = ($user_ct ? 'header' : 'init_header'); - $request->$header('Content-Type', $options{'c'}); - $request->header('Content-Length', length $content); # Not really needed - $request->content($content); -} - -my $errors = 0; - -sub show { - my $r = shift; - my $last = shift; - print $method, " ", $r->request->uri->as_string, "\n" if $options{'u'}; - print $r->request->headers_as_string, "\n" if $options{'U'}; - print $r->status_line, "\n" if $options{'s'}; - print $r->headers_as_string, "\n" if $options{'E'} or $last; -} - -# Ok, now we perform the requests, one URL at a time -while (my $url = shift) { - - # Create the URL object, but protect us against bad URLs - eval { - if ($url =~ /^\w+:/ || $options{'b'}) - { # is there any scheme specification - $url = URI->new(decode(locale => $url), - decode(locale => $options{'b'})); - $url = $url->abs(decode(locale => $options{'b'})) if $options{'b'}; - } - else { - $url = uf_uri($url); - } - }; - if ($@) { - $@ =~ s/ at .* line \d+.*//; - print STDERR $@; - $errors++; - next; - } - - $ua->proxy($url->scheme, decode(locale => $options{'p'})) if $options{'p'}; - - # Send the request and get a response back from the server - $request->uri($url); - my $response = $ua->request($request); - - if ($options{'S'}) { - for my $r ($response->redirects) { - show($r); - } - } - show($response, $options{'e'}); - - unless ($options{'d'}) { - if ($options{'o'} && $response->content_type eq 'text/html') { - eval { require HTML::Parse; }; - if ($@) { - if ($@ =~ m,^Can't locate HTML/Parse.pm in \@INC,) { - die - "The HTML-Tree distribution need to be installed for the -o option to be used.\n"; - } - else { - die $@; - } - } - my $html = HTML::Parse::parse_html($response->content); - { - $options{'o'} eq 'ps' && do { - require HTML::FormatPS; - my $f = HTML::FormatPS->new; - print $f->format($html); - last; - }; - $options{'o'} eq 'text' && do { - require HTML::FormatText; - my $f = HTML::FormatText->new; - print $f->format($html); - last; - }; - $options{'o'} eq 'html' && do { - print $html->as_HTML; - last; - }; - $options{'o'} eq 'links' && do { - my $base = $response->base; - $base = $options{'b'} if $options{'b'}; - for (@{$html->extract_links}) { - my ($link, $elem) = @$_; - my $tag = uc $elem->tag; - $link = URI->new($link)->abs($base)->as_string; - print "$tag\t$link\n"; - } - last; - }; - $options{'o'} eq 'dump' && do { - $html->dump; - last; - }; - - # It is bad to not notice this before now :-( - die "Illegal -o option value ($options{'o'})\n"; - } - } - else { - binmode STDOUT unless $options{'a'}; - print $response->content; - } - } - - $errors++ unless $response->is_success; -} - -exit $errors; - - -sub usage { - die <<"EOT"; -Usage: $progname [-options] <url>... - -m <method> use method for the request (default is '$method') - -f make request even if $progname believes method is illegal - -b <base> Use the specified URL as base - -t <timeout> Set timeout value - -i <time> Set the If-Modified-Since header on the request - -c <conttype> use this content-type for POST, PUT, CHECKIN - -a Use text mode for content I/O - -p <proxyurl> use this as a proxy - -P don't load proxy settings from environment - -H <header> send this HTTP header (you can specify several) - -C <username>:<password> - provide credentials for basic authentication - - -u Display method and URL before any response - -U Display request headers (implies -u) - -s Display response status code - -S Display response status chain (implies -u) - -e Display response headers (implies -s) - -E Display whole chain of headers (implies -S and -U) - -d Do not display content - -o <format> Process HTML content in various ways - - -v Show program version - -h Print this message -EOT -} - -__END__ -:endofperl diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/piconv b/software/Slic3r-1.3.0.64bit/local-lib/bin/piconv deleted file mode 100644 index 2218d16f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/piconv +++ /dev/null @@ -1,319 +0,0 @@ -#!./perl -# $Id: piconv,v 2.8 2016/08/04 03:15:58 dankogai Exp $ -# -BEGIN { pop @INC if $INC[-1] eq '.' } -use 5.8.0; -use strict; -use Encode ; -use Encode::Alias; -my %Scheme = map {$_ => 1} qw(from_to decode_encode perlio); - -use File::Basename; -my $name = basename($0); - -use Getopt::Long qw(:config no_ignore_case); - -my %Opt; - -help() - unless - GetOptions(\%Opt, - 'from|f=s', - 'to|t=s', - 'list|l', - 'string|s=s', - 'check|C=i', - 'c', - 'perlqq|p', - 'htmlcref', - 'xmlcref', - 'debug|D', - 'scheme|S=s', - 'resolve|r=s', - 'help', - ); - -$Opt{help} and help(); -$Opt{list} and list_encodings(); -my $locale = $ENV{LC_CTYPE} || $ENV{LC_ALL} || $ENV{LANG}; -defined $Opt{resolve} and resolve_encoding($Opt{resolve}); -$Opt{from} || $Opt{to} || help(); -my $from = $Opt{from} || $locale or help("from_encoding unspecified"); -my $to = $Opt{to} || $locale or help("to_encoding unspecified"); -$Opt{string} and Encode::from_to($Opt{string}, $from, $to) and print $Opt{string} and exit; -my $scheme = do { - if (defined $Opt{scheme}) { - if (!exists $Scheme{$Opt{scheme}}) { - warn "Unknown scheme '$Opt{scheme}', fallback to 'from_to'.\n"; - 'from_to'; - } else { - $Opt{scheme}; - } - } else { - 'from_to'; - } -}; - -$Opt{check} ||= $Opt{c}; -$Opt{perlqq} and $Opt{check} = Encode::PERLQQ; -$Opt{htmlcref} and $Opt{check} = Encode::HTMLCREF; -$Opt{xmlcref} and $Opt{check} = Encode::XMLCREF; - -my $efrom = Encode->getEncoding($from) || die "Unknown encoding '$from'"; -my $eto = Encode->getEncoding($to) || die "Unknown encoding '$to'"; - -my $cfrom = $efrom->name; -my $cto = $eto->name; - -if ($Opt{debug}){ - print <<"EOT"; -Scheme: $scheme -From: $from => $cfrom -To: $to => $cto -EOT -} - -my %use_bom = - map { $_ => 1 } qw/UTF-16 UTF-16BE UTF-16LE UTF-32 UTF-32BE UTF-32LE/; - -# we do not use <> (or ARGV) for the sake of binmode() -@ARGV or push @ARGV, \*STDIN; - -unless ( $scheme eq 'perlio' ) { - binmode STDOUT; - my $need2slurp = $use_bom{ $eto } || $use_bom{ $efrom }; - for my $argv (@ARGV) { - my $ifh = ref $argv ? $argv : undef; - $ifh or open $ifh, "<", $argv or warn "Can't open $argv: $!" and next; - $ifh or open $ifh, "<", $argv or next; - binmode $ifh; - if ( $scheme eq 'from_to' ) { # default - if ($need2slurp){ - local $/; - $_ = <$ifh>; - Encode::from_to( $_, $from, $to, $Opt{check} ); - print; - }else{ - while (<$ifh>) { - Encode::from_to( $_, $from, $to, $Opt{check} ); - print; - } - } - } - elsif ( $scheme eq 'decode_encode' ) { # step-by-step - if ($need2slurp){ - local $/; - $_ = <$ifh>; - my $decoded = decode( $from, $_, $Opt{check} ); - my $encoded = encode( $to, $decoded ); - print $encoded; - }else{ - while (<$ifh>) { - my $decoded = decode( $from, $_, $Opt{check} ); - my $encoded = encode( $to, $decoded ); - print $encoded; - } - } - } - else { # won't reach - die "$name: unknown scheme: $scheme"; - } - } -} -else { - - # NI-S favorite - binmode STDOUT => "raw:encoding($to)"; - for my $argv (@ARGV) { - my $ifh = ref $argv ? $argv : undef; - $ifh or open $ifh, "<", $argv or warn "Can't open $argv: $!" and next; - $ifh or open $ifh, "<", $argv or next; - binmode $ifh => "raw:encoding($from)"; - print while (<$ifh>); - } -} - -sub list_encodings { - print join( "\n", Encode->encodings(":all") ), "\n"; - exit 0; -} - -sub resolve_encoding { - if ( my $alias = Encode::resolve_alias( $_[0] ) ) { - print $alias, "\n"; - exit 0; - } - else { - warn "$name: $_[0] is not known to Encode\n"; - exit 1; - } -} - -sub help { - my $message = shift; - $message and print STDERR "$name error: $message\n"; - print STDERR <<"EOT"; -$name [-f from_encoding] [-t to_encoding] - [-p|--perlqq|--htmlcref|--xmlcref] [-C N|-c] [-D] [-S scheme] - [-s string|file...] -$name -l -$name -r encoding_alias -$name -h -Common options: - -l,--list - lists all available encodings - -r,--resolve encoding_alias - resolve encoding to its (Encode) canonical name - -f,--from from_encoding - when omitted, the current locale will be used - -t,--to to_encoding - when omitted, the current locale will be used - -s,--string string - "string" will be the input instead of STDIN or files -The following are mainly of interest to Encode hackers: - -C N | -c check the validity of the input - -D,--debug show debug information - -S,--scheme scheme use the scheme for conversion -Those are handy when you can only see ASCII characters: - -p,--perlqq transliterate characters missing in encoding to \\x{HHHH} - where HHHH is the hexadecimal Unicode code point - --htmlcref transliterate characters missing in encoding to &#NNN; - where NNN is the decimal Unicode code point - --xmlcref transliterate characters missing in encoding to &#xHHHH; - where HHHH is the hexadecimal Unicode code point - -EOT - exit; -} - -__END__ - -=head1 NAME - -piconv -- iconv(1), reinvented in perl - -=head1 SYNOPSIS - - piconv [-f from_encoding] [-t to_encoding] - [-p|--perlqq|--htmlcref|--xmlcref] [-C N|-c] [-D] [-S scheme] - [-s string|file...] - piconv -l - piconv -r encoding_alias - piconv -h - -=head1 DESCRIPTION - -B<piconv> is perl version of B<iconv>, a character encoding converter -widely available for various Unixen today. This script was primarily -a technology demonstrator for Perl 5.8.0, but you can use piconv in the -place of iconv for virtually any case. - -piconv converts the character encoding of either STDIN or files -specified in the argument and prints out to STDOUT. - -Here is the list of options. Some options can be in short format (-f) -or long (--from) one. - -=over 4 - -=item -f,--from I<from_encoding> - -Specifies the encoding you are converting from. Unlike B<iconv>, -this option can be omitted. In such cases, the current locale is used. - -=item -t,--to I<to_encoding> - -Specifies the encoding you are converting to. Unlike B<iconv>, -this option can be omitted. In such cases, the current locale is used. - -Therefore, when both -f and -t are omitted, B<piconv> just acts -like B<cat>. - -=item -s,--string I<string> - -uses I<string> instead of file for the source of text. - -=item -l,--list - -Lists all available encodings, one per line, in case-insensitive -order. Note that only the canonical names are listed; many aliases -exist. For example, the names are case-insensitive, and many standard -and common aliases work, such as "latin1" for "ISO-8859-1", or "ibm850" -instead of "cp850", or "winlatin1" for "cp1252". See L<Encode::Supported> -for a full discussion. - -=item -r,--resolve I<encoding_alias> - -Resolve I<encoding_alias> to Encode canonical encoding name. - -=item -C,--check I<N> - -Check the validity of the stream if I<N> = 1. When I<N> = -1, something -interesting happens when it encounters an invalid character. - -=item -c - -Same as C<-C 1>. - -=item -p,--perlqq - -Transliterate characters missing in encoding to \x{HHHH} where HHHH is the -hexadecimal Unicode code point. - -=item --htmlcref - -Transliterate characters missing in encoding to &#NNN; where NNN is the -decimal Unicode code point. - -=item --xmlcref - -Transliterate characters missing in encoding to &#xHHHH; where HHHH is the -hexadecimal Unicode code point. - -=item -h,--help - -Show usage. - -=item -D,--debug - -Invokes debugging mode. Primarily for Encode hackers. - -=item -S,--scheme I<scheme> - -Selects which scheme is to be used for conversion. Available schemes -are as follows: - -=over 4 - -=item from_to - -Uses Encode::from_to for conversion. This is the default. - -=item decode_encode - -Input strings are decode()d then encode()d. A straight two-step -implementation. - -=item perlio - -The new perlIO layer is used. NI-S' favorite. - -You should use this option if you are using UTF-16 and others which -linefeed is not $/. - -=back - -Like the I<-D> option, this is also for Encode hackers. - -=back - -=head1 SEE ALSO - -L<iconv(1)> -L<locale(3)> -L<Encode> -L<Encode::Supported> -L<Encode::Alias> -L<PerlIO> - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/piconv.bat b/software/Slic3r-1.3.0.64bit/local-lib/bin/piconv.bat deleted file mode 100644 index eba5c5a8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/piconv.bat +++ /dev/null @@ -1,335 +0,0 @@ -@rem = '--*-Perl-*-- -@echo off -if "%OS%" == "Windows_NT" goto WinNT -perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -goto endofperl -:WinNT -perl -x -S %0 %* -if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl -if %errorlevel% == 9009 echo You do not have Perl in your PATH. -if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul -goto endofperl -@rem '; -#!./perl -#line 15 -# $Id: piconv,v 2.8 2016/08/04 03:15:58 dankogai Exp $ -# -BEGIN { pop @INC if $INC[-1] eq '.' } -use 5.8.0; -use strict; -use Encode ; -use Encode::Alias; -my %Scheme = map {$_ => 1} qw(from_to decode_encode perlio); - -use File::Basename; -my $name = basename($0); - -use Getopt::Long qw(:config no_ignore_case); - -my %Opt; - -help() - unless - GetOptions(\%Opt, - 'from|f=s', - 'to|t=s', - 'list|l', - 'string|s=s', - 'check|C=i', - 'c', - 'perlqq|p', - 'htmlcref', - 'xmlcref', - 'debug|D', - 'scheme|S=s', - 'resolve|r=s', - 'help', - ); - -$Opt{help} and help(); -$Opt{list} and list_encodings(); -my $locale = $ENV{LC_CTYPE} || $ENV{LC_ALL} || $ENV{LANG}; -defined $Opt{resolve} and resolve_encoding($Opt{resolve}); -$Opt{from} || $Opt{to} || help(); -my $from = $Opt{from} || $locale or help("from_encoding unspecified"); -my $to = $Opt{to} || $locale or help("to_encoding unspecified"); -$Opt{string} and Encode::from_to($Opt{string}, $from, $to) and print $Opt{string} and exit; -my $scheme = do { - if (defined $Opt{scheme}) { - if (!exists $Scheme{$Opt{scheme}}) { - warn "Unknown scheme '$Opt{scheme}', fallback to 'from_to'.\n"; - 'from_to'; - } else { - $Opt{scheme}; - } - } else { - 'from_to'; - } -}; - -$Opt{check} ||= $Opt{c}; -$Opt{perlqq} and $Opt{check} = Encode::PERLQQ; -$Opt{htmlcref} and $Opt{check} = Encode::HTMLCREF; -$Opt{xmlcref} and $Opt{check} = Encode::XMLCREF; - -my $efrom = Encode->getEncoding($from) || die "Unknown encoding '$from'"; -my $eto = Encode->getEncoding($to) || die "Unknown encoding '$to'"; - -my $cfrom = $efrom->name; -my $cto = $eto->name; - -if ($Opt{debug}){ - print <<"EOT"; -Scheme: $scheme -From: $from => $cfrom -To: $to => $cto -EOT -} - -my %use_bom = - map { $_ => 1 } qw/UTF-16 UTF-16BE UTF-16LE UTF-32 UTF-32BE UTF-32LE/; - -# we do not use <> (or ARGV) for the sake of binmode() -@ARGV or push @ARGV, \*STDIN; - -unless ( $scheme eq 'perlio' ) { - binmode STDOUT; - my $need2slurp = $use_bom{ $eto } || $use_bom{ $efrom }; - for my $argv (@ARGV) { - my $ifh = ref $argv ? $argv : undef; - $ifh or open $ifh, "<", $argv or warn "Can't open $argv: $!" and next; - $ifh or open $ifh, "<", $argv or next; - binmode $ifh; - if ( $scheme eq 'from_to' ) { # default - if ($need2slurp){ - local $/; - $_ = <$ifh>; - Encode::from_to( $_, $from, $to, $Opt{check} ); - print; - }else{ - while (<$ifh>) { - Encode::from_to( $_, $from, $to, $Opt{check} ); - print; - } - } - } - elsif ( $scheme eq 'decode_encode' ) { # step-by-step - if ($need2slurp){ - local $/; - $_ = <$ifh>; - my $decoded = decode( $from, $_, $Opt{check} ); - my $encoded = encode( $to, $decoded ); - print $encoded; - }else{ - while (<$ifh>) { - my $decoded = decode( $from, $_, $Opt{check} ); - my $encoded = encode( $to, $decoded ); - print $encoded; - } - } - } - else { # won't reach - die "$name: unknown scheme: $scheme"; - } - } -} -else { - - # NI-S favorite - binmode STDOUT => "raw:encoding($to)"; - for my $argv (@ARGV) { - my $ifh = ref $argv ? $argv : undef; - $ifh or open $ifh, "<", $argv or warn "Can't open $argv: $!" and next; - $ifh or open $ifh, "<", $argv or next; - binmode $ifh => "raw:encoding($from)"; - print while (<$ifh>); - } -} - -sub list_encodings { - print join( "\n", Encode->encodings(":all") ), "\n"; - exit 0; -} - -sub resolve_encoding { - if ( my $alias = Encode::resolve_alias( $_[0] ) ) { - print $alias, "\n"; - exit 0; - } - else { - warn "$name: $_[0] is not known to Encode\n"; - exit 1; - } -} - -sub help { - my $message = shift; - $message and print STDERR "$name error: $message\n"; - print STDERR <<"EOT"; -$name [-f from_encoding] [-t to_encoding] - [-p|--perlqq|--htmlcref|--xmlcref] [-C N|-c] [-D] [-S scheme] - [-s string|file...] -$name -l -$name -r encoding_alias -$name -h -Common options: - -l,--list - lists all available encodings - -r,--resolve encoding_alias - resolve encoding to its (Encode) canonical name - -f,--from from_encoding - when omitted, the current locale will be used - -t,--to to_encoding - when omitted, the current locale will be used - -s,--string string - "string" will be the input instead of STDIN or files -The following are mainly of interest to Encode hackers: - -C N | -c check the validity of the input - -D,--debug show debug information - -S,--scheme scheme use the scheme for conversion -Those are handy when you can only see ASCII characters: - -p,--perlqq transliterate characters missing in encoding to \\x{HHHH} - where HHHH is the hexadecimal Unicode code point - --htmlcref transliterate characters missing in encoding to &#NNN; - where NNN is the decimal Unicode code point - --xmlcref transliterate characters missing in encoding to &#xHHHH; - where HHHH is the hexadecimal Unicode code point - -EOT - exit; -} - -__END__ - -=head1 NAME - -piconv -- iconv(1), reinvented in perl - -=head1 SYNOPSIS - - piconv [-f from_encoding] [-t to_encoding] - [-p|--perlqq|--htmlcref|--xmlcref] [-C N|-c] [-D] [-S scheme] - [-s string|file...] - piconv -l - piconv -r encoding_alias - piconv -h - -=head1 DESCRIPTION - -B<piconv> is perl version of B<iconv>, a character encoding converter -widely available for various Unixen today. This script was primarily -a technology demonstrator for Perl 5.8.0, but you can use piconv in the -place of iconv for virtually any case. - -piconv converts the character encoding of either STDIN or files -specified in the argument and prints out to STDOUT. - -Here is the list of options. Some options can be in short format (-f) -or long (--from) one. - -=over 4 - -=item -f,--from I<from_encoding> - -Specifies the encoding you are converting from. Unlike B<iconv>, -this option can be omitted. In such cases, the current locale is used. - -=item -t,--to I<to_encoding> - -Specifies the encoding you are converting to. Unlike B<iconv>, -this option can be omitted. In such cases, the current locale is used. - -Therefore, when both -f and -t are omitted, B<piconv> just acts -like B<cat>. - -=item -s,--string I<string> - -uses I<string> instead of file for the source of text. - -=item -l,--list - -Lists all available encodings, one per line, in case-insensitive -order. Note that only the canonical names are listed; many aliases -exist. For example, the names are case-insensitive, and many standard -and common aliases work, such as "latin1" for "ISO-8859-1", or "ibm850" -instead of "cp850", or "winlatin1" for "cp1252". See L<Encode::Supported> -for a full discussion. - -=item -r,--resolve I<encoding_alias> - -Resolve I<encoding_alias> to Encode canonical encoding name. - -=item -C,--check I<N> - -Check the validity of the stream if I<N> = 1. When I<N> = -1, something -interesting happens when it encounters an invalid character. - -=item -c - -Same as C<-C 1>. - -=item -p,--perlqq - -Transliterate characters missing in encoding to \x{HHHH} where HHHH is the -hexadecimal Unicode code point. - -=item --htmlcref - -Transliterate characters missing in encoding to &#NNN; where NNN is the -decimal Unicode code point. - -=item --xmlcref - -Transliterate characters missing in encoding to &#xHHHH; where HHHH is the -hexadecimal Unicode code point. - -=item -h,--help - -Show usage. - -=item -D,--debug - -Invokes debugging mode. Primarily for Encode hackers. - -=item -S,--scheme I<scheme> - -Selects which scheme is to be used for conversion. Available schemes -are as follows: - -=over 4 - -=item from_to - -Uses Encode::from_to for conversion. This is the default. - -=item decode_encode - -Input strings are decode()d then encode()d. A straight two-step -implementation. - -=item perlio - -The new perlIO layer is used. NI-S' favorite. - -You should use this option if you are using UTF-16 and others which -linefeed is not $/. - -=back - -Like the I<-D> option, this is also for Encode hackers. - -=back - -=head1 SEE ALSO - -L<iconv(1)> -L<locale(3)> -L<Encode> -L<Encode::Supported> -L<Encode::Alias> -L<PerlIO> - -=cut - -__END__ -:endofperl diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/prove b/software/Slic3r-1.3.0.64bit/local-lib/bin/prove deleted file mode 100644 index 3d41db06..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/prove +++ /dev/null @@ -1,407 +0,0 @@ -#!/usr/bin/perl -w - -BEGIN { pop @INC if $INC[-1] eq '.' } -use strict; -use warnings; -use App::Prove; - -my $app = App::Prove->new; -$app->process_args(@ARGV); -exit( $app->run ? 0 : 1 ); - -__END__ - -=head1 NAME - -prove - Run tests through a TAP harness. - -=head1 USAGE - - prove [options] [files or directories] - -=head1 OPTIONS - -Boolean options: - - -v, --verbose Print all test lines. - -l, --lib Add 'lib' to the path for your tests (-Ilib). - -b, --blib Add 'blib/lib' and 'blib/arch' to the path for - your tests - -s, --shuffle Run the tests in random order. - -c, --color Colored test output (default). - --nocolor Do not color test output. - --count Show the X/Y test count when not verbose - (default) - --nocount Disable the X/Y test count. - -D --dry Dry run. Show test that would have run. - -f, --failures Show failed tests. - -o, --comments Show comments. - --ignore-exit Ignore exit status from test scripts. - -m, --merge Merge test scripts' STDERR with their STDOUT. - -r, --recurse Recursively descend into directories. - --reverse Run the tests in reverse order. - -q, --quiet Suppress some test output while running tests. - -Q, --QUIET Only print summary results. - -p, --parse Show full list of TAP parse errors, if any. - --directives Only show results with TODO or SKIP directives. - --timer Print elapsed time after each test. - --trap Trap Ctrl-C and print summary on interrupt. - --normalize Normalize TAP output in verbose output - -T Enable tainting checks. - -t Enable tainting warnings. - -W Enable fatal warnings. - -w Enable warnings. - -h, --help Display this help - -?, Display this help - -V, --version Display the version - -H, --man Longer manpage for prove - --norc Don't process default .proverc - -Options that take arguments: - - -I Library paths to include. - -P Load plugin (searches App::Prove::Plugin::*.) - -M Load a module. - -e, --exec Interpreter to run the tests ('' for compiled - tests.) - --ext Set the extension for tests (default '.t') - --harness Define test harness to use. See TAP::Harness. - --formatter Result formatter to use. See FORMATTERS. - --source Load and/or configure a SourceHandler. See - SOURCE HANDLERS. - -a, --archive out.tgz Store the resulting TAP in an archive file. - -j, --jobs N Run N test jobs in parallel (try 9.) - --state=opts Control prove's persistent state. - --statefile=file Use `file` instead of `.prove` for state - --rc=rcfile Process options from rcfile - --rules Rules for parallel vs sequential processing. - -=head1 NOTES - -=head2 .proverc - -If F<~/.proverc> or F<./.proverc> exist they will be read and any -options they contain processed before the command line options. Options -in F<.proverc> are specified in the same way as command line options: - - # .proverc - --state=hot,fast,save - -j9 - -Additional option files may be specified with the C<--rc> option. -Default option file processing is disabled by the C<--norc> option. - -Under Windows and VMS the option file is named F<_proverc> rather than -F<.proverc> and is sought only in the current directory. - -=head2 Reading from C<STDIN> - -If you have a list of tests (or URLs, or anything else you want to test) in a -file, you can add them to your tests by using a '-': - - prove - < my_list_of_things_to_test.txt - -See the C<README> in the C<examples> directory of this distribution. - -=head2 Default Test Directory - -If no files or directories are supplied, C<prove> looks for all files -matching the pattern C<t/*.t>. - -=head2 Colored Test Output - -Colored test output using L<TAP::Formatter::Color> is the default, but -if output is not to a terminal, color is disabled. You can override this by -adding the C<--color> switch. - -Color support requires L<Term::ANSIColor> and, on windows platforms, also -L<Win32::Console::ANSI>. If the necessary module(s) are not installed -colored output will not be available. - -=head2 Exit Code - -If the tests fail C<prove> will exit with non-zero status. - -=head2 Arguments to Tests - -It is possible to supply arguments to tests. To do so separate them from -prove's own arguments with the arisdottle, '::'. For example - - prove -v t/mytest.t :: --url http://example.com - -would run F<t/mytest.t> with the options '--url http://example.com'. -When running multiple tests they will each receive the same arguments. - -=head2 C<--exec> - -Normally you can just pass a list of Perl tests and the harness will know how -to execute them. However, if your tests are not written in Perl or if you -want all tests invoked exactly the same way, use the C<-e>, or C<--exec> -switch: - - prove --exec '/usr/bin/ruby -w' t/ - prove --exec '/usr/bin/perl -Tw -mstrict -Ilib' t/ - prove --exec '/path/to/my/customer/exec' - -=head2 C<--merge> - -If you need to make sure your diagnostics are displayed in the correct -order relative to test results you can use the C<--merge> option to -merge the test scripts' STDERR into their STDOUT. - -This guarantees that STDOUT (where the test results appear) and STDERR -(where the diagnostics appear) will stay in sync. The harness will -display any diagnostics your tests emit on STDERR. - -Caveat: this is a bit of a kludge. In particular note that if anything -that appears on STDERR looks like a test result the test harness will -get confused. Use this option only if you understand the consequences -and can live with the risk. - -=head2 C<--trap> - -The C<--trap> option will attempt to trap SIGINT (Ctrl-C) during a test -run and display the test summary even if the run is interrupted - -=head2 C<--state> - -You can ask C<prove> to remember the state of previous test runs and -select and/or order the tests to be run based on that saved state. - -The C<--state> switch requires an argument which must be a comma -separated list of one or more of the following options. - -=over - -=item C<last> - -Run the same tests as the last time the state was saved. This makes it -possible, for example, to recreate the ordering of a shuffled test. - - # Run all tests in random order - $ prove -b --state=save --shuffle - - # Run them again in the same order - $ prove -b --state=last - -=item C<failed> - -Run only the tests that failed on the last run. - - # Run all tests - $ prove -b --state=save - - # Run failures - $ prove -b --state=failed - -If you also specify the C<save> option newly passing tests will be -excluded from subsequent runs. - - # Repeat until no more failures - $ prove -b --state=failed,save - -=item C<passed> - -Run only the passed tests from last time. Useful to make sure that no -new problems have been introduced. - -=item C<all> - -Run all tests in normal order. Multple options may be specified, so to -run all tests with the failures from last time first: - - $ prove -b --state=failed,all,save - -=item C<hot> - -Run the tests that most recently failed first. The last failure time of -each test is stored. The C<hot> option causes tests to be run in most-recent- -failure order. - - $ prove -b --state=hot,save - -Tests that have never failed will not be selected. To run all tests with -the most recently failed first use - - $ prove -b --state=hot,all,save - -This combination of options may also be specified thus - - $ prove -b --state=adrian - -=item C<todo> - -Run any tests with todos. - -=item C<slow> - -Run the tests in slowest to fastest order. This is useful in conjunction -with the C<-j> parallel testing switch to ensure that your slowest tests -start running first. - - $ prove -b --state=slow -j9 - -=item C<fast> - -Run test tests in fastest to slowest order. - -=item C<new> - -Run the tests in newest to oldest order based on the modification times -of the test scripts. - -=item C<old> - -Run the tests in oldest to newest order. - -=item C<fresh> - -Run those test scripts that have been modified since the last test run. - -=item C<save> - -Save the state on exit. The state is stored in a file called F<.prove> -(F<_prove> on Windows and VMS) in the current directory. - -=back - -The C<--state> switch may be used more than once. - - $ prove -b --state=hot --state=all,save - -=head2 --rules - -The C<--rules> option is used to control which tests are run sequentially and -which are run in parallel, if the C<--jobs> option is specified. The option may -be specified multiple times, and the order matters. - -The most practical use is likely to specify that some tests are not -"parallel-ready". Since mentioning a file with --rules doesn't cause it to -be selected to run as a test, you can "set and forget" some rules preferences in -your .proverc file. Then you'll be able to take maximum advantage of the -performance benefits of parallel testing, while some exceptions are still run -in parallel. - -=head3 --rules examples - - # All tests are allowed to run in parallel, except those starting with "p" - --rules='seq=t/p*.t' --rules='par=**' - - # All tests must run in sequence except those starting with "p", which should be run parallel - --rules='par=t/p*.t' - -=head3 --rules resolution - -=over 4 - -=item * By default, all tests are eligible to be run in parallel. Specifying any of your own rules removes this one. - -=item * "First match wins". The first rule that matches a test will be the one that applies. - -=item * Any test which does not match a rule will be run in sequence at the end of the run. - -=item * The existence of a rule does not imply selecting a test. You must still specify the tests to run. - -=item * Specifying a rule to allow tests to run in parallel does not make them run in parallel. You still need specify the number of parallel C<jobs> in your Harness object. - -=back - -=head3 --rules Glob-style pattern matching - -We implement our own glob-style pattern matching for --rules. Here are the -supported patterns: - - ** is any number of characters, including /, within a pathname - * is zero or more characters within a filename/directory name - ? is exactly one character within a filename/directory name - {foo,bar,baz} is any of foo, bar or baz. - \ is an escape character - -=head3 More advanced specifications for parallel vs sequence run rules - -If you need more advanced management of what runs in parallel vs in sequence, see -the associated 'rules' documentation in L<TAP::Harness> and L<TAP::Parser::Scheduler>. -If what's possible directly through C<prove> is not sufficient, you can write your own -harness to access these features directly. - -=head2 @INC - -prove introduces a separation between "options passed to the perl which -runs prove" and "options passed to the perl which runs tests"; this -distinction is by design. Thus the perl which is running a test starts -with the default C<@INC>. Additional library directories can be added -via the C<PERL5LIB> environment variable, via -Ifoo in C<PERL5OPT> or -via the C<-Ilib> option to F<prove>. - -=head2 Taint Mode - -Normally when a Perl program is run in taint mode the contents of the -C<PERL5LIB> environment variable do not appear in C<@INC>. - -Because C<PERL5LIB> is often used during testing to add build -directories to C<@INC> prove passes the names of any directories found -in C<PERL5LIB> as -I switches. The net effect of this is that -C<PERL5LIB> is honoured even when prove is run in taint mode. - - -=head1 FORMATTERS - -You can load a custom L<TAP::Parser::Formatter>: - - prove --formatter MyFormatter - -=head1 SOURCE HANDLERS - -You can load custom L<TAP::Parser::SourceHandler>s, to change the way the -parser interprets particular I<sources> of TAP. - - prove --source MyHandler --source YetAnother t - -If you want to provide config to the source you can use: - - prove --source MyCustom \ - --source Perl --perl-option 'foo=bar baz' --perl-option avg=0.278 \ - --source File --file-option extensions=.txt --file-option extensions=.tmp t - --source pgTAP --pgtap-option pset=format=html --pgtap-option pset=border=2 - -Each C<--$source-option> option must specify a key/value pair separated by an -C<=>. If an option can take multiple values, just specify it multiple times, -as with the C<extensions=> examples above. If the option should be a hash -reference, specify the value as a second pair separated by a C<=>, as in the -C<pset=> examples above (escape C<=> with a backslash). - -All C<--sources> are combined into a hash, and passed to L<TAP::Harness/new>'s -C<sources> parameter. - -See L<TAP::Parser::IteratorFactory> for more details on how configuration is -passed to I<SourceHandlers>. - -=head1 PLUGINS - -Plugins can be loaded using the C<< -PI<plugin> >> syntax, eg: - - prove -PMyPlugin - -This will search for a module named C<App::Prove::Plugin::MyPlugin>, or failing -that, C<MyPlugin>. If the plugin can't be found, C<prove> will complain & exit. - -You can pass arguments to your plugin by appending C<=arg1,arg2,etc> to the -plugin name: - - prove -PMyPlugin=fou,du,fafa - -Please check individual plugin documentation for more details. - -=head2 Available Plugins - -For an up-to-date list of plugins available, please check CPAN: - -L<http://search.cpan.org/search?query=App%3A%3AProve+Plugin> - -=head2 Writing Plugins - -Please see L<App::Prove/PLUGINS>. - -=cut - -# vim:ts=4:sw=4:et:sta diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/prove.bat b/software/Slic3r-1.3.0.64bit/local-lib/bin/prove.bat deleted file mode 100644 index d3f86ff1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/prove.bat +++ /dev/null @@ -1,423 +0,0 @@ -@rem = '--*-Perl-*-- -@echo off -if "%OS%" == "Windows_NT" goto WinNT -perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -goto endofperl -:WinNT -perl -x -S %0 %* -if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl -if %errorlevel% == 9009 echo You do not have Perl in your PATH. -if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul -goto endofperl -@rem '; -#!/usr/bin/perl -w -#line 15 - -BEGIN { pop @INC if $INC[-1] eq '.' } -use strict; -use warnings; -use App::Prove; - -my $app = App::Prove->new; -$app->process_args(@ARGV); -exit( $app->run ? 0 : 1 ); - -__END__ - -=head1 NAME - -prove - Run tests through a TAP harness. - -=head1 USAGE - - prove [options] [files or directories] - -=head1 OPTIONS - -Boolean options: - - -v, --verbose Print all test lines. - -l, --lib Add 'lib' to the path for your tests (-Ilib). - -b, --blib Add 'blib/lib' and 'blib/arch' to the path for - your tests - -s, --shuffle Run the tests in random order. - -c, --color Colored test output (default). - --nocolor Do not color test output. - --count Show the X/Y test count when not verbose - (default) - --nocount Disable the X/Y test count. - -D --dry Dry run. Show test that would have run. - -f, --failures Show failed tests. - -o, --comments Show comments. - --ignore-exit Ignore exit status from test scripts. - -m, --merge Merge test scripts' STDERR with their STDOUT. - -r, --recurse Recursively descend into directories. - --reverse Run the tests in reverse order. - -q, --quiet Suppress some test output while running tests. - -Q, --QUIET Only print summary results. - -p, --parse Show full list of TAP parse errors, if any. - --directives Only show results with TODO or SKIP directives. - --timer Print elapsed time after each test. - --trap Trap Ctrl-C and print summary on interrupt. - --normalize Normalize TAP output in verbose output - -T Enable tainting checks. - -t Enable tainting warnings. - -W Enable fatal warnings. - -w Enable warnings. - -h, --help Display this help - -?, Display this help - -V, --version Display the version - -H, --man Longer manpage for prove - --norc Don't process default .proverc - -Options that take arguments: - - -I Library paths to include. - -P Load plugin (searches App::Prove::Plugin::*.) - -M Load a module. - -e, --exec Interpreter to run the tests ('' for compiled - tests.) - --ext Set the extension for tests (default '.t') - --harness Define test harness to use. See TAP::Harness. - --formatter Result formatter to use. See FORMATTERS. - --source Load and/or configure a SourceHandler. See - SOURCE HANDLERS. - -a, --archive out.tgz Store the resulting TAP in an archive file. - -j, --jobs N Run N test jobs in parallel (try 9.) - --state=opts Control prove's persistent state. - --statefile=file Use `file` instead of `.prove` for state - --rc=rcfile Process options from rcfile - --rules Rules for parallel vs sequential processing. - -=head1 NOTES - -=head2 .proverc - -If F<~/.proverc> or F<./.proverc> exist they will be read and any -options they contain processed before the command line options. Options -in F<.proverc> are specified in the same way as command line options: - - # .proverc - --state=hot,fast,save - -j9 - -Additional option files may be specified with the C<--rc> option. -Default option file processing is disabled by the C<--norc> option. - -Under Windows and VMS the option file is named F<_proverc> rather than -F<.proverc> and is sought only in the current directory. - -=head2 Reading from C<STDIN> - -If you have a list of tests (or URLs, or anything else you want to test) in a -file, you can add them to your tests by using a '-': - - prove - < my_list_of_things_to_test.txt - -See the C<README> in the C<examples> directory of this distribution. - -=head2 Default Test Directory - -If no files or directories are supplied, C<prove> looks for all files -matching the pattern C<t/*.t>. - -=head2 Colored Test Output - -Colored test output using L<TAP::Formatter::Color> is the default, but -if output is not to a terminal, color is disabled. You can override this by -adding the C<--color> switch. - -Color support requires L<Term::ANSIColor> and, on windows platforms, also -L<Win32::Console::ANSI>. If the necessary module(s) are not installed -colored output will not be available. - -=head2 Exit Code - -If the tests fail C<prove> will exit with non-zero status. - -=head2 Arguments to Tests - -It is possible to supply arguments to tests. To do so separate them from -prove's own arguments with the arisdottle, '::'. For example - - prove -v t/mytest.t :: --url http://example.com - -would run F<t/mytest.t> with the options '--url http://example.com'. -When running multiple tests they will each receive the same arguments. - -=head2 C<--exec> - -Normally you can just pass a list of Perl tests and the harness will know how -to execute them. However, if your tests are not written in Perl or if you -want all tests invoked exactly the same way, use the C<-e>, or C<--exec> -switch: - - prove --exec '/usr/bin/ruby -w' t/ - prove --exec '/usr/bin/perl -Tw -mstrict -Ilib' t/ - prove --exec '/path/to/my/customer/exec' - -=head2 C<--merge> - -If you need to make sure your diagnostics are displayed in the correct -order relative to test results you can use the C<--merge> option to -merge the test scripts' STDERR into their STDOUT. - -This guarantees that STDOUT (where the test results appear) and STDERR -(where the diagnostics appear) will stay in sync. The harness will -display any diagnostics your tests emit on STDERR. - -Caveat: this is a bit of a kludge. In particular note that if anything -that appears on STDERR looks like a test result the test harness will -get confused. Use this option only if you understand the consequences -and can live with the risk. - -=head2 C<--trap> - -The C<--trap> option will attempt to trap SIGINT (Ctrl-C) during a test -run and display the test summary even if the run is interrupted - -=head2 C<--state> - -You can ask C<prove> to remember the state of previous test runs and -select and/or order the tests to be run based on that saved state. - -The C<--state> switch requires an argument which must be a comma -separated list of one or more of the following options. - -=over - -=item C<last> - -Run the same tests as the last time the state was saved. This makes it -possible, for example, to recreate the ordering of a shuffled test. - - # Run all tests in random order - $ prove -b --state=save --shuffle - - # Run them again in the same order - $ prove -b --state=last - -=item C<failed> - -Run only the tests that failed on the last run. - - # Run all tests - $ prove -b --state=save - - # Run failures - $ prove -b --state=failed - -If you also specify the C<save> option newly passing tests will be -excluded from subsequent runs. - - # Repeat until no more failures - $ prove -b --state=failed,save - -=item C<passed> - -Run only the passed tests from last time. Useful to make sure that no -new problems have been introduced. - -=item C<all> - -Run all tests in normal order. Multple options may be specified, so to -run all tests with the failures from last time first: - - $ prove -b --state=failed,all,save - -=item C<hot> - -Run the tests that most recently failed first. The last failure time of -each test is stored. The C<hot> option causes tests to be run in most-recent- -failure order. - - $ prove -b --state=hot,save - -Tests that have never failed will not be selected. To run all tests with -the most recently failed first use - - $ prove -b --state=hot,all,save - -This combination of options may also be specified thus - - $ prove -b --state=adrian - -=item C<todo> - -Run any tests with todos. - -=item C<slow> - -Run the tests in slowest to fastest order. This is useful in conjunction -with the C<-j> parallel testing switch to ensure that your slowest tests -start running first. - - $ prove -b --state=slow -j9 - -=item C<fast> - -Run test tests in fastest to slowest order. - -=item C<new> - -Run the tests in newest to oldest order based on the modification times -of the test scripts. - -=item C<old> - -Run the tests in oldest to newest order. - -=item C<fresh> - -Run those test scripts that have been modified since the last test run. - -=item C<save> - -Save the state on exit. The state is stored in a file called F<.prove> -(F<_prove> on Windows and VMS) in the current directory. - -=back - -The C<--state> switch may be used more than once. - - $ prove -b --state=hot --state=all,save - -=head2 --rules - -The C<--rules> option is used to control which tests are run sequentially and -which are run in parallel, if the C<--jobs> option is specified. The option may -be specified multiple times, and the order matters. - -The most practical use is likely to specify that some tests are not -"parallel-ready". Since mentioning a file with --rules doesn't cause it to -be selected to run as a test, you can "set and forget" some rules preferences in -your .proverc file. Then you'll be able to take maximum advantage of the -performance benefits of parallel testing, while some exceptions are still run -in parallel. - -=head3 --rules examples - - # All tests are allowed to run in parallel, except those starting with "p" - --rules='seq=t/p*.t' --rules='par=**' - - # All tests must run in sequence except those starting with "p", which should be run parallel - --rules='par=t/p*.t' - -=head3 --rules resolution - -=over 4 - -=item * By default, all tests are eligible to be run in parallel. Specifying any of your own rules removes this one. - -=item * "First match wins". The first rule that matches a test will be the one that applies. - -=item * Any test which does not match a rule will be run in sequence at the end of the run. - -=item * The existence of a rule does not imply selecting a test. You must still specify the tests to run. - -=item * Specifying a rule to allow tests to run in parallel does not make them run in parallel. You still need specify the number of parallel C<jobs> in your Harness object. - -=back - -=head3 --rules Glob-style pattern matching - -We implement our own glob-style pattern matching for --rules. Here are the -supported patterns: - - ** is any number of characters, including /, within a pathname - * is zero or more characters within a filename/directory name - ? is exactly one character within a filename/directory name - {foo,bar,baz} is any of foo, bar or baz. - \ is an escape character - -=head3 More advanced specifications for parallel vs sequence run rules - -If you need more advanced management of what runs in parallel vs in sequence, see -the associated 'rules' documentation in L<TAP::Harness> and L<TAP::Parser::Scheduler>. -If what's possible directly through C<prove> is not sufficient, you can write your own -harness to access these features directly. - -=head2 @INC - -prove introduces a separation between "options passed to the perl which -runs prove" and "options passed to the perl which runs tests"; this -distinction is by design. Thus the perl which is running a test starts -with the default C<@INC>. Additional library directories can be added -via the C<PERL5LIB> environment variable, via -Ifoo in C<PERL5OPT> or -via the C<-Ilib> option to F<prove>. - -=head2 Taint Mode - -Normally when a Perl program is run in taint mode the contents of the -C<PERL5LIB> environment variable do not appear in C<@INC>. - -Because C<PERL5LIB> is often used during testing to add build -directories to C<@INC> prove passes the names of any directories found -in C<PERL5LIB> as -I switches. The net effect of this is that -C<PERL5LIB> is honoured even when prove is run in taint mode. - - -=head1 FORMATTERS - -You can load a custom L<TAP::Parser::Formatter>: - - prove --formatter MyFormatter - -=head1 SOURCE HANDLERS - -You can load custom L<TAP::Parser::SourceHandler>s, to change the way the -parser interprets particular I<sources> of TAP. - - prove --source MyHandler --source YetAnother t - -If you want to provide config to the source you can use: - - prove --source MyCustom \ - --source Perl --perl-option 'foo=bar baz' --perl-option avg=0.278 \ - --source File --file-option extensions=.txt --file-option extensions=.tmp t - --source pgTAP --pgtap-option pset=format=html --pgtap-option pset=border=2 - -Each C<--$source-option> option must specify a key/value pair separated by an -C<=>. If an option can take multiple values, just specify it multiple times, -as with the C<extensions=> examples above. If the option should be a hash -reference, specify the value as a second pair separated by a C<=>, as in the -C<pset=> examples above (escape C<=> with a backslash). - -All C<--sources> are combined into a hash, and passed to L<TAP::Harness/new>'s -C<sources> parameter. - -See L<TAP::Parser::IteratorFactory> for more details on how configuration is -passed to I<SourceHandlers>. - -=head1 PLUGINS - -Plugins can be loaded using the C<< -PI<plugin> >> syntax, eg: - - prove -PMyPlugin - -This will search for a module named C<App::Prove::Plugin::MyPlugin>, or failing -that, C<MyPlugin>. If the plugin can't be found, C<prove> will complain & exit. - -You can pass arguments to your plugin by appending C<=arg1,arg2,etc> to the -plugin name: - - prove -PMyPlugin=fou,du,fafa - -Please check individual plugin documentation for more details. - -=head2 Available Plugins - -For an up-to-date list of plugins available, please check CPAN: - -L<http://search.cpan.org/search?query=App%3A%3AProve+Plugin> - -=head2 Writing Plugins - -Please see L<App::Prove/PLUGINS>. - -=cut - -# vim:ts=4:sw=4:et:sta - -__END__ -:endofperl diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/scandeps.bat b/software/Slic3r-1.3.0.64bit/local-lib/bin/scandeps.bat deleted file mode 100644 index e94a05f2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/scandeps.bat +++ /dev/null @@ -1,294 +0,0 @@ -@rem = '--*-Perl-*-- -@echo off -if "%OS%" == "Windows_NT" goto WinNT -IF EXIST "%~dp0perl.exe" ( -"%~dp0perl.exe" -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) ELSE IF EXIST "%~dp0..\..\bin\perl.exe" ( -"%~dp0..\..\bin\perl.exe" -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) ELSE ( -perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) - -goto endofperl -:WinNT -IF EXIST "%~dp0perl.exe" ( -"%~dp0perl.exe" -x -S %0 %* -) ELSE IF EXIST "%~dp0..\..\bin\perl.exe" ( -"%~dp0..\..\bin\perl.exe" -x -S %0 %* -) ELSE ( -perl -x -S %0 %* -) - -if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl -if %errorlevel% == 9009 echo You do not have Perl in your PATH. -if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul -goto endofperl -@rem '; -#!/usr/bin/perl -#line 29 - -$VERSION = '0.76'; - -use strict; -use Config; -use Getopt::Long qw(:config bundling no_ignore_case); -use Module::ScanDeps; -use ExtUtils::MakeMaker; -use subs qw( _name _modtree ); - -my $usage = "Usage: $0 [ -B ] [ -V ] [ -T ] [ -x [ --xargs STRING ] | -c ] [ -R ] [-C FILE ] [ -e STRING | FILE ... ]\n"; - -my %opts; -GetOptions(\%opts, - "B|bundle", - "C|cachedeps=s", - "c|compile", - "e|eval=s", - "xargs=s", - "R|no-recurse", - "T|modtree", - "V|verbose", - "x|execute", -) or die $usage; - -my (%map, %skip); -my $core = $opts{B}; -my $verbose = $opts{V}; -my $eval = $opts{e}; -my $recurse = $opts{R} ? 0 : 1; -my $modtree = {} unless $opts{T}; # i.e. disable it unless explicitly requested - -if ($eval) { - require File::Temp; - my ($fh, $filename) = File::Temp::tempfile( UNLINK => 1 ); - print $fh $eval, "\n" or die $!; - close $fh; - push @ARGV, $filename; -} - -if ($opts{x} && defined $opts{xargs}) { - require Text::ParseWords; - $opts{x} = [ Text::ParseWords::shellwords($opts{xargs}) ]; -} - -die $usage unless @ARGV; - -my @files = @ARGV; -while (<>) { - next unless /^package\s+([\w:]+)/; - $skip{$1}++; -} - -my $map = scan_deps( - files => \@files, - recurse => $recurse, - $opts{x} ? ( execute => $opts{x} ) : - $opts{c} ? ( compile => 1 ) : (), - $opts{V} ? ( warn_missing => 1 ) : (), - $opts{C} ? ( cache_file => $opts{C}) : (), -); - - -my $len = 0; -my @todo; -my (%seen, %dist, %core, %bin); - -foreach my $key (sort keys %$map) { - my $mod = $map->{$key}; - my $name = $mod->{name} = _name($key); - - print "# $key [$mod->{type}]\n" if $verbose; - - if ($mod->{type} eq 'shared') { - $key =~ s!auto/!!; - $key =~ s!/[^/]+$!!; - $key =~ s!/!::!; - $bin{$key}++; - } - - next unless $mod->{type} eq 'module'; - - next if $skip{$name}; - - my $privPath = "$Config::Config{privlibexp}/$key"; - my $archPath = "$Config::Config{archlibexp}/$key"; - $privPath =~ s|\\|\/|og; - $archPath =~ s|\\|\/|og; - if ($mod->{file} eq $privPath - or $mod->{file} eq $archPath) { - next unless $core; - - $core{$name}++; - } - elsif (my $dist = _modtree->{$name}) { - $seen{$name} = $dist{$dist->package}++; - } - - $len = length($name) if $len < length($name); - $mod->{used_by} ||= []; - - push @todo, $mod; -} - -$len += 2; - -print "# Legend: [C]ore [X]ternal [S]ubmodule [?]NotOnCPAN\n" if $verbose; - -foreach my $mod (sort { - "@{$a->{used_by}}" cmp "@{$b->{used_by}}" or - $a->{key} cmp $b->{key} -} @todo) { - - my $version = MM->parse_version($mod->{file}); - - if (!$verbose) { - printf "%-${len}s => '$version',", "'$mod->{name}'" if $version; - } else { - printf "%-${len}s => '0', # ", "'$mod->{name}'"; - my @base = map(_name($_), @{$mod->{used_by}}); - print $seen{$mod->{name}} ? 'S' : ' '; - print $bin{$mod->{name}} ? 'X' : ' '; - print $core{$mod->{name}} ? 'C' : ' '; - print _modtree && !_modtree->{$mod->{name}} ? '?' : ' '; - print " # "; - print "@base" if @base; - } - print "\n"; - -} - -warn "No modules found!\n" unless @todo; - -sub _name { - my $str = shift; - $str =~ s!/!::!g; - $str =~ s!.pm$!!i; - $str =~ s!^auto::(.+)::.*!$1!; - return $str; -} - -sub _modtree { - $modtree ||= eval { - require CPANPLUS::Backend; - CPANPLUS::Backend->new->module_tree; - } || {}; -} - - -1; - -__END__ - -=head1 NAME - -scandeps.pl - Scan file prerequisites - -=head1 SYNOPSIS - - % scandeps.pl *.pm # Print PREREQ_PM section for *.pm - % scandeps.pl -e 'STRING' # Scan an one-liner - % scandeps.pl -B *.pm # Include core modules - % scandeps.pl -V *.pm # Show autoload/shared/data files - % scandeps.pl -R *.pm # Don't recurse - % scandeps.pl -C CACHEFILE # use CACHEFILE to cache dependencies - -=head1 DESCRIPTION - -F<scandeps.pl> is a simple-minded utility that prints out the -C<PREREQ_PM> section needed by modules. - -If the option C<-T> is specified and -you have B<CPANPLUS> installed, modules that are part of an -earlier module's distribution with be denoted with C<S>; modules -without a distribution name on CPAN are marked with C<?>. - -Also, if the C<-B> option is specified, module belongs to a perl -distribution on CPAN (and thus uninstallable by C<CPAN.pm> or -C<CPANPLUS.pm>) are marked with C<C>. - -Finally, modules that has loadable shared object files (usually -needing a compiler to install) are marked with C<X>; with the -C<-V> flag, those files (and all other files found) will be listed -before the main output. Additionally, all module files that the -scanned code depends on but were not found (and thus not scanned -recursively) are listed. These may include genuinely missing -modules or false positives. That means, modules your code does -not depend on (on this particular platform) but that were picked -up by the heuristic anyway. - -=head1 OPTIONS - -=over 4 - -=item B<-e>, B<--eval>=I<STRING> - -Scan I<STRING> as a string containing perl code. - -=item B<-c>, B<--compile> - -Compiles the code and inspects its C<%INC>, in addition to static scanning. - -=item B<-x>, B<--execute> - -Executes the code and inspects its C<%INC>, in addition to static scanning. -You may use B<--xargs> to specify C<@ARGV> when executing the code. - -=item B<--xargs>=I<STRING> - -If B<-x> is given, splits the C<STRING> using the function -C<shellwords> from L<Text::ParseWords> and passes the result -as C<@ARGV> when executing the code. - -=item B<-B>, B<--bundle> - -Include core modules in the output and the recursive search list. - -=item B<-R>, B<--no-recurse> - -Only show dependencies found in the files listed and do not recurse. - -=item B<-V>, B<--verbose> - -Verbose mode: Output all files found during the process; -show dependencies between modules and availability. - -Additionally, warns of any missing dependencies. If you find missing -dependencies that aren't really dependencies, you have probably found -false positives. - -=item B<-C>, B<--cachedeps>=I<CACHEFILE> - -Use CACHEFILE to speed up the scanning process by caching dependencies. -Creates CACHEFILE if it does not exist yet. - -=item B<-T>, B<--modtree> - -Retrieves module information from CPAN if you have B<CPANPLUS> installed. - -=back - -=head1 SEE ALSO - -L<Module::ScanDeps>, L<CPANPLUS::Backend>, L<PAR> - -=head1 ACKNOWLEDGMENTS - -Simon Cozens, for suggesting this script to be written. - -=head1 AUTHORS - -Audrey Tang E<lt>autrijus@autrijus.orgE<gt> - -=head1 COPYRIGHT - -Copyright 2003, 2004, 2005, 2006 by Audrey Tang E<lt>autrijus@autrijus.orgE<gt>. - -This program is free software; you can redistribute it and/or modify it -under the same terms as Perl itself. - -See L<http://www.perl.com/perl/misc/Artistic.html> - -=cut - -__END__ -:endofperl diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/scandeps.pl b/software/Slic3r-1.3.0.64bit/local-lib/bin/scandeps.pl deleted file mode 100644 index 7010fb0f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/scandeps.pl +++ /dev/null @@ -1,264 +0,0 @@ -#!/usr/bin/perl - -$VERSION = '0.76'; - -use strict; -use Config; -use Getopt::Long qw(:config bundling no_ignore_case); -use Module::ScanDeps; -use ExtUtils::MakeMaker; -use subs qw( _name _modtree ); - -my $usage = "Usage: $0 [ -B ] [ -V ] [ -T ] [ -x [ --xargs STRING ] | -c ] [ -R ] [-C FILE ] [ -e STRING | FILE ... ]\n"; - -my %opts; -GetOptions(\%opts, - "B|bundle", - "C|cachedeps=s", - "c|compile", - "e|eval=s", - "xargs=s", - "R|no-recurse", - "T|modtree", - "V|verbose", - "x|execute", -) or die $usage; - -my (%map, %skip); -my $core = $opts{B}; -my $verbose = $opts{V}; -my $eval = $opts{e}; -my $recurse = $opts{R} ? 0 : 1; -my $modtree = {} unless $opts{T}; # i.e. disable it unless explicitly requested - -if ($eval) { - require File::Temp; - my ($fh, $filename) = File::Temp::tempfile( UNLINK => 1 ); - print $fh $eval, "\n" or die $!; - close $fh; - push @ARGV, $filename; -} - -if ($opts{x} && defined $opts{xargs}) { - require Text::ParseWords; - $opts{x} = [ Text::ParseWords::shellwords($opts{xargs}) ]; -} - -die $usage unless @ARGV; - -my @files = @ARGV; -while (<>) { - next unless /^package\s+([\w:]+)/; - $skip{$1}++; -} - -my $map = scan_deps( - files => \@files, - recurse => $recurse, - $opts{x} ? ( execute => $opts{x} ) : - $opts{c} ? ( compile => 1 ) : (), - $opts{V} ? ( warn_missing => 1 ) : (), - $opts{C} ? ( cache_file => $opts{C}) : (), -); - - -my $len = 0; -my @todo; -my (%seen, %dist, %core, %bin); - -foreach my $key (sort keys %$map) { - my $mod = $map->{$key}; - my $name = $mod->{name} = _name($key); - - print "# $key [$mod->{type}]\n" if $verbose; - - if ($mod->{type} eq 'shared') { - $key =~ s!auto/!!; - $key =~ s!/[^/]+$!!; - $key =~ s!/!::!; - $bin{$key}++; - } - - next unless $mod->{type} eq 'module'; - - next if $skip{$name}; - - my $privPath = "$Config::Config{privlibexp}/$key"; - my $archPath = "$Config::Config{archlibexp}/$key"; - $privPath =~ s|\\|\/|og; - $archPath =~ s|\\|\/|og; - if ($mod->{file} eq $privPath - or $mod->{file} eq $archPath) { - next unless $core; - - $core{$name}++; - } - elsif (my $dist = _modtree->{$name}) { - $seen{$name} = $dist{$dist->package}++; - } - - $len = length($name) if $len < length($name); - $mod->{used_by} ||= []; - - push @todo, $mod; -} - -$len += 2; - -print "# Legend: [C]ore [X]ternal [S]ubmodule [?]NotOnCPAN\n" if $verbose; - -foreach my $mod (sort { - "@{$a->{used_by}}" cmp "@{$b->{used_by}}" or - $a->{key} cmp $b->{key} -} @todo) { - - my $version = MM->parse_version($mod->{file}); - - if (!$verbose) { - printf "%-${len}s => '$version',", "'$mod->{name}'" if $version; - } else { - printf "%-${len}s => '0', # ", "'$mod->{name}'"; - my @base = map(_name($_), @{$mod->{used_by}}); - print $seen{$mod->{name}} ? 'S' : ' '; - print $bin{$mod->{name}} ? 'X' : ' '; - print $core{$mod->{name}} ? 'C' : ' '; - print _modtree && !_modtree->{$mod->{name}} ? '?' : ' '; - print " # "; - print "@base" if @base; - } - print "\n"; - -} - -warn "No modules found!\n" unless @todo; - -sub _name { - my $str = shift; - $str =~ s!/!::!g; - $str =~ s!.pm$!!i; - $str =~ s!^auto::(.+)::.*!$1!; - return $str; -} - -sub _modtree { - $modtree ||= eval { - require CPANPLUS::Backend; - CPANPLUS::Backend->new->module_tree; - } || {}; -} - - -1; - -__END__ - -=head1 NAME - -scandeps.pl - Scan file prerequisites - -=head1 SYNOPSIS - - % scandeps.pl *.pm # Print PREREQ_PM section for *.pm - % scandeps.pl -e 'STRING' # Scan an one-liner - % scandeps.pl -B *.pm # Include core modules - % scandeps.pl -V *.pm # Show autoload/shared/data files - % scandeps.pl -R *.pm # Don't recurse - % scandeps.pl -C CACHEFILE # use CACHEFILE to cache dependencies - -=head1 DESCRIPTION - -F<scandeps.pl> is a simple-minded utility that prints out the -C<PREREQ_PM> section needed by modules. - -If the option C<-T> is specified and -you have B<CPANPLUS> installed, modules that are part of an -earlier module's distribution with be denoted with C<S>; modules -without a distribution name on CPAN are marked with C<?>. - -Also, if the C<-B> option is specified, module belongs to a perl -distribution on CPAN (and thus uninstallable by C<CPAN.pm> or -C<CPANPLUS.pm>) are marked with C<C>. - -Finally, modules that has loadable shared object files (usually -needing a compiler to install) are marked with C<X>; with the -C<-V> flag, those files (and all other files found) will be listed -before the main output. Additionally, all module files that the -scanned code depends on but were not found (and thus not scanned -recursively) are listed. These may include genuinely missing -modules or false positives. That means, modules your code does -not depend on (on this particular platform) but that were picked -up by the heuristic anyway. - -=head1 OPTIONS - -=over 4 - -=item B<-e>, B<--eval>=I<STRING> - -Scan I<STRING> as a string containing perl code. - -=item B<-c>, B<--compile> - -Compiles the code and inspects its C<%INC>, in addition to static scanning. - -=item B<-x>, B<--execute> - -Executes the code and inspects its C<%INC>, in addition to static scanning. -You may use B<--xargs> to specify C<@ARGV> when executing the code. - -=item B<--xargs>=I<STRING> - -If B<-x> is given, splits the C<STRING> using the function -C<shellwords> from L<Text::ParseWords> and passes the result -as C<@ARGV> when executing the code. - -=item B<-B>, B<--bundle> - -Include core modules in the output and the recursive search list. - -=item B<-R>, B<--no-recurse> - -Only show dependencies found in the files listed and do not recurse. - -=item B<-V>, B<--verbose> - -Verbose mode: Output all files found during the process; -show dependencies between modules and availability. - -Additionally, warns of any missing dependencies. If you find missing -dependencies that aren't really dependencies, you have probably found -false positives. - -=item B<-C>, B<--cachedeps>=I<CACHEFILE> - -Use CACHEFILE to speed up the scanning process by caching dependencies. -Creates CACHEFILE if it does not exist yet. - -=item B<-T>, B<--modtree> - -Retrieves module information from CPAN if you have B<CPANPLUS> installed. - -=back - -=head1 SEE ALSO - -L<Module::ScanDeps>, L<CPANPLUS::Backend>, L<PAR> - -=head1 ACKNOWLEDGMENTS - -Simon Cozens, for suggesting this script to be written. - -=head1 AUTHORS - -Audrey Tang E<lt>autrijus@autrijus.orgE<gt> - -=head1 COPYRIGHT - -Copyright 2003, 2004, 2005, 2006 by Audrey Tang E<lt>autrijus@autrijus.orgE<gt>. - -This program is free software; you can redistribute it and/or modify it -under the same terms as Perl itself. - -See L<http://www.perl.com/perl/misc/Artistic.html> - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/use-devel-checklib b/software/Slic3r-1.3.0.64bit/local-lib/bin/use-devel-checklib deleted file mode 100644 index 1ad38f9a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/use-devel-checklib +++ /dev/null @@ -1,104 +0,0 @@ -#!perl -w -# $Id: use-devel-checklib,v 1.9 2008/03/12 19:52:50 drhyde Exp $ - -use strict; - -$/ = undef; - -use File::Spec; -use Devel::CheckLib; - -warn "----------------------- [WARNING] --------\n"; -warn "THIS SCRIPT WAS DEPRECATED.\n"; -warn "YOU SHOULD USE configure_requires INSTEAD.\n"; -warn "---------- [/WARNING] --------------------\n"; - -my @files = grep { -f $_ } qw(Makefile.PL Build.PL); -push @files, 'Makefile.PL' unless(@files); - -my @libs = @ARGV; - -mkdir 'inc'; -mkdir 'inc/Devel'; - -open(CHECKLIBPM, $INC{'Devel/CheckLib.pm'}) || - die("Can't read $INC{'Devel/CheckLib.pm'}: $!"); -(my $checklibpm = <CHECKLIBPM>) =~ s/package Devel::CheckLib/package #\nDevel::CheckLib/; -close(CHECKLIBPM); -open(CHECKLIBPM, '>'.File::Spec->catfile(qw(inc Devel CheckLib.pm))) || - die("Can't write inc/Devel/CheckLib.pm: $!"); -print CHECKLIBPM $checklibpm; -close(CHECKLIBPM); - -print "Copied Devel::CheckLib to inc/ directory\n"; - -foreach my $file (@files) { - open(FILE, $file) || next; - my $contents = <FILE>; - close(FILE); - open(FILE, ">$file") || die("Can't write $file\n"); - print FILE q{use lib qw(inc); -use Devel::CheckLib; - -# Prompt the user here for any paths and other configuration - -check_lib_or_exit( - # fill in what you prompted the user for here - lib => [qw(}.join(' ', @libs).q{)] -); -}; - print FILE "\n\n$contents"; - close(FILE); - print "Updated/created $file\n"; -} - -open(MANIFEST, 'MANIFEST') || warn("Couldn't read MANIFEST, will create one\n"); -my $manifest = <MANIFEST>; -close(MANIFEST); -open(MANIFEST, '>MANIFEST') || die("Couldn't write MANIFEST\n"); -print MANIFEST "inc/Devel/CheckLib.pm\n$manifest"; -close(MANIFEST); -print "Updated/created MANIFEST\n"; - -=head1 NAME - -use-devel-checklib - (DEPRECATED)a script to package Devel::CheckLib with your code. - -=head1 DESCRIPTION - -This script was DEPRECATED. - -If you need to depend on this library, you should use `configure_requires` in Makefile.PL or Build.PL instead. - -=head1 WARNINGS, BUGS and FEEDBACK - -This script has not been thoroughly tested. You should check by -hand that it has done what you expected after running it. - -If you use Module::Build::Compat to write a Makefile.PL, then you -will need to re-run this script whenever you have generated a new -Makefile.PL. - -I welcome feedback about my code, including constructive criticism. -Bug reports should be made using L<http://rt.cpan.org/> or by email. - -=head1 SEE ALSO - -L<Devel::CheckLib> - -=head1 AUTHOR - -David Cantrell E<lt>F<david@cantrell.org.uk>E<gt> - -=head1 COPYRIGHT and LICENCE - -Copyright 2007 David Cantrell - -This software is free-as-in-speech software, and may be used, -distributed, and modified under the same conditions as perl itself. - -=head1 CONSPIRACY - -This module is also free-as-in-mason software. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/use-devel-checklib.bat b/software/Slic3r-1.3.0.64bit/local-lib/bin/use-devel-checklib.bat deleted file mode 100644 index a0f99c2a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/use-devel-checklib.bat +++ /dev/null @@ -1,120 +0,0 @@ -@rem = '--*-Perl-*-- -@echo off -if "%OS%" == "Windows_NT" goto WinNT -perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -goto endofperl -:WinNT -perl -x -S %0 %* -if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl -if %errorlevel% == 9009 echo You do not have Perl in your PATH. -if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul -goto endofperl -@rem '; -#!perl -w -#line 15 -# $Id: use-devel-checklib,v 1.9 2008/03/12 19:52:50 drhyde Exp $ - -use strict; - -$/ = undef; - -use File::Spec; -use Devel::CheckLib; - -warn "----------------------- [WARNING] --------\n"; -warn "THIS SCRIPT WAS DEPRECATED.\n"; -warn "YOU SHOULD USE configure_requires INSTEAD.\n"; -warn "---------- [/WARNING] --------------------\n"; - -my @files = grep { -f $_ } qw(Makefile.PL Build.PL); -push @files, 'Makefile.PL' unless(@files); - -my @libs = @ARGV; - -mkdir 'inc'; -mkdir 'inc/Devel'; - -open(CHECKLIBPM, $INC{'Devel/CheckLib.pm'}) || - die("Can't read $INC{'Devel/CheckLib.pm'}: $!"); -(my $checklibpm = <CHECKLIBPM>) =~ s/package Devel::CheckLib/package #\nDevel::CheckLib/; -close(CHECKLIBPM); -open(CHECKLIBPM, '>'.File::Spec->catfile(qw(inc Devel CheckLib.pm))) || - die("Can't write inc/Devel/CheckLib.pm: $!"); -print CHECKLIBPM $checklibpm; -close(CHECKLIBPM); - -print "Copied Devel::CheckLib to inc/ directory\n"; - -foreach my $file (@files) { - open(FILE, $file) || next; - my $contents = <FILE>; - close(FILE); - open(FILE, ">$file") || die("Can't write $file\n"); - print FILE q{use lib qw(inc); -use Devel::CheckLib; - -# Prompt the user here for any paths and other configuration - -check_lib_or_exit( - # fill in what you prompted the user for here - lib => [qw(}.join(' ', @libs).q{)] -); -}; - print FILE "\n\n$contents"; - close(FILE); - print "Updated/created $file\n"; -} - -open(MANIFEST, 'MANIFEST') || warn("Couldn't read MANIFEST, will create one\n"); -my $manifest = <MANIFEST>; -close(MANIFEST); -open(MANIFEST, '>MANIFEST') || die("Couldn't write MANIFEST\n"); -print MANIFEST "inc/Devel/CheckLib.pm\n$manifest"; -close(MANIFEST); -print "Updated/created MANIFEST\n"; - -=head1 NAME - -use-devel-checklib - (DEPRECATED)a script to package Devel::CheckLib with your code. - -=head1 DESCRIPTION - -This script was DEPRECATED. - -If you need to depend on this library, you should use `configure_requires` in Makefile.PL or Build.PL instead. - -=head1 WARNINGS, BUGS and FEEDBACK - -This script has not been thoroughly tested. You should check by -hand that it has done what you expected after running it. - -If you use Module::Build::Compat to write a Makefile.PL, then you -will need to re-run this script whenever you have generated a new -Makefile.PL. - -I welcome feedback about my code, including constructive criticism. -Bug reports should be made using L<http://rt.cpan.org/> or by email. - -=head1 SEE ALSO - -L<Devel::CheckLib> - -=head1 AUTHOR - -David Cantrell E<lt>F<david@cantrell.org.uk>E<gt> - -=head1 COPYRIGHT and LICENCE - -Copyright 2007 David Cantrell - -This software is free-as-in-speech software, and may be used, -distributed, and modified under the same conditions as perl itself. - -=head1 CONSPIRACY - -This module is also free-as-in-mason software. - -=cut - -__END__ -:endofperl diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/wxperl_overload b/software/Slic3r-1.3.0.64bit/local-lib/bin/wxperl_overload deleted file mode 100644 index 121182bb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/wxperl_overload +++ /dev/null @@ -1,59 +0,0 @@ -#!/usr/bin/perl -w -############################################################################# -## Name: script/wxperl_overload -## Purpose: builds overload constants -## Author: Mattia Barbon -## Modified by: -## Created: 17/08/2001 -## RCS-ID: $Id: wxperl_overload 2335 2008-01-21 22:58:59Z mbarbon $ -## Copyright: (c) 2001-2003, 2005-2008 Mattia Barbon -## Licence: This program is free software; you can redistribute it and/or -## modify it under the same terms as Perl itself -############################################################################# - -use FindBin; - -use strict; -use lib "$FindBin::RealBin/../build"; - -=head1 NAME - -wxperl_overload - create overload declarations for wxPerl extensions - -=head1 SYNOPSIS - - # usually invoked from Makefile - wxperl_overload <.cpp file> <.h file> files... - - wxperl_overload <.cpp file> <.h file> file.lst - -=head1 DOCUMENTATION - -This script if usually invoked from an -C<ExtUtils::MakeMaker>-generated file by using C<WX_OVERLOAD> in -F<Makefile.PL>. - -Scans the files given on the command line or listed in the F<.lst> -file searching for wxPerl overload declarations. Writes a F<.h> file -with matching F<.cpp> file containing the definition for wxPerl -overload constants. - -=cut - -use Wx::Overload::Driver; - -my( $ovlc, $ovlh ) = ( shift, shift ); - -if( $ARGV[0] && $ARGV[0] =~ /\.lst$/ ) { # lame hack to read list from file - open my $fh, "<", $ARGV[0] or die "$!"; - @ARGV = map { chomp; $_ } <$fh>; -} - -my $driver = Wx::Overload::Driver->new - ( files => \@ARGV, - header => $ovlh, - source => $ovlc, - ); -$driver->process; - -exit 0; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/wxperl_overload.bat b/software/Slic3r-1.3.0.64bit/local-lib/bin/wxperl_overload.bat deleted file mode 100644 index 51466317..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/wxperl_overload.bat +++ /dev/null @@ -1,89 +0,0 @@ -@rem = '--*-Perl-*-- -@echo off -if "%OS%" == "Windows_NT" goto WinNT -IF EXIST "%~dp0perl.exe" ( -"%~dp0perl.exe" -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) ELSE IF EXIST "%~dp0..\..\bin\perl.exe" ( -"%~dp0..\..\bin\perl.exe" -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) ELSE ( -perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -) - -goto endofperl -:WinNT -IF EXIST "%~dp0perl.exe" ( -"%~dp0perl.exe" -x -S %0 %* -) ELSE IF EXIST "%~dp0..\..\bin\perl.exe" ( -"%~dp0..\..\bin\perl.exe" -x -S %0 %* -) ELSE ( -perl -x -S %0 %* -) - -if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl -if %errorlevel% == 9009 echo You do not have Perl in your PATH. -if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul -goto endofperl -@rem '; -#!/usr/bin/perl -w -#line 29 -############################################################################# -## Name: script/wxperl_overload -## Purpose: builds overload constants -## Author: Mattia Barbon -## Modified by: -## Created: 17/08/2001 -## RCS-ID: $Id: wxperl_overload 2335 2008-01-21 22:58:59Z mbarbon $ -## Copyright: (c) 2001-2003, 2005-2008 Mattia Barbon -## Licence: This program is free software; you can redistribute it and/or -## modify it under the same terms as Perl itself -############################################################################# - -use FindBin; - -use strict; -use lib "$FindBin::RealBin/../build"; - -=head1 NAME - -wxperl_overload - create overload declarations for wxPerl extensions - -=head1 SYNOPSIS - - # usually invoked from Makefile - wxperl_overload <.cpp file> <.h file> files... - - wxperl_overload <.cpp file> <.h file> file.lst - -=head1 DOCUMENTATION - -This script if usually invoked from an -C<ExtUtils::MakeMaker>-generated file by using C<WX_OVERLOAD> in -F<Makefile.PL>. - -Scans the files given on the command line or listed in the F<.lst> -file searching for wxPerl overload declarations. Writes a F<.h> file -with matching F<.cpp> file containing the definition for wxPerl -overload constants. - -=cut - -use Wx::Overload::Driver; - -my( $ovlc, $ovlh ) = ( shift, shift ); - -if( $ARGV[0] && $ARGV[0] =~ /\.lst$/ ) { # lame hack to read list from file - open my $fh, "<", $ARGV[0] or die "$!"; - @ARGV = map { chomp; $_ } <$fh>; -} - -my $driver = Wx::Overload::Driver->new - ( files => \@ARGV, - header => $ovlh, - source => $ovlc, - ); -$driver->process; - -exit 0; - -__END__ -:endofperl diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/xspp b/software/Slic3r-1.3.0.64bit/local-lib/bin/xspp deleted file mode 100644 index 9b8d278c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/xspp +++ /dev/null @@ -1,38 +0,0 @@ -#!C:\strawberry\perl\bin\perl.exe -w -############################################################################# -## Name: script/xspp -## Purpose: XS++ preprocessor -## Author: Mattia Barbon -## Modified by: -## Created: 01/03/2003 -## RCS-ID: $Id: wxperl_xspp 2334 2008-01-21 22:38:57Z mbarbon $ -## Copyright: (c) 2003-2004, 2006, 2008 Mattia Barbon -## Licence: This program is free software; you can redistribute it and/or -## modify it under the same terms as Perl itself -############################################################################# - -use strict; - -=head1 NAME - -xspp - XS++ preprocessor - -=head1 SYNOPSIS - - xspp [--typemap=typemap.xsp [--typemap=typemap2.xsp]] - [--xsubpp[=/path/to/xsubpp] [--xsubpp-args="xsubpp args"] - Foo.xsp - -or - - perl -MExtUtils::XSpp::Cmd -e xspp -- <xspp options and arguments> - -=head1 DOCUMENTATION - -See L<ExtUtils::XSpp>. - -=cut - -use ExtUtils::XSpp::Cmd; - -exit xspp; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/xspp.bat b/software/Slic3r-1.3.0.64bit/local-lib/bin/xspp.bat deleted file mode 100644 index 7c38e98f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/xspp.bat +++ /dev/null @@ -1,54 +0,0 @@ -@rem = '--*-Perl-*-- -@echo off -if "%OS%" == "Windows_NT" goto WinNT -perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -goto endofperl -:WinNT -perl -x -S %0 %* -if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl -if %errorlevel% == 9009 echo You do not have Perl in your PATH. -if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul -goto endofperl -@rem '; -#!C:\strawberry\perl\bin\perl.exe -w -#line 15 -############################################################################# -## Name: script/xspp -## Purpose: XS++ preprocessor -## Author: Mattia Barbon -## Modified by: -## Created: 01/03/2003 -## RCS-ID: $Id: wxperl_xspp 2334 2008-01-21 22:38:57Z mbarbon $ -## Copyright: (c) 2003-2004, 2006, 2008 Mattia Barbon -## Licence: This program is free software; you can redistribute it and/or -## modify it under the same terms as Perl itself -############################################################################# - -use strict; - -=head1 NAME - -xspp - XS++ preprocessor - -=head1 SYNOPSIS - - xspp [--typemap=typemap.xsp [--typemap=typemap2.xsp]] - [--xsubpp[=/path/to/xsubpp] [--xsubpp-args="xsubpp args"] - Foo.xsp - -or - - perl -MExtUtils::XSpp::Cmd -e xspp -- <xspp options and arguments> - -=head1 DOCUMENTATION - -See L<ExtUtils::XSpp>. - -=cut - -use ExtUtils::XSpp::Cmd; - -exit xspp; - -__END__ -:endofperl diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/xsubpp b/software/Slic3r-1.3.0.64bit/local-lib/bin/xsubpp deleted file mode 100644 index d596cdff..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/xsubpp +++ /dev/null @@ -1,185 +0,0 @@ -#!perl -use 5.006; -BEGIN { pop @INC if $INC[-1] eq '.' } -use strict; -eval { - require ExtUtils::ParseXS; - 1; -} -or do { - my $err = $@ || 'Zombie error'; - my $v = $ExtUtils::ParseXS::VERSION; - $v = '<undef>' if not defined $v; - die "Failed to load or import from ExtUtils::ParseXS (version $v). Please check that ExtUtils::ParseXS is installed correctly and that the newest version will be found in your \@INC path: $err"; -}; - -use Getopt::Long; - -my %args = (); - -my $usage = "Usage: xsubpp [-v] [-csuffix csuffix] [-except] [-prototypes] [-noversioncheck] [-nolinenumbers] [-nooptimize] [-noinout] [-noargtypes] [-strip|s pattern] [-typemap typemap]... file.xs\n"; - -Getopt::Long::Configure qw(no_auto_abbrev no_ignore_case); - -@ARGV = grep {$_ ne '-C++'} @ARGV; # Allow -C++ for backward compatibility -GetOptions(\%args, qw(hiertype! - prototypes! - versioncheck! - linenumbers! - optimize! - inout! - argtypes! - object_capi! - except! - v - typemap=s@ - output=s - s|strip=s - csuffix=s - )) - or die $usage; - -if ($args{v}) { - print "xsubpp version $ExtUtils::ParseXS::VERSION\n"; - exit; -} - -@ARGV == 1 or die $usage; - -$args{filename} = shift @ARGV; - -my $pxs = ExtUtils::ParseXS->new; -$pxs->process_file(%args); -exit( $pxs->report_error_count() ? 1 : 0 ); - -__END__ - -=head1 NAME - -xsubpp - compiler to convert Perl XS code into C code - -=head1 SYNOPSIS - -B<xsubpp> [B<-v>] [B<-except>] [B<-s pattern>] [B<-prototypes>] [B<-noversioncheck>] [B<-nolinenumbers>] [B<-nooptimize>] [B<-typemap typemap>] [B<-output filename>]... file.xs - -=head1 DESCRIPTION - -This compiler is typically run by the makefiles created by L<ExtUtils::MakeMaker> -or by L<Module::Build> or other Perl module build tools. - -I<xsubpp> will compile XS code into C code by embedding the constructs -necessary to let C functions manipulate Perl values and creates the glue -necessary to let Perl access those functions. The compiler uses typemaps to -determine how to map C function parameters and variables to Perl values. - -The compiler will search for typemap files called I<typemap>. It will use -the following search path to find default typemaps, with the rightmost -typemap taking precedence. - - ../../../typemap:../../typemap:../typemap:typemap - -It will also use a default typemap installed as C<ExtUtils::typemap>. - -=head1 OPTIONS - -Note that the C<XSOPT> MakeMaker option may be used to add these options to -any makefiles generated by MakeMaker. - -=over 5 - -=item B<-hiertype> - -Retains '::' in type names so that C++ hierarchical types can be mapped. - -=item B<-except> - -Adds exception handling stubs to the C code. - -=item B<-typemap typemap> - -Indicates that a user-supplied typemap should take precedence over the -default typemaps. This option may be used multiple times, with the last -typemap having the highest precedence. - -=item B<-output filename> - -Specifies the name of the output file to generate. If no file is -specified, output will be written to standard output. - -=item B<-v> - -Prints the I<xsubpp> version number to standard output, then exits. - -=item B<-prototypes> - -By default I<xsubpp> will not automatically generate prototype code for -all xsubs. This flag will enable prototypes. - -=item B<-noversioncheck> - -Disables the run time test that determines if the object file (derived -from the C<.xs> file) and the C<.pm> files have the same version -number. - -=item B<-nolinenumbers> - -Prevents the inclusion of '#line' directives in the output. - -=item B<-nooptimize> - -Disables certain optimizations. The only optimization that is currently -affected is the use of I<target>s by the output C code (see L<perlguts>). -This may significantly slow down the generated code, but this is the way -B<xsubpp> of 5.005 and earlier operated. - -=item B<-noinout> - -Disable recognition of C<IN>, C<OUT_LIST> and C<INOUT_LIST> declarations. - -=item B<-noargtypes> - -Disable recognition of ANSI-like descriptions of function signature. - -=item B<-C++> - -Currently doesn't do anything at all. This flag has been a no-op for -many versions of perl, at least as far back as perl5.003_07. It's -allowed here for backwards compatibility. - -=item B<-s=...> or B<-strip=...> - -I<This option is obscure and discouraged.> - -If specified, the given string will be stripped off from the beginning -of the C function name in the generated XS functions (if it starts with that prefix). -This only applies to XSUBs without C<CODE> or C<PPCODE> blocks. -For example, the XS: - - void foo_bar(int i); - -when C<xsubpp> is invoked with C<-s foo_> will install a C<foo_bar> -function in Perl, but really call C<bar(i)> in C. Most of the time, -this is the opposite of what you want and failure modes are somewhat -obscure, so please avoid this option where possible. - -=back - -=head1 ENVIRONMENT - -No environment variables are used. - -=head1 AUTHOR - -Originally by Larry Wall. Turned into the C<ExtUtils::ParseXS> module -by Ken Williams. - -=head1 MODIFICATION HISTORY - -See the file F<Changes>. - -=head1 SEE ALSO - -perl(1), perlxs(1), perlxstut(1), ExtUtils::ParseXS - -=cut - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/bin/xsubpp.bat b/software/Slic3r-1.3.0.64bit/local-lib/bin/xsubpp.bat deleted file mode 100644 index 856d9b16..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/bin/xsubpp.bat +++ /dev/null @@ -1,201 +0,0 @@ -@rem = '--*-Perl-*-- -@echo off -if "%OS%" == "Windows_NT" goto WinNT -perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 -goto endofperl -:WinNT -perl -x -S %0 %* -if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl -if %errorlevel% == 9009 echo You do not have Perl in your PATH. -if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul -goto endofperl -@rem '; -#!perl -#line 15 -use 5.006; -BEGIN { pop @INC if $INC[-1] eq '.' } -use strict; -eval { - require ExtUtils::ParseXS; - 1; -} -or do { - my $err = $@ || 'Zombie error'; - my $v = $ExtUtils::ParseXS::VERSION; - $v = '<undef>' if not defined $v; - die "Failed to load or import from ExtUtils::ParseXS (version $v). Please check that ExtUtils::ParseXS is installed correctly and that the newest version will be found in your \@INC path: $err"; -}; - -use Getopt::Long; - -my %args = (); - -my $usage = "Usage: xsubpp [-v] [-csuffix csuffix] [-except] [-prototypes] [-noversioncheck] [-nolinenumbers] [-nooptimize] [-noinout] [-noargtypes] [-strip|s pattern] [-typemap typemap]... file.xs\n"; - -Getopt::Long::Configure qw(no_auto_abbrev no_ignore_case); - -@ARGV = grep {$_ ne '-C++'} @ARGV; # Allow -C++ for backward compatibility -GetOptions(\%args, qw(hiertype! - prototypes! - versioncheck! - linenumbers! - optimize! - inout! - argtypes! - object_capi! - except! - v - typemap=s@ - output=s - s|strip=s - csuffix=s - )) - or die $usage; - -if ($args{v}) { - print "xsubpp version $ExtUtils::ParseXS::VERSION\n"; - exit; -} - -@ARGV == 1 or die $usage; - -$args{filename} = shift @ARGV; - -my $pxs = ExtUtils::ParseXS->new; -$pxs->process_file(%args); -exit( $pxs->report_error_count() ? 1 : 0 ); - -__END__ - -=head1 NAME - -xsubpp - compiler to convert Perl XS code into C code - -=head1 SYNOPSIS - -B<xsubpp> [B<-v>] [B<-except>] [B<-s pattern>] [B<-prototypes>] [B<-noversioncheck>] [B<-nolinenumbers>] [B<-nooptimize>] [B<-typemap typemap>] [B<-output filename>]... file.xs - -=head1 DESCRIPTION - -This compiler is typically run by the makefiles created by L<ExtUtils::MakeMaker> -or by L<Module::Build> or other Perl module build tools. - -I<xsubpp> will compile XS code into C code by embedding the constructs -necessary to let C functions manipulate Perl values and creates the glue -necessary to let Perl access those functions. The compiler uses typemaps to -determine how to map C function parameters and variables to Perl values. - -The compiler will search for typemap files called I<typemap>. It will use -the following search path to find default typemaps, with the rightmost -typemap taking precedence. - - ../../../typemap:../../typemap:../typemap:typemap - -It will also use a default typemap installed as C<ExtUtils::typemap>. - -=head1 OPTIONS - -Note that the C<XSOPT> MakeMaker option may be used to add these options to -any makefiles generated by MakeMaker. - -=over 5 - -=item B<-hiertype> - -Retains '::' in type names so that C++ hierarchical types can be mapped. - -=item B<-except> - -Adds exception handling stubs to the C code. - -=item B<-typemap typemap> - -Indicates that a user-supplied typemap should take precedence over the -default typemaps. This option may be used multiple times, with the last -typemap having the highest precedence. - -=item B<-output filename> - -Specifies the name of the output file to generate. If no file is -specified, output will be written to standard output. - -=item B<-v> - -Prints the I<xsubpp> version number to standard output, then exits. - -=item B<-prototypes> - -By default I<xsubpp> will not automatically generate prototype code for -all xsubs. This flag will enable prototypes. - -=item B<-noversioncheck> - -Disables the run time test that determines if the object file (derived -from the C<.xs> file) and the C<.pm> files have the same version -number. - -=item B<-nolinenumbers> - -Prevents the inclusion of '#line' directives in the output. - -=item B<-nooptimize> - -Disables certain optimizations. The only optimization that is currently -affected is the use of I<target>s by the output C code (see L<perlguts>). -This may significantly slow down the generated code, but this is the way -B<xsubpp> of 5.005 and earlier operated. - -=item B<-noinout> - -Disable recognition of C<IN>, C<OUT_LIST> and C<INOUT_LIST> declarations. - -=item B<-noargtypes> - -Disable recognition of ANSI-like descriptions of function signature. - -=item B<-C++> - -Currently doesn't do anything at all. This flag has been a no-op for -many versions of perl, at least as far back as perl5.003_07. It's -allowed here for backwards compatibility. - -=item B<-s=...> or B<-strip=...> - -I<This option is obscure and discouraged.> - -If specified, the given string will be stripped off from the beginning -of the C function name in the generated XS functions (if it starts with that prefix). -This only applies to XSUBs without C<CODE> or C<PPCODE> blocks. -For example, the XS: - - void foo_bar(int i); - -when C<xsubpp> is invoked with C<-s foo_> will install a C<foo_bar> -function in Perl, but really call C<bar(i)> in C. Most of the time, -this is the opposite of what you want and failure modes are somewhat -obscure, so please avoid this option where possible. - -=back - -=head1 ENVIRONMENT - -No environment variables are used. - -=head1 AUTHOR - -Originally by Larry Wall. Turned into the C<ExtUtils::ParseXS> module -by Ken Williams. - -=head1 MODIFICATION HISTORY - -See the file F<Changes>. - -=head1 SEE ALSO - -perl(1), perlxs(1), perlxstut(1), ExtUtils::ParseXS - -=cut - - -__END__ -:endofperl diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/Prove.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/Prove.pm deleted file mode 100644 index 9298726d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/Prove.pm +++ /dev/null @@ -1,829 +0,0 @@ -package App::Prove; - -use strict; -use warnings; - -use TAP::Harness::Env; -use Text::ParseWords qw(shellwords); -use File::Spec; -use Getopt::Long; -use App::Prove::State; -use Carp; - -use base 'TAP::Object'; - -=head1 NAME - -App::Prove - Implements the C<prove> command. - -=head1 VERSION - -Version 3.42 - -=cut - -our $VERSION = '3.42'; - -=head1 DESCRIPTION - -L<Test::Harness> provides a command, C<prove>, which runs a TAP based -test suite and prints a report. The C<prove> command is a minimal -wrapper around an instance of this module. - -=head1 SYNOPSIS - - use App::Prove; - - my $app = App::Prove->new; - $app->process_args(@ARGV); - $app->run; - -=cut - -use constant IS_WIN32 => ( $^O =~ /^(MS)?Win32$/ ); -use constant IS_VMS => $^O eq 'VMS'; -use constant IS_UNIXY => !( IS_VMS || IS_WIN32 ); - -use constant STATE_FILE => IS_UNIXY ? '.prove' : '_prove'; -use constant RC_FILE => IS_UNIXY ? '.proverc' : '_proverc'; - -use constant PLUGINS => 'App::Prove::Plugin'; - -my @ATTR; - -BEGIN { - @ATTR = qw( - archive argv blib show_count color directives exec failures comments - formatter harness includes modules plugins jobs lib merge parse quiet - really_quiet recurse backwards shuffle taint_fail taint_warn timer - verbose warnings_fail warnings_warn show_help show_man show_version - state_class test_args state dry extensions ignore_exit rules state_manager - normalize sources tapversion trap - statefile - ); - __PACKAGE__->mk_methods(@ATTR); -} - -=head1 METHODS - -=head2 Class Methods - -=head3 C<new> - -Create a new C<App::Prove>. Optionally a hash ref of attribute -initializers may be passed. - -=cut - -# new() implementation supplied by TAP::Object - -sub _initialize { - my $self = shift; - my $args = shift || {}; - - my @is_array = qw( - argv rc_opts includes modules state plugins rules sources - ); - - # setup defaults: - for my $key (@is_array) { - $self->{$key} = []; - } - - for my $attr (@ATTR) { - if ( exists $args->{$attr} ) { - - # TODO: Some validation here - $self->{$attr} = $args->{$attr}; - } - } - - $self->state_class('App::Prove::State'); - return $self; -} - -=head3 C<state_class> - -Getter/setter for the name of the class used for maintaining state. This -class should either subclass from C<App::Prove::State> or provide an identical -interface. - -=head3 C<state_manager> - -Getter/setter for the instance of the C<state_class>. - -=cut - -=head3 C<add_rc_file> - - $prove->add_rc_file('myproj/.proverc'); - -Called before C<process_args> to prepend the contents of an rc file to -the options. - -=cut - -sub add_rc_file { - my ( $self, $rc_file ) = @_; - - local *RC; - open RC, "<$rc_file" or croak "Can't read $rc_file ($!)"; - while ( defined( my $line = <RC> ) ) { - push @{ $self->{rc_opts} }, - grep { defined and not /^#/ } - $line =~ m{ ' ([^']*) ' | " ([^"]*) " | (\#.*) | (\S+) }xg; - } - close RC; -} - -=head3 C<process_args> - - $prove->process_args(@args); - -Processes the command-line arguments. Attributes will be set -appropriately. Any filenames may be found in the C<argv> attribute. - -Dies on invalid arguments. - -=cut - -sub process_args { - my $self = shift; - - my @rc = RC_FILE; - unshift @rc, glob '~/' . RC_FILE if IS_UNIXY; - - # Preprocess meta-args. - my @args; - while ( defined( my $arg = shift ) ) { - if ( $arg eq '--norc' ) { - @rc = (); - } - elsif ( $arg eq '--rc' ) { - defined( my $rc = shift ) - or croak "Missing argument to --rc"; - push @rc, $rc; - } - elsif ( $arg =~ m{^--rc=(.+)$} ) { - push @rc, $1; - } - else { - push @args, $arg; - } - } - - # Everything after the arisdottle '::' gets passed as args to - # test programs. - if ( defined( my $stop_at = _first_pos( '::', @args ) ) ) { - my @test_args = splice @args, $stop_at; - shift @test_args; - $self->{test_args} = \@test_args; - } - - # Grab options from RC files - $self->add_rc_file($_) for grep -f, @rc; - unshift @args, @{ $self->{rc_opts} }; - - if ( my @bad = map {"-$_"} grep {/^-(man|help)$/} @args ) { - die "Long options should be written with two dashes: ", - join( ', ', @bad ), "\n"; - } - - # And finally... - - { - local @ARGV = @args; - Getopt::Long::Configure(qw(no_ignore_case bundling pass_through)); - - # Don't add coderefs to GetOptions - GetOptions( - 'v|verbose' => \$self->{verbose}, - 'f|failures' => \$self->{failures}, - 'o|comments' => \$self->{comments}, - 'l|lib' => \$self->{lib}, - 'b|blib' => \$self->{blib}, - 's|shuffle' => \$self->{shuffle}, - 'color!' => \$self->{color}, - 'colour!' => \$self->{color}, - 'count!' => \$self->{show_count}, - 'c' => \$self->{color}, - 'D|dry' => \$self->{dry}, - 'ext=s@' => sub { - my ( $opt, $val ) = @_; - - # Workaround for Getopt::Long 2.25 handling of - # multivalue options - push @{ $self->{extensions} ||= [] }, $val; - }, - 'harness=s' => \$self->{harness}, - 'ignore-exit' => \$self->{ignore_exit}, - 'source=s@' => $self->{sources}, - 'formatter=s' => \$self->{formatter}, - 'r|recurse' => \$self->{recurse}, - 'reverse' => \$self->{backwards}, - 'p|parse' => \$self->{parse}, - 'q|quiet' => \$self->{quiet}, - 'Q|QUIET' => \$self->{really_quiet}, - 'e|exec=s' => \$self->{exec}, - 'm|merge' => \$self->{merge}, - 'I=s@' => $self->{includes}, - 'M=s@' => $self->{modules}, - 'P=s@' => $self->{plugins}, - 'state=s@' => $self->{state}, - 'statefile=s' => \$self->{statefile}, - 'directives' => \$self->{directives}, - 'h|help|?' => \$self->{show_help}, - 'H|man' => \$self->{show_man}, - 'V|version' => \$self->{show_version}, - 'a|archive=s' => \$self->{archive}, - 'j|jobs=i' => \$self->{jobs}, - 'timer' => \$self->{timer}, - 'T' => \$self->{taint_fail}, - 't' => \$self->{taint_warn}, - 'W' => \$self->{warnings_fail}, - 'w' => \$self->{warnings_warn}, - 'normalize' => \$self->{normalize}, - 'rules=s@' => $self->{rules}, - 'tapversion=s' => \$self->{tapversion}, - 'trap' => \$self->{trap}, - ) or croak('Unable to continue'); - - # Stash the remainder of argv for later - $self->{argv} = [@ARGV]; - } - - return; -} - -sub _first_pos { - my $want = shift; - for ( 0 .. $#_ ) { - return $_ if $_[$_] eq $want; - } - return; -} - -sub _help { - my ( $self, $verbosity ) = @_; - - eval('use Pod::Usage 1.12 ()'); - if ( my $err = $@ ) { - die 'Please install Pod::Usage for the --help option ' - . '(or try `perldoc prove`.)' - . "\n ($@)"; - } - - Pod::Usage::pod2usage( { -verbose => $verbosity } ); - - return; -} - -sub _color_default { - my $self = shift; - - return -t STDOUT && !$ENV{HARNESS_NOTTY}; -} - -sub _get_args { - my $self = shift; - - my %args; - - $args{trap} = 1 if $self->trap; - - if ( defined $self->color ? $self->color : $self->_color_default ) { - $args{color} = 1; - } - if ( !defined $self->show_count ) { - $args{show_count} = 1; - } - else { - $args{show_count} = $self->show_count; - } - - if ( $self->archive ) { - $self->require_harness( archive => 'TAP::Harness::Archive' ); - $args{archive} = $self->archive; - } - - if ( my $jobs = $self->jobs ) { - $args{jobs} = $jobs; - } - - if ( my $harness_opt = $self->harness ) { - $self->require_harness( harness => $harness_opt ); - } - - if ( my $formatter = $self->formatter ) { - $args{formatter_class} = $formatter; - } - - for my $handler ( @{ $self->sources } ) { - my ( $name, $config ) = $self->_parse_source($handler); - $args{sources}->{$name} = $config; - } - - if ( $self->ignore_exit ) { - $args{ignore_exit} = 1; - } - - if ( $self->taint_fail && $self->taint_warn ) { - die '-t and -T are mutually exclusive'; - } - - if ( $self->warnings_fail && $self->warnings_warn ) { - die '-w and -W are mutually exclusive'; - } - - for my $a (qw( lib switches )) { - my $method = "_get_$a"; - my $val = $self->$method(); - $args{$a} = $val if defined $val; - } - - # Handle verbose, quiet, really_quiet flags - my %verb_map = ( verbose => 1, quiet => -1, really_quiet => -2, ); - - my @verb_adj = grep {$_} map { $self->$_() ? $verb_map{$_} : 0 } - keys %verb_map; - - die "Only one of verbose, quiet or really_quiet should be specified\n" - if @verb_adj > 1; - - $args{verbosity} = shift @verb_adj || 0; - - for my $a (qw( merge failures comments timer directives normalize )) { - $args{$a} = 1 if $self->$a(); - } - - $args{errors} = 1 if $self->parse; - - # defined but zero-length exec runs test files as binaries - $args{exec} = [ split( /\s+/, $self->exec ) ] - if ( defined( $self->exec ) ); - - $args{version} = $self->tapversion if defined( $self->tapversion ); - - if ( defined( my $test_args = $self->test_args ) ) { - $args{test_args} = $test_args; - } - - if ( @{ $self->rules } ) { - my @rules; - for ( @{ $self->rules } ) { - if (/^par=(.*)/) { - push @rules, $1; - } - elsif (/^seq=(.*)/) { - push @rules, { seq => $1 }; - } - } - $args{rules} = { par => [@rules] }; - } - $args{harness_class} = $self->{harness_class} if $self->{harness_class}; - - return \%args; -} - -sub _find_module { - my ( $self, $class, @search ) = @_; - - croak "Bad module name $class" - unless $class =~ /^ \w+ (?: :: \w+ ) *$/x; - - for my $pfx (@search) { - my $name = join( '::', $pfx, $class ); - eval "require $name"; - return $name unless $@; - } - - eval "require $class"; - return $class unless $@; - return; -} - -sub _load_extension { - my ( $self, $name, @search ) = @_; - - my @args = (); - if ( $name =~ /^(.*?)=(.*)/ ) { - $name = $1; - @args = split( /,/, $2 ); - } - - if ( my $class = $self->_find_module( $name, @search ) ) { - $class->import(@args); - if ( $class->can('load') ) { - $class->load( { app_prove => $self, args => [@args] } ); - } - } - else { - croak "Can't load module $name"; - } -} - -sub _load_extensions { - my ( $self, $ext, @search ) = @_; - $self->_load_extension( $_, @search ) for @$ext; -} - -sub _parse_source { - my ( $self, $handler ) = @_; - - # Load any options. - ( my $opt_name = lc $handler ) =~ s/::/-/g; - local @ARGV = @{ $self->{argv} }; - my %config; - Getopt::Long::GetOptions( - "$opt_name-option=s%" => sub { - my ( $name, $k, $v ) = @_; - if ( $v =~ /(?<!\\)=/ ) { - - # It's a hash option. - croak "Option $name must be consistently used as a hash" - if exists $config{$k} && ref $config{$k} ne 'HASH'; - $config{$k} ||= {}; - my ( $hk, $hv ) = split /(?<!\\)=/, $v, 2; - $config{$k}{$hk} = $hv; - } - else { - $v =~ s/\\=/=/g; - if ( exists $config{$k} ) { - $config{$k} = [ $config{$k} ] - unless ref $config{$k} eq 'ARRAY'; - push @{ $config{$k} } => $v; - } - else { - $config{$k} = $v; - } - } - } - ); - $self->{argv} = \@ARGV; - return ( $handler, \%config ); -} - -=head3 C<run> - -Perform whatever actions the command line args specified. The C<prove> -command line tool consists of the following code: - - use App::Prove; - - my $app = App::Prove->new; - $app->process_args(@ARGV); - exit( $app->run ? 0 : 1 ); # if you need the exit code - -=cut - -sub run { - my $self = shift; - - unless ( $self->state_manager ) { - $self->state_manager( - $self->state_class->new( { store => $self->statefile || STATE_FILE } ) ); - } - - if ( $self->show_help ) { - $self->_help(1); - } - elsif ( $self->show_man ) { - $self->_help(2); - } - elsif ( $self->show_version ) { - $self->print_version; - } - elsif ( $self->dry ) { - print "$_\n" for $self->_get_tests; - } - else { - - $self->_load_extensions( $self->modules ); - $self->_load_extensions( $self->plugins, PLUGINS ); - - local $ENV{TEST_VERBOSE} = 1 if $self->verbose; - - return $self->_runtests( $self->_get_args, $self->_get_tests ); - } - - return 1; -} - -sub _get_tests { - my $self = shift; - - my $state = $self->state_manager; - my $ext = $self->extensions; - $state->extensions($ext) if defined $ext; - if ( defined( my $state_switch = $self->state ) ) { - $state->apply_switch(@$state_switch); - } - - my @tests = $state->get_tests( $self->recurse, @{ $self->argv } ); - - $self->_shuffle(@tests) if $self->shuffle; - @tests = reverse @tests if $self->backwards; - - return @tests; -} - -sub _runtests { - my ( $self, $args, @tests ) = @_; - my $harness = TAP::Harness::Env->create($args); - - my $state = $self->state_manager; - - $harness->callback( - after_test => sub { - $state->observe_test(@_); - } - ); - - $harness->callback( - after_runtests => sub { - $state->commit(@_); - } - ); - - my $aggregator = $harness->runtests(@tests); - - return !$aggregator->has_errors; -} - -sub _get_switches { - my $self = shift; - my @switches; - - # notes that -T or -t must be at the front of the switches! - if ( $self->taint_fail ) { - push @switches, '-T'; - } - elsif ( $self->taint_warn ) { - push @switches, '-t'; - } - if ( $self->warnings_fail ) { - push @switches, '-W'; - } - elsif ( $self->warnings_warn ) { - push @switches, '-w'; - } - - return @switches ? \@switches : (); -} - -sub _get_lib { - my $self = shift; - my @libs; - if ( $self->lib ) { - push @libs, 'lib'; - } - if ( $self->blib ) { - push @libs, 'blib/lib', 'blib/arch'; - } - if ( @{ $self->includes } ) { - push @libs, @{ $self->includes }; - } - - #24926 - @libs = map { File::Spec->rel2abs($_) } @libs; - - # Huh? - return @libs ? \@libs : (); -} - -sub _shuffle { - my $self = shift; - - # Fisher-Yates shuffle - my $i = @_; - while ($i) { - my $j = rand $i--; - @_[ $i, $j ] = @_[ $j, $i ]; - } - return; -} - -=head3 C<require_harness> - -Load a harness replacement class. - - $prove->require_harness($for => $class_name); - -=cut - -sub require_harness { - my ( $self, $for, $class ) = @_; - - my ($class_name) = $class =~ /^(\w+(?:::\w+)*)/; - - # Emulate Perl's -MModule=arg1,arg2 behaviour - $class =~ s!^(\w+(?:::\w+)*)=(.*)$!$1 split(/,/,q{$2})!; - - eval("use $class;"); - die "$class_name is required to use the --$for feature: $@" if $@; - - $self->{harness_class} = $class_name; - - return; -} - -=head3 C<print_version> - -Display the version numbers of the loaded L<TAP::Harness> and the -current Perl. - -=cut - -sub print_version { - my $self = shift; - require TAP::Harness; - printf( - "TAP::Harness v%s and Perl v%vd\n", - $TAP::Harness::VERSION, $^V - ); - - return; -} - -1; - -# vim:ts=4:sw=4:et:sta - -__END__ - -=head2 Attributes - -After command line parsing the following attributes reflect the values -of the corresponding command line switches. They may be altered before -calling C<run>. - -=over - -=item C<archive> - -=item C<argv> - -=item C<backwards> - -=item C<blib> - -=item C<color> - -=item C<directives> - -=item C<dry> - -=item C<exec> - -=item C<extensions> - -=item C<failures> - -=item C<comments> - -=item C<formatter> - -=item C<harness> - -=item C<ignore_exit> - -=item C<includes> - -=item C<jobs> - -=item C<lib> - -=item C<merge> - -=item C<modules> - -=item C<parse> - -=item C<plugins> - -=item C<quiet> - -=item C<really_quiet> - -=item C<recurse> - -=item C<rules> - -=item C<show_count> - -=item C<show_help> - -=item C<show_man> - -=item C<show_version> - -=item C<shuffle> - -=item C<state> - -=item C<state_class> - -=item C<taint_fail> - -=item C<taint_warn> - -=item C<test_args> - -=item C<timer> - -=item C<verbose> - -=item C<warnings_fail> - -=item C<warnings_warn> - -=item C<tapversion> - -=item C<trap> - -=back - -=head1 PLUGINS - -C<App::Prove> provides support for 3rd-party plugins. These are currently -loaded at run-time, I<after> arguments have been parsed (so you can not -change the way arguments are processed, sorry), typically with the -C<< -PI<plugin> >> switch, eg: - - prove -PMyPlugin - -This will search for a module named C<App::Prove::Plugin::MyPlugin>, or failing -that, C<MyPlugin>. If the plugin can't be found, C<prove> will complain & exit. - -You can pass an argument to your plugin by appending an C<=> after the plugin -name, eg C<-PMyPlugin=foo>. You can pass multiple arguments using commas: - - prove -PMyPlugin=foo,bar,baz - -These are passed in to your plugin's C<load()> class method (if it has one), -along with a reference to the C<App::Prove> object that is invoking your plugin: - - sub load { - my ($class, $p) = @_; - - my @args = @{ $p->{args} }; - # @args will contain ( 'foo', 'bar', 'baz' ) - $p->{app_prove}->do_something; - ... - } - -Note that the user's arguments are also passed to your plugin's C<import()> -function as a list, eg: - - sub import { - my ($class, @args) = @_; - # @args will contain ( 'foo', 'bar', 'baz' ) - ... - } - -This is for backwards compatibility, and may be deprecated in the future. - -=head2 Sample Plugin - -Here's a sample plugin, for your reference: - - package App::Prove::Plugin::Foo; - - # Sample plugin, try running with: - # prove -PFoo=bar -r -j3 - # prove -PFoo -Q - # prove -PFoo=bar,My::Formatter - - use strict; - use warnings; - - sub load { - my ($class, $p) = @_; - my @args = @{ $p->{args} }; - my $app = $p->{app_prove}; - - print "loading plugin: $class, args: ", join(', ', @args ), "\n"; - - # turn on verbosity - $app->verbose( 1 ); - - # set the formatter? - $app->formatter( $args[1] ) if @args > 1; - - # print some of App::Prove's state: - for my $attr (qw( jobs quiet really_quiet recurse verbose )) { - my $val = $app->$attr; - $val = 'undef' unless defined( $val ); - print "$attr: $val\n"; - } - - return 1; - } - - 1; - -=head1 SEE ALSO - -L<prove>, L<TAP::Harness> - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/Prove/State.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/Prove/State.pm deleted file mode 100644 index 0b61a824..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/Prove/State.pm +++ /dev/null @@ -1,548 +0,0 @@ -package App::Prove::State; - -use strict; -use warnings; - -use File::Find; -use File::Spec; -use Carp; - -use App::Prove::State::Result; -use TAP::Parser::YAMLish::Reader (); -use TAP::Parser::YAMLish::Writer (); -use base 'TAP::Base'; - -BEGIN { - __PACKAGE__->mk_methods('result_class'); -} - -use constant IS_WIN32 => ( $^O =~ /^(MS)?Win32$/ ); -use constant NEED_GLOB => IS_WIN32; - -=head1 NAME - -App::Prove::State - State storage for the C<prove> command. - -=head1 VERSION - -Version 3.42 - -=cut - -our $VERSION = '3.42'; - -=head1 DESCRIPTION - -The C<prove> command supports a C<--state> option that instructs it to -store persistent state across runs. This module implements that state -and the operations that may be performed on it. - -=head1 SYNOPSIS - - # Re-run failed tests - $ prove --state=failed,save -rbv - -=cut - -=head1 METHODS - -=head2 Class Methods - -=head3 C<new> - -Accepts a hashref with the following key/value pairs: - -=over 4 - -=item * C<store> - -The filename of the data store holding the data that App::Prove::State reads. - -=item * C<extensions> (optional) - -The test name extensions. Defaults to C<.t>. - -=item * C<result_class> (optional) - -The name of the C<result_class>. Defaults to C<App::Prove::State::Result>. - -=back - -=cut - -# override TAP::Base::new: -sub new { - my $class = shift; - my %args = %{ shift || {} }; - - my $self = bless { - select => [], - seq => 1, - store => delete $args{store}, - extensions => ( delete $args{extensions} || ['.t'] ), - result_class => - ( delete $args{result_class} || 'App::Prove::State::Result' ), - }, $class; - - $self->{_} = $self->result_class->new( - { tests => {}, - generation => 1, - } - ); - my $store = $self->{store}; - $self->load($store) - if defined $store && -f $store; - - return $self; -} - -=head2 C<result_class> - -Getter/setter for the name of the class used for tracking test results. This -class should either subclass from C<App::Prove::State::Result> or provide an -identical interface. - -=cut - -=head2 C<extensions> - -Get or set the list of extensions that files must have in order to be -considered tests. Defaults to ['.t']. - -=cut - -sub extensions { - my $self = shift; - $self->{extensions} = shift if @_; - return $self->{extensions}; -} - -=head2 C<results> - -Get the results of the last test run. Returns a C<result_class()> instance. - -=cut - -sub results { - my $self = shift; - $self->{_} || $self->result_class->new; -} - -=head2 C<commit> - -Save the test results. Should be called after all tests have run. - -=cut - -sub commit { - my $self = shift; - if ( $self->{should_save} ) { - $self->save; - } -} - -=head2 Instance Methods - -=head3 C<apply_switch> - - $self->apply_switch('failed,save'); - -Apply a list of switch options to the state, updating the internal -object state as a result. Nothing is returned. - -Diagnostics: - - "Illegal state option: %s" - -=over - -=item C<last> - -Run in the same order as last time - -=item C<failed> - -Run only the failed tests from last time - -=item C<passed> - -Run only the passed tests from last time - -=item C<all> - -Run all tests in normal order - -=item C<hot> - -Run the tests that most recently failed first - -=item C<todo> - -Run the tests ordered by number of todos. - -=item C<slow> - -Run the tests in slowest to fastest order. - -=item C<fast> - -Run test tests in fastest to slowest order. - -=item C<new> - -Run the tests in newest to oldest order. - -=item C<old> - -Run the tests in oldest to newest order. - -=item C<save> - -Save the state on exit. - -=back - -=cut - -sub apply_switch { - my $self = shift; - my @opts = @_; - - my $last_gen = $self->results->generation - 1; - my $last_run_time = $self->results->last_run_time; - my $now = $self->get_time; - - my @switches = map { split /,/ } @opts; - - my %handler = ( - last => sub { - $self->_select( - limit => shift, - where => sub { $_->generation >= $last_gen }, - order => sub { $_->sequence } - ); - }, - failed => sub { - $self->_select( - limit => shift, - where => sub { $_->result != 0 }, - order => sub { -$_->result } - ); - }, - passed => sub { - $self->_select( - limit => shift, - where => sub { $_->result == 0 } - ); - }, - all => sub { - $self->_select( limit => shift ); - }, - todo => sub { - $self->_select( - limit => shift, - where => sub { $_->num_todo != 0 }, - order => sub { -$_->num_todo; } - ); - }, - hot => sub { - $self->_select( - limit => shift, - where => sub { defined $_->last_fail_time }, - order => sub { $now - $_->last_fail_time } - ); - }, - slow => sub { - $self->_select( - limit => shift, - order => sub { -$_->elapsed } - ); - }, - fast => sub { - $self->_select( - limit => shift, - order => sub { $_->elapsed } - ); - }, - new => sub { - $self->_select( - limit => shift, - order => sub { -$_->mtime } - ); - }, - old => sub { - $self->_select( - limit => shift, - order => sub { $_->mtime } - ); - }, - fresh => sub { - $self->_select( - limit => shift, - where => sub { $_->mtime >= $last_run_time } - ); - }, - save => sub { - $self->{should_save}++; - }, - adrian => sub { - unshift @switches, qw( hot all save ); - }, - ); - - while ( defined( my $ele = shift @switches ) ) { - my ( $opt, $arg ) - = ( $ele =~ /^([^:]+):(.*)/ ) - ? ( $1, $2 ) - : ( $ele, undef ); - my $code = $handler{$opt} - || croak "Illegal state option: $opt"; - $code->($arg); - } - return; -} - -sub _select { - my ( $self, %spec ) = @_; - push @{ $self->{select} }, \%spec; -} - -=head3 C<get_tests> - -Given a list of args get the names of tests that should run - -=cut - -sub get_tests { - my $self = shift; - my $recurse = shift; - my @argv = @_; - my %seen; - - my @selected = $self->_query; - - unless ( @argv || @{ $self->{select} } ) { - @argv = $recurse ? '.' : 't'; - croak qq{No tests named and '@argv' directory not found} - unless -d $argv[0]; - } - - push @selected, $self->_get_raw_tests( $recurse, @argv ) if @argv; - return grep { !$seen{$_}++ } @selected; -} - -sub _query { - my $self = shift; - if ( my @sel = @{ $self->{select} } ) { - warn "No saved state, selection will be empty\n" - unless $self->results->num_tests; - return map { $self->_query_clause($_) } @sel; - } - return; -} - -sub _query_clause { - my ( $self, $clause ) = @_; - my @got; - my $results = $self->results; - my $where = $clause->{where} || sub {1}; - - # Select - for my $name ( $results->test_names ) { - next unless -f $name; - local $_ = $results->test($name); - push @got, $name if $where->(); - } - - # Sort - if ( my $order = $clause->{order} ) { - @got = map { $_->[0] } - sort { - ( defined $b->[1] <=> defined $a->[1] ) - || ( ( $a->[1] || 0 ) <=> ( $b->[1] || 0 ) ) - } map { - [ $_, - do { local $_ = $results->test($_); $order->() } - ] - } @got; - } - - if ( my $limit = $clause->{limit} ) { - @got = splice @got, 0, $limit if @got > $limit; - } - - return @got; -} - -sub _get_raw_tests { - my $self = shift; - my $recurse = shift; - my @argv = @_; - my @tests; - - # Do globbing on Win32. - if (NEED_GLOB) { - eval "use File::Glob::Windows"; # [49732] - @argv = map { glob "$_" } @argv; - } - my $extensions = $self->{extensions}; - - for my $arg (@argv) { - if ( '-' eq $arg ) { - push @argv => <STDIN>; - chomp(@argv); - next; - } - - push @tests, - sort -d $arg - ? $recurse - ? $self->_expand_dir_recursive( $arg, $extensions ) - : map { glob( File::Spec->catfile( $arg, "*$_" ) ) } - @{$extensions} - : $arg; - } - return @tests; -} - -sub _expand_dir_recursive { - my ( $self, $dir, $extensions ) = @_; - - my @tests; - my $ext_string = join( '|', map {quotemeta} @{$extensions} ); - - find( - { follow => 1, #21938 - follow_skip => 2, - wanted => sub { - -f - && /(?:$ext_string)$/ - && push @tests => $File::Find::name; - } - }, - $dir - ); - return @tests; -} - -=head3 C<observe_test> - -Store the results of a test. - -=cut - -# Store: -# last fail time -# last pass time -# last run time -# most recent result -# most recent todos -# total failures -# total passes -# state generation -# parser - -sub observe_test { - - my ( $self, $test_info, $parser ) = @_; - my $name = $test_info->[0]; - my $fail = scalar( $parser->failed ) + ( $parser->has_problems ? 1 : 0 ); - my $todo = scalar( $parser->todo ); - my $start_time = $parser->start_time; - my $end_time = $parser->end_time, - - my $test = $self->results->test($name); - - $test->sequence( $self->{seq}++ ); - $test->generation( $self->results->generation ); - - $test->run_time($end_time); - $test->result($fail); - $test->num_todo($todo); - $test->elapsed( $end_time - $start_time ); - - $test->parser($parser); - - if ($fail) { - $test->total_failures( $test->total_failures + 1 ); - $test->last_fail_time($end_time); - } - else { - $test->total_passes( $test->total_passes + 1 ); - $test->last_pass_time($end_time); - } -} - -=head3 C<save> - -Write the state to a file. - -=cut - -sub save { - my ($self) = @_; - - my $store = $self->{store} or return; - $self->results->last_run_time( $self->get_time ); - - my $writer = TAP::Parser::YAMLish::Writer->new; - local *FH; - open FH, ">$store" or croak "Can't write $store ($!)"; - $writer->write( $self->results->raw, \*FH ); - close FH; -} - -=head3 C<load> - -Load the state from a file - -=cut - -sub load { - my ( $self, $name ) = @_; - my $reader = TAP::Parser::YAMLish::Reader->new; - local *FH; - open FH, "<$name" or croak "Can't read $name ($!)"; - - # XXX this is temporary - $self->{_} = $self->result_class->new( - $reader->read( - sub { - my $line = <FH>; - defined $line && chomp $line; - return $line; - } - ) - ); - - # $writer->write( $self->{tests} || {}, \*FH ); - close FH; - $self->_regen_seq; - $self->_prune_and_stamp; - $self->results->generation( $self->results->generation + 1 ); -} - -sub _prune_and_stamp { - my $self = shift; - - my $results = $self->results; - my @tests = $self->results->tests; - for my $test (@tests) { - my $name = $test->name; - if ( my @stat = stat $name ) { - $test->mtime( $stat[9] ); - } - else { - $results->remove($name); - } - } -} - -sub _regen_seq { - my $self = shift; - for my $test ( $self->results->tests ) { - $self->{seq} = $test->sequence + 1 - if defined $test->sequence && $test->sequence >= $self->{seq}; - } -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/Prove/State/Result.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/Prove/State/Result.pm deleted file mode 100644 index 8f89c775..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/Prove/State/Result.pm +++ /dev/null @@ -1,233 +0,0 @@ -package App::Prove::State::Result; - -use strict; -use warnings; -use Carp 'croak'; - -use App::Prove::State::Result::Test; - -use constant STATE_VERSION => 1; - -=head1 NAME - -App::Prove::State::Result - Individual test suite results. - -=head1 VERSION - -Version 3.42 - -=cut - -our $VERSION = '3.42'; - -=head1 DESCRIPTION - -The C<prove> command supports a C<--state> option that instructs it to -store persistent state across runs. This module encapsulates the results for a -single test suite run. - -=head1 SYNOPSIS - - # Re-run failed tests - $ prove --state=failed,save -rbv - -=cut - -=head1 METHODS - -=head2 Class Methods - -=head3 C<new> - - my $result = App::Prove::State::Result->new({ - generation => $generation, - tests => \%tests, - }); - -Returns a new C<App::Prove::State::Result> instance. - -=cut - -sub new { - my ( $class, $arg_for ) = @_; - $arg_for ||= {}; - my %instance_data = %$arg_for; # shallow copy - $instance_data{version} = $class->state_version; - my $tests = delete $instance_data{tests} || {}; - my $self = bless \%instance_data => $class; - $self->_initialize($tests); - return $self; -} - -sub _initialize { - my ( $self, $tests ) = @_; - my %tests; - while ( my ( $name, $test ) = each %$tests ) { - $tests{$name} = $self->test_class->new( - { %$test, - name => $name - } - ); - } - $self->tests( \%tests ); - return $self; -} - -=head2 C<state_version> - -Returns the current version of state storage. - -=cut - -sub state_version {STATE_VERSION} - -=head2 C<test_class> - -Returns the name of the class used for tracking individual tests. This class -should either subclass from C<App::Prove::State::Result::Test> or provide an -identical interface. - -=cut - -sub test_class { - return 'App::Prove::State::Result::Test'; -} - -my %methods = ( - generation => { method => 'generation', default => 0 }, - last_run_time => { method => 'last_run_time', default => undef }, -); - -while ( my ( $key, $description ) = each %methods ) { - my $default = $description->{default}; - no strict 'refs'; - *{ $description->{method} } = sub { - my $self = shift; - if (@_) { - $self->{$key} = shift; - return $self; - } - return $self->{$key} || $default; - }; -} - -=head3 C<generation> - -Getter/setter for the "generation" of the test suite run. The first -generation is 1 (one) and subsequent generations are 2, 3, etc. - -=head3 C<last_run_time> - -Getter/setter for the time of the test suite run. - -=head3 C<tests> - -Returns the tests for a given generation. This is a hashref or a hash, -depending on context called. The keys to the hash are the individual -test names and the value is a hashref with various interesting values. -Each k/v pair might resemble something like this: - - 't/foo.t' => { - elapsed => '0.0428488254547119', - gen => '7', - last_pass_time => '1219328376.07815', - last_result => '0', - last_run_time => '1219328376.07815', - last_todo => '0', - mtime => '1191708862', - seq => '192', - total_passes => '6', - } - -=cut - -sub tests { - my $self = shift; - if (@_) { - $self->{tests} = shift; - return $self; - } - my %tests = %{ $self->{tests} }; - my @tests = sort { $a->sequence <=> $b->sequence } values %tests; - return wantarray ? @tests : \@tests; -} - -=head3 C<test> - - my $test = $result->test('t/customer/create.t'); - -Returns an individual C<App::Prove::State::Result::Test> instance for the -given test name (usually the filename). Will return a new -C<App::Prove::State::Result::Test> instance if the name is not found. - -=cut - -sub test { - my ( $self, $name ) = @_; - croak("test() requires a test name") unless defined $name; - - my $tests = $self->{tests} ||= {}; - if ( my $test = $tests->{$name} ) { - return $test; - } - else { - my $test = $self->test_class->new( { name => $name } ); - $self->{tests}->{$name} = $test; - return $test; - } -} - -=head3 C<test_names> - -Returns an list of test names, sorted by run order. - -=cut - -sub test_names { - my $self = shift; - return map { $_->name } $self->tests; -} - -=head3 C<remove> - - $result->remove($test_name); # remove the test - my $test = $result->test($test_name); # fatal error - -Removes a given test from results. This is a no-op if the test name is not -found. - -=cut - -sub remove { - my ( $self, $name ) = @_; - delete $self->{tests}->{$name}; - return $self; -} - -=head3 C<num_tests> - -Returns the number of tests for a given test suite result. - -=cut - -sub num_tests { keys %{ shift->{tests} } } - -=head3 C<raw> - -Returns a hashref of raw results, suitable for serialization by YAML. - -=cut - -sub raw { - my $self = shift; - my %raw = %$self; - - my %tests; - for my $test ( $self->tests ) { - $tests{ $test->name } = $test->raw; - } - $raw{tests} = \%tests; - return \%raw; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/Prove/State/Result/Test.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/Prove/State/Result/Test.pm deleted file mode 100644 index b795280f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/Prove/State/Result/Test.pm +++ /dev/null @@ -1,152 +0,0 @@ -package App::Prove::State::Result::Test; - -use strict; -use warnings; - -=head1 NAME - -App::Prove::State::Result::Test - Individual test results. - -=head1 VERSION - -Version 3.42 - -=cut - -our $VERSION = '3.42'; - -=head1 DESCRIPTION - -The C<prove> command supports a C<--state> option that instructs it to -store persistent state across runs. This module encapsulates the results for a -single test. - -=head1 SYNOPSIS - - # Re-run failed tests - $ prove --state=failed,save -rbv - -=cut - -my %methods = ( - name => { method => 'name' }, - elapsed => { method => 'elapsed', default => 0 }, - gen => { method => 'generation', default => 1 }, - last_pass_time => { method => 'last_pass_time', default => undef }, - last_fail_time => { method => 'last_fail_time', default => undef }, - last_result => { method => 'result', default => 0 }, - last_run_time => { method => 'run_time', default => undef }, - last_todo => { method => 'num_todo', default => 0 }, - mtime => { method => 'mtime', default => undef }, - seq => { method => 'sequence', default => 1 }, - total_passes => { method => 'total_passes', default => 0 }, - total_failures => { method => 'total_failures', default => 0 }, - parser => { method => 'parser' }, -); - -while ( my ( $key, $description ) = each %methods ) { - my $default = $description->{default}; - no strict 'refs'; - *{ $description->{method} } = sub { - my $self = shift; - if (@_) { - $self->{$key} = shift; - return $self; - } - return $self->{$key} || $default; - }; -} - -=head1 METHODS - -=head2 Class Methods - -=head3 C<new> - -=cut - -sub new { - my ( $class, $arg_for ) = @_; - $arg_for ||= {}; - bless $arg_for => $class; -} - -=head2 Instance Methods - -=head3 C<name> - -The name of the test. Usually a filename. - -=head3 C<elapsed> - -The total elapsed times the test took to run, in seconds from the epoch.. - -=head3 C<generation> - -The number for the "generation" of the test run. The first generation is 1 -(one) and subsequent generations are 2, 3, etc. - -=head3 C<last_pass_time> - -The last time the test program passed, in seconds from the epoch. - -Returns C<undef> if the program has never passed. - -=head3 C<last_fail_time> - -The last time the test suite failed, in seconds from the epoch. - -Returns C<undef> if the program has never failed. - -=head3 C<mtime> - -Returns the mtime of the test, in seconds from the epoch. - -=head3 C<raw> - -Returns a hashref of raw test data, suitable for serialization by YAML. - -=head3 C<result> - -Currently, whether or not the test suite passed with no 'problems' (such as -TODO passed). - -=head3 C<run_time> - -The total time it took for the test to run, in seconds. If C<Time::HiRes> is -available, it will have finer granularity. - -=head3 C<num_todo> - -The number of tests with TODO directives. - -=head3 C<sequence> - -The order in which this test was run for the given test suite result. - -=head3 C<total_passes> - -The number of times the test has passed. - -=head3 C<total_failures> - -The number of times the test has failed. - -=head3 C<parser> - -The underlying parser object. This is useful if you need the full -information for the test program. - -=cut - -sub raw { - my $self = shift; - my %raw = %$self; - - # this is backwards-compatibility hack and is not guaranteed. - delete $raw{name}; - delete $raw{parser}; - return \%raw; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/cpanminus.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/cpanminus.pm deleted file mode 100644 index 6cc10955..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/cpanminus.pm +++ /dev/null @@ -1,292 +0,0 @@ -package App::cpanminus; -our $VERSION = "1.7044"; - -=encoding utf8 - -=head1 NAME - -App::cpanminus - get, unpack, build and install modules from CPAN - -=head1 SYNOPSIS - - cpanm Module - -Run C<cpanm -h> or C<perldoc cpanm> for more options. - -=head1 DESCRIPTION - -cpanminus is a script to get, unpack, build and install modules from -CPAN and does nothing else. - -It's dependency free (can bootstrap itself), requires zero -configuration, and stands alone. When running, it requires only 10MB -of RAM. - -=head1 INSTALLATION - -There are several ways to install cpanminus to your system. - -=head2 Package management system - -There are Debian packages, RPMs, FreeBSD ports, and packages for other -operation systems available. If you want to use the package management system, -search for cpanminus and use the appropriate command to install. This makes it -easy to install C<cpanm> to your system without thinking about where to -install, and later upgrade. - -=head2 Installing to system perl - -You can also use the latest cpanminus to install cpanminus itself: - - curl -L https://cpanmin.us | perl - --sudo App::cpanminus - -This will install C<cpanm> to your bin directory like -C</usr/local/bin> and you'll need the C<--sudo> option to write to -the directory, unless you configured C<INSTALL_BASE> with L<local::lib>. - -=head2 Installing to local perl (perlbrew, plenv etc.) - -If you have perl in your home directory, which is the case if you use -tools like L<perlbrew> or plenv, you don't need the C<--sudo> option, since -you're most likely to have a write permission to the perl's library -path. You can just do: - - curl -L https://cpanmin.us | perl - App::cpanminus - -to install the C<cpanm> executable to the perl's bin path, like -C<~/perl5/perlbrew/bin/cpanm>. - -=head2 Downloading the standalone executable - -You can also copy the standalone executable to whatever location you'd like. - - cd ~/bin - curl -L https://cpanmin.us/ -o cpanm - chmod +x cpanm - -This just works, but be sure to grab the new version manually when you -upgrade because C<--self-upgrade> might not work with this installation setup. - -=head2 Troubleshoot: HTTPS warnings - -When you run C<curl> commands above, you may encounter SSL handshake -errors or certification warnings. This is due to your HTTP client -(curl) being old, or SSL certificates installed on your system needs -to be updated. - -You're recommended to update the software or system if you can. If -that is impossible or difficult, use the C<-k> option with curl or an -alternative URL, C<https://git.io/cpanm> - -=head1 DEPENDENCIES - -perl 5.8.1 or later. - -=over 4 - -=item * - -'tar' executable (bsdtar or GNU tar version 1.22 are recommended) or Archive::Tar to unpack files. - -=item * - -C compiler, if you want to build XS modules. - -=item * - -make - -=item * - -Module::Build (core in 5.10) - -=back - -=head1 QUESTIONS - -=head2 How does cpanm get/parse/update the CPAN index? - -It queries the CPAN Meta DB site at L<http://cpanmetadb.plackperl.org/>. -The site is updated at least every hour to reflect the latest changes -from fast syncing mirrors. The script then also falls back to query the -module at L<http://metacpan.org/> using its search API. - -Upon calling these API hosts, cpanm (1.6004 or later) will send the -local perl versions to the server in User-Agent string by default. You -can turn it off with C<--no-report-perl-version> option. Read more -about the option with L<cpanm>, and read more about the privacy policy -about this data collection at L<http://cpanmetadb.plackperl.org/#privacy> - -Fetched files are unpacked in C<~/.cpanm> and automatically cleaned up -periodically. You can configure the location of this with the -C<PERL_CPANM_HOME> environment variable. - -=head2 Where does this install modules to? Do I need root access? - -It installs to wherever ExtUtils::MakeMaker and Module::Build are -configured to (via C<PERL_MM_OPT> and C<PERL_MB_OPT>). - -By default, it installs to the site_perl directory that belongs to -your perl. You can see the locations for that by running C<perl -V> -and it will be likely something under C</opt/local/perl/...> if you're -using system perl, or under your home directory if you have built perl -yourself using perlbrew or plenv. - -If you've already configured local::lib on your shell, cpanm respects -that settings and modules will be installed to your local perl5 -directory. - -At a boot time, cpanminus checks whether you have already configured -local::lib, or have a permission to install modules to the site_perl -directory. If neither, i.e. you're using system perl and do not run -cpanm as a root, it automatically sets up local::lib compatible -installation path in a C<perl5> directory under your home -directory. - -To avoid this, run C<cpanm> either as a root user, with C<--sudo> -option, or with C<--local-lib> option. - -=head2 cpanminus can't install the module XYZ. Is it a bug? - -It is more likely a problem with the distribution itself. cpanminus -doesn't support or may have issues with distributions such as follows: - -=over 4 - -=item * - -Tests that require input from STDIN. - -=item * - -Build.PL or Makefile.PL that prompts for input even when -C<PERL_MM_USE_DEFAULT> is enabled. - -=item * - -Modules that have invalid numeric values as VERSION (such as C<1.1a>) - -=back - -These failures can be reported back to the author of the module so -that they can fix it accordingly, rather than to cpanminus. - -=head2 Does cpanm support the feature XYZ of L<CPAN> and L<CPANPLUS>? - -Most likely not. Here are the things that cpanm doesn't do by -itself. - -If you need these features, use L<CPAN>, L<CPANPLUS> or the standalone -tools that are mentioned. - -=over 4 - -=item * - -CPAN testers reporting. See L<App::cpanminus::reporter> - -=item * - -Building RPM packages from CPAN modules - -=item * - -Listing the outdated modules that needs upgrading. See L<App::cpanoutdated> - -=item * - -Showing the changes of the modules you're about to upgrade. See L<cpan-listchanges> - -=item * - -Patching CPAN modules with distroprefs. - -=back - -See L<cpanm> or C<cpanm -h> to see what cpanminus I<can> do :) - -=head1 COPYRIGHT - -Copyright 2010- Tatsuhiko Miyagawa - -The standalone executable contains the following modules embedded. - -=over 4 - -=item L<CPAN::DistnameInfo> Copyright 2003 Graham Barr - -=item L<local::lib> Copyright 2007-2009 Matt S Trout - -=item L<HTTP::Tiny> Copyright 2011 Christian Hansen - -=item L<Module::Metadata> Copyright 2001-2006 Ken Williams. 2010 Matt S Trout - -=item L<version> Copyright 2004-2010 John Peacock - -=item L<JSON::PP> Copyright 2007-2011 by Makamaka Hannyaharamitu - -=item L<CPAN::Meta>, L<CPAN::Meta::Requirements> Copyright (c) 2010 by David Golden and Ricardo Signes - -=item L<CPAN::Meta::YAML> Copyright 2010 Adam Kennedy - -=item L<CPAN::Meta::Check> Copyright (c) 2012 by Leon Timmermans - -=item L<File::pushd> Copyright 2012 David Golden - -=item L<parent> Copyright (c) 2007-10 Max Maischein - -=item L<Parse::PMFile> Copyright 1995 - 2013 by Andreas Koenig, Copyright 2013 by Kenichi Ishigaki - -=item L<String::ShellQuote> by Roderick Schertler - - -=back - -=head1 LICENSE - -This software is licensed under the same terms as Perl. - -=head1 CREDITS - -=head2 CONTRIBUTORS - -Patches and code improvements were contributed by: - -Goro Fuji, Kazuhiro Osawa, Tokuhiro Matsuno, Kenichi Ishigaki, Ian -Wells, Pedro Melo, Masayoshi Sekimura, Matt S Trout (mst), squeeky, -horus and Ingy dot Net. - -=head2 ACKNOWLEDGEMENTS - -Bug reports, suggestions and feedbacks were sent by, or general -acknowledgement goes to: - -Jesse Vincent, David Golden, Andreas Koenig, Jos Boumans, Chris -Williams, Adam Kennedy, Audrey Tang, J. Shirley, Chris Prather, Jesse -Luehrs, Marcus Ramberg, Shawn M Moore, chocolateboy, Chirs Nehren, -Jonathan Rockway, Leon Brocard, Simon Elliott, Ricardo Signes, AEvar -Arnfjord Bjarmason, Eric Wilhelm, Florian Ragwitz and xaicron. - -=head1 COMMUNITY - -=over 4 - -=item L<http://github.com/miyagawa/cpanminus> - source code repository, issue tracker - -=item L<irc://irc.perl.org/#cpanm> - discussions about cpanm and its related tools - -=back - -=head1 NO WARRANTY - -This software is provided "as-is," without any express or implied -warranty. In no event shall the author be held liable for any damages -arising from the use of the software. - -=head1 SEE ALSO - -L<CPAN> L<CPANPLUS> L<pip> - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/cpanminus/fatscript.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/cpanminus/fatscript.pm deleted file mode 100644 index 52fcbbd3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/App/cpanminus/fatscript.pm +++ /dev/null @@ -1,25245 +0,0 @@ -package App::cpanminus::fatscript; -# -# This is a pre-compiled source code for the cpanm (cpanminus) program. -# For more details about how to install cpanm, go to the following URL: -# -# https://github.com/miyagawa/cpanminus -# -# Quickstart: Run the following command and it will install itself for -# you. You might want to run it as a root with sudo if you want to install -# to places like /usr/local/bin. -# -# % curl -L https://cpanmin.us | perl - App::cpanminus -# -# If you don't have curl but wget, replace `curl -L` with `wget -O -`. - -# DO NOT EDIT -- this is an auto generated file - -# This chunk of stuff was generated by App::FatPacker. To find the original -# file's code, look for the end of this BEGIN block or the string 'FATPACK' -BEGIN { -my %fatpacked; - -$fatpacked{"App/cpanminus.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'APP_CPANMINUS'; - package App::cpanminus; - our $VERSION = "1.7044"; - - =encoding utf8 - - =head1 NAME - - App::cpanminus - get, unpack, build and install modules from CPAN - - =head1 SYNOPSIS - - cpanm Module - - Run C<cpanm -h> or C<perldoc cpanm> for more options. - - =head1 DESCRIPTION - - cpanminus is a script to get, unpack, build and install modules from - CPAN and does nothing else. - - It's dependency free (can bootstrap itself), requires zero - configuration, and stands alone. When running, it requires only 10MB - of RAM. - - =head1 INSTALLATION - - There are several ways to install cpanminus to your system. - - =head2 Package management system - - There are Debian packages, RPMs, FreeBSD ports, and packages for other - operation systems available. If you want to use the package management system, - search for cpanminus and use the appropriate command to install. This makes it - easy to install C<cpanm> to your system without thinking about where to - install, and later upgrade. - - =head2 Installing to system perl - - You can also use the latest cpanminus to install cpanminus itself: - - curl -L https://cpanmin.us | perl - --sudo App::cpanminus - - This will install C<cpanm> to your bin directory like - C</usr/local/bin> and you'll need the C<--sudo> option to write to - the directory, unless you configured C<INSTALL_BASE> with L<local::lib>. - - =head2 Installing to local perl (perlbrew, plenv etc.) - - If you have perl in your home directory, which is the case if you use - tools like L<perlbrew> or plenv, you don't need the C<--sudo> option, since - you're most likely to have a write permission to the perl's library - path. You can just do: - - curl -L https://cpanmin.us | perl - App::cpanminus - - to install the C<cpanm> executable to the perl's bin path, like - C<~/perl5/perlbrew/bin/cpanm>. - - =head2 Downloading the standalone executable - - You can also copy the standalone executable to whatever location you'd like. - - cd ~/bin - curl -L https://cpanmin.us/ -o cpanm - chmod +x cpanm - - This just works, but be sure to grab the new version manually when you - upgrade because C<--self-upgrade> might not work with this installation setup. - - =head2 Troubleshoot: HTTPS warnings - - When you run C<curl> commands above, you may encounter SSL handshake - errors or certification warnings. This is due to your HTTP client - (curl) being old, or SSL certificates installed on your system needs - to be updated. - - You're recommended to update the software or system if you can. If - that is impossible or difficult, use the C<-k> option with curl or an - alternative URL, C<https://git.io/cpanm> - - =head1 DEPENDENCIES - - perl 5.8.1 or later. - - =over 4 - - =item * - - 'tar' executable (bsdtar or GNU tar version 1.22 are recommended) or Archive::Tar to unpack files. - - =item * - - C compiler, if you want to build XS modules. - - =item * - - make - - =item * - - Module::Build (core in 5.10) - - =back - - =head1 QUESTIONS - - =head2 How does cpanm get/parse/update the CPAN index? - - It queries the CPAN Meta DB site at L<http://cpanmetadb.plackperl.org/>. - The site is updated at least every hour to reflect the latest changes - from fast syncing mirrors. The script then also falls back to query the - module at L<http://metacpan.org/> using its search API. - - Upon calling these API hosts, cpanm (1.6004 or later) will send the - local perl versions to the server in User-Agent string by default. You - can turn it off with C<--no-report-perl-version> option. Read more - about the option with L<cpanm>, and read more about the privacy policy - about this data collection at L<http://cpanmetadb.plackperl.org/#privacy> - - Fetched files are unpacked in C<~/.cpanm> and automatically cleaned up - periodically. You can configure the location of this with the - C<PERL_CPANM_HOME> environment variable. - - =head2 Where does this install modules to? Do I need root access? - - It installs to wherever ExtUtils::MakeMaker and Module::Build are - configured to (via C<PERL_MM_OPT> and C<PERL_MB_OPT>). - - By default, it installs to the site_perl directory that belongs to - your perl. You can see the locations for that by running C<perl -V> - and it will be likely something under C</opt/local/perl/...> if you're - using system perl, or under your home directory if you have built perl - yourself using perlbrew or plenv. - - If you've already configured local::lib on your shell, cpanm respects - that settings and modules will be installed to your local perl5 - directory. - - At a boot time, cpanminus checks whether you have already configured - local::lib, or have a permission to install modules to the site_perl - directory. If neither, i.e. you're using system perl and do not run - cpanm as a root, it automatically sets up local::lib compatible - installation path in a C<perl5> directory under your home - directory. - - To avoid this, run C<cpanm> either as a root user, with C<--sudo> - option, or with C<--local-lib> option. - - =head2 cpanminus can't install the module XYZ. Is it a bug? - - It is more likely a problem with the distribution itself. cpanminus - doesn't support or may have issues with distributions such as follows: - - =over 4 - - =item * - - Tests that require input from STDIN. - - =item * - - Build.PL or Makefile.PL that prompts for input even when - C<PERL_MM_USE_DEFAULT> is enabled. - - =item * - - Modules that have invalid numeric values as VERSION (such as C<1.1a>) - - =back - - These failures can be reported back to the author of the module so - that they can fix it accordingly, rather than to cpanminus. - - =head2 Does cpanm support the feature XYZ of L<CPAN> and L<CPANPLUS>? - - Most likely not. Here are the things that cpanm doesn't do by - itself. - - If you need these features, use L<CPAN>, L<CPANPLUS> or the standalone - tools that are mentioned. - - =over 4 - - =item * - - CPAN testers reporting. See L<App::cpanminus::reporter> - - =item * - - Building RPM packages from CPAN modules - - =item * - - Listing the outdated modules that needs upgrading. See L<App::cpanoutdated> - - =item * - - Showing the changes of the modules you're about to upgrade. See L<cpan-listchanges> - - =item * - - Patching CPAN modules with distroprefs. - - =back - - See L<cpanm> or C<cpanm -h> to see what cpanminus I<can> do :) - - =head1 COPYRIGHT - - Copyright 2010- Tatsuhiko Miyagawa - - The standalone executable contains the following modules embedded. - - =over 4 - - =item L<CPAN::DistnameInfo> Copyright 2003 Graham Barr - - =item L<local::lib> Copyright 2007-2009 Matt S Trout - - =item L<HTTP::Tiny> Copyright 2011 Christian Hansen - - =item L<Module::Metadata> Copyright 2001-2006 Ken Williams. 2010 Matt S Trout - - =item L<version> Copyright 2004-2010 John Peacock - - =item L<JSON::PP> Copyright 2007-2011 by Makamaka Hannyaharamitu - - =item L<CPAN::Meta>, L<CPAN::Meta::Requirements> Copyright (c) 2010 by David Golden and Ricardo Signes - - =item L<CPAN::Meta::YAML> Copyright 2010 Adam Kennedy - - =item L<CPAN::Meta::Check> Copyright (c) 2012 by Leon Timmermans - - =item L<File::pushd> Copyright 2012 David Golden - - =item L<parent> Copyright (c) 2007-10 Max Maischein - - =item L<Parse::PMFile> Copyright 1995 - 2013 by Andreas Koenig, Copyright 2013 by Kenichi Ishigaki - - =item L<String::ShellQuote> by Roderick Schertler - - - =back - - =head1 LICENSE - - This software is licensed under the same terms as Perl. - - =head1 CREDITS - - =head2 CONTRIBUTORS - - Patches and code improvements were contributed by: - - Goro Fuji, Kazuhiro Osawa, Tokuhiro Matsuno, Kenichi Ishigaki, Ian - Wells, Pedro Melo, Masayoshi Sekimura, Matt S Trout (mst), squeeky, - horus and Ingy dot Net. - - =head2 ACKNOWLEDGEMENTS - - Bug reports, suggestions and feedbacks were sent by, or general - acknowledgement goes to: - - Jesse Vincent, David Golden, Andreas Koenig, Jos Boumans, Chris - Williams, Adam Kennedy, Audrey Tang, J. Shirley, Chris Prather, Jesse - Luehrs, Marcus Ramberg, Shawn M Moore, chocolateboy, Chirs Nehren, - Jonathan Rockway, Leon Brocard, Simon Elliott, Ricardo Signes, AEvar - Arnfjord Bjarmason, Eric Wilhelm, Florian Ragwitz and xaicron. - - =head1 COMMUNITY - - =over 4 - - =item L<http://github.com/miyagawa/cpanminus> - source code repository, issue tracker - - =item L<irc://irc.perl.org/#cpanm> - discussions about cpanm and its related tools - - =back - - =head1 NO WARRANTY - - This software is provided "as-is," without any express or implied - warranty. In no event shall the author be held liable for any damages - arising from the use of the software. - - =head1 SEE ALSO - - L<CPAN> L<CPANPLUS> L<pip> - - =cut - - 1; -APP_CPANMINUS - -$fatpacked{"App/cpanminus/Dependency.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'APP_CPANMINUS_DEPENDENCY'; - package App::cpanminus::Dependency; - use strict; - use CPAN::Meta::Requirements; - - sub from_prereqs { - my($class, $prereqs, $phases, $types) = @_; - - my @deps; - for my $type (@$types) { - push @deps, $class->from_versions( - $prereqs->merged_requirements($phases, [$type])->as_string_hash, - $type, - ); - } - - return @deps; - } - - sub from_versions { - my($class, $versions, $type) = @_; - - my @deps; - while (my($module, $version) = each %$versions) { - push @deps, $class->new($module, $version, $type) - } - - @deps; - } - - sub merge_with { - my($self, $requirements) = @_; - - # save the original requirement - $self->{original_version} = $self->version; - - # should it clone? not cloning means we upgrade root $requirements on our way - eval { - $requirements->add_string_requirement($self->module, $self->version); - }; - if ($@ =~ /illegal requirements/) { - # Just give a warning then replace with the root requirements - # so that later CPAN::Meta::Check can give a valid error - warn sprintf("Can't merge requirements for %s: '%s' and '%s'", - $self->module, $self->version, - $requirements->requirements_for_module($self->module)); - } - - $self->{version} = $requirements->requirements_for_module($self->module); - } - - sub new { - my($class, $module, $version, $type) = @_; - - bless { - module => $module, - version => $version, - type => $type || 'requires', - }, $class; - } - - sub module { $_[0]->{module} } - sub version { $_[0]->{version} } - sub type { $_[0]->{type} } - - sub requires_version { - my $self = shift; - - # original_version may be 0 - if (defined $self->{original_version}) { - return $self->{original_version}; - } - - $self->version; - } - - sub is_requirement { - $_[0]->{type} eq 'requires'; - } - - 1; -APP_CPANMINUS_DEPENDENCY - -$fatpacked{"App/cpanminus/script.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'APP_CPANMINUS_SCRIPT'; - package App::cpanminus::script; - use strict; - use Config; - use Cwd (); - use App::cpanminus; - use App::cpanminus::Dependency; - use File::Basename (); - use File::Find (); - use File::Path (); - use File::Spec (); - use File::Copy (); - use File::Temp (); - use Getopt::Long (); - use Symbol (); - use String::ShellQuote (); - use version (); - - use constant WIN32 => $^O eq 'MSWin32'; - use constant BAD_TAR => ($^O eq 'solaris' || $^O eq 'hpux'); - use constant CAN_SYMLINK => eval { symlink("", ""); 1 }; - - our $VERSION = $App::cpanminus::VERSION; - - if ($INC{"App/FatPacker/Trace.pm"}) { - require version::vpp; - } - - my $quote = WIN32 ? q/"/ : q/'/; - - sub agent { - my $self = shift; - my $agent = "cpanminus/$VERSION"; - $agent .= " perl/$]" if $self->{report_perl_version}; - $agent; - } - - sub determine_home { - my $class = shift; - - my $homedir = $ENV{HOME} - || eval { require File::HomeDir; File::HomeDir->my_home } - || join('', @ENV{qw(HOMEDRIVE HOMEPATH)}); # Win32 - - if (WIN32) { - require Win32; # no fatpack - $homedir = Win32::GetShortPathName($homedir); - } - - return "$homedir/.cpanm"; - } - - sub new { - my $class = shift; - - bless { - home => $class->determine_home, - cmd => 'install', - seen => {}, - notest => undef, - test_only => undef, - installdeps => undef, - force => undef, - sudo => undef, - make => undef, - verbose => undef, - quiet => undef, - interactive => undef, - log => undef, - mirrors => [], - mirror_only => undef, - mirror_index => undef, - cpanmetadb => "http://cpanmetadb.plackperl.org/v1.0/", - perl => $^X, - argv => [], - local_lib => undef, - self_contained => undef, - exclude_vendor => undef, - prompt_timeout => 0, - prompt => undef, - configure_timeout => 60, - build_timeout => 3600, - test_timeout => 1800, - try_lwp => 1, - try_wget => 1, - try_curl => 1, - uninstall_shadows => ($] < 5.012), - skip_installed => 1, - skip_satisfied => 0, - auto_cleanup => 7, # days - pod2man => 1, - installed_dists => 0, - install_types => ['requires'], - with_develop => 0, - with_configure => 0, - showdeps => 0, - scandeps => 0, - scandeps_tree => [], - format => 'tree', - save_dists => undef, - skip_configure => 0, - verify => 0, - report_perl_version => !$class->maybe_ci, - build_args => {}, - features => {}, - pure_perl => 0, - cpanfile_path => 'cpanfile', - @_, - }, $class; - } - - sub env { - my($self, $key) = @_; - $ENV{"PERL_CPANM_" . $key}; - } - - sub maybe_ci { - my $class = shift; - grep $ENV{$_}, qw( TRAVIS CI AUTOMATED_TESTING AUTHOR_TESTING ); - } - - sub install_type_handlers { - my $self = shift; - - my @handlers; - for my $type (qw( recommends suggests )) { - push @handlers, "with-$type" => sub { - my %uniq; - $self->{install_types} = [ grep !$uniq{$_}++, @{$self->{install_types}}, $type ]; - }; - push @handlers, "without-$type" => sub { - $self->{install_types} = [ grep $_ ne $type, @{$self->{install_types}} ]; - }; - } - - @handlers; - } - - sub build_args_handlers { - my $self = shift; - - my @handlers; - for my $phase (qw( configure build test install )) { - push @handlers, "$phase-args=s" => \($self->{build_args}{$phase}); - } - - @handlers; - } - - sub parse_options { - my $self = shift; - - local @ARGV = @{$self->{argv}}; - push @ARGV, grep length, split /\s+/, $self->env('OPT'); - push @ARGV, @_; - - Getopt::Long::Configure("bundling"); - Getopt::Long::GetOptions( - 'f|force' => sub { $self->{skip_installed} = 0; $self->{force} = 1 }, - 'n|notest!' => \$self->{notest}, - 'test-only' => sub { $self->{notest} = 0; $self->{skip_installed} = 0; $self->{test_only} = 1 }, - 'S|sudo!' => \$self->{sudo}, - 'v|verbose' => \$self->{verbose}, - 'verify!' => \$self->{verify}, - 'q|quiet!' => \$self->{quiet}, - 'h|help' => sub { $self->{action} = 'show_help' }, - 'V|version' => sub { $self->{action} = 'show_version' }, - 'perl=s' => sub { - $self->diag("--perl is deprecated since it's known to be fragile in figuring out dependencies. Run `$_[1] -S cpanm` instead.\n", 1); - $self->{perl} = $_[1]; - }, - 'l|local-lib=s' => sub { $self->{local_lib} = $self->maybe_abs($_[1]) }, - 'L|local-lib-contained=s' => sub { - $self->{local_lib} = $self->maybe_abs($_[1]); - $self->{self_contained} = 1; - $self->{pod2man} = undef; - }, - 'self-contained!' => \$self->{self_contained}, - 'exclude-vendor!' => \$self->{exclude_vendor}, - 'mirror=s@' => $self->{mirrors}, - 'mirror-only!' => \$self->{mirror_only}, - 'mirror-index=s' => sub { $self->{mirror_index} = $self->maybe_abs($_[1]) }, - 'M|from=s' => sub { - $self->{mirrors} = [$_[1]]; - $self->{mirror_only} = 1; - }, - 'cpanmetadb=s' => \$self->{cpanmetadb}, - 'cascade-search!' => \$self->{cascade_search}, - 'prompt!' => \$self->{prompt}, - 'installdeps' => \$self->{installdeps}, - 'skip-installed!' => \$self->{skip_installed}, - 'skip-satisfied!' => \$self->{skip_satisfied}, - 'reinstall' => sub { $self->{skip_installed} = 0 }, - 'interactive!' => \$self->{interactive}, - 'i|install' => sub { $self->{cmd} = 'install' }, - 'info' => sub { $self->{cmd} = 'info' }, - 'look' => sub { $self->{cmd} = 'look'; $self->{skip_installed} = 0 }, - 'U|uninstall' => sub { $self->{cmd} = 'uninstall' }, - 'self-upgrade' => sub { $self->{action} = 'self_upgrade' }, - 'uninst-shadows!' => \$self->{uninstall_shadows}, - 'lwp!' => \$self->{try_lwp}, - 'wget!' => \$self->{try_wget}, - 'curl!' => \$self->{try_curl}, - 'auto-cleanup=s' => \$self->{auto_cleanup}, - 'man-pages!' => \$self->{pod2man}, - 'scandeps' => \$self->{scandeps}, - 'showdeps' => sub { $self->{showdeps} = 1; $self->{skip_installed} = 0 }, - 'format=s' => \$self->{format}, - 'save-dists=s' => sub { - $self->{save_dists} = $self->maybe_abs($_[1]); - }, - 'skip-configure!' => \$self->{skip_configure}, - 'dev!' => \$self->{dev_release}, - 'metacpan!' => \$self->{metacpan}, - 'report-perl-version!' => \$self->{report_perl_version}, - 'configure-timeout=i' => \$self->{configure_timeout}, - 'build-timeout=i' => \$self->{build_timeout}, - 'test-timeout=i' => \$self->{test_timeout}, - 'with-develop' => \$self->{with_develop}, - 'without-develop' => sub { $self->{with_develop} = 0 }, - 'with-configure' => \$self->{with_configure}, - 'without-configure' => sub { $self->{with_configure} = 0 }, - 'with-feature=s' => sub { $self->{features}{$_[1]} = 1 }, - 'without-feature=s' => sub { $self->{features}{$_[1]} = 0 }, - 'with-all-features' => sub { $self->{features}{__all} = 1 }, - 'pp|pureperl!' => \$self->{pure_perl}, - "cpanfile=s" => \$self->{cpanfile_path}, - $self->install_type_handlers, - $self->build_args_handlers, - ); - - if (!@ARGV && $0 ne '-' && !-t STDIN){ # e.g. # cpanm < author/requires.cpanm - push @ARGV, $self->load_argv_from_fh(\*STDIN); - $self->{load_from_stdin} = 1; - } - - $self->{argv} = \@ARGV; - } - - sub check_upgrade { - my $self = shift; - my $install_base = $ENV{PERL_LOCAL_LIB_ROOT} ? $self->local_lib_target($ENV{PERL_LOCAL_LIB_ROOT}) : $Config{installsitebin}; - if ($0 eq '-') { - # run from curl, that's fine - return; - } elsif ($0 !~ /^$install_base/) { - if ($0 =~ m!perlbrew/bin!) { - die <<DIE; - It appears your cpanm executable was installed via `perlbrew install-cpanm`. - cpanm --self-upgrade won't upgrade the version of cpanm you're running. - - Run the following command to get it upgraded. - - perlbrew install-cpanm - - DIE - } else { - die <<DIE; - You are running cpanm from the path where your current perl won't install executables to. - Because of that, cpanm --self-upgrade won't upgrade the version of cpanm you're running. - - cpanm path : $0 - Install path : $Config{installsitebin} - - It means you either installed cpanm globally with system perl, or use distro packages such - as rpm or apt-get, and you have to use them again to upgrade cpanm. - DIE - } - } - } - - sub check_libs { - my $self = shift; - return if $self->{_checked}++; - $self->bootstrap_local_lib; - } - - sub setup_verify { - my $self = shift; - - my $has_modules = eval { require Module::Signature; require Digest::SHA; 1 }; - $self->{cpansign} = $self->which('cpansign'); - - unless ($has_modules && $self->{cpansign}) { - warn "WARNING: Module::Signature and Digest::SHA is required for distribution verifications.\n"; - $self->{verify} = 0; - } - } - - sub parse_module_args { - my($self, $module) = @_; - - # Plack@1.2 -> Plack~"==1.2" - # BUT don't expand @ in git URLs - $module =~ s/^([A-Za-z0-9_:]+)@([v\d\._]+)$/$1~== $2/; - - # Plack~1.20, DBI~"> 1.0, <= 2.0" - if ($module =~ /\~[v\d\._,\!<>= ]+$/) { - return split /\~/, $module, 2; - } else { - return $module, undef; - } - } - - sub doit { - my $self = shift; - - my $code; - eval { - $code = ($self->_doit == 0); - }; if (my $e = $@) { - warn $e; - $code = 1; - } - - return $code; - } - - sub _doit { - my $self = shift; - - $self->setup_home; - $self->init_tools; - $self->setup_verify if $self->{verify}; - - if (my $action = $self->{action}) { - $self->$action() and return 1; - } - - return $self->show_help(1) - unless @{$self->{argv}} or $self->{load_from_stdin}; - - $self->configure_mirrors; - - my $cwd = Cwd::cwd; - - my @fail; - for my $module (@{$self->{argv}}) { - if ($module =~ s/\.pm$//i) { - my ($volume, $dirs, $file) = File::Spec->splitpath($module); - $module = join '::', grep { $_ } File::Spec->splitdir($dirs), $file; - } - ($module, my $version) = $self->parse_module_args($module); - - $self->chdir($cwd); - if ($self->{cmd} eq 'uninstall') { - $self->uninstall_module($module) - or push @fail, $module; - } else { - $self->install_module($module, 0, $version) - or push @fail, $module; - } - } - - if ($self->{base} && $self->{auto_cleanup}) { - $self->cleanup_workdirs; - } - - if ($self->{installed_dists}) { - my $dists = $self->{installed_dists} > 1 ? "distributions" : "distribution"; - $self->diag("$self->{installed_dists} $dists installed\n", 1); - } - - if ($self->{scandeps}) { - $self->dump_scandeps(); - } - # Workaround for older File::Temp's - # where creating a tempdir with an implicit $PWD - # causes tempdir non-cleanup if $PWD changes - # as paths are stored internally without being resolved - # absolutely. - # https://rt.cpan.org/Public/Bug/Display.html?id=44924 - $self->chdir($cwd); - - return !@fail; - } - - sub setup_home { - my $self = shift; - - $self->{home} = $self->env('HOME') if $self->env('HOME'); - - unless (_writable($self->{home})) { - die "Can't write to cpanm home '$self->{home}': You should fix it with chown/chmod first.\n"; - } - - $self->{base} = "$self->{home}/work/" . time . ".$$"; - File::Path::mkpath([ $self->{base} ], 0, 0777); - - # native path because we use shell redirect - $self->{log} = File::Spec->catfile($self->{base}, "build.log"); - my $final_log = "$self->{home}/build.log"; - - { open my $out, ">$self->{log}" or die "$self->{log}: $!" } - - if (CAN_SYMLINK) { - my $build_link = "$self->{home}/latest-build"; - unlink $build_link; - symlink $self->{base}, $build_link; - - unlink $final_log; - symlink $self->{log}, $final_log; - } else { - my $log = $self->{log}; my $home = $self->{home}; - $self->{at_exit} = sub { - my $self = shift; - my $temp_log = "$home/build.log." . time . ".$$"; - File::Copy::copy($log, $temp_log) - && unlink($final_log); - rename($temp_log, $final_log); - } - } - - $self->chat("cpanm (App::cpanminus) $VERSION on perl $] built for $Config{archname}\n" . - "Work directory is $self->{base}\n"); - } - - sub package_index_for { - my ($self, $mirror) = @_; - return $self->source_for($mirror) . "/02packages.details.txt"; - } - - sub generate_mirror_index { - my ($self, $mirror) = @_; - my $file = $self->package_index_for($mirror); - my $gz_file = $file . '.gz'; - my $index_mtime = (stat $gz_file)[9]; - - unless (-e $file && (stat $file)[9] >= $index_mtime) { - $self->chat("Uncompressing index file...\n"); - if (eval {require Compress::Zlib}) { - my $gz = Compress::Zlib::gzopen($gz_file, "rb") - or do { $self->diag_fail("$Compress::Zlib::gzerrno opening compressed index"); return}; - open my $fh, '>', $file - or do { $self->diag_fail("$! opening uncompressed index for write"); return }; - my $buffer; - while (my $status = $gz->gzread($buffer)) { - if ($status < 0) { - $self->diag_fail($gz->gzerror . " reading compressed index"); - return; - } - print $fh $buffer; - } - } else { - if (system("gunzip -c $gz_file > $file")) { - $self->diag_fail("Cannot uncompress -- please install gunzip or Compress::Zlib"); - return; - } - } - utime $index_mtime, $index_mtime, $file; - } - return 1; - } - - sub search_mirror_index { - my ($self, $mirror, $module, $version) = @_; - $self->search_mirror_index_file($self->package_index_for($mirror), $module, $version); - } - - sub search_mirror_index_file { - my($self, $file, $module, $version) = @_; - - open my $fh, '<', $file or return; - my $found; - while (<$fh>) { - if (m!^\Q$module\E\s+([\w\.]+)\s+(\S*)!m) { - $found = $self->cpan_module($module, $2, $1); - last; - } - } - - return $found unless $self->{cascade_search}; - - if ($found) { - if ($self->satisfy_version($module, $found->{module_version}, $version)) { - return $found; - } else { - $self->chat("Found $module $found->{module_version} which doesn't satisfy $version.\n"); - } - } - - return; - } - - sub with_version_range { - my($self, $version) = @_; - defined($version) && $version =~ /(?:<|!=|==)/; - } - - sub encode_json { - my($self, $data) = @_; - require JSON::PP; - - my $json = JSON::PP::encode_json($data); - $self->uri_escape($json); - } - - sub decode_json { - my($self, $json) = @_; - require JSON::PP; - - JSON::PP::decode_json($json); - } - - sub uri_escape { - my($self, $fragment) = @_; - $fragment =~ s/([^A-Za-z0-9\-\._~])/uc sprintf("%%%02X", ord($1))/eg; - $fragment; - } - - sub uri_params { - my($self, @params) = @_; - my @param_strings; - while (my $key = shift @params) { - my $value = shift @params; - push @param_strings, join '=', map $self->uri_escape($_), $key, $value; - } - return join '&', @param_strings; - } - - # version->new("1.00_00")->numify => "1.00_00" :/ - sub numify_ver { - my($self, $ver) = @_; - eval version->new($ver)->numify; - } - - sub search_metacpan { - my($self, $module, $version, $dev_release) = @_; - - my $metacpan_uri = 'http://fastapi.metacpan.org/v1/download_url/'; - - my $url = $metacpan_uri . $module; - - my $query = $self->uri_params( - ($version ? (version => $version) : ()), - ($dev_release ? (dev => 1) : ()), - ); - $url .= '?' . $query - if length $query; - - my $dist_json = $self->get($url); - my $dist_meta = eval { $self->decode_json($dist_json) }; - - if ($dist_meta && $dist_meta->{download_url}) { - (my $distfile = $dist_meta->{download_url}) =~ s!.+/authors/id/!!; - local $self->{mirrors} = $self->{mirrors}; - $self->{mirrors} = [ 'http://cpan.metacpan.org' ]; - return $self->cpan_module($module, $distfile, $dist_meta->{version}); - } - - $self->chat("! Could not find a release matching $module".($version?" ($version)":'')." on MetaCPAN.\n"); - return; - } - - sub search_database { - my($self, $module, $version) = @_; - - my $found; - - if ($self->{dev_release} or $self->{metacpan}) { - $found = $self->search_metacpan($module, $version, $self->{dev_release}) and return $found; - $found = $self->search_cpanmetadb($module, $version, $self->{dev_release}) and return $found; - } else { - $found = $self->search_cpanmetadb($module, $version) and return $found; - $found = $self->search_metacpan($module, $version) and return $found; - } - } - - sub search_cpanmetadb { - my($self, $module, $version, $dev_release) = @_; - - - $self->chat("Searching $module ($version) on cpanmetadb ...\n"); - - if ($self->with_version_range($version)) { - return $self->search_cpanmetadb_history($module, $version, $dev_release); - } else { - return $self->search_cpanmetadb_package($module, $version, $dev_release); - } - } - - sub search_cpanmetadb_package { - my($self, $module, $version, $dev_release) = @_; - - require CPAN::Meta::YAML; - - (my $uri = $self->{cpanmetadb}) =~ s{/?$}{/package/$module}; - my $yaml = $self->get($uri); - my $meta = eval { CPAN::Meta::YAML::Load($yaml) }; - if ($meta && $meta->{distfile}) { - return $self->cpan_module($module, $meta->{distfile}, $meta->{version}); - } - - $self->diag_fail("Finding $module on cpanmetadb failed."); - return; - } - - sub search_cpanmetadb_history { - my($self, $module, $version) = @_; - - (my $uri = $self->{cpanmetadb}) =~ s{/?$}{/history/$module}; - my $content = $self->get($uri) or return; - - my @found; - for my $line (split /\r?\n/, $content) { - if ($line =~ /^$module\s+(\S+)\s+(\S+)$/) { - push @found, { - version => $1, - version_obj => version::->parse($1), - distfile => $2, - }; - } - } - - return unless @found; - - $found[-1]->{latest} = 1; - - my $match; - for my $try (sort { $b->{version_obj} cmp $a->{version_obj} } @found) { - if ($self->satisfy_version($module, $try->{version_obj}, $version)) { - local $self->{mirrors} = $self->{mirrors}; - unshift @{$self->{mirrors}}, 'http://backpan.perl.org' - unless $try->{latest}; - return $self->cpan_module($module, $try->{distfile}, $try->{version}); - } - } - - $self->diag_fail("Finding $module ($version) on cpanmetadb failed."); - return; - } - - - sub search_module { - my($self, $module, $version) = @_; - - if ($self->{mirror_index}) { - $self->mask_output( chat => "Searching $module on mirror index $self->{mirror_index} ...\n" ); - my $pkg = $self->search_mirror_index_file($self->{mirror_index}, $module, $version); - return $pkg if $pkg; - - unless ($self->{cascade_search}) { - $self->mask_output( diag_fail => "Finding $module ($version) on mirror index $self->{mirror_index} failed." ); - return; - } - } - - unless ($self->{mirror_only}) { - my $found = $self->search_database($module, $version); - return $found if $found; - } - - MIRROR: for my $mirror (@{ $self->{mirrors} }) { - $self->mask_output( chat => "Searching $module on mirror $mirror ...\n" ); - my $name = '02packages.details.txt.gz'; - my $uri = "$mirror/modules/$name"; - my $gz_file = $self->package_index_for($mirror) . '.gz'; - - unless ($self->{pkgs}{$uri}) { - $self->mask_output( chat => "Downloading index file $uri ...\n" ); - $self->mirror($uri, $gz_file); - $self->generate_mirror_index($mirror) or next MIRROR; - $self->{pkgs}{$uri} = "!!retrieved!!"; - } - - my $pkg = $self->search_mirror_index($mirror, $module, $version); - return $pkg if $pkg; - - $self->mask_output( diag_fail => "Finding $module ($version) on mirror $mirror failed." ); - } - - return; - } - - sub source_for { - my($self, $mirror) = @_; - $mirror =~ s/[^\w\.\-]+/%/g; - - my $dir = "$self->{home}/sources/$mirror"; - File::Path::mkpath([ $dir ], 0, 0777); - - return $dir; - } - - sub load_argv_from_fh { - my($self, $fh) = @_; - - my @argv; - while(defined(my $line = <$fh>)){ - chomp $line; - $line =~ s/#.+$//; # comment - $line =~ s/^\s+//; # trim spaces - $line =~ s/\s+$//; # trim spaces - - push @argv, split ' ', $line if $line; - } - return @argv; - } - - sub show_version { - my $self = shift; - - print "cpanm (App::cpanminus) version $VERSION ($0)\n"; - print "perl version $] ($^X)\n\n"; - - print " \%Config:\n"; - for my $key (qw( archname installsitelib installsitebin installman1dir installman3dir - sitearchexp sitelibexp vendorarch vendorlibexp archlibexp privlibexp )) { - print " $key=$Config{$key}\n" if $Config{$key}; - } - - print " \%ENV:\n"; - for my $key (grep /^PERL/, sort keys %ENV) { - print " $key=$ENV{$key}\n"; - } - - print " \@INC:\n"; - for my $inc (@INC) { - print " $inc\n" unless ref($inc) eq 'CODE'; - } - - return 1; - } - - sub show_help { - my $self = shift; - - if ($_[0]) { - print <<USAGE; - Usage: cpanm [options] Module [...] - - Try `cpanm --help` or `man cpanm` for more options. - USAGE - return; - } - - print <<HELP; - Usage: cpanm [options] Module [...] - - Options: - -v,--verbose Turns on chatty output - -q,--quiet Turns off the most output - --interactive Turns on interactive configure (required for Task:: modules) - -f,--force force install - -n,--notest Do not run unit tests - --test-only Run tests only, do not install - -S,--sudo sudo to run install commands - --installdeps Only install dependencies - --showdeps Only display direct dependencies - --reinstall Reinstall the distribution even if you already have the latest version installed - --mirror Specify the base URL for the mirror (e.g. http://cpan.cpantesters.org/) - --mirror-only Use the mirror's index file instead of the CPAN Meta DB - -M,--from Use only this mirror base URL and its index file - --prompt Prompt when configure/build/test fails - -l,--local-lib Specify the install base to install modules - -L,--local-lib-contained Specify the install base to install all non-core modules - --self-contained Install all non-core modules, even if they're already installed. - --auto-cleanup Number of days that cpanm's work directories expire in. Defaults to 7 - - Commands: - --self-upgrade upgrades itself - --info Displays distribution info on CPAN - --look Opens the distribution with your SHELL - -U,--uninstall Uninstalls the modules (EXPERIMENTAL) - -V,--version Displays software version - - Examples: - - cpanm Test::More # install Test::More - cpanm MIYAGAWA/Plack-0.99_05.tar.gz # full distribution path - cpanm http://example.org/LDS/CGI.pm-3.20.tar.gz # install from URL - cpanm ~/dists/MyCompany-Enterprise-1.00.tar.gz # install from a local file - cpanm --interactive Task::Kensho # Configure interactively - cpanm . # install from local directory - cpanm --installdeps . # install all the deps for the current directory - cpanm -L extlib Plack # install Plack and all non-core deps into extlib - cpanm --mirror http://cpan.cpantesters.org/ DBI # use the fast-syncing mirror - cpanm -M https://cpan.metacpan.org App::perlbrew # use only this secure mirror and its index - - You can also specify the default options in PERL_CPANM_OPT environment variable in the shell rc: - - export PERL_CPANM_OPT="--prompt --reinstall -l ~/perl --mirror http://cpan.cpantesters.org" - - Type `man cpanm` or `perldoc cpanm` for the more detailed explanation of the options. - - HELP - - return 1; - } - - sub _writable { - my $dir = shift; - my @dir = File::Spec->splitdir($dir); - while (@dir) { - $dir = File::Spec->catdir(@dir); - if (-e $dir) { - return -w _; - } - pop @dir; - } - - return; - } - - sub maybe_abs { - my($self, $lib) = @_; - if ($lib eq '_' or $lib =~ /^~/ or File::Spec->file_name_is_absolute($lib)) { - return $lib; - } else { - return File::Spec->canonpath(File::Spec->catdir(Cwd::cwd(), $lib)); - } - } - - sub local_lib_target { - my($self, $root) = @_; - # local::lib 1.008025 changed the order of PERL_LOCAL_LIB_ROOT - (grep { $_ ne '' } split /\Q$Config{path_sep}/, $root)[0]; - } - - sub bootstrap_local_lib { - my $self = shift; - - # If -l is specified, use that. - if ($self->{local_lib}) { - return $self->setup_local_lib($self->{local_lib}); - } - - # PERL_LOCAL_LIB_ROOT is defined. Run as local::lib mode without overwriting ENV - if ($ENV{PERL_LOCAL_LIB_ROOT} && $ENV{PERL_MM_OPT}) { - return $self->setup_local_lib($self->local_lib_target($ENV{PERL_LOCAL_LIB_ROOT}), 1); - } - - # root, locally-installed perl or --sudo: don't care about install_base - return if $self->{sudo} or (_writable($Config{installsitelib}) and _writable($Config{installsitebin})); - - # local::lib is configured in the shell -- yay - if ($ENV{PERL_MM_OPT} and ($ENV{MODULEBUILDRC} or $ENV{PERL_MB_OPT})) { - return; - } - - $self->setup_local_lib; - - $self->diag(<<DIAG, 1); - ! - ! Can't write to $Config{installsitelib} and $Config{installsitebin}: Installing modules to $ENV{HOME}/perl5 - ! To turn off this warning, you have to do one of the following: - ! - run me as a root or with --sudo option (to install to $Config{installsitelib} and $Config{installsitebin}) - ! - Configure local::lib in your existing shell to set PERL_MM_OPT etc. - ! - Install local::lib by running the following commands - ! - ! cpanm --local-lib=~/perl5 local::lib && eval \$(perl -I ~/perl5/lib/perl5/ -Mlocal::lib) - ! - DIAG - sleep 2; - } - - sub upgrade_toolchain { - my($self, $config_deps) = @_; - - my %deps = map { $_->module => $_ } @$config_deps; - - # M::B 0.38 and EUMM 6.58 for MYMETA - # EU::Install 1.46 for local::lib - my $reqs = CPAN::Meta::Requirements->from_string_hash({ - 'Module::Build' => '0.38', - 'ExtUtils::MakeMaker' => '6.58', - 'ExtUtils::Install' => '1.46', - }); - - if ($deps{"ExtUtils::MakeMaker"}) { - $deps{"ExtUtils::MakeMaker"}->merge_with($reqs); - } elsif ($deps{"Module::Build"}) { - $deps{"Module::Build"}->merge_with($reqs); - $deps{"ExtUtils::Install"} ||= App::cpanminus::Dependency->new("ExtUtils::Install", 0, 'configure'); - $deps{"ExtUtils::Install"}->merge_with($reqs); - } - - @$config_deps = values %deps; - } - - sub _core_only_inc { - my($self, $base) = @_; - require local::lib; - ( - local::lib->resolve_path(local::lib->install_base_arch_path($base)), - local::lib->resolve_path(local::lib->install_base_perl_path($base)), - (!$self->{exclude_vendor} ? grep {$_} @Config{qw(vendorarch vendorlibexp)} : ()), - @Config{qw(archlibexp privlibexp)}, - ); - } - - sub _diff { - my($self, $old, $new) = @_; - - my @diff; - my %old = map { $_ => 1 } @$old; - for my $n (@$new) { - push @diff, $n unless exists $old{$n}; - } - - @diff; - } - - sub _setup_local_lib_env { - my($self, $base) = @_; - - $self->diag(<<WARN, 1) if $base =~ /\s/; - WARNING: Your lib directory name ($base) contains a space in it. It's known to cause issues with perl builder tools such as local::lib and MakeMaker. You're recommended to rename your directory. - WARN - - local $SIG{__WARN__} = sub { }; # catch 'Attempting to write ...' - local::lib->setup_env_hash_for($base, 0); - } - - sub setup_local_lib { - my($self, $base, $no_env) = @_; - $base = undef if $base eq '_'; - - require local::lib; - { - local $0 = 'cpanm'; # so curl/wget | perl works - $base ||= "~/perl5"; - $base = local::lib->resolve_path($base); - if ($self->{self_contained}) { - my @inc = $self->_core_only_inc($base); - $self->{search_inc} = [ @inc ]; - } else { - $self->{search_inc} = [ - local::lib->install_base_arch_path($base), - local::lib->install_base_perl_path($base), - @INC, - ]; - } - $self->_setup_local_lib_env($base) unless $no_env; - $self->{local_lib} = $base; - } - } - - sub prompt_bool { - my($self, $mess, $def) = @_; - - my $val = $self->prompt($mess, $def); - return lc $val eq 'y'; - } - - sub prompt { - my($self, $mess, $def) = @_; - - my $isa_tty = -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT)) ; - my $dispdef = defined $def ? "[$def] " : " "; - $def = defined $def ? $def : ""; - - if (!$self->{prompt} || (!$isa_tty && eof STDIN)) { - return $def; - } - - local $|=1; - local $\; - my $ans; - eval { - local $SIG{ALRM} = sub { undef $ans; die "alarm\n" }; - print STDOUT "$mess $dispdef"; - alarm $self->{prompt_timeout} if $self->{prompt_timeout}; - $ans = <STDIN>; - alarm 0; - }; - if ( defined $ans ) { - chomp $ans; - } else { # user hit ctrl-D or alarm timeout - print STDOUT "\n"; - } - - return (!defined $ans || $ans eq '') ? $def : $ans; - } - - sub diag_ok { - my($self, $msg) = @_; - chomp $msg; - $msg ||= "OK"; - if ($self->{in_progress}) { - $self->_diag("$msg\n"); - $self->{in_progress} = 0; - } - $self->log("-> $msg\n"); - } - - sub diag_fail { - my($self, $msg, $always) = @_; - chomp $msg; - if ($self->{in_progress}) { - $self->_diag("FAIL\n"); - $self->{in_progress} = 0; - } - - if ($msg) { - $self->_diag("! $msg\n", $always, 1); - $self->log("-> FAIL $msg\n"); - } - } - - sub diag_progress { - my($self, $msg) = @_; - chomp $msg; - $self->{in_progress} = 1; - $self->_diag("$msg ... "); - $self->log("$msg\n"); - } - - sub _diag { - my($self, $msg, $always, $error) = @_; - my $fh = $error ? *STDERR : *STDOUT; - print {$fh} $msg if $always or $self->{verbose} or !$self->{quiet}; - } - - sub diag { - my($self, $msg, $always) = @_; - $self->_diag($msg, $always); - $self->log($msg); - } - - sub chat { - my $self = shift; - print STDERR @_ if $self->{verbose}; - $self->log(@_); - } - - sub mask_output { - my $self = shift; - my $method = shift; - $self->$method( $self->mask_uri_passwords(@_) ); - } - - sub log { - my $self = shift; - open my $out, ">>$self->{log}"; - print $out @_; - } - - sub run { - my($self, $cmd) = @_; - - if (WIN32) { - $cmd = $self->shell_quote(@$cmd) if ref $cmd eq 'ARRAY'; - unless ($self->{verbose}) { - $cmd .= " >> " . $self->shell_quote($self->{log}) . " 2>&1"; - } - !system $cmd; - } else { - my $pid = fork; - if ($pid) { - waitpid $pid, 0; - return !$?; - } else { - $self->run_exec($cmd); - } - } - } - - sub run_exec { - my($self, $cmd) = @_; - - if (ref $cmd eq 'ARRAY') { - unless ($self->{verbose}) { - open my $logfh, ">>", $self->{log}; - open STDERR, '>&', $logfh; - open STDOUT, '>&', $logfh; - close $logfh; - } - exec @$cmd; - } else { - unless ($self->{verbose}) { - $cmd .= " >> " . $self->shell_quote($self->{log}) . " 2>&1"; - } - exec $cmd; - } - } - - sub run_timeout { - my($self, $cmd, $timeout) = @_; - return $self->run($cmd) if WIN32 || $self->{verbose} || !$timeout; - - my $pid = fork; - if ($pid) { - eval { - local $SIG{ALRM} = sub { die "alarm\n" }; - alarm $timeout; - waitpid $pid, 0; - alarm 0; - }; - if ($@ && $@ eq "alarm\n") { - $self->diag_fail("Timed out (> ${timeout}s). Use --verbose to retry."); - local $SIG{TERM} = 'IGNORE'; - kill TERM => 0; - waitpid $pid, 0; - return; - } - return !$?; - } elsif ($pid == 0) { - $self->run_exec($cmd); - } else { - $self->chat("! fork failed: falling back to system()\n"); - $self->run($cmd); - } - } - - sub append_args { - my($self, $cmd, $phase) = @_; - - if (my $args = $self->{build_args}{$phase}) { - $cmd = join ' ', $self->shell_quote(@$cmd), $args; - } - - $cmd; - } - - sub configure { - my($self, $cmd, $depth) = @_; - - # trick AutoInstall - local $ENV{PERL5_CPAN_IS_RUNNING} = local $ENV{PERL5_CPANPLUS_IS_RUNNING} = $$; - - # e.g. skip CPAN configuration on local::lib - local $ENV{PERL5_CPANM_IS_RUNNING} = $$; - - my $use_default = !$self->{interactive}; - local $ENV{PERL_MM_USE_DEFAULT} = $use_default; - - local $ENV{PERL_MM_OPT} = $ENV{PERL_MM_OPT}; - local $ENV{PERL_MB_OPT} = $ENV{PERL_MB_OPT}; - - # skip man page generation - unless ($self->{pod2man}) { - $ENV{PERL_MM_OPT} .= " INSTALLMAN1DIR=none INSTALLMAN3DIR=none"; - $ENV{PERL_MB_OPT} .= " --config installman1dir= --config installsiteman1dir= --config installman3dir= --config installsiteman3dir="; - } - - # Lancaster Consensus - if ($self->{pure_perl}) { - $ENV{PERL_MM_OPT} .= " PUREPERL_ONLY=1"; - $ENV{PERL_MB_OPT} .= " --pureperl-only"; - } - - local $ENV{PERL_USE_UNSAFE_INC} = 1 - unless exists $ENV{PERL_USE_UNSAFE_INC}; - - $cmd = $self->append_args($cmd, 'configure') if $depth == 0; - - local $self->{verbose} = $self->{verbose} || $self->{interactive}; - $self->run_timeout($cmd, $self->{configure_timeout}); - } - - sub build { - my($self, $cmd, $distname, $depth) = @_; - - local $ENV{PERL_MM_USE_DEFAULT} = !$self->{interactive}; - - local $ENV{PERL_USE_UNSAFE_INC} = 1 - unless exists $ENV{PERL_USE_UNSAFE_INC}; - - $cmd = $self->append_args($cmd, 'build') if $depth == 0; - - return 1 if $self->run_timeout($cmd, $self->{build_timeout}); - while (1) { - my $ans = lc $self->prompt("Building $distname failed.\nYou can s)kip, r)etry, e)xamine build log, or l)ook ?", "s"); - return if $ans eq 's'; - return $self->build($cmd, $distname, $depth) if $ans eq 'r'; - $self->show_build_log if $ans eq 'e'; - $self->look if $ans eq 'l'; - } - } - - sub test { - my($self, $cmd, $distname, $depth) = @_; - return 1 if $self->{notest}; - - # https://rt.cpan.org/Ticket/Display.html?id=48965#txn-1013385 - local $ENV{PERL_MM_USE_DEFAULT} = !$self->{interactive}; - - # https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/lancaster-consensus.md - local $ENV{NONINTERACTIVE_TESTING} = !$self->{interactive}; - - $cmd = $self->append_args($cmd, 'test') if $depth == 0; - - local $ENV{PERL_USE_UNSAFE_INC} = 1 - unless exists $ENV{PERL_USE_UNSAFE_INC}; - - return 1 if $self->run_timeout($cmd, $self->{test_timeout}); - if ($self->{force}) { - $self->diag_fail("Testing $distname failed but installing it anyway."); - return 1; - } else { - $self->diag_fail; - while (1) { - my $ans = lc $self->prompt("Testing $distname failed.\nYou can s)kip, r)etry, f)orce install, e)xamine build log, or l)ook ?", "s"); - return if $ans eq 's'; - return $self->test($cmd, $distname, $depth) if $ans eq 'r'; - return 1 if $ans eq 'f'; - $self->show_build_log if $ans eq 'e'; - $self->look if $ans eq 'l'; - } - } - } - - sub install { - my($self, $cmd, $uninst_opts, $depth) = @_; - - if ($depth == 0 && $self->{test_only}) { - return 1; - } - - local $ENV{PERL_USE_UNSAFE_INC} = 1 - unless exists $ENV{PERL_USE_UNSAFE_INC}; - - if ($self->{sudo}) { - unshift @$cmd, "sudo"; - } - - if ($self->{uninstall_shadows} && !$ENV{PERL_MM_OPT}) { - push @$cmd, @$uninst_opts; - } - - $cmd = $self->append_args($cmd, 'install') if $depth == 0; - - $self->run($cmd); - } - - sub look { - my $self = shift; - - my $shell = $ENV{SHELL}; - $shell ||= $ENV{COMSPEC} if WIN32; - if ($shell) { - my $cwd = Cwd::cwd; - $self->diag("Entering $cwd with $shell\n"); - system $shell; - } else { - $self->diag_fail("You don't seem to have a SHELL :/"); - } - } - - sub show_build_log { - my $self = shift; - - my @pagers = ( - $ENV{PAGER}, - (WIN32 ? () : ('less')), - 'more' - ); - my $pager; - while (@pagers) { - $pager = shift @pagers; - next unless $pager; - $pager = $self->which($pager); - next unless $pager; - last; - } - - if ($pager) { - # win32 'more' doesn't allow "more build.log", the < is required - system("$pager < $self->{log}"); - } - else { - $self->diag_fail("You don't seem to have a PAGER :/"); - } - } - - sub chdir { - my $self = shift; - Cwd::chdir(File::Spec->canonpath($_[0])) or die "$_[0]: $!"; - } - - sub configure_mirrors { - my $self = shift; - unless (@{$self->{mirrors}}) { - $self->{mirrors} = [ 'http://www.cpan.org' ]; - } - for (@{$self->{mirrors}}) { - s!^/!file:///!; - s!/$!!; - } - } - - sub self_upgrade { - my $self = shift; - $self->check_upgrade; - $self->{argv} = [ 'App::cpanminus' ]; - return; # continue - } - - sub install_module { - my($self, $module, $depth, $version) = @_; - - $self->check_libs; - - if ($self->{seen}{$module}++) { - # TODO: circular dependencies - $self->chat("Already tried $module. Skipping.\n"); - return 1; - } - - if ($self->{skip_satisfied}) { - my($ok, $local) = $self->check_module($module, $version || 0); - if ($ok) { - $self->diag("You have $module ($local)\n", 1); - return 1; - } - } - - my $dist = $self->resolve_name($module, $version); - unless ($dist) { - my $what = $module . ($version ? " ($version)" : ""); - $self->diag_fail("Couldn't find module or a distribution $what", 1); - return; - } - - if ($dist->{distvname} && $self->{seen}{$dist->{distvname}}++) { - $self->chat("Already tried $dist->{distvname}. Skipping.\n"); - return 1; - } - - if ($self->{cmd} eq 'info') { - print $self->format_dist($dist), "\n"; - return 1; - } - - $dist->{depth} = $depth; # ugly hack - - if ($dist->{module}) { - unless ($self->satisfy_version($dist->{module}, $dist->{module_version}, $version)) { - $self->diag("Found $dist->{module} $dist->{module_version} which doesn't satisfy $version.\n", 1); - return; - } - - # If a version is requested, it has to be the exact same version, otherwise, check as if - # it is the minimum version you need. - my $cmp = $version ? "==" : ""; - my $requirement = $dist->{module_version} ? "$cmp$dist->{module_version}" : 0; - my($ok, $local) = $self->check_module($dist->{module}, $requirement); - if ($self->{skip_installed} && $ok) { - $self->diag("$dist->{module} is up to date. ($local)\n", 1); - return 1; - } - } - - if ($dist->{dist} eq 'perl'){ - $self->diag("skipping $dist->{pathname}\n"); - return 1; - } - - $self->diag("--> Working on $module\n"); - - $dist->{dir} ||= $self->fetch_module($dist); - - unless ($dist->{dir}) { - $self->diag_fail("Failed to fetch distribution $dist->{distvname}", 1); - return; - } - - $self->chat("Entering $dist->{dir}\n"); - $self->chdir($self->{base}); - $self->chdir($dist->{dir}); - - if ($self->{cmd} eq 'look') { - $self->look; - return 1; - } - - return $self->build_stuff($module, $dist, $depth); - } - - sub uninstall_search_path { - my $self = shift; - - $self->{local_lib} - ? (local::lib->install_base_arch_path($self->{local_lib}), - local::lib->install_base_perl_path($self->{local_lib})) - : @Config{qw(installsitearch installsitelib)}; - } - - sub uninstall_module { - my ($self, $module) = @_; - - $self->check_libs; - - my @inc = $self->uninstall_search_path; - - my($metadata, $packlist) = $self->packlists_containing($module, \@inc); - unless ($packlist) { - $self->diag_fail(<<DIAG, 1); - $module is not found in the following directories and can't be uninstalled. - - @{[ join(" \n", map " $_", @inc) ]} - - DIAG - return; - } - - my @uninst_files = $self->uninstall_target($metadata, $packlist); - - $self->ask_permission($module, \@uninst_files) or return; - $self->uninstall_files(@uninst_files, $packlist); - - $self->diag("Successfully uninstalled $module\n", 1); - - return 1; - } - - sub packlists_containing { - my($self, $module, $inc) = @_; - - require Module::Metadata; - my $metadata = Module::Metadata->new_from_module($module, inc => $inc) - or return; - - my $packlist; - my $wanted = sub { - return unless $_ eq '.packlist' && -f $_; - for my $file ($self->unpack_packlist($File::Find::name)) { - $packlist ||= $File::Find::name if $file eq $metadata->filename; - } - }; - - { - require File::pushd; - my $pushd = File::pushd::pushd(); - my @search = grep -d $_, map File::Spec->catdir($_, 'auto'), @$inc; - File::Find::find($wanted, @search); - } - - return $metadata, $packlist; - } - - sub uninstall_target { - my($self, $metadata, $packlist) = @_; - - # If the module has a shadow install, or uses local::lib, then you can't just remove - # all files in .packlist since it might have shadows in there - if ($self->has_shadow_install($metadata) or $self->{local_lib}) { - grep $self->should_unlink($_), $self->unpack_packlist($packlist); - } else { - $self->unpack_packlist($packlist); - } - } - - sub has_shadow_install { - my($self, $metadata) = @_; - - # check if you have the module in site_perl *and* perl - my @shadow = grep defined, map Module::Metadata->new_from_module($metadata->name, inc => [$_]), @INC; - @shadow >= 2; - } - - sub should_unlink { - my($self, $file) = @_; - - # If local::lib is used, everything under the directory can be safely removed - # Otherwise, bin and man files might be shared with the shadows i.e. site_perl vs perl - # This is not 100% safe to keep the script there hoping to work with older version of .pm - # files in the shadow, but there's nothing you can do about it. - if ($self->{local_lib}) { - $file =~ /^\Q$self->{local_lib}\E/; - } else { - !(grep $file =~ /^\Q$_\E/, @Config{qw(installbin installscript installman1dir installman3dir)}); - } - } - - sub ask_permission { - my ($self, $module, $files) = @_; - - $self->diag("$module contains the following files:\n\n"); - for my $file (@$files) { - $self->diag(" $file\n"); - } - $self->diag("\n"); - - return 'force uninstall' if $self->{force}; - local $self->{prompt} = 1; - return $self->prompt_bool("Are you sure you want to uninstall $module?", 'y'); - } - - sub unpack_packlist { - my ($self, $packlist) = @_; - open my $fh, '<', $packlist or die "$packlist: $!"; - map { chomp; $_ } <$fh>; - } - - sub uninstall_files { - my ($self, @files) = @_; - - $self->diag("\n"); - - for my $file (@files) { - $self->diag("Unlink: $file\n"); - unlink $file or $self->diag_fail("$!: $file"); - } - - $self->diag("\n"); - - return 1; - } - - sub format_dist { - my($self, $dist) = @_; - - # TODO support --dist-format? - return "$dist->{cpanid}/$dist->{filename}"; - } - - sub trim { - local $_ = shift; - tr/\n/ /d; - s/^\s*|\s*$//g; - $_; - } - - sub fetch_module { - my($self, $dist) = @_; - - $self->chdir($self->{base}); - - for my $uri (@{$dist->{uris}}) { - $self->mask_output( diag_progress => "Fetching $uri" ); - - # Ugh, $dist->{filename} can contain sub directory - my $filename = $dist->{filename} || $uri; - my $name = File::Basename::basename($filename); - - my $cancelled; - my $fetch = sub { - my $file; - eval { - local $SIG{INT} = sub { $cancelled = 1; die "SIGINT\n" }; - $self->mirror($uri, $name); - $file = $name if -e $name; - }; - $self->diag("ERROR: " . trim("$@") . "\n", 1) if $@ && $@ ne "SIGINT\n"; - return $file; - }; - - my($try, $file); - while ($try++ < 3) { - $file = $fetch->(); - last if $cancelled or $file; - $self->mask_output( diag_fail => "Download $uri failed. Retrying ... "); - } - - if ($cancelled) { - $self->diag_fail("Download cancelled."); - return; - } - - unless ($file) { - $self->mask_output( diag_fail => "Failed to download $uri"); - next; - } - - $self->diag_ok; - $dist->{local_path} = File::Spec->rel2abs($name); - - my $dir = $self->unpack($file, $uri, $dist); - next unless $dir; # unpack failed - - if (my $save = $self->{save_dists}) { - # Only distros retrieved from CPAN have a pathname set - my $path = $dist->{pathname} ? "$save/authors/id/$dist->{pathname}" - : "$save/vendor/$file"; - $self->chat("Copying $name to $path\n"); - File::Path::mkpath([ File::Basename::dirname($path) ], 0, 0777); - File::Copy::copy($file, $path) or warn $!; - } - - return $dist, $dir; - } - } - - sub unpack { - my($self, $file, $uri, $dist) = @_; - - if ($self->{verify}) { - $self->verify_archive($file, $uri, $dist) or return; - } - - $self->chat("Unpacking $file\n"); - my $dir = $file =~ /\.zip/i ? $self->unzip($file) : $self->untar($file); - unless ($dir) { - $self->diag_fail("Failed to unpack $file: no directory"); - } - return $dir; - } - - sub verify_checksums_signature { - my($self, $chk_file) = @_; - - require Module::Signature; # no fatpack - - $self->chat("Verifying the signature of CHECKSUMS\n"); - - my $rv = eval { - local $SIG{__WARN__} = sub {}; # suppress warnings - my $v = Module::Signature::_verify($chk_file); - $v == Module::Signature::SIGNATURE_OK(); - }; - if ($rv) { - $self->chat("Verified OK!\n"); - } else { - $self->diag_fail("Verifying CHECKSUMS signature failed: $rv\n"); - return; - } - - return 1; - } - - sub verify_archive { - my($self, $file, $uri, $dist) = @_; - - unless ($dist->{cpanid}) { - $self->chat("Archive '$file' does not seem to be from PAUSE. Skip verification.\n"); - return 1; - } - - (my $mirror = $uri) =~ s!/authors/id.*$!!; - - (my $chksum_uri = $uri) =~ s!/[^/]*$!/CHECKSUMS!; - my $chk_file = $self->source_for($mirror) . "/$dist->{cpanid}.CHECKSUMS"; - $self->mask_output( diag_progress => "Fetching $chksum_uri" ); - $self->mirror($chksum_uri, $chk_file); - - unless (-e $chk_file) { - $self->diag_fail("Fetching $chksum_uri failed.\n"); - return; - } - - $self->diag_ok; - $self->verify_checksums_signature($chk_file) or return; - $self->verify_checksum($file, $chk_file); - } - - sub verify_checksum { - my($self, $file, $chk_file) = @_; - - $self->chat("Verifying the SHA1 for $file\n"); - - open my $fh, "<$chk_file" or die "$chk_file: $!"; - my $data = join '', <$fh>; - $data =~ s/\015?\012/\n/g; - - require Safe; # no fatpack - my $chksum = Safe->new->reval($data); - - if (!ref $chksum or ref $chksum ne 'HASH') { - $self->diag_fail("! Checksum file downloaded from $chk_file is broken.\n"); - return; - } - - if (my $sha = $chksum->{$file}{sha256}) { - my $hex = $self->sha1_for($file); - if ($hex eq $sha) { - $self->chat("Checksum for $file: Verified!\n"); - } else { - $self->diag_fail("Checksum mismatch for $file\n"); - return; - } - } else { - $self->chat("Checksum for $file not found in CHECKSUMS.\n"); - return; - } - } - - sub sha1_for { - my($self, $file) = @_; - - require Digest::SHA; # no fatpack - - open my $fh, "<", $file or die "$file: $!"; - my $dg = Digest::SHA->new(256); - my($data); - while (read($fh, $data, 4096)) { - $dg->add($data); - } - - return $dg->hexdigest; - } - - sub verify_signature { - my($self, $dist) = @_; - - $self->diag_progress("Verifying the SIGNATURE file"); - my $out = `$self->{cpansign} -v --skip 2>&1`; - $self->log($out); - - if ($out =~ /Signature verified OK/) { - $self->diag_ok("Verified OK"); - return 1; - } else { - $self->diag_fail("SIGNATURE verification for $dist->{filename} failed\n"); - return; - } - } - - sub resolve_name { - my($self, $module, $version) = @_; - - # Git - if ($module =~ /(?:^git:|\.git(?:@.+)?$)/) { - return $self->git_uri($module); - } - - # URL - if ($module =~ /^(ftp|https?|file):/) { - if ($module =~ m!authors/id/(.*)!) { - return $self->cpan_dist($1, $module); - } else { - return { uris => [ $module ] }; - } - } - - # Directory - if ($module =~ m!^[\./]! && -d $module) { - return { - source => 'local', - dir => Cwd::abs_path($module), - }; - } - - # File - if (-f $module) { - return { - source => 'local', - uris => [ "file://" . Cwd::abs_path($module) ], - }; - } - - # cpan URI - if ($module =~ s!^cpan:///distfile/!!) { - return $self->cpan_dist($module); - } - - # PAUSEID/foo - # P/PA/PAUSEID/foo - if ($module =~ m!^(?:[A-Z]/[A-Z]{2}/)?([A-Z]{2}[\-A-Z0-9]*/.*)$!) { - return $self->cpan_dist($1); - } - - # Module name - return $self->search_module($module, $version); - } - - sub cpan_module { - my($self, $module, $dist_file, $version) = @_; - - my $dist = $self->cpan_dist($dist_file); - $dist->{module} = $module; - $dist->{module_version} = $version if $version && $version ne 'undef'; - - return $dist; - } - - sub cpan_dist { - my($self, $dist, $url) = @_; - - $dist =~ s!^([A-Z]{2})!substr($1,0,1)."/".substr($1,0,2)."/".$1!e; - - require CPAN::DistnameInfo; - my $d = CPAN::DistnameInfo->new($dist); - - if ($url) { - $url = [ $url ] unless ref $url eq 'ARRAY'; - } else { - my $id = $d->cpanid; - my $fn = substr($id, 0, 1) . "/" . substr($id, 0, 2) . "/" . $id . "/" . $d->filename; - - my @mirrors = @{$self->{mirrors}}; - my @urls = map "$_/authors/id/$fn", @mirrors; - - $url = \@urls, - } - - return { - $d->properties, - source => 'cpan', - uris => $url, - }; - } - - sub git_uri { - my ($self, $uri) = @_; - - # similar to http://www.pip-installer.org/en/latest/logic.html#vcs-support - # git URL has to end with .git when you need to use pin @ commit/tag/branch - - ($uri, my $commitish) = split /(?<=\.git)@/i, $uri, 2; - - my $dir = File::Temp::tempdir(CLEANUP => 1); - - $self->mask_output( diag_progress => "Cloning $uri" ); - $self->run([ 'git', 'clone', $uri, $dir ]); - - unless (-e "$dir/.git") { - $self->diag_fail("Failed cloning git repository $uri", 1); - return; - } - - if ($commitish) { - require File::pushd; - my $dir = File::pushd::pushd($dir); - - unless ($self->run([ 'git', 'checkout', $commitish ])) { - $self->diag_fail("Failed to checkout '$commitish' in git repository $uri\n"); - return; - } - } - - $self->diag_ok; - - return { - source => 'local', - dir => $dir, - }; - } - - sub setup_module_build_patch { - my $self = shift; - - open my $out, ">$self->{base}/ModuleBuildSkipMan.pm" or die $!; - print $out <<EOF; - package ModuleBuildSkipMan; - CHECK { - if (%Module::Build::) { - no warnings 'redefine'; - *Module::Build::Base::ACTION_manpages = sub {}; - *Module::Build::Base::ACTION_docs = sub {}; - } - } - 1; - EOF - } - - sub core_version_for { - my($self, $module) = @_; - - require Module::CoreList; # no fatpack - unless (exists $Module::CoreList::version{$]+0}) { - die sprintf("Module::CoreList %s (loaded from %s) doesn't seem to have entries for perl $]. " . - "You're strongly recommended to upgrade Module::CoreList from CPAN.\n", - $Module::CoreList::VERSION, $INC{"Module/CoreList.pm"}); - } - - unless (exists $Module::CoreList::version{$]+0}{$module}) { - return -1; - } - - return $Module::CoreList::version{$]+0}{$module}; - } - - sub search_inc { - my $self = shift; - $self->{search_inc} ||= do { - # strip lib/ and fatlib/ from search path when booted from dev - if (defined $::Bin) { - [grep !/^\Q$::Bin\E\/..\/(?:fat)?lib$/, @INC] - } else { - [@INC] - } - }; - } - - sub check_module { - my($self, $mod, $want_ver) = @_; - - require Module::Metadata; - my $meta = Module::Metadata->new_from_module($mod, inc => $self->search_inc) - or return 0, undef; - - my $version = $meta->version; - - # When -L is in use, the version loaded from 'perl' library path - # might be newer than (or actually wasn't core at) the version - # that is shipped with the current perl - if ($self->{self_contained} && $self->loaded_from_perl_lib($meta)) { - $version = $self->core_version_for($mod); - return 0, undef if $version && $version == -1; - } - - $self->{local_versions}{$mod} = $version; - - if ($self->is_deprecated($meta)){ - return 0, $version; - } elsif ($self->satisfy_version($mod, $version, $want_ver)) { - return 1, ($version || 'undef'); - } else { - return 0, $version; - } - } - - sub satisfy_version { - my($self, $mod, $version, $want_ver) = @_; - - $want_ver = '0' unless defined($want_ver) && length($want_ver); - - require CPAN::Meta::Requirements; - my $requirements = CPAN::Meta::Requirements->new; - $requirements->add_string_requirement($mod, $want_ver); - $requirements->accepts_module($mod, $version); - } - - sub unsatisfy_how { - my($self, $ver, $want_ver) = @_; - - if ($want_ver =~ /^[v0-9\.\_]+$/) { - return "$ver < $want_ver"; - } else { - return "$ver doesn't satisfy $want_ver"; - } - } - - sub is_deprecated { - my($self, $meta) = @_; - - my $deprecated = eval { - require Module::CoreList; # no fatpack - Module::CoreList::is_deprecated($meta->{module}); - }; - - return $deprecated && $self->loaded_from_perl_lib($meta); - } - - sub loaded_from_perl_lib { - my($self, $meta) = @_; - - require Config; - my @dirs = qw(archlibexp privlibexp); - if ($self->{self_contained} && ! $self->{exclude_vendor} && $Config{vendorarch}) { - unshift @dirs, qw(vendorarch vendorlibexp); - } - for my $dir (@dirs) { - my $confdir = $Config{$dir}; - if ($confdir eq substr($meta->filename, 0, length($confdir))) { - return 1; - } - } - - return; - } - - sub should_install { - my($self, $mod, $ver) = @_; - - $self->chat("Checking if you have $mod $ver ... "); - my($ok, $local) = $self->check_module($mod, $ver); - - if ($ok) { $self->chat("Yes ($local)\n") } - elsif ($local) { $self->chat("No (" . $self->unsatisfy_how($local, $ver) . ")\n") } - else { $self->chat("No\n") } - - return $mod unless $ok; - return; - } - - sub check_perl_version { - my($self, $version) = @_; - require CPAN::Meta::Requirements; - my $req = CPAN::Meta::Requirements->from_string_hash({ perl => $version }); - $req->accepts_module(perl => $]); - } - - sub install_deps { - my($self, $dir, $depth, @deps) = @_; - - my(@install, %seen, @fail); - for my $dep (@deps) { - next if $seen{$dep->module}; - if ($dep->module eq 'perl') { - if ($dep->is_requirement && !$self->check_perl_version($dep->version)) { - $self->diag("Needs perl @{[$dep->version]}, you have $]\n"); - push @fail, 'perl'; - } - } elsif ($self->should_install($dep->module, $dep->version)) { - push @install, $dep; - $seen{$dep->module} = 1; - } - } - - if (@install) { - $self->diag("==> Found dependencies: " . join(", ", map $_->module, @install) . "\n"); - } - - for my $dep (@install) { - $self->install_module($dep->module, $depth + 1, $dep->version); - } - - $self->chdir($self->{base}); - $self->chdir($dir) if $dir; - - if ($self->{scandeps}) { - return 1; # Don't check if dependencies are installed, since with --scandeps they aren't - } - my @not_ok = $self->unsatisfied_deps(@deps); - if (@not_ok) { - return 0, \@not_ok; - } else { - return 1; - } - } - - sub unsatisfied_deps { - my($self, @deps) = @_; - - require CPAN::Meta::Check; - require CPAN::Meta::Requirements; - - my $reqs = CPAN::Meta::Requirements->new; - for my $dep (grep $_->is_requirement, @deps) { - $reqs->add_string_requirement($dep->module => $dep->requires_version || '0'); - } - - my $ret = CPAN::Meta::Check::check_requirements($reqs, 'requires', $self->{search_inc}); - grep defined, values %$ret; - } - - sub install_deps_bailout { - my($self, $target, $dir, $depth, @deps) = @_; - - my($ok, $fail) = $self->install_deps($dir, $depth, @deps); - if (!$ok) { - $self->diag_fail("Installing the dependencies failed: " . join(", ", @$fail), 1); - unless ($self->prompt_bool("Do you want to continue building $target anyway?", "n")) { - $self->diag_fail("Bailing out the installation for $target.", 1); - return; - } - } - - return 1; - } - - sub build_stuff { - my($self, $stuff, $dist, $depth) = @_; - - if ($self->{verify} && -e 'SIGNATURE') { - $self->verify_signature($dist) or return; - } - - require CPAN::Meta; - - my($meta_file) = grep -f, qw(META.json META.yml); - if ($meta_file) { - $self->chat("Checking configure dependencies from $meta_file\n"); - $dist->{cpanmeta} = eval { CPAN::Meta->load_file($meta_file) }; - } elsif ($dist->{dist} && $dist->{version}) { - $self->chat("META.yml/json not found. Creating skeleton for it.\n"); - $dist->{cpanmeta} = CPAN::Meta->new({ name => $dist->{dist}, version => $dist->{version} }); - } - - $dist->{meta} = $dist->{cpanmeta} ? $dist->{cpanmeta}->as_struct : {}; - - my @config_deps; - - if ($dist->{cpanmeta}) { - push @config_deps, App::cpanminus::Dependency->from_prereqs( - $dist->{cpanmeta}->effective_prereqs, ['configure'], $self->{install_types}, - ); - } - - if (-e 'Build.PL' && !$self->should_use_mm($dist->{dist}) && !@config_deps) { - push @config_deps, App::cpanminus::Dependency->from_versions( - { 'Module::Build' => '0.38' }, 'configure', - ); - } - - $self->merge_with_cpanfile($dist, \@config_deps); - - $self->upgrade_toolchain(\@config_deps); - - my $target = $dist->{meta}{name} ? "$dist->{meta}{name}-$dist->{meta}{version}" : $dist->{dir}; - { - $self->install_deps_bailout($target, $dist->{dir}, $depth, @config_deps) - or return; - } - - $self->diag_progress("Configuring $target"); - - my $configure_state = $self->configure_this($dist, $depth); - $self->diag_ok($configure_state->{configured_ok} ? "OK" : "N/A"); - - if ($dist->{cpanmeta} && $dist->{source} eq 'cpan') { - $dist->{provides} = $dist->{cpanmeta}{provides} || $self->extract_packages($dist->{cpanmeta}, "."); - } - - # install direct 'test' dependencies for --installdeps, even with --notest - my $root_target = (($self->{installdeps} or $self->{showdeps}) and $depth == 0); - $dist->{want_phases} = $self->{notest} && !$root_target - ? [qw( build runtime )] : [qw( build test runtime )]; - - push @{$dist->{want_phases}}, 'develop' if $self->{with_develop} && $depth == 0; - push @{$dist->{want_phases}}, 'configure' if $self->{with_configure} && $depth == 0; - - my @deps = $self->find_prereqs($dist); - my $module_name = $self->find_module_name($configure_state) || $dist->{meta}{name}; - $module_name =~ s/-/::/g; - - if ($self->{showdeps}) { - for my $dep (@config_deps, @deps) { - print $dep->module, ($dep->version ? ("~".$dep->version) : ""), "\n"; - } - return 1; - } - - my $distname = $dist->{meta}{name} ? "$dist->{meta}{name}-$dist->{meta}{version}" : $stuff; - - my $walkup; - if ($self->{scandeps}) { - $walkup = $self->scandeps_append_child($dist); - } - - $self->install_deps_bailout($distname, $dist->{dir}, $depth, @deps) - or return; - - if ($self->{scandeps}) { - unless ($configure_state->{configured_ok}) { - my $diag = <<DIAG; - ! Configuring $distname failed. See $self->{log} for details. - ! You might have to install the following modules first to get --scandeps working correctly. - DIAG - if (@config_deps) { - my @tree = @{$self->{scandeps_tree}}; - $diag .= "!\n" . join("", map "! * $_->[0]{module}\n", @tree[0..$#tree-1]) if @tree; - } - $self->diag("!\n$diag!\n", 1); - } - $walkup->(); - return 1; - } - - if ($self->{installdeps} && $depth == 0) { - if ($configure_state->{configured_ok}) { - $self->diag("<== Installed dependencies for $stuff. Finishing.\n"); - return 1; - } else { - $self->diag("! Configuring $distname failed. See $self->{log} for details.\n", 1); - return; - } - } - - my $installed; - if ($configure_state->{use_module_build} && -e 'Build' && -f _) { - $self->diag_progress("Building " . ($self->{notest} ? "" : "and testing ") . $distname); - $self->build([ $self->{perl}, "./Build" ], $distname, $depth) && - $self->test([ $self->{perl}, "./Build", "test" ], $distname, $depth) && - $self->install([ $self->{perl}, "./Build", "install" ], [ "--uninst", 1 ], $depth) && - $installed++; - } elsif ($self->{make} && -e 'Makefile') { - $self->diag_progress("Building " . ($self->{notest} ? "" : "and testing ") . $distname); - $self->build([ $self->{make} ], $distname, $depth) && - $self->test([ $self->{make}, "test" ], $distname, $depth) && - $self->install([ $self->{make}, "install" ], [ "UNINST=1" ], $depth) && - $installed++; - } else { - my $why; - my $configure_failed = $configure_state->{configured} && !$configure_state->{configured_ok}; - if ($configure_failed) { $why = "Configure failed for $distname." } - elsif ($self->{make}) { $why = "The distribution doesn't have a proper Makefile.PL/Build.PL" } - else { $why = "Can't configure the distribution. You probably need to have 'make'." } - - $self->diag_fail("$why See $self->{log} for details.", 1); - return; - } - - if ($installed && $self->{test_only}) { - $self->diag_ok; - $self->diag("Successfully tested $distname\n", 1); - } elsif ($installed) { - my $local = $self->{local_versions}{$dist->{module} || ''}; - my $version = $dist->{module_version} || $dist->{meta}{version} || $dist->{version}; - my $reinstall = $local && ($local eq $version); - my $action = $local && !$reinstall - ? $self->numify_ver($version) < $self->numify_ver($local) - ? "downgraded" - : "upgraded" - : undef; - - my $how = $reinstall ? "reinstalled $distname" - : $local ? "installed $distname ($action from $local)" - : "installed $distname" ; - my $msg = "Successfully $how"; - $self->diag_ok; - $self->diag("$msg\n", 1); - $self->{installed_dists}++; - $self->save_meta($stuff, $dist, $module_name, \@config_deps, \@deps); - return 1; - } else { - my $what = $self->{test_only} ? "Testing" : "Installing"; - $self->diag_fail("$what $stuff failed. See $self->{log} for details. Retry with --force to force install it.", 1); - return; - } - } - - sub perl_requirements { - my($self, @requires) = @_; - - my @perl; - for my $requires (grep defined, @requires) { - if (exists $requires->{perl}) { - push @perl, App::cpanminus::Dependency->new(perl => $requires->{perl}); - } - } - - return @perl; - } - - sub should_use_mm { - my($self, $dist) = @_; - - # Module::Build deps should use MakeMaker because that causes circular deps and fail - # Otherwise we should prefer Build.PL - my %should_use_mm = map { $_ => 1 } qw( version ExtUtils-ParseXS ExtUtils-Install ExtUtils-Manifest ); - - $should_use_mm{$dist}; - } - - sub configure_this { - my($self, $dist, $depth) = @_; - - # Short-circuit `cpanm --installdeps .` because it doesn't need to build the current dir - if (-e $self->{cpanfile_path} && $self->{installdeps} && $depth == 0) { - require Module::CPANfile; - $dist->{cpanfile} = eval { Module::CPANfile->load($self->{cpanfile_path}) }; - $self->diag_fail($@, 1) if $@; - return { - configured => 1, - configured_ok => !!$dist->{cpanfile}, - use_module_build => 0, - }; - } - - if ($self->{skip_configure}) { - my $eumm = -e 'Makefile'; - my $mb = -e 'Build' && -f _; - return { - configured => 1, - configured_ok => $eumm || $mb, - use_module_build => $mb, - }; - } - - my $state = {}; - - my $try_eumm = sub { - if (-e 'Makefile.PL') { - $self->chat("Running Makefile.PL\n"); - - # NOTE: according to Devel::CheckLib, most XS modules exit - # with 0 even if header files are missing, to avoid receiving - # tons of FAIL reports in such cases. So exit code can't be - # trusted if it went well. - if ($self->configure([ $self->{perl}, "Makefile.PL" ], $depth)) { - $state->{configured_ok} = -e 'Makefile'; - } - $state->{configured}++; - } - }; - - my $try_mb = sub { - if (-e 'Build.PL') { - $self->chat("Running Build.PL\n"); - if ($self->configure([ $self->{perl}, "Build.PL" ], $depth)) { - $state->{configured_ok} = -e 'Build' && -f _; - } - $state->{use_module_build}++; - $state->{configured}++; - } - }; - - my @try; - if ($dist->{dist} && $self->should_use_mm($dist->{dist})) { - @try = ($try_eumm, $try_mb); - } else { - @try = ($try_mb, $try_eumm); - } - - for my $try (@try) { - $try->(); - last if $state->{configured_ok}; - } - - unless ($state->{configured_ok}) { - while (1) { - my $ans = lc $self->prompt("Configuring $dist->{dist} failed.\nYou can s)kip, r)etry, e)xamine build log, or l)ook ?", "s"); - last if $ans eq 's'; - return $self->configure_this($dist, $depth) if $ans eq 'r'; - $self->show_build_log if $ans eq 'e'; - $self->look if $ans eq 'l'; - } - } - - return $state; - } - - sub find_module_name { - my($self, $state) = @_; - - return unless $state->{configured_ok}; - - if ($state->{use_module_build} && - -e "_build/build_params") { - my $params = do { open my $in, "_build/build_params"; $self->safe_eval(join "", <$in>) }; - return eval { $params->[2]{module_name} } || undef; - } elsif (-e "Makefile") { - open my $mf, "Makefile"; - while (<$mf>) { - if (/^\#\s+NAME\s+=>\s+(.*)/) { - return $self->safe_eval($1); - } - } - } - - return; - } - - sub list_files { - my $self = shift; - - if (-e 'MANIFEST') { - require ExtUtils::Manifest; - my $manifest = eval { ExtUtils::Manifest::manifind() } || {}; - return sort { lc $a cmp lc $b } keys %$manifest; - } else { - require File::Find; - my @files; - my $finder = sub { - my $name = $File::Find::name; - $name =~ s!\.[/\\]!!; - push @files, $name; - }; - File::Find::find($finder, "."); - return sort { lc $a cmp lc $b } @files; - } - } - - sub extract_packages { - my($self, $meta, $dir) = @_; - - my $try = sub { - my $file = shift; - return 0 if $file =~ m!^(?:x?t|inc|local|perl5|fatlib|_build)/!; - return 1 unless $meta->{no_index}; - return 0 if grep { $file =~ m!^$_/! } @{$meta->{no_index}{directory} || []}; - return 0 if grep { $file eq $_ } @{$meta->{no_index}{file} || []}; - return 1; - }; - - require Parse::PMFile; - - my @files = grep { /\.pm(?:\.PL)?$/ && $try->($_) } $self->list_files; - - my $provides = { }; - - for my $file (@files) { - my $parser = Parse::PMFile->new($meta, { UNSAFE => 1, ALLOW_DEV_VERSION => 1 }); - my $packages = $parser->parse($file); - - while (my($package, $meta) = each %$packages) { - $provides->{$package} ||= { - file => $meta->{infile}, - ($meta->{version} eq 'undef') ? () : (version => $meta->{version}), - }; - } - } - - return $provides; - } - - sub save_meta { - my($self, $module, $dist, $module_name, $config_deps, $build_deps) = @_; - - return unless $dist->{distvname} && $dist->{source} eq 'cpan'; - - my $base = ($ENV{PERL_MM_OPT} || '') =~ /INSTALL_BASE=/ - ? ($self->install_base($ENV{PERL_MM_OPT}) . "/lib/perl5") : $Config{sitelibexp}; - - my $provides = $dist->{provides}; - - File::Path::mkpath("blib/meta", 0, 0777); - - my $local = { - name => $module_name, - target => $module, - version => exists $provides->{$module_name} - ? ($provides->{$module_name}{version} || $dist->{version}) : $dist->{version}, - dist => $dist->{distvname}, - pathname => $dist->{pathname}, - provides => $provides, - }; - - require JSON::PP; - open my $fh, ">", "blib/meta/install.json" or die $!; - print $fh JSON::PP::encode_json($local); - - # Existence of MYMETA.* Depends on EUMM/M::B versions and CPAN::Meta - if (-e "MYMETA.json") { - File::Copy::copy("MYMETA.json", "blib/meta/MYMETA.json"); - } - - my @cmd = ( - ($self->{sudo} ? 'sudo' : ()), - $^X, - '-MExtUtils::Install=install', - '-e', - qq[install({ 'blib/meta' => '$base/$Config{archname}/.meta/$dist->{distvname}' })], - ); - $self->run(\@cmd); - } - - sub _merge_hashref { - my($self, @hashrefs) = @_; - - my %hash; - for my $h (@hashrefs) { - %hash = (%hash, %$h); - } - - return \%hash; - } - - sub install_base { - my($self, $mm_opt) = @_; - $mm_opt =~ /INSTALL_BASE=(\S+)/ and return $1; - die "Your PERL_MM_OPT doesn't contain INSTALL_BASE"; - } - - sub safe_eval { - my($self, $code) = @_; - eval $code; - } - - sub configure_features { - my($self, $dist, @features) = @_; - map $_->identifier, grep { $self->effective_feature($dist, $_) } @features; - } - - sub effective_feature { - my($self, $dist, $feature) = @_; - - if ($dist->{depth} == 0) { - my $value = $self->{features}{$feature->identifier}; - return $value if defined $value; - return 1 if $self->{features}{__all}; - } - - if ($self->{interactive}) { - require CPAN::Meta::Requirements; - - $self->diag("[@{[ $feature->description ]}]\n", 1); - - my $req = CPAN::Meta::Requirements->new; - for my $phase (@{$dist->{want_phases}}) { - for my $type (@{$self->{install_types}}) { - $req->add_requirements($feature->prereqs->requirements_for($phase, $type)); - } - } - - my $reqs = $req->as_string_hash; - my @missing; - for my $module (keys %$reqs) { - if ($self->should_install($module, $req->{$module})) { - push @missing, $module; - } - } - - if (@missing) { - my $howmany = @missing; - $self->diag("==> Found missing dependencies: " . join(", ", @missing) . "\n", 1); - local $self->{prompt} = 1; - return $self->prompt_bool("Install the $howmany optional module(s)?", "y"); - } - } - - return; - } - - sub find_prereqs { - my($self, $dist) = @_; - - my @deps = $self->extract_meta_prereqs($dist); - - if ($dist->{module} =~ /^Bundle::/i) { - push @deps, $self->bundle_deps($dist); - } - - $self->merge_with_cpanfile($dist, \@deps); - - return @deps; - } - - sub merge_with_cpanfile { - my($self, $dist, $deps) = @_; - - if ($self->{cpanfile_requirements} && !$dist->{cpanfile}) { - for my $dep (@$deps) { - $dep->merge_with($self->{cpanfile_requirements}); - } - } - } - - sub extract_meta_prereqs { - my($self, $dist) = @_; - - if ($dist->{cpanfile}) { - my @features = $self->configure_features($dist, $dist->{cpanfile}->features); - my $prereqs = $dist->{cpanfile}->prereqs_with(@features); - # TODO: creating requirements is useful even without cpanfile to detect conflicting prereqs - $self->{cpanfile_requirements} = $prereqs->merged_requirements($dist->{want_phases}, ['requires']); - return App::cpanminus::Dependency->from_prereqs($prereqs, $dist->{want_phases}, $self->{install_types}); - } - - require CPAN::Meta; - - my @deps; - my($meta_file) = grep -f, qw(MYMETA.json MYMETA.yml); - if ($meta_file) { - $self->chat("Checking dependencies from $meta_file ...\n"); - my $mymeta = eval { CPAN::Meta->load_file($meta_file, { lazy_validation => 1 }) }; - if ($mymeta) { - $dist->{meta}{name} = $mymeta->name; - $dist->{meta}{version} = $mymeta->version; - return $self->extract_prereqs($mymeta, $dist); - } - } - - if (-e '_build/prereqs') { - $self->chat("Checking dependencies from _build/prereqs ...\n"); - my $prereqs = do { open my $in, "_build/prereqs"; $self->safe_eval(join "", <$in>) }; - my $meta = CPAN::Meta->new( - { name => $dist->{meta}{name}, version => $dist->{meta}{version}, %$prereqs }, - { lazy_validation => 1 }, - ); - @deps = $self->extract_prereqs($meta, $dist); - } elsif (-e 'Makefile') { - $self->chat("Finding PREREQ from Makefile ...\n"); - open my $mf, "Makefile"; - while (<$mf>) { - if (/^\#\s+PREREQ_PM => \{\s*(.*?)\s*\}/) { - my @all; - my @pairs = split ', ', $1; - for (@pairs) { - my ($pkg, $v) = split '=>', $_; - push @all, [ $pkg, $v ]; - } - my $list = join ", ", map { "'$_->[0]' => $_->[1]" } @all; - my $prereq = $self->safe_eval("no strict; +{ $list }"); - push @deps, App::cpanminus::Dependency->from_versions($prereq) if $prereq; - last; - } - } - } - - return @deps; - } - - sub bundle_deps { - my($self, $dist) = @_; - - my $match; - if ($dist->{module}) { - $match = sub { - my $meta = Module::Metadata->new_from_file($_[0]); - $meta && ($meta->name eq $dist->{module}); - }; - } else { - $match = sub { 1 }; - } - - my @files; - File::Find::find({ - wanted => sub { - push @files, File::Spec->rel2abs($_) if /\.pm$/i && $match->($_); - }, - no_chdir => 1, - }, '.'); - - my @deps; - - for my $file (@files) { - open my $pod, "<", $file or next; - my $in_contents; - while (<$pod>) { - if (/^=head\d\s+CONTENTS/) { - $in_contents = 1; - } elsif (/^=/) { - $in_contents = 0; - } elsif ($in_contents) { - /^(\S+)\s*(\S+)?/ - and push @deps, App::cpanminus::Dependency->new($1, $self->maybe_version($2)); - } - } - } - - return @deps; - } - - sub maybe_version { - my($self, $string) = @_; - return $string && $string =~ /^\.?\d/ ? $string : undef; - } - - sub extract_prereqs { - my($self, $meta, $dist) = @_; - - my @features = $self->configure_features($dist, $meta->features); - my $prereqs = $self->soften_makemaker_prereqs($meta->effective_prereqs(\@features)->clone); - - return App::cpanminus::Dependency->from_prereqs($prereqs, $dist->{want_phases}, $self->{install_types}); - } - - # Workaround for Module::Install 1.04 creating a bogus (higher) MakeMaker requirement that it needs in build_requires - # Assuming MakeMaker requirement is already satisfied in configure_requires, there's no need to have higher version of - # MakeMaker in build/test anyway. https://github.com/miyagawa/cpanminus/issues/463 - sub soften_makemaker_prereqs { - my($self, $prereqs) = @_; - - return $prereqs unless -e "inc/Module/Install.pm"; - - for my $phase (qw( build test runtime )) { - my $reqs = $prereqs->requirements_for($phase, 'requires'); - if ($reqs->requirements_for_module('ExtUtils::MakeMaker')) { - $reqs->clear_requirement('ExtUtils::MakeMaker'); - $reqs->add_minimum('ExtUtils::MakeMaker' => 0); - } - } - - $prereqs; - } - - sub cleanup_workdirs { - my $self = shift; - - my $expire = time - 24 * 60 * 60 * $self->{auto_cleanup}; - my @targets; - - opendir my $dh, "$self->{home}/work"; - while (my $e = readdir $dh) { - next if $e !~ /^(\d+)\.\d+$/; # {UNIX time}.{PID} - my $time = $1; - if ($time < $expire) { - push @targets, "$self->{home}/work/$e"; - } - } - - if (@targets) { - if (@targets >= 64) { - $self->diag("Expiring " . scalar(@targets) . " work directories. This might take a while...\n"); - } else { - $self->chat("Expiring " . scalar(@targets) . " work directories.\n"); - } - File::Path::rmtree(\@targets, 0, 0); # safe = 0, since blib usually doesn't have write bits - } - } - - sub scandeps_append_child { - my($self, $dist) = @_; - - my $new_node = [ $dist, [] ]; - - my $curr_node = $self->{scandeps_current} || [ undef, $self->{scandeps_tree} ]; - push @{$curr_node->[1]}, $new_node; - - $self->{scandeps_current} = $new_node; - - return sub { $self->{scandeps_current} = $curr_node }; - } - - sub dump_scandeps { - my $self = shift; - - if ($self->{format} eq 'tree') { - $self->walk_down(sub { - my($dist, $depth) = @_; - if ($depth == 0) { - print "$dist->{distvname}\n"; - } else { - print " " x ($depth - 1); - print "\\_ $dist->{distvname}\n"; - } - }, 1); - } elsif ($self->{format} =~ /^dists?$/) { - $self->walk_down(sub { - my($dist, $depth) = @_; - print $self->format_dist($dist), "\n"; - }, 0); - } elsif ($self->{format} eq 'json') { - require JSON::PP; - print JSON::PP::encode_json($self->{scandeps_tree}); - } elsif ($self->{format} eq 'yaml') { - require YAML; # no fatpack - print YAML::Dump($self->{scandeps_tree}); - } else { - $self->diag("Unknown format: $self->{format}\n"); - } - } - - sub walk_down { - my($self, $cb, $pre) = @_; - $self->_do_walk_down($self->{scandeps_tree}, $cb, 0, $pre); - } - - sub _do_walk_down { - my($self, $children, $cb, $depth, $pre) = @_; - - # DFS - $pre determines when we call the callback - for my $node (@$children) { - $cb->($node->[0], $depth) if $pre; - $self->_do_walk_down($node->[1], $cb, $depth + 1, $pre); - $cb->($node->[0], $depth) unless $pre; - } - } - - sub DESTROY { - my $self = shift; - $self->{at_exit}->($self) if $self->{at_exit}; - } - - # Utils - - sub shell_quote { - my($self, @stuff) = @_; - if (WIN32) { - join ' ', map { /^${quote}.+${quote}$/ ? $_ : ($quote . $_ . $quote) } @stuff; - } else { - String::ShellQuote::shell_quote_best_effort(@stuff); - } - } - - sub which { - my($self, $name) = @_; - if (File::Spec->file_name_is_absolute($name)) { - if (-x $name && !-d _) { - return $name; - } - } - my $exe_ext = $Config{_exe}; - for my $dir (File::Spec->path) { - my $fullpath = File::Spec->catfile($dir, $name); - if ((-x $fullpath || -x ($fullpath .= $exe_ext)) && !-d _) { - if ($fullpath =~ /\s/) { - $fullpath = $self->shell_quote($fullpath); - } - return $fullpath; - } - } - return; - } - - sub get { - my($self, $uri) = @_; - if ($uri =~ /^file:/) { - $self->file_get($uri); - } else { - $self->{_backends}{get}->(@_); - } - } - - sub mirror { - my($self, $uri, $local) = @_; - if ($uri =~ /^file:/) { - $self->file_mirror($uri, $local); - } else { - $self->{_backends}{mirror}->(@_); - } - } - - sub untar { $_[0]->{_backends}{untar}->(@_) }; - sub unzip { $_[0]->{_backends}{unzip}->(@_) }; - - sub uri_to_file { - my($self, $uri) = @_; - - # file:///path/to/file -> /path/to/file - # file://C:/path -> C:/path - if ($uri =~ s!file:/+!!) { - $uri = "/$uri" unless $uri =~ m![a-zA-Z]:!; - } - - return $uri; - } - - sub file_get { - my($self, $uri) = @_; - my $file = $self->uri_to_file($uri); - open my $fh, "<$file" or return; - join '', <$fh>; - } - - sub file_mirror { - my($self, $uri, $path) = @_; - my $file = $self->uri_to_file($uri); - - my $source_mtime = (stat $file)[9]; - - # Don't mirror a file that's already there (like the index) - return 1 if -e $path && (stat $path)[9] >= $source_mtime; - - File::Copy::copy($file, $path); - - utime $source_mtime, $source_mtime, $path; - } - - sub has_working_lwp { - my($self, $mirrors) = @_; - my $https = grep /^https:/, @$mirrors; - eval { - require LWP::UserAgent; # no fatpack - LWP::UserAgent->VERSION(5.802); - require LWP::Protocol::https if $https; # no fatpack - 1; - }; - } - - sub init_tools { - my $self = shift; - - return if $self->{initialized}++; - - if ($self->{make} = $self->which($Config{make})) { - $self->chat("You have make $self->{make}\n"); - } - - # use --no-lwp if they have a broken LWP, to upgrade LWP - if ($self->{try_lwp} && $self->has_working_lwp($self->{mirrors})) { - $self->chat("You have LWP $LWP::VERSION\n"); - my $ua = sub { - LWP::UserAgent->new( - parse_head => 0, - env_proxy => 1, - agent => $self->agent, - timeout => 30, - @_, - ); - }; - $self->{_backends}{get} = sub { - my $self = shift; - my $res = $ua->()->request(HTTP::Request->new(GET => $_[0])); - return unless $res->is_success; - return $res->decoded_content; - }; - $self->{_backends}{mirror} = sub { - my $self = shift; - my $res = $ua->()->mirror(@_); - die $res->content if $res->code == 501; - $res->code; - }; - } elsif ($self->{try_wget} and my $wget = $self->which('wget')) { - $self->chat("You have $wget\n"); - my @common = ( - '--user-agent', $self->agent, - '--retry-connrefused', - ($self->{verbose} ? () : ('-q')), - ); - $self->{_backends}{get} = sub { - my($self, $uri) = @_; - $self->safeexec( my $fh, $wget, $uri, @common, '-O', '-' ) or die "wget $uri: $!"; - local $/; - <$fh>; - }; - $self->{_backends}{mirror} = sub { - my($self, $uri, $path) = @_; - $self->safeexec( my $fh, $wget, $uri, @common, '-O', $path ) or die "wget $uri: $!"; - local $/; - <$fh>; - }; - } elsif ($self->{try_curl} and my $curl = $self->which('curl')) { - $self->chat("You have $curl\n"); - my @common = ( - '--location', - '--user-agent', $self->agent, - ($self->{verbose} ? () : '-s'), - ); - $self->{_backends}{get} = sub { - my($self, $uri) = @_; - $self->safeexec( my $fh, $curl, @common, $uri ) or die "curl $uri: $!"; - local $/; - <$fh>; - }; - $self->{_backends}{mirror} = sub { - my($self, $uri, $path) = @_; - $self->safeexec( my $fh, $curl, @common, $uri, '-#', '-o', $path ) or die "curl $uri: $!"; - local $/; - <$fh>; - }; - } else { - require HTTP::Tiny; - $self->chat("Falling back to HTTP::Tiny $HTTP::Tiny::VERSION\n"); - my %common = ( - agent => $self->agent, - ); - $self->{_backends}{get} = sub { - my $self = shift; - my $res = HTTP::Tiny->new(%common)->get($_[0]); - return unless $res->{success}; - return $res->{content}; - }; - $self->{_backends}{mirror} = sub { - my $self = shift; - my $res = HTTP::Tiny->new(%common)->mirror(@_); - return $res->{status}; - }; - } - - my $tar = $self->which('tar'); - my $tar_ver; - my $maybe_bad_tar = sub { WIN32 || BAD_TAR || (($tar_ver = `$tar --version 2>/dev/null`) =~ /GNU.*1\.13/i) }; - - if ($tar && !$maybe_bad_tar->()) { - chomp $tar_ver; - $self->chat("You have $tar: $tar_ver\n"); - $self->{_backends}{untar} = sub { - my($self, $tarfile) = @_; - - my $xf = ($self->{verbose} ? 'v' : '')."xf"; - my $ar = $tarfile =~ /bz2$/ ? 'j' : 'z'; - - my($root, @others) = `$tar ${ar}tf $tarfile` - or return undef; - - FILE: { - chomp $root; - $root =~ s!^\./!!; - $root =~ s{^(.+?)/.*$}{$1}; - - if (!length($root)) { - # archive had ./ as the first entry, so try again - $root = shift(@others); - redo FILE if $root; - } - } - - system "$tar $ar$xf $tarfile"; - return $root if -d $root; - - $self->diag_fail("Bad archive: $tarfile"); - return undef; - } - } elsif ( $tar - and my $gzip = $self->which('gzip') - and my $bzip2 = $self->which('bzip2')) { - $self->chat("You have $tar, $gzip and $bzip2\n"); - $self->{_backends}{untar} = sub { - my($self, $tarfile) = @_; - - my $x = "x" . ($self->{verbose} ? 'v' : '') . "f -"; - my $ar = $tarfile =~ /bz2$/ ? $bzip2 : $gzip; - - my($root, @others) = `$ar -dc $tarfile | $tar tf -` - or return undef; - - FILE: { - chomp $root; - $root =~ s!^\./!!; - $root =~ s{^(.+?)/.*$}{$1}; - - if (!length($root)) { - # archive had ./ as the first entry, so try again - $root = shift(@others); - redo FILE if $root; - } - } - - system "$ar -dc $tarfile | $tar $x"; - return $root if -d $root; - - $self->diag_fail("Bad archive: $tarfile"); - return undef; - } - } elsif (eval { require Archive::Tar }) { # uses too much memory! - $self->chat("Falling back to Archive::Tar $Archive::Tar::VERSION\n"); - $self->{_backends}{untar} = sub { - my $self = shift; - my $t = Archive::Tar->new($_[0]); - my($root, @others) = $t->list_files; - FILE: { - $root =~ s!^\./!!; - $root =~ s{^(.+?)/.*$}{$1}; - - if (!length($root)) { - # archive had ./ as the first entry, so try again - $root = shift(@others); - redo FILE if $root; - } - } - $t->extract; - return -d $root ? $root : undef; - }; - } else { - $self->{_backends}{untar} = sub { - die "Failed to extract $_[1] - You need to have tar or Archive::Tar installed.\n"; - }; - } - - if (my $unzip = $self->which('unzip')) { - $self->chat("You have $unzip\n"); - $self->{_backends}{unzip} = sub { - my($self, $zipfile) = @_; - - my $opt = $self->{verbose} ? '' : '-q'; - my(undef, $root, @others) = `$unzip -t $zipfile` - or return undef; - FILE: { - chomp $root; - if ($root !~ s{^\s+testing:\s+([^/]+)/.*?\s+OK$}{$1}) { - $root = shift(@others); - redo FILE if $root; - } - } - - system "$unzip $opt $zipfile"; - return $root if -d $root; - - $self->diag_fail("Bad archive: [$root] $zipfile"); - return undef; - } - } else { - $self->{_backends}{unzip} = sub { - eval { require Archive::Zip } - or die "Failed to extract $_[1] - You need to have unzip or Archive::Zip installed.\n"; - my($self, $file) = @_; - my $zip = Archive::Zip->new(); - my $status; - $status = $zip->read($file); - $self->diag_fail("Read of file[$file] failed") - if $status != Archive::Zip::AZ_OK(); - my @members = $zip->members(); - for my $member ( @members ) { - my $af = $member->fileName(); - next if ($af =~ m!^(/|\.\./)!); - $status = $member->extractToFileNamed( $af ); - $self->diag_fail("Extracting of file[$af] from zipfile[$file failed") - if $status != Archive::Zip::AZ_OK(); - } - - my ($root) = $zip->membersMatching( qr<^[^/]+/$> ); - $root &&= $root->fileName; - return -d $root ? $root : undef; - }; - } - } - - sub safeexec { - my $self = shift; - my $rdr = $_[0] ||= Symbol::gensym(); - - if (WIN32) { - my $cmd = $self->shell_quote(@_[1..$#_]); - return open( $rdr, "$cmd |" ); - } - - if ( my $pid = open( $rdr, '-|' ) ) { - return $pid; - } - elsif ( defined $pid ) { - exec( @_[ 1 .. $#_ ] ); - exit 1; - } - else { - return; - } - } - - sub mask_uri_passwords { - my($self, @strings) = @_; - s{ (https?://) ([^:/]+) : [^@/]+ @ }{$1$2:********@}gx for @strings; - return @strings; - } - - 1; -APP_CPANMINUS_SCRIPT - -$fatpacked{"CPAN/DistnameInfo.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_DISTNAMEINFO'; - - package CPAN::DistnameInfo; - - $VERSION = "0.12"; - use strict; - - sub distname_info { - my $file = shift or return; - - my ($dist, $version) = $file =~ /^ - ((?:[-+.]*(?:[A-Za-z0-9]+|(?<=\D)_|_(?=\D))* - (?: - [A-Za-z](?=[^A-Za-z]|$) - | - \d(?=-) - )(?<![._-][vV]) - )+)(.*) - $/xs or return ($file,undef,undef); - - if ($dist =~ /-undef\z/ and ! length $version) { - $dist =~ s/-undef\z//; - } - - # Remove potential -withoutworldwriteables suffix - $version =~ s/-withoutworldwriteables$//; - - if ($version =~ /^(-[Vv].*)-(\d.*)/) { - - # Catch names like Unicode-Collate-Standard-V3_1_1-0.1 - # where the V3_1_1 is part of the distname - $dist .= $1; - $version = $2; - } - - if ($version =~ /(.+_.*)-(\d.*)/) { - # Catch names like Task-Deprecations5_14-1.00.tar.gz where the 5_14 is - # part of the distname. However, names like libao-perl_0.03-1.tar.gz - # should still have 0.03-1 as their version. - $dist .= $1; - $version = $2; - } - - # Normalize the Dist.pm-1.23 convention which CGI.pm and - # a few others use. - $dist =~ s{\.pm$}{}; - - $version = $1 - if !length $version and $dist =~ s/-(\d+\w)$//; - - $version = $1 . $version - if $version =~ /^\d+$/ and $dist =~ s/-(\w+)$//; - - if ($version =~ /\d\.\d/) { - $version =~ s/^[-_.]+//; - } - else { - $version =~ s/^[-_]+//; - } - - my $dev; - if (length $version) { - if ($file =~ /^perl-?\d+\.(\d+)(?:\D(\d+))?(-(?:TRIAL|RC)\d+)?$/) { - $dev = 1 if (($1 > 6 and $1 & 1) or ($2 and $2 >= 50)) or $3; - } - elsif ($version =~ /\d\D\d+_\d/ or $version =~ /-TRIAL/) { - $dev = 1; - } - } - else { - $version = undef; - } - - ($dist, $version, $dev); - } - - sub new { - my $class = shift; - my $distfile = shift; - - $distfile =~ s,//+,/,g; - - my %info = ( pathname => $distfile ); - - ($info{filename} = $distfile) =~ s,^(((.*?/)?authors/)?id/)?([A-Z])/(\4[A-Z])/(\5[-A-Z0-9]*)/,, - and $info{cpanid} = $6; - - if ($distfile =~ m,([^/]+)\.(tar\.(?:g?z|bz2)|zip|tgz)$,i) { # support more ? - $info{distvname} = $1; - $info{extension} = $2; - } - - @info{qw(dist version beta)} = distname_info($info{distvname}); - $info{maturity} = delete $info{beta} ? 'developer' : 'released'; - - return bless \%info, $class; - } - - sub dist { shift->{dist} } - sub version { shift->{version} } - sub maturity { shift->{maturity} } - sub filename { shift->{filename} } - sub cpanid { shift->{cpanid} } - sub distvname { shift->{distvname} } - sub extension { shift->{extension} } - sub pathname { shift->{pathname} } - - sub properties { %{ $_[0] } } - - 1; - - __END__ - - =head1 NAME - - CPAN::DistnameInfo - Extract distribution name and version from a distribution filename - - =head1 SYNOPSIS - - my $pathname = "authors/id/G/GB/GBARR/CPAN-DistnameInfo-0.02.tar.gz"; - - my $d = CPAN::DistnameInfo->new($pathname); - - my $dist = $d->dist; # "CPAN-DistnameInfo" - my $version = $d->version; # "0.02" - my $maturity = $d->maturity; # "released" - my $filename = $d->filename; # "CPAN-DistnameInfo-0.02.tar.gz" - my $cpanid = $d->cpanid; # "GBARR" - my $distvname = $d->distvname; # "CPAN-DistnameInfo-0.02" - my $extension = $d->extension; # "tar.gz" - my $pathname = $d->pathname; # "authors/id/G/GB/GBARR/..." - - my %prop = $d->properties; - - =head1 DESCRIPTION - - Many online services that are centered around CPAN attempt to - associate multiple uploads by extracting a distribution name from - the filename of the upload. For most distributions this is easy as - they have used ExtUtils::MakeMaker or Module::Build to create the - distribution, which results in a uniform name. But sadly not all - uploads are created in this way. - - C<CPAN::DistnameInfo> uses heuristics that have been learnt by - L<http://search.cpan.org/> to extract the distribution name and - version from filenames and also report if the version is to be - treated as a developer release - - The constructor takes a single pathname, returning an object with the following methods - - =over - - =item cpanid - - If the path given looked like a CPAN authors directory path, then this will be the - the CPAN id of the author. - - =item dist - - The name of the distribution - - =item distvname - - The file name with any suffix and leading directory names removed - - =item filename - - If the path given looked like a CPAN authors directory path, then this will be the - path to the file relative to the detected CPAN author directory. Otherwise it is the path - that was passed in. - - =item maturity - - The maturity of the distribution. This will be either C<released> or C<developer> - - =item extension - - The extension of the distribution, often used to denote the archive type (e.g. 'tar.gz') - - =item pathname - - The pathname that was passed to the constructor when creating the object. - - =item properties - - This will return a list of key-value pairs, suitable for assigning to a hash, - for the known properties. - - =item version - - The extracted version - - =back - - =head1 AUTHOR - - Graham Barr <gbarr@pobox.com> - - =head1 COPYRIGHT - - Copyright (c) 2003 Graham Barr. All rights reserved. This program is - free software; you can redistribute it and/or modify it under the same - terms as Perl itself. - - =cut - -CPAN_DISTNAMEINFO - -$fatpacked{"CPAN/Meta.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META'; - use 5.006; - use strict; - use warnings; - package CPAN::Meta; - - our $VERSION = '2.150005'; - - #pod =head1 SYNOPSIS - #pod - #pod use v5.10; - #pod use strict; - #pod use warnings; - #pod use CPAN::Meta; - #pod use Module::Load; - #pod - #pod my $meta = CPAN::Meta->load_file('META.json'); - #pod - #pod printf "testing requirements for %s version %s\n", - #pod $meta->name, - #pod $meta->version; - #pod - #pod my $prereqs = $meta->effective_prereqs; - #pod - #pod for my $phase ( qw/configure runtime build test/ ) { - #pod say "Requirements for $phase:"; - #pod my $reqs = $prereqs->requirements_for($phase, "requires"); - #pod for my $module ( sort $reqs->required_modules ) { - #pod my $status; - #pod if ( eval { load $module unless $module eq 'perl'; 1 } ) { - #pod my $version = $module eq 'perl' ? $] : $module->VERSION; - #pod $status = $reqs->accepts_module($module, $version) - #pod ? "$version ok" : "$version not ok"; - #pod } else { - #pod $status = "missing" - #pod }; - #pod say " $module ($status)"; - #pod } - #pod } - #pod - #pod =head1 DESCRIPTION - #pod - #pod Software distributions released to the CPAN include a F<META.json> or, for - #pod older distributions, F<META.yml>, which describes the distribution, its - #pod contents, and the requirements for building and installing the distribution. - #pod The data structure stored in the F<META.json> file is described in - #pod L<CPAN::Meta::Spec>. - #pod - #pod CPAN::Meta provides a simple class to represent this distribution metadata (or - #pod I<distmeta>), along with some helpful methods for interrogating that data. - #pod - #pod The documentation below is only for the methods of the CPAN::Meta object. For - #pod information on the meaning of individual fields, consult the spec. - #pod - #pod =cut - - use Carp qw(carp croak); - use CPAN::Meta::Feature; - use CPAN::Meta::Prereqs; - use CPAN::Meta::Converter; - use CPAN::Meta::Validator; - use Parse::CPAN::Meta 1.4414 (); - - BEGIN { *_dclone = \&CPAN::Meta::Converter::_dclone } - - #pod =head1 STRING DATA - #pod - #pod The following methods return a single value, which is the value for the - #pod corresponding entry in the distmeta structure. Values should be either undef - #pod or strings. - #pod - #pod =for :list - #pod * abstract - #pod * description - #pod * dynamic_config - #pod * generated_by - #pod * name - #pod * release_status - #pod * version - #pod - #pod =cut - - BEGIN { - my @STRING_READERS = qw( - abstract - description - dynamic_config - generated_by - name - release_status - version - ); - - no strict 'refs'; - for my $attr (@STRING_READERS) { - *$attr = sub { $_[0]{ $attr } }; - } - } - - #pod =head1 LIST DATA - #pod - #pod These methods return lists of string values, which might be represented in the - #pod distmeta structure as arrayrefs or scalars: - #pod - #pod =for :list - #pod * authors - #pod * keywords - #pod * licenses - #pod - #pod The C<authors> and C<licenses> methods may also be called as C<author> and - #pod C<license>, respectively, to match the field name in the distmeta structure. - #pod - #pod =cut - - BEGIN { - my @LIST_READERS = qw( - author - keywords - license - ); - - no strict 'refs'; - for my $attr (@LIST_READERS) { - *$attr = sub { - my $value = $_[0]{ $attr }; - croak "$attr must be called in list context" - unless wantarray; - return @{ _dclone($value) } if ref $value; - return $value; - }; - } - } - - sub authors { $_[0]->author } - sub licenses { $_[0]->license } - - #pod =head1 MAP DATA - #pod - #pod These readers return hashrefs of arbitrary unblessed data structures, each - #pod described more fully in the specification: - #pod - #pod =for :list - #pod * meta_spec - #pod * resources - #pod * provides - #pod * no_index - #pod * prereqs - #pod * optional_features - #pod - #pod =cut - - BEGIN { - my @MAP_READERS = qw( - meta-spec - resources - provides - no_index - - prereqs - optional_features - ); - - no strict 'refs'; - for my $attr (@MAP_READERS) { - (my $subname = $attr) =~ s/-/_/; - *$subname = sub { - my $value = $_[0]{ $attr }; - return _dclone($value) if $value; - return {}; - }; - } - } - - #pod =head1 CUSTOM DATA - #pod - #pod A list of custom keys are available from the C<custom_keys> method and - #pod particular keys may be retrieved with the C<custom> method. - #pod - #pod say $meta->custom($_) for $meta->custom_keys; - #pod - #pod If a custom key refers to a data structure, a deep clone is returned. - #pod - #pod =cut - - sub custom_keys { - return grep { /^x_/i } keys %{$_[0]}; - } - - sub custom { - my ($self, $attr) = @_; - my $value = $self->{$attr}; - return _dclone($value) if ref $value; - return $value; - } - - #pod =method new - #pod - #pod my $meta = CPAN::Meta->new($distmeta_struct, \%options); - #pod - #pod Returns a valid CPAN::Meta object or dies if the supplied metadata hash - #pod reference fails to validate. Older-format metadata will be up-converted to - #pod version 2 if they validate against the original stated specification. - #pod - #pod It takes an optional hashref of options. Valid options include: - #pod - #pod =over - #pod - #pod =item * - #pod - #pod lazy_validation -- if true, new will attempt to convert the given metadata - #pod to version 2 before attempting to validate it. This means than any - #pod fixable errors will be handled by CPAN::Meta::Converter before validation. - #pod (Note that this might result in invalid optional data being silently - #pod dropped.) The default is false. - #pod - #pod =back - #pod - #pod =cut - - sub _new { - my ($class, $struct, $options) = @_; - my $self; - - if ( $options->{lazy_validation} ) { - # try to convert to a valid structure; if succeeds, then return it - my $cmc = CPAN::Meta::Converter->new( $struct ); - $self = $cmc->convert( version => 2 ); # valid or dies - return bless $self, $class; - } - else { - # validate original struct - my $cmv = CPAN::Meta::Validator->new( $struct ); - unless ( $cmv->is_valid) { - die "Invalid metadata structure. Errors: " - . join(", ", $cmv->errors) . "\n"; - } - } - - # up-convert older spec versions - my $version = $struct->{'meta-spec'}{version} || '1.0'; - if ( $version == 2 ) { - $self = $struct; - } - else { - my $cmc = CPAN::Meta::Converter->new( $struct ); - $self = $cmc->convert( version => 2 ); - } - - return bless $self, $class; - } - - sub new { - my ($class, $struct, $options) = @_; - my $self = eval { $class->_new($struct, $options) }; - croak($@) if $@; - return $self; - } - - #pod =method create - #pod - #pod my $meta = CPAN::Meta->create($distmeta_struct, \%options); - #pod - #pod This is same as C<new()>, except that C<generated_by> and C<meta-spec> fields - #pod will be generated if not provided. This means the metadata structure is - #pod assumed to otherwise follow the latest L<CPAN::Meta::Spec>. - #pod - #pod =cut - - sub create { - my ($class, $struct, $options) = @_; - my $version = __PACKAGE__->VERSION || 2; - $struct->{generated_by} ||= __PACKAGE__ . " version $version" ; - $struct->{'meta-spec'}{version} ||= int($version); - my $self = eval { $class->_new($struct, $options) }; - croak ($@) if $@; - return $self; - } - - #pod =method load_file - #pod - #pod my $meta = CPAN::Meta->load_file($distmeta_file, \%options); - #pod - #pod Given a pathname to a file containing metadata, this deserializes the file - #pod according to its file suffix and constructs a new C<CPAN::Meta> object, just - #pod like C<new()>. It will die if the deserialized version fails to validate - #pod against its stated specification version. - #pod - #pod It takes the same options as C<new()> but C<lazy_validation> defaults to - #pod true. - #pod - #pod =cut - - sub load_file { - my ($class, $file, $options) = @_; - $options->{lazy_validation} = 1 unless exists $options->{lazy_validation}; - - croak "load_file() requires a valid, readable filename" - unless -r $file; - - my $self; - eval { - my $struct = Parse::CPAN::Meta->load_file( $file ); - $self = $class->_new($struct, $options); - }; - croak($@) if $@; - return $self; - } - - #pod =method load_yaml_string - #pod - #pod my $meta = CPAN::Meta->load_yaml_string($yaml, \%options); - #pod - #pod This method returns a new CPAN::Meta object using the first document in the - #pod given YAML string. In other respects it is identical to C<load_file()>. - #pod - #pod =cut - - sub load_yaml_string { - my ($class, $yaml, $options) = @_; - $options->{lazy_validation} = 1 unless exists $options->{lazy_validation}; - - my $self; - eval { - my ($struct) = Parse::CPAN::Meta->load_yaml_string( $yaml ); - $self = $class->_new($struct, $options); - }; - croak($@) if $@; - return $self; - } - - #pod =method load_json_string - #pod - #pod my $meta = CPAN::Meta->load_json_string($json, \%options); - #pod - #pod This method returns a new CPAN::Meta object using the structure represented by - #pod the given JSON string. In other respects it is identical to C<load_file()>. - #pod - #pod =cut - - sub load_json_string { - my ($class, $json, $options) = @_; - $options->{lazy_validation} = 1 unless exists $options->{lazy_validation}; - - my $self; - eval { - my $struct = Parse::CPAN::Meta->load_json_string( $json ); - $self = $class->_new($struct, $options); - }; - croak($@) if $@; - return $self; - } - - #pod =method load_string - #pod - #pod my $meta = CPAN::Meta->load_string($string, \%options); - #pod - #pod If you don't know if a string contains YAML or JSON, this method will use - #pod L<Parse::CPAN::Meta> to guess. In other respects it is identical to - #pod C<load_file()>. - #pod - #pod =cut - - sub load_string { - my ($class, $string, $options) = @_; - $options->{lazy_validation} = 1 unless exists $options->{lazy_validation}; - - my $self; - eval { - my $struct = Parse::CPAN::Meta->load_string( $string ); - $self = $class->_new($struct, $options); - }; - croak($@) if $@; - return $self; - } - - #pod =method save - #pod - #pod $meta->save($distmeta_file, \%options); - #pod - #pod Serializes the object as JSON and writes it to the given file. The only valid - #pod option is C<version>, which defaults to '2'. On Perl 5.8.1 or later, the file - #pod is saved with UTF-8 encoding. - #pod - #pod For C<version> 2 (or higher), the filename should end in '.json'. L<JSON::PP> - #pod is the default JSON backend. Using another JSON backend requires L<JSON> 2.5 or - #pod later and you must set the C<$ENV{PERL_JSON_BACKEND}> to a supported alternate - #pod backend like L<JSON::XS>. - #pod - #pod For C<version> less than 2, the filename should end in '.yml'. - #pod L<CPAN::Meta::Converter> is used to generate an older metadata structure, which - #pod is serialized to YAML. CPAN::Meta::YAML is the default YAML backend. You may - #pod set the C<$ENV{PERL_YAML_BACKEND}> to a supported alternative backend, though - #pod this is not recommended due to subtle incompatibilities between YAML parsers on - #pod CPAN. - #pod - #pod =cut - - sub save { - my ($self, $file, $options) = @_; - - my $version = $options->{version} || '2'; - my $layer = $] ge '5.008001' ? ':utf8' : ''; - - if ( $version ge '2' ) { - carp "'$file' should end in '.json'" - unless $file =~ m{\.json$}; - } - else { - carp "'$file' should end in '.yml'" - unless $file =~ m{\.yml$}; - } - - my $data = $self->as_string( $options ); - open my $fh, ">$layer", $file - or die "Error opening '$file' for writing: $!\n"; - - print {$fh} $data; - close $fh - or die "Error closing '$file': $!\n"; - - return 1; - } - - #pod =method meta_spec_version - #pod - #pod This method returns the version part of the C<meta_spec> entry in the distmeta - #pod structure. It is equivalent to: - #pod - #pod $meta->meta_spec->{version}; - #pod - #pod =cut - - sub meta_spec_version { - my ($self) = @_; - return $self->meta_spec->{version}; - } - - #pod =method effective_prereqs - #pod - #pod my $prereqs = $meta->effective_prereqs; - #pod - #pod my $prereqs = $meta->effective_prereqs( \@feature_identifiers ); - #pod - #pod This method returns a L<CPAN::Meta::Prereqs> object describing all the - #pod prereqs for the distribution. If an arrayref of feature identifiers is given, - #pod the prereqs for the identified features are merged together with the - #pod distribution's core prereqs before the CPAN::Meta::Prereqs object is returned. - #pod - #pod =cut - - sub effective_prereqs { - my ($self, $features) = @_; - $features ||= []; - - my $prereq = CPAN::Meta::Prereqs->new($self->prereqs); - - return $prereq unless @$features; - - my @other = map {; $self->feature($_)->prereqs } @$features; - - return $prereq->with_merged_prereqs(\@other); - } - - #pod =method should_index_file - #pod - #pod ... if $meta->should_index_file( $filename ); - #pod - #pod This method returns true if the given file should be indexed. It decides this - #pod by checking the C<file> and C<directory> keys in the C<no_index> property of - #pod the distmeta structure. Note that neither the version format nor - #pod C<release_status> are considered. - #pod - #pod C<$filename> should be given in unix format. - #pod - #pod =cut - - sub should_index_file { - my ($self, $filename) = @_; - - for my $no_index_file (@{ $self->no_index->{file} || [] }) { - return if $filename eq $no_index_file; - } - - for my $no_index_dir (@{ $self->no_index->{directory} }) { - $no_index_dir =~ s{$}{/} unless $no_index_dir =~ m{/\z}; - return if index($filename, $no_index_dir) == 0; - } - - return 1; - } - - #pod =method should_index_package - #pod - #pod ... if $meta->should_index_package( $package ); - #pod - #pod This method returns true if the given package should be indexed. It decides - #pod this by checking the C<package> and C<namespace> keys in the C<no_index> - #pod property of the distmeta structure. Note that neither the version format nor - #pod C<release_status> are considered. - #pod - #pod =cut - - sub should_index_package { - my ($self, $package) = @_; - - for my $no_index_pkg (@{ $self->no_index->{package} || [] }) { - return if $package eq $no_index_pkg; - } - - for my $no_index_ns (@{ $self->no_index->{namespace} }) { - return if index($package, "${no_index_ns}::") == 0; - } - - return 1; - } - - #pod =method features - #pod - #pod my @feature_objects = $meta->features; - #pod - #pod This method returns a list of L<CPAN::Meta::Feature> objects, one for each - #pod optional feature described by the distribution's metadata. - #pod - #pod =cut - - sub features { - my ($self) = @_; - - my $opt_f = $self->optional_features; - my @features = map {; CPAN::Meta::Feature->new($_ => $opt_f->{ $_ }) } - keys %$opt_f; - - return @features; - } - - #pod =method feature - #pod - #pod my $feature_object = $meta->feature( $identifier ); - #pod - #pod This method returns a L<CPAN::Meta::Feature> object for the optional feature - #pod with the given identifier. If no feature with that identifier exists, an - #pod exception will be raised. - #pod - #pod =cut - - sub feature { - my ($self, $ident) = @_; - - croak "no feature named $ident" - unless my $f = $self->optional_features->{ $ident }; - - return CPAN::Meta::Feature->new($ident, $f); - } - - #pod =method as_struct - #pod - #pod my $copy = $meta->as_struct( \%options ); - #pod - #pod This method returns a deep copy of the object's metadata as an unblessed hash - #pod reference. It takes an optional hashref of options. If the hashref contains - #pod a C<version> argument, the copied metadata will be converted to the version - #pod of the specification and returned. For example: - #pod - #pod my $old_spec = $meta->as_struct( {version => "1.4"} ); - #pod - #pod =cut - - sub as_struct { - my ($self, $options) = @_; - my $struct = _dclone($self); - if ( $options->{version} ) { - my $cmc = CPAN::Meta::Converter->new( $struct ); - $struct = $cmc->convert( version => $options->{version} ); - } - return $struct; - } - - #pod =method as_string - #pod - #pod my $string = $meta->as_string( \%options ); - #pod - #pod This method returns a serialized copy of the object's metadata as a character - #pod string. (The strings are B<not> UTF-8 encoded.) It takes an optional hashref - #pod of options. If the hashref contains a C<version> argument, the copied metadata - #pod will be converted to the version of the specification and returned. For - #pod example: - #pod - #pod my $string = $meta->as_string( {version => "1.4"} ); - #pod - #pod For C<version> greater than or equal to 2, the string will be serialized as - #pod JSON. For C<version> less than 2, the string will be serialized as YAML. In - #pod both cases, the same rules are followed as in the C<save()> method for choosing - #pod a serialization backend. - #pod - #pod The serialized structure will include a C<x_serialization_backend> entry giving - #pod the package and version used to serialize. Any existing key in the given - #pod C<$meta> object will be clobbered. - #pod - #pod =cut - - sub as_string { - my ($self, $options) = @_; - - my $version = $options->{version} || '2'; - - my $struct; - if ( $self->meta_spec_version ne $version ) { - my $cmc = CPAN::Meta::Converter->new( $self->as_struct ); - $struct = $cmc->convert( version => $version ); - } - else { - $struct = $self->as_struct; - } - - my ($data, $backend); - if ( $version ge '2' ) { - $backend = Parse::CPAN::Meta->json_backend(); - local $struct->{x_serialization_backend} = sprintf '%s version %s', - $backend, $backend->VERSION; - $data = $backend->new->pretty->canonical->encode($struct); - } - else { - $backend = Parse::CPAN::Meta->yaml_backend(); - local $struct->{x_serialization_backend} = sprintf '%s version %s', - $backend, $backend->VERSION; - $data = eval { no strict 'refs'; &{"$backend\::Dump"}($struct) }; - if ( $@ ) { - croak $backend->can('errstr') ? $backend->errstr : $@ - } - } - - return $data; - } - - # Used by JSON::PP, etc. for "convert_blessed" - sub TO_JSON { - return { %{ $_[0] } }; - } - - 1; - - # ABSTRACT: the distribution metadata for a CPAN dist - - =pod - - =encoding UTF-8 - - =head1 NAME - - CPAN::Meta - the distribution metadata for a CPAN dist - - =head1 VERSION - - version 2.150005 - - =head1 SYNOPSIS - - use v5.10; - use strict; - use warnings; - use CPAN::Meta; - use Module::Load; - - my $meta = CPAN::Meta->load_file('META.json'); - - printf "testing requirements for %s version %s\n", - $meta->name, - $meta->version; - - my $prereqs = $meta->effective_prereqs; - - for my $phase ( qw/configure runtime build test/ ) { - say "Requirements for $phase:"; - my $reqs = $prereqs->requirements_for($phase, "requires"); - for my $module ( sort $reqs->required_modules ) { - my $status; - if ( eval { load $module unless $module eq 'perl'; 1 } ) { - my $version = $module eq 'perl' ? $] : $module->VERSION; - $status = $reqs->accepts_module($module, $version) - ? "$version ok" : "$version not ok"; - } else { - $status = "missing" - }; - say " $module ($status)"; - } - } - - =head1 DESCRIPTION - - Software distributions released to the CPAN include a F<META.json> or, for - older distributions, F<META.yml>, which describes the distribution, its - contents, and the requirements for building and installing the distribution. - The data structure stored in the F<META.json> file is described in - L<CPAN::Meta::Spec>. - - CPAN::Meta provides a simple class to represent this distribution metadata (or - I<distmeta>), along with some helpful methods for interrogating that data. - - The documentation below is only for the methods of the CPAN::Meta object. For - information on the meaning of individual fields, consult the spec. - - =head1 METHODS - - =head2 new - - my $meta = CPAN::Meta->new($distmeta_struct, \%options); - - Returns a valid CPAN::Meta object or dies if the supplied metadata hash - reference fails to validate. Older-format metadata will be up-converted to - version 2 if they validate against the original stated specification. - - It takes an optional hashref of options. Valid options include: - - =over - - =item * - - lazy_validation -- if true, new will attempt to convert the given metadata - to version 2 before attempting to validate it. This means than any - fixable errors will be handled by CPAN::Meta::Converter before validation. - (Note that this might result in invalid optional data being silently - dropped.) The default is false. - - =back - - =head2 create - - my $meta = CPAN::Meta->create($distmeta_struct, \%options); - - This is same as C<new()>, except that C<generated_by> and C<meta-spec> fields - will be generated if not provided. This means the metadata structure is - assumed to otherwise follow the latest L<CPAN::Meta::Spec>. - - =head2 load_file - - my $meta = CPAN::Meta->load_file($distmeta_file, \%options); - - Given a pathname to a file containing metadata, this deserializes the file - according to its file suffix and constructs a new C<CPAN::Meta> object, just - like C<new()>. It will die if the deserialized version fails to validate - against its stated specification version. - - It takes the same options as C<new()> but C<lazy_validation> defaults to - true. - - =head2 load_yaml_string - - my $meta = CPAN::Meta->load_yaml_string($yaml, \%options); - - This method returns a new CPAN::Meta object using the first document in the - given YAML string. In other respects it is identical to C<load_file()>. - - =head2 load_json_string - - my $meta = CPAN::Meta->load_json_string($json, \%options); - - This method returns a new CPAN::Meta object using the structure represented by - the given JSON string. In other respects it is identical to C<load_file()>. - - =head2 load_string - - my $meta = CPAN::Meta->load_string($string, \%options); - - If you don't know if a string contains YAML or JSON, this method will use - L<Parse::CPAN::Meta> to guess. In other respects it is identical to - C<load_file()>. - - =head2 save - - $meta->save($distmeta_file, \%options); - - Serializes the object as JSON and writes it to the given file. The only valid - option is C<version>, which defaults to '2'. On Perl 5.8.1 or later, the file - is saved with UTF-8 encoding. - - For C<version> 2 (or higher), the filename should end in '.json'. L<JSON::PP> - is the default JSON backend. Using another JSON backend requires L<JSON> 2.5 or - later and you must set the C<$ENV{PERL_JSON_BACKEND}> to a supported alternate - backend like L<JSON::XS>. - - For C<version> less than 2, the filename should end in '.yml'. - L<CPAN::Meta::Converter> is used to generate an older metadata structure, which - is serialized to YAML. CPAN::Meta::YAML is the default YAML backend. You may - set the C<$ENV{PERL_YAML_BACKEND}> to a supported alternative backend, though - this is not recommended due to subtle incompatibilities between YAML parsers on - CPAN. - - =head2 meta_spec_version - - This method returns the version part of the C<meta_spec> entry in the distmeta - structure. It is equivalent to: - - $meta->meta_spec->{version}; - - =head2 effective_prereqs - - my $prereqs = $meta->effective_prereqs; - - my $prereqs = $meta->effective_prereqs( \@feature_identifiers ); - - This method returns a L<CPAN::Meta::Prereqs> object describing all the - prereqs for the distribution. If an arrayref of feature identifiers is given, - the prereqs for the identified features are merged together with the - distribution's core prereqs before the CPAN::Meta::Prereqs object is returned. - - =head2 should_index_file - - ... if $meta->should_index_file( $filename ); - - This method returns true if the given file should be indexed. It decides this - by checking the C<file> and C<directory> keys in the C<no_index> property of - the distmeta structure. Note that neither the version format nor - C<release_status> are considered. - - C<$filename> should be given in unix format. - - =head2 should_index_package - - ... if $meta->should_index_package( $package ); - - This method returns true if the given package should be indexed. It decides - this by checking the C<package> and C<namespace> keys in the C<no_index> - property of the distmeta structure. Note that neither the version format nor - C<release_status> are considered. - - =head2 features - - my @feature_objects = $meta->features; - - This method returns a list of L<CPAN::Meta::Feature> objects, one for each - optional feature described by the distribution's metadata. - - =head2 feature - - my $feature_object = $meta->feature( $identifier ); - - This method returns a L<CPAN::Meta::Feature> object for the optional feature - with the given identifier. If no feature with that identifier exists, an - exception will be raised. - - =head2 as_struct - - my $copy = $meta->as_struct( \%options ); - - This method returns a deep copy of the object's metadata as an unblessed hash - reference. It takes an optional hashref of options. If the hashref contains - a C<version> argument, the copied metadata will be converted to the version - of the specification and returned. For example: - - my $old_spec = $meta->as_struct( {version => "1.4"} ); - - =head2 as_string - - my $string = $meta->as_string( \%options ); - - This method returns a serialized copy of the object's metadata as a character - string. (The strings are B<not> UTF-8 encoded.) It takes an optional hashref - of options. If the hashref contains a C<version> argument, the copied metadata - will be converted to the version of the specification and returned. For - example: - - my $string = $meta->as_string( {version => "1.4"} ); - - For C<version> greater than or equal to 2, the string will be serialized as - JSON. For C<version> less than 2, the string will be serialized as YAML. In - both cases, the same rules are followed as in the C<save()> method for choosing - a serialization backend. - - The serialized structure will include a C<x_serialization_backend> entry giving - the package and version used to serialize. Any existing key in the given - C<$meta> object will be clobbered. - - =head1 STRING DATA - - The following methods return a single value, which is the value for the - corresponding entry in the distmeta structure. Values should be either undef - or strings. - - =over 4 - - =item * - - abstract - - =item * - - description - - =item * - - dynamic_config - - =item * - - generated_by - - =item * - - name - - =item * - - release_status - - =item * - - version - - =back - - =head1 LIST DATA - - These methods return lists of string values, which might be represented in the - distmeta structure as arrayrefs or scalars: - - =over 4 - - =item * - - authors - - =item * - - keywords - - =item * - - licenses - - =back - - The C<authors> and C<licenses> methods may also be called as C<author> and - C<license>, respectively, to match the field name in the distmeta structure. - - =head1 MAP DATA - - These readers return hashrefs of arbitrary unblessed data structures, each - described more fully in the specification: - - =over 4 - - =item * - - meta_spec - - =item * - - resources - - =item * - - provides - - =item * - - no_index - - =item * - - prereqs - - =item * - - optional_features - - =back - - =head1 CUSTOM DATA - - A list of custom keys are available from the C<custom_keys> method and - particular keys may be retrieved with the C<custom> method. - - say $meta->custom($_) for $meta->custom_keys; - - If a custom key refers to a data structure, a deep clone is returned. - - =for Pod::Coverage TO_JSON abstract author authors custom custom_keys description dynamic_config - generated_by keywords license licenses meta_spec name no_index - optional_features prereqs provides release_status resources version - - =head1 BUGS - - Please report any bugs or feature using the CPAN Request Tracker. - Bugs can be submitted through the web interface at - L<http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Meta> - - When submitting a bug or request, please include a test-file or a patch to an - existing test-file that illustrates the bug or desired feature. - - =head1 SEE ALSO - - =over 4 - - =item * - - L<CPAN::Meta::Converter> - - =item * - - L<CPAN::Meta::Validator> - - =back - - =for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan - - =head1 SUPPORT - - =head2 Bugs / Feature Requests - - Please report any bugs or feature requests through the issue tracker - at L<https://github.com/Perl-Toolchain-Gang/CPAN-Meta/issues>. - You will be notified automatically of any progress on your issue. - - =head2 Source Code - - This is open source software. The code repository is available for - public review and contribution under the terms of the license. - - L<https://github.com/Perl-Toolchain-Gang/CPAN-Meta> - - git clone https://github.com/Perl-Toolchain-Gang/CPAN-Meta.git - - =head1 AUTHORS - - =over 4 - - =item * - - David Golden <dagolden@cpan.org> - - =item * - - Ricardo Signes <rjbs@cpan.org> - - =back - - =head1 CONTRIBUTORS - - =for stopwords Ansgar Burchardt Avar Arnfjord Bjarmason Christopher J. Madsen Chuck Adams Cory G Watson Damyan Ivanov Eric Wilhelm Graham Knop Gregor Hermann Karen Etheridge Kenichi Ishigaki Ken Williams Lars Dieckow Leon Timmermans majensen Mark Fowler Matt S Trout Michael G. Schwern mohawk2 moznion Niko Tyni Olaf Alders Olivier Mengué Randy Sims Tomohiro Hosaka - - =over 4 - - =item * - - Ansgar Burchardt <ansgar@cpan.org> - - =item * - - Avar Arnfjord Bjarmason <avar@cpan.org> - - =item * - - Christopher J. Madsen <cjm@cpan.org> - - =item * - - Chuck Adams <cja987@gmail.com> - - =item * - - Cory G Watson <gphat@cpan.org> - - =item * - - Damyan Ivanov <dam@cpan.org> - - =item * - - Eric Wilhelm <ewilhelm@cpan.org> - - =item * - - Graham Knop <haarg@haarg.org> - - =item * - - Gregor Hermann <gregoa@debian.org> - - =item * - - Karen Etheridge <ether@cpan.org> - - =item * - - Kenichi Ishigaki <ishigaki@cpan.org> - - =item * - - Ken Williams <kwilliams@cpan.org> - - =item * - - Lars Dieckow <daxim@cpan.org> - - =item * - - Leon Timmermans <leont@cpan.org> - - =item * - - majensen <maj@fortinbras.us> - - =item * - - Mark Fowler <markf@cpan.org> - - =item * - - Matt S Trout <mst@shadowcat.co.uk> - - =item * - - Michael G. Schwern <mschwern@cpan.org> - - =item * - - mohawk2 <mohawk2@users.noreply.github.com> - - =item * - - moznion <moznion@gmail.com> - - =item * - - Niko Tyni <ntyni@debian.org> - - =item * - - Olaf Alders <olaf@wundersolutions.com> - - =item * - - Olivier Mengué <dolmen@cpan.org> - - =item * - - Randy Sims <randys@thepierianspring.org> - - =item * - - Tomohiro Hosaka <bokutin@bokut.in> - - =back - - =head1 COPYRIGHT AND LICENSE - - This software is copyright (c) 2010 by David Golden and Ricardo Signes. - - This is free software; you can redistribute it and/or modify it under - the same terms as the Perl 5 programming language system itself. - - =cut - - __END__ - - - # vim: ts=2 sts=2 sw=2 et : -CPAN_META - -$fatpacked{"CPAN/Meta/Check.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_CHECK'; - package CPAN::Meta::Check; - $CPAN::Meta::Check::VERSION = '0.012'; - use strict; - use warnings; - - use base 'Exporter'; - our @EXPORT = qw//; - our @EXPORT_OK = qw/check_requirements requirements_for verify_dependencies/; - our %EXPORT_TAGS = (all => [ @EXPORT, @EXPORT_OK ] ); - - use CPAN::Meta::Prereqs '2.132830'; - use CPAN::Meta::Requirements 2.121; - use Module::Metadata 1.000023; - - sub _check_dep { - my ($reqs, $module, $dirs) = @_; - - $module eq 'perl' and return ($reqs->accepts_module($module, $]) ? () : sprintf "Your Perl (%s) is not in the range '%s'", $], $reqs->requirements_for_module($module)); - - my $metadata = Module::Metadata->new_from_module($module, inc => $dirs); - return "Module '$module' is not installed" if not defined $metadata; - my $version = eval { $metadata->version }; - return "Missing version info for module '$module'" if $reqs->requirements_for_module($module) and not $version; - return sprintf 'Installed version (%s) of %s is not in range \'%s\'', $version, $module, $reqs->requirements_for_module($module) if not $reqs->accepts_module($module, $version || 0); - return; - } - - sub _check_conflict { - my ($reqs, $module, $dirs) = @_; - my $metadata = Module::Metadata->new_from_module($module, inc => $dirs); - return if not defined $metadata; - my $version = eval { $metadata->version }; - return "Missing version info for module '$module'" if not $version; - return sprintf 'Installed version (%s) of %s is in range \'%s\'', $version, $module, $reqs->requirements_for_module($module) if $reqs->accepts_module($module, $version); - return; - } - - sub requirements_for { - my ($meta, $phases, $type) = @_; - my $prereqs = ref($meta) eq 'CPAN::Meta' ? $meta->effective_prereqs : $meta; - return $prereqs->merged_requirements(ref($phases) ? $phases : [ $phases ], [ $type ]); - } - - sub check_requirements { - my ($reqs, $type, $dirs) = @_; - - return +{ - map { - $_ => $type ne 'conflicts' - ? scalar _check_dep($reqs, $_, $dirs) - : scalar _check_conflict($reqs, $_, $dirs) - } $reqs->required_modules - }; - } - - sub verify_dependencies { - my ($meta, $phases, $type, $dirs) = @_; - my $reqs = requirements_for($meta, $phases, $type); - my $issues = check_requirements($reqs, $type, $dirs); - return grep { defined } values %{ $issues }; - } - - 1; - - #ABSTRACT: Verify requirements in a CPAN::Meta object - - __END__ - - =pod - - =encoding UTF-8 - - =head1 NAME - - CPAN::Meta::Check - Verify requirements in a CPAN::Meta object - - =head1 VERSION - - version 0.012 - - =head1 SYNOPSIS - - warn "$_\n" for verify_dependencies($meta, [qw/runtime build test/], 'requires'); - - =head1 DESCRIPTION - - This module verifies if requirements described in a CPAN::Meta object are present. - - =head1 FUNCTIONS - - =head2 check_requirements($reqs, $type, $incdirs) - - This function checks if all dependencies in C<$reqs> (a L<CPAN::Meta::Requirements|CPAN::Meta::Requirements> object) are met, taking into account that 'conflicts' dependencies have to be checked in reverse. It returns a hash with the modules as keys and any problems as values; the value for a successfully found module will be undef. Modules are searched for in C<@$incdirs>, defaulting to C<@INC>. - - =head2 verify_dependencies($meta, $phases, $types, $incdirs) - - Check all requirements in C<$meta> for phases C<$phases> and type C<$type>. Modules are searched for in C<@$incdirs>, defaulting to C<@INC>. C<$meta> should be a L<CPAN::Meta::Prereqs> or L<CPAN::Meta> object. - - =head2 requirements_for($meta, $phases, $types) - - B<< This function is deprecated and may be removed at some point in the future, please use CPAN::Meta::Prereqs->merged_requirements instead. >> - - This function returns a unified L<CPAN::Meta::Requirements|CPAN::Meta::Requirements> object for all C<$type> requirements for C<$phases>. C<$phases> may be either one (scalar) value or an arrayref of valid values as defined by the L<CPAN::Meta spec|CPAN::Meta::Spec>. C<$type> must be a relationship as defined by the same spec. C<$meta> should be a L<CPAN::Meta::Prereqs> or L<CPAN::Meta> object. - - =head1 SEE ALSO - - =over 4 - - =item * L<Test::CheckDeps|Test::CheckDeps> - - =item * L<CPAN::Meta|CPAN::Meta> - - =for comment # vi:noet:sts=2:sw=2:ts=2 - - =back - - =head1 AUTHOR - - Leon Timmermans <leont@cpan.org> - - =head1 COPYRIGHT AND LICENSE - - This software is copyright (c) 2012 by Leon Timmermans. - - This is free software; you can redistribute it and/or modify it under - the same terms as the Perl 5 programming language system itself. - - =cut -CPAN_META_CHECK - -$fatpacked{"CPAN/Meta/Converter.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_CONVERTER'; - use 5.006; - use strict; - use warnings; - package CPAN::Meta::Converter; - - our $VERSION = '2.150005'; - - #pod =head1 SYNOPSIS - #pod - #pod my $struct = decode_json_file('META.json'); - #pod - #pod my $cmc = CPAN::Meta::Converter->new( $struct ); - #pod - #pod my $new_struct = $cmc->convert( version => "2" ); - #pod - #pod =head1 DESCRIPTION - #pod - #pod This module converts CPAN Meta structures from one form to another. The - #pod primary use is to convert older structures to the most modern version of - #pod the specification, but other transformations may be implemented in the - #pod future as needed. (E.g. stripping all custom fields or stripping all - #pod optional fields.) - #pod - #pod =cut - - use CPAN::Meta::Validator; - use CPAN::Meta::Requirements; - use Parse::CPAN::Meta 1.4400 (); - - # To help ExtUtils::MakeMaker bootstrap CPAN::Meta::Requirements on perls - # before 5.10, we fall back to the EUMM bundled compatibility version module if - # that's the only thing available. This shouldn't ever happen in a normal CPAN - # install of CPAN::Meta::Requirements, as version.pm will be picked up from - # prereqs and be available at runtime. - - BEGIN { - eval "use version ()"; ## no critic - if ( my $err = $@ ) { - eval "use ExtUtils::MakeMaker::version" or die $err; ## no critic - } - } - - # Perl 5.10.0 didn't have "is_qv" in version.pm - *_is_qv = version->can('is_qv') ? sub { $_[0]->is_qv } : sub { exists $_[0]->{qv} }; - - sub _dclone { - my $ref = shift; - - # if an object is in the data structure and doesn't specify how to - # turn itself into JSON, we just stringify the object. That does the - # right thing for typical things that might be there, like version objects, - # Path::Class objects, etc. - no warnings 'once'; - no warnings 'redefine'; - local *UNIVERSAL::TO_JSON = sub { "$_[0]" }; - - my $json = Parse::CPAN::Meta->json_backend()->new - ->utf8 - ->allow_blessed - ->convert_blessed; - $json->decode($json->encode($ref)) - } - - my %known_specs = ( - '2' => 'http://search.cpan.org/perldoc?CPAN::Meta::Spec', - '1.4' => 'http://module-build.sourceforge.net/META-spec-v1.4.html', - '1.3' => 'http://module-build.sourceforge.net/META-spec-v1.3.html', - '1.2' => 'http://module-build.sourceforge.net/META-spec-v1.2.html', - '1.1' => 'http://module-build.sourceforge.net/META-spec-v1.1.html', - '1.0' => 'http://module-build.sourceforge.net/META-spec-v1.0.html' - ); - - my @spec_list = sort { $a <=> $b } keys %known_specs; - my ($LOWEST, $HIGHEST) = @spec_list[0,-1]; - - #--------------------------------------------------------------------------# - # converters - # - # called as $converter->($element, $field_name, $full_meta, $to_version) - # - # defined return value used for field - # undef return value means field is skipped - #--------------------------------------------------------------------------# - - sub _keep { $_[0] } - - sub _keep_or_one { defined($_[0]) ? $_[0] : 1 } - - sub _keep_or_zero { defined($_[0]) ? $_[0] : 0 } - - sub _keep_or_unknown { defined($_[0]) && length($_[0]) ? $_[0] : "unknown" } - - sub _generated_by { - my $gen = shift; - my $sig = __PACKAGE__ . " version " . (__PACKAGE__->VERSION || "<dev>"); - - return $sig unless defined $gen and length $gen; - return $gen if $gen =~ /\Q$sig/; - return "$gen, $sig"; - } - - sub _listify { ! defined $_[0] ? undef : ref $_[0] eq 'ARRAY' ? $_[0] : [$_[0]] } - - sub _prefix_custom { - my $key = shift; - $key =~ s/^(?!x_) # Unless it already starts with x_ - (?:x-?)? # Remove leading x- or x (if present) - /x_/ix; # and prepend x_ - return $key; - } - - sub _ucfirst_custom { - my $key = shift; - $key = ucfirst $key unless $key =~ /[A-Z]/; - return $key; - } - - sub _no_prefix_ucfirst_custom { - my $key = shift; - $key =~ s/^x_//; - return _ucfirst_custom($key); - } - - sub _change_meta_spec { - my ($element, undef, undef, $version) = @_; - return { - version => $version, - url => $known_specs{$version}, - }; - } - - my @open_source = ( - 'perl', - 'gpl', - 'apache', - 'artistic', - 'artistic_2', - 'lgpl', - 'bsd', - 'gpl', - 'mit', - 'mozilla', - 'open_source', - ); - - my %is_open_source = map {; $_ => 1 } @open_source; - - my @valid_licenses_1 = ( - @open_source, - 'unrestricted', - 'restrictive', - 'unknown', - ); - - my %license_map_1 = ( - ( map { $_ => $_ } @valid_licenses_1 ), - artistic2 => 'artistic_2', - ); - - sub _license_1 { - my ($element) = @_; - return 'unknown' unless defined $element; - if ( $license_map_1{lc $element} ) { - return $license_map_1{lc $element}; - } - else { - return 'unknown'; - } - } - - my @valid_licenses_2 = qw( - agpl_3 - apache_1_1 - apache_2_0 - artistic_1 - artistic_2 - bsd - freebsd - gfdl_1_2 - gfdl_1_3 - gpl_1 - gpl_2 - gpl_3 - lgpl_2_1 - lgpl_3_0 - mit - mozilla_1_0 - mozilla_1_1 - openssl - perl_5 - qpl_1_0 - ssleay - sun - zlib - open_source - restricted - unrestricted - unknown - ); - - # The "old" values were defined by Module::Build, and were often vague. I have - # made the decisions below based on reading Module::Build::API and how clearly - # it specifies the version of the license. - my %license_map_2 = ( - (map { $_ => $_ } @valid_licenses_2), - apache => 'apache_2_0', # clearly stated as 2.0 - artistic => 'artistic_1', # clearly stated as 1 - artistic2 => 'artistic_2', # clearly stated as 2 - gpl => 'open_source', # we don't know which GPL; punt - lgpl => 'open_source', # we don't know which LGPL; punt - mozilla => 'open_source', # we don't know which MPL; punt - perl => 'perl_5', # clearly Perl 5 - restrictive => 'restricted', - ); - - sub _license_2 { - my ($element) = @_; - return [ 'unknown' ] unless defined $element; - $element = [ $element ] unless ref $element eq 'ARRAY'; - my @new_list; - for my $lic ( @$element ) { - next unless defined $lic; - if ( my $new = $license_map_2{lc $lic} ) { - push @new_list, $new; - } - } - return @new_list ? \@new_list : [ 'unknown' ]; - } - - my %license_downgrade_map = qw( - agpl_3 open_source - apache_1_1 apache - apache_2_0 apache - artistic_1 artistic - artistic_2 artistic_2 - bsd bsd - freebsd open_source - gfdl_1_2 open_source - gfdl_1_3 open_source - gpl_1 gpl - gpl_2 gpl - gpl_3 gpl - lgpl_2_1 lgpl - lgpl_3_0 lgpl - mit mit - mozilla_1_0 mozilla - mozilla_1_1 mozilla - openssl open_source - perl_5 perl - qpl_1_0 open_source - ssleay open_source - sun open_source - zlib open_source - open_source open_source - restricted restrictive - unrestricted unrestricted - unknown unknown - ); - - sub _downgrade_license { - my ($element) = @_; - if ( ! defined $element ) { - return "unknown"; - } - elsif( ref $element eq 'ARRAY' ) { - if ( @$element > 1) { - if (grep { !$is_open_source{ $license_downgrade_map{lc $_} || 'unknown' } } @$element) { - return 'unknown'; - } - else { - return 'open_source'; - } - } - elsif ( @$element == 1 ) { - return $license_downgrade_map{lc $element->[0]} || "unknown"; - } - } - elsif ( ! ref $element ) { - return $license_downgrade_map{lc $element} || "unknown"; - } - return "unknown"; - } - - my $no_index_spec_1_2 = { - 'file' => \&_listify, - 'dir' => \&_listify, - 'package' => \&_listify, - 'namespace' => \&_listify, - }; - - my $no_index_spec_1_3 = { - 'file' => \&_listify, - 'directory' => \&_listify, - 'package' => \&_listify, - 'namespace' => \&_listify, - }; - - my $no_index_spec_2 = { - 'file' => \&_listify, - 'directory' => \&_listify, - 'package' => \&_listify, - 'namespace' => \&_listify, - ':custom' => \&_prefix_custom, - }; - - sub _no_index_1_2 { - my (undef, undef, $meta) = @_; - my $no_index = $meta->{no_index} || $meta->{private}; - return unless $no_index; - - # cleanup wrong format - if ( ! ref $no_index ) { - my $item = $no_index; - $no_index = { dir => [ $item ], file => [ $item ] }; - } - elsif ( ref $no_index eq 'ARRAY' ) { - my $list = $no_index; - $no_index = { dir => [ @$list ], file => [ @$list ] }; - } - - # common mistake: files -> file - if ( exists $no_index->{files} ) { - $no_index->{file} = delete $no_index->{files}; - } - # common mistake: modules -> module - if ( exists $no_index->{modules} ) { - $no_index->{module} = delete $no_index->{modules}; - } - return _convert($no_index, $no_index_spec_1_2); - } - - sub _no_index_directory { - my ($element, $key, $meta, $version) = @_; - return unless $element; - - # cleanup wrong format - if ( ! ref $element ) { - my $item = $element; - $element = { directory => [ $item ], file => [ $item ] }; - } - elsif ( ref $element eq 'ARRAY' ) { - my $list = $element; - $element = { directory => [ @$list ], file => [ @$list ] }; - } - - if ( exists $element->{dir} ) { - $element->{directory} = delete $element->{dir}; - } - # common mistake: files -> file - if ( exists $element->{files} ) { - $element->{file} = delete $element->{files}; - } - # common mistake: modules -> module - if ( exists $element->{modules} ) { - $element->{module} = delete $element->{modules}; - } - my $spec = $version == 2 ? $no_index_spec_2 : $no_index_spec_1_3; - return _convert($element, $spec); - } - - sub _is_module_name { - my $mod = shift; - return unless defined $mod && length $mod; - return $mod =~ m{^[A-Za-z][A-Za-z0-9_]*(?:::[A-Za-z0-9_]+)*$}; - } - - sub _clean_version { - my ($element) = @_; - return 0 if ! defined $element; - - $element =~ s{^\s*}{}; - $element =~ s{\s*$}{}; - $element =~ s{^\.}{0.}; - - return 0 if ! length $element; - return 0 if ( $element eq 'undef' || $element eq '<undef>' ); - - my $v = eval { version->new($element) }; - # XXX check defined $v and not just $v because version objects leak memory - # in boolean context -- dagolden, 2012-02-03 - if ( defined $v ) { - return _is_qv($v) ? $v->normal : $element; - } - else { - return 0; - } - } - - sub _bad_version_hook { - my ($v) = @_; - $v =~ s{^\s*}{}; - $v =~ s{\s*$}{}; - $v =~ s{[a-z]+$}{}; # strip trailing alphabetics - my $vobj = eval { version->new($v) }; - return defined($vobj) ? $vobj : version->new(0); # or give up - } - - sub _version_map { - my ($element) = @_; - return unless defined $element; - if ( ref $element eq 'HASH' ) { - # XXX turn this into CPAN::Meta::Requirements with bad version hook - # and then turn it back into a hash - my $new_map = CPAN::Meta::Requirements->new( - { bad_version_hook => \&_bad_version_hook } # punt - ); - while ( my ($k,$v) = each %$element ) { - next unless _is_module_name($k); - if ( !defined($v) || !length($v) || $v eq 'undef' || $v eq '<undef>' ) { - $v = 0; - } - # some weird, old META have bad yml with module => module - # so check if value is like a module name and not like a version - if ( _is_module_name($v) && ! version::is_lax($v) ) { - $new_map->add_minimum($k => 0); - $new_map->add_minimum($v => 0); - } - $new_map->add_string_requirement($k => $v); - } - return $new_map->as_string_hash; - } - elsif ( ref $element eq 'ARRAY' ) { - my $hashref = { map { $_ => 0 } @$element }; - return _version_map($hashref); # cleanup any weird stuff - } - elsif ( ref $element eq '' && length $element ) { - return { $element => 0 } - } - return; - } - - sub _prereqs_from_1 { - my (undef, undef, $meta) = @_; - my $prereqs = {}; - for my $phase ( qw/build configure/ ) { - my $key = "${phase}_requires"; - $prereqs->{$phase}{requires} = _version_map($meta->{$key}) - if $meta->{$key}; - } - for my $rel ( qw/requires recommends conflicts/ ) { - $prereqs->{runtime}{$rel} = _version_map($meta->{$rel}) - if $meta->{$rel}; - } - return $prereqs; - } - - my $prereqs_spec = { - configure => \&_prereqs_rel, - build => \&_prereqs_rel, - test => \&_prereqs_rel, - runtime => \&_prereqs_rel, - develop => \&_prereqs_rel, - ':custom' => \&_prefix_custom, - }; - - my $relation_spec = { - requires => \&_version_map, - recommends => \&_version_map, - suggests => \&_version_map, - conflicts => \&_version_map, - ':custom' => \&_prefix_custom, - }; - - sub _cleanup_prereqs { - my ($prereqs, $key, $meta, $to_version) = @_; - return unless $prereqs && ref $prereqs eq 'HASH'; - return _convert( $prereqs, $prereqs_spec, $to_version ); - } - - sub _prereqs_rel { - my ($relation, $key, $meta, $to_version) = @_; - return unless $relation && ref $relation eq 'HASH'; - return _convert( $relation, $relation_spec, $to_version ); - } - - - BEGIN { - my @old_prereqs = qw( - requires - configure_requires - recommends - conflicts - ); - - for ( @old_prereqs ) { - my $sub = "_get_$_"; - my ($phase,$type) = split qr/_/, $_; - if ( ! defined $type ) { - $type = $phase; - $phase = 'runtime'; - } - no strict 'refs'; - *{$sub} = sub { _extract_prereqs($_[2]->{prereqs},$phase,$type) }; - } - } - - sub _get_build_requires { - my ($data, $key, $meta) = @_; - - my $test_h = _extract_prereqs($_[2]->{prereqs}, qw(test requires)) || {}; - my $build_h = _extract_prereqs($_[2]->{prereqs}, qw(build requires)) || {}; - - my $test_req = CPAN::Meta::Requirements->from_string_hash($test_h); - my $build_req = CPAN::Meta::Requirements->from_string_hash($build_h); - - $test_req->add_requirements($build_req)->as_string_hash; - } - - sub _extract_prereqs { - my ($prereqs, $phase, $type) = @_; - return unless ref $prereqs eq 'HASH'; - return scalar _version_map($prereqs->{$phase}{$type}); - } - - sub _downgrade_optional_features { - my (undef, undef, $meta) = @_; - return unless exists $meta->{optional_features}; - my $origin = $meta->{optional_features}; - my $features = {}; - for my $name ( keys %$origin ) { - $features->{$name} = { - description => $origin->{$name}{description}, - requires => _extract_prereqs($origin->{$name}{prereqs},'runtime','requires'), - configure_requires => _extract_prereqs($origin->{$name}{prereqs},'runtime','configure_requires'), - build_requires => _extract_prereqs($origin->{$name}{prereqs},'runtime','build_requires'), - recommends => _extract_prereqs($origin->{$name}{prereqs},'runtime','recommends'), - conflicts => _extract_prereqs($origin->{$name}{prereqs},'runtime','conflicts'), - }; - for my $k (keys %{$features->{$name}} ) { - delete $features->{$name}{$k} unless defined $features->{$name}{$k}; - } - } - return $features; - } - - sub _upgrade_optional_features { - my (undef, undef, $meta) = @_; - return unless exists $meta->{optional_features}; - my $origin = $meta->{optional_features}; - my $features = {}; - for my $name ( keys %$origin ) { - $features->{$name} = { - description => $origin->{$name}{description}, - prereqs => _prereqs_from_1(undef, undef, $origin->{$name}), - }; - delete $features->{$name}{prereqs}{configure}; - } - return $features; - } - - my $optional_features_2_spec = { - description => \&_keep, - prereqs => \&_cleanup_prereqs, - ':custom' => \&_prefix_custom, - }; - - sub _feature_2 { - my ($element, $key, $meta, $to_version) = @_; - return unless $element && ref $element eq 'HASH'; - _convert( $element, $optional_features_2_spec, $to_version ); - } - - sub _cleanup_optional_features_2 { - my ($element, $key, $meta, $to_version) = @_; - return unless $element && ref $element eq 'HASH'; - my $new_data = {}; - for my $k ( keys %$element ) { - $new_data->{$k} = _feature_2( $element->{$k}, $k, $meta, $to_version ); - } - return unless keys %$new_data; - return $new_data; - } - - sub _optional_features_1_4 { - my ($element) = @_; - return unless $element; - $element = _optional_features_as_map($element); - for my $name ( keys %$element ) { - for my $drop ( qw/requires_packages requires_os excluded_os/ ) { - delete $element->{$name}{$drop}; - } - } - return $element; - } - - sub _optional_features_as_map { - my ($element) = @_; - return unless $element; - if ( ref $element eq 'ARRAY' ) { - my %map; - for my $feature ( @$element ) { - my (@parts) = %$feature; - $map{$parts[0]} = $parts[1]; - } - $element = \%map; - } - return $element; - } - - sub _is_urlish { defined $_[0] && $_[0] =~ m{\A[-+.a-z0-9]+:.+}i } - - sub _url_or_drop { - my ($element) = @_; - return $element if _is_urlish($element); - return; - } - - sub _url_list { - my ($element) = @_; - return unless $element; - $element = _listify( $element ); - $element = [ grep { _is_urlish($_) } @$element ]; - return unless @$element; - return $element; - } - - sub _author_list { - my ($element) = @_; - return [ 'unknown' ] unless $element; - $element = _listify( $element ); - $element = [ map { defined $_ && length $_ ? $_ : 'unknown' } @$element ]; - return [ 'unknown' ] unless @$element; - return $element; - } - - my $resource2_upgrade = { - license => sub { return _is_urlish($_[0]) ? _listify( $_[0] ) : undef }, - homepage => \&_url_or_drop, - bugtracker => sub { - my ($item) = @_; - return unless $item; - if ( $item =~ m{^mailto:(.*)$} ) { return { mailto => $1 } } - elsif( _is_urlish($item) ) { return { web => $item } } - else { return } - }, - repository => sub { return _is_urlish($_[0]) ? { url => $_[0] } : undef }, - ':custom' => \&_prefix_custom, - }; - - sub _upgrade_resources_2 { - my (undef, undef, $meta, $version) = @_; - return unless exists $meta->{resources}; - return _convert($meta->{resources}, $resource2_upgrade); - } - - my $bugtracker2_spec = { - web => \&_url_or_drop, - mailto => \&_keep, - ':custom' => \&_prefix_custom, - }; - - sub _repo_type { - my ($element, $key, $meta, $to_version) = @_; - return $element if defined $element; - return unless exists $meta->{url}; - my $repo_url = $meta->{url}; - for my $type ( qw/git svn/ ) { - return $type if $repo_url =~ m{\A$type}; - } - return; - } - - my $repository2_spec = { - web => \&_url_or_drop, - url => \&_url_or_drop, - type => \&_repo_type, - ':custom' => \&_prefix_custom, - }; - - my $resources2_cleanup = { - license => \&_url_list, - homepage => \&_url_or_drop, - bugtracker => sub { ref $_[0] ? _convert( $_[0], $bugtracker2_spec ) : undef }, - repository => sub { my $data = shift; ref $data ? _convert( $data, $repository2_spec ) : undef }, - ':custom' => \&_prefix_custom, - }; - - sub _cleanup_resources_2 { - my ($resources, $key, $meta, $to_version) = @_; - return unless $resources && ref $resources eq 'HASH'; - return _convert($resources, $resources2_cleanup, $to_version); - } - - my $resource1_spec = { - license => \&_url_or_drop, - homepage => \&_url_or_drop, - bugtracker => \&_url_or_drop, - repository => \&_url_or_drop, - ':custom' => \&_keep, - }; - - sub _resources_1_3 { - my (undef, undef, $meta, $version) = @_; - return unless exists $meta->{resources}; - return _convert($meta->{resources}, $resource1_spec); - } - - *_resources_1_4 = *_resources_1_3; - - sub _resources_1_2 { - my (undef, undef, $meta) = @_; - my $resources = $meta->{resources} || {}; - if ( $meta->{license_url} && ! $resources->{license} ) { - $resources->{license} = $meta->{license_url} - if _is_urlish($meta->{license_url}); - } - return unless keys %$resources; - return _convert($resources, $resource1_spec); - } - - my $resource_downgrade_spec = { - license => sub { return ref $_[0] ? $_[0]->[0] : $_[0] }, - homepage => \&_url_or_drop, - bugtracker => sub { return $_[0]->{web} }, - repository => sub { return $_[0]->{url} || $_[0]->{web} }, - ':custom' => \&_no_prefix_ucfirst_custom, - }; - - sub _downgrade_resources { - my (undef, undef, $meta, $version) = @_; - return unless exists $meta->{resources}; - return _convert($meta->{resources}, $resource_downgrade_spec); - } - - sub _release_status { - my ($element, undef, $meta) = @_; - return $element if $element && $element =~ m{\A(?:stable|testing|unstable)\z}; - return _release_status_from_version(undef, undef, $meta); - } - - sub _release_status_from_version { - my (undef, undef, $meta) = @_; - my $version = $meta->{version} || ''; - return ( $version =~ /_/ ) ? 'testing' : 'stable'; - } - - my $provides_spec = { - file => \&_keep, - version => \&_keep, - }; - - my $provides_spec_2 = { - file => \&_keep, - version => \&_keep, - ':custom' => \&_prefix_custom, - }; - - sub _provides { - my ($element, $key, $meta, $to_version) = @_; - return unless defined $element && ref $element eq 'HASH'; - my $spec = $to_version == 2 ? $provides_spec_2 : $provides_spec; - my $new_data = {}; - for my $k ( keys %$element ) { - $new_data->{$k} = _convert($element->{$k}, $spec, $to_version); - $new_data->{$k}{version} = _clean_version($element->{$k}{version}) - if exists $element->{$k}{version}; - } - return $new_data; - } - - sub _convert { - my ($data, $spec, $to_version, $is_fragment) = @_; - - my $new_data = {}; - for my $key ( keys %$spec ) { - next if $key eq ':custom' || $key eq ':drop'; - next unless my $fcn = $spec->{$key}; - if ( $is_fragment && $key eq 'generated_by' ) { - $fcn = \&_keep; - } - die "spec for '$key' is not a coderef" - unless ref $fcn && ref $fcn eq 'CODE'; - my $new_value = $fcn->($data->{$key}, $key, $data, $to_version); - $new_data->{$key} = $new_value if defined $new_value; - } - - my $drop_list = $spec->{':drop'}; - my $customizer = $spec->{':custom'} || \&_keep; - - for my $key ( keys %$data ) { - next if $drop_list && grep { $key eq $_ } @$drop_list; - next if exists $spec->{$key}; # we handled it - $new_data->{ $customizer->($key) } = $data->{$key}; - } - - return $new_data; - } - - #--------------------------------------------------------------------------# - # define converters for each conversion - #--------------------------------------------------------------------------# - - # each converts from prior version - # special ":custom" field is used for keys not recognized in spec - my %up_convert = ( - '2-from-1.4' => { - # PRIOR MANDATORY - 'abstract' => \&_keep_or_unknown, - 'author' => \&_author_list, - 'generated_by' => \&_generated_by, - 'license' => \&_license_2, - 'meta-spec' => \&_change_meta_spec, - 'name' => \&_keep, - 'version' => \&_keep, - # CHANGED TO MANDATORY - 'dynamic_config' => \&_keep_or_one, - # ADDED MANDATORY - 'release_status' => \&_release_status, - # PRIOR OPTIONAL - 'keywords' => \&_keep, - 'no_index' => \&_no_index_directory, - 'optional_features' => \&_upgrade_optional_features, - 'provides' => \&_provides, - 'resources' => \&_upgrade_resources_2, - # ADDED OPTIONAL - 'description' => \&_keep, - 'prereqs' => \&_prereqs_from_1, - - # drop these deprecated fields, but only after we convert - ':drop' => [ qw( - build_requires - configure_requires - conflicts - distribution_type - license_url - private - recommends - requires - ) ], - - # other random keys need x_ prefixing - ':custom' => \&_prefix_custom, - }, - '1.4-from-1.3' => { - # PRIOR MANDATORY - 'abstract' => \&_keep_or_unknown, - 'author' => \&_author_list, - 'generated_by' => \&_generated_by, - 'license' => \&_license_1, - 'meta-spec' => \&_change_meta_spec, - 'name' => \&_keep, - 'version' => \&_keep, - # PRIOR OPTIONAL - 'build_requires' => \&_version_map, - 'conflicts' => \&_version_map, - 'distribution_type' => \&_keep, - 'dynamic_config' => \&_keep_or_one, - 'keywords' => \&_keep, - 'no_index' => \&_no_index_directory, - 'optional_features' => \&_optional_features_1_4, - 'provides' => \&_provides, - 'recommends' => \&_version_map, - 'requires' => \&_version_map, - 'resources' => \&_resources_1_4, - # ADDED OPTIONAL - 'configure_requires' => \&_keep, - - # drop these deprecated fields, but only after we convert - ':drop' => [ qw( - license_url - private - )], - - # other random keys are OK if already valid - ':custom' => \&_keep - }, - '1.3-from-1.2' => { - # PRIOR MANDATORY - 'abstract' => \&_keep_or_unknown, - 'author' => \&_author_list, - 'generated_by' => \&_generated_by, - 'license' => \&_license_1, - 'meta-spec' => \&_change_meta_spec, - 'name' => \&_keep, - 'version' => \&_keep, - # PRIOR OPTIONAL - 'build_requires' => \&_version_map, - 'conflicts' => \&_version_map, - 'distribution_type' => \&_keep, - 'dynamic_config' => \&_keep_or_one, - 'keywords' => \&_keep, - 'no_index' => \&_no_index_directory, - 'optional_features' => \&_optional_features_as_map, - 'provides' => \&_provides, - 'recommends' => \&_version_map, - 'requires' => \&_version_map, - 'resources' => \&_resources_1_3, - - # drop these deprecated fields, but only after we convert - ':drop' => [ qw( - license_url - private - )], - - # other random keys are OK if already valid - ':custom' => \&_keep - }, - '1.2-from-1.1' => { - # PRIOR MANDATORY - 'version' => \&_keep, - # CHANGED TO MANDATORY - 'license' => \&_license_1, - 'name' => \&_keep, - 'generated_by' => \&_generated_by, - # ADDED MANDATORY - 'abstract' => \&_keep_or_unknown, - 'author' => \&_author_list, - 'meta-spec' => \&_change_meta_spec, - # PRIOR OPTIONAL - 'build_requires' => \&_version_map, - 'conflicts' => \&_version_map, - 'distribution_type' => \&_keep, - 'dynamic_config' => \&_keep_or_one, - 'recommends' => \&_version_map, - 'requires' => \&_version_map, - # ADDED OPTIONAL - 'keywords' => \&_keep, - 'no_index' => \&_no_index_1_2, - 'optional_features' => \&_optional_features_as_map, - 'provides' => \&_provides, - 'resources' => \&_resources_1_2, - - # drop these deprecated fields, but only after we convert - ':drop' => [ qw( - license_url - private - )], - - # other random keys are OK if already valid - ':custom' => \&_keep - }, - '1.1-from-1.0' => { - # CHANGED TO MANDATORY - 'version' => \&_keep, - # IMPLIED MANDATORY - 'name' => \&_keep, - # PRIOR OPTIONAL - 'build_requires' => \&_version_map, - 'conflicts' => \&_version_map, - 'distribution_type' => \&_keep, - 'dynamic_config' => \&_keep_or_one, - 'generated_by' => \&_generated_by, - 'license' => \&_license_1, - 'recommends' => \&_version_map, - 'requires' => \&_version_map, - # ADDED OPTIONAL - 'license_url' => \&_url_or_drop, - 'private' => \&_keep, - - # other random keys are OK if already valid - ':custom' => \&_keep - }, - ); - - my %down_convert = ( - '1.4-from-2' => { - # MANDATORY - 'abstract' => \&_keep_or_unknown, - 'author' => \&_author_list, - 'generated_by' => \&_generated_by, - 'license' => \&_downgrade_license, - 'meta-spec' => \&_change_meta_spec, - 'name' => \&_keep, - 'version' => \&_keep, - # OPTIONAL - 'build_requires' => \&_get_build_requires, - 'configure_requires' => \&_get_configure_requires, - 'conflicts' => \&_get_conflicts, - 'distribution_type' => \&_keep, - 'dynamic_config' => \&_keep_or_one, - 'keywords' => \&_keep, - 'no_index' => \&_no_index_directory, - 'optional_features' => \&_downgrade_optional_features, - 'provides' => \&_provides, - 'recommends' => \&_get_recommends, - 'requires' => \&_get_requires, - 'resources' => \&_downgrade_resources, - - # drop these unsupported fields (after conversion) - ':drop' => [ qw( - description - prereqs - release_status - )], - - # custom keys will be left unchanged - ':custom' => \&_keep - }, - '1.3-from-1.4' => { - # MANDATORY - 'abstract' => \&_keep_or_unknown, - 'author' => \&_author_list, - 'generated_by' => \&_generated_by, - 'license' => \&_license_1, - 'meta-spec' => \&_change_meta_spec, - 'name' => \&_keep, - 'version' => \&_keep, - # OPTIONAL - 'build_requires' => \&_version_map, - 'conflicts' => \&_version_map, - 'distribution_type' => \&_keep, - 'dynamic_config' => \&_keep_or_one, - 'keywords' => \&_keep, - 'no_index' => \&_no_index_directory, - 'optional_features' => \&_optional_features_as_map, - 'provides' => \&_provides, - 'recommends' => \&_version_map, - 'requires' => \&_version_map, - 'resources' => \&_resources_1_3, - - # drop these unsupported fields, but only after we convert - ':drop' => [ qw( - configure_requires - )], - - # other random keys are OK if already valid - ':custom' => \&_keep, - }, - '1.2-from-1.3' => { - # MANDATORY - 'abstract' => \&_keep_or_unknown, - 'author' => \&_author_list, - 'generated_by' => \&_generated_by, - 'license' => \&_license_1, - 'meta-spec' => \&_change_meta_spec, - 'name' => \&_keep, - 'version' => \&_keep, - # OPTIONAL - 'build_requires' => \&_version_map, - 'conflicts' => \&_version_map, - 'distribution_type' => \&_keep, - 'dynamic_config' => \&_keep_or_one, - 'keywords' => \&_keep, - 'no_index' => \&_no_index_1_2, - 'optional_features' => \&_optional_features_as_map, - 'provides' => \&_provides, - 'recommends' => \&_version_map, - 'requires' => \&_version_map, - 'resources' => \&_resources_1_3, - - # other random keys are OK if already valid - ':custom' => \&_keep, - }, - '1.1-from-1.2' => { - # MANDATORY - 'version' => \&_keep, - # IMPLIED MANDATORY - 'name' => \&_keep, - 'meta-spec' => \&_change_meta_spec, - # OPTIONAL - 'build_requires' => \&_version_map, - 'conflicts' => \&_version_map, - 'distribution_type' => \&_keep, - 'dynamic_config' => \&_keep_or_one, - 'generated_by' => \&_generated_by, - 'license' => \&_license_1, - 'private' => \&_keep, - 'recommends' => \&_version_map, - 'requires' => \&_version_map, - - # drop unsupported fields - ':drop' => [ qw( - abstract - author - provides - no_index - keywords - resources - )], - - # other random keys are OK if already valid - ':custom' => \&_keep, - }, - '1.0-from-1.1' => { - # IMPLIED MANDATORY - 'name' => \&_keep, - 'meta-spec' => \&_change_meta_spec, - 'version' => \&_keep, - # PRIOR OPTIONAL - 'build_requires' => \&_version_map, - 'conflicts' => \&_version_map, - 'distribution_type' => \&_keep, - 'dynamic_config' => \&_keep_or_one, - 'generated_by' => \&_generated_by, - 'license' => \&_license_1, - 'recommends' => \&_version_map, - 'requires' => \&_version_map, - - # other random keys are OK if already valid - ':custom' => \&_keep, - }, - ); - - my %cleanup = ( - '2' => { - # PRIOR MANDATORY - 'abstract' => \&_keep_or_unknown, - 'author' => \&_author_list, - 'generated_by' => \&_generated_by, - 'license' => \&_license_2, - 'meta-spec' => \&_change_meta_spec, - 'name' => \&_keep, - 'version' => \&_keep, - # CHANGED TO MANDATORY - 'dynamic_config' => \&_keep_or_one, - # ADDED MANDATORY - 'release_status' => \&_release_status, - # PRIOR OPTIONAL - 'keywords' => \&_keep, - 'no_index' => \&_no_index_directory, - 'optional_features' => \&_cleanup_optional_features_2, - 'provides' => \&_provides, - 'resources' => \&_cleanup_resources_2, - # ADDED OPTIONAL - 'description' => \&_keep, - 'prereqs' => \&_cleanup_prereqs, - - # drop these deprecated fields, but only after we convert - ':drop' => [ qw( - build_requires - configure_requires - conflicts - distribution_type - license_url - private - recommends - requires - ) ], - - # other random keys need x_ prefixing - ':custom' => \&_prefix_custom, - }, - '1.4' => { - # PRIOR MANDATORY - 'abstract' => \&_keep_or_unknown, - 'author' => \&_author_list, - 'generated_by' => \&_generated_by, - 'license' => \&_license_1, - 'meta-spec' => \&_change_meta_spec, - 'name' => \&_keep, - 'version' => \&_keep, - # PRIOR OPTIONAL - 'build_requires' => \&_version_map, - 'conflicts' => \&_version_map, - 'distribution_type' => \&_keep, - 'dynamic_config' => \&_keep_or_one, - 'keywords' => \&_keep, - 'no_index' => \&_no_index_directory, - 'optional_features' => \&_optional_features_1_4, - 'provides' => \&_provides, - 'recommends' => \&_version_map, - 'requires' => \&_version_map, - 'resources' => \&_resources_1_4, - # ADDED OPTIONAL - 'configure_requires' => \&_keep, - - # other random keys are OK if already valid - ':custom' => \&_keep - }, - '1.3' => { - # PRIOR MANDATORY - 'abstract' => \&_keep_or_unknown, - 'author' => \&_author_list, - 'generated_by' => \&_generated_by, - 'license' => \&_license_1, - 'meta-spec' => \&_change_meta_spec, - 'name' => \&_keep, - 'version' => \&_keep, - # PRIOR OPTIONAL - 'build_requires' => \&_version_map, - 'conflicts' => \&_version_map, - 'distribution_type' => \&_keep, - 'dynamic_config' => \&_keep_or_one, - 'keywords' => \&_keep, - 'no_index' => \&_no_index_directory, - 'optional_features' => \&_optional_features_as_map, - 'provides' => \&_provides, - 'recommends' => \&_version_map, - 'requires' => \&_version_map, - 'resources' => \&_resources_1_3, - - # other random keys are OK if already valid - ':custom' => \&_keep - }, - '1.2' => { - # PRIOR MANDATORY - 'version' => \&_keep, - # CHANGED TO MANDATORY - 'license' => \&_license_1, - 'name' => \&_keep, - 'generated_by' => \&_generated_by, - # ADDED MANDATORY - 'abstract' => \&_keep_or_unknown, - 'author' => \&_author_list, - 'meta-spec' => \&_change_meta_spec, - # PRIOR OPTIONAL - 'build_requires' => \&_version_map, - 'conflicts' => \&_version_map, - 'distribution_type' => \&_keep, - 'dynamic_config' => \&_keep_or_one, - 'recommends' => \&_version_map, - 'requires' => \&_version_map, - # ADDED OPTIONAL - 'keywords' => \&_keep, - 'no_index' => \&_no_index_1_2, - 'optional_features' => \&_optional_features_as_map, - 'provides' => \&_provides, - 'resources' => \&_resources_1_2, - - # other random keys are OK if already valid - ':custom' => \&_keep - }, - '1.1' => { - # CHANGED TO MANDATORY - 'version' => \&_keep, - # IMPLIED MANDATORY - 'name' => \&_keep, - 'meta-spec' => \&_change_meta_spec, - # PRIOR OPTIONAL - 'build_requires' => \&_version_map, - 'conflicts' => \&_version_map, - 'distribution_type' => \&_keep, - 'dynamic_config' => \&_keep_or_one, - 'generated_by' => \&_generated_by, - 'license' => \&_license_1, - 'recommends' => \&_version_map, - 'requires' => \&_version_map, - # ADDED OPTIONAL - 'license_url' => \&_url_or_drop, - 'private' => \&_keep, - - # other random keys are OK if already valid - ':custom' => \&_keep - }, - '1.0' => { - # IMPLIED MANDATORY - 'name' => \&_keep, - 'meta-spec' => \&_change_meta_spec, - 'version' => \&_keep, - # IMPLIED OPTIONAL - 'build_requires' => \&_version_map, - 'conflicts' => \&_version_map, - 'distribution_type' => \&_keep, - 'dynamic_config' => \&_keep_or_one, - 'generated_by' => \&_generated_by, - 'license' => \&_license_1, - 'recommends' => \&_version_map, - 'requires' => \&_version_map, - - # other random keys are OK if already valid - ':custom' => \&_keep, - }, - ); - - # for a given field in a spec version, what fields will it feed - # into in the *latest* spec (i.e. v2); meta-spec omitted because - # we always expect a meta-spec to be generated - my %fragments_generate = ( - '2' => { - 'abstract' => 'abstract', - 'author' => 'author', - 'generated_by' => 'generated_by', - 'license' => 'license', - 'name' => 'name', - 'version' => 'version', - 'dynamic_config' => 'dynamic_config', - 'release_status' => 'release_status', - 'keywords' => 'keywords', - 'no_index' => 'no_index', - 'optional_features' => 'optional_features', - 'provides' => 'provides', - 'resources' => 'resources', - 'description' => 'description', - 'prereqs' => 'prereqs', - }, - '1.4' => { - 'abstract' => 'abstract', - 'author' => 'author', - 'generated_by' => 'generated_by', - 'license' => 'license', - 'name' => 'name', - 'version' => 'version', - 'build_requires' => 'prereqs', - 'conflicts' => 'prereqs', - 'distribution_type' => 'distribution_type', - 'dynamic_config' => 'dynamic_config', - 'keywords' => 'keywords', - 'no_index' => 'no_index', - 'optional_features' => 'optional_features', - 'provides' => 'provides', - 'recommends' => 'prereqs', - 'requires' => 'prereqs', - 'resources' => 'resources', - 'configure_requires' => 'prereqs', - }, - ); - # this is not quite true but will work well enough - # as 1.4 is a superset of earlier ones - $fragments_generate{$_} = $fragments_generate{'1.4'} for qw/1.3 1.2 1.1 1.0/; - - #--------------------------------------------------------------------------# - # Code - #--------------------------------------------------------------------------# - - #pod =method new - #pod - #pod my $cmc = CPAN::Meta::Converter->new( $struct ); - #pod - #pod The constructor should be passed a valid metadata structure but invalid - #pod structures are accepted. If no meta-spec version is provided, version 1.0 will - #pod be assumed. - #pod - #pod Optionally, you can provide a C<default_version> argument after C<$struct>: - #pod - #pod my $cmc = CPAN::Meta::Converter->new( $struct, default_version => "1.4" ); - #pod - #pod This is only needed when converting a metadata fragment that does not include a - #pod C<meta-spec> field. - #pod - #pod =cut - - sub new { - my ($class,$data,%args) = @_; - - # create an attributes hash - my $self = { - 'data' => $data, - 'spec' => _extract_spec_version($data, $args{default_version}), - }; - - # create the object - return bless $self, $class; - } - - sub _extract_spec_version { - my ($data, $default) = @_; - my $spec = $data->{'meta-spec'}; - - # is meta-spec there and valid? - return( $default || "1.0" ) unless defined $spec && ref $spec eq 'HASH'; # before meta-spec? - - # does the version key look like a valid version? - my $v = $spec->{version}; - if ( defined $v && $v =~ /^\d+(?:\.\d+)?$/ ) { - return $v if defined $v && grep { $v eq $_ } keys %known_specs; # known spec - return $v+0 if defined $v && grep { $v == $_ } keys %known_specs; # 2.0 => 2 - } - - # otherwise, use heuristics: look for 1.x vs 2.0 fields - return "2" if exists $data->{prereqs}; - return "1.4" if exists $data->{configure_requires}; - return( $default || "1.2" ); # when meta-spec was first defined - } - - #pod =method convert - #pod - #pod my $new_struct = $cmc->convert( version => "2" ); - #pod - #pod Returns a new hash reference with the metadata converted to a different form. - #pod C<convert> will die if any conversion/standardization still results in an - #pod invalid structure. - #pod - #pod Valid parameters include: - #pod - #pod =over - #pod - #pod =item * - #pod - #pod C<version> -- Indicates the desired specification version (e.g. "1.0", "1.1" ... "1.4", "2"). - #pod Defaults to the latest version of the CPAN Meta Spec. - #pod - #pod =back - #pod - #pod Conversion proceeds through each version in turn. For example, a version 1.2 - #pod structure might be converted to 1.3 then 1.4 then finally to version 2. The - #pod conversion process attempts to clean-up simple errors and standardize data. - #pod For example, if C<author> is given as a scalar, it will converted to an array - #pod reference containing the item. (Converting a structure to its own version will - #pod also clean-up and standardize.) - #pod - #pod When data are cleaned and standardized, missing or invalid fields will be - #pod replaced with sensible defaults when possible. This may be lossy or imprecise. - #pod For example, some badly structured META.yml files on CPAN have prerequisite - #pod modules listed as both keys and values: - #pod - #pod requires => { 'Foo::Bar' => 'Bam::Baz' } - #pod - #pod These would be split and each converted to a prerequisite with a minimum - #pod version of zero. - #pod - #pod When some mandatory fields are missing or invalid, the conversion will attempt - #pod to provide a sensible default or will fill them with a value of 'unknown'. For - #pod example a missing or unrecognized C<license> field will result in a C<license> - #pod field of 'unknown'. Fields that may get an 'unknown' include: - #pod - #pod =for :list - #pod * abstract - #pod * author - #pod * license - #pod - #pod =cut - - sub convert { - my ($self, %args) = @_; - my $args = { %args }; - - my $new_version = $args->{version} || $HIGHEST; - my $is_fragment = $args->{is_fragment}; - - my ($old_version) = $self->{spec}; - my $converted = _dclone($self->{data}); - - if ( $old_version == $new_version ) { - $converted = _convert( $converted, $cleanup{$old_version}, $old_version, $is_fragment ); - unless ( $args->{is_fragment} ) { - my $cmv = CPAN::Meta::Validator->new( $converted ); - unless ( $cmv->is_valid ) { - my $errs = join("\n", $cmv->errors); - die "Failed to clean-up $old_version metadata. Errors:\n$errs\n"; - } - } - return $converted; - } - elsif ( $old_version > $new_version ) { - my @vers = sort { $b <=> $a } keys %known_specs; - for my $i ( 0 .. $#vers-1 ) { - next if $vers[$i] > $old_version; - last if $vers[$i+1] < $new_version; - my $spec_string = "$vers[$i+1]-from-$vers[$i]"; - $converted = _convert( $converted, $down_convert{$spec_string}, $vers[$i+1], $is_fragment ); - unless ( $args->{is_fragment} ) { - my $cmv = CPAN::Meta::Validator->new( $converted ); - unless ( $cmv->is_valid ) { - my $errs = join("\n", $cmv->errors); - die "Failed to downconvert metadata to $vers[$i+1]. Errors:\n$errs\n"; - } - } - } - return $converted; - } - else { - my @vers = sort { $a <=> $b } keys %known_specs; - for my $i ( 0 .. $#vers-1 ) { - next if $vers[$i] < $old_version; - last if $vers[$i+1] > $new_version; - my $spec_string = "$vers[$i+1]-from-$vers[$i]"; - $converted = _convert( $converted, $up_convert{$spec_string}, $vers[$i+1], $is_fragment ); - unless ( $args->{is_fragment} ) { - my $cmv = CPAN::Meta::Validator->new( $converted ); - unless ( $cmv->is_valid ) { - my $errs = join("\n", $cmv->errors); - die "Failed to upconvert metadata to $vers[$i+1]. Errors:\n$errs\n"; - } - } - } - return $converted; - } - } - - #pod =method upgrade_fragment - #pod - #pod my $new_struct = $cmc->upgrade_fragment; - #pod - #pod Returns a new hash reference with the metadata converted to the latest version - #pod of the CPAN Meta Spec. No validation is done on the result -- you must - #pod validate after merging fragments into a complete metadata document. - #pod - #pod Available since version 2.141170. - #pod - #pod =cut - - sub upgrade_fragment { - my ($self) = @_; - my ($old_version) = $self->{spec}; - my %expected = - map {; $_ => 1 } - grep { defined } - map { $fragments_generate{$old_version}{$_} } - keys %{ $self->{data} }; - my $converted = $self->convert( version => $HIGHEST, is_fragment => 1 ); - for my $key ( keys %$converted ) { - next if $key =~ /^x_/i || $key eq 'meta-spec'; - delete $converted->{$key} unless $expected{$key}; - } - return $converted; - } - - 1; - - # ABSTRACT: Convert CPAN distribution metadata structures - - =pod - - =encoding UTF-8 - - =head1 NAME - - CPAN::Meta::Converter - Convert CPAN distribution metadata structures - - =head1 VERSION - - version 2.150005 - - =head1 SYNOPSIS - - my $struct = decode_json_file('META.json'); - - my $cmc = CPAN::Meta::Converter->new( $struct ); - - my $new_struct = $cmc->convert( version => "2" ); - - =head1 DESCRIPTION - - This module converts CPAN Meta structures from one form to another. The - primary use is to convert older structures to the most modern version of - the specification, but other transformations may be implemented in the - future as needed. (E.g. stripping all custom fields or stripping all - optional fields.) - - =head1 METHODS - - =head2 new - - my $cmc = CPAN::Meta::Converter->new( $struct ); - - The constructor should be passed a valid metadata structure but invalid - structures are accepted. If no meta-spec version is provided, version 1.0 will - be assumed. - - Optionally, you can provide a C<default_version> argument after C<$struct>: - - my $cmc = CPAN::Meta::Converter->new( $struct, default_version => "1.4" ); - - This is only needed when converting a metadata fragment that does not include a - C<meta-spec> field. - - =head2 convert - - my $new_struct = $cmc->convert( version => "2" ); - - Returns a new hash reference with the metadata converted to a different form. - C<convert> will die if any conversion/standardization still results in an - invalid structure. - - Valid parameters include: - - =over - - =item * - - C<version> -- Indicates the desired specification version (e.g. "1.0", "1.1" ... "1.4", "2"). - Defaults to the latest version of the CPAN Meta Spec. - - =back - - Conversion proceeds through each version in turn. For example, a version 1.2 - structure might be converted to 1.3 then 1.4 then finally to version 2. The - conversion process attempts to clean-up simple errors and standardize data. - For example, if C<author> is given as a scalar, it will converted to an array - reference containing the item. (Converting a structure to its own version will - also clean-up and standardize.) - - When data are cleaned and standardized, missing or invalid fields will be - replaced with sensible defaults when possible. This may be lossy or imprecise. - For example, some badly structured META.yml files on CPAN have prerequisite - modules listed as both keys and values: - - requires => { 'Foo::Bar' => 'Bam::Baz' } - - These would be split and each converted to a prerequisite with a minimum - version of zero. - - When some mandatory fields are missing or invalid, the conversion will attempt - to provide a sensible default or will fill them with a value of 'unknown'. For - example a missing or unrecognized C<license> field will result in a C<license> - field of 'unknown'. Fields that may get an 'unknown' include: - - =over 4 - - =item * - - abstract - - =item * - - author - - =item * - - license - - =back - - =head2 upgrade_fragment - - my $new_struct = $cmc->upgrade_fragment; - - Returns a new hash reference with the metadata converted to the latest version - of the CPAN Meta Spec. No validation is done on the result -- you must - validate after merging fragments into a complete metadata document. - - Available since version 2.141170. - - =head1 BUGS - - Please report any bugs or feature using the CPAN Request Tracker. - Bugs can be submitted through the web interface at - L<http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Meta> - - When submitting a bug or request, please include a test-file or a patch to an - existing test-file that illustrates the bug or desired feature. - - =head1 AUTHORS - - =over 4 - - =item * - - David Golden <dagolden@cpan.org> - - =item * - - Ricardo Signes <rjbs@cpan.org> - - =back - - =head1 COPYRIGHT AND LICENSE - - This software is copyright (c) 2010 by David Golden and Ricardo Signes. - - This is free software; you can redistribute it and/or modify it under - the same terms as the Perl 5 programming language system itself. - - =cut - - __END__ - - - # vim: ts=2 sts=2 sw=2 et : -CPAN_META_CONVERTER - -$fatpacked{"CPAN/Meta/Feature.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_FEATURE'; - use 5.006; - use strict; - use warnings; - package CPAN::Meta::Feature; - - our $VERSION = '2.150005'; - - use CPAN::Meta::Prereqs; - - #pod =head1 DESCRIPTION - #pod - #pod A CPAN::Meta::Feature object describes an optional feature offered by a CPAN - #pod distribution and specified in the distribution's F<META.json> (or F<META.yml>) - #pod file. - #pod - #pod For the most part, this class will only be used when operating on the result of - #pod the C<feature> or C<features> methods on a L<CPAN::Meta> object. - #pod - #pod =method new - #pod - #pod my $feature = CPAN::Meta::Feature->new( $identifier => \%spec ); - #pod - #pod This returns a new Feature object. The C<%spec> argument to the constructor - #pod should be the same as the value of the C<optional_feature> entry in the - #pod distmeta. It must contain entries for C<description> and C<prereqs>. - #pod - #pod =cut - - sub new { - my ($class, $identifier, $spec) = @_; - - my %guts = ( - identifier => $identifier, - description => $spec->{description}, - prereqs => CPAN::Meta::Prereqs->new($spec->{prereqs}), - ); - - bless \%guts => $class; - } - - #pod =method identifier - #pod - #pod This method returns the feature's identifier. - #pod - #pod =cut - - sub identifier { $_[0]{identifier} } - - #pod =method description - #pod - #pod This method returns the feature's long description. - #pod - #pod =cut - - sub description { $_[0]{description} } - - #pod =method prereqs - #pod - #pod This method returns the feature's prerequisites as a L<CPAN::Meta::Prereqs> - #pod object. - #pod - #pod =cut - - sub prereqs { $_[0]{prereqs} } - - 1; - - # ABSTRACT: an optional feature provided by a CPAN distribution - - =pod - - =encoding UTF-8 - - =head1 NAME - - CPAN::Meta::Feature - an optional feature provided by a CPAN distribution - - =head1 VERSION - - version 2.150005 - - =head1 DESCRIPTION - - A CPAN::Meta::Feature object describes an optional feature offered by a CPAN - distribution and specified in the distribution's F<META.json> (or F<META.yml>) - file. - - For the most part, this class will only be used when operating on the result of - the C<feature> or C<features> methods on a L<CPAN::Meta> object. - - =head1 METHODS - - =head2 new - - my $feature = CPAN::Meta::Feature->new( $identifier => \%spec ); - - This returns a new Feature object. The C<%spec> argument to the constructor - should be the same as the value of the C<optional_feature> entry in the - distmeta. It must contain entries for C<description> and C<prereqs>. - - =head2 identifier - - This method returns the feature's identifier. - - =head2 description - - This method returns the feature's long description. - - =head2 prereqs - - This method returns the feature's prerequisites as a L<CPAN::Meta::Prereqs> - object. - - =head1 BUGS - - Please report any bugs or feature using the CPAN Request Tracker. - Bugs can be submitted through the web interface at - L<http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Meta> - - When submitting a bug or request, please include a test-file or a patch to an - existing test-file that illustrates the bug or desired feature. - - =head1 AUTHORS - - =over 4 - - =item * - - David Golden <dagolden@cpan.org> - - =item * - - Ricardo Signes <rjbs@cpan.org> - - =back - - =head1 COPYRIGHT AND LICENSE - - This software is copyright (c) 2010 by David Golden and Ricardo Signes. - - This is free software; you can redistribute it and/or modify it under - the same terms as the Perl 5 programming language system itself. - - =cut - - __END__ - - - # vim: ts=2 sts=2 sw=2 et : -CPAN_META_FEATURE - -$fatpacked{"CPAN/Meta/History.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_HISTORY'; - # vi:tw=72 - use 5.006; - use strict; - use warnings; - package CPAN::Meta::History; - - our $VERSION = '2.150005'; - - 1; - - # ABSTRACT: history of CPAN Meta Spec changes - - __END__ - - =pod - - =encoding UTF-8 - - =head1 NAME - - CPAN::Meta::History - history of CPAN Meta Spec changes - - =head1 VERSION - - version 2.150005 - - =head1 DESCRIPTION - - The CPAN Meta Spec has gone through several iterations. It was - originally written in HTML and later revised into POD (though published - in HTML generated from the POD). Fields were added, removed or changed, - sometimes by design and sometimes to reflect real-world usage after the - fact. - - This document reconstructs the history of the CPAN Meta Spec based on - change logs, repository commit messages and the published HTML files. - In some cases, particularly prior to version 1.2, the exact version - when certain fields were introduced or changed is inconsistent between - sources. When in doubt, the published HTML files for versions 1.0 to - 1.4 as they existed when version 2 was developed are used as the - definitive source. - - Starting with version 2, the specification document is part of the - CPAN-Meta distribution and will be published on CPAN as - L<CPAN::Meta::Spec>. - - Going forward, specification version numbers will be integers and - decimal portions will correspond to a release date for the CPAN::Meta - library. - - =head1 HISTORY - - =head2 Version 2 - - April 2010 - - =over - - =item * - - Revised spec examples as perl data structures rather than YAML - - =item * - - Switched to JSON serialization from YAML - - =item * - - Specified allowed version number formats - - =item * - - Replaced 'requires', 'build_requires', 'configure_requires', - 'recommends' and 'conflicts' with new 'prereqs' data structure divided - by I<phase> (configure, build, test, runtime, etc.) and I<relationship> - (requires, recommends, suggests, conflicts) - - =item * - - Added support for 'develop' phase for requirements for maintaining - a list of authoring tools - - =item * - - Changed 'license' to a list and revised the set of valid licenses - - =item * - - Made 'dynamic_config' mandatory to reduce confusion - - =item * - - Changed 'resources' subkey 'repository' to a hash that clarifies - repository type, url for browsing and url for checkout - - =item * - - Changed 'resources' subkey 'bugtracker' to a hash for either web - or mailto resource - - =item * - - Changed specification of 'optional_features': - - =over - - =item * - - Added formal specification and usage guide instead of just example - - =item * - - Changed to use new prereqs data structure instead of individual keys - - =back - - =item * - - Clarified intended use of 'author' as generalized contact list - - =item * - - Added 'release_status' field to indicate stable, testing or unstable - status to provide hints to indexers - - =item * - - Added 'description' field for a longer description of the distribution - - =item * - - Formalized use of "x_" or "X_" for all custom keys not listed in the - official spec - - =back - - =head2 Version 1.4 - - June 2008 - - =over - - =item * - - Noted explicit support for 'perl' in prerequisites - - =item * - - Added 'configure_requires' prerequisite type - - =item * - - Changed 'optional_features' - - =over - - =item * - - Example corrected to show map of maps instead of list of maps - (though descriptive text said 'map' even in v1.3) - - =item * - - Removed 'requires_packages', 'requires_os' and 'excluded_os' - as valid subkeys - - =back - - =back - - =head2 Version 1.3 - - November 2006 - - =over - - =item * - - Added 'no_index' subkey 'directory' and removed 'dir' to match actual - usage in the wild - - =item * - - Added a 'repository' subkey to 'resources' - - =back - - =head2 Version 1.2 - - August 2005 - - =over - - =item * - - Re-wrote and restructured spec in POD syntax - - =item * - - Changed 'name' to be mandatory - - =item * - - Changed 'generated_by' to be mandatory - - =item * - - Changed 'license' to be mandatory - - =item * - - Added version range specifications for prerequisites - - =item * - - Added required 'abstract' field - - =item * - - Added required 'author' field - - =item * - - Added required 'meta-spec' field to define 'version' (and 'url') of the - CPAN Meta Spec used for metadata - - =item * - - Added 'provides' field - - =item * - - Added 'no_index' field and deprecated 'private' field. 'no_index' - subkeys include 'file', 'dir', 'package' and 'namespace' - - =item * - - Added 'keywords' field - - =item * - - Added 'resources' field with subkeys 'homepage', 'license', and - 'bugtracker' - - =item * - - Added 'optional_features' field as an alternate under 'recommends'. - Includes 'description', 'requires', 'build_requires', 'conflicts', - 'requires_packages', 'requires_os' and 'excluded_os' as valid subkeys - - =item * - - Removed 'license_uri' field - - =back - - =head2 Version 1.1 - - May 2003 - - =over - - =item * - - Changed 'version' to be mandatory - - =item * - - Added 'private' field - - =item * - - Added 'license_uri' field - - =back - - =head2 Version 1.0 - - March 2003 - - =over - - =item * - - Original release (in HTML format only) - - =item * - - Included 'name', 'version', 'license', 'distribution_type', 'requires', - 'recommends', 'build_requires', 'conflicts', 'dynamic_config', - 'generated_by' - - =back - - =head1 AUTHORS - - =over 4 - - =item * - - David Golden <dagolden@cpan.org> - - =item * - - Ricardo Signes <rjbs@cpan.org> - - =back - - =head1 COPYRIGHT AND LICENSE - - This software is copyright (c) 2010 by David Golden and Ricardo Signes. - - This is free software; you can redistribute it and/or modify it under - the same terms as the Perl 5 programming language system itself. - - =cut -CPAN_META_HISTORY - -$fatpacked{"CPAN/Meta/Merge.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_MERGE'; - use strict; - use warnings; - - package CPAN::Meta::Merge; - - our $VERSION = '2.150005'; - - use Carp qw/croak/; - use Scalar::Util qw/blessed/; - use CPAN::Meta::Converter 2.141170; - - sub _is_identical { - my ($left, $right) = @_; - return - (not defined $left and not defined $right) - # if either of these are references, we compare the serialized value - || (defined $left and defined $right and $left eq $right); - } - - sub _identical { - my ($left, $right, $path) = @_; - croak sprintf "Can't merge attribute %s: '%s' does not equal '%s'", join('.', @{$path}), $left, $right - unless _is_identical($left, $right); - return $left; - } - - sub _merge { - my ($current, $next, $mergers, $path) = @_; - for my $key (keys %{$next}) { - if (not exists $current->{$key}) { - $current->{$key} = $next->{$key}; - } - elsif (my $merger = $mergers->{$key}) { - $current->{$key} = $merger->($current->{$key}, $next->{$key}, [ @{$path}, $key ]); - } - elsif ($merger = $mergers->{':default'}) { - $current->{$key} = $merger->($current->{$key}, $next->{$key}, [ @{$path}, $key ]); - } - else { - croak sprintf "Can't merge unknown attribute '%s'", join '.', @{$path}, $key; - } - } - return $current; - } - - sub _uniq { - my %seen = (); - return grep { not $seen{$_}++ } @_; - } - - sub _set_addition { - my ($left, $right) = @_; - return [ +_uniq(@{$left}, @{$right}) ]; - } - - sub _uniq_map { - my ($left, $right, $path) = @_; - for my $key (keys %{$right}) { - if (not exists $left->{$key}) { - $left->{$key} = $right->{$key}; - } - # identical strings or references are merged identically - elsif (_is_identical($left->{$key}, $right->{$key})) { - 1; # do nothing - keep left - } - elsif (ref $left->{$key} eq 'HASH' and ref $right->{$key} eq 'HASH') { - $left->{$key} = _uniq_map($left->{$key}, $right->{$key}, [ @{$path}, $key ]); - } - else { - croak 'Duplication of element ' . join '.', @{$path}, $key; - } - } - return $left; - } - - sub _improvize { - my ($left, $right, $path) = @_; - my ($name) = reverse @{$path}; - if ($name =~ /^x_/) { - if (ref($left) eq 'ARRAY') { - return _set_addition($left, $right, $path); - } - elsif (ref($left) eq 'HASH') { - return _uniq_map($left, $right, $path); - } - else { - return _identical($left, $right, $path); - } - } - croak sprintf "Can't merge '%s'", join '.', @{$path}; - } - - sub _optional_features { - my ($left, $right, $path) = @_; - - for my $key (keys %{$right}) { - if (not exists $left->{$key}) { - $left->{$key} = $right->{$key}; - } - else { - for my $subkey (keys %{ $right->{$key} }) { - next if $subkey eq 'prereqs'; - if (not exists $left->{$key}{$subkey}) { - $left->{$key}{$subkey} = $right->{$key}{$subkey}; - } - else { - Carp::croak "Cannot merge two optional_features named '$key' with different '$subkey' values" - if do { no warnings 'uninitialized'; $left->{$key}{$subkey} ne $right->{$key}{$subkey} }; - } - } - - require CPAN::Meta::Prereqs; - $left->{$key}{prereqs} = - CPAN::Meta::Prereqs->new($left->{$key}{prereqs}) - ->with_merged_prereqs(CPAN::Meta::Prereqs->new($right->{$key}{prereqs})) - ->as_string_hash; - } - } - return $left; - } - - - my %default = ( - abstract => \&_identical, - author => \&_set_addition, - dynamic_config => sub { - my ($left, $right) = @_; - return $left || $right; - }, - generated_by => sub { - my ($left, $right) = @_; - return join ', ', _uniq(split(/, /, $left), split(/, /, $right)); - }, - license => \&_set_addition, - 'meta-spec' => { - version => \&_identical, - url => \&_identical - }, - name => \&_identical, - release_status => \&_identical, - version => \&_identical, - description => \&_identical, - keywords => \&_set_addition, - no_index => { map { ($_ => \&_set_addition) } qw/file directory package namespace/ }, - optional_features => \&_optional_features, - prereqs => sub { - require CPAN::Meta::Prereqs; - my ($left, $right) = map { CPAN::Meta::Prereqs->new($_) } @_[0,1]; - return $left->with_merged_prereqs($right)->as_string_hash; - }, - provides => \&_uniq_map, - resources => { - license => \&_set_addition, - homepage => \&_identical, - bugtracker => \&_uniq_map, - repository => \&_uniq_map, - ':default' => \&_improvize, - }, - ':default' => \&_improvize, - ); - - sub new { - my ($class, %arguments) = @_; - croak 'default version required' if not exists $arguments{default_version}; - my %mapping = %default; - my %extra = %{ $arguments{extra_mappings} || {} }; - for my $key (keys %extra) { - if (ref($mapping{$key}) eq 'HASH') { - $mapping{$key} = { %{ $mapping{$key} }, %{ $extra{$key} } }; - } - else { - $mapping{$key} = $extra{$key}; - } - } - return bless { - default_version => $arguments{default_version}, - mapping => _coerce_mapping(\%mapping, []), - }, $class; - } - - my %coderef_for = ( - set_addition => \&_set_addition, - uniq_map => \&_uniq_map, - identical => \&_identical, - improvize => \&_improvize, - ); - - sub _coerce_mapping { - my ($orig, $map_path) = @_; - my %ret; - for my $key (keys %{$orig}) { - my $value = $orig->{$key}; - if (ref($orig->{$key}) eq 'CODE') { - $ret{$key} = $value; - } - elsif (ref($value) eq 'HASH') { - my $mapping = _coerce_mapping($value, [ @{$map_path}, $key ]); - $ret{$key} = sub { - my ($left, $right, $path) = @_; - return _merge($left, $right, $mapping, [ @{$path} ]); - }; - } - elsif ($coderef_for{$value}) { - $ret{$key} = $coderef_for{$value}; - } - else { - croak "Don't know what to do with " . join '.', @{$map_path}, $key; - } - } - return \%ret; - } - - sub merge { - my ($self, @items) = @_; - my $current = {}; - for my $next (@items) { - if ( blessed($next) && $next->isa('CPAN::Meta') ) { - $next = $next->as_struct; - } - elsif ( ref($next) eq 'HASH' ) { - my $cmc = CPAN::Meta::Converter->new( - $next, default_version => $self->{default_version} - ); - $next = $cmc->upgrade_fragment; - } - else { - croak "Don't know how to merge '$next'"; - } - $current = _merge($current, $next, $self->{mapping}, []); - } - return $current; - } - - 1; - - # ABSTRACT: Merging CPAN Meta fragments - - - # vim: ts=2 sts=2 sw=2 et : - - __END__ - - =pod - - =encoding UTF-8 - - =head1 NAME - - CPAN::Meta::Merge - Merging CPAN Meta fragments - - =head1 VERSION - - version 2.150005 - - =head1 SYNOPSIS - - my $merger = CPAN::Meta::Merge->new(default_version => "2"); - my $meta = $merger->merge($base, @additional); - - =head1 DESCRIPTION - - =head1 METHODS - - =head2 new - - This creates a CPAN::Meta::Merge object. It takes one mandatory named - argument, C<version>, declaring the version of the meta-spec that must be - used for the merge. It can optionally take an C<extra_mappings> argument - that allows one to add additional merging functions for specific elements. - - =head2 merge(@fragments) - - Merge all C<@fragments> together. It will accept both CPAN::Meta objects and - (possibly incomplete) hashrefs of metadata. - - =head1 AUTHORS - - =over 4 - - =item * - - David Golden <dagolden@cpan.org> - - =item * - - Ricardo Signes <rjbs@cpan.org> - - =back - - =head1 COPYRIGHT AND LICENSE - - This software is copyright (c) 2010 by David Golden and Ricardo Signes. - - This is free software; you can redistribute it and/or modify it under - the same terms as the Perl 5 programming language system itself. - - =cut -CPAN_META_MERGE - -$fatpacked{"CPAN/Meta/Prereqs.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_PREREQS'; - use 5.006; - use strict; - use warnings; - package CPAN::Meta::Prereqs; - - our $VERSION = '2.150005'; - - #pod =head1 DESCRIPTION - #pod - #pod A CPAN::Meta::Prereqs object represents the prerequisites for a CPAN - #pod distribution or one of its optional features. Each set of prereqs is - #pod organized by phase and type, as described in L<CPAN::Meta::Prereqs>. - #pod - #pod =cut - - use Carp qw(confess); - use Scalar::Util qw(blessed); - use CPAN::Meta::Requirements 2.121; - - #pod =method new - #pod - #pod my $prereq = CPAN::Meta::Prereqs->new( \%prereq_spec ); - #pod - #pod This method returns a new set of Prereqs. The input should look like the - #pod contents of the C<prereqs> field described in L<CPAN::Meta::Spec>, meaning - #pod something more or less like this: - #pod - #pod my $prereq = CPAN::Meta::Prereqs->new({ - #pod runtime => { - #pod requires => { - #pod 'Some::Module' => '1.234', - #pod ..., - #pod }, - #pod ..., - #pod }, - #pod ..., - #pod }); - #pod - #pod You can also construct an empty set of prereqs with: - #pod - #pod my $prereqs = CPAN::Meta::Prereqs->new; - #pod - #pod This empty set of prereqs is useful for accumulating new prereqs before finally - #pod dumping the whole set into a structure or string. - #pod - #pod =cut - - sub __legal_phases { qw(configure build test runtime develop) } - sub __legal_types { qw(requires recommends suggests conflicts) } - - # expect a prereq spec from META.json -- rjbs, 2010-04-11 - sub new { - my ($class, $prereq_spec) = @_; - $prereq_spec ||= {}; - - my %is_legal_phase = map {; $_ => 1 } $class->__legal_phases; - my %is_legal_type = map {; $_ => 1 } $class->__legal_types; - - my %guts; - PHASE: for my $phase (keys %$prereq_spec) { - next PHASE unless $phase =~ /\Ax_/i or $is_legal_phase{$phase}; - - my $phase_spec = $prereq_spec->{ $phase }; - next PHASE unless keys %$phase_spec; - - TYPE: for my $type (keys %$phase_spec) { - next TYPE unless $type =~ /\Ax_/i or $is_legal_type{$type}; - - my $spec = $phase_spec->{ $type }; - - next TYPE unless keys %$spec; - - $guts{prereqs}{$phase}{$type} = CPAN::Meta::Requirements->from_string_hash( - $spec - ); - } - } - - return bless \%guts => $class; - } - - #pod =method requirements_for - #pod - #pod my $requirements = $prereqs->requirements_for( $phase, $type ); - #pod - #pod This method returns a L<CPAN::Meta::Requirements> object for the given - #pod phase/type combination. If no prerequisites are registered for that - #pod combination, a new CPAN::Meta::Requirements object will be returned, and it may - #pod be added to as needed. - #pod - #pod If C<$phase> or C<$type> are undefined or otherwise invalid, an exception will - #pod be raised. - #pod - #pod =cut - - sub requirements_for { - my ($self, $phase, $type) = @_; - - confess "requirements_for called without phase" unless defined $phase; - confess "requirements_for called without type" unless defined $type; - - unless ($phase =~ /\Ax_/i or grep { $phase eq $_ } $self->__legal_phases) { - confess "requested requirements for unknown phase: $phase"; - } - - unless ($type =~ /\Ax_/i or grep { $type eq $_ } $self->__legal_types) { - confess "requested requirements for unknown type: $type"; - } - - my $req = ($self->{prereqs}{$phase}{$type} ||= CPAN::Meta::Requirements->new); - - $req->finalize if $self->is_finalized; - - return $req; - } - - #pod =method with_merged_prereqs - #pod - #pod my $new_prereqs = $prereqs->with_merged_prereqs( $other_prereqs ); - #pod - #pod my $new_prereqs = $prereqs->with_merged_prereqs( \@other_prereqs ); - #pod - #pod This method returns a new CPAN::Meta::Prereqs objects in which all the - #pod other prerequisites given are merged into the current set. This is primarily - #pod provided for combining a distribution's core prereqs with the prereqs of one of - #pod its optional features. - #pod - #pod The new prereqs object has no ties to the originals, and altering it further - #pod will not alter them. - #pod - #pod =cut - - sub with_merged_prereqs { - my ($self, $other) = @_; - - my @other = blessed($other) ? $other : @$other; - - my @prereq_objs = ($self, @other); - - my %new_arg; - - for my $phase ($self->__legal_phases) { - for my $type ($self->__legal_types) { - my $req = CPAN::Meta::Requirements->new; - - for my $prereq (@prereq_objs) { - my $this_req = $prereq->requirements_for($phase, $type); - next unless $this_req->required_modules; - - $req->add_requirements($this_req); - } - - next unless $req->required_modules; - - $new_arg{ $phase }{ $type } = $req->as_string_hash; - } - } - - return (ref $self)->new(\%new_arg); - } - - #pod =method merged_requirements - #pod - #pod my $new_reqs = $prereqs->merged_requirements( \@phases, \@types ); - #pod my $new_reqs = $prereqs->merged_requirements( \@phases ); - #pod my $new_reqs = $prereqs->merged_requirements(); - #pod - #pod This method joins together all requirements across a number of phases - #pod and types into a new L<CPAN::Meta::Requirements> object. If arguments - #pod are omitted, it defaults to "runtime", "build" and "test" for phases - #pod and "requires" and "recommends" for types. - #pod - #pod =cut - - sub merged_requirements { - my ($self, $phases, $types) = @_; - $phases = [qw/runtime build test/] unless defined $phases; - $types = [qw/requires recommends/] unless defined $types; - - confess "merged_requirements phases argument must be an arrayref" - unless ref $phases eq 'ARRAY'; - confess "merged_requirements types argument must be an arrayref" - unless ref $types eq 'ARRAY'; - - my $req = CPAN::Meta::Requirements->new; - - for my $phase ( @$phases ) { - unless ($phase =~ /\Ax_/i or grep { $phase eq $_ } $self->__legal_phases) { - confess "requested requirements for unknown phase: $phase"; - } - for my $type ( @$types ) { - unless ($type =~ /\Ax_/i or grep { $type eq $_ } $self->__legal_types) { - confess "requested requirements for unknown type: $type"; - } - $req->add_requirements( $self->requirements_for($phase, $type) ); - } - } - - $req->finalize if $self->is_finalized; - - return $req; - } - - - #pod =method as_string_hash - #pod - #pod This method returns a hashref containing structures suitable for dumping into a - #pod distmeta data structure. It is made up of hashes and strings, only; there will - #pod be no Prereqs, CPAN::Meta::Requirements, or C<version> objects inside it. - #pod - #pod =cut - - sub as_string_hash { - my ($self) = @_; - - my %hash; - - for my $phase ($self->__legal_phases) { - for my $type ($self->__legal_types) { - my $req = $self->requirements_for($phase, $type); - next unless $req->required_modules; - - $hash{ $phase }{ $type } = $req->as_string_hash; - } - } - - return \%hash; - } - - #pod =method is_finalized - #pod - #pod This method returns true if the set of prereqs has been marked "finalized," and - #pod cannot be altered. - #pod - #pod =cut - - sub is_finalized { $_[0]{finalized} } - - #pod =method finalize - #pod - #pod Calling C<finalize> on a Prereqs object will close it for further modification. - #pod Attempting to make any changes that would actually alter the prereqs will - #pod result in an exception being thrown. - #pod - #pod =cut - - sub finalize { - my ($self) = @_; - - $self->{finalized} = 1; - - for my $phase (keys %{ $self->{prereqs} }) { - $_->finalize for values %{ $self->{prereqs}{$phase} }; - } - } - - #pod =method clone - #pod - #pod my $cloned_prereqs = $prereqs->clone; - #pod - #pod This method returns a Prereqs object that is identical to the original object, - #pod but can be altered without affecting the original object. Finalization does - #pod not survive cloning, meaning that you may clone a finalized set of prereqs and - #pod then modify the clone. - #pod - #pod =cut - - sub clone { - my ($self) = @_; - - my $clone = (ref $self)->new( $self->as_string_hash ); - } - - 1; - - # ABSTRACT: a set of distribution prerequisites by phase and type - - =pod - - =encoding UTF-8 - - =head1 NAME - - CPAN::Meta::Prereqs - a set of distribution prerequisites by phase and type - - =head1 VERSION - - version 2.150005 - - =head1 DESCRIPTION - - A CPAN::Meta::Prereqs object represents the prerequisites for a CPAN - distribution or one of its optional features. Each set of prereqs is - organized by phase and type, as described in L<CPAN::Meta::Prereqs>. - - =head1 METHODS - - =head2 new - - my $prereq = CPAN::Meta::Prereqs->new( \%prereq_spec ); - - This method returns a new set of Prereqs. The input should look like the - contents of the C<prereqs> field described in L<CPAN::Meta::Spec>, meaning - something more or less like this: - - my $prereq = CPAN::Meta::Prereqs->new({ - runtime => { - requires => { - 'Some::Module' => '1.234', - ..., - }, - ..., - }, - ..., - }); - - You can also construct an empty set of prereqs with: - - my $prereqs = CPAN::Meta::Prereqs->new; - - This empty set of prereqs is useful for accumulating new prereqs before finally - dumping the whole set into a structure or string. - - =head2 requirements_for - - my $requirements = $prereqs->requirements_for( $phase, $type ); - - This method returns a L<CPAN::Meta::Requirements> object for the given - phase/type combination. If no prerequisites are registered for that - combination, a new CPAN::Meta::Requirements object will be returned, and it may - be added to as needed. - - If C<$phase> or C<$type> are undefined or otherwise invalid, an exception will - be raised. - - =head2 with_merged_prereqs - - my $new_prereqs = $prereqs->with_merged_prereqs( $other_prereqs ); - - my $new_prereqs = $prereqs->with_merged_prereqs( \@other_prereqs ); - - This method returns a new CPAN::Meta::Prereqs objects in which all the - other prerequisites given are merged into the current set. This is primarily - provided for combining a distribution's core prereqs with the prereqs of one of - its optional features. - - The new prereqs object has no ties to the originals, and altering it further - will not alter them. - - =head2 merged_requirements - - my $new_reqs = $prereqs->merged_requirements( \@phases, \@types ); - my $new_reqs = $prereqs->merged_requirements( \@phases ); - my $new_reqs = $prereqs->merged_requirements(); - - This method joins together all requirements across a number of phases - and types into a new L<CPAN::Meta::Requirements> object. If arguments - are omitted, it defaults to "runtime", "build" and "test" for phases - and "requires" and "recommends" for types. - - =head2 as_string_hash - - This method returns a hashref containing structures suitable for dumping into a - distmeta data structure. It is made up of hashes and strings, only; there will - be no Prereqs, CPAN::Meta::Requirements, or C<version> objects inside it. - - =head2 is_finalized - - This method returns true if the set of prereqs has been marked "finalized," and - cannot be altered. - - =head2 finalize - - Calling C<finalize> on a Prereqs object will close it for further modification. - Attempting to make any changes that would actually alter the prereqs will - result in an exception being thrown. - - =head2 clone - - my $cloned_prereqs = $prereqs->clone; - - This method returns a Prereqs object that is identical to the original object, - but can be altered without affecting the original object. Finalization does - not survive cloning, meaning that you may clone a finalized set of prereqs and - then modify the clone. - - =head1 BUGS - - Please report any bugs or feature using the CPAN Request Tracker. - Bugs can be submitted through the web interface at - L<http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Meta> - - When submitting a bug or request, please include a test-file or a patch to an - existing test-file that illustrates the bug or desired feature. - - =head1 AUTHORS - - =over 4 - - =item * - - David Golden <dagolden@cpan.org> - - =item * - - Ricardo Signes <rjbs@cpan.org> - - =back - - =head1 COPYRIGHT AND LICENSE - - This software is copyright (c) 2010 by David Golden and Ricardo Signes. - - This is free software; you can redistribute it and/or modify it under - the same terms as the Perl 5 programming language system itself. - - =cut - - __END__ - - - # vim: ts=2 sts=2 sw=2 et : -CPAN_META_PREREQS - -$fatpacked{"CPAN/Meta/Requirements.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_REQUIREMENTS'; - use strict; - use warnings; - package CPAN::Meta::Requirements; - # ABSTRACT: a set of version requirements for a CPAN dist - - our $VERSION = '2.133'; - - #pod =head1 SYNOPSIS - #pod - #pod use CPAN::Meta::Requirements; - #pod - #pod my $build_requires = CPAN::Meta::Requirements->new; - #pod - #pod $build_requires->add_minimum('Library::Foo' => 1.208); - #pod - #pod $build_requires->add_minimum('Library::Foo' => 2.602); - #pod - #pod $build_requires->add_minimum('Module::Bar' => 'v1.2.3'); - #pod - #pod $METAyml->{build_requires} = $build_requires->as_string_hash; - #pod - #pod =head1 DESCRIPTION - #pod - #pod A CPAN::Meta::Requirements object models a set of version constraints like - #pod those specified in the F<META.yml> or F<META.json> files in CPAN distributions, - #pod and as defined by L<CPAN::Meta::Spec>; - #pod It can be built up by adding more and more constraints, and it will reduce them - #pod to the simplest representation. - #pod - #pod Logically impossible constraints will be identified immediately by thrown - #pod exceptions. - #pod - #pod =cut - - use Carp (); - - # To help ExtUtils::MakeMaker bootstrap CPAN::Meta::Requirements on perls - # before 5.10, we fall back to the EUMM bundled compatibility version module if - # that's the only thing available. This shouldn't ever happen in a normal CPAN - # install of CPAN::Meta::Requirements, as version.pm will be picked up from - # prereqs and be available at runtime. - - BEGIN { - eval "use version ()"; ## no critic - if ( my $err = $@ ) { - eval "use ExtUtils::MakeMaker::version" or die $err; ## no critic - } - } - - # Perl 5.10.0 didn't have "is_qv" in version.pm - *_is_qv = version->can('is_qv') ? sub { $_[0]->is_qv } : sub { exists $_[0]->{qv} }; - - # construct once, reuse many times - my $V0 = version->new(0); - - #pod =method new - #pod - #pod my $req = CPAN::Meta::Requirements->new; - #pod - #pod This returns a new CPAN::Meta::Requirements object. It takes an optional - #pod hash reference argument. Currently, only one key is supported: - #pod - #pod =for :list - #pod * C<bad_version_hook> -- if provided, when a version cannot be parsed into - #pod a version object, this code reference will be called with the invalid - #pod version string as first argument, and the module name as second - #pod argument. It must return a valid version object. - #pod - #pod All other keys are ignored. - #pod - #pod =cut - - my @valid_options = qw( bad_version_hook ); - - sub new { - my ($class, $options) = @_; - $options ||= {}; - Carp::croak "Argument to $class\->new() must be a hash reference" - unless ref $options eq 'HASH'; - my %self = map {; $_ => $options->{$_}} @valid_options; - - return bless \%self => $class; - } - - # from version::vpp - sub _find_magic_vstring { - my $value = shift; - my $tvalue = ''; - require B; - my $sv = B::svref_2object(\$value); - my $magic = ref($sv) eq 'B::PVMG' ? $sv->MAGIC : undef; - while ( $magic ) { - if ( $magic->TYPE eq 'V' ) { - $tvalue = $magic->PTR; - $tvalue =~ s/^v?(.+)$/v$1/; - last; - } - else { - $magic = $magic->MOREMAGIC; - } - } - return $tvalue; - } - - # safe if given an unblessed reference - sub _isa_version { - UNIVERSAL::isa( $_[0], 'UNIVERSAL' ) && $_[0]->isa('version') - } - - sub _version_object { - my ($self, $module, $version) = @_; - - my ($vobj, $err); - - if (not defined $version or (!ref($version) && $version eq '0')) { - return $V0; - } - elsif ( ref($version) eq 'version' || _isa_version($version) ) { - $vobj = $version; - } - else { - # hack around version::vpp not handling <3 character vstring literals - if ( $INC{'version/vpp.pm'} || $INC{'ExtUtils/MakeMaker/version/vpp.pm'} ) { - my $magic = _find_magic_vstring( $version ); - $version = $magic if length $magic; - } - eval { - local $SIG{__WARN__} = sub { die "Invalid version: $_[0]" }; - $vobj = version->new($version); - }; - if ( my $err = $@ ) { - my $hook = $self->{bad_version_hook}; - $vobj = eval { $hook->($version, $module) } - if ref $hook eq 'CODE'; - unless (eval { $vobj->isa("version") }) { - $err =~ s{ at .* line \d+.*$}{}; - die "Can't convert '$version': $err"; - } - } - } - - # ensure no leading '.' - if ( $vobj =~ m{\A\.} ) { - $vobj = version->new("0$vobj"); - } - - # ensure normal v-string form - if ( _is_qv($vobj) ) { - $vobj = version->new($vobj->normal); - } - - return $vobj; - } - - #pod =method add_minimum - #pod - #pod $req->add_minimum( $module => $version ); - #pod - #pod This adds a new minimum version requirement. If the new requirement is - #pod redundant to the existing specification, this has no effect. - #pod - #pod Minimum requirements are inclusive. C<$version> is required, along with any - #pod greater version number. - #pod - #pod This method returns the requirements object. - #pod - #pod =method add_maximum - #pod - #pod $req->add_maximum( $module => $version ); - #pod - #pod This adds a new maximum version requirement. If the new requirement is - #pod redundant to the existing specification, this has no effect. - #pod - #pod Maximum requirements are inclusive. No version strictly greater than the given - #pod version is allowed. - #pod - #pod This method returns the requirements object. - #pod - #pod =method add_exclusion - #pod - #pod $req->add_exclusion( $module => $version ); - #pod - #pod This adds a new excluded version. For example, you might use these three - #pod method calls: - #pod - #pod $req->add_minimum( $module => '1.00' ); - #pod $req->add_maximum( $module => '1.82' ); - #pod - #pod $req->add_exclusion( $module => '1.75' ); - #pod - #pod Any version between 1.00 and 1.82 inclusive would be acceptable, except for - #pod 1.75. - #pod - #pod This method returns the requirements object. - #pod - #pod =method exact_version - #pod - #pod $req->exact_version( $module => $version ); - #pod - #pod This sets the version required for the given module to I<exactly> the given - #pod version. No other version would be considered acceptable. - #pod - #pod This method returns the requirements object. - #pod - #pod =cut - - BEGIN { - for my $type (qw(maximum exclusion exact_version)) { - my $method = "with_$type"; - my $to_add = $type eq 'exact_version' ? $type : "add_$type"; - - my $code = sub { - my ($self, $name, $version) = @_; - - $version = $self->_version_object( $name, $version ); - - $self->__modify_entry_for($name, $method, $version); - - return $self; - }; - - no strict 'refs'; - *$to_add = $code; - } - } - - # add_minimum is optimized compared to generated subs above because - # it is called frequently and with "0" or equivalent input - sub add_minimum { - my ($self, $name, $version) = @_; - - # stringify $version so that version->new("0.00")->stringify ne "0" - # which preserves the user's choice of "0.00" as the requirement - if (not defined $version or "$version" eq '0') { - return $self if $self->__entry_for($name); - Carp::confess("can't add new requirements to finalized requirements") - if $self->is_finalized; - - $self->{requirements}{ $name } = - CPAN::Meta::Requirements::_Range::Range->with_minimum($V0); - } - else { - $version = $self->_version_object( $name, $version ); - - $self->__modify_entry_for($name, 'with_minimum', $version); - } - return $self; - } - - #pod =method add_requirements - #pod - #pod $req->add_requirements( $another_req_object ); - #pod - #pod This method adds all the requirements in the given CPAN::Meta::Requirements object - #pod to the requirements object on which it was called. If there are any conflicts, - #pod an exception is thrown. - #pod - #pod This method returns the requirements object. - #pod - #pod =cut - - sub add_requirements { - my ($self, $req) = @_; - - for my $module ($req->required_modules) { - my $modifiers = $req->__entry_for($module)->as_modifiers; - for my $modifier (@$modifiers) { - my ($method, @args) = @$modifier; - $self->$method($module => @args); - }; - } - - return $self; - } - - #pod =method accepts_module - #pod - #pod my $bool = $req->accepts_module($module => $version); - #pod - #pod Given an module and version, this method returns true if the version - #pod specification for the module accepts the provided version. In other words, - #pod given: - #pod - #pod Module => '>= 1.00, < 2.00' - #pod - #pod We will accept 1.00 and 1.75 but not 0.50 or 2.00. - #pod - #pod For modules that do not appear in the requirements, this method will return - #pod true. - #pod - #pod =cut - - sub accepts_module { - my ($self, $module, $version) = @_; - - $version = $self->_version_object( $module, $version ); - - return 1 unless my $range = $self->__entry_for($module); - return $range->_accepts($version); - } - - #pod =method clear_requirement - #pod - #pod $req->clear_requirement( $module ); - #pod - #pod This removes the requirement for a given module from the object. - #pod - #pod This method returns the requirements object. - #pod - #pod =cut - - sub clear_requirement { - my ($self, $module) = @_; - - return $self unless $self->__entry_for($module); - - Carp::confess("can't clear requirements on finalized requirements") - if $self->is_finalized; - - delete $self->{requirements}{ $module }; - - return $self; - } - - #pod =method requirements_for_module - #pod - #pod $req->requirements_for_module( $module ); - #pod - #pod This returns a string containing the version requirements for a given module in - #pod the format described in L<CPAN::Meta::Spec> or undef if the given module has no - #pod requirements. This should only be used for informational purposes such as error - #pod messages and should not be interpreted or used for comparison (see - #pod L</accepts_module> instead.) - #pod - #pod =cut - - sub requirements_for_module { - my ($self, $module) = @_; - my $entry = $self->__entry_for($module); - return unless $entry; - return $entry->as_string; - } - - #pod =method required_modules - #pod - #pod This method returns a list of all the modules for which requirements have been - #pod specified. - #pod - #pod =cut - - sub required_modules { keys %{ $_[0]{requirements} } } - - #pod =method clone - #pod - #pod $req->clone; - #pod - #pod This method returns a clone of the invocant. The clone and the original object - #pod can then be changed independent of one another. - #pod - #pod =cut - - sub clone { - my ($self) = @_; - my $new = (ref $self)->new; - - return $new->add_requirements($self); - } - - sub __entry_for { $_[0]{requirements}{ $_[1] } } - - sub __modify_entry_for { - my ($self, $name, $method, $version) = @_; - - my $fin = $self->is_finalized; - my $old = $self->__entry_for($name); - - Carp::confess("can't add new requirements to finalized requirements") - if $fin and not $old; - - my $new = ($old || 'CPAN::Meta::Requirements::_Range::Range') - ->$method($version); - - Carp::confess("can't modify finalized requirements") - if $fin and $old->as_string ne $new->as_string; - - $self->{requirements}{ $name } = $new; - } - - #pod =method is_simple - #pod - #pod This method returns true if and only if all requirements are inclusive minimums - #pod -- that is, if their string expression is just the version number. - #pod - #pod =cut - - sub is_simple { - my ($self) = @_; - for my $module ($self->required_modules) { - # XXX: This is a complete hack, but also entirely correct. - return if $self->__entry_for($module)->as_string =~ /\s/; - } - - return 1; - } - - #pod =method is_finalized - #pod - #pod This method returns true if the requirements have been finalized by having the - #pod C<finalize> method called on them. - #pod - #pod =cut - - sub is_finalized { $_[0]{finalized} } - - #pod =method finalize - #pod - #pod This method marks the requirements finalized. Subsequent attempts to change - #pod the requirements will be fatal, I<if> they would result in a change. If they - #pod would not alter the requirements, they have no effect. - #pod - #pod If a finalized set of requirements is cloned, the cloned requirements are not - #pod also finalized. - #pod - #pod =cut - - sub finalize { $_[0]{finalized} = 1 } - - #pod =method as_string_hash - #pod - #pod This returns a reference to a hash describing the requirements using the - #pod strings in the L<CPAN::Meta::Spec> specification. - #pod - #pod For example after the following program: - #pod - #pod my $req = CPAN::Meta::Requirements->new; - #pod - #pod $req->add_minimum('CPAN::Meta::Requirements' => 0.102); - #pod - #pod $req->add_minimum('Library::Foo' => 1.208); - #pod - #pod $req->add_maximum('Library::Foo' => 2.602); - #pod - #pod $req->add_minimum('Module::Bar' => 'v1.2.3'); - #pod - #pod $req->add_exclusion('Module::Bar' => 'v1.2.8'); - #pod - #pod $req->exact_version('Xyzzy' => '6.01'); - #pod - #pod my $hashref = $req->as_string_hash; - #pod - #pod C<$hashref> would contain: - #pod - #pod { - #pod 'CPAN::Meta::Requirements' => '0.102', - #pod 'Library::Foo' => '>= 1.208, <= 2.206', - #pod 'Module::Bar' => '>= v1.2.3, != v1.2.8', - #pod 'Xyzzy' => '== 6.01', - #pod } - #pod - #pod =cut - - sub as_string_hash { - my ($self) = @_; - - my %hash = map {; $_ => $self->{requirements}{$_}->as_string } - $self->required_modules; - - return \%hash; - } - - #pod =method add_string_requirement - #pod - #pod $req->add_string_requirement('Library::Foo' => '>= 1.208, <= 2.206'); - #pod $req->add_string_requirement('Library::Foo' => v1.208); - #pod - #pod This method parses the passed in string and adds the appropriate requirement - #pod for the given module. A version can be a Perl "v-string". It understands - #pod version ranges as described in the L<CPAN::Meta::Spec/Version Ranges>. For - #pod example: - #pod - #pod =over 4 - #pod - #pod =item 1.3 - #pod - #pod =item >= 1.3 - #pod - #pod =item <= 1.3 - #pod - #pod =item == 1.3 - #pod - #pod =item != 1.3 - #pod - #pod =item > 1.3 - #pod - #pod =item < 1.3 - #pod - #pod =item >= 1.3, != 1.5, <= 2.0 - #pod - #pod A version number without an operator is equivalent to specifying a minimum - #pod (C<E<gt>=>). Extra whitespace is allowed. - #pod - #pod =back - #pod - #pod =cut - - my %methods_for_op = ( - '==' => [ qw(exact_version) ], - '!=' => [ qw(add_exclusion) ], - '>=' => [ qw(add_minimum) ], - '<=' => [ qw(add_maximum) ], - '>' => [ qw(add_minimum add_exclusion) ], - '<' => [ qw(add_maximum add_exclusion) ], - ); - - sub add_string_requirement { - my ($self, $module, $req) = @_; - - unless ( defined $req && length $req ) { - $req = 0; - $self->_blank_carp($module); - } - - my $magic = _find_magic_vstring( $req ); - if (length $magic) { - $self->add_minimum($module => $magic); - return; - } - - my @parts = split qr{\s*,\s*}, $req; - - for my $part (@parts) { - my ($op, $ver) = $part =~ m{\A\s*(==|>=|>|<=|<|!=)\s*(.*)\z}; - - if (! defined $op) { - $self->add_minimum($module => $part); - } else { - Carp::confess("illegal requirement string: $req") - unless my $methods = $methods_for_op{ $op }; - - $self->$_($module => $ver) for @$methods; - } - } - } - - #pod =method from_string_hash - #pod - #pod my $req = CPAN::Meta::Requirements->from_string_hash( \%hash ); - #pod my $req = CPAN::Meta::Requirements->from_string_hash( \%hash, \%opts ); - #pod - #pod This is an alternate constructor for a CPAN::Meta::Requirements - #pod object. It takes a hash of module names and version requirement - #pod strings and returns a new CPAN::Meta::Requirements object. As with - #pod add_string_requirement, a version can be a Perl "v-string". Optionally, - #pod you can supply a hash-reference of options, exactly as with the L</new> - #pod method. - #pod - #pod =cut - - sub _blank_carp { - my ($self, $module) = @_; - Carp::carp("Undefined requirement for $module treated as '0'"); - } - - sub from_string_hash { - my ($class, $hash, $options) = @_; - - my $self = $class->new($options); - - for my $module (keys %$hash) { - my $req = $hash->{$module}; - unless ( defined $req && length $req ) { - $req = 0; - $class->_blank_carp($module); - } - $self->add_string_requirement($module, $req); - } - - return $self; - } - - ############################################################## - - { - package - CPAN::Meta::Requirements::_Range::Exact; - sub _new { bless { version => $_[1] } => $_[0] } - - sub _accepts { return $_[0]{version} == $_[1] } - - sub as_string { return "== $_[0]{version}" } - - sub as_modifiers { return [ [ exact_version => $_[0]{version} ] ] } - - sub _clone { - (ref $_[0])->_new( version->new( $_[0]{version} ) ) - } - - sub with_exact_version { - my ($self, $version) = @_; - - return $self->_clone if $self->_accepts($version); - - Carp::confess("illegal requirements: unequal exact version specified"); - } - - sub with_minimum { - my ($self, $minimum) = @_; - return $self->_clone if $self->{version} >= $minimum; - Carp::confess("illegal requirements: minimum above exact specification"); - } - - sub with_maximum { - my ($self, $maximum) = @_; - return $self->_clone if $self->{version} <= $maximum; - Carp::confess("illegal requirements: maximum below exact specification"); - } - - sub with_exclusion { - my ($self, $exclusion) = @_; - return $self->_clone unless $exclusion == $self->{version}; - Carp::confess("illegal requirements: excluded exact specification"); - } - } - - ############################################################## - - { - package - CPAN::Meta::Requirements::_Range::Range; - - sub _self { ref($_[0]) ? $_[0] : (bless { } => $_[0]) } - - sub _clone { - return (bless { } => $_[0]) unless ref $_[0]; - - my ($s) = @_; - my %guts = ( - (exists $s->{minimum} ? (minimum => version->new($s->{minimum})) : ()), - (exists $s->{maximum} ? (maximum => version->new($s->{maximum})) : ()), - - (exists $s->{exclusions} - ? (exclusions => [ map { version->new($_) } @{ $s->{exclusions} } ]) - : ()), - ); - - bless \%guts => ref($s); - } - - sub as_modifiers { - my ($self) = @_; - my @mods; - push @mods, [ add_minimum => $self->{minimum} ] if exists $self->{minimum}; - push @mods, [ add_maximum => $self->{maximum} ] if exists $self->{maximum}; - push @mods, map {; [ add_exclusion => $_ ] } @{$self->{exclusions} || []}; - return \@mods; - } - - sub as_string { - my ($self) = @_; - - return 0 if ! keys %$self; - - return "$self->{minimum}" if (keys %$self) == 1 and exists $self->{minimum}; - - my @exclusions = @{ $self->{exclusions} || [] }; - - my @parts; - - for my $pair ( - [ qw( >= > minimum ) ], - [ qw( <= < maximum ) ], - ) { - my ($op, $e_op, $k) = @$pair; - if (exists $self->{$k}) { - my @new_exclusions = grep { $_ != $self->{ $k } } @exclusions; - if (@new_exclusions == @exclusions) { - push @parts, "$op $self->{ $k }"; - } else { - push @parts, "$e_op $self->{ $k }"; - @exclusions = @new_exclusions; - } - } - } - - push @parts, map {; "!= $_" } @exclusions; - - return join q{, }, @parts; - } - - sub with_exact_version { - my ($self, $version) = @_; - $self = $self->_clone; - - Carp::confess("illegal requirements: exact specification outside of range") - unless $self->_accepts($version); - - return CPAN::Meta::Requirements::_Range::Exact->_new($version); - } - - sub _simplify { - my ($self) = @_; - - if (defined $self->{minimum} and defined $self->{maximum}) { - if ($self->{minimum} == $self->{maximum}) { - Carp::confess("illegal requirements: excluded all values") - if grep { $_ == $self->{minimum} } @{ $self->{exclusions} || [] }; - - return CPAN::Meta::Requirements::_Range::Exact->_new($self->{minimum}) - } - - Carp::confess("illegal requirements: minimum exceeds maximum") - if $self->{minimum} > $self->{maximum}; - } - - # eliminate irrelevant exclusions - if ($self->{exclusions}) { - my %seen; - @{ $self->{exclusions} } = grep { - (! defined $self->{minimum} or $_ >= $self->{minimum}) - and - (! defined $self->{maximum} or $_ <= $self->{maximum}) - and - ! $seen{$_}++ - } @{ $self->{exclusions} }; - } - - return $self; - } - - sub with_minimum { - my ($self, $minimum) = @_; - $self = $self->_clone; - - if (defined (my $old_min = $self->{minimum})) { - $self->{minimum} = (sort { $b cmp $a } ($minimum, $old_min))[0]; - } else { - $self->{minimum} = $minimum; - } - - return $self->_simplify; - } - - sub with_maximum { - my ($self, $maximum) = @_; - $self = $self->_clone; - - if (defined (my $old_max = $self->{maximum})) { - $self->{maximum} = (sort { $a cmp $b } ($maximum, $old_max))[0]; - } else { - $self->{maximum} = $maximum; - } - - return $self->_simplify; - } - - sub with_exclusion { - my ($self, $exclusion) = @_; - $self = $self->_clone; - - push @{ $self->{exclusions} ||= [] }, $exclusion; - - return $self->_simplify; - } - - sub _accepts { - my ($self, $version) = @_; - - return if defined $self->{minimum} and $version < $self->{minimum}; - return if defined $self->{maximum} and $version > $self->{maximum}; - return if defined $self->{exclusions} - and grep { $version == $_ } @{ $self->{exclusions} }; - - return 1; - } - } - - 1; - # vim: ts=2 sts=2 sw=2 et: - - __END__ - - =pod - - =encoding UTF-8 - - =head1 NAME - - CPAN::Meta::Requirements - a set of version requirements for a CPAN dist - - =head1 VERSION - - version 2.133 - - =head1 SYNOPSIS - - use CPAN::Meta::Requirements; - - my $build_requires = CPAN::Meta::Requirements->new; - - $build_requires->add_minimum('Library::Foo' => 1.208); - - $build_requires->add_minimum('Library::Foo' => 2.602); - - $build_requires->add_minimum('Module::Bar' => 'v1.2.3'); - - $METAyml->{build_requires} = $build_requires->as_string_hash; - - =head1 DESCRIPTION - - A CPAN::Meta::Requirements object models a set of version constraints like - those specified in the F<META.yml> or F<META.json> files in CPAN distributions, - and as defined by L<CPAN::Meta::Spec>; - It can be built up by adding more and more constraints, and it will reduce them - to the simplest representation. - - Logically impossible constraints will be identified immediately by thrown - exceptions. - - =head1 METHODS - - =head2 new - - my $req = CPAN::Meta::Requirements->new; - - This returns a new CPAN::Meta::Requirements object. It takes an optional - hash reference argument. Currently, only one key is supported: - - =over 4 - - =item * - - C<bad_version_hook> -- if provided, when a version cannot be parsed into a version object, this code reference will be called with the invalid version string as first argument, and the module name as second argument. It must return a valid version object. - - =back - - All other keys are ignored. - - =head2 add_minimum - - $req->add_minimum( $module => $version ); - - This adds a new minimum version requirement. If the new requirement is - redundant to the existing specification, this has no effect. - - Minimum requirements are inclusive. C<$version> is required, along with any - greater version number. - - This method returns the requirements object. - - =head2 add_maximum - - $req->add_maximum( $module => $version ); - - This adds a new maximum version requirement. If the new requirement is - redundant to the existing specification, this has no effect. - - Maximum requirements are inclusive. No version strictly greater than the given - version is allowed. - - This method returns the requirements object. - - =head2 add_exclusion - - $req->add_exclusion( $module => $version ); - - This adds a new excluded version. For example, you might use these three - method calls: - - $req->add_minimum( $module => '1.00' ); - $req->add_maximum( $module => '1.82' ); - - $req->add_exclusion( $module => '1.75' ); - - Any version between 1.00 and 1.82 inclusive would be acceptable, except for - 1.75. - - This method returns the requirements object. - - =head2 exact_version - - $req->exact_version( $module => $version ); - - This sets the version required for the given module to I<exactly> the given - version. No other version would be considered acceptable. - - This method returns the requirements object. - - =head2 add_requirements - - $req->add_requirements( $another_req_object ); - - This method adds all the requirements in the given CPAN::Meta::Requirements object - to the requirements object on which it was called. If there are any conflicts, - an exception is thrown. - - This method returns the requirements object. - - =head2 accepts_module - - my $bool = $req->accepts_module($module => $version); - - Given an module and version, this method returns true if the version - specification for the module accepts the provided version. In other words, - given: - - Module => '>= 1.00, < 2.00' - - We will accept 1.00 and 1.75 but not 0.50 or 2.00. - - For modules that do not appear in the requirements, this method will return - true. - - =head2 clear_requirement - - $req->clear_requirement( $module ); - - This removes the requirement for a given module from the object. - - This method returns the requirements object. - - =head2 requirements_for_module - - $req->requirements_for_module( $module ); - - This returns a string containing the version requirements for a given module in - the format described in L<CPAN::Meta::Spec> or undef if the given module has no - requirements. This should only be used for informational purposes such as error - messages and should not be interpreted or used for comparison (see - L</accepts_module> instead.) - - =head2 required_modules - - This method returns a list of all the modules for which requirements have been - specified. - - =head2 clone - - $req->clone; - - This method returns a clone of the invocant. The clone and the original object - can then be changed independent of one another. - - =head2 is_simple - - This method returns true if and only if all requirements are inclusive minimums - -- that is, if their string expression is just the version number. - - =head2 is_finalized - - This method returns true if the requirements have been finalized by having the - C<finalize> method called on them. - - =head2 finalize - - This method marks the requirements finalized. Subsequent attempts to change - the requirements will be fatal, I<if> they would result in a change. If they - would not alter the requirements, they have no effect. - - If a finalized set of requirements is cloned, the cloned requirements are not - also finalized. - - =head2 as_string_hash - - This returns a reference to a hash describing the requirements using the - strings in the L<CPAN::Meta::Spec> specification. - - For example after the following program: - - my $req = CPAN::Meta::Requirements->new; - - $req->add_minimum('CPAN::Meta::Requirements' => 0.102); - - $req->add_minimum('Library::Foo' => 1.208); - - $req->add_maximum('Library::Foo' => 2.602); - - $req->add_minimum('Module::Bar' => 'v1.2.3'); - - $req->add_exclusion('Module::Bar' => 'v1.2.8'); - - $req->exact_version('Xyzzy' => '6.01'); - - my $hashref = $req->as_string_hash; - - C<$hashref> would contain: - - { - 'CPAN::Meta::Requirements' => '0.102', - 'Library::Foo' => '>= 1.208, <= 2.206', - 'Module::Bar' => '>= v1.2.3, != v1.2.8', - 'Xyzzy' => '== 6.01', - } - - =head2 add_string_requirement - - $req->add_string_requirement('Library::Foo' => '>= 1.208, <= 2.206'); - $req->add_string_requirement('Library::Foo' => v1.208); - - This method parses the passed in string and adds the appropriate requirement - for the given module. A version can be a Perl "v-string". It understands - version ranges as described in the L<CPAN::Meta::Spec/Version Ranges>. For - example: - - =over 4 - - =item 1.3 - - =item >= 1.3 - - =item <= 1.3 - - =item == 1.3 - - =item != 1.3 - - =item > 1.3 - - =item < 1.3 - - =item >= 1.3, != 1.5, <= 2.0 - - A version number without an operator is equivalent to specifying a minimum - (C<E<gt>=>). Extra whitespace is allowed. - - =back - - =head2 from_string_hash - - my $req = CPAN::Meta::Requirements->from_string_hash( \%hash ); - my $req = CPAN::Meta::Requirements->from_string_hash( \%hash, \%opts ); - - This is an alternate constructor for a CPAN::Meta::Requirements - object. It takes a hash of module names and version requirement - strings and returns a new CPAN::Meta::Requirements object. As with - add_string_requirement, a version can be a Perl "v-string". Optionally, - you can supply a hash-reference of options, exactly as with the L</new> - method. - - =for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan - - =head1 SUPPORT - - =head2 Bugs / Feature Requests - - Please report any bugs or feature requests through the issue tracker - at L<https://github.com/dagolden/CPAN-Meta-Requirements/issues>. - You will be notified automatically of any progress on your issue. - - =head2 Source Code - - This is open source software. The code repository is available for - public review and contribution under the terms of the license. - - L<https://github.com/dagolden/CPAN-Meta-Requirements> - - git clone https://github.com/dagolden/CPAN-Meta-Requirements.git - - =head1 AUTHORS - - =over 4 - - =item * - - David Golden <dagolden@cpan.org> - - =item * - - Ricardo Signes <rjbs@cpan.org> - - =back - - =head1 CONTRIBUTORS - - =for stopwords Ed J Karen Etheridge Leon Timmermans robario - - =over 4 - - =item * - - Ed J <mohawk2@users.noreply.github.com> - - =item * - - Karen Etheridge <ether@cpan.org> - - =item * - - Leon Timmermans <fawaka@gmail.com> - - =item * - - robario <webmaster@robario.com> - - =back - - =head1 COPYRIGHT AND LICENSE - - This software is copyright (c) 2010 by David Golden and Ricardo Signes. - - This is free software; you can redistribute it and/or modify it under - the same terms as the Perl 5 programming language system itself. - - =cut -CPAN_META_REQUIREMENTS - -$fatpacked{"CPAN/Meta/Spec.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_SPEC'; - # XXX RULES FOR PATCHING THIS FILE XXX - # Patches that fix typos or formatting are acceptable. Patches - # that change semantics are not acceptable without prior approval - # by David Golden or Ricardo Signes. - - use 5.006; - use strict; - use warnings; - package CPAN::Meta::Spec; - - our $VERSION = '2.150005'; - - 1; - - # ABSTRACT: specification for CPAN distribution metadata - - - # vi:tw=72 - - __END__ - - =pod - - =encoding UTF-8 - - =head1 NAME - - CPAN::Meta::Spec - specification for CPAN distribution metadata - - =head1 VERSION - - version 2.150005 - - =head1 SYNOPSIS - - my $distmeta = { - name => 'Module-Build', - abstract => 'Build and install Perl modules', - description => "Module::Build is a system for " - . "building, testing, and installing Perl modules. " - . "It is meant to ... blah blah blah ...", - version => '0.36', - release_status => 'stable', - author => [ - 'Ken Williams <kwilliams@cpan.org>', - 'Module-Build List <module-build@perl.org>', # additional contact - ], - license => [ 'perl_5' ], - prereqs => { - runtime => { - requires => { - 'perl' => '5.006', - 'ExtUtils::Install' => '0', - 'File::Basename' => '0', - 'File::Compare' => '0', - 'IO::File' => '0', - }, - recommends => { - 'Archive::Tar' => '1.00', - 'ExtUtils::Install' => '0.3', - 'ExtUtils::ParseXS' => '2.02', - }, - }, - build => { - requires => { - 'Test::More' => '0', - }, - } - }, - resources => { - license => ['http://dev.perl.org/licenses/'], - }, - optional_features => { - domination => { - description => 'Take over the world', - prereqs => { - develop => { requires => { 'Genius::Evil' => '1.234' } }, - runtime => { requires => { 'Machine::Weather' => '2.0' } }, - }, - }, - }, - dynamic_config => 1, - keywords => [ qw/ toolchain cpan dual-life / ], - 'meta-spec' => { - version => '2', - url => 'https://metacpan.org/pod/CPAN::Meta::Spec', - }, - generated_by => 'Module::Build version 0.36', - }; - - =head1 DESCRIPTION - - This document describes version 2 of the CPAN distribution metadata - specification, also known as the "CPAN Meta Spec". - - Revisions of this specification for typo corrections and prose - clarifications may be issued as CPAN::Meta::Spec 2.I<x>. These - revisions will never change semantics or add or remove specified - behavior. - - Distribution metadata describe important properties of Perl - distributions. Distribution building tools like Module::Build, - Module::Install, ExtUtils::MakeMaker or Dist::Zilla should create a - metadata file in accordance with this specification and include it with - the distribution for use by automated tools that index, examine, package - or install Perl distributions. - - =head1 TERMINOLOGY - - =over 4 - - =item distribution - - This is the primary object described by the metadata. In the context of - this document it usually refers to a collection of modules, scripts, - and/or documents that are distributed together for other developers to - use. Examples of distributions are C<Class-Container>, C<libwww-perl>, - or C<DBI>. - - =item module - - This refers to a reusable library of code contained in a single file. - Modules usually contain one or more packages and are often referred - to by the name of a primary package that can be mapped to the file - name. For example, one might refer to C<File::Spec> instead of - F<File/Spec.pm> - - =item package - - This refers to a namespace declared with the Perl C<package> statement. - In Perl, packages often have a version number property given by the - C<$VERSION> variable in the namespace. - - =item consumer - - This refers to code that reads a metadata file, deserializes it into a - data structure in memory, or interprets a data structure of metadata - elements. - - =item producer - - This refers to code that constructs a metadata data structure, - serializes into a bytestream and/or writes it to disk. - - =item must, should, may, etc. - - These terms are interpreted as described in IETF RFC 2119. - - =back - - =head1 DATA TYPES - - Fields in the L</STRUCTURE> section describe data elements, each of - which has an associated data type as described herein. There are four - primitive types: Boolean, String, List and Map. Other types are - subtypes of primitives and define compound data structures or define - constraints on the values of a data element. - - =head2 Boolean - - A I<Boolean> is used to provide a true or false value. It B<must> be - represented as a defined value. - - =head2 String - - A I<String> is data element containing a non-zero length sequence of - Unicode characters, such as an ordinary Perl scalar that is not a - reference. - - =head2 List - - A I<List> is an ordered collection of zero or more data elements. - Elements of a List may be of mixed types. - - Producers B<must> represent List elements using a data structure which - unambiguously indicates that multiple values are possible, such as a - reference to a Perl array (an "arrayref"). - - Consumers expecting a List B<must> consider a String as equivalent to a - List of length 1. - - =head2 Map - - A I<Map> is an unordered collection of zero or more data elements - ("values"), indexed by associated String elements ("keys"). The Map's - value elements may be of mixed types. - - =head2 License String - - A I<License String> is a subtype of String with a restricted set of - values. Valid values are described in detail in the description of - the L</license> field. - - =head2 URL - - I<URL> is a subtype of String containing a Uniform Resource Locator or - Identifier. [ This type is called URL and not URI for historical reasons. ] - - =head2 Version - - A I<Version> is a subtype of String containing a value that describes - the version number of packages or distributions. Restrictions on format - are described in detail in the L</Version Formats> section. - - =head2 Version Range - - The I<Version Range> type is a subtype of String. It describes a range - of Versions that may be present or installed to fulfill prerequisites. - It is specified in detail in the L</Version Ranges> section. - - =head1 STRUCTURE - - The metadata structure is a data element of type Map. This section - describes valid keys within the Map. - - Any keys not described in this specification document (whether top-level - or within compound data structures described herein) are considered - I<custom keys> and B<must> begin with an "x" or "X" and be followed by an - underscore; i.e. they must match the pattern: C<< qr{\Ax_}i >>. If a - custom key refers to a compound data structure, subkeys within it do not - need an "x_" or "X_" prefix. - - Consumers of metadata may ignore any or all custom keys. All other keys - not described herein are invalid and should be ignored by consumers. - Producers must not generate or output invalid keys. - - For each key, an example is provided followed by a description. The - description begins with the version of spec in which the key was added - or in which the definition was modified, whether the key is I<required> - or I<optional> and the data type of the corresponding data element. - These items are in parentheses, brackets and braces, respectively. - - If a data type is a Map or Map subtype, valid subkeys will be described - as well. - - Some fields are marked I<Deprecated>. These are shown for historical - context and must not be produced in or consumed from any metadata structure - of version 2 or higher. - - =head2 REQUIRED FIELDS - - =head3 abstract - - Example: - - abstract => 'Build and install Perl modules' - - (Spec 1.2) [required] {String} - - This is a short description of the purpose of the distribution. - - =head3 author - - Example: - - author => [ 'Ken Williams <kwilliams@cpan.org>' ] - - (Spec 1.2) [required] {List of one or more Strings} - - This List indicates the person(s) to contact concerning the - distribution. The preferred form of the contact string is: - - contact-name <email-address> - - This field provides a general contact list independent of other - structured fields provided within the L</resources> field, such as - C<bugtracker>. The addressee(s) can be contacted for any purpose - including but not limited to (security) problems with the distribution, - questions about the distribution or bugs in the distribution. - - A distribution's original author is usually the contact listed within - this field. Co-maintainers, successor maintainers or mailing lists - devoted to the distribution may also be listed in addition to or instead - of the original author. - - =head3 dynamic_config - - Example: - - dynamic_config => 1 - - (Spec 2) [required] {Boolean} - - A boolean flag indicating whether a F<Build.PL> or F<Makefile.PL> (or - similar) must be executed to determine prerequisites. - - This field should be set to a true value if the distribution performs - some dynamic configuration (asking questions, sensing the environment, - etc.) as part of its configuration. This field should be set to a false - value to indicate that prerequisites included in metadata may be - considered final and valid for static analysis. - - Note: when this field is true, post-configuration prerequisites are not - guaranteed to bear any relation whatsoever to those stated in the metadata, - and relying on them doing so is an error. See also - L</Prerequisites for dynamically configured distributions> in the implementors' - notes. - - This field explicitly B<does not> indicate whether installation may be - safely performed without using a Makefile or Build file, as there may be - special files to install or custom installation targets (e.g. for - dual-life modules that exist on CPAN as well as in the Perl core). This - field only defines whether or not prerequisites are exactly as given in the - metadata. - - =head3 generated_by - - Example: - - generated_by => 'Module::Build version 0.36' - - (Spec 1.0) [required] {String} - - This field indicates the tool that was used to create this metadata. - There are no defined semantics for this field, but it is traditional to - use a string in the form "Generating::Package version 1.23" or the - author's name, if the file was generated by hand. - - =head3 license - - Example: - - license => [ 'perl_5' ] - - license => [ 'apache_2_0', 'mozilla_1_0' ] - - (Spec 2) [required] {List of one or more License Strings} - - One or more licenses that apply to some or all of the files in the - distribution. If multiple licenses are listed, the distribution - documentation should be consulted to clarify the interpretation of - multiple licenses. - - The following list of license strings are valid: - - string description - ------------- ----------------------------------------------- - agpl_3 GNU Affero General Public License, Version 3 - apache_1_1 Apache Software License, Version 1.1 - apache_2_0 Apache License, Version 2.0 - artistic_1 Artistic License, (Version 1) - artistic_2 Artistic License, Version 2.0 - bsd BSD License (three-clause) - freebsd FreeBSD License (two-clause) - gfdl_1_2 GNU Free Documentation License, Version 1.2 - gfdl_1_3 GNU Free Documentation License, Version 1.3 - gpl_1 GNU General Public License, Version 1 - gpl_2 GNU General Public License, Version 2 - gpl_3 GNU General Public License, Version 3 - lgpl_2_1 GNU Lesser General Public License, Version 2.1 - lgpl_3_0 GNU Lesser General Public License, Version 3.0 - mit MIT (aka X11) License - mozilla_1_0 Mozilla Public License, Version 1.0 - mozilla_1_1 Mozilla Public License, Version 1.1 - openssl OpenSSL License - perl_5 The Perl 5 License (Artistic 1 & GPL 1 or later) - qpl_1_0 Q Public License, Version 1.0 - ssleay Original SSLeay License - sun Sun Internet Standards Source License (SISSL) - zlib zlib License - - The following license strings are also valid and indicate other - licensing not described above: - - string description - ------------- ----------------------------------------------- - open_source Other Open Source Initiative (OSI) approved license - restricted Requires special permission from copyright holder - unrestricted Not an OSI approved license, but not restricted - unknown License not provided in metadata - - All other strings are invalid in the license field. - - =head3 meta-spec - - Example: - - 'meta-spec' => { - version => '2', - url => 'http://search.cpan.org/perldoc?CPAN::Meta::Spec', - } - - (Spec 1.2) [required] {Map} - - This field indicates the version of the CPAN Meta Spec that should be - used to interpret the metadata. Consumers must check this key as soon - as possible and abort further metadata processing if the meta-spec - version is not supported by the consumer. - - The following keys are valid, but only C<version> is required. - - =over - - =item version - - This subkey gives the integer I<Version> of the CPAN Meta Spec against - which the document was generated. - - =item url - - This is a I<URL> of the metadata specification document corresponding to - the given version. This is strictly for human-consumption and should - not impact the interpretation of the document. - - For the version 2 spec, either of these are recommended: - - =over 4 - - =item * - - C<https://metacpan.org/pod/CPAN::Meta::Spec> - - =item * - - C<http://search.cpan.org/perldoc?CPAN::Meta::Spec> - - =back - - =back - - =head3 name - - Example: - - name => 'Module-Build' - - (Spec 1.0) [required] {String} - - This field is the name of the distribution. This is often created by - taking the "main package" in the distribution and changing C<::> to - C<->, but the name may be completely unrelated to the packages within - the distribution. For example, L<LWP::UserAgent> is distributed as part - of the distribution name "libwww-perl". - - =head3 release_status - - Example: - - release_status => 'stable' - - (Spec 2) [required] {String} - - This field provides the release status of this distribution. If the - C<version> field contains an underscore character, then - C<release_status> B<must not> be "stable." - - The C<release_status> field B<must> have one of the following values: - - =over - - =item stable - - This indicates an ordinary, "final" release that should be indexed by PAUSE - or other indexers. - - =item testing - - This indicates a "beta" release that is substantially complete, but has an - elevated risk of bugs and requires additional testing. The distribution - should not be installed over a stable release without an explicit request - or other confirmation from a user. This release status may also be used - for "release candidate" versions of a distribution. - - =item unstable - - This indicates an "alpha" release that is under active development, but has - been released for early feedback or testing and may be missing features or - may have serious bugs. The distribution should not be installed over a - stable release without an explicit request or other confirmation from a - user. - - =back - - Consumers B<may> use this field to determine how to index the - distribution for CPAN or other repositories in addition to or in - replacement of heuristics based on version number or file name. - - =head3 version - - Example: - - version => '0.36' - - (Spec 1.0) [required] {Version} - - This field gives the version of the distribution to which the metadata - structure refers. - - =head2 OPTIONAL FIELDS - - =head3 description - - Example: - - description => "Module::Build is a system for " - . "building, testing, and installing Perl modules. " - . "It is meant to ... blah blah blah ...", - - (Spec 2) [optional] {String} - - A longer, more complete description of the purpose or intended use of - the distribution than the one provided by the C<abstract> key. - - =head3 keywords - - Example: - - keywords => [ qw/ toolchain cpan dual-life / ] - - (Spec 1.1) [optional] {List of zero or more Strings} - - A List of keywords that describe this distribution. Keywords - B<must not> include whitespace. - - =head3 no_index - - Example: - - no_index => { - file => [ 'My/Module.pm' ], - directory => [ 'My/Private' ], - package => [ 'My::Module::Secret' ], - namespace => [ 'My::Module::Sample' ], - } - - (Spec 1.2) [optional] {Map} - - This Map describes any files, directories, packages, and namespaces that - are private to the packaging or implementation of the distribution and - should be ignored by indexing or search tools. Note that this is a list of - exclusions, and the spec does not define what to I<include> - see - L</Indexing distributions a la PAUSE> in the implementors notes for more - information. - - Valid subkeys are as follows: - - =over - - =item file - - A I<List> of relative paths to files. Paths B<must be> specified with - unix conventions. - - =item directory - - A I<List> of relative paths to directories. Paths B<must be> specified - with unix conventions. - - [ Note: previous editions of the spec had C<dir> instead of C<directory> ] - - =item package - - A I<List> of package names. - - =item namespace - - A I<List> of package namespaces, where anything below the namespace - must be ignored, but I<not> the namespace itself. - - In the example above for C<no_index>, C<My::Module::Sample::Foo> would - be ignored, but C<My::Module::Sample> would not. - - =back - - =head3 optional_features - - Example: - - optional_features => { - sqlite => { - description => 'Provides SQLite support', - prereqs => { - runtime => { - requires => { - 'DBD::SQLite' => '1.25' - } - } - } - } - } - - (Spec 2) [optional] {Map} - - This Map describes optional features with incremental prerequisites. - Each key of the C<optional_features> Map is a String used to identify - the feature and each value is a Map with additional information about - the feature. Valid subkeys include: - - =over - - =item description - - This is a String describing the feature. Every optional feature - should provide a description - - =item prereqs - - This entry is required and has the same structure as that of the - C<L</prereqs>> key. It provides a list of package requirements - that must be satisfied for the feature to be supported or enabled. - - There is one crucial restriction: the prereqs of an optional feature - B<must not> include C<configure> phase prereqs. - - =back - - Consumers B<must not> include optional features as prerequisites without - explicit instruction from users (whether via interactive prompting, - a function parameter or a configuration value, etc. ). - - If an optional feature is used by a consumer to add additional - prerequisites, the consumer should merge the optional feature - prerequisites into those given by the C<prereqs> key using the same - semantics. See L</Merging and Resolving Prerequisites> for details on - merging prerequisites. - - I<Suggestion for disuse:> Because there is currently no way for a - distribution to specify a dependency on an optional feature of another - dependency, the use of C<optional_feature> is discouraged. Instead, - create a separate, installable distribution that ensures the desired - feature is available. For example, if C<Foo::Bar> has a C<Baz> feature, - release a separate C<Foo-Bar-Baz> distribution that satisfies - requirements for the feature. - - =head3 prereqs - - Example: - - prereqs => { - runtime => { - requires => { - 'perl' => '5.006', - 'File::Spec' => '0.86', - 'JSON' => '2.16', - }, - recommends => { - 'JSON::XS' => '2.26', - }, - suggests => { - 'Archive::Tar' => '0', - }, - }, - build => { - requires => { - 'Alien::SDL' => '1.00', - }, - }, - test => { - recommends => { - 'Test::Deep' => '0.10', - }, - } - } - - (Spec 2) [optional] {Map} - - This is a Map that describes all the prerequisites of the distribution. - The keys are phases of activity, such as C<configure>, C<build>, C<test> - or C<runtime>. Values are Maps in which the keys name the type of - prerequisite relationship such as C<requires>, C<recommends>, or - C<suggests> and the value provides a set of prerequisite relations. The - set of relations B<must> be specified as a Map of package names to - version ranges. - - The full definition for this field is given in the L</Prereq Spec> - section. - - =head3 provides - - Example: - - provides => { - 'Foo::Bar' => { - file => 'lib/Foo/Bar.pm', - version => '0.27_02', - }, - 'Foo::Bar::Blah' => { - file => 'lib/Foo/Bar/Blah.pm', - }, - 'Foo::Bar::Baz' => { - file => 'lib/Foo/Bar/Baz.pm', - version => '0.3', - }, - } - - (Spec 1.2) [optional] {Map} - - This describes all packages provided by this distribution. This - information is used by distribution and automation mechanisms like - PAUSE, CPAN, metacpan.org and search.cpan.org to build indexes saying in - which distribution various packages can be found. - - The keys of C<provides> are package names that can be found within - the distribution. If a package name key is provided, it must - have a Map with the following valid subkeys: - - =over - - =item file - - This field is required. It must contain a Unix-style relative file path - from the root of the distribution directory to a file that contains or - generates the package. It may be given as C<META.yml> or C<META.json> - to claim a package for indexing without needing a C<*.pm>. - - =item version - - If it exists, this field must contains a I<Version> String for the - package. If the package does not have a C<$VERSION>, this field must - be omitted. - - =back - - =head3 resources - - Example: - - resources => { - license => [ 'http://dev.perl.org/licenses/' ], - homepage => 'http://sourceforge.net/projects/module-build', - bugtracker => { - web => 'http://rt.cpan.org/Public/Dist/Display.html?Name=CPAN-Meta', - mailto => 'meta-bugs@example.com', - }, - repository => { - url => 'git://github.com/dagolden/cpan-meta.git', - web => 'http://github.com/dagolden/cpan-meta', - type => 'git', - }, - x_twitter => 'http://twitter.com/cpan_linked/', - } - - (Spec 2) [optional] {Map} - - This field describes resources related to this distribution. - - Valid subkeys include: - - =over - - =item homepage - - The official home of this project on the web. - - =item license - - A List of I<URL>'s that relate to this distribution's license. As with the - top-level C<license> field, distribution documentation should be consulted - to clarify the interpretation of multiple licenses provided here. - - =item bugtracker - - This entry describes the bug tracking system for this distribution. It - is a Map with the following valid keys: - - web - a URL pointing to a web front-end for the bug tracker - mailto - an email address to which bugs can be sent - - =item repository - - This entry describes the source control repository for this distribution. It - is a Map with the following valid keys: - - url - a URL pointing to the repository itself - web - a URL pointing to a web front-end for the repository - type - a lowercase string indicating the VCS used - - Because a url like C<http://myrepo.example.com/> is ambiguous as to - type, producers should provide a C<type> whenever a C<url> key is given. - The C<type> field should be the name of the most common program used - to work with the repository, e.g. C<git>, C<svn>, C<cvs>, C<darcs>, - C<bzr> or C<hg>. - - =back - - =head2 DEPRECATED FIELDS - - =head3 build_requires - - I<(Deprecated in Spec 2)> [optional] {String} - - Replaced by C<prereqs> - - =head3 configure_requires - - I<(Deprecated in Spec 2)> [optional] {String} - - Replaced by C<prereqs> - - =head3 conflicts - - I<(Deprecated in Spec 2)> [optional] {String} - - Replaced by C<prereqs> - - =head3 distribution_type - - I<(Deprecated in Spec 2)> [optional] {String} - - This field indicated 'module' or 'script' but was considered - meaningless, since many distributions are hybrids of several kinds of - things. - - =head3 license_uri - - I<(Deprecated in Spec 1.2)> [optional] {URL} - - Replaced by C<license> in C<resources> - - =head3 private - - I<(Deprecated in Spec 1.2)> [optional] {Map} - - This field has been renamed to L</"no_index">. - - =head3 recommends - - I<(Deprecated in Spec 2)> [optional] {String} - - Replaced by C<prereqs> - - =head3 requires - - I<(Deprecated in Spec 2)> [optional] {String} - - Replaced by C<prereqs> - - =head1 VERSION NUMBERS - - =head2 Version Formats - - This section defines the Version type, used by several fields in the - CPAN Meta Spec. - - Version numbers must be treated as strings, not numbers. For - example, C<1.200> B<must not> be serialized as C<1.2>. Version - comparison should be delegated to the Perl L<version> module, version - 0.80 or newer. - - Unless otherwise specified, version numbers B<must> appear in one of two - formats: - - =over - - =item Decimal versions - - Decimal versions are regular "decimal numbers", with some limitations. - They B<must> be non-negative and B<must> begin and end with a digit. A - single underscore B<may> be included, but B<must> be between two digits. - They B<must not> use exponential notation ("1.23e-2"). - - version => '1.234' # OK - version => '1.23_04' # OK - - version => '1.23_04_05' # Illegal - version => '1.' # Illegal - version => '.1' # Illegal - - =item Dotted-integer versions - - Dotted-integer (also known as dotted-decimal) versions consist of - positive integers separated by full stop characters (i.e. "dots", - "periods" or "decimal points"). This are equivalent in format to Perl - "v-strings", with some additional restrictions on form. They must be - given in "normal" form, which has a leading "v" character and at least - three integer components. To retain a one-to-one mapping with decimal - versions, all components after the first B<should> be restricted to the - range 0 to 999. The final component B<may> be separated by an - underscore character instead of a period. - - version => 'v1.2.3' # OK - version => 'v1.2_3' # OK - version => 'v1.2.3.4' # OK - version => 'v1.2.3_4' # OK - version => 'v2009.10.31' # OK - - version => 'v1.2' # Illegal - version => '1.2.3' # Illegal - version => 'v1.2_3_4' # Illegal - version => 'v1.2009.10.31' # Not recommended - - =back - - =head2 Version Ranges - - Some fields (prereq, optional_features) indicate the particular - version(s) of some other module that may be required as a prerequisite. - This section details the Version Range type used to provide this - information. - - The simplest format for a Version Range is just the version - number itself, e.g. C<2.4>. This means that B<at least> version 2.4 - must be present. To indicate that B<any> version of a prerequisite is - okay, even if the prerequisite doesn't define a version at all, use - the version C<0>. - - Alternatively, a version range B<may> use the operators E<lt> (less than), - E<lt>= (less than or equal), E<gt> (greater than), E<gt>= (greater than - or equal), == (equal), and != (not equal). For example, the - specification C<E<lt> 2.0> means that any version of the prerequisite - less than 2.0 is suitable. - - For more complicated situations, version specifications B<may> be AND-ed - together using commas. The specification C<E<gt>= 1.2, != 1.5, E<lt> - 2.0> indicates a version that must be B<at least> 1.2, B<less than> 2.0, - and B<not equal to> 1.5. - - =head1 PREREQUISITES - - =head2 Prereq Spec - - The C<prereqs> key in the top-level metadata and within - C<optional_features> define the relationship between a distribution and - other packages. The prereq spec structure is a hierarchical data - structure which divides prerequisites into I<Phases> of activity in the - installation process and I<Relationships> that indicate how - prerequisites should be resolved. - - For example, to specify that C<Data::Dumper> is C<required> during the - C<test> phase, this entry would appear in the distribution metadata: - - prereqs => { - test => { - requires => { - 'Data::Dumper' => '2.00' - } - } - } - - =head3 Phases - - Requirements for regular use must be listed in the C<runtime> phase. - Other requirements should be listed in the earliest stage in which they - are required and consumers must accumulate and satisfy requirements - across phases before executing the activity. For example, C<build> - requirements must also be available during the C<test> phase. - - before action requirements that must be met - ---------------- -------------------------------- - perl Build.PL configure - perl Makefile.PL - - make configure, runtime, build - Build - - make test configure, runtime, build, test - Build test - - Consumers that install the distribution must ensure that - I<runtime> requirements are also installed and may install - dependencies from other phases. - - after action requirements that must be met - ---------------- -------------------------------- - make install runtime - Build install - - =over - - =item configure - - The configure phase occurs before any dynamic configuration has been - attempted. Libraries required by the configure phase B<must> be - available for use before the distribution building tool has been - executed. - - =item build - - The build phase is when the distribution's source code is compiled (if - necessary) and otherwise made ready for installation. - - =item test - - The test phase is when the distribution's automated test suite is run. - Any library that is needed only for testing and not for subsequent use - should be listed here. - - =item runtime - - The runtime phase refers not only to when the distribution's contents - are installed, but also to its continued use. Any library that is a - prerequisite for regular use of this distribution should be indicated - here. - - =item develop - - The develop phase's prereqs are libraries needed to work on the - distribution's source code as its author does. These tools might be - needed to build a release tarball, to run author-only tests, or to - perform other tasks related to developing new versions of the - distribution. - - =back - - =head3 Relationships - - =over - - =item requires - - These dependencies B<must> be installed for proper completion of the - phase. - - =item recommends - - Recommended dependencies are I<strongly> encouraged and should be - satisfied except in resource constrained environments. - - =item suggests - - These dependencies are optional, but are suggested for enhanced operation - of the described distribution. - - =item conflicts - - These libraries cannot be installed when the phase is in operation. - This is a very rare situation, and the C<conflicts> relationship should - be used with great caution, or not at all. - - =back - - =head2 Merging and Resolving Prerequisites - - Whenever metadata consumers merge prerequisites, either from different - phases or from C<optional_features>, they should merged in a way which - preserves the intended semantics of the prerequisite structure. Generally, - this means concatenating the version specifications using commas, as - described in the L<Version Ranges> section. - - Another subtle error that can occur in resolving prerequisites comes from - the way that modules in prerequisites are indexed to distribution files on - CPAN. When a module is deleted from a distribution, prerequisites calling - for that module could indicate an older distribution should be installed, - potentially overwriting files from a newer distribution. - - For example, as of Oct 31, 2009, the CPAN index file contained these - module-distribution mappings: - - Class::MOP 0.94 D/DR/DROLSKY/Class-MOP-0.94.tar.gz - Class::MOP::Class 0.94 D/DR/DROLSKY/Class-MOP-0.94.tar.gz - Class::MOP::Class::Immutable 0.04 S/ST/STEVAN/Class-MOP-0.36.tar.gz - - Consider the case where "Class::MOP" 0.94 is installed. If a - distribution specified "Class::MOP::Class::Immutable" as a prerequisite, - it could result in Class-MOP-0.36.tar.gz being installed, overwriting - any files from Class-MOP-0.94.tar.gz. - - Consumers of metadata B<should> test whether prerequisites would result - in installed module files being "downgraded" to an older version and - B<may> warn users or ignore the prerequisite that would cause such a - result. - - =head1 SERIALIZATION - - Distribution metadata should be serialized (as a hashref) as - JSON-encoded data and packaged with distributions as the file - F<META.json>. - - In the past, the distribution metadata structure had been packed with - distributions as F<META.yml>, a file in the YAML Tiny format (for which, - see L<YAML::Tiny>). Tools that consume distribution metadata from disk - should be capable of loading F<META.yml>, but should prefer F<META.json> - if both are found. - - =head1 NOTES FOR IMPLEMENTORS - - =head2 Extracting Version Numbers from Perl Modules - - To get the version number from a Perl module, consumers should use the - C<< MM->parse_version($file) >> method provided by - L<ExtUtils::MakeMaker> or L<Module::Metadata>. For example, for the - module given by C<$mod>, the version may be retrieved in one of the - following ways: - - # via ExtUtils::MakeMaker - my $file = MM->_installed_file_for_module($mod); - my $version = MM->parse_version($file) - - The private C<_installed_file_for_module> method may be replaced with - other methods for locating a module in C<@INC>. - - # via Module::Metadata - my $info = Module::Metadata->new_from_module($mod); - my $version = $info->version; - - If only a filename is available, the following approach may be used: - - # via Module::Build - my $info = Module::Metadata->new_from_file($file); - my $version = $info->version; - - =head2 Comparing Version Numbers - - The L<version> module provides the most reliable way to compare version - numbers in all the various ways they might be provided or might exist - within modules. Given two strings containing version numbers, C<$v1> and - C<$v2>, they should be converted to C<version> objects before using - ordinary comparison operators. For example: - - use version; - if ( version->new($v1) <=> version->new($v2) ) { - print "Versions are not equal\n"; - } - - If the only comparison needed is whether an installed module is of a - sufficiently high version, a direct test may be done using the string - form of C<eval> and the C<use> function. For example, for module C<$mod> - and version prerequisite C<$prereq>: - - if ( eval "use $mod $prereq (); 1" ) { - print "Module $mod version is OK.\n"; - } - - If the values of C<$mod> and C<$prereq> have not been scrubbed, however, - this presents security implications. - - =head2 Prerequisites for dynamically configured distributions - - When C<dynamic_config> is true, it is an error to presume that the - prerequisites given in distribution metadata will have any relationship - whatsoever to the actual prerequisites of the distribution. - - In practice, however, one can generally expect such prerequisites to be - one of two things: - - =over 4 - - =item * - - The minimum prerequisites for the distribution, to which dynamic configuration will only add items - - =item * - - Whatever the distribution configured with on the releaser's machine at release time - - =back - - The second case often turns out to have identical results to the first case, - albeit only by accident. - - As such, consumers may use this data for informational analysis, but - presenting it to the user as canonical or relying on it as such is - invariably the height of folly. - - =head2 Indexing distributions a la PAUSE - - While no_index tells you what must be ignored when indexing, this spec holds - no opinion on how you should get your initial candidate list of things to - possibly index. For "normal" distributions you might consider simply indexing - the contents of lib/, but there are many fascinating oddities on CPAN and - many dists from the days when it was normal to put the main .pm file in the - root of the distribution archive - so PAUSE currently indexes all .pm and .PL - files that are not either (a) specifically excluded by no_index (b) in - C<inc>, C<xt>, or C<t> directories, or common 'mistake' directories such as - C<perl5>. - - Or: If you're trying to be PAUSE-like, make sure you skip C<inc>, C<xt> and - C<t> as well as anything marked as no_index. - - Also remember: If the META file contains a provides field, you shouldn't be - indexing anything in the first place - just use that. - - =head1 SEE ALSO - - =over 4 - - =item * - - CPAN, L<http://www.cpan.org/> - - =item * - - JSON, L<http://json.org/> - - =item * - - YAML, L<http://www.yaml.org/> - - =item * - - L<CPAN> - - =item * - - L<CPANPLUS> - - =item * - - L<ExtUtils::MakeMaker> - - =item * - - L<Module::Build> - - =item * - - L<Module::Install> - - =back - - =head1 HISTORY - - Ken Williams wrote the original CPAN Meta Spec (also known as the - "META.yml spec") in 2003 and maintained it through several revisions - with input from various members of the community. In 2005, Randy - Sims redrafted it from HTML to POD for the version 1.2 release. Ken - continued to maintain the spec through version 1.4. - - In late 2009, David Golden organized the version 2 proposal review - process. David and Ricardo Signes drafted the final version 2 spec - in April 2010 based on the version 1.4 spec and patches contributed - during the proposal process. - - =head1 AUTHORS - - =over 4 - - =item * - - David Golden <dagolden@cpan.org> - - =item * - - Ricardo Signes <rjbs@cpan.org> - - =back - - =head1 COPYRIGHT AND LICENSE - - This software is copyright (c) 2010 by David Golden and Ricardo Signes. - - This is free software; you can redistribute it and/or modify it under - the same terms as the Perl 5 programming language system itself. - - =cut -CPAN_META_SPEC - -$fatpacked{"CPAN/Meta/Validator.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_VALIDATOR'; - use 5.006; - use strict; - use warnings; - package CPAN::Meta::Validator; - - our $VERSION = '2.150005'; - - #pod =head1 SYNOPSIS - #pod - #pod my $struct = decode_json_file('META.json'); - #pod - #pod my $cmv = CPAN::Meta::Validator->new( $struct ); - #pod - #pod unless ( $cmv->is_valid ) { - #pod my $msg = "Invalid META structure. Errors found:\n"; - #pod $msg .= join( "\n", $cmv->errors ); - #pod die $msg; - #pod } - #pod - #pod =head1 DESCRIPTION - #pod - #pod This module validates a CPAN Meta structure against the version of the - #pod the specification claimed in the C<meta-spec> field of the structure. - #pod - #pod =cut - - #--------------------------------------------------------------------------# - # This code copied and adapted from Test::CPAN::Meta - # by Barbie, <barbie@cpan.org> for Miss Barbell Productions, - # L<http://www.missbarbell.co.uk> - #--------------------------------------------------------------------------# - - #--------------------------------------------------------------------------# - # Specification Definitions - #--------------------------------------------------------------------------# - - my %known_specs = ( - '1.4' => 'http://module-build.sourceforge.net/META-spec-v1.4.html', - '1.3' => 'http://module-build.sourceforge.net/META-spec-v1.3.html', - '1.2' => 'http://module-build.sourceforge.net/META-spec-v1.2.html', - '1.1' => 'http://module-build.sourceforge.net/META-spec-v1.1.html', - '1.0' => 'http://module-build.sourceforge.net/META-spec-v1.0.html' - ); - my %known_urls = map {$known_specs{$_} => $_} keys %known_specs; - - my $module_map1 = { 'map' => { ':key' => { name => \&module, value => \&exversion } } }; - - my $module_map2 = { 'map' => { ':key' => { name => \&module, value => \&version } } }; - - my $no_index_2 = { - 'map' => { file => { list => { value => \&string } }, - directory => { list => { value => \&string } }, - 'package' => { list => { value => \&string } }, - namespace => { list => { value => \&string } }, - ':key' => { name => \&custom_2, value => \&anything }, - } - }; - - my $no_index_1_3 = { - 'map' => { file => { list => { value => \&string } }, - directory => { list => { value => \&string } }, - 'package' => { list => { value => \&string } }, - namespace => { list => { value => \&string } }, - ':key' => { name => \&string, value => \&anything }, - } - }; - - my $no_index_1_2 = { - 'map' => { file => { list => { value => \&string } }, - dir => { list => { value => \&string } }, - 'package' => { list => { value => \&string } }, - namespace => { list => { value => \&string } }, - ':key' => { name => \&string, value => \&anything }, - } - }; - - my $no_index_1_1 = { - 'map' => { ':key' => { name => \&string, list => { value => \&string } }, - } - }; - - my $prereq_map = { - map => { - ':key' => { - name => \&phase, - 'map' => { - ':key' => { - name => \&relation, - %$module_map1, - }, - }, - } - }, - }; - - my %definitions = ( - '2' => { - # REQUIRED - 'abstract' => { mandatory => 1, value => \&string }, - 'author' => { mandatory => 1, list => { value => \&string } }, - 'dynamic_config' => { mandatory => 1, value => \&boolean }, - 'generated_by' => { mandatory => 1, value => \&string }, - 'license' => { mandatory => 1, list => { value => \&license } }, - 'meta-spec' => { - mandatory => 1, - 'map' => { - version => { mandatory => 1, value => \&version}, - url => { value => \&url }, - ':key' => { name => \&custom_2, value => \&anything }, - } - }, - 'name' => { mandatory => 1, value => \&string }, - 'release_status' => { mandatory => 1, value => \&release_status }, - 'version' => { mandatory => 1, value => \&version }, - - # OPTIONAL - 'description' => { value => \&string }, - 'keywords' => { list => { value => \&string } }, - 'no_index' => $no_index_2, - 'optional_features' => { - 'map' => { - ':key' => { - name => \&string, - 'map' => { - description => { value => \&string }, - prereqs => $prereq_map, - ':key' => { name => \&custom_2, value => \&anything }, - } - } - } - }, - 'prereqs' => $prereq_map, - 'provides' => { - 'map' => { - ':key' => { - name => \&module, - 'map' => { - file => { mandatory => 1, value => \&file }, - version => { value => \&version }, - ':key' => { name => \&custom_2, value => \&anything }, - } - } - } - }, - 'resources' => { - 'map' => { - license => { list => { value => \&url } }, - homepage => { value => \&url }, - bugtracker => { - 'map' => { - web => { value => \&url }, - mailto => { value => \&string}, - ':key' => { name => \&custom_2, value => \&anything }, - } - }, - repository => { - 'map' => { - web => { value => \&url }, - url => { value => \&url }, - type => { value => \&string }, - ':key' => { name => \&custom_2, value => \&anything }, - } - }, - ':key' => { value => \&string, name => \&custom_2 }, - } - }, - - # CUSTOM -- additional user defined key/value pairs - # note we can only validate the key name, as the structure is user defined - ':key' => { name => \&custom_2, value => \&anything }, - }, - - '1.4' => { - 'meta-spec' => { - mandatory => 1, - 'map' => { - version => { mandatory => 1, value => \&version}, - url => { mandatory => 1, value => \&urlspec }, - ':key' => { name => \&string, value => \&anything }, - }, - }, - - 'name' => { mandatory => 1, value => \&string }, - 'version' => { mandatory => 1, value => \&version }, - 'abstract' => { mandatory => 1, value => \&string }, - 'author' => { mandatory => 1, list => { value => \&string } }, - 'license' => { mandatory => 1, value => \&license }, - 'generated_by' => { mandatory => 1, value => \&string }, - - 'distribution_type' => { value => \&string }, - 'dynamic_config' => { value => \&boolean }, - - 'requires' => $module_map1, - 'recommends' => $module_map1, - 'build_requires' => $module_map1, - 'configure_requires' => $module_map1, - 'conflicts' => $module_map2, - - 'optional_features' => { - 'map' => { - ':key' => { name => \&string, - 'map' => { description => { value => \&string }, - requires => $module_map1, - recommends => $module_map1, - build_requires => $module_map1, - conflicts => $module_map2, - ':key' => { name => \&string, value => \&anything }, - } - } - } - }, - - 'provides' => { - 'map' => { - ':key' => { name => \&module, - 'map' => { - file => { mandatory => 1, value => \&file }, - version => { value => \&version }, - ':key' => { name => \&string, value => \&anything }, - } - } - } - }, - - 'no_index' => $no_index_1_3, - 'private' => $no_index_1_3, - - 'keywords' => { list => { value => \&string } }, - - 'resources' => { - 'map' => { license => { value => \&url }, - homepage => { value => \&url }, - bugtracker => { value => \&url }, - repository => { value => \&url }, - ':key' => { value => \&string, name => \&custom_1 }, - } - }, - - # additional user defined key/value pairs - # note we can only validate the key name, as the structure is user defined - ':key' => { name => \&string, value => \&anything }, - }, - - '1.3' => { - 'meta-spec' => { - mandatory => 1, - 'map' => { - version => { mandatory => 1, value => \&version}, - url => { mandatory => 1, value => \&urlspec }, - ':key' => { name => \&string, value => \&anything }, - }, - }, - - 'name' => { mandatory => 1, value => \&string }, - 'version' => { mandatory => 1, value => \&version }, - 'abstract' => { mandatory => 1, value => \&string }, - 'author' => { mandatory => 1, list => { value => \&string } }, - 'license' => { mandatory => 1, value => \&license }, - 'generated_by' => { mandatory => 1, value => \&string }, - - 'distribution_type' => { value => \&string }, - 'dynamic_config' => { value => \&boolean }, - - 'requires' => $module_map1, - 'recommends' => $module_map1, - 'build_requires' => $module_map1, - 'conflicts' => $module_map2, - - 'optional_features' => { - 'map' => { - ':key' => { name => \&string, - 'map' => { description => { value => \&string }, - requires => $module_map1, - recommends => $module_map1, - build_requires => $module_map1, - conflicts => $module_map2, - ':key' => { name => \&string, value => \&anything }, - } - } - } - }, - - 'provides' => { - 'map' => { - ':key' => { name => \&module, - 'map' => { - file => { mandatory => 1, value => \&file }, - version => { value => \&version }, - ':key' => { name => \&string, value => \&anything }, - } - } - } - }, - - - 'no_index' => $no_index_1_3, - 'private' => $no_index_1_3, - - 'keywords' => { list => { value => \&string } }, - - 'resources' => { - 'map' => { license => { value => \&url }, - homepage => { value => \&url }, - bugtracker => { value => \&url }, - repository => { value => \&url }, - ':key' => { value => \&string, name => \&custom_1 }, - } - }, - - # additional user defined key/value pairs - # note we can only validate the key name, as the structure is user defined - ':key' => { name => \&string, value => \&anything }, - }, - - # v1.2 is misleading, it seems to assume that a number of fields where created - # within v1.1, when they were created within v1.2. This may have been an - # original mistake, and that a v1.1 was retro fitted into the timeline, when - # v1.2 was originally slated as v1.1. But I could be wrong ;) - '1.2' => { - 'meta-spec' => { - mandatory => 1, - 'map' => { - version => { mandatory => 1, value => \&version}, - url => { mandatory => 1, value => \&urlspec }, - ':key' => { name => \&string, value => \&anything }, - }, - }, - - - 'name' => { mandatory => 1, value => \&string }, - 'version' => { mandatory => 1, value => \&version }, - 'license' => { mandatory => 1, value => \&license }, - 'generated_by' => { mandatory => 1, value => \&string }, - 'author' => { mandatory => 1, list => { value => \&string } }, - 'abstract' => { mandatory => 1, value => \&string }, - - 'distribution_type' => { value => \&string }, - 'dynamic_config' => { value => \&boolean }, - - 'keywords' => { list => { value => \&string } }, - - 'private' => $no_index_1_2, - '$no_index' => $no_index_1_2, - - 'requires' => $module_map1, - 'recommends' => $module_map1, - 'build_requires' => $module_map1, - 'conflicts' => $module_map2, - - 'optional_features' => { - 'map' => { - ':key' => { name => \&string, - 'map' => { description => { value => \&string }, - requires => $module_map1, - recommends => $module_map1, - build_requires => $module_map1, - conflicts => $module_map2, - ':key' => { name => \&string, value => \&anything }, - } - } - } - }, - - 'provides' => { - 'map' => { - ':key' => { name => \&module, - 'map' => { - file => { mandatory => 1, value => \&file }, - version => { value => \&version }, - ':key' => { name => \&string, value => \&anything }, - } - } - } - }, - - 'resources' => { - 'map' => { license => { value => \&url }, - homepage => { value => \&url }, - bugtracker => { value => \&url }, - repository => { value => \&url }, - ':key' => { value => \&string, name => \&custom_1 }, - } - }, - - # additional user defined key/value pairs - # note we can only validate the key name, as the structure is user defined - ':key' => { name => \&string, value => \&anything }, - }, - - # note that the 1.1 spec only specifies 'version' as mandatory - '1.1' => { - 'name' => { value => \&string }, - 'version' => { mandatory => 1, value => \&version }, - 'license' => { value => \&license }, - 'generated_by' => { value => \&string }, - - 'license_uri' => { value => \&url }, - 'distribution_type' => { value => \&string }, - 'dynamic_config' => { value => \&boolean }, - - 'private' => $no_index_1_1, - - 'requires' => $module_map1, - 'recommends' => $module_map1, - 'build_requires' => $module_map1, - 'conflicts' => $module_map2, - - # additional user defined key/value pairs - # note we can only validate the key name, as the structure is user defined - ':key' => { name => \&string, value => \&anything }, - }, - - # note that the 1.0 spec doesn't specify optional or mandatory fields - # but we will treat version as mandatory since otherwise META 1.0 is - # completely arbitrary and pointless - '1.0' => { - 'name' => { value => \&string }, - 'version' => { mandatory => 1, value => \&version }, - 'license' => { value => \&license }, - 'generated_by' => { value => \&string }, - - 'license_uri' => { value => \&url }, - 'distribution_type' => { value => \&string }, - 'dynamic_config' => { value => \&boolean }, - - 'requires' => $module_map1, - 'recommends' => $module_map1, - 'build_requires' => $module_map1, - 'conflicts' => $module_map2, - - # additional user defined key/value pairs - # note we can only validate the key name, as the structure is user defined - ':key' => { name => \&string, value => \&anything }, - }, - ); - - #--------------------------------------------------------------------------# - # Code - #--------------------------------------------------------------------------# - - #pod =method new - #pod - #pod my $cmv = CPAN::Meta::Validator->new( $struct ) - #pod - #pod The constructor must be passed a metadata structure. - #pod - #pod =cut - - sub new { - my ($class,$data) = @_; - - # create an attributes hash - my $self = { - 'data' => $data, - 'spec' => eval { $data->{'meta-spec'}{'version'} } || "1.0", - 'errors' => undef, - }; - - # create the object - return bless $self, $class; - } - - #pod =method is_valid - #pod - #pod if ( $cmv->is_valid ) { - #pod ... - #pod } - #pod - #pod Returns a boolean value indicating whether the metadata provided - #pod is valid. - #pod - #pod =cut - - sub is_valid { - my $self = shift; - my $data = $self->{data}; - my $spec_version = $self->{spec}; - $self->check_map($definitions{$spec_version},$data); - return ! $self->errors; - } - - #pod =method errors - #pod - #pod warn( join "\n", $cmv->errors ); - #pod - #pod Returns a list of errors seen during validation. - #pod - #pod =cut - - sub errors { - my $self = shift; - return () unless(defined $self->{errors}); - return @{$self->{errors}}; - } - - #pod =begin :internals - #pod - #pod =head2 Check Methods - #pod - #pod =over - #pod - #pod =item * - #pod - #pod check_map($spec,$data) - #pod - #pod Checks whether a map (or hash) part of the data structure conforms to the - #pod appropriate specification definition. - #pod - #pod =item * - #pod - #pod check_list($spec,$data) - #pod - #pod Checks whether a list (or array) part of the data structure conforms to - #pod the appropriate specification definition. - #pod - #pod =item * - #pod - #pod =back - #pod - #pod =cut - - my $spec_error = "Missing validation action in specification. " - . "Must be one of 'map', 'list', or 'value'"; - - sub check_map { - my ($self,$spec,$data) = @_; - - if(ref($spec) ne 'HASH') { - $self->_error( "Unknown META specification, cannot validate." ); - return; - } - - if(ref($data) ne 'HASH') { - $self->_error( "Expected a map structure from string or file." ); - return; - } - - for my $key (keys %$spec) { - next unless($spec->{$key}->{mandatory}); - next if(defined $data->{$key}); - push @{$self->{stack}}, $key; - $self->_error( "Missing mandatory field, '$key'" ); - pop @{$self->{stack}}; - } - - for my $key (keys %$data) { - push @{$self->{stack}}, $key; - if($spec->{$key}) { - if($spec->{$key}{value}) { - $spec->{$key}{value}->($self,$key,$data->{$key}); - } elsif($spec->{$key}{'map'}) { - $self->check_map($spec->{$key}{'map'},$data->{$key}); - } elsif($spec->{$key}{'list'}) { - $self->check_list($spec->{$key}{'list'},$data->{$key}); - } else { - $self->_error( "$spec_error for '$key'" ); - } - - } elsif ($spec->{':key'}) { - $spec->{':key'}{name}->($self,$key,$key); - if($spec->{':key'}{value}) { - $spec->{':key'}{value}->($self,$key,$data->{$key}); - } elsif($spec->{':key'}{'map'}) { - $self->check_map($spec->{':key'}{'map'},$data->{$key}); - } elsif($spec->{':key'}{'list'}) { - $self->check_list($spec->{':key'}{'list'},$data->{$key}); - } else { - $self->_error( "$spec_error for ':key'" ); - } - - - } else { - $self->_error( "Unknown key, '$key', found in map structure" ); - } - pop @{$self->{stack}}; - } - } - - sub check_list { - my ($self,$spec,$data) = @_; - - if(ref($data) ne 'ARRAY') { - $self->_error( "Expected a list structure" ); - return; - } - - if(defined $spec->{mandatory}) { - if(!defined $data->[0]) { - $self->_error( "Missing entries from mandatory list" ); - } - } - - for my $value (@$data) { - push @{$self->{stack}}, $value || "<undef>"; - if(defined $spec->{value}) { - $spec->{value}->($self,'list',$value); - } elsif(defined $spec->{'map'}) { - $self->check_map($spec->{'map'},$value); - } elsif(defined $spec->{'list'}) { - $self->check_list($spec->{'list'},$value); - } elsif ($spec->{':key'}) { - $self->check_map($spec,$value); - } else { - $self->_error( "$spec_error associated with '$self->{stack}[-2]'" ); - } - pop @{$self->{stack}}; - } - } - - #pod =head2 Validator Methods - #pod - #pod =over - #pod - #pod =item * - #pod - #pod header($self,$key,$value) - #pod - #pod Validates that the header is valid. - #pod - #pod Note: No longer used as we now read the data structure, not the file. - #pod - #pod =item * - #pod - #pod url($self,$key,$value) - #pod - #pod Validates that a given value is in an acceptable URL format - #pod - #pod =item * - #pod - #pod urlspec($self,$key,$value) - #pod - #pod Validates that the URL to a META specification is a known one. - #pod - #pod =item * - #pod - #pod string_or_undef($self,$key,$value) - #pod - #pod Validates that the value is either a string or an undef value. Bit of a - #pod catchall function for parts of the data structure that are completely user - #pod defined. - #pod - #pod =item * - #pod - #pod string($self,$key,$value) - #pod - #pod Validates that a string exists for the given key. - #pod - #pod =item * - #pod - #pod file($self,$key,$value) - #pod - #pod Validate that a file is passed for the given key. This may be made more - #pod thorough in the future. For now it acts like \&string. - #pod - #pod =item * - #pod - #pod exversion($self,$key,$value) - #pod - #pod Validates a list of versions, e.g. '<= 5, >=2, ==3, !=4, >1, <6, 0'. - #pod - #pod =item * - #pod - #pod version($self,$key,$value) - #pod - #pod Validates a single version string. Versions of the type '5.8.8' and '0.00_00' - #pod are both valid. A leading 'v' like 'v1.2.3' is also valid. - #pod - #pod =item * - #pod - #pod boolean($self,$key,$value) - #pod - #pod Validates for a boolean value. Currently these values are '1', '0', 'true', - #pod 'false', however the latter 2 may be removed. - #pod - #pod =item * - #pod - #pod license($self,$key,$value) - #pod - #pod Validates that a value is given for the license. Returns 1 if an known license - #pod type, or 2 if a value is given but the license type is not a recommended one. - #pod - #pod =item * - #pod - #pod custom_1($self,$key,$value) - #pod - #pod Validates that the given key is in CamelCase, to indicate a user defined - #pod keyword and only has characters in the class [-_a-zA-Z]. In version 1.X - #pod of the spec, this was only explicitly stated for 'resources'. - #pod - #pod =item * - #pod - #pod custom_2($self,$key,$value) - #pod - #pod Validates that the given key begins with 'x_' or 'X_', to indicate a user - #pod defined keyword and only has characters in the class [-_a-zA-Z] - #pod - #pod =item * - #pod - #pod identifier($self,$key,$value) - #pod - #pod Validates that key is in an acceptable format for the META specification, - #pod for an identifier, i.e. any that matches the regular expression - #pod qr/[a-z][a-z_]/i. - #pod - #pod =item * - #pod - #pod module($self,$key,$value) - #pod - #pod Validates that a given key is in an acceptable module name format, e.g. - #pod 'Test::CPAN::Meta::Version'. - #pod - #pod =back - #pod - #pod =end :internals - #pod - #pod =cut - - sub header { - my ($self,$key,$value) = @_; - if(defined $value) { - return 1 if($value && $value =~ /^--- #YAML:1.0/); - } - $self->_error( "file does not have a valid YAML header." ); - return 0; - } - - sub release_status { - my ($self,$key,$value) = @_; - if(defined $value) { - my $version = $self->{data}{version} || ''; - if ( $version =~ /_/ ) { - return 1 if ( $value =~ /\A(?:testing|unstable)\z/ ); - $self->_error( "'$value' for '$key' is invalid for version '$version'" ); - } - else { - return 1 if ( $value =~ /\A(?:stable|testing|unstable)\z/ ); - $self->_error( "'$value' for '$key' is invalid" ); - } - } - else { - $self->_error( "'$key' is not defined" ); - } - return 0; - } - - # _uri_split taken from URI::Split by Gisle Aas, Copyright 2003 - sub _uri_split { - return $_[0] =~ m,(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?,; - } - - sub url { - my ($self,$key,$value) = @_; - if(defined $value) { - my ($scheme, $auth, $path, $query, $frag) = _uri_split($value); - unless ( defined $scheme && length $scheme ) { - $self->_error( "'$value' for '$key' does not have a URL scheme" ); - return 0; - } - unless ( defined $auth && length $auth ) { - $self->_error( "'$value' for '$key' does not have a URL authority" ); - return 0; - } - return 1; - } - $value ||= ''; - $self->_error( "'$value' for '$key' is not a valid URL." ); - return 0; - } - - sub urlspec { - my ($self,$key,$value) = @_; - if(defined $value) { - return 1 if($value && $known_specs{$self->{spec}} eq $value); - if($value && $known_urls{$value}) { - $self->_error( 'META specification URL does not match version' ); - return 0; - } - } - $self->_error( 'Unknown META specification' ); - return 0; - } - - sub anything { return 1 } - - sub string { - my ($self,$key,$value) = @_; - if(defined $value) { - return 1 if($value || $value =~ /^0$/); - } - $self->_error( "value is an undefined string" ); - return 0; - } - - sub string_or_undef { - my ($self,$key,$value) = @_; - return 1 unless(defined $value); - return 1 if($value || $value =~ /^0$/); - $self->_error( "No string defined for '$key'" ); - return 0; - } - - sub file { - my ($self,$key,$value) = @_; - return 1 if(defined $value); - $self->_error( "No file defined for '$key'" ); - return 0; - } - - sub exversion { - my ($self,$key,$value) = @_; - if(defined $value && ($value || $value =~ /0/)) { - my $pass = 1; - for(split(",",$value)) { $self->version($key,$_) or ($pass = 0); } - return $pass; - } - $value = '<undef>' unless(defined $value); - $self->_error( "'$value' for '$key' is not a valid version." ); - return 0; - } - - sub version { - my ($self,$key,$value) = @_; - if(defined $value) { - return 0 unless($value || $value =~ /0/); - return 1 if($value =~ /^\s*((<|<=|>=|>|!=|==)\s*)?v?\d+((\.\d+((_|\.)\d+)?)?)/); - } else { - $value = '<undef>'; - } - $self->_error( "'$value' for '$key' is not a valid version." ); - return 0; - } - - sub boolean { - my ($self,$key,$value) = @_; - if(defined $value) { - return 1 if($value =~ /^(0|1|true|false)$/); - } else { - $value = '<undef>'; - } - $self->_error( "'$value' for '$key' is not a boolean value." ); - return 0; - } - - my %v1_licenses = ( - 'perl' => 'http://dev.perl.org/licenses/', - 'gpl' => 'http://www.opensource.org/licenses/gpl-license.php', - 'apache' => 'http://apache.org/licenses/LICENSE-2.0', - 'artistic' => 'http://opensource.org/licenses/artistic-license.php', - 'artistic_2' => 'http://opensource.org/licenses/artistic-license-2.0.php', - 'lgpl' => 'http://www.opensource.org/licenses/lgpl-license.php', - 'bsd' => 'http://www.opensource.org/licenses/bsd-license.php', - 'gpl' => 'http://www.opensource.org/licenses/gpl-license.php', - 'mit' => 'http://opensource.org/licenses/mit-license.php', - 'mozilla' => 'http://opensource.org/licenses/mozilla1.1.php', - 'open_source' => undef, - 'unrestricted' => undef, - 'restrictive' => undef, - 'unknown' => undef, - ); - - my %v2_licenses = map { $_ => 1 } qw( - agpl_3 - apache_1_1 - apache_2_0 - artistic_1 - artistic_2 - bsd - freebsd - gfdl_1_2 - gfdl_1_3 - gpl_1 - gpl_2 - gpl_3 - lgpl_2_1 - lgpl_3_0 - mit - mozilla_1_0 - mozilla_1_1 - openssl - perl_5 - qpl_1_0 - ssleay - sun - zlib - open_source - restricted - unrestricted - unknown - ); - - sub license { - my ($self,$key,$value) = @_; - my $licenses = $self->{spec} < 2 ? \%v1_licenses : \%v2_licenses; - if(defined $value) { - return 1 if($value && exists $licenses->{$value}); - } else { - $value = '<undef>'; - } - $self->_error( "License '$value' is invalid" ); - return 0; - } - - sub custom_1 { - my ($self,$key) = @_; - if(defined $key) { - # a valid user defined key should be alphabetic - # and contain at least one capital case letter. - return 1 if($key && $key =~ /^[_a-z]+$/i && $key =~ /[A-Z]/); - } else { - $key = '<undef>'; - } - $self->_error( "Custom resource '$key' must be in CamelCase." ); - return 0; - } - - sub custom_2 { - my ($self,$key) = @_; - if(defined $key) { - return 1 if($key && $key =~ /^x_/i); # user defined - } else { - $key = '<undef>'; - } - $self->_error( "Custom key '$key' must begin with 'x_' or 'X_'." ); - return 0; - } - - sub identifier { - my ($self,$key) = @_; - if(defined $key) { - return 1 if($key && $key =~ /^([a-z][_a-z]+)$/i); # spec 2.0 defined - } else { - $key = '<undef>'; - } - $self->_error( "Key '$key' is not a legal identifier." ); - return 0; - } - - sub module { - my ($self,$key) = @_; - if(defined $key) { - return 1 if($key && $key =~ /^[A-Za-z0-9_]+(::[A-Za-z0-9_]+)*$/); - } else { - $key = '<undef>'; - } - $self->_error( "Key '$key' is not a legal module name." ); - return 0; - } - - my @valid_phases = qw/ configure build test runtime develop /; - sub phase { - my ($self,$key) = @_; - if(defined $key) { - return 1 if( length $key && grep { $key eq $_ } @valid_phases ); - return 1 if $key =~ /x_/i; - } else { - $key = '<undef>'; - } - $self->_error( "Key '$key' is not a legal phase." ); - return 0; - } - - my @valid_relations = qw/ requires recommends suggests conflicts /; - sub relation { - my ($self,$key) = @_; - if(defined $key) { - return 1 if( length $key && grep { $key eq $_ } @valid_relations ); - return 1 if $key =~ /x_/i; - } else { - $key = '<undef>'; - } - $self->_error( "Key '$key' is not a legal prereq relationship." ); - return 0; - } - - sub _error { - my $self = shift; - my $mess = shift; - - $mess .= ' ('.join(' -> ',@{$self->{stack}}).')' if($self->{stack}); - $mess .= " [Validation: $self->{spec}]"; - - push @{$self->{errors}}, $mess; - } - - 1; - - # ABSTRACT: validate CPAN distribution metadata structures - - =pod - - =encoding UTF-8 - - =head1 NAME - - CPAN::Meta::Validator - validate CPAN distribution metadata structures - - =head1 VERSION - - version 2.150005 - - =head1 SYNOPSIS - - my $struct = decode_json_file('META.json'); - - my $cmv = CPAN::Meta::Validator->new( $struct ); - - unless ( $cmv->is_valid ) { - my $msg = "Invalid META structure. Errors found:\n"; - $msg .= join( "\n", $cmv->errors ); - die $msg; - } - - =head1 DESCRIPTION - - This module validates a CPAN Meta structure against the version of the - the specification claimed in the C<meta-spec> field of the structure. - - =head1 METHODS - - =head2 new - - my $cmv = CPAN::Meta::Validator->new( $struct ) - - The constructor must be passed a metadata structure. - - =head2 is_valid - - if ( $cmv->is_valid ) { - ... - } - - Returns a boolean value indicating whether the metadata provided - is valid. - - =head2 errors - - warn( join "\n", $cmv->errors ); - - Returns a list of errors seen during validation. - - =begin :internals - - =head2 Check Methods - - =over - - =item * - - check_map($spec,$data) - - Checks whether a map (or hash) part of the data structure conforms to the - appropriate specification definition. - - =item * - - check_list($spec,$data) - - Checks whether a list (or array) part of the data structure conforms to - the appropriate specification definition. - - =item * - - =back - - =head2 Validator Methods - - =over - - =item * - - header($self,$key,$value) - - Validates that the header is valid. - - Note: No longer used as we now read the data structure, not the file. - - =item * - - url($self,$key,$value) - - Validates that a given value is in an acceptable URL format - - =item * - - urlspec($self,$key,$value) - - Validates that the URL to a META specification is a known one. - - =item * - - string_or_undef($self,$key,$value) - - Validates that the value is either a string or an undef value. Bit of a - catchall function for parts of the data structure that are completely user - defined. - - =item * - - string($self,$key,$value) - - Validates that a string exists for the given key. - - =item * - - file($self,$key,$value) - - Validate that a file is passed for the given key. This may be made more - thorough in the future. For now it acts like \&string. - - =item * - - exversion($self,$key,$value) - - Validates a list of versions, e.g. '<= 5, >=2, ==3, !=4, >1, <6, 0'. - - =item * - - version($self,$key,$value) - - Validates a single version string. Versions of the type '5.8.8' and '0.00_00' - are both valid. A leading 'v' like 'v1.2.3' is also valid. - - =item * - - boolean($self,$key,$value) - - Validates for a boolean value. Currently these values are '1', '0', 'true', - 'false', however the latter 2 may be removed. - - =item * - - license($self,$key,$value) - - Validates that a value is given for the license. Returns 1 if an known license - type, or 2 if a value is given but the license type is not a recommended one. - - =item * - - custom_1($self,$key,$value) - - Validates that the given key is in CamelCase, to indicate a user defined - keyword and only has characters in the class [-_a-zA-Z]. In version 1.X - of the spec, this was only explicitly stated for 'resources'. - - =item * - - custom_2($self,$key,$value) - - Validates that the given key begins with 'x_' or 'X_', to indicate a user - defined keyword and only has characters in the class [-_a-zA-Z] - - =item * - - identifier($self,$key,$value) - - Validates that key is in an acceptable format for the META specification, - for an identifier, i.e. any that matches the regular expression - qr/[a-z][a-z_]/i. - - =item * - - module($self,$key,$value) - - Validates that a given key is in an acceptable module name format, e.g. - 'Test::CPAN::Meta::Version'. - - =back - - =end :internals - - =for Pod::Coverage anything boolean check_list custom_1 custom_2 exversion file - identifier license module phase relation release_status string string_or_undef - url urlspec version header check_map - - =head1 BUGS - - Please report any bugs or feature using the CPAN Request Tracker. - Bugs can be submitted through the web interface at - L<http://rt.cpan.org/Dist/Display.html?Queue=CPAN-Meta> - - When submitting a bug or request, please include a test-file or a patch to an - existing test-file that illustrates the bug or desired feature. - - =head1 AUTHORS - - =over 4 - - =item * - - David Golden <dagolden@cpan.org> - - =item * - - Ricardo Signes <rjbs@cpan.org> - - =back - - =head1 COPYRIGHT AND LICENSE - - This software is copyright (c) 2010 by David Golden and Ricardo Signes. - - This is free software; you can redistribute it and/or modify it under - the same terms as the Perl 5 programming language system itself. - - =cut - - __END__ - - - # vim: ts=2 sts=2 sw=2 et : -CPAN_META_VALIDATOR - -$fatpacked{"CPAN/Meta/YAML.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'CPAN_META_YAML'; - use 5.008001; # sane UTF-8 support - use strict; - use warnings; - package CPAN::Meta::YAML; # git description: v1.66-5-ge09e1ae - # XXX-INGY is 5.8.1 too old/broken for utf8? - # XXX-XDG Lancaster consensus was that it was sufficient until - # proven otherwise - $CPAN::Meta::YAML::VERSION = '0.016'; - ; # original $VERSION removed by Doppelgaenger - - ##################################################################### - # The CPAN::Meta::YAML API. - # - # These are the currently documented API functions/methods and - # exports: - - use Exporter; - our @ISA = qw{ Exporter }; - our @EXPORT = qw{ Load Dump }; - our @EXPORT_OK = qw{ LoadFile DumpFile freeze thaw }; - - ### - # Functional/Export API: - - sub Dump { - return CPAN::Meta::YAML->new(@_)->_dump_string; - } - - # XXX-INGY Returning last document seems a bad behavior. - # XXX-XDG I think first would seem more natural, but I don't know - # that it's worth changing now - sub Load { - my $self = CPAN::Meta::YAML->_load_string(@_); - if ( wantarray ) { - return @$self; - } else { - # To match YAML.pm, return the last document - return $self->[-1]; - } - } - - # XXX-INGY Do we really need freeze and thaw? - # XXX-XDG I don't think so. I'd support deprecating them. - BEGIN { - *freeze = \&Dump; - *thaw = \&Load; - } - - sub DumpFile { - my $file = shift; - return CPAN::Meta::YAML->new(@_)->_dump_file($file); - } - - sub LoadFile { - my $file = shift; - my $self = CPAN::Meta::YAML->_load_file($file); - if ( wantarray ) { - return @$self; - } else { - # Return only the last document to match YAML.pm, - return $self->[-1]; - } - } - - - ### - # Object Oriented API: - - # Create an empty CPAN::Meta::YAML object - # XXX-INGY Why do we use ARRAY object? - # NOTE: I get it now, but I think it's confusing and not needed. - # Will change it on a branch later, for review. - # - # XXX-XDG I don't support changing it yet. It's a very well-documented - # "API" of CPAN::Meta::YAML. I'd support deprecating it, but Adam suggested - # we not change it until YAML.pm's own OO API is established so that - # users only have one API change to digest, not two - sub new { - my $class = shift; - bless [ @_ ], $class; - } - - # XXX-INGY It probably doesn't matter, and it's probably too late to - # change, but 'read/write' are the wrong names. Read and Write - # are actions that take data from storage to memory - # characters/strings. These take the data to/from storage to native - # Perl objects, which the terms dump and load are meant. As long as - # this is a legacy quirk to CPAN::Meta::YAML it's ok, but I'd prefer not - # to add new {read,write}_* methods to this API. - - sub read_string { - my $self = shift; - $self->_load_string(@_); - } - - sub write_string { - my $self = shift; - $self->_dump_string(@_); - } - - sub read { - my $self = shift; - $self->_load_file(@_); - } - - sub write { - my $self = shift; - $self->_dump_file(@_); - } - - - - - ##################################################################### - # Constants - - # Printed form of the unprintable characters in the lowest range - # of ASCII characters, listed by ASCII ordinal position. - my @UNPRINTABLE = qw( - 0 x01 x02 x03 x04 x05 x06 a - b t n v f r x0E x0F - x10 x11 x12 x13 x14 x15 x16 x17 - x18 x19 x1A e x1C x1D x1E x1F - ); - - # Printable characters for escapes - my %UNESCAPES = ( - 0 => "\x00", z => "\x00", N => "\x85", - a => "\x07", b => "\x08", t => "\x09", - n => "\x0a", v => "\x0b", f => "\x0c", - r => "\x0d", e => "\x1b", '\\' => '\\', - ); - - # XXX-INGY - # I(ngy) need to decide if these values should be quoted in - # CPAN::Meta::YAML or not. Probably yes. - - # These 3 values have special meaning when unquoted and using the - # default YAML schema. They need quotes if they are strings. - my %QUOTE = map { $_ => 1 } qw{ - null true false - }; - - # The commented out form is simpler, but overloaded the Perl regex - # engine due to recursion and backtracking problems on strings - # larger than 32,000ish characters. Keep it for reference purposes. - # qr/\"((?:\\.|[^\"])*)\"/ - my $re_capture_double_quoted = qr/\"([^\\"]*(?:\\.[^\\"]*)*)\"/; - my $re_capture_single_quoted = qr/\'([^\']*(?:\'\'[^\']*)*)\'/; - # unquoted re gets trailing space that needs to be stripped - my $re_capture_unquoted_key = qr/([^:]+(?::+\S(?:[^:]*|.*?(?=:)))*)(?=\s*\:(?:\s+|$))/; - my $re_trailing_comment = qr/(?:\s+\#.*)?/; - my $re_key_value_separator = qr/\s*:(?:\s+(?:\#.*)?|$)/; - - - - - - ##################################################################### - # CPAN::Meta::YAML Implementation. - # - # These are the private methods that do all the work. They may change - # at any time. - - - ### - # Loader functions: - - # Create an object from a file - sub _load_file { - my $class = ref $_[0] ? ref shift : shift; - - # Check the file - my $file = shift or $class->_error( 'You did not specify a file name' ); - $class->_error( "File '$file' does not exist" ) - unless -e $file; - $class->_error( "'$file' is a directory, not a file" ) - unless -f _; - $class->_error( "Insufficient permissions to read '$file'" ) - unless -r _; - - # Open unbuffered with strict UTF-8 decoding and no translation layers - open( my $fh, "<:unix:encoding(UTF-8)", $file ); - unless ( $fh ) { - $class->_error("Failed to open file '$file': $!"); - } - - # flock if available (or warn if not possible for OS-specific reasons) - if ( _can_flock() ) { - flock( $fh, Fcntl::LOCK_SH() ) - or warn "Couldn't lock '$file' for reading: $!"; - } - - # slurp the contents - my $contents = eval { - use warnings FATAL => 'utf8'; - local $/; - <$fh> - }; - if ( my $err = $@ ) { - $class->_error("Error reading from file '$file': $err"); - } - - # close the file (release the lock) - unless ( close $fh ) { - $class->_error("Failed to close file '$file': $!"); - } - - $class->_load_string( $contents ); - } - - # Create an object from a string - sub _load_string { - my $class = ref $_[0] ? ref shift : shift; - my $self = bless [], $class; - my $string = $_[0]; - eval { - unless ( defined $string ) { - die \"Did not provide a string to load"; - } - - # Check if Perl has it marked as characters, but it's internally - # inconsistent. E.g. maybe latin1 got read on a :utf8 layer - if ( utf8::is_utf8($string) && ! utf8::valid($string) ) { - die \<<'...'; - Read an invalid UTF-8 string (maybe mixed UTF-8 and 8-bit character set). - Did you decode with lax ":utf8" instead of strict ":encoding(UTF-8)"? - ... - } - - # Ensure Unicode character semantics, even for 0x80-0xff - utf8::upgrade($string); - - # Check for and strip any leading UTF-8 BOM - $string =~ s/^\x{FEFF}//; - - # Check for some special cases - return $self unless length $string; - - # Split the file into lines - my @lines = grep { ! /^\s*(?:\#.*)?\z/ } - split /(?:\015{1,2}\012|\015|\012)/, $string; - - # Strip the initial YAML header - @lines and $lines[0] =~ /^\%YAML[: ][\d\.]+.*\z/ and shift @lines; - - # A nibbling parser - my $in_document = 0; - while ( @lines ) { - # Do we have a document header? - if ( $lines[0] =~ /^---\s*(?:(.+)\s*)?\z/ ) { - # Handle scalar documents - shift @lines; - if ( defined $1 and $1 !~ /^(?:\#.+|\%YAML[: ][\d\.]+)\z/ ) { - push @$self, - $self->_load_scalar( "$1", [ undef ], \@lines ); - next; - } - $in_document = 1; - } - - if ( ! @lines or $lines[0] =~ /^(?:---|\.\.\.)/ ) { - # A naked document - push @$self, undef; - while ( @lines and $lines[0] !~ /^---/ ) { - shift @lines; - } - $in_document = 0; - - # XXX The final '-+$' is to look for -- which ends up being an - # error later. - } elsif ( ! $in_document && @$self ) { - # only the first document can be explicit - die \"CPAN::Meta::YAML failed to classify the line '$lines[0]'"; - } elsif ( $lines[0] =~ /^\s*\-(?:\s|$|-+$)/ ) { - # An array at the root - my $document = [ ]; - push @$self, $document; - $self->_load_array( $document, [ 0 ], \@lines ); - - } elsif ( $lines[0] =~ /^(\s*)\S/ ) { - # A hash at the root - my $document = { }; - push @$self, $document; - $self->_load_hash( $document, [ length($1) ], \@lines ); - - } else { - # Shouldn't get here. @lines have whitespace-only lines - # stripped, and previous match is a line with any - # non-whitespace. So this clause should only be reachable via - # a perlbug where \s is not symmetric with \S - - # uncoverable statement - die \"CPAN::Meta::YAML failed to classify the line '$lines[0]'"; - } - } - }; - my $err = $@; - if ( ref $err eq 'SCALAR' ) { - $self->_error(${$err}); - } elsif ( $err ) { - $self->_error($err); - } - - return $self; - } - - sub _unquote_single { - my ($self, $string) = @_; - return '' unless length $string; - $string =~ s/\'\'/\'/g; - return $string; - } - - sub _unquote_double { - my ($self, $string) = @_; - return '' unless length $string; - $string =~ s/\\"/"/g; - $string =~ - s{\\([Nnever\\fartz0b]|x([0-9a-fA-F]{2}))} - {(length($1)>1)?pack("H2",$2):$UNESCAPES{$1}}gex; - return $string; - } - - # Load a YAML scalar string to the actual Perl scalar - sub _load_scalar { - my ($self, $string, $indent, $lines) = @_; - - # Trim trailing whitespace - $string =~ s/\s*\z//; - - # Explitic null/undef - return undef if $string eq '~'; - - # Single quote - if ( $string =~ /^$re_capture_single_quoted$re_trailing_comment\z/ ) { - return $self->_unquote_single($1); - } - - # Double quote. - if ( $string =~ /^$re_capture_double_quoted$re_trailing_comment\z/ ) { - return $self->_unquote_double($1); - } - - # Special cases - if ( $string =~ /^[\'\"!&]/ ) { - die \"CPAN::Meta::YAML does not support a feature in line '$string'"; - } - return {} if $string =~ /^{}(?:\s+\#.*)?\z/; - return [] if $string =~ /^\[\](?:\s+\#.*)?\z/; - - # Regular unquoted string - if ( $string !~ /^[>|]/ ) { - die \"CPAN::Meta::YAML found illegal characters in plain scalar: '$string'" - if $string =~ /^(?:-(?:\s|$)|[\@\%\`])/ or - $string =~ /:(?:\s|$)/; - $string =~ s/\s+#.*\z//; - return $string; - } - - # Error - die \"CPAN::Meta::YAML failed to find multi-line scalar content" unless @$lines; - - # Check the indent depth - $lines->[0] =~ /^(\s*)/; - $indent->[-1] = length("$1"); - if ( defined $indent->[-2] and $indent->[-1] <= $indent->[-2] ) { - die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'"; - } - - # Pull the lines - my @multiline = (); - while ( @$lines ) { - $lines->[0] =~ /^(\s*)/; - last unless length($1) >= $indent->[-1]; - push @multiline, substr(shift(@$lines), length($1)); - } - - my $j = (substr($string, 0, 1) eq '>') ? ' ' : "\n"; - my $t = (substr($string, 1, 1) eq '-') ? '' : "\n"; - return join( $j, @multiline ) . $t; - } - - # Load an array - sub _load_array { - my ($self, $array, $indent, $lines) = @_; - - while ( @$lines ) { - # Check for a new document - if ( $lines->[0] =~ /^(?:---|\.\.\.)/ ) { - while ( @$lines and $lines->[0] !~ /^---/ ) { - shift @$lines; - } - return 1; - } - - # Check the indent level - $lines->[0] =~ /^(\s*)/; - if ( length($1) < $indent->[-1] ) { - return 1; - } elsif ( length($1) > $indent->[-1] ) { - die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'"; - } - - if ( $lines->[0] =~ /^(\s*\-\s+)[^\'\"]\S*\s*:(?:\s+|$)/ ) { - # Inline nested hash - my $indent2 = length("$1"); - $lines->[0] =~ s/-/ /; - push @$array, { }; - $self->_load_hash( $array->[-1], [ @$indent, $indent2 ], $lines ); - - } elsif ( $lines->[0] =~ /^\s*\-\s*\z/ ) { - shift @$lines; - unless ( @$lines ) { - push @$array, undef; - return 1; - } - if ( $lines->[0] =~ /^(\s*)\-/ ) { - my $indent2 = length("$1"); - if ( $indent->[-1] == $indent2 ) { - # Null array entry - push @$array, undef; - } else { - # Naked indenter - push @$array, [ ]; - $self->_load_array( - $array->[-1], [ @$indent, $indent2 ], $lines - ); - } - - } elsif ( $lines->[0] =~ /^(\s*)\S/ ) { - push @$array, { }; - $self->_load_hash( - $array->[-1], [ @$indent, length("$1") ], $lines - ); - - } else { - die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'"; - } - - } elsif ( $lines->[0] =~ /^\s*\-(\s*)(.+?)\s*\z/ ) { - # Array entry with a value - shift @$lines; - push @$array, $self->_load_scalar( - "$2", [ @$indent, undef ], $lines - ); - - } elsif ( defined $indent->[-2] and $indent->[-1] == $indent->[-2] ) { - # This is probably a structure like the following... - # --- - # foo: - # - list - # bar: value - # - # ... so lets return and let the hash parser handle it - return 1; - - } else { - die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'"; - } - } - - return 1; - } - - # Load a hash - sub _load_hash { - my ($self, $hash, $indent, $lines) = @_; - - while ( @$lines ) { - # Check for a new document - if ( $lines->[0] =~ /^(?:---|\.\.\.)/ ) { - while ( @$lines and $lines->[0] !~ /^---/ ) { - shift @$lines; - } - return 1; - } - - # Check the indent level - $lines->[0] =~ /^(\s*)/; - if ( length($1) < $indent->[-1] ) { - return 1; - } elsif ( length($1) > $indent->[-1] ) { - die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'"; - } - - # Find the key - my $key; - - # Quoted keys - if ( $lines->[0] =~ - s/^\s*$re_capture_single_quoted$re_key_value_separator// - ) { - $key = $self->_unquote_single($1); - } - elsif ( $lines->[0] =~ - s/^\s*$re_capture_double_quoted$re_key_value_separator// - ) { - $key = $self->_unquote_double($1); - } - elsif ( $lines->[0] =~ - s/^\s*$re_capture_unquoted_key$re_key_value_separator// - ) { - $key = $1; - $key =~ s/\s+$//; - } - elsif ( $lines->[0] =~ /^\s*\?/ ) { - die \"CPAN::Meta::YAML does not support a feature in line '$lines->[0]'"; - } - else { - die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'"; - } - - if ( exists $hash->{$key} ) { - warn "CPAN::Meta::YAML found a duplicate key '$key' in line '$lines->[0]'"; - } - - # Do we have a value? - if ( length $lines->[0] ) { - # Yes - $hash->{$key} = $self->_load_scalar( - shift(@$lines), [ @$indent, undef ], $lines - ); - } else { - # An indent - shift @$lines; - unless ( @$lines ) { - $hash->{$key} = undef; - return 1; - } - if ( $lines->[0] =~ /^(\s*)-/ ) { - $hash->{$key} = []; - $self->_load_array( - $hash->{$key}, [ @$indent, length($1) ], $lines - ); - } elsif ( $lines->[0] =~ /^(\s*)./ ) { - my $indent2 = length("$1"); - if ( $indent->[-1] >= $indent2 ) { - # Null hash entry - $hash->{$key} = undef; - } else { - $hash->{$key} = {}; - $self->_load_hash( - $hash->{$key}, [ @$indent, length($1) ], $lines - ); - } - } - } - } - - return 1; - } - - - ### - # Dumper functions: - - # Save an object to a file - sub _dump_file { - my $self = shift; - - require Fcntl; - - # Check the file - my $file = shift or $self->_error( 'You did not specify a file name' ); - - my $fh; - # flock if available (or warn if not possible for OS-specific reasons) - if ( _can_flock() ) { - # Open without truncation (truncate comes after lock) - my $flags = Fcntl::O_WRONLY()|Fcntl::O_CREAT(); - sysopen( $fh, $file, $flags ); - unless ( $fh ) { - $self->_error("Failed to open file '$file' for writing: $!"); - } - - # Use no translation and strict UTF-8 - binmode( $fh, ":raw:encoding(UTF-8)"); - - flock( $fh, Fcntl::LOCK_EX() ) - or warn "Couldn't lock '$file' for reading: $!"; - - # truncate and spew contents - truncate $fh, 0; - seek $fh, 0, 0; - } - else { - open $fh, ">:unix:encoding(UTF-8)", $file; - } - - # serialize and spew to the handle - print {$fh} $self->_dump_string; - - # close the file (release the lock) - unless ( close $fh ) { - $self->_error("Failed to close file '$file': $!"); - } - - return 1; - } - - # Save an object to a string - sub _dump_string { - my $self = shift; - return '' unless ref $self && @$self; - - # Iterate over the documents - my $indent = 0; - my @lines = (); - - eval { - foreach my $cursor ( @$self ) { - push @lines, '---'; - - # An empty document - if ( ! defined $cursor ) { - # Do nothing - - # A scalar document - } elsif ( ! ref $cursor ) { - $lines[-1] .= ' ' . $self->_dump_scalar( $cursor ); - - # A list at the root - } elsif ( ref $cursor eq 'ARRAY' ) { - unless ( @$cursor ) { - $lines[-1] .= ' []'; - next; - } - push @lines, $self->_dump_array( $cursor, $indent, {} ); - - # A hash at the root - } elsif ( ref $cursor eq 'HASH' ) { - unless ( %$cursor ) { - $lines[-1] .= ' {}'; - next; - } - push @lines, $self->_dump_hash( $cursor, $indent, {} ); - - } else { - die \("Cannot serialize " . ref($cursor)); - } - } - }; - if ( ref $@ eq 'SCALAR' ) { - $self->_error(${$@}); - } elsif ( $@ ) { - $self->_error($@); - } - - join '', map { "$_\n" } @lines; - } - - sub _has_internal_string_value { - my $value = shift; - my $b_obj = B::svref_2object(\$value); # for round trip problem - return $b_obj->FLAGS & B::SVf_POK(); - } - - sub _dump_scalar { - my $string = $_[1]; - my $is_key = $_[2]; - # Check this before checking length or it winds up looking like a string! - my $has_string_flag = _has_internal_string_value($string); - return '~' unless defined $string; - return "''" unless length $string; - if (Scalar::Util::looks_like_number($string)) { - # keys and values that have been used as strings get quoted - if ( $is_key || $has_string_flag ) { - return qq['$string']; - } - else { - return $string; - } - } - if ( $string =~ /[\x00-\x09\x0b-\x0d\x0e-\x1f\x7f-\x9f\'\n]/ ) { - $string =~ s/\\/\\\\/g; - $string =~ s/"/\\"/g; - $string =~ s/\n/\\n/g; - $string =~ s/[\x85]/\\N/g; - $string =~ s/([\x00-\x1f])/\\$UNPRINTABLE[ord($1)]/g; - $string =~ s/([\x7f-\x9f])/'\x' . sprintf("%X",ord($1))/ge; - return qq|"$string"|; - } - if ( $string =~ /(?:^[~!@#%&*|>?:,'"`{}\[\]]|^-+$|\s|:\z)/ or - $QUOTE{$string} - ) { - return "'$string'"; - } - return $string; - } - - sub _dump_array { - my ($self, $array, $indent, $seen) = @_; - if ( $seen->{refaddr($array)}++ ) { - die \"CPAN::Meta::YAML does not support circular references"; - } - my @lines = (); - foreach my $el ( @$array ) { - my $line = (' ' x $indent) . '-'; - my $type = ref $el; - if ( ! $type ) { - $line .= ' ' . $self->_dump_scalar( $el ); - push @lines, $line; - - } elsif ( $type eq 'ARRAY' ) { - if ( @$el ) { - push @lines, $line; - push @lines, $self->_dump_array( $el, $indent + 1, $seen ); - } else { - $line .= ' []'; - push @lines, $line; - } - - } elsif ( $type eq 'HASH' ) { - if ( keys %$el ) { - push @lines, $line; - push @lines, $self->_dump_hash( $el, $indent + 1, $seen ); - } else { - $line .= ' {}'; - push @lines, $line; - } - - } else { - die \"CPAN::Meta::YAML does not support $type references"; - } - } - - @lines; - } - - sub _dump_hash { - my ($self, $hash, $indent, $seen) = @_; - if ( $seen->{refaddr($hash)}++ ) { - die \"CPAN::Meta::YAML does not support circular references"; - } - my @lines = (); - foreach my $name ( sort keys %$hash ) { - my $el = $hash->{$name}; - my $line = (' ' x $indent) . $self->_dump_scalar($name, 1) . ":"; - my $type = ref $el; - if ( ! $type ) { - $line .= ' ' . $self->_dump_scalar( $el ); - push @lines, $line; - - } elsif ( $type eq 'ARRAY' ) { - if ( @$el ) { - push @lines, $line; - push @lines, $self->_dump_array( $el, $indent + 1, $seen ); - } else { - $line .= ' []'; - push @lines, $line; - } - - } elsif ( $type eq 'HASH' ) { - if ( keys %$el ) { - push @lines, $line; - push @lines, $self->_dump_hash( $el, $indent + 1, $seen ); - } else { - $line .= ' {}'; - push @lines, $line; - } - - } else { - die \"CPAN::Meta::YAML does not support $type references"; - } - } - - @lines; - } - - - - ##################################################################### - # DEPRECATED API methods: - - # Error storage (DEPRECATED as of 1.57) - our $errstr = ''; - - # Set error - sub _error { - require Carp; - $errstr = $_[1]; - $errstr =~ s/ at \S+ line \d+.*//; - Carp::croak( $errstr ); - } - - # Retrieve error - my $errstr_warned; - sub errstr { - require Carp; - Carp::carp( "CPAN::Meta::YAML->errstr and \$CPAN::Meta::YAML::errstr is deprecated" ) - unless $errstr_warned++; - $errstr; - } - - - - - ##################################################################### - # Helper functions. Possibly not needed. - - - # Use to detect nv or iv - use B; - - # XXX-INGY Is flock CPAN::Meta::YAML's responsibility? - # Some platforms can't flock :-( - # XXX-XDG I think it is. When reading and writing files, we ought - # to be locking whenever possible. People (foolishly) use YAML - # files for things like session storage, which has race issues. - my $HAS_FLOCK; - sub _can_flock { - if ( defined $HAS_FLOCK ) { - return $HAS_FLOCK; - } - else { - require Config; - my $c = \%Config::Config; - $HAS_FLOCK = grep { $c->{$_} } qw/d_flock d_fcntl_can_lock d_lockf/; - require Fcntl if $HAS_FLOCK; - return $HAS_FLOCK; - } - } - - - # XXX-INGY Is this core in 5.8.1? Can we remove this? - # XXX-XDG Scalar::Util 1.18 didn't land until 5.8.8, so we need this - ##################################################################### - # Use Scalar::Util if possible, otherwise emulate it - - use Scalar::Util (); - BEGIN { - local $@; - if ( eval { Scalar::Util->VERSION(1.18); } ) { - *refaddr = *Scalar::Util::refaddr; - } - else { - eval <<'END_PERL'; - # Scalar::Util failed to load or too old - sub refaddr { - my $pkg = ref($_[0]) or return undef; - if ( !! UNIVERSAL::can($_[0], 'can') ) { - bless $_[0], 'Scalar::Util::Fake'; - } else { - $pkg = undef; - } - "$_[0]" =~ /0x(\w+)/; - my $i = do { no warnings 'portable'; hex $1 }; - bless $_[0], $pkg if defined $pkg; - $i; - } - END_PERL - } - } - - delete $CPAN::Meta::YAML::{refaddr}; - - 1; - - # XXX-INGY Doc notes I'm putting up here. Changing the doc when it's wrong - # but leaving grey area stuff up here. - # - # I would like to change Read/Write to Load/Dump below without - # changing the actual API names. - # - # It might be better to put Load/Dump API in the SYNOPSIS instead of the - # dubious OO API. - # - # null and bool explanations may be outdated. - - =pod - - =encoding UTF-8 - - =head1 NAME - - CPAN::Meta::YAML - Read and write a subset of YAML for CPAN Meta files - - =head1 VERSION - - version 0.016 - - =head1 SYNOPSIS - - use CPAN::Meta::YAML; - - # reading a META file - open $fh, "<:utf8", "META.yml"; - $yaml_text = do { local $/; <$fh> }; - $yaml = CPAN::Meta::YAML->read_string($yaml_text) - or die CPAN::Meta::YAML->errstr; - - # finding the metadata - $meta = $yaml->[0]; - - # writing a META file - $yaml_text = $yaml->write_string - or die CPAN::Meta::YAML->errstr; - open $fh, ">:utf8", "META.yml"; - print $fh $yaml_text; - - =head1 DESCRIPTION - - This module implements a subset of the YAML specification for use in reading - and writing CPAN metadata files like F<META.yml> and F<MYMETA.yml>. It should - not be used for any other general YAML parsing or generation task. - - NOTE: F<META.yml> (and F<MYMETA.yml>) files should be UTF-8 encoded. Users are - responsible for proper encoding and decoding. In particular, the C<read> and - C<write> methods do B<not> support UTF-8 and should not be used. - - =head1 SUPPORT - - This module is currently derived from L<YAML::Tiny> by Adam Kennedy. If - there are bugs in how it parses a particular META.yml file, please file - a bug report in the YAML::Tiny bugtracker: - L<https://github.com/Perl-Toolchain-Gang/YAML-Tiny/issues> - - =head1 SEE ALSO - - L<YAML::Tiny>, L<YAML>, L<YAML::XS> - - =head1 AUTHORS - - =over 4 - - =item * - - Adam Kennedy <adamk@cpan.org> - - =item * - - David Golden <dagolden@cpan.org> - - =back - - =head1 COPYRIGHT AND LICENSE - - This software is copyright (c) 2010 by Adam Kennedy. - - This is free software; you can redistribute it and/or modify it under - the same terms as the Perl 5 programming language system itself. - - =cut - - __END__ - - - # ABSTRACT: Read and write a subset of YAML for CPAN Meta files - - -CPAN_META_YAML - -$fatpacked{"Exporter.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'EXPORTER'; - package Exporter; - - require 5.006; - - # Be lean. - #use strict; - #no strict 'refs'; - - our $Debug = 0; - our $ExportLevel = 0; - our $Verbose ||= 0; - our $VERSION = '5.70'; - our (%Cache); - - sub as_heavy { - require Exporter::Heavy; - # Unfortunately, this does not work if the caller is aliased as *name = \&foo - # Thus the need to create a lot of identical subroutines - my $c = (caller(1))[3]; - $c =~ s/.*:://; - \&{"Exporter::Heavy::heavy_$c"}; - } - - sub export { - goto &{as_heavy()}; - } - - sub import { - my $pkg = shift; - my $callpkg = caller($ExportLevel); - - if ($pkg eq "Exporter" and @_ and $_[0] eq "import") { - *{$callpkg."::import"} = \&import; - return; - } - - # We *need* to treat @{"$pkg\::EXPORT_FAIL"} since Carp uses it :-( - my $exports = \@{"$pkg\::EXPORT"}; - # But, avoid creating things if they don't exist, which saves a couple of - # hundred bytes per package processed. - my $fail = ${$pkg . '::'}{EXPORT_FAIL} && \@{"$pkg\::EXPORT_FAIL"}; - return export $pkg, $callpkg, @_ - if $Verbose or $Debug or $fail && @$fail > 1; - my $export_cache = ($Cache{$pkg} ||= {}); - my $args = @_ or @_ = @$exports; - - if ($args and not %$export_cache) { - s/^&//, $export_cache->{$_} = 1 - foreach (@$exports, @{"$pkg\::EXPORT_OK"}); - } - my $heavy; - # Try very hard not to use {} and hence have to enter scope on the foreach - # We bomb out of the loop with last as soon as heavy is set. - if ($args or $fail) { - ($heavy = (/\W/ or $args and not exists $export_cache->{$_} - or $fail and @$fail and $_ eq $fail->[0])) and last - foreach (@_); - } else { - ($heavy = /\W/) and last - foreach (@_); - } - return export $pkg, $callpkg, ($args ? @_ : ()) if $heavy; - local $SIG{__WARN__} = - sub {require Carp; &Carp::carp} if not $SIG{__WARN__}; - # shortcut for the common case of no type character - *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_; - } - - # Default methods - - sub export_fail { - my $self = shift; - @_; - } - - # Unfortunately, caller(1)[3] "does not work" if the caller is aliased as - # *name = \&foo. Thus the need to create a lot of identical subroutines - # Otherwise we could have aliased them to export(). - - sub export_to_level { - goto &{as_heavy()}; - } - - sub export_tags { - goto &{as_heavy()}; - } - - sub export_ok_tags { - goto &{as_heavy()}; - } - - sub require_version { - goto &{as_heavy()}; - } - - 1; - __END__ - - =head1 NAME - - Exporter - Implements default import method for modules - - =head1 SYNOPSIS - - In module F<YourModule.pm>: - - package YourModule; - require Exporter; - @ISA = qw(Exporter); - @EXPORT_OK = qw(munge frobnicate); # symbols to export on request - - or - - package YourModule; - use Exporter 'import'; # gives you Exporter's import() method directly - @EXPORT_OK = qw(munge frobnicate); # symbols to export on request - - In other files which wish to use C<YourModule>: - - use YourModule qw(frobnicate); # import listed symbols - frobnicate ($left, $right) # calls YourModule::frobnicate - - Take a look at L</Good Practices> for some variants - you will like to use in modern Perl code. - - =head1 DESCRIPTION - - The Exporter module implements an C<import> method which allows a module - to export functions and variables to its users' namespaces. Many modules - use Exporter rather than implementing their own C<import> method because - Exporter provides a highly flexible interface, with an implementation optimised - for the common case. - - Perl automatically calls the C<import> method when processing a - C<use> statement for a module. Modules and C<use> are documented - in L<perlfunc> and L<perlmod>. Understanding the concept of - modules and how the C<use> statement operates is important to - understanding the Exporter. - - =head2 How to Export - - The arrays C<@EXPORT> and C<@EXPORT_OK> in a module hold lists of - symbols that are going to be exported into the users name space by - default, or which they can request to be exported, respectively. The - symbols can represent functions, scalars, arrays, hashes, or typeglobs. - The symbols must be given by full name with the exception that the - ampersand in front of a function is optional, e.g. - - @EXPORT = qw(afunc $scalar @array); # afunc is a function - @EXPORT_OK = qw(&bfunc %hash *typeglob); # explicit prefix on &bfunc - - If you are only exporting function names it is recommended to omit the - ampersand, as the implementation is faster this way. - - =head2 Selecting What to Export - - Do B<not> export method names! - - Do B<not> export anything else by default without a good reason! - - Exports pollute the namespace of the module user. If you must export - try to use C<@EXPORT_OK> in preference to C<@EXPORT> and avoid short or - common symbol names to reduce the risk of name clashes. - - Generally anything not exported is still accessible from outside the - module using the C<YourModule::item_name> (or C<< $blessed_ref->method >>) - syntax. By convention you can use a leading underscore on names to - informally indicate that they are 'internal' and not for public use. - - (It is actually possible to get private functions by saying: - - my $subref = sub { ... }; - $subref->(@args); # Call it as a function - $obj->$subref(@args); # Use it as a method - - However if you use them for methods it is up to you to figure out - how to make inheritance work.) - - As a general rule, if the module is trying to be object oriented - then export nothing. If it's just a collection of functions then - C<@EXPORT_OK> anything but use C<@EXPORT> with caution. For function and - method names use barewords in preference to names prefixed with - ampersands for the export lists. - - Other module design guidelines can be found in L<perlmod>. - - =head2 How to Import - - In other files which wish to use your module there are three basic ways for - them to load your module and import its symbols: - - =over 4 - - =item C<use YourModule;> - - This imports all the symbols from YourModule's C<@EXPORT> into the namespace - of the C<use> statement. - - =item C<use YourModule ();> - - This causes perl to load your module but does not import any symbols. - - =item C<use YourModule qw(...);> - - This imports only the symbols listed by the caller into their namespace. - All listed symbols must be in your C<@EXPORT> or C<@EXPORT_OK>, else an error - occurs. The advanced export features of Exporter are accessed like this, - but with list entries that are syntactically distinct from symbol names. - - =back - - Unless you want to use its advanced features, this is probably all you - need to know to use Exporter. - - =head1 Advanced Features - - =head2 Specialised Import Lists - - If any of the entries in an import list begins with !, : or / then - the list is treated as a series of specifications which either add to - or delete from the list of names to import. They are processed left to - right. Specifications are in the form: - - [!]name This name only - [!]:DEFAULT All names in @EXPORT - [!]:tag All names in $EXPORT_TAGS{tag} anonymous list - [!]/pattern/ All names in @EXPORT and @EXPORT_OK which match - - A leading ! indicates that matching names should be deleted from the - list of names to import. If the first specification is a deletion it - is treated as though preceded by :DEFAULT. If you just want to import - extra names in addition to the default set you will still need to - include :DEFAULT explicitly. - - e.g., F<Module.pm> defines: - - @EXPORT = qw(A1 A2 A3 A4 A5); - @EXPORT_OK = qw(B1 B2 B3 B4 B5); - %EXPORT_TAGS = (T1 => [qw(A1 A2 B1 B2)], T2 => [qw(A1 A2 B3 B4)]); - - Note that you cannot use tags in @EXPORT or @EXPORT_OK. - - Names in EXPORT_TAGS must also appear in @EXPORT or @EXPORT_OK. - - An application using Module can say something like: - - use Module qw(:DEFAULT :T2 !B3 A3); - - Other examples include: - - use Socket qw(!/^[AP]F_/ !SOMAXCONN !SOL_SOCKET); - use POSIX qw(:errno_h :termios_h !TCSADRAIN !/^EXIT/); - - Remember that most patterns (using //) will need to be anchored - with a leading ^, e.g., C</^EXIT/> rather than C</EXIT/>. - - You can say C<BEGIN { $Exporter::Verbose=1 }> to see how the - specifications are being processed and what is actually being imported - into modules. - - =head2 Exporting Without Using Exporter's import Method - - Exporter has a special method, 'export_to_level' which is used in situations - where you can't directly call Exporter's - import method. The export_to_level - method looks like: - - MyPackage->export_to_level( - $where_to_export, $package, @what_to_export - ); - - where C<$where_to_export> is an integer telling how far up the calling stack - to export your symbols, and C<@what_to_export> is an array telling what - symbols *to* export (usually this is C<@_>). The C<$package> argument is - currently unused. - - For example, suppose that you have a module, A, which already has an - import function: - - package A; - - @ISA = qw(Exporter); - @EXPORT_OK = qw($b); - - sub import - { - $A::b = 1; # not a very useful import method - } - - and you want to Export symbol C<$A::b> back to the module that called - package A. Since Exporter relies on the import method to work, via - inheritance, as it stands Exporter::import() will never get called. - Instead, say the following: - - package A; - @ISA = qw(Exporter); - @EXPORT_OK = qw($b); - - sub import - { - $A::b = 1; - A->export_to_level(1, @_); - } - - This will export the symbols one level 'above' the current package - ie: to - the program or module that used package A. - - Note: Be careful not to modify C<@_> at all before you call export_to_level - - or people using your package will get very unexplained results! - - =head2 Exporting Without Inheriting from Exporter - - By including Exporter in your C<@ISA> you inherit an Exporter's import() method - but you also inherit several other helper methods which you probably don't - want. To avoid this you can do: - - package YourModule; - use Exporter qw(import); - - which will export Exporter's own import() method into YourModule. - Everything will work as before but you won't need to include Exporter in - C<@YourModule::ISA>. - - Note: This feature was introduced in version 5.57 - of Exporter, released with perl 5.8.3. - - =head2 Module Version Checking - - The Exporter module will convert an attempt to import a number from a - module into a call to C<< $module_name->VERSION($value) >>. This can - be used to validate that the version of the module being used is - greater than or equal to the required version. - - For historical reasons, Exporter supplies a C<require_version> method that - simply delegates to C<VERSION>. Originally, before C<UNIVERSAL::VERSION> - existed, Exporter would call C<require_version>. - - Since the C<UNIVERSAL::VERSION> method treats the C<$VERSION> number as - a simple numeric value it will regard version 1.10 as lower than - 1.9. For this reason it is strongly recommended that you use numbers - with at least two decimal places, e.g., 1.09. - - =head2 Managing Unknown Symbols - - In some situations you may want to prevent certain symbols from being - exported. Typically this applies to extensions which have functions - or constants that may not exist on some systems. - - The names of any symbols that cannot be exported should be listed - in the C<@EXPORT_FAIL> array. - - If a module attempts to import any of these symbols the Exporter - will give the module an opportunity to handle the situation before - generating an error. The Exporter will call an export_fail method - with a list of the failed symbols: - - @failed_symbols = $module_name->export_fail(@failed_symbols); - - If the C<export_fail> method returns an empty list then no error is - recorded and all the requested symbols are exported. If the returned - list is not empty then an error is generated for each symbol and the - export fails. The Exporter provides a default C<export_fail> method which - simply returns the list unchanged. - - Uses for the C<export_fail> method include giving better error messages - for some symbols and performing lazy architectural checks (put more - symbols into C<@EXPORT_FAIL> by default and then take them out if someone - actually tries to use them and an expensive check shows that they are - usable on that platform). - - =head2 Tag Handling Utility Functions - - Since the symbols listed within C<%EXPORT_TAGS> must also appear in either - C<@EXPORT> or C<@EXPORT_OK>, two utility functions are provided which allow - you to easily add tagged sets of symbols to C<@EXPORT> or C<@EXPORT_OK>: - - %EXPORT_TAGS = (foo => [qw(aa bb cc)], bar => [qw(aa cc dd)]); - - Exporter::export_tags('foo'); # add aa, bb and cc to @EXPORT - Exporter::export_ok_tags('bar'); # add aa, cc and dd to @EXPORT_OK - - Any names which are not tags are added to C<@EXPORT> or C<@EXPORT_OK> - unchanged but will trigger a warning (with C<-w>) to avoid misspelt tags - names being silently added to C<@EXPORT> or C<@EXPORT_OK>. Future versions - may make this a fatal error. - - =head2 Generating Combined Tags - - If several symbol categories exist in C<%EXPORT_TAGS>, it's usually - useful to create the utility ":all" to simplify "use" statements. - - The simplest way to do this is: - - %EXPORT_TAGS = (foo => [qw(aa bb cc)], bar => [qw(aa cc dd)]); - - # add all the other ":class" tags to the ":all" class, - # deleting duplicates - { - my %seen; - - push @{$EXPORT_TAGS{all}}, - grep {!$seen{$_}++} @{$EXPORT_TAGS{$_}} foreach keys %EXPORT_TAGS; - } - - F<CGI.pm> creates an ":all" tag which contains some (but not really - all) of its categories. That could be done with one small - change: - - # add some of the other ":class" tags to the ":all" class, - # deleting duplicates - { - my %seen; - - push @{$EXPORT_TAGS{all}}, - grep {!$seen{$_}++} @{$EXPORT_TAGS{$_}} - foreach qw/html2 html3 netscape form cgi internal/; - } - - Note that the tag names in C<%EXPORT_TAGS> don't have the leading ':'. - - =head2 C<AUTOLOAD>ed Constants - - Many modules make use of C<AUTOLOAD>ing for constant subroutines to - avoid having to compile and waste memory on rarely used values (see - L<perlsub> for details on constant subroutines). Calls to such - constant subroutines are not optimized away at compile time because - they can't be checked at compile time for constancy. - - Even if a prototype is available at compile time, the body of the - subroutine is not (it hasn't been C<AUTOLOAD>ed yet). perl needs to - examine both the C<()> prototype and the body of a subroutine at - compile time to detect that it can safely replace calls to that - subroutine with the constant value. - - A workaround for this is to call the constants once in a C<BEGIN> block: - - package My ; - - use Socket ; - - foo( SO_LINGER ); ## SO_LINGER NOT optimized away; called at runtime - BEGIN { SO_LINGER } - foo( SO_LINGER ); ## SO_LINGER optimized away at compile time. - - This forces the C<AUTOLOAD> for C<SO_LINGER> to take place before - SO_LINGER is encountered later in C<My> package. - - If you are writing a package that C<AUTOLOAD>s, consider forcing - an C<AUTOLOAD> for any constants explicitly imported by other packages - or which are usually used when your package is C<use>d. - - =head1 Good Practices - - =head2 Declaring C<@EXPORT_OK> and Friends - - When using C<Exporter> with the standard C<strict> and C<warnings> - pragmas, the C<our> keyword is needed to declare the package - variables C<@EXPORT_OK>, C<@EXPORT>, C<@ISA>, etc. - - our @ISA = qw(Exporter); - our @EXPORT_OK = qw(munge frobnicate); - - If backward compatibility for Perls under 5.6 is important, - one must write instead a C<use vars> statement. - - use vars qw(@ISA @EXPORT_OK); - @ISA = qw(Exporter); - @EXPORT_OK = qw(munge frobnicate); - - =head2 Playing Safe - - There are some caveats with the use of runtime statements - like C<require Exporter> and the assignment to package - variables, which can be very subtle for the unaware programmer. - This may happen for instance with mutually recursive - modules, which are affected by the time the relevant - constructions are executed. - - The ideal (but a bit ugly) way to never have to think - about that is to use C<BEGIN> blocks. So the first part - of the L</SYNOPSIS> code could be rewritten as: - - package YourModule; - - use strict; - use warnings; - - our (@ISA, @EXPORT_OK); - BEGIN { - require Exporter; - @ISA = qw(Exporter); - @EXPORT_OK = qw(munge frobnicate); # symbols to export on request - } - - The C<BEGIN> will assure that the loading of F<Exporter.pm> - and the assignments to C<@ISA> and C<@EXPORT_OK> happen - immediately, leaving no room for something to get awry - or just plain wrong. - - With respect to loading C<Exporter> and inheriting, there - are alternatives with the use of modules like C<base> and C<parent>. - - use base qw(Exporter); - # or - use parent qw(Exporter); - - Any of these statements are nice replacements for - C<BEGIN { require Exporter; @ISA = qw(Exporter); }> - with the same compile-time effect. The basic difference - is that C<base> code interacts with declared C<fields> - while C<parent> is a streamlined version of the older - C<base> code to just establish the IS-A relationship. - - For more details, see the documentation and code of - L<base> and L<parent>. - - Another thorough remedy to that runtime - vs. compile-time trap is to use L<Exporter::Easy>, - which is a wrapper of Exporter that allows all - boilerplate code at a single gulp in the - use statement. - - use Exporter::Easy ( - OK => [ qw(munge frobnicate) ], - ); - # @ISA setup is automatic - # all assignments happen at compile time - - =head2 What Not to Export - - You have been warned already in L</Selecting What to Export> - to not export: - - =over 4 - - =item * - - method names (because you don't need to - and that's likely to not do what you want), - - =item * - - anything by default (because you don't want to surprise your users... - badly) - - =item * - - anything you don't need to (because less is more) - - =back - - There's one more item to add to this list. Do B<not> - export variable names. Just because C<Exporter> lets you - do that, it does not mean you should. - - @EXPORT_OK = qw($svar @avar %hvar); # DON'T! - - Exporting variables is not a good idea. They can - change under the hood, provoking horrible - effects at-a-distance that are too hard to track - and to fix. Trust me: they are not worth it. - - To provide the capability to set/get class-wide - settings, it is best instead to provide accessors - as subroutines or class methods instead. - - =head1 SEE ALSO - - C<Exporter> is definitely not the only module with - symbol exporter capabilities. At CPAN, you may find - a bunch of them. Some are lighter. Some - provide improved APIs and features. Pick the one - that fits your needs. The following is - a sample list of such modules. - - Exporter::Easy - Exporter::Lite - Exporter::Renaming - Exporter::Tidy - Sub::Exporter / Sub::Installer - Perl6::Export / Perl6::Export::Attrs - - =head1 LICENSE - - This library is free software. You can redistribute it - and/or modify it under the same terms as Perl itself. - - =cut - - - -EXPORTER - -$fatpacked{"Exporter/Heavy.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'EXPORTER_HEAVY'; - package Exporter::Heavy; - - use strict; - no strict 'refs'; - - # On one line so MakeMaker will see it. - require Exporter; our $VERSION = $Exporter::VERSION; - - =head1 NAME - - Exporter::Heavy - Exporter guts - - =head1 SYNOPSIS - - (internal use only) - - =head1 DESCRIPTION - - No user-serviceable parts inside. - - =cut - - # - # We go to a lot of trouble not to 'require Carp' at file scope, - # because Carp requires Exporter, and something has to give. - # - - sub _rebuild_cache { - my ($pkg, $exports, $cache) = @_; - s/^&// foreach @$exports; - @{$cache}{@$exports} = (1) x @$exports; - my $ok = \@{"${pkg}::EXPORT_OK"}; - if (@$ok) { - s/^&// foreach @$ok; - @{$cache}{@$ok} = (1) x @$ok; - } - } - - sub heavy_export { - - # Save the old __WARN__ handler in case it was defined - my $oldwarn = $SIG{__WARN__}; - - # First make import warnings look like they're coming from the "use". - local $SIG{__WARN__} = sub { - # restore it back so proper stacking occurs - local $SIG{__WARN__} = $oldwarn; - my $text = shift; - if ($text =~ s/ at \S*Exporter\S*.pm line \d+.*\n//) { - require Carp; - local $Carp::CarpLevel = 1; # ignore package calling us too. - Carp::carp($text); - } - else { - warn $text; - } - }; - local $SIG{__DIE__} = sub { - require Carp; - local $Carp::CarpLevel = 1; # ignore package calling us too. - Carp::croak("$_[0]Illegal null symbol in \@${1}::EXPORT") - if $_[0] =~ /^Unable to create sub named "(.*?)::"/; - }; - - my($pkg, $callpkg, @imports) = @_; - my($type, $sym, $cache_is_current, $oops); - my($exports, $export_cache) = (\@{"${pkg}::EXPORT"}, - $Exporter::Cache{$pkg} ||= {}); - - if (@imports) { - if (!%$export_cache) { - _rebuild_cache ($pkg, $exports, $export_cache); - $cache_is_current = 1; - } - - if (grep m{^[/!:]}, @imports) { - my $tagsref = \%{"${pkg}::EXPORT_TAGS"}; - my $tagdata; - my %imports; - my($remove, $spec, @names, @allexports); - # negated first item implies starting with default set: - unshift @imports, ':DEFAULT' if $imports[0] =~ m/^!/; - foreach $spec (@imports){ - $remove = $spec =~ s/^!//; - - if ($spec =~ s/^://){ - if ($spec eq 'DEFAULT'){ - @names = @$exports; - } - elsif ($tagdata = $tagsref->{$spec}) { - @names = @$tagdata; - } - else { - warn qq["$spec" is not defined in %${pkg}::EXPORT_TAGS]; - ++$oops; - next; - } - } - elsif ($spec =~ m:^/(.*)/$:){ - my $patn = $1; - @allexports = keys %$export_cache unless @allexports; # only do keys once - @names = grep(/$patn/, @allexports); # not anchored by default - } - else { - @names = ($spec); # is a normal symbol name - } - - warn "Import ".($remove ? "del":"add").": @names " - if $Exporter::Verbose; - - if ($remove) { - foreach $sym (@names) { delete $imports{$sym} } - } - else { - @imports{@names} = (1) x @names; - } - } - @imports = keys %imports; - } - - my @carp; - foreach $sym (@imports) { - if (!$export_cache->{$sym}) { - if ($sym =~ m/^\d/) { - $pkg->VERSION($sym); # inherit from UNIVERSAL - # If the version number was the only thing specified - # then we should act as if nothing was specified: - if (@imports == 1) { - @imports = @$exports; - last; - } - # We need a way to emulate 'use Foo ()' but still - # allow an easy version check: "use Foo 1.23, ''"; - if (@imports == 2 and !$imports[1]) { - @imports = (); - last; - } - } elsif ($sym !~ s/^&// || !$export_cache->{$sym}) { - # Last chance - see if they've updated EXPORT_OK since we - # cached it. - - unless ($cache_is_current) { - %$export_cache = (); - _rebuild_cache ($pkg, $exports, $export_cache); - $cache_is_current = 1; - } - - if (!$export_cache->{$sym}) { - # accumulate the non-exports - push @carp, - qq["$sym" is not exported by the $pkg module\n]; - $oops++; - } - } - } - } - if ($oops) { - require Carp; - Carp::croak("@{carp}Can't continue after import errors"); - } - } - else { - @imports = @$exports; - } - - my($fail, $fail_cache) = (\@{"${pkg}::EXPORT_FAIL"}, - $Exporter::FailCache{$pkg} ||= {}); - - if (@$fail) { - if (!%$fail_cache) { - # Build cache of symbols. Optimise the lookup by adding - # barewords twice... both with and without a leading &. - # (Technique could be applied to $export_cache at cost of memory) - my @expanded = map { /^\w/ ? ($_, '&'.$_) : $_ } @$fail; - warn "${pkg}::EXPORT_FAIL cached: @expanded" if $Exporter::Verbose; - @{$fail_cache}{@expanded} = (1) x @expanded; - } - my @failed; - foreach $sym (@imports) { push(@failed, $sym) if $fail_cache->{$sym} } - if (@failed) { - @failed = $pkg->export_fail(@failed); - foreach $sym (@failed) { - require Carp; - Carp::carp(qq["$sym" is not implemented by the $pkg module ], - "on this architecture"); - } - if (@failed) { - require Carp; - Carp::croak("Can't continue after import errors"); - } - } - } - - warn "Importing into $callpkg from $pkg: ", - join(", ",sort @imports) if $Exporter::Verbose; - - foreach $sym (@imports) { - # shortcut for the common case of no type character - (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next) - unless $sym =~ s/^(\W)//; - $type = $1; - no warnings 'once'; - *{"${callpkg}::$sym"} = - $type eq '&' ? \&{"${pkg}::$sym"} : - $type eq '$' ? \${"${pkg}::$sym"} : - $type eq '@' ? \@{"${pkg}::$sym"} : - $type eq '%' ? \%{"${pkg}::$sym"} : - $type eq '*' ? *{"${pkg}::$sym"} : - do { require Carp; Carp::croak("Can't export symbol: $type$sym") }; - } - } - - sub heavy_export_to_level - { - my $pkg = shift; - my $level = shift; - (undef) = shift; # XXX redundant arg - my $callpkg = caller($level); - $pkg->export($callpkg, @_); - } - - # Utility functions - - sub _push_tags { - my($pkg, $var, $syms) = @_; - my @nontag = (); - my $export_tags = \%{"${pkg}::EXPORT_TAGS"}; - push(@{"${pkg}::$var"}, - map { $export_tags->{$_} ? @{$export_tags->{$_}} - : scalar(push(@nontag,$_),$_) } - (@$syms) ? @$syms : keys %$export_tags); - if (@nontag and $^W) { - # This may change to a die one day - require Carp; - Carp::carp(join(", ", @nontag)." are not tags of $pkg"); - } - } - - sub heavy_require_version { - my($self, $wanted) = @_; - my $pkg = ref $self || $self; - return ${pkg}->VERSION($wanted); - } - - sub heavy_export_tags { - _push_tags((caller)[0], "EXPORT", \@_); - } - - sub heavy_export_ok_tags { - _push_tags((caller)[0], "EXPORT_OK", \@_); - } - - 1; -EXPORTER_HEAVY - -$fatpacked{"File/pushd.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'FILE_PUSHD'; - use strict; - use warnings; - - package File::pushd; - # ABSTRACT: change directory temporarily for a limited scope - our $VERSION = '1.009'; # VERSION - - our @EXPORT = qw( pushd tempd ); - our @ISA = qw( Exporter ); - - use Exporter; - use Carp; - use Cwd qw( getcwd abs_path ); - use File::Path qw( rmtree ); - use File::Temp qw(); - use File::Spec; - - use overload - q{""} => sub { File::Spec->canonpath( $_[0]->{_pushd} ) }, - fallback => 1; - - #--------------------------------------------------------------------------# - # pushd() - #--------------------------------------------------------------------------# - - sub pushd { - my ( $target_dir, $options ) = @_; - $options->{untaint_pattern} ||= qr{^([-+@\w./]+)$}; - - $target_dir = "." unless defined $target_dir; - croak "Can't locate directory $target_dir" unless -d $target_dir; - - my $tainted_orig = getcwd; - my $orig; - if ( $tainted_orig =~ $options->{untaint_pattern} ) { - $orig = $1; - } - else { - $orig = $tainted_orig; - } - - my $tainted_dest; - eval { $tainted_dest = $target_dir ? abs_path($target_dir) : $orig }; - croak "Can't locate absolute path for $target_dir: $@" if $@; - - my $dest; - if ( $tainted_dest =~ $options->{untaint_pattern} ) { - $dest = $1; - } - else { - $dest = $tainted_dest; - } - - if ( $dest ne $orig ) { - chdir $dest or croak "Can't chdir to $dest\: $!"; - } - - my $self = bless { - _pushd => $dest, - _original => $orig - }, - __PACKAGE__; - - return $self; - } - - #--------------------------------------------------------------------------# - # tempd() - #--------------------------------------------------------------------------# - - sub tempd { - my ($options) = @_; - my $dir; - eval { $dir = pushd( File::Temp::tempdir( CLEANUP => 0 ), $options ) }; - croak $@ if $@; - $dir->{_tempd} = 1; - return $dir; - } - - #--------------------------------------------------------------------------# - # preserve() - #--------------------------------------------------------------------------# - - sub preserve { - my $self = shift; - return 1 if !$self->{"_tempd"}; - if ( @_ == 0 ) { - return $self->{_preserve} = 1; - } - else { - return $self->{_preserve} = $_[0] ? 1 : 0; - } - } - - #--------------------------------------------------------------------------# - # DESTROY() - # Revert to original directory as object is destroyed and cleanup - # if necessary - #--------------------------------------------------------------------------# - - sub DESTROY { - my ($self) = @_; - my $orig = $self->{_original}; - chdir $orig if $orig; # should always be so, but just in case... - if ( $self->{_tempd} - && !$self->{_preserve} ) - { - # don't destroy existing $@ if there is no error. - my $err = do { - local $@; - eval { rmtree( $self->{_pushd} ) }; - $@; - }; - carp $err if $err; - } - } - - 1; - - =pod - - =encoding UTF-8 - - =head1 NAME - - File::pushd - change directory temporarily for a limited scope - - =head1 VERSION - - version 1.009 - - =head1 SYNOPSIS - - use File::pushd; - - chdir $ENV{HOME}; - - # change directory again for a limited scope - { - my $dir = pushd( '/tmp' ); - # working directory changed to /tmp - } - # working directory has reverted to $ENV{HOME} - - # tempd() is equivalent to pushd( File::Temp::tempdir ) - { - my $dir = tempd(); - } - - # object stringifies naturally as an absolute path - { - my $dir = pushd( '/tmp' ); - my $filename = File::Spec->catfile( $dir, "somefile.txt" ); - # gives /tmp/somefile.txt - } - - =head1 DESCRIPTION - - File::pushd does a temporary C<chdir> that is easily and automatically - reverted, similar to C<pushd> in some Unix command shells. It works by - creating an object that caches the original working directory. When the object - is destroyed, the destructor calls C<chdir> to revert to the original working - directory. By storing the object in a lexical variable with a limited scope, - this happens automatically at the end of the scope. - - This is very handy when working with temporary directories for tasks like - testing; a function is provided to streamline getting a temporary - directory from L<File::Temp>. - - For convenience, the object stringifies as the canonical form of the absolute - pathname of the directory entered. - - B<Warning>: if you create multiple C<pushd> objects in the same lexical scope, - their destruction order is not guaranteed and you might not wind up in the - directory you expect. - - =head1 USAGE - - use File::pushd; - - Using File::pushd automatically imports the C<pushd> and C<tempd> functions. - - =head2 pushd - - { - my $dir = pushd( $target_directory ); - } - - Caches the current working directory, calls C<chdir> to change to the target - directory, and returns a File::pushd object. When the object is - destroyed, the working directory reverts to the original directory. - - The provided target directory can be a relative or absolute path. If - called with no arguments, it uses the current directory as its target and - returns to the current directory when the object is destroyed. - - If the target directory does not exist or if the directory change fails - for some reason, C<pushd> will die with an error message. - - Can be given a hashref as an optional second argument. The only supported - option is C<untaint_pattern>, which is used to untaint file paths involved. - It defaults to {qr{^(L<-+@\w./>+)$}}, which is reasonably restrictive (e.g. - it does not even allow spaces in the path). Change this to suit your - circumstances and security needs if running under taint mode. *Note*: you - must include the parentheses in the pattern to capture the untainted - portion of the path. - - =head2 tempd - - { - my $dir = tempd(); - } - - This function is like C<pushd> but automatically creates and calls C<chdir> to - a temporary directory created by L<File::Temp>. Unlike normal L<File::Temp> - cleanup which happens at the end of the program, this temporary directory is - removed when the object is destroyed. (But also see C<preserve>.) A warning - will be issued if the directory cannot be removed. - - As with C<pushd>, C<tempd> will die if C<chdir> fails. - - It may be given a single options hash that will be passed internally - to C<pushd>. - - =head2 preserve - - { - my $dir = tempd(); - $dir->preserve; # mark to preserve at end of scope - $dir->preserve(0); # mark to delete at end of scope - } - - Controls whether a temporary directory will be cleaned up when the object is - destroyed. With no arguments, C<preserve> sets the directory to be preserved. - With an argument, the directory will be preserved if the argument is true, or - marked for cleanup if the argument is false. Only C<tempd> objects may be - marked for cleanup. (Target directories to C<pushd> are always preserved.) - C<preserve> returns true if the directory will be preserved, and false - otherwise. - - =head1 SEE ALSO - - =over 4 - - =item * - - L<File::chdir> - - =back - - =for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan - - =head1 SUPPORT - - =head2 Bugs / Feature Requests - - Please report any bugs or feature requests through the issue tracker - at L<https://github.com/dagolden/File-pushd/issues>. - You will be notified automatically of any progress on your issue. - - =head2 Source Code - - This is open source software. The code repository is available for - public review and contribution under the terms of the license. - - L<https://github.com/dagolden/File-pushd> - - git clone https://github.com/dagolden/File-pushd.git - - =head1 AUTHOR - - David Golden <dagolden@cpan.org> - - =head1 CONTRIBUTORS - - =over 4 - - =item * - - Diab Jerius <djerius@cfa.harvard.edu> - - =item * - - Graham Ollis <plicease@cpan.org> - - =back - - =head1 COPYRIGHT AND LICENSE - - This software is Copyright (c) 2014 by David A Golden. - - This is free software, licensed under: - - The Apache License, Version 2.0, January 2004 - - =cut - - __END__ - - - # vim: ts=4 sts=4 sw=4 et: -FILE_PUSHD - -$fatpacked{"HTTP/Tiny.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'HTTP_TINY'; - # vim: ts=4 sts=4 sw=4 et: - package HTTP::Tiny; - use strict; - use warnings; - # ABSTRACT: A small, simple, correct HTTP/1.1 client - - our $VERSION = '0.056'; - - use Carp (); - - #pod =method new - #pod - #pod $http = HTTP::Tiny->new( %attributes ); - #pod - #pod This constructor returns a new HTTP::Tiny object. Valid attributes include: - #pod - #pod =for :list - #pod * C<agent> — - #pod A user-agent string (defaults to 'HTTP-Tiny/$VERSION'). If C<agent> — ends in a space character, the default user-agent string is appended. - #pod * C<cookie_jar> — - #pod An instance of L<HTTP::CookieJar> — or equivalent class that supports the C<add> and C<cookie_header> methods - #pod * C<default_headers> — - #pod A hashref of default headers to apply to requests - #pod * C<local_address> — - #pod The local IP address to bind to - #pod * C<keep_alive> — - #pod Whether to reuse the last connection (if for the same scheme, host and port) (defaults to 1) - #pod * C<max_redirect> — - #pod Maximum number of redirects allowed (defaults to 5) - #pod * C<max_size> — - #pod Maximum response size in bytes (only when not using a data callback). If defined, responses larger than this will return an exception. - #pod * C<http_proxy> — - #pod URL of a proxy server to use for HTTP connections (default is C<$ENV{http_proxy}> — if set) - #pod * C<https_proxy> — - #pod URL of a proxy server to use for HTTPS connections (default is C<$ENV{https_proxy}> — if set) - #pod * C<proxy> — - #pod URL of a generic proxy server for both HTTP and HTTPS connections (default is C<$ENV{all_proxy}> — if set) - #pod * C<no_proxy> — - #pod List of domain suffixes that should not be proxied. Must be a comma-separated string or an array reference. (default is C<$ENV{no_proxy}> —) - #pod * C<timeout> — - #pod Request timeout in seconds (default is 60) - #pod * C<verify_SSL> — - #pod A boolean that indicates whether to validate the SSL certificate of an C<https> — - #pod connection (default is false) - #pod * C<SSL_options> — - #pod A hashref of C<SSL_*> — options to pass through to L<IO::Socket::SSL> - #pod - #pod Passing an explicit C<undef> for C<proxy>, C<http_proxy> or C<https_proxy> will - #pod prevent getting the corresponding proxies from the environment. - #pod - #pod Exceptions from C<max_size>, C<timeout> or other errors will result in a - #pod pseudo-HTTP status code of 599 and a reason of "Internal Exception". The - #pod content field in the response will contain the text of the exception. - #pod - #pod The C<keep_alive> parameter enables a persistent connection, but only to a - #pod single destination scheme, host and port. Also, if any connection-relevant - #pod attributes are modified, or if the process ID or thread ID change, the - #pod persistent connection will be dropped. If you want persistent connections - #pod across multiple destinations, use multiple HTTP::Tiny objects. - #pod - #pod See L</SSL SUPPORT> for more on the C<verify_SSL> and C<SSL_options> attributes. - #pod - #pod =cut - - my @attributes; - BEGIN { - @attributes = qw( - cookie_jar default_headers http_proxy https_proxy keep_alive - local_address max_redirect max_size proxy no_proxy timeout - SSL_options verify_SSL - ); - my %persist_ok = map {; $_ => 1 } qw( - cookie_jar default_headers max_redirect max_size - ); - no strict 'refs'; - no warnings 'uninitialized'; - for my $accessor ( @attributes ) { - *{$accessor} = sub { - @_ > 1 - ? do { - delete $_[0]->{handle} if !$persist_ok{$accessor} && $_[1] ne $_[0]->{$accessor}; - $_[0]->{$accessor} = $_[1] - } - : $_[0]->{$accessor}; - }; - } - } - - sub agent { - my($self, $agent) = @_; - if( @_ > 1 ){ - $self->{agent} = - (defined $agent && $agent =~ / $/) ? $agent . $self->_agent : $agent; - } - return $self->{agent}; - } - - sub new { - my($class, %args) = @_; - - my $self = { - max_redirect => 5, - timeout => 60, - keep_alive => 1, - verify_SSL => $args{verify_SSL} || $args{verify_ssl} || 0, # no verification by default - no_proxy => $ENV{no_proxy}, - }; - - bless $self, $class; - - $class->_validate_cookie_jar( $args{cookie_jar} ) if $args{cookie_jar}; - - for my $key ( @attributes ) { - $self->{$key} = $args{$key} if exists $args{$key} - } - - $self->agent( exists $args{agent} ? $args{agent} : $class->_agent ); - - $self->_set_proxies; - - return $self; - } - - sub _set_proxies { - my ($self) = @_; - - # get proxies from %ENV only if not provided; explicit undef will disable - # getting proxies from the environment - - # generic proxy - if (! exists $self->{proxy} ) { - $self->{proxy} = $ENV{all_proxy} || $ENV{ALL_PROXY}; - } - - if ( defined $self->{proxy} ) { - $self->_split_proxy( 'generic proxy' => $self->{proxy} ); # validate - } - else { - delete $self->{proxy}; - } - - # http proxy - if (! exists $self->{http_proxy} ) { - # under CGI, bypass HTTP_PROXY as request sets it from Proxy header - local $ENV{HTTP_PROXY} if $ENV{REQUEST_METHOD}; - $self->{http_proxy} = $ENV{http_proxy} || $ENV{HTTP_PROXY} || $self->{proxy}; - } - - if ( defined $self->{http_proxy} ) { - $self->_split_proxy( http_proxy => $self->{http_proxy} ); # validate - $self->{_has_proxy}{http} = 1; - } - else { - delete $self->{http_proxy}; - } - - # https proxy - if (! exists $self->{https_proxy} ) { - $self->{https_proxy} = $ENV{https_proxy} || $ENV{HTTPS_PROXY} || $self->{proxy}; - } - - if ( $self->{https_proxy} ) { - $self->_split_proxy( https_proxy => $self->{https_proxy} ); # validate - $self->{_has_proxy}{https} = 1; - } - else { - delete $self->{https_proxy}; - } - - # Split no_proxy to array reference if not provided as such - unless ( ref $self->{no_proxy} eq 'ARRAY' ) { - $self->{no_proxy} = - (defined $self->{no_proxy}) ? [ split /\s*,\s*/, $self->{no_proxy} ] : []; - } - - return; - } - - #pod =method get|head|put|post|delete - #pod - #pod $response = $http->get($url); - #pod $response = $http->get($url, \%options); - #pod $response = $http->head($url); - #pod - #pod These methods are shorthand for calling C<request()> for the given method. The - #pod URL must have unsafe characters escaped and international domain names encoded. - #pod See C<request()> for valid options and a description of the response. - #pod - #pod The C<success> field of the response will be true if the status code is 2XX. - #pod - #pod =cut - - for my $sub_name ( qw/get head put post delete/ ) { - my $req_method = uc $sub_name; - no strict 'refs'; - eval <<"HERE"; ## no critic - sub $sub_name { - my (\$self, \$url, \$args) = \@_; - \@_ == 2 || (\@_ == 3 && ref \$args eq 'HASH') - or Carp::croak(q/Usage: \$http->$sub_name(URL, [HASHREF])/ . "\n"); - return \$self->request('$req_method', \$url, \$args || {}); - } - HERE - } - - #pod =method post_form - #pod - #pod $response = $http->post_form($url, $form_data); - #pod $response = $http->post_form($url, $form_data, \%options); - #pod - #pod This method executes a C<POST> request and sends the key/value pairs from a - #pod form data hash or array reference to the given URL with a C<content-type> of - #pod C<application/x-www-form-urlencoded>. If data is provided as an array - #pod reference, the order is preserved; if provided as a hash reference, the terms - #pod are sorted on key and value for consistency. See documentation for the - #pod C<www_form_urlencode> method for details on the encoding. - #pod - #pod The URL must have unsafe characters escaped and international domain names - #pod encoded. See C<request()> for valid options and a description of the response. - #pod Any C<content-type> header or content in the options hashref will be ignored. - #pod - #pod The C<success> field of the response will be true if the status code is 2XX. - #pod - #pod =cut - - sub post_form { - my ($self, $url, $data, $args) = @_; - (@_ == 3 || @_ == 4 && ref $args eq 'HASH') - or Carp::croak(q/Usage: $http->post_form(URL, DATAREF, [HASHREF])/ . "\n"); - - my $headers = {}; - while ( my ($key, $value) = each %{$args->{headers} || {}} ) { - $headers->{lc $key} = $value; - } - delete $args->{headers}; - - return $self->request('POST', $url, { - %$args, - content => $self->www_form_urlencode($data), - headers => { - %$headers, - 'content-type' => 'application/x-www-form-urlencoded' - }, - } - ); - } - - #pod =method mirror - #pod - #pod $response = $http->mirror($url, $file, \%options) - #pod if ( $response->{success} ) { - #pod print "$file is up to date\n"; - #pod } - #pod - #pod Executes a C<GET> request for the URL and saves the response body to the file - #pod name provided. The URL must have unsafe characters escaped and international - #pod domain names encoded. If the file already exists, the request will include an - #pod C<If-Modified-Since> header with the modification timestamp of the file. You - #pod may specify a different C<If-Modified-Since> header yourself in the C<< - #pod $options->{headers} >> hash. - #pod - #pod The C<success> field of the response will be true if the status code is 2XX - #pod or if the status code is 304 (unmodified). - #pod - #pod If the file was modified and the server response includes a properly - #pod formatted C<Last-Modified> header, the file modification time will - #pod be updated accordingly. - #pod - #pod =cut - - sub mirror { - my ($self, $url, $file, $args) = @_; - @_ == 3 || (@_ == 4 && ref $args eq 'HASH') - or Carp::croak(q/Usage: $http->mirror(URL, FILE, [HASHREF])/ . "\n"); - if ( -e $file and my $mtime = (stat($file))[9] ) { - $args->{headers}{'if-modified-since'} ||= $self->_http_date($mtime); - } - my $tempfile = $file . int(rand(2**31)); - - require Fcntl; - sysopen my $fh, $tempfile, Fcntl::O_CREAT()|Fcntl::O_EXCL()|Fcntl::O_WRONLY() - or Carp::croak(qq/Error: Could not create temporary file $tempfile for downloading: $!\n/); - binmode $fh; - $args->{data_callback} = sub { print {$fh} $_[0] }; - my $response = $self->request('GET', $url, $args); - close $fh - or Carp::croak(qq/Error: Caught error closing temporary file $tempfile: $!\n/); - - if ( $response->{success} ) { - rename $tempfile, $file - or Carp::croak(qq/Error replacing $file with $tempfile: $!\n/); - my $lm = $response->{headers}{'last-modified'}; - if ( $lm and my $mtime = $self->_parse_http_date($lm) ) { - utime $mtime, $mtime, $file; - } - } - $response->{success} ||= $response->{status} eq '304'; - unlink $tempfile; - return $response; - } - - #pod =method request - #pod - #pod $response = $http->request($method, $url); - #pod $response = $http->request($method, $url, \%options); - #pod - #pod Executes an HTTP request of the given method type ('GET', 'HEAD', 'POST', - #pod 'PUT', etc.) on the given URL. The URL must have unsafe characters escaped and - #pod international domain names encoded. - #pod - #pod If the URL includes a "user:password" stanza, they will be used for Basic-style - #pod authorization headers. (Authorization headers will not be included in a - #pod redirected request.) For example: - #pod - #pod $http->request('GET', 'http://Aladdin:open sesame@example.com/'); - #pod - #pod If the "user:password" stanza contains reserved characters, they must - #pod be percent-escaped: - #pod - #pod $http->request('GET', 'http://john%40example.com:password@example.com/'); - #pod - #pod A hashref of options may be appended to modify the request. - #pod - #pod Valid options are: - #pod - #pod =for :list - #pod * C<headers> — - #pod A hashref containing headers to include with the request. If the value for - #pod a header is an array reference, the header will be output multiple times with - #pod each value in the array. These headers over-write any default headers. - #pod * C<content> — - #pod A scalar to include as the body of the request OR a code reference - #pod that will be called iteratively to produce the body of the request - #pod * C<trailer_callback> — - #pod A code reference that will be called if it exists to provide a hashref - #pod of trailing headers (only used with chunked transfer-encoding) - #pod * C<data_callback> — - #pod A code reference that will be called for each chunks of the response - #pod body received. - #pod - #pod The C<Host> header is generated from the URL in accordance with RFC 2616. It - #pod is a fatal error to specify C<Host> in the C<headers> option. Other headers - #pod may be ignored or overwritten if necessary for transport compliance. - #pod - #pod If the C<content> option is a code reference, it will be called iteratively - #pod to provide the content body of the request. It should return the empty - #pod string or undef when the iterator is exhausted. - #pod - #pod If the C<content> option is the empty string, no C<content-type> or - #pod C<content-length> headers will be generated. - #pod - #pod If the C<data_callback> option is provided, it will be called iteratively until - #pod the entire response body is received. The first argument will be a string - #pod containing a chunk of the response body, the second argument will be the - #pod in-progress response hash reference, as described below. (This allows - #pod customizing the action of the callback based on the C<status> or C<headers> - #pod received prior to the content body.) - #pod - #pod The C<request> method returns a hashref containing the response. The hashref - #pod will have the following keys: - #pod - #pod =for :list - #pod * C<success> — - #pod Boolean indicating whether the operation returned a 2XX status code - #pod * C<url> — - #pod URL that provided the response. This is the URL of the request unless - #pod there were redirections, in which case it is the last URL queried - #pod in a redirection chain - #pod * C<status> — - #pod The HTTP status code of the response - #pod * C<reason> — - #pod The response phrase returned by the server - #pod * C<content> — - #pod The body of the response. If the response does not have any content - #pod or if a data callback is provided to consume the response body, - #pod this will be the empty string - #pod * C<headers> — - #pod A hashref of header fields. All header field names will be normalized - #pod to be lower case. If a header is repeated, the value will be an arrayref; - #pod it will otherwise be a scalar string containing the value - #pod - #pod On an exception during the execution of the request, the C<status> field will - #pod contain 599, and the C<content> field will contain the text of the exception. - #pod - #pod =cut - - my %idempotent = map { $_ => 1 } qw/GET HEAD PUT DELETE OPTIONS TRACE/; - - sub request { - my ($self, $method, $url, $args) = @_; - @_ == 3 || (@_ == 4 && ref $args eq 'HASH') - or Carp::croak(q/Usage: $http->request(METHOD, URL, [HASHREF])/ . "\n"); - $args ||= {}; # we keep some state in this during _request - - # RFC 2616 Section 8.1.4 mandates a single retry on broken socket - my $response; - for ( 0 .. 1 ) { - $response = eval { $self->_request($method, $url, $args) }; - last unless $@ && $idempotent{$method} - && $@ =~ m{^(?:Socket closed|Unexpected end)}; - } - - if (my $e = $@) { - # maybe we got a response hash thrown from somewhere deep - if ( ref $e eq 'HASH' && exists $e->{status} ) { - return $e; - } - - # otherwise, stringify it - $e = "$e"; - $response = { - url => $url, - success => q{}, - status => 599, - reason => 'Internal Exception', - content => $e, - headers => { - 'content-type' => 'text/plain', - 'content-length' => length $e, - } - }; - } - return $response; - } - - #pod =method www_form_urlencode - #pod - #pod $params = $http->www_form_urlencode( $data ); - #pod $response = $http->get("http://example.com/query?$params"); - #pod - #pod This method converts the key/value pairs from a data hash or array reference - #pod into a C<x-www-form-urlencoded> string. The keys and values from the data - #pod reference will be UTF-8 encoded and escaped per RFC 3986. If a value is an - #pod array reference, the key will be repeated with each of the values of the array - #pod reference. If data is provided as a hash reference, the key/value pairs in the - #pod resulting string will be sorted by key and value for consistent ordering. - #pod - #pod =cut - - sub www_form_urlencode { - my ($self, $data) = @_; - (@_ == 2 && ref $data) - or Carp::croak(q/Usage: $http->www_form_urlencode(DATAREF)/ . "\n"); - (ref $data eq 'HASH' || ref $data eq 'ARRAY') - or Carp::croak("form data must be a hash or array reference\n"); - - my @params = ref $data eq 'HASH' ? %$data : @$data; - @params % 2 == 0 - or Carp::croak("form data reference must have an even number of terms\n"); - - my @terms; - while( @params ) { - my ($key, $value) = splice(@params, 0, 2); - if ( ref $value eq 'ARRAY' ) { - unshift @params, map { $key => $_ } @$value; - } - else { - push @terms, join("=", map { $self->_uri_escape($_) } $key, $value); - } - } - - return join("&", (ref $data eq 'ARRAY') ? (@terms) : (sort @terms) ); - } - - #pod =method can_ssl - #pod - #pod $ok = HTTP::Tiny->can_ssl; - #pod ($ok, $why) = HTTP::Tiny->can_ssl; - #pod ($ok, $why) = $http->can_ssl; - #pod - #pod Indicates if SSL support is available. When called as a class object, it - #pod checks for the correct version of L<Net::SSLeay> and L<IO::Socket::SSL>. - #pod When called as an object methods, if C<SSL_verify> is true or if C<SSL_verify_mode> - #pod is set in C<SSL_options>, it checks that a CA file is available. - #pod - #pod In scalar context, returns a boolean indicating if SSL is available. - #pod In list context, returns the boolean and a (possibly multi-line) string of - #pod errors indicating why SSL isn't available. - #pod - #pod =cut - - sub can_ssl { - my ($self) = @_; - - my($ok, $reason) = (1, ''); - - # Need IO::Socket::SSL 1.42 for SSL_create_ctx_callback - unless (eval {require IO::Socket::SSL; IO::Socket::SSL->VERSION(1.42)}) { - $ok = 0; - $reason .= qq/IO::Socket::SSL 1.42 must be installed for https support\n/; - } - - # Need Net::SSLeay 1.49 for MODE_AUTO_RETRY - unless (eval {require Net::SSLeay; Net::SSLeay->VERSION(1.49)}) { - $ok = 0; - $reason .= qq/Net::SSLeay 1.49 must be installed for https support\n/; - } - - # If an object, check that SSL config lets us get a CA if necessary - if ( ref($self) && ( $self->{verify_SSL} || $self->{SSL_options}{SSL_verify_mode} ) ) { - my $handle = HTTP::Tiny::Handle->new( - SSL_options => $self->{SSL_options}, - verify_SSL => $self->{verify_SSL}, - ); - unless ( eval { $handle->_find_CA_file; 1 } ) { - $ok = 0; - $reason .= "$@"; - } - } - - wantarray ? ($ok, $reason) : $ok; - } - - #--------------------------------------------------------------------------# - # private methods - #--------------------------------------------------------------------------# - - my %DefaultPort = ( - http => 80, - https => 443, - ); - - sub _agent { - my $class = ref($_[0]) || $_[0]; - (my $default_agent = $class) =~ s{::}{-}g; - return $default_agent . "/" . $class->VERSION; - } - - sub _request { - my ($self, $method, $url, $args) = @_; - - my ($scheme, $host, $port, $path_query, $auth) = $self->_split_url($url); - - my $request = { - method => $method, - scheme => $scheme, - host => $host, - port => $port, - host_port => ($port == $DefaultPort{$scheme} ? $host : "$host:$port"), - uri => $path_query, - headers => {}, - }; - - # We remove the cached handle so it is not reused in the case of redirect. - # If all is well, it will be recached at the end of _request. We only - # reuse for the same scheme, host and port - my $handle = delete $self->{handle}; - if ( $handle ) { - unless ( $handle->can_reuse( $scheme, $host, $port ) ) { - $handle->close; - undef $handle; - } - } - $handle ||= $self->_open_handle( $request, $scheme, $host, $port ); - - $self->_prepare_headers_and_cb($request, $args, $url, $auth); - $handle->write_request($request); - - my $response; - do { $response = $handle->read_response_header } - until (substr($response->{status},0,1) ne '1'); - - $self->_update_cookie_jar( $url, $response ) if $self->{cookie_jar}; - - if ( my @redir_args = $self->_maybe_redirect($request, $response, $args) ) { - $handle->close; - return $self->_request(@redir_args, $args); - } - - my $known_message_length; - if ($method eq 'HEAD' || $response->{status} =~ /^[23]04/) { - # response has no message body - $known_message_length = 1; - } - else { - my $data_cb = $self->_prepare_data_cb($response, $args); - $known_message_length = $handle->read_body($data_cb, $response); - } - - if ( $self->{keep_alive} - && $known_message_length - && $response->{protocol} eq 'HTTP/1.1' - && ($response->{headers}{connection} || '') ne 'close' - ) { - $self->{handle} = $handle; - } - else { - $handle->close; - } - - $response->{success} = substr( $response->{status}, 0, 1 ) eq '2'; - $response->{url} = $url; - return $response; - } - - sub _open_handle { - my ($self, $request, $scheme, $host, $port) = @_; - - my $handle = HTTP::Tiny::Handle->new( - timeout => $self->{timeout}, - SSL_options => $self->{SSL_options}, - verify_SSL => $self->{verify_SSL}, - local_address => $self->{local_address}, - keep_alive => $self->{keep_alive} - ); - - if ($self->{_has_proxy}{$scheme} && ! grep { $host =~ /\Q$_\E$/ } @{$self->{no_proxy}}) { - return $self->_proxy_connect( $request, $handle ); - } - else { - return $handle->connect($scheme, $host, $port); - } - } - - sub _proxy_connect { - my ($self, $request, $handle) = @_; - - my @proxy_vars; - if ( $request->{scheme} eq 'https' ) { - Carp::croak(qq{No https_proxy defined}) unless $self->{https_proxy}; - @proxy_vars = $self->_split_proxy( https_proxy => $self->{https_proxy} ); - if ( $proxy_vars[0] eq 'https' ) { - Carp::croak(qq{Can't proxy https over https: $request->{uri} via $self->{https_proxy}}); - } - } - else { - Carp::croak(qq{No http_proxy defined}) unless $self->{http_proxy}; - @proxy_vars = $self->_split_proxy( http_proxy => $self->{http_proxy} ); - } - - my ($p_scheme, $p_host, $p_port, $p_auth) = @proxy_vars; - - if ( length $p_auth && ! defined $request->{headers}{'proxy-authorization'} ) { - $self->_add_basic_auth_header( $request, 'proxy-authorization' => $p_auth ); - } - - $handle->connect($p_scheme, $p_host, $p_port); - - if ($request->{scheme} eq 'https') { - $self->_create_proxy_tunnel( $request, $handle ); - } - else { - # non-tunneled proxy requires absolute URI - $request->{uri} = "$request->{scheme}://$request->{host_port}$request->{uri}"; - } - - return $handle; - } - - sub _split_proxy { - my ($self, $type, $proxy) = @_; - - my ($scheme, $host, $port, $path_query, $auth) = eval { $self->_split_url($proxy) }; - - unless( - defined($scheme) && length($scheme) && length($host) && length($port) - && $path_query eq '/' - ) { - Carp::croak(qq{$type URL must be in format http[s]://[auth@]<host>:<port>/\n}); - } - - return ($scheme, $host, $port, $auth); - } - - sub _create_proxy_tunnel { - my ($self, $request, $handle) = @_; - - $handle->_assert_ssl; - - my $agent = exists($request->{headers}{'user-agent'}) - ? $request->{headers}{'user-agent'} : $self->{agent}; - - my $connect_request = { - method => 'CONNECT', - uri => "$request->{host}:$request->{port}", - headers => { - host => "$request->{host}:$request->{port}", - 'user-agent' => $agent, - } - }; - - if ( $request->{headers}{'proxy-authorization'} ) { - $connect_request->{headers}{'proxy-authorization'} = - delete $request->{headers}{'proxy-authorization'}; - } - - $handle->write_request($connect_request); - my $response; - do { $response = $handle->read_response_header } - until (substr($response->{status},0,1) ne '1'); - - # if CONNECT failed, throw the response so it will be - # returned from the original request() method; - unless (substr($response->{status},0,1) eq '2') { - die $response; - } - - # tunnel established, so start SSL handshake - $handle->start_ssl( $request->{host} ); - - return; - } - - sub _prepare_headers_and_cb { - my ($self, $request, $args, $url, $auth) = @_; - - for ($self->{default_headers}, $args->{headers}) { - next unless defined; - while (my ($k, $v) = each %$_) { - $request->{headers}{lc $k} = $v; - } - } - - if (exists $request->{headers}{'host'}) { - die(qq/The 'Host' header must not be provided as header option\n/); - } - - $request->{headers}{'host'} = $request->{host_port}; - $request->{headers}{'user-agent'} ||= $self->{agent}; - $request->{headers}{'connection'} = "close" - unless $self->{keep_alive}; - - if ( defined $args->{content} ) { - if (ref $args->{content} eq 'CODE') { - $request->{headers}{'content-type'} ||= "application/octet-stream"; - $request->{headers}{'transfer-encoding'} = 'chunked' - unless $request->{headers}{'content-length'} - || $request->{headers}{'transfer-encoding'}; - $request->{cb} = $args->{content}; - } - elsif ( length $args->{content} ) { - my $content = $args->{content}; - if ( $] ge '5.008' ) { - utf8::downgrade($content, 1) - or die(qq/Wide character in request message body\n/); - } - $request->{headers}{'content-type'} ||= "application/octet-stream"; - $request->{headers}{'content-length'} = length $content - unless $request->{headers}{'content-length'} - || $request->{headers}{'transfer-encoding'}; - $request->{cb} = sub { substr $content, 0, length $content, '' }; - } - $request->{trailer_cb} = $args->{trailer_callback} - if ref $args->{trailer_callback} eq 'CODE'; - } - - ### If we have a cookie jar, then maybe add relevant cookies - if ( $self->{cookie_jar} ) { - my $cookies = $self->cookie_jar->cookie_header( $url ); - $request->{headers}{cookie} = $cookies if length $cookies; - } - - # if we have Basic auth parameters, add them - if ( length $auth && ! defined $request->{headers}{authorization} ) { - $self->_add_basic_auth_header( $request, 'authorization' => $auth ); - } - - return; - } - - sub _add_basic_auth_header { - my ($self, $request, $header, $auth) = @_; - require MIME::Base64; - $request->{headers}{$header} = - "Basic " . MIME::Base64::encode_base64($auth, ""); - return; - } - - sub _prepare_data_cb { - my ($self, $response, $args) = @_; - my $data_cb = $args->{data_callback}; - $response->{content} = ''; - - if (!$data_cb || $response->{status} !~ /^2/) { - if (defined $self->{max_size}) { - $data_cb = sub { - $_[1]->{content} .= $_[0]; - die(qq/Size of response body exceeds the maximum allowed of $self->{max_size}\n/) - if length $_[1]->{content} > $self->{max_size}; - }; - } - else { - $data_cb = sub { $_[1]->{content} .= $_[0] }; - } - } - return $data_cb; - } - - sub _update_cookie_jar { - my ($self, $url, $response) = @_; - - my $cookies = $response->{headers}->{'set-cookie'}; - return unless defined $cookies; - - my @cookies = ref $cookies ? @$cookies : $cookies; - - $self->cookie_jar->add( $url, $_ ) for @cookies; - - return; - } - - sub _validate_cookie_jar { - my ($class, $jar) = @_; - - # duck typing - for my $method ( qw/add cookie_header/ ) { - Carp::croak(qq/Cookie jar must provide the '$method' method\n/) - unless ref($jar) && ref($jar)->can($method); - } - - return; - } - - sub _maybe_redirect { - my ($self, $request, $response, $args) = @_; - my $headers = $response->{headers}; - my ($status, $method) = ($response->{status}, $request->{method}); - if (($status eq '303' or ($status =~ /^30[1278]/ && $method =~ /^GET|HEAD$/)) - and $headers->{location} - and ++$args->{redirects} <= $self->{max_redirect} - ) { - my $location = ($headers->{location} =~ /^\//) - ? "$request->{scheme}://$request->{host_port}$headers->{location}" - : $headers->{location} ; - return (($status eq '303' ? 'GET' : $method), $location); - } - return; - } - - sub _split_url { - my $url = pop; - - # URI regex adapted from the URI module - my ($scheme, $host, $path_query) = $url =~ m<\A([^:/?#]+)://([^/?#]*)([^#]*)> - or die(qq/Cannot parse URL: '$url'\n/); - - $scheme = lc $scheme; - $path_query = "/$path_query" unless $path_query =~ m<\A/>; - - my $auth = ''; - if ( (my $i = index $host, '@') != -1 ) { - # user:pass@host - $auth = substr $host, 0, $i, ''; # take up to the @ for auth - substr $host, 0, 1, ''; # knock the @ off the host - - # userinfo might be percent escaped, so recover real auth info - $auth =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg; - } - my $port = $host =~ s/:(\d*)\z// && length $1 ? $1 - : $scheme eq 'http' ? 80 - : $scheme eq 'https' ? 443 - : undef; - - return ($scheme, (length $host ? lc $host : "localhost") , $port, $path_query, $auth); - } - - # Date conversions adapted from HTTP::Date - my $DoW = "Sun|Mon|Tue|Wed|Thu|Fri|Sat"; - my $MoY = "Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec"; - sub _http_date { - my ($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime($_[1]); - return sprintf("%s, %02d %s %04d %02d:%02d:%02d GMT", - substr($DoW,$wday*4,3), - $mday, substr($MoY,$mon*4,3), $year+1900, - $hour, $min, $sec - ); - } - - sub _parse_http_date { - my ($self, $str) = @_; - require Time::Local; - my @tl_parts; - if ($str =~ /^[SMTWF][a-z]+, +(\d{1,2}) ($MoY) +(\d\d\d\d) +(\d\d):(\d\d):(\d\d) +GMT$/) { - @tl_parts = ($6, $5, $4, $1, (index($MoY,$2)/4), $3); - } - elsif ($str =~ /^[SMTWF][a-z]+, +(\d\d)-($MoY)-(\d{2,4}) +(\d\d):(\d\d):(\d\d) +GMT$/ ) { - @tl_parts = ($6, $5, $4, $1, (index($MoY,$2)/4), $3); - } - elsif ($str =~ /^[SMTWF][a-z]+ +($MoY) +(\d{1,2}) +(\d\d):(\d\d):(\d\d) +(?:[^0-9]+ +)?(\d\d\d\d)$/ ) { - @tl_parts = ($5, $4, $3, $2, (index($MoY,$1)/4), $6); - } - return eval { - my $t = @tl_parts ? Time::Local::timegm(@tl_parts) : -1; - $t < 0 ? undef : $t; - }; - } - - # URI escaping adapted from URI::Escape - # c.f. http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1 - # perl 5.6 ready UTF-8 encoding adapted from JSON::PP - my %escapes = map { chr($_) => sprintf("%%%02X", $_) } 0..255; - $escapes{' '}="+"; - my $unsafe_char = qr/[^A-Za-z0-9\-\._~]/; - - sub _uri_escape { - my ($self, $str) = @_; - if ( $] ge '5.008' ) { - utf8::encode($str); - } - else { - $str = pack("U*", unpack("C*", $str)) # UTF-8 encode a byte string - if ( length $str == do { use bytes; length $str } ); - $str = pack("C*", unpack("C*", $str)); # clear UTF-8 flag - } - $str =~ s/($unsafe_char)/$escapes{$1}/ge; - return $str; - } - - package - HTTP::Tiny::Handle; # hide from PAUSE/indexers - use strict; - use warnings; - - use Errno qw[EINTR EPIPE]; - use IO::Socket qw[SOCK_STREAM]; - - # PERL_HTTP_TINY_IPV4_ONLY is a private environment variable to force old - # behavior if someone is unable to boostrap CPAN from a new perl install; it is - # not intended for general, per-client use and may be removed in the future - my $SOCKET_CLASS = - $ENV{PERL_HTTP_TINY_IPV4_ONLY} ? 'IO::Socket::INET' : - eval { require IO::Socket::IP; IO::Socket::IP->VERSION(0.25) } ? 'IO::Socket::IP' : - 'IO::Socket::INET'; - - sub BUFSIZE () { 32768 } ## no critic - - my $Printable = sub { - local $_ = shift; - s/\r/\\r/g; - s/\n/\\n/g; - s/\t/\\t/g; - s/([^\x20-\x7E])/sprintf('\\x%.2X', ord($1))/ge; - $_; - }; - - my $Token = qr/[\x21\x23-\x27\x2A\x2B\x2D\x2E\x30-\x39\x41-\x5A\x5E-\x7A\x7C\x7E]/; - - sub new { - my ($class, %args) = @_; - return bless { - rbuf => '', - timeout => 60, - max_line_size => 16384, - max_header_lines => 64, - verify_SSL => 0, - SSL_options => {}, - %args - }, $class; - } - - sub connect { - @_ == 4 || die(q/Usage: $handle->connect(scheme, host, port)/ . "\n"); - my ($self, $scheme, $host, $port) = @_; - - if ( $scheme eq 'https' ) { - $self->_assert_ssl; - } - elsif ( $scheme ne 'http' ) { - die(qq/Unsupported URL scheme '$scheme'\n/); - } - $self->{fh} = $SOCKET_CLASS->new( - PeerHost => $host, - PeerPort => $port, - $self->{local_address} ? - ( LocalAddr => $self->{local_address} ) : (), - Proto => 'tcp', - Type => SOCK_STREAM, - Timeout => $self->{timeout}, - KeepAlive => !!$self->{keep_alive} - ) or die(qq/Could not connect to '$host:$port': $@\n/); - - binmode($self->{fh}) - or die(qq/Could not binmode() socket: '$!'\n/); - - $self->start_ssl($host) if $scheme eq 'https'; - - $self->{scheme} = $scheme; - $self->{host} = $host; - $self->{port} = $port; - $self->{pid} = $$; - $self->{tid} = _get_tid(); - - return $self; - } - - sub start_ssl { - my ($self, $host) = @_; - - # As this might be used via CONNECT after an SSL session - # to a proxy, we shut down any existing SSL before attempting - # the handshake - if ( ref($self->{fh}) eq 'IO::Socket::SSL' ) { - unless ( $self->{fh}->stop_SSL ) { - my $ssl_err = IO::Socket::SSL->errstr; - die(qq/Error halting prior SSL connection: $ssl_err/); - } - } - - my $ssl_args = $self->_ssl_args($host); - IO::Socket::SSL->start_SSL( - $self->{fh}, - %$ssl_args, - SSL_create_ctx_callback => sub { - my $ctx = shift; - Net::SSLeay::CTX_set_mode($ctx, Net::SSLeay::MODE_AUTO_RETRY()); - }, - ); - - unless ( ref($self->{fh}) eq 'IO::Socket::SSL' ) { - my $ssl_err = IO::Socket::SSL->errstr; - die(qq/SSL connection failed for $host: $ssl_err\n/); - } - } - - sub close { - @_ == 1 || die(q/Usage: $handle->close()/ . "\n"); - my ($self) = @_; - CORE::close($self->{fh}) - or die(qq/Could not close socket: '$!'\n/); - } - - sub write { - @_ == 2 || die(q/Usage: $handle->write(buf)/ . "\n"); - my ($self, $buf) = @_; - - if ( $] ge '5.008' ) { - utf8::downgrade($buf, 1) - or die(qq/Wide character in write()\n/); - } - - my $len = length $buf; - my $off = 0; - - local $SIG{PIPE} = 'IGNORE'; - - while () { - $self->can_write - or die(qq/Timed out while waiting for socket to become ready for writing\n/); - my $r = syswrite($self->{fh}, $buf, $len, $off); - if (defined $r) { - $len -= $r; - $off += $r; - last unless $len > 0; - } - elsif ($! == EPIPE) { - die(qq/Socket closed by remote server: $!\n/); - } - elsif ($! != EINTR) { - if ($self->{fh}->can('errstr')){ - my $err = $self->{fh}->errstr(); - die (qq/Could not write to SSL socket: '$err'\n /); - } - else { - die(qq/Could not write to socket: '$!'\n/); - } - - } - } - return $off; - } - - sub read { - @_ == 2 || @_ == 3 || die(q/Usage: $handle->read(len [, allow_partial])/ . "\n"); - my ($self, $len, $allow_partial) = @_; - - my $buf = ''; - my $got = length $self->{rbuf}; - - if ($got) { - my $take = ($got < $len) ? $got : $len; - $buf = substr($self->{rbuf}, 0, $take, ''); - $len -= $take; - } - - while ($len > 0) { - $self->can_read - or die(q/Timed out while waiting for socket to become ready for reading/ . "\n"); - my $r = sysread($self->{fh}, $buf, $len, length $buf); - if (defined $r) { - last unless $r; - $len -= $r; - } - elsif ($! != EINTR) { - if ($self->{fh}->can('errstr')){ - my $err = $self->{fh}->errstr(); - die (qq/Could not read from SSL socket: '$err'\n /); - } - else { - die(qq/Could not read from socket: '$!'\n/); - } - } - } - if ($len && !$allow_partial) { - die(qq/Unexpected end of stream\n/); - } - return $buf; - } - - sub readline { - @_ == 1 || die(q/Usage: $handle->readline()/ . "\n"); - my ($self) = @_; - - while () { - if ($self->{rbuf} =~ s/\A ([^\x0D\x0A]* \x0D?\x0A)//x) { - return $1; - } - if (length $self->{rbuf} >= $self->{max_line_size}) { - die(qq/Line size exceeds the maximum allowed size of $self->{max_line_size}\n/); - } - $self->can_read - or die(qq/Timed out while waiting for socket to become ready for reading\n/); - my $r = sysread($self->{fh}, $self->{rbuf}, BUFSIZE, length $self->{rbuf}); - if (defined $r) { - last unless $r; - } - elsif ($! != EINTR) { - if ($self->{fh}->can('errstr')){ - my $err = $self->{fh}->errstr(); - die (qq/Could not read from SSL socket: '$err'\n /); - } - else { - die(qq/Could not read from socket: '$!'\n/); - } - } - } - die(qq/Unexpected end of stream while looking for line\n/); - } - - sub read_header_lines { - @_ == 1 || @_ == 2 || die(q/Usage: $handle->read_header_lines([headers])/ . "\n"); - my ($self, $headers) = @_; - $headers ||= {}; - my $lines = 0; - my $val; - - while () { - my $line = $self->readline; - - if (++$lines >= $self->{max_header_lines}) { - die(qq/Header lines exceeds maximum number allowed of $self->{max_header_lines}\n/); - } - elsif ($line =~ /\A ([^\x00-\x1F\x7F:]+) : [\x09\x20]* ([^\x0D\x0A]*)/x) { - my ($field_name) = lc $1; - if (exists $headers->{$field_name}) { - for ($headers->{$field_name}) { - $_ = [$_] unless ref $_ eq "ARRAY"; - push @$_, $2; - $val = \$_->[-1]; - } - } - else { - $val = \($headers->{$field_name} = $2); - } - } - elsif ($line =~ /\A [\x09\x20]+ ([^\x0D\x0A]*)/x) { - $val - or die(qq/Unexpected header continuation line\n/); - next unless length $1; - $$val .= ' ' if length $$val; - $$val .= $1; - } - elsif ($line =~ /\A \x0D?\x0A \z/x) { - last; - } - else { - die(q/Malformed header line: / . $Printable->($line) . "\n"); - } - } - return $headers; - } - - sub write_request { - @_ == 2 || die(q/Usage: $handle->write_request(request)/ . "\n"); - my($self, $request) = @_; - $self->write_request_header(@{$request}{qw/method uri headers/}); - $self->write_body($request) if $request->{cb}; - return; - } - - my %HeaderCase = ( - 'content-md5' => 'Content-MD5', - 'etag' => 'ETag', - 'te' => 'TE', - 'www-authenticate' => 'WWW-Authenticate', - 'x-xss-protection' => 'X-XSS-Protection', - ); - - # to avoid multiple small writes and hence nagle, you can pass the method line or anything else to - # combine writes. - sub write_header_lines { - (@_ == 2 || @_ == 3 && ref $_[1] eq 'HASH') || die(q/Usage: $handle->write_header_lines(headers[,prefix])/ . "\n"); - my($self, $headers, $prefix_data) = @_; - - my $buf = (defined $prefix_data ? $prefix_data : ''); - while (my ($k, $v) = each %$headers) { - my $field_name = lc $k; - if (exists $HeaderCase{$field_name}) { - $field_name = $HeaderCase{$field_name}; - } - else { - $field_name =~ /\A $Token+ \z/xo - or die(q/Invalid HTTP header field name: / . $Printable->($field_name) . "\n"); - $field_name =~ s/\b(\w)/\u$1/g; - $HeaderCase{lc $field_name} = $field_name; - } - for (ref $v eq 'ARRAY' ? @$v : $v) { - $_ = '' unless defined $_; - $buf .= "$field_name: $_\x0D\x0A"; - } - } - $buf .= "\x0D\x0A"; - return $self->write($buf); - } - - # return value indicates whether message length was defined; this is generally - # true unless there was no content-length header and we just read until EOF. - # Other message length errors are thrown as exceptions - sub read_body { - @_ == 3 || die(q/Usage: $handle->read_body(callback, response)/ . "\n"); - my ($self, $cb, $response) = @_; - my $te = $response->{headers}{'transfer-encoding'} || ''; - my $chunked = grep { /chunked/i } ( ref $te eq 'ARRAY' ? @$te : $te ) ; - return $chunked - ? $self->read_chunked_body($cb, $response) - : $self->read_content_body($cb, $response); - } - - sub write_body { - @_ == 2 || die(q/Usage: $handle->write_body(request)/ . "\n"); - my ($self, $request) = @_; - if ($request->{headers}{'content-length'}) { - return $self->write_content_body($request); - } - else { - return $self->write_chunked_body($request); - } - } - - sub read_content_body { - @_ == 3 || @_ == 4 || die(q/Usage: $handle->read_content_body(callback, response, [read_length])/ . "\n"); - my ($self, $cb, $response, $content_length) = @_; - $content_length ||= $response->{headers}{'content-length'}; - - if ( defined $content_length ) { - my $len = $content_length; - while ($len > 0) { - my $read = ($len > BUFSIZE) ? BUFSIZE : $len; - $cb->($self->read($read, 0), $response); - $len -= $read; - } - return length($self->{rbuf}) == 0; - } - - my $chunk; - $cb->($chunk, $response) while length( $chunk = $self->read(BUFSIZE, 1) ); - - return; - } - - sub write_content_body { - @_ == 2 || die(q/Usage: $handle->write_content_body(request)/ . "\n"); - my ($self, $request) = @_; - - my ($len, $content_length) = (0, $request->{headers}{'content-length'}); - while () { - my $data = $request->{cb}->(); - - defined $data && length $data - or last; - - if ( $] ge '5.008' ) { - utf8::downgrade($data, 1) - or die(qq/Wide character in write_content()\n/); - } - - $len += $self->write($data); - } - - $len == $content_length - or die(qq/Content-Length mismatch (got: $len expected: $content_length)\n/); - - return $len; - } - - sub read_chunked_body { - @_ == 3 || die(q/Usage: $handle->read_chunked_body(callback, $response)/ . "\n"); - my ($self, $cb, $response) = @_; - - while () { - my $head = $self->readline; - - $head =~ /\A ([A-Fa-f0-9]+)/x - or die(q/Malformed chunk head: / . $Printable->($head) . "\n"); - - my $len = hex($1) - or last; - - $self->read_content_body($cb, $response, $len); - - $self->read(2) eq "\x0D\x0A" - or die(qq/Malformed chunk: missing CRLF after chunk data\n/); - } - $self->read_header_lines($response->{headers}); - return 1; - } - - sub write_chunked_body { - @_ == 2 || die(q/Usage: $handle->write_chunked_body(request)/ . "\n"); - my ($self, $request) = @_; - - my $len = 0; - while () { - my $data = $request->{cb}->(); - - defined $data && length $data - or last; - - if ( $] ge '5.008' ) { - utf8::downgrade($data, 1) - or die(qq/Wide character in write_chunked_body()\n/); - } - - $len += length $data; - - my $chunk = sprintf '%X', length $data; - $chunk .= "\x0D\x0A"; - $chunk .= $data; - $chunk .= "\x0D\x0A"; - - $self->write($chunk); - } - $self->write("0\x0D\x0A"); - $self->write_header_lines($request->{trailer_cb}->()) - if ref $request->{trailer_cb} eq 'CODE'; - return $len; - } - - sub read_response_header { - @_ == 1 || die(q/Usage: $handle->read_response_header()/ . "\n"); - my ($self) = @_; - - my $line = $self->readline; - - $line =~ /\A (HTTP\/(0*\d+\.0*\d+)) [\x09\x20]+ ([0-9]{3}) [\x09\x20]+ ([^\x0D\x0A]*) \x0D?\x0A/x - or die(q/Malformed Status-Line: / . $Printable->($line). "\n"); - - my ($protocol, $version, $status, $reason) = ($1, $2, $3, $4); - - die (qq/Unsupported HTTP protocol: $protocol\n/) - unless $version =~ /0*1\.0*[01]/; - - return { - status => $status, - reason => $reason, - headers => $self->read_header_lines, - protocol => $protocol, - }; - } - - sub write_request_header { - @_ == 4 || die(q/Usage: $handle->write_request_header(method, request_uri, headers)/ . "\n"); - my ($self, $method, $request_uri, $headers) = @_; - - return $self->write_header_lines($headers, "$method $request_uri HTTP/1.1\x0D\x0A"); - } - - sub _do_timeout { - my ($self, $type, $timeout) = @_; - $timeout = $self->{timeout} - unless defined $timeout && $timeout >= 0; - - my $fd = fileno $self->{fh}; - defined $fd && $fd >= 0 - or die(qq/select(2): 'Bad file descriptor'\n/); - - my $initial = time; - my $pending = $timeout; - my $nfound; - - vec(my $fdset = '', $fd, 1) = 1; - - while () { - $nfound = ($type eq 'read') - ? select($fdset, undef, undef, $pending) - : select(undef, $fdset, undef, $pending) ; - if ($nfound == -1) { - $! == EINTR - or die(qq/select(2): '$!'\n/); - redo if !$timeout || ($pending = $timeout - (time - $initial)) > 0; - $nfound = 0; - } - last; - } - $! = 0; - return $nfound; - } - - sub can_read { - @_ == 1 || @_ == 2 || die(q/Usage: $handle->can_read([timeout])/ . "\n"); - my $self = shift; - if ( ref($self->{fh}) eq 'IO::Socket::SSL' ) { - return 1 if $self->{fh}->pending; - } - return $self->_do_timeout('read', @_) - } - - sub can_write { - @_ == 1 || @_ == 2 || die(q/Usage: $handle->can_write([timeout])/ . "\n"); - my $self = shift; - return $self->_do_timeout('write', @_) - } - - sub _assert_ssl { - my($ok, $reason) = HTTP::Tiny->can_ssl(); - die $reason unless $ok; - } - - sub can_reuse { - my ($self,$scheme,$host,$port) = @_; - return 0 if - $self->{pid} != $$ - || $self->{tid} != _get_tid() - || length($self->{rbuf}) - || $scheme ne $self->{scheme} - || $host ne $self->{host} - || $port ne $self->{port} - || eval { $self->can_read(0) } - || $@ ; - return 1; - } - - # Try to find a CA bundle to validate the SSL cert, - # prefer Mozilla::CA or fallback to a system file - sub _find_CA_file { - my $self = shift(); - - if ( $self->{SSL_options}->{SSL_ca_file} ) { - unless ( -r $self->{SSL_options}->{SSL_ca_file} ) { - die qq/SSL_ca_file '$self->{SSL_options}->{SSL_ca_file}' not found or not readable\n/; - } - return $self->{SSL_options}->{SSL_ca_file}; - } - - return Mozilla::CA::SSL_ca_file() - if eval { require Mozilla::CA; 1 }; - - # cert list copied from golang src/crypto/x509/root_unix.go - foreach my $ca_bundle ( - "/etc/ssl/certs/ca-certificates.crt", # Debian/Ubuntu/Gentoo etc. - "/etc/pki/tls/certs/ca-bundle.crt", # Fedora/RHEL - "/etc/ssl/ca-bundle.pem", # OpenSUSE - "/etc/openssl/certs/ca-certificates.crt", # NetBSD - "/etc/ssl/cert.pem", # OpenBSD - "/usr/local/share/certs/ca-root-nss.crt", # FreeBSD/DragonFly - "/etc/pki/tls/cacert.pem", # OpenELEC - "/etc/certs/ca-certificates.crt", # Solaris 11.2+ - ) { - return $ca_bundle if -e $ca_bundle; - } - - die qq/Couldn't find a CA bundle with which to verify the SSL certificate.\n/ - . qq/Try installing Mozilla::CA from CPAN\n/; - } - - # for thread safety, we need to know thread id if threads are loaded - sub _get_tid { - no warnings 'reserved'; # for 'threads' - return threads->can("tid") ? threads->tid : 0; - } - - sub _ssl_args { - my ($self, $host) = @_; - - my %ssl_args; - - # This test reimplements IO::Socket::SSL::can_client_sni(), which wasn't - # added until IO::Socket::SSL 1.84 - if ( Net::SSLeay::OPENSSL_VERSION_NUMBER() >= 0x01000000 ) { - $ssl_args{SSL_hostname} = $host, # Sane SNI support - } - - if ($self->{verify_SSL}) { - $ssl_args{SSL_verifycn_scheme} = 'http'; # enable CN validation - $ssl_args{SSL_verifycn_name} = $host; # set validation hostname - $ssl_args{SSL_verify_mode} = 0x01; # enable cert validation - $ssl_args{SSL_ca_file} = $self->_find_CA_file; - } - else { - $ssl_args{SSL_verifycn_scheme} = 'none'; # disable CN validation - $ssl_args{SSL_verify_mode} = 0x00; # disable cert validation - } - - # user options override settings from verify_SSL - for my $k ( keys %{$self->{SSL_options}} ) { - $ssl_args{$k} = $self->{SSL_options}{$k} if $k =~ m/^SSL_/; - } - - return \%ssl_args; - } - - 1; - - __END__ - - =pod - - =encoding UTF-8 - - =head1 NAME - - HTTP::Tiny - A small, simple, correct HTTP/1.1 client - - =head1 VERSION - - version 0.056 - - =head1 SYNOPSIS - - use HTTP::Tiny; - - my $response = HTTP::Tiny->new->get('http://example.com/'); - - die "Failed!\n" unless $response->{success}; - - print "$response->{status} $response->{reason}\n"; - - while (my ($k, $v) = each %{$response->{headers}}) { - for (ref $v eq 'ARRAY' ? @$v : $v) { - print "$k: $_\n"; - } - } - - print $response->{content} if length $response->{content}; - - =head1 DESCRIPTION - - This is a very simple HTTP/1.1 client, designed for doing simple - requests without the overhead of a large framework like L<LWP::UserAgent>. - - It is more correct and more complete than L<HTTP::Lite>. It supports - proxies and redirection. It also correctly resumes after EINTR. - - If L<IO::Socket::IP> 0.25 or later is installed, HTTP::Tiny will use it instead - of L<IO::Socket::INET> for transparent support for both IPv4 and IPv6. - - Cookie support requires L<HTTP::CookieJar> or an equivalent class. - - =head1 METHODS - - =head2 new - - $http = HTTP::Tiny->new( %attributes ); - - This constructor returns a new HTTP::Tiny object. Valid attributes include: - - =over 4 - - =item * - - C<agent> — A user-agent string (defaults to 'HTTP-Tiny/$VERSION'). If C<agent> — ends in a space character, the default user-agent string is appended. - - =item * - - C<cookie_jar> — An instance of L<HTTP::CookieJar> — or equivalent class that supports the C<add> and C<cookie_header> methods - - =item * - - C<default_headers> — A hashref of default headers to apply to requests - - =item * - - C<local_address> — The local IP address to bind to - - =item * - - C<keep_alive> — Whether to reuse the last connection (if for the same scheme, host and port) (defaults to 1) - - =item * - - C<max_redirect> — Maximum number of redirects allowed (defaults to 5) - - =item * - - C<max_size> — Maximum response size in bytes (only when not using a data callback). If defined, responses larger than this will return an exception. - - =item * - - C<http_proxy> — URL of a proxy server to use for HTTP connections (default is C<$ENV{http_proxy}> — if set) - - =item * - - C<https_proxy> — URL of a proxy server to use for HTTPS connections (default is C<$ENV{https_proxy}> — if set) - - =item * - - C<proxy> — URL of a generic proxy server for both HTTP and HTTPS connections (default is C<$ENV{all_proxy}> — if set) - - =item * - - C<no_proxy> — List of domain suffixes that should not be proxied. Must be a comma-separated string or an array reference. (default is C<$ENV{no_proxy}> —) - - =item * - - C<timeout> — Request timeout in seconds (default is 60) - - =item * - - C<verify_SSL> — A boolean that indicates whether to validate the SSL certificate of an C<https> — connection (default is false) - - =item * - - C<SSL_options> — A hashref of C<SSL_*> — options to pass through to L<IO::Socket::SSL> - - =back - - Passing an explicit C<undef> for C<proxy>, C<http_proxy> or C<https_proxy> will - prevent getting the corresponding proxies from the environment. - - Exceptions from C<max_size>, C<timeout> or other errors will result in a - pseudo-HTTP status code of 599 and a reason of "Internal Exception". The - content field in the response will contain the text of the exception. - - The C<keep_alive> parameter enables a persistent connection, but only to a - single destination scheme, host and port. Also, if any connection-relevant - attributes are modified, or if the process ID or thread ID change, the - persistent connection will be dropped. If you want persistent connections - across multiple destinations, use multiple HTTP::Tiny objects. - - See L</SSL SUPPORT> for more on the C<verify_SSL> and C<SSL_options> attributes. - - =head2 get|head|put|post|delete - - $response = $http->get($url); - $response = $http->get($url, \%options); - $response = $http->head($url); - - These methods are shorthand for calling C<request()> for the given method. The - URL must have unsafe characters escaped and international domain names encoded. - See C<request()> for valid options and a description of the response. - - The C<success> field of the response will be true if the status code is 2XX. - - =head2 post_form - - $response = $http->post_form($url, $form_data); - $response = $http->post_form($url, $form_data, \%options); - - This method executes a C<POST> request and sends the key/value pairs from a - form data hash or array reference to the given URL with a C<content-type> of - C<application/x-www-form-urlencoded>. If data is provided as an array - reference, the order is preserved; if provided as a hash reference, the terms - are sorted on key and value for consistency. See documentation for the - C<www_form_urlencode> method for details on the encoding. - - The URL must have unsafe characters escaped and international domain names - encoded. See C<request()> for valid options and a description of the response. - Any C<content-type> header or content in the options hashref will be ignored. - - The C<success> field of the response will be true if the status code is 2XX. - - =head2 mirror - - $response = $http->mirror($url, $file, \%options) - if ( $response->{success} ) { - print "$file is up to date\n"; - } - - Executes a C<GET> request for the URL and saves the response body to the file - name provided. The URL must have unsafe characters escaped and international - domain names encoded. If the file already exists, the request will include an - C<If-Modified-Since> header with the modification timestamp of the file. You - may specify a different C<If-Modified-Since> header yourself in the C<< - $options->{headers} >> hash. - - The C<success> field of the response will be true if the status code is 2XX - or if the status code is 304 (unmodified). - - If the file was modified and the server response includes a properly - formatted C<Last-Modified> header, the file modification time will - be updated accordingly. - - =head2 request - - $response = $http->request($method, $url); - $response = $http->request($method, $url, \%options); - - Executes an HTTP request of the given method type ('GET', 'HEAD', 'POST', - 'PUT', etc.) on the given URL. The URL must have unsafe characters escaped and - international domain names encoded. - - If the URL includes a "user:password" stanza, they will be used for Basic-style - authorization headers. (Authorization headers will not be included in a - redirected request.) For example: - - $http->request('GET', 'http://Aladdin:open sesame@example.com/'); - - If the "user:password" stanza contains reserved characters, they must - be percent-escaped: - - $http->request('GET', 'http://john%40example.com:password@example.com/'); - - A hashref of options may be appended to modify the request. - - Valid options are: - - =over 4 - - =item * - - C<headers> — A hashref containing headers to include with the request. If the value for a header is an array reference, the header will be output multiple times with each value in the array. These headers over-write any default headers. - - =item * - - C<content> — A scalar to include as the body of the request OR a code reference that will be called iteratively to produce the body of the request - - =item * - - C<trailer_callback> — A code reference that will be called if it exists to provide a hashref of trailing headers (only used with chunked transfer-encoding) - - =item * - - C<data_callback> — A code reference that will be called for each chunks of the response body received. - - =back - - The C<Host> header is generated from the URL in accordance with RFC 2616. It - is a fatal error to specify C<Host> in the C<headers> option. Other headers - may be ignored or overwritten if necessary for transport compliance. - - If the C<content> option is a code reference, it will be called iteratively - to provide the content body of the request. It should return the empty - string or undef when the iterator is exhausted. - - If the C<content> option is the empty string, no C<content-type> or - C<content-length> headers will be generated. - - If the C<data_callback> option is provided, it will be called iteratively until - the entire response body is received. The first argument will be a string - containing a chunk of the response body, the second argument will be the - in-progress response hash reference, as described below. (This allows - customizing the action of the callback based on the C<status> or C<headers> - received prior to the content body.) - - The C<request> method returns a hashref containing the response. The hashref - will have the following keys: - - =over 4 - - =item * - - C<success> — Boolean indicating whether the operation returned a 2XX status code - - =item * - - C<url> — URL that provided the response. This is the URL of the request unless there were redirections, in which case it is the last URL queried in a redirection chain - - =item * - - C<status> — The HTTP status code of the response - - =item * - - C<reason> — The response phrase returned by the server - - =item * - - C<content> — The body of the response. If the response does not have any content or if a data callback is provided to consume the response body, this will be the empty string - - =item * - - C<headers> — A hashref of header fields. All header field names will be normalized to be lower case. If a header is repeated, the value will be an arrayref; it will otherwise be a scalar string containing the value - - =back - - On an exception during the execution of the request, the C<status> field will - contain 599, and the C<content> field will contain the text of the exception. - - =head2 www_form_urlencode - - $params = $http->www_form_urlencode( $data ); - $response = $http->get("http://example.com/query?$params"); - - This method converts the key/value pairs from a data hash or array reference - into a C<x-www-form-urlencoded> string. The keys and values from the data - reference will be UTF-8 encoded and escaped per RFC 3986. If a value is an - array reference, the key will be repeated with each of the values of the array - reference. If data is provided as a hash reference, the key/value pairs in the - resulting string will be sorted by key and value for consistent ordering. - - =head2 can_ssl - - $ok = HTTP::Tiny->can_ssl; - ($ok, $why) = HTTP::Tiny->can_ssl; - ($ok, $why) = $http->can_ssl; - - Indicates if SSL support is available. When called as a class object, it - checks for the correct version of L<Net::SSLeay> and L<IO::Socket::SSL>. - When called as an object methods, if C<SSL_verify> is true or if C<SSL_verify_mode> - is set in C<SSL_options>, it checks that a CA file is available. - - In scalar context, returns a boolean indicating if SSL is available. - In list context, returns the boolean and a (possibly multi-line) string of - errors indicating why SSL isn't available. - - =for Pod::Coverage SSL_options - agent - cookie_jar - default_headers - http_proxy - https_proxy - keep_alive - local_address - max_redirect - max_size - no_proxy - proxy - timeout - verify_SSL - - =head1 SSL SUPPORT - - Direct C<https> connections are supported only if L<IO::Socket::SSL> 1.56 or - greater and L<Net::SSLeay> 1.49 or greater are installed. An exception will be - thrown if new enough versions of these modules are not installed or if the SSL - encryption fails. You can also use C<HTTP::Tiny::can_ssl()> utility function - that returns boolean to see if the required modules are installed. - - An C<https> connection may be made via an C<http> proxy that supports the CONNECT - command (i.e. RFC 2817). You may not proxy C<https> via a proxy that itself - requires C<https> to communicate. - - SSL provides two distinct capabilities: - - =over 4 - - =item * - - Encrypted communication channel - - =item * - - Verification of server identity - - =back - - B<By default, HTTP::Tiny does not verify server identity>. - - Server identity verification is controversial and potentially tricky because it - depends on a (usually paid) third-party Certificate Authority (CA) trust model - to validate a certificate as legitimate. This discriminates against servers - with self-signed certificates or certificates signed by free, community-driven - CA's such as L<CAcert.org|http://cacert.org>. - - By default, HTTP::Tiny does not make any assumptions about your trust model, - threat level or risk tolerance. It just aims to give you an encrypted channel - when you need one. - - Setting the C<verify_SSL> attribute to a true value will make HTTP::Tiny verify - that an SSL connection has a valid SSL certificate corresponding to the host - name of the connection and that the SSL certificate has been verified by a CA. - Assuming you trust the CA, this will protect against a L<man-in-the-middle - attack|http://en.wikipedia.org/wiki/Man-in-the-middle_attack>. If you are - concerned about security, you should enable this option. - - Certificate verification requires a file containing trusted CA certificates. - If the L<Mozilla::CA> module is installed, HTTP::Tiny will use the CA file - included with it as a source of trusted CA's. (This means you trust Mozilla, - the author of Mozilla::CA, the CPAN mirror where you got Mozilla::CA, the - toolchain used to install it, and your operating system security, right?) - - If that module is not available, then HTTP::Tiny will search several - system-specific default locations for a CA certificate file: - - =over 4 - - =item * - - /etc/ssl/certs/ca-certificates.crt - - =item * - - /etc/pki/tls/certs/ca-bundle.crt - - =item * - - /etc/ssl/ca-bundle.pem - - =back - - An exception will be raised if C<verify_SSL> is true and no CA certificate file - is available. - - If you desire complete control over SSL connections, the C<SSL_options> attribute - lets you provide a hash reference that will be passed through to - C<IO::Socket::SSL::start_SSL()>, overriding any options set by HTTP::Tiny. For - example, to provide your own trusted CA file: - - SSL_options => { - SSL_ca_file => $file_path, - } - - The C<SSL_options> attribute could also be used for such things as providing a - client certificate for authentication to a server or controlling the choice of - cipher used for the SSL connection. See L<IO::Socket::SSL> documentation for - details. - - =head1 PROXY SUPPORT - - HTTP::Tiny can proxy both C<http> and C<https> requests. Only Basic proxy - authorization is supported and it must be provided as part of the proxy URL: - C<http://user:pass@proxy.example.com/>. - - HTTP::Tiny supports the following proxy environment variables: - - =over 4 - - =item * - - http_proxy or HTTP_PROXY - - =item * - - https_proxy or HTTPS_PROXY - - =item * - - all_proxy or ALL_PROXY - - =back - - If the C<REQUEST_METHOD> environment variable is set, then this might be a CGI - process and C<HTTP_PROXY> would be set from the C<Proxy:> header, which is a - security risk. If C<REQUEST_METHOD> is set, C<HTTP_PROXY> (the upper case - variant only) is ignored. - - Tunnelling C<https> over an C<http> proxy using the CONNECT method is - supported. If your proxy uses C<https> itself, you can not tunnel C<https> - over it. - - Be warned that proxying an C<https> connection opens you to the risk of a - man-in-the-middle attack by the proxy server. - - The C<no_proxy> environment variable is supported in the format of a - comma-separated list of domain extensions proxy should not be used for. - - Proxy arguments passed to C<new> will override their corresponding - environment variables. - - =head1 LIMITATIONS - - HTTP::Tiny is I<conditionally compliant> with the - L<HTTP/1.1 specifications|http://www.w3.org/Protocols/>: - - =over 4 - - =item * - - "Message Syntax and Routing" [RFC7230] - - =item * - - "Semantics and Content" [RFC7231] - - =item * - - "Conditional Requests" [RFC7232] - - =item * - - "Range Requests" [RFC7233] - - =item * - - "Caching" [RFC7234] - - =item * - - "Authentication" [RFC7235] - - =back - - It attempts to meet all "MUST" requirements of the specification, but does not - implement all "SHOULD" requirements. (Note: it was developed against the - earlier RFC 2616 specification and may not yet meet the revised RFC 7230-7235 - spec.) - - Some particular limitations of note include: - - =over - - =item * - - HTTP::Tiny focuses on correct transport. Users are responsible for ensuring - that user-defined headers and content are compliant with the HTTP/1.1 - specification. - - =item * - - Users must ensure that URLs are properly escaped for unsafe characters and that - international domain names are properly encoded to ASCII. See L<URI::Escape>, - L<URI::_punycode> and L<Net::IDN::Encode>. - - =item * - - Redirection is very strict against the specification. Redirection is only - automatic for response codes 301, 302, 307 and 308 if the request method is - 'GET' or 'HEAD'. Response code 303 is always converted into a 'GET' - redirection, as mandated by the specification. There is no automatic support - for status 305 ("Use proxy") redirections. - - =item * - - There is no provision for delaying a request body using an C<Expect> header. - Unexpected C<1XX> responses are silently ignored as per the specification. - - =item * - - Only 'chunked' C<Transfer-Encoding> is supported. - - =item * - - There is no support for a Request-URI of '*' for the 'OPTIONS' request. - - =back - - Despite the limitations listed above, HTTP::Tiny is considered - feature-complete. New feature requests should be directed to - L<HTTP::Tiny::UA>. - - =head1 SEE ALSO - - =over 4 - - =item * - - L<HTTP::Tiny::UA> - Higher level UA features for HTTP::Tiny - - =item * - - L<HTTP::Thin> - HTTP::Tiny wrapper with L<HTTP::Request>/L<HTTP::Response> compatibility - - =item * - - L<HTTP::Tiny::Mech> - Wrap L<WWW::Mechanize> instance in HTTP::Tiny compatible interface - - =item * - - L<IO::Socket::IP> - Required for IPv6 support - - =item * - - L<IO::Socket::SSL> - Required for SSL support - - =item * - - L<LWP::UserAgent> - If HTTP::Tiny isn't enough for you, this is the "standard" way to do things - - =item * - - L<Mozilla::CA> - Required if you want to validate SSL certificates - - =item * - - L<Net::SSLeay> - Required for SSL support - - =back - - =for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan - - =head1 SUPPORT - - =head2 Bugs / Feature Requests - - Please report any bugs or feature requests through the issue tracker - at L<https://github.com/chansen/p5-http-tiny/issues>. - You will be notified automatically of any progress on your issue. - - =head2 Source Code - - This is open source software. The code repository is available for - public review and contribution under the terms of the license. - - L<https://github.com/chansen/p5-http-tiny> - - git clone https://github.com/chansen/p5-http-tiny.git - - =head1 AUTHORS - - =over 4 - - =item * - - Christian Hansen <chansen@cpan.org> - - =item * - - David Golden <dagolden@cpan.org> - - =back - - =head1 CONTRIBUTORS - - =for stopwords Alan Gardner Alessandro Ghedini Brad Gilbert Chris Nehren Weyl Claes Jakobsson Clinton Gormley Dean Pearce Edward Zborowski James Raspass Jeremy Mates Jess Robinson Lukas Eklund Martin J. Evans Martin-Louis Bright Mike Doherty Olaf Alders Olivier Mengué Petr Písař Sören Kornetzki Syohei YOSHIDA Tatsuhiko Miyagawa Tom Hukins Tony Cook - - =over 4 - - =item * - - Alan Gardner <gardner@pythian.com> - - =item * - - Alessandro Ghedini <al3xbio@gmail.com> - - =item * - - Brad Gilbert <bgills@cpan.org> - - =item * - - Chris Nehren <apeiron@cpan.org> - - =item * - - Chris Weyl <cweyl@alumni.drew.edu> - - =item * - - Claes Jakobsson <claes@surfar.nu> - - =item * - - Clinton Gormley <clint@traveljury.com> - - =item * - - Dean Pearce <pearce@pythian.com> - - =item * - - Edward Zborowski <ed@rubensteintech.com> - - =item * - - James Raspass <jraspass@gmail.com> - - =item * - - Jeremy Mates <jmates@cpan.org> - - =item * - - Jess Robinson <castaway@desert-island.me.uk> - - =item * - - Lukas Eklund <leklund@gmail.com> - - =item * - - Martin J. Evans <mjegh@ntlworld.com> - - =item * - - Martin-Louis Bright <mlbright@gmail.com> - - =item * - - Mike Doherty <doherty@cpan.org> - - =item * - - Olaf Alders <olaf@wundersolutions.com> - - =item * - - Olivier Mengué <dolmen@cpan.org> - - =item * - - Petr Písař <ppisar@redhat.com> - - =item * - - Sören Kornetzki <soeren.kornetzki@delti.com> - - =item * - - Syohei YOSHIDA <syohex@gmail.com> - - =item * - - Tatsuhiko Miyagawa <miyagawa@bulknews.net> - - =item * - - Tom Hukins <tom@eborcom.com> - - =item * - - Tony Cook <tony@develop-help.com> - - =back - - =head1 COPYRIGHT AND LICENSE - - This software is copyright (c) 2015 by Christian Hansen. - - This is free software; you can redistribute it and/or modify it under - the same terms as the Perl 5 programming language system itself. - - =cut -HTTP_TINY - -$fatpacked{"JSON/PP.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'JSON_PP'; - package JSON::PP; - - # JSON-2.0 - - use 5.005; - use strict; - use base qw(Exporter); - use overload (); - - use Carp (); - use B (); - #use Devel::Peek; - - $JSON::PP::VERSION = '2.27300'; - - @JSON::PP::EXPORT = qw(encode_json decode_json from_json to_json); - - # instead of hash-access, i tried index-access for speed. - # but this method is not faster than what i expected. so it will be changed. - - use constant P_ASCII => 0; - use constant P_LATIN1 => 1; - use constant P_UTF8 => 2; - use constant P_INDENT => 3; - use constant P_CANONICAL => 4; - use constant P_SPACE_BEFORE => 5; - use constant P_SPACE_AFTER => 6; - use constant P_ALLOW_NONREF => 7; - use constant P_SHRINK => 8; - use constant P_ALLOW_BLESSED => 9; - use constant P_CONVERT_BLESSED => 10; - use constant P_RELAXED => 11; - - use constant P_LOOSE => 12; - use constant P_ALLOW_BIGNUM => 13; - use constant P_ALLOW_BAREKEY => 14; - use constant P_ALLOW_SINGLEQUOTE => 15; - use constant P_ESCAPE_SLASH => 16; - use constant P_AS_NONBLESSED => 17; - - use constant P_ALLOW_UNKNOWN => 18; - - use constant OLD_PERL => $] < 5.008 ? 1 : 0; - - BEGIN { - my @xs_compati_bit_properties = qw( - latin1 ascii utf8 indent canonical space_before space_after allow_nonref shrink - allow_blessed convert_blessed relaxed allow_unknown - ); - my @pp_bit_properties = qw( - allow_singlequote allow_bignum loose - allow_barekey escape_slash as_nonblessed - ); - - # Perl version check, Unicode handling is enable? - # Helper module sets @JSON::PP::_properties. - if ($] < 5.008 ) { - my $helper = $] >= 5.006 ? 'JSON::PP::Compat5006' : 'JSON::PP::Compat5005'; - eval qq| require $helper |; - if ($@) { Carp::croak $@; } - } - - for my $name (@xs_compati_bit_properties, @pp_bit_properties) { - my $flag_name = 'P_' . uc($name); - - eval qq/ - sub $name { - my \$enable = defined \$_[1] ? \$_[1] : 1; - - if (\$enable) { - \$_[0]->{PROPS}->[$flag_name] = 1; - } - else { - \$_[0]->{PROPS}->[$flag_name] = 0; - } - - \$_[0]; - } - - sub get_$name { - \$_[0]->{PROPS}->[$flag_name] ? 1 : ''; - } - /; - } - - } - - - - # Functions - - my %encode_allow_method - = map {($_ => 1)} qw/utf8 pretty allow_nonref latin1 self_encode escape_slash - allow_blessed convert_blessed indent indent_length allow_bignum - as_nonblessed - /; - my %decode_allow_method - = map {($_ => 1)} qw/utf8 allow_nonref loose allow_singlequote allow_bignum - allow_barekey max_size relaxed/; - - - my $JSON; # cache - - sub encode_json ($) { # encode - ($JSON ||= __PACKAGE__->new->utf8)->encode(@_); - } - - - sub decode_json { # decode - ($JSON ||= __PACKAGE__->new->utf8)->decode(@_); - } - - # Obsoleted - - sub to_json($) { - Carp::croak ("JSON::PP::to_json has been renamed to encode_json."); - } - - - sub from_json($) { - Carp::croak ("JSON::PP::from_json has been renamed to decode_json."); - } - - - # Methods - - sub new { - my $class = shift; - my $self = { - max_depth => 512, - max_size => 0, - indent => 0, - FLAGS => 0, - fallback => sub { encode_error('Invalid value. JSON can only reference.') }, - indent_length => 3, - }; - - bless $self, $class; - } - - - sub encode { - return $_[0]->PP_encode_json($_[1]); - } - - - sub decode { - return $_[0]->PP_decode_json($_[1], 0x00000000); - } - - - sub decode_prefix { - return $_[0]->PP_decode_json($_[1], 0x00000001); - } - - - # accessor - - - # pretty printing - - sub pretty { - my ($self, $v) = @_; - my $enable = defined $v ? $v : 1; - - if ($enable) { # indent_length(3) for JSON::XS compatibility - $self->indent(1)->indent_length(3)->space_before(1)->space_after(1); - } - else { - $self->indent(0)->space_before(0)->space_after(0); - } - - $self; - } - - # etc - - sub max_depth { - my $max = defined $_[1] ? $_[1] : 0x80000000; - $_[0]->{max_depth} = $max; - $_[0]; - } - - - sub get_max_depth { $_[0]->{max_depth}; } - - - sub max_size { - my $max = defined $_[1] ? $_[1] : 0; - $_[0]->{max_size} = $max; - $_[0]; - } - - - sub get_max_size { $_[0]->{max_size}; } - - - sub filter_json_object { - $_[0]->{cb_object} = defined $_[1] ? $_[1] : 0; - $_[0]->{F_HOOK} = ($_[0]->{cb_object} or $_[0]->{cb_sk_object}) ? 1 : 0; - $_[0]; - } - - sub filter_json_single_key_object { - if (@_ > 1) { - $_[0]->{cb_sk_object}->{$_[1]} = $_[2]; - } - $_[0]->{F_HOOK} = ($_[0]->{cb_object} or $_[0]->{cb_sk_object}) ? 1 : 0; - $_[0]; - } - - sub indent_length { - if (!defined $_[1] or $_[1] > 15 or $_[1] < 0) { - Carp::carp "The acceptable range of indent_length() is 0 to 15."; - } - else { - $_[0]->{indent_length} = $_[1]; - } - $_[0]; - } - - sub get_indent_length { - $_[0]->{indent_length}; - } - - sub sort_by { - $_[0]->{sort_by} = defined $_[1] ? $_[1] : 1; - $_[0]; - } - - sub allow_bigint { - Carp::carp("allow_bigint() is obsoleted. use allow_bignum() insted."); - } - - ############################### - - ### - ### Perl => JSON - ### - - - { # Convert - - my $max_depth; - my $indent; - my $ascii; - my $latin1; - my $utf8; - my $space_before; - my $space_after; - my $canonical; - my $allow_blessed; - my $convert_blessed; - - my $indent_length; - my $escape_slash; - my $bignum; - my $as_nonblessed; - - my $depth; - my $indent_count; - my $keysort; - - - sub PP_encode_json { - my $self = shift; - my $obj = shift; - - $indent_count = 0; - $depth = 0; - - my $idx = $self->{PROPS}; - - ($ascii, $latin1, $utf8, $indent, $canonical, $space_before, $space_after, $allow_blessed, - $convert_blessed, $escape_slash, $bignum, $as_nonblessed) - = @{$idx}[P_ASCII .. P_SPACE_AFTER, P_ALLOW_BLESSED, P_CONVERT_BLESSED, - P_ESCAPE_SLASH, P_ALLOW_BIGNUM, P_AS_NONBLESSED]; - - ($max_depth, $indent_length) = @{$self}{qw/max_depth indent_length/}; - - $keysort = $canonical ? sub { $a cmp $b } : undef; - - if ($self->{sort_by}) { - $keysort = ref($self->{sort_by}) eq 'CODE' ? $self->{sort_by} - : $self->{sort_by} =~ /\D+/ ? $self->{sort_by} - : sub { $a cmp $b }; - } - - encode_error("hash- or arrayref expected (not a simple scalar, use allow_nonref to allow this)") - if(!ref $obj and !$idx->[ P_ALLOW_NONREF ]); - - my $str = $self->object_to_json($obj); - - $str .= "\n" if ( $indent ); # JSON::XS 2.26 compatible - - unless ($ascii or $latin1 or $utf8) { - utf8::upgrade($str); - } - - if ($idx->[ P_SHRINK ]) { - utf8::downgrade($str, 1); - } - - return $str; - } - - - sub object_to_json { - my ($self, $obj) = @_; - my $type = ref($obj); - - if($type eq 'HASH'){ - return $self->hash_to_json($obj); - } - elsif($type eq 'ARRAY'){ - return $self->array_to_json($obj); - } - elsif ($type) { # blessed object? - if (blessed($obj)) { - - return $self->value_to_json($obj) if ( $obj->isa('JSON::PP::Boolean') ); - - if ( $convert_blessed and $obj->can('TO_JSON') ) { - my $result = $obj->TO_JSON(); - if ( defined $result and ref( $result ) ) { - if ( refaddr( $obj ) eq refaddr( $result ) ) { - encode_error( sprintf( - "%s::TO_JSON method returned same object as was passed instead of a new one", - ref $obj - ) ); - } - } - - return $self->object_to_json( $result ); - } - - return "$obj" if ( $bignum and _is_bignum($obj) ); - return $self->blessed_to_json($obj) if ($allow_blessed and $as_nonblessed); # will be removed. - - encode_error( sprintf("encountered object '%s', but neither allow_blessed " - . "nor convert_blessed settings are enabled", $obj) - ) unless ($allow_blessed); - - return 'null'; - } - else { - return $self->value_to_json($obj); - } - } - else{ - return $self->value_to_json($obj); - } - } - - - sub hash_to_json { - my ($self, $obj) = @_; - my @res; - - encode_error("json text or perl structure exceeds maximum nesting level (max_depth set too low?)") - if (++$depth > $max_depth); - - my ($pre, $post) = $indent ? $self->_up_indent() : ('', ''); - my $del = ($space_before ? ' ' : '') . ':' . ($space_after ? ' ' : ''); - - for my $k ( _sort( $obj ) ) { - if ( OLD_PERL ) { utf8::decode($k) } # key for Perl 5.6 / be optimized - push @res, string_to_json( $self, $k ) - . $del - . ( $self->object_to_json( $obj->{$k} ) || $self->value_to_json( $obj->{$k} ) ); - } - - --$depth; - $self->_down_indent() if ($indent); - - return '{' . ( @res ? $pre : '' ) . ( @res ? join( ",$pre", @res ) . $post : '' ) . '}'; - } - - - sub array_to_json { - my ($self, $obj) = @_; - my @res; - - encode_error("json text or perl structure exceeds maximum nesting level (max_depth set too low?)") - if (++$depth > $max_depth); - - my ($pre, $post) = $indent ? $self->_up_indent() : ('', ''); - - for my $v (@$obj){ - push @res, $self->object_to_json($v) || $self->value_to_json($v); - } - - --$depth; - $self->_down_indent() if ($indent); - - return '[' . ( @res ? $pre : '' ) . ( @res ? join( ",$pre", @res ) . $post : '' ) . ']'; - } - - - sub value_to_json { - my ($self, $value) = @_; - - return 'null' if(!defined $value); - - my $b_obj = B::svref_2object(\$value); # for round trip problem - my $flags = $b_obj->FLAGS; - - return $value # as is - if $flags & ( B::SVp_IOK | B::SVp_NOK ) and !( $flags & B::SVp_POK ); # SvTYPE is IV or NV? - - my $type = ref($value); - - if(!$type){ - return string_to_json($self, $value); - } - elsif( blessed($value) and $value->isa('JSON::PP::Boolean') ){ - return $$value == 1 ? 'true' : 'false'; - } - elsif ($type) { - if ((overload::StrVal($value) =~ /=(\w+)/)[0]) { - return $self->value_to_json("$value"); - } - - if ($type eq 'SCALAR' and defined $$value) { - return $$value eq '1' ? 'true' - : $$value eq '0' ? 'false' - : $self->{PROPS}->[ P_ALLOW_UNKNOWN ] ? 'null' - : encode_error("cannot encode reference to scalar"); - } - - if ( $self->{PROPS}->[ P_ALLOW_UNKNOWN ] ) { - return 'null'; - } - else { - if ( $type eq 'SCALAR' or $type eq 'REF' ) { - encode_error("cannot encode reference to scalar"); - } - else { - encode_error("encountered $value, but JSON can only represent references to arrays or hashes"); - } - } - - } - else { - return $self->{fallback}->($value) - if ($self->{fallback} and ref($self->{fallback}) eq 'CODE'); - return 'null'; - } - - } - - - my %esc = ( - "\n" => '\n', - "\r" => '\r', - "\t" => '\t', - "\f" => '\f', - "\b" => '\b', - "\"" => '\"', - "\\" => '\\\\', - "\'" => '\\\'', - ); - - - sub string_to_json { - my ($self, $arg) = @_; - - $arg =~ s/([\x22\x5c\n\r\t\f\b])/$esc{$1}/g; - $arg =~ s/\//\\\//g if ($escape_slash); - $arg =~ s/([\x00-\x08\x0b\x0e-\x1f])/'\\u00' . unpack('H2', $1)/eg; - - if ($ascii) { - $arg = JSON_PP_encode_ascii($arg); - } - - if ($latin1) { - $arg = JSON_PP_encode_latin1($arg); - } - - if ($utf8) { - utf8::encode($arg); - } - - return '"' . $arg . '"'; - } - - - sub blessed_to_json { - my $reftype = reftype($_[1]) || ''; - if ($reftype eq 'HASH') { - return $_[0]->hash_to_json($_[1]); - } - elsif ($reftype eq 'ARRAY') { - return $_[0]->array_to_json($_[1]); - } - else { - return 'null'; - } - } - - - sub encode_error { - my $error = shift; - Carp::croak "$error"; - } - - - sub _sort { - defined $keysort ? (sort $keysort (keys %{$_[0]})) : keys %{$_[0]}; - } - - - sub _up_indent { - my $self = shift; - my $space = ' ' x $indent_length; - - my ($pre,$post) = ('',''); - - $post = "\n" . $space x $indent_count; - - $indent_count++; - - $pre = "\n" . $space x $indent_count; - - return ($pre,$post); - } - - - sub _down_indent { $indent_count--; } - - - sub PP_encode_box { - { - depth => $depth, - indent_count => $indent_count, - }; - } - - } # Convert - - - sub _encode_ascii { - join('', - map { - $_ <= 127 ? - chr($_) : - $_ <= 65535 ? - sprintf('\u%04x', $_) : sprintf('\u%x\u%x', _encode_surrogates($_)); - } unpack('U*', $_[0]) - ); - } - - - sub _encode_latin1 { - join('', - map { - $_ <= 255 ? - chr($_) : - $_ <= 65535 ? - sprintf('\u%04x', $_) : sprintf('\u%x\u%x', _encode_surrogates($_)); - } unpack('U*', $_[0]) - ); - } - - - sub _encode_surrogates { # from perlunicode - my $uni = $_[0] - 0x10000; - return ($uni / 0x400 + 0xD800, $uni % 0x400 + 0xDC00); - } - - - sub _is_bignum { - $_[0]->isa('Math::BigInt') or $_[0]->isa('Math::BigFloat'); - } - - - - # - # JSON => Perl - # - - my $max_intsize; - - BEGIN { - my $checkint = 1111; - for my $d (5..64) { - $checkint .= 1; - my $int = eval qq| $checkint |; - if ($int =~ /[eE]/) { - $max_intsize = $d - 1; - last; - } - } - } - - { # PARSE - - my %escapes = ( # by Jeremy Muhlich <jmuhlich [at] bitflood.org> - b => "\x8", - t => "\x9", - n => "\xA", - f => "\xC", - r => "\xD", - '\\' => '\\', - '"' => '"', - '/' => '/', - ); - - my $text; # json data - my $at; # offset - my $ch; # 1chracter - my $len; # text length (changed according to UTF8 or NON UTF8) - # INTERNAL - my $depth; # nest counter - my $encoding; # json text encoding - my $is_valid_utf8; # temp variable - my $utf8_len; # utf8 byte length - # FLAGS - my $utf8; # must be utf8 - my $max_depth; # max nest nubmer of objects and arrays - my $max_size; - my $relaxed; - my $cb_object; - my $cb_sk_object; - - my $F_HOOK; - - my $allow_bigint; # using Math::BigInt - my $singlequote; # loosely quoting - my $loose; # - my $allow_barekey; # bareKey - - # $opt flag - # 0x00000001 .... decode_prefix - # 0x10000000 .... incr_parse - - sub PP_decode_json { - my ($self, $opt); # $opt is an effective flag during this decode_json. - - ($self, $text, $opt) = @_; - - ($at, $ch, $depth) = (0, '', 0); - - if ( !defined $text or ref $text ) { - decode_error("malformed JSON string, neither array, object, number, string or atom"); - } - - my $idx = $self->{PROPS}; - - ($utf8, $relaxed, $loose, $allow_bigint, $allow_barekey, $singlequote) - = @{$idx}[P_UTF8, P_RELAXED, P_LOOSE .. P_ALLOW_SINGLEQUOTE]; - - if ( $utf8 ) { - utf8::downgrade( $text, 1 ) or Carp::croak("Wide character in subroutine entry"); - } - else { - utf8::upgrade( $text ); - utf8::encode( $text ); - } - - $len = length $text; - - ($max_depth, $max_size, $cb_object, $cb_sk_object, $F_HOOK) - = @{$self}{qw/max_depth max_size cb_object cb_sk_object F_HOOK/}; - - if ($max_size > 1) { - use bytes; - my $bytes = length $text; - decode_error( - sprintf("attempted decode of JSON text of %s bytes size, but max_size is set to %s" - , $bytes, $max_size), 1 - ) if ($bytes > $max_size); - } - - # Currently no effect - # should use regexp - my @octets = unpack('C4', $text); - $encoding = ( $octets[0] and $octets[1]) ? 'UTF-8' - : (!$octets[0] and $octets[1]) ? 'UTF-16BE' - : (!$octets[0] and !$octets[1]) ? 'UTF-32BE' - : ( $octets[2] ) ? 'UTF-16LE' - : (!$octets[2] ) ? 'UTF-32LE' - : 'unknown'; - - white(); # remove head white space - - my $valid_start = defined $ch; # Is there a first character for JSON structure? - - my $result = value(); - - return undef if ( !$result && ( $opt & 0x10000000 ) ); # for incr_parse - - decode_error("malformed JSON string, neither array, object, number, string or atom") unless $valid_start; - - if ( !$idx->[ P_ALLOW_NONREF ] and !ref $result ) { - decode_error( - 'JSON text must be an object or array (but found number, string, true, false or null,' - . ' use allow_nonref to allow this)', 1); - } - - Carp::croak('something wrong.') if $len < $at; # we won't arrive here. - - my $consumed = defined $ch ? $at - 1 : $at; # consumed JSON text length - - white(); # remove tail white space - - if ( $ch ) { - return ( $result, $consumed ) if ($opt & 0x00000001); # all right if decode_prefix - decode_error("garbage after JSON object"); - } - - ( $opt & 0x00000001 ) ? ( $result, $consumed ) : $result; - } - - - sub next_chr { - return $ch = undef if($at >= $len); - $ch = substr($text, $at++, 1); - } - - - sub value { - white(); - return if(!defined $ch); - return object() if($ch eq '{'); - return array() if($ch eq '['); - return string() if($ch eq '"' or ($singlequote and $ch eq "'")); - return number() if($ch =~ /[0-9]/ or $ch eq '-'); - return word(); - } - - sub string { - my ($i, $s, $t, $u); - my $utf16; - my $is_utf8; - - ($is_valid_utf8, $utf8_len) = ('', 0); - - $s = ''; # basically UTF8 flag on - - if($ch eq '"' or ($singlequote and $ch eq "'")){ - my $boundChar = $ch; - - OUTER: while( defined(next_chr()) ){ - - if($ch eq $boundChar){ - next_chr(); - - if ($utf16) { - decode_error("missing low surrogate character in surrogate pair"); - } - - utf8::decode($s) if($is_utf8); - - return $s; - } - elsif($ch eq '\\'){ - next_chr(); - if(exists $escapes{$ch}){ - $s .= $escapes{$ch}; - } - elsif($ch eq 'u'){ # UNICODE handling - my $u = ''; - - for(1..4){ - $ch = next_chr(); - last OUTER if($ch !~ /[0-9a-fA-F]/); - $u .= $ch; - } - - # U+D800 - U+DBFF - if ($u =~ /^[dD][89abAB][0-9a-fA-F]{2}/) { # UTF-16 high surrogate? - $utf16 = $u; - } - # U+DC00 - U+DFFF - elsif ($u =~ /^[dD][c-fC-F][0-9a-fA-F]{2}/) { # UTF-16 low surrogate? - unless (defined $utf16) { - decode_error("missing high surrogate character in surrogate pair"); - } - $is_utf8 = 1; - $s .= JSON_PP_decode_surrogates($utf16, $u) || next; - $utf16 = undef; - } - else { - if (defined $utf16) { - decode_error("surrogate pair expected"); - } - - if ( ( my $hex = hex( $u ) ) > 127 ) { - $is_utf8 = 1; - $s .= JSON_PP_decode_unicode($u) || next; - } - else { - $s .= chr $hex; - } - } - - } - else{ - unless ($loose) { - $at -= 2; - decode_error('illegal backslash escape sequence in string'); - } - $s .= $ch; - } - } - else{ - - if ( ord $ch > 127 ) { - unless( $ch = is_valid_utf8($ch) ) { - $at -= 1; - decode_error("malformed UTF-8 character in JSON string"); - } - else { - $at += $utf8_len - 1; - } - - $is_utf8 = 1; - } - - if (!$loose) { - if ($ch =~ /[\x00-\x1f\x22\x5c]/) { # '/' ok - $at--; - decode_error('invalid character encountered while parsing JSON string'); - } - } - - $s .= $ch; - } - } - } - - decode_error("unexpected end of string while parsing JSON string"); - } - - - sub white { - while( defined $ch ){ - if($ch le ' '){ - next_chr(); - } - elsif($ch eq '/'){ - next_chr(); - if(defined $ch and $ch eq '/'){ - 1 while(defined(next_chr()) and $ch ne "\n" and $ch ne "\r"); - } - elsif(defined $ch and $ch eq '*'){ - next_chr(); - while(1){ - if(defined $ch){ - if($ch eq '*'){ - if(defined(next_chr()) and $ch eq '/'){ - next_chr(); - last; - } - } - else{ - next_chr(); - } - } - else{ - decode_error("Unterminated comment"); - } - } - next; - } - else{ - $at--; - decode_error("malformed JSON string, neither array, object, number, string or atom"); - } - } - else{ - if ($relaxed and $ch eq '#') { # correctly? - pos($text) = $at; - $text =~ /\G([^\n]*(?:\r\n|\r|\n|$))/g; - $at = pos($text); - next_chr; - next; - } - - last; - } - } - } - - - sub array { - my $a = $_[0] || []; # you can use this code to use another array ref object. - - decode_error('json text or perl structure exceeds maximum nesting level (max_depth set too low?)') - if (++$depth > $max_depth); - - next_chr(); - white(); - - if(defined $ch and $ch eq ']'){ - --$depth; - next_chr(); - return $a; - } - else { - while(defined($ch)){ - push @$a, value(); - - white(); - - if (!defined $ch) { - last; - } - - if($ch eq ']'){ - --$depth; - next_chr(); - return $a; - } - - if($ch ne ','){ - last; - } - - next_chr(); - white(); - - if ($relaxed and $ch eq ']') { - --$depth; - next_chr(); - return $a; - } - - } - } - - decode_error(", or ] expected while parsing array"); - } - - - sub object { - my $o = $_[0] || {}; # you can use this code to use another hash ref object. - my $k; - - decode_error('json text or perl structure exceeds maximum nesting level (max_depth set too low?)') - if (++$depth > $max_depth); - next_chr(); - white(); - - if(defined $ch and $ch eq '}'){ - --$depth; - next_chr(); - if ($F_HOOK) { - return _json_object_hook($o); - } - return $o; - } - else { - while (defined $ch) { - $k = ($allow_barekey and $ch ne '"' and $ch ne "'") ? bareKey() : string(); - white(); - - if(!defined $ch or $ch ne ':'){ - $at--; - decode_error("':' expected"); - } - - next_chr(); - $o->{$k} = value(); - white(); - - last if (!defined $ch); - - if($ch eq '}'){ - --$depth; - next_chr(); - if ($F_HOOK) { - return _json_object_hook($o); - } - return $o; - } - - if($ch ne ','){ - last; - } - - next_chr(); - white(); - - if ($relaxed and $ch eq '}') { - --$depth; - next_chr(); - if ($F_HOOK) { - return _json_object_hook($o); - } - return $o; - } - - } - - } - - $at--; - decode_error(", or } expected while parsing object/hash"); - } - - - sub bareKey { # doesn't strictly follow Standard ECMA-262 3rd Edition - my $key; - while($ch =~ /[^\x00-\x23\x25-\x2F\x3A-\x40\x5B-\x5E\x60\x7B-\x7F]/){ - $key .= $ch; - next_chr(); - } - return $key; - } - - - sub word { - my $word = substr($text,$at-1,4); - - if($word eq 'true'){ - $at += 3; - next_chr; - return $JSON::PP::true; - } - elsif($word eq 'null'){ - $at += 3; - next_chr; - return undef; - } - elsif($word eq 'fals'){ - $at += 3; - if(substr($text,$at,1) eq 'e'){ - $at++; - next_chr; - return $JSON::PP::false; - } - } - - $at--; # for decode_error report - - decode_error("'null' expected") if ($word =~ /^n/); - decode_error("'true' expected") if ($word =~ /^t/); - decode_error("'false' expected") if ($word =~ /^f/); - decode_error("malformed JSON string, neither array, object, number, string or atom"); - } - - - sub number { - my $n = ''; - my $v; - - # According to RFC4627, hex or oct digts are invalid. - if($ch eq '0'){ - my $peek = substr($text,$at,1); - my $hex = $peek =~ /[xX]/; # 0 or 1 - - if($hex){ - decode_error("malformed number (leading zero must not be followed by another digit)"); - ($n) = ( substr($text, $at+1) =~ /^([0-9a-fA-F]+)/); - } - else{ # oct - ($n) = ( substr($text, $at) =~ /^([0-7]+)/); - if (defined $n and length $n > 1) { - decode_error("malformed number (leading zero must not be followed by another digit)"); - } - } - - if(defined $n and length($n)){ - if (!$hex and length($n) == 1) { - decode_error("malformed number (leading zero must not be followed by another digit)"); - } - $at += length($n) + $hex; - next_chr; - return $hex ? hex($n) : oct($n); - } - } - - if($ch eq '-'){ - $n = '-'; - next_chr; - if (!defined $ch or $ch !~ /\d/) { - decode_error("malformed number (no digits after initial minus)"); - } - } - - while(defined $ch and $ch =~ /\d/){ - $n .= $ch; - next_chr; - } - - if(defined $ch and $ch eq '.'){ - $n .= '.'; - - next_chr; - if (!defined $ch or $ch !~ /\d/) { - decode_error("malformed number (no digits after decimal point)"); - } - else { - $n .= $ch; - } - - while(defined(next_chr) and $ch =~ /\d/){ - $n .= $ch; - } - } - - if(defined $ch and ($ch eq 'e' or $ch eq 'E')){ - $n .= $ch; - next_chr; - - if(defined($ch) and ($ch eq '+' or $ch eq '-')){ - $n .= $ch; - next_chr; - if (!defined $ch or $ch =~ /\D/) { - decode_error("malformed number (no digits after exp sign)"); - } - $n .= $ch; - } - elsif(defined($ch) and $ch =~ /\d/){ - $n .= $ch; - } - else { - decode_error("malformed number (no digits after exp sign)"); - } - - while(defined(next_chr) and $ch =~ /\d/){ - $n .= $ch; - } - - } - - $v .= $n; - - if ($v !~ /[.eE]/ and length $v > $max_intsize) { - if ($allow_bigint) { # from Adam Sussman - require Math::BigInt; - return Math::BigInt->new($v); - } - else { - return "$v"; - } - } - elsif ($allow_bigint) { - require Math::BigFloat; - return Math::BigFloat->new($v); - } - - return 0+$v; - } - - - sub is_valid_utf8 { - - $utf8_len = $_[0] =~ /[\x00-\x7F]/ ? 1 - : $_[0] =~ /[\xC2-\xDF]/ ? 2 - : $_[0] =~ /[\xE0-\xEF]/ ? 3 - : $_[0] =~ /[\xF0-\xF4]/ ? 4 - : 0 - ; - - return unless $utf8_len; - - my $is_valid_utf8 = substr($text, $at - 1, $utf8_len); - - return ( $is_valid_utf8 =~ /^(?: - [\x00-\x7F] - |[\xC2-\xDF][\x80-\xBF] - |[\xE0][\xA0-\xBF][\x80-\xBF] - |[\xE1-\xEC][\x80-\xBF][\x80-\xBF] - |[\xED][\x80-\x9F][\x80-\xBF] - |[\xEE-\xEF][\x80-\xBF][\x80-\xBF] - |[\xF0][\x90-\xBF][\x80-\xBF][\x80-\xBF] - |[\xF1-\xF3][\x80-\xBF][\x80-\xBF][\x80-\xBF] - |[\xF4][\x80-\x8F][\x80-\xBF][\x80-\xBF] - )$/x ) ? $is_valid_utf8 : ''; - } - - - sub decode_error { - my $error = shift; - my $no_rep = shift; - my $str = defined $text ? substr($text, $at) : ''; - my $mess = ''; - my $type = $] >= 5.008 ? 'U*' - : $] < 5.006 ? 'C*' - : utf8::is_utf8( $str ) ? 'U*' # 5.6 - : 'C*' - ; - - for my $c ( unpack( $type, $str ) ) { # emulate pv_uni_display() ? - $mess .= $c == 0x07 ? '\a' - : $c == 0x09 ? '\t' - : $c == 0x0a ? '\n' - : $c == 0x0d ? '\r' - : $c == 0x0c ? '\f' - : $c < 0x20 ? sprintf('\x{%x}', $c) - : $c == 0x5c ? '\\\\' - : $c < 0x80 ? chr($c) - : sprintf('\x{%x}', $c) - ; - if ( length $mess >= 20 ) { - $mess .= '...'; - last; - } - } - - unless ( length $mess ) { - $mess = '(end of string)'; - } - - Carp::croak ( - $no_rep ? "$error" : "$error, at character offset $at (before \"$mess\")" - ); - - } - - - sub _json_object_hook { - my $o = $_[0]; - my @ks = keys %{$o}; - - if ( $cb_sk_object and @ks == 1 and exists $cb_sk_object->{ $ks[0] } and ref $cb_sk_object->{ $ks[0] } ) { - my @val = $cb_sk_object->{ $ks[0] }->( $o->{$ks[0]} ); - if (@val == 1) { - return $val[0]; - } - } - - my @val = $cb_object->($o) if ($cb_object); - if (@val == 0 or @val > 1) { - return $o; - } - else { - return $val[0]; - } - } - - - sub PP_decode_box { - { - text => $text, - at => $at, - ch => $ch, - len => $len, - depth => $depth, - encoding => $encoding, - is_valid_utf8 => $is_valid_utf8, - }; - } - - } # PARSE - - - sub _decode_surrogates { # from perlunicode - my $uni = 0x10000 + (hex($_[0]) - 0xD800) * 0x400 + (hex($_[1]) - 0xDC00); - my $un = pack('U*', $uni); - utf8::encode( $un ); - return $un; - } - - - sub _decode_unicode { - my $un = pack('U', hex shift); - utf8::encode( $un ); - return $un; - } - - # - # Setup for various Perl versions (the code from JSON::PP58) - # - - BEGIN { - - unless ( defined &utf8::is_utf8 ) { - require Encode; - *utf8::is_utf8 = *Encode::is_utf8; - } - - if ( $] >= 5.008 ) { - *JSON::PP::JSON_PP_encode_ascii = \&_encode_ascii; - *JSON::PP::JSON_PP_encode_latin1 = \&_encode_latin1; - *JSON::PP::JSON_PP_decode_surrogates = \&_decode_surrogates; - *JSON::PP::JSON_PP_decode_unicode = \&_decode_unicode; - } - - if ($] >= 5.008 and $] < 5.008003) { # join() in 5.8.0 - 5.8.2 is broken. - package JSON::PP; - require subs; - subs->import('join'); - eval q| - sub join { - return '' if (@_ < 2); - my $j = shift; - my $str = shift; - for (@_) { $str .= $j . $_; } - return $str; - } - |; - } - - - sub JSON::PP::incr_parse { - local $Carp::CarpLevel = 1; - ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_parse( @_ ); - } - - - sub JSON::PP::incr_skip { - ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_skip; - } - - - sub JSON::PP::incr_reset { - ( $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new )->incr_reset; - } - - eval q{ - sub JSON::PP::incr_text : lvalue { - $_[0]->{_incr_parser} ||= JSON::PP::IncrParser->new; - - if ( $_[0]->{_incr_parser}->{incr_parsing} ) { - Carp::croak("incr_text can not be called when the incremental parser already started parsing"); - } - $_[0]->{_incr_parser}->{incr_text}; - } - } if ( $] >= 5.006 ); - - } # Setup for various Perl versions (the code from JSON::PP58) - - - ############################### - # Utilities - # - - BEGIN { - eval 'require Scalar::Util'; - unless($@){ - *JSON::PP::blessed = \&Scalar::Util::blessed; - *JSON::PP::reftype = \&Scalar::Util::reftype; - *JSON::PP::refaddr = \&Scalar::Util::refaddr; - } - else{ # This code is from Sclar::Util. - # warn $@; - eval 'sub UNIVERSAL::a_sub_not_likely_to_be_here { ref($_[0]) }'; - *JSON::PP::blessed = sub { - local($@, $SIG{__DIE__}, $SIG{__WARN__}); - ref($_[0]) ? eval { $_[0]->a_sub_not_likely_to_be_here } : undef; - }; - my %tmap = qw( - B::NULL SCALAR - B::HV HASH - B::AV ARRAY - B::CV CODE - B::IO IO - B::GV GLOB - B::REGEXP REGEXP - ); - *JSON::PP::reftype = sub { - my $r = shift; - - return undef unless length(ref($r)); - - my $t = ref(B::svref_2object($r)); - - return - exists $tmap{$t} ? $tmap{$t} - : length(ref($$r)) ? 'REF' - : 'SCALAR'; - }; - *JSON::PP::refaddr = sub { - return undef unless length(ref($_[0])); - - my $addr; - if(defined(my $pkg = blessed($_[0]))) { - $addr .= bless $_[0], 'Scalar::Util::Fake'; - bless $_[0], $pkg; - } - else { - $addr .= $_[0] - } - - $addr =~ /0x(\w+)/; - local $^W; - #no warnings 'portable'; - hex($1); - } - } - } - - - # shamely copied and modified from JSON::XS code. - - $JSON::PP::true = do { bless \(my $dummy = 1), "JSON::PP::Boolean" }; - $JSON::PP::false = do { bless \(my $dummy = 0), "JSON::PP::Boolean" }; - - sub is_bool { defined $_[0] and UNIVERSAL::isa($_[0], "JSON::PP::Boolean"); } - - sub true { $JSON::PP::true } - sub false { $JSON::PP::false } - sub null { undef; } - - ############################### - - package JSON::PP::Boolean; - - use overload ( - "0+" => sub { ${$_[0]} }, - "++" => sub { $_[0] = ${$_[0]} + 1 }, - "--" => sub { $_[0] = ${$_[0]} - 1 }, - fallback => 1, - ); - - - ############################### - - package JSON::PP::IncrParser; - - use strict; - - use constant INCR_M_WS => 0; # initial whitespace skipping - use constant INCR_M_STR => 1; # inside string - use constant INCR_M_BS => 2; # inside backslash - use constant INCR_M_JSON => 3; # outside anything, count nesting - use constant INCR_M_C0 => 4; - use constant INCR_M_C1 => 5; - - $JSON::PP::IncrParser::VERSION = '1.01'; - - my $unpack_format = $] < 5.006 ? 'C*' : 'U*'; - - sub new { - my ( $class ) = @_; - - bless { - incr_nest => 0, - incr_text => undef, - incr_parsing => 0, - incr_p => 0, - }, $class; - } - - - sub incr_parse { - my ( $self, $coder, $text ) = @_; - - $self->{incr_text} = '' unless ( defined $self->{incr_text} ); - - if ( defined $text ) { - if ( utf8::is_utf8( $text ) and !utf8::is_utf8( $self->{incr_text} ) ) { - utf8::upgrade( $self->{incr_text} ) ; - utf8::decode( $self->{incr_text} ) ; - } - $self->{incr_text} .= $text; - } - - - my $max_size = $coder->get_max_size; - - if ( defined wantarray ) { - - $self->{incr_mode} = INCR_M_WS unless defined $self->{incr_mode}; - - if ( wantarray ) { - my @ret; - - $self->{incr_parsing} = 1; - - do { - push @ret, $self->_incr_parse( $coder, $self->{incr_text} ); - - unless ( !$self->{incr_nest} and $self->{incr_mode} == INCR_M_JSON ) { - $self->{incr_mode} = INCR_M_WS if $self->{incr_mode} != INCR_M_STR; - } - - } until ( length $self->{incr_text} >= $self->{incr_p} ); - - $self->{incr_parsing} = 0; - - return @ret; - } - else { # in scalar context - $self->{incr_parsing} = 1; - my $obj = $self->_incr_parse( $coder, $self->{incr_text} ); - $self->{incr_parsing} = 0 if defined $obj; # pointed by Martin J. Evans - return $obj ? $obj : undef; # $obj is an empty string, parsing was completed. - } - - } - - } - - - sub _incr_parse { - my ( $self, $coder, $text, $skip ) = @_; - my $p = $self->{incr_p}; - my $restore = $p; - - my @obj; - my $len = length $text; - - if ( $self->{incr_mode} == INCR_M_WS ) { - while ( $len > $p ) { - my $s = substr( $text, $p, 1 ); - $p++ and next if ( 0x20 >= unpack($unpack_format, $s) ); - $self->{incr_mode} = INCR_M_JSON; - last; - } - } - - while ( $len > $p ) { - my $s = substr( $text, $p++, 1 ); - - if ( $s eq '"' ) { - if (substr( $text, $p - 2, 1 ) eq '\\' ) { - next; - } - - if ( $self->{incr_mode} != INCR_M_STR ) { - $self->{incr_mode} = INCR_M_STR; - } - else { - $self->{incr_mode} = INCR_M_JSON; - unless ( $self->{incr_nest} ) { - last; - } - } - } - - if ( $self->{incr_mode} == INCR_M_JSON ) { - - if ( $s eq '[' or $s eq '{' ) { - if ( ++$self->{incr_nest} > $coder->get_max_depth ) { - Carp::croak('json text or perl structure exceeds maximum nesting level (max_depth set too low?)'); - } - } - elsif ( $s eq ']' or $s eq '}' ) { - last if ( --$self->{incr_nest} <= 0 ); - } - elsif ( $s eq '#' ) { - while ( $len > $p ) { - last if substr( $text, $p++, 1 ) eq "\n"; - } - } - - } - - } - - $self->{incr_p} = $p; - - return if ( $self->{incr_mode} == INCR_M_STR and not $self->{incr_nest} ); - return if ( $self->{incr_mode} == INCR_M_JSON and $self->{incr_nest} > 0 ); - - return '' unless ( length substr( $self->{incr_text}, 0, $p ) ); - - local $Carp::CarpLevel = 2; - - $self->{incr_p} = $restore; - $self->{incr_c} = $p; - - my ( $obj, $tail ) = $coder->PP_decode_json( substr( $self->{incr_text}, 0, $p ), 0x10000001 ); - - $self->{incr_text} = substr( $self->{incr_text}, $p ); - $self->{incr_p} = 0; - - return $obj || ''; - } - - - sub incr_text { - if ( $_[0]->{incr_parsing} ) { - Carp::croak("incr_text can not be called when the incremental parser already started parsing"); - } - $_[0]->{incr_text}; - } - - - sub incr_skip { - my $self = shift; - $self->{incr_text} = substr( $self->{incr_text}, $self->{incr_c} ); - $self->{incr_p} = 0; - } - - - sub incr_reset { - my $self = shift; - $self->{incr_text} = undef; - $self->{incr_p} = 0; - $self->{incr_mode} = 0; - $self->{incr_nest} = 0; - $self->{incr_parsing} = 0; - } - - ############################### - - - 1; - __END__ - =pod - - =head1 NAME - - JSON::PP - JSON::XS compatible pure-Perl module. - - =head1 SYNOPSIS - - use JSON::PP; - - # exported functions, they croak on error - # and expect/generate UTF-8 - - $utf8_encoded_json_text = encode_json $perl_hash_or_arrayref; - $perl_hash_or_arrayref = decode_json $utf8_encoded_json_text; - - # OO-interface - - $coder = JSON::PP->new->ascii->pretty->allow_nonref; - - $json_text = $json->encode( $perl_scalar ); - $perl_scalar = $json->decode( $json_text ); - - $pretty_printed = $json->pretty->encode( $perl_scalar ); # pretty-printing - - # Note that JSON version 2.0 and above will automatically use - # JSON::XS or JSON::PP, so you should be able to just: - - use JSON; - - - =head1 VERSION - - 2.27300 - - L<JSON::XS> 2.27 (~2.30) compatible. - - =head1 NOTE - - JSON::PP had been inculded in JSON distribution (CPAN module). - It was a perl core module in Perl 5.14. - - =head1 DESCRIPTION - - This module is L<JSON::XS> compatible pure Perl module. - (Perl 5.8 or later is recommended) - - JSON::XS is the fastest and most proper JSON module on CPAN. - It is written by Marc Lehmann in C, so must be compiled and - installed in the used environment. - - JSON::PP is a pure-Perl module and has compatibility to JSON::XS. - - - =head2 FEATURES - - =over - - =item * correct unicode handling - - This module knows how to handle Unicode (depending on Perl version). - - See to L<JSON::XS/A FEW NOTES ON UNICODE AND PERL> and L<UNICODE HANDLING ON PERLS>. - - - =item * round-trip integrity - - When you serialise a perl data structure using only data types supported - by JSON and Perl, the deserialised data structure is identical on the Perl - level. (e.g. the string "2.0" doesn't suddenly become "2" just because - it looks like a number). There I<are> minor exceptions to this, read the - MAPPING section below to learn about those. - - - =item * strict checking of JSON correctness - - There is no guessing, no generating of illegal JSON texts by default, - and only JSON is accepted as input by default (the latter is a security feature). - But when some options are set, loose chcking features are available. - - =back - - =head1 FUNCTIONAL INTERFACE - - Some documents are copied and modified from L<JSON::XS/FUNCTIONAL INTERFACE>. - - =head2 encode_json - - $json_text = encode_json $perl_scalar - - Converts the given Perl data structure to a UTF-8 encoded, binary string. - - This function call is functionally identical to: - - $json_text = JSON::PP->new->utf8->encode($perl_scalar) - - =head2 decode_json - - $perl_scalar = decode_json $json_text - - The opposite of C<encode_json>: expects an UTF-8 (binary) string and tries - to parse that as an UTF-8 encoded JSON text, returning the resulting - reference. - - This function call is functionally identical to: - - $perl_scalar = JSON::PP->new->utf8->decode($json_text) - - =head2 JSON::PP::is_bool - - $is_boolean = JSON::PP::is_bool($scalar) - - Returns true if the passed scalar represents either JSON::PP::true or - JSON::PP::false, two constants that act like C<1> and C<0> respectively - and are also used to represent JSON C<true> and C<false> in Perl strings. - - =head2 JSON::PP::true - - Returns JSON true value which is blessed object. - It C<isa> JSON::PP::Boolean object. - - =head2 JSON::PP::false - - Returns JSON false value which is blessed object. - It C<isa> JSON::PP::Boolean object. - - =head2 JSON::PP::null - - Returns C<undef>. - - See L<MAPPING>, below, for more information on how JSON values are mapped to - Perl. - - - =head1 HOW DO I DECODE A DATA FROM OUTER AND ENCODE TO OUTER - - This section supposes that your perl vresion is 5.8 or later. - - If you know a JSON text from an outer world - a network, a file content, and so on, - is encoded in UTF-8, you should use C<decode_json> or C<JSON> module object - with C<utf8> enable. And the decoded result will contain UNICODE characters. - - # from network - my $json = JSON::PP->new->utf8; - my $json_text = CGI->new->param( 'json_data' ); - my $perl_scalar = $json->decode( $json_text ); - - # from file content - local $/; - open( my $fh, '<', 'json.data' ); - $json_text = <$fh>; - $perl_scalar = decode_json( $json_text ); - - If an outer data is not encoded in UTF-8, firstly you should C<decode> it. - - use Encode; - local $/; - open( my $fh, '<', 'json.data' ); - my $encoding = 'cp932'; - my $unicode_json_text = decode( $encoding, <$fh> ); # UNICODE - - # or you can write the below code. - # - # open( my $fh, "<:encoding($encoding)", 'json.data' ); - # $unicode_json_text = <$fh>; - - In this case, C<$unicode_json_text> is of course UNICODE string. - So you B<cannot> use C<decode_json> nor C<JSON> module object with C<utf8> enable. - Instead of them, you use C<JSON> module object with C<utf8> disable. - - $perl_scalar = $json->utf8(0)->decode( $unicode_json_text ); - - Or C<encode 'utf8'> and C<decode_json>: - - $perl_scalar = decode_json( encode( 'utf8', $unicode_json_text ) ); - # this way is not efficient. - - And now, you want to convert your C<$perl_scalar> into JSON data and - send it to an outer world - a network or a file content, and so on. - - Your data usually contains UNICODE strings and you want the converted data to be encoded - in UTF-8, you should use C<encode_json> or C<JSON> module object with C<utf8> enable. - - print encode_json( $perl_scalar ); # to a network? file? or display? - # or - print $json->utf8->encode( $perl_scalar ); - - If C<$perl_scalar> does not contain UNICODE but C<$encoding>-encoded strings - for some reason, then its characters are regarded as B<latin1> for perl - (because it does not concern with your $encoding). - You B<cannot> use C<encode_json> nor C<JSON> module object with C<utf8> enable. - Instead of them, you use C<JSON> module object with C<utf8> disable. - Note that the resulted text is a UNICODE string but no problem to print it. - - # $perl_scalar contains $encoding encoded string values - $unicode_json_text = $json->utf8(0)->encode( $perl_scalar ); - # $unicode_json_text consists of characters less than 0x100 - print $unicode_json_text; - - Or C<decode $encoding> all string values and C<encode_json>: - - $perl_scalar->{ foo } = decode( $encoding, $perl_scalar->{ foo } ); - # ... do it to each string values, then encode_json - $json_text = encode_json( $perl_scalar ); - - This method is a proper way but probably not efficient. - - See to L<Encode>, L<perluniintro>. - - - =head1 METHODS - - Basically, check to L<JSON> or L<JSON::XS>. - - =head2 new - - $json = JSON::PP->new - - Rturns a new JSON::PP object that can be used to de/encode JSON - strings. - - All boolean flags described below are by default I<disabled>. - - The mutators for flags all return the JSON object again and thus calls can - be chained: - - my $json = JSON::PP->new->utf8->space_after->encode({a => [1,2]}) - => {"a": [1, 2]} - - =head2 ascii - - $json = $json->ascii([$enable]) - - $enabled = $json->get_ascii - - If $enable is true (or missing), then the encode method will not generate characters outside - the code range 0..127. Any Unicode characters outside that range will be escaped using either - a single \uXXXX or a double \uHHHH\uLLLLL escape sequence, as per RFC4627. - (See to L<JSON::XS/OBJECT-ORIENTED INTERFACE>). - - In Perl 5.005, there is no character having high value (more than 255). - See to L<UNICODE HANDLING ON PERLS>. - - If $enable is false, then the encode method will not escape Unicode characters unless - required by the JSON syntax or other flags. This results in a faster and more compact format. - - JSON::PP->new->ascii(1)->encode([chr 0x10401]) - => ["\ud801\udc01"] - - =head2 latin1 - - $json = $json->latin1([$enable]) - - $enabled = $json->get_latin1 - - If $enable is true (or missing), then the encode method will encode the resulting JSON - text as latin1 (or iso-8859-1), escaping any characters outside the code range 0..255. - - If $enable is false, then the encode method will not escape Unicode characters - unless required by the JSON syntax or other flags. - - JSON::XS->new->latin1->encode (["\x{89}\x{abc}"] - => ["\x{89}\\u0abc"] # (perl syntax, U+abc escaped, U+89 not) - - See to L<UNICODE HANDLING ON PERLS>. - - =head2 utf8 - - $json = $json->utf8([$enable]) - - $enabled = $json->get_utf8 - - If $enable is true (or missing), then the encode method will encode the JSON result - into UTF-8, as required by many protocols, while the decode method expects to be handled - an UTF-8-encoded string. Please note that UTF-8-encoded strings do not contain any - characters outside the range 0..255, they are thus useful for bytewise/binary I/O. - - (In Perl 5.005, any character outside the range 0..255 does not exist. - See to L<UNICODE HANDLING ON PERLS>.) - - In future versions, enabling this option might enable autodetection of the UTF-16 and UTF-32 - encoding families, as described in RFC4627. - - If $enable is false, then the encode method will return the JSON string as a (non-encoded) - Unicode string, while decode expects thus a Unicode string. Any decoding or encoding - (e.g. to UTF-8 or UTF-16) needs to be done yourself, e.g. using the Encode module. - - Example, output UTF-16BE-encoded JSON: - - use Encode; - $jsontext = encode "UTF-16BE", JSON::PP->new->encode ($object); - - Example, decode UTF-32LE-encoded JSON: - - use Encode; - $object = JSON::PP->new->decode (decode "UTF-32LE", $jsontext); - - - =head2 pretty - - $json = $json->pretty([$enable]) - - This enables (or disables) all of the C<indent>, C<space_before> and - C<space_after> flags in one call to generate the most readable - (or most compact) form possible. - - Equivalent to: - - $json->indent->space_before->space_after - - =head2 indent - - $json = $json->indent([$enable]) - - $enabled = $json->get_indent - - The default indent space length is three. - You can use C<indent_length> to change the length. - - =head2 space_before - - $json = $json->space_before([$enable]) - - $enabled = $json->get_space_before - - If C<$enable> is true (or missing), then the C<encode> method will add an extra - optional space before the C<:> separating keys from values in JSON objects. - - If C<$enable> is false, then the C<encode> method will not add any extra - space at those places. - - This setting has no effect when decoding JSON texts. - - Example, space_before enabled, space_after and indent disabled: - - {"key" :"value"} - - =head2 space_after - - $json = $json->space_after([$enable]) - - $enabled = $json->get_space_after - - If C<$enable> is true (or missing), then the C<encode> method will add an extra - optional space after the C<:> separating keys from values in JSON objects - and extra whitespace after the C<,> separating key-value pairs and array - members. - - If C<$enable> is false, then the C<encode> method will not add any extra - space at those places. - - This setting has no effect when decoding JSON texts. - - Example, space_before and indent disabled, space_after enabled: - - {"key": "value"} - - =head2 relaxed - - $json = $json->relaxed([$enable]) - - $enabled = $json->get_relaxed - - If C<$enable> is true (or missing), then C<decode> will accept some - extensions to normal JSON syntax (see below). C<encode> will not be - affected in anyway. I<Be aware that this option makes you accept invalid - JSON texts as if they were valid!>. I suggest only to use this option to - parse application-specific files written by humans (configuration files, - resource files etc.) - - If C<$enable> is false (the default), then C<decode> will only accept - valid JSON texts. - - Currently accepted extensions are: - - =over 4 - - =item * list items can have an end-comma - - JSON I<separates> array elements and key-value pairs with commas. This - can be annoying if you write JSON texts manually and want to be able to - quickly append elements, so this extension accepts comma at the end of - such items not just between them: - - [ - 1, - 2, <- this comma not normally allowed - ] - { - "k1": "v1", - "k2": "v2", <- this comma not normally allowed - } - - =item * shell-style '#'-comments - - Whenever JSON allows whitespace, shell-style comments are additionally - allowed. They are terminated by the first carriage-return or line-feed - character, after which more white-space and comments are allowed. - - [ - 1, # this comment not allowed in JSON - # neither this one... - ] - - =back - - =head2 canonical - - $json = $json->canonical([$enable]) - - $enabled = $json->get_canonical - - If C<$enable> is true (or missing), then the C<encode> method will output JSON objects - by sorting their keys. This is adding a comparatively high overhead. - - If C<$enable> is false, then the C<encode> method will output key-value - pairs in the order Perl stores them (which will likely change between runs - of the same script). - - This option is useful if you want the same data structure to be encoded as - the same JSON text (given the same overall settings). If it is disabled, - the same hash might be encoded differently even if contains the same data, - as key-value pairs have no inherent ordering in Perl. - - This setting has no effect when decoding JSON texts. - - If you want your own sorting routine, you can give a code referece - or a subroutine name to C<sort_by>. See to C<JSON::PP OWN METHODS>. - - =head2 allow_nonref - - $json = $json->allow_nonref([$enable]) - - $enabled = $json->get_allow_nonref - - If C<$enable> is true (or missing), then the C<encode> method can convert a - non-reference into its corresponding string, number or null JSON value, - which is an extension to RFC4627. Likewise, C<decode> will accept those JSON - values instead of croaking. - - If C<$enable> is false, then the C<encode> method will croak if it isn't - passed an arrayref or hashref, as JSON texts must either be an object - or array. Likewise, C<decode> will croak if given something that is not a - JSON object or array. - - JSON::PP->new->allow_nonref->encode ("Hello, World!") - => "Hello, World!" - - =head2 allow_unknown - - $json = $json->allow_unknown ([$enable]) - - $enabled = $json->get_allow_unknown - - If $enable is true (or missing), then "encode" will *not* throw an - exception when it encounters values it cannot represent in JSON (for - example, filehandles) but instead will encode a JSON "null" value. - Note that blessed objects are not included here and are handled - separately by c<allow_nonref>. - - If $enable is false (the default), then "encode" will throw an - exception when it encounters anything it cannot encode as JSON. - - This option does not affect "decode" in any way, and it is - recommended to leave it off unless you know your communications - partner. - - =head2 allow_blessed - - $json = $json->allow_blessed([$enable]) - - $enabled = $json->get_allow_blessed - - If C<$enable> is true (or missing), then the C<encode> method will not - barf when it encounters a blessed reference. Instead, the value of the - B<convert_blessed> option will decide whether C<null> (C<convert_blessed> - disabled or no C<TO_JSON> method found) or a representation of the - object (C<convert_blessed> enabled and C<TO_JSON> method found) is being - encoded. Has no effect on C<decode>. - - If C<$enable> is false (the default), then C<encode> will throw an - exception when it encounters a blessed object. - - =head2 convert_blessed - - $json = $json->convert_blessed([$enable]) - - $enabled = $json->get_convert_blessed - - If C<$enable> is true (or missing), then C<encode>, upon encountering a - blessed object, will check for the availability of the C<TO_JSON> method - on the object's class. If found, it will be called in scalar context - and the resulting scalar will be encoded instead of the object. If no - C<TO_JSON> method is found, the value of C<allow_blessed> will decide what - to do. - - The C<TO_JSON> method may safely call die if it wants. If C<TO_JSON> - returns other blessed objects, those will be handled in the same - way. C<TO_JSON> must take care of not causing an endless recursion cycle - (== crash) in this case. The name of C<TO_JSON> was chosen because other - methods called by the Perl core (== not by the user of the object) are - usually in upper case letters and to avoid collisions with the C<to_json> - function or method. - - This setting does not yet influence C<decode> in any way. - - If C<$enable> is false, then the C<allow_blessed> setting will decide what - to do when a blessed object is found. - - =head2 filter_json_object - - $json = $json->filter_json_object([$coderef]) - - When C<$coderef> is specified, it will be called from C<decode> each - time it decodes a JSON object. The only argument passed to the coderef - is a reference to the newly-created hash. If the code references returns - a single scalar (which need not be a reference), this value - (i.e. a copy of that scalar to avoid aliasing) is inserted into the - deserialised data structure. If it returns an empty list - (NOTE: I<not> C<undef>, which is a valid scalar), the original deserialised - hash will be inserted. This setting can slow down decoding considerably. - - When C<$coderef> is omitted or undefined, any existing callback will - be removed and C<decode> will not change the deserialised hash in any - way. - - Example, convert all JSON objects into the integer 5: - - my $js = JSON::PP->new->filter_json_object (sub { 5 }); - # returns [5] - $js->decode ('[{}]'); # the given subroutine takes a hash reference. - # throw an exception because allow_nonref is not enabled - # so a lone 5 is not allowed. - $js->decode ('{"a":1, "b":2}'); - - =head2 filter_json_single_key_object - - $json = $json->filter_json_single_key_object($key [=> $coderef]) - - Works remotely similar to C<filter_json_object>, but is only called for - JSON objects having a single key named C<$key>. - - This C<$coderef> is called before the one specified via - C<filter_json_object>, if any. It gets passed the single value in the JSON - object. If it returns a single value, it will be inserted into the data - structure. If it returns nothing (not even C<undef> but the empty list), - the callback from C<filter_json_object> will be called next, as if no - single-key callback were specified. - - If C<$coderef> is omitted or undefined, the corresponding callback will be - disabled. There can only ever be one callback for a given key. - - As this callback gets called less often then the C<filter_json_object> - one, decoding speed will not usually suffer as much. Therefore, single-key - objects make excellent targets to serialise Perl objects into, especially - as single-key JSON objects are as close to the type-tagged value concept - as JSON gets (it's basically an ID/VALUE tuple). Of course, JSON does not - support this in any way, so you need to make sure your data never looks - like a serialised Perl hash. - - Typical names for the single object key are C<__class_whatever__>, or - C<$__dollars_are_rarely_used__$> or C<}ugly_brace_placement>, or even - things like C<__class_md5sum(classname)__>, to reduce the risk of clashing - with real hashes. - - Example, decode JSON objects of the form C<< { "__widget__" => <id> } >> - into the corresponding C<< $WIDGET{<id>} >> object: - - # return whatever is in $WIDGET{5}: - JSON::PP - ->new - ->filter_json_single_key_object (__widget__ => sub { - $WIDGET{ $_[0] } - }) - ->decode ('{"__widget__": 5') - - # this can be used with a TO_JSON method in some "widget" class - # for serialisation to json: - sub WidgetBase::TO_JSON { - my ($self) = @_; - - unless ($self->{id}) { - $self->{id} = ..get..some..id..; - $WIDGET{$self->{id}} = $self; - } - - { __widget__ => $self->{id} } - } - - =head2 shrink - - $json = $json->shrink([$enable]) - - $enabled = $json->get_shrink - - In JSON::XS, this flag resizes strings generated by either - C<encode> or C<decode> to their minimum size possible. - It will also try to downgrade any strings to octet-form if possible. - - In JSON::PP, it is noop about resizing strings but tries - C<utf8::downgrade> to the returned string by C<encode>. - See to L<utf8>. - - See to L<JSON::XS/OBJECT-ORIENTED INTERFACE> - - =head2 max_depth - - $json = $json->max_depth([$maximum_nesting_depth]) - - $max_depth = $json->get_max_depth - - Sets the maximum nesting level (default C<512>) accepted while encoding - or decoding. If a higher nesting level is detected in JSON text or a Perl - data structure, then the encoder and decoder will stop and croak at that - point. - - Nesting level is defined by number of hash- or arrayrefs that the encoder - needs to traverse to reach a given point or the number of C<{> or C<[> - characters without their matching closing parenthesis crossed to reach a - given character in a string. - - If no argument is given, the highest possible setting will be used, which - is rarely useful. - - See L<JSON::XS/SSECURITY CONSIDERATIONS> for more info on why this is useful. - - When a large value (100 or more) was set and it de/encodes a deep nested object/text, - it may raise a warning 'Deep recursion on subroutin' at the perl runtime phase. - - =head2 max_size - - $json = $json->max_size([$maximum_string_size]) - - $max_size = $json->get_max_size - - Set the maximum length a JSON text may have (in bytes) where decoding is - being attempted. The default is C<0>, meaning no limit. When C<decode> - is called on a string that is longer then this many bytes, it will not - attempt to decode the string but throw an exception. This setting has no - effect on C<encode> (yet). - - If no argument is given, the limit check will be deactivated (same as when - C<0> is specified). - - See L<JSON::XS/SSECURITY CONSIDERATIONS> for more info on why this is useful. - - =head2 encode - - $json_text = $json->encode($perl_scalar) - - Converts the given Perl data structure (a simple scalar or a reference - to a hash or array) to its JSON representation. Simple scalars will be - converted into JSON string or number sequences, while references to arrays - become JSON arrays and references to hashes become JSON objects. Undefined - Perl values (e.g. C<undef>) become JSON C<null> values. - References to the integers C<0> and C<1> are converted into C<true> and C<false>. - - =head2 decode - - $perl_scalar = $json->decode($json_text) - - The opposite of C<encode>: expects a JSON text and tries to parse it, - returning the resulting simple scalar or reference. Croaks on error. - - JSON numbers and strings become simple Perl scalars. JSON arrays become - Perl arrayrefs and JSON objects become Perl hashrefs. C<true> becomes - C<1> (C<JSON::true>), C<false> becomes C<0> (C<JSON::false>) and - C<null> becomes C<undef>. - - =head2 decode_prefix - - ($perl_scalar, $characters) = $json->decode_prefix($json_text) - - This works like the C<decode> method, but instead of raising an exception - when there is trailing garbage after the first JSON object, it will - silently stop parsing there and return the number of characters consumed - so far. - - JSON->new->decode_prefix ("[1] the tail") - => ([], 3) - - =head1 INCREMENTAL PARSING - - Most of this section are copied and modified from L<JSON::XS/INCREMENTAL PARSING>. - - In some cases, there is the need for incremental parsing of JSON texts. - This module does allow you to parse a JSON stream incrementally. - It does so by accumulating text until it has a full JSON object, which - it then can decode. This process is similar to using C<decode_prefix> - to see if a full JSON object is available, but is much more efficient - (and can be implemented with a minimum of method calls). - - This module will only attempt to parse the JSON text once it is sure it - has enough text to get a decisive result, using a very simple but - truly incremental parser. This means that it sometimes won't stop as - early as the full parser, for example, it doesn't detect parenthese - mismatches. The only thing it guarantees is that it starts decoding as - soon as a syntactically valid JSON text has been seen. This means you need - to set resource limits (e.g. C<max_size>) to ensure the parser will stop - parsing in the presence if syntax errors. - - The following methods implement this incremental parser. - - =head2 incr_parse - - $json->incr_parse( [$string] ) # void context - - $obj_or_undef = $json->incr_parse( [$string] ) # scalar context - - @obj_or_empty = $json->incr_parse( [$string] ) # list context - - This is the central parsing function. It can both append new text and - extract objects from the stream accumulated so far (both of these - functions are optional). - - If C<$string> is given, then this string is appended to the already - existing JSON fragment stored in the C<$json> object. - - After that, if the function is called in void context, it will simply - return without doing anything further. This can be used to add more text - in as many chunks as you want. - - If the method is called in scalar context, then it will try to extract - exactly I<one> JSON object. If that is successful, it will return this - object, otherwise it will return C<undef>. If there is a parse error, - this method will croak just as C<decode> would do (one can then use - C<incr_skip> to skip the errornous part). This is the most common way of - using the method. - - And finally, in list context, it will try to extract as many objects - from the stream as it can find and return them, or the empty list - otherwise. For this to work, there must be no separators between the JSON - objects or arrays, instead they must be concatenated back-to-back. If - an error occurs, an exception will be raised as in the scalar context - case. Note that in this case, any previously-parsed JSON texts will be - lost. - - Example: Parse some JSON arrays/objects in a given string and return them. - - my @objs = JSON->new->incr_parse ("[5][7][1,2]"); - - =head2 incr_text - - $lvalue_string = $json->incr_text - - This method returns the currently stored JSON fragment as an lvalue, that - is, you can manipulate it. This I<only> works when a preceding call to - C<incr_parse> in I<scalar context> successfully returned an object. Under - all other circumstances you must not call this function (I mean it. - although in simple tests it might actually work, it I<will> fail under - real world conditions). As a special exception, you can also call this - method before having parsed anything. - - This function is useful in two cases: a) finding the trailing text after a - JSON object or b) parsing multiple JSON objects separated by non-JSON text - (such as commas). - - $json->incr_text =~ s/\s*,\s*//; - - In Perl 5.005, C<lvalue> attribute is not available. - You must write codes like the below: - - $string = $json->incr_text; - $string =~ s/\s*,\s*//; - $json->incr_text( $string ); - - =head2 incr_skip - - $json->incr_skip - - This will reset the state of the incremental parser and will remove the - parsed text from the input buffer. This is useful after C<incr_parse> - died, in which case the input buffer and incremental parser state is left - unchanged, to skip the text parsed so far and to reset the parse state. - - =head2 incr_reset - - $json->incr_reset - - This completely resets the incremental parser, that is, after this call, - it will be as if the parser had never parsed anything. - - This is useful if you want ot repeatedly parse JSON objects and want to - ignore any trailing data, which means you have to reset the parser after - each successful decode. - - See to L<JSON::XS/INCREMENTAL PARSING> for examples. - - - =head1 JSON::PP OWN METHODS - - =head2 allow_singlequote - - $json = $json->allow_singlequote([$enable]) - - If C<$enable> is true (or missing), then C<decode> will accept - JSON strings quoted by single quotations that are invalid JSON - format. - - $json->allow_singlequote->decode({"foo":'bar'}); - $json->allow_singlequote->decode({'foo':"bar"}); - $json->allow_singlequote->decode({'foo':'bar'}); - - As same as the C<relaxed> option, this option may be used to parse - application-specific files written by humans. - - - =head2 allow_barekey - - $json = $json->allow_barekey([$enable]) - - If C<$enable> is true (or missing), then C<decode> will accept - bare keys of JSON object that are invalid JSON format. - - As same as the C<relaxed> option, this option may be used to parse - application-specific files written by humans. - - $json->allow_barekey->decode('{foo:"bar"}'); - - =head2 allow_bignum - - $json = $json->allow_bignum([$enable]) - - If C<$enable> is true (or missing), then C<decode> will convert - the big integer Perl cannot handle as integer into a L<Math::BigInt> - object and convert a floating number (any) into a L<Math::BigFloat>. - - On the contary, C<encode> converts C<Math::BigInt> objects and C<Math::BigFloat> - objects into JSON numbers with C<allow_blessed> enable. - - $json->allow_nonref->allow_blessed->allow_bignum; - $bigfloat = $json->decode('2.000000000000000000000000001'); - print $json->encode($bigfloat); - # => 2.000000000000000000000000001 - - See to L<JSON::XS/MAPPING> aboout the normal conversion of JSON number. - - =head2 loose - - $json = $json->loose([$enable]) - - The unescaped [\x00-\x1f\x22\x2f\x5c] strings are invalid in JSON strings - and the module doesn't allow to C<decode> to these (except for \x2f). - If C<$enable> is true (or missing), then C<decode> will accept these - unescaped strings. - - $json->loose->decode(qq|["abc - def"]|); - - See L<JSON::XS/SSECURITY CONSIDERATIONS>. - - =head2 escape_slash - - $json = $json->escape_slash([$enable]) - - According to JSON Grammar, I<slash> (U+002F) is escaped. But default - JSON::PP (as same as JSON::XS) encodes strings without escaping slash. - - If C<$enable> is true (or missing), then C<encode> will escape slashes. - - =head2 indent_length - - $json = $json->indent_length($length) - - JSON::XS indent space length is 3 and cannot be changed. - JSON::PP set the indent space length with the given $length. - The default is 3. The acceptable range is 0 to 15. - - =head2 sort_by - - $json = $json->sort_by($function_name) - $json = $json->sort_by($subroutine_ref) - - If $function_name or $subroutine_ref are set, its sort routine are used - in encoding JSON objects. - - $js = $pc->sort_by(sub { $JSON::PP::a cmp $JSON::PP::b })->encode($obj); - # is($js, q|{"a":1,"b":2,"c":3,"d":4,"e":5,"f":6,"g":7,"h":8,"i":9}|); - - $js = $pc->sort_by('own_sort')->encode($obj); - # is($js, q|{"a":1,"b":2,"c":3,"d":4,"e":5,"f":6,"g":7,"h":8,"i":9}|); - - sub JSON::PP::own_sort { $JSON::PP::a cmp $JSON::PP::b } - - As the sorting routine runs in the JSON::PP scope, the given - subroutine name and the special variables C<$a>, C<$b> will begin - 'JSON::PP::'. - - If $integer is set, then the effect is same as C<canonical> on. - - =head1 INTERNAL - - For developers. - - =over - - =item PP_encode_box - - Returns - - { - depth => $depth, - indent_count => $indent_count, - } - - - =item PP_decode_box - - Returns - - { - text => $text, - at => $at, - ch => $ch, - len => $len, - depth => $depth, - encoding => $encoding, - is_valid_utf8 => $is_valid_utf8, - }; - - =back - - =head1 MAPPING - - This section is copied from JSON::XS and modified to C<JSON::PP>. - JSON::XS and JSON::PP mapping mechanisms are almost equivalent. - - See to L<JSON::XS/MAPPING>. - - =head2 JSON -> PERL - - =over 4 - - =item object - - A JSON object becomes a reference to a hash in Perl. No ordering of object - keys is preserved (JSON does not preserver object key ordering itself). - - =item array - - A JSON array becomes a reference to an array in Perl. - - =item string - - A JSON string becomes a string scalar in Perl - Unicode codepoints in JSON - are represented by the same codepoints in the Perl string, so no manual - decoding is necessary. - - =item number - - A JSON number becomes either an integer, numeric (floating point) or - string scalar in perl, depending on its range and any fractional parts. On - the Perl level, there is no difference between those as Perl handles all - the conversion details, but an integer may take slightly less memory and - might represent more values exactly than floating point numbers. - - If the number consists of digits only, C<JSON> will try to represent - it as an integer value. If that fails, it will try to represent it as - a numeric (floating point) value if that is possible without loss of - precision. Otherwise it will preserve the number as a string value (in - which case you lose roundtripping ability, as the JSON number will be - re-encoded toa JSON string). - - Numbers containing a fractional or exponential part will always be - represented as numeric (floating point) values, possibly at a loss of - precision (in which case you might lose perfect roundtripping ability, but - the JSON number will still be re-encoded as a JSON number). - - Note that precision is not accuracy - binary floating point values cannot - represent most decimal fractions exactly, and when converting from and to - floating point, C<JSON> only guarantees precision up to but not including - the leats significant bit. - - When C<allow_bignum> is enable, the big integers - and the numeric can be optionally converted into L<Math::BigInt> and - L<Math::BigFloat> objects. - - =item true, false - - These JSON atoms become C<JSON::PP::true> and C<JSON::PP::false>, - respectively. They are overloaded to act almost exactly like the numbers - C<1> and C<0>. You can check wether a scalar is a JSON boolean by using - the C<JSON::is_bool> function. - - print JSON::PP::true . "\n"; - => true - print JSON::PP::true + 1; - => 1 - - ok(JSON::true eq '1'); - ok(JSON::true == 1); - - C<JSON> will install these missing overloading features to the backend modules. - - - =item null - - A JSON null atom becomes C<undef> in Perl. - - C<JSON::PP::null> returns C<unddef>. - - =back - - - =head2 PERL -> JSON - - The mapping from Perl to JSON is slightly more difficult, as Perl is a - truly typeless language, so we can only guess which JSON type is meant by - a Perl value. - - =over 4 - - =item hash references - - Perl hash references become JSON objects. As there is no inherent ordering - in hash keys (or JSON objects), they will usually be encoded in a - pseudo-random order that can change between runs of the same program but - stays generally the same within a single run of a program. C<JSON> - optionally sort the hash keys (determined by the I<canonical> flag), so - the same datastructure will serialise to the same JSON text (given same - settings and version of JSON::XS), but this incurs a runtime overhead - and is only rarely useful, e.g. when you want to compare some JSON text - against another for equality. - - - =item array references - - Perl array references become JSON arrays. - - =item other references - - Other unblessed references are generally not allowed and will cause an - exception to be thrown, except for references to the integers C<0> and - C<1>, which get turned into C<false> and C<true> atoms in JSON. You can - also use C<JSON::false> and C<JSON::true> to improve readability. - - to_json [\0,JSON::PP::true] # yields [false,true] - - =item JSON::PP::true, JSON::PP::false, JSON::PP::null - - These special values become JSON true and JSON false values, - respectively. You can also use C<\1> and C<\0> directly if you want. - - JSON::PP::null returns C<undef>. - - =item blessed objects - - Blessed objects are not directly representable in JSON. See the - C<allow_blessed> and C<convert_blessed> methods on various options on - how to deal with this: basically, you can choose between throwing an - exception, encoding the reference as if it weren't blessed, or provide - your own serialiser method. - - See to L<convert_blessed>. - - =item simple scalars - - Simple Perl scalars (any scalar that is not a reference) are the most - difficult objects to encode: JSON::XS and JSON::PP will encode undefined scalars as - JSON C<null> values, scalars that have last been used in a string context - before encoding as JSON strings, and anything else as number value: - - # dump as number - encode_json [2] # yields [2] - encode_json [-3.0e17] # yields [-3e+17] - my $value = 5; encode_json [$value] # yields [5] - - # used as string, so dump as string - print $value; - encode_json [$value] # yields ["5"] - - # undef becomes null - encode_json [undef] # yields [null] - - You can force the type to be a string by stringifying it: - - my $x = 3.1; # some variable containing a number - "$x"; # stringified - $x .= ""; # another, more awkward way to stringify - print $x; # perl does it for you, too, quite often - - You can force the type to be a number by numifying it: - - my $x = "3"; # some variable containing a string - $x += 0; # numify it, ensuring it will be dumped as a number - $x *= 1; # same thing, the choise is yours. - - You can not currently force the type in other, less obscure, ways. - - Note that numerical precision has the same meaning as under Perl (so - binary to decimal conversion follows the same rules as in Perl, which - can differ to other languages). Also, your perl interpreter might expose - extensions to the floating point numbers of your platform, such as - infinities or NaN's - these cannot be represented in JSON, and it is an - error to pass those in. - - =item Big Number - - When C<allow_bignum> is enable, - C<encode> converts C<Math::BigInt> objects and C<Math::BigFloat> - objects into JSON numbers. - - - =back - - =head1 UNICODE HANDLING ON PERLS - - If you do not know about Unicode on Perl well, - please check L<JSON::XS/A FEW NOTES ON UNICODE AND PERL>. - - =head2 Perl 5.8 and later - - Perl can handle Unicode and the JSON::PP de/encode methods also work properly. - - $json->allow_nonref->encode(chr hex 3042); - $json->allow_nonref->encode(chr hex 12345); - - Reuturns C<"\u3042"> and C<"\ud808\udf45"> respectively. - - $json->allow_nonref->decode('"\u3042"'); - $json->allow_nonref->decode('"\ud808\udf45"'); - - Returns UTF-8 encoded strings with UTF8 flag, regarded as C<U+3042> and C<U+12345>. - - Note that the versions from Perl 5.8.0 to 5.8.2, Perl built-in C<join> was broken, - so JSON::PP wraps the C<join> with a subroutine. Thus JSON::PP works slow in the versions. - - - =head2 Perl 5.6 - - Perl can handle Unicode and the JSON::PP de/encode methods also work. - - =head2 Perl 5.005 - - Perl 5.005 is a byte sementics world -- all strings are sequences of bytes. - That means the unicode handling is not available. - - In encoding, - - $json->allow_nonref->encode(chr hex 3042); # hex 3042 is 12354. - $json->allow_nonref->encode(chr hex 12345); # hex 12345 is 74565. - - Returns C<B> and C<E>, as C<chr> takes a value more than 255, it treats - as C<$value % 256>, so the above codes are equivalent to : - - $json->allow_nonref->encode(chr 66); - $json->allow_nonref->encode(chr 69); - - In decoding, - - $json->decode('"\u00e3\u0081\u0082"'); - - The returned is a byte sequence C<0xE3 0x81 0x82> for UTF-8 encoded - japanese character (C<HIRAGANA LETTER A>). - And if it is represented in Unicode code point, C<U+3042>. - - Next, - - $json->decode('"\u3042"'); - - We ordinary expect the returned value is a Unicode character C<U+3042>. - But here is 5.005 world. This is C<0xE3 0x81 0x82>. - - $json->decode('"\ud808\udf45"'); - - This is not a character C<U+12345> but bytes - C<0xf0 0x92 0x8d 0x85>. - - - =head1 TODO - - =over - - =item speed - - =item memory saving - - =back - - - =head1 SEE ALSO - - Most of the document are copied and modified from JSON::XS doc. - - L<JSON::XS> - - RFC4627 (L<http://www.ietf.org/rfc/rfc4627.txt>) - - =head1 AUTHOR - - Makamaka Hannyaharamitu, E<lt>makamaka[at]cpan.orgE<gt> - - - =head1 COPYRIGHT AND LICENSE - - Copyright 2007-2014 by Makamaka Hannyaharamitu - - This library is free software; you can redistribute it and/or modify - it under the same terms as Perl itself. - - =cut -JSON_PP - -$fatpacked{"JSON/PP/Boolean.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'JSON_PP_BOOLEAN'; - =head1 NAME - - JSON::PP::Boolean - dummy module providing JSON::PP::Boolean - - =head1 SYNOPSIS - - # do not "use" yourself - - =head1 DESCRIPTION - - This module exists only to provide overload resolution for Storable and similar modules. See - L<JSON::PP> for more info about this class. - - =cut - - use JSON::PP (); - use strict; - - 1; - - =head1 AUTHOR - - This idea is from L<JSON::XS::Boolean> written by Marc Lehmann <schmorp[at]schmorp.de> - - =cut - -JSON_PP_BOOLEAN - -$fatpacked{"Module/CPANfile.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE'; - package Module::CPANfile; - use strict; - use warnings; - use Cwd; - use Carp (); - use Module::CPANfile::Environment; - use Module::CPANfile::Requirement; - - our $VERSION = '1.1000'; - - sub new { - my($class, $file) = @_; - bless {}, $class; - } - - sub load { - my($proto, $file) = @_; - - my $self = ref $proto ? $proto : $proto->new; - $self->parse($file || Cwd::abs_path('cpanfile')); - $self; - } - - sub save { - my($self, $path) = @_; - - open my $out, ">", $path or die "$path: $!"; - print {$out} $self->to_string; - } - - sub parse { - my($self, $file) = @_; - - my $code = do { - open my $fh, "<", $file or die "$file: $!"; - join '', <$fh>; - }; - - my $env = Module::CPANfile::Environment->new($file); - $env->parse($code) or die $@; - - $self->{_mirrors} = $env->mirrors; - $self->{_prereqs} = $env->prereqs; - } - - sub from_prereqs { - my($proto, $prereqs) = @_; - - my $self = $proto->new; - $self->{_prereqs} = Module::CPANfile::Prereqs->from_cpan_meta($prereqs); - - $self; - } - - sub mirrors { - my $self = shift; - $self->{_mirrors} || []; - } - - sub features { - my $self = shift; - map $self->feature($_), $self->{_prereqs}->identifiers; - } - - sub feature { - my($self, $identifier) = @_; - $self->{_prereqs}->feature($identifier); - } - - sub prereq { shift->prereqs } - - sub prereqs { - my $self = shift; - $self->{_prereqs}->as_cpan_meta; - } - - sub merged_requirements { - my $self = shift; - $self->{_prereqs}->merged_requirements; - } - - sub effective_prereqs { - my($self, $features) = @_; - $self->prereqs_with(@{$features || []}); - } - - sub prereqs_with { - my($self, @feature_identifiers) = @_; - - my $prereqs = $self->prereqs; - my @others = map { $self->feature($_)->prereqs } @feature_identifiers; - - $prereqs->with_merged_prereqs(\@others); - } - - sub prereq_specs { - my $self = shift; - $self->prereqs->as_string_hash; - } - - sub prereq_for_module { - my($self, $module) = @_; - $self->{_prereqs}->find($module); - } - - sub options_for_module { - my($self, $module) = @_; - my $prereq = $self->prereq_for_module($module) or return; - $prereq->requirement->options; - } - - sub merge_meta { - my($self, $file, $version) = @_; - - require CPAN::Meta; - - $version ||= $file =~ /\.yml$/ ? '1.4' : '2'; - - my $prereq = $self->prereqs; - - my $meta = CPAN::Meta->load_file($file); - my $prereqs_hash = $prereq->with_merged_prereqs($meta->effective_prereqs)->as_string_hash; - my $struct = { %{$meta->as_struct}, prereqs => $prereqs_hash }; - - CPAN::Meta->new($struct)->save($file, { version => $version }); - } - - sub _dump { - my $str = shift; - require Data::Dumper; - chomp(my $value = Data::Dumper->new([$str])->Terse(1)->Dump); - $value; - } - - sub to_string { - my($self, $include_empty) = @_; - - my $mirrors = $self->mirrors; - my $prereqs = $self->prereq_specs; - - my $code = ''; - $code .= $self->_dump_mirrors($mirrors); - $code .= $self->_dump_prereqs($prereqs, $include_empty); - - for my $feature ($self->features) { - $code .= sprintf "feature %s, %s => sub {\n", _dump($feature->{identifier}), _dump($feature->{description}); - $code .= $self->_dump_prereqs($feature->{spec}, $include_empty, 4); - $code .= "}\n\n"; - } - - $code =~ s/\n+$/\n/s; - $code; - } - - sub _dump_mirrors { - my($self, $mirrors) = @_; - - my $code = ""; - - for my $url (@$mirrors) { - $code .= "mirror '$url';\n"; - } - - $code =~ s/\n+$/\n/s; - $code; - } - - sub _dump_prereqs { - my($self, $prereqs, $include_empty, $base_indent) = @_; - - my $code = ''; - for my $phase (qw(runtime configure build test develop)) { - my $indent = $phase eq 'runtime' ? '' : ' '; - $indent = (' ' x ($base_indent || 0)) . $indent; - - my($phase_code, $requirements); - $phase_code .= "on $phase => sub {\n" unless $phase eq 'runtime'; - - for my $type (qw(requires recommends suggests conflicts)) { - for my $mod (sort keys %{$prereqs->{$phase}{$type}}) { - my $ver = $prereqs->{$phase}{$type}{$mod}; - $phase_code .= $ver eq '0' - ? "${indent}$type '$mod';\n" - : "${indent}$type '$mod', '$ver';\n"; - $requirements++; - } - } - - $phase_code .= "\n" unless $requirements; - $phase_code .= "};\n" unless $phase eq 'runtime'; - - $code .= $phase_code . "\n" if $requirements or $include_empty; - } - - $code =~ s/\n+$/\n/s; - $code; - } - - 1; - - __END__ - - =head1 NAME - - Module::CPANfile - Parse cpanfile - - =head1 SYNOPSIS - - use Module::CPANfile; - - my $file = Module::CPANfile->load("cpanfile"); - my $prereqs = $file->prereqs; # CPAN::Meta::Prereqs object - - my @features = $file->features; # CPAN::Meta::Feature objects - my $merged_prereqs = $file->prereqs_with(@identifiers); # CPAN::Meta::Prereqs - - $file->merge_meta('MYMETA.json'); - - =head1 DESCRIPTION - - Module::CPANfile is a tool to handle L<cpanfile> format to load application - specific dependencies, not just for CPAN distributions. - - =head1 METHODS - - =over 4 - - =item load - - $file = Module::CPANfile->load; - $file = Module::CPANfile->load('cpanfile'); - - Load and parse a cpanfile. By default it tries to load C<cpanfile> in - the current directory, unless you pass the path to its argument. - - =item from_prereqs - - $file = Module::CPANfile->from_prereqs({ - runtime => { requires => { DBI => '1.000' } }, - }); - - Creates a new Module::CPANfile object from prereqs hash you can get - via L<CPAN::Meta>'s C<prereqs>, or L<CPAN::Meta::Prereqs>' - C<as_string_hash>. - - # read MYMETA, then feed the prereqs to create Module::CPANfile - my $meta = CPAN::Meta->load_file('MYMETA.json'); - my $file = Module::CPANfile->from_prereqs($meta->prereqs); - - # load cpanfile, then recreate it with round-trip - my $file = Module::CPANfile->load('cpanfile'); - $file = Module::CPANfile->from_prereqs($file->prereq_specs); - # or $file->prereqs->as_string_hash - - =item prereqs - - Returns L<CPAN::Meta::Prereqs> object out of the parsed cpanfile. - - =item prereq_specs - - Returns a hash reference that should be passed to C<< CPAN::Meta::Prereqs->new >>. - - =item features - - Returns a list of features available in the cpanfile as L<CPAN::Meta::Feature>. - - =item prereqs_with(@identifiers), effective_prereqs(\@identifiers) - - Returns L<CPAN::Meta::Prereqs> object, with merged prereqs for - features identified with the C<@identifiers>. - - =item to_string($include_empty) - - $file->to_string; - $file->to_string(1); - - Returns a canonical string (code) representation for cpanfile. Useful - if you want to convert L<CPAN::Meta::Prereqs> to a new cpanfile. - - # read MYMETA's prereqs and print cpanfile representation of it - my $meta = CPAN::Meta->load_file('MYMETA.json'); - my $file = Module::CPANfile->from_prereqs($meta->prereqs); - print $file->to_string; - - By default, it omits the phase where there're no modules - registered. If you pass the argument of a true value, it will print - them as well. - - =item save - - $file->save('cpanfile'); - - Saves the currently loaded prereqs as a new C<cpanfile> by calling - C<to_string>. Beware B<this method will overwrite the existing - cpanfile without any warning or backup>. Taking a backup or giving - warnings to users is a caller's responsibility. - - # Read MYMETA.json and creates a new cpanfile - my $meta = CPAN::Meta->load_file('MYMETA.json'); - my $file = Module::CPANfile->from_prereqs($meta->prereqs); - $file->save('cpanfile'); - - =item merge_meta - - $file->merge_meta('META.yml'); - $file->merge_meta('MYMETA.json', '2.0'); - - Merge the effective prereqs with Meta specification loaded from the - given META file, using CPAN::Meta. You can specify the META spec - version in the second argument, which defaults to 1.4 in case the - given file is YAML, and 2 if it is JSON. - - =back - - =head1 AUTHOR - - Tatsuhiko Miyagawa - - =head1 SEE ALSO - - L<cpanfile>, L<CPAN::Meta>, L<CPAN::Meta::Spec> - - =cut -MODULE_CPANFILE - -$fatpacked{"Module/CPANfile/Environment.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_ENVIRONMENT'; - package Module::CPANfile::Environment; - use strict; - use warnings; - use Module::CPANfile::Prereqs; - use Carp (); - - my @bindings = qw( - on requires recommends suggests conflicts - feature - osname - mirror - configure_requires build_requires test_requires author_requires - ); - - my $file_id = 1; - - sub new { - my($class, $file) = @_; - bless { - file => $file, - phase => 'runtime', # default phase - feature => undef, - features => {}, - prereqs => Module::CPANfile::Prereqs->new, - mirrors => [], - }, $class; - } - - sub bind { - my $self = shift; - my $pkg = caller; - - for my $binding (@bindings) { - no strict 'refs'; - *{"$pkg\::$binding"} = sub { $self->$binding(@_) }; - } - } - - sub parse { - my($self, $code) = @_; - - my $err; - { - local $@; - $file_id++; - $self->_evaluate(<<EVAL); - package Module::CPANfile::Sandbox$file_id; - no warnings; - BEGIN { \$_environment->bind } - - # line 1 "$self->{file}" - $code; - EVAL - $err = $@; - } - - if ($err) { die "Parsing $self->{file} failed: $err" }; - - return 1; - } - - sub _evaluate { - my $_environment = $_[0]; - eval $_[1]; - } - - sub prereqs { $_[0]->{prereqs} } - - sub mirrors { $_[0]->{mirrors} } - - # DSL goes from here - - sub on { - my($self, $phase, $code) = @_; - local $self->{phase} = $phase; - $code->(); - } - - sub feature { - my($self, $identifier, $description, $code) = @_; - - # shortcut: feature identifier => sub { ... } - if (@_ == 3 && ref($description) eq 'CODE') { - $code = $description; - $description = $identifier; - } - - unless (ref $description eq '' && ref $code eq 'CODE') { - Carp::croak("Usage: feature 'identifier', 'Description' => sub { ... }"); - } - - local $self->{feature} = $identifier; - $self->prereqs->add_feature($identifier, $description); - - $code->(); - } - - sub osname { die "TODO" } - - sub mirror { - my($self, $url) = @_; - push @{$self->{mirrors}}, $url; - } - - sub requirement_for { - my($self, $module, @args) = @_; - - my $requirement = 0; - $requirement = shift @args if @args % 2; - - return Module::CPANfile::Requirement->new( - name => $module, - version => $requirement, - @args, - ); - } - - sub requires { - my $self = shift; - $self->add_prereq(requires => @_); - } - - sub recommends { - my $self = shift; - $self->add_prereq(recommends => @_); - } - - sub suggests { - my $self = shift; - $self->add_prereq(suggests => @_); - } - - sub conflicts { - my $self = shift; - $self->add_prereq(conflicts => @_); - } - - sub add_prereq { - my($self, $type, $module, @args) = @_; - - $self->prereqs->add_prereq( - feature => $self->{feature}, - phase => $self->{phase}, - type => $type, - module => $module, - requirement => $self->requirement_for($module, @args), - ); - } - - # Module::Install compatible shortcuts - - sub configure_requires { - my($self, @args) = @_; - $self->on(configure => sub { $self->requires(@args) }); - } - - sub build_requires { - my($self, @args) = @_; - $self->on(build => sub { $self->requires(@args) }); - } - - sub test_requires { - my($self, @args) = @_; - $self->on(test => sub { $self->requires(@args) }); - } - - sub author_requires { - my($self, @args) = @_; - $self->on(develop => sub { $self->requires(@args) }); - } - - 1; - -MODULE_CPANFILE_ENVIRONMENT - -$fatpacked{"Module/CPANfile/Prereq.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_PREREQ'; - package Module::CPANfile::Prereq; - use strict; - - sub new { - my($class, %options) = @_; - bless \%options, $class; - } - - sub feature { $_[0]->{feature} } - sub phase { $_[0]->{phase} } - sub type { $_[0]->{type} } - sub module { $_[0]->{module} } - sub requirement { $_[0]->{requirement} } - - sub match_feature { - my($self, $identifier) = @_; - no warnings 'uninitialized'; - $self->feature eq $identifier; - } - - 1; -MODULE_CPANFILE_PREREQ - -$fatpacked{"Module/CPANfile/Prereqs.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_PREREQS'; - package Module::CPANfile::Prereqs; - use strict; - use Carp (); - use CPAN::Meta::Feature; - use Module::CPANfile::Prereq; - - sub from_cpan_meta { - my($class, $prereqs) = @_; - - my $self = $class->new; - - for my $phase (keys %$prereqs) { - for my $type (keys %{ $prereqs->{$phase} }) { - while (my($module, $requirement) = each %{ $prereqs->{$phase}{$type} }) { - $self->add_prereq( - phase => $phase, - type => $type, - module => $module, - requirement => Module::CPANfile::Requirement->new(name => $module, version => $requirement), - ); - } - } - } - - $self; - } - - sub new { - my $class = shift; - bless { - prereqs => [], - features => {}, - }, $class; - } - - sub add_feature { - my($self, $identifier, $description) = @_; - $self->{features}{$identifier} = { description => $description }; - } - - sub add_prereq { - my($self, %args) = @_; - $self->add( Module::CPANfile::Prereq->new(%args) ); - } - - sub add { - my($self, $prereq) = @_; - push @{$self->{prereqs}}, $prereq; - } - - sub as_cpan_meta { - my $self = shift; - $self->{cpanmeta} ||= $self->build_cpan_meta; - } - - sub build_cpan_meta { - my($self, $identifier) = @_; - - my $prereq_spec = {}; - $self->prereq_each($identifier, sub { - my $prereq = shift; - $prereq_spec->{$prereq->phase}{$prereq->type}{$prereq->module} = $prereq->requirement->version; - }); - - CPAN::Meta::Prereqs->new($prereq_spec); - } - - sub prereq_each { - my($self, $identifier, $code) = @_; - - for my $prereq (@{$self->{prereqs}}) { - next unless $prereq->match_feature($identifier); - $code->($prereq); - } - } - - sub merged_requirements { - my $self = shift; - - my $reqs = CPAN::Meta::Requirements->new; - for my $prereq (@{$self->{prereqs}}) { - $reqs->add_string_requirement($prereq->module, $prereq->requirement->version); - } - - $reqs; - } - - sub find { - my($self, $module) = @_; - - for my $prereq (@{$self->{prereqs}}) { - return $prereq if $prereq->module eq $module; - } - - return; - } - - sub identifiers { - my $self = shift; - keys %{$self->{features}}; - } - - sub feature { - my($self, $identifier) = @_; - - my $data = $self->{features}{$identifier} - or Carp::croak("Unknown feature '$identifier'"); - - my $prereqs = $self->build_cpan_meta($identifier); - - CPAN::Meta::Feature->new($identifier, { - description => $data->{description}, - prereqs => $prereqs->as_string_hash, - }); - } - - 1; -MODULE_CPANFILE_PREREQS - -$fatpacked{"Module/CPANfile/Requirement.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_CPANFILE_REQUIREMENT'; - package Module::CPANfile::Requirement; - use strict; - - sub new { - my ($class, %args) = @_; - - $args{version} ||= 0; - - bless +{ - name => delete $args{name}, - version => delete $args{version}, - options => \%args, - }, $class; - } - - sub name { $_[0]->{name} } - sub version { $_[0]->{version} } - - sub options { $_[0]->{options} } - - sub has_options { - keys %{$_[0]->{options}} > 0; - } - - 1; -MODULE_CPANFILE_REQUIREMENT - -$fatpacked{"Module/Metadata.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'MODULE_METADATA'; - # -*- mode: cperl; tab-width: 8; indent-tabs-mode: nil; basic-offset: 2 -*- - # vim:ts=8:sw=2:et:sta:sts=2 - package Module::Metadata; # git description: v1.000026-12-g9b12bf1 - - # Adapted from Perl-licensed code originally distributed with - # Module-Build by Ken Williams - - # This module provides routines to gather information about - # perl modules (assuming this may be expanded in the distant - # parrot future to look at other types of modules). - - sub __clean_eval { eval $_[0] } - use strict; - use warnings; - - our $VERSION = '1.000027'; - - use Carp qw/croak/; - use File::Spec; - BEGIN { - # Try really hard to not depend ony any DynaLoaded module, such as IO::File or Fcntl - eval { - require Fcntl; Fcntl->import('SEEK_SET'); 1; - } or *SEEK_SET = sub { 0 } - } - use version 0.87; - BEGIN { - if ($INC{'Log/Contextual.pm'}) { - require "Log/Contextual/WarnLogger.pm"; # Hide from AutoPrereqs - Log::Contextual->import('log_info', - '-default_logger' => Log::Contextual::WarnLogger->new({ env_prefix => 'MODULE_METADATA', }), - ); - } else { - *log_info = sub (&) { warn $_[0]->() }; - } - } - use File::Find qw(find); - - my $V_NUM_REGEXP = qr{v?[0-9._]+}; # crudely, a v-string or decimal - - my $PKG_FIRST_WORD_REGEXP = qr{ # the FIRST word in a package name - [a-zA-Z_] # the first word CANNOT start with a digit - (?: - [\w']? # can contain letters, digits, _, or ticks - \w # But, NO multi-ticks or trailing ticks - )* - }x; - - my $PKG_ADDL_WORD_REGEXP = qr{ # the 2nd+ word in a package name - \w # the 2nd+ word CAN start with digits - (?: - [\w']? # and can contain letters or ticks - \w # But, NO multi-ticks or trailing ticks - )* - }x; - - my $PKG_NAME_REGEXP = qr{ # match a package name - (?: :: )? # a pkg name can start with arisdottle - $PKG_FIRST_WORD_REGEXP # a package word - (?: - (?: :: )+ ### arisdottle (allow one or many times) - $PKG_ADDL_WORD_REGEXP ### a package word - )* # ^ zero, one or many times - (?: - :: # allow trailing arisdottle - )? - }x; - - my $PKG_REGEXP = qr{ # match a package declaration - ^[\s\{;]* # intro chars on a line - package # the word 'package' - \s+ # whitespace - ($PKG_NAME_REGEXP) # a package name - \s* # optional whitespace - ($V_NUM_REGEXP)? # optional version number - \s* # optional whitesapce - [;\{] # semicolon line terminator or block start (since 5.16) - }x; - - my $VARNAME_REGEXP = qr{ # match fully-qualified VERSION name - ([\$*]) # sigil - $ or * - ( - ( # optional leading package name - (?:::|\')? # possibly starting like just :: (a la $::VERSION) - (?:\w+(?:::|\'))* # Foo::Bar:: ... - )? - VERSION - )\b - }x; - - my $VERS_REGEXP = qr{ # match a VERSION definition - (?: - \(\s*$VARNAME_REGEXP\s*\) # with parens - | - $VARNAME_REGEXP # without parens - ) - \s* - =[^=~>] # = but not ==, nor =~, nor => - }x; - - sub new_from_file { - my $class = shift; - my $filename = File::Spec->rel2abs( shift ); - - return undef unless defined( $filename ) && -f $filename; - return $class->_init(undef, $filename, @_); - } - - sub new_from_handle { - my $class = shift; - my $handle = shift; - my $filename = shift; - return undef unless defined($handle) && defined($filename); - $filename = File::Spec->rel2abs( $filename ); - - return $class->_init(undef, $filename, @_, handle => $handle); - - } - - - sub new_from_module { - my $class = shift; - my $module = shift; - my %props = @_; - - $props{inc} ||= \@INC; - my $filename = $class->find_module_by_name( $module, $props{inc} ); - return undef unless defined( $filename ) && -f $filename; - return $class->_init($module, $filename, %props); - } - - { - - my $compare_versions = sub { - my ($v1, $op, $v2) = @_; - $v1 = version->new($v1) - unless UNIVERSAL::isa($v1,'version'); - - my $eval_str = "\$v1 $op \$v2"; - my $result = eval $eval_str; - log_info { "error comparing versions: '$eval_str' $@" } if $@; - - return $result; - }; - - my $normalize_version = sub { - my ($version) = @_; - if ( $version =~ /[=<>!,]/ ) { # logic, not just version - # take as is without modification - } - elsif ( ref $version eq 'version' ) { # version objects - $version = $version->is_qv ? $version->normal : $version->stringify; - } - elsif ( $version =~ /^[^v][^.]*\.[^.]+\./ ) { # no leading v, multiple dots - # normalize string tuples without "v": "1.2.3" -> "v1.2.3" - $version = "v$version"; - } - else { - # leave alone - } - return $version; - }; - - # separate out some of the conflict resolution logic - - my $resolve_module_versions = sub { - my $packages = shift; - - my( $file, $version ); - my $err = ''; - foreach my $p ( @$packages ) { - if ( defined( $p->{version} ) ) { - if ( defined( $version ) ) { - if ( $compare_versions->( $version, '!=', $p->{version} ) ) { - $err .= " $p->{file} ($p->{version})\n"; - } else { - # same version declared multiple times, ignore - } - } else { - $file = $p->{file}; - $version = $p->{version}; - } - } - $file ||= $p->{file} if defined( $p->{file} ); - } - - if ( $err ) { - $err = " $file ($version)\n" . $err; - } - - my %result = ( - file => $file, - version => $version, - err => $err - ); - - return \%result; - }; - - sub provides { - my $class = shift; - - croak "provides() requires key/value pairs \n" if @_ % 2; - my %args = @_; - - croak "provides() takes only one of 'dir' or 'files'\n" - if $args{dir} && $args{files}; - - croak "provides() requires a 'version' argument" - unless defined $args{version}; - - croak "provides() does not support version '$args{version}' metadata" - unless grep { $args{version} eq $_ } qw/1.4 2/; - - $args{prefix} = 'lib' unless defined $args{prefix}; - - my $p; - if ( $args{dir} ) { - $p = $class->package_versions_from_directory($args{dir}); - } - else { - croak "provides() requires 'files' to be an array reference\n" - unless ref $args{files} eq 'ARRAY'; - $p = $class->package_versions_from_directory($args{files}); - } - - # Now, fix up files with prefix - if ( length $args{prefix} ) { # check in case disabled with q{} - $args{prefix} =~ s{/$}{}; - for my $v ( values %$p ) { - $v->{file} = "$args{prefix}/$v->{file}"; - } - } - - return $p - } - - sub package_versions_from_directory { - my ( $class, $dir, $files ) = @_; - - my @files; - - if ( $files ) { - @files = @$files; - } else { - find( { - wanted => sub { - push @files, $_ if -f $_ && /\.pm$/; - }, - no_chdir => 1, - }, $dir ); - } - - # First, we enumerate all packages & versions, - # separating into primary & alternative candidates - my( %prime, %alt ); - foreach my $file (@files) { - my $mapped_filename = File::Spec::Unix->abs2rel( $file, $dir ); - my @path = split( /\//, $mapped_filename ); - (my $prime_package = join( '::', @path )) =~ s/\.pm$//; - - my $pm_info = $class->new_from_file( $file ); - - foreach my $package ( $pm_info->packages_inside ) { - next if $package eq 'main'; # main can appear numerous times, ignore - next if $package eq 'DB'; # special debugging package, ignore - next if grep /^_/, split( /::/, $package ); # private package, ignore - - my $version = $pm_info->version( $package ); - - $prime_package = $package if lc($prime_package) eq lc($package); - if ( $package eq $prime_package ) { - if ( exists( $prime{$package} ) ) { - croak "Unexpected conflict in '$package'; multiple versions found.\n"; - } else { - $mapped_filename = "$package.pm" if lc("$package.pm") eq lc($mapped_filename); - $prime{$package}{file} = $mapped_filename; - $prime{$package}{version} = $version if defined( $version ); - } - } else { - push( @{$alt{$package}}, { - file => $mapped_filename, - version => $version, - } ); - } - } - } - - # Then we iterate over all the packages found above, identifying conflicts - # and selecting the "best" candidate for recording the file & version - # for each package. - foreach my $package ( keys( %alt ) ) { - my $result = $resolve_module_versions->( $alt{$package} ); - - if ( exists( $prime{$package} ) ) { # primary package selected - - if ( $result->{err} ) { - # Use the selected primary package, but there are conflicting - # errors among multiple alternative packages that need to be - # reported - log_info { - "Found conflicting versions for package '$package'\n" . - " $prime{$package}{file} ($prime{$package}{version})\n" . - $result->{err} - }; - - } elsif ( defined( $result->{version} ) ) { - # There is a primary package selected, and exactly one - # alternative package - - if ( exists( $prime{$package}{version} ) && - defined( $prime{$package}{version} ) ) { - # Unless the version of the primary package agrees with the - # version of the alternative package, report a conflict - if ( $compare_versions->( - $prime{$package}{version}, '!=', $result->{version} - ) - ) { - - log_info { - "Found conflicting versions for package '$package'\n" . - " $prime{$package}{file} ($prime{$package}{version})\n" . - " $result->{file} ($result->{version})\n" - }; - } - - } else { - # The prime package selected has no version so, we choose to - # use any alternative package that does have a version - $prime{$package}{file} = $result->{file}; - $prime{$package}{version} = $result->{version}; - } - - } else { - # no alt package found with a version, but we have a prime - # package so we use it whether it has a version or not - } - - } else { # No primary package was selected, use the best alternative - - if ( $result->{err} ) { - log_info { - "Found conflicting versions for package '$package'\n" . - $result->{err} - }; - } - - # Despite possible conflicting versions, we choose to record - # something rather than nothing - $prime{$package}{file} = $result->{file}; - $prime{$package}{version} = $result->{version} - if defined( $result->{version} ); - } - } - - # Normalize versions. Can't use exists() here because of bug in YAML::Node. - # XXX "bug in YAML::Node" comment seems irrelevant -- dagolden, 2009-05-18 - for (grep defined $_->{version}, values %prime) { - $_->{version} = $normalize_version->( $_->{version} ); - } - - return \%prime; - } - } - - - sub _init { - my $class = shift; - my $module = shift; - my $filename = shift; - my %props = @_; - - my $handle = delete $props{handle}; - my( %valid_props, @valid_props ); - @valid_props = qw( collect_pod inc ); - @valid_props{@valid_props} = delete( @props{@valid_props} ); - warn "Unknown properties: @{[keys %props]}\n" if scalar( %props ); - - my %data = ( - module => $module, - filename => $filename, - version => undef, - packages => [], - versions => {}, - pod => {}, - pod_headings => [], - collect_pod => 0, - - %valid_props, - ); - - my $self = bless(\%data, $class); - - if ( not $handle ) { - my $filename = $self->{filename}; - open $handle, '<', $filename - or croak( "Can't open '$filename': $!" ); - - $self->_handle_bom($handle, $filename); - } - $self->_parse_fh($handle); - - unless($self->{module} and length($self->{module})) { - my ($v, $d, $f) = File::Spec->splitpath($self->{filename}); - if($f =~ /\.pm$/) { - $f =~ s/\..+$//; - my @candidates = grep /$f$/, @{$self->{packages}}; - $self->{module} = shift(@candidates); # punt - } - else { - if(grep /main/, @{$self->{packages}}) { - $self->{module} = 'main'; - } - else { - $self->{module} = $self->{packages}[0] || ''; - } - } - } - - $self->{version} = $self->{versions}{$self->{module}} - if defined( $self->{module} ); - - return $self; - } - - # class method - sub _do_find_module { - my $class = shift; - my $module = shift || croak 'find_module_by_name() requires a package name'; - my $dirs = shift || \@INC; - - my $file = File::Spec->catfile(split( /::/, $module)); - foreach my $dir ( @$dirs ) { - my $testfile = File::Spec->catfile($dir, $file); - return [ File::Spec->rel2abs( $testfile ), $dir ] - if -e $testfile and !-d _; # For stuff like ExtUtils::xsubpp - $testfile .= '.pm'; - return [ File::Spec->rel2abs( $testfile ), $dir ] - if -e $testfile; - } - return; - } - - # class method - sub find_module_by_name { - my $found = shift()->_do_find_module(@_) or return; - return $found->[0]; - } - - # class method - sub find_module_dir_by_name { - my $found = shift()->_do_find_module(@_) or return; - return $found->[1]; - } - - - # given a line of perl code, attempt to parse it if it looks like a - # $VERSION assignment, returning sigil, full name, & package name - sub _parse_version_expression { - my $self = shift; - my $line = shift; - - my( $sigil, $variable_name, $package); - if ( $line =~ /$VERS_REGEXP/o ) { - ( $sigil, $variable_name, $package) = $2 ? ( $1, $2, $3 ) : ( $4, $5, $6 ); - if ( $package ) { - $package = ($package eq '::') ? 'main' : $package; - $package =~ s/::$//; - } - } - - return ( $sigil, $variable_name, $package ); - } - - # Look for a UTF-8/UTF-16BE/UTF-16LE BOM at the beginning of the stream. - # If there's one, then skip it and set the :encoding layer appropriately. - sub _handle_bom { - my ($self, $fh, $filename) = @_; - - my $pos = tell $fh; - return unless defined $pos; - - my $buf = ' ' x 2; - my $count = read $fh, $buf, length $buf; - return unless defined $count and $count >= 2; - - my $encoding; - if ( $buf eq "\x{FE}\x{FF}" ) { - $encoding = 'UTF-16BE'; - } elsif ( $buf eq "\x{FF}\x{FE}" ) { - $encoding = 'UTF-16LE'; - } elsif ( $buf eq "\x{EF}\x{BB}" ) { - $buf = ' '; - $count = read $fh, $buf, length $buf; - if ( defined $count and $count >= 1 and $buf eq "\x{BF}" ) { - $encoding = 'UTF-8'; - } - } - - if ( defined $encoding ) { - if ( "$]" >= 5.008 ) { - binmode( $fh, ":encoding($encoding)" ); - } - } else { - seek $fh, $pos, SEEK_SET - or croak( sprintf "Can't reset position to the top of '$filename'" ); - } - - return $encoding; - } - - sub _parse_fh { - my ($self, $fh) = @_; - - my( $in_pod, $seen_end, $need_vers ) = ( 0, 0, 0 ); - my( @packages, %vers, %pod, @pod ); - my $package = 'main'; - my $pod_sect = ''; - my $pod_data = ''; - my $in_end = 0; - - while (defined( my $line = <$fh> )) { - my $line_num = $.; - - chomp( $line ); - - # From toke.c : any line that begins by "=X", where X is an alphabetic - # character, introduces a POD segment. - my $is_cut; - if ( $line =~ /^=([a-zA-Z].*)/ ) { - my $cmd = $1; - # Then it goes back to Perl code for "=cutX" where X is a non-alphabetic - # character (which includes the newline, but here we chomped it away). - $is_cut = $cmd =~ /^cut(?:[^a-zA-Z]|$)/; - $in_pod = !$is_cut; - } - - if ( $in_pod ) { - - if ( $line =~ /^=head[1-4]\s+(.+)\s*$/ ) { - push( @pod, $1 ); - if ( $self->{collect_pod} && length( $pod_data ) ) { - $pod{$pod_sect} = $pod_data; - $pod_data = ''; - } - $pod_sect = $1; - - } elsif ( $self->{collect_pod} ) { - $pod_data .= "$line\n"; - - } - - } elsif ( $is_cut ) { - - if ( $self->{collect_pod} && length( $pod_data ) ) { - $pod{$pod_sect} = $pod_data; - $pod_data = ''; - } - $pod_sect = ''; - - } else { - - # Skip after __END__ - next if $in_end; - - # Skip comments in code - next if $line =~ /^\s*#/; - - # Would be nice if we could also check $in_string or something too - if ($line eq '__END__') { - $in_end++; - next; - } - last if $line eq '__DATA__'; - - # parse $line to see if it's a $VERSION declaration - my( $version_sigil, $version_fullname, $version_package ) = - index($line, 'VERSION') >= 1 - ? $self->_parse_version_expression( $line ) - : (); - - if ( $line =~ /$PKG_REGEXP/o ) { - $package = $1; - my $version = $2; - push( @packages, $package ) unless grep( $package eq $_, @packages ); - $need_vers = defined $version ? 0 : 1; - - if ( not exists $vers{$package} and defined $version ){ - # Upgrade to a version object. - my $dwim_version = eval { _dwim_version($version) }; - croak "Version '$version' from $self->{filename} does not appear to be valid:\n$line\n\nThe fatal error was: $@\n" - unless defined $dwim_version; # "0" is OK! - $vers{$package} = $dwim_version; - } - - # VERSION defined with full package spec, i.e. $Module::VERSION - } elsif ( $version_fullname && $version_package ) { - push( @packages, $version_package ) unless grep( $version_package eq $_, @packages ); - $need_vers = 0 if $version_package eq $package; - - unless ( defined $vers{$version_package} && length $vers{$version_package} ) { - $vers{$version_package} = $self->_evaluate_version_line( $version_sigil, $version_fullname, $line ); - } - - # first non-comment line in undeclared package main is VERSION - } elsif ( $package eq 'main' && $version_fullname && !exists($vers{main}) ) { - $need_vers = 0; - my $v = $self->_evaluate_version_line( $version_sigil, $version_fullname, $line ); - $vers{$package} = $v; - push( @packages, 'main' ); - - # first non-comment line in undeclared package defines package main - } elsif ( $package eq 'main' && !exists($vers{main}) && $line =~ /\w/ ) { - $need_vers = 1; - $vers{main} = ''; - push( @packages, 'main' ); - - # only keep if this is the first $VERSION seen - } elsif ( $version_fullname && $need_vers ) { - $need_vers = 0; - my $v = $self->_evaluate_version_line( $version_sigil, $version_fullname, $line ); - - unless ( defined $vers{$package} && length $vers{$package} ) { - $vers{$package} = $v; - } - } - } - } - - if ( $self->{collect_pod} && length($pod_data) ) { - $pod{$pod_sect} = $pod_data; - } - - $self->{versions} = \%vers; - $self->{packages} = \@packages; - $self->{pod} = \%pod; - $self->{pod_headings} = \@pod; - } - - { - my $pn = 0; - sub _evaluate_version_line { - my $self = shift; - my( $sigil, $variable_name, $line ) = @_; - - # We compile into a local sub because 'use version' would cause - # compiletime/runtime issues with local() - $pn++; # everybody gets their own package - my $eval = qq{ my \$dummy = q# Hide from _packages_inside() - #; package Module::Metadata::_version::p${pn}; - use version; - sub { - local $sigil$variable_name; - $line; - \$$variable_name - }; - }; - - $eval = $1 if $eval =~ m{^(.+)}s; - - local $^W; - # Try to get the $VERSION - my $vsub = __clean_eval($eval); - # some modules say $VERSION <equal sign> $Foo::Bar::VERSION, but Foo::Bar isn't - # installed, so we need to hunt in ./lib for it - if ( $@ =~ /Can't locate/ && -d 'lib' ) { - local @INC = ('lib',@INC); - $vsub = __clean_eval($eval); - } - warn "Error evaling version line '$eval' in $self->{filename}: $@\n" - if $@; - - (ref($vsub) eq 'CODE') or - croak "failed to build version sub for $self->{filename}"; - - my $result = eval { $vsub->() }; - # FIXME: $eval is not the right thing to print here - croak "Could not get version from $self->{filename} by executing:\n$eval\n\nThe fatal error was: $@\n" - if $@; - - # Upgrade it into a version object - my $version = eval { _dwim_version($result) }; - - # FIXME: $eval is not the right thing to print here - croak "Version '$result' from $self->{filename} does not appear to be valid:\n$eval\n\nThe fatal error was: $@\n" - unless defined $version; # "0" is OK! - - return $version; - } - } - - # Try to DWIM when things fail the lax version test in obvious ways - { - my @version_prep = ( - # Best case, it just works - sub { return shift }, - - # If we still don't have a version, try stripping any - # trailing junk that is prohibited by lax rules - sub { - my $v = shift; - $v =~ s{([0-9])[a-z-].*$}{$1}i; # 1.23-alpha or 1.23b - return $v; - }, - - # Activestate apparently creates custom versions like '1.23_45_01', which - # cause version.pm to think it's an invalid alpha. So check for that - # and strip them - sub { - my $v = shift; - my $num_dots = () = $v =~ m{(\.)}g; - my $num_unders = () = $v =~ m{(_)}g; - my $leading_v = substr($v,0,1) eq 'v'; - if ( ! $leading_v && $num_dots < 2 && $num_unders > 1 ) { - $v =~ s{_}{}g; - $num_unders = () = $v =~ m{(_)}g; - } - return $v; - }, - - # Worst case, try numifying it like we would have before version objects - sub { - my $v = shift; - no warnings 'numeric'; - return 0 + $v; - }, - - ); - - sub _dwim_version { - my ($result) = shift; - - return $result if ref($result) eq 'version'; - - my ($version, $error); - for my $f (@version_prep) { - $result = $f->($result); - $version = eval { version->new($result) }; - $error ||= $@ if $@; # capture first failure - last if defined $version; - } - - croak $error unless defined $version; - - return $version; - } - } - - ############################################################ - - # accessors - sub name { $_[0]->{module} } - - sub filename { $_[0]->{filename} } - sub packages_inside { @{$_[0]->{packages}} } - sub pod_inside { @{$_[0]->{pod_headings}} } - sub contains_pod { 0+@{$_[0]->{pod_headings}} } - - sub version { - my $self = shift; - my $mod = shift || $self->{module}; - my $vers; - if ( defined( $mod ) && length( $mod ) && - exists( $self->{versions}{$mod} ) ) { - return $self->{versions}{$mod}; - } else { - return undef; - } - } - - sub pod { - my $self = shift; - my $sect = shift; - if ( defined( $sect ) && length( $sect ) && - exists( $self->{pod}{$sect} ) ) { - return $self->{pod}{$sect}; - } else { - return undef; - } - } - - sub is_indexable { - my ($self, $package) = @_; - - my @indexable_packages = grep { $_ ne 'main' } $self->packages_inside; - - # check for specific package, if provided - return !! grep { $_ eq $package } @indexable_packages if $package; - - # otherwise, check for any indexable packages at all - return !! @indexable_packages; - } - - 1; - - =head1 NAME - - Module::Metadata - Gather package and POD information from perl module files - - =head1 SYNOPSIS - - use Module::Metadata; - - # information about a .pm file - my $info = Module::Metadata->new_from_file( $file ); - my $version = $info->version; - - # CPAN META 'provides' field for .pm files in a directory - my $provides = Module::Metadata->provides( - dir => 'lib', version => 2 - ); - - =head1 DESCRIPTION - - This module provides a standard way to gather metadata about a .pm file through - (mostly) static analysis and (some) code execution. When determining the - version of a module, the C<$VERSION> assignment is C<eval>ed, as is traditional - in the CPAN toolchain. - - =head1 CLASS METHODS - - =head2 C<< new_from_file($filename, collect_pod => 1) >> - - Constructs a C<Module::Metadata> object given the path to a file. Returns - undef if the filename does not exist. - - C<collect_pod> is a optional boolean argument that determines whether POD - data is collected and stored for reference. POD data is not collected by - default. POD headings are always collected. - - If the file begins by an UTF-8, UTF-16BE or UTF-16LE byte-order mark, then - it is skipped before processing, and the content of the file is also decoded - appropriately starting from perl 5.8. - - =head2 C<< new_from_handle($handle, $filename, collect_pod => 1) >> - - This works just like C<new_from_file>, except that a handle can be provided - as the first argument. - - Note that there is no validation to confirm that the handle is a handle or - something that can act like one. Passing something that isn't a handle will - cause a exception when trying to read from it. The C<filename> argument is - mandatory or undef will be returned. - - You are responsible for setting the decoding layers on C<$handle> if - required. - - =head2 C<< new_from_module($module, collect_pod => 1, inc => \@dirs) >> - - Constructs a C<Module::Metadata> object given a module or package name. - Returns undef if the module cannot be found. - - In addition to accepting the C<collect_pod> argument as described above, - this method accepts a C<inc> argument which is a reference to an array of - directories to search for the module. If none are given, the default is - @INC. - - If the file that contains the module begins by an UTF-8, UTF-16BE or - UTF-16LE byte-order mark, then it is skipped before processing, and the - content of the file is also decoded appropriately starting from perl 5.8. - - =head2 C<< find_module_by_name($module, \@dirs) >> - - Returns the path to a module given the module or package name. A list - of directories can be passed in as an optional parameter, otherwise - @INC is searched. - - Can be called as either an object or a class method. - - =head2 C<< find_module_dir_by_name($module, \@dirs) >> - - Returns the entry in C<@dirs> (or C<@INC> by default) that contains - the module C<$module>. A list of directories can be passed in as an - optional parameter, otherwise @INC is searched. - - Can be called as either an object or a class method. - - =head2 C<< provides( %options ) >> - - This is a convenience wrapper around C<package_versions_from_directory> - to generate a CPAN META C<provides> data structure. It takes key/value - pairs. Valid option keys include: - - =over - - =item version B<(required)> - - Specifies which version of the L<CPAN::Meta::Spec> should be used as - the format of the C<provides> output. Currently only '1.4' and '2' - are supported (and their format is identical). This may change in - the future as the definition of C<provides> changes. - - The C<version> option is required. If it is omitted or if - an unsupported version is given, then C<provides> will throw an error. - - =item dir - - Directory to search recursively for F<.pm> files. May not be specified with - C<files>. - - =item files - - Array reference of files to examine. May not be specified with C<dir>. - - =item prefix - - String to prepend to the C<file> field of the resulting output. This defaults - to F<lib>, which is the common case for most CPAN distributions with their - F<.pm> files in F<lib>. This option ensures the META information has the - correct relative path even when the C<dir> or C<files> arguments are - absolute or have relative paths from a location other than the distribution - root. - - =back - - For example, given C<dir> of 'lib' and C<prefix> of 'lib', the return value - is a hashref of the form: - - { - 'Package::Name' => { - version => '0.123', - file => 'lib/Package/Name.pm' - }, - 'OtherPackage::Name' => ... - } - - =head2 C<< package_versions_from_directory($dir, \@files?) >> - - Scans C<$dir> for .pm files (unless C<@files> is given, in which case looks - for those files in C<$dir> - and reads each file for packages and versions, - returning a hashref of the form: - - { - 'Package::Name' => { - version => '0.123', - file => 'Package/Name.pm' - }, - 'OtherPackage::Name' => ... - } - - The C<DB> and C<main> packages are always omitted, as are any "private" - packages that have leading underscores in the namespace (e.g. - C<Foo::_private>) - - Note that the file path is relative to C<$dir> if that is specified. - This B<must not> be used directly for CPAN META C<provides>. See - the C<provides> method instead. - - =head2 C<< log_info (internal) >> - - Used internally to perform logging; imported from Log::Contextual if - Log::Contextual has already been loaded, otherwise simply calls warn. - - =head1 OBJECT METHODS - - =head2 C<< name() >> - - Returns the name of the package represented by this module. If there - is more than one package, it makes a best guess based on the - filename. If it's a script (i.e. not a *.pm) the package name is - 'main'. - - =head2 C<< version($package) >> - - Returns the version as defined by the $VERSION variable for the - package as returned by the C<name> method if no arguments are - given. If given the name of a package it will attempt to return the - version of that package if it is specified in the file. - - =head2 C<< filename() >> - - Returns the absolute path to the file. - Note that this file may not actually exist on disk yet, e.g. if the module was read from an in-memory filehandle. - - =head2 C<< packages_inside() >> - - Returns a list of packages. Note: this is a raw list of packages - discovered (or assumed, in the case of C<main>). It is not - filtered for C<DB>, C<main> or private packages the way the - C<provides> method does. Invalid package names are not returned, - for example "Foo:Bar". Strange but valid package names are - returned, for example "Foo::Bar::", and are left up to the caller - on how to handle. - - =head2 C<< pod_inside() >> - - Returns a list of POD sections. - - =head2 C<< contains_pod() >> - - Returns true if there is any POD in the file. - - =head2 C<< pod($section) >> - - Returns the POD data in the given section. - - =head2 C<< is_indexable($package) >> or C<< is_indexable() >> - - Returns a boolean indicating whether the package (if provided) or any package - (otherwise) is eligible for indexing by PAUSE, the Perl Authors Upload Server. - Note This only checks for valid C<package> declarations, and does not take any - ownership information into account. - - =head1 AUTHOR - - Original code from Module::Build::ModuleInfo by Ken Williams - <kwilliams@cpan.org>, Randy W. Sims <RandyS@ThePierianSpring.org> - - Released as Module::Metadata by Matt S Trout (mst) <mst@shadowcat.co.uk> with - assistance from David Golden (xdg) <dagolden@cpan.org>. - - =head1 COPYRIGHT & LICENSE - - Original code Copyright (c) 2001-2011 Ken Williams. - Additional code Copyright (c) 2010-2011 Matt Trout and David Golden. - All rights reserved. - - This library is free software; you can redistribute it and/or - modify it under the same terms as Perl itself. - - =cut -MODULE_METADATA - -$fatpacked{"Parse/CPAN/Meta.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'PARSE_CPAN_META'; - use 5.008001; - use strict; - package Parse::CPAN::Meta; - # ABSTRACT: Parse META.yml and META.json CPAN metadata files - our $VERSION = '1.4414'; # VERSION - - use Exporter; - use Carp 'croak'; - - our @ISA = qw/Exporter/; - our @EXPORT_OK = qw/Load LoadFile/; - - sub load_file { - my ($class, $filename) = @_; - - my $meta = _slurp($filename); - - if ($filename =~ /\.ya?ml$/) { - return $class->load_yaml_string($meta); - } - elsif ($filename =~ /\.json$/) { - return $class->load_json_string($meta); - } - else { - $class->load_string($meta); # try to detect yaml/json - } - } - - sub load_string { - my ($class, $string) = @_; - if ( $string =~ /^---/ ) { # looks like YAML - return $class->load_yaml_string($string); - } - elsif ( $string =~ /^\s*\{/ ) { # looks like JSON - return $class->load_json_string($string); - } - else { # maybe doc-marker-free YAML - return $class->load_yaml_string($string); - } - } - - sub load_yaml_string { - my ($class, $string) = @_; - my $backend = $class->yaml_backend(); - my $data = eval { no strict 'refs'; &{"$backend\::Load"}($string) }; - croak $@ if $@; - return $data || {}; # in case document was valid but empty - } - - sub load_json_string { - my ($class, $string) = @_; - my $data = eval { $class->json_backend()->new->decode($string) }; - croak $@ if $@; - return $data || {}; - } - - sub yaml_backend { - if (! defined $ENV{PERL_YAML_BACKEND} ) { - _can_load( 'CPAN::Meta::YAML', 0.011 ) - or croak "CPAN::Meta::YAML 0.011 is not available\n"; - return "CPAN::Meta::YAML"; - } - else { - my $backend = $ENV{PERL_YAML_BACKEND}; - _can_load( $backend ) - or croak "Could not load PERL_YAML_BACKEND '$backend'\n"; - $backend->can("Load") - or croak "PERL_YAML_BACKEND '$backend' does not implement Load()\n"; - return $backend; - } - } - - sub json_backend { - if (! $ENV{PERL_JSON_BACKEND} or $ENV{PERL_JSON_BACKEND} eq 'JSON::PP') { - _can_load( 'JSON::PP' => 2.27103 ) - or croak "JSON::PP 2.27103 is not available\n"; - return 'JSON::PP'; - } - else { - _can_load( 'JSON' => 2.5 ) - or croak "JSON 2.5 is required for " . - "\$ENV{PERL_JSON_BACKEND} = '$ENV{PERL_JSON_BACKEND}'\n"; - return "JSON"; - } - } - - sub _slurp { - require Encode; - open my $fh, "<:raw", "$_[0]" ## no critic - or die "can't open $_[0] for reading: $!"; - my $content = do { local $/; <$fh> }; - $content = Encode::decode('UTF-8', $content, Encode::PERLQQ()); - return $content; - } - - sub _can_load { - my ($module, $version) = @_; - (my $file = $module) =~ s{::}{/}g; - $file .= ".pm"; - return 1 if $INC{$file}; - return 0 if exists $INC{$file}; # prior load failed - eval { require $file; 1 } - or return 0; - if ( defined $version ) { - eval { $module->VERSION($version); 1 } - or return 0; - } - return 1; - } - - # Kept for backwards compatibility only - # Create an object from a file - sub LoadFile ($) { - return Load(_slurp(shift)); - } - - # Parse a document from a string. - sub Load ($) { - require CPAN::Meta::YAML; - my $object = eval { CPAN::Meta::YAML::Load(shift) }; - croak $@ if $@; - return $object; - } - - 1; - - __END__ - - =pod - - =encoding UTF-8 - - =head1 NAME - - Parse::CPAN::Meta - Parse META.yml and META.json CPAN metadata files - - =head1 VERSION - - version 1.4414 - - =head1 SYNOPSIS - - ############################################# - # In your file - - --- - name: My-Distribution - version: 1.23 - resources: - homepage: "http://example.com/dist/My-Distribution" - - - ############################################# - # In your program - - use Parse::CPAN::Meta; - - my $distmeta = Parse::CPAN::Meta->load_file('META.yml'); - - # Reading properties - my $name = $distmeta->{name}; - my $version = $distmeta->{version}; - my $homepage = $distmeta->{resources}{homepage}; - - =head1 DESCRIPTION - - B<Parse::CPAN::Meta> is a parser for F<META.json> and F<META.yml> files, using - L<JSON::PP> and/or L<CPAN::Meta::YAML>. - - B<Parse::CPAN::Meta> provides three methods: C<load_file>, C<load_json_string>, - and C<load_yaml_string>. These will read and deserialize CPAN metafiles, and - are described below in detail. - - B<Parse::CPAN::Meta> provides a legacy API of only two functions, - based on the YAML functions of the same name. Wherever possible, - identical calling semantics are used. These may only be used with YAML sources. - - All error reporting is done with exceptions (die'ing). - - Note that META files are expected to be in UTF-8 encoding, only. When - converted string data, it must first be decoded from UTF-8. - - =begin Pod::Coverage - - - - - =end Pod::Coverage - - =head1 METHODS - - =head2 load_file - - my $metadata_structure = Parse::CPAN::Meta->load_file('META.json'); - - my $metadata_structure = Parse::CPAN::Meta->load_file('META.yml'); - - This method will read the named file and deserialize it to a data structure, - determining whether it should be JSON or YAML based on the filename. - The file will be read using the ":utf8" IO layer. - - =head2 load_yaml_string - - my $metadata_structure = Parse::CPAN::Meta->load_yaml_string($yaml_string); - - This method deserializes the given string of YAML and returns the first - document in it. (CPAN metadata files should always have only one document.) - If the source was UTF-8 encoded, the string must be decoded before calling - C<load_yaml_string>. - - =head2 load_json_string - - my $metadata_structure = Parse::CPAN::Meta->load_json_string($json_string); - - This method deserializes the given string of JSON and the result. - If the source was UTF-8 encoded, the string must be decoded before calling - C<load_json_string>. - - =head2 load_string - - my $metadata_structure = Parse::CPAN::Meta->load_string($some_string); - - If you don't know whether a string contains YAML or JSON data, this method - will use some heuristics and guess. If it can't tell, it assumes YAML. - - =head2 yaml_backend - - my $backend = Parse::CPAN::Meta->yaml_backend; - - Returns the module name of the YAML serializer. See L</ENVIRONMENT> - for details. - - =head2 json_backend - - my $backend = Parse::CPAN::Meta->json_backend; - - Returns the module name of the JSON serializer. This will either - be L<JSON::PP> or L<JSON>. Even if C<PERL_JSON_BACKEND> is set, - this will return L<JSON> as further delegation is handled by - the L<JSON> module. See L</ENVIRONMENT> for details. - - =head1 FUNCTIONS - - For maintenance clarity, no functions are exported by default. These functions - are available for backwards compatibility only and are best avoided in favor of - C<load_file>. - - =head2 Load - - my @yaml = Parse::CPAN::Meta::Load( $string ); - - Parses a string containing a valid YAML stream into a list of Perl data - structures. - - =head2 LoadFile - - my @yaml = Parse::CPAN::Meta::LoadFile( 'META.yml' ); - - Reads the YAML stream from a file instead of a string. - - =head1 ENVIRONMENT - - =head2 PERL_JSON_BACKEND - - By default, L<JSON::PP> will be used for deserializing JSON data. If the - C<PERL_JSON_BACKEND> environment variable exists, is true and is not - "JSON::PP", then the L<JSON> module (version 2.5 or greater) will be loaded and - used to interpret C<PERL_JSON_BACKEND>. If L<JSON> is not installed or is too - old, an exception will be thrown. - - =head2 PERL_YAML_BACKEND - - By default, L<CPAN::Meta::YAML> will be used for deserializing YAML data. If - the C<PERL_YAML_BACKEND> environment variable is defined, then it is interpreted - as a module to use for deserialization. The given module must be installed, - must load correctly and must implement the C<Load()> function or an exception - will be thrown. - - =for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan - - =head1 SUPPORT - - =head2 Bugs / Feature Requests - - Please report any bugs or feature requests through the issue tracker - at L<http://rt.cpan.org/Public/Dist/Display.html?Name=Parse-CPAN-Meta>. - You will be notified automatically of any progress on your issue. - - =head2 Source Code - - This is open source software. The code repository is available for - public review and contribution under the terms of the license. - - L<https://github.com/Perl-Toolchain-Gang/Parse-CPAN-Meta> - - git clone https://github.com/Perl-Toolchain-Gang/Parse-CPAN-Meta.git - - =head1 AUTHORS - - =over 4 - - =item * - - Adam Kennedy <adamk@cpan.org> - - =item * - - David Golden <dagolden@cpan.org> - - =back - - =head1 CONTRIBUTORS - - =over 4 - - =item * - - Graham Knop <haarg@haarg.org> - - =item * - - Joshua ben Jore <jjore@cpan.org> - - =item * - - Neil Bowers <neil@bowers.com> - - =item * - - Ricardo Signes <rjbs@cpan.org> - - =item * - - Steffen Mueller <smueller@cpan.org> - - =back - - =head1 COPYRIGHT AND LICENSE - - This software is copyright (c) 2014 by Adam Kennedy and Contributors. - - This is free software; you can redistribute it and/or modify it under - the same terms as the Perl 5 programming language system itself. - - =cut -PARSE_CPAN_META - -$fatpacked{"Parse/PMFile.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'PARSE_PMFILE'; - package Parse::PMFile; - - sub __clean_eval { eval $_[0] } # needs to be here (RT#101273) - - use strict; - use warnings; - use Safe; - use JSON::PP (); - use Dumpvalue; - use version (); - use File::Spec (); - - our $VERSION = '0.36'; - our $VERBOSE = 0; - our $ALLOW_DEV_VERSION = 0; - our $FORK = 0; - our $UNSAFE = $] < 5.010000 ? 1 : 0; - - sub new { - my ($class, $meta, $opts) = @_; - bless {%{ $opts || {} }, META_CONTENT => $meta}, $class; - } - - # from PAUSE::pmfile::examine_fio - sub parse { - my ($self, $pmfile) = @_; - - $pmfile =~ s|\\|/|g; - - my($filemtime) = (stat $pmfile)[9]; - $self->{MTIME} = $filemtime; - $self->{PMFILE} = $pmfile; - - unless ($self->_version_from_meta_ok) { - my $version; - unless (eval { $version = $self->_parse_version; 1 }) { - $self->_verbose(1, "error with version in $pmfile: $@"); - return; - } - - $self->{VERSION} = $version; - if ($self->{VERSION} =~ /^\{.*\}$/) { - # JSON error message - } elsif ($self->{VERSION} =~ /[_\s]/ && !$self->{ALLOW_DEV_VERSION} && !$ALLOW_DEV_VERSION){ # ignore developer releases and "You suck!" - return; - } - } - - my($ppp) = $self->_packages_per_pmfile; - my @keys_ppp = $self->_filter_ppps(sort keys %$ppp); - $self->_verbose(1,"Will check keys_ppp[@keys_ppp]\n"); - - # - # Immediately after each package (pmfile) examined contact - # the database - # - - my ($package, %errors); - my %checked_in; - DBPACK: foreach $package (@keys_ppp) { - # this part is taken from PAUSE::package::examine_pkg - # and PAUSE::package::_pkg_name_insane - if ($package !~ /^\w[\w\:\']*\w?\z/ - || $package !~ /\w\z/ - || $package =~ /:/ && $package !~ /::/ - || $package =~ /\w:\w/ - || $package =~ /:::/ - ){ - $self->_verbose(1,"Package[$package] did not pass the ultimate sanity check"); - delete $ppp->{$package}; - next; - } - - if ($self->{USERID} && $self->{PERMISSIONS} && !$self->_perm_check($package)) { - delete $ppp->{$package}; - next; - } - - # Check that package name matches case of file name - { - my (undef, $module) = split m{/lib/}, $self->{PMFILE}, 2; - if ($module) { - $module =~ s{\.pm\z}{}; - $module =~ s{/}{::}g; - - if (lc $module eq lc $package && $module ne $package) { - # warn "/// $self->{PMFILE} vs. $module vs. $package\n"; - $errors{$package} = { - indexing_warning => "Capitalization of package ($package) does not match filename!", - infile => $self->{PMFILE}, - }; - } - } - } - - my $pp = $ppp->{$package}; - if ($pp->{version} && $pp->{version} =~ /^\{.*\}$/) { # JSON parser error - my $err = JSON::PP::decode_json($pp->{version}); - if ($err->{x_normalize}) { - $errors{$package} = { - normalize => $err->{version}, - infile => $pp->{infile}, - }; - $pp->{version} = "undef"; - } elsif ($err->{openerr}) { - $pp->{version} = "undef"; - $self->_verbose(1, - qq{Parse::PMFile was not able to - read the file. It issued the following error: C< $err->{r} >}, - ); - $errors{$package} = { - open => $err->{r}, - infile => $pp->{infile}, - }; - } else { - $pp->{version} = "undef"; - $self->_verbose(1, - qq{Parse::PMFile was not able to - parse the following line in that file: C< $err->{line} > - - Note: the indexer is running in a Safe compartement and cannot - provide the full functionality of perl in the VERSION line. It - is trying hard, but sometime it fails. As a workaround, please - consider writing a META.yml that contains a 'provides' - attribute or contact the CPAN admins to investigate (yet - another) workaround against "Safe" limitations.)}, - - ); - $errors{$package} = { - parse_version => $err->{line}, - infile => $err->{file}, - }; - } - } - - # Sanity checks - - for ( - $package, - $pp->{version}, - ) { - if (!defined || /^\s*$/ || /\s/){ # for whatever reason I come here - delete $ppp->{$package}; - next; # don't screw up 02packages - } - } - $checked_in{$package} = $ppp->{$package}; - } # end foreach package - - return (wantarray && %errors) ? (\%checked_in, \%errors) : \%checked_in; - } - - sub _perm_check { - my ($self, $package) = @_; - my $userid = $self->{USERID}; - my $module = $self->{PERMISSIONS}->module_permissions($package); - return 1 if !$module; # not listed yet - return 1 if defined $module->m && $module->m eq $userid; - return 1 if defined $module->f && $module->f eq $userid; - return 1 if defined $module->c && grep {$_ eq $userid} @{$module->c}; - return; - } - - # from PAUSE::pmfile; - sub _parse_version { - my $self = shift; - - use strict; - - my $pmfile = $self->{PMFILE}; - my $tmpfile = File::Spec->catfile(File::Spec->tmpdir, "ParsePMFile$$" . rand(1000)); - - my $pmcp = $pmfile; - for ($pmcp) { - s/([^\\](\\\\)*)@/$1\\@/g; # thanks to Raphael Manfredi for the - # solution to escape @s and \ - } - my($v); - { - - package main; # seems necessary - - # XXX: do we need to fork as PAUSE does? - # or, is alarm() just fine? - my $pid; - if ($self->{FORK} || $FORK) { - $pid = fork(); - die "Can't fork: $!" unless defined $pid; - } - if ($pid) { - waitpid($pid, 0); - if (open my $fh, '<', $tmpfile) { - $v = <$fh>; - } - } else { - # XXX Limit Resources too - - my($comp) = Safe->new; - my $eval = qq{ - local(\$^W) = 0; - Parse::PMFile::_parse_version_safely("$pmcp"); - }; - $comp->permit("entereval"); # for MBARBON/Module-Info-0.30.tar.gz - $comp->share("*Parse::PMFile::_parse_version_safely"); - $comp->share("*version::new"); - $comp->share("*version::numify"); - $comp->share_from('main', ['*version::', - '*charstar::', - '*Exporter::', - '*DynaLoader::']); - $comp->share_from('version', ['&qv']); - $comp->permit(":base_math"); # atan2 (Acme-Pi) - # $comp->permit("require"); # no strict! - $comp->deny(qw/enteriter iter unstack goto/); # minimum protection against Acme::BadExample - - version->import('qv') if $self->{UNSAFE} || $UNSAFE; - { - no strict; - $v = ($self->{UNSAFE} || $UNSAFE) ? eval $eval : $comp->reval($eval); - } - if ($@){ # still in the child process, out of Safe::reval - my $err = $@; - # warn ">>>>>>>err[$err]<<<<<<<<"; - if (ref $err) { - if ($err->{line} =~ /([\$*])([\w\:\']*)\bVERSION\b.*?\=(.*)/) { - local($^W) = 0; - my ($sigil, $vstr) = ($1, $3); - $self->_restore_overloaded_stuff(1) if $err->{line} =~ /use\s+version\b|version\->|qv\(/; - $v = ($self->{UNSAFE} || $UNSAFE) ? eval $vstr : $comp->reval($vstr); - $v = $$v if $sigil eq '*' && ref $v; - } - if ($@ or !$v) { - $self->_verbose(1, sprintf("reval failed: err[%s] for eval[%s]", - JSON::PP::encode_json($err), - $eval, - )); - $v = JSON::PP::encode_json($err); - } - } else { - $v = JSON::PP::encode_json({ openerr => $err }); - } - } - if (defined $v) { - $v = $v->numify if ref($v) =~ /^version(::vpp)?$/; - } else { - $v = ""; - } - if ($self->{FORK} || $FORK) { - open my $fh, '>:utf8', $tmpfile; - print $fh $v; - exit 0; - } else { - utf8::encode($v); - # undefine empty $v as if read from the tmpfile - $v = undef if defined $v && !length $v; - $comp->erase; - $self->_restore_overloaded_stuff; - } - } - } - unlink $tmpfile if ($self->{FORK} || $FORK) && -e $tmpfile; - - return $self->_normalize_version($v); - } - - sub _restore_overloaded_stuff { - my ($self, $used_version_in_safe) = @_; - return if $self->{UNSAFE} || $UNSAFE; - - no strict 'refs'; - no warnings 'redefine'; - - # version XS in CPAN - my $restored; - if ($INC{'version/vxs.pm'}) { - *{'version::(""'} = \&version::vxs::stringify; - *{'version::(0+'} = \&version::vxs::numify; - *{'version::(cmp'} = \&version::vxs::VCMP; - *{'version::(<=>'} = \&version::vxs::VCMP; - *{'version::(bool'} = \&version::vxs::boolean; - $restored = 1; - } - # version PP in CPAN - if ($INC{'version/vpp.pm'}) { - { - package # hide from PAUSE - charstar; - overload->import; - } - if (!$used_version_in_safe) { - package # hide from PAUSE - version::vpp; - overload->import; - } - unless ($restored) { - *{'version::(""'} = \&version::vpp::stringify; - *{'version::(0+'} = \&version::vpp::numify; - *{'version::(cmp'} = \&version::vpp::vcmp; - *{'version::(<=>'} = \&version::vpp::vcmp; - *{'version::(bool'} = \&version::vpp::vbool; - } - *{'version::vpp::(""'} = \&version::vpp::stringify; - *{'version::vpp::(0+'} = \&version::vpp::numify; - *{'version::vpp::(cmp'} = \&version::vpp::vcmp; - *{'version::vpp::(<=>'} = \&version::vpp::vcmp; - *{'version::vpp::(bool'} = \&version::vpp::vbool; - *{'charstar::(""'} = \&charstar::thischar; - *{'charstar::(0+'} = \&charstar::thischar; - *{'charstar::(++'} = \&charstar::increment; - *{'charstar::(--'} = \&charstar::decrement; - *{'charstar::(+'} = \&charstar::plus; - *{'charstar::(-'} = \&charstar::minus; - *{'charstar::(*'} = \&charstar::multiply; - *{'charstar::(cmp'} = \&charstar::cmp; - *{'charstar::(<=>'} = \&charstar::spaceship; - *{'charstar::(bool'} = \&charstar::thischar; - *{'charstar::(='} = \&charstar::clone; - $restored = 1; - } - # version in core - if (!$restored) { - *{'version::(""'} = \&version::stringify; - *{'version::(0+'} = \&version::numify; - *{'version::(cmp'} = \&version::vcmp; - *{'version::(<=>'} = \&version::vcmp; - *{'version::(bool'} = \&version::boolean; - } - } - - # from PAUSE::pmfile; - sub _packages_per_pmfile { - my $self = shift; - - my $ppp = {}; - my $pmfile = $self->{PMFILE}; - my $filemtime = $self->{MTIME}; - my $version = $self->{VERSION}; - - open my $fh, "<", "$pmfile" or return $ppp; - - local $/ = "\n"; - my $inpod = 0; - - PLINE: while (<$fh>) { - chomp; - my($pline) = $_; - $inpod = $pline =~ /^=(?!cut)/ ? 1 : - $pline =~ /^=cut/ ? 0 : $inpod; - next if $inpod; - next if substr($pline,0,4) eq "=cut"; - - $pline =~ s/\#.*//; - next if $pline =~ /^\s*$/; - if ($pline =~ /^__(?:END|DATA)__\b/ - and $pmfile !~ /\.PL$/ # PL files may well have code after __DATA__ - ){ - last PLINE; - } - - my $pkg; - my $strict_version; - - if ( - $pline =~ m{ - # (.*) # takes too much time if $pline is long - (?<![*\$\\@%&]) # no sigils - \bpackage\s+ - ([\w\:\']+) - \s* - (?: $ | [\}\;] | \{ | \s+($version::STRICT) ) - }x) { - $pkg = $1; - $strict_version = $2; - if ($pkg eq "DB"){ - # XXX if pumpkin and perl make him comaintainer! I - # think I always made the pumpkins comaint on DB - # without further ado (?) - next PLINE; - } - } - - if ($pkg) { - # Found something - - # from package - $pkg =~ s/\'/::/; - next PLINE unless $pkg =~ /^[A-Za-z]/; - next PLINE unless $pkg =~ /\w$/; - next PLINE if $pkg eq "main"; - # Perl::Critic::Policy::TestingAndDebugging::ProhibitShebangWarningsArg - # database for modid in mods, package in packages, package in perms - # alter table mods modify modid varchar(128) binary NOT NULL default ''; - # alter table packages modify package varchar(128) binary NOT NULL default ''; - next PLINE if length($pkg) > 128; - #restriction - $ppp->{$pkg}{parsed}++; - $ppp->{$pkg}{infile} = $pmfile; - if ($self->_simile($pmfile,$pkg)) { - $ppp->{$pkg}{simile} = $pmfile; - if ($self->_version_from_meta_ok) { - my $provides = $self->{META_CONTENT}{provides}; - if (exists $provides->{$pkg}) { - if (defined $provides->{$pkg}{version}) { - my $v = $provides->{$pkg}{version}; - if ($v =~ /[_\s]/ && !$self->{ALLOW_DEV_VERSION} && !$ALLOW_DEV_VERSION){ # ignore developer releases and "You suck!" - next PLINE; - } - - unless (eval { $version = $self->_normalize_version($v); 1 }) { - $self->_verbose(1, "error with version in $pmfile: $@"); - next; - - } - $ppp->{$pkg}{version} = $version; - } else { - $ppp->{$pkg}{version} = "undef"; - } - } - } else { - if (defined $strict_version){ - $ppp->{$pkg}{version} = $strict_version ; - } else { - $ppp->{$pkg}{version} = defined $version ? $version : ""; - } - no warnings; - if ($version eq 'undef') { - $ppp->{$pkg}{version} = $version unless defined $ppp->{$pkg}{version}; - } else { - $ppp->{$pkg}{version} = - $version - if $version - > $ppp->{$pkg}{version} || - $version - gt $ppp->{$pkg}{version}; - } - } - } else { # not simile - #### it comes later, it would be nonsense - #### to set to "undef". MM_Unix gives us - #### the best we can reasonably consider - $ppp->{$pkg}{version} = - $version - unless defined $ppp->{$pkg}{version} && - length($ppp->{$pkg}{version}); - } - $ppp->{$pkg}{filemtime} = $filemtime; - } else { - # $self->_verbose(2,"no pkg found"); - } - } - - close $fh; - $ppp; - } - - # from PAUSE::pmfile; - { - no strict; - sub _parse_version_safely { - my($parsefile) = @_; - my $result; - local *FH; - local $/ = "\n"; - open(FH,$parsefile) or die "Could not open '$parsefile': $!"; - my $inpod = 0; - while (<FH>) { - $inpod = /^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod; - next if $inpod || /^\s*#/; - last if /^__(?:END|DATA)__\b/; # fails on quoted __END__ but this is rare -> __END__ in the middle of a line is rarer - chop; - - if (my ($ver) = /package \s+ \S+ \s+ (\S+) \s* [;{]/x) { - # XXX: should handle this better if version is bogus -- rjbs, - # 2014-03-16 - return $ver if version::is_lax($ver); - } - - # next unless /\$(([\w\:\']*)\bVERSION)\b.*\=/; - next unless /(?<!\\)([\$*])(([\w\:\']*)\bVERSION)\b.*(?<![!><=])\=(?![=>])/; - my $current_parsed_line = $_; - my $eval = qq{ - package # - ExtUtils::MakeMaker::_version; - - local $1$2; - \$$2=undef; do { - $_ - }; \$$2 - }; - local $^W = 0; - local $SIG{__WARN__} = sub {}; - $result = __clean_eval($eval); - # warn "current_parsed_line[$current_parsed_line]\$\@[$@]"; - if ($@ or !defined $result){ - die +{ - eval => $eval, - line => $current_parsed_line, - file => $parsefile, - err => $@, - }; - } - last; - } #; - close FH; - - $result = "undef" unless defined $result; - if ((ref $result) =~ /^version(?:::vpp)?\b/) { - $result = $result->numify; - } - return $result; - } - } - - # from PAUSE::pmfile; - sub _filter_ppps { - my($self,@ppps) = @_; - my @res; - - # very similar code is in PAUSE::dist::filter_pms - MANI: for my $ppp ( @ppps ) { - if ($self->{META_CONTENT}){ - my $no_index = $self->{META_CONTENT}{no_index} - || $self->{META_CONTENT}{private}; # backward compat - if (ref($no_index) eq 'HASH') { - my %map = ( - package => qr{\z}, - namespace => qr{::}, - ); - for my $k (qw(package namespace)) { - next unless my $v = $no_index->{$k}; - my $rest = $map{$k}; - if (ref $v eq "ARRAY") { - for my $ve (@$v) { - $ve =~ s|::$||; - if ($ppp =~ /^$ve$rest/){ - $self->_verbose(1,"Skipping ppp[$ppp] due to ve[$ve]"); - next MANI; - } else { - $self->_verbose(1,"NOT skipping ppp[$ppp] due to ve[$ve]"); - } - } - } else { - $v =~ s|::$||; - if ($ppp =~ /^$v$rest/){ - $self->_verbose(1,"Skipping ppp[$ppp] due to v[$v]"); - next MANI; - } else { - $self->_verbose(1,"NOT skipping ppp[$ppp] due to v[$v]"); - } - } - } - } else { - $self->_verbose(1,"No keyword 'no_index' or 'private' in META_CONTENT"); - } - } else { - # $self->_verbose(1,"no META_CONTENT"); # too noisy - } - push @res, $ppp; - } - $self->_verbose(1,"Result of filter_ppps: res[@res]"); - @res; - } - - # from PAUSE::pmfile; - sub _simile { - my($self,$file,$package) = @_; - # MakeMaker gives them the chance to have the file Simple.pm in - # this directory but have the package HTML::Simple in it. - # Afaik, they wouldn't be able to do so with deeper nested packages - $file =~ s|.*/||; - $file =~ s|\.pm(?:\.PL)?||; - my $ret = $package =~ m/\b\Q$file\E$/; - $ret ||= 0; - unless ($ret) { - # Apache::mod_perl_guide stuffs it into Version.pm - $ret = 1 if lc $file eq 'version'; - } - $self->_verbose(1,"Result of simile(): file[$file] package[$package] ret[$ret]\n"); - $ret; - } - - # from PAUSE::pmfile - sub _normalize_version { - my($self,$v) = @_; - $v = "undef" unless defined $v; - my $dv = Dumpvalue->new; - my $sdv = $dv->stringify($v,1); # second argument prevents ticks - $self->_verbose(1,"Result of normalize_version: sdv[$sdv]\n"); - - return $v if $v eq "undef"; - return $v if $v =~ /^\{.*\}$/; # JSON object - $v =~ s/^\s+//; - $v =~ s/\s+\z//; - if ($v =~ /_/) { - # XXX should pass something like EDEVELOPERRELEASE up e.g. - # SIXTEASE/XML-Entities-0.0306.tar.gz had nothing but one - # such modules and the mesage was not helpful that "nothing - # was found". - return $v ; - } - if (!version::is_lax($v)) { - return JSON::PP::encode_json({ x_normalize => 'version::is_lax failed', version => $v }); - } - # may warn "Integer overflow" - my $vv = eval { no warnings; version->new($v)->numify }; - if ($@) { - # warn "$v: $@"; - return JSON::PP::encode_json({ x_normalize => $@, version => $v }); - # return "undef"; - } - if ($vv eq $v) { - # the boring 3.14 - } else { - my $forced = $self->_force_numeric($v); - if ($forced eq $vv) { - } elsif ($forced =~ /^v(.+)/) { - # rare case where a v1.0.23 slipped in (JANL/w3mir-1.0.10.tar.gz) - $vv = version->new($1)->numify; - } else { - # warn "Unequal forced[$forced] and vv[$vv]"; - if ($forced == $vv) { - # the trailing zeroes would cause unnecessary havoc - $vv = $forced; - } - } - } - return $vv; - } - - # from PAUSE::pmfile; - sub _force_numeric { - my($self,$v) = @_; - $v = $self->_readable($v); - - if ( - $v =~ - /^(\+?)(\d*)(\.(\d*))?/ && - # "$2$4" ne '' - ( - defined $2 && length $2 - || - defined $4 && length $4 - ) - ) { - my $two = defined $2 ? $2 : ""; - my $three = defined $3 ? $3 : ""; - $v = "$two$three"; - } - # no else branch! We simply say, everything else is a string. - $v; - } - - # from PAUSE::dist - sub _version_from_meta_ok { - my($self) = @_; - return $self->{VERSION_FROM_META_OK} if exists $self->{VERSION_FROM_META_OK}; - my $c = $self->{META_CONTENT}; - - # If there's no provides hash, we can't get our module versions from the - # provides hash! -- rjbs, 2012-03-31 - return($self->{VERSION_FROM_META_OK} = 0) unless $c->{provides}; - - # Some versions of Module::Build geneated an empty provides hash. If we're - # *not* looking at a Module::Build-generated metafile, then it's okay. - my ($mb_v) = (defined $c->{generated_by} ? $c->{generated_by} : '') =~ /Module::Build version ([\d\.]+)/; - return($self->{VERSION_FROM_META_OK} = 1) unless $mb_v; - - # ??? I don't know why this is here. - return($self->{VERSION_FROM_META_OK} = 1) if $mb_v eq '0.250.0'; - - if ($mb_v >= 0.19 && $mb_v < 0.26 && ! keys %{$c->{provides}}) { - # RSAVAGE/Javascript-SHA1-1.01.tgz had an empty provides hash. Ron - # did not find the reason why this happened, but let's not go - # overboard, 0.26 seems a good threshold from the statistics: there - # are not many empty provides hashes from 0.26 up. - return($self->{VERSION_FROM_META_OK} = 0); - } - - # We're not in the suspect range of M::B versions. It's good to go. - return($self->{VERSION_FROM_META_OK} = 1); - } - - sub _verbose { - my($self,$level,@what) = @_; - warn @what if $level <= ((ref $self && $self->{VERBOSE}) || $VERBOSE); - } - - # all of the following methods are stripped from CPAN::Version - # (as of version 5.5001, bundled in CPAN 2.03), and slightly - # modified (ie. made private, as well as CPAN->debug(...) are - # replaced with $self->_verbose(9, ...).) - - # CPAN::Version::vcmp courtesy Jost Krieger - sub _vcmp { - my($self,$l,$r) = @_; - local($^W) = 0; - $self->_verbose(9, "l[$l] r[$r]"); - - return 0 if $l eq $r; # short circuit for quicker success - - for ($l,$r) { - s/_//g; - } - $self->_verbose(9, "l[$l] r[$r]"); - for ($l,$r) { - next unless tr/.// > 1 || /^v/; - s/^v?/v/; - 1 while s/\.0+(\d)/.$1/; # remove leading zeroes per group - } - $self->_verbose(9, "l[$l] r[$r]"); - if ($l=~/^v/ <=> $r=~/^v/) { - for ($l,$r) { - next if /^v/; - $_ = $self->_float2vv($_); - } - } - $self->_verbose(9, "l[$l] r[$r]"); - my $lvstring = "v0"; - my $rvstring = "v0"; - if ($] >= 5.006 - && $l =~ /^v/ - && $r =~ /^v/) { - $lvstring = $self->_vstring($l); - $rvstring = $self->_vstring($r); - $self->_verbose(9, sprintf "lv[%vd] rv[%vd]", $lvstring, $rvstring); - } - - return ( - ($l ne "undef") <=> ($r ne "undef") - || - $lvstring cmp $rvstring - || - $l <=> $r - || - $l cmp $r - ); - } - - sub _vgt { - my($self,$l,$r) = @_; - $self->_vcmp($l,$r) > 0; - } - - sub _vlt { - my($self,$l,$r) = @_; - $self->_vcmp($l,$r) < 0; - } - - sub _vge { - my($self,$l,$r) = @_; - $self->_vcmp($l,$r) >= 0; - } - - sub _vle { - my($self,$l,$r) = @_; - $self->_vcmp($l,$r) <= 0; - } - - sub _vstring { - my($self,$n) = @_; - $n =~ s/^v// or die "Parse::PMFile::_vstring() called with invalid arg [$n]"; - pack "U*", split /\./, $n; - } - - # vv => visible vstring - sub _float2vv { - my($self,$n) = @_; - my($rev) = int($n); - $rev ||= 0; - my($mantissa) = $n =~ /\.(\d{1,12})/; # limit to 12 digits to limit - # architecture influence - $mantissa ||= 0; - $mantissa .= "0" while length($mantissa)%3; - my $ret = "v" . $rev; - while ($mantissa) { - $mantissa =~ s/(\d{1,3})// or - die "Panic: length>0 but not a digit? mantissa[$mantissa]"; - $ret .= ".".int($1); - } - # warn "n[$n]ret[$ret]"; - $ret =~ s/(\.0)+/.0/; # v1.0.0 => v1.0 - $ret; - } - - sub _readable { - my($self,$n) = @_; - $n =~ /^([\w\-\+\.]+)/; - - return $1 if defined $1 && length($1)>0; - # if the first user reaches version v43, he will be treated as "+". - # We'll have to decide about a new rule here then, depending on what - # will be the prevailing versioning behavior then. - - if ($] < 5.006) { # or whenever v-strings were introduced - # we get them wrong anyway, whatever we do, because 5.005 will - # have already interpreted 0.2.4 to be "0.24". So even if he - # indexer sends us something like "v0.2.4" we compare wrongly. - - # And if they say v1.2, then the old perl takes it as "v12" - - $self->_verbose(9, "Suspicious version string seen [$n]\n"); - return $n; - } - my $better = sprintf "v%vd", $n; - $self->_verbose(9, "n[$n] better[$better]"); - return $better; - } - - 1; - - __END__ - - =head1 NAME - - Parse::PMFile - parses .pm file as PAUSE does - - =head1 SYNOPSIS - - use Parse::PMFile; - - my $parser = Parse::PMFile->new($metadata, {VERBOSE => 1}); - my $packages_info = $parser->parse($pmfile); - - # if you need info about invalid versions - my ($packages_info, $errors) = $parser->parse($pmfile); - - # to check permissions - my $parser = Parse::PMFile->new($metadata, { - USERID => 'ISHIGAKI', - PERMISSIONS => PAUSE::Permissions->new, - }); - - =head1 DESCRIPTION - - The most of the code of this module is taken from the PAUSE code as of April 2013 almost verbatim. Thus, the heart of this module should be quite stable. However, I made it not to use pipe ("-|") as well as I stripped database-related code. If you encounter any issue, that's most probably because of my modification. - - This module doesn't provide features to extract a distribution or parse meta files intentionally. - - =head1 METHODS - - =head2 new - - creates an object. You can also pass a hashref taken from META.yml etc, and an optional hashref. Options are: - - =over 4 - - =item ALLOW_DEV_VERSION - - Parse::PMFile usually ignores a version with an underscore as PAUSE does (because it's for a developer release, and should not be indexed). Set this option to true if you happen to need to keep such a version for better analysis. - - =item VERBOSE - - Set this to true if you need to know some details. - - =item FORK - - As of version 0.17, Parse::PMFile stops forking while parsing a version for better performance. Parse::PMFile should return the same result no matter how this option is set, but if you do care, set this to true to fork as PAUSE does. - - =item USERID, PERMISSIONS - - As of version 0.21, Parse::PMFile checks permissions of a package if both USERID and PERMISSIONS (which should be an instance of L<PAUSE::Permissions>) are provided. Unauthorized packages are removed. - - =item UNSAFE - - Parse::PMFile usually parses a module version in a Safe compartment. However, this approach doesn't work smoothly under older perls (prior to 5.10) plus some combinations of recent versions of Safe.pm (2.24 and above) and version.pm (0.9905 and above) for various reasons. As of version 0.27, Parse::PMFile simply uses C<eval> to parse a version under older perls. If you want it to use always C<eval> (even under recent perls), set this to true. - - =back - - =head2 parse - - takes a path to a .pm file, and returns a hash reference that holds information for package(s) found in the file. - - =head1 SEE ALSO - - L<Parse::LocalDistribution>, L<PAUSE::Permissions> - - Most part of this module is derived from PAUSE and CPAN::Version. - - L<https://github.com/andk/pause> - - L<https://github.com/andk/cpanpm> - - =head1 AUTHOR - - Andreas Koenig E<lt>andreas.koenig@anima.deE<gt> - - Kenichi Ishigaki, E<lt>ishigaki@cpan.orgE<gt> - - =head1 COPYRIGHT AND LICENSE - - Copyright 1995 - 2013 by Andreas Koenig E<lt>andk@cpan.orgE<gt> for most of the code. - - Copyright 2013 by Kenichi Ishigaki for some. - - This program is free software; you can redistribute it and/or - modify it under the same terms as Perl itself. - - =cut -PARSE_PMFILE - -$fatpacked{"String/ShellQuote.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'STRING_SHELLQUOTE'; - # $Id: ShellQuote.pm,v 1.11 2010-06-11 20:08:57 roderick Exp $ - # - # Copyright (c) 1997 Roderick Schertler. All rights reserved. This - # program is free software; you can redistribute it and/or modify it - # under the same terms as Perl itself. - - =head1 NAME - - String::ShellQuote - quote strings for passing through the shell - - =head1 SYNOPSIS - - $string = shell_quote @list; - $string = shell_quote_best_effort @list; - $string = shell_comment_quote $string; - - =head1 DESCRIPTION - - This module contains some functions which are useful for quoting strings - which are going to pass through the shell or a shell-like object. - - =over - - =cut - - package String::ShellQuote; - - use strict; - use vars qw($VERSION @ISA @EXPORT); - - require Exporter; - - $VERSION = '1.04'; - @ISA = qw(Exporter); - @EXPORT = qw(shell_quote shell_quote_best_effort shell_comment_quote); - - sub croak { - require Carp; - goto &Carp::croak; - } - - sub _shell_quote_backend { - my @in = @_; - my @err = (); - - if (0) { - require RS::Handy; - print RS::Handy::data_dump(\@in); - } - - return \@err, '' unless @in; - - my $ret = ''; - my $saw_non_equal = 0; - foreach (@in) { - if (!defined $_ or $_ eq '') { - $_ = "''"; - next; - } - - if (s/\x00//g) { - push @err, "No way to quote string containing null (\\000) bytes"; - } - - my $escape = 0; - - # = needs quoting when it's the first element (or part of a - # series of such elements), as in command position it's a - # program-local environment setting - - if (/=/) { - if (!$saw_non_equal) { - $escape = 1; - } - } - else { - $saw_non_equal = 1; - } - - if (m|[^\w!%+,\-./:=@^]|) { - $escape = 1; - } - - if ($escape - || (!$saw_non_equal && /=/)) { - - # ' -> '\'' - s/'/'\\''/g; - - # make multiple ' in a row look simpler - # '\'''\'''\'' -> '"'''"' - s|((?:'\\''){2,})|q{'"} . (q{'} x (length($1) / 4)) . q{"'}|ge; - - $_ = "'$_'"; - s/^''//; - s/''$//; - } - } - continue { - $ret .= "$_ "; - } - - chop $ret; - return \@err, $ret; - } - - =item B<shell_quote> [I<string>]... - - B<shell_quote> quotes strings so they can be passed through the shell. - Each I<string> is quoted so that the shell will pass it along as a - single argument and without further interpretation. If no I<string>s - are given an empty string is returned. - - If any I<string> can't be safely quoted B<shell_quote> will B<croak>. - - =cut - - sub shell_quote { - my ($rerr, $s) = _shell_quote_backend @_; - - if (@$rerr) { - my %seen; - @$rerr = grep { !$seen{$_}++ } @$rerr; - my $s = join '', map { "shell_quote(): $_\n" } @$rerr; - chomp $s; - croak $s; - } - return $s; - } - - =item B<shell_quote_best_effort> [I<string>]... - - This is like B<shell_quote>, excpet if the string can't be safely quoted - it does the best it can and returns the result, instead of dying. - - =cut - - sub shell_quote_best_effort { - my ($rerr, $s) = _shell_quote_backend @_; - - return $s; - } - - =item B<shell_comment_quote> [I<string>] - - B<shell_comment_quote> quotes the I<string> so that it can safely be - included in a shell-style comment (the current algorithm is that a sharp - character is placed after any newlines in the string). - - This routine might be changed to accept multiple I<string> arguments - in the future. I haven't done this yet because I'm not sure if the - I<string>s should be joined with blanks ($") or nothing ($,). Cast - your vote today! Be sure to justify your answer. - - =cut - - sub shell_comment_quote { - return '' unless @_; - unless (@_ == 1) { - croak "Too many arguments to shell_comment_quote " - . "(got " . @_ . " expected 1)"; - } - local $_ = shift; - s/\n/\n#/g; - return $_; - } - - 1; - - __END__ - - =back - - =head1 EXAMPLES - - $cmd = 'fuser 2>/dev/null ' . shell_quote @files; - @pids = split ' ', `$cmd`; - - print CFG "# Configured by: ", - shell_comment_quote($ENV{LOGNAME}), "\n"; - - =head1 BUGS - - Only Bourne shell quoting is supported. I'd like to add other shells - (particularly cmd.exe), but I'm not familiar with them. It would be a - big help if somebody supplied the details. - - =head1 AUTHOR - - Roderick Schertler <F<roderick@argon.org>> - - =head1 SEE ALSO - - perl(1). - - =cut -STRING_SHELLQUOTE - -$fatpacked{"lib/core/only.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'LIB_CORE_ONLY'; - package lib::core::only; - - use strict; - use warnings FATAL => 'all'; - use Config; - - sub import { - @INC = @Config{qw(privlibexp archlibexp)}; - return - } - - =head1 NAME - - lib::core::only - Remove all non-core paths from @INC to avoid site/vendor dirs - - =head1 SYNOPSIS - - use lib::core::only; # now @INC contains only the two core directories - - To get only the core directories plus the ones for the local::lib in scope: - - $ perl -mlocal::lib -Mlib::core::only -Mlocal::lib=~/perl5 myscript.pl - - To attempt to do a self-contained build (but note this will not reliably - propagate into subprocesses, see the CAVEATS below): - - $ PERL5OPT='-mlocal::lib -Mlib::core::only -Mlocal::lib=~/perl5' cpan - - Please note that it is necessary to use C<local::lib> twice for this to work. - First so that C<lib::core::only> doesn't prevent C<local::lib> from loading - (it's not currently in core) and then again after C<lib::core::only> so that - the local paths are not removed. - - =head1 DESCRIPTION - - lib::core::only is simply a shortcut to say "please reduce my @INC to only - the core lib and archlib (architecture-specific lib) directories of this perl". - - You might want to do this to ensure a local::lib contains only the code you - need, or to test an L<App::FatPacker|App::FatPacker> tree, or to avoid known - bad vendor packages. - - You might want to use this to try and install a self-contained tree of perl - modules. Be warned that that probably won't work (see L</CAVEATS>). - - This module was extracted from L<local::lib|local::lib>'s --self-contained - feature, and contains the only part that ever worked. I apologise to anybody - who thought anything else did. - - =head1 CAVEATS - - This does B<not> propagate properly across perl invocations like local::lib's - stuff does. It can't. It's only a module import, so it B<only affects the - specific perl VM instance in which you load and import() it>. - - If you want to cascade it across invocations, you can set the PERL5OPT - environment variable to '-Mlib::core::only' and it'll sort of work. But be - aware that taint mode ignores this, so some modules' build and test code - probably will as well. - - You also need to be aware that perl's command line options are not processed - in order - -I options take effect before -M options, so - - perl -Mlib::core::only -Ilib - - is unlike to do what you want - it's exactly equivalent to: - - perl -Mlib::core::only - - If you want to combine a core-only @INC with additional paths, you need to - add the additional paths using -M options and the L<lib|lib> module: - - perl -Mlib::core::only -Mlib=lib - - # or if you're trying to test compiled code: - - perl -Mlib::core::only -Mblib - - For more information on the impossibility of sanely propagating this across - module builds without help from the build program, see - L<http://www.shadowcat.co.uk/blog/matt-s-trout/tainted-love> - and for ways - to achieve the old --self-contained feature's results, look at - L<App::FatPacker|App::FatPacker>'s tree function, and at - L<App::cpanminus|cpanm>'s --local-lib-contained feature. - - =head1 AUTHOR - - Matt S. Trout <mst@shadowcat.co.uk> - - =head1 LICENSE - - This library is free software under the same terms as perl itself. - - =head1 COPYRIGHT - - (c) 2010 the lib::core::only L</AUTHOR> as specified above. - - =cut - - 1; -LIB_CORE_ONLY - -$fatpacked{"local/lib.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'LOCAL_LIB'; - package local::lib; - use 5.006; - use strict; - use warnings; - use Config; - - our $VERSION = '2.000015'; - $VERSION = eval $VERSION; - - BEGIN { - *_WIN32 = ($^O eq 'MSWin32' || $^O eq 'NetWare' || $^O eq 'symbian') - ? sub(){1} : sub(){0}; - # punt on these systems - *_USE_FSPEC = ($^O eq 'MacOS' || $^O eq 'VMS' || $INC{'File/Spec.pm'}) - ? sub(){1} : sub(){0}; - } - our $_DIR_JOIN = _WIN32 ? '\\' : '/'; - our $_DIR_SPLIT = (_WIN32 || $^O eq 'cygwin') ? qr{[\\/]} - : qr{/}; - our $_ROOT = _WIN32 ? do { - my $UNC = qr{[\\/]{2}[^\\/]+[\\/][^\\/]+}; - qr{^(?:$UNC|[A-Za-z]:|)$_DIR_SPLIT}; - } : qr{^/}; - our $_PERL; - - sub _cwd { - my $drive = shift; - if (!$_PERL) { - ($_PERL) = $^X =~ /(.+)/; # $^X is internal how could it be tainted?! - if (_is_abs($_PERL)) { - } - elsif (-x $Config{perlpath}) { - $_PERL = $Config{perlpath}; - } - else { - ($_PERL) = - map { /(.*)/ } - grep { -x $_ } - map { join($_DIR_JOIN, $_, $_PERL) } - split /\Q$Config{path_sep}\E/, $ENV{PATH}; - } - } - local @ENV{qw(PATH IFS CDPATH ENV BASH_ENV)}; - my $cmd = $drive ? "eval { Cwd::getdcwd(q($drive)) }" - : 'getcwd'; - my $cwd = `"$_PERL" -MCwd -le "print $cmd"`; - chomp $cwd; - if (!length $cwd && $drive) { - $cwd = $drive; - } - $cwd =~ s/$_DIR_SPLIT?$/$_DIR_JOIN/; - $cwd; - } - - sub _catdir { - if (_USE_FSPEC) { - require File::Spec; - File::Spec->catdir(@_); - } - else { - my $dir = join($_DIR_JOIN, @_); - $dir =~ s{($_DIR_SPLIT)(?:\.?$_DIR_SPLIT)+}{$1}g; - $dir; - } - } - - sub _is_abs { - if (_USE_FSPEC) { - require File::Spec; - File::Spec->file_name_is_absolute($_[0]); - } - else { - $_[0] =~ $_ROOT; - } - } - - sub _rel2abs { - my ($dir, $base) = @_; - return $dir - if _is_abs($dir); - - $base = _WIN32 && $dir =~ s/^([A-Za-z]:)// ? _cwd("$1") - : $base ? $base - : _cwd; - return _catdir($base, $dir); - } - - sub import { - my ($class, @args) = @_; - push @args, @ARGV - if $0 eq '-'; - - my @steps; - my %opts; - my $shelltype; - - while (@args) { - my $arg = shift @args; - # check for lethal dash first to stop processing before causing problems - # the fancy dash is U+2212 or \xE2\x88\x92 - if ($arg =~ /\xE2\x88\x92/ or $arg =~ /−/) { - die <<'DEATH'; - WHOA THERE! It looks like you've got some fancy dashes in your commandline! - These are *not* the traditional -- dashes that software recognizes. You - probably got these by copy-pasting from the perldoc for this module as - rendered by a UTF8-capable formatter. This most typically happens on an OS X - terminal, but can happen elsewhere too. Please try again after replacing the - dashes with normal minus signs. - DEATH - } - elsif ($arg eq '--self-contained') { - die <<'DEATH'; - FATAL: The local::lib --self-contained flag has never worked reliably and the - original author, Mark Stosberg, was unable or unwilling to maintain it. As - such, this flag has been removed from the local::lib codebase in order to - prevent misunderstandings and potentially broken builds. The local::lib authors - recommend that you look at the lib::core::only module shipped with this - distribution in order to create a more robust environment that is equivalent to - what --self-contained provided (although quite possibly not what you originally - thought it provided due to the poor quality of the documentation, for which we - apologise). - DEATH - } - elsif( $arg =~ /^--deactivate(?:=(.*))?$/ ) { - my $path = defined $1 ? $1 : shift @args; - push @steps, ['deactivate', $path]; - } - elsif ( $arg eq '--deactivate-all' ) { - push @steps, ['deactivate_all']; - } - elsif ( $arg =~ /^--shelltype(?:=(.*))?$/ ) { - $shelltype = defined $1 ? $1 : shift @args; - } - elsif ( $arg eq '--no-create' ) { - $opts{no_create} = 1; - } - elsif ( $arg =~ /^--/ ) { - die "Unknown import argument: $arg"; - } - else { - push @steps, ['activate', $arg]; - } - } - if (!@steps) { - push @steps, ['activate', undef]; - } - - my $self = $class->new(%opts); - - for (@steps) { - my ($method, @args) = @$_; - $self = $self->$method(@args); - } - - if ($0 eq '-') { - print $self->environment_vars_string($shelltype); - exit 0; - } - else { - $self->setup_local_lib; - } - } - - sub new { - my $class = shift; - bless {@_}, $class; - } - - sub clone { - my $self = shift; - bless {%$self, @_}, ref $self; - } - - sub inc { $_[0]->{inc} ||= \@INC } - sub libs { $_[0]->{libs} ||= [ \'PERL5LIB' ] } - sub bins { $_[0]->{bins} ||= [ \'PATH' ] } - sub roots { $_[0]->{roots} ||= [ \'PERL_LOCAL_LIB_ROOT' ] } - sub extra { $_[0]->{extra} ||= {} } - sub no_create { $_[0]->{no_create} } - - my $_archname = $Config{archname}; - my $_version = $Config{version}; - my @_inc_version_list = reverse split / /, $Config{inc_version_list}; - my $_path_sep = $Config{path_sep}; - - sub _as_list { - my $list = shift; - grep length, map { - !(ref $_ && ref $_ eq 'SCALAR') ? $_ : ( - defined $ENV{$$_} ? split(/\Q$_path_sep/, $ENV{$$_}) - : () - ) - } ref $list ? @$list : $list; - } - sub _remove_from { - my ($list, @remove) = @_; - return @$list - if !@remove; - my %remove = map { $_ => 1 } @remove; - grep !$remove{$_}, _as_list($list); - } - - my @_lib_subdirs = ( - [$_version, $_archname], - [$_version], - [$_archname], - (@_inc_version_list ? \@_inc_version_list : ()), - [], - ); - - sub install_base_bin_path { - my ($class, $path) = @_; - return _catdir($path, 'bin'); - } - sub install_base_perl_path { - my ($class, $path) = @_; - return _catdir($path, 'lib', 'perl5'); - } - sub install_base_arch_path { - my ($class, $path) = @_; - _catdir($class->install_base_perl_path($path), $_archname); - } - - sub lib_paths_for { - my ($class, $path) = @_; - my $base = $class->install_base_perl_path($path); - return map { _catdir($base, @$_) } @_lib_subdirs; - } - - sub _mm_escape_path { - my $path = shift; - $path =~ s/\\/\\\\/g; - if ($path =~ s/ /\\ /g) { - $path = qq{"$path"}; - } - return $path; - } - - sub _mb_escape_path { - my $path = shift; - $path =~ s/\\/\\\\/g; - return qq{"$path"}; - } - - sub installer_options_for { - my ($class, $path) = @_; - return ( - PERL_MM_OPT => - defined $path ? "INSTALL_BASE="._mm_escape_path($path) : undef, - PERL_MB_OPT => - defined $path ? "--install_base "._mb_escape_path($path) : undef, - ); - } - - sub active_paths { - my ($self) = @_; - $self = ref $self ? $self : $self->new; - - return grep { - # screen out entries that aren't actually reflected in @INC - my $active_ll = $self->install_base_perl_path($_); - grep { $_ eq $active_ll } @{$self->inc}; - } _as_list($self->roots); - } - - - sub deactivate { - my ($self, $path) = @_; - $self = $self->new unless ref $self; - $path = $self->resolve_path($path); - $path = $self->normalize_path($path); - - my @active_lls = $self->active_paths; - - if (!grep { $_ eq $path } @active_lls) { - warn "Tried to deactivate inactive local::lib '$path'\n"; - return $self; - } - - my %args = ( - bins => [ _remove_from($self->bins, - $self->install_base_bin_path($path)) ], - libs => [ _remove_from($self->libs, - $self->install_base_perl_path($path)) ], - inc => [ _remove_from($self->inc, - $self->lib_paths_for($path)) ], - roots => [ _remove_from($self->roots, $path) ], - ); - - $args{extra} = { $self->installer_options_for($args{roots}[0]) }; - - $self->clone(%args); - } - - sub deactivate_all { - my ($self) = @_; - $self = $self->new unless ref $self; - - my @active_lls = $self->active_paths; - - my %args; - if (@active_lls) { - %args = ( - bins => [ _remove_from($self->bins, - map $self->install_base_bin_path($_), @active_lls) ], - libs => [ _remove_from($self->libs, - map $self->install_base_perl_path($_), @active_lls) ], - inc => [ _remove_from($self->inc, - map $self->lib_paths_for($_), @active_lls) ], - roots => [ _remove_from($self->roots, @active_lls) ], - ); - } - - $args{extra} = { $self->installer_options_for(undef) }; - - $self->clone(%args); - } - - sub activate { - my ($self, $path) = @_; - $self = $self->new unless ref $self; - $path = $self->resolve_path($path); - $self->ensure_dir_structure_for($path) - unless $self->no_create; - - $path = $self->normalize_path($path); - - my @active_lls = $self->active_paths; - - if (grep { $_ eq $path } @active_lls[1 .. $#active_lls]) { - $self = $self->deactivate($path); - } - - my %args; - if (!@active_lls || $active_lls[0] ne $path) { - %args = ( - bins => [ $self->install_base_bin_path($path), @{$self->bins} ], - libs => [ $self->install_base_perl_path($path), @{$self->libs} ], - inc => [ $self->lib_paths_for($path), @{$self->inc} ], - roots => [ $path, @{$self->roots} ], - ); - } - - $args{extra} = { $self->installer_options_for($path) }; - - $self->clone(%args); - } - - sub normalize_path { - my ($self, $path) = @_; - $path = ( Win32::GetShortPathName($path) || $path ) - if $^O eq 'MSWin32'; - return $path; - } - - sub build_environment_vars_for { - my $self = $_[0]->new->activate($_[1]); - $self->build_environment_vars; - } - sub build_activate_environment_vars_for { - my $self = $_[0]->new->activate($_[1]); - $self->build_environment_vars; - } - sub build_deactivate_environment_vars_for { - my $self = $_[0]->new->deactivate($_[1]); - $self->build_environment_vars; - } - sub build_deact_all_environment_vars_for { - my $self = $_[0]->new->deactivate_all; - $self->build_environment_vars; - } - sub build_environment_vars { - my $self = shift; - ( - PATH => join($_path_sep, _as_list($self->bins)), - PERL5LIB => join($_path_sep, _as_list($self->libs)), - PERL_LOCAL_LIB_ROOT => join($_path_sep, _as_list($self->roots)), - %{$self->extra}, - ); - } - - sub setup_local_lib_for { - my $self = $_[0]->new->activate($_[1]); - $self->setup_local_lib; - } - - sub setup_local_lib { - my $self = shift; - - # if Carp is already loaded, ensure Carp::Heavy is also loaded, to avoid - # $VERSION mismatch errors (Carp::Heavy loads Carp, so we do not need to - # check in the other direction) - require Carp::Heavy if $INC{'Carp.pm'}; - - $self->setup_env_hash; - @INC = @{$self->inc}; - } - - sub setup_env_hash_for { - my $self = $_[0]->new->activate($_[1]); - $self->setup_env_hash; - } - sub setup_env_hash { - my $self = shift; - my %env = $self->build_environment_vars; - for my $key (keys %env) { - if (defined $env{$key}) { - $ENV{$key} = $env{$key}; - } - else { - delete $ENV{$key}; - } - } - } - - sub print_environment_vars_for { - print $_[0]->environment_vars_string_for(@_[1..$#_]); - } - - sub environment_vars_string_for { - my $self = $_[0]->new->activate($_[1]); - $self->environment_vars_string; - } - sub environment_vars_string { - my ($self, $shelltype) = @_; - - $shelltype ||= $self->guess_shelltype; - - my $extra = $self->extra; - my @envs = ( - PATH => $self->bins, - PERL5LIB => $self->libs, - PERL_LOCAL_LIB_ROOT => $self->roots, - map { $_ => $extra->{$_} } sort keys %$extra, - ); - $self->_build_env_string($shelltype, \@envs); - } - - sub _build_env_string { - my ($self, $shelltype, $envs) = @_; - my @envs = @$envs; - - my $build_method = "build_${shelltype}_env_declaration"; - - my $out = ''; - while (@envs) { - my ($name, $value) = (shift(@envs), shift(@envs)); - if ( - ref $value - && @$value == 1 - && ref $value->[0] - && ref $value->[0] eq 'SCALAR' - && ${$value->[0]} eq $name) { - next; - } - $out .= $self->$build_method($name, $value); - } - my $wrap_method = "wrap_${shelltype}_output"; - if ($self->can($wrap_method)) { - return $self->$wrap_method($out); - } - return $out; - } - - sub build_bourne_env_declaration { - my ($class, $name, $args) = @_; - my $value = $class->_interpolate($args, '${%s}', qr/["\\\$!`]/, '\\%s'); - - if (!defined $value) { - return qq{unset $name;\n}; - } - - $value =~ s/(^|\G|$_path_sep)\$\{$name\}$_path_sep/$1\${$name}\${$name+$_path_sep}/g; - $value =~ s/$_path_sep\$\{$name\}$/\${$name+$_path_sep}\${$name}/; - - qq{${name}="$value"; export ${name};\n} - } - - sub build_csh_env_declaration { - my ($class, $name, $args) = @_; - my ($value, @vars) = $class->_interpolate($args, '${%s}', '"', '"\\%s"'); - if (!defined $value) { - return qq{unsetenv $name;\n}; - } - - my $out = ''; - for my $var (@vars) { - $out .= qq{if ! \$?$name setenv $name '';\n}; - } - - my $value_without = $value; - if ($value_without =~ s/(?:^|$_path_sep)\$\{$name\}(?:$_path_sep|$)//g) { - $out .= qq{if "\${$name}" != '' setenv $name "$value";\n}; - $out .= qq{if "\${$name}" == '' }; - } - $out .= qq{setenv $name "$value_without";\n}; - return $out; - } - - sub build_cmd_env_declaration { - my ($class, $name, $args) = @_; - my $value = $class->_interpolate($args, '%%%s%%', qr(%), '%s'); - if (!$value) { - return qq{\@set $name=\n}; - } - - my $out = ''; - my $value_without = $value; - if ($value_without =~ s/(?:^|$_path_sep)%$name%(?:$_path_sep|$)//g) { - $out .= qq{\@if not "%$name%"=="" set "$name=$value"\n}; - $out .= qq{\@if "%$name%"=="" }; - } - $out .= qq{\@set "$name=$value_without"\n}; - return $out; - } - - sub build_powershell_env_declaration { - my ($class, $name, $args) = @_; - my $value = $class->_interpolate($args, '$env:%s', '"', '`%s'); - - if (!$value) { - return qq{Remove-Item -ErrorAction 0 Env:\\$name;\n}; - } - - my $maybe_path_sep = qq{\$(if("\$env:$name"-eq""){""}else{"$_path_sep"})}; - $value =~ s/(^|\G|$_path_sep)\$env:$name$_path_sep/$1\$env:$name"+$maybe_path_sep+"/g; - $value =~ s/$_path_sep\$env:$name$/"+$maybe_path_sep+\$env:$name+"/; - - qq{\$env:$name = \$("$value");\n}; - } - sub wrap_powershell_output { - my ($class, $out) = @_; - return $out || " \n"; - } - - sub build_fish_env_declaration { - my ($class, $name, $args) = @_; - my $value = $class->_interpolate($args, '$%s', qr/[\\"' ]/, '\\%s'); - if (!defined $value) { - return qq{set -e $name;\n}; - } - $value =~ s/$_path_sep/ /g; - qq{set -x $name $value;\n}; - } - - sub _interpolate { - my ($class, $args, $var_pat, $escape, $escape_pat) = @_; - return - unless defined $args; - my @args = ref $args ? @$args : $args; - return - unless @args; - my @vars = map { $$_ } grep { ref $_ eq 'SCALAR' } @args; - my $string = join $_path_sep, map { - ref $_ eq 'SCALAR' ? sprintf($var_pat, $$_) : do { - s/($escape)/sprintf($escape_pat, $1)/ge; $_; - }; - } @args; - return wantarray ? ($string, \@vars) : $string; - } - - sub pipeline; - - sub pipeline { - my @methods = @_; - my $last = pop(@methods); - if (@methods) { - \sub { - my ($obj, @args) = @_; - $obj->${pipeline @methods}( - $obj->$last(@args) - ); - }; - } else { - \sub { - shift->$last(@_); - }; - } - } - - sub resolve_path { - my ($class, $path) = @_; - - $path = $class->${pipeline qw( - resolve_relative_path - resolve_home_path - resolve_empty_path - )}($path); - - $path; - } - - sub resolve_empty_path { - my ($class, $path) = @_; - if (defined $path) { - $path; - } else { - '~/perl5'; - } - } - - sub resolve_home_path { - my ($class, $path) = @_; - $path =~ /^~([^\/]*)/ or return $path; - my $user = $1; - my $homedir = do { - if (! length($user) && defined $ENV{HOME}) { - $ENV{HOME}; - } - else { - require File::Glob; - File::Glob::bsd_glob("~$user", File::Glob::GLOB_TILDE()); - } - }; - unless (defined $homedir) { - require Carp; require Carp::Heavy; - Carp::croak( - "Couldn't resolve homedir for " - .(defined $user ? $user : 'current user') - ); - } - $path =~ s/^~[^\/]*/$homedir/; - $path; - } - - sub resolve_relative_path { - my ($class, $path) = @_; - _rel2abs($path); - } - - sub ensure_dir_structure_for { - my ($class, $path) = @_; - unless (-d $path) { - warn "Attempting to create directory ${path}\n"; - } - require File::Basename; - my @dirs; - while(!-d $path) { - push @dirs, $path; - $path = File::Basename::dirname($path); - } - mkdir $_ for reverse @dirs; - return; - } - - sub guess_shelltype { - my $shellbin - = defined $ENV{SHELL} - ? ($ENV{SHELL} =~ /([\w.]+)$/)[-1] - : ( $^O eq 'MSWin32' && exists $ENV{'!EXITCODE'} ) - ? 'bash' - : ( $^O eq 'MSWin32' && $ENV{PROMPT} && $ENV{COMSPEC} ) - ? ($ENV{COMSPEC} =~ /([\w.]+)$/)[-1] - : ( $^O eq 'MSWin32' && !$ENV{PROMPT} ) - ? 'powershell.exe' - : 'sh'; - - for ($shellbin) { - return - /csh$/ ? 'csh' - : /fish/ ? 'fish' - : /command(?:\.com)?$/i ? 'cmd' - : /cmd(?:\.exe)?$/i ? 'cmd' - : /4nt(?:\.exe)?$/i ? 'cmd' - : /powershell(?:\.exe)?$/i ? 'powershell' - : 'bourne'; - } - } - - 1; - __END__ - - =encoding utf8 - - =head1 NAME - - local::lib - create and use a local lib/ for perl modules with PERL5LIB - - =head1 SYNOPSIS - - In code - - - use local::lib; # sets up a local lib at ~/perl5 - - use local::lib '~/foo'; # same, but ~/foo - - # Or... - use FindBin; - use local::lib "$FindBin::Bin/../support"; # app-local support library - - From the shell - - - # Install LWP and its missing dependencies to the '~/perl5' directory - perl -MCPAN -Mlocal::lib -e 'CPAN::install(LWP)' - - # Just print out useful shell commands - $ perl -Mlocal::lib - PERL_MB_OPT='--install_base /home/username/perl5'; export PERL_MB_OPT; - PERL_MM_OPT='INSTALL_BASE=/home/username/perl5'; export PERL_MM_OPT; - PERL5LIB="/home/username/perl5/lib/perl5"; export PERL5LIB; - PATH="/home/username/perl5/bin:$PATH"; export PATH; - PERL_LOCAL_LIB_ROOT="/home/usename/perl5:$PERL_LOCAL_LIB_ROOT"; export PERL_LOCAL_LIB_ROOT; - - From a .bashrc file - - - [ $SHLVL -eq 1 ] && eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)" - - =head2 The bootstrapping technique - - A typical way to install local::lib is using what is known as the - "bootstrapping" technique. You would do this if your system administrator - hasn't already installed local::lib. In this case, you'll need to install - local::lib in your home directory. - - Even if you do have administrative privileges, you will still want to set up your - environment variables, as discussed in step 4. Without this, you would still - install the modules into the system CPAN installation and also your Perl scripts - will not use the lib/ path you bootstrapped with local::lib. - - By default local::lib installs itself and the CPAN modules into ~/perl5. - - Windows users must also see L</Differences when using this module under Win32>. - - =over 4 - - =item 1. - - Download and unpack the local::lib tarball from CPAN (search for "Download" - on the CPAN page about local::lib). Do this as an ordinary user, not as root - or administrator. Unpack the file in your home directory or in any other - convenient location. - - =item 2. - - Run this: - - perl Makefile.PL --bootstrap - - If the system asks you whether it should automatically configure as much - as possible, you would typically answer yes. - - In order to install local::lib into a directory other than the default, you need - to specify the name of the directory when you call bootstrap, as follows: - - perl Makefile.PL --bootstrap=~/foo - - =item 3. - - Run this: (local::lib assumes you have make installed on your system) - - make test && make install - - =item 4. - - Now we need to setup the appropriate environment variables, so that Perl - starts using our newly generated lib/ directory. If you are using bash or - any other Bourne shells, you can add this to your shell startup script this - way: - - echo '[ $SHLVL -eq 1 ] && eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)"' >>~/.bashrc - - If you are using C shell, you can do this as follows: - - /bin/csh - echo $SHELL - /bin/csh - echo 'eval `perl -I$HOME/perl5/lib/perl5 -Mlocal::lib`' >> ~/.cshrc - - If you passed to bootstrap a directory other than default, you also need to - give that as import parameter to the call of the local::lib module like this - way: - - echo '[ $SHLVL -eq 1 ] && eval "$(perl -I$HOME/foo/lib/perl5 -Mlocal::lib=$HOME/foo)"' >>~/.bashrc - - After writing your shell configuration file, be sure to re-read it to get the - changed settings into your current shell's environment. Bourne shells use - C<. ~/.bashrc> for this, whereas C shells use C<source ~/.cshrc>. - - =back - - If you're on a slower machine, or are operating under draconian disk space - limitations, you can disable the automatic generation of manpages from POD when - installing modules by using the C<--no-manpages> argument when bootstrapping: - - perl Makefile.PL --bootstrap --no-manpages - - To avoid doing several bootstrap for several Perl module environments on the - same account, for example if you use it for several different deployed - applications independently, you can use one bootstrapped local::lib - installation to install modules in different directories directly this way: - - cd ~/mydir1 - perl -Mlocal::lib=./ - eval $(perl -Mlocal::lib=./) ### To set the environment for this shell alone - printenv ### You will see that ~/mydir1 is in the PERL5LIB - perl -MCPAN -e install ... ### whatever modules you want - cd ../mydir2 - ... REPEAT ... - - When used in a C<.bashrc> file, it is recommended that you protect against - re-activating a directory in a sub-shell. This can be done by checking the - C<$SHLVL> variable as shown in synopsis. Without this, sub-shells created by - the user or other programs will override changes made to the parent shell's - environment. - - If you are working with several C<local::lib> environments, you may want to - remove some of them from the current environment without disturbing the others. - You can deactivate one environment like this (using bourne sh): - - eval $(perl -Mlocal::lib=--deactivate,~/path) - - which will generate and run the commands needed to remove C<~/path> from your - various search paths. Whichever environment was B<activated most recently> will - remain the target for module installations. That is, if you activate - C<~/path_A> and then you activate C<~/path_B>, new modules you install will go - in C<~/path_B>. If you deactivate C<~/path_B> then modules will be installed - into C<~/pathA> -- but if you deactivate C<~/path_A> then they will still be - installed in C<~/pathB> because pathB was activated later. - - You can also ask C<local::lib> to clean itself completely out of the current - shell's environment with the C<--deactivate-all> option. - For multiple environments for multiple apps you may need to include a modified - version of the C<< use FindBin >> instructions in the "In code" sample above. - If you did something like the above, you have a set of Perl modules at C<< - ~/mydir1/lib >>. If you have a script at C<< ~/mydir1/scripts/myscript.pl >>, - you need to tell it where to find the modules you installed for it at C<< - ~/mydir1/lib >>. - - In C<< ~/mydir1/scripts/myscript.pl >>: - - use strict; - use warnings; - use local::lib "$FindBin::Bin/.."; ### points to ~/mydir1 and local::lib finds lib - use lib "$FindBin::Bin/../lib"; ### points to ~/mydir1/lib - - Put this before any BEGIN { ... } blocks that require the modules you installed. - - =head2 Differences when using this module under Win32 - - To set up the proper environment variables for your current session of - C<CMD.exe>, you can use this: - - C:\>perl -Mlocal::lib - set PERL_MB_OPT=--install_base C:\DOCUME~1\ADMINI~1\perl5 - set PERL_MM_OPT=INSTALL_BASE=C:\DOCUME~1\ADMINI~1\perl5 - set PERL5LIB=C:\DOCUME~1\ADMINI~1\perl5\lib\perl5 - set PATH=C:\DOCUME~1\ADMINI~1\perl5\bin;%PATH% - - ### To set the environment for this shell alone - C:\>perl -Mlocal::lib > %TEMP%\tmp.bat && %TEMP%\tmp.bat && del %TEMP%\tmp.bat - ### instead of $(perl -Mlocal::lib=./) - - If you want the environment entries to persist, you'll need to add them to the - Control Panel's System applet yourself or use L<App::local::lib::Win32Helper>. - - The "~" is translated to the user's profile directory (the directory named for - the user under "Documents and Settings" (Windows XP or earlier) or "Users" - (Windows Vista or later)) unless $ENV{HOME} exists. After that, the home - directory is translated to a short name (which means the directory must exist) - and the subdirectories are created. - - =head3 PowerShell - - local::lib also supports PowerShell, and can be used with the - C<Invoke-Expression> cmdlet. - - Invoke-Expression "$(perl -Mlocal::lib)" - - =head1 RATIONALE - - The version of a Perl package on your machine is not always the version you - need. Obviously, the best thing to do would be to update to the version you - need. However, you might be in a situation where you're prevented from doing - this. Perhaps you don't have system administrator privileges; or perhaps you - are using a package management system such as Debian, and nobody has yet gotten - around to packaging up the version you need. - - local::lib solves this problem by allowing you to create your own directory of - Perl packages downloaded from CPAN (in a multi-user system, this would typically - be within your own home directory). The existing system Perl installation is - not affected; you simply invoke Perl with special options so that Perl uses the - packages in your own local package directory rather than the system packages. - local::lib arranges things so that your locally installed version of the Perl - packages takes precedence over the system installation. - - If you are using a package management system (such as Debian), you don't need to - worry about Debian and CPAN stepping on each other's toes. Your local version - of the packages will be written to an entirely separate directory from those - installed by Debian. - - =head1 DESCRIPTION - - This module provides a quick, convenient way of bootstrapping a user-local Perl - module library located within the user's home directory. It also constructs and - prints out for the user the list of environment variables using the syntax - appropriate for the user's current shell (as specified by the C<SHELL> - environment variable), suitable for directly adding to one's shell - configuration file. - - More generally, local::lib allows for the bootstrapping and usage of a - directory containing Perl modules outside of Perl's C<@INC>. This makes it - easier to ship an application with an app-specific copy of a Perl module, or - collection of modules. Useful in cases like when an upstream maintainer hasn't - applied a patch to a module of theirs that you need for your application. - - On import, local::lib sets the following environment variables to appropriate - values: - - =over 4 - - =item PERL_MB_OPT - - =item PERL_MM_OPT - - =item PERL5LIB - - =item PATH - - =item PERL_LOCAL_LIB_ROOT - - =back - - When possible, these will be appended to instead of overwritten entirely. - - These values are then available for reference by any code after import. - - =head1 CREATING A SELF-CONTAINED SET OF MODULES - - See L<lib::core::only> for one way to do this - but note that - there are a number of caveats, and the best approach is always to perform a - build against a clean perl (i.e. site and vendor as close to empty as possible). - - =head1 IMPORT OPTIONS - - Options are values that can be passed to the C<local::lib> import besides the - directory to use. They are specified as C<use local::lib '--option'[, path];> - or C<perl -Mlocal::lib=--option[,path]>. - - =head2 --deactivate - - Remove the chosen path (or the default path) from the module search paths if it - was added by C<local::lib>, instead of adding it. - - =head2 --deactivate-all - - Remove all directories that were added to search paths by C<local::lib> from the - search paths. - - =head2 --shelltype - - Specify the shell type to use for output. By default, the shell will be - detected based on the environment. Should be one of: C<bourne>, C<csh>, - C<cmd>, or C<powershell>. - - =head2 --no-create - - Prevents C<local::lib> from creating directories when activating dirs. This is - likely to cause issues on Win32 systems. - - =head1 CLASS METHODS - - =head2 ensure_dir_structure_for - - =over 4 - - =item Arguments: $path - - =item Return value: None - - =back - - Attempts to create the given path, and all required parent directories. Throws - an exception on failure. - - =head2 print_environment_vars_for - - =over 4 - - =item Arguments: $path - - =item Return value: None - - =back - - Prints to standard output the variables listed above, properly set to use the - given path as the base directory. - - =head2 build_environment_vars_for - - =over 4 - - =item Arguments: $path - - =item Return value: %environment_vars - - =back - - Returns a hash with the variables listed above, properly set to use the - given path as the base directory. - - =head2 setup_env_hash_for - - =over 4 - - =item Arguments: $path - - =item Return value: None - - =back - - Constructs the C<%ENV> keys for the given path, by calling - L</build_environment_vars_for>. - - =head2 active_paths - - =over 4 - - =item Arguments: None - - =item Return value: @paths - - =back - - Returns a list of active C<local::lib> paths, according to the - C<PERL_LOCAL_LIB_ROOT> environment variable and verified against - what is really in C<@INC>. - - =head2 install_base_perl_path - - =over 4 - - =item Arguments: $path - - =item Return value: $install_base_perl_path - - =back - - Returns a path describing where to install the Perl modules for this local - library installation. Appends the directories C<lib> and C<perl5> to the given - path. - - =head2 lib_paths_for - - =over 4 - - =item Arguments: $path - - =item Return value: @lib_paths - - =back - - Returns the list of paths perl will search for libraries, given a base path. - This includes the base path itself, the architecture specific subdirectory, and - perl version specific subdirectories. These paths may not all exist. - - =head2 install_base_bin_path - - =over 4 - - =item Arguments: $path - - =item Return value: $install_base_bin_path - - =back - - Returns a path describing where to install the executable programs for this - local library installation. Appends the directory C<bin> to the given path. - - =head2 installer_options_for - - =over 4 - - =item Arguments: $path - - =item Return value: %installer_env_vars - - =back - - Returns a hash of environment variables that should be set to cause - installation into the given path. - - =head2 resolve_empty_path - - =over 4 - - =item Arguments: $path - - =item Return value: $base_path - - =back - - Builds and returns the base path into which to set up the local module - installation. Defaults to C<~/perl5>. - - =head2 resolve_home_path - - =over 4 - - =item Arguments: $path - - =item Return value: $home_path - - =back - - Attempts to find the user's home directory. If installed, uses C<File::HomeDir> - for this purpose. If no definite answer is available, throws an exception. - - =head2 resolve_relative_path - - =over 4 - - =item Arguments: $path - - =item Return value: $absolute_path - - =back - - Translates the given path into an absolute path. - - =head2 resolve_path - - =over 4 - - =item Arguments: $path - - =item Return value: $absolute_path - - =back - - Calls the following in a pipeline, passing the result from the previous to the - next, in an attempt to find where to configure the environment for a local - library installation: L</resolve_empty_path>, L</resolve_home_path>, - L</resolve_relative_path>. Passes the given path argument to - L</resolve_empty_path> which then returns a result that is passed to - L</resolve_home_path>, which then has its result passed to - L</resolve_relative_path>. The result of this final call is returned from - L</resolve_path>. - - =head1 OBJECT INTERFACE - - =head2 new - - =over 4 - - =item Arguments: %attributes - - =item Return value: $local_lib - - =back - - Constructs a new C<local::lib> object, representing the current state of - C<@INC> and the relevant environment variables. - - =head1 ATTRIBUTES - - =head2 roots - - An arrayref representing active C<local::lib> directories. - - =head2 inc - - An arrayref representing C<@INC>. - - =head2 libs - - An arrayref representing the PERL5LIB environment variable. - - =head2 bins - - An arrayref representing the PATH environment variable. - - =head2 extra - - A hashref of extra environment variables (e.g. C<PERL_MM_OPT> and - C<PERL_MB_OPT>) - - =head2 no_create - - If set, C<local::lib> will not try to create directories when activating them. - - =head1 OBJECT METHODS - - =head2 clone - - =over 4 - - =item Arguments: %attributes - - =item Return value: $local_lib - - =back - - Constructs a new C<local::lib> object based on the existing one, overriding the - specified attributes. - - =head2 activate - - =over 4 - - =item Arguments: $path - - =item Return value: $new_local_lib - - =back - - Constructs a new instance with the specified path active. - - =head2 deactivate - - =over 4 - - =item Arguments: $path - - =item Return value: $new_local_lib - - =back - - Constructs a new instance with the specified path deactivated. - - =head2 deactivate_all - - =over 4 - - =item Arguments: None - - =item Return value: $new_local_lib - - =back - - Constructs a new instance with all C<local::lib> directories deactivated. - - =head2 environment_vars_string - - =over 4 - - =item Arguments: [ $shelltype ] - - =item Return value: $shell_env_string - - =back - - Returns a string to set up the C<local::lib>, meant to be run by a shell. - - =head2 build_environment_vars - - =over 4 - - =item Arguments: None - - =item Return value: %environment_vars - - =back - - Returns a hash with the variables listed above, properly set to use the - given path as the base directory. - - =head2 setup_env_hash - - =over 4 - - =item Arguments: None - - =item Return value: None - - =back - - Constructs the C<%ENV> keys for the given path, by calling - L</build_environment_vars>. - - =head2 setup_local_lib - - Constructs the C<%ENV> hash using L</setup_env_hash>, and set up C<@INC>. - - =head1 A WARNING ABOUT UNINST=1 - - Be careful about using local::lib in combination with "make install UNINST=1". - The idea of this feature is that will uninstall an old version of a module - before installing a new one. However it lacks a safety check that the old - version and the new version will go in the same directory. Used in combination - with local::lib, you can potentially delete a globally accessible version of a - module while installing the new version in a local place. Only combine "make - install UNINST=1" and local::lib if you understand these possible consequences. - - =head1 LIMITATIONS - - =over 4 - - =item * Directory names with spaces in them are not well supported by the perl - toolchain and the programs it uses. Pure-perl distributions should support - spaces, but problems are more likely with dists that require compilation. A - workaround you can do is moving your local::lib to a directory with spaces - B<after> you installed all modules inside your local::lib bootstrap. But be - aware that you can't update or install CPAN modules after the move. - - =item * Rather basic shell detection. Right now anything with csh in its name is - assumed to be a C shell or something compatible, and everything else is assumed - to be Bourne, except on Win32 systems. If the C<SHELL> environment variable is - not set, a Bourne-compatible shell is assumed. - - =item * Kills any existing PERL_MM_OPT or PERL_MB_OPT. - - =item * Should probably auto-fixup CPAN config if not already done. - - =item * On VMS and MacOS Classic (pre-OS X), local::lib loads L<File::Spec>. - This means any L<File::Spec> version installed in the local::lib will be - ignored by scripts using local::lib. A workaround for this is using - C<use lib "$local_lib/lib/perl5";> instead of using C<local::lib> directly. - - =item * Conflicts with L<ExtUtils::MakeMaker>'s C<PREFIX> option. - C<local::lib> uses the C<INSTALL_BASE> option, as it has more predictable and - sane behavior. If something attempts to use the C<PREFIX> option when running - a F<Makefile.PL>, L<ExtUtils::MakeMaker> will refuse to run, as the two - options conflict. This can be worked around by temporarily unsetting the - C<PERL_MM_OPT> environment variable. - - =item * Conflicts with L<Module::Build>'s C<--prefix> option. Similar to the - previous limitation, but any C<--prefix> option specified will be ignored. - This can be worked around by temporarily unsetting the C<PERL_MB_OPT> - environment variable. - - =back - - Patches very much welcome for any of the above. - - =over 4 - - =item * On Win32 systems, does not have a way to write the created environment - variables to the registry, so that they can persist through a reboot. - - =back - - =head1 TROUBLESHOOTING - - If you've configured local::lib to install CPAN modules somewhere in to your - home directory, and at some point later you try to install a module with C<cpan - -i Foo::Bar>, but it fails with an error like: C<Warning: You do not have - permissions to install into /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux at - /usr/lib64/perl5/5.8.8/Foo/Bar.pm> and buried within the install log is an - error saying C<'INSTALL_BASE' is not a known MakeMaker parameter name>, then - you've somehow lost your updated ExtUtils::MakeMaker module. - - To remedy this situation, rerun the bootstrapping procedure documented above. - - Then, run C<rm -r ~/.cpan/build/Foo-Bar*> - - Finally, re-run C<cpan -i Foo::Bar> and it should install without problems. - - =head1 ENVIRONMENT - - =over 4 - - =item SHELL - - =item COMSPEC - - local::lib looks at the user's C<SHELL> environment variable when printing out - commands to add to the shell configuration file. - - On Win32 systems, C<COMSPEC> is also examined. - - =back - - =head1 SEE ALSO - - =over 4 - - =item * L<Perl Advent article, 2011|http://perladvent.org/2011/2011-12-01.html> - - =back - - =head1 SUPPORT - - IRC: - - Join #local-lib on irc.perl.org. - - =head1 AUTHOR - - Matt S Trout <mst@shadowcat.co.uk> http://www.shadowcat.co.uk/ - - auto_install fixes kindly sponsored by http://www.takkle.com/ - - =head1 CONTRIBUTORS - - Patches to correctly output commands for csh style shells, as well as some - documentation additions, contributed by Christopher Nehren <apeiron@cpan.org>. - - Doc patches for a custom local::lib directory, more cleanups in the english - documentation and a L<german documentation|POD2::DE::local::lib> contributed by - Torsten Raudssus <torsten@raudssus.de>. - - Hans Dieter Pearcey <hdp@cpan.org> sent in some additional tests for ensuring - things will install properly, submitted a fix for the bug causing problems with - writing Makefiles during bootstrapping, contributed an example program, and - submitted yet another fix to ensure that local::lib can install and bootstrap - properly. Many, many thanks! - - pattern of Freenode IRC contributed the beginnings of the Troubleshooting - section. Many thanks! - - Patch to add Win32 support contributed by Curtis Jewell <csjewell@cpan.org>. - - Warnings for missing PATH/PERL5LIB (as when not running interactively) silenced - by a patch from Marco Emilio Poleggi. - - Mark Stosberg <mark@summersault.com> provided the code for the now deleted - '--self-contained' option. - - Documentation patches to make win32 usage clearer by - David Mertens <dcmertens.perl@gmail.com> (run4flat). - - Brazilian L<portuguese translation|POD2::PT_BR::local::lib> and minor doc - patches contributed by Breno G. de Oliveira <garu@cpan.org>. - - Improvements to stacking multiple local::lib dirs and removing them from the - environment later on contributed by Andrew Rodland <arodland@cpan.org>. - - Patch for Carp version mismatch contributed by Hakim Cassimally - <osfameron@cpan.org>. - - Rewrite of internals and numerous bug fixes and added features contributed by - Graham Knop <haarg@haarg.org>. - - =head1 COPYRIGHT - - Copyright (c) 2007 - 2013 the local::lib L</AUTHOR> and L</CONTRIBUTORS> as - listed above. - - =head1 LICENSE - - This is free software; you can redistribute it and/or modify it under - the same terms as the Perl 5 programming language system itself. - - =cut -LOCAL_LIB - -$fatpacked{"parent.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'PARENT'; - package parent; - use strict; - use vars qw($VERSION); - $VERSION = '0.228'; - - sub import { - my $class = shift; - - my $inheritor = caller(0); - - if ( @_ and $_[0] eq '-norequire' ) { - shift @_; - } else { - for ( my @filename = @_ ) { - if ( $_ eq $inheritor ) { - warn "Class '$inheritor' tried to inherit from itself\n"; - }; - - s{::|'}{/}g; - require "$_.pm"; # dies if the file is not found - } - } - - { - no strict 'refs'; - push @{"$inheritor\::ISA"}, @_; - }; - }; - - "All your base are belong to us" - - __END__ - - =encoding utf8 - - =head1 NAME - - parent - Establish an ISA relationship with base classes at compile time - - =head1 SYNOPSIS - - package Baz; - use parent qw(Foo Bar); - - =head1 DESCRIPTION - - Allows you to both load one or more modules, while setting up inheritance from - those modules at the same time. Mostly similar in effect to - - package Baz; - BEGIN { - require Foo; - require Bar; - push @ISA, qw(Foo Bar); - } - - By default, every base class needs to live in a file of its own. - If you want to have a subclass and its parent class in the same file, you - can tell C<parent> not to load any modules by using the C<-norequire> switch: - - package Foo; - sub exclaim { "I CAN HAS PERL" } - - package DoesNotLoadFooBar; - use parent -norequire, 'Foo', 'Bar'; - # will not go looking for Foo.pm or Bar.pm - - This is equivalent to the following code: - - package Foo; - sub exclaim { "I CAN HAS PERL" } - - package DoesNotLoadFooBar; - push @DoesNotLoadFooBar::ISA, 'Foo', 'Bar'; - - This is also helpful for the case where a package lives within - a differently named file: - - package MyHash; - use Tie::Hash; - use parent -norequire, 'Tie::StdHash'; - - This is equivalent to the following code: - - package MyHash; - require Tie::Hash; - push @ISA, 'Tie::StdHash'; - - If you want to load a subclass from a file that C<require> would - not consider an eligible filename (that is, it does not end in - either C<.pm> or C<.pmc>), use the following code: - - package MySecondPlugin; - require './plugins/custom.plugin'; # contains Plugin::Custom - use parent -norequire, 'Plugin::Custom'; - - =head1 DIAGNOSTICS - - =over 4 - - =item Class 'Foo' tried to inherit from itself - - Attempting to inherit from yourself generates a warning. - - package Foo; - use parent 'Foo'; - - =back - - =head1 HISTORY - - This module was forked from L<base> to remove the cruft - that had accumulated in it. - - =head1 CAVEATS - - =head1 SEE ALSO - - L<base> - - =head1 AUTHORS AND CONTRIBUTORS - - Rafaël Garcia-Suarez, Bart Lateur, Max Maischein, Anno Siegel, Michael Schwern - - =head1 MAINTAINER - - Max Maischein C< corion@cpan.org > - - Copyright (c) 2007-10 Max Maischein C<< <corion@cpan.org> >> - Based on the idea of C<base.pm>, which was introduced with Perl 5.004_04. - - =head1 LICENSE - - This module is released under the same terms as Perl itself. - - =cut -PARENT - -$fatpacked{"version.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'VERSION'; - #!perl -w - package version; - - use 5.006002; - use strict; - use warnings::register; - if ($] >= 5.015) { - warnings::register_categories(qw/version/); - } - - use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv); - - $VERSION = 0.9912; - $CLASS = 'version'; - - # !!!!Delete this next block completely when adding to Perl core!!!! - { - local $SIG{'__DIE__'}; - if (1) { # always pretend there's no XS - eval "use version::vpp $VERSION"; # don't tempt fate - die "$@" if ( $@ ); - push @ISA, "version::vpp"; - local $^W; - *version::qv = \&version::vpp::qv; - *version::declare = \&version::vpp::declare; - *version::_VERSION = \&version::vpp::_VERSION; - *version::vcmp = \&version::vpp::vcmp; - *version::new = \&version::vpp::new; - *version::numify = \&version::vpp::numify; - *version::normal = \&version::vpp::normal; - if ($] >= 5.009000) { - no strict 'refs'; - *version::stringify = \&version::vpp::stringify; - *{'version::(""'} = \&version::vpp::stringify; - *{'version::(<=>'} = \&version::vpp::vcmp; - *version::parse = \&version::vpp::parse; - } - } - else { # use XS module - push @ISA, "version::vxs"; - local $^W; - *version::declare = \&version::vxs::declare; - *version::qv = \&version::vxs::qv; - *version::_VERSION = \&version::vxs::_VERSION; - *version::vcmp = \&version::vxs::VCMP; - *version::new = \&version::vxs::new; - *version::numify = \&version::vxs::numify; - *version::normal = \&version::vxs::normal; - if ($] >= 5.009000) { - no strict 'refs'; - *version::stringify = \&version::vxs::stringify; - *{'version::(""'} = \&version::vxs::stringify; - *{'version::(<=>'} = \&version::vxs::VCMP; - *version::parse = \&version::vxs::parse; - } - } - } - - # avoid using Exporter - require version::regex; - *version::is_lax = \&version::regex::is_lax; - *version::is_strict = \&version::regex::is_strict; - *LAX = \$version::regex::LAX; - *STRICT = \$version::regex::STRICT; - - sub import { - no strict 'refs'; - my ($class) = shift; - - # Set up any derived class - unless ($class eq $CLASS) { - local $^W; - *{$class.'::declare'} = \&{$CLASS.'::declare'}; - *{$class.'::qv'} = \&{$CLASS.'::qv'}; - } - - my %args; - if (@_) { # any remaining terms are arguments - map { $args{$_} = 1 } @_ - } - else { # no parameters at all on use line - %args = - ( - qv => 1, - 'UNIVERSAL::VERSION' => 1, - ); - } - - my $callpkg = caller(); - - if (exists($args{declare})) { - *{$callpkg.'::declare'} = - sub {return $class->declare(shift) } - unless defined(&{$callpkg.'::declare'}); - } - - if (exists($args{qv})) { - *{$callpkg.'::qv'} = - sub {return $class->qv(shift) } - unless defined(&{$callpkg.'::qv'}); - } - - if (exists($args{'UNIVERSAL::VERSION'})) { - local $^W; - *UNIVERSAL::VERSION - = \&{$CLASS.'::_VERSION'}; - } - - if (exists($args{'VERSION'})) { - *{$callpkg.'::VERSION'} = \&{$CLASS.'::_VERSION'}; - } - - if (exists($args{'is_strict'})) { - *{$callpkg.'::is_strict'} = \&{$CLASS.'::is_strict'} - unless defined(&{$callpkg.'::is_strict'}); - } - - if (exists($args{'is_lax'})) { - *{$callpkg.'::is_lax'} = \&{$CLASS.'::is_lax'} - unless defined(&{$callpkg.'::is_lax'}); - } - } - - - 1; -VERSION - -$fatpacked{"version/regex.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'VERSION_REGEX'; - package version::regex; - - use strict; - - use vars qw($VERSION $CLASS $STRICT $LAX); - - $VERSION = 0.9912; - - #--------------------------------------------------------------------------# - # Version regexp components - #--------------------------------------------------------------------------# - - # Fraction part of a decimal version number. This is a common part of - # both strict and lax decimal versions - - my $FRACTION_PART = qr/\.[0-9]+/; - - # First part of either decimal or dotted-decimal strict version number. - # Unsigned integer with no leading zeroes (except for zero itself) to - # avoid confusion with octal. - - my $STRICT_INTEGER_PART = qr/0|[1-9][0-9]*/; - - # First part of either decimal or dotted-decimal lax version number. - # Unsigned integer, but allowing leading zeros. Always interpreted - # as decimal. However, some forms of the resulting syntax give odd - # results if used as ordinary Perl expressions, due to how perl treats - # octals. E.g. - # version->new("010" ) == 10 - # version->new( 010 ) == 8 - # version->new( 010.2) == 82 # "8" . "2" - - my $LAX_INTEGER_PART = qr/[0-9]+/; - - # Second and subsequent part of a strict dotted-decimal version number. - # Leading zeroes are permitted, and the number is always decimal. - # Limited to three digits to avoid overflow when converting to decimal - # form and also avoid problematic style with excessive leading zeroes. - - my $STRICT_DOTTED_DECIMAL_PART = qr/\.[0-9]{1,3}/; - - # Second and subsequent part of a lax dotted-decimal version number. - # Leading zeroes are permitted, and the number is always decimal. No - # limit on the numerical value or number of digits, so there is the - # possibility of overflow when converting to decimal form. - - my $LAX_DOTTED_DECIMAL_PART = qr/\.[0-9]+/; - - # Alpha suffix part of lax version number syntax. Acts like a - # dotted-decimal part. - - my $LAX_ALPHA_PART = qr/_[0-9]+/; - - #--------------------------------------------------------------------------# - # Strict version regexp definitions - #--------------------------------------------------------------------------# - - # Strict decimal version number. - - my $STRICT_DECIMAL_VERSION = - qr/ $STRICT_INTEGER_PART $FRACTION_PART? /x; - - # Strict dotted-decimal version number. Must have both leading "v" and - # at least three parts, to avoid confusion with decimal syntax. - - my $STRICT_DOTTED_DECIMAL_VERSION = - qr/ v $STRICT_INTEGER_PART $STRICT_DOTTED_DECIMAL_PART{2,} /x; - - # Complete strict version number syntax -- should generally be used - # anchored: qr/ \A $STRICT \z /x - - $STRICT = - qr/ $STRICT_DECIMAL_VERSION | $STRICT_DOTTED_DECIMAL_VERSION /x; - - #--------------------------------------------------------------------------# - # Lax version regexp definitions - #--------------------------------------------------------------------------# - - # Lax decimal version number. Just like the strict one except for - # allowing an alpha suffix or allowing a leading or trailing - # decimal-point - - my $LAX_DECIMAL_VERSION = - qr/ $LAX_INTEGER_PART (?: \. | $FRACTION_PART $LAX_ALPHA_PART? )? - | - $FRACTION_PART $LAX_ALPHA_PART? - /x; - - # Lax dotted-decimal version number. Distinguished by having either - # leading "v" or at least three non-alpha parts. Alpha part is only - # permitted if there are at least two non-alpha parts. Strangely - # enough, without the leading "v", Perl takes .1.2 to mean v0.1.2, - # so when there is no "v", the leading part is optional - - my $LAX_DOTTED_DECIMAL_VERSION = - qr/ - v $LAX_INTEGER_PART (?: $LAX_DOTTED_DECIMAL_PART+ $LAX_ALPHA_PART? )? - | - $LAX_INTEGER_PART? $LAX_DOTTED_DECIMAL_PART{2,} $LAX_ALPHA_PART? - /x; - - # Complete lax version number syntax -- should generally be used - # anchored: qr/ \A $LAX \z /x - # - # The string 'undef' is a special case to make for easier handling - # of return values from ExtUtils::MM->parse_version - - $LAX = - qr/ undef | $LAX_DECIMAL_VERSION | $LAX_DOTTED_DECIMAL_VERSION /x; - - #--------------------------------------------------------------------------# - - # Preloaded methods go here. - sub is_strict { defined $_[0] && $_[0] =~ qr/ \A $STRICT \z /x } - sub is_lax { defined $_[0] && $_[0] =~ qr/ \A $LAX \z /x } - - 1; -VERSION_REGEX - -$fatpacked{"version/vpp.pm"} = '#line '.(1+__LINE__).' "'.__FILE__."\"\n".<<'VERSION_VPP'; - package charstar; - # a little helper class to emulate C char* semantics in Perl - # so that prescan_version can use the same code as in C - - use overload ( - '""' => \&thischar, - '0+' => \&thischar, - '++' => \&increment, - '--' => \&decrement, - '+' => \&plus, - '-' => \&minus, - '*' => \&multiply, - 'cmp' => \&cmp, - '<=>' => \&spaceship, - 'bool' => \&thischar, - '=' => \&clone, - ); - - sub new { - my ($self, $string) = @_; - my $class = ref($self) || $self; - - my $obj = { - string => [split(//,$string)], - current => 0, - }; - return bless $obj, $class; - } - - sub thischar { - my ($self) = @_; - my $last = $#{$self->{string}}; - my $curr = $self->{current}; - if ($curr >= 0 && $curr <= $last) { - return $self->{string}->[$curr]; - } - else { - return ''; - } - } - - sub increment { - my ($self) = @_; - $self->{current}++; - } - - sub decrement { - my ($self) = @_; - $self->{current}--; - } - - sub plus { - my ($self, $offset) = @_; - my $rself = $self->clone; - $rself->{current} += $offset; - return $rself; - } - - sub minus { - my ($self, $offset) = @_; - my $rself = $self->clone; - $rself->{current} -= $offset; - return $rself; - } - - sub multiply { - my ($left, $right, $swapped) = @_; - my $char = $left->thischar(); - return $char * $right; - } - - sub spaceship { - my ($left, $right, $swapped) = @_; - unless (ref($right)) { # not an object already - $right = $left->new($right); - } - return $left->{current} <=> $right->{current}; - } - - sub cmp { - my ($left, $right, $swapped) = @_; - unless (ref($right)) { # not an object already - if (length($right) == 1) { # comparing single character only - return $left->thischar cmp $right; - } - $right = $left->new($right); - } - return $left->currstr cmp $right->currstr; - } - - sub bool { - my ($self) = @_; - my $char = $self->thischar; - return ($char ne ''); - } - - sub clone { - my ($left, $right, $swapped) = @_; - $right = { - string => [@{$left->{string}}], - current => $left->{current}, - }; - return bless $right, ref($left); - } - - sub currstr { - my ($self, $s) = @_; - my $curr = $self->{current}; - my $last = $#{$self->{string}}; - if (defined($s) && $s->{current} < $last) { - $last = $s->{current}; - } - - my $string = join('', @{$self->{string}}[$curr..$last]); - return $string; - } - - package version::vpp; - - use 5.006002; - use strict; - use warnings::register; - - use Config; - use vars qw($VERSION $CLASS @ISA $LAX $STRICT $WARN_CATEGORY); - $VERSION = 0.9912; - $CLASS = 'version::vpp'; - if ($] > 5.015) { - warnings::register_categories(qw/version/); - $WARN_CATEGORY = 'version'; - } else { - $WARN_CATEGORY = 'numeric'; - } - - require version::regex; - *version::vpp::is_strict = \&version::regex::is_strict; - *version::vpp::is_lax = \&version::regex::is_lax; - *LAX = \$version::regex::LAX; - *STRICT = \$version::regex::STRICT; - - use overload ( - '""' => \&stringify, - '0+' => \&numify, - 'cmp' => \&vcmp, - '<=>' => \&vcmp, - 'bool' => \&vbool, - '+' => \&vnoop, - '-' => \&vnoop, - '*' => \&vnoop, - '/' => \&vnoop, - '+=' => \&vnoop, - '-=' => \&vnoop, - '*=' => \&vnoop, - '/=' => \&vnoop, - 'abs' => \&vnoop, - ); - - sub import { - no strict 'refs'; - my ($class) = shift; - - # Set up any derived class - unless ($class eq $CLASS) { - local $^W; - *{$class.'::declare'} = \&{$CLASS.'::declare'}; - *{$class.'::qv'} = \&{$CLASS.'::qv'}; - } - - my %args; - if (@_) { # any remaining terms are arguments - map { $args{$_} = 1 } @_ - } - else { # no parameters at all on use line - %args = - ( - qv => 1, - 'UNIVERSAL::VERSION' => 1, - ); - } - - my $callpkg = caller(); - - if (exists($args{declare})) { - *{$callpkg.'::declare'} = - sub {return $class->declare(shift) } - unless defined(&{$callpkg.'::declare'}); - } - - if (exists($args{qv})) { - *{$callpkg.'::qv'} = - sub {return $class->qv(shift) } - unless defined(&{$callpkg.'::qv'}); - } - - if (exists($args{'UNIVERSAL::VERSION'})) { - no warnings qw/redefine/; - *UNIVERSAL::VERSION - = \&{$CLASS.'::_VERSION'}; - } - - if (exists($args{'VERSION'})) { - *{$callpkg.'::VERSION'} = \&{$CLASS.'::_VERSION'}; - } - - if (exists($args{'is_strict'})) { - *{$callpkg.'::is_strict'} = \&{$CLASS.'::is_strict'} - unless defined(&{$callpkg.'::is_strict'}); - } - - if (exists($args{'is_lax'})) { - *{$callpkg.'::is_lax'} = \&{$CLASS.'::is_lax'} - unless defined(&{$callpkg.'::is_lax'}); - } - } - - my $VERSION_MAX = 0x7FFFFFFF; - - # implement prescan_version as closely to the C version as possible - use constant TRUE => 1; - use constant FALSE => 0; - - sub isDIGIT { - my ($char) = shift->thischar(); - return ($char =~ /\d/); - } - - sub isALPHA { - my ($char) = shift->thischar(); - return ($char =~ /[a-zA-Z]/); - } - - sub isSPACE { - my ($char) = shift->thischar(); - return ($char =~ /\s/); - } - - sub BADVERSION { - my ($s, $errstr, $error) = @_; - if ($errstr) { - $$errstr = $error; - } - return $s; - } - - sub prescan_version { - my ($s, $strict, $errstr, $sqv, $ssaw_decimal, $swidth, $salpha) = @_; - my $qv = defined $sqv ? $$sqv : FALSE; - my $saw_decimal = defined $ssaw_decimal ? $$ssaw_decimal : 0; - my $width = defined $swidth ? $$swidth : 3; - my $alpha = defined $salpha ? $$salpha : FALSE; - - my $d = $s; - - if ($qv && isDIGIT($d)) { - goto dotted_decimal_version; - } - - if ($d eq 'v') { # explicit v-string - $d++; - if (isDIGIT($d)) { - $qv = TRUE; - } - else { # degenerate v-string - # requires v1.2.3 - return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)"); - } - - dotted_decimal_version: - if ($strict && $d eq '0' && isDIGIT($d+1)) { - # no leading zeros allowed - return BADVERSION($s,$errstr,"Invalid version format (no leading zeros)"); - } - - while (isDIGIT($d)) { # integer part - $d++; - } - - if ($d eq '.') - { - $saw_decimal++; - $d++; # decimal point - } - else - { - if ($strict) { - # require v1.2.3 - return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)"); - } - else { - goto version_prescan_finish; - } - } - - { - my $i = 0; - my $j = 0; - while (isDIGIT($d)) { # just keep reading - $i++; - while (isDIGIT($d)) { - $d++; $j++; - # maximum 3 digits between decimal - if ($strict && $j > 3) { - return BADVERSION($s,$errstr,"Invalid version format (maximum 3 digits between decimals)"); - } - } - if ($d eq '_') { - if ($strict) { - return BADVERSION($s,$errstr,"Invalid version format (no underscores)"); - } - if ( $alpha ) { - return BADVERSION($s,$errstr,"Invalid version format (multiple underscores)"); - } - $d++; - $alpha = TRUE; - } - elsif ($d eq '.') { - if ($alpha) { - return BADVERSION($s,$errstr,"Invalid version format (underscores before decimal)"); - } - $saw_decimal++; - $d++; - } - elsif (!isDIGIT($d)) { - last; - } - $j = 0; - } - - if ($strict && $i < 2) { - # requires v1.2.3 - return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)"); - } - } - } # end if dotted-decimal - else - { # decimal versions - my $j = 0; - # special $strict case for leading '.' or '0' - if ($strict) { - if ($d eq '.') { - return BADVERSION($s,$errstr,"Invalid version format (0 before decimal required)"); - } - if ($d eq '0' && isDIGIT($d+1)) { - return BADVERSION($s,$errstr,"Invalid version format (no leading zeros)"); - } - } - - # and we never support negative version numbers - if ($d eq '-') { - return BADVERSION($s,$errstr,"Invalid version format (negative version number)"); - } - - # consume all of the integer part - while (isDIGIT($d)) { - $d++; - } - - # look for a fractional part - if ($d eq '.') { - # we found it, so consume it - $saw_decimal++; - $d++; - } - elsif (!$d || $d eq ';' || isSPACE($d) || $d eq '}') { - if ( $d == $s ) { - # found nothing - return BADVERSION($s,$errstr,"Invalid version format (version required)"); - } - # found just an integer - goto version_prescan_finish; - } - elsif ( $d == $s ) { - # didn't find either integer or period - return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)"); - } - elsif ($d eq '_') { - # underscore can't come after integer part - if ($strict) { - return BADVERSION($s,$errstr,"Invalid version format (no underscores)"); - } - elsif (isDIGIT($d+1)) { - return BADVERSION($s,$errstr,"Invalid version format (alpha without decimal)"); - } - else { - return BADVERSION($s,$errstr,"Invalid version format (misplaced underscore)"); - } - } - elsif ($d) { - # anything else after integer part is just invalid data - return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)"); - } - - # scan the fractional part after the decimal point - if ($d && !isDIGIT($d) && ($strict || ! ($d eq ';' || isSPACE($d) || $d eq '}') )) { - # $strict or lax-but-not-the-end - return BADVERSION($s,$errstr,"Invalid version format (fractional part required)"); - } - - while (isDIGIT($d)) { - $d++; $j++; - if ($d eq '.' && isDIGIT($d-1)) { - if ($alpha) { - return BADVERSION($s,$errstr,"Invalid version format (underscores before decimal)"); - } - if ($strict) { - return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions must begin with 'v')"); - } - $d = $s; # start all over again - $qv = TRUE; - goto dotted_decimal_version; - } - if ($d eq '_') { - if ($strict) { - return BADVERSION($s,$errstr,"Invalid version format (no underscores)"); - } - if ( $alpha ) { - return BADVERSION($s,$errstr,"Invalid version format (multiple underscores)"); - } - if ( ! isDIGIT($d+1) ) { - return BADVERSION($s,$errstr,"Invalid version format (misplaced underscore)"); - } - $width = $j; - $d++; - $alpha = TRUE; - } - } - } - - version_prescan_finish: - while (isSPACE($d)) { - $d++; - } - - if ($d && !isDIGIT($d) && (! ($d eq ';' || $d eq '}') )) { - # trailing non-numeric data - return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)"); - } - if ($saw_decimal > 1 && ($d-1) eq '.') { - # no trailing period allowed - return BADVERSION($s,$errstr,"Invalid version format (trailing decimal)"); - } - - if (defined $sqv) { - $$sqv = $qv; - } - if (defined $swidth) { - $$swidth = $width; - } - if (defined $ssaw_decimal) { - $$ssaw_decimal = $saw_decimal; - } - if (defined $salpha) { - $$salpha = $alpha; - } - return $d; - } - - sub scan_version { - my ($s, $rv, $qv) = @_; - my $start; - my $pos; - my $last; - my $errstr; - my $saw_decimal = 0; - my $width = 3; - my $alpha = FALSE; - my $vinf = FALSE; - my @av; - - $s = new charstar $s; - - while (isSPACE($s)) { # leading whitespace is OK - $s++; - } - - $last = prescan_version($s, FALSE, \$errstr, \$qv, \$saw_decimal, - \$width, \$alpha); - - if ($errstr) { - # 'undef' is a special case and not an error - if ( $s ne 'undef') { - require Carp; - Carp::croak($errstr); - } - } - - $start = $s; - if ($s eq 'v') { - $s++; - } - $pos = $s; - - if ( $qv ) { - $$rv->{qv} = $qv; - } - if ( $alpha ) { - $$rv->{alpha} = $alpha; - } - if ( !$qv && $width < 3 ) { - $$rv->{width} = $width; - } - - while (isDIGIT($pos)) { - $pos++; - } - if (!isALPHA($pos)) { - my $rev; - - for (;;) { - $rev = 0; - { - # this is atoi() that delimits on underscores - my $end = $pos; - my $mult = 1; - my $orev; - - # the following if() will only be true after the decimal - # point of a version originally created with a bare - # floating point number, i.e. not quoted in any way - # - if ( !$qv && $s > $start && $saw_decimal == 1 ) { - $mult *= 100; - while ( $s < $end ) { - $orev = $rev; - $rev += $s * $mult; - $mult /= 10; - if ( (abs($orev) > abs($rev)) - || (abs($rev) > $VERSION_MAX )) { - warn("Integer overflow in version %d", - $VERSION_MAX); - $s = $end - 1; - $rev = $VERSION_MAX; - $vinf = 1; - } - $s++; - if ( $s eq '_' ) { - $s++; - } - } - } - else { - while (--$end >= $s) { - $orev = $rev; - $rev += $end * $mult; - $mult *= 10; - if ( (abs($orev) > abs($rev)) - || (abs($rev) > $VERSION_MAX )) { - warn("Integer overflow in version"); - $end = $s - 1; - $rev = $VERSION_MAX; - $vinf = 1; - } - } - } - } - - # Append revision - push @av, $rev; - if ( $vinf ) { - $s = $last; - last; - } - elsif ( $pos eq '.' ) { - $pos++; - if ($qv) { - # skip leading zeros - while ($pos eq '0') { - $pos++; - } - } - $s = $pos; - } - elsif ( $pos eq '_' && isDIGIT($pos+1) ) { - $s = ++$pos; - } - elsif ( $pos eq ',' && isDIGIT($pos+1) ) { - $s = ++$pos; - } - elsif ( isDIGIT($pos) ) { - $s = $pos; - } - else { - $s = $pos; - last; - } - if ( $qv ) { - while ( isDIGIT($pos) ) { - $pos++; - } - } - else { - my $digits = 0; - while ( ( isDIGIT($pos) || $pos eq '_' ) && $digits < 3 ) { - if ( $pos ne '_' ) { - $digits++; - } - $pos++; - } - } - } - } - if ( $qv ) { # quoted versions always get at least three terms - my $len = $#av; - # This for loop appears to trigger a compiler bug on OS X, as it - # loops infinitely. Yes, len is negative. No, it makes no sense. - # Compiler in question is: - # gcc version 3.3 20030304 (Apple Computer, Inc. build 1640) - # for ( len = 2 - len; len > 0; len-- ) - # av_push(MUTABLE_AV(sv), newSViv(0)); - # - $len = 2 - $len; - while ($len-- > 0) { - push @av, 0; - } - } - - # need to save off the current version string for later - if ( $vinf ) { - $$rv->{original} = "v.Inf"; - $$rv->{vinf} = 1; - } - elsif ( $s > $start ) { - $$rv->{original} = $start->currstr($s); - if ( $qv && $saw_decimal == 1 && $start ne 'v' ) { - # need to insert a v to be consistent - $$rv->{original} = 'v' . $$rv->{original}; - } - } - else { - $$rv->{original} = '0'; - push(@av, 0); - } - - # And finally, store the AV in the hash - $$rv->{version} = \@av; - - # fix RT#19517 - special case 'undef' as string - if ($s eq 'undef') { - $s += 5; - } - - return $s; - } - - sub new { - my $class = shift; - unless (defined $class or $#_ > 1) { - require Carp; - Carp::croak('Usage: version::new(class, version)'); - } - - my $self = bless ({}, ref ($class) || $class); - my $qv = FALSE; - - if ( $#_ == 1 ) { # must be CVS-style - $qv = TRUE; - } - my $value = pop; # always going to be the last element - - if ( ref($value) && eval('$value->isa("version")') ) { - # Can copy the elements directly - $self->{version} = [ @{$value->{version} } ]; - $self->{qv} = 1 if $value->{qv}; - $self->{alpha} = 1 if $value->{alpha}; - $self->{original} = ''.$value->{original}; - return $self; - } - - if ( not defined $value or $value =~ /^undef$/ ) { - # RT #19517 - special case for undef comparison - # or someone forgot to pass a value - push @{$self->{version}}, 0; - $self->{original} = "0"; - return ($self); - } - - - if (ref($value) =~ m/ARRAY|HASH/) { - require Carp; - Carp::croak("Invalid version format (non-numeric data)"); - } - - $value = _un_vstring($value); - - if ($Config{d_setlocale}) { - use POSIX qw/locale_h/; - use if $Config{d_setlocale}, 'locale'; - my $currlocale = setlocale(LC_ALL); - - # if the current locale uses commas for decimal points, we - # just replace commas with decimal places, rather than changing - # locales - if ( localeconv()->{decimal_point} eq ',' ) { - $value =~ tr/,/./; - } - } - - # exponential notation - if ( $value =~ /\d+.?\d*e[-+]?\d+/ ) { - $value = sprintf("%.9f",$value); - $value =~ s/(0+)$//; # trim trailing zeros - } - - my $s = scan_version($value, \$self, $qv); - - if ($s) { # must be something left over - warn("Version string '%s' contains invalid data; " - ."ignoring: '%s'", $value, $s); - } - - return ($self); - } - - *parse = \&new; - - sub numify { - my ($self) = @_; - unless (_verify($self)) { - require Carp; - Carp::croak("Invalid version object"); - } - my $width = $self->{width} || 3; - my $alpha = $self->{alpha} || ""; - my $len = $#{$self->{version}}; - my $digit = $self->{version}[0]; - my $string = sprintf("%d.", $digit ); - - if ($alpha and warnings::enabled()) { - warnings::warn($WARN_CATEGORY, 'alpha->numify() is lossy'); - } - - for ( my $i = 1 ; $i < $len ; $i++ ) { - $digit = $self->{version}[$i]; - if ( $width < 3 ) { - my $denom = 10**(3-$width); - my $quot = int($digit/$denom); - my $rem = $digit - ($quot * $denom); - $string .= sprintf("%0".$width."d_%d", $quot, $rem); - } - else { - $string .= sprintf("%03d", $digit); - } - } - - if ( $len > 0 ) { - $digit = $self->{version}[$len]; - if ( $alpha && $width == 3 ) { - $string .= "_"; - } - $string .= sprintf("%0".$width."d", $digit); - } - else # $len = 0 - { - $string .= sprintf("000"); - } - - return $string; - } - - sub normal { - my ($self) = @_; - unless (_verify($self)) { - require Carp; - Carp::croak("Invalid version object"); - } - my $alpha = $self->{alpha} || ""; - my $qv = $self->{qv} || ""; - - my $len = $#{$self->{version}}; - my $digit = $self->{version}[0]; - my $string = sprintf("v%d", $digit ); - - for ( my $i = 1 ; $i < $len ; $i++ ) { - $digit = $self->{version}[$i]; - $string .= sprintf(".%d", $digit); - } - - if ( $len > 0 ) { - $digit = $self->{version}[$len]; - if ( $alpha ) { - $string .= sprintf("_%0d", $digit); - } - else { - $string .= sprintf(".%0d", $digit); - } - } - - if ( $len <= 2 ) { - for ( $len = 2 - $len; $len != 0; $len-- ) { - $string .= sprintf(".%0d", 0); - } - } - - return $string; - } - - sub stringify { - my ($self) = @_; - unless (_verify($self)) { - require Carp; - Carp::croak("Invalid version object"); - } - return exists $self->{original} - ? $self->{original} - : exists $self->{qv} - ? $self->normal - : $self->numify; - } - - sub vcmp { - require UNIVERSAL; - my ($left,$right,$swap) = @_; - my $class = ref($left); - unless ( UNIVERSAL::isa($right, $class) ) { - $right = $class->new($right); - } - - if ( $swap ) { - ($left, $right) = ($right, $left); - } - unless (_verify($left)) { - require Carp; - Carp::croak("Invalid version object"); - } - unless (_verify($right)) { - require Carp; - Carp::croak("Invalid version format"); - } - my $l = $#{$left->{version}}; - my $r = $#{$right->{version}}; - my $m = $l < $r ? $l : $r; - my $lalpha = $left->is_alpha; - my $ralpha = $right->is_alpha; - my $retval = 0; - my $i = 0; - while ( $i <= $m && $retval == 0 ) { - $retval = $left->{version}[$i] <=> $right->{version}[$i]; - $i++; - } - - # tiebreaker for alpha with identical terms - if ( $retval == 0 - && $l == $r - && $left->{version}[$m] == $right->{version}[$m] - && ( $lalpha || $ralpha ) ) { - - if ( $lalpha && !$ralpha ) { - $retval = -1; - } - elsif ( $ralpha && !$lalpha) { - $retval = +1; - } - } - - # possible match except for trailing 0's - if ( $retval == 0 && $l != $r ) { - if ( $l < $r ) { - while ( $i <= $r && $retval == 0 ) { - if ( $right->{version}[$i] != 0 ) { - $retval = -1; # not a match after all - } - $i++; - } - } - else { - while ( $i <= $l && $retval == 0 ) { - if ( $left->{version}[$i] != 0 ) { - $retval = +1; # not a match after all - } - $i++; - } - } - } - - return $retval; - } - - sub vbool { - my ($self) = @_; - return vcmp($self,$self->new("0"),1); - } - - sub vnoop { - require Carp; - Carp::croak("operation not supported with version object"); - } - - sub is_alpha { - my ($self) = @_; - return (exists $self->{alpha}); - } - - sub qv { - my $value = shift; - my $class = $CLASS; - if (@_) { - $class = ref($value) || $value; - $value = shift; - } - - $value = _un_vstring($value); - $value = 'v'.$value unless $value =~ /(^v|\d+\.\d+\.\d)/; - my $obj = $CLASS->new($value); - return bless $obj, $class; - } - - *declare = \&qv; - - sub is_qv { - my ($self) = @_; - return (exists $self->{qv}); - } - - - sub _verify { - my ($self) = @_; - if ( ref($self) - && eval { exists $self->{version} } - && ref($self->{version}) eq 'ARRAY' - ) { - return 1; - } - else { - return 0; - } - } - - sub _is_non_alphanumeric { - my $s = shift; - $s = new charstar $s; - while ($s) { - return 0 if isSPACE($s); # early out - return 1 unless (isALPHA($s) || isDIGIT($s) || $s =~ /[.-]/); - $s++; - } - return 0; - } - - sub _un_vstring { - my $value = shift; - # may be a v-string - if ( length($value) >= 1 && $value !~ /[,._]/ - && _is_non_alphanumeric($value)) { - my $tvalue; - if ( $] >= 5.008_001 ) { - $tvalue = _find_magic_vstring($value); - $value = $tvalue if length $tvalue; - } - elsif ( $] >= 5.006_000 ) { - $tvalue = sprintf("v%vd",$value); - if ( $tvalue =~ /^v\d+(\.\d+)*$/ ) { - # must be a v-string - $value = $tvalue; - } - } - } - return $value; - } - - sub _find_magic_vstring { - my $value = shift; - my $tvalue = ''; - require B; - my $sv = B::svref_2object(\$value); - my $magic = ref($sv) eq 'B::PVMG' ? $sv->MAGIC : undef; - while ( $magic ) { - if ( $magic->TYPE eq 'V' ) { - $tvalue = $magic->PTR; - $tvalue =~ s/^v?(.+)$/v$1/; - last; - } - else { - $magic = $magic->MOREMAGIC; - } - } - return $tvalue; - } - - sub _VERSION { - my ($obj, $req) = @_; - my $class = ref($obj) || $obj; - - no strict 'refs'; - if ( exists $INC{"$class.pm"} and not %{"$class\::"} and $] >= 5.008) { - # file but no package - require Carp; - Carp::croak( "$class defines neither package nor VERSION" - ."--version check failed"); - } - - my $version = eval "\$$class\::VERSION"; - if ( defined $version ) { - local $^W if $] <= 5.008; - $version = version::vpp->new($version); - } - - if ( defined $req ) { - unless ( defined $version ) { - require Carp; - my $msg = $] < 5.006 - ? "$class version $req required--this is only version " - : "$class does not define \$$class\::VERSION" - ."--version check failed"; - - if ( $ENV{VERSION_DEBUG} ) { - Carp::confess($msg); - } - else { - Carp::croak($msg); - } - } - - $req = version::vpp->new($req); - - if ( $req > $version ) { - require Carp; - if ( $req->is_qv ) { - Carp::croak( - sprintf ("%s version %s required--". - "this is only version %s", $class, - $req->normal, $version->normal) - ); - } - else { - Carp::croak( - sprintf ("%s version %s required--". - "this is only version %s", $class, - $req->stringify, $version->stringify) - ); - } - } - } - - return defined $version ? $version->stringify : undef; - } - - 1; #this line is important and will help the module return a true value -VERSION_VPP - -s/^ //mg for values %fatpacked; - -my $class = 'FatPacked::'.(0+\%fatpacked); -no strict 'refs'; -*{"${class}::files"} = sub { keys %{$_[0]} }; - -if ($] < 5.008) { - *{"${class}::INC"} = sub { - if (my $fat = $_[0]{$_[1]}) { - my $pos = 0; - my $last = length $fat; - return (sub { - return 0 if $pos == $last; - my $next = (1 + index $fat, "\n", $pos) || $last; - $_ .= substr $fat, $pos, $next - $pos; - $pos = $next; - return 1; - }); - } - }; -} - -else { - *{"${class}::INC"} = sub { - if (my $fat = $_[0]{$_[1]}) { - open my $fh, '<', \$fat - or die "FatPacker error loading $_[1] (could be a perl installation issue?)"; - return $fh; - } - return; - }; -} - -unshift @INC, bless \%fatpacked, $class; - } # END OF FATPACK CODE - - - -use strict; -use App::cpanminus::script; - - -unless (caller) { - my $app = App::cpanminus::script->new; - $app->parse_options(@ARGV); - exit $app->doit; -} - -__END__ - -=head1 NAME - -cpanm - get, unpack build and install modules from CPAN - -=head1 SYNOPSIS - - cpanm Test::More # install Test::More - cpanm MIYAGAWA/Plack-0.99_05.tar.gz # full distribution path - cpanm http://example.org/LDS/CGI.pm-3.20.tar.gz # install from URL - cpanm ~/dists/MyCompany-Enterprise-1.00.tar.gz # install from a local file - cpanm --interactive Task::Kensho # Configure interactively - cpanm . # install from local directory - cpanm --installdeps . # install all the deps for the current directory - cpanm -L extlib Plack # install Plack and all non-core deps into extlib - cpanm --mirror http://cpan.cpantesters.org/ DBI # use the fast-syncing mirror - cpanm --from https://cpan.metacpan.org/ Plack # use only the HTTPS mirror - -=head1 COMMANDS - -=over 4 - -=item (arguments) - -Command line arguments can be either a module name, distribution file, -local file path, HTTP URL or git repository URL. Following commands -will all work as you expect. - - cpanm Plack - cpanm Plack/Request.pm - cpanm MIYAGAWA/Plack-1.0000.tar.gz - cpanm /path/to/Plack-1.0000.tar.gz - cpanm http://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Plack-0.9990.tar.gz - cpanm git://github.com/plack/Plack.git - -Additionally, you can use the notation using C<~> and C<@> to specify -version for a given module. C<~> specifies the version requirement in -the L<CPAN::Meta::Spec> format, while C<@> pins the exact version, and -is a shortcut for C<~"== VERSION">. - - cpanm Plack~1.0000 # 1.0000 or later - cpanm Plack~">= 1.0000, < 2.0000" # latest of 1.xxxx - cpanm Plack@0.9990 # specific version. same as Plack~"== 0.9990" - -The version query including specific version or range will be sent to -L<MetaCPAN> to search for previous releases. The query will search for -BackPAN archives by default, unless you specify C<--dev> option, in -which case, archived versions will be filtered out. - -For a git repository, you can specify a branch, tag, or commit SHA to -build. The default is C<master> - - cpanm git://github.com/plack/Plack.git@1.0000 # tag - cpanm git://github.com/plack/Plack.git@devel # branch - -=item -i, --install - -Installs the modules. This is a default behavior and this is just a -compatibility option to make it work like L<cpan> or L<cpanp>. - -=item --self-upgrade - -Upgrades itself. It's just an alias for: - - cpanm App::cpanminus - -=item --info - -Displays the distribution information in -C<AUTHOR/Dist-Name-ver.tar.gz> format in the standard out. - -=item --installdeps - -Installs the dependencies of the target distribution but won't build -itself. Handy if you want to try the application from a version -controlled repository such as git. - - cpanm --installdeps . - -=item --look - -Download and unpack the distribution and then open the directory with -your shell. Handy to poke around the source code or do manual -testing. - -=item -h, --help - -Displays the help message. - -=item -V, --version - -Displays the version number. - -=back - -=head1 OPTIONS - -You can specify the default options in C<PERL_CPANM_OPT> environment variable. - -=over 4 - -=item -f, --force - -Force install modules even when testing failed. - -=item -n, --notest - -Skip the testing of modules. Use this only when you just want to save -time for installing hundreds of distributions to the same perl and -architecture you've already tested to make sure it builds fine. - -Defaults to false, and you can say C<--no-notest> to override when it -is set in the default options in C<PERL_CPANM_OPT>. - -=item --test-only - -Run the tests only, and do not install the specified module or -distributions. Handy if you want to verify the new (or even old) -releases pass its unit tests without installing the module. - -Note that if you specify this option with a module or distribution -that has dependencies, these dependencies will be installed if you -don't currently have them. - -=item -S, --sudo - -Switch to the root user with C<sudo> when installing modules. Use this -if you want to install modules to the system perl include path. - -Defaults to false, and you can say C<--no-sudo> to override when it is -set in the default options in C<PERL_CPANM_OPT>. - -=item -v, --verbose - -Makes the output verbose. It also enables the interactive -configuration. (See --interactive) - -=item -q, --quiet - -Makes the output even more quiet than the default. It only shows the -successful/failed dependencies to the output. - -=item -l, --local-lib - -Sets the L<local::lib> compatible path to install modules to. You -don't need to set this if you already configure the shell environment -variables using L<local::lib>, but this can be used to override that -as well. - -=item -L, --local-lib-contained - -Same with C<--local-lib> but with L<--self-contained> set. All -non-core dependencies will be installed even if they're already -installed. - -For instance, - - cpanm -L extlib Plack - -would install Plack and all of its non-core dependencies into the -directory C<extlib>, which can be loaded from your application with: - - use local::lib '/path/to/extlib'; - -Note that this option does B<NOT> reliably work with perl installations -supplied by operating system vendors that strips standard modules from perl, -such as RHEL, Fedora and CentOS, B<UNLESS> you also install packages supplying -all the modules that have been stripped. For these systems you will probably -want to install the C<perl-core> meta-package which does just that. - -=item --self-contained - -When examining the dependencies, assume no non-core modules are -installed on the system. Handy if you want to bundle application -dependencies in one directory so you can distribute to other machines. - -=item --exclude-vendor - -Don't include modules installed under the 'vendor' paths when searching for -core modules when the C<--self-contained> flag is in effect. This restores -the behaviour from before version 1.7023 - -=item --mirror - -Specifies the base URL for the CPAN mirror to use, such as -C<http://cpan.cpantesters.org/> (you can omit the trailing slash). You -can specify multiple mirror URLs by repeating the command line option. - -You can use a local directory that has a CPAN mirror structure -(created by tools such as L<OrePAN> or L<Pinto>) by using a special -URL scheme C<file://>. If the given URL begins with `/` (without any -scheme), it is considered as a file scheme as well. - - cpanm --mirror file:///path/to/mirror - cpanm --mirror ~/minicpan # Because shell expands ~ to /home/user - -Defaults to C<http://www.cpan.org/>. - -=item --mirror-only - -Download the mirror's 02packages.details.txt.gz index file instead of -querying the CPAN Meta DB. This will also effectively opt out sending -your local perl versions to backend database servers such as CPAN Meta -DB and MetaCPAN. - -Select this option if you are using a local mirror of CPAN, such as -minicpan when you're offline, or your own CPAN index (a.k.a darkpan). - -=item --from, -M - - cpanm -M https://cpan.metacpan.org/ - cpanm --from https://cpan.metacpan.org/ - -Use the given mirror URL and its index as the I<only> source to search -and download modules from. - -It works similar to C<--mirror> and C<--mirror-only> combined, with a -small difference: unlike C<--mirror> which I<appends> the URL to the -list of mirrors, C<--from> (or C<-M> for short) uses the specified URL -as its I<only> source to download index and modules from. This makes -the option always override the default mirror, which might have been -set via global options such as the one set by C<PERL_CPANM_OPT> -environment variable. - -B<Tip:> It might be useful if you name these options with your shell -aliases, like: - - alias minicpanm='cpanm --from ~/minicpan' - alias darkpan='cpanm --from http://mycompany.example.com/DPAN' - -=item --mirror-index - -B<EXPERIMENTAL>: Specifies the file path to C<02packages.details.txt> -for module search index. - -=item --cpanmetadb - -B<EXPERIMENTAL>: Specifies an alternate URI for CPAN MetaDB index lookups. - -=item --metacpan - -Prefers MetaCPAN API over CPAN MetaDB. - -=item --cpanfile - -B<EXPERIMENTAL>: Specified an alternate path for cpanfile to search for, -when C<--installdeps> command is in use. Defaults to C<cpanfile>. - -=item --prompt - -Prompts when a test fails so that you can skip, force install, retry -or look in the shell to see what's going wrong. It also prompts when -one of the dependency failed if you want to proceed the installation. - -Defaults to false, and you can say C<--no-prompt> to override if it's -set in the default options in C<PERL_CPANM_OPT>. - -=item --dev - -B<EXPERIMENTAL>: search for a newer developer release as well. Defaults to false. - -=item --reinstall - -cpanm, when given a module name in the command line (i.e. C<cpanm -Plack>), checks the locally installed version first and skips if it is -already installed. This option makes it skip the check, so: - - cpanm --reinstall Plack - -would reinstall L<Plack> even if your locally installed version is -latest, or even newer (which would happen if you install a developer -release from version control repositories). - -Defaults to false. - -=item --interactive - -Makes the configuration (such as C<Makefile.PL> and C<Build.PL>) -interactive, so you can answer questions in the distribution that -requires custom configuration or Task:: distributions. - -Defaults to false, and you can say C<--no-interactive> to override -when it's set in the default options in C<PERL_CPANM_OPT>. - -=item --pp, --pureperl - -Prefer Pure perl build of modules by setting C<PUREPERL_ONLY=1> for -MakeMaker and C<--pureperl-only> for Build.PL based -distributions. Note that not all of the CPAN modules support this -convention yet. - -=item --with-recommends, --with-suggests - -B<EXPERIMENTAL>: Installs dependencies declared as C<recommends> and -C<suggests> respectively, per META spec. When these dependencies fail -to install, cpanm continues the installation, since they're just -recommendation/suggestion. - -Enabling this could potentially make a circular dependency for a few -modules on CPAN, when C<recommends> adds a module that C<recommends> -back the module in return. - -There's also C<--without-recommend> and C<--without-suggests> to -override the default decision made earlier in C<PERL_CPANM_OPT>. - -Defaults to false for both. - -=item --with-develop - -B<EXPERIMENTAL>: Installs develop phase dependencies in META files or -C<cpanfile> when used with C<--installdeps>. Defaults to false. - -=item --with-configure - -B<EXPERIMENTAL>: Installs configure phase dependencies in C<cpanfile> -when used with C<--installdeps>. Defaults to false. - -=item --with-feature, --without-feature, --with-all-features - -B<EXPERIMENTAL>: Specifies the feature to enable, if a module supports -optional features per META spec 2.0. - - cpanm --with-feature=opt_csv Spreadsheet::Read - -the features can also be interactively chosen when C<--interactive> -option is enabled. - -C<--with-all-features> enables all the optional features, and -C<--without-feature> can select a feature to disable. - -=item --configure-timeout, --build-timeout, --test-timeout - -Specify the timeout length (in seconds) to wait for the configure, -build and test process. Current default values are: 60 for configure, -3600 for build and 1800 for test. - -=item --configure-args, --build-args, --test-args, --install-args - -B<EXPERIMENTAL>: Pass arguments for configure/build/test/install -commands respectively, for a given module to install. - - cpanm DBD::mysql --configure-args="--cflags=... --libs=..." - -The argument is only enabled for the module passed as a command line -argument, not dependencies. - -=item --scandeps - -B<DEPRECATED>: Scans the depencencies of given modules and output the -tree in a text format. (See C<--format> below for more options) - -Because this command doesn't actually install any distributions, it -will be useful that by typing: - - cpanm --scandeps Catalyst::Runtime - -you can make sure what modules will be installed. - -This command takes into account which modules you already have -installed in your system. If you want to see what modules will be -installed against a vanilla perl installation, you might want to -combine it with C<-L> option. - -=item --format - -B<DEPRECATED>: Determines what format to display the scanned -dependency tree. Available options are C<tree>, C<json>, C<yaml> and -C<dists>. - -=over 8 - -=item tree - -Displays the tree in a plain text format. This is the default value. - -=item json, yaml - -Outputs the tree in a JSON or YAML format. L<JSON> and L<YAML> modules -need to be installed respectively. The output tree is represented as a -recursive tuple of: - - [ distribution, dependencies ] - -and the container is an array containing the root elements. Note that -there may be multiple root nodes, since you can give multiple modules -to the C<--scandeps> command. - -=item dists - -C<dists> is a special output format, where it prints the distribution -filename in the I<depth first order> after the dependency resolution, -like: - - GAAS/MIME-Base64-3.13.tar.gz - GAAS/URI-1.58.tar.gz - PETDANCE/HTML-Tagset-3.20.tar.gz - GAAS/HTML-Parser-3.68.tar.gz - GAAS/libwww-perl-5.837.tar.gz - -which means you can install these distributions in this order without -extra dependencies. When combined with C<-L> option, it will be useful -to replay installations on other machines. - -=back - -=item --save-dists - -Specifies the optional directory path to copy downloaded tarballs in -the CPAN mirror compatible directory structure -i.e. I<authors/id/A/AU/AUTHORS/Foo-Bar-version.tar.gz> - -If the distro tarball did not come from CPAN, for example from a local -file or from GitHub, then it will be saved under -I<vendor/Foo-Bar-version.tar.gz>. - -=item --uninst-shadows - -Uninstalls the shadow files of the distribution that you're -installing. This eliminates the confusion if you're trying to install -core (dual-life) modules from CPAN against perl 5.10 or older, or -modules that used to be XS-based but switched to pure perl at some -version. - -If you run cpanm as root and use C<INSTALL_BASE> or equivalent to -specify custom installation path, you SHOULD disable this option so -you won't accidentally uninstall dual-life modules from the core -include path. - -Defaults to true if your perl version is smaller than 5.12, and you -can disable that with C<--no-uninst-shadows>. - -B<NOTE>: Since version 1.3000 this flag is turned off by default for -perl newer than 5.12, since with 5.12 @INC contains site_perl directory -I<before> the perl core library path, and uninstalling shadows is not -necessary anymore and does more harm by deleting files from the core -library path. - -=item --uninstall, -U - -Uninstalls a module from the library path. It finds a packlist for -given modules, and removes all the files included in the same -distribution. - -If you enable local::lib, it only removes files from the local::lib -directory. - -If you try to uninstall a module in C<perl> directory (i.e. core -module), an error will be thrown. - -A dialog will be prompted to confirm the files to be deleted. If you pass -C<-f> option as well, the dialog will be skipped and uninstallation -will be forced. - -=item --cascade-search - -B<EXPERIMENTAL>: Specifies whether to cascade search when you specify -multiple mirrors and a mirror doesn't have a module or has a lower -version of the module than requested. Defaults to false. - -=item --skip-installed - -Specifies whether a module given in the command line is skipped if its latest -version is already installed. Defaults to true. - -B<NOTE>: The C<PERL5LIB> environment variable have to be correctly set -for this to work with modules installed using L<local::lib>, unless -you always use the C<-l> option. - -=item --skip-satisfied - -B<EXPERIMENTAL>: Specifies whether a module (and version) given in the -command line is skipped if it's already installed. - -If you run: - - cpanm --skip-satisfied CGI DBI~1.2 - -cpanm won't install them if you already have CGI (for whatever -versions) or have DBI with version higher than 1.2. It is similar to -C<--skip-installed> but while C<--skip-installed> checks if the -I<latest> version of CPAN is installed, C<--skip-satisfied> checks if -a requested version (or not, which means any version) is installed. - -Defaults to false. - -=item --verify - -Verify the integrity of distribution files retrieved from PAUSE using -CHECKSUMS and SIGNATURES (if found). Defaults to false. - -=item --report-perl-version - -Whether it reports the locally installed perl version to the various -web server as part of User-Agent. Defaults to true unless CI related -environment variables such as C<TRAVIS>, C<CI> or C<AUTOMATED_TESTING> -is enabled. You can disable it by using C<--no-report-perl-version>. - -=item --auto-cleanup - -Specifies the number of days in which cpanm's work directories -expire. Defaults to 7, which means old work directories will be -cleaned up in one week. - -You can set the value to C<0> to make cpan never cleanup those -directories. - -=item --man-pages - -Generates man pages for executables (man1) and libraries (man3). - -Defaults to true (man pages generated) unless C<-L|--local-lib-contained> -option is supplied in which case it's set to false. You can disable -it with C<--no-man-pages>. - -=item --lwp - -Uses L<LWP> module to download stuff over HTTP. Defaults to true, and -you can say C<--no-lwp> to disable using LWP, when you want to upgrade -LWP from CPAN on some broken perl systems. - -=item --wget - -Uses GNU Wget (if available) to download stuff. Defaults to true, and -you can say C<--no-wget> to disable using Wget (versions of Wget older -than 1.9 don't support the C<--retry-connrefused> option used by cpanm). - -=item --curl - -Uses cURL (if available) to download stuff. Defaults to true, and -you can say C<--no-curl> to disable using cURL. - -Normally with C<--lwp>, C<--wget> and C<--curl> options set to true -(which is the default) cpanm tries L<LWP>, Wget, cURL and L<HTTP::Tiny> -(in that order) and uses the first one available. - -=back - -=head1 ENVIRONMENT VARIABLES - -=over 4 - -=item PERL_CPANM_HOME - -The directory cpanm should use to store downloads and build and test -modules. Defaults to the C<.cpanm> directory in your user's home -directory. - -=item PERL_CPANM_OPT - -If set, adds a set of default options to every cpanm command. These -options come first, and so are overridden by command-line options. - -=back - -=head1 SEE ALSO - -L<App::cpanminus> - -=head1 COPYRIGHT - -Copyright 2010- Tatsuhiko Miyagawa. - -=head1 AUTHOR - -Tatsuhiko Miyagawa - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Crypt/CBC.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Crypt/CBC.pm deleted file mode 100644 index 39ff251d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Crypt/CBC.pm +++ /dev/null @@ -1,1064 +0,0 @@ -package Crypt::CBC; - -use Digest::MD5 'md5'; -use Carp; -use strict; -use bytes; -use vars qw($VERSION); -$VERSION = '2.33'; - -use constant RANDOM_DEVICE => '/dev/urandom'; - -sub new { - my $class = shift; - - my $options = {}; - - # hashref arguments - if (ref $_[0] eq 'HASH') { - $options = shift; - } - - # CGI style arguments - elsif ($_[0] =~ /^-[a-zA-Z_]{1,20}$/) { - my %tmp = @_; - while ( my($key,$value) = each %tmp) { - $key =~ s/^-//; - $options->{lc $key} = $value; - } - } - - else { - $options->{key} = shift; - $options->{cipher} = shift; - } - - my $cipher_object_provided = $options->{cipher} && ref $options->{cipher}; - - # "key" is a misnomer here, because it is actually usually a passphrase that is used - # to derive the true key - my $pass = $options->{key}; - - if ($cipher_object_provided) { - carp "Both a key and a pre-initialized Crypt::* object were passed. The key will be ignored" - if defined $pass; - $pass ||= ''; - } - elsif (!defined $pass) { - croak "Please provide an encryption/decryption passphrase or key using -key" - } - - # header mode - my %valid_modes = map {$_=>1} qw(none salt randomiv); - my $header_mode = $options->{header}; - $header_mode ||= 'none' if exists $options->{prepend_iv} && !$options->{prepend_iv}; - $header_mode ||= 'none' if exists $options->{add_header} && !$options->{add_header}; - $header_mode ||= 'salt'; # default - croak "Invalid -header mode '$header_mode'" unless $valid_modes{$header_mode}; - - croak "The -salt argument is incompatible with a -header mode of $header_mode" - if exists $options->{salt} && $header_mode ne 'salt'; - - my $cipher = $options->{cipher}; - $cipher = 'Crypt::DES' unless $cipher; - my $cipherclass = ref $cipher || $cipher; - - unless (ref $cipher) { # munge the class name if no object passed - $cipher = $cipher=~/^Crypt::/ ? $cipher : "Crypt::$cipher"; - $cipher->can('encrypt') or eval "require $cipher; 1" or croak "Couldn't load $cipher: $@"; - # some crypt modules use the class Crypt::, and others don't - $cipher =~ s/^Crypt::// unless $cipher->can('keysize'); - } - - # allow user to override these values - my $ks = $options->{keysize}; - my $bs = $options->{blocksize}; - - # otherwise we get the values from the cipher - $ks ||= eval {$cipher->keysize}; - $bs ||= eval {$cipher->blocksize}; - - # Some of the cipher modules are busted and don't report the - # keysize (well, Crypt::Blowfish in any case). If we detect - # this, and find the blowfish module in use, then assume 56. - # Otherwise assume the least common denominator of 8. - $ks ||= $cipherclass =~ /blowfish/i ? 56 : 8; - $bs ||= $ks; - - my $pcbc = $options->{'pcbc'}; - - # Default behavior is to treat -key as a passphrase. - # But if the literal_key option is true, then use key as is - croak "The options -literal_key and -regenerate_key are incompatible with each other" - if exists $options->{literal_key} && exists $options->{regenerate_key}; - my $key; - $key = $pass if $options->{literal_key}; - $key = $pass if exists $options->{regenerate_key} && !$options->{regenerate_key}; - - # Get the salt. - my $salt = $options->{salt}; - my $random_salt = 1 unless defined $salt && $salt ne '1'; - croak "Argument to -salt must be exactly 8 bytes long" if defined $salt && length $salt != 8 && $salt ne '1'; - - # note: iv will be autogenerated by start() if not specified in options - my $iv = $options->{iv}; - my $random_iv = 1 unless defined $iv; - croak "Initialization vector must be exactly $bs bytes long when using the $cipherclass cipher" if defined $iv and length($iv) != $bs; - - my $literal_key = $options->{literal_key} || (exists $options->{regenerate_key} && !$options->{regenerate_key}); - my $legacy_hack = $options->{insecure_legacy_decrypt}; - my $padding = $options->{padding} || 'standard'; - - if ($padding && ref($padding) eq 'CODE') { - # check to see that this code does its padding correctly - for my $i (1..$bs-1) { - my $rbs = length($padding->(" "x$i,$bs,'e')); - croak "padding method callback does not behave properly: expected $bs bytes back, got $rbs bytes back." - unless ($rbs == $bs); - } - } else { - $padding = $padding eq 'none' ? \&_no_padding - :$padding eq 'null' ? \&_null_padding - :$padding eq 'space' ? \&_space_padding - :$padding eq 'oneandzeroes' ? \&_oneandzeroes_padding - :$padding eq 'rijndael_compat'? \&_rijndael_compat - :$padding eq 'standard' ? \&_standard_padding - :croak "'$padding' padding not supported. See perldoc Crypt::CBC for instructions on creating your own."; - } - - # CONSISTENCY CHECKS - # HEADER consistency - if ($header_mode eq 'salt') { - croak "Cannot use salt-based key generation if literal key is specified" - if $options->{literal_key}; - croak "Cannot use salt-based IV generation if literal IV is specified" - if exists $options->{iv}; - } - elsif ($header_mode eq 'randomiv') { - croak "Cannot encrypt using a non-8 byte blocksize cipher when using randomiv header mode" - unless $bs == 8 || $legacy_hack; - } - elsif ($header_mode eq 'none') { - croak "You must provide an initialization vector using -iv when using -header=>'none'" - unless exists $options->{iv}; - } - - # KEYSIZE consistency - if (defined $key && length($key) != $ks) { - croak "If specified by -literal_key, then the key length must be equal to the chosen cipher's key length of $ks bytes"; - } - - # IV consistency - if (defined $iv && length($iv) != $bs) { - croak "If specified by -iv, then the initialization vector length must be equal to the chosen cipher's blocksize of $bs bytes"; - } - - - return bless {'cipher' => $cipher, - 'passphrase' => $pass, - 'key' => $key, - 'iv' => $iv, - 'salt' => $salt, - 'padding' => $padding, - 'blocksize' => $bs, - 'keysize' => $ks, - 'header_mode' => $header_mode, - 'legacy_hack' => $legacy_hack, - 'literal_key' => $literal_key, - 'pcbc' => $pcbc, - 'make_random_salt' => $random_salt, - 'make_random_iv' => $random_iv, - },$class; -} - -sub encrypt (\$$) { - my ($self,$data) = @_; - $self->start('encrypting'); - my $result = $self->crypt($data); - $result .= $self->finish; - $result; -} - -sub decrypt (\$$){ - my ($self,$data) = @_; - $self->start('decrypting'); - my $result = $self->crypt($data); - $result .= $self->finish; - $result; -} - -sub encrypt_hex (\$$) { - my ($self,$data) = @_; - return join('',unpack 'H*',$self->encrypt($data)); -} - -sub decrypt_hex (\$$) { - my ($self,$data) = @_; - return $self->decrypt(pack'H*',$data); -} - -# call to start a series of encryption/decryption operations -sub start (\$$) { - my $self = shift; - my $operation = shift; - croak "Specify <e>ncryption or <d>ecryption" unless $operation=~/^[ed]/i; - - $self->{'buffer'} = ''; - $self->{'decrypt'} = $operation=~/^d/i; -} - -# call to encrypt/decrypt a bit of data -sub crypt (\$$){ - my $self = shift; - my $data = shift; - - my $result; - - croak "crypt() called without a preceding start()" - unless exists $self->{'buffer'}; - - my $d = $self->{'decrypt'}; - - unless ($self->{civ}) { # block cipher has not yet been initialized - $result = $self->_generate_iv_and_cipher_from_datastream(\$data) if $d; - $result = $self->_generate_iv_and_cipher_from_options() unless $d; - } - - my $iv = $self->{'civ'}; - $self->{'buffer'} .= $data; - - my $bs = $self->{'blocksize'}; - - croak "When using no padding, plaintext size must be a multiple of $bs" - if $self->{'padding'} eq \&_no_padding - and length($data) % $bs; - - croak "When using rijndael_compat padding, plaintext size must be a multiple of $bs" - if $self->{'padding'} eq \&_rijndael_compat - and length($data) % $bs; - - return $result unless (length($self->{'buffer'}) >= $bs); - - my @blocks = unpack("a$bs "x(int(length($self->{'buffer'})/$bs)) . "a*", $self->{'buffer'}); - $self->{'buffer'} = ''; - - if ($d) { # when decrypting, always leave a free block at the end - $self->{'buffer'} = length($blocks[-1]) < $bs ? join '',splice(@blocks,-2) : pop(@blocks); - } else { - $self->{'buffer'} = pop @blocks if length($blocks[-1]) < $bs; # what's left over - } - - foreach my $block (@blocks) { - if ($d) { # decrypting - $result .= $iv = $iv ^ $self->{'crypt'}->decrypt($block); - $iv = $block unless $self->{pcbc}; - } else { # encrypting - $result .= $iv = $self->{'crypt'}->encrypt($iv ^ $block); - } - $iv = $iv ^ $block if $self->{pcbc}; - } - $self->{'civ'} = $iv; # remember the iv - return $result; -} - -# this is called at the end to flush whatever's left -sub finish (\$) { - my $self = shift; - my $bs = $self->{'blocksize'}; - my $block = defined $self->{'buffer'} ? $self->{'buffer'} : ''; - - $self->{civ} ||= ''; - - my $result; - if ($self->{'decrypt'}) { #decrypting - $block = length $block ? pack("a$bs",$block) : ''; # pad and truncate to block size - - if (length($block)) { - $result = $self->{'civ'} ^ $self->{'crypt'}->decrypt($block); - $result = $self->{'padding'}->($result, $bs, 'd'); - } else { - $result = ''; - } - - } else { # encrypting - $block = $self->{'padding'}->($block,$bs,'e') || ''; - $result = length $block ? $self->{'crypt'}->encrypt($self->{'civ'} ^ $block) : ''; - } - delete $self->{'civ'}; - delete $self->{'buffer'}; - return $result; -} - -# this subroutine will generate the actual {en,de}cryption key, the iv -# and the block cipher object. This is called when reading from a datastream -# and so it uses previous values of salt or iv if they are encoded in datastream -# header -sub _generate_iv_and_cipher_from_datastream { - my $self = shift; - my $input_stream = shift; - my $bs = $self->blocksize; - - # use our header mode to figure out what to do with the data stream - my $header_mode = $self->header_mode; - - if ($header_mode eq 'none') { - croak "You must specify a $bs byte initialization vector by passing the -iv option to new() when using -header_mode=>'none'" - unless exists $self->{iv}; - $self->{civ} = $self->{iv}; # current IV equals saved IV - $self->{key} ||= $self->_key_from_key($self->{passphrase}); - } - - elsif ($header_mode eq 'salt') { - my ($salt) = $$input_stream =~ /^Salted__(.{8})/s; - croak "Ciphertext does not begin with a valid header for 'salt' header mode" unless defined $salt; - $self->{salt} = $salt; # new salt - substr($$input_stream,0,16) = ''; - my ($key,$iv) = $self->_salted_key_and_iv($self->{passphrase},$salt); - $self->{iv} = $self->{civ} = $iv; - $self->{key} = $key; - } - - elsif ($header_mode eq 'randomiv') { - my ($iv) = $$input_stream =~ /^RandomIV(.{8})/s; - croak "Ciphertext does not begin with a valid header for 'randomiv' header mode" unless defined $iv; - croak "randomiv header mode cannot be used securely when decrypting with a >8 byte block cipher.\nUse the -insecure_legacy_decrypt flag if you are sure you want to do this" unless $self->blocksize == 8 || $self->legacy_hack; - $self->{iv} = $self->{civ} = $iv; - $self->{key} = $self->_key_from_key($self->{passphrase}); - undef $self->{salt}; # paranoia - substr($$input_stream,0,16) = ''; # truncate - } - - else { - croak "Invalid header mode '$header_mode'"; - } - - # we should have the key and iv now, or we are dead in the water - croak "Cipher stream did not contain IV or salt, and you did not specify these values in new()" - unless $self->{key} && $self->{civ}; - - # now we can generate the crypt object itself - $self->{crypt} = ref $self->{cipher} ? $self->{cipher} - : $self->{cipher}->new($self->{key}) - or croak "Could not create $self->{cipher} object: $@"; - return ''; -} - -sub _generate_iv_and_cipher_from_options { - my $self = shift; - my $blocksize = $self->blocksize; - - my $result = ''; - - my $header_mode = $self->header_mode; - if ($header_mode eq 'none') { - croak "You must specify a $blocksize byte initialization vector by passing the -iv option to new() when using -header_mode=>'none'" - unless exists $self->{iv}; - $self->{civ} = $self->{iv}; - $self->{key} ||= $self->_key_from_key($self->{passphrase}); - } - - elsif ($header_mode eq 'salt') { - $self->{salt} = $self->_get_random_bytes(8) if $self->{make_random_salt}; - defined (my $salt = $self->{salt}) or croak "No header_mode of 'salt' specified, but no salt value provided"; # shouldn't happen - length($salt) == 8 or croak "Salt must be exactly 8 bytes long"; - my ($key,$iv) = $self->_salted_key_and_iv($self->{passphrase},$salt); - $self->{key} = $key; - $self->{civ} = $self->{iv} = $iv; - $result = "Salted__${salt}"; - } - - elsif ($header_mode eq 'randomiv') { - croak "randomiv header mode cannot be used when encrypting with a >8 byte block cipher. There is no option to allow this" - unless $blocksize == 8; - $self->{key} ||= $self->_key_from_key($self->{passphrase}); - $self->{iv} = $self->_get_random_bytes(8) if $self->{make_random_iv}; - length($self->{iv}) == 8 or croak "IV must be exactly 8 bytes long when used with header mode of 'randomiv'"; - $self->{civ} = $self->{iv}; - $result = "RandomIV$self->{iv}"; - } - - croak "key and/or iv are missing" unless defined $self->{key} && defined $self->{civ}; - - $self->_taintcheck($self->{key}); - $self->{crypt} = ref $self->{cipher} ? $self->{cipher} - : $self->{cipher}->new($self->{key}) - or croak "Could not create $self->{cipher} object: $@"; - return $result; -} - -sub _taintcheck { - my $self = shift; - my $key = shift; - return unless ${^TAINT}; - - my $has_scalar_util = eval "require Scalar::Util; 1"; - my $tainted; - - - if ($has_scalar_util) { - $tainted = Scalar::Util::tainted($key); - } else { - local($@, $SIG{__DIE__}, $SIG{__WARN__}); - local $^W = 0; - eval { kill 0 * $key }; - $tainted = $@ =~ /^Insecure/; - } - - croak "Taint checks are turned on and your key is tainted. Please untaint the key and try again" - if $tainted; -} - -sub _key_from_key { - my $self = shift; - my $pass = shift; - my $ks = $self->{keysize}; - - return $pass if $self->{literal_key}; - - my $material = md5($pass); - while (length($material) < $ks) { - $material .= md5($material); - } - return substr($material,0,$ks); -} - -sub _salted_key_and_iv { - my $self = shift; - my ($pass,$salt) = @_; - - croak "Salt must be 8 bytes long" unless length $salt == 8; - - my $key_len = $self->{keysize}; - my $iv_len = $self->{blocksize}; - - my $desired_len = $key_len+$iv_len; - - my $data = ''; - my $d = ''; - - while (length $data < $desired_len) { - $d = md5($d . $pass . $salt); - $data .= $d; - } - return (substr($data,0,$key_len),substr($data,$key_len,$iv_len)); -} - -sub random_bytes { - my $self = shift; - my $bytes = shift or croak "usage: random_bytes(\$byte_length)"; - $self->_get_random_bytes($bytes); -} - -sub _get_random_bytes { - my $self = shift; - my $length = shift; - my $result; - - if (-r RANDOM_DEVICE && open(F,RANDOM_DEVICE)) { - read(F,$result,$length); - close F; - } else { - $result = pack("C*",map {rand(256)} 1..$length); - } - # Clear taint and check length - $result =~ /^(.+)$/s; - length($1) == $length or croak "Invalid length while gathering $length random bytes"; - return $1; -} - -sub _standard_padding ($$$) { - my ($b,$bs,$decrypt) = @_; - $b = length $b ? $b : ''; - if ($decrypt eq 'd') { - my $pad_length = unpack("C",substr($b,-1)); - - # sanity check for implementations that don't pad correctly - return $b unless $pad_length >= 0 && $pad_length <= $bs; - my @pad_chars = unpack("C*",substr($b,-$pad_length)); - return $b if grep {$pad_length != $_} @pad_chars; - - return substr($b,0,$bs-$pad_length); - } - my $pad = $bs - length($b) % $bs; - return $b . pack("C*",($pad)x$pad); -} - -sub _space_padding ($$$) { - my ($b,$bs,$decrypt) = @_; - return unless length $b; - $b = length $b ? $b : ''; - if ($decrypt eq 'd') { - $b=~ s/ *\z//s; - return $b; - } - return $b . pack("C*", (32) x ($bs - length($b) % $bs)); -} - -sub _no_padding ($$$) { - my ($b,$bs,$decrypt) = @_; - return $b; -} - -sub _null_padding ($$$) { - my ($b,$bs,$decrypt) = @_; - return unless length $b; - $b = length $b ? $b : ''; - if ($decrypt eq 'd') { - $b=~ s/\0*\z//s; - return $b; - } - return $b . pack("C*", (0) x ($bs - length($b) % $bs)); -} - -sub _oneandzeroes_padding ($$$) { - my ($b,$bs,$decrypt) = @_; - $b = length $b ? $b : ''; - if ($decrypt eq 'd') { - $b=~ s/\x80\0*\z//s; - return $b; - } - return $b . pack("C*", 128, (0) x ($bs - length($b) % $bs - 1) ); -} - -sub _rijndael_compat ($$$) { - my ($b,$bs,$decrypt) = @_; - return unless length $b; - if ($decrypt eq 'd') { - $b=~ s/\x80\0*\z//s; - return $b; - } - return $b . pack("C*", 128, (0) x ($bs - length($b) % $bs - 1) ); -} - -sub get_initialization_vector (\$) { - my $self = shift; - $self->iv(); -} - -sub set_initialization_vector (\$$) { - my $self = shift; - my $iv = shift; - my $bs = $self->blocksize; - croak "Initialization vector must be $bs bytes in length" unless length($iv) == $bs; - $self->iv($iv); -} - -sub salt { - my $self = shift; - my $d = $self->{salt}; - $self->{salt} = shift if @_; - $d; -} - -sub iv { - my $self = shift; - my $d = $self->{iv}; - $self->{iv} = shift if @_; - $d; -} - -sub key { - my $self = shift; - my $d = $self->{key}; - $self->{key} = shift if @_; - $d; -} - -sub passphrase { - my $self = shift; - my $d = $self->{passphrase}; - if (@_) { - undef $self->{key}; - undef $self->{iv}; - $self->{passphrase} = shift; - } - $d; -} - -sub cipher { shift->{cipher} } -sub padding { shift->{padding} } -sub keysize { shift->{keysize} } -sub blocksize { shift->{blocksize} } -sub pcbc { shift->{pcbc} } -sub header_mode {shift->{header_mode} } -sub legacy_hack { shift->{legacy_hack} } - -1; -__END__ - -=head1 NAME - -Crypt::CBC - Encrypt Data with Cipher Block Chaining Mode - -=head1 SYNOPSIS - - use Crypt::CBC; - $cipher = Crypt::CBC->new( -key => 'my secret key', - -cipher => 'Blowfish' - ); - - $ciphertext = $cipher->encrypt("This data is hush hush"); - $plaintext = $cipher->decrypt($ciphertext); - - $cipher->start('encrypting'); - open(F,"./BIG_FILE"); - while (read(F,$buffer,1024)) { - print $cipher->crypt($buffer); - } - print $cipher->finish; - - # do-it-yourself mode -- specify key, initialization vector yourself - $key = Crypt::CBC->random_bytes(8); # assuming a 8-byte block cipher - $iv = Crypt::CBC->random_bytes(8); - $cipher = Crypt::CBC->new(-literal_key => 1, - -key => $key, - -iv => $iv, - -header => 'none'); - - $ciphertext = $cipher->encrypt("This data is hush hush"); - $plaintext = $cipher->decrypt($ciphertext); - - # RANDOMIV-compatible mode - $cipher = Crypt::CBC->new(-key => 'Super Secret!' - -header => 'randomiv'); - - -=head1 DESCRIPTION - -This module is a Perl-only implementation of the cryptographic cipher -block chaining mode (CBC). In combination with a block cipher such as -DES or IDEA, you can encrypt and decrypt messages of arbitrarily long -length. The encrypted messages are compatible with the encryption -format used by the B<OpenSSL> package. - -To use this module, you will first create a Crypt::CBC cipher object -with new(). At the time of cipher creation, you specify an encryption -key to use and, optionally, a block encryption algorithm. You will -then call the start() method to initialize the encryption or -decryption process, crypt() to encrypt or decrypt one or more blocks -of data, and lastly finish(), to pad and encrypt the final block. For -your convenience, you can call the encrypt() and decrypt() methods to -operate on a whole data value at once. - -=head2 new() - - $cipher = Crypt::CBC->new( -key => 'my secret key', - -cipher => 'Blowfish', - ); - - # or (for compatibility with versions prior to 2.13) - $cipher = Crypt::CBC->new( { - key => 'my secret key', - cipher => 'Blowfish' - } - ); - - - # or (for compatibility with versions prior to 2.0) - $cipher = new Crypt::CBC('my secret key' => 'Blowfish'); - -The new() method creates a new Crypt::CBC object. It accepts a list of --argument => value pairs selected from the following list: - - Argument Description - -------- ----------- - - -key The encryption/decryption key (required) - - -cipher The cipher algorithm (defaults to Crypt::DES), or - a preexisting cipher object. - - -salt Enables OpenSSL-compatibility. If equal to a value - of "1" then causes a random salt to be generated - and used to derive the encryption key and IV. Other - true values are taken to be the literal salt. - - -iv The initialization vector (IV) - - -header What type of header to prepend to ciphertext. One of - 'salt' -- use OpenSSL-compatible salted header - 'randomiv' -- Randomiv-compatible "RandomIV" header - 'none' -- prepend no header at all - - -padding The padding method, one of "standard" (default), - "space", "oneandzeroes", "rijndael_compat", - "null", or "none" (default "standard"). - - -literal_key If true, the key provided by "key" is used directly - for encryption/decryption. Otherwise the actual - key used will be a hash of the provided key. - (default false) - - -pcbc Whether to use the PCBC chaining algorithm rather than - the standard CBC algorithm (default false). - - -keysize Force the cipher keysize to the indicated number of bytes. - - -blocksize Force the cipher blocksize to the indicated number of bytes. - - -insecure_legacy_decrypt - Allow decryption of data encrypted using the "RandomIV" header - produced by pre-2.17 versions of Crypt::CBC. - - -add_header [deprecated; use -header instread] - Whether to add the salt and IV to the header of the output - cipher text. - - -regenerate_key [deprecated; use literal_key instead] - Whether to use a hash of the provided key to generate - the actual encryption key (default true) - - -prepend_iv [deprecated; use add_header instead] - Whether to prepend the IV to the beginning of the - encrypted stream (default true) - -Crypt::CBC requires three pieces of information to do its job. First -it needs the name of the block cipher algorithm that will encrypt or -decrypt the data in blocks of fixed length known as the cipher's -"blocksize." Second, it needs an encryption/decryption key to pass to -the block cipher. Third, it needs an initialization vector (IV) that -will be used to propagate information from one encrypted block to the -next. Both the key and the IV must be exactly the same length as the -chosen cipher's blocksize. - -Crypt::CBC can derive the key and the IV from a passphrase that you -provide, or can let you specify the true key and IV manually. In -addition, you have the option of embedding enough information to -regenerate the IV in a short header that is emitted at the start of -the encrypted stream, or outputting a headerless encryption stream. In -the first case, Crypt::CBC will be able to decrypt the stream given -just the original key or passphrase. In the second case, you will have -to provide the original IV as well as the key/passphrase. - -The B<-cipher> option specifies which block cipher algorithm to use to -encode each section of the message. This argument is optional and -will default to the quick-but-not-very-secure DES algorithm unless -specified otherwise. You may use any compatible block encryption -algorithm that you have installed. Currently, this includes -Crypt::DES, Crypt::DES_EDE3, Crypt::IDEA, Crypt::Blowfish, -Crypt::CAST5 and Crypt::Rijndael. You may refer to them using their -full names ("Crypt::IDEA") or in abbreviated form ("IDEA"). - -Instead of passing the name of a cipher class, you may pass an -already-created block cipher object. This allows you to take advantage -of cipher algorithms that have parameterized new() methods, such as -Crypt::Eksblowfish: - - my $eksblowfish = Crypt::Eksblowfish->new(8,$salt,$key); - my $cbc = Crypt::CBC->new(-cipher=>$eksblowfish); - -The B<-key> argument provides either a passphrase to use to generate -the encryption key, or the literal value of the block cipher key. If -used in passphrase mode (which is the default), B<-key> can be any -number of characters; the actual key will be derived by passing the -passphrase through a series of MD5 hash operations. To take full -advantage of a given block cipher, the length of the passphrase should -be at least equal to the cipher's blocksize. To skip this hashing -operation and specify the key directly, pass a true value to the -B<-literal_key> option. In this case, you should choose a key of -length exactly equal to the cipher's key length. You should also -specify the IV yourself and a -header mode of 'none'. - -If you pass an existing Crypt::* object to new(), then the -key -argument is ignored and the module will generate a warning. - -The B<-header> argument specifies what type of header, if any, to -prepend to the beginning of the encrypted data stream. The header -allows Crypt::CBC to regenerate the original IV and correctly decrypt -the data without your having to provide the same IV used to encrypt -the data. Valid values for the B<-header> are: - - "salt" -- Combine the passphrase with an 8-byte random value to - generate both the block cipher key and the IV from the - provided passphrase. The salt will be appended to the - beginning of the data stream allowing decryption to - regenerate both the key and IV given the correct passphrase. - This method is compatible with current versions of OpenSSL. - - "randomiv" -- Generate the block cipher key from the passphrase, and - choose a random 8-byte value to use as the IV. The IV will - be prepended to the data stream. This method is compatible - with ciphertext produced by versions of the library prior to - 2.17, but is incompatible with block ciphers that have non - 8-byte block sizes, such as Rijndael. Crypt::CBC will exit - with a fatal error if you try to use this header mode with a - non 8-byte cipher. - - "none" -- Do not generate a header. To decrypt a stream encrypted - in this way, you will have to provide the original IV - manually. - -B<The "salt" header is now the default as of Crypt::CBC version 2.17. In -all earlier versions "randomiv" was the default.> - -When using a "salt" header, you may specify your own value of the -salt, by passing the desired 8-byte salt to the B<-salt> -argument. Otherwise, the module will generate a random salt for -you. Crypt::CBC will generate a fatal error if you specify a salt -value that isn't exactly 8 bytes long. For backward compatibility -reasons, passing a value of "1" will generate a random salt, the same -as if no B<-salt> argument was provided. - -The B<-padding> argument controls how the last few bytes of the -encrypted stream are dealt with when they not an exact multiple of the -cipher block length. The default is "standard", the method specified -in PKCS#5. - -The B<-pcbc> argument, if true, activates a modified chaining mode -known as PCBC. It provides better error propagation characteristics -than the default CBC encryption and is required for authenticating to -Kerberos4 systems (see RFC 2222). - -The B<-keysize> and B<-blocksize> arguments can be used to force the -cipher's keysize and/or blocksize. This is only currently useful for -the Crypt::Blowfish module, which accepts a variable length -keysize. If -keysize is not specified, then Crypt::CBC will use the -maximum length Blowfish key size of 56 bytes (448 bits). The Openssl -library defaults to 16 byte Blowfish key sizes, so for compatibility -with Openssl you may wish to set -keysize=>16. There are currently no -Crypt::* modules that have variable block sizes, but an option to -change the block size is provided just in case. - -For compatibility with earlier versions of this module, you can -provide new() with a hashref containing key/value pairs. The key names -are the same as the arguments described earlier, but without the -initial hyphen. You may also call new() with one or two positional -arguments, in which case the first argument is taken to be the key and -the second to be the optional block cipher algorithm. - -B<IMPORTANT NOTE:> Versions of this module prior to 2.17 were -incorrectly using 8-byte IVs when generating the "randomiv" style of -header, even when the chosen cipher's blocksize was greater than 8 -bytes. This primarily affects the Rijndael algorithm. Such encrypted -data streams were B<not secure>. From versions 2.17 onward, Crypt::CBC -will refuse to encrypt or decrypt using the "randomiv" header and non-8 -byte block ciphers. To decrypt legacy data encrypted with earlier -versions of the module, you can override the check using the -B<-insecure_legacy_decrypt> option. It is not possible to override -encryption. Please use the default "salt" header style, or no headers -at all. - -=head2 start() - - $cipher->start('encrypting'); - $cipher->start('decrypting'); - -The start() method prepares the cipher for a series of encryption or -decryption steps, resetting the internal state of the cipher if -necessary. You must provide a string indicating whether you wish to -encrypt or decrypt. "E" or any word that begins with an "e" indicates -encryption. "D" or any word that begins with a "d" indicates -decryption. - -=head2 crypt() - - $ciphertext = $cipher->crypt($plaintext); - -After calling start(), you should call crypt() as many times as -necessary to encrypt the desired data. - -=head2 finish() - - $ciphertext = $cipher->finish(); - -The CBC algorithm must buffer data blocks internally until they are -even multiples of the encryption algorithm's blocksize (typically 8 -bytes). After the last call to crypt() you should call finish(). -This flushes the internal buffer and returns any leftover ciphertext. - -In a typical application you will read the plaintext from a file or -input stream and write the result to standard output in a loop that -might look like this: - - $cipher = new Crypt::CBC('hey jude!'); - $cipher->start('encrypting'); - print $cipher->crypt($_) while <>; - print $cipher->finish(); - -=head2 encrypt() - - $ciphertext = $cipher->encrypt($plaintext) - -This convenience function runs the entire sequence of start(), crypt() -and finish() for you, processing the provided plaintext and returning -the corresponding ciphertext. - -=head2 decrypt() - - $plaintext = $cipher->decrypt($ciphertext) - -This convenience function runs the entire sequence of start(), crypt() -and finish() for you, processing the provided ciphertext and returning -the corresponding plaintext. - -=head2 encrypt_hex(), decrypt_hex() - - $ciphertext = $cipher->encrypt_hex($plaintext) - $plaintext = $cipher->decrypt_hex($ciphertext) - -These are convenience functions that operate on ciphertext in a -hexadecimal representation. B<encrypt_hex($plaintext)> is exactly -equivalent to B<unpack('H*',encrypt($plaintext))>. These functions -can be useful if, for example, you wish to place the encrypted in an -email message. - -=head2 get_initialization_vector() - - $iv = $cipher->get_initialization_vector() - -This function will return the IV used in encryption and or decryption. -The IV is not guaranteed to be set when encrypting until start() is -called, and when decrypting until crypt() is called the first -time. Unless the IV was manually specified in the new() call, the IV -will change with every complete encryption operation. - -=head2 set_initialization_vector() - - $cipher->set_initialization_vector('76543210') - -This function sets the IV used in encryption and/or decryption. This -function may be useful if the IV is not contained within the -ciphertext string being decrypted, or if a particular IV is desired -for encryption. Note that the IV must match the chosen cipher's -blocksize bytes in length. - -=head2 iv() - - $iv = $cipher->iv(); - $cipher->iv($new_iv); - -As above, but using a single method call. - -=head2 key() - - $key = $cipher->key(); - $cipher->key($new_key); - -Get or set the block cipher key used for encryption/decryption. When -encrypting, the key is not guaranteed to exist until start() is -called, and when decrypting, the key is not guaranteed to exist until -after the first call to crypt(). The key must match the length -required by the underlying block cipher. - -When salted headers are used, the block cipher key will change after -each complete sequence of encryption operations. - -=head2 salt() - - $salt = $cipher->salt(); - $cipher->salt($new_salt); - -Get or set the salt used for deriving the encryption key and IV when -in OpenSSL compatibility mode. - -=head2 passphrase() - - $passphrase = $cipher->passphrase(); - $cipher->passphrase($new_passphrase); - -This gets or sets the value of the B<key> passed to new() when -B<literal_key> is false. - -=head2 $data = random_bytes($numbytes) - -Return $numbytes worth of random data. On systems that support the -"/dev/urandom" device file, this data will be read from the -device. Otherwise, it will be generated by repeated calls to the Perl -rand() function. - -=head2 cipher(), padding(), keysize(), blocksize(), pcbc() - -These read-only methods return the identity of the chosen block cipher -algorithm, padding method, key and block size of the chosen block -cipher, and whether PCBC chaining is in effect. - -=head2 Padding methods - -Use the 'padding' option to change the padding method. - -When the last block of plaintext is shorter than the block size, -it must be padded. Padding methods include: "standard" (i.e., PKCS#5), -"oneandzeroes", "space", "rijndael_compat", "null", and "none". - - standard: (default) Binary safe - pads with the number of bytes that should be truncated. So, if - blocksize is 8, then "0A0B0C" will be padded with "05", resulting - in "0A0B0C0505050505". If the final block is a full block of 8 - bytes, then a whole block of "0808080808080808" is appended. - - oneandzeroes: Binary safe - pads with "80" followed by as many "00" necessary to fill the - block. If the last block is a full block and blocksize is 8, a - block of "8000000000000000" will be appended. - - rijndael_compat: Binary safe, with caveats - similar to oneandzeroes, except that no padding is performed if - the last block is a full block. This is provided for - compatibility with Crypt::Rijndael only and can only be used - with messages that are a multiple of the Rijndael blocksize - of 16 bytes. - - null: text only - pads with as many "00" necessary to fill the block. If the last - block is a full block and blocksize is 8, a block of - "0000000000000000" will be appended. - - space: text only - same as "null", but with "20". - - none: - no padding added. Useful for special-purpose applications where - you wish to add custom padding to the message. - -Both the standard and oneandzeroes paddings are binary safe. The -space and null paddings are recommended only for text data. Which -type of padding you use depends on whether you wish to communicate -with an external (non Crypt::CBC library). If this is the case, use -whatever padding method is compatible. - -You can also pass in a custom padding function. To do this, create a -function that takes the arguments: - - $padded_block = function($block,$blocksize,$direction); - -where $block is the current block of data, $blocksize is the size to -pad it to, $direction is "e" for encrypting and "d" for decrypting, -and $padded_block is the result after padding or depadding. - -When encrypting, the function should always return a string of -<blocksize> length, and when decrypting, can expect the string coming -in to always be that length. See _standard_padding(), _space_padding(), -_null_padding(), or _oneandzeroes_padding() in the source for examples. - -Standard and oneandzeroes padding are recommended, as both space and -null padding can potentially truncate more characters than they should. - -=head1 EXAMPLES - -Two examples, des.pl and idea.pl can be found in the eg/ subdirectory -of the Crypt-CBC distribution. These implement command-line DES and -IDEA encryption algorithms. - -=head1 LIMITATIONS - -The encryption and decryption process is about a tenth the speed of -the equivalent SSLeay programs (compiled C). This could be improved -by implementing this module in C. It may also be worthwhile to -optimize the DES and IDEA block algorithms further. - -=head1 BUGS - -Please report them. - -=head1 AUTHOR - -Lincoln Stein, lstein@cshl.org - -This module is distributed under the ARTISTIC LICENSE using the same -terms as Perl itself. - -=head1 SEE ALSO - -perl(1), Crypt::DES(3), Crypt::IDEA(3), rfc2898 (PKCS#5) - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Devel/CheckLib.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Devel/CheckLib.pm deleted file mode 100644 index 2acc057f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Devel/CheckLib.pm +++ /dev/null @@ -1,622 +0,0 @@ -# $Id: CheckLib.pm,v 1.25 2008/10/27 12:16:23 drhyde Exp $ - -package Devel::CheckLib; - -use 5.00405; #postfix foreach -use strict; -use vars qw($VERSION @ISA @EXPORT); -$VERSION = '1.11'; -use Config qw(%Config); -use Text::ParseWords 'quotewords'; - -use File::Spec; -use File::Temp; - -require Exporter; -@ISA = qw(Exporter); -@EXPORT = qw(assert_lib check_lib_or_exit check_lib); - -# localising prevents the warningness leaking out of this module -local $^W = 1; # use warnings is a 5.6-ism - -_findcc(); # bomb out early if there's no compiler - -=head1 NAME - -Devel::CheckLib - check that a library is available - -=head1 DESCRIPTION - -Devel::CheckLib is a perl module that checks whether a particular C -library and its headers are available. - -=head1 SYNOPSIS - - use Devel::CheckLib; - - check_lib_or_exit( lib => 'jpeg', header => 'jpeglib.h' ); - check_lib_or_exit( lib => [ 'iconv', 'jpeg' ] ); - - # or prompt for path to library and then do this: - check_lib_or_exit( lib => 'jpeg', libpath => $additional_path ); - -=head1 USING IT IN Makefile.PL or Build.PL - -If you want to use this from Makefile.PL or Build.PL, do -not simply copy the module into your distribution as this may cause -problems when PAUSE and search.cpan.org index the distro. Instead, use -the use-devel-checklib script. - -=head1 HOW IT WORKS - -You pass named parameters to a function, describing to it how to build -and link to the libraries. - -It works by trying to compile some code - which defaults to this: - - int main(int argc, char *argv[]) { return 0; } - -and linking it to the specified libraries. If something pops out the end -which looks executable, it gets executed, and if main() returns 0 we know -that it worked. That tiny program is -built once for each library that you specify, and (without linking) once -for each header file. - -If you want to check for the presence of particular functions in a -library, or even that those functions return particular results, then -you can pass your own function body for main() thus: - - check_lib_or_exit( - function => 'foo();if(libversion() > 5) return 0; else return 1;' - incpath => ... - libpath => ... - lib => ... - header => ... - ); - -In that case, it will fail to build if either foo() or libversion() don't -exist, and main() will return the wrong value if libversion()'s return -value isn't what you want. - -=head1 FUNCTIONS - -All of these take the same named parameters and are exported by default. -To avoid exporting them, C<use Devel::CheckLib ()>. - -=head2 assert_lib - -This takes several named parameters, all of which are optional, and dies -with an error message if any of the libraries listed can -not be found. B<Note>: dying in a Makefile.PL or Build.PL may provoke -a 'FAIL' report from CPAN Testers' automated smoke testers. Use -C<check_lib_or_exit> instead. - -The named parameters are: - -=over - -=item lib - -Must be either a string with the name of a single -library or a reference to an array of strings of library names. Depending -on the compiler found, library names will be fed to the compiler either as -C<-l> arguments or as C<.lib> file names. (E.g. C<-ljpeg> or C<jpeg.lib>) - -=item libpath - -a string or an array of strings -representing additional paths to search for libraries. - -=item LIBS - -a C<ExtUtils::MakeMaker>-style space-separated list of -libraries (each preceded by '-l') and directories (preceded by '-L'). - -This can also be supplied on the command-line. - -=item debug - -If true - emit information during processing that can be used for -debugging. - -=back - -And libraries are no use without header files, so ... - -=over - -=item header - -Must be either a string with the name of a single -header file or a reference to an array of strings of header file names. - -=item incpath - -a string or an array of strings -representing additional paths to search for headers. - -=item INC - -a C<ExtUtils::MakeMaker>-style space-separated list of -incpaths, each preceded by '-I'. - -This can also be supplied on the command-line. - -=item ccflags - -Extra flags to pass to the compiler. - -=item ldflags - -Extra flags to pass to the linker. - -=item analyze_binary - -a callback function that will be invoked in order to perform custom -analysis of the generated binary. The callback arguments are the -library name and the path to the binary just compiled. - -It is possible to use this callback, for instance, to inspect the -binary for further dependencies. - -=back - -=head2 check_lib_or_exit - -This behaves exactly the same as C<assert_lib()> except that instead of -dieing, it warns (with exactly the same error message) and exits. -This is intended for use in Makefile.PL / Build.PL -when you might want to prompt the user for various paths and -things before checking that what they've told you is sane. - -If any library or header is missing, it exits with an exit value of 0 to avoid -causing a CPAN Testers 'FAIL' report. CPAN Testers should ignore this -result -- which is what you want if an external library dependency is not -available. - -=head2 check_lib - -This behaves exactly the same as C<assert_lib()> except that it is silent, -returning false instead of dieing, or true otherwise. - -=cut - -sub check_lib_or_exit { - eval 'assert_lib(@_)'; - if($@) { - warn $@; - exit; - } -} - -sub check_lib { - eval 'assert_lib(@_)'; - return $@ ? 0 : 1; -} - -# borrowed from Text::ParseWords -sub _parse_line { - my($delimiter, $keep, $line) = @_; - my($word, @pieces); - - no warnings 'uninitialized'; # we will be testing undef strings - - while (length($line)) { - # This pattern is optimised to be stack conservative on older perls. - # Do not refactor without being careful and testing it on very long strings. - # See Perl bug #42980 for an example of a stack busting input. - $line =~ s/^ - (?: - # double quoted string - (") # $quote - ((?>[^\\"]*(?:\\.[^\\"]*)*))" # $quoted - | # --OR-- - # singe quoted string - (') # $quote - ((?>[^\\']*(?:\\.[^\\']*)*))' # $quoted - | # --OR-- - # unquoted string - ( # $unquoted - (?:\\.|[^\\"'])*? - ) - # followed by - ( # $delim - \Z(?!\n) # EOL - | # --OR-- - (?-x:$delimiter) # delimiter - | # --OR-- - (?!^)(?=["']) # a quote - ) - )//xs or return; # extended layout - my ($quote, $quoted, $unquoted, $delim) = (($1 ? ($1,$2) : ($3,$4)), $5, $6); - - return() unless( defined($quote) || length($unquoted) || length($delim)); - - if ($keep) { - $quoted = "$quote$quoted$quote"; - } - else { - $unquoted =~ s/\\(.)/$1/sg; - if (defined $quote) { - $quoted =~ s/\\(.)/$1/sg if ($quote eq '"'); - } - } - $word .= substr($line, 0, 0); # leave results tainted - $word .= defined $quote ? $quoted : $unquoted; - - if (length($delim)) { - push(@pieces, $word); - push(@pieces, $delim) if ($keep eq 'delimiters'); - undef $word; - } - if (!length($line)) { - push(@pieces, $word); - } - } - return(@pieces); -} - -sub assert_lib { - my %args = @_; - my (@libs, @libpaths, @headers, @incpaths); - - # FIXME: these four just SCREAM "refactor" at me - @libs = (ref($args{lib}) ? @{$args{lib}} : $args{lib}) - if $args{lib}; - @libpaths = (ref($args{libpath}) ? @{$args{libpath}} : $args{libpath}) - if $args{libpath}; - @headers = (ref($args{header}) ? @{$args{header}} : $args{header}) - if $args{header}; - @incpaths = (ref($args{incpath}) ? @{$args{incpath}} : $args{incpath}) - if $args{incpath}; - my $analyze_binary = $args{analyze_binary}; - - my @argv = @ARGV; - push @argv, _parse_line('\s+', 0, $ENV{PERL_MM_OPT}||''); - - # work-a-like for Makefile.PL's LIBS and INC arguments - # if given as command-line argument, append to %args - for my $arg (@argv) { - for my $mm_attr_key (qw(LIBS INC)) { - if (my ($mm_attr_value) = $arg =~ /\A $mm_attr_key = (.*)/x) { - # it is tempting to put some \s* into the expression, but the - # MM command-line parser only accepts LIBS etc. followed by =, - # so we should not be any more lenient with whitespace than that - $args{$mm_attr_key} .= " $mm_attr_value"; - } - } - } - - # using special form of split to trim whitespace - if(defined($args{LIBS})) { - foreach my $arg (split(' ', $args{LIBS})) { - die("LIBS argument badly-formed: $arg\n") unless($arg =~ /^-[lLR]/); - push @{$arg =~ /^-l/ ? \@libs : \@libpaths}, substr($arg, 2); - } - } - if(defined($args{INC})) { - foreach my $arg (split(' ', $args{INC})) { - die("INC argument badly-formed: $arg\n") unless($arg =~ /^-I/); - push @incpaths, substr($arg, 2); - } - } - - my ($cc, $ld) = _findcc($args{debug}, $args{ccflags}, $args{ldflags}); - my @missing; - my @wrongresult; - my @wronganalysis; - my @use_headers; - - # first figure out which headers we can't find ... - for my $header (@headers) { - push @use_headers, $header; - my($ch, $cfile) = File::Temp::tempfile( - 'assertlibXXXXXXXX', SUFFIX => '.c' - ); - my $ofile = $cfile; - $ofile =~ s/\.c$/$Config{_o}/; - print $ch qq{#include <$_>\n} for @use_headers; - print $ch qq{int main(void) { return 0; }\n}; - close($ch); - my $exefile = File::Temp::mktemp( 'assertlibXXXXXXXX' ) . $Config{_exe}; - my @sys_cmd; - # FIXME: re-factor - almost identical code later when linking - if ( $Config{cc} eq 'cl' ) { # Microsoft compiler - require Win32; - @sys_cmd = ( - @$cc, - $cfile, - "/Fe$exefile", - (map { '/I'.Win32::GetShortPathName($_) } @incpaths), - "/link", - @$ld, - split(' ', $Config{libs}), - ); - } elsif($Config{cc} =~ /bcc32(\.exe)?/) { # Borland - @sys_cmd = ( - @$cc, - @$ld, - (map { "-I$_" } @incpaths), - "-o$exefile", - $cfile - ); - } else { # Unix-ish: gcc, Sun, AIX (gcc, cc), ... - @sys_cmd = ( - @$cc, - @$ld, - $cfile, - (map { "-I$_" } @incpaths), - "-o", "$exefile" - ); - } - warn "# @sys_cmd\n" if $args{debug}; - my $rv = $args{debug} ? system(@sys_cmd) : _quiet_system(@sys_cmd); - push @missing, $header if $rv != 0 || ! -x $exefile; - _cleanup_exe($exefile); - unlink $cfile; - } - - # now do each library in turn with headers - my($ch, $cfile) = File::Temp::tempfile( - 'assertlibXXXXXXXX', SUFFIX => '.c' - ); - my $ofile = $cfile; - $ofile =~ s/\.c$/$Config{_o}/; - print $ch qq{#include <$_>\n} foreach (@headers); - print $ch "int main(int argc, char *argv[]) { ".($args{function} || 'return 0;')." }\n"; - close($ch); - for my $lib ( @libs ) { - my $exefile = File::Temp::mktemp( 'assertlibXXXXXXXX' ) . $Config{_exe}; - my @sys_cmd; - if ( $Config{cc} eq 'cl' ) { # Microsoft compiler - require Win32; - my @libpath = map { - q{/libpath:} . Win32::GetShortPathName($_) - } @libpaths; - # this is horribly sensitive to the order of arguments - @sys_cmd = ( - @$cc, - $cfile, - "${lib}.lib", - "/Fe$exefile", - (map { '/I'.Win32::GetShortPathName($_) } @incpaths), - "/link", - @$ld, - split(' ', $Config{libs}), - (map {'/libpath:'.Win32::GetShortPathName($_)} @libpaths), - ); - } elsif($Config{cc} eq 'CC/DECC') { # VMS - } elsif($Config{cc} =~ /bcc32(\.exe)?/) { # Borland - @sys_cmd = ( - @$cc, - @$ld, - "-o$exefile", - (map { "-I$_" } @incpaths), - (map { "-L$_" } @libpaths), - "-l$lib", - $cfile); - } else { # Unix-ish - # gcc, Sun, AIX (gcc, cc) - @sys_cmd = ( - @$cc, - @$ld, - $cfile, - "-o", "$exefile", - (map { "-I$_" } @incpaths), - (map { "-L$_" } @libpaths), - "-l$lib", - ); - } - warn "# @sys_cmd\n" if $args{debug}; - local $ENV{LD_RUN_PATH} = join(":", grep $_, @libpaths, $ENV{LD_RUN_PATH}) unless $^O eq 'MSWin32'; - local $ENV{PATH} = join(";", @libpaths).";".$ENV{PATH} if $^O eq 'MSWin32'; - my $rv = $args{debug} ? system(@sys_cmd) : _quiet_system(@sys_cmd); - if ($rv != 0 || ! -x $exefile) { - push @missing, $lib; - } - else { - my $absexefile = File::Spec->rel2abs($exefile); - $absexefile = '"'.$absexefile.'"' if $absexefile =~ m/\s/; - if (system($absexefile) != 0) { - push @wrongresult, $lib; - } - else { - if ($analyze_binary) { - push @wronganalysis, $lib if !$analyze_binary->($lib, $exefile) - } - } - } - _cleanup_exe($exefile); - } - unlink $cfile; - - my $miss_string = join( q{, }, map { qq{'$_'} } @missing ); - die("Can't link/include C library $miss_string, aborting.\n") if @missing; - my $wrong_string = join( q{, }, map { qq{'$_'} } @wrongresult); - die("wrong result: $wrong_string\n") if @wrongresult; - my $analysis_string = join(q{, }, map { qq{'$_'} } @wronganalysis ); - die("wrong analysis: $analysis_string") if @wronganalysis; -} - -sub _cleanup_exe { - my ($exefile) = @_; - my $ofile = $exefile; - $ofile =~ s/$Config{_exe}$/$Config{_o}/; - # List of files to remove - my @rmfiles; - push @rmfiles, $exefile, $ofile, "$exefile\.manifest"; - if ( $Config{cc} eq 'cl' ) { - # MSVC also creates foo.ilk and foo.pdb - my $ilkfile = $exefile; - $ilkfile =~ s/$Config{_exe}$/.ilk/; - my $pdbfile = $exefile; - $pdbfile =~ s/$Config{_exe}$/.pdb/; - push @rmfiles, $ilkfile, $pdbfile; - } - foreach (@rmfiles) { - if ( -f $_ ) { - unlink $_ or warn "Could not remove $_: $!"; - } - } - return -} - -# return ($cc, $ld) -# where $cc is an array ref of compiler name, compiler flags -# where $ld is an array ref of linker flags -sub _findcc { - my ($debug, $user_ccflags, $user_ldflags) = @_; - # Need to use $keep=1 to work with MSWin32 backslashes and quotes - my $Config_ccflags = $Config{ccflags}; # use copy so ASPerl will compile - my @Config_ldflags = (); - for my $config_val ( @Config{qw(ldflags)} ){ - push @Config_ldflags, $config_val if ( $config_val =~ /\S/ ); - } - my @ccflags = grep { length } quotewords('\s+', 1, $Config_ccflags||'', $user_ccflags||''); - my @ldflags = grep { length && $_ !~ m/^-Wl/ } quotewords('\s+', 1, @Config_ldflags, $user_ldflags||''); - my @paths = split(/$Config{path_sep}/, $ENV{PATH}); - my @cc = split(/\s+/, $Config{cc}); - if (check_compiler ($cc[0], $debug)) { - return ( [ @cc, @ccflags ], \@ldflags ); - } - # Find the extension for executables. - my $exe = $Config{_exe}; - if ($^O eq 'cygwin') { - $exe = ''; - } - foreach my $path (@paths) { - # Look for "$path/$cc[0].exe" - my $compiler = File::Spec->catfile($path, $cc[0]) . $exe; - if (check_compiler ($compiler, $debug)) { - return ([ $compiler, @cc[1 .. $#cc], @ccflags ], \@ldflags) - } - next if ! $exe; - # Look for "$path/$cc[0]" without the .exe, if necessary. - $compiler = File::Spec->catfile($path, $cc[0]); - if (check_compiler ($compiler, $debug)) { - return ([ $compiler, @cc[1 .. $#cc], @ccflags ], \@ldflags) - } - } - die("Couldn't find your C compiler.\n"); -} - -sub check_compiler -{ - my ($compiler, $debug) = @_; - if (-f $compiler && -x $compiler) { - if ($debug) { - warn("# Compiler seems to be $compiler\n"); - } - return 1; - } - return ''; -} - - -# code substantially borrowed from IPC::Run3 -sub _quiet_system { - my (@cmd) = @_; - - # save handles - local *STDOUT_SAVE; - local *STDERR_SAVE; - open STDOUT_SAVE, ">&STDOUT" or die "CheckLib: $! saving STDOUT"; - open STDERR_SAVE, ">&STDERR" or die "CheckLib: $! saving STDERR"; - - # redirect to nowhere - local *DEV_NULL; - open DEV_NULL, ">" . File::Spec->devnull - or die "CheckLib: $! opening handle to null device"; - open STDOUT, ">&" . fileno DEV_NULL - or die "CheckLib: $! redirecting STDOUT to null handle"; - open STDERR, ">&" . fileno DEV_NULL - or die "CheckLib: $! redirecting STDERR to null handle"; - - # run system command - my $rv = system(@cmd); - - # restore handles - open STDOUT, ">&" . fileno STDOUT_SAVE - or die "CheckLib: $! restoring STDOUT handle"; - open STDERR, ">&" . fileno STDERR_SAVE - or die "CheckLib: $! restoring STDERR handle"; - - return $rv; -} - -=head1 PLATFORMS SUPPORTED - -You must have a C compiler installed. We check for C<$Config{cc}>, -both literally as it is in Config.pm and also in the $PATH. - -It has been tested with varying degrees of rigorousness on: - -=over - -=item gcc (on Linux, *BSD, Mac OS X, Solaris, Cygwin) - -=item Sun's compiler tools on Solaris - -=item IBM's tools on AIX - -=item SGI's tools on Irix 6.5 - -=item Microsoft's tools on Windows - -=item MinGW on Windows (with Strawberry Perl) - -=item Borland's tools on Windows - -=item QNX - -=back - -=head1 WARNINGS, BUGS and FEEDBACK - -This is a very early release intended primarily for feedback from -people who have discussed it. The interface may change and it has -not been adequately tested. - -Feedback is most welcome, including constructive criticism. -Bug reports should be made using L<http://rt.cpan.org/> or by email. - -When submitting a bug report, please include the output from running: - - perl -V - perl -MDevel::CheckLib -e0 - -=head1 SEE ALSO - -L<Devel::CheckOS> - -L<Probe::Perl> - -=head1 AUTHORS - -David Cantrell E<lt>david@cantrell.org.ukE<gt> - -David Golden E<lt>dagolden@cpan.orgE<gt> - -Yasuhiro Matsumoto E<lt>mattn@cpan.orgE<gt> - -Thanks to the cpan-testers-discuss mailing list for prompting us to write it -in the first place; - -to Chris Williams for help with Borland support; - -to Tony Cook for help with Microsoft compiler command-line options - -=head1 COPYRIGHT and LICENCE - -Copyright 2007 David Cantrell. Portions copyright 2007 David Golden. - -This module is free-as-in-speech software, and may be used, distributed, -and modified under the same conditions as perl itself. - -=head1 CONSPIRACY - -This module is also free-as-in-mason software. - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Digest/HMAC.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Digest/HMAC.pm deleted file mode 100644 index 9a164f8e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Digest/HMAC.pm +++ /dev/null @@ -1,120 +0,0 @@ -package Digest::HMAC; -$VERSION = "1.03"; - -use strict; - -# OO interface - -sub new -{ - my($class, $key, $hasher, $block_size) = @_; - $block_size ||= 64; - $key = $hasher->new->add($key)->digest if length($key) > $block_size; - - my $self = bless {}, $class; - $self->{k_ipad} = $key ^ (chr(0x36) x $block_size); - $self->{k_opad} = $key ^ (chr(0x5c) x $block_size); - $self->{hasher} = $hasher->new->add($self->{k_ipad}); - $self; -} - -sub reset -{ - my $self = shift; - $self->{hasher}->reset->add($self->{k_ipad}); - $self; -} - -sub add { my $self = shift; $self->{hasher}->add(@_); $self; } -sub addfile { my $self = shift; $self->{hasher}->addfile(@_); $self; } - -sub _digest -{ - my $self = shift; - my $inner_digest = $self->{hasher}->digest; - $self->{hasher}->reset->add($self->{k_opad}, $inner_digest); -} - -sub digest { shift->_digest->digest; } -sub hexdigest { shift->_digest->hexdigest; } -sub b64digest { shift->_digest->b64digest; } - - -# Functional interface - -require Exporter; -*import = \&Exporter::import; -use vars qw(@EXPORT_OK); -@EXPORT_OK = qw(hmac hmac_hex); - -sub hmac -{ - my($data, $key, $hash_func, $block_size) = @_; - $block_size ||= 64; - $key = &$hash_func($key) if length($key) > $block_size; - - my $k_ipad = $key ^ (chr(0x36) x $block_size); - my $k_opad = $key ^ (chr(0x5c) x $block_size); - - &$hash_func($k_opad, &$hash_func($k_ipad, $data)); -} - -sub hmac_hex { unpack("H*", &hmac); } - -1; - -__END__ - -=head1 NAME - -Digest::HMAC - Keyed-Hashing for Message Authentication - -=head1 SYNOPSIS - - # Functional style - use Digest::HMAC qw(hmac hmac_hex); - $digest = hmac($data, $key, \&myhash); - print hmac_hex($data, $key, \&myhash); - - # OO style - use Digest::HMAC; - $hmac = Digest::HMAC->new($key, "Digest::MyHash"); - - $hmac->add($data); - $hmac->addfile(*FILE); - - $digest = $hmac->digest; - $digest = $hmac->hexdigest; - $digest = $hmac->b64digest; - -=head1 DESCRIPTION - -HMAC is used for message integrity checks between two parties that -share a secret key, and works in combination with some other Digest -algorithm, usually MD5 or SHA-1. The HMAC mechanism is described in -RFC 2104. - -HMAC follow the common C<Digest::> interface, but the constructor -takes the secret key and the name of some other simple C<Digest::> -as argument. - -The hmac() and hmac_hex() functions and the Digest::HMAC->new() constructor -takes an optional $blocksize argument as well. The HMAC algorithm assumes the -digester to hash by iterating a basic compression function on blocks of data -and the $blocksize should match the byte-length of such blocks. - -The default $blocksize is 64 which is suitable for the MD5 and SHA-1 digest -functions. For stronger algorithms the blocksize probably needs to be -increased. - -=head1 SEE ALSO - -L<Digest::HMAC_MD5>, L<Digest::HMAC_SHA1> - -RFC 2104 - -=head1 AUTHORS - -Graham Barr <gbarr@ti.com>, Gisle Aas <gisle@aas.no> - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Digest/HMAC_MD5.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Digest/HMAC_MD5.pm deleted file mode 100644 index 6efa0a12..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Digest/HMAC_MD5.pm +++ /dev/null @@ -1,71 +0,0 @@ -package Digest::HMAC_MD5; -$VERSION="1.01"; - -use strict; -use Digest::MD5 qw(md5); -use Digest::HMAC qw(hmac); - -# OO interface -use vars qw(@ISA); -@ISA=qw(Digest::HMAC); -sub new -{ - my $class = shift; - $class->SUPER::new($_[0], "Digest::MD5", 64); -} - -# Functional interface -require Exporter; -*import = \&Exporter::import; -use vars qw(@EXPORT_OK); -@EXPORT_OK=qw(hmac_md5 hmac_md5_hex); - -sub hmac_md5 -{ - hmac($_[0], $_[1], \&md5, 64); -} - -sub hmac_md5_hex -{ - unpack("H*", &hmac_md5) -} - -1; - -__END__ - -=head1 NAME - -Digest::HMAC_MD5 - Keyed-Hashing for Message Authentication - -=head1 SYNOPSIS - - # Functional style - use Digest::HMAC_MD5 qw(hmac_md5 hmac_md5_hex); - $digest = hmac_md5($data, $key); - print hmac_md5_hex($data, $key); - - # OO style - use Digest::HMAC_MD5; - $hmac = Digest::HMAC_MD5->new($key); - - $hmac->add($data); - $hmac->addfile(*FILE); - - $digest = $hmac->digest; - $digest = $hmac->hexdigest; - $digest = $hmac->b64digest; - -=head1 DESCRIPTION - -This module provide HMAC-MD5 hashing. - -=head1 SEE ALSO - -L<Digest::HMAC>, L<Digest::MD5>, L<Digest::HMAC_SHA1> - -=head1 AUTHOR - -Gisle Aas <gisle@aas.no> - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Digest/HMAC_SHA1.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Digest/HMAC_SHA1.pm deleted file mode 100644 index c63b00fc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Digest/HMAC_SHA1.pm +++ /dev/null @@ -1,71 +0,0 @@ -package Digest::HMAC_SHA1; -$VERSION="1.03"; - -use strict; -use Digest::SHA qw(sha1); -use Digest::HMAC qw(hmac); - -# OO interface -use vars qw(@ISA); -@ISA=qw(Digest::HMAC); -sub new -{ - my $class = shift; - $class->SUPER::new($_[0], "Digest::SHA", 64); # Digest::SHA defaults to SHA-1 -} - -# Functional interface -require Exporter; -*import = \&Exporter::import; -use vars qw(@EXPORT_OK); -@EXPORT_OK=qw(hmac_sha1 hmac_sha1_hex); - -sub hmac_sha1 -{ - hmac($_[0], $_[1], \&sha1, 64); -} - -sub hmac_sha1_hex -{ - unpack("H*", &hmac_sha1) -} - -1; - -__END__ - -=head1 NAME - -Digest::HMAC_SHA1 - Keyed-Hashing for Message Authentication - -=head1 SYNOPSIS - - # Functional style - use Digest::HMAC_SHA1 qw(hmac_sha1 hmac_sha1_hex); - $digest = hmac_sha1($data, $key); - print hmac_sha1_hex($data, $key); - - # OO style - use Digest::HMAC_SHA1; - $hmac = Digest::HMAC_SHA1->new($key); - - $hmac->add($data); - $hmac->addfile(*FILE); - - $digest = $hmac->digest; - $digest = $hmac->hexdigest; - $digest = $hmac->b64digest; - -=head1 DESCRIPTION - -This module provide HMAC-SHA-1 hashing. - -=head1 SEE ALSO - -L<Digest::HMAC>, L<Digest::SHA>, L<Digest::HMAC_MD5> - -=head1 AUTHOR - -Gisle Aas <gisle@aas.no> - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Command.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Command.pm deleted file mode 100644 index 4924c81f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Command.pm +++ /dev/null @@ -1,381 +0,0 @@ -package ExtUtils::Command; - -use 5.00503; -use strict; -require Exporter; -use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION); -@ISA = qw(Exporter); -@EXPORT = qw(cp rm_f rm_rf mv cat eqtime mkpath touch test_f test_d chmod - dos2unix); -$VERSION = '7.34'; -$VERSION = eval $VERSION; - -my $Is_VMS = $^O eq 'VMS'; -my $Is_VMS_mode = $Is_VMS; -my $Is_VMS_noefs = $Is_VMS; -my $Is_Win32 = $^O eq 'MSWin32'; - -if( $Is_VMS ) { - my $vms_unix_rpt; - my $vms_efs; - my $vms_case; - - if (eval { local $SIG{__DIE__}; - local @INC = @INC; - pop @INC if $INC[-1] eq '.'; - require VMS::Feature; }) { - $vms_unix_rpt = VMS::Feature::current("filename_unix_report"); - $vms_efs = VMS::Feature::current("efs_charset"); - $vms_case = VMS::Feature::current("efs_case_preserve"); - } else { - my $unix_rpt = $ENV{'DECC$FILENAME_UNIX_REPORT'} || ''; - my $efs_charset = $ENV{'DECC$EFS_CHARSET'} || ''; - my $efs_case = $ENV{'DECC$EFS_CASE_PRESERVE'} || ''; - $vms_unix_rpt = $unix_rpt =~ /^[ET1]/i; - $vms_efs = $efs_charset =~ /^[ET1]/i; - $vms_case = $efs_case =~ /^[ET1]/i; - } - $Is_VMS_mode = 0 if $vms_unix_rpt; - $Is_VMS_noefs = 0 if ($vms_efs); -} - - -=head1 NAME - -ExtUtils::Command - utilities to replace common UNIX commands in Makefiles etc. - -=head1 SYNOPSIS - - perl -MExtUtils::Command -e cat files... > destination - perl -MExtUtils::Command -e mv source... destination - perl -MExtUtils::Command -e cp source... destination - perl -MExtUtils::Command -e touch files... - perl -MExtUtils::Command -e rm_f files... - perl -MExtUtils::Command -e rm_rf directories... - perl -MExtUtils::Command -e mkpath directories... - perl -MExtUtils::Command -e eqtime source destination - perl -MExtUtils::Command -e test_f file - perl -MExtUtils::Command -e test_d directory - perl -MExtUtils::Command -e chmod mode files... - ... - -=head1 DESCRIPTION - -The module is used to replace common UNIX commands. In all cases the -functions work from @ARGV rather than taking arguments. This makes -them easier to deal with in Makefiles. Call them like this: - - perl -MExtUtils::Command -e some_command some files to work on - -and I<NOT> like this: - - perl -MExtUtils::Command -e 'some_command qw(some files to work on)' - -For that use L<Shell::Command>. - -Filenames with * and ? will be glob expanded. - - -=head2 FUNCTIONS - -=over 4 - -=cut - -# VMS uses % instead of ? to mean "one character" -my $wild_regex = $Is_VMS ? '*%' : '*?'; -sub expand_wildcards -{ - @ARGV = map(/[$wild_regex]/o ? glob($_) : $_,@ARGV); -} - - -=item cat - - cat file ... - -Concatenates all files mentioned on command line to STDOUT. - -=cut - -sub cat () -{ - expand_wildcards(); - print while (<>); -} - -=item eqtime - - eqtime source destination - -Sets modified time of destination to that of source. - -=cut - -sub eqtime -{ - my ($src,$dst) = @ARGV; - local @ARGV = ($dst); touch(); # in case $dst doesn't exist - utime((stat($src))[8,9],$dst); -} - -=item rm_rf - - rm_rf files or directories ... - -Removes files and directories - recursively (even if readonly) - -=cut - -sub rm_rf -{ - expand_wildcards(); - require File::Path; - File::Path::rmtree([grep -e $_,@ARGV],0,0); -} - -=item rm_f - - rm_f file ... - -Removes files (even if readonly) - -=cut - -sub rm_f { - expand_wildcards(); - - foreach my $file (@ARGV) { - next unless -f $file; - - next if _unlink($file); - - chmod(0777, $file); - - next if _unlink($file); - - require Carp; - Carp::carp("Cannot delete $file: $!"); - } -} - -sub _unlink { - my $files_unlinked = 0; - foreach my $file (@_) { - my $delete_count = 0; - $delete_count++ while unlink $file; - $files_unlinked++ if $delete_count; - } - return $files_unlinked; -} - - -=item touch - - touch file ... - -Makes files exist, with current timestamp - -=cut - -sub touch { - my $t = time; - expand_wildcards(); - foreach my $file (@ARGV) { - open(FILE,">>$file") || die "Cannot write $file:$!"; - close(FILE); - utime($t,$t,$file); - } -} - -=item mv - - mv source_file destination_file - mv source_file source_file destination_dir - -Moves source to destination. Multiple sources are allowed if -destination is an existing directory. - -Returns true if all moves succeeded, false otherwise. - -=cut - -sub mv { - expand_wildcards(); - my @src = @ARGV; - my $dst = pop @src; - - if (@src > 1 && ! -d $dst) { - require Carp; - Carp::croak("Too many arguments"); - } - - require File::Copy; - my $nok = 0; - foreach my $src (@src) { - $nok ||= !File::Copy::move($src,$dst); - } - return !$nok; -} - -=item cp - - cp source_file destination_file - cp source_file source_file destination_dir - -Copies sources to the destination. Multiple sources are allowed if -destination is an existing directory. - -Returns true if all copies succeeded, false otherwise. - -=cut - -sub cp { - expand_wildcards(); - my @src = @ARGV; - my $dst = pop @src; - - if (@src > 1 && ! -d $dst) { - require Carp; - Carp::croak("Too many arguments"); - } - - require File::Copy; - my $nok = 0; - foreach my $src (@src) { - $nok ||= !File::Copy::copy($src,$dst); - - # Win32 does not update the mod time of a copied file, just the - # created time which make does not look at. - utime(time, time, $dst) if $Is_Win32; - } - return $nok; -} - -=item chmod - - chmod mode files ... - -Sets UNIX like permissions 'mode' on all the files. e.g. 0666 - -=cut - -sub chmod { - local @ARGV = @ARGV; - my $mode = shift(@ARGV); - expand_wildcards(); - - if( $Is_VMS_mode && $Is_VMS_noefs) { - require File::Spec; - foreach my $idx (0..$#ARGV) { - my $path = $ARGV[$idx]; - next unless -d $path; - - # chmod 0777, [.foo.bar] doesn't work on VMS, you have to do - # chmod 0777, [.foo]bar.dir - my @dirs = File::Spec->splitdir( $path ); - $dirs[-1] .= '.dir'; - $path = File::Spec->catfile(@dirs); - - $ARGV[$idx] = $path; - } - } - - chmod(oct $mode,@ARGV) || die "Cannot chmod ".join(' ',$mode,@ARGV).":$!"; -} - -=item mkpath - - mkpath directory ... - -Creates directories, including any parent directories. - -=cut - -sub mkpath -{ - expand_wildcards(); - require File::Path; - File::Path::mkpath([@ARGV],0,0777); -} - -=item test_f - - test_f file - -Tests if a file exists. I<Exits> with 0 if it does, 1 if it does not (ie. -shell's idea of true and false). - -=cut - -sub test_f -{ - exit(-f $ARGV[0] ? 0 : 1); -} - -=item test_d - - test_d directory - -Tests if a directory exists. I<Exits> with 0 if it does, 1 if it does -not (ie. shell's idea of true and false). - -=cut - -sub test_d -{ - exit(-d $ARGV[0] ? 0 : 1); -} - -=item dos2unix - - dos2unix files or dirs ... - -Converts DOS and OS/2 linefeeds to Unix style recursively. - -=cut - -sub dos2unix { - require File::Find; - File::Find::find(sub { - return if -d; - return unless -w _; - return unless -r _; - return if -B _; - - local $\; - - my $orig = $_; - my $temp = '.dos2unix_tmp'; - open ORIG, $_ or do { warn "dos2unix can't open $_: $!"; return }; - open TEMP, ">$temp" or - do { warn "dos2unix can't create .dos2unix_tmp: $!"; return }; - binmode ORIG; binmode TEMP; - while (my $line = <ORIG>) { - $line =~ s/\015\012/\012/g; - print TEMP $line; - } - close ORIG; - close TEMP; - rename $temp, $orig; - - }, @ARGV); -} - -=back - -=head1 SEE ALSO - -Shell::Command which is these same functions but take arguments normally. - - -=head1 AUTHOR - -Nick Ing-Simmons C<ni-s@cpan.org> - -Maintained by Michael G Schwern C<schwern@pobox.com> within the -ExtUtils-MakeMaker package and, as a separate CPAN package, by -Randy Kobes C<r.kobes@uwinnipeg.ca>. - -=cut - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Command/MM.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Command/MM.pm deleted file mode 100644 index 0323ed40..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Command/MM.pm +++ /dev/null @@ -1,323 +0,0 @@ -package ExtUtils::Command::MM; - -require 5.006; - -use strict; -use warnings; - -require Exporter; -our @ISA = qw(Exporter); - -our @EXPORT = qw(test_harness pod2man perllocal_install uninstall - warn_if_old_packlist test_s cp_nonempty); -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -my $Is_VMS = $^O eq 'VMS'; - -sub mtime { - no warnings 'redefine'; - local $@; - *mtime = (eval { require Time::HiRes } && defined &Time::HiRes::stat) - ? sub { (Time::HiRes::stat($_[0]))[9] } - : sub { ( stat($_[0]))[9] } - ; - goto &mtime; -} - -=head1 NAME - -ExtUtils::Command::MM - Commands for the MM's to use in Makefiles - -=head1 SYNOPSIS - - perl "-MExtUtils::Command::MM" -e "function" "--" arguments... - - -=head1 DESCRIPTION - -B<FOR INTERNAL USE ONLY!> The interface is not stable. - -ExtUtils::Command::MM encapsulates code which would otherwise have to -be done with large "one" liners. - -Any $(FOO) used in the examples are make variables, not Perl. - -=over 4 - -=item B<test_harness> - - test_harness($verbose, @test_libs); - -Runs the tests on @ARGV via Test::Harness passing through the $verbose -flag. Any @test_libs will be unshifted onto the test's @INC. - -@test_libs are run in alphabetical order. - -=cut - -sub test_harness { - require Test::Harness; - require File::Spec; - - $Test::Harness::verbose = shift; - - # Because Windows doesn't do this for us and listing all the *.t files - # out on the command line can blow over its exec limit. - require ExtUtils::Command; - my @argv = ExtUtils::Command::expand_wildcards(@ARGV); - - local @INC = @INC; - unshift @INC, map { File::Spec->rel2abs($_) } @_; - Test::Harness::runtests(sort { lc $a cmp lc $b } @argv); -} - - - -=item B<pod2man> - - pod2man( '--option=value', - $podfile1 => $manpage1, - $podfile2 => $manpage2, - ... - ); - - # or args on @ARGV - -pod2man() is a function performing most of the duties of the pod2man -program. Its arguments are exactly the same as pod2man as of 5.8.0 -with the addition of: - - --perm_rw octal permission to set the resulting manpage to - -And the removal of: - - --verbose/-v - --help/-h - -If no arguments are given to pod2man it will read from @ARGV. - -If Pod::Man is unavailable, this function will warn and return undef. - -=cut - -sub pod2man { - local @ARGV = @_ ? @_ : @ARGV; - - { - local $@; - if( !eval { require Pod::Man } ) { - warn "Pod::Man is not available: $@". - "Man pages will not be generated during this install.\n"; - return 0; - } - } - require Getopt::Long; - - # We will cheat and just use Getopt::Long. We fool it by putting - # our arguments into @ARGV. Should be safe. - my %options = (); - Getopt::Long::config ('bundling_override'); - Getopt::Long::GetOptions (\%options, - 'section|s=s', 'release|r=s', 'center|c=s', - 'date|d=s', 'fixed=s', 'fixedbold=s', 'fixeditalic=s', - 'fixedbolditalic=s', 'official|o', 'quotes|q=s', 'lax|l', - 'name|n=s', 'perm_rw=i', 'utf8|u' - ); - delete $options{utf8} unless $Pod::Man::VERSION >= 2.17; - - # If there's no files, don't bother going further. - return 0 unless @ARGV; - - # Official sets --center, but don't override things explicitly set. - if ($options{official} && !defined $options{center}) { - $options{center} = q[Perl Programmer's Reference Guide]; - } - - # This isn't a valid Pod::Man option and is only accepted for backwards - # compatibility. - delete $options{lax}; - my $count = scalar @ARGV / 2; - my $plural = $count == 1 ? 'document' : 'documents'; - print "Manifying $count pod $plural\n"; - - do {{ # so 'next' works - my ($pod, $man) = splice(@ARGV, 0, 2); - - next if ((-e $man) && - (mtime($man) > mtime($pod)) && - (mtime($man) > mtime("Makefile"))); - - my $parser = Pod::Man->new(%options); - $parser->parse_from_file($pod, $man) - or do { warn("Could not install $man\n"); next }; - - if (exists $options{perm_rw}) { - chmod(oct($options{perm_rw}), $man) - or do { warn("chmod $options{perm_rw} $man: $!\n"); next }; - } - }} while @ARGV; - - return 1; -} - - -=item B<warn_if_old_packlist> - - perl "-MExtUtils::Command::MM" -e warn_if_old_packlist <somefile> - -Displays a warning that an old packlist file was found. Reads the -filename from @ARGV. - -=cut - -sub warn_if_old_packlist { - my $packlist = $ARGV[0]; - - return unless -f $packlist; - print <<"PACKLIST_WARNING"; -WARNING: I have found an old package in - $packlist. -Please make sure the two installations are not conflicting -PACKLIST_WARNING - -} - - -=item B<perllocal_install> - - perl "-MExtUtils::Command::MM" -e perllocal_install - <type> <module name> <key> <value> ... - - # VMS only, key|value pairs come on STDIN - perl "-MExtUtils::Command::MM" -e perllocal_install - <type> <module name> < <key>|<value> ... - -Prints a fragment of POD suitable for appending to perllocal.pod. -Arguments are read from @ARGV. - -'type' is the type of what you're installing. Usually 'Module'. - -'module name' is simply the name of your module. (Foo::Bar) - -Key/value pairs are extra information about the module. Fields include: - - installed into which directory your module was out into - LINKTYPE dynamic or static linking - VERSION module version number - EXE_FILES any executables installed in a space separated - list - -=cut - -sub perllocal_install { - my($type, $name) = splice(@ARGV, 0, 2); - - # VMS feeds args as a piped file on STDIN since it usually can't - # fit all the args on a single command line. - my @mod_info = $Is_VMS ? split /\|/, <STDIN> - : @ARGV; - - my $pod; - my $time = gmtime($ENV{SOURCE_DATE_EPOCH} || time); - $pod = sprintf <<'POD', scalar($time), $type, $name, $name; - =head2 %s: C<%s> L<%s|%s> - - =over 4 - -POD - - do { - my($key, $val) = splice(@mod_info, 0, 2); - - $pod .= <<POD - =item * - - C<$key: $val> - -POD - - } while(@mod_info); - - $pod .= "=back\n\n"; - $pod =~ s/^ //mg; - print $pod; - - return 1; -} - -=item B<uninstall> - - perl "-MExtUtils::Command::MM" -e uninstall <packlist> - -A wrapper around ExtUtils::Install::uninstall(). Warns that -uninstallation is deprecated and doesn't actually perform the -uninstallation. - -=cut - -sub uninstall { - my($packlist) = shift @ARGV; - - require ExtUtils::Install; - - print <<'WARNING'; - -Uninstall is unsafe and deprecated, the uninstallation was not performed. -We will show what would have been done. - -WARNING - - ExtUtils::Install::uninstall($packlist, 1, 1); - - print <<'WARNING'; - -Uninstall is unsafe and deprecated, the uninstallation was not performed. -Please check the list above carefully, there may be errors. -Remove the appropriate files manually. -Sorry for the inconvenience. - -WARNING - -} - -=item B<test_s> - - perl "-MExtUtils::Command::MM" -e test_s <file> - -Tests if a file exists and is not empty (size > 0). -I<Exits> with 0 if it does, 1 if it does not. - -=cut - -sub test_s { - exit(-s $ARGV[0] ? 0 : 1); -} - -=item B<cp_nonempty> - - perl "-MExtUtils::Command::MM" -e cp_nonempty <srcfile> <dstfile> <perm> - -Tests if the source file exists and is not empty (size > 0). If it is not empty -it copies it to the given destination with the given permissions. - -=back - -=cut - -sub cp_nonempty { - my @args = @ARGV; - return 0 unless -s $args[0]; - require ExtUtils::Command; - { - local @ARGV = @args[0,1]; - ExtUtils::Command::cp(@ARGV); - } - { - local @ARGV = @args[2,1]; - ExtUtils::Command::chmod(@ARGV); - } -} - - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/CppGuess.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/CppGuess.pm deleted file mode 100644 index 818af5bc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/CppGuess.pm +++ /dev/null @@ -1,351 +0,0 @@ -package ExtUtils::CppGuess; - -use strict; -use warnings; - -=head1 NAME - -ExtUtils::CppGuess - guess C++ compiler and flags - -=head1 SYNOPSIS - -With L<Extutils::MakeMaker>: - - use ExtUtils::CppGuess; - - my $guess = ExtUtils::CppGuess->new; - - WriteMakefile - ( # MakeMaker args, - $guess->makemaker_options, - ); - -With L<Module::Build>: - - my $guess = ExtUtils::CppGuess->new; - - my $build = Module::Build->new - ( # Module::Build arguments - $guess->module_build_options, - ); - $build->create_build_script; - -=head1 DESCRIPTION - -C<ExtUtils::CppGuess> attempts to guess the system's C++ compiler -that is compatible with the C compiler that your perl was built with. - -It can generate the necessary options to the L<Module::Build> -constructor or to L<ExtUtils::MakeMaker>'s C<WriteMakefile> -function. - -=head1 METHODS - -=head2 new - -Creates a new C<ExtUtils::CppGuess> object. -Takes the path to the C compiler as the C<cc> argument, -but falls back to the value of C<$Config{cc}>, which should -be what you want anyway. - -You can specify C<extra_compiler_flags> and C<extra_linker_flags> -(as strings) which will be merged in with the auto-detected ones. - -=head2 module_build_options - -Returns the correct options to the constructor of C<Module::Build>. -These are: - - extra_compiler_flags - extra_linker_flags - -=head2 makemaker_options - -Returns the correct options to the C<WriteMakefile> function of -C<ExtUtils::MakeMaker>. -These are: - - CCFLAGS - dynamic_lib => { OTHERLDFLAGS => ... } - -If you specify the extra compiler or linker flags in the -constructor, they'll be merged into C<CCFLAGS> or -C<OTHERLDFLAGS> respectively. - -=head2 is_gcc - -Returns true if the detected compiler is in the gcc family. - -=head2 is_msvc - -Returns true if the detected compiler is in the MS VC family. - -=head2 add_extra_compiler_flags - -Takes a string as argument that is added to the string of extra compiler -flags. - -=head2 add_extra_linker_flags - -Takes a string as argument that is added to the string of extra linker -flags. - -=head1 AUTHOR - -Mattia Barbon <mbarbon@cpan.org> - -Steffen Mueller <smueller@cpan.org> - -Tobias Leich <froggs@cpan.org> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2010, 2011 by Mattia Barbon. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut - -use Config (); -use File::Basename qw(); -use Capture::Tiny 'capture_merged'; - -our $VERSION = '0.12'; - -sub new { - my( $class, %args ) = @_; - my $self = bless { %args }, $class; - - # Allow override of default %Config::Config; useful in testing. - if( ! exists $self->{config} || ! defined $self->{config} ) { - $self->{config} = \%Config::Config; - } - - # Allow a 'cc' %args. If not supplied, pull from {config}, or $Config{cc}. - if( ! exists $self->{cc} || ! defined $self->{cc} ) { - $self->{cc} - = exists $self->{config}{cc} && defined $self->{config}{cc} - ? $self->{config}{cc} - : $Config::Config{cc}; - } - - # Set up osname. - if( ! exists $self->{os} || ! defined $self->{os} ) { - $self->{os} - = exists $self->{config}{osname} && defined $self->{config}{osname} - ? $self->{config}{osname} - : $^O; - } - - return $self; -} - -# Thus saith the law: All references to %Config::Config shall come through -# $self->_config. Accessors shall provide access to key components thereof. -# Testing shall thus grow stronger, verifying performance for platforms diverse -# to which access we have not. - -sub _config { shift->{config} } -sub _cc { shift->{cc} } -sub _os { shift->{os} } - - -sub guess_compiler { - my $self = shift; - - return $self->{guess} if $self->{guess}; - - if( $self->_os =~ /^mswin/i ) { - $self->_guess_win32() or return; - } else { - $self->_guess_unix() or return; - } - return $self->{guess}; -} - - -sub _get_cflags { - my $self = shift; - - $self->guess_compiler or die; - - my $cflags = ' ' . $self->_config->{ccflags}; - $cflags .= ' ' . $self->{guess}{extra_cflags}; - $cflags .= ' ' . $self->{extra_compiler_flags} - if defined $self->{extra_compiler_flags}; - - return $cflags; -} - - -sub _get_lflags { - my $self = shift; - - $self->guess_compiler || die; - - my $lflags = $self->{guess}{extra_lflags}; - $lflags .= ' ' . $self->{extra_linker_flags} - if defined $self->{extra_linker_flags}; - - return $lflags; -} - - -sub makemaker_options { - my $self = shift; - - my $lflags = $self->_get_lflags; - my $cflags = $self->_get_cflags; - - return ( - CCFLAGS => $cflags, - dynamic_lib => { OTHERLDFLAGS => $lflags }, - ); -} - - -sub module_build_options { - my $self = shift; - - my $lflags = $self->_get_lflags; - my $cflags = $self->_get_cflags; - - return ( - extra_compiler_flags => $cflags, - extra_linker_flags => $lflags, - ); -} - - -sub _guess_win32 { - my $self = shift; - my $c_compiler = $self->_cc; -# $c_compiler = $Config::Config{cc} if not defined $c_compiler; - - if( $self->_cc_is_gcc( $c_compiler ) ) { - $self->{guess} = { - extra_cflags => ' -xc++ ', - extra_lflags => ' -lstdc++ ', - }; - } elsif( $self->_cc_is_msvc( $c_compiler ) ) { - $self->{guess} = { - extra_cflags => ' -TP -EHsc ', - extra_lflags => ' msvcprt.lib ', - }; - } else { - die "Unable to determine a C++ compiler for '$c_compiler'"; - } - - return 1; -} - - -sub _guess_unix { - my $self = shift; - my $c_compiler = $self->_cc; -# $c_compiler = $Config::Config{cc} if not defined $c_compiler; - - if( !$self->_cc_is_gcc( $c_compiler ) ) { - die "Unable to determine a C++ compiler for '$c_compiler'"; - } - - $self->{guess} = { - extra_cflags => ' -xc++ ', - extra_lflags => ' -lstdc++ ', - }; - $self->{guess}{extra_lflags} .= ' -lgcc_s' - if $self->_os eq 'netbsd' && $self->{guess}{extra_lflags} !~ /-lgcc_s/; - - return 1; -} - -# originally from Alien::wxWidgets::Utility -# Why was this hanging around outside of all functions, and without any other -# use of $quotes? -# my $quotes = $self->_os =~ /MSWin32/ ? '"' : "'"; - -sub _capture { - my @cmd = @_; - - my $out = capture_merged { system(@cmd) }; - $out = '' if not defined $out; - - return $out; -} - -# capture the output of a command that is run with piping -# to stdin of the command. We immediately close the pipe. -sub _capture_empty_stdin { - my $cmd = shift; - my $out = capture_merged { - if ( open my $fh, '|-', $cmd ) { - close $fh; - } - }; - $out = '' if not defined $out; - - return $out; -} - - -sub _cc_is_msvc { - my( $self, $cc ) = @_; - $self->{is_msvc} - = ($self->_os =~ /MSWin32/ and File::Basename::basename($cc) =~ /^cl/i); - return $self->{is_msvc}; -} - - -sub _cc_is_gcc { - my( $self, $cc ) = @_; - - $self->{is_gcc} = 0; - my $cc_version = _capture( "$cc --version" ); - if ( - $cc_version =~ m/\bg(?:cc|\+\+)/i # 3.x, some 4.x - || scalar( _capture( "$cc" ) =~ m/\bgcc\b/i ) # 2.95 - || scalar(_capture_empty_stdin("$cc -dM -E -") =~ /__GNUC__/) # more or less universal? - || scalar($cc_version =~ m/\bcc\b.*Free Software Foundation/si) # some 4.x? - ) { - $self->{is_gcc} = 1; - } - - return $self->{is_gcc}; -} - - -sub is_gcc { - my $self = shift; - $self->guess_compiler || die; - return $self->{is_gcc}; -} - -sub is_msvc { - my $self = shift; - - $self->guess_compiler || die; - - return $self->{is_msvc}; -} - -sub add_extra_compiler_flags { - my( $self, $string ) = @_; - - $self->{extra_compiler_flags} - = defined($self->{extra_compiler_flags}) - ? $self->{extra_compiler_flags} . ' ' . $string - : $string; -} - - -sub add_extra_linker_flags { - my( $self, $string ) = @_; - $self->{extra_linker_flags} - = defined($self->{extra_linker_flags}) - ? $self->{extra_linker_flags} . ' ' . $string - : $string; -} - - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Install.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Install.pm deleted file mode 100644 index 202a1cc5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Install.pm +++ /dev/null @@ -1,1356 +0,0 @@ -package ExtUtils::Install; -use strict; - -use vars qw(@ISA @EXPORT $VERSION $MUST_REBOOT %Config); - -use AutoSplit; -use Carp (); -use Config qw(%Config); -use Cwd qw(cwd); -use Exporter; -use ExtUtils::Packlist; -use File::Basename qw(dirname); -use File::Compare qw(compare); -use File::Copy; -use File::Find qw(find); -use File::Path; -use File::Spec; - - -@ISA = ('Exporter'); -@EXPORT = ('install','uninstall','pm_to_blib', 'install_default'); - -=pod - -=head1 NAME - -ExtUtils::Install - install files from here to there - -=head1 SYNOPSIS - - use ExtUtils::Install; - - install({ 'blib/lib' => 'some/install/dir' } ); - - uninstall($packlist); - - pm_to_blib({ 'lib/Foo/Bar.pm' => 'blib/lib/Foo/Bar.pm' }); - -=head1 VERSION - -2.06 - -=cut - -$VERSION = '2.06'; # <-- do not forget to update the POD section just above this line! -$VERSION = eval $VERSION; - -=pod - -=head1 DESCRIPTION - -Handles the installing and uninstalling of perl modules, scripts, man -pages, etc... - -Both install() and uninstall() are specific to the way -ExtUtils::MakeMaker handles the installation and deinstallation of -perl modules. They are not designed as general purpose tools. - -On some operating systems such as Win32 installation may not be possible -until after a reboot has occurred. This can have varying consequences: -removing an old DLL does not impact programs using the new one, but if -a new DLL cannot be installed properly until reboot then anything -depending on it must wait. The package variable - - $ExtUtils::Install::MUST_REBOOT - -is used to store this status. - -If this variable is true then such an operation has occurred and -anything depending on this module cannot proceed until a reboot -has occurred. - -If this value is defined but false then such an operation has -ocurred, but should not impact later operations. - -=over - -=begin _private - -=item _chmod($$;$) - -Wrapper to chmod() for debugging and error trapping. - -=item _warnonce(@) - -Warns about something only once. - -=item _choke(@) - -Dies with a special message. - -=back - -=end _private - -=cut - -my $Is_VMS = $^O eq 'VMS'; -my $Is_MacPerl = $^O eq 'MacOS'; -my $Is_Win32 = $^O eq 'MSWin32'; -my $Is_cygwin = $^O eq 'cygwin'; -my $CanMoveAtBoot = ($Is_Win32 || $Is_cygwin); - - -my $Inc_uninstall_warn_handler; - -# install relative to here - -my $INSTALL_ROOT = $ENV{PERL_INSTALL_ROOT}; -my $INSTALL_QUIET = $ENV{PERL_INSTALL_QUIET}; - -my $Curdir = File::Spec->curdir; -my $Updir = File::Spec->updir; - -sub _estr(@) { - return join "\n",'!' x 72,@_,'!' x 72,''; -} - -{my %warned; -sub _warnonce(@) { - my $first=shift; - my $msg=_estr "WARNING: $first",@_; - warn $msg unless $warned{$msg}++; -}} - -sub _choke(@) { - my $first=shift; - my $msg=_estr "ERROR: $first",@_; - Carp::croak($msg); -} - - -sub _chmod($$;$) { - my ( $mode, $item, $verbose )=@_; - $verbose ||= 0; - if (chmod $mode, $item) { - printf "chmod(0%o, %s)\n",$mode, $item if $verbose > 1; - } else { - my $err="$!"; - _warnonce sprintf "WARNING: Failed chmod(0%o, %s): %s\n", - $mode, $item, $err - if -e $item; - } -} - -=begin _private - -=over - -=item _move_file_at_boot( $file, $target, $moan ) - -OS-Specific, Win32/Cygwin - -Schedules a file to be moved/renamed/deleted at next boot. -$file should be a filespec of an existing file -$target should be a ref to an array if the file is to be deleted -otherwise it should be a filespec for a rename. If the file is existing -it will be replaced. - -Sets $MUST_REBOOT to 0 to indicate a deletion operation has occurred -and sets it to 1 to indicate that a move operation has been requested. - -returns 1 on success, on failure if $moan is false errors are fatal. -If $moan is true then returns 0 on error and warns instead of dies. - -=end _private - -=cut - -{ - my $Has_Win32API_File; - sub _move_file_at_boot { #XXX OS-SPECIFIC - my ( $file, $target, $moan )= @_; - Carp::confess("Panic: Can't _move_file_at_boot on this platform!") - unless $CanMoveAtBoot; - - my $descr= ref $target - ? "'$file' for deletion" - : "'$file' for installation as '$target'"; - - # *note* CanMoveAtBoot is only incidentally the same condition as below - # this needs not hold true in the future. - $Has_Win32API_File = ($Is_Win32 || $Is_cygwin) - ? (eval {require Win32API::File; 1} || 0) - : 0 unless defined $Has_Win32API_File; - if ( ! $Has_Win32API_File ) { - - my @msg=( - "Cannot schedule $descr at reboot.", - "Try installing Win32API::File to allow operations on locked files", - "to be scheduled during reboot. Or try to perform the operation by", - "hand yourself. (You may need to close other perl processes first)" - ); - if ( $moan ) { _warnonce(@msg) } else { _choke(@msg) } - return 0; - } - my $opts= Win32API::File::MOVEFILE_DELAY_UNTIL_REBOOT(); - $opts= $opts | Win32API::File::MOVEFILE_REPLACE_EXISTING() - unless ref $target; - - _chmod( 0666, $file ); - _chmod( 0666, $target ) unless ref $target; - - if (Win32API::File::MoveFileEx( $file, $target, $opts )) { - $MUST_REBOOT ||= ref $target ? 0 : 1; - return 1; - } else { - my @msg=( - "MoveFileEx $descr at reboot failed: $^E", - "You may try to perform the operation by hand yourself. ", - "(You may need to close other perl processes first).", - ); - if ( $moan ) { _warnonce(@msg) } else { _choke(@msg) } - } - return 0; - } -} - - -=begin _private - - -=item _unlink_or_rename( $file, $tryhard, $installing ) - -OS-Specific, Win32/Cygwin - -Tries to get a file out of the way by unlinking it or renaming it. On -some OS'es (Win32 based) DLL files can end up locked such that they can -be renamed but not deleted. Likewise sometimes a file can be locked such -that it cant even be renamed or changed except at reboot. To handle -these cases this routine finds a tempfile name that it can either rename -the file out of the way or use as a proxy for the install so that the -rename can happen later (at reboot). - - $file : the file to remove. - $tryhard : should advanced tricks be used for deletion - $installing : we are not merely deleting but we want to overwrite - -When $tryhard is not true if the unlink fails its fatal. When $tryhard -is true then the file is attempted to be renamed. The renamed file is -then scheduled for deletion. If the rename fails then $installing -governs what happens. If it is false the failure is fatal. If it is true -then an attempt is made to schedule installation at boot using a -temporary file to hold the new file. If this fails then a fatal error is -thrown, if it succeeds it returns the temporary file name (which will be -a derivative of the original in the same directory) so that the caller can -use it to install under. In all other cases of success returns $file. -On failure throws a fatal error. - -=end _private - -=cut - - - -sub _unlink_or_rename { #XXX OS-SPECIFIC - my ( $file, $tryhard, $installing )= @_; - - # this chmod was originally unconditional. However, its not needed on - # POSIXy systems since permission to unlink a file is specified by the - # directory rather than the file; and in fact it screwed up hard- and - # symlinked files. Keep it for other platforms in case its still - # needed there. - if ($^O =~ /^(dos|os2|MSWin32|VMS)$/) { - _chmod( 0666, $file ); - } - my $unlink_count = 0; - while (unlink $file) { $unlink_count++; } - return $file if $unlink_count > 0; - my $error="$!"; - - _choke("Cannot unlink '$file': $!") - unless $CanMoveAtBoot && $tryhard; - - my $tmp= "AAA"; - ++$tmp while -e "$file.$tmp"; - $tmp= "$file.$tmp"; - - warn "WARNING: Unable to unlink '$file': $error\n", - "Going to try to rename it to '$tmp'.\n"; - - if ( rename $file, $tmp ) { - warn "Rename successful. Scheduling '$tmp'\nfor deletion at reboot.\n"; - # when $installing we can set $moan to true. - # IOW, if we cant delete the renamed file at reboot its - # not the end of the world. The other cases are more serious - # and need to be fatal. - _move_file_at_boot( $tmp, [], $installing ); - return $file; - } elsif ( $installing ) { - _warnonce("Rename failed: $!. Scheduling '$tmp'\nfor". - " installation as '$file' at reboot.\n"); - _move_file_at_boot( $tmp, $file ); - return $tmp; - } else { - _choke("Rename failed:$!", "Cannot proceed."); - } - -} - - -=pod - -=back - -=head2 Functions - -=begin _private - -=over - -=item _get_install_skip - -Handles loading the INSTALL.SKIP file. Returns an array of patterns to use. - -=cut - - - -sub _get_install_skip { - my ( $skip, $verbose )= @_; - if ($ENV{EU_INSTALL_IGNORE_SKIP}) { - print "EU_INSTALL_IGNORE_SKIP is set, ignore skipfile settings\n" - if $verbose>2; - return []; - } - if ( ! defined $skip ) { - print "Looking for install skip list\n" - if $verbose>2; - for my $file ( 'INSTALL.SKIP', $ENV{EU_INSTALL_SITE_SKIPFILE} ) { - next unless $file; - print "\tChecking for $file\n" - if $verbose>2; - if (-e $file) { - $skip= $file; - last; - } - } - } - if ($skip && !ref $skip) { - print "Reading skip patterns from '$skip'.\n" - if $verbose; - if (open my $fh,$skip ) { - my @patterns; - while (<$fh>) { - chomp; - next if /^\s*(?:#|$)/; - print "\tSkip pattern: $_\n" if $verbose>3; - push @patterns, $_; - } - $skip= \@patterns; - } else { - warn "Can't read skip file:'$skip':$!\n"; - $skip=[]; - } - } elsif ( UNIVERSAL::isa($skip,'ARRAY') ) { - print "Using array for skip list\n" - if $verbose>2; - } elsif ($verbose) { - print "No skip list found.\n" - if $verbose>1; - $skip= []; - } - warn "Got @{[0+@$skip]} skip patterns.\n" - if $verbose>3; - return $skip -} - -=pod - -=item _have_write_access - -Abstract a -w check that tries to use POSIX::access() if possible. - -=cut - -{ - my $has_posix; - sub _have_write_access { - my $dir=shift; - unless (defined $has_posix) { - $has_posix= (!$Is_cygwin && !$Is_Win32 - && eval 'local $^W; require POSIX; 1') || 0; - } - if ($has_posix) { - return POSIX::access($dir, POSIX::W_OK()); - } else { - return -w $dir; - } - } -} - -=pod - -=item _can_write_dir(C<$dir>) - -Checks whether a given directory is writable, taking account -the possibility that the directory might not exist and would have to -be created first. - -Returns a list, containing: C<($writable, $determined_by, @create)> - -C<$writable> says whether the directory is (hypothetically) writable - -C<$determined_by> is the directory the status was determined from. It will be -either the C<$dir>, or one of its parents. - -C<@create> is a list of directories that would probably have to be created -to make the requested directory. It may not actually be correct on -relative paths with C<..> in them. But for our purposes it should work ok - -=cut - - -sub _can_write_dir { - my $dir=shift; - return - unless defined $dir and length $dir; - - my ($vol, $dirs, $file) = File::Spec->splitpath($dir,1); - my @dirs = File::Spec->splitdir($dirs); - unshift @dirs, File::Spec->curdir - unless File::Spec->file_name_is_absolute($dir); - - my $path=''; - my @make; - while (@dirs) { - if ($Is_VMS) { - $dir = File::Spec->catdir($vol,@dirs); - } - else { - $dir = File::Spec->catdir(@dirs); - $dir = File::Spec->catpath($vol,$dir,'') - if defined $vol and length $vol; - } - next if ( $dir eq $path ); - if ( ! -e $dir ) { - unshift @make,$dir; - next; - } - if ( _have_write_access($dir) ) { - return 1,$dir,@make - } else { - return 0,$dir,@make - } - } continue { - pop @dirs; - } - return 0; -} - -=pod - -=item _mkpath($dir,$show,$mode,$verbose,$dry_run) - -Wrapper around File::Path::mkpath() to handle errors. - -If $verbose is true and >1 then additional diagnostics will be produced, also -this will force $show to true. - -If $dry_run is true then the directory will not be created but a check will be -made to see whether it would be possible to write to the directory, or that -it would be possible to create the directory. - -If $dry_run is not true dies if the directory can not be created or is not -writable. - -=cut - -sub _mkpath { - my ($dir,$show,$mode,$verbose,$dry_run)=@_; - if ( $verbose && $verbose > 1 && ! -d $dir) { - $show= 1; - printf "mkpath(%s,%d,%#o)\n", $dir, $show, $mode; - } - if (!$dry_run) { - if ( ! eval { File::Path::mkpath($dir,$show,$mode); 1 } ) { - _choke("Can't create '$dir'","$@"); - } - - } - my ($can,$root,@make)=_can_write_dir($dir); - if (!$can) { - my @msg=( - "Can't create '$dir'", - $root ? "Do not have write permissions on '$root'" - : "Unknown Error" - ); - if ($dry_run) { - _warnonce @msg; - } else { - _choke @msg; - } - } elsif ($show and $dry_run) { - print "$_\n" for @make; - } - -} - -=pod - -=item _copy($from,$to,$verbose,$dry_run) - -Wrapper around File::Copy::copy to handle errors. - -If $verbose is true and >1 then additional diagnostics will be emitted. - -If $dry_run is true then the copy will not actually occur. - -Dies if the copy fails. - -=cut - - -sub _copy { - my ( $from, $to, $verbose, $dry_run)=@_; - if ($verbose && $verbose>1) { - printf "copy(%s,%s)\n", $from, $to; - } - if (!$dry_run) { - File::Copy::copy($from,$to) - or Carp::croak( _estr "ERROR: Cannot copy '$from' to '$to': $!" ); - } -} - -=pod - -=item _chdir($from) - -Wrapper around chdir to catch errors. - -If not called in void context returns the cwd from before the chdir. - -dies on error. - -=cut - -sub _chdir { - my ($dir)= @_; - my $ret; - if (defined wantarray) { - $ret= cwd; - } - chdir $dir - or _choke("Couldn't chdir to '$dir': $!"); - return $ret; -} - -=pod - -=back - -=end _private - -=over - -=item B<install> - - # deprecated forms - install(\%from_to); - install(\%from_to, $verbose, $dry_run, $uninstall_shadows, - $skip, $always_copy, \%result); - - # recommended form as of 1.47 - install([ - from_to => \%from_to, - verbose => 1, - dry_run => 0, - uninstall_shadows => 1, - skip => undef, - always_copy => 1, - result => \%install_results, - ]); - - -Copies each directory tree of %from_to to its corresponding value -preserving timestamps and permissions. - -There are two keys with a special meaning in the hash: "read" and -"write". These contain packlist files. After the copying is done, -install() will write the list of target files to $from_to{write}. If -$from_to{read} is given the contents of this file will be merged into -the written file. The read and the written file may be identical, but -on AFS it is quite likely that people are installing to a different -directory than the one where the files later appear. - -If $verbose is true, will print out each file removed. Default is -false. This is "make install VERBINST=1". $verbose values going -up to 5 show increasingly more diagnostics output. - -If $dry_run is true it will only print what it was going to do -without actually doing it. Default is false. - -If $uninstall_shadows is true any differing versions throughout @INC -will be uninstalled. This is "make install UNINST=1" - -As of 1.37_02 install() supports the use of a list of patterns to filter out -files that shouldn't be installed. If $skip is omitted or undefined then -install will try to read the list from INSTALL.SKIP in the CWD. This file is -a list of regular expressions and is just like the MANIFEST.SKIP file used -by L<ExtUtils::Manifest>. - -A default site INSTALL.SKIP may be provided by setting then environment -variable EU_INSTALL_SITE_SKIPFILE, this will only be used when there isn't a -distribution specific INSTALL.SKIP. If the environment variable -EU_INSTALL_IGNORE_SKIP is true then no install file filtering will be -performed. - -If $skip is undefined then the skip file will be autodetected and used if it -is found. If $skip is a reference to an array then it is assumed the array -contains the list of patterns, if $skip is a true non reference it is -assumed to be the filename holding the list of patterns, any other value of -$skip is taken to mean that no install filtering should occur. - -B<Changes As of Version 1.47> - -As of version 1.47 the following additions were made to the install interface. -Note that the new argument style and use of the %result hash is recommended. - -The $always_copy parameter which when true causes files to be updated -regardless as to whether they have changed, if it is defined but false then -copies are made only if the files have changed, if it is undefined then the -value of the environment variable EU_INSTALL_ALWAYS_COPY is used as default. - -The %result hash will be populated with the various keys/subhashes reflecting -the install. Currently these keys and their structure are: - - install => { $target => $source }, - install_fail => { $target => $source }, - install_unchanged => { $target => $source }, - - install_filtered => { $source => $pattern }, - - uninstall => { $uninstalled => $source }, - uninstall_fail => { $uninstalled => $source }, - -where C<$source> is the filespec of the file being installed. C<$target> is where -it is being installed to, and C<$uninstalled> is any shadow file that is in C<@INC> -or C<$ENV{PERL5LIB}> or other standard locations, and C<$pattern> is the pattern that -caused a source file to be skipped. In future more keys will be added, such as to -show created directories, however this requires changes in other modules and must -therefore wait. - -These keys will be populated before any exceptions are thrown should there be an -error. - -Note that all updates of the %result are additive, the hash will not be -cleared before use, thus allowing status results of many installs to be easily -aggregated. - -B<NEW ARGUMENT STYLE> - -If there is only one argument and it is a reference to an array then -the array is assumed to contain a list of key-value pairs specifying -the options. In this case the option "from_to" is mandatory. This style -means that you do not have to supply a cryptic list of arguments and can -use a self documenting argument list that is easier to understand. - -This is now the recommended interface to install(). - -B<RETURN> - -If all actions were successful install will return a hashref of the results -as described above for the $result parameter. If any action is a failure -then install will die, therefore it is recommended to pass in the $result -parameter instead of using the return value. If the result parameter is -provided then the returned hashref will be the passed in hashref. - -=cut - -sub install { #XXX OS-SPECIFIC - my($from_to,$verbose,$dry_run,$uninstall_shadows,$skip,$always_copy,$result) = @_; - if (@_==1 and eval { 1+@$from_to }) { - my %opts = @$from_to; - $from_to = $opts{from_to} - or Carp::confess("from_to is a mandatory parameter"); - $verbose = $opts{verbose}; - $dry_run = $opts{dry_run}; - $uninstall_shadows = $opts{uninstall_shadows}; - $skip = $opts{skip}; - $always_copy = $opts{always_copy}; - $result = $opts{result}; - } - - $result ||= {}; - $verbose ||= 0; - $dry_run ||= 0; - - $skip= _get_install_skip($skip,$verbose); - $always_copy = $ENV{EU_INSTALL_ALWAYS_COPY} - || $ENV{EU_ALWAYS_COPY} - || 0 - unless defined $always_copy; - - my(%from_to) = %$from_to; - my(%pack, $dir, %warned); - my($packlist) = ExtUtils::Packlist->new(); - - local(*DIR); - for (qw/read write/) { - $pack{$_}=$from_to{$_}; - delete $from_to{$_}; - } - my $tmpfile = install_rooted_file($pack{"read"}); - $packlist->read($tmpfile) if (-f $tmpfile); - my $cwd = cwd(); - my @found_files; - my %check_dirs; - - MOD_INSTALL: foreach my $source (sort keys %from_to) { - #copy the tree to the target directory without altering - #timestamp and permission and remember for the .packlist - #file. The packlist file contains the absolute paths of the - #install locations. AFS users may call this a bug. We'll have - #to reconsider how to add the means to satisfy AFS users also. - - #October 1997: we want to install .pm files into archlib if - #there are any files in arch. So we depend on having ./blib/arch - #hardcoded here. - - my $targetroot = install_rooted_dir($from_to{$source}); - - my $blib_lib = File::Spec->catdir('blib', 'lib'); - my $blib_arch = File::Spec->catdir('blib', 'arch'); - if ($source eq $blib_lib and - exists $from_to{$blib_arch} and - directory_not_empty($blib_arch) - ){ - $targetroot = install_rooted_dir($from_to{$blib_arch}); - print "Files found in $blib_arch: installing files in $blib_lib into architecture dependent library tree\n"; - } - - next unless -d $source; - _chdir($source); - # 5.5.3's File::Find missing no_chdir option - # XXX OS-SPECIFIC - # File::Find seems to always be Unixy except on MacPerl :( - my $current_directory= $Is_MacPerl ? $Curdir : '.'; - find(sub { - my ($mode,$size,$atime,$mtime) = (stat)[2,7,8,9]; - - return if !-f _; - my $origfile = $_; - - return if $origfile eq ".exists"; - my $targetdir = File::Spec->catdir($targetroot, $File::Find::dir); - my $targetfile = File::Spec->catfile($targetdir, $origfile); - my $sourcedir = File::Spec->catdir($source, $File::Find::dir); - my $sourcefile = File::Spec->catfile($sourcedir, $origfile); - - for my $pat (@$skip) { - if ( $sourcefile=~/$pat/ ) { - print "Skipping $targetfile (filtered)\n" - if $verbose>1; - $result->{install_filtered}{$sourcefile} = $pat; - return; - } - } - # we have to do this for back compat with old File::Finds - # and because the target is relative - my $save_cwd = _chdir($cwd); - my $diff = 0; - # XXX: I wonder how useful this logic is actually -- demerphq - if ( $always_copy or !-f $targetfile or -s $targetfile != $size) { - $diff++; - } else { - # we might not need to copy this file - $diff = compare($sourcefile, $targetfile); - } - $check_dirs{$targetdir}++ - unless -w $targetfile; - - push @found_files, - [ $diff, $File::Find::dir, $origfile, - $mode, $size, $atime, $mtime, - $targetdir, $targetfile, $sourcedir, $sourcefile, - - ]; - #restore the original directory we were in when File::Find - #called us so that it doesn't get horribly confused. - _chdir($save_cwd); - }, $current_directory ); - _chdir($cwd); - } - foreach my $targetdir (sort keys %check_dirs) { - _mkpath( $targetdir, 0, 0755, $verbose, $dry_run ); - } - foreach my $found (@found_files) { - my ($diff, $ffd, $origfile, $mode, $size, $atime, $mtime, - $targetdir, $targetfile, $sourcedir, $sourcefile)= @$found; - - my $realtarget= $targetfile; - if ($diff) { - eval { - if (-f $targetfile) { - print "_unlink_or_rename($targetfile)\n" if $verbose>1; - $targetfile= _unlink_or_rename( $targetfile, 'tryhard', 'install' ) - unless $dry_run; - } elsif ( ! -d $targetdir ) { - _mkpath( $targetdir, 0, 0755, $verbose, $dry_run ); - } - print "Installing $targetfile\n"; - - _copy( $sourcefile, $targetfile, $verbose, $dry_run, ); - - - #XXX OS-SPECIFIC - print "utime($atime,$mtime,$targetfile)\n" if $verbose>1; - utime($atime,$mtime + $Is_VMS,$targetfile) unless $dry_run>1; - - - $mode = 0444 | ( $mode & 0111 ? 0111 : 0 ); - $mode = $mode | 0222 - if $realtarget ne $targetfile; - _chmod( $mode, $targetfile, $verbose ); - $result->{install}{$targetfile} = $sourcefile; - 1 - } or do { - $result->{install_fail}{$targetfile} = $sourcefile; - die $@; - }; - } else { - $result->{install_unchanged}{$targetfile} = $sourcefile; - print "Skipping $targetfile (unchanged)\n" if $verbose; - } - - if ( $uninstall_shadows ) { - inc_uninstall($sourcefile,$ffd, $verbose, - $dry_run, - $realtarget ne $targetfile ? $realtarget : "", - $result); - } - - # Record the full pathname. - $packlist->{$targetfile}++; - } - - if ($pack{'write'}) { - $dir = install_rooted_dir(dirname($pack{'write'})); - _mkpath( $dir, 0, 0755, $verbose, $dry_run ); - print "Writing $pack{'write'}\n" if $verbose; - $packlist->write(install_rooted_file($pack{'write'})) unless $dry_run; - } - - _do_cleanup($verbose); - return $result; -} - -=begin _private - -=item _do_cleanup - -Standardize finish event for after another instruction has occurred. -Handles converting $MUST_REBOOT to a die for instance. - -=end _private - -=cut - -sub _do_cleanup { - my ($verbose) = @_; - if ($MUST_REBOOT) { - die _estr "Operation not completed! ", - "You must reboot to complete the installation.", - "Sorry."; - } elsif (defined $MUST_REBOOT & $verbose) { - warn _estr "Installation will be completed at the next reboot.\n", - "However it is not necessary to reboot immediately.\n"; - } -} - -=begin _undocumented - -=item install_rooted_file( $file ) - -Returns $file, or catfile($INSTALL_ROOT,$file) if $INSTALL_ROOT -is defined. - -=item install_rooted_dir( $dir ) - -Returns $dir, or catdir($INSTALL_ROOT,$dir) if $INSTALL_ROOT -is defined. - -=end _undocumented - -=cut - - -sub install_rooted_file { - if (defined $INSTALL_ROOT) { - File::Spec->catfile($INSTALL_ROOT, $_[0]); - } else { - $_[0]; - } -} - - -sub install_rooted_dir { - if (defined $INSTALL_ROOT) { - File::Spec->catdir($INSTALL_ROOT, $_[0]); - } else { - $_[0]; - } -} - -=begin _undocumented - -=item forceunlink( $file, $tryhard ) - -Tries to delete a file. If $tryhard is true then we will use whatever -devious tricks we can to delete the file. Currently this only applies to -Win32 in that it will try to use Win32API::File to schedule a delete at -reboot. A wrapper for _unlink_or_rename(). - -=end _undocumented - -=cut - - -sub forceunlink { - my ( $file, $tryhard )= @_; #XXX OS-SPECIFIC - _unlink_or_rename( $file, $tryhard, not("installing") ); -} - -=begin _undocumented - -=item directory_not_empty( $dir ) - -Returns 1 if there is an .exists file somewhere in a directory tree. -Returns 0 if there is not. - -=end _undocumented - -=cut - -sub directory_not_empty ($) { - my($dir) = @_; - my $files = 0; - find(sub { - return if $_ eq ".exists"; - if (-f) { - $File::Find::prune++; - $files = 1; - } - }, $dir); - return $files; -} - -=pod - -=item B<install_default> I<DISCOURAGED> - - install_default(); - install_default($fullext); - -Calls install() with arguments to copy a module from blib/ to the -default site installation location. - -$fullext is the name of the module converted to a directory -(ie. Foo::Bar would be Foo/Bar). If $fullext is not specified, it -will attempt to read it from @ARGV. - -This is primarily useful for install scripts. - -B<NOTE> This function is not really useful because of the hard-coded -install location with no way to control site vs core vs vendor -directories and the strange way in which the module name is given. -Consider its use discouraged. - -=cut - -sub install_default { - @_ < 2 or Carp::croak("install_default should be called with 0 or 1 argument"); - my $FULLEXT = @_ ? shift : $ARGV[0]; - defined $FULLEXT or die "Do not know to where to write install log"; - my $INST_LIB = File::Spec->catdir($Curdir,"blib","lib"); - my $INST_ARCHLIB = File::Spec->catdir($Curdir,"blib","arch"); - my $INST_BIN = File::Spec->catdir($Curdir,'blib','bin'); - my $INST_SCRIPT = File::Spec->catdir($Curdir,'blib','script'); - my $INST_MAN1DIR = File::Spec->catdir($Curdir,'blib','man1'); - my $INST_MAN3DIR = File::Spec->catdir($Curdir,'blib','man3'); - - my @INST_HTML; - if($Config{installhtmldir}) { - my $INST_HTMLDIR = File::Spec->catdir($Curdir,'blib','html'); - @INST_HTML = ($INST_HTMLDIR => $Config{installhtmldir}); - } - - install({ - read => "$Config{sitearchexp}/auto/$FULLEXT/.packlist", - write => "$Config{installsitearch}/auto/$FULLEXT/.packlist", - $INST_LIB => (directory_not_empty($INST_ARCHLIB)) ? - $Config{installsitearch} : - $Config{installsitelib}, - $INST_ARCHLIB => $Config{installsitearch}, - $INST_BIN => $Config{installbin} , - $INST_SCRIPT => $Config{installscript}, - $INST_MAN1DIR => $Config{installman1dir}, - $INST_MAN3DIR => $Config{installman3dir}, - @INST_HTML, - },1,0,0); -} - - -=item B<uninstall> - - uninstall($packlist_file); - uninstall($packlist_file, $verbose, $dont_execute); - -Removes the files listed in a $packlist_file. - -If $verbose is true, will print out each file removed. Default is -false. - -If $dont_execute is true it will only print what it was going to do -without actually doing it. Default is false. - -=cut - -sub uninstall { - my($fil,$verbose,$dry_run) = @_; - $verbose ||= 0; - $dry_run ||= 0; - - die _estr "ERROR: no packlist file found: '$fil'" - unless -f $fil; - # my $my_req = $self->catfile(qw(auto ExtUtils Install forceunlink.al)); - # require $my_req; # Hairy, but for the first - my ($packlist) = ExtUtils::Packlist->new($fil); - foreach (sort(keys(%$packlist))) { - chomp; - print "unlink $_\n" if $verbose; - forceunlink($_,'tryhard') unless $dry_run; - } - print "unlink $fil\n" if $verbose; - forceunlink($fil, 'tryhard') unless $dry_run; - _do_cleanup($verbose); -} - -=begin _undocumented - -=item inc_uninstall($filepath,$libdir,$verbose,$dry_run,$ignore,$results) - -Remove shadowed files. If $ignore is true then it is assumed to hold -a filename to ignore. This is used to prevent spurious warnings from -occurring when doing an install at reboot. - -We now only die when failing to remove a file that has precedence over -our own, when our install has precedence we only warn. - -$results is assumed to contain a hashref which will have the keys -'uninstall' and 'uninstall_fail' populated with keys for the files -removed and values of the source files they would shadow. - -=end _undocumented - -=cut - -sub inc_uninstall { - my($filepath,$libdir,$verbose,$dry_run,$ignore,$results) = @_; - my($dir); - $ignore||=""; - my $file = (File::Spec->splitpath($filepath))[2]; - my %seen_dir = (); - - my @PERL_ENV_LIB = split $Config{path_sep}, defined $ENV{'PERL5LIB'} - ? $ENV{'PERL5LIB'} : $ENV{'PERLLIB'} || ''; - - my @dirs=( @PERL_ENV_LIB, - @INC, - @Config{qw(archlibexp - privlibexp - sitearchexp - sitelibexp)}); - - #warn join "\n","---",@dirs,"---"; - my $seen_ours; - foreach $dir ( @dirs ) { - my $canonpath = $Is_VMS ? $dir : File::Spec->canonpath($dir); - next if $canonpath eq $Curdir; - next if $seen_dir{$canonpath}++; - my $targetfile = File::Spec->catfile($canonpath,$libdir,$file); - next unless -f $targetfile; - - # The reason why we compare file's contents is, that we cannot - # know, which is the file we just installed (AFS). So we leave - # an identical file in place - my $diff = 0; - if ( -f $targetfile && -s _ == -s $filepath) { - # We have a good chance, we can skip this one - $diff = compare($filepath,$targetfile); - } else { - $diff++; - } - print "#$file and $targetfile differ\n" if $diff && $verbose > 1; - - if (!$diff or $targetfile eq $ignore) { - $seen_ours = 1; - next; - } - if ($dry_run) { - $results->{uninstall}{$targetfile} = $filepath; - if ($verbose) { - $Inc_uninstall_warn_handler ||= ExtUtils::Install::Warn->new(); - $libdir =~ s|^\./||s ; # That's just cosmetics, no need to port. It looks prettier. - $Inc_uninstall_warn_handler->add( - File::Spec->catfile($libdir, $file), - $targetfile - ); - } - # if not verbose, we just say nothing - } else { - print "Unlinking $targetfile (shadowing?)\n" if $verbose; - eval { - die "Fake die for testing" - if $ExtUtils::Install::Testing and - ucase(File::Spec->canonpath($ExtUtils::Install::Testing)) eq ucase($targetfile); - forceunlink($targetfile,'tryhard'); - $results->{uninstall}{$targetfile} = $filepath; - 1; - } or do { - $results->{fail_uninstall}{$targetfile} = $filepath; - if ($seen_ours) { - warn "Failed to remove probably harmless shadow file '$targetfile'\n"; - } else { - die "$@\n"; - } - }; - } - } -} - -=begin _undocumented - -=item run_filter($cmd,$src,$dest) - -Filter $src using $cmd into $dest. - -=end _undocumented - -=cut - -sub run_filter { - my ($cmd, $src, $dest) = @_; - local(*CMD, *SRC); - open(CMD, "|$cmd >$dest") || die "Cannot fork: $!"; - open(SRC, $src) || die "Cannot open $src: $!"; - my $buf; - my $sz = 1024; - while (my $len = sysread(SRC, $buf, $sz)) { - syswrite(CMD, $buf, $len); - } - close SRC; - close CMD or die "Filter command '$cmd' failed for $src"; -} - -=pod - -=item B<pm_to_blib> - - pm_to_blib(\%from_to); - pm_to_blib(\%from_to, $autosplit_dir); - pm_to_blib(\%from_to, $autosplit_dir, $filter_cmd); - -Copies each key of %from_to to its corresponding value efficiently. -If an $autosplit_dir is provided, all .pm files will be autosplit into it. -Any destination directories are created. - -$filter_cmd is an optional shell command to run each .pm file through -prior to splitting and copying. Input is the contents of the module, -output the new module contents. - -You can have an environment variable PERL_INSTALL_ROOT set which will -be prepended as a directory to each installed file (and directory). - -By default verbose output is generated, setting the PERL_INSTALL_QUIET -environment variable will silence this output. - -=cut - -sub pm_to_blib { - my($fromto,$autodir,$pm_filter) = @_; - - _mkpath($autodir,0,0755) if defined $autodir; - while(my($from, $to) = each %$fromto) { - if( -f $to && -s $from == -s $to && -M $to < -M $from ) { - print "Skip $to (unchanged)\n" unless $INSTALL_QUIET; - next; - } - - # When a pm_filter is defined, we need to pre-process the source first - # to determine whether it has changed or not. Therefore, only perform - # the comparison check when there's no filter to be ran. - # -- RAM, 03/01/2001 - - my $need_filtering = defined $pm_filter && length $pm_filter && - $from =~ /\.pm$/; - - if (!$need_filtering && 0 == compare($from,$to)) { - print "Skip $to (unchanged)\n" unless $INSTALL_QUIET; - next; - } - if (-f $to){ - # we wont try hard here. its too likely to mess things up. - forceunlink($to); - } else { - _mkpath(dirname($to),0,0755); - } - if ($need_filtering) { - run_filter($pm_filter, $from, $to); - print "$pm_filter <$from >$to\n"; - } else { - _copy( $from, $to ); - print "cp $from $to\n" unless $INSTALL_QUIET; - } - my($mode,$atime,$mtime) = (stat $from)[2,8,9]; - utime($atime,$mtime+$Is_VMS,$to); - _chmod(0444 | ( $mode & 0111 ? 0111 : 0 ),$to); - next unless $from =~ /\.pm$/; - _autosplit($to,$autodir) if defined $autodir; - } -} - - -=begin _private - -=item _autosplit - -From 1.0307 back, AutoSplit will sometimes leave an open filehandle to -the file being split. This causes problems on systems with mandatory -locking (ie. Windows). So we wrap it and close the filehandle. - -=end _private - -=cut - -sub _autosplit { #XXX OS-SPECIFIC - my $retval = autosplit(@_); - close *AutoSplit::IN if defined *AutoSplit::IN{IO}; - - return $retval; -} - - -package ExtUtils::Install::Warn; - -sub new { bless {}, shift } - -sub add { - my($self,$file,$targetfile) = @_; - push @{$self->{$file}}, $targetfile; -} - -sub DESTROY { - unless(defined $INSTALL_ROOT) { - my $self = shift; - my($file,$i,$plural); - foreach $file (sort keys %$self) { - $plural = @{$self->{$file}} > 1 ? "s" : ""; - print "## Differing version$plural of $file found. You might like to\n"; - for (0..$#{$self->{$file}}) { - print "rm ", $self->{$file}[$_], "\n"; - $i++; - } - } - $plural = $i>1 ? "all those files" : "this file"; - my $inst = (_invokant() eq 'ExtUtils::MakeMaker') - ? ( $Config::Config{make} || 'make' ).' install' - . ( $Is_VMS ? '/MACRO="UNINST"=1' : ' UNINST=1' ) - : './Build install uninst=1'; - print "## Running '$inst' will unlink $plural for you.\n"; - } -} - -=begin _private - -=item _invokant - -Does a heuristic on the stack to see who called us for more intelligent -error messages. Currently assumes we will be called only by Module::Build -or by ExtUtils::MakeMaker. - -=end _private - -=cut - -sub _invokant { - my @stack; - my $frame = 0; - while (my $file = (caller($frame++))[1]) { - push @stack, (File::Spec->splitpath($file))[2]; - } - - my $builder; - my $top = pop @stack; - if ($top =~ /^Build/i || exists($INC{'Module/Build.pm'})) { - $builder = 'Module::Build'; - } else { - $builder = 'ExtUtils::MakeMaker'; - } - return $builder; -} - -=pod - -=back - -=head1 ENVIRONMENT - -=over 4 - -=item B<PERL_INSTALL_ROOT> - -Will be prepended to each install path. - -=item B<EU_INSTALL_IGNORE_SKIP> - -Will prevent the automatic use of INSTALL.SKIP as the install skip file. - -=item B<EU_INSTALL_SITE_SKIPFILE> - -If there is no INSTALL.SKIP file in the make directory then this value -can be used to provide a default. - -=item B<EU_INSTALL_ALWAYS_COPY> - -If this environment variable is true then normal install processes will -always overwrite older identical files during the install process. - -Note that the alias EU_ALWAYS_COPY will be supported if EU_INSTALL_ALWAYS_COPY -is not defined until at least the 1.50 release. Please ensure you use the -correct EU_INSTALL_ALWAYS_COPY. - -=back - -=head1 AUTHOR - -Original author lost in the mists of time. Probably the same as Makemaker. - -Production release currently maintained by demerphq C<yves at cpan.org>, -extensive changes by Michael G. Schwern. - -Send bug reports via http://rt.cpan.org/. Please send your -generated Makefile along with your report. - -=head1 LICENSE - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L<http://www.perl.com/perl/misc/Artistic.html> - - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Installed.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Installed.pm deleted file mode 100644 index d094e9d3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Installed.pm +++ /dev/null @@ -1,471 +0,0 @@ -package ExtUtils::Installed; - -use 5.00503; -use strict; -#use warnings; # XXX requires 5.6 -use Carp qw(); -use ExtUtils::Packlist; -use ExtUtils::MakeMaker; -use Config; -use File::Find; -use File::Basename; -use File::Spec; - -my $Is_VMS = $^O eq 'VMS'; -my $DOSISH = ($^O =~ /^(MSWin\d\d|os2|dos|mint)$/); - -require VMS::Filespec if $Is_VMS; - -use vars qw($VERSION); -$VERSION = '2.06'; -$VERSION = eval $VERSION; - -sub _is_prefix { - my ($self, $path, $prefix) = @_; - return unless defined $prefix && defined $path; - - if( $Is_VMS ) { - $prefix = VMS::Filespec::unixify($prefix); - $path = VMS::Filespec::unixify($path); - } - - # Unix path normalization. - $prefix = File::Spec->canonpath($prefix); - - return 1 if substr($path, 0, length($prefix)) eq $prefix; - - if ($DOSISH) { - $path =~ s|\\|/|g; - $prefix =~ s|\\|/|g; - return 1 if $path =~ m{^\Q$prefix\E}i; - } - return(0); -} - -sub _is_doc { - my ($self, $path) = @_; - - my $man1dir = $self->{':private:'}{Config}{man1direxp}; - my $man3dir = $self->{':private:'}{Config}{man3direxp}; - return(($man1dir && $self->_is_prefix($path, $man1dir)) - || - ($man3dir && $self->_is_prefix($path, $man3dir)) - ? 1 : 0) -} - -sub _is_type { - my ($self, $path, $type) = @_; - return 1 if $type eq "all"; - - return($self->_is_doc($path)) if $type eq "doc"; - my $conf= $self->{':private:'}{Config}; - if ($type eq "prog") { - return($self->_is_prefix($path, $conf->{prefix} || $conf->{prefixexp}) - && !($self->_is_doc($path)) ? 1 : 0); - } - return(0); -} - -sub _is_under { - my ($self, $path, @under) = @_; - $under[0] = "" if (! @under); - foreach my $dir (@under) { - return(1) if ($self->_is_prefix($path, $dir)); - } - - return(0); -} - -sub _fix_dirs { - my ($self, @dirs)= @_; - # File::Find does not know how to deal with VMS filepaths. - if( $Is_VMS ) { - $_ = VMS::Filespec::unixify($_) - for @dirs; - } - - if ($DOSISH) { - s|\\|/|g for @dirs; - } - return wantarray ? @dirs : $dirs[0]; -} - -sub _make_entry { - my ($self, $module, $packlist_file, $modfile)= @_; - - my $data= { - module => $module, - packlist => scalar(ExtUtils::Packlist->new($packlist_file)), - packlist_file => $packlist_file, - }; - - if (!$modfile) { - $data->{version} = $self->{':private:'}{Config}{version}; - } else { - $data->{modfile} = $modfile; - # Find the top-level module file in @INC - $data->{version} = ''; - foreach my $dir (@{$self->{':private:'}{INC}}) { - my $p = File::Spec->catfile($dir, $modfile); - if (-r $p) { - $module = _module_name($p, $module) if $Is_VMS; - - $data->{version} = MM->parse_version($p); - $data->{version_from} = $p; - $data->{packlist_valid} = exists $data->{packlist}{$p}; - last; - } - } - } - $self->{$module}= $data; -} - -our $INSTALLED; -sub new { - my ($class) = shift(@_); - $class = ref($class) || $class; - - my %args = @_; - - return $INSTALLED if $INSTALLED and ($args{default_get} || $args{default}); - - my $self = bless {}, $class; - - $INSTALLED= $self if $args{default_set} || $args{default}; - - - if ($args{config_override}) { - eval { - $self->{':private:'}{Config} = { %{$args{config_override}} }; - } or Carp::croak( - "The 'config_override' parameter must be a hash reference." - ); - } - else { - $self->{':private:'}{Config} = \%Config; - } - - for my $tuple ([inc_override => INC => [ @INC ] ], - [ extra_libs => EXTRA => [] ]) - { - my ($arg,$key,$val)=@$tuple; - if ( $args{$arg} ) { - eval { - $self->{':private:'}{$key} = [ @{$args{$arg}} ]; - } or Carp::croak( - "The '$arg' parameter must be an array reference." - ); - } - elsif ($val) { - $self->{':private:'}{$key} = $val; - } - } - { - my %dupe; - @{$self->{':private:'}{LIBDIRS}} = - grep { $_ ne '.' || ! $args{skip_cwd} } - grep { -e $_ && !$dupe{$_}++ } - @{$self->{':private:'}{EXTRA}}, @{$self->{':private:'}{INC}}; - } - - my @dirs= $self->_fix_dirs(@{$self->{':private:'}{LIBDIRS}}); - - # Read the core packlist - my $archlib = $self->_fix_dirs($self->{':private:'}{Config}{archlibexp}); - $self->_make_entry("Perl",File::Spec->catfile($archlib, '.packlist')); - - my $root; - # Read the module packlists - my $sub = sub { - # Only process module .packlists - return if $_ ne ".packlist" || $File::Find::dir eq $archlib; - - # Hack of the leading bits of the paths & convert to a module name - my $module = $File::Find::name; - my $found = $module =~ s!^.*?/auto/(.*)/.packlist!$1!s - or do { - # warn "Woah! \$_=$_\n\$module=$module\n\$File::Find::dir=$File::Find::dir\n", - # join ("\n",@dirs); - return; - }; - - my $modfile = "$module.pm"; - $module =~ s!/!::!g; - - return if $self->{$module}; #shadowing? - $self->_make_entry($module,$File::Find::name,$modfile); - }; - while (@dirs) { - $root= shift @dirs; - next if !-d $root; - find($sub,$root); - } - - return $self; -} - -# VMS's non-case preserving file-system means the package name can't -# be reconstructed from the filename. -sub _module_name { - my($file, $orig_module) = @_; - - my $module = ''; - if (open PACKFH, $file) { - while (<PACKFH>) { - if (/package\s+(\S+)\s*;/) { - my $pack = $1; - # Make a sanity check, that lower case $module - # is identical to lowercase $pack before - # accepting it - if (lc($pack) eq lc($orig_module)) { - $module = $pack; - last; - } - } - } - close PACKFH; - } - - print STDERR "Couldn't figure out the package name for $file\n" - unless $module; - - return $module; -} - -sub modules { - my ($self) = @_; - $self= $self->new(default=>1) if !ref $self; - - # Bug/feature of sort in scalar context requires this. - return wantarray - ? sort grep { not /^:private:$/ } keys %$self - : grep { not /^:private:$/ } keys %$self; -} - -sub files { - my ($self, $module, $type, @under) = @_; - $self= $self->new(default=>1) if !ref $self; - - # Validate arguments - Carp::croak("$module is not installed") if (! exists($self->{$module})); - $type = "all" if (! defined($type)); - Carp::croak('type must be "all", "prog" or "doc"') - if ($type ne "all" && $type ne "prog" && $type ne "doc"); - - my (@files); - foreach my $file (keys(%{$self->{$module}{packlist}})) { - push(@files, $file) - if ($self->_is_type($file, $type) && - $self->_is_under($file, @under)); - } - return(@files); -} - -sub directories { - my ($self, $module, $type, @under) = @_; - $self= $self->new(default=>1) if !ref $self; - my (%dirs); - foreach my $file ($self->files($module, $type, @under)) { - $dirs{dirname($file)}++; - } - return sort keys %dirs; -} - -sub directory_tree { - my ($self, $module, $type, @under) = @_; - $self= $self->new(default=>1) if !ref $self; - my (%dirs); - foreach my $dir ($self->directories($module, $type, @under)) { - $dirs{$dir}++; - my ($last) = (""); - while ($last ne $dir) { - $last = $dir; - $dir = dirname($dir); - last if !$self->_is_under($dir, @under); - $dirs{$dir}++; - } - } - return(sort(keys(%dirs))); -} - -sub validate { - my ($self, $module, $remove) = @_; - $self= $self->new(default=>1) if !ref $self; - Carp::croak("$module is not installed") if (! exists($self->{$module})); - return($self->{$module}{packlist}->validate($remove)); -} - -sub packlist { - my ($self, $module) = @_; - $self= $self->new(default=>1) if !ref $self; - Carp::croak("$module is not installed") if (! exists($self->{$module})); - return($self->{$module}{packlist}); -} - -sub version { - my ($self, $module) = @_; - $self= $self->new(default=>1) if !ref $self; - Carp::croak("$module is not installed") if (! exists($self->{$module})); - return($self->{$module}{version}); -} - -sub debug_dump { - my ($self, $module) = @_; - $self= $self->new(default=>1) if !ref $self; - local $self->{":private:"}{Config}; - require Data::Dumper; - print Data::Dumper->new([$self])->Sortkeys(1)->Indent(1)->Dump(); -} - - -1; - -__END__ - -=head1 NAME - -ExtUtils::Installed - Inventory management of installed modules - -=head1 SYNOPSIS - - use ExtUtils::Installed; - my ($inst) = ExtUtils::Installed->new( skip_cwd => 1 ); - my (@modules) = $inst->modules(); - my (@missing) = $inst->validate("DBI"); - my $all_files = $inst->files("DBI"); - my $files_below_usr_local = $inst->files("DBI", "all", "/usr/local"); - my $all_dirs = $inst->directories("DBI"); - my $dirs_below_usr_local = $inst->directory_tree("DBI", "prog"); - my $packlist = $inst->packlist("DBI"); - -=head1 DESCRIPTION - -ExtUtils::Installed provides a standard way to find out what core and module -files have been installed. It uses the information stored in .packlist files -created during installation to provide this information. In addition it -provides facilities to classify the installed files and to extract directory -information from the .packlist files. - -=head1 USAGE - -The new() function searches for all the installed .packlists on the system, and -stores their contents. The .packlists can be queried with the functions -described below. Where it searches by default is determined by the settings found -in C<%Config::Config>, and what the value is of the PERL5LIB environment variable. - -=head1 METHODS - -Unless specified otherwise all method can be called as class methods, or as object -methods. If called as class methods then the "default" object will be used, and if -necessary created using the current processes %Config and @INC. See the -'default' option to new() for details. - - -=over 4 - -=item new() - -This takes optional named parameters. Without parameters, this -searches for all the installed .packlists on the system using -information from C<%Config::Config> and the default module search -paths C<@INC>. The packlists are read using the -L<ExtUtils::Packlist> module. - -If the named parameter C<skip_cwd> is true, the current directory C<.> will -be stripped from C<@INC> before searching for .packlists. This keeps -ExtUtils::Installed from finding modules installed in other perls that -happen to be located below the current directory. - -If the named parameter C<config_override> is specified, -it should be a reference to a hash which contains all information -usually found in C<%Config::Config>. For example, you can obtain -the configuration information for a separate perl installation and -pass that in. - - my $yoda_cfg = get_fake_config('yoda'); - my $yoda_inst = - ExtUtils::Installed->new(config_override=>$yoda_cfg); - -Similarly, the parameter C<inc_override> may be a reference to an -array which is used in place of the default module search paths -from C<@INC>. - - use Config; - my @dirs = split(/\Q$Config{path_sep}\E/, $ENV{PERL5LIB}); - my $p5libs = ExtUtils::Installed->new(inc_override=>\@dirs); - -B<Note>: You probably do not want to use these options alone, almost always -you will want to set both together. - -The parameter C<extra_libs> can be used to specify B<additional> paths to -search for installed modules. For instance - - my $installed = - ExtUtils::Installed->new(extra_libs=>["/my/lib/path"]); - -This should only be necessary if F</my/lib/path> is not in PERL5LIB. - -Finally there is the 'default', and the related 'default_get' and 'default_set' -options. These options control the "default" object which is provided by the -class interface to the methods. Setting C<default_get> to true tells the constructor -to return the default object if it is defined. Setting C<default_set> to true tells -the constructor to make the default object the constructed object. Setting the -C<default> option is like setting both to true. This is used primarily internally -and probably isn't interesting to any real user. - -=item modules() - -This returns a list of the names of all the installed modules. The perl 'core' -is given the special name 'Perl'. - -=item files() - -This takes one mandatory parameter, the name of a module. It returns a list of -all the filenames from the package. To obtain a list of core perl files, use -the module name 'Perl'. Additional parameters are allowed. The first is one -of the strings "prog", "doc" or "all", to select either just program files, -just manual files or all files. The remaining parameters are a list of -directories. The filenames returned will be restricted to those under the -specified directories. - -=item directories() - -This takes one mandatory parameter, the name of a module. It returns a list of -all the directories from the package. Additional parameters are allowed. The -first is one of the strings "prog", "doc" or "all", to select either just -program directories, just manual directories or all directories. The remaining -parameters are a list of directories. The directories returned will be -restricted to those under the specified directories. This method returns only -the leaf directories that contain files from the specified module. - -=item directory_tree() - -This is identical in operation to directories(), except that it includes all the -intermediate directories back up to the specified directories. - -=item validate() - -This takes one mandatory parameter, the name of a module. It checks that all -the files listed in the modules .packlist actually exist, and returns a list of -any missing files. If an optional second argument which evaluates to true is -given any missing files will be removed from the .packlist - -=item packlist() - -This returns the ExtUtils::Packlist object for the specified module. - -=item version() - -This returns the version number for the specified module. - -=back - -=head1 EXAMPLE - -See the example in L<ExtUtils::Packlist>. - -=head1 AUTHOR - -Alan Burlison <Alan.Burlison@uk.sun.com> - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Liblist.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Liblist.pm deleted file mode 100644 index 700cb734..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Liblist.pm +++ /dev/null @@ -1,287 +0,0 @@ -package ExtUtils::Liblist; - -use strict; - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -use File::Spec; -require ExtUtils::Liblist::Kid; -our @ISA = qw(ExtUtils::Liblist::Kid File::Spec); - -# Backwards compatibility with old interface. -sub ext { - goto &ExtUtils::Liblist::Kid::ext; -} - -sub lsdir { - shift; - my $rex = qr/$_[1]/; - opendir my $dir_fh, $_[0]; - my @out = grep /$rex/, readdir $dir_fh; - closedir $dir_fh; - return @out; -} - -__END__ - -=head1 NAME - -ExtUtils::Liblist - determine libraries to use and how to use them - -=head1 SYNOPSIS - - require ExtUtils::Liblist; - - $MM->ext($potential_libs, $verbose, $need_names); - - # Usually you can get away with: - ExtUtils::Liblist->ext($potential_libs, $verbose, $need_names) - -=head1 DESCRIPTION - -This utility takes a list of libraries in the form C<-llib1 -llib2 --llib3> and returns lines suitable for inclusion in an extension -Makefile. Extra library paths may be included with the form -C<-L/another/path> this will affect the searches for all subsequent -libraries. - -It returns an array of four or five scalar values: EXTRALIBS, -BSLOADLIBS, LDLOADLIBS, LD_RUN_PATH, and, optionally, a reference to -the array of the filenames of actual libraries. Some of these don't -mean anything unless on Unix. See the details about those platform -specifics below. The list of the filenames is returned only if -$need_names argument is true. - -Dependent libraries can be linked in one of three ways: - -=over 2 - -=item * For static extensions - -by the ld command when the perl binary is linked with the extension -library. See EXTRALIBS below. - -=item * For dynamic extensions at build/link time - -by the ld command when the shared object is built/linked. See -LDLOADLIBS below. - -=item * For dynamic extensions at load time - -by the DynaLoader when the shared object is loaded. See BSLOADLIBS -below. - -=back - -=head2 EXTRALIBS - -List of libraries that need to be linked with when linking a perl -binary which includes this extension. Only those libraries that -actually exist are included. These are written to a file and used -when linking perl. - -=head2 LDLOADLIBS and LD_RUN_PATH - -List of those libraries which can or must be linked into the shared -library when created using ld. These may be static or dynamic -libraries. LD_RUN_PATH is a colon separated list of the directories -in LDLOADLIBS. It is passed as an environment variable to the process -that links the shared library. - -=head2 BSLOADLIBS - -List of those libraries that are needed but can be linked in -dynamically at run time on this platform. SunOS/Solaris does not need -this because ld records the information (from LDLOADLIBS) into the -object file. This list is used to create a .bs (bootstrap) file. - -=head1 PORTABILITY - -This module deals with a lot of system dependencies and has quite a -few architecture specific C<if>s in the code. - -=head2 VMS implementation - -The version of ext() which is executed under VMS differs from the -Unix-OS/2 version in several respects: - -=over 2 - -=item * - -Input library and path specifications are accepted with or without the -C<-l> and C<-L> prefixes used by Unix linkers. If neither prefix is -present, a token is considered a directory to search if it is in fact -a directory, and a library to search for otherwise. Authors who wish -their extensions to be portable to Unix or OS/2 should use the Unix -prefixes, since the Unix-OS/2 version of ext() requires them. - -=item * - -Wherever possible, shareable images are preferred to object libraries, -and object libraries to plain object files. In accordance with VMS -naming conventions, ext() looks for files named I<lib>shr and I<lib>rtl; -it also looks for I<lib>lib and libI<lib> to accommodate Unix conventions -used in some ported software. - -=item * - -For each library that is found, an appropriate directive for a linker options -file is generated. The return values are space-separated strings of -these directives, rather than elements used on the linker command line. - -=item * - -LDLOADLIBS contains both the libraries found based on C<$potential_libs> and -the CRTLs, if any, specified in Config.pm. EXTRALIBS contains just those -libraries found based on C<$potential_libs>. BSLOADLIBS and LD_RUN_PATH -are always empty. - -=back - -In addition, an attempt is made to recognize several common Unix library -names, and filter them out or convert them to their VMS equivalents, as -appropriate. - -In general, the VMS version of ext() should properly handle input from -extensions originally designed for a Unix or VMS environment. If you -encounter problems, or discover cases where the search could be improved, -please let us know. - -=head2 Win32 implementation - -The version of ext() which is executed under Win32 differs from the -Unix-OS/2 version in several respects: - -=over 2 - -=item * - -If C<$potential_libs> is empty, the return value will be empty. -Otherwise, the libraries specified by C<$Config{perllibs}> (see Config.pm) -will be appended to the list of C<$potential_libs>. The libraries -will be searched for in the directories specified in C<$potential_libs>, -C<$Config{libpth}>, and in C<$Config{installarchlib}/CORE>. -For each library that is found, a space-separated list of fully qualified -library pathnames is generated. - -=item * - -Input library and path specifications are accepted with or without the -C<-l> and C<-L> prefixes used by Unix linkers. - -An entry of the form C<-La:\foo> specifies the C<a:\foo> directory to look -for the libraries that follow. - -An entry of the form C<-lfoo> specifies the library C<foo>, which may be -spelled differently depending on what kind of compiler you are using. If -you are using GCC, it gets translated to C<libfoo.a>, but for other win32 -compilers, it becomes C<foo.lib>. If no files are found by those translated -names, one more attempt is made to find them using either C<foo.a> or -C<libfoo.lib>, depending on whether GCC or some other win32 compiler is -being used, respectively. - -If neither the C<-L> or C<-l> prefix is present in an entry, the entry is -considered a directory to search if it is in fact a directory, and a -library to search for otherwise. The C<$Config{lib_ext}> suffix will -be appended to any entries that are not directories and don't already have -the suffix. - -Note that the C<-L> and C<-l> prefixes are B<not required>, but authors -who wish their extensions to be portable to Unix or OS/2 should use the -prefixes, since the Unix-OS/2 version of ext() requires them. - -=item * - -Entries cannot be plain object files, as many Win32 compilers will -not handle object files in the place of libraries. - -=item * - -Entries in C<$potential_libs> beginning with a colon and followed by -alphanumeric characters are treated as flags. Unknown flags will be ignored. - -An entry that matches C</:nodefault/i> disables the appending of default -libraries found in C<$Config{perllibs}> (this should be only needed very rarely). - -An entry that matches C</:nosearch/i> disables all searching for -the libraries specified after it. Translation of C<-Lfoo> and -C<-lfoo> still happens as appropriate (depending on compiler being used, -as reflected by C<$Config{cc}>), but the entries are not verified to be -valid files or directories. - -An entry that matches C</:search/i> reenables searching for -the libraries specified after it. You can put it at the end to -enable searching for default libraries specified by C<$Config{perllibs}>. - -=item * - -The libraries specified may be a mixture of static libraries and -import libraries (to link with DLLs). Since both kinds are used -pretty transparently on the Win32 platform, we do not attempt to -distinguish between them. - -=item * - -LDLOADLIBS and EXTRALIBS are always identical under Win32, and BSLOADLIBS -and LD_RUN_PATH are always empty (this may change in future). - -=item * - -You must make sure that any paths and path components are properly -surrounded with double-quotes if they contain spaces. For example, -C<$potential_libs> could be (literally): - - "-Lc:\Program Files\vc\lib" msvcrt.lib "la test\foo bar.lib" - -Note how the first and last entries are protected by quotes in order -to protect the spaces. - -=item * - -Since this module is most often used only indirectly from extension -C<Makefile.PL> files, here is an example C<Makefile.PL> entry to add -a library to the build process for an extension: - - LIBS => ['-lgl'] - -When using GCC, that entry specifies that MakeMaker should first look -for C<libgl.a> (followed by C<gl.a>) in all the locations specified by -C<$Config{libpth}>. - -When using a compiler other than GCC, the above entry will search for -C<gl.lib> (followed by C<libgl.lib>). - -If the library happens to be in a location not in C<$Config{libpth}>, -you need: - - LIBS => ['-Lc:\gllibs -lgl'] - -Here is a less often used example: - - LIBS => ['-lgl', ':nosearch -Ld:\mesalibs -lmesa -luser32'] - -This specifies a search for library C<gl> as before. If that search -fails to find the library, it looks at the next item in the list. The -C<:nosearch> flag will prevent searching for the libraries that follow, -so it simply returns the value as C<-Ld:\mesalibs -lmesa -luser32>, -since GCC can use that value as is with its linker. - -When using the Visual C compiler, the second item is returned as -C<-libpath:d:\mesalibs mesa.lib user32.lib>. - -When using the Borland compiler, the second item is returned as -C<-Ld:\mesalibs mesa.lib user32.lib>, and MakeMaker takes care of -moving the C<-Ld:\mesalibs> to the correct place in the linker -command line. - -=back - - -=head1 SEE ALSO - -L<ExtUtils::MakeMaker> - -=cut - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Liblist/Kid.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Liblist/Kid.pm deleted file mode 100644 index a6da8558..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Liblist/Kid.pm +++ /dev/null @@ -1,651 +0,0 @@ -package ExtUtils::Liblist::Kid; - -# XXX Splitting this out into its own .pm is a temporary solution. - -# This kid package is to be used by MakeMaker. It will not work if -# $self is not a Makemaker. - -use 5.006; - -# Broken out of MakeMaker from version 4.11 - -use strict; -use warnings; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -use ExtUtils::MakeMaker::Config; -use Cwd 'cwd'; -use File::Basename; -use File::Spec; - -sub ext { - if ( $^O eq 'VMS' ) { return &_vms_ext; } - elsif ( $^O eq 'MSWin32' ) { return &_win32_ext; } - else { return &_unix_os2_ext; } -} - -sub _unix_os2_ext { - my ( $self, $potential_libs, $verbose, $give_libs ) = @_; - $verbose ||= 0; - - if ( $^O =~ /os2|android/ and $Config{perllibs} ) { - - # Dynamic libraries are not transitive, so we may need including - # the libraries linked against perl.dll/libperl.so again. - - $potential_libs .= " " if $potential_libs; - $potential_libs .= $Config{perllibs}; - } - return ( "", "", "", "", ( $give_libs ? [] : () ) ) unless $potential_libs; - warn "Potential libraries are '$potential_libs':\n" if $verbose; - - my ( $so ) = $Config{so}; - my ( $libs ) = defined $Config{perllibs} ? $Config{perllibs} : $Config{libs}; - my $Config_libext = $Config{lib_ext} || ".a"; - my $Config_dlext = $Config{dlext}; - - # compute $extralibs, $bsloadlibs and $ldloadlibs from - # $potential_libs - # this is a rewrite of Andy Dougherty's extliblist in perl - - my ( @searchpath ); # from "-L/path" entries in $potential_libs - my ( @libpath ) = split " ", $Config{'libpth'} || ''; - my ( @ldloadlibs, @bsloadlibs, @extralibs, @ld_run_path, %ld_run_path_seen ); - my ( @libs, %libs_seen ); - my ( $fullname, @fullname ); - my ( $pwd ) = cwd(); # from Cwd.pm - my ( $found ) = 0; - - if ( $^O eq 'darwin' or $^O eq 'next' ) { - # 'escape' Mach-O ld -framework and -F flags, so they aren't dropped later on - $potential_libs =~ s/(^|\s)(-(?:weak_|reexport_|lazy_)?framework)\s+(\S+)/$1-Wl,$2 -Wl,$3/g; - $potential_libs =~ s/(^|\s)(-F)\s*(\S+)/$1-Wl,$2 -Wl,$3/g; - } - - foreach my $thislib ( split ' ', $potential_libs ) { - my ( $custom_name ) = ''; - - # Handle possible linker path arguments. - if ( $thislib =~ s/^(-[LR]|-Wl,-R|-Wl,-rpath,)// ) { # save path flag type - my ( $ptype ) = $1; - unless ( -d $thislib ) { - warn "$ptype$thislib ignored, directory does not exist\n" - if $verbose; - next; - } - my ( $rtype ) = $ptype; - if ( ( $ptype eq '-R' ) or ( $ptype =~ m!^-Wl,-[Rr]! ) ) { - if ( $Config{'lddlflags'} =~ /-Wl,-[Rr]/ ) { - $rtype = '-Wl,-R'; - } - elsif ( $Config{'lddlflags'} =~ /-R/ ) { - $rtype = '-R'; - } - } - unless ( File::Spec->file_name_is_absolute( $thislib ) ) { - warn "Warning: $ptype$thislib changed to $ptype$pwd/$thislib\n"; - $thislib = $self->catdir( $pwd, $thislib ); - } - push( @searchpath, $thislib ); - push( @extralibs, "$ptype$thislib" ); - push( @ldloadlibs, "$rtype$thislib" ); - next; - } - - if ( $thislib =~ m!^-Wl,! ) { - push( @extralibs, $thislib ); - push( @ldloadlibs, $thislib ); - next; - } - - # Handle possible library arguments. - if ( $thislib =~ s/^-l(:)?// ) { - # Handle -l:foo.so, which means that the library will - # actually be called foo.so, not libfoo.so. This - # is used in Android by ExtUtils::Depends to allow one XS - # module to link to another. - $custom_name = $1 || ''; - } - else { - warn "Unrecognized argument in LIBS ignored: '$thislib'\n"; - next; - } - - my ( $found_lib ) = 0; - foreach my $thispth ( @searchpath, @libpath ) { - - # Try to find the full name of the library. We need this to - # determine whether it's a dynamically-loadable library or not. - # This tends to be subject to various os-specific quirks. - # For gcc-2.6.2 on linux (March 1995), DLD can not load - # .sa libraries, with the exception of libm.sa, so we - # deliberately skip them. - if ((@fullname = - $self->lsdir($thispth, "^\Qlib$thislib.$so.\E[0-9]+")) || - (@fullname = - $self->lsdir($thispth, "^\Qlib$thislib.\E[0-9]+\Q\.$so"))) { - # Take care that libfoo.so.10 wins against libfoo.so.9. - # Compare two libraries to find the most recent version - # number. E.g. if you have libfoo.so.9.0.7 and - # libfoo.so.10.1, first convert all digits into two - # decimal places. Then we'll add ".00" to the shorter - # strings so that we're comparing strings of equal length - # Thus we'll compare libfoo.so.09.07.00 with - # libfoo.so.10.01.00. Some libraries might have letters - # in the version. We don't know what they mean, but will - # try to skip them gracefully -- we'll set any letter to - # '0'. Finally, sort in reverse so we can take the - # first element. - - #TODO: iterate through the directory instead of sorting - - $fullname = "$thispth/" . ( - sort { - my ( $ma ) = $a; - my ( $mb ) = $b; - $ma =~ tr/A-Za-z/0/s; - $ma =~ s/\b(\d)\b/0$1/g; - $mb =~ tr/A-Za-z/0/s; - $mb =~ s/\b(\d)\b/0$1/g; - while ( length( $ma ) < length( $mb ) ) { $ma .= ".00"; } - while ( length( $mb ) < length( $ma ) ) { $mb .= ".00"; } - - # Comparison deliberately backwards - $mb cmp $ma; - } @fullname - )[0]; - } - elsif ( -f ( $fullname = "$thispth/lib$thislib.$so" ) - && ( ( $Config{'dlsrc'} ne "dl_dld.xs" ) || ( $thislib eq "m" ) ) ) - { - } - elsif (-f ( $fullname = "$thispth/lib${thislib}_s$Config_libext" ) - && ( $Config{'archname'} !~ /RM\d\d\d-svr4/ ) - && ( $thislib .= "_s" ) ) - { # we must explicitly use _s version - } - elsif ( -f ( $fullname = "$thispth/lib$thislib$Config_libext" ) ) { - } - elsif ( defined( $Config_dlext ) - && -f ( $fullname = "$thispth/lib$thislib.$Config_dlext" ) ) - { - } - elsif ( -f ( $fullname = "$thispth/$thislib$Config_libext" ) ) { - } - elsif ( -f ( $fullname = "$thispth/lib$thislib.dll$Config_libext" ) ) { - } - elsif ( $^O eq 'cygwin' && -f ( $fullname = "$thispth/$thislib.dll" ) ) { - } - elsif ( -f ( $fullname = "$thispth/Slib$thislib$Config_libext" ) ) { - } - elsif ($^O eq 'dgux' - && -l ( $fullname = "$thispth/lib$thislib$Config_libext" ) - && readlink( $fullname ) =~ /^elink:/s ) - { - - # Some of DG's libraries look like misconnected symbolic - # links, but development tools can follow them. (They - # look like this: - # - # libm.a -> elink:${SDE_PATH:-/usr}/sde/\ - # ${TARGET_BINARY_INTERFACE:-m88kdgux}/usr/lib/libm.a - # - # , the compilation tools expand the environment variables.) - } - elsif ( $custom_name && -f ( $fullname = "$thispth/$thislib" ) ) { - } - else { - warn "$thislib not found in $thispth\n" if $verbose; - next; - } - warn "'-l$thislib' found at $fullname\n" if $verbose; - push @libs, $fullname unless $libs_seen{$fullname}++; - $found++; - $found_lib++; - - # Now update library lists - - # what do we know about this library... - my $is_dyna = ( $fullname !~ /\Q$Config_libext\E\z/ ); - my $in_perl = ( $libs =~ /\B-l:?\Q${thislib}\E\b/s ); - - # include the path to the lib once in the dynamic linker path - # but only if it is a dynamic lib and not in Perl itself - my ( $fullnamedir ) = dirname( $fullname ); - push @ld_run_path, $fullnamedir - if $is_dyna - && !$in_perl - && !$ld_run_path_seen{$fullnamedir}++; - - # Do not add it into the list if it is already linked in - # with the main perl executable. - # We have to special-case the NeXT, because math and ndbm - # are both in libsys_s - unless ( - $in_perl - || ( $Config{'osname'} eq 'next' - && ( $thislib eq 'm' || $thislib eq 'ndbm' ) ) - ) - { - push( @extralibs, "-l$custom_name$thislib" ); - } - - # We might be able to load this archive file dynamically - if ( ( $Config{'dlsrc'} =~ /dl_next/ && $Config{'osvers'} lt '4_0' ) - || ( $Config{'dlsrc'} =~ /dl_dld/ ) ) - { - - # We push -l$thislib instead of $fullname because - # it avoids hardwiring a fixed path into the .bs file. - # Mkbootstrap will automatically add dl_findfile() to - # the .bs file if it sees a name in the -l format. - # USE THIS, when dl_findfile() is fixed: - # push(@bsloadlibs, "-l$thislib"); - # OLD USE WAS while checking results against old_extliblist - push( @bsloadlibs, "$fullname" ); - } - else { - if ( $is_dyna ) { - - # For SunOS4, do not add in this shared library if - # it is already linked in the main perl executable - push( @ldloadlibs, "-l$custom_name$thislib" ) - unless ( $in_perl and $^O eq 'sunos' ); - } - else { - push( @ldloadlibs, "-l$custom_name$thislib" ); - } - } - last; # found one here so don't bother looking further - } - warn "Warning (mostly harmless): " . "No library found for -l$thislib\n" - unless $found_lib > 0; - } - - unless ( $found ) { - return ( '', '', '', '', ( $give_libs ? \@libs : () ) ); - } - else { - return ( "@extralibs", "@bsloadlibs", "@ldloadlibs", join( ":", @ld_run_path ), ( $give_libs ? \@libs : () ) ); - } -} - -sub _win32_ext { - - require Text::ParseWords; - - my ( $self, $potential_libs, $verbose, $give_libs ) = @_; - $verbose ||= 0; - - # If user did not supply a list, we punt. - # (caller should probably use the list in $Config{libs}) - return ( "", "", "", "", ( $give_libs ? [] : () ) ) unless $potential_libs; - - # TODO: make this use MM_Win32.pm's compiler detection - my %libs_seen; - my @extralibs; - my $cc = $Config{cc} || ''; - my $VC = $cc =~ /\bcl\b/i; - my $GC = $cc =~ /\bgcc\b/i; - - my $libext = _win32_lib_extensions(); - my @searchpath = ( '' ); # from "-L/path" entries in $potential_libs - my @libpath = _win32_default_search_paths( $VC, $GC ); - my $pwd = cwd(); # from Cwd.pm - my $search = 1; - - # compute @extralibs from $potential_libs - my @lib_search_list = _win32_make_lib_search_list( $potential_libs, $verbose ); - for ( @lib_search_list ) { - - my $thislib = $_; - - # see if entry is a flag - if ( /^:\w+$/ ) { - $search = 0 if lc eq ':nosearch'; - $search = 1 if lc eq ':search'; - _debug( "Ignoring unknown flag '$thislib'\n", $verbose ) if !/^:(no)?(search|default)$/i; - next; - } - - # if searching is disabled, do compiler-specific translations - unless ( $search ) { - s/^-l(.+)$/$1.lib/ unless $GC; - s/^-L/-libpath:/ if $VC; - push( @extralibs, $_ ); - next; - } - - # handle possible linker path arguments - if ( s/^-L// and not -d ) { - _debug( "$thislib ignored, directory does not exist\n", $verbose ); - next; - } - elsif ( -d ) { - unless ( File::Spec->file_name_is_absolute( $_ ) ) { - warn "Warning: '$thislib' changed to '-L$pwd/$_'\n"; - $_ = $self->catdir( $pwd, $_ ); - } - push( @searchpath, $_ ); - next; - } - - my @paths = ( @searchpath, @libpath ); - my ( $fullname, $path ) = _win32_search_file( $thislib, $libext, \@paths, $verbose, $GC ); - - if ( !$fullname ) { - warn "Warning (mostly harmless): No library found for $thislib\n"; - next; - } - - _debug( "'$thislib' found as '$fullname'\n", $verbose ); - push( @extralibs, $fullname ); - $libs_seen{$fullname} = 1 if $path; # why is this a special case? - } - - my @libs = sort keys %libs_seen; - - return ( '', '', '', '', ( $give_libs ? \@libs : () ) ) unless @extralibs; - - # make sure paths with spaces are properly quoted - @extralibs = map { qq["$_"] } @extralibs; - @libs = map { qq["$_"] } @libs; - - my $lib = join( ' ', @extralibs ); - - # normalize back to backward slashes (to help braindead tools) - # XXX this may break equally braindead GNU tools that don't understand - # backslashes, either. Seems like one can't win here. Cursed be CP/M. - $lib =~ s,/,\\,g; - - _debug( "Result: $lib\n", $verbose ); - wantarray ? ( $lib, '', $lib, '', ( $give_libs ? \@libs : () ) ) : $lib; -} - -sub _win32_make_lib_search_list { - my ( $potential_libs, $verbose ) = @_; - - # If Config.pm defines a set of default libs, we always - # tack them on to the user-supplied list, unless the user - # specified :nodefault - my $libs = $Config{'perllibs'}; - $potential_libs = join( ' ', $potential_libs, $libs ) if $libs and $potential_libs !~ /:nodefault/i; - _debug( "Potential libraries are '$potential_libs':\n", $verbose ); - - $potential_libs =~ s,\\,/,g; # normalize to forward slashes - - my @list = Text::ParseWords::quotewords( '\s+', 0, $potential_libs ); - - return @list; -} - -sub _win32_default_search_paths { - my ( $VC, $GC ) = @_; - - my $libpth = $Config{'libpth'} || ''; - $libpth =~ s,\\,/,g; # normalize to forward slashes - - my @libpath = Text::ParseWords::quotewords( '\s+', 0, $libpth ); - push @libpath, "$Config{installarchlib}/CORE"; # add "$Config{installarchlib}/CORE" to default search path - - push @libpath, split /;/, $ENV{LIB} if $VC and $ENV{LIB}; - push @libpath, split /;/, $ENV{LIBRARY_PATH} if $GC and $ENV{LIBRARY_PATH}; - - return @libpath; -} - -sub _win32_search_file { - my ( $thislib, $libext, $paths, $verbose, $GC ) = @_; - - my @file_list = _win32_build_file_list( $thislib, $GC, $libext ); - - for my $lib_file ( @file_list ) { - for my $path ( @{$paths} ) { - my $fullname = $lib_file; - $fullname = "$path\\$fullname" if $path; - - return ( $fullname, $path ) if -f $fullname; - - _debug( "'$thislib' not found as '$fullname'\n", $verbose ); - } - } - - return; -} - -sub _win32_build_file_list { - my ( $lib, $GC, $extensions ) = @_; - - my @pre_fixed = _win32_build_prefixed_list( $lib, $GC ); - return map _win32_attach_extensions( $_, $extensions ), @pre_fixed; -} - -sub _win32_build_prefixed_list { - my ( $lib, $GC ) = @_; - - return $lib if $lib !~ s/^-l//; - return $lib if $lib =~ /^lib/ and !$GC; - - ( my $no_prefix = $lib ) =~ s/^lib//i; - $lib = "lib$lib" if $no_prefix eq $lib; - - return ( $lib, $no_prefix ) if $GC; - return ( $no_prefix, $lib ); -} - -sub _win32_attach_extensions { - my ( $lib, $extensions ) = @_; - return map _win32_try_attach_extension( $lib, $_ ), @{$extensions}; -} - -sub _win32_try_attach_extension { - my ( $lib, $extension ) = @_; - - return $lib if $lib =~ /\Q$extension\E$/i; - return "$lib$extension"; -} - -sub _win32_lib_extensions { - my @extensions; - push @extensions, $Config{'lib_ext'} if $Config{'lib_ext'}; - push @extensions, '.dll.a' if grep { m!^\.a$! } @extensions; - push @extensions, '.lib' unless grep { m!^\.lib$! } @extensions; - return \@extensions; -} - -sub _debug { - my ( $message, $verbose ) = @_; - return if !$verbose; - warn $message; - return; -} - -sub _vms_ext { - my ( $self, $potential_libs, $verbose, $give_libs ) = @_; - $verbose ||= 0; - - my ( @crtls, $crtlstr ); - @crtls = ( ( $Config{'ldflags'} =~ m-/Debug-i ? $Config{'dbgprefix'} : '' ) . 'PerlShr/Share' ); - push( @crtls, grep { not /\(/ } split /\s+/, $Config{'perllibs'} ); - push( @crtls, grep { not /\(/ } split /\s+/, $Config{'libc'} ); - - # In general, we pass through the basic libraries from %Config unchanged. - # The one exception is that if we're building in the Perl source tree, and - # a library spec could be resolved via a logical name, we go to some trouble - # to insure that the copy in the local tree is used, rather than one to - # which a system-wide logical may point. - if ( $self->{PERL_SRC} ) { - my ( $locspec, $type ); - foreach my $lib ( @crtls ) { - if ( ( $locspec, $type ) = $lib =~ m{^([\w\$-]+)(/\w+)?} and $locspec =~ /perl/i ) { - if ( lc $type eq '/share' ) { $locspec .= $Config{'exe_ext'}; } - elsif ( lc $type eq '/library' ) { $locspec .= $Config{'lib_ext'}; } - else { $locspec .= $Config{'obj_ext'}; } - $locspec = $self->catfile( $self->{PERL_SRC}, $locspec ); - $lib = "$locspec$type" if -e $locspec; - } - } - } - $crtlstr = @crtls ? join( ' ', @crtls ) : ''; - - unless ( $potential_libs ) { - warn "Result:\n\tEXTRALIBS: \n\tLDLOADLIBS: $crtlstr\n" if $verbose; - return ( '', '', $crtlstr, '', ( $give_libs ? [] : () ) ); - } - - my ( %found, @fndlibs, $ldlib ); - my $cwd = cwd(); - my ( $so, $lib_ext, $obj_ext ) = @Config{ 'so', 'lib_ext', 'obj_ext' }; - - # List of common Unix library names and their VMS equivalents - # (VMS equivalent of '' indicates that the library is automatically - # searched by the linker, and should be skipped here.) - my ( @flibs, %libs_seen ); - my %libmap = ( - 'm' => '', - 'f77' => '', - 'F77' => '', - 'V77' => '', - 'c' => '', - 'malloc' => '', - 'crypt' => '', - 'resolv' => '', - 'c_s' => '', - 'socket' => '', - 'X11' => 'DECW$XLIBSHR', - 'Xt' => 'DECW$XTSHR', - 'Xm' => 'DECW$XMLIBSHR', - 'Xmu' => 'DECW$XMULIBSHR' - ); - - warn "Potential libraries are '$potential_libs'\n" if $verbose; - - # First, sort out directories and library names in the input - my ( @dirs, @libs ); - foreach my $lib ( split ' ', $potential_libs ) { - push( @dirs, $1 ), next if $lib =~ /^-L(.*)/; - push( @dirs, $lib ), next if $lib =~ /[:>\]]$/; - push( @dirs, $lib ), next if -d $lib; - push( @libs, $1 ), next if $lib =~ /^-l(.*)/; - push( @libs, $lib ); - } - push( @dirs, split( ' ', $Config{'libpth'} ) ); - - # Now make sure we've got VMS-syntax absolute directory specs - # (We don't, however, check whether someone's hidden a relative - # path in a logical name.) - foreach my $dir ( @dirs ) { - unless ( -d $dir ) { - warn "Skipping nonexistent Directory $dir\n" if $verbose > 1; - $dir = ''; - next; - } - warn "Resolving directory $dir\n" if $verbose; - if ( File::Spec->file_name_is_absolute( $dir ) ) { - $dir = VMS::Filespec::vmspath( $dir ); - } - else { - $dir = $self->catdir( $cwd, $dir ); - } - } - @dirs = grep { length( $_ ) } @dirs; - unshift( @dirs, '' ); # Check each $lib without additions first - - LIB: foreach my $lib ( @libs ) { - if ( exists $libmap{$lib} ) { - next unless length $libmap{$lib}; - $lib = $libmap{$lib}; - } - - my ( @variants, $cand ); - my ( $ctype ) = ''; - - # If we don't have a file type, consider it a possibly abbreviated name and - # check for common variants. We try these first to grab libraries before - # a like-named executable image (e.g. -lperl resolves to perlshr.exe - # before perl.exe). - if ( $lib !~ /\.[^:>\]]*$/ ) { - push( @variants, "${lib}shr", "${lib}rtl", "${lib}lib" ); - push( @variants, "lib$lib" ) if $lib !~ /[:>\]]/; - } - push( @variants, $lib ); - warn "Looking for $lib\n" if $verbose; - foreach my $variant ( @variants ) { - my ( $fullname, $name ); - - foreach my $dir ( @dirs ) { - my ( $type ); - - $name = "$dir$variant"; - warn "\tChecking $name\n" if $verbose > 2; - $fullname = VMS::Filespec::rmsexpand( $name ); - if ( defined $fullname and -f $fullname ) { - - # It's got its own suffix, so we'll have to figure out the type - if ( $fullname =~ /(?:$so|exe)$/i ) { $type = 'SHR'; } - elsif ( $fullname =~ /(?:$lib_ext|olb)$/i ) { $type = 'OLB'; } - elsif ( $fullname =~ /(?:$obj_ext|obj)$/i ) { - warn "Warning (mostly harmless): " . "Plain object file $fullname found in library list\n"; - $type = 'OBJ'; - } - else { - warn "Warning (mostly harmless): " . "Unknown library type for $fullname; assuming shared\n"; - $type = 'SHR'; - } - } - elsif (-f ( $fullname = VMS::Filespec::rmsexpand( $name, $so ) ) - or -f ( $fullname = VMS::Filespec::rmsexpand( $name, '.exe' ) ) ) - { - $type = 'SHR'; - $name = $fullname unless $fullname =~ /exe;?\d*$/i; - } - elsif ( - not length( $ctype ) and # If we've got a lib already, - # don't bother - ( -f ( $fullname = VMS::Filespec::rmsexpand( $name, $lib_ext ) ) or -f ( $fullname = VMS::Filespec::rmsexpand( $name, '.olb' ) ) ) - ) - { - $type = 'OLB'; - $name = $fullname unless $fullname =~ /olb;?\d*$/i; - } - elsif ( - not length( $ctype ) and # If we've got a lib already, - # don't bother - ( -f ( $fullname = VMS::Filespec::rmsexpand( $name, $obj_ext ) ) or -f ( $fullname = VMS::Filespec::rmsexpand( $name, '.obj' ) ) ) - ) - { - warn "Warning (mostly harmless): " . "Plain object file $fullname found in library list\n"; - $type = 'OBJ'; - $name = $fullname unless $fullname =~ /obj;?\d*$/i; - } - if ( defined $type ) { - $ctype = $type; - $cand = $name; - last if $ctype eq 'SHR'; - } - } - if ( $ctype ) { - - push @{ $found{$ctype} }, $cand; - warn "\tFound as $cand (really $fullname), type $ctype\n" - if $verbose > 1; - push @flibs, $name unless $libs_seen{$fullname}++; - next LIB; - } - } - warn "Warning (mostly harmless): " . "No library found for $lib\n"; - } - - push @fndlibs, @{ $found{OBJ} } if exists $found{OBJ}; - push @fndlibs, map { "$_/Library" } @{ $found{OLB} } if exists $found{OLB}; - push @fndlibs, map { "$_/Share" } @{ $found{SHR} } if exists $found{SHR}; - my $lib = join( ' ', @fndlibs ); - - $ldlib = $crtlstr ? "$lib $crtlstr" : $lib; - $ldlib =~ s/^\s+|\s+$//g; - warn "Result:\n\tEXTRALIBS: $lib\n\tLDLOADLIBS: $ldlib\n" if $verbose; - wantarray ? ( $lib, '', $ldlib, '', ( $give_libs ? \@flibs : () ) ) : $lib; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM.pm deleted file mode 100644 index b2c360bc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM.pm +++ /dev/null @@ -1,91 +0,0 @@ -package ExtUtils::MM; - -use strict; -use ExtUtils::MakeMaker::Config; - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -require ExtUtils::Liblist; -require ExtUtils::MakeMaker; -our @ISA = qw(ExtUtils::Liblist ExtUtils::MakeMaker); - -=head1 NAME - -ExtUtils::MM - OS adjusted ExtUtils::MakeMaker subclass - -=head1 SYNOPSIS - - require ExtUtils::MM; - my $mm = MM->new(...); - -=head1 DESCRIPTION - -B<FOR INTERNAL USE ONLY> - -ExtUtils::MM is a subclass of ExtUtils::MakeMaker which automatically -chooses the appropriate OS specific subclass for you -(ie. ExtUils::MM_Unix, etc...). - -It also provides a convenient alias via the MM class (I didn't want -MakeMaker modules outside of ExtUtils/). - -This class might turn out to be a temporary solution, but MM won't go -away. - -=cut - -{ - # Convenient alias. - package MM; - our @ISA = qw(ExtUtils::MM); - sub DESTROY {} -} - -sub _is_win95 { - # miniperl might not have the Win32 functions available and we need - # to run in miniperl. - my $have_win32 = eval { require Win32 }; - return $have_win32 && defined &Win32::IsWin95 ? Win32::IsWin95() - : ! defined $ENV{SYSTEMROOT}; -} - -my %Is = (); -$Is{VMS} = $^O eq 'VMS'; -$Is{OS2} = $^O eq 'os2'; -$Is{MacOS} = $^O eq 'MacOS'; -if( $^O eq 'MSWin32' ) { - _is_win95() ? $Is{Win95} = 1 : $Is{Win32} = 1; -} -$Is{UWIN} = $^O =~ /^uwin(-nt)?$/; -$Is{Cygwin} = $^O eq 'cygwin'; -$Is{NW5} = $Config{osname} eq 'NetWare'; # intentional -$Is{BeOS} = ($^O =~ /beos/i or $^O eq 'haiku'); -$Is{DOS} = $^O eq 'dos'; -if( $Is{NW5} ) { - $^O = 'NetWare'; - delete $Is{Win32}; -} -$Is{VOS} = $^O eq 'vos'; -$Is{QNX} = $^O eq 'qnx'; -$Is{AIX} = $^O eq 'aix'; -$Is{Darwin} = $^O eq 'darwin'; - -$Is{Unix} = !grep { $_ } values %Is; - -map { delete $Is{$_} unless $Is{$_} } keys %Is; -_assert( keys %Is == 1 ); -my($OS) = keys %Is; - - -my $class = "ExtUtils::MM_$OS"; -eval "require $class" unless $INC{"ExtUtils/MM_$OS.pm"}; ## no critic -die $@ if $@; -unshift @ISA, $class; - - -sub _assert { - my $sanity = shift; - die sprintf "Assert failed at %s line %d\n", (caller)[1,2] unless $sanity; - return; -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_AIX.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_AIX.pm deleted file mode 100644 index b114ee49..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_AIX.pm +++ /dev/null @@ -1,77 +0,0 @@ -package ExtUtils::MM_AIX; - -use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -use ExtUtils::MakeMaker::Config; -require ExtUtils::MM_Unix; -our @ISA = qw(ExtUtils::MM_Unix); - -=head1 NAME - -ExtUtils::MM_AIX - AIX specific subclass of ExtUtils::MM_Unix - -=head1 SYNOPSIS - - Don't use this module directly. - Use ExtUtils::MM and let it choose. - -=head1 DESCRIPTION - -This is a subclass of ExtUtils::MM_Unix which contains functionality for -AIX. - -Unless otherwise stated it works just like ExtUtils::MM_Unix - -=head2 Overridden methods - -=head3 dlsyms - -Define DL_FUNCS and DL_VARS and write the *.exp files. - -=cut - -sub dlsyms { - my($self,%attribs) = @_; - return '' unless $self->needs_linking; - join "\n", $self->xs_dlsyms_iterator(\%attribs); -} - -=head3 xs_dlsyms_ext - -On AIX, is C<.exp>. - -=cut - -sub xs_dlsyms_ext { - '.exp'; -} - -sub xs_dlsyms_arg { - my($self, $file) = @_; - return qq{-bE:${file}}; -} - -sub init_others { - my $self = shift; - $self->SUPER::init_others; - # perl "hints" add -bE:$(BASEEXT).exp to LDDLFLAGS. strip that out - # so right value can be added by xs_make_dynamic_lib to work for XSMULTI - $self->{LDDLFLAGS} ||= $Config{lddlflags}; - $self->{LDDLFLAGS} =~ s#(\s*)\S*\Q$(BASEEXT)\E\S*(\s*)#$1$2#; - return; -} - -=head1 AUTHOR - -Michael G Schwern <schwern@pobox.com> with code from ExtUtils::MM_Unix - -=head1 SEE ALSO - -L<ExtUtils::MakeMaker> - -=cut - - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Any.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Any.pm deleted file mode 100644 index 1a3893c3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Any.pm +++ /dev/null @@ -1,3099 +0,0 @@ -package ExtUtils::MM_Any; - -use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -use Carp; -use File::Spec; -use File::Basename; -BEGIN { our @ISA = qw(File::Spec); } - -# We need $Verbose -use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562); - -use ExtUtils::MakeMaker::Config; - - -# So we don't have to keep calling the methods over and over again, -# we have these globals to cache the values. Faster and shrtr. -my $Curdir = __PACKAGE__->curdir; -#my $Updir = __PACKAGE__->updir; - -my $METASPEC_URL = 'https://metacpan.org/pod/CPAN::Meta::Spec'; -my $METASPEC_V = 2; - -=head1 NAME - -ExtUtils::MM_Any - Platform-agnostic MM methods - -=head1 SYNOPSIS - - FOR INTERNAL USE ONLY! - - package ExtUtils::MM_SomeOS; - - # Temporarily, you have to subclass both. Put MM_Any first. - require ExtUtils::MM_Any; - require ExtUtils::MM_Unix; - @ISA = qw(ExtUtils::MM_Any ExtUtils::Unix); - -=head1 DESCRIPTION - -B<FOR INTERNAL USE ONLY!> - -ExtUtils::MM_Any is a superclass for the ExtUtils::MM_* set of -modules. It contains methods which are either inherently -cross-platform or are written in a cross-platform manner. - -Subclass off of ExtUtils::MM_Any I<and> ExtUtils::MM_Unix. This is a -temporary solution. - -B<THIS MAY BE TEMPORARY!> - - -=head1 METHODS - -Any methods marked I<Abstract> must be implemented by subclasses. - - -=head2 Cross-platform helper methods - -These are methods which help writing cross-platform code. - - - -=head3 os_flavor I<Abstract> - - my @os_flavor = $mm->os_flavor; - -@os_flavor is the style of operating system this is, usually -corresponding to the MM_*.pm file we're using. - -The first element of @os_flavor is the major family (ie. Unix, -Windows, VMS, OS/2, etc...) and the rest are sub families. - -Some examples: - - Cygwin98 ('Unix', 'Cygwin', 'Cygwin9x') - Windows ('Win32') - Win98 ('Win32', 'Win9x') - Linux ('Unix', 'Linux') - MacOS X ('Unix', 'Darwin', 'MacOS', 'MacOS X') - OS/2 ('OS/2') - -This is used to write code for styles of operating system. -See os_flavor_is() for use. - - -=head3 os_flavor_is - - my $is_this_flavor = $mm->os_flavor_is($this_flavor); - my $is_this_flavor = $mm->os_flavor_is(@one_of_these_flavors); - -Checks to see if the current operating system is one of the given flavors. - -This is useful for code like: - - if( $mm->os_flavor_is('Unix') ) { - $out = `foo 2>&1`; - } - else { - $out = `foo`; - } - -=cut - -sub os_flavor_is { - my $self = shift; - my %flavors = map { ($_ => 1) } $self->os_flavor; - return (grep { $flavors{$_} } @_) ? 1 : 0; -} - - -=head3 can_load_xs - - my $can_load_xs = $self->can_load_xs; - -Returns true if we have the ability to load XS. - -This is important because miniperl, used to build XS modules in the -core, can not load XS. - -=cut - -sub can_load_xs { - return defined &DynaLoader::boot_DynaLoader ? 1 : 0; -} - - -=head3 can_run - - use ExtUtils::MM; - my $runnable = MM->can_run($Config{make}); - -If called in a scalar context it will return the full path to the binary -you asked for if it was found, or C<undef> if it was not. - -If called in a list context, it will return a list of the full paths to instances -of the binary where found in C<PATH>, or an empty list if it was not found. - -Copied from L<IPC::Cmd|IPC::Cmd/"$path = can_run( PROGRAM );">, but modified into -a method (and removed C<$INSTANCES> capability). - -=cut - -sub can_run { - my ($self, $command) = @_; - - # a lot of VMS executables have a symbol defined - # check those first - if ( $^O eq 'VMS' ) { - require VMS::DCLsym; - my $syms = VMS::DCLsym->new; - return $command if scalar $syms->getsym( uc $command ); - } - - my @possibles; - - if( File::Spec->file_name_is_absolute($command) ) { - return $self->maybe_command($command); - - } else { - for my $dir ( - File::Spec->path, - File::Spec->curdir - ) { - next if ! $dir || ! -d $dir; - my $abs = File::Spec->catfile($self->os_flavor_is('Win32') ? Win32::GetShortPathName( $dir ) : $dir, $command); - push @possibles, $abs if $abs = $self->maybe_command($abs); - } - } - return @possibles if wantarray; - return shift @possibles; -} - - -=head3 can_redirect_error - - $useredirect = MM->can_redirect_error; - -True if on an OS where qx operator (or backticks) can redirect C<STDERR> -onto C<STDOUT>. - -=cut - -sub can_redirect_error { - my $self = shift; - $self->os_flavor_is('Unix') - or ($self->os_flavor_is('Win32') and !$self->os_flavor_is('Win9x')) - or $self->os_flavor_is('OS/2') -} - - -=head3 is_make_type - - my $is_dmake = $self->is_make_type('dmake'); - -Returns true if C<<$self->make>> is the given type; possibilities are: - - gmake GNU make - dmake - nmake - bsdmake BSD pmake-derived - -=cut - -my %maketype2true; -# undocumented - so t/cd.t can still do its thing -sub _clear_maketype_cache { %maketype2true = () } - -sub is_make_type { - my($self, $type) = @_; - return $maketype2true{$type} if defined $maketype2true{$type}; - (undef, undef, my $make_basename) = $self->splitpath($self->make); - return $maketype2true{$type} = 1 - if $make_basename =~ /\b$type\b/i; # executable's filename - return $maketype2true{$type} = 0 - if $make_basename =~ /\b[gdn]make\b/i; # Never fall through for dmake/nmake/gmake - # now have to run with "-v" and guess - my $redirect = $self->can_redirect_error ? '2>&1' : ''; - my $make = $self->make || $self->{MAKE}; - my $minus_v = `"$make" -v $redirect`; - return $maketype2true{$type} = 1 - if $type eq 'gmake' and $minus_v =~ /GNU make/i; - return $maketype2true{$type} = 1 - if $type eq 'bsdmake' - and $minus_v =~ /^usage: make \[-BeikNnqrstWwX\]/im; - $maketype2true{$type} = 0; # it wasn't whatever you asked -} - - -=head3 can_dep_space - - my $can_dep_space = $self->can_dep_space; - -Returns true if C<make> can handle (probably by quoting) -dependencies that contain a space. Currently known true for GNU make, -false for BSD pmake derivative. - -=cut - -my $cached_dep_space; -sub can_dep_space { - my $self = shift; - return $cached_dep_space if defined $cached_dep_space; - return $cached_dep_space = 1 if $self->is_make_type('gmake'); - return $cached_dep_space = 0 if $self->is_make_type('dmake'); # only on W32 - return $cached_dep_space = 0 if $self->is_make_type('bsdmake'); - return $cached_dep_space = 0; # assume no -} - - -=head3 quote_dep - - $text = $mm->quote_dep($text); - -Method that protects Makefile single-value constants (mainly filenames), -so that make will still treat them as single values even if they -inconveniently have spaces in. If the make program being used cannot -achieve such protection and the given text would need it, throws an -exception. - -=cut - -sub quote_dep { - my ($self, $arg) = @_; - die <<EOF if $arg =~ / / and not $self->can_dep_space; -Tried to use make dependency with space for make that can't: - '$arg' -EOF - $arg =~ s/( )/\\$1/g; # how GNU make does it - return $arg; -} - - -=head3 split_command - - my @cmds = $MM->split_command($cmd, @args); - -Most OS have a maximum command length they can execute at once. Large -modules can easily generate commands well past that limit. Its -necessary to split long commands up into a series of shorter commands. - -C<split_command> will return a series of @cmds each processing part of -the args. Collectively they will process all the arguments. Each -individual line in @cmds will not be longer than the -$self->max_exec_len being careful to take into account macro expansion. - -$cmd should include any switches and repeated initial arguments. - -If no @args are given, no @cmds will be returned. - -Pairs of arguments will always be preserved in a single command, this -is a heuristic for things like pm_to_blib and pod2man which work on -pairs of arguments. This makes things like this safe: - - $self->split_command($cmd, %pod2man); - - -=cut - -sub split_command { - my($self, $cmd, @args) = @_; - - my @cmds = (); - return(@cmds) unless @args; - - # If the command was given as a here-doc, there's probably a trailing - # newline. - chomp $cmd; - - # set aside 30% for macro expansion. - my $len_left = int($self->max_exec_len * 0.70); - $len_left -= length $self->_expand_macros($cmd); - - do { - my $arg_str = ''; - my @next_args; - while( @next_args = splice(@args, 0, 2) ) { - # Two at a time to preserve pairs. - my $next_arg_str = "\t ". join ' ', @next_args, "\n"; - - if( !length $arg_str ) { - $arg_str .= $next_arg_str - } - elsif( length($arg_str) + length($next_arg_str) > $len_left ) { - unshift @args, @next_args; - last; - } - else { - $arg_str .= $next_arg_str; - } - } - chop $arg_str; - - push @cmds, $self->escape_newlines("$cmd \n$arg_str"); - } while @args; - - return @cmds; -} - - -sub _expand_macros { - my($self, $cmd) = @_; - - $cmd =~ s{\$\((\w+)\)}{ - defined $self->{$1} ? $self->{$1} : "\$($1)" - }e; - return $cmd; -} - - -=head3 make_type - -Returns a suitable string describing the type of makefile being written. - -=cut - -# override if this isn't suitable! -sub make_type { return 'Unix-style'; } - - -=head3 stashmeta - - my @recipelines = $MM->stashmeta($text, $file); - -Generates a set of C<@recipelines> which will result in the literal -C<$text> ending up in literal C<$file> when the recipe is executed. Call -it once, with all the text you want in C<$file>. Make macros will not -be expanded, so the locations will be fixed at configure-time, not -at build-time. - -=cut - -sub stashmeta { - my($self, $text, $file) = @_; - $self->echo($text, $file, { allow_variables => 0, append => 0 }); -} - - -=head3 echo - - my @commands = $MM->echo($text); - my @commands = $MM->echo($text, $file); - my @commands = $MM->echo($text, $file, \%opts); - -Generates a set of @commands which print the $text to a $file. - -If $file is not given, output goes to STDOUT. - -If $opts{append} is true the $file will be appended to rather than -overwritten. Default is to overwrite. - -If $opts{allow_variables} is true, make variables of the form -C<$(...)> will not be escaped. Other C<$> will. Default is to escape -all C<$>. - -Example of use: - - my $make = join '', map "\t$_\n", $MM->echo($text, $file); - -=cut - -sub echo { - my($self, $text, $file, $opts) = @_; - - # Compatibility with old options - if( !ref $opts ) { - my $append = $opts; - $opts = { append => $append || 0 }; - } - $opts->{allow_variables} = 0 unless defined $opts->{allow_variables}; - - my $ql_opts = { allow_variables => $opts->{allow_variables} }; - my @cmds = map { '$(NOECHO) $(ECHO) '.$self->quote_literal($_, $ql_opts) } - split /\n/, $text; - if( $file ) { - my $redirect = $opts->{append} ? '>>' : '>'; - $cmds[0] .= " $redirect $file"; - $_ .= " >> $file" foreach @cmds[1..$#cmds]; - } - - return @cmds; -} - - -=head3 wraplist - - my $args = $mm->wraplist(@list); - -Takes an array of items and turns them into a well-formatted list of -arguments. In most cases this is simply something like: - - FOO \ - BAR \ - BAZ - -=cut - -sub wraplist { - my $self = shift; - return join " \\\n\t", @_; -} - - -=head3 maketext_filter - - my $filter_make_text = $mm->maketext_filter($make_text); - -The text of the Makefile is run through this method before writing to -disk. It allows systems a chance to make portability fixes to the -Makefile. - -By default it does nothing. - -This method is protected and not intended to be called outside of -MakeMaker. - -=cut - -sub maketext_filter { return $_[1] } - - -=head3 cd I<Abstract> - - my $subdir_cmd = $MM->cd($subdir, @cmds); - -This will generate a make fragment which runs the @cmds in the given -$dir. The rough equivalent to this, except cross platform. - - cd $subdir && $cmd - -Currently $dir can only go down one level. "foo" is fine. "foo/bar" is -not. "../foo" is right out. - -The resulting $subdir_cmd has no leading tab nor trailing newline. This -makes it easier to embed in a make string. For example. - - my $make = sprintf <<'CODE', $subdir_cmd; - foo : - $(ECHO) what - %s - $(ECHO) mouche - CODE - - -=head3 oneliner I<Abstract> - - my $oneliner = $MM->oneliner($perl_code); - my $oneliner = $MM->oneliner($perl_code, \@switches); - -This will generate a perl one-liner safe for the particular platform -you're on based on the given $perl_code and @switches (a -e is -assumed) suitable for using in a make target. It will use the proper -shell quoting and escapes. - -$(PERLRUN) will be used as perl. - -Any newlines in $perl_code will be escaped. Leading and trailing -newlines will be stripped. Makes this idiom much easier: - - my $code = $MM->oneliner(<<'CODE', [...switches...]); -some code here -another line here -CODE - -Usage might be something like: - - # an echo emulation - $oneliner = $MM->oneliner('print "Foo\n"'); - $make = '$oneliner > somefile'; - -Dollar signs in the $perl_code will be protected from make using the -C<quote_literal> method, unless they are recognised as being a make -variable, C<$(varname)>, in which case they will be left for make -to expand. Remember to quote make macros else it might be used as a -bareword. For example: - - # Assign the value of the $(VERSION_FROM) make macro to $vf. - $oneliner = $MM->oneliner('$vf = "$(VERSION_FROM)"'); - -Its currently very simple and may be expanded sometime in the figure -to include more flexible code and switches. - - -=head3 quote_literal I<Abstract> - - my $safe_text = $MM->quote_literal($text); - my $safe_text = $MM->quote_literal($text, \%options); - -This will quote $text so it is interpreted literally in the shell. - -For example, on Unix this would escape any single-quotes in $text and -put single-quotes around the whole thing. - -If $options{allow_variables} is true it will leave C<'$(FOO)'> make -variables untouched. If false they will be escaped like any other -C<$>. Defaults to true. - -=head3 escape_dollarsigns - - my $escaped_text = $MM->escape_dollarsigns($text); - -Escapes stray C<$> so they are not interpreted as make variables. - -It lets by C<$(...)>. - -=cut - -sub escape_dollarsigns { - my($self, $text) = @_; - - # Escape dollar signs which are not starting a variable - $text =~ s{\$ (?!\() }{\$\$}gx; - - return $text; -} - - -=head3 escape_all_dollarsigns - - my $escaped_text = $MM->escape_all_dollarsigns($text); - -Escapes all C<$> so they are not interpreted as make variables. - -=cut - -sub escape_all_dollarsigns { - my($self, $text) = @_; - - # Escape dollar signs - $text =~ s{\$}{\$\$}gx; - - return $text; -} - - -=head3 escape_newlines I<Abstract> - - my $escaped_text = $MM->escape_newlines($text); - -Shell escapes newlines in $text. - - -=head3 max_exec_len I<Abstract> - - my $max_exec_len = $MM->max_exec_len; - -Calculates the maximum command size the OS can exec. Effectively, -this is the max size of a shell command line. - -=for _private -$self->{_MAX_EXEC_LEN} is set by this method, but only for testing purposes. - - -=head3 make - - my $make = $MM->make; - -Returns the make variant we're generating the Makefile for. This attempts -to do some normalization on the information from %Config or the user. - -=cut - -sub make { - my $self = shift; - - my $make = lc $self->{MAKE}; - - # Truncate anything like foomake6 to just foomake. - $make =~ s/^(\w+make).*/$1/; - - # Turn gnumake into gmake. - $make =~ s/^gnu/g/; - - return $make; -} - - -=head2 Targets - -These are methods which produce make targets. - - -=head3 all_target - -Generate the default target 'all'. - -=cut - -sub all_target { - my $self = shift; - - return <<'MAKE_EXT'; -all :: pure_all - $(NOECHO) $(NOOP) -MAKE_EXT - -} - - -=head3 blibdirs_target - - my $make_frag = $mm->blibdirs_target; - -Creates the blibdirs target which creates all the directories we use -in blib/. - -The blibdirs.ts target is deprecated. Depend on blibdirs instead. - - -=cut - -sub _xs_list_basenames { - my ($self) = @_; - map { (my $b = $_) =~ s/\.xs$//; $b } sort keys %{ $self->{XS} }; -} - -sub blibdirs_target { - my $self = shift; - - my @dirs = map { uc "\$(INST_$_)" } qw(libdir archlib - autodir archautodir - bin script - man1dir man3dir - ); - if ($self->{XSMULTI}) { - for my $ext ($self->_xs_list_basenames) { - my ($v, $d, $f) = File::Spec->splitpath($ext); - my @d = File::Spec->splitdir($d); - shift @d if $d[0] eq 'lib'; - push @dirs, $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f); - } - } - - my @exists = map { $_.'$(DFSEP).exists' } @dirs; - - my $make = sprintf <<'MAKE', join(' ', @exists); -blibdirs : %s - $(NOECHO) $(NOOP) - -# Backwards compat with 6.18 through 6.25 -blibdirs.ts : blibdirs - $(NOECHO) $(NOOP) - -MAKE - - $make .= $self->dir_target(@dirs); - - return $make; -} - - -=head3 clean (o) - -Defines the clean target. - -=cut - -sub clean { -# --- Cleanup and Distribution Sections --- - - my($self, %attribs) = @_; - my @m; - push(@m, ' -# Delete temporary files but do not touch installed files. We don\'t delete -# the Makefile here so a later make realclean still has a makefile to use. - -clean :: clean_subdirs -'); - - my @files = sort values %{$self->{XS}}; # .c files from *.xs files - push @files, map { - my $file = $_; - map { $file.$_ } $self->{OBJ_EXT}, qw(.def _def.old .bs .bso .exp .base); - } $self->_xs_list_basenames; - my @dirs = qw(blib); - - # Normally these are all under blib but they might have been - # redefined. - # XXX normally this would be a good idea, but the Perl core sets - # INST_LIB = ../../lib rather than actually installing the files. - # So a "make clean" in an ext/ directory would blow away lib. - # Until the core is adjusted let's leave this out. -# push @dirs, qw($(INST_ARCHLIB) $(INST_LIB) -# $(INST_BIN) $(INST_SCRIPT) -# $(INST_MAN1DIR) $(INST_MAN3DIR) -# $(INST_LIBDIR) $(INST_ARCHLIBDIR) $(INST_AUTODIR) -# $(INST_STATIC) $(INST_DYNAMIC) -# ); - - - if( $attribs{FILES} ) { - # Use @dirs because we don't know what's in here. - push @dirs, ref $attribs{FILES} ? - @{$attribs{FILES}} : - split /\s+/, $attribs{FILES} ; - } - - push(@files, qw[$(MAKE_APERL_FILE) - MYMETA.json MYMETA.yml perlmain.c tmon.out mon.out so_locations - blibdirs.ts pm_to_blib pm_to_blib.ts - *$(OBJ_EXT) *$(LIB_EXT) perl.exe perl perl$(EXE_EXT) - $(BOOTSTRAP) $(BASEEXT).bso - $(BASEEXT).def lib$(BASEEXT).def - $(BASEEXT).exp $(BASEEXT).x - ]); - - push(@files, $self->catfile('$(INST_ARCHAUTODIR)','extralibs.all')); - push(@files, $self->catfile('$(INST_ARCHAUTODIR)','extralibs.ld')); - - # core files - if ($^O eq 'vos') { - push(@files, qw[perl*.kp]); - } - else { - push(@files, qw[core core.*perl.*.? *perl.core]); - } - - push(@files, map { "core." . "[0-9]"x$_ } (1..5)); - - # OS specific things to clean up. Use @dirs since we don't know - # what might be in here. - push @dirs, $self->extra_clean_files; - - # Occasionally files are repeated several times from different sources - { my(%f) = map { ($_ => 1) } @files; @files = sort keys %f; } - { my(%d) = map { ($_ => 1) } @dirs; @dirs = sort keys %d; } - - push @m, map "\t$_\n", $self->split_command('- $(RM_F)', @files); - push @m, map "\t$_\n", $self->split_command('- $(RM_RF)', @dirs); - - # Leave Makefile.old around for realclean - push @m, <<'MAKE'; - $(NOECHO) $(RM_F) $(MAKEFILE_OLD) - - $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) -MAKE - - push(@m, "\t$attribs{POSTOP}\n") if $attribs{POSTOP}; - - join("", @m); -} - - -=head3 clean_subdirs_target - - my $make_frag = $MM->clean_subdirs_target; - -Returns the clean_subdirs target. This is used by the clean target to -call clean on any subdirectories which contain Makefiles. - -=cut - -sub clean_subdirs_target { - my($self) = shift; - - # No subdirectories, no cleaning. - return <<'NOOP_FRAG' unless @{$self->{DIR}}; -clean_subdirs : - $(NOECHO) $(NOOP) -NOOP_FRAG - - - my $clean = "clean_subdirs :\n"; - - for my $dir (@{$self->{DIR}}) { - my $subclean = $self->oneliner(sprintf <<'CODE', $dir); -exit 0 unless chdir '%s'; system '$(MAKE) clean' if -f '$(FIRST_MAKEFILE)'; -CODE - - $clean .= "\t$subclean\n"; - } - - return $clean; -} - - -=head3 dir_target - - my $make_frag = $mm->dir_target(@directories); - -Generates targets to create the specified directories and set its -permission to PERM_DIR. - -Because depending on a directory to just ensure it exists doesn't work -too well (the modified time changes too often) dir_target() creates a -.exists file in the created directory. It is this you should depend on. -For portability purposes you should use the $(DIRFILESEP) macro rather -than a '/' to separate the directory from the file. - - yourdirectory$(DIRFILESEP).exists - -=cut - -sub dir_target { - my($self, @dirs) = @_; - - my $make = ''; - foreach my $dir (@dirs) { - $make .= sprintf <<'MAKE', ($dir) x 4; -%s$(DFSEP).exists :: Makefile.PL - $(NOECHO) $(MKPATH) %s - $(NOECHO) $(CHMOD) $(PERM_DIR) %s - $(NOECHO) $(TOUCH) %s$(DFSEP).exists - -MAKE - - } - - return $make; -} - - -=head3 distdir - -Defines the scratch directory target that will hold the distribution -before tar-ing (or shar-ing). - -=cut - -# For backwards compatibility. -*dist_dir = *distdir; - -sub distdir { - my($self) = shift; - - my $meta_target = $self->{NO_META} ? '' : 'distmeta'; - my $sign_target = !$self->{SIGN} ? '' : 'distsignature'; - - return sprintf <<'MAKE_FRAG', $meta_target, $sign_target; -create_distdir : - $(RM_RF) $(DISTVNAME) - $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ - -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" - -distdir : create_distdir %s %s - $(NOECHO) $(NOOP) - -MAKE_FRAG - -} - - -=head3 dist_test - -Defines a target that produces the distribution in the -scratch directory, and runs 'perl Makefile.PL; make ;make test' in that -subdirectory. - -=cut - -sub dist_test { - my($self) = shift; - - my $mpl_args = join " ", map qq["$_"], @ARGV; - - my $test = $self->cd('$(DISTVNAME)', - '$(ABSPERLRUN) Makefile.PL '.$mpl_args, - '$(MAKE) $(PASTHRU)', - '$(MAKE) test $(PASTHRU)' - ); - - return sprintf <<'MAKE_FRAG', $test; -disttest : distdir - %s - -MAKE_FRAG - - -} - - -=head3 xs_dlsyms_arg - -Returns command-line arg(s) to linker for file listing dlsyms to export. -Defaults to returning empty string, can be overridden by e.g. AIX. - -=cut - -sub xs_dlsyms_arg { - return ''; -} - -=head3 xs_dlsyms_ext - -Returns file-extension for C<xs_make_dlsyms> method's output file, -including any "." character. - -=cut - -sub xs_dlsyms_ext { - die "Pure virtual method"; -} - -=head3 xs_dlsyms_extra - -Returns any extra text to be prepended to the C<$extra> argument of -C<xs_make_dlsyms>. - -=cut - -sub xs_dlsyms_extra { - ''; -} - -=head3 xs_dlsyms_iterator - -Iterates over necessary shared objects, calling C<xs_make_dlsyms> method -for each with appropriate arguments. - -=cut - -sub xs_dlsyms_iterator { - my ($self, $attribs) = @_; - if ($self->{XSMULTI}) { - my @m; - for my $ext ($self->_xs_list_basenames) { - my @parts = File::Spec->splitdir($ext); - shift @parts if $parts[0] eq 'lib'; - my $name = join '::', @parts; - push @m, $self->xs_make_dlsyms( - $attribs, - $ext . $self->xs_dlsyms_ext, - "$ext.xs", - $name, - $parts[-1], - {}, [], {}, [], - $self->xs_dlsyms_extra . q!, 'FILE' => ! . neatvalue($ext), - ); - } - return join "\n", @m; - } else { - return $self->xs_make_dlsyms( - $attribs, - $self->{BASEEXT} . $self->xs_dlsyms_ext, - 'Makefile.PL', - $self->{NAME}, - $self->{DLBASE}, - $attribs->{DL_FUNCS} || $self->{DL_FUNCS} || {}, - $attribs->{FUNCLIST} || $self->{FUNCLIST} || [], - $attribs->{IMPORTS} || $self->{IMPORTS} || {}, - $attribs->{DL_VARS} || $self->{DL_VARS} || [], - $self->xs_dlsyms_extra, - ); - } -} - -=head3 xs_make_dlsyms - - $self->xs_make_dlsyms( - \%attribs, # hashref from %attribs in caller - "$self->{BASEEXT}.def", # output file for Makefile target - 'Makefile.PL', # dependency - $self->{NAME}, # shared object's "name" - $self->{DLBASE}, # last ::-separated part of name - $attribs{DL_FUNCS} || $self->{DL_FUNCS} || {}, # various params - $attribs{FUNCLIST} || $self->{FUNCLIST} || [], - $attribs{IMPORTS} || $self->{IMPORTS} || {}, - $attribs{DL_VARS} || $self->{DL_VARS} || [], - # optional extra param that will be added as param to Mksymlists - ); - -Utility method that returns Makefile snippet to call C<Mksymlists>. - -=cut - -sub xs_make_dlsyms { - my ($self, $attribs, $target, $dep, $name, $dlbase, $funcs, $funclist, $imports, $vars, $extra) = @_; - my @m = ( - "\n$target: $dep\n", - q! $(PERLRUN) -MExtUtils::Mksymlists \\ - -e "Mksymlists('NAME'=>\"!, $name, - q!\", 'DLBASE' => '!,$dlbase, - # The above two lines quoted differently to work around - # a bug in the 4DOS/4NT command line interpreter. The visible - # result of the bug was files named q('extension_name',) *with the - # single quotes and the comma* in the extension build directories. - q!', 'DL_FUNCS' => !,neatvalue($funcs), - q!, 'FUNCLIST' => !,neatvalue($funclist), - q!, 'IMPORTS' => !,neatvalue($imports), - q!, 'DL_VARS' => !, neatvalue($vars) - ); - push @m, $extra if defined $extra; - push @m, qq!);"\n!; - join '', @m; -} - -=head3 dynamic (o) - -Defines the dynamic target. - -=cut - -sub dynamic { -# --- Dynamic Loading Sections --- - - my($self) = shift; - ' -dynamic :: $(FIRST_MAKEFILE) config $(INST_BOOT) $(INST_DYNAMIC) - $(NOECHO) $(NOOP) -'; -} - - -=head3 makemakerdflt_target - - my $make_frag = $mm->makemakerdflt_target - -Returns a make fragment with the makemakerdeflt_target specified. -This target is the first target in the Makefile, is the default target -and simply points off to 'all' just in case any make variant gets -confused or something gets snuck in before the real 'all' target. - -=cut - -sub makemakerdflt_target { - return <<'MAKE_FRAG'; -makemakerdflt : all - $(NOECHO) $(NOOP) -MAKE_FRAG - -} - - -=head3 manifypods_target - - my $manifypods_target = $self->manifypods_target; - -Generates the manifypods target. This target generates man pages from -all POD files in MAN1PODS and MAN3PODS. - -=cut - -sub manifypods_target { - my($self) = shift; - - my $man1pods = ''; - my $man3pods = ''; - my $dependencies = ''; - - # populate manXpods & dependencies: - foreach my $name (sort keys %{$self->{MAN1PODS}}, sort keys %{$self->{MAN3PODS}}) { - $dependencies .= " \\\n\t$name"; - } - - my $manify = <<END; -manifypods : pure_all config $dependencies -END - - my @man_cmds; - foreach my $section (qw(1 3)) { - my $pods = $self->{"MAN${section}PODS"}; - my $p2m = sprintf <<'CMD', $section, $] > 5.008 ? " -u" : ""; - $(NOECHO) $(POD2MAN) --section=%s --perm_rw=$(PERM_RW)%s -CMD - push @man_cmds, $self->split_command($p2m, map {($_,$pods->{$_})} sort keys %$pods); - } - - $manify .= "\t\$(NOECHO) \$(NOOP)\n" unless @man_cmds; - $manify .= join '', map { "$_\n" } @man_cmds; - - return $manify; -} - -{ - my $has_cpan_meta; - sub _has_cpan_meta { - return $has_cpan_meta if defined $has_cpan_meta; - return $has_cpan_meta = !!eval { - require CPAN::Meta; - CPAN::Meta->VERSION(2.112150); - 1; - }; - } -} - -=head3 metafile_target - - my $target = $mm->metafile_target; - -Generate the metafile target. - -Writes the file META.yml (YAML encoded meta-data) and META.json -(JSON encoded meta-data) about the module in the distdir. -The format follows Module::Build's as closely as possible. - -=cut - -sub metafile_target { - my $self = shift; - return <<'MAKE_FRAG' if $self->{NO_META} or ! _has_cpan_meta(); -metafile : - $(NOECHO) $(NOOP) -MAKE_FRAG - - my $metadata = $self->metafile_data( - $self->{META_ADD} || {}, - $self->{META_MERGE} || {}, - ); - - my $meta = $self->_fix_metadata_before_conversion( $metadata ); - - my @write_metayml = $self->stashmeta( - $meta->as_string({version => "1.4"}), 'META_new.yml' - ); - my @write_metajson = $self->stashmeta( - $meta->as_string({version => "2.0"}), 'META_new.json' - ); - - my $metayml = join("\n\t", @write_metayml); - my $metajson = join("\n\t", @write_metajson); - return sprintf <<'MAKE_FRAG', $metayml, $metajson; -metafile : create_distdir - $(NOECHO) $(ECHO) Generating META.yml - %s - -$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml - $(NOECHO) $(ECHO) Generating META.json - %s - -$(NOECHO) $(MV) META_new.json $(DISTVNAME)/META.json -MAKE_FRAG - -} - -=begin private - -=head3 _fix_metadata_before_conversion - - $mm->_fix_metadata_before_conversion( \%metadata ); - -Fixes errors in the metadata before it's handed off to CPAN::Meta for -conversion. This hopefully results in something that can be used further -on, no guarantee is made though. - -=end private - -=cut - -sub _fix_metadata_before_conversion { - my ( $self, $metadata ) = @_; - - # we should never be called unless this already passed but - # prefer to be defensive in case somebody else calls this - - return unless _has_cpan_meta; - - my $bad_version = $metadata->{version} && - !CPAN::Meta::Validator->new->version( 'version', $metadata->{version} ); - # just delete all invalid versions - if( $bad_version ) { - warn "Can't parse version '$metadata->{version}'\n"; - $metadata->{version} = ''; - } - - my $validator2 = CPAN::Meta::Validator->new( $metadata ); - my @errors; - push @errors, $validator2->errors if !$validator2->is_valid; - my $validator14 = CPAN::Meta::Validator->new( - { - %$metadata, - 'meta-spec' => { version => 1.4 }, - } - ); - push @errors, $validator14->errors if !$validator14->is_valid; - # fix non-camelcase custom resource keys (only other trick we know) - for my $error ( @errors ) { - my ( $key ) = ( $error =~ /Custom resource '(.*)' must be in CamelCase./ ); - next if !$key; - - # first try to remove all non-alphabetic chars - ( my $new_key = $key ) =~ s/[^_a-zA-Z]//g; - - # if that doesn't work, uppercase first one - $new_key = ucfirst $new_key if !$validator14->custom_1( $new_key ); - - # copy to new key if that worked - $metadata->{resources}{$new_key} = $metadata->{resources}{$key} - if $validator14->custom_1( $new_key ); - - # and delete old one in any case - delete $metadata->{resources}{$key}; - } - - # paper over validation issues, but still complain, necessary because - # there's no guarantee that the above will fix ALL errors - my $meta = eval { CPAN::Meta->create( $metadata, { lazy_validation => 1 } ) }; - warn $@ if $@ and - $@ !~ /encountered CODE.*, but JSON can only represent references to arrays or hashes/; - - # use the original metadata straight if the conversion failed - # or if it can't be stringified. - if( !$meta || - !eval { $meta->as_string( { version => $METASPEC_V } ) } || - !eval { $meta->as_string } - ) { - $meta = bless $metadata, 'CPAN::Meta'; - } - - my $now_license = $meta->as_struct({ version => 2 })->{license}; - if ($self->{LICENSE} and $self->{LICENSE} ne 'unknown' and - @{$now_license} == 1 and $now_license->[0] eq 'unknown' - ) { - warn "Invalid LICENSE value '$self->{LICENSE}' ignored\n"; - } - - $meta; -} - - -=begin private - -=head3 _sort_pairs - - my @pairs = _sort_pairs($sort_sub, \%hash); - -Sorts the pairs of a hash based on keys ordered according -to C<$sort_sub>. - -=end private - -=cut - -sub _sort_pairs { - my $sort = shift; - my $pairs = shift; - return map { $_ => $pairs->{$_} } - sort $sort - keys %$pairs; -} - - -# Taken from Module::Build::Base -sub _hash_merge { - my ($self, $h, $k, $v) = @_; - if (ref $h->{$k} eq 'ARRAY') { - push @{$h->{$k}}, ref $v ? @$v : $v; - } elsif (ref $h->{$k} eq 'HASH') { - $self->_hash_merge($h->{$k}, $_, $v->{$_}) foreach keys %$v; - } else { - $h->{$k} = $v; - } -} - - -=head3 metafile_data - - my $metadata_hashref = $mm->metafile_data(\%meta_add, \%meta_merge); - -Returns the data which MakeMaker turns into the META.yml file -and the META.json file. It is always in version 2.0 of the format. - -Values of %meta_add will overwrite any existing metadata in those -keys. %meta_merge will be merged with them. - -=cut - -sub metafile_data { - my $self = shift; - my($meta_add, $meta_merge) = @_; - - $meta_add ||= {}; - $meta_merge ||= {}; - - my $version = _normalize_version($self->{VERSION}); - my $release_status = ($version =~ /_/) ? 'unstable' : 'stable'; - my %meta = ( - # required - abstract => $self->{ABSTRACT} || 'unknown', - author => defined($self->{AUTHOR}) ? $self->{AUTHOR} : ['unknown'], - dynamic_config => 1, - generated_by => "ExtUtils::MakeMaker version $ExtUtils::MakeMaker::VERSION", - license => [ $self->{LICENSE} || 'unknown' ], - 'meta-spec' => { - url => $METASPEC_URL, - version => $METASPEC_V, - }, - name => $self->{DISTNAME}, - release_status => $release_status, - version => $version, - - # optional - no_index => { directory => [qw(t inc)] }, - ); - $self->_add_requirements_to_meta(\%meta); - - if (!eval { require JSON::PP; require CPAN::Meta::Converter; CPAN::Meta::Converter->VERSION(2.141170) }) { - return \%meta; - } - - # needs to be based on the original version - my $v1_add = _metaspec_version($meta_add) !~ /^2/; - - my ($add_v, $merge_v) = map _metaspec_version($_), $meta_add, $meta_merge; - for my $frag ($meta_add, $meta_merge) { - my $def_v = $frag == $meta_add ? $merge_v : $add_v; - $frag = CPAN::Meta::Converter->new($frag, default_version => $def_v)->upgrade_fragment; - } - - # if we upgraded a 1.x _ADD fragment, we gave it a prereqs key that - # will override all prereqs, which is more than the user asked for; - # instead, we'll go inside the prereqs and override all those - while( my($key, $val) = each %$meta_add ) { - if ($v1_add and $key eq 'prereqs') { - $meta{$key}{$_} = $val->{$_} for keys %$val; - } elsif ($key ne 'meta-spec') { - $meta{$key} = $val; - } - } - - while( my($key, $val) = each %$meta_merge ) { - next if $key eq 'meta-spec'; - $self->_hash_merge(\%meta, $key, $val); - } - - return \%meta; -} - - -=begin private - -=cut - -sub _add_requirements_to_meta { - my ( $self, $meta ) = @_; - # Check the original args so we can tell between the user setting it - # to an empty hash and it just being initialized. - $meta->{prereqs}{configure}{requires} = $self->{ARGS}{CONFIGURE_REQUIRES} - ? $self->{CONFIGURE_REQUIRES} - : { 'ExtUtils::MakeMaker' => 0, }; - $meta->{prereqs}{build}{requires} = $self->{ARGS}{BUILD_REQUIRES} - ? $self->{BUILD_REQUIRES} - : { 'ExtUtils::MakeMaker' => 0, }; - $meta->{prereqs}{test}{requires} = $self->{TEST_REQUIRES} - if $self->{ARGS}{TEST_REQUIRES}; - $meta->{prereqs}{runtime}{requires} = $self->{PREREQ_PM} - if $self->{ARGS}{PREREQ_PM}; - $meta->{prereqs}{runtime}{requires}{perl} = _normalize_version($self->{MIN_PERL_VERSION}) - if $self->{MIN_PERL_VERSION}; -} - -# spec version of given fragment - if not given, assume 1.4 -sub _metaspec_version { - my ( $meta ) = @_; - return $meta->{'meta-spec'}->{version} - if defined $meta->{'meta-spec'} - and defined $meta->{'meta-spec'}->{version}; - return '1.4'; -} - -sub _add_requirements_to_meta_v1_4 { - my ( $self, $meta ) = @_; - # Check the original args so we can tell between the user setting it - # to an empty hash and it just being initialized. - if( $self->{ARGS}{CONFIGURE_REQUIRES} ) { - $meta->{configure_requires} = $self->{CONFIGURE_REQUIRES}; - } else { - $meta->{configure_requires} = { - 'ExtUtils::MakeMaker' => 0, - }; - } - if( $self->{ARGS}{BUILD_REQUIRES} ) { - $meta->{build_requires} = $self->{BUILD_REQUIRES}; - } else { - $meta->{build_requires} = { - 'ExtUtils::MakeMaker' => 0, - }; - } - if( $self->{ARGS}{TEST_REQUIRES} ) { - $meta->{build_requires} = { - %{ $meta->{build_requires} }, - %{ $self->{TEST_REQUIRES} }, - }; - } - $meta->{requires} = $self->{PREREQ_PM} - if defined $self->{PREREQ_PM}; - $meta->{requires}{perl} = _normalize_version($self->{MIN_PERL_VERSION}) - if $self->{MIN_PERL_VERSION}; -} - -# Adapted from Module::Build::Base -sub _normalize_version { - my ($version) = @_; - $version = 0 unless defined $version; - - if ( ref $version eq 'version' ) { # version objects - $version = $version->stringify; - } - elsif ( $version =~ /^[^v][^.]*\.[^.]+\./ ) { # no leading v, multiple dots - # normalize string tuples without "v": "1.2.3" -> "v1.2.3" - $version = "v$version"; - } - else { - # leave alone - } - return $version; -} - -=head3 _dump_hash - - $yaml = _dump_hash(\%options, %hash); - -Implements a fake YAML dumper for a hash given -as a list of pairs. No quoting/escaping is done. Keys -are supposed to be strings. Values are undef, strings, -hash refs or array refs of strings. - -Supported options are: - - delta => STR - indentation delta - use_header => BOOL - whether to include a YAML header - indent => STR - a string of spaces - default: '' - - max_key_length => INT - maximum key length used to align - keys and values of the same hash - default: 20 - key_sort => CODE - a sort sub - It may be undef, which means no sorting by keys - default: sub { lc $a cmp lc $b } - - customs => HASH - special options for certain keys - (whose values are hashes themselves) - may contain: max_key_length, key_sort, customs - -=end private - -=cut - -sub _dump_hash { - croak "first argument should be a hash ref" unless ref $_[0] eq 'HASH'; - my $options = shift; - my %hash = @_; - - # Use a list to preserve order. - my @pairs; - - my $k_sort - = exists $options->{key_sort} ? $options->{key_sort} - : sub { lc $a cmp lc $b }; - if ($k_sort) { - croak "'key_sort' should be a coderef" unless ref $k_sort eq 'CODE'; - @pairs = _sort_pairs($k_sort, \%hash); - } else { # list of pairs, no sorting - @pairs = @_; - } - - my $yaml = $options->{use_header} ? "--- #YAML:1.0\n" : ''; - my $indent = $options->{indent} || ''; - my $k_length = min( - ($options->{max_key_length} || 20), - max(map { length($_) + 1 } grep { !ref $hash{$_} } keys %hash) - ); - my $customs = $options->{customs} || {}; - - # printf format for key - my $k_format = "%-${k_length}s"; - - while( @pairs ) { - my($key, $val) = splice @pairs, 0, 2; - $val = '~' unless defined $val; - if(ref $val eq 'HASH') { - if ( keys %$val ) { - my %k_options = ( # options for recursive call - delta => $options->{delta}, - use_header => 0, - indent => $indent . $options->{delta}, - ); - if (exists $customs->{$key}) { - my %k_custom = %{$customs->{$key}}; - foreach my $k (qw(key_sort max_key_length customs)) { - $k_options{$k} = $k_custom{$k} if exists $k_custom{$k}; - } - } - $yaml .= $indent . "$key:\n" - . _dump_hash(\%k_options, %$val); - } - else { - $yaml .= $indent . "$key: {}\n"; - } - } - elsif (ref $val eq 'ARRAY') { - if( @$val ) { - $yaml .= $indent . "$key:\n"; - - for (@$val) { - croak "only nested arrays of non-refs are supported" if ref $_; - $yaml .= $indent . $options->{delta} . "- $_\n"; - } - } - else { - $yaml .= $indent . "$key: []\n"; - } - } - elsif( ref $val and !blessed($val) ) { - croak "only nested hashes, arrays and objects are supported"; - } - else { # if it's an object, just stringify it - $yaml .= $indent . sprintf "$k_format %s\n", "$key:", $val; - } - }; - - return $yaml; - -} - -sub blessed { - return eval { $_[0]->isa("UNIVERSAL"); }; -} - -sub max { - return (sort { $b <=> $a } @_)[0]; -} - -sub min { - return (sort { $a <=> $b } @_)[0]; -} - -=head3 metafile_file - - my $meta_yml = $mm->metafile_file(@metadata_pairs); - -Turns the @metadata_pairs into YAML. - -This method does not implement a complete YAML dumper, being limited -to dump a hash with values which are strings, undef's or nested hashes -and arrays of strings. No quoting/escaping is done. - -=cut - -sub metafile_file { - my $self = shift; - - my %dump_options = ( - use_header => 1, - delta => ' ' x 4, - key_sort => undef, - ); - return _dump_hash(\%dump_options, @_); - -} - - -=head3 distmeta_target - - my $make_frag = $mm->distmeta_target; - -Generates the distmeta target to add META.yml and META.json to the MANIFEST -in the distdir. - -=cut - -sub distmeta_target { - my $self = shift; - - my @add_meta = ( - $self->oneliner(<<'CODE', ['-MExtUtils::Manifest=maniadd']), -exit unless -e q{META.yml}; -eval { maniadd({q{META.yml} => q{Module YAML meta-data (added by MakeMaker)}}) } - or die "Could not add META.yml to MANIFEST: ${'@'}" -CODE - $self->oneliner(<<'CODE', ['-MExtUtils::Manifest=maniadd']) -exit unless -f q{META.json}; -eval { maniadd({q{META.json} => q{Module JSON meta-data (added by MakeMaker)}}) } - or die "Could not add META.json to MANIFEST: ${'@'}" -CODE - ); - - my @add_meta_to_distdir = map { $self->cd('$(DISTVNAME)', $_) } @add_meta; - - return sprintf <<'MAKE', @add_meta_to_distdir; -distmeta : create_distdir metafile - $(NOECHO) %s - $(NOECHO) %s - -MAKE - -} - - -=head3 mymeta - - my $mymeta = $mm->mymeta; - -Generate MYMETA information as a hash either from an existing CPAN Meta file -(META.json or META.yml) or from internal data. - -=cut - -sub mymeta { - my $self = shift; - my $file = shift || ''; # for testing - - my $mymeta = $self->_mymeta_from_meta($file); - my $v2 = 1; - - unless ( $mymeta ) { - $mymeta = $self->metafile_data( - $self->{META_ADD} || {}, - $self->{META_MERGE} || {}, - ); - $v2 = 0; - } - - # Overwrite the non-configure dependency hashes - $self->_add_requirements_to_meta($mymeta); - - $mymeta->{dynamic_config} = 0; - - return $mymeta; -} - - -sub _mymeta_from_meta { - my $self = shift; - my $metafile = shift || ''; # for testing - - return unless _has_cpan_meta(); - - my $meta; - for my $file ( $metafile, "META.json", "META.yml" ) { - next unless -e $file; - eval { - $meta = CPAN::Meta->load_file($file)->as_struct( { version => 2 } ); - }; - last if $meta; - } - return unless $meta; - - # META.yml before 6.25_01 cannot be trusted. META.yml lived in the source directory. - # There was a good chance the author accidentally uploaded a stale META.yml if they - # rolled their own tarball rather than using "make dist". - if ($meta->{generated_by} && - $meta->{generated_by} =~ /ExtUtils::MakeMaker version ([\d\._]+)/) { - my $eummv = do { local $^W = 0; $1+0; }; - if ($eummv < 6.2501) { - return; - } - } - - return $meta; -} - -=head3 write_mymeta - - $self->write_mymeta( $mymeta ); - -Write MYMETA information to MYMETA.json and MYMETA.yml. - -=cut - -sub write_mymeta { - my $self = shift; - my $mymeta = shift; - - return unless _has_cpan_meta(); - - my $meta_obj = $self->_fix_metadata_before_conversion( $mymeta ); - - $meta_obj->save( 'MYMETA.json', { version => "2.0" } ); - $meta_obj->save( 'MYMETA.yml', { version => "1.4" } ); - return 1; -} - -=head3 realclean (o) - -Defines the realclean target. - -=cut - -sub realclean { - my($self, %attribs) = @_; - - my @dirs = qw($(DISTVNAME)); - my @files = qw($(FIRST_MAKEFILE) $(MAKEFILE_OLD)); - - # Special exception for the perl core where INST_* is not in blib. - # This cleans up the files built from the ext/ directory (all XS). - if( $self->{PERL_CORE} ) { - push @dirs, qw($(INST_AUTODIR) $(INST_ARCHAUTODIR)); - push @files, values %{$self->{PM}}; - } - - if( $self->has_link_code ){ - push @files, qw($(OBJECT)); - } - - if( $attribs{FILES} ) { - if( ref $attribs{FILES} ) { - push @dirs, @{ $attribs{FILES} }; - } - else { - push @dirs, split /\s+/, $attribs{FILES}; - } - } - - # Occasionally files are repeated several times from different sources - { my(%f) = map { ($_ => 1) } @files; @files = sort keys %f; } - { my(%d) = map { ($_ => 1) } @dirs; @dirs = sort keys %d; } - - my $rm_cmd = join "\n\t", map { "$_" } - $self->split_command('- $(RM_F)', @files); - my $rmf_cmd = join "\n\t", map { "$_" } - $self->split_command('- $(RM_RF)', @dirs); - - my $m = sprintf <<'MAKE', $rm_cmd, $rmf_cmd; -# Delete temporary files (via clean) and also delete dist files -realclean purge :: realclean_subdirs - %s - %s -MAKE - - $m .= "\t$attribs{POSTOP}\n" if $attribs{POSTOP}; - - return $m; -} - - -=head3 realclean_subdirs_target - - my $make_frag = $MM->realclean_subdirs_target; - -Returns the realclean_subdirs target. This is used by the realclean -target to call realclean on any subdirectories which contain Makefiles. - -=cut - -sub realclean_subdirs_target { - my $self = shift; - my @m = <<'EOF'; -# so clean is forced to complete before realclean_subdirs runs -realclean_subdirs : clean -EOF - return join '', @m, "\t\$(NOECHO) \$(NOOP)\n" unless @{$self->{DIR}}; - foreach my $dir (@{$self->{DIR}}) { - foreach my $makefile ('$(MAKEFILE_OLD)', '$(FIRST_MAKEFILE)' ) { - my $subrclean .= $self->oneliner(_sprintf562 <<'CODE', $dir, $makefile); -chdir '%1$s'; system '$(MAKE) $(USEMAKEFILE) %2$s realclean' if -f '%2$s'; -CODE - push @m, "\t- $subrclean\n"; - } - } - return join '', @m; -} - - -=head3 signature_target - - my $target = $mm->signature_target; - -Generate the signature target. - -Writes the file SIGNATURE with "cpansign -s". - -=cut - -sub signature_target { - my $self = shift; - - return <<'MAKE_FRAG'; -signature : - cpansign -s -MAKE_FRAG - -} - - -=head3 distsignature_target - - my $make_frag = $mm->distsignature_target; - -Generates the distsignature target to add SIGNATURE to the MANIFEST in the -distdir. - -=cut - -sub distsignature_target { - my $self = shift; - - my $add_sign = $self->oneliner(<<'CODE', ['-MExtUtils::Manifest=maniadd']); -eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } - or die "Could not add SIGNATURE to MANIFEST: ${'@'}" -CODE - - my $sign_dist = $self->cd('$(DISTVNAME)' => 'cpansign -s'); - - # cpansign -s complains if SIGNATURE is in the MANIFEST yet does not - # exist - my $touch_sig = $self->cd('$(DISTVNAME)' => '$(TOUCH) SIGNATURE'); - my $add_sign_to_dist = $self->cd('$(DISTVNAME)' => $add_sign ); - - return sprintf <<'MAKE', $add_sign_to_dist, $touch_sig, $sign_dist -distsignature : distmeta - $(NOECHO) %s - $(NOECHO) %s - %s - -MAKE - -} - - -=head3 special_targets - - my $make_frag = $mm->special_targets - -Returns a make fragment containing any targets which have special -meaning to make. For example, .SUFFIXES and .PHONY. - -=cut - -sub special_targets { - my $make_frag = <<'MAKE_FRAG'; -.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) - -.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir pure_all subdirs clean_subdirs makemakerdflt manifypods realclean_subdirs subdirs_dynamic subdirs_pure_nolink subdirs_static subdirs-test_dynamic subdirs-test_static test_dynamic test_static - -MAKE_FRAG - - $make_frag .= <<'MAKE_FRAG' if $ENV{CLEARCASE_ROOT}; -.NO_CONFIG_REC: Makefile - -MAKE_FRAG - - return $make_frag; -} - - - - -=head2 Init methods - -Methods which help initialize the MakeMaker object and macros. - - -=head3 init_ABSTRACT - - $mm->init_ABSTRACT - -=cut - -sub init_ABSTRACT { - my $self = shift; - - if( $self->{ABSTRACT_FROM} and $self->{ABSTRACT} ) { - warn "Both ABSTRACT_FROM and ABSTRACT are set. ". - "Ignoring ABSTRACT_FROM.\n"; - return; - } - - if ($self->{ABSTRACT_FROM}){ - $self->{ABSTRACT} = $self->parse_abstract($self->{ABSTRACT_FROM}) or - carp "WARNING: Setting ABSTRACT via file ". - "'$self->{ABSTRACT_FROM}' failed\n"; - } - - if ($self->{ABSTRACT} && $self->{ABSTRACT} =~ m![[:cntrl:]]+!) { - warn "WARNING: ABSTRACT contains control character(s),". - " they will be removed\n"; - $self->{ABSTRACT} =~ s![[:cntrl:]]+!!g; - return; - } -} - -=head3 init_INST - - $mm->init_INST; - -Called by init_main. Sets up all INST_* variables except those related -to XS code. Those are handled in init_xs. - -=cut - -sub init_INST { - my($self) = shift; - - $self->{INST_ARCHLIB} ||= $self->catdir($Curdir,"blib","arch"); - $self->{INST_BIN} ||= $self->catdir($Curdir,'blib','bin'); - - # INST_LIB typically pre-set if building an extension after - # perl has been built and installed. Setting INST_LIB allows - # you to build directly into, say $Config{privlibexp}. - unless ($self->{INST_LIB}){ - if ($self->{PERL_CORE}) { - $self->{INST_LIB} = $self->{INST_ARCHLIB} = $self->{PERL_LIB}; - } else { - $self->{INST_LIB} = $self->catdir($Curdir,"blib","lib"); - } - } - - my @parentdir = split(/::/, $self->{PARENT_NAME}); - $self->{INST_LIBDIR} = $self->catdir('$(INST_LIB)', @parentdir); - $self->{INST_ARCHLIBDIR} = $self->catdir('$(INST_ARCHLIB)', @parentdir); - $self->{INST_AUTODIR} = $self->catdir('$(INST_LIB)', 'auto', - '$(FULLEXT)'); - $self->{INST_ARCHAUTODIR} = $self->catdir('$(INST_ARCHLIB)', 'auto', - '$(FULLEXT)'); - - $self->{INST_SCRIPT} ||= $self->catdir($Curdir,'blib','script'); - - $self->{INST_MAN1DIR} ||= $self->catdir($Curdir,'blib','man1'); - $self->{INST_MAN3DIR} ||= $self->catdir($Curdir,'blib','man3'); - - return 1; -} - - -=head3 init_INSTALL - - $mm->init_INSTALL; - -Called by init_main. Sets up all INSTALL_* variables (except -INSTALLDIRS) and *PREFIX. - -=cut - -sub init_INSTALL { - my($self) = shift; - - if( $self->{ARGS}{INSTALL_BASE} and $self->{ARGS}{PREFIX} ) { - die "Only one of PREFIX or INSTALL_BASE can be given. Not both.\n"; - } - - if( $self->{ARGS}{INSTALL_BASE} ) { - $self->init_INSTALL_from_INSTALL_BASE; - } - else { - $self->init_INSTALL_from_PREFIX; - } -} - - -=head3 init_INSTALL_from_PREFIX - - $mm->init_INSTALL_from_PREFIX; - -=cut - -sub init_INSTALL_from_PREFIX { - my $self = shift; - - $self->init_lib2arch; - - # There are often no Config.pm defaults for these new man variables so - # we fall back to the old behavior which is to use installman*dir - foreach my $num (1, 3) { - my $k = 'installsiteman'.$num.'dir'; - - $self->{uc $k} ||= uc "\$(installman${num}dir)" - unless $Config{$k}; - } - - foreach my $num (1, 3) { - my $k = 'installvendorman'.$num.'dir'; - - unless( $Config{$k} ) { - $self->{uc $k} ||= $Config{usevendorprefix} - ? uc "\$(installman${num}dir)" - : ''; - } - } - - $self->{INSTALLSITEBIN} ||= '$(INSTALLBIN)' - unless $Config{installsitebin}; - $self->{INSTALLSITESCRIPT} ||= '$(INSTALLSCRIPT)' - unless $Config{installsitescript}; - - unless( $Config{installvendorbin} ) { - $self->{INSTALLVENDORBIN} ||= $Config{usevendorprefix} - ? $Config{installbin} - : ''; - } - unless( $Config{installvendorscript} ) { - $self->{INSTALLVENDORSCRIPT} ||= $Config{usevendorprefix} - ? $Config{installscript} - : ''; - } - - - my $iprefix = $Config{installprefixexp} || $Config{installprefix} || - $Config{prefixexp} || $Config{prefix} || ''; - my $vprefix = $Config{usevendorprefix} ? $Config{vendorprefixexp} : ''; - my $sprefix = $Config{siteprefixexp} || ''; - - # 5.005_03 doesn't have a siteprefix. - $sprefix = $iprefix unless $sprefix; - - - $self->{PREFIX} ||= ''; - - if( $self->{PREFIX} ) { - @{$self}{qw(PERLPREFIX SITEPREFIX VENDORPREFIX)} = - ('$(PREFIX)') x 3; - } - else { - $self->{PERLPREFIX} ||= $iprefix; - $self->{SITEPREFIX} ||= $sprefix; - $self->{VENDORPREFIX} ||= $vprefix; - - # Lots of MM extension authors like to use $(PREFIX) so we - # put something sensible in there no matter what. - $self->{PREFIX} = '$('.uc $self->{INSTALLDIRS}.'PREFIX)'; - } - - my $arch = $Config{archname}; - my $version = $Config{version}; - - # default style - my $libstyle = $Config{installstyle} || 'lib/perl5'; - my $manstyle = ''; - - if( $self->{LIBSTYLE} ) { - $libstyle = $self->{LIBSTYLE}; - $manstyle = $self->{LIBSTYLE} eq 'lib/perl5' ? 'lib/perl5' : ''; - } - - # Some systems, like VOS, set installman*dir to '' if they can't - # read man pages. - for my $num (1, 3) { - $self->{'INSTALLMAN'.$num.'DIR'} ||= 'none' - unless $Config{'installman'.$num.'dir'}; - } - - my %bin_layouts = - ( - bin => { s => $iprefix, - t => 'perl', - d => 'bin' }, - vendorbin => { s => $vprefix, - t => 'vendor', - d => 'bin' }, - sitebin => { s => $sprefix, - t => 'site', - d => 'bin' }, - script => { s => $iprefix, - t => 'perl', - d => 'bin' }, - vendorscript=> { s => $vprefix, - t => 'vendor', - d => 'bin' }, - sitescript => { s => $sprefix, - t => 'site', - d => 'bin' }, - ); - - my %man_layouts = - ( - man1dir => { s => $iprefix, - t => 'perl', - d => 'man/man1', - style => $manstyle, }, - siteman1dir => { s => $sprefix, - t => 'site', - d => 'man/man1', - style => $manstyle, }, - vendorman1dir => { s => $vprefix, - t => 'vendor', - d => 'man/man1', - style => $manstyle, }, - - man3dir => { s => $iprefix, - t => 'perl', - d => 'man/man3', - style => $manstyle, }, - siteman3dir => { s => $sprefix, - t => 'site', - d => 'man/man3', - style => $manstyle, }, - vendorman3dir => { s => $vprefix, - t => 'vendor', - d => 'man/man3', - style => $manstyle, }, - ); - - my %lib_layouts = - ( - privlib => { s => $iprefix, - t => 'perl', - d => '', - style => $libstyle, }, - vendorlib => { s => $vprefix, - t => 'vendor', - d => '', - style => $libstyle, }, - sitelib => { s => $sprefix, - t => 'site', - d => 'site_perl', - style => $libstyle, }, - - archlib => { s => $iprefix, - t => 'perl', - d => "$version/$arch", - style => $libstyle }, - vendorarch => { s => $vprefix, - t => 'vendor', - d => "$version/$arch", - style => $libstyle }, - sitearch => { s => $sprefix, - t => 'site', - d => "site_perl/$version/$arch", - style => $libstyle }, - ); - - - # Special case for LIB. - if( $self->{LIB} ) { - foreach my $var (keys %lib_layouts) { - my $Installvar = uc "install$var"; - - if( $var =~ /arch/ ) { - $self->{$Installvar} ||= - $self->catdir($self->{LIB}, $Config{archname}); - } - else { - $self->{$Installvar} ||= $self->{LIB}; - } - } - } - - my %type2prefix = ( perl => 'PERLPREFIX', - site => 'SITEPREFIX', - vendor => 'VENDORPREFIX' - ); - - my %layouts = (%bin_layouts, %man_layouts, %lib_layouts); - while( my($var, $layout) = each(%layouts) ) { - my($s, $t, $d, $style) = @{$layout}{qw(s t d style)}; - my $r = '$('.$type2prefix{$t}.')'; - - warn "Prefixing $var\n" if $Verbose >= 2; - - my $installvar = "install$var"; - my $Installvar = uc $installvar; - next if $self->{$Installvar}; - - $d = "$style/$d" if $style; - $self->prefixify($installvar, $s, $r, $d); - - warn " $Installvar == $self->{$Installvar}\n" - if $Verbose >= 2; - } - - # Generate these if they weren't figured out. - $self->{VENDORARCHEXP} ||= $self->{INSTALLVENDORARCH}; - $self->{VENDORLIBEXP} ||= $self->{INSTALLVENDORLIB}; - - return 1; -} - - -=head3 init_from_INSTALL_BASE - - $mm->init_from_INSTALL_BASE - -=cut - -my %map = ( - lib => [qw(lib perl5)], - arch => [('lib', 'perl5', $Config{archname})], - bin => [qw(bin)], - man1dir => [qw(man man1)], - man3dir => [qw(man man3)] - ); -$map{script} = $map{bin}; - -sub init_INSTALL_from_INSTALL_BASE { - my $self = shift; - - @{$self}{qw(PREFIX VENDORPREFIX SITEPREFIX PERLPREFIX)} = - '$(INSTALL_BASE)'; - - my %install; - foreach my $thing (keys %map) { - foreach my $dir (('', 'SITE', 'VENDOR')) { - my $uc_thing = uc $thing; - my $key = "INSTALL".$dir.$uc_thing; - - $install{$key} ||= - $self->catdir('$(INSTALL_BASE)', @{$map{$thing}}); - } - } - - # Adjust for variable quirks. - $install{INSTALLARCHLIB} ||= delete $install{INSTALLARCH}; - $install{INSTALLPRIVLIB} ||= delete $install{INSTALLLIB}; - - foreach my $key (keys %install) { - $self->{$key} ||= $install{$key}; - } - - return 1; -} - - -=head3 init_VERSION I<Abstract> - - $mm->init_VERSION - -Initialize macros representing versions of MakeMaker and other tools - -MAKEMAKER: path to the MakeMaker module. - -MM_VERSION: ExtUtils::MakeMaker Version - -MM_REVISION: ExtUtils::MakeMaker version control revision (for backwards - compat) - -VERSION: version of your module - -VERSION_MACRO: which macro represents the version (usually 'VERSION') - -VERSION_SYM: like version but safe for use as an RCS revision number - -DEFINE_VERSION: -D line to set the module version when compiling - -XS_VERSION: version in your .xs file. Defaults to $(VERSION) - -XS_VERSION_MACRO: which macro represents the XS version. - -XS_DEFINE_VERSION: -D line to set the xs version when compiling. - -Called by init_main. - -=cut - -sub init_VERSION { - my($self) = shift; - - $self->{MAKEMAKER} = $ExtUtils::MakeMaker::Filename; - $self->{MM_VERSION} = $ExtUtils::MakeMaker::VERSION; - $self->{MM_REVISION}= $ExtUtils::MakeMaker::Revision; - $self->{VERSION_FROM} ||= ''; - - if ($self->{VERSION_FROM}){ - $self->{VERSION} = $self->parse_version($self->{VERSION_FROM}); - if( $self->{VERSION} eq 'undef' ) { - carp("WARNING: Setting VERSION via file ". - "'$self->{VERSION_FROM}' failed\n"); - } - } - - if (defined $self->{VERSION}) { - if ( $self->{VERSION} !~ /^\s*v?[\d_\.]+\s*$/ ) { - require version; - my $normal = eval { version->new( $self->{VERSION} ) }; - $self->{VERSION} = $normal if defined $normal; - } - $self->{VERSION} =~ s/^\s+//; - $self->{VERSION} =~ s/\s+$//; - } - else { - $self->{VERSION} = ''; - } - - - $self->{VERSION_MACRO} = 'VERSION'; - ($self->{VERSION_SYM} = $self->{VERSION}) =~ s/\W/_/g; - $self->{DEFINE_VERSION} = '-D$(VERSION_MACRO)=\"$(VERSION)\"'; - - - # Graham Barr and Paul Marquess had some ideas how to ensure - # version compatibility between the *.pm file and the - # corresponding *.xs file. The bottom line was, that we need an - # XS_VERSION macro that defaults to VERSION: - $self->{XS_VERSION} ||= $self->{VERSION}; - - $self->{XS_VERSION_MACRO} = 'XS_VERSION'; - $self->{XS_DEFINE_VERSION} = '-D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\"'; - -} - - -=head3 init_tools - - $MM->init_tools(); - -Initializes the simple macro definitions used by tools_other() and -places them in the $MM object. These use conservative cross platform -versions and should be overridden with platform specific versions for -performance. - -Defines at least these macros. - - Macro Description - - NOOP Do nothing - NOECHO Tell make not to display the command itself - - SHELL Program used to run shell commands - - ECHO Print text adding a newline on the end - RM_F Remove a file - RM_RF Remove a directory - TOUCH Update a file's timestamp - TEST_F Test for a file's existence - TEST_S Test the size of a file - CP Copy a file - CP_NONEMPTY Copy a file if it is not empty - MV Move a file - CHMOD Change permissions on a file - FALSE Exit with non-zero - TRUE Exit with zero - - UMASK_NULL Nullify umask - DEV_NULL Suppress all command output - -=cut - -sub init_tools { - my $self = shift; - - $self->{ECHO} ||= $self->oneliner('binmode STDOUT, qq{:raw}; print qq{@ARGV}', ['-l']); - $self->{ECHO_N} ||= $self->oneliner('print qq{@ARGV}'); - - $self->{TOUCH} ||= $self->oneliner('touch', ["-MExtUtils::Command"]); - $self->{CHMOD} ||= $self->oneliner('chmod', ["-MExtUtils::Command"]); - $self->{RM_F} ||= $self->oneliner('rm_f', ["-MExtUtils::Command"]); - $self->{RM_RF} ||= $self->oneliner('rm_rf', ["-MExtUtils::Command"]); - $self->{TEST_F} ||= $self->oneliner('test_f', ["-MExtUtils::Command"]); - $self->{TEST_S} ||= $self->oneliner('test_s', ["-MExtUtils::Command::MM"]); - $self->{CP_NONEMPTY} ||= $self->oneliner('cp_nonempty', ["-MExtUtils::Command::MM"]); - $self->{FALSE} ||= $self->oneliner('exit 1'); - $self->{TRUE} ||= $self->oneliner('exit 0'); - - $self->{MKPATH} ||= $self->oneliner('mkpath', ["-MExtUtils::Command"]); - - $self->{CP} ||= $self->oneliner('cp', ["-MExtUtils::Command"]); - $self->{MV} ||= $self->oneliner('mv', ["-MExtUtils::Command"]); - - $self->{MOD_INSTALL} ||= - $self->oneliner(<<'CODE', ['-MExtUtils::Install']); -install([ from_to => {@ARGV}, verbose => '$(VERBINST)', uninstall_shadows => '$(UNINST)', dir_mode => '$(PERM_DIR)' ]); -CODE - $self->{DOC_INSTALL} ||= $self->oneliner('perllocal_install', ["-MExtUtils::Command::MM"]); - $self->{UNINSTALL} ||= $self->oneliner('uninstall', ["-MExtUtils::Command::MM"]); - $self->{WARN_IF_OLD_PACKLIST} ||= - $self->oneliner('warn_if_old_packlist', ["-MExtUtils::Command::MM"]); - $self->{FIXIN} ||= $self->oneliner('MY->fixin(shift)', ["-MExtUtils::MY"]); - $self->{EQUALIZE_TIMESTAMP} ||= $self->oneliner('eqtime', ["-MExtUtils::Command"]); - - $self->{UNINST} ||= 0; - $self->{VERBINST} ||= 0; - - $self->{SHELL} ||= $Config{sh}; - - # UMASK_NULL is not used by MakeMaker but some CPAN modules - # make use of it. - $self->{UMASK_NULL} ||= "umask 0"; - - # Not the greatest default, but its something. - $self->{DEV_NULL} ||= "> /dev/null 2>&1"; - - $self->{NOOP} ||= '$(TRUE)'; - $self->{NOECHO} = '@' unless defined $self->{NOECHO}; - - $self->{FIRST_MAKEFILE} ||= $self->{MAKEFILE} || 'Makefile'; - $self->{MAKEFILE} ||= $self->{FIRST_MAKEFILE}; - $self->{MAKEFILE_OLD} ||= $self->{MAKEFILE}.'.old'; - $self->{MAKE_APERL_FILE} ||= $self->{MAKEFILE}.'.aperl'; - - # Not everybody uses -f to indicate "use this Makefile instead" - $self->{USEMAKEFILE} ||= '-f'; - - # Some makes require a wrapper around macros passed in on the command - # line. - $self->{MACROSTART} ||= ''; - $self->{MACROEND} ||= ''; - - return; -} - - -=head3 init_others - - $MM->init_others(); - -Initializes the macro definitions having to do with compiling and -linking used by tools_other() and places them in the $MM object. - -If there is no description, its the same as the parameter to -WriteMakefile() documented in ExtUtils::MakeMaker. - -=cut - -sub init_others { - my $self = shift; - - $self->{LD_RUN_PATH} = ""; - - $self->{LIBS} = $self->_fix_libs($self->{LIBS}); - - # Compute EXTRALIBS, BSLOADLIBS and LDLOADLIBS from $self->{LIBS} - foreach my $libs ( @{$self->{LIBS}} ){ - $libs =~ s/^\s*(.*\S)\s*$/$1/; # remove leading and trailing whitespace - my(@libs) = $self->extliblist($libs); - if ($libs[0] or $libs[1] or $libs[2]){ - # LD_RUN_PATH now computed by ExtUtils::Liblist - ($self->{EXTRALIBS}, $self->{BSLOADLIBS}, - $self->{LDLOADLIBS}, $self->{LD_RUN_PATH}) = @libs; - last; - } - } - - if ( $self->{OBJECT} ) { - $self->{OBJECT} = join(" ", @{$self->{OBJECT}}) if ref $self->{OBJECT}; - $self->{OBJECT} =~ s!\.o(bj)?\b!\$(OBJ_EXT)!g; - } elsif ( ($self->{MAGICXS} || $self->{XSMULTI}) && @{$self->{O_FILES}||[]} ) { - $self->{OBJECT} = join(" ", @{$self->{O_FILES}}); - $self->{OBJECT} =~ s!\.o(bj)?\b!\$(OBJ_EXT)!g; - } else { - # init_dirscan should have found out, if we have C files - $self->{OBJECT} = ""; - $self->{OBJECT} = '$(BASEEXT)$(OBJ_EXT)' if @{$self->{C}||[]}; - } - $self->{OBJECT} =~ s/\n+/ \\\n\t/g; - - $self->{BOOTDEP} = (-f "$self->{BASEEXT}_BS") ? "$self->{BASEEXT}_BS" : ""; - $self->{PERLMAINCC} ||= '$(CC)'; - $self->{LDFROM} = '$(OBJECT)' unless $self->{LDFROM}; - - # Sanity check: don't define LINKTYPE = dynamic if we're skipping - # the 'dynamic' section of MM. We don't have this problem with - # 'static', since we either must use it (%Config says we can't - # use dynamic loading) or the caller asked for it explicitly. - if (!$self->{LINKTYPE}) { - $self->{LINKTYPE} = $self->{SKIPHASH}{'dynamic'} - ? 'static' - : ($Config{usedl} ? 'dynamic' : 'static'); - } - - return; -} - - -# Lets look at $self->{LIBS} carefully: It may be an anon array, a string or -# undefined. In any case we turn it into an anon array -sub _fix_libs { - my($self, $libs) = @_; - - return !defined $libs ? [''] : - !ref $libs ? [$libs] : - !defined $libs->[0] ? [''] : - $libs ; -} - - -=head3 tools_other - - my $make_frag = $MM->tools_other; - -Returns a make fragment containing definitions for the macros init_others() -initializes. - -=cut - -sub tools_other { - my($self) = shift; - my @m; - - # We set PM_FILTER as late as possible so it can see all the earlier - # on macro-order sensitive makes such as nmake. - for my $tool (qw{ SHELL CHMOD CP MV NOOP NOECHO RM_F RM_RF TEST_F TOUCH - UMASK_NULL DEV_NULL MKPATH EQUALIZE_TIMESTAMP - FALSE TRUE - ECHO ECHO_N - UNINST VERBINST - MOD_INSTALL DOC_INSTALL UNINSTALL - WARN_IF_OLD_PACKLIST - MACROSTART MACROEND - USEMAKEFILE - PM_FILTER - FIXIN - CP_NONEMPTY - } ) - { - next unless defined $self->{$tool}; - push @m, "$tool = $self->{$tool}\n"; - } - - return join "", @m; -} - - -=head3 init_DIRFILESEP I<Abstract> - - $MM->init_DIRFILESEP; - my $dirfilesep = $MM->{DIRFILESEP}; - -Initializes the DIRFILESEP macro which is the separator between the -directory and filename in a filepath. ie. / on Unix, \ on Win32 and -nothing on VMS. - -For example: - - # instead of $(INST_ARCHAUTODIR)/extralibs.ld - $(INST_ARCHAUTODIR)$(DIRFILESEP)extralibs.ld - -Something of a hack but it prevents a lot of code duplication between -MM_* variants. - -Do not use this as a separator between directories. Some operating -systems use different separators between subdirectories as between -directories and filenames (for example: VOLUME:[dir1.dir2]file on VMS). - -=head3 init_linker I<Abstract> - - $mm->init_linker; - -Initialize macros which have to do with linking. - -PERL_ARCHIVE: path to libperl.a equivalent to be linked to dynamic -extensions. - -PERL_ARCHIVE_AFTER: path to a library which should be put on the -linker command line I<after> the external libraries to be linked to -dynamic extensions. This may be needed if the linker is one-pass, and -Perl includes some overrides for C RTL functions, such as malloc(). - -EXPORT_LIST: name of a file that is passed to linker to define symbols -to be exported. - -Some OSes do not need these in which case leave it blank. - - -=head3 init_platform - - $mm->init_platform - -Initialize any macros which are for platform specific use only. - -A typical one is the version number of your OS specific module. -(ie. MM_Unix_VERSION or MM_VMS_VERSION). - -=cut - -sub init_platform { - return ''; -} - - -=head3 init_MAKE - - $mm->init_MAKE - -Initialize MAKE from either a MAKE environment variable or $Config{make}. - -=cut - -sub init_MAKE { - my $self = shift; - - $self->{MAKE} ||= $ENV{MAKE} || $Config{make}; -} - - -=head2 Tools - -A grab bag of methods to generate specific macros and commands. - - - -=head3 manifypods - -Defines targets and routines to translate the pods into manpages and -put them into the INST_* directories. - -=cut - -sub manifypods { - my $self = shift; - - my $POD2MAN_macro = $self->POD2MAN_macro(); - my $manifypods_target = $self->manifypods_target(); - - return <<END_OF_TARGET; - -$POD2MAN_macro - -$manifypods_target - -END_OF_TARGET - -} - - -=head3 POD2MAN_macro - - my $pod2man_macro = $self->POD2MAN_macro - -Returns a definition for the POD2MAN macro. This is a program -which emulates the pod2man utility. You can add more switches to the -command by simply appending them on the macro. - -Typical usage: - - $(POD2MAN) --section=3 --perm_rw=$(PERM_RW) podfile1 man_page1 ... - -=cut - -sub POD2MAN_macro { - my $self = shift; - -# Need the trailing '--' so perl stops gobbling arguments and - happens -# to be an alternative end of line separator on VMS so we quote it - return <<'END_OF_DEF'; -POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" -POD2MAN = $(POD2MAN_EXE) -END_OF_DEF -} - - -=head3 test_via_harness - - my $command = $mm->test_via_harness($perl, $tests); - -Returns a $command line which runs the given set of $tests with -Test::Harness and the given $perl. - -Used on the t/*.t files. - -=cut - -sub test_via_harness { - my($self, $perl, $tests) = @_; - - return qq{\t$perl "-MExtUtils::Command::MM" "-MTest::Harness" }. - qq{"-e" "undef *Test::Harness::Switches; test_harness(\$(TEST_VERBOSE), '\$(INST_LIB)', '\$(INST_ARCHLIB)')" $tests\n}; -} - -=head3 test_via_script - - my $command = $mm->test_via_script($perl, $script); - -Returns a $command line which just runs a single test without -Test::Harness. No checks are done on the results, they're just -printed. - -Used for test.pl, since they don't always follow Test::Harness -formatting. - -=cut - -sub test_via_script { - my($self, $perl, $script) = @_; - return qq{\t$perl "-I\$(INST_LIB)" "-I\$(INST_ARCHLIB)" $script\n}; -} - - -=head3 tool_autosplit - -Defines a simple perl call that runs autosplit. May be deprecated by -pm_to_blib soon. - -=cut - -sub tool_autosplit { - my($self, %attribs) = @_; - - my $maxlen = $attribs{MAXLEN} ? '$$AutoSplit::Maxlen=$attribs{MAXLEN};' - : ''; - - my $asplit = $self->oneliner(sprintf <<'PERL_CODE', $maxlen); -use AutoSplit; %s autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1) -PERL_CODE - - return sprintf <<'MAKE_FRAG', $asplit; -# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto -AUTOSPLITFILE = %s - -MAKE_FRAG - -} - - -=head3 arch_check - - my $arch_ok = $mm->arch_check( - $INC{"Config.pm"}, - File::Spec->catfile($Config{archlibexp}, "Config.pm") - ); - -A sanity check that what Perl thinks the architecture is and what -Config thinks the architecture is are the same. If they're not it -will return false and show a diagnostic message. - -When building Perl it will always return true, as nothing is installed -yet. - -The interface is a bit odd because this is the result of a -quick refactoring. Don't rely on it. - -=cut - -sub arch_check { - my $self = shift; - my($pconfig, $cconfig) = @_; - - return 1 if $self->{PERL_SRC}; - - my($pvol, $pthinks) = $self->splitpath($pconfig); - my($cvol, $cthinks) = $self->splitpath($cconfig); - - $pthinks = $self->canonpath($pthinks); - $cthinks = $self->canonpath($cthinks); - - my $ret = 1; - if ($pthinks ne $cthinks) { - print "Have $pthinks\n"; - print "Want $cthinks\n"; - - $ret = 0; - - my $arch = (grep length, $self->splitdir($pthinks))[-1]; - - print <<END unless $self->{UNINSTALLED_PERL}; -Your perl and your Config.pm seem to have different ideas about the -architecture they are running on. -Perl thinks: [$arch] -Config says: [$Config{archname}] -This may or may not cause problems. Please check your installation of perl -if you have problems building this extension. -END - } - - return $ret; -} - - - -=head2 File::Spec wrappers - -ExtUtils::MM_Any is a subclass of File::Spec. The methods noted here -override File::Spec. - - - -=head3 catfile - -File::Spec <= 0.83 has a bug where the file part of catfile is not -canonicalized. This override fixes that bug. - -=cut - -sub catfile { - my $self = shift; - return $self->canonpath($self->SUPER::catfile(@_)); -} - - - -=head2 Misc - -Methods I can't really figure out where they should go yet. - - -=head3 find_tests - - my $test = $mm->find_tests; - -Returns a string suitable for feeding to the shell to return all -tests in t/*.t. - -=cut - -sub find_tests { - my($self) = shift; - return -d 't' ? 't/*.t' : ''; -} - -=head3 find_tests_recursive - - my $tests = $mm->find_tests_recursive; - -Returns a string suitable for feeding to the shell to return all -tests in t/ but recursively. Equivalent to - - my $tests = $mm->find_tests_recursive_in('t'); - -=cut - -sub find_tests_recursive { - my $self = shift; - return $self->find_tests_recursive_in('t'); -} - -=head3 find_tests_recursive_in - - my $tests = $mm->find_tests_recursive_in($dir); - -Returns a string suitable for feeding to the shell to return all -tests in $dir recursively. - -=cut - -sub find_tests_recursive_in { - my($self, $dir) = @_; - return '' unless -d $dir; - - require File::Find; - - my $base_depth = grep { $_ ne '' } File::Spec->splitdir( (File::Spec->splitpath($dir))[1] ); - my %depths; - - my $wanted = sub { - return unless m!\.t$!; - my ($volume,$directories,$file) = - File::Spec->splitpath( $File::Find::name ); - my $depth = grep { $_ ne '' } File::Spec->splitdir( $directories ); - $depth -= $base_depth; - $depths{ $depth } = 1; - }; - - File::Find::find( $wanted, $dir ); - - return join ' ', - map { $dir . '/*' x $_ . '.t' } - sort { $a <=> $b } - keys %depths; -} - -=head3 extra_clean_files - - my @files_to_clean = $MM->extra_clean_files; - -Returns a list of OS specific files to be removed in the clean target in -addition to the usual set. - -=cut - -# An empty method here tickled a perl 5.8.1 bug and would return its object. -sub extra_clean_files { - return; -} - - -=head3 installvars - - my @installvars = $mm->installvars; - -A list of all the INSTALL* variables without the INSTALL prefix. Useful -for iteration or building related variable sets. - -=cut - -sub installvars { - return qw(PRIVLIB SITELIB VENDORLIB - ARCHLIB SITEARCH VENDORARCH - BIN SITEBIN VENDORBIN - SCRIPT SITESCRIPT VENDORSCRIPT - MAN1DIR SITEMAN1DIR VENDORMAN1DIR - MAN3DIR SITEMAN3DIR VENDORMAN3DIR - ); -} - - -=head3 libscan - - my $wanted = $self->libscan($path); - -Takes a path to a file or dir and returns an empty string if we don't -want to include this file in the library. Otherwise it returns the -the $path unchanged. - -Mainly used to exclude version control administrative directories -and base-level F<README.pod> from installation. - -=cut - -sub libscan { - my($self,$path) = @_; - - if ($path =~ m<^README\.pod$>i) { - warn "WARNING: Older versions of ExtUtils::MakeMaker may errantly install $path as part of this distribution. It is recommended to avoid using this path in CPAN modules.\n" - unless $ENV{PERL_CORE}; - return ''; - } - - my($dirs,$file) = ($self->splitpath($path))[1,2]; - return '' if grep /^(?:RCS|CVS|SCCS|\.svn|_darcs)$/, - $self->splitdir($dirs), $file; - - return $path; -} - - -=head3 platform_constants - - my $make_frag = $mm->platform_constants - -Returns a make fragment defining all the macros initialized in -init_platform() rather than put them in constants(). - -=cut - -sub platform_constants { - return ''; -} - -=head3 post_constants (o) - -Returns an empty string per default. Dedicated to overrides from -within Makefile.PL after all constants have been defined. - -=cut - -sub post_constants { - ""; -} - -=head3 post_initialize (o) - -Returns an empty string per default. Used in Makefile.PLs to add some -chunk of text to the Makefile after the object is initialized. - -=cut - -sub post_initialize { - ""; -} - -=head3 postamble (o) - -Returns an empty string. Can be used in Makefile.PLs to write some -text to the Makefile at the end. - -=cut - -sub postamble { - ""; -} - -=begin private - -=head3 _PREREQ_PRINT - - $self->_PREREQ_PRINT; - -Implements PREREQ_PRINT. - -Refactored out of MakeMaker->new(). - -=end private - -=cut - -sub _PREREQ_PRINT { - my $self = shift; - - require Data::Dumper; - my @what = ('PREREQ_PM'); - push @what, 'MIN_PERL_VERSION' if $self->{MIN_PERL_VERSION}; - push @what, 'BUILD_REQUIRES' if $self->{BUILD_REQUIRES}; - print Data::Dumper->Dump([@{$self}{@what}], \@what); - exit 0; -} - - -=begin private - -=head3 _PRINT_PREREQ - - $mm->_PRINT_PREREQ; - -Implements PRINT_PREREQ, a slightly different version of PREREQ_PRINT -added by Redhat to, I think, support generating RPMs from Perl modules. - -Should not include BUILD_REQUIRES as RPMs do not include them. - -Refactored out of MakeMaker->new(). - -=end private - -=cut - -sub _PRINT_PREREQ { - my $self = shift; - - my $prereqs= $self->{PREREQ_PM}; - my @prereq = map { [$_, $prereqs->{$_}] } keys %$prereqs; - - if ( $self->{MIN_PERL_VERSION} ) { - push @prereq, ['perl' => $self->{MIN_PERL_VERSION}]; - } - - print join(" ", map { "perl($_->[0])>=$_->[1] " } - sort { $a->[0] cmp $b->[0] } @prereq), "\n"; - exit 0; -} - - -=begin private - -=head3 _perl_header_files - - my $perl_header_files= $self->_perl_header_files; - -returns a sorted list of header files as found in PERL_SRC or $archlibexp/CORE. - -Used by perldepend() in MM_Unix and MM_VMS via _perl_header_files_fragment() - -=end private - -=cut - -sub _perl_header_files { - my $self = shift; - - my $header_dir = $self->{PERL_SRC} || $ENV{PERL_SRC} || $self->catdir($Config{archlibexp}, 'CORE'); - opendir my $dh, $header_dir - or die "Failed to opendir '$header_dir' to find header files: $!"; - - # we need to use a temporary here as the sort in scalar context would have undefined results. - my @perl_headers= sort grep { /\.h\z/ } readdir($dh); - - closedir $dh; - - return @perl_headers; -} - -=begin private - -=head3 _perl_header_files_fragment ($o, $separator) - - my $perl_header_files_fragment= $self->_perl_header_files_fragment("/"); - -return a Makefile fragment which holds the list of perl header files which -XS code depends on $(PERL_INC), and sets up the dependency for the $(OBJECT) file. - -The $separator argument defaults to "". MM_VMS will set it to "" and MM_UNIX to "/" -in perldepend(). This reason child subclasses need to control this is that in -VMS the $(PERL_INC) directory will already have delimiters in it, but in -UNIX $(PERL_INC) will need a slash between it an the filename. Hypothetically -win32 could use "\\" (but it doesn't need to). - -=end private - -=cut - -sub _perl_header_files_fragment { - my ($self, $separator)= @_; - $separator ||= ""; - return join("\\\n", - "PERL_HDRS = ", - map { - sprintf( " \$(PERL_INCDEP)%s%s ", $separator, $_ ) - } $self->_perl_header_files() - ) . "\n\n" - . "\$(OBJECT) : \$(PERL_HDRS)\n"; -} - - -=head1 AUTHOR - -Michael G Schwern <schwern@pobox.com> and the denizens of -makemaker@perl.org with code from ExtUtils::MM_Unix and -ExtUtils::MM_Win32. - - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_BeOS.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_BeOS.pm deleted file mode 100644 index 6fb79113..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_BeOS.pm +++ /dev/null @@ -1,63 +0,0 @@ -package ExtUtils::MM_BeOS; - -use strict; - -=head1 NAME - -ExtUtils::MM_BeOS - methods to override UN*X behaviour in ExtUtils::MakeMaker - -=head1 SYNOPSIS - - use ExtUtils::MM_BeOS; # Done internally by ExtUtils::MakeMaker if needed - -=head1 DESCRIPTION - -See ExtUtils::MM_Unix for a documentation of the methods provided -there. This package overrides the implementation of these methods, not -the semantics. - -=over 4 - -=cut - -use ExtUtils::MakeMaker::Config; -use File::Spec; -require ExtUtils::MM_Any; -require ExtUtils::MM_Unix; - -our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix ); -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - - -=item os_flavor - -BeOS is BeOS. - -=cut - -sub os_flavor { - return('BeOS'); -} - -=item init_linker - -libperl.a equivalent to be linked to dynamic extensions. - -=cut - -sub init_linker { - my($self) = shift; - - $self->{PERL_ARCHIVE} ||= - File::Spec->catdir('$(PERL_INC)',$Config{libperl}); - $self->{PERL_ARCHIVEDEP} ||= ''; - $self->{PERL_ARCHIVE_AFTER} ||= ''; - $self->{EXPORT_LIST} ||= ''; -} - -=back - -1; -__END__ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Cygwin.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Cygwin.pm deleted file mode 100644 index 934e65f9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Cygwin.pm +++ /dev/null @@ -1,175 +0,0 @@ -package ExtUtils::MM_Cygwin; - -use strict; - -use ExtUtils::MakeMaker::Config; -use File::Spec; - -require ExtUtils::MM_Unix; -require ExtUtils::MM_Win32; -our @ISA = qw( ExtUtils::MM_Unix ); - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - - -=head1 NAME - -ExtUtils::MM_Cygwin - methods to override UN*X behaviour in ExtUtils::MakeMaker - -=head1 SYNOPSIS - - use ExtUtils::MM_Cygwin; # Done internally by ExtUtils::MakeMaker if needed - -=head1 DESCRIPTION - -See ExtUtils::MM_Unix for a documentation of the methods provided there. - -=over 4 - -=item os_flavor - -We're Unix and Cygwin. - -=cut - -sub os_flavor { - return('Unix', 'Cygwin'); -} - -=item cflags - -if configured for dynamic loading, triggers #define EXT in EXTERN.h - -=cut - -sub cflags { - my($self,$libperl)=@_; - return $self->{CFLAGS} if $self->{CFLAGS}; - return '' unless $self->needs_linking(); - - my $base = $self->SUPER::cflags($libperl); - foreach (split /\n/, $base) { - /^(\S*)\s*=\s*(\S*)$/ and $self->{$1} = $2; - }; - $self->{CCFLAGS} .= " -DUSEIMPORTLIB" if ($Config{useshrplib} eq 'true'); - - return $self->{CFLAGS} = qq{ -CCFLAGS = $self->{CCFLAGS} -OPTIMIZE = $self->{OPTIMIZE} -PERLTYPE = $self->{PERLTYPE} -}; - -} - - -=item replace_manpage_separator - -replaces strings '::' with '.' in MAN*POD man page names - -=cut - -sub replace_manpage_separator { - my($self, $man) = @_; - $man =~ s{/+}{.}g; - return $man; -} - -=item init_linker - -points to libperl.a - -=cut - -sub init_linker { - my $self = shift; - - if ($Config{useshrplib} eq 'true') { - my $libperl = '$(PERL_INC)' .'/'. "$Config{libperl}"; - if( $] >= 5.006002 ) { - $libperl =~ s/(dll\.)?a$/dll.a/; - } - $self->{PERL_ARCHIVE} = $libperl; - } else { - $self->{PERL_ARCHIVE} = - '$(PERL_INC)' .'/'. ("$Config{libperl}" or "libperl.a"); - } - - $self->{PERL_ARCHIVEDEP} ||= ''; - $self->{PERL_ARCHIVE_AFTER} ||= ''; - $self->{EXPORT_LIST} ||= ''; -} - -=item maybe_command - -Determine whether a file is native to Cygwin by checking whether it -resides inside the Cygwin installation (using Windows paths). If so, -use C<ExtUtils::MM_Unix> to determine if it may be a command. -Otherwise use the tests from C<ExtUtils::MM_Win32>. - -=cut - -sub maybe_command { - my ($self, $file) = @_; - - my $cygpath = Cygwin::posix_to_win_path('/', 1); - my $filepath = Cygwin::posix_to_win_path($file, 1); - - return (substr($filepath,0,length($cygpath)) eq $cygpath) - ? $self->SUPER::maybe_command($file) # Unix - : ExtUtils::MM_Win32->maybe_command($file); # Win32 -} - -=item dynamic_lib - -Use the default to produce the *.dll's. -But for new archdir dll's use the same rebase address if the old exists. - -=cut - -sub dynamic_lib { - my($self, %attribs) = @_; - my $s = ExtUtils::MM_Unix::dynamic_lib($self, %attribs); - return '' unless $s; - return $s unless %{$self->{XS}}; - - # do an ephemeral rebase so the new DLL fits to the current rebase map - $s .= "\t/bin/find \$\(INST_ARCHLIB\)/auto -xdev -name \\*.$self->{DLEXT} | /bin/rebase -sOT -" if (( $Config{myarchname} eq 'i686-cygwin' ) and not ( exists $ENV{CYGPORT_PACKAGE_VERSION} )); - $s; -} - -=item install - -Rebase dll's with the global rebase database after installation. - -=cut - -sub install { - my($self, %attribs) = @_; - my $s = ExtUtils::MM_Unix::install($self, %attribs); - return '' unless $s; - return $s unless %{$self->{XS}}; - - my $INSTALLDIRS = $self->{INSTALLDIRS}; - my $INSTALLLIB = $self->{"INSTALL". ($INSTALLDIRS eq 'perl' ? 'ARCHLIB' : uc($INSTALLDIRS)."ARCH")}; - my $dop = "\$\(DESTDIR\)$INSTALLLIB/auto/"; - my $dll = "$dop/$self->{FULLEXT}/$self->{BASEEXT}.$self->{DLEXT}"; - $s =~ s|^(pure_install :: pure_\$\(INSTALLDIRS\)_install\n\t)\$\(NOECHO\) \$\(NOOP\)\n|$1\$(CHMOD) \$(PERM_RWX) $dll\n\t/bin/find $dop -xdev -name \\*.$self->{DLEXT} \| /bin/rebase -sOT -\n|m if (( $Config{myarchname} eq 'i686-cygwin') and not ( exists $ENV{CYGPORT_PACKAGE_VERSION} )); - $s; -} - -=item all_target - -Build man pages, too - -=cut - -sub all_target { - ExtUtils::MM_Unix::all_target(shift); -} - -=back - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_DOS.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_DOS.pm deleted file mode 100644 index 33a8b199..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_DOS.pm +++ /dev/null @@ -1,74 +0,0 @@ -package ExtUtils::MM_DOS; - -use strict; - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -require ExtUtils::MM_Any; -require ExtUtils::MM_Unix; -our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix ); - - -=head1 NAME - -ExtUtils::MM_DOS - DOS specific subclass of ExtUtils::MM_Unix - -=head1 SYNOPSIS - - Don't use this module directly. - Use ExtUtils::MM and let it choose. - -=head1 DESCRIPTION - -This is a subclass of ExtUtils::MM_Unix which contains functionality -for DOS. - -Unless otherwise stated, it works just like ExtUtils::MM_Unix - -=head2 Overridden methods - -=over 4 - -=item os_flavor - -=cut - -sub os_flavor { - return('DOS'); -} - -=item B<replace_manpage_separator> - -Generates Foo__Bar.3 style man page names - -=cut - -sub replace_manpage_separator { - my($self, $man) = @_; - - $man =~ s,/+,__,g; - return $man; -} - -=item xs_static_lib_is_xs - -=cut - -sub xs_static_lib_is_xs { - return 1; -} - -=back - -=head1 AUTHOR - -Michael G Schwern <schwern@pobox.com> with code from ExtUtils::MM_Unix - -=head1 SEE ALSO - -L<ExtUtils::MM_Unix>, L<ExtUtils::MakeMaker> - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Darwin.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Darwin.pm deleted file mode 100644 index f5359dca..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Darwin.pm +++ /dev/null @@ -1,48 +0,0 @@ -package ExtUtils::MM_Darwin; - -use strict; - -BEGIN { - require ExtUtils::MM_Unix; - our @ISA = qw( ExtUtils::MM_Unix ); -} - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - - -=head1 NAME - -ExtUtils::MM_Darwin - special behaviors for OS X - -=head1 SYNOPSIS - - For internal MakeMaker use only - -=head1 DESCRIPTION - -See L<ExtUtils::MM_Unix> for L<ExtUtils::MM_Any> for documentation on the -methods overridden here. - -=head2 Overridden Methods - -=head3 init_dist - -Turn off Apple tar's tendency to copy resource forks as "._foo" files. - -=cut - -sub init_dist { - my $self = shift; - - # Thank you, Apple, for breaking tar and then breaking the work around. - # 10.4 wants COPY_EXTENDED_ATTRIBUTES_DISABLE while 10.5 wants - # COPYFILE_DISABLE. I'm not going to push my luck and instead just - # set both. - $self->{TAR} ||= - 'COPY_EXTENDED_ATTRIBUTES_DISABLE=1 COPYFILE_DISABLE=1 tar'; - - $self->SUPER::init_dist(@_); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_MacOS.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_MacOS.pm deleted file mode 100644 index 5646ae33..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_MacOS.pm +++ /dev/null @@ -1,34 +0,0 @@ -package ExtUtils::MM_MacOS; - -use strict; - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -sub new { - die 'MacOS Classic (MacPerl) is no longer supported by MakeMaker'; -} - -=head1 NAME - -ExtUtils::MM_MacOS - once produced Makefiles for MacOS Classic - -=head1 SYNOPSIS - - # MM_MacOS no longer contains any code. This is just a stub. - -=head1 DESCRIPTION - -Once upon a time, MakeMaker could produce an approximation of a correct -Makefile on MacOS Classic (MacPerl). Due to a lack of maintainers, this -fell out of sync with the rest of MakeMaker and hadn't worked in years. -Since there's little chance of it being repaired, MacOS Classic is fading -away, and the code was icky to begin with, the code has been deleted to -make maintenance easier. - -Anyone interested in resurrecting this file should pull the old version -from the MakeMaker CVS repository and contact makemaker@perl.org. - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_NW5.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_NW5.pm deleted file mode 100644 index c88c4fab..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_NW5.pm +++ /dev/null @@ -1,208 +0,0 @@ -package ExtUtils::MM_NW5; - -=head1 NAME - -ExtUtils::MM_NW5 - methods to override UN*X behaviour in ExtUtils::MakeMaker - -=head1 SYNOPSIS - - use ExtUtils::MM_NW5; # Done internally by ExtUtils::MakeMaker if needed - -=head1 DESCRIPTION - -See ExtUtils::MM_Unix for a documentation of the methods provided -there. This package overrides the implementation of these methods, not -the semantics. - -=over - -=cut - -use strict; -use ExtUtils::MakeMaker::Config; -use File::Basename; - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -require ExtUtils::MM_Win32; -our @ISA = qw(ExtUtils::MM_Win32); - -use ExtUtils::MakeMaker qw(&neatvalue &_sprintf562); - -$ENV{EMXSHELL} = 'sh'; # to run `commands` - -my $BORLAND = $Config{'cc'} =~ /\bbcc/i; -my $GCC = $Config{'cc'} =~ /\bgcc/i; - - -=item os_flavor - -We're Netware in addition to being Windows. - -=cut - -sub os_flavor { - my $self = shift; - return ($self->SUPER::os_flavor, 'Netware'); -} - -=item init_platform - -Add Netware macros. - -LIBPTH, BASE_IMPORT, NLM_VERSION, MPKTOOL, TOOLPATH, BOOT_SYMBOL, -NLM_SHORT_NAME, INCLUDE, PATH, MM_NW5_REVISION - - -=item platform_constants - -Add Netware macros initialized above to the Makefile. - -=cut - -sub init_platform { - my($self) = shift; - - # To get Win32's setup. - $self->SUPER::init_platform; - - # incpath is copied to makefile var INCLUDE in constants sub, here just - # make it empty - my $libpth = $Config{'libpth'}; - $libpth =~ s( )(;); - $self->{'LIBPTH'} = $libpth; - - $self->{'BASE_IMPORT'} = $Config{'base_import'}; - - # Additional import file specified from Makefile.pl - if($self->{'base_import'}) { - $self->{'BASE_IMPORT'} .= ', ' . $self->{'base_import'}; - } - - $self->{'NLM_VERSION'} = $Config{'nlm_version'}; - $self->{'MPKTOOL'} = $Config{'mpktool'}; - $self->{'TOOLPATH'} = $Config{'toolpath'}; - - (my $boot = $self->{'NAME'}) =~ s/:/_/g; - $self->{'BOOT_SYMBOL'}=$boot; - - # If the final binary name is greater than 8 chars, - # truncate it here. - if(length($self->{'BASEEXT'}) > 8) { - $self->{'NLM_SHORT_NAME'} = substr($self->{'BASEEXT'},0,8); - } - - # Get the include path and replace the spaces with ; - # Copy this to makefile as INCLUDE = d:\...;d:\; - ($self->{INCLUDE} = $Config{'incpath'}) =~ s/([ ]*)-I/;/g; - - # Set the path to CodeWarrior binaries which might not have been set in - # any other place - $self->{PATH} = '$(PATH);$(TOOLPATH)'; - - $self->{MM_NW5_VERSION} = $VERSION; -} - -sub platform_constants { - my($self) = shift; - my $make_frag = ''; - - # Setup Win32's constants. - $make_frag .= $self->SUPER::platform_constants; - - foreach my $macro (qw(LIBPTH BASE_IMPORT NLM_VERSION MPKTOOL - TOOLPATH BOOT_SYMBOL NLM_SHORT_NAME INCLUDE PATH - MM_NW5_VERSION - )) - { - next unless defined $self->{$macro}; - $make_frag .= "$macro = $self->{$macro}\n"; - } - - return $make_frag; -} - -=item static_lib_pure_cmd - -Defines how to run the archive utility - -=cut - -sub static_lib_pure_cmd { - my ($self, $src) = @_; - $src =~ s/(\$\(\w+)(\))/$1:^"+"$2/g if $BORLAND; - sprintf qq{\t\$(AR) %s\n}, ($BORLAND ? '$@ ' . $src - : ($GCC ? '-ru $@ ' . $src - : '-type library -o $@ ' . $src)); -} - -=item xs_static_lib_is_xs - -=cut - -sub xs_static_lib_is_xs { - return 1; -} - -=item dynamic_lib - -Override of utility methods for OS-specific work. - -=cut - -sub xs_make_dynamic_lib { - my ($self, $attribs, $from, $to, $todir, $ldfrom, $exportlist) = @_; - my @m; - # Taking care of long names like FileHandle, ByteLoader, SDBM_File etc - if ($to =~ /^\$/) { - if ($self->{NLM_SHORT_NAME}) { - # deal with shortnames - my $newto = q{$(INST_AUTODIR)\\$(NLM_SHORT_NAME).$(DLEXT)}; - push @m, "$to: $newto\n\n"; - $to = $newto; - } - } else { - my ($v, $d, $f) = File::Spec->splitpath($to); - # relies on $f having a literal "." in it, unlike for $(OBJ_EXT) - if ($f =~ /[^\.]{9}\./) { - # 9+ chars before '.', need to shorten - $f = substr $f, 0, 8; - } - my $newto = File::Spec->catpath($v, $d, $f); - push @m, "$to: $newto\n\n"; - $to = $newto; - } - # bits below should be in dlsyms, not here - # 1 2 3 4 - push @m, _sprintf562 <<'MAKE_FRAG', $to, $from, $todir, $exportlist; -# Create xdc data for an MT safe NLM in case of mpk build -%1$s: %2$s $(MYEXTLIB) $(BOOTSTRAP) %3$s$(DFSEP).exists - $(NOECHO) $(ECHO) Export boot_$(BOOT_SYMBOL) > %4$s - $(NOECHO) $(ECHO) $(BASE_IMPORT) >> %4$s - $(NOECHO) $(ECHO) Import @$(PERL_INC)\perl.imp >> %4$s -MAKE_FRAG - if ( $self->{CCFLAGS} =~ m/ -DMPK_ON /) { - (my $xdc = $exportlist) =~ s#def\z#xdc#; - $xdc = '$(BASEEXT).xdc'; - push @m, sprintf <<'MAKE_FRAG', $xdc, $exportlist; - $(MPKTOOL) $(XDCFLAGS) %s - $(NOECHO) $(ECHO) xdcdata $(BASEEXT).xdc >> %s -MAKE_FRAG - } - # Reconstruct the X.Y.Z version. - my $version = join '.', map { sprintf "%d", $_ } - $] =~ /(\d)\.(\d{3})(\d{2})/; - push @m, sprintf <<'EOF', $from, $version, $to, $exportlist; - $(LD) $(LDFLAGS) %s -desc "Perl %s Extension ($(BASEEXT)) XS_VERSION: $(XS_VERSION)" -nlmversion $(NLM_VERSION) -o %s $(MYEXTLIB) $(PERL_INC)\Main.lib -commandfile %s - $(CHMOD) 755 $@ -EOF - join '', @m; -} - -1; -__END__ - -=back - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_OS2.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_OS2.pm deleted file mode 100644 index dfa6dca4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_OS2.pm +++ /dev/null @@ -1,146 +0,0 @@ -package ExtUtils::MM_OS2; - -use strict; - -use ExtUtils::MakeMaker qw(neatvalue); -use File::Spec; - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -require ExtUtils::MM_Any; -require ExtUtils::MM_Unix; -our @ISA = qw(ExtUtils::MM_Any ExtUtils::MM_Unix); - -=pod - -=head1 NAME - -ExtUtils::MM_OS2 - methods to override UN*X behaviour in ExtUtils::MakeMaker - -=head1 SYNOPSIS - - use ExtUtils::MM_OS2; # Done internally by ExtUtils::MakeMaker if needed - -=head1 DESCRIPTION - -See ExtUtils::MM_Unix for a documentation of the methods provided -there. This package overrides the implementation of these methods, not -the semantics. - -=head1 METHODS - -=over 4 - -=item init_dist - -Define TO_UNIX to convert OS2 linefeeds to Unix style. - -=cut - -sub init_dist { - my($self) = @_; - - $self->{TO_UNIX} ||= <<'MAKE_TEXT'; -$(NOECHO) $(TEST_F) tmp.zip && $(RM_F) tmp.zip; $(ZIP) -ll -mr tmp.zip $(DISTVNAME) && unzip -o tmp.zip && $(RM_F) tmp.zip -MAKE_TEXT - - $self->SUPER::init_dist; -} - -sub dlsyms { - my($self,%attribs) = @_; - if ($self->{IMPORTS} && %{$self->{IMPORTS}}) { - # Make import files (needed for static build) - -d 'tmp_imp' or mkdir 'tmp_imp', 0777 or die "Can't mkdir tmp_imp"; - open my $imp, '>', 'tmpimp.imp' or die "Can't open tmpimp.imp"; - foreach my $name (sort keys %{$self->{IMPORTS}}) { - my $exp = $self->{IMPORTS}->{$name}; - my ($lib, $id) = ($exp =~ /(.*)\.(.*)/) or die "Malformed IMPORT `$exp'"; - print $imp "$name $lib $id ?\n"; - } - close $imp or die "Can't close tmpimp.imp"; - # print "emximp -o tmpimp$Config::Config{lib_ext} tmpimp.imp\n"; - system "emximp -o tmpimp$Config::Config{lib_ext} tmpimp.imp" - and die "Cannot make import library: $!, \$?=$?"; - # May be running under miniperl, so have no glob... - eval { unlink <tmp_imp/*>; 1 } or system "rm tmp_imp/*"; - system "cd tmp_imp; $Config::Config{ar} x ../tmpimp$Config::Config{lib_ext}" - and die "Cannot extract import objects: $!, \$?=$?"; - } - return '' if $self->{SKIPHASH}{'dynamic'}; - $self->xs_dlsyms_iterator(\%attribs); -} - -sub xs_dlsyms_ext { - '.def'; -} - -sub xs_dlsyms_extra { - join '', map { qq{, "$_" => "\$($_)"} } qw(VERSION DISTNAME INSTALLDIRS); -} - -sub static_lib_pure_cmd { - my($self) = @_; - my $old = $self->SUPER::static_lib_pure_cmd; - return $old unless $self->{IMPORTS} && %{$self->{IMPORTS}}; - $old . <<'EOC'; - $(AR) $(AR_STATIC_ARGS) "$@" tmp_imp/* - $(RANLIB) "$@" -EOC -} - -sub replace_manpage_separator { - my($self,$man) = @_; - $man =~ s,/+,.,g; - $man; -} - -sub maybe_command { - my($self,$file) = @_; - $file =~ s,[/\\]+,/,g; - return $file if -x $file && ! -d _; - return "$file.exe" if -x "$file.exe" && ! -d _; - return "$file.cmd" if -x "$file.cmd" && ! -d _; - return; -} - -=item init_linker - -=cut - -sub init_linker { - my $self = shift; - - $self->{PERL_ARCHIVE} = "\$(PERL_INC)/libperl\$(LIB_EXT)"; - - $self->{PERL_ARCHIVEDEP} ||= ''; - $self->{PERL_ARCHIVE_AFTER} = $OS2::is_aout - ? '' - : '$(PERL_INC)/libperl_override$(LIB_EXT)'; - $self->{EXPORT_LIST} = '$(BASEEXT).def'; -} - -=item os_flavor - -OS/2 is OS/2 - -=cut - -sub os_flavor { - return('OS/2'); -} - -=item xs_static_lib_is_xs - -=cut - -sub xs_static_lib_is_xs { - return 1; -} - -=back - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_QNX.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_QNX.pm deleted file mode 100644 index 362d7d92..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_QNX.pm +++ /dev/null @@ -1,58 +0,0 @@ -package ExtUtils::MM_QNX; - -use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -require ExtUtils::MM_Unix; -our @ISA = qw(ExtUtils::MM_Unix); - - -=head1 NAME - -ExtUtils::MM_QNX - QNX specific subclass of ExtUtils::MM_Unix - -=head1 SYNOPSIS - - Don't use this module directly. - Use ExtUtils::MM and let it choose. - -=head1 DESCRIPTION - -This is a subclass of ExtUtils::MM_Unix which contains functionality for -QNX. - -Unless otherwise stated it works just like ExtUtils::MM_Unix - -=head2 Overridden methods - -=head3 extra_clean_files - -Add .err files corresponding to each .c file. - -=cut - -sub extra_clean_files { - my $self = shift; - - my @errfiles = @{$self->{C}}; - for ( @errfiles ) { - s/.c$/.err/; - } - - return( @errfiles, 'perlmain.err' ); -} - - -=head1 AUTHOR - -Michael G Schwern <schwern@pobox.com> with code from ExtUtils::MM_Unix - -=head1 SEE ALSO - -L<ExtUtils::MakeMaker> - -=cut - - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_UWIN.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_UWIN.pm deleted file mode 100644 index cc95c415..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_UWIN.pm +++ /dev/null @@ -1,65 +0,0 @@ -package ExtUtils::MM_UWIN; - -use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -require ExtUtils::MM_Unix; -our @ISA = qw(ExtUtils::MM_Unix); - - -=head1 NAME - -ExtUtils::MM_UWIN - U/WIN specific subclass of ExtUtils::MM_Unix - -=head1 SYNOPSIS - - Don't use this module directly. - Use ExtUtils::MM and let it choose. - -=head1 DESCRIPTION - -This is a subclass of ExtUtils::MM_Unix which contains functionality for -the AT&T U/WIN UNIX on Windows environment. - -Unless otherwise stated it works just like ExtUtils::MM_Unix - -=head2 Overridden methods - -=over 4 - -=item os_flavor - -In addition to being Unix, we're U/WIN. - -=cut - -sub os_flavor { - return('Unix', 'U/WIN'); -} - - -=item B<replace_manpage_separator> - -=cut - -sub replace_manpage_separator { - my($self, $man) = @_; - - $man =~ s,/+,.,g; - return $man; -} - -=back - -=head1 AUTHOR - -Michael G Schwern <schwern@pobox.com> with code from ExtUtils::MM_Unix - -=head1 SEE ALSO - -L<ExtUtils::MM_Win32>, L<ExtUtils::MakeMaker> - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Unix.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Unix.pm deleted file mode 100644 index fe53be12..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Unix.pm +++ /dev/null @@ -1,4020 +0,0 @@ -package ExtUtils::MM_Unix; - -require 5.006; - -use strict; - -use Carp; -use ExtUtils::MakeMaker::Config; -use File::Basename qw(basename dirname); - -our %Config_Override; - -use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562); - -# If we make $VERSION an our variable parse_version() breaks -use vars qw($VERSION); -$VERSION = '7.34'; -$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] - -require ExtUtils::MM_Any; -our @ISA = qw(ExtUtils::MM_Any); - -my %Is; -BEGIN { - $Is{OS2} = $^O eq 'os2'; - $Is{Win32} = $^O eq 'MSWin32' || $Config{osname} eq 'NetWare'; - $Is{Dos} = $^O eq 'dos'; - $Is{VMS} = $^O eq 'VMS'; - $Is{OSF} = $^O eq 'dec_osf'; - $Is{IRIX} = $^O eq 'irix'; - $Is{NetBSD} = $^O eq 'netbsd'; - $Is{Interix} = $^O eq 'interix'; - $Is{SunOS4} = $^O eq 'sunos'; - $Is{Solaris} = $^O eq 'solaris'; - $Is{SunOS} = $Is{SunOS4} || $Is{Solaris}; - $Is{BSD} = ($^O =~ /^(?:free|net|open)bsd$/ or - grep( $^O eq $_, qw(bsdos interix dragonfly) ) - ); - $Is{Android} = $^O =~ /android/; -} - -BEGIN { - if( $Is{VMS} ) { - # For things like vmsify() - require VMS::Filespec; - VMS::Filespec->import; - } -} - - -=head1 NAME - -ExtUtils::MM_Unix - methods used by ExtUtils::MakeMaker - -=head1 SYNOPSIS - -C<require ExtUtils::MM_Unix;> - -=head1 DESCRIPTION - -The methods provided by this package are designed to be used in -conjunction with ExtUtils::MakeMaker. When MakeMaker writes a -Makefile, it creates one or more objects that inherit their methods -from a package C<MM>. MM itself doesn't provide any methods, but it -ISA ExtUtils::MM_Unix class. The inheritance tree of MM lets operating -specific packages take the responsibility for all the methods provided -by MM_Unix. We are trying to reduce the number of the necessary -overrides by defining rather primitive operations within -ExtUtils::MM_Unix. - -If you are going to write a platform specific MM package, please try -to limit the necessary overrides to primitive methods, and if it is not -possible to do so, let's work out how to achieve that gain. - -If you are overriding any of these methods in your Makefile.PL (in the -MY class), please report that to the makemaker mailing list. We are -trying to minimize the necessary method overrides and switch to data -driven Makefile.PLs wherever possible. In the long run less methods -will be overridable via the MY class. - -=head1 METHODS - -The following description of methods is still under -development. Please refer to the code for not suitably documented -sections and complain loudly to the makemaker@perl.org mailing list. -Better yet, provide a patch. - -Not all of the methods below are overridable in a -Makefile.PL. Overridable methods are marked as (o). All methods are -overridable by a platform specific MM_*.pm file. - -Cross-platform methods are being moved into MM_Any. If you can't find -something that used to be in here, look in MM_Any. - -=cut - -# So we don't have to keep calling the methods over and over again, -# we have these globals to cache the values. Faster and shrtr. -my $Curdir = __PACKAGE__->curdir; -my $Updir = __PACKAGE__->updir; - - -=head2 Methods - -=over 4 - -=item os_flavor - -Simply says that we're Unix. - -=cut - -sub os_flavor { - return('Unix'); -} - - -=item c_o (o) - -Defines the suffix rules to compile different flavors of C files to -object files. - -=cut - -sub c_o { -# --- Translation Sections --- - - my($self) = shift; - return '' unless $self->needs_linking(); - my(@m); - - my $command = '$(CCCMD)'; - my $flags = '$(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE)'; - - if (my $cpp = $Config{cpprun}) { - my $cpp_cmd = $self->const_cccmd; - $cpp_cmd =~ s/^CCCMD\s*=\s*\$\(CC\)/$cpp/; - push @m, qq{ -.c.i: - $cpp_cmd $flags \$*.c > \$*.i -}; - } - - my $m_o = $self->{XSMULTI} ? $self->xs_obj_opt('$*.s') : ''; - push @m, sprintf <<'EOF', $command, $flags, $m_o; - -.c.s : - %s -S %s $*.c %s -EOF - - my @exts = qw(c cpp cxx cc); - push @exts, 'C' if !$Is{OS2} and !$Is{Win32} and !$Is{Dos}; #Case-specific - $m_o = $self->{XSMULTI} ? $self->xs_obj_opt('$*$(OBJ_EXT)') : ''; - for my $ext (@exts) { - push @m, "\n.$ext\$(OBJ_EXT) :\n\t$command $flags \$*.$ext" . ( $m_o ? " $m_o" : '' ) . "\n"; - } - return join "", @m; -} - - -=item xs_obj_opt - -Takes the object file as an argument, and returns the portion of compile -command-line that will output to the specified object file. - -=cut - -sub xs_obj_opt { - my ($self, $output_file) = @_; - "-o $output_file"; -} - - -=item cflags (o) - -Does very much the same as the cflags script in the perl -distribution. It doesn't return the whole compiler command line, but -initializes all of its parts. The const_cccmd method then actually -returns the definition of the CCCMD macro which uses these parts. - -=cut - -#' - -sub cflags { - my($self,$libperl)=@_; - return $self->{CFLAGS} if $self->{CFLAGS}; - return '' unless $self->needs_linking(); - - my($prog, $uc, $perltype, %cflags); - $libperl ||= $self->{LIBPERL_A} || "libperl$self->{LIB_EXT}" ; - $libperl =~ s/\.\$\(A\)$/$self->{LIB_EXT}/; - - @cflags{qw(cc ccflags optimize shellflags)} - = @Config{qw(cc ccflags optimize shellflags)}; - - # Perl 5.21.4 adds the (gcc) warning (-Wall ...) and std (-std=c89) - # flags to the %Config, and the modules in the core should be built - # with the warning flags, but NOT the -std=c89 flags (the latter - # would break using any system header files that are strict C99). - my @ccextraflags = qw(ccwarnflags); - if ($ENV{PERL_CORE}) { - for my $x (@ccextraflags) { - if (exists $Config{$x}) { - $cflags{$x} = $Config{$x}; - } - } - } - - my($optdebug) = ""; - - $cflags{shellflags} ||= ''; - - my(%map) = ( - D => '-DDEBUGGING', - E => '-DEMBED', - DE => '-DDEBUGGING -DEMBED', - M => '-DEMBED -DMULTIPLICITY', - DM => '-DDEBUGGING -DEMBED -DMULTIPLICITY', - ); - - if ($libperl =~ /libperl(\w*)\Q$self->{LIB_EXT}/){ - $uc = uc($1); - } else { - $uc = ""; # avoid warning - } - $perltype = $map{$uc} ? $map{$uc} : ""; - - if ($uc =~ /^D/) { - $optdebug = "-g"; - } - - - my($name); - ( $name = $self->{NAME} . "_cflags" ) =~ s/:/_/g ; - if ($prog = $Config{$name}) { - # Expand hints for this extension via the shell - print "Processing $name hint:\n" if $Verbose; - my(@o)=`cc=\"$cflags{cc}\" - ccflags=\"$cflags{ccflags}\" - optimize=\"$cflags{optimize}\" - perltype=\"$cflags{perltype}\" - optdebug=\"$cflags{optdebug}\" - eval '$prog' - echo cc=\$cc - echo ccflags=\$ccflags - echo optimize=\$optimize - echo perltype=\$perltype - echo optdebug=\$optdebug - `; - foreach my $line (@o){ - chomp $line; - if ($line =~ /(.*?)=\s*(.*)\s*$/){ - $cflags{$1} = $2; - print " $1 = $2\n" if $Verbose; - } else { - print "Unrecognised result from hint: '$line'\n"; - } - } - } - - if ($optdebug) { - $cflags{optimize} = $optdebug; - } - - for (qw(ccflags optimize perltype)) { - $cflags{$_} ||= ''; - $cflags{$_} =~ s/^\s+//; - $cflags{$_} =~ s/\s+/ /g; - $cflags{$_} =~ s/\s+$//; - $self->{uc $_} ||= $cflags{$_}; - } - - if ($self->{POLLUTE}) { - $self->{CCFLAGS} .= ' -DPERL_POLLUTE '; - } - - for my $x (@ccextraflags) { - next unless exists $cflags{$x}; - $self->{CCFLAGS} .= $cflags{$x} =~ m!^\s! ? $cflags{$x} : ' ' . $cflags{$x}; - } - - my $pollute = ''; - if ($Config{usemymalloc} and not $Config{bincompat5005} - and not $Config{ccflags} =~ /-DPERL_POLLUTE_MALLOC\b/ - and $self->{PERL_MALLOC_OK}) { - $pollute = '$(PERL_MALLOC_DEF)'; - } - - return $self->{CFLAGS} = qq{ -CCFLAGS = $self->{CCFLAGS} -OPTIMIZE = $self->{OPTIMIZE} -PERLTYPE = $self->{PERLTYPE} -MPOLLUTE = $pollute -}; - -} - - -=item const_cccmd (o) - -Returns the full compiler call for C programs and stores the -definition in CONST_CCCMD. - -=cut - -sub const_cccmd { - my($self,$libperl)=@_; - return $self->{CONST_CCCMD} if $self->{CONST_CCCMD}; - return '' unless $self->needs_linking(); - return $self->{CONST_CCCMD} = - q{CCCMD = $(CC) -c $(PASTHRU_INC) $(INC) \\ - $(CCFLAGS) $(OPTIMIZE) \\ - $(PERLTYPE) $(MPOLLUTE) $(DEFINE_VERSION) \\ - $(XS_DEFINE_VERSION)}; -} - -=item const_config (o) - -Sets SHELL if needed, then defines a couple of constants in the Makefile -that are imported from %Config. - -=cut - -sub const_config { -# --- Constants Sections --- - - my($self) = shift; - my @m = $self->specify_shell(); # Usually returns empty string - push @m, <<"END"; - -# These definitions are from config.sh (via $INC{'Config.pm'}). -# They may have been overridden via Makefile.PL or on the command line. -END - - my(%once_only); - foreach my $key (@{$self->{CONFIG}}){ - # SITE*EXP macros are defined in &constants; avoid duplicates here - next if $once_only{$key}; - push @m, uc($key) , ' = ' , $self->{uc $key}, "\n"; - $once_only{$key} = 1; - } - join('', @m); -} - -=item const_loadlibs (o) - -Defines EXTRALIBS, LDLOADLIBS, BSLOADLIBS, LD_RUN_PATH. See -L<ExtUtils::Liblist> for details. - -=cut - -sub const_loadlibs { - my($self) = shift; - return "" unless $self->needs_linking; - my @m; - push @m, qq{ -# $self->{NAME} might depend on some other libraries: -# See ExtUtils::Liblist for details -# -}; - for my $tmp (qw/ - EXTRALIBS LDLOADLIBS BSLOADLIBS - /) { - next unless defined $self->{$tmp}; - push @m, "$tmp = $self->{$tmp}\n"; - } - # don't set LD_RUN_PATH if empty - for my $tmp (qw/ - LD_RUN_PATH - /) { - next unless $self->{$tmp}; - push @m, "$tmp = $self->{$tmp}\n"; - } - return join "", @m; -} - -=item constants (o) - - my $make_frag = $mm->constants; - -Prints out macros for lots of constants. - -=cut - -sub constants { - my($self) = @_; - my @m = (); - - $self->{DFSEP} = '$(DIRFILESEP)'; # alias for internal use - - for my $macro (qw( - - AR_STATIC_ARGS DIRFILESEP DFSEP - NAME NAME_SYM - VERSION VERSION_MACRO VERSION_SYM DEFINE_VERSION - XS_VERSION XS_VERSION_MACRO XS_DEFINE_VERSION - INST_ARCHLIB INST_SCRIPT INST_BIN INST_LIB - INST_MAN1DIR INST_MAN3DIR - MAN1EXT MAN3EXT - INSTALLDIRS INSTALL_BASE DESTDIR PREFIX - PERLPREFIX SITEPREFIX VENDORPREFIX - ), - (map { ("INSTALL".$_, - "DESTINSTALL".$_) - } $self->installvars), - qw( - PERL_LIB - PERL_ARCHLIB PERL_ARCHLIBDEP - LIBPERL_A MYEXTLIB - FIRST_MAKEFILE MAKEFILE_OLD MAKE_APERL_FILE - PERLMAINCC PERL_SRC PERL_INC PERL_INCDEP - PERL FULLPERL ABSPERL - PERLRUN FULLPERLRUN ABSPERLRUN - PERLRUNINST FULLPERLRUNINST ABSPERLRUNINST - PERL_CORE - PERM_DIR PERM_RW PERM_RWX - - ) ) - { - next unless defined $self->{$macro}; - - # pathnames can have sharp signs in them; escape them so - # make doesn't think it is a comment-start character. - $self->{$macro} =~ s/#/\\#/g; - $self->{$macro} = $self->quote_dep($self->{$macro}) - if $ExtUtils::MakeMaker::macro_dep{$macro}; - push @m, "$macro = $self->{$macro}\n"; - } - - push @m, qq{ -MAKEMAKER = $self->{MAKEMAKER} -MM_VERSION = $self->{MM_VERSION} -MM_REVISION = $self->{MM_REVISION} -}; - - push @m, q{ -# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). -# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) -# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) -# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. -}; - - for my $macro (qw/ - MAKE - FULLEXT BASEEXT PARENT_NAME DLBASE VERSION_FROM INC DEFINE OBJECT - LDFROM LINKTYPE BOOTDEP - / ) - { - next unless defined $self->{$macro}; - push @m, "$macro = $self->{$macro}\n"; - } - - push @m, " -# Handy lists of source code files: -XS_FILES = ".$self->wraplist(sort keys %{$self->{XS}})." -C_FILES = ".$self->wraplist(sort @{$self->{C}})." -O_FILES = ".$self->wraplist(sort @{$self->{O_FILES}})." -H_FILES = ".$self->wraplist(sort @{$self->{H}})." -MAN1PODS = ".$self->wraplist(sort keys %{$self->{MAN1PODS}})." -MAN3PODS = ".$self->wraplist(sort keys %{$self->{MAN3PODS}})." -"; - - - push @m, q{ -# Where is the Config information that we are using/depend on -CONFIGDEP = $(PERL_ARCHLIBDEP)$(DFSEP)Config.pm $(PERL_INCDEP)$(DFSEP)config.h -} if -e $self->catfile( $self->{PERL_INC}, 'config.h' ); - - - push @m, qq{ -# Where to build things -INST_LIBDIR = $self->{INST_LIBDIR} -INST_ARCHLIBDIR = $self->{INST_ARCHLIBDIR} - -INST_AUTODIR = $self->{INST_AUTODIR} -INST_ARCHAUTODIR = $self->{INST_ARCHAUTODIR} - -INST_STATIC = $self->{INST_STATIC} -INST_DYNAMIC = $self->{INST_DYNAMIC} -INST_BOOT = $self->{INST_BOOT} -}; - - push @m, qq{ -# Extra linker info -EXPORT_LIST = $self->{EXPORT_LIST} -PERL_ARCHIVE = $self->{PERL_ARCHIVE} -PERL_ARCHIVEDEP = $self->{PERL_ARCHIVEDEP} -PERL_ARCHIVE_AFTER = $self->{PERL_ARCHIVE_AFTER} -}; - - push @m, " - -TO_INST_PM = ".$self->wraplist(map $self->quote_dep($_), sort keys %{$self->{PM}})."\n"; - - join('',@m); -} - - -=item depend (o) - -Same as macro for the depend attribute. - -=cut - -sub depend { - my($self,%attribs) = @_; - my(@m,$key,$val); - for my $key (sort keys %attribs){ - my $val = $attribs{$key}; - next unless defined $key and defined $val; - push @m, "$key : $val\n"; - } - join "", @m; -} - - -=item init_DEST - - $mm->init_DEST - -Defines the DESTDIR and DEST* variables paralleling the INSTALL*. - -=cut - -sub init_DEST { - my $self = shift; - - # Initialize DESTDIR - $self->{DESTDIR} ||= ''; - - # Make DEST variables. - foreach my $var ($self->installvars) { - my $destvar = 'DESTINSTALL'.$var; - $self->{$destvar} ||= '$(DESTDIR)$(INSTALL'.$var.')'; - } -} - - -=item init_dist - - $mm->init_dist; - -Defines a lot of macros for distribution support. - - macro description default - - TAR tar command to use tar - TARFLAGS flags to pass to TAR cvf - - ZIP zip command to use zip - ZIPFLAGS flags to pass to ZIP -r - - COMPRESS compression command to gzip --best - use for tarfiles - SUFFIX suffix to put on .gz - compressed files - - SHAR shar command to use shar - - PREOP extra commands to run before - making the archive - POSTOP extra commands to run after - making the archive - - TO_UNIX a command to convert linefeeds - to Unix style in your archive - - CI command to checkin your ci -u - sources to version control - RCS_LABEL command to label your sources rcs -Nv$(VERSION_SYM): -q - just after CI is run - - DIST_CP $how argument to manicopy() best - when the distdir is created - - DIST_DEFAULT default target to use to tardist - create a distribution - - DISTVNAME name of the resulting archive $(DISTNAME)-$(VERSION) - (minus suffixes) - -=cut - -sub init_dist { - my $self = shift; - - $self->{TAR} ||= 'tar'; - $self->{TARFLAGS} ||= 'cvf'; - $self->{ZIP} ||= 'zip'; - $self->{ZIPFLAGS} ||= '-r'; - $self->{COMPRESS} ||= 'gzip --best'; - $self->{SUFFIX} ||= '.gz'; - $self->{SHAR} ||= 'shar'; - $self->{PREOP} ||= '$(NOECHO) $(NOOP)'; # eg update MANIFEST - $self->{POSTOP} ||= '$(NOECHO) $(NOOP)'; # eg remove the distdir - $self->{TO_UNIX} ||= '$(NOECHO) $(NOOP)'; - - $self->{CI} ||= 'ci -u'; - $self->{RCS_LABEL}||= 'rcs -Nv$(VERSION_SYM): -q'; - $self->{DIST_CP} ||= 'best'; - $self->{DIST_DEFAULT} ||= 'tardist'; - - ($self->{DISTNAME} = $self->{NAME}) =~ s{::}{-}g unless $self->{DISTNAME}; - $self->{DISTVNAME} ||= $self->{DISTNAME}.'-'.$self->{VERSION}; -} - -=item dist (o) - - my $dist_macros = $mm->dist(%overrides); - -Generates a make fragment defining all the macros initialized in -init_dist. - -%overrides can be used to override any of the above. - -=cut - -sub dist { - my($self, %attribs) = @_; - - my $make = ''; - if ( $attribs{SUFFIX} && $attribs{SUFFIX} !~ m!^\.! ) { - $attribs{SUFFIX} = '.' . $attribs{SUFFIX}; - } - foreach my $key (qw( - TAR TARFLAGS ZIP ZIPFLAGS COMPRESS SUFFIX SHAR - PREOP POSTOP TO_UNIX - CI RCS_LABEL DIST_CP DIST_DEFAULT - DISTNAME DISTVNAME - )) - { - my $value = $attribs{$key} || $self->{$key}; - $make .= "$key = $value\n"; - } - - return $make; -} - -=item dist_basics (o) - -Defines the targets distclean, distcheck, skipcheck, manifest, veryclean. - -=cut - -sub dist_basics { - my($self) = shift; - - return <<'MAKE_FRAG'; -distclean :: realclean distcheck - $(NOECHO) $(NOOP) - -distcheck : - $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck - -skipcheck : - $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck - -manifest : - $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest - -veryclean : realclean - $(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old - -MAKE_FRAG - -} - -=item dist_ci (o) - -Defines a check in target for RCS. - -=cut - -sub dist_ci { - my($self) = shift; - return sprintf "ci :\n\t%s\n", $self->oneliner(<<'EOF', [qw(-MExtUtils::Manifest=maniread)]); -@all = sort keys %{ maniread() }; -print(qq{Executing $(CI) @all\n}); -system(qq{$(CI) @all}) == 0 or die $!; -print(qq{Executing $(RCS_LABEL) ...\n}); -system(qq{$(RCS_LABEL) @all}) == 0 or die $!; -EOF -} - -=item dist_core (o) - - my $dist_make_fragment = $MM->dist_core; - -Puts the targets necessary for 'make dist' together into one make -fragment. - -=cut - -sub dist_core { - my($self) = shift; - - my $make_frag = ''; - foreach my $target (qw(dist tardist uutardist tarfile zipdist zipfile - shdist)) - { - my $method = $target.'_target'; - $make_frag .= "\n"; - $make_frag .= $self->$method(); - } - - return $make_frag; -} - - -=item B<dist_target> - - my $make_frag = $MM->dist_target; - -Returns the 'dist' target to make an archive for distribution. This -target simply checks to make sure the Makefile is up-to-date and -depends on $(DIST_DEFAULT). - -=cut - -sub dist_target { - my($self) = shift; - - my $date_check = $self->oneliner(<<'CODE', ['-l']); -print 'Warning: Makefile possibly out of date with $(VERSION_FROM)' - if -e '$(VERSION_FROM)' and -M '$(VERSION_FROM)' < -M '$(FIRST_MAKEFILE)'; -CODE - - return sprintf <<'MAKE_FRAG', $date_check; -dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) - $(NOECHO) %s -MAKE_FRAG -} - -=item B<tardist_target> - - my $make_frag = $MM->tardist_target; - -Returns the 'tardist' target which is simply so 'make tardist' works. -The real work is done by the dynamically named tardistfile_target() -method, tardist should have that as a dependency. - -=cut - -sub tardist_target { - my($self) = shift; - - return <<'MAKE_FRAG'; -tardist : $(DISTVNAME).tar$(SUFFIX) - $(NOECHO) $(NOOP) -MAKE_FRAG -} - -=item B<zipdist_target> - - my $make_frag = $MM->zipdist_target; - -Returns the 'zipdist' target which is simply so 'make zipdist' works. -The real work is done by the dynamically named zipdistfile_target() -method, zipdist should have that as a dependency. - -=cut - -sub zipdist_target { - my($self) = shift; - - return <<'MAKE_FRAG'; -zipdist : $(DISTVNAME).zip - $(NOECHO) $(NOOP) -MAKE_FRAG -} - -=item B<tarfile_target> - - my $make_frag = $MM->tarfile_target; - -The name of this target is the name of the tarball generated by -tardist. This target does the actual work of turning the distdir into -a tarball. - -=cut - -sub tarfile_target { - my($self) = shift; - - return <<'MAKE_FRAG'; -$(DISTVNAME).tar$(SUFFIX) : distdir - $(PREOP) - $(TO_UNIX) - $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(COMPRESS) $(DISTVNAME).tar - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)' - $(POSTOP) -MAKE_FRAG -} - -=item zipfile_target - - my $make_frag = $MM->zipfile_target; - -The name of this target is the name of the zip file generated by -zipdist. This target does the actual work of turning the distdir into -a zip file. - -=cut - -sub zipfile_target { - my($self) = shift; - - return <<'MAKE_FRAG'; -$(DISTVNAME).zip : distdir - $(PREOP) - $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).zip' - $(POSTOP) -MAKE_FRAG -} - -=item uutardist_target - - my $make_frag = $MM->uutardist_target; - -Converts the tarfile into a uuencoded file - -=cut - -sub uutardist_target { - my($self) = shift; - - return <<'MAKE_FRAG'; -uutardist : $(DISTVNAME).tar$(SUFFIX) - uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).tar$(SUFFIX)_uu' -MAKE_FRAG -} - - -=item shdist_target - - my $make_frag = $MM->shdist_target; - -Converts the distdir into a shell archive. - -=cut - -sub shdist_target { - my($self) = shift; - - return <<'MAKE_FRAG'; -shdist : distdir - $(PREOP) - $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar - $(RM_RF) $(DISTVNAME) - $(NOECHO) $(ECHO) 'Created $(DISTVNAME).shar' - $(POSTOP) -MAKE_FRAG -} - - -=item dlsyms (o) - -Used by some OS' to define DL_FUNCS and DL_VARS and write the *.exp files. - -Normally just returns an empty string. - -=cut - -sub dlsyms { - return ''; -} - - -=item dynamic_bs (o) - -Defines targets for bootstrap files. - -=cut - -sub dynamic_bs { - my($self, %attribs) = @_; - return "\nBOOTSTRAP =\n" unless $self->has_link_code(); - my @exts; - if ($self->{XSMULTI}) { - @exts = $self->_xs_list_basenames; - } else { - @exts = '$(BASEEXT)'; - } - return join "\n", - "BOOTSTRAP = @{[map { qq{$_.bs} } @exts]}\n", - map { $self->_xs_make_bs($_) } @exts; -} - -sub _xs_make_bs { - my ($self, $basename) = @_; - my ($v, $d, $f) = File::Spec->splitpath($basename); - my @d = File::Spec->splitdir($d); - shift @d if $self->{XSMULTI} and $d[0] eq 'lib'; - my $instdir = $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f); - $instdir = '$(INST_ARCHAUTODIR)' if $basename eq '$(BASEEXT)'; - my $instfile = $self->catfile($instdir, "$f.bs"); - my $exists = "$instdir\$(DFSEP).exists"; # match blibdirs_target - # 1 2 3 - return _sprintf562 <<'MAKE_FRAG', $basename, $instfile, $exists; -# As Mkbootstrap might not write a file (if none is required) -# we use touch to prevent make continually trying to remake it. -# The DynaLoader only reads a non-empty file. -%1$s.bs : $(FIRST_MAKEFILE) $(BOOTDEP) - $(NOECHO) $(ECHO) "Running Mkbootstrap for %1$s ($(BSLOADLIBS))" - $(NOECHO) $(PERLRUN) \ - "-MExtUtils::Mkbootstrap" \ - -e "Mkbootstrap('%1$s','$(BSLOADLIBS)');" - $(NOECHO) $(TOUCH) "%1$s.bs" - $(CHMOD) $(PERM_RW) "%1$s.bs" - -%2$s : %1$s.bs %3$s - $(NOECHO) $(RM_RF) %2$s - - $(CP_NONEMPTY) %1$s.bs %2$s $(PERM_RW) -MAKE_FRAG -} - -=item dynamic_lib (o) - -Defines how to produce the *.so (or equivalent) files. - -=cut - -sub dynamic_lib { - my($self, %attribs) = @_; - return '' unless $self->needs_linking(); #might be because of a subdir - return '' unless $self->has_link_code; - my @m = $self->xs_dynamic_lib_macros(\%attribs); - my @libs; - my $dlsyms_ext = eval { $self->xs_dlsyms_ext }; - if ($self->{XSMULTI}) { - my @exts = $self->_xs_list_basenames; - for my $ext (@exts) { - my ($v, $d, $f) = File::Spec->splitpath($ext); - my @d = File::Spec->splitdir($d); - shift @d if $d[0] eq 'lib'; - my $instdir = $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f); - - # Dynamic library names may need special handling. - eval { require DynaLoader }; - if (defined &DynaLoader::mod2fname) { - $f = &DynaLoader::mod2fname([@d, $f]); - } - - my $instfile = $self->catfile($instdir, "$f.\$(DLEXT)"); - my $objfile = $self->_xsbuild_value('xs', $ext, 'OBJECT'); - $objfile = "$ext\$(OBJ_EXT)" unless defined $objfile; - my $ldfrom = $self->_xsbuild_value('xs', $ext, 'LDFROM'); - $ldfrom = $objfile unless defined $ldfrom; - my $exportlist = "$ext.def"; - my @libchunk = ($objfile, $instfile, $instdir, $ldfrom, $exportlist); - push @libchunk, $dlsyms_ext ? $ext.$dlsyms_ext : undef; - push @libs, \@libchunk; - } - } else { - my @libchunk = qw($(OBJECT) $(INST_DYNAMIC) $(INST_ARCHAUTODIR) $(LDFROM) $(EXPORT_LIST)); - push @libchunk, $dlsyms_ext ? '$(BASEEXT)'.$dlsyms_ext : undef; - @libs = (\@libchunk); - } - push @m, map { $self->xs_make_dynamic_lib(\%attribs, @$_); } @libs; - - return join("\n",@m); -} - -=item xs_dynamic_lib_macros - -Defines the macros for the C<dynamic_lib> section. - -=cut - -sub xs_dynamic_lib_macros { - my ($self, $attribs) = @_; - my $otherldflags = $attribs->{OTHERLDFLAGS} || ""; - my $inst_dynamic_dep = $attribs->{INST_DYNAMIC_DEP} || ""; - my $armaybe = $self->_xs_armaybe($attribs); - my $ld_opt = $Is{OS2} ? '$(OPTIMIZE) ' : ''; # Useful on other systems too? - my $ld_fix = $Is{OS2} ? '|| ( $(RM_F) $@ && sh -c false )' : ''; - sprintf <<'EOF', $armaybe, $ld_opt.$otherldflags, $inst_dynamic_dep, $ld_fix; -# This section creates the dynamically loadable objects from relevant -# objects and possibly $(MYEXTLIB). -ARMAYBE = %s -OTHERLDFLAGS = %s -INST_DYNAMIC_DEP = %s -INST_DYNAMIC_FIX = %s -EOF -} - -sub _xs_armaybe { - my ($self, $attribs) = @_; - my $armaybe = $attribs->{ARMAYBE} || $self->{ARMAYBE} || ":"; - $armaybe = 'ar' if ($Is{OSF} and $armaybe eq ':'); - $armaybe; -} - -=item xs_make_dynamic_lib - -Defines the recipes for the C<dynamic_lib> section. - -=cut - -sub xs_make_dynamic_lib { - my ($self, $attribs, $object, $to, $todir, $ldfrom, $exportlist, $dlsyms) = @_; - $exportlist = '' if $exportlist ne '$(EXPORT_LIST)'; - my $armaybe = $self->_xs_armaybe($attribs); - my @m = sprintf '%s : %s $(MYEXTLIB) %s$(DFSEP).exists %s $(PERL_ARCHIVEDEP) $(PERL_ARCHIVE_AFTER) $(INST_DYNAMIC_DEP) %s'."\n", $to, $object, $todir, $exportlist, ($dlsyms || ''); - my $dlsyms_arg = $self->xs_dlsyms_arg($dlsyms); - if ($armaybe ne ':'){ - $ldfrom = 'tmp$(LIB_EXT)'; - push(@m," \$(ARMAYBE) cr $ldfrom $object\n"); - push(@m," \$(RANLIB) $ldfrom\n"); - } - $ldfrom = "-all $ldfrom -none" if $Is{OSF}; - - # The IRIX linker doesn't use LD_RUN_PATH - my $ldrun = $Is{IRIX} && $self->{LD_RUN_PATH} ? - qq{-rpath "$self->{LD_RUN_PATH}"} : ''; - - # For example in AIX the shared objects/libraries from previous builds - # linger quite a while in the shared dynalinker cache even when nobody - # is using them. This is painful if one for instance tries to restart - # a failed build because the link command will fail unnecessarily 'cos - # the shared object/library is 'busy'. - push(@m," \$(RM_F) \$\@\n"); - - my $libs = '$(LDLOADLIBS)'; - if (($Is{NetBSD} || $Is{Interix} || $Is{Android}) && $Config{'useshrplib'} eq 'true') { - # Use nothing on static perl platforms, and to the flags needed - # to link against the shared libperl library on shared perl - # platforms. We peek at lddlflags to see if we need -Wl,-R - # or -R to add paths to the run-time library search path. - if ($Config{'lddlflags'} =~ /-Wl,-R/) { - $libs .= ' "-L$(PERL_INC)" "-Wl,-R$(INSTALLARCHLIB)/CORE" "-Wl,-R$(PERL_ARCHLIB)/CORE" -lperl'; - } elsif ($Config{'lddlflags'} =~ /-R/) { - $libs .= ' "-L$(PERL_INC)" "-R$(INSTALLARCHLIB)/CORE" "-R$(PERL_ARCHLIB)/CORE" -lperl'; - } elsif ( $Is{Android} ) { - # The Android linker will not recognize symbols from - # libperl unless the module explicitly depends on it. - $libs .= ' "-L$(PERL_INC)" -lperl'; - } - } - - my $ld_run_path_shell = ""; - if ($self->{LD_RUN_PATH} ne "") { - $ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" '; - } - - push @m, sprintf <<'MAKE', $ld_run_path_shell, $ldrun, $dlsyms_arg, $ldfrom, $self->xs_obj_opt('$@'), $libs, $exportlist; - %s$(LD) %s $(LDDLFLAGS) %s %s $(OTHERLDFLAGS) %s $(MYEXTLIB) \ - $(PERL_ARCHIVE) %s $(PERL_ARCHIVE_AFTER) %s \ - $(INST_DYNAMIC_FIX) - $(CHMOD) $(PERM_RWX) $@ -MAKE - join '', @m; -} - -=item exescan - -Deprecated method. Use libscan instead. - -=cut - -sub exescan { - my($self,$path) = @_; - $path; -} - -=item extliblist - -Called by init_others, and calls ext ExtUtils::Liblist. See -L<ExtUtils::Liblist> for details. - -=cut - -sub extliblist { - my($self,$libs) = @_; - require ExtUtils::Liblist; - $self->ext($libs, $Verbose); -} - -=item find_perl - -Finds the executables PERL and FULLPERL - -=cut - -sub find_perl { - my($self, $ver, $names, $dirs, $trace) = @_; - - if ($trace >= 2){ - print "Looking for perl $ver by these names: -@$names -in these dirs: -@$dirs -"; - } - - my $stderr_duped = 0; - local *STDERR_COPY; - - unless ($Is{BSD}) { - # >& and lexical filehandles together give 5.6.2 indigestion - if( open(STDERR_COPY, '>&STDERR') ) { ## no critic - $stderr_duped = 1; - } - else { - warn <<WARNING; -find_perl() can't dup STDERR: $! -You might see some garbage while we search for Perl -WARNING - } - } - - foreach my $name (@$names){ - my ($abs, $use_dir); - if ($self->file_name_is_absolute($name)) { # /foo/bar - $abs = $name; - } elsif ($self->canonpath($name) eq - $self->canonpath(basename($name))) { # foo - $use_dir = 1; - } else { # foo/bar - $abs = $self->catfile($Curdir, $name); - } - foreach my $dir ($use_dir ? @$dirs : 1){ - next unless defined $dir; # $self->{PERL_SRC} may be undefined - - $abs = $self->catfile($dir, $name) - if $use_dir; - - print "Checking $abs\n" if ($trace >= 2); - next unless $self->maybe_command($abs); - print "Executing $abs\n" if ($trace >= 2); - - my $val; - my $version_check = qq{"$abs" -le "require $ver; print qq{VER_OK}"}; - - # To avoid using the unportable 2>&1 to suppress STDERR, - # we close it before running the command. - # However, thanks to a thread library bug in many BSDs - # ( http://www.freebsd.org/cgi/query-pr.cgi?pr=51535 ) - # we cannot use the fancier more portable way in here - # but instead need to use the traditional 2>&1 construct. - if ($Is{BSD}) { - $val = `$version_check 2>&1`; - } else { - close STDERR if $stderr_duped; - $val = `$version_check`; - - # 5.6.2's 3-arg open doesn't work with >& - open STDERR, ">&STDERR_COPY" ## no critic - if $stderr_duped; - } - - if ($val =~ /^VER_OK/m) { - print "Using PERL=$abs\n" if $trace; - return $abs; - } elsif ($trace >= 2) { - print "Result: '$val' ".($? >> 8)."\n"; - } - } - } - print "Unable to find a perl $ver (by these names: @$names, in these dirs: @$dirs)\n"; - 0; # false and not empty -} - - -=item fixin - - $mm->fixin(@files); - -Inserts the sharpbang or equivalent magic number to a set of @files. - -=cut - -sub fixin { # stolen from the pink Camel book, more or less - my ( $self, @files ) = @_; - - for my $file (@files) { - my $file_new = "$file.new"; - my $file_bak = "$file.bak"; - - open( my $fixin, '<', $file ) or croak "Can't process '$file': $!"; - local $/ = "\n"; - chomp( my $line = <$fixin> ); - next unless $line =~ s/^\s*\#!\s*//; # Not a shebang file. - - my $shb = $self->_fixin_replace_shebang( $file, $line ); - next unless defined $shb; - - open( my $fixout, ">", "$file_new" ) or do { - warn "Can't create new $file: $!\n"; - next; - }; - - # Print out the new #! line (or equivalent). - local $\; - local $/; - print $fixout $shb, <$fixin>; - close $fixin; - close $fixout; - - chmod 0666, $file_bak; - unlink $file_bak; - unless ( _rename( $file, $file_bak ) ) { - warn "Can't rename $file to $file_bak: $!"; - next; - } - unless ( _rename( $file_new, $file ) ) { - warn "Can't rename $file_new to $file: $!"; - unless ( _rename( $file_bak, $file ) ) { - warn "Can't rename $file_bak back to $file either: $!"; - warn "Leaving $file renamed as $file_bak\n"; - } - next; - } - unlink $file_bak; - } - continue { - system("$Config{'eunicefix'} $file") if $Config{'eunicefix'} ne ':'; - } -} - - -sub _rename { - my($old, $new) = @_; - - foreach my $file ($old, $new) { - if( $Is{VMS} and basename($file) !~ /\./ ) { - # rename() in 5.8.0 on VMS will not rename a file if it - # does not contain a dot yet it returns success. - $file = "$file."; - } - } - - return rename($old, $new); -} - -sub _fixin_replace_shebang { - my ( $self, $file, $line ) = @_; - - # Now figure out the interpreter name. - my ( $cmd, $arg ) = split ' ', $line, 2; - $cmd =~ s!^.*/!!; - - # Now look (in reverse) for interpreter in absolute PATH (unless perl). - my $interpreter; - if ( $cmd =~ m{^perl(?:\z|[^a-z])} ) { - if ( $Config{startperl} =~ m,^\#!.*/perl, ) { - $interpreter = $Config{startperl}; - $interpreter =~ s,^\#!,,; - } - else { - $interpreter = $Config{perlpath}; - } - } - else { - my (@absdirs) - = reverse grep { $self->file_name_is_absolute($_) } $self->path; - $interpreter = ''; - - foreach my $dir (@absdirs) { - my $maybefile = $self->catfile($dir,$cmd); - if ( $self->maybe_command($maybefile) ) { - warn "Ignoring $interpreter in $file\n" - if $Verbose && $interpreter; - $interpreter = $maybefile; - } - } - } - - # Figure out how to invoke interpreter on this machine. - - my ($does_shbang) = $Config{'sharpbang'} =~ /^\s*\#\!/; - my ($shb) = ""; - if ($interpreter) { - print "Changing sharpbang in $file to $interpreter" - if $Verbose; - # this is probably value-free on DOSISH platforms - if ($does_shbang) { - $shb .= "$Config{'sharpbang'}$interpreter"; - $shb .= ' ' . $arg if defined $arg; - $shb .= "\n"; - } - } - else { - warn "Can't find $cmd in PATH, $file unchanged" - if $Verbose; - return; - } - return $shb -} - -=item force (o) - -Writes an empty FORCE: target. - -=cut - -sub force { - my($self) = shift; - '# Phony target to force checking subdirectories. -FORCE : - $(NOECHO) $(NOOP) -'; -} - -=item guess_name - -Guess the name of this package by examining the working directory's -name. MakeMaker calls this only if the developer has not supplied a -NAME attribute. - -=cut - -# '; - -sub guess_name { - my($self) = @_; - use Cwd 'cwd'; - my $name = basename(cwd()); - $name =~ s|[\-_][\d\.\-]+\z||; # this is new with MM 5.00, we - # strip minus or underline - # followed by a float or some such - print "Warning: Guessing NAME [$name] from current directory name.\n"; - $name; -} - -=item has_link_code - -Returns true if C, XS, MYEXTLIB or similar objects exist within this -object that need a compiler. Does not descend into subdirectories as -needs_linking() does. - -=cut - -sub has_link_code { - my($self) = shift; - return $self->{HAS_LINK_CODE} if defined $self->{HAS_LINK_CODE}; - if ($self->{OBJECT} or @{$self->{C} || []} or $self->{MYEXTLIB}){ - $self->{HAS_LINK_CODE} = 1; - return 1; - } - return $self->{HAS_LINK_CODE} = 0; -} - - -=item init_dirscan - -Scans the directory structure and initializes DIR, XS, XS_FILES, -C, C_FILES, O_FILES, H, H_FILES, PL_FILES, EXE_FILES. - -Called by init_main. - -=cut - -sub init_dirscan { # --- File and Directory Lists (.xs .pm .pod etc) - my($self) = @_; - my(%dir, %xs, %c, %o, %h, %pl_files, %pm); - - my %ignore = map {( $_ => 1 )} qw(Makefile.PL Build.PL test.pl t); - - # ignore the distdir - $Is{VMS} ? $ignore{"$self->{DISTVNAME}.dir"} = 1 - : $ignore{$self->{DISTVNAME}} = 1; - - my $distprefix = $Is{VMS} ? qr/^\Q$self->{DISTNAME}\E-v?[\d\.]+\.dir$/i - : qr/^\Q$self->{DISTNAME}\E-v?[\d\.]+$/; - - @ignore{map lc, keys %ignore} = values %ignore if $Is{VMS}; - - if ( defined $self->{XS} and !defined $self->{C} ) { - my @c_files = grep { m/\.c(pp|xx)?\z/i } values %{$self->{XS}}; - my @o_files = grep { m/(?:.(?:o(?:bj)?)|\$\(OBJ_EXT\))\z/i } values %{$self->{XS}}; - %c = map { $_ => 1 } @c_files; - %o = map { $_ => 1 } @o_files; - } - - foreach my $name ($self->lsdir($Curdir)){ - next if $name =~ /\#/; - next if $name =~ $distprefix && -d $name; - $name = lc($name) if $Is{VMS}; - next if $name eq $Curdir or $name eq $Updir or $ignore{$name}; - next unless $self->libscan($name); - if (-d $name){ - next if -l $name; # We do not support symlinks at all - next if $self->{NORECURS}; - $dir{$name} = $name if (-f $self->catfile($name,"Makefile.PL")); - } elsif ($name =~ /\.xs\z/){ - my($c); ($c = $name) =~ s/\.xs\z/.c/; - $xs{$name} = $c; - $c{$c} = 1; - } elsif ($name =~ /\.c(pp|xx|c)?\z/i){ # .c .C .cpp .cxx .cc - $c{$name} = 1 - unless $name =~ m/perlmain\.c/; # See MAP_TARGET - } elsif ($name =~ /\.h\z/i){ - $h{$name} = 1; - } elsif ($name =~ /\.PL\z/) { - ($pl_files{$name} = $name) =~ s/\.PL\z// ; - } elsif (($Is{VMS} || $Is{Dos}) && $name =~ /[._]pl$/i) { - # case-insensitive filesystem, one dot per name, so foo.h.PL - # under Unix appears as foo.h_pl under VMS or fooh.pl on Dos - local($/); open(my $pl, '<', $name); my $txt = <$pl>; close $pl; - if ($txt =~ /Extracting \S+ \(with variable substitutions/) { - ($pl_files{$name} = $name) =~ s/[._]pl\z//i ; - } - else { - $pm{$name} = $self->catfile($self->{INST_LIBDIR},$name); - } - } elsif ($name =~ /\.(p[ml]|pod)\z/){ - $pm{$name} = $self->catfile($self->{INST_LIBDIR},$name); - } - } - - $self->{PL_FILES} ||= \%pl_files; - $self->{DIR} ||= [sort keys %dir]; - $self->{XS} ||= \%xs; - $self->{C} ||= [sort keys %c]; - $self->{H} ||= [sort keys %h]; - $self->{PM} ||= \%pm; - - my @o_files = @{$self->{C}}; - %o = (%o, map { $_ => 1 } grep s/\.c(pp|xx|c)?\z/$self->{OBJ_EXT}/i, @o_files); - $self->{O_FILES} = [sort keys %o]; -} - - -=item init_MANPODS - -Determines if man pages should be generated and initializes MAN1PODS -and MAN3PODS as appropriate. - -=cut - -sub init_MANPODS { - my $self = shift; - - # Set up names of manual pages to generate from pods - foreach my $man (qw(MAN1 MAN3)) { - if ( $self->{"${man}PODS"} - or $self->{"INSTALL${man}DIR"} =~ /^(none|\s*)$/ - ) { - $self->{"${man}PODS"} ||= {}; - } - else { - my $init_method = "init_${man}PODS"; - $self->$init_method(); - } - } -} - - -sub _has_pod { - my($self, $file) = @_; - - my($ispod)=0; - if (open( my $fh, '<', $file )) { - while (<$fh>) { - if (/^=(?:head\d+|item|pod)\b/) { - $ispod=1; - last; - } - } - close $fh; - } else { - # If it doesn't exist yet, we assume, it has pods in it - $ispod = 1; - } - - return $ispod; -} - - -=item init_MAN1PODS - -Initializes MAN1PODS from the list of EXE_FILES. - -=cut - -sub init_MAN1PODS { - my($self) = @_; - - if ( exists $self->{EXE_FILES} ) { - foreach my $name (@{$self->{EXE_FILES}}) { - next unless $self->_has_pod($name); - - $self->{MAN1PODS}->{$name} = - $self->catfile("\$(INST_MAN1DIR)", - basename($name).".\$(MAN1EXT)"); - } - } -} - - -=item init_MAN3PODS - -Initializes MAN3PODS from the list of PM files. - -=cut - -sub init_MAN3PODS { - my $self = shift; - - my %manifypods = (); # we collect the keys first, i.e. the files - # we have to convert to pod - - foreach my $name (keys %{$self->{PM}}) { - if ($name =~ /\.pod\z/ ) { - $manifypods{$name} = $self->{PM}{$name}; - } elsif ($name =~ /\.p[ml]\z/ ) { - if( $self->_has_pod($name) ) { - $manifypods{$name} = $self->{PM}{$name}; - } - } - } - - my $parentlibs_re = join '|', @{$self->{PMLIBPARENTDIRS}}; - - # Remove "Configure.pm" and similar, if it's not the only pod listed - # To force inclusion, just name it "Configure.pod", or override - # MAN3PODS - foreach my $name (keys %manifypods) { - if ( - ($self->{PERL_CORE} and $name =~ /(config|setup).*\.pm/is) or - ( $name =~ m/^README\.pod$/i ) # don't manify top-level README.pod - ) { - delete $manifypods{$name}; - next; - } - my($manpagename) = $name; - $manpagename =~ s/\.p(od|m|l)\z//; - # everything below lib is ok - unless($manpagename =~ s!^\W*($parentlibs_re)\W+!!s) { - $manpagename = $self->catfile( - split(/::/,$self->{PARENT_NAME}),$manpagename - ); - } - $manpagename = $self->replace_manpage_separator($manpagename); - $self->{MAN3PODS}->{$name} = - $self->catfile("\$(INST_MAN3DIR)", "$manpagename.\$(MAN3EXT)"); - } -} - - -=item init_PM - -Initializes PMLIBDIRS and PM from PMLIBDIRS. - -=cut - -sub init_PM { - my $self = shift; - - # Some larger extensions often wish to install a number of *.pm/pl - # files into the library in various locations. - - # The attribute PMLIBDIRS holds an array reference which lists - # subdirectories which we should search for library files to - # install. PMLIBDIRS defaults to [ 'lib', $self->{BASEEXT} ]. We - # recursively search through the named directories (skipping any - # which don't exist or contain Makefile.PL files). - - # For each *.pm or *.pl file found $self->libscan() is called with - # the default installation path in $_[1]. The return value of - # libscan defines the actual installation location. The default - # libscan function simply returns the path. The file is skipped - # if libscan returns false. - - # The default installation location passed to libscan in $_[1] is: - # - # ./*.pm => $(INST_LIBDIR)/*.pm - # ./xyz/... => $(INST_LIBDIR)/xyz/... - # ./lib/... => $(INST_LIB)/... - # - # In this way the 'lib' directory is seen as the root of the actual - # perl library whereas the others are relative to INST_LIBDIR - # (which includes PARENT_NAME). This is a subtle distinction but one - # that's important for nested modules. - - unless( $self->{PMLIBDIRS} ) { - if( $Is{VMS} ) { - # Avoid logical name vs directory collisions - $self->{PMLIBDIRS} = ['./lib', "./$self->{BASEEXT}"]; - } - else { - $self->{PMLIBDIRS} = ['lib', $self->{BASEEXT}]; - } - } - - #only existing directories that aren't in $dir are allowed - - # Avoid $_ wherever possible: - # @{$self->{PMLIBDIRS}} = grep -d && !$dir{$_}, @{$self->{PMLIBDIRS}}; - my (@pmlibdirs) = @{$self->{PMLIBDIRS}}; - @{$self->{PMLIBDIRS}} = (); - my %dir = map { ($_ => $_) } @{$self->{DIR}}; - foreach my $pmlibdir (@pmlibdirs) { - -d $pmlibdir && !$dir{$pmlibdir} && push @{$self->{PMLIBDIRS}}, $pmlibdir; - } - - unless( $self->{PMLIBPARENTDIRS} ) { - @{$self->{PMLIBPARENTDIRS}} = ('lib'); - } - - return if $self->{PM} and $self->{ARGS}{PM}; - - if (@{$self->{PMLIBDIRS}}){ - print "Searching PMLIBDIRS: @{$self->{PMLIBDIRS}}\n" - if ($Verbose >= 2); - require File::Find; - File::Find::find(sub { - if (-d $_){ - unless ($self->libscan($_)){ - $File::Find::prune = 1; - } - return; - } - return if /\#/; - return if /~$/; # emacs temp files - return if /,v$/; # RCS files - return if m{\.swp$}; # vim swap files - - my $path = $File::Find::name; - my $prefix = $self->{INST_LIBDIR}; - my $striplibpath; - - my $parentlibs_re = join '|', @{$self->{PMLIBPARENTDIRS}}; - $prefix = $self->{INST_LIB} - if ($striplibpath = $path) =~ s{^(\W*)($parentlibs_re)\W} - {$1}i; - - my($inst) = $self->catfile($prefix,$striplibpath); - local($_) = $inst; # for backwards compatibility - $inst = $self->libscan($inst); - print "libscan($path) => '$inst'\n" if ($Verbose >= 2); - return unless $inst; - if ($self->{XSMULTI} and $inst =~ /\.xs\z/) { - my($base); ($base = $path) =~ s/\.xs\z//; - $self->{XS}{$path} = "$base.c"; - push @{$self->{C}}, "$base.c"; - push @{$self->{O_FILES}}, "$base$self->{OBJ_EXT}"; - } else { - $self->{PM}{$path} = $inst; - } - }, @{$self->{PMLIBDIRS}}); - } -} - - -=item init_DIRFILESEP - -Using / for Unix. Called by init_main. - -=cut - -sub init_DIRFILESEP { - my($self) = shift; - - $self->{DIRFILESEP} = '/'; -} - - -=item init_main - -Initializes AR, AR_STATIC_ARGS, BASEEXT, CONFIG, DISTNAME, DLBASE, -EXE_EXT, FULLEXT, FULLPERL, FULLPERLRUN, FULLPERLRUNINST, INST_*, -INSTALL*, INSTALLDIRS, LIB_EXT, LIBPERL_A, MAP_TARGET, NAME, -OBJ_EXT, PARENT_NAME, PERL, PERL_ARCHLIB, PERL_INC, PERL_LIB, -PERL_SRC, PERLRUN, PERLRUNINST, PREFIX, VERSION, -VERSION_SYM, XS_VERSION. - -=cut - -sub init_main { - my($self) = @_; - - # --- Initialize Module Name and Paths - - # NAME = Foo::Bar::Oracle - # FULLEXT = Foo/Bar/Oracle - # BASEEXT = Oracle - # PARENT_NAME = Foo::Bar -### Only UNIX: -### ($self->{FULLEXT} = -### $self->{NAME}) =~ s!::!/!g ; #eg. BSD/Foo/Socket - $self->{FULLEXT} = $self->catdir(split /::/, $self->{NAME}); - - - # Copied from DynaLoader: - - my(@modparts) = split(/::/,$self->{NAME}); - my($modfname) = $modparts[-1]; - - # Some systems have restrictions on files names for DLL's etc. - # mod2fname returns appropriate file base name (typically truncated) - # It may also edit @modparts if required. - # We require DynaLoader to make sure that mod2fname is loaded - eval { require DynaLoader }; - if (defined &DynaLoader::mod2fname) { - $modfname = &DynaLoader::mod2fname(\@modparts); - } - - ($self->{PARENT_NAME}, $self->{BASEEXT}) = $self->{NAME} =~ m!(?:([\w:]+)::)?(\w+)\z! ; - $self->{PARENT_NAME} ||= ''; - - if (defined &DynaLoader::mod2fname) { - # As of 5.001m, dl_os2 appends '_' - $self->{DLBASE} = $modfname; - } else { - $self->{DLBASE} = '$(BASEEXT)'; - } - - - # --- Initialize PERL_LIB, PERL_SRC - - # *Real* information: where did we get these two from? ... - my $inc_config_dir = dirname($INC{'Config.pm'}); - my $inc_carp_dir = dirname($INC{'Carp.pm'}); - - unless ($self->{PERL_SRC}){ - foreach my $dir_count (1..8) { # 8 is the VMS limit for nesting - my $dir = $self->catdir(($Updir) x $dir_count); - - if (-f $self->catfile($dir,"config_h.SH") && - -f $self->catfile($dir,"perl.h") && - -f $self->catfile($dir,"lib","strict.pm") - ) { - $self->{PERL_SRC}=$dir ; - last; - } - } - } - - warn "PERL_CORE is set but I can't find your PERL_SRC!\n" if - $self->{PERL_CORE} and !$self->{PERL_SRC}; - - if ($self->{PERL_SRC}){ - $self->{PERL_LIB} ||= $self->catdir("$self->{PERL_SRC}","lib"); - - $self->{PERL_ARCHLIB} = $self->{PERL_LIB}; - $self->{PERL_INC} = ($Is{Win32}) ? - $self->catdir($self->{PERL_LIB},"CORE") : $self->{PERL_SRC}; - - # catch a situation that has occurred a few times in the past: - unless ( - -s $self->catfile($self->{PERL_SRC},'cflags') - or - $Is{VMS} - && - -s $self->catfile($self->{PERL_SRC},'vmsish.h') - or - $Is{Win32} - ){ - warn qq{ -You cannot build extensions below the perl source tree after executing -a 'make clean' in the perl source tree. - -To rebuild extensions distributed with the perl source you should -simply Configure (to include those extensions) and then build perl as -normal. After installing perl the source tree can be deleted. It is -not needed for building extensions by running 'perl Makefile.PL' -usually without extra arguments. - -It is recommended that you unpack and build additional extensions away -from the perl source tree. -}; - } - } else { - # we should also consider $ENV{PERL5LIB} here - my $old = $self->{PERL_LIB} || $self->{PERL_ARCHLIB} || $self->{PERL_INC}; - $self->{PERL_LIB} ||= $Config{privlibexp}; - $self->{PERL_ARCHLIB} ||= $Config{archlibexp}; - $self->{PERL_INC} = $self->catdir("$self->{PERL_ARCHLIB}","CORE"); # wild guess for now - my $perl_h; - - if (not -f ($perl_h = $self->catfile($self->{PERL_INC},"perl.h")) - and not $old){ - # Maybe somebody tries to build an extension with an - # uninstalled Perl outside of Perl build tree - my $lib; - for my $dir (@INC) { - $lib = $dir, last if -e $self->catfile($dir, "Config.pm"); - } - if ($lib) { - # Win32 puts its header files in /perl/src/lib/CORE. - # Unix leaves them in /perl/src. - my $inc = $Is{Win32} ? $self->catdir($lib, "CORE" ) - : dirname $lib; - if (-e $self->catfile($inc, "perl.h")) { - $self->{PERL_LIB} = $lib; - $self->{PERL_ARCHLIB} = $lib; - $self->{PERL_INC} = $inc; - $self->{UNINSTALLED_PERL} = 1; - print <<EOP; -... Detected uninstalled Perl. Trying to continue. -EOP - } - } - } - } - - if ($Is{Android}) { - # Android fun times! - # ../../perl -I../../lib -MFile::Glob -e1 works - # ../../../perl -I../../../lib -MFile::Glob -e1 fails to find - # the .so for File::Glob. - # This always affects core perl, but may also affect an installed - # perl built with -Duserelocatableinc. - $self->{PERL_LIB} = File::Spec->rel2abs($self->{PERL_LIB}); - $self->{PERL_ARCHLIB} = File::Spec->rel2abs($self->{PERL_ARCHLIB}); - } - $self->{PERL_INCDEP} = $self->{PERL_INC}; - $self->{PERL_ARCHLIBDEP} = $self->{PERL_ARCHLIB}; - - # We get SITELIBEXP and SITEARCHEXP directly via - # Get_from_Config. When we are running standard modules, these - # won't matter, we will set INSTALLDIRS to "perl". Otherwise we - # set it to "site". I prefer that INSTALLDIRS be set from outside - # MakeMaker. - $self->{INSTALLDIRS} ||= "site"; - - $self->{MAN1EXT} ||= $Config{man1ext}; - $self->{MAN3EXT} ||= $Config{man3ext}; - - # Get some stuff out of %Config if we haven't yet done so - print "CONFIG must be an array ref\n" - if ($self->{CONFIG} and ref $self->{CONFIG} ne 'ARRAY'); - $self->{CONFIG} = [] unless (ref $self->{CONFIG}); - push(@{$self->{CONFIG}}, @ExtUtils::MakeMaker::Get_from_Config); - push(@{$self->{CONFIG}}, 'shellflags') if $Config{shellflags}; - my(%once_only); - foreach my $m (@{$self->{CONFIG}}){ - next if $once_only{$m}; - print "CONFIG key '$m' does not exist in Config.pm\n" - unless exists $Config{$m}; - $self->{uc $m} ||= $Config{$m}; - $once_only{$m} = 1; - } - -# This is too dangerous: -# if ($^O eq "next") { -# $self->{AR} = "libtool"; -# $self->{AR_STATIC_ARGS} = "-o"; -# } -# But I leave it as a placeholder - - $self->{AR_STATIC_ARGS} ||= "cr"; - - # These should never be needed - $self->{OBJ_EXT} ||= '.o'; - $self->{LIB_EXT} ||= '.a'; - - $self->{MAP_TARGET} ||= "perl"; - - $self->{LIBPERL_A} ||= "libperl$self->{LIB_EXT}"; - - # make a simple check if we find strict - warn "Warning: PERL_LIB ($self->{PERL_LIB}) seems not to be a perl library directory - (strict.pm not found)" - unless -f $self->catfile("$self->{PERL_LIB}","strict.pm") || - $self->{NAME} eq "ExtUtils::MakeMaker"; -} - -=item init_tools - -Initializes tools to use their common (and faster) Unix commands. - -=cut - -sub init_tools { - my $self = shift; - - $self->{ECHO} ||= 'echo'; - $self->{ECHO_N} ||= 'echo -n'; - $self->{RM_F} ||= "rm -f"; - $self->{RM_RF} ||= "rm -rf"; - $self->{TOUCH} ||= "touch"; - $self->{TEST_F} ||= "test -f"; - $self->{TEST_S} ||= "test -s"; - $self->{CP} ||= "cp"; - $self->{MV} ||= "mv"; - $self->{CHMOD} ||= "chmod"; - $self->{FALSE} ||= 'false'; - $self->{TRUE} ||= 'true'; - - $self->{LD} ||= 'ld'; - - return $self->SUPER::init_tools(@_); - - # After SUPER::init_tools so $Config{shell} has a - # chance to get set. - $self->{SHELL} ||= '/bin/sh'; - - return; -} - - -=item init_linker - -Unix has no need of special linker flags. - -=cut - -sub init_linker { - my($self) = shift; - $self->{PERL_ARCHIVE} ||= ''; - $self->{PERL_ARCHIVEDEP} ||= ''; - $self->{PERL_ARCHIVE_AFTER} ||= ''; - $self->{EXPORT_LIST} ||= ''; -} - - -=begin _protected - -=item init_lib2arch - - $mm->init_lib2arch - -=end _protected - -=cut - -sub init_lib2arch { - my($self) = shift; - - # The user who requests an installation directory explicitly - # should not have to tell us an architecture installation directory - # as well. We look if a directory exists that is named after the - # architecture. If not we take it as a sign that it should be the - # same as the requested installation directory. Otherwise we take - # the found one. - for my $libpair ({l=>"privlib", a=>"archlib"}, - {l=>"sitelib", a=>"sitearch"}, - {l=>"vendorlib", a=>"vendorarch"}, - ) - { - my $lib = "install$libpair->{l}"; - my $Lib = uc $lib; - my $Arch = uc "install$libpair->{a}"; - if( $self->{$Lib} && ! $self->{$Arch} ){ - my($ilib) = $Config{$lib}; - - $self->prefixify($Arch,$ilib,$self->{$Lib}); - - unless (-d $self->{$Arch}) { - print "Directory $self->{$Arch} not found\n" - if $Verbose; - $self->{$Arch} = $self->{$Lib}; - } - print "Defaulting $Arch to $self->{$Arch}\n" if $Verbose; - } - } -} - - -=item init_PERL - - $mm->init_PERL; - -Called by init_main. Sets up ABSPERL, PERL, FULLPERL and all the -*PERLRUN* permutations. - - PERL is allowed to be miniperl - FULLPERL must be a complete perl - - ABSPERL is PERL converted to an absolute path - - *PERLRUN contains everything necessary to run perl, find it's - libraries, etc... - - *PERLRUNINST is *PERLRUN + everything necessary to find the - modules being built. - -=cut - -sub init_PERL { - my($self) = shift; - - my @defpath = (); - foreach my $component ($self->{PERL_SRC}, $self->path(), - $Config{binexp}) - { - push @defpath, $component if defined $component; - } - - # Build up a set of file names (not command names). - my $thisperl = $self->canonpath($^X); - $thisperl .= $Config{exe_ext} unless - # VMS might have a file version # at the end - $Is{VMS} ? $thisperl =~ m/$Config{exe_ext}(;\d+)?$/i - : $thisperl =~ m/$Config{exe_ext}$/i; - - # We need a relative path to perl when in the core. - $thisperl = $self->abs2rel($thisperl) if $self->{PERL_CORE}; - - my @perls = ($thisperl); - push @perls, map { "$_$Config{exe_ext}" } - ("perl$Config{version}", 'perl5', 'perl'); - - # miniperl has priority over all but the canonical perl when in the - # core. Otherwise its a last resort. - my $miniperl = "miniperl$Config{exe_ext}"; - if( $self->{PERL_CORE} ) { - splice @perls, 1, 0, $miniperl; - } - else { - push @perls, $miniperl; - } - - $self->{PERL} ||= - $self->find_perl(5.0, \@perls, \@defpath, $Verbose ); - - my $perl = $self->{PERL}; - $perl =~ s/^"//; - my $has_mcr = $perl =~ s/^MCR\s*//; - my $perlflags = ''; - my $stripped_perl; - while ($perl) { - ($stripped_perl = $perl) =~ s/"$//; - last if -x $stripped_perl; - last unless $perl =~ s/(\s+\S+)$//; - $perlflags = $1.$perlflags; - } - $self->{PERL} = $stripped_perl; - $self->{PERL} = 'MCR '.$self->{PERL} if $has_mcr || $Is{VMS}; - - # When built for debugging, VMS doesn't create perl.exe but ndbgperl.exe. - my $perl_name = 'perl'; - $perl_name = 'ndbgperl' if $Is{VMS} && - defined $Config{usevmsdebug} && $Config{usevmsdebug} eq 'define'; - - # XXX This logic is flawed. If "miniperl" is anywhere in the path - # it will get confused. It should be fixed to work only on the filename. - # Define 'FULLPERL' to be a non-miniperl (used in test: target) - unless ($self->{FULLPERL}) { - ($self->{FULLPERL} = $self->{PERL}) =~ s/\Q$miniperl\E$/$perl_name$Config{exe_ext}/i; - $self->{FULLPERL} = qq{"$self->{FULLPERL}"}.$perlflags; - } - # Can't have an image name with quotes, and findperl will have - # already escaped spaces. - $self->{FULLPERL} =~ tr/"//d if $Is{VMS}; - - # Little hack to get around VMS's find_perl putting "MCR" in front - # sometimes. - $self->{ABSPERL} = $self->{PERL}; - $has_mcr = $self->{ABSPERL} =~ s/^MCR\s*//; - if( $self->file_name_is_absolute($self->{ABSPERL}) ) { - $self->{ABSPERL} = '$(PERL)'; - } - else { - $self->{ABSPERL} = $self->rel2abs($self->{ABSPERL}); - - # Quote the perl command if it contains whitespace - $self->{ABSPERL} = $self->quote_literal($self->{ABSPERL}) - if $self->{ABSPERL} =~ /\s/; - - $self->{ABSPERL} = 'MCR '.$self->{ABSPERL} if $has_mcr; - } - $self->{PERL} = qq{"$self->{PERL}"}.$perlflags; - - # Can't have an image name with quotes, and findperl will have - # already escaped spaces. - $self->{PERL} =~ tr/"//d if $Is{VMS}; - - # Are we building the core? - $self->{PERL_CORE} = $ENV{PERL_CORE} unless exists $self->{PERL_CORE}; - $self->{PERL_CORE} = 0 unless defined $self->{PERL_CORE}; - - # Make sure perl can find itself before it's installed. - my $lib_paths = $self->{UNINSTALLED_PERL} || $self->{PERL_CORE} - ? ( $self->{PERL_ARCHLIB} && $self->{PERL_LIB} && $self->{PERL_ARCHLIB} ne $self->{PERL_LIB} ) ? - q{ "-I$(PERL_LIB)" "-I$(PERL_ARCHLIB)"} : q{ "-I$(PERL_LIB)"} - : undef; - my $inst_lib_paths = $self->{INST_ARCHLIB} ne $self->{INST_LIB} - ? 'RUN)'.$perlflags.' "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"' - : 'RUN)'.$perlflags.' "-I$(INST_LIB)"'; - # How do we run perl? - foreach my $perl (qw(PERL FULLPERL ABSPERL)) { - my $run = $perl.'RUN'; - - $self->{$run} = qq{\$($perl)}; - $self->{$run} .= $lib_paths if $lib_paths; - - $self->{$perl.'RUNINST'} = '$('.$perl.$inst_lib_paths; - } - - return 1; -} - - -=item init_platform - -=item platform_constants - -Add MM_Unix_VERSION. - -=cut - -sub init_platform { - my($self) = shift; - - $self->{MM_Unix_VERSION} = $VERSION; - $self->{PERL_MALLOC_DEF} = '-DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc '. - '-Dfree=Perl_mfree -Drealloc=Perl_realloc '. - '-Dcalloc=Perl_calloc'; - -} - -sub platform_constants { - my($self) = shift; - my $make_frag = ''; - - foreach my $macro (qw(MM_Unix_VERSION PERL_MALLOC_DEF)) - { - next unless defined $self->{$macro}; - $make_frag .= "$macro = $self->{$macro}\n"; - } - - return $make_frag; -} - - -=item init_PERM - - $mm->init_PERM - -Called by init_main. Initializes PERL_* - -=cut - -sub init_PERM { - my($self) = shift; - - $self->{PERM_DIR} = 755 unless defined $self->{PERM_DIR}; - $self->{PERM_RW} = 644 unless defined $self->{PERM_RW}; - $self->{PERM_RWX} = 755 unless defined $self->{PERM_RWX}; - - return 1; -} - - -=item init_xs - - $mm->init_xs - -Sets up macros having to do with XS code. Currently just INST_STATIC, -INST_DYNAMIC and INST_BOOT. - -=cut - -sub init_xs { - my $self = shift; - - if ($self->has_link_code()) { - $self->{INST_STATIC} = - $self->catfile('$(INST_ARCHAUTODIR)', '$(BASEEXT)$(LIB_EXT)'); - $self->{INST_DYNAMIC} = - $self->catfile('$(INST_ARCHAUTODIR)', '$(DLBASE).$(DLEXT)'); - $self->{INST_BOOT} = - $self->catfile('$(INST_ARCHAUTODIR)', '$(BASEEXT).bs'); - if ($self->{XSMULTI}) { - my @exts = $self->_xs_list_basenames; - my (@statics, @dynamics, @boots); - for my $ext (@exts) { - my ($v, $d, $f) = File::Spec->splitpath($ext); - my @d = File::Spec->splitdir($d); - shift @d if defined $d[0] and $d[0] eq 'lib'; - my $instdir = $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f); - my $instfile = $self->catfile($instdir, $f); - push @statics, "$instfile\$(LIB_EXT)"; - - # Dynamic library names may need special handling. - my $dynfile = $instfile; - eval { require DynaLoader }; - if (defined &DynaLoader::mod2fname) { - $dynfile = $self->catfile($instdir, &DynaLoader::mod2fname([@d, $f])); - } - - push @dynamics, "$dynfile.\$(DLEXT)"; - push @boots, "$instfile.bs"; - } - $self->{INST_STATIC} = join ' ', @statics; - $self->{INST_DYNAMIC} = join ' ', @dynamics; - $self->{INST_BOOT} = join ' ', @boots; - } - } else { - $self->{INST_STATIC} = ''; - $self->{INST_DYNAMIC} = ''; - $self->{INST_BOOT} = ''; - } -} - -=item install (o) - -Defines the install target. - -=cut - -sub install { - my($self, %attribs) = @_; - my(@m); - - push @m, q{ -install :: pure_install doc_install - $(NOECHO) $(NOOP) - -install_perl :: pure_perl_install doc_perl_install - $(NOECHO) $(NOOP) - -install_site :: pure_site_install doc_site_install - $(NOECHO) $(NOOP) - -install_vendor :: pure_vendor_install doc_vendor_install - $(NOECHO) $(NOOP) - -pure_install :: pure_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -doc_install :: doc_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -pure__install : pure_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -doc__install : doc_site_install - $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site - -pure_perl_install :: all - $(NOECHO) $(MOD_INSTALL) \ -}; - - push @m, -q{ read "}.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{" \ - write "}.$self->catfile('$(DESTINSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').q{" \ -} unless $self->{NO_PACKLIST}; - - push @m, -q{ "$(INST_LIB)" "$(DESTINSTALLPRIVLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLARCHLIB)" \ - "$(INST_BIN)" "$(DESTINSTALLBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "}.$self->catdir('$(SITEARCHEXP)','auto','$(FULLEXT)').q{" - - -pure_site_install :: all - $(NOECHO) $(MOD_INSTALL) \ -}; - push @m, -q{ read "}.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{" \ - write "}.$self->catfile('$(DESTINSTALLSITEARCH)','auto','$(FULLEXT)','.packlist').q{" \ -} unless $self->{NO_PACKLIST}; - - push @m, -q{ "$(INST_LIB)" "$(DESTINSTALLSITELIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLSITEARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLSITEBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLSITESCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLSITEMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLSITEMAN3DIR)" - $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ - "}.$self->catdir('$(PERL_ARCHLIB)','auto','$(FULLEXT)').q{" - -pure_vendor_install :: all - $(NOECHO) $(MOD_INSTALL) \ -}; - push @m, -q{ read "}.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{" \ - write "}.$self->catfile('$(DESTINSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').q{" \ -} unless $self->{NO_PACKLIST}; - - push @m, -q{ "$(INST_LIB)" "$(DESTINSTALLVENDORLIB)" \ - "$(INST_ARCHLIB)" "$(DESTINSTALLVENDORARCH)" \ - "$(INST_BIN)" "$(DESTINSTALLVENDORBIN)" \ - "$(INST_SCRIPT)" "$(DESTINSTALLVENDORSCRIPT)" \ - "$(INST_MAN1DIR)" "$(DESTINSTALLVENDORMAN1DIR)" \ - "$(INST_MAN3DIR)" "$(DESTINSTALLVENDORMAN3DIR)" - -}; - - push @m, q{ -doc_perl_install :: all - $(NOECHO) $(NOOP) - -doc_site_install :: all - $(NOECHO) $(NOOP) - -doc_vendor_install :: all - $(NOECHO) $(NOOP) - -} if $self->{NO_PERLLOCAL}; - - push @m, q{ -doc_perl_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLPRIVLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "}.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{" - -doc_site_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLSITELIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "}.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{" - -doc_vendor_install :: all - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Module" "$(NAME)" \ - "installed into" "$(INSTALLVENDORLIB)" \ - LINKTYPE "$(LINKTYPE)" \ - VERSION "$(VERSION)" \ - EXE_FILES "$(EXE_FILES)" \ - >> "}.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{" - -} unless $self->{NO_PERLLOCAL}; - - push @m, q{ -uninstall :: uninstall_from_$(INSTALLDIRS)dirs - $(NOECHO) $(NOOP) - -uninstall_from_perldirs :: - $(NOECHO) $(UNINSTALL) "}.$self->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').q{" - -uninstall_from_sitedirs :: - $(NOECHO) $(UNINSTALL) "}.$self->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').q{" - -uninstall_from_vendordirs :: - $(NOECHO) $(UNINSTALL) "}.$self->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').q{" -}; - - join("",@m); -} - -=item installbin (o) - -Defines targets to make and to install EXE_FILES. - -=cut - -sub installbin { - my($self) = shift; - - return "" unless $self->{EXE_FILES} && ref $self->{EXE_FILES} eq "ARRAY"; - my @exefiles = sort @{$self->{EXE_FILES}}; - return "" unless @exefiles; - - @exefiles = map vmsify($_), @exefiles if $Is{VMS}; - - my %fromto; - for my $from (@exefiles) { - my($path)= $self->catfile('$(INST_SCRIPT)', basename($from)); - - local($_) = $path; # for backwards compatibility - my $to = $self->libscan($path); - print "libscan($from) => '$to'\n" if ($Verbose >=2); - - $to = vmsify($to) if $Is{VMS}; - $fromto{$from} = $to; - } - my @to = sort values %fromto; - - my @m; - push(@m, qq{ -EXE_FILES = @exefiles - -pure_all :: @to - \$(NOECHO) \$(NOOP) - -realclean :: -}); - - # realclean can get rather large. - push @m, map "\t$_\n", $self->split_command('$(RM_F)', @to); - push @m, "\n"; - - # A target for each exe file. - my @froms = sort keys %fromto; - for my $from (@froms) { - # 1 2 - push @m, _sprintf562 <<'MAKE', $from, $fromto{$from}; -%2$s : %1$s $(FIRST_MAKEFILE) $(INST_SCRIPT)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists - $(NOECHO) $(RM_F) %2$s - $(CP) %1$s %2$s - $(FIXIN) %2$s - -$(NOECHO) $(CHMOD) $(PERM_RWX) %2$s - -MAKE - - } - - join "", @m; -} - -=item linkext (o) - -Defines the linkext target which in turn defines the LINKTYPE. - -=cut - -# LINKTYPE => static or dynamic or '' -sub linkext { - my($self, %attribs) = @_; - my $linktype = $attribs{LINKTYPE}; - $linktype = $self->{LINKTYPE} unless defined $linktype; - if (defined $linktype and $linktype eq '') { - warn "Warning: LINKTYPE set to '', no longer necessary\n"; - } - $linktype = '$(LINKTYPE)' unless defined $linktype; - " -linkext :: $linktype - \$(NOECHO) \$(NOOP) -"; -} - -=item lsdir - -Takes as arguments a directory name and a regular expression. Returns -all entries in the directory that match the regular expression. - -=cut - -sub lsdir { - # $self - my(undef, $dir, $regex) = @_; - opendir(my $dh, defined($dir) ? $dir : ".") - or return; - my @ls = readdir $dh; - closedir $dh; - @ls = grep(/$regex/, @ls) if defined $regex; - @ls; -} - -=item macro (o) - -Simple subroutine to insert the macros defined by the macro attribute -into the Makefile. - -=cut - -sub macro { - my($self,%attribs) = @_; - my @m; - foreach my $key (sort keys %attribs) { - my $val = $attribs{$key}; - push @m, "$key = $val\n"; - } - join "", @m; -} - -=item makeaperl (o) - -Called by staticmake. Defines how to write the Makefile to produce a -static new perl. - -By default the Makefile produced includes all the static extensions in -the perl library. (Purified versions of library files, e.g., -DynaLoader_pure_p1_c0_032.a are automatically ignored to avoid link errors.) - -=cut - -sub makeaperl { - my($self, %attribs) = @_; - my($makefilename, $searchdirs, $static, $extra, $perlinc, $target, $tmp, $libperl) = - @attribs{qw(MAKE DIRS STAT EXTRA INCL TARGET TMP LIBPERL)}; - s/^(.*)/"-I$1"/ for @{$perlinc || []}; - my(@m); - push @m, " -# --- MakeMaker makeaperl section --- -MAP_TARGET = $target -FULLPERL = $self->{FULLPERL} -MAP_PERLINC = @{$perlinc || []} -"; - return join '', @m if $self->{PARENT}; - - my($dir) = join ":", @{$self->{DIR}}; - - unless ($self->{MAKEAPERL}) { - push @m, q{ -$(MAP_TARGET) :: $(MAKE_APERL_FILE) - $(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@ - -$(MAKE_APERL_FILE) : static $(FIRST_MAKEFILE) pm_to_blib - $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) - $(NOECHO) $(PERLRUNINST) \ - Makefile.PL DIR="}, $dir, q{" \ - MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ - MAKEAPERL=1 NORECURS=1 CCCDLFLAGS=}; - - foreach (@ARGV){ - my $arg = $_; # avoid lvalue aliasing - if ( $arg =~ /(^.*?=)(.*['\s].*)/ ) { - $arg = $1 . $self->quote_literal($2); - } - push @m, " \\\n\t\t$arg"; - } - push @m, "\n"; - - return join '', @m; - } - - my $cccmd = $self->const_cccmd($libperl); - $cccmd =~ s/^CCCMD\s*=\s*//; - $cccmd =~ s/\$\(INC\)/ "-I$self->{PERL_INC}" /; - $cccmd .= " $Config{cccdlflags}" - if ($Config{useshrplib} eq 'true'); - $cccmd =~ s/\(CC\)/\(PERLMAINCC\)/; - - # The front matter of the linkcommand... - my $linkcmd = join ' ', "\$(CC)", - grep($_, @Config{qw(ldflags ccdlflags)}); - $linkcmd =~ s/\s+/ /g; - $linkcmd =~ s,(perl\.exp),\$(PERL_INC)/$1,; - - # Which *.a files could we make use of... - my $staticlib21 = $self->_find_static_libs($searchdirs); - # We trust that what has been handed in as argument, will be buildable - $static = [] unless $static; - @$staticlib21{@{$static}} = (1) x @{$static}; - - $extra = [] unless $extra && ref $extra eq 'ARRAY'; - for (sort keys %$staticlib21) { - next unless /\Q$self->{LIB_EXT}\E\z/; - $_ = dirname($_) . "/extralibs.ld"; - push @$extra, $_; - } - - s/^(.*)/"-I$1"/ for @{$perlinc || []}; - - $target ||= "perl"; - $tmp ||= "."; - -# MAP_STATIC doesn't look into subdirs yet. Once "all" is made and we -# regenerate the Makefiles, MAP_STATIC and the dependencies for -# extralibs.all are computed correctly - my @map_static = reverse sort keys %$staticlib21; - push @m, " -MAP_LINKCMD = $linkcmd -MAP_STATIC = ", join(" \\\n\t", map { qq{"$_"} } @map_static), " -MAP_STATICDEP = ", join(' ', map { $self->quote_dep($_) } @map_static), " - -MAP_PRELIBS = $Config{perllibs} $Config{cryptlib} -"; - - my $lperl; - if (defined $libperl) { - ($lperl = $libperl) =~ s/\$\(A\)/$self->{LIB_EXT}/; - } - unless ($libperl && -f $lperl) { # Ilya's code... - my $dir = $self->{PERL_SRC} || "$self->{PERL_ARCHLIB}/CORE"; - $dir = "$self->{PERL_ARCHLIB}/.." if $self->{UNINSTALLED_PERL}; - $libperl ||= "libperl$self->{LIB_EXT}"; - $libperl = "$dir/$libperl"; - $lperl ||= "libperl$self->{LIB_EXT}"; - $lperl = "$dir/$lperl"; - - if (! -f $libperl and ! -f $lperl) { - # We did not find a static libperl. Maybe there is a shared one? - if ($Is{SunOS}) { - $lperl = $libperl = "$dir/$Config{libperl}"; - # SUNOS ld does not take the full path to a shared library - $libperl = '' if $Is{SunOS4}; - } - } - - print <<EOF unless -f $lperl || defined($self->{PERL_SRC}); -Warning: $libperl not found -If you're going to build a static perl binary, make sure perl is installed -otherwise ignore this warning -EOF - } - - # SUNOS ld does not take the full path to a shared library - my $llibperl = $libperl ? '$(MAP_LIBPERL)' : '-lperl'; - my $libperl_dep = $self->quote_dep($libperl); - - push @m, " -MAP_LIBPERL = $libperl -MAP_LIBPERLDEP = $libperl_dep -LLIBPERL = $llibperl -"; - - push @m, ' -$(INST_ARCHAUTODIR)/extralibs.all : $(INST_ARCHAUTODIR)$(DFSEP).exists '.join(" \\\n\t", @$extra).' - $(NOECHO) $(RM_F) $@ - $(NOECHO) $(TOUCH) $@ -'; - - foreach my $catfile (@$extra){ - push @m, "\tcat $catfile >> \$\@\n"; - } - - my $ldfrom = $self->{XSMULTI} ? '' : '$(LDFROM)'; - # 1 2 3 4 - push @m, _sprintf562 <<'EOF', $tmp, $ldfrom, $self->xs_obj_opt('$@'), $makefilename; -$(MAP_TARGET) :: %1$s/perlmain$(OBJ_EXT) $(MAP_LIBPERLDEP) $(MAP_STATICDEP) $(INST_ARCHAUTODIR)/extralibs.all - $(MAP_LINKCMD) %2$s $(OPTIMIZE) %1$s/perlmain$(OBJ_EXT) %3$s $(MAP_STATIC) "$(LLIBPERL)" `cat $(INST_ARCHAUTODIR)/extralibs.all` $(MAP_PRELIBS) - $(NOECHO) $(ECHO) "To install the new '$(MAP_TARGET)' binary, call" - $(NOECHO) $(ECHO) " $(MAKE) $(USEMAKEFILE) %4$s inst_perl MAP_TARGET=$(MAP_TARGET)" - $(NOECHO) $(ECHO) " $(MAKE) $(USEMAKEFILE) %4$s map_clean" - -%1$s/perlmain\$(OBJ_EXT): %1$s/perlmain.c -EOF - push @m, "\t".$self->cd($tmp, qq[$cccmd "-I\$(PERL_INC)" perlmain.c])."\n"; - - my $maybe_DynaLoader = $Config{usedl} ? 'q(DynaLoader)' : ''; - push @m, _sprintf562 <<'EOF', $tmp, $makefilename, $maybe_DynaLoader; - -%1$s/perlmain.c: %2$s - $(NOECHO) $(ECHO) Writing $@ - $(NOECHO) $(PERL) $(MAP_PERLINC) "-MExtUtils::Miniperl" \ - -e "writemain(grep(s#.*/auto/##s, @ARGV), %3$s)" $(MAP_STATIC) > $@t - $(MV) $@t $@ - -EOF - push @m, "\t", q{$(NOECHO) $(PERL) "$(INSTALLSCRIPT)/fixpmain" -} if (defined (&Dos::UseLFN) && Dos::UseLFN()==0); - - - push @m, q{ -doc_inst_perl : - $(NOECHO) $(ECHO) Appending installation info to "$(DESTINSTALLARCHLIB)/perllocal.pod" - -$(NOECHO) $(MKPATH) "$(DESTINSTALLARCHLIB)" - -$(NOECHO) $(DOC_INSTALL) \ - "Perl binary" "$(MAP_TARGET)" \ - MAP_STATIC "$(MAP_STATIC)" \ - MAP_EXTRA "`cat $(INST_ARCHAUTODIR)/extralibs.all`" \ - MAP_LIBPERL "$(MAP_LIBPERL)" \ - >> "}.$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q{" - -}; - - push @m, q{ -inst_perl : pure_inst_perl doc_inst_perl - -pure_inst_perl : $(MAP_TARGET) - }.$self->{CP}.q{ $(MAP_TARGET) "}.$self->catfile('$(DESTINSTALLBIN)','$(MAP_TARGET)').q{" - -clean :: map_clean - -map_clean : - }.$self->{RM_F}.qq{ $tmp/perlmain\$(OBJ_EXT) $tmp/perlmain.c \$(MAP_TARGET) $makefilename \$(INST_ARCHAUTODIR)/extralibs.all -}; - - join '', @m; -} - -# utility method -sub _find_static_libs { - my ($self, $searchdirs) = @_; - # don't use File::Spec here because on Win32 F::F still uses "/" - my $installed_version = join('/', - 'auto', $self->{FULLEXT}, "$self->{BASEEXT}$self->{LIB_EXT}" - ); - my %staticlib21; - require File::Find; - File::Find::find(sub { - if ($File::Find::name =~ m{/auto/share\z}) { - # in a subdir of auto/share, prune because e.g. - # Alien::pkgconfig uses File::ShareDir to put .a files - # there. do not want - $File::Find::prune = 1; - return; - } - - return unless m/\Q$self->{LIB_EXT}\E$/; - - return unless -f 'extralibs.ld'; # this checks is a "proper" XS installation - - # Skip perl's libraries. - return if m/^libperl/ or m/^perl\Q$self->{LIB_EXT}\E$/; - - # Skip purified versions of libraries - # (e.g., DynaLoader_pure_p1_c0_032.a) - return if m/_pure_\w+_\w+_\w+\.\w+$/ and -f "$File::Find::dir/.pure"; - - if( exists $self->{INCLUDE_EXT} ){ - my $found = 0; - - (my $xx = $File::Find::name) =~ s,.*?/auto/,,s; - $xx =~ s,/?$_,,; - $xx =~ s,/,::,g; - - # Throw away anything not explicitly marked for inclusion. - # DynaLoader is implied. - foreach my $incl ((@{$self->{INCLUDE_EXT}},'DynaLoader')){ - if( $xx eq $incl ){ - $found++; - last; - } - } - return unless $found; - } - elsif( exists $self->{EXCLUDE_EXT} ){ - (my $xx = $File::Find::name) =~ s,.*?/auto/,,s; - $xx =~ s,/?$_,,; - $xx =~ s,/,::,g; - - # Throw away anything explicitly marked for exclusion - foreach my $excl (@{$self->{EXCLUDE_EXT}}){ - return if( $xx eq $excl ); - } - } - - # don't include the installed version of this extension. I - # leave this line here, although it is not necessary anymore: - # I patched minimod.PL instead, so that Miniperl.pm won't - # include duplicates - - # Once the patch to minimod.PL is in the distribution, I can - # drop it - return if $File::Find::name =~ m:\Q$installed_version\E\z:; - return if !$self->xs_static_lib_is_xs($_); - use Cwd 'cwd'; - $staticlib21{cwd() . "/" . $_}++; - }, grep( -d $_, map { $self->catdir($_, 'auto') } @{$searchdirs || []}) ); - return \%staticlib21; -} - -=item xs_static_lib_is_xs (o) - -Called by a utility method of makeaperl. Checks whether a given file -is an XS library by seeing whether it defines any symbols starting -with C<boot_>. - -=cut - -sub xs_static_lib_is_xs { - my ($self, $libfile) = @_; - my $devnull = File::Spec->devnull; - return `nm $libfile 2>$devnull` =~ /\bboot_/; -} - -=item makefile (o) - -Defines how to rewrite the Makefile. - -=cut - -sub makefile { - my($self) = shift; - my $m; - # We do not know what target was originally specified so we - # must force a manual rerun to be sure. But as it should only - # happen very rarely it is not a significant problem. - $m = ' -$(OBJECT) : $(FIRST_MAKEFILE) - -' if $self->{OBJECT}; - - my $newer_than_target = $Is{VMS} ? '$(MMS$SOURCE_LIST)' : '$?'; - my $mpl_args = join " ", map qq["$_"], @ARGV; - my $cross = ''; - if (defined $::Cross::platform) { - # Inherited from win32/buildext.pl - $cross = "-MCross=$::Cross::platform "; - } - $m .= sprintf <<'MAKE_FRAG', $newer_than_target, $cross, $mpl_args; -# We take a very conservative approach here, but it's worth it. -# We move Makefile to Makefile.old here to avoid gnu make looping. -$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) - $(NOECHO) $(ECHO) "Makefile out-of-date with respect to %s" - $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." - -$(NOECHO) $(RM_F) $(MAKEFILE_OLD) - -$(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) - - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL) - $(PERLRUN) %sMakefile.PL %s - $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" - $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command. <==" - $(FALSE) - -MAKE_FRAG - - return $m; -} - - -=item maybe_command - -Returns true, if the argument is likely to be a command. - -=cut - -sub maybe_command { - my($self,$file) = @_; - return $file if -x $file && ! -d $file; - return; -} - - -=item needs_linking (o) - -Does this module need linking? Looks into subdirectory objects (see -also has_link_code()) - -=cut - -sub needs_linking { - my($self) = shift; - - my $caller = (caller(0))[3]; - confess("needs_linking called too early") if - $caller =~ /^ExtUtils::MakeMaker::/; - return $self->{NEEDS_LINKING} if defined $self->{NEEDS_LINKING}; - if ($self->has_link_code or $self->{MAKEAPERL}){ - $self->{NEEDS_LINKING} = 1; - return 1; - } - foreach my $child (keys %{$self->{CHILDREN}}) { - if ($self->{CHILDREN}->{$child}->needs_linking) { - $self->{NEEDS_LINKING} = 1; - return 1; - } - } - return $self->{NEEDS_LINKING} = 0; -} - - -=item parse_abstract - -parse a file and return what you think is the ABSTRACT - -=cut - -sub parse_abstract { - my($self,$parsefile) = @_; - my $result; - - local $/ = "\n"; - open(my $fh, '<', $parsefile) or die "Could not open '$parsefile': $!"; - binmode $fh; - my $inpod = 0; - my $pod_encoding; - my $package = $self->{DISTNAME}; - $package =~ s/-/::/g; - while (<$fh>) { - $inpod = /^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod; - next if !$inpod; - s#\r*\n\z##; # handle CRLF input - - if ( /^=encoding\s*(.*)$/i ) { - $pod_encoding = $1; - } - - if ( /^($package(?:\.pm)? \s+ -+ \s+)(.*)/x ) { - $result = $2; - next; - } - next unless $result; - - if ( $result && ( /^\s*$/ || /^\=/ ) ) { - last; - } - $result = join ' ', $result, $_; - } - close $fh; - - if ( $pod_encoding and !( $] < 5.008 or !$Config{useperlio} ) ) { - # Have to wrap in an eval{} for when running under PERL_CORE - # Encode isn't available during build phase and parsing - # ABSTRACT isn't important there - eval { - require Encode; - $result = Encode::decode($pod_encoding, $result); - } - } - - return $result; -} - -=item parse_version - - my $version = MM->parse_version($file); - -Parse a $file and return what $VERSION is set to by the first assignment. -It will return the string "undef" if it can't figure out what $VERSION -is. $VERSION should be for all to see, so C<our $VERSION> or plain $VERSION -are okay, but C<my $VERSION> is not. - -C<<package Foo VERSION>> is also checked for. The first version -declaration found is used, but this may change as it differs from how -Perl does it. - -parse_version() will try to C<use version> before checking for -C<$VERSION> so the following will work. - - $VERSION = qv(1.2.3); - -=cut - -sub parse_version { - my($self,$parsefile) = @_; - my $result; - - local $/ = "\n"; - local $_; - open(my $fh, '<', $parsefile) or die "Could not open '$parsefile': $!"; - my $inpod = 0; - while (<$fh>) { - $inpod = /^=(?!cut)/ ? 1 : /^=cut/ ? 0 : $inpod; - next if $inpod || /^\s*#/; - chop; - next if /^\s*(if|unless|elsif)/; - if ( m{^ \s* package \s+ \w[\w\:\']* \s+ (v?[0-9._]+) \s* (;|\{) }x ) { - local $^W = 0; - $result = $1; - } - elsif ( m{(?<!\\) ([\$*]) (([\w\:\']*) \bVERSION)\b .* (?<![<>=!])\=[^=]}x ) { - $result = $self->get_version($parsefile, $1, $2); - } - else { - next; - } - last if defined $result; - } - close $fh; - - if ( defined $result && $result !~ /^v?[\d_\.]+$/ ) { - require version; - my $normal = eval { version->new( $result ) }; - $result = $normal if defined $normal; - } - $result = "undef" unless defined $result; - return $result; -} - -sub get_version { - my ($self, $parsefile, $sigil, $name) = @_; - my $line = $_; # from the while() loop in parse_version - { - package ExtUtils::MakeMaker::_version; - undef *version; # in case of unexpected version() sub - eval { - require version; - version::->import; - }; - no strict; - local *{$name}; - local $^W = 0; - $line = $1 if $line =~ m{^(.+)}s; - eval($line); ## no critic - return ${$name}; - } -} - -=item pasthru (o) - -Defines the string that is passed to recursive make calls in -subdirectories. The variables like C<PASTHRU_DEFINE> are used in each -level, and passed downwards on the command-line with e.g. the value of -that level's DEFINE. Example: - - # Level 0 has DEFINE = -Dfunky - # This code will define level 0's PASTHRU=PASTHRU_DEFINE="$(DEFINE) - # $(PASTHRU_DEFINE)" - # Level 0's $(CCCMD) will include macros $(DEFINE) and $(PASTHRU_DEFINE) - # So will level 1's, so when level 1 compiles, it will get right values - # And so ad infinitum - -=cut - -sub pasthru { - my($self) = shift; - my(@m); - - my(@pasthru); - my($sep) = $Is{VMS} ? ',' : ''; - $sep .= "\\\n\t"; - - foreach my $key (qw(LIB LIBPERL_A LINKTYPE OPTIMIZE - PREFIX INSTALL_BASE) - ) - { - next unless defined $self->{$key}; - push @pasthru, "$key=\"\$($key)\""; - } - - foreach my $key (qw(DEFINE INC)) { - # default to the make var - my $val = qq{\$($key)}; - # expand within perl if given since need to use quote_literal - # since INC might include space-protecting ""! - chomp($val = $self->{$key}) if defined $self->{$key}; - $val .= " \$(PASTHRU_$key)"; - my $quoted = $self->quote_literal($val); - push @pasthru, qq{PASTHRU_$key=$quoted}; - } - - push @m, "\nPASTHRU = ", join ($sep, @pasthru), "\n"; - join "", @m; -} - -=item perl_script - -Takes one argument, a file name, and returns the file name, if the -argument is likely to be a perl script. On MM_Unix this is true for -any ordinary, readable file. - -=cut - -sub perl_script { - my($self,$file) = @_; - return $file if -r $file && -f _; - return; -} - -=item perldepend (o) - -Defines the dependency from all *.h files that come with the perl -distribution. - -=cut - -sub perldepend { - my($self) = shift; - my(@m); - - my $make_config = $self->cd('$(PERL_SRC)', '$(MAKE) lib/Config.pm'); - - push @m, sprintf <<'MAKE_FRAG', $make_config if $self->{PERL_SRC}; -# Check for unpropogated config.sh changes. Should never happen. -# We do NOT just update config.h because that is not sufficient. -# An out of date config.h is not fatal but complains loudly! -$(PERL_INCDEP)/config.h: $(PERL_SRC)/config.sh - -$(NOECHO) $(ECHO) "Warning: $(PERL_INC)/config.h out of date with $(PERL_SRC)/config.sh"; $(FALSE) - -$(PERL_ARCHLIB)/Config.pm: $(PERL_SRC)/config.sh - $(NOECHO) $(ECHO) "Warning: $(PERL_ARCHLIB)/Config.pm may be out of date with $(PERL_SRC)/config.sh" - %s -MAKE_FRAG - - return join "", @m unless $self->needs_linking; - - if ($self->{OBJECT}) { - # Need to add an object file dependency on the perl headers. - # this is very important for XS modules in perl.git development. - push @m, $self->_perl_header_files_fragment("/"); # Directory separator between $(PERL_INC)/header.h - } - - push @m, join(" ", sort values %{$self->{XS}})." : \$(XSUBPPDEPS)\n" if %{$self->{XS}}; - - return join "\n", @m; -} - - -=item pm_to_blib - -Defines target that copies all files in the hash PM to their -destination and autosplits them. See L<ExtUtils::Install/DESCRIPTION> - -=cut - -sub pm_to_blib { - my $self = shift; - my($autodir) = $self->catdir('$(INST_LIB)','auto'); - my $r = q{ -pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM) -}; - - # VMS will swallow '' and PM_FILTER is often empty. So use q[] - my $pm_to_blib = $self->oneliner(<<CODE, ['-MExtUtils::Install']); -pm_to_blib({\@ARGV}, '$autodir', q[\$(PM_FILTER)], '\$(PERM_DIR)') -CODE - - my @cmds = $self->split_command($pm_to_blib, - map { ($self->quote_literal($_) => $self->quote_literal($self->{PM}->{$_})) } sort keys %{$self->{PM}}); - - $r .= join '', map { "\t\$(NOECHO) $_\n" } @cmds; - $r .= qq{\t\$(NOECHO) \$(TOUCH) pm_to_blib\n}; - - return $r; -} - -# transform dot-separated version string into comma-separated quadruple -# examples: '1.2.3.4.5' => '1,2,3,4' -# '1.2.3' => '1,2,3,0' -sub _ppd_version { - my ($self, $string) = @_; - return join ',', ((split /\./, $string), (0) x 4)[0..3]; -} - -=item ppd - -Defines target that creates a PPD (Perl Package Description) file -for a binary distribution. - -=cut - -sub ppd { - my($self) = @_; - - my $abstract = $self->{ABSTRACT} || ''; - $abstract =~ s/\n/\\n/sg; - $abstract =~ s/</</g; - $abstract =~ s/>/>/g; - - my $author = join(', ',@{ ref $self->{AUTHOR} eq 'ARRAY' ? $self->{AUTHOR} : [ $self->{AUTHOR} || '']}); - $author =~ s/</</g; - $author =~ s/>/>/g; - - my $ppd_file = "$self->{DISTNAME}.ppd"; - - my @ppd_chunks = qq(<SOFTPKG NAME="$self->{DISTNAME}" VERSION="$self->{VERSION}">\n); - - push @ppd_chunks, sprintf <<'PPD_HTML', $abstract, $author; - <ABSTRACT>%s</ABSTRACT> - <AUTHOR>%s</AUTHOR> -PPD_HTML - - push @ppd_chunks, " <IMPLEMENTATION>\n"; - if ( $self->{MIN_PERL_VERSION} ) { - my $min_perl_version = $self->_ppd_version($self->{MIN_PERL_VERSION}); - push @ppd_chunks, sprintf <<'PPD_PERLVERS', $min_perl_version; - <PERLCORE VERSION="%s" /> -PPD_PERLVERS - - } - - # Don't add "perl" to requires. perl dependencies are - # handles by ARCHITECTURE. - my %prereqs = %{$self->{PREREQ_PM}}; - delete $prereqs{perl}; - - # Build up REQUIRE - foreach my $prereq (sort keys %prereqs) { - my $name = $prereq; - $name .= '::' unless $name =~ /::/; - my $version = $prereqs{$prereq}; - - my %attrs = ( NAME => $name ); - $attrs{VERSION} = $version if $version; - my $attrs = join " ", map { qq[$_="$attrs{$_}"] } sort keys %attrs; - push @ppd_chunks, qq( <REQUIRE $attrs />\n); - } - - my $archname = $Config{archname}; - if ($] >= 5.008) { - # archname did not change from 5.6 to 5.8, but those versions may - # not be not binary compatible so now we append the part of the - # version that changes when binary compatibility may change - $archname .= "-$Config{PERL_REVISION}.$Config{PERL_VERSION}"; - } - push @ppd_chunks, sprintf <<'PPD_OUT', $archname; - <ARCHITECTURE NAME="%s" /> -PPD_OUT - - if ($self->{PPM_INSTALL_SCRIPT}) { - if ($self->{PPM_INSTALL_EXEC}) { - push @ppd_chunks, sprintf qq{ <INSTALL EXEC="%s">%s</INSTALL>\n}, - $self->{PPM_INSTALL_EXEC}, $self->{PPM_INSTALL_SCRIPT}; - } - else { - push @ppd_chunks, sprintf qq{ <INSTALL>%s</INSTALL>\n}, - $self->{PPM_INSTALL_SCRIPT}; - } - } - - if ($self->{PPM_UNINSTALL_SCRIPT}) { - if ($self->{PPM_UNINSTALL_EXEC}) { - push @ppd_chunks, sprintf qq{ <UNINSTALL EXEC="%s">%s</UNINSTALL>\n}, - $self->{PPM_UNINSTALL_EXEC}, $self->{PPM_UNINSTALL_SCRIPT}; - } - else { - push @ppd_chunks, sprintf qq{ <UNINSTALL>%s</UNINSTALL>\n}, - $self->{PPM_UNINSTALL_SCRIPT}; - } - } - - my ($bin_location) = $self->{BINARY_LOCATION} || ''; - $bin_location =~ s/\\/\\\\/g; - - push @ppd_chunks, sprintf <<'PPD_XML', $bin_location; - <CODEBASE HREF="%s" /> - </IMPLEMENTATION> -</SOFTPKG> -PPD_XML - - my @ppd_cmds = $self->stashmeta(join('', @ppd_chunks), $ppd_file); - - return sprintf <<'PPD_OUT', join "\n\t", @ppd_cmds; -# Creates a PPD (Perl Package Description) for a binary distribution. -ppd : - %s -PPD_OUT - -} - -=item prefixify - - $MM->prefixify($var, $prefix, $new_prefix, $default); - -Using either $MM->{uc $var} || $Config{lc $var}, it will attempt to -replace it's $prefix with a $new_prefix. - -Should the $prefix fail to match I<AND> a PREFIX was given as an -argument to WriteMakefile() it will set it to the $new_prefix + -$default. This is for systems whose file layouts don't neatly fit into -our ideas of prefixes. - -This is for heuristics which attempt to create directory structures -that mirror those of the installed perl. - -For example: - - $MM->prefixify('installman1dir', '/usr', '/home/foo', 'man/man1'); - -this will attempt to remove '/usr' from the front of the -$MM->{INSTALLMAN1DIR} path (initializing it to $Config{installman1dir} -if necessary) and replace it with '/home/foo'. If this fails it will -simply use '/home/foo/man/man1'. - -=cut - -sub prefixify { - my($self,$var,$sprefix,$rprefix,$default) = @_; - - my $path = $self->{uc $var} || - $Config_Override{lc $var} || $Config{lc $var} || ''; - - $rprefix .= '/' if $sprefix =~ m|/$|; - - warn " prefixify $var => $path\n" if $Verbose >= 2; - warn " from $sprefix to $rprefix\n" if $Verbose >= 2; - - if( $self->{ARGS}{PREFIX} && - $path !~ s{^\Q$sprefix\E\b}{$rprefix}s ) - { - - warn " cannot prefix, using default.\n" if $Verbose >= 2; - warn " no default!\n" if !$default && $Verbose >= 2; - - $path = $self->catdir($rprefix, $default) if $default; - } - - print " now $path\n" if $Verbose >= 2; - return $self->{uc $var} = $path; -} - - -=item processPL (o) - -Defines targets to run *.PL files. - -=cut - -sub processPL { - my $self = shift; - my $pl_files = $self->{PL_FILES}; - - return "" unless $pl_files; - - my $m = ''; - foreach my $plfile (sort keys %$pl_files) { - my $list = ref($pl_files->{$plfile}) - ? $pl_files->{$plfile} - : [$pl_files->{$plfile}]; - - foreach my $target (@$list) { - if( $Is{VMS} ) { - $plfile = vmsify($self->eliminate_macros($plfile)); - $target = vmsify($self->eliminate_macros($target)); - } - - # Normally a .PL file runs AFTER pm_to_blib so it can have - # blib in its @INC and load the just built modules. BUT if - # the generated module is something in $(TO_INST_PM) which - # pm_to_blib depends on then it can't depend on pm_to_blib - # else we have a dependency loop. - my $pm_dep; - my $perlrun; - if( defined $self->{PM}{$target} ) { - $pm_dep = ''; - $perlrun = 'PERLRUN'; - } - else { - $pm_dep = 'pm_to_blib'; - $perlrun = 'PERLRUNINST'; - } - - $m .= <<MAKE_FRAG; - -pure_all :: $target - \$(NOECHO) \$(NOOP) - -$target :: $plfile $pm_dep - \$($perlrun) $plfile $target -MAKE_FRAG - - } - } - - return $m; -} - -=item specify_shell - -Specify SHELL if needed - not done on Unix. - -=cut - -sub specify_shell { - return ''; -} - -=item quote_paren - -Backslashes parentheses C<()> in command line arguments. -Doesn't handle recursive Makefile C<$(...)> constructs, -but handles simple ones. - -=cut - -sub quote_paren { - my $arg = shift; - $arg =~ s{\$\((.+?)\)}{\$\\\\($1\\\\)}g; # protect $(...) - $arg =~ s{(?<!\\)([()])}{\\$1}g; # quote unprotected - $arg =~ s{\$\\\\\((.+?)\\\\\)}{\$($1)}g; # unprotect $(...) - return $arg; -} - -=item replace_manpage_separator - - my $man_name = $MM->replace_manpage_separator($file_path); - -Takes the name of a package, which may be a nested package, in the -form 'Foo/Bar.pm' and replaces the slash with C<::> or something else -safe for a man page file name. Returns the replacement. - -=cut - -sub replace_manpage_separator { - my($self,$man) = @_; - - $man =~ s,/+,::,g; - return $man; -} - - -=item cd - -=cut - -sub cd { - my($self, $dir, @cmds) = @_; - - # No leading tab and no trailing newline makes for easier embedding - my $make_frag = join "\n\t", map { "cd $dir && $_" } @cmds; - - return $make_frag; -} - -=item oneliner - -=cut - -sub oneliner { - my($self, $cmd, $switches) = @_; - $switches = [] unless defined $switches; - - # Strip leading and trailing newlines - $cmd =~ s{^\n+}{}; - $cmd =~ s{\n+$}{}; - - my @cmds = split /\n/, $cmd; - $cmd = join " \n\t -e ", map $self->quote_literal($_), @cmds; - $cmd = $self->escape_newlines($cmd); - - $switches = join ' ', @$switches; - - return qq{\$(ABSPERLRUN) $switches -e $cmd --}; -} - - -=item quote_literal - -Quotes macro literal value suitable for being used on a command line so -that when expanded by make, will be received by command as given to -this method: - - my $quoted = $mm->quote_literal(q{it isn't}); - # returns: - # 'it isn'\''t' - print MAKEFILE "target:\n\techo $quoted\n"; - # when run "make target", will output: - # it isn't - -=cut - -sub quote_literal { - my($self, $text, $opts) = @_; - $opts->{allow_variables} = 1 unless defined $opts->{allow_variables}; - - # Quote single quotes - $text =~ s{'}{'\\''}g; - - $text = $opts->{allow_variables} - ? $self->escape_dollarsigns($text) : $self->escape_all_dollarsigns($text); - - return "'$text'"; -} - - -=item escape_newlines - -=cut - -sub escape_newlines { - my($self, $text) = @_; - - $text =~ s{\n}{\\\n}g; - - return $text; -} - - -=item max_exec_len - -Using POSIX::ARG_MAX. Otherwise falling back to 4096. - -=cut - -sub max_exec_len { - my $self = shift; - - if (!defined $self->{_MAX_EXEC_LEN}) { - if (my $arg_max = eval { require POSIX; &POSIX::ARG_MAX }) { - $self->{_MAX_EXEC_LEN} = $arg_max; - } - else { # POSIX minimum exec size - $self->{_MAX_EXEC_LEN} = 4096; - } - } - - return $self->{_MAX_EXEC_LEN}; -} - - -=item static (o) - -Defines the static target. - -=cut - -sub static { -# --- Static Loading Sections --- - - my($self) = shift; - ' -## $(INST_PM) has been moved to the all: target. -## It remains here for awhile to allow for old usage: "make static" -static :: $(FIRST_MAKEFILE) $(INST_STATIC) - $(NOECHO) $(NOOP) -'; -} - -sub static_lib { - my($self) = @_; - return '' unless $self->has_link_code; - my(@m); - my @libs; - if ($self->{XSMULTI}) { - for my $ext ($self->_xs_list_basenames) { - my ($v, $d, $f) = File::Spec->splitpath($ext); - my @d = File::Spec->splitdir($d); - shift @d if $d[0] eq 'lib'; - my $instdir = $self->catdir('$(INST_ARCHLIB)', 'auto', @d, $f); - my $instfile = $self->catfile($instdir, "$f\$(LIB_EXT)"); - my $objfile = "$ext\$(OBJ_EXT)"; - push @libs, [ $objfile, $instfile, $instdir ]; - } - } else { - @libs = ([ qw($(OBJECT) $(INST_STATIC) $(INST_ARCHAUTODIR)) ]); - } - push @m, map { $self->xs_make_static_lib(@$_); } @libs; - join "\n", @m; -} - -=item xs_make_static_lib - -Defines the recipes for the C<static_lib> section. - -=cut - -sub xs_make_static_lib { - my ($self, $from, $to, $todir) = @_; - my @m = sprintf '%s: %s $(MYEXTLIB) %s$(DFSEP).exists'."\n", $to, $from, $todir; - push @m, "\t\$(RM_F) \"\$\@\"\n"; - push @m, $self->static_lib_fixtures; - push @m, $self->static_lib_pure_cmd($from); - push @m, "\t\$(CHMOD) \$(PERM_RWX) \$\@\n"; - push @m, $self->static_lib_closures($todir); - join '', @m; -} - -=item static_lib_closures - -Records C<$(EXTRALIBS)> in F<extralibs.ld> and F<$(PERL_SRC)/ext.libs>. - -=cut - -sub static_lib_closures { - my ($self, $todir) = @_; - my @m = sprintf <<'MAKE_FRAG', $todir; - $(NOECHO) $(ECHO) "$(EXTRALIBS)" > %s$(DFSEP)extralibs.ld -MAKE_FRAG - # Old mechanism - still available: - push @m, <<'MAKE_FRAG' if $self->{PERL_SRC} && $self->{EXTRALIBS}; - $(NOECHO) $(ECHO) "$(EXTRALIBS)" >> $(PERL_SRC)$(DFSEP)ext.libs -MAKE_FRAG - @m; -} - -=item static_lib_fixtures - -Handles copying C<$(MYEXTLIB)> as starter for final static library that -then gets added to. - -=cut - -sub static_lib_fixtures { - my ($self) = @_; - # If this extension has its own library (eg SDBM_File) - # then copy that to $(INST_STATIC) and add $(OBJECT) into it. - return unless $self->{MYEXTLIB}; - "\t\$(CP) \$(MYEXTLIB) \"\$\@\"\n"; -} - -=item static_lib_pure_cmd - -Defines how to run the archive utility. - -=cut - -sub static_lib_pure_cmd { - my ($self, $from) = @_; - my $ar; - if (exists $self->{FULL_AR} && -x $self->{FULL_AR}) { - # Prefer the absolute pathed ar if available so that PATH - # doesn't confuse us. Perl itself is built with the full_ar. - $ar = 'FULL_AR'; - } else { - $ar = 'AR'; - } - sprintf <<'MAKE_FRAG', $ar, $from; - $(%s) $(AR_STATIC_ARGS) "$@" %s - $(RANLIB) "$@" -MAKE_FRAG -} - -=item staticmake (o) - -Calls makeaperl. - -=cut - -sub staticmake { - my($self, %attribs) = @_; - my(@static); - - my(@searchdirs)=($self->{PERL_ARCHLIB}, $self->{SITEARCHEXP}, $self->{INST_ARCHLIB}); - - # And as it's not yet built, we add the current extension - # but only if it has some C code (or XS code, which implies C code) - if (@{$self->{C}}) { - @static = $self->catfile($self->{INST_ARCHLIB}, - "auto", - $self->{FULLEXT}, - "$self->{BASEEXT}$self->{LIB_EXT}" - ); - } - - # Either we determine now, which libraries we will produce in the - # subdirectories or we do it at runtime of the make. - - # We could ask all subdir objects, but I cannot imagine, why it - # would be necessary. - - # Instead we determine all libraries for the new perl at - # runtime. - my(@perlinc) = ($self->{INST_ARCHLIB}, $self->{INST_LIB}, $self->{PERL_ARCHLIB}, $self->{PERL_LIB}); - - $self->makeaperl(MAKE => $self->{MAKEFILE}, - DIRS => \@searchdirs, - STAT => \@static, - INCL => \@perlinc, - TARGET => $self->{MAP_TARGET}, - TMP => "", - LIBPERL => $self->{LIBPERL_A} - ); -} - -=item subdir_x (o) - -Helper subroutine for subdirs - -=cut - -sub subdir_x { - my($self, $subdir) = @_; - - my $subdir_cmd = $self->cd($subdir, - '$(MAKE) $(USEMAKEFILE) $(FIRST_MAKEFILE) all $(PASTHRU)' - ); - return sprintf <<'EOT', $subdir_cmd; - -subdirs :: - $(NOECHO) %s -EOT - -} - -=item subdirs (o) - -Defines targets to process subdirectories. - -=cut - -sub subdirs { -# --- Sub-directory Sections --- - my($self) = shift; - my(@m); - # This method provides a mechanism to automatically deal with - # subdirectories containing further Makefile.PL scripts. - # It calls the subdir_x() method for each subdirectory. - foreach my $dir (@{$self->{DIR}}){ - push @m, $self->subdir_x($dir); -#### print "Including $dir subdirectory\n"; - } - if (@m){ - unshift @m, <<'EOF'; - -# The default clean, realclean and test targets in this Makefile -# have automatically been given entries for each subdir. - -EOF - } else { - push(@m, "\n# none") - } - join('',@m); -} - -=item test (o) - -Defines the test targets. - -=cut - -sub test { - my($self, %attribs) = @_; - my $tests = $attribs{TESTS} || ''; - if (!$tests && -d 't' && defined $attribs{RECURSIVE_TEST_FILES}) { - $tests = $self->find_tests_recursive; - } - elsif (!$tests && -d 't') { - $tests = $self->find_tests; - } - # have to do this because nmake is broken - $tests =~ s!/!\\!g if $self->is_make_type('nmake'); - # note: 'test.pl' name is also hardcoded in init_dirscan() - my @m; - my $default_testtype = $Config{usedl} ? 'dynamic' : 'static'; - push @m, <<EOF; -TEST_VERBOSE=0 -TEST_TYPE=test_\$(LINKTYPE) -TEST_FILE = test.pl -TEST_FILES = $tests -TESTDB_SW = -d - -testdb :: testdb_\$(LINKTYPE) - \$(NOECHO) \$(NOOP) - -test :: \$(TEST_TYPE) - \$(NOECHO) \$(NOOP) - -# Occasionally we may face this degenerate target: -test_ : test_$default_testtype - \$(NOECHO) \$(NOOP) - -EOF - - for my $linktype (qw(dynamic static)) { - my $directdeps = join ' ', grep !$self->{SKIPHASH}{$_}, $linktype, "pure_all"; # no depend on a linktype if SKIPped - push @m, "subdirs-test_$linktype :: $directdeps\n"; - foreach my $dir (@{ $self->{DIR} }) { - my $test = $self->cd($dir, "\$(MAKE) test_$linktype \$(PASTHRU)"); - push @m, "\t\$(NOECHO) $test\n"; - } - push @m, "\n"; - if ($tests or -f "test.pl") { - for my $testspec ([ '', '' ], [ 'db', ' $(TESTDB_SW)' ]) { - my ($db, $switch) = @$testspec; - my ($command, $deps); - # if testdb, build all but don't test all - $deps = $db eq 'db' ? $directdeps : "subdirs-test_$linktype"; - if ($linktype eq 'static' and $self->needs_linking) { - my $target = File::Spec->rel2abs('$(MAP_TARGET)'); - $command = qq{"$target" \$(MAP_PERLINC)}; - $deps .= ' $(MAP_TARGET)'; - } else { - $command = '$(FULLPERLRUN)' . $switch; - } - push @m, "test${db}_$linktype :: $deps\n"; - if ($db eq 'db') { - push @m, $self->test_via_script($command, '$(TEST_FILE)') - } else { - push @m, $self->test_via_script($command, '$(TEST_FILE)') - if -f "test.pl"; - push @m, $self->test_via_harness($command, '$(TEST_FILES)') - if $tests; - } - push @m, "\n"; - } - } else { - push @m, _sprintf562 <<'EOF', $linktype; -testdb_%1$s test_%1$s :: subdirs-test_%1$s - $(NOECHO) $(ECHO) 'No tests defined for $(NAME) extension.' - -EOF - } - } - - join "", @m; -} - -=item test_via_harness (override) - -For some reason which I forget, Unix machines like to have -PERL_DL_NONLAZY set for tests. - -=cut - -sub test_via_harness { - my($self, $perl, $tests) = @_; - return $self->SUPER::test_via_harness("PERL_DL_NONLAZY=1 $perl", $tests); -} - -=item test_via_script (override) - -Again, the PERL_DL_NONLAZY thing. - -=cut - -sub test_via_script { - my($self, $perl, $script) = @_; - return $self->SUPER::test_via_script("PERL_DL_NONLAZY=1 $perl", $script); -} - - -=item tool_xsubpp (o) - -Determines typemaps, xsubpp version, prototype behaviour. - -=cut - -sub tool_xsubpp { - my($self) = shift; - return "" unless $self->needs_linking; - - my $xsdir; - my @xsubpp_dirs = @INC; - - # Make sure we pick up the new xsubpp if we're building perl. - unshift @xsubpp_dirs, $self->{PERL_LIB} if $self->{PERL_CORE}; - - my $foundxsubpp = 0; - foreach my $dir (@xsubpp_dirs) { - $xsdir = $self->catdir($dir, 'ExtUtils'); - if( -r $self->catfile($xsdir, "xsubpp") ) { - $foundxsubpp = 1; - last; - } - } - die "ExtUtils::MM_Unix::tool_xsubpp : Can't find xsubpp" if !$foundxsubpp; - - my $tmdir = $self->catdir($self->{PERL_LIB},"ExtUtils"); - my(@tmdeps) = $self->catfile($tmdir,'typemap'); - if( $self->{TYPEMAPS} ){ - foreach my $typemap (@{$self->{TYPEMAPS}}){ - if( ! -f $typemap ) { - warn "Typemap $typemap not found.\n"; - } - else { - $typemap = vmsify($typemap) if $Is{VMS}; - push(@tmdeps, $typemap); - } - } - } - push(@tmdeps, "typemap") if -f "typemap"; - # absolutised because with deep-located typemaps, eg "lib/XS/typemap", - # if xsubpp is called from top level with - # $(XSUBPP) ... -typemap "lib/XS/typemap" "lib/XS/Test.xs" - # it says: - # Can't find lib/XS/type map in (fulldir)/lib/XS - # because ExtUtils::ParseXS::process_file chdir's to .xs file's - # location. This is the only way to get all specified typemaps used, - # wherever located. - my @tmargs = map { '-typemap '.$self->quote_literal(File::Spec->rel2abs($_)) } @tmdeps; - $_ = $self->quote_dep($_) for @tmdeps; - if( exists $self->{XSOPT} ){ - unshift( @tmargs, $self->{XSOPT} ); - } - - if ($Is{VMS} && - $Config{'ldflags'} && - $Config{'ldflags'} =~ m!/Debug!i && - (!exists($self->{XSOPT}) || $self->{XSOPT} !~ /linenumbers/) - ) - { - unshift(@tmargs,'-nolinenumbers'); - } - - - $self->{XSPROTOARG} = "" unless defined $self->{XSPROTOARG}; - my $xsdirdep = $self->quote_dep($xsdir); - # -dep for use when dependency not command - - return qq{ -XSUBPPDIR = $xsdir -XSUBPP = "\$(XSUBPPDIR)\$(DFSEP)xsubpp" -XSUBPPRUN = \$(PERLRUN) \$(XSUBPP) -XSPROTOARG = $self->{XSPROTOARG} -XSUBPPDEPS = @tmdeps $xsdirdep\$(DFSEP)xsubpp -XSUBPPARGS = @tmargs -XSUBPP_EXTRA_ARGS = -}; -} - - -=item all_target - -Build man pages, too - -=cut - -sub all_target { - my $self = shift; - - return <<'MAKE_EXT'; -all :: pure_all manifypods - $(NOECHO) $(NOOP) -MAKE_EXT -} - -=item top_targets (o) - -Defines the targets all, subdirs, config, and O_FILES - -=cut - -sub top_targets { -# --- Target Sections --- - - my($self) = shift; - my(@m); - - push @m, $self->all_target, "\n" unless $self->{SKIPHASH}{'all'}; - - push @m, sprintf <<'EOF'; -pure_all :: config pm_to_blib subdirs linkext - $(NOECHO) $(NOOP) - - $(NOECHO) $(NOOP) - -subdirs :: $(MYEXTLIB) - $(NOECHO) $(NOOP) - -config :: $(FIRST_MAKEFILE) blibdirs - $(NOECHO) $(NOOP) -EOF - - push @m, ' -$(O_FILES) : $(H_FILES) -' if @{$self->{O_FILES} || []} && @{$self->{H} || []}; - - push @m, q{ -help : - perldoc ExtUtils::MakeMaker -}; - - join('',@m); -} - -=item writedoc - -Obsolete, deprecated method. Not used since Version 5.21. - -=cut - -sub writedoc { -# --- perllocal.pod section --- - my($self,$what,$name,@attribs)=@_; - my $time = gmtime($ENV{SOURCE_DATE_EPOCH} || time); - print "=head2 $time: $what C<$name>\n\n=over 4\n\n=item *\n\n"; - print join "\n\n=item *\n\n", map("C<$_>",@attribs); - print "\n\n=back\n\n"; -} - -=item xs_c (o) - -Defines the suffix rules to compile XS files to C. - -=cut - -sub xs_c { - my($self) = shift; - return '' unless $self->needs_linking(); - ' -.xs.c: - $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(XSUBPP_EXTRA_ARGS) $*.xs > $*.xsc - $(MV) $*.xsc $*.c -'; -} - -=item xs_cpp (o) - -Defines the suffix rules to compile XS files to C++. - -=cut - -sub xs_cpp { - my($self) = shift; - return '' unless $self->needs_linking(); - ' -.xs.cpp: - $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc - $(MV) $*.xsc $*.cpp -'; -} - -=item xs_o (o) - -Defines suffix rules to go from XS to object files directly. This was -originally only intended for broken make implementations, but is now -necessary for per-XS file under C<XSMULTI>, since each XS file might -have an individual C<$(VERSION)>. - -=cut - -sub xs_o { - my ($self) = @_; - return '' unless $self->needs_linking(); - my $m_o = $self->{XSMULTI} ? $self->xs_obj_opt('$*$(OBJ_EXT)') : ''; - my $frag = ''; - # dmake makes noise about ambiguous rule - $frag .= sprintf <<'EOF', $m_o unless $self->is_make_type('dmake'); -.xs$(OBJ_EXT) : - $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc - $(MV) $*.xsc $*.c - $(CCCMD) $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) $(DEFINE) $*.c %s -EOF - if ($self->{XSMULTI}) { - for my $ext ($self->_xs_list_basenames) { - my $pmfile = "$ext.pm"; - croak "$ext.xs has no matching $pmfile: $!" unless -f $pmfile; - my $version = $self->parse_version($pmfile); - my $cccmd = $self->{CONST_CCCMD}; - $cccmd =~ s/^\s*CCCMD\s*=\s*//; - $cccmd =~ s/\$\(DEFINE_VERSION\)/-DVERSION=\\"$version\\"/; - $cccmd =~ s/\$\(XS_DEFINE_VERSION\)/-DXS_VERSION=\\"$version\\"/; - $self->_xsbuild_replace_macro($cccmd, 'xs', $ext, 'INC'); - my $define = '$(DEFINE)'; - $self->_xsbuild_replace_macro($define, 'xs', $ext, 'DEFINE'); - # 1 2 3 4 - $frag .= _sprintf562 <<'EOF', $ext, $cccmd, $m_o, $define; - -%1$s$(OBJ_EXT): %1$s.xs - $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $*.xs > $*.xsc - $(MV) $*.xsc $*.c - %2$s $(CCCDLFLAGS) "-I$(PERL_INC)" $(PASTHRU_DEFINE) %4$s $*.c %3$s -EOF - } - } - $frag; -} - -# param gets modified -sub _xsbuild_replace_macro { - my ($self, undef, $xstype, $ext, $varname) = @_; - my $value = $self->_xsbuild_value($xstype, $ext, $varname); - return unless defined $value; - $_[1] =~ s/\$\($varname\)/$value/; -} - -sub _xsbuild_value { - my ($self, $xstype, $ext, $varname) = @_; - return $self->{XSBUILD}{$xstype}{$ext}{$varname} - if $self->{XSBUILD}{$xstype}{$ext}{$varname}; - return $self->{XSBUILD}{$xstype}{all}{$varname} - if $self->{XSBUILD}{$xstype}{all}{$varname}; - (); -} - -1; - -=back - -=head1 SEE ALSO - -L<ExtUtils::MakeMaker> - -=cut - -__END__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_VMS.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_VMS.pm deleted file mode 100644 index b6fbccfe..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_VMS.pm +++ /dev/null @@ -1,2280 +0,0 @@ -package ExtUtils::MM_VMS; - -use strict; - -use ExtUtils::MakeMaker::Config; -require Exporter; - -BEGIN { - # so we can compile the thing on non-VMS platforms. - if( $^O eq 'VMS' ) { - require VMS::Filespec; - VMS::Filespec->import; - } -} - -use File::Basename; - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -require ExtUtils::MM_Any; -require ExtUtils::MM_Unix; -our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix ); - -use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562); -our $Revision = $ExtUtils::MakeMaker::Revision; - - -=head1 NAME - -ExtUtils::MM_VMS - methods to override UN*X behaviour in ExtUtils::MakeMaker - -=head1 SYNOPSIS - - Do not use this directly. - Instead, use ExtUtils::MM and it will figure out which MM_* - class to use for you. - -=head1 DESCRIPTION - -See ExtUtils::MM_Unix for a documentation of the methods provided -there. This package overrides the implementation of these methods, not -the semantics. - -=head2 Methods always loaded - -=over 4 - -=item wraplist - -Converts a list into a string wrapped at approximately 80 columns. - -=cut - -sub wraplist { - my($self) = shift; - my($line,$hlen) = ('',0); - - foreach my $word (@_) { - # Perl bug -- seems to occasionally insert extra elements when - # traversing array (scalar(@array) doesn't show them, but - # foreach(@array) does) (5.00307) - next unless $word =~ /\w/; - $line .= ' ' if length($line); - if ($hlen > 80) { $line .= "\\\n\t"; $hlen = 0; } - $line .= $word; - $hlen += length($word) + 2; - } - $line; -} - - -# This isn't really an override. It's just here because ExtUtils::MM_VMS -# appears in @MM::ISA before ExtUtils::Liblist::Kid, so if there isn't an ext() -# in MM_VMS, then AUTOLOAD is called, and bad things happen. So, we just -# mimic inheritance here and hand off to ExtUtils::Liblist::Kid. -# XXX This hackery will die soon. --Schwern -sub ext { - require ExtUtils::Liblist::Kid; - goto &ExtUtils::Liblist::Kid::ext; -} - -=back - -=head2 Methods - -Those methods which override default MM_Unix methods are marked -"(override)", while methods unique to MM_VMS are marked "(specific)". -For overridden methods, documentation is limited to an explanation -of why this method overrides the MM_Unix method; see the ExtUtils::MM_Unix -documentation for more details. - -=over 4 - -=item guess_name (override) - -Try to determine name of extension being built. We begin with the name -of the current directory. Since VMS filenames are case-insensitive, -however, we look for a F<.pm> file whose name matches that of the current -directory (presumably the 'main' F<.pm> file for this extension), and try -to find a C<package> statement from which to obtain the Mixed::Case -package name. - -=cut - -sub guess_name { - my($self) = @_; - my($defname,$defpm,@pm,%xs); - local *PM; - - $defname = basename(fileify($ENV{'DEFAULT'})); - $defname =~ s![\d\-_]*\.dir.*$!!; # Clip off .dir;1 suffix, and package version - $defpm = $defname; - # Fallback in case for some reason a user has copied the files for an - # extension into a working directory whose name doesn't reflect the - # extension's name. We'll use the name of a unique .pm file, or the - # first .pm file with a matching .xs file. - if (not -e "${defpm}.pm") { - @pm = glob('*.pm'); - s/.pm$// for @pm; - if (@pm == 1) { ($defpm = $pm[0]) =~ s/.pm$//; } - elsif (@pm) { - %xs = map { s/.xs$//; ($_,1) } glob('*.xs'); ## no critic - if (keys %xs) { - foreach my $pm (@pm) { - $defpm = $pm, last if exists $xs{$pm}; - } - } - } - } - if (open(my $pm, '<', "${defpm}.pm")){ - while (<$pm>) { - if (/^\s*package\s+([^;]+)/i) { - $defname = $1; - last; - } - } - print "Warning (non-fatal): Couldn't find package name in ${defpm}.pm;\n\t", - "defaulting package name to $defname\n" - if eof($pm); - close $pm; - } - else { - print "Warning (non-fatal): Couldn't find ${defpm}.pm;\n\t", - "defaulting package name to $defname\n"; - } - $defname =~ s#[\d.\-_]+$##; - $defname; -} - -=item find_perl (override) - -Use VMS file specification syntax and CLI commands to find and -invoke Perl images. - -=cut - -sub find_perl { - my($self, $ver, $names, $dirs, $trace) = @_; - my($vmsfile,@sdirs,@snames,@cand); - my($rslt); - my($inabs) = 0; - local *TCF; - - if( $self->{PERL_CORE} ) { - # Check in relative directories first, so we pick up the current - # version of Perl if we're running MakeMaker as part of the main build. - @sdirs = sort { my($absa) = $self->file_name_is_absolute($a); - my($absb) = $self->file_name_is_absolute($b); - if ($absa && $absb) { return $a cmp $b } - else { return $absa ? 1 : ($absb ? -1 : ($a cmp $b)); } - } @$dirs; - # Check miniperl before perl, and check names likely to contain - # version numbers before "generic" names, so we pick up an - # executable that's less likely to be from an old installation. - @snames = sort { my($ba) = $a =~ m!([^:>\]/]+)$!; # basename - my($bb) = $b =~ m!([^:>\]/]+)$!; - my($ahasdir) = (length($a) - length($ba) > 0); - my($bhasdir) = (length($b) - length($bb) > 0); - if ($ahasdir and not $bhasdir) { return 1; } - elsif ($bhasdir and not $ahasdir) { return -1; } - else { $bb =~ /\d/ <=> $ba =~ /\d/ - or substr($ba,0,1) cmp substr($bb,0,1) - or length($bb) <=> length($ba) } } @$names; - } - else { - @sdirs = @$dirs; - @snames = @$names; - } - - # Image names containing Perl version use '_' instead of '.' under VMS - s/\.(\d+)$/_$1/ for @snames; - if ($trace >= 2){ - print "Looking for perl $ver by these names:\n"; - print "\t@snames,\n"; - print "in these dirs:\n"; - print "\t@sdirs\n"; - } - foreach my $dir (@sdirs){ - next unless defined $dir; # $self->{PERL_SRC} may be undefined - $inabs++ if $self->file_name_is_absolute($dir); - if ($inabs == 1) { - # We've covered relative dirs; everything else is an absolute - # dir (probably an installed location). First, we'll try - # potential command names, to see whether we can avoid a long - # MCR expression. - foreach my $name (@snames) { - push(@cand,$name) if $name =~ /^[\w\-\$]+$/; - } - $inabs++; # Should happen above in next $dir, but just in case... - } - foreach my $name (@snames){ - push @cand, ($name !~ m![/:>\]]!) ? $self->catfile($dir,$name) - : $self->fixpath($name,0); - } - } - foreach my $name (@cand) { - print "Checking $name\n" if $trace >= 2; - # If it looks like a potential command, try it without the MCR - if ($name =~ /^[\w\-\$]+$/) { - open(my $tcf, ">", "temp_mmvms.com") - or die('unable to open temp file'); - print $tcf "\$ set message/nofacil/nosever/noident/notext\n"; - print $tcf "\$ $name -e \"require $ver; print \"\"VER_OK\\n\"\"\"\n"; - close $tcf; - $rslt = `\@temp_mmvms.com` ; - unlink('temp_mmvms.com'); - if ($rslt =~ /VER_OK/) { - print "Using PERL=$name\n" if $trace; - return $name; - } - } - next unless $vmsfile = $self->maybe_command($name); - $vmsfile =~ s/;[\d\-]*$//; # Clip off version number; we can use a newer version as well - print "Executing $vmsfile\n" if ($trace >= 2); - open(my $tcf, '>', "temp_mmvms.com") - or die('unable to open temp file'); - print $tcf "\$ set message/nofacil/nosever/noident/notext\n"; - print $tcf "\$ mcr $vmsfile -e \"require $ver; print \"\"VER_OK\\n\"\"\" \n"; - close $tcf; - $rslt = `\@temp_mmvms.com`; - unlink('temp_mmvms.com'); - if ($rslt =~ /VER_OK/) { - print "Using PERL=MCR $vmsfile\n" if $trace; - return "MCR $vmsfile"; - } - } - print "Unable to find a perl $ver (by these names: @$names, in these dirs: @$dirs)\n"; - 0; # false and not empty -} - -=item _fixin_replace_shebang (override) - -Helper routine for MM->fixin(), overridden because there's no such thing as an -actual shebang line that will be interpreted by the shell, so we just prepend -$Config{startperl} and preserve the shebang line argument for any switches it -may contain. - -=cut - -sub _fixin_replace_shebang { - my ( $self, $file, $line ) = @_; - - my ( undef, $arg ) = split ' ', $line, 2; - - return $Config{startperl} . "\n" . $Config{sharpbang} . "perl $arg\n"; -} - -=item maybe_command (override) - -Follows VMS naming conventions for executable files. -If the name passed in doesn't exactly match an executable file, -appends F<.Exe> (or equivalent) to check for executable image, and F<.Com> -to check for DCL procedure. If this fails, checks directories in DCL$PATH -and finally F<Sys$System:> for an executable file having the name specified, -with or without the F<.Exe>-equivalent suffix. - -=cut - -sub maybe_command { - my($self,$file) = @_; - return $file if -x $file && ! -d _; - my(@dirs) = (''); - my(@exts) = ('',$Config{'exe_ext'},'.exe','.com'); - - if ($file !~ m![/:>\]]!) { - for (my $i = 0; defined $ENV{"DCL\$PATH;$i"}; $i++) { - my $dir = $ENV{"DCL\$PATH;$i"}; - $dir .= ':' unless $dir =~ m%[\]:]$%; - push(@dirs,$dir); - } - push(@dirs,'Sys$System:'); - foreach my $dir (@dirs) { - my $sysfile = "$dir$file"; - foreach my $ext (@exts) { - return $file if -x "$sysfile$ext" && ! -d _; - } - } - } - return 0; -} - - -=item pasthru (override) - -The list of macro definitions to be passed through must be specified using -the /MACRO qualifier and must not add another /DEFINE qualifier. We prepend -our own comma here to the contents of $(PASTHRU_DEFINE) because it is often -empty and a comma always present in CCFLAGS would generate a missing -qualifier value error. - -=cut - -sub pasthru { - my($self) = shift; - my $pasthru = $self->SUPER::pasthru; - $pasthru =~ s|(PASTHRU\s*=\s*)|$1/MACRO=(|; - $pasthru =~ s|\n\z|)\n|m; - $pasthru =~ s|/defi?n?e?=\(?([^\),]+)\)?|,$1|ig; - - return $pasthru; -} - - -=item pm_to_blib (override) - -VMS wants a dot in every file so we can't have one called 'pm_to_blib', -it becomes 'pm_to_blib.' and MMS/K isn't smart enough to know that when -you have a target called 'pm_to_blib' it should look for 'pm_to_blib.'. - -So in VMS its pm_to_blib.ts. - -=cut - -sub pm_to_blib { - my $self = shift; - - my $make = $self->SUPER::pm_to_blib; - - $make =~ s{^pm_to_blib :}{pm_to_blib.ts :}m; - $make =~ s{\$\(TOUCH\) pm_to_blib}{\$(TOUCH) pm_to_blib.ts}; - - $make = <<'MAKE' . $make; -# Dummy target to match Unix target name; we use pm_to_blib.ts as -# timestamp file to avoid repeated invocations under VMS -pm_to_blib : pm_to_blib.ts - $(NOECHO) $(NOOP) - -MAKE - - return $make; -} - - -=item perl_script (override) - -If name passed in doesn't specify a readable file, appends F<.com> or -F<.pl> and tries again, since it's customary to have file types on all files -under VMS. - -=cut - -sub perl_script { - my($self,$file) = @_; - return $file if -r $file && ! -d _; - return "$file.com" if -r "$file.com"; - return "$file.pl" if -r "$file.pl"; - return ''; -} - - -=item replace_manpage_separator - -Use as separator a character which is legal in a VMS-syntax file name. - -=cut - -sub replace_manpage_separator { - my($self,$man) = @_; - $man = unixify($man); - $man =~ s#/+#__#g; - $man; -} - -=item init_DEST - -(override) Because of the difficulty concatenating VMS filepaths we -must pre-expand the DEST* variables. - -=cut - -sub init_DEST { - my $self = shift; - - $self->SUPER::init_DEST; - - # Expand DEST variables. - foreach my $var ($self->installvars) { - my $destvar = 'DESTINSTALL'.$var; - $self->{$destvar} = $self->eliminate_macros($self->{$destvar}); - } -} - - -=item init_DIRFILESEP - -No separator between a directory path and a filename on VMS. - -=cut - -sub init_DIRFILESEP { - my($self) = shift; - - $self->{DIRFILESEP} = ''; - return 1; -} - - -=item init_main (override) - - -=cut - -sub init_main { - my($self) = shift; - - $self->SUPER::init_main; - - $self->{DEFINE} ||= ''; - if ($self->{DEFINE} ne '') { - my(@terms) = split(/\s+/,$self->{DEFINE}); - my(@defs,@udefs); - foreach my $def (@terms) { - next unless $def; - my $targ = \@defs; - if ($def =~ s/^-([DU])//) { # If it was a Unix-style definition - $targ = \@udefs if $1 eq 'U'; - $def =~ s/='(.*)'$/=$1/; # then remove shell-protection '' - $def =~ s/^'(.*)'$/$1/; # from entire term or argument - } - if ($def =~ /=/) { - $def =~ s/"/""/g; # Protect existing " from DCL - $def = qq["$def"]; # and quote to prevent parsing of = - } - push @$targ, $def; - } - - $self->{DEFINE} = ''; - if (@defs) { - $self->{DEFINE} = '/Define=(' . join(',',@defs) . ')'; - } - if (@udefs) { - $self->{DEFINE} .= '/Undef=(' . join(',',@udefs) . ')'; - } - } -} - -=item init_tools (override) - -Provide VMS-specific forms of various utility commands. - -Sets DEV_NULL to nothing because I don't know how to do it on VMS. - -Changes EQUALIZE_TIMESTAMP to set revision date of target file to -one second later than source file, since MMK interprets precisely -equal revision dates for a source and target file as a sign that the -target needs to be updated. - -=cut - -sub init_tools { - my($self) = @_; - - $self->{NOOP} = 'Continue'; - $self->{NOECHO} ||= '@ '; - - $self->{MAKEFILE} ||= $self->{FIRST_MAKEFILE} || 'Descrip.MMS'; - $self->{FIRST_MAKEFILE} ||= $self->{MAKEFILE}; - $self->{MAKE_APERL_FILE} ||= 'Makeaperl.MMS'; - $self->{MAKEFILE_OLD} ||= $self->eliminate_macros('$(FIRST_MAKEFILE)_old'); -# -# If an extension is not specified, then MMS/MMK assumes an -# an extension of .MMS. If there really is no extension, -# then a trailing "." needs to be appended to specify a -# a null extension. -# - $self->{MAKEFILE} .= '.' unless $self->{MAKEFILE} =~ m/\./; - $self->{FIRST_MAKEFILE} .= '.' unless $self->{FIRST_MAKEFILE} =~ m/\./; - $self->{MAKE_APERL_FILE} .= '.' unless $self->{MAKE_APERL_FILE} =~ m/\./; - $self->{MAKEFILE_OLD} .= '.' unless $self->{MAKEFILE_OLD} =~ m/\./; - - $self->{MACROSTART} ||= '/Macro=('; - $self->{MACROEND} ||= ')'; - $self->{USEMAKEFILE} ||= '/Descrip='; - - $self->{EQUALIZE_TIMESTAMP} ||= '$(ABSPERLRUN) -we "open F,qq{>>$ARGV[1]};close F;utime(0,(stat($ARGV[0]))[9]+1,$ARGV[1])"'; - - $self->{MOD_INSTALL} ||= - $self->oneliner(<<'CODE', ['-MExtUtils::Install']); -install([ from_to => {split('\|', <STDIN>)}, verbose => '$(VERBINST)', uninstall_shadows => '$(UNINST)', dir_mode => '$(PERM_DIR)' ]); -CODE - - $self->{UMASK_NULL} = '! '; - - $self->SUPER::init_tools; - - # Use the default shell - $self->{SHELL} ||= 'Posix'; - - # Redirection on VMS goes before the command, not after as on Unix. - # $(DEV_NULL) is used once and its not worth going nuts over making - # it work. However, Unix's DEV_NULL is quite wrong for VMS. - $self->{DEV_NULL} = ''; - - return; -} - -=item init_platform (override) - -Add PERL_VMS, MM_VMS_REVISION and MM_VMS_VERSION. - -MM_VMS_REVISION is for backwards compatibility before MM_VMS had a -$VERSION. - -=cut - -sub init_platform { - my($self) = shift; - - $self->{MM_VMS_REVISION} = $Revision; - $self->{MM_VMS_VERSION} = $VERSION; - $self->{PERL_VMS} = $self->catdir($self->{PERL_SRC}, 'VMS') - if $self->{PERL_SRC}; -} - - -=item platform_constants - -=cut - -sub platform_constants { - my($self) = shift; - my $make_frag = ''; - - foreach my $macro (qw(PERL_VMS MM_VMS_REVISION MM_VMS_VERSION)) - { - next unless defined $self->{$macro}; - $make_frag .= "$macro = $self->{$macro}\n"; - } - - return $make_frag; -} - - -=item init_VERSION (override) - -Override the *DEFINE_VERSION macros with VMS semantics. Translate the -MAKEMAKER filepath to VMS style. - -=cut - -sub init_VERSION { - my $self = shift; - - $self->SUPER::init_VERSION; - - $self->{DEFINE_VERSION} = '"$(VERSION_MACRO)=""$(VERSION)"""'; - $self->{XS_DEFINE_VERSION} = '"$(XS_VERSION_MACRO)=""$(XS_VERSION)"""'; - $self->{MAKEMAKER} = vmsify($INC{'ExtUtils/MakeMaker.pm'}); -} - - -=item constants (override) - -Fixes up numerous file and directory macros to insure VMS syntax -regardless of input syntax. Also makes lists of files -comma-separated. - -=cut - -sub constants { - my($self) = @_; - - # Be kind about case for pollution - for (@ARGV) { $_ = uc($_) if /POLLUTE/i; } - - # Cleanup paths for directories in MMS macros. - foreach my $macro ( qw [ - INST_BIN INST_SCRIPT INST_LIB INST_ARCHLIB - PERL_LIB PERL_ARCHLIB - PERL_INC PERL_SRC ], - (map { 'INSTALL'.$_ } $self->installvars) - ) - { - next unless defined $self->{$macro}; - next if $macro =~ /MAN/ && $self->{$macro} eq 'none'; - $self->{$macro} = $self->fixpath($self->{$macro},1); - } - - # Cleanup paths for files in MMS macros. - foreach my $macro ( qw[LIBPERL_A FIRST_MAKEFILE MAKEFILE_OLD - MAKE_APERL_FILE MYEXTLIB] ) - { - next unless defined $self->{$macro}; - $self->{$macro} = $self->fixpath($self->{$macro},0); - } - - # Fixup files for MMS macros - # XXX is this list complete? - for my $macro (qw/ - FULLEXT VERSION_FROM - / ) { - next unless defined $self->{$macro}; - $self->{$macro} = $self->fixpath($self->{$macro},0); - } - - - for my $macro (qw/ - OBJECT LDFROM - / ) { - next unless defined $self->{$macro}; - - # Must expand macros before splitting on unescaped whitespace. - $self->{$macro} = $self->eliminate_macros($self->{$macro}); - if ($self->{$macro} =~ /(?<!\^)\s/) { - $self->{$macro} =~ s/(\\)?\n+\s+/ /g; - $self->{$macro} = $self->wraplist( - map $self->fixpath($_,0), split /,?(?<!\^)\s+/, $self->{$macro} - ); - } - else { - $self->{$macro} = $self->fixpath($self->{$macro},0); - } - } - - for my $macro (qw/ XS MAN1PODS MAN3PODS PM /) { - # Where is the space coming from? --jhi - next unless $self ne " " && defined $self->{$macro}; - my %tmp = (); - for my $key (keys %{$self->{$macro}}) { - $tmp{$self->fixpath($key,0)} = - $self->fixpath($self->{$macro}{$key},0); - } - $self->{$macro} = \%tmp; - } - - for my $macro (qw/ C O_FILES H /) { - next unless defined $self->{$macro}; - my @tmp = (); - for my $val (@{$self->{$macro}}) { - push(@tmp,$self->fixpath($val,0)); - } - $self->{$macro} = \@tmp; - } - - # mms/k does not define a $(MAKE) macro. - $self->{MAKE} = '$(MMS)$(MMSQUALIFIERS)'; - - return $self->SUPER::constants; -} - - -=item special_targets - -Clear the default .SUFFIXES and put in our own list. - -=cut - -sub special_targets { - my $self = shift; - - my $make_frag .= <<'MAKE_FRAG'; -.SUFFIXES : -.SUFFIXES : $(OBJ_EXT) .c .cpp .cxx .xs - -MAKE_FRAG - - return $make_frag; -} - -=item cflags (override) - -Bypass shell script and produce qualifiers for CC directly (but warn -user if a shell script for this extension exists). Fold multiple -/Defines into one, since some C compilers pay attention to only one -instance of this qualifier on the command line. - -=cut - -sub cflags { - my($self,$libperl) = @_; - my($quals) = $self->{CCFLAGS} || $Config{'ccflags'}; - my($definestr,$undefstr,$flagoptstr) = ('','',''); - my($incstr) = '/Include=($(PERL_INC)'; - my($name,$sys,@m); - - ( $name = $self->{NAME} . "_cflags" ) =~ s/:/_/g ; - print "Unix shell script ".$Config{"$self->{'BASEEXT'}_cflags"}. - " required to modify CC command for $self->{'BASEEXT'}\n" - if ($Config{$name}); - - if ($quals =~ / -[DIUOg]/) { - while ($quals =~ / -([Og])(\d*)\b/) { - my($type,$lvl) = ($1,$2); - $quals =~ s/ -$type$lvl\b\s*//; - if ($type eq 'g') { $flagoptstr = '/NoOptimize'; } - else { $flagoptstr = '/Optimize' . (defined($lvl) ? "=$lvl" : ''); } - } - while ($quals =~ / -([DIU])(\S+)/) { - my($type,$def) = ($1,$2); - $quals =~ s/ -$type$def\s*//; - $def =~ s/"/""/g; - if ($type eq 'D') { $definestr .= qq["$def",]; } - elsif ($type eq 'I') { $incstr .= ',' . $self->fixpath($def,1); } - else { $undefstr .= qq["$def",]; } - } - } - if (length $quals and $quals !~ m!/!) { - warn "MM_VMS: Ignoring unrecognized CCFLAGS elements \"$quals\"\n"; - $quals = ''; - } - $definestr .= q["PERL_POLLUTE",] if $self->{POLLUTE}; - if (length $definestr) { chop($definestr); $quals .= "/Define=($definestr)"; } - if (length $undefstr) { chop($undefstr); $quals .= "/Undef=($undefstr)"; } - # Deal with $self->{DEFINE} here since some C compilers pay attention - # to only one /Define clause on command line, so we have to - # conflate the ones from $Config{'ccflags'} and $self->{DEFINE} - # ($self->{DEFINE} has already been VMSified in constants() above) - if ($self->{DEFINE}) { $quals .= $self->{DEFINE}; } - for my $type (qw(Def Undef)) { - my(@terms); - while ($quals =~ m:/${type}i?n?e?=([^/]+):ig) { - my $term = $1; - $term =~ s:^\((.+)\)$:$1:; - push @terms, $term; - } - if ($type eq 'Def') { - push @terms, qw[ $(DEFINE_VERSION) $(XS_DEFINE_VERSION) ]; - } - if (@terms) { - $quals =~ s:/${type}i?n?e?=[^/]+::ig; - # PASTHRU_DEFINE will have its own comma - $quals .= "/${type}ine=(" . join(',',@terms) . ($type eq 'Def' ? '$(PASTHRU_DEFINE)' : '') . ')'; - } - } - - $libperl or $libperl = $self->{LIBPERL_A} || "libperl.olb"; - - # Likewise with $self->{INC} and /Include - if ($self->{'INC'}) { - my(@includes) = split(/\s+/,$self->{INC}); - foreach (@includes) { - s/^-I//; - $incstr .= ','.$self->fixpath($_,1); - } - } - $quals .= "$incstr)"; -# $quals =~ s/,,/,/g; $quals =~ s/\(,/(/g; - $self->{CCFLAGS} = $quals; - - $self->{PERLTYPE} ||= ''; - - $self->{OPTIMIZE} ||= $flagoptstr || $Config{'optimize'}; - if ($self->{OPTIMIZE} !~ m!/!) { - if ($self->{OPTIMIZE} =~ m!-g!) { $self->{OPTIMIZE} = '/Debug/NoOptimize' } - elsif ($self->{OPTIMIZE} =~ /-O(\d*)/) { - $self->{OPTIMIZE} = '/Optimize' . (defined($1) ? "=$1" : ''); - } - else { - warn "MM_VMS: Can't parse OPTIMIZE \"$self->{OPTIMIZE}\"; using default\n" if length $self->{OPTIMIZE}; - $self->{OPTIMIZE} = '/Optimize'; - } - } - - return $self->{CFLAGS} = qq{ -CCFLAGS = $self->{CCFLAGS} -OPTIMIZE = $self->{OPTIMIZE} -PERLTYPE = $self->{PERLTYPE} -}; -} - -=item const_cccmd (override) - -Adds directives to point C preprocessor to the right place when -handling #include E<lt>sys/foo.hE<gt> directives. Also constructs CC -command line a bit differently than MM_Unix method. - -=cut - -sub const_cccmd { - my($self,$libperl) = @_; - my(@m); - - return $self->{CONST_CCCMD} if $self->{CONST_CCCMD}; - return '' unless $self->needs_linking(); - if ($Config{'vms_cc_type'} eq 'gcc') { - push @m,' -.FIRST - ',$self->{NOECHO},'If F$TrnLnm("Sys").eqs."" Then Define/NoLog SYS GNU_CC_Include:[VMS]'; - } - elsif ($Config{'vms_cc_type'} eq 'vaxc') { - push @m,' -.FIRST - ',$self->{NOECHO},'If F$TrnLnm("Sys").eqs."" .and. F$TrnLnm("VAXC$Include").eqs."" Then Define/NoLog SYS Sys$Library - ',$self->{NOECHO},'If F$TrnLnm("Sys").eqs."" .and. F$TrnLnm("VAXC$Include").nes."" Then Define/NoLog SYS VAXC$Include'; - } - else { - push @m,' -.FIRST - ',$self->{NOECHO},'If F$TrnLnm("Sys").eqs."" .and. F$TrnLnm("DECC$System_Include").eqs."" Then Define/NoLog SYS ', - ($Config{'archname'} eq 'VMS_AXP' ? 'Sys$Library' : 'DECC$Library_Include'),' - ',$self->{NOECHO},'If F$TrnLnm("Sys").eqs."" .and. F$TrnLnm("DECC$System_Include").nes."" Then Define/NoLog SYS DECC$System_Include'; - } - - push(@m, "\n\nCCCMD = $Config{'cc'} \$(CCFLAGS)\$(OPTIMIZE)\n"); - - $self->{CONST_CCCMD} = join('',@m); -} - - -=item tools_other (override) - -Throw in some dubious extra macros for Makefile args. - -Also keep around the old $(SAY) macro in case somebody's using it. - -=cut - -sub tools_other { - my($self) = @_; - - # XXX Are these necessary? Does anyone override them? They're longer - # than just typing the literal string. - my $extra_tools = <<'EXTRA_TOOLS'; - -# Just in case anyone is using the old macro. -USEMACROS = $(MACROSTART) -SAY = $(ECHO) - -EXTRA_TOOLS - - return $self->SUPER::tools_other . $extra_tools; -} - -=item init_dist (override) - -VMSish defaults for some values. - - macro description default - - ZIPFLAGS flags to pass to ZIP -Vu - - COMPRESS compression command to gzip - use for tarfiles - SUFFIX suffix to put on -gz - compressed files - - SHAR shar command to use vms_share - - DIST_DEFAULT default target to use to tardist - create a distribution - - DISTVNAME Use VERSION_SYM instead of $(DISTNAME)-$(VERSION_SYM) - VERSION for the name - -=cut - -sub init_dist { - my($self) = @_; - $self->{ZIPFLAGS} ||= '-Vu'; - $self->{COMPRESS} ||= 'gzip'; - $self->{SUFFIX} ||= '-gz'; - $self->{SHAR} ||= 'vms_share'; - $self->{DIST_DEFAULT} ||= 'zipdist'; - - $self->SUPER::init_dist; - - $self->{DISTVNAME} = "$self->{DISTNAME}-$self->{VERSION_SYM}" - unless $self->{ARGS}{DISTVNAME}; - - return; -} - -=item c_o (override) - -Use VMS syntax on command line. In particular, $(DEFINE) and -$(PERL_INC) have been pulled into $(CCCMD). Also use MM[SK] macros. - -=cut - -sub c_o { - my($self) = @_; - return '' unless $self->needs_linking(); - ' -.c$(OBJ_EXT) : - $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).c /OBJECT=$(MMS$TARGET_NAME)$(OBJ_EXT) - -.cpp$(OBJ_EXT) : - $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).cpp /OBJECT=$(MMS$TARGET_NAME)$(OBJ_EXT) - -.cxx$(OBJ_EXT) : - $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).cxx /OBJECT=$(MMS$TARGET_NAME)$(OBJ_EXT) - -'; -} - -=item xs_c (override) - -Use MM[SK] macros. - -=cut - -sub xs_c { - my($self) = @_; - return '' unless $self->needs_linking(); - ' -.xs.c : - $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(MMS$TARGET_NAME).xs >$(MMS$TARGET_NAME).xsc - $(MV) $(MMS$TARGET_NAME).xsc $(MMS$TARGET_NAME).c -'; -} - -=item xs_o (override) - -Use MM[SK] macros, and VMS command line for C compiler. - -=cut - -sub xs_o { - my ($self) = @_; - return '' unless $self->needs_linking(); - my $frag = ' -.xs$(OBJ_EXT) : - $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(MMS$TARGET_NAME).xs >$(MMS$TARGET_NAME).xsc - $(MV) $(MMS$TARGET_NAME).xsc $(MMS$TARGET_NAME).c - $(CCCMD) $(CCCDLFLAGS) $(MMS$TARGET_NAME).c /OBJECT=$(MMS$TARGET_NAME)$(OBJ_EXT) -'; - if ($self->{XSMULTI}) { - for my $ext ($self->_xs_list_basenames) { - my $version = $self->parse_version("$ext.pm"); - my $ccflags = $self->{CCFLAGS}; - $ccflags =~ s/\$\(DEFINE_VERSION\)/\"VERSION_MACRO=\\"\"$version\\"\"/; - $ccflags =~ s/\$\(XS_DEFINE_VERSION\)/\"XS_VERSION_MACRO=\\"\"$version\\"\"/; - $self->_xsbuild_replace_macro($ccflags, 'xs', $ext, 'INC'); - $self->_xsbuild_replace_macro($ccflags, 'xs', $ext, 'DEFINE'); - - $frag .= _sprintf562 <<'EOF', $ext, $ccflags; - -%1$s$(OBJ_EXT) : %1$s.xs - $(XSUBPPRUN) $(XSPROTOARG) $(XSUBPPARGS) $(MMS$TARGET_NAME).xs > $(MMS$TARGET_NAME).xsc - $(MV) $(MMS$TARGET_NAME).xsc $(MMS$TARGET_NAME).c - $(CC)%2$s$(OPTIMIZE) $(CCCDLFLAGS) $(MMS$TARGET_NAME).c /OBJECT=$(MMS$TARGET_NAME)$(OBJ_EXT) -EOF - } - } - $frag; -} - -=item _xsbuild_replace_macro (override) - -There is no simple replacement possible since a qualifier and all its -subqualifiers must be considered together, so we use our own utility -routine for the replacement. - -=cut - -sub _xsbuild_replace_macro { - my ($self, undef, $xstype, $ext, $varname) = @_; - my $value = $self->_xsbuild_value($xstype, $ext, $varname); - return unless defined $value; - $_[1] = _vms_replace_qualifier($self, $_[1], $value, $varname); -} - -=item _xsbuild_value (override) - -Convert the extension spec to Unix format, as that's what will -match what's in the XSBUILD data structure. - -=cut - -sub _xsbuild_value { - my ($self, $xstype, $ext, $varname) = @_; - $ext = unixify($ext); - return $self->SUPER::_xsbuild_value($xstype, $ext, $varname); -} - -sub _vms_replace_qualifier { - my ($self, $flags, $newflag, $macro) = @_; - my $qual_type; - my $type_suffix; - my $quote_subquals = 0; - my @subquals_new = split /\s+/, $newflag; - - if ($macro eq 'DEFINE') { - $qual_type = 'Def'; - $type_suffix = 'ine'; - map { $_ =~ s/^-D// } @subquals_new; - $quote_subquals = 1; - } - elsif ($macro eq 'INC') { - $qual_type = 'Inc'; - $type_suffix = 'lude'; - map { $_ =~ s/^-I//; $_ = $self->fixpath($_) } @subquals_new; - } - - my @subquals = (); - while ($flags =~ m:/${qual_type}\S{0,4}=([^/]+):ig) { - my $term = $1; - $term =~ s/\"//g; - $term =~ s:^\((.+)\)$:$1:; - push @subquals, split /,/, $term; - } - for my $new (@subquals_new) { - my ($sq_new, $sqval_new) = split /=/, $new; - my $replaced_old = 0; - for my $old (@subquals) { - my ($sq, $sqval) = split /=/, $old; - if ($sq_new eq $sq) { - $old = $sq_new; - $old .= '=' . $sqval_new if defined($sqval_new) and length($sqval_new); - $replaced_old = 1; - last; - } - } - push @subquals, $new unless $replaced_old; - } - - if (@subquals) { - $flags =~ s:/${qual_type}\S{0,4}=[^/]+::ig; - # add quotes if requested but not for unexpanded macros - map { $_ = qq/"$_"/ if $_ !~ m/^\$\(/ } @subquals if $quote_subquals; - $flags .= "/${qual_type}$type_suffix=(" . join(',',@subquals) . ')'; - } - - return $flags; -} - - -sub xs_dlsyms_ext { - '.opt'; -} - -=item dlsyms (override) - -Create VMS linker options files specifying universal symbols for this -extension's shareable image(s), and listing other shareable images or -libraries to which it should be linked. - -=cut - -sub dlsyms { - my ($self, %attribs) = @_; - return '' unless $self->needs_linking; - $self->xs_dlsyms_iterator; -} - -sub xs_make_dlsyms { - my ($self, $attribs, $target, $dep, $name, $dlbase, $funcs, $funclist, $imports, $vars, $extra) = @_; - my @m; - my $instloc; - if ($self->{XSMULTI}) { - my ($v, $d, $f) = File::Spec->splitpath($target); - my @d = File::Spec->splitdir($d); - shift @d if $d[0] eq 'lib'; - $instloc = $self->catfile('$(INST_ARCHLIB)', 'auto', @d, $f); - push @m,"\ndynamic :: $instloc\n\t\$(NOECHO) \$(NOOP)\n" - unless $self->{SKIPHASH}{'dynamic'}; - push @m,"\nstatic :: $instloc\n\t\$(NOECHO) \$(NOOP)\n" - unless $self->{SKIPHASH}{'static'}; - push @m, "\n", sprintf <<'EOF', $instloc, $target; -%s : %s - $(CP) $(MMS$SOURCE) $(MMS$TARGET) -EOF - } - else { - push @m,"\ndynamic :: \$(INST_ARCHAUTODIR)$self->{BASEEXT}.opt\n\t\$(NOECHO) \$(NOOP)\n" - unless $self->{SKIPHASH}{'dynamic'}; - push @m,"\nstatic :: \$(INST_ARCHAUTODIR)$self->{BASEEXT}.opt\n\t\$(NOECHO) \$(NOOP)\n" - unless $self->{SKIPHASH}{'static'}; - push @m, "\n", sprintf <<'EOF', $target; -$(INST_ARCHAUTODIR)$(BASEEXT).opt : %s - $(CP) $(MMS$SOURCE) $(MMS$TARGET) -EOF - } - push @m, - "\n$target : $dep\n\t", - q!$(PERLRUN) -MExtUtils::Mksymlists -e "Mksymlists('NAME'=>'!, $name, - q!', 'DLBASE' => '!,$dlbase, - q!', 'DL_FUNCS' => !,neatvalue($funcs), - q!, 'FUNCLIST' => !,neatvalue($funclist), - q!, 'IMPORTS' => !,neatvalue($imports), - q!, 'DL_VARS' => !, neatvalue($vars); - push @m, $extra if defined $extra; - push @m, qq!);"\n\t!; - # Can't use dlbase as it's been through mod2fname. - my $olb_base = basename($target, '.opt'); - if ($self->{XSMULTI}) { - # We've been passed everything but the kitchen sink -- and the location of the - # static library we're using to build the dynamic library -- so concoct that - # location from what we do have. - my $olb_dir = $self->catdir(dirname($instloc), $olb_base); - push @m, qq!\$(PERL) -e "print ""${olb_dir}${olb_base}\$(LIB_EXT)/Include=!; - push @m, ($Config{d_vms_case_sensitive_symbols} ? uc($olb_base) : $olb_base); - push @m, '\n' . $olb_dir . $olb_base . '$(LIB_EXT)/Library\n"";" >>$(MMS$TARGET)',"\n"; - } - else { - push @m, qq!\$(PERL) -e "print ""\$(INST_ARCHAUTODIR)${olb_base}\$(LIB_EXT)/Include=!; - if ($self->{OBJECT} =~ /\bBASEEXT\b/ or - $self->{OBJECT} =~ /\b$self->{BASEEXT}\b/i) { - push @m, ($Config{d_vms_case_sensitive_symbols} - ? uc($self->{BASEEXT}) :'$(BASEEXT)'); - } - else { # We don't have a "main" object file, so pull 'em all in - # Upcase module names if linker is being case-sensitive - my($upcase) = $Config{d_vms_case_sensitive_symbols}; - my(@omods) = split ' ', $self->eliminate_macros($self->{OBJECT}); - for (@omods) { - s/\.[^.]*$//; # Trim off file type - s[\$\(\w+_EXT\)][]; # even as a macro - s/.*[:>\/\]]//; # Trim off dir spec - $_ = uc if $upcase; - }; - my(@lines); - my $tmp = shift @omods; - foreach my $elt (@omods) { - $tmp .= ",$elt"; - if (length($tmp) > 80) { push @lines, $tmp; $tmp = ''; } - } - push @lines, $tmp; - push @m, '(', join( qq[, -\\n\\t"";" >>\$(MMS\$TARGET)\n\t\$(PERL) -e "print ""], @lines),')'; - } - push @m, '\n$(INST_ARCHAUTODIR)' . $olb_base . '$(LIB_EXT)/Library\n"";" >>$(MMS$TARGET)',"\n"; - } - if (length $self->{LDLOADLIBS}) { - my($line) = ''; - foreach my $lib (split ' ', $self->{LDLOADLIBS}) { - $lib =~ s%\$%\\\$%g; # Escape '$' in VMS filespecs - if (length($line) + length($lib) > 160) { - push @m, "\t\$(PERL) -e \"print qq{$line}\" >>\$(MMS\$TARGET)\n"; - $line = $lib . '\n'; - } - else { $line .= $lib . '\n'; } - } - push @m, "\t\$(PERL) -e \"print qq{$line}\" >>\$(MMS\$TARGET)\n" if $line; - } - join '', @m; -} - - -=item xs_obj_opt - -Override to fixup -o flags. - -=cut - -sub xs_obj_opt { - my ($self, $output_file) = @_; - "/OBJECT=$output_file"; -} - -=item dynamic_lib (override) - -Use VMS Link command. - -=cut - -sub xs_dynamic_lib_macros { - my ($self, $attribs) = @_; - my $otherldflags = $attribs->{OTHERLDFLAGS} || ""; - my $inst_dynamic_dep = $attribs->{INST_DYNAMIC_DEP} || ""; - sprintf <<'EOF', $otherldflags, $inst_dynamic_dep; -# This section creates the dynamically loadable objects from relevant -# objects and possibly $(MYEXTLIB). -OTHERLDFLAGS = %s -INST_DYNAMIC_DEP = %s -EOF -} - -sub xs_make_dynamic_lib { - my ($self, $attribs, $from, $to, $todir, $ldfrom, $exportlist) = @_; - my $shr = $Config{'dbgprefix'} . 'PerlShr'; - $exportlist =~ s/.def$/.opt/; # it's a linker options file - # 1 2 3 4 5 - _sprintf562 <<'EOF', $to, $todir, $exportlist, $shr, "$shr Sys\$Share:$shr.$Config{'dlext'}"; -%1$s : $(INST_STATIC) $(PERL_INC)perlshr_attr.opt %2$s$(DFSEP).exists %3$s $(PERL_ARCHIVE) $(INST_DYNAMIC_DEP) - If F$TrnLNm("%4$s").eqs."" Then Define/NoLog/User %5$s - Link $(LDFLAGS) /Shareable=$(MMS$TARGET)$(OTHERLDFLAGS) %3$s/Option,$(PERL_INC)perlshr_attr.opt/Option -EOF -} - -=item xs_make_static_lib (override) - -Use VMS commands to manipulate object library. - -=cut - -sub xs_make_static_lib { - my ($self, $object, $to, $todir) = @_; - - my @objects; - if ($self->{XSMULTI}) { - # The extension name should be the main object file name minus file type. - my $lib = $object; - $lib =~ s/\$\(OBJ_EXT\)\z//; - my $override = $self->_xsbuild_value('xs', $lib, 'OBJECT'); - $object = $override if defined $override; - @objects = map { $self->fixpath($_,0) } split /(?<!\^)\s+/, $object; - } - else { - push @objects, $object; - } - - my @m; - for my $obj (@objects) { - push(@m, sprintf "\n%s : %s\$(DFSEP).exists", $obj, $todir); - } - push(@m, sprintf "\n\n%s : %s \$(MYEXTLIB)\n", $to, (join ' ', @objects)); - - # If this extension has its own library (eg SDBM_File) - # then copy that to $(INST_STATIC) and add $(OBJECT) into it. - push(@m, "\t",'$(CP) $(MYEXTLIB) $(MMS$TARGET)',"\n") if $self->{MYEXTLIB}; - - push(@m,"\t",'If F$Search("$(MMS$TARGET)").eqs."" Then Library/Object/Create $(MMS$TARGET)',"\n"); - - # if there was a library to copy, then we can't use MMS$SOURCE_LIST, - # 'cause it's a library and you can't stick them in other libraries. - # In that case, we use $OBJECT instead and hope for the best - if ($self->{MYEXTLIB}) { - for my $obj (@objects) { - push(@m,"\t",'Library/Object/Replace $(MMS$TARGET) ' . $obj,"\n"); - } - } - else { - push(@m,"\t",'Library/Object/Replace $(MMS$TARGET) $(MMS$SOURCE_LIST)',"\n"); - } - - push @m, "\t\$(NOECHO) \$(PERL) -e 1 >\$(INST_ARCHAUTODIR)extralibs.ld\n"; - foreach my $lib (split ' ', $self->{EXTRALIBS}) { - push(@m,"\t",'$(NOECHO) $(PERL) -e "print qq{',$lib,'\n}" >>$(INST_ARCHAUTODIR)extralibs.ld',"\n"); - } - join('',@m); -} - - -=item static_lib_pure_cmd (override) - -Use VMS commands to manipulate object library. - -=cut - -sub static_lib_pure_cmd { - my ($self, $from) = @_; - - sprintf <<'MAKE_FRAG', $from; - If F$Search("$(MMS$TARGET)").eqs."" Then Library/Object/Create $(MMS$TARGET) - Library/Object/Replace $(MMS$TARGET) %s -MAKE_FRAG -} - -=item xs_static_lib_is_xs - -=cut - -sub xs_static_lib_is_xs { - return 1; -} - -=item extra_clean_files - -Clean up some OS specific files. Plus the temp file used to shorten -a lot of commands. And the name mangler database. - -=cut - -sub extra_clean_files { - return qw( - *.Map *.Dmp *.Lis *.cpp *.$(DLEXT) *.Opt $(BASEEXT).bso - .MM_Tmp cxx_repository - ); -} - - -=item zipfile_target - -=item tarfile_target - -=item shdist_target - -Syntax for invoking shar, tar and zip differs from that for Unix. - -=cut - -sub zipfile_target { - my($self) = shift; - - return <<'MAKE_FRAG'; -$(DISTVNAME).zip : distdir - $(PREOP) - $(ZIP) "$(ZIPFLAGS)" $(MMS$TARGET) [.$(DISTVNAME)...]*.*; - $(RM_RF) $(DISTVNAME) - $(POSTOP) -MAKE_FRAG -} - -sub tarfile_target { - my($self) = shift; - - return <<'MAKE_FRAG'; -$(DISTVNAME).tar$(SUFFIX) : distdir - $(PREOP) - $(TO_UNIX) - $(TAR) "$(TARFLAGS)" $(DISTVNAME).tar [.$(DISTVNAME)...] - $(RM_RF) $(DISTVNAME) - $(COMPRESS) $(DISTVNAME).tar - $(POSTOP) -MAKE_FRAG -} - -sub shdist_target { - my($self) = shift; - - return <<'MAKE_FRAG'; -shdist : distdir - $(PREOP) - $(SHAR) [.$(DISTVNAME)...]*.*; $(DISTVNAME).share - $(RM_RF) $(DISTVNAME) - $(POSTOP) -MAKE_FRAG -} - - -# --- Test and Installation Sections --- - -=item install (override) - -Work around DCL's 255 character limit several times,and use -VMS-style command line quoting in a few cases. - -=cut - -sub install { - my($self, %attribs) = @_; - my(@m); - - push @m, q[ -install :: all pure_install doc_install - $(NOECHO) $(NOOP) - -install_perl :: all pure_perl_install doc_perl_install - $(NOECHO) $(NOOP) - -install_site :: all pure_site_install doc_site_install - $(NOECHO) $(NOOP) - -install_vendor :: all pure_vendor_install doc_vendor_install - $(NOECHO) $(NOOP) - -pure_install :: pure_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -doc_install :: doc_$(INSTALLDIRS)_install - $(NOECHO) $(NOOP) - -pure__install : pure_site_install - $(NOECHO) $(ECHO) "INSTALLDIRS not defined, defaulting to INSTALLDIRS=site" - -doc__install : doc_site_install - $(NOECHO) $(ECHO) "INSTALLDIRS not defined, defaulting to INSTALLDIRS=site" - -# This hack brought to you by DCL's 255-character command line limit -pure_perl_install :: -]; - push @m, -q[ $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'read|'.File::Spec->catfile('$(PERL_ARCHLIB)','auto','$(FULLEXT)','.packlist').'|'" >.MM_tmp - $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'write|'.File::Spec->catfile('$(DESTINSTALLARCHLIB)','auto','$(FULLEXT)','.packlist').'|'" >>.MM_tmp -] unless $self->{NO_PACKLIST}; - - push @m, -q[ $(NOECHO) $(ECHO_N) "$(INST_LIB)|$(DESTINSTALLPRIVLIB)|" >>.MM_tmp - $(NOECHO) $(ECHO_N) "$(INST_ARCHLIB)|$(DESTINSTALLARCHLIB)|" >>.MM_tmp - $(NOECHO) $(ECHO_N) "$(INST_BIN)|$(DESTINSTALLBIN)|" >>.MM_tmp - $(NOECHO) $(ECHO_N) "$(INST_SCRIPT)|$(DESTINSTALLSCRIPT)|" >>.MM_tmp - $(NOECHO) $(ECHO_N) "$(INST_MAN1DIR) $(DESTINSTALLMAN1DIR) " >>.MM_tmp - $(NOECHO) $(ECHO_N) "$(INST_MAN3DIR)|$(DESTINSTALLMAN3DIR)" >>.MM_tmp - $(NOECHO) $(MOD_INSTALL) <.MM_tmp - $(NOECHO) $(RM_F) .MM_tmp - $(NOECHO) $(WARN_IF_OLD_PACKLIST) "].$self->catfile($self->{SITEARCHEXP},'auto',$self->{FULLEXT},'.packlist').q[" - -# Likewise -pure_site_install :: -]; - push @m, -q[ $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'read|'.File::Spec->catfile('$(SITEARCHEXP)','auto','$(FULLEXT)','.packlist').'|'" >.MM_tmp - $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'write|'.File::Spec->catfile('$(DESTINSTALLSITEARCH)','auto','$(FULLEXT)','.packlist').'|'" >>.MM_tmp -] unless $self->{NO_PACKLIST}; - - push @m, -q[ $(NOECHO) $(ECHO_N) "$(INST_LIB)|$(DESTINSTALLSITELIB)|" >>.MM_tmp - $(NOECHO) $(ECHO_N) "$(INST_ARCHLIB)|$(DESTINSTALLSITEARCH)|" >>.MM_tmp - $(NOECHO) $(ECHO_N) "$(INST_BIN)|$(DESTINSTALLSITEBIN)|" >>.MM_tmp - $(NOECHO) $(ECHO_N) "$(INST_SCRIPT)|$(DESTINSTALLSCRIPT)|" >>.MM_tmp - $(NOECHO) $(ECHO_N) "$(INST_MAN1DIR)|$(DESTINSTALLSITEMAN1DIR)|" >>.MM_tmp - $(NOECHO) $(ECHO_N) "$(INST_MAN3DIR)|$(DESTINSTALLSITEMAN3DIR)" >>.MM_tmp - $(NOECHO) $(MOD_INSTALL) <.MM_tmp - $(NOECHO) $(RM_F) .MM_tmp - $(NOECHO) $(WARN_IF_OLD_PACKLIST) "].$self->catfile($self->{PERL_ARCHLIB},'auto',$self->{FULLEXT},'.packlist').q[" - -pure_vendor_install :: -]; - push @m, -q[ $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'read|'.File::Spec->catfile('$(VENDORARCHEXP)','auto','$(FULLEXT)','.packlist').'|'" >.MM_tmp - $(NOECHO) $(PERLRUN) "-MFile::Spec" -e "print 'write|'.File::Spec->catfile('$(DESTINSTALLVENDORARCH)','auto','$(FULLEXT)','.packlist').'|'" >>.MM_tmp -] unless $self->{NO_PACKLIST}; - - push @m, -q[ $(NOECHO) $(ECHO_N) "$(INST_LIB)|$(DESTINSTALLVENDORLIB)|" >>.MM_tmp - $(NOECHO) $(ECHO_N) "$(INST_ARCHLIB)|$(DESTINSTALLVENDORARCH)|" >>.MM_tmp - $(NOECHO) $(ECHO_N) "$(INST_BIN)|$(DESTINSTALLVENDORBIN)|" >>.MM_tmp - $(NOECHO) $(ECHO_N) "$(INST_SCRIPT)|$(DESTINSTALLSCRIPT)|" >>.MM_tmp - $(NOECHO) $(ECHO_N) "$(INST_MAN1DIR)|$(DESTINSTALLVENDORMAN1DIR)|" >>.MM_tmp - $(NOECHO) $(ECHO_N) "$(INST_MAN3DIR)|$(DESTINSTALLVENDORMAN3DIR)" >>.MM_tmp - $(NOECHO) $(MOD_INSTALL) <.MM_tmp - $(NOECHO) $(RM_F) .MM_tmp - -]; - - push @m, q[ -# Ditto -doc_perl_install :: - $(NOECHO) $(NOOP) - -# And again -doc_site_install :: - $(NOECHO) $(NOOP) - -doc_vendor_install :: - $(NOECHO) $(NOOP) - -] if $self->{NO_PERLLOCAL}; - - push @m, q[ -# Ditto -doc_perl_install :: - $(NOECHO) $(ECHO) "Appending installation info to ].$self->catfile($self->{DESTINSTALLARCHLIB}, 'perllocal.pod').q[" - $(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) - $(NOECHO) $(ECHO_N) "installed into|$(INSTALLPRIVLIB)|" >.MM_tmp - $(NOECHO) $(ECHO_N) "LINKTYPE|$(LINKTYPE)|VERSION|$(VERSION)|EXE_FILES|$(EXE_FILES) " >>.MM_tmp - $(NOECHO) $(DOC_INSTALL) "Module" "$(NAME)" <.MM_tmp >>].$self->catfile($self->{DESTINSTALLARCHLIB},'perllocal.pod').q[ - $(NOECHO) $(RM_F) .MM_tmp - -# And again -doc_site_install :: - $(NOECHO) $(ECHO) "Appending installation info to ].$self->catfile($self->{DESTINSTALLARCHLIB}, 'perllocal.pod').q[" - $(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) - $(NOECHO) $(ECHO_N) "installed into|$(INSTALLSITELIB)|" >.MM_tmp - $(NOECHO) $(ECHO_N) "LINKTYPE|$(LINKTYPE)|VERSION|$(VERSION)|EXE_FILES|$(EXE_FILES) " >>.MM_tmp - $(NOECHO) $(DOC_INSTALL) "Module" "$(NAME)" <.MM_tmp >>].$self->catfile($self->{DESTINSTALLARCHLIB},'perllocal.pod').q[ - $(NOECHO) $(RM_F) .MM_tmp - -doc_vendor_install :: - $(NOECHO) $(ECHO) "Appending installation info to ].$self->catfile($self->{DESTINSTALLARCHLIB}, 'perllocal.pod').q[" - $(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) - $(NOECHO) $(ECHO_N) "installed into|$(INSTALLVENDORLIB)|" >.MM_tmp - $(NOECHO) $(ECHO_N) "LINKTYPE|$(LINKTYPE)|VERSION|$(VERSION)|EXE_FILES|$(EXE_FILES) " >>.MM_tmp - $(NOECHO) $(DOC_INSTALL) "Module" "$(NAME)" <.MM_tmp >>].$self->catfile($self->{DESTINSTALLARCHLIB},'perllocal.pod').q[ - $(NOECHO) $(RM_F) .MM_tmp - -] unless $self->{NO_PERLLOCAL}; - - push @m, q[ -uninstall :: uninstall_from_$(INSTALLDIRS)dirs - $(NOECHO) $(NOOP) - -uninstall_from_perldirs :: - $(NOECHO) $(UNINSTALL) ].$self->catfile($self->{PERL_ARCHLIB},'auto',$self->{FULLEXT},'.packlist').q[ - -uninstall_from_sitedirs :: - $(NOECHO) $(UNINSTALL) ].$self->catfile($self->{SITEARCHEXP},'auto',$self->{FULLEXT},'.packlist').q[ - -uninstall_from_vendordirs :: - $(NOECHO) $(UNINSTALL) ].$self->catfile($self->{VENDORARCHEXP},'auto',$self->{FULLEXT},'.packlist').q[ -]; - - join('',@m); -} - -=item perldepend (override) - -Use VMS-style syntax for files; it's cheaper to just do it directly here -than to have the MM_Unix method call C<catfile> repeatedly. Also, if -we have to rebuild Config.pm, use MM[SK] to do it. - -=cut - -sub perldepend { - my($self) = @_; - my(@m); - - if ($self->{OBJECT}) { - # Need to add an object file dependency on the perl headers. - # this is very important for XS modules in perl.git development. - - push @m, $self->_perl_header_files_fragment(""); # empty separator on VMS as its in the $(PERL_INC) - } - - if ($self->{PERL_SRC}) { - my(@macros); - my($mmsquals) = '$(USEMAKEFILE)[.vms]$(FIRST_MAKEFILE)'; - push(@macros,'__AXP__=1') if $Config{'archname'} eq 'VMS_AXP'; - push(@macros,'DECC=1') if $Config{'vms_cc_type'} eq 'decc'; - push(@macros,'GNUC=1') if $Config{'vms_cc_type'} eq 'gcc'; - push(@macros,'SOCKET=1') if $Config{'d_has_sockets'}; - push(@macros,qq["CC=$Config{'cc'}"]) if $Config{'cc'} =~ m!/!; - $mmsquals .= '$(USEMACROS)' . join(',',@macros) . '$(MACROEND)' if @macros; - push(@m,q[ -# Check for unpropagated config.sh changes. Should never happen. -# We do NOT just update config.h because that is not sufficient. -# An out of date config.h is not fatal but complains loudly! -$(PERL_INC)config.h : $(PERL_SRC)config.sh - $(NOOP) - -$(PERL_ARCHLIB)Config.pm : $(PERL_SRC)config.sh - $(NOECHO) Write Sys$Error "$(PERL_ARCHLIB)Config.pm may be out of date with config.h or genconfig.pl" - olddef = F$Environment("Default") - Set Default $(PERL_SRC) - $(MMS)],$mmsquals,); - if ($self->{PERL_ARCHLIB} =~ m|\[-| && $self->{PERL_SRC} =~ m|(\[-+)|) { - my($prefix,$target) = ($1,$self->fixpath('$(PERL_ARCHLIB)Config.pm',0)); - $target =~ s/\Q$prefix/[/; - push(@m," $target"); - } - else { push(@m,' $(MMS$TARGET)'); } - push(@m,q[ - Set Default 'olddef' -]); - } - - push(@m, join(" ", map($self->fixpath($_,0),sort values %{$self->{XS}}))." : \$(XSUBPPDEPS)\n") - if %{$self->{XS}}; - - join('',@m); -} - - -=item makeaperl (override) - -Undertake to build a new set of Perl images using VMS commands. Since -VMS does dynamic loading, it's not necessary to statically link each -extension into the Perl image, so this isn't the normal build path. -Consequently, it hasn't really been tested, and may well be incomplete. - -=cut - -our %olbs; # needs to be localized - -sub makeaperl { - my($self, %attribs) = @_; - my($makefilename, $searchdirs, $static, $extra, $perlinc, $target, $tmpdir, $libperl) = - @attribs{qw(MAKE DIRS STAT EXTRA INCL TARGET TMP LIBPERL)}; - my(@m); - push @m, " -# --- MakeMaker makeaperl section --- -MAP_TARGET = $target -"; - return join '', @m if $self->{PARENT}; - - my($dir) = join ":", @{$self->{DIR}}; - - unless ($self->{MAKEAPERL}) { - push @m, q{ -$(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) - $(NOECHO) $(ECHO) "Writing ""$(MMS$TARGET)"" for this $(MAP_TARGET)" - $(NOECHO) $(PERLRUNINST) \ - Makefile.PL DIR=}, $dir, q{ \ - FIRST_MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ - MAKEAPERL=1 NORECURS=1 }; - - push @m, map(q[ \\\n\t\t"$_"], @ARGV),q{ - -$(MAP_TARGET) :: $(MAKE_APERL_FILE) - $(MAKE)$(USEMAKEFILE)$(MAKE_APERL_FILE) static $(MMS$TARGET) -}; - push @m, "\n"; - - return join '', @m; - } - - - my($linkcmd,@optlibs,@staticpkgs,$extralist,$targdir,$libperldir,%libseen); - local($_); - - # The front matter of the linkcommand... - $linkcmd = join ' ', $Config{'ld'}, - grep($_, @Config{qw(large split ldflags ccdlflags)}); - $linkcmd =~ s/\s+/ /g; - - # Which *.olb files could we make use of... - local(%olbs); # XXX can this be lexical? - $olbs{$self->{INST_ARCHAUTODIR}} = "$self->{BASEEXT}\$(LIB_EXT)"; - require File::Find; - File::Find::find(sub { - return unless m/\Q$self->{LIB_EXT}\E$/; - return if m/^libperl/; - - if( exists $self->{INCLUDE_EXT} ){ - my $found = 0; - - (my $xx = $File::Find::name) =~ s,.*?/auto/,,; - $xx =~ s,/?$_,,; - $xx =~ s,/,::,g; - - # Throw away anything not explicitly marked for inclusion. - # DynaLoader is implied. - foreach my $incl ((@{$self->{INCLUDE_EXT}},'DynaLoader')){ - if( $xx eq $incl ){ - $found++; - last; - } - } - return unless $found; - } - elsif( exists $self->{EXCLUDE_EXT} ){ - (my $xx = $File::Find::name) =~ s,.*?/auto/,,; - $xx =~ s,/?$_,,; - $xx =~ s,/,::,g; - - # Throw away anything explicitly marked for exclusion - foreach my $excl (@{$self->{EXCLUDE_EXT}}){ - return if( $xx eq $excl ); - } - } - - $olbs{$ENV{DEFAULT}} = $_; - }, grep( -d $_, @{$searchdirs || []})); - - # We trust that what has been handed in as argument will be buildable - $static = [] unless $static; - @olbs{@{$static}} = (1) x @{$static}; - - $extra = [] unless $extra && ref $extra eq 'ARRAY'; - # Sort the object libraries in inverse order of - # filespec length to try to insure that dependent extensions - # will appear before their parents, so the linker will - # search the parent library to resolve references. - # (e.g. Intuit::DWIM will precede Intuit, so unresolved - # references from [.intuit.dwim]dwim.obj can be found - # in [.intuit]intuit.olb). - for (sort { length($a) <=> length($b) || $a cmp $b } keys %olbs) { - next unless $olbs{$_} =~ /\Q$self->{LIB_EXT}\E$/; - my($dir) = $self->fixpath($_,1); - my($extralibs) = $dir . "extralibs.ld"; - my($extopt) = $dir . $olbs{$_}; - $extopt =~ s/$self->{LIB_EXT}$/.opt/; - push @optlibs, "$dir$olbs{$_}"; - # Get external libraries this extension will need - if (-f $extralibs ) { - my %seenthis; - open my $list, "<", $extralibs or warn $!,next; - while (<$list>) { - chomp; - # Include a library in the link only once, unless it's mentioned - # multiple times within a single extension's options file, in which - # case we assume the builder needed to search it again later in the - # link. - my $skip = exists($libseen{$_}) && !exists($seenthis{$_}); - $libseen{$_}++; $seenthis{$_}++; - next if $skip; - push @$extra,$_; - } - } - # Get full name of extension for ExtUtils::Miniperl - if (-f $extopt) { - open my $opt, '<', $extopt or die $!; - while (<$opt>) { - next unless /(?:UNIVERSAL|VECTOR)=boot_([\w_]+)/; - my $pkg = $1; - $pkg =~ s#__*#::#g; - push @staticpkgs,$pkg; - } - } - } - # Place all of the external libraries after all of the Perl extension - # libraries in the final link, in order to maximize the opportunity - # for XS code from multiple extensions to resolve symbols against the - # same external library while only including that library once. - push @optlibs, @$extra; - - $target = "Perl$Config{'exe_ext'}" unless $target; - my $shrtarget; - ($shrtarget,$targdir) = fileparse($target); - $shrtarget =~ s/^([^.]*)/$1Shr/; - $shrtarget = $targdir . $shrtarget; - $target = "Perlshr.$Config{'dlext'}" unless $target; - $tmpdir = "[]" unless $tmpdir; - $tmpdir = $self->fixpath($tmpdir,1); - if (@optlibs) { $extralist = join(' ',@optlibs); } - else { $extralist = ''; } - # Let ExtUtils::Liblist find the necessary libs for us (but skip PerlShr) - # that's what we're building here). - push @optlibs, grep { !/PerlShr/i } split ' ', +($self->ext())[2]; - if ($libperl) { - unless (-f $libperl || -f ($libperl = $self->catfile($Config{'installarchlib'},'CORE',$libperl))) { - print "Warning: $libperl not found\n"; - undef $libperl; - } - } - unless ($libperl) { - if (defined $self->{PERL_SRC}) { - $libperl = $self->catfile($self->{PERL_SRC},"libperl$self->{LIB_EXT}"); - } elsif (-f ($libperl = $self->catfile($Config{'installarchlib'},'CORE',"libperl$self->{LIB_EXT}")) ) { - } else { - print "Warning: $libperl not found - If you're going to build a static perl binary, make sure perl is installed - otherwise ignore this warning\n"; - } - } - $libperldir = $self->fixpath((fileparse($libperl))[1],1); - - push @m, ' -# Fill in the target you want to produce if it\'s not perl -MAP_TARGET = ',$self->fixpath($target,0),' -MAP_SHRTARGET = ',$self->fixpath($shrtarget,0)," -MAP_LINKCMD = $linkcmd -MAP_PERLINC = ", $perlinc ? map('"$_" ',@{$perlinc}) : ''," -MAP_EXTRA = $extralist -MAP_LIBPERL = ",$self->fixpath($libperl,0),' -'; - - - push @m,"\n${tmpdir}Makeaperl.Opt : \$(MAP_EXTRA)\n"; - foreach (@optlibs) { - push @m,' $(NOECHO) $(PERL) -e "print q{',$_,'}" >>$(MMS$TARGET)',"\n"; - } - push @m,"\n${tmpdir}PerlShr.Opt :\n\t"; - push @m,'$(NOECHO) $(PERL) -e "print q{$(MAP_SHRTARGET)}" >$(MMS$TARGET)',"\n"; - - push @m,' -$(MAP_SHRTARGET) : $(MAP_LIBPERL) Makeaperl.Opt ',"${libperldir}Perlshr_Attr.Opt",' - $(MAP_LINKCMD)/Shareable=$(MMS$TARGET) $(MAP_LIBPERL), Makeaperl.Opt/Option ',"${libperldir}Perlshr_Attr.Opt/Option",' -$(MAP_TARGET) : $(MAP_SHRTARGET) ',"${tmpdir}perlmain\$(OBJ_EXT) ${tmpdir}PerlShr.Opt",' - $(MAP_LINKCMD) ',"${tmpdir}perlmain\$(OBJ_EXT)",', PerlShr.Opt/Option - $(NOECHO) $(ECHO) "To install the new ""$(MAP_TARGET)"" binary, say" - $(NOECHO) $(ECHO) " $(MAKE)$(USEMAKEFILE)$(FIRST_MAKEFILE) inst_perl $(USEMACROS)MAP_TARGET=$(MAP_TARGET)$(ENDMACRO)" - $(NOECHO) $(ECHO) "To remove the intermediate files, say - $(NOECHO) $(ECHO) " $(MAKE)$(USEMAKEFILE)$(FIRST_MAKEFILE) map_clean" -'; - push @m,"\n${tmpdir}perlmain.c : \$(FIRST_MAKEFILE)\n\t\$(NOECHO) \$(PERL) -e 1 >${tmpdir}Writemain.tmp\n"; - push @m, "# More from the 255-char line length limit\n"; - foreach (@staticpkgs) { - push @m,' $(NOECHO) $(PERL) -e "print q{',$_,qq[}" >>${tmpdir}Writemain.tmp\n]; - } - - push @m, sprintf <<'MAKE_FRAG', $tmpdir, $tmpdir; - $(NOECHO) $(PERL) $(MAP_PERLINC) -ane "use ExtUtils::Miniperl; writemain(@F)" %sWritemain.tmp >$(MMS$TARGET) - $(NOECHO) $(RM_F) %sWritemain.tmp -MAKE_FRAG - - push @m, q[ -# Still more from the 255-char line length limit -doc_inst_perl : - $(NOECHO) $(MKPATH) $(DESTINSTALLARCHLIB) - $(NOECHO) $(ECHO) "Perl binary $(MAP_TARGET)|" >.MM_tmp - $(NOECHO) $(ECHO) "MAP_STATIC|$(MAP_STATIC)|" >>.MM_tmp - $(NOECHO) $(PERL) -pl040 -e " " ].$self->catfile('$(INST_ARCHAUTODIR)','extralibs.all'),q[ >>.MM_tmp - $(NOECHO) $(ECHO) -e "MAP_LIBPERL|$(MAP_LIBPERL)|" >>.MM_tmp - $(NOECHO) $(DOC_INSTALL) <.MM_tmp >>].$self->catfile('$(DESTINSTALLARCHLIB)','perllocal.pod').q[ - $(NOECHO) $(RM_F) .MM_tmp -]; - - push @m, " -inst_perl : pure_inst_perl doc_inst_perl - \$(NOECHO) \$(NOOP) - -pure_inst_perl : \$(MAP_TARGET) - $self->{CP} \$(MAP_SHRTARGET) ",$self->fixpath($Config{'installbin'},1)," - $self->{CP} \$(MAP_TARGET) ",$self->fixpath($Config{'installbin'},1)," - -clean :: map_clean - \$(NOECHO) \$(NOOP) - -map_clean : - \$(RM_F) ${tmpdir}perlmain\$(OBJ_EXT) ${tmpdir}perlmain.c \$(FIRST_MAKEFILE) - \$(RM_F) ${tmpdir}Makeaperl.Opt ${tmpdir}PerlShr.Opt \$(MAP_TARGET) -"; - - join '', @m; -} - - -# --- Output postprocessing section --- - -=item maketext_filter (override) - -Ensure that colons marking targets are preceded by space, in order -to distinguish the target delimiter from a colon appearing as -part of a filespec. - -=cut - -sub maketext_filter { - my($self, $text) = @_; - - $text =~ s/^([^\s:=]+)(:+\s)/$1 $2/mg; - return $text; -} - -=item prefixify (override) - -prefixifying on VMS is simple. Each should simply be: - - perl_root:[some.dir] - -which can just be converted to: - - volume:[your.prefix.some.dir] - -otherwise you get the default layout. - -In effect, your search prefix is ignored and $Config{vms_prefix} is -used instead. - -=cut - -sub prefixify { - my($self, $var, $sprefix, $rprefix, $default) = @_; - - # Translate $(PERLPREFIX) to a real path. - $rprefix = $self->eliminate_macros($rprefix); - $rprefix = vmspath($rprefix) if $rprefix; - $sprefix = vmspath($sprefix) if $sprefix; - - $default = vmsify($default) - unless $default =~ /\[.*\]/; - - (my $var_no_install = $var) =~ s/^install//; - my $path = $self->{uc $var} || - $ExtUtils::MM_Unix::Config_Override{lc $var} || - $Config{lc $var} || $Config{lc $var_no_install}; - - if( !$path ) { - warn " no Config found for $var.\n" if $Verbose >= 2; - $path = $self->_prefixify_default($rprefix, $default); - } - elsif( !$self->{ARGS}{PREFIX} || !$self->file_name_is_absolute($path) ) { - # do nothing if there's no prefix or if its relative - } - elsif( $sprefix eq $rprefix ) { - warn " no new prefix.\n" if $Verbose >= 2; - } - else { - - warn " prefixify $var => $path\n" if $Verbose >= 2; - warn " from $sprefix to $rprefix\n" if $Verbose >= 2; - - my($path_vol, $path_dirs) = $self->splitpath( $path ); - if( $path_vol eq $Config{vms_prefix}.':' ) { - warn " $Config{vms_prefix}: seen\n" if $Verbose >= 2; - - $path_dirs =~ s{^\[}{\[.} unless $path_dirs =~ m{^\[\.}; - $path = $self->_catprefix($rprefix, $path_dirs); - } - else { - $path = $self->_prefixify_default($rprefix, $default); - } - } - - print " now $path\n" if $Verbose >= 2; - return $self->{uc $var} = $path; -} - - -sub _prefixify_default { - my($self, $rprefix, $default) = @_; - - warn " cannot prefix, using default.\n" if $Verbose >= 2; - - if( !$default ) { - warn "No default!\n" if $Verbose >= 1; - return; - } - if( !$rprefix ) { - warn "No replacement prefix!\n" if $Verbose >= 1; - return ''; - } - - return $self->_catprefix($rprefix, $default); -} - -sub _catprefix { - my($self, $rprefix, $default) = @_; - - my($rvol, $rdirs) = $self->splitpath($rprefix); - if( $rvol ) { - return $self->catpath($rvol, - $self->catdir($rdirs, $default), - '' - ) - } - else { - return $self->catdir($rdirs, $default); - } -} - - -=item cd - -=cut - -sub cd { - my($self, $dir, @cmds) = @_; - - $dir = vmspath($dir); - - my $cmd = join "\n\t", map "$_", @cmds; - - # No leading tab makes it look right when embedded - my $make_frag = sprintf <<'MAKE_FRAG', $dir, $cmd; -startdir = F$Environment("Default") - Set Default %s - %s - Set Default 'startdir' -MAKE_FRAG - - # No trailing newline makes this easier to embed - chomp $make_frag; - - return $make_frag; -} - - -=item oneliner - -=cut - -sub oneliner { - my($self, $cmd, $switches) = @_; - $switches = [] unless defined $switches; - - # Strip leading and trailing newlines - $cmd =~ s{^\n+}{}; - $cmd =~ s{\n+$}{}; - - my @cmds = split /\n/, $cmd; - $cmd = join " \n\t -e ", map $self->quote_literal($_), @cmds; - $cmd = $self->escape_newlines($cmd); - - # Switches must be quoted else they will be lowercased. - $switches = join ' ', map { qq{"$_"} } @$switches; - - return qq{\$(ABSPERLRUN) $switches -e $cmd "--"}; -} - - -=item B<echo> - -perl trips up on "<foo>" thinking it's an input redirect. So we use the -native Write command instead. Besides, it's faster. - -=cut - -sub echo { - my($self, $text, $file, $opts) = @_; - - # Compatibility with old options - if( !ref $opts ) { - my $append = $opts; - $opts = { append => $append || 0 }; - } - my $opencmd = $opts->{append} ? 'Open/Append' : 'Open/Write'; - - $opts->{allow_variables} = 0 unless defined $opts->{allow_variables}; - - my $ql_opts = { allow_variables => $opts->{allow_variables} }; - - my @cmds = ("\$(NOECHO) $opencmd MMECHOFILE $file "); - push @cmds, map { '$(NOECHO) Write MMECHOFILE '.$self->quote_literal($_, $ql_opts) } - split /\n/, $text; - push @cmds, '$(NOECHO) Close MMECHOFILE'; - return @cmds; -} - - -=item quote_literal - -=cut - -sub quote_literal { - my($self, $text, $opts) = @_; - $opts->{allow_variables} = 1 unless defined $opts->{allow_variables}; - - # I believe this is all we should need. - $text =~ s{"}{""}g; - - $text = $opts->{allow_variables} - ? $self->escape_dollarsigns($text) : $self->escape_all_dollarsigns($text); - - return qq{"$text"}; -} - -=item escape_dollarsigns - -Quote, don't escape. - -=cut - -sub escape_dollarsigns { - my($self, $text) = @_; - - # Quote dollar signs which are not starting a variable - $text =~ s{\$ (?!\() }{"\$"}gx; - - return $text; -} - - -=item escape_all_dollarsigns - -Quote, don't escape. - -=cut - -sub escape_all_dollarsigns { - my($self, $text) = @_; - - # Quote dollar signs - $text =~ s{\$}{"\$\"}gx; - - return $text; -} - -=item escape_newlines - -=cut - -sub escape_newlines { - my($self, $text) = @_; - - $text =~ s{\n}{-\n}g; - - return $text; -} - -=item max_exec_len - -256 characters. - -=cut - -sub max_exec_len { - my $self = shift; - - return $self->{_MAX_EXEC_LEN} ||= 256; -} - -=item init_linker - -=cut - -sub init_linker { - my $self = shift; - $self->{EXPORT_LIST} ||= '$(BASEEXT).opt'; - - my $shr = $Config{dbgprefix} . 'PERLSHR'; - if ($self->{PERL_SRC}) { - $self->{PERL_ARCHIVE} ||= - $self->catfile($self->{PERL_SRC}, "$shr.$Config{'dlext'}"); - } - else { - $self->{PERL_ARCHIVE} ||= - $ENV{$shr} ? $ENV{$shr} : "Sys\$Share:$shr.$Config{'dlext'}"; - } - - $self->{PERL_ARCHIVEDEP} ||= ''; - $self->{PERL_ARCHIVE_AFTER} ||= ''; -} - - -=item catdir (override) - -=item catfile (override) - -Eliminate the macros in the output to the MMS/MMK file. - -(File::Spec::VMS used to do this for us, but it's being removed) - -=cut - -sub catdir { - my $self = shift; - - # Process the macros on VMS MMS/MMK - my @args = map { m{\$\(} ? $self->eliminate_macros($_) : $_ } @_; - - my $dir = $self->SUPER::catdir(@args); - - # Fix up the directory and force it to VMS format. - $dir = $self->fixpath($dir, 1); - - return $dir; -} - -sub catfile { - my $self = shift; - - # Process the macros on VMS MMS/MMK - my @args = map { m{\$\(} ? $self->eliminate_macros($_) : $_ } @_; - - my $file = $self->SUPER::catfile(@args); - - $file = vmsify($file); - - return $file -} - - -=item eliminate_macros - -Expands MM[KS]/Make macros in a text string, using the contents of -identically named elements of C<%$self>, and returns the result -as a file specification in Unix syntax. - -NOTE: This is the canonical version of the method. The version in -File::Spec::VMS is deprecated. - -=cut - -sub eliminate_macros { - my($self,$path) = @_; - return '' unless $path; - $self = {} unless ref $self; - - my($npath) = unixify($path); - # sometimes unixify will return a string with an off-by-one trailing null - $npath =~ s{\0$}{}; - - my($complex) = 0; - my($head,$macro,$tail); - - # perform m##g in scalar context so it acts as an iterator - while ($npath =~ m#(.*?)\$\((\S+?)\)(.*)#gs) { - if (defined $self->{$2}) { - ($head,$macro,$tail) = ($1,$2,$3); - if (ref $self->{$macro}) { - if (ref $self->{$macro} eq 'ARRAY') { - $macro = join ' ', @{$self->{$macro}}; - } - else { - print "Note: can't expand macro \$($macro) containing ",ref($self->{$macro}), - "\n\t(using MMK-specific deferred substitutuon; MMS will break)\n"; - $macro = "\cB$macro\cB"; - $complex = 1; - } - } - else { - $macro = $self->{$macro}; - # Don't unixify if there is unescaped whitespace - $macro = unixify($macro) unless ($macro =~ /(?<!\^)\s/); - $macro =~ s#/\Z(?!\n)##; - } - $npath = "$head$macro$tail"; - } - } - if ($complex) { $npath =~ s#\cB(.*?)\cB#\${$1}#gs; } - $npath; -} - -=item fixpath - - my $path = $mm->fixpath($path); - my $path = $mm->fixpath($path, $is_dir); - -Catchall routine to clean up problem MM[SK]/Make macros. Expands macros -in any directory specification, in order to avoid juxtaposing two -VMS-syntax directories when MM[SK] is run. Also expands expressions which -are all macro, so that we can tell how long the expansion is, and avoid -overrunning DCL's command buffer when MM[KS] is running. - -fixpath() checks to see whether the result matches the name of a -directory in the current default directory and returns a directory or -file specification accordingly. C<$is_dir> can be set to true to -force fixpath() to consider the path to be a directory or false to force -it to be a file. - -NOTE: This is the canonical version of the method. The version in -File::Spec::VMS is deprecated. - -=cut - -sub fixpath { - my($self,$path,$force_path) = @_; - return '' unless $path; - $self = bless {}, $self unless ref $self; - my($fixedpath,$prefix,$name); - - if ($path =~ m#^\$\([^\)]+\)\Z(?!\n)#s || $path =~ m#[/:>\]]#) { - if ($force_path or $path =~ /(?:DIR\)|\])\Z(?!\n)/) { - $fixedpath = vmspath($self->eliminate_macros($path)); - } - else { - $fixedpath = vmsify($self->eliminate_macros($path)); - } - } - elsif ((($prefix,$name) = ($path =~ m#^\$\(([^\)]+)\)(.+)#s)) && $self->{$prefix}) { - my($vmspre) = $self->eliminate_macros("\$($prefix)"); - # is it a dir or just a name? - $vmspre = ($vmspre =~ m|/| or $prefix =~ /DIR\Z(?!\n)/) ? vmspath($vmspre) : ''; - $fixedpath = ($vmspre ? $vmspre : $self->{$prefix}) . $name; - $fixedpath = vmspath($fixedpath) if $force_path; - } - else { - $fixedpath = $path; - $fixedpath = vmspath($fixedpath) if $force_path; - } - # No hints, so we try to guess - if (!defined($force_path) and $fixedpath !~ /[:>(.\]]/) { - $fixedpath = vmspath($fixedpath) if -d $fixedpath; - } - - # Trim off root dirname if it's had other dirs inserted in front of it. - $fixedpath =~ s/\.000000([\]>])/$1/; - # Special case for VMS absolute directory specs: these will have had device - # prepended during trip through Unix syntax in eliminate_macros(), since - # Unix syntax has no way to express "absolute from the top of this device's - # directory tree". - if ($path =~ /^[\[>][^.\-]/) { $fixedpath =~ s/^[^\[<]+//; } - - return $fixedpath; -} - - -=item os_flavor - -VMS is VMS. - -=cut - -sub os_flavor { - return('VMS'); -} - - -=item is_make_type (override) - -None of the make types being checked for is viable on VMS, -plus our $self->{MAKE} is an unexpanded (and unexpandable) -macro whose value is known only to the make utility itself. - -=cut - -sub is_make_type { - my($self, $type) = @_; - return 0; -} - - -=item make_type (override) - -Returns a suitable string describing the type of makefile being written. - -=cut - -sub make_type { "$Config{make}-style"; } - - -=back - - -=head1 AUTHOR - -Original author Charles Bailey F<bailey@newman.upenn.edu> - -Maintained by Michael G Schwern F<schwern@pobox.com> - -See L<ExtUtils::MakeMaker> for patching and contact information. - - -=cut - -1; - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_VOS.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_VOS.pm deleted file mode 100644 index 66c7ff74..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_VOS.pm +++ /dev/null @@ -1,51 +0,0 @@ -package ExtUtils::MM_VOS; - -use strict; -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -require ExtUtils::MM_Unix; -our @ISA = qw(ExtUtils::MM_Unix); - - -=head1 NAME - -ExtUtils::MM_VOS - VOS specific subclass of ExtUtils::MM_Unix - -=head1 SYNOPSIS - - Don't use this module directly. - Use ExtUtils::MM and let it choose. - -=head1 DESCRIPTION - -This is a subclass of ExtUtils::MM_Unix which contains functionality for -VOS. - -Unless otherwise stated it works just like ExtUtils::MM_Unix - -=head2 Overridden methods - -=head3 extra_clean_files - -Cleanup VOS core files - -=cut - -sub extra_clean_files { - return qw(*.kp); -} - - -=head1 AUTHOR - -Michael G Schwern <schwern@pobox.com> with code from ExtUtils::MM_Unix - -=head1 SEE ALSO - -L<ExtUtils::MakeMaker> - -=cut - - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Win32.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Win32.pm deleted file mode 100644 index 43c974d5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Win32.pm +++ /dev/null @@ -1,646 +0,0 @@ -package ExtUtils::MM_Win32; - -use strict; - - -=head1 NAME - -ExtUtils::MM_Win32 - methods to override UN*X behaviour in ExtUtils::MakeMaker - -=head1 SYNOPSIS - - use ExtUtils::MM_Win32; # Done internally by ExtUtils::MakeMaker if needed - -=head1 DESCRIPTION - -See ExtUtils::MM_Unix for a documentation of the methods provided -there. This package overrides the implementation of these methods, not -the semantics. - -=cut - -use ExtUtils::MakeMaker::Config; -use File::Basename; -use File::Spec; -use ExtUtils::MakeMaker qw(neatvalue _sprintf562); - -require ExtUtils::MM_Any; -require ExtUtils::MM_Unix; -our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix ); -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -$ENV{EMXSHELL} = 'sh'; # to run `commands` - -my ( $BORLAND, $GCC, $MSVC ) = _identify_compiler_environment( \%Config ); - -sub _identify_compiler_environment { - my ( $config ) = @_; - - my $BORLAND = $config->{cc} =~ /\bbcc/i ? 1 : 0; - my $GCC = $config->{cc} =~ /\bgcc\b/i ? 1 : 0; - my $MSVC = $config->{cc} =~ /\b(?:cl|icl)/i ? 1 : 0; # MSVC can come as clarm.exe, icl=Intel C - - return ( $BORLAND, $GCC, $MSVC ); -} - - -=head2 Overridden methods - -=over 4 - -=item B<dlsyms> - -=cut - -sub dlsyms { - my($self,%attribs) = @_; - return '' if $self->{SKIPHASH}{'dynamic'}; - $self->xs_dlsyms_iterator(\%attribs); -} - -=item xs_dlsyms_ext - -On Win32, is C<.def>. - -=cut - -sub xs_dlsyms_ext { - '.def'; -} - -=item replace_manpage_separator - -Changes the path separator with . - -=cut - -sub replace_manpage_separator { - my($self,$man) = @_; - $man =~ s,/+,.,g; - $man; -} - - -=item B<maybe_command> - -Since Windows has nothing as simple as an executable bit, we check the -file extension. - -The PATHEXT env variable will be used to get a list of extensions that -might indicate a command, otherwise .com, .exe, .bat and .cmd will be -used by default. - -=cut - -sub maybe_command { - my($self,$file) = @_; - my @e = exists($ENV{'PATHEXT'}) - ? split(/;/, $ENV{PATHEXT}) - : qw(.com .exe .bat .cmd); - my $e = ''; - for (@e) { $e .= "\Q$_\E|" } - chop $e; - # see if file ends in one of the known extensions - if ($file =~ /($e)$/i) { - return $file if -e $file; - } - else { - for (@e) { - return "$file$_" if -e "$file$_"; - } - } - return; -} - - -=item B<init_DIRFILESEP> - -Using \ for Windows, except for "gmake" where it is /. - -=cut - -sub init_DIRFILESEP { - my($self) = shift; - - # The ^ makes sure its not interpreted as an escape in nmake - $self->{DIRFILESEP} = $self->is_make_type('nmake') ? '^\\' : - $self->is_make_type('dmake') ? '\\\\' : - $self->is_make_type('gmake') ? '/' - : '\\'; -} - -=item init_tools - -Override some of the slower, portable commands with Windows specific ones. - -=cut - -sub init_tools { - my ($self) = @_; - - $self->{NOOP} ||= 'rem'; - $self->{DEV_NULL} ||= '> NUL'; - - $self->{FIXIN} ||= $self->{PERL_CORE} ? - "\$(PERLRUN) $self->{PERL_SRC}\\win32\\bin\\pl2bat.pl" : - 'pl2bat.bat'; - - $self->SUPER::init_tools; - - # Setting SHELL from $Config{sh} can break dmake. Its ok without it. - delete $self->{SHELL}; - - return; -} - - -=item init_others - -Override the default link and compile tools. - -LDLOADLIBS's default is changed to $Config{libs}. - -Adjustments are made for Borland's quirks needing -L to come first. - -=cut - -sub init_others { - my $self = shift; - - $self->{LD} ||= 'link'; - $self->{AR} ||= 'lib'; - - $self->SUPER::init_others; - - $self->{LDLOADLIBS} ||= $Config{libs}; - # -Lfoo must come first for Borland, so we put it in LDDLFLAGS - if ($BORLAND) { - my $libs = $self->{LDLOADLIBS}; - my $libpath = ''; - while ($libs =~ s/(?:^|\s)(("?)-L.+?\2)(?:\s|$)/ /) { - $libpath .= ' ' if length $libpath; - $libpath .= $1; - } - $self->{LDLOADLIBS} = $libs; - $self->{LDDLFLAGS} ||= $Config{lddlflags}; - $self->{LDDLFLAGS} .= " $libpath"; - } - - return; -} - - -=item init_platform - -Add MM_Win32_VERSION. - -=item platform_constants - -=cut - -sub init_platform { - my($self) = shift; - - $self->{MM_Win32_VERSION} = $VERSION; - - return; -} - -sub platform_constants { - my($self) = shift; - my $make_frag = ''; - - foreach my $macro (qw(MM_Win32_VERSION)) - { - next unless defined $self->{$macro}; - $make_frag .= "$macro = $self->{$macro}\n"; - } - - return $make_frag; -} - -=item specify_shell - -Set SHELL to $ENV{COMSPEC} only if make is type 'gmake'. - -=cut - -sub specify_shell { - my $self = shift; - return '' unless $self->is_make_type('gmake'); - "\nSHELL = $ENV{COMSPEC}\n"; -} - -=item constants - -Add MAXLINELENGTH for dmake before all the constants are output. - -=cut - -sub constants { - my $self = shift; - - my $make_text = $self->SUPER::constants; - return $make_text unless $self->is_make_type('dmake'); - - # dmake won't read any single "line" (even those with escaped newlines) - # larger than a certain size which can be as small as 8k. PM_TO_BLIB - # on large modules like DateTime::TimeZone can create lines over 32k. - # So we'll crank it up to a <ironic>WHOPPING</ironic> 64k. - # - # This has to come here before all the constants and not in - # platform_constants which is after constants. - my $size = $self->{MAXLINELENGTH} || 800000; - my $prefix = qq{ -# Get dmake to read long commands like PM_TO_BLIB -MAXLINELENGTH = $size - -}; - - return $prefix . $make_text; -} - - -=item special_targets - -Add .USESHELL target for dmake. - -=cut - -sub special_targets { - my($self) = @_; - - my $make_frag = $self->SUPER::special_targets; - - $make_frag .= <<'MAKE_FRAG' if $self->is_make_type('dmake'); -.USESHELL : -MAKE_FRAG - - return $make_frag; -} - -=item static_lib_pure_cmd - -Defines how to run the archive utility - -=cut - -sub static_lib_pure_cmd { - my ($self, $from) = @_; - $from =~ s/(\$\(\w+)(\))/$1:^"+"$2/g if $BORLAND; - sprintf qq{\t\$(AR) %s\n}, ($BORLAND ? '$@ ' . $from - : ($GCC ? '-ru $@ ' . $from - : '-out:$@ ' . $from)); -} - -=item dynamic_lib - -Methods are overridden here: not dynamic_lib itself, but the utility -ones that do the OS-specific work. - -=cut - -sub xs_make_dynamic_lib { - my ($self, $attribs, $from, $to, $todir, $ldfrom, $exportlist) = @_; - my @m = sprintf '%s : %s $(MYEXTLIB) %s$(DFSEP).exists %s $(PERL_ARCHIVEDEP) $(INST_DYNAMIC_DEP)'."\n", $to, $from, $todir, $exportlist; - if ($GCC) { - # per https://rt.cpan.org/Ticket/Display.html?id=78395 no longer - # uses dlltool - relies on post 2002 MinGW - # 1 2 - push @m, _sprintf562 <<'EOF', $exportlist, $ldfrom; - $(LD) %1$s -o $@ $(LDDLFLAGS) %2$s $(OTHERLDFLAGS) $(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) -Wl,--enable-auto-image-base -EOF - } elsif ($BORLAND) { - my $ldargs = $self->is_make_type('dmake') - ? q{"$(PERL_ARCHIVE:s,/,\,)" $(LDLOADLIBS:s,/,\,) $(MYEXTLIB:s,/,\,),} - : q{"$(subst /,\,$(PERL_ARCHIVE))" $(subst /,\,$(LDLOADLIBS)) $(subst /,\,$(MYEXTLIB)),}; - my $subbed; - if ($exportlist eq '$(EXPORT_LIST)') { - $subbed = $self->is_make_type('dmake') - ? q{$(EXPORT_LIST:s,/,\,)} - : q{$(subst /,\,$(EXPORT_LIST))}; - } else { - # in XSMULTI, exportlist is per-XS, so have to sub in perl not make - ($subbed = $exportlist) =~ s#/#\\#g; - } - push @m, sprintf <<'EOF', $ldfrom, $ldargs . $subbed; - $(LD) $(LDDLFLAGS) $(OTHERLDFLAGS) %s,$@,,%s,$(RESFILES) -EOF - } else { # VC - push @m, sprintf <<'EOF', $ldfrom, $exportlist; - $(LD) -out:$@ $(LDDLFLAGS) %s $(OTHERLDFLAGS) $(MYEXTLIB) "$(PERL_ARCHIVE)" $(LDLOADLIBS) -def:%s -EOF - # Embed the manifest file if it exists - push(@m, q{ if exist $@.manifest mt -nologo -manifest $@.manifest -outputresource:$@;2 - if exist $@.manifest del $@.manifest}); - } - push @m, "\n\t\$(CHMOD) \$(PERM_RWX) \$\@\n"; - - join '', @m; -} - -sub xs_dynamic_lib_macros { - my ($self, $attribs) = @_; - my $otherldflags = $attribs->{OTHERLDFLAGS} || ($BORLAND ? 'c0d32.obj': ''); - my $inst_dynamic_dep = $attribs->{INST_DYNAMIC_DEP} || ""; - sprintf <<'EOF', $otherldflags, $inst_dynamic_dep; -# This section creates the dynamically loadable objects from relevant -# objects and possibly $(MYEXTLIB). -OTHERLDFLAGS = %s -INST_DYNAMIC_DEP = %s -EOF -} - -=item extra_clean_files - -Clean out some extra dll.{base,exp} files which might be generated by -gcc. Otherwise, take out all *.pdb files. - -=cut - -sub extra_clean_files { - my $self = shift; - - return $GCC ? (qw(dll.base dll.exp)) : ('*.pdb'); -} - -=item init_linker - -=cut - -sub init_linker { - my $self = shift; - - $self->{PERL_ARCHIVE} = "\$(PERL_INC)\\$Config{libperl}"; - $self->{PERL_ARCHIVEDEP} = "\$(PERL_INCDEP)\\$Config{libperl}"; - $self->{PERL_ARCHIVE_AFTER} = ''; - $self->{EXPORT_LIST} = '$(BASEEXT).def'; -} - - -=item perl_script - -Checks for the perl program under several common perl extensions. - -=cut - -sub perl_script { - my($self,$file) = @_; - return $file if -r $file && -f _; - return "$file.pl" if -r "$file.pl" && -f _; - return "$file.plx" if -r "$file.plx" && -f _; - return "$file.bat" if -r "$file.bat" && -f _; - return; -} - -sub can_dep_space { - my $self = shift; - 1; # with Win32::GetShortPathName -} - -=item quote_dep - -=cut - -sub quote_dep { - my ($self, $arg) = @_; - if ($arg =~ / / and not $self->is_make_type('gmake')) { - require Win32; - $arg = Win32::GetShortPathName($arg); - die <<EOF if not defined $arg or $arg =~ / /; -Tried to use make dependency with space for non-GNU make: - '$arg' -Fallback to short pathname failed. -EOF - return $arg; - } - return $self->SUPER::quote_dep($arg); -} - - -=item xs_obj_opt - -Override to fixup -o flags for MSVC. - -=cut - -sub xs_obj_opt { - my ($self, $output_file) = @_; - ($MSVC ? "/Fo" : "-o ") . $output_file; -} - - -=item pasthru - -All we send is -nologo to nmake to prevent it from printing its damned -banner. - -=cut - -sub pasthru { - my($self) = shift; - my $old = $self->SUPER::pasthru; - return $old unless $self->is_make_type('nmake'); - $old =~ s/(PASTHRU\s*=\s*)/$1 -nologo /; - $old; -} - - -=item arch_check (override) - -Normalize all arguments for consistency of comparison. - -=cut - -sub arch_check { - my $self = shift; - - # Win32 is an XS module, minperl won't have it. - # arch_check() is not critical, so just fake it. - return 1 unless $self->can_load_xs; - return $self->SUPER::arch_check( map { $self->_normalize_path_name($_) } @_); -} - -sub _normalize_path_name { - my $self = shift; - my $file = shift; - - require Win32; - my $short = Win32::GetShortPathName($file); - return defined $short ? lc $short : lc $file; -} - - -=item oneliner - -These are based on what command.com does on Win98. They may be wrong -for other Windows shells, I don't know. - -=cut - -sub oneliner { - my($self, $cmd, $switches) = @_; - $switches = [] unless defined $switches; - - # Strip leading and trailing newlines - $cmd =~ s{^\n+}{}; - $cmd =~ s{\n+$}{}; - - $cmd = $self->quote_literal($cmd); - $cmd = $self->escape_newlines($cmd); - - $switches = join ' ', @$switches; - - return qq{\$(ABSPERLRUN) $switches -e $cmd --}; -} - - -sub quote_literal { - my($self, $text, $opts) = @_; - $opts->{allow_variables} = 1 unless defined $opts->{allow_variables}; - - # See: http://www.autohotkey.net/~deleyd/parameters/parameters.htm#CPP - - # Apply the Microsoft C/C++ parsing rules - $text =~ s{\\\\"}{\\\\\\\\\\"}g; # \\" -> \\\\\" - $text =~ s{(?<!\\)\\"}{\\\\\\"}g; # \" -> \\\" - $text =~ s{(?<!\\)"}{\\"}g; # " -> \" - $text = qq{"$text"} if $text =~ /[ \t]/; - - # Apply the Command Prompt parsing rules (cmd.exe) - my @text = split /("[^"]*")/, $text; - # We should also escape parentheses, but it breaks one-liners containing - # $(MACRO)s in makefiles. - s{([<>|&^@!])}{^$1}g foreach grep { !/^"[^"]*"$/ } @text; - $text = join('', @text); - - # dmake expands {{ to { and }} to }. - if( $self->is_make_type('dmake') ) { - $text =~ s/{/{{/g; - $text =~ s/}/}}/g; - } - - $text = $opts->{allow_variables} - ? $self->escape_dollarsigns($text) : $self->escape_all_dollarsigns($text); - - return $text; -} - - -sub escape_newlines { - my($self, $text) = @_; - - # Escape newlines - $text =~ s{\n}{\\\n}g; - - return $text; -} - - -=item cd - -dmake can handle Unix style cd'ing but nmake (at least 1.5) cannot. It -wants: - - cd dir1\dir2 - command - another_command - cd ..\.. - -=cut - -sub cd { - my($self, $dir, @cmds) = @_; - - return $self->SUPER::cd($dir, @cmds) unless $self->is_make_type('nmake'); - - my $cmd = join "\n\t", map "$_", @cmds; - - my $updirs = $self->catdir(map { $self->updir } $self->splitdir($dir)); - - # No leading tab and no trailing newline makes for easier embedding. - my $make_frag = sprintf <<'MAKE_FRAG', $dir, $cmd, $updirs; -cd %s - %s - cd %s -MAKE_FRAG - - chomp $make_frag; - - return $make_frag; -} - - -=item max_exec_len - -nmake 1.50 limits command length to 2048 characters. - -=cut - -sub max_exec_len { - my $self = shift; - - return $self->{_MAX_EXEC_LEN} ||= 2 * 1024; -} - - -=item os_flavor - -Windows is Win32. - -=cut - -sub os_flavor { - return('Win32'); -} - - -=item cflags - -Defines the PERLDLL symbol if we are configured for static building since all -code destined for the perl5xx.dll must be compiled with the PERLDLL symbol -defined. - -=cut - -sub cflags { - my($self,$libperl)=@_; - return $self->{CFLAGS} if $self->{CFLAGS}; - return '' unless $self->needs_linking(); - - my $base = $self->SUPER::cflags($libperl); - foreach (split /\n/, $base) { - /^(\S*)\s*=\s*(\S*)$/ and $self->{$1} = $2; - }; - $self->{CCFLAGS} .= " -DPERLDLL" if ($self->{LINKTYPE} eq 'static'); - - return $self->{CFLAGS} = qq{ -CCFLAGS = $self->{CCFLAGS} -OPTIMIZE = $self->{OPTIMIZE} -PERLTYPE = $self->{PERLTYPE} -}; - -} - -=item make_type - -Returns a suitable string describing the type of makefile being written. - -=cut - -sub make_type { - my ($self) = @_; - my $make = $self->make; - $make = +( File::Spec->splitpath( $make ) )[-1]; - $make =~ s!\.exe$!!i; - if ( $make =~ m![^A-Z0-9]!i ) { - ($make) = grep { m!make!i } split m![^A-Z0-9]!i, $make; - } - return "$make-style"; -} - -1; -__END__ - -=back diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Win95.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Win95.pm deleted file mode 100644 index 85a80c63..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MM_Win95.pm +++ /dev/null @@ -1,76 +0,0 @@ -package ExtUtils::MM_Win95; - -use strict; - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -require ExtUtils::MM_Win32; -our @ISA = qw(ExtUtils::MM_Win32); - -use ExtUtils::MakeMaker::Config; - - -=head1 NAME - -ExtUtils::MM_Win95 - method to customize MakeMaker for Win9X - -=head1 SYNOPSIS - - You should not be using this module directly. - -=head1 DESCRIPTION - -This is a subclass of ExtUtils::MM_Win32 containing changes necessary -to get MakeMaker playing nice with command.com and other Win9Xisms. - -=head2 Overridden methods - -Most of these make up for limitations in the Win9x/nmake command shell. - -=over 4 - - -=item max_exec_len - -Win98 chokes on things like Encode if we set the max length to nmake's max -of 2K. So we go for a more conservative value of 1K. - -=cut - -sub max_exec_len { - my $self = shift; - - return $self->{_MAX_EXEC_LEN} ||= 1024; -} - - -=item os_flavor - -Win95 and Win98 and WinME are collectively Win9x and Win32 - -=cut - -sub os_flavor { - my $self = shift; - return ($self->SUPER::os_flavor, 'Win9x'); -} - - -=back - - -=head1 AUTHOR - -Code originally inside MM_Win32. Original author unknown. - -Currently maintained by Michael G Schwern C<schwern@pobox.com>. - -Send patches and ideas to C<makemaker@perl.org>. - -See https://metacpan.org/release/ExtUtils-MakeMaker. - -=cut - - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MY.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MY.pm deleted file mode 100644 index a193f3a0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MY.pm +++ /dev/null @@ -1,41 +0,0 @@ -package ExtUtils::MY; - -use strict; -require ExtUtils::MM; - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; -our @ISA = qw(ExtUtils::MM); - -{ - package MY; - our @ISA = qw(ExtUtils::MY); -} - -sub DESTROY {} - - -=head1 NAME - -ExtUtils::MY - ExtUtils::MakeMaker subclass for customization - -=head1 SYNOPSIS - - # in your Makefile.PL - sub MY::whatever { - ... - } - -=head1 DESCRIPTION - -B<FOR INTERNAL USE ONLY> - -ExtUtils::MY is a subclass of ExtUtils::MM. Its provided in your -Makefile.PL for you to add and override MakeMaker functionality. - -It also provides a convenient alias via the MY class. - -ExtUtils::MY might turn out to be a temporary solution, but MY won't -go away. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker.pm deleted file mode 100644 index 90d9eac4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker.pm +++ /dev/null @@ -1,3412 +0,0 @@ -# $Id$ -package ExtUtils::MakeMaker; - -use strict; - -BEGIN {require 5.006;} - -require Exporter; -use ExtUtils::MakeMaker::Config; -use ExtUtils::MakeMaker::version; # ensure we always have our fake version.pm -use Carp; -use File::Path; -my $CAN_DECODE = eval { require ExtUtils::MakeMaker::Locale; }; # 2 birds, 1 stone -eval { ExtUtils::MakeMaker::Locale::reinit('UTF-8') } - if $CAN_DECODE and Encode::find_encoding('locale')->name eq 'ascii'; - -our $Verbose = 0; # exported -our @Parent; # needs to be localized -our @Get_from_Config; # referenced by MM_Unix -our @MM_Sections; -our @Overridable; -my @Prepend_parent; -my %Recognized_Att_Keys; -our %macro_fsentity; # whether a macro is a filesystem name -our %macro_dep; # whether a macro is a dependency - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; ## no critic [BuiltinFunctions::ProhibitStringyEval] - -# Emulate something resembling CVS $Revision$ -(our $Revision = $VERSION) =~ s{_}{}; -$Revision = int $Revision * 10000; - -our $Filename = __FILE__; # referenced outside MakeMaker - -our @ISA = qw(Exporter); -our @EXPORT = qw(&WriteMakefile $Verbose &prompt &os_unsupported); -our @EXPORT_OK = qw($VERSION &neatvalue &mkbootstrap &mksymlists - &WriteEmptyMakefile &open_for_writing &write_file_via_tmp - &_sprintf562); - -# These will go away once the last of the Win32 & VMS specific code is -# purged. -my $Is_VMS = $^O eq 'VMS'; -my $Is_Win32 = $^O eq 'MSWin32'; -our $UNDER_CORE = $ENV{PERL_CORE}; # needs to be our - -full_setup(); - -require ExtUtils::MM; # Things like CPAN assume loading ExtUtils::MakeMaker - # will give them MM. - -require ExtUtils::MY; # XXX pre-5.8 versions of ExtUtils::Embed expect - # loading ExtUtils::MakeMaker will give them MY. - # This will go when Embed is its own CPAN module. - - -# 5.6.2 can't do sprintf "%1$s" - this can only do %s -sub _sprintf562 { - my ($format, @args) = @_; - for (my $i = 1; $i <= @args; $i++) { - $format =~ s#%$i\$s#$args[$i-1]#g; - } - $format; -} - -sub WriteMakefile { - croak "WriteMakefile: Need even number of args" if @_ % 2; - - require ExtUtils::MY; - my %att = @_; - - _convert_compat_attrs(\%att); - - _verify_att(\%att); - - my $mm = MM->new(\%att); - $mm->flush; - - return $mm; -} - - -# Basic signatures of the attributes WriteMakefile takes. Each is the -# reference type. Empty value indicate it takes a non-reference -# scalar. -my %Att_Sigs; -my %Special_Sigs = ( - AUTHOR => 'ARRAY', - C => 'ARRAY', - CONFIG => 'ARRAY', - CONFIGURE => 'CODE', - DIR => 'ARRAY', - DL_FUNCS => 'HASH', - DL_VARS => 'ARRAY', - EXCLUDE_EXT => 'ARRAY', - EXE_FILES => 'ARRAY', - FUNCLIST => 'ARRAY', - H => 'ARRAY', - IMPORTS => 'HASH', - INCLUDE_EXT => 'ARRAY', - LIBS => ['ARRAY',''], - MAN1PODS => 'HASH', - MAN3PODS => 'HASH', - META_ADD => 'HASH', - META_MERGE => 'HASH', - OBJECT => ['ARRAY', ''], - PL_FILES => 'HASH', - PM => 'HASH', - PMLIBDIRS => 'ARRAY', - PMLIBPARENTDIRS => 'ARRAY', - PREREQ_PM => 'HASH', - BUILD_REQUIRES => 'HASH', - CONFIGURE_REQUIRES => 'HASH', - TEST_REQUIRES => 'HASH', - SKIP => 'ARRAY', - TYPEMAPS => 'ARRAY', - XS => 'HASH', - XSBUILD => 'HASH', - VERSION => ['version',''], - _KEEP_AFTER_FLUSH => '', - - clean => 'HASH', - depend => 'HASH', - dist => 'HASH', - dynamic_lib=> 'HASH', - linkext => 'HASH', - macro => 'HASH', - postamble => 'HASH', - realclean => 'HASH', - test => 'HASH', - tool_autosplit => 'HASH', -); - -@Att_Sigs{keys %Recognized_Att_Keys} = ('') x keys %Recognized_Att_Keys; -@Att_Sigs{keys %Special_Sigs} = values %Special_Sigs; - -sub _convert_compat_attrs { #result of running several times should be same - my($att) = @_; - if (exists $att->{AUTHOR}) { - if ($att->{AUTHOR}) { - if (!ref($att->{AUTHOR})) { - my $t = $att->{AUTHOR}; - $att->{AUTHOR} = [$t]; - } - } else { - $att->{AUTHOR} = []; - } - } -} - -sub _verify_att { - my($att) = @_; - - foreach my $key (sort keys %$att) { - my $val = $att->{$key}; - my $sig = $Att_Sigs{$key}; - unless( defined $sig ) { - warn "WARNING: $key is not a known parameter.\n"; - next; - } - - my @sigs = ref $sig ? @$sig : $sig; - my $given = ref $val; - unless( grep { _is_of_type($val, $_) } @sigs ) { - my $takes = join " or ", map { _format_att($_) } @sigs; - - my $has = _format_att($given); - warn "WARNING: $key takes a $takes not a $has.\n". - " Please inform the author.\n"; - } - } -} - - -# Check if a given thing is a reference or instance of $type -sub _is_of_type { - my($thing, $type) = @_; - - return 1 if ref $thing eq $type; - - local $SIG{__DIE__}; - return 1 if eval{ $thing->isa($type) }; - - return 0; -} - - -sub _format_att { - my $given = shift; - - return $given eq '' ? "string/number" - : uc $given eq $given ? "$given reference" - : "$given object" - ; -} - - -sub prompt ($;$) { ## no critic - my($mess, $def) = @_; - confess("prompt function called without an argument") - unless defined $mess; - - my $isa_tty = -t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT)) ; - - my $dispdef = defined $def ? "[$def] " : " "; - $def = defined $def ? $def : ""; - - local $|=1; - local $\; - print "$mess $dispdef"; - - my $ans; - if ($ENV{PERL_MM_USE_DEFAULT} || (!$isa_tty && eof STDIN)) { - print "$def\n"; - } - else { - $ans = <STDIN>; - if( defined $ans ) { - $ans =~ s{\015?\012$}{}; - } - else { # user hit ctrl-D - print "\n"; - } - } - - return (!defined $ans || $ans eq '') ? $def : $ans; -} - -sub os_unsupported { - die "OS unsupported\n"; -} - -sub eval_in_subdirs { - my($self) = @_; - use Cwd qw(cwd abs_path); - my $pwd = cwd() || die "Can't figure out your cwd!"; - - local @INC = map eval {abs_path($_) if -e} || $_, @INC; - push @INC, '.'; # '.' has to always be at the end of @INC - - foreach my $dir (@{$self->{DIR}}){ - my($abs) = $self->catdir($pwd,$dir); - eval { $self->eval_in_x($abs); }; - last if $@; - } - chdir $pwd; - die $@ if $@; -} - -sub eval_in_x { - my($self,$dir) = @_; - chdir $dir or carp("Couldn't change to directory $dir: $!"); - - { - package main; - do './Makefile.PL'; - }; - if ($@) { -# if ($@ =~ /prerequisites/) { -# die "MakeMaker WARNING: $@"; -# } else { -# warn "WARNING from evaluation of $dir/Makefile.PL: $@"; -# } - die "ERROR from evaluation of $dir/Makefile.PL: $@"; - } -} - - -# package name for the classes into which the first object will be blessed -my $PACKNAME = 'PACK000'; - -sub full_setup { - $Verbose ||= 0; - - my @dep_macros = qw/ - PERL_INCDEP PERL_ARCHLIBDEP PERL_ARCHIVEDEP - /; - - my @fs_macros = qw/ - FULLPERL XSUBPPDIR - - INST_ARCHLIB INST_SCRIPT INST_BIN INST_LIB INST_MAN1DIR INST_MAN3DIR - INSTALLDIRS - DESTDIR PREFIX INSTALL_BASE - PERLPREFIX SITEPREFIX VENDORPREFIX - INSTALLPRIVLIB INSTALLSITELIB INSTALLVENDORLIB - INSTALLARCHLIB INSTALLSITEARCH INSTALLVENDORARCH - INSTALLBIN INSTALLSITEBIN INSTALLVENDORBIN - INSTALLMAN1DIR INSTALLMAN3DIR - INSTALLSITEMAN1DIR INSTALLSITEMAN3DIR - INSTALLVENDORMAN1DIR INSTALLVENDORMAN3DIR - INSTALLSCRIPT INSTALLSITESCRIPT INSTALLVENDORSCRIPT - PERL_LIB PERL_ARCHLIB - SITELIBEXP SITEARCHEXP - - MAKE LIBPERL_A LIB PERL_SRC PERL_INC - PPM_INSTALL_EXEC PPM_UNINSTALL_EXEC - PPM_INSTALL_SCRIPT PPM_UNINSTALL_SCRIPT - /; - - my @attrib_help = qw/ - - AUTHOR ABSTRACT ABSTRACT_FROM BINARY_LOCATION - C CAPI CCFLAGS CONFIG CONFIGURE DEFINE DIR DISTNAME DISTVNAME - DL_FUNCS DL_VARS - EXCLUDE_EXT EXE_FILES FIRST_MAKEFILE - FULLPERLRUN FULLPERLRUNINST - FUNCLIST H IMPORTS - - INC INCLUDE_EXT LDFROM LIBS LICENSE - LINKTYPE MAKEAPERL MAKEFILE MAKEFILE_OLD MAN1PODS MAN3PODS MAP_TARGET - META_ADD META_MERGE MIN_PERL_VERSION BUILD_REQUIRES CONFIGURE_REQUIRES - MYEXTLIB NAME NEEDS_LINKING NOECHO NO_META NO_MYMETA NO_PACKLIST NO_PERLLOCAL - NORECURS NO_VC OBJECT OPTIMIZE PERL_MALLOC_OK PERL PERLMAINCC PERLRUN - PERLRUNINST PERL_CORE - PERM_DIR PERM_RW PERM_RWX MAGICXS - PL_FILES PM PM_FILTER PMLIBDIRS PMLIBPARENTDIRS POLLUTE - PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ - SIGN SKIP TEST_REQUIRES TYPEMAPS UNINST VERSION VERSION_FROM XS - XSBUILD XSMULTI XSOPT XSPROTOARG XS_VERSION - clean depend dist dynamic_lib linkext macro realclean tool_autosplit - - MAN1EXT MAN3EXT - - MACPERL_SRC MACPERL_LIB MACLIBS_68K MACLIBS_PPC MACLIBS_SC MACLIBS_MRC - MACLIBS_ALL_68K MACLIBS_ALL_PPC MACLIBS_SHARED - /; - push @attrib_help, @fs_macros; - @macro_fsentity{@fs_macros, @dep_macros} = (1) x (@fs_macros+@dep_macros); - @macro_dep{@dep_macros} = (1) x @dep_macros; - - # IMPORTS is used under OS/2 and Win32 - - # @Overridable is close to @MM_Sections but not identical. The - # order is important. Many subroutines declare macros. These - # depend on each other. Let's try to collect the macros up front, - # then pasthru, then the rules. - - # MM_Sections are the sections we have to call explicitly - # in Overridable we have subroutines that are used indirectly - - - @MM_Sections = - qw( - - post_initialize const_config constants platform_constants - tool_autosplit tool_xsubpp tools_other - - makemakerdflt - - dist macro depend cflags const_loadlibs const_cccmd - post_constants - - pasthru - - special_targets - c_o xs_c xs_o - top_targets blibdirs linkext dlsyms dynamic_bs dynamic - dynamic_lib static static_lib manifypods processPL - installbin subdirs - clean_subdirs clean realclean_subdirs realclean - metafile signature - dist_basics dist_core distdir dist_test dist_ci distmeta distsignature - install force perldepend makefile staticmake test ppd - - ); # loses section ordering - - @Overridable = @MM_Sections; - push @Overridable, qw[ - - libscan makeaperl needs_linking - subdir_x test_via_harness test_via_script - - init_VERSION init_dist init_INST init_INSTALL init_DEST init_dirscan - init_PM init_MANPODS init_xs init_PERL init_DIRFILESEP init_linker - ]; - - push @MM_Sections, qw[ - - pm_to_blib selfdocument - - ]; - - # Postamble needs to be the last that was always the case - push @MM_Sections, "postamble"; - push @Overridable, "postamble"; - - # All sections are valid keys. - @Recognized_Att_Keys{@MM_Sections} = (1) x @MM_Sections; - - # we will use all these variables in the Makefile - @Get_from_Config = - qw( - ar cc cccdlflags ccdlflags dlext dlsrc exe_ext full_ar ld - lddlflags ldflags libc lib_ext obj_ext osname osvers ranlib - sitelibexp sitearchexp so - ); - - # 5.5.3 doesn't have any concept of vendor libs - push @Get_from_Config, qw( vendorarchexp vendorlibexp ) if $] >= 5.006; - - foreach my $item (@attrib_help){ - $Recognized_Att_Keys{$item} = 1; - } - foreach my $item (@Get_from_Config) { - $Recognized_Att_Keys{uc $item} = $Config{$item}; - print "Attribute '\U$item\E' => '$Config{$item}'\n" - if ($Verbose >= 2); - } - - # - # When we eval a Makefile.PL in a subdirectory, that one will ask - # us (the parent) for the values and will prepend "..", so that - # all files to be installed end up below OUR ./blib - # - @Prepend_parent = qw( - INST_BIN INST_LIB INST_ARCHLIB INST_SCRIPT - MAP_TARGET INST_MAN1DIR INST_MAN3DIR PERL_SRC - PERL FULLPERL - ); -} - -sub _has_cpan_meta_requirements { - return eval { - require CPAN::Meta::Requirements; - CPAN::Meta::Requirements->VERSION(2.130); - require B; # CMR requires this, for core we have to too. - }; -} - -sub new { - my($class,$self) = @_; - my($key); - - _convert_compat_attrs($self) if defined $self && $self; - - # Store the original args passed to WriteMakefile() - foreach my $k (keys %$self) { - $self->{ARGS}{$k} = $self->{$k}; - } - - $self = {} unless defined $self; - - # Temporarily bless it into MM so it can be used as an - # object. It will be blessed into a temp package later. - bless $self, "MM"; - - # Cleanup all the module requirement bits - my %key2cmr; - for my $key (qw(PREREQ_PM BUILD_REQUIRES CONFIGURE_REQUIRES TEST_REQUIRES)) { - $self->{$key} ||= {}; - if (_has_cpan_meta_requirements) { - my $cmr = CPAN::Meta::Requirements->from_string_hash( - $self->{$key}, - { - bad_version_hook => sub { - #no warnings 'numeric'; # module doesn't use warnings - my $fallback; - if ( $_[0] =~ m!^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$! ) { - $fallback = sprintf "%f", $_[0]; - } else { - ($fallback) = $_[0] ? ($_[0] =~ /^([0-9.]+)/) : 0; - $fallback += 0; - carp "Unparsable version '$_[0]' for prerequisite $_[1] treated as $fallback"; - } - version->new($fallback); - }, - }, - ); - $self->{$key} = $cmr->as_string_hash; - $key2cmr{$key} = $cmr; - } else { - for my $module (sort keys %{ $self->{$key} }) { - my $version = $self->{$key}->{$module}; - my $fallback = 0; - if (!defined($version) or !length($version)) { - carp "Undefined requirement for $module treated as '0' (CPAN::Meta::Requirements not available)"; - } - elsif ($version =~ /^\d+(?:\.\d+(?:_\d+)*)?$/) { - next; - } - else { - if ( $version =~ m!^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$! ) { - $fallback = sprintf "%f", $version; - } else { - ($fallback) = $version ? ($version =~ /^([0-9.]+)/) : 0; - $fallback += 0; - carp "Unparsable version '$version' for prerequisite $module treated as $fallback (CPAN::Meta::Requirements not available)"; - } - } - $self->{$key}->{$module} = $fallback; - } - } - } - - if ("@ARGV" =~ /\bPREREQ_PRINT\b/) { - $self->_PREREQ_PRINT; - } - - # PRINT_PREREQ is RedHatism. - if ("@ARGV" =~ /\bPRINT_PREREQ\b/) { - $self->_PRINT_PREREQ; - } - - print "MakeMaker (v$VERSION)\n" if $Verbose; - if (-f "MANIFEST" && ! -f "Makefile" && ! $UNDER_CORE){ - check_manifest(); - } - - check_hints($self); - - if ( defined $self->{MIN_PERL_VERSION} - && $self->{MIN_PERL_VERSION} !~ /^v?[\d_\.]+$/ ) { - require version; - my $normal = eval { - local $SIG{__WARN__} = sub { - # simulate "use warnings FATAL => 'all'" for vintage perls - die @_; - }; - version->new( $self->{MIN_PERL_VERSION} ) - }; - $self->{MIN_PERL_VERSION} = $normal if defined $normal && !$@; - } - - # Translate X.Y.Z to X.00Y00Z - if( defined $self->{MIN_PERL_VERSION} ) { - $self->{MIN_PERL_VERSION} =~ s{ ^v? (\d+) \. (\d+) \. (\d+) $ } - {sprintf "%d.%03d%03d", $1, $2, $3}ex; - } - - my $perl_version_ok = eval { - local $SIG{__WARN__} = sub { - # simulate "use warnings FATAL => 'all'" for vintage perls - die @_; - }; - !$self->{MIN_PERL_VERSION} or $self->{MIN_PERL_VERSION} <= $] - }; - if (!$perl_version_ok) { - if (!defined $perl_version_ok) { - die <<'END'; -Warning: MIN_PERL_VERSION is not in a recognized format. -Recommended is a quoted numerical value like '5.005' or '5.008001'. -END - } - elsif ($self->{PREREQ_FATAL}) { - die sprintf <<"END", $self->{MIN_PERL_VERSION}, $]; -MakeMaker FATAL: perl version too low for this distribution. -Required is %s. We run %s. -END - } - else { - warn sprintf - "Warning: Perl version %s or higher required. We run %s.\n", - $self->{MIN_PERL_VERSION}, $]; - } - } - - my %configure_att; # record &{$self->{CONFIGURE}} attributes - my(%initial_att) = %$self; # record initial attributes - - my(%unsatisfied) = (); - my %prereq2version; - my $cmr; - if (_has_cpan_meta_requirements) { - $cmr = CPAN::Meta::Requirements->new; - for my $key (qw(PREREQ_PM BUILD_REQUIRES CONFIGURE_REQUIRES TEST_REQUIRES)) { - $cmr->add_requirements($key2cmr{$key}) if $key2cmr{$key}; - } - foreach my $prereq ($cmr->required_modules) { - $prereq2version{$prereq} = $cmr->requirements_for_module($prereq); - } - } else { - for my $key (qw(PREREQ_PM BUILD_REQUIRES CONFIGURE_REQUIRES TEST_REQUIRES)) { - next unless my $module2version = $self->{$key}; - $prereq2version{$_} = $module2version->{$_} for keys %$module2version; - } - } - foreach my $prereq (sort keys %prereq2version) { - my $required_version = $prereq2version{$prereq}; - - my $pr_version = 0; - my $installed_file; - - if ( $prereq eq 'perl' ) { - if ( defined $required_version && $required_version =~ /^v?[\d_\.]+$/ - || $required_version !~ /^v?[\d_\.]+$/ ) { - require version; - my $normal = eval { version->new( $required_version ) }; - $required_version = $normal if defined $normal; - } - $installed_file = $prereq; - $pr_version = $]; - } - else { - $installed_file = MM->_installed_file_for_module($prereq); - $pr_version = MM->parse_version($installed_file) if $installed_file; - $pr_version = 0 if $pr_version eq 'undef'; - if ( !eval { version->new( $pr_version ); 1 } ) { - #no warnings 'numeric'; # module doesn't use warnings - my $fallback; - if ( $pr_version =~ m!^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$! ) { - $fallback = sprintf '%f', $pr_version; - } else { - ($fallback) = $pr_version ? ($pr_version =~ /^([0-9.]+)/) : 0; - $fallback += 0; - carp "Unparsable version '$pr_version' for installed prerequisite $prereq treated as $fallback"; - } - $pr_version = $fallback; - } - } - - # convert X.Y_Z alpha version #s to X.YZ for easier comparisons - $pr_version =~ s/(\d+)\.(\d+)_(\d+)/$1.$2$3/; - - if (!$installed_file) { - warn sprintf "Warning: prerequisite %s %s not found.\n", - $prereq, $required_version - unless $self->{PREREQ_FATAL} - or $UNDER_CORE; - - $unsatisfied{$prereq} = 'not installed'; - } - elsif ( - $cmr - ? !$cmr->accepts_module($prereq, $pr_version) - : $required_version > $pr_version - ) { - warn sprintf "Warning: prerequisite %s %s not found. We have %s.\n", - $prereq, $required_version, ($pr_version || 'unknown version') - unless $self->{PREREQ_FATAL} - or $UNDER_CORE; - - $unsatisfied{$prereq} = $required_version || 'unknown version' ; - } - } - - if (%unsatisfied && $self->{PREREQ_FATAL}){ - my $failedprereqs = join "\n", map {" $_ $unsatisfied{$_}"} - sort { $a cmp $b } keys %unsatisfied; - die <<"END"; -MakeMaker FATAL: prerequisites not found. -$failedprereqs - -Please install these modules first and rerun 'perl Makefile.PL'. -END - } - - if (defined $self->{CONFIGURE}) { - if (ref $self->{CONFIGURE} eq 'CODE') { - %configure_att = %{&{$self->{CONFIGURE}}}; - _convert_compat_attrs(\%configure_att); - $self = { %$self, %configure_att }; - } else { - croak "Attribute 'CONFIGURE' to WriteMakefile() not a code reference\n"; - } - } - - my $newclass = ++$PACKNAME; - local @Parent = @Parent; # Protect against non-local exits - { - print "Blessing Object into class [$newclass]\n" if $Verbose>=2; - mv_all_methods("MY",$newclass); - bless $self, $newclass; - push @Parent, $self; - require ExtUtils::MY; - - no strict 'refs'; ## no critic; - @{"$newclass\:\:ISA"} = 'MM'; - } - - if (defined $Parent[-2]){ - $self->{PARENT} = $Parent[-2]; - for my $key (@Prepend_parent) { - next unless defined $self->{PARENT}{$key}; - - # Don't stomp on WriteMakefile() args. - next if defined $self->{ARGS}{$key} and - $self->{ARGS}{$key} eq $self->{$key}; - - $self->{$key} = $self->{PARENT}{$key}; - - if ($Is_VMS && $key =~ /PERL$/) { - # PERL or FULLPERL will be a command verb or even a - # command with an argument instead of a full file - # specification under VMS. So, don't turn the command - # into a filespec, but do add a level to the path of - # the argument if not already absolute. - my @cmd = split /\s+/, $self->{$key}; - $cmd[1] = $self->catfile('[-]',$cmd[1]) - unless (@cmd < 2) || $self->file_name_is_absolute($cmd[1]); - $self->{$key} = join(' ', @cmd); - } else { - my $value = $self->{$key}; - # not going to test in FS so only stripping start - $value =~ s/^"// if $key =~ /PERL$/; - $value = $self->catdir("..", $value) - unless $self->file_name_is_absolute($value); - $value = qq{"$value} if $key =~ /PERL$/; - $self->{$key} = $value; - } - } - if ($self->{PARENT}) { - $self->{PARENT}->{CHILDREN}->{$newclass} = $self; - foreach my $opt (qw(POLLUTE PERL_CORE LINKTYPE LD OPTIMIZE)) { - if (exists $self->{PARENT}->{$opt} - and not exists $self->{$opt}) - { - # inherit, but only if already unspecified - $self->{$opt} = $self->{PARENT}->{$opt}; - } - } - } - my @fm = grep /^FIRST_MAKEFILE=/, @ARGV; - parse_args($self,@fm) if @fm; - } - else { - parse_args($self, _shellwords($ENV{PERL_MM_OPT} || ''),@ARGV); - } - - # RT#91540 PREREQ_FATAL not recognized on command line - if (%unsatisfied && $self->{PREREQ_FATAL}){ - my $failedprereqs = join "\n", map {" $_ $unsatisfied{$_}"} - sort { $a cmp $b } keys %unsatisfied; - die <<"END"; -MakeMaker FATAL: prerequisites not found. -$failedprereqs - -Please install these modules first and rerun 'perl Makefile.PL'. -END - } - - $self->{NAME} ||= $self->guess_name; - - warn "Warning: NAME must be a package name\n" - unless $self->{NAME} =~ m!^[A-Z_a-z][0-9A-Z_a-z]*(?:::[0-9A-Z_a-z]+)*$!; - - ($self->{NAME_SYM} = $self->{NAME}) =~ s/\W+/_/g; - - $self->init_MAKE; - $self->init_main; - $self->init_VERSION; - $self->init_dist; - $self->init_INST; - $self->init_INSTALL; - $self->init_DEST; - $self->init_dirscan; - $self->init_PM; - $self->init_MANPODS; - $self->init_xs; - $self->init_PERL; - $self->init_DIRFILESEP; - $self->init_linker; - $self->init_ABSTRACT; - - $self->arch_check( - $INC{'Config.pm'}, - $self->catfile($Config{'archlibexp'}, "Config.pm") - ); - - $self->init_tools(); - $self->init_others(); - $self->init_platform(); - $self->init_PERM(); - my @args = @ARGV; - @args = map { Encode::decode(locale => $_) } @args if $CAN_DECODE; - my($argv) = neatvalue(\@args); - $argv =~ s/^\[/(/; - $argv =~ s/\]$/)/; - - push @{$self->{RESULT}}, <<END; -# This Makefile is for the $self->{NAME} extension to perl. -# -# It was generated automatically by MakeMaker version -# $VERSION (Revision: $Revision) from the contents of -# Makefile.PL. Don't edit this file, edit Makefile.PL instead. -# -# ANY CHANGES MADE HERE WILL BE LOST! -# -# MakeMaker ARGV: $argv -# -END - - push @{$self->{RESULT}}, $self->_MakeMaker_Parameters_section(\%initial_att); - - if (defined $self->{CONFIGURE}) { - push @{$self->{RESULT}}, <<END; - -# MakeMaker 'CONFIGURE' Parameters: -END - if (scalar(keys %configure_att) > 0) { - foreach my $key (sort keys %configure_att){ - next if $key eq 'ARGS'; - my($v) = neatvalue($configure_att{$key}); - $v =~ s/(CODE|HASH|ARRAY|SCALAR)\([\dxa-f]+\)/$1\(...\)/; - $v =~ tr/\n/ /s; - push @{$self->{RESULT}}, "# $key => $v"; - } - } - else - { - push @{$self->{RESULT}}, "# no values returned"; - } - undef %configure_att; # free memory - } - - # turn the SKIP array into a SKIPHASH hash - for my $skip (@{$self->{SKIP} || []}) { - $self->{SKIPHASH}{$skip} = 1; - } - delete $self->{SKIP}; # free memory - - if ($self->{PARENT}) { - for (qw/install dist dist_basics dist_core distdir dist_test dist_ci/) { - $self->{SKIPHASH}{$_} = 1; - } - } - - # We run all the subdirectories now. They don't have much to query - # from the parent, but the parent has to query them: if they need linking! - unless ($self->{NORECURS}) { - $self->eval_in_subdirs if @{$self->{DIR}}; - } - - foreach my $section ( @MM_Sections ){ - # Support for new foo_target() methods. - my $method = $section; - $method .= '_target' unless $self->can($method); - - print "Processing Makefile '$section' section\n" if ($Verbose >= 2); - my($skipit) = $self->skipcheck($section); - if ($skipit){ - push @{$self->{RESULT}}, "\n# --- MakeMaker $section section $skipit."; - } else { - my(%a) = %{$self->{$section} || {}}; - push @{$self->{RESULT}}, "\n# --- MakeMaker $section section:"; - push @{$self->{RESULT}}, "# " . join ", ", %a if $Verbose && %a; - push @{$self->{RESULT}}, $self->maketext_filter( - $self->$method( %a ) - ); - } - } - - push @{$self->{RESULT}}, "\n# End."; - - $self; -} - -sub WriteEmptyMakefile { - croak "WriteEmptyMakefile: Need an even number of args" if @_ % 2; - - my %att = @_; - $att{DIR} = [] unless $att{DIR}; # don't recurse by default - my $self = MM->new(\%att); - - my $new = $self->{MAKEFILE}; - my $old = $self->{MAKEFILE_OLD}; - if (-f $old) { - _unlink($old) or warn "unlink $old: $!"; - } - if ( -f $new ) { - _rename($new, $old) or warn "rename $new => $old: $!" - } - open my $mfh, '>', $new or die "open $new for write: $!"; - print $mfh <<'EOP'; -all : - -manifypods : - -subdirs : - -dynamic : - -static : - -clean : - -install : - -makemakerdflt : - -test : - -test_dynamic : - -test_static : - -EOP - close $mfh or die "close $new for write: $!"; -} - - -=begin private - -=head3 _installed_file_for_module - - my $file = MM->_installed_file_for_module($module); - -Return the first installed .pm $file associated with the $module. The -one which will show up when you C<use $module>. - -$module is something like "strict" or "Test::More". - -=end private - -=cut - -sub _installed_file_for_module { - my $class = shift; - my $prereq = shift; - - my $file = "$prereq.pm"; - $file =~ s{::}{/}g; - - my $path; - for my $dir (@INC) { - my $tmp = File::Spec->catfile($dir, $file); - if ( -r $tmp ) { - $path = $tmp; - last; - } - } - - return $path; -} - - -# Extracted from MakeMaker->new so we can test it -sub _MakeMaker_Parameters_section { - my $self = shift; - my $att = shift; - - my @result = <<'END'; -# MakeMaker Parameters: -END - - foreach my $key (sort keys %$att){ - next if $key eq 'ARGS'; - my $v; - if ($key eq 'PREREQ_PM') { - # CPAN.pm takes prereqs from this field in 'Makefile' - # and does not know about BUILD_REQUIRES - $v = neatvalue({ - %{ $att->{PREREQ_PM} || {} }, - %{ $att->{BUILD_REQUIRES} || {} }, - %{ $att->{TEST_REQUIRES} || {} }, - }); - } else { - $v = neatvalue($att->{$key}); - } - - $v =~ s/(CODE|HASH|ARRAY|SCALAR)\([\dxa-f]+\)/$1\(...\)/; - $v =~ tr/\n/ /s; - push @result, "# $key => $v"; - } - - return @result; -} - -# _shellwords and _parseline borrowed from Text::ParseWords -sub _shellwords { - my (@lines) = @_; - my @allwords; - - foreach my $line (@lines) { - $line =~ s/^\s+//; - my @words = _parse_line('\s+', 0, $line); - pop @words if (@words and !defined $words[-1]); - return() unless (@words || !length($line)); - push(@allwords, @words); - } - return(@allwords); -} - -sub _parse_line { - my($delimiter, $keep, $line) = @_; - my($word, @pieces); - - no warnings 'uninitialized'; # we will be testing undef strings - - while (length($line)) { - # This pattern is optimised to be stack conservative on older perls. - # Do not refactor without being careful and testing it on very long strings. - # See Perl bug #42980 for an example of a stack busting input. - $line =~ s/^ - (?: - # double quoted string - (") # $quote - ((?>[^\\"]*(?:\\.[^\\"]*)*))" # $quoted - | # --OR-- - # singe quoted string - (') # $quote - ((?>[^\\']*(?:\\.[^\\']*)*))' # $quoted - | # --OR-- - # unquoted string - ( # $unquoted - (?:\\.|[^\\"'])*? - ) - # followed by - ( # $delim - \Z(?!\n) # EOL - | # --OR-- - (?-x:$delimiter) # delimiter - | # --OR-- - (?!^)(?=["']) # a quote - ) - )//xs or return; # extended layout - my ($quote, $quoted, $unquoted, $delim) = (($1 ? ($1,$2) : ($3,$4)), $5, $6); - - - return() unless( defined($quote) || length($unquoted) || length($delim)); - - if ($keep) { - $quoted = "$quote$quoted$quote"; - } - else { - $unquoted =~ s/\\(.)/$1/sg; - if (defined $quote) { - $quoted =~ s/\\(.)/$1/sg if ($quote eq '"'); - #$quoted =~ s/\\([\\'])/$1/g if ( $PERL_SINGLE_QUOTE && $quote eq "'"); - } - } - $word .= substr($line, 0, 0); # leave results tainted - $word .= defined $quote ? $quoted : $unquoted; - - if (length($delim)) { - push(@pieces, $word); - push(@pieces, $delim) if ($keep eq 'delimiters'); - undef $word; - } - if (!length($line)) { - push(@pieces, $word); - } - } - return(@pieces); -} - -sub check_manifest { - print "Checking if your kit is complete...\n"; - require ExtUtils::Manifest; - # avoid warning - $ExtUtils::Manifest::Quiet = $ExtUtils::Manifest::Quiet = 1; - my(@missed) = ExtUtils::Manifest::manicheck(); - if (@missed) { - print "Warning: the following files are missing in your kit:\n"; - print "\t", join "\n\t", @missed; - print "\n"; - print "Please inform the author.\n"; - } else { - print "Looks good\n"; - } -} - -sub parse_args{ - my($self, @args) = @_; - @args = map { Encode::decode(locale => $_) } @args if $CAN_DECODE; - foreach (@args) { - unless (m/(.*?)=(.*)/) { - ++$Verbose if m/^verb/; - next; - } - my($name, $value) = ($1, $2); - if ($value =~ m/^~(\w+)?/) { # tilde with optional username - $value =~ s [^~(\w*)] - [$1 ? - ((getpwnam($1))[7] || "~$1") : - (getpwuid($>))[7] - ]ex; - } - - # Remember the original args passed it. It will be useful later. - $self->{ARGS}{uc $name} = $self->{uc $name} = $value; - } - - # catch old-style 'potential_libs' and inform user how to 'upgrade' - if (defined $self->{potential_libs}){ - my($msg)="'potential_libs' => '$self->{potential_libs}' should be"; - if ($self->{potential_libs}){ - print "$msg changed to:\n\t'LIBS' => ['$self->{potential_libs}']\n"; - } else { - print "$msg deleted.\n"; - } - $self->{LIBS} = [$self->{potential_libs}]; - delete $self->{potential_libs}; - } - # catch old-style 'ARMAYBE' and inform user how to 'upgrade' - if (defined $self->{ARMAYBE}){ - my($armaybe) = $self->{ARMAYBE}; - print "ARMAYBE => '$armaybe' should be changed to:\n", - "\t'dynamic_lib' => {ARMAYBE => '$armaybe'}\n"; - my(%dl) = %{$self->{dynamic_lib} || {}}; - $self->{dynamic_lib} = { %dl, ARMAYBE => $armaybe}; - delete $self->{ARMAYBE}; - } - if (defined $self->{LDTARGET}){ - print "LDTARGET should be changed to LDFROM\n"; - $self->{LDFROM} = $self->{LDTARGET}; - delete $self->{LDTARGET}; - } - # Turn a DIR argument on the command line into an array - if (defined $self->{DIR} && ref \$self->{DIR} eq 'SCALAR') { - # So they can choose from the command line, which extensions they want - # the grep enables them to have some colons too much in case they - # have to build a list with the shell - $self->{DIR} = [grep $_, split ":", $self->{DIR}]; - } - # Turn a INCLUDE_EXT argument on the command line into an array - if (defined $self->{INCLUDE_EXT} && ref \$self->{INCLUDE_EXT} eq 'SCALAR') { - $self->{INCLUDE_EXT} = [grep $_, split '\s+', $self->{INCLUDE_EXT}]; - } - # Turn a EXCLUDE_EXT argument on the command line into an array - if (defined $self->{EXCLUDE_EXT} && ref \$self->{EXCLUDE_EXT} eq 'SCALAR') { - $self->{EXCLUDE_EXT} = [grep $_, split '\s+', $self->{EXCLUDE_EXT}]; - } - - foreach my $mmkey (sort keys %$self){ - next if $mmkey eq 'ARGS'; - print " $mmkey => ", neatvalue($self->{$mmkey}), "\n" if $Verbose; - print "'$mmkey' is not a known MakeMaker parameter name.\n" - unless exists $Recognized_Att_Keys{$mmkey}; - } - $| = 1 if $Verbose; -} - -sub check_hints { - my($self) = @_; - # We allow extension-specific hints files. - - require File::Spec; - my $curdir = File::Spec->curdir; - - my $hint_dir = File::Spec->catdir($curdir, "hints"); - return unless -d $hint_dir; - - # First we look for the best hintsfile we have - my($hint)="${^O}_$Config{osvers}"; - $hint =~ s/\./_/g; - $hint =~ s/_$//; - return unless $hint; - - # Also try without trailing minor version numbers. - while (1) { - last if -f File::Spec->catfile($hint_dir, "$hint.pl"); # found - } continue { - last unless $hint =~ s/_[^_]*$//; # nothing to cut off - } - my $hint_file = File::Spec->catfile($hint_dir, "$hint.pl"); - - return unless -f $hint_file; # really there - - _run_hintfile($self, $hint_file); -} - -sub _run_hintfile { - our $self; - local($self) = shift; # make $self available to the hint file. - my($hint_file) = shift; - - local($@, $!); - print "Processing hints file $hint_file\n" if $Verbose; - - # Just in case the ./ isn't on the hint file, which File::Spec can - # often strip off, we bung the curdir into @INC - local @INC = (File::Spec->curdir, @INC); - my $ret = do $hint_file; - if( !defined $ret ) { - my $error = $@ || $!; - warn $error; - } -} - -sub mv_all_methods { - my($from,$to) = @_; - local $SIG{__WARN__} = sub { - # can't use 'no warnings redefined', 5.6 only - warn @_ unless $_[0] =~ /^Subroutine .* redefined/ - }; - foreach my $method (@Overridable) { - next unless defined &{"${from}::$method"}; - no strict 'refs'; ## no critic - *{"${to}::$method"} = \&{"${from}::$method"}; - - # If we delete a method, then it will be undefined and cannot - # be called. But as long as we have Makefile.PLs that rely on - # %MY:: being intact, we have to fill the hole with an - # inheriting method: - - { - package MY; - my $super = "SUPER::".$method; - *{$method} = sub { - shift->$super(@_); - }; - } - } -} - -sub skipcheck { - my($self) = shift; - my($section) = @_; - return 'skipped' if $section eq 'metafile' && $UNDER_CORE; - if ($section eq 'dynamic') { - print "Warning (non-fatal): Target 'dynamic' depends on targets ", - "in skipped section 'dynamic_bs'\n" - if $self->{SKIPHASH}{dynamic_bs} && $Verbose; - print "Warning (non-fatal): Target 'dynamic' depends on targets ", - "in skipped section 'dynamic_lib'\n" - if $self->{SKIPHASH}{dynamic_lib} && $Verbose; - } - if ($section eq 'dynamic_lib') { - print "Warning (non-fatal): Target '\$(INST_DYNAMIC)' depends on ", - "targets in skipped section 'dynamic_bs'\n" - if $self->{SKIPHASH}{dynamic_bs} && $Verbose; - } - if ($section eq 'static') { - print "Warning (non-fatal): Target 'static' depends on targets ", - "in skipped section 'static_lib'\n" - if $self->{SKIPHASH}{static_lib} && $Verbose; - } - return 'skipped' if $self->{SKIPHASH}{$section}; - return ''; -} - -# returns filehandle, dies on fail. :raw so no :crlf -sub open_for_writing { - my ($file) = @_; - open my $fh ,">", $file or die "Unable to open $file: $!"; - my @layers = ':raw'; - push @layers, join ' ', ':encoding(locale)' if $CAN_DECODE; - binmode $fh, join ' ', @layers; - $fh; -} - -sub flush { - my $self = shift; - - my $finalname = $self->{MAKEFILE}; - printf "Generating a %s %s\n", $self->make_type, $finalname if $Verbose || !$self->{PARENT}; - print "Writing $finalname for $self->{NAME}\n" if $Verbose || !$self->{PARENT}; - - unlink($finalname, "MakeMaker.tmp", $Is_VMS ? 'Descrip.MMS' : ()); - - write_file_via_tmp($finalname, $self->{RESULT}); - - # Write MYMETA.yml to communicate metadata up to the CPAN clients - print "Writing MYMETA.yml and MYMETA.json\n" - if !$self->{NO_MYMETA} and $self->write_mymeta( $self->mymeta ); - - # save memory - if ($self->{PARENT} && !$self->{_KEEP_AFTER_FLUSH}) { - my %keep = map { ($_ => 1) } qw(NEEDS_LINKING HAS_LINK_CODE); - delete $self->{$_} for grep !$keep{$_}, keys %$self; - } - - system("$Config::Config{eunicefix} $finalname") - if $Config::Config{eunicefix} ne ":"; - - return; -} - -sub write_file_via_tmp { - my ($finalname, $contents) = @_; - my $fh = open_for_writing("MakeMaker.tmp"); - die "write_file_via_tmp: 2nd arg must be ref" unless ref $contents; - for my $chunk (@$contents) { - my $to_write = $chunk; - utf8::encode $to_write if !$CAN_DECODE && $] > 5.008; - print $fh "$to_write\n" or die "Can't write to MakeMaker.tmp: $!"; - } - close $fh or die "Can't write to MakeMaker.tmp: $!"; - _rename("MakeMaker.tmp", $finalname) or - warn "rename MakeMaker.tmp => $finalname: $!"; - chmod 0644, $finalname if !$Is_VMS; - return; -} - -# This is a rename for OS's where the target must be unlinked first. -sub _rename { - my($src, $dest) = @_; - _unlink($dest); - return rename $src, $dest; -} - -# This is an unlink for OS's where the target must be writable first. -sub _unlink { - my @files = @_; - chmod 0666, @files; - return unlink @files; -} - - -# The following mkbootstrap() is only for installations that are calling -# the pre-4.1 mkbootstrap() from their old Makefiles. This MakeMaker -# writes Makefiles, that use ExtUtils::Mkbootstrap directly. -sub mkbootstrap { - die <<END; -!!! Your Makefile has been built such a long time ago, !!! -!!! that is unlikely to work with current MakeMaker. !!! -!!! Please rebuild your Makefile !!! -END -} - -# Ditto for mksymlists() as of MakeMaker 5.17 -sub mksymlists { - die <<END; -!!! Your Makefile has been built such a long time ago, !!! -!!! that is unlikely to work with current MakeMaker. !!! -!!! Please rebuild your Makefile !!! -END -} - -sub neatvalue { - my($v) = @_; - return "undef" unless defined $v; - my($t) = ref $v; - return "q[$v]" unless $t; - if ($t eq 'ARRAY') { - my(@m, @neat); - push @m, "["; - foreach my $elem (@$v) { - push @neat, "q[$elem]"; - } - push @m, join ", ", @neat; - push @m, "]"; - return join "", @m; - } - return $v unless $t eq 'HASH'; - my(@m, $key, $val); - for my $key (sort keys %$v) { - last unless defined $key; # cautious programming in case (undef,undef) is true - push @m,"$key=>".neatvalue($v->{$key}); - } - return "{ ".join(', ',@m)." }"; -} - -sub _find_magic_vstring { - my $value = shift; - return $value if $UNDER_CORE; - my $tvalue = ''; - require B; - my $sv = B::svref_2object(\$value); - my $magic = ref($sv) eq 'B::PVMG' ? $sv->MAGIC : undef; - while ( $magic ) { - if ( $magic->TYPE eq 'V' ) { - $tvalue = $magic->PTR; - $tvalue =~ s/^v?(.+)$/v$1/; - last; - } - else { - $magic = $magic->MOREMAGIC; - } - } - return $tvalue; -} - -sub selfdocument { - my($self) = @_; - my(@m); - if ($Verbose){ - push @m, "\n# Full list of MakeMaker attribute values:"; - foreach my $key (sort keys %$self){ - next if $key eq 'RESULT' || $key =~ /^[A-Z][a-z]/; - my($v) = neatvalue($self->{$key}); - $v =~ s/(CODE|HASH|ARRAY|SCALAR)\([\dxa-f]+\)/$1\(...\)/; - $v =~ tr/\n/ /s; - push @m, "# $key => $v"; - } - } - # added here as selfdocument is not overridable - push @m, <<'EOF'; - -# here so even if top_targets is overridden, these will still be defined -# gmake will silently still work if any are .PHONY-ed but nmake won't -EOF - push @m, join "\n", map "$_ ::\n\t\$(NOECHO) \$(NOOP)\n", - # config is so manifypods won't puke if no subdirs - grep !$self->{SKIPHASH}{$_}, - qw(static dynamic config); - join "\n", @m; -} - -1; - -__END__ - -=head1 NAME - -ExtUtils::MakeMaker - Create a module Makefile - -=head1 SYNOPSIS - - use ExtUtils::MakeMaker; - - WriteMakefile( - NAME => "Foo::Bar", - VERSION_FROM => "lib/Foo/Bar.pm", - ); - -=head1 DESCRIPTION - -This utility is designed to write a Makefile for an extension module -from a Makefile.PL. It is based on the Makefile.SH model provided by -Andy Dougherty and the perl5-porters. - -It splits the task of generating the Makefile into several subroutines -that can be individually overridden. Each subroutine returns the text -it wishes to have written to the Makefile. - -As there are various Make programs with incompatible syntax, which -use operating system shells, again with incompatible syntax, it is -important for users of this module to know which flavour of Make -a Makefile has been written for so they'll use the correct one and -won't have to face the possibly bewildering errors resulting from -using the wrong one. - -On POSIX systems, that program will likely be GNU Make; on Microsoft -Windows, it will be either Microsoft NMake, DMake or GNU Make. -See the section on the L</"MAKE"> parameter for details. - -ExtUtils::MakeMaker (EUMM) is object oriented. Each directory below the current -directory that contains a Makefile.PL is treated as a separate -object. This makes it possible to write an unlimited number of -Makefiles with a single invocation of WriteMakefile(). - -All inputs to WriteMakefile are Unicode characters, not just octets. EUMM -seeks to handle all of these correctly. It is currently still not possible -to portably use Unicode characters in module names, because this requires -Perl to handle Unicode filenames, which is not yet the case on Windows. - -=head2 How To Write A Makefile.PL - -See L<ExtUtils::MakeMaker::Tutorial>. - -The long answer is the rest of the manpage :-) - -=head2 Default Makefile Behaviour - -The generated Makefile enables the user of the extension to invoke - - perl Makefile.PL # optionally "perl Makefile.PL verbose" - make - make test # optionally set TEST_VERBOSE=1 - make install # See below - -The Makefile to be produced may be altered by adding arguments of the -form C<KEY=VALUE>. E.g. - - perl Makefile.PL INSTALL_BASE=~ - -Other interesting targets in the generated Makefile are - - make config # to check if the Makefile is up-to-date - make clean # delete local temp files (Makefile gets renamed) - make realclean # delete derived files (including ./blib) - make ci # check in all the files in the MANIFEST file - make dist # see below the Distribution Support section - -=head2 make test - -MakeMaker checks for the existence of a file named F<test.pl> in the -current directory, and if it exists it executes the script with the -proper set of perl C<-I> options. - -MakeMaker also checks for any files matching glob("t/*.t"). It will -execute all matching files in alphabetical order via the -L<Test::Harness> module with the C<-I> switches set correctly. - -You can also organize your tests within subdirectories in the F<t/> directory. -To do so, use the F<test> directive in your I<Makefile.PL>. For example, if you -had tests in: - - t/foo - t/foo/bar - -You could tell make to run tests in both of those directories with the -following directives: - - test => {TESTS => 't/*/*.t t/*/*/*.t'} - test => {TESTS => 't/foo/*.t t/foo/bar/*.t'} - -The first will run all test files in all first-level subdirectories and all -subdirectories they contain. The second will run tests in only the F<t/foo> -and F<t/foo/bar>. - -If you'd like to see the raw output of your tests, set the -C<TEST_VERBOSE> variable to true. - - make test TEST_VERBOSE=1 - -If you want to run particular test files, set the C<TEST_FILES> variable. -It is possible to use globbing with this mechanism. - - make test TEST_FILES='t/foobar.t t/dagobah*.t' - -Windows users who are using C<nmake> should note that due to a bug in C<nmake>, -when specifying C<TEST_FILES> you must use back-slashes instead of forward-slashes. - - nmake test TEST_FILES='t\foobar.t t\dagobah*.t' - -=head2 make testdb - -A useful variation of the above is the target C<testdb>. It runs the -test under the Perl debugger (see L<perldebug>). If the file -F<test.pl> exists in the current directory, it is used for the test. - -If you want to debug some other testfile, set the C<TEST_FILE> variable -thusly: - - make testdb TEST_FILE=t/mytest.t - -By default the debugger is called using C<-d> option to perl. If you -want to specify some other option, set the C<TESTDB_SW> variable: - - make testdb TESTDB_SW=-Dx - -=head2 make install - -make alone puts all relevant files into directories that are named by -the macros INST_LIB, INST_ARCHLIB, INST_SCRIPT, INST_MAN1DIR and -INST_MAN3DIR. All these default to something below ./blib if you are -I<not> building below the perl source directory. If you I<are> -building below the perl source, INST_LIB and INST_ARCHLIB default to -../../lib, and INST_SCRIPT is not defined. - -The I<install> target of the generated Makefile copies the files found -below each of the INST_* directories to their INSTALL* -counterparts. Which counterparts are chosen depends on the setting of -INSTALLDIRS according to the following table: - - INSTALLDIRS set to - perl site vendor - - PERLPREFIX SITEPREFIX VENDORPREFIX - INST_ARCHLIB INSTALLARCHLIB INSTALLSITEARCH INSTALLVENDORARCH - INST_LIB INSTALLPRIVLIB INSTALLSITELIB INSTALLVENDORLIB - INST_BIN INSTALLBIN INSTALLSITEBIN INSTALLVENDORBIN - INST_SCRIPT INSTALLSCRIPT INSTALLSITESCRIPT INSTALLVENDORSCRIPT - INST_MAN1DIR INSTALLMAN1DIR INSTALLSITEMAN1DIR INSTALLVENDORMAN1DIR - INST_MAN3DIR INSTALLMAN3DIR INSTALLSITEMAN3DIR INSTALLVENDORMAN3DIR - -The INSTALL... macros in turn default to their %Config -($Config{installprivlib}, $Config{installarchlib}, etc.) counterparts. - -You can check the values of these variables on your system with - - perl '-V:install.*' - -And to check the sequence in which the library directories are -searched by perl, run - - perl -le 'print join $/, @INC' - -Sometimes older versions of the module you're installing live in other -directories in @INC. Because Perl loads the first version of a module it -finds, not the newest, you might accidentally get one of these older -versions even after installing a brand new version. To delete I<all other -versions of the module you're installing> (not simply older ones) set the -C<UNINST> variable. - - make install UNINST=1 - - -=head2 INSTALL_BASE - -INSTALL_BASE can be passed into Makefile.PL to change where your -module will be installed. INSTALL_BASE is more like what everyone -else calls "prefix" than PREFIX is. - -To have everything installed in your home directory, do the following. - - # Unix users, INSTALL_BASE=~ works fine - perl Makefile.PL INSTALL_BASE=/path/to/your/home/dir - -Like PREFIX, it sets several INSTALL* attributes at once. Unlike -PREFIX it is easy to predict where the module will end up. The -installation pattern looks like this: - - INSTALLARCHLIB INSTALL_BASE/lib/perl5/$Config{archname} - INSTALLPRIVLIB INSTALL_BASE/lib/perl5 - INSTALLBIN INSTALL_BASE/bin - INSTALLSCRIPT INSTALL_BASE/bin - INSTALLMAN1DIR INSTALL_BASE/man/man1 - INSTALLMAN3DIR INSTALL_BASE/man/man3 - -INSTALL_BASE in MakeMaker and C<--install_base> in Module::Build (as -of 0.28) install to the same location. If you want MakeMaker and -Module::Build to install to the same location simply set INSTALL_BASE -and C<--install_base> to the same location. - -INSTALL_BASE was added in 6.31. - - -=head2 PREFIX and LIB attribute - -PREFIX and LIB can be used to set several INSTALL* attributes in one -go. Here's an example for installing into your home directory. - - # Unix users, PREFIX=~ works fine - perl Makefile.PL PREFIX=/path/to/your/home/dir - -This will install all files in the module under your home directory, -with man pages and libraries going into an appropriate place (usually -~/man and ~/lib). How the exact location is determined is complicated -and depends on how your Perl was configured. INSTALL_BASE works more -like what other build systems call "prefix" than PREFIX and we -recommend you use that instead. - -Another way to specify many INSTALL directories with a single -parameter is LIB. - - perl Makefile.PL LIB=~/lib - -This will install the module's architecture-independent files into -~/lib, the architecture-dependent files into ~/lib/$archname. - -Note, that in both cases the tilde expansion is done by MakeMaker, not -by perl by default, nor by make. - -Conflicts between parameters LIB, PREFIX and the various INSTALL* -arguments are resolved so that: - -=over 4 - -=item * - -setting LIB overrides any setting of INSTALLPRIVLIB, INSTALLARCHLIB, -INSTALLSITELIB, INSTALLSITEARCH (and they are not affected by PREFIX); - -=item * - -without LIB, setting PREFIX replaces the initial C<$Config{prefix}> -part of those INSTALL* arguments, even if the latter are explicitly -set (but are set to still start with C<$Config{prefix}>). - -=back - -If the user has superuser privileges, and is not working on AFS or -relatives, then the defaults for INSTALLPRIVLIB, INSTALLARCHLIB, -INSTALLSCRIPT, etc. will be appropriate, and this incantation will be -the best: - - perl Makefile.PL; - make; - make test - make install - -make install by default writes some documentation of what has been -done into the file C<$(INSTALLARCHLIB)/perllocal.pod>. This feature -can be bypassed by calling make pure_install. - -=head2 AFS users - -will have to specify the installation directories as these most -probably have changed since perl itself has been installed. They will -have to do this by calling - - perl Makefile.PL INSTALLSITELIB=/afs/here/today \ - INSTALLSCRIPT=/afs/there/now INSTALLMAN3DIR=/afs/for/manpages - make - -Be careful to repeat this procedure every time you recompile an -extension, unless you are sure the AFS installation directories are -still valid. - -=head2 Static Linking of a new Perl Binary - -An extension that is built with the above steps is ready to use on -systems supporting dynamic loading. On systems that do not support -dynamic loading, any newly created extension has to be linked together -with the available resources. MakeMaker supports the linking process -by creating appropriate targets in the Makefile whenever an extension -is built. You can invoke the corresponding section of the makefile with - - make perl - -That produces a new perl binary in the current directory with all -extensions linked in that can be found in INST_ARCHLIB, SITELIBEXP, -and PERL_ARCHLIB. To do that, MakeMaker writes a new Makefile, on -UNIX, this is called F<Makefile.aperl> (may be system dependent). If you -want to force the creation of a new perl, it is recommended that you -delete this F<Makefile.aperl>, so the directories are searched through -for linkable libraries again. - -The binary can be installed into the directory where perl normally -resides on your machine with - - make inst_perl - -To produce a perl binary with a different name than C<perl>, either say - - perl Makefile.PL MAP_TARGET=myperl - make myperl - make inst_perl - -or say - - perl Makefile.PL - make myperl MAP_TARGET=myperl - make inst_perl MAP_TARGET=myperl - -In any case you will be prompted with the correct invocation of the -C<inst_perl> target that installs the new binary into INSTALLBIN. - -make inst_perl by default writes some documentation of what has been -done into the file C<$(INSTALLARCHLIB)/perllocal.pod>. This -can be bypassed by calling make pure_inst_perl. - -Warning: the inst_perl: target will most probably overwrite your -existing perl binary. Use with care! - -Sometimes you might want to build a statically linked perl although -your system supports dynamic loading. In this case you may explicitly -set the linktype with the invocation of the Makefile.PL or make: - - perl Makefile.PL LINKTYPE=static # recommended - -or - - make LINKTYPE=static # works on most systems - -=head2 Determination of Perl Library and Installation Locations - -MakeMaker needs to know, or to guess, where certain things are -located. Especially INST_LIB and INST_ARCHLIB (where to put the files -during the make(1) run), PERL_LIB and PERL_ARCHLIB (where to read -existing modules from), and PERL_INC (header files and C<libperl*.*>). - -Extensions may be built either using the contents of the perl source -directory tree or from the installed perl library. The recommended way -is to build extensions after you have run 'make install' on perl -itself. You can do that in any directory on your hard disk that is not -below the perl source tree. The support for extensions below the ext -directory of the perl distribution is only good for the standard -extensions that come with perl. - -If an extension is being built below the C<ext/> directory of the perl -source then MakeMaker will set PERL_SRC automatically (e.g., -C<../..>). If PERL_SRC is defined and the extension is recognized as -a standard extension, then other variables default to the following: - - PERL_INC = PERL_SRC - PERL_LIB = PERL_SRC/lib - PERL_ARCHLIB = PERL_SRC/lib - INST_LIB = PERL_LIB - INST_ARCHLIB = PERL_ARCHLIB - -If an extension is being built away from the perl source then MakeMaker -will leave PERL_SRC undefined and default to using the installed copy -of the perl library. The other variables default to the following: - - PERL_INC = $archlibexp/CORE - PERL_LIB = $privlibexp - PERL_ARCHLIB = $archlibexp - INST_LIB = ./blib/lib - INST_ARCHLIB = ./blib/arch - -If perl has not yet been installed then PERL_SRC can be defined on the -command line as shown in the previous section. - - -=head2 Which architecture dependent directory? - -If you don't want to keep the defaults for the INSTALL* macros, -MakeMaker helps you to minimize the typing needed: the usual -relationship between INSTALLPRIVLIB and INSTALLARCHLIB is determined -by Configure at perl compilation time. MakeMaker supports the user who -sets INSTALLPRIVLIB. If INSTALLPRIVLIB is set, but INSTALLARCHLIB not, -then MakeMaker defaults the latter to be the same subdirectory of -INSTALLPRIVLIB as Configure decided for the counterparts in %Config, -otherwise it defaults to INSTALLPRIVLIB. The same relationship holds -for INSTALLSITELIB and INSTALLSITEARCH. - -MakeMaker gives you much more freedom than needed to configure -internal variables and get different results. It is worth mentioning -that make(1) also lets you configure most of the variables that are -used in the Makefile. But in the majority of situations this will not -be necessary, and should only be done if the author of a package -recommends it (or you know what you're doing). - -=head2 Using Attributes and Parameters - -The following attributes may be specified as arguments to WriteMakefile() -or as NAME=VALUE pairs on the command line. Attributes that became -available with later versions of MakeMaker are indicated. - -In order to maintain portability of attributes with older versions of -MakeMaker you may want to use L<App::EUMM::Upgrade> with your C<Makefile.PL>. - -=over 2 - -=item ABSTRACT - -One line description of the module. Will be included in PPD file. - -=item ABSTRACT_FROM - -Name of the file that contains the package description. MakeMaker looks -for a line in the POD matching /^($package\s-\s)(.*)/. This is typically -the first line in the "=head1 NAME" section. $2 becomes the abstract. - -=item AUTHOR - -Array of strings containing name (and email address) of package author(s). -Is used in CPAN Meta files (META.yml or META.json) and PPD -(Perl Package Description) files for PPM (Perl Package Manager). - -=item BINARY_LOCATION - -Used when creating PPD files for binary packages. It can be set to a -full or relative path or URL to the binary archive for a particular -architecture. For example: - - perl Makefile.PL BINARY_LOCATION=x86/Agent.tar.gz - -builds a PPD package that references a binary of the C<Agent> package, -located in the C<x86> directory relative to the PPD itself. - -=item BUILD_REQUIRES - -Available in version 6.55_03 and above. - -A hash of modules that are needed to build your module but not run it. - -This will go into the C<build_requires> field of your F<META.yml> and the C<build> of the C<prereqs> field of your F<META.json>. - -Defaults to C<<< { "ExtUtils::MakeMaker" => 0 } >>> if this attribute is not specified. - -The format is the same as PREREQ_PM. - -=item C - -Ref to array of *.c file names. Initialised from a directory scan -and the values portion of the XS attribute hash. This is not -currently used by MakeMaker but may be handy in Makefile.PLs. - -=item CCFLAGS - -String that will be included in the compiler call command line between -the arguments INC and OPTIMIZE. - -=item CONFIG - -Arrayref. E.g. [qw(archname manext)] defines ARCHNAME & MANEXT from -config.sh. MakeMaker will add to CONFIG the following values anyway: -ar -cc -cccdlflags -ccdlflags -dlext -dlsrc -ld -lddlflags -ldflags -libc -lib_ext -obj_ext -ranlib -sitelibexp -sitearchexp -so - -=item CONFIGURE - -CODE reference. The subroutine should return a hash reference. The -hash may contain further attributes, e.g. {LIBS =E<gt> ...}, that have to -be determined by some evaluation method. - -=item CONFIGURE_REQUIRES - -Available in version 6.52 and above. - -A hash of modules that are required to run Makefile.PL itself, but not -to run your distribution. - -This will go into the C<configure_requires> field of your F<META.yml> and the C<configure> of the C<prereqs> field of your F<META.json>. - -Defaults to C<<< { "ExtUtils::MakeMaker" => 0 } >>> if this attribute is not specified. - -The format is the same as PREREQ_PM. - -=item DEFINE - -Something like C<"-DHAVE_UNISTD_H"> - -=item DESTDIR - -This is the root directory into which the code will be installed. It -I<prepends itself to the normal prefix>. For example, if your code -would normally go into F</usr/local/lib/perl> you could set DESTDIR=~/tmp/ -and installation would go into F<~/tmp/usr/local/lib/perl>. - -This is primarily of use for people who repackage Perl modules. - -NOTE: Due to the nature of make, it is important that you put the trailing -slash on your DESTDIR. F<~/tmp/> not F<~/tmp>. - -=item DIR - -Ref to array of subdirectories containing Makefile.PLs e.g. ['sdbm'] -in ext/SDBM_File - -=item DISTNAME - -A safe filename for the package. - -Defaults to NAME below but with :: replaced with -. - -For example, Foo::Bar becomes Foo-Bar. - -=item DISTVNAME - -Your name for distributing the package with the version number -included. This is used by 'make dist' to name the resulting archive -file. - -Defaults to DISTNAME-VERSION. - -For example, version 1.04 of Foo::Bar becomes Foo-Bar-1.04. - -On some OS's where . has special meaning VERSION_SYM may be used in -place of VERSION. - -=item DLEXT - -Specifies the extension of the module's loadable object. For example: - - DLEXT => 'unusual_ext', # Default value is $Config{so} - -NOTE: When using this option to alter the extension of a module's -loadable object, it is also necessary that the module's pm file -specifies the same change: - - local $DynaLoader::dl_dlext = 'unusual_ext'; - -=item DL_FUNCS - -Hashref of symbol names for routines to be made available as universal -symbols. Each key/value pair consists of the package name and an -array of routine names in that package. Used only under AIX, OS/2, -VMS and Win32 at present. The routine names supplied will be expanded -in the same way as XSUB names are expanded by the XS() macro. -Defaults to - - {"$(NAME)" => ["boot_$(NAME)" ] } - -e.g. - - {"RPC" => [qw( boot_rpcb rpcb_gettime getnetconfigent )], - "NetconfigPtr" => [ 'DESTROY'] } - -Please see the L<ExtUtils::Mksymlists> documentation for more information -about the DL_FUNCS, DL_VARS and FUNCLIST attributes. - -=item DL_VARS - -Array of symbol names for variables to be made available as universal symbols. -Used only under AIX, OS/2, VMS and Win32 at present. Defaults to []. -(e.g. [ qw(Foo_version Foo_numstreams Foo_tree ) ]) - -=item EXCLUDE_EXT - -Array of extension names to exclude when doing a static build. This -is ignored if INCLUDE_EXT is present. Consult INCLUDE_EXT for more -details. (e.g. [ qw( Socket POSIX ) ] ) - -This attribute may be most useful when specified as a string on the -command line: perl Makefile.PL EXCLUDE_EXT='Socket Safe' - -=item EXE_FILES - -Ref to array of executable files. The files will be copied to the -INST_SCRIPT directory. Make realclean will delete them from there -again. - -If your executables start with something like #!perl or -#!/usr/bin/perl MakeMaker will change this to the path of the perl -'Makefile.PL' was invoked with so the programs will be sure to run -properly even if perl is not in /usr/bin/perl. - -=item FIRST_MAKEFILE - -The name of the Makefile to be produced. This is used for the second -Makefile that will be produced for the MAP_TARGET. - -Defaults to 'Makefile' or 'Descrip.MMS' on VMS. - -(Note: we couldn't use MAKEFILE because dmake uses this for something -else). - -=item FULLPERL - -Perl binary able to run this extension, load XS modules, etc... - -=item FULLPERLRUN - -Like PERLRUN, except it uses FULLPERL. - -=item FULLPERLRUNINST - -Like PERLRUNINST, except it uses FULLPERL. - -=item FUNCLIST - -This provides an alternate means to specify function names to be -exported from the extension. Its value is a reference to an -array of function names to be exported by the extension. These -names are passed through unaltered to the linker options file. - -=item H - -Ref to array of *.h file names. Similar to C. - -=item IMPORTS - -This attribute is used to specify names to be imported into the -extension. Takes a hash ref. - -It is only used on OS/2 and Win32. - -=item INC - -Include file dirs eg: C<"-I/usr/5include -I/path/to/inc"> - -=item INCLUDE_EXT - -Array of extension names to be included when doing a static build. -MakeMaker will normally build with all of the installed extensions when -doing a static build, and that is usually the desired behavior. If -INCLUDE_EXT is present then MakeMaker will build only with those extensions -which are explicitly mentioned. (e.g. [ qw( Socket POSIX ) ]) - -It is not necessary to mention DynaLoader or the current extension when -filling in INCLUDE_EXT. If the INCLUDE_EXT is mentioned but is empty then -only DynaLoader and the current extension will be included in the build. - -This attribute may be most useful when specified as a string on the -command line: perl Makefile.PL INCLUDE_EXT='POSIX Socket Devel::Peek' - -=item INSTALLARCHLIB - -Used by 'make install', which copies files from INST_ARCHLIB to this -directory if INSTALLDIRS is set to perl. - -=item INSTALLBIN - -Directory to install binary files (e.g. tkperl) into if -INSTALLDIRS=perl. - -=item INSTALLDIRS - -Determines which of the sets of installation directories to choose: -perl, site or vendor. Defaults to site. - -=item INSTALLMAN1DIR - -=item INSTALLMAN3DIR - -These directories get the man pages at 'make install' time if -INSTALLDIRS=perl. Defaults to $Config{installman*dir}. - -If set to 'none', no man pages will be installed. - -=item INSTALLPRIVLIB - -Used by 'make install', which copies files from INST_LIB to this -directory if INSTALLDIRS is set to perl. - -Defaults to $Config{installprivlib}. - -=item INSTALLSCRIPT - -Available in version 6.30_02 and above. - -Used by 'make install' which copies files from INST_SCRIPT to this -directory if INSTALLDIRS=perl. - -=item INSTALLSITEARCH - -Used by 'make install', which copies files from INST_ARCHLIB to this -directory if INSTALLDIRS is set to site (default). - -=item INSTALLSITEBIN - -Used by 'make install', which copies files from INST_BIN to this -directory if INSTALLDIRS is set to site (default). - -=item INSTALLSITELIB - -Used by 'make install', which copies files from INST_LIB to this -directory if INSTALLDIRS is set to site (default). - -=item INSTALLSITEMAN1DIR - -=item INSTALLSITEMAN3DIR - -These directories get the man pages at 'make install' time if -INSTALLDIRS=site (default). Defaults to -$(SITEPREFIX)/man/man$(MAN*EXT). - -If set to 'none', no man pages will be installed. - -=item INSTALLSITESCRIPT - -Used by 'make install' which copies files from INST_SCRIPT to this -directory if INSTALLDIRS is set to site (default). - -=item INSTALLVENDORARCH - -Used by 'make install', which copies files from INST_ARCHLIB to this -directory if INSTALLDIRS is set to vendor. Note that if you do not set -this, the value of INSTALLVENDORLIB will be used, which is probably not -what you want. - -=item INSTALLVENDORBIN - -Used by 'make install', which copies files from INST_BIN to this -directory if INSTALLDIRS is set to vendor. - -=item INSTALLVENDORLIB - -Used by 'make install', which copies files from INST_LIB to this -directory if INSTALLDIRS is set to vendor. - -=item INSTALLVENDORMAN1DIR - -=item INSTALLVENDORMAN3DIR - -These directories get the man pages at 'make install' time if -INSTALLDIRS=vendor. Defaults to $(VENDORPREFIX)/man/man$(MAN*EXT). - -If set to 'none', no man pages will be installed. - -=item INSTALLVENDORSCRIPT - -Available in version 6.30_02 and above. - -Used by 'make install' which copies files from INST_SCRIPT to this -directory if INSTALLDIRS is set to vendor. - -=item INST_ARCHLIB - -Same as INST_LIB for architecture dependent files. - -=item INST_BIN - -Directory to put real binary files during 'make'. These will be copied -to INSTALLBIN during 'make install' - -=item INST_LIB - -Directory where we put library files of this extension while building -it. - -=item INST_MAN1DIR - -Directory to hold the man pages at 'make' time - -=item INST_MAN3DIR - -Directory to hold the man pages at 'make' time - -=item INST_SCRIPT - -Directory where executable files should be installed during -'make'. Defaults to "./blib/script", just to have a dummy location during -testing. make install will copy the files in INST_SCRIPT to -INSTALLSCRIPT. - -=item LD - -Program to be used to link libraries for dynamic loading. - -Defaults to $Config{ld}. - -=item LDDLFLAGS - -Any special flags that might need to be passed to ld to create a -shared library suitable for dynamic loading. It is up to the makefile -to use it. (See L<Config/lddlflags>) - -Defaults to $Config{lddlflags}. - -=item LDFROM - -Defaults to "$(OBJECT)" and is used in the ld command to specify -what files to link/load from (also see dynamic_lib below for how to -specify ld flags) - -=item LIB - -LIB should only be set at C<perl Makefile.PL> time but is allowed as a -MakeMaker argument. It has the effect of setting both INSTALLPRIVLIB -and INSTALLSITELIB to that value regardless any explicit setting of -those arguments (or of PREFIX). INSTALLARCHLIB and INSTALLSITEARCH -are set to the corresponding architecture subdirectory. - -=item LIBPERL_A - -The filename of the perllibrary that will be used together with this -extension. Defaults to libperl.a. - -=item LIBS - -An anonymous array of alternative library -specifications to be searched for (in order) until -at least one library is found. E.g. - - 'LIBS' => ["-lgdbm", "-ldbm -lfoo", "-L/path -ldbm.nfs"] - -Mind, that any element of the array -contains a complete set of arguments for the ld -command. So do not specify - - 'LIBS' => ["-ltcl", "-ltk", "-lX11"] - -See ODBM_File/Makefile.PL for an example, where an array is needed. If -you specify a scalar as in - - 'LIBS' => "-ltcl -ltk -lX11" - -MakeMaker will turn it into an array with one element. - -=item LICENSE - -Available in version 6.31 and above. - -The licensing terms of your distribution. Generally it's "perl_5" for the -same license as Perl itself. - -See L<CPAN::Meta::Spec> for the list of options. - -Defaults to "unknown". - -=item LINKTYPE - -'static' or 'dynamic' (default unless usedl=undef in -config.sh). Should only be used to force static linking (also see -linkext below). - -=item MAGICXS - -Available in version 6.8305 and above. - -When this is set to C<1>, C<OBJECT> will be automagically derived from -C<O_FILES>. - -=item MAKE - -Available in version 6.30_01 and above. - -Variant of make you intend to run the generated Makefile with. This -parameter lets Makefile.PL know what make quirks to account for when -generating the Makefile. - -MakeMaker also honors the MAKE environment variable. This parameter -takes precedence. - -Currently the only significant values are 'dmake' and 'nmake' for Windows -users, instructing MakeMaker to generate a Makefile in the flavour of -DMake ("Dennis Vadura's Make") or Microsoft NMake respectively. - -Defaults to $Config{make}, which may go looking for a Make program -in your environment. - -How are you supposed to know what flavour of Make a Makefile has -been generated for if you didn't specify a value explicitly? Search -the generated Makefile for the definition of the MAKE variable, -which is used to recursively invoke the Make utility. That will tell -you what Make you're supposed to invoke the Makefile with. - -=item MAKEAPERL - -Boolean which tells MakeMaker that it should include the rules to -make a perl. This is handled automatically as a switch by -MakeMaker. The user normally does not need it. - -=item MAKEFILE_OLD - -When 'make clean' or similar is run, the $(FIRST_MAKEFILE) will be -backed up at this location. - -Defaults to $(FIRST_MAKEFILE).old or $(FIRST_MAKEFILE)_old on VMS. - -=item MAN1PODS - -Hashref of pod-containing files. MakeMaker will default this to all -EXE_FILES files that include POD directives. The files listed -here will be converted to man pages and installed as was requested -at Configure time. - -This hash should map POD files (or scripts containing POD) to the -man file names under the C<blib/man1/> directory, as in the following -example: - - MAN1PODS => { - 'doc/command.pod' => 'blib/man1/command.1', - 'scripts/script.pl' => 'blib/man1/script.1', - } - -=item MAN3PODS - -Hashref that assigns to *.pm and *.pod files the files into which the -manpages are to be written. MakeMaker parses all *.pod and *.pm files -for POD directives. Files that contain POD will be the default keys of -the MAN3PODS hashref. These will then be converted to man pages during -C<make> and will be installed during C<make install>. - -Example similar to MAN1PODS. - -=item MAP_TARGET - -If it is intended that a new perl binary be produced, this variable -may hold a name for that binary. Defaults to perl - -=item META_ADD - -=item META_MERGE - -Available in version 6.46 and above. - -A hashref of items to add to the CPAN Meta file (F<META.yml> or -F<META.json>). - -They differ in how they behave if they have the same key as the -default metadata. META_ADD will override the default value with its -own. META_MERGE will merge its value with the default. - -Unless you want to override the defaults, prefer META_MERGE so as to -get the advantage of any future defaults. - -Where prereqs are concerned, if META_MERGE is used, prerequisites are merged -with their counterpart C<WriteMakefile()> argument -(PREREQ_PM is merged into {prereqs}{runtime}{requires}, -BUILD_REQUIRES into C<{prereqs}{build}{requires}>, -CONFIGURE_REQUIRES into C<{prereqs}{configure}{requires}>, -and TEST_REQUIRES into C<{prereqs}{test}{requires})>. -When prereqs are specified with META_ADD, the only prerequisites added to the -file come from the metadata, not C<WriteMakefile()> arguments. - -Note that these configuration options are only used for generating F<META.yml> -and F<META.json> -- they are NOT used for F<MYMETA.yml> and F<MYMETA.json>. -Therefore data in these fields should NOT be used for dynamic (user-side) -configuration. - -By default CPAN Meta specification C<1.4> is used. In order to use -CPAN Meta specification C<2.0>, indicate with C<meta-spec> the version -you want to use. - - META_MERGE => { - - "meta-spec" => { version => 2 }, - - resources => { - - repository => { - type => 'git', - url => 'git://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker.git', - web => 'https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker', - }, - - }, - - }, - -=item MIN_PERL_VERSION - -Available in version 6.48 and above. - -The minimum required version of Perl for this distribution. - -Either the 5.006001 or the 5.6.1 format is acceptable. - -=item MYEXTLIB - -If the extension links to a library that it builds, set this to the -name of the library (see SDBM_File) - -=item NAME - -The package representing the distribution. For example, C<Test::More> -or C<ExtUtils::MakeMaker>. It will be used to derive information about -the distribution such as the L</DISTNAME>, installation locations -within the Perl library and where XS files will be looked for by -default (see L</XS>). - -C<NAME> I<must> be a valid Perl package name and it I<must> have an -associated C<.pm> file. For example, C<Foo::Bar> is a valid C<NAME> -and there must exist F<Foo/Bar.pm>. Any XS code should be in -F<Bar.xs> unless stated otherwise. - -Your distribution B<must> have a C<NAME>. - -=item NEEDS_LINKING - -MakeMaker will figure out if an extension contains linkable code -anywhere down the directory tree, and will set this variable -accordingly, but you can speed it up a very little bit if you define -this boolean variable yourself. - -=item NOECHO - -Command so make does not print the literal commands it's running. - -By setting it to an empty string you can generate a Makefile that -prints all commands. Mainly used in debugging MakeMaker itself. - -Defaults to C<@>. - -=item NORECURS - -Boolean. Attribute to inhibit descending into subdirectories. - -=item NO_META - -When true, suppresses the generation and addition to the MANIFEST of -the META.yml and META.json module meta-data files during 'make distdir'. - -Defaults to false. - -=item NO_MYMETA - -Available in version 6.57_02 and above. - -When true, suppresses the generation of MYMETA.yml and MYMETA.json module -meta-data files during 'perl Makefile.PL'. - -Defaults to false. - -=item NO_PACKLIST - -Available in version 6.7501 and above. - -When true, suppresses the writing of C<packlist> files for installs. - -Defaults to false. - -=item NO_PERLLOCAL - -Available in version 6.7501 and above. - -When true, suppresses the appending of installations to C<perllocal>. - -Defaults to false. - -=item NO_VC - -In general, any generated Makefile checks for the current version of -MakeMaker and the version the Makefile was built under. If NO_VC is -set, the version check is neglected. Do not write this into your -Makefile.PL, use it interactively instead. - -=item OBJECT - -List of object files, defaults to '$(BASEEXT)$(OBJ_EXT)', but can be a long -string or an array containing all object files, e.g. "tkpBind.o -tkpButton.o tkpCanvas.o" or ["tkpBind.o", "tkpButton.o", "tkpCanvas.o"] - -(Where BASEEXT is the last component of NAME, and OBJ_EXT is $Config{obj_ext}.) - -=item OPTIMIZE - -Defaults to C<-O>. Set it to C<-g> to turn debugging on. The flag is -passed to subdirectory makes. - -=item PERL - -Perl binary for tasks that can be done by miniperl. If it contains -spaces or other shell metacharacters, it needs to be quoted in a way -that protects them, since this value is intended to be inserted in a -shell command line in the Makefile. E.g.: - - # Perl executable lives in "C:/Program Files/Perl/bin" - # Normally you don't need to set this yourself! - $ perl Makefile.PL PERL='"C:/Program Files/Perl/bin/perl.exe" -w' - -=item PERL_CORE - -Set only when MakeMaker is building the extensions of the Perl core -distribution. - -=item PERLMAINCC - -The call to the program that is able to compile perlmain.c. Defaults -to $(CC). - -=item PERL_ARCHLIB - -Same as for PERL_LIB, but for architecture dependent files. - -Used only when MakeMaker is building the extensions of the Perl core -distribution (because normally $(PERL_ARCHLIB) is automatically in @INC, -and adding it would get in the way of PERL5LIB). - -=item PERL_LIB - -Directory containing the Perl library to use. - -Used only when MakeMaker is building the extensions of the Perl core -distribution (because normally $(PERL_LIB) is automatically in @INC, -and adding it would get in the way of PERL5LIB). - -=item PERL_MALLOC_OK - -defaults to 0. Should be set to TRUE if the extension can work with -the memory allocation routines substituted by the Perl malloc() subsystem. -This should be applicable to most extensions with exceptions of those - -=over 4 - -=item * - -with bugs in memory allocations which are caught by Perl's malloc(); - -=item * - -which interact with the memory allocator in other ways than via -malloc(), realloc(), free(), calloc(), sbrk() and brk(); - -=item * - -which rely on special alignment which is not provided by Perl's malloc(). - -=back - -B<NOTE.> Neglecting to set this flag in I<any one> of the loaded extension -nullifies many advantages of Perl's malloc(), such as better usage of -system resources, error detection, memory usage reporting, catchable failure -of memory allocations, etc. - -=item PERLPREFIX - -Directory under which core modules are to be installed. - -Defaults to $Config{installprefixexp}, falling back to -$Config{installprefix}, $Config{prefixexp} or $Config{prefix} should -$Config{installprefixexp} not exist. - -Overridden by PREFIX. - -=item PERLRUN - -Use this instead of $(PERL) when you wish to run perl. It will set up -extra necessary flags for you. - -=item PERLRUNINST - -Use this instead of $(PERL) when you wish to run perl to work with -modules. It will add things like -I$(INST_ARCH) and other necessary -flags so perl can see the modules you're about to install. - -=item PERL_SRC - -Directory containing the Perl source code (use of this should be -avoided, it may be undefined) - -=item PERM_DIR - -Available in version 6.51_01 and above. - -Desired permission for directories. Defaults to C<755>. - -=item PERM_RW - -Desired permission for read/writable files. Defaults to C<644>. - -=item PERM_RWX - -Desired permission for executable files. Defaults to C<755>. - -=item PL_FILES - -MakeMaker can run programs to generate files for you at build time. -By default any file named *.PL (except Makefile.PL and Build.PL) in -the top level directory will be assumed to be a Perl program and run -passing its own basename in as an argument. This basename is actually a build -target, and there is an intention, but not a requirement, that the *.PL file -make the file passed to to as an argument. For example... - - perl foo.PL foo - -This behavior can be overridden by supplying your own set of files to -search. PL_FILES accepts a hash ref, the key being the file to run -and the value is passed in as the first argument when the PL file is run. - - PL_FILES => {'bin/foobar.PL' => 'bin/foobar'} - - PL_FILES => {'foo.PL' => 'foo.c'} - -Would run bin/foobar.PL like this: - - perl bin/foobar.PL bin/foobar - -If multiple files from one program are desired an array ref can be used. - - PL_FILES => {'bin/foobar.PL' => [qw(bin/foobar1 bin/foobar2)]} - -In this case the program will be run multiple times using each target file. - - perl bin/foobar.PL bin/foobar1 - perl bin/foobar.PL bin/foobar2 - -PL files are normally run B<after> pm_to_blib and include INST_LIB and -INST_ARCH in their C<@INC>, so the just built modules can be -accessed... unless the PL file is making a module (or anything else in -PM) in which case it is run B<before> pm_to_blib and does not include -INST_LIB and INST_ARCH in its C<@INC>. This apparently odd behavior -is there for backwards compatibility (and it's somewhat DWIM). The argument -passed to the .PL is set up as a target to build in the Makefile. In other -sections such as C<postamble> you can specify a dependency on the -filename/argument that the .PL is supposed (or will have, now that that is -is a dependency) to generate. Note the file to be generated will still be -generated and the .PL will still run even without an explicit dependency created -by you, since the C<all> target still depends on running all eligible to run.PL -files. - -=item PM - -Hashref of .pm files and *.pl files to be installed. e.g. - - {'name_of_file.pm' => '$(INST_LIB)/install_as.pm'} - -By default this will include *.pm and *.pl and the files found in -the PMLIBDIRS directories. Defining PM in the -Makefile.PL will override PMLIBDIRS. - -=item PMLIBDIRS - -Ref to array of subdirectories containing library files. Defaults to -[ 'lib', $(BASEEXT) ]. The directories will be scanned and I<any> files -they contain will be installed in the corresponding location in the -library. A libscan() method can be used to alter the behaviour. -Defining PM in the Makefile.PL will override PMLIBDIRS. - -(Where BASEEXT is the last component of NAME.) - -=item PM_FILTER - -A filter program, in the traditional Unix sense (input from stdin, output -to stdout) that is passed on each .pm file during the build (in the -pm_to_blib() phase). It is empty by default, meaning no filtering is done. -You could use: - - PM_FILTER => 'perl -ne "print unless /^\\#/"', - -to remove all the leading comments on the fly during the build. In order -to be as portable as possible, please consider using a Perl one-liner -rather than Unix (or other) utilities, as above. The # is escaped for -the Makefile, since what is going to be generated will then be: - - PM_FILTER = perl -ne "print unless /^\#/" - -Without the \ before the #, we'd have the start of a Makefile comment, -and the macro would be incorrectly defined. - -You will almost certainly be better off using the C<PL_FILES> system, -instead. See above, or the L<ExtUtils::MakeMaker::FAQ> entry. - -=item POLLUTE - -Release 5.005 grandfathered old global symbol names by providing preprocessor -macros for extension source compatibility. As of release 5.6, these -preprocessor definitions are not available by default. The POLLUTE flag -specifies that the old names should still be defined: - - perl Makefile.PL POLLUTE=1 - -Please inform the module author if this is necessary to successfully install -a module under 5.6 or later. - -=item PPM_INSTALL_EXEC - -Name of the executable used to run C<PPM_INSTALL_SCRIPT> below. (e.g. perl) - -=item PPM_INSTALL_SCRIPT - -Name of the script that gets executed by the Perl Package Manager after -the installation of a package. - -=item PPM_UNINSTALL_EXEC - -Available in version 6.8502 and above. - -Name of the executable used to run C<PPM_UNINSTALL_SCRIPT> below. (e.g. perl) - -=item PPM_UNINSTALL_SCRIPT - -Available in version 6.8502 and above. - -Name of the script that gets executed by the Perl Package Manager before -the removal of a package. - -=item PREFIX - -This overrides all the default install locations. Man pages, -libraries, scripts, etc... MakeMaker will try to make an educated -guess about where to place things under the new PREFIX based on your -Config defaults. Failing that, it will fall back to a structure -which should be sensible for your platform. - -If you specify LIB or any INSTALL* variables they will not be affected -by the PREFIX. - -=item PREREQ_FATAL - -Bool. If this parameter is true, failing to have the required modules -(or the right versions thereof) will be fatal. C<perl Makefile.PL> -will C<die> instead of simply informing the user of the missing dependencies. - -It is I<extremely> rare to have to use C<PREREQ_FATAL>. Its use by module -authors is I<strongly discouraged> and should never be used lightly. - -For dependencies that are required in order to run C<Makefile.PL>, -see C<CONFIGURE_REQUIRES>. - -Module installation tools have ways of resolving unmet dependencies but -to do that they need a F<Makefile>. Using C<PREREQ_FATAL> breaks this. -That's bad. - -Assuming you have good test coverage, your tests should fail with -missing dependencies informing the user more strongly that something -is wrong. You can write a F<t/00compile.t> test which will simply -check that your code compiles and stop "make test" prematurely if it -doesn't. See L<Test::More/BAIL_OUT> for more details. - - -=item PREREQ_PM - -A hash of modules that are needed to run your module. The keys are -the module names ie. Test::More, and the minimum version is the -value. If the required version number is 0 any version will do. -The versions given may be a Perl v-string (see L<version>) or a range -(see L<CPAN::Meta::Requirements>). - -This will go into the C<requires> field of your F<META.yml> and the -C<runtime> of the C<prereqs> field of your F<META.json>. - - PREREQ_PM => { - # Require Test::More at least 0.47 - "Test::More" => "0.47", - - # Require any version of Acme::Buffy - "Acme::Buffy" => 0, - } - -=item PREREQ_PRINT - -Bool. If this parameter is true, the prerequisites will be printed to -stdout and MakeMaker will exit. The output format is an evalable hash -ref. - - $PREREQ_PM = { - 'A::B' => Vers1, - 'C::D' => Vers2, - ... - }; - -If a distribution defines a minimal required perl version, this is -added to the output as an additional line of the form: - - $MIN_PERL_VERSION = '5.008001'; - -If BUILD_REQUIRES is not empty, it will be dumped as $BUILD_REQUIRES hashref. - -=item PRINT_PREREQ - -RedHatism for C<PREREQ_PRINT>. The output format is different, though: - - perl(A::B)>=Vers1 perl(C::D)>=Vers2 ... - -A minimal required perl version, if present, will look like this: - - perl(perl)>=5.008001 - -=item SITEPREFIX - -Like PERLPREFIX, but only for the site install locations. - -Defaults to $Config{siteprefixexp}. Perls prior to 5.6.0 didn't have -an explicit siteprefix in the Config. In those cases -$Config{installprefix} will be used. - -Overridable by PREFIX - -=item SIGN - -Available in version 6.18 and above. - -When true, perform the generation and addition to the MANIFEST of the -SIGNATURE file in the distdir during 'make distdir', via 'cpansign --s'. - -Note that you need to install the Module::Signature module to -perform this operation. - -Defaults to false. - -=item SKIP - -Arrayref. E.g. [qw(name1 name2)] skip (do not write) sections of the -Makefile. Caution! Do not use the SKIP attribute for the negligible -speedup. It may seriously damage the resulting Makefile. Only use it -if you really need it. - -=item TEST_REQUIRES - -Available in version 6.64 and above. - -A hash of modules that are needed to test your module but not run or -build it. - -This will go into the C<build_requires> field of your F<META.yml> and the C<test> of the C<prereqs> field of your F<META.json>. - -The format is the same as PREREQ_PM. - -=item TYPEMAPS - -Ref to array of typemap file names. Use this when the typemaps are -in some directory other than the current directory or when they are -not named B<typemap>. The last typemap in the list takes -precedence. A typemap in the current directory has highest -precedence, even if it isn't listed in TYPEMAPS. The default system -typemap has lowest precedence. - -=item VENDORPREFIX - -Like PERLPREFIX, but only for the vendor install locations. - -Defaults to $Config{vendorprefixexp}. - -Overridable by PREFIX - -=item VERBINST - -If true, make install will be verbose - -=item VERSION - -Your version number for distributing the package. This defaults to -0.1. - -=item VERSION_FROM - -Instead of specifying the VERSION in the Makefile.PL you can let -MakeMaker parse a file to determine the version number. The parsing -routine requires that the file named by VERSION_FROM contains one -single line to compute the version number. The first line in the file -that contains something like a $VERSION assignment or C<package Name -VERSION> will be used. The following lines will be parsed o.k.: - - # Good - package Foo::Bar 1.23; # 1.23 - $VERSION = '1.00'; # 1.00 - *VERSION = \'1.01'; # 1.01 - ($VERSION) = q$Revision$ =~ /(\d+)/g; # The digits in $Revision$ - $FOO::VERSION = '1.10'; # 1.10 - *FOO::VERSION = \'1.11'; # 1.11 - -but these will fail: - - # Bad - my $VERSION = '1.01'; - local $VERSION = '1.02'; - local $FOO::VERSION = '1.30'; - -(Putting C<my> or C<local> on the preceding line will work o.k.) - -"Version strings" are incompatible and should not be used. - - # Bad - $VERSION = 1.2.3; - $VERSION = v1.2.3; - -L<version> objects are fine. As of MakeMaker 6.35 version.pm will be -automatically loaded, but you must declare the dependency on version.pm. -For compatibility with older MakeMaker you should load on the same line -as $VERSION is declared. - - # All on one line - use version; our $VERSION = qv(1.2.3); - -The file named in VERSION_FROM is not added as a dependency to -Makefile. This is not really correct, but it would be a major pain -during development to have to rewrite the Makefile for any smallish -change in that file. If you want to make sure that the Makefile -contains the correct VERSION macro after any change of the file, you -would have to do something like - - depend => { Makefile => '$(VERSION_FROM)' } - -See attribute C<depend> below. - -=item VERSION_SYM - -A sanitized VERSION with . replaced by _. For places where . has -special meaning (some filesystems, RCS labels, etc...) - -=item XS - -Hashref of .xs files. MakeMaker will default this. e.g. - - {'name_of_file.xs' => 'name_of_file.c'} - -The .c files will automatically be included in the list of files -deleted by a make clean. - -=item XSBUILD - -Available in version 7.12 and above. - -Hashref with options controlling the operation of C<XSMULTI>: - - { - xs => { - all => { - # options applying to all .xs files for this distribution - }, - 'lib/Class/Name/File' => { # specifically for this file - DEFINE => '-Dfunktastic', # defines for only this file - INC => "-I$funkyliblocation", # include flags for only this file - # OBJECT => 'lib/Class/Name/File$(OBJ_EXT)', # default - LDFROM => "lib/Class/Name/File\$(OBJ_EXT) $otherfile\$(OBJ_EXT)", # what's linked - }, - }, - } - -Note C<xs> is the file-extension. More possibilities may arise in the -future. Note that object names are specified without their XS extension. - -C<LDFROM> defaults to the same as C<OBJECT>. C<OBJECT> defaults to, -for C<XSMULTI>, just the XS filename with the extension replaced with -the compiler-specific object-file extension. - -The distinction between C<OBJECT> and C<LDFROM>: C<OBJECT> is the make -target, so make will try to build it. However, C<LDFROM> is what will -actually be linked together to make the shared object or static library -(SO/SL), so if you override it, make sure it includes what you want to -make the final SO/SL, almost certainly including the XS basename with -C<$(OBJ_EXT)> appended. - -=item XSMULTI - -Available in version 7.12 and above. - -When this is set to C<1>, multiple XS files may be placed under F<lib/> -next to their corresponding C<*.pm> files (this is essential for compiling -with the correct C<VERSION> values). This feature should be considered -experimental, and details of it may change. - -This feature was inspired by, and small portions of code copied from, -L<ExtUtils::MakeMaker::BigHelper>. Hopefully this feature will render -that module mainly obsolete. - -=item XSOPT - -String of options to pass to xsubpp. This might include C<-C++> or -C<-extern>. Do not include typemaps here; the TYPEMAP parameter exists for -that purpose. - -=item XSPROTOARG - -May be set to C<-protoypes>, C<-noprototypes> or the empty string. The -empty string is equivalent to the xsubpp default, or C<-noprototypes>. -See the xsubpp documentation for details. MakeMaker -defaults to the empty string. - -=item XS_VERSION - -Your version number for the .xs file of this package. This defaults -to the value of the VERSION attribute. - -=back - -=head2 Additional lowercase attributes - -can be used to pass parameters to the methods which implement that -part of the Makefile. Parameters are specified as a hash ref but are -passed to the method as a hash. - -=over 2 - -=item clean - - {FILES => "*.xyz foo"} - -=item depend - - {ANY_TARGET => ANY_DEPENDENCY, ...} - -(ANY_TARGET must not be given a double-colon rule by MakeMaker.) - -=item dist - - {TARFLAGS => 'cvfF', COMPRESS => 'gzip', SUFFIX => '.gz', - SHAR => 'shar -m', DIST_CP => 'ln', ZIP => '/bin/zip', - ZIPFLAGS => '-rl', DIST_DEFAULT => 'private tardist' } - -If you specify COMPRESS, then SUFFIX should also be altered, as it is -needed to tell make the target file of the compression. Setting -DIST_CP to ln can be useful, if you need to preserve the timestamps on -your files. DIST_CP can take the values 'cp', which copies the file, -'ln', which links the file, and 'best' which copies symbolic links and -links the rest. Default is 'best'. - -=item dynamic_lib - - {ARMAYBE => 'ar', OTHERLDFLAGS => '...', INST_DYNAMIC_DEP => '...'} - -=item linkext - - {LINKTYPE => 'static', 'dynamic' or ''} - -NB: Extensions that have nothing but *.pm files had to say - - {LINKTYPE => ''} - -with Pre-5.0 MakeMakers. Since version 5.00 of MakeMaker such a line -can be deleted safely. MakeMaker recognizes when there's nothing to -be linked. - -=item macro - - {ANY_MACRO => ANY_VALUE, ...} - -=item postamble - -Anything put here will be passed to MY::postamble() if you have one. - -=item realclean - - {FILES => '$(INST_ARCHAUTODIR)/*.xyz'} - -=item test - -Specify the targets for testing. - - {TESTS => 't/*.t'} - -C<RECURSIVE_TEST_FILES> can be used to include all directories -recursively under C<t> that contain C<.t> files. It will be ignored if -you provide your own C<TESTS> attribute, defaults to false. - - {RECURSIVE_TEST_FILES=>1} - -This is supported since 6.76 - -=item tool_autosplit - - {MAXLEN => 8} - -=back - -=head2 Overriding MakeMaker Methods - -If you cannot achieve the desired Makefile behaviour by specifying -attributes you may define private subroutines in the Makefile.PL. -Each subroutine returns the text it wishes to have written to -the Makefile. To override a section of the Makefile you can -either say: - - sub MY::c_o { "new literal text" } - -or you can edit the default by saying something like: - - package MY; # so that "SUPER" works right - sub c_o { - my $inherited = shift->SUPER::c_o(@_); - $inherited =~ s/old text/new text/; - $inherited; - } - -If you are running experiments with embedding perl as a library into -other applications, you might find MakeMaker is not sufficient. You'd -better have a look at ExtUtils::Embed which is a collection of utilities -for embedding. - -If you still need a different solution, try to develop another -subroutine that fits your needs and submit the diffs to -C<makemaker@perl.org> - -For a complete description of all MakeMaker methods see -L<ExtUtils::MM_Unix>. - -Here is a simple example of how to add a new target to the generated -Makefile: - - sub MY::postamble { - return <<'MAKE_FRAG'; - $(MYEXTLIB): sdbm/Makefile - cd sdbm && $(MAKE) all - - MAKE_FRAG - } - -=head2 The End Of Cargo Cult Programming - -WriteMakefile() now does some basic sanity checks on its parameters to -protect against typos and malformatted values. This means some things -which happened to work in the past will now throw warnings and -possibly produce internal errors. - -Some of the most common mistakes: - -=over 2 - -=item C<< MAN3PODS => ' ' >> - -This is commonly used to suppress the creation of man pages. MAN3PODS -takes a hash ref not a string, but the above worked by accident in old -versions of MakeMaker. - -The correct code is C<< MAN3PODS => { } >>. - -=back - - -=head2 Hintsfile support - -MakeMaker.pm uses the architecture-specific information from -Config.pm. In addition it evaluates architecture specific hints files -in a C<hints/> directory. The hints files are expected to be named -like their counterparts in C<PERL_SRC/hints>, but with an C<.pl> file -name extension (eg. C<next_3_2.pl>). They are simply C<eval>ed by -MakeMaker within the WriteMakefile() subroutine, and can be used to -execute commands as well as to include special variables. The rules -which hintsfile is chosen are the same as in Configure. - -The hintsfile is eval()ed immediately after the arguments given to -WriteMakefile are stuffed into a hash reference $self but before this -reference becomes blessed. So if you want to do the equivalent to -override or create an attribute you would say something like - - $self->{LIBS} = ['-ldbm -lucb -lc']; - -=head2 Distribution Support - -For authors of extensions MakeMaker provides several Makefile -targets. Most of the support comes from the ExtUtils::Manifest module, -where additional documentation can be found. - -=over 4 - -=item make distcheck - -reports which files are below the build directory but not in the -MANIFEST file and vice versa. (See ExtUtils::Manifest::fullcheck() for -details) - -=item make skipcheck - -reports which files are skipped due to the entries in the -C<MANIFEST.SKIP> file (See ExtUtils::Manifest::skipcheck() for -details) - -=item make distclean - -does a realclean first and then the distcheck. Note that this is not -needed to build a new distribution as long as you are sure that the -MANIFEST file is ok. - -=item make veryclean - -does a realclean first and then removes backup files such as C<*~>, -C<*.bak>, C<*.old> and C<*.orig> - -=item make manifest - -rewrites the MANIFEST file, adding all remaining files found (See -ExtUtils::Manifest::mkmanifest() for details) - -=item make distdir - -Copies all the files that are in the MANIFEST file to a newly created -directory with the name C<$(DISTNAME)-$(VERSION)>. If that directory -exists, it will be removed first. - -Additionally, it will create META.yml and META.json module meta-data file -in the distdir and add this to the distdir's MANIFEST. You can shut this -behavior off with the NO_META flag. - -=item make disttest - -Makes a distdir first, and runs a C<perl Makefile.PL>, a make, and -a make test in that directory. - -=item make tardist - -First does a distdir. Then a command $(PREOP) which defaults to a null -command, followed by $(TO_UNIX), which defaults to a null command under -UNIX, and will convert files in distribution directory to UNIX format -otherwise. Next it runs C<tar> on that directory into a tarfile and -deletes the directory. Finishes with a command $(POSTOP) which -defaults to a null command. - -=item make dist - -Defaults to $(DIST_DEFAULT) which in turn defaults to tardist. - -=item make uutardist - -Runs a tardist first and uuencodes the tarfile. - -=item make shdist - -First does a distdir. Then a command $(PREOP) which defaults to a null -command. Next it runs C<shar> on that directory into a sharfile and -deletes the intermediate directory again. Finishes with a command -$(POSTOP) which defaults to a null command. Note: For shdist to work -properly a C<shar> program that can handle directories is mandatory. - -=item make zipdist - -First does a distdir. Then a command $(PREOP) which defaults to a null -command. Runs C<$(ZIP) $(ZIPFLAGS)> on that directory into a -zipfile. Then deletes that directory. Finishes with a command -$(POSTOP) which defaults to a null command. - -=item make ci - -Does a $(CI) and a $(RCS_LABEL) on all files in the MANIFEST file. - -=back - -Customization of the dist targets can be done by specifying a hash -reference to the dist attribute of the WriteMakefile call. The -following parameters are recognized: - - CI ('ci -u') - COMPRESS ('gzip --best') - POSTOP ('@ :') - PREOP ('@ :') - TO_UNIX (depends on the system) - RCS_LABEL ('rcs -q -Nv$(VERSION_SYM):') - SHAR ('shar') - SUFFIX ('.gz') - TAR ('tar') - TARFLAGS ('cvf') - ZIP ('zip') - ZIPFLAGS ('-r') - -An example: - - WriteMakefile( - ...other options... - dist => { - COMPRESS => "bzip2", - SUFFIX => ".bz2" - } - ); - - -=head2 Module Meta-Data (META and MYMETA) - -Long plaguing users of MakeMaker based modules has been the problem of -getting basic information about the module out of the sources -I<without> running the F<Makefile.PL> and doing a bunch of messy -heuristics on the resulting F<Makefile>. Over the years, it has become -standard to keep this information in one or more CPAN Meta files -distributed with each distribution. - -The original format of CPAN Meta files was L<YAML> and the corresponding -file was called F<META.yml>. In 2010, version 2 of the L<CPAN::Meta::Spec> -was released, which mandates JSON format for the metadata in order to -overcome certain compatibility issues between YAML serializers and to -avoid breaking older clients unable to handle a new version of the spec. -The L<CPAN::Meta> library is now standard for accessing old and new-style -Meta files. - -If L<CPAN::Meta> is installed, MakeMaker will automatically generate -F<META.json> and F<META.yml> files for you and add them to your F<MANIFEST> as -part of the 'distdir' target (and thus the 'dist' target). This is intended to -seamlessly and rapidly populate CPAN with module meta-data. If you wish to -shut this feature off, set the C<NO_META> C<WriteMakefile()> flag to true. - -At the 2008 QA Hackathon in Oslo, Perl module toolchain maintainers agreed -to use the CPAN Meta format to communicate post-configuration requirements -between toolchain components. These files, F<MYMETA.json> and F<MYMETA.yml>, -are generated when F<Makefile.PL> generates a F<Makefile> (if L<CPAN::Meta> -is installed). Clients like L<CPAN> or L<CPANPLUS> will read these -files to see what prerequisites must be fulfilled before building or testing -the distribution. If you wish to shut this feature off, set the C<NO_MYMETA> -C<WriteMakeFile()> flag to true. - -=head2 Disabling an extension - -If some events detected in F<Makefile.PL> imply that there is no way -to create the Module, but this is a normal state of things, then you -can create a F<Makefile> which does nothing, but succeeds on all the -"usual" build targets. To do so, use - - use ExtUtils::MakeMaker qw(WriteEmptyMakefile); - WriteEmptyMakefile(); - -instead of WriteMakefile(). - -This may be useful if other modules expect this module to be I<built> -OK, as opposed to I<work> OK (say, this system-dependent module builds -in a subdirectory of some other distribution, or is listed as a -dependency in a CPAN::Bundle, but the functionality is supported by -different means on the current architecture). - -=head2 Other Handy Functions - -=over 4 - -=item prompt - - my $value = prompt($message); - my $value = prompt($message, $default); - -The C<prompt()> function provides an easy way to request user input -used to write a makefile. It displays the $message as a prompt for -input. If a $default is provided it will be used as a default. The -function returns the $value selected by the user. - -If C<prompt()> detects that it is not running interactively and there -is nothing on STDIN or if the PERL_MM_USE_DEFAULT environment variable -is set to true, the $default will be used without prompting. This -prevents automated processes from blocking on user input. - -If no $default is provided an empty string will be used instead. - -=item os_unsupported - - os_unsupported(); - os_unsupported if $^O eq 'MSWin32'; - -The C<os_unsupported()> function provides a way to correctly exit your -C<Makefile.PL> before calling C<WriteMakefile>. It is essentially a -C<die> with the message "OS unsupported". - -This is supported since 7.26 - -=back - -=head2 Supported versions of Perl - -Please note that while this module works on Perl 5.6, it is no longer -being routinely tested on 5.6 - the earliest Perl version being routinely -tested, and expressly supported, is 5.8.1. However, patches to repair -any breakage on 5.6 are still being accepted. - -=head1 ENVIRONMENT - -=over 4 - -=item PERL_MM_OPT - -Command line options used by C<MakeMaker-E<gt>new()>, and thus by -C<WriteMakefile()>. The string is split as the shell would, and the result -is processed before any actual command line arguments are processed. - - PERL_MM_OPT='CCFLAGS="-Wl,-rpath -Wl,/foo/bar/lib" LIBS="-lwibble -lwobble"' - -=item PERL_MM_USE_DEFAULT - -If set to a true value then MakeMaker's prompt function will -always return the default without waiting for user input. - -=item PERL_CORE - -Same as the PERL_CORE parameter. The parameter overrides this. - -=back - -=head1 SEE ALSO - -L<Module::Build> is a pure-Perl alternative to MakeMaker which does -not rely on make or any other external utility. It is easier to -extend to suit your needs. - -L<Module::Install> is a wrapper around MakeMaker which adds features -not normally available. - -L<ExtUtils::ModuleMaker> and L<Module::Starter> are both modules to -help you setup your distribution. - -L<CPAN::Meta> and L<CPAN::Meta::Spec> explain CPAN Meta files in detail. - -L<File::ShareDir::Install> makes it easy to install static, sometimes -also referred to as 'shared' files. L<File::ShareDir> helps accessing -the shared files after installation. - -L<Dist::Zilla> makes it easy for the module author to create MakeMaker-based -distributions with lots of bells and whistles. - -=head1 AUTHORS - -Andy Dougherty C<doughera@lafayette.edu>, Andreas KE<ouml>nig -C<andreas.koenig@mind.de>, Tim Bunce C<timb@cpan.org>. VMS -support by Charles Bailey C<bailey@newman.upenn.edu>. OS/2 support -by Ilya Zakharevich C<ilya@math.ohio-state.edu>. - -Currently maintained by Michael G Schwern C<schwern@pobox.com> - -Send patches and ideas to C<makemaker@perl.org>. - -Send bug reports via http://rt.cpan.org/. Please send your -generated Makefile along with your report. - -For more up-to-date information, see L<https://metacpan.org/release/ExtUtils-MakeMaker>. - -Repository available at L<https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker>. - -=head1 LICENSE - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L<http://www.perl.com/perl/misc/Artistic.html> - - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/Config.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/Config.pm deleted file mode 100644 index 0d4f8b1e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/Config.pm +++ /dev/null @@ -1,40 +0,0 @@ -package ExtUtils::MakeMaker::Config; - -use strict; - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -use Config (); - -# Give us an overridable config. -our %Config = %Config::Config; - -sub import { - my $caller = caller; - - no strict 'refs'; ## no critic - *{$caller.'::Config'} = \%Config; -} - -1; - - -=head1 NAME - -ExtUtils::MakeMaker::Config - Wrapper around Config.pm - - -=head1 SYNOPSIS - - use ExtUtils::MakeMaker::Config; - print $Config{installbin}; # or whatever - - -=head1 DESCRIPTION - -B<FOR INTERNAL USE ONLY> - -A very thin wrapper around Config.pm so MakeMaker is easier to test. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/FAQ.pod b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/FAQ.pod deleted file mode 100644 index 0ceb4f76..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/FAQ.pod +++ /dev/null @@ -1,666 +0,0 @@ -package ExtUtils::MakeMaker::FAQ; - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -1; -__END__ - -=head1 NAME - -ExtUtils::MakeMaker::FAQ - Frequently Asked Questions About MakeMaker - -=head1 DESCRIPTION - -FAQs, tricks and tips for C<ExtUtils::MakeMaker>. - - -=head2 Module Installation - -=over 4 - -=item How do I install a module into my home directory? - -If you're not the Perl administrator you probably don't have -permission to install a module to its default location. Ways of handling -this with a B<lot> less manual effort on your part are L<perlbrew> -and L<local::lib>. - -Otherwise, you can install it for your own use into your home directory -like so: - - # Non-unix folks, replace ~ with /path/to/your/home/dir - perl Makefile.PL INSTALL_BASE=~ - -This will put modules into F<~/lib/perl5>, man pages into F<~/man> and -programs into F<~/bin>. - -To ensure your Perl programs can see these newly installed modules, -set your C<PERL5LIB> environment variable to F<~/lib/perl5> or tell -each of your programs to look in that directory with the following: - - use lib "$ENV{HOME}/lib/perl5"; - -or if $ENV{HOME} isn't set and you don't want to set it for some -reason, do it the long way. - - use lib "/path/to/your/home/dir/lib/perl5"; - -=item How do I get MakeMaker and Module::Build to install to the same place? - -Module::Build, as of 0.28, supports two ways to install to the same -location as MakeMaker. - -We highly recommend the install_base method, its the simplest and most -closely approximates the expected behavior of an installation prefix. - -1) Use INSTALL_BASE / C<--install_base> - -MakeMaker (as of 6.31) and Module::Build (as of 0.28) both can install -to the same locations using the "install_base" concept. See -L<ExtUtils::MakeMaker/INSTALL_BASE> for details. To get MM and MB to -install to the same location simply set INSTALL_BASE in MM and -C<--install_base> in MB to the same location. - - perl Makefile.PL INSTALL_BASE=/whatever - perl Build.PL --install_base /whatever - -This works most like other language's behavior when you specify a -prefix. We recommend this method. - -2) Use PREFIX / C<--prefix> - -Module::Build 0.28 added support for C<--prefix> which works like -MakeMaker's PREFIX. - - perl Makefile.PL PREFIX=/whatever - perl Build.PL --prefix /whatever - -We highly discourage this method. It should only be used if you know -what you're doing and specifically need the PREFIX behavior. The -PREFIX algorithm is complicated and focused on matching the system -installation. - -=item How do I keep from installing man pages? - -Recent versions of MakeMaker will only install man pages on Unix-like -operating systems. - -For an individual module: - - perl Makefile.PL INSTALLMAN1DIR=none INSTALLMAN3DIR=none - -If you want to suppress man page installation for all modules you have -to reconfigure Perl and tell it 'none' when it asks where to install -man pages. - - -=item How do I use a module without installing it? - -Two ways. One is to build the module normally... - - perl Makefile.PL - make - make test - -...and then use L<blib> to point Perl at the built but uninstalled module: - - perl -Mblib script.pl - perl -Mblib -e '...' - -The other is to install the module in a temporary location. - - perl Makefile.PL INSTALL_BASE=~/tmp - make - make test - make install - -And then set PERL5LIB to F<~/tmp/lib/perl5>. This works well when you -have multiple modules to work with. It also ensures that the module -goes through its full installation process which may modify it. -Again, L<local::lib> may assist you here. - -=item How can I organize tests into subdirectories and have them run? - -Let's take the following test directory structure: - - t/foo/sometest.t - t/bar/othertest.t - t/bar/baz/anothertest.t - -Now, inside of the C<WriteMakeFile()> function in your F<Makefile.PL>, specify -where your tests are located with the C<test> directive: - - test => {TESTS => 't/*.t t/*/*.t t/*/*/*.t'} - -The first entry in the string will run all tests in the top-level F<t/> -directory. The second will run all test files located in any subdirectory under -F<t/>. The third, runs all test files within any subdirectory within any other -subdirectory located under F<t/>. - -Note that you do not have to use wildcards. You can specify explicitly which -subdirectories to run tests in: - - test => {TESTS => 't/*.t t/foo/*.t t/bar/baz/*.t'} - -=item PREFIX vs INSTALL_BASE from Module::Build::Cookbook - -The behavior of PREFIX is complicated and depends closely on how your -Perl is configured. The resulting installation locations will vary -from machine to machine and even different installations of Perl on the -same machine. Because of this, its difficult to document where prefix -will place your modules. - -In contrast, INSTALL_BASE has predictable, easy to explain installation -locations. Now that Module::Build and MakeMaker both have INSTALL_BASE -there is little reason to use PREFIX other than to preserve your existing -installation locations. If you are starting a fresh Perl installation we -encourage you to use INSTALL_BASE. If you have an existing installation -installed via PREFIX, consider moving it to an installation structure -matching INSTALL_BASE and using that instead. - -=item Generating *.pm files with substitutions eg of $VERSION - -If you want to configure your module files for local conditions, or to -automatically insert a version number, you can use EUMM's C<PL_FILES> -capability, where it will automatically run each F<*.PL> it finds to -generate its basename. For instance: - - # Makefile.PL: - require 'common.pl'; - my $version = get_version(); - my @pms = qw(Foo.pm); - WriteMakefile( - NAME => 'Foo', - VERSION => $version, - PM => { map { ($_ => "\$(INST_LIB)/$_") } @pms }, - clean => { FILES => join ' ', @pms }, - ); - - # common.pl: - sub get_version { '0.04' } - sub process { my $v = get_version(); s/__VERSION__/$v/g; } - 1; - - # Foo.pm.PL: - require 'common.pl'; - $_ = join '', <DATA>; - process(); - my $file = shift; - open my $fh, '>', $file or die "$file: $!"; - print $fh $_; - __DATA__ - package Foo; - our $VERSION = '__VERSION__'; - 1; - -You may notice that C<PL_FILES> is not specified above, since the default -of mapping each .PL file to its basename works well. - -If the generated module were architecture-specific, you could replace -C<$(INST_LIB)> above with C<$(INST_ARCHLIB)>, although if you locate -modules under F<lib>, that would involve ensuring any C<lib/> in front -of the module location were removed. - -=back - -=head2 Common errors and problems - -=over 4 - -=item "No rule to make target `/usr/lib/perl5/CORE/config.h', needed by `Makefile'" - -Just what it says, you're missing that file. MakeMaker uses it to -determine if perl has been rebuilt since the Makefile was made. It's -a bit of a bug that it halts installation. - -Some operating systems don't ship the CORE directory with their base -perl install. To solve the problem, you likely need to install a perl -development package such as perl-devel (CentOS, Fedora and other -Redhat systems) or perl (Ubuntu and other Debian systems). - -=back - -=head2 Philosophy and History - -=over 4 - -=item Why not just use <insert other build config tool here>? - -Why did MakeMaker reinvent the build configuration wheel? Why not -just use autoconf or automake or ppm or Ant or ... - -There are many reasons, but the major one is cross-platform -compatibility. - -Perl is one of the most ported pieces of software ever. It works on -operating systems I've never even heard of (see perlport for details). -It needs a build tool that can work on all those platforms and with -any wacky C compilers and linkers they might have. - -No such build tool exists. Even make itself has wildly different -dialects. So we have to build our own. - - -=item What is Module::Build and how does it relate to MakeMaker? - -Module::Build is a project by Ken Williams to supplant MakeMaker. -Its primary advantages are: - -=over 8 - -=item * pure perl. no make, no shell commands - -=item * easier to customize - -=item * cleaner internals - -=item * less cruft - -=back - -Module::Build was long the official heir apparent to MakeMaker. The -rate of both its development and adoption has slowed in recent years, -though, and it is unclear what the future holds for it. That said, -Module::Build set the stage for I<something> to become the heir to -MakeMaker. MakeMaker's maintainers have long said that it is a dead -end and should be kept functioning, while being cautious about extending -with new features. - -=back - -=head2 Module Writing - -=over 4 - -=item How do I keep my $VERSION up to date without resetting it manually? - -Often you want to manually set the $VERSION in the main module -distribution because this is the version that everybody sees on CPAN -and maybe you want to customize it a bit. But for all the other -modules in your dist, $VERSION is really just bookkeeping and all that's -important is it goes up every time the module is changed. Doing this -by hand is a pain and you often forget. - -Probably the easiest way to do this is using F<perl-reversion> in -L<Perl::Version>: - - perl-reversion -bump - -If your version control system supports revision numbers (git doesn't -easily), the simplest way to do it automatically is to use its revision -number (you are using version control, right?). - -In CVS, RCS and SVN you use $Revision$ (see the documentation of your -version control system for details). Every time the file is checked -in the $Revision$ will be updated, updating your $VERSION. - -SVN uses a simple integer for $Revision$ so you can adapt it for your -$VERSION like so: - - ($VERSION) = q$Revision$ =~ /(\d+)/; - -In CVS and RCS version 1.9 is followed by 1.10. Since CPAN compares -version numbers numerically we use a sprintf() to convert 1.9 to 1.009 -and 1.10 to 1.010 which compare properly. - - $VERSION = sprintf "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/g; - -If branches are involved (ie. $Revision: 1.5.3.4$) it's a little more -complicated. - - # must be all on one line or MakeMaker will get confused. - $VERSION = do { my @r = (q$Revision$ =~ /\d+/g); sprintf "%d."."%03d" x $#r, @r }; - -In SVN, $Revision$ should be the same for every file in the project so -they would all have the same $VERSION. CVS and RCS have a different -$Revision$ per file so each file will have a different $VERSION. -Distributed version control systems, such as SVK, may have a different -$Revision$ based on who checks out the file, leading to a different $VERSION -on each machine! Finally, some distributed version control systems, such -as darcs, have no concept of revision number at all. - - -=item What's this F<META.yml> thing and how did it get in my F<MANIFEST>?! - -F<META.yml> is a module meta-data file pioneered by Module::Build and -automatically generated as part of the 'distdir' target (and thus -'dist'). See L<ExtUtils::MakeMaker/"Module Meta-Data">. - -To shut off its generation, pass the C<NO_META> flag to C<WriteMakefile()>. - - -=item How do I delete everything not in my F<MANIFEST>? - -Some folks are surprised that C<make distclean> does not delete -everything not listed in their MANIFEST (thus making a clean -distribution) but only tells them what they need to delete. This is -done because it is considered too dangerous. While developing your -module you might write a new file, not add it to the MANIFEST, then -run a C<distclean> and be sad because your new work was deleted. - -If you really want to do this, you can use -C<ExtUtils::Manifest::manifind()> to read the MANIFEST and File::Find -to delete the files. But you have to be careful. Here's a script to -do that. Use at your own risk. Have fun blowing holes in your foot. - - #!/usr/bin/perl -w - - use strict; - - use File::Spec; - use File::Find; - use ExtUtils::Manifest qw(maniread); - - my %manifest = map {( $_ => 1 )} - grep { File::Spec->canonpath($_) } - keys %{ maniread() }; - - if( !keys %manifest ) { - print "No files found in MANIFEST. Stopping.\n"; - exit; - } - - find({ - wanted => sub { - my $path = File::Spec->canonpath($_); - - return unless -f $path; - return if exists $manifest{ $path }; - - print "unlink $path\n"; - unlink $path; - }, - no_chdir => 1 - }, - "." - ); - - -=item Which tar should I use on Windows? - -We recommend ptar from Archive::Tar not older than 1.66 with '-C' option. - -=item Which zip should I use on Windows for '[ndg]make zipdist'? - -We recommend InfoZIP: L<http://www.info-zip.org/Zip.html> - - -=back - -=head2 XS - -=over 4 - -=item How do I prevent "object version X.XX does not match bootstrap parameter Y.YY" errors? - -XS code is very sensitive to the module version number and will -complain if the version number in your Perl module doesn't match. If -you change your module's version # without rerunning Makefile.PL the old -version number will remain in the Makefile, causing the XS code to be built -with the wrong number. - -To avoid this, you can force the Makefile to be rebuilt whenever you -change the module containing the version number by adding this to your -WriteMakefile() arguments. - - depend => { '$(FIRST_MAKEFILE)' => '$(VERSION_FROM)' } - - -=item How do I make two or more XS files coexist in the same directory? - -Sometimes you need to have two and more XS files in the same package. -There are three ways: C<XSMULTI>, separate directories, and bootstrapping -one XS from another. - -=over 8 - -=item XSMULTI - -Structure your modules so they are all located under F<lib>, such that -C<Foo::Bar> is in F<lib/Foo/Bar.pm> and F<lib/Foo/Bar.xs>, etc. Have your -top-level C<WriteMakefile> set the variable C<XSMULTI> to a true value. - -Er, that's it. - -=item Separate directories - -Put each XS files into separate directories, each with their own -F<Makefile.PL>. Make sure each of those F<Makefile.PL>s has the correct -C<CFLAGS>, C<INC>, C<LIBS> etc. You will need to make sure the top-level -F<Makefile.PL> refers to each of these using C<DIR>. - -=item Bootstrapping - -Let's assume that we have a package C<Cool::Foo>, which includes -C<Cool::Foo> and C<Cool::Bar> modules each having a separate XS -file. First we use the following I<Makefile.PL>: - - use ExtUtils::MakeMaker; - - WriteMakefile( - NAME => 'Cool::Foo', - VERSION_FROM => 'Foo.pm', - OBJECT => q/$(O_FILES)/, - # ... other attrs ... - ); - -Notice the C<OBJECT> attribute. MakeMaker generates the following -variables in I<Makefile>: - - # Handy lists of source code files: - XS_FILES= Bar.xs \ - Foo.xs - C_FILES = Bar.c \ - Foo.c - O_FILES = Bar.o \ - Foo.o - -Therefore we can use the C<O_FILES> variable to tell MakeMaker to use -these objects into the shared library. - -That's pretty much it. Now write I<Foo.pm> and I<Foo.xs>, I<Bar.pm> -and I<Bar.xs>, where I<Foo.pm> bootstraps the shared library and -I<Bar.pm> simply loading I<Foo.pm>. - -The only issue left is to how to bootstrap I<Bar.xs>. This is done -from I<Foo.xs>: - - MODULE = Cool::Foo PACKAGE = Cool::Foo - - BOOT: - # boot the second XS file - boot_Cool__Bar(aTHX_ cv); - -If you have more than two files, this is the place where you should -boot extra XS files from. - -The following four files sum up all the details discussed so far. - - Foo.pm: - ------- - package Cool::Foo; - - require DynaLoader; - - our @ISA = qw(DynaLoader); - our $VERSION = '0.01'; - bootstrap Cool::Foo $VERSION; - - 1; - - Bar.pm: - ------- - package Cool::Bar; - - use Cool::Foo; # bootstraps Bar.xs - - 1; - - Foo.xs: - ------- - #include "EXTERN.h" - #include "perl.h" - #include "XSUB.h" - - MODULE = Cool::Foo PACKAGE = Cool::Foo - - BOOT: - # boot the second XS file - boot_Cool__Bar(aTHX_ cv); - - MODULE = Cool::Foo PACKAGE = Cool::Foo PREFIX = cool_foo_ - - void - cool_foo_perl_rules() - - CODE: - fprintf(stderr, "Cool::Foo says: Perl Rules\n"); - - Bar.xs: - ------- - #include "EXTERN.h" - #include "perl.h" - #include "XSUB.h" - - MODULE = Cool::Bar PACKAGE = Cool::Bar PREFIX = cool_bar_ - - void - cool_bar_perl_rules() - - CODE: - fprintf(stderr, "Cool::Bar says: Perl Rules\n"); - -And of course a very basic test: - - t/cool.t: - -------- - use Test; - BEGIN { plan tests => 1 }; - use Cool::Foo; - use Cool::Bar; - Cool::Foo::perl_rules(); - Cool::Bar::perl_rules(); - ok 1; - -This tip has been brought to you by Nick Ing-Simmons and Stas Bekman. - -An alternative way to achieve this can be seen in L<Gtk2::CodeGen> -and L<Glib::CodeGen>. - -=back - -=back - -=head1 DESIGN - -=head2 MakeMaker object hierarchy (simplified) - -What most people need to know (superclasses on top.) - - ExtUtils::MM_Any - | - ExtUtils::MM_Unix - | - ExtUtils::MM_{Current OS} - | - ExtUtils::MakeMaker - | - MY - -The object actually used is of the class MY which allows you to -override bits of MakeMaker inside your Makefile.PL by declaring -MY::foo() methods. - -=head2 MakeMaker object hierarchy (real) - -Here's how it really works: - - ExtUtils::MM_Any - | - ExtUtils::MM_Unix - | - ExtUtils::Liblist::Kid ExtUtils::MM_{Current OS} (if necessary) - | | - ExtUtils::Liblist ExtUtils::MakeMaker | - | | | - | | |----------------------- - ExtUtils::MM - | | - ExtUtils::MY MM (created by ExtUtils::MM) - | | - MY (created by ExtUtils::MY) | - . | - (mixin) | - . | - PACK### (created each call to ExtUtils::MakeMaker->new) - -NOTE: Yes, this is a mess. See -L<http://archive.develooper.com/makemaker@perl.org/msg00134.html> -for some history. - -NOTE: When ExtUtils::MM is loaded it chooses a superclass for MM from -amongst the ExtUtils::MM_* modules based on the current operating -system. - -NOTE: ExtUtils::MM_{Current OS} represents one of the ExtUtils::MM_* -modules except ExtUtils::MM_Any chosen based on your operating system. - -NOTE: The main object used by MakeMaker is a PACK### object, *not* -ExtUtils::MakeMaker. It is, effectively, a subclass of MY, -ExtUtils::Makemaker, ExtUtils::Liblist and ExtUtils::MM_{Current OS} - -NOTE: The methods in MY are simply copied into PACK### rather than -MY being a superclass of PACK###. I don't remember the rationale. - -NOTE: ExtUtils::Liblist should be removed from the inheritance hiearchy -and simply be called as functions. - -NOTE: Modules like File::Spec and Exporter have been omitted for clarity. - - -=head2 The MM_* hierarchy - - MM_Win95 MM_NW5 - \ / - MM_BeOS MM_Cygwin MM_OS2 MM_VMS MM_Win32 MM_DOS MM_UWIN - \ | | | / / / - ------------------------------------------------ - | | - MM_Unix | - | | - MM_Any - -NOTE: Each direct MM_Unix subclass is also an MM_Any subclass. This -is a temporary hack because MM_Unix overrides some MM_Any methods with -Unix specific code. It allows the non-Unix modules to see the -original MM_Any implementations. - -NOTE: Modules like File::Spec and Exporter have been omitted for clarity. - -=head1 PATCHING - -If you have a question you'd like to see added to the FAQ (whether or -not you have the answer) please either: - -=over 2 - -=item * make a pull request on the MakeMaker github repository - -=item * raise a issue on the MakeMaker github repository - -=item * file an RT ticket - -=item * email makemaker@perl.org - -=back - -=head1 AUTHOR - -The denizens of makemaker@perl.org. - -=head1 SEE ALSO - -L<ExtUtils::MakeMaker> - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/Locale.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/Locale.pm deleted file mode 100644 index 6d97df06..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/Locale.pm +++ /dev/null @@ -1,373 +0,0 @@ -package ExtUtils::MakeMaker::Locale; - -use strict; -our $VERSION = "7.34"; -$VERSION = eval $VERSION; - -use base 'Exporter'; -our @EXPORT_OK = qw( - decode_argv env - $ENCODING_LOCALE $ENCODING_LOCALE_FS - $ENCODING_CONSOLE_IN $ENCODING_CONSOLE_OUT -); - -use Encode (); -use Encode::Alias (); - -our $ENCODING_LOCALE; -our $ENCODING_LOCALE_FS; -our $ENCODING_CONSOLE_IN; -our $ENCODING_CONSOLE_OUT; - -sub DEBUG () { 0 } - -sub _init { - if ($^O eq "MSWin32") { - unless ($ENCODING_LOCALE) { - # Try to obtain what the Windows ANSI code page is - eval { - unless (defined &GetConsoleCP) { - require Win32; - # manually "import" it since Win32->import refuses - *GetConsoleCP = sub { &Win32::GetConsoleCP } if defined &Win32::GetConsoleCP; - } - unless (defined &GetConsoleCP) { - require Win32::API; - Win32::API->Import('kernel32', 'int GetConsoleCP()'); - } - if (defined &GetConsoleCP) { - my $cp = GetConsoleCP(); - $ENCODING_LOCALE = "cp$cp" if $cp; - } - }; - } - - unless ($ENCODING_CONSOLE_IN) { - # only test one since set together - unless (defined &GetInputCP) { - eval { - require Win32; - eval { Win32::GetConsoleCP() }; - # manually "import" it since Win32->import refuses - *GetInputCP = sub { &Win32::GetConsoleCP } if defined &Win32::GetConsoleCP; - *GetOutputCP = sub { &Win32::GetConsoleOutputCP } if defined &Win32::GetConsoleOutputCP; - }; - unless (defined &GetInputCP) { - eval { - # try Win32::Console module for codepage to use - require Win32::Console; - *GetInputCP = sub { &Win32::Console::InputCP } - if defined &Win32::Console::InputCP; - *GetOutputCP = sub { &Win32::Console::OutputCP } - if defined &Win32::Console::OutputCP; - }; - } - unless (defined &GetInputCP) { - # final fallback - *GetInputCP = *GetOutputCP = sub { - # another fallback that could work is: - # reg query HKLM\System\CurrentControlSet\Control\Nls\CodePage /v ACP - ((qx(chcp) || '') =~ /^Active code page: (\d+)/) - ? $1 : (); - }; - } - } - my $cp = GetInputCP(); - $ENCODING_CONSOLE_IN = "cp$cp" if $cp; - $cp = GetOutputCP(); - $ENCODING_CONSOLE_OUT = "cp$cp" if $cp; - } - } - - unless ($ENCODING_LOCALE) { - eval { - require I18N::Langinfo; - $ENCODING_LOCALE = I18N::Langinfo::langinfo(I18N::Langinfo::CODESET()); - - # Workaround of Encode < v2.25. The "646" encoding alias was - # introduced in Encode-2.25, but we don't want to require that version - # quite yet. Should avoid the CPAN testers failure reported from - # openbsd-4.7/perl-5.10.0 combo. - $ENCODING_LOCALE = "ascii" if $ENCODING_LOCALE eq "646"; - - # https://rt.cpan.org/Ticket/Display.html?id=66373 - $ENCODING_LOCALE = "hp-roman8" if $^O eq "hpux" && $ENCODING_LOCALE eq "roman8"; - }; - $ENCODING_LOCALE ||= $ENCODING_CONSOLE_IN; - } - - if ($^O eq "darwin") { - $ENCODING_LOCALE_FS ||= "UTF-8"; - } - - # final fallback - $ENCODING_LOCALE ||= $^O eq "MSWin32" ? "cp1252" : "UTF-8"; - $ENCODING_LOCALE_FS ||= $ENCODING_LOCALE; - $ENCODING_CONSOLE_IN ||= $ENCODING_LOCALE; - $ENCODING_CONSOLE_OUT ||= $ENCODING_CONSOLE_IN; - - unless (Encode::find_encoding($ENCODING_LOCALE)) { - my $foundit; - if (lc($ENCODING_LOCALE) eq "gb18030") { - eval { - require Encode::HanExtra; - }; - if ($@) { - die "Need Encode::HanExtra to be installed to support locale codeset ($ENCODING_LOCALE), stopped"; - } - $foundit++ if Encode::find_encoding($ENCODING_LOCALE); - } - die "The locale codeset ($ENCODING_LOCALE) isn't one that perl can decode, stopped" - unless $foundit; - - } - - # use Data::Dump; ddx $ENCODING_LOCALE, $ENCODING_LOCALE_FS, $ENCODING_CONSOLE_IN, $ENCODING_CONSOLE_OUT; -} - -_init(); -Encode::Alias::define_alias(sub { - no strict 'refs'; - no warnings 'once'; - return ${"ENCODING_" . uc(shift)}; -}, "locale"); - -sub _flush_aliases { - no strict 'refs'; - for my $a (sort keys %Encode::Alias::Alias) { - if (defined ${"ENCODING_" . uc($a)}) { - delete $Encode::Alias::Alias{$a}; - warn "Flushed alias cache for $a" if DEBUG; - } - } -} - -sub reinit { - $ENCODING_LOCALE = shift; - $ENCODING_LOCALE_FS = shift; - $ENCODING_CONSOLE_IN = $ENCODING_LOCALE; - $ENCODING_CONSOLE_OUT = $ENCODING_LOCALE; - _init(); - _flush_aliases(); -} - -sub decode_argv { - die if defined wantarray; - for (@ARGV) { - $_ = Encode::decode(locale => $_, @_); - } -} - -sub env { - my $k = Encode::encode(locale => shift); - my $old = $ENV{$k}; - if (@_) { - my $v = shift; - if (defined $v) { - $ENV{$k} = Encode::encode(locale => $v); - } - else { - delete $ENV{$k}; - } - } - return Encode::decode(locale => $old) if defined wantarray; -} - -1; - -__END__ - -=head1 NAME - -ExtUtils::MakeMaker::Locale - bundled Encode::Locale - -=head1 SYNOPSIS - - use Encode::Locale; - use Encode; - - $string = decode(locale => $bytes); - $bytes = encode(locale => $string); - - if (-t) { - binmode(STDIN, ":encoding(console_in)"); - binmode(STDOUT, ":encoding(console_out)"); - binmode(STDERR, ":encoding(console_out)"); - } - - # Processing file names passed in as arguments - my $uni_filename = decode(locale => $ARGV[0]); - open(my $fh, "<", encode(locale_fs => $uni_filename)) - || die "Can't open '$uni_filename': $!"; - binmode($fh, ":encoding(locale)"); - ... - -=head1 DESCRIPTION - -In many applications it's wise to let Perl use Unicode for the strings it -processes. Most of the interfaces Perl has to the outside world are still byte -based. Programs therefore need to decode byte strings that enter the program -from the outside and encode them again on the way out. - -The POSIX locale system is used to specify both the language conventions -requested by the user and the preferred character set to consume and -output. The C<Encode::Locale> module looks up the charset and encoding (called -a CODESET in the locale jargon) and arranges for the L<Encode> module to know -this encoding under the name "locale". It means bytes obtained from the -environment can be converted to Unicode strings by calling C<< -Encode::encode(locale => $bytes) >> and converted back again with C<< -Encode::decode(locale => $string) >>. - -Where file systems interfaces pass file names in and out of the program we also -need care. The trend is for operating systems to use a fixed file encoding -that don't actually depend on the locale; and this module determines the most -appropriate encoding for file names. The L<Encode> module will know this -encoding under the name "locale_fs". For traditional Unix systems this will -be an alias to the same encoding as "locale". - -For programs running in a terminal window (called a "Console" on some systems) -the "locale" encoding is usually a good choice for what to expect as input and -output. Some systems allows us to query the encoding set for the terminal and -C<Encode::Locale> will do that if available and make these encodings known -under the C<Encode> aliases "console_in" and "console_out". For systems where -we can't determine the terminal encoding these will be aliased as the same -encoding as "locale". The advice is to use "console_in" for input known to -come from the terminal and "console_out" for output to the terminal. - -In addition to arranging for various Encode aliases the following functions and -variables are provided: - -=over - -=item decode_argv( ) - -=item decode_argv( Encode::FB_CROAK ) - -This will decode the command line arguments to perl (the C<@ARGV> array) in-place. - -The function will by default replace characters that can't be decoded by -"\x{FFFD}", the Unicode replacement character. - -Any argument provided is passed as CHECK to underlying Encode::decode() call. -Pass the value C<Encode::FB_CROAK> to have the decoding croak if not all the -command line arguments can be decoded. See L<Encode/"Handling Malformed Data"> -for details on other options for CHECK. - -=item env( $uni_key ) - -=item env( $uni_key => $uni_value ) - -Interface to get/set environment variables. Returns the current value as a -Unicode string. The $uni_key and $uni_value arguments are expected to be -Unicode strings as well. Passing C<undef> as $uni_value deletes the -environment variable named $uni_key. - -The returned value will have the characters that can't be decoded replaced by -"\x{FFFD}", the Unicode replacement character. - -There is no interface to request alternative CHECK behavior as for -decode_argv(). If you need that you need to call encode/decode yourself. -For example: - - my $key = Encode::encode(locale => $uni_key, Encode::FB_CROAK); - my $uni_value = Encode::decode(locale => $ENV{$key}, Encode::FB_CROAK); - -=item reinit( ) - -=item reinit( $encoding ) - -Reinitialize the encodings from the locale. You want to call this function if -you changed anything in the environment that might influence the locale. - -This function will croak if the determined encoding isn't recognized by -the Encode module. - -With argument force $ENCODING_... variables to set to the given value. - -=item $ENCODING_LOCALE - -The encoding name determined to be suitable for the current locale. -L<Encode> know this encoding as "locale". - -=item $ENCODING_LOCALE_FS - -The encoding name determined to be suitable for file system interfaces -involving file names. -L<Encode> know this encoding as "locale_fs". - -=item $ENCODING_CONSOLE_IN - -=item $ENCODING_CONSOLE_OUT - -The encodings to be used for reading and writing output to the a console. -L<Encode> know these encodings as "console_in" and "console_out". - -=back - -=head1 NOTES - -This table summarizes the mapping of the encodings set up -by the C<Encode::Locale> module: - - Encode | | | - Alias | Windows | Mac OS X | POSIX - ------------+---------+--------------+------------ - locale | ANSI | nl_langinfo | nl_langinfo - locale_fs | ANSI | UTF-8 | nl_langinfo - console_in | OEM | nl_langinfo | nl_langinfo - console_out | OEM | nl_langinfo | nl_langinfo - -=head2 Windows - -Windows has basically 2 sets of APIs. A wide API (based on passing UTF-16 -strings) and a byte based API based a character set called ANSI. The -regular Perl interfaces to the OS currently only uses the ANSI APIs. -Unfortunately ANSI is not a single character set. - -The encoding that corresponds to ANSI varies between different editions of -Windows. For many western editions of Windows ANSI corresponds to CP-1252 -which is a character set similar to ISO-8859-1. Conceptually the ANSI -character set is a similar concept to the POSIX locale CODESET so this module -figures out what the ANSI code page is and make this available as -$ENCODING_LOCALE and the "locale" Encoding alias. - -Windows systems also operate with another byte based character set. -It's called the OEM code page. This is the encoding that the Console -takes as input and output. It's common for the OEM code page to -differ from the ANSI code page. - -=head2 Mac OS X - -On Mac OS X the file system encoding is always UTF-8 while the locale -can otherwise be set up as normal for POSIX systems. - -File names on Mac OS X will at the OS-level be converted to -NFD-form. A file created by passing a NFC-filename will come -in NFD-form from readdir(). See L<Unicode::Normalize> for details -of NFD/NFC. - -Actually, Apple does not follow the Unicode NFD standard since not all -character ranges are decomposed. The claim is that this avoids problems with -round trip conversions from old Mac text encodings. See L<Encode::UTF8Mac> for -details. - -=head2 POSIX (Linux and other Unixes) - -File systems might vary in what encoding is to be used for -filenames. Since this module has no way to actually figure out -what the is correct it goes with the best guess which is to -assume filenames are encoding according to the current locale. -Users are advised to always specify UTF-8 as the locale charset. - -=head1 SEE ALSO - -L<I18N::Langinfo>, L<Encode>, L<Term::Encoding> - -=head1 AUTHOR - -Copyright 2010 Gisle Aas <gisle@aas.no>. - -This library is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/Tutorial.pod b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/Tutorial.pod deleted file mode 100644 index b49e4448..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/Tutorial.pod +++ /dev/null @@ -1,212 +0,0 @@ -package ExtUtils::MakeMaker::Tutorial; - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - - -=head1 NAME - -ExtUtils::MakeMaker::Tutorial - Writing a module with MakeMaker - -=head1 SYNOPSIS - - use ExtUtils::MakeMaker; - - WriteMakefile( - NAME => 'Your::Module', - VERSION_FROM => 'lib/Your/Module.pm' - ); - -=head1 DESCRIPTION - -This is a short tutorial on writing a simple module with MakeMaker. -It's really not that hard. - - -=head2 The Mantra - -MakeMaker modules are installed using this simple mantra - - perl Makefile.PL - make - make test - make install - -There are lots more commands and options, but the above will do it. - - -=head2 The Layout - -The basic files in a module look something like this. - - Makefile.PL - MANIFEST - lib/Your/Module.pm - -That's all that's strictly necessary. There's additional files you might -want: - - lib/Your/Other/Module.pm - t/some_test.t - t/some_other_test.t - Changes - README - INSTALL - MANIFEST.SKIP - bin/some_program - -=over 4 - -=item Makefile.PL - -When you run Makefile.PL, it makes a Makefile. That's the whole point of -MakeMaker. The Makefile.PL is a simple program which loads -ExtUtils::MakeMaker and runs the WriteMakefile() function to generate a -Makefile. - -Here's an example of what you need for a simple module: - - use ExtUtils::MakeMaker; - - WriteMakefile( - NAME => 'Your::Module', - VERSION_FROM => 'lib/Your/Module.pm' - ); - -NAME is the top-level namespace of your module. VERSION_FROM is the file -which contains the $VERSION variable for the entire distribution. Typically -this is the same as your top-level module. - - -=item MANIFEST - -A simple listing of all the files in your distribution. - - Makefile.PL - MANIFEST - lib/Your/Module.pm - -File paths in a MANIFEST always use Unix conventions (ie. /) even if you're -not on Unix. - -You can write this by hand or generate it with 'make manifest'. - -See L<ExtUtils::Manifest> for more details. - - -=item lib/ - -This is the directory where the .pm and .pod files you wish to have -installed go. They are laid out according to namespace. So Foo::Bar -is F<lib/Foo/Bar.pm>. - - -=item t/ - -Tests for your modules go here. Each test filename ends with a .t. -So F<t/foo.t> 'make test' will run these tests. - -Typically, the F<t/> test directory is flat, with all test files located -directly within it. However, you can nest tests within subdirectories, for -example: - - t/foo/subdir_test.t - -To do this, you need to inform C<WriteMakeFile()> in your I<Makefile.PL> file -in the following fashion: - - test => {TESTS => 't/*.t t/*/*.t'} - -That will run all tests in F<t/>, as well as all tests in all subdirectories -that reside under F<t/>. You can nest as deeply as makes sense for your project. -Simply add another entry in the test location string. For example, to test: - - t/foo/bar/subdir_test.t - -You would use the following C<test> directive: - - test => {TESTS => 't/*.t t/*/*/*.t'} - -Note that in the above example, tests in the first subdirectory will not be -run. To run all tests in the intermediary subdirectory preceding the one -the test files are in, you need to explicitly note it: - - test => {TESTS => 't/*.t t/*/*.t t/*/*/*.t'} - -You don't need to specify wildcards if you only want to test within specific -subdirectories. The following example will only run tests in F<t/foo>: - - test => {TESTS => 't/foo/*.t'} - -Tests are run from the top level of your distribution. So inside a test -you would refer to ./lib to enter the lib directory, for example. - - -=item Changes - -A log of changes you've made to this module. The layout is free-form. -Here's an example: - - 1.01 Fri Apr 11 00:21:25 PDT 2003 - - thing() does some stuff now - - fixed the wiggy bug in withit() - - 1.00 Mon Apr 7 00:57:15 PDT 2003 - - "Rain of Frogs" now supported - - -=item README - -A short description of your module, what it does, why someone would use it -and its limitations. CPAN automatically pulls your README file out of -the archive and makes it available to CPAN users, it is the first thing -they will read to decide if your module is right for them. - - -=item INSTALL - -Instructions on how to install your module along with any dependencies. -Suggested information to include here: - - any extra modules required for use - the minimum version of Perl required - if only works on certain operating systems - - -=item MANIFEST.SKIP - -A file full of regular expressions to exclude when using 'make -manifest' to generate the MANIFEST. These regular expressions -are checked against each file path found in the distribution (so -you're matching against "t/foo.t" not "foo.t"). - -Here's a sample: - - ~$ # ignore emacs and vim backup files - .bak$ # ignore manual backups - \# # ignore CVS old revision files and emacs temp files - -Since # can be used for comments, # must be escaped. - -MakeMaker comes with a default MANIFEST.SKIP to avoid things like -version control directories and backup files. Specifying your own -will override this default. - - -=item bin/ - - -=back - -=head1 SEE ALSO - -L<perlmodstyle> gives stylistic help writing a module. - -L<perlnewmod> gives more information about how to write a module. - -There are modules to help you through the process of writing a module: -L<ExtUtils::ModuleMaker>, L<Module::Install>, L<PAR> - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/version.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/version.pm deleted file mode 100644 index c59be1ee..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/version.pm +++ /dev/null @@ -1,56 +0,0 @@ -#--------------------------------------------------------------------------# -# This is a modified copy of version.pm 0.9909, bundled exclusively for -# use by ExtUtils::Makemaker and its dependencies to bootstrap when -# version.pm is not available. It should not be used by ordinary modules. -# -# When loaded, it will try to load version.pm. If that fails, it will load -# ExtUtils::MakeMaker::version::vpp and alias various *version functions -# to functions in that module. It will also override UNIVERSAL::VERSION. -#--------------------------------------------------------------------------# - -package ExtUtils::MakeMaker::version; - -use 5.006001; -use strict; - -use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv); - -$VERSION = '7.34'; -$VERSION = eval $VERSION; -$CLASS = 'version'; - -{ - local $SIG{'__DIE__'}; - eval "use version"; - if ( $@ ) { # don't have any version.pm installed - eval "use ExtUtils::MakeMaker::version::vpp"; - die "$@" if ( $@ ); - local $^W; - delete $INC{'version.pm'}; - $INC{'version.pm'} = $INC{'ExtUtils/MakeMaker/version.pm'}; - push @version::ISA, "ExtUtils::MakeMaker::version::vpp"; - $version::VERSION = $VERSION; - *version::qv = \&ExtUtils::MakeMaker::version::vpp::qv; - *version::declare = \&ExtUtils::MakeMaker::version::vpp::declare; - *version::_VERSION = \&ExtUtils::MakeMaker::version::vpp::_VERSION; - *version::vcmp = \&ExtUtils::MakeMaker::version::vpp::vcmp; - *version::new = \&ExtUtils::MakeMaker::version::vpp::new; - if ($] >= 5.009000) { - no strict 'refs'; - *version::stringify = \&ExtUtils::MakeMaker::version::vpp::stringify; - *{'version::(""'} = \&ExtUtils::MakeMaker::version::vpp::stringify; - *{'version::(<=>'} = \&ExtUtils::MakeMaker::version::vpp::vcmp; - *version::parse = \&ExtUtils::MakeMaker::version::vpp::parse; - } - require ExtUtils::MakeMaker::version::regex; - *version::is_lax = \&ExtUtils::MakeMaker::version::regex::is_lax; - *version::is_strict = \&ExtUtils::MakeMaker::version::regex::is_strict; - *LAX = \$ExtUtils::MakeMaker::version::regex::LAX; - *STRICT = \$ExtUtils::MakeMaker::version::regex::STRICT; - } - elsif ( ! version->can('is_qv') ) { - *version::is_qv = sub { exists $_[0]->{qv} }; - } -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/version/regex.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/version/regex.pm deleted file mode 100644 index f0eb14ea..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/version/regex.pm +++ /dev/null @@ -1,124 +0,0 @@ -#--------------------------------------------------------------------------# -# This is a modified copy of version.pm 0.9909, bundled exclusively for -# use by ExtUtils::Makemaker and its dependencies to bootstrap when -# version.pm is not available. It should not be used by ordinary modules. -#--------------------------------------------------------------------------# - -package ExtUtils::MakeMaker::version::regex; - -use strict; - -use vars qw($VERSION $CLASS $STRICT $LAX); - -$VERSION = '7.34'; -$VERSION = eval $VERSION; - -#--------------------------------------------------------------------------# -# Version regexp components -#--------------------------------------------------------------------------# - -# Fraction part of a decimal version number. This is a common part of -# both strict and lax decimal versions - -my $FRACTION_PART = qr/\.[0-9]+/; - -# First part of either decimal or dotted-decimal strict version number. -# Unsigned integer with no leading zeroes (except for zero itself) to -# avoid confusion with octal. - -my $STRICT_INTEGER_PART = qr/0|[1-9][0-9]*/; - -# First part of either decimal or dotted-decimal lax version number. -# Unsigned integer, but allowing leading zeros. Always interpreted -# as decimal. However, some forms of the resulting syntax give odd -# results if used as ordinary Perl expressions, due to how perl treats -# octals. E.g. -# version->new("010" ) == 10 -# version->new( 010 ) == 8 -# version->new( 010.2) == 82 # "8" . "2" - -my $LAX_INTEGER_PART = qr/[0-9]+/; - -# Second and subsequent part of a strict dotted-decimal version number. -# Leading zeroes are permitted, and the number is always decimal. -# Limited to three digits to avoid overflow when converting to decimal -# form and also avoid problematic style with excessive leading zeroes. - -my $STRICT_DOTTED_DECIMAL_PART = qr/\.[0-9]{1,3}/; - -# Second and subsequent part of a lax dotted-decimal version number. -# Leading zeroes are permitted, and the number is always decimal. No -# limit on the numerical value or number of digits, so there is the -# possibility of overflow when converting to decimal form. - -my $LAX_DOTTED_DECIMAL_PART = qr/\.[0-9]+/; - -# Alpha suffix part of lax version number syntax. Acts like a -# dotted-decimal part. - -my $LAX_ALPHA_PART = qr/_[0-9]+/; - -#--------------------------------------------------------------------------# -# Strict version regexp definitions -#--------------------------------------------------------------------------# - -# Strict decimal version number. - -my $STRICT_DECIMAL_VERSION = - qr/ $STRICT_INTEGER_PART $FRACTION_PART? /x; - -# Strict dotted-decimal version number. Must have both leading "v" and -# at least three parts, to avoid confusion with decimal syntax. - -my $STRICT_DOTTED_DECIMAL_VERSION = - qr/ v $STRICT_INTEGER_PART $STRICT_DOTTED_DECIMAL_PART{2,} /x; - -# Complete strict version number syntax -- should generally be used -# anchored: qr/ \A $STRICT \z /x - -$STRICT = - qr/ $STRICT_DECIMAL_VERSION | $STRICT_DOTTED_DECIMAL_VERSION /x; - -#--------------------------------------------------------------------------# -# Lax version regexp definitions -#--------------------------------------------------------------------------# - -# Lax decimal version number. Just like the strict one except for -# allowing an alpha suffix or allowing a leading or trailing -# decimal-point - -my $LAX_DECIMAL_VERSION = - qr/ $LAX_INTEGER_PART (?: \. | $FRACTION_PART $LAX_ALPHA_PART? )? - | - $FRACTION_PART $LAX_ALPHA_PART? - /x; - -# Lax dotted-decimal version number. Distinguished by having either -# leading "v" or at least three non-alpha parts. Alpha part is only -# permitted if there are at least two non-alpha parts. Strangely -# enough, without the leading "v", Perl takes .1.2 to mean v0.1.2, -# so when there is no "v", the leading part is optional - -my $LAX_DOTTED_DECIMAL_VERSION = - qr/ - v $LAX_INTEGER_PART (?: $LAX_DOTTED_DECIMAL_PART+ $LAX_ALPHA_PART? )? - | - $LAX_INTEGER_PART? $LAX_DOTTED_DECIMAL_PART{2,} $LAX_ALPHA_PART? - /x; - -# Complete lax version number syntax -- should generally be used -# anchored: qr/ \A $LAX \z /x -# -# The string 'undef' is a special case to make for easier handling -# of return values from ExtUtils::MM->parse_version - -$LAX = - qr/ undef | $LAX_DECIMAL_VERSION | $LAX_DOTTED_DECIMAL_VERSION /x; - -#--------------------------------------------------------------------------# - -# Preloaded methods go here. -sub is_strict { defined $_[0] && $_[0] =~ qr/ \A $STRICT \z /x } -sub is_lax { defined $_[0] && $_[0] =~ qr/ \A $LAX \z /x } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/version/vpp.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/version/vpp.pm deleted file mode 100644 index 00b34ffb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/MakeMaker/version/vpp.pm +++ /dev/null @@ -1,1029 +0,0 @@ -#--------------------------------------------------------------------------# -# This is a modified copy of version.pm 0.9909, bundled exclusively for -# use by ExtUtils::Makemaker and its dependencies to bootstrap when -# version.pm is not available. It should not be used by ordinary modules. -#--------------------------------------------------------------------------# - -package ExtUtils::MakeMaker::charstar; -# a little helper class to emulate C char* semantics in Perl -# so that prescan_version can use the same code as in C - -use overload ( - '""' => \&thischar, - '0+' => \&thischar, - '++' => \&increment, - '--' => \&decrement, - '+' => \&plus, - '-' => \&minus, - '*' => \&multiply, - 'cmp' => \&cmp, - '<=>' => \&spaceship, - 'bool' => \&thischar, - '=' => \&clone, -); - -sub new { - my ($self, $string) = @_; - my $class = ref($self) || $self; - - my $obj = { - string => [split(//,$string)], - current => 0, - }; - return bless $obj, $class; -} - -sub thischar { - my ($self) = @_; - my $last = $#{$self->{string}}; - my $curr = $self->{current}; - if ($curr >= 0 && $curr <= $last) { - return $self->{string}->[$curr]; - } - else { - return ''; - } -} - -sub increment { - my ($self) = @_; - $self->{current}++; -} - -sub decrement { - my ($self) = @_; - $self->{current}--; -} - -sub plus { - my ($self, $offset) = @_; - my $rself = $self->clone; - $rself->{current} += $offset; - return $rself; -} - -sub minus { - my ($self, $offset) = @_; - my $rself = $self->clone; - $rself->{current} -= $offset; - return $rself; -} - -sub multiply { - my ($left, $right, $swapped) = @_; - my $char = $left->thischar(); - return $char * $right; -} - -sub spaceship { - my ($left, $right, $swapped) = @_; - unless (ref($right)) { # not an object already - $right = $left->new($right); - } - return $left->{current} <=> $right->{current}; -} - -sub cmp { - my ($left, $right, $swapped) = @_; - unless (ref($right)) { # not an object already - if (length($right) == 1) { # comparing single character only - return $left->thischar cmp $right; - } - $right = $left->new($right); - } - return $left->currstr cmp $right->currstr; -} - -sub bool { - my ($self) = @_; - my $char = $self->thischar; - return ($char ne ''); -} - -sub clone { - my ($left, $right, $swapped) = @_; - $right = { - string => [@{$left->{string}}], - current => $left->{current}, - }; - return bless $right, ref($left); -} - -sub currstr { - my ($self, $s) = @_; - my $curr = $self->{current}; - my $last = $#{$self->{string}}; - if (defined($s) && $s->{current} < $last) { - $last = $s->{current}; - } - - my $string = join('', @{$self->{string}}[$curr..$last]); - return $string; -} - -package ExtUtils::MakeMaker::version::vpp; - -use 5.006001; -use strict; - -use Config; -use vars qw($VERSION $CLASS @ISA $LAX $STRICT); -$VERSION = '7.34'; -$VERSION = eval $VERSION; -$CLASS = 'ExtUtils::MakeMaker::version::vpp'; - -require ExtUtils::MakeMaker::version::regex; -*ExtUtils::MakeMaker::version::vpp::is_strict = \&ExtUtils::MakeMaker::version::regex::is_strict; -*ExtUtils::MakeMaker::version::vpp::is_lax = \&ExtUtils::MakeMaker::version::regex::is_lax; -*LAX = \$ExtUtils::MakeMaker::version::regex::LAX; -*STRICT = \$ExtUtils::MakeMaker::version::regex::STRICT; - -use overload ( - '""' => \&stringify, - '0+' => \&numify, - 'cmp' => \&vcmp, - '<=>' => \&vcmp, - 'bool' => \&vbool, - '+' => \&vnoop, - '-' => \&vnoop, - '*' => \&vnoop, - '/' => \&vnoop, - '+=' => \&vnoop, - '-=' => \&vnoop, - '*=' => \&vnoop, - '/=' => \&vnoop, - 'abs' => \&vnoop, -); - -eval "use warnings"; -if ($@) { - eval ' - package - warnings; - sub enabled {return $^W;} - 1; - '; -} - -sub import { - no strict 'refs'; - my ($class) = shift; - - # Set up any derived class - unless ($class eq $CLASS) { - local $^W; - *{$class.'::declare'} = \&{$CLASS.'::declare'}; - *{$class.'::qv'} = \&{$CLASS.'::qv'}; - } - - my %args; - if (@_) { # any remaining terms are arguments - map { $args{$_} = 1 } @_ - } - else { # no parameters at all on use line - %args = - ( - qv => 1, - 'UNIVERSAL::VERSION' => 1, - ); - } - - my $callpkg = caller(); - - if (exists($args{declare})) { - *{$callpkg.'::declare'} = - sub {return $class->declare(shift) } - unless defined(&{$callpkg.'::declare'}); - } - - if (exists($args{qv})) { - *{$callpkg.'::qv'} = - sub {return $class->qv(shift) } - unless defined(&{$callpkg.'::qv'}); - } - - if (exists($args{'UNIVERSAL::VERSION'})) { - local $^W; - *UNIVERSAL::VERSION - = \&{$CLASS.'::_VERSION'}; - } - - if (exists($args{'VERSION'})) { - *{$callpkg.'::VERSION'} = \&{$CLASS.'::_VERSION'}; - } - - if (exists($args{'is_strict'})) { - *{$callpkg.'::is_strict'} = \&{$CLASS.'::is_strict'} - unless defined(&{$callpkg.'::is_strict'}); - } - - if (exists($args{'is_lax'})) { - *{$callpkg.'::is_lax'} = \&{$CLASS.'::is_lax'} - unless defined(&{$callpkg.'::is_lax'}); - } -} - -my $VERSION_MAX = 0x7FFFFFFF; - -# implement prescan_version as closely to the C version as possible -use constant TRUE => 1; -use constant FALSE => 0; - -sub isDIGIT { - my ($char) = shift->thischar(); - return ($char =~ /\d/); -} - -sub isALPHA { - my ($char) = shift->thischar(); - return ($char =~ /[a-zA-Z]/); -} - -sub isSPACE { - my ($char) = shift->thischar(); - return ($char =~ /\s/); -} - -sub BADVERSION { - my ($s, $errstr, $error) = @_; - if ($errstr) { - $$errstr = $error; - } - return $s; -} - -sub prescan_version { - my ($s, $strict, $errstr, $sqv, $ssaw_decimal, $swidth, $salpha) = @_; - my $qv = defined $sqv ? $$sqv : FALSE; - my $saw_decimal = defined $ssaw_decimal ? $$ssaw_decimal : 0; - my $width = defined $swidth ? $$swidth : 3; - my $alpha = defined $salpha ? $$salpha : FALSE; - - my $d = $s; - - if ($qv && isDIGIT($d)) { - goto dotted_decimal_version; - } - - if ($d eq 'v') { # explicit v-string - $d++; - if (isDIGIT($d)) { - $qv = TRUE; - } - else { # degenerate v-string - # requires v1.2.3 - return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)"); - } - -dotted_decimal_version: - if ($strict && $d eq '0' && isDIGIT($d+1)) { - # no leading zeros allowed - return BADVERSION($s,$errstr,"Invalid version format (no leading zeros)"); - } - - while (isDIGIT($d)) { # integer part - $d++; - } - - if ($d eq '.') - { - $saw_decimal++; - $d++; # decimal point - } - else - { - if ($strict) { - # require v1.2.3 - return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)"); - } - else { - goto version_prescan_finish; - } - } - - { - my $i = 0; - my $j = 0; - while (isDIGIT($d)) { # just keep reading - $i++; - while (isDIGIT($d)) { - $d++; $j++; - # maximum 3 digits between decimal - if ($strict && $j > 3) { - return BADVERSION($s,$errstr,"Invalid version format (maximum 3 digits between decimals)"); - } - } - if ($d eq '_') { - if ($strict) { - return BADVERSION($s,$errstr,"Invalid version format (no underscores)"); - } - if ( $alpha ) { - return BADVERSION($s,$errstr,"Invalid version format (multiple underscores)"); - } - $d++; - $alpha = TRUE; - } - elsif ($d eq '.') { - if ($alpha) { - return BADVERSION($s,$errstr,"Invalid version format (underscores before decimal)"); - } - $saw_decimal++; - $d++; - } - elsif (!isDIGIT($d)) { - last; - } - $j = 0; - } - - if ($strict && $i < 2) { - # requires v1.2.3 - return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions require at least three parts)"); - } - } - } # end if dotted-decimal - else - { # decimal versions - my $j = 0; - # special $strict case for leading '.' or '0' - if ($strict) { - if ($d eq '.') { - return BADVERSION($s,$errstr,"Invalid version format (0 before decimal required)"); - } - if ($d eq '0' && isDIGIT($d+1)) { - return BADVERSION($s,$errstr,"Invalid version format (no leading zeros)"); - } - } - - # and we never support negative version numbers - if ($d eq '-') { - return BADVERSION($s,$errstr,"Invalid version format (negative version number)"); - } - - # consume all of the integer part - while (isDIGIT($d)) { - $d++; - } - - # look for a fractional part - if ($d eq '.') { - # we found it, so consume it - $saw_decimal++; - $d++; - } - elsif (!$d || $d eq ';' || isSPACE($d) || $d eq '}') { - if ( $d == $s ) { - # found nothing - return BADVERSION($s,$errstr,"Invalid version format (version required)"); - } - # found just an integer - goto version_prescan_finish; - } - elsif ( $d == $s ) { - # didn't find either integer or period - return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)"); - } - elsif ($d eq '_') { - # underscore can't come after integer part - if ($strict) { - return BADVERSION($s,$errstr,"Invalid version format (no underscores)"); - } - elsif (isDIGIT($d+1)) { - return BADVERSION($s,$errstr,"Invalid version format (alpha without decimal)"); - } - else { - return BADVERSION($s,$errstr,"Invalid version format (misplaced underscore)"); - } - } - elsif ($d) { - # anything else after integer part is just invalid data - return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)"); - } - - # scan the fractional part after the decimal point - if ($d && !isDIGIT($d) && ($strict || ! ($d eq ';' || isSPACE($d) || $d eq '}') )) { - # $strict or lax-but-not-the-end - return BADVERSION($s,$errstr,"Invalid version format (fractional part required)"); - } - - while (isDIGIT($d)) { - $d++; $j++; - if ($d eq '.' && isDIGIT($d-1)) { - if ($alpha) { - return BADVERSION($s,$errstr,"Invalid version format (underscores before decimal)"); - } - if ($strict) { - return BADVERSION($s,$errstr,"Invalid version format (dotted-decimal versions must begin with 'v')"); - } - $d = $s; # start all over again - $qv = TRUE; - goto dotted_decimal_version; - } - if ($d eq '_') { - if ($strict) { - return BADVERSION($s,$errstr,"Invalid version format (no underscores)"); - } - if ( $alpha ) { - return BADVERSION($s,$errstr,"Invalid version format (multiple underscores)"); - } - if ( ! isDIGIT($d+1) ) { - return BADVERSION($s,$errstr,"Invalid version format (misplaced underscore)"); - } - $width = $j; - $d++; - $alpha = TRUE; - } - } - } - -version_prescan_finish: - while (isSPACE($d)) { - $d++; - } - - if ($d && !isDIGIT($d) && (! ($d eq ';' || $d eq '}') )) { - # trailing non-numeric data - return BADVERSION($s,$errstr,"Invalid version format (non-numeric data)"); - } - - if (defined $sqv) { - $$sqv = $qv; - } - if (defined $swidth) { - $$swidth = $width; - } - if (defined $ssaw_decimal) { - $$ssaw_decimal = $saw_decimal; - } - if (defined $salpha) { - $$salpha = $alpha; - } - return $d; -} - -sub scan_version { - my ($s, $rv, $qv) = @_; - my $start; - my $pos; - my $last; - my $errstr; - my $saw_decimal = 0; - my $width = 3; - my $alpha = FALSE; - my $vinf = FALSE; - my @av; - - $s = new ExtUtils::MakeMaker::charstar $s; - - while (isSPACE($s)) { # leading whitespace is OK - $s++; - } - - $last = prescan_version($s, FALSE, \$errstr, \$qv, \$saw_decimal, - \$width, \$alpha); - - if ($errstr) { - # 'undef' is a special case and not an error - if ( $s ne 'undef') { - require Carp; - Carp::croak($errstr); - } - } - - $start = $s; - if ($s eq 'v') { - $s++; - } - $pos = $s; - - if ( $qv ) { - $$rv->{qv} = $qv; - } - if ( $alpha ) { - $$rv->{alpha} = $alpha; - } - if ( !$qv && $width < 3 ) { - $$rv->{width} = $width; - } - - while (isDIGIT($pos)) { - $pos++; - } - if (!isALPHA($pos)) { - my $rev; - - for (;;) { - $rev = 0; - { - # this is atoi() that delimits on underscores - my $end = $pos; - my $mult = 1; - my $orev; - - # the following if() will only be true after the decimal - # point of a version originally created with a bare - # floating point number, i.e. not quoted in any way - # - if ( !$qv && $s > $start && $saw_decimal == 1 ) { - $mult *= 100; - while ( $s < $end ) { - $orev = $rev; - $rev += $s * $mult; - $mult /= 10; - if ( (abs($orev) > abs($rev)) - || (abs($rev) > $VERSION_MAX )) { - warn("Integer overflow in version %d", - $VERSION_MAX); - $s = $end - 1; - $rev = $VERSION_MAX; - $vinf = 1; - } - $s++; - if ( $s eq '_' ) { - $s++; - } - } - } - else { - while (--$end >= $s) { - $orev = $rev; - $rev += $end * $mult; - $mult *= 10; - if ( (abs($orev) > abs($rev)) - || (abs($rev) > $VERSION_MAX )) { - warn("Integer overflow in version"); - $end = $s - 1; - $rev = $VERSION_MAX; - $vinf = 1; - } - } - } - } - - # Append revision - push @av, $rev; - if ( $vinf ) { - $s = $last; - last; - } - elsif ( $pos eq '.' ) { - $s = ++$pos; - } - elsif ( $pos eq '_' && isDIGIT($pos+1) ) { - $s = ++$pos; - } - elsif ( $pos eq ',' && isDIGIT($pos+1) ) { - $s = ++$pos; - } - elsif ( isDIGIT($pos) ) { - $s = $pos; - } - else { - $s = $pos; - last; - } - if ( $qv ) { - while ( isDIGIT($pos) ) { - $pos++; - } - } - else { - my $digits = 0; - while ( ( isDIGIT($pos) || $pos eq '_' ) && $digits < 3 ) { - if ( $pos ne '_' ) { - $digits++; - } - $pos++; - } - } - } - } - if ( $qv ) { # quoted versions always get at least three terms - my $len = $#av; - # This for loop appears to trigger a compiler bug on OS X, as it - # loops infinitely. Yes, len is negative. No, it makes no sense. - # Compiler in question is: - # gcc version 3.3 20030304 (Apple Computer, Inc. build 1640) - # for ( len = 2 - len; len > 0; len-- ) - # av_push(MUTABLE_AV(sv), newSViv(0)); - # - $len = 2 - $len; - while ($len-- > 0) { - push @av, 0; - } - } - - # need to save off the current version string for later - if ( $vinf ) { - $$rv->{original} = "v.Inf"; - $$rv->{vinf} = 1; - } - elsif ( $s > $start ) { - $$rv->{original} = $start->currstr($s); - if ( $qv && $saw_decimal == 1 && $start ne 'v' ) { - # need to insert a v to be consistent - $$rv->{original} = 'v' . $$rv->{original}; - } - } - else { - $$rv->{original} = '0'; - push(@av, 0); - } - - # And finally, store the AV in the hash - $$rv->{version} = \@av; - - # fix RT#19517 - special case 'undef' as string - if ($s eq 'undef') { - $s += 5; - } - - return $s; -} - -sub new { - my $class = shift; - unless (defined $class or $#_ > 1) { - require Carp; - Carp::croak('Usage: version::new(class, version)'); - } - - my $self = bless ({}, ref ($class) || $class); - my $qv = FALSE; - - if ( $#_ == 1 ) { # must be CVS-style - $qv = TRUE; - } - my $value = pop; # always going to be the last element - - if ( ref($value) && eval('$value->isa("version")') ) { - # Can copy the elements directly - $self->{version} = [ @{$value->{version} } ]; - $self->{qv} = 1 if $value->{qv}; - $self->{alpha} = 1 if $value->{alpha}; - $self->{original} = ''.$value->{original}; - return $self; - } - - if ( not defined $value or $value =~ /^undef$/ ) { - # RT #19517 - special case for undef comparison - # or someone forgot to pass a value - push @{$self->{version}}, 0; - $self->{original} = "0"; - return ($self); - } - - - if (ref($value) =~ m/ARRAY|HASH/) { - require Carp; - Carp::croak("Invalid version format (non-numeric data)"); - } - - $value = _un_vstring($value); - - if ($Config{d_setlocale} && eval { require POSIX } ) { - require locale; - my $currlocale = POSIX::setlocale(&POSIX::LC_ALL); - - # if the current locale uses commas for decimal points, we - # just replace commas with decimal places, rather than changing - # locales - if ( POSIX::localeconv()->{decimal_point} eq ',' ) { - $value =~ tr/,/./; - } - } - - # exponential notation - if ( $value =~ /\d+.?\d*e[-+]?\d+/ ) { - $value = sprintf("%.9f",$value); - $value =~ s/(0+)$//; # trim trailing zeros - } - - my $s = scan_version($value, \$self, $qv); - - if ($s) { # must be something left over - warn("Version string '%s' contains invalid data; " - ."ignoring: '%s'", $value, $s); - } - - return ($self); -} - -*parse = \&new; - -sub numify { - my ($self) = @_; - unless (_verify($self)) { - require Carp; - Carp::croak("Invalid version object"); - } - my $width = $self->{width} || 3; - my $alpha = $self->{alpha} || ""; - my $len = $#{$self->{version}}; - my $digit = $self->{version}[0]; - my $string = sprintf("%d.", $digit ); - - for ( my $i = 1 ; $i < $len ; $i++ ) { - $digit = $self->{version}[$i]; - if ( $width < 3 ) { - my $denom = 10**(3-$width); - my $quot = int($digit/$denom); - my $rem = $digit - ($quot * $denom); - $string .= sprintf("%0".$width."d_%d", $quot, $rem); - } - else { - $string .= sprintf("%03d", $digit); - } - } - - if ( $len > 0 ) { - $digit = $self->{version}[$len]; - if ( $alpha && $width == 3 ) { - $string .= "_"; - } - $string .= sprintf("%0".$width."d", $digit); - } - else # $len = 0 - { - $string .= sprintf("000"); - } - - return $string; -} - -sub normal { - my ($self) = @_; - unless (_verify($self)) { - require Carp; - Carp::croak("Invalid version object"); - } - my $alpha = $self->{alpha} || ""; - my $len = $#{$self->{version}}; - my $digit = $self->{version}[0]; - my $string = sprintf("v%d", $digit ); - - for ( my $i = 1 ; $i < $len ; $i++ ) { - $digit = $self->{version}[$i]; - $string .= sprintf(".%d", $digit); - } - - if ( $len > 0 ) { - $digit = $self->{version}[$len]; - if ( $alpha ) { - $string .= sprintf("_%0d", $digit); - } - else { - $string .= sprintf(".%0d", $digit); - } - } - - if ( $len <= 2 ) { - for ( $len = 2 - $len; $len != 0; $len-- ) { - $string .= sprintf(".%0d", 0); - } - } - - return $string; -} - -sub stringify { - my ($self) = @_; - unless (_verify($self)) { - require Carp; - Carp::croak("Invalid version object"); - } - return exists $self->{original} - ? $self->{original} - : exists $self->{qv} - ? $self->normal - : $self->numify; -} - -sub vcmp { - require UNIVERSAL; - my ($left,$right,$swap) = @_; - my $class = ref($left); - unless ( UNIVERSAL::isa($right, $class) ) { - $right = $class->new($right); - } - - if ( $swap ) { - ($left, $right) = ($right, $left); - } - unless (_verify($left)) { - require Carp; - Carp::croak("Invalid version object"); - } - unless (_verify($right)) { - require Carp; - Carp::croak("Invalid version format"); - } - my $l = $#{$left->{version}}; - my $r = $#{$right->{version}}; - my $m = $l < $r ? $l : $r; - my $lalpha = $left->is_alpha; - my $ralpha = $right->is_alpha; - my $retval = 0; - my $i = 0; - while ( $i <= $m && $retval == 0 ) { - $retval = $left->{version}[$i] <=> $right->{version}[$i]; - $i++; - } - - # tiebreaker for alpha with identical terms - if ( $retval == 0 - && $l == $r - && $left->{version}[$m] == $right->{version}[$m] - && ( $lalpha || $ralpha ) ) { - - if ( $lalpha && !$ralpha ) { - $retval = -1; - } - elsif ( $ralpha && !$lalpha) { - $retval = +1; - } - } - - # possible match except for trailing 0's - if ( $retval == 0 && $l != $r ) { - if ( $l < $r ) { - while ( $i <= $r && $retval == 0 ) { - if ( $right->{version}[$i] != 0 ) { - $retval = -1; # not a match after all - } - $i++; - } - } - else { - while ( $i <= $l && $retval == 0 ) { - if ( $left->{version}[$i] != 0 ) { - $retval = +1; # not a match after all - } - $i++; - } - } - } - - return $retval; -} - -sub vbool { - my ($self) = @_; - return vcmp($self,$self->new("0"),1); -} - -sub vnoop { - require Carp; - Carp::croak("operation not supported with version object"); -} - -sub is_alpha { - my ($self) = @_; - return (exists $self->{alpha}); -} - -sub qv { - my $value = shift; - my $class = $CLASS; - if (@_) { - $class = ref($value) || $value; - $value = shift; - } - - $value = _un_vstring($value); - $value = 'v'.$value unless $value =~ /(^v|\d+\.\d+\.\d)/; - my $obj = $CLASS->new($value); - return bless $obj, $class; -} - -*declare = \&qv; - -sub is_qv { - my ($self) = @_; - return (exists $self->{qv}); -} - - -sub _verify { - my ($self) = @_; - if ( ref($self) - && eval { exists $self->{version} } - && ref($self->{version}) eq 'ARRAY' - ) { - return 1; - } - else { - return 0; - } -} - -sub _is_non_alphanumeric { - my $s = shift; - $s = new ExtUtils::MakeMaker::charstar $s; - while ($s) { - return 0 if isSPACE($s); # early out - return 1 unless (isALPHA($s) || isDIGIT($s) || $s =~ /[.-]/); - $s++; - } - return 0; -} - -sub _un_vstring { - my $value = shift; - # may be a v-string - if ( length($value) >= 3 && $value !~ /[._]/ - && _is_non_alphanumeric($value)) { - my $tvalue; - if ( $] ge 5.008_001 ) { - $tvalue = _find_magic_vstring($value); - $value = $tvalue if length $tvalue; - } - elsif ( $] ge 5.006_000 ) { - $tvalue = sprintf("v%vd",$value); - if ( $tvalue =~ /^v\d+(\.\d+){2,}$/ ) { - # must be a v-string - $value = $tvalue; - } - } - } - return $value; -} - -sub _find_magic_vstring { - my $value = shift; - my $tvalue = ''; - require B; - my $sv = B::svref_2object(\$value); - my $magic = ref($sv) eq 'B::PVMG' ? $sv->MAGIC : undef; - while ( $magic ) { - if ( $magic->TYPE eq 'V' ) { - $tvalue = $magic->PTR; - $tvalue =~ s/^v?(.+)$/v$1/; - last; - } - else { - $magic = $magic->MOREMAGIC; - } - } - return $tvalue; -} - -sub _VERSION { - my ($obj, $req) = @_; - my $class = ref($obj) || $obj; - - no strict 'refs'; - if ( exists $INC{"$class.pm"} and not %{"$class\::"} and $] >= 5.008) { - # file but no package - require Carp; - Carp::croak( "$class defines neither package nor VERSION" - ."--version check failed"); - } - - my $version = eval "\$$class\::VERSION"; - if ( defined $version ) { - local $^W if $] <= 5.008; - $version = ExtUtils::MakeMaker::version::vpp->new($version); - } - - if ( defined $req ) { - unless ( defined $version ) { - require Carp; - my $msg = $] < 5.006 - ? "$class version $req required--this is only version " - : "$class does not define \$$class\::VERSION" - ."--version check failed"; - - if ( $ENV{VERSION_DEBUG} ) { - Carp::confess($msg); - } - else { - Carp::croak($msg); - } - } - - $req = ExtUtils::MakeMaker::version::vpp->new($req); - - if ( $req > $version ) { - require Carp; - if ( $req->is_qv ) { - Carp::croak( - sprintf ("%s version %s required--". - "this is only version %s", $class, - $req->normal, $version->normal) - ); - } - else { - Carp::croak( - sprintf ("%s version %s required--". - "this is only version %s", $class, - $req->stringify, $version->stringify) - ); - } - } - } - - return defined $version ? $version->stringify : undef; -} - -1; #this line is important and will help the module return a true value diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Mkbootstrap.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Mkbootstrap.pm deleted file mode 100644 index 0d4c1a20..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Mkbootstrap.pm +++ /dev/null @@ -1,112 +0,0 @@ -package ExtUtils::Mkbootstrap; - -# There's just too much Dynaloader incest here to turn on strict vars. -use strict 'refs'; - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -require Exporter; -our @ISA = ('Exporter'); -our @EXPORT = ('&Mkbootstrap'); - -use Config; - -our $Verbose = 0; - - -sub Mkbootstrap { - my($baseext, @bsloadlibs)=@_; - @bsloadlibs = grep($_, @bsloadlibs); # strip empty libs - - print " bsloadlibs=@bsloadlibs\n" if $Verbose; - - # We need DynaLoader here because we and/or the *_BS file may - # call dl_findfile(). We don't say `use' here because when - # first building perl extensions the DynaLoader will not have - # been built when MakeMaker gets first used. - require DynaLoader; - - rename "$baseext.bs", "$baseext.bso" - if -s "$baseext.bs"; - - if (-f "${baseext}_BS"){ - $_ = "${baseext}_BS"; - package DynaLoader; # execute code as if in DynaLoader - local($osname, $dlsrc) = (); # avoid warnings - ($osname, $dlsrc) = @Config::Config{qw(osname dlsrc)}; - $bscode = ""; - unshift @INC, "."; - require $_; - shift @INC; - } - - if ($Config{'dlsrc'} =~ /^dl_dld/){ - package DynaLoader; - push(@dl_resolve_using, dl_findfile('-lc')); - } - - my(@all) = (@bsloadlibs, @DynaLoader::dl_resolve_using); - my($method) = ''; - if (@all || (defined $DynaLoader::bscode && length $DynaLoader::bscode)){ - open my $bs, ">", "$baseext.bs" - or die "Unable to open $baseext.bs: $!"; - print "Writing $baseext.bs\n"; - print " containing: @all" if $Verbose; - print $bs "# $baseext DynaLoader bootstrap file for $^O architecture.\n"; - print $bs "# Do not edit this file, changes will be lost.\n"; - print $bs "# This file was automatically generated by the\n"; - print $bs "# Mkbootstrap routine in ExtUtils::Mkbootstrap (v$VERSION).\n"; - if (@all) { - print $bs "\@DynaLoader::dl_resolve_using = "; - # If @all contains names in the form -lxxx or -Lxxx then it's asking for - # runtime library location so we automatically add a call to dl_findfile() - if (" @all" =~ m/ -[lLR]/){ - print $bs " dl_findfile(qw(\n @all\n ));\n"; - } else { - print $bs " qw(@all);\n"; - } - } - # write extra code if *_BS says so - print $bs $DynaLoader::bscode if $DynaLoader::bscode; - print $bs "\n1;\n"; - close $bs; - } -} - -1; - -__END__ - -=head1 NAME - -ExtUtils::Mkbootstrap - make a bootstrap file for use by DynaLoader - -=head1 SYNOPSIS - -C<Mkbootstrap> - -=head1 DESCRIPTION - -Mkbootstrap typically gets called from an extension Makefile. - -There is no C<*.bs> file supplied with the extension. Instead, there may -be a C<*_BS> file which has code for the special cases, like posix for -berkeley db on the NeXT. - -This file will get parsed, and produce a maybe empty -C<@DynaLoader::dl_resolve_using> array for the current architecture. -That will be extended by $BSLOADLIBS, which was computed by -ExtUtils::Liblist::ext(). If this array still is empty, we do nothing, -else we write a .bs file with an C<@DynaLoader::dl_resolve_using> -array. - -The C<*_BS> file can put some code into the generated C<*.bs> file by -placing it in C<$bscode>. This is a handy 'escape' mechanism that may -prove useful in complex situations. - -If @DynaLoader::dl_resolve_using contains C<-L*> or C<-l*> entries then -Mkbootstrap will automatically add a dl_findfile() call to the -generated C<*.bs> file. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Mksymlists.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Mksymlists.pm deleted file mode 100644 index 0ec5f9db..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Mksymlists.pm +++ /dev/null @@ -1,318 +0,0 @@ -package ExtUtils::Mksymlists; - -use 5.006; -use strict qw[ subs refs ]; -# no strict 'vars'; # until filehandles are exempted - -use Carp; -use Exporter; -use Config; - -our @ISA = qw(Exporter); -our @EXPORT = qw(&Mksymlists); -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -sub Mksymlists { - my(%spec) = @_; - my($osname) = $^O; - - croak("Insufficient information specified to Mksymlists") - unless ( $spec{NAME} or - ($spec{FILE} and ($spec{DL_FUNCS} or $spec{FUNCLIST})) ); - - $spec{DL_VARS} = [] unless $spec{DL_VARS}; - ($spec{FILE} = $spec{NAME}) =~ s/.*::// unless $spec{FILE}; - $spec{FUNCLIST} = [] unless $spec{FUNCLIST}; - $spec{DL_FUNCS} = { $spec{NAME} => [] } - unless ( ($spec{DL_FUNCS} and keys %{$spec{DL_FUNCS}}) or - @{$spec{FUNCLIST}}); - if (defined $spec{DL_FUNCS}) { - foreach my $package (sort keys %{$spec{DL_FUNCS}}) { - my($packprefix,$bootseen); - ($packprefix = $package) =~ s/\W/_/g; - foreach my $sym (@{$spec{DL_FUNCS}->{$package}}) { - if ($sym =~ /^boot_/) { - push(@{$spec{FUNCLIST}},$sym); - $bootseen++; - } - else { - push(@{$spec{FUNCLIST}},"XS_${packprefix}_$sym"); - } - } - push(@{$spec{FUNCLIST}},"boot_$packprefix") unless $bootseen; - } - } - -# We'll need this if we ever add any OS which uses mod2fname -# not as pseudo-builtin. -# require DynaLoader; - if (defined &DynaLoader::mod2fname and not $spec{DLBASE}) { - $spec{DLBASE} = DynaLoader::mod2fname([ split(/::/,$spec{NAME}) ]); - } - - if ($osname eq 'aix') { _write_aix(\%spec); } - elsif ($osname eq 'MacOS'){ _write_aix(\%spec) } - elsif ($osname eq 'VMS') { _write_vms(\%spec) } - elsif ($osname eq 'os2') { _write_os2(\%spec) } - elsif ($osname eq 'MSWin32') { _write_win32(\%spec) } - else { - croak("Don't know how to create linker option file for $osname\n"); - } -} - - -sub _write_aix { - my($data) = @_; - - rename "$data->{FILE}.exp", "$data->{FILE}.exp_old"; - - open( my $exp, ">", "$data->{FILE}.exp") - or croak("Can't create $data->{FILE}.exp: $!\n"); - print $exp join("\n",@{$data->{DL_VARS}}, "\n") if @{$data->{DL_VARS}}; - print $exp join("\n",@{$data->{FUNCLIST}}, "\n") if @{$data->{FUNCLIST}}; - close $exp; -} - - -sub _write_os2 { - my($data) = @_; - require Config; - my $threaded = ($Config::Config{archname} =~ /-thread/ ? " threaded" : ""); - - if (not $data->{DLBASE}) { - ($data->{DLBASE} = $data->{NAME}) =~ s/.*:://; - $data->{DLBASE} = substr($data->{DLBASE},0,7) . '_'; - } - my $distname = $data->{DISTNAME} || $data->{NAME}; - $distname = "Distribution $distname"; - my $patchlevel = " pl$Config{perl_patchlevel}" || ''; - my $comment = sprintf "Perl (v%s%s%s) module %s", - $Config::Config{version}, $threaded, $patchlevel, $data->{NAME}; - chomp $comment; - if ($data->{INSTALLDIRS} and $data->{INSTALLDIRS} eq 'perl') { - $distname = 'perl5-porters@perl.org'; - $comment = "Core $comment"; - } - $comment = "$comment (Perl-config: $Config{config_args})"; - $comment = substr($comment, 0, 200) . "...)" if length $comment > 203; - rename "$data->{FILE}.def", "$data->{FILE}_def.old"; - - open(my $def, ">", "$data->{FILE}.def") - or croak("Can't create $data->{FILE}.def: $!\n"); - print $def "LIBRARY '$data->{DLBASE}' INITINSTANCE TERMINSTANCE\n"; - print $def "DESCRIPTION '\@#$distname:$data->{VERSION}#\@ $comment'\n"; - print $def "CODE LOADONCALL\n"; - print $def "DATA LOADONCALL NONSHARED MULTIPLE\n"; - print $def "EXPORTS\n "; - print $def join("\n ",@{$data->{DL_VARS}}, "\n") if @{$data->{DL_VARS}}; - print $def join("\n ",@{$data->{FUNCLIST}}, "\n") if @{$data->{FUNCLIST}}; - _print_imports($def, $data); - close $def; -} - -sub _print_imports { - my ($def, $data)= @_; - my $imports= $data->{IMPORTS} - or return; - if ( keys %$imports ) { - print $def "IMPORTS\n"; - foreach my $name (sort keys %$imports) { - print $def " $name=$imports->{$name}\n"; - } - } -} - -sub _write_win32 { - my($data) = @_; - - require Config; - if (not $data->{DLBASE}) { - ($data->{DLBASE} = $data->{NAME}) =~ s/.*:://; - $data->{DLBASE} = substr($data->{DLBASE},0,7) . '_'; - } - rename "$data->{FILE}.def", "$data->{FILE}_def.old"; - - open( my $def, ">", "$data->{FILE}.def" ) - or croak("Can't create $data->{FILE}.def: $!\n"); - # put library name in quotes (it could be a keyword, like 'Alias') - if ($Config::Config{'cc'} !~ /\bgcc/i) { - print $def "LIBRARY \"$data->{DLBASE}\"\n"; - } - print $def "EXPORTS\n "; - my @syms; - # Export public symbols both with and without underscores to - # ensure compatibility between DLLs from Borland C and Visual C - # NOTE: DynaLoader itself only uses the names without underscores, - # so this is only to cover the case when the extension DLL may be - # linked to directly from C. GSAR 97-07-10 - - #bcc dropped in 5.16, so dont create useless extra symbols for export table - unless($] >= 5.016) { - if ($Config::Config{'cc'} =~ /^bcc/i) { - push @syms, "_$_", "$_ = _$_" - for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}}); - } - else { - push @syms, "$_", "_$_ = $_" - for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}}); - } - } else { - push @syms, "$_" - for (@{$data->{DL_VARS}}, @{$data->{FUNCLIST}}); - } - print $def join("\n ",@syms, "\n") if @syms; - _print_imports($def, $data); - close $def; -} - - -sub _write_vms { - my($data) = @_; - - require Config; # a reminder for once we do $^O - require ExtUtils::XSSymSet; - - my($isvax) = $Config::Config{'archname'} =~ /VAX/i; - my($set) = new ExtUtils::XSSymSet; - - rename "$data->{FILE}.opt", "$data->{FILE}.opt_old"; - - open(my $opt,">", "$data->{FILE}.opt") - or croak("Can't create $data->{FILE}.opt: $!\n"); - - # Options file declaring universal symbols - # Used when linking shareable image for dynamic extension, - # or when linking PerlShr into which we've added this package - # as a static extension - # We don't do anything to preserve order, so we won't relax - # the GSMATCH criteria for a dynamic extension - - print $opt "case_sensitive=yes\n" - if $Config::Config{d_vms_case_sensitive_symbols}; - - foreach my $sym (@{$data->{FUNCLIST}}) { - my $safe = $set->addsym($sym); - if ($isvax) { print $opt "UNIVERSAL=$safe\n" } - else { print $opt "SYMBOL_VECTOR=($safe=PROCEDURE)\n"; } - } - - foreach my $sym (@{$data->{DL_VARS}}) { - my $safe = $set->addsym($sym); - print $opt "PSECT_ATTR=${sym},PIC,OVR,RD,NOEXE,WRT,NOSHR\n"; - if ($isvax) { print $opt "UNIVERSAL=$safe\n" } - else { print $opt "SYMBOL_VECTOR=($safe=DATA)\n"; } - } - - close $opt; -} - -1; - -__END__ - -=head1 NAME - -ExtUtils::Mksymlists - write linker options files for dynamic extension - -=head1 SYNOPSIS - - use ExtUtils::Mksymlists; - Mksymlists( NAME => $name , - DL_VARS => [ $var1, $var2, $var3 ], - DL_FUNCS => { $pkg1 => [ $func1, $func2 ], - $pkg2 => [ $func3 ] ); - -=head1 DESCRIPTION - -C<ExtUtils::Mksymlists> produces files used by the linker under some OSs -during the creation of shared libraries for dynamic extensions. It is -normally called from a MakeMaker-generated Makefile when the extension -is built. The linker option file is generated by calling the function -C<Mksymlists>, which is exported by default from C<ExtUtils::Mksymlists>. -It takes one argument, a list of key-value pairs, in which the following -keys are recognized: - -=over 4 - -=item DLBASE - -This item specifies the name by which the linker knows the -extension, which may be different from the name of the -extension itself (for instance, some linkers add an '_' to the -name of the extension). If it is not specified, it is derived -from the NAME attribute. It is presently used only by OS2 and Win32. - -=item DL_FUNCS - -This is identical to the DL_FUNCS attribute available via MakeMaker, -from which it is usually taken. Its value is a reference to an -associative array, in which each key is the name of a package, and -each value is an a reference to an array of function names which -should be exported by the extension. For instance, one might say -C<DL_FUNCS =E<gt> { Homer::Iliad =E<gt> [ qw(trojans greeks) ], -Homer::Odyssey =E<gt> [ qw(travellers family suitors) ] }>. The -function names should be identical to those in the XSUB code; -C<Mksymlists> will alter the names written to the linker option -file to match the changes made by F<xsubpp>. In addition, if -none of the functions in a list begin with the string B<boot_>, -C<Mksymlists> will add a bootstrap function for that package, -just as xsubpp does. (If a B<boot_E<lt>pkgE<gt>> function is -present in the list, it is passed through unchanged.) If -DL_FUNCS is not specified, it defaults to the bootstrap -function for the extension specified in NAME. - -=item DL_VARS - -This is identical to the DL_VARS attribute available via MakeMaker, -and, like DL_FUNCS, it is usually specified via MakeMaker. Its -value is a reference to an array of variable names which should -be exported by the extension. - -=item FILE - -This key can be used to specify the name of the linker option file -(minus the OS-specific extension), if for some reason you do not -want to use the default value, which is the last word of the NAME -attribute (I<e.g.> for C<Tk::Canvas>, FILE defaults to C<Canvas>). - -=item FUNCLIST - -This provides an alternate means to specify function names to be -exported from the extension. Its value is a reference to an -array of function names to be exported by the extension. These -names are passed through unaltered to the linker options file. -Specifying a value for the FUNCLIST attribute suppresses automatic -generation of the bootstrap function for the package. To still create -the bootstrap name you have to specify the package name in the -DL_FUNCS hash: - - Mksymlists( NAME => $name , - FUNCLIST => [ $func1, $func2 ], - DL_FUNCS => { $pkg => [] } ); - - -=item IMPORTS - -This attribute is used to specify names to be imported into the -extension. It is currently only used by OS/2 and Win32. - -=item NAME - -This gives the name of the extension (I<e.g.> C<Tk::Canvas>) for which -the linker option file will be produced. - -=back - -When calling C<Mksymlists>, one should always specify the NAME -attribute. In most cases, this is all that's necessary. In -the case of unusual extensions, however, the other attributes -can be used to provide additional information to the linker. - -=head1 AUTHOR - -Charles Bailey I<E<lt>bailey@newman.upenn.eduE<gt>> - -=head1 REVISION - -Last revised 14-Feb-1996, for Perl 5.002. diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Packlist.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Packlist.pm deleted file mode 100644 index 9cc4e989..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Packlist.pm +++ /dev/null @@ -1,353 +0,0 @@ -package ExtUtils::Packlist; - -use 5.00503; -use strict; -use Carp qw(); -use Config; -use vars qw($VERSION $Relocations); -$VERSION = '2.06'; -$VERSION = eval $VERSION; - -# Used for generating filehandle globs. IO::File might not be available! -my $fhname = "FH1"; - -=begin _undocumented - -=over - -=item mkfh() - -Make a filehandle. Same kind of idea as Symbol::gensym(). - -=cut - -sub mkfh() -{ -no strict; -local $^W; -my $fh = \*{$fhname++}; -use strict; -return($fh); -} - -=item __find_relocations - -Works out what absolute paths in the configuration have been located at run -time relative to $^X, and generates a regexp that matches them - -=back - -=end _undocumented - -=cut - -sub __find_relocations -{ - my %paths; - while (my ($raw_key, $raw_val) = each %Config) { - my $exp_key = $raw_key . "exp"; - next unless exists $Config{$exp_key}; - next unless $raw_val =~ m!\.\.\./!; - $paths{$Config{$exp_key}}++; - } - # Longest prefixes go first in the alternatives - my $alternations = join "|", map {quotemeta $_} - sort {length $b <=> length $a} keys %paths; - qr/^($alternations)/o; -} - -sub new($$) -{ -my ($class, $packfile) = @_; -$class = ref($class) || $class; -my %self; -tie(%self, $class, $packfile); -return(bless(\%self, $class)); -} - -sub TIEHASH -{ -my ($class, $packfile) = @_; -my $self = { packfile => $packfile }; -bless($self, $class); -$self->read($packfile) if (defined($packfile) && -f $packfile); -return($self); -} - -sub STORE -{ -$_[0]->{data}->{$_[1]} = $_[2]; -} - -sub FETCH -{ -return($_[0]->{data}->{$_[1]}); -} - -sub FIRSTKEY -{ -my $reset = scalar(keys(%{$_[0]->{data}})); -return(each(%{$_[0]->{data}})); -} - -sub NEXTKEY -{ -return(each(%{$_[0]->{data}})); -} - -sub EXISTS -{ -return(exists($_[0]->{data}->{$_[1]})); -} - -sub DELETE -{ -return(delete($_[0]->{data}->{$_[1]})); -} - -sub CLEAR -{ -%{$_[0]->{data}} = (); -} - -sub DESTROY -{ -} - -sub read($;$) -{ -my ($self, $packfile) = @_; -$self = tied(%$self) || $self; - -if (defined($packfile)) { $self->{packfile} = $packfile; } -else { $packfile = $self->{packfile}; } -Carp::croak("No packlist filename specified") if (! defined($packfile)); -my $fh = mkfh(); -open($fh, "<$packfile") || Carp::croak("Can't open file $packfile: $!"); -$self->{data} = {}; -my ($line); -while (defined($line = <$fh>)) - { - chomp $line; - my ($key, $data) = $line; - if ($key =~ /^(.*?)( \w+=.*)$/) - { - $key = $1; - $data = { map { split('=', $_) } split(' ', $2)}; - - if ($Config{userelocatableinc} && $data->{relocate_as}) - { - require File::Spec; - require Cwd; - my ($vol, $dir) = File::Spec->splitpath($packfile); - my $newpath = File::Spec->catpath($vol, $dir, $data->{relocate_as}); - $key = Cwd::realpath($newpath); - } - } - $key =~ s!/\./!/!g; # Some .packlists have spurious '/./' bits in the paths - $self->{data}->{$key} = $data; - } -close($fh); -} - -sub write($;$) -{ -my ($self, $packfile) = @_; -$self = tied(%$self) || $self; -if (defined($packfile)) { $self->{packfile} = $packfile; } -else { $packfile = $self->{packfile}; } -Carp::croak("No packlist filename specified") if (! defined($packfile)); -my $fh = mkfh(); -open($fh, ">$packfile") || Carp::croak("Can't open file $packfile: $!"); -foreach my $key (sort(keys(%{$self->{data}}))) - { - my $data = $self->{data}->{$key}; - if ($Config{userelocatableinc}) { - $Relocations ||= __find_relocations(); - if ($packfile =~ $Relocations) { - # We are writing into a subdirectory of a run-time relocated - # path. Figure out if the this file is also within a subdir. - my $prefix = $1; - if (File::Spec->no_upwards(File::Spec->abs2rel($key, $prefix))) - { - # The relocated path is within the found prefix - my $packfile_prefix; - (undef, $packfile_prefix) - = File::Spec->splitpath($packfile); - - my $relocate_as - = File::Spec->abs2rel($key, $packfile_prefix); - - if (!ref $data) { - $data = {}; - } - $data->{relocate_as} = $relocate_as; - } - } - } - print $fh ("$key"); - if (ref($data)) - { - foreach my $k (sort(keys(%$data))) - { - print $fh (" $k=$data->{$k}"); - } - } - print $fh ("\n"); - } -close($fh); -} - -sub validate($;$) -{ -my ($self, $remove) = @_; -$self = tied(%$self) || $self; -my @missing; -foreach my $key (sort(keys(%{$self->{data}}))) - { - if (! -e $key) - { - push(@missing, $key); - delete($self->{data}{$key}) if ($remove); - } - } -return(@missing); -} - -sub packlist_file($) -{ -my ($self) = @_; -$self = tied(%$self) || $self; -return($self->{packfile}); -} - -1; - -__END__ - -=head1 NAME - -ExtUtils::Packlist - manage .packlist files - -=head1 SYNOPSIS - - use ExtUtils::Packlist; - my ($pl) = ExtUtils::Packlist->new('.packlist'); - $pl->read('/an/old/.packlist'); - my @missing_files = $pl->validate(); - $pl->write('/a/new/.packlist'); - - $pl->{'/some/file/name'}++; - or - $pl->{'/some/other/file/name'} = { type => 'file', - from => '/some/file' }; - -=head1 DESCRIPTION - -ExtUtils::Packlist provides a standard way to manage .packlist files. -Functions are provided to read and write .packlist files. The original -.packlist format is a simple list of absolute pathnames, one per line. In -addition, this package supports an extended format, where as well as a filename -each line may contain a list of attributes in the form of a space separated -list of key=value pairs. This is used by the installperl script to -differentiate between files and links, for example. - -=head1 USAGE - -The hash reference returned by the new() function can be used to examine and -modify the contents of the .packlist. Items may be added/deleted from the -.packlist by modifying the hash. If the value associated with a hash key is a -scalar, the entry written to the .packlist by any subsequent write() will be a -simple filename. If the value is a hash, the entry written will be the -filename followed by the key=value pairs from the hash. Reading back the -.packlist will recreate the original entries. - -=head1 FUNCTIONS - -=over 4 - -=item new() - -This takes an optional parameter, the name of a .packlist. If the file exists, -it will be opened and the contents of the file will be read. The new() method -returns a reference to a hash. This hash holds an entry for each line in the -.packlist. In the case of old-style .packlists, the value associated with each -key is undef. In the case of new-style .packlists, the value associated with -each key is a hash containing the key=value pairs following the filename in the -.packlist. - -=item read() - -This takes an optional parameter, the name of the .packlist to be read. If -no file is specified, the .packlist specified to new() will be read. If the -.packlist does not exist, Carp::croak will be called. - -=item write() - -This takes an optional parameter, the name of the .packlist to be written. If -no file is specified, the .packlist specified to new() will be overwritten. - -=item validate() - -This checks that every file listed in the .packlist actually exists. If an -argument which evaluates to true is given, any missing files will be removed -from the internal hash. The return value is a list of the missing files, which -will be empty if they all exist. - -=item packlist_file() - -This returns the name of the associated .packlist file - -=back - -=head1 EXAMPLE - -Here's C<modrm>, a little utility to cleanly remove an installed module. - - #!/usr/local/bin/perl -w - - use strict; - use IO::Dir; - use ExtUtils::Packlist; - use ExtUtils::Installed; - - sub emptydir($) { - my ($dir) = @_; - my $dh = IO::Dir->new($dir) || return(0); - my @count = $dh->read(); - $dh->close(); - return(@count == 2 ? 1 : 0); - } - - # Find all the installed packages - print("Finding all installed modules...\n"); - my $installed = ExtUtils::Installed->new(); - - foreach my $module (grep(!/^Perl$/, $installed->modules())) { - my $version = $installed->version($module) || "???"; - print("Found module $module Version $version\n"); - print("Do you want to delete $module? [n] "); - my $r = <STDIN>; chomp($r); - if ($r && $r =~ /^y/i) { - # Remove all the files - foreach my $file (sort($installed->files($module))) { - print("rm $file\n"); - unlink($file); - } - my $pf = $installed->packlist($module)->packlist_file(); - print("rm $pf\n"); - unlink($pf); - foreach my $dir (sort($installed->directory_tree($module))) { - if (emptydir($dir)) { - print("rmdir $dir\n"); - rmdir($dir); - } - } - } - } - -=head1 AUTHOR - -Alan Burlison <Alan.Burlison@uk.sun.com> - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS.pm deleted file mode 100644 index d629cf61..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS.pm +++ /dev/null @@ -1,2149 +0,0 @@ -package ExtUtils::ParseXS; -use strict; - -use 5.006001; -use Cwd; -use Config; -use Exporter 'import'; -use File::Basename; -use File::Spec; -use Symbol; - -our $VERSION; -BEGIN { - $VERSION = '3.35'; -} -use ExtUtils::ParseXS::Constants $VERSION; -use ExtUtils::ParseXS::CountLines $VERSION; -use ExtUtils::ParseXS::Utilities $VERSION; -use ExtUtils::ParseXS::Eval $VERSION; -$VERSION = eval $VERSION if $VERSION =~ /_/; - -use ExtUtils::ParseXS::Utilities qw( - standard_typemap_locations - trim_whitespace - C_string - valid_proto_string - process_typemaps - map_type - standard_XS_defs - assign_func_args - analyze_preprocessor_statements - set_cond - Warn - current_line_number - blurt - death - check_conditional_preprocessor_statements - escape_file_for_line_directive - report_typemap_failure -); - -our @EXPORT_OK = qw( - process_file - report_error_count -); - -############################## -# A number of "constants" - -our ($C_group_rex, $C_arg); -# Group in C (no support for comments or literals) -$C_group_rex = qr/ [({\[] - (?: (?> [^()\[\]{}]+ ) | (??{ $C_group_rex }) )* - [)}\]] /x; -# Chunk in C without comma at toplevel (no comments): -$C_arg = qr/ (?: (?> [^()\[\]{},"']+ ) - | (??{ $C_group_rex }) - | " (?: (?> [^\\"]+ ) - | \\. - )* " # String literal - | ' (?: (?> [^\\']+ ) | \\. )* ' # Char literal - )* /xs; - -# "impossible" keyword (multiple newline) -my $END = "!End!\n\n"; -# Match an XS Keyword -my $BLOCK_regexp = '\s*(' . $ExtUtils::ParseXS::Constants::XSKeywordsAlternation . "|$END)\\s*:"; - - - -sub new { - return bless {} => shift; -} - -our $Singleton = __PACKAGE__->new; - -sub process_file { - my $self; - # Allow for $package->process_file(%hash), $obj->process_file, and process_file() - if (@_ % 2) { - my $invocant = shift; - $self = ref($invocant) ? $invocant : $invocant->new; - } - else { - $self = $Singleton; - } - - my %options = @_; - $self->{ProtoUsed} = exists $options{prototypes}; - - # Set defaults. - my %args = ( - argtypes => 1, - csuffix => '.c', - except => 0, - hiertype => 0, - inout => 1, - linenumbers => 1, - optimize => 1, - output => \*STDOUT, - prototypes => 0, - typemap => [], - versioncheck => 1, - FH => Symbol::gensym(), - %options, - ); - $args{except} = $args{except} ? ' TRY' : ''; - - # Global Constants - - my ($Is_VMS, $SymSet); - if ($^O eq 'VMS') { - $Is_VMS = 1; - # Establish set of global symbols with max length 28, since xsubpp - # will later add the 'XS_' prefix. - require ExtUtils::XSSymSet; - $SymSet = ExtUtils::XSSymSet->new(28); - } - @{ $self->{XSStack} } = ({type => 'none'}); - $self->{InitFileCode} = [ @ExtUtils::ParseXS::Constants::InitFileCode ]; - $self->{Overload} = 0; # bool - $self->{errors} = 0; # count - $self->{Fallback} = '&PL_sv_undef'; - - # Most of the 1500 lines below uses these globals. We'll have to - # clean this up sometime, probably. For now, we just pull them out - # of %args. -Ken - - $self->{RetainCplusplusHierarchicalTypes} = $args{hiertype}; - $self->{WantPrototypes} = $args{prototypes}; - $self->{WantVersionChk} = $args{versioncheck}; - $self->{WantLineNumbers} = $args{linenumbers}; - $self->{IncludedFiles} = {}; - - die "Missing required parameter 'filename'" unless $args{filename}; - $self->{filepathname} = $args{filename}; - ($self->{dir}, $self->{filename}) = - (dirname($args{filename}), basename($args{filename})); - $self->{filepathname} =~ s/\\/\\\\/g; - $self->{IncludedFiles}->{$args{filename}}++; - - # Open the output file if given as a string. If they provide some - # other kind of reference, trust them that we can print to it. - if (not ref $args{output}) { - open my($fh), "> $args{output}" or die "Can't create $args{output}: $!"; - $args{outfile} = $args{output}; - $args{output} = $fh; - } - - # Really, we shouldn't have to chdir() or select() in the first - # place. For now, just save and restore. - my $orig_cwd = cwd(); - my $orig_fh = select(); - - chdir($self->{dir}); - my $pwd = cwd(); - my $csuffix = $args{csuffix}; - - if ($self->{WantLineNumbers}) { - my $cfile; - if ( $args{outfile} ) { - $cfile = $args{outfile}; - } - else { - $cfile = $args{filename}; - $cfile =~ s/\.xs$/$csuffix/i or $cfile .= $csuffix; - } - tie(*PSEUDO_STDOUT, 'ExtUtils::ParseXS::CountLines', $cfile, $args{output}); - select PSEUDO_STDOUT; - } - else { - select $args{output}; - } - - $self->{typemap} = process_typemaps( $args{typemap}, $pwd ); - - # Move more settings from parameters to object - foreach my $datum ( qw| argtypes except inout optimize | ) { - $self->{$datum} = $args{$datum}; - } - $self->{strip_c_func_prefix} = $args{s}; - - # Identify the version of xsubpp used - print <<EOM; -/* - * This file was generated automatically by ExtUtils::ParseXS version $VERSION from the - * contents of $self->{filename}. Do not edit this file, edit $self->{filename} instead. - * - * ANY CHANGES MADE HERE WILL BE LOST! - * - */ - -EOM - - - print("#line 1 \"" . escape_file_for_line_directive($self->{filepathname}) . "\"\n") - if $self->{WantLineNumbers}; - - # Open the input file (using $self->{filename} which - # is a basename'd $args{filename} due to chdir above) - open($self->{FH}, '<', $self->{filename}) or die "cannot open $self->{filename}: $!\n"; - - FIRSTMODULE: - while (readline($self->{FH})) { - if (/^=/) { - my $podstartline = $.; - do { - if (/^=cut\s*$/) { - # We can't just write out a /* */ comment, as our embedded - # POD might itself be in a comment. We can't put a /**/ - # comment inside #if 0, as the C standard says that the source - # file is decomposed into preprocessing characters in the stage - # before preprocessing commands are executed. - # I don't want to leave the text as barewords, because the spec - # isn't clear whether macros are expanded before or after - # preprocessing commands are executed, and someone pathological - # may just have defined one of the 3 words as a macro that does - # something strange. Multiline strings are illegal in C, so - # the "" we write must be a string literal. And they aren't - # concatenated until 2 steps later, so we are safe. - # - Nicholas Clark - print("#if 0\n \"Skipped embedded POD.\"\n#endif\n"); - printf("#line %d \"%s\"\n", $. + 1, escape_file_for_line_directive($self->{filepathname})) - if $self->{WantLineNumbers}; - next FIRSTMODULE; - } - - } while (readline($self->{FH})); - # At this point $. is at end of file so die won't state the start - # of the problem, and as we haven't yet read any lines &death won't - # show the correct line in the message either. - die ("Error: Unterminated pod in $self->{filename}, line $podstartline\n") - unless $self->{lastline}; - } - last if ($self->{Package}, $self->{Prefix}) = - /^MODULE\s*=\s*[\w:]+(?:\s+PACKAGE\s*=\s*([\w:]+))?(?:\s+PREFIX\s*=\s*(\S+))?\s*$/; - - print $_; - } - unless (defined $_) { - warn "Didn't find a 'MODULE ... PACKAGE ... PREFIX' line\n"; - exit 0; # Not a fatal error for the caller process - } - - print 'ExtUtils::ParseXS::CountLines'->end_marker, "\n" if $self->{WantLineNumbers}; - - standard_XS_defs(); - - print 'ExtUtils::ParseXS::CountLines'->end_marker, "\n" if $self->{WantLineNumbers}; - - $self->{lastline} = $_; - $self->{lastline_no} = $.; - - my $BootCode_ref = []; - my $XSS_work_idx = 0; - my $cpp_next_tmp = 'XSubPPtmpAAAA'; - PARAGRAPH: - while ($self->fetch_para()) { - my $outlist_ref = []; - # Print initial preprocessor statements and blank lines - while (@{ $self->{line} } && $self->{line}->[0] !~ /^[^\#]/) { - my $ln = shift(@{ $self->{line} }); - print $ln, "\n"; - next unless $ln =~ /^\#\s*((if)(?:n?def)?|elsif|else|endif)\b/; - my $statement = $+; - ( $self, $XSS_work_idx, $BootCode_ref ) = - analyze_preprocessor_statements( - $self, $statement, $XSS_work_idx, $BootCode_ref - ); - } - - next PARAGRAPH unless @{ $self->{line} }; - - if ($XSS_work_idx && !$self->{XSStack}->[$XSS_work_idx]{varname}) { - # We are inside an #if, but have not yet #defined its xsubpp variable. - print "#define $cpp_next_tmp 1\n\n"; - push(@{ $self->{InitFileCode} }, "#if $cpp_next_tmp\n"); - push(@{ $BootCode_ref }, "#if $cpp_next_tmp"); - $self->{XSStack}->[$XSS_work_idx]{varname} = $cpp_next_tmp++; - } - - $self->death( - "Code is not inside a function" - ." (maybe last function was ended by a blank line " - ." followed by a statement on column one?)") - if $self->{line}->[0] =~ /^\s/; - - # initialize info arrays - foreach my $member (qw(args_match var_types defaults arg_list - argtype_seen in_out lengthof)) - { - $self->{$member} = {}; - } - $self->{proto_arg} = []; - $self->{processing_arg_with_types} = 0; # bool - $self->{proto_in_this_xsub} = 0; # counter & bool - $self->{scope_in_this_xsub} = 0; # counter & bool - $self->{interface} = 0; # bool - $self->{interface_macro} = 'XSINTERFACE_FUNC'; - $self->{interface_macro_set} = 'XSINTERFACE_FUNC_SET'; - $self->{ProtoThisXSUB} = $self->{WantPrototypes}; # states 0 (none), 1 (yes), 2 (empty prototype) - $self->{ScopeThisXSUB} = 0; # bool - - my $xsreturn = 0; - - $_ = shift(@{ $self->{line} }); - while (my $kwd = $self->check_keyword("REQUIRE|PROTOTYPES|EXPORT_XSUB_SYMBOLS|FALLBACK|VERSIONCHECK|INCLUDE(?:_COMMAND)?|SCOPE")) { - my $method = $kwd . "_handler"; - $self->$method($_); - next PARAGRAPH unless @{ $self->{line} }; - $_ = shift(@{ $self->{line} }); - } - - if ($self->check_keyword("BOOT")) { - check_conditional_preprocessor_statements($self); - push (@{ $BootCode_ref }, "#line $self->{line_no}->[@{ $self->{line_no} } - @{ $self->{line} }] \"" - . escape_file_for_line_directive($self->{filepathname}) . "\"") - if $self->{WantLineNumbers} && $self->{line}->[0] !~ /^\s*#\s*line\b/; - push (@{ $BootCode_ref }, @{ $self->{line} }, ""); - next PARAGRAPH; - } - - # extract return type, function name and arguments - ($self->{ret_type}) = ExtUtils::Typemaps::tidy_type($_); - my $RETVAL_no_return = 1 if $self->{ret_type} =~ s/^NO_OUTPUT\s+//; - - # Allow one-line ANSI-like declaration - unshift @{ $self->{line} }, $2 - if $self->{argtypes} - and $self->{ret_type} =~ s/^(.*?\w.*?)\s*\b(\w+\s*\(.*)/$1/s; - - # a function definition needs at least 2 lines - $self->blurt("Error: Function definition too short '$self->{ret_type}'"), next PARAGRAPH - unless @{ $self->{line} }; - - my $externC = 1 if $self->{ret_type} =~ s/^extern "C"\s+//; - my $static = 1 if $self->{ret_type} =~ s/^static\s+//; - - my $func_header = shift(@{ $self->{line} }); - $self->blurt("Error: Cannot parse function definition from '$func_header'"), next PARAGRAPH - unless $func_header =~ /^(?:([\w:]*)::)?(\w+)\s*\(\s*(.*?)\s*\)\s*(const)?\s*(;\s*)?$/s; - - my ($class, $orig_args); - ($class, $self->{func_name}, $orig_args) = ($1, $2, $3); - $class = "$4 $class" if $4; - ($self->{pname} = $self->{func_name}) =~ s/^($self->{Prefix})?/$self->{Packprefix}/; - my $clean_func_name; - ($clean_func_name = $self->{func_name}) =~ s/^$self->{Prefix}//; - $self->{Full_func_name} = "$self->{Packid}_$clean_func_name"; - if ($Is_VMS) { - $self->{Full_func_name} = $SymSet->addsym( $self->{Full_func_name} ); - } - - # Check for duplicate function definition - for my $tmp (@{ $self->{XSStack} }) { - next unless defined $tmp->{functions}{ $self->{Full_func_name} }; - Warn( $self, "Warning: duplicate function definition '$clean_func_name' detected"); - last; - } - $self->{XSStack}->[$XSS_work_idx]{functions}{ $self->{Full_func_name} }++; - delete $self->{XsubAliases}; - delete $self->{XsubAliasValues}; - %{ $self->{Interfaces} } = (); - @{ $self->{Attributes} } = (); - $self->{DoSetMagic} = 1; - - $orig_args =~ s/\\\s*/ /g; # process line continuations - my @args; - - my (@fake_INPUT_pre); # For length(s) generated variables - my (@fake_INPUT); - my $only_C_inlist_ref = {}; # Not in the signature of Perl function - if ($self->{argtypes} and $orig_args =~ /\S/) { - my $args = "$orig_args ,"; - use re 'eval'; - if ($args =~ /^( (??{ $C_arg }) , )* $ /x) { - @args = ($args =~ /\G ( (??{ $C_arg }) ) , /xg); - no re 'eval'; - for ( @args ) { - s/^\s+//; - s/\s+$//; - my ($arg, $default) = ($_ =~ m/ ( [^=]* ) ( (?: = .* )? ) /x); - my ($pre, $len_name) = ($arg =~ /(.*?) \s* - \b ( \w+ | length\( \s*\w+\s* \) ) - \s* $ /x); - next unless defined($pre) && length($pre); - my $out_type = ''; - my $inout_var; - if ($self->{inout} and s/^(IN|IN_OUTLIST|OUTLIST|OUT|IN_OUT)\b\s*//) { - my $type = $1; - $out_type = $type if $type ne 'IN'; - $arg =~ s/^(IN|IN_OUTLIST|OUTLIST|OUT|IN_OUT)\b\s*//; - $pre =~ s/^(IN|IN_OUTLIST|OUTLIST|OUT|IN_OUT)\b\s*//; - } - my $islength; - if ($len_name =~ /^length\( \s* (\w+) \s* \)\z/x) { - $len_name = "XSauto_length_of_$1"; - $islength = 1; - die "Default value on length() argument: '$_'" - if length $default; - } - if (length $pre or $islength) { # Has a type - if ($islength) { - push @fake_INPUT_pre, $arg; - } - else { - push @fake_INPUT, $arg; - } - # warn "pushing '$arg'\n"; - $self->{argtype_seen}->{$len_name}++; - $_ = "$len_name$default"; # Assigns to @args - } - $only_C_inlist_ref->{$_} = 1 if $out_type eq "OUTLIST" or $islength; - push @{ $outlist_ref }, $len_name if $out_type =~ /OUTLIST$/; - $self->{in_out}->{$len_name} = $out_type if $out_type; - } - } - else { - no re 'eval'; - @args = split(/\s*,\s*/, $orig_args); - Warn( $self, "Warning: cannot parse argument list '$orig_args', fallback to split"); - } - } - else { - @args = split(/\s*,\s*/, $orig_args); - for (@args) { - if ($self->{inout} and s/^(IN|IN_OUTLIST|OUTLIST|IN_OUT|OUT)\b\s*//) { - my $out_type = $1; - next if $out_type eq 'IN'; - $only_C_inlist_ref->{$_} = 1 if $out_type eq "OUTLIST"; - if ($out_type =~ /OUTLIST$/) { - push @{ $outlist_ref }, undef; - } - $self->{in_out}->{$_} = $out_type; - } - } - } - if (defined($class)) { - my $arg0 = ((defined($static) or $self->{func_name} eq 'new') - ? "CLASS" : "THIS"); - unshift(@args, $arg0); - } - my $extra_args = 0; - my @args_num = (); - my $num_args = 0; - my $report_args = ''; - my $ellipsis; - foreach my $i (0 .. $#args) { - if ($args[$i] =~ s/\.\.\.//) { - $ellipsis = 1; - if ($args[$i] eq '' && $i == $#args) { - $report_args .= ", ..."; - pop(@args); - last; - } - } - if ($only_C_inlist_ref->{$args[$i]}) { - push @args_num, undef; - } - else { - push @args_num, ++$num_args; - $report_args .= ", $args[$i]"; - } - if ($args[$i] =~ /^([^=]*[^\s=])\s*=\s*(.*)/s) { - $extra_args++; - $args[$i] = $1; - $self->{defaults}->{$args[$i]} = $2; - $self->{defaults}->{$args[$i]} =~ s/"/\\"/g; - } - $self->{proto_arg}->[$i+1] = '$'; - } - my $min_args = $num_args - $extra_args; - $report_args =~ s/"/\\"/g; - $report_args =~ s/^,\s+//; - $self->{func_args} = assign_func_args($self, \@args, $class); - @{ $self->{args_match} }{@args} = @args_num; - - my $PPCODE = grep(/^\s*PPCODE\s*:/, @{ $self->{line} }); - my $CODE = grep(/^\s*CODE\s*:/, @{ $self->{line} }); - # Detect CODE: blocks which use ST(n)= or XST_m*(n,v) - # to set explicit return values. - my $EXPLICIT_RETURN = ($CODE && - ("@{ $self->{line} }" =~ /(\bST\s*\([^;]*=) | (\bXST_m\w+\s*\()/x )); - - $self->{ALIAS} = grep(/^\s*ALIAS\s*:/, @{ $self->{line} }); - - my $INTERFACE = grep(/^\s*INTERFACE\s*:/, @{ $self->{line} }); - - $xsreturn = 1 if $EXPLICIT_RETURN; - - $externC = $externC ? qq[extern "C"] : ""; - - # print function header - print Q(<<"EOF"); -#$externC -#XS_EUPXS(XS_$self->{Full_func_name}); /* prototype to pass -Wmissing-prototypes */ -#XS_EUPXS(XS_$self->{Full_func_name}) -#[[ -# dVAR; dXSARGS; -EOF - print Q(<<"EOF") if $self->{ALIAS}; -# dXSI32; -EOF - print Q(<<"EOF") if $INTERFACE; -# dXSFUNCTION($self->{ret_type}); -EOF - - $self->{cond} = set_cond($ellipsis, $min_args, $num_args); - - print Q(<<"EOF") if $self->{except}; -# char errbuf[1024]; -# *errbuf = '\\0'; -EOF - - if($self->{cond}) { - print Q(<<"EOF"); -# if ($self->{cond}) -# croak_xs_usage(cv, "$report_args"); -EOF - } - else { - # cv likely to be unused - print Q(<<"EOF"); -# PERL_UNUSED_VAR(cv); /* -W */ -EOF - } - - #gcc -Wall: if an xsub has PPCODE is used - #it is possible none of ST, XSRETURN or XSprePUSH macros are used - #hence 'ax' (setup by dXSARGS) is unused - #XXX: could breakup the dXSARGS; into dSP;dMARK;dITEMS - #but such a move could break third-party extensions - print Q(<<"EOF") if $PPCODE; -# PERL_UNUSED_VAR(ax); /* -Wall */ -EOF - - print Q(<<"EOF") if $PPCODE; -# SP -= items; -EOF - - # Now do a block of some sort. - - $self->{condnum} = 0; - $self->{cond} = ''; # last CASE: conditional - push(@{ $self->{line} }, "$END:"); - push(@{ $self->{line_no} }, $self->{line_no}->[-1]); - $_ = ''; - check_conditional_preprocessor_statements(); - while (@{ $self->{line} }) { - - $self->CASE_handler($_) if $self->check_keyword("CASE"); - print Q(<<"EOF"); -# $self->{except} [[ -EOF - - # do initialization of input variables - $self->{thisdone} = 0; - $self->{retvaldone} = 0; - $self->{deferred} = ""; - %{ $self->{arg_list} } = (); - $self->{gotRETVAL} = 0; - $self->INPUT_handler($_); - $self->process_keyword("INPUT|PREINIT|INTERFACE_MACRO|C_ARGS|ALIAS|ATTRS|PROTOTYPE|SCOPE|OVERLOAD"); - - print Q(<<"EOF") if $self->{ScopeThisXSUB}; -# ENTER; -# [[ -EOF - - if (!$self->{thisdone} && defined($class)) { - if (defined($static) or $self->{func_name} eq 'new') { - print "\tchar *"; - $self->{var_types}->{"CLASS"} = "char *"; - $self->generate_init( { - type => "char *", - num => 1, - var => "CLASS", - printed_name => undef, - } ); - } - else { - print "\t" . map_type($self, "$class *"); - $self->{var_types}->{"THIS"} = "$class *"; - $self->generate_init( { - type => "$class *", - num => 1, - var => "THIS", - printed_name => undef, - } ); - } - } - - # These are set if OUTPUT is found and/or CODE using RETVAL - $self->{have_OUTPUT} = $self->{have_CODE_with_RETVAL} = 0; - - my ($wantRETVAL); - # do code - if (/^\s*NOT_IMPLEMENTED_YET/) { - print "\n\tPerl_croak(aTHX_ \"$self->{pname}: not implemented yet\");\n"; - $_ = ''; - } - else { - if ($self->{ret_type} ne "void") { - print "\t" . map_type($self, $self->{ret_type}, 'RETVAL') . ";\n" - if !$self->{retvaldone}; - $self->{args_match}->{"RETVAL"} = 0; - $self->{var_types}->{"RETVAL"} = $self->{ret_type}; - my $outputmap = $self->{typemap}->get_outputmap( ctype => $self->{ret_type} ); - print "\tdXSTARG;\n" - if $self->{optimize} and $outputmap and $outputmap->targetable; - } - - if (@fake_INPUT or @fake_INPUT_pre) { - unshift @{ $self->{line} }, @fake_INPUT_pre, @fake_INPUT, $_; - $_ = ""; - $self->{processing_arg_with_types} = 1; - $self->INPUT_handler($_); - } - print $self->{deferred}; - - $self->process_keyword("INIT|ALIAS|ATTRS|PROTOTYPE|INTERFACE_MACRO|INTERFACE|C_ARGS|OVERLOAD"); - - if ($self->check_keyword("PPCODE")) { - $self->print_section(); - $self->death("PPCODE must be last thing") if @{ $self->{line} }; - print "\tLEAVE;\n" if $self->{ScopeThisXSUB}; - print "\tPUTBACK;\n\treturn;\n"; - } - elsif ($self->check_keyword("CODE")) { - my $consumed_code = $self->print_section(); - if ($consumed_code =~ /\bRETVAL\b/) { - $self->{have_CODE_with_RETVAL} = 1; - } - } - elsif (defined($class) and $self->{func_name} eq "DESTROY") { - print "\n\t"; - print "delete THIS;\n"; - } - else { - print "\n\t"; - if ($self->{ret_type} ne "void") { - print "RETVAL = "; - $wantRETVAL = 1; - } - if (defined($static)) { - if ($self->{func_name} eq 'new') { - $self->{func_name} = "$class"; - } - else { - print "${class}::"; - } - } - elsif (defined($class)) { - if ($self->{func_name} eq 'new') { - $self->{func_name} .= " $class"; - } - else { - print "THIS->"; - } - } - my $strip = $self->{strip_c_func_prefix}; - $self->{func_name} =~ s/^\Q$strip// - if defined $strip; - $self->{func_name} = 'XSFUNCTION' if $self->{interface}; - print "$self->{func_name}($self->{func_args});\n"; - } - } - - # do output variables - $self->{gotRETVAL} = 0; # 1 if RETVAL seen in OUTPUT section; - undef $self->{RETVAL_code} ; # code to set RETVAL (from OUTPUT section); - # $wantRETVAL set if 'RETVAL =' autogenerated - ($wantRETVAL, $self->{ret_type}) = (0, 'void') if $RETVAL_no_return; - undef %{ $self->{outargs} }; - - $self->process_keyword("POSTCALL|OUTPUT|ALIAS|ATTRS|PROTOTYPE|OVERLOAD"); - - # A CODE section with RETVAL, but no OUTPUT? FAIL! - if ($self->{have_CODE_with_RETVAL} and not $self->{have_OUTPUT} and $self->{ret_type} ne 'void') { - $self->Warn("Warning: Found a 'CODE' section which seems to be using 'RETVAL' but no 'OUTPUT' section."); - } - - $self->generate_output( { - type => $self->{var_types}->{$_}, - num => $self->{args_match}->{$_}, - var => $_, - do_setmagic => $self->{DoSetMagic}, - do_push => undef, - } ) for grep $self->{in_out}->{$_} =~ /OUT$/, sort keys %{ $self->{in_out} }; - - my $prepush_done; - # all OUTPUT done, so now push the return value on the stack - if ($self->{gotRETVAL} && $self->{RETVAL_code}) { - print "\t$self->{RETVAL_code}\n"; - } - elsif ($self->{gotRETVAL} || $wantRETVAL) { - my $outputmap = $self->{typemap}->get_outputmap( ctype => $self->{ret_type} ); - my $trgt = $self->{optimize} && $outputmap && $outputmap->targetable; - my $var = 'RETVAL'; - my $type = $self->{ret_type}; - - if ($trgt) { - my $what = $self->eval_output_typemap_code( - qq("$trgt->{what}"), - {var => $var, type => $self->{ret_type}} - ); - if (not $trgt->{with_size} and $trgt->{type} eq 'p') { # sv_setpv - # PUSHp corresponds to sv_setpvn. Treat sv_setpv directly - print "\tsv_setpv(TARG, $what); XSprePUSH; PUSHTARG;\n"; - $prepush_done = 1; - } - else { - my $tsize = $trgt->{what_size}; - $tsize = '' unless defined $tsize; - $tsize = $self->eval_output_typemap_code( - qq("$tsize"), - {var => $var, type => $self->{ret_type}} - ); - print "\tXSprePUSH; PUSH$trgt->{type}($what$tsize);\n"; - $prepush_done = 1; - } - } - else { - # RETVAL almost never needs SvSETMAGIC() - $self->generate_output( { - type => $self->{ret_type}, - num => 0, - var => 'RETVAL', - do_setmagic => 0, - do_push => undef, - } ); - } - } - - $xsreturn = 1 if $self->{ret_type} ne "void"; - my $num = $xsreturn; - my $c = @{ $outlist_ref }; - print "\tXSprePUSH;" if $c and not $prepush_done; - print "\tEXTEND(SP,$c);\n" if $c; - $xsreturn += $c; - $self->generate_output( { - type => $self->{var_types}->{$_}, - num => $num++, - var => $_, - do_setmagic => 0, - do_push => 1, - } ) for @{ $outlist_ref }; - - # do cleanup - $self->process_keyword("CLEANUP|ALIAS|ATTRS|PROTOTYPE|OVERLOAD"); - - print Q(<<"EOF") if $self->{ScopeThisXSUB}; -# ]] -EOF - print Q(<<"EOF") if $self->{ScopeThisXSUB} and not $PPCODE; -# LEAVE; -EOF - - # print function trailer - print Q(<<"EOF"); -# ]] -EOF - print Q(<<"EOF") if $self->{except}; -# BEGHANDLERS -# CATCHALL -# sprintf(errbuf, "%s: %s\\tpropagated", Xname, Xreason); -# ENDHANDLERS -EOF - if ($self->check_keyword("CASE")) { - $self->blurt("Error: No 'CASE:' at top of function") - unless $self->{condnum}; - $_ = "CASE: $_"; # Restore CASE: label - next; - } - last if $_ eq "$END:"; - $self->death(/^$BLOCK_regexp/o ? "Misplaced '$1:'" : "Junk at end of function ($_)"); - } - - print Q(<<"EOF") if $self->{except}; -# if (errbuf[0]) -# Perl_croak(aTHX_ errbuf); -EOF - - if ($xsreturn) { - print Q(<<"EOF") unless $PPCODE; -# XSRETURN($xsreturn); -EOF - } - else { - print Q(<<"EOF") unless $PPCODE; -# XSRETURN_EMPTY; -EOF - } - - print Q(<<"EOF"); -#]] -# -EOF - - $self->{proto} = ""; - unless($self->{ProtoThisXSUB}) { - $self->{newXS} = "newXS_deffile"; - $self->{file} = ""; - } - else { - # Build the prototype string for the xsub - $self->{newXS} = "newXSproto_portable"; - $self->{file} = ", file"; - - if ($self->{ProtoThisXSUB} eq 2) { - # User has specified empty prototype - } - elsif ($self->{ProtoThisXSUB} eq 1) { - my $s = ';'; - if ($min_args < $num_args) { - $s = ''; - $self->{proto_arg}->[$min_args] .= ";"; - } - push @{ $self->{proto_arg} }, "$s\@" - if $ellipsis; - - $self->{proto} = join ("", grep defined, @{ $self->{proto_arg} } ); - } - else { - # User has specified a prototype - $self->{proto} = $self->{ProtoThisXSUB}; - } - $self->{proto} = qq{, "$self->{proto}"}; - } - - if ($self->{XsubAliases} and keys %{ $self->{XsubAliases} }) { - $self->{XsubAliases}->{ $self->{pname} } = 0 - unless defined $self->{XsubAliases}->{ $self->{pname} }; - foreach my $xname (sort keys %{ $self->{XsubAliases} }) { - my $value = $self->{XsubAliases}{$xname}; - push(@{ $self->{InitFileCode} }, Q(<<"EOF")); -# cv = $self->{newXS}(\"$xname\", XS_$self->{Full_func_name}$self->{file}$self->{proto}); -# XSANY.any_i32 = $value; -EOF - } - } - elsif (@{ $self->{Attributes} }) { - push(@{ $self->{InitFileCode} }, Q(<<"EOF")); -# cv = $self->{newXS}(\"$self->{pname}\", XS_$self->{Full_func_name}$self->{file}$self->{proto}); -# apply_attrs_string("$self->{Package}", cv, "@{ $self->{Attributes} }", 0); -EOF - } - elsif ($self->{interface}) { - foreach my $yname (sort keys %{ $self->{Interfaces} }) { - my $value = $self->{Interfaces}{$yname}; - $yname = "$self->{Package}\::$yname" unless $yname =~ /::/; - push(@{ $self->{InitFileCode} }, Q(<<"EOF")); -# cv = $self->{newXS}(\"$yname\", XS_$self->{Full_func_name}$self->{file}$self->{proto}); -# $self->{interface_macro_set}(cv,$value); -EOF - } - } - elsif($self->{newXS} eq 'newXS_deffile'){ # work around P5NCI's empty newXS macro - push(@{ $self->{InitFileCode} }, - " $self->{newXS}(\"$self->{pname}\", XS_$self->{Full_func_name}$self->{file}$self->{proto});\n"); - } - else { - push(@{ $self->{InitFileCode} }, - " (void)$self->{newXS}(\"$self->{pname}\", XS_$self->{Full_func_name}$self->{file}$self->{proto});\n"); - } - } # END 'PARAGRAPH' 'while' loop - - if ($self->{Overload}) { # make it findable with fetchmethod - print Q(<<"EOF"); -#XS_EUPXS(XS_$self->{Packid}_nil); /* prototype to pass -Wmissing-prototypes */ -#XS_EUPXS(XS_$self->{Packid}_nil) -#{ -# dXSARGS; -# XSRETURN_EMPTY; -#} -# -EOF - unshift(@{ $self->{InitFileCode} }, <<"MAKE_FETCHMETHOD_WORK"); - /* Making a sub named "$self->{Package}::()" allows the package */ - /* to be findable via fetchmethod(), and causes */ - /* overload::Overloaded("$self->{Package}") to return true. */ - (void)$self->{newXS}("$self->{Package}::()", XS_$self->{Packid}_nil$self->{file}$self->{proto}); -MAKE_FETCHMETHOD_WORK - } - - # print initialization routine - - print Q(<<"EOF"); -##ifdef __cplusplus -#extern "C" -##endif -EOF - - print Q(<<"EOF"); -#XS_EXTERNAL(boot_$self->{Module_cname}); /* prototype to pass -Wmissing-prototypes */ -#XS_EXTERNAL(boot_$self->{Module_cname}) -#[[ -##if PERL_VERSION_LE(5, 21, 5) -# dVAR; dXSARGS; -##else -# dVAR; ${\($self->{WantVersionChk} ? - 'dXSBOOTARGSXSAPIVERCHK;' : 'dXSBOOTARGSAPIVERCHK;')} -##endif -EOF - - #Under 5.8.x and lower, newXS is declared in proto.h as expecting a non-const - #file name argument. If the wrong qualifier is used, it causes breakage with - #C++ compilers and warnings with recent gcc. - #-Wall: if there is no $self->{Full_func_name} there are no xsubs in this .xs - #so 'file' is unused - print Q(<<"EOF") if $self->{Full_func_name}; -##if (PERL_REVISION == 5 && PERL_VERSION < 9) -# char* file = __FILE__; -##else -# const char* file = __FILE__; -##endif -# -# PERL_UNUSED_VAR(file); -EOF - - print Q("#\n"); - - print Q(<<"EOF"); -# PERL_UNUSED_VAR(cv); /* -W */ -# PERL_UNUSED_VAR(items); /* -W */ -EOF - - if( $self->{WantVersionChk}){ - print Q(<<"EOF") ; -##if PERL_VERSION_LE(5, 21, 5) -# XS_VERSION_BOOTCHECK; -## ifdef XS_APIVERSION_BOOTCHECK -# XS_APIVERSION_BOOTCHECK; -## endif -##endif - -EOF - } else { - print Q(<<"EOF") ; -##if PERL_VERSION_LE(5, 21, 5) && defined(XS_APIVERSION_BOOTCHECK) -# XS_APIVERSION_BOOTCHECK; -##endif - -EOF - } - - print Q(<<"EOF") if defined $self->{XsubAliases} or defined $self->{interfaces}; -# { -# CV * cv; -# -EOF - - print Q(<<"EOF") if ($self->{Overload}); -# /* register the overloading (type 'A') magic */ -##if (PERL_REVISION == 5 && PERL_VERSION < 9) -# PL_amagic_generation++; -##endif -# /* The magic for overload gets a GV* via gv_fetchmeth as */ -# /* mentioned above, and looks in the SV* slot of it for */ -# /* the "fallback" status. */ -# sv_setsv( -# get_sv( "$self->{Package}::()", TRUE ), -# $self->{Fallback} -# ); -EOF - - print @{ $self->{InitFileCode} }; - - print Q(<<"EOF") if defined $self->{XsubAliases} or defined $self->{interfaces}; -# } -EOF - - if (@{ $BootCode_ref }) { - print "\n /* Initialisation Section */\n\n"; - @{ $self->{line} } = @{ $BootCode_ref }; - $self->print_section(); - print "\n /* End of Initialisation Section */\n\n"; - } - - print Q(<<'EOF'); -##if PERL_VERSION_LE(5, 21, 5) -## if PERL_VERSION_GE(5, 9, 0) -# if (PL_unitcheckav) -# call_list(PL_scopestack_ix, PL_unitcheckav); -## endif -# XSRETURN_YES; -##else -# Perl_xs_boot_epilog(aTHX_ ax); -##endif -#]] -# -EOF - - warn("Please specify prototyping behavior for $self->{filename} (see perlxs manual)\n") - unless $self->{ProtoUsed}; - - chdir($orig_cwd); - select($orig_fh); - untie *PSEUDO_STDOUT if tied *PSEUDO_STDOUT; - close $self->{FH}; - - return 1; -} - -sub report_error_count { - if (@_) { - return $_[0]->{errors}||0; - } - else { - return $Singleton->{errors}||0; - } -} - -# Input: ($self, $_, @{ $self->{line} }) == unparsed input. -# Output: ($_, @{ $self->{line} }) == (rest of line, following lines). -# Return: the matched keyword if found, otherwise 0 -sub check_keyword { - my $self = shift; - $_ = shift(@{ $self->{line} }) while !/\S/ && @{ $self->{line} }; - s/^(\s*)($_[0])\s*:\s*(?:#.*)?/$1/s && $2; -} - -sub print_section { - my $self = shift; - - # the "do" is required for right semantics - do { $_ = shift(@{ $self->{line} }) } while !/\S/ && @{ $self->{line} }; - - my $consumed_code = ''; - - print("#line ", $self->{line_no}->[@{ $self->{line_no} } - @{ $self->{line} } -1], " \"", - escape_file_for_line_directive($self->{filepathname}), "\"\n") - if $self->{WantLineNumbers} && !/^\s*#\s*line\b/ && !/^#if XSubPPtmp/; - for (; defined($_) && !/^$BLOCK_regexp/o; $_ = shift(@{ $self->{line} })) { - print "$_\n"; - $consumed_code .= "$_\n"; - } - print 'ExtUtils::ParseXS::CountLines'->end_marker, "\n" if $self->{WantLineNumbers}; - - return $consumed_code; -} - -sub merge_section { - my $self = shift; - my $in = ''; - - while (!/\S/ && @{ $self->{line} }) { - $_ = shift(@{ $self->{line} }); - } - - for (; defined($_) && !/^$BLOCK_regexp/o; $_ = shift(@{ $self->{line} })) { - $in .= "$_\n"; - } - chomp $in; - return $in; -} - -sub process_keyword { - my($self, $pattern) = @_; - - while (my $kwd = $self->check_keyword($pattern)) { - my $method = $kwd . "_handler"; - $self->$method($_); - } -} - -sub CASE_handler { - my $self = shift; - $_ = shift; - $self->blurt("Error: 'CASE:' after unconditional 'CASE:'") - if $self->{condnum} && $self->{cond} eq ''; - $self->{cond} = $_; - trim_whitespace($self->{cond}); - print " ", ($self->{condnum}++ ? " else" : ""), ($self->{cond} ? " if ($self->{cond})\n" : "\n"); - $_ = ''; -} - -sub INPUT_handler { - my $self = shift; - $_ = shift; - for (; !/^$BLOCK_regexp/o; $_ = shift(@{ $self->{line} })) { - last if /^\s*NOT_IMPLEMENTED_YET/; - next unless /\S/; # skip blank lines - - trim_whitespace($_); - my $ln = $_; - - # remove trailing semicolon if no initialisation - s/\s*;$//g unless /[=;+].*\S/; - - # Process the length(foo) declarations - if (s/^([^=]*)\blength\(\s*(\w+)\s*\)\s*$/$1 XSauto_length_of_$2=NO_INIT/x) { - print "\tSTRLEN\tSTRLEN_length_of_$2;\n"; - $self->{lengthof}->{$2} = undef; - $self->{deferred} .= "\n\tXSauto_length_of_$2 = STRLEN_length_of_$2;\n"; - } - - # check for optional initialisation code - my $var_init = ''; - $var_init = $1 if s/\s*([=;+].*)$//s; - $var_init =~ s/"/\\"/g; - # *sigh* It's valid to supply explicit input typemaps in the argument list... - my $is_overridden_typemap = $var_init =~ /ST\s*\(|\$arg\b/; - - s/\s+/ /g; - my ($var_type, $var_addr, $var_name) = /^(.*?[^&\s])\s*(\&?)\s*\b(\w+)$/s - or $self->blurt("Error: invalid argument declaration '$ln'"), next; - - # Check for duplicate definitions - $self->blurt("Error: duplicate definition of argument '$var_name' ignored"), next - if $self->{arg_list}->{$var_name}++ - or defined $self->{argtype_seen}->{$var_name} and not $self->{processing_arg_with_types}; - - $self->{thisdone} |= $var_name eq "THIS"; - $self->{retvaldone} |= $var_name eq "RETVAL"; - $self->{var_types}->{$var_name} = $var_type; - # XXXX This check is a safeguard against the unfinished conversion of - # generate_init(). When generate_init() is fixed, - # one can use 2-args map_type() unconditionally. - my $printed_name; - if ($var_type =~ / \( \s* \* \s* \) /x) { - # Function pointers are not yet supported with output_init()! - print "\t" . map_type($self, $var_type, $var_name); - $printed_name = 1; - } - else { - print "\t" . map_type($self, $var_type, undef); - $printed_name = 0; - } - $self->{var_num} = $self->{args_match}->{$var_name}; - - if ($self->{var_num}) { - my $typemap = $self->{typemap}->get_typemap(ctype => $var_type); - $self->report_typemap_failure($self->{typemap}, $var_type, "death") - if not $typemap and not $is_overridden_typemap; - $self->{proto_arg}->[$self->{var_num}] = ($typemap && $typemap->proto) || "\$"; - } - $self->{func_args} =~ s/\b($var_name)\b/&$1/ if $var_addr; - if ($var_init =~ /^[=;]\s*NO_INIT\s*;?\s*$/ - or $self->{in_out}->{$var_name} and $self->{in_out}->{$var_name} =~ /^OUT/ - and $var_init !~ /\S/) { - if ($printed_name) { - print ";\n"; - } - else { - print "\t$var_name;\n"; - } - } - elsif ($var_init =~ /\S/) { - $self->output_init( { - type => $var_type, - num => $self->{var_num}, - var => $var_name, - init => $var_init, - printed_name => $printed_name, - } ); - } - elsif ($self->{var_num}) { - $self->generate_init( { - type => $var_type, - num => $self->{var_num}, - var => $var_name, - printed_name => $printed_name, - } ); - } - else { - print ";\n"; - } - } -} - -sub OUTPUT_handler { - my $self = shift; - $self->{have_OUTPUT} = 1; - - $_ = shift; - for (; !/^$BLOCK_regexp/o; $_ = shift(@{ $self->{line} })) { - next unless /\S/; - if (/^\s*SETMAGIC\s*:\s*(ENABLE|DISABLE)\s*/) { - $self->{DoSetMagic} = ($1 eq "ENABLE" ? 1 : 0); - next; - } - my ($outarg, $outcode) = /^\s*(\S+)\s*(.*?)\s*$/s; - $self->blurt("Error: duplicate OUTPUT argument '$outarg' ignored"), next - if $self->{outargs}->{$outarg}++; - if (!$self->{gotRETVAL} and $outarg eq 'RETVAL') { - # deal with RETVAL last - $self->{RETVAL_code} = $outcode; - $self->{gotRETVAL} = 1; - next; - } - $self->blurt("Error: OUTPUT $outarg not an argument"), next - unless defined($self->{args_match}->{$outarg}); - $self->blurt("Error: No input definition for OUTPUT argument '$outarg' - ignored"), next - unless defined $self->{var_types}->{$outarg}; - $self->{var_num} = $self->{args_match}->{$outarg}; - if ($outcode) { - print "\t$outcode\n"; - print "\tSvSETMAGIC(ST(" , $self->{var_num} - 1 , "));\n" if $self->{DoSetMagic}; - } - else { - $self->generate_output( { - type => $self->{var_types}->{$outarg}, - num => $self->{var_num}, - var => $outarg, - do_setmagic => $self->{DoSetMagic}, - do_push => undef, - } ); - } - delete $self->{in_out}->{$outarg} # No need to auto-OUTPUT - if exists $self->{in_out}->{$outarg} and $self->{in_out}->{$outarg} =~ /OUT$/; - } -} - -sub C_ARGS_handler { - my $self = shift; - $_ = shift; - my $in = $self->merge_section(); - - trim_whitespace($in); - $self->{func_args} = $in; -} - -sub INTERFACE_MACRO_handler { - my $self = shift; - $_ = shift; - my $in = $self->merge_section(); - - trim_whitespace($in); - if ($in =~ /\s/) { # two - ($self->{interface_macro}, $self->{interface_macro_set}) = split ' ', $in; - } - else { - $self->{interface_macro} = $in; - $self->{interface_macro_set} = 'UNKNOWN_CVT'; # catch later - } - $self->{interface} = 1; # local - $self->{interfaces} = 1; # global -} - -sub INTERFACE_handler { - my $self = shift; - $_ = shift; - my $in = $self->merge_section(); - - trim_whitespace($in); - - foreach (split /[\s,]+/, $in) { - my $iface_name = $_; - $iface_name =~ s/^$self->{Prefix}//; - $self->{Interfaces}->{$iface_name} = $_; - } - print Q(<<"EOF"); -# XSFUNCTION = $self->{interface_macro}($self->{ret_type},cv,XSANY.any_dptr); -EOF - $self->{interface} = 1; # local - $self->{interfaces} = 1; # global -} - -sub CLEANUP_handler { - my $self = shift; - $self->print_section(); -} - -sub PREINIT_handler { - my $self = shift; - $self->print_section(); -} - -sub POSTCALL_handler { - my $self = shift; - $self->print_section(); -} - -sub INIT_handler { - my $self = shift; - $self->print_section(); -} - -sub get_aliases { - my $self = shift; - my ($line) = @_; - my ($orig) = $line; - - # Parse alias definitions - # format is - # alias = value alias = value ... - - while ($line =~ s/^\s*([\w:]+)\s*=\s*(\w+)\s*//) { - my ($alias, $value) = ($1, $2); - my $orig_alias = $alias; - - # check for optional package definition in the alias - $alias = $self->{Packprefix} . $alias if $alias !~ /::/; - - # check for duplicate alias name & duplicate value - Warn( $self, "Warning: Ignoring duplicate alias '$orig_alias'") - if defined $self->{XsubAliases}->{$alias}; - - Warn( $self, "Warning: Aliases '$orig_alias' and '$self->{XsubAliasValues}->{$value}' have identical values") - if $self->{XsubAliasValues}->{$value}; - - $self->{XsubAliases}->{$alias} = $value; - $self->{XsubAliasValues}->{$value} = $orig_alias; - } - - blurt( $self, "Error: Cannot parse ALIAS definitions from '$orig'") - if $line; -} - -sub ATTRS_handler { - my $self = shift; - $_ = shift; - - for (; !/^$BLOCK_regexp/o; $_ = shift(@{ $self->{line} })) { - next unless /\S/; - trim_whitespace($_); - push @{ $self->{Attributes} }, $_; - } -} - -sub ALIAS_handler { - my $self = shift; - $_ = shift; - - for (; !/^$BLOCK_regexp/o; $_ = shift(@{ $self->{line} })) { - next unless /\S/; - trim_whitespace($_); - $self->get_aliases($_) if $_; - } -} - -sub OVERLOAD_handler { - my $self = shift; - $_ = shift; - - for (; !/^$BLOCK_regexp/o; $_ = shift(@{ $self->{line} })) { - next unless /\S/; - trim_whitespace($_); - while ( s/^\s*([\w:"\\)\+\-\*\/\%\<\>\.\&\|\^\!\~\{\}\=]+)\s*//) { - $self->{Overload} = 1 unless $self->{Overload}; - my $overload = "$self->{Package}\::(".$1; - push(@{ $self->{InitFileCode} }, - " (void)$self->{newXS}(\"$overload\", XS_$self->{Full_func_name}$self->{file}$self->{proto});\n"); - } - } -} - -sub FALLBACK_handler { - my ($self, $setting) = @_; - - # the rest of the current line should contain either TRUE, - # FALSE or UNDEF - - trim_whitespace($setting); - $setting = uc($setting); - - my %map = ( - TRUE => "&PL_sv_yes", 1 => "&PL_sv_yes", - FALSE => "&PL_sv_no", 0 => "&PL_sv_no", - UNDEF => "&PL_sv_undef", - ); - - # check for valid FALLBACK value - $self->death("Error: FALLBACK: TRUE/FALSE/UNDEF") unless exists $map{$setting}; - - $self->{Fallback} = $map{$setting}; -} - - -sub REQUIRE_handler { - # the rest of the current line should contain a version number - my ($self, $ver) = @_; - - trim_whitespace($ver); - - $self->death("Error: REQUIRE expects a version number") - unless $ver; - - # check that the version number is of the form n.n - $self->death("Error: REQUIRE: expected a number, got '$ver'") - unless $ver =~ /^\d+(\.\d*)?/; - - $self->death("Error: xsubpp $ver (or better) required--this is only $VERSION.") - unless $VERSION >= $ver; -} - -sub VERSIONCHECK_handler { - # the rest of the current line should contain either ENABLE or - # DISABLE - my ($self, $setting) = @_; - - trim_whitespace($setting); - - # check for ENABLE/DISABLE - $self->death("Error: VERSIONCHECK: ENABLE/DISABLE") - unless $setting =~ /^(ENABLE|DISABLE)/i; - - $self->{WantVersionChk} = 1 if $1 eq 'ENABLE'; - $self->{WantVersionChk} = 0 if $1 eq 'DISABLE'; - -} - -sub PROTOTYPE_handler { - my $self = shift; - $_ = shift; - - my $specified; - - $self->death("Error: Only 1 PROTOTYPE definition allowed per xsub") - if $self->{proto_in_this_xsub}++; - - for (; !/^$BLOCK_regexp/o; $_ = shift(@{ $self->{line} })) { - next unless /\S/; - $specified = 1; - trim_whitespace($_); - if ($_ eq 'DISABLE') { - $self->{ProtoThisXSUB} = 0; - } - elsif ($_ eq 'ENABLE') { - $self->{ProtoThisXSUB} = 1; - } - else { - # remove any whitespace - s/\s+//g; - $self->death("Error: Invalid prototype '$_'") - unless valid_proto_string($_); - $self->{ProtoThisXSUB} = C_string($_); - } - } - - # If no prototype specified, then assume empty prototype "" - $self->{ProtoThisXSUB} = 2 unless $specified; - - $self->{ProtoUsed} = 1; -} - -sub SCOPE_handler { - # Rest of line should be either ENABLE or DISABLE - my ($self, $setting) = @_; - - $self->death("Error: Only 1 SCOPE declaration allowed per xsub") - if $self->{scope_in_this_xsub}++; - - trim_whitespace($setting); - $self->death("Error: SCOPE: ENABLE/DISABLE") - unless $setting =~ /^(ENABLE|DISABLE)\b/i; - $self->{ScopeThisXSUB} = ( uc($1) eq 'ENABLE' ); -} - -sub PROTOTYPES_handler { - # the rest of the current line should contain either ENABLE or - # DISABLE - my ($self, $setting) = @_; - - trim_whitespace($setting); - - # check for ENABLE/DISABLE - $self->death("Error: PROTOTYPES: ENABLE/DISABLE") - unless $setting =~ /^(ENABLE|DISABLE)/i; - - $self->{WantPrototypes} = 1 if $1 eq 'ENABLE'; - $self->{WantPrototypes} = 0 if $1 eq 'DISABLE'; - $self->{ProtoUsed} = 1; -} - -sub EXPORT_XSUB_SYMBOLS_handler { - # the rest of the current line should contain either ENABLE or - # DISABLE - my ($self, $setting) = @_; - - trim_whitespace($setting); - - # check for ENABLE/DISABLE - $self->death("Error: EXPORT_XSUB_SYMBOLS: ENABLE/DISABLE") - unless $setting =~ /^(ENABLE|DISABLE)/i; - - my $xs_impl = $1 eq 'ENABLE' ? 'XS_EXTERNAL' : 'XS_INTERNAL'; - - print Q(<<"EOF"); -##undef XS_EUPXS -##if defined(PERL_EUPXS_ALWAYS_EXPORT) -## define XS_EUPXS(name) XS_EXTERNAL(name) -##elif defined(PERL_EUPXS_NEVER_EXPORT) -## define XS_EUPXS(name) XS_INTERNAL(name) -##else -## define XS_EUPXS(name) $xs_impl(name) -##endif -EOF -} - - -sub PushXSStack { - my $self = shift; - my %args = @_; - # Save the current file context. - push(@{ $self->{XSStack} }, { - type => 'file', - LastLine => $self->{lastline}, - LastLineNo => $self->{lastline_no}, - Line => $self->{line}, - LineNo => $self->{line_no}, - Filename => $self->{filename}, - Filepathname => $self->{filepathname}, - Handle => $self->{FH}, - IsPipe => scalar($self->{filename} =~ /\|\s*$/), - %args, - }); - -} - -sub INCLUDE_handler { - my $self = shift; - $_ = shift; - # the rest of the current line should contain a valid filename - - trim_whitespace($_); - - $self->death("INCLUDE: filename missing") - unless $_; - - $self->death("INCLUDE: output pipe is illegal") - if /^\s*\|/; - - # simple minded recursion detector - $self->death("INCLUDE loop detected") - if $self->{IncludedFiles}->{$_}; - - ++$self->{IncludedFiles}->{$_} unless /\|\s*$/; - - if (/\|\s*$/ && /^\s*perl\s/) { - Warn( $self, "The INCLUDE directive with a command is discouraged." . - " Use INCLUDE_COMMAND instead! In particular using 'perl'" . - " in an 'INCLUDE: ... |' directive is not guaranteed to pick" . - " up the correct perl. The INCLUDE_COMMAND directive allows" . - " the use of \$^X as the currently running perl, see" . - " 'perldoc perlxs' for details."); - } - - $self->PushXSStack(); - - $self->{FH} = Symbol::gensym(); - - # open the new file - open($self->{FH}, $_) or $self->death("Cannot open '$_': $!"); - - print Q(<<"EOF"); -# -#/* INCLUDE: Including '$_' from '$self->{filename}' */ -# -EOF - - $self->{filename} = $_; - $self->{filepathname} = ( $^O =~ /^mswin/i ) - ? qq($self->{dir}/$self->{filename}) # See CPAN RT #61908: gcc doesn't like backslashes on win32? - : File::Spec->catfile($self->{dir}, $self->{filename}); - - # Prime the pump by reading the first - # non-blank line - - # skip leading blank lines - while (readline($self->{FH})) { - last unless /^\s*$/; - } - - $self->{lastline} = $_; - $self->{lastline_no} = $.; -} - -sub QuoteArgs { - my $cmd = shift; - my @args = split /\s+/, $cmd; - $cmd = shift @args; - for (@args) { - $_ = q(").$_.q(") if !/^\"/ && length($_) > 0; - } - return join (' ', ($cmd, @args)); -} - -# code copied from CPAN::HandleConfig::safe_quote -# - that has doc saying leave if start/finish with same quote, but no code -# given text, will conditionally quote it to protect from shell -{ - my ($quote, $use_quote) = $^O eq 'MSWin32' - ? (q{"}, q{"}) - : (q{"'}, q{'}); - sub _safe_quote { - my ($self, $command) = @_; - # Set up quote/default quote - if (defined($command) - and $command =~ /\s/ - and $command !~ /[$quote]/) { - return qq{$use_quote$command$use_quote} - } - return $command; - } -} - -sub INCLUDE_COMMAND_handler { - my $self = shift; - $_ = shift; - # the rest of the current line should contain a valid command - - trim_whitespace($_); - - $_ = QuoteArgs($_) if $^O eq 'VMS'; - - $self->death("INCLUDE_COMMAND: command missing") - unless $_; - - $self->death("INCLUDE_COMMAND: pipes are illegal") - if /^\s*\|/ or /\|\s*$/; - - $self->PushXSStack( IsPipe => 1 ); - - $self->{FH} = Symbol::gensym(); - - # If $^X is used in INCLUDE_COMMAND, we know it's supposed to be - # the same perl interpreter as we're currently running - my $X = $self->_safe_quote($^X); # quotes if has spaces - s/^\s*\$\^X/$X/; - - # open the new file - open ($self->{FH}, "-|", $_) - or $self->death( $self, "Cannot run command '$_' to include its output: $!"); - - print Q(<<"EOF"); -# -#/* INCLUDE_COMMAND: Including output of '$_' from '$self->{filename}' */ -# -EOF - - $self->{filename} = $_; - $self->{filepathname} = $self->{filename}; - #$self->{filepathname} =~ s/\"/\\"/g; # Fails? See CPAN RT #53938: MinGW Broken after 2.21 - $self->{filepathname} =~ s/\\/\\\\/g; # Works according to reporter of #53938 - - # Prime the pump by reading the first - # non-blank line - - # skip leading blank lines - while (readline($self->{FH})) { - last unless /^\s*$/; - } - - $self->{lastline} = $_; - $self->{lastline_no} = $.; -} - -sub PopFile { - my $self = shift; - - return 0 unless $self->{XSStack}->[-1]{type} eq 'file'; - - my $data = pop @{ $self->{XSStack} }; - my $ThisFile = $self->{filename}; - my $isPipe = $data->{IsPipe}; - - --$self->{IncludedFiles}->{$self->{filename}} - unless $isPipe; - - close $self->{FH}; - - $self->{FH} = $data->{Handle}; - # $filename is the leafname, which for some reason is used for diagnostic - # messages, whereas $filepathname is the full pathname, and is used for - # #line directives. - $self->{filename} = $data->{Filename}; - $self->{filepathname} = $data->{Filepathname}; - $self->{lastline} = $data->{LastLine}; - $self->{lastline_no} = $data->{LastLineNo}; - @{ $self->{line} } = @{ $data->{Line} }; - @{ $self->{line_no} } = @{ $data->{LineNo} }; - - if ($isPipe and $? ) { - --$self->{lastline_no}; - print STDERR "Error reading from pipe '$ThisFile': $! in $self->{filename}, line $self->{lastline_no}\n" ; - exit 1; - } - - print Q(<<"EOF"); -# -#/* INCLUDE: Returning to '$self->{filename}' from '$ThisFile' */ -# -EOF - - return 1; -} - -sub Q { - my($text) = @_; - $text =~ s/^#//gm; - $text =~ s/\[\[/{/g; - $text =~ s/\]\]/}/g; - $text; -} - -# Process "MODULE = Foo ..." lines and update global state accordingly -sub _process_module_xs_line { - my ($self, $module, $pkg, $prefix) = @_; - - ($self->{Module_cname} = $module) =~ s/\W/_/g; - - $self->{Package} = defined($pkg) ? $pkg : ''; - $self->{Prefix} = quotemeta( defined($prefix) ? $prefix : '' ); - - ($self->{Packid} = $self->{Package}) =~ tr/:/_/; - - $self->{Packprefix} = $self->{Package}; - $self->{Packprefix} .= "::" if $self->{Packprefix} ne ""; - - $self->{lastline} = ""; -} - -# Skip any embedded POD sections -sub _maybe_skip_pod { - my ($self) = @_; - - while ($self->{lastline} =~ /^=/) { - while ($self->{lastline} = readline($self->{FH})) { - last if ($self->{lastline} =~ /^=cut\s*$/); - } - $self->death("Error: Unterminated pod") unless defined $self->{lastline}; - $self->{lastline} = readline($self->{FH}); - chomp $self->{lastline}; - $self->{lastline} =~ s/^\s+$//; - } -} - -# This chunk of code strips out (and parses) embedded TYPEMAP blocks -# which support a HEREdoc-alike block syntax. -sub _maybe_parse_typemap_block { - my ($self) = @_; - - # This is special cased from the usual paragraph-handler logic - # due to the HEREdoc-ish syntax. - if ($self->{lastline} =~ /^TYPEMAP\s*:\s*<<\s*(?:(["'])(.+?)\1|([^\s'"]+?))\s*;?\s*$/) - { - my $end_marker = quotemeta(defined($1) ? $2 : $3); - - # Scan until we find $end_marker alone on a line. - my @tmaplines; - while (1) { - $self->{lastline} = readline($self->{FH}); - $self->death("Error: Unterminated TYPEMAP section") if not defined $self->{lastline}; - last if $self->{lastline} =~ /^$end_marker\s*$/; - push @tmaplines, $self->{lastline}; - } - - my $tmap = ExtUtils::Typemaps->new( - string => join("", @tmaplines), - lineno_offset => 1 + ($self->current_line_number() || 0), - fake_filename => $self->{filename}, - ); - $self->{typemap}->merge(typemap => $tmap, replace => 1); - - $self->{lastline} = ""; - } -} - -# Read next xsub into @{ $self->{line} } from ($lastline, readline($self->{FH})). -sub fetch_para { - my $self = shift; - - # parse paragraph - $self->death("Error: Unterminated '#if/#ifdef/#ifndef'") - if !defined $self->{lastline} && $self->{XSStack}->[-1]{type} eq 'if'; - @{ $self->{line} } = (); - @{ $self->{line_no} } = (); - return $self->PopFile() if not defined $self->{lastline}; # EOF - - if ($self->{lastline} =~ - /^MODULE\s*=\s*([\w:]+)(?:\s+PACKAGE\s*=\s*([\w:]+))?(?:\s+PREFIX\s*=\s*(\S+))?\s*$/) - { - $self->_process_module_xs_line($1, $2, $3); - } - - for (;;) { - $self->_maybe_skip_pod; - - $self->_maybe_parse_typemap_block; - - if ($self->{lastline} !~ /^\s*#/ # not a CPP directive - # CPP directives: - # ANSI: if ifdef ifndef elif else endif define undef - # line error pragma - # gcc: warning include_next - # obj-c: import - # others: ident (gcc notes that some cpps have this one) - || $self->{lastline} =~ /^\#[ \t]* - (?: - (?:if|ifn?def|elif|else|endif| - define|undef|pragma|error| - warning|line\s+\d+|ident) - \b - | (?:include(?:_next)?|import) - \s* ["<] .* [>"] - ) - /x - ) - { - last if $self->{lastline} =~ /^\S/ && @{ $self->{line} } && $self->{line}->[-1] eq ""; - push(@{ $self->{line} }, $self->{lastline}); - push(@{ $self->{line_no} }, $self->{lastline_no}); - } - - # Read next line and continuation lines - last unless defined($self->{lastline} = readline($self->{FH})); - $self->{lastline_no} = $.; - my $tmp_line; - $self->{lastline} .= $tmp_line - while ($self->{lastline} =~ /\\$/ && defined($tmp_line = readline($self->{FH}))); - - chomp $self->{lastline}; - $self->{lastline} =~ s/^\s+$//; - } - - # Nuke trailing "line" entries until there's one that's not empty - pop(@{ $self->{line} }), pop(@{ $self->{line_no} }) - while @{ $self->{line} } && $self->{line}->[-1] eq ""; - - return 1; -} - -sub output_init { - my $self = shift; - my $argsref = shift; - - my ($type, $num, $var, $init, $printed_name) - = @{$argsref}{qw(type num var init printed_name)}; - - # local assign for efficiently passing in to eval_input_typemap_code - local $argsref->{arg} = $num - ? "ST(" . ($num-1) . ")" - : "/* not a parameter */"; - - if ( $init =~ /^=/ ) { - if ($printed_name) { - $self->eval_input_typemap_code(qq/print " $init\\n"/, $argsref); - } - else { - $self->eval_input_typemap_code(qq/print "\\t$var $init\\n"/, $argsref); - } - } - else { - if ( $init =~ s/^\+// && $num ) { - $self->generate_init( { - type => $type, - num => $num, - var => $var, - printed_name => $printed_name, - } ); - } - elsif ($printed_name) { - print ";\n"; - $init =~ s/^;//; - } - else { - $self->eval_input_typemap_code(qq/print "\\t$var;\\n"/, $argsref); - $init =~ s/^;//; - } - $self->{deferred} - .= $self->eval_input_typemap_code(qq/"\\n\\t$init\\n"/, $argsref); - } -} - -sub generate_init { - my $self = shift; - my $argsref = shift; - - my ($type, $num, $var, $printed_name) - = @{$argsref}{qw(type num var printed_name)}; - - my $argoff = $num - 1; - my $arg = "ST($argoff)"; - - my $typemaps = $self->{typemap}; - - $type = ExtUtils::Typemaps::tidy_type($type); - if (not $typemaps->get_typemap(ctype => $type)) { - $self->report_typemap_failure($typemaps, $type); - return; - } - - (my $ntype = $type) =~ s/\s*\*/Ptr/g; - (my $subtype = $ntype) =~ s/(?:Array)?(?:Ptr)?$//; - - my $typem = $typemaps->get_typemap(ctype => $type); - my $xstype = $typem->xstype; - #this is an optimization from perl 5.0 alpha 6, class check is skipped - #T_REF_IV_REF is missing since it has no untyped analog at the moment - $xstype =~ s/OBJ$/REF/ || $xstype =~ s/^T_REF_IV_PTR$/T_PTRREF/ - if $self->{func_name} =~ /DESTROY$/; - if ($xstype eq 'T_PV' and exists $self->{lengthof}->{$var}) { - print "\t$var" unless $printed_name; - print " = ($type)SvPV($arg, STRLEN_length_of_$var);\n"; - die "default value not supported with length(NAME) supplied" - if defined $self->{defaults}->{$var}; - return; - } - $type =~ tr/:/_/ unless $self->{RetainCplusplusHierarchicalTypes}; - - my $inputmap = $typemaps->get_inputmap(xstype => $xstype); - if (not defined $inputmap) { - $self->blurt("Error: No INPUT definition for type '$type', typekind '" . $type->xstype . "' found"); - return; - } - - my $expr = $inputmap->cleaned_code; - # Note: This gruesome bit either needs heavy rethinking or documentation. I vote for the former. --Steffen - if ($expr =~ /DO_ARRAY_ELEM/) { - my $subtypemap = $typemaps->get_typemap(ctype => $subtype); - if (not $subtypemap) { - $self->report_typemap_failure($typemaps, $subtype); - return; - } - - my $subinputmap = $typemaps->get_inputmap(xstype => $subtypemap->xstype); - if (not $subinputmap) { - $self->blurt("Error: No INPUT definition for type '$subtype', typekind '" . $subtypemap->xstype . "' found"); - return; - } - - my $subexpr = $subinputmap->cleaned_code; - $subexpr =~ s/\$type/\$subtype/g; - $subexpr =~ s/ntype/subtype/g; - $subexpr =~ s/\$arg/ST(ix_$var)/g; - $subexpr =~ s/\n\t/\n\t\t/g; - $subexpr =~ s/is not of (.*\")/[arg %d] is not of $1, ix_$var + 1/g; - $subexpr =~ s/\$var/${var}\[ix_$var - $argoff]/; - $expr =~ s/DO_ARRAY_ELEM/$subexpr/; - } - if ($expr =~ m#/\*.*scope.*\*/#i) { # "scope" in C comments - $self->{ScopeThisXSUB} = 1; - } - - my $eval_vars = { - var => $var, - printed_name => $printed_name, - type => $type, - ntype => $ntype, - subtype => $subtype, - num => $num, - arg => $arg, - argoff => $argoff, - }; - - if (defined($self->{defaults}->{$var})) { - $expr =~ s/(\t+)/$1 /g; - $expr =~ s/ /\t/g; - if ($printed_name) { - print ";\n"; - } - else { - $self->eval_input_typemap_code(qq/print "\\t$var;\\n"/, $eval_vars); - } - if ($self->{defaults}->{$var} eq 'NO_INIT') { - $self->{deferred} .= $self->eval_input_typemap_code( - qq/"\\n\\tif (items >= $num) {\\n$expr;\\n\\t}\\n"/, - $eval_vars - ); - } - else { - $self->{deferred} .= $self->eval_input_typemap_code( - qq/"\\n\\tif (items < $num)\\n\\t $var = $self->{defaults}->{$var};\\n\\telse {\\n$expr;\\n\\t}\\n"/, - $eval_vars - ); - } - } - elsif ($self->{ScopeThisXSUB} or $expr !~ /^\s*\$var =/) { - if ($printed_name) { - print ";\n"; - } - else { - $self->eval_input_typemap_code(qq/print "\\t$var;\\n"/, $eval_vars); - } - $self->{deferred} - .= $self->eval_input_typemap_code(qq/"\\n$expr;\\n"/, $eval_vars); - } - else { - die "panic: do not know how to handle this branch for function pointers" - if $printed_name; - $self->eval_input_typemap_code(qq/print "$expr;\\n"/, $eval_vars); - } -} - -sub generate_output { - my $self = shift; - my $argsref = shift; - my ($type, $num, $var, $do_setmagic, $do_push) - = @{$argsref}{qw(type num var do_setmagic do_push)}; - - my $arg = "ST(" . ($num - ($num != 0)) . ")"; - - my $typemaps = $self->{typemap}; - - $type = ExtUtils::Typemaps::tidy_type($type); - local $argsref->{type} = $type; - - if ($type =~ /^array\(([^,]*),(.*)\)/) { - print "\t$arg = sv_newmortal();\n"; - print "\tsv_setpvn($arg, (char *)$var, $2 * sizeof($1));\n"; - print "\tSvSETMAGIC($arg);\n" if $do_setmagic; - } - else { - my $typemap = $typemaps->get_typemap(ctype => $type); - if (not $typemap) { - $self->report_typemap_failure($typemaps, $type); - return; - } - - my $outputmap = $typemaps->get_outputmap(xstype => $typemap->xstype); - if (not $outputmap) { - $self->blurt("Error: No OUTPUT definition for type '$type', typekind '" . $typemap->xstype . "' found"); - return; - } - - (my $ntype = $type) =~ s/\s*\*/Ptr/g; - $ntype =~ s/\(\)//g; - (my $subtype = $ntype) =~ s/(?:Array)?(?:Ptr)?$//; - - my $eval_vars = {%$argsref, subtype => $subtype, ntype => $ntype, arg => $arg}; - my $expr = $outputmap->cleaned_code; - if ($expr =~ /DO_ARRAY_ELEM/) { - my $subtypemap = $typemaps->get_typemap(ctype => $subtype); - if (not $subtypemap) { - $self->report_typemap_failure($typemaps, $subtype); - return; - } - - my $suboutputmap = $typemaps->get_outputmap(xstype => $subtypemap->xstype); - if (not $suboutputmap) { - $self->blurt("Error: No OUTPUT definition for type '$subtype', typekind '" . $subtypemap->xstype . "' found"); - return; - } - - my $subexpr = $suboutputmap->cleaned_code; - $subexpr =~ s/ntype/subtype/g; - $subexpr =~ s/\$arg/ST(ix_$var)/g; - $subexpr =~ s/\$var/${var}\[ix_$var]/g; - $subexpr =~ s/\n\t/\n\t\t/g; - $expr =~ s/DO_ARRAY_ELEM\n/$subexpr/; - $self->eval_output_typemap_code("print qq\a$expr\a", $eval_vars); - print "\t\tSvSETMAGIC(ST(ix_$var));\n" if $do_setmagic; - } - elsif ($var eq 'RETVAL') { - my $orig_arg = $arg; - my $indent; - my $use_RETVALSV = 1; - my $do_mortal = 0; - my $do_copy_tmp = 1; - my $pre_expr; - local $eval_vars->{arg} = $arg = 'RETVALSV'; - my $evalexpr = $self->eval_output_typemap_code("qq\a$expr\a", $eval_vars); - - if ($expr =~ /^\t\Q$arg\E = new/) { - # We expect that $arg has refcnt 1, so we need to - # mortalize it. - $do_mortal = 1; - } - # If RETVAL is immortal, don't mortalize it. This code is not perfect: - # It won't detect a func or expression that only returns immortals, for - # example, this RE must be tried before next elsif. - elsif ($evalexpr =~ /^\t\Q$arg\E\s*=\s*(boolSV\(|(&PL_sv_yes|&PL_sv_no|&PL_sv_undef)\s*;)/) { - $do_copy_tmp = 0; #$arg will be a ST(X), no SV* RETVAL, no RETVALSV - $use_RETVALSV = 0; - } - elsif ($evalexpr =~ /^\s*\Q$arg\E\s*=/) { - # We expect that $arg has refcnt >=1, so we need - # to mortalize it! - $use_RETVALSV = 0 if $ntype eq "SVPtr";#reuse SV* RETVAL vs open new block - $do_mortal = 1; - } - else { - # Just hope that the entry would safely write it - # over an already mortalized value. By - # coincidence, something like $arg = &PL_sv_undef - # works too, but should be caught above. - $pre_expr = "RETVALSV = sv_newmortal();\n"; - # new mortals don't have set magic - $do_setmagic = 0; - } - if($use_RETVALSV) { - print "\t{\n\t SV * RETVALSV;\n"; - $indent = "\t "; - } else { - $indent = "\t"; - } - print $indent.$pre_expr if $pre_expr; - - if($use_RETVALSV) { - #take control of 1 layer of indent, may or may not indent more - $evalexpr =~ s/^(\t| )/$indent/gm; - #"\t \t" doesn't draw right in some IDEs - #break down all \t into spaces - $evalexpr =~ s/\t/ /g; - #rebuild back into \t'es, \t==8 spaces, indent==4 spaces - $evalexpr =~ s/ /\t/g; - } - else { - if($do_mortal || $do_setmagic) { - #typemap entry evaled with RETVALSV, if we aren't using RETVALSV replace - $evalexpr =~ s/RETVALSV/RETVAL/g; #all uses with RETVAL for prettier code - } - else { #if no extra boilerplate (no mortal, no set magic) is needed - #after $evalexport, get rid of RETVALSV's visual cluter and change - $evalexpr =~ s/RETVALSV/$orig_arg/g;#the lvalue to ST(X) - } - } - #stop " RETVAL = RETVAL;" for SVPtr type - print $evalexpr if $evalexpr !~ /^\s*RETVAL = RETVAL;$/; - print $indent.'RETVAL'.($use_RETVALSV ? 'SV':'') - .' = sv_2mortal(RETVAL'.($use_RETVALSV ? 'SV':'').");\n" if $do_mortal; - print $indent.'SvSETMAGIC(RETVAL'.($use_RETVALSV ? 'SV':'').");\n" if $do_setmagic; - #dont do "RETVALSV = boolSV(RETVAL); ST(0) = RETVALSV;", it is visual clutter - print $indent."$orig_arg = RETVAL".($use_RETVALSV ? 'SV':'').";\n" - if $do_mortal || $do_setmagic || $do_copy_tmp; - print "\t}\n" if $use_RETVALSV; - } - elsif ($do_push) { - print "\tPUSHs(sv_newmortal());\n"; - local $eval_vars->{arg} = "ST($num)"; - $self->eval_output_typemap_code("print qq\a$expr\a", $eval_vars); - print "\tSvSETMAGIC($arg);\n" if $do_setmagic; - } - elsif ($arg =~ /^ST\(\d+\)$/) { - $self->eval_output_typemap_code("print qq\a$expr\a", $eval_vars); - print "\tSvSETMAGIC($arg);\n" if $do_setmagic; - } - } -} - - -# Just delegates to a clean package. -# Shim to evaluate Perl code in the right variable context -# for typemap code (having things such as $ALIAS set up). -sub eval_output_typemap_code { - my ($self, $code, $other) = @_; - return ExtUtils::ParseXS::Eval::eval_output_typemap_code($self, $code, $other); -} - -sub eval_input_typemap_code { - my ($self, $code, $other) = @_; - return ExtUtils::ParseXS::Eval::eval_input_typemap_code($self, $code, $other); -} - -1; - -# vim: ts=2 sw=2 et: diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS.pod b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS.pod deleted file mode 100644 index 80bf13fd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS.pod +++ /dev/null @@ -1,177 +0,0 @@ -=head1 NAME - -ExtUtils::ParseXS - converts Perl XS code into C code - -=head1 SYNOPSIS - - use ExtUtils::ParseXS; - - my $pxs = ExtUtils::ParseXS->new; - $pxs->process_file( filename => 'foo.xs' ); - - $pxs->process_file( filename => 'foo.xs', - output => 'bar.c', - 'C++' => 1, - typemap => 'path/to/typemap', - hiertype => 1, - except => 1, - versioncheck => 1, - linenumbers => 1, - optimize => 1, - prototypes => 1, - ); - - # Legacy non-OO interface using a singleton: - use ExtUtils::ParseXS qw(process_file); - process_file( filename => 'foo.xs' ); - -=head1 DESCRIPTION - -C<ExtUtils::ParseXS> will compile XS code into C code by embedding the constructs -necessary to let C functions manipulate Perl values and creates the glue -necessary to let Perl access those functions. The compiler uses typemaps to -determine how to map C function parameters and variables to Perl values. - -The compiler will search for typemap files called I<typemap>. It will use -the following search path to find default typemaps, with the rightmost -typemap taking precedence. - - ../../../typemap:../../typemap:../typemap:typemap - -=head1 EXPORT - -None by default. C<process_file()> and/or C<report_error_count()> -may be exported upon request. Using the functional interface is -discouraged. - -=head1 METHODS - -=over 4 - -=item $pxs->new() - -Returns a new, empty XS parser/compiler object. - -=item $pxs->process_file() - -This method processes an XS file and sends output to a C file. -The method may be called as a function (this is the legacy -interface) and will then use a singleton as invocant. - -Named parameters control how the processing is done. -The following parameters are accepted: - -=over 4 - -=item B<C++> - -Adds C<extern "C"> to the C code. Default is false. - -=item B<hiertype> - -Retains C<::> in type names so that C++ hierarchical types can be -mapped. Default is false. - -=item B<except> - -Adds exception handling stubs to the C code. Default is false. - -=item B<typemap> - -Indicates that a user-supplied typemap should take precedence over the -default typemaps. A single typemap may be specified as a string, or -multiple typemaps can be specified in an array reference, with the -last typemap having the highest precedence. - -=item B<prototypes> - -Generates prototype code for all xsubs. Default is false. - -=item B<versioncheck> - -Makes sure at run time that the object file (derived from the C<.xs> -file) and the C<.pm> files have the same version number. Default is -true. - -=item B<linenumbers> - -Adds C<#line> directives to the C output so error messages will look -like they came from the original XS file. Default is true. - -=item B<optimize> - -Enables certain optimizations. The only optimization that is currently -affected is the use of I<target>s by the output C code (see L<perlguts>). -Not optimizing may significantly slow down the generated code, but this is the way -B<xsubpp> of 5.005 and earlier operated. Default is to optimize. - -=item B<inout> - -Enable recognition of C<IN>, C<OUT_LIST> and C<INOUT_LIST> -declarations. Default is true. - -=item B<argtypes> - -Enable recognition of ANSI-like descriptions of function signature. -Default is true. - -=item B<s> - -I<Maintainer note:> I have no clue what this does. Strips function prefixes? - -=back - -=item $pxs->report_error_count() - -This method returns the number of [a certain kind of] errors -encountered during processing of the XS file. - -The method may be called as a function (this is the legacy -interface) and will then use a singleton as invocant. - -=back - -=head1 AUTHOR - -Based on xsubpp code, written by Larry Wall. - -Maintained by: - -=over 4 - -=item * - -Ken Williams, <ken@mathforum.org> - -=item * - -David Golden, <dagolden@cpan.org> - -=item * - -James Keenan, <jkeenan@cpan.org> - -=item * - -Steffen Mueller, <smueller@cpan.org> - -=back - -=head1 COPYRIGHT - -Copyright 2002-2014 by Ken Williams, David Golden and other contributors. All -rights reserved. - -This library is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -Based on the C<ExtUtils::xsubpp> code by Larry Wall and the Perl 5 -Porters, which was released under the same license terms. - -=head1 SEE ALSO - -L<perl>, ExtUtils::xsubpp, ExtUtils::MakeMaker, L<perlxs>, L<perlxstut>. - -=cut - - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS/Constants.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS/Constants.pm deleted file mode 100644 index 2150fb84..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS/Constants.pm +++ /dev/null @@ -1,44 +0,0 @@ -package ExtUtils::ParseXS::Constants; -use strict; -use warnings; -use Symbol; - -our $VERSION = '3.35'; - -=head1 NAME - -ExtUtils::ParseXS::Constants - Initialization values for some globals - -=head1 SYNOPSIS - - use ExtUtils::ParseXS::Constants (); - - $PrototypeRegexp = $ExtUtils::ParseXS::Constants::PrototypeRegexp; - -=head1 DESCRIPTION - -Initialization of certain non-subroutine variables in ExtUtils::ParseXS and some of its -supporting packages has been moved into this package so that those values can -be defined exactly once and then re-used in any package. - -Nothing is exported. Use fully qualified variable names. - -=cut - -# FIXME: THESE ARE NOT CONSTANTS! -our @InitFileCode; - -# Note that to reduce maintenance, $PrototypeRegexp is used -# by ExtUtils::Typemaps, too! -our $PrototypeRegexp = "[" . quotemeta('\$%&*@;[]_') . "]"; -our @XSKeywords = qw( - REQUIRE BOOT CASE PREINIT INPUT INIT CODE PPCODE - OUTPUT CLEANUP ALIAS ATTRS PROTOTYPES PROTOTYPE - VERSIONCHECK INCLUDE INCLUDE_COMMAND SCOPE INTERFACE - INTERFACE_MACRO C_ARGS POSTCALL OVERLOAD FALLBACK - EXPORT_XSUB_SYMBOLS -); - -our $XSKeywordsAlternation = join('|', @XSKeywords); - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS/CountLines.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS/CountLines.pm deleted file mode 100644 index ad86b571..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS/CountLines.pm +++ /dev/null @@ -1,54 +0,0 @@ -package ExtUtils::ParseXS::CountLines; -use strict; - -our $VERSION = '3.35'; - -our $SECTION_END_MARKER; - -sub TIEHANDLE { - my ($class, $cfile, $fh) = @_; - $cfile =~ s/\\/\\\\/g; - $cfile =~ s/"/\\"/g; - $SECTION_END_MARKER = qq{#line --- "$cfile"}; - - return bless { - buffer => '', - fh => $fh, - line_no => 1, - }, $class; -} - -sub PRINT { - my $self = shift; - for (@_) { - $self->{buffer} .= $_; - while ($self->{buffer} =~ s/^([^\n]*\n)//) { - my $line = $1; - ++$self->{line_no}; - $line =~ s|^\#line\s+---(?=\s)|#line $self->{line_no}|; - print {$self->{fh}} $line; - } - } -} - -sub PRINTF { - my $self = shift; - my $fmt = shift; - $self->PRINT(sprintf($fmt, @_)); -} - -sub DESTROY { - # Not necessary if we're careful to end with a "\n" - my $self = shift; - print {$self->{fh}} $self->{buffer}; -} - -sub UNTIE { - # This sub does nothing, but is necessary for references to be released. -} - -sub end_marker { - return $SECTION_END_MARKER; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS/Eval.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS/Eval.pm deleted file mode 100644 index 6b06bf52..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS/Eval.pm +++ /dev/null @@ -1,97 +0,0 @@ -package ExtUtils::ParseXS::Eval; -use strict; -use warnings; - -our $VERSION = '3.35'; - -=head1 NAME - -ExtUtils::ParseXS::Eval - Clean package to evaluate code in - -=head1 SYNOPSIS - - use ExtUtils::ParseXS::Eval; - my $rv = ExtUtils::ParseXS::Eval::eval_typemap_code( - $parsexs_obj, "some Perl code" - ); - -=head1 SUBROUTINES - -=head2 $pxs->eval_output_typemap_code($typemapcode, $other_hashref) - -Sets up various bits of previously global state -(formerly ExtUtils::ParseXS package variables) -for eval'ing output typemap code that may refer to these -variables. - -Warns the contents of C<$@> if any. - -Not all these variables are necessarily considered "public" wrt. use in -typemaps, so beware. Variables set up from the ExtUtils::ParseXS object: - - $Package $Alias $func_name $Full_func_name $pname - -Variables set up from C<$other_hashref>: - - $var $type $ntype $subtype $arg - -=cut - -sub eval_output_typemap_code { - my ($_pxs, $_code, $_other) = @_; - - my ($Package, $ALIAS, $func_name, $Full_func_name, $pname) - = @{$_pxs}{qw(Package ALIAS func_name Full_func_name pname)}; - - my ($var, $type, $ntype, $subtype, $arg) - = @{$_other}{qw(var type ntype subtype arg)}; - - my $rv = eval $_code; - warn $@ if $@; - return $rv; -} - -=head2 $pxs->eval_input_typemap_code($typemapcode, $other_hashref) - -Sets up various bits of previously global state -(formerly ExtUtils::ParseXS package variables) -for eval'ing output typemap code that may refer to these -variables. - -Warns the contents of C<$@> if any. - -Not all these variables are necessarily considered "public" wrt. use in -typemaps, so beware. Variables set up from the ExtUtils::ParseXS object: - - $Package $Alias $func_name $Full_func_name $pname - -Variables set up from C<$other_hashref>: - - $var $type $ntype $subtype $num $init $printed_name $arg $argoff - -=cut - -sub eval_input_typemap_code { - my ($_pxs, $_code, $_other) = @_; - - my ($Package, $ALIAS, $func_name, $Full_func_name, $pname) - = @{$_pxs}{qw(Package ALIAS func_name Full_func_name pname)}; - - my ($var, $type, $num, $init, $printed_name, $arg, $ntype, $argoff, $subtype) - = @{$_other}{qw(var type num init printed_name arg ntype argoff subtype)}; - - my $rv = eval $_code; - warn $@ if $@; - return $rv; -} - -=head1 TODO - -Eventually, with better documentation and possible some cleanup, -this could be part of C<ExtUtils::Typemaps>. - -=cut - -1; - -# vim: ts=2 sw=2 et: diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS/Utilities.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS/Utilities.pm deleted file mode 100644 index bc1e0981..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/ParseXS/Utilities.pm +++ /dev/null @@ -1,821 +0,0 @@ -package ExtUtils::ParseXS::Utilities; -use strict; -use warnings; -use Exporter; -use File::Spec; -use ExtUtils::ParseXS::Constants (); - -our $VERSION = '3.35'; - -our (@ISA, @EXPORT_OK); -@ISA = qw(Exporter); -@EXPORT_OK = qw( - standard_typemap_locations - trim_whitespace - C_string - valid_proto_string - process_typemaps - map_type - standard_XS_defs - assign_func_args - analyze_preprocessor_statements - set_cond - Warn - current_line_number - blurt - death - check_conditional_preprocessor_statements - escape_file_for_line_directive - report_typemap_failure -); - -=head1 NAME - -ExtUtils::ParseXS::Utilities - Subroutines used with ExtUtils::ParseXS - -=head1 SYNOPSIS - - use ExtUtils::ParseXS::Utilities qw( - standard_typemap_locations - trim_whitespace - C_string - valid_proto_string - process_typemaps - map_type - standard_XS_defs - assign_func_args - analyze_preprocessor_statements - set_cond - Warn - blurt - death - check_conditional_preprocessor_statements - escape_file_for_line_directive - report_typemap_failure - ); - -=head1 SUBROUTINES - -The following functions are not considered to be part of the public interface. -They are documented here for the benefit of future maintainers of this module. - -=head2 C<standard_typemap_locations()> - -=over 4 - -=item * Purpose - -Provide a list of filepaths where F<typemap> files may be found. The -filepaths -- relative paths to files (not just directory paths) -- appear in this list in lowest-to-highest priority. - -The highest priority is to look in the current directory. - - 'typemap' - -The second and third highest priorities are to look in the parent of the -current directory and a directory called F<lib/ExtUtils> underneath the parent -directory. - - '../typemap', - '../lib/ExtUtils/typemap', - -The fourth through ninth highest priorities are to look in the corresponding -grandparent, great-grandparent and great-great-grandparent directories. - - '../../typemap', - '../../lib/ExtUtils/typemap', - '../../../typemap', - '../../../lib/ExtUtils/typemap', - '../../../../typemap', - '../../../../lib/ExtUtils/typemap', - -The tenth and subsequent priorities are to look in directories named -F<ExtUtils> which are subdirectories of directories found in C<@INC> -- -I<provided> a file named F<typemap> actually exists in such a directory. -Example: - - '/usr/local/lib/perl5/5.10.1/ExtUtils/typemap', - -However, these filepaths appear in the list returned by -C<standard_typemap_locations()> in reverse order, I<i.e.>, lowest-to-highest. - - '/usr/local/lib/perl5/5.10.1/ExtUtils/typemap', - '../../../../lib/ExtUtils/typemap', - '../../../../typemap', - '../../../lib/ExtUtils/typemap', - '../../../typemap', - '../../lib/ExtUtils/typemap', - '../../typemap', - '../lib/ExtUtils/typemap', - '../typemap', - 'typemap' - -=item * Arguments - - my @stl = standard_typemap_locations( \@INC ); - -Reference to C<@INC>. - -=item * Return Value - -Array holding list of directories to be searched for F<typemap> files. - -=back - -=cut - -SCOPE: { - my @tm_template; - - sub standard_typemap_locations { - my $include_ref = shift; - - if (not @tm_template) { - @tm_template = qw(typemap); - - my $updir = File::Spec->updir(); - foreach my $dir ( - File::Spec->catdir(($updir) x 1), - File::Spec->catdir(($updir) x 2), - File::Spec->catdir(($updir) x 3), - File::Spec->catdir(($updir) x 4), - ) { - unshift @tm_template, File::Spec->catfile($dir, 'typemap'); - unshift @tm_template, File::Spec->catfile($dir, lib => ExtUtils => 'typemap'); - } - } - - my @tm = @tm_template; - foreach my $dir (@{ $include_ref}) { - my $file = File::Spec->catfile($dir, ExtUtils => 'typemap'); - unshift @tm, $file if -e $file; - } - return @tm; - } -} # end SCOPE - -=head2 C<trim_whitespace()> - -=over 4 - -=item * Purpose - -Perform an in-place trimming of leading and trailing whitespace from the -first argument provided to the function. - -=item * Argument - - trim_whitespace($arg); - -=item * Return Value - -None. Remember: this is an I<in-place> modification of the argument. - -=back - -=cut - -sub trim_whitespace { - $_[0] =~ s/^\s+|\s+$//go; -} - -=head2 C<C_string()> - -=over 4 - -=item * Purpose - -Escape backslashes (C<\>) in prototype strings. - -=item * Arguments - - $ProtoThisXSUB = C_string($_); - -String needing escaping. - -=item * Return Value - -Properly escaped string. - -=back - -=cut - -sub C_string { - my($string) = @_; - - $string =~ s[\\][\\\\]g; - $string; -} - -=head2 C<valid_proto_string()> - -=over 4 - -=item * Purpose - -Validate prototype string. - -=item * Arguments - -String needing checking. - -=item * Return Value - -Upon success, returns the same string passed as argument. - -Upon failure, returns C<0>. - -=back - -=cut - -sub valid_proto_string { - my ($string) = @_; - - if ( $string =~ /^$ExtUtils::ParseXS::Constants::PrototypeRegexp+$/ ) { - return $string; - } - - return 0; -} - -=head2 C<process_typemaps()> - -=over 4 - -=item * Purpose - -Process all typemap files. - -=item * Arguments - - my $typemaps_object = process_typemaps( $args{typemap}, $pwd ); - -List of two elements: C<typemap> element from C<%args>; current working -directory. - -=item * Return Value - -Upon success, returns an L<ExtUtils::Typemaps> object. - -=back - -=cut - -sub process_typemaps { - my ($tmap, $pwd) = @_; - - my @tm = ref $tmap ? @{$tmap} : ($tmap); - - foreach my $typemap (@tm) { - die "Can't find $typemap in $pwd\n" unless -r $typemap; - } - - push @tm, standard_typemap_locations( \@INC ); - - require ExtUtils::Typemaps; - my $typemap = ExtUtils::Typemaps->new; - foreach my $typemap_loc (@tm) { - next unless -f $typemap_loc; - # skip directories, binary files etc. - warn("Warning: ignoring non-text typemap file '$typemap_loc'\n"), next - unless -T $typemap_loc; - - $typemap->merge(file => $typemap_loc, replace => 1); - } - - return $typemap; -} - -=head2 C<map_type()> - -=over 4 - -=item * Purpose - -Performs a mapping at several places inside C<PARAGRAPH> loop. - -=item * Arguments - - $type = map_type($self, $type, $varname); - -List of three arguments. - -=item * Return Value - -String holding augmented version of second argument. - -=back - -=cut - -sub map_type { - my ($self, $type, $varname) = @_; - - # C++ has :: in types too so skip this - $type =~ tr/:/_/ unless $self->{RetainCplusplusHierarchicalTypes}; - $type =~ s/^array\(([^,]*),(.*)\).*/$1 */s; - if ($varname) { - if ($type =~ / \( \s* \* (?= \s* \) ) /xg) { - (substr $type, pos $type, 0) = " $varname "; - } - else { - $type .= "\t$varname"; - } - } - return $type; -} - -=head2 C<standard_XS_defs()> - -=over 4 - -=item * Purpose - -Writes to the C<.c> output file certain preprocessor directives and function -headers needed in all such files. - -=item * Arguments - -None. - -=item * Return Value - -Returns true. - -=back - -=cut - -sub standard_XS_defs { - print <<"EOF"; -#ifndef PERL_UNUSED_VAR -# define PERL_UNUSED_VAR(var) if (0) var = var -#endif - -#ifndef dVAR -# define dVAR dNOOP -#endif - - -/* This stuff is not part of the API! You have been warned. */ -#ifndef PERL_VERSION_DECIMAL -# define PERL_VERSION_DECIMAL(r,v,s) (r*1000000 + v*1000 + s) -#endif -#ifndef PERL_DECIMAL_VERSION -# define PERL_DECIMAL_VERSION \\ - PERL_VERSION_DECIMAL(PERL_REVISION,PERL_VERSION,PERL_SUBVERSION) -#endif -#ifndef PERL_VERSION_GE -# define PERL_VERSION_GE(r,v,s) \\ - (PERL_DECIMAL_VERSION >= PERL_VERSION_DECIMAL(r,v,s)) -#endif -#ifndef PERL_VERSION_LE -# define PERL_VERSION_LE(r,v,s) \\ - (PERL_DECIMAL_VERSION <= PERL_VERSION_DECIMAL(r,v,s)) -#endif - -/* XS_INTERNAL is the explicit static-linkage variant of the default - * XS macro. - * - * XS_EXTERNAL is the same as XS_INTERNAL except it does not include - * "STATIC", ie. it exports XSUB symbols. You probably don't want that - * for anything but the BOOT XSUB. - * - * See XSUB.h in core! - */ - - -/* TODO: This might be compatible further back than 5.10.0. */ -#if PERL_VERSION_GE(5, 10, 0) && PERL_VERSION_LE(5, 15, 1) -# undef XS_EXTERNAL -# undef XS_INTERNAL -# if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING) -# define XS_EXTERNAL(name) __declspec(dllexport) XSPROTO(name) -# define XS_INTERNAL(name) STATIC XSPROTO(name) -# endif -# if defined(__SYMBIAN32__) -# define XS_EXTERNAL(name) EXPORT_C XSPROTO(name) -# define XS_INTERNAL(name) EXPORT_C STATIC XSPROTO(name) -# endif -# ifndef XS_EXTERNAL -# if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus) -# define XS_EXTERNAL(name) void name(pTHX_ CV* cv __attribute__unused__) -# define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__) -# else -# ifdef __cplusplus -# define XS_EXTERNAL(name) extern "C" XSPROTO(name) -# define XS_INTERNAL(name) static XSPROTO(name) -# else -# define XS_EXTERNAL(name) XSPROTO(name) -# define XS_INTERNAL(name) STATIC XSPROTO(name) -# endif -# endif -# endif -#endif - -/* perl >= 5.10.0 && perl <= 5.15.1 */ - - -/* The XS_EXTERNAL macro is used for functions that must not be static - * like the boot XSUB of a module. If perl didn't have an XS_EXTERNAL - * macro defined, the best we can do is assume XS is the same. - * Dito for XS_INTERNAL. - */ -#ifndef XS_EXTERNAL -# define XS_EXTERNAL(name) XS(name) -#endif -#ifndef XS_INTERNAL -# define XS_INTERNAL(name) XS(name) -#endif - -/* Now, finally, after all this mess, we want an ExtUtils::ParseXS - * internal macro that we're free to redefine for varying linkage due - * to the EXPORT_XSUB_SYMBOLS XS keyword. This is internal, use - * XS_EXTERNAL(name) or XS_INTERNAL(name) in your code if you need to! - */ - -#undef XS_EUPXS -#if defined(PERL_EUPXS_ALWAYS_EXPORT) -# define XS_EUPXS(name) XS_EXTERNAL(name) -#else - /* default to internal */ -# define XS_EUPXS(name) XS_INTERNAL(name) -#endif - -EOF - - print <<"EOF"; -#ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE -#define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params) - -/* prototype to pass -Wmissing-prototypes */ -STATIC void -S_croak_xs_usage(const CV *const cv, const char *const params); - -STATIC void -S_croak_xs_usage(const CV *const cv, const char *const params) -{ - const GV *const gv = CvGV(cv); - - PERL_ARGS_ASSERT_CROAK_XS_USAGE; - - if (gv) { - const char *const gvname = GvNAME(gv); - const HV *const stash = GvSTASH(gv); - const char *const hvname = stash ? HvNAME(stash) : NULL; - - if (hvname) - Perl_croak_nocontext("Usage: %s::%s(%s)", hvname, gvname, params); - else - Perl_croak_nocontext("Usage: %s(%s)", gvname, params); - } else { - /* Pants. I don't think that it should be possible to get here. */ - Perl_croak_nocontext("Usage: CODE(0x%" UVxf ")(%s)", PTR2UV(cv), params); - } -} -#undef PERL_ARGS_ASSERT_CROAK_XS_USAGE - -#define croak_xs_usage S_croak_xs_usage - -#endif - -/* NOTE: the prototype of newXSproto() is different in versions of perls, - * so we define a portable version of newXSproto() - */ -#ifdef newXS_flags -#define newXSproto_portable(name, c_impl, file, proto) newXS_flags(name, c_impl, file, proto, 0) -#else -#define newXSproto_portable(name, c_impl, file, proto) (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv) -#endif /* !defined(newXS_flags) */ - -#if PERL_VERSION_LE(5, 21, 5) -# define newXS_deffile(a,b) Perl_newXS(aTHX_ a,b,file) -#else -# define newXS_deffile(a,b) Perl_newXS_deffile(aTHX_ a,b) -#endif - -EOF - return 1; -} - -=head2 C<assign_func_args()> - -=over 4 - -=item * Purpose - -Perform assignment to the C<func_args> attribute. - -=item * Arguments - - $string = assign_func_args($self, $argsref, $class); - -List of three elements. Second is an array reference; third is a string. - -=item * Return Value - -String. - -=back - -=cut - -sub assign_func_args { - my ($self, $argsref, $class) = @_; - my @func_args = @{$argsref}; - shift @func_args if defined($class); - - for my $arg (@func_args) { - $arg =~ s/^/&/ if $self->{in_out}->{$arg}; - } - return join(", ", @func_args); -} - -=head2 C<analyze_preprocessor_statements()> - -=over 4 - -=item * Purpose - -Within each function inside each Xsub, print to the F<.c> output file certain -preprocessor statements. - -=item * Arguments - - ( $self, $XSS_work_idx, $BootCode_ref ) = - analyze_preprocessor_statements( - $self, $statement, $XSS_work_idx, $BootCode_ref - ); - -List of four elements. - -=item * Return Value - -Modifed values of three of the arguments passed to the function. In -particular, the C<XSStack> and C<InitFileCode> attributes are modified. - -=back - -=cut - -sub analyze_preprocessor_statements { - my ($self, $statement, $XSS_work_idx, $BootCode_ref) = @_; - - if ($statement eq 'if') { - $XSS_work_idx = @{ $self->{XSStack} }; - push(@{ $self->{XSStack} }, {type => 'if'}); - } - else { - $self->death("Error: '$statement' with no matching 'if'") - if $self->{XSStack}->[-1]{type} ne 'if'; - if ($self->{XSStack}->[-1]{varname}) { - push(@{ $self->{InitFileCode} }, "#endif\n"); - push(@{ $BootCode_ref }, "#endif"); - } - - my(@fns) = keys %{$self->{XSStack}->[-1]{functions}}; - if ($statement ne 'endif') { - # Hide the functions defined in other #if branches, and reset. - @{$self->{XSStack}->[-1]{other_functions}}{@fns} = (1) x @fns; - @{$self->{XSStack}->[-1]}{qw(varname functions)} = ('', {}); - } - else { - my($tmp) = pop(@{ $self->{XSStack} }); - 0 while (--$XSS_work_idx - && $self->{XSStack}->[$XSS_work_idx]{type} ne 'if'); - # Keep all new defined functions - push(@fns, keys %{$tmp->{other_functions}}); - @{$self->{XSStack}->[$XSS_work_idx]{functions}}{@fns} = (1) x @fns; - } - } - return ($self, $XSS_work_idx, $BootCode_ref); -} - -=head2 C<set_cond()> - -=over 4 - -=item * Purpose - -=item * Arguments - -=item * Return Value - -=back - -=cut - -sub set_cond { - my ($ellipsis, $min_args, $num_args) = @_; - my $cond; - if ($ellipsis) { - $cond = ($min_args ? qq(items < $min_args) : 0); - } - elsif ($min_args == $num_args) { - $cond = qq(items != $min_args); - } - else { - $cond = qq(items < $min_args || items > $num_args); - } - return $cond; -} - -=head2 C<current_line_number()> - -=over 4 - -=item * Purpose - -Figures out the current line number in the XS file. - -=item * Arguments - -C<$self> - -=item * Return Value - -The current line number. - -=back - -=cut - -sub current_line_number { - my $self = shift; - my $line_number = $self->{line_no}->[@{ $self->{line_no} } - @{ $self->{line} } -1]; - return $line_number; -} - -=head2 C<Warn()> - -=over 4 - -=item * Purpose - -=item * Arguments - -=item * Return Value - -=back - -=cut - -sub Warn { - my $self = shift; - my $warn_line_number = $self->current_line_number(); - print STDERR "@_ in $self->{filename}, line $warn_line_number\n"; -} - -=head2 C<blurt()> - -=over 4 - -=item * Purpose - -=item * Arguments - -=item * Return Value - -=back - -=cut - -sub blurt { - my $self = shift; - $self->Warn(@_); - $self->{errors}++ -} - -=head2 C<death()> - -=over 4 - -=item * Purpose - -=item * Arguments - -=item * Return Value - -=back - -=cut - -sub death { - my $self = shift; - $self->Warn(@_); - exit 1; -} - -=head2 C<check_conditional_preprocessor_statements()> - -=over 4 - -=item * Purpose - -=item * Arguments - -=item * Return Value - -=back - -=cut - -sub check_conditional_preprocessor_statements { - my ($self) = @_; - my @cpp = grep(/^\#\s*(?:if|e\w+)/, @{ $self->{line} }); - if (@cpp) { - my $cpplevel; - for my $cpp (@cpp) { - if ($cpp =~ /^\#\s*if/) { - $cpplevel++; - } - elsif (!$cpplevel) { - $self->Warn("Warning: #else/elif/endif without #if in this function"); - print STDERR " (precede it with a blank line if the matching #if is outside the function)\n" - if $self->{XSStack}->[-1]{type} eq 'if'; - return; - } - elsif ($cpp =~ /^\#\s*endif/) { - $cpplevel--; - } - } - $self->Warn("Warning: #if without #endif in this function") if $cpplevel; - } -} - -=head2 C<escape_file_for_line_directive()> - -=over 4 - -=item * Purpose - -Escapes a given code source name (typically a file name but can also -be a command that was read from) so that double-quotes and backslashes are escaped. - -=item * Arguments - -A string. - -=item * Return Value - -A string with escapes for double-quotes and backslashes. - -=back - -=cut - -sub escape_file_for_line_directive { - my $string = shift; - $string =~ s/\\/\\\\/g; - $string =~ s/"/\\"/g; - return $string; -} - -=head2 C<report_typemap_failure> - -=over 4 - -=item * Purpose - -Do error reporting for missing typemaps. - -=item * Arguments - -The C<ExtUtils::ParseXS> object. - -An C<ExtUtils::Typemaps> object. - -The string that represents the C type that was not found in the typemap. - -Optionally, the string C<death> or C<blurt> to choose -whether the error is immediately fatal or not. Default: C<blurt> - -=item * Return Value - -Returns nothing. Depending on the arguments, this -may call C<death> or C<blurt>, the former of which is -fatal. - -=back - -=cut - -sub report_typemap_failure { - my ($self, $tm, $ctype, $error_method) = @_; - $error_method ||= 'blurt'; - - my @avail_ctypes = $tm->list_mapped_ctypes; - - my $err = "Could not find a typemap for C type '$ctype'.\n" - . "The following C types are mapped by the current typemap:\n'" - . join("', '", @avail_ctypes) . "'\n"; - - $self->$error_method($err); - return(); -} - -1; - -# vim: ts=2 sw=2 et: diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/Basic.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/Basic.pm deleted file mode 100644 index fb89da16..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/Basic.pm +++ /dev/null @@ -1,42 +0,0 @@ -package ExtUtils::Typemap::Basic; -use strict; -use warnings; -use ExtUtils::Typemaps; -use ExtUtils::Typemaps::Basic; - -our $VERSION = '1.05'; - -our @ISA = qw(ExtUtils::Typemaps::Basic); - -=head1 NAME - -ExtUtils::Typemap::Basic - A set of typemaps for simple types - -=head1 SYNOPSIS - -This module had to be renamed. Use L<ExtUtils::Typemaps::Basic> instead! - -=head1 DESCRIPTION - -This module had to be renamed. Use L<ExtUtils::Typemaps::Basic> instead! - -=head1 SEE ALSO - -L<ExtUtils::Typemaps::Basic> - -L<ExtUtils::Typemap>, L<ExtUtils::Typemaps> - -=head1 AUTHOR - -Steffen Mueller <smueller@cpan.org> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2010, 2011, 2012, 2013 by Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/Default.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/Default.pm deleted file mode 100644 index 9d6bd7c4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/Default.pm +++ /dev/null @@ -1,42 +0,0 @@ -package ExtUtils::Typemap::Default; -use strict; -use warnings; -use ExtUtils::Typemaps; -use ExtUtils::Typemaps::Default; - -our $VERSION = '1.05'; - -our @ISA = qw(ExtUtils::Typemaps::Default); - -=head1 NAME - -ExtUtils::Typemap::Default - A set of useful typemaps - -=head1 SYNOPSIS - -This module had to be renamed. Use L<ExtUtils::Typemaps::Default> instead! - -=head1 DESCRIPTION - -This module had to be renamed. Use L<ExtUtils::Typemaps::Default> instead! - -=head1 SEE ALSO - -L<ExtUtils::Typemaps::Default> - -L<ExtUtils::Typemap>, L<ExtUtils::Typemaps> - -=head1 AUTHOR - -Steffen Mueller <smueller@cpan.org> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2010, 2011, 2012, 2013 by Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/ObjectMap.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/ObjectMap.pm deleted file mode 100644 index 3c735e15..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/ObjectMap.pm +++ /dev/null @@ -1,42 +0,0 @@ -package ExtUtils::Typemap::ObjectMap; -use strict; -use warnings; -use ExtUtils::Typemaps; -use ExtUtils::Typemaps::ObjectMap; - -our $VERSION = '1.05'; - -our @ISA = qw(ExtUtils::Typemaps::ObjectMap); - -=head1 NAME - -ExtUtils::Typemap::ObjectMap - A set of typemaps for opaque C/C++ objects - -=head1 SYNOPSIS - -This module had to be renamed. Use L<ExtUtils::Typemaps::ObjectMap> instead! - -=head1 DESCRIPTION - -This module had to be renamed. Use L<ExtUtils::Typemaps::ObjectMap> instead! - -=head1 SEE ALSO - -L<ExtUtils::Typemaps::ObjectMap> - -L<ExtUtils::Typemap>, L<ExtUtils::Typemaps> - -=head1 AUTHOR - -Steffen Mueller <smueller@cpan.org> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2010, 2011, 2012, 2013 by Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/STL.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/STL.pm deleted file mode 100644 index 255269a5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/STL.pm +++ /dev/null @@ -1,42 +0,0 @@ -package ExtUtils::Typemap::STL; -use strict; -use warnings; -use ExtUtils::Typemaps; -use ExtUtils::Typemaps::STL; - -our $VERSION = '1.05'; - -our @ISA = qw(ExtUtils::Typemaps::STL); - -=head1 NAME - -ExtUtils::Typemap::STL - A set of useful typemaps for STL - -=head1 SYNOPSIS - -This module had to be renamed. Use L<ExtUtils::Typemaps::STL> instead! - -=head1 DESCRIPTION - -This module had to be renamed. Use L<ExtUtils::Typemaps::STL> instead! - -=head1 SEE ALSO - -L<ExtUtils::Typemaps::STL> - -L<ExtUtils::Typemap>, L<ExtUtils::Typemaps> - -=head1 AUTHOR - -Steffen Mueller <smueller@cpan.org> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2010, 2011, 2012, 2013 by Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/STL/String.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/STL/String.pm deleted file mode 100644 index e6d5ada5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/STL/String.pm +++ /dev/null @@ -1,42 +0,0 @@ -package ExtUtils::Typemap::STL::String; -use strict; -use warnings; -use ExtUtils::Typemaps; -use ExtUtils::Typemaps::STL::String; - -our $VERSION = '1.05'; - -our @ISA = qw(ExtUtils::Typemaps::STL::String); - -=head1 NAME - -ExtUtils::Typemap::STL::String - A set of typemaps for STL std::strings - -=head1 SYNOPSIS - -This module had to be renamed. Use L<ExtUtils::Typemaps::STL::String> instead! - -=head1 DESCRIPTION - -This module had to be renamed. Use L<ExtUtils::Typemaps::STL::String> instead! - -=head1 SEE ALSO - -L<ExtUtils::Typemaps::STL::String> - -L<ExtUtils::Typemap>, L<ExtUtils::Typemaps> - -=head1 AUTHOR - -Steffen Mueller <smueller@cpan.org> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2010, 2011, 2012, 2013 by Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/STL/Vector.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/STL/Vector.pm deleted file mode 100644 index ff2497f9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemap/STL/Vector.pm +++ /dev/null @@ -1,42 +0,0 @@ -package ExtUtils::Typemap::STL::Vector; -use strict; -use warnings; -use ExtUtils::Typemaps; -use ExtUtils::Typemaps::STL::Vector; - -our $VERSION = '1.05'; - -our @ISA = qw(ExtUtils::Typemaps::STL::Vector); - -=head1 NAME - -ExtUtils::Typemap::STL::Vector - A set of typemaps for STL std::vectors - -=head1 SYNOPSIS - -This module had to be renamed. Use L<ExtUtils::Typemaps::STL::Vector> instead! - -=head1 DESCRIPTION - -This module had to be renamed. Use L<ExtUtils::Typemaps::STL::Vector> instead! - -=head1 SEE ALSO - -L<ExtUtils::Typemaps::STL::Vector> - -L<ExtUtils::Typemap>, L<ExtUtils::Typemaps> - -=head1 AUTHOR - -Steffen Mueller <smueller@cpan.org> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2010, 2011, 2012, 2013 by Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps.pm deleted file mode 100644 index 992d15be..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps.pm +++ /dev/null @@ -1,1091 +0,0 @@ -package ExtUtils::Typemaps; -use 5.006001; -use strict; -use warnings; -our $VERSION = '3.35'; - -require ExtUtils::ParseXS; -require ExtUtils::ParseXS::Constants; -require ExtUtils::Typemaps::InputMap; -require ExtUtils::Typemaps::OutputMap; -require ExtUtils::Typemaps::Type; - -=head1 NAME - -ExtUtils::Typemaps - Read/Write/Modify Perl/XS typemap files - -=head1 SYNOPSIS - - # read/create file - my $typemap = ExtUtils::Typemaps->new(file => 'typemap'); - # alternatively create an in-memory typemap - # $typemap = ExtUtils::Typemaps->new(); - # alternatively create an in-memory typemap by parsing a string - # $typemap = ExtUtils::Typemaps->new(string => $sometypemap); - - # add a mapping - $typemap->add_typemap(ctype => 'NV', xstype => 'T_NV'); - $typemap->add_inputmap( - xstype => 'T_NV', code => '$var = ($type)SvNV($arg);' - ); - $typemap->add_outputmap( - xstype => 'T_NV', code => 'sv_setnv($arg, (NV)$var);' - ); - $typemap->add_string(string => $typemapstring); - # will be parsed and merged - - # remove a mapping (same for remove_typemap and remove_outputmap...) - $typemap->remove_inputmap(xstype => 'SomeType'); - - # save a typemap to a file - $typemap->write(file => 'anotherfile.map'); - - # merge the other typemap into this one - $typemap->merge(typemap => $another_typemap); - -=head1 DESCRIPTION - -This module can read, modify, create and write Perl XS typemap files. If you don't know -what a typemap is, please confer the L<perlxstut> and L<perlxs> manuals. - -The module is not entirely round-trip safe: For example it currently simply strips all comments. -The order of entries in the maps is, however, preserved. - -We check for duplicate entries in the typemap, but do not check for missing -C<TYPEMAP> entries for C<INPUTMAP> or C<OUTPUTMAP> entries since these might be hidden -in a different typemap. - -=head1 METHODS - -=cut - -=head2 new - -Returns a new typemap object. Takes an optional C<file> parameter. -If set, the given file will be read. If the file doesn't exist, an empty typemap -is returned. - -Alternatively, if the C<string> parameter is given, the supplied -string will be parsed instead of a file. - -=cut - -sub new { - my $class = shift; - my %args = @_; - - if (defined $args{file} and defined $args{string}) { - die("Cannot handle both 'file' and 'string' arguments to constructor"); - } - - my $self = bless { - file => undef, - %args, - typemap_section => [], - typemap_lookup => {}, - input_section => [], - input_lookup => {}, - output_section => [], - output_lookup => {}, - } => $class; - - $self->_init(); - - return $self; -} - -sub _init { - my $self = shift; - if (defined $self->{string}) { - $self->_parse(\($self->{string}), $self->{lineno_offset}, $self->{fake_filename}); - delete $self->{string}; - } - elsif (defined $self->{file} and -e $self->{file}) { - open my $fh, '<', $self->{file} - or die "Cannot open typemap file '" - . $self->{file} . "' for reading: $!"; - local $/ = undef; - my $string = <$fh>; - $self->_parse(\$string, $self->{lineno_offset}, $self->{file}); - } -} - - -=head2 file - -Get/set the file that the typemap is written to when the -C<write> method is called. - -=cut - -sub file { - $_[0]->{file} = $_[1] if @_ > 1; - $_[0]->{file} -} - -=head2 add_typemap - -Add a C<TYPEMAP> entry to the typemap. - -Required named arguments: The C<ctype> (e.g. C<ctype =E<gt> 'double'>) -and the C<xstype> (e.g. C<xstype =E<gt> 'T_NV'>). - -Optional named arguments: C<replace =E<gt> 1> forces removal/replacement of -existing C<TYPEMAP> entries of the same C<ctype>. C<skip =E<gt> 1> -triggers a I<"first come first serve"> logic by which new entries that conflict -with existing entries are silently ignored. - -As an alternative to the named parameters usage, you may pass in -an C<ExtUtils::Typemaps::Type> object as first argument, a copy of which will be -added to the typemap. In that case, only the C<replace> or C<skip> named parameters -may be used after the object. Example: - - $map->add_typemap($type_obj, replace => 1); - -=cut - -sub add_typemap { - my $self = shift; - my $type; - my %args; - - if ((@_ % 2) == 1) { - my $orig = shift; - $type = $orig->new(); - %args = @_; - } - else { - %args = @_; - my $ctype = $args{ctype}; - die("Need ctype argument") if not defined $ctype; - my $xstype = $args{xstype}; - die("Need xstype argument") if not defined $xstype; - - $type = ExtUtils::Typemaps::Type->new( - xstype => $xstype, - 'prototype' => $args{'prototype'}, - ctype => $ctype, - ); - } - - if ($args{skip} and $args{replace}) { - die("Cannot use both 'skip' and 'replace'"); - } - - if ($args{replace}) { - $self->remove_typemap(ctype => $type->ctype); - } - elsif ($args{skip}) { - return() if exists $self->{typemap_lookup}{$type->ctype}; - } - else { - $self->validate(typemap_xstype => $type->xstype, ctype => $type->ctype); - } - - # store - push @{$self->{typemap_section}}, $type; - # remember type for lookup, too. - $self->{typemap_lookup}{$type->tidy_ctype} = $#{$self->{typemap_section}}; - - return 1; -} - -=head2 add_inputmap - -Add an C<INPUT> entry to the typemap. - -Required named arguments: -The C<xstype> (e.g. C<xstype =E<gt> 'T_NV'>) -and the C<code> to associate with it for input. - -Optional named arguments: C<replace =E<gt> 1> forces removal/replacement of -existing C<INPUT> entries of the same C<xstype>. C<skip =E<gt> 1> -triggers a I<"first come first serve"> logic by which new entries that conflict -with existing entries are silently ignored. - -As an alternative to the named parameters usage, you may pass in -an C<ExtUtils::Typemaps::InputMap> object as first argument, a copy of which will be -added to the typemap. In that case, only the C<replace> or C<skip> named parameters -may be used after the object. Example: - - $map->add_inputmap($type_obj, replace => 1); - -=cut - -sub add_inputmap { - my $self = shift; - my $input; - my %args; - - if ((@_ % 2) == 1) { - my $orig = shift; - $input = $orig->new(); - %args = @_; - } - else { - %args = @_; - my $xstype = $args{xstype}; - die("Need xstype argument") if not defined $xstype; - my $code = $args{code}; - die("Need code argument") if not defined $code; - - $input = ExtUtils::Typemaps::InputMap->new( - xstype => $xstype, - code => $code, - ); - } - - if ($args{skip} and $args{replace}) { - die("Cannot use both 'skip' and 'replace'"); - } - - if ($args{replace}) { - $self->remove_inputmap(xstype => $input->xstype); - } - elsif ($args{skip}) { - return() if exists $self->{input_lookup}{$input->xstype}; - } - else { - $self->validate(inputmap_xstype => $input->xstype); - } - - # store - push @{$self->{input_section}}, $input; - # remember type for lookup, too. - $self->{input_lookup}{$input->xstype} = $#{$self->{input_section}}; - - return 1; -} - -=head2 add_outputmap - -Add an C<OUTPUT> entry to the typemap. -Works exactly the same as C<add_inputmap>. - -=cut - -sub add_outputmap { - my $self = shift; - my $output; - my %args; - - if ((@_ % 2) == 1) { - my $orig = shift; - $output = $orig->new(); - %args = @_; - } - else { - %args = @_; - my $xstype = $args{xstype}; - die("Need xstype argument") if not defined $xstype; - my $code = $args{code}; - die("Need code argument") if not defined $code; - - $output = ExtUtils::Typemaps::OutputMap->new( - xstype => $xstype, - code => $code, - ); - } - - if ($args{skip} and $args{replace}) { - die("Cannot use both 'skip' and 'replace'"); - } - - if ($args{replace}) { - $self->remove_outputmap(xstype => $output->xstype); - } - elsif ($args{skip}) { - return() if exists $self->{output_lookup}{$output->xstype}; - } - else { - $self->validate(outputmap_xstype => $output->xstype); - } - - # store - push @{$self->{output_section}}, $output; - # remember type for lookup, too. - $self->{output_lookup}{$output->xstype} = $#{$self->{output_section}}; - - return 1; -} - -=head2 add_string - -Parses a string as a typemap and merge it into the typemap object. - -Required named argument: C<string> to specify the string to parse. - -=cut - -sub add_string { - my $self = shift; - my %args = @_; - die("Need 'string' argument") if not defined $args{string}; - - # no, this is not elegant. - my $other = ExtUtils::Typemaps->new(string => $args{string}); - $self->merge(typemap => $other); -} - -=head2 remove_typemap - -Removes a C<TYPEMAP> entry from the typemap. - -Required named argument: C<ctype> to specify the entry to remove from the typemap. - -Alternatively, you may pass a single C<ExtUtils::Typemaps::Type> object. - -=cut - -sub remove_typemap { - my $self = shift; - my $ctype; - if (@_ > 1) { - my %args = @_; - $ctype = $args{ctype}; - die("Need ctype argument") if not defined $ctype; - $ctype = tidy_type($ctype); - } - else { - $ctype = $_[0]->tidy_ctype; - } - - return $self->_remove($ctype, $self->{typemap_section}, $self->{typemap_lookup}); -} - -=head2 remove_inputmap - -Removes an C<INPUT> entry from the typemap. - -Required named argument: C<xstype> to specify the entry to remove from the typemap. - -Alternatively, you may pass a single C<ExtUtils::Typemaps::InputMap> object. - -=cut - -sub remove_inputmap { - my $self = shift; - my $xstype; - if (@_ > 1) { - my %args = @_; - $xstype = $args{xstype}; - die("Need xstype argument") if not defined $xstype; - } - else { - $xstype = $_[0]->xstype; - } - - return $self->_remove($xstype, $self->{input_section}, $self->{input_lookup}); -} - -=head2 remove_inputmap - -Removes an C<OUTPUT> entry from the typemap. - -Required named argument: C<xstype> to specify the entry to remove from the typemap. - -Alternatively, you may pass a single C<ExtUtils::Typemaps::OutputMap> object. - -=cut - -sub remove_outputmap { - my $self = shift; - my $xstype; - if (@_ > 1) { - my %args = @_; - $xstype = $args{xstype}; - die("Need xstype argument") if not defined $xstype; - } - else { - $xstype = $_[0]->xstype; - } - - return $self->_remove($xstype, $self->{output_section}, $self->{output_lookup}); -} - -sub _remove { - my $self = shift; - my $rm = shift; - my $array = shift; - my $lookup = shift; - - # Just fetch the index of the item from the lookup table - my $index = $lookup->{$rm}; - return() if not defined $index; - - # Nuke the item from storage - splice(@$array, $index, 1); - - # Decrement the storage position of all items thereafter - foreach my $key (keys %$lookup) { - if ($lookup->{$key} > $index) { - $lookup->{$key}--; - } - } - return(); -} - -=head2 get_typemap - -Fetches an entry of the TYPEMAP section of the typemap. - -Mandatory named arguments: The C<ctype> of the entry. - -Returns the C<ExtUtils::Typemaps::Type> -object for the entry if found. - -=cut - -sub get_typemap { - my $self = shift; - die("Need named parameters, got uneven number") if @_ % 2; - - my %args = @_; - my $ctype = $args{ctype}; - die("Need ctype argument") if not defined $ctype; - $ctype = tidy_type($ctype); - - my $index = $self->{typemap_lookup}{$ctype}; - return() if not defined $index; - return $self->{typemap_section}[$index]; -} - -=head2 get_inputmap - -Fetches an entry of the INPUT section of the -typemap. - -Mandatory named arguments: The C<xstype> of the -entry or the C<ctype> of the typemap that can be used to find -the C<xstype>. To wit, the following pieces of code -are equivalent: - - my $type = $typemap->get_typemap(ctype => $ctype) - my $input_map = $typemap->get_inputmap(xstype => $type->xstype); - - my $input_map = $typemap->get_inputmap(ctype => $ctype); - -Returns the C<ExtUtils::Typemaps::InputMap> -object for the entry if found. - -=cut - -sub get_inputmap { - my $self = shift; - die("Need named parameters, got uneven number") if @_ % 2; - - my %args = @_; - my $xstype = $args{xstype}; - my $ctype = $args{ctype}; - die("Need xstype or ctype argument") - if not defined $xstype - and not defined $ctype; - die("Need xstype OR ctype arguments, not both") - if defined $xstype and defined $ctype; - - if (defined $ctype) { - my $tm = $self->get_typemap(ctype => $ctype); - $xstype = $tm && $tm->xstype; - return() if not defined $xstype; - } - - my $index = $self->{input_lookup}{$xstype}; - return() if not defined $index; - return $self->{input_section}[$index]; -} - -=head2 get_outputmap - -Fetches an entry of the OUTPUT section of the -typemap. - -Mandatory named arguments: The C<xstype> of the -entry or the C<ctype> of the typemap that can be used to -resolve the C<xstype>. (See above for an example.) - -Returns the C<ExtUtils::Typemaps::InputMap> -object for the entry if found. - -=cut - -sub get_outputmap { - my $self = shift; - die("Need named parameters, got uneven number") if @_ % 2; - - my %args = @_; - my $xstype = $args{xstype}; - my $ctype = $args{ctype}; - die("Need xstype or ctype argument") - if not defined $xstype - and not defined $ctype; - die("Need xstype OR ctype arguments, not both") - if defined $xstype and defined $ctype; - - if (defined $ctype) { - my $tm = $self->get_typemap(ctype => $ctype); - $xstype = $tm && $tm->xstype; - return() if not defined $xstype; - } - - my $index = $self->{output_lookup}{$xstype}; - return() if not defined $index; - return $self->{output_section}[$index]; -} - -=head2 write - -Write the typemap to a file. Optionally takes a C<file> argument. If given, the -typemap will be written to the specified file. If not, the typemap is written -to the currently stored file name (see L</file> above, this defaults to the file -it was read from if any). - -=cut - -sub write { - my $self = shift; - my %args = @_; - my $file = defined $args{file} ? $args{file} : $self->file(); - die("write() needs a file argument (or set the file name of the typemap using the 'file' method)") - if not defined $file; - - open my $fh, '>', $file - or die "Cannot open typemap file '$file' for writing: $!"; - print $fh $self->as_string(); - close $fh; -} - -=head2 as_string - -Generates and returns the string form of the typemap. - -=cut - -sub as_string { - my $self = shift; - my $typemap = $self->{typemap_section}; - my @code; - push @code, "TYPEMAP\n"; - foreach my $entry (@$typemap) { - # type kind proto - # /^(.*?\S)\s+(\S+)\s*($ExtUtils::ParseXS::Constants::PrototypeRegexp*)$/o - push @code, $entry->ctype . "\t" . $entry->xstype - . ($entry->proto ne '' ? "\t".$entry->proto : '') . "\n"; - } - - my $input = $self->{input_section}; - if (@$input) { - push @code, "\nINPUT\n"; - foreach my $entry (@$input) { - push @code, $entry->xstype, "\n", $entry->code, "\n"; - } - } - - my $output = $self->{output_section}; - if (@$output) { - push @code, "\nOUTPUT\n"; - foreach my $entry (@$output) { - push @code, $entry->xstype, "\n", $entry->code, "\n"; - } - } - return join '', @code; -} - -=head2 as_embedded_typemap - -Generates and returns the string form of the typemap with the -appropriate prefix around it for verbatim inclusion into an -XS file as an embedded typemap. This will return a string like - - TYPEMAP: <<END_OF_TYPEMAP - ... typemap here (see as_string) ... - END_OF_TYPEMAP - -The method takes care not to use a HERE-doc end marker that -appears in the typemap string itself. - -=cut - -sub as_embedded_typemap { - my $self = shift; - my $string = $self->as_string; - - my @ident_cand = qw(END_TYPEMAP END_OF_TYPEMAP END); - my $icand = 0; - my $cand_suffix = ""; - while ($string =~ /^\Q$ident_cand[$icand]$cand_suffix\E\s*$/m) { - $icand++; - if ($icand == @ident_cand) { - $icand = 0; - ++$cand_suffix; - } - } - - my $marker = "$ident_cand[$icand]$cand_suffix"; - return "TYPEMAP: <<$marker;\n$string\n$marker\n"; -} - -=head2 merge - -Merges a given typemap into the object. Note that a failed merge -operation leaves the object in an inconsistent state so clone it if necessary. - -Mandatory named arguments: Either C<typemap =E<gt> $another_typemap_obj> -or C<file =E<gt> $path_to_typemap_file> but not both. - -Optional arguments: C<replace =E<gt> 1> to force replacement -of existing typemap entries without warning or C<skip =E<gt> 1> -to skip entries that exist already in the typemap. - -=cut - -sub merge { - my $self = shift; - my %args = @_; - - if (exists $args{typemap} and exists $args{file}) { - die("Need {file} OR {typemap} argument. Not both!"); - } - elsif (not exists $args{typemap} and not exists $args{file}) { - die("Need {file} or {typemap} argument!"); - } - - my @params; - push @params, 'replace' => $args{replace} if exists $args{replace}; - push @params, 'skip' => $args{skip} if exists $args{skip}; - - my $typemap = $args{typemap}; - if (not defined $typemap) { - $typemap = ref($self)->new(file => $args{file}, @params); - } - - # FIXME breaking encapsulation. Add accessor code. - foreach my $entry (@{$typemap->{typemap_section}}) { - $self->add_typemap( $entry, @params ); - } - - foreach my $entry (@{$typemap->{input_section}}) { - $self->add_inputmap( $entry, @params ); - } - - foreach my $entry (@{$typemap->{output_section}}) { - $self->add_outputmap( $entry, @params ); - } - - return 1; -} - -=head2 is_empty - -Returns a bool indicating whether this typemap is entirely empty. - -=cut - -sub is_empty { - my $self = shift; - - return @{ $self->{typemap_section} } == 0 - && @{ $self->{input_section} } == 0 - && @{ $self->{output_section} } == 0; -} - -=head2 list_mapped_ctypes - -Returns a list of the C types that are mappable by -this typemap object. - -=cut - -sub list_mapped_ctypes { - my $self = shift; - return sort keys %{ $self->{typemap_lookup} }; -} - -=head2 _get_typemap_hash - -Returns a hash mapping the C types to the XS types: - - { - 'char **' => 'T_PACKEDARRAY', - 'bool_t' => 'T_IV', - 'AV *' => 'T_AVREF', - 'InputStream' => 'T_IN', - 'double' => 'T_DOUBLE', - # ... - } - -This is documented because it is used by C<ExtUtils::ParseXS>, -but it's not intended for general consumption. May be removed -at any time. - -=cut - -sub _get_typemap_hash { - my $self = shift; - my $lookup = $self->{typemap_lookup}; - my $storage = $self->{typemap_section}; - - my %rv; - foreach my $ctype (keys %$lookup) { - $rv{$ctype} = $storage->[ $lookup->{$ctype} ]->xstype; - } - - return \%rv; -} - -=head2 _get_inputmap_hash - -Returns a hash mapping the XS types (identifiers) to the -corresponding INPUT code: - - { - 'T_CALLBACK' => ' $var = make_perl_cb_$type($arg) - ', - 'T_OUT' => ' $var = IoOFP(sv_2io($arg)) - ', - 'T_REF_IV_PTR' => ' if (sv_isa($arg, \\"${ntype}\\")) { - # ... - } - -This is documented because it is used by C<ExtUtils::ParseXS>, -but it's not intended for general consumption. May be removed -at any time. - -=cut - -sub _get_inputmap_hash { - my $self = shift; - my $lookup = $self->{input_lookup}; - my $storage = $self->{input_section}; - - my %rv; - foreach my $xstype (keys %$lookup) { - $rv{$xstype} = $storage->[ $lookup->{$xstype} ]->code; - - # Squash trailing whitespace to one line break - # This isn't strictly necessary, but makes the output more similar - # to the original ExtUtils::ParseXS. - $rv{$xstype} =~ s/\s*\z/\n/; - } - - return \%rv; -} - - -=head2 _get_outputmap_hash - -Returns a hash mapping the XS types (identifiers) to the -corresponding OUTPUT code: - - { - 'T_CALLBACK' => ' sv_setpvn($arg, $var.context.value().chp(), - $var.context.value().size()); - ', - 'T_OUT' => ' { - GV *gv = newGVgen("$Package"); - if ( do_open(gv, "+>&", 3, FALSE, 0, 0, $var) ) - sv_setsv( - $arg, - sv_bless(newRV((SV*)gv), gv_stashpv("$Package",1)) - ); - else - $arg = &PL_sv_undef; - } - ', - # ... - } - -This is documented because it is used by C<ExtUtils::ParseXS>, -but it's not intended for general consumption. May be removed -at any time. - -=cut - -sub _get_outputmap_hash { - my $self = shift; - my $lookup = $self->{output_lookup}; - my $storage = $self->{output_section}; - - my %rv; - foreach my $xstype (keys %$lookup) { - $rv{$xstype} = $storage->[ $lookup->{$xstype} ]->code; - - # Squash trailing whitespace to one line break - # This isn't strictly necessary, but makes the output more similar - # to the original ExtUtils::ParseXS. - $rv{$xstype} =~ s/\s*\z/\n/; - } - - return \%rv; -} - -=head2 _get_prototype_hash - -Returns a hash mapping the C types of the typemap to their -corresponding prototypes. - - { - 'char **' => '$', - 'bool_t' => '$', - 'AV *' => '$', - 'InputStream' => '$', - 'double' => '$', - # ... - } - -This is documented because it is used by C<ExtUtils::ParseXS>, -but it's not intended for general consumption. May be removed -at any time. - -=cut - -sub _get_prototype_hash { - my $self = shift; - my $lookup = $self->{typemap_lookup}; - my $storage = $self->{typemap_section}; - - my %rv; - foreach my $ctype (keys %$lookup) { - $rv{$ctype} = $storage->[ $lookup->{$ctype} ]->proto || '$'; - } - - return \%rv; -} - - - -# make sure that the provided types wouldn't collide with what's -# in the object already. -sub validate { - my $self = shift; - my %args = @_; - - if ( exists $args{ctype} - and exists $self->{typemap_lookup}{tidy_type($args{ctype})} ) - { - die("Multiple definition of ctype '$args{ctype}' in TYPEMAP section"); - } - - if ( exists $args{inputmap_xstype} - and exists $self->{input_lookup}{$args{inputmap_xstype}} ) - { - die("Multiple definition of xstype '$args{inputmap_xstype}' in INPUTMAP section"); - } - - if ( exists $args{outputmap_xstype} - and exists $self->{output_lookup}{$args{outputmap_xstype}} ) - { - die("Multiple definition of xstype '$args{outputmap_xstype}' in OUTPUTMAP section"); - } - - return 1; -} - -=head2 clone - -Creates and returns a clone of a full typemaps object. - -Takes named parameters: If C<shallow> is true, -the clone will share the actual individual type/input/outputmap objects, -but not share their storage. Use with caution. Without C<shallow>, -the clone will be fully independent. - -=cut - -sub clone { - my $proto = shift; - my %args = @_; - - my $self; - if ($args{shallow}) { - $self = bless( { - %$proto, - typemap_section => [@{$proto->{typemap_section}}], - typemap_lookup => {%{$proto->{typemap_lookup}}}, - input_section => [@{$proto->{input_section}}], - input_lookup => {%{$proto->{input_lookup}}}, - output_section => [@{$proto->{output_section}}], - output_lookup => {%{$proto->{output_lookup}}}, - } => ref($proto) ); - } - else { - $self = bless( { - %$proto, - typemap_section => [map $_->new, @{$proto->{typemap_section}}], - typemap_lookup => {%{$proto->{typemap_lookup}}}, - input_section => [map $_->new, @{$proto->{input_section}}], - input_lookup => {%{$proto->{input_lookup}}}, - output_section => [map $_->new, @{$proto->{output_section}}], - output_lookup => {%{$proto->{output_lookup}}}, - } => ref($proto) ); - } - - return $self; -} - -=head2 tidy_type - -Function to (heuristically) canonicalize a C type. Works to some -degree with C++ types. - - $halfway_canonical_type = tidy_type($ctype); - -Moved from C<ExtUtils::ParseXS>. - -=cut - -sub tidy_type { - local $_ = shift; - - # for templated C++ types, do some bit of flawed canonicalization - # wrt. templates at least - if (/[<>]/) { - s/\s*([<>])\s*/$1/g; - s/>>/> >/g; - } - - # rationalise any '*' by joining them into bunches and removing whitespace - s#\s*(\*+)\s*#$1#g; - s#(\*+)# $1 #g ; - - # trim leading & trailing whitespace - s/^\s+//; s/\s+$//; - - # change multiple whitespace into a single space - s/\s+/ /g; - - $_; -} - - - -sub _parse { - my $self = shift; - my $stringref = shift; - my $lineno_offset = shift; - $lineno_offset = 0 if not defined $lineno_offset; - my $filename = shift; - $filename = '<string>' if not defined $filename; - - my $replace = $self->{replace}; - my $skip = $self->{skip}; - die "Can only replace OR skip" if $replace and $skip; - my @add_params; - push @add_params, replace => 1 if $replace; - push @add_params, skip => 1 if $skip; - - # TODO comments should round-trip, currently ignoring - # TODO order of sections, multiple sections of same type - # Heavily influenced by ExtUtils::ParseXS - my $section = 'typemap'; - my $lineno = $lineno_offset; - my $junk = ""; - my $current = \$junk; - my @input_expr; - my @output_expr; - while ($$stringref =~ /^(.*)$/gcm) { - local $_ = $1; - ++$lineno; - chomp; - next if /^\s*#/; - if (/^INPUT\s*$/) { - $section = 'input'; - $current = \$junk; - next; - } - elsif (/^OUTPUT\s*$/) { - $section = 'output'; - $current = \$junk; - next; - } - elsif (/^TYPEMAP\s*$/) { - $section = 'typemap'; - $current = \$junk; - next; - } - - if ($section eq 'typemap') { - my $line = $_; - s/^\s+//; s/\s+$//; - next if $_ eq '' or /^#/; - my($type, $kind, $proto) = /^(.*?\S)\s+(\S+)\s*($ExtUtils::ParseXS::Constants::PrototypeRegexp*)$/o - or warn("Warning: File '$filename' Line $lineno '$line' TYPEMAP entry needs 2 or 3 columns\n"), - next; - # prototype defaults to '$' - $proto = '$' unless $proto; - warn("Warning: File '$filename' Line $lineno '$line' Invalid prototype '$proto'\n") - unless _valid_proto_string($proto); - $self->add_typemap( - ExtUtils::Typemaps::Type->new( - xstype => $kind, proto => $proto, ctype => $type - ), - @add_params - ); - } elsif (/^\s/) { - s/\s+$//; - $$current .= $$current eq '' ? $_ : "\n".$_; - } elsif ($_ eq '') { - next; - } elsif ($section eq 'input') { - s/\s+$//; - push @input_expr, {xstype => $_, code => ''}; - $current = \$input_expr[-1]{code}; - } else { # output section - s/\s+$//; - push @output_expr, {xstype => $_, code => ''}; - $current = \$output_expr[-1]{code}; - } - - } # end while lines - - foreach my $inexpr (@input_expr) { - $self->add_inputmap( ExtUtils::Typemaps::InputMap->new(%$inexpr), @add_params ); - } - foreach my $outexpr (@output_expr) { - $self->add_outputmap( ExtUtils::Typemaps::OutputMap->new(%$outexpr), @add_params ); - } - - return 1; -} - -# taken from ExtUtils::ParseXS -sub _valid_proto_string { - my $string = shift; - if ($string =~ /^$ExtUtils::ParseXS::Constants::PrototypeRegexp+$/o) { - return $string; - } - - return 0 ; -} - -# taken from ExtUtils::ParseXS (C_string) -sub _escape_backslashes { - my $string = shift; - $string =~ s[\\][\\\\]g; - $string; -} - -=head1 CAVEATS - -Inherits some evil code from C<ExtUtils::ParseXS>. - -=head1 SEE ALSO - -The parser is heavily inspired from the one in L<ExtUtils::ParseXS>. - -For details on typemaps: L<perlxstut>, L<perlxs>. - -=head1 AUTHOR - -Steffen Mueller C<<smueller@cpan.org>> - -=head1 COPYRIGHT & LICENSE - -Copyright 2009, 2010, 2011, 2012, 2013 Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut - -1; - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/Basic.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/Basic.pm deleted file mode 100644 index 9aacae88..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/Basic.pm +++ /dev/null @@ -1,89 +0,0 @@ -package ExtUtils::Typemaps::Basic; - -use strict; -use warnings; -use ExtUtils::Typemaps; - -our $VERSION = '1.05'; - -our @ISA = qw(ExtUtils::Typemaps); - -=head1 NAME - -ExtUtils::Typemaps::Basic - A set of typemaps for simple types - -=head1 SYNOPSIS - - use ExtUtils::Typemaps::Basic; - # First, read my own type maps: - my $private_map = ExtUtils::Typemaps->new(file => 'my.map'); - - # Then, get additional typemaps and merge them into mine - $private_map->merge(typemap => ExtUtils::Typemaps::Basic->new); - - # Now, write the combined map to an output file - $private_map->write(file => 'typemap'); - -=head1 DESCRIPTION - -C<ExtUtils::Typemaps::Basic> is an C<ExtUtils::Typemaps> -subclass that provides a set of mappings for some basic -integer, unsigned, and floating point types that aren't -in perl's builtin typemap. - -=head1 METHODS - -These are the overridden methods: - -=head2 new - -Creates a new C<ExtUtils::Typemaps::Basic> object. -It acts as any other C<ExtUtils::Typemaps> object, except that -it has the object maps initialized. - -=cut - -sub new { - my $class = shift; - - my @iv_types = (qw(int short long char), "short int", "long int", "long long"); - my @uv_types = ((map {"unsigned $_"} @iv_types), qw(unsigned Uint16 Uint32 Uint64 size_t bool)); - @iv_types = map {($_, "signed $_")} @iv_types; - push @iv_types, qw(time_t Sint16 Sint32 Sint64); - my @nv_types = (qw(float double), "long double"); - - my $map = "TYPEMAP\n"; - $map .= "$_\tT_IV\n" for @iv_types; - $map .= "$_\tT_UV\n" for @uv_types; - $map .= "$_\tT_NV\n" for @nv_types; - - $map .= "const $_\tT_IV\n" for @iv_types; - $map .= "const $_\tT_UV\n" for @uv_types; - $map .= "const $_\tT_NV\n" for @nv_types; - - my $self = $class->SUPER::new(@_); - $self->add_string(string => $map); - - return $self; -} - -1; - -__END__ - -=head1 SEE ALSO - -L<ExtUtils::Typemaps>, L<ExtUtils::Typemaps::Default> - -=head1 AUTHOR - -Steffen Mueller <smueller@cpan.org> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2010, 2011, 2012, 2013 by Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/Cmd.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/Cmd.pm deleted file mode 100644 index 7ff07801..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/Cmd.pm +++ /dev/null @@ -1,168 +0,0 @@ -package ExtUtils::Typemaps::Cmd; -use 5.006001; -use strict; -use warnings; -our $VERSION = '3.35'; - -use ExtUtils::Typemaps; - -require Exporter; - -our @ISA = qw(Exporter); -our @EXPORT = qw(embeddable_typemap); -our %EXPORT_TAGS = (all => \@EXPORT); - -sub embeddable_typemap { - my @tms = @_; - - # Get typemap objects - my @tm_objs = map [$_, _intuit_typemap_source($_)], @tms; - - # merge or short-circuit - my $final_tm; - if (@tm_objs == 1) { - # just one, merge would be pointless - $final_tm = shift(@tm_objs)->[1]; - } - else { - # multiple, need merge - $final_tm = ExtUtils::Typemaps->new; - foreach my $other_tm (@tm_objs) { - my ($tm_ident, $tm_obj) = @$other_tm; - eval { - $final_tm->merge(typemap => $tm_obj); - 1 - } or do { - my $err = $@ || 'Zombie error'; - die "Failed to merge typ"; - } - } - } - - # stringify for embedding - return $final_tm->as_embedded_typemap(); -} - -sub _load_module { - my $name = shift; - return eval "require $name; 1"; -} - -SCOPE: { - my %sources = ( - module => sub { - my $ident = shift; - my $tm; - if (/::/) { # looks like FQ module name, try that first - foreach my $module ($ident, "ExtUtils::Typemaps::$ident") { - if (_load_module($module)) { - eval { $tm = $module->new } - and return $tm; - } - } - } - else { - foreach my $module ("ExtUtils::Typemaps::$ident", "$ident") { - if (_load_module($module)) { - eval { $tm = $module->new } - and return $tm; - } - } - } - return(); - }, - file => sub { - my $ident = shift; - return unless -e $ident and -r _; - return ExtUtils::Typemaps->new(file => $ident); - }, - ); - # Try to find typemap either from module or file - sub _intuit_typemap_source { - my $identifier = shift; - - my @locate_attempts; - if ($identifier =~ /::/ || $identifier !~ /[^\w_]/) { - @locate_attempts = qw(module file); - } - else { - @locate_attempts = qw(file module); - } - - foreach my $source (@locate_attempts) { - my $tm = $sources{$source}->($identifier); - return $tm if defined $tm; - } - - die "Unable to find typemap for '$identifier': " - . "Tried to load both as file or module and failed.\n"; - } -} # end SCOPE - -=head1 NAME - -ExtUtils::Typemaps::Cmd - Quick commands for handling typemaps - -=head1 SYNOPSIS - -From XS: - - INCLUDE_COMMAND: $^X -MExtUtils::Typemaps::Cmd \ - -e "print embeddable_typemap(q{Excommunicated})" - -Loads C<ExtUtils::Typemaps::Excommunicated>, instantiates an object, -and dumps it as an embeddable typemap for use directly in your XS file. - -=head1 DESCRIPTION - -This is a helper module for L<ExtUtils::Typemaps> for quick -one-liners, specifically for inclusion of shared typemaps -that live on CPAN into an XS file (see SYNOPSIS). - -For this reason, the following functions are exported by default: - -=head1 EXPORTED FUNCTIONS - -=head2 embeddable_typemap - -Given a list of identifiers, C<embeddable_typemap> -tries to load typemaps from a file of the given name(s), -or from a module that is an C<ExtUtils::Typemaps> subclass. - -Returns a string representation of the merged typemaps that can -be included verbatim into XS. Example: - - print embeddable_typemap( - "Excommunicated", "ExtUtils::Typemaps::Basic", "./typemap" - ); - -This will try to load a module C<ExtUtils::Typemaps::Excommunicated> -and use it as an C<ExtUtils::Typemaps> subclass. If that fails, it'll -try loading C<Excommunicated> as a module, if that fails, it'll try to -read a file called F<Excommunicated>. It'll work similarly for the -second argument, but the third will be loaded as a file first. - -After loading all typemap files or modules, it will merge them in the -specified order and dump the result as an embeddable typemap. - -=head1 SEE ALSO - -L<ExtUtils::Typemaps> - -L<perlxs> - -=head1 AUTHOR - -Steffen Mueller C<<smueller@cpan.org>> - -=head1 COPYRIGHT & LICENSE - -Copyright 2012 Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut - -1; - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/Default.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/Default.pm deleted file mode 100644 index 667fe353..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/Default.pm +++ /dev/null @@ -1,87 +0,0 @@ -package ExtUtils::Typemaps::Default; - -use strict; -use warnings; -use ExtUtils::Typemaps; - -our $VERSION = '1.05'; - -our @ISA = qw(ExtUtils::Typemaps); - -require ExtUtils::Typemaps::ObjectMap; -require ExtUtils::Typemaps::Basic; -require ExtUtils::Typemaps::STL; - - -=head1 NAME - -ExtUtils::Typemaps::Default - A set of useful typemaps - -=head1 SYNOPSIS - - use ExtUtils::Typemaps::Default; - # First, read my own type maps: - my $private_map = ExtUtils::Typemaps->new(file => 'my.map'); - - # Then, get the default set and merge it into my maps - my $map = ExtUtils::Typemaps::Default->new; - $private_map->merge(typemap => $map); - - # Now, write the combined map to an output file - $private_map->write(file => 'typemap'); - -=head1 DESCRIPTION - -C<ExtUtils::Typemaps::Default> is an C<ExtUtils::Typemaps> -subclass that provides a set of default mappings (in addition to what -perl itself provides). These default mappings are currently defined -as the combination of the mappings provided by the -following typemap classes which are provided in this distribution: - -L<ExtUtils::Typemaps::ObjectMap>, L<ExtUtils::Typemaps::STL>, -L<ExtUtils::Typemaps::Basic> - -=head1 METHODS - -These are the overridden methods: - -=head2 new - -Creates a new C<ExtUtils::Typemaps::Default> object. - -=cut - -sub new { - my $class = shift; - - my $self = $class->SUPER::new(@_); - $self->merge(typemap => ExtUtils::Typemaps::Basic->new); - $self->merge(typemap => ExtUtils::Typemaps::ObjectMap->new); - $self->merge(typemap => ExtUtils::Typemaps::STL->new); - - return $self; -} - -1; - -__END__ - -=head1 SEE ALSO - -L<ExtUtils::Typemaps>, -L<ExtUtils::Typemaps::ObjectMap>, -L<ExtUtils::Typemaps::STL>, -L<ExtUtils::Typemaps::Basic> - -=head1 AUTHOR - -Steffen Mueller <smueller@cpan.org> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2010, 2011, 2012, 2013 by Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/InputMap.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/InputMap.pm deleted file mode 100644 index b626973f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/InputMap.pm +++ /dev/null @@ -1,116 +0,0 @@ -package ExtUtils::Typemaps::InputMap; -use 5.006001; -use strict; -use warnings; -our $VERSION = '3.35'; - -=head1 NAME - -ExtUtils::Typemaps::InputMap - Entry in the INPUT section of a typemap - -=head1 SYNOPSIS - - use ExtUtils::Typemaps; - ... - my $input = $typemap->get_input_map('T_NV'); - my $code = $input->code(); - $input->code("..."); - -=head1 DESCRIPTION - -Refer to L<ExtUtils::Typemaps> for details. - -=head1 METHODS - -=cut - -=head2 new - -Requires C<xstype> and C<code> parameters. - -=cut - -sub new { - my $prot = shift; - my $class = ref($prot)||$prot; - my %args = @_; - - if (!ref($prot)) { - if (not defined $args{xstype} or not defined $args{code}) { - die("Need xstype and code parameters"); - } - } - - my $self = bless( - (ref($prot) ? {%$prot} : {}) - => $class - ); - - $self->{xstype} = $args{xstype} if defined $args{xstype}; - $self->{code} = $args{code} if defined $args{code}; - $self->{code} =~ s/^(?=\S)/\t/mg; - - return $self; -} - -=head2 code - -Returns or sets the INPUT mapping code for this entry. - -=cut - -sub code { - $_[0]->{code} = $_[1] if @_ > 1; - return $_[0]->{code}; -} - -=head2 xstype - -Returns the name of the XS type of the INPUT map. - -=cut - -sub xstype { - return $_[0]->{xstype}; -} - -=head2 cleaned_code - -Returns a cleaned-up copy of the code to which certain transformations -have been applied to make it more ANSI compliant. - -=cut - -sub cleaned_code { - my $self = shift; - my $code = $self->code; - - $code =~ s/(?:;+\s*|;*\s+)\z//s; - - # Move C pre-processor instructions to column 1 to be strictly ANSI - # conformant. Some pre-processors are fussy about this. - $code =~ s/^\s+#/#/mg; - $code =~ s/\s*\z/\n/; - - return $code; -} - -=head1 SEE ALSO - -L<ExtUtils::Typemaps> - -=head1 AUTHOR - -Steffen Mueller C<<smueller@cpan.org>> - -=head1 COPYRIGHT & LICENSE - -Copyright 2009, 2010, 2011, 2012 Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut - -1; - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/ObjectMap.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/ObjectMap.pm deleted file mode 100644 index e6aa7dc7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/ObjectMap.pm +++ /dev/null @@ -1,205 +0,0 @@ -package ExtUtils::Typemaps::ObjectMap; - -use strict; -use warnings; -use ExtUtils::Typemaps; - -our $VERSION = '1.05'; - -our @ISA = qw(ExtUtils::Typemaps); - -=head1 NAME - -ExtUtils::Typemaps::ObjectMap - A set of typemaps for opaque C/C++ objects - -=head1 SYNOPSIS - - use ExtUtils::Typemaps::ObjectMap; - # First, read my own type maps: - my $private_map = ExtUtils::Typemaps->new(file => 'my.map'); - - # Then, get the object map set and merge it into my maps - $private_map->merge(typemap => ExtUtils::Typemaps::ObjectMap->new); - - # Now, write the combined map to an output file - $private_map->write(file => 'typemap'); - -=head1 DESCRIPTION - -C<ExtUtils::Typemaps::ObjectMap> is an C<ExtUtils::Typemaps> -subclass that provides a set of mappings for using pointers to -C/C++ objects as opaque objects from Perl. - -These mappings are taken verbatim from Dean Roehrich's C<perlobject.map>. -They are: - - # "perlobject.map" Dean Roehrich, version 19960302 - # - # TYPEMAPs - # - # HV * -> unblessed Perl HV object. - # AV * -> unblessed Perl AV object. - # - # INPUT/OUTPUT maps - # - # O_* -> opaque blessed objects - # T_* -> opaque blessed or unblessed objects - # - # O_OBJECT -> link an opaque C or C++ object to a blessed Perl object. - # T_OBJECT -> link an opaque C or C++ object to an unblessed Perl object. - # O_HvRV -> a blessed Perl HV object. - # T_HvRV -> an unblessed Perl HV object. - # O_AvRV -> a blessed Perl AV object. - # T_AvRV -> an unblessed Perl AV object. - -=head1 METHODS - -These are the overridden methods: - -=head2 new - -Creates a new C<ExtUtils::Typemaps::ObjectMap> object. -It acts as any other C<ExtUtils::Typemaps> object, except that -it has the object maps initialized. - -=cut - -sub new { - my $class = shift; - - my $self = $class->SUPER::new(@_); - $self->add_string(string => <<'END_TYPEMAP'); -# "perlobject.map" Dean Roehrich, version 19960302 -# -# TYPEMAPs -# -# HV * -> unblessed Perl HV object. -# AV * -> unblessed Perl AV object. -# -# INPUT/OUTPUT maps -# -# O_* -> opaque blessed objects -# T_* -> opaque blessed or unblessed objects -# -# O_OBJECT -> link an opaque C or C++ object to a blessed Perl object. -# T_OBJECT -> link an opaque C or C++ object to an unblessed Perl object. -# O_HvRV -> a blessed Perl HV object. -# T_HvRV -> an unblessed Perl HV object. -# O_AvRV -> a blessed Perl AV object. -# T_AvRV -> an unblessed Perl AV object. - -TYPEMAP - -HV * T_HvRV -AV * T_AvRV - - -###################################################################### -OUTPUT - -# The Perl object is blessed into 'CLASS', which should be a -# char* having the name of the package for the blessing. -O_OBJECT - sv_setref_pv( $arg, CLASS, (void*)$var ); - -T_OBJECT - sv_setref_pv( $arg, Nullch, (void*)$var ); - -# Cannot use sv_setref_pv() because that will destroy -# the HV-ness of the object. Remember that newRV() will increment -# the refcount. -O_HvRV - $arg = sv_bless( newRV((SV*)$var), gv_stashpv(CLASS,1) ); - -T_HvRV - $arg = newRV((SV*)$var); - -# Cannot use sv_setref_pv() because that will destroy -# the AV-ness of the object. Remember that newRV() will increment -# the refcount. -O_AvRV - $arg = sv_bless( newRV((SV*)$var), gv_stashpv(CLASS,1) ); - -T_AvRV - $arg = newRV((SV*)$var); - - -###################################################################### -INPUT - -O_OBJECT - if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) - $var = ($type)SvIV((SV*)SvRV( $arg )); - else{ - warn( \"${Package}::$func_name() -- $var is not a blessed SV reference\" ); - XSRETURN_UNDEF; - } - -T_OBJECT - if( SvROK($arg) ) - $var = ($type)SvIV((SV*)SvRV( $arg )); - else{ - warn( \"${Package}::$func_name() -- $var is not an SV reference\" ); - XSRETURN_UNDEF; - } - -O_HvRV - if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVHV) ) - $var = (HV*)SvRV( $arg ); - else { - warn( \"${Package}::$func_name() -- $var is not a blessed HV reference\" ); - XSRETURN_UNDEF; - } - -T_HvRV - if( SvROK($arg) && (SvTYPE(SvRV($arg)) == SVt_PVHV) ) - $var = (HV*)SvRV( $arg ); - else { - warn( \"${Package}::$func_name() -- $var is not an HV reference\" ); - XSRETURN_UNDEF; - } - -O_AvRV - if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVAV) ) - $var = (AV*)SvRV( $arg ); - else { - warn( \"${Package}::$func_name() -- $var is not a blessed AV reference\" ); - XSRETURN_UNDEF; - } - -T_AvRV - if( SvROK($arg) && (SvTYPE(SvRV($arg)) == SVt_PVAV) ) - $var = (AV*)SvRV( $arg ); - else { - warn( \"${Package}::$func_name() -- $var is not an AV reference\" ); - XSRETURN_UNDEF; - } - -END_TYPEMAP - - return $self; -} - -1; - -__END__ - -=head1 SEE ALSO - -L<ExtUtils::Typemaps>, L<ExtUtils::Typemaps::Default>, L<ExtUtils::Typemaps::STL::String> - -=head1 AUTHOR - -The module was written by Steffen Mueller <smueller@cpan.org>, -but the important bit, the typemap, was written by Dean Roehrich. - -=head1 COPYRIGHT AND LICENSE - -Copyright 2010, 2011, 2012, 2013 by Steffen Mueller - -Except for the typemap code, which is copyright 1996 Dean Roehrich - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/OutputMap.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/OutputMap.pm deleted file mode 100644 index 8c72e5bc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/OutputMap.pm +++ /dev/null @@ -1,209 +0,0 @@ -package ExtUtils::Typemaps::OutputMap; -use 5.006001; -use strict; -use warnings; -our $VERSION = '3.35'; - -=head1 NAME - -ExtUtils::Typemaps::OutputMap - Entry in the OUTPUT section of a typemap - -=head1 SYNOPSIS - - use ExtUtils::Typemaps; - ... - my $output = $typemap->get_output_map('T_NV'); - my $code = $output->code(); - $output->code("..."); - -=head1 DESCRIPTION - -Refer to L<ExtUtils::Typemaps> for details. - -=head1 METHODS - -=cut - -=head2 new - -Requires C<xstype> and C<code> parameters. - -=cut - -sub new { - my $prot = shift; - my $class = ref($prot)||$prot; - my %args = @_; - - if (!ref($prot)) { - if (not defined $args{xstype} or not defined $args{code}) { - die("Need xstype and code parameters"); - } - } - - my $self = bless( - (ref($prot) ? {%$prot} : {}) - => $class - ); - - $self->{xstype} = $args{xstype} if defined $args{xstype}; - $self->{code} = $args{code} if defined $args{code}; - $self->{code} =~ s/^(?=\S)/\t/mg; - - return $self; -} - -=head2 code - -Returns or sets the OUTPUT mapping code for this entry. - -=cut - -sub code { - $_[0]->{code} = $_[1] if @_ > 1; - return $_[0]->{code}; -} - -=head2 xstype - -Returns the name of the XS type of the OUTPUT map. - -=cut - -sub xstype { - return $_[0]->{xstype}; -} - -=head2 cleaned_code - -Returns a cleaned-up copy of the code to which certain transformations -have been applied to make it more ANSI compliant. - -=cut - -sub cleaned_code { - my $self = shift; - my $code = $self->code; - - # Move C pre-processor instructions to column 1 to be strictly ANSI - # conformant. Some pre-processors are fussy about this. - $code =~ s/^\s+#/#/mg; - $code =~ s/\s*\z/\n/; - - return $code; -} - -=head2 targetable - -This is an obscure but effective optimization that used to -live in C<ExtUtils::ParseXS> directly. Not implementing it -should never result in incorrect use of typemaps, just less -efficient code. - -In a nutshell, this will check whether the output code -involves calling C<sv_setiv>, C<sv_setuv>, C<sv_setnv>, C<sv_setpv> or -C<sv_setpvn> to set the special C<$arg> placeholder to a new value -B<AT THE END OF THE OUTPUT CODE>. If that is the case, the code is -eligible for using the C<TARG>-related macros to optimize this. -Thus the name of the method: C<targetable>. - -If this optimization is applicable, C<ExtUtils::ParseXS> will -emit a C<dXSTARG;> definition at the start of the generated XSUB code, -and type (see below) dependent code to set C<TARG> and push it on -the stack at the end of the generated XSUB code. - -If the optimization can not be applied, this returns undef. -If it can be applied, this method returns a hash reference containing -the following information: - - type: Any of the characters i, u, n, p - with_size: Bool indicating whether this is the sv_setpvn variant - what: The code that actually evaluates to the output scalar - what_size: If "with_size", this has the string length (as code, - not constant, including leading comma) - -=cut - -sub targetable { - my $self = shift; - return $self->{targetable} if exists $self->{targetable}; - - our $bal; # ()-balanced - $bal = qr[ - (?: - (?>[^()]+) - | - \( (??{ $bal }) \) - )* - ]x; - my $bal_no_comma = qr[ - (?: - (?>[^(),]+) - | - \( (??{ $bal }) \) - )+ - ]x; - - # matches variations on (SV*) - my $sv_cast = qr[ - (?: - \( \s* SV \s* \* \s* \) \s* - )? - ]x; - - my $size = qr[ # Third arg (to setpvn) - , \s* (??{ $bal }) - ]xo; - - my $code = $self->code; - - # We can still bootstrap compile 're', because in code re.pm is - # available to miniperl, and does not attempt to load the XS code. - use re 'eval'; - - my ($type, $with_size, $arg, $sarg) = - ($code =~ - m[^ - \s+ - sv_set([iunp])v(n)? # Type, is_setpvn - \s* - \( \s* - $sv_cast \$arg \s* , \s* - ( $bal_no_comma ) # Set from - ( $size )? # Possible sizeof set-from - \s* \) \s* ; \s* $ - ]xo - ); - - my $rv = undef; - if ($type) { - $rv = { - type => $type, - with_size => $with_size, - what => $arg, - what_size => $sarg, - }; - } - $self->{targetable} = $rv; - return $rv; -} - -=head1 SEE ALSO - -L<ExtUtils::Typemaps> - -=head1 AUTHOR - -Steffen Mueller C<<smueller@cpan.org>> - -=head1 COPYRIGHT & LICENSE - -Copyright 2009, 2010, 2011, 2012 Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut - -1; - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/STL.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/STL.pm deleted file mode 100644 index 5144790f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/STL.pm +++ /dev/null @@ -1,88 +0,0 @@ -package ExtUtils::Typemaps::STL; - -use strict; -use warnings; -use ExtUtils::Typemaps; -use ExtUtils::Typemaps::STL::Vector; -use ExtUtils::Typemaps::STL::String; -use ExtUtils::Typemaps::STL::List; - -our $VERSION = '1.05'; - -our @ISA = qw(ExtUtils::Typemaps); - -=head1 NAME - -ExtUtils::Typemaps::STL - A set of useful typemaps for STL - -=head1 SYNOPSIS - - use ExtUtils::Typemaps::STL; - # First, read my own type maps: - my $private_map = ExtUtils::Typemaps->new(file => 'my.map'); - - # Then, get the STL set and merge it into my maps - my $map = ExtUtils::Typemaps::STL->new; - $private_map->merge(typemap => $map); - - # Now, write the combined map to an output file - $private_map->write(file => 'typemap'); - -=head1 DESCRIPTION - -C<ExtUtils::Typemaps::STL> is an C<ExtUtils::Typemaps> -subclass that provides a few of default mappings for Standard Template Library -types. These default mappings are currently defined -as the combination of the mappings provided by the -following typemap classes which are provided in this distribution: - -L<ExtUtils::Typemaps::STL::Vector>, L<ExtUtils::Typemaps::STL::String>, -L<ExtUtils::Typemaps::STL::List> - -More are to come, patches are welcome. - -=head1 METHODS - -These are the overridden methods: - -=head2 new - -Creates a new C<ExtUtils::Typemaps::STL> object. - -=cut - -sub new { - my $class = shift; - - my $self = $class->SUPER::new(@_); - $self->merge(typemap => ExtUtils::Typemaps::STL::String->new); - $self->merge(typemap => ExtUtils::Typemaps::STL::Vector->new); - $self->merge(typemap => ExtUtils::Typemaps::STL::List->new); - - return $self; -} - -1; - -__END__ - -=head1 SEE ALSO - -L<ExtUtils::Typemaps>, L<ExtUtils::Typemaps::Default> - -L<ExtUtils::Typemaps::STL::String>, -L<ExtUtils::Typemaps::STL::Vector> -L<ExtUtils::Typemaps::STL::List> - -=head1 AUTHOR - -Steffen Mueller <smueller@cpan.org> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2010, 2011, 2012, 2013 by Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/STL/List.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/STL/List.pm deleted file mode 100644 index 18e15140..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/STL/List.pm +++ /dev/null @@ -1,360 +0,0 @@ -package ExtUtils::Typemaps::STL::List; - -use strict; -use warnings; -use ExtUtils::Typemaps; - -our $VERSION = '1.05'; - -our @ISA = qw(ExtUtils::Typemaps); - -=head1 NAME - -ExtUtils::Typemaps::STL::List - A set of typemaps for STL std::lists - -=head1 SYNOPSIS - - use ExtUtils::Typemaps::STL::List; - # First, read my own type maps: - my $private_map = ExtUtils::Typemaps->new(file => 'my.map'); - - # Then, get the object map set and merge it into my maps - $private_map->merge(typemap => ExtUtils::Typemaps::STL::List->new); - - # Now, write the combined map to an output file - $private_map->write(file => 'typemap'); - -=head1 DESCRIPTION - -C<ExtUtils::Typemaps::STL::List> is an C<ExtUtils::Typemaps> -subclass that provides a set of mappings for C++ STL lists. -These are: - - TYPEMAP - std::list<double> T_STD_LIST_DOUBLE - std::list<double>* T_STD_LIST_DOUBLE_PTR - - std::list<int> T_STD_LIST_INT - std::list<int>* T_STD_LIST_INT_PTR - - std::list<unsigned int> T_STD_LIST_UINT - std::list<unsigned int>* T_STD_LIST_UINT_PTR - - std::list<std::string> T_STD_LIST_STD_STRING - std::list<std::string>* T_STD_LIST_STD_STRING_PTR - - std::list<char*> T_STD_LIST_CSTRING - std::list<char*>* T_STD_LIST_CSTRING_PTR - -All of these mean that the lists are converted to references -to Perl arrays and vice versa. - -=head1 METHODS - -These are the overridden methods: - -=head2 new - -Creates a new C<ExtUtils::Typemaps::STL::List> object. -It acts as any other C<ExtUtils::Typemaps> object, except that -it has the list type maps initialized. - -=cut - -sub new { - my $class = shift; - - my $self = $class->SUPER::new(@_); - my $input_tmpl = <<'HERE'; -!TYPENAME! - if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV) { - AV* av = (AV*)SvRV($arg); - const unsigned int len = av_len(av)+1; - $var = std::list<!TYPE!>(); - SV** elem; - for (unsigned int i = 0; i < len; i++) { - elem = av_fetch(av, i, 0); - if (elem != NULL) - ${var}.push_back(Sv!SHORTTYPE!V(*elem)); - else - ${var}[i].push_back(!DEFAULT!); - } - } - else - Perl_croak(aTHX_ \"%s: %s is not an array reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - -!TYPENAME!_PTR - if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV) { - AV* av = (AV*)SvRV($arg); - const unsigned int len = av_len(av)+1; - $var = new std::list<!TYPE!>(); - SV** elem; - for (unsigned int i = 0; i < len; i++) { - elem = av_fetch(av, i, 0); - if (elem != NULL) - (*$var).push_back(Sv!SHORTTYPE!V(*elem)); - else - (*$var).push_back(!DEFAULT!); - } - } - else - Perl_croak(aTHX_ \"%s: %s is not an array reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - -HERE - - my $output_tmpl = <<'HERE'; -!TYPENAME! - AV* av = newAV(); - $arg = newRV_noinc((SV*)av); - const unsigned int len = $var.size(); // Technically may be linear... - av_extend(av, len-1); - unsigned int i = 0; - std::list<!TYPE!>::const_iterator lend = $var.cend(); - std::list<!TYPE!>::const_iterator lit = $var.cbegin(); - for (; lit != lend; ++lit) { - av_store(av, i++, newSV!SHORTTYPELC!v(*lit)); - } - -!TYPENAME!_PTR - AV* av = newAV(); - $arg = newRV_noinc((SV*)av); - const unsigned int len = $var->size(); // Technically may be linear... - av_extend(av, len-1); - unsigned int i = 0; - std::list<!TYPE!>::const_iterator lend = (*$var).cend(); - std::list<!TYPE!>::const_iterator lit = (*$var).cbegin(); - for (; lit != lend; ++lit) { - av_store(av, i++, newSV!SHORTTYPELC!v(*lit)); - } - -HERE - - my ($output_code, $input_code); - # TYPENAME, TYPE, SHORTTYPE, SHORTTYPELC, DEFAULT - foreach my $type ([qw(T_STD_LIST_DOUBLE double N n 0.)], - [qw(T_STD_LIST_INT int I i 0)], - [qw(T_STD_LIST_UINT), "unsigned int", qw(U u 0)]) - { - my @type = @$type; - my $otmpl = $output_tmpl; - my $itmpl = $input_tmpl; - - for ($otmpl, $itmpl) { - s/!TYPENAME!/$type[0]/g; - s/!TYPE!/$type[1]/g; - s/!SHORTTYPE!/$type[2]/g; - s/!SHORTTYPELC!/$type[3]/g; - s/!DEFAULT!/$type[4]/g; - } - - $output_code .= $otmpl; - $input_code .= $itmpl; - } - - # add a static part - $output_code .= <<'END_OUTPUT'; -T_STD_LIST_STD_STRING - AV* av = newAV(); - $arg = newRV_noinc((SV*)av); - const unsigned int len = $var.size(); // Technically may be linear... - av_extend(av, len-1); - unsigned int i = 0; - std::list<std::string>::const_iterator lend = $var.cend(); - std::list<std::string>::const_iterator lit = $var.cbegin(); - for (; lit != lend; ++lit) { - const std::string& str = *lit; - STRLEN len = str.length(); - av_store(av, i++, newSVpv(str.c_str(), len)); - } - -T_STD_LIST_STD_STRING_PTR - AV* av = newAV(); - $arg = newRV_noinc((SV*)av); - const unsigned int len = $var->size(); // Technically may be linear... - av_extend(av, len-1); - unsigned int i = 0; - std::list<std::string>::const_iterator lend = (*$var).cend(); - std::list<std::string>::const_iterator lit = (*$var).cbegin(); - for (; lit != lend; ++lit) { - const std::string& str = *lit; - STRLEN len = str.length(); - av_store(av, i++, newSVpv(str.c_str(), len)); - } - -T_STD_LIST_CSTRING - AV* av = newAV(); - $arg = newRV_noinc((SV*)av); - const unsigned int len = $var.size(); - av_extend(av, len-1); - unsigned int i = 0; - std::list<char *>::const_iterator lend = $var.cend(); - std::list<char *>::const_iterator lit = $var.cbegin(); - for (; lit != lend; ++lit) { - av_store(av, i, newSVpv(*lit, (STRLEN)strlen(*lit))); - } - -T_STD_LIST_CSTRING_PTR - AV* av = newAV(); - $arg = newRV_noinc((SV*)av); - const unsigned int len = $var->size(); - av_extend(av, len-1); - unsigned int i = 0; - std::list<char *>::const_iterator lend = (*$var).cend(); - std::list<char *>::const_iterator lit = (*$var).cbegin(); - for (; lit != lend; ++lit) { - av_store(av, i, newSVpv(*lit, (STRLEN)strlen(*lit))); - } - -END_OUTPUT - - # add a static part to input - $input_code .= <<'END_INPUT'; -T_STD_LIST_STD_STRING - if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV) { - AV* av = (AV*)SvRV($arg); - const unsigned int alen = av_len(av)+1; - $var = std::list<std::string>(); - STRLEN len; - char* tmp; - SV** elem; - for (unsigned int i = 0; i < alen; i++) { - elem = av_fetch(av, i, 0); - if (elem != NULL) { - tmp = SvPV(*elem, len); - ${var}.push_back(std::string(tmp, len)); - } - else - ${var}.push_back(std::string(\"\")); - } - } - else - Perl_croak(aTHX_ \"%s: %s is not an array reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - -T_STD_LIST_STD_STRING_PTR - if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV) { - AV* av = (AV*)SvRV($arg); - const unsigned int alen = av_len(av)+1; - $var = new std::list<std::string>(alen); - STRLEN len; - char* tmp; - SV** elem; - for (unsigned int i = 0; i < alen; i++) { - elem = av_fetch(av, i, 0); - if (elem != NULL) { - tmp = SvPV(*elem, len); - (*$var).push_back(std::string(tmp, len)); - } - else - (*$var).push_back(std::string(\"\")); - } - } - else - Perl_croak(aTHX_ \"%s: %s is not an array reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - -T_STD_LIST_CSTRING - if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV) { - AV* av = (AV*)SvRV($arg); - const unsigned int len = av_len(av)+1; - $var = std::list<char*>(); - SV** elem; - for (unsigned int i = 0; i < len; i++) { - elem = av_fetch(av, i, 0); - if (elem != NULL) { - ${var}.push_back(SvPV_nolen(*elem)); - else - ${var}.push_back(NULL); - } - } - else - Perl_croak(aTHX_ \"%s: %s is not an array reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - -T_STD_LIST_CSTRING_PTR - if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV) { - AV* av = (AV*)SvRV($arg); - const unsigned int len = av_len(av)+1; - $var = new std::list<char*>(); - SV** elem; - for (unsigned int i = 0; i < len; i++) { - elem = av_fetch(av, i, 0); - if (elem != NULL) { - (*$var).push_back(SvPV_nolen(*elem)); - else - (*$var).push_back(NULL); - } - } - else - Perl_croak(aTHX_ \"%s: %s is not an array reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); -END_INPUT - - my $typemap_code = <<'END_TYPEMAP'; -TYPEMAP -std::list<double>* T_STD_LIST_DOUBLE_PTR -std::list<double> T_STD_LIST_DOUBLE -std::list<int>* T_STD_LIST_INT_PTR -std::list<int> T_STD_LIST_INT -std::list<unsigned int>* T_STD_LIST_UINT_PTR -std::list<unsigned int> T_STD_LIST_UINT -std::list<std::string> T_STD_LIST_STD_STRING -std::list<std::string>* T_STD_LIST_STD_STRING_PTR -std::list<string> T_STD_LIST_STD_STRING -std::list<string>* T_STD_LIST_STD_STRING_PTR -std::list<char*> T_STD_LIST_CSTRING -std::list<char*>* T_STD_LIST_CSTRING_PTR -list<double>* T_STD_LIST_DOUBLE_PTR -list<double> T_STD_LIST_DOUBLE -list<int>* T_STD_LIST_INT_PTR -list<int> T_STD_LIST_INT -list<unsigned int>* T_STD_LIST_UINT_PTR -list<unsigned int> T_STD_LIST_UINT -list<std::string> T_STD_LIST_STD_STRING -list<std::string>* T_STD_LIST_STD_STRING_PTR -list<string> T_STD_LIST_STD_STRING -list<string>* T_STD_LIST_STD_STRING_PTR -list<char*> T_STD_LIST_CSTRING -list<char*>* T_STD_LIST_CSTRING_PTR - -INPUT -END_TYPEMAP - $typemap_code .= $input_code; - $typemap_code .= "\nOUTPUT\n"; - $typemap_code .= $output_code; - $typemap_code .= "\n"; - - $self->add_string(string => $typemap_code); - - return $self; -} - -1; - -__END__ - -=head1 SEE ALSO - -L<ExtUtils::Typemaps>, L<ExtUtils::Typemaps::Default>, L<ExtUtils::Typemaps::ObjectMap>, -L<ExtUtils::Typemaps::STL>, L<ExtUtils::Typemaps::STL::String>, L<ExtUtils::Typemaps::STL::Vector> - -=head1 AUTHOR - -Steffen Mueller <smueller@cpan.org> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2013 by Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/STL/String.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/STL/String.pm deleted file mode 100644 index 258ab6cc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/STL/String.pm +++ /dev/null @@ -1,109 +0,0 @@ -package ExtUtils::Typemaps::STL::String; - -use strict; -use warnings; -use ExtUtils::Typemaps; - -our $VERSION = '1.05'; - -our @ISA = qw(ExtUtils::Typemaps); - -=head1 NAME - -ExtUtils::Typemaps::STL::String - A set of typemaps for STL std::strings - -=head1 SYNOPSIS - - use ExtUtils::Typemaps::STL::String; - # First, read my own type maps: - my $private_map = ExtUtils::Typemaps->new(file => 'my.map'); - - # Then, get the object map set and merge it into my maps - $private_map->merge(typemap => ExtUtils::Typemaps::STL::String->new); - - # Now, write the combined map to an output file - $private_map->write(file => 'typemap'); - -=head1 DESCRIPTION - -C<ExtUtils::Typemaps::STL::String> is an C<ExtUtils::Typemaps> -subclass that provides a set of mappings for C++ STL strings. -These are: - - TYPEMAP - std::string T_STD_STRING - std::string* T_STD_STRING_PTR - - INPUT - T_STD_STRING - $var = std::string( SvPV_nolen( $arg ), SvCUR( $arg ) ); - - T_STD_STRING_PTR - $var = new std::string( SvPV_nolen( $arg ), SvCUR( $arg ) ); - - OUTPUT - T_STD_STRING - $arg = newSVpvn( $var.c_str(), $var.length() ); - - T_STD_STRING_PTR - $arg = newSVpvn( $var->c_str(), $var->length() ); - -=head1 METHODS - -These are the overridden methods: - -=head2 new - -Creates a new C<ExtUtils::Typemaps::STL::String> object. -It acts as any other C<ExtUtils::Typemaps> object, except that -it has the string type maps initialized. - -=cut - -sub new { - my $class = shift; - - my $self = $class->SUPER::new(@_); - $self->add_string(string => <<'END_TYPEMAP'); -TYPEMAP -std::string T_STD_STRING -std::string* T_STD_STRING_PTR - -INPUT -T_STD_STRING - $var = std::string( SvPV_nolen( $arg ), SvCUR( $arg ) ); - -T_STD_STRING_PTR - $var = new std::string( SvPV_nolen( $arg ), SvCUR( $arg ) ); - -OUTPUT -T_STD_STRING - $arg = newSVpvn( $var.c_str(), $var.length() ); - -T_STD_STRING_PTR - $arg = newSVpvn( $var->c_str(), $var->length() ); -END_TYPEMAP - - return $self; -} - -1; - -__END__ - -=head1 SEE ALSO - -L<ExtUtils::Typemaps>, L<ExtUtils::Typemaps::Default>, L<ExtUtils::Typemaps::ObjectMap> - -=head1 AUTHOR - -Steffen Mueller <smueller@cpan.org> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2010, 2011, 2012, 2013 by Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/STL/Vector.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/STL/Vector.pm deleted file mode 100644 index 1ae2237a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/STL/Vector.pm +++ /dev/null @@ -1,336 +0,0 @@ -package ExtUtils::Typemaps::STL::Vector; - -use strict; -use warnings; -use ExtUtils::Typemaps; - -our $VERSION = '1.05'; - -our @ISA = qw(ExtUtils::Typemaps); - -=head1 NAME - -ExtUtils::Typemaps::STL::Vector - A set of typemaps for STL std::vectors - -=head1 SYNOPSIS - - use ExtUtils::Typemaps::STL::Vector; - # First, read my own type maps: - my $private_map = ExtUtils::Typemaps->new(file => 'my.map'); - - # Then, get the object map set and merge it into my maps - $private_map->merge(typemap => ExtUtils::Typemaps::STL::Vector->new); - - # Now, write the combined map to an output file - $private_map->write(file => 'typemap'); - -=head1 DESCRIPTION - -C<ExtUtils::Typemaps::STL::Vector> is an C<ExtUtils::Typemaps> -subclass that provides a set of mappings for C++ STL vectors. -These are: - - TYPEMAP - std::vector<double> T_STD_VECTOR_DOUBLE - std::vector<double>* T_STD_VECTOR_DOUBLE_PTR - - std::vector<int> T_STD_VECTOR_INT - std::vector<int>* T_STD_VECTOR_INT_PTR - - std::vector<unsigned int> T_STD_VECTOR_UINT - std::vector<unsigned int>* T_STD_VECTOR_UINT_PTR - - std::vector<std::string> T_STD_VECTOR_STD_STRING - std::vector<std::string>* T_STD_VECTOR_STD_STRING_PTR - - std::vector<char*> T_STD_VECTOR_CSTRING - std::vector<char*>* T_STD_VECTOR_CSTRING_PTR - -All of these mean that the vectors are converted to references -to Perl arrays and vice versa. - -=head1 METHODS - -These are the overridden methods: - -=head2 new - -Creates a new C<ExtUtils::Typemaps::STL::Vector> object. -It acts as any other C<ExtUtils::Typemaps> object, except that -it has the vector type maps initialized. - -=cut - -sub new { - my $class = shift; - - my $self = $class->SUPER::new(@_); - my $input_tmpl = <<'HERE'; -!TYPENAME! - if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV) { - AV* av = (AV*)SvRV($arg); - const unsigned int len = av_len(av)+1; - $var = std::vector<!TYPE!>(len); - SV** elem; - for (unsigned int i = 0; i < len; i++) { - elem = av_fetch(av, i, 0); - if (elem != NULL) - ${var}[i] = Sv!SHORTTYPE!V(*elem); - else - ${var}[i] = !DEFAULT!; - } - } - else - Perl_croak(aTHX_ \"%s: %s is not an array reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - -!TYPENAME!_PTR - if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV) { - AV* av = (AV*)SvRV($arg); - const unsigned int len = av_len(av)+1; - $var = new std::vector<!TYPE!>(len); - SV** elem; - for (unsigned int i = 0; i < len; i++) { - elem = av_fetch(av, i, 0); - if (elem != NULL) - (*$var)[i] = Sv!SHORTTYPE!V(*elem); - else - (*$var)[i] = 0.; - } - } - else - Perl_croak(aTHX_ \"%s: %s is not an array reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - -HERE - - my $output_tmpl = <<'HERE'; -!TYPENAME! - AV* av = newAV(); - $arg = newRV_noinc((SV*)av); - const unsigned int len = $var.size(); - if (len) - av_extend(av, len-1); - for (unsigned int i = 0; i < len; i++) { - av_store(av, i, newSV!SHORTTYPELC!v(${var}[i])); - } - -!TYPENAME!_PTR - AV* av = newAV(); - $arg = newRV_noinc((SV*)av); - const unsigned int len = $var->size(); - if (len) - av_extend(av, len-1); - for (unsigned int i = 0; i < len; i++) { - av_store(av, i, newSV!SHORTTYPELC!v((*$var)[i])); - } - -HERE - - my ($output_code, $input_code); - # TYPENAME, TYPE, SHORTTYPE, SHORTTYPELC, DEFAULT - foreach my $type ([qw(T_STD_VECTOR_DOUBLE double N n 0.)], - [qw(T_STD_VECTOR_INT int I i 0)], - [qw(T_STD_VECTOR_UINT), "unsigned int", qw(U u 0)]) - { - my @type = @$type; - my $otmpl = $output_tmpl; - my $itmpl = $input_tmpl; - - for ($otmpl, $itmpl) { - s/!TYPENAME!/$type[0]/g; - s/!TYPE!/$type[1]/g; - s/!SHORTTYPE!/$type[2]/g; - s/!SHORTTYPELC!/$type[3]/g; - s/!DEFAULT!/$type[4]/g; - } - - $output_code .= $otmpl; - $input_code .= $itmpl; - } - - # add a static part - $output_code .= <<'END_OUTPUT'; -T_STD_VECTOR_STD_STRING - AV* av = newAV(); - $arg = newRV_noinc((SV*)av); - const unsigned int len = $var.size(); - if (len) - av_extend(av, len-1); - for (unsigned int i = 0; i < len; i++) { - const std::string& str = ${var}[i]; - STRLEN len = str.length(); - av_store(av, i, newSVpv(str.c_str(), len)); - } - -T_STD_VECTOR_STD_STRING_PTR - AV* av = newAV(); - $arg = newRV_noinc((SV*)av); - const unsigned int len = $var->size(); - if (len) - av_extend(av, len-1); - for (unsigned int i = 0; i < len; i++) { - const std::string& str = (*$var)[i]; - STRLEN len = str.length(); - av_store(av, i, newSVpv(str.c_str(), len)); - } - -T_STD_VECTOR_CSTRING - AV* av = newAV(); - $arg = newRV_noinc((SV*)av); - const unsigned int len = $var.size(); - if (len) - av_extend(av, len-1); - for (unsigned int i = 0; i < len; i++) { - STRLEN len = strlen(${var}[i]); - av_store(av, i, newSVpv(${var}[i], len)); - } - -T_STD_VECTOR_CSTRING_PTR - AV* av = newAV(); - $arg = newRV_noinc((SV*)av); - const unsigned int len = $var->size(); - if (len) - av_extend(av, len-1); - for (unsigned int i = 0; i < len; i++) { - STRLEN len = strlen((*$var)[i]); - av_store(av, i, newSVpv((*$var)[i], len)); - } - -END_OUTPUT - - # add a static part to input - $input_code .= <<'END_INPUT'; -T_STD_VECTOR_STD_STRING - if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV) { - AV* av = (AV*)SvRV($arg); - const unsigned int alen = av_len(av)+1; - $var = std::vector<std::string>(alen); - STRLEN len; - char* tmp; - SV** elem; - for (unsigned int i = 0; i < alen; i++) { - elem = av_fetch(av, i, 0); - if (elem != NULL) { - tmp = SvPV(*elem, len); - ${var}[i] = std::string(tmp, len); - } - else - ${var}[i] = std::string(\"\"); - } - } - else - Perl_croak(aTHX_ \"%s: %s is not an array reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - -T_STD_VECTOR_STD_STRING_PTR - if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV) { - AV* av = (AV*)SvRV($arg); - const unsigned int alen = av_len(av)+1; - $var = new std::vector<std::string>(alen); - STRLEN len; - char* tmp; - SV** elem; - for (unsigned int i = 0; i < alen; i++) { - elem = av_fetch(av, i, 0); - if (elem != NULL) { - tmp = SvPV(*elem, len); - (*$var)[i] = std::string(tmp, len); - } - else - (*$var)[i] = std::string(\"\"); - } - } - else - Perl_croak(aTHX_ \"%s: %s is not an array reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - -T_STD_VECTOR_CSTRING - if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV) { - AV* av = (AV*)SvRV($arg); - const unsigned int len = av_len(av)+1; - $var = std::vector<char*>(len); - SV** elem; - for (unsigned int i = 0; i < len; i++) { - elem = av_fetch(av, i, 0); - if (elem != NULL) { - ${var}[i] = SvPV_nolen(*elem); - else - ${var}[i] = NULL; - } - } - else - Perl_croak(aTHX_ \"%s: %s is not an array reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); - -T_STD_VECTOR_CSTRING_PTR - if (SvROK($arg) && SvTYPE(SvRV($arg))==SVt_PVAV) { - AV* av = (AV*)SvRV($arg); - const unsigned int len = av_len(av)+1; - $var = new std::vector<char*>(len); - SV** elem; - for (unsigned int i = 0; i < len; i++) { - elem = av_fetch(av, i, 0); - if (elem != NULL) { - (*$var)[i] = SvPV_nolen(*elem); - else - (*$var)[i] = NULL; - } - } - else - Perl_croak(aTHX_ \"%s: %s is not an array reference\", - ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, - \"$var\"); -END_INPUT - - my $typemap_code = <<'END_TYPEMAP'; -TYPEMAP -std::vector<double>* T_STD_VECTOR_DOUBLE_PTR -std::vector<double> T_STD_VECTOR_DOUBLE -std::vector<int>* T_STD_VECTOR_INT_PTR -std::vector<int> T_STD_VECTOR_INT -std::vector<unsigned int>* T_STD_VECTOR_UINT_PTR -std::vector<unsigned int> T_STD_VECTOR_UINT -std::vector<std::string> T_STD_VECTOR_STD_STRING -std::vector<std::string>* T_STD_VECTOR_STD_STRING_PTR -std::vector<char*> T_STD_VECTOR_CSTRING -std::vector<char*>* T_STD_VECTOR_CSTRING_PTR - -INPUT -END_TYPEMAP - $typemap_code .= $input_code; - $typemap_code .= "\nOUTPUT\n"; - $typemap_code .= $output_code; - $typemap_code .= "\n"; - - $self->add_string(string => $typemap_code); - - return $self; -} - -1; - -__END__ - -=head1 SEE ALSO - -L<ExtUtils::Typemaps>, L<ExtUtils::Typemaps::Default>, L<ExtUtils::Typemaps::ObjectMap>, -L<ExtUtils::Typemaps::STL>, L<ExtUtils::Typemaps::STL::String> - -=head1 AUTHOR - -Steffen Mueller <smueller@cpan.org> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2010, 2011, 2012, 2013 by Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/Type.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/Type.pm deleted file mode 100644 index 7909bbe7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/Typemaps/Type.pm +++ /dev/null @@ -1,121 +0,0 @@ -package ExtUtils::Typemaps::Type; -use 5.006001; -use strict; -use warnings; -require ExtUtils::Typemaps; - -our $VERSION = '3.35'; - -=head1 NAME - -ExtUtils::Typemaps::Type - Entry in the TYPEMAP section of a typemap - -=head1 SYNOPSIS - - use ExtUtils::Typemaps; - ... - my $type = $typemap->get_type_map('char*'); - my $input = $typemap->get_input_map($type->xstype); - -=head1 DESCRIPTION - -Refer to L<ExtUtils::Typemaps> for details. -Object associates C<ctype> with C<xstype>, which is the index -into the in- and output mapping tables. - -=head1 METHODS - -=cut - -=head2 new - -Requires C<xstype> and C<ctype> parameters. - -Optionally takes C<prototype> parameter. - -=cut - -sub new { - my $prot = shift; - my $class = ref($prot)||$prot; - my %args = @_; - - if (!ref($prot)) { - if (not defined $args{xstype} or not defined $args{ctype}) { - die("Need xstype and ctype parameters"); - } - } - - my $self = bless( - (ref($prot) ? {%$prot} : {proto => ''}) - => $class - ); - - $self->{xstype} = $args{xstype} if defined $args{xstype}; - $self->{ctype} = $args{ctype} if defined $args{ctype}; - $self->{tidy_ctype} = ExtUtils::Typemaps::tidy_type($self->{ctype}); - $self->{proto} = $args{'prototype'} if defined $args{'prototype'}; - - return $self; -} - -=head2 proto - -Returns or sets the prototype. - -=cut - -sub proto { - $_[0]->{proto} = $_[1] if @_ > 1; - return $_[0]->{proto}; -} - -=head2 xstype - -Returns the name of the XS type that this C type is associated to. - -=cut - -sub xstype { - return $_[0]->{xstype}; -} - -=head2 ctype - -Returns the name of the C type as it was set on construction. - -=cut - -sub ctype { - return defined($_[0]->{ctype}) ? $_[0]->{ctype} : $_[0]->{tidy_ctype}; -} - -=head2 tidy_ctype - -Returns the canonicalized name of the C type. - -=cut - -sub tidy_ctype { - return $_[0]->{tidy_ctype}; -} - -=head1 SEE ALSO - -L<ExtUtils::Typemaps> - -=head1 AUTHOR - -Steffen Mueller C<<smueller@cpan.org>> - -=head1 COPYRIGHT & LICENSE - -Copyright 2009, 2010, 2011, 2012 Steffen Mueller - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut - -1; - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp.pm deleted file mode 100644 index 54f6c7ae..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp.pm +++ /dev/null @@ -1,10 +0,0 @@ -package ExtUtils::XSpp; - -use strict; -use warnings; - -use ExtUtils::XSpp::Driver; - -our $VERSION = '0.18'; - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp.pod b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp.pod deleted file mode 100644 index 20436c1d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp.pod +++ /dev/null @@ -1,431 +0,0 @@ -=head1 NAME - -ExtUtils::XSpp - XS for C++ - -=head1 SYNOPSIS - - xspp [--typemap=typemap.xsp [--typemap=typemap2.xsp]] - [--xsubpp[=/path/to/xsubpp] [--xsubpp-args="xsubpp args"] - Foo.xsp - -or - - perl -MExtUtils::XSpp::Cmd -e xspp -- <xspp options and arguments> - -In Foo.xs - - INCLUDE_COMMAND: $^X -MExtUtils::XSpp::Cmd -e xspp -- <xspp options/arguments> - -Using C<ExtUtils::XSpp::Cmd> is equivalent to using the C<xspp> -command line script, except that there is no guarantee for C<xspp> to -be installed in the system PATH. - -=head1 OVERVIEW - -XS++ is just a thin layer over plain XS, hence to use it you -are supposed to know, at the very least, C++ and XS. - -This means that you may need typemaps for B<both> the normal XS -pre-processor I<xsubpp> and the XS++ pre-processor I<xspp>. More on -that in the I<TYPEMAPS> section below. - -=head1 COMMAND LINE - -=head2 C<--typemap=/path/to/typemap.xsp> - -Can be specified multiple times to process additional typemap files -before the main XS++ input files. Typemap files are processed the -same way as regular XS++ files, except that output code is discarded. - -=head2 C<--xsubpp[=/path/to/xsubpp]> - -If specified, XS++ will run F<xsubpp> after processing the XS++ input -file. If the path to F<xsubpp> is not specified, F<xspp> expects to -find it in the system PATH. - -=head2 C<--xsubpp-args="extra xsubpp args"> - -Can be used to pass additional command line arguments to F<xsubpp>. - -=head1 TYPEMAPS - -=head2 Ordinary XS typemaps - -To recap, I<ordinary> XS typemaps do the following three things: - -=over 2 - -=item * - -Associate a C type with an identifier such as T_FOO or O_FOO -(which we'll call I<XS type> here). - -=item * - -Define an INPUT mapping for converting a Perl data structure to the -aforementioned C type. - -=item * - -Define an OUTPUT mapping for converting the C data structure back -into a Perl data structure. - -=back - -These are still required in the context of XS++. There are some helpers -to take away the tedium, but I'll get to that later. For XS++, there's -another layer of typemaps. The following section will discuss those. - -=head2 XS++ typemaps - -There is nothing special about XS++ typemap files (i.e. you can put typemaps -directly in your F<.xsp> file), but it is handy to have common typemaps in a -separate file, typically called F<typemap.xsp> to avoid duplication. - - %typemap{<C++ type>}{simple}; - -Just let XS++ know that this is a valid type, the type will be passed -unchanged to XS code B<except> that any C<const> qualifiers will be -stripped. - - %typemap{<C++ reference type>}{reference}; - -Handle C++ references: the XS variable will be declared as a pointer, -and it will be explicitly dereferenced in the function call. If it is -used in the return value, the function will create B<copy> of the -returned value using a copy constructor. - -As a shortcut for the common case of declaring both of the above -for a given type, you may use - - %typemap{<C++ type>}; - -Which has the same effect as: - - %typemap{<C++ type>}{simple}; - %typemap{<C++ type>&}{reference}; - -For more control over the type mapping, you can use the C<parsed> -variant as follows. - - %typemap{<C++ type 1>}{parsed}{%<C++ type 2>%}; - -When C<C++ type 1> is used, replace it with C<C++ type 2> in the -generated XS code. - - %typemap{<C++ type>}{parsed}{ - %cpp_type{%<C++ type 2>%}; - %call_function_code{% $CVar = new Foo( $Call ) %}; - %cleanup_code{% ... %}; - %precall_code{% ... %}; - - # use only one of the following - %output_code{% $PerlVar = newSViv( $CVar ) %}; - %output_list{% PUTBACK; XPUSHi( $CVar ); SPAGAIN %}; - }; - -Is a more flexible form for the C<parsed> typemap. All the parameters -are optional. - -=over 4 - -=item cpp_type - -Specifies the C++ type used for the variable declaration in the -generated XS code. - -If not specified defaults to the type specified in the typemap. - -=item call_function_code - -Used when the typemap applies to the return value of the function. - -Specifies the code to use in the function call. The special variables -C<$Call> and C<$CVar> are replaced with the actual call code and the name of -the C++ return variable. - -=item output_code - -Used when the typemap applies to the return value of the function. -See also C<%output_list>. - -Specifies the code emitted right after the function call to convert -the C++ return value into a Perl return value. The special variable -C<$CVar> is replaced with the C++ return variable name. - -=item cleanup_code - -Used when the typemap applies to the return value of the function. - -Specifies some code emitted after output value processing. The -special variables C<$PerlVar> and C<$CVar> are replaced with the names of the -C++ variables containing the Perl scalar and the corresponding C++ -value. - -=item precall_code - -Used when the typemap applies to a parameter. - -Specifies some code emitted after argument processing and before -calling the C++ method. The special variables C<$PerlVar> and C<$CVar> are -replaced with the names of the C++ variables containing the Perl -scalar and the corresponding C++ value. - -=item output_list - -Used when the typemap applies to the return value of the function, as -an alternative to C<%output_code>. - -Specifies some code that manipulates the Perl stack directly in order -to return a list. The special variable C<$CVar> is replaced with the C++ -name of the output variable. - -The code must use PUTBACK/SPAGAIN if appropriate. - -=back - -=head2 Putting all the typemaps together - -In summary, the XS++ typemaps (optionally) give you much more control -over the type conversion code that's generated for your XSUBs. But -you still need to let the XS compiler know how to map the C types -to Perl and back using the XS typemaps. - -Most of the time, you just need to convert basic C(++) types or the types -that you define with your C++ classes. For the former, XS++ comes with -a few default mappings for booleans, integers, floating point numbers, -and strings. -For classes, XS++ can automatically create a mapping of type C<O_OBJECT> -which uses the de-facto standard way of storing a pointer to the C(++) -object in the IV slot of a referenced/blessed scalar. Due to backwards -compatibility, this must be explicitly enabled by adding - - %loadplugin{feature::default_xs_typemap}; - -in F<typemap.xsp> (or near the top of every F<.xsp> file). - -If you deal with any -other types as arguments or return types, you still need to write both -XS and XS++ typemaps for these so that the systems know how to deal with them. - -See either L</Custom XS typemaps> below for a way to specify XS typemaps from -XS++ or L<perlxs> for a discussion of inline XS typemaps that don't require -the traditional XS F<typemap> file. - -=head2 Custom XS typemaps - -XS++ provides a default mapping for object types to an C<O_OBJECT> typemap -with standard input and output glue code, which should be adequate for most -uses. - -There are multiple ways to override this default when needed. - - %typemap{Foo *}{simple}{ - %xs_type{O_MYMAP}; - %xs_input_code{% ... %}; // optional - %xs_output_code{% ... %}; // optional - }; - -can be used to define a new type -> XS typemap mapping, with optinal -input/output code. Since XS typemap definitions are global, XS -input/output code applies to all types with the same %xs_type, hence -there is no need to repeat it. - - %typemap{_}{simple}{ - %name{object}; - %xs_type{O_MYMAP}; - %xs_input_code{% ... %}; // optional - %xs_output_code{% ... %}; // optional - }; - -can be used to change the default typemap used for all classes. - -=head1 DESCRIPTION - -Anything that does not look like a XS++ directive or a class -declaration is passed verbatim to XS. If you want XS++ to ignore code -that looks like a XS++ directive or class declaration, simply surround it with -a raw block delimiter like this: - - %{ - XS++ won't interpret this - %} - -=head2 %code - -See under B<Classes>. Note that custom C<%code> blocks are the only -exception to the exception handling. By specifying a custom C<%code> -block, you forgo the automatic exception handlers. - -=head2 %file - - %file{file/path.h}; - ... - %file{file/path2}; - ... - %file{-} - -By default XS++ output goes to standard output; to change this, use the -C<%file> directive; use C<-> for standard output. - -=head2 %module - - %module{Module::Name}; - -Will be used to generate the C<MODULE=Module::Name> XS directives. -It indirectly sets the name of the shared library that is generated -as well as the name of the module via which L<XSLoader> will be -able to find/load it. - -=head2 %name - - %name{Perl::Class} class MyClass { ... }; - %name{Perl::Func} int foo(); - -Specifies the Perl name under which the C++ class/function will be -accessible. By default, constructor names are mapped to C<new> in Perl. - -=head2 %typemap - -See L</TYPEMAPS> above. - -=head2 %length - -When you need to pass a string from Perl to an XSUB that -takes the C string and its length as arguments, -you may have XS++ pass the length of the string automatically. -For example, if you declare a method as follows, - - void PrintLine( char* line, unsigned int %length{line} ); - -you can call the method from Perl like this: - - $object->PrintLine( $string ); - -This feature is also present in plain XS. See also: L<perlxs>. - -If you use C<%length(line)> in conjunction with any kind of -special code block such as C<%code>, C<%postcall>, etc., -then you can refer to the length of the string -(here: C<line>) I<efficiently> as C<length(line)> in the code. - -=head2 %alias - -Decorator for function/method declarations such as - - double add(double a, double b) - %alias{subtract = 1} %alias{multiply = 2}; - -Which will cause the generation of just a single XSUB using the -XS "ALIAS" feature (see L<perlxs>). It will be installed as all of -C<add>, C<subtract>, and C<multiply> on the Perl side and call either -the C++ C<add>, C<subtract>, or C<multiply> functions depending on -which way it was called. - -Notes: If used in conjunction with C<%name{foo}> to rename the function, -then the C<%name> will only affect the main function name -(in the above example, C<add> but not C<subtract> or C<multiply>). -When used with the C<%code> feature, the custom code will have to -use the C<ix> integer variable to decide which function to call. -C<ix> is set to 0 for the main function. Make sure to read up -on the ALIAS feature of plain XS. Aliasing is not supported for -constructors and destructors. - -=head2 Classes - - %name{My::Class} class MyClass : public %name{My::Base} MyBase - { - // can be called in Perl as My::Class->new( ... ); - MyClass( int arg ); - // My::Class->newMyClass( ... ); - %name{newMyClass} MyClass( const char* str, int arg ); - - // standard DESTROY method - ~MyClass(); - - int GetInt(); - void SetValue( int arg = -1 ); - - %name{SetString} void SetValue( const char* string = NULL ); - - // Supply a C<CODE:> or C<CLEANUP:> block for the XS - int MyMethod( int a, int b ) - %code{% RETVAL = a + b; %} - %cleanup{% /* do something */ %}; - - // Expose class method as My::ClassMethod::ClassMethod($foo) - static void ClassMethod( double foo ); - - // Expose member variable as a pair of set_boolean/get_boolean accessors - bool boolean %get %set; - }; - -=head2 Comments - -XS++ recognizes both C-style comments C</* ... */> and C++-style -comments C<// ...>. Comments are removed from the XS output. - -=head2 Exceptions - -C++ Exceptions are always caught and transformed to Perl C<croak()> -calls. If the exception that was caught inherited from C<std::exception>, -then the C<what()> message is included in the Perl-level error message. -All other exceptions will result in the C<croak()> message -C<"Caught unhandled C++ exception of unknown type">. - -Note that if you supply a custom C<%code> block for a function or method, -the automatic exception handling is turned off. - -=head2 Member variables - -By default, member variable declarations are ignored; the C<%get> and -C<%set> decorators syntehsize a getter/setter named after the member -variable (can be renamed using C<%name>). - -XS++ defaults to get_/set_ prefix for getters/setters. This can be -overridden on an individual basis by using e.g. - - int foo %get{readFoo} %set{writeFoo}; - -As an alternative, the class-level C<%accessors> decorator sets the the -accessor style for the whole class: - - %accessors{ - %get_style{no_prefix}; - %set_style{camelcase}; - }; - -Available styles are - -=over 4 - -=item no_prefix => foo - -=item underscore => get_foo, set_foo - -=item camelcase => getFoo, setFoo - -=item uppercase => GetFoo, SetFoo - -=back - -=head1 EXAMPLES - -The distribution contains an F<examples> directory. The -F<examples/XSpp-Example> directory therein demonstrates -a particularly simple way of getting started with XS++. - -=head1 AUTHOR - -Mattia Barbon <mbarbon@cpan.org> - -=head1 LICENSE - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut - -# local variables: -# mode: cperl -# end: diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Cmd.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Cmd.pm deleted file mode 100644 index b010547b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Cmd.pm +++ /dev/null @@ -1,54 +0,0 @@ -package ExtUtils::XSpp::Cmd; - -use strict; - -=head1 NAME - -ExtUtils::XSpp::Cmd - implementation of xspp - -=head1 SYNOPSIS - - perl -MExtUtils::XSpp::Cmd -e xspp -- <xspp options/arguments> - -In Foo.xs - - INCLUDE_COMMAND: $^X -MExtUtils::XSpp::Cmd -e xspp -- <xspp options/arguments> - -Using C<ExtUtils::XSpp::Cmd> is equivalent to using the C<xspp> -command line script, except that there is no guarantee for C<xspp> to -be installed in the system PATH. - -=head1 DOCUMENTATION - -See L<ExtUtils::XSpp>, L<xspp>. - -=cut - -use Exporter 'import'; -use Getopt::Long; - -use ExtUtils::XSpp::Driver; - -our @EXPORT = qw(xspp); - -sub xspp { - my( @typemap_files, $xsubpp, $xsubpp_args ); - GetOptions( 'typemap=s' => \@typemap_files, - 'xsubpp:s' => \$xsubpp, - 'xsubpp-args=s' => \$xsubpp_args, - ); - $xsubpp = 'xsubpp' if defined $xsubpp && !length $xsubpp; - - my $driver = ExtUtils::XSpp::Driver->new - ( typemaps => \@typemap_files, - file => shift @ARGV, - xsubpp => $xsubpp, - xsubpp_args => $xsubpp_args, - ); - my $success = $driver->process ? 0 : 1; - - exit $success unless defined wantarray; - return $success; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Driver.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Driver.pm deleted file mode 100644 index dbebaf99..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Driver.pm +++ /dev/null @@ -1,135 +0,0 @@ -package ExtUtils::XSpp::Driver; - -use strict; -use warnings; - -use File::Basename (); -use File::Path (); - -use ExtUtils::XSpp::Parser; - -sub new { - my( $class, %args ) = @_; - my $self = bless \%args, $class; - - return $self; -} - -sub generate { - my( $self ) = @_; - - foreach my $typemap ( $self->typemaps ) { - ExtUtils::XSpp::Parser->new( file => $typemap )->parse; - } - - my $parser = ExtUtils::XSpp::Parser->new( file => $self->file, - string => $self->string, - ); - my $success = $parser->parse; - return() if not $success; - my $generated = $self->_emit( $parser ); - - my $typemap_code = ExtUtils::XSpp::Typemap::get_xs_typemap_code_for_all_typemaps(); - if (defined $typemap_code && $typemap_code =~ /\S/) { - if (exists $generated->{'-'} and $generated->{'-'} ne '') { - $generated->{'-'} = $typemap_code . $generated->{'-'}; - } - elsif (my @files = grep !/^-$/, keys %$generated) { - $generated->{$files[0]} = $typemap_code . ($generated->{$files[0]}||''); - } - else { - $generated->{'-'} = $typemap_code . ($generated->{'-'}||''); - } - } - - return $generated; -} - -sub process { - my( $self ) = @_; - - my $generated = $self->generate; - return () if not $generated; - return $self->_write( $generated ); -} - -sub _write { - my( $self, $out ) = @_; - - foreach my $f ( keys %$out ) { - if( $f eq '-' ) { - if( $self->xsubpp ) { - require IPC::Open2; - - my $cmd = $self->xsubpp . ' ' . ( $self->xsubpp_args || '' ) - . ' -'; - my $pid = IPC::Open2::open2( '>&STDOUT', my $fh, $cmd ); - - print $fh $$out{$f} or die "Error writing to xsubpp: $!"; - close $fh or die "Error writing to xsubpp: $!"; - waitpid( $pid, 0 ); - my $exit_code = $? >> 8; - - return 0 if $exit_code; - } else { - print $$out{$f} or die "Error writing output"; - } - } else { - File::Path::mkpath( File::Basename::dirname( $f ) ); - - open my $fh, '>', $f or die "open '$f': $!"; - binmode $fh; - print $fh $$out{$f} or die "Error writing to '$f': $!"; - close $fh or die "close '$f': $!"; - } - } - - return 1; -} - -sub _emit { - my( $self, $parser ) = @_; - my $data = $parser->get_data; - my %out; - my $out_file = '-'; - my %state = ( current_module => undef ); - - foreach my $plugin ( @{$parser->post_process_plugins} ) { - my $method = $plugin->{method}; - - $plugin->{plugin}->$method( $data ); - } - - $out{'-'} = preamble(); - foreach my $e ( @$data ) { - if( $e->isa( 'ExtUtils::XSpp::Node::Module' ) ) { - $state{current_module} = $e; - } - if( $e->isa( 'ExtUtils::XSpp::Node::File' ) ) { - $out_file = $e->file; - $out{$out_file} ||= preamble(); - } - $out{$out_file} .= $e->print( \%state ); - } - - return \%out; -} - -sub preamble { - return <<EOT -#include <exception> -#undef xsp_constructor_class -#define xsp_constructor_class(c) (c) - - -EOT -} - -sub typemaps { @{$_[0]->{typemaps} || []} } -sub file { $_[0]->{file} } -sub string { $_[0]->{string} } -sub output { $_[0]->{output} } -sub xsubpp { $_[0]->{xsubpp} } -sub xsubpp_args { $_[0]->{xsubpp_args} } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception.pm deleted file mode 100644 index 0fb4c28e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception.pm +++ /dev/null @@ -1,297 +0,0 @@ -package ExtUtils::XSpp::Exception; -use strict; -use warnings; - -require ExtUtils::XSpp::Exception::unknown; -require ExtUtils::XSpp::Exception::simple; -require ExtUtils::XSpp::Exception::stdmessage; -require ExtUtils::XSpp::Exception::code; -require ExtUtils::XSpp::Exception::perlcode; -#require ExtUtils::XSpp::Exception::message; -require ExtUtils::XSpp::Exception::object; - -=head1 NAME - -ExtUtils::XSpp::Exception - Map C++ exceptions to Perl exceptions - -=head1 DESCRIPTION - -This class is both the base class for the different exception handling -mechanisms and the container for the global set of exception -mappings from C++ exceptions (indicated by a C++ data type to catch) -to Perl exceptions. The Perl exceptions are implemented via C<croak()>. - -The basic idea is that you can declare the C++ exception types that -you want to handle and how you plan to do so by using the C<%exception> -directive in your XS++ (or better yet, in the XS++ typemap): - - // OutOfBoundsException would have been declared - // elsewhere as: - // - // class OutOfBoundsException : public std::exception { - // public: - // OutOfBoundsException() {} - // virtual const char* what() const throw() { - // return "You accessed me out of bounds, fool!"; - // } - // } - - %exception{outOfBounds}{OutOfBoundsException}{stdmessage}; - -If you know a function or method may throw C<MyOutOfBoundsException>s, you -can annotate the declaration in your XS++ as follows: - - double get_from_array(unsigned int index) - %catch{outOfBounds}; - -When C<get_from_array> now throws an C<OutOfBoundsException>, the user -gets a Perl croak with the message -C<"Caught exception of type 'OutOfBoundsException': You accessed me out of bounds, fool!">. -There may be any number of C<%catch> directives per method. - -I<Note:> Why do we assign another name (C<outOfBounds>) to the -existing C<OutOfBoundsException>? -Because you may need to catch exceptions of the same C++ type with different -handlers for different methods. You can, in principle, re-use the C++ exception -class name for the exception I<map> name, but that may be confusing to posterity. - -Instead of adding C<%catch> to methods, you may also specify exceptions that -you wish to handle for all methods of a class: - - class Foo %catch{SomeException,AnotherException} { - ... - }; - -The C<%catch{Foo,Bar,...}> syntax is shorthand for C<%catch{Foo} %catch{Bar} ...>. -If there are exceptions to be caught both from the class and attached -to a method directly, the exceptions that are attached to the method only will -be handled first. No single type of exceptions will be handled more than once, -therefore it is safe to use this precedence to re-order the class-global -exception handling for a single method. - -If there are no C<%catch> decorators on a method, exceptions derived -from C<std::exception> will be caught with a generic C<stdmessage> -handler such as above. Even if there are C<%catch> clauses for the given method, -all otherwise uncaught exceptions will be caught with a generic error message -for safety. - -=head1 Exception handlers - -There are different cases of Perl exceptions that are implemented -as sub-classes of C<ExtUtils::XSpp::Exception>: - -=over 2 - -=item L<ExtUtils::XSpp::Exception::simple> - -implements the most general case of simply throwing a -generic error message that includes the name of the -C++ exception type. - -=item L<ExtUtils::XSpp::Exception::stdmessage> - -handles C++ exceptions that are derived from C<std::exception> and -which provide a C<char* what()> method that will provide an error message. -The Perl-level error message will include the C++ exception type name -and the exception's C<what()> message. - -=item L<ExtUtils::XSpp::Exception::code> - -allows the user to supply custom C/C++/XS code that will be included in -the exception handler verbatim. The code has access to the exception -object as the variable C<e>. Your user supplied code -is expected to propagate the exception to Perl by calling croak(). - -=cut - -=begin comment - -=item L<ExtUtils::XSpp::Exception::message> - -translates C++ exceptions to Perl error messages using a printf-like -mask for the message. Potentially filling in place-holders by calling -methods on the C++ exception object(!). Not yet implemented. -Details to be hammered out. - -=end comment - -=item L<ExtUtils::XSpp::Exception::object> - -maps C++ exceptions to throwing an instance of some Perl exception class. - -Syntax: - - %exception{myClassyException}{CppException}{object}{PerlClass}; - -Currently, this means just calling C<PerlClass-E<gt>new()> and -then die()ing with that object in C<$@>. There is no good way to pass -information from the C++ exception object to the Perl object. -Will change in future. - -=item L<ExtUtils::XSpp::Exception::unknown> - -is the default exception handler that is added to the list of handlers -automatically during code generation. It simply throws an entirely -unspecific error and catches the type C<...> (meaning I<anything>). - -=cut - -=begin comment - -=item L<ExtUtils::XSpp::Exception::perlcode> - -allows the user to supply custom Perl code that will be executed -in the exception handler. The code currently has no access to the -C++ exception object. It is supposed to return a scalar value -that is assigned to C<$@>. -Highly experimental. - -=end comment - -=back - -There is a special exception handler C<nothing> which is always -available: - - int foo() %catch{nothing}; - -It indicates that the given method (or function) is to handle no -exceptions. It squishes any exception handlers that might otherwise -be inherited from the method's class. - -=head1 METHODS - -=cut - -=head2 new - -Creates a new C<ExtUtils::XSpp::Exception>. - -Calls the C<$self-E<gt>init(@_)> method after construction. -C<init()> must be overridden in subclasses. - -=cut - -sub new { - my $class = shift; - my $this = bless {}, $class; - - $this->init( @_ ); - - return $this; -} - -sub init { - my $self = shift; - my %args = @_; - $self->{TYPE} = $args{type}; - $self->{NAME} = $args{name}; -} - -=head2 handler_code - -Unimplemented in this base class, but must be implemented -in all actual exception classes. - -Generates the C<catch(){}> block of code for inclusion -in the XS output. First (optional) argument is an integer indicating -the number of spaces to use for the first indentation level. - -=cut - -sub handler_code { - Carp::croak("Programmer left 'handler_code' method of his Exception subclass unimplemented"); -} - -=head2 indent_code - -Given a piece of code and a number of spaces to use for -global indentation, indents the code and returns it. - -=cut - -sub indent_code { - my $this = shift; - my $code = shift; - my $n = shift; - my $indent = " " x $n; - $code =~ s/^/$indent/gm; - return $code; -} - -=head2 cpp_type - -Fetches the C++ type of the exception from the C<type> attribute and returns it. - -=cut - -# TODO: Strip pointers and references -sub cpp_type { - my $this = shift; - return $this->type->print; -} - -=head1 ACCESSORS - -=head2 name - -Returns the name of the exception. -This is the C<myException> in C<%exception{myException}{char*}{handler}>. - -=cut - -sub name { $_[0]->{NAME} } - -=head2 type - -Returns the L<ExtUtils::XSpp::Node::Type> C++ type that is used for this exception. -This is the C<char*> in C<%exception{myException}{char*}{handler}>. - -=cut - -sub type { $_[0]->{TYPE} } - - -=head1 CLASS METHODS - -=cut - -my %ExceptionsByName; -#my %ExceptionsByType; - -=head2 add_exception - -Given an C<ExtUtils::XSpp::Exception> object, -adds this object to the global registry, potentially -overwriting an exception map of the same name that was -in effect before. - -=cut - -sub add_exception { - my ($class, $exception) = @_; - - $ExceptionsByName{$exception->name} = $exception; - #push @{$ExceptionsByType{$exception->print} }, $exception; - return(); -} - -=head2 get_exception_for_name - -Given the XS++ name of the exception map, fetches -the corresponding C<ExtUtils::XSpp::Exception> object -from the global registry and returns it. Croaks on error. - -=cut - -sub get_exception_for_name { - my ($class, $name) = @_; - - if (not exists $ExceptionsByName{$name}) { - Carp::confess( "No Exception with the name $name declared" ); - } - return $ExceptionsByName{$name}; -} - - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/code.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/code.pm deleted file mode 100644 index 974ef9db..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/code.pm +++ /dev/null @@ -1,34 +0,0 @@ -package ExtUtils::XSpp::Exception::code; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Exception'; - -sub _dl { return defined( $_[0] ) && length( $_[0] ) ? $_[0] : undef } - -sub init { - my $this = shift; - $this->SUPER::init(@_); - my %args = @_; - - $this->{HANDLER_CODE} = _dl( $args{handler_code} || $args{arg1} ); -} - -sub handler_code { - my $this = shift; - my $no_spaces_indent = shift; - $no_spaces_indent = 4 if not defined $no_spaces_indent; - - my $ctype = $this->cpp_type; - my $user_code = $this->{HANDLER_CODE}; - $user_code =~ s/^\s+//; - $user_code =~ s/\s+$//; - $user_code = $this->indent_code($user_code, 2); - my $code = <<HERE; -catch ($ctype& e) { -$user_code -} -HERE - return $this->indent_code($code, $no_spaces_indent); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/object.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/object.pm deleted file mode 100644 index a3226c14..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/object.pm +++ /dev/null @@ -1,38 +0,0 @@ -package ExtUtils::XSpp::Exception::object; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Exception'; - -sub _dl { return defined( $_[0] ) && length( $_[0] ) ? $_[0] : undef } - -sub init { - my $this = shift; - $this->SUPER::init(@_); - my %args = @_; - - $this->{PERL_EXCEPTION_CLASS} = _dl( $args{perl_class} || $args{arg1} ); -} - -sub handler_code { - my $this = shift; - my $no_spaces_indent = shift; - $no_spaces_indent = 4 if not defined $no_spaces_indent; - - my $ctype = $this->cpp_type; - my $pclass = $this->{PERL_EXCEPTION_CLASS}; - $pclass =~ s/^\s+//; - $pclass =~ s/\s+$//; - my $code = <<HERE; -catch ($ctype& e) { - SV* errsv; - SV* objsv; - objsv = eval_pv("$pclass->new()", 1); - errsv = get_sv("@", TRUE); - sv_setsv(errsv, exception_object); - croak(NULL); -} -HERE - return $this->indent_code($code, $no_spaces_indent); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/perlcode.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/perlcode.pm deleted file mode 100644 index 828d907e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/perlcode.pm +++ /dev/null @@ -1,46 +0,0 @@ -package ExtUtils::XSpp::Exception::perlcode; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Exception'; - -sub _dl { return defined( $_[0] ) && length( $_[0] ) ? $_[0] : undef } - -sub init { - my $this = shift; - $this->SUPER::init(@_); - my %args = @_; - - $this->{PERL_CODE} = _dl( $args{perl_code} || $args{arg1} ); -} - -sub handler_code { - my $this = shift; - my $no_spaces_indent = shift; - $no_spaces_indent = 4 if not defined $no_spaces_indent; - - my $ctype = $this->cpp_type; - my $pcode = $this->{PERL_CODE}; - $pcode =~ s/^\s+//; - $pcode =~ s/\s+$//; - $pcode =~ s/\\/\\\\/g; - $pcode =~ s/"/\\"/g; - my @lines = split /\n/, $pcode; - $pcode = '"' . join(qq{"\n"}, @lines) . qq{"}; - $pcode = $this->indent_code($pcode, 4); - my $code = <<HERE; -catch ($ctype& e) { - SV* errsv; - SV* excsv; - excsv = eval_pv( -$pcode, - 1 - ); - errsv = get_sv("@", TRUE); - sv_setsv(errsv, excsv); - croak(NULL); -} -HERE - return $this->indent_code($code, $no_spaces_indent); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/simple.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/simple.pm deleted file mode 100644 index b3b4ccae..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/simple.pm +++ /dev/null @@ -1,27 +0,0 @@ -package ExtUtils::XSpp::Exception::simple; -use strict; -use warnings; - -use base 'ExtUtils::XSpp::Exception'; - -sub init { - my $this = shift; - $this->SUPER::init(@_); -} - -sub handler_code { - my $this = shift; - my $no_spaces_indent = shift; - $no_spaces_indent = 4 if not defined $no_spaces_indent; - - my $ctype = $this->cpp_type; - my $msg = "Caught C++ exception of type '$ctype'"; - my $code = <<HERE; -catch ($ctype& e) { - croak("$msg"); -} -HERE - return $this->indent_code($code, $no_spaces_indent); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/stdmessage.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/stdmessage.pm deleted file mode 100644 index 72f18105..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/stdmessage.pm +++ /dev/null @@ -1,26 +0,0 @@ -package ExtUtils::XSpp::Exception::stdmessage; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Exception'; - -sub init { - my $this = shift; - $this->SUPER::init(@_); -} - -sub handler_code { - my $this = shift; - my $no_spaces_indent = shift; - $no_spaces_indent = 4 if not defined $no_spaces_indent; - - my $ctype = $this->cpp_type; - my $msg = "Caught C++ exception of type or derived from '$ctype': \%s"; - my $code = <<HERE; -catch ($ctype& e) { - croak("$msg", e.what()); -} -HERE - return $this->indent_code($code, $no_spaces_indent); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/unknown.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/unknown.pm deleted file mode 100644 index 60c890d2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Exception/unknown.pm +++ /dev/null @@ -1,26 +0,0 @@ -package ExtUtils::XSpp::Exception::unknown; -use strict; -use warnings; - -use base 'ExtUtils::XSpp::Exception'; - -sub init { - my $this = shift; - $this->SUPER::init(@_); -} - -sub handler_code { - my $this = shift; - my $no_spaces_indent = shift; - $no_spaces_indent = 4 if not defined $no_spaces_indent; - - my $msg = "Caught C++ exception of unknown type"; - my $code = <<HERE; -catch (...) { - croak("$msg"); -} -HERE - return $this->indent_code($code, $no_spaces_indent); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Grammar.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Grammar.pm deleted file mode 100644 index d6781e61..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Grammar.pm +++ /dev/null @@ -1,3771 +0,0 @@ -#################################################################### -# -# This file was generated using Parse::Yapp version 1.05. -# -# Don't edit this file, use source file instead. -# -# ANY CHANGE MADE HERE WILL BE LOST ! -# -#################################################################### -package ExtUtils::XSpp::Grammar; -use vars qw ( @ISA ); -use strict; - -@ISA= qw ( ExtUtils::XSpp::Grammar::YappDriver ); -#Included Parse/Yapp/Driver.pm file---------------------------------------- -{ -# -# Module ExtUtils::XSpp::Grammar::YappDriver -# -# This module is part of the Parse::Yapp package available on your -# nearest CPAN -# -# Any use of this module in a standalone parser make the included -# text under the same copyright as the Parse::Yapp module itself. -# -# This notice should remain unchanged. -# -# (c) Copyright 1998-2001 Francois Desarmenien, all rights reserved. -# (see the pod text in Parse::Yapp module for use and distribution rights) -# - -package ExtUtils::XSpp::Grammar::YappDriver; - -require 5.004; - -use strict; - -use vars qw ( $VERSION $COMPATIBLE $FILENAME ); - -$VERSION = '1.05'; -$COMPATIBLE = '0.07'; -$FILENAME=__FILE__; - -use Carp; - -#Known parameters, all starting with YY (leading YY will be discarded) -my(%params)=(YYLEX => 'CODE', 'YYERROR' => 'CODE', YYVERSION => '', - YYRULES => 'ARRAY', YYSTATES => 'ARRAY', YYDEBUG => ''); -#Mandatory parameters -my(@params)=('LEX','RULES','STATES'); - -sub new { - my($class)=shift; - my($errst,$nberr,$token,$value,$check,$dotpos); - my($self)={ ERROR => \&_Error, - ERRST => \$errst, - NBERR => \$nberr, - TOKEN => \$token, - VALUE => \$value, - DOTPOS => \$dotpos, - STACK => [], - DEBUG => 0, - CHECK => \$check }; - - _CheckParams( [], \%params, \@_, $self ); - - exists($$self{VERSION}) - and $$self{VERSION} < $COMPATIBLE - and croak "Yapp driver version $VERSION ". - "incompatible with version $$self{VERSION}:\n". - "Please recompile parser module."; - - ref($class) - and $class=ref($class); - - bless($self,$class); -} - -sub YYParse { - my($self)=shift; - my($retval); - - _CheckParams( \@params, \%params, \@_, $self ); - - if($$self{DEBUG}) { - _DBLoad(); - $retval = eval '$self->_DBParse()';#Do not create stab entry on compile - $@ and die $@; - } - else { - $retval = $self->_Parse(); - } - $retval -} - -sub YYData { - my($self)=shift; - - exists($$self{USER}) - or $$self{USER}={}; - - $$self{USER}; - -} - -sub YYErrok { - my($self)=shift; - - ${$$self{ERRST}}=0; - undef; -} - -sub YYNberr { - my($self)=shift; - - ${$$self{NBERR}}; -} - -sub YYRecovering { - my($self)=shift; - - ${$$self{ERRST}} != 0; -} - -sub YYAbort { - my($self)=shift; - - ${$$self{CHECK}}='ABORT'; - undef; -} - -sub YYAccept { - my($self)=shift; - - ${$$self{CHECK}}='ACCEPT'; - undef; -} - -sub YYError { - my($self)=shift; - - ${$$self{CHECK}}='ERROR'; - undef; -} - -sub YYSemval { - my($self)=shift; - my($index)= $_[0] - ${$$self{DOTPOS}} - 1; - - $index < 0 - and -$index <= @{$$self{STACK}} - and return $$self{STACK}[$index][1]; - - undef; #Invalid index -} - -sub YYCurtok { - my($self)=shift; - - @_ - and ${$$self{TOKEN}}=$_[0]; - ${$$self{TOKEN}}; -} - -sub YYCurval { - my($self)=shift; - - @_ - and ${$$self{VALUE}}=$_[0]; - ${$$self{VALUE}}; -} - -sub YYExpect { - my($self)=shift; - - keys %{$self->{STATES}[$self->{STACK}[-1][0]]{ACTIONS}} -} - -sub YYLexer { - my($self)=shift; - - $$self{LEX}; -} - - -################# -# Private stuff # -################# - - -sub _CheckParams { - my($mandatory,$checklist,$inarray,$outhash)=@_; - my($prm,$value); - my($prmlst)={}; - - while(($prm,$value)=splice(@$inarray,0,2)) { - $prm=uc($prm); - exists($$checklist{$prm}) - or croak("Unknow parameter '$prm'"); - ref($value) eq $$checklist{$prm} - or croak("Invalid value for parameter '$prm'"); - $prm=unpack('@2A*',$prm); - $$outhash{$prm}=$value; - } - for (@$mandatory) { - exists($$outhash{$_}) - or croak("Missing mandatory parameter '".lc($_)."'"); - } -} - -sub _Error { - print "Parse error.\n"; -} - -sub _DBLoad { - { - no strict 'refs'; - - exists(${__PACKAGE__.'::'}{_DBParse})#Already loaded ? - and return; - } - my($fname)=__FILE__; - my(@drv); - open(DRV,"<$fname") or die "Report this as a BUG: Cannot open $fname"; - while(<DRV>) { - /^\s*sub\s+_Parse\s*{\s*$/ .. /^\s*}\s*#\s*_Parse\s*$/ - and do { - s/^#DBG>//; - push(@drv,$_); - } - } - close(DRV); - - $drv[0]=~s/_P/_DBP/; - eval join('',@drv); -} - -#Note that for loading debugging version of the driver, -#this file will be parsed from 'sub _Parse' up to '}#_Parse' inclusive. -#So, DO NOT remove comment at end of sub !!! -sub _Parse { - my($self)=shift; - - my($rules,$states,$lex,$error) - = @$self{ 'RULES', 'STATES', 'LEX', 'ERROR' }; - my($errstatus,$nberror,$token,$value,$stack,$check,$dotpos) - = @$self{ 'ERRST', 'NBERR', 'TOKEN', 'VALUE', 'STACK', 'CHECK', 'DOTPOS' }; - -#DBG> my($debug)=$$self{DEBUG}; -#DBG> my($dbgerror)=0; - -#DBG> my($ShowCurToken) = sub { -#DBG> my($tok)='>'; -#DBG> for (split('',$$token)) { -#DBG> $tok.= (ord($_) < 32 or ord($_) > 126) -#DBG> ? sprintf('<%02X>',ord($_)) -#DBG> : $_; -#DBG> } -#DBG> $tok.='<'; -#DBG> }; - - $$errstatus=0; - $$nberror=0; - ($$token,$$value)=(undef,undef); - @$stack=( [ 0, undef ] ); - $$check=''; - - while(1) { - my($actions,$act,$stateno); - - $stateno=$$stack[-1][0]; - $actions=$$states[$stateno]; - -#DBG> print STDERR ('-' x 40),"\n"; -#DBG> $debug & 0x2 -#DBG> and print STDERR "In state $stateno:\n"; -#DBG> $debug & 0x08 -#DBG> and print STDERR "Stack:[". -#DBG> join(',',map { $$_[0] } @$stack). -#DBG> "]\n"; - - - if (exists($$actions{ACTIONS})) { - - defined($$token) - or do { - ($$token,$$value)=&$lex($self); -#DBG> $debug & 0x01 -#DBG> and print STDERR "Need token. Got ".&$ShowCurToken."\n"; - }; - - $act= exists($$actions{ACTIONS}{$$token}) - ? $$actions{ACTIONS}{$$token} - : exists($$actions{DEFAULT}) - ? $$actions{DEFAULT} - : undef; - } - else { - $act=$$actions{DEFAULT}; -#DBG> $debug & 0x01 -#DBG> and print STDERR "Don't need token.\n"; - } - - defined($act) - and do { - - $act > 0 - and do { #shift - -#DBG> $debug & 0x04 -#DBG> and print STDERR "Shift and go to state $act.\n"; - - $$errstatus - and do { - --$$errstatus; - -#DBG> $debug & 0x10 -#DBG> and $dbgerror -#DBG> and $$errstatus == 0 -#DBG> and do { -#DBG> print STDERR "**End of Error recovery.\n"; -#DBG> $dbgerror=0; -#DBG> }; - }; - - - push(@$stack,[ $act, $$value ]); - - $$token ne '' #Don't eat the eof - and $$token=$$value=undef; - next; - }; - - #reduce - my($lhs,$len,$code,@sempar,$semval); - ($lhs,$len,$code)=@{$$rules[-$act]}; - -#DBG> $debug & 0x04 -#DBG> and $act -#DBG> and print STDERR "Reduce using rule ".-$act." ($lhs,$len): "; - - $act - or $self->YYAccept(); - - $$dotpos=$len; - - unpack('A1',$lhs) eq '@' #In line rule - and do { - $lhs =~ /^\@[0-9]+\-([0-9]+)$/ - or die "In line rule name '$lhs' ill formed: ". - "report it as a BUG.\n"; - $$dotpos = $1; - }; - - @sempar = $$dotpos - ? map { $$_[1] } @$stack[ -$$dotpos .. -1 ] - : (); - - $semval = $code ? &$code( $self, @sempar ) - : @sempar ? $sempar[0] : undef; - - splice(@$stack,-$len,$len); - - $$check eq 'ACCEPT' - and do { - -#DBG> $debug & 0x04 -#DBG> and print STDERR "Accept.\n"; - - return($semval); - }; - - $$check eq 'ABORT' - and do { - -#DBG> $debug & 0x04 -#DBG> and print STDERR "Abort.\n"; - - return(undef); - - }; - -#DBG> $debug & 0x04 -#DBG> and print STDERR "Back to state $$stack[-1][0], then "; - - $$check eq 'ERROR' - or do { -#DBG> $debug & 0x04 -#DBG> and print STDERR -#DBG> "go to state $$states[$$stack[-1][0]]{GOTOS}{$lhs}.\n"; - -#DBG> $debug & 0x10 -#DBG> and $dbgerror -#DBG> and $$errstatus == 0 -#DBG> and do { -#DBG> print STDERR "**End of Error recovery.\n"; -#DBG> $dbgerror=0; -#DBG> }; - - push(@$stack, - [ $$states[$$stack[-1][0]]{GOTOS}{$lhs}, $semval ]); - $$check=''; - next; - }; - -#DBG> $debug & 0x04 -#DBG> and print STDERR "Forced Error recovery.\n"; - - $$check=''; - - }; - - #Error - $$errstatus - or do { - - $$errstatus = 1; - &$error($self); - $$errstatus # if 0, then YYErrok has been called - or next; # so continue parsing - -#DBG> $debug & 0x10 -#DBG> and do { -#DBG> print STDERR "**Entering Error recovery.\n"; -#DBG> ++$dbgerror; -#DBG> }; - - ++$$nberror; - - }; - - $$errstatus == 3 #The next token is not valid: discard it - and do { - $$token eq '' # End of input: no hope - and do { -#DBG> $debug & 0x10 -#DBG> and print STDERR "**At eof: aborting.\n"; - return(undef); - }; - -#DBG> $debug & 0x10 -#DBG> and print STDERR "**Dicard invalid token ".&$ShowCurToken.".\n"; - - $$token=$$value=undef; - }; - - $$errstatus=3; - - while( @$stack - and ( not exists($$states[$$stack[-1][0]]{ACTIONS}) - or not exists($$states[$$stack[-1][0]]{ACTIONS}{error}) - or $$states[$$stack[-1][0]]{ACTIONS}{error} <= 0)) { - -#DBG> $debug & 0x10 -#DBG> and print STDERR "**Pop state $$stack[-1][0].\n"; - - pop(@$stack); - } - - @$stack - or do { - -#DBG> $debug & 0x10 -#DBG> and print STDERR "**No state left on stack: aborting.\n"; - - return(undef); - }; - - #shift the error token - -#DBG> $debug & 0x10 -#DBG> and print STDERR "**Shift \$error token and go to state ". -#DBG> $$states[$$stack[-1][0]]{ACTIONS}{error}. -#DBG> ".\n"; - - push(@$stack, [ $$states[$$stack[-1][0]]{ACTIONS}{error}, undef ]); - - } - - #never reached - croak("Error in driver logic. Please, report it as a BUG"); - -}#_Parse -#DO NOT remove comment - -1; - -} -#End of include-------------------------------------------------- - - - - -sub new { - my($class)=shift; - ref($class) - and $class=ref($class); - - my($self)=$class->SUPER::new( yyversion => '1.05', - yystates => -[ - {#State 0 - ACTIONS => { - 'ID' => 28, - 'p_typemap' => 4, - 'p_any' => 3, - 'OPSPECIAL' => 33, - 'COMMENT' => 7, - 'p_exceptionmap' => 36, - "class" => 9, - 'RAW_CODE' => 37, - "const" => 11, - "int" => 40, - 'p_module' => 16, - "enum" => 47, - 'p_package' => 46, - 'p_loadplugin' => 45, - 'PREPROCESSOR' => 17, - "short" => 18, - 'p_file' => 49, - "void" => 19, - "unsigned" => 50, - 'p_name' => 21, - 'p_include' => 22, - "long" => 23, - 'p__type' => 26, - "char" => 27 - }, - GOTOS => { - 'perc_loadplugin' => 29, - 'class_name' => 1, - 'top_list' => 2, - 'perc_package' => 32, - 'function' => 31, - 'nconsttype' => 30, - '_top' => 5, - 'looks_like_function' => 6, - 'exceptionmap' => 34, - 'special_block_start' => 35, - 'perc_name' => 8, - 'class_decl' => 38, - 'typemap' => 10, - 'enum' => 39, - 'decorate_class' => 12, - 'special_block' => 13, - 'perc_module' => 41, - 'type_name' => 14, - 'perc_file' => 44, - 'perc_any' => 43, - 'basic_type' => 42, - 'template' => 15, - 'looks_like_renamed_function' => 48, - 'top' => 20, - 'function_decl' => 51, - 'perc_include' => 52, - 'directive' => 53, - 'type' => 24, - 'class' => 25, - 'raw' => 54 - } - }, - {#State 1 - ACTIONS => { - 'OPANG' => 55 - }, - DEFAULT => -133 - }, - {#State 2 - ACTIONS => { - 'ID' => 28, - '' => 56, - 'p_typemap' => 4, - 'p_any' => 3, - 'OPSPECIAL' => 33, - 'COMMENT' => 7, - 'p_exceptionmap' => 36, - "class" => 9, - 'RAW_CODE' => 37, - "const" => 11, - "int" => 40, - 'p_module' => 16, - "enum" => 47, - 'p_package' => 46, - 'p_loadplugin' => 45, - 'PREPROCESSOR' => 17, - "short" => 18, - 'p_file' => 49, - "void" => 19, - "unsigned" => 50, - 'p_name' => 21, - 'p_include' => 22, - "long" => 23, - "char" => 27 - }, - GOTOS => { - 'perc_loadplugin' => 29, - 'class_name' => 1, - 'function' => 31, - 'perc_package' => 32, - 'nconsttype' => 30, - '_top' => 5, - 'looks_like_function' => 6, - 'exceptionmap' => 34, - 'special_block_start' => 35, - 'perc_name' => 8, - 'class_decl' => 38, - 'typemap' => 10, - 'enum' => 39, - 'decorate_class' => 12, - 'special_block' => 13, - 'perc_module' => 41, - 'type_name' => 14, - 'perc_file' => 44, - 'perc_any' => 43, - 'basic_type' => 42, - 'template' => 15, - 'looks_like_renamed_function' => 48, - 'top' => 57, - 'function_decl' => 51, - 'perc_include' => 52, - 'directive' => 53, - 'type' => 24, - 'class' => 25, - 'raw' => 54 - } - }, - {#State 3 - ACTIONS => { - 'OPSPECIAL' => 33, - 'OPCURLY' => 58 - }, - DEFAULT => -122, - GOTOS => { - 'special_block' => 59, - 'special_block_start' => 35 - } - }, - {#State 4 - ACTIONS => { - 'OPCURLY' => 60 - } - }, - {#State 5 - DEFAULT => -4 - }, - {#State 6 - DEFAULT => -86 - }, - {#State 7 - DEFAULT => -27 - }, - {#State 8 - ACTIONS => { - 'ID' => 28, - "class" => 9, - "short" => 18, - "void" => 19, - "unsigned" => 50, - "const" => 11, - "long" => 23, - "int" => 40, - "char" => 27 - }, - GOTOS => { - 'type_name' => 14, - 'class_name' => 1, - 'basic_type' => 42, - 'nconsttype' => 30, - 'template' => 15, - 'looks_like_function' => 61, - 'class_decl' => 62, - 'type' => 24 - } - }, - {#State 9 - ACTIONS => { - 'ID' => 28 - }, - GOTOS => { - 'class_name' => 63 - } - }, - {#State 10 - DEFAULT => -16 - }, - {#State 11 - ACTIONS => { - 'ID' => 28, - "short" => 18, - "void" => 19, - "unsigned" => 50, - "long" => 23, - "int" => 40, - "char" => 27 - }, - GOTOS => { - 'type_name' => 14, - 'class_name' => 1, - 'basic_type' => 42, - 'nconsttype' => 64, - 'template' => 15 - } - }, - {#State 12 - ACTIONS => { - 'SEMICOLON' => 65 - } - }, - {#State 13 - DEFAULT => -29 - }, - {#State 14 - DEFAULT => -131 - }, - {#State 15 - DEFAULT => -132 - }, - {#State 16 - ACTIONS => { - 'OPCURLY' => 66 - } - }, - {#State 17 - DEFAULT => -28 - }, - {#State 18 - ACTIONS => { - "int" => 67 - }, - DEFAULT => -141 - }, - {#State 19 - DEFAULT => -135 - }, - {#State 20 - DEFAULT => -1 - }, - {#State 21 - ACTIONS => { - 'OPCURLY' => 68 - } - }, - {#State 22 - ACTIONS => { - 'OPCURLY' => 69 - } - }, - {#State 23 - ACTIONS => { - "int" => 70 - }, - DEFAULT => -140 - }, - {#State 24 - ACTIONS => { - 'ID' => 71 - } - }, - {#State 25 - DEFAULT => -6 - }, - {#State 26 - ACTIONS => { - 'OPCURLY' => 72 - } - }, - {#State 27 - DEFAULT => -138 - }, - {#State 28 - ACTIONS => { - 'DCOLON' => 74 - }, - DEFAULT => -147, - GOTOS => { - 'class_suffix' => 73 - } - }, - {#State 29 - ACTIONS => { - 'SEMICOLON' => 75 - } - }, - {#State 30 - ACTIONS => { - 'AMP' => 76, - 'STAR' => 77 - }, - DEFAULT => -128 - }, - {#State 31 - DEFAULT => -9 - }, - {#State 32 - ACTIONS => { - 'SEMICOLON' => 78 - } - }, - {#State 33 - DEFAULT => -184 - }, - {#State 34 - DEFAULT => -17 - }, - {#State 35 - ACTIONS => { - 'CLSPECIAL' => 79, - 'line' => 80 - }, - GOTOS => { - 'special_block_end' => 81, - 'lines' => 82 - } - }, - {#State 36 - ACTIONS => { - 'OPCURLY' => 83 - } - }, - {#State 37 - DEFAULT => -26 - }, - {#State 38 - ACTIONS => { - 'SEMICOLON' => 84 - } - }, - {#State 39 - DEFAULT => -8 - }, - {#State 40 - DEFAULT => -139 - }, - {#State 41 - ACTIONS => { - 'SEMICOLON' => 85 - } - }, - {#State 42 - DEFAULT => -134 - }, - {#State 43 - ACTIONS => { - 'SEMICOLON' => 86 - } - }, - {#State 44 - ACTIONS => { - 'SEMICOLON' => 87 - } - }, - {#State 45 - ACTIONS => { - 'OPCURLY' => 88 - } - }, - {#State 46 - ACTIONS => { - 'OPCURLY' => 89 - } - }, - {#State 47 - ACTIONS => { - 'ID' => 91, - 'OPCURLY' => 90 - } - }, - {#State 48 - DEFAULT => -95, - GOTOS => { - 'function_metadata' => 92 - } - }, - {#State 49 - ACTIONS => { - 'OPCURLY' => 93 - } - }, - {#State 50 - ACTIONS => { - "short" => 18, - "long" => 23, - "int" => 40, - "char" => 27 - }, - DEFAULT => -136, - GOTOS => { - 'basic_type' => 94 - } - }, - {#State 51 - ACTIONS => { - 'SEMICOLON' => 95 - } - }, - {#State 52 - ACTIONS => { - 'SEMICOLON' => 96 - } - }, - {#State 53 - DEFAULT => -7 - }, - {#State 54 - DEFAULT => -5 - }, - {#State 55 - ACTIONS => { - 'ID' => 28, - "short" => 18, - "void" => 19, - "const" => 11, - "unsigned" => 50, - "long" => 23, - "int" => 40, - "char" => 27 - }, - GOTOS => { - 'type_list' => 98, - 'type_name' => 14, - 'class_name' => 1, - 'basic_type' => 42, - 'nconsttype' => 30, - 'template' => 15, - 'type' => 97 - } - }, - {#State 56 - DEFAULT => 0 - }, - {#State 57 - DEFAULT => -2 - }, - {#State 58 - ACTIONS => { - 'ID' => 102, - 'p_any' => 99, - 'p_name' => 21 - }, - GOTOS => { - 'perc_name' => 101, - 'perc_any_arg' => 100, - 'perc_any_args' => 103 - } - }, - {#State 59 - DEFAULT => -24, - GOTOS => { - 'mixed_blocks' => 104 - } - }, - {#State 60 - ACTIONS => { - 'ID' => 28, - "short" => 18, - "void" => 19, - "const" => 11, - "unsigned" => 50, - "long" => 23, - "int" => 40, - "char" => 27 - }, - GOTOS => { - 'type_name' => 14, - 'class_name' => 1, - 'basic_type' => 42, - 'nconsttype' => 30, - 'template' => 15, - 'type' => 105 - } - }, - {#State 61 - DEFAULT => -87 - }, - {#State 62 - DEFAULT => -43 - }, - {#State 63 - ACTIONS => { - 'COLON' => 107 - }, - DEFAULT => -47, - GOTOS => { - 'base_classes' => 106 - } - }, - {#State 64 - ACTIONS => { - 'AMP' => 76, - 'STAR' => 77 - }, - DEFAULT => -127 - }, - {#State 65 - DEFAULT => -39 - }, - {#State 66 - ACTIONS => { - 'ID' => 28 - }, - GOTOS => { - 'class_name' => 108 - } - }, - {#State 67 - DEFAULT => -143 - }, - {#State 68 - ACTIONS => { - 'ID' => 28 - }, - GOTOS => { - 'class_name' => 109 - } - }, - {#State 69 - ACTIONS => { - 'ID' => 111, - 'DASH' => 112 - }, - GOTOS => { - 'file_name' => 110 - } - }, - {#State 70 - DEFAULT => -142 - }, - {#State 71 - ACTIONS => { - 'OPPAR' => 113 - } - }, - {#State 72 - ACTIONS => { - 'ID' => 28, - "short" => 18, - "void" => 19, - "const" => 11, - "unsigned" => 50, - "long" => 23, - "int" => 40, - "char" => 27 - }, - GOTOS => { - 'type_name' => 14, - 'class_name' => 1, - 'basic_type' => 42, - 'nconsttype' => 30, - 'template' => 15, - 'type' => 114 - } - }, - {#State 73 - ACTIONS => { - 'DCOLON' => 115 - }, - DEFAULT => -148 - }, - {#State 74 - ACTIONS => { - 'ID' => 116 - } - }, - {#State 75 - DEFAULT => -13 - }, - {#State 76 - DEFAULT => -130 - }, - {#State 77 - DEFAULT => -129 - }, - {#State 78 - DEFAULT => -11 - }, - {#State 79 - DEFAULT => -185 - }, - {#State 80 - DEFAULT => -186 - }, - {#State 81 - DEFAULT => -183 - }, - {#State 82 - ACTIONS => { - 'CLSPECIAL' => 79, - 'line' => 117 - }, - GOTOS => { - 'special_block_end' => 118 - } - }, - {#State 83 - ACTIONS => { - 'ID' => 119 - } - }, - {#State 84 - DEFAULT => -38 - }, - {#State 85 - DEFAULT => -10 - }, - {#State 86 - DEFAULT => -15 - }, - {#State 87 - DEFAULT => -12 - }, - {#State 88 - ACTIONS => { - 'ID' => 28 - }, - GOTOS => { - 'class_name' => 120 - } - }, - {#State 89 - ACTIONS => { - 'ID' => 28 - }, - GOTOS => { - 'class_name' => 121 - } - }, - {#State 90 - DEFAULT => -32, - GOTOS => { - 'enum_element_list' => 122 - } - }, - {#State 91 - ACTIONS => { - 'OPCURLY' => 123 - } - }, - {#State 92 - ACTIONS => { - 'p_any' => 3, - 'p_alias' => 128, - 'p_code' => 131, - 'p_cleanup' => 125, - 'p_postcall' => 127, - 'p_catch' => 135 - }, - DEFAULT => -88, - GOTOS => { - 'perc_postcall' => 130, - 'perc_code' => 124, - 'perc_any' => 132, - 'perc_cleanup' => 133, - 'perc_catch' => 126, - '_function_metadata' => 134, - 'perc_alias' => 129 - } - }, - {#State 93 - ACTIONS => { - 'ID' => 111, - 'DASH' => 112 - }, - GOTOS => { - 'file_name' => 136 - } - }, - {#State 94 - DEFAULT => -137 - }, - {#State 95 - DEFAULT => -40 - }, - {#State 96 - DEFAULT => -14 - }, - {#State 97 - DEFAULT => -145 - }, - {#State 98 - ACTIONS => { - 'CLANG' => 137, - 'COMMA' => 138 - } - }, - {#State 99 - DEFAULT => -24, - GOTOS => { - 'mixed_blocks' => 139 - } - }, - {#State 100 - DEFAULT => -123 - }, - {#State 101 - ACTIONS => { - 'SEMICOLON' => 140 - } - }, - {#State 102 - ACTIONS => { - 'CLCURLY' => 141 - } - }, - {#State 103 - ACTIONS => { - 'p_any' => 99, - 'p_name' => 21, - 'CLCURLY' => 143 - }, - GOTOS => { - 'perc_name' => 101, - 'perc_any_arg' => 142 - } - }, - {#State 104 - ACTIONS => { - 'OPSPECIAL' => 33, - 'OPCURLY' => 144 - }, - DEFAULT => -121, - GOTOS => { - 'simple_block' => 146, - 'special_block' => 145, - 'special_block_start' => 35 - } - }, - {#State 105 - ACTIONS => { - 'CLCURLY' => 147 - } - }, - {#State 106 - ACTIONS => { - 'COMMA' => 149 - }, - DEFAULT => -55, - GOTOS => { - 'class_metadata' => 148 - } - }, - {#State 107 - ACTIONS => { - "protected" => 153, - "private" => 152, - "public" => 150 - }, - GOTOS => { - 'base_class' => 151 - } - }, - {#State 108 - ACTIONS => { - 'CLCURLY' => 154 - } - }, - {#State 109 - ACTIONS => { - 'CLCURLY' => 155 - } - }, - {#State 110 - ACTIONS => { - 'CLCURLY' => 156 - } - }, - {#State 111 - ACTIONS => { - 'DOT' => 158, - 'SLASH' => 157 - } - }, - {#State 112 - DEFAULT => -153 - }, - {#State 113 - ACTIONS => { - 'ID' => 28, - "short" => 18, - "void" => 160, - "unsigned" => 50, - "const" => 11, - "long" => 23, - "int" => 40, - "char" => 27 - }, - DEFAULT => -160, - GOTOS => { - 'type_name' => 14, - 'class_name' => 1, - 'basic_type' => 42, - 'nconsttype' => 30, - 'template' => 15, - 'nonvoid_arg_list' => 159, - 'arg_list' => 162, - 'argument' => 163, - 'type' => 161 - } - }, - {#State 114 - ACTIONS => { - 'CLCURLY' => 164 - } - }, - {#State 115 - ACTIONS => { - 'ID' => 165 - } - }, - {#State 116 - DEFAULT => -151 - }, - {#State 117 - DEFAULT => -187 - }, - {#State 118 - DEFAULT => -182 - }, - {#State 119 - ACTIONS => { - 'CLCURLY' => 166 - } - }, - {#State 120 - ACTIONS => { - 'CLCURLY' => 167 - } - }, - {#State 121 - ACTIONS => { - 'CLCURLY' => 168 - } - }, - {#State 122 - ACTIONS => { - 'ID' => 169, - 'PREPROCESSOR' => 17, - 'RAW_CODE' => 37, - 'OPSPECIAL' => 33, - 'COMMENT' => 7, - 'CLCURLY' => 171 - }, - GOTOS => { - 'enum_element' => 170, - 'special_block' => 13, - 'raw' => 172, - 'special_block_start' => 35 - } - }, - {#State 123 - DEFAULT => -32, - GOTOS => { - 'enum_element_list' => 173 - } - }, - {#State 124 - DEFAULT => -102 - }, - {#State 125 - ACTIONS => { - 'OPSPECIAL' => 33 - }, - GOTOS => { - 'special_block' => 174, - 'special_block_start' => 35 - } - }, - {#State 126 - DEFAULT => -105 - }, - {#State 127 - ACTIONS => { - 'OPSPECIAL' => 33 - }, - GOTOS => { - 'special_block' => 175, - 'special_block_start' => 35 - } - }, - {#State 128 - ACTIONS => { - 'OPCURLY' => 176 - } - }, - {#State 129 - DEFAULT => -106 - }, - {#State 130 - DEFAULT => -104 - }, - {#State 131 - ACTIONS => { - 'OPSPECIAL' => 33 - }, - GOTOS => { - 'special_block' => 177, - 'special_block_start' => 35 - } - }, - {#State 132 - DEFAULT => -107 - }, - {#State 133 - DEFAULT => -103 - }, - {#State 134 - DEFAULT => -94 - }, - {#State 135 - ACTIONS => { - 'OPCURLY' => 178 - } - }, - {#State 136 - ACTIONS => { - 'CLCURLY' => 179 - } - }, - {#State 137 - DEFAULT => -144 - }, - {#State 138 - ACTIONS => { - 'ID' => 28, - "short" => 18, - "void" => 19, - "const" => 11, - "unsigned" => 50, - "long" => 23, - "int" => 40, - "char" => 27 - }, - GOTOS => { - 'type_name' => 14, - 'class_name' => 1, - 'basic_type' => 42, - 'nconsttype' => 30, - 'template' => 15, - 'type' => 180 - } - }, - {#State 139 - ACTIONS => { - 'OPCURLY' => 144, - 'OPSPECIAL' => 33, - 'SEMICOLON' => 181 - }, - GOTOS => { - 'simple_block' => 146, - 'special_block' => 145, - 'special_block_start' => 35 - } - }, - {#State 140 - DEFAULT => -126 - }, - {#State 141 - DEFAULT => -24, - GOTOS => { - 'mixed_blocks' => 182 - } - }, - {#State 142 - DEFAULT => -124 - }, - {#State 143 - DEFAULT => -119 - }, - {#State 144 - ACTIONS => { - 'ID' => 183 - } - }, - {#State 145 - DEFAULT => -22 - }, - {#State 146 - DEFAULT => -23 - }, - {#State 147 - ACTIONS => { - 'OPCURLY' => 184, - 'SEMICOLON' => 185 - } - }, - {#State 148 - ACTIONS => { - 'OPCURLY' => 186, - 'p_any' => 3, - 'p_catch' => 135 - }, - GOTOS => { - 'perc_any' => 188, - 'perc_catch' => 187 - } - }, - {#State 149 - ACTIONS => { - "protected" => 153, - "private" => 152, - "public" => 150 - }, - GOTOS => { - 'base_class' => 189 - } - }, - {#State 150 - ACTIONS => { - 'ID' => 28, - 'p_name' => 21 - }, - GOTOS => { - 'perc_name' => 191, - 'class_name' => 190, - 'class_name_rename' => 192 - } - }, - {#State 151 - DEFAULT => -45 - }, - {#State 152 - ACTIONS => { - 'ID' => 28, - 'p_name' => 21 - }, - GOTOS => { - 'perc_name' => 191, - 'class_name' => 190, - 'class_name_rename' => 193 - } - }, - {#State 153 - ACTIONS => { - 'ID' => 28, - 'p_name' => 21 - }, - GOTOS => { - 'perc_name' => 191, - 'class_name' => 190, - 'class_name_rename' => 194 - } - }, - {#State 154 - DEFAULT => -111 - }, - {#State 155 - DEFAULT => -108 - }, - {#State 156 - DEFAULT => -114 - }, - {#State 157 - ACTIONS => { - 'ID' => 111, - 'DASH' => 112 - }, - GOTOS => { - 'file_name' => 195 - } - }, - {#State 158 - ACTIONS => { - 'ID' => 196 - } - }, - {#State 159 - ACTIONS => { - 'COMMA' => 197 - }, - DEFAULT => -156 - }, - {#State 160 - ACTIONS => { - 'CLPAR' => -157 - }, - DEFAULT => -135 - }, - {#State 161 - ACTIONS => { - 'ID' => 199, - 'p_length' => 198 - } - }, - {#State 162 - ACTIONS => { - 'CLPAR' => 200 - } - }, - {#State 163 - DEFAULT => -158 - }, - {#State 164 - DEFAULT => -3 - }, - {#State 165 - DEFAULT => -152 - }, - {#State 166 - ACTIONS => { - 'OPCURLY' => 201 - } - }, - {#State 167 - DEFAULT => -113 - }, - {#State 168 - DEFAULT => -110 - }, - {#State 169 - ACTIONS => { - 'EQUAL' => 202 - }, - DEFAULT => -35 - }, - {#State 170 - ACTIONS => { - 'COMMA' => 203 - }, - DEFAULT => -33 - }, - {#State 171 - ACTIONS => { - 'SEMICOLON' => 204 - } - }, - {#State 172 - DEFAULT => -37 - }, - {#State 173 - ACTIONS => { - 'ID' => 169, - 'PREPROCESSOR' => 17, - 'RAW_CODE' => 37, - 'OPSPECIAL' => 33, - 'COMMENT' => 7, - 'CLCURLY' => 205 - }, - GOTOS => { - 'enum_element' => 170, - 'special_block' => 13, - 'raw' => 172, - 'special_block_start' => 35 - } - }, - {#State 174 - DEFAULT => -116 - }, - {#State 175 - DEFAULT => -117 - }, - {#State 176 - ACTIONS => { - 'ID' => 206 - } - }, - {#State 177 - DEFAULT => -115 - }, - {#State 178 - ACTIONS => { - 'ID' => 28 - }, - GOTOS => { - 'class_name' => 207, - 'class_name_list' => 208 - } - }, - {#State 179 - DEFAULT => -112 - }, - {#State 180 - DEFAULT => -146 - }, - {#State 181 - DEFAULT => -125 - }, - {#State 182 - ACTIONS => { - 'OPSPECIAL' => 33, - 'OPCURLY' => 144 - }, - DEFAULT => -120, - GOTOS => { - 'simple_block' => 146, - 'special_block' => 145, - 'special_block_start' => 35 - } - }, - {#State 183 - ACTIONS => { - 'CLCURLY' => 209 - } - }, - {#State 184 - ACTIONS => { - 'ID' => 210 - } - }, - {#State 185 - DEFAULT => -20 - }, - {#State 186 - DEFAULT => -56, - GOTOS => { - 'class_body_list' => 211 - } - }, - {#State 187 - DEFAULT => -53 - }, - {#State 188 - DEFAULT => -54 - }, - {#State 189 - DEFAULT => -46 - }, - {#State 190 - DEFAULT => -51 - }, - {#State 191 - ACTIONS => { - 'ID' => 28 - }, - GOTOS => { - 'class_name' => 212 - } - }, - {#State 192 - DEFAULT => -48 - }, - {#State 193 - DEFAULT => -50 - }, - {#State 194 - DEFAULT => -49 - }, - {#State 195 - DEFAULT => -155 - }, - {#State 196 - DEFAULT => -154 - }, - {#State 197 - ACTIONS => { - 'ID' => 28, - "short" => 18, - "void" => 19, - "const" => 11, - "unsigned" => 50, - "long" => 23, - "int" => 40, - "char" => 27 - }, - GOTOS => { - 'argument' => 213, - 'type_name' => 14, - 'class_name' => 1, - 'basic_type' => 42, - 'nconsttype' => 30, - 'template' => 15, - 'type' => 161 - } - }, - {#State 198 - ACTIONS => { - 'OPCURLY' => 214 - } - }, - {#State 199 - DEFAULT => -162, - GOTOS => { - 'argument_metadata' => 215 - } - }, - {#State 200 - ACTIONS => { - "const" => 216 - }, - DEFAULT => -80, - GOTOS => { - 'const' => 217 - } - }, - {#State 201 - ACTIONS => { - 'ID' => 28, - "short" => 18, - "void" => 19, - "unsigned" => 50, - "long" => 23, - "int" => 40, - "char" => 27 - }, - GOTOS => { - 'type_name' => 219, - 'class_name' => 218, - 'basic_type' => 42 - } - }, - {#State 202 - ACTIONS => { - 'ID' => 28, - 'INTEGER' => 222, - 'QUOTED_STRING' => 224, - 'DASH' => 226, - 'FLOAT' => 225 - }, - GOTOS => { - 'class_name' => 220, - 'value' => 223, - 'expression' => 221 - } - }, - {#State 203 - DEFAULT => -34 - }, - {#State 204 - DEFAULT => -30 - }, - {#State 205 - ACTIONS => { - 'SEMICOLON' => 227 - } - }, - {#State 206 - ACTIONS => { - 'EQUAL' => 228 - } - }, - {#State 207 - DEFAULT => -149 - }, - {#State 208 - ACTIONS => { - 'COMMA' => 229, - 'CLCURLY' => 230 - } - }, - {#State 209 - DEFAULT => -25 - }, - {#State 210 - ACTIONS => { - 'CLCURLY' => 231 - } - }, - {#State 211 - ACTIONS => { - 'ID' => 250, - 'p_typemap' => 4, - 'p_any' => 3, - 'OPSPECIAL' => 33, - "virtual" => 251, - 'COMMENT' => 7, - "class_static" => 233, - "package_static" => 252, - "public" => 234, - 'p_exceptionmap' => 36, - 'RAW_CODE' => 37, - "const" => 11, - "static" => 256, - "int" => 40, - "private" => 240, - 'CLCURLY' => 259, - 'PREPROCESSOR' => 17, - "short" => 18, - "void" => 19, - "unsigned" => 50, - 'p_name' => 21, - 'TILDE' => 244, - "protected" => 245, - "long" => 23, - "char" => 27 - }, - DEFAULT => -71, - GOTOS => { - 'class_name' => 1, - 'nconsttype' => 30, - 'looks_like_function' => 6, - 'static' => 232, - 'exceptionmap' => 253, - 'special_block_start' => 35, - 'perc_name' => 235, - 'looks_like_member' => 236, - 'typemap' => 237, - 'class_body_element' => 254, - 'method' => 255, - 'special_block' => 13, - 'vmethod' => 238, - 'nmethod' => 239, - 'access_specifier' => 241, - 'type_name' => 14, - 'ctor' => 242, - 'perc_any' => 257, - 'basic_type' => 42, - 'template' => 15, - 'member' => 243, - 'virtual' => 258, - 'looks_like_renamed_function' => 260, - '_vmethod' => 261, - 'dtor' => 246, - 'type' => 247, - 'raw' => 262, - 'method_decl' => 249, - 'member_decl' => 248 - } - }, - {#State 212 - DEFAULT => -52 - }, - {#State 213 - DEFAULT => -159 - }, - {#State 214 - ACTIONS => { - 'ID' => 263 - } - }, - {#State 215 - ACTIONS => { - 'EQUAL' => 264, - 'p_any' => 3 - }, - DEFAULT => -166, - GOTOS => { - 'perc_any' => 266, - '_argument_metadata' => 265 - } - }, - {#State 216 - DEFAULT => -79 - }, - {#State 217 - DEFAULT => -85 - }, - {#State 218 - DEFAULT => -133 - }, - {#State 219 - ACTIONS => { - 'CLCURLY' => 267 - } - }, - {#State 220 - ACTIONS => { - 'OPPAR' => 268 - }, - DEFAULT => -171 - }, - {#State 221 - DEFAULT => -36 - }, - {#State 222 - DEFAULT => -167 - }, - {#State 223 - ACTIONS => { - 'AMP' => 269, - 'PIPE' => 270 - }, - DEFAULT => -176 - }, - {#State 224 - DEFAULT => -170 - }, - {#State 225 - DEFAULT => -169 - }, - {#State 226 - ACTIONS => { - 'INTEGER' => 271 - } - }, - {#State 227 - DEFAULT => -31 - }, - {#State 228 - ACTIONS => { - 'INTEGER' => 272 - } - }, - {#State 229 - ACTIONS => { - 'ID' => 28 - }, - GOTOS => { - 'class_name' => 273 - } - }, - {#State 230 - DEFAULT => -118 - }, - {#State 231 - ACTIONS => { - 'OPCURLY' => 274, - 'OPSPECIAL' => 33 - }, - DEFAULT => -181, - GOTOS => { - 'special_blocks' => 276, - 'special_block' => 275, - 'special_block_start' => 35 - } - }, - {#State 232 - ACTIONS => { - 'ID' => 28, - "class_static" => 233, - "package_static" => 252, - "short" => 18, - "void" => 19, - "unsigned" => 50, - "const" => 11, - 'p_name' => 21, - "long" => 23, - "static" => 256, - "int" => 40, - "char" => 27 - }, - GOTOS => { - 'type_name' => 14, - 'class_name' => 1, - 'basic_type' => 42, - 'nconsttype' => 30, - 'template' => 15, - 'looks_like_function' => 6, - 'static' => 232, - 'perc_name' => 277, - 'looks_like_renamed_function' => 260, - 'nmethod' => 278, - 'type' => 24 - } - }, - {#State 233 - DEFAULT => -83 - }, - {#State 234 - ACTIONS => { - 'COLON' => 279 - } - }, - {#State 235 - ACTIONS => { - 'ID' => 250, - "virtual" => 251, - "short" => 18, - "void" => 19, - "unsigned" => 50, - "const" => 11, - 'p_name' => 21, - 'TILDE' => 244, - "long" => 23, - "int" => 40, - "char" => 27 - }, - GOTOS => { - 'type_name' => 14, - 'class_name' => 1, - 'ctor' => 283, - 'basic_type' => 42, - 'nconsttype' => 30, - 'template' => 15, - 'looks_like_function' => 61, - 'virtual' => 258, - 'perc_name' => 280, - 'looks_like_member' => 281, - '_vmethod' => 261, - 'dtor' => 284, - 'type' => 247, - 'vmethod' => 282 - } - }, - {#State 236 - DEFAULT => -72 - }, - {#State 237 - DEFAULT => -60 - }, - {#State 238 - DEFAULT => -76 - }, - {#State 239 - DEFAULT => -75 - }, - {#State 240 - ACTIONS => { - 'COLON' => 285 - } - }, - {#State 241 - DEFAULT => -62 - }, - {#State 242 - DEFAULT => -77 - }, - {#State 243 - DEFAULT => -63 - }, - {#State 244 - ACTIONS => { - 'ID' => 286 - } - }, - {#State 245 - ACTIONS => { - 'COLON' => 287 - } - }, - {#State 246 - DEFAULT => -78 - }, - {#State 247 - ACTIONS => { - 'ID' => 288 - } - }, - {#State 248 - ACTIONS => { - 'SEMICOLON' => 289 - } - }, - {#State 249 - ACTIONS => { - 'SEMICOLON' => 290 - } - }, - {#State 250 - ACTIONS => { - 'DCOLON' => 74, - 'OPPAR' => 291 - }, - DEFAULT => -147, - GOTOS => { - 'class_suffix' => 73 - } - }, - {#State 251 - DEFAULT => -81 - }, - {#State 252 - DEFAULT => -82 - }, - {#State 253 - DEFAULT => -61 - }, - {#State 254 - DEFAULT => -57 - }, - {#State 255 - DEFAULT => -58 - }, - {#State 256 - DEFAULT => -84 - }, - {#State 257 - ACTIONS => { - 'SEMICOLON' => 292 - } - }, - {#State 258 - ACTIONS => { - 'ID' => 28, - "virtual" => 251, - "short" => 18, - "void" => 19, - "unsigned" => 50, - "const" => 11, - 'p_name' => 21, - 'TILDE' => 244, - "long" => 23, - "int" => 40, - "char" => 27 - }, - GOTOS => { - 'type_name' => 14, - 'class_name' => 1, - 'basic_type' => 42, - 'nconsttype' => 30, - 'template' => 15, - 'looks_like_function' => 293, - 'virtual' => 296, - 'perc_name' => 294, - 'type' => 24, - 'dtor' => 295 - } - }, - {#State 259 - DEFAULT => -44 - }, - {#State 260 - DEFAULT => -95, - GOTOS => { - 'function_metadata' => 297 - } - }, - {#State 261 - DEFAULT => -98 - }, - {#State 262 - DEFAULT => -59 - }, - {#State 263 - ACTIONS => { - 'CLCURLY' => 298 - } - }, - {#State 264 - ACTIONS => { - 'ID' => 28, - 'INTEGER' => 222, - 'QUOTED_STRING' => 224, - 'DASH' => 226, - 'FLOAT' => 225 - }, - GOTOS => { - 'class_name' => 220, - 'value' => 223, - 'expression' => 299 - } - }, - {#State 265 - DEFAULT => -161 - }, - {#State 266 - DEFAULT => -163 - }, - {#State 267 - ACTIONS => { - 'OPCURLY' => 300 - } - }, - {#State 268 - ACTIONS => { - 'ID' => 28, - 'INTEGER' => 222, - 'QUOTED_STRING' => 224, - 'FLOAT' => 225, - 'DASH' => 226 - }, - DEFAULT => -175, - GOTOS => { - 'class_name' => 220, - 'value_list' => 301, - 'value' => 302 - } - }, - {#State 269 - ACTIONS => { - 'ID' => 28, - 'INTEGER' => 222, - 'QUOTED_STRING' => 224, - 'DASH' => 226, - 'FLOAT' => 225 - }, - GOTOS => { - 'class_name' => 220, - 'value' => 303 - } - }, - {#State 270 - ACTIONS => { - 'ID' => 28, - 'INTEGER' => 222, - 'QUOTED_STRING' => 224, - 'DASH' => 226, - 'FLOAT' => 225 - }, - GOTOS => { - 'class_name' => 220, - 'value' => 304 - } - }, - {#State 271 - DEFAULT => -168 - }, - {#State 272 - ACTIONS => { - 'CLCURLY' => 305 - } - }, - {#State 273 - DEFAULT => -150 - }, - {#State 274 - ACTIONS => { - 'p_any' => 99, - 'p_name' => 21 - }, - GOTOS => { - 'perc_name' => 101, - 'perc_any_arg' => 100, - 'perc_any_args' => 306 - } - }, - {#State 275 - DEFAULT => -179 - }, - {#State 276 - ACTIONS => { - 'OPSPECIAL' => 33, - 'SEMICOLON' => 308 - }, - GOTOS => { - 'special_block' => 307, - 'special_block_start' => 35 - } - }, - {#State 277 - ACTIONS => { - 'ID' => 28, - "short" => 18, - "void" => 19, - "const" => 11, - "unsigned" => 50, - "long" => 23, - "int" => 40, - "char" => 27 - }, - GOTOS => { - 'type_name' => 14, - 'class_name' => 1, - 'basic_type' => 42, - 'nconsttype' => 30, - 'template' => 15, - 'looks_like_function' => 61, - 'type' => 24 - } - }, - {#State 278 - DEFAULT => -97 - }, - {#State 279 - DEFAULT => -65 - }, - {#State 280 - ACTIONS => { - 'ID' => 309, - 'TILDE' => 244, - 'p_name' => 21, - "virtual" => 251 - }, - GOTOS => { - 'perc_name' => 280, - 'ctor' => 283, - '_vmethod' => 261, - 'dtor' => 284, - 'vmethod' => 282, - 'virtual' => 258 - } - }, - {#State 281 - DEFAULT => -73 - }, - {#State 282 - DEFAULT => -99 - }, - {#State 283 - DEFAULT => -90 - }, - {#State 284 - DEFAULT => -92 - }, - {#State 285 - DEFAULT => -67 - }, - {#State 286 - ACTIONS => { - 'OPPAR' => 310 - } - }, - {#State 287 - DEFAULT => -66 - }, - {#State 288 - ACTIONS => { - 'OPPAR' => 113 - }, - DEFAULT => -69, - GOTOS => { - 'member_metadata' => 311 - } - }, - {#State 289 - DEFAULT => -42 - }, - {#State 290 - DEFAULT => -41 - }, - {#State 291 - ACTIONS => { - 'ID' => 28, - "short" => 18, - "void" => 160, - "unsigned" => 50, - "const" => 11, - "long" => 23, - "int" => 40, - "char" => 27 - }, - DEFAULT => -160, - GOTOS => { - 'type_name' => 14, - 'class_name' => 1, - 'basic_type' => 42, - 'nconsttype' => 30, - 'template' => 15, - 'nonvoid_arg_list' => 159, - 'arg_list' => 312, - 'argument' => 163, - 'type' => 161 - } - }, - {#State 292 - DEFAULT => -64 - }, - {#State 293 - ACTIONS => { - 'EQUAL' => 313 - }, - DEFAULT => -95, - GOTOS => { - 'function_metadata' => 314 - } - }, - {#State 294 - ACTIONS => { - 'TILDE' => 244, - 'p_name' => 21, - "virtual" => 251 - }, - GOTOS => { - 'perc_name' => 294, - 'dtor' => 284, - 'virtual' => 296 - } - }, - {#State 295 - DEFAULT => -93 - }, - {#State 296 - ACTIONS => { - 'TILDE' => 244, - 'p_name' => 21, - "virtual" => 251 - }, - GOTOS => { - 'perc_name' => 294, - 'dtor' => 295, - 'virtual' => 296 - } - }, - {#State 297 - ACTIONS => { - 'p_any' => 3, - 'p_alias' => 128, - 'p_code' => 131, - 'p_cleanup' => 125, - 'p_postcall' => 127, - 'p_catch' => 135 - }, - DEFAULT => -96, - GOTOS => { - 'perc_postcall' => 130, - 'perc_code' => 124, - 'perc_any' => 132, - 'perc_cleanup' => 133, - 'perc_catch' => 126, - '_function_metadata' => 134, - 'perc_alias' => 129 - } - }, - {#State 298 - DEFAULT => -164 - }, - {#State 299 - DEFAULT => -165 - }, - {#State 300 - ACTIONS => { - 'ID' => 315 - } - }, - {#State 301 - ACTIONS => { - 'CLPAR' => 316, - 'COMMA' => 317 - } - }, - {#State 302 - DEFAULT => -173 - }, - {#State 303 - DEFAULT => -177 - }, - {#State 304 - DEFAULT => -178 - }, - {#State 305 - DEFAULT => -109 - }, - {#State 306 - ACTIONS => { - 'p_any' => 99, - 'p_name' => 21, - 'CLCURLY' => 318 - }, - GOTOS => { - 'perc_name' => 101, - 'perc_any_arg' => 142 - } - }, - {#State 307 - DEFAULT => -180 - }, - {#State 308 - DEFAULT => -18 - }, - {#State 309 - ACTIONS => { - 'OPPAR' => 291 - } - }, - {#State 310 - ACTIONS => { - 'CLPAR' => 319 - } - }, - {#State 311 - ACTIONS => { - 'p_any' => 3 - }, - DEFAULT => -74, - GOTOS => { - 'perc_any' => 321, - '_member_metadata' => 320 - } - }, - {#State 312 - ACTIONS => { - 'CLPAR' => 322 - } - }, - {#State 313 - ACTIONS => { - 'INTEGER' => 323 - } - }, - {#State 314 - ACTIONS => { - 'p_any' => 3, - 'p_alias' => 128, - 'p_code' => 131, - 'p_cleanup' => 125, - 'p_postcall' => 127, - 'p_catch' => 135 - }, - DEFAULT => -100, - GOTOS => { - 'perc_postcall' => 130, - 'perc_code' => 124, - 'perc_any' => 132, - 'perc_cleanup' => 133, - 'perc_catch' => 126, - '_function_metadata' => 134, - 'perc_alias' => 129 - } - }, - {#State 315 - ACTIONS => { - 'CLCURLY' => 324 - } - }, - {#State 316 - DEFAULT => -172 - }, - {#State 317 - ACTIONS => { - 'ID' => 28, - 'INTEGER' => 222, - 'QUOTED_STRING' => 224, - 'DASH' => 226, - 'FLOAT' => 225 - }, - GOTOS => { - 'class_name' => 220, - 'value' => 325 - } - }, - {#State 318 - ACTIONS => { - 'SEMICOLON' => 326 - } - }, - {#State 319 - DEFAULT => -95, - GOTOS => { - 'function_metadata' => 327 - } - }, - {#State 320 - DEFAULT => -68 - }, - {#State 321 - DEFAULT => -70 - }, - {#State 322 - DEFAULT => -95, - GOTOS => { - 'function_metadata' => 328 - } - }, - {#State 323 - DEFAULT => -95, - GOTOS => { - 'function_metadata' => 329 - } - }, - {#State 324 - DEFAULT => -24, - GOTOS => { - 'mixed_blocks' => 330 - } - }, - {#State 325 - DEFAULT => -174 - }, - {#State 326 - DEFAULT => -19 - }, - {#State 327 - ACTIONS => { - 'p_any' => 3, - 'p_alias' => 128, - 'p_code' => 131, - 'p_cleanup' => 125, - 'p_postcall' => 127, - 'p_catch' => 135 - }, - DEFAULT => -91, - GOTOS => { - 'perc_postcall' => 130, - 'perc_code' => 124, - 'perc_any' => 132, - 'perc_cleanup' => 133, - 'perc_catch' => 126, - '_function_metadata' => 134, - 'perc_alias' => 129 - } - }, - {#State 328 - ACTIONS => { - 'p_any' => 3, - 'p_alias' => 128, - 'p_code' => 131, - 'p_cleanup' => 125, - 'p_postcall' => 127, - 'p_catch' => 135 - }, - DEFAULT => -89, - GOTOS => { - 'perc_postcall' => 130, - 'perc_code' => 124, - 'perc_any' => 132, - 'perc_cleanup' => 133, - 'perc_catch' => 126, - '_function_metadata' => 134, - 'perc_alias' => 129 - } - }, - {#State 329 - ACTIONS => { - 'p_any' => 3, - 'p_alias' => 128, - 'p_code' => 131, - 'p_cleanup' => 125, - 'p_postcall' => 127, - 'p_catch' => 135 - }, - DEFAULT => -101, - GOTOS => { - 'perc_postcall' => 130, - 'perc_code' => 124, - 'perc_any' => 132, - 'perc_cleanup' => 133, - 'perc_catch' => 126, - '_function_metadata' => 134, - 'perc_alias' => 129 - } - }, - {#State 330 - ACTIONS => { - 'OPCURLY' => 144, - 'OPSPECIAL' => 33, - 'SEMICOLON' => 331 - }, - GOTOS => { - 'simple_block' => 146, - 'special_block' => 145, - 'special_block_start' => 35 - } - }, - {#State 331 - DEFAULT => -21 - } -], - yyrules => -[ - [#Rule 0 - '$start', 2, undef - ], - [#Rule 1 - 'top_list', 1, undef - ], - [#Rule 2 - 'top_list', 2, -sub -#line 22 "XSP.yp" -{ push @{$_[1]}, @{$_[2]}; $_[1] } - ], - [#Rule 3 - 'top_list', 4, -sub -#line 24 "XSP.yp" -{ $_[3] } - ], - [#Rule 4 - 'top', 1, -sub -#line 27 "XSP.yp" -{ !$_[1] ? [] : - ref $_[1] eq 'ARRAY' ? $_[1] : - [ $_[1] ] } - ], - [#Rule 5 - '_top', 1, undef - ], - [#Rule 6 - '_top', 1, undef - ], - [#Rule 7 - '_top', 1, undef - ], - [#Rule 8 - '_top', 1, undef - ], - [#Rule 9 - '_top', 1, -sub -#line 32 "XSP.yp" -{ process_function( $_[0], $_[1] ) } - ], - [#Rule 10 - 'directive', 2, -sub -#line 35 "XSP.yp" -{ ExtUtils::XSpp::Node::Module->new( module => $_[1] ) } - ], - [#Rule 11 - 'directive', 2, -sub -#line 37 "XSP.yp" -{ ExtUtils::XSpp::Node::Package->new( perl_name => $_[1] ) } - ], - [#Rule 12 - 'directive', 2, -sub -#line 39 "XSP.yp" -{ ExtUtils::XSpp::Node::File->new( file => $_[1] ) } - ], - [#Rule 13 - 'directive', 2, -sub -#line 41 "XSP.yp" -{ $_[0]->YYData->{PARSER}->load_plugin( $_[1] ); undef } - ], - [#Rule 14 - 'directive', 2, -sub -#line 43 "XSP.yp" -{ $_[0]->YYData->{PARSER}->include_file( $_[1] ); undef } - ], - [#Rule 15 - 'directive', 2, -sub -#line 45 "XSP.yp" -{ add_top_level_directive( $_[0], %{$_[1][1]} ) } - ], - [#Rule 16 - 'directive', 1, -sub -#line 46 "XSP.yp" -{ } - ], - [#Rule 17 - 'directive', 1, -sub -#line 47 "XSP.yp" -{ } - ], - [#Rule 18 - 'typemap', 9, -sub -#line 52 "XSP.yp" -{ my $c = 0; - my %args = map { "arg" . ++$c => $_ } - map { join( '', @$_ ) } - @{$_[8] || []}; - add_typemap( $_[6], $_[3], %args ); - undef } - ], - [#Rule 19 - 'typemap', 11, -sub -#line 60 "XSP.yp" -{ # this assumes that there will be at most one named - # block for each directive inside the typemap - for( my $i = 1; $i <= $#{$_[9]}; $i += 2 ) { - $_[9][$i] = join "\n", @{$_[9][$i][0]} - if ref( $_[9][$i] ) eq 'ARRAY' - && ref( $_[9][$i][0] ) eq 'ARRAY'; - } - add_typemap( $_[6], $_[3], @{$_[9]} ); - undef } - ], - [#Rule 20 - 'typemap', 5, -sub -#line 70 "XSP.yp" -{ add_typemap( 'simple', $_[3] ); - add_typemap( 'reference', make_ref($_[3]->clone) ); - undef } - ], - [#Rule 21 - 'exceptionmap', 12, -sub -#line 78 "XSP.yp" -{ my $package = "ExtUtils::XSpp::Exception::" . $_[9]; - my $type = make_type($_[6]); my $c = 0; - my %args = map { "arg" . ++$c => $_ } - map { join( "\n", @$_ ) } - @{$_[11] || []}; - my $e = $package->new( name => $_[3], type => $type, %args ); - ExtUtils::XSpp::Exception->add_exception( $e ); - undef } - ], - [#Rule 22 - 'mixed_blocks', 2, -sub -#line 88 "XSP.yp" -{ [ @{$_[1]}, $_[2] ] } - ], - [#Rule 23 - 'mixed_blocks', 2, -sub -#line 90 "XSP.yp" -{ [ @{$_[1]}, [ $_[2] ] ] } - ], - [#Rule 24 - 'mixed_blocks', 0, -sub -#line 91 "XSP.yp" -{ [] } - ], - [#Rule 25 - 'simple_block', 3, -sub -#line 94 "XSP.yp" -{ $_[2] } - ], - [#Rule 26 - 'raw', 1, -sub -#line 96 "XSP.yp" -{ add_data_raw( $_[0], [ $_[1] ] ) } - ], - [#Rule 27 - 'raw', 1, -sub -#line 97 "XSP.yp" -{ add_data_comment( $_[0], $_[1] ) } - ], - [#Rule 28 - 'raw', 1, -sub -#line 98 "XSP.yp" -{ ExtUtils::XSpp::Node::Preprocessor->new - ( rows => [ $_[1][0] ], - symbol => $_[1][1], - ) } - ], - [#Rule 29 - 'raw', 1, -sub -#line 102 "XSP.yp" -{ add_data_raw( $_[0], [ @{$_[1]} ] ) } - ], - [#Rule 30 - 'enum', 5, -sub -#line 106 "XSP.yp" -{ ExtUtils::XSpp::Node::Enum->new - ( elements => $_[3], - condition => $_[0]->get_conditional, - ) } - ], - [#Rule 31 - 'enum', 6, -sub -#line 111 "XSP.yp" -{ ExtUtils::XSpp::Node::Enum->new - ( name => $_[2], - elements => $_[4], - condition => $_[0]->get_conditional, - ) } - ], - [#Rule 32 - 'enum_element_list', 0, -sub -#line 119 "XSP.yp" -{ [] } - ], - [#Rule 33 - 'enum_element_list', 2, -sub -#line 121 "XSP.yp" -{ push @{$_[1]}, $_[2] if $_[2]; $_[1] } - ], - [#Rule 34 - 'enum_element_list', 3, -sub -#line 123 "XSP.yp" -{ push @{$_[1]}, $_[2] if $_[2]; $_[1] } - ], - [#Rule 35 - 'enum_element', 1, -sub -#line 128 "XSP.yp" -{ ExtUtils::XSpp::Node::EnumValue->new - ( name => $_[1], - condition => $_[0]->get_conditional, - ) } - ], - [#Rule 36 - 'enum_element', 3, -sub -#line 133 "XSP.yp" -{ ExtUtils::XSpp::Node::EnumValue->new - ( name => $_[1], - value => $_[3], - condition => $_[0]->get_conditional, - ) } - ], - [#Rule 37 - 'enum_element', 1, undef - ], - [#Rule 38 - 'class', 2, undef - ], - [#Rule 39 - 'class', 2, undef - ], - [#Rule 40 - 'function', 2, undef - ], - [#Rule 41 - 'method', 2, undef - ], - [#Rule 42 - 'member', 2, undef - ], - [#Rule 43 - 'decorate_class', 2, -sub -#line 147 "XSP.yp" -{ $_[2]->set_perl_name( $_[1] ); $_[2] } - ], - [#Rule 44 - 'class_decl', 7, -sub -#line 150 "XSP.yp" -{ create_class( $_[0], $_[2], $_[3], $_[4], $_[6], - $_[0]->get_conditional ) } - ], - [#Rule 45 - 'base_classes', 2, -sub -#line 154 "XSP.yp" -{ [ $_[2] ] } - ], - [#Rule 46 - 'base_classes', 3, -sub -#line 155 "XSP.yp" -{ push @{$_[1]}, $_[3] if $_[3]; $_[1] } - ], - [#Rule 47 - 'base_classes', 0, undef - ], - [#Rule 48 - 'base_class', 2, -sub -#line 159 "XSP.yp" -{ $_[2] } - ], - [#Rule 49 - 'base_class', 2, -sub -#line 160 "XSP.yp" -{ $_[2] } - ], - [#Rule 50 - 'base_class', 2, -sub -#line 161 "XSP.yp" -{ $_[2] } - ], - [#Rule 51 - 'class_name_rename', 1, -sub -#line 165 "XSP.yp" -{ create_class( $_[0], $_[1], [], [] ) } - ], - [#Rule 52 - 'class_name_rename', 2, -sub -#line 166 "XSP.yp" -{ my $klass = create_class( $_[0], $_[2], [], [] ); - $klass->set_perl_name( $_[1] ); - $klass - } - ], - [#Rule 53 - 'class_metadata', 2, -sub -#line 172 "XSP.yp" -{ [ @{$_[1]}, @{$_[2]} ] } - ], - [#Rule 54 - 'class_metadata', 2, -sub -#line 173 "XSP.yp" -{ [ @{$_[1]}, @{$_[2]} ] } - ], - [#Rule 55 - 'class_metadata', 0, -sub -#line 174 "XSP.yp" -{ [] } - ], - [#Rule 56 - 'class_body_list', 0, -sub -#line 178 "XSP.yp" -{ [] } - ], - [#Rule 57 - 'class_body_list', 2, -sub -#line 180 "XSP.yp" -{ push @{$_[1]}, $_[2] if $_[2]; $_[1] } - ], - [#Rule 58 - 'class_body_element', 1, undef - ], - [#Rule 59 - 'class_body_element', 1, undef - ], - [#Rule 60 - 'class_body_element', 1, undef - ], - [#Rule 61 - 'class_body_element', 1, undef - ], - [#Rule 62 - 'class_body_element', 1, undef - ], - [#Rule 63 - 'class_body_element', 1, undef - ], - [#Rule 64 - 'class_body_element', 2, -sub -#line 186 "XSP.yp" -{ ExtUtils::XSpp::Node::PercAny->new( %{$_[1][1]} ) } - ], - [#Rule 65 - 'access_specifier', 2, -sub -#line 190 "XSP.yp" -{ ExtUtils::XSpp::Node::Access->new( access => $_[1] ) } - ], - [#Rule 66 - 'access_specifier', 2, -sub -#line 191 "XSP.yp" -{ ExtUtils::XSpp::Node::Access->new( access => $_[1] ) } - ], - [#Rule 67 - 'access_specifier', 2, -sub -#line 192 "XSP.yp" -{ ExtUtils::XSpp::Node::Access->new( access => $_[1] ) } - ], - [#Rule 68 - 'member_metadata', 2, -sub -#line 195 "XSP.yp" -{ [ @{$_[1]}, @{$_[2]} ] } - ], - [#Rule 69 - 'member_metadata', 0, -sub -#line 196 "XSP.yp" -{ [] } - ], - [#Rule 70 - '_member_metadata', 1, undef - ], - [#Rule 71 - 'member_decl', 0, undef - ], - [#Rule 72 - 'member_decl', 1, undef - ], - [#Rule 73 - 'member_decl', 2, -sub -#line 204 "XSP.yp" -{ $_[2]->set_perl_name( $_[1] ); $_[2] } - ], - [#Rule 74 - 'looks_like_member', 3, -sub -#line 208 "XSP.yp" -{ create_member( $_[0], - name => $_[2], - type => $_[1], - condition => $_[0]->get_conditional, - @{$_[3]} ) } - ], - [#Rule 75 - 'method_decl', 1, undef - ], - [#Rule 76 - 'method_decl', 1, undef - ], - [#Rule 77 - 'method_decl', 1, undef - ], - [#Rule 78 - 'method_decl', 1, undef - ], - [#Rule 79 - 'const', 1, -sub -#line 216 "XSP.yp" -{ 1 } - ], - [#Rule 80 - 'const', 0, -sub -#line 217 "XSP.yp" -{ 0 } - ], - [#Rule 81 - 'virtual', 1, undef - ], - [#Rule 82 - 'static', 1, undef - ], - [#Rule 83 - 'static', 1, undef - ], - [#Rule 84 - 'static', 1, -sub -#line 223 "XSP.yp" -{ 'package_static' } - ], - [#Rule 85 - 'looks_like_function', 6, -sub -#line 228 "XSP.yp" -{ - return { ret_type => $_[1], - name => $_[2], - arguments => $_[4], - const => $_[6], - }; - } - ], - [#Rule 86 - 'looks_like_renamed_function', 1, undef - ], - [#Rule 87 - 'looks_like_renamed_function', 2, -sub -#line 239 "XSP.yp" -{ $_[2]->{perl_name} = $_[1]; $_[2] } - ], - [#Rule 88 - 'function_decl', 2, -sub -#line 242 "XSP.yp" -{ add_data_function( $_[0], - name => $_[1]->{name}, - perl_name => $_[1]->{perl_name}, - ret_type => $_[1]->{ret_type}, - arguments => $_[1]->{arguments}, - condition => $_[0]->get_conditional, - @{$_[2]} ) } - ], - [#Rule 89 - 'ctor', 5, -sub -#line 251 "XSP.yp" -{ add_data_ctor( $_[0], name => $_[1], - arguments => $_[3], - condition => $_[0]->get_conditional, - @{ $_[5] } ) } - ], - [#Rule 90 - 'ctor', 2, -sub -#line 255 "XSP.yp" -{ $_[2]->set_perl_name( $_[1] ); $_[2] } - ], - [#Rule 91 - 'dtor', 5, -sub -#line 258 "XSP.yp" -{ add_data_dtor( $_[0], name => $_[2], - condition => $_[0]->get_conditional, - @{ $_[5] }, - ) } - ], - [#Rule 92 - 'dtor', 2, -sub -#line 262 "XSP.yp" -{ $_[2]->set_perl_name( $_[1] ); $_[2] } - ], - [#Rule 93 - 'dtor', 2, -sub -#line 263 "XSP.yp" -{ $_[2]->set_virtual( 1 ); $_[2] } - ], - [#Rule 94 - 'function_metadata', 2, -sub -#line 265 "XSP.yp" -{ [ @{$_[1]}, @{$_[2]} ] } - ], - [#Rule 95 - 'function_metadata', 0, -sub -#line 266 "XSP.yp" -{ [] } - ], - [#Rule 96 - 'nmethod', 2, -sub -#line 271 "XSP.yp" -{ my $m = add_data_method - ( $_[0], - name => $_[1]->{name}, - perl_name => $_[1]->{perl_name}, - ret_type => $_[1]->{ret_type}, - arguments => $_[1]->{arguments}, - const => $_[1]->{const}, - condition => $_[0]->get_conditional, - @{$_[2]}, - ); - $m - } - ], - [#Rule 97 - 'nmethod', 2, -sub -#line 284 "XSP.yp" -{ $_[2]->set_static( $_[1] ); $_[2] } - ], - [#Rule 98 - 'vmethod', 1, undef - ], - [#Rule 99 - 'vmethod', 2, -sub -#line 289 "XSP.yp" -{ $_[2]->set_perl_name( $_[1] ); $_[2] } - ], - [#Rule 100 - '_vmethod', 3, -sub -#line 294 "XSP.yp" -{ my $m = add_data_method - ( $_[0], - name => $_[2]->{name}, - perl_name => $_[2]->{perl_name}, - ret_type => $_[2]->{ret_type}, - arguments => $_[2]->{arguments}, - const => $_[2]->{const}, - condition => $_[0]->get_conditional, - @{$_[3]}, - ); - $m->set_virtual( 1 ); - $m - } - ], - [#Rule 101 - '_vmethod', 5, -sub -#line 308 "XSP.yp" -{ my $m = add_data_method - ( $_[0], - name => $_[2]->{name}, - perl_name => $_[2]->{perl_name}, - ret_type => $_[2]->{ret_type}, - arguments => $_[2]->{arguments}, - const => $_[2]->{const}, - condition => $_[0]->get_conditional, - @{$_[5]}, - ); - die "Invalid pure virtual method" unless $_[4] eq '0'; - $m->set_virtual( 2 ); - $m - } - ], - [#Rule 102 - '_function_metadata', 1, undef - ], - [#Rule 103 - '_function_metadata', 1, undef - ], - [#Rule 104 - '_function_metadata', 1, undef - ], - [#Rule 105 - '_function_metadata', 1, undef - ], - [#Rule 106 - '_function_metadata', 1, undef - ], - [#Rule 107 - '_function_metadata', 1, undef - ], - [#Rule 108 - 'perc_name', 4, -sub -#line 332 "XSP.yp" -{ $_[3] } - ], - [#Rule 109 - 'perc_alias', 6, -sub -#line 333 "XSP.yp" -{ [ alias => [$_[3], $_[5]] ] } - ], - [#Rule 110 - 'perc_package', 4, -sub -#line 334 "XSP.yp" -{ $_[3] } - ], - [#Rule 111 - 'perc_module', 4, -sub -#line 335 "XSP.yp" -{ $_[3] } - ], - [#Rule 112 - 'perc_file', 4, -sub -#line 336 "XSP.yp" -{ $_[3] } - ], - [#Rule 113 - 'perc_loadplugin', 4, -sub -#line 337 "XSP.yp" -{ $_[3] } - ], - [#Rule 114 - 'perc_include', 4, -sub -#line 338 "XSP.yp" -{ $_[3] } - ], - [#Rule 115 - 'perc_code', 2, -sub -#line 339 "XSP.yp" -{ [ code => $_[2] ] } - ], - [#Rule 116 - 'perc_cleanup', 2, -sub -#line 340 "XSP.yp" -{ [ cleanup => $_[2] ] } - ], - [#Rule 117 - 'perc_postcall', 2, -sub -#line 341 "XSP.yp" -{ [ postcall => $_[2] ] } - ], - [#Rule 118 - 'perc_catch', 4, -sub -#line 342 "XSP.yp" -{ [ map {(catch => $_)} @{$_[3]} ] } - ], - [#Rule 119 - 'perc_any', 4, -sub -#line 347 "XSP.yp" -{ [ tag => { any => $_[1], named => $_[3] } ] } - ], - [#Rule 120 - 'perc_any', 5, -sub -#line 349 "XSP.yp" -{ [ tag => { any => $_[1], positional => [ $_[3], @{$_[5]} ] } ] } - ], - [#Rule 121 - 'perc_any', 3, -sub -#line 351 "XSP.yp" -{ [ tag => { any => $_[1], positional => [ $_[2], @{$_[3]} ] } ] } - ], - [#Rule 122 - 'perc_any', 1, -sub -#line 353 "XSP.yp" -{ [ tag => { any => $_[1] } ] } - ], - [#Rule 123 - 'perc_any_args', 1, -sub -#line 357 "XSP.yp" -{ $_[1] } - ], - [#Rule 124 - 'perc_any_args', 2, -sub -#line 358 "XSP.yp" -{ [ @{$_[1]}, @{$_[2]} ] } - ], - [#Rule 125 - 'perc_any_arg', 3, -sub -#line 362 "XSP.yp" -{ [ $_[1] => $_[2] ] } - ], - [#Rule 126 - 'perc_any_arg', 2, -sub -#line 363 "XSP.yp" -{ [ name => $_[1] ] } - ], - [#Rule 127 - 'type', 2, -sub -#line 367 "XSP.yp" -{ make_const( $_[2] ) } - ], - [#Rule 128 - 'type', 1, undef - ], - [#Rule 129 - 'nconsttype', 2, -sub -#line 372 "XSP.yp" -{ make_ptr( $_[1] ) } - ], - [#Rule 130 - 'nconsttype', 2, -sub -#line 373 "XSP.yp" -{ make_ref( $_[1] ) } - ], - [#Rule 131 - 'nconsttype', 1, -sub -#line 374 "XSP.yp" -{ make_type( $_[1] ) } - ], - [#Rule 132 - 'nconsttype', 1, undef - ], - [#Rule 133 - 'type_name', 1, undef - ], - [#Rule 134 - 'type_name', 1, undef - ], - [#Rule 135 - 'type_name', 1, undef - ], - [#Rule 136 - 'type_name', 1, -sub -#line 382 "XSP.yp" -{ 'unsigned int' } - ], - [#Rule 137 - 'type_name', 2, -sub -#line 383 "XSP.yp" -{ 'unsigned' . ' ' . $_[2] } - ], - [#Rule 138 - 'basic_type', 1, undef - ], - [#Rule 139 - 'basic_type', 1, undef - ], - [#Rule 140 - 'basic_type', 1, undef - ], - [#Rule 141 - 'basic_type', 1, undef - ], - [#Rule 142 - 'basic_type', 2, undef - ], - [#Rule 143 - 'basic_type', 2, undef - ], - [#Rule 144 - 'template', 4, -sub -#line 389 "XSP.yp" -{ make_template( $_[1], $_[3] ) } - ], - [#Rule 145 - 'type_list', 1, -sub -#line 393 "XSP.yp" -{ [ $_[1] ] } - ], - [#Rule 146 - 'type_list', 3, -sub -#line 394 "XSP.yp" -{ push @{$_[1]}, $_[3]; $_[1] } - ], - [#Rule 147 - 'class_name', 1, undef - ], - [#Rule 148 - 'class_name', 2, -sub -#line 398 "XSP.yp" -{ $_[1] . '::' . $_[2] } - ], - [#Rule 149 - 'class_name_list', 1, -sub -#line 401 "XSP.yp" -{ [ $_[1] ] } - ], - [#Rule 150 - 'class_name_list', 3, -sub -#line 402 "XSP.yp" -{ push @{$_[1]}, $_[3]; $_[1] } - ], - [#Rule 151 - 'class_suffix', 2, -sub -#line 405 "XSP.yp" -{ $_[2] } - ], - [#Rule 152 - 'class_suffix', 3, -sub -#line 406 "XSP.yp" -{ $_[1] . '::' . $_[3] } - ], - [#Rule 153 - 'file_name', 1, -sub -#line 408 "XSP.yp" -{ '-' } - ], - [#Rule 154 - 'file_name', 3, -sub -#line 409 "XSP.yp" -{ $_[1] . '.' . $_[3] } - ], - [#Rule 155 - 'file_name', 3, -sub -#line 410 "XSP.yp" -{ $_[1] . '/' . $_[3] } - ], - [#Rule 156 - 'arg_list', 1, undef - ], - [#Rule 157 - 'arg_list', 1, -sub -#line 413 "XSP.yp" -{ undef } - ], - [#Rule 158 - 'nonvoid_arg_list', 1, -sub -#line 416 "XSP.yp" -{ [ $_[1] ] } - ], - [#Rule 159 - 'nonvoid_arg_list', 3, -sub -#line 417 "XSP.yp" -{ push @{$_[1]}, $_[3]; $_[1] } - ], - [#Rule 160 - 'nonvoid_arg_list', 0, undef - ], - [#Rule 161 - 'argument_metadata', 2, -sub -#line 420 "XSP.yp" -{ [ @{$_[1]}, @{$_[2]} ] } - ], - [#Rule 162 - 'argument_metadata', 0, -sub -#line 421 "XSP.yp" -{ [] } - ], - [#Rule 163 - '_argument_metadata', 1, undef - ], - [#Rule 164 - 'argument', 5, -sub -#line 427 "XSP.yp" -{ make_argument( @_[0, 1], "length($_[4])" ) } - ], - [#Rule 165 - 'argument', 5, -sub -#line 429 "XSP.yp" -{ make_argument( @_[0, 1, 2, 5], @{$_[3]} ) } - ], - [#Rule 166 - 'argument', 3, -sub -#line 431 "XSP.yp" -{ make_argument( @_[0, 1, 2], undef, @{$_[3]} ) } - ], - [#Rule 167 - 'value', 1, undef - ], - [#Rule 168 - 'value', 2, -sub -#line 434 "XSP.yp" -{ '-' . $_[2] } - ], - [#Rule 169 - 'value', 1, undef - ], - [#Rule 170 - 'value', 1, undef - ], - [#Rule 171 - 'value', 1, undef - ], - [#Rule 172 - 'value', 4, -sub -#line 438 "XSP.yp" -{ "$_[1]($_[3])" } - ], - [#Rule 173 - 'value_list', 1, undef - ], - [#Rule 174 - 'value_list', 3, -sub -#line 443 "XSP.yp" -{ "$_[1], $_[2]" } - ], - [#Rule 175 - 'value_list', 0, -sub -#line 444 "XSP.yp" -{ "" } - ], - [#Rule 176 - 'expression', 1, undef - ], - [#Rule 177 - 'expression', 3, -sub -#line 450 "XSP.yp" -{ "$_[1] & $_[3]" } - ], - [#Rule 178 - 'expression', 3, -sub -#line 452 "XSP.yp" -{ "$_[1] | $_[3]" } - ], - [#Rule 179 - 'special_blocks', 1, -sub -#line 456 "XSP.yp" -{ [ $_[1] ] } - ], - [#Rule 180 - 'special_blocks', 2, -sub -#line 458 "XSP.yp" -{ [ @{$_[1]}, $_[2] ] } - ], - [#Rule 181 - 'special_blocks', 0, undef - ], - [#Rule 182 - 'special_block', 3, -sub -#line 462 "XSP.yp" -{ $_[2] } - ], - [#Rule 183 - 'special_block', 2, -sub -#line 464 "XSP.yp" -{ [] } - ], - [#Rule 184 - 'special_block_start', 1, -sub -#line 467 "XSP.yp" -{ push_lex_mode( $_[0], 'special' ) } - ], - [#Rule 185 - 'special_block_end', 1, -sub -#line 469 "XSP.yp" -{ pop_lex_mode( $_[0], 'special' ) } - ], - [#Rule 186 - 'lines', 1, -sub -#line 471 "XSP.yp" -{ [ $_[1] ] } - ], - [#Rule 187 - 'lines', 2, -sub -#line 472 "XSP.yp" -{ push @{$_[1]}, $_[2]; $_[1] } - ] -], - @_); - bless($self,$class); -} - -#line 474 "XSP.yp" - - -use ExtUtils::XSpp::Lexer; - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Lexer.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Lexer.pm deleted file mode 100644 index 43eb6dfd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Lexer.pm +++ /dev/null @@ -1,513 +0,0 @@ -# this module will be loaded by ExtUtils/XSpp/Grammar.pm and needs to -# define subroutines in the ExtUtils::XSpp::Grammar namespace -package ExtUtils::XSpp::Lexer; -# for the indexer and friends -use strict; -use warnings; - -package ExtUtils::XSpp::Grammar; - -use ExtUtils::XSpp::Node; -use ExtUtils::XSpp::Node::Access; -use ExtUtils::XSpp::Node::Argument; -use ExtUtils::XSpp::Node::Class; -use ExtUtils::XSpp::Node::Comment; -use ExtUtils::XSpp::Node::Constructor; -use ExtUtils::XSpp::Node::Destructor; -use ExtUtils::XSpp::Node::File; -use ExtUtils::XSpp::Node::Function; -use ExtUtils::XSpp::Node::Member; -use ExtUtils::XSpp::Node::Method; -use ExtUtils::XSpp::Node::Module; -use ExtUtils::XSpp::Node::Package; -use ExtUtils::XSpp::Node::Raw; -use ExtUtils::XSpp::Node::Type; -use ExtUtils::XSpp::Node::PercAny; -use ExtUtils::XSpp::Node::Enum; -use ExtUtils::XSpp::Node::EnumValue; -use ExtUtils::XSpp::Node::Preprocessor; - -use ExtUtils::XSpp::Typemap; -use ExtUtils::XSpp::Exception; - -use Digest::MD5 qw(md5_hex); - -my %tokens = ( '::' => 'DCOLON', - ':' => 'COLON', - '%{' => 'OPSPECIAL', - '%}' => 'CLSPECIAL', - '{%' => 'OPSPECIAL', - '{' => 'OPCURLY', - '}' => 'CLCURLY', - '(' => 'OPPAR', - ')' => 'CLPAR', - ';' => 'SEMICOLON', - '%' => 'PERC', - '~' => 'TILDE', - '*' => 'STAR', - '&' => 'AMP', - '|' => 'PIPE', - ',' => 'COMMA', - '=' => 'EQUAL', - '/' => 'SLASH', - '.' => 'DOT', - '-' => 'DASH', - '<' => 'OPANG', - '>' => 'CLANG', - # these are here due to my lack of skill with yacc - '%name' => 'p_name', - '%typemap' => 'p_typemap', - '%exception' => 'p_exceptionmap', - '%catch' => 'p_catch', - '%file' => 'p_file', - '%module' => 'p_module', - '%code' => 'p_code', - '%cleanup' => 'p_cleanup', - '%postcall' => 'p_postcall', - '%package' => 'p_package', - '%length' => 'p_length', - '%loadplugin' => 'p_loadplugin', - '%include' => 'p_include', - '%alias' => 'p_alias', - '%_type' => 'p__type', - ); - -my %keywords = ( const => 1, - class => 1, - unsigned => 1, - short => 1, - long => 1, - int => 1, - char => 1, - void => 1, - package_static => 1, - class_static => 1, - static => 1, - public => 1, - private => 1, - protected => 1, - virtual => 1, - enum => 1, - ); - -sub get_lex_mode { return $_[0]->YYData->{LEX}{MODES}[0] || '' } - -sub push_lex_mode { - my( $p, $mode ) = @_; - - push @{$p->YYData->{LEX}{MODES}}, $mode; -} - -sub pop_lex_mode { - my( $p, $mode ) = @_; - - die "Unexpected mode: '$mode'" - unless get_lex_mode( $p ) eq $mode; - - pop @{$p->YYData->{LEX}{MODES}}; -} - -sub read_more { - my $v = readline $_[0]->YYData->{LEX}{FH}; - my $buf = $_[0]->YYData->{LEX}{BUFFER}; - - unless( defined $v ) { - if( $_[0]->YYData->{LEX}{NEXT} ) { - $_[0]->YYData->{LEX} = $_[0]->YYData->{LEX}{NEXT}; - $buf = $_[0]->YYData->{LEX}{BUFFER}; - - return $buf if length $$buf; - return read_more( $_[0] ); - } else { - return; - } - } - - $$buf .= $v; - - return $buf; -} - -# for tests -sub _random_digits { sprintf '%06d', rand 100000 } - -sub push_conditional { - my $p = $_[0]; - my $file = $p->YYData->{LEX}{FILE} ? - substr md5_hex( $p->YYData->{LEX}{FILE} ), 0, 8 : - 'zzzzzzzz'; - my $rand = _random_digits; - - my $symbol = 'XSpp_' . $file . '_' . $rand; - push @{$p->YYData->{LEX}{CONDITIONAL}}, $symbol; - - return $symbol; -} - -sub pop_conditional { - pop @{$_[0]->YYData->{LEX}{CONDITIONAL}}; -} - -sub get_conditional { - return undef unless $_[0]->YYData->{LEX}{CONDITIONAL}; - return undef unless @{$_[0]->YYData->{LEX}{CONDITIONAL}}; - return $_[0]->YYData->{LEX}{CONDITIONAL}[-1]; -} - -sub yylex { - my $data = $_[0]->YYData->{LEX}; - my $buf = $data->{BUFFER}; - - for(;;) { - if( !length( $$buf ) && !( $buf = read_more( $_[0] ) ) ) { - return ( '', undef ); - } - - if( get_lex_mode( $_[0] ) eq 'special' ) { - if( $$buf =~ s/^%}// ) { - return ( 'CLSPECIAL', '%}' ); - } elsif( $$buf =~ s/^([^\n]*)\n$// ) { - my $line = $1; - - if( $line =~ m/^(.*?)\%}(.*)$/ ) { - $$buf = "%}$2\n"; - $line = $1; - } - - return ( 'line', $line ); - } - } else { - $$buf =~ s/^[\s\n\r]+//; - next unless length $$buf; - - if( $$buf =~ s/^([+-]?0x[0-9a-fA-F]+)// ) { - return ( 'INTEGER', $1 ); - } elsif( $$buf =~ s/^([+-]?(?=\d|\.\d)\d*(?:\.\d*)?(?:[Ee](?:[+-]?\d+))?)// ) { - my $v = $1; - return ( 'INTEGER', $v ) if $v =~ /^[+-]?\d+$/; - return ( 'FLOAT', $v ); - } elsif( $$buf =~ s/^\/\/(.*)(?:\r\n|\r|\n)// ) { - return ( 'COMMENT', [ $1 ] ); - } elsif( $$buf =~ /^\/\*/ ) { - my @rows; - for(; length( $$buf ) || ( $buf = read_more( $_[0] ) ); $$buf = '') { - if( $$buf =~ s/(.*?\*\/)// ) { - push @rows, $1; - return ( 'COMMENT', \@rows ); - } - $$buf =~ s/(?:\r\n|\r|\n)$//; - push @rows, $$buf; - } - } elsif( $$buf =~ s/^(\%\w+)// ) { - return ( $tokens{$1}, $1 ) if exists $tokens{$1}; - return ( 'p_any', substr $1, 1 ); - } elsif( $$buf =~ s/^( \%} - | \%\{ | \{\% - | [{}();%~*&,=\/\.\-<>|] - | :: | : - )//x ) { - return ( $tokens{$1}, $1 ); - } elsif( $$buf =~ s/^(INCLUDE(?:_COMMAND)?:.*)(?:\r\n|\r|\n)// ) { - return ( 'RAW_CODE', "$1\n" ); - } elsif( $$buf =~ s/^([a-zA-Z_]\w*)// ) { - return ( $1, $1 ) if exists $keywords{$1}; - - return ( 'ID', $1 ); - } elsif( $$buf =~ s/^("[^"]*")// ) { - return ( 'QUOTED_STRING', $1 ); - } elsif( $$buf =~ s/^(#\s*(if|ifdef|ifndef|else|elif|endif)\b.*)(?:\r\n|\r|\n)// ) { - my $symbol; - if( $2 eq 'else' || $2 eq 'elif' || $2 eq 'endif' ) { - pop_conditional( $_[0] ); - } - if( $2 ne 'endif' ) { - $symbol = push_conditional( $_[0] ); - } - - return ( 'PREPROCESSOR', [ $1, $symbol ] ); - } elsif( $$buf =~ s/^(#.*)(?:\r\n|\r|\n)// ) { - return ( 'RAW_CODE', $1 ); - } else { - die $$buf; - } - } - } -} - -sub yyerror { - my $data = $_[0]->YYData->{LEX}; - my $buf = $data->{BUFFER}; - my $fh = $data->{FH}; - - print STDERR "Error: line " . $fh->input_line_number . " (Current token type: '", - $_[0]->YYCurtok, "') (Current value: '", - $_[0]->YYCurval, '\') Buffer: "', ( $buf ? $$buf : '--empty buffer--' ), - q{"} . "\n"; - print STDERR "Expecting: (", ( join ", ", map { "'$_'" } $_[0]->YYExpect ), - ")\n"; -} - -sub make_const { $_[0]->{CONST} = 1; $_[0] } -sub make_ref { $_[0]->{REFERENCE} = 1; $_[0] } -sub make_ptr { $_[0]->{POINTER}++; $_[0] } -sub make_type { ExtUtils::XSpp::Node::Type->new( base => $_[0] ) } - -sub make_template { - ExtUtils::XSpp::Node::Type->new( base => $_[0], - template_args => $_[1], - ) -} - -sub add_typemap { - my( $name, $type, @args ) = @_; - my $tm = ExtUtils::XSpp::Typemap::create( $name, type => $type, @args ); - - ExtUtils::XSpp::Typemap::add_typemap_for_type( $type, $tm ); -} - -sub add_data_raw { - my $p = shift; - my $rows = shift; - - ExtUtils::XSpp::Node::Raw->new( rows => $rows ); -} - -sub add_data_comment { - my $p = shift; - my $rows = shift; - - ExtUtils::XSpp::Node::Comment->new( rows => $rows ); -} - -sub add_top_level_directive { - my( $parser, %args ) = @_; - - $parser->YYData->{PARSER}->handle_toplevel_tag_plugins - ( $args{any}, - named => $args{named}, - positional => $args{positional}, - any_named_arguments => $args{named}, - any_positional_arguments => $args{positional}, - condition => $parser->get_conditional, - ); -} - -sub make_argument { - my( $p, $type, $name, $default, @args ) = @_; - my %args = @args; - _merge_keys( 'tag', \%args, \@args ); - - my $arg = ExtUtils::XSpp::Node::Argument->new - ( type => $type, - name => $name, - default => $default, - tags => $args{tag} ); - - return $arg; -} - -sub create_class { - my( $parser, $name, $bases, $metadata, $methods, $condition ) = @_; - my %args = @$metadata; - _merge_keys( 'catch', \%args, $metadata ); - - my $class = ExtUtils::XSpp::Node::Class->new( %args, # <-- catch only for now - cpp_name => $name, - base_classes => $bases, - condition => $condition, - ); - - # when adding a class C, automatically add weak typemaps for C* and C& - ExtUtils::XSpp::Typemap::add_class_default_typemaps( $name ); - - my @any = grep $_->isa( 'ExtUtils::XSpp::Node::PercAny' ), @$methods; - my @rest = grep !$_->isa( 'ExtUtils::XSpp::Node::PercAny' ), @$methods; - - # finish creating the class - $class->add_methods( @rest ); - - foreach my $meth ( grep $_->isa( 'ExtUtils::XSpp::Node::Method' ), @rest ) { - call_argument_tags( $parser, $meth ); - - my $nodes = $parser->YYData->{PARSER}->handle_method_tags_plugins( $meth, $meth->tags ); - - $class->add_methods( @$nodes ); - } - - foreach my $any ( @any ) { - if( $any->{NAME} eq 'accessors' ) { - # TODO use plugin infrastructure, add decent validation - my %args = @{$any->{NAMED_ARGUMENTS}}; - if( $args{get_style} ) { - if( @{$args{get_style}} ) { - $class->set_getter_style( $args{get_style}[0][0] ); - } else { - die "Invalid accessor style declaration"; - } - } - if( $args{set_style} ) { - if( @{$args{set_style}} ) { - $class->set_setter_style( $args{set_style}[0][0] ); - } else { - die "Invalid accessor style declaration"; - } - } - next; - } - - my $nodes = $parser->YYData->{PARSER}->handle_class_tag_plugins - ( $class, $any->{NAME}, - named => $any->{NAMED_ARGUMENTS}, - positional => $any->{POSITIONAL_ARGUMENTS}, - any_named_arguments => $any->{NAMED_ARGUMENTS}, - any_positional_arguments => $any->{POSITIONAL_ARGUMENTS}, - ); - - $class->add_methods( @$nodes ); - } - - return $class; -} - -# support multiple occurrances of specific keys -# => transform to flattened array ref -sub _merge_keys { - my $key = shift; - my $argshash = shift; - my $paramlist = shift; - my @occurrances; - for (my $i = 0; $i < @$paramlist; $i += 2) { - if (defined $paramlist->[$i] and $paramlist->[$i] eq $key) { - push @occurrances, $paramlist->[$i+1]; - } - } - @occurrances = map {ref($_) eq 'ARRAY' ? @$_ : $_} @occurrances; - $argshash->{$key} = \@occurrances; -} - - -sub create_member { - my( $parser, @args ) = @_; - my %args = @args; - _merge_keys( 'tag', \%args, \@args ); - - return ExtUtils::XSpp::Node::Member->new - ( cpp_name => $args{name}, - perl_name => $args{perl_name}, - class => $args{class}, - type => $args{type}, - condition => $args{condition}, - tags => $args{tag}, - ); -} - -sub add_data_function { - my( $parser, @args ) = @_; - my %args = @args; - _merge_keys( 'catch', \%args, \@args ); - _merge_keys( 'alias', \%args, \@args ); - _merge_keys( 'tag', \%args, \@args ); - $args{alias} = +{@{$args{alias}}} if exists $args{alias}; - - return ExtUtils::XSpp::Node::Function->new - ( cpp_name => $args{name}, - perl_name => $args{perl_name}, - class => $args{class}, - ret_type => $args{ret_type}, - arguments => $args{arguments}, - code => $args{code}, - cleanup => $args{cleanup}, - postcall => $args{postcall}, - catch => $args{catch}, - condition => $args{condition}, - alias => $args{alias}, - tags => $args{tag}, - ); -} - -sub add_data_method { - my( $parser, @args ) = @_; - my %args = @args; - _merge_keys( 'catch', \%args, \@args ); - _merge_keys( 'alias', \%args, \@args ); - _merge_keys( 'tag', \%args, \@args ); - $args{alias} = +{@{$args{alias}}} if exists $args{alias}; - - my $m = ExtUtils::XSpp::Node::Method->new - ( cpp_name => $args{name}, - ret_type => $args{ret_type}, - arguments => $args{arguments}, - const => $args{const}, - code => $args{code}, - cleanup => $args{cleanup}, - postcall => $args{postcall}, - perl_name => $args{perl_name}, - catch => $args{catch}, - condition => $args{condition}, - alias => $args{alias}, - tags => $args{tag}, - ); - - return $m; -} - -sub add_data_ctor { - my( $parser, @args ) = @_; - my %args = @args; - _merge_keys( 'catch', \%args, \@args ); - _merge_keys( 'tag', \%args, \@args ); - - my $m = ExtUtils::XSpp::Node::Constructor->new - ( cpp_name => $args{name}, - arguments => $args{arguments}, - code => $args{code}, - cleanup => $args{cleanup}, - postcall => $args{postcall}, - catch => $args{catch}, - condition => $args{condition}, - tags => $args{tag}, - ); - - return $m; -} - -sub add_data_dtor { - my( $parser, @args ) = @_; - my %args = @args; - _merge_keys( 'catch', \%args, \@args ); - _merge_keys( 'tag', \%args, \@args ); - - my $m = ExtUtils::XSpp::Node::Destructor->new - ( cpp_name => $args{name}, - code => $args{code}, - cleanup => $args{cleanup}, - postcall => $args{postcall}, - catch => $args{catch}, - condition => $args{condition}, - tags => $args{tag}, - ); - - return $m; -} - -sub process_function { - my( $parser, $function ) = @_; - - $function->resolve_typemaps; - $function->resolve_exceptions; - call_argument_tags( $parser, $function ); - - my $nodes = $parser->YYData->{PARSER}->handle_function_tags_plugins( $function, $function->tags ); - - return [ $function, @$nodes ]; -} - -sub call_argument_tags { - my( $parser, $function ) = @_; - - foreach my $arg ( @{$function->arguments} ) { - $parser->YYData->{PARSER}->handle_argument_tags_plugins( $arg, $arg->tags ); - } -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node.pm deleted file mode 100644 index 6417432a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node.pm +++ /dev/null @@ -1,70 +0,0 @@ -package ExtUtils::XSpp::Node; -use strict; -use warnings; -use Carp (); - -=head1 NAME - -ExtUtils::XSpp::Node - Base class for elements of the parser output - -=head1 DESCRIPTION - -ExtUtils::XSpp::Node is a base class for all elements of the -parser's output. - -=head1 METHODS - -=head2 new - -Calls the C<$self->init(@_)> method after construction. -Override C<init()> in subclasses. - -=cut - -sub new { - my $class = shift; - my $this = bless {}, $class; - - $this->init( @_ ); - - return $this; -} - -=head2 init - -Called by the constructor. Every sub-class needs to override this. - -=cut - -sub init { - Carp::croak( - "Programmer was too lazy to implement init() in her Node sub-class" - ); -} - -=head2 ExtUtils::XSpp::Node::print - -Return a string to be output in the final XS file. -Every sub-class must override this method. - -=cut - -sub print { - Carp::croak( - "Programmer was too lazy to implement print() in her Node sub-class" - ); -} - -sub condition { $_[0]->{CONDITION} } - -sub condition_expression { - my $this = shift; - - return $this->emit_condition if $this->emit_condition; - return 'defined( ' . $this->condition . ' )' if $this->condition; - return '1'; -} - -sub emit_condition { $_[0]->{EMIT_CONDITION} } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Access.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Access.pm deleted file mode 100644 index 17c70c67..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Access.pm +++ /dev/null @@ -1,43 +0,0 @@ -package ExtUtils::XSpp::Node::Access; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Node'; - -=head1 NAME - -ExtUtils::XSpp::Node::Access - Node representing an access specifier - -=head1 DESCRIPTION - -An L<ExtUtils::XSpp::Node> subclass representing an access (or method scope) -specifier such as C<public>, C<protected>, C<private>. - -=head1 METHODS - -=head2 new - -Creates a new C<ExtUtils::XSpp::Node::Access> object. - -Named parameters: C<access> must be the name of the access -specifier (see above). - -=cut - -sub init { - my $this = shift; - my %args = @_; - - $this->{ACCESS} = $args{access}; -} - -=head1 ACCESSORS - -=head2 access - -Returns the name of the access specifier. - -=cut - -sub access { $_[0]->{ACCESS} } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Argument.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Argument.pm deleted file mode 100644 index f44c0a1b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Argument.pm +++ /dev/null @@ -1,139 +0,0 @@ -package ExtUtils::XSpp::Node::Argument; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Node'; - -=head1 NAME - -ExtUtils::XSpp::Node::Argument - Node representing a method/function argument - -=head1 DESCRIPTION - -An L<ExtUtils::XSpp::Node> subclass representing a single function -or method argument such as - - int foo = 0. - -which would translate to an C<ExtUtils::XSpp::Node::Argument> which has -its C<type> set to C<int>, its C<name> set to C<foo> and its C<default> -set to C<0.>. - -=head1 METHODS - -=head2 new - -Creates a new C<ExtUtils::XSpp::Node::Argument>. - -Named parameters: C<type> indicating the C++ argument type, -C<name> indicating the variable name, and optionally -C<default> indicating the default value of the argument. - -=head2 uses_length - -Returns true if the argument uses the XS length feature, false -otherwise. - -=head2 implementation_name - -Returns the same as the C<name> method unless -the argument is of the C<%length(something)> variant. -In that case, C<implementation_name> returns a -munged version of the name that addresses the name mangling -done by F<xsubpp>: C<XSauto_length_of_somthing>. - -=head2 fix_name_in_code - -Given a code string, replaces any occurrances of -the name of this C<Argument> with its implementation -name. If the implementation name is the same as the name, -which is the most likely case, the code remains -completely untouched. - -Returns the potentially modified code. - -=cut - -sub init { - my $this = shift; - my %args = @_; - - $this->{TYPE} = $args{type}; - $this->{NAME} = $args{name}; - $this->{DEFAULT} = $args{default}; - $this->{TAGS} = $args{tags}; -} - -sub print { - my $this = shift; - my $state = shift; - - return join( ' ', - $this->type->print( $state ), - $this->name, - ( $this->default ? - ( '=', $this->default ) : () ) ); -} - -sub uses_length { - return($_[0]->name =~ /^length\([^\)]+\)/); -} - -sub implementation_name { - my $this = shift; - my $name = $this->name; - if ($this->uses_length) { - $name =~ /^length\(([^\)]+)\)/; - return "XSauto_length_of_$1"; - } - return $name; -} - -sub fix_name_in_code { - my $this = shift; - my $code = shift; - return $code if not $this->uses_length; - my $name = $this->name; - my $impl = $this->implementation_name; - $code =~ s/\b\Q$name\E/$impl/g; - return $code; -} - -=head1 ACCESSORS - -=head2 type - -Returns the type of the argument. - -=head2 name - -Returns the variable name of the argument variable. - -=head2 default - -Returns the default for the function parameter if any. - -=head2 has_default - -Returns whether there is a default for the function parameter. - -=head2 function - -Returns a reference to the containing function/method. - -=head2 index - -Returns the 0-based index of the argument in the argument list. - -=cut - -sub type { $_[0]->{TYPE} } -sub name { $_[0]->{NAME} } -sub tags { $_[0]->{TAGS} } - -sub default { $_[0]->{DEFAULT} } -sub has_default { defined $_[0]->{DEFAULT} } - -sub function { $_[0]->{FUNCTION} } -sub index { $_[0]->{INDEX} } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Class.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Class.pm deleted file mode 100644 index 08a6d397..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Class.pm +++ /dev/null @@ -1,223 +0,0 @@ -package ExtUtils::XSpp::Node::Class; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Node::Package'; - -=head1 NAME - -ExtUtils::XSpp::Node::Class - A class (inherits from Package). - -=head1 DESCRIPTION - -An L<ExtUtils::XSpp::Node::Package> sub-class representing a class -declaration such as - - %name{PerlClassName} class MyClass : public BaseClass - { - ... - } - -The Perl-level class name and the C++ class name attributes -are inherited from the L<ExtUtils::XSpp::Node::Package> class. - -=head1 METHODS - -=head2 new - -Creates a new C<ExtUtils::XSpp::Node::Class> object. - -Optional named parameters: -C<methods> can be a reference to an array of methods -(L<ExtUtils::XSpp::Node::Method>) of the class, -and C<base_classes>, a reference to an array of -base classes (C<ExtUtils::XSpp::Node::Class> objects). -C<catch> may be a list of exception names that all -methods in the class handle. - -=cut - -# internal list of all the non-empty class objects, either defined by the -# parser or created by plugins; does not include dummy base class objects -my %all_classes; - -sub init { - my $this = shift; - my %args = @_; - - $this->SUPER::init( @_ ); - $this->{METHODS} = []; - $this->{BASE_CLASSES} = $args{base_classes} || []; - $this->add_methods( @{$args{methods}} ) if $args{methods}; - $this->{CATCH} = $args{catch}; - $this->{CONDITION} = $args{condition}; - $this->{EMIT_CONDITION} = $args{emit_condition}; - $this->{GETTER_STYLE} = $this->{SETTER_STYLE} = 'underscore'; - - $all_classes{$this->cpp_name} = $this unless $this->empty; - - # TODO check the Perl name of the base class? - foreach my $base ( @{$this->base_classes} ) { - $base = $all_classes{$base->cpp_name} - if $all_classes{$base->cpp_name}; - } -} - -=head2 add_methods - -Adds new methods to the class. By default, their -scope is C<public>. Takes arbitrary number of arguments -which are processed in order. - -If an argument is an L<ExtUtils::XSpp::Node::Access>, -the current method scope is changed accordingly for -all following methods. - -If an argument is an L<ExtUtils::XSpp::Node::Method> -it is added to the list of methods of the class. -The method's class name is set to the current class -and its scope is set to the current method scope. - -=cut - -sub add_methods { - my $this = shift; - my $access = 'public'; # good enough for now - foreach my $meth ( @_ ) { - if( $meth->isa( 'ExtUtils::XSpp::Node::Function' ) ) { - $meth->{CLASS} = $this; - $meth->{ACCESS} = $access; - $meth->add_exception_handlers( @{$this->{CATCH} || []} ); - $meth->resolve_typemaps; - $meth->resolve_exceptions; - } elsif( $meth->isa( 'ExtUtils::XSpp::Node::Member' ) ) { - $meth->{CLASS} = $this; - $meth->{ACCESS} = $access; - $meth->resolve_typemaps; - } elsif( $meth->isa( 'ExtUtils::XSpp::Node::Access' ) ) { - $access = $meth->access; - next; - } - # FIXME: Should there be else{croak}? - push @{$this->{METHODS}}, $meth; - } - - $all_classes{$this->cpp_name} = $this unless $this->empty; -} - -sub delete_methods { - my( $this, @methods ) = @_; - my %methods = map { $_ => 1 } @methods; - - $this->{METHODS} = [ grep !$methods{$_}, @{$this->{METHODS}} ]; -} - -sub print { - my $this = shift; - my $state = shift; - my $out = $this->SUPER::print( $state ); - - $out .= '#if ' . $this->emit_condition . "\n" if $this->emit_condition; - - foreach my $m ( @{$this->methods} ) { - next if $m->can( 'access' ) && $m->access ne 'public'; - $out .= $m->print( $state ); - } - - # add a BOOT block for base classes - if( @{$this->base_classes} ) { - my $class = $this->perl_name; - - $out .= <<EOT; -BOOT: - { -EOT - - $out .= '#ifdef ' . $this->condition . "\n" if $this->condition; - $out .= <<EOT; - AV* isa = get_av( "${class}::ISA", 1 ); -EOT - - foreach my $b ( @{$this->base_classes} ) { - my $base = $b->perl_name; - - $out .= <<EOT; - av_store( isa, 0, newSVpv( "$base", 0 ) ); -EOT - } - - # close block in BOOT - $out .= '#endif // ' . $this->condition . "\n" if $this->condition; - $out .= <<EOT; - } // blank line here is important - -EOT - } - - $out .= '#endif // ' . $this->emit_condition . "\n" if $this->emit_condition; - - return $out; -} - -my %getter_maker = - ( no_prefix => sub { $_[0] }, - underscore => sub { 'get_' . $_[0] }, - camelcase => sub { 'get' . ucfirst $_[0] }, - uppercase => sub { 'Get' . ucfirst $_[0] }, - ); - -my %setter_maker = - ( no_prefix => sub { $_[0] }, - underscore => sub { 'set_' . $_[0] }, - camelcase => sub { 'set' . ucfirst $_[0] }, - uppercase => sub { 'Set' . ucfirst $_[0] }, - ); - -sub _getter_name { - my( $this, $base ) = @_; - - return $getter_maker{$this->{GETTER_STYLE}}->( $base ); -} - -sub _setter_name { - my( $this, $base ) = @_; - - return $setter_maker{$this->{SETTER_STYLE}}->( $base ); -} - -sub set_getter_style { - my( $this, $style ) = @_; - - die "Invalid accessor style '$style'" unless exists $getter_maker{$style}; - $this->{GETTER_STYLE} = $style; -} - -sub set_setter_style { - my( $this, $style ) = @_; - - die "Invalid accessor style '$style'" unless exists $setter_maker{$style}; - $this->{SETTER_STYLE} = $style; -} - -=head1 ACCESSORS - -=head2 methods - -Returns the internal reference to the array of methods in this class. -Each of the methods is an C<ExtUtils::XSpp::Node::Method> - -=head2 base_classes - -Returns the internal reference to the array of base classes of -this class. - -If the base classes have been defined in the same file, these are the -complete class objects including method definitions, otherwise only -the C++ and Perl name of the class are available as attributes. - -=cut - -sub methods { $_[0]->{METHODS} } -sub base_classes { $_[0]->{BASE_CLASSES} } -sub empty { !$_[0]->methods || !@{$_[0]->methods} } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Comment.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Comment.pm deleted file mode 100644 index 6db66f82..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Comment.pm +++ /dev/null @@ -1,46 +0,0 @@ -package ExtUtils::XSpp::Node::Comment; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Node::Raw'; - -=head1 NAME - -ExtUtils::XSpp::Node::Comment - Node representing a comment in the source file - -=head1 DESCRIPTION - -An L<ExtUtils::XSpp::Node::Raw> subclass representing a piece of raw data -that should be included in the output verbatim, but with comment markers prefixed. - - // This is a comment! - -would become something like - - ## This is a comment! - -=head1 METHODS - -=head2 new - -Creates a new C<ExtUtils::XSpp::Node::Comment>. - -Named parameters: C<rows> should be a reference to -an array of source code comment lines. - -=cut - -sub init { - my $this = shift; - my %args = @_; - - $this->{ROWS} = $args{rows}; -} - -sub print { - my $this = shift; - my $state = shift; - - return "\n"; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Constructor.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Constructor.pm deleted file mode 100644 index 75eece4c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Constructor.pm +++ /dev/null @@ -1,88 +0,0 @@ -package ExtUtils::XSpp::Node::Constructor; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Node::Method'; - -=head1 NAME - -ExtUtils::XSpp::Node::Constructor - Node representing a constructor method - -=head1 DESCRIPTION - -An L<ExtUtils::XSpp::Node::Method> subclass representing a -constructor such as: - - class FooBar { - FooBar(); // <-- this one - }; - -=head1 METHODS - -=head2 new - -Creates a new C<ExtUtils::XSpp::Node::Constructor>. - -Most of the functionality of this class is inherited. This -means that all named parameters of L<ExtUtils::XSpp::Node::Method> -and its base class are also valid for this class' constructor. - -Additionally, this class requires that no return type has -been specified as constructors do not have return types. - -=cut - -sub init { - my $this = shift; - $this->SUPER::init( @_ ); - - die "Can't specify return value in constructor" if $this->{RET_TYPE}; -} - -sub print { - my $this = shift; - my $state = shift; - my $out = $this->SUPER::print( $state ); - - return sprintf <<EOT, $out; -#undef xsp_constructor_class -#define xsp_constructor_class(c) (CLASS) - -%s#undef xsp_constructor_class -#define xsp_constructor_class(c) (c) - -EOT -} - -=head2 ret_type - -Unlike the C<ret_type> method of the L<ExtUtils::XSpp::Node::Method> class, -C<ret_type> will return the type "pointer to object of this class" -as return type of the constructor. - -=cut - -sub ret_type { - my $this = shift; - - ExtUtils::XSpp::Node::Type->new( base => $this->class->cpp_name, - pointer => 1 ); -} - -sub perl_function_name { - my $this = shift; - my( $pname, $cname, $pclass, $cclass ) = ( $this->perl_name, - $this->cpp_name, - $this->class->perl_name, - $this->class->cpp_name ); - - if( $pname ne $cname ) { - return $cclass . '::' . $pname; - } else { - return $cclass . '::' . 'new'; - } -} - -sub _call_code { return "new " . $_[0]->class->cpp_name . - '(' . $_[1] . ')'; } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Destructor.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Destructor.pm deleted file mode 100644 index 3eb4d6f2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Destructor.pm +++ /dev/null @@ -1,59 +0,0 @@ -package ExtUtils::XSpp::Node::Destructor; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Node::Method'; - -=head1 NAME - -ExtUtils::XSpp::Node::Destructor - Node representing a destructor method - -=head1 DESCRIPTION - -An L<ExtUtils::XSpp::Node::Method> subclass representing a -destructor such as: - - class FooBar { - ~FooBar(); // <-- this one - }; - -=head1 METHODS - -=head2 new - -Creates a new C<ExtUtils::XSpp::Node::Destructor>. - -Most of the functionality of this class is inherited. This -means that all named parameters of L<ExtUtils::XSpp::Node::Method> -and its base class are also valid for this class' destructor. - -Additionally, this class requires that no return type has -been specified as destructors do not have return types. - -=cut - -sub init { - my $this = shift; - $this->SUPER::init( @_ ); - - die "Can't specify return value in destructor" if $this->{RET_TYPE}; -} - -=head2 perl_function_name - -Returns the name of the class with C<::DESTROY> appended. - -=cut - -sub perl_function_name { - my $this = shift; - - if( $this->perl_name ne $this->cpp_name ) { - return $this->class->cpp_name . '::' . $this->perl_name; - } else { - return $this->class->cpp_name . '::' . 'DESTROY'; - } -} - -sub ret_type { undef } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Enum.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Enum.pm deleted file mode 100644 index 4e3a7824..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Enum.pm +++ /dev/null @@ -1,78 +0,0 @@ -package ExtUtils::XSpp::Node::Enum; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Node'; - -=head1 NAME - -ExtUtils::XSpp::Node::Enum - Node representing an enum declaration - -=head1 DESCRIPTION - -An L<ExtUtils::XSpp::Node> subclass representing an C<enum> declaration. -As an example - - enum Bool - { - FALSE = 0, - TRUE - }; - -will create an C<ExtUtils::XSpp::Node::Enum> object with C<name> -C<Bool> and two L<ExtUtils::XSpp::Node::EnumValue> values in the -C<arguments> array. - -Enumerations do not affect the generated code. - -=head1 METHODS - -=head2 new - - my $e = ExtUtils::XSpp::Node::Enum->new( name => 'Bool', - elements => [ ... ], - ); - -Creates a new C<ExtUtils::XSpp::Node::Enum>. - -C<name> gives the name of the enumeration, C<undef> for anonymous -enumerations. C<elements> should only contain -L<ExtUtils::XSpp::Node::EnumValue> or L<ExtUtils::XSpp::Node::Raw> -objects. - -=cut - -sub init { - my $this = shift; - my %args = @_; - - $this->{NAME} = $args{name}; - $this->{ELEMENTS} = $args{elements}; - $this->{CONDITION} = $args{condition}; -} - -sub print { - my( $this, $state ) = @_; - - # no standard way of emitting an enum - '' -} - -=head1 ACCESSORS - -=head2 name - -Returns the name of the enumeration, or C<undef> for anonymous -enumerations. - -=head2 elements - -An array reference containing mostly -L<ExtUtils::XSpp::Node::EnumValue> (it can contain other kinds of -nodes). - -=cut - -sub name { $_[0]->{NAME} } -sub elements { $_[0]->{ELEMENTS} } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/EnumValue.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/EnumValue.pm deleted file mode 100644 index 275a8510..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/EnumValue.pm +++ /dev/null @@ -1,72 +0,0 @@ -package ExtUtils::XSpp::Node::EnumValue; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Node'; - -=head1 NAME - -ExtUtils::XSpp::Node::EnumValue - Node representing an enum element - -=head1 DESCRIPTION - -An L<ExtUtils::XSpp::Node> subclass representing an C<enum> declaration. -As an example - - enum Bool - { - FALSE = 0, - TRUE - }; - -Will create two C<ExtUtils::XSpp::Node::EnumValue> objects, the first -with C<name> C<FALSE> and C<value> C<0>, the second with C<name> -C<TRUE> and no value. - -Enumerations do not affect the generated code. - -=head1 METHODS - -=head2 new - - my $e = ExtUtils::XSpp::Node::EnumValue->new( name => 'FALSE', - value => '0x1 | 0x4', - ); - -Creates a new C<ExtUtils::XSpp::Node::EnumValue>. - -C<value> is optional. - -=cut - -sub init { - my $this = shift; - my %args = @_; - - $this->{NAME} = $args{name}; - $this->{VALUE} = $args{value}; - $this->{CONDITION} = $args{condition}; -} - -sub print { - my( $this, $state ) = @_; - - # no standard way of emitting an enum value - '' -} - -=head1 ACCESSORS - -=head2 name - -Returns the name of the enumeration element. - -=head2 value - -Returns the initializer of the enumeration element, or C<undef>. - -=cut - -sub name { $_[0]->{NAME} } -sub value { $_[0]->{VALUE} } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/File.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/File.pm deleted file mode 100644 index ca11bffc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/File.pm +++ /dev/null @@ -1,52 +0,0 @@ -package ExtUtils::XSpp::Node::File; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Node'; - -=head1 NAME - -ExtUtils::XSpp::Node::File - Directive that sets the name of the output file - -=head1 DESCRIPTION - -An L<ExtUtils::XSpp::Node> subclass representing a directive to change the -name of the output file: - - %file{file/to/write/to.xs} - -A special case is - - %file{-} - -which indicates that output should be written to STDOUT. - -=head1 METHODS - -=head2 new - -Creates a new C<ExtUtils::XSpp::Node::File>. - -Named parameters: C<file>, the path to the file -that should be written to (or '-'). - -=cut - -sub init { - my $this = shift; - my %args = @_; - - $this->{FILE} = $args{file}; -} - -=head1 ACCESSORS - -=head2 file - -Returns the path of the file to write to (or C<-> for STDOUT). - -=cut - -sub file { $_[0]->{FILE} } -sub print { return '' } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Function.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Function.pm deleted file mode 100644 index f23f3dfc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Function.pm +++ /dev/null @@ -1,620 +0,0 @@ -package ExtUtils::XSpp::Node::Function; -use strict; -use warnings; -use Carp (); -use base 'ExtUtils::XSpp::Node'; - -=head1 NAME - -ExtUtils::XSpp::Node::Function - Node representing a function - -=head1 DESCRIPTION - -An L<ExtUtils::XSpp::Node> subclass representing a single function declaration -such as - - int foo(); - -More importantly, L<ExtUtils::XSpp::Node::Method> inherits from this class, -so all in here equally applies to method nodes. - -=head1 METHODS - -=head2 new - -Creates a new C<ExtUtils::XSpp::Node::Function>. - -Named parameters: C<cpp_name> indicating the C++ name of the function, -C<perl_name> indicating the Perl name of the function (defaults to the -same as C<cpp_name>), C<arguments> can be a reference to an -array of C<ExtUtils::XSpp::Node::Argument> objects and finally -C<ret_type> indicates the (C++) return type of the function. - -Additionally, there are several optional decorators for a function -declaration (see L<ExtUtils::XSpp> for a list). These can be -passed to the constructor as C<code>, C<cleanup>, C<postcall>, -and C<catch>. C<catch> is special in that it must be a reference -to an array of class names. - -=cut - -sub init { - my $this = shift; - my %args = @_; - - $this->{CPP_NAME} = $args{cpp_name}; - $this->{PERL_NAME} = $args{perl_name} || $args{cpp_name}; - $this->{ARGUMENTS} = $args{arguments} || []; - $this->{RET_TYPE} = $args{ret_type}; - $this->{CODE} = $args{code}; - $this->{CALL_CODE} = $args{call_code}; - $this->{CLEANUP} = $args{cleanup}; - $this->{POSTCALL} = $args{postcall}; - $this->{CLASS} = $args{class}; - $this->{CATCH} = $args{catch}; - $this->{CONDITION} = $args{condition}; - $this->{ALIAS} = $args{alias}; - $this->{TAGS} = $args{tags}; - $this->{EMIT_CONDITION} = $args{emit_condition}; - - my $index = 0; - foreach my $arg ( @{$this->{ARGUMENTS}} ) { - $arg->{FUNCTION} = $this; - $arg->{INDEX} = $index; - ++$index; - } - - if (@{$this->catch} > 1 - and grep {$_ eq 'nothing'} @{$this->{CATCH}}) - { - Carp::croak( ref($this) . " '" . $this->{CPP_NAME} - . "' is supposed to catch no exceptions, yet" - . " there are exception handlers (" - . join(", ", @{$this->{CATCH}}) . ")" ); - } - return $this; -} - -=head2 resolve_typemaps - -Fetches the L<ExtUtils::XSpp::Typemap> object for -the return type and the arguments from the typemap registry -and stores a reference to those objects. - -=cut - -sub resolve_typemaps { - my $this = shift; - my $index = 0; - - if( $this->ret_type ) { - $this->{TYPEMAPS}{RET_TYPE} ||= - ExtUtils::XSpp::Typemap::get_typemap_for_type( $this->ret_type ); - } - foreach my $a ( @{$this->arguments} ) { - $this->{TYPEMAPS}{ARGUMENTS}[$index++] ||= - ExtUtils::XSpp::Typemap::get_typemap_for_type( $a->type ); - } -} - - -=head2 resolve_exceptions - -Fetches the L<ExtUtils::XSpp::Exception> object for -the C<%catch> directives associated with this function. - -=cut - -sub resolve_exceptions { - my $this = shift; - - my @catch = @{$this->catch}; - - my @exceptions; - - # If this method is not hard-wired to catch nothing... - if (not grep {$_ eq 'nothing'} @catch) { - my %seen; - foreach my $catch (@catch) { - next if $seen{$catch}++; - push @exceptions, - ExtUtils::XSpp::Exception->get_exception_for_name($catch); - } - - # If nothing else, catch std::exceptions nicely - if (not @exceptions) { - my $typenode = ExtUtils::XSpp::Node::Type->new(base => 'std::exception'); - push @exceptions, - ExtUtils::XSpp::Exception::stdmessage->new( name => 'default', - type => $typenode ); - } - } - - # Always catch the rest with an unspecific error message. - # If the method is hard-wired to catch nothing, we lie to the user - # for his own safety! (FIXME: debate this) - push @exceptions, - ExtUtils::XSpp::Exception::unknown->new( name => '', type => '' ); - - $this->{EXCEPTIONS} = \@exceptions; -} - -sub disable_exceptions { - my $this = shift; - - $this->{EXCEPTIONS} = []; -} - -=head2 add_exception_handlers - -Adds a list of exception names to the list of exception handlers. -This is mainly called by a class' C<add_methods> method. -If the function is hard-wired to have no exception handlers, -any extra handlers from the class are ignored. - -=cut - - -sub add_exception_handlers { - my $this = shift; - - # ignore class %catch'es if overridden with "nothing" in the method - if (@{$this->catch} == 1 and $this->{CATCH}[0] eq 'nothing') { - return(); - } - - # ignore class %catch{nothing} if overridden in the method - if (@_ == 1 and $_[0] eq 'nothing' and @{$this->catch}) { - return(); - } - - $this->{CATCH} ||= []; - push @{$this->{CATCH}}, @_; - - return(); -} - -# Depending on argument style, this produces either: (style=kr) -# -# return_type -# class_name::function_name( args = def, ... ) -# type arg -# type arg -# PREINIT: -# aux vars -# [ALIAS: -# ID = INTEGER...] -# [PP]CODE: -# RETVAL = new Foo( THIS->method( arg1, *arg2 ) ); -# POSTCALL: -# /* anything */ -# OUTPUT: -# RETVAL -# CLEANUP: -# /* anything */ -# -# Or: (style=ansi) -# -# return_type -# class_name::function_name( type arg1 = def, type arg2 = def, ... ) -# PREINIT: -# (rest as above) - -sub print { - my $this = shift; - my $state = shift; - - my $out = ''; - my $fname = $this->perl_function_name; - my $args = $this->arguments; - my $ret_type = $this->ret_type; - my $ret_typemap = $this->{TYPEMAPS}{RET_TYPE}; - my $aliases = $this->{ALIAS} || {}; - - my $has_aliases = scalar(keys %$aliases); - - $out .= '#if ' . $this->emit_condition . "\n" if $this->emit_condition; - - my( $init, $arg_list, $call_arg_list, $code, $output, $cleanup, - $postcall, $precall, $alias ) = ( ('') x 9 ); - - # compute the precall code, XS argument list and C++ argument list using - # the typemap information - if( $args && @$args ) { - my $has_self = $this->is_method ? 1 : 0; - my( @arg_list, @call_arg_list ); - foreach my $i ( 0 .. $#$args ) { - my $arg = ${$args}[$i]; - my $t = $this->{TYPEMAPS}{ARGUMENTS}[$i]; - my $pc = $t->precall_code( sprintf( 'ST(%d)', $i + $has_self ), - $arg->name ); - - push @arg_list, $t->cpp_type . ' ' . $arg->name . - ( $arg->has_default ? ' = ' . $arg->default : '' ); - - my $call_code = $t->call_parameter_code( $arg->name ); - push @call_arg_list, defined( $call_code ) ? $call_code : $arg->name; - $precall .= $pc . ";\n" if $pc - } - - $arg_list = ' ' . join( ', ', @arg_list ) . ' '; - $call_arg_list = ' ' . join( ', ', @call_arg_list ) . ' '; - } - - # If there's %alias{foo = 123} definitions, generate ALIAS section - if ($has_aliases) { - # order by ordinal for consistent hash-order-independent output - my @alias_list = map " $_ = $aliases->{$_}\n", - sort {$aliases->{$a} <=> $aliases->{$b}} - keys %$aliases; - $alias = " ALIAS:\n" . join("", @alias_list); - } - - my $retstr = $ret_typemap ? $ret_typemap->cpp_type : 'void'; - - # special case: constructors with name different from 'new' - # need to be declared 'static' in XS - if( $this->isa( 'ExtUtils::XSpp::Node::Constructor' ) && - $this->perl_name ne $this->cpp_name ) { - $retstr = "static $retstr"; - } - - my $has_ret = $ret_typemap && !$ret_typemap->type->is_void; - - my $ppcode = $has_ret && $ret_typemap->output_list( '' ) ? 1 : 0; - my $code_type = $ppcode ? "PPCODE" : "CODE"; - my $ccode = $this->_call_code( $call_arg_list ); - if ($this->{CALL_CODE}) { - $ccode = join( "\n", @{$this->{CALL_CODE}} ); - } elsif ($this->isa('ExtUtils::XSpp::Node::Destructor')) { - $ccode = 'delete THIS'; - $has_ret = 0; - } elsif( $has_ret && defined $ret_typemap->call_function_code( '', '' ) ) { - $ccode = $ret_typemap->call_function_code( $ccode, 'RETVAL' ); - } elsif( $has_ret ) { - if ($has_aliases) { - $ccode = $this->_generate_alias_conditionals($call_arg_list, 1); # 1 == use RETVAL - } else { - $ccode = "RETVAL = $ccode"; - } - } elsif( $has_aliases ) { # aliases but no RETVAL - $ccode = $this->_generate_alias_conditionals($call_arg_list, 0); # 0 == no RETVAL - } - - my @catchers = @{$this->{EXCEPTIONS}}; - $code .= " $code_type:\n"; - $code .= " try {\n" if @catchers; - if ($precall) { - $code .= ' ' . $precall; - } - $code .= (@catchers ? ' ' : '') . ' ' . $ccode . ";\n"; - if( $has_ret && defined $ret_typemap->output_code( '', '' ) ) { - my $retcode = $ret_typemap->output_code( 'ST(0)', 'RETVAL' ); - $code .= ' ' . $retcode . ";\n"; - } - if( $has_ret && defined $ret_typemap->output_list( '' ) ) { - my $retcode = $ret_typemap->output_list( 'RETVAL' ); - $code .= ' ' . $retcode . ";\n"; - } - $code .= " }\n" if @catchers; - foreach my $exception_handler (@catchers) { - my $handler_code = $exception_handler->handler_code; - $code .= $handler_code; - } - - $output = " OUTPUT: RETVAL\n" if $has_ret; - - if( $has_ret && defined $ret_typemap->cleanup_code( '', '' ) ) { - $cleanup .= " CLEANUP:\n"; - my $cleanupcode = $ret_typemap->cleanup_code( 'ST(0)', 'RETVAL' ); - $cleanup .= ' ' . $cleanupcode . ";\n"; - } - - if( $this->code ) { - $code = " $code_type:\n " . join( "\n", @{$this->code} ) . "\n"; - $output = " OUTPUT: RETVAL\n" if $code =~ m/\bRETVAL\b/; - } - if( $this->postcall ) { - $postcall = " POSTCALL:\n " . join( "\n", @{$this->postcall} ) . "\n"; - $output ||= " OUTPUT: RETVAL\n" if $has_ret; - } - if( $this->cleanup ) { - $cleanup ||= " CLEANUP:\n"; - my $clcode = join( "\n", @{$this->cleanup} ); - $cleanup .= " $clcode\n"; - } - if( $ppcode ) { - $output = ''; - } - - if( !$this->is_method && $fname =~ /^(.*)::(\w+)$/ ) { - my $pcname = $1; - $fname = $2; - my $cur_module = $state->{current_module}->to_string; - $out .= <<EOT; -$cur_module PACKAGE=$pcname - -EOT - } - - my $head = "$retstr\n" - . "$fname($arg_list)\n"; - my $body = $alias . $init . $code . $postcall . $output . $cleanup; - - # cleanup potential multiple newlines because they break XSUBs - $body =~ s/^\s*\n//mg; - $body .= "\n"; - - $this->_munge_code(\$body) if $this->has_argument_with_length; - - $out .= $head . $body; - $out .= '#endif // ' . $this->emit_condition . "\n" if $this->emit_condition; - - return $out; -} - -# This replaces the use of "length(varname)" with -# the proper name of the XS variable that is auto-generated in -# case of the XS length() feature. The Argument's take care of -# this and do nothing if they're not of the "length" type. -# Any additional checking "$this->_munge_code(\$code) if $using_length" -# is just an optimization! -sub _munge_code { - my $this = shift; - my $code = shift; - - foreach my $arg (@{$this->{ARGUMENTS}}) { - $$code = $arg->fix_name_in_code($$code); - } -} - -=head2 print_declaration - -Returns a string with a C++ method declaration for the node. - -=cut - -sub print_declaration { - my( $this ) = @_; - - return $this->ret_type->print . ' ' . $this->cpp_name . '( ' . - join( ', ', map $_->print, @{$this->arguments} ) . ')' . - ( $this->const ? ' const' : '' ); -} - -=head2 perl_function_name - -Returns the name of the Perl function to generate. - -=cut - -sub perl_function_name { $_[0]->perl_name } - -=head2 is_method - -Returns whether the object at hand is a method. Hard-wired -to be false for C<ExtUtils::XSpp::Node::Function> object, -but overridden in the L<ExtUtils::XSpp::Node::Method> sub-class. - -=cut - -sub is_method { 0 } - -=head2 has_argument_with_length - -Returns true if the function has any argument that uses the XS length -feature. - -=cut - -sub has_argument_with_length { - my $this = shift; - foreach my $arg (@{$this->{ARGUMENTS}}) { - return 1 if $arg->uses_length; - } - return(); -} - - -=begin documentation - -ExtUtils::XSpp::Function::_call_code( argument_string ) - -Return something like "foo( $argument_string )". - -=end documentation - -=cut - -sub _call_code { return $_[0]->cpp_name . '(' . $_[1] . ')'; } - -=begin documentation - -ExtUtils::XSpp::Function::_call_code_aliased( function_alias_name, argument_string ) - -Return something like "$function_alias_name( $argument_string )". - -=end documentation - -=cut - -sub _call_code_aliased { return $_[1] . '(' . $_[2] . ')'; } - -=begin documentation - -ExtUtils::XSpp::Function::_generate_alias_conditionals( argument_string, use_retval_bool ) - -Generates if()else if()else block for XS function name aliasing (cf. the XS manual and the ix -variable). If use_retval_bool is true, each included function call will contain an -assignment to RETVAL. - -Returns the generated code. - -=end documentation - -=cut -sub _generate_alias_conditionals { - my ($this, $call_arg_list, $use_retval) = @_; - my $aliases = $this->{ALIAS}; - - my $retval_code = $use_retval ? "RETVAL = " : ""; - my $buf = "if (ix == 0) {\n $retval_code" - . $this->_call_code($call_arg_list) - . ";\n}\n"; - # order by ordinal for consistent hash-order-independent output - foreach my $alias (sort {$aliases->{$a} <=> $aliases->{$b}} keys %$aliases) - { - $buf .= "else if (ix == $aliases->{$alias}) {\n " - . $retval_code . $this->_call_code_aliased($alias, $call_arg_list) - . ";\n}\n"; - } - $buf .= "else\n croak(\"Panic: Invalid invocation of function alias number %i!\", (int)ix))"; - - # indent - $buf =~ s/^/ /gm; - $buf =~ s/^\s+//; # first line will get special treatment... - - return $buf; -} - - -=head1 ACCESSORS - -=head2 cpp_name - -Returns the C++ name of the function. - -=head2 perl_name - -Returns the Perl name of the function (defaults to same as C++). - -=head2 set_perl_name - -Sets the Perl name of the function. - -=head2 arguments - -Returns the internal array reference of L<ExtUtils::XSpp::Node::Argument> -objects that represent the function arguments. - -=head2 ret_type - -Returns the C++ return type. - -=head2 code - -Returns the C<%code> decorator if any. - -=head2 set_code - -Sets the implementation for the method call (equivalent to using -C<%code>); takes the code as an array reference containing the lines. - -=head2 cleanup - -Returns the C<%cleanup> decorator if any. - -=head2 postcall - -Returns the C<%postcall> decorator if any. - -=head2 catch - -Returns the set of exception types that were associated -with the function via C<%catch>. (array reference) - -=head2 aliases - -Returns a hashref of C<name =E<gt> position> -function name aliases (see %alias and L<perlxs> ALIAS keyword). -Does not include the main function name. - -=cut - -sub cpp_name { $_[0]->{CPP_NAME} } -sub set_cpp_name { $_[0]->{CPP_NAME} = $_[1] } -sub perl_name { $_[0]->{PERL_NAME} } -sub set_perl_name { $_[0]->{PERL_NAME} = $_[1] } -sub arguments { $_[0]->{ARGUMENTS} } -sub ret_type { $_[0]->{RET_TYPE} } -sub code { $_[0]->{CODE} } -sub set_code { $_[0]->{CODE} = $_[1] } -sub cleanup { $_[0]->{CLEANUP} } -sub postcall { $_[0]->{POSTCALL} } -sub catch { $_[0]->{CATCH} ? $_[0]->{CATCH} : [] } -sub aliases { $_[0]->{ALIAS} ? $_[0]->{ALIAS} : {} } -sub tags { $_[0]->{TAGS} } - -=head2 set_static - -Sets the C<static>-ness attribute of the function. -Can be either undef (i.e. not static), C<"package_static">, -or C<"class_static">. - -=head2 package_static - -Returns whether the function is package static. A package static -function can be invoked as: - - My::Package::Function( ... ); - -=head2 class_static - -Returns whether the function is class static. A class static function -can be invoked as: - - My::Package->Function( ... ); - -=cut - -sub set_static { $_[0]->{STATIC} = $_[1] } -sub package_static { ( $_[0]->{STATIC} || '' ) eq 'package_static' } -sub class_static { ( $_[0]->{STATIC} || '' ) eq 'class_static' } - -=head2 ret_typemap - -Returns the typemap for the return value of the function. - -=head2 set_ret_typemap( typemap ) - -Sets the typemap for the return value of the function. - -=head2 arg_typemap( index ) - -Returns the typemap for one function arguments. - -=head2 set_arg_typemap( index, typemap ) - -Sets the typemap for one function argument. - -=cut - -sub ret_typemap { - my ($this) = @_; - - die "Typemap not available yet" unless $this->{TYPEMAPS}{RET_TYPE}; - return $this->{TYPEMAPS}{RET_TYPE}; -} - -sub set_ret_typemap { - my ($this, $typemap) = @_; - - $this->{TYPEMAPS}{RET_TYPE} = $typemap; -} - -sub arg_typemap { - my ($this, $index) = @_; - - die "Invalid index" unless $index < @{$this->{ARGUMENTS}}; - die "Typemap not available yet" unless $this->{TYPEMAPS}{ARGUMENTS}; - return $this->{TYPEMAPS}{ARGUMENTS}[$index]; -} - -sub set_arg_typemap { - my ($this, $index, $typemap) = @_; - - die "Invalid index" unless $index < @{$this->{ARGUMENTS}}; - $this->{TYPEMAPS}{ARGUMENTS}[$index] = $typemap; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Member.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Member.pm deleted file mode 100644 index d013d7bc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Member.pm +++ /dev/null @@ -1,234 +0,0 @@ -package ExtUtils::XSpp::Node::Member; -use strict; -use warnings; -use Carp (); -use base 'ExtUtils::XSpp::Node'; - -=head1 NAME - -ExtUtils::XSpp::Node::Member - Node representing a class member variable - -=head1 DESCRIPTION - -An L<ExtUtils::XSpp::Node> sub-class representing a single member -variable in a class such as - - class FooBar { - int foo; // <-- this one - } - -Member declarations do not produce any XS code unless they are -decorated by either C<%get> or C<%set>. - -=head1 METHODS - -=head2 new - -Creates a new C<ExtUtils::XSpp::Node::Member>. - -Named parameters: C<cpp_name> indicating the C++ name of the member, -C<perl_name> indicating the Perl name of the member (defaults to the -same as C<cpp_name>), C<type> indicates the (C++) type of the member -and finally C<class>, which is an L<ExtUtils::XSpp::Node::Class>. - -=cut - -sub init { - my $this = shift; - my %args = @_; - - $this->{CPP_NAME} = $args{cpp_name}; - $this->{PERL_NAME} = $args{perl_name} || $args{cpp_name}; - $this->{TYPE} = $args{type}; - $this->{CLASS} = $args{class}; - $this->{CONDITION} = $args{condition}; - $this->{TAGS} = $args{tags}; - $this->{EMIT_CONDITION} = $args{emit_condition}; -} - -sub print { - my( $this, $state ) = @_; - my $str = ''; - - $str .= $this->_getter->print( $state ) if $this->_getter; - $str .= $this->_setter->print( $state ) if $this->_setter; - - return $str; -} - -sub _getter { - my( $this ) = @_; - - die 'Tried to create getter before adding member to a class' - unless $this->class; - return $this->{_getter} if $this->{_getter}; - - # TODO use plugin infrastructure - my $getter; - for my $tag ( @{$this->tags} ) { - if( $tag->{any} eq 'get' ) { - $getter = $tag->{positional}[0] || ''; - last; - } - } - return unless defined $getter; - - my $f = $this->{_getter} = - ExtUtils::XSpp::Node::Method->new - ( class => $this->class, - cpp_name => $this->_getter_name( $getter ), - ret_type => $this->type, - call_code => $this->_getter_code, - condition => $this->condition, - emit_condition => $this->emit_condition, - const => 1, - ); - $f->set_ret_typemap( $this->typemap ); - $f->resolve_typemaps; - $f->disable_exceptions; - - return $this->{_getter}; -} - -sub _setter { - my( $this ) = @_; - - die 'Tried to create getter before adding member to a class' - unless $this->class; - return $this->{_setter} if $this->{_setter}; - - # TODO use plugin infrastructure - my $setter; - for my $tag ( @{$this->tags} ) { - if( $tag->{any} eq 'set' ) { - $setter = $tag->{positional}[0] || ''; - last; - } - } - return unless defined $setter; - - my $f = $this->{_setter} = - ExtUtils::XSpp::Node::Method->new - ( class => $this->class, - cpp_name => $this->_setter_name( $setter ), - arguments => [ ExtUtils::XSpp::Node::Argument->new - ( type => $this->type, - name => 'value' - ) - ], - ret_type => ExtUtils::XSpp::Node::Type->new( base => 'void' ), - call_code => $this->_setter_code, - condition => $this->condition, - emit_condition => $this->emit_condition, - ); - $f->set_arg_typemap( 0, $this->typemap ); - $f->resolve_typemaps; - $f->disable_exceptions; - - return $this->{_setter}; -} - -sub _getter_code { - my( $this ) = @_; - - return [ sprintf 'RETVAL = THIS->%s', $this->cpp_name ]; -} - -sub _getter_name { - my( $this, $name ) = @_; - - return $name if $name; - return $this->class->_getter_name( $this->perl_name ); -} - -sub _setter_code { - my( $this ) = @_; - - return [ sprintf 'THIS->%s = value', $this->cpp_name ]; -} - -sub _setter_name { - my( $this, $name ) = @_; - - return $name if $name; - return $this->class->_setter_name( $this->perl_name ); -} - -=head2 resolve_typemaps - -Fetches the L<ExtUtils::XSpp::Typemap> object for the type -from the typemap registry and stores a reference to the object. - -=cut - -sub resolve_typemaps { - my $this = shift; - - $this->{TYPEMAPS}{TYPE} ||= - ExtUtils::XSpp::Typemap::get_typemap_for_type( $this->type ); -} - -=head1 ACCESSORS - -=head2 cpp_name - -Returns the C++ name of the member. - -=head2 perl_name - -Returns the Perl name of the member (defaults to same as C++). - -=head2 set_perl_name - -Sets the Perl name of the member. - -=head2 type - -Returns the C++ type for the member. - -=head2 class - -Returns the class (L<ExtUtils::XSpp::Node::Class>) that the -member belongs to. - -=head2 access - -Returns C<'public'>, C<'protected'> or C<'private'> depending on -member access declaration. - -=cut - -sub cpp_name { $_[0]->{CPP_NAME} } -sub set_cpp_name { $_[0]->{CPP_NAME} = $_[1] } -sub perl_name { $_[0]->{PERL_NAME} } -sub set_perl_name { $_[0]->{PERL_NAME} = $_[1] } -sub type { $_[0]->{TYPE} } -sub tags { $_[0]->{TAGS} } -sub class { $_[0]->{CLASS} } -sub access { $_[0]->{ACCESS} } -sub set_access { $_[0]->{ACCESS} = $_[1] } - -=head2 typemap - -Returns the typemap for member type. - -=head2 set_typemap( typemap ) - -Sets the typemap for member type. - -=cut - -sub typemap { - my ($this) = @_; - - die "Typemap not available yet" unless $this->{TYPEMAPS}{TYPE}; - return $this->{TYPEMAPS}{TYPE}; -} - -sub set_typemap { - my ($this, $typemap) = @_; - - $this->{TYPEMAPS}{TYPE} = $typemap; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Method.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Method.pm deleted file mode 100644 index f374e01c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Method.pm +++ /dev/null @@ -1,125 +0,0 @@ -package ExtUtils::XSpp::Node::Method; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Node::Function'; - -=head1 NAME - -ExtUtils::XSpp::Node::Method - Node representing a method - -=head1 DESCRIPTION - -An L<ExtUtils::XSpp::Node::Function> sub-class representing a single method -declaration in a class such as - - class FooBar { - int foo(double someArgument); // <-- this one - } - - -=head1 METHODS - -=head2 new - -Creates a new C<ExtUtils::XSpp::Node::Method>. - -Most of the functionality of this class is inherited. This -means that all named parameters of L<ExtUtils::XSpp::Node::Function> -are also valid for this class. - -Additional named parameters accepted by the constructor: -C<class>, which can be an L<ExtUtils::XSpp::Node::Class> -object, C<const> and C<virtual> that are true if the method has -been declared C<const> or C<virtual>. - -=cut - -sub init { - my $this = shift; - my %args = @_; - - $this->SUPER::init( %args ); - $this->{CLASS} = $args{class}; - $this->{CONST} = $args{const}; - $this->{VIRTUAL} = $args{virtual}; -} - -=head2 perl_function_name - -Returns the name of the Perl function (method) that this -method represents. It is constructed from the method's -class's name and the C<perl_name> attribute. - -=cut - -sub perl_function_name { - my( $self ) = @_; - - if( $self->package_static ) { - return $self->perl_name; - } else { - return $self->class->cpp_name . '::' . $self->perl_name; - } -} - -sub _call_code { - my( $self, $arg_string ) = @_; - - return $self->_call_code_aliased($self->cpp_name, $arg_string); -} - -sub _call_code_aliased { - my( $self, $alias_name, $arg_string ) = @_; - - if( $self->package_static ) { - return $self->class->cpp_name . '::' . - $alias_name . '(' . $arg_string . ')'; - } else { - return "THIS->" . - $alias_name . '(' . $arg_string . ')'; - } -} - -=head2 is_method - -Returns true, since all objects of this class are methods. - -=cut - -sub is_method { 1 } - -=head2 ACCESSORS - -=head2 class - -Returns the class (L<ExtUtils::XSpp::Node::Class>) that the -method belongs to. - -=head2 virtual - -Returns whether the method was declared virtual. - -=head2 set_virtual - -Set whether the method is to be considered virtual. - -=head2 const - -Returns whether the method was declared const. - -=head2 access - -Returns C<'public'>, C<'protected'> or C<'private'> depending on -method access declaration. By default, only public methods are -generated. - -=cut - -sub class { $_[0]->{CLASS} } -sub virtual { $_[0]->{VIRTUAL} } -sub set_virtual { $_[0]->{VIRTUAL} = $_[1] } -sub const { $_[0]->{CONST} } -sub access { $_[0]->{ACCESS} } -sub set_access { $_[0]->{ACCESS} = $_[1] } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Module.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Module.pm deleted file mode 100644 index ebdd8d28..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Module.pm +++ /dev/null @@ -1,59 +0,0 @@ -package ExtUtils::XSpp::Node::Module; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Node'; - -=head1 NAME - -ExtUtils::XSpp::Node::Module - Node representing an XS++/XS MODULE declaration - -=head1 DESCRIPTION - -An L<ExtUtils::XSpp::Node> subclass representing a module declaration. -For example, this XS++ - - %module{Some::Perl::Namespace} - -would turn into this XS: - -MODULE=Some::Perl::Namespace - -See also: L<ExtUtils::XSpp::Node::Package>. - -In a nutshell, the module that your XS++/XS code belongs to is -the main Perl package of your wrapper. A single module can (and usually does) -have several packages (respectively C++ classes). - -=head1 METHODS - -=head2 new - -Creates a new C<ExtUtils::XSpp::Node::Module>. - -Named parameters: C<module> indicating the name -of the module. - -=cut - -sub init { - my $this = shift; - my %args = @_; - - $this->{MODULE} = $args{module}; -} - -sub to_string { 'MODULE=' . $_[0]->module } - -sub print { return $_[0]->to_string . "\n" } - -=head1 ACCESSORS - -=head2 module - -Returns the name of the module. - -=cut - -sub module { $_[0]->{MODULE} } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Package.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Package.pm deleted file mode 100644 index 92db6e96..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Package.pm +++ /dev/null @@ -1,86 +0,0 @@ -package ExtUtils::XSpp::Node::Package; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Node'; - -=head1 NAME - -ExtUtils::XSpp::Node::Package - Node representing a Perl package - -=head1 DESCRIPTION - -An L<ExtUtils::XSpp::Node> subclass representing a Perl package and -thus acting as a container for methods (cf. sub-class -L<ExtUtils::XSpp::Node::Class>) or functions. - -A literal C<ExtUtils::XSpp::Node::Package> would, for example, -be created from: - - %package{Some::Perl::Namespace} - -This would be compiled to a new XS line a la - -MODULE=$WhateverCurrentModule PACKAGE=Some::Perl::Namespace - -=head1 METHODS - -=head2 new - -Creates a new C<ExtUtils::XSpp::Node::Package>. - -Named parameters: C<cpp_name> indicating the C++ class name -(if any), and C<perl_name> indicating the name of the Perl -package. If C<perl_name> is not specified but C<cpp_name> is, -C<perl_name> defaults to C<cpp_name>. - -=cut - -sub init { - my $this = shift; - my %args = @_; - - $this->{CPP_NAME} = $args{cpp_name}; - $this->{PERL_NAME} = $args{perl_name} || $args{cpp_name}; -} - -=head1 ACCESSORS - -=head2 cpp_name - -Returns the C++ name for the package (will be used for namespaces). - -=head2 perl_name - -Returns the Perl name for the package. - -=head2 set_perl_name - -Setter for the Perl package name. - -=cut - -sub cpp_name { $_[0]->{CPP_NAME} } -sub perl_name { $_[0]->{PERL_NAME} } -sub set_perl_name { $_[0]->{PERL_NAME} = $_[1] } - -sub print { - my $this = shift; - my $state = shift; - my $out = ''; - my $pcname = $this->perl_name; - - if( !defined $state->{current_module} ) { - die "No current module: remember to add a %module{} directive"; - } - my $cur_module = $state->{current_module}->to_string; - - $out .= <<EOT; - -$cur_module PACKAGE=$pcname - -EOT - - return $out; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/PercAny.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/PercAny.pm deleted file mode 100644 index 08b1ab16..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/PercAny.pm +++ /dev/null @@ -1,24 +0,0 @@ -package ExtUtils::XSpp::Node::PercAny; - -use strict; -use base 'ExtUtils::XSpp::Node'; - -=head1 NAME - -ExtUtils::XSpp::Node::PercAny - contains information about %Foo tags handled by plugins - -=head1 DESCRIPTION - -Used internally during parsing. - -=cut - -sub init { - my( $this, %args ) = @_; - - $this->{NAME} = $args{any}; - $this->{NAMED_ARGUMENTS} = $args{named}; - $this->{POSITIONAL_ARGUMENTS} = $args{positional}; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Preprocessor.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Preprocessor.pm deleted file mode 100644 index 86d3e44e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Preprocessor.pm +++ /dev/null @@ -1,21 +0,0 @@ -package ExtUtils::XSpp::Node::Preprocessor; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Node::Raw'; - -sub init { - my $this = shift; - my %args = @_; - - $this->SUPER::init( %args ); - $this->{SYMBOL} = $args{symbol}; -} - -sub print { - $_[0]->rows->[0] . "\n" . - ( $_[0]->symbol ? '#define ' . $_[0]->symbol . "\n\n" : "\n" ) -} - -sub symbol { $_[0]->{SYMBOL} } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Raw.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Raw.pm deleted file mode 100644 index aeb9cfe5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Raw.pm +++ /dev/null @@ -1,58 +0,0 @@ -package ExtUtils::XSpp::Node::Raw; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Node'; - -=head1 NAME - -ExtUtils::XSpp::Node::Raw - Node for data that should be included in XS verbatim - -=head1 DESCRIPTION - -An L<ExtUtils::XSpp::Node> subclass representing code that should be included -in the output XS code verbatim. - -=head1 METHODS - -=head2 new - -Creates a new C<ExtUtils::XSpp::Node::Raw>. - -Named parameters: C<rows> should be a reference to -an array of source code lines. A trailing newline -is automatically appended. - -=cut - -sub init { - my $this = shift; - my %args = @_; - - $this->{ROWS} = $args{rows}; - $this->{EMIT_CONDITION} = $args{emit_condition}; - push @{$this->{ROWS}}, "\n"; -} - -=head1 ACCESSORS - -=head2 rows - -Returns an array reference holding the rows to be output in the final file. - -=cut - -sub rows { $_[0]->{ROWS} } - -sub print { - my $this = shift; - my $state = shift; - my $out = ''; - - $out .= '#if ' . $this->emit_condition . "\n" if $this->emit_condition; - $out .= join( "\n", @{$this->rows} ) . "\n"; - $out .= '#endif // ' . $this->emit_condition . "\n" if $this->emit_condition; - - return $out; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Type.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Type.pm deleted file mode 100644 index b77f3040..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Node/Type.pm +++ /dev/null @@ -1,86 +0,0 @@ -package ExtUtils::XSpp::Node::Type; -use strict; -use warnings; -use base 'ExtUtils::XSpp::Node'; - -# TODO: Document... - -# normalized names for some integral C types -my %normalize = - ( 'unsigned' => 'unsigned int', - 'long int' => 'long', - 'unsigned long int' => 'unsigned long', - 'short int' => 'short', - 'unsigned short int' => 'unsigned short', - ); - -sub init { - my $this = shift; - my %args = @_; - - $this->{BASE} = $normalize{$args{base}} || $args{base}; - $this->{POINTER} = $args{pointer} ? 1 : 0; - $this->{REFERENCE} = $args{reference} ? 1 : 0; - $this->{CONST} = $args{const} ? 1 : 0; - $this->{TEMPLATE_ARGS} = $args{template_args} || []; -} - -sub clone { - my $this = shift; - my $clone = bless {%$this} => ref($this); - $clone->{TEMPLATE_ARGS} = [map $_->clone, @{$clone->template_args}]; - return $clone; -} - -sub is_const { $_[0]->{CONST} } -sub is_reference { $_[0]->{REFERENCE} } -sub is_pointer { $_[0]->{POINTER} } -sub base_type { $_[0]->{BASE} } -sub template_args { $_[0]->{TEMPLATE_ARGS} } - -sub equals { - my( $f, $s ) = @_; - - return 0 if @{$f->template_args} != @{$s->template_args}; - - for( my $i = 0; $i < @{$f->template_args}; ++$i ) { - return 0 - unless $f->template_args->[$i]->equals( $s->template_args->[$i] ); - } - - return $f->is_const == $s->is_const - && $f->is_reference == $s->is_reference - && $f->is_pointer == $s->is_pointer - && $f->base_type eq $s->base_type; -} - -sub is_void { return $_[0]->base_type eq 'void' && - !$_[0]->is_pointer && !$_[0]->is_reference } - -sub print_tmpl_args { - my $this = shift; - my $state = shift; - my $tmpl_args = ''; - if( @{$this->template_args} ) { - $tmpl_args = '< ' - . join( ', ', - map $_->print( $state ), @{$this->template_args} ) - . ' >'; - } - return $tmpl_args; -} - -sub print { - my $this = shift; - my $state = shift; - - return join( '', - ( $this->is_const ? 'const ' : '' ), - $this->base_type, - $this->print_tmpl_args, - ( $this->is_pointer ? ( '*' x $this->is_pointer ) : - $this->is_reference ? '&' : '' ) ); -} - - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Parser.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Parser.pm deleted file mode 100644 index 13c67557..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Parser.pm +++ /dev/null @@ -1,318 +0,0 @@ -package ExtUtils::XSpp::Parser; - -use strict; -use warnings; - -use IO::Handle; -use ExtUtils::XSpp::Grammar; - -=head1 NAME - -ExtUtils::XSpp::Parser - an XS++ parser - -=cut - -sub _my_open { - my $file = shift; - - open my $in, "<", $file - or die "Failed to open '$file' for reading: $!"; - - return $in; -} - -=head2 ExtUtils::XSpp::Parser::new( file => path ) - -Create a new XS++ parser. - -=cut - -sub new { - my $class = shift; - my $this = bless {}, $class; - my %args = @_; - - $this->{FILE} = $args{file}; - $this->{STRING} = $args{string}; - $this->{PARSER} = ExtUtils::XSpp::Grammar->new; - $this->{PLUGINS} = {}; - - return $this; -} - -=head2 ExtUtils::XSpp::Parser::parse - -Parse the file data; returns true on success, false otherwise, -on failure C<get_errors> will return the list of errors. - -=cut - -sub parse { - my $this = shift; - my $fh; - if( $this->{FILE} ) { - $fh = _my_open( $this->{FILE} ); - } else { - open $fh, '<', \$this->{STRING} - or die "Failed to create file handle from in-memory string"; - } - my $buf = ''; - - my $parser = $this->{PARSER}; - $parser->YYData->{LEX}{FH} = $fh; - $parser->YYData->{LEX}{BUFFER} = \$buf; - $parser->YYData->{LEX}{FILE} = $this->{FILE}; - local $parser->YYData->{PARSER} = $this; - - $this->{DATA} = $parser->YYParse( yylex => \&ExtUtils::XSpp::Grammar::yylex, - yyerror => \&ExtUtils::XSpp::Grammar::yyerror, - yydebug => 0x00, - ); -} - -sub parse_type { - my( $class, $type ) = @_; - my $this = $class->new( string => "%_type{$type}" ); - - $this->parse; - - return $this->{DATA}; -} - -sub include_file { - my $this = shift; - my( $file ) = @_; - my $buf = ''; - my $new_lex = { FH => _my_open( $file ), - FILE => $file, - BUFFER => \$buf, - NEXT => $this->{PARSER}->YYData->{LEX}, - }; - - $this->{PARSER}->YYData->{LEX} = $new_lex; -} - -=head2 ExtUtils::XSpp::Parser::get_data - -Returns a list containing the parsed data. Each item of the list is -a subclass of C<ExtUtils::XSpp::Node> - -=cut - -sub get_data { - my $this = shift; - die "'parse' must be called before calling 'get_data'" - unless exists $this->{DATA}; - - return $this->{DATA}; -} - -=head2 ExtUtils::XSpp::Parser::get_errors - -Returns the parsing errors as an array. - -=cut - -sub get_errors { - my $this = shift; - - return @{$this->{ERRORS}}; -} - -=head2 ExtUtils::XSpp::Parser::load_plugin - -Loads the specified plugin and calls its C<register_plugin> method. - -=cut - -sub load_plugin { - my( $this, $package ) = @_; - - if (eval "require ExtUtils::XSpp::Plugin::$package;") { - $package = "ExtUtils::XSpp::Plugin::$package"; - } - elsif (!eval "require $package;") { - die "Could not load XS++ plugin '$package' (neither via the namespace " - ."'ExtUtils::XSpp::Plugin::$package' nor via '$package'). Reason: $@"; - } - - # only call register_plugin once - if (!$this->{PLUGINS}{$package}) { - $package->register_plugin( $this ); - $this->{PLUGINS}{$package} = 1; - } - - # TODO handle %load_plugin parameters - - return 1; -} - -=head2 ExtUtils::XSpp::Parser::add_post_process_plugin - -Adds the specified plugin to be called after parsing is complete to -modify the parse tree before it is emitted. - -=cut - -sub add_post_process_plugin { - my( $this, %args ) = @_; - - _add_plugin( $this, 'POST_PROCESS', \%args, 'post_process' ); -} - -sub post_process_plugins { $_[0]->{PLUGINS}{POST_PROCESS} || [] } - -=head2 ExtUtils::XSpp::Parser::add_class_tag_plugin - -Adds the specified plugin to the list of plugins that can handle custom -%foo annotations for a class. - -=cut - -sub add_class_tag_plugin { - my( $this, %args ) = @_; - my $tag = $args{tag} || '_any_'; - - _add_plugin( $this, 'CLASS_TAG', \%args, 'handle_class_tag' ); -} - -sub handle_class_tag_plugins { - my( $this, $class, @args ) = @_; - - _handle_plugin( $this, $this->{PLUGINS}{CLASS_TAG}, 'class', - [ $class, @args ] ); -} - -=head2 ExtUtils::XSpp::Parser::add_function_tag_plugin - -Adds the specified plugin to the list of plugins that can handle custom -%foo annotations for a function. - -=cut - -sub add_function_tag_plugin { - my( $this, %args ) = @_; - my $tag = $args{tag} || '_any_'; - - _add_plugin( $this, 'FUNCTION_TAG', \%args, 'handle_function_tag' ); -} - -sub handle_function_tags_plugins { - my( $this, $function, $tags ) = @_; - - _handle_plugins( $this, $this->{PLUGINS}{FUNCTION_TAG}, 'function', - $tags, $function ) -} - -=head2 ExtUtils::XSpp::Parser::add_method_tag_plugin - -Adds the specified plugin to the list of plugins that can handle custom -%foo annotations for a function. - -=cut - -sub add_method_tag_plugin { - my( $this, %args ) = @_; - my $tag = $args{tag} || '_any_'; - - _add_plugin( $this, 'METHOD_TAG', \%args, 'handle_method_tag' ); -} - -sub handle_method_tags_plugins { - my( $this, $method, $tags ) = @_; - - _handle_plugins( $this, $this->{PLUGINS}{METHOD_TAG}, 'method', - $tags, $method ); -} - -=head2 ExtUtils::XSpp::Parser::add_argument_tag_plugin - -Adds the specified plugin to the list of plugins that can handle custom -%foo annotations for an arguments. - -=cut - -sub add_argument_tag_plugin { - my( $this, %args ) = @_; - my $tag = $args{tag} || '_any_'; - - _add_plugin( $this, 'ARGUMENT_TAG', \%args, 'handle_argument_tag' ); -} - -sub handle_argument_tags_plugins { - my( $this, $argument, $tags ) = @_; - - _handle_plugins( $this, $this->{PLUGINS}{ARGUMENT_TAG}, 'argument', - $tags, $argument ); -} - -=head2 ExtUtils::XSpp::Parser::add_toplevel_tag_plugin - -Adds the specified plugin to the list of plugins that can handle custom -%foo top level directives. - -=cut - -sub add_toplevel_tag_plugin { - my( $this, %args ) = @_; - my $tag = $args{tag} || '_any_'; - - _add_plugin( $this, 'TOPLEVEL_TAG', \%args, 'handle_toplevel_tag' ); -} - -sub handle_toplevel_tag_plugins { - my( $this, @args ) = @_; - - _handle_plugin( $this, $this->{PLUGINS}{TOPLEVEL_TAG}, 'top-level', - [ undef, @args ] ); -} - -sub _add_plugin { - my( $this, $kind, $args, $default_method ) = @_; - my $entry = { plugin => $args->{plugin}, - method => $args->{method} || $default_method, - }; - - if( $kind eq 'POST_PROCESS' ) { - push @{$this->{PLUGINS}{$kind}}, $entry; - } else { - push @{$this->{PLUGINS}{$kind}{$args->{tag} || '_any_'}}, $entry; - } -} - -sub _handle_plugins { - my( $this, $plugins, $plugin_type, $tags, $arg ) = @_; - my @nodes; - - foreach my $tag ( @{$tags || []} ) { - my $nodes = _handle_plugin( $this, $plugins, $plugin_type, - [ $arg, $tag->{any}, - named => $tag->{named}, - positional => $tag->{positional}, - any_named_arguments => $tag->{named}, - any_positional_arguments => $tag->{positional}, - ] ); - - push @nodes, @$nodes; - } - - return \@nodes; -} - -sub _handle_plugin { - my( $this, $plugins, $plugin_type, $plugin_args ) = @_; - my $tag = $plugin_args->[1]; - - foreach my $plugin ( @{$plugins->{$tag} || []}, @{$plugins->{_any_} || []} ) { - my $method = $plugin->{method}; - - my( $handled, @nodes ) = $plugin->{plugin}->$method( @$plugin_args ); - return \@nodes if $handled; - } - - die "Unhandled $plugin_type annotation '$tag'"; -} - -sub current_file { $_[0]->{PARSER}->YYData->{LEX}{FILE} } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Plugin.pod b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Plugin.pod deleted file mode 100644 index 8f8a79d1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Plugin.pod +++ /dev/null @@ -1,217 +0,0 @@ -=head1 NAME - -ExtUtils::XSpp::Plugin - XS++ plugin interface - -=head1 DESCRIPTION - -The XS++ plugin interface is B<EXPERIMENTAL> and subject to change. -If you still want to use it, read the source of this module. - -=begin internal - -=head1 SYNTAX - - %loadplugin{MyPlugin}; - - int foo(int y) %FuncTag{Foo}; - - class klass - { - %ClassTag{Klass}; - - void bar() %MethodTag{Bar}; - }; - -There are two ways a plugin can modify the code emitted by XS++: it -can run after the parsing completes and modify the expression tree -before it is emitted or it can handle custom annotation tags -associated with a class/function/method. - -A custom tag can have either positional or named parameters: - - # positional - %Foo{Id}{% multi - line - block %}{AnotherId}; - - # named - %Bar{ - %AParam{Id}; - %AnotherParam{% block %}; - %AThirdParam{AnotherId}; - }; - -No check is performed on parameter names/types/count. The parser only -gives an error if the annotation is not handled by any plugin. - -Positional parameters are passed to tag handlers as an array reference -in the C<positional> parameter; named handlers are passed as -an hash reference in the C<named> parameter. - -The value of a special block parameter is an array reference with an -element for each line in the special block. For consistency, the -value of an identifier parameter is a single-element array reference. - -=head1 XS++ METHODS - -These methods are defined in the parser object. - -=head2 add_post_process_plugin - - $parser->add_post_process_plugin( plugin => $instance, - method => 'post_process', - ); - -Registers a post-processing plugin to be called after the parsing -finishes. - -=head2 add_function_tag_plugin - - $parser->add_function_tag_plugin( plugin => $instance, - # optional - tag => $tag, - method => 'handle_function_tag', - ); - -Add a plugin to handle functions annotated with tags. - -=head2 add_class_tag_plugin - - $parser->add_class_tag_plugin( plugin => $instance, - # optional - tag => $tag, - method => 'handle_class_tag', - ); - -Add a plugin to handle classes annotated with tags. - -=head2 add_method_tag_plugin - - $parser->add_method_tag_plugin( plugin => $instance, - # optional - tag => $tag, - method => 'handle_method_tag', - ); - -Add a plugin to handle methods annotated with tags. - -=head2 add_toplevel_tag_plugin - - $parser->add_toplevel_tag_plugin( plugin => $instance, - # optional - tag => $tag, - method => 'handle_toplevel_tag', - ); - -Add a plugin to handle top-level directives. - -=head1 PLUGIN METHODS - -These methods can be defined by the plugin to modify the emitted code. - -=head2 register_plugin - - sub register_plugin { - my( $class, $parser ) = @_; - - # call the various add_*_plugin methods to register the plugin - } - -This method is called once for each loaded plugin, the first time the -parser sees the C<%loadplugin> directive. - -TODO add another method that is called once for each C<%loadplugin> -declaration, and allow passing parameters to the plugin. - -=head2 post_process - - sub post_process { - my( $self, $nodes ) = @_; - - # process and mutate the list of nodes - } - -=head2 handle_function_tag - - sub handle_function_tag { - my( $self, $function, $tag, %args ) = @_; - - # do something useful - } - -C<$function> is a C<Function> node. C<$tag> is the tag string, -without the C<%> prefix. C<%args> are the arguments passed to the -tag. - -If the method handles the tag, it must return C<1> to the caller. - -If the return value is a list, the first element is the -handled/not-handled flag, remaining elements are a list of nodes to -add to the node list returned by the parser. - -The method is called after parsing of the function completes. - -=head2 handle_class_tag - - sub handle_class_tag { - my( $self, $class, $tag, %args ) = @_; - - # do something useful - } - -C<$class> is a C<Class> node. C<$tag> is the tag string, without the -C<%> prefix. C<%args> are the arguments passed to the tag. The -handler for the class is called after the handlers for its methods. - -If the method handles the tag, it must return C<1> to the caller. - -If the return value is a list, the first element is the -handled/not-handled flag, remaining elements are a list of nodes to -add to the node list in the class. - -The method is called after parsing of the class completes, and after the -handlers for methods contained in the class. - -=head2 handle_method_tag - - sub handle_method_tag { - my( $self, $method, $tag, %args ) = @_; - - # do something useful - } - -C<$method> is a C<Method> node. C<$tag> is the tag string, without -the C<%> prefix. C<%args> are the arguments passed to the tag. - -If the method handles the tag, it must return C<1> to the caller. - -If the return value is a list, the first element is the -handled/not-handled flag, remaining elements are a list of nodes to -add to the node list in the containing class. - -The method is called after the method has been added to the class and -before the handler for class tags. - -=head2 handle_toplevel_tag - - sub handle_toplevel_tag { - my( $self, undef, $tag, %args ) = @_; - - # do something useful - } - -C<$tag> is the tag string, without the C<%> prefix. C<%args> are the -arguments passed to the tag. The C<undef> value is for uniformity -with other tag handlers. - -If the method handles the tag, it must return C<1> to the caller. - -If the return value is a list, the first element is the -handled/not-handled flag, remaining elements are a list of nodes to -add to the node list returned by the parser. - -The method is called after the parsing of the tag completes. - -=end internal - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Plugin/feature/default_xs_typemap.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Plugin/feature/default_xs_typemap.pm deleted file mode 100644 index 70fe9f7e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Plugin/feature/default_xs_typemap.pm +++ /dev/null @@ -1,13 +0,0 @@ -package ExtUtils::XSpp::Plugin::feature::default_xs_typemap; - -use strict; -use warnings; - -sub register_plugin { - my( $class, $parser ) = @_; - - ExtUtils::XSpp::Typemap::_enable_default_xs_typemaps(); - -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Typemap.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Typemap.pm deleted file mode 100644 index 63ba9a2b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Typemap.pm +++ /dev/null @@ -1,282 +0,0 @@ -package ExtUtils::XSpp::Typemap; -use strict; -use warnings; - -use ExtUtils::Typemaps; - -require ExtUtils::XSpp::Node::Type; -require ExtUtils::XSpp::Typemap::parsed; -require ExtUtils::XSpp::Typemap::simple; -require ExtUtils::XSpp::Typemap::reference; - -my %TypemapsByName; - -=head1 NAME - -ExtUtils::XSpp::Typemap - map types - -=cut - -sub new { - my $class = shift; - my $this = bless {}, $class; - - $this->init( @_ ); - - return $this; -} - -sub create { - my( $name, @args ) = @_; - - if( my $template = $TypemapsByName{$name} ) { - my $package = ref $template; - - return $package->new( base => $template, @args ); - } else { - my $package = "ExtUtils::XSpp::Typemap::" . $name; - - return $package->new( @args ); - } -} - -=head1 METHODS - -=head2 ExtUtils::XSpp::Typemap::type - -Returns the ExtUtils::XSpp::Node::Type that is used for this typemap. - -=cut - -sub type { $_[0]->{TYPE} } - -=head2 ExtUtils::XSpp::Typemap::xs_type() - -(Optional) XS typemap identifier (e.g. T_IV) for this C++ type. - -=head2 ExtUtils::XSpp::Typemap::xs_input_code() - -(Optional) XS input code for the associated XS typemap. - -=head2 ExtUtils::XSpp::Typemap::xs_output_code() - -(Optional) XS output code for the associated XS typemap. - -=head2 ExtUtils::XSpp::Typemap::cpp_type() - -Returns the C++ type to be used for the local variable declaration. - -=head2 ExtUtils::XSpp::Typemap::input_code( perl_argument_name, cpp_var_name1, ... ) - -Code to put the contents of the perl_argument (typically ST(x)) into -the C++ variable(s). - -=head2 ExtUtils::XSpp::Typemap::output_code( perl_variable, c_variable ) - -=head2 ExtUtils::XSpp::Typemap::cleanup_code( perl_variable, c_variable ) - -=head2 ExtUtils::XSpp::Typemap::call_parameter_code( parameter_name ) - -=head2 ExtUtils::XSpp::Typemap::call_function_code( function_call_code, return_variable ) - -Allows modifying the code used in the function/method call. The first -parameter has the form C<THIS->method( <args> )>, the second -parameter is a variable to hold the return value. - -=cut - -sub init { } - -sub xs_type { $_[0]->{XS_TYPE} } -sub xs_input_code { $_[0]->{XS_INPUT_CODE} } -sub xs_output_code { $_[0]->{XS_OUTPUT_CODE} } -sub name { $_[0]->{NAME} } -sub cpp_type { die; } -sub input_code { die; } -sub precall_code { undef } -sub output_code { undef } -sub cleanup_code { undef } -sub call_parameter_code { undef } -sub call_function_code { undef } -sub output_list { undef } - -my @Typemaps; -my $Default_output_code = 'sv_setref_pv( $arg, xsp_constructor_class("${my $ntt = $type; $ntt =~ s{^const\s+|[ \t*]+$}{}g; \\$ntt}"), (void*)$var );'; -my $Default_input_code = <<'INPUTCODE'; - if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) - $var = ($type)SvIV((SV*)SvRV( $arg )); - else{ - warn( \"${Package}::$func_name() -- $var is not a blessed SV reference\" ); - XSRETURN_UNDEF; - } -INPUTCODE - - -# add typemaps for basic C types -add_default_typemaps(); - -sub add_typemap_for_type { - my( $type, $typemap ) = @_; - - unshift @Typemaps, [ $type, $typemap ]; - $TypemapsByName{$typemap->name} = $typemap if $typemap->name; -} - -sub reset_typemaps { - @Typemaps = (); - add_default_typemaps(); -} - -# a weak typemap does not override an already existing typemap for the -# same type -sub add_weak_typemap_for_type { - my( $type, $typemap ) = @_; - push @Typemaps, [ $type, $typemap ]; - $TypemapsByName{$typemap->name} ||= $typemap if $typemap->name; -} - -sub get_typemap_for_type { - my $type = shift; - - foreach my $t ( @Typemaps ) { - return ${$t}[1] if $t->[0]->equals( $type ); - } - - # construct verbose error message: - my $errmsg = "No typemap for type " . $type->print - . "\nThere are typemaps for the following types:\n"; - my @types; - foreach my $t (@Typemaps) { - push @types, " - " . $t->[0]->print . "\n"; - } - - if (@types) { - $errmsg .= join('', @types); - } - else { - $errmsg .= " (none)\n"; - } - $errmsg .= "Did you forget to declare your type in an XS++ typemap?"; - - Carp::confess( $errmsg ); -} - -sub get_xs_typemap_code_for_all_typemaps { - my $typemaps = ExtUtils::Typemaps->new; - - # process typemaps in reverse order, so newer ones take precedence - my @xs_typemaps = grep $_->[1]->xs_type, reverse @Typemaps; - return unless @xs_typemaps; - - my %xs_types; - foreach my $typemap (grep $_->[1]->cpp_type && $_->[1]->cpp_type ne '_', @xs_typemaps) { - my $xstype = $typemap->[1]->xs_type; - - $xs_types{$typemap->[1]->cpp_type} = $xstype; - $typemaps->add_typemap( - ctype => $typemap->[1]->cpp_type, - xstype => $xstype, - replace => 1, - ); - } - - # avoid adding INPUT/OUTPUT sections for unused mappings - %xs_types = reverse %xs_types; - foreach my $typemap (grep $xs_types{$_->[1]->xs_type || ''}, @xs_typemaps) { - my $xstype = $typemap->[1]->xs_type; - - $typemaps->add_inputmap( - xstype => $xstype, - code => $typemap->[1]->xs_input_code, - replace => 1, - ) if $typemap->[1]->xs_input_code; - - $typemaps->add_outputmap( - xstype => $xstype, - code => $typemap->[1]->xs_output_code, - replace => 1, - ) if $typemap->[1]->xs_output_code; - } - - return '' if $typemaps->is_empty; - my $code = $typemaps->as_string; - my $end_marker = 'END'; - while ($code =~ /^\Q$end_marker\E\s*$/m) { - $end_marker .= '_'; - } - return "TYPEMAP: <<$end_marker\n$code\n$end_marker\n"; -} - -# adds default typemaps for C* and C& -sub add_class_default_typemaps { - my( $name ) = @_; - - my $ptr = ExtUtils::XSpp::Node::Type->new - ( base => $name, - pointer => 1, - ); - my $ref = ExtUtils::XSpp::Node::Type->new - ( base => $name, - reference => 1, - ); - - my $xs_type = $TypemapsByName{object}->xs_type; - - add_weak_typemap_for_type - ( $ptr, ExtUtils::XSpp::Typemap::simple->new( type => $ptr, xs_type => $xs_type ) ); - add_weak_typemap_for_type - ( $ref, ExtUtils::XSpp::Typemap::reference->new( type => $ref, xs_type => $xs_type ) ); -} - -sub add_default_typemaps { - # void, integral and floating point types - foreach my $t ( 'char', 'short', 'int', 'long', 'bool', - 'unsigned char', 'unsigned short', 'unsigned int', - 'unsigned long', 'void', - 'float', 'double', 'long double' ) { - my $type = ExtUtils::XSpp::Node::Type->new( base => $t ); - - ExtUtils::XSpp::Typemap::add_typemap_for_type - ( $type, ExtUtils::XSpp::Typemap::simple->new( type => $type ) ); - } - - # char*, const char* - my $char_p = ExtUtils::XSpp::Node::Type->new - ( base => 'char', - pointer => 1, - ); - - ExtUtils::XSpp::Typemap::add_typemap_for_type - ( $char_p, ExtUtils::XSpp::Typemap::simple->new( type => $char_p ) ); - - my $const_char_p = ExtUtils::XSpp::Node::Type->new - ( base => 'char', - pointer => 1, - const => 1, - ); - - ExtUtils::XSpp::Typemap::add_typemap_for_type - ( $const_char_p, ExtUtils::XSpp::Typemap::simple->new( type => $const_char_p ) ); - - # objects - my $dummy_type = ExtUtils::XSpp::Node::Type->new( base => '' ); - my $obj_typemap = ExtUtils::XSpp::Typemap::parsed->new( - name => 'object', - type => $dummy_type, - xs_input_code => $Default_input_code, - xs_output_code => $Default_output_code, - ); - - ExtUtils::XSpp::Typemap::add_typemap_for_type( $dummy_type, $obj_typemap ) -} - -sub _enable_default_xs_typemaps { - foreach my $t ( reverse @Typemaps ) { - if( ($t->[1]->name || '') eq 'object' ) { - $t->[1]{XS_TYPE} ||= 'O_OBJECT'; - last; - } - } -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Typemap/parsed.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Typemap/parsed.pm deleted file mode 100644 index b50309b4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Typemap/parsed.pm +++ /dev/null @@ -1,88 +0,0 @@ -package ExtUtils::XSpp::Typemap::parsed; - -use base 'ExtUtils::XSpp::Typemap'; - -sub _dl { return defined( $_[0] ) && length( $_[0] ) ? $_[0] : undef } - -sub init { - my $this = shift; - my %args = @_; - - if( my $base = $args{base} ) { - %args = ( cpp_type => $base->{CPP_TYPE}, - call_function_code => $base->{CALL_FUNCTION_CODE}, - output_code => $base->{OUTPUT_CODE}, - cleanup_code => $base->{CLEANUP_CODE}, - precall_code => $base->{PRECALL_CODE}, - output_list => $base->{OUTPUT_LIST}, - xs_type => $base->{XS_TYPE}, - xs_input_code => $base->{XS_INPUT_CODE}, - xs_output_code => $base->{XS_OUTPUT_CODE}, - %args ); - } - - $this->{TYPE} = $args{type}; - $this->{NAME} = $args{name}; - $this->{CPP_TYPE} = $args{cpp_type} || $args{arg1}; - $this->{CALL_FUNCTION_CODE} = _dl( $args{call_function_code} || $args{arg2} ); - $this->{OUTPUT_CODE} = _dl( $args{output_code} || $args{arg3} ); - $this->{CLEANUP_CODE} = _dl( $args{cleanup_code} || $args{arg4} ); - $this->{PRECALL_CODE} = _dl( $args{precall_code} || $args{arg5} ); - $this->{OUTPUT_LIST} = _dl( $args{output_list} ); - $this->{XS_TYPE} = $args{xs_type}; - $this->{XS_INPUT_CODE} = $args{xs_input_code}; - $this->{XS_OUTPUT_CODE} = $args{xs_output_code}; -} - -sub cpp_type { $_[0]->{CPP_TYPE} || $_[0]->{TYPE}->print } - -sub output_code { - my( $this, $pvar, $cvar ) = @_; - return unless defined $_[0]->{OUTPUT_CODE}; - return _replace( $_[0]->{OUTPUT_CODE}, '$PerlVar' => $pvar, '$CVar' => $cvar ); -} - -sub output_list { - my( $this, $cvar ) = @_; - return unless defined $_[0]->{OUTPUT_LIST}; - return _replace( $_[0]->{OUTPUT_LIST}, '$CVar' => $cvar ); -} - -sub cleanup_code { - my( $this, $pvar, $cvar ) = @_; - return unless defined $_[0]->{CLEANUP_CODE}; - return _replace( $_[0]->{CLEANUP_CODE}, '$PerlVar' => $pvar, '$CVar' => $cvar ); -} - -sub call_parameter_code { undef } - -sub call_function_code { - my( $this, $func, $var ) = @_; - return unless defined $this->{CALL_FUNCTION_CODE}; - return _replace( $this->{CALL_FUNCTION_CODE}, - '$CVar' => $var, '$Call' => $func, - # backward compatibility - '$1' => $func, '$$' => $var, - ); -} - -sub precall_code { - my( $this, $pvar, $cvar ) = @_; - return unless defined $_[0]->{PRECALL_CODE}; - return _replace( $this->{PRECALL_CODE}, - '$PerlVar' => $pvar, '$CVar' => $cvar, - # backward compatibility - '$1' => $pvar, '$2' => $cvar, - ); -} - -sub _replace { - my( $code ) = shift; - while( @_ ) { - my( $f, $t ) = ( shift, shift ); - $code =~ s/\Q$f\E/$t/g; - } - return $code; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Typemap/reference.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Typemap/reference.pm deleted file mode 100644 index 947a1776..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Typemap/reference.pm +++ /dev/null @@ -1,32 +0,0 @@ -package ExtUtils::XSpp::Typemap::reference; - -use base 'ExtUtils::XSpp::Typemap'; - -sub init { - my $this = shift; - my %args = @_; - - if( my $base = $args{base} ) { - %args = ( xs_type => $base->{XS_TYPE}, - xs_input_code => $base->{XS_INPUT_CODE}, - xs_output_code => $base->{XS_OUTPUT_CODE}, - %args ); - } - - $this->{XS_TYPE} = $args{xs_type}; - $this->{NAME} = $args{name}; - $this->{TYPE} = $args{type}; -} - -sub cpp_type { - my $type = $_[0]->type; - $type->base_type . $type->print_tmpl_args . ('*' x ($type->is_pointer+1)) -} -sub output_code { undef } -sub call_parameter_code { "*( $_[1] )" } -sub call_function_code { - my $type = $_[0]->type; - $_[2] . ' = new ' . $type->base_type . $type->print_tmpl_args . '( ' . $_[1] . " )"; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Typemap/simple.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Typemap/simple.pm deleted file mode 100644 index cdcbe4ea..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Typemap/simple.pm +++ /dev/null @@ -1,28 +0,0 @@ -package ExtUtils::XSpp::Typemap::simple; - -use base 'ExtUtils::XSpp::Typemap'; - -sub init { - my $this = shift; - my %args = @_; - - if( my $base = $args{base} ) { - %args = ( xs_type => $base->{XS_TYPE}, - xs_input_code => $base->{XS_INPUT_CODE}, - xs_output_code => $base->{XS_OUTPUT_CODE}, - %args ); - } - - $this->{TYPE} = $args{type}; - $this->{NAME} = $args{name}; - $this->{XS_TYPE} = $args{xs_type}; - $this->{XS_INPUT_CODE} = $args{xs_input_code}; - $this->{XS_OUTPUT_CODE} = $args{xs_output_code}; -} - -sub cpp_type { $_[0]->{TYPE}->print } -sub output_code { undef } # likewise -sub call_parameter_code { undef } -sub call_function_code { undef } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Typemap/wrapper.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Typemap/wrapper.pm deleted file mode 100644 index 22aa32f7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/XSpp/Typemap/wrapper.pm +++ /dev/null @@ -1,24 +0,0 @@ -package ExtUtils::XSpp::Typemap::wrapper; - -use base 'ExtUtils::XSpp::Typemap'; - -sub init { - my $this = shift; - my %args = @_; - - $this->{TYPEMAP} = $args{typemap}; -} - -sub type { shift->{TYPEMAP}->type( @_ ) } -sub cpp_type { shift->{TYPEMAP}->cpp_type( @_ ) } -sub input_code { shift->{TYPEMAP}->input_code( @_ ) } -sub precall_code { shift->{TYPEMAP}->precall_code( @_ ) } -sub output_code { shift->{TYPEMAP}->output_code( @_ ) } -sub cleanup_code { shift->{TYPEMAP}->cleanup_code( @_ ) } -sub call_parameter_code { shift->{TYPEMAP}->call_parameter_code( @_ ) } -sub call_function_code { shift->{TYPEMAP}->call_function_code( @_ ) } -sub output_list { shift->{TYPEMAP}->output_list( @_ ) } - -sub typemap { $_[0]->{TYPEMAP} } - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/testlib.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/testlib.pm deleted file mode 100644 index 01b46ee4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/testlib.pm +++ /dev/null @@ -1,42 +0,0 @@ -package ExtUtils::testlib; - -use strict; -use warnings; - -our $VERSION = '7.34'; -$VERSION = eval $VERSION; - -use Cwd; -use File::Spec; - -# So the tests can chdir around and not break @INC. -# We use getcwd() because otherwise rel2abs will blow up under taint -# mode pre-5.8. We detaint is so @INC won't be tainted. This is -# no worse, and probably better, than just shoving an untainted, -# relative "blib/lib" onto @INC. -my $cwd; -BEGIN { - ($cwd) = getcwd() =~ /(.*)/; -} -use lib map { File::Spec->rel2abs($_, $cwd) } qw(blib/arch blib/lib); -1; -__END__ - -=head1 NAME - -ExtUtils::testlib - add blib/* directories to @INC - -=head1 SYNOPSIS - - use ExtUtils::testlib; - -=head1 DESCRIPTION - -After an extension has been built and before it is installed it may be -desirable to test it bypassing C<make test>. By adding - - use ExtUtils::testlib; - -to a test program the intermediate directories used by C<make> are -added to @INC. - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/xsubpp b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/xsubpp deleted file mode 100644 index d596cdff..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/ExtUtils/xsubpp +++ /dev/null @@ -1,185 +0,0 @@ -#!perl -use 5.006; -BEGIN { pop @INC if $INC[-1] eq '.' } -use strict; -eval { - require ExtUtils::ParseXS; - 1; -} -or do { - my $err = $@ || 'Zombie error'; - my $v = $ExtUtils::ParseXS::VERSION; - $v = '<undef>' if not defined $v; - die "Failed to load or import from ExtUtils::ParseXS (version $v). Please check that ExtUtils::ParseXS is installed correctly and that the newest version will be found in your \@INC path: $err"; -}; - -use Getopt::Long; - -my %args = (); - -my $usage = "Usage: xsubpp [-v] [-csuffix csuffix] [-except] [-prototypes] [-noversioncheck] [-nolinenumbers] [-nooptimize] [-noinout] [-noargtypes] [-strip|s pattern] [-typemap typemap]... file.xs\n"; - -Getopt::Long::Configure qw(no_auto_abbrev no_ignore_case); - -@ARGV = grep {$_ ne '-C++'} @ARGV; # Allow -C++ for backward compatibility -GetOptions(\%args, qw(hiertype! - prototypes! - versioncheck! - linenumbers! - optimize! - inout! - argtypes! - object_capi! - except! - v - typemap=s@ - output=s - s|strip=s - csuffix=s - )) - or die $usage; - -if ($args{v}) { - print "xsubpp version $ExtUtils::ParseXS::VERSION\n"; - exit; -} - -@ARGV == 1 or die $usage; - -$args{filename} = shift @ARGV; - -my $pxs = ExtUtils::ParseXS->new; -$pxs->process_file(%args); -exit( $pxs->report_error_count() ? 1 : 0 ); - -__END__ - -=head1 NAME - -xsubpp - compiler to convert Perl XS code into C code - -=head1 SYNOPSIS - -B<xsubpp> [B<-v>] [B<-except>] [B<-s pattern>] [B<-prototypes>] [B<-noversioncheck>] [B<-nolinenumbers>] [B<-nooptimize>] [B<-typemap typemap>] [B<-output filename>]... file.xs - -=head1 DESCRIPTION - -This compiler is typically run by the makefiles created by L<ExtUtils::MakeMaker> -or by L<Module::Build> or other Perl module build tools. - -I<xsubpp> will compile XS code into C code by embedding the constructs -necessary to let C functions manipulate Perl values and creates the glue -necessary to let Perl access those functions. The compiler uses typemaps to -determine how to map C function parameters and variables to Perl values. - -The compiler will search for typemap files called I<typemap>. It will use -the following search path to find default typemaps, with the rightmost -typemap taking precedence. - - ../../../typemap:../../typemap:../typemap:typemap - -It will also use a default typemap installed as C<ExtUtils::typemap>. - -=head1 OPTIONS - -Note that the C<XSOPT> MakeMaker option may be used to add these options to -any makefiles generated by MakeMaker. - -=over 5 - -=item B<-hiertype> - -Retains '::' in type names so that C++ hierarchical types can be mapped. - -=item B<-except> - -Adds exception handling stubs to the C code. - -=item B<-typemap typemap> - -Indicates that a user-supplied typemap should take precedence over the -default typemaps. This option may be used multiple times, with the last -typemap having the highest precedence. - -=item B<-output filename> - -Specifies the name of the output file to generate. If no file is -specified, output will be written to standard output. - -=item B<-v> - -Prints the I<xsubpp> version number to standard output, then exits. - -=item B<-prototypes> - -By default I<xsubpp> will not automatically generate prototype code for -all xsubs. This flag will enable prototypes. - -=item B<-noversioncheck> - -Disables the run time test that determines if the object file (derived -from the C<.xs> file) and the C<.pm> files have the same version -number. - -=item B<-nolinenumbers> - -Prevents the inclusion of '#line' directives in the output. - -=item B<-nooptimize> - -Disables certain optimizations. The only optimization that is currently -affected is the use of I<target>s by the output C code (see L<perlguts>). -This may significantly slow down the generated code, but this is the way -B<xsubpp> of 5.005 and earlier operated. - -=item B<-noinout> - -Disable recognition of C<IN>, C<OUT_LIST> and C<INOUT_LIST> declarations. - -=item B<-noargtypes> - -Disable recognition of ANSI-like descriptions of function signature. - -=item B<-C++> - -Currently doesn't do anything at all. This flag has been a no-op for -many versions of perl, at least as far back as perl5.003_07. It's -allowed here for backwards compatibility. - -=item B<-s=...> or B<-strip=...> - -I<This option is obscure and discouraged.> - -If specified, the given string will be stripped off from the beginning -of the C function name in the generated XS functions (if it starts with that prefix). -This only applies to XSUBs without C<CODE> or C<PPCODE> blocks. -For example, the XS: - - void foo_bar(int i); - -when C<xsubpp> is invoked with C<-s foo_> will install a C<foo_bar> -function in Perl, but really call C<bar(i)> in C. Most of the time, -this is the opposite of what you want and failure modes are somewhat -obscure, so please avoid this option where possible. - -=back - -=head1 ENVIRONMENT - -No environment variables are used. - -=head1 AUTHOR - -Originally by Larry Wall. Turned into the C<ExtUtils::ParseXS> module -by Ken Williams. - -=head1 MODIFICATION HISTORY - -See the file F<Changes>. - -=head1 SEE ALSO - -perl(1), perlxs(1), perlxstut(1), ExtUtils::ParseXS - -=cut - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Getopt/ArgvFile.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Getopt/ArgvFile.pm deleted file mode 100644 index f9b63a84..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Getopt/ArgvFile.pm +++ /dev/null @@ -1,964 +0,0 @@ - -# = HISTORY SECTION ===================================================================== - -# --------------------------------------------------------------------------------------- -# version | date | author | changes -# --------------------------------------------------------------------------------------- -# 1.11 |17.04.07| JSTENZEL | renamed fileOptions2prefixes() into _fileOptions2prefixes(), -# | | | in order to avoid POD documentation because it is an -# | | | internal helper function; -# | | JSTENZEL | slight adaptations after complaints of perlcritic; -# | | JSTENZEL | added POD hints that GetOptions() is imported from -# | | | Getopt::Long and not defined in Getopt::ArgvFile; -# | | JSTENZEL | POD: bugfix in GetOptions() calls, %options hash needs to -# | | | be passed in as reference; -# |21.04.07| JSTENZEL | POD: bugfix in -fileOption example; -# 1.10 |05.01.05| JSTENZEL | added options resolveRelativePathes and resolveEnvVars; -# 1.09 |19.10.04| JSTENZEL | option -startupFilename now accepts array references both -# | | | directly set up and supplied by a callback; -# |20.10.04| JSTENZEL | new option -fileOption allows to use a user defined option -# | | | instead of an option file prefix like "@" (-options options -# | | | instead of @options); -# 1.08 |30.04.04| JSTENZEL | new import() switch "justload"; -# 1.07 |29.04.04| JSTENZEL | import() implemented directly: emulating the old behaviour -# | | | of Exporter::import() when necessary, it alternatively -# | | | allows to invoke argvFile() via use(); -# 1.06 |03.05.02| JSTENZEL | the startup filename scheme is now configurable by the -# | | | new option "startupFilename"; -# 1.05 |30.04.02| JSTENZEL | cosmetics: hash access without quotes; -# | | JSTENZEL | corrected and improved inline doc; -# | | JSTENZEL | using File::Spec::Functions to build filenames, -# | | | for improved portability; -# | | JSTENZEL | using Cwd::abs_path() to check if files were read already; -# | | JSTENZEL | added support for default files in *current* directory; -# 1.04 |29.10.00| JSTENZEL | bugfix: options were read twice if both default and home -# | | | startup options were read and the script was installed in -# | | | the users homedirectory; -# 1.03 |25.03.00| JSTENZEL | new parameter "prefix"; -# | | JSTENZEL | POD in option files is now supported; -# | | JSTENZEL | using Test in test suite now; -# 1.02 |27.02.00| JSTENZEL | new parameter "array"; -# | | JSTENZEL | slight POD adaptions; -# 1.01 |23.03.99| JSTENZEL | README update only; -# 1.00 |16.03.99| JSTENZEL | first CPAN version. -# --------------------------------------------------------------------------------------- - -# = POD SECTION ========================================================================= - -=head1 NAME - -Getopt::ArgvFile - interpolates script options from files into @ARGV or another array - -=head1 VERSION - -This manual describes version B<1.11>. - -=head1 SYNOPSIS - -One line invocation - option hints are processed while the module is loaded: - - # load module and process option file hints in @ARGV - use Getopt::ArgvFile default=>1; - - # load another module to evaluate the options, e.g.: - use Getopt::Long; - ... - - # evaluate options, e.g. this common way: - GetOptions(\%options, 'any'); # this function is defined in Getopt::Long - -Or suppress option hint processing when the module is loaded, to -perform it later on: - - # load module, do *not* process option file hints - use Getopt::ArgvFile justload=>1; - - # load another module to evaluate the options, e.g.: - use Getopt::Long; - ... - - # *now*, solve option file hints - Getopt::ArgvFile::argvFile(default=>1); - - # evaluate options, e.g. this common way: - GetOptions(\%options, 'any'); # this function is defined in Getopt::Long - -Or use the traditional two step invocation of module loading with -I<symbol import> and I<explicit> option file handling: - - # Load the module and import the &argvFile symbol - # - this will *not* process option hints. - # Use *this* syntax to do so, *exactly*. - use Getopt::ArgvFile qw(argvFile); - - # load another module to evaluate the options, e.g.: - use Getopt::Long; - ... - - # *now*, solve option file hints - argvFile(default=>1); - - # evaluate options, e.g. this common way: - GetOptions(\%options, 'any'); # this function is defined in Getopt::Long - - -If options should be processed into another array, this can be done this way: - - # prepare target array - my @options=('@options1', '@options2', '@options3'); - - ... - - # replace file hints by the options stored in the files - argvFile(array=>\@options); - -In case you do not like the "@" prefix it is possible to define an option to -be used instead: - - # prepare target array - my @options=('-options', 'options1', '-options', 'options2'); - - ... - - # replace file hints by the options stored in the files - argvFile(fileOption=>'options', array=>\@options); - - -=head1 DESCRIPTION - -This module simply interpolates option file hints in @ARGV -by the contents of the pointed files. This enables option -reading from I<files> instead of or additional to the usual -reading from the command line. - -Alternatively, you can process any array instead of @ARGV -which is used by default and mentioned mostly in this manual. - -The interpolated @ARGV could be subsequently processed by -the usual option handling, e.g. by a Getopt::xxx module. -Getopt::ArgvFile does I<not> perform any option handling itself, -it only prepares the array @ARGV. - -Option files can significantly simplify the call of a script. -Imagine the following: - -=over 4 - -=item Breaking command line limits - -A script may offer a lot of options, with possibly a few of them -even taking parameters. If these options and their parameters -are passed onto the program call directly, the number of characters -accepted by your shells command line may be exceeded. - -Perl itself does I<not> limit the number of characters passed to a -script by parameters, but the shell or command interpreter often -I<sets> a limit here. The same problem may occur if you want to -store a long call in a system file like crontab. - -If such a limit restricts you, options and parameters may be moved into -option files, which will result in a shorter command line call. - -=item Script calls prepared by scripts - -Sometimes a script calls another script. The options passed onto the -nested script could depend on variable situations, such as a users -input or the detected environment. In such a case, it I<can> be easier -to generate an intermediate option file which is then passed to -the nested script. - -Or imagine two cron jobs one preparing the other: the first may generate -an option file which is then used by the second. - -=item Simple access to typical calling scenarios - -If several options need to be set, but in certain circumstances -are always the same, it could become sligthly nerveracking to type -them in again and again. With an option file, they can be stored -I<once> and recalled easily as often as necessary. - -Further more, option files may be used to group options. Several -settings may set up one certain behaviour of the program, while others -influence another. Or a certain set of options may be useful in one -typical situation, while another one should be used elsewhere. Or there -is a common set of options which has to be used in every call, -while other options are added depending on the current needs. Or there -are a few user groups with different but typical ways to call your script. -In all these cases, option files may collect options belonging together, -and may be combined by the script users to set up a certain call. -In conjunction with the possiblity to I<nest> such collections, this is -perhaps the most powerful feature provided by this method. - -=item Individual and installationwide default options - -The module allows the programmer to enable user setups of default options; -for both individual users or generally I<all> callers of a script. -This is especially useful for administrators who can configure the -I<default> behaviour of a script by setting up its installationwide -startup option file. All script users are free then to completely -forget every already configured setup option. And if one of them regularly -adds certain options to every call, he could store them in his I<individual> -startup option file. - -For example, I use this feature to make my scripts both flexible I<and> -usable. I have several scripts accessing a database via DBI. The database -account parameters as well as the DBI startup settings should not be coded -inside the scripts because this is not very flexible, so I implemented -them by options. But on the other hand, there should be no need for a normal -user to pass all these settings to every script call. My solution for this -is to use I<default> option files set up and maintained by an administrator. -This is very transparent, most of the users know nothing of these -(documented ;-) configuration settings ... and if anything changes, only the -option files have to be adapted. - -=back - -=cut - -# PACKAGE SECTION ############################################### - -# declare namespace -package Getopt::ArgvFile; - -# declare your revision (and use it to avoid a warning) -$VERSION=1.11; -$VERSION=$VERSION; - -# force Perl version -require 5.003; - -=pod - -=head1 EXPORTS - -No symbol is exported by default, but you may explicitly import -the "argvFile()" function I<using the exact syntax of the following example>: - - use Getopt::ArgvFile qw(argvFile); - -Please note that this interface is provided for backwards compatibility with -versions up to 1.06. By loading the module this way, the traditional import -mechanisms take affect and I<C<argvFile()> is not called implicitly>. - -This means that while option file hints are usually processed implicitly when -C<Getopt::ArgvFile> is loaded, the syntax - - use Getopt::ArgvFile qw(argvFile); - -requires an I<extra> call of I<argvFile()> to process option files. - -=cut - -# export something (Exporter is not made a base module because we implement import() ourselves, -# which *can* call Exporter::import() (if needed for backwards compatibility) - see import()) -require Exporter; -@EXPORT_OK=qw(argvFile); - -# CODE SECTION ################################################## - -# set pragmas -use strict; - -# load libraries -use Carp; -use File::Basename; -use Text::ParseWords; -use File::Spec::Functions; -use Cwd qw(:DEFAULT abs_path chdir); - -# module variables -my $optionPrefixPattern=qr/(-{1,2}|\+)/; - -# METHOD SECTION ################################################ - -=pod - -=head1 FUNCTIONS - -There is only one function, I<argvFile()>, which does all the work of -option file hint processing. - -Please note that with version 1.07 and above C<argvFile()> is called -I<implicitly> when the module is loaded, except this is done in one of -the following ways: - - # the traditional interface - provided for - # backwards compatibility - this loads the - # module and imports the &argvFile symbol - use Getopt::ArgvFile qw(argvFile); - - -- - - # option file processing is explicitly suppressed - use Getopt::ArgvFile justload=>1; - -Except for the traditional loading, the complete interface of C<argvFile()> -is available via C<use>, but in the typical C<use> syntax without -parantheses. - - # implicit call of argvFile(default=>1, home=>1) - use Getopt::ArgvFile default=>1, home=>1; - -See I<ONE LINE INVOCATION> for further details. - - -=head2 argvFile() - -Scans the command line parameters (stored in @ARGV or an alternatively -passed array) for option file hints (see I<Basics> below), reads the -pointed files and makes their contents part of the source array -(@ARGV by default) replacing the hints. - -Because the function was intentionally designed to work on @ARGV -and this is still the default behaviour, this manual mostly speaks about -@ARGV. Please note that it is possible to process I<any> other array -as well. - -B<Basics> - -An option file hint is simply the filename preceeded by (at least) one -"@" character: - - > script -optA argA -optB @optionFile -optC argC - -This will cause argvFile() to scan "optionFile" for options. -The element "@optionFile" will be removed from the @ARGV array and -will be replaced by the options found. - -Note: you can choose another prefix by using the "prefix" parameter, -see below. - -An option file which cannot be found is quietly skipped. - -Well, what is I<within> an option file? It is intended to -store I<command line arguments> which should be passed to the called -script. They can be stored exactly as they would be written in -the command line, but may be spread to multiple lines. To make the -file more readable, space and comment lines (starting with a "#") -are allowed additionally. POD comments are supported as well. -For example, the call - - > script -optA argA -optB -optC cArg par1 par2 - -could be transformed into - - > script @scriptOptions par1 par2 - -where the file "scriptOptions" may look like this: - - # option a - -optA argA - -C<> - - =pod - option b - =cut - -optB - -C<> - - # option c - -optC cArg - -B<Nested option files> - -Option files can be nested. Recursion is avoided globally, that means -that every file will be opened only I<once> (the first time argvFile() finds -a hint pointing to it). This is the simplest implementation, indeed, but -should be suitable. (Unfortunately, there are I<LIMITS>.) - -By using this feature, you may combine groups of typical options into -a top level option file, e.g.: - - File ab: - -C<> - - # option a - -optA argA - # option b - -optB - -C<> - - File c: - -C<> - - # option c - -optC cArg - -C<> - - File abc: - -C<> - - # combine ab and c - @ab @c - -If anyone provides these files, a user can use a very short call: - - > script @abc - -and argvFile() will recursively move all the filed program parameters -into @ARGV. - - -B<Relative pathes> - -Pathes in option files might be relative, as in - - -file ../file @../../configs/nested - -If written with the (prepared) start directory in mind, that will work, -but it can fail when it was written relatively to the option file location -because by default those pathes will not be resolved when written from -an option file. - -Use parameter C<resolveRelativePathes> to switch to path resolution: - - argvFile(resolveRelativePathes=>1); - -will cause C<argvFile()> to expand those pathes, both in standard strings -and nested option files. - - With resolveRelativePathes, both pathes - will be resolved: - - -file ../file @../../configs/nested - -A path is resolved I<relative to the option file> it is found in. - - -B<Environment variables> - -Similar to relative pathes, environment variables are handled differently -depending if the option is specified at the commandline or from an option -file, due to bypassed shell processing. By default, C<argvFile()> does -not resolve environment variables. But if required it can be commanded -to do so via parameter C<resolveEnvVars>. - - argvFile(resolveEnvVars=>1); - -B<Startup support> - -By setting several named parameters, you can enable automatic processing -of I<startup option files>. There are three of them: - -The I<default option file> is searched in the installation path -of the calling script, the I<home option file> is searched in the -users home (evaluated via environment variable "HOME"), and the -I<current option script> is searched in the current directory. - -By default, all startup option files are expected to be named like -the script, preceeded by a dot, but this can be adapted to individual -needs if preferred, see below. - - Examples: - If a script located in "/path/script" is invoked in directory - /the/current/dir by a user "user" whoms "HOME" variable points - to "/homes/user", the following happens: - -C<> - - argvFile() # ignores all startup option files; - argvFile(default=>1) # searches and expands "/path/.script", - # if available (the "default" settings); - argvFile(home=>1) # searches and expands "/homes/user/.script", - # if available (the "home" settings); - argvFile(current=>1) # searches and expands "/the/current/dir/.script", - # if available (the "current" settings); - argvFile( - default => 1, - home => 1, - current => 1 - ) # tries to handle all startups. - -Any true value will activate the setting it is assigned to. - -In case the ".script" name rule does not meet your needs or does not fit -into a certain policy, the expected startup filenames can be set up by -an option C<startupFilename>. The option value may be a scalar used as -the expected filename, or a reference to an array of accepted choices, -or a reference to code returning the name - plainly or as a reference to -an array of names. Such callback code will be called I<once> and will -receive the name of the script. - - # use ".config" - argvFile(startupFilename => '.config'); - - # use ".config" or "config" - argvFile(startupFilename => [qw(.config config)]); - - # emulate the default behaviour, - # but use an extra dot postfix - my $nameBuilder=sub {join('', '.', basename($_[0]), '.');}; - argvFile(startupFilename => $nameBuilder); - - # use .(script)rc or .(script)/config - my $nameBuilder=sub - { - my $sname=basename($_[0]); - [".${sname}rc", ".${sname}/config"]; - }; - argvFile(startupFilename => $nameBuilder); - -Note that the list variants will use the first matching filename in each -possible startup-file path. For example if your array is C<['.scriptrc', -'.script.config']> and you have both a C<.scriptrc> and a C<.script.config> -file in (say) your current directory, only the C<.scriptrc> file will be -used, as it is the first found. - -The contents found in a startup file is placed I<before> all explicitly -set command line arguments. This enables to overwrite a default setting -by an explicit option. If all startup files are read, I<current> startup -files can overwrite I<home> files which have preceedence over I<default> -ones, so that the I<default> startups are most common. In other words, -if the module would not support startup files, you could get the same -result with "script @/path/.script @/homes/user/.script @/the/current/dir/.script". - -Note: There is one certain case when overwriting will I<not> work completely -because duplicates are sorted out: if all three types of startup files are -used and the script is started in the installation directory, -the default file will be identical to the current file. The default file is -processed, but the current file is skipped as a duplicate later on and will -I<not> overwrite settings made caused by the intermediately processed home file. -If started in another directory, it I<will> overwrite the home settings. -But the alternative seems to be even more confusing: the script would behave -differently if just started in its installation path. Because a user might -be more aware of configuration editing then of the current path, I choose -the current implementation, but this preceedence might become configurable -in a future version. - -If there is no I<HOME> environment variable, the I<home> setting takes no effect -to avoid trouble accessing the root directory. - -B<Cascades> - -The function supports multi-level (or so called I<cascaded>) option files. -If a filename in an option file hint starts with a "@" again, this complete -name is the resolution written back to @ARGV - assuming there will be -another utility reading option files. - - Examples: - @rfile rfile will be opened, its contents is - made part of @ARGV. - @@rfile cascade: "@rfile" is written back to - @ARGV assuming that there is a subsequent - tool called by the script to which this - hint will be passed to solve it by an own - call of argvFile(). - -The number of cascaded hints is unlimited. - -B<Processing an alternative array> - -Although the function was designed to process @ARGV, it is possible to -process another array as well if you prefer. To do this, simply pass -a I<reference> to this array by parameter B<array>. - - Examples: - argvFile() # processes @ARGV; - argvFile(array=>\@options); # processes @options; - -B<Choosing an alternative hint prefix> - -By default, "@" is the prefix used to mark an option file. This can -be changed by using the optional parameter B<prefix>: - - Examples: - argvFile(); # use "@"; - argvFile(prefix=>'~'); # use "~"; - -Note that the strings "#", "=", "-" and "+" are reserved and I<cannot> -be chosen here because they are used to start plain or POD comments or -are typically option prefixes. - -B<Using an option instead of a hint prefix> - -People not familiar with option files might be confused by file prefixes. -This can be avoided by offering an I<option> that can be used instead -of a prefix, using the optional parameter B<fileOption>: - - # install a file option - # (all lines are equivalent) - argvFile(fileOption=>'options'); - argvFile(fileOption=>'-options'); - argvFile(fileOption=>'+options'); - argvFile(fileOption=>'--options'); - -The name of the option can be specified with or without the usual option -prefixes C<->, C<--> and C<+>. - -Once an option is declared, it I<can> replace a prefix. (Prefixes remain -in action as well.) - - # with -options declared to be a file option, - # these sequences are equivalent - @file - -options file - - # five equivalent cascades - @@@@file - -options @@@file - -options -options @@file - -options -options -options @file - -options -options -options -options file - -Please note that prefixes are attached to the filename with no spaces -in between, while the option declared via -fileOption is separated from -the filename by whitespace, as for normal options. - - -=cut -sub argvFile - { - # declare function variables - my ($maskString, $i, %rfiles, %startup, %seen)=("\0x07\0x06\0x07"); - - # detect the host system (to prepare filename handling) - my $casesensitiveFilenames=$^O!~/^(?:dos|os2|MSWin32)/i; - - # check and get parameters - confess('[BUG] Getopt::ArgvFile::argvFile() uses named parameters, please provide name value pairs.') if @_ % 2; - my %switches=@_; - - # perform more parameter checks - confess('[BUG] The "array" parameter value is no array reference.') if exists $switches{array} and not (ref($switches{array}) and ref($switches{array}) eq 'ARRAY'); - confess('[BUG] The "prefix" parameter value is no defined literal.') if exists $switches{prefix} and (not defined $switches{prefix} or ref($switches{prefix})); - confess('[BUG] Invalid "prefix" parameter $switches{"prefix"}.') if exists $switches{prefix} and $switches{prefix}=~/^[-#=+]$/; - confess('[BUG] The "startupFilename" parameter value is neither a scalar nor array or code reference.') if exists $switches{startupFilename} and ref($switches{startupFilename}) and ref($switches{startupFilename})!~/^(ARRAY|CODE)$/; - confess('[BUG] The "fileOption" parameter value is no defined literal.') if exists $switches{fileOption} and (not defined $switches{fileOption} or ref($switches{fileOption})); - - # check if further operations are suppressed (in case of a call via import()) - { - my ($callerSub)=(caller(1))[3]; - return if defined $callerSub and $callerSub eq join('::', __PACKAGE__, 'import') - and exists $switches{justload}; - } - - # set array reference - my $arrayRef=exists $switches{array} ? $switches{array} : \@ARGV; - - # set prefix - my $prefix=exists $switches{prefix} ? $switches{prefix} : '@'; - - # set file option - my $fileOption=exists $switches{fileOption} ? $switches{fileOption} : ''; - $fileOption=~s/^$optionPrefixPattern//; - - # set up startup filename list - my $startupFilenames=exists $switches{startupFilename} - ? ref($switches{startupFilename}) - ? ref($switches{startupFilename}) eq 'CODE' - ? $switches{startupFilename}->($0) - : $switches{startupFilename} - : [$switches{startupFilename}] - : [join('', '.', basename($0))]; - - # check callback results - confess('[BUG] The filenames callback did not return a scalar or an array reference.') - if ref($startupFilenames) and ref($startupFilenames) ne 'ARRAY'; - - # a callback might have returned a(n undefined) scalar instead of an array reference - $startupFilenames=[defined $startupFilenames ? $startupFilenames : ()] - unless ref($startupFilenames); - - # substitute file options by prefixes, if necessary - _fileOptions2prefixes($fileOption, $prefix, $arrayRef) if $fileOption; - - # init startup file paths - ( - $startup{default}{path}, - $startup{home}{path}, - $startup{current}{path}, - )=( - dirname($0), - exists $ENV{HOME} ? $ENV{HOME} : 'no HOME variable, sorry', - cwd(), - ); - - # ignore the "home" switch if there is no HOME environment variable, for reasons - # of security - delete $switches{home} unless exists $ENV{HOME}; - - # If startup paths are *identical* (script installed in home directory) and - # both startup flags are set, we can delete one of them (to read the options only once). - # (Note that we could easily combine this with the subsequent loop, but an extra loop - # will make it easy to allow extra configuration for "first seen first processed" / - # "fix processing order" preferences (what if the current directory is the default - # one, but should overwrite the home settings?).) - # Also set the first-found startup files while we're finding them. This makes sure we - # only use *one* file per path. - my %startupFiles; - foreach my $type (qw(default home current)) - { - # skip unused settings - next unless exists $switches{$type}; - - # build filename (use the first existing file built according to the list of choices, if any) - my $cfg=(grep(-e, map {catfile(abs_path($startup{$type}{path}), $_)} @$startupFilenames))[0]; - - # remove this setting if the associated file - # was already seen before (each file should be read once) - # - or if there is no such file this call - delete $switches{$type}, next if not defined $cfg or exists $seen{$cfg}; - - # buffer filename for subsequent use - no need to built it twice - $startupFiles{$type}=$cfg; - - # otherwise, note that we saw this file - $seen{$cfg}=1; - } - - # Check all possible startup files for usage - be careful to handle - # them in the following order (implemented by alphabetical order here!): - # FIRST, the DEFAULT startup should be read, THEN the HOME one and finally - # the CURRENT one - this way, all startup options are placed before command - # line ones, and the CURRENT settings can overwrite the HOME settings which - # can overwrite the DEFAULT ones - which are the most common. - # Note that to achieve this reading order, we have to build the array - # of filenames in reverse order (because we use unshift() for construction). - foreach my $type (qw(current home default)) - { - # let's proceed this file first, if there is anything to do - # - this way, command line options can overwrite configuration - # settings (we already checked file existence above) - unshift @$arrayRef, join('', $prefix, $startupFiles{$type}) - if exists $switches{$type}; - } - - # nesting ... - while (grep(/^$prefix/, @$arrayRef)) - { - # declare scope variables - my (%nr, @c, $c); - - # scan the array for option file hints - for ($i=0; $i<@$arrayRef; $i++) - {$nr{$i}=1 if substr($arrayRef->[$i], 0, 1) eq $prefix;} - - for ($i=0; $i<@$arrayRef; $i++) - { - if ($nr{$i}) - { - # an option file - handle it - - # remove the option hint - $arrayRef->[$i]=~s/$prefix//; - - # if there is still an option file hint in the name of the file, - # this is a cascaded hint - insert it with a special temporary - # hint (has to be different from $prefix to avoid a subsequent solution - # by this loop) - push(@c, $arrayRef->[$i]), next if $arrayRef->[$i]=~s/^$prefix/$maskString/; - - # skip nonexistent or recursively nested files - next if !-e $arrayRef->[$i] || -d _ || $rfiles{$casesensitiveFilenames ? $arrayRef->[$i] : lc($arrayRef->[$i])}; - - # store filename to avoid recursion - $rfiles{$casesensitiveFilenames ? $arrayRef->[$i] : lc($arrayRef->[$i])}=1; - - # open file and read its contents - open(OPT, $arrayRef->[$i]); - { - # scopy - my ($pod); - - # handle every line - while (<OPT>) - { - # check for POD directives - $pod=1 if /^=\w/; - $pod=0, next if /^=cut/; - - # skip space and comment lines (including POD) - next if /^\s*$/ || /^\s*\#/ || $pod; - - # remove newlines, leading and trailing spaces - s/\s*\n?$//; s/^\s*//; - - # get "shellwords", double backslashes before Dollar characters - # as they would get lost otherwise (other backslash removals are welcome!) - s/\\\$/\\\\\$/g; - my (@shellwords)=shellwords($_); - - # replace environment variables, if necessary - if (exists $switches{resolveEnvVars}) - { - # get *quoted* strings - my (@quotedwords)=quotewords('\s+', 1, $_); - - # process all strings - for (my $i=0; $i<@shellwords; ++$i) - { - # substitute environment variables, except in single quoted strings - unless ($quotedwords[$i]=~/^'.+'$/) - { - # named variables - $shellwords[$i]=~s/(?<!\\)\$(\w+)/exists $ENV{$1} ? $ENV{$1} : ''/ge; - - # symbolic variables - $shellwords[$i]=~s/(?<!\\)\$(?:{(\w+)})/exists $ENV{$1} ? $ENV{$1} : ''/ge; - - # finally, remove the backslashes before Dollar characters we added above - $shellwords[$i]=~s/\\\$/\$/g; - } - } - } - - # resolve relative pathes, if requested - if (exists $switches{resolveRelativePathes}) - { - # process all strings - foreach my $string (@shellwords) - { - # scopy - my @p; - # replace as necessary - @p=(defined($1) ? $1 : '', $2), $string=~s#^$p[0]$p[1]#join('', $p[0], abs_path(catfile(dirname($arrayRef->[$i]), $p[1])))#e - if $string=~m#^($prefix)?([./]+)/#; - } - } - - # supply results - push(@c, @shellwords); - } - } - } - else - { - # a normal option or parameter - handle it - push(@c, $arrayRef->[$i]); - } - } - - # substitute file options by prefixes, if necessary - _fileOptions2prefixes($fileOption, $prefix, \@c) if $fileOption; - - # replace original array by expanded array - @$arrayRef=@c; - } - - # reset hint character in cascaded hints to $prefix - @$arrayRef=map {s/^$maskString/$prefix/; $_} @$arrayRef; - } - - -# allow one line invokation via "use", but make sure to keep backwards compatibility to -# the traditional interface inherited from Exporter -sub import - { - # check if the caller intended to import symbols - # (till 1.06, import() was inherited from Exporter and the only symbol to import was argvFile()) - if (@_==2 and $_[-1] eq "argvFile") - {goto &Exporter::import;} - else - { - # shift away the module name - shift; - - # invoke argvFile(): now option files are processed while the module is loaded - argvFile(@_); - } - } - - - -# preprocess an array to convert the -fileOption string into a prefix -sub _fileOptions2prefixes - { - # get and check parameters - my ($fileOption, $prefix, $arrayRef)=@_; - - # anything to do? - if ($fileOption) - { - # make options a string and replace all file options by a prefix - # (to replace the file option and its successor by the prefixed successor) - my $options=join("\x01\x01\x01", @$arrayRef); - $options=~s/($optionPrefixPattern$fileOption\x01+)/$prefix/g; - - # replace original array - @$arrayRef=split(/\x01\x01\x01/, $options);; - } - } - - - -# flag this module was read successfully -1; - -# POD TRAILER #################################################### - -=pod - -=head1 ONE LINE INVOCATION - -The traditional two line sequence - - # load the module - use Getopt::ArgvFile qw(argvFile); - - ... - - # solve option files - argvFile(default=>1); - -can be reduced to one line - just pass the parameters of C<argvFile()> -to C<use()>: - - # load module and process option file hints in @ARGV - use Getopt::ArgvFile default=>1; - -Please note that in this case option file hints are processed at compile -time. This means that if you want to process alternative arrays, these -arrays have to be prepared before, usually in a C<BEGIN> block. - -In versions 1.07 and above, implicit option file handling is the I<default> -and only suppressed for the traditional - - use Getopt::ArgvFile qw(argvFile); - -loading, for reasons of backwards compatibility. A simple loading like - - use Getopt::ArgvFile; - -I<will> process option hints! If you want to suppress this, use the -B<C<justload>> switch: - - use Getopt::ArgvFile justload=>1; - -See I<FUNCTIONS> for additional informations. - -=head1 NOTES - -If a script calling C<argvFile()> with the C<default> switch is -invoked using a relative path, it is strongly recommended to -perform the call of C<argvFile()> in the startup directory -because C<argvFile()> then uses the I<relative> script path as -well. - - -=head1 LIMITS - -If an option file does not exist, argvFile() simply ignores it. -No message will be displayed, no special return code will be set. - -=head1 AUTHOR - -Jochen Stenzel E<lt>mailto:perl@jochen-stenzel.deE<gt> - -=head1 LICENSE - -Copyright (c) 1993-2007 Jochen Stenzel. All rights reserved. - -This program is free software, you can redistribute it and/or modify it -under the terms of the Artistic License distributed with Perl version -5.003 or (at your option) any later version. Please refer to the -Artistic License that came with your Perl distribution for more -details. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Getopt/Long.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Getopt/Long.pm deleted file mode 100644 index 664c8b63..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Getopt/Long.pm +++ /dev/null @@ -1,2767 +0,0 @@ -#! perl - -# Getopt::Long.pm -- Universal options parsing -# Author : Johan Vromans -# Created On : Tue Sep 11 15:00:12 1990 -# Last Modified By: Johan Vromans -# Last Modified On: Sat May 27 12:11:39 2017 -# Update Count : 1715 -# Status : Released - -################ Module Preamble ################ - -use 5.004; - -use strict; -use warnings; - -package Getopt::Long; - -use vars qw($VERSION); -$VERSION = 2.50; -# For testing versions only. -use vars qw($VERSION_STRING); -$VERSION_STRING = "2.50"; - -use Exporter; -use vars qw(@ISA @EXPORT @EXPORT_OK); -@ISA = qw(Exporter); - -# Exported subroutines. -sub GetOptions(@); # always -sub GetOptionsFromArray(@); # on demand -sub GetOptionsFromString(@); # on demand -sub Configure(@); # on demand -sub HelpMessage(@); # on demand -sub VersionMessage(@); # in demand - -BEGIN { - # Init immediately so their contents can be used in the 'use vars' below. - @EXPORT = qw(&GetOptions $REQUIRE_ORDER $PERMUTE $RETURN_IN_ORDER); - @EXPORT_OK = qw(&HelpMessage &VersionMessage &Configure - &GetOptionsFromArray &GetOptionsFromString); -} - -# User visible variables. -use vars @EXPORT, @EXPORT_OK; -use vars qw($error $debug $major_version $minor_version); -# Deprecated visible variables. -use vars qw($autoabbrev $getopt_compat $ignorecase $bundling $order - $passthrough); -# Official invisible variables. -use vars qw($genprefix $caller $gnu_compat $auto_help $auto_version $longprefix); - -# Really invisible variables. -my $bundling_values; - -# Public subroutines. -sub config(@); # deprecated name - -# Private subroutines. -sub ConfigDefaults(); -sub ParseOptionSpec($$); -sub OptCtl($); -sub FindOption($$$$$); -sub ValidValue ($$$$$); - -################ Local Variables ################ - -# $requested_version holds the version that was mentioned in the 'use' -# or 'require', if any. It can be used to enable or disable specific -# features. -my $requested_version = 0; - -################ Resident subroutines ################ - -sub ConfigDefaults() { - # Handle POSIX compliancy. - if ( defined $ENV{"POSIXLY_CORRECT"} ) { - $genprefix = "(--|-)"; - $autoabbrev = 0; # no automatic abbrev of options - $bundling = 0; # no bundling of single letter switches - $getopt_compat = 0; # disallow '+' to start options - $order = $REQUIRE_ORDER; - } - else { - $genprefix = "(--|-|\\+)"; - $autoabbrev = 1; # automatic abbrev of options - $bundling = 0; # bundling off by default - $getopt_compat = 1; # allow '+' to start options - $order = $PERMUTE; - } - # Other configurable settings. - $debug = 0; # for debugging - $error = 0; # error tally - $ignorecase = 1; # ignore case when matching options - $passthrough = 0; # leave unrecognized options alone - $gnu_compat = 0; # require --opt=val if value is optional - $longprefix = "(--)"; # what does a long prefix look like - $bundling_values = 0; # no bundling of values -} - -# Override import. -sub import { - my $pkg = shift; # package - my @syms = (); # symbols to import - my @config = (); # configuration - my $dest = \@syms; # symbols first - for ( @_ ) { - if ( $_ eq ':config' ) { - $dest = \@config; # config next - next; - } - push(@$dest, $_); # push - } - # Hide one level and call super. - local $Exporter::ExportLevel = 1; - push(@syms, qw(&GetOptions)) if @syms; # always export GetOptions - $requested_version = 0; - $pkg->SUPER::import(@syms); - # And configure. - Configure(@config) if @config; -} - -################ Initialization ################ - -# Values for $order. See GNU getopt.c for details. -($REQUIRE_ORDER, $PERMUTE, $RETURN_IN_ORDER) = (0..2); -# Version major/minor numbers. -($major_version, $minor_version) = $VERSION =~ /^(\d+)\.(\d+)/; - -ConfigDefaults(); - -################ OO Interface ################ - -package Getopt::Long::Parser; - -# Store a copy of the default configuration. Since ConfigDefaults has -# just been called, what we get from Configure is the default. -my $default_config = do { - Getopt::Long::Configure () -}; - -sub new { - my $that = shift; - my $class = ref($that) || $that; - my %atts = @_; - - # Register the callers package. - my $self = { caller_pkg => (caller)[0] }; - - bless ($self, $class); - - # Process config attributes. - if ( defined $atts{config} ) { - my $save = Getopt::Long::Configure ($default_config, @{$atts{config}}); - $self->{settings} = Getopt::Long::Configure ($save); - delete ($atts{config}); - } - # Else use default config. - else { - $self->{settings} = $default_config; - } - - if ( %atts ) { # Oops - die(__PACKAGE__.": unhandled attributes: ". - join(" ", sort(keys(%atts)))."\n"); - } - - $self; -} - -sub configure { - my ($self) = shift; - - # Restore settings, merge new settings in. - my $save = Getopt::Long::Configure ($self->{settings}, @_); - - # Restore orig config and save the new config. - $self->{settings} = Getopt::Long::Configure ($save); -} - -sub getoptions { - my ($self) = shift; - - return $self->getoptionsfromarray(\@ARGV, @_); -} - -sub getoptionsfromarray { - my ($self) = shift; - - # Restore config settings. - my $save = Getopt::Long::Configure ($self->{settings}); - - # Call main routine. - my $ret = 0; - $Getopt::Long::caller = $self->{caller_pkg}; - - eval { - # Locally set exception handler to default, otherwise it will - # be called implicitly here, and again explicitly when we try - # to deliver the messages. - local ($SIG{__DIE__}) = 'DEFAULT'; - $ret = Getopt::Long::GetOptionsFromArray (@_); - }; - - # Restore saved settings. - Getopt::Long::Configure ($save); - - # Handle errors and return value. - die ($@) if $@; - return $ret; -} - -package Getopt::Long; - -################ Back to Normal ################ - -# Indices in option control info. -# Note that ParseOptions uses the fields directly. Search for 'hard-wired'. -use constant CTL_TYPE => 0; -#use constant CTL_TYPE_FLAG => ''; -#use constant CTL_TYPE_NEG => '!'; -#use constant CTL_TYPE_INCR => '+'; -#use constant CTL_TYPE_INT => 'i'; -#use constant CTL_TYPE_INTINC => 'I'; -#use constant CTL_TYPE_XINT => 'o'; -#use constant CTL_TYPE_FLOAT => 'f'; -#use constant CTL_TYPE_STRING => 's'; - -use constant CTL_CNAME => 1; - -use constant CTL_DEFAULT => 2; - -use constant CTL_DEST => 3; - use constant CTL_DEST_SCALAR => 0; - use constant CTL_DEST_ARRAY => 1; - use constant CTL_DEST_HASH => 2; - use constant CTL_DEST_CODE => 3; - -use constant CTL_AMIN => 4; -use constant CTL_AMAX => 5; - -# FFU. -#use constant CTL_RANGE => ; -#use constant CTL_REPEAT => ; - -# Rather liberal patterns to match numbers. -use constant PAT_INT => "[-+]?_*[0-9][0-9_]*"; -use constant PAT_XINT => - "(?:". - "[-+]?_*[1-9][0-9_]*". - "|". - "0x_*[0-9a-f][0-9a-f_]*". - "|". - "0b_*[01][01_]*". - "|". - "0[0-7_]*". - ")"; -use constant PAT_FLOAT => - "[-+]?". # optional sign - "(?=[0-9.])". # must start with digit or dec.point - "[0-9_]*". # digits before the dec.point - "(\.[0-9_]+)?". # optional fraction - "([eE][-+]?[0-9_]+)?"; # optional exponent - -sub GetOptions(@) { - # Shift in default array. - unshift(@_, \@ARGV); - # Try to keep caller() and Carp consistent. - goto &GetOptionsFromArray; -} - -sub GetOptionsFromString(@) { - my ($string) = shift; - require Text::ParseWords; - my $args = [ Text::ParseWords::shellwords($string) ]; - $caller ||= (caller)[0]; # current context - my $ret = GetOptionsFromArray($args, @_); - return ( $ret, $args ) if wantarray; - if ( @$args ) { - $ret = 0; - warn("GetOptionsFromString: Excess data \"@$args\" in string \"$string\"\n"); - } - $ret; -} - -sub GetOptionsFromArray(@) { - - my ($argv, @optionlist) = @_; # local copy of the option descriptions - my $argend = '--'; # option list terminator - my %opctl = (); # table of option specs - my $pkg = $caller || (caller)[0]; # current context - # Needed if linkage is omitted. - my @ret = (); # accum for non-options - my %linkage; # linkage - my $userlinkage; # user supplied HASH - my $opt; # current option - my $prefix = $genprefix; # current prefix - - $error = ''; - - if ( $debug ) { - # Avoid some warnings if debugging. - local ($^W) = 0; - print STDERR - ("Getopt::Long $Getopt::Long::VERSION ", - "called from package \"$pkg\".", - "\n ", - "argv: ", - defined($argv) - ? UNIVERSAL::isa( $argv, 'ARRAY' ) ? "(@$argv)" : $argv - : "<undef>", - "\n ", - "autoabbrev=$autoabbrev,". - "bundling=$bundling,", - "bundling_values=$bundling_values,", - "getopt_compat=$getopt_compat,", - "gnu_compat=$gnu_compat,", - "order=$order,", - "\n ", - "ignorecase=$ignorecase,", - "requested_version=$requested_version,", - "passthrough=$passthrough,", - "genprefix=\"$genprefix\",", - "longprefix=\"$longprefix\".", - "\n"); - } - - # Check for ref HASH as first argument. - # First argument may be an object. It's OK to use this as long - # as it is really a hash underneath. - $userlinkage = undef; - if ( @optionlist && ref($optionlist[0]) and - UNIVERSAL::isa($optionlist[0],'HASH') ) { - $userlinkage = shift (@optionlist); - print STDERR ("=> user linkage: $userlinkage\n") if $debug; - } - - # See if the first element of the optionlist contains option - # starter characters. - # Be careful not to interpret '<>' as option starters. - if ( @optionlist && $optionlist[0] =~ /^\W+$/ - && !($optionlist[0] eq '<>' - && @optionlist > 0 - && ref($optionlist[1])) ) { - $prefix = shift (@optionlist); - # Turn into regexp. Needs to be parenthesized! - $prefix =~ s/(\W)/\\$1/g; - $prefix = "([" . $prefix . "])"; - print STDERR ("=> prefix=\"$prefix\"\n") if $debug; - } - - # Verify correctness of optionlist. - %opctl = (); - while ( @optionlist ) { - my $opt = shift (@optionlist); - - unless ( defined($opt) ) { - $error .= "Undefined argument in option spec\n"; - next; - } - - # Strip leading prefix so people can specify "--foo=i" if they like. - $opt = $+ if $opt =~ /^$prefix+(.*)$/s; - - if ( $opt eq '<>' ) { - if ( (defined $userlinkage) - && !(@optionlist > 0 && ref($optionlist[0])) - && (exists $userlinkage->{$opt}) - && ref($userlinkage->{$opt}) ) { - unshift (@optionlist, $userlinkage->{$opt}); - } - unless ( @optionlist > 0 - && ref($optionlist[0]) && ref($optionlist[0]) eq 'CODE' ) { - $error .= "Option spec <> requires a reference to a subroutine\n"; - # Kill the linkage (to avoid another error). - shift (@optionlist) - if @optionlist && ref($optionlist[0]); - next; - } - $linkage{'<>'} = shift (@optionlist); - next; - } - - # Parse option spec. - my ($name, $orig) = ParseOptionSpec ($opt, \%opctl); - unless ( defined $name ) { - # Failed. $orig contains the error message. Sorry for the abuse. - $error .= $orig; - # Kill the linkage (to avoid another error). - shift (@optionlist) - if @optionlist && ref($optionlist[0]); - next; - } - - # If no linkage is supplied in the @optionlist, copy it from - # the userlinkage if available. - if ( defined $userlinkage ) { - unless ( @optionlist > 0 && ref($optionlist[0]) ) { - if ( exists $userlinkage->{$orig} && - ref($userlinkage->{$orig}) ) { - print STDERR ("=> found userlinkage for \"$orig\": ", - "$userlinkage->{$orig}\n") - if $debug; - unshift (@optionlist, $userlinkage->{$orig}); - } - else { - # Do nothing. Being undefined will be handled later. - next; - } - } - } - - # Copy the linkage. If omitted, link to global variable. - if ( @optionlist > 0 && ref($optionlist[0]) ) { - print STDERR ("=> link \"$orig\" to $optionlist[0]\n") - if $debug; - my $rl = ref($linkage{$orig} = shift (@optionlist)); - - if ( $rl eq "ARRAY" ) { - $opctl{$name}[CTL_DEST] = CTL_DEST_ARRAY; - } - elsif ( $rl eq "HASH" ) { - $opctl{$name}[CTL_DEST] = CTL_DEST_HASH; - } - elsif ( $rl eq "SCALAR" || $rl eq "REF" ) { -# if ( $opctl{$name}[CTL_DEST] == CTL_DEST_ARRAY ) { -# my $t = $linkage{$orig}; -# $$t = $linkage{$orig} = []; -# } -# elsif ( $opctl{$name}[CTL_DEST] == CTL_DEST_HASH ) { -# } -# else { - # Ok. -# } - } - elsif ( $rl eq "CODE" ) { - # Ok. - } - else { - $error .= "Invalid option linkage for \"$opt\"\n"; - } - } - else { - # Link to global $opt_XXX variable. - # Make sure a valid perl identifier results. - my $ov = $orig; - $ov =~ s/\W/_/g; - if ( $opctl{$name}[CTL_DEST] == CTL_DEST_ARRAY ) { - print STDERR ("=> link \"$orig\" to \@$pkg","::opt_$ov\n") - if $debug; - eval ("\$linkage{\$orig} = \\\@".$pkg."::opt_$ov;"); - } - elsif ( $opctl{$name}[CTL_DEST] == CTL_DEST_HASH ) { - print STDERR ("=> link \"$orig\" to \%$pkg","::opt_$ov\n") - if $debug; - eval ("\$linkage{\$orig} = \\\%".$pkg."::opt_$ov;"); - } - else { - print STDERR ("=> link \"$orig\" to \$$pkg","::opt_$ov\n") - if $debug; - eval ("\$linkage{\$orig} = \\\$".$pkg."::opt_$ov;"); - } - } - - if ( $opctl{$name}[CTL_TYPE] eq 'I' - && ( $opctl{$name}[CTL_DEST] == CTL_DEST_ARRAY - || $opctl{$name}[CTL_DEST] == CTL_DEST_HASH ) - ) { - $error .= "Invalid option linkage for \"$opt\"\n"; - } - - } - - $error .= "GetOptionsFromArray: 1st parameter is not an array reference\n" - unless $argv && UNIVERSAL::isa( $argv, 'ARRAY' ); - - # Bail out if errors found. - die ($error) if $error; - $error = 0; - - # Supply --version and --help support, if needed and allowed. - if ( defined($auto_version) ? $auto_version : ($requested_version >= 2.3203) ) { - if ( !defined($opctl{version}) ) { - $opctl{version} = ['','version',0,CTL_DEST_CODE,undef]; - $linkage{version} = \&VersionMessage; - } - $auto_version = 1; - } - if ( defined($auto_help) ? $auto_help : ($requested_version >= 2.3203) ) { - if ( !defined($opctl{help}) && !defined($opctl{'?'}) ) { - $opctl{help} = $opctl{'?'} = ['','help',0,CTL_DEST_CODE,undef]; - $linkage{help} = \&HelpMessage; - } - $auto_help = 1; - } - - # Show the options tables if debugging. - if ( $debug ) { - my ($arrow, $k, $v); - $arrow = "=> "; - while ( ($k,$v) = each(%opctl) ) { - print STDERR ($arrow, "\$opctl{$k} = $v ", OptCtl($v), "\n"); - $arrow = " "; - } - } - - # Process argument list - my $goon = 1; - while ( $goon && @$argv > 0 ) { - - # Get next argument. - $opt = shift (@$argv); - print STDERR ("=> arg \"", $opt, "\"\n") if $debug; - - # Double dash is option list terminator. - if ( defined($opt) && $opt eq $argend ) { - push (@ret, $argend) if $passthrough; - last; - } - - # Look it up. - my $tryopt = $opt; - my $found; # success status - my $key; # key (if hash type) - my $arg; # option argument - my $ctl; # the opctl entry - - ($found, $opt, $ctl, $arg, $key) = - FindOption ($argv, $prefix, $argend, $opt, \%opctl); - - if ( $found ) { - - # FindOption undefines $opt in case of errors. - next unless defined $opt; - - my $argcnt = 0; - while ( defined $arg ) { - - # Get the canonical name. - print STDERR ("=> cname for \"$opt\" is ") if $debug; - $opt = $ctl->[CTL_CNAME]; - print STDERR ("\"$ctl->[CTL_CNAME]\"\n") if $debug; - - if ( defined $linkage{$opt} ) { - print STDERR ("=> ref(\$L{$opt}) -> ", - ref($linkage{$opt}), "\n") if $debug; - - if ( ref($linkage{$opt}) eq 'SCALAR' - || ref($linkage{$opt}) eq 'REF' ) { - if ( $ctl->[CTL_TYPE] eq '+' ) { - print STDERR ("=> \$\$L{$opt} += \"$arg\"\n") - if $debug; - if ( defined ${$linkage{$opt}} ) { - ${$linkage{$opt}} += $arg; - } - else { - ${$linkage{$opt}} = $arg; - } - } - elsif ( $ctl->[CTL_DEST] == CTL_DEST_ARRAY ) { - print STDERR ("=> ref(\$L{$opt}) auto-vivified", - " to ARRAY\n") - if $debug; - my $t = $linkage{$opt}; - $$t = $linkage{$opt} = []; - print STDERR ("=> push(\@{\$L{$opt}, \"$arg\")\n") - if $debug; - push (@{$linkage{$opt}}, $arg); - } - elsif ( $ctl->[CTL_DEST] == CTL_DEST_HASH ) { - print STDERR ("=> ref(\$L{$opt}) auto-vivified", - " to HASH\n") - if $debug; - my $t = $linkage{$opt}; - $$t = $linkage{$opt} = {}; - print STDERR ("=> \$\$L{$opt}->{$key} = \"$arg\"\n") - if $debug; - $linkage{$opt}->{$key} = $arg; - } - else { - print STDERR ("=> \$\$L{$opt} = \"$arg\"\n") - if $debug; - ${$linkage{$opt}} = $arg; - } - } - elsif ( ref($linkage{$opt}) eq 'ARRAY' ) { - print STDERR ("=> push(\@{\$L{$opt}, \"$arg\")\n") - if $debug; - push (@{$linkage{$opt}}, $arg); - } - elsif ( ref($linkage{$opt}) eq 'HASH' ) { - print STDERR ("=> \$\$L{$opt}->{$key} = \"$arg\"\n") - if $debug; - $linkage{$opt}->{$key} = $arg; - } - elsif ( ref($linkage{$opt}) eq 'CODE' ) { - print STDERR ("=> &L{$opt}(\"$opt\"", - $ctl->[CTL_DEST] == CTL_DEST_HASH ? ", \"$key\"" : "", - ", \"$arg\")\n") - if $debug; - my $eval_error = do { - local $@; - local $SIG{__DIE__} = 'DEFAULT'; - eval { - &{$linkage{$opt}} - (Getopt::Long::CallBack->new - (name => $opt, - ctl => $ctl, - opctl => \%opctl, - linkage => \%linkage, - prefix => $prefix, - ), - $ctl->[CTL_DEST] == CTL_DEST_HASH ? ($key) : (), - $arg); - }; - $@; - }; - print STDERR ("=> die($eval_error)\n") - if $debug && $eval_error ne ''; - if ( $eval_error =~ /^!/ ) { - if ( $eval_error =~ /^!FINISH\b/ ) { - $goon = 0; - } - } - elsif ( $eval_error ne '' ) { - warn ($eval_error); - $error++; - } - } - else { - print STDERR ("Invalid REF type \"", ref($linkage{$opt}), - "\" in linkage\n"); - die("Getopt::Long -- internal error!\n"); - } - } - # No entry in linkage means entry in userlinkage. - elsif ( $ctl->[CTL_DEST] == CTL_DEST_ARRAY ) { - if ( defined $userlinkage->{$opt} ) { - print STDERR ("=> push(\@{\$L{$opt}}, \"$arg\")\n") - if $debug; - push (@{$userlinkage->{$opt}}, $arg); - } - else { - print STDERR ("=>\$L{$opt} = [\"$arg\"]\n") - if $debug; - $userlinkage->{$opt} = [$arg]; - } - } - elsif ( $ctl->[CTL_DEST] == CTL_DEST_HASH ) { - if ( defined $userlinkage->{$opt} ) { - print STDERR ("=> \$L{$opt}->{$key} = \"$arg\"\n") - if $debug; - $userlinkage->{$opt}->{$key} = $arg; - } - else { - print STDERR ("=>\$L{$opt} = {$key => \"$arg\"}\n") - if $debug; - $userlinkage->{$opt} = {$key => $arg}; - } - } - else { - if ( $ctl->[CTL_TYPE] eq '+' ) { - print STDERR ("=> \$L{$opt} += \"$arg\"\n") - if $debug; - if ( defined $userlinkage->{$opt} ) { - $userlinkage->{$opt} += $arg; - } - else { - $userlinkage->{$opt} = $arg; - } - } - else { - print STDERR ("=>\$L{$opt} = \"$arg\"\n") if $debug; - $userlinkage->{$opt} = $arg; - } - } - - $argcnt++; - last if $argcnt >= $ctl->[CTL_AMAX] && $ctl->[CTL_AMAX] != -1; - undef($arg); - - # Need more args? - if ( $argcnt < $ctl->[CTL_AMIN] ) { - if ( @$argv ) { - if ( ValidValue($ctl, $argv->[0], 1, $argend, $prefix) ) { - $arg = shift(@$argv); - if ( $ctl->[CTL_TYPE] =~ /^[iIo]$/ ) { - $arg =~ tr/_//d; - $arg = $ctl->[CTL_TYPE] eq 'o' && $arg =~ /^0/ - ? oct($arg) - : 0+$arg - } - ($key,$arg) = $arg =~ /^([^=]+)=(.*)/ - if $ctl->[CTL_DEST] == CTL_DEST_HASH; - next; - } - warn("Value \"$$argv[0]\" invalid for option $opt\n"); - $error++; - } - else { - warn("Insufficient arguments for option $opt\n"); - $error++; - } - } - - # Any more args? - if ( @$argv && ValidValue($ctl, $argv->[0], 0, $argend, $prefix) ) { - $arg = shift(@$argv); - if ( $ctl->[CTL_TYPE] =~ /^[iIo]$/ ) { - $arg =~ tr/_//d; - $arg = $ctl->[CTL_TYPE] eq 'o' && $arg =~ /^0/ - ? oct($arg) - : 0+$arg - } - ($key,$arg) = $arg =~ /^([^=]+)=(.*)/ - if $ctl->[CTL_DEST] == CTL_DEST_HASH; - next; - } - } - } - - # Not an option. Save it if we $PERMUTE and don't have a <>. - elsif ( $order == $PERMUTE ) { - # Try non-options call-back. - my $cb; - if ( defined ($cb = $linkage{'<>'}) ) { - print STDERR ("=> &L{$tryopt}(\"$tryopt\")\n") - if $debug; - my $eval_error = do { - local $@; - local $SIG{__DIE__} = 'DEFAULT'; - eval { - # The arg to <> cannot be the CallBack object - # since it may be passed to other modules that - # get confused (e.g., Archive::Tar). Well, - # it's not relevant for this callback anyway. - &$cb($tryopt); - }; - $@; - }; - print STDERR ("=> die($eval_error)\n") - if $debug && $eval_error ne ''; - if ( $eval_error =~ /^!/ ) { - if ( $eval_error =~ /^!FINISH\b/ ) { - $goon = 0; - } - } - elsif ( $eval_error ne '' ) { - warn ($eval_error); - $error++; - } - } - else { - print STDERR ("=> saving \"$tryopt\" ", - "(not an option, may permute)\n") if $debug; - push (@ret, $tryopt); - } - next; - } - - # ...otherwise, terminate. - else { - # Push this one back and exit. - unshift (@$argv, $tryopt); - return ($error == 0); - } - - } - - # Finish. - if ( @ret && $order == $PERMUTE ) { - # Push back accumulated arguments - print STDERR ("=> restoring \"", join('" "', @ret), "\"\n") - if $debug; - unshift (@$argv, @ret); - } - - return ($error == 0); -} - -# A readable representation of what's in an optbl. -sub OptCtl ($) { - my ($v) = @_; - my @v = map { defined($_) ? ($_) : ("<undef>") } @$v; - "[". - join(",", - "\"$v[CTL_TYPE]\"", - "\"$v[CTL_CNAME]\"", - "\"$v[CTL_DEFAULT]\"", - ("\$","\@","\%","\&")[$v[CTL_DEST] || 0], - $v[CTL_AMIN] || '', - $v[CTL_AMAX] || '', -# $v[CTL_RANGE] || '', -# $v[CTL_REPEAT] || '', - ). "]"; -} - -# Parse an option specification and fill the tables. -sub ParseOptionSpec ($$) { - my ($opt, $opctl) = @_; - - # Match option spec. - if ( $opt !~ m;^ - ( - # Option name - (?: \w+[-\w]* ) - # Alias names, or "?" - (?: \| (?: \? | \w[-\w]* ) )* - # Aliases - (?: \| (?: [^-|!+=:][^|!+=:]* )? )* - )? - ( - # Either modifiers ... - [!+] - | - # ... or a value/dest/repeat specification - [=:] [ionfs] [@%]? (?: \{\d*,?\d*\} )? - | - # ... or an optional-with-default spec - : (?: -?\d+ | \+ ) [@%]? - )? - $;x ) { - return (undef, "Error in option spec: \"$opt\"\n"); - } - - my ($names, $spec) = ($1, $2); - $spec = '' unless defined $spec; - - # $orig keeps track of the primary name the user specified. - # This name will be used for the internal or external linkage. - # In other words, if the user specifies "FoO|BaR", it will - # match any case combinations of 'foo' and 'bar', but if a global - # variable needs to be set, it will be $opt_FoO in the exact case - # as specified. - my $orig; - - my @names; - if ( defined $names ) { - @names = split (/\|/, $names); - $orig = $names[0]; - } - else { - @names = (''); - $orig = ''; - } - - # Construct the opctl entries. - my $entry; - if ( $spec eq '' || $spec eq '+' || $spec eq '!' ) { - # Fields are hard-wired here. - $entry = [$spec,$orig,undef,CTL_DEST_SCALAR,0,0]; - } - elsif ( $spec =~ /^:(-?\d+|\+)([@%])?$/ ) { - my $def = $1; - my $dest = $2; - my $type = $def eq '+' ? 'I' : 'i'; - $dest ||= '$'; - $dest = $dest eq '@' ? CTL_DEST_ARRAY - : $dest eq '%' ? CTL_DEST_HASH : CTL_DEST_SCALAR; - # Fields are hard-wired here. - $entry = [$type,$orig,$def eq '+' ? undef : $def, - $dest,0,1]; - } - else { - my ($mand, $type, $dest) = - $spec =~ /^([=:])([ionfs])([@%])?(\{(\d+)?(,)?(\d+)?\})?$/; - return (undef, "Cannot repeat while bundling: \"$opt\"\n") - if $bundling && defined($4); - my ($mi, $cm, $ma) = ($5, $6, $7); - return (undef, "{0} is useless in option spec: \"$opt\"\n") - if defined($mi) && !$mi && !defined($ma) && !defined($cm); - - $type = 'i' if $type eq 'n'; - $dest ||= '$'; - $dest = $dest eq '@' ? CTL_DEST_ARRAY - : $dest eq '%' ? CTL_DEST_HASH : CTL_DEST_SCALAR; - # Default minargs to 1/0 depending on mand status. - $mi = $mand eq '=' ? 1 : 0 unless defined $mi; - # Adjust mand status according to minargs. - $mand = $mi ? '=' : ':'; - # Adjust maxargs. - $ma = $mi ? $mi : 1 unless defined $ma || defined $cm; - return (undef, "Max must be greater than zero in option spec: \"$opt\"\n") - if defined($ma) && !$ma; - return (undef, "Max less than min in option spec: \"$opt\"\n") - if defined($ma) && $ma < $mi; - - # Fields are hard-wired here. - $entry = [$type,$orig,undef,$dest,$mi,$ma||-1]; - } - - # Process all names. First is canonical, the rest are aliases. - my $dups = ''; - foreach ( @names ) { - - $_ = lc ($_) - if $ignorecase > (($bundling && length($_) == 1) ? 1 : 0); - - if ( exists $opctl->{$_} ) { - $dups .= "Duplicate specification \"$opt\" for option \"$_\"\n"; - } - - if ( $spec eq '!' ) { - $opctl->{"no$_"} = $entry; - $opctl->{"no-$_"} = $entry; - $opctl->{$_} = [@$entry]; - $opctl->{$_}->[CTL_TYPE] = ''; - } - else { - $opctl->{$_} = $entry; - } - } - - if ( $dups && $^W ) { - foreach ( split(/\n+/, $dups) ) { - warn($_."\n"); - } - } - ($names[0], $orig); -} - -# Option lookup. -sub FindOption ($$$$$) { - - # returns (1, $opt, $ctl, $arg, $key) if okay, - # returns (1, undef) if option in error, - # returns (0) otherwise. - - my ($argv, $prefix, $argend, $opt, $opctl) = @_; - - print STDERR ("=> find \"$opt\"\n") if $debug; - - return (0) unless defined($opt); - return (0) unless $opt =~ /^($prefix)(.*)$/s; - return (0) if $opt eq "-" && !defined $opctl->{''}; - - $opt = substr( $opt, length($1) ); # retain taintedness - my $starter = $1; - - print STDERR ("=> split \"$starter\"+\"$opt\"\n") if $debug; - - my $optarg; # value supplied with --opt=value - my $rest; # remainder from unbundling - - # If it is a long option, it may include the value. - # With getopt_compat, only if not bundling. - if ( ($starter=~/^$longprefix$/ - || ($getopt_compat && ($bundling == 0 || $bundling == 2))) - && (my $oppos = index($opt, '=', 1)) > 0) { - my $optorg = $opt; - $opt = substr($optorg, 0, $oppos); - $optarg = substr($optorg, $oppos + 1); # retain tainedness - print STDERR ("=> option \"", $opt, - "\", optarg = \"$optarg\"\n") if $debug; - } - - #### Look it up ### - - my $tryopt = $opt; # option to try - - if ( ( $bundling || $bundling_values ) && $starter eq '-' ) { - - # To try overrides, obey case ignore. - $tryopt = $ignorecase ? lc($opt) : $opt; - - # If bundling == 2, long options can override bundles. - if ( $bundling == 2 && length($tryopt) > 1 - && defined ($opctl->{$tryopt}) ) { - print STDERR ("=> $starter$tryopt overrides unbundling\n") - if $debug; - } - - # If bundling_values, option may be followed by the value. - elsif ( $bundling_values ) { - $tryopt = $opt; - # Unbundle single letter option. - $rest = length ($tryopt) > 0 ? substr ($tryopt, 1) : ''; - $tryopt = substr ($tryopt, 0, 1); - $tryopt = lc ($tryopt) if $ignorecase > 1; - print STDERR ("=> $starter$tryopt unbundled from ", - "$starter$tryopt$rest\n") if $debug; - # Whatever remains may not be considered an option. - $optarg = $rest eq '' ? undef : $rest; - $rest = undef; - } - - # Split off a single letter and leave the rest for - # further processing. - else { - $tryopt = $opt; - # Unbundle single letter option. - $rest = length ($tryopt) > 0 ? substr ($tryopt, 1) : ''; - $tryopt = substr ($tryopt, 0, 1); - $tryopt = lc ($tryopt) if $ignorecase > 1; - print STDERR ("=> $starter$tryopt unbundled from ", - "$starter$tryopt$rest\n") if $debug; - $rest = undef unless $rest ne ''; - } - } - - # Try auto-abbreviation. - elsif ( $autoabbrev && $opt ne "" ) { - # Sort the possible long option names. - my @names = sort(keys (%$opctl)); - # Downcase if allowed. - $opt = lc ($opt) if $ignorecase; - $tryopt = $opt; - # Turn option name into pattern. - my $pat = quotemeta ($opt); - # Look up in option names. - my @hits = grep (/^$pat/, @names); - print STDERR ("=> ", scalar(@hits), " hits (@hits) with \"$pat\" ", - "out of ", scalar(@names), "\n") if $debug; - - # Check for ambiguous results. - unless ( (@hits <= 1) || (grep ($_ eq $opt, @hits) == 1) ) { - # See if all matches are for the same option. - my %hit; - foreach ( @hits ) { - my $hit = $opctl->{$_}->[CTL_CNAME] - if defined $opctl->{$_}->[CTL_CNAME]; - $hit = "no" . $hit if $opctl->{$_}->[CTL_TYPE] eq '!'; - $hit{$hit} = 1; - } - # Remove auto-supplied options (version, help). - if ( keys(%hit) == 2 ) { - if ( $auto_version && exists($hit{version}) ) { - delete $hit{version}; - } - elsif ( $auto_help && exists($hit{help}) ) { - delete $hit{help}; - } - } - # Now see if it really is ambiguous. - unless ( keys(%hit) == 1 ) { - return (0) if $passthrough; - warn ("Option ", $opt, " is ambiguous (", - join(", ", @hits), ")\n"); - $error++; - return (1, undef); - } - @hits = keys(%hit); - } - - # Complete the option name, if appropriate. - if ( @hits == 1 && $hits[0] ne $opt ) { - $tryopt = $hits[0]; - $tryopt = lc ($tryopt) - if $ignorecase > (($bundling && length($tryopt) == 1) ? 1 : 0); - print STDERR ("=> option \"$opt\" -> \"$tryopt\"\n") - if $debug; - } - } - - # Map to all lowercase if ignoring case. - elsif ( $ignorecase ) { - $tryopt = lc ($opt); - } - - # Check validity by fetching the info. - my $ctl = $opctl->{$tryopt}; - unless ( defined $ctl ) { - return (0) if $passthrough; - # Pretend one char when bundling. - if ( $bundling == 1 && length($starter) == 1 ) { - $opt = substr($opt,0,1); - unshift (@$argv, $starter.$rest) if defined $rest; - } - if ( $opt eq "" ) { - warn ("Missing option after ", $starter, "\n"); - } - else { - warn ("Unknown option: ", $opt, "\n"); - } - $error++; - return (1, undef); - } - # Apparently valid. - $opt = $tryopt; - print STDERR ("=> found ", OptCtl($ctl), - " for \"", $opt, "\"\n") if $debug; - - #### Determine argument status #### - - # If it is an option w/o argument, we're almost finished with it. - my $type = $ctl->[CTL_TYPE]; - my $arg; - - if ( $type eq '' || $type eq '!' || $type eq '+' ) { - if ( defined $optarg ) { - return (0) if $passthrough; - warn ("Option ", $opt, " does not take an argument\n"); - $error++; - undef $opt; - undef $optarg if $bundling_values; - } - elsif ( $type eq '' || $type eq '+' ) { - # Supply explicit value. - $arg = 1; - } - else { - $opt =~ s/^no-?//i; # strip NO prefix - $arg = 0; # supply explicit value - } - unshift (@$argv, $starter.$rest) if defined $rest; - return (1, $opt, $ctl, $arg); - } - - # Get mandatory status and type info. - my $mand = $ctl->[CTL_AMIN]; - - # Check if there is an option argument available. - if ( $gnu_compat ) { - my $optargtype = 0; # none, 1 = empty, 2 = nonempty, 3 = aux - if ( defined($optarg) ) { - $optargtype = (length($optarg) == 0) ? 1 : 2; - } - elsif ( defined $rest || @$argv > 0 ) { - # GNU getopt_long() does not accept the (optional) - # argument to be passed to the option without = sign. - # We do, since not doing so breaks existing scripts. - $optargtype = 3; - } - if(($optargtype == 0) && !$mand) { - my $val - = defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] - : $type eq 's' ? '' - : 0; - return (1, $opt, $ctl, $val); - } - return (1, $opt, $ctl, $type eq 's' ? '' : 0) - if $optargtype == 1; # --foo= -> return nothing - } - - # Check if there is an option argument available. - if ( defined $optarg - ? ($optarg eq '') - : !(defined $rest || @$argv > 0) ) { - # Complain if this option needs an argument. -# if ( $mand && !($type eq 's' ? defined($optarg) : 0) ) { - if ( $mand ) { - return (0) if $passthrough; - warn ("Option ", $opt, " requires an argument\n"); - $error++; - return (1, undef); - } - if ( $type eq 'I' ) { - # Fake incremental type. - my @c = @$ctl; - $c[CTL_TYPE] = '+'; - return (1, $opt, \@c, 1); - } - return (1, $opt, $ctl, - defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] : - $type eq 's' ? '' : 0); - } - - # Get (possibly optional) argument. - $arg = (defined $rest ? $rest - : (defined $optarg ? $optarg : shift (@$argv))); - - # Get key if this is a "name=value" pair for a hash option. - my $key; - if ($ctl->[CTL_DEST] == CTL_DEST_HASH && defined $arg) { - ($key, $arg) = ($arg =~ /^([^=]*)=(.*)$/s) ? ($1, $2) - : ($arg, defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] : - ($mand ? undef : ($type eq 's' ? "" : 1))); - if (! defined $arg) { - warn ("Option $opt, key \"$key\", requires a value\n"); - $error++; - # Push back. - unshift (@$argv, $starter.$rest) if defined $rest; - return (1, undef); - } - } - - #### Check if the argument is valid for this option #### - - my $key_valid = $ctl->[CTL_DEST] == CTL_DEST_HASH ? "[^=]+=" : ""; - - if ( $type eq 's' ) { # string - # A mandatory string takes anything. - return (1, $opt, $ctl, $arg, $key) if $mand; - - # Same for optional string as a hash value - return (1, $opt, $ctl, $arg, $key) - if $ctl->[CTL_DEST] == CTL_DEST_HASH; - - # An optional string takes almost anything. - return (1, $opt, $ctl, $arg, $key) - if defined $optarg || defined $rest; - return (1, $opt, $ctl, $arg, $key) if $arg eq "-"; # ?? - - # Check for option or option list terminator. - if ($arg eq $argend || - $arg =~ /^$prefix.+/) { - # Push back. - unshift (@$argv, $arg); - # Supply empty value. - $arg = ''; - } - } - - elsif ( $type eq 'i' # numeric/integer - || $type eq 'I' # numeric/integer w/ incr default - || $type eq 'o' ) { # dec/oct/hex/bin value - - my $o_valid = $type eq 'o' ? PAT_XINT : PAT_INT; - - if ( $bundling && defined $rest - && $rest =~ /^($key_valid)($o_valid)(.*)$/si ) { - ($key, $arg, $rest) = ($1, $2, $+); - chop($key) if $key; - $arg = ($type eq 'o' && $arg =~ /^0/) ? oct($arg) : 0+$arg; - unshift (@$argv, $starter.$rest) if defined $rest && $rest ne ''; - } - elsif ( $arg =~ /^$o_valid$/si ) { - $arg =~ tr/_//d; - $arg = ($type eq 'o' && $arg =~ /^0/) ? oct($arg) : 0+$arg; - } - else { - if ( defined $optarg || $mand ) { - if ( $passthrough ) { - unshift (@$argv, defined $rest ? $starter.$rest : $arg) - unless defined $optarg; - return (0); - } - warn ("Value \"", $arg, "\" invalid for option ", - $opt, " (", - $type eq 'o' ? "extended " : '', - "number expected)\n"); - $error++; - # Push back. - unshift (@$argv, $starter.$rest) if defined $rest; - return (1, undef); - } - else { - # Push back. - unshift (@$argv, defined $rest ? $starter.$rest : $arg); - if ( $type eq 'I' ) { - # Fake incremental type. - my @c = @$ctl; - $c[CTL_TYPE] = '+'; - return (1, $opt, \@c, 1); - } - # Supply default value. - $arg = defined($ctl->[CTL_DEFAULT]) ? $ctl->[CTL_DEFAULT] : 0; - } - } - } - - elsif ( $type eq 'f' ) { # real number, int is also ok - my $o_valid = PAT_FLOAT; - if ( $bundling && defined $rest && - $rest =~ /^($key_valid)($o_valid)(.*)$/s ) { - $arg =~ tr/_//d; - ($key, $arg, $rest) = ($1, $2, $+); - chop($key) if $key; - unshift (@$argv, $starter.$rest) if defined $rest && $rest ne ''; - } - elsif ( $arg =~ /^$o_valid$/ ) { - $arg =~ tr/_//d; - } - else { - if ( defined $optarg || $mand ) { - if ( $passthrough ) { - unshift (@$argv, defined $rest ? $starter.$rest : $arg) - unless defined $optarg; - return (0); - } - warn ("Value \"", $arg, "\" invalid for option ", - $opt, " (real number expected)\n"); - $error++; - # Push back. - unshift (@$argv, $starter.$rest) if defined $rest; - return (1, undef); - } - else { - # Push back. - unshift (@$argv, defined $rest ? $starter.$rest : $arg); - # Supply default value. - $arg = 0.0; - } - } - } - else { - die("Getopt::Long internal error (Can't happen)\n"); - } - return (1, $opt, $ctl, $arg, $key); -} - -sub ValidValue ($$$$$) { - my ($ctl, $arg, $mand, $argend, $prefix) = @_; - - if ( $ctl->[CTL_DEST] == CTL_DEST_HASH ) { - return 0 unless $arg =~ /[^=]+=(.*)/; - $arg = $1; - } - - my $type = $ctl->[CTL_TYPE]; - - if ( $type eq 's' ) { # string - # A mandatory string takes anything. - return (1) if $mand; - - return (1) if $arg eq "-"; - - # Check for option or option list terminator. - return 0 if $arg eq $argend || $arg =~ /^$prefix.+/; - return 1; - } - - elsif ( $type eq 'i' # numeric/integer - || $type eq 'I' # numeric/integer w/ incr default - || $type eq 'o' ) { # dec/oct/hex/bin value - - my $o_valid = $type eq 'o' ? PAT_XINT : PAT_INT; - return $arg =~ /^$o_valid$/si; - } - - elsif ( $type eq 'f' ) { # real number, int is also ok - my $o_valid = PAT_FLOAT; - return $arg =~ /^$o_valid$/; - } - die("ValidValue: Cannot happen\n"); -} - -# Getopt::Long Configuration. -sub Configure (@) { - my (@options) = @_; - - my $prevconfig = - [ $error, $debug, $major_version, $minor_version, $caller, - $autoabbrev, $getopt_compat, $ignorecase, $bundling, $order, - $gnu_compat, $passthrough, $genprefix, $auto_version, $auto_help, - $longprefix, $bundling_values ]; - - if ( ref($options[0]) eq 'ARRAY' ) { - ( $error, $debug, $major_version, $minor_version, $caller, - $autoabbrev, $getopt_compat, $ignorecase, $bundling, $order, - $gnu_compat, $passthrough, $genprefix, $auto_version, $auto_help, - $longprefix, $bundling_values ) = @{shift(@options)}; - } - - my $opt; - foreach $opt ( @options ) { - my $try = lc ($opt); - my $action = 1; - if ( $try =~ /^no_?(.*)$/s ) { - $action = 0; - $try = $+; - } - if ( ($try eq 'default' or $try eq 'defaults') && $action ) { - ConfigDefaults (); - } - elsif ( ($try eq 'posix_default' or $try eq 'posix_defaults') ) { - local $ENV{POSIXLY_CORRECT}; - $ENV{POSIXLY_CORRECT} = 1 if $action; - ConfigDefaults (); - } - elsif ( $try eq 'auto_abbrev' or $try eq 'autoabbrev' ) { - $autoabbrev = $action; - } - elsif ( $try eq 'getopt_compat' ) { - $getopt_compat = $action; - $genprefix = $action ? "(--|-|\\+)" : "(--|-)"; - } - elsif ( $try eq 'gnu_getopt' ) { - if ( $action ) { - $gnu_compat = 1; - $bundling = 1; - $getopt_compat = 0; - $genprefix = "(--|-)"; - $order = $PERMUTE; - $bundling_values = 0; - } - } - elsif ( $try eq 'gnu_compat' ) { - $gnu_compat = $action; - $bundling = 0; - $bundling_values = 1; - } - elsif ( $try =~ /^(auto_?)?version$/ ) { - $auto_version = $action; - } - elsif ( $try =~ /^(auto_?)?help$/ ) { - $auto_help = $action; - } - elsif ( $try eq 'ignorecase' or $try eq 'ignore_case' ) { - $ignorecase = $action; - } - elsif ( $try eq 'ignorecase_always' or $try eq 'ignore_case_always' ) { - $ignorecase = $action ? 2 : 0; - } - elsif ( $try eq 'bundling' ) { - $bundling = $action; - $bundling_values = 0 if $action; - } - elsif ( $try eq 'bundling_override' ) { - $bundling = $action ? 2 : 0; - $bundling_values = 0 if $action; - } - elsif ( $try eq 'bundling_values' ) { - $bundling_values = $action; - $bundling = 0 if $action; - } - elsif ( $try eq 'require_order' ) { - $order = $action ? $REQUIRE_ORDER : $PERMUTE; - } - elsif ( $try eq 'permute' ) { - $order = $action ? $PERMUTE : $REQUIRE_ORDER; - } - elsif ( $try eq 'pass_through' or $try eq 'passthrough' ) { - $passthrough = $action; - } - elsif ( $try =~ /^prefix=(.+)$/ && $action ) { - $genprefix = $1; - # Turn into regexp. Needs to be parenthesized! - $genprefix = "(" . quotemeta($genprefix) . ")"; - eval { '' =~ /$genprefix/; }; - die("Getopt::Long: invalid pattern \"$genprefix\"\n") if $@; - } - elsif ( $try =~ /^prefix_pattern=(.+)$/ && $action ) { - $genprefix = $1; - # Parenthesize if needed. - $genprefix = "(" . $genprefix . ")" - unless $genprefix =~ /^\(.*\)$/; - eval { '' =~ m"$genprefix"; }; - die("Getopt::Long: invalid pattern \"$genprefix\"\n") if $@; - } - elsif ( $try =~ /^long_prefix_pattern=(.+)$/ && $action ) { - $longprefix = $1; - # Parenthesize if needed. - $longprefix = "(" . $longprefix . ")" - unless $longprefix =~ /^\(.*\)$/; - eval { '' =~ m"$longprefix"; }; - die("Getopt::Long: invalid long prefix pattern \"$longprefix\"\n") if $@; - } - elsif ( $try eq 'debug' ) { - $debug = $action; - } - else { - die("Getopt::Long: unknown or erroneous config parameter \"$opt\"\n") - } - } - $prevconfig; -} - -# Deprecated name. -sub config (@) { - Configure (@_); -} - -# Issue a standard message for --version. -# -# The arguments are mostly the same as for Pod::Usage::pod2usage: -# -# - a number (exit value) -# - a string (lead in message) -# - a hash with options. See Pod::Usage for details. -# -sub VersionMessage(@) { - # Massage args. - my $pa = setup_pa_args("version", @_); - - my $v = $main::VERSION; - my $fh = $pa->{-output} || - ( ($pa->{-exitval} eq "NOEXIT" || $pa->{-exitval} < 2) ? \*STDOUT : \*STDERR ); - - print $fh (defined($pa->{-message}) ? $pa->{-message} : (), - $0, defined $v ? " version $v" : (), - "\n", - "(", __PACKAGE__, "::", "GetOptions", - " version ", - defined($Getopt::Long::VERSION_STRING) - ? $Getopt::Long::VERSION_STRING : $VERSION, ";", - " Perl version ", - $] >= 5.006 ? sprintf("%vd", $^V) : $], - ")\n"); - exit($pa->{-exitval}) unless $pa->{-exitval} eq "NOEXIT"; -} - -# Issue a standard message for --help. -# -# The arguments are the same as for Pod::Usage::pod2usage: -# -# - a number (exit value) -# - a string (lead in message) -# - a hash with options. See Pod::Usage for details. -# -sub HelpMessage(@) { - eval { - require Pod::Usage; - import Pod::Usage; - 1; - } || die("Cannot provide help: cannot load Pod::Usage\n"); - - # Note that pod2usage will issue a warning if -exitval => NOEXIT. - pod2usage(setup_pa_args("help", @_)); - -} - -# Helper routine to set up a normalized hash ref to be used as -# argument to pod2usage. -sub setup_pa_args($@) { - my $tag = shift; # who's calling - - # If called by direct binding to an option, it will get the option - # name and value as arguments. Remove these, if so. - @_ = () if @_ == 2 && $_[0] eq $tag; - - my $pa; - if ( @_ > 1 ) { - $pa = { @_ }; - } - else { - $pa = shift || {}; - } - - # At this point, $pa can be a number (exit value), string - # (message) or hash with options. - - if ( UNIVERSAL::isa($pa, 'HASH') ) { - # Get rid of -msg vs. -message ambiguity. - $pa->{-message} = $pa->{-msg}; - delete($pa->{-msg}); - } - elsif ( $pa =~ /^-?\d+$/ ) { - $pa = { -exitval => $pa }; - } - else { - $pa = { -message => $pa }; - } - - # These are _our_ defaults. - $pa->{-verbose} = 0 unless exists($pa->{-verbose}); - $pa->{-exitval} = 0 unless exists($pa->{-exitval}); - $pa; -} - -# Sneak way to know what version the user requested. -sub VERSION { - $requested_version = $_[1]; - shift->SUPER::VERSION(@_); -} - -package Getopt::Long::CallBack; - -sub new { - my ($pkg, %atts) = @_; - bless { %atts }, $pkg; -} - -sub name { - my $self = shift; - ''.$self->{name}; -} - -use overload - # Treat this object as an ordinary string for legacy API. - '""' => \&name, - fallback => 1; - -1; - -################ Documentation ################ - -=head1 NAME - -Getopt::Long - Extended processing of command line options - -=head1 SYNOPSIS - - use Getopt::Long; - my $data = "file.dat"; - my $length = 24; - my $verbose; - GetOptions ("length=i" => \$length, # numeric - "file=s" => \$data, # string - "verbose" => \$verbose) # flag - or die("Error in command line arguments\n"); - -=head1 DESCRIPTION - -The Getopt::Long module implements an extended getopt function called -GetOptions(). It parses the command line from C<@ARGV>, recognizing -and removing specified options and their possible values. - -This function adheres to the POSIX syntax for command -line options, with GNU extensions. In general, this means that options -have long names instead of single letters, and are introduced with a -double dash "--". Support for bundling of command line options, as was -the case with the more traditional single-letter approach, is provided -but not enabled by default. - -=head1 Command Line Options, an Introduction - -Command line operated programs traditionally take their arguments from -the command line, for example filenames or other information that the -program needs to know. Besides arguments, these programs often take -command line I<options> as well. Options are not necessary for the -program to work, hence the name 'option', but are used to modify its -default behaviour. For example, a program could do its job quietly, -but with a suitable option it could provide verbose information about -what it did. - -Command line options come in several flavours. Historically, they are -preceded by a single dash C<->, and consist of a single letter. - - -l -a -c - -Usually, these single-character options can be bundled: - - -lac - -Options can have values, the value is placed after the option -character. Sometimes with whitespace in between, sometimes not: - - -s 24 -s24 - -Due to the very cryptic nature of these options, another style was -developed that used long names. So instead of a cryptic C<-l> one -could use the more descriptive C<--long>. To distinguish between a -bundle of single-character options and a long one, two dashes are used -to precede the option name. Early implementations of long options used -a plus C<+> instead. Also, option values could be specified either -like - - --size=24 - -or - - --size 24 - -The C<+> form is now obsolete and strongly deprecated. - -=head1 Getting Started with Getopt::Long - -Getopt::Long is the Perl5 successor of C<newgetopt.pl>. This was the -first Perl module that provided support for handling the new style of -command line options, in particular long option names, hence the Perl5 -name Getopt::Long. This module also supports single-character options -and bundling. - -To use Getopt::Long from a Perl program, you must include the -following line in your Perl program: - - use Getopt::Long; - -This will load the core of the Getopt::Long module and prepare your -program for using it. Most of the actual Getopt::Long code is not -loaded until you really call one of its functions. - -In the default configuration, options names may be abbreviated to -uniqueness, case does not matter, and a single dash is sufficient, -even for long option names. Also, options may be placed between -non-option arguments. See L<Configuring Getopt::Long> for more -details on how to configure Getopt::Long. - -=head2 Simple options - -The most simple options are the ones that take no values. Their mere -presence on the command line enables the option. Popular examples are: - - --all --verbose --quiet --debug - -Handling simple options is straightforward: - - my $verbose = ''; # option variable with default value (false) - my $all = ''; # option variable with default value (false) - GetOptions ('verbose' => \$verbose, 'all' => \$all); - -The call to GetOptions() parses the command line arguments that are -present in C<@ARGV> and sets the option variable to the value C<1> if -the option did occur on the command line. Otherwise, the option -variable is not touched. Setting the option value to true is often -called I<enabling> the option. - -The option name as specified to the GetOptions() function is called -the option I<specification>. Later we'll see that this specification -can contain more than just the option name. The reference to the -variable is called the option I<destination>. - -GetOptions() will return a true value if the command line could be -processed successfully. Otherwise, it will write error messages using -die() and warn(), and return a false result. - -=head2 A little bit less simple options - -Getopt::Long supports two useful variants of simple options: -I<negatable> options and I<incremental> options. - -A negatable option is specified with an exclamation mark C<!> after the -option name: - - my $verbose = ''; # option variable with default value (false) - GetOptions ('verbose!' => \$verbose); - -Now, using C<--verbose> on the command line will enable C<$verbose>, -as expected. But it is also allowed to use C<--noverbose>, which will -disable C<$verbose> by setting its value to C<0>. Using a suitable -default value, the program can find out whether C<$verbose> is false -by default, or disabled by using C<--noverbose>. - -An incremental option is specified with a plus C<+> after the -option name: - - my $verbose = ''; # option variable with default value (false) - GetOptions ('verbose+' => \$verbose); - -Using C<--verbose> on the command line will increment the value of -C<$verbose>. This way the program can keep track of how many times the -option occurred on the command line. For example, each occurrence of -C<--verbose> could increase the verbosity level of the program. - -=head2 Mixing command line option with other arguments - -Usually programs take command line options as well as other arguments, -for example, file names. It is good practice to always specify the -options first, and the other arguments last. Getopt::Long will, -however, allow the options and arguments to be mixed and 'filter out' -all the options before passing the rest of the arguments to the -program. To stop Getopt::Long from processing further arguments, -insert a double dash C<--> on the command line: - - --size 24 -- --all - -In this example, C<--all> will I<not> be treated as an option, but -passed to the program unharmed, in C<@ARGV>. - -=head2 Options with values - -For options that take values it must be specified whether the option -value is required or not, and what kind of value the option expects. - -Three kinds of values are supported: integer numbers, floating point -numbers, and strings. - -If the option value is required, Getopt::Long will take the -command line argument that follows the option and assign this to the -option variable. If, however, the option value is specified as -optional, this will only be done if that value does not look like a -valid command line option itself. - - my $tag = ''; # option variable with default value - GetOptions ('tag=s' => \$tag); - -In the option specification, the option name is followed by an equals -sign C<=> and the letter C<s>. The equals sign indicates that this -option requires a value. The letter C<s> indicates that this value is -an arbitrary string. Other possible value types are C<i> for integer -values, and C<f> for floating point values. Using a colon C<:> instead -of the equals sign indicates that the option value is optional. In -this case, if no suitable value is supplied, string valued options get -an empty string C<''> assigned, while numeric options are set to C<0>. - -=head2 Options with multiple values - -Options sometimes take several values. For example, a program could -use multiple directories to search for library files: - - --library lib/stdlib --library lib/extlib - -To accomplish this behaviour, simply specify an array reference as the -destination for the option: - - GetOptions ("library=s" => \@libfiles); - -Alternatively, you can specify that the option can have multiple -values by adding a "@", and pass a reference to a scalar as the -destination: - - GetOptions ("library=s@" => \$libfiles); - -Used with the example above, C<@libfiles> c.q. C<@$libfiles> would -contain two strings upon completion: C<"lib/stdlib"> and -C<"lib/extlib">, in that order. It is also possible to specify that -only integer or floating point numbers are acceptable values. - -Often it is useful to allow comma-separated lists of values as well as -multiple occurrences of the options. This is easy using Perl's split() -and join() operators: - - GetOptions ("library=s" => \@libfiles); - @libfiles = split(/,/,join(',',@libfiles)); - -Of course, it is important to choose the right separator string for -each purpose. - -Warning: What follows is an experimental feature. - -Options can take multiple values at once, for example - - --coordinates 52.2 16.4 --rgbcolor 255 255 149 - -This can be accomplished by adding a repeat specifier to the option -specification. Repeat specifiers are very similar to the C<{...}> -repeat specifiers that can be used with regular expression patterns. -For example, the above command line would be handled as follows: - - GetOptions('coordinates=f{2}' => \@coor, 'rgbcolor=i{3}' => \@color); - -The destination for the option must be an array or array reference. - -It is also possible to specify the minimal and maximal number of -arguments an option takes. C<foo=s{2,4}> indicates an option that -takes at least two and at most 4 arguments. C<foo=s{1,}> indicates one -or more values; C<foo:s{,}> indicates zero or more option values. - -=head2 Options with hash values - -If the option destination is a reference to a hash, the option will -take, as value, strings of the form I<key>C<=>I<value>. The value will -be stored with the specified key in the hash. - - GetOptions ("define=s" => \%defines); - -Alternatively you can use: - - GetOptions ("define=s%" => \$defines); - -When used with command line options: - - --define os=linux --define vendor=redhat - -the hash C<%defines> (or C<%$defines>) will contain two keys, C<"os"> -with value C<"linux"> and C<"vendor"> with value C<"redhat">. It is -also possible to specify that only integer or floating point numbers -are acceptable values. The keys are always taken to be strings. - -=head2 User-defined subroutines to handle options - -Ultimate control over what should be done when (actually: each time) -an option is encountered on the command line can be achieved by -designating a reference to a subroutine (or an anonymous subroutine) -as the option destination. When GetOptions() encounters the option, it -will call the subroutine with two or three arguments. The first -argument is the name of the option. (Actually, it is an object that -stringifies to the name of the option.) For a scalar or array destination, -the second argument is the value to be stored. For a hash destination, -the second argument is the key to the hash, and the third argument -the value to be stored. It is up to the subroutine to store the value, -or do whatever it thinks is appropriate. - -A trivial application of this mechanism is to implement options that -are related to each other. For example: - - my $verbose = ''; # option variable with default value (false) - GetOptions ('verbose' => \$verbose, - 'quiet' => sub { $verbose = 0 }); - -Here C<--verbose> and C<--quiet> control the same variable -C<$verbose>, but with opposite values. - -If the subroutine needs to signal an error, it should call die() with -the desired error message as its argument. GetOptions() will catch the -die(), issue the error message, and record that an error result must -be returned upon completion. - -If the text of the error message starts with an exclamation mark C<!> -it is interpreted specially by GetOptions(). There is currently one -special command implemented: C<die("!FINISH")> will cause GetOptions() -to stop processing options, as if it encountered a double dash C<-->. - -In version 2.37 the first argument to the callback function was -changed from string to object. This was done to make room for -extensions and more detailed control. The object stringifies to the -option name so this change should not introduce compatibility -problems. - -Here is an example of how to access the option name and value from within -a subroutine: - - GetOptions ('opt=i' => \&handler); - sub handler { - my ($opt_name, $opt_value) = @_; - print("Option name is $opt_name and value is $opt_value\n"); - } - -=head2 Options with multiple names - -Often it is user friendly to supply alternate mnemonic names for -options. For example C<--height> could be an alternate name for -C<--length>. Alternate names can be included in the option -specification, separated by vertical bar C<|> characters. To implement -the above example: - - GetOptions ('length|height=f' => \$length); - -The first name is called the I<primary> name, the other names are -called I<aliases>. When using a hash to store options, the key will -always be the primary name. - -Multiple alternate names are possible. - -=head2 Case and abbreviations - -Without additional configuration, GetOptions() will ignore the case of -option names, and allow the options to be abbreviated to uniqueness. - - GetOptions ('length|height=f' => \$length, "head" => \$head); - -This call will allow C<--l> and C<--L> for the length option, but -requires a least C<--hea> and C<--hei> for the head and height options. - -=head2 Summary of Option Specifications - -Each option specifier consists of two parts: the name specification -and the argument specification. - -The name specification contains the name of the option, optionally -followed by a list of alternative names separated by vertical bar -characters. - - length option name is "length" - length|size|l name is "length", aliases are "size" and "l" - -The argument specification is optional. If omitted, the option is -considered boolean, a value of 1 will be assigned when the option is -used on the command line. - -The argument specification can be - -=over 4 - -=item ! - -The option does not take an argument and may be negated by prefixing -it with "no" or "no-". E.g. C<"foo!"> will allow C<--foo> (a value of -1 will be assigned) as well as C<--nofoo> and C<--no-foo> (a value of -0 will be assigned). If the option has aliases, this applies to the -aliases as well. - -Using negation on a single letter option when bundling is in effect is -pointless and will result in a warning. - -=item + - -The option does not take an argument and will be incremented by 1 -every time it appears on the command line. E.g. C<"more+">, when used -with C<--more --more --more>, will increment the value three times, -resulting in a value of 3 (provided it was 0 or undefined at first). - -The C<+> specifier is ignored if the option destination is not a scalar. - -=item = I<type> [ I<desttype> ] [ I<repeat> ] - -The option requires an argument of the given type. Supported types -are: - -=over 4 - -=item s - -String. An arbitrary sequence of characters. It is valid for the -argument to start with C<-> or C<-->. - -=item i - -Integer. An optional leading plus or minus sign, followed by a -sequence of digits. - -=item o - -Extended integer, Perl style. This can be either an optional leading -plus or minus sign, followed by a sequence of digits, or an octal -string (a zero, optionally followed by '0', '1', .. '7'), or a -hexadecimal string (C<0x> followed by '0' .. '9', 'a' .. 'f', case -insensitive), or a binary string (C<0b> followed by a series of '0' -and '1'). - -=item f - -Real number. For example C<3.14>, C<-6.23E24> and so on. - -=back - -The I<desttype> can be C<@> or C<%> to specify that the option is -list or a hash valued. This is only needed when the destination for -the option value is not otherwise specified. It should be omitted when -not needed. - -The I<repeat> specifies the number of values this option takes per -occurrence on the command line. It has the format C<{> [ I<min> ] [ C<,> [ I<max> ] ] C<}>. - -I<min> denotes the minimal number of arguments. It defaults to 1 for -options with C<=> and to 0 for options with C<:>, see below. Note that -I<min> overrules the C<=> / C<:> semantics. - -I<max> denotes the maximum number of arguments. It must be at least -I<min>. If I<max> is omitted, I<but the comma is not>, there is no -upper bound to the number of argument values taken. - -=item : I<type> [ I<desttype> ] - -Like C<=>, but designates the argument as optional. -If omitted, an empty string will be assigned to string values options, -and the value zero to numeric options. - -Note that if a string argument starts with C<-> or C<-->, it will be -considered an option on itself. - -=item : I<number> [ I<desttype> ] - -Like C<:i>, but if the value is omitted, the I<number> will be assigned. - -=item : + [ I<desttype> ] - -Like C<:i>, but if the value is omitted, the current value for the -option will be incremented. - -=back - -=head1 Advanced Possibilities - -=head2 Object oriented interface - -Getopt::Long can be used in an object oriented way as well: - - use Getopt::Long; - $p = Getopt::Long::Parser->new; - $p->configure(...configuration options...); - if ($p->getoptions(...options descriptions...)) ... - if ($p->getoptionsfromarray( \@array, ...options descriptions...)) ... - -Configuration options can be passed to the constructor: - - $p = new Getopt::Long::Parser - config => [...configuration options...]; - -=head2 Thread Safety - -Getopt::Long is thread safe when using ithreads as of Perl 5.8. It is -I<not> thread safe when using the older (experimental and now -obsolete) threads implementation that was added to Perl 5.005. - -=head2 Documentation and help texts - -Getopt::Long encourages the use of Pod::Usage to produce help -messages. For example: - - use Getopt::Long; - use Pod::Usage; - - my $man = 0; - my $help = 0; - - GetOptions('help|?' => \$help, man => \$man) or pod2usage(2); - pod2usage(1) if $help; - pod2usage(-exitval => 0, -verbose => 2) if $man; - - __END__ - - =head1 NAME - - sample - Using Getopt::Long and Pod::Usage - - =head1 SYNOPSIS - - sample [options] [file ...] - - Options: - -help brief help message - -man full documentation - - =head1 OPTIONS - - =over 8 - - =item B<-help> - - Print a brief help message and exits. - - =item B<-man> - - Prints the manual page and exits. - - =back - - =head1 DESCRIPTION - - B<This program> will read the given input file(s) and do something - useful with the contents thereof. - - =cut - -See L<Pod::Usage> for details. - -=head2 Parsing options from an arbitrary array - -By default, GetOptions parses the options that are present in the -global array C<@ARGV>. A special entry C<GetOptionsFromArray> can be -used to parse options from an arbitrary array. - - use Getopt::Long qw(GetOptionsFromArray); - $ret = GetOptionsFromArray(\@myopts, ...); - -When used like this, options and their possible values are removed -from C<@myopts>, the global C<@ARGV> is not touched at all. - -The following two calls behave identically: - - $ret = GetOptions( ... ); - $ret = GetOptionsFromArray(\@ARGV, ... ); - -This also means that a first argument hash reference now becomes the -second argument: - - $ret = GetOptions(\%opts, ... ); - $ret = GetOptionsFromArray(\@ARGV, \%opts, ... ); - -=head2 Parsing options from an arbitrary string - -A special entry C<GetOptionsFromString> can be used to parse options -from an arbitrary string. - - use Getopt::Long qw(GetOptionsFromString); - $ret = GetOptionsFromString($string, ...); - -The contents of the string are split into arguments using a call to -C<Text::ParseWords::shellwords>. As with C<GetOptionsFromArray>, the -global C<@ARGV> is not touched. - -It is possible that, upon completion, not all arguments in the string -have been processed. C<GetOptionsFromString> will, when called in list -context, return both the return status and an array reference to any -remaining arguments: - - ($ret, $args) = GetOptionsFromString($string, ... ); - -If any arguments remain, and C<GetOptionsFromString> was not called in -list context, a message will be given and C<GetOptionsFromString> will -return failure. - -As with GetOptionsFromArray, a first argument hash reference now -becomes the second argument. - -=head2 Storing options values in a hash - -Sometimes, for example when there are a lot of options, having a -separate variable for each of them can be cumbersome. GetOptions() -supports, as an alternative mechanism, storing options values in a -hash. - -To obtain this, a reference to a hash must be passed I<as the first -argument> to GetOptions(). For each option that is specified on the -command line, the option value will be stored in the hash with the -option name as key. Options that are not actually used on the command -line will not be put in the hash, on other words, -C<exists($h{option})> (or defined()) can be used to test if an option -was used. The drawback is that warnings will be issued if the program -runs under C<use strict> and uses C<$h{option}> without testing with -exists() or defined() first. - - my %h = (); - GetOptions (\%h, 'length=i'); # will store in $h{length} - -For options that take list or hash values, it is necessary to indicate -this by appending an C<@> or C<%> sign after the type: - - GetOptions (\%h, 'colours=s@'); # will push to @{$h{colours}} - -To make things more complicated, the hash may contain references to -the actual destinations, for example: - - my $len = 0; - my %h = ('length' => \$len); - GetOptions (\%h, 'length=i'); # will store in $len - -This example is fully equivalent with: - - my $len = 0; - GetOptions ('length=i' => \$len); # will store in $len - -Any mixture is possible. For example, the most frequently used options -could be stored in variables while all other options get stored in the -hash: - - my $verbose = 0; # frequently referred - my $debug = 0; # frequently referred - my %h = ('verbose' => \$verbose, 'debug' => \$debug); - GetOptions (\%h, 'verbose', 'debug', 'filter', 'size=i'); - if ( $verbose ) { ... } - if ( exists $h{filter} ) { ... option 'filter' was specified ... } - -=head2 Bundling - -With bundling it is possible to set several single-character options -at once. For example if C<a>, C<v> and C<x> are all valid options, - - -vax - -will set all three. - -Getopt::Long supports three styles of bundling. To enable bundling, a -call to Getopt::Long::Configure is required. - -The simplest style of bundling can be enabled with: - - Getopt::Long::Configure ("bundling"); - -Configured this way, single-character options can be bundled but long -options B<must> always start with a double dash C<--> to avoid -ambiguity. For example, when C<vax>, C<a>, C<v> and C<x> are all valid -options, - - -vax - -will set C<a>, C<v> and C<x>, but - - --vax - -will set C<vax>. - -The second style of bundling lifts this restriction. It can be enabled -with: - - Getopt::Long::Configure ("bundling_override"); - -Now, C<-vax> will set the option C<vax>. - -In all of the above cases, option values may be inserted in the -bundle. For example: - - -h24w80 - -is equivalent to - - -h 24 -w 80 - -A third style of bundling allows only values to be bundled with -options. It can be enabled with: - - Getopt::Long::Configure ("bundling_values"); - -Now, C<-h24> will set the option C<h> to C<24>, but option bundles -like C<-vxa> and C<-h24w80> are flagged as errors. - -Enabling C<bundling_values> will disable the other two styles of -bundling. - -When configured for bundling, single-character options are matched -case sensitive while long options are matched case insensitive. To -have the single-character options matched case insensitive as well, -use: - - Getopt::Long::Configure ("bundling", "ignorecase_always"); - -It goes without saying that bundling can be quite confusing. - -=head2 The lonesome dash - -Normally, a lone dash C<-> on the command line will not be considered -an option. Option processing will terminate (unless "permute" is -configured) and the dash will be left in C<@ARGV>. - -It is possible to get special treatment for a lone dash. This can be -achieved by adding an option specification with an empty name, for -example: - - GetOptions ('' => \$stdio); - -A lone dash on the command line will now be a legal option, and using -it will set variable C<$stdio>. - -=head2 Argument callback - -A special option 'name' C<< <> >> can be used to designate a subroutine -to handle non-option arguments. When GetOptions() encounters an -argument that does not look like an option, it will immediately call this -subroutine and passes it one parameter: the argument name. Well, actually -it is an object that stringifies to the argument name. - -For example: - - my $width = 80; - sub process { ... } - GetOptions ('width=i' => \$width, '<>' => \&process); - -When applied to the following command line: - - arg1 --width=72 arg2 --width=60 arg3 - -This will call -C<process("arg1")> while C<$width> is C<80>, -C<process("arg2")> while C<$width> is C<72>, and -C<process("arg3")> while C<$width> is C<60>. - -This feature requires configuration option B<permute>, see section -L<Configuring Getopt::Long>. - -=head1 Configuring Getopt::Long - -Getopt::Long can be configured by calling subroutine -Getopt::Long::Configure(). This subroutine takes a list of quoted -strings, each specifying a configuration option to be enabled, e.g. -C<ignore_case>, or disabled, e.g. C<no_ignore_case>. Case does not -matter. Multiple calls to Configure() are possible. - -Alternatively, as of version 2.24, the configuration options may be -passed together with the C<use> statement: - - use Getopt::Long qw(:config no_ignore_case bundling); - -The following options are available: - -=over 12 - -=item default - -This option causes all configuration options to be reset to their -default values. - -=item posix_default - -This option causes all configuration options to be reset to their -default values as if the environment variable POSIXLY_CORRECT had -been set. - -=item auto_abbrev - -Allow option names to be abbreviated to uniqueness. -Default is enabled unless environment variable -POSIXLY_CORRECT has been set, in which case C<auto_abbrev> is disabled. - -=item getopt_compat - -Allow C<+> to start options. -Default is enabled unless environment variable -POSIXLY_CORRECT has been set, in which case C<getopt_compat> is disabled. - -=item gnu_compat - -C<gnu_compat> controls whether C<--opt=> is allowed, and what it should -do. Without C<gnu_compat>, C<--opt=> gives an error. With C<gnu_compat>, -C<--opt=> will give option C<opt> and empty value. -This is the way GNU getopt_long() does it. - -Note that C<--opt value> is still accepted, even though GNU -getopt_long() doesn't. - -=item gnu_getopt - -This is a short way of setting C<gnu_compat> C<bundling> C<permute> -C<no_getopt_compat>. With C<gnu_getopt>, command line handling should be -reasonably compatible with GNU getopt_long(). - -=item require_order - -Whether command line arguments are allowed to be mixed with options. -Default is disabled unless environment variable -POSIXLY_CORRECT has been set, in which case C<require_order> is enabled. - -See also C<permute>, which is the opposite of C<require_order>. - -=item permute - -Whether command line arguments are allowed to be mixed with options. -Default is enabled unless environment variable -POSIXLY_CORRECT has been set, in which case C<permute> is disabled. -Note that C<permute> is the opposite of C<require_order>. - -If C<permute> is enabled, this means that - - --foo arg1 --bar arg2 arg3 - -is equivalent to - - --foo --bar arg1 arg2 arg3 - -If an argument callback routine is specified, C<@ARGV> will always be -empty upon successful return of GetOptions() since all options have been -processed. The only exception is when C<--> is used: - - --foo arg1 --bar arg2 -- arg3 - -This will call the callback routine for arg1 and arg2, and then -terminate GetOptions() leaving C<"arg3"> in C<@ARGV>. - -If C<require_order> is enabled, options processing -terminates when the first non-option is encountered. - - --foo arg1 --bar arg2 arg3 - -is equivalent to - - --foo -- arg1 --bar arg2 arg3 - -If C<pass_through> is also enabled, options processing will terminate -at the first unrecognized option, or non-option, whichever comes -first. - -=item bundling (default: disabled) - -Enabling this option will allow single-character options to be -bundled. To distinguish bundles from long option names, long options -I<must> be introduced with C<--> and bundles with C<->. - -Note that, if you have options C<a>, C<l> and C<all>, and -auto_abbrev enabled, possible arguments and option settings are: - - using argument sets option(s) - ------------------------------------------ - -a, --a a - -l, --l l - -al, -la, -ala, -all,... a, l - --al, --all all - -The surprising part is that C<--a> sets option C<a> (due to auto -completion), not C<all>. - -Note: disabling C<bundling> also disables C<bundling_override>. - -=item bundling_override (default: disabled) - -If C<bundling_override> is enabled, bundling is enabled as with -C<bundling> but now long option names override option bundles. - -Note: disabling C<bundling_override> also disables C<bundling>. - -B<Note:> Using option bundling can easily lead to unexpected results, -especially when mixing long options and bundles. Caveat emptor. - -=item ignore_case (default: enabled) - -If enabled, case is ignored when matching option names. If, however, -bundling is enabled as well, single character options will be treated -case-sensitive. - -With C<ignore_case>, option specifications for options that only -differ in case, e.g., C<"foo"> and C<"Foo">, will be flagged as -duplicates. - -Note: disabling C<ignore_case> also disables C<ignore_case_always>. - -=item ignore_case_always (default: disabled) - -When bundling is in effect, case is ignored on single-character -options also. - -Note: disabling C<ignore_case_always> also disables C<ignore_case>. - -=item auto_version (default:disabled) - -Automatically provide support for the B<--version> option if -the application did not specify a handler for this option itself. - -Getopt::Long will provide a standard version message that includes the -program name, its version (if $main::VERSION is defined), and the -versions of Getopt::Long and Perl. The message will be written to -standard output and processing will terminate. - -C<auto_version> will be enabled if the calling program explicitly -specified a version number higher than 2.32 in the C<use> or -C<require> statement. - -=item auto_help (default:disabled) - -Automatically provide support for the B<--help> and B<-?> options if -the application did not specify a handler for this option itself. - -Getopt::Long will provide a help message using module L<Pod::Usage>. The -message, derived from the SYNOPSIS POD section, will be written to -standard output and processing will terminate. - -C<auto_help> will be enabled if the calling program explicitly -specified a version number higher than 2.32 in the C<use> or -C<require> statement. - -=item pass_through (default: disabled) - -With C<pass_through> anything that is unknown, ambiguous or supplied with -an invalid option will not be flagged as an error. Instead the unknown -option(s) will be passed to the catchall C<< <> >> if present, otherwise -through to C<@ARGV>. This makes it possible to write wrapper scripts that -process only part of the user supplied command line arguments, and pass the -remaining options to some other program. - -If C<require_order> is enabled, options processing will terminate at the -first unrecognized option, or non-option, whichever comes first and all -remaining arguments are passed to C<@ARGV> instead of the catchall -C<< <> >> if present. However, if C<permute> is enabled instead, results -can become confusing. - -Note that the options terminator (default C<-->), if present, will -also be passed through in C<@ARGV>. - -=item prefix - -The string that starts options. If a constant string is not -sufficient, see C<prefix_pattern>. - -=item prefix_pattern - -A Perl pattern that identifies the strings that introduce options. -Default is C<--|-|\+> unless environment variable -POSIXLY_CORRECT has been set, in which case it is C<--|->. - -=item long_prefix_pattern - -A Perl pattern that allows the disambiguation of long and short -prefixes. Default is C<-->. - -Typically you only need to set this if you are using nonstandard -prefixes and want some or all of them to have the same semantics as -'--' does under normal circumstances. - -For example, setting prefix_pattern to C<--|-|\+|\/> and -long_prefix_pattern to C<--|\/> would add Win32 style argument -handling. - -=item debug (default: disabled) - -Enable debugging output. - -=back - -=head1 Exportable Methods - -=over - -=item VersionMessage - -This subroutine provides a standard version message. Its argument can be: - -=over 4 - -=item * - -A string containing the text of a message to print I<before> printing -the standard message. - -=item * - -A numeric value corresponding to the desired exit status. - -=item * - -A reference to a hash. - -=back - -If more than one argument is given then the entire argument list is -assumed to be a hash. If a hash is supplied (either as a reference or -as a list) it should contain one or more elements with the following -keys: - -=over 4 - -=item C<-message> - -=item C<-msg> - -The text of a message to print immediately prior to printing the -program's usage message. - -=item C<-exitval> - -The desired exit status to pass to the B<exit()> function. -This should be an integer, or else the string "NOEXIT" to -indicate that control should simply be returned without -terminating the invoking process. - -=item C<-output> - -A reference to a filehandle, or the pathname of a file to which the -usage message should be written. The default is C<\*STDERR> unless the -exit value is less than 2 (in which case the default is C<\*STDOUT>). - -=back - -You cannot tie this routine directly to an option, e.g.: - - GetOptions("version" => \&VersionMessage); - -Use this instead: - - GetOptions("version" => sub { VersionMessage() }); - -=item HelpMessage - -This subroutine produces a standard help message, derived from the -program's POD section SYNOPSIS using L<Pod::Usage>. It takes the same -arguments as VersionMessage(). In particular, you cannot tie it -directly to an option, e.g.: - - GetOptions("help" => \&HelpMessage); - -Use this instead: - - GetOptions("help" => sub { HelpMessage() }); - -=back - -=head1 Return values and Errors - -Configuration errors and errors in the option definitions are -signalled using die() and will terminate the calling program unless -the call to Getopt::Long::GetOptions() was embedded in C<eval { ... -}>, or die() was trapped using C<$SIG{__DIE__}>. - -GetOptions returns true to indicate success. -It returns false when the function detected one or more errors during -option parsing. These errors are signalled using warn() and can be -trapped with C<$SIG{__WARN__}>. - -=head1 Legacy - -The earliest development of C<newgetopt.pl> started in 1990, with Perl -version 4. As a result, its development, and the development of -Getopt::Long, has gone through several stages. Since backward -compatibility has always been extremely important, the current version -of Getopt::Long still supports a lot of constructs that nowadays are -no longer necessary or otherwise unwanted. This section describes -briefly some of these 'features'. - -=head2 Default destinations - -When no destination is specified for an option, GetOptions will store -the resultant value in a global variable named C<opt_>I<XXX>, where -I<XXX> is the primary name of this option. When a program executes -under C<use strict> (recommended), these variables must be -pre-declared with our() or C<use vars>. - - our $opt_length = 0; - GetOptions ('length=i'); # will store in $opt_length - -To yield a usable Perl variable, characters that are not part of the -syntax for variables are translated to underscores. For example, -C<--fpp-struct-return> will set the variable -C<$opt_fpp_struct_return>. Note that this variable resides in the -namespace of the calling program, not necessarily C<main>. For -example: - - GetOptions ("size=i", "sizes=i@"); - -with command line "-size 10 -sizes 24 -sizes 48" will perform the -equivalent of the assignments - - $opt_size = 10; - @opt_sizes = (24, 48); - -=head2 Alternative option starters - -A string of alternative option starter characters may be passed as the -first argument (or the first argument after a leading hash reference -argument). - - my $len = 0; - GetOptions ('/', 'length=i' => $len); - -Now the command line may look like: - - /length 24 -- arg - -Note that to terminate options processing still requires a double dash -C<-->. - -GetOptions() will not interpret a leading C<< "<>" >> as option starters -if the next argument is a reference. To force C<< "<" >> and C<< ">" >> as -option starters, use C<< "><" >>. Confusing? Well, B<using a starter -argument is strongly deprecated> anyway. - -=head2 Configuration variables - -Previous versions of Getopt::Long used variables for the purpose of -configuring. Although manipulating these variables still work, it is -strongly encouraged to use the C<Configure> routine that was introduced -in version 2.17. Besides, it is much easier. - -=head1 Tips and Techniques - -=head2 Pushing multiple values in a hash option - -Sometimes you want to combine the best of hashes and arrays. For -example, the command line: - - --list add=first --list add=second --list add=third - -where each successive 'list add' option will push the value of add -into array ref $list->{'add'}. The result would be like - - $list->{add} = [qw(first second third)]; - -This can be accomplished with a destination routine: - - GetOptions('list=s%' => - sub { push(@{$list{$_[1]}}, $_[2]) }); - -=head1 Troubleshooting - -=head2 GetOptions does not return a false result when an option is not supplied - -That's why they're called 'options'. - -=head2 GetOptions does not split the command line correctly - -The command line is not split by GetOptions, but by the command line -interpreter (CLI). On Unix, this is the shell. On Windows, it is -COMMAND.COM or CMD.EXE. Other operating systems have other CLIs. - -It is important to know that these CLIs may behave different when the -command line contains special characters, in particular quotes or -backslashes. For example, with Unix shells you can use single quotes -(C<'>) and double quotes (C<">) to group words together. The following -alternatives are equivalent on Unix: - - "two words" - 'two words' - two\ words - -In case of doubt, insert the following statement in front of your Perl -program: - - print STDERR (join("|",@ARGV),"\n"); - -to verify how your CLI passes the arguments to the program. - -=head2 Undefined subroutine &main::GetOptions called - -Are you running Windows, and did you write - - use GetOpt::Long; - -(note the capital 'O')? - -=head2 How do I put a "-?" option into a Getopt::Long? - -You can only obtain this using an alias, and Getopt::Long of at least -version 2.13. - - use Getopt::Long; - GetOptions ("help|?"); # -help and -? will both set $opt_help - -Other characters that can't appear in Perl identifiers are also supported -as aliases with Getopt::Long of at least version 2.39. - -As of version 2.32 Getopt::Long provides auto-help, a quick and easy way -to add the options --help and -? to your program, and handle them. - -See C<auto_help> in section L<Configuring Getopt::Long>. - -=head1 AUTHOR - -Johan Vromans <jvromans@squirrel.nl> - -=head1 COPYRIGHT AND DISCLAIMER - -This program is Copyright 1990,2015 by Johan Vromans. -This program is free software; you can redistribute it and/or -modify it under the terms of the Perl Artistic License or the -GNU General Public License as published by the Free Software -Foundation; either version 2 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. - -If you do not have a copy of the GNU General Public License write to -the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, -MA 02139, USA. - -=cut - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Growl/GNTP.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Growl/GNTP.pm deleted file mode 100644 index 1429df23..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/Growl/GNTP.pm +++ /dev/null @@ -1,595 +0,0 @@ -package Growl::GNTP; - -use strict; -use warnings; -use IO::Socket::INET; -use Data::UUID; -use Crypt::CBC; -use Digest::MD5 qw/md5_hex/; -use Digest::SHA qw/sha1_hex sha256_hex/; -our $VERSION = '0.21'; - -sub new { - my $class = shift; - my %args = @_; - $args{Proto} ||= 'tcp'; - $args{PeerHost} ||= 'localhost'; - $args{PeerPort} ||= 23053; - $args{Timeout} ||= 5; - $args{AppName} ||= 'Growl::GNTP'; - $args{AppIcon} ||= ''; - $args{Password} ||= ''; - $args{PasswordHashAlgorithm} ||= 'MD5'; - $args{EncryptAlgorithm} ||= 'NONE'; - $args{Debug} ||= 0; - $args{Callbacks} = []; - srand(); - bless {%args}, $class; -} - -sub register { - my $self = shift; - my $notifications = shift || []; - - my $AppName = $self->{AppName}; - $AppName =~ s!\r\n!\n!; - my $AppIcon = $self->{AppIcon}; - $AppIcon =~ s!\r\n!\n!; - my $count = scalar @$notifications; - - my $sock = IO::Socket::INET->new( - PeerAddr => $self->{PeerHost}, - PeerPort => $self->{PeerPort}, - Proto => $self->{Proto}, - Timeout => $self->{Timeout}, - ); - die $@ unless $sock; - - my $identifier; - if (-f $AppIcon) { - open my $f, "<:raw", $AppIcon; - $identifier = do { local $/; <$f> }; - close $f; - $AppIcon = "x-growl-resource://" . Digest::MD5::md5_hex(Digest::MD5->new->add($identifier)->digest); - } - - my $form = <<EOF; -Application-Name: $AppName -Application-Icon: $AppIcon -Notifications-Count: $count - -EOF - $form =~ s!\n!\r\n!g; - - $count = 0; - for my $notification ( @{$notifications} ) { - $count++; - my %data = ( - Name => $notification->{Name} || "Growl::GNTP Notify$count", - DisplayName => $notification->{DisplayName} - || $notification->{Name} || "Growl::GNTP Notify$count", - Enabled => _translate_bool($notification->{Enabled} || 'True'), - Icon => $notification->{Icon} || '', # will default to Application-Icon if not specified. - ); - $data{$_} =~ s!\r\n!\n! for ( keys %data ); - - my $subform .= <<EOF; -Notification-Name: \$(Name) -Notification-Display-Name: \$(DisplayName) -Notification-Enabled: \$(Enabled) -Notification-Icon: \$(Icon) - -EOF - $subform =~ s!\n!\r\n!g; - $subform =~ s/\$\((\w+)\)/$data{$1}/ge; - $form .= $subform; - } - if ($identifier) { - $form.=sprintf("Identifier: %s\r\r\n",substr($AppIcon, 19)); - $form.=sprintf("Length: %d\r\r\n\r\r\n",length $identifier); - $form =~ s!\r\r\n!\r\n!g; - $form .= $identifier; - $form .= "\r\n\r\n"; - } - - print $form if $self->{Debug}; - $form = _gen_header($self, 'REGISTER', $form); - $sock->send($form); - - my $ret = <$sock>; - $ret = $1 if $ret =~ /^GNTP\/1\.0 -?(\w+)/; - print "$_\n" if $self->{Debug}; - - my $description = 'failed to register'; - if ($ret ne 'OK') { - while (<$sock>) { - $_ =~ s!\r\n!!g; - print "$_\n" if $self->{Debug}; - $description = $1 if $_ =~ /^Error-Description:\s*(.*)$/; - last if length($_) == 0; - } - } - close $sock; - - die $description if $ret ne 'OK'; -} - -sub notify { - my ( $self, %args ) = @_; - my %data = ( - AppName => $self->{AppName}, - Name => $args{Name} || $args{Event} || '', - Title => $args{Title} || '', - Message => $args{Message} || '',#optional - Icon => $args{Icon} || '', #optional - ID => $args{ID} || '', # optional - CoalescingID => $args{CoalescingID} || '', # optional - Priority => _translate_int($args{Priority} || 0), #optional - Sticky => _translate_bool($args{Sticky} || 'False'), #optional - CallbackContext => $args{CallbackContext} || '',#optional - CallbackContextType => $args{CallbackContextType} || '',#optional, required if CallbackContext - CallbackTarget => $args{CallbackTarget} || '', #optional exclusive of CallbackContext[-Type] #!# for now, needs Context pair until GfW v2.0.0.20 - CallbackFunction => $args{CallbackFunction} || {}, #optional - Custom => $args{Custom} || '', # optional - ); - $data{$_} =~ s!\r\n!\n! for ( keys %data ); - - my $identifier; - if (-f $data{Icon}) { - open my $f, "<:raw", $data{Icon}; - $identifier = do { local $/; <$f> }; - close $f; - $data{Icon} = "x-growl-resource://" . Digest::MD5::md5_hex(Digest::MD5->new->add($identifier)->digest); - } - - # once GfW v2.0.0.20, this CallbackTarget can be removed. - if ($data{CallbackTarget}) { - $data{CallbackContext} = $data{CallbackContext} || 'TARGET'; - $data{CallbackContextType} = $data{CallbackContextType} || 'TARGET'; - } - - my $sock = IO::Socket::INET->new( - PeerAddr => $self->{PeerHost}, - PeerPort => $self->{PeerPort}, - Proto => $self->{Proto}, - Timeout => $self->{Timeout}, - ); - die $@ unless $sock; - - my $form; - $form.=sprintf("Application-Name: %s\r\r\n",$data{AppName}); - $form.=sprintf("Notification-Name: %s\r\r\n",$data{Name}); - $form.=sprintf("Notification-Title: %s\r\r\n",$data{Title}); - $form.=sprintf("Notification-ID: %s\r\r\n",$data{ID}) if $data{ID}; - $form.=sprintf("Notification-Priority: %s\r\r\n",$data{Priority}) if $data{Priority}; - $form.=sprintf("Notification-Text: %s\r\r\n",$data{Message}) if $data{Message}; - $form.=sprintf("Notification-Sticky: %s\r\r\n",$data{Sticky}) if $data{Sticky}; - $form.=sprintf("Notification-Icon: %s\r\r\n",$data{Icon}) if $data{Icon}; - $form.=sprintf("Notification-Coalescing-ID: %s\r\r\n",$data{CoalescingID}) if $data{CoalescingID}; - if ($data{CallbackContext}) { - $form.=sprintf("Notification-Callback-Context: %s\r\r\n",$data{CallbackContext}); - $form.=sprintf("Notification-Callback-Context-Type: %s\r\r\n",$data{CallbackContextType}); - } - if ($data{CallbackTarget}) { # BOTH method are provided here for GfW compatability. - $form.=sprintf("Notification-Callback-Context-Target: %s\r\r\n",$data{CallbackTarget}); - $form.=sprintf("Notification-Callback-Target: %s\r\r\n",$data{CallbackTarget}); - } - if (ref($data{Custom}) eq 'HASH') { - foreach my $header (sort keys %{$data{Custom}}){ - $form.=sprintf("X-%s: %s\r\r\n",$header,$data{Custom}{$header}); - } - } - - if ($identifier) { - $form .= "\r\r\n"; - $form.=sprintf("Identifier: %s\r\r\n",substr($data{Icon}, 19)); - $form.=sprintf("Length: %d\r\r\n\r\r\n",length $identifier); - $form =~ s!\r\r\n!\r\n!g; - $form .= $identifier; - $form .= "\r\n"; - } else { - $form =~ s!\r\r\n!\r\n!g; - } - $form .= "\r\n"; - print $form if $self->{Debug}; - - $form = _gen_header($self, 'NOTIFY', $form); - $sock->send($form); - - my $ret = <$sock>; - $ret = $1 if $ret =~ /^GNTP\/1\.0 -?(\w+)/; - print "$_\n" if $self->{Debug}; - - my $description = 'failed to notify'; - if ($ret ne 'OK') { - while (<$sock>) { - $_ =~ s!\r\n!!g; - print "$_\n" if $self->{Debug}; - $description = $1 if $_ =~ /^Error-Description:\s*(.*)$/; - last if length($_) == 0; - } - } - close $sock; - - die $description if $ret ne 'OK'; -} - -sub subscribe { - my ( $self, %args ) = @_; - chomp(my $hostname = `hostname`); - my %data = ( - ID => $args{ID} || Data::UUID->new->create_str, - Name => $args{Name} || $hostname, - Port => $args{Port} || 23053, - ); - $data{$_} =~ s!\r\n!\n! for ( keys %data ); - my $password = $args{Password} || ''; - my $callback = $args{CallbackFunction} || ''; - - my $sock = IO::Socket::INET->new( - PeerAddr => $self->{PeerHost}, - PeerPort => $self->{PeerPort}, - Proto => $self->{Proto}, - Timeout => $self->{Timeout}, - ); - die $@ unless $sock; - - my $form = <<EOF; -Subscriber-ID: \$(ID) -Subscriber-Name: \$(Name) -Subscriber-Port: \$(Port) - -EOF - $form =~ s!\r?\n!\r\n!g; - $form =~ s/\$\((\w+)\)/$data{$1}/ge; - - $form = _gen_header($self, 'SUBSCRIBE', $form); - $sock->send($form); - - my $ret = <$sock>; - $ret = $1 if $ret =~ /^GNTP\/1\.0 -?(\w+)/; - print "$_\n" if $self->{Debug}; - - my $description = 'failed to register'; - if ($ret ne 'OK') { - while (<$sock>) { - $_ =~ s!\r\n!!g; - print "$_\n" if $self->{Debug}; - $description = $1 if $_ =~ /^Error-Description:\s*(.*)$/; - last if length($_) == 0; - } - die $description if $ret ne 'OK'; - } - - $sock = IO::Socket::INET->new( - LocalPort => $data{Port}, - Proto => 'tcp', - Listen => 10, - Timeout => $self->{Timeout}, - ); - die $@ unless $sock; - - $description = 'failed to subscribe'; - while (1) { - my $client = $sock->accept(); - my ($Title, $Message) = ('', ''); - while (<$client>){ - $_ =~ s!\r\n!!g; - print "$_\n" if $self->{Debug}; - $ret = $1 if $_ =~ /^GNTP\/1\.0 -?(\w+)/; - $description = $1 if $_ =~ /^Error-Description:\s*(.*)$/; - $Title = $1 if $_ =~ /^Notification-Title: (.*)\r\n/; - $Message = $1 if $_ =~ /^Notification-Text: (.*)\r\n/; - # TODO - # handling more GNTP protocols. - # currently, can't treat multiline header which include LF. - ## hrmmm... - last if length($_) == 0; - } - $client->close(); - - if ($Title && ref($callback) eq 'CODE') { - $callback->($Title, $Message); - } - } - - die $description if $ret ne 'OK'; -} - -sub wait { - my $self = shift; - my $waitall = shift || 1; - - my @callbacks = @{$self->{Callbacks}}; - my @old = @callbacks; - my $bits = ""; - while (@callbacks) { - vec($bits, fileno($_->{Socket}), 1) = 1 for @callbacks; - next unless select($bits, undef, undef, 0.1); - for (my $i = 0; $i < @callbacks; $i++) { - my $callback = $callbacks[$i]; - my $sock = $callback->{Socket}; - if (vec($bits, fileno($sock), 1)) { - my ($result, $type, $context, $id, $timestamp) = ('', '', '','',''); - while (<$sock>) { - $_ =~ s!\r\n!!g; - print "$_\n" if $self->{Debug}; - $id = $1 if $_ =~ /^Notification-ID: (.*)$/; - $timestamp = $1 if $_ =~ /^Notification-Callback-Timestamp: (.*)$/; - $result = $1 if $_ =~ /^Notification-Callback-Result: (.*)$/; - $context = $1 if $_ =~ /^Notification-Callback-Context: (.*)$/; - $type = $1 if $_ =~ /^Notification-Callback-Context-Type: (.*)$/; - last if length($_) == 0; - } - if (ref($callback->{Function}) eq 'CODE') { - $callback->{Function}->($result, $type, $context,$id,$timestamp); - } - splice(@callbacks, $i, 1); - } - } - last unless $waitall; - }; - - for (my $i = 0; $i < @{$self->{Callbacks}}; ++$i) { - if (grep { $_->{Socket} eq $self->{Callbacks}[$i]->{Socket} } @old) { - splice(@{$self->{Callbacks}}, $i--, 1); - } - } - 1; -} - -sub _translate_int { - return 0 + shift; -} - -sub _translate_bool { - my $value = shift; - return 'True' if $value =~ /^([Tt]rue|[Yy]es)$/; - return 'False' if $value =~ /^([Ff]alse|[Nn]o)$/; - return 'True' if $value; - return 'False'; -} - -sub _gen_header { - my ($ctx, $method, $form) = @_; - - if ($ctx->{Password}) { - my ($hash, $salt) = _gen_hash($ctx); - my $crypt = _gen_encrypt($ctx, $salt, \$form); - if ($crypt eq 'NONE') { - $form = "GNTP/1.0 $method NONE $hash\r\n$form\r\n"; - } else { - $form = "GNTP/1.0 $method $crypt $hash\r\n$form\r\n\r\n"; - } - } else { - $form = "GNTP/1.0 $method NONE\r\n$form\r\n"; - } - return $form; -} - -sub _gen_salt { - my $count = shift; - my @salt = ( '.', '/', 0 .. 9, 'A' .. 'Z', 'a' .. 'z' ); - my $salt; - $salt .= (@salt)[rand @salt] for 1..$count; - return $salt; -} - -sub _gen_hash { - my $ctx = shift; - my $hash_algorithm = $ctx->{PasswordHashAlgorithm}; - my $password = $ctx->{Password}; - return 'NONE' if $hash_algorithm eq 'NONE'; - - my $salt = _gen_salt(8); - my $salthex = uc unpack("H*", $salt); - - my %hashroll = ( - 'MD5' => sub { my ($password, $salt) = @_; return uc Digest::MD5::md5_hex(Digest::MD5->new->add($password)->add($salt)->digest); }, - 'SHA1' => sub { my ($password, $salt) = @_; return uc Digest::SHA::sha1_hex(Digest::SHA->new(1)->add($password)->add($salt)->digest); }, - 'SHA256' => sub { my ($password, $salt) = @_; return uc Digest::SHA::sha256_hex(Digest::SHA->new(256)->add($password)->add($salt)->digest); }, - ); - my $key = $hashroll{$hash_algorithm}->($password, $salt); - return "$hash_algorithm:$key.$salthex", $salt; -} - -sub _gen_encrypt { - my ($ctx, $salt, $data) = @_; - my $hash_algorithm = $ctx->{PasswordHashAlgorithm}; - my $crypt_algorithm = $ctx->{EncryptAlgorithm}; - my $password = $ctx->{Password}; - return 'NONE' if $crypt_algorithm eq 'NONE'; - - my %hashroll = ( - 'MD5' => sub { my ($password, $salt) = @_; return Digest::MD5->new->add($password)->add($salt)->digest }, - 'SHA1' => sub { my ($password, $salt) = @_; return Digest::SHA->new(1)->add($password)->add($salt)->digest }, - 'SHA256' => sub { my ($password, $salt) = @_; return Digest::SHA->new(256)->add($password)->add($salt)->digest }, - ); - my $key = $hashroll{$hash_algorithm}->($password, $salt); - - my %cryptroll = ( - 'AES' => sub { - my ($data, $key) = @_; - my $iv = Crypt::CBC->random_bytes(16); - my $cbc = Crypt::CBC->new( - -key => substr($key, 0, 24), - -iv => $iv, - -keysize => 24, - -header => 'none', - -literal_key => 1, - -padding => 'standard', - -cipher => 'Crypt::OpenSSL::AES', - ); - return $cbc->encrypt($data), uc unpack("H*", $iv); - }, - 'DES' => sub { - my ($data, $key) = @_; - my $iv = Crypt::CBC->random_bytes(8); - my $cbc = Crypt::CBC->new( - -key => substr($key, 0, 8), - -iv => $iv, - -header => 'none', - -literal_key => 1, - -padding => 'standard', - -cipher => 'DES', - ); - return $cbc->encrypt($data), uc unpack("H*", $iv); - }, - '3DES' => sub { - my ($data, $key) = @_; - my $iv = Crypt::CBC->random_bytes(8); - $key = $key.substr($key,0,24-length($key)) if length($key) < 24; - my $cbc = Crypt::CBC->new( - -key => substr($key, 0, 24), - -iv => $iv, - -header => 'none', - -literal_key => 1, - -padding => 'standard', - -cipher => 'DES_EDE3', - ); - return $cbc->encrypt($data), uc unpack("H*", $iv); - }, - ); - ($$data, my $hash) = $cryptroll{$crypt_algorithm}->($$data, $key); - return "$crypt_algorithm:$hash"; -} - -sub _debug { - my ($name, $data) = @_; - open my $f, ">", $name; - binmode $f; - print $f $data; - close $f; -} - -1; -__END__ - -=head1 NAME - -Growl::GNTP - Perl implementation of GNTP Protocol (Client Part) - -=head1 SYNOPSIS - - use Growl::GNTP; - my $growl = Growl::GNTP->new(AppName => "my perl app"); - $growl->register([ - { Name => "foo", }, - { Name => "bar", }, - ]); - - $growl->notify( - Name => "foo", - Title => "my notify", - Message => "my message", - Icon => "http://www.example.com/my-face.png", - ); - -=head1 DESCRIPTION - -Growl::GNTP is Perl implementation of GNTP Protocol (Client Part) - -=head1 CONSTRUCTOR - -=over 4 - -=item new ( ARGS ) - -Initialize Growl::GNTP object. You can set few parameter of -IO::Socket::INET. and application name will be given 'Growl::GNTP' if you -does not specify it. - -=over 4 - - PeerHost # 'localhost' - PeerPort # 23053 - Timeout # 5 - AppName # 'Growl::GNTP' - AppIcon # '' - Password # '' - PasswordHashAlgorithm # 'MD5' - EncryptAlgorithm # '' - -=back - -=back - -=head1 OBJECT METHODS - -=over 4 - -=item register ( [ARGS] ) - -Register notification definition. You should be specify ARRAY reference of -HASH reference like a following. - - { - Name => 'MY_GROWL_NOTIFY', - DisplayName => 'My Growl Notify', - Enabled => 'True', - Icon => '' - } - -=item notify ( ARGS ) - -Notify item. You should be specify HASH reference like a following. - - { - Name => 'Warn', # name of notification - Title => 'Foo!', - Message => 'Bar!', - Icon => 'http://www.example.com/myface.png', - CallbackTarget => '', # Used for causing a HTTP/1.1 GET request exactly as specificed by this URL. Exclusive of CallbackContext - CallbackContextType => time, # type of the context - CallbackContext => 'Time', - CallbackFunction => sub { warn 'callback!' }, # should only be used when a callback in use, and CallbackContext in use. - ID => '', # allows for overriding/updateing an existing notification when in use, and discriminating between alerts of the same Name - Custom => { CustomHeader => 'value' }, # These will be added as custom headers as X-KEY : value, where 'X-' is prefixed to the key - Priority => 0, # -2 .. 2 low -> severe - Sticky => 'False' - } - -And callback function is given few arguments. - - CallbackFunction => sub { - my ($result, $type, $context, $id, $timestamp) = @_; - print "$result: $context ($type)\n"; - } - -=item wait ( WAIT_ALL ) - -Wait callback items. If WAIT_ALL is not 0, this function wait all callbacks -as CLICK, CLOSED, TIMEOUT. - -=item subscribe ( ARGS ) - -Subscribe notification. You should be specify HASH reference like a following. - - { - Port => 23054, - Password => 'secret', - CallbackFunction => sub { - my ($Title, $Message) = @_; - print decode_utf8($Title),",",decode_utf8($Message),"\n"; - }, - } - -=back - -=head1 AUTHOR - -Yasuhiro Matsumoto E<lt>mattn.jp@gmail.comE<gt> - -=head1 SEE ALSO - -L<Net::Growl>, L<Net::GrowlClient>, L<Mac::Growl>, -F<http://www.growlforwindows.com/gfw/help/gntp.aspx> - -=head1 LICENSE - -This library is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -=cut - - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/AtomicFile.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/AtomicFile.pm deleted file mode 100644 index 1a6f33e2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/AtomicFile.pm +++ /dev/null @@ -1,199 +0,0 @@ -package IO::AtomicFile; - -### DOCUMENTATION AT BOTTOM OF FILE - -# Be strict: -use strict; - -# External modules: -use IO::File; - - -#------------------------------ -# -# GLOBALS... -# -#------------------------------ -use vars qw($VERSION @ISA); - -# The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "2.111"; - -# Inheritance: -@ISA = qw(IO::File); - - -#------------------------------ -# new ARGS... -#------------------------------ -# Class method, constructor. -# Any arguments are sent to open(). -# -sub new { - my $class = shift; - my $self = $class->SUPER::new(); - ${*$self}{'io_atomicfile_suffix'} = ''; - $self->open(@_) if @_; - $self; -} - -#------------------------------ -# DESTROY -#------------------------------ -# Destructor. -# -sub DESTROY { - shift->close(1); ### like close, but raises fatal exception on failure -} - -#------------------------------ -# open PATH, MODE -#------------------------------ -# Class/instance method. -# -sub open { - my ($self, $path, $mode) = @_; - ref($self) or $self = $self->new; ### now we have an instance! - - ### Create tmp path, and remember this info: - my $temp = "${path}..TMP" . ${*$self}{'io_atomicfile_suffix'}; - ${*$self}{'io_atomicfile_temp'} = $temp; - ${*$self}{'io_atomicfile_path'} = $path; - - ### Open the file! Returns filehandle on success, for use as a constructor: - $self->SUPER::open($temp, $mode) ? $self : undef; -} - -#------------------------------ -# _closed [YESNO] -#------------------------------ -# Instance method, private. -# Are we already closed? Argument sets new value, returns previous one. -# -sub _closed { - my $self = shift; - my $oldval = ${*$self}{'io_atomicfile_closed'}; - ${*$self}{'io_atomicfile_closed'} = shift if @_; - $oldval; -} - -#------------------------------ -# close -#------------------------------ -# Instance method. -# Close the handle, and rename the temp file to its final name. -# -sub close { - my ($self, $die) = @_; - unless ($self->_closed(1)) { ### sentinel... - if ($self->SUPER::close()) { - rename(${*$self}{'io_atomicfile_temp'}, - ${*$self}{'io_atomicfile_path'}) - or ($die ? die "close (rename) atomic file: $!\n" : return undef); - } else { - ($die ? die "close atomic file: $!\n" : return undef); - } - } - 1; -} - -#------------------------------ -# delete -#------------------------------ -# Instance method. -# Close the handle, and delete the temp file. -# -sub delete { - my $self = shift; - unless ($self->_closed(1)) { ### sentinel... - $self->SUPER::close(); - return unlink(${*$self}{'io_atomicfile_temp'}); - } - 1; -} - -#------------------------------ -# detach -#------------------------------ -# Instance method. -# Close the handle, but DO NOT delete the temp file. -# -sub detach { - my $self = shift; - $self->SUPER::close() unless ($self->_closed(1)); - 1; -} - -#------------------------------ -1; -__END__ - - -=head1 NAME - -IO::AtomicFile - write a file which is updated atomically - - -=head1 SYNOPSIS - - use IO::AtomicFile; - - ### Write a temp file, and have it install itself when closed: - my $FH = IO::AtomicFile->open("bar.dat", "w"); - print $FH "Hello!\n"; - $FH->close || die "couldn't install atomic file: $!"; - - ### Write a temp file, but delete it before it gets installed: - my $FH = IO::AtomicFile->open("bar.dat", "w"); - print $FH "Hello!\n"; - $FH->delete; - - ### Write a temp file, but neither install it nor delete it: - my $FH = IO::AtomicFile->open("bar.dat", "w"); - print $FH "Hello!\n"; - $FH->detach; - - -=head1 DESCRIPTION - -This module is intended for people who need to update files -reliably in the face of unexpected program termination. - -For example, you generally don't want to be halfway in the middle of -writing I</etc/passwd> and have your program terminate! Even -the act of writing a single scalar to a filehandle is I<not> atomic. - -But this module gives you true atomic updates, via rename(). -When you open a file I</foo/bar.dat> via this module, you are I<actually> -opening a temporary file I</foo/bar.dat..TMP>, and writing your -output there. The act of closing this file (either explicitly -via close(), or implicitly via the destruction of the object) -will cause rename() to be called... therefore, from the point -of view of the outside world, the file's contents are updated -in a single time quantum. - -To ensure that problems do not go undetected, the "close" method -done by the destructor will raise a fatal exception if the rename() -fails. The explicit close() just returns undef. - -You can also decide at any point to trash the file you've been -building. - - -=head1 AUTHOR - -=head2 Primary Maintainer - -Dianne Skoll (F<dfs@roaringpenguin.com>). - -=head2 Original Author - -Eryq (F<eryq@zeegee.com>). -President, ZeeGee Software Inc (F<http://www.zeegee.com>). - - -=head1 REVISION - -$Revision: 1.2 $ - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/CaptureOutput.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/CaptureOutput.pm deleted file mode 100644 index d569ae9d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/CaptureOutput.pm +++ /dev/null @@ -1,490 +0,0 @@ -use strict; -use warnings; - -package IO::CaptureOutput; -# ABSTRACT: capture STDOUT and STDERR from Perl code, subprocesses or XS - -our $VERSION = '1.1104'; - -use vars qw/@ISA @EXPORT_OK %EXPORT_TAGS $CarpLevel/; -use Exporter; -use Carp qw/croak/; -@ISA = 'Exporter'; -@EXPORT_OK = qw/capture capture_exec qxx capture_exec_combined qxy/; -%EXPORT_TAGS = (all => \@EXPORT_OK); -$CarpLevel = 0; # help capture report errors at the right level - -sub _capture (&@) { ## no critic - my ($code, $output, $error, $output_file, $error_file) = @_; - - # check for valid combinations of input - { - local $Carp::CarpLevel = 1; - my $error = _validate($output, $error, $output_file, $error_file); - croak $error if $error; - } - - # if either $output or $error are defined, then we need a variable for - # results; otherwise we only capture to files and don't waste memory - if ( defined $output || defined $error ) { - for ($output, $error) { - $_ = \do { my $s; $s = ''} unless ref $_; - $$_ = '' if $_ != \undef && !defined($$_); - } - } - - # merge if same refs for $output and $error or if both are undef -- - # i.e. capture \&foo, undef, undef, $merged_file - # this means capturing into separate files *requires* at least one - # capture variable - my $should_merge = - (defined $error && defined $output && $output == $error) || - ( !defined $output && !defined $error ) || - 0; - - my ($capture_out, $capture_err); - - # undef means capture anonymously; anything other than \undef means - # capture to that ref; \undef means skip capture - if ( !defined $output || $output != \undef ) { - $capture_out = IO::CaptureOutput::_proxy->new( - 'STDOUT', $output, undef, $output_file - ); - } - if ( !defined $error || $error != \undef ) { - $capture_err = IO::CaptureOutput::_proxy->new( - 'STDERR', $error, ($should_merge ? 'STDOUT' : undef), $error_file - ); - } - - # now that output capture is setup, call the subroutine - # results get read when IO::CaptureOutput::_proxy objects go out of scope - &$code(); -} - -# Extra indirection for symmetry with capture_exec, etc. Gets error reporting -# to the right level -sub capture (&@) { ## no critic - return &_capture; -} - -sub capture_exec { - my @args = @_; - my ($output, $error); - my $exit = _capture sub { system _shell_quote(@args) }, \$output, \$error; - my $success = ($exit == 0 ) ? 1 : 0 ; - $? = $exit; - return wantarray ? ($output, $error, $success, $exit) : $output; -} - -*qxx = \&capture_exec; - -sub capture_exec_combined { - my @args = @_; - my $output; - my $exit = _capture sub { system _shell_quote(@args) }, \$output, \$output; - my $success = ($exit == 0 ) ? 1 : 0 ; - $? = $exit; - return wantarray ? ($output, $success, $exit) : $output; -} - -*qxy = \&capture_exec_combined; - -# extra quoting required on Win32 systems -*_shell_quote = ($^O =~ /MSWin32/) ? \&_shell_quote_win32 : sub {@_}; -sub _shell_quote_win32 { - my @args; - for (@_) { - if (/[ \"]/) { # TODO: check if ^ requires escaping - (my $escaped = $_) =~ s/([\"])/\\$1/g; - push @args, '"' . $escaped . '"'; - next; - } - push @args, $_ - } - return @args; -} - -# detect errors and return an error message or empty string; -sub _validate { - my ($output, $error, $output_file, $error_file) = @_; - - # default to "ok" - my $msg = q{}; - - # \$out, \$out, $outfile, $errfile - if ( defined $output && defined $error - && defined $output_file && defined $error_file - && $output == $error - && $output != \undef - && $output_file ne $error_file - ) { - $msg = "Merged STDOUT and STDERR, but specified different output and error files"; - } - # undef, undef, $outfile, $errfile - elsif ( !defined $output && !defined $error - && defined $output_file && defined $error_file - && $output_file ne $error_file - ) { - $msg = "Merged STDOUT and STDERR, but specified different output and error files"; - } - - return $msg; -} - -# Captures everything printed to a filehandle for the lifetime of the object -# and then transfers it to a scalar reference -package IO::CaptureOutput::_proxy; -use File::Temp 0.16 'tempfile'; -use File::Basename qw/basename/; -use Symbol qw/gensym qualify qualify_to_ref/; -use Carp; - -sub _is_wperl { $^O eq 'MSWin32' && basename($^X) eq 'wperl.exe' } - -sub new { - my $class = shift; - my ($orig_fh, $capture_var, $merge_fh, $capture_file) = @_; - $orig_fh = qualify($orig_fh); # e.g. main::STDOUT - my $fhref = qualify_to_ref($orig_fh); # e.g. \*STDOUT - - # Duplicate the filehandle - my $saved_fh; - { - no strict 'refs'; ## no critic - needed for 5.005 - if ( defined fileno($orig_fh) && ! _is_wperl() ) { - $saved_fh = gensym; - open $saved_fh, ">&$orig_fh" or croak "Can't redirect <$orig_fh> - $!"; - } - } - - # Create replacement filehandle if not merging - my ($newio_fh, $newio_file); - if ( ! $merge_fh ) { - $newio_fh = gensym; - if ($capture_file) { - $newio_file = $capture_file; - } else { - (undef, $newio_file) = tempfile; - } - open $newio_fh, "+>$newio_file" or croak "Can't write temp file for $orig_fh - $!"; - } - else { - $newio_fh = qualify($merge_fh); - } - - # Redirect (or merge) - { - no strict 'refs'; ## no critic -- needed for 5.005 - open $fhref, ">&".fileno($newio_fh) or croak "Can't redirect $orig_fh - $!"; - } - - bless [$$, $orig_fh, $saved_fh, $capture_var, $newio_fh, $newio_file, $capture_file], $class; -} - -sub DESTROY { - my $self = shift; - - my ($pid, $orig_fh, $saved_fh, $capture_var, $newio_fh, - $newio_file, $capture_file) = @$self; - return unless $pid eq $$; # only cleanup in the process that is capturing - - # restore the original filehandle - my $fh_ref = Symbol::qualify_to_ref($orig_fh); - select((select ($fh_ref), $|=1)[0]); - if (defined $saved_fh) { - open $fh_ref, ">&". fileno($saved_fh) or croak "Can't restore $orig_fh - $!"; - } - else { - close $fh_ref; - } - - # transfer captured data to the scalar reference if we didn't merge - # $newio_file is undef if this file handle is merged to another - if (ref $capture_var && $newio_file) { - # some versions of perl complain about reading from fd 1 or 2 - # which could happen if STDOUT and STDERR were closed when $newio - # was opened, so we just squelch warnings here and continue - local $^W; - seek $newio_fh, 0, 0; - $$capture_var = do {local $/; <$newio_fh>}; - } - close $newio_fh if $newio_file; - - # Cleanup - return unless defined $newio_file && -e $newio_file; - return if $capture_file; # the "temp" file was explicitly named - unlink $newio_file or carp "Couldn't remove temp file '$newio_file' - $!"; -} - -1; - -__END__ - -=pod - -=encoding UTF-8 - -=head1 NAME - -IO::CaptureOutput - capture STDOUT and STDERR from Perl code, subprocesses or XS - -=head1 VERSION - -version 1.1104 - -=head1 SYNOPSIS - - use IO::CaptureOutput qw(capture qxx qxy); - - # STDOUT and STDERR separately - capture { noisy_sub(@args) } \$stdout, \$stderr; - - # STDOUT and STDERR together - capture { noisy_sub(@args) } \$combined, \$combined; - - # STDOUT and STDERR from external command - ($stdout, $stderr, $success) = qxx( @cmd ); - - # STDOUT and STDERR together from external command - ($combined, $success) = qxy( @cmd ); - -=head1 DESCRIPTION - -B<This module is no longer recommended by the maintainer> - see -L<Capture::Tiny> instead. - -This module provides routines for capturing STDOUT and STDERR from perl -subroutines, forked system calls (e.g. C<system()>, C<fork()>) and from XS -or C modules. - -=head1 NAME - -=head1 FUNCTIONS - -The following functions will be exported on demand. - -=head2 capture() - - capture \&subroutine, \$stdout, \$stderr; - -Captures everything printed to C<STDOUT> and C<STDERR> for the duration of -C<&subroutine>. C<$stdout> and C<$stderr> are optional scalars that will -contain C<STDOUT> and C<STDERR> respectively. - -C<capture()> uses a code prototype so the first argument can be specified -directly within brackets if desired. - - # shorthand with prototype - capture C< print __PACKAGE__ > \$stdout, \$stderr; - -Returns the return value(s) of C<&subroutine>. The sub is called in the -same context as C<capture()> was called e.g.: - - @rv = capture C< wantarray > ; # returns true - $rv = capture C< wantarray > ; # returns defined, but not true - capture C< wantarray >; # void, returns undef - -C<capture()> is able to capture output from subprocesses and C code, which -traditional C<tie()> methods of output capture are unable to do. - -B<Note:> C<capture()> will only capture output that has been written or -flushed to the filehandle. - -If the two scalar references refer to the same scalar, then C<STDERR> will -be merged to C<STDOUT> before capturing and the scalar will hold the -combined output of both. - - capture \&subroutine, \$combined, \$combined; - -Normally, C<capture()> uses anonymous, temporary files for capturing -output. If desired, specific file names may be provided instead as -additional options. - - capture \&subroutine, \$stdout, \$stderr, $out_file, $err_file; - -Files provided will be clobbered, overwriting any previous data, but will -persist after the call to C<capture()> for inspection or other -manipulation. - -By default, when no references are provided to hold STDOUT or STDERR, -output is captured and silently discarded. - - # Capture STDOUT, discard STDERR - capture \&subroutine, \$stdout; - - # Discard STDOUT, capture STDERR - capture \&subroutine, undef, \$stderr; - -However, even when using C<undef>, output can be captured to specific -files. - - # Capture STDOUT to a specific file, discard STDERR - capture \&subroutine, \$stdout, undef, $outfile; - - # Discard STDOUT, capture STDERR to a specific file - capture \&subroutine, undef, \$stderr, undef, $err_file; - - # Discard both, capture merged output to a specific file - capture \&subroutine, undef, undef, $mergedfile; - -It is a fatal error to merge STDOUT and STDERR and request separate, -specific files for capture. - - # ERROR: - capture \&subroutine, \$stdout, \$stdout, $out_file, $err_file; - capture \&subroutine, undef, undef, $out_file, $err_file; - -If either STDOUT or STDERR should be passed through to the terminal instead -of captured, provide a reference to undef -- C<\undef> -- instead of a -capture variable. - - # Capture STDOUT, display STDERR - capture \&subroutine, \$stdout, \undef; - - # Display STDOUT, capture STDERR - capture \&subroutine, \undef, \$stderr; - -=head2 capture_exec() - - ($stdout, $stderr, $success, $exit_code) = capture_exec(@args); - -Captures and returns the output from C<system(@args)>. In scalar context, -C<capture_exec()> will return what was printed to C<STDOUT>. In list -context, it returns what was printed to C<STDOUT> and C<STDERR> as well as -a success flag and the exit value. - - $stdout = capture_exec('perl', '-e', 'print "hello world"'); - - ($stdout, $stderr, $success, $exit_code) = - capture_exec('perl', '-e', 'warn "Test"'); - -C<capture_exec> passes its arguments to C<system()> and on MSWin32 will -protect arguments with shell quotes if necessary. This makes it a handy -and slightly more portable alternative to backticks, piped C<open()> and -C<IPC::Open3>. - -The C<$success> flag returned will be true if the command ran successfully -and false if it did not (if the command could not be run or if it ran and -returned a non-zero exit value). On failure, the raw exit value of the -C<system()> call is available both in the C<$exit_code> returned and in the -C<$?> variable. - - ($stdout, $stderr, $success, $exit_code) = - capture_exec('perl', '-e', 'warn "Test" and exit 1'); - - if ( ! $success ) { - print "The exit code was " . ($exit_code >> 8) . "\n"; - } - -See L<perlvar> for more information on interpreting a child process exit -code. - -=head2 capture_exec_combined() - - ($combined, $success, $exit_code) = capture_exec_combined( - 'perl', '-e', 'print "hello\n"', 'warn "Test\n" - ); - -This is just like C<capture_exec()>, except that it merges C<STDERR> with -C<STDOUT> before capturing output. - -B<Note:> there is no guarantee that text printed to C<STDOUT> and C<STDERR> -in the subprocess will be appear in order. The actual order will depend on -how IO buffering is handled in the subprocess. - -=head2 qxx() - -This is an alias for C<capture_exec()>. - -=head2 qxy() - -This is an alias for C<capture_exec_combined()>. - -=head1 SEE ALSO - -=over 4 - -=item * - -L<Capture::Tiny> - -=item * - -L<IPC::Open3> - -=item * - -L<IO::Capture> - -=item * - -L<IO::Utils> - -=item * - -L<IPC::System::Simple> - -=back - -=for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan - -=head1 SUPPORT - -=head2 Bugs / Feature Requests - -Please report any bugs or feature requests through the issue tracker -at L<https://github.com/dagolden/IO-CaptureOutput/issues>. -You will be notified automatically of any progress on your issue. - -=head2 Source Code - -This is open source software. The code repository is available for -public review and contribution under the terms of the license. - -L<https://github.com/dagolden/IO-CaptureOutput> - - git clone https://github.com/dagolden/IO-CaptureOutput.git - -=head1 AUTHORS - -=over 4 - -=item * - -Simon Flack <simonflk@cpan.org> - -=item * - -David Golden <dagolden@cpan.org> - -=back - -=head1 CONTRIBUTORS - -=for stopwords Mike Latimer Olivier Mengué Tony Cook - -=over 4 - -=item * - -Mike Latimer <mlatimer@suse.com> - -=item * - -Olivier Mengué <dolmen@cpan.org> - -=item * - -Tony Cook <tony@develop-help.com> - -=back - -=head1 COPYRIGHT AND LICENSE - -This software is copyright (c) 2015 by Simon Flack and David Golden. - -This is free software; you can redistribute it and/or modify it under -the same terms as the Perl 5 programming language system itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/InnerFile.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/InnerFile.pm deleted file mode 100644 index 230af3d3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/InnerFile.pm +++ /dev/null @@ -1,301 +0,0 @@ -package IO::InnerFile; - -=head1 NAME - -IO::InnerFile - define a file inside another file - - -=head1 SYNOPSIS - - - ### Read a subset of a file: - $inner = IO::InnerFile->new($fh, $start, $length); - while (<$inner>) { - ... - } - - -=head1 DESCRIPTION - -If you have a filehandle that can seek() and tell(), then you -can open an IO::InnerFile on a range of the underlying file. - - -=head1 PUBLIC INTERFACE - -=over - -=cut - -use Symbol; - -# The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "2.111"; - -#------------------------------ - -=item new FILEHANDLE, [START, [LENGTH]] - -I<Class method, constructor.> -Create a new inner-file opened on the given FILEHANDLE, -from bytes START to START+LENGTH. Both START and LENGTH -default to 0; negative values are silently coerced to zero. - -Note that FILEHANDLE must be able to seek() and tell(), in addition -to whatever other methods you may desire for reading it. - -=cut - -sub new { - my ($class, $fh, $start, $lg) = @_; - $start = 0 if (!$start or ($start < 0)); - $lg = 0 if (!$lg or ($lg < 0)); - - ### Create the underlying "object": - my $a = { - FH => $fh, - CRPOS => 0, - START => $start, - LG => $lg, - }; - - ### Create a new filehandle tied to this object: - $fh = gensym; - tie(*$fh, $class, $a); - return bless($fh, $class); -} - -sub TIEHANDLE { - my ($class, $data) = @_; - return bless($data, $class); -} - -sub DESTROY { - my ($self) = @_; - $self->close() if (ref($self) eq 'SCALAR'); -} - -#------------------------------ - -=item set_length LENGTH - -=item get_length - -=item add_length NBYTES - -I<Instance methods.> -Get/set the virtual length of the inner file. - -=cut - -sub set_length { tied(${$_[0]})->{LG} = $_[1]; } -sub get_length { tied(${$_[0]})->{LG}; } -sub add_length { tied(${$_[0]})->{LG} += $_[1]; } - -#------------------------------ - -=item set_start START - -=item get_start - -=item add_start NBYTES - -I<Instance methods.> -Get/set the virtual start position of the inner file. - -=cut - -sub set_start { tied(${$_[0]})->{START} = $_[1]; } -sub get_start { tied(${$_[0]})->{START}; } -sub set_end { tied(${$_[0]})->{LG} = $_[1] - tied(${$_[0]})->{START}; } -sub get_end { tied(${$_[0]})->{LG} + tied(${$_[0]})->{START}; } - - -#------------------------------ - -=item binmode - -=item close - -=item flush - -=item getc - -=item getline - -=item print LIST - -=item printf LIST - -=item read BUF, NBYTES - -=item readline - -=item seek OFFFSET, WHENCE - -=item tell - -=item write ARGS... - -I<Instance methods.> -Standard filehandle methods. - -=cut - -sub write { shift->WRITE(@_) } -sub print { shift->PRINT(@_) } -sub printf { shift->PRINTF(@_) } -sub flush { "0 but true"; } -sub fileno { } -sub binmode { 1; } -sub getc { return GETC(tied(${$_[0]}) ); } -sub read { return READ( tied(${$_[0]}), @_[1,2,3] ); } -sub readline { return READLINE( tied(${$_[0]}) ); } - -sub getline { return READLINE( tied(${$_[0]}) ); } -sub close { return CLOSE(tied(${$_[0]}) ); } - -sub seek { - my ($self, $ofs, $whence) = @_; - $self = tied( $$self ); - - $self->{CRPOS} = $ofs if ($whence == 0); - $self->{CRPOS}+= $ofs if ($whence == 1); - $self->{CRPOS} = $self->{LG} + $ofs if ($whence == 2); - - $self->{CRPOS} = 0 if ($self->{CRPOS} < 0); - $self->{CRPOS} = $self->{LG} if ($self->{CRPOS} > $self->{LG}); - return 1; -} - -sub tell { - return tied(${$_[0]})->{CRPOS}; -} - -sub WRITE { - die "inner files can only open for reading\n"; -} - -sub PRINT { - die "inner files can only open for reading\n"; -} - -sub PRINTF { - die "inner files can only open for reading\n"; -} - -sub GETC { - my ($self) = @_; - return 0 if ($self->{CRPOS} >= $self->{LG}); - - my $data; - - ### Save and seek... - my $old_pos = $self->{FH}->tell; - $self->{FH}->seek($self->{CRPOS}+$self->{START}, 0); - - ### ...read... - my $lg = $self->{FH}->read($data, 1); - $self->{CRPOS} += $lg; - - ### ...and restore: - $self->{FH}->seek($old_pos, 0); - - $self->{LG} = $self->{CRPOS} unless ($lg); - return ($lg ? $data : undef); -} - -sub READ { - my ($self, $undefined, $lg, $ofs) = @_; - $undefined = undef; - - return 0 if ($self->{CRPOS} >= $self->{LG}); - $lg = $self->{LG} - $self->{CRPOS} if ($self->{CRPOS} + $lg > $self->{LG}); - return 0 unless ($lg); - - ### Save and seek... - my $old_pos = $self->{FH}->tell; - $self->{FH}->seek($self->{CRPOS}+$self->{START}, 0); - - ### ...read... - $lg = $self->{FH}->read($_[1], $lg, $_[3] ); - $self->{CRPOS} += $lg; - - ### ...and restore: - $self->{FH}->seek($old_pos, 0); - - $self->{LG} = $self->{CRPOS} unless ($lg); - return $lg; -} - -sub READLINE { - my ($self) = @_; - return $self->_readline_helper() unless wantarray; - my @arr; - while(defined(my $line = $self->_readline_helper())) { - push(@arr, $line); - } - return @arr; -} - -sub _readline_helper { - my ($self) = @_; - return undef if ($self->{CRPOS} >= $self->{LG}); - - # Handle slurp mode (CPAN ticket #72710) - if (! defined($/)) { - my $text; - $self->READ($text, $self->{LG} - $self->{CRPOS}); - return $text; - } - - ### Save and seek... - my $old_pos = $self->{FH}->tell; - $self->{FH}->seek($self->{CRPOS}+$self->{START}, 0); - - ### ...read... - my $text = $self->{FH}->getline; - - ### ...and restore: - $self->{FH}->seek($old_pos, 0); - - #### If we detected a new EOF ... - unless (defined $text) { - $self->{LG} = $self->{CRPOS}; - return undef; - } - - my $lg=length($text); - - $lg = $self->{LG} - $self->{CRPOS} if ($self->{CRPOS} + $lg > $self->{LG}); - $self->{CRPOS} += $lg; - - return substr($text, 0,$lg); -} - -sub CLOSE { %{$_[0]}=(); } - - - -1; -__END__ - -=back - - -=head1 VERSION - -$Id: InnerFile.pm,v 1.4 2005/02/10 21:21:53 dfs Exp $ - - -=head1 AUTHOR - -Original version by Doru Petrescu (pdoru@kappa.ro). - -Documentation and by Eryq (eryq@zeegee.com). - -Currently maintained by Dianne Skoll (dfs@roaringpenguin.com). - -=cut - - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/Lines.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/Lines.pm deleted file mode 100644 index 3471d3ae..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/Lines.pm +++ /dev/null @@ -1,184 +0,0 @@ -package IO::Lines; - - -=head1 NAME - -IO::Lines - IO:: interface for reading/writing an array of lines - - -=head1 SYNOPSIS - - use IO::Lines; - - ### See IO::ScalarArray for details - - -=head1 DESCRIPTION - -This class implements objects which behave just like FileHandle -(or IO::Handle) objects, except that you may use them to write to -(or read from) an array of lines. They can be tiehandle'd as well. - -This is a subclass of L<IO::ScalarArray|IO::ScalarArray> -in which the underlying -array has its data stored in a line-oriented-format: that is, -every element ends in a C<"\n">, with the possible exception of the -final element. This makes C<getline()> I<much> more efficient; -if you plan to do line-oriented reading/printing, you want this class. - -The C<print()> method will enforce this rule, so you can print -arbitrary data to the line-array: it will break the data at -newlines appropriately. - -See L<IO::ScalarArray> for full usage and warnings. - -=cut - -use Carp; -use strict; -use IO::ScalarArray; -use vars qw($VERSION @ISA); - -# The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "2.111"; - -# Inheritance: -@ISA = qw(IO::ScalarArray); ### also gets us new_tie :-) - - -#------------------------------ -# -# getline -# -# Instance method, override. -# Return the next line, or undef on end of data. -# Can safely be called in an array context. -# Currently, lines are delimited by "\n". -# -sub getline { - my $self = shift; - - if (!defined $/) { - return join( '', $self->_getlines_for_newlines ); - } - elsif ($/ eq "\n") { - if (!*$self->{Pos}) { ### full line... - return *$self->{AR}[*$self->{Str}++]; - } - else { ### partial line... - my $partial = substr(*$self->{AR}[*$self->{Str}++], *$self->{Pos}); - *$self->{Pos} = 0; - return $partial; - } - } - else { - croak 'unsupported $/: must be "\n" or undef'; - } -} - -#------------------------------ -# -# getlines -# -# Instance method, override. -# Return an array comprised of the remaining lines, or () on end of data. -# Must be called in an array context. -# Currently, lines are delimited by "\n". -# -sub getlines { - my $self = shift; - wantarray or croak("can't call getlines in scalar context!"); - - if ((defined $/) and ($/ eq "\n")) { - return $self->_getlines_for_newlines(@_); - } - else { ### slow but steady - return $self->SUPER::getlines(@_); - } -} - -#------------------------------ -# -# _getlines_for_newlines -# -# Instance method, private. -# If $/ is newline, do fast getlines. -# This CAN NOT invoke getline! -# -sub _getlines_for_newlines { - my $self = shift; - my ($rArray, $Str, $Pos) = @{*$self}{ qw( AR Str Pos ) }; - my @partial = (); - - if ($Pos) { ### partial line... - @partial = (substr( $rArray->[ $Str++ ], $Pos )); - *$self->{Pos} = 0; - } - *$self->{Str} = scalar @$rArray; ### about to exhaust @$rArray - return (@partial, - @$rArray[ $Str .. $#$rArray ]); ### remaining full lines... -} - -#------------------------------ -# -# print ARGS... -# -# Instance method, override. -# Print ARGS to the underlying line array. -# -sub print { - if (defined $\ && $\ ne "\n") { - croak 'unsupported $\: must be "\n" or undef'; - } - - my $self = shift; - ### print STDERR "\n[[ARRAY WAS...\n", @{*$self->{AR}}, "<<EOF>>\n"; - my @lines = split /^/, join('', @_); @lines or return 1; - - ### Did the previous print not end with a newline? - ### If so, append first line: - if (@{*$self->{AR}} and (*$self->{AR}[-1] !~ /\n\Z/)) { - *$self->{AR}[-1] .= shift @lines; - } - push @{*$self->{AR}}, @lines; ### add the remainder - ### print STDERR "\n[[ARRAY IS NOW...\n", @{*$self->{AR}}, "<<EOF>>\n"; - 1; -} - -#------------------------------ -1; - -__END__ - - -=head1 VERSION - -$Id: Lines.pm,v 1.3 2005/02/10 21:21:53 dfs Exp $ - - -=head1 AUTHORS - - -=head2 Primary Maintainer - -Dianne Skoll (F<dfs@roaringpenguin.com>). - -=head2 Principal author - -Eryq (F<eryq@zeegee.com>). -President, ZeeGee Software Inc (F<http://www.zeegee.com>). - - -=head2 Other contributors - -Thanks to the following individuals for their invaluable contributions -(if I've forgotten or misspelled your name, please email me!): - -I<Morris M. Siegel,> -for his $/ patch and the new C<getlines()>. - -I<Doug Wilson,> -for the IO::Handle inheritance and automatic tie-ing. - -=cut - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/Scalar.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/Scalar.pm deleted file mode 100644 index 262fb7ea..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/Scalar.pm +++ /dev/null @@ -1,790 +0,0 @@ -package IO::Scalar; - - -=head1 NAME - -IO::Scalar - IO:: interface for reading/writing a scalar - - -=head1 SYNOPSIS - -Perform I/O on strings, using the basic OO interface... - - use 5.005; - use IO::Scalar; - $data = "My message:\n"; - - ### Open a handle on a string, and append to it: - $SH = new IO::Scalar \$data; - $SH->print("Hello"); - $SH->print(", world!\nBye now!\n"); - print "The string is now: ", $data, "\n"; - - ### Open a handle on a string, read it line-by-line, then close it: - $SH = new IO::Scalar \$data; - while (defined($_ = $SH->getline)) { - print "Got line: $_"; - } - $SH->close; - - ### Open a handle on a string, and slurp in all the lines: - $SH = new IO::Scalar \$data; - print "All lines:\n", $SH->getlines; - - ### Get the current position (either of two ways): - $pos = $SH->getpos; - $offset = $SH->tell; - - ### Set the current position (either of two ways): - $SH->setpos($pos); - $SH->seek($offset, 0); - - ### Open an anonymous temporary scalar: - $SH = new IO::Scalar; - $SH->print("Hi there!"); - print "I printed: ", ${$SH->sref}, "\n"; ### get at value - - -Don't like OO for your I/O? No problem. -Thanks to the magic of an invisible tie(), the following now -works out of the box, just as it does with IO::Handle: - - use 5.005; - use IO::Scalar; - $data = "My message:\n"; - - ### Open a handle on a string, and append to it: - $SH = new IO::Scalar \$data; - print $SH "Hello"; - print $SH ", world!\nBye now!\n"; - print "The string is now: ", $data, "\n"; - - ### Open a handle on a string, read it line-by-line, then close it: - $SH = new IO::Scalar \$data; - while (<$SH>) { - print "Got line: $_"; - } - close $SH; - - ### Open a handle on a string, and slurp in all the lines: - $SH = new IO::Scalar \$data; - print "All lines:\n", <$SH>; - - ### Get the current position (WARNING: requires 5.6): - $offset = tell $SH; - - ### Set the current position (WARNING: requires 5.6): - seek $SH, $offset, 0; - - ### Open an anonymous temporary scalar: - $SH = new IO::Scalar; - print $SH "Hi there!"; - print "I printed: ", ${$SH->sref}, "\n"; ### get at value - - -And for you folks with 1.x code out there: the old tie() style still works, -though this is I<unnecessary and deprecated>: - - use IO::Scalar; - - ### Writing to a scalar... - my $s; - tie *OUT, 'IO::Scalar', \$s; - print OUT "line 1\nline 2\n", "line 3\n"; - print "String is now: $s\n" - - ### Reading and writing an anonymous scalar... - tie *OUT, 'IO::Scalar'; - print OUT "line 1\nline 2\n", "line 3\n"; - tied(OUT)->seek(0,0); - while (<OUT>) { - print "Got line: ", $_; - } - - -Stringification works, too! - - my $SH = new IO::Scalar \$data; - print $SH "Hello, "; - print $SH "world!"; - print "I printed: $SH\n"; - - - -=head1 DESCRIPTION - -This class is part of the IO::Stringy distribution; -see L<IO::Stringy> for change log and general information. - -The IO::Scalar class implements objects which behave just like -IO::Handle (or FileHandle) objects, except that you may use them -to write to (or read from) scalars. These handles are -automatically tiehandle'd (though please see L<"WARNINGS"> -for information relevant to your Perl version). - - -Basically, this: - - my $s; - $SH = new IO::Scalar \$s; - $SH->print("Hel", "lo, "); ### OO style - $SH->print("world!\n"); ### ditto - -Or this: - - my $s; - $SH = tie *OUT, 'IO::Scalar', \$s; - print OUT "Hel", "lo, "; ### non-OO style - print OUT "world!\n"; ### ditto - -Causes $s to be set to: - - "Hello, world!\n" - - -=head1 PUBLIC INTERFACE - -=cut - -use Carp; -use strict; -use vars qw($VERSION @ISA); -use IO::Handle; - -use 5.005; - -### Stringification, courtesy of B. K. Oxley (binkley): :-) -use overload '""' => sub { ${*{$_[0]}->{SR}} }; -use overload 'bool' => sub { 1 }; ### have to do this, so object is true! - -### The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "2.111"; - -### Inheritance: -@ISA = qw(IO::Handle); - -### This stuff should be got rid of ASAP. -require IO::WrapTie and push @ISA, 'IO::WrapTie::Slave' if ($] >= 5.004); - -#============================== - -=head2 Construction - -=over 4 - -=cut - -#------------------------------ - -=item new [ARGS...] - -I<Class method.> -Return a new, unattached scalar handle. -If any arguments are given, they're sent to open(). - -=cut - -sub new { - my $proto = shift; - my $class = ref($proto) || $proto; - my $self = bless \do { local *FH }, $class; - tie *$self, $class, $self; - $self->open(@_); ### open on anonymous by default - $self; -} -sub DESTROY { - shift->close; -} - -#------------------------------ - -=item open [SCALARREF] - -I<Instance method.> -Open the scalar handle on a new scalar, pointed to by SCALARREF. -If no SCALARREF is given, a "private" scalar is created to hold -the file data. - -Returns the self object on success, undefined on error. - -=cut - -sub open { - my ($self, $sref) = @_; - - ### Sanity: - defined($sref) or do {my $s = ''; $sref = \$s}; - (ref($sref) eq "SCALAR") or croak "open() needs a ref to a scalar"; - - ### Setup: - *$self->{Pos} = 0; ### seek position - *$self->{SR} = $sref; ### scalar reference - $self; -} - -#------------------------------ - -=item opened - -I<Instance method.> -Is the scalar handle opened on something? - -=cut - -sub opened { - *{shift()}->{SR}; -} - -#------------------------------ - -=item close - -I<Instance method.> -Disassociate the scalar handle from its underlying scalar. -Done automatically on destroy. - -=cut - -sub close { - my $self = shift; - %{*$self} = (); - 1; -} - -=back - -=cut - - - -#============================== - -=head2 Input and output - -=over 4 - -=cut - - -#------------------------------ - -=item flush - -I<Instance method.> -No-op, provided for OO compatibility. - -=cut - -sub flush { "0 but true" } - -#------------------------------ - -=item fileno - -I<Instance method.> -No-op, returns undef - -=cut - -sub fileno { } - -#------------------------------ - -=item getc - -I<Instance method.> -Return the next character, or undef if none remain. - -=cut - -sub getc { - my $self = shift; - - ### Return undef right away if at EOF; else, move pos forward: - return undef if $self->eof; - substr(${*$self->{SR}}, *$self->{Pos}++, 1); -} - -#------------------------------ - -=item getline - -I<Instance method.> -Return the next line, or undef on end of string. -Can safely be called in an array context. -Currently, lines are delimited by "\n". - -=cut - -sub getline { - my $self = shift; - - ### Return undef right away if at EOF: - return undef if $self->eof; - - ### Get next line: - my $sr = *$self->{SR}; - my $i = *$self->{Pos}; ### Start matching at this point. - - ### Minimal impact implementation! - ### We do the fast thing (no regexps) if using the - ### classic input record separator. - - ### Case 1: $/ is undef: slurp all... - if (!defined($/)) { - *$self->{Pos} = length $$sr; - return substr($$sr, $i); - } - - ### Case 2: $/ is "\n": zoom zoom zoom... - elsif ($/ eq "\012") { - - ### Seek ahead for "\n"... yes, this really is faster than regexps. - my $len = length($$sr); - for (; $i < $len; ++$i) { - last if ord (substr ($$sr, $i, 1)) == 10; - } - - ### Extract the line: - my $line; - if ($i < $len) { ### We found a "\n": - $line = substr ($$sr, *$self->{Pos}, $i - *$self->{Pos} + 1); - *$self->{Pos} = $i+1; ### Remember where we finished up. - } - else { ### No "\n"; slurp the remainder: - $line = substr ($$sr, *$self->{Pos}, $i - *$self->{Pos}); - *$self->{Pos} = $len; - } - return $line; - } - - ### Case 3: $/ is ref to int. Do fixed-size records. - ### (Thanks to Dominique Quatravaux.) - elsif (ref($/)) { - my $len = length($$sr); - my $i = ${$/} + 0; - my $line = substr ($$sr, *$self->{Pos}, $i); - *$self->{Pos} += $i; - *$self->{Pos} = $len if (*$self->{Pos} > $len); - return $line; - } - - ### Case 4: $/ is either "" (paragraphs) or something weird... - ### This is Graham's general-purpose stuff, which might be - ### a tad slower than Case 2 for typical data, because - ### of the regexps. - else { - pos($$sr) = $i; - - ### If in paragraph mode, skip leading lines (and update i!): - length($/) or - (($$sr =~ m/\G\n*/g) and ($i = pos($$sr))); - - ### If we see the separator in the buffer ahead... - if (length($/) - ? $$sr =~ m,\Q$/\E,g ### (ordinary sep) TBD: precomp! - : $$sr =~ m,\n\n,g ### (a paragraph) - ) { - *$self->{Pos} = pos $$sr; - return substr($$sr, $i, *$self->{Pos}-$i); - } - ### Else if no separator remains, just slurp the rest: - else { - *$self->{Pos} = length $$sr; - return substr($$sr, $i); - } - } -} - -#------------------------------ - -=item getlines - -I<Instance method.> -Get all remaining lines. -It will croak() if accidentally called in a scalar context. - -=cut - -sub getlines { - my $self = shift; - wantarray or croak("can't call getlines in scalar context!"); - my ($line, @lines); - push @lines, $line while (defined($line = $self->getline)); - @lines; -} - -#------------------------------ - -=item print ARGS... - -I<Instance method.> -Print ARGS to the underlying scalar. - -B<Warning:> this continues to always cause a seek to the end -of the string, but if you perform seek()s and tell()s, it is -still safer to explicitly seek-to-end before subsequent print()s. - -=cut - -sub print { - my $self = shift; - *$self->{Pos} = length(${*$self->{SR}} .= join('', @_) . (defined($\) ? $\ : "")); - 1; -} -sub _unsafe_print { - my $self = shift; - my $append = join('', @_) . $\; - ${*$self->{SR}} .= $append; - *$self->{Pos} += length($append); - 1; -} -sub _old_print { - my $self = shift; - ${*$self->{SR}} .= join('', @_) . $\; - *$self->{Pos} = length(${*$self->{SR}}); - 1; -} - - -#------------------------------ - -=item read BUF, NBYTES, [OFFSET] - -I<Instance method.> -Read some bytes from the scalar. -Returns the number of bytes actually read, 0 on end-of-file, undef on error. - -=cut - -sub read { - my $self = $_[0]; - my $n = $_[2]; - my $off = $_[3] || 0; - - my $read = substr(${*$self->{SR}}, *$self->{Pos}, $n); - $n = length($read); - *$self->{Pos} += $n; - ($off ? substr($_[1], $off) : $_[1]) = $read; - return $n; -} - -#------------------------------ - -=item write BUF, NBYTES, [OFFSET] - -I<Instance method.> -Write some bytes to the scalar. - -=cut - -sub write { - my $self = $_[0]; - my $n = $_[2]; - my $off = $_[3] || 0; - - my $data = substr($_[1], $off, $n); - $n = length($data); - $self->print($data); - return $n; -} - -#------------------------------ - -=item sysread BUF, LEN, [OFFSET] - -I<Instance method.> -Read some bytes from the scalar. -Returns the number of bytes actually read, 0 on end-of-file, undef on error. - -=cut - -sub sysread { - my $self = shift; - $self->read(@_); -} - -#------------------------------ - -=item syswrite BUF, NBYTES, [OFFSET] - -I<Instance method.> -Write some bytes to the scalar. - -=cut - -sub syswrite { - my $self = shift; - $self->write(@_); -} - -=back - -=cut - - -#============================== - -=head2 Seeking/telling and other attributes - -=over 4 - -=cut - - -#------------------------------ - -=item autoflush - -I<Instance method.> -No-op, provided for OO compatibility. - -=cut - -sub autoflush {} - -#------------------------------ - -=item binmode - -I<Instance method.> -No-op, provided for OO compatibility. - -=cut - -sub binmode {} - -#------------------------------ - -=item clearerr - -I<Instance method.> Clear the error and EOF flags. A no-op. - -=cut - -sub clearerr { 1 } - -#------------------------------ - -=item eof - -I<Instance method.> Are we at end of file? - -=cut - -sub eof { - my $self = shift; - (*$self->{Pos} >= length(${*$self->{SR}})); -} - -#------------------------------ - -=item seek OFFSET, WHENCE - -I<Instance method.> Seek to a given position in the stream. - -=cut - -sub seek { - my ($self, $pos, $whence) = @_; - my $eofpos = length(${*$self->{SR}}); - - ### Seek: - if ($whence == 0) { *$self->{Pos} = $pos } ### SEEK_SET - elsif ($whence == 1) { *$self->{Pos} += $pos } ### SEEK_CUR - elsif ($whence == 2) { *$self->{Pos} = $eofpos + $pos} ### SEEK_END - else { croak "bad seek whence ($whence)" } - - ### Fixup: - if (*$self->{Pos} < 0) { *$self->{Pos} = 0 } - if (*$self->{Pos} > $eofpos) { *$self->{Pos} = $eofpos } - return 1; -} - -#------------------------------ - -=item sysseek OFFSET, WHENCE - -I<Instance method.> Identical to C<seek OFFSET, WHENCE>, I<q.v.> - -=cut - -sub sysseek { - my $self = shift; - $self->seek (@_); -} - -#------------------------------ - -=item tell - -I<Instance method.> -Return the current position in the stream, as a numeric offset. - -=cut - -sub tell { *{shift()}->{Pos} } - -#------------------------------ -# -# use_RS [YESNO] -# -# I<Instance method.> -# Obey the current setting of $/, like IO::Handle does? -# Default is false in 1.x, but cold-welded true in 2.x and later. -# -sub use_RS { - my ($self, $yesno) = @_; - carp "use_RS is deprecated and ignored; \$/ is always consulted\n"; - } - -#------------------------------ - -=item setpos POS - -I<Instance method.> -Set the current position, using the opaque value returned by C<getpos()>. - -=cut - -sub setpos { shift->seek($_[0],0) } - -#------------------------------ - -=item getpos - -I<Instance method.> -Return the current position in the string, as an opaque object. - -=cut - -*getpos = \&tell; - - -#------------------------------ - -=item sref - -I<Instance method.> -Return a reference to the underlying scalar. - -=cut - -sub sref { *{shift()}->{SR} } - - -#------------------------------ -# Tied handle methods... -#------------------------------ - -# Conventional tiehandle interface: -sub TIEHANDLE { - ((defined($_[1]) && UNIVERSAL::isa($_[1], "IO::Scalar")) - ? $_[1] - : shift->new(@_)); -} -sub GETC { shift->getc(@_) } -sub PRINT { shift->print(@_) } -sub PRINTF { shift->print(sprintf(shift, @_)) } -sub READ { shift->read(@_) } -sub READLINE { wantarray ? shift->getlines(@_) : shift->getline(@_) } -sub WRITE { shift->write(@_); } -sub CLOSE { shift->close(@_); } -sub SEEK { shift->seek(@_); } -sub TELL { shift->tell(@_); } -sub EOF { shift->eof(@_); } -sub BINMODE { 1; } - -#------------------------------------------------------------ - -1; - -__END__ - - - -=back - -=cut - - -=head1 WARNINGS - -Perl's TIEHANDLE spec was incomplete prior to 5.005_57; -it was missing support for C<seek()>, C<tell()>, and C<eof()>. -Attempting to use these functions with an IO::Scalar will not work -prior to 5.005_57. IO::Scalar will not have the relevant methods -invoked; and even worse, this kind of bug can lie dormant for a while. -If you turn warnings on (via C<$^W> or C<perl -w>), -and you see something like this... - - attempt to seek on unopened filehandle - -...then you are probably trying to use one of these functions -on an IO::Scalar with an old Perl. The remedy is to simply -use the OO version; e.g.: - - $SH->seek(0,0); ### GOOD: will work on any 5.005 - seek($SH,0,0); ### WARNING: will only work on 5.005_57 and beyond - - -=head1 VERSION - -$Id: Scalar.pm,v 1.6 2005/02/10 21:21:53 dfs Exp $ - - -=head1 AUTHORS - -=head2 Primary Maintainer - -Dianne Skoll (F<dfs@roaringpenguin.com>). - -=head2 Principal author - -Eryq (F<eryq@zeegee.com>). -President, ZeeGee Software Inc (F<http://www.zeegee.com>). - - -=head2 Other contributors - -The full set of contributors always includes the folks mentioned -in L<IO::Stringy/"CHANGE LOG">. But just the same, special -thanks to the following individuals for their invaluable contributions -(if I've forgotten or misspelled your name, please email me!): - -I<Andy Glew,> -for contributing C<getc()>. - -I<Brandon Browning,> -for suggesting C<opened()>. - -I<David Richter,> -for finding and fixing the bug in C<PRINTF()>. - -I<Eric L. Brine,> -for his offset-using read() and write() implementations. - -I<Richard Jones,> -for his patches to massively improve the performance of C<getline()> -and add C<sysread> and C<syswrite>. - -I<B. K. Oxley (binkley),> -for stringification and inheritance improvements, -and sundry good ideas. - -I<Doug Wilson,> -for the IO::Handle inheritance and automatic tie-ing. - - -=head1 SEE ALSO - -L<IO::String>, which is quite similar but which was designed -more-recently and with an IO::Handle-like interface in mind, -so you could mix OO- and native-filehandle usage without using tied(). - -I<Note:> as of version 2.x, these classes all work like -their IO::Handle counterparts, so we have comparable -functionality to IO::String. - -=cut - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/ScalarArray.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/ScalarArray.pm deleted file mode 100644 index 14399764..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/ScalarArray.pm +++ /dev/null @@ -1,803 +0,0 @@ -package IO::ScalarArray; - - -=head1 NAME - -IO::ScalarArray - IO:: interface for reading/writing an array of scalars - - -=head1 SYNOPSIS - -Perform I/O on strings, using the basic OO interface... - - use IO::ScalarArray; - @data = ("My mes", "sage:\n"); - - ### Open a handle on an array, and append to it: - $AH = new IO::ScalarArray \@data; - $AH->print("Hello"); - $AH->print(", world!\nBye now!\n"); - print "The array is now: ", @data, "\n"; - - ### Open a handle on an array, read it line-by-line, then close it: - $AH = new IO::ScalarArray \@data; - while (defined($_ = $AH->getline)) { - print "Got line: $_"; - } - $AH->close; - - ### Open a handle on an array, and slurp in all the lines: - $AH = new IO::ScalarArray \@data; - print "All lines:\n", $AH->getlines; - - ### Get the current position (either of two ways): - $pos = $AH->getpos; - $offset = $AH->tell; - - ### Set the current position (either of two ways): - $AH->setpos($pos); - $AH->seek($offset, 0); - - ### Open an anonymous temporary array: - $AH = new IO::ScalarArray; - $AH->print("Hi there!"); - print "I printed: ", @{$AH->aref}, "\n"; ### get at value - - -Don't like OO for your I/O? No problem. -Thanks to the magic of an invisible tie(), the following now -works out of the box, just as it does with IO::Handle: - - use IO::ScalarArray; - @data = ("My mes", "sage:\n"); - - ### Open a handle on an array, and append to it: - $AH = new IO::ScalarArray \@data; - print $AH "Hello"; - print $AH ", world!\nBye now!\n"; - print "The array is now: ", @data, "\n"; - - ### Open a handle on a string, read it line-by-line, then close it: - $AH = new IO::ScalarArray \@data; - while (<$AH>) { - print "Got line: $_"; - } - close $AH; - - ### Open a handle on a string, and slurp in all the lines: - $AH = new IO::ScalarArray \@data; - print "All lines:\n", <$AH>; - - ### Get the current position (WARNING: requires 5.6): - $offset = tell $AH; - - ### Set the current position (WARNING: requires 5.6): - seek $AH, $offset, 0; - - ### Open an anonymous temporary scalar: - $AH = new IO::ScalarArray; - print $AH "Hi there!"; - print "I printed: ", @{$AH->aref}, "\n"; ### get at value - - -And for you folks with 1.x code out there: the old tie() style still works, -though this is I<unnecessary and deprecated>: - - use IO::ScalarArray; - - ### Writing to a scalar... - my @a; - tie *OUT, 'IO::ScalarArray', \@a; - print OUT "line 1\nline 2\n", "line 3\n"; - print "Array is now: ", @a, "\n" - - ### Reading and writing an anonymous scalar... - tie *OUT, 'IO::ScalarArray'; - print OUT "line 1\nline 2\n", "line 3\n"; - tied(OUT)->seek(0,0); - while (<OUT>) { - print "Got line: ", $_; - } - - - -=head1 DESCRIPTION - -This class is part of the IO::Stringy distribution; -see L<IO::Stringy> for change log and general information. - -The IO::ScalarArray class implements objects which behave just like -IO::Handle (or FileHandle) objects, except that you may use them -to write to (or read from) arrays of scalars. Logically, an -array of scalars defines an in-core "file" whose contents are -the concatenation of the scalars in the array. The handles created by -this class are automatically tiehandle'd (though please see L<"WARNINGS"> -for information relevant to your Perl version). - -For writing large amounts of data with individual print() statements, -this class is likely to be more efficient than IO::Scalar. - -Basically, this: - - my @a; - $AH = new IO::ScalarArray \@a; - $AH->print("Hel", "lo, "); ### OO style - $AH->print("world!\n"); ### ditto - -Or this: - - my @a; - $AH = new IO::ScalarArray \@a; - print $AH "Hel", "lo, "; ### non-OO style - print $AH "world!\n"; ### ditto - -Causes @a to be set to the following array of 3 strings: - - ( "Hel" , - "lo, " , - "world!\n" ) - -See L<IO::Scalar> and compare with this class. - - -=head1 PUBLIC INTERFACE - -=cut - -use Carp; -use strict; -use vars qw($VERSION @ISA); -use IO::Handle; - -# The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "2.111"; - -# Inheritance: -@ISA = qw(IO::Handle); -require IO::WrapTie and push @ISA, 'IO::WrapTie::Slave' if ($] >= 5.004); - - -#============================== - -=head2 Construction - -=over 4 - -=cut - -#------------------------------ - -=item new [ARGS...] - -I<Class method.> -Return a new, unattached array handle. -If any arguments are given, they're sent to open(). - -=cut - -sub new { - my $proto = shift; - my $class = ref($proto) || $proto; - my $self = bless \do { local *FH }, $class; - tie *$self, $class, $self; - $self->open(@_); ### open on anonymous by default - $self; -} -sub DESTROY { - shift->close; -} - - -#------------------------------ - -=item open [ARRAYREF] - -I<Instance method.> -Open the array handle on a new array, pointed to by ARRAYREF. -If no ARRAYREF is given, a "private" array is created to hold -the file data. - -Returns the self object on success, undefined on error. - -=cut - -sub open { - my ($self, $aref) = @_; - - ### Sanity: - defined($aref) or do {my @a; $aref = \@a}; - (ref($aref) eq "ARRAY") or croak "open needs a ref to a array"; - - ### Setup: - $self->setpos([0,0]); - *$self->{AR} = $aref; - $self; -} - -#------------------------------ - -=item opened - -I<Instance method.> -Is the array handle opened on something? - -=cut - -sub opened { - *{shift()}->{AR}; -} - -#------------------------------ - -=item close - -I<Instance method.> -Disassociate the array handle from its underlying array. -Done automatically on destroy. - -=cut - -sub close { - my $self = shift; - %{*$self} = (); - 1; -} - -=back - -=cut - - - -#============================== - -=head2 Input and output - -=over 4 - -=cut - -#------------------------------ - -=item flush - -I<Instance method.> -No-op, provided for OO compatibility. - -=cut - -sub flush { "0 but true" } - -#------------------------------ - -=item fileno - -I<Instance method.> -No-op, returns undef - -=cut - -sub fileno { } - -#------------------------------ - -=item getc - -I<Instance method.> -Return the next character, or undef if none remain. -This does a read(1), which is somewhat costly. - -=cut - -sub getc { - my $buf = ''; - ($_[0]->read($buf, 1) ? $buf : undef); -} - -#------------------------------ - -=item getline - -I<Instance method.> -Return the next line, or undef on end of data. -Can safely be called in an array context. -Currently, lines are delimited by "\n". - -=cut - -sub getline { - my $self = shift; - my ($str, $line) = (undef, ''); - - - ### Minimal impact implementation! - ### We do the fast thing (no regexps) if using the - ### classic input record separator. - - ### Case 1: $/ is undef: slurp all... - if (!defined($/)) { - - return undef if ($self->eof); - - ### Get the rest of the current string, followed by remaining strings: - my $ar = *$self->{AR}; - my @slurp = ( - substr($ar->[*$self->{Str}], *$self->{Pos}), - @$ar[(1 + *$self->{Str}) .. $#$ar ] - ); - - ### Seek to end: - $self->_setpos_to_eof; - return join('', @slurp); - } - - ### Case 2: $/ is "\n": - elsif ($/ eq "\012") { - - ### Until we hit EOF (or exited because of a found line): - until ($self->eof) { - ### If at end of current string, go fwd to next one (won't be EOF): - if ($self->_eos) {++*$self->{Str}, *$self->{Pos}=0}; - - ### Get ref to current string in array, and set internal pos mark: - $str = \(*$self->{AR}[*$self->{Str}]); ### get current string - pos($$str) = *$self->{Pos}; ### start matching from here - - ### Get from here to either \n or end of string, and add to line: - $$str =~ m/\G(.*?)((\n)|\Z)/g; ### match to 1st \n or EOS - $line .= $1.$2; ### add it - *$self->{Pos} += length($1.$2); ### move fwd by len matched - return $line if $3; ### done, got line with "\n" - } - return ($line eq '') ? undef : $line; ### return undef if EOF - } - - ### Case 3: $/ is ref to int. Bail out. - elsif (ref($/)) { - croak '$/ given as a ref to int; currently unsupported'; - } - - ### Case 4: $/ is either "" (paragraphs) or something weird... - ### Bail for now. - else { - croak '$/ as given is currently unsupported'; - } -} - -#------------------------------ - -=item getlines - -I<Instance method.> -Get all remaining lines. -It will croak() if accidentally called in a scalar context. - -=cut - -sub getlines { - my $self = shift; - wantarray or croak("can't call getlines in scalar context!"); - my ($line, @lines); - push @lines, $line while (defined($line = $self->getline)); - @lines; -} - -#------------------------------ - -=item print ARGS... - -I<Instance method.> -Print ARGS to the underlying array. - -Currently, this always causes a "seek to the end of the array" -and generates a new array entry. This may change in the future. - -=cut - -sub print { - my $self = shift; - push @{*$self->{AR}}, join('', @_) . (defined($\) ? $\ : ""); ### add the data - $self->_setpos_to_eof; - 1; -} - -#------------------------------ - -=item read BUF, NBYTES, [OFFSET]; - -I<Instance method.> -Read some bytes from the array. -Returns the number of bytes actually read, 0 on end-of-file, undef on error. - -=cut - -sub read { - my $self = $_[0]; - ### we must use $_[1] as a ref - my $n = $_[2]; - my $off = $_[3] || 0; - - ### print "getline\n"; - my $justread; - my $len; - ($off ? substr($_[1], $off) : $_[1]) = ''; - - ### Stop when we have zero bytes to go, or when we hit EOF: - my @got; - until (!$n or $self->eof) { - ### If at end of current string, go forward to next one (won't be EOF): - if ($self->_eos) { - ++*$self->{Str}; - *$self->{Pos} = 0; - } - - ### Get longest possible desired substring of current string: - $justread = substr(*$self->{AR}[*$self->{Str}], *$self->{Pos}, $n); - $len = length($justread); - push @got, $justread; - $n -= $len; - *$self->{Pos} += $len; - } - $_[1] .= join('', @got); - return length($_[1])-$off; -} - -#------------------------------ - -=item write BUF, NBYTES, [OFFSET]; - -I<Instance method.> -Write some bytes into the array. - -=cut - -sub write { - my $self = $_[0]; - my $n = $_[2]; - my $off = $_[3] || 0; - - my $data = substr($_[1], $n, $off); - $n = length($data); - $self->print($data); - return $n; -} - - -=back - -=cut - - - -#============================== - -=head2 Seeking/telling and other attributes - -=over 4 - -=cut - -#------------------------------ - -=item autoflush - -I<Instance method.> -No-op, provided for OO compatibility. - -=cut - -sub autoflush {} - -#------------------------------ - -=item binmode - -I<Instance method.> -No-op, provided for OO compatibility. - -=cut - -sub binmode {} - -#------------------------------ - -=item clearerr - -I<Instance method.> Clear the error and EOF flags. A no-op. - -=cut - -sub clearerr { 1 } - -#------------------------------ - -=item eof - -I<Instance method.> Are we at end of file? - -=cut - -sub eof { - ### print "checking EOF [*$self->{Str}, *$self->{Pos}]\n"; - ### print "SR = ", $#{*$self->{AR}}, "\n"; - - return 0 if (*{$_[0]}->{Str} < $#{*{$_[0]}->{AR}}); ### before EOA - return 1 if (*{$_[0]}->{Str} > $#{*{$_[0]}->{AR}}); ### after EOA - ### ### at EOA, past EOS: - ((*{$_[0]}->{Str} == $#{*{$_[0]}->{AR}}) && ($_[0]->_eos)); -} - -#------------------------------ -# -# _eos -# -# I<Instance method, private.> Are we at end of the CURRENT string? -# -sub _eos { - (*{$_[0]}->{Pos} >= length(*{$_[0]}->{AR}[*{$_[0]}->{Str}])); ### past last char -} - -#------------------------------ - -=item seek POS,WHENCE - -I<Instance method.> -Seek to a given position in the stream. -Only a WHENCE of 0 (SEEK_SET) is supported. - -=cut - -sub seek { - my ($self, $pos, $whence) = @_; - - ### Seek: - if ($whence == 0) { $self->_seek_set($pos); } - elsif ($whence == 1) { $self->_seek_cur($pos); } - elsif ($whence == 2) { $self->_seek_end($pos); } - else { croak "bad seek whence ($whence)" } - return 1; -} - -#------------------------------ -# -# _seek_set POS -# -# Instance method, private. -# Seek to $pos relative to start: -# -sub _seek_set { - my ($self, $pos) = @_; - - ### Advance through array until done: - my $istr = 0; - while (($pos >= 0) && ($istr < scalar(@{*$self->{AR}}))) { - if (length(*$self->{AR}[$istr]) > $pos) { ### it's in this string! - return $self->setpos([$istr, $pos]); - } - else { ### it's in next string - $pos -= length(*$self->{AR}[$istr++]); ### move forward one string - } - } - ### If we reached this point, pos is at or past end; zoom to EOF: - return $self->_setpos_to_eof; -} - -#------------------------------ -# -# _seek_cur POS -# -# Instance method, private. -# Seek to $pos relative to current position. -# -sub _seek_cur { - my ($self, $pos) = @_; - $self->_seek_set($self->tell + $pos); -} - -#------------------------------ -# -# _seek_end POS -# -# Instance method, private. -# Seek to $pos relative to end. -# We actually seek relative to beginning, which is simple. -# -sub _seek_end { - my ($self, $pos) = @_; - $self->_seek_set($self->_tell_eof + $pos); -} - -#------------------------------ - -=item tell - -I<Instance method.> -Return the current position in the stream, as a numeric offset. - -=cut - -sub tell { - my $self = shift; - my $off = 0; - my ($s, $str_s); - for ($s = 0; $s < *$self->{Str}; $s++) { ### count all "whole" scalars - defined($str_s = *$self->{AR}[$s]) or $str_s = ''; - ###print STDERR "COUNTING STRING $s (". length($str_s) . ")\n"; - $off += length($str_s); - } - ###print STDERR "COUNTING POS ($self->{Pos})\n"; - return ($off += *$self->{Pos}); ### plus the final, partial one -} - -#------------------------------ -# -# _tell_eof -# -# Instance method, private. -# Get position of EOF, as a numeric offset. -# This is identical to the size of the stream - 1. -# -sub _tell_eof { - my $self = shift; - my $len = 0; - foreach (@{*$self->{AR}}) { $len += length($_) } - $len; -} - -#------------------------------ - -=item setpos POS - -I<Instance method.> -Seek to a given position in the array, using the opaque getpos() value. -Don't expect this to be a number. - -=cut - -sub setpos { - my ($self, $pos) = @_; - (ref($pos) eq 'ARRAY') or - die "setpos: only use a value returned by getpos!\n"; - (*$self->{Str}, *$self->{Pos}) = @$pos; -} - -#------------------------------ -# -# _setpos_to_eof -# -# Fast-forward to EOF. -# -sub _setpos_to_eof { - my $self = shift; - $self->setpos([scalar(@{*$self->{AR}}), 0]); -} - -#------------------------------ - -=item getpos - -I<Instance method.> -Return the current position in the array, as an opaque value. -Don't expect this to be a number. - -=cut - -sub getpos { - [*{$_[0]}->{Str}, *{$_[0]}->{Pos}]; -} - -#------------------------------ - -=item aref - -I<Instance method.> -Return a reference to the underlying array. - -=cut - -sub aref { - *{shift()}->{AR}; -} - -=back - -=cut - -#------------------------------ -# Tied handle methods... -#------------------------------ - -### Conventional tiehandle interface: -sub TIEHANDLE { (defined($_[1]) && UNIVERSAL::isa($_[1],"IO::ScalarArray")) - ? $_[1] - : shift->new(@_) } -sub GETC { shift->getc(@_) } -sub PRINT { shift->print(@_) } -sub PRINTF { shift->print(sprintf(shift, @_)) } -sub READ { shift->read(@_) } -sub READLINE { wantarray ? shift->getlines(@_) : shift->getline(@_) } -sub WRITE { shift->write(@_); } -sub CLOSE { shift->close(@_); } -sub SEEK { shift->seek(@_); } -sub TELL { shift->tell(@_); } -sub EOF { shift->eof(@_); } -sub BINMODE { 1; } - -#------------------------------------------------------------ - -1; -__END__ - -# SOME PRIVATE NOTES: -# -# * The "current position" is the position before the next -# character to be read/written. -# -# * Str gives the string index of the current position, 0-based -# -# * Pos gives the offset within AR[Str], 0-based. -# -# * Inital pos is [0,0]. After print("Hello"), it is [1,0]. - - - -=head1 WARNINGS - -Perl's TIEHANDLE spec was incomplete prior to 5.005_57; -it was missing support for C<seek()>, C<tell()>, and C<eof()>. -Attempting to use these functions with an IO::ScalarArray will not work -prior to 5.005_57. IO::ScalarArray will not have the relevant methods -invoked; and even worse, this kind of bug can lie dormant for a while. -If you turn warnings on (via C<$^W> or C<perl -w>), -and you see something like this... - - attempt to seek on unopened filehandle - -...then you are probably trying to use one of these functions -on an IO::ScalarArray with an old Perl. The remedy is to simply -use the OO version; e.g.: - - $AH->seek(0,0); ### GOOD: will work on any 5.005 - seek($AH,0,0); ### WARNING: will only work on 5.005_57 and beyond - - - -=head1 VERSION - -$Id: ScalarArray.pm,v 1.7 2005/02/10 21:21:53 dfs Exp $ - - -=head1 AUTHOR - -=head2 Primary Maintainer - -Dianne Skoll (F<dfs@roaringpenguin.com>). - -=head2 Principal author - -Eryq (F<eryq@zeegee.com>). -President, ZeeGee Software Inc (F<http://www.zeegee.com>). - - -=head2 Other contributors - -Thanks to the following individuals for their invaluable contributions -(if I've forgotten or misspelled your name, please email me!): - -I<Andy Glew,> -for suggesting C<getc()>. - -I<Brandon Browning,> -for suggesting C<opened()>. - -I<Eric L. Brine,> -for his offset-using read() and write() implementations. - -I<Doug Wilson,> -for the IO::Handle inheritance and automatic tie-ing. - -=cut - -#------------------------------ -1; - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/Stringy.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/Stringy.pm deleted file mode 100644 index c97c1d12..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/Stringy.pm +++ /dev/null @@ -1,446 +0,0 @@ -package IO::Stringy; - -use vars qw($VERSION); -$VERSION = "2.111"; - -1; -__END__ - - -=head1 NAME - -IO-stringy - I/O on in-core objects like strings and arrays - - -=head1 SYNOPSIS - - IO:: - ::AtomicFile adpO Write a file which is updated atomically ERYQ - ::Lines bdpO I/O handle to read/write to array of lines ERYQ - ::Scalar RdpO I/O handle to read/write to a string ERYQ - ::ScalarArray RdpO I/O handle to read/write to array of scalars ERYQ - ::Wrap RdpO Wrap old-style FHs in standard OO interface ERYQ - ::WrapTie adpO Tie your handles & retain full OO interface ERYQ - - -=head1 DESCRIPTION - -This toolkit primarily provides modules for performing both traditional -and object-oriented i/o) on things I<other> than normal filehandles; -in particular, L<IO::Scalar|IO::Scalar>, L<IO::ScalarArray|IO::ScalarArray>, -and L<IO::Lines|IO::Lines>. - -In the more-traditional IO::Handle front, we -have L<IO::AtomicFile|IO::AtomicFile> -which may be used to painlessly create files which are updated -atomically. - -And in the "this-may-prove-useful" corner, we have L<IO::Wrap|IO::Wrap>, -whose exported wraphandle() function will clothe anything that's not -a blessed object in an IO::Handle-like wrapper... so you can just -use OO syntax and stop worrying about whether your function's caller -handed you a string, a globref, or a FileHandle. - - -=head1 WARNINGS - -Perl's TIEHANDLE spec was incomplete prior to 5.005_57; -it was missing support for C<seek()>, C<tell()>, and C<eof()>. -Attempting to use these functions with an IO::Scalar, IO::ScalarArray, -IO::Lines, etc. B<will not work> prior to 5.005_57. -None of the relevant methods will be invoked by Perl; -and even worse, this kind of bug can lie dormant for a while. -If you turn warnings on (via C<$^W> or C<perl -w>), and you see -something like this... - - seek() on unopened file - -...then you are probably trying to use one of these functions -on one of our IO:: classes with an old Perl. The remedy is to simply -use the OO version; e.g.: - - $SH->seek(0,0); ### GOOD: will work on any 5.005 - seek($SH,0,0); ### WARNING: will only work on 5.005_57 and beyond - - - -=head1 INSTALLATION - - -=head2 Requirements - -As of version 2.x, this toolkit requires Perl 5.005 for -the IO::Handle subclasses, and 5.005_57 or better is -B<strongly> recommended. See L<"WARNINGS"> for details. - - -=head2 Directions - -Most of you already know the drill... - - perl Makefile.PL - make - make test - make install - -For everyone else out there... -if you've never installed Perl code before, or you're trying to use -this in an environment where your sysadmin or ISP won't let you do -interesting things, B<relax:> since this module contains no binary -extensions, you can cheat. That means copying the directory tree -under my "./lib" directory into someplace where your script can "see" -it. For example, under Linux: - - cp -r IO-stringy-1.234/lib/* /path/to/my/perl/ - -Now, in your Perl code, do this: - - use lib "/path/to/my/perl"; - use IO::Scalar; ### or whatever - -Ok, now you've been told. At this point, anyone who whines about -not being given enough information gets an unflattering haiku -written about them in the next change log. I'll do it. -Don't think I won't. - - - -=head1 VERSION - -$Id: Stringy.pm,v 1.3 2005/02/10 21:24:05 dfs Exp $ - - - -=head1 TO DO - -=over 4 - -=item (2000/08/02) Finalize $/ support - -Graham Barr submitted this patch half a I<year> ago; -Like a moron, I lost his message under a ton of others, -and only now have the experimental implementation done. - -Will the sudden sensitivity to $/ hose anyone out there? -I'm worried, so you have to enable it explicitly in 1.x. -It will be on by default in 2.x, though only IO::Scalar -has been implemented. - -=item (2001/08/08) Remove IO::WrapTie from new IO:: classes - -It's not needed. Backwards compatibility could be maintained -by having new_tie() be identical to new(). Heck, I'll bet -that IO::WrapTie should be reimplemented so the returned -object is just like an IO::Scalar in its use of globrefs. - - -=back - - - -=head1 CHANGE LOG - -=over 4 - - -=item Version 2.110 (2005/02/10) - -Maintainership taken over by DSKOLL <dfs@roaringpenguin.com> - -Closed the following bugs at -https://rt.cpan.org/NoAuth/Bugs.html?Dist=IO-stringy: - -=item - -2208 IO::ScalarArray->getline does not return undef for EOF if undef($/) - -=item - -7132 IO-stringy/Makefile.PL bug - name should be module name - -=item - -11249 IO::Scalar flush shouldn't return undef - -=item - -2172 $\ (output record separator) not respected - -=item - -8605 IO::InnerFile::seek() should return 1 on success - -=item - -4798 *.html in lib/ - -=item - -4369 Improvement: handling of fixed-size reads in IO::Scalar - -(Actually, bug 4369 was closed in Version 2.109) - -=item Version 2.109 (2003/12/21) - -IO::Scalar::getline now works with ref to int. -I<Thanks to Dominique Quatravaux for this patch.> - - -=item Version 2.108 (2001/08/20) - -The terms-of-use have been placed in the distribution file "COPYING". -Also, small documentation tweaks were made. - - -=item Version 2.105 (2001/08/09) - -Added support for various seek() whences to IO::ScalarArray. - -Added support for consulting $/ in IO::Scalar and IO::ScalarArray. -The old C<use_RS()> is not even an option. -Unsupported record separators will cause a croak(). - -Added a lot of regression tests to supoprt the above. - -Better on-line docs (hyperlinks to individual functions). - - -=item Version 2.103 (2001/08/08) - -After sober consideration I have reimplemented IO::Scalar::print() -so that it once again always seeks to the end of the string. -Benchmarks show the new implementation to be just as fast as -Juergen's contributed patch; until someone can convince me otherwise, -the current, safer implementation stays. - -I thought more about giving IO::Scalar two separate handles, -one for reading and one for writing, as suggested by Binkley. -His points about what tell() and eof() return are, I think, -show-stoppers for this feature. Even the manpages for stdio's fseek() -seem to imply a I<single> file position indicator, not two. -So I think I will take this off the TO DO list. -B<Remedy:> you can always have two handles open on the same -scalar, one which you only write to, and one which you only read from. -That should give the same effect. - - -=item Version 2.101 (2001/08/07) - -B<Alpha release.> -This is the initial release of the "IO::Scalar and friends are -now subclasses of IO::Handle". I'm flinging it against the wall. -Please tell me if the banana sticks. When it does, the banana -will be called 2.2x. - -First off, I<many many thanks to Doug Wilson>, who -has provided an I<invaluable> service by patching IO::Scalar -and friends so that they (1) inherit from IO::Handle, (2) automatically -tie themselves so that the C<new()> objects can be used in native i/o -constructs, and (3) doing it so that the whole damn thing passes -its regression tests. As Doug knows, my globref Kung-Fu was not -up to the task; he graciously provided the patches. This has earned -him a seat at the L<Co-Authors|"AUTHOR"> table, and the -right to have me address him as I<sensei>. - -Performance of IO::Scalar::print() has been improved by as much as 2x -for lots of little prints, with the cost of forcing those -who print-then-seek-then-print to explicitly seek to end-of-string -before printing again. -I<Thanks to Juergen Zeller for this patch.> - -Added the COPYING file, which had been missing from prior versions. -I<Thanks to Albert Chin-A-Young for pointing this out.> - -IO::Scalar consults $/ by default (1.x ignored it by default). -Yes, I still need to support IO::ScalarArray. - - -=item Version 1.221 (2001/08/07) - -I threatened in L<"INSTALLATION"> to write an unflattering haiku -about anyone who whined that I gave them insufficient information... -but it turns out that I left out a crucial direction. D'OH! -I<Thanks to David Beroff for the "patch" and the haiku...> - - Enough info there? - Here's unflattering haiku: - Forgot the line, "make"! ;-) - - - -=item Version 1.220 (2001/04/03) - -Added untested SEEK, TELL, and EOF methods to IO::Scalar -and IO::ScalarArray to support corresponding functions for -tied filehandles: untested, because I'm still running 5.00556 -and Perl is complaining about "tell() on unopened file". -I<Thanks to Graham Barr for the suggestion.> - -Removed not-fully-blank lines from modules; these were causing -lots of POD-related warnings. -I<Thanks to Nicolas Joly for the suggestion.> - - -=item Version 1.219 (2001/02/23) - -IO::Scalar objects can now be made sensitive to $/ . -Pains were taken to keep the fast code fast while adding this feature. -I<Cheers to Graham Barr for submitting his patch; -jeers to me for losing his email for 6 months.> - - -=item Version 1.218 (2001/02/23) - -IO::Scalar has a new sysseek() method. -I<Thanks again to Richard Jones.> - -New "TO DO" section, because people who submit patches/ideas should -at least know that they're in the system... and that I won't lose -their stuff. Please read it. - -New entries in L<"AUTHOR">. -Please read those too. - - - -=item Version 1.216 (2000/09/28) - -B<IO::Scalar and IO::ScalarArray now inherit from IO::Handle.> -I thought I'd remembered a problem with this ages ago, related to -the fact that these IO:: modules don't have "real" filehandles, -but the problem apparently isn't surfacing now. -If you suddenly encounter Perl warnings during global destruction -(especially if you're using tied filehandles), then please let me know! -I<Thanks to B. K. Oxley (binkley) for this.> - -B<Nasty bug fixed in IO::Scalar::write().> -Apparently, the offset and the number-of-bytes arguments were, -for all practical purposes, I<reversed.> You were okay if -you did all your writing with print(), but boy was I<this> a stupid bug! -I<Thanks to Richard Jones for finding this one. -For you, Rich, a double-length haiku:> - - Newspaper headline - typeset by dyslexic man - loses urgency - - BABY EATS FISH is - simply not equivalent - to FISH EATS BABY - -B<New sysread and syswrite methods for IO::Scalar.> -I<Thanks again to Richard Jones for this.> - - -=item Version 1.215 (2000/09/05) - -Added 'bool' overload to '""' overload, so object always evaluates -to true. (Whew. Glad I caught this before it went to CPAN.) - - -=item Version 1.214 (2000/09/03) - -Evaluating an IO::Scalar in a string context now yields -the underlying string. -I<Thanks to B. K. Oxley (binkley) for this.> - - -=item Version 1.213 (2000/08/16) - -Minor documentation fixes. - - -=item Version 1.212 (2000/06/02) - -Fixed IO::InnerFile incompatibility with Perl5.004. -I<Thanks to many folks for reporting this.> - - -=item Version 1.210 (2000/04/17) - -Added flush() and other no-op methods. -I<Thanks to Doru Petrescu for suggesting this.> - - -=item Version 1.209 (2000/03/17) - -Small bug fixes. - - -=item Version 1.208 (2000/03/14) - -Incorporated a number of contributed patches and extensions, -mostly related to speed hacks, support for "offset", and -WRITE/CLOSE methods. -I<Thanks to Richard Jones, Doru Petrescu, and many others.> - - - -=item Version 1.206 (1999/04/18) - -Added creation of ./testout when Makefile.PL is run. - - -=item Version 1.205 (1999/01/15) - -Verified for Perl5.005. - - -=item Version 1.202 (1998/04/18) - -New IO::WrapTie and IO::AtomicFile added. - - -=item Version 1.110 - -Added IO::WrapTie. - - -=item Version 1.107 - -Added IO::Lines, and made some bug fixes to IO::ScalarArray. -Also, added getc(). - - -=item Version 1.105 - -No real changes; just upgraded IO::Wrap to have a $VERSION string. - -=back - - - - -=head1 AUTHOR - -=over 4 - -=item Primary Maintainer - -Dianne Skoll (F<dfs@roaringpenguin.com>). - -=item Original Author - -Eryq (F<eryq@zeegee.com>). -President, ZeeGee Software Inc (F<http://www.zeegee.com>). - -=item Co-Authors - -For all their bug reports and patch submissions, the following -are officially recognized: - - Richard Jones - B. K. Oxley (binkley) - Doru Petrescu - Doug Wilson (for picking up the ball I dropped, and doing tie() right) - - -=back - -Go to F<http://www.zeegee.com> for the latest downloads -and on-line documentation for this module. - -Enjoy. Yell if it breaks. - - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/Wrap.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/Wrap.pm deleted file mode 100644 index ad64f12e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/Wrap.pm +++ /dev/null @@ -1,228 +0,0 @@ -package IO::Wrap; - -# SEE DOCUMENTATION AT BOTTOM OF FILE - -require 5.002; - -use strict; -use vars qw(@ISA @EXPORT $VERSION); -@ISA = qw(Exporter); -@EXPORT = qw(wraphandle); - -use FileHandle; -use Carp; - -# The package version, both in 1.23 style *and* usable by MakeMaker: -$VERSION = "2.111"; - - -#------------------------------ -# wraphandle RAW -#------------------------------ -sub wraphandle { - my $raw = shift; - new IO::Wrap $raw; -} - -#------------------------------ -# new STREAM -#------------------------------ -sub new { - my ($class, $stream) = @_; - no strict 'refs'; - - ### Convert raw scalar to globref: - ref($stream) or $stream = \*$stream; - - ### Wrap globref and incomplete objects: - if ((ref($stream) eq 'GLOB') or ### globref - (ref($stream) eq 'FileHandle') && !defined(&FileHandle::read)) { - return bless \$stream, $class; - } - $stream; ### already okay! -} - -#------------------------------ -# I/O methods... -#------------------------------ -sub close { - my $self = shift; - return close($$self); -} -sub fileno { - my $self = shift; - my $fh = $$self; - return fileno($fh); -} - -sub getline { - my $self = shift; - my $fh = $$self; - return scalar(<$fh>); -} -sub getlines { - my $self = shift; - wantarray or croak("Can't call getlines in scalar context!"); - my $fh = $$self; - <$fh>; -} -sub print { - my $self = shift; - print { $$self } @_; -} -sub read { - my $self = shift; - return read($$self, $_[0], $_[1]); -} -sub seek { - my $self = shift; - return seek($$self, $_[0], $_[1]); -} -sub tell { - my $self = shift; - return tell($$self); -} - -#------------------------------ -1; -__END__ - - -=head1 NAME - -IO::Wrap - wrap raw filehandles in IO::Handle interface - - -=head1 SYNOPSIS - - use IO::Wrap; - - ### Do stuff with any kind of filehandle (including a bare globref), or - ### any kind of blessed object that responds to a print() message. - ### - sub do_stuff { - my $fh = shift; - - ### At this point, we have no idea what the user gave us... - ### a globref? a FileHandle? a scalar filehandle name? - - $fh = wraphandle($fh); - - ### At this point, we know we have an IO::Handle-like object! - - $fh->print("Hey there!"); - ... - } - - -=head1 DESCRIPTION - -Let's say you want to write some code which does I/O, but you don't -want to force the caller to provide you with a FileHandle or IO::Handle -object. You want them to be able to say: - - do_stuff(\*STDOUT); - do_stuff('STDERR'); - do_stuff($some_FileHandle_object); - do_stuff($some_IO_Handle_object); - -And even: - - do_stuff($any_object_with_a_print_method); - -Sure, one way to do it is to force the caller to use tiehandle(). -But that puts the burden on them. Another way to do it is to -use B<IO::Wrap>, which provides you with the following functions: - - -=over 4 - -=item wraphandle SCALAR - -This function will take a single argument, and "wrap" it based on -what it seems to be... - -=over 4 - -=item * - -B<A raw scalar filehandle name,> like C<"STDOUT"> or C<"Class::HANDLE">. -In this case, the filehandle name is wrapped in an IO::Wrap object, -which is returned. - -=item * - -B<A raw filehandle glob,> like C<\*STDOUT>. -In this case, the filehandle glob is wrapped in an IO::Wrap object, -which is returned. - -=item * - -B<A blessed FileHandle object.> -In this case, the FileHandle is wrapped in an IO::Wrap object if and only -if your FileHandle class does not support the C<read()> method. - -=item * - -B<Any other kind of blessed object,> which is assumed to be already -conformant to the IO::Handle interface. -In this case, you just get back that object. - -=back - -=back - - -If you get back an IO::Wrap object, it will obey a basic subset of -the IO:: interface. That is, the following methods (note: I said -I<methods>, not named operators) should work on the thing you get back: - - close - getline - getlines - print ARGS... - read BUFFER,NBYTES - seek POS,WHENCE - tell - - - -=head1 NOTES - -Clearly, when wrapping a raw external filehandle (like \*STDOUT), -I didn't want to close the file descriptor when the "wrapper" object is -destroyed... since the user might not appreciate that! Hence, -there's no DESTROY method in this class. - -When wrapping a FileHandle object, however, I believe that Perl will -invoke the FileHandle::DESTROY when the last reference goes away, -so in that case, the filehandle is closed if the wrapped FileHandle -really was the last reference to it. - - -=head1 WARNINGS - -This module does not allow you to wrap filehandle names which are given -as strings that lack the package they were opened in. That is, if a user -opens FOO in package Foo, they must pass it to you either as C<\*FOO> -or as C<"Foo::FOO">. However, C<"STDIN"> and friends will work just fine. - - -=head1 VERSION - -$Id: Wrap.pm,v 1.2 2005/02/10 21:21:53 dfs Exp $ - - -=head1 AUTHOR - -=item Primary Maintainer - -Dianne Skoll (F<dfs@roaringpenguin.com>). - -=item Original Author - -Eryq (F<eryq@zeegee.com>). -President, ZeeGee Software Inc (F<http://www.zeegee.com>). - -=cut - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/WrapTie.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/WrapTie.pm deleted file mode 100644 index a15ada3f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/IO/WrapTie.pm +++ /dev/null @@ -1,491 +0,0 @@ -# SEE DOCUMENTATION AT BOTTOM OF FILE - - -#------------------------------------------------------------ -package IO::WrapTie; -#------------------------------------------------------------ -require 5.004; ### for tie -use strict; -use vars qw(@ISA @EXPORT $VERSION); -use Exporter; - -# Inheritance, exporting, and package version: -@ISA = qw(Exporter); -@EXPORT = qw(wraptie); -$VERSION = "2.111"; - -# Function, exported. -sub wraptie { - IO::WrapTie::Master->new(@_); -} - -# Class method; BACKWARDS-COMPATIBILITY ONLY! -sub new { - shift; - IO::WrapTie::Master->new(@_); -} - - - -#------------------------------------------------------------ -package IO::WrapTie::Master; -#------------------------------------------------------------ - -use strict; -use vars qw(@ISA $AUTOLOAD); -use IO::Handle; - -# We inherit from IO::Handle to get methods which invoke i/o operators, -# like print(), on our tied handle: -@ISA = qw(IO::Handle); - -#------------------------------ -# new SLAVE, TIEARGS... -#------------------------------ -# Create a new subclass of IO::Handle which... -# -# (1) Handles i/o OPERATORS because it is tied to an instance of -# an i/o-like class, like IO::Scalar. -# -# (2) Handles i/o METHODS by delegating them to that same tied object!. -# -# Arguments are the slave class (e.g., IO::Scalar), followed by all -# the arguments normally sent into that class's TIEHANDLE method. -# In other words, much like the arguments to tie(). :-) -# -# NOTE: -# The thing $x we return must be a BLESSED REF, for ($x->print()). -# The underlying symbol must be a FILEHANDLE, for (print $x "foo"). -# It has to have a way of getting to the "real" back-end object... -# -sub new { - my $master = shift; - my $io = IO::Handle->new; ### create a new handle - my $slave = shift; - tie *$io, $slave, @_; ### tie: will invoke slave's TIEHANDLE - bless $io, $master; ### return a master -} - -#------------------------------ -# AUTOLOAD -#------------------------------ -# Delegate method invocations on the master to the underlying slave. -# -sub AUTOLOAD { - my $method = $AUTOLOAD; - $method =~ s/.*:://; - my $self = shift; tied(*$self)->$method(\@_); -} - -#------------------------------ -# PRELOAD -#------------------------------ -# Utility. -# -# Most methods like print(), getline(), etc. which work on the tied object -# via Perl's i/o operators (like 'print') are inherited from IO::Handle. -# -# Other methods, like seek() and sref(), we must delegate ourselves. -# AUTOLOAD takes care of these. -# -# However, it may be necessary to preload delegators into your -# own class. PRELOAD will do this. -# -sub PRELOAD { - my $class = shift; - foreach (@_) { - eval "sub ${class}::$_ { my \$s = shift; tied(*\$s)->$_(\@_) }"; - } -} - -# Preload delegators for some standard methods which we can't simply -# inherit from IO::Handle... for example, some IO::Handle methods -# assume that there is an underlying file descriptor. -# -PRELOAD IO::WrapTie::Master - qw(open opened close read clearerr eof seek tell setpos getpos); - - - -#------------------------------------------------------------ -package IO::WrapTie::Slave; -#------------------------------------------------------------ -# Teeny private class providing a new_tie constructor... -# -# HOW IT ALL WORKS: -# -# Slaves inherit from this class. -# -# When you send a new_tie() message to a tie-slave class (like IO::Scalar), -# it first determines what class should provide its master, via TIE_MASTER. -# In this case, IO::Scalar->TIE_MASTER would return IO::Scalar::Master. -# Then, we create a new master (an IO::Scalar::Master) with the same args -# sent to new_tie. -# -# In general, the new() method of the master is inherited directly -# from IO::WrapTie::Master. -# -sub new_tie { - my $self = shift; - $self->TIE_MASTER->new($self,@_); ### e.g., IO::Scalar::Master->new(@_) -} - -# Default class method for new_tie(). -# All your tie-slave class (like IO::Scalar) has to do is override this -# method with a method that returns the name of an appropriate "master" -# class for tying that slave. -# -sub TIE_MASTER { 'IO::WrapTie::Master' } - -#------------------------------ -1; -__END__ - - -package IO::WrapTie; ### for doc generator - - -=head1 NAME - -IO::WrapTie - wrap tieable objects in IO::Handle interface - -I<This is currently Alpha code, released for comments. - Please give me your feedback!> - - -=head1 SYNOPSIS - -First of all, you'll need tie(), so: - - require 5.004; - -I<Function interface (experimental).> -Use this with any existing class... - - use IO::WrapTie; - use FooHandle; ### implements TIEHANDLE interface - - ### Suppose we want a "FooHandle->new(&FOO_RDWR, 2)". - ### We can instead say... - - $FH = wraptie('FooHandle', &FOO_RDWR, 2); - - ### Now we can use... - print $FH "Hello, "; ### traditional operator syntax... - $FH->print("world!\n"); ### ...and OO syntax as well! - -I<OO interface (preferred).> -You can inherit from the IO::WrapTie::Slave mixin to get a -nifty C<new_tie()> constructor... - - #------------------------------ - package FooHandle; ### a class which can TIEHANDLE - - use IO::WrapTie; - @ISA = qw(IO::WrapTie::Slave); ### inherit new_tie() - ... - - - #------------------------------ - package main; - - $FH = FooHandle->new_tie(&FOO_RDWR, 2); ### $FH is an IO::WrapTie::Master - print $FH "Hello, "; ### traditional operator syntax - $FH->print("world!\n"); ### OO syntax - -See IO::Scalar as an example. It also shows you how to create classes -which work both with and without 5.004. - - -=head1 DESCRIPTION - -Suppose you have a class C<FooHandle>, where... - -=over 4 - -=item * - -B<FooHandle does not inherit from IO::Handle;> that is, it performs -filehandle-like I/O, but to something other than an underlying -file descriptor. Good examples are IO::Scalar (for printing to a -string) and IO::Lines (for printing to an array of lines). - -=item * - -B<FooHandle implements the TIEHANDLE interface> (see L<perltie>); -that is, it provides methods TIEHANDLE, GETC, PRINT, PRINTF, -READ, and READLINE. - -=item * - -B<FooHandle implements the traditional OO interface> of -FileHandle and IO::Handle; i.e., it contains methods like getline(), -read(), print(), seek(), tell(), eof(), etc. - -=back - - -Normally, users of your class would have two options: - - -=over 4 - -=item * - -B<Use only OO syntax,> and forsake named I/O operators like 'print'. - -=item * - -B<Use with tie,> and forsake treating it as a first-class object -(i.e., class-specific methods can only be invoked through the underlying -object via tied()... giving the object a "split personality"). - -=back - - -But now with IO::WrapTie, you can say: - - $WT = wraptie('FooHandle', &FOO_RDWR, 2); - $WT->print("Hello, world\n"); ### OO syntax - print $WT "Yes!\n"; ### Named operator syntax too! - $WT->weird_stuff; ### Other methods! - -And if you're authoring a class like FooHandle, just have it inherit -from C<IO::WrapTie::Slave> and that first line becomes even prettier: - - $WT = FooHandle->new_tie(&FOO_RDWR, 2); - -B<The bottom line:> now, almost any class can look and work exactly like -an IO::Handle... and be used both with OO and non-OO filehandle syntax. - - -=head1 HOW IT ALL WORKS - - -=head2 The data structures - -Consider this example code, using classes in this distribution: - - use IO::Scalar; - use IO::WrapTie; - - $WT = wraptie('IO::Scalar',\$s); - print $WT "Hello, "; - $WT->print("world!\n"); - -In it, the wraptie() function creates a data structure as follows: - - * $WT is a blessed reference to a tied filehandle - $WT glob; that glob is tied to the "Slave" object. - | * You would do all your i/o with $WT directly. - | - | - | ,---isa--> IO::WrapTie::Master >--isa--> IO::Handle - V / - .-------------. - | | - | | * Perl i/o operators work on the tied object, - | "Master" | invoking the TIEHANDLE methods. - | | * Method invocations are delegated to the tied - | | slave. - `-------------' - | - tied(*$WT) | .---isa--> IO::WrapTie::Slave - V / - .-------------. - | | - | "Slave" | * Instance of FileHandle-like class which doesn't - | | actually use file descriptors, like IO::Scalar. - | IO::Scalar | * The slave can be any kind of object. - | | * Must implement the TIEHANDLE interface. - `-------------' - - -I<NOTE:> just as an IO::Handle is really just a blessed reference to a -I<traditional> filehandle glob... so also, an IO::WrapTie::Master -is really just a blessed reference to a filehandle -glob I<which has been tied to some "slave" class.> - - -=head2 How wraptie() works - -=over 4 - -=item 1. - -The call to function C<wraptie(SLAVECLASS, TIEARGS...)> is -passed onto C<IO::WrapTie::Master::new()>. -Note that class IO::WrapTie::Master is a subclass of IO::Handle. - -=item 2. - -The C<IO::WrapTie::Master::new> method creates a new IO::Handle object, -reblessed into class IO::WrapTie::Master. This object is the I<master>, -which will be returned from the constructor. At the same time... - -=item 3. - -The C<new> method also creates the I<slave>: this is an instance -of SLAVECLASS which is created by tying the master's IO::Handle -to SLAVECLASS via C<tie(HANDLE, SLAVECLASS, TIEARGS...)>. -This call to C<tie()> creates the slave in the following manner: - -=item 4. - -Class SLAVECLASS is sent the message C<TIEHANDLE(TIEARGS...)>; it -will usually delegate this to C<SLAVECLASS::new(TIEARGS...)>, resulting -in a new instance of SLAVECLASS being created and returned. - -=item 5. - -Once both master and slave have been created, the master is returned -to the caller. - -=back - - -=head2 How I/O operators work (on the master) - -Consider using an i/o operator on the master: - - print $WT "Hello, world!\n"; - -Since the master ($WT) is really a [blessed] reference to a glob, -the normal Perl i/o operators like C<print> may be used on it. -They will just operate on the symbol part of the glob. - -Since the glob is tied to the slave, the slave's PRINT method -(part of the TIEHANDLE interface) will be automatically invoked. - -If the slave is an IO::Scalar, that means IO::Scalar::PRINT will be -invoked, and that method happens to delegate to the C<print()> method -of the same class. So the I<real> work is ultimately done by -IO::Scalar::print(). - - -=head2 How methods work (on the master) - -Consider using a method on the master: - - $WT->print("Hello, world!\n"); - -Since the master ($WT) is blessed into the class IO::WrapTie::Master, -Perl first attempts to find a C<print()> method there. Failing that, -Perl next attempts to find a C<print()> method in the superclass, -IO::Handle. It just so happens that there I<is> such a method; -that method merely invokes the C<print> i/o operator on the self object... -and for that, see above! - -But let's suppose we're dealing with a method which I<isn't> part -of IO::Handle... for example: - - my $sref = $WT->sref; - -In this case, the intuitive behavior is to have the master delegate the -method invocation to the slave (now do you see where the designations -come from?). This is indeed what happens: IO::WrapTie::Master contains -an AUTOLOAD method which performs the delegation. - -So: when C<sref()> can't be found in IO::Handle, the AUTOLOAD method -of IO::WrapTie::Master is invoked, and the standard behavior of -delegating the method to the underlying slave (here, an IO::Scalar) -is done. - -Sometimes, to get this to work properly, you may need to create -a subclass of IO::WrapTie::Master which is an effective master for -I<your> class, and do the delegation there. - - - - -=head1 NOTES - -B<Why not simply use the object's OO interface?> - Because that means forsaking the use of named operators -like print(), and you may need to pass the object to a subroutine -which will attempt to use those operators: - - $O = FooHandle->new(&FOO_RDWR, 2); - $O->print("Hello, world\n"); ### OO syntax is okay, BUT.... - - sub nope { print $_[0] "Nope!\n" } - X nope($O); ### ERROR!!! (not a glob ref) - - -B<Why not simply use tie()?> - Because (1) you have to use tied() to invoke methods in the -object's public interface (yuck), and (2) you may need to pass -the tied symbol to another subroutine which will attempt to treat -it in an OO-way... and that will break it: - - tie *T, 'FooHandle', &FOO_RDWR, 2; - print T "Hello, world\n"; ### Operator is okay, BUT... - - tied(*T)->other_stuff; ### yuck! AND... - - sub nope { shift->print("Nope!\n") } - X nope(\*T); ### ERROR!!! (method "print" on unblessed ref) - - -B<Why a master and slave? - Why not simply write FooHandle to inherit from IO::Handle?> - I tried this, with an implementation similar to that of IO::Socket. -The problem is that I<the whole point is to use this with objects -that don't have an underlying file/socket descriptor.>. -Subclassing IO::Handle will work fine for the OO stuff, and fine with -named operators I<if> you tie()... but if you just attempt to say: - - $IO = FooHandle->new(&FOO_RDWR, 2); - print $IO "Hello!\n"; - -you get a warning from Perl like: - - Filehandle GEN001 never opened - -because it's trying to do system-level i/o on an (unopened) file -descriptor. To avoid this, you apparently have to tie() the handle... -which brings us right back to where we started! At least the -IO::WrapTie mixin lets us say: - - $IO = FooHandle->new_tie(&FOO_RDWR, 2); - print $IO "Hello!\n"; - -and so is not I<too> bad. C<:-)> - - -=head1 WARNINGS - -Remember: this stuff is for doing FileHandle-like i/o on things -I<without underlying file descriptors>. If you have an underlying -file descriptor, you're better off just inheriting from IO::Handle. - -B<Be aware that new_tie() always returns an instance of a -kind of IO::WrapTie::Master...> it does B<not> return an instance -of the i/o class you're tying to! - -Invoking some methods on the master object causes AUTOLOAD to delegate -them to the slave object... so it I<looks> like you're manipulating a -"FooHandle" object directly, but you're not. - -I have not explored all the ramifications of this use of tie(). -I<Here there be dragons>. - - -=head1 VERSION - -$Id: WrapTie.pm,v 1.2 2005/02/10 21:21:53 dfs Exp $ - - -=head1 AUTHOR - -=item Primary Maintainer - -Dianne Skoll (F<dfs@roaringpenguin.com>). - -=item Original Author - -Eryq (F<eryq@zeegee.com>). -President, ZeeGee Software Inc (F<http://www.zeegee.com>). - -=cut - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP.pm deleted file mode 100644 index a0f2b4b9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP.pm +++ /dev/null @@ -1,671 +0,0 @@ -package LWP; - -our $VERSION = '6.26'; - -require LWP::UserAgent; # this should load everything you need - -sub Version { $VERSION; } - -1; - -__END__ - -=pod - -=encoding utf-8 - -=head1 NAME - -LWP - The World-Wide Web library for Perl - -=head1 SYNOPSIS - - use LWP; - print "This is libwww-perl-$LWP::VERSION\n"; - - -=head1 DESCRIPTION - -The libwww-perl collection is a set of Perl modules which provides a -simple and consistent application programming interface (API) to the -World-Wide Web. The main focus of the library is to provide classes -and functions that allow you to write WWW clients. The library also -contain modules that are of more general use and even classes that -help you implement simple HTTP servers. - -Most modules in this library provide an object oriented API. The user -agent, requests sent and responses received from the WWW server are -all represented by objects. This makes a simple and powerful -interface to these services. The interface is easy to extend -and customize for your own needs. - -The main features of the library are: - -=over 3 - -=item * - -Contains various reusable components (modules) that can be -used separately or together. - -=item * - -Provides an object oriented model of HTTP-style communication. Within -this framework we currently support access to C<http>, C<https>, C<gopher>, -C<ftp>, C<news>, C<file>, and C<mailto> resources. - -=item * - -Provides a full object oriented interface or -a very simple procedural interface. - -=item * - -Supports the basic and digest authorization schemes. - -=item * - -Supports transparent redirect handling. - -=item * - -Supports access through proxy servers. - -=item * - -Provides parser for F<robots.txt> files and a framework for constructing robots. - -=item * - -Supports parsing of HTML forms. - -=item * - -Implements HTTP content negotiation algorithm that can -be used both in protocol modules and in server scripts (like CGI -scripts). - -=item * - -Supports HTTP cookies. - -=item * - -Some simple command line clients, for instance C<lwp-request> and C<lwp-download>. - -=back - - -=head1 HTTP STYLE COMMUNICATION - - -The libwww-perl library is based on HTTP style communication. This -section tries to describe what that means. - -Let us start with this quote from the HTTP specification document -<URL:http://www.w3.org/Protocols/>: - -=over 3 - -=item * - -The HTTP protocol is based on a request/response paradigm. A client -establishes a connection with a server and sends a request to the -server in the form of a request method, URI, and protocol version, -followed by a MIME-like message containing request modifiers, client -information, and possible body content. The server responds with a -status line, including the message's protocol version and a success or -error code, followed by a MIME-like message containing server -information, entity meta-information, and possible body content. - -=back - -What this means to libwww-perl is that communication always take place -through these steps: First a I<request> object is created and -configured. This object is then passed to a server and we get a -I<response> object in return that we can examine. A request is always -independent of any previous requests, i.e. the service is stateless. -The same simple model is used for any kind of service we want to -access. - -For example, if we want to fetch a document from a remote file server, -then we send it a request that contains a name for that document and -the response will contain the document itself. If we access a search -engine, then the content of the request will contain the query -parameters and the response will contain the query result. If we want -to send a mail message to somebody then we send a request object which -contains our message to the mail server and the response object will -contain an acknowledgment that tells us that the message has been -accepted and will be forwarded to the recipient(s). - -It is as simple as that! - - -=head2 The Request Object - -The libwww-perl request object has the class name L<HTTP::Request>. -The fact that the class name uses C<HTTP::> as a -prefix only implies that we use the HTTP model of communication. It -does not limit the kind of services we can try to pass this I<request> -to. For instance, we will send L<HTTP::Request>s both to ftp and -gopher servers, as well as to the local file system. - -The main attributes of the request objects are: - -=over 3 - -=item * - -B<method> is a short string that tells what kind of -request this is. The most common methods are B<GET>, B<PUT>, -B<POST> and B<HEAD>. - -=item * - -B<uri> is a string denoting the protocol, server and -the name of the "document" we want to access. The B<uri> might -also encode various other parameters. - -=item * - -B<headers> contains additional information about the -request and can also used to describe the content. The headers -are a set of keyword/value pairs. - -=item * - -B<content> is an arbitrary amount of data. - -=back - -=head2 The Response Object - -The libwww-perl response object has the class name L<HTTP::Response>. -The main attributes of objects of this class are: - -=over 3 - -=item * - -B<code> is a numerical value that indicates the overall -outcome of the request. - -=item * - -B<message> is a short, human readable string that -corresponds to the I<code>. - -=item * - -B<headers> contains additional information about the -response and describe the content. - -=item * - -B<content> is an arbitrary amount of data. - -=back - -Since we don't want to handle all possible I<code> values directly in -our programs, a libwww-perl response object has methods that can be -used to query what kind of response this is. The most commonly used -response classification methods are: - -=over 3 - -=item is_success() - -The request was successfully received, understood or accepted. - -=item is_error() - -The request failed. The server or the resource might not be -available, access to the resource might be denied or other things might -have failed for some reason. - -=back - -=head2 The User Agent - -Let us assume that we have created a I<request> object. What do we -actually do with it in order to receive a I<response>? - -The answer is that you pass it to a I<user agent> object and this -object takes care of all the things that need to be done -(like low-level communication and error handling) and returns -a I<response> object. The user agent represents your -application on the network and provides you with an interface that -can accept I<requests> and return I<responses>. - -The user agent is an interface layer between -your application code and the network. Through this interface you are -able to access the various servers on the network. - -The class name for the user agent is L<LWP::UserAgent>. Every -libwww-perl application that wants to communicate should create at -least one object of this class. The main method provided by this -object is request(). This method takes an L<HTTP::Request> object as -argument and (eventually) returns a L<HTTP::Response> object. - -The user agent has many other attributes that let you -configure how it will interact with the network and with your -application. - -=over 3 - -=item * - -B<timeout> specifies how much time we give remote servers to -respond before the library disconnects and creates an -internal I<timeout> response. - -=item * - -B<agent> specifies the name that your application uses when it -presents itself on the network. - -=item * - -B<from> can be set to the e-mail address of the person -responsible for running the application. If this is set, then the -address will be sent to the servers with every request. - -=item * - -B<parse_head> specifies whether we should initialize response -headers from the E<lt>head> section of HTML documents. - -=item * - -B<proxy> and B<no_proxy> specify if and when to go through -a proxy server. <URL:http://www.w3.org/History/1994/WWW/Proxies/> - -=item * - -B<credentials> provides a way to set up user names and -passwords needed to access certain services. - -=back - -Many applications want even more control over how they interact -with the network and they get this by sub-classing -L<LWP::UserAgent>. The library includes a -sub-class, L<LWP::RobotUA>, for robot applications. - -=head2 An Example - -This example shows how the user agent, a request and a response are -represented in actual perl code: - - # Create a user agent object - use LWP::UserAgent; - my $ua = LWP::UserAgent->new; - $ua->agent("MyApp/0.1 "); - - # Create a request - my $req = HTTP::Request->new(POST => 'http://search.cpan.org/search'); - $req->content_type('application/x-www-form-urlencoded'); - $req->content('query=libwww-perl&mode=dist'); - - # Pass request to the user agent and get a response back - my $res = $ua->request($req); - - # Check the outcome of the response - if ($res->is_success) { - print $res->content; - } - else { - print $res->status_line, "\n"; - } - -The $ua is created once when the application starts up. New request -objects should normally created for each request sent. - - -=head1 NETWORK SUPPORT - -This section discusses the various protocol schemes and -the HTTP style methods that headers may be used for each. - -For all requests, a "User-Agent" header is added and initialized from -the $ua->agent attribute before the request is handed to the network -layer. In the same way, a "From" header is initialized from the -$ua->from attribute. - -For all responses, the library adds a header called "Client-Date". -This header holds the time when the response was received by -your application. The format and semantics of the header are the -same as the server created "Date" header. You may also encounter other -"Client-XXX" headers. They are all generated by the library -internally and are not received from the servers. - -=head2 HTTP Requests - -HTTP requests are just handed off to an HTTP server and it -decides what happens. Few servers implement methods beside the usual -"GET", "HEAD", "POST" and "PUT", but CGI-scripts may implement -any method they like. - -If the server is not available then the library will generate an -internal error response. - -The library automatically adds a "Host" and a "Content-Length" header -to the HTTP request before it is sent over the network. - -For a GET request you might want to add a "If-Modified-Since" or -"If-None-Match" header to make the request conditional. - -For a POST request you should add the "Content-Type" header. When you -try to emulate HTML E<lt>FORM> handling you should usually let the value -of the "Content-Type" header be "application/x-www-form-urlencoded". -See L<lwpcook> for examples of this. - -The libwww-perl HTTP implementation currently support the HTTP/1.1 -and HTTP/1.0 protocol. - -The library allows you to access proxy server through HTTP. This -means that you can set up the library to forward all types of request -through the HTTP protocol module. See L<LWP::UserAgent> for -documentation of this. - - -=head2 HTTPS Requests - -HTTPS requests are HTTP requests over an encrypted network connection -using the SSL protocol developed by Netscape. Everything about HTTP -requests above also apply to HTTPS requests. In addition the library -will add the headers "Client-SSL-Cipher", "Client-SSL-Cert-Subject" and -"Client-SSL-Cert-Issuer" to the response. These headers denote the -encryption method used and the name of the server owner. - -The request can contain the header "If-SSL-Cert-Subject" in order to -make the request conditional on the content of the server certificate. -If the certificate subject does not match, no request is sent to the -server and an internally generated error response is returned. The -value of the "If-SSL-Cert-Subject" header is interpreted as a Perl -regular expression. - - -=head2 FTP Requests - -The library currently supports GET, HEAD and PUT requests. GET -retrieves a file or a directory listing from an FTP server. PUT -stores a file on a ftp server. - -You can specify a ftp account for servers that want this in addition -to user name and password. This is specified by including an "Account" -header in the request. - -User name/password can be specified using basic authorization or be -encoded in the URL. Failed logins return an UNAUTHORIZED response with -"WWW-Authenticate: Basic" and can be treated like basic authorization -for HTTP. - -The library supports ftp ASCII transfer mode by specifying the "type=a" -parameter in the URL. It also supports transfer of ranges for FTP transfers -using the "Range" header. - -Directory listings are by default returned unprocessed (as returned -from the ftp server) with the content media type reported to be -"text/ftp-dir-listing". The L<File::Listing> module provides methods -for parsing of these directory listing. - -The ftp module is also able to convert directory listings to HTML and -this can be requested via the standard HTTP content negotiation -mechanisms (add an "Accept: text/html" header in the request if you -want this). - -For normal file retrievals, the "Content-Type" is guessed based on the -file name suffix. See L<LWP::MediaTypes>. - -The "If-Modified-Since" request header works for servers that implement -the C<MDTM> command. It will probably not work for directory listings though. - -Example: - - $req = HTTP::Request->new(GET => 'ftp://me:passwd@ftp.some.where.com/'); - $req->header(Accept => "text/html, */*;q=0.1"); - -=head2 News Requests - -Access to the USENET News system is implemented through the NNTP -protocol. The name of the news server is obtained from the -NNTP_SERVER environment variable and defaults to "news". It is not -possible to specify the hostname of the NNTP server in news: URLs. - -The library supports GET and HEAD to retrieve news articles through the -NNTP protocol. You can also post articles to newsgroups by using -(surprise!) the POST method. - -GET on newsgroups is not implemented yet. - -Examples: - - $req = HTTP::Request->new(GET => 'news:abc1234@a.sn.no'); - - $req = HTTP::Request->new(POST => 'news:comp.lang.perl.test'); - $req->header(Subject => 'This is a test', - From => 'me@some.where.org'); - $req->content(<<EOT); - This is the content of the message that we are sending to - the world. - EOT - - -=head2 Gopher Request - -The library supports the GET and HEAD methods for gopher requests. All -request header values are ignored. HEAD cheats and returns a -response without even talking to server. - -Gopher menus are always converted to HTML. - -The response "Content-Type" is generated from the document type -encoded (as the first letter) in the request URL path itself. - -Example: - - $req = HTTP::Request->new(GET => 'gopher://gopher.sn.no/'); - - - -=head2 File Request - -The library supports GET and HEAD methods for file requests. The -"If-Modified-Since" header is supported. All other headers are -ignored. The I<host> component of the file URL must be empty or set -to "localhost". Any other I<host> value will be treated as an error. - -Directories are always converted to an HTML document. For normal -files, the "Content-Type" and "Content-Encoding" in the response are -guessed based on the file suffix. - -Example: - - $req = HTTP::Request->new(GET => 'file:/etc/passwd'); - - -=head2 Mailto Request - -You can send (aka "POST") mail messages using the library. All -headers specified for the request are passed on to the mail system. -The "To" header is initialized from the mail address in the URL. - -Example: - - $req = HTTP::Request->new(POST => 'mailto:libwww@perl.org'); - $req->header(Subject => "subscribe"); - $req->content("Please subscribe me to the libwww-perl mailing list!\n"); - -=head2 CPAN Requests - -URLs with scheme C<cpan:> are redirected to a suitable CPAN -mirror. If you have your own local mirror of CPAN you might tell LWP -to use it for C<cpan:> URLs by an assignment like this: - - $LWP::Protocol::cpan::CPAN = "file:/local/CPAN/"; - -Suitable CPAN mirrors are also picked up from the configuration for -the CPAN.pm, so if you have used that module a suitable mirror should -be picked automatically. If neither of these apply, then a redirect -to the generic CPAN http location is issued. - -Example request to download the newest perl: - - $req = HTTP::Request->new(GET => "cpan:src/latest.tar.gz"); - - -=head1 OVERVIEW OF CLASSES AND PACKAGES - -This table should give you a quick overview of the classes provided by the -library. Indentation shows class inheritance. - - LWP::MemberMixin -- Access to member variables of Perl5 classes - LWP::UserAgent -- WWW user agent class - LWP::RobotUA -- When developing a robot applications - LWP::Protocol -- Interface to various protocol schemes - LWP::Protocol::http -- http:// access - LWP::Protocol::file -- file:// access - LWP::Protocol::ftp -- ftp:// access - ... - - LWP::Authen::Basic -- Handle 401 and 407 responses - LWP::Authen::Digest - - HTTP::Headers -- MIME/RFC822 style header (used by HTTP::Message) - HTTP::Message -- HTTP style message - HTTP::Request -- HTTP request - HTTP::Response -- HTTP response - HTTP::Daemon -- A HTTP server class - - WWW::RobotRules -- Parse robots.txt files - WWW::RobotRules::AnyDBM_File -- Persistent RobotRules - - Net::HTTP -- Low level HTTP client - -The following modules provide various functions and definitions. - - LWP -- This file. Library version number and documentation. - LWP::MediaTypes -- MIME types configuration (text/html etc.) - LWP::Simple -- Simplified procedural interface for common functions - HTTP::Status -- HTTP status code (200 OK etc) - HTTP::Date -- Date parsing module for HTTP date formats - HTTP::Negotiate -- HTTP content negotiation calculation - File::Listing -- Parse directory listings - HTML::Form -- Processing for <form>s in HTML documents - - -=head1 MORE DOCUMENTATION - -All modules contain detailed information on the interfaces they -provide. The L<lwpcook> manpage is the libwww-perl cookbook that contain -examples of typical usage of the library. You might want to take a -look at how the scripts L<lwp-request>, L<lwp-download>, L<lwp-dump> -and L<lwp-mirror> are implemented. - -=head1 ENVIRONMENT - -The following environment variables are used by LWP: - -=over - -=item HOME - -The L<LWP::MediaTypes> functions will look for the F<.media.types> and -F<.mime.types> files relative to you home directory. - -=item http_proxy - -=item ftp_proxy - -=item xxx_proxy - -=item no_proxy - -These environment variables can be set to enable communication through -a proxy server. See the description of the C<env_proxy> method in -L<LWP::UserAgent>. - -=item PERL_LWP_ENV_PROXY - -If set to a TRUE value, then the L<LWP::UserAgent> will by default call -C<env_proxy> during initialization. This makes LWP honor the proxy variables -described above. - -=item PERL_LWP_SSL_VERIFY_HOSTNAME - -The default C<verify_hostname> setting for L<LWP::UserAgent>. If -not set the default will be 1. Set it as 0 to disable hostname -verification (the default prior to libwww-perl 5.840. - -=item PERL_LWP_SSL_CA_FILE - -=item PERL_LWP_SSL_CA_PATH - -The file and/or directory -where the trusted Certificate Authority certificates -is located. See L<LWP::UserAgent> for details. - -=item PERL_HTTP_URI_CLASS - -Used to decide what URI objects to instantiate. The default is L<URI>. -You might want to set it to L<URI::URL> for compatibility with old times. - -=back - -=head1 AUTHORS - -LWP was made possible by contributions from Adam Newby, Albert -Dvornik, Alexandre Duret-Lutz, Andreas Gustafsson, Andreas König, -Andrew Pimlott, Andy Lester, Ben Coleman, Benjamin Low, Ben Low, Ben -Tilly, Blair Zajac, Bob Dalgleish, BooK, Brad Hughes, Brian -J. Murrell, Brian McCauley, Charles C. Fu, Charles Lane, Chris Nandor, -Christian Gilmore, Chris W. Unger, Craig Macdonald, Dale Couch, Dan -Kubb, Dave Dunkin, Dave W. Smith, David Coppit, David Dick, David -D. Kilzer, Doug MacEachern, Edward Avis, erik, Gary Shea, Gisle Aas, -Graham Barr, Gurusamy Sarathy, Hans de Graaff, Harald Joerg, Harry -Bochner, Hugo, Ilya Zakharevich, INOUE Yoshinari, Ivan Panchenko, Jack -Shirazi, James Tillman, Jan Dubois, Jared Rhine, Jim Stern, Joao -Lopes, John Klar, Johnny Lee, Josh Kronengold, Josh Rai, Joshua -Chamas, Joshua Hoblitt, Kartik Subbarao, Keiichiro Nagano, Ken -Williams, KONISHI Katsuhiro, Lee T Lindley, Liam Quinn, Marc Hedlund, -Marc Langheinrich, Mark D. Anderson, Marko Asplund, Mark Stosberg, -Markus B Krüger, Markus Laker, Martijn Koster, Martin Thurn, Matthew -Eldridge, Matthew.van.Eerde, Matt Sergeant, Michael A. Chase, Michael -Quaranta, Michael Thompson, Mike Schilli, Moshe Kaminsky, Nathan -Torkington, Nicolai Langfeldt, Norton Allen, Olly Betts, Paul -J. Schinder, peterm, Philip Guenther, Daniel Buenzli, Pon Hwa Lin, -Radoslaw Zielinski, Radu Greab, Randal L. Schwartz, Richard Chen, -Robin Barker, Roy Fielding, Sander van Zoest, Sean M. Burke, -shildreth, Slaven Rezic, Steve A Fink, Steve Hay, Steven Butler, -Steve_Kilbane, Takanori Ugai, Thomas Lotterer, Tim Bunce, Tom Hughes, -Tony Finch, Ville Skyttä, Ward Vandewege, William York, Yale Huang, -and Yitzchak Scott-Thoennes. - -LWP owes a lot in motivation, design, and code, to the libwww-perl -library for Perl4 by Roy Fielding, which included work from Alberto -Accomazzi, James Casey, Brooks Cutter, Martijn Koster, Oscar -Nierstrasz, Mel Melchner, Gertjan van Oosten, Jared Rhine, Jack -Shirazi, Gene Spafford, Marc VanHeyningen, Steven E. Brenner, Marion -Hakanson, Waldemar Kebsch, Tony Sanders, and Larry Wall; see the -libwww-perl-0.40 library for details. - -=head1 COPYRIGHT - - Copyright 1995-2009, Gisle Aas - Copyright 1995, Martijn Koster - -This library is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=head1 AVAILABILITY - -The latest version of this library is likely to be available from CPAN -as well as: - - http://github.com/libwww-perl/libwww-perl - -The best place to discuss this code is on the <libwww@perl.org> -mailing list. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Authen/Basic.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Authen/Basic.pm deleted file mode 100644 index e4517c9d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Authen/Basic.pm +++ /dev/null @@ -1,66 +0,0 @@ -package LWP::Authen::Basic; -$LWP::Authen::Basic::VERSION = '6.26'; -use strict; - -require MIME::Base64; - -sub auth_header { - my($class, $user, $pass) = @_; - return "Basic " . MIME::Base64::encode("$user:$pass", ""); -} - -sub authenticate -{ - my($class, $ua, $proxy, $auth_param, $response, - $request, $arg, $size) = @_; - - my $realm = $auth_param->{realm} || ""; - my $url = $proxy ? $request->{proxy} : $request->uri_canonical; - return $response unless $url; - my $host_port = $url->host_port; - my $auth_header = $proxy ? "Proxy-Authorization" : "Authorization"; - - my @m = $proxy ? (m_proxy => $url) : (m_host_port => $host_port); - push(@m, realm => $realm); - - my $h = $ua->get_my_handler("request_prepare", @m, sub { - $_[0]{callback} = sub { - my($req, $ua, $h) = @_; - my($user, $pass) = $ua->credentials($host_port, $h->{realm}); - if (defined $user) { - my $auth_value = $class->auth_header($user, $pass, $req, $ua, $h); - $req->header($auth_header => $auth_value); - } - }; - }); - $h->{auth_param} = $auth_param; - - if (!$proxy && !$request->header($auth_header) && $ua->credentials($host_port, $realm)) { - # we can make sure this handler applies and retry - add_path($h, $url->path); - return $ua->request($request->clone, $arg, $size, $response); - } - - my($user, $pass) = $ua->get_basic_credentials($realm, $url, $proxy); - unless (defined $user and defined $pass) { - $ua->set_my_handler("request_prepare", undef, @m); # delete handler - return $response; - } - - # check that the password has changed - my ($olduser, $oldpass) = $ua->credentials($host_port, $realm); - return $response if (defined $olduser and defined $oldpass and - $user eq $olduser and $pass eq $oldpass); - - $ua->credentials($host_port, $realm, $user, $pass); - add_path($h, $url->path) unless $proxy; - return $ua->request($request->clone, $arg, $size, $response); -} - -sub add_path { - my($h, $path) = @_; - $path =~ s,[^/]+\z,,; - push(@{$h->{m_path_prefix}}, $path); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Authen/Digest.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Authen/Digest.pm deleted file mode 100644 index 9f1babe6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Authen/Digest.pm +++ /dev/null @@ -1,75 +0,0 @@ -package LWP::Authen::Digest; -$LWP::Authen::Digest::VERSION = '6.26'; -use strict; -use base 'LWP::Authen::Basic'; - -require Digest::MD5; - -sub auth_header { - my($class, $user, $pass, $request, $ua, $h) = @_; - - my $auth_param = $h->{auth_param}; - - my $nc = sprintf "%08X", ++$ua->{authen_md5_nonce_count}{$auth_param->{nonce}}; - my $cnonce = sprintf "%8x", time; - - my $uri = $request->uri->path_query; - $uri = "/" unless length $uri; - - my $md5 = Digest::MD5->new; - - my(@digest); - $md5->add(join(":", $user, $auth_param->{realm}, $pass)); - push(@digest, $md5->hexdigest); - $md5->reset; - - push(@digest, $auth_param->{nonce}); - - if ($auth_param->{qop}) { - push(@digest, $nc, $cnonce, ($auth_param->{qop} =~ m|^auth[,;]auth-int$|) ? 'auth' : $auth_param->{qop}); - } - - $md5->add(join(":", $request->method, $uri)); - push(@digest, $md5->hexdigest); - $md5->reset; - - $md5->add(join(":", @digest)); - my($digest) = $md5->hexdigest; - $md5->reset; - - my %resp = map { $_ => $auth_param->{$_} } qw(realm nonce opaque); - @resp{qw(username uri response algorithm)} = ($user, $uri, $digest, "MD5"); - - if (($auth_param->{qop} || "") =~ m|^auth([,;]auth-int)?$|) { - @resp{qw(qop cnonce nc)} = ("auth", $cnonce, $nc); - } - - my(@order) = qw(username realm qop algorithm uri nonce nc cnonce response); - if($request->method =~ /^(?:POST|PUT)$/) { - $md5->add($request->content); - my $content = $md5->hexdigest; - $md5->reset; - $md5->add(join(":", @digest[0..1], $content)); - $md5->reset; - $resp{"message-digest"} = $md5->hexdigest; - push(@order, "message-digest"); - } - push(@order, "opaque"); - my @pairs; - for (@order) { - next unless defined $resp{$_}; - - # RFC2617 says that qop-value and nc-value should be unquoted. - if ( $_ eq 'qop' || $_ eq 'nc' ) { - push(@pairs, "$_=" . $resp{$_}); - } - else { - push(@pairs, "$_=" . qq("$resp{$_}")); - } - } - - my $auth_value = "Digest " . join(", ", @pairs); - return $auth_value; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Authen/Ntlm.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Authen/Ntlm.pm deleted file mode 100644 index ed7e28b2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Authen/Ntlm.pm +++ /dev/null @@ -1,183 +0,0 @@ -package LWP::Authen::Ntlm; - -use strict; - -our $VERSION = '6.26'; - -use Authen::NTLM "1.02"; -use MIME::Base64 "2.12"; - -sub authenticate { - my($class, $ua, $proxy, $auth_param, $response, - $request, $arg, $size) = @_; - - my($user, $pass) = $ua->get_basic_credentials($auth_param->{realm}, - $request->uri, $proxy); - - unless(defined $user and defined $pass) { - return $response; - } - - if (!$ua->conn_cache()) { - warn "The keep_alive option must be enabled for NTLM authentication to work. NTLM authentication aborted.\n"; - return $response; - } - - my($domain, $username) = split(/\\/, $user); - - ntlm_domain($domain); - ntlm_user($username); - ntlm_password($pass); - - my $auth_header = $proxy ? "Proxy-Authorization" : "Authorization"; - - # my ($challenge) = $response->header('WWW-Authenticate'); - my $challenge; - foreach ($response->header('WWW-Authenticate')) { - last if /^NTLM/ && ($challenge=$_); - } - - if ($challenge eq 'NTLM') { - # First phase, send handshake - my $auth_value = "NTLM " . ntlm(); - ntlm_reset(); - - # Need to check this isn't a repeated fail! - my $r = $response; - my $retry_count = 0; - while ($r) { - my $auth = $r->request->header($auth_header); - ++$retry_count if ($auth && $auth eq $auth_value); - if ($retry_count > 2) { - # here we know this failed before - $response->header("Client-Warning" => - "Credentials for '$user' failed before"); - return $response; - } - $r = $r->previous; - } - - my $referral = $request->clone; - $referral->header($auth_header => $auth_value); - return $ua->request($referral, $arg, $size, $response); - } - - else { - # Second phase, use the response challenge (unless non-401 code - # was returned, in which case, we just send back the response - # object, as is - my $auth_value; - if ($response->code ne '401') { - return $response; - } - else { - my $challenge; - foreach ($response->header('WWW-Authenticate')) { - last if /^NTLM/ && ($challenge=$_); - } - $challenge =~ s/^NTLM //; - ntlm(); - $auth_value = "NTLM " . ntlm($challenge); - ntlm_reset(); - } - - my $referral = $request->clone; - $referral->header($auth_header => $auth_value); - my $response2 = $ua->request($referral, $arg, $size, $response); - return $response2; - } -} - -1; -__END__ - -=pod - -=head1 NAME - -LWP::Authen::Ntlm - Library for enabling NTLM authentication (Microsoft) in LWP - -=head1 SYNOPSIS - - use LWP::UserAgent; - use HTTP::Request::Common; - my $url = 'http://www.company.com/protected_page.html'; - - # Set up the ntlm client and then the base64 encoded ntlm handshake message - my $ua = LWP::UserAgent->new(keep_alive=>1); - $ua->credentials('www.company.com:80', '', "MyDomain\\MyUserCode", 'MyPassword'); - - $request = GET $url; - print "--Performing request now...-----------\n"; - $response = $ua->request($request); - print "--Done with request-------------------\n"; - - if ($response->is_success) {print "It worked!->" . $response->code . "\n"} - else {print "It didn't work!->" . $response->code . "\n"} - -=head1 DESCRIPTION - -L<LWP::Authen::Ntlm> allows LWP to authenticate against servers that are using the -NTLM authentication scheme popularized by Microsoft. This type of authentication is -common on intranets of Microsoft-centric organizations. - -The module takes advantage of the Authen::NTLM module by Mark Bush. Since there -is also another Authen::NTLM module available from CPAN by Yee Man Chan with an -entirely different interface, it is necessary to ensure that you have the correct -NTLM module. - -In addition, there have been problems with incompatibilities between different -versions of Mime::Base64, which Bush's Authen::NTLM makes use of. Therefore, it is -necessary to ensure that your Mime::Base64 module supports exporting of the -encode_base64 and decode_base64 functions. - -=head1 USAGE - -The module is used indirectly through LWP, rather than including it directly in your -code. The LWP system will invoke the NTLM authentication when it encounters the -authentication scheme while attempting to retrieve a URL from a server. In order -for the NTLM authentication to work, you must have a few things set up in your -code prior to attempting to retrieve the URL: - -=over 4 - -=item * - -Enable persistent HTTP connections - -To do this, pass the "keep_alive=>1" option to the LWP::UserAgent when creating it, like this: - - my $ua = LWP::UserAgent->new(keep_alive=>1); - -=item * - -Set the credentials on the UserAgent object - -The credentials must be set like this: - - $ua->credentials('www.company.com:80', '', "MyDomain\\MyUserCode", 'MyPassword'); - -Note that you cannot use the HTTP::Request object's authorization_basic() method to set -the credentials. Note, too, that the 'www.company.com:80' portion only sets credentials -on the specified port AND it is case-sensitive (this is due to the way LWP is coded, and -has nothing to do with LWP::Authen::Ntlm) - -=back - -=head1 AVAILABILITY - -General queries regarding LWP should be made to the LWP Mailing List. - -Questions specific to LWP::Authen::Ntlm can be forwarded to jtillman@bigfoot.com - -=head1 COPYRIGHT - -Copyright (c) 2002 James Tillman. All rights reserved. This -program is free software; you can redistribute it and/or modify it -under the same terms as Perl itself. - -=head1 SEE ALSO - -L<LWP>, L<LWP::UserAgent>, L<lwpcook>. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/ConnCache.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/ConnCache.pm deleted file mode 100644 index 8d4b3325..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/ConnCache.pm +++ /dev/null @@ -1,350 +0,0 @@ -package LWP::ConnCache; - -use strict; - -our $VERSION = '6.26'; -our $DEBUG; - -sub new { - my($class, %cnf) = @_; - - my $total_capacity = 1; - if (exists $cnf{total_capacity}) { - $total_capacity = delete $cnf{total_capacity}; - } - if (%cnf && $^W) { - require Carp; - Carp::carp("Unrecognised options: @{[sort keys %cnf]}") - } - my $self = bless { cc_conns => [] }, $class; - $self->total_capacity($total_capacity); - $self; -} - - -sub deposit { - my($self, $type, $key, $conn) = @_; - push(@{$self->{cc_conns}}, [$conn, $type, $key, time]); - $self->enforce_limits($type); - return; -} - - -sub withdraw { - my($self, $type, $key) = @_; - my $conns = $self->{cc_conns}; - for my $i (0 .. @$conns - 1) { - my $c = $conns->[$i]; - next unless $c->[1] eq $type && $c->[2] eq $key; - splice(@$conns, $i, 1); # remove it - return $c->[0]; - } - return undef; -} - - -sub total_capacity { - my $self = shift; - my $old = $self->{cc_limit_total}; - if (@_) { - $self->{cc_limit_total} = shift; - $self->enforce_limits; - } - $old; -} - - -sub capacity { - my $self = shift; - my $type = shift; - my $old = $self->{cc_limit}{$type}; - if (@_) { - $self->{cc_limit}{$type} = shift; - $self->enforce_limits($type); - } - $old; -} - - -sub enforce_limits { - my($self, $type) = @_; - my $conns = $self->{cc_conns}; - - my @types = $type ? ($type) : ($self->get_types); - for $type (@types) { - next unless $self->{cc_limit}; - my $limit = $self->{cc_limit}{$type}; - next unless defined $limit; - for my $i (reverse 0 .. @$conns - 1) { - next unless $conns->[$i][1] eq $type; - if (--$limit < 0) { - $self->dropping(splice(@$conns, $i, 1), "$type capacity exceeded"); - } - } - } - - if (defined(my $total = $self->{cc_limit_total})) { - while (@$conns > $total) { - $self->dropping(shift(@$conns), "Total capacity exceeded"); - } - } -} - - -sub dropping { - my($self, $c, $reason) = @_; - print "DROPPING @$c [$reason]\n" if $DEBUG; -} - - -sub drop { - my($self, $checker, $reason) = @_; - if (ref($checker) ne "CODE") { - # make it so - if (!defined $checker) { - $checker = sub { 1 }; # drop all of them - } - elsif (_looks_like_number($checker)) { - my $age_limit = $checker; - my $time_limit = time - $age_limit; - $reason ||= "older than $age_limit"; - $checker = sub { $_[3] < $time_limit }; - } - else { - my $type = $checker; - $reason ||= "drop $type"; - $checker = sub { $_[1] eq $type }; # match on type - } - } - $reason ||= "drop"; - - local $SIG{__DIE__}; # don't interfere with eval below - local $@; - my @c; - for (@{$self->{cc_conns}}) { - my $drop; - eval { - if (&$checker(@$_)) { - $self->dropping($_, $reason); - $drop++; - } - }; - push(@c, $_) unless $drop; - } - @{$self->{cc_conns}} = @c; -} - - -sub prune { - my $self = shift; - $self->drop(sub { !shift->ping }, "ping"); -} - - -sub get_types { - my $self = shift; - my %t; - $t{$_->[1]}++ for @{$self->{cc_conns}}; - return keys %t; -} - - -sub get_connections { - my($self, $type) = @_; - my @c; - for (@{$self->{cc_conns}}) { - push(@c, $_->[0]) if !$type || ($type && $type eq $_->[1]); - } - @c; -} - - -sub _looks_like_number { - $_[0] =~ /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/; -} - -1; - - -__END__ - -=pod - -=head1 NAME - -LWP::ConnCache - Connection cache manager - -=head1 NOTE - -This module is experimental. Details of its interface is likely to -change in the future. - -=head1 SYNOPSIS - - use LWP::ConnCache; - my $cache = LWP::ConnCache->new; - $cache->deposit($type, $key, $sock); - $sock = $cache->withdraw($type, $key); - -=head1 DESCRIPTION - -The C<LWP::ConnCache> class is the standard connection cache manager -for L<LWP::UserAgent>. - -=head1 METHODS - -The following basic methods are provided: - -=head2 new - - my $cache = LWP::ConnCache->new( %options ) - -This method constructs a new L<LWP::ConnCache> object. The only -option currently accepted is C<total_capacity>. If specified it -initialize the L<LWP::ConnCache/total_capacity> option. It defaults to C<1>. - -=head2 total_capacity - - my $cap = $cache->total_capacity; - $cache->total_capacity(0); # drop all immediately - $cache->total_capacity(undef); # no limit - $cache->total_capacity($number); - -Get/sets the number of connection that will be cached. Connections -will start to be dropped when this limit is reached. If set to C<0>, -then all connections are immediately dropped. If set to C<undef>, -then there is no limit. - -=head2 capacity - - my $http_capacity = $cache->capacity('http'); - $cache->capacity('http', 2 ); - -Get/set a limit for the number of connections of the specified type -that can be cached. The first parameter is a short string like -"http" or "ftp". - -=head2 drop - - $cache->drop(); # Drop ALL connections - # which is just a synonym for: - $cache->drop(sub{1}); # Drop ALL connections - # drop all connections older than 22 seconds and add a reason for it! - $cache->drop(22, "Older than 22 secs dropped"); - # which is just a synonym for: - $cache->drop(sub { - my ($conn, $type, $key, $deposit_time) = @_; - if ($deposit_time < 22) { - # true values drop the connection - return 1; - } - # false values don't drop the connection - return 0; - }, "Older than 22 secs dropped" ); - -Drop connections by some criteria. The $checker argument is a -subroutine that is called for each connection. If the routine returns -a TRUE value then the connection is dropped. The routine is called -with ($conn, $type, $key, $deposit_time) as arguments. - -Shortcuts: If the $checker argument is absent (or C<undef>) all cached -connections are dropped. If the $checker is a number then all -connections untouched that the given number of seconds or more are -dropped. If $checker is a string then all connections of the given -type are dropped. - -The C<reason> is passed on to the L<LWP::ConnCache/dropped> method. - -=head2 prune - - $cache->prune(); - -Calling this method will drop all connections that are dead. This is -tested by calling the L<LWP::ConnCache/ping> method on the connections. If -the L<LWP::ConnCache/ping> method exists and returns a false value, then the -connection is dropped. - -=head2 get_types - - my @types = $cache->get_types(); - -This returns all the C<type> fields used for the currently cached -connections. - -=head2 get_connections - - my @conns = $cache->get_connections(); # all connections - my @conns = $cache->get_connections('http'); # connections for http - -This returns all connection objects of the specified type. If no type -is specified then all connections are returned. In scalar context the -number of cached connections of the specified type is returned. - -=head1 PROTOCOL METHODS - -The following methods are called by low-level protocol modules to -try to save away connections and to get them back. - -=head2 deposit - - $cache->deposit($type, $key, $conn); - -This method adds a new connection to the cache. As a result, other -already cached connections might be dropped. Multiple connections with -the same type/key might be added. - -=head2 withdraw - - my $conn = $cache->withdraw($type, $key); - -This method tries to fetch back a connection that was previously -deposited. If no cached connection with the specified $type/$key is -found, then C<undef> is returned. There is not guarantee that a -deposited connection can be withdrawn, as the cache manger is free to -drop connections at any time. - -=head1 INTERNAL METHODS - -The following methods are called internally. Subclasses might want to -override them. - -=head2 enforce_limits - - $conn->enforce_limits([$type]) - -This method is called with after a new connection is added (deposited) -in the cache or capacity limits are adjusted. The default -implementation drops connections until the specified capacity limits -are not exceeded. - -=head2 dropping - - $conn->dropping($conn_record, $reason) - -This method is called when a connection is dropped. The record -belonging to the dropped connection is passed as the first argument -and a string describing the reason for the drop is passed as the -second argument. The default implementation makes some noise if the -C<$LWP::ConnCache::DEBUG> variable is set and nothing more. - -=head1 SUBCLASSING - -For specialized cache policy it makes sense to subclass -C<LWP::ConnCache> and perhaps override the L<LWP::ConnCache/deposit>, -L<LWP::ConnCache/enforce_limits>, and L<LWP::ConnCache/dropping> methods. - -The object itself is a hash. Keys prefixed with C<cc_> are reserved -for the base class. - -=head1 SEE ALSO - -L<LWP::UserAgent> - -=head1 COPYRIGHT - -Copyright 2001 Gisle Aas. - -This library is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Debug.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Debug.pm deleted file mode 100644 index 1d7f8795..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Debug.pm +++ /dev/null @@ -1,107 +0,0 @@ -package LWP::Debug; # legacy -$LWP::Debug::VERSION = '6.26'; -require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw(level trace debug conns); - -use Carp (); - -my @levels = qw(trace debug conns); -our %current_level = (); - -sub import { - my $pack = shift; - my $callpkg = caller(0); - my @symbols = (); - my @levels = (); - for (@_) { - if (/^[-+]/) { - push(@levels, $_); - } - else { - push(@symbols, $_); - } - } - Exporter::export($pack, $callpkg, @symbols); - level(@levels); -} - -sub level { - for (@_) { - if ($_ eq '+') { # all on - # switch on all levels - %current_level = map { $_ => 1 } @levels; - } - elsif ($_ eq '-') { # all off - %current_level = (); - } - elsif (/^([-+])(\w+)$/) { - $current_level{$2} = $1 eq '+'; - } - else { - Carp::croak("Illegal level format $_"); - } - } -} - -sub trace { _log(@_) if $current_level{'trace'}; } -sub debug { _log(@_) if $current_level{'debug'}; } -sub conns { _log(@_) if $current_level{'conns'}; } - -sub _log { - my $msg = shift; - $msg .= "\n" unless $msg =~ /\n$/; # ensure trailing "\n" - - my ($package, $filename, $line, $sub) = caller(2); - print STDERR "$sub: $msg"; -} - -1; - -__END__ - -=pod - -=head1 NAME - -LWP::Debug - deprecated - -=head1 DESCRIPTION - -LWP::Debug is used to provide tracing facilities, but these are not used -by LWP any more. The code in this module is kept around -(undocumented) so that 3rd party code that happens to use the old -interfaces continue to run. - -One useful feature that LWP::Debug provided (in an imprecise and -troublesome way) was network traffic monitoring. The following -section provides some hints about recommended replacements. - -=head2 Network traffic monitoring - -The best way to monitor the network traffic that LWP generates is to -use an external TCP monitoring program. The -L<WireShark|http://www.wireshark.org/> program is highly recommended for this. - -Another approach it to use a debugging HTTP proxy server and make -LWP direct all its traffic via this one. Call C<< $ua->proxy >> to -set it up and then just use LWP as before. - -For less precise monitoring needs just setting up a few simple -handlers might do. The following example sets up handlers to dump the -request and response objects that pass through LWP: - - use LWP::UserAgent; - $ua = LWP::UserAgent->new; - $ua->default_header('Accept-Encoding' => scalar HTTP::Message::decodable()); - - $ua->add_handler("request_send", sub { shift->dump; return }); - $ua->add_handler("response_done", sub { shift->dump; return }); - - $ua->get("http://www.example.com"); - -=head1 SEE ALSO - -L<LWP::UserAgent> - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Debug/TraceHTTP.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Debug/TraceHTTP.pm deleted file mode 100644 index c2848445..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Debug/TraceHTTP.pm +++ /dev/null @@ -1,26 +0,0 @@ -package LWP::Debug::TraceHTTP; -$LWP::Debug::TraceHTTP::VERSION = '6.26'; -# Just call: -# -# require LWP::Debug::TraceHTTP; -# LWP::Protocol::implementor('http', 'LWP::Debug::TraceHTTP'); -# -# to use this module to trace all calls to the HTTP socket object in -# programs that use LWP. - -use strict; -use base 'LWP::Protocol::http'; - -package LWP::Debug::TraceHTTP::Socket; -$LWP::Debug::TraceHTTP::Socket::VERSION = '6.26'; -use Data::Dump 1.13; -use Data::Dump::Trace qw(autowrap mcall); - -autowrap("LWP::Protocol::http::Socket" => "sock"); - -sub new { - my $class = shift; - return mcall("LWP::Protocol::http::Socket" => "new", undef, @_); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/DebugFile.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/DebugFile.pm deleted file mode 100644 index 5f99cc3c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/DebugFile.pm +++ /dev/null @@ -1,5 +0,0 @@ -package LWP::DebugFile; -$LWP::DebugFile::VERSION = '6.26'; -# legacy stub - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/MemberMixin.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/MemberMixin.pm deleted file mode 100644 index 893736d1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/MemberMixin.pm +++ /dev/null @@ -1,46 +0,0 @@ -package LWP::MemberMixin; -$LWP::MemberMixin::VERSION = '6.26'; -sub _elem { - my $self = shift; - my $elem = shift; - my $old = $self->{$elem}; - $self->{$elem} = shift if @_; - return $old; -} - -1; - -__END__ - -=pod - -=head1 NAME - -LWP::MemberMixin - Member access mixin class - -=head1 SYNOPSIS - - package Foo; - use base qw(LWP::MemberMixin); - -=head1 DESCRIPTION - -A mixin class to get methods that provide easy access to member -variables in the C<%$self>. -Ideally there should be better Perl language support for this. - -=head1 METHODS - -There is only one method provided: - -=head2 _elem - - _elem($elem [, $val]) - -Internal method to get/set the value of member variable -C<$elem>. If C<$val> is present it is used as the new value -for the member variable. If it is not present the current -value is not touched. In both cases the previous value of -the member variable is returned. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol.pm deleted file mode 100644 index baaf9ef3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol.pm +++ /dev/null @@ -1,305 +0,0 @@ -package LWP::Protocol; - -use base 'LWP::MemberMixin'; - -our $VERSION = '6.26'; - -use strict; -use Carp (); -use HTTP::Status (); -use HTTP::Response (); -use Try::Tiny qw(try catch); - -my %ImplementedBy = (); # scheme => classname - -sub new -{ - my($class, $scheme, $ua) = @_; - - my $self = bless { - scheme => $scheme, - ua => $ua, - - # historical/redundant - max_size => $ua->{max_size}, - }, $class; - - $self; -} - - -sub create -{ - my($scheme, $ua) = @_; - my $impclass = LWP::Protocol::implementor($scheme) or - Carp::croak("Protocol scheme '$scheme' is not supported"); - - # hand-off to scheme specific implementation sub-class - my $protocol = $impclass->new($scheme, $ua); - - return $protocol; -} - - -sub implementor -{ - my($scheme, $impclass) = @_; - - if ($impclass) { - $ImplementedBy{$scheme} = $impclass; - } - my $ic = $ImplementedBy{$scheme}; - return $ic if $ic; - - return '' unless $scheme =~ /^([.+\-\w]+)$/; # check valid URL schemes - $scheme = $1; # untaint - $scheme =~ s/[.+\-]/_/g; # make it a legal module name - - # scheme not yet known, look for a 'use'd implementation - $ic = "LWP::Protocol::$scheme"; # default location - $ic = "LWP::Protocol::nntp" if $scheme eq 'news'; #XXX ugly hack - no strict 'refs'; - # check we actually have one for the scheme: - unless (@{"${ic}::ISA"}) { - # try to autoload it - try { - (my $class = $ic) =~ s{::}{/}g; - $class .= '.pm' unless $class =~ /\.pm$/; - require $class; - } - catch { - my $error = $_; - if ($error =~ /Can't locate/) { - $ic = ''; - } - else { - die "$error\n"; - } - }; - } - $ImplementedBy{$scheme} = $ic if $ic; - $ic; -} - - -sub request -{ - my($self, $request, $proxy, $arg, $size, $timeout) = @_; - Carp::croak('LWP::Protocol::request() needs to be overridden in subclasses'); -} - - -# legacy -sub timeout { shift->_elem('timeout', @_); } -sub max_size { shift->_elem('max_size', @_); } - - -sub collect -{ - my ($self, $arg, $response, $collector) = @_; - my $content; - my($ua, $max_size) = @{$self}{qw(ua max_size)}; - - try { - local $\; # protect the print below from surprises - if (!defined($arg) || !$response->is_success) { - $response->{default_add_content} = 1; - } - elsif (!ref($arg) && length($arg)) { - open(my $fh, ">", $arg) or die "Can't write to '$arg': $!"; - binmode($fh); - push(@{$response->{handlers}{response_data}}, { - callback => sub { - print $fh $_[3] or die "Can't write to '$arg': $!"; - 1; - }, - }); - push(@{$response->{handlers}{response_done}}, { - callback => sub { - close($fh) or die "Can't write to '$arg': $!"; - undef($fh); - }, - }); - } - elsif (ref($arg) eq 'CODE') { - push(@{$response->{handlers}{response_data}}, { - callback => sub { - &$arg($_[3], $_[0], $self); - 1; - }, - }); - } - else { - die "Unexpected collect argument '$arg'"; - } - - $ua->run_handlers("response_header", $response); - - if (delete $response->{default_add_content}) { - push(@{$response->{handlers}{response_data}}, { - callback => sub { - $_[0]->add_content($_[3]); - 1; - }, - }); - } - - - my $content_size = 0; - my $length = $response->content_length; - my %skip_h; - - while ($content = &$collector, length $$content) { - for my $h ($ua->handlers("response_data", $response)) { - next if $skip_h{$h}; - unless ($h->{callback}->($response, $ua, $h, $$content)) { - # XXX remove from $response->{handlers}{response_data} if present - $skip_h{$h}++; - } - } - $content_size += length($$content); - $ua->progress(($length ? ($content_size / $length) : "tick"), $response); - if (defined($max_size) && $content_size > $max_size) { - $response->push_header("Client-Aborted", "max_size"); - last; - } - } - } - catch { - my $error = $_; - chomp($error); - $response->push_header('X-Died' => $error); - $response->push_header("Client-Aborted", "die"); - }; - delete $response->{handlers}{response_data}; - delete $response->{handlers} unless %{$response->{handlers}}; - return $response; -} - - -sub collect_once -{ - my($self, $arg, $response) = @_; - my $content = \ $_[3]; - my $first = 1; - $self->collect($arg, $response, sub { - return $content if $first--; - return \ ""; - }); -} - -1; - - -__END__ - -=pod - -=head1 NAME - -LWP::Protocol - Base class for LWP protocols - -=head1 SYNOPSIS - - package LWP::Protocol::foo; - use base qw(LWP::Protocol); - -=head1 DESCRIPTION - -This class is used as the base class for all protocol implementations -supported by the LWP library. - -When creating an instance of this class using -C<LWP::Protocol::create($url)>, and you get an initialized subclass -appropriate for that access method. In other words, the -L<LWP::Protocol/create> function calls the constructor for one of its -subclasses. - -All derived C<LWP::Protocol> classes need to override the request() -method which is used to service a request. The overridden method can -make use of the collect() function to collect together chunks of data -as it is received. - -=head1 METHODS - -The following methods and functions are provided: - -=head2 new - - my $prot = LWP::Protocol->new(); - -The LWP::Protocol constructor is inherited by subclasses. As this is a -virtual base class this method should B<not> be called directly. - -=head2 create - - my $prot = LWP::Protocol::create($scheme) - -Create an object of the class implementing the protocol to handle the -given scheme. This is a function, not a method. It is more an object -factory than a constructor. This is the function user agents should -use to access protocols. - -=head2 implementor - - my $class = LWP::Protocol::implementor($scheme, [$class]) - -Get and/or set implementor class for a scheme. Returns C<''> if the -specified scheme is not supported. - -=head2 request - - $response = $protocol->request($request, $proxy, undef); - $response = $protocol->request($request, $proxy, '/tmp/sss'); - $response = $protocol->request($request, $proxy, \&callback, 1024); - -Dispatches a request over the protocol, and returns a response -object. This method needs to be overridden in subclasses. Refer to -L<LWP::UserAgent> for description of the arguments. - -=head2 collect - - my $res = $prot->collect(undef, $response, $collector); # stored in $response - my $res = $prot->collect($filename, $response, $collector); - my $res = $prot->collect(sub { ... }, $response, $collector); - -Collect the content of a request, and process it appropriately into a scalar, -file, or by calling a callback. If the first parameter is undefined, then the -content is stored within the C<$response>. If it's a simple scalar, then it's -interpreted as a file name and the content is written to this file. If it's a -code reference, then content is passed to this routine. - -The collector is a routine that will be called and which is -responsible for returning pieces (as ref to scalar) of the content to -process. The C<$collector> signals C<EOF> by returning a reference to an -empty string. - -The return value is the L<HTTP::Response> object reference. - -B<Note:> We will only use the callback or file argument if -C<< $response->is_success() >>. This avoids sending content data for -redirects and authentication responses to the callback which would be -confusing. - -=head2 collect_once - - $prot->collect_once($arg, $response, $content) - -Can be called when the whole response content is available as content. This -will invoke L<LWP::Protocol/collect> with a collector callback that -returns a reference to C<$content> the first time and an empty string the -next. - -=head1 SEE ALSO - -Inspect the F<LWP/Protocol/file.pm> and F<LWP/Protocol/http.pm> files -for examples of usage. - -=head1 COPYRIGHT - -Copyright 1995-2001 Gisle Aas. - -This library is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/cpan.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/cpan.pm deleted file mode 100644 index be3ae643..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/cpan.pm +++ /dev/null @@ -1,70 +0,0 @@ -package LWP::Protocol::cpan; -$LWP::Protocol::cpan::VERSION = '6.26'; -use strict; - -use base qw(LWP::Protocol); - -require URI; -require HTTP::Status; -require HTTP::Response; - -our $CPAN; - -unless ($CPAN) { - # Try to find local CPAN mirror via $CPAN::Config - eval { - require CPAN::Config; - if($CPAN::Config) { - my $urls = $CPAN::Config->{urllist}; - if (ref($urls) eq "ARRAY") { - my $file; - for (@$urls) { - if (/^file:/) { - $file = $_; - last; - } - } - - if ($file) { - $CPAN = $file; - } - else { - $CPAN = $urls->[0]; - } - } - } - }; - - $CPAN ||= "http://cpan.org/"; # last resort -} - -# ensure that we don't chop of last part -$CPAN .= "/" unless $CPAN =~ m,/$,; - - -sub request { - my($self, $request, $proxy, $arg, $size) = @_; - # check proxy - if (defined $proxy) - { - return HTTP::Response->new(HTTP::Status::RC_BAD_REQUEST, - 'You can not proxy with cpan'); - } - - # check method - my $method = $request->method; - unless ($method eq 'GET' || $method eq 'HEAD') { - return HTTP::Response->new(HTTP::Status::RC_BAD_REQUEST, - 'Library does not allow method ' . - "$method for 'cpan:' URLs"); - } - - my $path = $request->uri->path; - $path =~ s,^/,,; - - my $response = HTTP::Response->new(HTTP::Status::RC_FOUND); - $response->header("Location" => URI->new_abs($path, $CPAN)); - $response; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/data.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/data.pm deleted file mode 100644 index 67c3c954..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/data.pm +++ /dev/null @@ -1,50 +0,0 @@ -package LWP::Protocol::data; -$LWP::Protocol::data::VERSION = '6.26'; -# Implements access to data:-URLs as specified in RFC 2397 - -use strict; - -require HTTP::Response; -require HTTP::Status; - -use base qw(LWP::Protocol); - -use HTTP::Date qw(time2str); -require LWP; # needs version number - -sub request -{ - my($self, $request, $proxy, $arg, $size) = @_; - - # check proxy - if (defined $proxy) - { - return HTTP::Response->new( HTTP::Status::RC_BAD_REQUEST, - 'You can not proxy with data'); - } - - # check method - my $method = $request->method; - unless ($method eq 'GET' || $method eq 'HEAD') { - return HTTP::Response->new( HTTP::Status::RC_BAD_REQUEST, - 'Library does not allow method ' . - "$method for 'data:' URLs"); - } - - my $url = $request->uri; - my $response = HTTP::Response->new( HTTP::Status::RC_OK, "Document follows"); - - my $media_type = $url->media_type; - - my $data = $url->data; - $response->header('Content-Type' => $media_type, - 'Content-Length' => length($data), - 'Date' => time2str(time), - 'Server' => "libwww-perl-internal/$LWP::VERSION" - ); - - $data = "" if $method eq "HEAD"; - return $self->collect_once($arg, $response, $data); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/file.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/file.pm deleted file mode 100644 index 5253ae4b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/file.pm +++ /dev/null @@ -1,145 +0,0 @@ -package LWP::Protocol::file; -$LWP::Protocol::file::VERSION = '6.26'; -use base qw(LWP::Protocol); - -use strict; - -require LWP::MediaTypes; -require HTTP::Request; -require HTTP::Response; -require HTTP::Status; -require HTTP::Date; - - -sub request -{ - my($self, $request, $proxy, $arg, $size) = @_; - - $size = 4096 unless defined $size and $size > 0; - - # check proxy - if (defined $proxy) - { - return HTTP::Response->new( HTTP::Status::RC_BAD_REQUEST, - 'You can not proxy through the filesystem'); - } - - # check method - my $method = $request->method; - unless ($method eq 'GET' || $method eq 'HEAD') { - return HTTP::Response->new( HTTP::Status::RC_BAD_REQUEST, - 'Library does not allow method ' . - "$method for 'file:' URLs"); - } - - # check url - my $url = $request->uri; - - my $scheme = $url->scheme; - if ($scheme ne 'file') { - return HTTP::Response->new( HTTP::Status::RC_INTERNAL_SERVER_ERROR, - "LWP::Protocol::file::request called for '$scheme'"); - } - - # URL OK, look at file - my $path = $url->file; - - # test file exists and is readable - unless (-e $path) { - return HTTP::Response->new( HTTP::Status::RC_NOT_FOUND, - "File `$path' does not exist"); - } - unless (-r _) { - return HTTP::Response->new( HTTP::Status::RC_FORBIDDEN, - 'User does not have read permission'); - } - - # looks like file exists - my($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$filesize, - $atime,$mtime,$ctime,$blksize,$blocks) - = stat(_); - - # XXX should check Accept headers? - - # check if-modified-since - my $ims = $request->header('If-Modified-Since'); - if (defined $ims) { - my $time = HTTP::Date::str2time($ims); - if (defined $time and $time >= $mtime) { - return HTTP::Response->new( HTTP::Status::RC_NOT_MODIFIED, - "$method $path"); - } - } - - # Ok, should be an OK response by now... - my $response = HTTP::Response->new( HTTP::Status::RC_OK ); - - # fill in response headers - $response->header('Last-Modified', HTTP::Date::time2str($mtime)); - - if (-d _) { # If the path is a directory, process it - # generate the HTML for directory - opendir(D, $path) or - return HTTP::Response->new( HTTP::Status::RC_INTERNAL_SERVER_ERROR, - "Cannot read directory '$path': $!"); - my(@files) = sort readdir(D); - closedir(D); - - # Make directory listing - require URI::Escape; - require HTML::Entities; - my $pathe = $path . ( $^O eq 'MacOS' ? ':' : '/'); - for (@files) { - my $furl = URI::Escape::uri_escape($_); - if ( -d "$pathe$_" ) { - $furl .= '/'; - $_ .= '/'; - } - my $desc = HTML::Entities::encode($_); - $_ = qq{<LI><A HREF="$furl">$desc</A>}; - } - # Ensure that the base URL is "/" terminated - my $base = $url->clone; - unless ($base->path =~ m|/$|) { - $base->path($base->path . "/"); - } - my $html = join("\n", - "<HTML>\n<HEAD>", - "<TITLE>Directory $path", - "", - "\n", - "

Directory listing of $path

", - "
    ", @files, "
", - "\n\n"); - - $response->header('Content-Type', 'text/html'); - $response->header('Content-Length', length $html); - $html = "" if $method eq "HEAD"; - - return $self->collect_once($arg, $response, $html); - - } - - # path is a regular file - $response->header('Content-Length', $filesize); - LWP::MediaTypes::guess_media_type($path, $response); - - # read the file - if ($method ne "HEAD") { - open(F, $path) or return new - HTTP::Response(HTTP::Status::RC_INTERNAL_SERVER_ERROR, - "Cannot read file '$path': $!"); - binmode(F); - $response = $self->collect($arg, $response, sub { - my $content = ""; - my $bytes = sysread(F, $content, $size); - return \$content if $bytes > 0; - return \ ""; - }); - close(F); - } - - $response; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/ftp.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/ftp.pm deleted file mode 100644 index 8eab251c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/ftp.pm +++ /dev/null @@ -1,552 +0,0 @@ -package LWP::Protocol::ftp; -$LWP::Protocol::ftp::VERSION = '6.26'; -# Implementation of the ftp protocol (RFC 959). We let the Net::FTP -# package do all the dirty work. -use base qw(LWP::Protocol); -use strict; - -use Carp (); -use HTTP::Status (); -use HTTP::Negotiate (); -use HTTP::Response (); -use LWP::MediaTypes (); -use File::Listing (); - - -{ - - package LWP::Protocol::MyFTP; -$LWP::Protocol::MyFTP::VERSION = '6.26'; -use strict; - use base qw(Net::FTP); - - sub new { - my $class = shift; - - my $self = $class->SUPER::new(@_) || return undef; - - my $mess = $self->message; # welcome message - $mess =~ s|\n.*||s; # only first line left - $mess =~ s|\s*ready\.?$||; - - # Make the version number more HTTP like - $mess =~ s|\s*\(Version\s*|/| and $mess =~ s|\)$||; - ${*$self}{myftp_server} = $mess; - - #$response->header("Server", $mess); - - $self; - } - - sub http_server { - my $self = shift; - ${*$self}{myftp_server}; - } - - sub home { - my $self = shift; - my $old = ${*$self}{myftp_home}; - if (@_) { - ${*$self}{myftp_home} = shift; - } - $old; - } - - sub go_home { - my $self = shift; - $self->cwd(${*$self}{myftp_home}); - } - - sub request_count { - my $self = shift; - ++${*$self}{myftp_reqcount}; - } - - sub ping { - my $self = shift; - return $self->go_home; - } -} - -sub _connect { - my ($self, $host, $port, $user, $account, $password, $timeout) = @_; - - my $key; - my $conn_cache = $self->{ua}{conn_cache}; - if ($conn_cache) { - $key = "$host:$port:$user"; - $key .= ":$account" if defined($account); - if (my $ftp = $conn_cache->withdraw("ftp", $key)) { - if ($ftp->ping) { - - # save it again - $conn_cache->deposit("ftp", $key, $ftp); - return $ftp; - } - } - } - - # try to make a connection - my $ftp = LWP::Protocol::MyFTP->new( - $host, - Port => $port, - Timeout => $timeout, - LocalAddr => $self->{ua}{local_address}, - ); - - # XXX Should be some what to pass on 'Passive' (header??) - unless ($ftp) { - $@ =~ s/^Net::FTP: //; - return HTTP::Response->new(HTTP::Status::RC_INTERNAL_SERVER_ERROR, $@); - } - - unless ($ftp->login($user, $password, $account)) { - - # Unauthorized. Let's fake a RC_UNAUTHORIZED response - my $mess = scalar($ftp->message); - $mess =~ s/\n$//; - my $res = HTTP::Response->new(HTTP::Status::RC_UNAUTHORIZED, $mess); - $res->header("Server", $ftp->http_server); - $res->header("WWW-Authenticate", qq(Basic Realm="FTP login")); - return $res; - } - - my $home = $ftp->pwd; - $ftp->home($home); - - $conn_cache->deposit("ftp", $key, $ftp) if $conn_cache; - - return $ftp; -} - - -sub request { - my ($self, $request, $proxy, $arg, $size, $timeout) = @_; - - $size = 4096 unless $size; - - # check proxy - if (defined $proxy) { - return HTTP::Response->new(HTTP::Status::RC_BAD_REQUEST, - 'You can not proxy through the ftp'); - } - - my $url = $request->uri; - if ($url->scheme ne 'ftp') { - my $scheme = $url->scheme; - return HTTP::Response->new(HTTP::Status::RC_INTERNAL_SERVER_ERROR, - "LWP::Protocol::ftp::request called for '$scheme'"); - } - - # check method - my $method = $request->method; - - unless ($method eq 'GET' || $method eq 'HEAD' || $method eq 'PUT') { - return HTTP::Response->new(HTTP::Status::RC_BAD_REQUEST, - 'Library does not allow method ' . "$method for 'ftp:' URLs"); - } - - my $host = $url->host; - my $port = $url->port; - my $user = $url->user; - my $password = $url->password; - - # If a basic authorization header is present than we prefer these over - # the username/password specified in the URL. - { - my ($u, $p) = $request->authorization_basic; - if (defined $u) { - $user = $u; - $password = $p; - } - } - - # We allow the account to be specified in the "Account" header - my $account = $request->header('Account'); - - my $ftp - = $self->_connect($host, $port, $user, $account, $password, $timeout); - return $ftp if ref($ftp) eq "HTTP::Response"; # ugh! - - # Create an initial response object - my $response = HTTP::Response->new(HTTP::Status::RC_OK, "OK"); - $response->header(Server => $ftp->http_server); - $response->header('Client-Request-Num' => $ftp->request_count); - $response->request($request); - - # Get & fix the path - my @path = grep {length} $url->path_segments; - my $remote_file = pop(@path); - $remote_file = '' unless defined $remote_file; - - my $type; - if (ref $remote_file) { - my @params; - ($remote_file, @params) = @$remote_file; - for (@params) { - $type = $_ if s/^type=//; - } - } - - if ($type && $type eq 'a') { - $ftp->ascii; - } - else { - $ftp->binary; - } - - for (@path) { - unless ($ftp->cwd($_)) { - return HTTP::Response->new(HTTP::Status::RC_NOT_FOUND, - "Can't chdir to $_"); - } - } - - if ($method eq 'GET' || $method eq 'HEAD') { - if (my $mod_time = $ftp->mdtm($remote_file)) { - $response->last_modified($mod_time); - if (my $ims = $request->if_modified_since) { - if ($mod_time <= $ims) { - $response->code(HTTP::Status::RC_NOT_MODIFIED); - $response->message("Not modified"); - return $response; - } - } - } - - # We'll use this later to abort the transfer if necessary. - # if $max_size is defined, we need to abort early. Otherwise, it's - # a normal transfer - my $max_size = undef; - - # Set resume location, if the client requested it - if ($request->header('Range') && $ftp->supported('REST')) { - my $range_info = $request->header('Range'); - - # Change bytes=2772992-6781209 to just 2772992 - my ($start_byte, $end_byte) = $range_info =~ /.*=\s*(\d+)-(\d+)?/; - if (defined $start_byte && !defined $end_byte) { - - # open range -- only the start is specified - - $ftp->restart($start_byte); - - # don't define $max_size, we don't want to abort early - } - elsif (defined $start_byte - && defined $end_byte - && $start_byte >= 0 - && $end_byte >= $start_byte) - { - - $ftp->restart($start_byte); - $max_size = $end_byte - $start_byte; - } - else { - - return HTTP::Response->new(HTTP::Status::RC_BAD_REQUEST, - 'Incorrect syntax for Range request'); - } - } - elsif ($request->header('Range') && !$ftp->supported('REST')) { - return HTTP::Response->new(HTTP::Status::RC_NOT_IMPLEMENTED, - "Server does not support resume." - ); - } - - my $data; # the data handle - if (length($remote_file) and $data = $ftp->retr($remote_file)) { - my ($type, @enc) = LWP::MediaTypes::guess_media_type($remote_file); - $response->header('Content-Type', $type) if $type; - for (@enc) { - $response->push_header('Content-Encoding', $_); - } - my $mess = $ftp->message; - if ($mess =~ /\((\d+)\s+bytes\)/) { - $response->header('Content-Length', "$1"); - } - - if ($method ne 'HEAD') { - - # Read data from server - $response = $self->collect( - $arg, - $response, - sub { - my $content = ''; - my $result = $data->read($content, $size); - - # Stop early if we need to. - if (defined $max_size) { - - # We need an interface to Net::FTP::dataconn for getting - # the number of bytes already read - my $bytes_received = $data->bytes_read(); - - # We were already over the limit. (Should only happen - # once at the end.) - if ($bytes_received - length($content) > $max_size) - { - $content = ''; - } - - # We just went over the limit - elsif ($bytes_received > $max_size) { - - # Trim content - $content = substr($content, 0, - $max_size - - ($bytes_received - length($content))); - } - - # We're under the limit - else { - } - } - - return \$content; - } - ); - } - - # abort is needed for HEAD, it's == close if the transfer has - # already completed. - unless ($data->abort) { - - # Something did not work too well. Note that we treat - # responses to abort() with code 0 in case of HEAD as ok - # (at least wu-ftpd 2.6.1(1) does that). - if ($method ne 'HEAD' || $ftp->code != 0) { - $response->code(HTTP::Status::RC_INTERNAL_SERVER_ERROR); - $response->message("FTP close response: " - . $ftp->code . " " - . $ftp->message); - } - } - } - elsif (!length($remote_file) || ($ftp->code >= 400 && $ftp->code < 600)) - { - # not a plain file, try to list instead - if (length($remote_file) && !$ftp->cwd($remote_file)) { - return HTTP::Response->new(HTTP::Status::RC_NOT_FOUND, - "File '$remote_file' not found" - ); - } - - # It should now be safe to try to list the directory - my @lsl = $ftp->dir; - - # Try to figure out if the user want us to convert the - # directory listing to HTML. - my @variants = ( - ['html', 0.60, 'text/html'], - ['dir', 1.00, 'text/ftp-dir-listing'] - ); - - #$HTTP::Negotiate::DEBUG=1; - my $prefer = HTTP::Negotiate::choose(\@variants, $request); - - my $content = ''; - - if (!defined($prefer)) { - return HTTP::Response->new(HTTP::Status::RC_NOT_ACCEPTABLE, - "Neither HTML nor directory listing wanted"); - } - elsif ($prefer eq 'html') { - $response->header('Content-Type' => 'text/html'); - $content = "File Listing\n"; - my $base = $request->uri->clone; - my $path = $base->path; - $base->path("$path/") unless $path =~ m|/$|; - $content .= qq(\n\n); - $content .= "\n
    \n"; - for (File::Listing::parse_dir(\@lsl, 'GMT')) { - my ($name, $type, $size, $mtime, $mode) = @$_; - $content .= qq(
  • $name); - $content .= " $size bytes" if $type eq 'f'; - $content .= "\n"; - } - $content .= "
\n"; - } - else { - $response->header('Content-Type', 'text/ftp-dir-listing'); - $content = join("\n", @lsl, ''); - } - - $response->header('Content-Length', length($content)); - - if ($method ne 'HEAD') { - $response = $self->collect_once($arg, $response, $content); - } - } - else { - my $res = HTTP::Response->new(HTTP::Status::RC_BAD_REQUEST, - "FTP return code " . $ftp->code); - $res->content_type("text/plain"); - $res->content($ftp->message); - return $res; - } - } - elsif ($method eq 'PUT') { - - # method must be PUT - unless (length($remote_file)) { - return HTTP::Response->new(HTTP::Status::RC_BAD_REQUEST, - "Must have a file name to PUT to" - ); - } - my $data; - if ($data = $ftp->stor($remote_file)) { - my $content = $request->content; - my $bytes = 0; - if (defined $content) { - if (ref($content) eq 'SCALAR') { - $bytes = $data->write($$content, length($$content)); - } - elsif (ref($content) eq 'CODE') { - my ($buf, $n); - while (length($buf = &$content)) { - $n = $data->write($buf, length($buf)); - last unless $n; - $bytes += $n; - } - } - elsif (!ref($content)) { - if (defined $content && length($content)) { - $bytes = $data->write($content, length($content)); - } - } - else { - die "Bad content"; - } - } - $data->close; - - $response->code(HTTP::Status::RC_CREATED); - $response->header('Content-Type', 'text/plain'); - $response->content("$bytes bytes stored as $remote_file on $host\n") - - } - else { - my $res = HTTP::Response->new(HTTP::Status::RC_BAD_REQUEST, - "FTP return code " . $ftp->code); - $res->content_type("text/plain"); - $res->content($ftp->message); - return $res; - } - } - else { - return HTTP::Response->new(HTTP::Status::RC_BAD_REQUEST, - "Illegal method $method"); - } - - $response; -} - -1; - -__END__ - -# This is what RFC 1738 has to say about FTP access: -# -------------------------------------------------- -# -# 3.2. FTP -# -# The FTP URL scheme is used to designate files and directories on -# Internet hosts accessible using the FTP protocol (RFC959). -# -# A FTP URL follow the syntax described in Section 3.1. If : is -# omitted, the port defaults to 21. -# -# 3.2.1. FTP Name and Password -# -# A user name and password may be supplied; they are used in the ftp -# "USER" and "PASS" commands after first making the connection to the -# FTP server. If no user name or password is supplied and one is -# requested by the FTP server, the conventions for "anonymous" FTP are -# to be used, as follows: -# -# The user name "anonymous" is supplied. -# -# The password is supplied as the Internet e-mail address -# of the end user accessing the resource. -# -# If the URL supplies a user name but no password, and the remote -# server requests a password, the program interpreting the FTP URL -# should request one from the user. -# -# 3.2.2. FTP url-path -# -# The url-path of a FTP URL has the following syntax: -# -# //...//;type= -# -# Where through and are (possibly encoded) strings -# and is one of the characters "a", "i", or "d". The part -# ";type=" may be omitted. The and parts may be -# empty. The whole url-path may be omitted, including the "/" -# delimiting it from the prefix containing user, password, host, and -# port. -# -# The url-path is interpreted as a series of FTP commands as follows: -# -# Each of the elements is to be supplied, sequentially, as the -# argument to a CWD (change working directory) command. -# -# If the typecode is "d", perform a NLST (name list) command with -# as the argument, and interpret the results as a file -# directory listing. -# -# Otherwise, perform a TYPE command with as the argument, -# and then access the file whose name is (for example, using -# the RETR command.) -# -# Within a name or CWD component, the characters "/" and ";" are -# reserved and must be encoded. The components are decoded prior to -# their use in the FTP protocol. In particular, if the appropriate FTP -# sequence to access a particular file requires supplying a string -# containing a "/" as an argument to a CWD or RETR command, it is -# necessary to encode each "/". -# -# For example, the URL is -# interpreted by FTP-ing to "host.dom", logging in as "myname" -# (prompting for a password if it is asked for), and then executing -# "CWD /etc" and then "RETR motd". This has a different meaning from -# which would "CWD etc" and then -# "RETR motd"; the initial "CWD" might be executed relative to the -# default directory for "myname". On the other hand, -# , would "CWD " with a null -# argument, then "CWD etc", and then "RETR motd". -# -# FTP URLs may also be used for other operations; for example, it is -# possible to update a file on a remote file server, or infer -# information about it from the directory listings. The mechanism for -# doing so is not spelled out here. -# -# 3.2.3. FTP Typecode is Optional -# -# The entire ;type= part of a FTP URL is optional. If it is -# omitted, the client program interpreting the URL must guess the -# appropriate mode to use. In general, the data content type of a file -# can only be guessed from the name, e.g., from the suffix of the name; -# the appropriate type code to be used for transfer of the file can -# then be deduced from the data content of the file. -# -# 3.2.4 Hierarchy -# -# For some file systems, the "/" used to denote the hierarchical -# structure of the URL corresponds to the delimiter used to construct a -# file name hierarchy, and thus, the filename will look similar to the -# URL path. This does NOT mean that the URL is a Unix filename. -# -# 3.2.5. Optimization -# -# Clients accessing resources via FTP may employ additional heuristics -# to optimize the interaction. For some FTP servers, for example, it -# may be reasonable to keep the control connection open while accessing -# multiple URLs from the same server. However, there is no common -# hierarchical model to the FTP protocol, so if a directory change -# command has been given, it is impossible in general to deduce what -# sequence should be given to navigate to another directory for a -# second retrieval, if the paths are different. The only reliable -# algorithm is to disconnect and reestablish the control connection. diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/gopher.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/gopher.pm deleted file mode 100644 index fd0657c0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/gopher.pm +++ /dev/null @@ -1,211 +0,0 @@ -package LWP::Protocol::gopher; -$LWP::Protocol::gopher::VERSION = '6.26'; -# Implementation of the gopher protocol (RFC 1436) -# -# This code is based on 'wwwgopher.pl,v 0.10 1994/10/17 18:12:34 shelden' -# which in turn is a vastly modified version of Oscar's http'get() -# dated 28/3/94 in -# including contributions from Marc van Heyningen and Martijn Koster. - -use strict; - -require HTTP::Response; -require HTTP::Status; -require IO::Socket; -require IO::Select; - -use base qw(LWP::Protocol); - - -my %gopher2mimetype = ( - '0' => 'text/plain', # 0 file - '1' => 'text/html', # 1 menu - # 2 CSO phone-book server - # 3 Error - '4' => 'application/mac-binhex40', # 4 BinHexed Macintosh file - '5' => 'application/zip', # 5 DOS binary archive of some sort - '6' => 'application/octet-stream', # 6 UNIX uuencoded file. - '7' => 'text/html', # 7 Index-Search server - # 8 telnet session - '9' => 'application/octet-stream', # 9 binary file - 'h' => 'text/html', # html - 'g' => 'image/gif', # gif - 'I' => 'image/*', # some kind of image -); - -my %gopher2encoding = ( - '6' => 'x_uuencode', # 6 UNIX uuencoded file. -); - -sub request -{ - my($self, $request, $proxy, $arg, $size, $timeout) = @_; - - $size = 4096 unless $size; - - # check proxy - if (defined $proxy) { - return HTTP::Response->new(HTTP::Status::RC_BAD_REQUEST, - 'You can not proxy through the gopher'); - } - - my $url = $request->uri; - die "bad scheme" if $url->scheme ne 'gopher'; - - - my $method = $request->method; - unless ($method eq 'GET' || $method eq 'HEAD') { - return HTTP::Response->new(HTTP::Status::RC_BAD_REQUEST, - 'Library does not allow method ' . - "$method for 'gopher:' URLs"); - } - - my $gophertype = $url->gopher_type; - unless (exists $gopher2mimetype{$gophertype}) { - return HTTP::Response->new(HTTP::Status::RC_NOT_IMPLEMENTED, - 'Library does not support gophertype ' . - $gophertype); - } - - my $response = HTTP::Response->new(HTTP::Status::RC_OK, "OK"); - $response->header('Content-type' => $gopher2mimetype{$gophertype} - || 'text/plain'); - $response->header('Content-Encoding' => $gopher2encoding{$gophertype}) - if exists $gopher2encoding{$gophertype}; - - if ($method eq 'HEAD') { - # XXX: don't even try it so we set this header - $response->header('Client-Warning' => 'Client answer only'); - return $response; - } - - if ($gophertype eq '7' && ! $url->search) { - # the url is the prompt for a gopher search; supply boiler-plate - return $self->collect_once($arg, $response, <<"EOT"); - -Gopher Index - - - -

$url
Gopher Search

-This is a searchable Gopher index. -Use the search function of your browser to enter search terms. - -EOT - } - - my $host = $url->host; - my $port = $url->port; - - my $requestLine = ""; - - my $selector = $url->selector; - if (defined $selector) { - $requestLine .= $selector; - my $search = $url->search; - if (defined $search) { - $requestLine .= "\t$search"; - my $string = $url->string; - if (defined $string) { - $requestLine .= "\t$string"; - } - } - } - $requestLine .= "\015\012"; - - # potential request headers are just ignored - - # Ok, lets make the request - my $socket = IO::Socket::INET->new(PeerAddr => $host, - PeerPort => $port, - LocalAddr => $self->{ua}{local_address}, - Proto => 'tcp', - Timeout => $timeout); - die "Can't connect to $host:$port" unless $socket; - my $sel = IO::Select->new($socket); - - { - die "write timeout" if $timeout && !$sel->can_write($timeout); - my $n = syswrite($socket, $requestLine, length($requestLine)); - die $! unless defined($n); - die "short write" if $n != length($requestLine); - } - - my $user_arg = $arg; - - # must handle menus in a special way since they are to be - # converted to HTML. Undefing $arg ensures that the user does - # not see the data before we get a change to convert it. - $arg = undef if $gophertype eq '1' || $gophertype eq '7'; - - # collect response - my $buf = ''; - $response = $self->collect($arg, $response, sub { - die "read timeout" if $timeout && !$sel->can_read($timeout); - my $n = sysread($socket, $buf, $size); - die $! unless defined($n); - return \$buf; - } ); - - # Convert menu to HTML and return data to user. - if ($gophertype eq '1' || $gophertype eq '7') { - my $content = menu2html($response->content); - if (defined $user_arg) { - $response = $self->collect_once($user_arg, $response, $content); - } - else { - $response->content($content); - } - } - - $response; -} - - -sub gopher2url -{ - my($gophertype, $path, $host, $port) = @_; - - my $url; - - if ($gophertype eq '8' || $gophertype eq 'T') { - # telnet session - $url = $HTTP::URI_CLASS->new($gophertype eq '8' ? 'telnet:':'tn3270:'); - $url->user($path) if defined $path; - } - else { - $path = URI::Escape::uri_escape($path); - $url = $HTTP::URI_CLASS->new("gopher:/$gophertype$path"); - } - $url->host($host); - $url->port($port); - $url; -} - -sub menu2html { - my($menu) = @_; - - $menu =~ s/\015//g; # remove carriage return - my $tmp = <<"EOT"; - - - Gopher menu - - -

Gopher menu

-EOT - for (split("\n", $menu)) { - last if /^\./; - my($pretty, $path, $host, $port) = split("\t"); - - $pretty =~ s/^(.)//; - my $type = $1; - - my $url = gopher2url($type, $path, $host, $port)->as_string; - $tmp .= qq{$pretty
\n}; - } - $tmp .= "\n\n"; - $tmp; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/http.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/http.pm deleted file mode 100644 index a7430338..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/http.pm +++ /dev/null @@ -1,517 +0,0 @@ -package LWP::Protocol::http; -$LWP::Protocol::http::VERSION = '6.26'; -use strict; - -require HTTP::Response; -require HTTP::Status; -require Net::HTTP; - -use base qw(LWP::Protocol); - -our @EXTRA_SOCK_OPTS; -my $CRLF = "\015\012"; - -sub _new_socket -{ - my($self, $host, $port, $timeout) = @_; - - # IPv6 literal IP address should be [bracketed] to remove - # ambiguity between ip address and port number. - if ( ($host =~ /:/) && ($host !~ /^\[/) ) { - $host = "[$host]"; - } - - local($^W) = 0; # IO::Socket::INET can be noisy - my $sock = $self->socket_class->new(PeerAddr => $host, - PeerPort => $port, - LocalAddr => $self->{ua}{local_address}, - Proto => 'tcp', - Timeout => $timeout, - KeepAlive => !!$self->{ua}{conn_cache}, - SendTE => 1, - $self->_extra_sock_opts($host, $port), - ); - - unless ($sock) { - # IO::Socket::INET leaves additional error messages in $@ - my $status = "Can't connect to $host:$port"; - if ($@ =~ /\bconnect: (.*)/ || - $@ =~ /\b(Bad hostname)\b/ || - $@ =~ /\b(nodename nor servname provided, or not known)\b/ || - $@ =~ /\b(certificate verify failed)\b/ || - $@ =~ /\b(Crypt-SSLeay can't verify hostnames)\b/ - ) { - $status .= " ($1)"; - } - die "$status\n\n$@"; - } - - # perl 5.005's IO::Socket does not have the blocking method. - eval { $sock->blocking(0); }; - - $sock; -} - -sub socket_type -{ - return "http"; -} - -sub socket_class -{ - my $self = shift; - (ref($self) || $self) . "::Socket"; -} - -sub _extra_sock_opts # to be overridden by subclass -{ - return @EXTRA_SOCK_OPTS; -} - -sub _check_sock -{ - #my($self, $req, $sock) = @_; -} - -sub _get_sock_info -{ - my($self, $res, $sock) = @_; - if (defined(my $peerhost = $sock->peerhost)) { - $res->header("Client-Peer" => "$peerhost:" . $sock->peerport); - } -} - -sub _fixup_header -{ - my($self, $h, $url, $proxy) = @_; - - # Extract 'Host' header - my $hhost = $url->authority; - if ($hhost =~ s/^([^\@]*)\@//) { # get rid of potential "user:pass@" - # add authorization header if we need them. HTTP URLs do - # not really support specification of user and password, but - # we allow it. - if (defined($1) && not $h->header('Authorization')) { - require URI::Escape; - $h->authorization_basic(map URI::Escape::uri_unescape($_), - split(":", $1, 2)); - } - } - $h->init_header('Host' => $hhost); - - if ($proxy && $url->scheme ne 'https') { - # Check the proxy URI's userinfo() for proxy credentials - # export http_proxy="http://proxyuser:proxypass@proxyhost:port". - # For https only the initial CONNECT requests needs authorization. - my $p_auth = $proxy->userinfo(); - if(defined $p_auth) { - require URI::Escape; - $h->proxy_authorization_basic(map URI::Escape::uri_unescape($_), - split(":", $p_auth, 2)) - } - } -} - -sub hlist_remove { - my($hlist, $k) = @_; - $k = lc $k; - for (my $i = @$hlist - 2; $i >= 0; $i -= 2) { - next unless lc($hlist->[$i]) eq $k; - splice(@$hlist, $i, 2); - } -} - -sub request -{ - my($self, $request, $proxy, $arg, $size, $timeout) = @_; - - $size ||= 4096; - - # check method - my $method = $request->method; - unless ($method =~ /^[A-Za-z0-9_!\#\$%&\'*+\-.^\`|~]+$/) { # HTTP token - return HTTP::Response->new( HTTP::Status::RC_BAD_REQUEST, - 'Library does not allow method ' . - "$method for 'http:' URLs"); - } - - my $url = $request->uri; - - # Proxying SSL with a http proxy needs issues a CONNECT request to build a - # tunnel and then upgrades the tunnel to SSL. But when doing keep-alive the - # https request does not need to be the first request in the connection, so - # we need to distinguish between - # - not yet connected (create socket and ssl upgrade) - # - connected but not inside ssl tunnel (ssl upgrade) - # - inside ssl tunnel to the target - once we are in the tunnel to the - # target we cannot only reuse the tunnel for more https requests with the - # same target - - my $ssl_tunnel = $proxy && $url->scheme eq 'https' - && $url->host.":".$url->port; - - my ($host,$port) = $proxy - ? ($proxy->host,$proxy->port) - : ($url->host,$url->port); - my $fullpath = - $method eq 'CONNECT' ? $url->host . ":" . $url->port : - $proxy && ! $ssl_tunnel ? $url->as_string : - do { - my $path = $url->path_query; - $path = "/$path" if $path !~m{^/}; - $path - }; - - my $socket; - my $conn_cache = $self->{ua}{conn_cache}; - my $cache_key; - if ( $conn_cache ) { - $cache_key = "$host:$port"; - # For https we reuse the socket immediately only if it has an established - # tunnel to the target. Otherwise a CONNECT request followed by an SSL - # upgrade need to be done first. The request itself might reuse an - # existing non-ssl connection to the proxy - $cache_key .= "!".$ssl_tunnel if $ssl_tunnel; - if ( $socket = $conn_cache->withdraw($self->socket_type,$cache_key)) { - if ($socket->can_read(0)) { - # if the socket is readable, then either the peer has closed the - # connection or there are some garbage bytes on it. In either - # case we abandon it. - $socket->close; - $socket = undef; - } # else use $socket - else { - $socket->timeout($timeout); - } - } - } - - if ( ! $socket && $ssl_tunnel ) { - my $proto_https = LWP::Protocol::create('https',$self->{ua}) - or die "no support for scheme https found"; - - # only if ssl socket class is IO::Socket::SSL we can upgrade - # a plain socket to SSL. In case of Net::SSL we fall back to - # the old version - if ( my $upgrade_sub = $proto_https->can('_upgrade_sock')) { - my $response = $self->request( - HTTP::Request->new('CONNECT',"http://$ssl_tunnel"), - $proxy, - undef,$size,$timeout - ); - $response->is_success or die - "establishing SSL tunnel failed: ".$response->status_line; - $socket = $upgrade_sub->($proto_https, - $response->{client_socket},$url) - or die "SSL upgrade failed: $@"; - } else { - $socket = $proto_https->_new_socket($url->host,$url->port,$timeout); - } - } - - if ( ! $socket ) { - # connect to remote site w/o reusing established socket - $socket = $self->_new_socket($host, $port, $timeout ); - } - - my $http_version = ""; - if (my $proto = $request->protocol) { - if ($proto =~ /^(?:HTTP\/)?(1.\d+)$/) { - $http_version = $1; - $socket->http_version($http_version); - $socket->send_te(0) if $http_version eq "1.0"; - } - } - - $self->_check_sock($request, $socket); - - my @h; - my $request_headers = $request->headers->clone; - $self->_fixup_header($request_headers, $url, $proxy); - - $request_headers->scan(sub { - my($k, $v) = @_; - $k =~ s/^://; - $v =~ s/\n/ /g; - push(@h, $k, $v); - }); - - my $content_ref = $request->content_ref; - $content_ref = $$content_ref if ref($$content_ref); - my $chunked; - my $has_content; - - if (ref($content_ref) eq 'CODE') { - my $clen = $request_headers->header('Content-Length'); - $has_content++ if $clen; - unless (defined $clen) { - push(@h, "Transfer-Encoding" => "chunked"); - $has_content++; - $chunked++; - } - } - else { - # Set (or override) Content-Length header - my $clen = $request_headers->header('Content-Length'); - if (defined($$content_ref) && length($$content_ref)) { - $has_content = length($$content_ref); - if (!defined($clen) || $clen ne $has_content) { - if (defined $clen) { - warn "Content-Length header value was wrong, fixed"; - hlist_remove(\@h, 'Content-Length'); - } - push(@h, 'Content-Length' => $has_content); - } - } - elsif ($clen) { - warn "Content-Length set when there is no content, fixed"; - hlist_remove(\@h, 'Content-Length'); - } - } - - my $write_wait = 0; - $write_wait = 2 - if ($request_headers->header("Expect") || "") =~ /100-continue/; - - my $req_buf = $socket->format_request($method, $fullpath, @h); - #print "------\n$req_buf\n------\n"; - - if (!$has_content || $write_wait || $has_content > 8*1024) { - WRITE: - { - # Since this just writes out the header block it should almost - # always succeed to send the whole buffer in a single write call. - my $n = $socket->syswrite($req_buf, length($req_buf)); - unless (defined $n) { - redo WRITE if $!{EINTR}; - if ($!{EWOULDBLOCK} || $!{EAGAIN}) { - select(undef, undef, undef, 0.1); - redo WRITE; - } - die "write failed: $!"; - } - if ($n) { - substr($req_buf, 0, $n, ""); - } - else { - select(undef, undef, undef, 0.5); - } - redo WRITE if length $req_buf; - } - } - - my($code, $mess, @junk); - my $drop_connection; - - if ($has_content) { - my $eof; - my $wbuf; - my $woffset = 0; - INITIAL_READ: - if ($write_wait) { - # skip filling $wbuf when waiting for 100-continue - # because if the response is a redirect or auth required - # the request will be cloned and there is no way - # to reset the input stream - # return here via the label after the 100-continue is read - } - elsif (ref($content_ref) eq 'CODE') { - my $buf = &$content_ref(); - $buf = "" unless defined($buf); - $buf = sprintf "%x%s%s%s", length($buf), $CRLF, $buf, $CRLF - if $chunked; - substr($buf, 0, 0) = $req_buf if $req_buf; - $wbuf = \$buf; - } - else { - if ($req_buf) { - my $buf = $req_buf . $$content_ref; - $wbuf = \$buf; - } - else { - $wbuf = $content_ref; - } - $eof = 1; - } - - my $fbits = ''; - vec($fbits, fileno($socket), 1) = 1; - - WRITE: - while ($write_wait || $woffset < length($$wbuf)) { - - my $sel_timeout = $timeout; - if ($write_wait) { - $sel_timeout = $write_wait if $write_wait < $sel_timeout; - } - my $time_before; - $time_before = time if $sel_timeout; - - my $rbits = $fbits; - my $wbits = $write_wait ? undef : $fbits; - my $sel_timeout_before = $sel_timeout; - SELECT: - { - my $nfound = select($rbits, $wbits, undef, $sel_timeout); - if ($nfound < 0) { - if ($!{EINTR} || $!{EWOULDBLOCK} || $!{EAGAIN}) { - if ($time_before) { - $sel_timeout = $sel_timeout_before - (time - $time_before); - $sel_timeout = 0 if $sel_timeout < 0; - } - redo SELECT; - } - die "select failed: $!"; - } - } - - if ($write_wait) { - $write_wait -= time - $time_before; - $write_wait = 0 if $write_wait < 0; - } - - if (defined($rbits) && $rbits =~ /[^\0]/) { - # readable - my $buf = $socket->_rbuf; - my $n = $socket->sysread($buf, 1024, length($buf)); - unless (defined $n) { - die "read failed: $!" unless $!{EINTR} || $!{EWOULDBLOCK} || $!{EAGAIN}; - # if we get here the rest of the block will do nothing - # and we will retry the read on the next round - } - elsif ($n == 0) { - # the server closed the connection before we finished - # writing all the request content. No need to write any more. - $drop_connection++; - last WRITE; - } - $socket->_rbuf($buf); - if (!$code && $buf =~ /\015?\012\015?\012/) { - # a whole response header is present, so we can read it without blocking - ($code, $mess, @h) = $socket->read_response_headers(laxed => 1, - junk_out => \@junk, - ); - if ($code eq "100") { - $write_wait = 0; - undef($code); - goto INITIAL_READ; - } - else { - $drop_connection++; - last WRITE; - # XXX should perhaps try to abort write in a nice way too - } - } - } - if (defined($wbits) && $wbits =~ /[^\0]/) { - my $n = $socket->syswrite($$wbuf, length($$wbuf), $woffset); - unless (defined $n) { - die "write failed: $!" unless $!{EINTR} || $!{EWOULDBLOCK} || $!{EAGAIN}; - $n = 0; # will retry write on the next round - } - elsif ($n == 0) { - die "write failed: no bytes written"; - } - $woffset += $n; - - if (!$eof && $woffset >= length($$wbuf)) { - # need to refill buffer from $content_ref code - my $buf = &$content_ref(); - $buf = "" unless defined($buf); - $eof++ unless length($buf); - $buf = sprintf "%x%s%s%s", length($buf), $CRLF, $buf, $CRLF - if $chunked; - $wbuf = \$buf; - $woffset = 0; - } - } - } # WRITE - } - - ($code, $mess, @h) = $socket->read_response_headers(laxed => 1, junk_out => \@junk) - unless $code; - ($code, $mess, @h) = $socket->read_response_headers(laxed => 1, junk_out => \@junk) - if $code eq "100"; - - my $response = HTTP::Response->new($code, $mess); - my $peer_http_version = $socket->peer_http_version; - $response->protocol("HTTP/$peer_http_version"); - { - local $HTTP::Headers::TRANSLATE_UNDERSCORE; - $response->push_header(@h); - } - $response->push_header("Client-Junk" => \@junk) if @junk; - - $response->request($request); - $self->_get_sock_info($response, $socket); - - if ($method eq "CONNECT") { - $response->{client_socket} = $socket; # so it can be picked up - return $response; - } - - if (my @te = $response->remove_header('Transfer-Encoding')) { - $response->push_header('Client-Transfer-Encoding', \@te); - } - $response->push_header('Client-Response-Num', scalar $socket->increment_response_count); - - my $complete; - $response = $self->collect($arg, $response, sub { - my $buf = ""; #prevent use of uninitialized value in SSLeay.xs - my $n; - READ: - { - $n = $socket->read_entity_body($buf, $size); - unless (defined $n) { - redo READ if $!{EINTR} || $!{EWOULDBLOCK} || $!{EAGAIN} || $!{ENOTTY}; - die "read failed: $!"; - } - redo READ if $n == -1; - } - $complete++ if !$n; - return \$buf; - } ); - $drop_connection++ unless $complete; - - @h = $socket->get_trailers; - if (@h) { - local $HTTP::Headers::TRANSLATE_UNDERSCORE; - $response->push_header(@h); - } - - # keep-alive support - unless ($drop_connection) { - if ($cache_key) { - my %connection = map { (lc($_) => 1) } - split(/\s*,\s*/, ($response->header("Connection") || "")); - if (($peer_http_version eq "1.1" && !$connection{close}) || - $connection{"keep-alive"}) - { - $conn_cache->deposit($self->socket_type, $cache_key, $socket); - } - } - } - - $response; -} - - -#----------------------------------------------------------- -package LWP::Protocol::http::SocketMethods; -$LWP::Protocol::http::SocketMethods::VERSION = '6.26'; -sub ping { - my $self = shift; - !$self->can_read(0); -} - -sub increment_response_count { - my $self = shift; - return ++${*$self}{'myhttp_response_count'}; -} - -#----------------------------------------------------------- -package LWP::Protocol::http::Socket; -$LWP::Protocol::http::Socket::VERSION = '6.26'; -use base qw(LWP::Protocol::http::SocketMethods Net::HTTP); - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/loopback.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/loopback.pm deleted file mode 100644 index bdf6fbaa..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/loopback.pm +++ /dev/null @@ -1,24 +0,0 @@ -package LWP::Protocol::loopback; -$LWP::Protocol::loopback::VERSION = '6.26'; -use strict; -require HTTP::Response; - -use base qw(LWP::Protocol); - -sub request { - my($self, $request, $proxy, $arg, $size, $timeout) = @_; - - my $response = HTTP::Response->new(200, "OK"); - $response->content_type("message/http; msgtype=request"); - - $response->header("Via", "loopback/1.0 $proxy") - if $proxy; - - $response->header("X-Arg", $arg); - $response->header("X-Read-Size", $size); - $response->header("X-Timeout", $timeout); - - return $self->collect_once($arg, $response, $request->as_string); -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/mailto.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/mailto.pm deleted file mode 100644 index a5d63114..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/mailto.pm +++ /dev/null @@ -1,182 +0,0 @@ -package LWP::Protocol::mailto; -$LWP::Protocol::mailto::VERSION = '6.26'; -# This module implements the mailto protocol. It is just a simple -# frontend to the Unix sendmail program except on MacOS, where it uses -# Mail::Internet. - -require HTTP::Request; -require HTTP::Response; -require HTTP::Status; - -use Carp; -use strict; - -use base qw(LWP::Protocol); -our $SENDMAIL; - -unless ($SENDMAIL = $ENV{SENDMAIL}) { - for my $sm (qw(/usr/sbin/sendmail - /usr/lib/sendmail - /usr/ucblib/sendmail - )) - { - if (-x $sm) { - $SENDMAIL = $sm; - last; - } - } - die "Can't find the 'sendmail' program" unless $SENDMAIL; -} - -sub request -{ - my($self, $request, $proxy, $arg, $size) = @_; - - my ($mail, $addr) if $^O eq "MacOS"; - my @text = () if $^O eq "MacOS"; - - # check proxy - if (defined $proxy) - { - return HTTP::Response->new(HTTP::Status::RC_BAD_REQUEST, - 'You can not proxy with mail'); - } - - # check method - my $method = $request->method; - - if ($method ne 'POST') { - return HTTP::Response->new( HTTP::Status::RC_BAD_REQUEST, - 'Library does not allow method ' . - "$method for 'mailto:' URLs"); - } - - # check url - my $url = $request->uri; - - my $scheme = $url->scheme; - if ($scheme ne 'mailto') { - return HTTP::Response->new( HTTP::Status::RC_INTERNAL_SERVER_ERROR, - "LWP::Protocol::mailto::request called for '$scheme'"); - } - if ($^O eq "MacOS") { - eval { - require Mail::Internet; - }; - if($@) { - return HTTP::Response->new( HTTP::Status::RC_INTERNAL_SERVER_ERROR, - "You don't have MailTools installed"); - } - unless ($ENV{SMTPHOSTS}) { - return HTTP::Response->new( HTTP::Status::RC_INTERNAL_SERVER_ERROR, - "You don't have SMTPHOSTS defined"); - } - } - else { - unless (-x $SENDMAIL) { - return HTTP::Response->new( HTTP::Status::RC_INTERNAL_SERVER_ERROR, - "You don't have $SENDMAIL"); - } - } - if ($^O eq "MacOS") { - $mail = Mail::Internet->new or - return HTTP::Response->new( HTTP::Status::RC_INTERNAL_SERVER_ERROR, - "Can't get a Mail::Internet object"); - } - else { - open(SENDMAIL, "| $SENDMAIL -oi -t") or - return HTTP::Response->new( HTTP::Status::RC_INTERNAL_SERVER_ERROR, - "Can't run $SENDMAIL: $!"); - } - if ($^O eq "MacOS") { - $addr = $url->encoded822addr; - } - else { - $request = $request->clone; # we modify a copy - my @h = $url->headers; # URL headers override those in the request - while (@h) { - my $k = shift @h; - my $v = shift @h; - next unless defined $v; - if (lc($k) eq "body") { - $request->content($v); - } - else { - $request->push_header($k => $v); - } - } - } - if ($^O eq "MacOS") { - $mail->add(To => $addr); - $mail->add(split(/[:\n]/,$request->headers_as_string)); - } - else { - print SENDMAIL $request->headers_as_string; - print SENDMAIL "\n"; - } - my $content = $request->content; - if (defined $content) { - my $contRef = ref($content) ? $content : \$content; - if (ref($contRef) eq 'SCALAR') { - if ($^O eq "MacOS") { - @text = split("\n",$$contRef); - foreach (@text) { - $_ .= "\n"; - } - } - else { - print SENDMAIL $$contRef; - } - - } - elsif (ref($contRef) eq 'CODE') { - # Callback provides data - my $d; - if ($^O eq "MacOS") { - my $stuff = ""; - while (length($d = &$contRef)) { - $stuff .= $d; - } - @text = split("\n",$stuff); - foreach (@text) { - $_ .= "\n"; - } - } - else { - print SENDMAIL $d; - } - } - } - if ($^O eq "MacOS") { - $mail->body(\@text); - unless ($mail->smtpsend) { - return HTTP::Response->new(HTTP::Status::RC_INTERNAL_SERVER_ERROR, - "Mail::Internet->smtpsend unable to send message to <$addr>"); - } - } - else { - unless (close(SENDMAIL)) { - my $err = $! ? "$!" : "Exit status $?"; - return HTTP::Response->new(HTTP::Status::RC_INTERNAL_SERVER_ERROR, - "$SENDMAIL: $err"); - } - } - - - my $response = HTTP::Response->new(HTTP::Status::RC_ACCEPTED, - "Mail accepted"); - $response->header('Content-Type', 'text/plain'); - if ($^O eq "MacOS") { - $response->header('Server' => "Mail::Internet $Mail::Internet::VERSION"); - $response->content("Message sent to <$addr>\n"); - } - else { - $response->header('Server' => $SENDMAIL); - my $to = $request->header("To"); - $response->content("Message sent to <$to>\n"); - } - - return $response; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/nntp.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/nntp.pm deleted file mode 100644 index e607b96d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/nntp.pm +++ /dev/null @@ -1,148 +0,0 @@ -package LWP::Protocol::nntp; -$LWP::Protocol::nntp::VERSION = '6.26'; -# Implementation of the Network News Transfer Protocol (RFC 977) - -use base qw(LWP::Protocol); - -require HTTP::Response; -require HTTP::Status; -require Net::NNTP; - -use strict; - - -sub request { - my ($self, $request, $proxy, $arg, $size, $timeout) = @_; - - $size = 4096 unless $size; - - # Check for proxy - if (defined $proxy) { - return HTTP::Response->new(HTTP::Status::RC_BAD_REQUEST, - 'You can not proxy through NNTP'); - } - - # Check that the scheme is as expected - my $url = $request->uri; - my $scheme = $url->scheme; - unless ($scheme eq 'news' || $scheme eq 'nntp') { - return HTTP::Response->new(HTTP::Status::RC_INTERNAL_SERVER_ERROR, - "LWP::Protocol::nntp::request called for '$scheme'"); - } - - # check for a valid method - my $method = $request->method; - unless ($method eq 'GET' || $method eq 'HEAD' || $method eq 'POST') { - return HTTP::Response->new(HTTP::Status::RC_BAD_REQUEST, - 'Library does not allow method ' . "$method for '$scheme:' URLs"); - } - - # extract the identifier and check against posting to an article - my $groupart = $url->_group; - my $is_art = $groupart =~ /@/; - - if ($is_art && $method eq 'POST') { - return HTTP::Response->new(HTTP::Status::RC_BAD_REQUEST, - "Can't post to an article <$groupart>"); - } - - my $nntp = Net::NNTP->new( - $url->host, - - #Port => 18574, - Timeout => $timeout, - - #Debug => 1, - ); - die "Can't connect to nntp server" unless $nntp; - - # Check the initial welcome message from the NNTP server - if ($nntp->status != 2) { - return HTTP::Response->new(HTTP::Status::RC_SERVICE_UNAVAILABLE, - $nntp->message); - } - my $response = HTTP::Response->new(HTTP::Status::RC_OK, "OK"); - - my $mess = $nntp->message; - - # Try to extract server name from greeting message. - # Don't know if this works well for a large class of servers, but - # this works for our server. - $mess =~ s/\s+ready\b.*//; - $mess =~ s/^\S+\s+//; - $response->header(Server => $mess); - - # First we handle posting of articles - if ($method eq 'POST') { - $nntp->quit; - $nntp = undef; - $response->code(HTTP::Status::RC_NOT_IMPLEMENTED); - $response->message("POST not implemented yet"); - return $response; - } - - # The method must be "GET" or "HEAD" by now - if (!$is_art) { - if (!$nntp->group($groupart)) { - $response->code(HTTP::Status::RC_NOT_FOUND); - $response->message($nntp->message); - } - $nntp->quit; - $nntp = undef; - - # HEAD: just check if the group exists - if ($method eq 'GET' && $response->is_success) { - $response->code(HTTP::Status::RC_NOT_IMPLEMENTED); - $response->message("GET newsgroup not implemented yet"); - } - return $response; - } - - # Send command to server to retrieve an article (or just the headers) - my $get = $method eq 'HEAD' ? "head" : "article"; - my $art = $nntp->$get("<$groupart>"); - unless ($art) { - $nntp->quit; - $response->code(HTTP::Status::RC_NOT_FOUND); - $response->message($nntp->message); - $nntp = undef; - return $response; - } - - # Parse headers - my ($key, $val); - local $_; - while ($_ = shift @$art) { - if (/^\s+$/) { - last; # end of headers - } - elsif (/^(\S+):\s*(.*)/) { - $response->push_header($key, $val) if $key; - ($key, $val) = ($1, $2); - } - elsif (/^\s+(.*)/) { - next unless $key; - $val .= $1; - } - else { - unshift(@$art, $_); - last; - } - } - $response->push_header($key, $val) if $key; - - # Ensure that there is a Content-Type header - $response->header("Content-Type", "text/plain") - unless $response->header("Content-Type"); - - # Collect the body - $response = $self->collect_once($arg, $response, join("", @$art)) if @$art; - - # Say goodbye to the server - $nntp->quit; - $nntp = undef; - - $response; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/nogo.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/nogo.pm deleted file mode 100644 index 14f7800b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Protocol/nogo.pm +++ /dev/null @@ -1,23 +0,0 @@ -package LWP::Protocol::nogo; -# If you want to disable access to a particular scheme, use this -# class and then call -# LWP::Protocol::implementor(that_scheme, 'LWP::Protocol::nogo'); -# For then on, attempts to access URLs with that scheme will generate -# a 500 error. -$LWP::Protocol::nogo::VERSION = '6.26'; -use strict; - -require HTTP::Response; -require HTTP::Status; -use base qw(LWP::Protocol); - -sub request { - my($self, $request) = @_; - my $scheme = $request->uri->scheme; - - return HTTP::Response->new( - HTTP::Status::RC_INTERNAL_SERVER_ERROR, - "Access to \'$scheme\' URIs has been disabled" - ); -} -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/RobotUA.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/RobotUA.pm deleted file mode 100644 index 48f8982b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/RobotUA.pm +++ /dev/null @@ -1,312 +0,0 @@ -package LWP::RobotUA; - -use base qw(LWP::UserAgent); - -our $VERSION = '6.26'; - -require WWW::RobotRules; -require HTTP::Request; -require HTTP::Response; - -use Carp (); -use HTTP::Status (); -use HTTP::Date qw(time2str); -use strict; - - -# -# Additional attributes in addition to those found in LWP::UserAgent: -# -# $self->{'delay'} Required delay between request to the same -# server in minutes. -# -# $self->{'rules'} A WWW::RobotRules object -# - -sub new -{ - my $class = shift; - my %cnf; - if (@_ < 4) { - # legacy args - @cnf{qw(agent from rules)} = @_; - } - else { - %cnf = @_; - } - - Carp::croak('LWP::RobotUA agent required') unless $cnf{agent}; - Carp::croak('LWP::RobotUA from address required') - unless $cnf{from} && $cnf{from} =~ m/\@/; - - my $delay = delete $cnf{delay} || 1; - my $use_sleep = delete $cnf{use_sleep}; - $use_sleep = 1 unless defined($use_sleep); - my $rules = delete $cnf{rules}; - - my $self = LWP::UserAgent->new(%cnf); - $self = bless $self, $class; - - $self->{'delay'} = $delay; # minutes - $self->{'use_sleep'} = $use_sleep; - - if ($rules) { - $rules->agent($cnf{agent}); - $self->{'rules'} = $rules; - } - else { - $self->{'rules'} = WWW::RobotRules->new($cnf{agent}); - } - - $self; -} - - -sub delay { shift->_elem('delay', @_); } -sub use_sleep { shift->_elem('use_sleep', @_); } - - -sub agent -{ - my $self = shift; - my $old = $self->SUPER::agent(@_); - if (@_) { - # Changing our name means to start fresh - $self->{'rules'}->agent($self->{'agent'}); - } - $old; -} - - -sub rules { - my $self = shift; - my $old = $self->_elem('rules', @_); - $self->{'rules'}->agent($self->{'agent'}) if @_; - $old; -} - - -sub no_visits -{ - my($self, $netloc) = @_; - $self->{'rules'}->no_visits($netloc) || 0; -} - -*host_count = \&no_visits; # backwards compatibility with LWP-5.02 - - -sub host_wait -{ - my($self, $netloc) = @_; - return undef unless defined $netloc; - my $last = $self->{'rules'}->last_visit($netloc); - if ($last) { - my $wait = int($self->{'delay'} * 60 - (time - $last)); - $wait = 0 if $wait < 0; - return $wait; - } - return 0; -} - - -sub simple_request -{ - my($self, $request, $arg, $size) = @_; - - # Do we try to access a new server? - my $allowed = $self->{'rules'}->allowed($request->uri); - - if ($allowed < 0) { - # Host is not visited before, or robots.txt expired; fetch "robots.txt" - my $robot_url = $request->uri->clone; - $robot_url->path("robots.txt"); - $robot_url->query(undef); - - # make access to robot.txt legal since this will be a recursive call - $self->{'rules'}->parse($robot_url, ""); - - my $robot_req = HTTP::Request->new('GET', $robot_url); - my $parse_head = $self->parse_head(0); - my $robot_res = $self->request($robot_req); - $self->parse_head($parse_head); - my $fresh_until = $robot_res->fresh_until; - my $content = ""; - if ($robot_res->is_success && $robot_res->content_is_text) { - $content = $robot_res->decoded_content; - $content = "" unless $content && $content =~ /^\s*Disallow\s*:/mi; - } - $self->{'rules'}->parse($robot_url, $content, $fresh_until); - - # recalculate allowed... - $allowed = $self->{'rules'}->allowed($request->uri); - } - - # Check rules - unless ($allowed) { - my $res = HTTP::Response->new( - HTTP::Status::RC_FORBIDDEN, 'Forbidden by robots.txt'); - $res->request( $request ); # bind it to that request - return $res; - } - - my $netloc = eval { local $SIG{__DIE__}; $request->uri->host_port; }; - my $wait = $self->host_wait($netloc); - - if ($wait) { - if ($self->{'use_sleep'}) { - sleep($wait) - } - else { - my $res = HTTP::Response->new( - HTTP::Status::RC_SERVICE_UNAVAILABLE, 'Please, slow down'); - $res->header('Retry-After', time2str(time + $wait)); - $res->request( $request ); # bind it to that request - return $res; - } - } - - # Perform the request - my $res = $self->SUPER::simple_request($request, $arg, $size); - - $self->{'rules'}->visit($netloc); - - $res; -} - - -sub as_string -{ - my $self = shift; - my @s; - push(@s, "Robot: $self->{'agent'} operated by $self->{'from'} [$self]"); - push(@s, " Minimum delay: " . int($self->{'delay'}*60) . "s"); - push(@s, " Will sleep if too early") if $self->{'use_sleep'}; - push(@s, " Rules = $self->{'rules'}"); - join("\n", @s, ''); -} - -1; - - -__END__ - -=pod - -=head1 NAME - -LWP::RobotUA - a class for well-behaved Web robots - -=head1 SYNOPSIS - - use LWP::RobotUA; - my $ua = LWP::RobotUA->new('my-robot/0.1', 'me@foo.com'); - $ua->delay(10); # be very nice -- max one hit every ten minutes! - ... - - # Then just use it just like a normal LWP::UserAgent: - my $response = $ua->get('http://whatever.int/...'); - ... - -=head1 DESCRIPTION - -This class implements a user agent that is suitable for robot -applications. Robots should be nice to the servers they visit. They -should consult the F file to ensure that they are welcomed -and they should not make requests too frequently. - -But before you consider writing a robot, take a look at -L. - -When you use an I object as your user agent, then you do not -really have to think about these things yourself; C files -are automatically consulted and obeyed, the server isn't queried -too rapidly, and so on. Just send requests -as you do when you are using a normal I -object (using C<< $ua->get(...) >>, C<< $ua->head(...) >>, -C<< $ua->request(...) >>, etc.), and this -special agent will make sure you are nice. - -=head1 METHODS - -The LWP::RobotUA is a sub-class of L and implements the -same methods. In addition the following methods are provided: - -=head2 new - - my $ua = LWP::RobotUA->new( %options ) - my $ua = LWP::RobotUA->new( $agent, $from ) - my $ua = LWP::RobotUA->new( $agent, $from, $rules ) - -The LWP::UserAgent options C and C are mandatory. The -options C, C and C initialize attributes -private to the RobotUA. If C are not provided, then -C is instantiated providing an internal database of -F. - -It is also possible to just pass the value of C, C and -optionally C as plain positional arguments. - -=head2 delay - - my $delay = $ua->delay; - $ua->delay( $minutes ); - -Get/set the minimum delay between requests to the same server, in -I. The default is C<1> minute. Note that this number doesn't -have to be an integer; for example, this sets the delay to C<10> seconds: - - $ua->delay(10/60); - -=head2 use_sleep - - my $bool = $ua->use_sleep; - $ua->use_sleep( $boolean ); - -Get/set a value indicating whether the UA should L if -requests arrive too fast, defined as C<< $ua->delay >> minutes not passed since -last request to the given server. The default is true. If this value is -false then an internal C response will be generated. -It will have a C header that indicates when it is OK to -send another request to this server. - -=head2 rules - - my $rules = $ua->rules; - $ua->rules( $rules ); - -Set/get which I object to use. - -=head2 no_visits - - my $num = $ua->no_visits( $netloc ) - -Returns the number of documents fetched from this server host. Yeah I -know, this method should probably have been named C or -something like that. :-( - -=head2 host_wait - - my $num = $ua->host_wait( $netloc ) - -Returns the number of I (from now) you must wait before you can -make a new request to this host. - -=head2 as_string - - my $string = $ua->as_string; - -Returns a string that describes the state of the UA. -Mainly useful for debugging. - -=head1 SEE ALSO - -L, L - -=head1 COPYRIGHT - -Copyright 1996-2004 Gisle Aas. - -This library is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Simple.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Simple.pm deleted file mode 100644 index 025041e1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/Simple.pm +++ /dev/null @@ -1,267 +0,0 @@ -package LWP::Simple; - -use strict; - -our $VERSION = '6.26'; - -require Exporter; - -our @EXPORT = qw(get head getprint getstore mirror); -our @EXPORT_OK = qw($ua); - -# I really hate this. It was a bad idea to do it in the first place. -# Wonder how to get rid of it??? (It even makes LWP::Simple 7% slower -# for trivial tests) -use HTTP::Status; -push(@EXPORT, @HTTP::Status::EXPORT); - -sub import -{ - my $pkg = shift; - my $callpkg = caller; - Exporter::export($pkg, $callpkg, @_); -} - -use LWP::UserAgent (); -use HTTP::Date (); - -our $ua = LWP::UserAgent->new; # we create a global UserAgent object -$ua->agent("LWP::Simple/$VERSION "); -$ua->env_proxy; - -sub get ($) -{ - my $response = $ua->get(shift); - return $response->decoded_content if $response->is_success; - return undef; -} - - -sub head ($) -{ - my($url) = @_; - my $request = HTTP::Request->new(HEAD => $url); - my $response = $ua->request($request); - - if ($response->is_success) { - return $response unless wantarray; - return (scalar $response->header('Content-Type'), - scalar $response->header('Content-Length'), - HTTP::Date::str2time($response->header('Last-Modified')), - HTTP::Date::str2time($response->header('Expires')), - scalar $response->header('Server'), - ); - } - return; -} - - -sub getprint ($) -{ - my($url) = @_; - my $request = HTTP::Request->new(GET => $url); - local($\) = ""; # ensure standard $OUTPUT_RECORD_SEPARATOR - my $callback = sub { print $_[0] }; - if ($^O eq "MacOS") { - $callback = sub { $_[0] =~ s/\015?\012/\n/g; print $_[0] } - } - my $response = $ua->request($request, $callback); - unless ($response->is_success) { - print STDERR $response->status_line, " \n"; - } - $response->code; -} - - -sub getstore ($$) -{ - my($url, $file) = @_; - my $request = HTTP::Request->new(GET => $url); - my $response = $ua->request($request, $file); - - $response->code; -} - - -sub mirror ($$) -{ - my($url, $file) = @_; - my $response = $ua->mirror($url, $file); - $response->code; -} - - -1; - -__END__ - -=pod - -=head1 NAME - -LWP::Simple - simple procedural interface to LWP - -=head1 SYNOPSIS - - perl -MLWP::Simple -e 'getprint "http://www.sn.no"' - - use LWP::Simple; - $content = get("http://www.sn.no/"); - die "Couldn't get it!" unless defined $content; - - if (mirror("http://www.sn.no/", "foo") == RC_NOT_MODIFIED) { - ... - } - - if (is_success(getprint("http://www.sn.no/"))) { - ... - } - -=head1 DESCRIPTION - -This module is meant for people who want a simplified view of the -libwww-perl library. It should also be suitable for one-liners. If -you need more control or access to the header fields in the requests -sent and responses received, then you should use the full object-oriented -interface provided by the L module. - -The module will also export the L object as C<$ua> if you -ask for it explicitly. - -The user agent created by this module will identify itself as -C -and will initialize its proxy defaults from the environment (by -calling C<< $ua->env_proxy >>). - -=head1 FUNCTIONS - -The following functions are provided (and exported) by this module: - -=head2 get - - my $res = get($url); - -The get() function will fetch the document identified by the given URL -and return it. It returns C if it fails. The C<$url> argument can -be either a string or a reference to a L object. - -You will not be able to examine the response code or response headers -(like C) when you are accessing the web using this -function. If you need that information you should use the full OO -interface (see L). - -=head2 head - - my $res = head($url); - -Get document headers. Returns the following 5 values if successful: -($content_type, $document_length, $modified_time, $expires, $server) - -Returns an empty list if it fails. In scalar context returns TRUE if -successful. - -=head2 getprint - - my $code = getprint($url); - -Get and print a document identified by a URL. The document is printed -to the selected default filehandle for output (normally STDOUT) as -data is received from the network. If the request fails, then the -status code and message are printed on STDERR. The return value is -the HTTP response code. - -=head2 getstore - - my $code = getstore($url, $file) - -Gets a document identified by a URL and stores it in the file. The -return value is the HTTP response code. - -=head2 mirror - - my $code = mirror($url, $file); - -Get and store a document identified by a URL, using -I, and checking the I. Returns -the HTTP response code. - -=head1 STATUS CONSTANTS - -This module also exports the L constants and procedures. -You can use them when you check the response code from L, -L or L. The constants are: - - RC_CONTINUE - RC_SWITCHING_PROTOCOLS - RC_OK - RC_CREATED - RC_ACCEPTED - RC_NON_AUTHORITATIVE_INFORMATION - RC_NO_CONTENT - RC_RESET_CONTENT - RC_PARTIAL_CONTENT - RC_MULTIPLE_CHOICES - RC_MOVED_PERMANENTLY - RC_MOVED_TEMPORARILY - RC_SEE_OTHER - RC_NOT_MODIFIED - RC_USE_PROXY - RC_BAD_REQUEST - RC_UNAUTHORIZED - RC_PAYMENT_REQUIRED - RC_FORBIDDEN - RC_NOT_FOUND - RC_METHOD_NOT_ALLOWED - RC_NOT_ACCEPTABLE - RC_PROXY_AUTHENTICATION_REQUIRED - RC_REQUEST_TIMEOUT - RC_CONFLICT - RC_GONE - RC_LENGTH_REQUIRED - RC_PRECONDITION_FAILED - RC_REQUEST_ENTITY_TOO_LARGE - RC_REQUEST_URI_TOO_LARGE - RC_UNSUPPORTED_MEDIA_TYPE - RC_INTERNAL_SERVER_ERROR - RC_NOT_IMPLEMENTED - RC_BAD_GATEWAY - RC_SERVICE_UNAVAILABLE - RC_GATEWAY_TIMEOUT - RC_HTTP_VERSION_NOT_SUPPORTED - -=head1 CLASSIFICATION FUNCTIONS - -The L classification functions are: - -=head2 is_success - - my $bool = is_success($rc); - -True if response code indicated a successful request. - -=head2 is_error - - my $bool = is_error($rc) - -True if response code indicated that an error occurred. - -=head1 CAVEAT - -Note that if you are using both LWP::Simple and the very popular L -module, you may be importing a C function from each module, -producing a warning like C. -Get around this problem by just not importing LWP::Simple's -C function, like so: - - use LWP::Simple qw(!head); - use CGI qw(:standard); # then only CGI.pm defines a head() - -Then if you do need LWP::Simple's C function, you can just call -it as C. - -=head1 SEE ALSO - -L, L, L, L, L, -L - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/UserAgent.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/UserAgent.pm deleted file mode 100644 index a32de39a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/LWP/UserAgent.pm +++ /dev/null @@ -1,1989 +0,0 @@ -package LWP::UserAgent; - -use strict; - -use base qw(LWP::MemberMixin); - -use Carp (); -use HTTP::Request (); -use HTTP::Response (); -use HTTP::Date (); - -use LWP (); -use LWP::Protocol (); - -use Scalar::Util qw(blessed); -use Try::Tiny qw(try catch); - -our $VERSION = '6.26'; - -sub new -{ - # Check for common user mistake - Carp::croak("Options to LWP::UserAgent should be key/value pairs, not hash reference") - if ref($_[1]) eq 'HASH'; - - my($class, %cnf) = @_; - - my $agent = delete $cnf{agent}; - my $from = delete $cnf{from}; - my $def_headers = delete $cnf{default_headers}; - my $timeout = delete $cnf{timeout}; - $timeout = 3*60 unless defined $timeout; - my $local_address = delete $cnf{local_address}; - my $ssl_opts = delete $cnf{ssl_opts} || {}; - unless (exists $ssl_opts->{verify_hostname}) { - # The processing of HTTPS_CA_* below is for compatibility with Crypt::SSLeay - if (exists $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}) { - $ssl_opts->{verify_hostname} = $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}; - } - elsif ($ENV{HTTPS_CA_FILE} || $ENV{HTTPS_CA_DIR}) { - # Crypt-SSLeay compatibility (verify peer certificate; but not the hostname) - $ssl_opts->{verify_hostname} = 0; - $ssl_opts->{SSL_verify_mode} = 1; - } - else { - $ssl_opts->{verify_hostname} = 1; - } - } - unless (exists $ssl_opts->{SSL_ca_file}) { - if (my $ca_file = $ENV{PERL_LWP_SSL_CA_FILE} || $ENV{HTTPS_CA_FILE}) { - $ssl_opts->{SSL_ca_file} = $ca_file; - } - } - unless (exists $ssl_opts->{SSL_ca_path}) { - if (my $ca_path = $ENV{PERL_LWP_SSL_CA_PATH} || $ENV{HTTPS_CA_DIR}) { - $ssl_opts->{SSL_ca_path} = $ca_path; - } - } - my $use_eval = delete $cnf{use_eval}; - $use_eval = 1 unless defined $use_eval; - my $parse_head = delete $cnf{parse_head}; - $parse_head = 1 unless defined $parse_head; - my $show_progress = delete $cnf{show_progress}; - my $max_size = delete $cnf{max_size}; - my $max_redirect = delete $cnf{max_redirect}; - $max_redirect = 7 unless defined $max_redirect; - my $env_proxy = exists $cnf{env_proxy} ? delete $cnf{env_proxy} : $ENV{PERL_LWP_ENV_PROXY}; - my $no_proxy = exists $cnf{no_proxy} ? delete $cnf{no_proxy} : []; - Carp::croak(qq{no_proxy must be an arrayref, not $no_proxy!}) if ref $no_proxy ne 'ARRAY'; - - my $cookie_jar = delete $cnf{cookie_jar}; - my $conn_cache = delete $cnf{conn_cache}; - my $keep_alive = delete $cnf{keep_alive}; - - Carp::croak("Can't mix conn_cache and keep_alive") - if $conn_cache && $keep_alive; - - my $protocols_allowed = delete $cnf{protocols_allowed}; - my $protocols_forbidden = delete $cnf{protocols_forbidden}; - - my $requests_redirectable = delete $cnf{requests_redirectable}; - $requests_redirectable = ['GET', 'HEAD'] - unless defined $requests_redirectable; - - # Actually ""s are just as good as 0's, but for concision we'll just say: - Carp::croak("protocols_allowed has to be an arrayref or 0, not \"$protocols_allowed\"!") - if $protocols_allowed and ref($protocols_allowed) ne 'ARRAY'; - Carp::croak("protocols_forbidden has to be an arrayref or 0, not \"$protocols_forbidden\"!") - if $protocols_forbidden and ref($protocols_forbidden) ne 'ARRAY'; - Carp::croak("requests_redirectable has to be an arrayref or 0, not \"$requests_redirectable\"!") - if $requests_redirectable and ref($requests_redirectable) ne 'ARRAY'; - - if (%cnf && $^W) { - Carp::carp("Unrecognized LWP::UserAgent options: @{[sort keys %cnf]}"); - } - - my $self = bless { - def_headers => $def_headers, - timeout => $timeout, - local_address => $local_address, - ssl_opts => $ssl_opts, - use_eval => $use_eval, - show_progress => $show_progress, - max_size => $max_size, - max_redirect => $max_redirect, - # We set proxy later as we do validation on the values - proxy => {}, - no_proxy => [ @{ $no_proxy } ], - protocols_allowed => $protocols_allowed, - protocols_forbidden => $protocols_forbidden, - requests_redirectable => $requests_redirectable, - }, $class; - - $self->agent(defined($agent) ? $agent : $class->_agent) - if defined($agent) || !$def_headers || !$def_headers->header("User-Agent"); - $self->from($from) if $from; - $self->cookie_jar($cookie_jar) if $cookie_jar; - $self->parse_head($parse_head); - $self->env_proxy if $env_proxy; - - if (exists $cnf{proxy}) { - Carp::croak(qq{proxy must be an arrayref, not $cnf{proxy}!}) - if ref $cnf{proxy} ne 'ARRAY'; - $self->proxy($cnf{proxy}); - } - - $self->protocols_allowed( $protocols_allowed ) if $protocols_allowed; - $self->protocols_forbidden($protocols_forbidden) if $protocols_forbidden; - - if ($keep_alive) { - $conn_cache ||= { total_capacity => $keep_alive }; - } - $self->conn_cache($conn_cache) if $conn_cache; - - return $self; -} - - -sub send_request -{ - my($self, $request, $arg, $size) = @_; - my($method, $url) = ($request->method, $request->uri); - my $scheme = $url->scheme; - - local($SIG{__DIE__}); # protect against user defined die handlers - - $self->progress("begin", $request); - - my $response = $self->run_handlers("request_send", $request); - - unless ($response) { - my $protocol; - - { - # Honor object-specific restrictions by forcing protocol objects - # into class LWP::Protocol::nogo. - my $x; - if($x = $self->protocols_allowed) { - if (grep lc($_) eq $scheme, @$x) { - } - else { - require LWP::Protocol::nogo; - $protocol = LWP::Protocol::nogo->new; - } - } - elsif ($x = $self->protocols_forbidden) { - if(grep lc($_) eq $scheme, @$x) { - require LWP::Protocol::nogo; - $protocol = LWP::Protocol::nogo->new; - } - } - # else fall thru and create the protocol object normally - } - - # Locate protocol to use - my $proxy = $request->{proxy}; - if ($proxy) { - $scheme = $proxy->scheme; - } - - unless ($protocol) { - try { - $protocol = LWP::Protocol::create($scheme, $self); - } - catch { - my $error = $_; - $error =~ s/ at .* line \d+.*//s; # remove file/line number - $response = _new_response($request, HTTP::Status::RC_NOT_IMPLEMENTED, $error); - if ($scheme eq "https") { - $response->message($response->message . " (LWP::Protocol::https not installed)"); - $response->content_type("text/plain"); - $response->content(<{use_eval}) { - # we eval, and turn dies into responses below - try { - $response = $protocol->request($request, $proxy, $arg, $size, $self->{timeout}) || die "No response returned by $protocol"; - } - catch { - my $error = $_; - if (blessed($error) && $error->isa("HTTP::Response")) { - $response = $error; - $response->request($request); - } - else { - my $full = $error; - (my $status = $error) =~ s/\n.*//s; - $status =~ s/ at .* line \d+.*//s; # remove file/line number - my $code = ($status =~ s/^(\d\d\d)\s+//) ? $1 : HTTP::Status::RC_INTERNAL_SERVER_ERROR; - $response = _new_response($request, $code, $status, $full); - } - }; - } - elsif (!$response) { - $response = $protocol->request($request, $proxy, - $arg, $size, $self->{timeout}); - # XXX: Should we die unless $response->is_success ??? - } - } - - $response->request($request); # record request for reference - $response->header("Client-Date" => HTTP::Date::time2str(time)); - - $self->run_handlers("response_done", $response); - - $self->progress("end", $response); - return $response; -} - - -sub prepare_request -{ - my($self, $request) = @_; - die "Method missing" unless $request->method; - my $url = $request->uri; - die "URL missing" unless $url; - die "URL must be absolute" unless $url->scheme; - - $self->run_handlers("request_preprepare", $request); - - if (my $def_headers = $self->{def_headers}) { - for my $h ($def_headers->header_field_names) { - $request->init_header($h => [$def_headers->header($h)]); - } - } - - $self->run_handlers("request_prepare", $request); - - return $request; -} - - -sub simple_request -{ - my($self, $request, $arg, $size) = @_; - - # sanity check the request passed in - if (defined $request) { - if (ref $request) { - Carp::croak("You need a request object, not a " . ref($request) . " object") - if ref($request) eq 'ARRAY' or ref($request) eq 'HASH' or - !$request->can('method') or !$request->can('uri'); - } - else { - Carp::croak("You need a request object, not '$request'"); - } - } - else { - Carp::croak("No request object passed in"); - } - - my $error; - try { - $request = $self->prepare_request($request); - } - catch { - $error = $_; - $error =~ s/ at .* line \d+.*//s; # remove file/line number - }; - - if ($error) { - return _new_response($request, HTTP::Status::RC_BAD_REQUEST, $error); - } - return $self->send_request($request, $arg, $size); -} - - -sub request { - my ($self, $request, $arg, $size, $previous) = @_; - - my $response = $self->simple_request($request, $arg, $size); - $response->previous($previous) if $previous; - - if ($response->redirects >= $self->{max_redirect}) { - $response->header("Client-Warning" => - "Redirect loop detected (max_redirect = $self->{max_redirect})" - ); - return $response; - } - - if (my $req = $self->run_handlers("response_redirect", $response)) { - return $self->request($req, $arg, $size, $response); - } - - my $code = $response->code; - - if ( $code == HTTP::Status::RC_MOVED_PERMANENTLY - or $code == HTTP::Status::RC_FOUND - or $code == HTTP::Status::RC_SEE_OTHER - or $code == HTTP::Status::RC_TEMPORARY_REDIRECT) - { - my $referral = $request->clone; - - # These headers should never be forwarded - $referral->remove_header('Host', 'Cookie'); - - if ( $referral->header('Referer') - && $request->uri->scheme eq 'https' - && $referral->uri->scheme eq 'http') - { - # RFC 2616, section 15.1.3. - # https -> http redirect, suppressing Referer - $referral->remove_header('Referer'); - } - - if ( $code == HTTP::Status::RC_SEE_OTHER - || $code == HTTP::Status::RC_FOUND) - { - my $method = uc($referral->method); - unless ($method eq "GET" || $method eq "HEAD") { - $referral->method("GET"); - $referral->content(""); - $referral->remove_content_headers; - } - } - - # And then we update the URL based on the Location:-header. - my $referral_uri = $response->header('Location'); - { - # Some servers erroneously return a relative URL for redirects, - # so make it absolute if it not already is. - local $URI::ABS_ALLOW_RELATIVE_SCHEME = 1; - my $base = $response->base; - $referral_uri = "" unless defined $referral_uri; - $referral_uri - = $HTTP::URI_CLASS->new($referral_uri, $base)->abs($base); - } - $referral->uri($referral_uri); - - return $response unless $self->redirect_ok($referral, $response); - return $self->request($referral, $arg, $size, $response); - - } - elsif ($code == HTTP::Status::RC_UNAUTHORIZED - || $code == HTTP::Status::RC_PROXY_AUTHENTICATION_REQUIRED) - { - my $proxy = ($code == HTTP::Status::RC_PROXY_AUTHENTICATION_REQUIRED); - my $ch_header - = $proxy || $request->method eq 'CONNECT' - ? "Proxy-Authenticate" - : "WWW-Authenticate"; - my @challenges = $response->header($ch_header); - unless (@challenges) { - $response->header( - "Client-Warning" => "Missing Authenticate header"); - return $response; - } - - require HTTP::Headers::Util; - CHALLENGE: for my $challenge (@challenges) { - $challenge =~ tr/,/;/; # "," is used to separate auth-params!! - ($challenge) = HTTP::Headers::Util::split_header_words($challenge); - my $scheme = shift(@$challenge); - shift(@$challenge); # no value - $challenge = {@$challenge}; # make rest into a hash - - unless ($scheme =~ /^([a-z]+(?:-[a-z]+)*)$/) { - $response->header( - "Client-Warning" => "Bad authentication scheme '$scheme'"); - return $response; - } - $scheme = $1; # untainted now - my $class = "LWP::Authen::\u$scheme"; - $class =~ s/-/_/g; - - no strict 'refs'; - unless (%{"$class\::"}) { - # try to load it - my $error; - try { - (my $req = $class) =~ s{::}{/}g; - $req .= '.pm' unless $req =~ /\.pm$/; - require $req; - } - catch { - $error = $_; - }; - if ($error) { - if ($error =~ /^Can\'t locate/) { - $response->header("Client-Warning" => - "Unsupported authentication scheme '$scheme'"); - } - else { - $response->header("Client-Warning" => $error); - } - next CHALLENGE; - } - } - unless ($class->can("authenticate")) { - $response->header("Client-Warning" => - "Unsupported authentication scheme '$scheme'"); - next CHALLENGE; - } - return $class->authenticate($self, $proxy, $challenge, $response, - $request, $arg, $size); - } - return $response; - } - return $response; -} - -# -# Now the shortcuts... -# -sub get { - require HTTP::Request::Common; - my($self, @parameters) = @_; - my @suff = $self->_process_colonic_headers(\@parameters,1); - return $self->request( HTTP::Request::Common::GET( @parameters ), @suff ); -} - -sub _has_raw_content { - my $self = shift; - shift; # drop url - - # taken from HTTP::Request::Common::request_type_with_data - my $content; - $content = shift if @_ and ref $_[0]; - my($k, $v); - while (($k,$v) = splice(@_, 0, 2)) { - if (lc($k) eq 'content') { - $content = $v; - } - } - - # We were given Content => 'string' ... - if (defined $content && ! ref ($content)) { - return 1; - } - - return; -} - -sub _maybe_copy_default_content_type { - my ($self, $req, @parameters) = @_; - - # If we have a default Content-Type and someone passes in a POST/PUT - # with Content => 'some-string-value', use that Content-Type instead - # of x-www-form-urlencoded - my $ct = $self->default_header('Content-Type'); - return unless defined $ct && $self->_has_raw_content(@parameters); - - $req->header('Content-Type' => $ct); -} - -sub post { - require HTTP::Request::Common; - my($self, @parameters) = @_; - my @suff = $self->_process_colonic_headers(\@parameters, (ref($parameters[1]) ? 2 : 1)); - my $req = HTTP::Request::Common::POST(@parameters); - $self->_maybe_copy_default_content_type($req, @parameters); - return $self->request($req, @suff); -} - - -sub head { - require HTTP::Request::Common; - my($self, @parameters) = @_; - my @suff = $self->_process_colonic_headers(\@parameters,1); - return $self->request( HTTP::Request::Common::HEAD( @parameters ), @suff ); -} - - -sub put { - require HTTP::Request::Common; - my($self, @parameters) = @_; - my @suff = $self->_process_colonic_headers(\@parameters, (ref($parameters[1]) ? 2 : 1)); - my $req = HTTP::Request::Common::PUT(@parameters); - $self->_maybe_copy_default_content_type($req, @parameters); - return $self->request($req, @suff); -} - - -sub delete { - require HTTP::Request::Common; - my($self, @parameters) = @_; - my @suff = $self->_process_colonic_headers(\@parameters,1); - return $self->request( HTTP::Request::Common::DELETE( @parameters ), @suff ); -} - - -sub _process_colonic_headers { - # Process :content_cb / :content_file / :read_size_hint headers. - my($self, $args, $start_index) = @_; - - my($arg, $size); - for(my $i = $start_index; $i < @$args; $i += 2) { - next unless defined $args->[$i]; - - #printf "Considering %s => %s\n", $args->[$i], $args->[$i + 1]; - - if($args->[$i] eq ':content_cb') { - # Some sanity-checking... - $arg = $args->[$i + 1]; - Carp::croak("A :content_cb value can't be undef") unless defined $arg; - Carp::croak("A :content_cb value must be a coderef") - unless ref $arg and UNIVERSAL::isa($arg, 'CODE'); - - } - elsif ($args->[$i] eq ':content_file') { - $arg = $args->[$i + 1]; - - # Some sanity-checking... - Carp::croak("A :content_file value can't be undef") - unless defined $arg; - Carp::croak("A :content_file value can't be a reference") - if ref $arg; - Carp::croak("A :content_file value can't be \"\"") - unless length $arg; - - } - elsif ($args->[$i] eq ':read_size_hint') { - $size = $args->[$i + 1]; - # Bother checking it? - - } - else { - next; - } - splice @$args, $i, 2; - $i -= 2; - } - - # And return a suitable suffix-list for request(REQ,...) - - return unless defined $arg; - return $arg, $size if defined $size; - return $arg; -} - - -sub is_online { - my $self = shift; - return 1 if $self->get("http://www.msftncsi.com/ncsi.txt")->content eq "Microsoft NCSI"; - return 1 if $self->get("http://www.apple.com")->content =~ m,Apple,; - return 0; -} - - -my @ANI = qw(- \ | /); - -sub progress { - my($self, $status, $m) = @_; - return unless $self->{show_progress}; - - local($,, $\); - if ($status eq "begin") { - print STDERR "** ", $m->method, " ", $m->uri, " ==> "; - $self->{progress_start} = time; - $self->{progress_lastp} = ""; - $self->{progress_ani} = 0; - } - elsif ($status eq "end") { - delete $self->{progress_lastp}; - delete $self->{progress_ani}; - print STDERR $m->status_line; - my $t = time - delete $self->{progress_start}; - print STDERR " (${t}s)" if $t; - print STDERR "\n"; - } - elsif ($status eq "tick") { - print STDERR "$ANI[$self->{progress_ani}++]\b"; - $self->{progress_ani} %= @ANI; - } - else { - my $p = sprintf "%3.0f%%", $status * 100; - return if $p eq $self->{progress_lastp}; - print STDERR "$p\b\b\b\b"; - $self->{progress_lastp} = $p; - } - STDERR->flush; -} - - -# -# This whole allow/forbid thing is based on man 1 at's way of doing things. -# -sub is_protocol_supported -{ - my($self, $scheme) = @_; - if (ref $scheme) { - # assume we got a reference to an URI object - $scheme = $scheme->scheme; - } - else { - Carp::croak("Illegal scheme '$scheme' passed to is_protocol_supported") - if $scheme =~ /\W/; - $scheme = lc $scheme; - } - - my $x; - if(ref($self) and $x = $self->protocols_allowed) { - return 0 unless grep lc($_) eq $scheme, @$x; - } - elsif (ref($self) and $x = $self->protocols_forbidden) { - return 0 if grep lc($_) eq $scheme, @$x; - } - - local($SIG{__DIE__}); # protect against user defined die handlers - $x = LWP::Protocol::implementor($scheme); - return 1 if $x and $x ne 'LWP::Protocol::nogo'; - return 0; -} - - -sub protocols_allowed { shift->_elem('protocols_allowed' , @_) } -sub protocols_forbidden { shift->_elem('protocols_forbidden' , @_) } -sub requests_redirectable { shift->_elem('requests_redirectable', @_) } - - -sub redirect_ok -{ - # RFC 2616, section 10.3.2 and 10.3.3 say: - # If the 30[12] status code is received in response to a request other - # than GET or HEAD, the user agent MUST NOT automatically redirect the - # request unless it can be confirmed by the user, since this might - # change the conditions under which the request was issued. - - # Note that this routine used to be just: - # return 0 if $_[1]->method eq "POST"; return 1; - - my($self, $new_request, $response) = @_; - my $method = $response->request->method; - return 0 unless grep $_ eq $method, - @{ $self->requests_redirectable || [] }; - - if ($new_request->uri->scheme eq 'file') { - $response->header("Client-Warning" => - "Can't redirect to a file:// URL!"); - return 0; - } - - # Otherwise it's apparently okay... - return 1; -} - - -sub credentials -{ - my $self = shift; - my $netloc = lc(shift); - my $realm = shift || ""; - my $old = $self->{basic_authentication}{$netloc}{$realm}; - if (@_) { - $self->{basic_authentication}{$netloc}{$realm} = [@_]; - } - return unless $old; - return @$old if wantarray; - return join(":", @$old); -} - - -sub get_basic_credentials -{ - my($self, $realm, $uri, $proxy) = @_; - return if $proxy; - return $self->credentials($uri->host_port, $realm); -} - - -sub timeout { shift->_elem('timeout', @_); } -sub local_address{ shift->_elem('local_address',@_); } -sub max_size { shift->_elem('max_size', @_); } -sub max_redirect { shift->_elem('max_redirect', @_); } -sub show_progress{ shift->_elem('show_progress', @_); } - -sub ssl_opts { - my $self = shift; - if (@_ == 1) { - my $k = shift; - return $self->{ssl_opts}{$k}; - } - if (@_) { - my $old; - while (@_) { - my($k, $v) = splice(@_, 0, 2); - $old = $self->{ssl_opts}{$k} unless @_; - if (defined $v) { - $self->{ssl_opts}{$k} = $v; - } - else { - delete $self->{ssl_opts}{$k}; - } - } - %{$self->{ssl_opts}} = (%{$self->{ssl_opts}}, @_); - return $old; - } - - return keys %{$self->{ssl_opts}}; -} - -sub parse_head { - my $self = shift; - if (@_) { - my $flag = shift; - my $parser; - my $old = $self->set_my_handler("response_header", $flag ? sub { - my($response, $ua) = @_; - require HTML::HeadParser; - $parser = HTML::HeadParser->new; - $parser->xml_mode(1) if $response->content_is_xhtml; - $parser->utf8_mode(1) if $] >= 5.008 && $HTML::Parser::VERSION >= 3.40; - - push(@{$response->{handlers}{response_data}}, { - callback => sub { - return unless $parser; - unless ($parser->parse($_[3])) { - my $h = $parser->header; - my $r = $_[0]; - for my $f ($h->header_field_names) { - $r->init_header($f, [$h->header($f)]); - } - undef($parser); - } - }, - }); - - } : undef, - m_media_type => "html", - ); - return !!$old; - } - else { - return !!$self->get_my_handler("response_header"); - } -} - -sub cookie_jar { - my $self = shift; - my $old = $self->{cookie_jar}; - if (@_) { - my $jar = shift; - if (ref($jar) eq "HASH") { - require HTTP::Cookies; - $jar = HTTP::Cookies->new(%$jar); - } - $self->{cookie_jar} = $jar; - $self->set_my_handler("request_prepare", - $jar ? sub { $jar->add_cookie_header($_[0]); } : undef, - ); - $self->set_my_handler("response_done", - $jar ? sub { $jar->extract_cookies($_[0]); } : undef, - ); - } - $old; -} - -sub default_headers { - my $self = shift; - my $old = $self->{def_headers} ||= HTTP::Headers->new; - if (@_) { - Carp::croak("default_headers not set to HTTP::Headers compatible object") - unless @_ == 1 && $_[0]->can("header_field_names"); - $self->{def_headers} = shift; - } - return $old; -} - -sub default_header { - my $self = shift; - return $self->default_headers->header(@_); -} - -sub _agent { "libwww-perl/$VERSION" } - -sub agent { - my $self = shift; - if (@_) { - my $agent = shift; - if ($agent) { - $agent .= $self->_agent if $agent =~ /\s+$/; - } - else { - undef($agent) - } - return $self->default_header("User-Agent", $agent); - } - return $self->default_header("User-Agent"); -} - -sub from { # legacy - my $self = shift; - return $self->default_header("From", @_); -} - - -sub conn_cache { - my $self = shift; - my $old = $self->{conn_cache}; - if (@_) { - my $cache = shift; - if (ref($cache) eq "HASH") { - require LWP::ConnCache; - $cache = LWP::ConnCache->new(%$cache); - } - $self->{conn_cache} = $cache; - } - $old; -} - - -sub add_handler { - my($self, $phase, $cb, %spec) = @_; - $spec{line} ||= join(":", (caller)[1,2]); - my $conf = $self->{handlers}{$phase} ||= do { - require HTTP::Config; - HTTP::Config->new; - }; - $conf->add(%spec, callback => $cb); -} - -sub set_my_handler { - my($self, $phase, $cb, %spec) = @_; - $spec{owner} = (caller(1))[3] unless exists $spec{owner}; - $self->remove_handler($phase, %spec); - $spec{line} ||= join(":", (caller)[1,2]); - $self->add_handler($phase, $cb, %spec) if $cb; -} - -sub get_my_handler { - my $self = shift; - my $phase = shift; - my $init = pop if @_ % 2; - my %spec = @_; - my $conf = $self->{handlers}{$phase}; - unless ($conf) { - return unless $init; - require HTTP::Config; - $conf = $self->{handlers}{$phase} = HTTP::Config->new; - } - $spec{owner} = (caller(1))[3] unless exists $spec{owner}; - my @h = $conf->find(%spec); - if (!@h && $init) { - if (ref($init) eq "CODE") { - $init->(\%spec); - } - elsif (ref($init) eq "HASH") { - while (my($k, $v) = each %$init) { - $spec{$k} = $v; - } - } - $spec{callback} ||= sub {}; - $spec{line} ||= join(":", (caller)[1,2]); - $conf->add(\%spec); - return \%spec; - } - return wantarray ? @h : $h[0]; -} - -sub remove_handler { - my($self, $phase, %spec) = @_; - if ($phase) { - my $conf = $self->{handlers}{$phase} || return; - my @h = $conf->remove(%spec); - delete $self->{handlers}{$phase} if $conf->empty; - return @h; - } - - return unless $self->{handlers}; - return map $self->remove_handler($_), sort keys %{$self->{handlers}}; -} - -sub handlers { - my($self, $phase, $o) = @_; - my @h; - if ($o->{handlers} && $o->{handlers}{$phase}) { - push(@h, @{$o->{handlers}{$phase}}); - } - if (my $conf = $self->{handlers}{$phase}) { - push(@h, $conf->matching($o)); - } - return @h; -} - -sub run_handlers { - my($self, $phase, $o) = @_; - if (defined(wantarray)) { - for my $h ($self->handlers($phase, $o)) { - my $ret = $h->{callback}->($o, $self, $h); - return $ret if $ret; - } - return undef; - } - - for my $h ($self->handlers($phase, $o)) { - $h->{callback}->($o, $self, $h); - } -} - - -# deprecated -sub use_eval { shift->_elem('use_eval', @_); } -sub use_alarm -{ - Carp::carp("LWP::UserAgent->use_alarm(BOOL) is a no-op") - if @_ > 1 && $^W; - ""; -} - - -sub clone -{ - my $self = shift; - my $copy = bless { %$self }, ref $self; # copy most fields - - delete $copy->{handlers}; - delete $copy->{conn_cache}; - - # copy any plain arrays and hashes; known not to need recursive copy - for my $k (qw(proxy no_proxy requests_redirectable ssl_opts)) { - next unless $copy->{$k}; - if (ref($copy->{$k}) eq "ARRAY") { - $copy->{$k} = [ @{$copy->{$k}} ]; - } - elsif (ref($copy->{$k}) eq "HASH") { - $copy->{$k} = { %{$copy->{$k}} }; - } - } - - if ($self->{def_headers}) { - $copy->{def_headers} = $self->{def_headers}->clone; - } - - # re-enable standard handlers - $copy->parse_head($self->parse_head); - - # no easy way to clone the cookie jar; so let's just remove it for now - $copy->cookie_jar(undef); - - $copy; -} - - -sub mirror -{ - my($self, $url, $file) = @_; - - my $request = HTTP::Request->new('GET', $url); - - # If the file exists, add a cache-related header - if ( -e $file ) { - my ($mtime) = ( stat($file) )[9]; - if ($mtime) { - $request->header( 'If-Modified-Since' => HTTP::Date::time2str($mtime) ); - } - } - my $tmpfile = "$file-$$"; - - my $response = $self->request($request, $tmpfile); - if ( $response->header('X-Died') ) { - die $response->header('X-Died'); - } - - # Only fetching a fresh copy of the would be considered success. - # If the file was not modified, "304" would returned, which - # is considered by HTTP::Status to be a "redirect", /not/ "success" - if ( $response->is_success ) { - my @stat = stat($tmpfile) or die "Could not stat tmpfile '$tmpfile': $!"; - my $file_length = $stat[7]; - my ($content_length) = $response->header('Content-length'); - - if ( defined $content_length and $file_length < $content_length ) { - unlink($tmpfile); - die "Transfer truncated: " . "only $file_length out of $content_length bytes received\n"; - } - elsif ( defined $content_length and $file_length > $content_length ) { - unlink($tmpfile); - die "Content-length mismatch: " . "expected $content_length bytes, got $file_length\n"; - } - # The file was the expected length. - else { - # Replace the stale file with a fresh copy - if ( -e $file ) { - # Some DOSish systems fail to rename if the target exists - chmod 0777, $file; - unlink $file; - } - rename( $tmpfile, $file ) - or die "Cannot rename '$tmpfile' to '$file': $!\n"; - - # make sure the file has the same last modification time - if ( my $lm = $response->last_modified ) { - utime $lm, $lm, $file; - } - } - } - # The local copy is fresh enough, so just delete the temp file - else { - unlink($tmpfile); - } - return $response; -} - - -sub _need_proxy { - my($req, $ua) = @_; - return if exists $req->{proxy}; - my $proxy = $ua->{proxy}{$req->uri->scheme} || return; - if ($ua->{no_proxy}) { - if (my $host = eval { $req->uri->host }) { - for my $domain (@{$ua->{no_proxy}}) { - if ($host =~ /\Q$domain\E$/) { - return; - } - } - } - } - $req->{proxy} = $HTTP::URI_CLASS->new($proxy); -} - - -sub proxy { - my $self = shift; - my $key = shift; - if (!@_ && ref $key eq 'ARRAY') { - die 'odd number of items in proxy arrayref!' unless @{$key} % 2 == 0; - - # This map reads the elements of $key 2 at a time - return - map { $self->proxy($key->[2 * $_], $key->[2 * $_ + 1]) } - (0 .. @{$key} / 2 - 1); - } - return map { $self->proxy($_, @_) } @$key if ref $key; - - Carp::croak("'$key' is not a valid URI scheme") unless $key =~ /^$URI::scheme_re\z/; - my $old = $self->{'proxy'}{$key}; - if (@_) { - my $url = shift; - if (defined($url) && length($url)) { - Carp::croak("Proxy must be specified as absolute URI; '$url' is not") unless $url =~ /^$URI::scheme_re:/; - Carp::croak("Bad http proxy specification '$url'") if $url =~ /^https?:/ && $url !~ m,^https?://\w,; - } - $self->{proxy}{$key} = $url; - $self->set_my_handler("request_preprepare", \&_need_proxy) - } - return $old; -} - - -sub env_proxy { - my ($self) = @_; - require Encode; - require Encode::Locale; - my($k,$v); - while(($k, $v) = each %ENV) { - if ($ENV{REQUEST_METHOD}) { - # Need to be careful when called in the CGI environment, as - # the HTTP_PROXY variable is under control of that other guy. - next if $k =~ /^HTTP_/; - $k = "HTTP_PROXY" if $k eq "CGI_HTTP_PROXY"; - } - $k = lc($k); - next unless $k =~ /^(.*)_proxy$/; - $k = $1; - if ($k eq 'no') { - $self->no_proxy(split(/\s*,\s*/, $v)); - } - else { - # Ignore random _proxy variables, allow only valid schemes - next unless $k =~ /^$URI::scheme_re\z/; - # Ignore xxx_proxy variables if xxx isn't a supported protocol - next unless LWP::Protocol::implementor($k); - $self->proxy($k, Encode::decode(locale => $v)); - } - } -} - - -sub no_proxy { - my($self, @no) = @_; - if (@no) { - push(@{ $self->{'no_proxy'} }, @no); - } - else { - $self->{'no_proxy'} = []; - } -} - - -sub _new_response { - my($request, $code, $message, $content) = @_; - $message ||= HTTP::Status::status_message($code); - my $response = HTTP::Response->new($code, $message); - $response->request($request); - $response->header("Client-Date" => HTTP::Date::time2str(time)); - $response->header("Client-Warning" => "Internal response"); - $response->header("Content-Type" => "text/plain"); - $response->content($content || "$code $message\n"); - return $response; -} - - -1; - -__END__ - -=pod - -=head1 NAME - -LWP::UserAgent - Web user agent class - -=head1 SYNOPSIS - - use strict; - use warnings; - use LWP::UserAgent (); - - my $ua = LWP::UserAgent->new; - $ua->timeout(10); - $ua->env_proxy; - - my $response = $ua->get('http://search.cpan.org/'); - - if ($response->is_success) { - print $response->decoded_content; # or whatever - } - else { - die $response->status_line; - } - -=head1 DESCRIPTION - -The L is a class implementing a web user agent. -L objects can be used to dispatch web requests. - -In normal use the application creates an L object, and -then configures it with values for timeouts, proxies, name, etc. It -then creates an instance of L for the request that -needs to be performed. This request is then passed to one of the -request method the UserAgent, which dispatches it using the relevant -protocol, and returns a L object. There are -convenience methods for sending the most common request types: -L, L, L, -L and L. When using these -methods, the creation of the request object is hidden as shown in the -synopsis above. - -The basic approach of the library is to use HTTP-style communication -for all protocol schemes. This means that you will construct -L objects and receive L objects even -for non-HTTP resources like I and I. In order to achieve -even more similarity to HTTP-style communications, I menus and -file directories are converted to HTML documents. - -=head1 CONSTRUCTOR METHODS - -The following constructor methods are available: - -=head2 clone - - my $ua2 = $ua->clone; - -Returns a copy of the L object. - -B: Please be aware that the clone method does not copy or clone your -C attribute. Due to the limited restrictions on what can be used -for your cookie jar, there is no way to clone the attribute. The C -attribute will be C in the new object instance. - -=head2 new - - my $ua = LWP::UserAgent->new( %options ) - -This method constructs a new L object and returns it. -Key/value pair arguments may be provided to set up the initial state. -The following options correspond to attribute methods described below: - - KEY DEFAULT - ----------- -------------------- - agent "libwww-perl/#.###" - from undef - conn_cache undef - cookie_jar undef - default_headers HTTP::Headers->new - local_address undef - ssl_opts { verify_hostname => 1 } - max_size undef - max_redirect 7 - parse_head 1 - protocols_allowed undef - protocols_forbidden undef - requests_redirectable ['GET', 'HEAD'] - timeout 180 - proxy undef - no_proxy [] - -The following additional options are also accepted: If the C option -is passed in with a true value, then proxy settings are read from environment -variables (see L). If C isn't provided, the -C environment variable controls if -L is called during initialization. If the -C option is passed in, then a C is set up (see -L). The C value is passed on as the -C for the connection cache. - -C must be set as an arrayref of key/value pairs. C takes an -arrayref of domains. - -=head1 ATTRIBUTES - -The settings of the configuration attributes modify the behaviour of the -L when it dispatches requests. Most of these can also -be initialized by options passed to the constructor method. - -The following attribute methods are provided. The attribute value is -left unchanged if no argument is given. The return value from each -method is the old attribute value. - -=head2 agent - - my $agent = $ua->agent; - $ua->agent('Checkbot/0.4 '); # append the defaul to the end - $ua->agent('Mozilla/5.0'); - $ua->agent(""); # don't identify - -Get/set the product token that is used to identify the user agent on -the network. The agent value is sent as the C header in -the requests. - -The default is a string of the form C, where C<#.###> is -substituted with the version number of this library. - -If the provided string ends with space, the default C -string is appended to it. - -The user agent string should be one or more simple product identifiers -with an optional version number separated by the C character. - -=head2 conn_cache - - my $cache_obj = $ua->conn_cache; - $ua->conn_cache( $cache_obj ); - -Get/set the L object to use. See L -for details. - -=head2 cookie_jar - - my $jar = $ua->cookie_jar; - $ua->cookie_jar( $cookie_jar_obj ); - -Get/set the cookie jar object to use. The only requirement is that -the cookie jar object must implement the C and -C methods. These methods will then be -invoked by the user agent as requests are sent and responses are -received. Normally this will be a L object or some -subclass. - -The default is to have no cookie jar, i.e. never automatically add -C headers to the requests. - -Shortcut: If a reference to a plain hash is passed in, it is replaced with an -instance of L that is initialized based on the hash. This form -also automatically loads the L module. It means that: - - $ua->cookie_jar({ file => "$ENV{HOME}/.cookies.txt" }); - -is really just a shortcut for: - - require HTTP::Cookies; - $ua->cookie_jar(HTTP::Cookies->new(file => "$ENV{HOME}/.cookies.txt")); - -=head2 credentials - - my $creds = $ua->credentials(); - $ua->credentials( $netloc, $realm ); - $ua->credentials( $netloc, $realm, $uname, $pass ); - $ua->credentials("www.example.com:80", "Some Realm", "foo", "secret"); - -Get/set the user name and password to be used for a realm. - -The C<$netloc> is a string of the form C<< : >>. The username and -password will only be passed to this server. - -=head2 default_header - - $ua->default_header( $field ); - $ua->default_header( $field => $value ); - $ua->default_header('Accept-Encoding' => scalar HTTP::Message::decodable()); - $ua->default_header('Accept-Language' => "no, en"); - -This is just a shortcut for -C<< $ua->default_headers->header( $field => $value ) >>. - -=head2 default_headers - - my $headers = $ua->default_headers; - $ua->default_headers( $headers_obj ); - -Get/set the headers object that will provide default header values for -any requests sent. By default this will be an empty L -object. - -=head2 from - - my $from = $ua->from; - $ua->from('foo@bar.com'); - -Get/set the email address for the human user who controls -the requesting user agent. The address should be machine-usable, as -defined in L. The C value -is sent as the C header in the requests. - -The default is to not send a C header. See -L for the more general interface that allow -any header to be defaulted. - - -=head2 local_address - - my $address = $ua->local_address; - $ua->local_address( $address ); - -Get/set the local interface to bind to for network connections. The interface -can be specified as a hostname or an IP address. This value is passed as the -C argument to L. - -=head2 max_redirect - - my $max = $ua->max_redirect; - $ua->max_redirect( $n ); - -This reads or sets the object's limit of how many times it will obey -redirection responses in a given request cycle. - -By default, the value is C<7>. This means that if you call L -and the response is a redirect elsewhere which is in turn a -redirect, and so on seven times, then LWP gives up after that seventh -request. - -=head2 max_size - - my $size = $ua->max_size; - $ua->max_size( $bytes ); - -Get/set the size limit for response content. The default is C, -which means that there is no limit. If the returned response content -is only partial, because the size limit was exceeded, then a -C header will be added to the response. The content -might end up longer than C as we abort once appending a -chunk of data makes the length exceed the limit. The C -header, if present, will indicate the length of the full content and -will normally not be the same as C<< length($res->content) >>. - -=head2 parse_head - - my $bool = $ua->parse_head; - $ua->parse_head( $boolean ); - -Get/set a value indicating whether we should initialize response -headers from the Ehead> section of HTML documents. The default is -true. I unless you know what you are doing. - -=head2 protocols_allowed - - my $aref = $ua->protocols_allowed; # get allowed protocols - $ua->protocols_allowed( \@protocols ); # allow ONLY these - $ua->protocols_allowed(undef); # delete the list - $ua->protocols_allowed(['http',]); # ONLY allow http - -By default, an object has neither a C list, nor a -L list. - -This reads (or sets) this user agent's list of protocols that the -request methods will exclusively allow. The protocol names are case -insensitive. - -For example: C<< $ua->protocols_allowed( [ 'http', 'https'] ); >> -means that this user agent will I those protocols, -and attempts to use this user agent to access URLs with any other -schemes (like C) will result in a 500 error. - -Note that having a C list causes any -L list to be ignored. - -=head2 protocols_forbidden - - my $aref = $ua->protocols_forbidden; # get the forbidden list - $ua->protocols_forbidden(\@protocols); # do not allow these - $ua->protocols_forbidden(['http',]); # All http reqs get a 500 - $ua->protocols_forbidden(undef); # delete the list - -This reads (or sets) this user agent's list of protocols that the -request method will I allow. The protocol names are case -insensitive. - -For example: C<< $ua->protocols_forbidden( [ 'file', 'mailto'] ); >> -means that this user agent will I allow those protocols, and -attempts to use this user agent to access URLs with those schemes -will result in a 500 error. - -=head2 requests_redirectable - - my $aref = $ua->requests_redirectable; - $ua->requests_redirectable( \@requests ); - $ua->requests_redirectable(['GET', 'HEAD',]); # the default - -This reads or sets the object's list of request names that -L will allow redirection for. By default, this -is C<['GET', 'HEAD']>, as per L. -To change to include C, consider: - - push @{ $ua->requests_redirectable }, 'POST'; - -=head2 show_progress - - my $bool = $ua->show_progress; - $ua->show_progress( $boolean ); - -Get/set a value indicating whether a progress bar should be displayed -on the terminal as requests are processed. The default is false. - -=head2 ssl_opts - - my @keys = $ua->ssl_opts; - my $val = $ua->ssl_opts( $key ); - $ua->ssl_opts( $key => $value ); - -Get/set the options for SSL connections. Without argument return the list -of options keys currently set. With a single argument return the current -value for the given option. With 2 arguments set the option value and return -the old. Setting an option to the value C removes this option. - -The options that LWP relates to are: - -=over - -=item C => $bool - -When TRUE LWP will for secure protocol schemes ensure it connects to servers -that have a valid certificate matching the expected hostname. If FALSE no -checks are made and you can't be sure that you communicate with the expected peer. -The no checks behaviour was the default for libwww-perl-5.837 and earlier releases. - -This option is initialized from the L environment -variable. If this environment variable isn't set; then C -defaults to 1. - -=item C => $path - -The path to a file containing Certificate Authority certificates. -A default setting for this option is provided by checking the environment -variables C and C in order. - -=item C => $path - -The path to a directory containing files containing Certificate Authority -certificates. -A default setting for this option is provided by checking the environment -variables C and C in order. - -=back - -Other options can be set and are processed directly by the SSL Socket implementation -in use. See L or L for details. - -The libwww-perl core no longer bundles protocol plugins for SSL. You will need -to install L separately to enable support for processing -https-URLs. - -=head2 timeout - - my $secs = $ua->timeout; - $ua->timeout( $secs ); - -Get/set the timeout value in seconds. The default value is -180 seconds, i.e. 3 minutes. - -The requests is aborted if no activity on the connection to the server -is observed for C seconds. This means that the time it takes -for the complete transaction and the L method to -actually return might be longer. - -=head1 PROXY ATTRIBUTES - -The following methods set up when requests should be passed via a -proxy server. - -=head2 env_proxy - - $ua->env_proxy; - -Load proxy settings from C<*_proxy> environment variables. You might -specify proxies like this (sh-syntax): - - gopher_proxy=http://proxy.my.place/ - wais_proxy=http://proxy.my.place/ - no_proxy="localhost,example.com" - export gopher_proxy wais_proxy no_proxy - -csh or tcsh users should use the C command to define these -environment variables. - -On systems with case insensitive environment variables there exists a -name clash between the CGI environment variables and the C -environment variable normally picked up by C. Because of -this C is not honored for CGI scripts. The -C environment variable can be used instead. - -=head2 no_proxy - - $ua->no_proxy( @domains ); - $ua->no_proxy('localhost', 'example.com'); - $ua->no_proxy(); # clear the list - -Do not proxy requests to the given domains. Calling C without -any domains clears the list of domains. - -=head2 proxy - - $ua->proxy(\@schemes, $proxy_url) - $ua->proxy(['http', 'ftp'], 'http://proxy.sn.no:8001/'); - - # For a single scheme: - $ua->proxy($scheme, $proxy_url) - $ua->proxy('gopher', 'http://proxy.sn.no:8001/'); - - # To set multiple proxies at once: - $ua->proxy([ - ftp => 'http://ftp.example.com:8001/', - [ 'http', 'https' ] => 'http://http.example.com:8001/', - ]); - -Set/retrieve proxy URL for a scheme. - -The first form specifies that the URL is to be used as a proxy for -access methods listed in the list in the first method argument, -i.e. C and C. - -The second form shows a shorthand form for specifying -proxy URL for a single access scheme. - -The third form demonstrates setting multiple proxies at once. This is also -the only form accepted by the constructor. - -=head1 HANDLERS - -Handlers are code that injected at various phases during the -processing of requests. The following methods are provided to manage -the active handlers: - -=head2 add_handler - - $ua->add_handler( $phase => \&cb, %matchspec ) - -Add handler to be invoked in the given processing phase. For how to -specify C<%matchspec> see L. - -The possible values C<$phase> and the corresponding callback signatures are: - -=over - -=item response_data => sub { my($response, $ua, $h, $data) = @_; ... } - -This handler is called for each chunk of data received for the -response. The handler might croak to abort the request. - -This handler needs to return a TRUE value to be called again for -subsequent chunks for the same request. - -=item response_done => sub { my($response, $ua, $h) = @_; ... } - -The handler is called after the response has been fully received, but -before any redirect handling is attempted. The handler can be used to -extract information or modify the response. - -=item response_header => sub { my($response, $ua, $h) = @_; ... } - -This handler is called right after the response headers have been -received, but before any content data. The handler might set up -handlers for data and might croak to abort the request. - -The handler might set the $response->{default_add_content} value to -control if any received data should be added to the response object -directly. This will initially be false if the $ua->request() method -was called with a $content_file or $content_cb argument; otherwise true. - -=item request_prepare => sub { my($request, $ua, $h) = @_; ... } - -The handler is called before the request is sent and can modify the -request any way it see fit. This can for instance be used to add -certain headers to specific requests. - -The method can assign a new request object to $_[0] to replace the -request that is sent fully. - -The return value from the callback is ignored. If an exception is -raised it will abort the request and make the request method return a -"400 Bad request" response. - -=item request_preprepare => sub { my($request, $ua, $h) = @_; ... } - -The handler is called before the C and other standard -initialization of the request. This can be used to set up headers -and attributes that the C handler depends on. Proxy -initialization should take place here; but in general don't register -handlers for this phase. - -=item request_send => sub { my($request, $ua, $h) = @_; ... } - -This handler gets a chance of handling requests before they're sent to the -protocol handlers. It should return an HTTP::Response object if it -wishes to terminate the processing; otherwise it should return nothing. - -The C and C handlers will not be -invoked for this response, but the C will be. - -=item response_redirect => sub { my($response, $ua, $h) = @_; ... } - -The handler is called in $ua->request after C. If the -handler returns an HTTP::Request object we'll start over with processing -this request instead. - -=back - -=head2 get_my_handler - - $ua->get_my_handler( $phase, %matchspec ); - $ua->get_my_handler( $phase, %matchspec, $init ); - -Will retrieve the matching handler as hash ref. - -If C<$init> is passed as a true value, create and add the -handler if it's not found. If C<$init> is a subroutine reference, then -it's called with the created handler hash as argument. This sub might -populate the hash with extra fields; especially the callback. If -C<$init> is a hash reference, merge the hashes. - -=head2 handlers - - $ua->handlers( $phase, $request ) - $ua->handlers( $phase, $response ) - -Returns the handlers that apply to the given request or response at -the given processing phase. - -=head2 remove_handler - - $ua->remove_handler( undef, %matchspec ); - $ua->remove_handler( $phase, %matchspec ); - $ua->remove_handlers(); # REMOVE ALL HANDLERS IN ALL PHASES - -Remove handlers that match the given C<%matchspec>. If C<$phase> is not -provided, remove handlers from all phases. - -Be careful as calling this function with C<%matchspec> that is not -specific enough can remove handlers not owned by you. It's probably -better to use the L method instead. - -The removed handlers are returned. - -=head2 set_my_handler - - $ua->set_my_handler( $phase, $cb, %matchspec ); - $ua->set_my_handler($phase, undef); # remove handler for phase - -Set handlers private to the executing subroutine. Works by defaulting -an C field to the C<%matchspec> that holds the name of the called -subroutine. You might pass an explicit C to override this. - -If $cb is passed as C, remove the handler. - -=head1 REQUEST METHODS - -The methods described in this section are used to dispatch requests -via the user agent. The following request methods are provided: - -=head2 delete - - my $res = $ua->delete( $url ); - my $res = $ua->delete( $url, $field_name => $value, ... ); - -This method will dispatch a C request on the given URL. Additional -headers and content options are the same as for the L -method. - -This method will use the DELETE() function from L -to build the request. See L for a details on -how to pass form content and other advanced features. - -=head2 get - - my $res = $ua->get( $url ); - my $res = $ua->get( $url , $field_name => $value, ... ); - -This method will dispatch a C request on the given URL. Further -arguments can be given to initialize the headers of the request. These -are given as separate name/value pairs. The return value is a -response object. See L for a description of the -interface it provides. - -There will still be a response object returned when LWP can't connect to the -server specified in the URL or when other failures in protocol handlers occur. -These internal responses use the standard HTTP status codes, so the responses -can't be differentiated by testing the response status code alone. Error -responses that LWP generates internally will have the "Client-Warning" header -set to the value "Internal response". If you need to differentiate these -internal responses from responses that a remote server actually generates, you -need to test this header value. - -Fields names that start with ":" are special. These will not -initialize headers of the request but will determine how the response -content is treated. The following special field names are recognized: - - :content_file => $filename - :content_cb => \&callback - :read_size_hint => $bytes - -If a $filename is provided with the C<:content_file> option, then the -response content will be saved here instead of in the response -object. If a callback is provided with the C<:content_cb> option then -this function will be called for each chunk of the response content as -it is received from the server. If neither of these options are -given, then the response content will accumulate in the response -object itself. This might not be suitable for very large response -bodies. Only one of C<:content_file> or C<:content_cb> can be -specified. The content of unsuccessful responses will always -accumulate in the response object itself, regardless of the -C<:content_file> or C<:content_cb> options passed in. Note that errors -writing to the content file (for example due to permission denied -or the filesystem being full) will be reported via the C -or C response headers, and not the C method. - -The C<:read_size_hint> option is passed to the protocol module which -will try to read data from the server in chunks of this size. A -smaller value for the C<:read_size_hint> will result in a higher -number of callback invocations. - -The callback function is called with 3 arguments: a chunk of data, a -reference to the response object, and a reference to the protocol -object. The callback can abort the request by invoking die(). The -exception message will show up as the "X-Died" header field in the -response returned by the get() function. - -=head2 head - - my $res = $ua->head( $url ); - my $res = $ua->head( $url , $field_name => $value, ... ); - -This method will dispatch a C request on the given URL. -Otherwise it works like the L method described above. - -=head2 is_protocol_supported - - my $bool = $ua->is_protocol_supported( $scheme ); - -You can use this method to test whether this user agent object supports the -specified C. (The C might be a string (like C or -C) or it might be an L object reference.) - -Whether a scheme is supported is determined by the user agent's -C or C lists (if any), and by -the capabilities of LWP. I.e., this will return true only if LWP -supports this protocol I it's permitted for this particular -object. - -=head2 is_online - - my $bool = $ua->is_online; - -Tries to determine if you have access to the Internet. Returns C<1> (true) -if the built-in heuristics determine that the user agent is -able to access the Internet (over HTTP) or C<0> (false). - -See also L. - -=head2 mirror - - my $res = $ua->mirror( $url, $filename ); - -This method will get the document identified by URL and store it in -file called C<$filename>. If the file already exists, then the request -will contain an C header matching the modification -time of the file. If the document on the server has not changed since -this time, then nothing happens. If the document has been updated, it -will be downloaded again. The modification time of the file will be -forced to match that of the server. - -The return value is an L object. - -=head2 post - - my $res = $ua->post( $url, \%form ); - my $res = $ua->post( $url, \@form ); - my $res = $ua->post( $url, \%form, $field_name => $value, ... ); - my $res = $ua->post( $url, $field_name => $value, Content => \%form ); - my $res = $ua->post( $url, $field_name => $value, Content => \@form ); - my $res = $ua->post( $url, $field_name => $value, Content => $content ); - -This method will dispatch a C request on the given URL, with -C<%form> or C<@form> providing the key/value pairs for the fill-in form -content. Additional headers and content options are the same as for -the L method. - -This method will use the C function from L -to build the request. See L for a details on -how to pass form content and other advanced features. - -=head2 put - - # Any version of HTTP::Message works with this form: - my $res = $ua->put( $url, $field_name => $value, Content => $content ); - - # Using hash or array references requires HTTP::Message >= 6.07 - use HTTP::Request 6.07; - my $res = $ua->put( $url, \%form ); - my $res = $ua->put( $url, \@form ); - my $res = $ua->put( $url, \%form, $field_name => $value, ... ); - my $res = $ua->put( $url, $field_name => $value, Content => \%form ); - my $res = $ua->put( $url, $field_name => $value, Content => \@form ); - -This method will dispatch a C request on the given URL, with -C<%form> or C<@form> providing the key/value pairs for the fill-in form -content. Additional headers and content options are the same as for -the L method. - -CAVEAT: - -This method can only accept content that is in key-value pairs when using -L prior to version C<6.07>. Any use of hash or array -references will result in an error prior to version C<6.07>. - -This method will use the C function from L -to build the request. See L for a details on -how to pass form content and other advanced features. - -=head2 request - - my $res = $ua->request( $request ); - my $res = $ua->request( $request, $content_file ); - my $res = $ua->request( $request, $content_cb ); - my $res = $ua->request( $request, $content_cb, $read_size_hint ); - -This method will dispatch the given C<$request> object. Normally this -will be an instance of the L class, but any object with -a similar interface will do. The return value is an L object. - -The C method will process redirects and authentication -responses transparently. This means that it may actually send several -simple requests via the L method described below. - -The request methods described above; L, L, -L and L will all dispatch the request -they build via this method. They are convenience methods that simply hide the -creation of the request object for you. - -The C<$content_file>, C<$content_cb> and C<$read_size_hint> all correspond to -options described with the L method above. Note that errors -writing to the content file (for example due to permission denied -or the filesystem being full) will be reported via the C -or C response headers, and not the C method. - -You are allowed to use a CODE reference as C in the request -object passed in. The C function should return the content -when called. The content can be returned in chunks. The content -function will be invoked repeatedly until it return an empty string to -signal that there is no more content. - -=head2 simple_request - - my $request = HTTP::Request->new( ... ); - my $res = $ua->simple_request( $request ); - my $res = $ua->simple_request( $request, $content_file ); - my $res = $ua->simple_request( $request, $content_cb ); - my $res = $ua->simple_request( $request, $content_cb, $read_size_hint ); - -This method dispatches a single request and returns the response -received. Arguments are the same as for the L described above. - -The difference from L is that C will not try to -handle redirects or authentication responses. The L method -will, in fact, invoke this method for each simple request it sends. - -=head1 CALLBACK METHODS - -The following methods will be invoked as requests are processed. These -methods are documented here because subclasses of L -might want to override their behaviour. - -=head2 get_basic_credentials - - # This checks wantarray and can either return an array: - my ($user, $pass) = $ua->get_basic_credentials( $realm, $uri, $isproxy ); - # or a string that looks like "user:pass" - my $creds = $ua->get_basic_credentials($realm, $uri, $isproxy); - -This is called by L to retrieve credentials for documents -protected by Basic or Digest Authentication. The arguments passed in -is the C<$realm> provided by the server, the C<$uri> requested and a -C to indicate if this is authentication against a proxy server. - -The method should return a username and password. It should return an -empty list to abort the authentication resolution attempt. Subclasses -can override this method to prompt the user for the information. An -example of this can be found in C program distributed -with this library. - -The base implementation simply checks a set of pre-stored member -variables, set up with the L method. - -=head2 prepare_request - - $request = $ua->prepare_request( $request ); - -This method is invoked by L. Its task is -to modify the given C<$request> object by setting up various headers based -on the attributes of the user agent. The return value should normally be the -C<$request> object passed in. If a different request object is returned -it will be the one actually processed. - -The headers affected by the base implementation are; C, -C, C and C. - -=head2 progress - - my $prog = $ua->progress( $status, $request_or_response ); - -This is called frequently as the response is received regardless of -how the content is processed. The method is called with C<$status> -"begin" at the start of processing the request and with C<$state> "end" -before the request method returns. In between these C<$status> will be -the fraction of the response currently received or the string "tick" -if the fraction can't be calculated. - -When C<$status> is "begin" the second argument is the L object, -otherwise it is the L object. - -=head2 redirect_ok - - my $bool = $ua->redirect_ok( $prospective_request, $response ); - -This method is called by L before it tries to follow a -redirection to the request in C<$response>. This should return a true -value if this redirection is permissible. The C<$prospective_request> -will be the request to be sent if this method returns true. - -The base implementation will return false unless the method -is in the object's C list, -false if the proposed redirection is to a C -URL, and true otherwise. - -=head1 SEE ALSO - -See L for a complete overview of libwww-perl5. See L -and the scripts F and F for examples of -usage. - -See L and L for a description of the -message objects dispatched and received. See L -and L for other ways to build request objects. - -See L and L for examples of more -specialized user agents based on L. - -=head1 COPYRIGHT AND LICENSE - -Copyright 1995-2009 Gisle Aas. - -This library is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7043/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7043/MYMETA.json deleted file mode 100644 index 9c1556d1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7043/MYMETA.json +++ /dev/null @@ -1,188 +0,0 @@ -{ - "abstract" : "get, unpack, build and install modules from CPAN", - "author" : [ - "- Tatsuhiko Miyagawa" - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Milla version v1.0.17, Dist::Zilla version 6.009, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "App-cpanminus", - "no_index" : { - "directory" : [ - "eg", - "examples", - "inc", - "share", - "t", - "xt" - ], - "file" : [ - "lib/App/cpanminus/fatscript.pm" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "develop" : { - "recommends" : { - "Archive::Tar" : "0", - "Archive::Zip" : "0", - "Compress::Zlib" : "0", - "File::HomeDir" : "0", - "Module::Signature" : "0" - }, - "requires" : { - "App::FatPacker" : "0", - "CPAN::DistnameInfo" : "0", - "CPAN::Meta" : "2.132830", - "CPAN::Meta::Check" : "0", - "CPAN::Meta::Prereqs" : "0", - "CPAN::Meta::Requirements" : "0", - "CPAN::Meta::YAML" : "0", - "Capture::Tiny" : "0", - "Digest::SHA" : "0", - "Dist::Milla" : "v1.0.17", - "Exporter" : "5.63", - "File::Temp" : "0", - "File::pushd" : "0", - "Getopt::Long" : "0", - "HTTP::Tiny" : "0", - "JSON" : "0", - "JSON::PP" : "0", - "LWP::Simple" : "0", - "LWP::UserAgent" : "5.802", - "Module::CPANfile" : "0", - "Module::CoreList" : "0", - "Module::Install" : "0", - "Module::Metadata" : "0", - "Parse::CPAN::Meta" : "0", - "Parse::PMFile" : "0.26", - "Perl::Strip" : "0", - "String::ShellQuote" : "0", - "Test::More" : "0.90", - "Test::Pod" : "1.41", - "Test::Requires" : "0", - "Tie::File" : "0", - "YAML" : "0", - "YAML::Tiny" : "0", - "local::lib" : "0", - "version" : "0" - } - }, - "runtime" : { - "requires" : { - "perl" : "5.008001" - } - }, - "test" : { - "requires" : { - "Test::More" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/miyagawa/cpanminus/issues" - }, - "homepage" : "https://github.com/miyagawa/cpanminus", - "repository" : { - "type" : "git", - "url" : "https://github.com/miyagawa/cpanminus.git", - "web" : "https://github.com/miyagawa/cpanminus" - } - }, - "version" : "1.7043", - "x_contributors" : [ - "Aaron Moses ", - "Alessandro Ghedini ", - "Andrew Rodland ", - "Andy Jones ", - "andyjones ", - "Ash Berlin ", - "Ben Bullock ", - "Breno G. de Oliveira ", - "Brian Wightman ", - "cho45 ", - "Christian Walde ", - "chromatic ", - "Dagfinn Ilmari Mannsaker ", - "Dana M. Diederich ", - "Dave Goodell ", - "Dave Rolsky ", - "David Golden ", - "David Steinbrunner ", - "Doug Bell ", - "fREW Schmidt ", - "Fuji, Goro ", - "Gareth Kirwan ", - "gfx ", - "Graham Knop ", - "Graham Ollis ", - "ikasam_a ", - "Ingy dot Net ", - "Jan Dubois ", - "Jeffrey Ryan Thalhammer ", - "Jesse Luehrs ", - "J. Nick Koston ", - "jonallen ", - "Jonathan Scott Duff ", - "Kahlil (Kal) Hodgson ", - "Kenichi Ishigaki ", - "Kent Fredric ", - "kmx ", - "Larry Leszczynski ", - "lestrrat ", - "Masahiro Nagano ", - "Masayoshi Sekimura ", - "Matthew Horsfall ", - "Matt S Trout <>", - "Matt S Trout ", - "Michael G. Schwern ", - "motemen ", - "moznion ", - "Norman Nunley ", - "Olaf Alders ", - "Olivier Mengue ", - "Pedro Melo ", - "Rafal Pocztarski ", - "reezer ", - "Ricardo Signes ", - "robario ", - "Robert Buels ", - "Rob Hoelz ", - "Roman Jurkov ", - "Sebastian Riedel ", - "Shoichi Kaji ", - "Slaven Rezic ", - "Smylers ", - "Stoned Elipot ", - "Syohei YOSHIDA ", - "Tatsuhiko Miyagawa ", - "Tatsuhiko Miyagawa ", - "Thomas Sibley ", - "Tokuhiro Matsuno ", - "Tuure Laurinolli ", - "vti ", - "Vyacheslav Matyukhin ", - "xaicron ", - "Yann Kerherve ", - "yappo ", - "zebardy " - ], - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7043/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7043/install.json deleted file mode 100644 index 47f09cc7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7043/install.json +++ /dev/null @@ -1 +0,0 @@ -{"dist":"App-cpanminus-1.7043","pathname":"M/MI/MIYAGAWA/App-cpanminus-1.7043.tar.gz","provides":{"App::cpanminus":{"version":"1.7043","file":"lib/App/cpanminus.pm"}},"version":"1.7043","name":"App::cpanminus","target":"App::cpanminus"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7044/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7044/MYMETA.json deleted file mode 100644 index c9237617..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7044/MYMETA.json +++ /dev/null @@ -1,190 +0,0 @@ -{ - "abstract" : "get, unpack, build and install modules from CPAN", - "author" : [ - "- Tatsuhiko Miyagawa" - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Milla version v1.0.18, Dist::Zilla version 6.009, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "App-cpanminus", - "no_index" : { - "directory" : [ - "eg", - "examples", - "inc", - "share", - "t", - "xt" - ], - "file" : [ - "lib/App/cpanminus/fatscript.pm" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "develop" : { - "recommends" : { - "Archive::Tar" : "0", - "Archive::Zip" : "0", - "Compress::Zlib" : "0", - "File::HomeDir" : "0", - "Module::Signature" : "0" - }, - "requires" : { - "App::FatPacker" : "0", - "CPAN::DistnameInfo" : "0", - "CPAN::Meta" : "2.132830", - "CPAN::Meta::Check" : "0", - "CPAN::Meta::Prereqs" : "0", - "CPAN::Meta::Requirements" : "0", - "CPAN::Meta::YAML" : "0", - "Capture::Tiny" : "0", - "Digest::SHA" : "0", - "Dist::Milla" : "v1.0.18", - "Exporter" : "5.63", - "File::Temp" : "0", - "File::pushd" : "0", - "Getopt::Long" : "0", - "HTTP::Tiny" : "0", - "JSON" : "0", - "JSON::PP" : "0", - "LWP::Simple" : "0", - "LWP::UserAgent" : "5.802", - "Module::CPANfile" : "0", - "Module::CoreList" : "0", - "Module::Install" : "0", - "Module::Metadata" : "0", - "Parse::CPAN::Meta" : "0", - "Parse::PMFile" : "0.26", - "Perl::Strip" : "0", - "String::ShellQuote" : "0", - "Test::More" : "0.90", - "Test::Pod" : "1.41", - "Test::Requires" : "0", - "Tie::File" : "0", - "YAML" : "0", - "YAML::Tiny" : "0", - "local::lib" : "0", - "version" : "0" - } - }, - "runtime" : { - "requires" : { - "perl" : "5.008001" - } - }, - "test" : { - "requires" : { - "Test::More" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/miyagawa/cpanminus/issues" - }, - "homepage" : "https://github.com/miyagawa/cpanminus", - "repository" : { - "type" : "git", - "url" : "https://github.com/miyagawa/cpanminus.git", - "web" : "https://github.com/miyagawa/cpanminus" - } - }, - "version" : "1.7044", - "x_contributors" : [ - "Aaron Moses ", - "Alessandro Ghedini ", - "Andrew Rodland ", - "Andy Jones ", - "andyjones ", - "Ash Berlin ", - "Ben Bullock ", - "Breno G. de Oliveira ", - "Brian Wightman ", - "cho45 ", - "Christian Walde ", - "chromatic ", - "Dagfinn Ilmari Mannsaker ", - "Dana M. Diederich ", - "Dave Goodell ", - "Dave Rolsky ", - "David Golden ", - "David Steinbrunner ", - "Doug Bell ", - "Eli Flanagan ", - "fREW Schmidt ", - "Fuji, Goro ", - "Gareth Kirwan ", - "gfx ", - "Graham Knop ", - "Graham Ollis ", - "ikasam_a ", - "Ingy dot Net ", - "Jan Dubois ", - "Jeffrey Ryan Thalhammer ", - "Jesse Luehrs ", - "J. Nick Koston ", - "jonallen ", - "Jonathan Scott Duff ", - "Kahlil (Kal) Hodgson ", - "Kenichi Ishigaki ", - "Kent Fredric ", - "kmx ", - "Larry Leszczynski ", - "lestrrat ", - "Masahiro Nagano ", - "Masayoshi Sekimura ", - "Matthew Horsfall ", - "Matt S Trout <>", - "Matt S Trout ", - "Michael G. Schwern ", - "motemen ", - "moznion ", - "Nicolas R ", - "Norman Nunley ", - "Olaf Alders ", - "Olivier Mengue ", - "Pedro Melo ", - "Rafal Pocztarski ", - "reezer ", - "Ricardo Signes ", - "robario ", - "Robert Buels ", - "Rob Hoelz ", - "Roman Jurkov ", - "Sebastian Riedel ", - "Shoichi Kaji ", - "Slaven Rezic ", - "Smylers ", - "Stoned Elipot ", - "Syohei YOSHIDA ", - "Tatsuhiko Miyagawa ", - "Tatsuhiko Miyagawa ", - "Thomas Sibley ", - "Tokuhiro Matsuno ", - "Tuure Laurinolli ", - "vti ", - "Vyacheslav Matyukhin ", - "xaicron ", - "Yann Kerherve ", - "yappo ", - "zebardy " - ], - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7044/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7044/install.json deleted file mode 100644 index 15f91182..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/App-cpanminus-1.7044/install.json +++ /dev/null @@ -1 +0,0 @@ -{"pathname":"M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz","name":"App::cpanminus","version":"1.7044","dist":"App-cpanminus-1.7044","target":"App::cpanminus","provides":{"App::cpanminus":{"version":"1.7044","file":"lib/App/cpanminus.pm"}}} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Crypt-CBC-2.33/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Crypt-CBC-2.33/MYMETA.json deleted file mode 100644 index 48c27a5f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Crypt-CBC-2.33/MYMETA.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "abstract" : "unknown", - "author" : [ - "unknown" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.68, CPAN::Meta::Converter version 2.112621, CPAN::Meta::Converter version 2.150010", - "license" : [ - "unknown" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Crypt-CBC", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Digest::MD5" : "2.00" - } - } - }, - "release_status" : "stable", - "version" : "2.33", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Crypt-CBC-2.33/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Crypt-CBC-2.33/install.json deleted file mode 100644 index e8937528..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Crypt-CBC-2.33/install.json +++ /dev/null @@ -1 +0,0 @@ -{"target":"Crypt::CBC","provides":{"Crypt::CBC":{"file":"CBC.pm","version":"2.33"}},"version":"2.33","pathname":"L/LD/LDS/Crypt-CBC-2.33.tar.gz","name":"Crypt::CBC","dist":"Crypt-CBC-2.33"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Data-UUID-1.221/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Data-UUID-1.221/MYMETA.json deleted file mode 100644 index 83d06f7d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Data-UUID-1.221/MYMETA.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "abstract" : "Globally/Universally Unique Identifiers (GUIDs/UUIDs)", - "author" : [ - "Ricardo Signes " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter version 2.150005, CPAN::Meta::Converter version 2.150010", - "license" : [ - "bsd" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Data-UUID", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Digest::MD5" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/rjbs/Data-UUID/issues" - }, - "repository" : { - "url" : "https://github.com/rjbs/Data-UUID" - } - }, - "version" : "1.221", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Data-UUID-1.221/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Data-UUID-1.221/install.json deleted file mode 100644 index 3c1d5416..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Data-UUID-1.221/install.json +++ /dev/null @@ -1 +0,0 @@ -{"target":"Data::UUID","provides":{"Data::UUID":{"file":"UUID.pm","version":"1.221"}},"dist":"Data-UUID-1.221","pathname":"R/RJ/RJBS/Data-UUID-1.221.tar.gz","version":"1.221","name":"Data::UUID"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.09/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.09/MYMETA.json deleted file mode 100644 index 806f8d6e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.09/MYMETA.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "abstract" : "unknown", - "author" : [ - "unknown" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter version 2.150001, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Devel-CheckLib", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "IO::CaptureOutput" : "1.0801", - "Test::More" : "0.62" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Exporter" : "0", - "File::Spec" : "0", - "File::Temp" : "0.16", - "perl" : "5.00405" - } - } - }, - "release_status" : "stable", - "resources" : { - "repository" : { - "url" : "http://github.com/mattn/p5-Devel-CheckLib" - } - }, - "version" : "1.09", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.09/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.09/install.json deleted file mode 100644 index 5d27b626..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.09/install.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"1.09","dist":"Devel-CheckLib-1.09","provides":{"Devel::CheckLib":{"file":"lib/Devel/CheckLib.pm","version":"1.09"}},"name":"Devel::CheckLib","target":"Devel::CheckLib","pathname":"M/MA/MATTN/Devel-CheckLib-1.09.tar.gz"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.10/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.10/MYMETA.json deleted file mode 100644 index c2c239a7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.10/MYMETA.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "abstract" : "unknown", - "author" : [ - "unknown" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter version 2.150001, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Devel-CheckLib", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "IO::CaptureOutput" : "1.0801", - "Mock::Config" : "0.02", - "Test::More" : "0.62" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Exporter" : "0", - "File::Spec" : "0", - "File::Temp" : "0.16", - "perl" : "5.00405" - } - } - }, - "release_status" : "stable", - "resources" : { - "repository" : { - "url" : "http://github.com/mattn/p5-Devel-CheckLib" - } - }, - "version" : "1.10", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.10/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.10/install.json deleted file mode 100644 index 40d9249c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.10/install.json +++ /dev/null @@ -1 +0,0 @@ -{"provides":{"Devel::CheckLib":{"version":"1.10","file":"lib/Devel/CheckLib.pm"}},"dist":"Devel-CheckLib-1.10","pathname":"M/MA/MATTN/Devel-CheckLib-1.10.tar.gz","version":"1.10","target":"Devel::CheckLib","name":"Devel::CheckLib"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.11/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.11/MYMETA.json deleted file mode 100644 index 7bdf37bc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.11/MYMETA.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "abstract" : "unknown", - "author" : [ - "unknown" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150001, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Devel-CheckLib", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "IO::CaptureOutput" : "1.0801", - "Mock::Config" : "0.02", - "Test::More" : "0.62" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Exporter" : "0", - "File::Spec" : "0", - "File::Temp" : "0.16", - "perl" : "5.00405" - } - } - }, - "release_status" : "stable", - "resources" : { - "repository" : { - "url" : "http://github.com/mattn/p5-Devel-CheckLib" - } - }, - "version" : "1.11", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.11/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.11/install.json deleted file mode 100644 index 1bef2d6a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Devel-CheckLib-1.11/install.json +++ /dev/null @@ -1 +0,0 @@ -{"provides":{"Devel::CheckLib":{"file":"lib/Devel/CheckLib.pm","version":"1.11"}},"pathname":"M/MA/MATTN/Devel-CheckLib-1.11.tar.gz","name":"Devel::CheckLib","dist":"Devel-CheckLib-1.11","version":"1.11","target":"Devel::CheckLib"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Digest-HMAC-1.03/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Digest-HMAC-1.03/MYMETA.json deleted file mode 100644 index f18a8c14..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Digest-HMAC-1.03/MYMETA.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "abstract" : "Keyed-Hashing for Message Authentication", - "author" : [ - "Gisle Aas " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.57_05, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Digest-HMAC", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Digest::MD5" : "2", - "Digest::SHA" : "1", - "perl" : "5.004" - } - } - }, - "release_status" : "stable", - "version" : "1.03", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Digest-HMAC-1.03/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Digest-HMAC-1.03/install.json deleted file mode 100644 index 1fe5b73c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Digest-HMAC-1.03/install.json +++ /dev/null @@ -1 +0,0 @@ -{"dist":"Digest-HMAC-1.03","pathname":"G/GA/GAAS/Digest-HMAC-1.03.tar.gz","version":"1.03","provides":{"Digest::HMAC_SHA1":{"file":"lib/Digest/HMAC_SHA1.pm","version":"1.03"},"Digest::HMAC":{"file":"lib/Digest/HMAC.pm","version":"1.03"},"Digest::HMAC_MD5":{"file":"lib/Digest/HMAC_MD5.pm","version":"1.01"}},"target":"Digest::HMAC","name":"Digest::HMAC"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.89/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.89/MYMETA.json deleted file mode 100644 index 0cd549fe..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.89/MYMETA.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "abstract" : "unknown", - "author" : [ - "unknown" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Encode", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Exporter" : "5.57", - "parent" : "0.221" - } - }, - "test" : { - "requires" : { - "Test::More" : "0.81_01" - } - } - }, - "release_status" : "stable", - "resources" : { - "repository" : { - "url" : "https://github.com/dankogai/p5-encode" - } - }, - "version" : "2.89", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.89/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.89/install.json deleted file mode 100644 index 49da2167..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.89/install.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"2.89","dist":"Encode-2.89","target":"Encode","pathname":"D/DA/DANKOGAI/Encode-2.89.tar.gz","name":"Encode","provides":{"Encode::CJKConstants":{"file":"lib/Encode/CJKConstants.pm","version":"2.02"},"Encode::EBCDIC":{"version":"2.02","file":"EBCDIC/EBCDIC.pm"},"Encode::MIME::Header::ISO_2022_JP":{"version":"1.08","file":"lib/Encode/MIME/Header/ISO_2022_JP.pm"},"Encode::Config":{"file":"lib/Encode/Config.pm","version":"2.05"},"Encode::Byte":{"file":"Byte/Byte.pm","version":"2.04"},"Encode::Internal":{"version":"2.89","file":"Encode.pm"},"Encode::Guess":{"file":"lib/Encode/Guess.pm","version":"2.06"},"Encode::JP::H2Z":{"file":"lib/Encode/JP/H2Z.pm","version":"2.02"},"Encode::Alias":{"file":"lib/Encode/Alias.pm","version":"2.21"},"Encode::MIME::Name":{"version":"1.02","file":"lib/Encode/MIME/Name.pm"},"Encode::Encoder":{"version":"2.03","file":"lib/Encode/Encoder.pm"},"Encode::Unicode":{"file":"Unicode/Unicode.pm","version":"2.15"},"Encode::Symbol":{"file":"Symbol/Symbol.pm","version":"2.02"},"Encode::KR::2022_KR":{"file":"lib/Encode/KR/2022_KR.pm","version":"2.04"},"Encode::CN::HZ":{"file":"lib/Encode/CN/HZ.pm","version":"2.09"},"Encode::TW":{"version":"2.03","file":"TW/TW.pm"},"Encode::GSM0338":{"version":"2.06","file":"lib/Encode/GSM0338.pm"},"Encode::Encoding":{"file":"lib/Encode/Encoding.pm","version":"2.07"},"Encode::XS":{"file":"Encode.pm","version":"2.89"},"encoding":{"version":"2.19","file":"encoding.pm"},"Encode::UTF_EBCDIC":{"version":"2.89","file":"Encode.pm"},"Encode::JP":{"version":"2.04","file":"JP/JP.pm"},"Encode::KR":{"version":"2.03","file":"KR/KR.pm"},"Encode::utf8":{"file":"Encode.pm","version":"2.89"},"Encode::MIME::Header":{"file":"lib/Encode/MIME/Header.pm","version":"2.25"},"Encode::JP::JIS7":{"file":"lib/Encode/JP/JIS7.pm","version":"2.06"},"Encode::Unicode::UTF7":{"version":"2.09","file":"lib/Encode/Unicode/UTF7.pm"},"Encode::CN":{"version":"2.03","file":"CN/CN.pm"},"Encode":{"version":"2.89","file":"Encode.pm"}}} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.98/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.98/MYMETA.json deleted file mode 100644 index 1f5343c7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.98/MYMETA.json +++ /dev/null @@ -1,139 +0,0 @@ -{ - "abstract" : "character encodings in Perl", - "author" : [ - "Dan Kogai " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.1002, CPAN::Meta::Converter version 2.150005, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Encode", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Exporter" : "5.57", - "Storable" : "0", - "parent" : "0.221" - } - }, - "test" : { - "requires" : { - "Test::More" : "0.81_01" - } - } - }, - "release_status" : "stable", - "resources" : { - "repository" : { - "url" : "https://github.com/dankogai/p5-encode" - } - }, - "version" : "2.98", - "x_contributors" : [ - "Alex Davies ", - "Alex Kapranoff ", - "Alex Vandiver ", - "Andreas J. Koenig ", - "Andrew Pennebaker ", - "Andy Grundman ", - "Anton Tagunov ", - "Autrijus Tang ", - "Benjamin Goldberg ", - "Bjoern Hoehrmann ", - "Bjoern Jacke ", - "bulk88 ", - "Craig A. Berry ", - "Curtis Jewell ", - "Dan Kogai ", - "Dave Evans ", - "David Golden ", - "David Steinbrunner ", - "Deng Liu ", - "Dominic Dunlop ", - "drry", - "Elizabeth Mattijsen ", - "Flavio Poletti ", - "Gerrit P. Haase ", - "Gisle Aas ", - "Graham Barr ", - "Graham Knop ", - "Graham Ollis ", - "Gurusamy Sarathy ", - "H.Merijn Brand ", - "Hugo van der Sanden ", - "chansen ", - "Chris Nandor ", - "Inaba Hiroto ", - "Jarkko Hietaniemi ", - "Jesse Vincent ", - "Jungshik Shin ", - "Karen Etheridge ", - "Karl Williamson ", - "Kenichi Ishigaki ", - "KONNO Hiroharu ", - "Laszlo Molnar ", - "Makamaka ", - "Mark-Jason Dominus ", - "Masahiro Iuchi ", - "MATSUNO Tokuhiro ", - "Mattia Barbon ", - "Michael G Schwern ", - "Michael LaGrasta ", - "Miron Cuperman ", - "Moritz Lenz ", - "MORIYAMA Masayuki ", - "Nick Ing-Simmons ", - "Nicholas Clark ", - "Olivier Mengué ", - "otsune", - "Pali ", - "Paul Marquess ", - "Peter Prymmer ", - "Peter Rabbitson ", - "Philip Newton ", - "Piotr Fusik ", - "Rafael Garcia-Suarez ", - "Randy Stauner ", - "Reini Urban ", - "Robin Barker ", - "SADAHIRO Tomoyuki ", - "Simon Cozens ", - "Slaven Rezic ", - "Spider Boardman ", - "Steve Hay ", - "Steve Peters ", - "SUGAWARA Hajime ", - "SUZUKI Norio ", - "szr8 ", - "Tatsuhiko Miyagawa ", - "Tels ", - "Tony Cook ", - "Vadim Konovalov ", - "Victor ", - "Ville Skyttä ", - "Vincent van Dam ", - "Yitzchak Scott-Thoennes " - ], - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.98/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.98/install.json deleted file mode 100644 index 0c311cfd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Encode-2.98/install.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"2.98","name":"Encode","target":"Encode","pathname":"D/DA/DANKOGAI/Encode-2.98.tar.gz","dist":"Encode-2.98","provides":{"Encode::Internal":{"file":"Encode.pm","version":"2.98"},"Encode::EBCDIC":{"version":"2.02","file":"EBCDIC/EBCDIC.pm"},"Encode::Alias":{"version":"2.24","file":"lib/Encode/Alias.pm"},"Encode::JP::JIS7":{"file":"lib/Encode/JP/JIS7.pm","version":"2.08"},"Encode::Encoder":{"file":"lib/Encode/Encoder.pm","version":"2.03"},"Encode::Byte":{"version":"2.04","file":"Byte/Byte.pm"},"Encode::Config":{"version":"2.05","file":"lib/Encode/Config.pm"},"Encode":{"file":"Encode.pm","version":"2.98"},"Encode::GSM0338":{"version":"2.07","file":"lib/Encode/GSM0338.pm"},"Encode::Unicode::UTF7":{"version":"2.10","file":"lib/Encode/Unicode/UTF7.pm"},"Encode::Unicode":{"version":"2.17","file":"Unicode/Unicode.pm"},"Encode::MIME::Header::ISO_2022_JP":{"version":"1.09","file":"lib/Encode/MIME/Header/ISO_2022_JP.pm"},"Encode::UTF_EBCDIC":{"version":"2.98","file":"Encode.pm"},"Encode::Symbol":{"version":"2.02","file":"Symbol/Symbol.pm"},"Encode::KR":{"version":"2.03","file":"KR/KR.pm"},"Encode::JP":{"version":"2.04","file":"JP/JP.pm"},"Encode::Guess":{"file":"lib/Encode/Guess.pm","version":"2.07"},"Encode::MIME::Name":{"file":"lib/Encode/MIME/Name.pm","version":"1.03"},"Encode::Encoding":{"file":"lib/Encode/Encoding.pm","version":"2.08"},"Encode::XS":{"version":"2.98","file":"Encode.pm"},"encoding":{"file":"encoding.pm","version":"2.22"},"Encode::CJKConstants":{"file":"lib/Encode/CJKConstants.pm","version":"2.02"},"Encode::TW":{"file":"TW/TW.pm","version":"2.03"},"Encode::CN":{"file":"CN/CN.pm","version":"2.03"},"Encode::JP::H2Z":{"file":"lib/Encode/JP/H2Z.pm","version":"2.02"},"Encode::KR::2022_KR":{"version":"2.04","file":"lib/Encode/KR/2022_KR.pm"},"Encode::CN::HZ":{"version":"2.10","file":"lib/Encode/CN/HZ.pm"},"Encode::MIME::Header":{"file":"lib/Encode/MIME/Header.pm","version":"2.28"},"Encode::utf8":{"version":"2.98","file":"Encode.pm"}}} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.11/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.11/MYMETA.json deleted file mode 100644 index 1e35c29b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.11/MYMETA.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "abstract" : "unknown", - "author" : [ - "unknown" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter version 2.150001, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "ExtUtils-CppGuess", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Capture::Tiny" : "0", - "File::Basename" : "0" - } - }, - "test" : { - "requires" : { - "Capture::Tiny" : "0", - "Cwd" : "0", - "Data::Dumper" : "0", - "ExtUtils::MakeMaker" : "0", - "ExtUtils::Manifest" : "0", - "Fatal" : "0", - "File::Spec" : "0", - "Module::Build" : "0", - "Test::More" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "repository" : { - "type" : "git", - "url" : "git://github.com/tsee/extutils-cppguess", - "web" : "https://github.com/tsee/extutils-cppguess" - } - }, - "version" : "0.11", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.11/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.11/install.json deleted file mode 100644 index 9d628419..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.11/install.json +++ /dev/null @@ -1 +0,0 @@ -{"provides":{"ExtUtils::CppGuess":{"version":"0.11","file":"lib/ExtUtils/CppGuess.pm"}},"name":"ExtUtils::CppGuess","version":"0.11","target":"ExtUtils::CppGuess","dist":"ExtUtils-CppGuess-0.11","pathname":"D/DA/DAVIDO/ExtUtils-CppGuess-0.11.tar.gz"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.12/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.12/MYMETA.json deleted file mode 100644 index 80ad4682..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.12/MYMETA.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "abstract" : "unknown", - "author" : [ - "unknown" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150001, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "ExtUtils-CppGuess", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Capture::Tiny" : "0", - "File::Basename" : "0" - } - }, - "test" : { - "requires" : { - "Capture::Tiny" : "0", - "Cwd" : "0", - "Data::Dumper" : "0", - "ExtUtils::MakeMaker" : "0", - "ExtUtils::Manifest" : "0", - "Fatal" : "0", - "File::Spec" : "0", - "Module::Build" : "0", - "Test::More" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "repository" : { - "type" : "git", - "url" : "git://github.com/tsee/extutils-cppguess", - "web" : "https://github.com/tsee/extutils-cppguess" - } - }, - "version" : "0.12", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.12/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.12/install.json deleted file mode 100644 index bd39e328..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-CppGuess-0.12/install.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"ExtUtils::CppGuess","pathname":"E/ET/ETJ/ExtUtils-CppGuess-0.12.tar.gz","target":"ExtUtils::CppGuess","version":"0.12","dist":"ExtUtils-CppGuess-0.12","provides":{"ExtUtils::CppGuess":{"file":"lib/ExtUtils/CppGuess.pm","version":"0.12"}}} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-MakeMaker-7.34/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-MakeMaker-7.34/MYMETA.json deleted file mode 100644 index 916a7d87..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-MakeMaker-7.34/MYMETA.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "abstract" : "Create a module Makefile", - "author" : [ - "Michael G Schwern " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.143240", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "ExtUtils-MakeMaker", - "no_index" : { - "directory" : [ - "t", - "inc", - "bundled", - "my" - ], - "package" : [ - "DynaLoader", - "in", - "version" - ] - }, - "prereqs" : { - "build" : { - "requires" : {} - }, - "configure" : { - "requires" : {} - }, - "runtime" : { - "requires" : { - "Data::Dumper" : "0", - "Encode" : "0", - "File::Basename" : "0", - "File::Spec" : "0.8", - "Pod::Man" : "0", - "perl" : "5.006" - } - }, - "test" : { - "requires" : {} - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "http://rt.cpan.org/NoAuth/Bugs.html?Dist=ExtUtils-MakeMaker" - }, - "homepage" : "https://metacpan.org/release/ExtUtils-MakeMaker", - "license" : [ - "http://dev.perl.org/licenses/" - ], - "repository" : { - "url" : "http://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker" - }, - "x_MailingList" : "makemaker@perl.org" - }, - "version" : "7.34" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-MakeMaker-7.34/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-MakeMaker-7.34/install.json deleted file mode 100644 index 2ecd2f81..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-MakeMaker-7.34/install.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"ExtUtils::MakeMaker","dist":"ExtUtils-MakeMaker-7.34","pathname":"B/BI/BINGOS/ExtUtils-MakeMaker-7.34.tar.gz","version":"7.34","target":"ExtUtils::MakeMaker","provides":{"ExtUtils::testlib":{"version":"7.34","file":"lib/ExtUtils/testlib.pm"},"ExtUtils::MM":{"file":"lib/ExtUtils/MM.pm","version":"7.34"},"ExtUtils::MM_Win95":{"version":"7.34","file":"lib/ExtUtils/MM_Win95.pm"},"ExtUtils::MM_NW5":{"version":"7.34","file":"lib/ExtUtils/MM_NW5.pm"},"ExtUtils::MakeMaker::Config":{"file":"lib/ExtUtils/MakeMaker/Config.pm","version":"7.34"},"ExtUtils::MakeMaker::charstar":{"version":"7.34","file":"lib/ExtUtils/MakeMaker/version/vpp.pm"},"ExtUtils::MM_AIX":{"file":"lib/ExtUtils/MM_AIX.pm","version":"7.34"},"ExtUtils::MM_UWIN":{"file":"lib/ExtUtils/MM_UWIN.pm","version":"7.34"},"ExtUtils::MM_Darwin":{"version":"7.34","file":"lib/ExtUtils/MM_Darwin.pm"},"MY":{"file":"lib/ExtUtils/MakeMaker.pm","version":"7.34"},"ExtUtils::MakeMaker::version::vpp":{"file":"lib/ExtUtils/MakeMaker/version/vpp.pm","version":"7.34"},"ExtUtils::MakeMaker::version::regex":{"version":"7.34","file":"lib/ExtUtils/MakeMaker/version/regex.pm"},"ExtUtils::MM_Win32":{"file":"lib/ExtUtils/MM_Win32.pm","version":"7.34"},"ExtUtils::MakeMaker::_version":{"version":"7.34","file":"lib/ExtUtils/MM_Unix.pm"},"ExtUtils::Mkbootstrap":{"file":"lib/ExtUtils/Mkbootstrap.pm","version":"7.34"},"ExtUtils::MakeMaker":{"file":"lib/ExtUtils/MakeMaker.pm","version":"7.34"},"ExtUtils::Command":{"version":"7.34","file":"lib/ExtUtils/Command.pm"},"ExtUtils::Liblist::Kid":{"file":"lib/ExtUtils/Liblist/Kid.pm","version":"7.34"},"ExtUtils::MM_OS2":{"version":"7.34","file":"lib/ExtUtils/MM_OS2.pm"},"MM":{"version":"7.34","file":"lib/ExtUtils/MM.pm"},"ExtUtils::MM_Cygwin":{"version":"7.34","file":"lib/ExtUtils/MM_Cygwin.pm"},"ExtUtils::MM_VMS":{"version":"7.34","file":"lib/ExtUtils/MM_VMS.pm"},"ExtUtils::MM_BeOS":{"file":"lib/ExtUtils/MM_BeOS.pm","version":"7.34"},"ExtUtils::MakeMaker::Locale":{"version":"7.34","file":"lib/ExtUtils/MakeMaker/Locale.pm"},"ExtUtils::MM_VOS":{"version":"7.34","file":"lib/ExtUtils/MM_VOS.pm"},"ExtUtils::Liblist":{"version":"7.34","file":"lib/ExtUtils/Liblist.pm"},"ExtUtils::Mksymlists":{"version":"7.34","file":"lib/ExtUtils/Mksymlists.pm"},"ExtUtils::MakeMaker::version":{"file":"lib/ExtUtils/MakeMaker/version.pm","version":"7.34"},"ExtUtils::MM_MacOS":{"version":"7.34","file":"lib/ExtUtils/MM_MacOS.pm"},"ExtUtils::Command::MM":{"file":"lib/ExtUtils/Command/MM.pm","version":"7.34"},"ExtUtils::MY":{"file":"lib/ExtUtils/MY.pm","version":"7.34"},"ExtUtils::MM_Any":{"version":"7.34","file":"lib/ExtUtils/MM_Any.pm"},"ExtUtils::MM_DOS":{"version":"7.34","file":"lib/ExtUtils/MM_DOS.pm"},"ExtUtils::MM_QNX":{"file":"lib/ExtUtils/MM_QNX.pm","version":"7.34"},"ExtUtils::MM_Unix":{"version":"7.34","file":"lib/ExtUtils/MM_Unix.pm"}}} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.30/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.30/MYMETA.json deleted file mode 100644 index 0979d463..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.30/MYMETA.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "abstract" : "converts Perl XS code into C code", - "author" : [ - "Ken Williams " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.150001, CPAN::Meta::Converter version 2.150010", - "license" : [ - "unknown" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "ExtUtils-ParseXS", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.46" - } - }, - "runtime" : { - "requires" : { - "Carp" : "0", - "Cwd" : "0", - "DynaLoader" : "0", - "Exporter" : "5.57", - "ExtUtils::CBuilder" : "0", - "ExtUtils::MakeMaker" : "6.46", - "File::Basename" : "0", - "File::Spec" : "0", - "Symbol" : "0", - "Test::More" : "0.47" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "http://rt.perl.org/rt3/" - }, - "repository" : { - "type" : "git", - "url" : "git://perl5.git.perl.org/gitroot/perl.git" - } - }, - "version" : "3.30", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.30/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.30/install.json deleted file mode 100644 index fb0d2012..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.30/install.json +++ /dev/null @@ -1 +0,0 @@ -{"provides":{"ExtUtils::ParseXS":{"file":"lib/ExtUtils/ParseXS.pm","version":"3.30"},"ExtUtils::Typemaps::OutputMap":{"version":"3.30","file":"lib/ExtUtils/Typemaps/OutputMap.pm"},"ExtUtils::ParseXS::Utilities":{"version":"3.30","file":"lib/ExtUtils/ParseXS/Utilities.pm"},"ExtUtils::Typemaps::InputMap":{"version":"3.30","file":"lib/ExtUtils/Typemaps/InputMap.pm"},"ExtUtils::ParseXS::Eval":{"file":"lib/ExtUtils/ParseXS/Eval.pm","version":"3.30"},"ExtUtils::Typemaps::Type":{"file":"lib/ExtUtils/Typemaps/Type.pm","version":"3.30"},"ExtUtils::Typemaps":{"version":"3.30","file":"lib/ExtUtils/Typemaps.pm"},"ExtUtils::ParseXS::Constants":{"version":"3.30","file":"lib/ExtUtils/ParseXS/Constants.pm"},"ExtUtils::Typemaps::Cmd":{"file":"lib/ExtUtils/Typemaps/Cmd.pm","version":"3.30"},"ExtUtils::ParseXS::CountLines":{"version":"3.30","file":"lib/ExtUtils/ParseXS/CountLines.pm"}},"name":"ExtUtils::ParseXS","pathname":"S/SM/SMUELLER/ExtUtils-ParseXS-3.30.tar.gz","dist":"ExtUtils-ParseXS-3.30","target":"ExtUtils::ParseXS","version":"3.30"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.35/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.35/MYMETA.json deleted file mode 100644 index cff802c6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.35/MYMETA.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "abstract" : "converts Perl XS code into C code", - "author" : [ - "Ken Williams " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter version 2.150005, CPAN::Meta::Converter version 2.150010", - "license" : [ - "unknown" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "ExtUtils-ParseXS", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.46" - } - }, - "runtime" : { - "requires" : { - "Carp" : "0", - "Cwd" : "0", - "DynaLoader" : "0", - "Exporter" : "5.57", - "ExtUtils::CBuilder" : "0", - "ExtUtils::MakeMaker" : "6.46", - "File::Basename" : "0", - "File::Spec" : "0", - "Symbol" : "0", - "Test::More" : "0.47" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "http://rt.perl.org/rt3/" - }, - "repository" : { - "type" : "git", - "url" : "git://perl5.git.perl.org/gitroot/perl.git" - } - }, - "version" : "3.35", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.35/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.35/install.json deleted file mode 100644 index f1ec62bd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-ParseXS-3.35/install.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"3.35","name":"ExtUtils::ParseXS","provides":{"ExtUtils::Typemaps::Cmd":{"file":"lib/ExtUtils/Typemaps/Cmd.pm","version":"3.35"},"ExtUtils::Typemaps::InputMap":{"file":"lib/ExtUtils/Typemaps/InputMap.pm","version":"3.35"},"ExtUtils::ParseXS::Constants":{"file":"lib/ExtUtils/ParseXS/Constants.pm","version":"3.35"},"ExtUtils::Typemaps":{"file":"lib/ExtUtils/Typemaps.pm","version":"3.35"},"ExtUtils::Typemaps::OutputMap":{"version":"3.35","file":"lib/ExtUtils/Typemaps/OutputMap.pm"},"ExtUtils::ParseXS::Eval":{"file":"lib/ExtUtils/ParseXS/Eval.pm","version":"3.35"},"ExtUtils::ParseXS::CountLines":{"file":"lib/ExtUtils/ParseXS/CountLines.pm","version":"3.35"},"ExtUtils::ParseXS::Utilities":{"version":"3.35","file":"lib/ExtUtils/ParseXS/Utilities.pm"},"ExtUtils::Typemaps::Type":{"file":"lib/ExtUtils/Typemaps/Type.pm","version":"3.35"},"ExtUtils::ParseXS":{"file":"lib/ExtUtils/ParseXS.pm","version":"3.35"}},"target":"ExtUtils::ParseXS","pathname":"S/SM/SMUELLER/ExtUtils-ParseXS-3.35.tar.gz","dist":"ExtUtils-ParseXS-3.35"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-Typemaps-Default-1.05/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-Typemaps-Default-1.05/MYMETA.json deleted file mode 100644 index 69793f12..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-Typemaps-Default-1.05/MYMETA.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "abstract" : "A set of useful typemaps", - "author" : [ - "Steffen Mueller " - ], - "dynamic_config" : 0, - "generated_by" : "Module::Build version 0.422", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "ExtUtils-Typemaps-Default", - "prereqs" : { - "build" : { - "requires" : { - "Module::Build" : "0" - } - }, - "runtime" : { - "requires" : { - "ExtUtils::Typemaps" : "3.18_03" - } - }, - "test" : { - "requires" : { - "Test::More" : "0" - } - } - }, - "provides" : { - "ExtUtils::Typemap::Basic" : { - "file" : "lib/ExtUtils/Typemap/Basic.pm", - "version" : "1.05" - }, - "ExtUtils::Typemap::Default" : { - "file" : "lib/ExtUtils/Typemap/Default.pm", - "version" : "1.05" - }, - "ExtUtils::Typemap::ObjectMap" : { - "file" : "lib/ExtUtils/Typemap/ObjectMap.pm", - "version" : "1.05" - }, - "ExtUtils::Typemap::STL" : { - "file" : "lib/ExtUtils/Typemap/STL.pm", - "version" : "1.05" - }, - "ExtUtils::Typemap::STL::String" : { - "file" : "lib/ExtUtils/Typemap/STL/String.pm", - "version" : "1.05" - }, - "ExtUtils::Typemap::STL::Vector" : { - "file" : "lib/ExtUtils/Typemap/STL/Vector.pm", - "version" : "1.05" - }, - "ExtUtils::Typemaps::Basic" : { - "file" : "lib/ExtUtils/Typemaps/Basic.pm", - "version" : "1.05" - }, - "ExtUtils::Typemaps::Default" : { - "file" : "lib/ExtUtils/Typemaps/Default.pm", - "version" : "1.05" - }, - "ExtUtils::Typemaps::ObjectMap" : { - "file" : "lib/ExtUtils/Typemaps/ObjectMap.pm", - "version" : "1.05" - }, - "ExtUtils::Typemaps::STL" : { - "file" : "lib/ExtUtils/Typemaps/STL.pm", - "version" : "1.05" - }, - "ExtUtils::Typemaps::STL::List" : { - "file" : "lib/ExtUtils/Typemaps/STL/List.pm", - "version" : "1.05" - }, - "ExtUtils::Typemaps::STL::String" : { - "file" : "lib/ExtUtils/Typemaps/STL/String.pm", - "version" : "1.05" - }, - "ExtUtils::Typemaps::STL::Vector" : { - "file" : "lib/ExtUtils/Typemaps/STL/Vector.pm", - "version" : "1.05" - } - }, - "release_status" : "stable", - "resources" : { - "license" : [ - "http://dev.perl.org/licenses/" - ] - }, - "version" : "1.05", - "x_serialization_backend" : "JSON::PP version 2.27400", - "x_test_requires" : { - "Test::More" : "0" - } -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-Typemaps-Default-1.05/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-Typemaps-Default-1.05/install.json deleted file mode 100644 index 9b340835..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-Typemaps-Default-1.05/install.json +++ /dev/null @@ -1 +0,0 @@ -{"target":"ExtUtils::Typemaps::Default","pathname":"S/SM/SMUELLER/ExtUtils-Typemaps-Default-1.05.tar.gz","name":"ExtUtils::Typemaps::Default","dist":"ExtUtils-Typemaps-Default-1.05","version":"1.05","provides":{"ExtUtils::Typemap::Basic":{"file":"lib/ExtUtils/Typemap/Basic.pm","version":"1.05"},"ExtUtils::Typemaps::STL::Vector":{"file":"lib/ExtUtils/Typemaps/STL/Vector.pm","version":"1.05"},"ExtUtils::Typemap::STL::String":{"file":"lib/ExtUtils/Typemap/STL/String.pm","version":"1.05"},"ExtUtils::Typemap::STL":{"version":"1.05","file":"lib/ExtUtils/Typemap/STL.pm"},"ExtUtils::Typemaps::STL":{"file":"lib/ExtUtils/Typemaps/STL.pm","version":"1.05"},"ExtUtils::Typemap::Default":{"version":"1.05","file":"lib/ExtUtils/Typemap/Default.pm"},"ExtUtils::Typemaps::STL::List":{"file":"lib/ExtUtils/Typemaps/STL/List.pm","version":"1.05"},"ExtUtils::Typemaps::ObjectMap":{"version":"1.05","file":"lib/ExtUtils/Typemaps/ObjectMap.pm"},"ExtUtils::Typemaps::Default":{"file":"lib/ExtUtils/Typemaps/Default.pm","version":"1.05"},"ExtUtils::Typemaps::Basic":{"version":"1.05","file":"lib/ExtUtils/Typemaps/Basic.pm"},"ExtUtils::Typemaps::STL::String":{"version":"1.05","file":"lib/ExtUtils/Typemaps/STL/String.pm"},"ExtUtils::Typemap::STL::Vector":{"version":"1.05","file":"lib/ExtUtils/Typemap/STL/Vector.pm"},"ExtUtils::Typemap::ObjectMap":{"file":"lib/ExtUtils/Typemap/ObjectMap.pm","version":"1.05"}}} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-XSpp-0.18/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-XSpp-0.18/MYMETA.json deleted file mode 100644 index 03e94471..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-XSpp-0.18/MYMETA.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "abstract" : "XS for C++", - "author" : [ - "Mattia Barbon " - ], - "dynamic_config" : 0, - "generated_by" : "Module::Build version 0.422", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "ExtUtils-XSpp", - "prereqs" : { - "build" : { - "requires" : { - "Test::Base" : "0", - "Test::Differences" : "0" - } - }, - "runtime" : { - "requires" : { - "Digest::MD5" : "2.0", - "ExtUtils::ParseXS" : "3.07", - "ExtUtils::Typemaps" : "1", - "perl" : "v5.6.1" - } - } - }, - "provides" : { - "ExtUtils::XSpp" : { - "file" : "lib/ExtUtils/XSpp.pm", - "version" : "0.18" - }, - "ExtUtils::XSpp::Cmd" : { - "file" : "lib/ExtUtils/XSpp/Cmd.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Driver" : { - "file" : "lib/ExtUtils/XSpp/Driver.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Exception" : { - "file" : "lib/ExtUtils/XSpp/Exception.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Exception::code" : { - "file" : "lib/ExtUtils/XSpp/Exception/code.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Exception::object" : { - "file" : "lib/ExtUtils/XSpp/Exception/object.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Exception::perlcode" : { - "file" : "lib/ExtUtils/XSpp/Exception/perlcode.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Exception::simple" : { - "file" : "lib/ExtUtils/XSpp/Exception/simple.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Exception::stdmessage" : { - "file" : "lib/ExtUtils/XSpp/Exception/stdmessage.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Exception::unknown" : { - "file" : "lib/ExtUtils/XSpp/Exception/unknown.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Grammar" : { - "file" : "lib/ExtUtils/XSpp/Grammar.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Grammar::YappDriver" : { - "file" : "lib/ExtUtils/XSpp/Grammar.pm", - "version" : "1.05" - }, - "ExtUtils::XSpp::Lexer" : { - "file" : "lib/ExtUtils/XSpp/Lexer.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node" : { - "file" : "lib/ExtUtils/XSpp/Node.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::Access" : { - "file" : "lib/ExtUtils/XSpp/Node/Access.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::Argument" : { - "file" : "lib/ExtUtils/XSpp/Node/Argument.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::Class" : { - "file" : "lib/ExtUtils/XSpp/Node/Class.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::Comment" : { - "file" : "lib/ExtUtils/XSpp/Node/Comment.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::Constructor" : { - "file" : "lib/ExtUtils/XSpp/Node/Constructor.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::Destructor" : { - "file" : "lib/ExtUtils/XSpp/Node/Destructor.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::Enum" : { - "file" : "lib/ExtUtils/XSpp/Node/Enum.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::EnumValue" : { - "file" : "lib/ExtUtils/XSpp/Node/EnumValue.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::File" : { - "file" : "lib/ExtUtils/XSpp/Node/File.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::Function" : { - "file" : "lib/ExtUtils/XSpp/Node/Function.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::Member" : { - "file" : "lib/ExtUtils/XSpp/Node/Member.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::Method" : { - "file" : "lib/ExtUtils/XSpp/Node/Method.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::Module" : { - "file" : "lib/ExtUtils/XSpp/Node/Module.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::Package" : { - "file" : "lib/ExtUtils/XSpp/Node/Package.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::PercAny" : { - "file" : "lib/ExtUtils/XSpp/Node/PercAny.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::Preprocessor" : { - "file" : "lib/ExtUtils/XSpp/Node/Preprocessor.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::Raw" : { - "file" : "lib/ExtUtils/XSpp/Node/Raw.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Node::Type" : { - "file" : "lib/ExtUtils/XSpp/Node/Type.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Parser" : { - "file" : "lib/ExtUtils/XSpp/Parser.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Plugin::feature::default_xs_typemap" : { - "file" : "lib/ExtUtils/XSpp/Plugin/feature/default_xs_typemap.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Typemap" : { - "file" : "lib/ExtUtils/XSpp/Typemap.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Typemap::parsed" : { - "file" : "lib/ExtUtils/XSpp/Typemap/parsed.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Typemap::reference" : { - "file" : "lib/ExtUtils/XSpp/Typemap/reference.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Typemap::simple" : { - "file" : "lib/ExtUtils/XSpp/Typemap/simple.pm", - "version" : "0" - }, - "ExtUtils::XSpp::Typemap::wrapper" : { - "file" : "lib/ExtUtils/XSpp/Typemap/wrapper.pm", - "version" : "0" - } - }, - "release_status" : "stable", - "resources" : { - "license" : [ - "http://dev.perl.org/licenses/" - ] - }, - "version" : "0.18", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-XSpp-0.18/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-XSpp-0.18/install.json deleted file mode 100644 index 9c6e6e33..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/ExtUtils-XSpp-0.18/install.json +++ /dev/null @@ -1 +0,0 @@ -{"provides":{"ExtUtils::XSpp::Node::Function":{"file":"lib/ExtUtils/XSpp/Node/Function.pm","version":"0"},"ExtUtils::XSpp::Cmd":{"version":"0","file":"lib/ExtUtils/XSpp/Cmd.pm"},"ExtUtils::XSpp::Node::Method":{"file":"lib/ExtUtils/XSpp/Node/Method.pm","version":"0"},"ExtUtils::XSpp::Node::Enum":{"version":"0","file":"lib/ExtUtils/XSpp/Node/Enum.pm"},"ExtUtils::XSpp::Exception::perlcode":{"version":"0","file":"lib/ExtUtils/XSpp/Exception/perlcode.pm"},"ExtUtils::XSpp::Node::Access":{"version":"0","file":"lib/ExtUtils/XSpp/Node/Access.pm"},"ExtUtils::XSpp::Node":{"file":"lib/ExtUtils/XSpp/Node.pm","version":"0"},"ExtUtils::XSpp::Typemap::reference":{"file":"lib/ExtUtils/XSpp/Typemap/reference.pm","version":"0"},"ExtUtils::XSpp::Node::Class":{"version":"0","file":"lib/ExtUtils/XSpp/Node/Class.pm"},"ExtUtils::XSpp::Typemap":{"version":"0","file":"lib/ExtUtils/XSpp/Typemap.pm"},"ExtUtils::XSpp::Node::Module":{"version":"0","file":"lib/ExtUtils/XSpp/Node/Module.pm"},"ExtUtils::XSpp::Node::Preprocessor":{"version":"0","file":"lib/ExtUtils/XSpp/Node/Preprocessor.pm"},"ExtUtils::XSpp::Node::File":{"version":"0","file":"lib/ExtUtils/XSpp/Node/File.pm"},"ExtUtils::XSpp::Exception::object":{"version":"0","file":"lib/ExtUtils/XSpp/Exception/object.pm"},"ExtUtils::XSpp::Exception::simple":{"file":"lib/ExtUtils/XSpp/Exception/simple.pm","version":"0"},"ExtUtils::XSpp::Exception::stdmessage":{"file":"lib/ExtUtils/XSpp/Exception/stdmessage.pm","version":"0"},"ExtUtils::XSpp::Exception":{"version":"0","file":"lib/ExtUtils/XSpp/Exception.pm"},"ExtUtils::XSpp::Driver":{"file":"lib/ExtUtils/XSpp/Driver.pm","version":"0"},"ExtUtils::XSpp::Grammar::YappDriver":{"file":"lib/ExtUtils/XSpp/Grammar.pm","version":"1.05"},"ExtUtils::XSpp::Node::PercAny":{"version":"0","file":"lib/ExtUtils/XSpp/Node/PercAny.pm"},"ExtUtils::XSpp::Node::Raw":{"file":"lib/ExtUtils/XSpp/Node/Raw.pm","version":"0"},"ExtUtils::XSpp::Exception::code":{"file":"lib/ExtUtils/XSpp/Exception/code.pm","version":"0"},"ExtUtils::XSpp::Exception::unknown":{"file":"lib/ExtUtils/XSpp/Exception/unknown.pm","version":"0"},"ExtUtils::XSpp::Node::Package":{"version":"0","file":"lib/ExtUtils/XSpp/Node/Package.pm"},"ExtUtils::XSpp::Node::Comment":{"file":"lib/ExtUtils/XSpp/Node/Comment.pm","version":"0"},"ExtUtils::XSpp::Parser":{"file":"lib/ExtUtils/XSpp/Parser.pm","version":"0"},"ExtUtils::XSpp::Node::Type":{"file":"lib/ExtUtils/XSpp/Node/Type.pm","version":"0"},"ExtUtils::XSpp::Plugin::feature::default_xs_typemap":{"version":"0","file":"lib/ExtUtils/XSpp/Plugin/feature/default_xs_typemap.pm"},"ExtUtils::XSpp::Lexer":{"file":"lib/ExtUtils/XSpp/Lexer.pm","version":"0"},"ExtUtils::XSpp::Grammar":{"version":"0","file":"lib/ExtUtils/XSpp/Grammar.pm"},"ExtUtils::XSpp::Node::Constructor":{"version":"0","file":"lib/ExtUtils/XSpp/Node/Constructor.pm"},"ExtUtils::XSpp::Typemap::parsed":{"version":"0","file":"lib/ExtUtils/XSpp/Typemap/parsed.pm"},"ExtUtils::XSpp::Typemap::simple":{"file":"lib/ExtUtils/XSpp/Typemap/simple.pm","version":"0"},"ExtUtils::XSpp::Typemap::wrapper":{"version":"0","file":"lib/ExtUtils/XSpp/Typemap/wrapper.pm"},"ExtUtils::XSpp::Node::EnumValue":{"file":"lib/ExtUtils/XSpp/Node/EnumValue.pm","version":"0"},"ExtUtils::XSpp::Node::Destructor":{"file":"lib/ExtUtils/XSpp/Node/Destructor.pm","version":"0"},"ExtUtils::XSpp::Node::Member":{"file":"lib/ExtUtils/XSpp/Node/Member.pm","version":"0"},"ExtUtils::XSpp":{"version":"0.18","file":"lib/ExtUtils/XSpp.pm"},"ExtUtils::XSpp::Node::Argument":{"file":"lib/ExtUtils/XSpp/Node/Argument.pm","version":"0"}},"name":"ExtUtils::XSpp","target":"ExtUtils::XSpp","pathname":"S/SM/SMUELLER/ExtUtils-XSpp-0.18.tar.gz","dist":"ExtUtils-XSpp-0.18","version":"0.18"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-ArgvFile-1.11/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-ArgvFile-1.11/MYMETA.json deleted file mode 100644 index 9834ceca..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-ArgvFile-1.11/MYMETA.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "abstract" : "unknown", - "author" : [ - "unknown" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.32, CPAN::Meta::Converter version 2.150010", - "license" : [ - "artistic_1" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Getopt-ArgvFile", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Test::Harness" : "1.25", - "Test::More" : "0.11", - "Text::ParseWords" : "3.1" - } - } - }, - "release_status" : "stable", - "version" : "1.11", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-ArgvFile-1.11/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-ArgvFile-1.11/install.json deleted file mode 100644 index 6ee93c7d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-ArgvFile-1.11/install.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"Getopt::ArgvFile","provides":{"Getopt::ArgvFile":{"file":"ArgvFile.pm","version":"1.11"}},"dist":"Getopt-ArgvFile-1.11","pathname":"J/JS/JSTENZEL/Getopt-ArgvFile-1.11.tar.gz","target":"Getopt::ArgvFile","version":"1.11"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-Long-2.50/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-Long-2.50/MYMETA.json deleted file mode 100644 index 1d7da523..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-Long-2.50/MYMETA.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "abstract" : "Module to handle parsing command line options", - "author" : [ - "Johan Vromans (jvromans@squirrel.nl)" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150005, CPAN::Meta::Converter version 2.150010", - "license" : [ - "unknown" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Getopt-Long", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Pod::Usage" : "1.14" - } - } - }, - "release_status" : "stable", - "resources" : { - "repository" : { - "type" : "git", - "url" : "https://github.com/sciurius/perl-Getopt-Long.git", - "web" : "https://github.com/sciurius/perl-Getopt-Long" - } - }, - "version" : "2.50", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-Long-2.50/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-Long-2.50/install.json deleted file mode 100644 index 8c5fb353..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Getopt-Long-2.50/install.json +++ /dev/null @@ -1 +0,0 @@ -{"pathname":"J/JV/JV/Getopt-Long-2.50.tar.gz","name":"Getopt::Long","target":"Getopt::Long","version":"2.5","provides":{"Getopt::Long":{"file":"lib/Getopt/Long.pm","version":"2.5"},"Getopt::Long::Parser":{"file":"lib/Getopt/Long.pm","version":"2.5"},"Getopt::Long::CallBack":{"file":"lib/Getopt/Long.pm","version":"2.5"}},"dist":"Getopt-Long-2.50"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Growl-GNTP-0.21/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Growl-GNTP-0.21/MYMETA.json deleted file mode 100644 index 8b82e761..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Growl-GNTP-0.21/MYMETA.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "abstract" : "Perl implementation of GNTP Protocol (Client Part)", - "author" : [ - "Yasuhiro Matsumoto " - ], - "dynamic_config" : 0, - "generated_by" : "Minilla/v3.0.1, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Growl-GNTP", - "no_index" : { - "directory" : [ - "t", - "xt", - "inc", - "share", - "eg", - "examples", - "author", - "builder" - ] - }, - "prereqs" : { - "configure" : { - "requires" : { - "Module::Build::Tiny" : "0.035" - } - }, - "develop" : { - "requires" : { - "Test::CPAN::Meta" : "0", - "Test::MinimumVersion::Fast" : "0.04", - "Test::PAUSE::Permissions" : "0.04", - "Test::Pod" : "1.41", - "Test::Spellunker" : "v0.2.7" - } - }, - "runtime" : { - "requires" : { - "Crypt::CBC" : "2.29", - "Data::UUID" : "0.149", - "Digest::MD5" : "2.36", - "Digest::SHA" : "5.45", - "Filter::Util::Call" : "0" - } - } - }, - "provides" : { - "Growl::GNTP" : { - "file" : "lib/Growl/GNTP.pm", - "version" : "0.21" - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/mattn/p5-Growl-GNTP/issues" - }, - "homepage" : "https://github.com/mattn/p5-Growl-GNTP", - "repository" : { - "type" : "git", - "url" : "git://github.com/mattn/p5-Growl-GNTP.git", - "web" : "https://github.com/mattn/p5-Growl-GNTP" - } - }, - "version" : "0.21", - "x_contributors" : [ - "unknown ", - "Yuki Ibe ", - "mattn ", - "Marc Thielemann ", - "sugyan ", - "Henrik Brix Andersen ", - "John Morrissey ", - "Kent Fredric " - ], - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Growl-GNTP-0.21/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Growl-GNTP-0.21/install.json deleted file mode 100644 index 5a05d166..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Growl-GNTP-0.21/install.json +++ /dev/null @@ -1 +0,0 @@ -{"dist":"Growl-GNTP-0.21","name":"Growl::GNTP","version":"0.21","pathname":"M/MA/MATTN/Growl-GNTP-0.21.tar.gz","provides":{"Growl::GNTP":{"file":"lib/Growl/GNTP.pm","version":"0.21"}},"target":"Growl::GNTP"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-CaptureOutput-1.1104/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-CaptureOutput-1.1104/MYMETA.json deleted file mode 100644 index 466dd667..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-CaptureOutput-1.1104/MYMETA.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "abstract" : "capture STDOUT and STDERR from Perl code, subprocesses or XS", - "author" : [ - "Simon Flack ", - "David Golden " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 5.031, CPAN::Meta::Converter version 2.143240, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "IO-CaptureOutput", - "no_index" : { - "directory" : [ - "t", - "xt", - "examples", - "corpus" - ], - "package" : [ - "DB" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.17" - } - }, - "develop" : { - "requires" : { - "Dist::Zilla" : "5", - "Dist::Zilla::Plugin::OSPrereqs" : "0", - "Dist::Zilla::Plugin::RemovePrereqs" : "0", - "Dist::Zilla::PluginBundle::DAGOLDEN" : "0.072", - "File::Spec" : "0", - "File::Temp" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Pod::Coverage::TrustPod" : "0", - "Test::CPAN::Meta" : "0", - "Test::More" : "0", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Spelling" : "0.12", - "Test::Version" : "1" - } - }, - "runtime" : { - "requires" : { - "Carp" : "0", - "Exporter" : "0", - "File::Basename" : "0", - "File::Spec" : "3.27", - "File::Temp" : "0.16", - "Symbol" : "0", - "perl" : "5.006", - "strict" : "0", - "vars" : "0", - "warnings" : "0" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "3.27", - "IO::File" : "0", - "Test::More" : "0.62" - } - } - }, - "provides" : { - "IO::CaptureOutput" : { - "file" : "lib/IO/CaptureOutput.pm", - "version" : "1.1104" - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/dagolden/IO-CaptureOutput/issues" - }, - "homepage" : "https://github.com/dagolden/IO-CaptureOutput", - "repository" : { - "type" : "git", - "url" : "https://github.com/dagolden/IO-CaptureOutput.git", - "web" : "https://github.com/dagolden/IO-CaptureOutput" - } - }, - "version" : "1.1104", - "x_authority" : "cpan:DAGOLDEN", - "x_contributors" : [ - "Mike Latimer ", - "Olivier Mengué ", - "Tony Cook " - ], - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-CaptureOutput-1.1104/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-CaptureOutput-1.1104/install.json deleted file mode 100644 index 27479ad3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-CaptureOutput-1.1104/install.json +++ /dev/null @@ -1 +0,0 @@ -{"dist":"IO-CaptureOutput-1.1104","version":"1.1104","target":"IO::CaptureOutput","name":"IO::CaptureOutput","pathname":"D/DA/DAGOLDEN/IO-CaptureOutput-1.1104.tar.gz","provides":{"IO::CaptureOutput":{"file":"lib/IO/CaptureOutput.pm","version":"1.1104"}}} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-stringy-2.111/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-stringy-2.111/MYMETA.json deleted file mode 100644 index 3a5f4de0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-stringy-2.111/MYMETA.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "abstract" : "unknown", - "author" : [ - "unknown" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.57_05, CPAN::Meta::Converter version 2.150010", - "license" : [ - "unknown" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "IO-stringy", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : {} - } - }, - "release_status" : "stable", - "version" : "2.111", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-stringy-2.111/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-stringy-2.111/install.json deleted file mode 100644 index e1951c1c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/IO-stringy-2.111/install.json +++ /dev/null @@ -1 +0,0 @@ -{"target":"IO::Scalar","provides":{"IO::ScalarArray":{"version":"2.111","file":"lib/IO/ScalarArray.pm"},"IO::Stringy":{"file":"lib/IO/Stringy.pm","version":"2.111"},"IO::WrapTie::Slave":{"file":"lib/IO/WrapTie.pm","version":"2.111"},"IO::InnerFile":{"version":"2.111","file":"lib/IO/InnerFile.pm"},"IO::AtomicFile":{"file":"lib/IO/AtomicFile.pm","version":"2.111"},"IO::Scalar":{"version":"2.111","file":"lib/IO/Scalar.pm"},"IO::WrapTie":{"version":"2.111","file":"lib/IO/WrapTie.pm"},"IO::Clever":{"version":"1.01","file":"contrib/Clever.pm"},"IO::Lines":{"version":"2.111","file":"lib/IO/Lines.pm"},"IO::Wrap":{"file":"lib/IO/Wrap.pm","version":"2.111"},"IO::WrapTie::Master":{"file":"lib/IO/WrapTie.pm","version":"2.111"}},"pathname":"D/DS/DSKOLL/IO-stringy-2.111.tar.gz","name":"IO::Stringy","version":"2.111","dist":"IO-stringy-2.111"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Mock-Config-0.03/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Mock-Config-0.03/MYMETA.json deleted file mode 100644 index 450ee897..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Mock-Config-0.03/MYMETA.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "abstract" : "temporarily set Config or XSConfig values", - "author" : [ - "Reini Urban " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.1, CPAN::Meta::Converter version 2.150005, CPAN::Meta::Converter version 2.150010", - "license" : [ - "artistic_2" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Mock-Config", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "Test::More" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "perl" : "5.006" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/perl11/Mock-Config/issues" - }, - "license" : [ - "http://dev.perl.org/licenses/" - ], - "repository" : { - "url" : "https://github.com/perl11/Mock-Config" - } - }, - "version" : "0.03", - "x_serialization_backend" : "JSON::PP version 2.27400", - "x_suggests" : { - "XSConfig" : "6.19" - } -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Mock-Config-0.03/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Mock-Config-0.03/install.json deleted file mode 100644 index bced37d0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Mock-Config-0.03/install.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"Mock::Config","target":"Mock::Config","version":"0.03","pathname":"R/RU/RURBAN/Mock-Config-0.03.tar.gz","dist":"Mock-Config-0.03","provides":{"Mock::Config":{"file":"lib/Mock/Config.pm","version":"0.03"}}} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-Build-WithXSpp-0.14/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-Build-WithXSpp-0.14/MYMETA.json deleted file mode 100644 index e2a72cdc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-Build-WithXSpp-0.14/MYMETA.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "abstract" : "XS++ enhanced flavour of Module::Build", - "author" : [ - "Steffen Mueller " - ], - "dynamic_config" : 0, - "generated_by" : "Module::Build version 0.422", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Module-Build-WithXSpp", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::CBuilder" : "0", - "Module::Build" : "0.26" - } - }, - "configure" : { - "requires" : { - "Module::Build" : "0.26" - } - }, - "runtime" : { - "requires" : { - "Digest::MD5" : "0", - "ExtUtils::CBuilder" : "0", - "ExtUtils::CppGuess" : "0.04", - "ExtUtils::ParseXS" : "2.2205", - "ExtUtils::Typemaps" : "1.00", - "ExtUtils::XSpp" : "0.11", - "Module::Build" : "0.26" - } - }, - "test" : { - "requires" : { - "Test::More" : "0" - } - } - }, - "provides" : { - "Module::Build::WithXSpp" : { - "file" : "lib/Module/Build/WithXSpp.pm", - "version" : "0.14" - } - }, - "release_status" : "stable", - "resources" : { - "license" : [ - "http://dev.perl.org/licenses/" - ] - }, - "version" : "0.14", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-Build-WithXSpp-0.14/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-Build-WithXSpp-0.14/install.json deleted file mode 100644 index d681eee4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-Build-WithXSpp-0.14/install.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"0.14","target":"Module::Build::WithXSpp","pathname":"S/SM/SMUELLER/Module-Build-WithXSpp-0.14.tar.gz","dist":"Module-Build-WithXSpp-0.14","name":"Module::Build::WithXSpp","provides":{"Module::Build::WithXSpp":{"version":"0.14","file":"lib/Module/Build/WithXSpp.pm"}}} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-ScanDeps-1.23/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-ScanDeps-1.23/MYMETA.json deleted file mode 100644 index 92074dae..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-ScanDeps-1.23/MYMETA.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "abstract" : "Recursively scan Perl code for dependencies", - "author" : [ - "Audrey Tang " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.1001, CPAN::Meta::Converter version 2.150005, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Module-ScanDeps", - "no_index" : { - "directory" : [ - "t", - "inc" - ], - "package" : [ - "Module::ScanDeps::Cache", - "Module::ScanDeps::DataFeed" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "File::Spec" : "0", - "File::Temp" : "0", - "Getopt::Long" : "0", - "Module::Metadata" : "0", - "Text::ParseWords" : "0", - "perl" : "5.008001", - "version" : "0" - } - }, - "test" : { - "requires" : { - "Test::More" : "0", - "Test::Requires" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "repository" : { - "type" : "git", - "url" : "git://github.com/rschupp/Module-ScanDeps.git", - "web" : "https://github.com/rschupp/Module-ScanDeps" - } - }, - "version" : "1.23", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-ScanDeps-1.23/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-ScanDeps-1.23/install.json deleted file mode 100644 index 1857fa0b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Module-ScanDeps-1.23/install.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"Module::ScanDeps","provides":{"Module::ScanDeps":{"version":"1.23","file":"lib/Module/ScanDeps.pm"}},"dist":"Module-ScanDeps-1.23","pathname":"R/RS/RSCHUPP/Module-ScanDeps-1.23.tar.gz","target":"Module::ScanDeps","version":"1.23"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003002/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003002/MYMETA.json deleted file mode 100644 index e620df82..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003002/MYMETA.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "abstract" : "Minimalist Object Orientation (with Moose compatibility)", - "author" : [ - "mst - Matt S. Trout (cpan:MSTROUT) " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150005, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Moo", - "no_index" : { - "directory" : [ - "t", - "xt" - ] - }, - "prereqs" : { - "build" : { - "requires" : {} - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "develop" : { - "requires" : { - "Class::Tiny" : "1.001", - "Moose" : "0", - "MooseX::Types::Common::Numeric" : "0", - "Mouse" : "0", - "Type::Tiny" : "0", - "bareword::filehandles" : "0", - "indirect" : "0", - "multidimensional" : "0", - "namespace::autoclean" : "0", - "namespace::clean" : "0", - "strictures" : "2" - } - }, - "runtime" : { - "recommends" : { - "Class::XSAccessor" : "1.18", - "Sub::Name" : "0.08", - "strictures" : "2" - }, - "requires" : { - "Class::Method::Modifiers" : "1.1", - "Devel::GlobalDestruction" : "0.11", - "Exporter" : "5.57", - "Module::Runtime" : "0.014", - "Role::Tiny" : "2.000004", - "Scalar::Util" : "0", - "Sub::Defer" : "2.003001", - "Sub::Quote" : "2.003001", - "perl" : "5.006" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "0", - "CPAN::Meta::Requirements" : "0" - }, - "requires" : { - "Test::Fatal" : "0.003", - "Test::More" : "0.94" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "mailto" : "bug-Moo@rt.cpan.org", - "web" : "https://rt.cpan.org/Public/Dist/Display.html?Name=Moo" - }, - "license" : [ - "http://dev.perl.org/licenses/" - ], - "repository" : { - "type" : "git", - "url" : "https://github.com/moose/Moo.git", - "web" : "https://github.com/moose/Moo" - }, - "x_IRC" : "irc://irc.perl.org/#moose" - }, - "version" : "2.003002", - "x_authority" : "cpan:MSTROUT", - "x_breaks" : { - "App::Commando" : "<= 0.012", - "File::DataClass" : "<= 0.54.1", - "HTML::Restrict" : "== 2.1.5", - "MooX::Emulate::Class::Accessor::Fast" : "<= 0.02", - "MySQL::Workbench::Parser" : "<= 0.05", - "WebService::Shutterstock" : "<= 0.006" - }, - "x_cpants" : { - "ignore" : { - "use_strict" : "internal module used to apply strict", - "use_warnings" : "internal module used to apply warnings" - } - }, - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003002/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003002/install.json deleted file mode 100644 index 0418eda0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003002/install.json +++ /dev/null @@ -1 +0,0 @@ -{"dist":"Moo-2.003002","target":"Moo","version":"2.003002","pathname":"H/HA/HAARG/Moo-2.003002.tar.gz","provides":{"Moo::Object":{"file":"lib/Moo/Object.pm"},"Moo":{"file":"lib/Moo.pm","version":"2.003002"},"Moo::_strictures":{"file":"lib/Moo/_strictures.pm"},"Moo::HandleMoose::FakeMetaClass":{"file":"lib/Moo/HandleMoose/FakeMetaClass.pm"},"oo":{"file":"lib/oo.pm"},"Method::Generate::BuildAll":{"file":"lib/Method/Generate/BuildAll.pm"},"Method::Generate::Accessor":{"file":"lib/Method/Generate/Accessor.pm"},"Method::Generate::DemolishAll":{"file":"lib/Method/Generate/DemolishAll.pm"},"Moo::_Utils":{"file":"lib/Moo/_Utils.pm"},"Moo::HandleMoose::FakeConstructor":{"file":"lib/Moo/HandleMoose.pm"},"Moo::HandleMoose":{"file":"lib/Moo/HandleMoose.pm"},"Moo::HandleMoose::_TypeMap":{"file":"lib/Moo/HandleMoose/_TypeMap.pm"},"Moo::_mro":{"file":"lib/Moo/_mro.pm"},"Moo::sification":{"file":"lib/Moo/sification.pm"},"Moo::Role":{"file":"lib/Moo/Role.pm","version":"2.003002"},"Method::Generate::Constructor":{"file":"lib/Method/Generate/Constructor.pm"}},"name":"Moo"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003004/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003004/MYMETA.json deleted file mode 100644 index 0c5c6e64..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003004/MYMETA.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "abstract" : "Minimalist Object Orientation (with Moose compatibility)", - "author" : [ - "mst - Matt S. Trout (cpan:MSTROUT) " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.3, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Moo", - "no_index" : { - "directory" : [ - "t", - "xt" - ] - }, - "prereqs" : { - "build" : { - "requires" : {} - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "develop" : { - "requires" : { - "Class::Tiny" : "1.001", - "Moose" : "0", - "MooseX::Types::Common::Numeric" : "0", - "Mouse" : "0", - "Type::Tiny" : "0", - "bareword::filehandles" : "0", - "indirect" : "0", - "multidimensional" : "0", - "namespace::autoclean" : "0", - "namespace::clean" : "0", - "strictures" : "2" - } - }, - "runtime" : { - "recommends" : { - "Class::XSAccessor" : "1.18", - "Sub::Name" : "0.08", - "strictures" : "2" - }, - "requires" : { - "Class::Method::Modifiers" : "1.1", - "Devel::GlobalDestruction" : "0.11", - "Exporter" : "5.57", - "Module::Runtime" : "0.014", - "Role::Tiny" : "2.000004", - "Scalar::Util" : "0", - "Sub::Defer" : "2.003001", - "Sub::Quote" : "2.003001", - "perl" : "5.006" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "0", - "CPAN::Meta::Requirements" : "0" - }, - "requires" : { - "Test::Fatal" : "0.003", - "Test::More" : "0.94" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "mailto" : "bug-Moo@rt.cpan.org", - "web" : "https://rt.cpan.org/Public/Dist/Display.html?Name=Moo" - }, - "license" : [ - "http://dev.perl.org/licenses/" - ], - "repository" : { - "type" : "git", - "url" : "https://github.com/moose/Moo.git", - "web" : "https://github.com/moose/Moo" - }, - "x_IRC" : "irc://irc.perl.org/#moose" - }, - "version" : "2.003004", - "x_authority" : "cpan:MSTROUT", - "x_breaks" : { - "App::Commando" : "<= 0.012", - "File::DataClass" : "<= 0.54.1", - "HTML::Restrict" : "== 2.1.5", - "MooX::Emulate::Class::Accessor::Fast" : "<= 0.02", - "MySQL::Workbench::Parser" : "<= 0.05", - "WebService::Shutterstock" : "<= 0.006" - }, - "x_cpants" : { - "ignore" : { - "use_strict" : "internal module used to apply strict", - "use_warnings" : "internal module used to apply warnings" - } - }, - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003004/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003004/install.json deleted file mode 100644 index f98fc958..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Moo-2.003004/install.json +++ /dev/null @@ -1 +0,0 @@ -{"pathname":"H/HA/HAARG/Moo-2.003004.tar.gz","name":"Moo","version":"2.003004","provides":{"Moo":{"file":"lib/Moo.pm","version":"2.003004"},"Method::Generate::Accessor":{"file":"lib/Method/Generate/Accessor.pm"},"Method::Generate::Constructor":{"file":"lib/Method/Generate/Constructor.pm"},"Method::Generate::BuildAll":{"file":"lib/Method/Generate/BuildAll.pm"},"Moo::HandleMoose::FakeMetaClass":{"file":"lib/Moo/HandleMoose/FakeMetaClass.pm"},"Moo::Role":{"file":"lib/Moo/Role.pm","version":"2.003004"},"Moo::HandleMoose::_TypeMap":{"file":"lib/Moo/HandleMoose/_TypeMap.pm"},"Moo::HandleMoose":{"file":"lib/Moo/HandleMoose.pm"},"oo":{"file":"lib/oo.pm"},"Moo::HandleMoose::FakeConstructor":{"file":"lib/Moo/HandleMoose.pm"},"Method::Generate::DemolishAll":{"file":"lib/Method/Generate/DemolishAll.pm"},"Moo::_strictures":{"file":"lib/Moo/_strictures.pm"},"Moo::sification":{"file":"lib/Moo/sification.pm"},"Moo::_mro":{"file":"lib/Moo/_mro.pm"},"Moo::_Utils":{"file":"lib/Moo/_Utils.pm"},"Moo::Object":{"file":"lib/Moo/Object.pm"}},"target":"Moo","dist":"Moo-2.003004"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-Bonjour-0.96/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-Bonjour-0.96/MYMETA.json deleted file mode 100644 index 7d4a339c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-Bonjour-0.96/MYMETA.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "abstract" : "Module for DNS service discovery (Apple's Bonjour)", - "author" : [ - "George Chlipala " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.32, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Net-Bonjour", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Net::DNS" : "0.5", - "Socket" : "1.75" - } - } - }, - "release_status" : "stable", - "version" : "0.96", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-Bonjour-0.96/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-Bonjour-0.96/install.json deleted file mode 100644 index 4b700abf..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-Bonjour-0.96/install.json +++ /dev/null @@ -1 +0,0 @@ -{"dist":"Net-Bonjour-0.96","target":"Net::Bonjour","name":"Net::Bonjour","version":"0.96","pathname":"C/CH/CHLIGE/Net-Bonjour-0.96.tar.gz","provides":{"Net::Rendezvous":{"file":"lib/Net/Rendezvous.pm","version":"0.92"},"Net::Bonjour::Entry":{"file":"lib/Net/Bonjour/Entry.pm"},"Net::Bonjour":{"file":"lib/Net/Bonjour.pm","version":"0.96"},"Net::Rendezvous::Entry":{"file":"lib/Net/Rendezvous/Entry.pm"}}} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-DNS-1.09/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-DNS-1.09/MYMETA.json deleted file mode 100644 index 00e79e05..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-DNS-1.09/MYMETA.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "abstract" : "Perl Interface to the Domain Name System", - "author" : [ - "Olaf Kolkman et al" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.18, CPAN::Meta::Converter version 2.143240, CPAN::Meta::Converter version 2.150010", - "license" : [ - "mit" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Net-DNS", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "recommends" : { - "Digest::BubbleBabble" : "0.01", - "Digest::GOST" : "0.06", - "IO::Socket::IP" : "0.32", - "Net::LibIDN" : "0.12", - "Scalar::Util" : "1.25" - }, - "requires" : { - "Digest::HMAC" : "1.03", - "Digest::MD5" : "2.13", - "Digest::SHA" : "5.23", - "File::Spec" : "0.86", - "IO::Socket" : "1.16", - "MIME::Base64" : "2.11", - "Test::More" : "0.52", - "Time::Local" : "1.19", - "Win32::API" : "0.55", - "Win32::IPHelper" : "0.07", - "Win32::TieRegistry" : "0.24", - "perl" : "5.006" - } - } - }, - "release_status" : "stable", - "version" : "1.09", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-DNS-1.09/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-DNS-1.09/install.json deleted file mode 100644 index 371321ed..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Net-DNS-1.09/install.json +++ /dev/null @@ -1 +0,0 @@ -{"dist":"Net-DNS-1.09","provides":{"Net::DNS::RR::GPOS":{"version":"1528","file":"lib/Net/DNS/RR/GPOS.pm"},"Net::DNS::RR::NID":{"version":"1528","file":"lib/Net/DNS/RR/NID.pm"},"Net::DNS::RR::DHCID":{"version":"1528","file":"lib/Net/DNS/RR/DHCID.pm"},"Net::DNS::Question":{"file":"lib/Net/DNS/Question.pm","version":"1530"},"Net::DNS::Resolver::android":{"file":"lib/Net/DNS/Resolver/android.pm","version":"1527"},"Net::DNS::RR::L32":{"file":"lib/Net/DNS/RR/L32.pm","version":"1528"},"Net::DNS::DomainName1035":{"file":"lib/Net/DNS/DomainName.pm","version":"1555"},"Net::DNS::RR::SRV":{"file":"lib/Net/DNS/RR/SRV.pm","version":"1528"},"Net::DNS::RR::MR":{"version":"1528","file":"lib/Net/DNS/RR/MR.pm"},"Net::DNS::Resolver::MSWin32":{"version":"1527","file":"lib/Net/DNS/Resolver/MSWin32.pm"},"Net::DNS::RR::MB":{"file":"lib/Net/DNS/RR/MB.pm","version":"1528"},"Net::DNS::RR::OPT::PADDING":{"version":"1555","file":"lib/Net/DNS/RR/OPT.pm"},"Net::DNS::RR::CDS":{"file":"lib/Net/DNS/RR/CDS.pm","version":"1552"},"Net::DNS::RR::KEY":{"file":"lib/Net/DNS/RR/KEY.pm","version":"1528"},"Net::DNS::RR::SSHFP":{"file":"lib/Net/DNS/RR/SSHFP.pm","version":"1528"},"Net::DNS::RR::CNAME":{"file":"lib/Net/DNS/RR/CNAME.pm","version":"1528"},"Net::DNS::RR::CAA":{"version":"1528","file":"lib/Net/DNS/RR/CAA.pm"},"Net::DNS::RR::OPT::DAU":{"version":"1555","file":"lib/Net/DNS/RR/OPT.pm"},"Net::DNS::RR":{"version":"1552","file":"lib/Net/DNS/RR.pm"},"Net::DNS::RR::NULL":{"file":"lib/Net/DNS/RR/NULL.pm","version":"1528"},"Net::DNS::RR::ISDN":{"file":"lib/Net/DNS/RR/ISDN.pm","version":"1528"},"Net::DNS":{"version":"1.09","file":"lib/Net/DNS.pm"},"Net::DNS::RR::NSEC3":{"version":"1528","file":"lib/Net/DNS/RR/NSEC3.pm"},"Net::DNS::RR::URI":{"version":"1528","file":"lib/Net/DNS/RR/URI.pm"},"Net::DNS::Packet":{"version":"1546","file":"lib/Net/DNS/Packet.pm"},"Net::DNS::RR::TSIG":{"file":"lib/Net/DNS/RR/TSIG.pm","version":"1528"},"Net::DNS::RR::PX":{"file":"lib/Net/DNS/RR/PX.pm","version":"1528"},"Net::DNS::RR::MX":{"version":"1528","file":"lib/Net/DNS/RR/MX.pm"},"Net::DNS::Resolver::Recurse":{"file":"lib/Net/DNS/Resolver/Recurse.pm","version":"1555"},"Net::DNS::DomainName":{"version":"1555","file":"lib/Net/DNS/DomainName.pm"},"Net::DNS::RR::MINFO":{"version":"1528","file":"lib/Net/DNS/RR/MINFO.pm"},"Net::DNS::RR::MG":{"version":"1528","file":"lib/Net/DNS/RR/MG.pm"},"Net::DNS::RR::L64":{"file":"lib/Net/DNS/RR/L64.pm","version":"1528"},"Net::DNS::Mailbox1035":{"file":"lib/Net/DNS/Mailbox.pm","version":"1527"},"Net::DNS::Update":{"version":"1527","file":"lib/Net/DNS/Update.pm"},"Net::DNS::RR::SPF":{"file":"lib/Net/DNS/RR/SPF.pm","version":"1528"},"Net::DNS::RR::CERT":{"file":"lib/Net/DNS/RR/CERT.pm","version":"1552"},"Net::DNS::RR::AFSDB":{"version":"1528","file":"lib/Net/DNS/RR/AFSDB.pm"},"Net::DNS::RR::EUI48":{"file":"lib/Net/DNS/RR/EUI48.pm","version":"1528"},"Net::DNS::Resolver":{"version":"1527","file":"lib/Net/DNS/Resolver.pm"},"Net::DNS::RR::LOC":{"file":"lib/Net/DNS/RR/LOC.pm","version":"1528"},"Net::DNS::RR::LP":{"file":"lib/Net/DNS/RR/LP.pm","version":"1528"},"Net::DNS::RR::AAAA":{"version":"1528","file":"lib/Net/DNS/RR/AAAA.pm"},"Net::DNS::Resolver::cygwin":{"version":"1527","file":"lib/Net/DNS/Resolver/cygwin.pm"},"Net::DNS::RR::DS":{"file":"lib/Net/DNS/RR/DS.pm","version":"1552"},"Net::DNS::RR::OPENPGPKEY":{"version":"1528","file":"lib/Net/DNS/RR/OPENPGPKEY.pm"},"Net::DNS::RR::SIG":{"version":"1552","file":"lib/Net/DNS/RR/SIG.pm"},"Net::DNS::RR::DLV":{"file":"lib/Net/DNS/RR/DLV.pm","version":"1528"},"Net::DNS::RR::OPT::CLIENT_SUBNET":{"version":"1555","file":"lib/Net/DNS/RR/OPT.pm"},"Net::DNS::RR::HIP":{"version":"1528","file":"lib/Net/DNS/RR/HIP.pm"},"Net::DNS::RR::OPT::EXPIRE":{"version":"1555","file":"lib/Net/DNS/RR/OPT.pm"},"Net::DNS::ZoneFile":{"file":"lib/Net/DNS/ZoneFile.pm","version":"1526"},"Net::DNS::RR::CSYNC":{"file":"lib/Net/DNS/RR/CSYNC.pm","version":"1528"},"Net::DNS::RR::TXT":{"version":"1528","file":"lib/Net/DNS/RR/TXT.pm"},"Net::DNS::RR::SMIMEA":{"file":"lib/Net/DNS/RR/SMIMEA.pm","version":"1528"},"Net::DNS::RR::PTR":{"version":"1528","file":"lib/Net/DNS/RR/PTR.pm"},"Net::DNS::RR::OPT::KEY_TAG":{"file":"lib/Net/DNS/RR/OPT.pm","version":"1555"},"Net::DNS::RR::OPT::DHU":{"version":"1555","file":"lib/Net/DNS/RR/OPT.pm"},"Net::DNS::RR::NAPTR":{"file":"lib/Net/DNS/RR/NAPTR.pm","version":"1528"},"Net::DNS::RR::HINFO":{"version":"1528","file":"lib/Net/DNS/RR/HINFO.pm"},"Net::DNS::RR::TLSA":{"version":"1528","file":"lib/Net/DNS/RR/TLSA.pm"},"Net::DNS::RR::APL::Item":{"version":"1548","file":"lib/Net/DNS/RR/APL.pm"},"Net::DNS::RR::DNSKEY":{"file":"lib/Net/DNS/RR/DNSKEY.pm","version":"1552"},"Net::DNS::RR::DNAME":{"file":"lib/Net/DNS/RR/DNAME.pm","version":"1528"},"Net::DNS::ZoneFile::Generator":{"file":"lib/Net/DNS/ZoneFile.pm","version":"1526"},"Net::DNS::RR::NSEC3PARAM":{"version":"1528","file":"lib/Net/DNS/RR/NSEC3PARAM.pm"},"Net::DNS::RR::RP":{"version":"1528","file":"lib/Net/DNS/RR/RP.pm"},"Net::DNS::RR::KX":{"file":"lib/Net/DNS/RR/KX.pm","version":"1528"},"Net::DNS::RR::EUI64":{"version":"1528","file":"lib/Net/DNS/RR/EUI64.pm"},"Net::DNS::Mailbox2535":{"file":"lib/Net/DNS/Mailbox.pm","version":"1527"},"Net::DNS::Mailbox":{"version":"1527","file":"lib/Net/DNS/Mailbox.pm"},"Net::DNS::Resolver::os2":{"version":"1527","file":"lib/Net/DNS/Resolver/os2.pm"},"Net::DNS::RR::X25":{"version":"1528","file":"lib/Net/DNS/RR/X25.pm"},"Net::DNS::RR::IPSECKEY":{"version":"1552","file":"lib/Net/DNS/RR/IPSECKEY.pm"},"Net::DNS::Nameserver":{"file":"lib/Net/DNS/Nameserver.pm","version":"1537"},"Net::DNS::RR::A":{"version":"1528","file":"lib/Net/DNS/RR/A.pm"},"Net::DNS::RR::OPT::N3U":{"file":"lib/Net/DNS/RR/OPT.pm","version":"1555"},"Net::DNS::RR::TKEY":{"version":"1528","file":"lib/Net/DNS/RR/TKEY.pm"},"Net::DNS::Header":{"file":"lib/Net/DNS/Header.pm","version":"1527"},"Net::DNS::RR::NS":{"version":"1528","file":"lib/Net/DNS/RR/NS.pm"},"Net::DNS::Resolver::UNIX":{"version":"1527","file":"lib/Net/DNS/Resolver/UNIX.pm"},"Net::DNS::RR::RRSIG":{"file":"lib/Net/DNS/RR/RRSIG.pm","version":"1552"},"Net::DNS::RR::OPT::CHAIN":{"file":"lib/Net/DNS/RR/OPT.pm","version":"1555"},"Net::DNS::RR::APL":{"file":"lib/Net/DNS/RR/APL.pm","version":"1548"},"Net::DNS::Resolver::Base":{"version":"1545","file":"lib/Net/DNS/Resolver/Base.pm"},"Net::DNS::Domain":{"version":"1555","file":"lib/Net/DNS/Domain.pm"},"Net::DNS::Text":{"version":"1555","file":"lib/Net/DNS/Text.pm"},"Net::DNS::RR::SOA":{"file":"lib/Net/DNS/RR/SOA.pm","version":"1546"},"Net::DNS::RR::OPT::TCP_KEEPALIVE":{"file":"lib/Net/DNS/RR/OPT.pm","version":"1555"},"Net::DNS::RR::RT":{"version":"1528","file":"lib/Net/DNS/RR/RT.pm"},"Net::DNS::ZoneFile::Text":{"version":"1526","file":"lib/Net/DNS/ZoneFile.pm"},"Net::DNS::RR::CDNSKEY":{"file":"lib/Net/DNS/RR/CDNSKEY.pm","version":"1552"},"Net::DNS::Parameters":{"version":"1552","file":"lib/Net/DNS/Parameters.pm"},"Net::DNS::RR::OPT::COOKIE":{"version":"1555","file":"lib/Net/DNS/RR/OPT.pm"},"Net::DNS::RR::NSEC":{"version":"1528","file":"lib/Net/DNS/RR/NSEC.pm"},"Net::DNS::RR::OPT":{"version":"1555","file":"lib/Net/DNS/RR/OPT.pm"},"Net::DNS::DomainName2535":{"file":"lib/Net/DNS/DomainName.pm","version":"1555"}},"pathname":"N/NL/NLNETLABS/Net-DNS-1.09.tar.gz","version":"1.09","name":"Net::DNS","target":"Net::DNS"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-1.014/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-1.014/MYMETA.json deleted file mode 100644 index d8c166e4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-1.014/MYMETA.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "abstract" : "Perl Archive Tookit", - "author" : [ - "Audrey Tang " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.1002, CPAN::Meta::Converter version 2.150005, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "PAR", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.59" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Archive::Zip" : "1", - "AutoLoader" : "5.66_02", - "Compress::Zlib" : "1.16", - "File::Temp" : "0.05", - "PAR::Dist" : "0.32", - "perl" : "5.008001" - } - } - }, - "release_status" : "stable", - "version" : "1.014", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-1.014/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-1.014/install.json deleted file mode 100644 index fa27c0a7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-1.014/install.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"PAR","dist":"PAR-1.014","provides":{"PAR::SetupProgname":{"file":"lib/PAR/SetupProgname.pm","version":"1.002"},"PAR::SetupTemp":{"file":"lib/PAR/SetupTemp.pm","version":"1.002"},"PAR::Heavy":{"version":"0.12","file":"lib/PAR/Heavy.pm"},"PAR":{"version":"1.014","file":"lib/PAR.pm"}},"pathname":"R/RS/RSCHUPP/PAR-1.014.tar.gz","version":"1.014","target":"PAR"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-Dist-0.49/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-Dist-0.49/MYMETA.json deleted file mode 100644 index 4bc94ba9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-Dist-0.49/MYMETA.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "abstract" : "Create and manipulate PAR distributions", - "author" : [ - "Audrey Tang " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.6302, CPAN::Meta::Converter version 2.120921, CPAN::Meta::Converter version 2.150010", - "license" : [ - "unknown" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "PAR-Dist", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "File::Find" : "0", - "File::Path" : "0", - "File::Spec" : "0", - "File::Temp" : "0" - } - } - }, - "release_status" : "stable", - "version" : "0.49", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-Dist-0.49/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-Dist-0.49/install.json deleted file mode 100644 index bf0f58f3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PAR-Dist-0.49/install.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"0.49","target":"PAR::Dist","name":"PAR::Dist","dist":"PAR-Dist-0.49","provides":{"PAR::Dist":{"file":"lib/PAR/Dist.pm","version":"0.49"}},"pathname":"R/RS/RSCHUPP/PAR-Dist-0.49.tar.gz"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Parse-Binary-0.11/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Parse-Binary-0.11/MYMETA.json deleted file mode 100644 index fb6c55b5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Parse-Binary-0.11/MYMETA.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "abstract" : "Binary data structure parser", - "author" : [ - "Audrey Tang " - ], - "dynamic_config" : 0, - "generated_by" : "Module::Install version 0.63, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Parse-Binary", - "no_index" : { - "directory" : [ - "inc", - "t" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "recommends" : { - "Scalar::Util" : "0" - }, - "requires" : { - "ExtUtils::MakeMaker" : "7.24" - } - } - }, - "release_status" : "stable", - "version" : "0.10", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Parse-Binary-0.11/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Parse-Binary-0.11/install.json deleted file mode 100644 index 6a7f50d2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Parse-Binary-0.11/install.json +++ /dev/null @@ -1 +0,0 @@ -{"pathname":"A/AU/AUDREYT/Parse-Binary-0.11.tar.gz","dist":"Parse-Binary-0.11","provides":{"Parse::Binary":{"file":"lib/Parse/Binary.pm","version":"0.11"},"Parse::Binary::FixedFormat::Variants":{"file":"lib/Parse/Binary/FixedFormat/Variants.pm","version":"0.03"},"Parse::Binary::FixedFormat":{"version":"0.05","file":"lib/Parse/Binary/FixedFormat.pm"}},"name":"Parse::Binary","version":"0.11","target":"Parse::Binary"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PathTools-3.74/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PathTools-3.74/MYMETA.json deleted file mode 100644 index 2ed1c2f8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PathTools-3.74/MYMETA.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "abstract" : "Tools for working with directory and file names", - "author" : [ - "Perl 5 Porters" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "PathTools", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Carp" : "0", - "File::Basename" : "0", - "Scalar::Util" : "0", - "Test::More" : "0.88" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://rt.perl.org/rt3/" - }, - "homepage" : "http://dev.perl.org/", - "repository" : { - "type" : "git", - "url" : "git://perl5.git.perl.org/perl.git" - } - }, - "version" : "3.74", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PathTools-3.74/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PathTools-3.74/install.json deleted file mode 100644 index 08bd33e3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/PathTools-3.74/install.json +++ /dev/null @@ -1 +0,0 @@ -{"dist":"PathTools-3.74","target":"File::Spec","name":"Cwd","version":"3.74","provides":{"File::Spec::VMS":{"version":"3.74","file":"lib/File/Spec/VMS.pm"},"File::Spec::Unix":{"file":"lib/File/Spec/Unix.pm","version":"3.74"},"File::Spec::Win32":{"version":"3.74","file":"lib/File/Spec/Win32.pm"},"Cwd":{"file":"Cwd.pm","version":"3.74"},"File::Spec::Mac":{"version":"3.74","file":"lib/File/Spec/Mac.pm"},"File::Spec::OS2":{"version":"3.74","file":"lib/File/Spec/OS2.pm"},"File::Spec::AmigaOS":{"file":"lib/File/Spec/AmigaOS.pm","version":"3.74"},"File::Spec":{"version":"3.74","file":"lib/File/Spec.pm"},"File::Spec::Epoc":{"version":"3.74","file":"lib/File/Spec/Epoc.pm"},"File::Spec::Cygwin":{"file":"lib/File/Spec/Cygwin.pm","version":"3.74"},"File::Spec::Functions":{"version":"3.74","file":"lib/File/Spec/Functions.pm"}},"pathname":"X/XS/XSAWYERX/PathTools-3.74.tar.gz"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Scalar-List-Utils-1.50/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Scalar-List-Utils-1.50/MYMETA.json deleted file mode 100644 index 5a6940e2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Scalar-List-Utils-1.50/MYMETA.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "abstract" : "Common Scalar and List utility subroutines", - "author" : [ - "Graham Barr " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Scalar-List-Utils", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Test::More" : "0", - "perl" : "5.006" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "mailto" : "bug-Scalar-List-Utils@rt.cpan.org", - "web" : "https://rt.cpan.org/Public/Dist/Display.html?Name=Scalar-List-Utils" - }, - "repository" : { - "type" : "git", - "url" : "https://github.com/Scalar-List-Utils/Scalar-List-Utils.git", - "web" : "https://github.com/Scalar-List-Utils/Scalar-List-Utils" - } - }, - "version" : "1.50", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Scalar-List-Utils-1.50/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Scalar-List-Utils-1.50/install.json deleted file mode 100644 index feb66f80..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Scalar-List-Utils-1.50/install.json +++ /dev/null @@ -1 +0,0 @@ -{"pathname":"P/PE/PEVANS/Scalar-List-Utils-1.50.tar.gz","version":"1.50","target":"Scalar::Util","provides":{"List::Util":{"version":"1.50","file":"lib/List/Util.pm"},"List::Util::XS":{"file":"lib/List/Util/XS.pm","version":"1.50"},"Sub::Util":{"file":"lib/Sub/Util.pm","version":"1.50"},"Scalar::Util":{"file":"lib/Scalar/Util.pm","version":"1.50"}},"dist":"Scalar-List-Utils-1.50","name":"List::Util"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Differences-0.64/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Differences-0.64/MYMETA.json deleted file mode 100644 index c0cd1e22..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Differences-0.64/MYMETA.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "abstract" : "Test strings and data structures and show differences if not ok", - "author" : [ - "David Cantrell " - ], - "dynamic_config" : 0, - "generated_by" : "Module::Build version 0.422", - "license" : [ - "unknown" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Test-Differences", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "runtime" : { - "requires" : { - "Capture::Tiny" : 0.24, - "Data::Dumper" : 2.126, - "Test::More" : "0.88", - "Text::Diff" : 0.35 - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/Ovid/Test-Differences/issues" - }, - "repository" : { - "url" : "https://github.com/Ovid/Test-Differences" - } - }, - "version" : "0.64", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Differences-0.64/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Differences-0.64/install.json deleted file mode 100644 index f7b485d3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Differences-0.64/install.json +++ /dev/null @@ -1 +0,0 @@ -{"pathname":"D/DC/DCANTRELL/Test-Differences-0.64.tar.gz","dist":"Test-Differences-0.64","version":"0.64","target":"Test::Differences","name":"Test::Differences","provides":{"Test::Differences":{"file":"lib/Test/Differences.pm","version":"0.64"}}} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.39/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.39/MYMETA.json deleted file mode 100644 index 326d6230..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.39/MYMETA.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "abstract" : "unknown", - "author" : [ - "unknown" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150005, CPAN::Meta::Converter version 2.150010", - "keywords" : [ - "TAP", - "test", - "harness", - "prove" - ], - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Test-Harness", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "recommends" : { - "Pod::Usage" : "1.12" - }, - "requires" : {} - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness" - }, - "homepage" : "http://testanything.org/", - "repository" : { - "url" : "http://github.com/Perl-Toolchain-Gang/Test-Harness/tree/master" - } - }, - "version" : "3.39", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.39/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.39/install.json deleted file mode 100644 index cb4f54f0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.39/install.json +++ /dev/null @@ -1 +0,0 @@ -{"dist":"Test-Harness-3.39","pathname":"L/LE/LEONT/Test-Harness-3.39.tar.gz","name":"Test::Harness","provides":{"TAP::Parser::YAMLish::Reader":{"file":"lib/TAP/Parser/YAMLish/Reader.pm","version":"3.39"},"TAP::Formatter::Session":{"file":"lib/TAP/Formatter/Session.pm","version":"3.39"},"TAP::Formatter::Console::Session":{"file":"lib/TAP/Formatter/Console/Session.pm","version":"3.39"},"TAP::Parser::YAMLish::Writer":{"version":"3.39","file":"lib/TAP/Parser/YAMLish/Writer.pm"},"TAP::Parser::Iterator::Process":{"version":"3.39","file":"lib/TAP/Parser/Iterator/Process.pm"},"Harness::Hook":{"file":"examples/harness-hook/lib/Harness/Hook.pm"},"TAP::Parser::Multiplexer":{"version":"3.39","file":"lib/TAP/Parser/Multiplexer.pm"},"Test::Harness":{"file":"lib/Test/Harness.pm","version":"3.39"},"TAP::Parser::Source":{"version":"3.39","file":"lib/TAP/Parser/Source.pm"},"TAP::Parser::SourceHandler::File":{"file":"lib/TAP/Parser/SourceHandler/File.pm","version":"3.39"},"App::Prove::State::Result::Test":{"file":"lib/App/Prove/State/Result/Test.pm","version":"3.39"},"TAP::Parser::SourceHandler::RawTAP":{"file":"lib/TAP/Parser/SourceHandler/RawTAP.pm","version":"3.39"},"TAP::Formatter::Base":{"file":"lib/TAP/Formatter/Base.pm","version":"3.39"},"TAP::Parser::Result::Version":{"file":"lib/TAP/Parser/Result/Version.pm","version":"3.39"},"TAP::Parser::Result::YAML":{"file":"lib/TAP/Parser/Result/YAML.pm","version":"3.39"},"TAP::Parser::SourceHandler::Executable":{"file":"lib/TAP/Parser/SourceHandler/Executable.pm","version":"3.39"},"TAP::Base":{"version":"3.39","file":"lib/TAP/Base.pm"},"TAP::Formatter::Console::ParallelSession":{"version":"3.39","file":"lib/TAP/Formatter/Console/ParallelSession.pm"},"TAP::Parser::Scheduler::Spinner":{"file":"lib/TAP/Parser/Scheduler/Spinner.pm","version":"3.39"},"TAP::Parser::SourceHandler":{"file":"lib/TAP/Parser/SourceHandler.pm","version":"3.39"},"TAP::Object":{"file":"lib/TAP/Object.pm","version":"3.39"},"TAP::Parser::Result::Test":{"file":"lib/TAP/Parser/Result/Test.pm","version":"3.39"},"TAP::Parser::Result::Bailout":{"file":"lib/TAP/Parser/Result/Bailout.pm","version":"3.39"},"TAP::Parser::Scheduler":{"file":"lib/TAP/Parser/Scheduler.pm","version":"3.39"},"TAP::Harness::Env":{"file":"lib/TAP/Harness/Env.pm","version":"3.39"},"TAP::Parser::Result":{"version":"3.39","file":"lib/TAP/Parser/Result.pm"},"TAP::Parser::SourceHandler::Handle":{"file":"lib/TAP/Parser/SourceHandler/Handle.pm","version":"3.39"},"TAP::Parser::Grammar":{"version":"3.39","file":"lib/TAP/Parser/Grammar.pm"},"TAP::Parser::Iterator::Stream":{"file":"lib/TAP/Parser/Iterator/Stream.pm","version":"3.39"},"TAP::Parser::Result::Plan":{"file":"lib/TAP/Parser/Result/Plan.pm","version":"3.39"},"App::Prove::State":{"version":"3.39","file":"lib/App/Prove/State.pm"},"App::Prove":{"version":"3.39","file":"lib/App/Prove.pm"},"TAP::Formatter::File":{"version":"3.39","file":"lib/TAP/Formatter/File.pm"},"TAP::Parser::Scheduler::Job":{"file":"lib/TAP/Parser/Scheduler/Job.pm","version":"3.39"},"TAP::Parser::ResultFactory":{"file":"lib/TAP/Parser/ResultFactory.pm","version":"3.39"},"TAP::Harness":{"version":"3.39","file":"lib/TAP/Harness.pm"},"TAP::Parser::Result::Comment":{"file":"lib/TAP/Parser/Result/Comment.pm","version":"3.39"},"TAP::Parser::SourceHandler::Perl":{"version":"3.39","file":"lib/TAP/Parser/SourceHandler/Perl.pm"},"TAP::Parser::Result::Unknown":{"file":"lib/TAP/Parser/Result/Unknown.pm","version":"3.39"},"TAP::Parser::Result::Pragma":{"version":"3.39","file":"lib/TAP/Parser/Result/Pragma.pm"},"TAP::Formatter::Color":{"version":"3.39","file":"lib/TAP/Formatter/Color.pm"},"TAP::Formatter::Console":{"version":"3.39","file":"lib/TAP/Formatter/Console.pm"},"App::Prove::State::Result":{"version":"3.39","file":"lib/App/Prove/State/Result.pm"},"TAP::Parser::Iterator":{"version":"3.39","file":"lib/TAP/Parser/Iterator.pm"},"TAP::Parser::IteratorFactory":{"version":"3.39","file":"lib/TAP/Parser/IteratorFactory.pm"},"TAP::Parser":{"version":"3.39","file":"lib/TAP/Parser.pm"},"TAP::Formatter::File::Session":{"version":"3.39","file":"lib/TAP/Formatter/File/Session.pm"},"TAP::Parser::Iterator::Array":{"file":"lib/TAP/Parser/Iterator/Array.pm","version":"3.39"},"TAP::Parser::Aggregator":{"version":"3.39","file":"lib/TAP/Parser/Aggregator.pm"}},"version":"3.39","target":"Test::Harness"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.42/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.42/MYMETA.json deleted file mode 100644 index 52cb95f0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.42/MYMETA.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "abstract" : "unknown", - "author" : [ - "unknown" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150005, CPAN::Meta::Converter version 2.150010", - "keywords" : [ - "TAP", - "test", - "harness", - "prove" - ], - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Test-Harness", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "recommends" : { - "Pod::Usage" : "1.12" - }, - "requires" : {} - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "http://rt.cpan.org/Public/Dist/Display.html?Name=Test-Harness" - }, - "homepage" : "http://testanything.org/", - "repository" : { - "url" : "http://github.com/Perl-Toolchain-Gang/Test-Harness/tree/master" - } - }, - "version" : "3.42", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.42/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.42/install.json deleted file mode 100644 index 577d0a4e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Harness-3.42/install.json +++ /dev/null @@ -1 +0,0 @@ -{"target":"Test::Harness","name":"Test::Harness","dist":"Test-Harness-3.42","provides":{"TAP::Object":{"file":"lib/TAP/Object.pm","version":"3.42"},"TAP::Parser::Grammar":{"version":"3.42","file":"lib/TAP/Parser/Grammar.pm"},"TAP::Parser::Result::Test":{"version":"3.42","file":"lib/TAP/Parser/Result/Test.pm"},"TAP::Formatter::Base":{"version":"3.42","file":"lib/TAP/Formatter/Base.pm"},"App::Prove":{"version":"3.42","file":"lib/App/Prove.pm"},"TAP::Formatter::Console::Session":{"file":"lib/TAP/Formatter/Console/Session.pm","version":"3.42"},"TAP::Formatter::Session":{"file":"lib/TAP/Formatter/Session.pm","version":"3.42"},"TAP::Parser::Iterator::Stream":{"version":"3.42","file":"lib/TAP/Parser/Iterator/Stream.pm"},"TAP::Parser::SourceHandler::Perl":{"version":"3.42","file":"lib/TAP/Parser/SourceHandler/Perl.pm"},"TAP::Parser::SourceHandler":{"version":"3.42","file":"lib/TAP/Parser/SourceHandler.pm"},"TAP::Harness::Env":{"file":"lib/TAP/Harness/Env.pm","version":"3.42"},"TAP::Parser::Iterator::Array":{"version":"3.42","file":"lib/TAP/Parser/Iterator/Array.pm"},"TAP::Parser::Multiplexer":{"file":"lib/TAP/Parser/Multiplexer.pm","version":"3.42"},"TAP::Parser::SourceHandler::Executable":{"file":"lib/TAP/Parser/SourceHandler/Executable.pm","version":"3.42"},"TAP::Parser::Scheduler":{"version":"3.42","file":"lib/TAP/Parser/Scheduler.pm"},"TAP::Parser::Result::Unknown":{"version":"3.42","file":"lib/TAP/Parser/Result/Unknown.pm"},"TAP::Parser::Iterator::Process":{"file":"lib/TAP/Parser/Iterator/Process.pm","version":"3.42"},"TAP::Formatter::Console":{"version":"3.42","file":"lib/TAP/Formatter/Console.pm"},"TAP::Parser":{"file":"lib/TAP/Parser.pm","version":"3.42"},"TAP::Parser::Scheduler::Job":{"version":"3.42","file":"lib/TAP/Parser/Scheduler/Job.pm"},"App::Prove::State":{"file":"lib/App/Prove/State.pm","version":"3.42"},"TAP::Parser::YAMLish::Writer":{"file":"lib/TAP/Parser/YAMLish/Writer.pm","version":"3.42"},"TAP::Formatter::Color":{"version":"3.42","file":"lib/TAP/Formatter/Color.pm"},"TAP::Formatter::File":{"version":"3.42","file":"lib/TAP/Formatter/File.pm"},"TAP::Parser::Aggregator":{"file":"lib/TAP/Parser/Aggregator.pm","version":"3.42"},"TAP::Parser::Result::Plan":{"version":"3.42","file":"lib/TAP/Parser/Result/Plan.pm"},"App::Prove::State::Result":{"version":"3.42","file":"lib/App/Prove/State/Result.pm"},"App::Prove::State::Result::Test":{"version":"3.42","file":"lib/App/Prove/State/Result/Test.pm"},"TAP::Parser::Result::Comment":{"file":"lib/TAP/Parser/Result/Comment.pm","version":"3.42"},"TAP::Parser::Scheduler::Spinner":{"version":"3.42","file":"lib/TAP/Parser/Scheduler/Spinner.pm"},"TAP::Parser::SourceHandler::Handle":{"file":"lib/TAP/Parser/SourceHandler/Handle.pm","version":"3.42"},"TAP::Parser::ResultFactory":{"version":"3.42","file":"lib/TAP/Parser/ResultFactory.pm"},"TAP::Parser::SourceHandler::File":{"version":"3.42","file":"lib/TAP/Parser/SourceHandler/File.pm"},"Test::Harness":{"file":"lib/Test/Harness.pm","version":"3.42"},"TAP::Base":{"file":"lib/TAP/Base.pm","version":"3.42"},"TAP::Parser::YAMLish::Reader":{"version":"3.42","file":"lib/TAP/Parser/YAMLish/Reader.pm"},"TAP::Parser::Result::Pragma":{"file":"lib/TAP/Parser/Result/Pragma.pm","version":"3.42"},"TAP::Formatter::Console::ParallelSession":{"file":"lib/TAP/Formatter/Console/ParallelSession.pm","version":"3.42"},"Harness::Hook":{"file":"examples/harness-hook/lib/Harness/Hook.pm"},"TAP::Parser::Iterator":{"version":"3.42","file":"lib/TAP/Parser/Iterator.pm"},"TAP::Parser::IteratorFactory":{"file":"lib/TAP/Parser/IteratorFactory.pm","version":"3.42"},"TAP::Parser::Result":{"file":"lib/TAP/Parser/Result.pm","version":"3.42"},"TAP::Parser::SourceHandler::RawTAP":{"version":"3.42","file":"lib/TAP/Parser/SourceHandler/RawTAP.pm"},"TAP::Harness":{"version":"3.42","file":"lib/TAP/Harness.pm"},"TAP::Parser::Source":{"file":"lib/TAP/Parser/Source.pm","version":"3.42"},"TAP::Parser::Result::Version":{"file":"lib/TAP/Parser/Result/Version.pm","version":"3.42"},"TAP::Formatter::File::Session":{"version":"3.42","file":"lib/TAP/Formatter/File/Session.pm"},"TAP::Parser::Result::Bailout":{"file":"lib/TAP/Parser/Result/Bailout.pm","version":"3.42"},"TAP::Parser::Result::YAML":{"file":"lib/TAP/Parser/Result/YAML.pm","version":"3.42"}},"version":"3.42","pathname":"L/LE/LEONT/Test-Harness-3.42.tar.gz"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302078/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302078/MYMETA.json deleted file mode 100644 index f640a134..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302078/MYMETA.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "abstract" : "Basic utilities for writing tests.", - "author" : [ - "Chad Granum " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.008, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Test-Simple", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "develop" : { - "requires" : { - "Test::Pod" : "1.41", - "Test::Spelling" : "0.12" - } - }, - "runtime" : { - "requires" : { - "File::Spec" : "0", - "File::Temp" : "0", - "PerlIO" : "0", - "Scalar::Util" : "1.13", - "Storable" : "0", - "perl" : "5.008001", - "utf8" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "http://github.com/Test-More/test-more/issues" - }, - "repository" : { - "type" : "git", - "url" : "http://github.com/Test-More/test-more/" - } - }, - "version" : "1.302078", - "x_breaks" : { - "Log::Dispatch::Config::TestLog" : "<= 0.02", - "Net::BitTorrent" : "<= 0.052", - "Test::Able" : "<= 0.11", - "Test::Aggregate" : "<= 0.373", - "Test::Alien" : "<= 0.04", - "Test::Builder::Clutch" : "<= 0.07", - "Test::Clustericious::Cluster" : "<= 0.30", - "Test::Dist::VersionSync" : "<= v1.1.4", - "Test::Exception" : "<= 0.42", - "Test::Flatten" : "<= 0.11", - "Test::Group" : "<= 0.20", - "Test::Modern" : "<= 0.012", - "Test::Moose" : "<= 2.1209", - "Test::More::Prefix" : "<= 0.005", - "Test::ParallelSubtest" : "<= 0.05", - "Test::Pretty" : "<= 0.32", - "Test::SharedFork" : "<= 0.34", - "Test::UseAllModules" : ">= 0.12, <= 0.14", - "Test::Wrapper" : "<= v0.3.0" - }, - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302078/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302078/install.json deleted file mode 100644 index 7b7e7b2f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302078/install.json +++ /dev/null @@ -1 +0,0 @@ -{"dist":"Test-Simple-1.302078","provides":{"Test::Builder::Formatter":{"version":"1.302078","file":"lib/Test/Builder/Formatter.pm"},"Test::Builder::TodoDiag":{"file":"lib/Test/Builder/TodoDiag.pm","version":"1.302078"},"Test2::Formatter":{"version":"1.302078","file":"lib/Test2/Formatter.pm"},"Test2::Util":{"file":"lib/Test2/Util.pm","version":"1.302078"},"ok":{"version":"1.302078","file":"lib/ok.pm"},"Test2::Event::Waiting":{"file":"lib/Test2/Event/Waiting.pm","version":"1.302078"},"Test2":{"version":"1.302078","file":"lib/Test2.pm"},"Test2::Event::Encoding":{"version":"1.302078","file":"lib/Test2/Event/Encoding.pm"},"Test2::Util::ExternalMeta":{"file":"lib/Test2/Util/ExternalMeta.pm","version":"1.302078"},"Test2::Event::Plan":{"version":"1.302078","file":"lib/Test2/Event/Plan.pm"},"Test2::Event::TAP::Version":{"version":"1.302078","file":"lib/Test2/Event/TAP/Version.pm"},"Test2::Event::Info":{"file":"lib/Test2/Event/Info.pm","version":"1.302078"},"Test2::Event::Generic":{"version":"1.302078","file":"lib/Test2/Event/Generic.pm"},"Test2::Tools::Tiny":{"file":"lib/Test2/Tools/Tiny.pm","version":"1.302078"},"Test2::Hub::Subtest":{"version":"1.302078","file":"lib/Test2/Hub/Subtest.pm"},"Test2::Util::Trace":{"version":"1.302078","file":"lib/Test2/Util/Trace.pm"},"Test::Simple":{"file":"lib/Test/Simple.pm","version":"1.302078"},"Test::More":{"version":"1.302078","file":"lib/Test/More.pm"},"Test::Builder":{"file":"lib/Test/Builder.pm","version":"1.302078"},"Test::Tester::Capture":{"version":"1.302078","file":"lib/Test/Tester/Capture.pm"},"Test2::Event::Subtest":{"version":"1.302078","file":"lib/Test2/Event/Subtest.pm"},"Test2::API::Context":{"version":"1.302078","file":"lib/Test2/API/Context.pm"},"Test::Builder::IO::Scalar":{"version":"2.113","file":"lib/Test/Builder/IO/Scalar.pm"},"Test2::Hub::Interceptor":{"file":"lib/Test2/Hub/Interceptor.pm","version":"1.302078"},"Test::Tester::Delegate":{"file":"lib/Test/Tester/Delegate.pm","version":"1.302078"},"Test2::API::Breakage":{"file":"lib/Test2/API/Breakage.pm","version":"1.302078"},"Test::Builder::Tester":{"version":"1.302078","file":"lib/Test/Builder/Tester.pm"},"Test2::IPC":{"version":"1.302078","file":"lib/Test2/IPC.pm"},"Test::Tester":{"version":"1.302078","file":"lib/Test/Tester.pm"},"Test2::IPC::Driver::Files":{"file":"lib/Test2/IPC/Driver/Files.pm","version":"1.302078"},"Test2::Hub":{"file":"lib/Test2/Hub.pm","version":"1.302078"},"Test2::IPC::Driver":{"file":"lib/Test2/IPC/Driver.pm","version":"1.302078"},"Test2::API::Stack":{"version":"1.302078","file":"lib/Test2/API/Stack.pm"},"Test2::Event":{"version":"1.302078","file":"lib/Test2/Event.pm"},"Test2::API":{"file":"lib/Test2/API.pm","version":"1.302078"},"Test2::Formatter::TAP":{"version":"1.302078","file":"lib/Test2/Formatter/TAP.pm"},"Test::Builder::Module":{"version":"1.302078","file":"lib/Test/Builder/Module.pm"},"Test2::Event::Bail":{"version":"1.302078","file":"lib/Test2/Event/Bail.pm"},"Test2::Event::Ok":{"version":"1.302078","file":"lib/Test2/Event/Ok.pm"},"Test2::Event::Note":{"file":"lib/Test2/Event/Note.pm","version":"1.302078"},"Test2::Event::Diag":{"file":"lib/Test2/Event/Diag.pm","version":"1.302078"},"Test2::API::Instance":{"version":"1.302078","file":"lib/Test2/API/Instance.pm"},"Test::use::ok":{"version":"1.302078","file":"lib/Test/use/ok.pm"},"Test2::Util::HashBase":{"file":"lib/Test2/Util/HashBase.pm","version":"0.002"},"Test::Tester::CaptureRunner":{"file":"lib/Test/Tester/CaptureRunner.pm","version":"1.302078"},"Test::Builder::Tester::Tie":{"version":"1.302078","file":"lib/Test/Builder/Tester.pm"},"Test2::Event::Exception":{"file":"lib/Test2/Event/Exception.pm","version":"1.302078"},"Test::Builder::Tester::Color":{"version":"1.302078","file":"lib/Test/Builder/Tester/Color.pm"},"Test2::Hub::Interceptor::Terminator":{"version":"1.302078","file":"lib/Test2/Hub/Interceptor/Terminator.pm"},"Test2::Event::Skip":{"file":"lib/Test2/Event/Skip.pm","version":"1.302078"}},"pathname":"E/EX/EXODIST/Test-Simple-1.302078.tar.gz","target":"Test::More","version":"1.302078","name":"Test::Simple"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302083/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302083/MYMETA.json deleted file mode 100644 index ccd0cd92..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302083/MYMETA.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "abstract" : "Basic utilities for writing tests.", - "author" : [ - "Chad Granum " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.009, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Test-Simple", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "develop" : { - "requires" : { - "Test::Pod" : "1.41", - "Test::Spelling" : "0.12" - } - }, - "runtime" : { - "requires" : { - "File::Spec" : "0", - "File::Temp" : "0", - "PerlIO" : "0", - "Scalar::Util" : "1.13", - "Storable" : "0", - "perl" : "5.008001", - "utf8" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "http://github.com/Test-More/test-more/issues" - }, - "repository" : { - "type" : "git", - "url" : "http://github.com/Test-More/test-more/" - } - }, - "version" : "1.302083", - "x_breaks" : { - "Log::Dispatch::Config::TestLog" : "<= 0.02", - "Net::BitTorrent" : "<= 0.052", - "Test::Able" : "<= 0.11", - "Test::Aggregate" : "<= 0.373", - "Test::Alien" : "<= 0.04", - "Test::Builder::Clutch" : "<= 0.07", - "Test::Clustericious::Cluster" : "<= 0.30", - "Test::Dist::VersionSync" : "<= v1.1.4", - "Test::Exception" : "<= 0.42", - "Test::Flatten" : "<= 0.11", - "Test::Group" : "<= 0.20", - "Test::Modern" : "<= 0.012", - "Test::Moose" : "<= 2.1209", - "Test::More::Prefix" : "<= 0.005", - "Test::ParallelSubtest" : "<= 0.05", - "Test::Pretty" : "<= 0.32", - "Test::SharedFork" : "<= 0.34", - "Test::UseAllModules" : ">= 0.12, <= 0.14", - "Test::Wrapper" : "<= v0.3.0" - }, - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302083/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302083/install.json deleted file mode 100644 index 22d13f58..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302083/install.json +++ /dev/null @@ -1 +0,0 @@ -{"pathname":"E/EX/EXODIST/Test-Simple-1.302083.tar.gz","dist":"Test-Simple-1.302083","provides":{"Test2":{"version":"1.302083","file":"lib/Test2.pm"},"Test2::Event::Subtest":{"version":"1.302083","file":"lib/Test2/Event/Subtest.pm"},"ok":{"version":"1.302083","file":"lib/ok.pm"},"Test2::Event::Skip":{"version":"1.302083","file":"lib/Test2/Event/Skip.pm"},"Test2::API::Context":{"file":"lib/Test2/API/Context.pm","version":"1.302083"},"Test::Builder::Tester::Color":{"version":"1.302083","file":"lib/Test/Builder/Tester/Color.pm"},"Test::Builder::TodoDiag":{"version":"1.302083","file":"lib/Test/Builder/TodoDiag.pm"},"Test2::Formatter":{"version":"1.302083","file":"lib/Test2/Formatter.pm"},"Test2::Event::Note":{"file":"lib/Test2/Event/Note.pm","version":"1.302083"},"Test::Tester::CaptureRunner":{"version":"1.302083","file":"lib/Test/Tester/CaptureRunner.pm"},"Test2::IPC::Driver::Files":{"file":"lib/Test2/IPC/Driver/Files.pm","version":"1.302083"},"Test2::Util::HashBase":{"version":"0.002","file":"lib/Test2/Util/HashBase.pm"},"Test2::API::Breakage":{"version":"1.302083","file":"lib/Test2/API/Breakage.pm"},"Test2::Formatter::TAP":{"version":"1.302083","file":"lib/Test2/Formatter/TAP.pm"},"Test2::Tools::Tiny":{"version":"1.302083","file":"lib/Test2/Tools/Tiny.pm"},"Test2::IPC::Driver":{"version":"1.302083","file":"lib/Test2/IPC/Driver.pm"},"Test2::Event::Ok":{"version":"1.302083","file":"lib/Test2/Event/Ok.pm"},"Test::Simple":{"file":"lib/Test/Simple.pm","version":"1.302083"},"Test::use::ok":{"version":"1.302083","file":"lib/Test/use/ok.pm"},"Test2::Event::Bail":{"file":"lib/Test2/Event/Bail.pm","version":"1.302083"},"Test2::Event::TAP::Version":{"file":"lib/Test2/Event/TAP/Version.pm","version":"1.302083"},"Test::Builder::Module":{"file":"lib/Test/Builder/Module.pm","version":"1.302083"},"Test2::Event::Plan":{"file":"lib/Test2/Event/Plan.pm","version":"1.302083"},"Test2::Event::Generic":{"version":"1.302083","file":"lib/Test2/Event/Generic.pm"},"Test::Tester::Delegate":{"version":"1.302083","file":"lib/Test/Tester/Delegate.pm"},"Test2::API::Instance":{"version":"1.302083","file":"lib/Test2/API/Instance.pm"},"Test::Builder::Formatter":{"file":"lib/Test/Builder/Formatter.pm","version":"1.302083"},"Test::Builder::Tester::Tie":{"file":"lib/Test/Builder/Tester.pm","version":"1.302083"},"Test2::Hub":{"version":"1.302083","file":"lib/Test2/Hub.pm"},"Test2::IPC":{"file":"lib/Test2/IPC.pm","version":"1.302083"},"Test2::Event":{"file":"lib/Test2/Event.pm","version":"1.302083"},"Test::Builder::Tester":{"version":"1.302083","file":"lib/Test/Builder/Tester.pm"},"Test2::API":{"version":"1.302083","file":"lib/Test2/API.pm"},"Test::Tester":{"file":"lib/Test/Tester.pm","version":"1.302083"},"Test::Builder":{"file":"lib/Test/Builder.pm","version":"1.302083"},"Test2::Util::ExternalMeta":{"version":"1.302083","file":"lib/Test2/Util/ExternalMeta.pm"},"Test2::Event::Waiting":{"version":"1.302083","file":"lib/Test2/Event/Waiting.pm"},"Test::More":{"version":"1.302083","file":"lib/Test/More.pm"},"Test2::Hub::Interceptor::Terminator":{"version":"1.302083","file":"lib/Test2/Hub/Interceptor/Terminator.pm"},"Test2::Util":{"version":"1.302083","file":"lib/Test2/Util.pm"},"Test2::Event::Exception":{"version":"1.302083","file":"lib/Test2/Event/Exception.pm"},"Test2::API::Stack":{"version":"1.302083","file":"lib/Test2/API/Stack.pm"},"Test2::Hub::Interceptor":{"version":"1.302083","file":"lib/Test2/Hub/Interceptor.pm"},"Test::Builder::IO::Scalar":{"version":"2.113","file":"lib/Test/Builder/IO/Scalar.pm"},"Test2::Hub::Subtest":{"version":"1.302083","file":"lib/Test2/Hub/Subtest.pm"},"Test2::Util::Trace":{"file":"lib/Test2/Util/Trace.pm","version":"1.302083"},"Test2::Event::Encoding":{"version":"1.302083","file":"lib/Test2/Event/Encoding.pm"},"Test2::Event::Diag":{"version":"1.302083","file":"lib/Test2/Event/Diag.pm"},"Test::Tester::Capture":{"file":"lib/Test/Tester/Capture.pm","version":"1.302083"}},"name":"Test::Simple","target":"Test::More","version":"1.302083"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302085/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302085/MYMETA.json deleted file mode 100644 index 12e90e12..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302085/MYMETA.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "abstract" : "Basic utilities for writing tests.", - "author" : [ - "Chad Granum " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.009, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Test-Simple", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "develop" : { - "requires" : { - "Test::Pod" : "1.41", - "Test::Spelling" : "0.12" - } - }, - "runtime" : { - "requires" : { - "File::Spec" : "0", - "File::Temp" : "0", - "PerlIO" : "0", - "Scalar::Util" : "1.13", - "Storable" : "0", - "perl" : "5.008001", - "utf8" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "http://github.com/Test-More/test-more/issues" - }, - "repository" : { - "type" : "git", - "url" : "http://github.com/Test-More/test-more/" - } - }, - "version" : "1.302085", - "x_breaks" : { - "Log::Dispatch::Config::TestLog" : "<= 0.02", - "Net::BitTorrent" : "<= 0.052", - "Test::Able" : "<= 0.11", - "Test::Aggregate" : "<= 0.373", - "Test::Alien" : "<= 0.04", - "Test::Builder::Clutch" : "<= 0.07", - "Test::Clustericious::Cluster" : "<= 0.30", - "Test::Dist::VersionSync" : "<= v1.1.4", - "Test::Exception" : "<= 0.42", - "Test::Flatten" : "<= 0.11", - "Test::Group" : "<= 0.20", - "Test::Modern" : "<= 0.012", - "Test::Moose" : "<= 2.1209", - "Test::More::Prefix" : "<= 0.005", - "Test::ParallelSubtest" : "<= 0.05", - "Test::Pretty" : "<= 0.32", - "Test::SharedFork" : "<= 0.34", - "Test::UseAllModules" : ">= 0.12, <= 0.14", - "Test::Wrapper" : "<= v0.3.0" - }, - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302085/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302085/install.json deleted file mode 100644 index 936e44ef..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302085/install.json +++ /dev/null @@ -1 +0,0 @@ -{"pathname":"E/EX/EXODIST/Test-Simple-1.302085.tar.gz","provides":{"Test2::Hub::Interceptor::Terminator":{"file":"lib/Test2/Hub/Interceptor/Terminator.pm","version":"1.302085"},"Test2::Event::Ok":{"file":"lib/Test2/Event/Ok.pm","version":"1.302085"},"Test2::Event":{"file":"lib/Test2/Event.pm","version":"1.302085"},"Test2::Util::ExternalMeta":{"file":"lib/Test2/Util/ExternalMeta.pm","version":"1.302085"},"Test2::Hub::Interceptor":{"version":"1.302085","file":"lib/Test2/Hub/Interceptor.pm"},"Test2::Tools::Tiny":{"file":"lib/Test2/Tools/Tiny.pm","version":"1.302085"},"Test2::Hub":{"file":"lib/Test2/Hub.pm","version":"1.302085"},"Test2::Event::Generic":{"version":"1.302085","file":"lib/Test2/Event/Generic.pm"},"Test::use::ok":{"version":"1.302085","file":"lib/Test/use/ok.pm"},"Test::Builder::TodoDiag":{"file":"lib/Test/Builder/TodoDiag.pm","version":"1.302085"},"Test2::Event::Bail":{"version":"1.302085","file":"lib/Test2/Event/Bail.pm"},"Test::More":{"version":"1.302085","file":"lib/Test/More.pm"},"Test2::Event::Waiting":{"file":"lib/Test2/Event/Waiting.pm","version":"1.302085"},"Test2::API::Breakage":{"version":"1.302085","file":"lib/Test2/API/Breakage.pm"},"Test2::API::Context":{"file":"lib/Test2/API/Context.pm","version":"1.302085"},"Test2::Event::Exception":{"version":"1.302085","file":"lib/Test2/Event/Exception.pm"},"Test2":{"file":"lib/Test2.pm","version":"1.302085"},"Test::Builder::Tester::Tie":{"file":"lib/Test/Builder/Tester.pm","version":"1.302085"},"Test2::Event::Subtest":{"file":"lib/Test2/Event/Subtest.pm","version":"1.302085"},"Test2::Formatter":{"version":"1.302085","file":"lib/Test2/Formatter.pm"},"Test::Builder::Tester::Color":{"version":"1.302085","file":"lib/Test/Builder/Tester/Color.pm"},"Test2::Formatter::TAP":{"version":"1.302085","file":"lib/Test2/Formatter/TAP.pm"},"Test2::Event::Encoding":{"file":"lib/Test2/Event/Encoding.pm","version":"1.302085"},"Test::Tester::Capture":{"version":"1.302085","file":"lib/Test/Tester/Capture.pm"},"Test2::Event::Note":{"file":"lib/Test2/Event/Note.pm","version":"1.302085"},"Test2::Util":{"file":"lib/Test2/Util.pm","version":"1.302085"},"Test::Tester::CaptureRunner":{"file":"lib/Test/Tester/CaptureRunner.pm","version":"1.302085"},"Test::Builder::Tester":{"version":"1.302085","file":"lib/Test/Builder/Tester.pm"},"Test::Builder":{"file":"lib/Test/Builder.pm","version":"1.302085"},"Test::Builder::IO::Scalar":{"version":"2.113","file":"lib/Test/Builder/IO/Scalar.pm"},"Test2::IPC::Driver":{"version":"1.302085","file":"lib/Test2/IPC/Driver.pm"},"Test2::Event::Plan":{"file":"lib/Test2/Event/Plan.pm","version":"1.302085"},"Test2::Hub::Subtest":{"version":"1.302085","file":"lib/Test2/Hub/Subtest.pm"},"Test2::Event::Skip":{"version":"1.302085","file":"lib/Test2/Event/Skip.pm"},"Test::Builder::Module":{"file":"lib/Test/Builder/Module.pm","version":"1.302085"},"Test2::Util::HashBase":{"file":"lib/Test2/Util/HashBase.pm","version":"0.002"},"Test2::IPC":{"file":"lib/Test2/IPC.pm","version":"1.302085"},"ok":{"file":"lib/ok.pm","version":"1.302085"},"Test2::API::Stack":{"version":"1.302085","file":"lib/Test2/API/Stack.pm"},"Test2::Util::Trace":{"file":"lib/Test2/Util/Trace.pm","version":"1.302085"},"Test2::IPC::Driver::Files":{"file":"lib/Test2/IPC/Driver/Files.pm","version":"1.302085"},"Test2::API":{"file":"lib/Test2/API.pm","version":"1.302085"},"Test::Builder::Formatter":{"version":"1.302085","file":"lib/Test/Builder/Formatter.pm"},"Test2::API::Instance":{"file":"lib/Test2/API/Instance.pm","version":"1.302085"},"Test::Tester":{"version":"1.302085","file":"lib/Test/Tester.pm"},"Test::Tester::Delegate":{"file":"lib/Test/Tester/Delegate.pm","version":"1.302085"},"Test2::Event::TAP::Version":{"file":"lib/Test2/Event/TAP/Version.pm","version":"1.302085"},"Test2::Event::Diag":{"file":"lib/Test2/Event/Diag.pm","version":"1.302085"},"Test::Simple":{"file":"lib/Test/Simple.pm","version":"1.302085"}},"dist":"Test-Simple-1.302085","version":"1.302085","name":"Test::Simple","target":"Test::More"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302136/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302136/MYMETA.json deleted file mode 100644 index da082bc8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302136/MYMETA.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "abstract" : "Basic utilities for writing tests.", - "author" : [ - "Chad Granum " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.010, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Test-Simple", - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "develop" : { - "requires" : { - "IPC::Open3" : "0", - "Test::Pod" : "1.41", - "Test::Spelling" : "0.12" - } - }, - "runtime" : { - "requires" : { - "File::Spec" : "0", - "File::Temp" : "0", - "Scalar::Util" : "1.13", - "Storable" : "0", - "perl" : "5.006002", - "utf8" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "http://github.com/Test-More/test-more/issues" - }, - "repository" : { - "type" : "git", - "url" : "http://github.com/Test-More/test-more/" - } - }, - "version" : "1.302136", - "x_breaks" : { - "Log::Dispatch::Config::TestLog" : "<= 0.02", - "Net::BitTorrent" : "<= 0.052", - "Test2::Harness" : "<= 0.000013", - "Test2::Tools::EventDumper" : "<= 0.000007", - "Test::Able" : "<= 0.11", - "Test::Aggregate" : "<= 0.373", - "Test::Alien" : "<= 0.04", - "Test::Builder::Clutch" : "<= 0.07", - "Test::Clustericious::Cluster" : "<= 0.30", - "Test::Dist::VersionSync" : "<= v1.1.4", - "Test::Exception" : "<= 0.42", - "Test::Flatten" : "<= 0.11", - "Test::Group" : "<= 0.20", - "Test::Modern" : "<= 0.012", - "Test::Moose" : "<= 2.1209", - "Test::More::Prefix" : "<= 0.005", - "Test::ParallelSubtest" : "<= 0.05", - "Test::Pretty" : "<= 0.32", - "Test::SharedFork" : "<= 0.34", - "Test::UseAllModules" : ">= 0.12, <= 0.14", - "Test::Wrapper" : "<= v0.3.0" - }, - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302136/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302136/install.json deleted file mode 100644 index fc40e2c8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Test-Simple-1.302136/install.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"Test::Simple","version":"1.302136","target":"Test::More","provides":{"Test2::Formatter":{"file":"lib/Test2/Formatter.pm","version":"1.302136"},"Test2::IPC::Driver::Files":{"version":"1.302136","file":"lib/Test2/IPC/Driver/Files.pm"},"Test::Builder::Tester::Tie":{"version":"1.302136","file":"lib/Test/Builder/Tester.pm"},"Test2::Tools::Tiny":{"version":"1.302136","file":"lib/Test2/Tools/Tiny.pm"},"Test2::Event::Diag":{"file":"lib/Test2/Event/Diag.pm","version":"1.302136"},"Test2::Event::Encoding":{"version":"1.302136","file":"lib/Test2/Event/Encoding.pm"},"ok":{"file":"lib/ok.pm","version":"1.302136"},"Test2::Event::V2":{"file":"lib/Test2/Event/V2.pm","version":"1.302136"},"Test::Builder::Formatter":{"file":"lib/Test/Builder/Formatter.pm","version":"1.302136"},"Test::Builder::Tester::Color":{"version":"1.302136","file":"lib/Test/Builder/Tester/Color.pm"},"Test2::Hub::Interceptor":{"file":"lib/Test2/Hub/Interceptor.pm","version":"1.302136"},"Test2::Event::Fail":{"version":"1.302136","file":"lib/Test2/Event/Fail.pm"},"Test::Tester":{"file":"lib/Test/Tester.pm","version":"1.302136"},"Test2::EventFacet::Error":{"file":"lib/Test2/EventFacet/Error.pm","version":"1.302136"},"Test2::EventFacet::Plan":{"file":"lib/Test2/EventFacet/Plan.pm","version":"1.302136"},"Test2::Event::TAP::Version":{"file":"lib/Test2/Event/TAP/Version.pm","version":"1.302136"},"Test2::Event::Subtest":{"file":"lib/Test2/Event/Subtest.pm","version":"1.302136"},"Test2::EventFacet::Info":{"file":"lib/Test2/EventFacet/Info.pm","version":"1.302136"},"Test::Builder::IO::Scalar":{"file":"lib/Test/Builder/IO/Scalar.pm","version":"2.114"},"Test2::EventFacet::Amnesty":{"file":"lib/Test2/EventFacet/Amnesty.pm","version":"1.302136"},"Test2::Hub::Interceptor::Terminator":{"file":"lib/Test2/Hub/Interceptor/Terminator.pm","version":"1.302136"},"Test2::Util::ExternalMeta":{"version":"1.302136","file":"lib/Test2/Util/ExternalMeta.pm"},"Test2::Formatter::TAP":{"file":"lib/Test2/Formatter/TAP.pm","version":"1.302136"},"Test::Tester::CaptureRunner":{"file":"lib/Test/Tester/CaptureRunner.pm","version":"1.302136"},"Test2::EventFacet":{"version":"1.302136","file":"lib/Test2/EventFacet.pm"},"Test2::Util::Trace":{"version":"1.302136","file":"lib/Test2/Util/Trace.pm"},"Test2::Event::Skip":{"version":"1.302136","file":"lib/Test2/Event/Skip.pm"},"Test2::Event::Waiting":{"version":"1.302136","file":"lib/Test2/Event/Waiting.pm"},"Test2::Event::Exception":{"file":"lib/Test2/Event/Exception.pm","version":"1.302136"},"Test2::API":{"file":"lib/Test2/API.pm","version":"1.302136"},"Test2::IPC::Driver":{"file":"lib/Test2/IPC/Driver.pm","version":"1.302136"},"Test2::Event::Generic":{"version":"1.302136","file":"lib/Test2/Event/Generic.pm"},"Test::Builder":{"file":"lib/Test/Builder.pm","version":"1.302136"},"Test2::Hub::Subtest":{"file":"lib/Test2/Hub/Subtest.pm","version":"1.302136"},"Test2::EventFacet::Control":{"version":"1.302136","file":"lib/Test2/EventFacet/Control.pm"},"Test::Builder::TodoDiag":{"file":"lib/Test/Builder/TodoDiag.pm","version":"1.302136"},"Test2::Event::Ok":{"file":"lib/Test2/Event/Ok.pm","version":"1.302136"},"Test::Builder::Module":{"file":"lib/Test/Builder/Module.pm","version":"1.302136"},"Test::More":{"file":"lib/Test/More.pm","version":"1.302136"},"Test2::IPC":{"version":"1.302136","file":"lib/Test2/IPC.pm"},"Test2::API::Instance":{"version":"1.302136","file":"lib/Test2/API/Instance.pm"},"Test::use::ok":{"file":"lib/Test/use/ok.pm","version":"1.302136"},"Test2::EventFacet::Hub":{"file":"lib/Test2/EventFacet/Hub.pm","version":"1.302136"},"Test2::Util::Facets2Legacy":{"version":"1.302136","file":"lib/Test2/Util/Facets2Legacy.pm"},"Test2::EventFacet::Trace":{"version":"1.302136","file":"lib/Test2/EventFacet/Trace.pm"},"Test2::EventFacet::Meta":{"version":"1.302136","file":"lib/Test2/EventFacet/Meta.pm"},"Test2::Event::Bail":{"file":"lib/Test2/Event/Bail.pm","version":"1.302136"},"Test2::API::Breakage":{"version":"1.302136","file":"lib/Test2/API/Breakage.pm"},"Test2::API::Stack":{"version":"1.302136","file":"lib/Test2/API/Stack.pm"},"Test::Builder::Tester":{"file":"lib/Test/Builder/Tester.pm","version":"1.302136"},"Test2::API::Context":{"version":"1.302136","file":"lib/Test2/API/Context.pm"},"Test2":{"version":"1.302136","file":"lib/Test2.pm"},"Test::Tester::Capture":{"version":"1.302136","file":"lib/Test/Tester/Capture.pm"},"Test::Tester::Delegate":{"file":"lib/Test/Tester/Delegate.pm","version":"1.302136"},"Test2::Util::HashBase":{"version":"1.302136","file":"lib/Test2/Util/HashBase.pm"},"Test::Simple":{"file":"lib/Test/Simple.pm","version":"1.302136"},"Test2::EventFacet::Parent":{"version":"1.302136","file":"lib/Test2/EventFacet/Parent.pm"},"Test2::Event":{"version":"1.302136","file":"lib/Test2/Event.pm"},"Test2::EventFacet::About":{"version":"1.302136","file":"lib/Test2/EventFacet/About.pm"},"Test2::Hub":{"file":"lib/Test2/Hub.pm","version":"1.302136"},"Test2::EventFacet::Assert":{"version":"1.302136","file":"lib/Test2/EventFacet/Assert.pm"},"Test2::EventFacet::Render":{"version":"1.302136","file":"lib/Test2/EventFacet/Render.pm"},"Test2::Event::Pass":{"file":"lib/Test2/Event/Pass.pm","version":"1.302136"},"Test2::Event::Note":{"version":"1.302136","file":"lib/Test2/Event/Note.pm"},"Test2::Util":{"file":"lib/Test2/Util.pm","version":"1.302136"},"Test2::Event::Plan":{"file":"lib/Test2/Event/Plan.pm","version":"1.302136"}},"dist":"Test-Simple-1.302136","pathname":"E/EX/EXODIST/Test-Simple-1.302136.tar.gz"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9742/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9742/MYMETA.json deleted file mode 100644 index 135a2487..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9742/MYMETA.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "abstract" : "High resolution alarm, sleep, gettimeofday, interval timers", - "author" : [ - "Jarkko Hietaniemi " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.66, CPAN::Meta::Converter version 2.133380, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Time-HiRes", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Carp" : "0", - "Config" : "0", - "DynaLoader" : "0", - "Exporter" : "0", - "ExtUtils::MakeMaker" : "0", - "Test::More" : "0", - "perl" : "5.008", - "strict" : "0" - } - } - }, - "release_status" : "stable", - "version" : "1.9742", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9742/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9742/install.json deleted file mode 100644 index 14e033d8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9742/install.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"Time::HiRes","target":"Time::HiRes","version":"1.9742","dist":"Time-HiRes-1.9742","provides":{"Time::HiRes":{"file":"HiRes.pm","version":"1.9742"}},"pathname":"J/JH/JHI/Time-HiRes-1.9742.tar.gz"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9758/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9758/MYMETA.json deleted file mode 100644 index bd8da3ce..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9758/MYMETA.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "abstract" : "High resolution alarm, sleep, gettimeofday, interval timers", - "author" : [ - "Jarkko Hietaniemi " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Time-HiRes", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Carp" : "0", - "Config" : "0", - "Exporter" : "0", - "ExtUtils::MakeMaker" : "0", - "Test::More" : "0", - "XSLoader" : "0", - "perl" : "5.006", - "strict" : "0" - } - } - }, - "release_status" : "stable", - "version" : "1.9758", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9758/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9758/install.json deleted file mode 100644 index 84cd4b3d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Time-HiRes-1.9758/install.json +++ /dev/null @@ -1 +0,0 @@ -{"dist":"Time-HiRes-1.9758","pathname":"J/JH/JHI/Time-HiRes-1.9758.tar.gz","target":"Time::HiRes","provides":{"Time::HiRes":{"version":"1.9758","file":"HiRes.pm"}},"name":"Time::HiRes","version":"1.9758"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Win32-IPHelper-0.08/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Win32-IPHelper-0.08/MYMETA.json deleted file mode 100644 index c87d0efa..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Win32-IPHelper-0.08/MYMETA.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "abstract" : "Perl wrapper for Win32 IP Helper functions and structures.", - "author" : [ - "Luigino Masarati " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.56, CPAN::Meta::Converter version 2.150010", - "license" : [ - "unknown" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Win32-IPHelper", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Win32::API" : "0.2", - "enum" : "0" - } - } - }, - "release_status" : "stable", - "version" : "0.08", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Win32-IPHelper-0.08/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Win32-IPHelper-0.08/install.json deleted file mode 100644 index 93e84e38..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Win32-IPHelper-0.08/install.json +++ /dev/null @@ -1 +0,0 @@ -{"dist":"Win32-IPHelper-0.08","pathname":"L/LM/LMASARA/Win32-IPHelper-0.08.tar.gz","version":"0.08","provides":{"Win32::IPHelper":{"version":"0.08","file":"IPHelper.pm"}},"name":"Win32::IPHelper","target":"Win32::IPHelper"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Wx-GLCanvas-0.09/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Wx-GLCanvas-0.09/MYMETA.json deleted file mode 100644 index 580727b7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Wx-GLCanvas-0.09/MYMETA.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "abstract" : "interface to wxWidgets' OpenGL canvas", - "author" : [ - "Mattia Barbon " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MY_Metafile version 0.09, EUMM-6.54., CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "Wx-GLCanvas", - "no_index" : { - "directory" : [ - "inc", - "t", - "samples" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Wx" : "0.57", - "Wx::build::MakeMaker" : "0.16" - } - } - }, - "release_status" : "stable", - "version" : "0.09", - "x_installdirs" : "site", - "x_serialization_backend" : "JSON::PP version 2.27400", - "x_version_from" : "lib/Wx/GLCanvas.pm" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Wx-GLCanvas-0.09/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Wx-GLCanvas-0.09/install.json deleted file mode 100644 index d0138cd1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/Wx-GLCanvas-0.09/install.json +++ /dev/null @@ -1 +0,0 @@ -{"pathname":"M/MB/MBARBON/Wx-GLCanvas-0.09.tar.gz","target":"Wx::GLCanvas","provides":{"Wx::DemoModules::wxGLCanvas":{"file":"lib/Wx/DemoModules/wxGLCanvas.pm"},"Wx::GLCanvas":{"version":"0.09","file":"lib/Wx/GLCanvas.pm"},"Wx::DemoModules::wxGLCanvas::Light":{"file":"lib/Wx/DemoModules/wxGLCanvas.pm"},"Wx::DemoModules::wxGLCanvas::Cube":{"file":"lib/Wx/DemoModules/wxGLCanvas.pm"}},"name":"Wx::GLCanvas","dist":"Wx-GLCanvas-0.09","version":"0.09"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-NamespaceSupport-1.11/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-NamespaceSupport-1.11/MYMETA.json deleted file mode 100644 index 282bf4a2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-NamespaceSupport-1.11/MYMETA.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "abstract" : "a simple generic namespace support class", - "author" : [ - "Robin Berjon, robin@knowscape.com, with lots of it having been done" - ], - "dynamic_config" : 0, - "generated_by" : "Module::Install version 0.95, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "XML-NamespaceSupport", - "no_index" : { - "directory" : [ - "inc", - "t" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.42", - "Test::More" : "0.47" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : {} - } - }, - "release_status" : "stable", - "resources" : { - "license" : [ - "http://dev.perl.org/licenses/" - ], - "repository" : { - "type" : "git", - "url" : "git://github.com/perigrin/xml-namespacesupport.git" - } - }, - "version" : "1.11", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-NamespaceSupport-1.11/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-NamespaceSupport-1.11/install.json deleted file mode 100644 index 1939d9eb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-NamespaceSupport-1.11/install.json +++ /dev/null @@ -1 +0,0 @@ -{"dist":"XML-NamespaceSupport-1.11","provides":{"XML::NamespaceSupport":{"version":"1.11","file":"lib/XML/NamespaceSupport.pm"}},"name":"XML::NamespaceSupport","pathname":"P/PE/PERIGRIN/XML-NamespaceSupport-1.11.tar.gz","version":"1.11","target":"XML::NamespaceSupport"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-0.99/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-0.99/MYMETA.json deleted file mode 100644 index 7d3ad9af..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-0.99/MYMETA.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "abstract" : "unknown", - "author" : [ - "unknown" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 6.55_02, CPAN::Meta::Converter version 2.150010", - "license" : [ - "unknown" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "XML-SAX", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "File::Temp" : "0", - "XML::NamespaceSupport" : "0.03", - "XML::SAX::Base" : "1.05" - } - } - }, - "release_status" : "stable", - "version" : "0.99", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-0.99/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-0.99/install.json deleted file mode 100644 index 11b086d1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-0.99/install.json +++ /dev/null @@ -1 +0,0 @@ -{"dist":"XML-SAX-0.99","provides":{"XML::SAX::PurePerl::DebugHandler":{"file":"SAX/PurePerl/DebugHandler.pm"},"XML::SAX::PurePerl::Reader::URI":{"file":"SAX/PurePerl/Reader/URI.pm"},"XML::SAX::PurePerl::Productions":{"file":"SAX/PurePerl/Productions.pm"},"XML::SAX::PurePerl":{"version":"0.99","file":"SAX/PurePerl.pm"},"XML::SAX::PurePerl::Reader":{"file":"SAX/PurePerl/Reader.pm"},"XML::SAX::ParserFactory":{"file":"SAX/ParserFactory.pm","version":"1.01"},"XML::SAX::PurePerl::Reader::String":{"file":"SAX/PurePerl/Reader/String.pm"},"XML::SAX::DocumentLocator":{"file":"SAX/DocumentLocator.pm"},"XML::SAX::PurePerl::Exception":{"file":"SAX/PurePerl/Exception.pm"},"XML::SAX":{"file":"SAX.pm","version":"0.99"},"XML::SAX::PurePerl::Reader::Stream":{"file":"SAX/PurePerl/Reader/Stream.pm"}},"name":"XML::SAX","pathname":"G/GR/GRANTM/XML-SAX-0.99.tar.gz","version":"0.99","target":"XML::SAX"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-Base-1.08/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-Base-1.08/MYMETA.json deleted file mode 100644 index df76cdf9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-Base-1.08/MYMETA.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "abstract" : "Base class for SAX Drivers and Filters", - "author" : [ - "Grant McLean " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 4.200004, CPAN::Meta::Converter version 2.101670, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "XML-SAX-Base", - "prereqs" : { - "build" : { - "requires" : { - "Test::More" : "0.88" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "6.31" - } - }, - "runtime" : { - "requires" : {} - }, - "test" : { - "requires" : { - "Test::More" : "0.88" - } - } - }, - "release_status" : "stable", - "resources" : { - "repository" : { - "type" : "git", - "url" : "git://github.com/grantm/XML-SAX-Base.git", - "web" : "http://github.com/grantm/XML-SAX-Base" - } - }, - "version" : "1.08", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-Base-1.08/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-Base-1.08/install.json deleted file mode 100644 index 30e0e747..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/XML-SAX-Base-1.08/install.json +++ /dev/null @@ -1 +0,0 @@ -{"pathname":"G/GR/GRANTM/XML-SAX-Base-1.08.tar.gz","dist":"XML-SAX-Base-1.08","provides":{"XML::SAX::Base":{"file":"lib/XML/SAX/Base.pm","version":"1.08"},"XML::SAX::Exception":{"version":"1.08","file":"lib/XML/SAX/Exception.pm"},"XML::SAX::Base::NoHandler":{"version":"1.08","file":"lib/XML/SAX/Base.pm"}},"name":"XML::SAX::Base","version":"1.08","target":"XML::SAX::Base"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/enum-1.11/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/enum-1.11/MYMETA.json deleted file mode 100644 index 5fcee394..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/enum-1.11/MYMETA.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "abstract" : "unknown", - "author" : [ - "unknown" - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.02, CPAN::Meta::Converter version 2.150005, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "enum", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Carp" : "0", - "perl" : "5.006", - "strict" : "0", - "warnings" : "0" - } - } - }, - "release_status" : "stable", - "resources" : { - "repository" : { - "type" : "git", - "url" : "git://github.com/neilbowers/enum.git", - "web" : "https://github.com/neilbowers/enum" - } - }, - "version" : "1.11", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/enum-1.11/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/enum-1.11/install.json deleted file mode 100644 index b33c56d2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/enum-1.11/install.json +++ /dev/null @@ -1 +0,0 @@ -{"dist":"enum-1.11","provides":{"enum":{"file":"lib/enum.pm","version":"1.11"}},"version":"1.11","pathname":"N/NE/NEILB/enum-1.11.tar.gz","name":"enum","target":"enum"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/libwww-perl-6.26/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/libwww-perl-6.26/MYMETA.json deleted file mode 100644 index 0e3290c5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/libwww-perl-6.26/MYMETA.json +++ /dev/null @@ -1,901 +0,0 @@ -{ - "abstract" : "The World-Wide Web library for Perl", - "author" : [ - "Gisle Aas " - ], - "dynamic_config" : 0, - "generated_by" : "Dist::Zilla version 6.008, CPAN::Meta::Converter version 2.150005, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "libwww-perl", - "no_index" : { - "directory" : [ - "t", - "xt" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Copy" : "0", - "Getopt::Long" : "0" - }, - "suggests" : { - "JSON::PP" : "2.27300" - } - }, - "develop" : { - "requires" : { - "File::Spec" : "0", - "IO::Handle" : "0", - "IPC::Open3" : "0", - "Pod::Coverage::TrustPod" : "0", - "Test::CPAN::Changes" : "0.4", - "Test::CPAN::Meta" : "0", - "Test::CheckManifest" : "1.29", - "Test::EOL" : "0", - "Test::Kwalitee" : "1.22", - "Test::MinimumVersion" : "0", - "Test::Mojibake" : "0", - "Test::More" : "0.94", - "Test::Pod" : "1.41", - "Test::Pod::Coverage" : "1.08", - "Test::Pod::Spelling::CommonMistakes" : "1.000", - "Test::Portability::Files" : "0", - "Test::Spelling" : "0.12", - "Test::Version" : "1", - "Try::Tiny" : "0.24" - } - }, - "runtime" : { - "requires" : { - "Digest::MD5" : "0", - "Encode" : "2.12", - "Encode::Locale" : "0", - "File::Listing" : "6", - "HTML::Entities" : "0", - "HTML::HeadParser" : "0", - "HTTP::Cookies" : "6", - "HTTP::Daemon" : "6", - "HTTP::Date" : "6", - "HTTP::Negotiate" : "6", - "HTTP::Request" : "6", - "HTTP::Request::Common" : "6", - "HTTP::Response" : "6", - "HTTP::Status" : "6", - "IO::Select" : "0", - "IO::Socket" : "0", - "LWP::MediaTypes" : "6", - "MIME::Base64" : "2.1", - "Net::FTP" : "2.58", - "Net::HTTP" : "6.07", - "Scalar::Util" : "0", - "Try::Tiny" : "0", - "URI" : "1.10", - "URI::Escape" : "0", - "WWW::RobotRules" : "6", - "base" : "0", - "perl" : "5.008001", - "strict" : "0", - "warnings" : "0" - }, - "suggests" : { - "Authen::NTLM" : "1.02", - "IO::Socket::INET" : "0", - "LWP::Protocol::https" : "6.02" - } - }, - "test" : { - "recommends" : { - "CPAN::Meta" : "2.120900" - }, - "requires" : { - "ExtUtils::MakeMaker" : "0", - "File::Spec" : "0", - "FindBin" : "0", - "Test::Fatal" : "0", - "Test::More" : "0", - "Test::RequiresInternet" : "0" - } - } - }, - "provides" : { - "LWP" : { - "file" : "lib/LWP.pm", - "version" : "6.26" - }, - "LWP::Authen::Basic" : { - "file" : "lib/LWP/Authen/Basic.pm", - "version" : "6.26" - }, - "LWP::Authen::Digest" : { - "file" : "lib/LWP/Authen/Digest.pm", - "version" : "6.26" - }, - "LWP::Authen::Ntlm" : { - "file" : "lib/LWP/Authen/Ntlm.pm", - "version" : "6.26" - }, - "LWP::ConnCache" : { - "file" : "lib/LWP/ConnCache.pm", - "version" : "6.26" - }, - "LWP::Debug" : { - "file" : "lib/LWP/Debug.pm", - "version" : "6.26" - }, - "LWP::Debug::TraceHTTP" : { - "file" : "lib/LWP/Debug/TraceHTTP.pm", - "version" : "6.26" - }, - "LWP::Debug::TraceHTTP::Socket" : { - "file" : "lib/LWP/Debug/TraceHTTP.pm", - "version" : "6.26" - }, - "LWP::DebugFile" : { - "file" : "lib/LWP/DebugFile.pm", - "version" : "6.26" - }, - "LWP::MemberMixin" : { - "file" : "lib/LWP/MemberMixin.pm", - "version" : "6.26" - }, - "LWP::Protocol" : { - "file" : "lib/LWP/Protocol.pm", - "version" : "6.26" - }, - "LWP::Protocol::MyFTP" : { - "file" : "lib/LWP/Protocol/ftp.pm", - "version" : "6.26" - }, - "LWP::Protocol::cpan" : { - "file" : "lib/LWP/Protocol/cpan.pm", - "version" : "6.26" - }, - "LWP::Protocol::data" : { - "file" : "lib/LWP/Protocol/data.pm", - "version" : "6.26" - }, - "LWP::Protocol::file" : { - "file" : "lib/LWP/Protocol/file.pm", - "version" : "6.26" - }, - "LWP::Protocol::ftp" : { - "file" : "lib/LWP/Protocol/ftp.pm", - "version" : "6.26" - }, - "LWP::Protocol::gopher" : { - "file" : "lib/LWP/Protocol/gopher.pm", - "version" : "6.26" - }, - "LWP::Protocol::http" : { - "file" : "lib/LWP/Protocol/http.pm", - "version" : "6.26" - }, - "LWP::Protocol::http::Socket" : { - "file" : "lib/LWP/Protocol/http.pm", - "version" : "6.26" - }, - "LWP::Protocol::http::SocketMethods" : { - "file" : "lib/LWP/Protocol/http.pm", - "version" : "6.26" - }, - "LWP::Protocol::loopback" : { - "file" : "lib/LWP/Protocol/loopback.pm", - "version" : "6.26" - }, - "LWP::Protocol::mailto" : { - "file" : "lib/LWP/Protocol/mailto.pm", - "version" : "6.26" - }, - "LWP::Protocol::nntp" : { - "file" : "lib/LWP/Protocol/nntp.pm", - "version" : "6.26" - }, - "LWP::Protocol::nogo" : { - "file" : "lib/LWP/Protocol/nogo.pm", - "version" : "6.26" - }, - "LWP::RobotUA" : { - "file" : "lib/LWP/RobotUA.pm", - "version" : "6.26" - }, - "LWP::Simple" : { - "file" : "lib/LWP/Simple.pm", - "version" : "6.26" - }, - "LWP::UserAgent" : { - "file" : "lib/LWP/UserAgent.pm", - "version" : "6.26" - } - }, - "release_status" : "stable", - "resources" : { - "bugtracker" : { - "web" : "https://github.com/libwww-perl/libwww-perl/issues" - }, - "homepage" : "https://github.com/libwww-perl/libwww-perl", - "repository" : { - "type" : "git", - "url" : "https://github.com/libwww-perl/libwww-perl.git", - "web" : "https://github.com/libwww-perl/libwww-perl" - }, - "x_IRC" : "irc://irc.perl.org/#lwp", - "x_MailingList" : "mailto:libwww@perl.org" - }, - "version" : "6.26", - "x_Dist_Zilla" : { - "perl" : { - "version" : "5.024000" - }, - "plugins" : [ - { - "class" : "Dist::Zilla::Plugin::Git::GatherDir", - "config" : { - "Dist::Zilla::Plugin::GatherDir" : { - "exclude_filename" : [ - "LICENSE", - "META.json", - "Makefile.PL", - "README.md" - ], - "exclude_match" : [], - "follow_symlinks" : 0, - "include_dotfiles" : 0, - "prefix" : "", - "prune_directory" : [], - "root" : "." - }, - "Dist::Zilla::Plugin::Git::GatherDir" : { - "include_untracked" : 0 - } - }, - "name" : "Git::GatherDir", - "version" : "2.041" - }, - { - "class" : "Dist::Zilla::Plugin::PruneCruft", - "name" : "PruneCruft", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::MetaConfig", - "name" : "MetaConfig", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::MetaProvides::Package", - "config" : { - "Dist::Zilla::Plugin::MetaProvides::Package" : { - "finder_objects" : [ - { - "class" : "Dist::Zilla::Plugin::FinderCode", - "name" : "MetaProvides::Package/AUTOVIV/:InstallModulesPM", - "version" : "6.008" - } - ], - "include_underscores" : 0 - }, - "Dist::Zilla::Role::MetaProvider::Provider" : { - "$Dist::Zilla::Role::MetaProvider::Provider::VERSION" : "2.002003", - "inherit_missing" : "1", - "inherit_version" : "1", - "meta_noindex" : "1" - }, - "Dist::Zilla::Role::ModuleMetadata" : { - "Module::Metadata" : "1.000031", - "version" : "0.004" - } - }, - "name" : "MetaProvides::Package", - "version" : "2.004002" - }, - { - "class" : "Dist::Zilla::Plugin::MetaNoIndex", - "name" : "MetaNoIndex", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::MetaYAML", - "name" : "MetaYAML", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::MetaJSON", - "name" : "MetaJSON", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::MetaResources", - "name" : "MetaResources", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::Git::Tag", - "config" : { - "Dist::Zilla::Plugin::Git::Tag" : { - "branch" : null, - "changelog" : "Changes", - "signed" : 0, - "tag" : "v6.26", - "tag_format" : "v%v", - "tag_message" : "v%v" - }, - "Dist::Zilla::Role::Git::Repo" : { - "git --version" : "2.11.0", - "repo_root" : "." - }, - "Dist::Zilla::Role::Git::StringFormatter" : { - "time_zone" : "local" - } - }, - "name" : "@Filter/Tag", - "version" : "2.041" - }, - { - "class" : "Dist::Zilla::Plugin::Git::Push", - "config" : { - "Dist::Zilla::Plugin::Git::Push" : { - "push_to" : [ - "origin" - ], - "remotes_must_exist" : 1 - }, - "Dist::Zilla::Role::Git::Repo" : { - "git --version" : "2.11.0", - "repo_root" : "." - } - }, - "name" : "@Filter/Push", - "version" : "2.041" - }, - { - "class" : "Dist::Zilla::Plugin::Git::Check", - "config" : { - "Dist::Zilla::Plugin::Git::Check" : { - "untracked_files" : "die" - }, - "Dist::Zilla::Role::Git::DirtyFiles" : { - "allow_dirty" : [ - "Changes", - "LICENSE", - "META.json", - "Makefile.PL", - "README.md", - "dist.ini" - ], - "allow_dirty_match" : [], - "changelog" : "Changes" - }, - "Dist::Zilla::Role::Git::Repo" : { - "git --version" : "2.11.0", - "repo_root" : "." - } - }, - "name" : "Git::Check", - "version" : "2.041" - }, - { - "class" : "Dist::Zilla::Plugin::Git::Commit", - "config" : { - "Dist::Zilla::Plugin::Git::Commit" : { - "add_files_in" : [], - "commit_msg" : "v%v%n%n%c" - }, - "Dist::Zilla::Role::Git::DirtyFiles" : { - "allow_dirty" : [ - "Changes", - "LICENSE", - "META.json", - "Makefile.PL", - "README.md", - "dist.ini" - ], - "allow_dirty_match" : [], - "changelog" : "Changes" - }, - "Dist::Zilla::Role::Git::Repo" : { - "git --version" : "2.11.0", - "repo_root" : "." - }, - "Dist::Zilla::Role::Git::StringFormatter" : { - "time_zone" : "local" - } - }, - "name" : "Git::Commit", - "version" : "2.041" - }, - { - "class" : "Dist::Zilla::Plugin::Git::Contributors", - "config" : { - "Dist::Zilla::Plugin::Git::Contributors" : { - "git --version" : "2.11.0", - "include_authors" : 0, - "include_releaser" : 1, - "order_by" : "name", - "paths" : [] - } - }, - "name" : "Git::Contributors", - "version" : "0.029" - }, - { - "class" : "Dist::Zilla::Plugin::GithubMeta", - "name" : "GithubMeta", - "version" : "0.54" - }, - { - "class" : "Dist::Zilla::Plugin::Authority", - "name" : "Authority", - "version" : "1.009" - }, - { - "class" : "Dist::Zilla::Plugin::Manifest", - "name" : "Manifest", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::License", - "name" : "License", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::ReadmeAnyFromPod", - "config" : { - "Dist::Zilla::Role::FileWatcher" : { - "version" : "0.006" - } - }, - "name" : "Markdown_Readme", - "version" : "0.163250" - }, - { - "class" : "Dist::Zilla::Plugin::ExecDir", - "name" : "ExecDir", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::PkgVersion", - "name" : "PkgVersion", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::NextRelease", - "name" : "NextRelease", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::Prereqs::FromCPANfile", - "name" : "Prereqs::FromCPANfile", - "version" : "0.08" - }, - { - "class" : "Dist::Zilla::Plugin::MakeMaker::Awesome", - "config" : { - "Dist::Zilla::Role::TestRunner" : { - "default_jobs" : 1 - } - }, - "name" : "MakeMaker::Awesome", - "version" : "0.38" - }, - { - "class" : "Dist::Zilla::Plugin::TestRelease", - "name" : "TestRelease", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::ConfirmRelease", - "name" : "ConfirmRelease", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::UploadToCPAN", - "name" : "UploadToCPAN", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::CheckChangeLog", - "name" : "CheckChangeLog", - "version" : "0.02" - }, - { - "class" : "Dist::Zilla::Plugin::CheckChangesHasContent", - "name" : "CheckChangesHasContent", - "version" : "0.010" - }, - { - "class" : "Dist::Zilla::Plugin::MojibakeTests", - "name" : "MojibakeTests", - "version" : "0.8" - }, - { - "class" : "Dist::Zilla::Plugin::Test::Version", - "name" : "Test::Version", - "version" : "1.09" - }, - { - "class" : "Dist::Zilla::Plugin::Test::ReportPrereqs", - "name" : "Test::ReportPrereqs", - "version" : "0.025" - }, - { - "class" : "Dist::Zilla::Plugin::Test::Compile", - "config" : { - "Dist::Zilla::Plugin::Test::Compile" : { - "bail_out_on_fail" : "1", - "fail_on_warning" : "author", - "fake_home" : 0, - "filename" : "xt/author/00-compile.t", - "module_finder" : [ - ":InstallModules" - ], - "needs_display" : 0, - "phase" : "develop", - "script_finder" : [ - ":PerlExecFiles" - ], - "skips" : [], - "switch" : [] - } - }, - "name" : "Test::Compile", - "version" : "2.056" - }, - { - "class" : "Dist::Zilla::Plugin::Test::Portability", - "config" : { - "Dist::Zilla::Plugin::Test::Portability" : { - "options" : "" - } - }, - "name" : "Test::Portability", - "version" : "2.001000" - }, - { - "class" : "Dist::Zilla::Plugin::Test::EOL", - "config" : { - "Dist::Zilla::Plugin::Test::EOL" : { - "filename" : "xt/author/eol.t", - "finder" : [ - ":ExecFiles", - ":InstallModules", - ":TestFiles" - ], - "trailing_whitespace" : 1 - } - }, - "name" : "Test::EOL", - "version" : "0.19" - }, - { - "class" : "Dist::Zilla::Plugin::MetaTests", - "name" : "MetaTests", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::Test::ChangesHasContent", - "name" : "Test::ChangesHasContent", - "version" : "0.010" - }, - { - "class" : "Dist::Zilla::Plugin::Test::MinimumVersion", - "name" : "Test::MinimumVersion", - "version" : "2.000007" - }, - { - "class" : "Dist::Zilla::Plugin::PodSyntaxTests", - "name" : "PodSyntaxTests", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::Test::Pod::Coverage::Configurable", - "name" : "Test::Pod::Coverage::Configurable", - "version" : "0.06" - }, - { - "class" : "Dist::Zilla::Plugin::Test::PodSpelling", - "config" : { - "Dist::Zilla::Plugin::Test::PodSpelling" : { - "directories" : [ - "bin", - "lib" - ], - "spell_cmd" : "aspell list", - "stopwords" : [ - "Accomazzi", - "Alexandre", - "Andreas", - "Asplund", - "Betts", - "Bochner", - "BooK", - "Buenzli", - "CGI", - "CPAN", - "Chamas", - "Coppit", - "Dalgleish", - "Dubois", - "Dunkin", - "Duret", - "Dvornik", - "Eldridge", - "Gertjan", - "Graaff", - "Greab", - "Guenther", - "Gurusamy", - "Gustafsson", - "Hakanson", - "Harald", - "Hedlund", - "Hoblitt", - "Hwa", - "INOUE", - "Joao", - "Joerg", - "KONISHI", - "Kaminsky", - "Kartik", - "Katsuhiro", - "Kebsch", - "Keiichiro", - "Kilzer", - "Klar", - "Koster", - "Kronengold", - "Krüger", - "Kubb", - "König", - "Laker", - "Langfeldt", - "Langheinrich", - "Liam", - "Lindley", - "Lotterer", - "Lutz", - "MacEachern", - "Macdonald", - "Mailto", - "Marko", - "Markus", - "Martijn", - "McCauley", - "Melchner", - "Moshe", - "Murrell", - "NNTP", - "NTLM", - "Nagano", - "Newby", - "Nicolai", - "Nierstrasz", - "Olly", - "Oosten", - "Panchenko", - "Pimlott", - "Pon", - "Quaranta", - "Radoslaw", - "Radu", - "Rai", - "Rezic", - "RobotUA", - "Sarathy", - "Schilli", - "Schinder", - "Shirazi", - "Skyttä", - "Slaven", - "Spafford", - "Stosberg", - "Subbarao", - "TCP", - "Takanori", - "Thoennes", - "Thurn", - "Tilly", - "UA", - "Ugai", - "Unger", - "UserAgent", - "VanHeyningen", - "Vandewege", - "Ville", - "WireShark", - "Yee", - "Yitzchak", - "Yoshinari", - "Zajac", - "Zakharevich", - "Zielinski", - "Zoest", - "afPuUsSedvhx", - "de", - "erik", - "getprint", - "getstore", - "peterm", - "shildreth" - ], - "wordlist" : "Pod::Wordlist" - } - }, - "name" : "Test::PodSpelling", - "version" : "2.007004" - }, - { - "class" : "Dist::Zilla::Plugin::RunExtraTests", - "config" : { - "Dist::Zilla::Role::TestRunner" : { - "default_jobs" : 1 - } - }, - "name" : "RunExtraTests", - "version" : "0.029" - }, - { - "class" : "Dist::Zilla::Plugin::CheckStrictVersion", - "name" : "CheckStrictVersion", - "version" : "0.001" - }, - { - "class" : "Dist::Zilla::Plugin::CopyFilesFromBuild", - "name" : "CopyFilesFromBuild", - "version" : "0.163040" - }, - { - "class" : "Dist::Zilla::Plugin::FinderCode", - "name" : ":InstallModules", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::FinderCode", - "name" : ":IncModules", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::FinderCode", - "name" : ":TestFiles", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::FinderCode", - "name" : ":ExtraTestFiles", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::FinderCode", - "name" : ":ExecFiles", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::FinderCode", - "name" : ":PerlExecFiles", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::FinderCode", - "name" : ":ShareFiles", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::FinderCode", - "name" : ":MainModule", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::FinderCode", - "name" : ":AllFiles", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::FinderCode", - "name" : ":NoFiles", - "version" : "6.008" - }, - { - "class" : "Dist::Zilla::Plugin::FinderCode", - "name" : "MetaProvides::Package/AUTOVIV/:InstallModulesPM", - "version" : "6.008" - } - ], - "zilla" : { - "class" : "Dist::Zilla::Dist::Builder", - "config" : { - "is_trial" : "0" - }, - "version" : "6.008" - } - }, - "x_authority" : "cpan:LWWWP", - "x_contributors" : [ - "Adam Kennedy ", - "Adam Sjogren ", - "Alexey Tourbin ", - "Alex Kapranoff ", - "amire80 ", - "Andreas J. Koenig ", - "BGMNT ", - "Bill Mann ", - "Bron Gondwana ", - "Bryan Cardillo ", - "Chase Whitener ", - "Christopher J. Madsen ", - "Daina Pettit ", - "Daniel Hedlund ", - "David E. Wheeler ", - "DAVIDRW ", - "David Steinbrunner ", - "Father Chrysostomos ", - "FWILES ", - "Gavin Peters ", - "Gerhard Poul ", - "Gisle Aas ", - "Graeme Thompson ", - "Graham Knop ", - "Gregory Oschwald ", - "Hans-H. Froehlich ", - "Ian Kilgore ", - "Jacob J ", - "Jakub Wilk ", - "Jason A Fesler ", - "jefflee ", - "Jeremy Mates ", - "Joe Atzberger ", - "john9art ", - "John Wittkoski ", - "Karen Etheridge ", - "Katarina Durechova ", - "Mark Stosberg ", - "Matthew Horsfall ", - "michael gong ", - "Michael G. Schwern ", - "Michiel Beijen ", - "Mike Schilli ", - "Moritz Onken ", - "murphy ", - "Naveed Massjouni ", - "Nigel Gregoire ", - "Olaf Alders ", - "Ondrej Hanak ", - "Peter Rabbitson ", - "phrstbrn ", - "Piotr Roszatycki ", - "Robert Stone ", - "Rolf Grossmann ", - "ruff ", - "sasao ", - "Sean M. Burke ", - "Slaven Rezic ", - "Spiros Denaxas ", - "Steffen Ullrich ", - "Steve Hay ", - "Theodore Robert Campbell Jr ", - "Tim Couzins ", - "Todd Lipcon ", - "Tom Hukins ", - "Tony Finch ", - "Toru Yamaguchi ", - "turugina ", - "uid39246 ", - "Ville Skyttä ", - "Vyacheslav Matyukhin ", - "Yuri Karaban ", - "Yury Zavarin ", - "Zefram " - ], - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/libwww-perl-6.26/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/libwww-perl-6.26/install.json deleted file mode 100644 index 07cc893f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/libwww-perl-6.26/install.json +++ /dev/null @@ -1 +0,0 @@ -{"pathname":"O/OA/OALDERS/libwww-perl-6.26.tar.gz","target":"LWP::UserAgent","version":"6.26","provides":{"LWP::Protocol::http::SocketMethods":{"file":"lib/LWP/Protocol/http.pm","version":"6.26"},"LWP::Protocol::nntp":{"file":"lib/LWP/Protocol/nntp.pm","version":"6.26"},"LWP::Authen::Basic":{"file":"lib/LWP/Authen/Basic.pm","version":"6.26"},"LWP::Protocol::http::Socket":{"version":"6.26","file":"lib/LWP/Protocol/http.pm"},"LWP::Protocol::http":{"file":"lib/LWP/Protocol/http.pm","version":"6.26"},"LWP::Simple":{"version":"6.26","file":"lib/LWP/Simple.pm"},"LWP::Authen::Digest":{"version":"6.26","file":"lib/LWP/Authen/Digest.pm"},"LWP::MemberMixin":{"version":"6.26","file":"lib/LWP/MemberMixin.pm"},"LWP::Protocol::gopher":{"file":"lib/LWP/Protocol/gopher.pm","version":"6.26"},"LWP::Debug::TraceHTTP::Socket":{"version":"6.26","file":"lib/LWP/Debug/TraceHTTP.pm"},"LWP::Protocol::cpan":{"version":"6.26","file":"lib/LWP/Protocol/cpan.pm"},"LWP::Protocol::nogo":{"version":"6.26","file":"lib/LWP/Protocol/nogo.pm"},"LWP::Debug":{"file":"lib/LWP/Debug.pm","version":"6.26"},"LWP::Protocol::mailto":{"file":"lib/LWP/Protocol/mailto.pm","version":"6.26"},"LWP::DebugFile":{"file":"lib/LWP/DebugFile.pm","version":"6.26"},"LWP::UserAgent":{"version":"6.26","file":"lib/LWP/UserAgent.pm"},"LWP::Protocol::file":{"file":"lib/LWP/Protocol/file.pm","version":"6.26"},"LWP::Debug::TraceHTTP":{"version":"6.26","file":"lib/LWP/Debug/TraceHTTP.pm"},"LWP::RobotUA":{"file":"lib/LWP/RobotUA.pm","version":"6.26"},"LWP::Authen::Ntlm":{"version":"6.26","file":"lib/LWP/Authen/Ntlm.pm"},"LWP::Protocol::ftp":{"file":"lib/LWP/Protocol/ftp.pm","version":"6.26"},"LWP::Protocol::data":{"file":"lib/LWP/Protocol/data.pm","version":"6.26"},"LWP::Protocol::loopback":{"version":"6.26","file":"lib/LWP/Protocol/loopback.pm"},"LWP::Protocol::MyFTP":{"file":"lib/LWP/Protocol/ftp.pm","version":"6.26"},"LWP::ConnCache":{"file":"lib/LWP/ConnCache.pm","version":"6.26"},"LWP::Protocol":{"file":"lib/LWP/Protocol.pm","version":"6.26"},"LWP":{"file":"lib/LWP.pm","version":"6.26"}},"dist":"libwww-perl-6.26","name":"libwww::perl"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-2.21/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-2.21/MYMETA.json deleted file mode 100644 index 90d4f363..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-2.21/MYMETA.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "abstract" : "Perl interpreter-based threads", - "author" : [ - "Artur Bergman, Jerry D. Hedden " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "threads", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Carp" : "0", - "Config" : "0", - "ExtUtils::testlib" : "0", - "Hash::Util" : "0", - "IO::File" : "0", - "Test::More" : "0", - "XSLoader" : "0", - "overload" : "0", - "strict" : "0", - "warnings" : "0" - } - } - }, - "release_status" : "stable", - "version" : "2.21", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-2.21/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-2.21/install.json deleted file mode 100644 index 3e427d17..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-2.21/install.json +++ /dev/null @@ -1 +0,0 @@ -{"pathname":"J/JD/JDHEDDEN/threads-2.21.tar.gz","provides":{"threads":{"file":"lib/threads.pm","version":"2.21"}},"target":"threads","version":"2.21","dist":"threads-2.21","name":"threads"} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-shared-1.58/MYMETA.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-shared-1.58/MYMETA.json deleted file mode 100644 index 010e74d5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-shared-1.58/MYMETA.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "abstract" : "Perl extension for sharing data structures between threads", - "author" : [ - "Artur Bergman, Jerry D. Hedden " - ], - "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150010", - "license" : [ - "perl_5" - ], - "meta-spec" : { - "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" - }, - "name" : "threads-shared", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, - "prereqs" : { - "build" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "configure" : { - "requires" : { - "ExtUtils::MakeMaker" : "0" - } - }, - "runtime" : { - "requires" : { - "Carp" : "0", - "Config" : "0", - "ExtUtils::testlib" : "0", - "Scalar::Util" : "0", - "Test::More" : "0", - "XSLoader" : "0", - "strict" : "0", - "threads" : "1.73", - "warnings" : "0" - } - } - }, - "release_status" : "stable", - "version" : "1.58", - "x_serialization_backend" : "JSON::PP version 2.27400" -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-shared-1.58/install.json b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-shared-1.58/install.json deleted file mode 100644 index 2e60b0b3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/.meta/threads-shared-1.58/install.json +++ /dev/null @@ -1 +0,0 @@ -{"target":"threads::shared","pathname":"J/JD/JDHEDDEN/threads-shared-1.58.tar.gz","version":"1.58","dist":"threads-shared-1.58","name":"threads::shared","provides":{"threads::shared":{"version":"1.58","file":"lib/threads/shared.pm"}}} \ No newline at end of file diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets.pm deleted file mode 100644 index f6b60253..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets.pm +++ /dev/null @@ -1,419 +0,0 @@ -package Alien::wxWidgets; - -=head1 NAME - -Alien::wxWidgets - building, finding and using wxWidgets binaries - -=head1 SYNOPSIS - - use Alien::wxWidgets ; - - my $version = Alien::wxWidgets->version; - my $config = Alien::wxWidgets->config; - my $compiler = Alien::wxWidgets->compiler; - my $linker = Alien::wxWidgets->linker; - my $include_path = Alien::wxWidgets->include_path; - my $defines = Alien::wxWidgets->defines; - my $cflags = Alien::wxWidgets->c_flags; - my $linkflags = Alien::wxWidgets->link_flags; - my $libraries = Alien::wxWidgets->libraries( qw(gl adv core base) ); - my @libraries = Alien::wxWidgets->link_libraries( qw(gl adv core base) ); - my @implib = Alien::wxWidgets->import_libraries( qw(gl adv core base) ); - my @shrlib = Alien::wxWidgets->shared_libraries( qw(gl adv core base) ); - my @keys = Alien::wxWidgets->library_keys; # 'gl', 'adv', ... - my $library_path = Alien::wxWidgets->shared_library_path; - my $key = Alien::wxWidgets->key; - my $prefix = Alien::wxWidgets->prefix; - -=head1 DESCRIPTION - -Please see L for the manifesto of the Alien namespace. - -In short C can be used to detect and get -configuration settings from an installed wxWidgets. - -=cut - -use strict; -use Carp; -use Alien::wxWidgets::Utility qw(awx_sort_config awx_grep_config - awx_smart_config); -use Module::Pluggable sub_name => '_list', - search_path => 'Alien::wxWidgets::Config', - instantiate => 'config'; - -our $AUTOLOAD; -our $VERSION = '0.67'; -our %VALUES; -our $dont_remap; - -*_remap = \&Alien::wxWidgets::Utility::_awx_remap; - -sub AUTOLOAD { - my $name = $AUTOLOAD; - - $name =~ s/.*:://; - croak "Can not use '", $name, "'" unless exists $VALUES{$name}; - - return _remap( $VALUES{$name} ); -} - -sub import { - my $class = shift; - if( @_ == 1 ) { - $class->dump_configurations if $_[0] eq ':dump'; - $class->show_configurations if $_[0] eq ':show'; - return; - } - - $class->load( @_ ); -} - -sub load { - my $class = shift; - my %crit = awx_smart_config @_; - - my @configs = awx_sort_config awx_grep_config [ $class->_list ], %crit ; - - unless( @configs ) { - my @all_configs = $class->get_configurations; - - my $message = "Searching configuration for:\n"; - $message .= _pretty_print_criteria( \%crit ); - $message .= "\nAvailable configurations:\n"; - if( @all_configs ) { - $message .= _pretty_print_configuration( $_ ) foreach @all_configs; - } else { - $message .= "No wxWidgets build found\n"; - } - - die $message; - } - - %VALUES = $configs[0]->{package}->values; -} - -sub _pretty_print_criteria { - my $criteria = shift; - my %display = %$criteria; - - $display{version} = join '-', @{$display{version}} if ref $display{version}; - $display{version} = '(any version)' unless $display{version}; - $display{toolkit} = '(any toolkit)' unless $display{toolkit}; - $display{compiler_kind} = '(any compiler)' unless $display{compiler_kind}; - $display{compiler_version} = '(any version)' unless $display{compiler_version}; - - return _pretty_print_configuration( \%display ); -} - -sub _pretty_print_configuration { - my $config = shift; - my @options = map { !defined $config->{$_} ? () : - $config->{$_} ? ( $_ ) : - ( "no $_" ) } - qw(debug unicode mslu); - - return "wxWidgets $config->{version} for $config->{toolkit}; " . - "compiler compatibility: $config->{compiler_kind} " . - $config->{compiler_version} . '; ' . - ( @options ? 'options: ' . join( ', ', @options ) : '' ) . - "\n"; -} - -sub show_configurations { - my $class = shift; - my @configs = $class->get_configurations( @_ ); - - print _pretty_print_configuration( $_ ) foreach @configs; -} - -sub dump_configurations { - my $class = shift; - my @configs = $class->get_configurations( @_ ); - - require Data::Dumper; - print Data::Dumper->Dump( \@configs ); -} - -sub get_configurations { - my $class = shift; - - return awx_sort_config awx_grep_config [ $class->_list ], @_; -} - -my $lib_nok = 'adv|base|html|net|xml|media'; -my $lib_mono_28 = 'adv|base|html|net|xml|xrc|media|aui|richtext'; -my $lib_mono_29 = 'adv|base|html|net|xml|xrc|media|aui|richtext|stc'; - -sub _grep_libraries { - my $lib_filter = $VALUES{version} >= 2.005001 ? qr/(?!a)a/ : # no match - $^O =~ /MSWin32/ ? qr/^(?:$lib_nok|gl)$/ : - qr/^(?:$lib_nok)$/; - - my( $type, @libs ) = @_; - - my $dlls = $VALUES{_libraries}; - - @libs = keys %$dlls unless @libs; - push @libs, 'core', 'base' unless grep /^core|mono$/, @libs; - - my $lib_mono = $VALUES{version} >= 2.009 ? $lib_mono_29 : $lib_mono_28; - if( ( $VALUES{config}{build} || '' ) eq 'mono' ) { - @libs = map { $_ eq 'core' ? ( 'mono' ) : - $_ =~ /^(?:$lib_mono)$/ ? () : - $_ } @libs; - @libs = qw(mono) unless @libs; - } - - return map { _remap( $_ ) } - map { defined( $dlls->{$_}{$type} ) ? $dlls->{$_}{$type} : - croak "No such '$type' library: '$_'" } - grep !/$lib_filter/, @libs; -} - -sub link_libraries { shift; return _grep_libraries( 'link', @_ ) } -sub shared_libraries { shift; return _grep_libraries( 'dll', @_ ) } -sub import_libraries { shift; return _grep_libraries( 'lib', @_ ) } -sub library_keys { shift; return keys %{$VALUES{_libraries}} } - -sub libraries { - my $class = shift; - - return ( _remap( $VALUES{link_libraries} ) || '' ) . ' ' . - join ' ', map { _remap( $_ ) } - $class->link_libraries( @_ ); -} - -1; - -__END__ - -=head1 METHODS - -=head2 load/import - - use Alien::wxWidgets version => 2.004 | [ 2.004, 2.005 ], - compiler_kind => 'gcc' | 'cl', # Windows only - compiler_version => '3.3', # only GCC for now - toolkit => 'gtk2', - debug => 0 | 1, - unicode => 0 | 1, - mslu => 0 | 1, - key => $key, - ; - - Alien::wxWidgets->load( ); - -Using C without parameters will load a default -configuration (for most people this will be the only installed -confiuration). Additional parameters allow to be more selective. - -If there is no matching configuration the method will C. - -In case no arguments are passed in the C, C -will try to find a reasonable default configuration. - -Please note that when the version is pecified as C 2.004> -it means "any version >= 2.004" while when specified as -C [ 2.004, 2.005 ]> it means "any version => 2.004 and < 2.005". - -=head2 key - - my $key = Alien::wxWidgets key; - -Returns an unique key that can be used to reload the -currently-loaded configuration. - -=head2 version - - my $version = Alien::wxWidgets->version; - -Returns the wxWidgets version for this C -installation in the form MAJOR + MINOR / 1_000 + RELEASE / 1_000_000 -e.g. 2.008012 for wxWidgets 2.8.12 and 2.009 for wxWidgets 2.9.0. - -=head2 config - - my $config = Alien::wxWidgets->config; - -Returns some miscellaneous configuration informations for wxWidgets -in the form - - { toolkit => 'msw' | 'gtk' | 'motif' | 'x11' | 'cocoa' | 'mac', - debug => 1 | 0, - unicode => 1 | 0, - mslu => 1 | 0, - } - -=head2 include_path - - my $include_path = Alien::wxWidgets->include_path; - -Returns the include paths to be used in a format suitable for the -compiler (usually something like "-I/usr/local/include -I/opt/wx/include"). - -=head2 defines - - my $defines = Alien::wxWidgets->defines; - -Returns the compiler defines to be used in a format suitable for the -compiler (usually something like "-D__WXDEBUG__ -DFOO=bar"). - -=head2 c_flags - - my $cflags = Alien::wxWidgets->c_flags; - -Returns additional compiler flags to be used. - -=head2 compiler - - my $compiler = Alien::wxWidgets->compiler; - -Returns the (C++) compiler used for compiling wxWidgets. - -=head2 linker - - my $linker = Alien::wxWidgets->linker; - -Returns a linker suitable for linking C++ binaries. - -=head2 link_flags - - my $linkflags = Alien::wxWidgets->link_flags; - -Returns additional link flags. - -=head2 libraries - - my $libraries = Alien::wxWidgets->libraries( qw(gl adv core base) ); - -Returns link flags for linking the libraries passed as arguments. This -usually includes some search path specification in addition to the -libraries themselves. The caller is responsible for the correct order -of the libraries. - -=head2 link_libraries - - my @libraries = Alien::wxWidgets->link_libraries( qw(gl adv core base) ); - -Returns a list of linker flags that can be used to link the libraries -passed as arguments. - -=head2 import_libraries - - my @implib = Alien::wxWidgets->import_libraries( qw(gl adv core base) ); - -Windows specific. Returns a list of import libraries corresponding to -the libraries passed as arguments. - -=head2 shared_libraries - - my @shrlib = Alien::wxWidgets->shared_libraries( qw(gl adv core base) ); - -Returns a list of shared libraries corresponding to the libraries -passed as arguments. - -=head2 library_keys - - my @keys = Alien::wxWidgets->library_keys; - -Returns a list of keys that can be passed to C, -C and C. - -=head2 library_path - - my $library_path = Alien::wxWidgets->shared_library_path; - -Windows specific. Returns the path at which the private copy -of wxWidgets libraries has been installed. - -=head2 prefix - - my $prefix = Alien::wxWidgets->prefix; - -Returns the install prefix for wxWidgets. - -=head2 dump_configurations - - Alien::wxWidgets->dump_configurations( %filters ); - -Prints a list of available configurations (mainly useful for -interactive use/debugging). - -=head2 show_configurations - - Alien::wxWidgets->show_configurations( %filters ); - -Prints a human-readable list of available configurations (mainly -useful for interactive use/debugging). - -=head2 get_configurations - - my $configs = Alien::wxWidgets->get_configurations( %filters ); - -Returns a list of configurations matching the given filters. - -=head1 AUTHOR - -Mattia Barbon - -=head1 LICENSE - -=over 4 - -=item Alien::wxWidgets - -Copyright (c) 2005-2012 Mattia Barbon - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself - -=item inc/bin/patch - -was taken from the Perl Power Tools distributions - -Copyright (c) 1999 Moogle Stuffy Software - -You may play with this software in accordance with the Perl Artistic License. - -You may use this documentation under the auspices of the GNU General Public -License. - -=item inc/bin/patch.exe - -was downloaded from http://gnuwin32.sourceforge.net/packages/patch.htm -ad is copyrighted by its authors, sources are included inside the -inc/src directory. - -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 2 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, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -=item bundled files from CPAN - - inc/File/Fetch/Item.pm - inc/File/Fetch.pm - inc/File/Spec/Unix.pm - inc/IPC/Cmd.pm - inc/Locale/Maketext/Simple.pm - inc/Module/Load/Conditional.pm - inc/Module/Load.pm - inc/Params/Check.pm - inc/Archive/Extract.pm - -Are copyright their respective authors an can be used according -to the license specified in their CPAN distributions. - -=back - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/Config/msw_3_1_0_uni_gcc_3_4.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/Config/msw_3_1_0_uni_gcc_3_4.pm deleted file mode 100644 index f5bcf428..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/Config/msw_3_1_0_uni_gcc_3_4.pm +++ /dev/null @@ -1,149 +0,0 @@ -package Alien::wxWidgets::Config::msw_3_1_0_uni_gcc_3_4; - -use strict; - -our %VALUES; - -{ - no strict 'vars'; - %VALUES = %{ -$VAR1 = { - 'alien_base' => 'msw_3_1_0_uni_gcc_3_4', - 'linker' => 'g++', - 'link_libraries' => '-LC:\\users\\lenox\\slic3r\\LOCAL-~1\\lib\\perl5\\MSWin32-x64-multi-thread\\Alien\\wxWidgets\\msw_3_1_0_uni_gcc_3_4\\lib -lwxmsw31u_core -lwxbase31u ', - 'defines' => '-DHAVE_W32API_H -D__WXMSW__ -DNDEBUG -D_UNICODE -DWXUSINGDLL -DNOPCH -DNO_GCC_PRAGMA ', - 'version' => '3.001000', - 'shared_library_path' => 'C:\\users\\lenox\\slic3r\\LOCAL-~1\\lib\\perl5\\MSWin32-x64-multi-thread\\Alien\\wxWidgets\\msw_3_1_0_uni_gcc_3_4\\lib', - 'c_flags' => ' -m64 -O2 -mthreads -m64 -Os ', - 'compiler' => 'g++', - 'link_flags' => ' -s -m64 ', - 'wx_base_directory' => 'C:\\users\\lenox\\slic3r\\LOCAL-~1\\lib\\perl5\\MSWin32-x64-multi-thread\\Alien\\wxWidgets\\msw_3_1_0_uni_gcc_3_4', - 'config' => { - 'build' => 'multi', - 'unicode' => 1, - 'compiler_version' => '3.4', - 'toolkit' => 'msw', - 'mslu' => 0, - 'compiler_kind' => 'gcc', - 'debug' => 0 - }, - '_libraries' => { - 'richtext' => { - 'dll' => 'wxmsw310u_richtext_gcc_custom.dll', - 'lib' => 'libwxmsw31u_richtext.a', - 'link' => '-lwxmsw31u_richtext' - }, - 'ribbon' => { - 'link' => '-lwxmsw31u_ribbon', - 'lib' => 'libwxmsw31u_ribbon.a', - 'dll' => 'wxmsw310u_ribbon_gcc_custom.dll' - }, - 'xrc' => { - 'link' => '-lwxmsw31u_xrc', - 'lib' => 'libwxmsw31u_xrc.a', - 'dll' => 'wxmsw310u_xrc_gcc_custom.dll' - }, - 'base' => { - 'dll' => 'wxbase310u_gcc_custom.dll', - 'link' => '-lwxbase31u', - 'lib' => 'libwxbase31u.a' - }, - 'xml' => { - 'dll' => 'wxbase310u_xml_gcc_custom.dll', - 'link' => '-lwxbase31u_xml', - 'lib' => 'libwxbase31u_xml.a' - }, - 'media' => { - 'dll' => 'wxmsw310u_media_gcc_custom.dll', - 'lib' => 'libwxmsw31u_media.a', - 'link' => '-lwxmsw31u_media' - }, - 'propgrid' => { - 'lib' => 'libwxmsw31u_propgrid.a', - 'link' => '-lwxmsw31u_propgrid', - 'dll' => 'wxmsw310u_propgrid_gcc_custom.dll' - }, - 'gl' => { - 'link' => '-lwxmsw31u_gl', - 'lib' => 'libwxmsw31u_gl.a', - 'dll' => 'wxmsw310u_gl_gcc_custom.dll' - }, - 'stc' => { - 'dll' => 'wxmsw310u_stc_gcc_custom.dll', - 'lib' => 'libwxmsw31u_stc.a', - 'link' => '-lwxmsw31u_stc' - }, - 'html' => { - 'link' => '-lwxmsw31u_html', - 'lib' => 'libwxmsw31u_html.a', - 'dll' => 'wxmsw310u_html_gcc_custom.dll' - }, - 'adv' => { - 'link' => '-lwxmsw31u_adv', - 'lib' => 'libwxmsw31u_adv.a', - 'dll' => 'wxmsw310u_adv_gcc_custom.dll' - }, - 'net' => { - 'link' => '-lwxbase31u_net', - 'lib' => 'libwxbase31u_net.a', - 'dll' => 'wxbase310u_net_gcc_custom.dll' - }, - 'webview' => { - 'dll' => 'wxmsw310u_webview_gcc_custom.dll', - 'link' => '-lwxmsw31u_webview', - 'lib' => 'libwxmsw31u_webview.a' - }, - 'core' => { - 'lib' => 'libwxmsw31u_core.a', - 'link' => '-lwxmsw31u_core', - 'dll' => 'wxmsw310u_core_gcc_custom.dll' - }, - 'aui' => { - 'dll' => 'wxmsw310u_aui_gcc_custom.dll', - 'lib' => 'libwxmsw31u_aui.a', - 'link' => '-lwxmsw31u_aui' - } - }, - 'include_path' => '-IC:\\users\\lenox\\slic3r\\LOCAL-~1\\lib\\perl5\\MSWin32-x64-multi-thread\\Alien\\wxWidgets\\msw_3_1_0_uni_gcc_3_4\\lib -IC:\\users\\lenox\\slic3r\\LOCAL-~1\\lib\\perl5\\MSWin32-x64-multi-thread\\Alien\\wxWidgets\\msw_3_1_0_uni_gcc_3_4\\include -IC:\\users\\lenox\\slic3r\\LOCAL-~1\\lib\\perl5\\MSWin32-x64-multi-thread\\Alien\\wxWidgets\\msw_3_1_0_uni_gcc_3_4\\include ', - 'alien_package' => 'Alien::wxWidgets::Config::msw_3_1_0_uni_gcc_3_4', - 'prefix' => 'C:\\users\\lenox\\slic3r\\LOCAL-~1\\lib\\perl5\\MSWin32-x64-multi-thread\\Alien\\wxWidgets\\msw_3_1_0_uni_gcc_3_4' - }; - }; -} - -my $key = substr __PACKAGE__, 1 + rindex __PACKAGE__, ':'; - -my ($portablebase); -my $wxwidgetspath = __PACKAGE__ . '.pm'; -$wxwidgetspath =~ s/::/\//g; - -for (@INC) { - if( -f qq($_/$wxwidgetspath ) ) { - $portablebase = qq($_/Alien/wxWidgets/$key); - last; - } -} - -if( $portablebase ) { - $portablebase =~ s{/}{\\}g; - my $portablelibpath = qq($portablebase\\lib); - my $portableincpath = qq($portablebase\\include); - - $VALUES{include_path} = qq{-I$portablelibpath -I$portableincpath}; - $VALUES{link_libraries} =~ s{-L\S+\s}{-L$portablelibpath }; - $VALUES{shared_library_path} = $portablelibpath; - $VALUES{wx_base_directory} = $portablebase; - $VALUES{prefix} = $portablebase; -} - -sub values { %VALUES, key => $key } - -sub config { - +{ %{$VALUES{config}}, - package => __PACKAGE__, - key => $key, - version => $VALUES{version}, - } -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/Utility.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/Utility.pm deleted file mode 100644 index b9f5bac3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/Utility.pm +++ /dev/null @@ -1,282 +0,0 @@ -package Alien::wxWidgets::Utility; - -=head1 NAME - -Alien::wxWidgets::Utility - INTERNAL: do not use - -=cut - -use strict; -use base qw(Exporter); -use Config; -use File::Basename qw(); - -BEGIN { - if( $^O eq 'MSWin32' && $Config{_a} ne $Config{lib_ext} ) { - print STDERR <new( config => { cc => $cc, ld => $ld }, - quiet => 1, - ); - - if( !$b->have_compiler ) { - print STDERR <&STDOUT]; exec \@ARGV${quotes} -- $_[0]!; -} - -sub awx_cc_is_msvc { - my( $cc ) = @_; - - return ( $^O =~ /MSWin32/ and $cc =~ /^cl/i ) ? 1 : 0; -} - -sub awx_cc_is_gcc { - my( $cc ) = @_; - - return scalar( awx_capture( "$cc --version" ) =~ m/g(cc|\+\+)/i ) # 3.x - || scalar( awx_capture( "$cc" ) =~ m/gcc/i ); # 2.95 -} - -sub awx_cc_abi_version { - my( $cc ) = @_; - - _warn_nonworking_compiler( $cc ); - - my $is_gcc = awx_cc_is_gcc( $cc ); - my $is_msvc = awx_cc_is_msvc( $cc ); - return 0 unless $is_gcc || $is_msvc; - my $ver = awx_cc_version( $cc ); - if( $is_gcc ) { - return 0 unless $ver > 0; - return '3.4' if $ver >= 3.4; - return '3.2' if $ver >= 3.2; - return $ver; - } elsif( $is_msvc ) { - return 0 if $ver < 7; - return $ver; - } -} - -sub awx_cc_version { - my( $cc ) = @_; - - _warn_nonworking_compiler( $cc ); - - my $is_gcc = awx_cc_is_gcc( $cc ); - my $is_msvc = awx_cc_is_msvc( $cc ); - return 0 unless $is_gcc || $is_msvc; - - if( $is_gcc ) { - my $ver = awx_capture( "$cc --version" ); - $ver =~ m/(\d+\.\d+)(?:\.\d+)?/ or return 0; - return $1; - } elsif( $is_msvc ) { - my $ver = awx_capture( $cc ); - $ver =~ m/(\d+\.\d+)\.\d+/ or return 0; - return 8.0 if $1 >= 14; - return 7.1 if $1 >= 13.10; - return 7.0 if $1 >= 13; - return 6.0 if $1 >= 12; - return 5.0 if $1 >= 11; - return 0; - } -} - -sub awx_compiler_kind { - my( $cc ) = @_; - - _warn_nonworking_compiler( $cc ); - - return 'gcc' if awx_cc_is_gcc( $cc ); - return 'cl' if awx_cc_is_msvc( $cc ); - - return 'nc'; # as in 'No Clue' -} - -# sort a list of configurations by version, debug/release, unicode/ansi, mslu -sub awx_sort_config { - # comparison functions treating undef as 0 or '' - # numerico comparison - my $make_cmpn = sub { - my $k = shift; - sub { exists $a->{$k} && exists $b->{$k} ? $a->{$k} <=> $b->{$k} : - exists $a->{$k} ? 1 : - exists $b->{$k} ? -1 : - 0 } - }; - # string comparison - my $make_cmps = sub { - my $k = shift; - sub { exists $a->{$k} && exists $b->{$k} ? $a->{$k} cmp $b->{$k} : - exists $a->{$k} ? 1 : - exists $b->{$k} ? -1 : - 0 } - }; - # reverse comparison - my $rev = sub { my $cmp = shift; sub { -1 * &$cmp } }; - # compare by different criteria, using the first nonzero as tie-breaker - my $crit_sort = sub { - my @crit = @_; - sub { - foreach ( @crit ) { - my $cmp = &$_; - return $cmp if $cmp; - } - - return 0; - } - }; - - my $cmp = $crit_sort->( $make_cmpn->( 'version' ), - $rev->( $make_cmpn->( 'debug' ) ), - $make_cmpn->( 'unicode' ), - $make_cmpn->( 'mslu' ) ); - - return reverse sort $cmp @_; -} - -sub awx_grep_config { - my( $cfgs ) = shift; - my( %a ) = @_; - # compare to a numeric range or value - # low extreme included, high extreme excluded - # if $a{key} = [ lo, hi ] then range else low extreme - my $make_cmpr = sub { - my $k = shift; - sub { - return 1 unless exists $a{$k}; - ref $a{$k} ? $a{$k}[0] <= $_->{$k} && $_->{$k} < $a{$k}[1] : - $a{$k} <= $_->{$k}; - } - }; - # compare for numeric equality - my $make_cmpn = sub { - my $k = shift; - sub { exists $a{$k} ? $a{$k} == $_->{$k} : 1 } - }; - # compare for string equality - my $make_cmps = sub { - my $k = shift; - sub { exists $a{$k} ? $a{$k} eq $_->{$k} : 1 } - }; - my $compare_tk = sub { - return 1 unless exists $a{toolkit}; - my $atk = $a{toolkit} eq 'mac' ? 'osx_carbon' : - $a{toolkit}; - my $btk = $_->{toolkit} eq 'mac' ? 'osx_carbon' : - $_->{toolkit}; - return $atk eq $btk; - }; - - # note tha if the criteria was not supplied, the comparison is a noop - my $wver = $make_cmpr->( 'version' ); - my $ckind = $make_cmps->( 'compiler_kind' ); - my $cver = $make_cmpn->( 'compiler_version' ); - my $tkit = $compare_tk; - my $deb = $make_cmpn->( 'debug' ); - my $uni = $make_cmpn->( 'unicode' ); - my $mslu = $make_cmpn->( 'mslu' ); - my $key = $make_cmps->( 'key' ); - - grep { &$wver } grep { &$ckind } grep { &$cver } - grep { &$tkit } grep { &$deb } grep { &$uni } - grep { &$mslu } grep { &$key } - @{$cfgs} -} - -# automatically add compiler data unless the key was supplied -sub awx_smart_config { - my( %args ) = @_; - # the key already identifies the configuration - return %args if $args{key}; - - my $cc = $ENV{CXX} || $ENV{CC} || $Config{ccname} || $Config{cc}; - my $kind = awx_compiler_kind( $cc ); - my $version = awx_cc_abi_version( $cc ); - - $args{compiler_kind} ||= $kind; - $args{compiler_version} ||= $version; - - return %args; -} - -# allow to remap srings in the configuration; useful when building -# archives -my @prefixes; - -BEGIN { - if( $ENV{ALIEN_WX_PREFIXES} ) { - my @kv = split /,\s*/, $ENV{ALIEN_WX_PREFIXES}; - - while( @kv ) { - my( $match, $repl ) = ( shift( @kv ) || '', shift( @kv ) || '' ); - - push @prefixes, [ $match, $^O eq 'MSWin32' ? - qr/\Q$match\E/i : - qr/\Q$match\E/, $repl ]; - } - } -} - -sub _awx_remap { - my( $string ) = @_; - return $string if ref $string; - return $string if $Alien::wxWidgets::dont_remap; - - foreach my $prefix ( @prefixes ) { - my( $str, $rx, $repl ) = @$prefix; - - $string =~ s{$rx(\S*)}{$repl$1}g; - } - - return $string; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aboutdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aboutdlg.h deleted file mode 100644 index 975b5def..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aboutdlg.h +++ /dev/null @@ -1,169 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/aboutdlg.h -// Purpose: declaration of wxAboutDialog class -// Author: Vadim Zeitlin -// Created: 2006-10-07 -// Copyright: (c) 2006 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ABOUTDLG_H_ -#define _WX_ABOUTDLG_H_ - -#include "wx/defs.h" - -#if wxUSE_ABOUTDLG - -#include "wx/app.h" -#include "wx/icon.h" - -// ---------------------------------------------------------------------------- -// wxAboutDialogInfo: information shown by the standard "About" dialog -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxAboutDialogInfo -{ -public: - // all fields are initially uninitialized - wxAboutDialogInfo() { } - - // accessors for various simply fields - // ----------------------------------- - - // name of the program, if not used defaults to wxApp::GetAppDisplayName() - void SetName(const wxString& name) { m_name = name; } - wxString GetName() const - { return m_name.empty() ? wxTheApp->GetAppDisplayName() : m_name; } - - // version should contain program version without "version" word (e.g., - // "1.2" or "RC2") while longVersion may contain the full version including - // "version" word (e.g., "Version 1.2" or "Release Candidate 2") - // - // if longVersion is empty, it is automatically constructed from version - // - // generic and gtk native: use short version only, as a suffix to the - // program name msw and osx native: use long version - void SetVersion(const wxString& version, - const wxString& longVersion = wxString()); - - bool HasVersion() const { return !m_version.empty(); } - const wxString& GetVersion() const { return m_version; } - const wxString& GetLongVersion() const { return m_longVersion; } - - // brief, but possibly multiline, description of the program - void SetDescription(const wxString& desc) { m_description = desc; } - bool HasDescription() const { return !m_description.empty(); } - const wxString& GetDescription() const { return m_description; } - - // short string containing the program copyright information - void SetCopyright(const wxString& copyright) { m_copyright = copyright; } - bool HasCopyright() const { return !m_copyright.empty(); } - const wxString& GetCopyright() const { return m_copyright; } - - // long, multiline string containing the text of the program licence - void SetLicence(const wxString& licence) { m_licence = licence; } - void SetLicense(const wxString& licence) { m_licence = licence; } - bool HasLicence() const { return !m_licence.empty(); } - const wxString& GetLicence() const { return m_licence; } - - // icon to be shown in the dialog, defaults to the main frame icon - void SetIcon(const wxIcon& icon) { m_icon = icon; } - bool HasIcon() const { return m_icon.IsOk(); } - wxIcon GetIcon() const; - - // web site for the program and its description (defaults to URL itself if - // empty) - void SetWebSite(const wxString& url, const wxString& desc = wxEmptyString) - { - m_url = url; - m_urlDesc = desc.empty() ? url : desc; - } - - bool HasWebSite() const { return !m_url.empty(); } - - const wxString& GetWebSiteURL() const { return m_url; } - const wxString& GetWebSiteDescription() const { return m_urlDesc; } - - // accessors for the arrays - // ------------------------ - - // the list of developers of the program - void SetDevelopers(const wxArrayString& developers) - { m_developers = developers; } - void AddDeveloper(const wxString& developer) - { m_developers.push_back(developer); } - - bool HasDevelopers() const { return !m_developers.empty(); } - const wxArrayString& GetDevelopers() const { return m_developers; } - - // the list of documentation writers - void SetDocWriters(const wxArrayString& docwriters) - { m_docwriters = docwriters; } - void AddDocWriter(const wxString& docwriter) - { m_docwriters.push_back(docwriter); } - - bool HasDocWriters() const { return !m_docwriters.empty(); } - const wxArrayString& GetDocWriters() const { return m_docwriters; } - - // the list of artists for the program art - void SetArtists(const wxArrayString& artists) - { m_artists = artists; } - void AddArtist(const wxString& artist) - { m_artists.push_back(artist); } - - bool HasArtists() const { return !m_artists.empty(); } - const wxArrayString& GetArtists() const { return m_artists; } - - // the list of translators - void SetTranslators(const wxArrayString& translators) - { m_translators = translators; } - void AddTranslator(const wxString& translator) - { m_translators.push_back(translator); } - - bool HasTranslators() const { return !m_translators.empty(); } - const wxArrayString& GetTranslators() const { return m_translators; } - - - // implementation only - // ------------------- - - // "simple" about dialog shows only textual information (with possibly - // default icon but without hyperlink nor any long texts such as the - // licence text) - bool IsSimple() const - { return !HasWebSite() && !HasIcon() && !HasLicence(); } - - // get the description and credits (i.e. all of developers, doc writers, - // artists and translators) as a one long multiline string - wxString GetDescriptionAndCredits() const; - - // returns the copyright with the (C) string substituted by the Unicode - // character U+00A9 - wxString GetCopyrightToDisplay() const; - -private: - wxString m_name, - m_version, - m_longVersion, - m_description, - m_copyright, - m_licence; - - wxIcon m_icon; - - wxString m_url, - m_urlDesc; - - wxArrayString m_developers, - m_docwriters, - m_artists, - m_translators; -}; - -// functions to show the about dialog box -WXDLLIMPEXP_ADV void wxAboutBox(const wxAboutDialogInfo& info, wxWindow* parent = NULL); - -#endif // wxUSE_ABOUTDLG - -#endif // _WX_ABOUTDLG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/accel.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/accel.h deleted file mode 100644 index 60403956..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/accel.h +++ /dev/null @@ -1,176 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/accel.h -// Purpose: wxAcceleratorEntry and wxAcceleratorTable classes -// Author: Julian Smart, Robert Roebling, Vadim Zeitlin -// Modified by: -// Created: 31.05.01 (extracted from other files) -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ACCEL_H_BASE_ -#define _WX_ACCEL_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_ACCEL - -#include "wx/object.h" - -class WXDLLIMPEXP_FWD_CORE wxAcceleratorTable; -class WXDLLIMPEXP_FWD_CORE wxMenuItem; -class WXDLLIMPEXP_FWD_CORE wxKeyEvent; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// wxAcceleratorEntry flags -enum wxAcceleratorEntryFlags -{ - wxACCEL_NORMAL = 0x0000, // no modifiers - wxACCEL_ALT = 0x0001, // hold Alt key down - wxACCEL_CTRL = 0x0002, // hold Ctrl key down - wxACCEL_SHIFT = 0x0004, // hold Shift key down -#if defined(__WXMAC__) - wxACCEL_RAW_CTRL= 0x0008, // -#else - wxACCEL_RAW_CTRL= wxACCEL_CTRL, -#endif - wxACCEL_CMD = wxACCEL_CTRL -}; - -// ---------------------------------------------------------------------------- -// an entry in wxAcceleratorTable corresponds to one accelerator -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxAcceleratorEntry -{ -public: - wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0, - wxMenuItem *item = NULL) - : m_flags(flags) - , m_keyCode(keyCode) - , m_command(cmd) - , m_item(item) - { } - - wxAcceleratorEntry(const wxAcceleratorEntry& entry) - : m_flags(entry.m_flags) - , m_keyCode(entry.m_keyCode) - , m_command(entry.m_command) - , m_item(entry.m_item) - { } - - // create accelerator corresponding to the specified string, return NULL if - // string couldn't be parsed or a pointer to be deleted by the caller - static wxAcceleratorEntry *Create(const wxString& str); - - wxAcceleratorEntry& operator=(const wxAcceleratorEntry& entry) - { - if (&entry != this) - Set(entry.m_flags, entry.m_keyCode, entry.m_command, entry.m_item); - return *this; - } - - void Set(int flags, int keyCode, int cmd, wxMenuItem *item = NULL) - { - m_flags = flags; - m_keyCode = keyCode; - m_command = cmd; - m_item = item; - } - - void SetMenuItem(wxMenuItem *item) { m_item = item; } - - int GetFlags() const { return m_flags; } - int GetKeyCode() const { return m_keyCode; } - int GetCommand() const { return m_command; } - - wxMenuItem *GetMenuItem() const { return m_item; } - - bool operator==(const wxAcceleratorEntry& entry) const - { - return m_flags == entry.m_flags && - m_keyCode == entry.m_keyCode && - m_command == entry.m_command && - m_item == entry.m_item; - } - - bool operator!=(const wxAcceleratorEntry& entry) const - { return !(*this == entry); } - -#if defined(__WXMOTIF__) - // Implementation use only - bool MatchesEvent(const wxKeyEvent& event) const; -#endif - - bool IsOk() const - { - return m_keyCode != 0; - } - - - // string <-> wxAcceleratorEntry conversion - // ---------------------------------------- - - // returns a wxString for the this accelerator. - // this function formats it using the - format - // where maybe a hyphen-separated list of "shift|alt|ctrl" - wxString ToString() const { return AsPossiblyLocalizedString(true); } - - // same as above but without translating, useful if the string is meant to - // be stored in a file or otherwise stored, instead of being shown to the - // user - wxString ToRawString() const { return AsPossiblyLocalizedString(false); } - - // returns true if the given string correctly initialized this object - // (i.e. if IsOk() returns true after this call) - bool FromString(const wxString& str); - - -private: - wxString AsPossiblyLocalizedString(bool localized) const; - - // common part of Create() and FromString() - static bool ParseAccel(const wxString& str, int *flags, int *keycode); - - - int m_flags; // combination of wxACCEL_XXX constants - int m_keyCode; // ASCII or virtual keycode - int m_command; // Command id to generate - - // the menu item this entry corresponds to, may be NULL - wxMenuItem *m_item; - - // for compatibility with old code, use accessors now! - friend class WXDLLIMPEXP_FWD_CORE wxMenu; -}; - -// ---------------------------------------------------------------------------- -// include wxAcceleratorTable class declaration, it is only used by the library -// and so doesn't have any published user visible interface -// ---------------------------------------------------------------------------- - -#if defined(__WXUNIVERSAL__) - #include "wx/generic/accel.h" -#elif defined(__WXMSW__) - #include "wx/msw/accel.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/accel.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/accel.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/accel.h" -#elif defined(__WXMAC__) - #include "wx/osx/accel.h" -#elif defined(__WXQT__) - #include "wx/qt/accel.h" -#endif - -extern WXDLLIMPEXP_DATA_CORE(wxAcceleratorTable) wxNullAcceleratorTable; - -#endif // wxUSE_ACCEL - -#endif - // _WX_ACCEL_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/access.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/access.h deleted file mode 100644 index 7eb04173..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/access.h +++ /dev/null @@ -1,376 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/access.h -// Purpose: Accessibility classes -// Author: Julian Smart -// Modified by: -// Created: 2003-02-12 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ACCESSBASE_H_ -#define _WX_ACCESSBASE_H_ - -// ---------------------------------------------------------------------------- -// headers we have to include here -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_ACCESSIBILITY - -#include "wx/variant.h" - -enum wxAccStatus -{ - wxACC_FAIL, - wxACC_FALSE, - wxACC_OK, - wxACC_NOT_IMPLEMENTED, - wxACC_NOT_SUPPORTED -}; - -// Child ids are integer identifiers from 1 up. -// So zero represents 'this' object. -#define wxACC_SELF 0 - -// Navigation constants - -enum wxNavDir -{ - wxNAVDIR_DOWN, - wxNAVDIR_FIRSTCHILD, - wxNAVDIR_LASTCHILD, - wxNAVDIR_LEFT, - wxNAVDIR_NEXT, - wxNAVDIR_PREVIOUS, - wxNAVDIR_RIGHT, - wxNAVDIR_UP -}; - -// Role constants - -enum wxAccRole { - wxROLE_NONE, - wxROLE_SYSTEM_ALERT, - wxROLE_SYSTEM_ANIMATION, - wxROLE_SYSTEM_APPLICATION, - wxROLE_SYSTEM_BORDER, - wxROLE_SYSTEM_BUTTONDROPDOWN, - wxROLE_SYSTEM_BUTTONDROPDOWNGRID, - wxROLE_SYSTEM_BUTTONMENU, - wxROLE_SYSTEM_CARET, - wxROLE_SYSTEM_CELL, - wxROLE_SYSTEM_CHARACTER, - wxROLE_SYSTEM_CHART, - wxROLE_SYSTEM_CHECKBUTTON, - wxROLE_SYSTEM_CLIENT, - wxROLE_SYSTEM_CLOCK, - wxROLE_SYSTEM_COLUMN, - wxROLE_SYSTEM_COLUMNHEADER, - wxROLE_SYSTEM_COMBOBOX, - wxROLE_SYSTEM_CURSOR, - wxROLE_SYSTEM_DIAGRAM, - wxROLE_SYSTEM_DIAL, - wxROLE_SYSTEM_DIALOG, - wxROLE_SYSTEM_DOCUMENT, - wxROLE_SYSTEM_DROPLIST, - wxROLE_SYSTEM_EQUATION, - wxROLE_SYSTEM_GRAPHIC, - wxROLE_SYSTEM_GRIP, - wxROLE_SYSTEM_GROUPING, - wxROLE_SYSTEM_HELPBALLOON, - wxROLE_SYSTEM_HOTKEYFIELD, - wxROLE_SYSTEM_INDICATOR, - wxROLE_SYSTEM_LINK, - wxROLE_SYSTEM_LIST, - wxROLE_SYSTEM_LISTITEM, - wxROLE_SYSTEM_MENUBAR, - wxROLE_SYSTEM_MENUITEM, - wxROLE_SYSTEM_MENUPOPUP, - wxROLE_SYSTEM_OUTLINE, - wxROLE_SYSTEM_OUTLINEITEM, - wxROLE_SYSTEM_PAGETAB, - wxROLE_SYSTEM_PAGETABLIST, - wxROLE_SYSTEM_PANE, - wxROLE_SYSTEM_PROGRESSBAR, - wxROLE_SYSTEM_PROPERTYPAGE, - wxROLE_SYSTEM_PUSHBUTTON, - wxROLE_SYSTEM_RADIOBUTTON, - wxROLE_SYSTEM_ROW, - wxROLE_SYSTEM_ROWHEADER, - wxROLE_SYSTEM_SCROLLBAR, - wxROLE_SYSTEM_SEPARATOR, - wxROLE_SYSTEM_SLIDER, - wxROLE_SYSTEM_SOUND, - wxROLE_SYSTEM_SPINBUTTON, - wxROLE_SYSTEM_STATICTEXT, - wxROLE_SYSTEM_STATUSBAR, - wxROLE_SYSTEM_TABLE, - wxROLE_SYSTEM_TEXT, - wxROLE_SYSTEM_TITLEBAR, - wxROLE_SYSTEM_TOOLBAR, - wxROLE_SYSTEM_TOOLTIP, - wxROLE_SYSTEM_WHITESPACE, - wxROLE_SYSTEM_WINDOW -}; - -// Object types - -enum wxAccObject { - wxOBJID_WINDOW = 0x00000000, - wxOBJID_SYSMENU = 0xFFFFFFFF, - wxOBJID_TITLEBAR = 0xFFFFFFFE, - wxOBJID_MENU = 0xFFFFFFFD, - wxOBJID_CLIENT = 0xFFFFFFFC, - wxOBJID_VSCROLL = 0xFFFFFFFB, - wxOBJID_HSCROLL = 0xFFFFFFFA, - wxOBJID_SIZEGRIP = 0xFFFFFFF9, - wxOBJID_CARET = 0xFFFFFFF8, - wxOBJID_CURSOR = 0xFFFFFFF7, - wxOBJID_ALERT = 0xFFFFFFF6, - wxOBJID_SOUND = 0xFFFFFFF5 -}; - -// Accessible states - -#define wxACC_STATE_SYSTEM_ALERT_HIGH 0x00000001 -#define wxACC_STATE_SYSTEM_ALERT_MEDIUM 0x00000002 -#define wxACC_STATE_SYSTEM_ALERT_LOW 0x00000004 -#define wxACC_STATE_SYSTEM_ANIMATED 0x00000008 -#define wxACC_STATE_SYSTEM_BUSY 0x00000010 -#define wxACC_STATE_SYSTEM_CHECKED 0x00000020 -#define wxACC_STATE_SYSTEM_COLLAPSED 0x00000040 -#define wxACC_STATE_SYSTEM_DEFAULT 0x00000080 -#define wxACC_STATE_SYSTEM_EXPANDED 0x00000100 -#define wxACC_STATE_SYSTEM_EXTSELECTABLE 0x00000200 -#define wxACC_STATE_SYSTEM_FLOATING 0x00000400 -#define wxACC_STATE_SYSTEM_FOCUSABLE 0x00000800 -#define wxACC_STATE_SYSTEM_FOCUSED 0x00001000 -#define wxACC_STATE_SYSTEM_HOTTRACKED 0x00002000 -#define wxACC_STATE_SYSTEM_INVISIBLE 0x00004000 -#define wxACC_STATE_SYSTEM_MARQUEED 0x00008000 -#define wxACC_STATE_SYSTEM_MIXED 0x00010000 -#define wxACC_STATE_SYSTEM_MULTISELECTABLE 0x00020000 -#define wxACC_STATE_SYSTEM_OFFSCREEN 0x00040000 -#define wxACC_STATE_SYSTEM_PRESSED 0x00080000 -#define wxACC_STATE_SYSTEM_PROTECTED 0x00100000 -#define wxACC_STATE_SYSTEM_READONLY 0x00200000 -#define wxACC_STATE_SYSTEM_SELECTABLE 0x00400000 -#define wxACC_STATE_SYSTEM_SELECTED 0x00800000 -#define wxACC_STATE_SYSTEM_SELFVOICING 0x01000000 -#define wxACC_STATE_SYSTEM_UNAVAILABLE 0x02000000 - -// Selection flag - -enum wxAccSelectionFlags -{ - wxACC_SEL_NONE = 0, - wxACC_SEL_TAKEFOCUS = 1, - wxACC_SEL_TAKESELECTION = 2, - wxACC_SEL_EXTENDSELECTION = 4, - wxACC_SEL_ADDSELECTION = 8, - wxACC_SEL_REMOVESELECTION = 16 -}; - -// Accessibility event identifiers - -#define wxACC_EVENT_SYSTEM_SOUND 0x0001 -#define wxACC_EVENT_SYSTEM_ALERT 0x0002 -#define wxACC_EVENT_SYSTEM_FOREGROUND 0x0003 -#define wxACC_EVENT_SYSTEM_MENUSTART 0x0004 -#define wxACC_EVENT_SYSTEM_MENUEND 0x0005 -#define wxACC_EVENT_SYSTEM_MENUPOPUPSTART 0x0006 -#define wxACC_EVENT_SYSTEM_MENUPOPUPEND 0x0007 -#define wxACC_EVENT_SYSTEM_CAPTURESTART 0x0008 -#define wxACC_EVENT_SYSTEM_CAPTUREEND 0x0009 -#define wxACC_EVENT_SYSTEM_MOVESIZESTART 0x000A -#define wxACC_EVENT_SYSTEM_MOVESIZEEND 0x000B -#define wxACC_EVENT_SYSTEM_CONTEXTHELPSTART 0x000C -#define wxACC_EVENT_SYSTEM_CONTEXTHELPEND 0x000D -#define wxACC_EVENT_SYSTEM_DRAGDROPSTART 0x000E -#define wxACC_EVENT_SYSTEM_DRAGDROPEND 0x000F -#define wxACC_EVENT_SYSTEM_DIALOGSTART 0x0010 -#define wxACC_EVENT_SYSTEM_DIALOGEND 0x0011 -#define wxACC_EVENT_SYSTEM_SCROLLINGSTART 0x0012 -#define wxACC_EVENT_SYSTEM_SCROLLINGEND 0x0013 -#define wxACC_EVENT_SYSTEM_SWITCHSTART 0x0014 -#define wxACC_EVENT_SYSTEM_SWITCHEND 0x0015 -#define wxACC_EVENT_SYSTEM_MINIMIZESTART 0x0016 -#define wxACC_EVENT_SYSTEM_MINIMIZEEND 0x0017 -#define wxACC_EVENT_OBJECT_CREATE 0x8000 -#define wxACC_EVENT_OBJECT_DESTROY 0x8001 -#define wxACC_EVENT_OBJECT_SHOW 0x8002 -#define wxACC_EVENT_OBJECT_HIDE 0x8003 -#define wxACC_EVENT_OBJECT_REORDER 0x8004 -#define wxACC_EVENT_OBJECT_FOCUS 0x8005 -#define wxACC_EVENT_OBJECT_SELECTION 0x8006 -#define wxACC_EVENT_OBJECT_SELECTIONADD 0x8007 -#define wxACC_EVENT_OBJECT_SELECTIONREMOVE 0x8008 -#define wxACC_EVENT_OBJECT_SELECTIONWITHIN 0x8009 -#define wxACC_EVENT_OBJECT_STATECHANGE 0x800A -#define wxACC_EVENT_OBJECT_LOCATIONCHANGE 0x800B -#define wxACC_EVENT_OBJECT_NAMECHANGE 0x800C -#define wxACC_EVENT_OBJECT_DESCRIPTIONCHANGE 0x800D -#define wxACC_EVENT_OBJECT_VALUECHANGE 0x800E -#define wxACC_EVENT_OBJECT_PARENTCHANGE 0x800F -#define wxACC_EVENT_OBJECT_HELPCHANGE 0x8010 -#define wxACC_EVENT_OBJECT_DEFACTIONCHANGE 0x8011 -#define wxACC_EVENT_OBJECT_ACCELERATORCHANGE 0x8012 - -// ---------------------------------------------------------------------------- -// wxAccessible -// All functions return an indication of success, failure, or not implemented. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxAccessible; -class WXDLLIMPEXP_FWD_CORE wxWindow; -class WXDLLIMPEXP_FWD_CORE wxPoint; -class WXDLLIMPEXP_FWD_CORE wxRect; -class WXDLLIMPEXP_CORE wxAccessibleBase : public wxObject -{ - wxDECLARE_NO_COPY_CLASS(wxAccessibleBase); - -public: - wxAccessibleBase(wxWindow* win): m_window(win) {} - virtual ~wxAccessibleBase() {} - -// Overridables - - // Can return either a child object, or an integer - // representing the child element, starting from 1. - // pt is in screen coordinates. - virtual wxAccStatus HitTest(const wxPoint& WXUNUSED(pt), int* WXUNUSED(childId), wxAccessible** WXUNUSED(childObject)) - { return wxACC_NOT_IMPLEMENTED; } - - // Returns the rectangle for this object (id = 0) or a child element (id > 0). - // rect is in screen coordinates. - virtual wxAccStatus GetLocation(wxRect& WXUNUSED(rect), int WXUNUSED(elementId)) - { return wxACC_NOT_IMPLEMENTED; } - - // Navigates from fromId to toId/toObject. - virtual wxAccStatus Navigate(wxNavDir WXUNUSED(navDir), int WXUNUSED(fromId), - int* WXUNUSED(toId), wxAccessible** WXUNUSED(toObject)) - { return wxACC_NOT_IMPLEMENTED; } - - // Gets the name of the specified object. - virtual wxAccStatus GetName(int WXUNUSED(childId), wxString* WXUNUSED(name)) - { return wxACC_NOT_IMPLEMENTED; } - - // Gets the number of children. - virtual wxAccStatus GetChildCount(int* WXUNUSED(childCount)) - { return wxACC_NOT_IMPLEMENTED; } - - // Gets the specified child (starting from 1). - // If *child is NULL and return value is wxACC_OK, - // this means that the child is a simple element and - // not an accessible object. - virtual wxAccStatus GetChild(int WXUNUSED(childId), wxAccessible** WXUNUSED(child)) - { return wxACC_NOT_IMPLEMENTED; } - - // Gets the parent, or NULL. - virtual wxAccStatus GetParent(wxAccessible** WXUNUSED(parent)) - { return wxACC_NOT_IMPLEMENTED; } - - // Performs the default action. childId is 0 (the action for this object) - // or > 0 (the action for a child). - // Return wxACC_NOT_SUPPORTED if there is no default action for this - // window (e.g. an edit control). - virtual wxAccStatus DoDefaultAction(int WXUNUSED(childId)) - { return wxACC_NOT_IMPLEMENTED; } - - // Gets the default action for this object (0) or > 0 (the action for a child). - // Return wxACC_OK even if there is no action. actionName is the action, or the empty - // string if there is no action. - // The retrieved string describes the action that is performed on an object, - // not what the object does as a result. For example, a toolbar button that prints - // a document has a default action of "Press" rather than "Prints the current document." - virtual wxAccStatus GetDefaultAction(int WXUNUSED(childId), wxString* WXUNUSED(actionName)) - { return wxACC_NOT_IMPLEMENTED; } - - // Returns the description for this object or a child. - virtual wxAccStatus GetDescription(int WXUNUSED(childId), wxString* WXUNUSED(description)) - { return wxACC_NOT_IMPLEMENTED; } - - // Returns help text for this object or a child, similar to tooltip text. - virtual wxAccStatus GetHelpText(int WXUNUSED(childId), wxString* WXUNUSED(helpText)) - { return wxACC_NOT_IMPLEMENTED; } - - // Returns the keyboard shortcut for this object or child. - // Return e.g. ALT+K - virtual wxAccStatus GetKeyboardShortcut(int WXUNUSED(childId), wxString* WXUNUSED(shortcut)) - { return wxACC_NOT_IMPLEMENTED; } - - // Returns a role constant. - virtual wxAccStatus GetRole(int WXUNUSED(childId), wxAccRole* WXUNUSED(role)) - { return wxACC_NOT_IMPLEMENTED; } - - // Returns a state constant. - virtual wxAccStatus GetState(int WXUNUSED(childId), long* WXUNUSED(state)) - { return wxACC_NOT_IMPLEMENTED; } - - // Returns a localized string representing the value for the object - // or child. - virtual wxAccStatus GetValue(int WXUNUSED(childId), wxString* WXUNUSED(strValue)) - { return wxACC_NOT_IMPLEMENTED; } - - // Selects the object or child. - virtual wxAccStatus Select(int WXUNUSED(childId), wxAccSelectionFlags WXUNUSED(selectFlags)) - { return wxACC_NOT_IMPLEMENTED; } - - // Gets the window with the keyboard focus. - // If childId is 0 and child is NULL, no object in - // this subhierarchy has the focus. - // If this object has the focus, child should be 'this'. - virtual wxAccStatus GetFocus(int* WXUNUSED(childId), wxAccessible** WXUNUSED(child)) - { return wxACC_NOT_IMPLEMENTED; } - -#if wxUSE_VARIANT - // Gets a variant representing the selected children - // of this object. - // Acceptable values: - // - a null variant (IsNull() returns TRUE) - // - a list variant (GetType() == wxT("list")) - // - an integer representing the selected child element, - // or 0 if this object is selected (GetType() == wxT("long")) - // - a "void*" pointer to a wxAccessible child object - virtual wxAccStatus GetSelections(wxVariant* WXUNUSED(selections)) - { return wxACC_NOT_IMPLEMENTED; } -#endif // wxUSE_VARIANT - -// Accessors - - // Returns the window associated with this object. - - wxWindow* GetWindow() { return m_window; } - - // Sets the window associated with this object. - - void SetWindow(wxWindow* window) { m_window = window; } - -// Operations - - // Each platform's implementation must define this - // static void NotifyEvent(int eventType, wxWindow* window, wxAccObject objectType, - // int objectId); - -private: - -// Data members - - wxWindow* m_window; -}; - - -// ---------------------------------------------------------------------------- -// now include the declaration of the real class -// ---------------------------------------------------------------------------- - -#if defined(__WXMSW__) - #include "wx/msw/ole/access.h" -#endif - -#endif // wxUSE_ACCESSIBILITY - -#endif // _WX_ACCESSBASE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/activityindicator.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/activityindicator.h deleted file mode 100644 index 2d01bdb6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/activityindicator.h +++ /dev/null @@ -1,60 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/activityindicator.h -// Purpose: wxActivityIndicator declaration. -// Author: Vadim Zeitlin -// Created: 2015-03-05 -// Copyright: (c) 2015 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ACTIVITYINDICATOR_H_ -#define _WX_ACTIVITYINDICATOR_H_ - -#include "wx/defs.h" - -#if wxUSE_ACTIVITYINDICATOR - -#include "wx/control.h" - -#define wxActivityIndicatorNameStr wxS("activityindicator") - -// ---------------------------------------------------------------------------- -// wxActivityIndicator: small animated indicator of some application activity. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxActivityIndicatorBase : public wxControl -{ -public: - // Start or stop the activity animation (it is stopped initially). - virtual void Start() = 0; - virtual void Stop() = 0; - - // Return true if the control is currently showing activity. - virtual bool IsRunning() const = 0; - - // Override some base class virtual methods. - virtual bool AcceptsFocus() const wxOVERRIDE { return false; } - virtual bool HasTransparentBackground() wxOVERRIDE { return true; } - -protected: - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } -}; - -#ifndef __WXUNIVERSAL__ -#if defined(__WXGTK220__) - #define wxHAS_NATIVE_ACTIVITYINDICATOR - #include "wx/gtk/activityindicator.h" -#elif defined(__WXOSX_COCOA__) - #define wxHAS_NATIVE_ACTIVITYINDICATOR - #include "wx/osx/activityindicator.h" -#endif -#endif // !__WXUNIVERSAL__ - -#ifndef wxHAS_NATIVE_ACTIVITYINDICATOR - #include "wx/generic/activityindicator.h" -#endif - -#endif // wxUSE_ACTIVITYINDICATOR - -#endif // _WX_ACTIVITYINDICATOR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/addremovectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/addremovectrl.h deleted file mode 100644 index 78a34e70..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/addremovectrl.h +++ /dev/null @@ -1,109 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/addremovectrl.h -// Purpose: wxAddRemoveCtrl declaration. -// Author: Vadim Zeitlin -// Created: 2015-01-29 -// Copyright: (c) 2015 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ADDREMOVECTRL_H_ -#define _WX_ADDREMOVECTRL_H_ - -#include "wx/panel.h" - -#if wxUSE_ADDREMOVECTRL - -extern WXDLLIMPEXP_DATA_ADV(const char) wxAddRemoveCtrlNameStr[]; - -// ---------------------------------------------------------------------------- -// wxAddRemoveAdaptor: used by wxAddRemoveCtrl to work with the list control -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxAddRemoveAdaptor -{ -public: - // Default ctor and trivial but virtual dtor. - wxAddRemoveAdaptor() { } - virtual ~wxAddRemoveAdaptor() { } - - // Override to return the associated control. - virtual wxWindow* GetItemsCtrl() const = 0; - - // Override to return whether a new item can be added to the control. - virtual bool CanAdd() const = 0; - - // Override to return whether the currently selected item (if any) can be - // removed from the control. - virtual bool CanRemove() const = 0; - - // Called when an item should be added, can only be called if CanAdd() - // currently returns true. - virtual void OnAdd() = 0; - - // Called when the current item should be removed, can only be called if - // CanRemove() currently returns true. - virtual void OnRemove() = 0; - -private: - wxDECLARE_NO_COPY_CLASS(wxAddRemoveAdaptor); -}; - -// ---------------------------------------------------------------------------- -// wxAddRemoveCtrl: a list-like control combined with add/remove buttons -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxAddRemoveCtrl : public wxPanel -{ -public: - wxAddRemoveCtrl() - { - Init(); - } - - wxAddRemoveCtrl(wxWindow* parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxAddRemoveCtrlNameStr) - { - Init(); - - Create(parent, winid, pos, size, style, name); - } - - bool Create(wxWindow* parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxAddRemoveCtrlNameStr); - - virtual ~wxAddRemoveCtrl(); - - // Must be called for the control to be usable, takes ownership of the - // pointer. - void SetAdaptor(wxAddRemoveAdaptor* adaptor); - - // Set tooltips to use for the add and remove buttons. - void SetButtonsToolTips(const wxString& addtip, const wxString& removetip); - -protected: - virtual wxSize DoGetBestClientSize() const wxOVERRIDE; - -private: - // Common part of all ctors. - void Init() - { - m_impl = NULL; - } - - class wxAddRemoveImpl* m_impl; - - wxDECLARE_NO_COPY_CLASS(wxAddRemoveCtrl); -}; - -#endif // wxUSE_ADDREMOVECTRL - -#endif // _WX_ADDREMOVECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/affinematrix2d.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/affinematrix2d.h deleted file mode 100644 index ce383a96..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/affinematrix2d.h +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/affinematrix2d.h -// Purpose: wxAffineMatrix2D class. -// Author: Based on wxTransformMatrix by Chris Breeze, Julian Smart -// Created: 2011-04-05 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_AFFINEMATRIX2D_H_ -#define _WX_AFFINEMATRIX2D_H_ - -#include "wx/defs.h" - -#if wxUSE_GEOMETRY - -#include "wx/affinematrix2dbase.h" - -// A simple implementation of wxAffineMatrix2DBase interface done entirely in -// wxWidgets. -class WXDLLIMPEXP_CORE wxAffineMatrix2D : public wxAffineMatrix2DBase -{ -public: - wxAffineMatrix2D() : m_11(1), m_12(0), - m_21(0), m_22(1), - m_tx(0), m_ty(0) - { - } - - // Implement base class pure virtual methods. - virtual void Set(const wxMatrix2D& mat2D, const wxPoint2DDouble& tr) wxOVERRIDE; - virtual void Get(wxMatrix2D* mat2D, wxPoint2DDouble* tr) const wxOVERRIDE; - virtual void Concat(const wxAffineMatrix2DBase& t) wxOVERRIDE; - virtual bool Invert() wxOVERRIDE; - virtual bool IsIdentity() const wxOVERRIDE; - virtual bool IsEqual(const wxAffineMatrix2DBase& t) const wxOVERRIDE; - virtual void Translate(wxDouble dx, wxDouble dy) wxOVERRIDE; - virtual void Scale(wxDouble xScale, wxDouble yScale) wxOVERRIDE; - virtual void Rotate(wxDouble cRadians) wxOVERRIDE; - -protected: - virtual wxPoint2DDouble DoTransformPoint(const wxPoint2DDouble& p) const wxOVERRIDE; - virtual wxPoint2DDouble DoTransformDistance(const wxPoint2DDouble& p) const wxOVERRIDE; - -private: - wxDouble m_11, m_12, m_21, m_22, m_tx, m_ty; -}; - -#endif // wxUSE_GEOMETRY - -#endif // _WX_AFFINEMATRIX2D_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/affinematrix2dbase.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/affinematrix2dbase.h deleted file mode 100644 index 94b1955a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/affinematrix2dbase.h +++ /dev/null @@ -1,127 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/affinematrix2dbase.h -// Purpose: Common interface for 2D transformation matrices. -// Author: Catalin Raceanu -// Created: 2011-04-06 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_AFFINEMATRIX2DBASE_H_ -#define _WX_AFFINEMATRIX2DBASE_H_ - -#include "wx/defs.h" - -#if wxUSE_GEOMETRY - -#include "wx/geometry.h" - -struct wxMatrix2D -{ - wxMatrix2D(wxDouble v11 = 1, - wxDouble v12 = 0, - wxDouble v21 = 0, - wxDouble v22 = 1) - { - m_11 = v11; m_12 = v12; - m_21 = v21; m_22 = v22; - } - - wxDouble m_11, m_12, m_21, m_22; -}; - -// A 2x3 matrix representing an affine 2D transformation. -// -// This is an abstract base class implemented by wxAffineMatrix2D only so far, -// but in the future we also plan to derive wxGraphicsMatrix from it (it should -// also be documented then as currently only wxAffineMatrix2D itself is). -class WXDLLIMPEXP_CORE wxAffineMatrix2DBase -{ -public: - wxAffineMatrix2DBase() {} - virtual ~wxAffineMatrix2DBase() {} - - // sets the matrix to the respective values - virtual void Set(const wxMatrix2D& mat2D, const wxPoint2DDouble& tr) = 0; - - // gets the component valuess of the matrix - virtual void Get(wxMatrix2D* mat2D, wxPoint2DDouble* tr) const = 0; - - // concatenates the matrix - virtual void Concat(const wxAffineMatrix2DBase& t) = 0; - - // makes this the inverse matrix - virtual bool Invert() = 0; - - // return true if this is the identity matrix - virtual bool IsIdentity() const = 0; - - // returns true if the elements of the transformation matrix are equal ? - virtual bool IsEqual(const wxAffineMatrix2DBase& t) const = 0; - bool operator==(const wxAffineMatrix2DBase& t) const { return IsEqual(t); } - bool operator!=(const wxAffineMatrix2DBase& t) const { return !IsEqual(t); } - - - // - // transformations - // - - // add the translation to this matrix - virtual void Translate(wxDouble dx, wxDouble dy) = 0; - - // add the scale to this matrix - virtual void Scale(wxDouble xScale, wxDouble yScale) = 0; - - // add the rotation to this matrix (counter clockwise, radians) - virtual void Rotate(wxDouble ccRadians) = 0; - - // add mirroring to this matrix - void Mirror(int direction = wxHORIZONTAL) - { - wxDouble x = (direction & wxHORIZONTAL) ? -1 : 1; - wxDouble y = (direction & wxVERTICAL) ? -1 : 1; - Scale(x, y); - } - - - // applies that matrix to the point - wxPoint2DDouble TransformPoint(const wxPoint2DDouble& src) const - { - return DoTransformPoint(src); - } - - void TransformPoint(wxDouble* x, wxDouble* y) const - { - wxCHECK_RET( x && y, "Can't be NULL" ); - - const wxPoint2DDouble dst = DoTransformPoint(wxPoint2DDouble(*x, *y)); - *x = dst.m_x; - *y = dst.m_y; - } - - // applies the matrix except for translations - wxPoint2DDouble TransformDistance(const wxPoint2DDouble& src) const - { - return DoTransformDistance(src); - } - - void TransformDistance(wxDouble* dx, wxDouble* dy) const - { - wxCHECK_RET( dx && dy, "Can't be NULL" ); - - const wxPoint2DDouble - dst = DoTransformDistance(wxPoint2DDouble(*dx, *dy)); - *dx = dst.m_x; - *dy = dst.m_y; - } - -protected: - virtual - wxPoint2DDouble DoTransformPoint(const wxPoint2DDouble& p) const = 0; - virtual - wxPoint2DDouble DoTransformDistance(const wxPoint2DDouble& p) const = 0; -}; - -#endif // wxUSE_GEOMETRY - -#endif // _WX_AFFINEMATRIX2DBASE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/afterstd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/afterstd.h deleted file mode 100644 index 1c89d147..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/afterstd.h +++ /dev/null @@ -1,27 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/afterstd.h -// Purpose: #include after STL headers -// Author: Vadim Zeitlin -// Modified by: -// Created: 07/07/03 -// Copyright: (c) 2003 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -/** - See the comments in beforestd.h. - */ - -#if defined(__WINDOWS__) - #include "wx/msw/winundef.h" -#endif - -// undo what we did in wx/beforestd.h -#if defined(__VISUALC__) && __VISUALC__ <= 1201 - #pragma warning(pop) -#endif - -// see beforestd.h for explanation -#if defined(HAVE_VISIBILITY) && defined(HAVE_BROKEN_LIBSTDCXX_VISIBILITY) - #pragma GCC visibility pop -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/android/chkconf.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/android/chkconf.h deleted file mode 100644 index 5ad19225..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/android/chkconf.h +++ /dev/null @@ -1,236 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/android/chkconf.h -// Purpose: Android-specific configuration options checks -// Author: Zsolt Bakcsi -// Modified by: -// Created: 2011-12-08 -// RCS-ID: -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ANDROID_CHKCONF_H_ -#define _WX_ANDROID_CHKCONF_H_ - -// For Qt under Android, use default configuration procedure as most features -// should be supported (see documentation for more information) - -#ifndef __WXQT__ - -// ---------------------------------------------------------------------------- -// Disable features which don't work (yet) or don't make sense under Android. -// ---------------------------------------------------------------------------- - -// please keep the list in alphabetic order except for closely related settings -// (e.g. wxUSE_ENH_METAFILE is put immediately after wxUSE_METAFILE) - - -// ---------------------------------------------------------------------------- -// These are disabled because they are TODO. Or to decide whether to do or not. -// ---------------------------------------------------------------------------- - -#undef wxUSE_CONFIG -#define wxUSE_CONFIG 0 - -// This compiles, but not yet tested, so: -#undef wxUSE_CONSOLE_EVENTLOOP -#define wxUSE_CONSOLE_EVENTLOOP 0 - -#undef wxUSE_DEBUGREPORT -#define wxUSE_DEBUGREPORT 0 - -#undef wxUSE_DIALUP_MANAGER -#define wxUSE_DIALUP_MANAGER 0 - -#undef wxUSE_DISPLAY -#define wxUSE_DISPLAY 0 - -#undef wxUSE_DYNAMIC_LOADER -#define wxUSE_DYNAMIC_LOADER 0 - -#undef wxUSE_DYNLIB_CLASS -#define wxUSE_DYNLIB_CLASS 0 - -#undef wxUSE_FSVOLUME -#define wxUSE_FSVOLUME 0 - -// Compile-time errors when last tried (wxHAS_INOTIFY, wxHAS_KQUEUE) -#undef wxUSE_FSWATCHER -#define wxUSE_FSWATCHER 0 - -// Seems like Android lacks locale support. TODO: check! -// Hint: -// http://groups.google.com/group/android-ndk/browse_thread/thread/ffd012a047ec2392?pli=1 -// "Android doesn't provide locale support in its C and C++ runtimes. -// This is handled at a higher-level in the application stack, using ICU -// (which is not exposed by the NDK, since the ABI is very volatile, and the -// set of built-in tables varies from device to device, based on customization -// / size reasons). -// You might want to use a different locale implementation. The STLport and GNU -// libstdc++ do provide then if you're using C++." -#undef wxUSE_INTL -#define wxUSE_INTL 0 -#undef wxUSE_XLOCALE -#define wxUSE_XLOCALE 0 - -#undef wxUSE_IPC -#define wxUSE_IPC 0 - -#undef wxUSE_MEDIACTRL -#define wxUSE_MEDIACTRL 0 - -#undef wxUSE_ON_FATAL_EXCEPTION -#define wxUSE_ON_FATAL_EXCEPTION 0 - -#undef wxUSE_REGEX -#define wxUSE_REGEX 0 - -#undef wxUSE_STDPATHS -#define wxUSE_STDPATHS 0 - -#undef wxUSE_STACKWALKER -#define wxUSE_STACKWALKER 0 - -#undef wxUSE_MIMETYPE -#define wxUSE_MIMETYPE 0 - -#undef wxUSE_REGEX -#define wxUSE_REGEX 0 - -#undef wxUSE_REGKEY -#define wxUSE_REGKEY 0 - -#undef wxUSE_SNGLINST_CHECKER -#define wxUSE_SNGLINST_CHECKER 0 - -#undef wxUSE_SOUND -#define wxUSE_SOUND 0 - -#undef wxUSE_SYSTEM_OPTIONS -#define wxUSE_SYSTEM_OPTIONS 0 - -#undef wxUSE_XRC -#define wxUSE_XRC 0 - - -// ---------------------------------------------------------------------------- -// GUI is completely TODO. -// ---------------------------------------------------------------------------- - -#undef wxUSE_COLOURPICKERCTRL -#define wxUSE_COLOURPICKERCTRL 0 - -#undef wxUSE_COLOURDLG -#define wxUSE_COLOURDLG 0 - -#undef wxUSE_FONTENUM -#define wxUSE_FONTENUM 0 - -#undef wxUSE_FONTMAP -#define wxUSE_FONTMAP 0 - -#undef wxUSE_HELP -#define wxUSE_HELP 0 - -#undef wxUSE_HTML -#define wxUSE_HTML 0 - -#undef wxUSE_LISTBOOK -#define wxUSE_LISTBOOK 0 - -#undef wxUSE_OWNER_DRAWN -#define wxUSE_OWNER_DRAWN 0 - -#undef wxUSE_NOTEBOOK -#define wxUSE_NOTEBOOK 0 - -#undef wxUSE_RICHEDIT -#define wxUSE_RICHEDIT 0 -#undef wxUSE_RICHEDIT2 -#define wxUSE_RICHEDIT2 0 - -#undef wxUSE_STATUSBAR -#define wxUSE_STATUSBAR 0 - -// Are tooltips useful at all on a touch screen? -#undef wxUSE_TOOLTIPS -#define wxUSE_TOOLTIPS 0 - -#undef wxUSE_WXHTML_HELP -#define wxUSE_WXHTML_HELP 0 - - -// ---------------------------------------------------------------------------- -// All image classes are TODO. -// ---------------------------------------------------------------------------- - -#undef wxUSE_IMAGE -#define wxUSE_IMAGE 0 - -#undef wxUSE_LIBPNG -#define wxUSE_LIBPNG 0 - -#undef wxUSE_LIBJPEG -#define wxUSE_LIBJPEG 0 - -#undef wxUSE_LIBTIFF -#define wxUSE_LIBTIFF 0 - -#undef wxUSE_TGA -#define wxUSE_TGA 0 - -#undef wxUSE_GIF -#define wxUSE_GIF 0 - -#undef wxUSE_PNM -#define wxUSE_PNM 0 - -#undef wxUSE_PCX -#define wxUSE_PCX 0 - -#undef wxUSE_IFF -#define wxUSE_IFF 0 - -#undef wxUSE_XPM -#define wxUSE_XPM 0 - -#undef wxUSE_ICO_CUR -#define wxUSE_ICO_CUR 0 - -#undef wxUSE_PALETTE -#define wxUSE_PALETTE 0 - - - -// ---------------------------------------------------------------------------- -// These are disabled because they don't make sense, are not supported, or -// would require too much effort. -// ---------------------------------------------------------------------------- - -// Unnecessary under Android, probably it doesn't even compile. -#undef wxUSE_AUI -#define wxUSE_AUI 0 - -// No command line on Android. -#undef wxUSE_CMDLINE_PARSER -#define wxUSE_CMDLINE_PARSER 0 - -// No joystick on Android devices. -// (What about using the direction sensor or the accelerometer?) -#undef wxUSE_JOYSTICK -#define wxUSE_JOYSTICK 0 - -// No MDI under Android. Well, no GUI at all (yet). -#undef wxUSE_MDI -#define wxUSE_MDI 0 -#undef wxUSE_MDI_ARCHITECTURE -#define wxUSE_MDI_ARCHITECTURE 0 - -// No printing support on Android (2011). -// Although 3rd party SDKs may exist (I know of one payware). -#undef wxUSE_PRINTING_ARCHITECTURE -#define wxUSE_PRINTING_ARCHITECTURE 0 - -#endif // __WXQT__ - -#endif // _WX_ANDROID_CHKCONF_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/android/config_android.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/android/config_android.h deleted file mode 100644 index eebbb1ad..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/android/config_android.h +++ /dev/null @@ -1,63 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/android/config_android.h -// Purpose: configurations for Android builds -// Author: Zsolt Bakcsi -// Modified by: -// Created: 2011-12-02 -// RCS-ID: -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// Please note that most of these settings are based on config_xcode.h and -// 'fine-tuned' on a trial-and-error basis. This means, no in-depth analysis -// of Android docs / source was done. - -// For Qt under Android, use the default configuration procedure as most -// features should be supported and the following fixed definitions will -// cause compiler warnings or other issues. - -#if !defined(__WXQT__) - -#define wxUSE_UNIX 1 -#define __UNIX__ 1 - -#define HAVE_NANOSLEEP -#define HAVE_FCNTL 1 -#define HAVE_GCC_ATOMIC_BUILTINS -#define HAVE_GETHOSTBYNAME 1 -#define HAVE_GETSERVBYNAME 1 -#define HAVE_GETTIMEOFDAY 1 -#define HAVE_GMTIME_R 1 -#define HAVE_INET_ADDR 1 -#define HAVE_INET_ATON 1 -#define HAVE_LOCALTIME_R 1 -#define HAVE_PTHREAD_MUTEXATTR_T 1 -#define HAVE_PTHREAD_MUTEXATTR_SETTYPE_DECL 1 -#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1 -#define HAVE_THREAD_PRIORITY_FUNCTIONS 1 -#define HAVE_SSIZE_T 1 -#define HAVE_WPRINTF 1 - -#define SIZEOF_INT 4 -#define SIZEOF_LONG 4 -#define SIZEOF_LONG_LONG 8 -#define SIZEOF_SIZE_T 4 -#define SIZEOF_VOID_P 4 -#define SIZEOF_WCHAR_T 4 - -#define wxHAVE_PTHREAD_CLEANUP 1 -#define wxNO_WOSTREAM -#define wxSIZE_T_IS_UINT 1 -#define wxWCHAR_T_IS_REAL_TYPE 1 - -#define wxTYPE_SA_HANDLER int - -#define wxUSE_SELECT_DISPATCHER 1 - -#ifdef HAVE_PTHREAD_CANCEL -// Android doesn't support pthread_cancel(). -#undef HAVE_PTHREAD_CANCEL -#endif - -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/android/setup.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/android/setup.h deleted file mode 100644 index 5bf57497..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/android/setup.h +++ /dev/null @@ -1,1637 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/android/setup.h -// Purpose: Configuration for the android build of the library -// Author: Julian Smart -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SETUP_H_ -#define _WX_SETUP_H_ - -/* --- start common options --- */ -// ---------------------------------------------------------------------------- -// global settings -// ---------------------------------------------------------------------------- - -// define this to 0 when building wxBase library - this can also be done from -// makefile/project file overriding the value here -#ifndef wxUSE_GUI - #define wxUSE_GUI 1 -#endif // wxUSE_GUI - -// ---------------------------------------------------------------------------- -// compatibility settings -// ---------------------------------------------------------------------------- - -// This setting determines the compatibility with 2.8 API: set it to 0 to -// flag all cases of using deprecated functions. -// -// Default is 1 but please try building your code with 0 as the default will -// change to 0 in the next version and the deprecated functions will disappear -// in the version after it completely. -// -// Recommended setting: 0 (please update your code) -#define WXWIN_COMPATIBILITY_2_8 0 - -// This setting determines the compatibility with 3.0 API: set it to 0 to -// flag all cases of using deprecated functions. -// -// Default is 1 but please try building your code with 0 as the default will -// change to 0 in the next version and the deprecated functions will disappear -// in the version after it completely. -// -// Recommended setting: 0 (please update your code) -#define WXWIN_COMPATIBILITY_3_0 1 - -// MSW-only: Set to 0 for accurate dialog units, else 1 for old behaviour when -// default system font is used for wxWindow::GetCharWidth/Height() instead of -// the current font. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxDIALOG_UNIT_COMPATIBILITY 0 - -// ---------------------------------------------------------------------------- -// debugging settings -// ---------------------------------------------------------------------------- - -// wxDEBUG_LEVEL will be defined as 1 in wx/debug.h so normally there is no -// need to define it here. You may do it for two reasons: either completely -// disable/compile out the asserts in release version (then do it inside #ifdef -// NDEBUG) or, on the contrary, enable more asserts, including the usually -// disabled ones, in the debug build (then do it inside #ifndef NDEBUG) -// -// #ifdef NDEBUG -// #define wxDEBUG_LEVEL 0 -// #else -// #define wxDEBUG_LEVEL 2 -// #endif - -// wxHandleFatalExceptions() may be used to catch the program faults at run -// time and, instead of terminating the program with a usual GPF message box, -// call the user-defined wxApp::OnFatalException() function. If you set -// wxUSE_ON_FATAL_EXCEPTION to 0, wxHandleFatalExceptions() will not work. -// -// This setting is for Win32 only and can only be enabled if your compiler -// supports Win32 structured exception handling (currently only VC++ does) -// -// Default is 1 -// -// Recommended setting: 1 if your compiler supports it. -#define wxUSE_ON_FATAL_EXCEPTION 1 - -// Set this to 1 to be able to generate a human-readable (unlike -// machine-readable minidump created by wxCrashReport::Generate()) stack back -// trace when your program crashes using wxStackWalker -// -// Default is 1 if supported by the compiler. -// -// Recommended setting: 1, set to 0 if your programs never crash -#define wxUSE_STACKWALKER 1 - -// Set this to 1 to compile in wxDebugReport class which allows you to create -// and optionally upload to your web site a debug report consisting of back -// trace of the crash (if wxUSE_STACKWALKER == 1) and other information. -// -// Default is 1 if supported by the compiler. -// -// Recommended setting: 1, it is compiled into a separate library so there -// is no overhead if you don't use it -#define wxUSE_DEBUGREPORT 1 - -// Generic comment about debugging settings: they are very useful if you don't -// use any other memory leak detection tools such as Purify/BoundsChecker, but -// are probably redundant otherwise. Also, Visual C++ CRT has the same features -// as wxWidgets memory debugging subsystem built in since version 5.0 and you -// may prefer to use it instead of built in memory debugging code because it is -// faster and more fool proof. -// -// Using VC++ CRT memory debugging is enabled by default in debug build (_DEBUG -// is defined) if wxUSE_GLOBAL_MEMORY_OPERATORS is *not* enabled (i.e. is 0) -// and if __NO_VC_CRTDBG__ is not defined. - -// The rest of the options in this section are obsolete and not supported, -// enable them at your own risk. - -// If 1, enables wxDebugContext, for writing error messages to file, etc. If -// __WXDEBUG__ is not defined, will still use the normal memory operators. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_DEBUG_CONTEXT 0 - -// If 1, enables debugging versions of wxObject::new and wxObject::delete *IF* -// __WXDEBUG__ is also defined. -// -// WARNING: this code may not work with all architectures, especially if -// alignment is an issue. This switch is currently ignored for mingw / cygwin -// -// Default is 0 -// -// Recommended setting: 1 if you are not using a memory debugging tool, else 0 -#define wxUSE_MEMORY_TRACING 0 - -// In debug mode, cause new and delete to be redefined globally. -// If this causes problems (e.g. link errors which is a common problem -// especially if you use another library which also redefines the global new -// and delete), set this to 0. -// This switch is currently ignored for mingw / cygwin -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_GLOBAL_MEMORY_OPERATORS 0 - -// In debug mode, causes new to be defined to be WXDEBUG_NEW (see object.h). If -// this causes problems (e.g. link errors), set this to 0. You may need to set -// this to 0 if using templates (at least for VC++). This switch is currently -// ignored for MinGW/Cygwin. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_DEBUG_NEW_ALWAYS 0 - - -// ---------------------------------------------------------------------------- -// Unicode support -// ---------------------------------------------------------------------------- - -// These settings are obsolete: the library is always built in Unicode mode -// now, only set wxUSE_UNICODE to 0 to compile legacy code in ANSI mode if -// absolutely necessary -- updating it is strongly recommended as the ANSI mode -// will disappear completely in future wxWidgets releases. -#ifndef wxUSE_UNICODE - #define wxUSE_UNICODE 1 -#endif - -// wxUSE_WCHAR_T is required by wxWidgets now, don't change. -#define wxUSE_WCHAR_T 1 - -// ---------------------------------------------------------------------------- -// global features -// ---------------------------------------------------------------------------- - -// Compile library in exception-safe mode? If set to 1, the library will try to -// behave correctly in presence of exceptions (even though it still will not -// use the exceptions itself) and notify the user code about any unhandled -// exceptions. If set to 0, propagation of the exceptions through the library -// code will lead to undefined behaviour -- but the code itself will be -// slightly smaller and faster. -// -// Note that like wxUSE_THREADS this option is automatically set to 0 if -// wxNO_EXCEPTIONS is defined. -// -// Default is 1 -// -// Recommended setting: depends on whether you intend to use C++ exceptions -// in your own code (1 if you do, 0 if you don't) -#define wxUSE_EXCEPTIONS 1 - -// Set wxUSE_EXTENDED_RTTI to 1 to use extended RTTI -// -// Default is 0 -// -// Recommended setting: 0 (this is still work in progress...) -#define wxUSE_EXTENDED_RTTI 0 - -// Support for message/error logging. This includes wxLogXXX() functions and -// wxLog and derived classes. Don't set this to 0 unless you really know what -// you are doing. -// -// Default is 1 -// -// Recommended setting: 1 (always) -#define wxUSE_LOG 1 - -// Recommended setting: 1 -#define wxUSE_LOGWINDOW 1 - -// Recommended setting: 1 -#define wxUSE_LOGGUI 1 - -// Recommended setting: 1 -#define wxUSE_LOG_DIALOG 1 - -// Support for command line parsing using wxCmdLineParser class. -// -// Default is 1 -// -// Recommended setting: 1 (can be set to 0 if you don't use the cmd line) -#define wxUSE_CMDLINE_PARSER 1 - -// Support for multithreaded applications: if 1, compile in thread classes -// (thread.h) and make the library a bit more thread safe. Although thread -// support is quite stable by now, you may still consider recompiling the -// library without it if you have no use for it - this will result in a -// somewhat smaller and faster operation. -// -// Notice that if wxNO_THREADS is defined, wxUSE_THREADS is automatically reset -// to 0 in wx/chkconf.h, so, for example, if you set USE_THREADS to 0 in -// build/msw/config.* file this value will have no effect. -// -// Default is 1 -// -// Recommended setting: 0 unless you do plan to develop MT applications -#define wxUSE_THREADS 1 - -// If enabled, compiles wxWidgets streams classes -// -// wx stream classes are used for image IO, process IO redirection, network -// protocols implementation and much more and so disabling this results in a -// lot of other functionality being lost. -// -// Default is 1 -// -// Recommended setting: 1 as setting it to 0 disables many other things -#define wxUSE_STREAMS 1 - -// Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf. -// Note that if the system's implementation does not support positional -// parameters, setting this to 1 forces the use of the wxWidgets implementation -// of wxVsnprintf. The standard vsnprintf() supports positional parameters on -// many Unix systems but usually doesn't under Windows. -// -// Positional parameters are very useful when translating a program since using -// them in formatting strings allow translators to correctly reorder the -// translated sentences. -// -// Default is 1 -// -// Recommended setting: 1 if you want to support multiple languages -#define wxUSE_PRINTF_POS_PARAMS 1 - -// Enable the use of compiler-specific thread local storage keyword, if any. -// This is used for wxTLS_XXX() macros implementation and normally should use -// the compiler-provided support as it's simpler and more efficient, but is -// disabled under Windows in wx/msw/chkconf.h as it can't be used if wxWidgets -// is used in a dynamically loaded Win32 DLL (i.e. using LoadLibrary()) under -// XP as this triggers a bug in compiler TLS support that results in crashes -// when any TLS variables are used. -// -// If you're absolutely sure that your build of wxWidgets is never going to be -// used in such situation, either because it's not going to be linked from any -// kind of plugin or because you only target Vista or later systems, you can -// set this to 2 to force the use of compiler TLS even under MSW. -// -// Default is 1 meaning that compiler TLS is used only if it's 100% safe. -// -// Recommended setting: 2 if you want to have maximal performance and don't -// care about the scenario described above. -#define wxUSE_COMPILER_TLS 1 - -// ---------------------------------------------------------------------------- -// Interoperability with the standard library. -// ---------------------------------------------------------------------------- - -// Set wxUSE_STL to 1 to enable maximal interoperability with the standard -// library, even at the cost of backwards compatibility. -// -// Default is 0 -// -// Recommended setting: 0 as the options below already provide a relatively -// good level of interoperability and changing this option arguably isn't worth -// diverging from the official builds of the library. -#define wxUSE_STL 0 - -// This is not a real option but is used as the default value for -// wxUSE_STD_IOSTREAM, wxUSE_STD_STRING and wxUSE_STD_CONTAINERS_COMPATIBLY. -// -// Set it to 0 if you want to disable the use of all standard classes -// completely for some reason. -#define wxUSE_STD_DEFAULT 1 - -// Use standard C++ containers where it can be done without breaking backwards -// compatibility. -// -// This provides better interoperability with the standard library, e.g. with -// this option on it's possible to insert std::vector<> into many wxWidgets -// containers directly. -// -// Default is 1. -// -// Recommended setting is 1 unless you want to avoid all dependencies on the -// standard library. -#define wxUSE_STD_CONTAINERS_COMPATIBLY wxUSE_STD_DEFAULT - -// Use standard C++ containers to implement wxVector<>, wxStack<>, wxDList<> -// and wxHashXXX<> classes. If disabled, wxWidgets own (mostly compatible but -// usually more limited) implementations are used which allows to avoid the -// dependency on the C++ run-time library. -// -// Default is 0 for compatibility reasons. -// -// Recommended setting: 1 unless compatibility with the official wxWidgets -// build and/or the existing code is a concern. -#define wxUSE_STD_CONTAINERS 0 - -// Use standard C++ streams if 1 instead of wx streams in some places. If -// disabled, wx streams are used everywhere and wxWidgets doesn't depend on the -// standard streams library. -// -// Notice that enabling this does not replace wx streams with std streams -// everywhere, in a lot of places wx streams are used no matter what. -// -// Default is 1 if compiler supports it. -// -// Recommended setting: 1 if you use the standard streams anyhow and so -// dependency on the standard streams library is not a -// problem -#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT - -// Enable minimal interoperability with the standard C++ string class if 1. -// "Minimal" means that wxString can be constructed from std::string or -// std::wstring but can't be implicitly converted to them. You need to enable -// the option below for the latter. -// -// Default is 1 for most compilers. -// -// Recommended setting: 1 unless you want to ensure your program doesn't use -// the standard C++ library at all. -#define wxUSE_STD_STRING wxUSE_STD_DEFAULT - -// Make wxString as much interchangeable with std::[w]string as possible, in -// particular allow implicit conversion of wxString to either of these classes. -// This comes at a price (or a benefit, depending on your point of view) of not -// allowing implicit conversion to "const char *" and "const wchar_t *". -// -// Because a lot of existing code relies on these conversions, this option is -// disabled by default but can be enabled for your build if you don't care -// about compatibility. -// -// Default is 0 if wxUSE_STL has its default value or 1 if it is enabled. -// -// Recommended setting: 0 to remain compatible with the official builds of -// wxWidgets. -#define wxUSE_STD_STRING_CONV_IN_WXSTRING wxUSE_STL - -// VC++ 4.2 and above allows and but you can't mix -// them. Set this option to 1 to use , 0 to use . -// -// Note that newer compilers (including VC++ 7.1 and later) don't support -// wxUSE_IOSTREAMH == 1 and so will be used anyhow. -// -// Default is 0. -// -// Recommended setting: 0, only set to 1 if you use a really old compiler -#define wxUSE_IOSTREAMH 0 - - -// ---------------------------------------------------------------------------- -// non GUI features selection -// ---------------------------------------------------------------------------- - -// Set wxUSE_LONGLONG to 1 to compile the wxLongLong class. This is a 64 bit -// integer which is implemented in terms of native 64 bit integers if any or -// uses emulation otherwise. -// -// This class is required by wxDateTime and so you should enable it if you want -// to use wxDateTime. For most modern platforms, it will use the native 64 bit -// integers in which case (almost) all of its functions are inline and it -// almost does not take any space, so there should be no reason to switch it -// off. -// -// Recommended setting: 1 -#define wxUSE_LONGLONG 1 - -// Set wxUSE_BASE64 to 1, to compile in Base64 support. This is required for -// storing binary data in wxConfig on most platforms. -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely disabled if you don't use it) -#define wxUSE_BASE64 1 - -// Set this to 1 to be able to use wxEventLoop even in console applications -// (i.e. using base library only, without GUI). This is mostly useful for -// processing socket events but is also necessary to use timers in console -// applications -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely disabled if you don't use it) -#define wxUSE_CONSOLE_EVENTLOOP 1 - -// Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level -// POSIX functions for file access, wxFFile uses ANSI C stdio.h functions. -// -// Default is 1 -// -// Recommended setting: 1 (wxFile is highly recommended as it is required by -// i18n code, wxFileConfig and others) -#define wxUSE_FILE 1 -#define wxUSE_FFILE 1 - -// Use wxFSVolume class providing access to the configured/active mount points -// -// Default is 1 -// -// Recommended setting: 1 (but may be safely disabled if you don't use it) -#define wxUSE_FSVOLUME 1 - -// Use wxStandardPaths class which allows to retrieve some standard locations -// in the file system -// -// Default is 1 -// -// Recommended setting: 1 (may be disabled to save space, but not much) -#define wxUSE_STDPATHS 1 - -// use wxTextBuffer class: required by wxTextFile -#define wxUSE_TEXTBUFFER 1 - -// use wxTextFile class: requires wxFile and wxTextBuffer, required by -// wxFileConfig -#define wxUSE_TEXTFILE 1 - -// i18n support: _() macro, wxLocale class. Requires wxTextFile. -#define wxUSE_INTL 1 - -// Provide wxFoo_l() functions similar to standard foo() functions but taking -// an extra locale parameter. -// -// Notice that this is fully implemented only for the systems providing POSIX -// xlocale support or Microsoft Visual C++ >= 8 (which provides proprietary -// almost-equivalent of xlocale functions), otherwise wxFoo_l() functions will -// only work for the current user locale and "C" locale. You can use -// wxHAS_XLOCALE_SUPPORT to test whether the full support is available. -// -// Default is 1 -// -// Recommended setting: 1 but may be disabled if you are writing programs -// running only in C locale anyhow -#define wxUSE_XLOCALE 1 - -// Set wxUSE_DATETIME to 1 to compile the wxDateTime and related classes which -// allow to manipulate dates, times and time intervals. -// -// Requires: wxUSE_LONGLONG -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_DATETIME 1 - -// Set wxUSE_TIMER to 1 to compile wxTimer class -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_TIMER 1 - -// Use wxStopWatch clas. -// -// Default is 1 -// -// Recommended setting: 1 (needed by wxSocket) -#define wxUSE_STOPWATCH 1 - -// Set wxUSE_FSWATCHER to 1 if you want to enable wxFileSystemWatcher -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_FSWATCHER 1 - -// Setting wxUSE_CONFIG to 1 enables the use of wxConfig and related classes -// which allow the application to store its settings in the persistent -// storage. Setting this to 1 will also enable on-demand creation of the -// global config object in wxApp. -// -// See also wxUSE_CONFIG_NATIVE below. -// -// Recommended setting: 1 -#define wxUSE_CONFIG 1 - -// If wxUSE_CONFIG is 1, you may choose to use either the native config -// classes under Windows (using .INI files under Win16 and the registry under -// Win32) or the portable text file format used by the config classes under -// Unix. -// -// Default is 1 to use native classes. Note that you may still use -// wxFileConfig even if you set this to 1 - just the config object created by -// default for the applications needs will be a wxRegConfig or wxIniConfig and -// not wxFileConfig. -// -// Recommended setting: 1 -#define wxUSE_CONFIG_NATIVE 1 - -// If wxUSE_DIALUP_MANAGER is 1, compile in wxDialUpManager class which allows -// to connect/disconnect from the network and be notified whenever the dial-up -// network connection is established/terminated. Requires wxUSE_DYNAMIC_LOADER. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DIALUP_MANAGER 1 - -// Compile in classes for run-time DLL loading and function calling. -// Required by wxUSE_DIALUP_MANAGER. -// -// This setting is for Win32 only -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DYNLIB_CLASS 1 - -// experimental, don't use for now -#define wxUSE_DYNAMIC_LOADER 1 - -// Set to 1 to use socket classes -#define wxUSE_SOCKETS 1 - -// Set to 1 to use ipv6 socket classes (requires wxUSE_SOCKETS) -// -// Notice that currently setting this option under Windows will result in -// programs which can only run on recent OS versions (with ws2_32.dll -// installed) which is why it is disabled by default. -// -// Default is 1. -// -// Recommended setting: 1 if you need IPv6 support -#define wxUSE_IPV6 0 - -// Set to 1 to enable virtual file systems (required by wxHTML) -#define wxUSE_FILESYSTEM 1 - -// Set to 1 to enable virtual ZIP filesystem (requires wxUSE_FILESYSTEM) -#define wxUSE_FS_ZIP 1 - -// Set to 1 to enable virtual archive filesystem (requires wxUSE_FILESYSTEM) -#define wxUSE_FS_ARCHIVE 1 - -// Set to 1 to enable virtual Internet filesystem (requires wxUSE_FILESYSTEM) -#define wxUSE_FS_INET 1 - -// wxArchive classes for accessing archives such as zip and tar -#define wxUSE_ARCHIVE_STREAMS 1 - -// Set to 1 to compile wxZipInput/OutputStream classes. -#define wxUSE_ZIPSTREAM 1 - -// Set to 1 to compile wxTarInput/OutputStream classes. -#define wxUSE_TARSTREAM 1 - -// Set to 1 to compile wxZlibInput/OutputStream classes. Also required by -// wxUSE_LIBPNG -#define wxUSE_ZLIB 1 - -// If enabled, the code written by Apple will be used to write, in a portable -// way, float on the disk. See extended.c for the license which is different -// from wxWidgets one. -// -// Default is 1. -// -// Recommended setting: 1 unless you don't like the license terms (unlikely) -#define wxUSE_APPLE_IEEE 1 - -// Joystick support class -#define wxUSE_JOYSTICK 1 - -// wxFontEnumerator class -#define wxUSE_FONTENUM 1 - -// wxFontMapper class -#define wxUSE_FONTMAP 1 - -// wxMimeTypesManager class -#define wxUSE_MIMETYPE 1 - -// wxProtocol and related classes: if you want to use either of wxFTP, wxHTTP -// or wxURL you need to set this to 1. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_PROTOCOL 1 - -// The settings for the individual URL schemes -#define wxUSE_PROTOCOL_FILE 1 -#define wxUSE_PROTOCOL_FTP 1 -#define wxUSE_PROTOCOL_HTTP 1 - -// Define this to use wxURL class. -#define wxUSE_URL 1 - -// Define this to use native platform url and protocol support. -// Currently valid only for MS-Windows. -// Note: if you set this to 1, you can open ftp/http/gopher sites -// and obtain a valid input stream for these sites -// even when you set wxUSE_PROTOCOL_FTP/HTTP to 0. -// Doing so reduces the code size. -// -// This code is experimental and subject to change. -#define wxUSE_URL_NATIVE 0 - -// Support for wxVariant class used in several places throughout the library, -// notably in wxDataViewCtrl API. -// -// Default is 1. -// -// Recommended setting: 1 unless you want to reduce the library size as much as -// possible in which case setting this to 0 can gain up to 100KB. -#define wxUSE_VARIANT 1 - -// Support for wxAny class, the successor for wxVariant. -// -// Default is 1. -// -// Recommended setting: 1 unless you want to reduce the library size by a small amount, -// or your compiler cannot for some reason cope with complexity of templates used. -#define wxUSE_ANY 1 - -// Support for regular expression matching via wxRegEx class: enable this to -// use POSIX regular expressions in your code. You need to compile regex -// library from src/regex to use it under Windows. -// -// Default is 0 -// -// Recommended setting: 1 if your compiler supports it, if it doesn't please -// contribute us a makefile for src/regex for it -#define wxUSE_REGEX 1 - -// wxSystemOptions class -#define wxUSE_SYSTEM_OPTIONS 1 - -// wxSound class -#define wxUSE_SOUND 1 - -// Use wxMediaCtrl -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_MEDIACTRL 1 - -// Use wxWidget's XRC XML-based resource system. Recommended. -// -// Default is 1 -// -// Recommended setting: 1 (requires wxUSE_XML) -#define wxUSE_XRC 1 - -// XML parsing classes. Note that their API will change in the future, so -// using wxXmlDocument and wxXmlNode in your app is not recommended. -// -// Default is the same as wxUSE_XRC, i.e. 1 by default. -// -// Recommended setting: 1 (required by XRC) -#define wxUSE_XML wxUSE_XRC - -// Use wxWidget's AUI docking system -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_AUI 1 - -// Use wxWidget's Ribbon classes for interfaces -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_RIBBON 1 - -// Use wxPropertyGrid. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_PROPGRID 1 - -// Use wxStyledTextCtrl, a wxWidgets implementation of Scintilla. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_STC 1 - -// Use wxWidget's web viewing classes -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_WEBVIEW 1 - -// Use the IE wxWebView backend -// -// Default is 1 on MSW -// -// Recommended setting: 1 -#ifdef __WXMSW__ -#define wxUSE_WEBVIEW_IE 1 -#else -#define wxUSE_WEBVIEW_IE 0 -#endif - -// Use the WebKit wxWebView backend -// -// Default is 1 on GTK and OSX -// -// Recommended setting: 1 -#if defined(__WXGTK__) || defined(__WXOSX__) -#define wxUSE_WEBVIEW_WEBKIT 1 -#else -#define wxUSE_WEBVIEW_WEBKIT 0 -#endif - -// Enable wxGraphicsContext and related classes for a modern 2D drawing API. -// -// Default is 1 except if you're using a non-Microsoft compiler under Windows -// as only MSVC is known to ship with at least gdiplus.h which is required to -// compile GDI+-based implementation of wxGraphicsContext (MSVC10 and later -// versions also include d2d1.h required for Direct2D-based implementation). -// For other compilers (e.g. mingw32) you may need to install the headers (and -// just the headers) yourself. If you do, change the setting below manually. -// -// Recommended setting: 1 if supported by the compilation environment - -// notice that we can't use wxCHECK_VISUALC_VERSION() here as this file is -// included from wx/platform.h before wxCHECK_VISUALC_VERSION() is defined -#ifdef _MSC_VER -# define wxUSE_GRAPHICS_CONTEXT 1 -#else - // Disable support for other Windows compilers, enable it if your compiler - // comes with new enough SDK or you installed the headers manually. - // - // Notice that this will be set by configure under non-Windows platforms - // anyhow so the value there is not important. -# define wxUSE_GRAPHICS_CONTEXT 0 -#endif - -// Enable wxGraphicsContext implementation using Cairo library. -// -// This is not needed under Windows and detected automatically by configure -// under other systems, however you may set this to 1 manually if you installed -// Cairo under Windows yourself and prefer to use it instead the native GDI+ -// implementation. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_CAIRO 0 - - -// ---------------------------------------------------------------------------- -// Individual GUI controls -// ---------------------------------------------------------------------------- - -// You must set wxUSE_CONTROLS to 1 if you are using any controls at all -// (without it, wxControl class is not compiled) -// -// Default is 1 -// -// Recommended setting: 1 (don't change except for very special programs) -#define wxUSE_CONTROLS 1 - -// Support markup in control labels, i.e. provide wxControl::SetLabelMarkup(). -// Currently markup is supported only by a few controls and only some ports but -// their number will increase with time. -// -// Default is 1 -// -// Recommended setting: 1 (may be set to 0 if you want to save on code size) -#define wxUSE_MARKUP 1 - -// wxPopupWindow class is a top level transient window. It is currently used -// to implement wxTipWindow -// -// Default is 1 -// -// Recommended setting: 1 (may be set to 0 if you don't wxUSE_TIPWINDOW) -#define wxUSE_POPUPWIN 1 - -// wxTipWindow allows to implement the custom tooltips, it is used by the -// context help classes. Requires wxUSE_POPUPWIN. -// -// Default is 1 -// -// Recommended setting: 1 (may be set to 0) -#define wxUSE_TIPWINDOW 1 - -// Each of the settings below corresponds to one wxWidgets control. They are -// all switched on by default but may be disabled if you are sure that your -// program (including any standard dialogs it can show!) doesn't need them and -// if you desperately want to save some space. If you use any of these you must -// set wxUSE_CONTROLS as well. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_ACTIVITYINDICATOR 1 // wxActivityIndicator -#define wxUSE_ANIMATIONCTRL 1 // wxAnimationCtrl -#define wxUSE_BANNERWINDOW 1 // wxBannerWindow -#define wxUSE_BUTTON 1 // wxButton -#define wxUSE_BMPBUTTON 1 // wxBitmapButton -#define wxUSE_CALENDARCTRL 1 // wxCalendarCtrl -#define wxUSE_CHECKBOX 1 // wxCheckBox -#define wxUSE_CHECKLISTBOX 1 // wxCheckListBox (requires wxUSE_OWNER_DRAWN) -#define wxUSE_CHOICE 1 // wxChoice -#define wxUSE_COLLPANE 1 // wxCollapsiblePane -#define wxUSE_COLOURPICKERCTRL 1 // wxColourPickerCtrl -#define wxUSE_COMBOBOX 1 // wxComboBox -#define wxUSE_COMMANDLINKBUTTON 1 // wxCommandLinkButton -#define wxUSE_DATAVIEWCTRL 1 // wxDataViewCtrl -#define wxUSE_DATEPICKCTRL 1 // wxDatePickerCtrl -#define wxUSE_DIRPICKERCTRL 1 // wxDirPickerCtrl -#define wxUSE_EDITABLELISTBOX 1 // wxEditableListBox -#define wxUSE_FILECTRL 1 // wxFileCtrl -#define wxUSE_FILEPICKERCTRL 1 // wxFilePickerCtrl -#define wxUSE_FONTPICKERCTRL 1 // wxFontPickerCtrl -#define wxUSE_GAUGE 1 // wxGauge -#define wxUSE_HEADERCTRL 1 // wxHeaderCtrl -#define wxUSE_HYPERLINKCTRL 1 // wxHyperlinkCtrl -#define wxUSE_LISTBOX 1 // wxListBox -#define wxUSE_LISTCTRL 1 // wxListCtrl -#define wxUSE_RADIOBOX 1 // wxRadioBox -#define wxUSE_RADIOBTN 1 // wxRadioButton -#define wxUSE_RICHMSGDLG 1 // wxRichMessageDialog -#define wxUSE_SCROLLBAR 1 // wxScrollBar -#define wxUSE_SEARCHCTRL 1 // wxSearchCtrl -#define wxUSE_SLIDER 1 // wxSlider -#define wxUSE_SPINBTN 1 // wxSpinButton -#define wxUSE_SPINCTRL 1 // wxSpinCtrl -#define wxUSE_STATBOX 1 // wxStaticBox -#define wxUSE_STATLINE 1 // wxStaticLine -#define wxUSE_STATTEXT 1 // wxStaticText -#define wxUSE_STATBMP 1 // wxStaticBitmap -#define wxUSE_TEXTCTRL 1 // wxTextCtrl -#define wxUSE_TIMEPICKCTRL 1 // wxTimePickerCtrl -#define wxUSE_TOGGLEBTN 1 // requires wxButton -#define wxUSE_TREECTRL 1 // wxTreeCtrl -#define wxUSE_TREELISTCTRL 1 // wxTreeListCtrl - -// Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR -// below either wxStatusBar95 or a generic wxStatusBar will be used. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_STATUSBAR 1 - -// Two status bar implementations are available under Win32: the generic one -// or the wrapper around native control. For native look and feel the native -// version should be used. -// -// Default is 1 for the platforms where native status bar is supported. -// -// Recommended setting: 1 (there is no advantage in using the generic one) -#define wxUSE_NATIVE_STATUSBAR 1 - -// wxToolBar related settings: if wxUSE_TOOLBAR is 0, don't compile any toolbar -// classes at all. Otherwise, use the native toolbar class unless -// wxUSE_TOOLBAR_NATIVE is 0. -// -// Default is 1 for all settings. -// -// Recommended setting: 1 for wxUSE_TOOLBAR and wxUSE_TOOLBAR_NATIVE. -#define wxUSE_TOOLBAR 1 -#define wxUSE_TOOLBAR_NATIVE 1 - -// wxNotebook is a control with several "tabs" located on one of its sides. It -// may be used to logically organise the data presented to the user instead of -// putting everything in one huge dialog. It replaces wxTabControl and related -// classes of wxWin 1.6x. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_NOTEBOOK 1 - -// wxListbook control is similar to wxNotebook but uses wxListCtrl instead of -// the tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_LISTBOOK 1 - -// wxChoicebook control is similar to wxNotebook but uses wxChoice instead of -// the tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_CHOICEBOOK 1 - -// wxTreebook control is similar to wxNotebook but uses wxTreeCtrl instead of -// the tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_TREEBOOK 1 - -// wxToolbook control is similar to wxNotebook but uses wxToolBar instead of -// tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_TOOLBOOK 1 - -// wxTaskBarIcon is a small notification icon shown in the system toolbar or -// dock. -// -// Default is 1. -// -// Recommended setting: 1 (but can be set to 0 if you don't need it) -#define wxUSE_TASKBARICON 1 - -// wxGrid class -// -// Default is 1, set to 0 to cut down compilation time and binaries size if you -// don't use it. -// -// Recommended setting: 1 -// -#define wxUSE_GRID 1 - -// wxMiniFrame class: a frame with narrow title bar -// -// Default is 1. -// -// Recommended setting: 1 (it doesn't cost almost anything) -#define wxUSE_MINIFRAME 1 - -// wxComboCtrl and related classes: combobox with custom popup window and -// not necessarily a listbox. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 except for wxUniv where it -// it used by wxComboBox -#define wxUSE_COMBOCTRL 1 - -// wxOwnerDrawnComboBox is a custom combobox allowing to paint the combobox -// items. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0, except where it is -// needed as a base class for generic wxBitmapComboBox. -#define wxUSE_ODCOMBOBOX 1 - -// wxBitmapComboBox is a combobox that can have images in front of text items. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 -#define wxUSE_BITMAPCOMBOBOX 1 - -// wxRearrangeCtrl is a wxCheckListBox with two buttons allowing to move items -// up and down in it. It is also used as part of wxRearrangeDialog. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 (currently used only by -// wxHeaderCtrl) -#define wxUSE_REARRANGECTRL 1 - -// wxAddRemoveCtrl is a composite control containing a control showing some -// items (e.g. wxListBox, wxListCtrl, wxTreeCtrl, wxDataViewCtrl, ...) and "+"/ -// "-" buttons allowing to add and remove items to/from the control. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 if you don't need it (not -// used by the library itself). -#define wxUSE_ADDREMOVECTRL 1 - -// ---------------------------------------------------------------------------- -// Miscellaneous GUI stuff -// ---------------------------------------------------------------------------- - -// wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar) -#define wxUSE_ACCEL 1 - -// Use the standard art provider. The icons returned by this provider are -// embedded into the library as XPMs so disabling it reduces the library size -// somewhat but this should only be done if you use your own custom art -// provider returning the icons or never use any icons not provided by the -// native art provider (which might not be implemented at all for some -// platforms) or by the Tango icons provider (if it's not itself disabled -// below). -// -// Default is 1. -// -// Recommended setting: 1 unless you use your own custom art provider. -#define wxUSE_ARTPROVIDER_STD 1 - -// Use art provider providing Tango icons: this art provider has higher quality -// icons than the default ones using smaller size XPM icons without -// transparency but the embedded PNG icons add to the library size. -// -// Default is 1 under non-GTK ports. Under wxGTK the native art provider using -// the GTK+ stock icons replaces it so it is normally not necessary. -// -// Recommended setting: 1 but can be turned off to reduce the library size. -#define wxUSE_ARTPROVIDER_TANGO 1 - -// Hotkey support (currently Windows only) -#define wxUSE_HOTKEY 1 - -// Use wxCaret: a class implementing a "cursor" in a text control (called caret -// under Windows). -// -// Default is 1. -// -// Recommended setting: 1 (can be safely set to 0, not used by the library) -#define wxUSE_CARET 1 - -// Use wxDisplay class: it allows enumerating all displays on a system and -// their geometries as well as finding the display on which the given point or -// window lies. -// -// Default is 1. -// -// Recommended setting: 1 if you need it, can be safely set to 0 otherwise -#define wxUSE_DISPLAY 1 - -// Miscellaneous geometry code: needed for Canvas library -#define wxUSE_GEOMETRY 1 - -// Use wxImageList. This class is needed by wxNotebook, wxTreeCtrl and -// wxListCtrl. -// -// Default is 1. -// -// Recommended setting: 1 (set it to 0 if you don't use any of the controls -// enumerated above, then this class is mostly useless too) -#define wxUSE_IMAGLIST 1 - -// Use wxInfoBar class. -// -// Default is 1. -// -// Recommended setting: 1 (but can be disabled without problems as nothing -// depends on it) -#define wxUSE_INFOBAR 1 - -// Use wxMenu, wxMenuBar, wxMenuItem. -// -// Default is 1. -// -// Recommended setting: 1 (can't be disabled under MSW) -#define wxUSE_MENUS 1 - -// Use wxNotificationMessage. -// -// wxNotificationMessage allows to show non-intrusive messages to the user -// using balloons, banners, popups or whatever is the appropriate method for -// the current platform. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_NOTIFICATION_MESSAGE 1 - -// wxPreferencesEditor provides a common API for different ways of presenting -// the standard "Preferences" or "Properties" dialog under different platforms -// (e.g. some use modal dialogs, some use modeless ones; some apply the changes -// immediately while others require an explicit "Apply" button). -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely disabled if you don't use it) -#define wxUSE_PREFERENCES_EDITOR 1 - -// wxRichToolTip is a customizable tooltip class which has more functionality -// than the stock (but native, unlike this class) wxToolTip. -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely set to 0 if you don't need it) -#define wxUSE_RICHTOOLTIP 1 - -// Use wxSashWindow class. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_SASH 1 - -// Use wxSplitterWindow class. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_SPLITTER 1 - -// Use wxToolTip and wxWindow::Set/GetToolTip() methods. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_TOOLTIPS 1 - -// wxValidator class and related methods -#define wxUSE_VALIDATORS 1 - -// Use reference counted ID management: this means that wxWidgets will track -// the automatically allocated ids (those used when you use wxID_ANY when -// creating a window, menu or toolbar item &c) instead of just supposing that -// the program never runs out of them. This is mostly useful only under wxMSW -// where the total ids range is limited to SHRT_MIN..SHRT_MAX and where -// long-running programs can run into problems with ids reuse without this. On -// the other platforms, where the ids have the full int range, this shouldn't -// be necessary. -#ifdef __WXMSW__ -#define wxUSE_AUTOID_MANAGEMENT 1 -#else -#define wxUSE_AUTOID_MANAGEMENT 0 -#endif - -// ---------------------------------------------------------------------------- -// common dialogs -// ---------------------------------------------------------------------------- - -// On rare occasions (e.g. using DJGPP) may want to omit common dialogs (e.g. -// file selector, printer dialog). Switching this off also switches off the -// printing architecture and interactive wxPrinterDC. -// -// Default is 1 -// -// Recommended setting: 1 (unless it really doesn't work) -#define wxUSE_COMMON_DIALOGS 1 - -// wxBusyInfo displays window with message when app is busy. Works in same way -// as wxBusyCursor -#define wxUSE_BUSYINFO 1 - -// Use single/multiple choice dialogs. -// -// Default is 1 -// -// Recommended setting: 1 (used in the library itself) -#define wxUSE_CHOICEDLG 1 - -// Use colour picker dialog -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_COLOURDLG 1 - -// wxDirDlg class for getting a directory name from user -#define wxUSE_DIRDLG 1 - -// TODO: setting to choose the generic or native one - -// Use file open/save dialogs. -// -// Default is 1 -// -// Recommended setting: 1 (used in many places in the library itself) -#define wxUSE_FILEDLG 1 - -// Use find/replace dialogs. -// -// Default is 1 -// -// Recommended setting: 1 (but may be safely set to 0) -#define wxUSE_FINDREPLDLG 1 - -// Use font picker dialog -// -// Default is 1 -// -// Recommended setting: 1 (used in the library itself) -#define wxUSE_FONTDLG 1 - -// Use wxMessageDialog and wxMessageBox. -// -// Default is 1 -// -// Recommended setting: 1 (used in the library itself) -#define wxUSE_MSGDLG 1 - -// progress dialog class for lengthy operations -#define wxUSE_PROGRESSDLG 1 - -// Set to 0 to disable the use of the native progress dialog (currently only -// available under MSW and suffering from some bugs there, hence this option). -#define wxUSE_NATIVE_PROGRESSDLG 1 - -// support for startup tips (wxShowTip &c) -#define wxUSE_STARTUP_TIPS 1 - -// text entry dialog and wxGetTextFromUser function -#define wxUSE_TEXTDLG 1 - -// number entry dialog -#define wxUSE_NUMBERDLG 1 - -// splash screen class -#define wxUSE_SPLASH 1 - -// wizards -#define wxUSE_WIZARDDLG 1 - -// Compile in wxAboutBox() function showing the standard "About" dialog. -// -// Default is 1 -// -// Recommended setting: 1 but can be set to 0 to save some space if you don't -// use this function -#define wxUSE_ABOUTDLG 1 - -// wxFileHistory class -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_FILE_HISTORY 1 - -// ---------------------------------------------------------------------------- -// Metafiles support -// ---------------------------------------------------------------------------- - -// Windows supports the graphics format known as metafile which is, though not -// portable, is widely used under Windows and so is supported by wxWin (under -// Windows only, of course). Win16 (Win3.1) used the so-called "Window -// MetaFiles" or WMFs which were replaced with "Enhanced MetaFiles" or EMFs in -// Win32 (Win9x, NT, 2000). Both of these are supported in wxWin and, by -// default, WMFs will be used under Win16 and EMFs under Win32. This may be -// changed by setting wxUSE_WIN_METAFILES_ALWAYS to 1 and/or setting -// wxUSE_ENH_METAFILE to 0. You may also set wxUSE_METAFILE to 0 to not compile -// in any metafile related classes at all. -// -// Default is 1 for wxUSE_ENH_METAFILE and 0 for wxUSE_WIN_METAFILES_ALWAYS. -// -// Recommended setting: default or 0 for everything for portable programs. -#define wxUSE_METAFILE 1 -#define wxUSE_ENH_METAFILE 1 -#define wxUSE_WIN_METAFILES_ALWAYS 0 - -// ---------------------------------------------------------------------------- -// Big GUI components -// ---------------------------------------------------------------------------- - -// Set to 0 to disable MDI support. -// -// Requires wxUSE_NOTEBOOK under platforms other than MSW. -// -// Default is 1. -// -// Recommended setting: 1, can be safely set to 0. -#define wxUSE_MDI 1 - -// Set to 0 to disable document/view architecture -#define wxUSE_DOC_VIEW_ARCHITECTURE 1 - -// Set to 0 to disable MDI document/view architecture -// -// Requires wxUSE_MDI && wxUSE_DOC_VIEW_ARCHITECTURE -#define wxUSE_MDI_ARCHITECTURE 1 - -// Set to 0 to disable print/preview architecture code -#define wxUSE_PRINTING_ARCHITECTURE 1 - -// wxHTML sublibrary allows to display HTML in wxWindow programs and much, -// much more. -// -// Default is 1. -// -// Recommended setting: 1 (wxHTML is great!), set to 0 if you want compile a -// smaller library. -#define wxUSE_HTML 1 - -// Setting wxUSE_GLCANVAS to 1 enables OpenGL support. You need to have OpenGL -// headers and libraries to be able to compile the library with wxUSE_GLCANVAS -// set to 1 and, under Windows, also to add opengl32.lib and glu32.lib to the -// list of libraries used to link your application (although this is done -// implicitly for Microsoft Visual C++ users). -// -// Default is 1. -// -// Recommended setting: 1 if you intend to use OpenGL, can be safely set to 0 -// otherwise. -#define wxUSE_GLCANVAS 1 - -// wxRichTextCtrl allows editing of styled text. -// -// Default is 1. -// -// Recommended setting: 1, set to 0 if you want compile a -// smaller library. -#define wxUSE_RICHTEXT 1 - -// ---------------------------------------------------------------------------- -// Data transfer -// ---------------------------------------------------------------------------- - -// Use wxClipboard class for clipboard copy/paste. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_CLIPBOARD 1 - -// Use wxDataObject and related classes. Needed for clipboard and OLE drag and -// drop -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DATAOBJ 1 - -// Use wxDropTarget and wxDropSource classes for drag and drop (this is -// different from "built in" drag and drop in wxTreeCtrl which is always -// available). Requires wxUSE_DATAOBJ. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DRAG_AND_DROP 1 - -// Use wxAccessible for enhanced and customisable accessibility. -// Depends on wxUSE_OLE. -// -// Default is 0. -// -// Recommended setting (at present): 0 -#define wxUSE_ACCESSIBILITY 0 - -// ---------------------------------------------------------------------------- -// miscellaneous settings -// ---------------------------------------------------------------------------- - -// wxSingleInstanceChecker class allows to verify at startup if another program -// instance is running. -// -// Default is 1 -// -// Recommended setting: 1 (the class is tiny, disabling it won't save much -// space) -#define wxUSE_SNGLINST_CHECKER 1 - -#define wxUSE_DRAGIMAGE 1 - -#define wxUSE_IPC 1 - // 0 for no interprocess comms -#define wxUSE_HELP 1 - // 0 for no help facility - -// Should we use MS HTML help for wxHelpController? If disabled, neither -// wxCHMHelpController nor wxBestHelpController are available. -// -// Default is 1 under MSW, 0 is always used for the other platforms. -// -// Recommended setting: 1, only set to 0 if you have trouble compiling -// wxCHMHelpController (could be a problem with really ancient compilers) -#define wxUSE_MS_HTML_HELP 1 - - -// Use wxHTML-based help controller? -#define wxUSE_WXHTML_HELP 1 - -#define wxUSE_CONSTRAINTS 1 - // 0 for no window layout constraint system - -#define wxUSE_SPLINES 1 - // 0 for no splines - -#define wxUSE_MOUSEWHEEL 1 - // Include mouse wheel support - -// Compile wxUIActionSimulator class? -#define wxUSE_UIACTIONSIMULATOR 1 - -// ---------------------------------------------------------------------------- -// wxDC classes for various output formats -// ---------------------------------------------------------------------------- - -// Set to 1 for PostScript device context. -#define wxUSE_POSTSCRIPT 0 - -// Set to 1 to use font metric files in GetTextExtent -#define wxUSE_AFM_FOR_POSTSCRIPT 1 - -// Set to 1 to compile in support for wxSVGFileDC, a wxDC subclass which allows -// to create files in SVG (Scalable Vector Graphics) format. -#define wxUSE_SVG 1 - -// Should wxDC provide SetTransformMatrix() and related methods? -// -// Default is 1 but can be set to 0 if this functionality is not used. Notice -// that currently only wxMSW supports this so setting this to 0 doesn't change -// much for non-MSW platforms (although it will still save a few bytes -// probably). -// -// Recommended setting: 1. -#define wxUSE_DC_TRANSFORM_MATRIX 1 - -// ---------------------------------------------------------------------------- -// image format support -// ---------------------------------------------------------------------------- - -// wxImage supports many different image formats which can be configured at -// compile-time. BMP is always supported, others are optional and can be safely -// disabled if you don't plan to use images in such format sometimes saving -// substantial amount of code in the final library. -// -// Some formats require an extra library which is included in wxWin sources -// which is mentioned if it is the case. - -// Set to 1 for wxImage support (recommended). -#define wxUSE_IMAGE 1 - -// Set to 1 for PNG format support (requires libpng). Also requires wxUSE_ZLIB. -#define wxUSE_LIBPNG 1 - -// Set to 1 for JPEG format support (requires libjpeg) -#define wxUSE_LIBJPEG 1 - -// Set to 1 for TIFF format support (requires libtiff) -#define wxUSE_LIBTIFF 1 - -// Set to 1 for TGA format support (loading only) -#define wxUSE_TGA 1 - -// Set to 1 for GIF format support -#define wxUSE_GIF 1 - -// Set to 1 for PNM format support -#define wxUSE_PNM 1 - -// Set to 1 for PCX format support -#define wxUSE_PCX 1 - -// Set to 1 for IFF format support (Amiga format) -#define wxUSE_IFF 0 - -// Set to 1 for XPM format support -#define wxUSE_XPM 1 - -// Set to 1 for MS Icons and Cursors format support -#define wxUSE_ICO_CUR 1 - -// Set to 1 to compile in wxPalette class -#define wxUSE_PALETTE 1 - -// ---------------------------------------------------------------------------- -// wxUniversal-only options -// ---------------------------------------------------------------------------- - -// Set to 1 to enable compilation of all themes, this is the default -#define wxUSE_ALL_THEMES 1 - -// Set to 1 to enable the compilation of individual theme if wxUSE_ALL_THEMES -// is unset, if it is set these options are not used; notice that metal theme -// uses Win32 one -#define wxUSE_THEME_GTK 0 -#define wxUSE_THEME_METAL 0 -#define wxUSE_THEME_MONO 0 -#define wxUSE_THEME_WIN32 0 - - -/* --- end common options --- */ - -/* --- start MSW options --- */ -// ---------------------------------------------------------------------------- -// Windows-only settings -// ---------------------------------------------------------------------------- - -// Set this to 1 for generic OLE support: this is required for drag-and-drop, -// clipboard, OLE Automation. Only set it to 0 if your compiler is very old and -// can't compile/doesn't have the OLE headers. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_OLE 1 - -// Set this to 1 to enable wxAutomationObject class. -// -// Default is 1. -// -// Recommended setting: 1 if you need to control other applications via OLE -// Automation, can be safely set to 0 otherwise -#define wxUSE_OLE_AUTOMATION 1 - -// Set this to 1 to enable wxActiveXContainer class allowing to embed OLE -// controls in wx. -// -// Default is 1. -// -// Recommended setting: 1, required by wxMediaCtrl -#define wxUSE_ACTIVEX 1 - -// wxDC caching implementation -#define wxUSE_DC_CACHEING 1 - -// Set this to 1 to enable wxDIB class used internally for manipulating -// wxBitmap data. -// -// Default is 1, set it to 0 only if you don't use wxImage neither -// -// Recommended setting: 1 (without it conversion to/from wxImage won't work) -#define wxUSE_WXDIB 1 - -// Set to 0 to disable PostScript print/preview architecture code under Windows -// (just use Windows printing). -#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 1 - -// Set this to 1 to compile in wxRegKey class. -// -// Default is 1 -// -// Recommended setting: 1, this is used internally by wx in a few places -#define wxUSE_REGKEY 1 - -// Set this to 1 to use RICHEDIT controls for wxTextCtrl with style wxTE_RICH -// which allows to put more than ~32Kb of text in it even under Win9x (NT -// doesn't have such limitation). -// -// Default is 1 for compilers which support it -// -// Recommended setting: 1, only set it to 0 if your compiler doesn't have -// or can't compile -#define wxUSE_RICHEDIT 1 - -// Set this to 1 to use extra features of richedit v2 and later controls -// -// Default is 1 for compilers which support it -// -// Recommended setting: 1 -#define wxUSE_RICHEDIT2 1 - -// Set this to 1 to enable support for the owner-drawn menu and listboxes. This -// is required by wxUSE_CHECKLISTBOX. -// -// Default is 1. -// -// Recommended setting: 1, set to 0 for a small library size reduction -#define wxUSE_OWNER_DRAWN 1 - -// Set this to 1 to enable MSW-specific wxTaskBarIcon::ShowBalloon() method. It -// is required by native wxNotificationMessage implementation. -// -// Default is 1 but disabled in wx/msw/chkconf.h if SDK is too old to contain -// the necessary declarations. -// -// Recommended setting: 1, set to 0 for a tiny library size reduction -#define wxUSE_TASKBARICON_BALLOONS 1 - -// Set to 1 to compile MS Windows XP theme engine support -#define wxUSE_UXTHEME 1 - -// Set to 1 to use InkEdit control (Tablet PC), if available -#define wxUSE_INKEDIT 0 - -// Set to 1 to enable .INI files based wxConfig implementation (wxIniConfig) -// -// Default is 0. -// -// Recommended setting: 0, nobody uses .INI files any more -#define wxUSE_INICONF 0 - -// ---------------------------------------------------------------------------- -// Generic versions of native controls -// ---------------------------------------------------------------------------- - -// Set this to 1 to be able to use wxDatePickerCtrlGeneric in addition to the -// native wxDatePickerCtrl -// -// Default is 0. -// -// Recommended setting: 0, this is mainly used for testing -#define wxUSE_DATEPICKCTRL_GENERIC 0 - -// ---------------------------------------------------------------------------- -// Crash debugging helpers -// ---------------------------------------------------------------------------- - -// Set this to 1 to be able to use wxCrashReport::Generate() to create mini -// dumps of your program when it crashes (or at any other moment) -// -// Default is 1 if supported by the compiler (VC++ and recent BC++ only). -// -// Recommended setting: 1, set to 0 if your programs never crash -#define wxUSE_CRASHREPORT 1 -/* --- end MSW options --- */ - -/* --- start wxUniv options --- */ -// ---------------------------------------------------------------------------- -// wxUniversal-only options -// ---------------------------------------------------------------------------- - -// Set to 1 to enable compilation of all themes, this is the default -#define wxUSE_ALL_THEMES 1 - -// Set to 1 to enable the compilation of individual theme if wxUSE_ALL_THEMES -// is unset, if it is set these options are not used; notice that metal theme -// uses Win32 one -#define wxUSE_THEME_GTK 0 -#define wxUSE_THEME_METAL 0 -#define wxUSE_THEME_MONO 0 -#define wxUSE_THEME_WIN32 0 -/* --- end wxUniv options --- */ - -#endif // _WX_SETUP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/anidecod.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/anidecod.h deleted file mode 100644 index 4a112410..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/anidecod.h +++ /dev/null @@ -1,80 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/anidecod.h -// Purpose: wxANIDecoder, ANI reader for wxImage and wxAnimation -// Author: Francesco Montorsi -// Copyright: (c) 2006 Francesco Montorsi -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ANIDECOD_H -#define _WX_ANIDECOD_H - -#include "wx/defs.h" - -#if wxUSE_STREAMS && (wxUSE_ICO_CUR || wxUSE_GIF) - -#include "wx/stream.h" -#include "wx/image.h" -#include "wx/animdecod.h" -#include "wx/dynarray.h" - - -class /*WXDLLIMPEXP_CORE*/ wxANIFrameInfo; // private implementation detail - -WX_DECLARE_EXPORTED_OBJARRAY(wxANIFrameInfo, wxANIFrameInfoArray); -WX_DECLARE_EXPORTED_OBJARRAY(wxImage, wxImageArray); - -// -------------------------------------------------------------------------- -// wxANIDecoder class -// -------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxANIDecoder : public wxAnimationDecoder -{ -public: - // constructor, destructor, etc. - wxANIDecoder(); - ~wxANIDecoder(); - - - virtual wxSize GetFrameSize(unsigned int frame) const wxOVERRIDE; - virtual wxPoint GetFramePosition(unsigned int frame) const wxOVERRIDE; - virtual wxAnimationDisposal GetDisposalMethod(unsigned int frame) const wxOVERRIDE; - virtual long GetDelay(unsigned int frame) const wxOVERRIDE; - virtual wxColour GetTransparentColour(unsigned int frame) const wxOVERRIDE; - - // implementation of wxAnimationDecoder's pure virtuals - - virtual bool Load( wxInputStream& stream ) wxOVERRIDE; - - bool ConvertToImage(unsigned int frame, wxImage *image) const wxOVERRIDE; - - wxAnimationDecoder *Clone() const wxOVERRIDE - { return new wxANIDecoder; } - wxAnimationType GetType() const wxOVERRIDE - { return wxANIMATION_TYPE_ANI; } - -private: - // wxAnimationDecoder pure virtual: - virtual bool DoCanRead( wxInputStream& stream ) const wxOVERRIDE; - // modifies current stream position (see wxAnimationDecoder::CanRead) - - // frames stored as wxImage(s): ANI files are meant to be used mostly for animated - // cursors and thus they do not use any optimization to encode differences between - // two frames: they are just a list of images to display sequentially. - wxImageArray m_images; - - // the info about each image stored in m_images. - // NB: m_info.GetCount() may differ from m_images.GetCount()! - wxANIFrameInfoArray m_info; - - // this is the wxCURHandler used to load the ICON chunk of the ANI files - static wxCURHandler sm_handler; - - - wxDECLARE_NO_COPY_CLASS(wxANIDecoder); -}; - - -#endif // wxUSE_STREAMS && (wxUSE_ICO_CUR || wxUSE_GIF) - -#endif // _WX_ANIDECOD_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/animate.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/animate.h deleted file mode 100644 index 77ec3bf4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/animate.h +++ /dev/null @@ -1,125 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/animate.h -// Purpose: wxAnimation and wxAnimationCtrl -// Author: Julian Smart and Guillermo Rodriguez Garcia -// Modified by: Francesco Montorsi -// Created: 13/8/99 -// Copyright: (c) Julian Smart and Guillermo Rodriguez Garcia -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ANIMATE_H_ -#define _WX_ANIMATE_H_ - -#include "wx/defs.h" - -#if wxUSE_ANIMATIONCTRL - -#include "wx/animdecod.h" -#include "wx/control.h" -#include "wx/timer.h" -#include "wx/bitmap.h" - -class WXDLLIMPEXP_FWD_ADV wxAnimation; - -extern WXDLLIMPEXP_DATA_ADV(wxAnimation) wxNullAnimation; -extern WXDLLIMPEXP_DATA_ADV(const char) wxAnimationCtrlNameStr[]; - - -// ---------------------------------------------------------------------------- -// wxAnimationBase -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxAnimationBase : public wxObject -{ -public: - wxAnimationBase() {} - - virtual bool IsOk() const = 0; - - // can be -1 - virtual int GetDelay(unsigned int frame) const = 0; - - virtual unsigned int GetFrameCount() const = 0; - virtual wxImage GetFrame(unsigned int frame) const = 0; - virtual wxSize GetSize() const = 0; - - virtual bool LoadFile(const wxString& name, - wxAnimationType type = wxANIMATION_TYPE_ANY) = 0; - virtual bool Load(wxInputStream& stream, - wxAnimationType type = wxANIMATION_TYPE_ANY) = 0; - -protected: - wxDECLARE_ABSTRACT_CLASS(wxAnimationBase); -}; - - - -// ---------------------------------------------------------------------------- -// wxAnimationCtrlBase -// ---------------------------------------------------------------------------- - -// do not autoresize to the animation's size when SetAnimation() is called -#define wxAC_NO_AUTORESIZE (0x0010) - -// default style does not include wxAC_NO_AUTORESIZE, that is, the control -// auto-resizes by default to fit the new animation when SetAnimation() is called -#define wxAC_DEFAULT_STYLE (wxBORDER_NONE) - -class WXDLLIMPEXP_ADV wxAnimationCtrlBase : public wxControl -{ -public: - wxAnimationCtrlBase() { } - - // public API - virtual bool LoadFile(const wxString& filename, - wxAnimationType type = wxANIMATION_TYPE_ANY) = 0; - virtual bool Load(wxInputStream& stream, - wxAnimationType type = wxANIMATION_TYPE_ANY) = 0; - - virtual void SetAnimation(const wxAnimation &anim) = 0; - virtual wxAnimation GetAnimation() const = 0; - - virtual bool Play() = 0; - virtual void Stop() = 0; - - virtual bool IsPlaying() const = 0; - - virtual void SetInactiveBitmap(const wxBitmap &bmp); - - // always return the original bitmap set in this control - wxBitmap GetInactiveBitmap() const - { return m_bmpStatic; } - -protected: - // the inactive bitmap as it was set by the user - wxBitmap m_bmpStatic; - - // the inactive bitmap currently shown in the control - // (may differ in the size from m_bmpStatic) - wxBitmap m_bmpStaticReal; - - // updates m_bmpStaticReal from m_bmpStatic if needed - virtual void UpdateStaticImage(); - - // called by SetInactiveBitmap - virtual void DisplayStaticImage() = 0; - -private: - wxDECLARE_ABSTRACT_CLASS(wxAnimationCtrlBase); -}; - - -// ---------------------------------------------------------------------------- -// include the platform-specific version of the wxAnimationCtrl class -// ---------------------------------------------------------------------------- - -#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__) - #include "wx/gtk/animate.h" -#else - #include "wx/generic/animate.h" -#endif - -#endif // wxUSE_ANIMATIONCTRL - -#endif // _WX_ANIMATE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/animdecod.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/animdecod.h deleted file mode 100644 index 58177e68..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/animdecod.h +++ /dev/null @@ -1,170 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/animdecod.h -// Purpose: wxAnimationDecoder -// Author: Francesco Montorsi -// Copyright: (c) 2006 Francesco Montorsi -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ANIMDECOD_H -#define _WX_ANIMDECOD_H - -#include "wx/defs.h" - -#if wxUSE_STREAMS - -#include "wx/colour.h" -#include "wx/gdicmn.h" -#include "wx/log.h" -#include "wx/stream.h" - -class WXDLLIMPEXP_FWD_CORE wxImage; - -/* - - Differences between a wxAnimationDecoder and a wxImageHandler: - - 1) wxImageHandlers always load an input stream directly into a given wxImage - object converting from the format-specific data representation to the - wxImage native format (RGB24). - wxAnimationDecoders always load an input stream using some optimized format - to store it which is format-depedent. This allows to store a (possibly big) - animation using a format which is a good compromise between required memory - and time required to blit it on the screen. - - 2) wxAnimationDecoders contain the animation data in some internal variable. - That's why they derive from wxObjectRefData: they are data which can be shared. - - 3) wxAnimationDecoders can be used by a wxImageHandler to retrieve a frame - in wxImage format; the viceversa cannot be done. - - 4) wxAnimationDecoders are decoders only, thus they do not support save features. - - 5) wxAnimationDecoders are directly used by wxAnimation (generic implementation) - as wxObjectRefData while they need to be 'wrapped' by a wxImageHandler for - wxImage uses. - -*/ - - -// -------------------------------------------------------------------------- -// Constants -// -------------------------------------------------------------------------- - -// NB: the values of these enum items are not casual but coincide with the -// GIF disposal codes. Do not change them !! -enum wxAnimationDisposal -{ - // No disposal specified. The decoder is not required to take any action. - wxANIM_UNSPECIFIED = -1, - - // Do not dispose. The graphic is to be left in place. - wxANIM_DONOTREMOVE = 0, - - // Restore to background color. The area used by the graphic must be - // restored to the background color. - wxANIM_TOBACKGROUND = 1, - - // Restore to previous. The decoder is required to restore the area - // overwritten by the graphic with what was there prior to rendering the graphic. - wxANIM_TOPREVIOUS = 2 -}; - -enum wxAnimationType -{ - wxANIMATION_TYPE_INVALID, - wxANIMATION_TYPE_GIF, - wxANIMATION_TYPE_ANI, - - wxANIMATION_TYPE_ANY -}; - - -// -------------------------------------------------------------------------- -// wxAnimationDecoder class -// -------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxAnimationDecoder : public wxObjectRefData -{ -public: - wxAnimationDecoder() - { - m_nFrames = 0; - } - - virtual bool Load( wxInputStream& stream ) = 0; - - bool CanRead( wxInputStream& stream ) const - { - // NOTE: this code is the same of wxImageHandler::CallDoCanRead - - if ( !stream.IsSeekable() ) - return false; // can't test unseekable stream - - wxFileOffset posOld = stream.TellI(); - bool ok = DoCanRead(stream); - - // restore the old position to be able to test other formats and so on - if ( stream.SeekI(posOld) == wxInvalidOffset ) - { - wxLogDebug(wxT("Failed to rewind the stream in wxAnimationDecoder!")); - - // reading would fail anyhow as we're not at the right position - return false; - } - - return ok; - } - - virtual wxAnimationDecoder *Clone() const = 0; - virtual wxAnimationType GetType() const = 0; - - // convert given frame to wxImage - virtual bool ConvertToImage(unsigned int frame, wxImage *image) const = 0; - - - // frame specific data getters - - // not all frames may be of the same size; e.g. GIF allows to - // specify that between two frames only a smaller portion of the - // entire animation has changed. - virtual wxSize GetFrameSize(unsigned int frame) const = 0; - - // the position of this frame in case it's not as big as m_szAnimation - // or wxPoint(0,0) otherwise. - virtual wxPoint GetFramePosition(unsigned int frame) const = 0; - - // what should be done after displaying this frame. - virtual wxAnimationDisposal GetDisposalMethod(unsigned int frame) const = 0; - - // the number of milliseconds this frame should be displayed. - // if returns -1 then the frame must be displayed forever. - virtual long GetDelay(unsigned int frame) const = 0; - - // the transparent colour for this frame if any or wxNullColour. - virtual wxColour GetTransparentColour(unsigned int frame) const = 0; - - // get global data - wxSize GetAnimationSize() const { return m_szAnimation; } - wxColour GetBackgroundColour() const { return m_background; } - unsigned int GetFrameCount() const { return m_nFrames; } - -protected: - // checks the signature of the data in the given stream and returns true if it - // appears to be a valid animation format recognized by the animation decoder; - // this function should modify the stream current position without taking care - // of restoring it since CanRead() will do it. - virtual bool DoCanRead(wxInputStream& stream) const = 0; - - wxSize m_szAnimation; - unsigned int m_nFrames; - - // this is the colour to use for the wxANIM_TOBACKGROUND disposal. - // if not specified by the animation, it's set to wxNullColour - wxColour m_background; -}; - -#endif // wxUSE_STREAMS - -#endif // _WX_ANIMDECOD_H - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/any.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/any.h deleted file mode 100644 index 2b37bafa..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/any.h +++ /dev/null @@ -1,1120 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/any.h -// Purpose: wxAny class -// Author: Jaakko Salli -// Modified by: -// Created: 07/05/2009 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ANY_H_ -#define _WX_ANY_H_ - -#include "wx/defs.h" - -#if wxUSE_ANY - -#include // for placement new -#include "wx/string.h" -#include "wx/meta/if.h" -#include "wx/typeinfo.h" -#include "wx/list.h" - -// Size of the wxAny value buffer. -enum -{ - WX_ANY_VALUE_BUFFER_SIZE = 16 -}; - -union wxAnyValueBuffer -{ - union Alignment - { - #if wxHAS_INT64 - wxInt64 m_int64; - #endif - long double m_longDouble; - void ( *m_funcPtr )(void); - void ( wxAnyValueBuffer::*m_mFuncPtr )(void); - } m_alignment; - - void* m_ptr; - wxByte m_buffer[WX_ANY_VALUE_BUFFER_SIZE]; -}; - -// -// wxAnyValueType is base class for value type functionality for C++ data -// types used with wxAny. Usually the default template (wxAnyValueTypeImpl<>) -// will create a satisfactory wxAnyValueType implementation for a data type. -// -class WXDLLIMPEXP_BASE wxAnyValueType -{ - WX_DECLARE_ABSTRACT_TYPEINFO(wxAnyValueType) -public: - /** - Default constructor. - */ - wxAnyValueType() - { - } - - /** - Destructor. - */ - virtual ~wxAnyValueType() - { - } - - /** - This function is used for internal type matching. - */ - virtual bool IsSameType(const wxAnyValueType* otherType) const = 0; - - /** - This function is called every time the data in wxAny - buffer needs to be freed. - */ - virtual void DeleteValue(wxAnyValueBuffer& buf) const = 0; - - /** - Implement this for buffer-to-buffer copy. - - @param src - This is the source data buffer. - - @param dst - This is the destination data buffer that is in either - uninitialized or freed state. - */ - virtual void CopyBuffer(const wxAnyValueBuffer& src, - wxAnyValueBuffer& dst) const = 0; - - /** - Convert value into buffer of different type. Return false if - not possible. - */ - virtual bool ConvertValue(const wxAnyValueBuffer& src, - wxAnyValueType* dstType, - wxAnyValueBuffer& dst) const = 0; - - /** - Use this template function for checking if wxAnyValueType represents - a specific C++ data type. - - @see wxAny::CheckType() - */ - template - bool CheckType() const; - -#if wxUSE_EXTENDED_RTTI - virtual const wxTypeInfo* GetTypeInfo() const = 0; -#endif -private: -}; - - -// -// We need to allocate wxAnyValueType instances in heap, and need to use -// scoped ptr to properly deallocate them in dynamic library use cases. -// Here we have a minimal specialized scoped ptr implementation to deal -// with various compiler-specific problems with template class' static -// member variable of template type with explicit constructor which -// is initialized in global scope. -// -class wxAnyValueTypeScopedPtr -{ -public: - wxAnyValueTypeScopedPtr(wxAnyValueType* ptr) : m_ptr(ptr) { } - ~wxAnyValueTypeScopedPtr() { delete m_ptr; } - wxAnyValueType* get() const { return m_ptr; } -private: - wxAnyValueType* m_ptr; -}; - - -// Deprecated macro for checking the type which was originally introduced for -// MSVC6 compatibility and is not needed any longer now that this compiler is -// not supported any more. -#define wxANY_VALUE_TYPE_CHECK_TYPE(valueTypePtr, T) \ - wxAnyValueTypeImpl::IsSameClass(valueTypePtr) - - -/** - Helper macro for defining user value types. - - Even though C++ RTTI would be fully available to use, we'd have to to - facilitate sub-type system which allows, for instance, wxAny with - signed short '15' to be treated equal to wxAny with signed long long '15'. - Having sm_instance is important here. - - NB: We really need to have wxAnyValueType instances allocated - in heap. They are stored as static template member variables, - and with them we just can't be too careful (eg. not allocating - them in heap broke the type identification in GCC). -*/ -#define WX_DECLARE_ANY_VALUE_TYPE(CLS) \ - friend class wxAny; \ - WX_DECLARE_TYPEINFO_INLINE(CLS) \ -public: \ - static bool IsSameClass(const wxAnyValueType* otherType) \ - { \ - return AreSameClasses(*sm_instance.get(), *otherType); \ - } \ - virtual bool IsSameType(const wxAnyValueType* otherType) const wxOVERRIDE \ - { \ - return IsSameClass(otherType); \ - } \ -private: \ - static bool AreSameClasses(const wxAnyValueType& a, const wxAnyValueType& b) \ - { \ - return wxTypeId(a) == wxTypeId(b); \ - } \ - static wxAnyValueTypeScopedPtr sm_instance; \ -public: \ - static wxAnyValueType* GetInstance() \ - { \ - return sm_instance.get(); \ - } - - -#define WX_IMPLEMENT_ANY_VALUE_TYPE(CLS) \ -wxAnyValueTypeScopedPtr CLS::sm_instance(new CLS()); - - -/** - Following are helper classes for the wxAnyValueTypeImplBase. -*/ -namespace wxPrivate -{ - -template -class wxAnyValueTypeOpsInplace -{ -public: - static void DeleteValue(wxAnyValueBuffer& buf) - { - GetValue(buf).~T(); - } - - static void SetValue(const T& value, - wxAnyValueBuffer& buf) - { - // Use placement new - void* const place = buf.m_buffer; - ::new(place) T(value); - } - - static const T& GetValue(const wxAnyValueBuffer& buf) - { - // Use a union to avoid undefined behaviour (and gcc -Wstrict-alias - // warnings about it) which would occur if we just casted a wxByte - // pointer to a T one. - union - { - const T* ptr; - const wxByte *buf; - } u; - u.buf = buf.m_buffer; - - return *u.ptr; - } -}; - - -template -class wxAnyValueTypeOpsGeneric -{ -public: - template - class DataHolder - { - public: - DataHolder(const T2& value) - { - m_value = value; - } - virtual ~DataHolder() { } - - T2 m_value; - private: - wxDECLARE_NO_COPY_CLASS(DataHolder); - }; - - static void DeleteValue(wxAnyValueBuffer& buf) - { - DataHolder* holder = static_cast*>(buf.m_ptr); - delete holder; - } - - static void SetValue(const T& value, - wxAnyValueBuffer& buf) - { - DataHolder* holder = new DataHolder(value); - buf.m_ptr = holder; - } - - static const T& GetValue(const wxAnyValueBuffer& buf) - { - DataHolder* holder = static_cast*>(buf.m_ptr); - return holder->m_value; - } -}; - - -template -struct wxAnyAsImpl; - -} // namespace wxPrivate - - -/** - Intermediate template for the generic value type implementation. - We can derive from this same value type for multiple actual types - (for instance, we can have wxAnyValueTypeImplInt for all signed - integer types), and also easily implement specialized templates - with specific dynamic type conversion. -*/ -template -class wxAnyValueTypeImplBase : public wxAnyValueType -{ - typedef typename wxIf< sizeof(T) <= WX_ANY_VALUE_BUFFER_SIZE, - wxPrivate::wxAnyValueTypeOpsInplace, - wxPrivate::wxAnyValueTypeOpsGeneric >::value - Ops; - -public: - wxAnyValueTypeImplBase() : wxAnyValueType() { } - virtual ~wxAnyValueTypeImplBase() { } - - virtual void DeleteValue(wxAnyValueBuffer& buf) const wxOVERRIDE - { - Ops::DeleteValue(buf); - } - - virtual void CopyBuffer(const wxAnyValueBuffer& src, - wxAnyValueBuffer& dst) const wxOVERRIDE - { - Ops::SetValue(Ops::GetValue(src), dst); - } - - /** - It is important to reimplement this in any specialized template - classes that inherit from wxAnyValueTypeImplBase. - */ - static void SetValue(const T& value, - wxAnyValueBuffer& buf) - { - Ops::SetValue(value, buf); - } - - /** - It is important to reimplement this in any specialized template - classes that inherit from wxAnyValueTypeImplBase. - */ - static const T& GetValue(const wxAnyValueBuffer& buf) - { - return Ops::GetValue(buf); - } -#if wxUSE_EXTENDED_RTTI - virtual const wxTypeInfo* GetTypeInfo() const - { - return wxGetTypeInfo((T*)NULL); - } -#endif -}; - - -/* - Generic value type template. Note that bulk of the implementation - resides in wxAnyValueTypeImplBase. -*/ -template -class wxAnyValueTypeImpl : public wxAnyValueTypeImplBase -{ - WX_DECLARE_ANY_VALUE_TYPE(wxAnyValueTypeImpl) -public: - wxAnyValueTypeImpl() : wxAnyValueTypeImplBase() { } - virtual ~wxAnyValueTypeImpl() { } - - virtual bool ConvertValue(const wxAnyValueBuffer& src, - wxAnyValueType* dstType, - wxAnyValueBuffer& dst) const wxOVERRIDE - { - wxUnusedVar(src); - wxUnusedVar(dstType); - wxUnusedVar(dst); - return false; - } -}; - -template -wxAnyValueTypeScopedPtr wxAnyValueTypeImpl::sm_instance = new wxAnyValueTypeImpl(); - - -// -// Helper macro for using same base value type implementation for multiple -// actual C++ data types. -// -#define _WX_ANY_DEFINE_SUB_TYPE(T, CLSTYPE) \ -template<> \ -class wxAnyValueTypeImpl : public wxAnyValueTypeImpl##CLSTYPE \ -{ \ - typedef wxAnyBase##CLSTYPE##Type UseDataType; \ -public: \ - wxAnyValueTypeImpl() : wxAnyValueTypeImpl##CLSTYPE() { } \ - virtual ~wxAnyValueTypeImpl() { } \ - static void SetValue(const T& value, wxAnyValueBuffer& buf) \ - { \ - void* voidPtr = reinterpret_cast(&buf.m_buffer[0]); \ - UseDataType* dptr = reinterpret_cast(voidPtr); \ - *dptr = static_cast(value); \ - } \ - static T GetValue(const wxAnyValueBuffer& buf) \ - { \ - const void* voidPtr = \ - reinterpret_cast(&buf.m_buffer[0]); \ - const UseDataType* sptr = \ - reinterpret_cast(voidPtr); \ - return static_cast(*sptr); \ - } - -#if wxUSE_EXTENDED_RTTI -#define WX_ANY_DEFINE_SUB_TYPE(T, CLSTYPE) \ -_WX_ANY_DEFINE_SUB_TYPE(T, CLSTYPE)\ - virtual const wxTypeInfo* GetTypeInfo() const \ - { \ - return wxGetTypeInfo((T*)NULL); \ - } \ -}; -#else -#define WX_ANY_DEFINE_SUB_TYPE(T, CLSTYPE) \ -_WX_ANY_DEFINE_SUB_TYPE(T, CLSTYPE)\ -}; -#endif - -// -// Integer value types -// - -#ifdef wxLongLong_t - typedef wxLongLong_t wxAnyBaseIntType; - typedef wxULongLong_t wxAnyBaseUintType; -#else - typedef long wxAnyBaseIntType; - typedef unsigned long wxAnyBaseUintType; -#endif - - -class WXDLLIMPEXP_BASE wxAnyValueTypeImplInt : - public wxAnyValueTypeImplBase -{ - WX_DECLARE_ANY_VALUE_TYPE(wxAnyValueTypeImplInt) -public: - wxAnyValueTypeImplInt() : - wxAnyValueTypeImplBase() { } - virtual ~wxAnyValueTypeImplInt() { } - - virtual bool ConvertValue(const wxAnyValueBuffer& src, - wxAnyValueType* dstType, - wxAnyValueBuffer& dst) const wxOVERRIDE; -}; - - -class WXDLLIMPEXP_BASE wxAnyValueTypeImplUint : - public wxAnyValueTypeImplBase -{ - WX_DECLARE_ANY_VALUE_TYPE(wxAnyValueTypeImplUint) -public: - wxAnyValueTypeImplUint() : - wxAnyValueTypeImplBase() { } - virtual ~wxAnyValueTypeImplUint() { } - - virtual bool ConvertValue(const wxAnyValueBuffer& src, - wxAnyValueType* dstType, - wxAnyValueBuffer& dst) const wxOVERRIDE; -}; - - -WX_ANY_DEFINE_SUB_TYPE(signed long, Int) -WX_ANY_DEFINE_SUB_TYPE(signed int, Int) -WX_ANY_DEFINE_SUB_TYPE(signed short, Int) -WX_ANY_DEFINE_SUB_TYPE(signed char, Int) -#ifdef wxLongLong_t -WX_ANY_DEFINE_SUB_TYPE(wxLongLong_t, Int) -#endif - -WX_ANY_DEFINE_SUB_TYPE(unsigned long, Uint) -WX_ANY_DEFINE_SUB_TYPE(unsigned int, Uint) -WX_ANY_DEFINE_SUB_TYPE(unsigned short, Uint) -WX_ANY_DEFINE_SUB_TYPE(unsigned char, Uint) -#ifdef wxLongLong_t -WX_ANY_DEFINE_SUB_TYPE(wxULongLong_t, Uint) -#endif - - -// -// This macro is used in header, but then in source file we must have: -// WX_IMPLEMENT_ANY_VALUE_TYPE(wxAnyValueTypeImpl##TYPENAME) -// -#define _WX_ANY_DEFINE_CONVERTIBLE_TYPE(T, TYPENAME, CONVFUNC, GV) \ -class WXDLLIMPEXP_BASE wxAnyValueTypeImpl##TYPENAME : \ - public wxAnyValueTypeImplBase \ -{ \ - WX_DECLARE_ANY_VALUE_TYPE(wxAnyValueTypeImpl##TYPENAME) \ -public: \ - wxAnyValueTypeImpl##TYPENAME() : \ - wxAnyValueTypeImplBase() { } \ - virtual ~wxAnyValueTypeImpl##TYPENAME() { } \ - virtual bool ConvertValue(const wxAnyValueBuffer& src, \ - wxAnyValueType* dstType, \ - wxAnyValueBuffer& dst) const wxOVERRIDE \ - { \ - GV value = GetValue(src); \ - return CONVFUNC(value, dstType, dst); \ - } \ -}; \ -template<> \ -class wxAnyValueTypeImpl : public wxAnyValueTypeImpl##TYPENAME \ -{ \ -public: \ - wxAnyValueTypeImpl() : wxAnyValueTypeImpl##TYPENAME() { } \ - virtual ~wxAnyValueTypeImpl() { } \ -}; - -#define WX_ANY_DEFINE_CONVERTIBLE_TYPE(T, TYPENAME, CONVFUNC, BT) \ -_WX_ANY_DEFINE_CONVERTIBLE_TYPE(T, TYPENAME, CONVFUNC, BT) \ - -#define WX_ANY_DEFINE_CONVERTIBLE_TYPE_BASE(T, TYPENAME, CONVFUNC) \ -_WX_ANY_DEFINE_CONVERTIBLE_TYPE(T, TYPENAME, \ - CONVFUNC, const T&) \ - -// -// String value type -// - -// Convert wxString to destination wxAny value type -extern WXDLLIMPEXP_BASE bool wxAnyConvertString(const wxString& value, - wxAnyValueType* dstType, - wxAnyValueBuffer& dst); - -WX_ANY_DEFINE_CONVERTIBLE_TYPE_BASE(wxString, wxString, wxAnyConvertString) -WX_ANY_DEFINE_CONVERTIBLE_TYPE(const char*, ConstCharPtr, - wxAnyConvertString, wxString) -WX_ANY_DEFINE_CONVERTIBLE_TYPE(const wchar_t*, ConstWchar_tPtr, - wxAnyConvertString, wxString) - -// -// Bool value type -// -template<> -class WXDLLIMPEXP_BASE wxAnyValueTypeImpl : - public wxAnyValueTypeImplBase -{ - WX_DECLARE_ANY_VALUE_TYPE(wxAnyValueTypeImpl) -public: - wxAnyValueTypeImpl() : - wxAnyValueTypeImplBase() { } - virtual ~wxAnyValueTypeImpl() { } - - virtual bool ConvertValue(const wxAnyValueBuffer& src, - wxAnyValueType* dstType, - wxAnyValueBuffer& dst) const wxOVERRIDE; -}; - -// -// Floating point value type -// -class WXDLLIMPEXP_BASE wxAnyValueTypeImplDouble : - public wxAnyValueTypeImplBase -{ - WX_DECLARE_ANY_VALUE_TYPE(wxAnyValueTypeImplDouble) -public: - wxAnyValueTypeImplDouble() : - wxAnyValueTypeImplBase() { } - virtual ~wxAnyValueTypeImplDouble() { } - - virtual bool ConvertValue(const wxAnyValueBuffer& src, - wxAnyValueType* dstType, - wxAnyValueBuffer& dst) const wxOVERRIDE; -}; - -// WX_ANY_DEFINE_SUB_TYPE requires this -typedef double wxAnyBaseDoubleType; - -WX_ANY_DEFINE_SUB_TYPE(float, Double) -WX_ANY_DEFINE_SUB_TYPE(double, Double) - - -// -// Defines a dummy wxAnyValueTypeImpl<> with given export -// declaration. This is needed if a class is used with -// wxAny in both user shared library and application. -// -#define wxDECLARE_ANY_TYPE(CLS, DECL) \ -template<> \ -class DECL wxAnyValueTypeImpl : \ - public wxAnyValueTypeImplBase \ -{ \ - WX_DECLARE_ANY_VALUE_TYPE(wxAnyValueTypeImpl) \ -public: \ - wxAnyValueTypeImpl() : \ - wxAnyValueTypeImplBase() { } \ - virtual ~wxAnyValueTypeImpl() { } \ - \ - virtual bool ConvertValue(const wxAnyValueBuffer& src, \ - wxAnyValueType* dstType, \ - wxAnyValueBuffer& dst) const wxOVERRIDE \ - { \ - wxUnusedVar(src); \ - wxUnusedVar(dstType); \ - wxUnusedVar(dst); \ - return false; \ - } \ -}; - - -// Make sure some of wx's own types get the right wxAnyValueType export -// (this is needed only for types that are referred to from wxBase. -// currently we may not use any of these types from there, but let's -// use the macro on at least one to make sure it compiles since we can't -// really test it properly in unit tests since a separate DLL would -// be needed). -#if wxUSE_DATETIME - #include "wx/datetime.h" - wxDECLARE_ANY_TYPE(wxDateTime, WXDLLIMPEXP_BASE) -#endif - -//#include "wx/object.h" -//wxDECLARE_ANY_TYPE(wxObject*, WXDLLIMPEXP_BASE) - -//#include "wx/arrstr.h" -//wxDECLARE_ANY_TYPE(wxArrayString, WXDLLIMPEXP_BASE) - - -#if wxUSE_VARIANT - -class WXDLLIMPEXP_FWD_BASE wxAnyToVariantRegistration; - -// Because of header inter-dependencies, cannot include this earlier -#include "wx/variant.h" - -// -// wxVariantData* data type implementation. For cases when appropriate -// wxAny<->wxVariant conversion code is missing. -// - -class WXDLLIMPEXP_BASE wxAnyValueTypeImplVariantData : - public wxAnyValueTypeImplBase -{ - WX_DECLARE_ANY_VALUE_TYPE(wxAnyValueTypeImplVariantData) -public: - wxAnyValueTypeImplVariantData() : - wxAnyValueTypeImplBase() { } - virtual ~wxAnyValueTypeImplVariantData() { } - - virtual void DeleteValue(wxAnyValueBuffer& buf) const wxOVERRIDE - { - wxVariantData* data = static_cast(buf.m_ptr); - if ( data ) - data->DecRef(); - } - - virtual void CopyBuffer(const wxAnyValueBuffer& src, - wxAnyValueBuffer& dst) const wxOVERRIDE - { - wxVariantData* data = static_cast(src.m_ptr); - if ( data ) - data->IncRef(); - dst.m_ptr = data; - } - - static void SetValue(wxVariantData* value, - wxAnyValueBuffer& buf) - { - value->IncRef(); - buf.m_ptr = value; - } - - static wxVariantData* GetValue(const wxAnyValueBuffer& buf) - { - return static_cast(buf.m_ptr); - } - - virtual bool ConvertValue(const wxAnyValueBuffer& src, - wxAnyValueType* dstType, - wxAnyValueBuffer& dst) const wxOVERRIDE - { - wxUnusedVar(src); - wxUnusedVar(dstType); - wxUnusedVar(dst); - return false; - } -}; - -template<> -class wxAnyValueTypeImpl : - public wxAnyValueTypeImplVariantData -{ -public: - wxAnyValueTypeImpl() : wxAnyValueTypeImplVariantData() { } - virtual ~wxAnyValueTypeImpl() { } -}; - -#endif // wxUSE_VARIANT - - -/* - Let's define a discrete Null value so we don't have to really - ever check if wxAny.m_type pointer is NULL or not. This is an - optimization, mostly. Implementation of this value type is - "hidden" in the source file. -*/ -extern WXDLLIMPEXP_DATA_BASE(wxAnyValueType*) wxAnyNullValueType; - - -// -// We need to implement custom signed/unsigned int equals operators -// for signed/unsigned (eg. wxAny(128UL) == 128L) comparisons to work. -#define WXANY_IMPLEMENT_INT_EQ_OP(TS, TUS) \ -bool operator==(TS value) const \ -{ \ - if ( wxAnyValueTypeImpl::IsSameClass(m_type) ) \ - return (value == static_cast \ - (wxAnyValueTypeImpl::GetValue(m_buffer))); \ - if ( wxAnyValueTypeImpl::IsSameClass(m_type) ) \ - return (value == static_cast \ - (wxAnyValueTypeImpl::GetValue(m_buffer))); \ - return false; \ -} \ -bool operator==(TUS value) const \ -{ \ - if ( wxAnyValueTypeImpl::IsSameClass(m_type) ) \ - return (value == static_cast \ - (wxAnyValueTypeImpl::GetValue(m_buffer))); \ - if ( wxAnyValueTypeImpl::IsSameClass(m_type) ) \ - return (value == static_cast \ - (wxAnyValueTypeImpl::GetValue(m_buffer))); \ - return false; \ -} - - -#if wxUSE_VARIANT - -// Note that the following functions are implemented outside wxAny class -// so that it can reside entirely in header and lack the export declaration. - -// Helper function used to associate wxAnyValueType with a wxVariantData. -extern WXDLLIMPEXP_BASE void -wxPreRegisterAnyToVariant(wxAnyToVariantRegistration* reg); - -// This function performs main wxAny to wxVariant conversion duties. -extern WXDLLIMPEXP_BASE bool -wxConvertAnyToVariant(const wxAny& any, wxVariant* variant); - -#endif // wxUSE_VARIANT - -// -// The wxAny class represents a container for any type. A variant's value -// can be changed at run time, possibly to a different type of value. -// -// As standard, wxAny can store value of almost any type, in a fairly -// optimal manner even. -// -class wxAny -{ -public: - /** - Default constructor. - */ - wxAny() - { - m_type = wxAnyNullValueType; - } - - /** - Destructor. - */ - ~wxAny() - { - m_type->DeleteValue(m_buffer); - } - - //@{ - /** - Various constructors. - */ - template - wxAny(const T& value) - { - m_type = wxAnyValueTypeImpl::sm_instance.get(); - wxAnyValueTypeImpl::SetValue(value, m_buffer); - } - - // These two constructors are needed to deal with string literals - wxAny(const char* value) - { - m_type = wxAnyValueTypeImpl::sm_instance.get(); - wxAnyValueTypeImpl::SetValue(value, m_buffer); - } - wxAny(const wchar_t* value) - { - m_type = wxAnyValueTypeImpl::sm_instance.get(); - wxAnyValueTypeImpl::SetValue(value, m_buffer); - } - - wxAny(const wxAny& any) - { - m_type = wxAnyNullValueType; - AssignAny(any); - } - -#if wxUSE_VARIANT - wxAny(const wxVariant& variant) - { - m_type = wxAnyNullValueType; - AssignVariant(variant); - } -#endif - - //@} - - /** - Use this template function for checking if this wxAny holds - a specific C++ data type. - - @see wxAnyValueType::CheckType() - */ - template - bool CheckType() const - { - return m_type->CheckType(); - } - - /** - Returns the value type as wxAnyValueType instance. - - @remarks You cannot reliably test whether two wxAnys are of - same value type by simply comparing return values - of wxAny::GetType(). Instead, use wxAny::HasSameType(). - - @see HasSameType() - */ - const wxAnyValueType* GetType() const - { - return m_type; - } - - /** - Returns @true if this and another wxAny have the same - value type. - */ - bool HasSameType(const wxAny& other) const - { - return GetType()->IsSameType(other.GetType()); - } - - /** - Tests if wxAny is null (that is, whether there is no data). - */ - bool IsNull() const - { - return (m_type == wxAnyNullValueType); - } - - /** - Makes wxAny null (that is, clears it). - */ - void MakeNull() - { - m_type->DeleteValue(m_buffer); - m_type = wxAnyNullValueType; - } - - //@{ - /** - Assignment operators. - */ - template - wxAny& operator=(const T &value) - { - m_type->DeleteValue(m_buffer); - m_type = wxAnyValueTypeImpl::sm_instance.get(); - wxAnyValueTypeImpl::SetValue(value, m_buffer); - return *this; - } - - wxAny& operator=(const wxAny &any) - { - if (this != &any) - AssignAny(any); - return *this; - } - -#if wxUSE_VARIANT - wxAny& operator=(const wxVariant &variant) - { - AssignVariant(variant); - return *this; - } -#endif - - // These two operators are needed to deal with string literals - wxAny& operator=(const char* value) - { - Assign(value); - return *this; - } - wxAny& operator=(const wchar_t* value) - { - Assign(value); - return *this; - } - - //@{ - /** - Equality operators. - */ - bool operator==(const wxString& value) const - { - wxString value2; - if ( !GetAs(&value2) ) - return false; - return value == value2; - } - - bool operator==(const char* value) const - { return (*this) == wxString(value); } - bool operator==(const wchar_t* value) const - { return (*this) == wxString(value); } - - // - // We need to implement custom signed/unsigned int equals operators - // for signed/unsigned (eg. wxAny(128UL) == 128L) comparisons to work. - WXANY_IMPLEMENT_INT_EQ_OP(signed char, unsigned char) - WXANY_IMPLEMENT_INT_EQ_OP(signed short, unsigned short) - WXANY_IMPLEMENT_INT_EQ_OP(signed int, unsigned int) - WXANY_IMPLEMENT_INT_EQ_OP(signed long, unsigned long) -#ifdef wxLongLong_t - WXANY_IMPLEMENT_INT_EQ_OP(wxLongLong_t, wxULongLong_t) -#endif - - wxGCC_WARNING_SUPPRESS(float-equal) - - bool operator==(float value) const - { - if ( !wxAnyValueTypeImpl::IsSameClass(m_type) ) - return false; - - return value == - static_cast - (wxAnyValueTypeImpl::GetValue(m_buffer)); - } - - bool operator==(double value) const - { - if ( !wxAnyValueTypeImpl::IsSameClass(m_type) ) - return false; - - return value == - static_cast - (wxAnyValueTypeImpl::GetValue(m_buffer)); - } - - wxGCC_WARNING_RESTORE(float-equal) - - bool operator==(bool value) const - { - if ( !wxAnyValueTypeImpl::IsSameClass(m_type) ) - return false; - - return value == (wxAnyValueTypeImpl::GetValue(m_buffer)); - } - - //@} - - //@{ - /** - Inequality operators (implement as template). - */ - template - bool operator!=(const T& value) const - { return !((*this) == value); } - //@} - - /** - This template function converts wxAny into given type. In most cases - no type conversion is performed, so if the type is incorrect an - assertion failure will occur. - - @remarks For convenience, conversion is done when T is wxString. This - is useful when a string literal (which are treated as - const char* and const wchar_t*) has been assigned to wxAny. - */ - template - T As(T* = NULL) const - { - return wxPrivate::wxAnyAsImpl::DoAs(*this); - } - - // Semi private helper: get the value without coercion, for all types. - template - T RawAs() const - { - if ( !wxAnyValueTypeImpl::IsSameClass(m_type) ) - { - wxFAIL_MSG("Incorrect or non-convertible data type"); - } - - return static_cast(wxAnyValueTypeImpl::GetValue(m_buffer)); - } - -#if wxUSE_EXTENDED_RTTI - const wxTypeInfo* GetTypeInfo() const - { - return m_type->GetTypeInfo(); - } -#endif - /** - Template function that retrieves and converts the value of this - variant to the type that T* value is. - - @return Returns @true if conversion was successful. - */ - template - bool GetAs(T* value) const - { - if ( !wxAnyValueTypeImpl::IsSameClass(m_type) ) - { - wxAnyValueType* otherType = - wxAnyValueTypeImpl::sm_instance.get(); - wxAnyValueBuffer temp_buf; - - if ( !m_type->ConvertValue(m_buffer, otherType, temp_buf) ) - return false; - - *value = - static_cast(wxAnyValueTypeImpl::GetValue(temp_buf)); - otherType->DeleteValue(temp_buf); - - return true; - } - *value = static_cast(wxAnyValueTypeImpl::GetValue(m_buffer)); - return true; - } - -#if wxUSE_VARIANT - // GetAs() wxVariant specialization - bool GetAs(wxVariant* value) const - { - return wxConvertAnyToVariant(*this, value); - } -#endif - -private: - // Assignment functions - void AssignAny(const wxAny& any) - { - // Must delete value - CopyBuffer() never does that - m_type->DeleteValue(m_buffer); - - wxAnyValueType* newType = any.m_type; - - if ( !newType->IsSameType(m_type) ) - m_type = newType; - - newType->CopyBuffer(any.m_buffer, m_buffer); - } - -#if wxUSE_VARIANT - void AssignVariant(const wxVariant& variant) - { - wxVariantData* data = variant.GetData(); - - if ( data && data->GetAsAny(this) ) - return; - - m_type->DeleteValue(m_buffer); - - if ( variant.IsNull() ) - { - // Init as Null - m_type = wxAnyNullValueType; - } - else - { - // If everything else fails, wrap the whole wxVariantData - m_type = wxAnyValueTypeImpl::sm_instance.get(); - wxAnyValueTypeImpl::SetValue(data, m_buffer); - } - } -#endif - - template - void Assign(const T &value) - { - m_type->DeleteValue(m_buffer); - m_type = wxAnyValueTypeImpl::sm_instance.get(); - wxAnyValueTypeImpl::SetValue(value, m_buffer); - } - - // Data - wxAnyValueBuffer m_buffer; - wxAnyValueType* m_type; -}; - - -namespace wxPrivate -{ - -// Dispatcher for template wxAny::As() implementation which is different for -// wxString and all the other types: the generic implementation check if the -// value is of the right type and returns it. -template -struct wxAnyAsImpl -{ - static T DoAs(const wxAny& any) - { - return any.RawAs(); - } -}; - -// Specialization for wxString does coercion. -template <> -struct wxAnyAsImpl -{ - static wxString DoAs(const wxAny& any) - { - wxString value; - if ( !any.GetAs(&value) ) - { - wxFAIL_MSG("Incorrect or non-convertible data type"); - } - return value; - } -}; - -} - -// See comment for wxANY_VALUE_TYPE_CHECK_TYPE. -#define wxANY_CHECK_TYPE(any, T) \ - wxANY_VALUE_TYPE_CHECK_TYPE((any).GetType(), T) - - -// This macro shouldn't be used any longer for the same reasons as -// wxANY_VALUE_TYPE_CHECK_TYPE(), just call As() directly. -#define wxANY_AS(any, T) \ - (any).As(static_cast(NULL)) - - -template -inline bool wxAnyValueType::CheckType() const -{ - return wxAnyValueTypeImpl::IsSameClass(this); -} - -WX_DECLARE_LIST_WITH_DECL(wxAny, wxAnyList, class WXDLLIMPEXP_BASE); - -#endif // wxUSE_ANY - -#endif // _WX_ANY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/anybutton.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/anybutton.h deleted file mode 100644 index ff41ce99..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/anybutton.h +++ /dev/null @@ -1,204 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/anybutton.h -// Purpose: wxAnyButtonBase class -// Author: Vadim Zeitlin -// Created: 2000-08-15 (extracted from button.h) -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ANYBUTTON_H_BASE_ -#define _WX_ANYBUTTON_H_BASE_ - -#include "wx/defs.h" - -#ifdef wxHAS_ANY_BUTTON - -// ---------------------------------------------------------------------------- -// wxAnyButton specific flags -// ---------------------------------------------------------------------------- - -// These flags affect label alignment -#define wxBU_LEFT 0x0040 -#define wxBU_TOP 0x0080 -#define wxBU_RIGHT 0x0100 -#define wxBU_BOTTOM 0x0200 -#define wxBU_ALIGN_MASK ( wxBU_LEFT | wxBU_TOP | wxBU_RIGHT | wxBU_BOTTOM ) - -// These two flags are obsolete -#define wxBU_NOAUTODRAW 0x0000 -#define wxBU_AUTODRAW 0x0004 - -// by default, the buttons will be created with some (system dependent) -// minimal size to make them look nicer, giving this style will make them as -// small as possible -#define wxBU_EXACTFIT 0x0001 - -// this flag can be used to disable using the text label in the button: it is -// mostly useful when creating buttons showing bitmap and having stock id as -// without it both the standard label corresponding to the stock id and the -// bitmap would be shown -#define wxBU_NOTEXT 0x0002 - - -#include "wx/bitmap.h" -#include "wx/control.h" - -// ---------------------------------------------------------------------------- -// wxAnyButton: common button functionality -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxAnyButtonBase : public wxControl -{ -public: - wxAnyButtonBase() { } - - // show the image in the button in addition to the label: this method is - // supported on all (major) platforms - void SetBitmap(const wxBitmap& bitmap, wxDirection dir = wxLEFT) - { - SetBitmapLabel(bitmap); - SetBitmapPosition(dir); - } - - wxBitmap GetBitmap() const { return DoGetBitmap(State_Normal); } - - // Methods for setting individual images for different states: normal, - // selected (meaning pushed or pressed), focused (meaning normal state for - // a focused button), disabled or hover (a.k.a. hot or current). - // - // Remember that SetBitmap() itself must be called before any other - // SetBitmapXXX() methods (except for SetBitmapLabel() which is a synonym - // for it anyhow) and that all bitmaps passed to these functions should be - // of the same size. - void SetBitmapLabel(const wxBitmap& bitmap) - { DoSetBitmap(bitmap, State_Normal); } - void SetBitmapPressed(const wxBitmap& bitmap) - { DoSetBitmap(bitmap, State_Pressed); } - void SetBitmapDisabled(const wxBitmap& bitmap) - { DoSetBitmap(bitmap, State_Disabled); } - void SetBitmapCurrent(const wxBitmap& bitmap) - { DoSetBitmap(bitmap, State_Current); } - void SetBitmapFocus(const wxBitmap& bitmap) - { DoSetBitmap(bitmap, State_Focused); } - - wxBitmap GetBitmapLabel() const { return DoGetBitmap(State_Normal); } - wxBitmap GetBitmapPressed() const { return DoGetBitmap(State_Pressed); } - wxBitmap GetBitmapDisabled() const { return DoGetBitmap(State_Disabled); } - wxBitmap GetBitmapCurrent() const { return DoGetBitmap(State_Current); } - wxBitmap GetBitmapFocus() const { return DoGetBitmap(State_Focused); } - - - // set the margins around the image - void SetBitmapMargins(wxCoord x, wxCoord y) { DoSetBitmapMargins(x, y); } - void SetBitmapMargins(const wxSize& sz) { DoSetBitmapMargins(sz.x, sz.y); } - wxSize GetBitmapMargins() { return DoGetBitmapMargins(); } - - // set the image position relative to the text, i.e. wxLEFT means that the - // image is to the left of the text (this is the default) - void SetBitmapPosition(wxDirection dir); - - - // Buttons on MSW can look bad if they are not native colours, because - // then they become owner-drawn and not theme-drawn. Disable it here - // in wxAnyButtonBase to make it consistent. - virtual bool ShouldInheritColours() const wxOVERRIDE { return false; } - - // wxUniv-compatible and deprecated equivalents to SetBitmapXXX() -#if WXWIN_COMPATIBILITY_2_8 - void SetImageLabel(const wxBitmap& bitmap) { SetBitmap(bitmap); } - void SetImageMargins(wxCoord x, wxCoord y) { SetBitmapMargins(x, y); } -#endif // WXWIN_COMPATIBILITY_2_8 - - // backwards compatible names for pressed/current bitmaps: they're not - // deprecated as there is nothing really wrong with using them and no real - // advantage to using the new names but the new names are still preferred - wxBitmap GetBitmapSelected() const { return GetBitmapPressed(); } - wxBitmap GetBitmapHover() const { return GetBitmapCurrent(); } - - void SetBitmapSelected(const wxBitmap& bitmap) { SetBitmapPressed(bitmap); } - void SetBitmapHover(const wxBitmap& bitmap) { SetBitmapCurrent(bitmap); } - - - // this enum is not part of wx public API, it is public because it is used - // in non wxAnyButton-derived classes internally - // - // also notice that MSW code relies on the values of the enum elements, do - // not change them without revising src/msw/button.cpp - enum State - { - State_Normal, - State_Current, // a.k.a. hot or "hovering" - State_Pressed, // a.k.a. "selected" in public API for some reason - State_Disabled, - State_Focused, - State_Max - }; - - // return the current setting for the "normal" state of the button, it can - // be different from State_Normal for a wxToggleButton - virtual State GetNormalState() const - { - return State_Normal; - } - - // return true if this button shouldn't show the text label, either because - // it doesn't have it or because it was explicitly disabled with wxBU_NOTEXT - bool DontShowLabel() const - { - return HasFlag(wxBU_NOTEXT) || GetLabel().empty(); - } - - // return true if we do show the label - bool ShowsLabel() const - { - return !DontShowLabel(); - } - -protected: - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - virtual wxBitmap DoGetBitmap(State WXUNUSED(which)) const - { return wxBitmap(); } - virtual void DoSetBitmap(const wxBitmap& WXUNUSED(bitmap), - State WXUNUSED(which)) - { } - - virtual wxSize DoGetBitmapMargins() const - { return wxSize(0, 0); } - - virtual void DoSetBitmapMargins(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y)) - { } - - virtual void DoSetBitmapPosition(wxDirection WXUNUSED(dir)) - { } - - virtual bool DoGetAuthNeeded() const { return false; } - virtual void DoSetAuthNeeded(bool WXUNUSED(show)) { } - - - wxDECLARE_NO_COPY_CLASS(wxAnyButtonBase); -}; - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/anybutton.h" -#elif defined(__WXMSW__) - #include "wx/msw/anybutton.h" -//#elif defined(__WXMOTIF__) -// #include "wx/motif/anybutton.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/anybutton.h" -//#elif defined(__WXGTK__) -// #include "wx/gtk1/anybutton.h" -#elif defined(__WXMAC__) - #include "wx/osx/anybutton.h" -#elif defined(__WXQT__) - #include "wx/qt/anybutton.h" -#else - typedef wxAnyButtonBase wxAnyButton; -#endif - -#endif // wxHAS_ANY_BUTTON - -#endif // _WX_ANYBUTTON_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/anystr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/anystr.h deleted file mode 100644 index 082d83f1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/anystr.h +++ /dev/null @@ -1,139 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/anystr.h -// Purpose: wxAnyStrPtr class declaration -// Author: Vadim Zeitlin -// Created: 2009-03-23 -// Copyright: (c) 2008 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ANYSTR_H_ -#define _WX_ANYSTR_H_ - -#include "wx/string.h" - -// ---------------------------------------------------------------------------- -// wxAnyStrPtr -// -// Notice that this is an internal and intentionally not documented class. It -// is only used by wxWidgets itself to ensure compatibility with previous -// versions and shouldn't be used by user code. When you see a function -// returning it you should just know that you can treat it as a string pointer. -// ---------------------------------------------------------------------------- - -// This is a helper class convertible to either narrow or wide string pointer. -// It is similar to wxCStrData but, unlike it, can be NULL which is required to -// represent the return value of wxDateTime::ParseXXX() methods for example. -// -// NB: this class is fully inline and so doesn't need to be DLL-exported -class wxAnyStrPtr -{ -public: - // ctors: this class must be created from the associated string or using - // its default ctor for an invalid NULL-like object; notice that it is - // immutable after creation. - - // ctor for invalid pointer - wxAnyStrPtr() - : m_str(NULL) - { - } - - // ctor for valid pointer into the given string (whose lifetime must be - // greater than ours and which should remain constant while we're used) - wxAnyStrPtr(const wxString& str, const wxString::const_iterator& iter) - : m_str(&str), - m_iter(iter) - { - } - - // default copy ctor is ok and so is default dtor, in particular we do not - // free the string - - - // various operators meant to make this class look like a superposition of - // char* and wchar_t* - - // this one is needed to allow boolean expressions involving these objects, - // e.g. "if ( FuncReturningAnyStrPtr() && ... )" (unfortunately using - // unspecified_bool_type here wouldn't help with ambiguity between all the - // different conversions to pointers) - operator bool() const { return m_str != NULL; } - - // at least VC7 also needs this one or it complains about ambiguity - // for !anystr expressions - bool operator!() const { return !((bool)*this); } - - - // and these are the conversions operator which allow to assign the result - // of FuncReturningAnyStrPtr() to either char* or wxChar* (i.e. wchar_t*) - operator const char *() const - { - if ( !m_str ) - return NULL; - - // check if the string is convertible to char at all - // - // notice that this pointer points into wxString internal buffer - // containing its char* representation and so it can be kept for as - // long as wxString is not modified -- which is long enough for our - // needs - const char *p = m_str->c_str().AsChar(); - if ( *p ) - { - // find the offset of the character corresponding to this iterator - // position in bytes: we don't have any direct way to do it so we - // need to redo the conversion again for the part of the string - // before the iterator to find its length in bytes in current - // locale - // - // NB: conversion won't fail as it succeeded for the entire string - p += strlen(wxString(m_str->begin(), m_iter).mb_str()); - } - //else: conversion failed, return "" as we can't do anything else - - return p; - } - - operator const wchar_t *() const - { - if ( !m_str ) - return NULL; - - // no complications with wide strings (as long as we discount - // surrogates as we do for now) - // - // just remember that this works as long as wxString keeps an internal - // buffer with its wide wide char representation, just as with AsChar() - // above - return m_str->c_str().AsWChar() + (m_iter - m_str->begin()); - } - - // Because the objects of this class are only used as return type for - // functions which can return NULL we can skip providing dereferencing - // operators: the code using this class must test it for NULL first and if - // it does anything else with it it has to assign it to either char* or - // wchar_t* itself, before dereferencing. - // - // IOW this - // - // if ( *FuncReturningAnyStrPtr() ) - // - // is invalid because it could crash. And this - // - // const char *p = FuncReturningAnyStrPtr(); - // if ( p && *p ) - // - // already works fine. - -private: - // the original string and the position in it we correspond to, if the - // string is NULL this object is NULL pointer-like - const wxString * const m_str; - const wxString::const_iterator m_iter; - - wxDECLARE_NO_ASSIGN_CLASS(wxAnyStrPtr); -}; - -#endif // _WX_ANYSTR_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/app.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/app.h deleted file mode 100644 index bc17b94b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/app.h +++ /dev/null @@ -1,900 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/app.h -// Purpose: wxAppBase class and macros used for declaration of wxApp -// derived class in the user code -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_APP_H_BASE_ -#define _WX_APP_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers we have to include here -// ---------------------------------------------------------------------------- - -#include "wx/event.h" // for the base class -#include "wx/eventfilter.h" // (and another one) -#include "wx/build.h" -#include "wx/cmdargs.h" // for wxCmdLineArgsArray used by wxApp::argv -#include "wx/init.h" // we must declare wxEntry() -#include "wx/intl.h" // for wxLayoutDirection -#include "wx/log.h" // for wxDISABLE_DEBUG_LOGGING_IN_RELEASE_BUILD() - -class WXDLLIMPEXP_FWD_BASE wxAppConsole; -class WXDLLIMPEXP_FWD_BASE wxAppTraits; -class WXDLLIMPEXP_FWD_BASE wxCmdLineParser; -class WXDLLIMPEXP_FWD_BASE wxEventLoopBase; -class WXDLLIMPEXP_FWD_BASE wxMessageOutput; - -#if wxUSE_GUI - struct WXDLLIMPEXP_FWD_CORE wxVideoMode; - class WXDLLIMPEXP_FWD_CORE wxWindow; -#endif - -// this macro should be used in any main() or equivalent functions defined in wx -#define wxDISABLE_DEBUG_SUPPORT() \ - wxDISABLE_ASSERTS_IN_RELEASE_BUILD(); \ - wxDISABLE_DEBUG_LOGGING_IN_RELEASE_BUILD() - -// ---------------------------------------------------------------------------- -// typedefs -// ---------------------------------------------------------------------------- - -// the type of the function used to create a wxApp object on program start up -typedef wxAppConsole* (*wxAppInitializerFunction)(); - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -enum -{ - wxPRINT_WINDOWS = 1, - wxPRINT_POSTSCRIPT = 2 -}; - -// ---------------------------------------------------------------------------- -// global variables -// ---------------------------------------------------------------------------- - -// use of this list is strongly deprecated, use wxApp ScheduleForDestruction() -// and IsScheduledForDestruction() methods instead of this list directly, it -// is here for compatibility purposes only -extern WXDLLIMPEXP_DATA_BASE(wxList) wxPendingDelete; - -// ---------------------------------------------------------------------------- -// wxAppConsoleBase: wxApp for non-GUI applications -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxAppConsoleBase : public wxEvtHandler, - public wxEventFilter -{ -public: - // ctor and dtor - wxAppConsoleBase(); - virtual ~wxAppConsoleBase(); - - - // the virtual functions which may/must be overridden in the derived class - // ----------------------------------------------------------------------- - - // This is the very first function called for a newly created wxApp object, - // it is used by the library to do the global initialization. If, for some - // reason, you must override it (instead of just overriding OnInit(), as - // usual, for app-specific initializations), do not forget to call the base - // class version! - virtual bool Initialize(int& argc, wxChar **argv); - - // This gives wxCocoa a chance to call OnInit() with a memory pool in place - virtual bool CallOnInit() { return OnInit(); } - - // Called before OnRun(), this is a good place to do initialization -- if - // anything fails, return false from here to prevent the program from - // continuing. The command line is normally parsed here, call the base - // class OnInit() to do it. - virtual bool OnInit(); - - // This is the replacement for the normal main(): all program work should - // be done here. When OnRun() returns, the programs starts shutting down. - virtual int OnRun(); - - // Called before the first events are handled, called from within MainLoop() - virtual void OnLaunched(); - - // This is called by wxEventLoopBase::SetActive(): you should put the code - // which needs an active event loop here. - // Note that this function is called whenever an event loop is activated; - // you may want to use wxEventLoopBase::IsMain() to perform initialization - // specific for the app's main event loop. - virtual void OnEventLoopEnter(wxEventLoopBase* WXUNUSED(loop)) {} - - // This is only called if OnInit() returned true so it's a good place to do - // any cleanup matching the initializations done there. - virtual int OnExit(); - - // This is called by wxEventLoopBase::OnExit() for each event loop which - // is exited. - virtual void OnEventLoopExit(wxEventLoopBase* WXUNUSED(loop)) {} - - // This is the very last function called on wxApp object before it is - // destroyed. If you override it (instead of overriding OnExit() as usual) - // do not forget to call the base class version! - virtual void CleanUp(); - - // Called when a fatal exception occurs, this function should take care not - // to do anything which might provoke a nested exception! It may be - // overridden if you wish to react somehow in non-default way (core dump - // under Unix, application crash under Windows) to fatal program errors, - // however extreme care should be taken if you don't want this function to - // crash. - virtual void OnFatalException() { } - - // Called from wxExit() function, should terminate the application a.s.a.p. - virtual void Exit(); - - - // application info: name, description, vendor - // ------------------------------------------- - - // NB: all these should be set by the application itself, there are no - // reasonable default except for the application name which is taken to - // be argv[0] - - // set/get the application name - wxString GetAppName() const; - void SetAppName(const wxString& name) { m_appName = name; } - - // set/get the application display name: the display name is the name - // shown to the user in titles, reports, etc while the app name is - // used for paths, config, and other places the user doesn't see - // - // by default the display name is the same as app name or a capitalized - // version of the program if app name was not set neither but it's - // usually better to set it explicitly to something nicer - wxString GetAppDisplayName() const; - - void SetAppDisplayName(const wxString& name) { m_appDisplayName = name; } - - // set/get the app class name - wxString GetClassName() const { return m_className; } - void SetClassName(const wxString& name) { m_className = name; } - - // set/get the vendor name - const wxString& GetVendorName() const { return m_vendorName; } - void SetVendorName(const wxString& name) { m_vendorName = name; } - - // set/get the vendor display name: the display name is shown - // in titles/reports/dialogs to the user, while the vendor name - // is used in some areas such as wxConfig, wxStandardPaths, etc - const wxString& GetVendorDisplayName() const - { - return m_vendorDisplayName.empty() ? GetVendorName() - : m_vendorDisplayName; - } - void SetVendorDisplayName(const wxString& name) - { - m_vendorDisplayName = name; - } - - - // cmd line parsing stuff - // ---------------------- - - // all of these methods may be overridden in the derived class to - // customize the command line parsing (by default only a few standard - // options are handled) - // - // you also need to call wxApp::OnInit() from YourApp::OnInit() for all - // this to work - -#if wxUSE_CMDLINE_PARSER - // this one is called from OnInit() to add all supported options - // to the given parser (don't forget to call the base class version if you - // override it!) - virtual void OnInitCmdLine(wxCmdLineParser& parser); - - // called after successfully parsing the command line, return true - // to continue and false to exit (don't forget to call the base class - // version if you override it!) - virtual bool OnCmdLineParsed(wxCmdLineParser& parser); - - // called if "--help" option was specified, return true to continue - // and false to exit - virtual bool OnCmdLineHelp(wxCmdLineParser& parser); - - // called if incorrect command line options were given, return - // false to abort and true to continue - virtual bool OnCmdLineError(wxCmdLineParser& parser); -#endif // wxUSE_CMDLINE_PARSER - - - // miscellaneous customization functions - // ------------------------------------- - - // create the app traits object to which we delegate for everything which - // either should be configurable by the user (then he can change the - // default behaviour simply by overriding CreateTraits() and returning his - // own traits object) or which is GUI/console dependent as then wxAppTraits - // allows us to abstract the differences behind the common facade - wxAppTraits *GetTraits(); - - // this function provides safer access to traits object than - // wxTheApp->GetTraits() during startup or termination when the global - // application object itself may be unavailable - // - // of course, it still returns NULL in this case and the caller must check - // for it - static wxAppTraits *GetTraitsIfExists(); - - // Return some valid traits object. - // - // This method checks if we have wxTheApp and returns its traits if it does - // exist and the traits are non-NULL, similarly to GetTraitsIfExists(), but - // falls back to wxConsoleAppTraits to ensure that it always returns - // something valid. - static wxAppTraits& GetValidTraits(); - - // returns the main event loop instance, i.e. the event loop which is started - // by OnRun() and which dispatches all events sent from the native toolkit - // to the application (except when new event loops are temporarily set-up). - // The returned value maybe NULL. Put initialization code which needs a - // non-NULL main event loop into OnEventLoopEnter(). - wxEventLoopBase* GetMainLoop() const - { return m_mainLoop; } - - // This function sets the C locale to the default locale for the current - // environment. It is advised to call this to ensure that the underlying - // toolkit uses the locale in which the numbers and monetary amounts are - // shown in the format expected by user and so on. - // - // Notice that this does _not_ change the global C++ locale, you need to do - // it explicitly if you want. - // - // Finally, notice that while this function is virtual, it is not supposed - // to be overridden outside of the library itself. - virtual void SetCLocale(); - - - // event processing functions - // -------------------------- - - // Implement the inherited wxEventFilter method but just return -1 from it - // to indicate that default processing should take place. - virtual int FilterEvent(wxEvent& event) wxOVERRIDE; - - // return true if we're running event loop, i.e. if the events can - // (already) be dispatched - static bool IsMainLoopRunning(); - -#if wxUSE_EXCEPTIONS - // execute the functor to handle the given event - // - // this is a generalization of HandleEvent() below and the base class - // implementation of CallEventHandler() still calls HandleEvent() for - // compatibility for functors which are just wxEventFunctions (i.e. methods - // of wxEvtHandler) - virtual void CallEventHandler(wxEvtHandler *handler, - wxEventFunctor& functor, - wxEvent& event) const; - - // call the specified handler on the given object with the given event - // - // this method only exists to allow catching the exceptions thrown by any - // event handler, it would lead to an extra (useless) virtual function call - // if the exceptions were not used, so it doesn't even exist in that case - virtual void HandleEvent(wxEvtHandler *handler, - wxEventFunction func, - wxEvent& event) const; - - // Called when an unhandled C++ exception occurs inside OnRun(): note that - // the main event loop has already terminated by now and the program will - // exit, if you need to really handle the exceptions you need to override - // OnExceptionInMainLoop() - virtual void OnUnhandledException(); - - // Function called if an uncaught exception is caught inside the main - // event loop: it may return true to continue running the event loop or - // false to stop it. If this function rethrows the exception, as it does by - // default, simply because there is no general way to handle exceptions, - // StoreCurrentException() will be called to store it because in any case - // the exception can't be allowed to escape. - virtual bool OnExceptionInMainLoop(); - - // This function can be overridden to store the current exception, in view - // of rethrowing it later when RethrowStoredException() is called. If the - // exception was stored, return true. If the exception can't be stored, - // i.e. if this function returns false, the program will abort after - // calling OnUnhandledException(). - // - // The default implementation of this function when using C++98 compiler - // just returns false, as there is no generic way to store an arbitrary - // exception in C++98 and each application must do it on its own for the - // exceptions it uses in its overridden version. When using C++11, the - // default implementation uses std::current_exception() and returns true, - // so it's normally not necessary to override this method when using C++11. - virtual bool StoreCurrentException(); - - // If StoreCurrentException() is overridden, this function should be - // overridden as well to rethrow the exceptions stored by it when the - // control gets back to our code, i.e. when it's safe to do it. - // - // The default version does nothing when using C++98 and uses - // std::rethrow_exception() in C++11. - virtual void RethrowStoredException(); -#endif // wxUSE_EXCEPTIONS - - - // pending events - // -------------- - - // IMPORTANT: all these methods conceptually belong to wxEventLoopBase - // but for many reasons we need to allow queuing of events - // even when there's no event loop (e.g. in wxApp::OnInit); - // this feature is used e.g. to queue events on secondary threads - // or in wxPython to use wx.CallAfter before the GUI is initialized - - // process all events in the m_handlersWithPendingEvents list -- it is necessary - // to call this function to process posted events. This happens during each - // event loop iteration in GUI mode but if there is no main loop, it may be - // also called directly. - virtual void ProcessPendingEvents(); - - // check if there are pending events on global pending event list - bool HasPendingEvents() const; - - // temporary suspends processing of the pending events - void SuspendProcessingOfPendingEvents(); - - // resume processing of the pending events previously stopped because of a - // call to SuspendProcessingOfPendingEvents() - void ResumeProcessingOfPendingEvents(); - - // called by ~wxEvtHandler to (eventually) remove the handler from the list of - // the handlers with pending events - void RemovePendingEventHandler(wxEvtHandler* toRemove); - - // adds an event handler to the list of the handlers with pending events - void AppendPendingEventHandler(wxEvtHandler* toAppend); - - // moves the event handler from the list of the handlers with pending events - //to the list of the handlers with _delayed_ pending events - void DelayPendingEventHandler(wxEvtHandler* toDelay); - - // deletes the current pending events - void DeletePendingEvents(); - - - // delayed destruction - // ------------------- - - // If an object may have pending events for it, it shouldn't be deleted - // immediately as this would result in a crash when trying to handle these - // events: instead, it should be scheduled for destruction and really - // destroyed only after processing all pending events. - // - // Notice that this is only possible if we have a running event loop, - // otherwise the object is just deleted directly by ScheduleForDestruction() - // and IsScheduledForDestruction() always returns false. - - // schedule the object for destruction in the near future - void ScheduleForDestruction(wxObject *object); - - // return true if the object is scheduled for destruction - bool IsScheduledForDestruction(wxObject *object) const; - - - // wxEventLoop-related methods - // --------------------------- - - // all these functions are forwarded to the corresponding methods of the - // currently active event loop -- and do nothing if there is none - virtual bool Pending(); - virtual bool Dispatch(); - - virtual int MainLoop(); - virtual void ExitMainLoop(); - - bool Yield(bool onlyIfNeeded = false); - - virtual void WakeUpIdle(); - - // this method is called by the active event loop when there are no events - // to process - // - // by default it generates the idle events and if you override it in your - // derived class you should call the base class version to ensure that idle - // events are still sent out - virtual bool ProcessIdle(); - - // this virtual function is overridden in GUI wxApp to always return true - // as GUI applications always have an event loop -- but console ones may - // have it or not, so it simply returns true if already have an event loop - // running but false otherwise - virtual bool UsesEventLoop() const; - - - // debugging support - // ----------------- - - // this function is called when an assert failure occurs, the base class - // version does the normal processing (i.e. shows the usual assert failure - // dialog box) - // - // the arguments are the location of the failed assert (func may be empty - // if the compiler doesn't support C99 __FUNCTION__), the text of the - // assert itself and the user-specified message - virtual void OnAssertFailure(const wxChar *file, - int line, - const wxChar *func, - const wxChar *cond, - const wxChar *msg); - - // old version of the function without func parameter, for compatibility - // only, override OnAssertFailure() in the new code - virtual void OnAssert(const wxChar *file, - int line, - const wxChar *cond, - const wxChar *msg); - - // check that the wxBuildOptions object (constructed in the application - // itself, usually the one from wxIMPLEMENT_APP() macro) matches the build - // options of the library and abort if it doesn't - static bool CheckBuildOptions(const char *optionsSignature, - const char *componentName); - - // implementation only from now on - // ------------------------------- - - // helpers for dynamic wxApp construction - static void SetInitializerFunction(wxAppInitializerFunction fn) - { ms_appInitFn = fn; } - static wxAppInitializerFunction GetInitializerFunction() - { return ms_appInitFn; } - - // accessors for ms_appInstance field (external code might wish to modify - // it, this is why we provide a setter here as well, but you should really - // know what you're doing if you call it), wxTheApp is usually used instead - // of GetInstance() - static wxAppConsole *GetInstance() { return ms_appInstance; } - static void SetInstance(wxAppConsole *app) { ms_appInstance = app; } - - - // command line arguments (public for backwards compatibility) - int argc; - - // this object is implicitly convertible to either "char**" (traditional - // type of argv parameter of main()) or to "wchar_t **" (for compatibility - // with Unicode build in previous wx versions and because the command line - // can, in pr -#if wxUSE_UNICODE - wxCmdLineArgsArray argv; -#else - char **argv; -#endif - -protected: - // delete all objects in wxPendingDelete list - // - // called from ProcessPendingEvents() - void DeletePendingObjects(); - - // the function which creates the traits object when GetTraits() needs it - // for the first time - virtual wxAppTraits *CreateTraits(); - - // function used for dynamic wxApp creation - static wxAppInitializerFunction ms_appInitFn; - - // the one and only global application object - static wxAppConsole *ms_appInstance; - - // create main loop from AppTraits or return NULL if - // there is no main loop implementation - wxEventLoopBase *CreateMainLoop(); - - // application info (must be set from the user code) - wxString m_vendorName, // vendor name ("acme") - m_vendorDisplayName, // vendor display name (e.g. "ACME Inc") - m_appName, // app name ("myapp") - m_appDisplayName, // app display name ("My Application") - m_className; // class name - - // the class defining the application behaviour, NULL initially and created - // by GetTraits() when first needed - wxAppTraits *m_traits; - - // the main event loop of the application (may be NULL if the loop hasn't - // been started yet or has already terminated) - wxEventLoopBase *m_mainLoop; - - - // pending events management vars: - - // the array of the handlers with pending events which needs to be processed - // inside ProcessPendingEvents() - wxEvtHandlerArray m_handlersWithPendingEvents; - - // helper array used by ProcessPendingEvents() to store the event handlers - // which have pending events but of these events none can be processed right now - // (because of a call to wxEventLoop::YieldFor() which asked to selectively process - // pending events) - wxEvtHandlerArray m_handlersWithPendingDelayedEvents; - -#if wxUSE_THREADS - // this critical section protects both the lists above - wxCriticalSection m_handlersWithPendingEventsLocker; -#endif - - // flag modified by Suspend/ResumeProcessingOfPendingEvents() - bool m_bDoPendingEventProcessing; - - friend class WXDLLIMPEXP_FWD_BASE wxEvtHandler; - - // the application object is a singleton anyhow, there is no sense in - // copying it - wxDECLARE_NO_COPY_CLASS(wxAppConsoleBase); -}; - -#if defined(__UNIX__) && !defined(__WINDOWS__) - #include "wx/unix/app.h" -#else - // this has to be a class and not a typedef as we forward declare it - class wxAppConsole : public wxAppConsoleBase { }; -#endif - -// ---------------------------------------------------------------------------- -// wxAppBase: the common part of wxApp implementations for all platforms -// ---------------------------------------------------------------------------- - -#if wxUSE_GUI - -class WXDLLIMPEXP_CORE wxAppBase : public wxAppConsole -{ -public: - wxAppBase(); - virtual ~wxAppBase(); - - // the virtual functions which may/must be overridden in the derived class - // ----------------------------------------------------------------------- - - // very first initialization function - // - // Override: very rarely - virtual bool Initialize(int& argc, wxChar **argv) wxOVERRIDE; - - // a platform-dependent version of OnInit(): the code here is likely to - // depend on the toolkit. default version does nothing. - // - // Override: rarely. - virtual bool OnInitGui(); - - // called to start program execution - the default version just enters - // the main GUI loop in which events are received and processed until - // the last window is not deleted (if GetExitOnFrameDelete) or - // ExitMainLoop() is called. In console mode programs, the execution - // of the program really starts here - // - // Override: rarely in GUI applications, always in console ones. - virtual int OnRun() wxOVERRIDE; - - // a matching function for OnInit() - virtual int OnExit() wxOVERRIDE; - - // very last clean up function - // - // Override: very rarely - virtual void CleanUp() wxOVERRIDE; - - - // the worker functions - usually not used directly by the user code - // ----------------------------------------------------------------- - - // safer alternatives to Yield(), using wxWindowDisabler - virtual bool SafeYield(wxWindow *win, bool onlyIfNeeded); - virtual bool SafeYieldFor(wxWindow *win, long eventsToProcess); - - // this virtual function is called in the GUI mode when the application - // becomes idle and normally just sends wxIdleEvent to all interested - // parties - // - // it should return true if more idle events are needed, false if not - virtual bool ProcessIdle() wxOVERRIDE; - - // override base class version: GUI apps always use an event loop - virtual bool UsesEventLoop() const wxOVERRIDE { return true; } - - - // top level window functions - // -------------------------- - - // return true if our app has focus - virtual bool IsActive() const { return m_isActive; } - - // set the "main" top level window - void SetTopWindow(wxWindow *win) { m_topWindow = win; } - - // return the "main" top level window (if it hadn't been set previously - // with SetTopWindow(), will return just some top level window and, if - // there are none, will return NULL) - virtual wxWindow *GetTopWindow() const; - - // control the exit behaviour: by default, the program will exit the - // main loop (and so, usually, terminate) when the last top-level - // program window is deleted. Beware that if you disable this behaviour - // (with SetExitOnFrameDelete(false)), you'll have to call - // ExitMainLoop() explicitly from somewhere. - void SetExitOnFrameDelete(bool flag) - { m_exitOnFrameDelete = flag ? Yes : No; } - bool GetExitOnFrameDelete() const - { return m_exitOnFrameDelete == Yes; } - - - // display mode, visual, printing mode, ... - // ------------------------------------------------------------------------ - - // Get display mode that is used use. This is only used in framebuffer - // wxWin ports such as wxDFB. - virtual wxVideoMode GetDisplayMode() const; - // Set display mode to use. This is only used in framebuffer wxWin - // ports such as wxDFB. This method should be called from - // wxApp::OnInitGui - virtual bool SetDisplayMode(const wxVideoMode& WXUNUSED(info)) { return true; } - - // set use of best visual flag (see below) - void SetUseBestVisual( bool flag, bool forceTrueColour = false ) - { m_useBestVisual = flag; m_forceTrueColour = forceTrueColour; } - bool GetUseBestVisual() const { return m_useBestVisual; } - - // set/get printing mode: see wxPRINT_XXX constants. - // - // default behaviour is the normal one for Unix: always use PostScript - // printing. - virtual void SetPrintMode(int WXUNUSED(mode)) { } - int GetPrintMode() const { return wxPRINT_POSTSCRIPT; } - - // Return the layout direction for the current locale or wxLayout_Default - // if it's unknown - virtual wxLayoutDirection GetLayoutDirection() const; - - // Change the theme used by the application, return true on success. - virtual bool SetNativeTheme(const wxString& WXUNUSED(theme)) { return false; } - - - // command line parsing (GUI-specific) - // ------------------------------------------------------------------------ - -#if wxUSE_CMDLINE_PARSER - virtual bool OnCmdLineParsed(wxCmdLineParser& parser) wxOVERRIDE; - virtual void OnInitCmdLine(wxCmdLineParser& parser) wxOVERRIDE; -#endif - - // miscellaneous other stuff - // ------------------------------------------------------------------------ - - // called by toolkit-specific code to set the app status: active (we have - // focus) or not and also the last window which had focus before we were - // deactivated - virtual void SetActive(bool isActive, wxWindow *lastFocus); - -protected: - // override base class method to use GUI traits - virtual wxAppTraits *CreateTraits() wxOVERRIDE; - - - // the main top level window (may be NULL) - wxWindow *m_topWindow; - - // if Yes, exit the main loop when the last top level window is deleted, if - // No don't do it and if Later -- only do it once we reach our OnRun() - // - // the explanation for using this strange scheme is given in appcmn.cpp - enum - { - Later = -1, - No, - Yes - } m_exitOnFrameDelete; - - // true if the app wants to use the best visual on systems where - // more than one are available (Sun, SGI, XFree86 4.0 ?) - bool m_useBestVisual; - // force TrueColour just in case "best" isn't TrueColour - bool m_forceTrueColour; - - // does any of our windows have focus? - bool m_isActive; - - wxDECLARE_NO_COPY_CLASS(wxAppBase); -}; - -// ---------------------------------------------------------------------------- -// now include the declaration of the real class -// ---------------------------------------------------------------------------- - -#if defined(__WXMSW__) - #include "wx/msw/app.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/app.h" -#elif defined(__WXDFB__) - #include "wx/dfb/app.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/app.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/app.h" -#elif defined(__WXX11__) - #include "wx/x11/app.h" -#elif defined(__WXMAC__) - #include "wx/osx/app.h" -#elif defined(__WXQT__) - #include "wx/qt/app.h" -#endif - -#else // !GUI - -// wxApp is defined in core and we cannot define another one in wxBase, -// so use the preprocessor to allow using wxApp in console programs too -#define wxApp wxAppConsole - -#endif // GUI/!GUI - -// ---------------------------------------------------------------------------- -// the global data -// ---------------------------------------------------------------------------- - -// for compatibility, we define this macro to access the global application -// object of type wxApp -// -// note that instead of using of wxTheApp in application code you should -// consider using wxDECLARE_APP() after which you may call wxGetApp() which will -// return the object of the correct type (i.e. MyApp and not wxApp) -// -// the cast is safe as in GUI build we only use wxApp, not wxAppConsole, and in -// console mode it does nothing at all -#define wxTheApp static_cast(wxApp::GetInstance()) - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -// event loop related functions only work in GUI programs -// ------------------------------------------------------ - -// Force an exit from main loop -WXDLLIMPEXP_BASE void wxExit(); - -// avoid redeclaring this function here if it had been already declared by -// wx/utils.h, this results in warnings from g++ with -Wredundant-decls -#ifndef wx_YIELD_DECLARED -#define wx_YIELD_DECLARED - -// Yield to other apps/messages -WXDLLIMPEXP_CORE bool wxYield(); - -#endif // wx_YIELD_DECLARED - -// Yield to other apps/messages -WXDLLIMPEXP_BASE void wxWakeUpIdle(); - -// ---------------------------------------------------------------------------- -// macros for dynamic creation of the application object -// ---------------------------------------------------------------------------- - -// Having a global instance of this class allows wxApp to be aware of the app -// creator function. wxApp can then call this function to create a new app -// object. Convoluted, but necessary. - -class WXDLLIMPEXP_BASE wxAppInitializer -{ -public: - wxAppInitializer(wxAppInitializerFunction fn) - { wxApp::SetInitializerFunction(fn); } -}; - -// the code below defines a wxIMPLEMENT_WXWIN_MAIN macro which you can use if -// your compiler really, really wants main() to be in your main program (e.g. -// hello.cpp). Now wxIMPLEMENT_APP should add this code if required. - -// For compilers that support it, prefer to use wmain() as this ensures any -// Unicode strings can be passed as command line parameters and not just those -// representable in the current locale. -#if wxUSE_UNICODE && defined(__VISUALC__) - #define wxIMPLEMENT_WXWIN_MAIN_CONSOLE \ - int wmain(int argc, wchar_t **argv) \ - { \ - wxDISABLE_DEBUG_SUPPORT(); \ - \ - return wxEntry(argc, argv); \ - } -#else // Use standard main() - #define wxIMPLEMENT_WXWIN_MAIN_CONSOLE \ - int main(int argc, char **argv) \ - { \ - wxDISABLE_DEBUG_SUPPORT(); \ - \ - return wxEntry(argc, argv); \ - } -#endif - -// port-specific header could have defined it already in some special way -#ifndef wxIMPLEMENT_WXWIN_MAIN - #define wxIMPLEMENT_WXWIN_MAIN wxIMPLEMENT_WXWIN_MAIN_CONSOLE -#endif // defined(wxIMPLEMENT_WXWIN_MAIN) - -#ifdef __WXUNIVERSAL__ - #include "wx/univ/theme.h" - - #ifdef wxUNIV_DEFAULT_THEME - #define wxIMPLEMENT_WX_THEME_SUPPORT \ - WX_USE_THEME(wxUNIV_DEFAULT_THEME); - #else - #define wxIMPLEMENT_WX_THEME_SUPPORT - #endif -#else - #define wxIMPLEMENT_WX_THEME_SUPPORT -#endif - -// Use this macro if you want to define your own main() or WinMain() function -// and call wxEntry() from there. -#define wxIMPLEMENT_APP_NO_MAIN(appname) \ - appname& wxGetApp() { return *static_cast(wxApp::GetInstance()); } \ - wxAppConsole *wxCreateApp() \ - { \ - wxAppConsole::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, \ - "your program"); \ - return new appname; \ - } \ - wxAppInitializer \ - wxTheAppInitializer((wxAppInitializerFunction) wxCreateApp) - -// Same as wxIMPLEMENT_APP() normally but doesn't include themes support in -// wxUniversal builds -#define wxIMPLEMENT_APP_NO_THEMES(appname) \ - wxIMPLEMENT_WXWIN_MAIN \ - wxIMPLEMENT_APP_NO_MAIN(appname) - -// Use this macro exactly once, the argument is the name of the wxApp-derived -// class which is the class of your application. -#define wxIMPLEMENT_APP(appname) \ - wxIMPLEMENT_WX_THEME_SUPPORT \ - wxIMPLEMENT_APP_NO_THEMES(appname) - -// Same as wxIMPLEMENT_APP(), but for console applications. -#define wxIMPLEMENT_APP_CONSOLE(appname) \ - wxIMPLEMENT_WXWIN_MAIN_CONSOLE \ - wxIMPLEMENT_APP_NO_MAIN(appname) - -// this macro can be used multiple times and just allows you to use wxGetApp() -// function -#define wxDECLARE_APP(appname) \ - extern appname& wxGetApp() - - -// declare the stuff defined by wxIMPLEMENT_APP() macro, it's not really needed -// anywhere else but at the very least it suppresses icc warnings about -// defining extern symbols without prior declaration, and it shouldn't do any -// harm -extern wxAppConsole *wxCreateApp(); -extern wxAppInitializer wxTheAppInitializer; - -// ---------------------------------------------------------------------------- -// Compatibility macro aliases -// ---------------------------------------------------------------------------- - -// deprecated variants _not_ requiring a semicolon after them -// (note that also some wx-prefixed macro do _not_ require a semicolon because -// it's not always possible to force the compiler to require it) - -#define IMPLEMENT_WXWIN_MAIN_CONSOLE wxIMPLEMENT_WXWIN_MAIN_CONSOLE -#define IMPLEMENT_WXWIN_MAIN wxIMPLEMENT_WXWIN_MAIN -#define IMPLEMENT_WX_THEME_SUPPORT wxIMPLEMENT_WX_THEME_SUPPORT -#define IMPLEMENT_APP_NO_MAIN(app) wxIMPLEMENT_APP_NO_MAIN(app); -#define IMPLEMENT_APP_NO_THEMES(app) wxIMPLEMENT_APP_NO_THEMES(app); -#define IMPLEMENT_APP(app) wxIMPLEMENT_APP(app); -#define IMPLEMENT_APP_CONSOLE(app) wxIMPLEMENT_APP_CONSOLE(app); -#define DECLARE_APP(app) wxDECLARE_APP(app); - -#endif // _WX_APP_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/appprogress.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/appprogress.h deleted file mode 100644 index 63bd6e5a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/appprogress.h +++ /dev/null @@ -1,54 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/appprogress.h -// Purpose: wxAppProgressIndicator interface. -// Author: Chaobin Zhang -// Created: 2014-09-05 -// Copyright: (c) 2014 wxWidgets development team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_APPPROG_H_ -#define _WX_APPPROG_H_ - -#include "wx/defs.h" - -class WXDLLIMPEXP_CORE wxAppProgressIndicatorBase -{ -public: - wxAppProgressIndicatorBase() {} - virtual ~wxAppProgressIndicatorBase() {} - - virtual bool IsAvailable() const = 0; - - virtual void SetValue(int value) = 0; - virtual void SetRange(int range) = 0; - virtual void Pulse() = 0; - virtual void Reset() = 0; - -private: - wxDECLARE_NO_COPY_CLASS(wxAppProgressIndicatorBase); -}; - -#if defined(__WXMSW__) && wxUSE_TASKBARBUTTON - #include "wx/msw/appprogress.h" -#elif defined(__WXOSX_COCOA__) - #include "wx/osx/appprogress.h" -#else - class wxAppProgressIndicator : public wxAppProgressIndicatorBase - { - public: - wxAppProgressIndicator(wxWindow* WXUNUSED(parent) = NULL, - int WXUNUSED(maxValue) = 100) - { - } - - virtual bool IsAvailable() const wxOVERRIDE { return false; } - - virtual void SetValue(int WXUNUSED(value)) wxOVERRIDE { } - virtual void SetRange(int WXUNUSED(range)) wxOVERRIDE { } - virtual void Pulse() wxOVERRIDE { } - virtual void Reset() wxOVERRIDE { } - }; -#endif - -#endif // _WX_APPPROG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/apptrait.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/apptrait.h deleted file mode 100644 index f459bbe9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/apptrait.h +++ /dev/null @@ -1,282 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/apptrait.h -// Purpose: declaration of wxAppTraits and derived classes -// Author: Vadim Zeitlin -// Modified by: -// Created: 19.06.2003 -// Copyright: (c) 2003 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_APPTRAIT_H_ -#define _WX_APPTRAIT_H_ - -#include "wx/string.h" -#include "wx/platinfo.h" - -class WXDLLIMPEXP_FWD_BASE wxArrayString; -class WXDLLIMPEXP_FWD_BASE wxConfigBase; -class WXDLLIMPEXP_FWD_BASE wxEventLoopBase; -#if wxUSE_FONTMAP - class WXDLLIMPEXP_FWD_CORE wxFontMapper; -#endif // wxUSE_FONTMAP -class WXDLLIMPEXP_FWD_BASE wxLog; -class WXDLLIMPEXP_FWD_BASE wxMessageOutput; -class WXDLLIMPEXP_FWD_BASE wxObject; -class WXDLLIMPEXP_FWD_CORE wxRendererNative; -class WXDLLIMPEXP_FWD_BASE wxStandardPaths; -class WXDLLIMPEXP_FWD_BASE wxString; -class WXDLLIMPEXP_FWD_BASE wxTimer; -class WXDLLIMPEXP_FWD_BASE wxTimerImpl; - -class wxSocketManager; - - -// ---------------------------------------------------------------------------- -// wxAppTraits: this class defines various configurable aspects of wxApp -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxAppTraitsBase -{ -public: - // needed since this class declares virtual members - virtual ~wxAppTraitsBase() { } - - // hooks for working with the global objects, may be overridden by the user - // ------------------------------------------------------------------------ - -#if wxUSE_CONFIG - // create the default configuration object (base class version is - // implemented in config.cpp and creates wxRegConfig for wxMSW and - // wxFileConfig for all the other platforms) - virtual wxConfigBase *CreateConfig(); -#endif // wxUSE_CONFIG - -#if wxUSE_LOG - // create the default log target - virtual wxLog *CreateLogTarget() = 0; -#endif // wxUSE_LOG - - // create the global object used for printing out messages - virtual wxMessageOutput *CreateMessageOutput() = 0; - -#if wxUSE_FONTMAP - // create the global font mapper object used for encodings/charset mapping - virtual wxFontMapper *CreateFontMapper() = 0; -#endif // wxUSE_FONTMAP - - // get the renderer to use for drawing the generic controls (return value - // may be NULL in which case the default renderer for the current platform - // is used); this is used in GUI only and always returns NULL in console - // - // NB: returned pointer will be deleted by the caller - virtual wxRendererNative *CreateRenderer() = 0; - - // wxStandardPaths object is normally the same for wxBase and wxGUI - // except in the case of wxMac and wxCocoa - virtual wxStandardPaths& GetStandardPaths(); - - - // functions abstracting differences between GUI and console modes - // ------------------------------------------------------------------------ - - // show the assert dialog with the specified message in GUI or just print - // the string to stderr in console mode - // - // base class version has an implementation (in spite of being pure - // virtual) in base/appbase.cpp which can be called as last resort. - // - // return true to suppress subsequent asserts, false to continue as before - virtual bool ShowAssertDialog(const wxString& msg) = 0; - - // return true if fprintf(stderr) goes somewhere, false otherwise - virtual bool HasStderr() = 0; - -#if wxUSE_SOCKETS - // this function is used by wxNet library to set the default socket manager - // to use: doing it like this allows us to keep all socket-related code in - // wxNet instead of having to pull it in wxBase itself as we'd have to do - // if we really implemented wxSocketManager here - // - // we don't take ownership of this pointer, it should have a lifetime - // greater than that of any socket (e.g. be a pointer to a static object) - static void SetDefaultSocketManager(wxSocketManager *manager) - { - ms_manager = manager; - } - - // return socket manager: this is usually different for console and GUI - // applications (although some ports use the same implementation for both) - virtual wxSocketManager *GetSocketManager() { return ms_manager; } -#endif - - // create a new, port specific, instance of the event loop used by wxApp - virtual wxEventLoopBase *CreateEventLoop() = 0; - -#if wxUSE_TIMER - // return platform and toolkit dependent wxTimer implementation - virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer) = 0; -#endif - -#if wxUSE_THREADS - virtual void MutexGuiEnter(); - virtual void MutexGuiLeave(); -#endif - - // functions returning port-specific information - // ------------------------------------------------------------------------ - - // return information about the (native) toolkit currently used and its - // runtime (not compile-time) version. - // returns wxPORT_BASE for console applications and one of the remaining - // wxPORT_* values for GUI applications. - virtual wxPortId GetToolkitVersion(int *majVer = NULL, int *minVer = NULL) const = 0; - - // return true if the port is using wxUniversal for the GUI, false if not - virtual bool IsUsingUniversalWidgets() const = 0; - - // return the name of the Desktop Environment such as - // "KDE" or "GNOME". May return an empty string. - virtual wxString GetDesktopEnvironment() const = 0; - - // returns a short string to identify the block of the standard command - // line options parsed automatically by current port: if this string is - // empty, there are no such options, otherwise the function also fills - // passed arrays with the names and the descriptions of those options. - virtual wxString GetStandardCmdLineOptions(wxArrayString& names, - wxArrayString& desc) const - { - wxUnusedVar(names); - wxUnusedVar(desc); - - return wxEmptyString; - } - - -protected: -#if wxUSE_STACKWALKER - // utility function: returns the stack frame as a plain wxString - virtual wxString GetAssertStackTrace(); -#endif - -private: - static wxSocketManager *ms_manager; -}; - -// ---------------------------------------------------------------------------- -// include the platform-specific version of the class -// ---------------------------------------------------------------------------- - -// NB: test for __UNIX__ before __WXMAC__ as under Darwin we want to use the -// Unix code (and otherwise __UNIX__ wouldn't be defined) -// ABX: check __WIN32__ instead of __WXMSW__ for the same MSWBase in any Win32 port -#if defined(__WIN32__) - #include "wx/msw/apptbase.h" -#elif defined(__UNIX__) - #include "wx/unix/apptbase.h" -#else // no platform-specific methods to add to wxAppTraits - // wxAppTraits must be a class because it was forward declared as class - class WXDLLIMPEXP_BASE wxAppTraits : public wxAppTraitsBase - { - }; -#endif // platform - -// ============================================================================ -// standard traits for console and GUI applications -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxConsoleAppTraitsBase: wxAppTraits implementation for the console apps -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxConsoleAppTraitsBase : public wxAppTraits -{ -public: -#if !wxUSE_CONSOLE_EVENTLOOP - virtual wxEventLoopBase *CreateEventLoop() { return NULL; } -#endif // !wxUSE_CONSOLE_EVENTLOOP - -#if wxUSE_LOG - virtual wxLog *CreateLogTarget() wxOVERRIDE; -#endif // wxUSE_LOG - virtual wxMessageOutput *CreateMessageOutput() wxOVERRIDE; -#if wxUSE_FONTMAP - virtual wxFontMapper *CreateFontMapper() wxOVERRIDE; -#endif // wxUSE_FONTMAP - virtual wxRendererNative *CreateRenderer() wxOVERRIDE; - - virtual bool ShowAssertDialog(const wxString& msg) wxOVERRIDE; - virtual bool HasStderr() wxOVERRIDE; - - // the GetToolkitVersion for console application is always the same - virtual wxPortId GetToolkitVersion(int *verMaj = NULL, int *verMin = NULL) const wxOVERRIDE - { - // no toolkits (wxBase is for console applications without GUI support) - // NB: zero means "no toolkit", -1 means "not initialized yet" - // so we must use zero here! - if (verMaj) *verMaj = 0; - if (verMin) *verMin = 0; - return wxPORT_BASE; - } - - virtual bool IsUsingUniversalWidgets() const wxOVERRIDE { return false; } - virtual wxString GetDesktopEnvironment() const wxOVERRIDE { return wxEmptyString; } -}; - -// ---------------------------------------------------------------------------- -// wxGUIAppTraitsBase: wxAppTraits implementation for the GUI apps -// ---------------------------------------------------------------------------- - -#if wxUSE_GUI - -class WXDLLIMPEXP_CORE wxGUIAppTraitsBase : public wxAppTraits -{ -public: -#if wxUSE_LOG - virtual wxLog *CreateLogTarget() wxOVERRIDE; -#endif // wxUSE_LOG - virtual wxMessageOutput *CreateMessageOutput() wxOVERRIDE; -#if wxUSE_FONTMAP - virtual wxFontMapper *CreateFontMapper() wxOVERRIDE; -#endif // wxUSE_FONTMAP - virtual wxRendererNative *CreateRenderer() wxOVERRIDE; - - virtual bool ShowAssertDialog(const wxString& msg) wxOVERRIDE; - virtual bool HasStderr() wxOVERRIDE; - - virtual bool IsUsingUniversalWidgets() const wxOVERRIDE - { - #ifdef __WXUNIVERSAL__ - return true; - #else - return false; - #endif - } - - virtual wxString GetDesktopEnvironment() const wxOVERRIDE { return wxEmptyString; } -}; - -#endif // wxUSE_GUI - -// ---------------------------------------------------------------------------- -// include the platform-specific version of the classes above -// ---------------------------------------------------------------------------- - -// ABX: check __WIN32__ instead of __WXMSW__ for the same MSWBase in any Win32 port -#if defined(__WIN32__) - #include "wx/msw/apptrait.h" -#elif defined(__UNIX__) - #include "wx/unix/apptrait.h" -#else - #if wxUSE_GUI - class wxGUIAppTraits : public wxGUIAppTraitsBase - { - }; - #endif // wxUSE_GUI - class wxConsoleAppTraits: public wxConsoleAppTraitsBase - { - }; -#endif // platform - -#endif // _WX_APPTRAIT_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/archive.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/archive.h deleted file mode 100644 index 1d0b45e2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/archive.h +++ /dev/null @@ -1,378 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/archive.h -// Purpose: Streams for archive formats -// Author: Mike Wetherell -// Copyright: (c) 2004 Mike Wetherell -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ARCHIVE_H__ -#define _WX_ARCHIVE_H__ - -#include "wx/defs.h" - -#if wxUSE_STREAMS && wxUSE_ARCHIVE_STREAMS - -#include "wx/stream.h" -#include "wx/filename.h" - - -///////////////////////////////////////////////////////////////////////////// -// wxArchiveNotifier - -class WXDLLIMPEXP_BASE wxArchiveNotifier -{ -public: - virtual ~wxArchiveNotifier() { } - - virtual void OnEntryUpdated(class wxArchiveEntry& entry) = 0; -}; - - -///////////////////////////////////////////////////////////////////////////// -// wxArchiveEntry -// -// Holds an entry's meta data, such as filename and timestamp. - -class WXDLLIMPEXP_BASE wxArchiveEntry : public wxObject -{ -public: - virtual ~wxArchiveEntry() { } - - virtual wxDateTime GetDateTime() const = 0; - virtual wxFileOffset GetSize() const = 0; - virtual wxFileOffset GetOffset() const = 0; - virtual bool IsDir() const = 0; - virtual bool IsReadOnly() const = 0; - virtual wxString GetInternalName() const = 0; - virtual wxPathFormat GetInternalFormat() const = 0; - virtual wxString GetName(wxPathFormat format = wxPATH_NATIVE) const = 0; - - virtual void SetDateTime(const wxDateTime& dt) = 0; - virtual void SetSize(wxFileOffset size) = 0; - virtual void SetIsDir(bool isDir = true) = 0; - virtual void SetIsReadOnly(bool isReadOnly = true) = 0; - virtual void SetName(const wxString& name, - wxPathFormat format = wxPATH_NATIVE) = 0; - - wxArchiveEntry *Clone() const { return DoClone(); } - - void SetNotifier(wxArchiveNotifier& notifier); - virtual void UnsetNotifier() { m_notifier = NULL; } - -protected: - wxArchiveEntry() : m_notifier(NULL) { } - wxArchiveEntry(const wxArchiveEntry& e) : wxObject(e), m_notifier(NULL) { } - - virtual void SetOffset(wxFileOffset offset) = 0; - virtual wxArchiveEntry* DoClone() const = 0; - - wxArchiveNotifier *GetNotifier() const { return m_notifier; } - wxArchiveEntry& operator=(const wxArchiveEntry& entry); - -private: - wxArchiveNotifier *m_notifier; - - wxDECLARE_ABSTRACT_CLASS(wxArchiveEntry); -}; - - -///////////////////////////////////////////////////////////////////////////// -// wxArchiveInputStream -// -// GetNextEntry() returns an wxArchiveEntry object containing the meta-data -// for the next entry in the archive (and gives away ownership). Reading from -// the wxArchiveInputStream then returns the entry's data. Eof() becomes true -// after an attempt has been made to read past the end of the entry's data. -// -// When there are no more entries, GetNextEntry() returns NULL and sets Eof(). - -class WXDLLIMPEXP_BASE wxArchiveInputStream : public wxFilterInputStream -{ -public: - typedef wxArchiveEntry entry_type; - - virtual ~wxArchiveInputStream() { } - - virtual bool OpenEntry(wxArchiveEntry& entry) = 0; - virtual bool CloseEntry() = 0; - - wxArchiveEntry *GetNextEntry() { return DoGetNextEntry(); } - - virtual char Peek() wxOVERRIDE { return wxInputStream::Peek(); } - -protected: - wxArchiveInputStream(wxInputStream& stream, wxMBConv& conv); - wxArchiveInputStream(wxInputStream *stream, wxMBConv& conv); - - virtual wxArchiveEntry *DoGetNextEntry() = 0; - - wxMBConv& GetConv() const { return m_conv; } - -private: - wxMBConv& m_conv; -}; - - -///////////////////////////////////////////////////////////////////////////// -// wxArchiveOutputStream -// -// PutNextEntry is used to create a new entry in the output archive, then -// the entry's data is written to the wxArchiveOutputStream. -// -// Only one entry can be open for output at a time; another call to -// PutNextEntry closes the current entry and begins the next. -// -// The overload 'bool PutNextEntry(wxArchiveEntry *entry)' takes ownership -// of the entry object. - -class WXDLLIMPEXP_BASE wxArchiveOutputStream : public wxFilterOutputStream -{ -public: - virtual ~wxArchiveOutputStream() { } - - virtual bool PutNextEntry(wxArchiveEntry *entry) = 0; - - virtual bool PutNextEntry(const wxString& name, - const wxDateTime& dt = wxDateTime::Now(), - wxFileOffset size = wxInvalidOffset) = 0; - - virtual bool PutNextDirEntry(const wxString& name, - const wxDateTime& dt = wxDateTime::Now()) = 0; - - virtual bool CopyEntry(wxArchiveEntry *entry, - wxArchiveInputStream& stream) = 0; - - virtual bool CopyArchiveMetaData(wxArchiveInputStream& stream) = 0; - - virtual bool CloseEntry() = 0; - -protected: - wxArchiveOutputStream(wxOutputStream& stream, wxMBConv& conv); - wxArchiveOutputStream(wxOutputStream *stream, wxMBConv& conv); - - wxMBConv& GetConv() const { return m_conv; } - -private: - wxMBConv& m_conv; -}; - - -///////////////////////////////////////////////////////////////////////////// -// wxArchiveIterator -// -// An input iterator that can be used to transfer an archive's catalog to -// a container. - -#if wxUSE_STL || defined WX_TEST_ARCHIVE_ITERATOR -#include -#include - -template inline -void _wxSetArchiveIteratorValue( - X& val, Y entry, void *WXUNUSED(d)) -{ - val = X(entry); -} -template inline -void _wxSetArchiveIteratorValue( - std::pair& val, Z entry, Z WXUNUSED(d)) -{ - val = std::make_pair(X(entry->GetInternalName()), Y(entry)); -} - -template -class wxArchiveIterator -{ -public: - typedef std::input_iterator_tag iterator_category; - typedef T value_type; - typedef ptrdiff_t difference_type; - typedef T* pointer; - typedef T& reference; - - wxArchiveIterator() : m_rep(NULL) { } - - wxArchiveIterator(Arc& arc) { - typename Arc::entry_type* entry = arc.GetNextEntry(); - m_rep = entry ? new Rep(arc, entry) : NULL; - } - - wxArchiveIterator(const wxArchiveIterator& it) : m_rep(it.m_rep) { - if (m_rep) - m_rep->AddRef(); - } - - ~wxArchiveIterator() { - if (m_rep) - m_rep->UnRef(); - } - - const T& operator *() const { - return m_rep->GetValue(); - } - - const T* operator ->() const { - return &**this; - } - - wxArchiveIterator& operator =(const wxArchiveIterator& it) { - if (it.m_rep) - it.m_rep.AddRef(); - if (m_rep) - this->m_rep.UnRef(); - m_rep = it.m_rep; - return *this; - } - - wxArchiveIterator& operator ++() { - m_rep = m_rep->Next(); - return *this; - } - - wxArchiveIterator operator ++(int) { - wxArchiveIterator it(*this); - ++(*this); - return it; - } - - bool operator ==(const wxArchiveIterator& j) const { - return m_rep == j.m_rep; - } - - bool operator !=(const wxArchiveIterator& j) const { - return !(*this == j); - } - -private: - class Rep { - Arc& m_arc; - typename Arc::entry_type* m_entry; - T m_value; - int m_ref; - - public: - Rep(Arc& arc, typename Arc::entry_type* entry) - : m_arc(arc), m_entry(entry), m_value(), m_ref(1) { } - ~Rep() - { delete m_entry; } - - void AddRef() { - m_ref++; - } - - void UnRef() { - if (--m_ref == 0) - delete this; - } - - Rep *Next() { - typename Arc::entry_type* entry = m_arc.GetNextEntry(); - if (!entry) { - UnRef(); - return NULL; - } - if (m_ref > 1) { - m_ref--; - return new Rep(m_arc, entry); - } - delete m_entry; - m_entry = entry; - m_value = T(); - return this; - } - - const T& GetValue() { - if (m_entry) { - _wxSetArchiveIteratorValue(m_value, m_entry, m_entry); - m_entry = NULL; - } - return m_value; - } - } *m_rep; -}; - -typedef wxArchiveIterator wxArchiveIter; -typedef wxArchiveIterator > wxArchivePairIter; - -#endif // wxUSE_STL || defined WX_TEST_ARCHIVE_ITERATOR - - -///////////////////////////////////////////////////////////////////////////// -// wxArchiveClassFactory -// -// A wxArchiveClassFactory instance for a particular archive type allows -// the creation of the other classes that may be needed. - -void WXDLLIMPEXP_BASE wxUseArchiveClasses(); - -class WXDLLIMPEXP_BASE wxArchiveClassFactory : public wxFilterClassFactoryBase -{ -public: - typedef wxArchiveEntry entry_type; - typedef wxArchiveInputStream instream_type; - typedef wxArchiveOutputStream outstream_type; - typedef wxArchiveNotifier notifier_type; -#if wxUSE_STL || defined WX_TEST_ARCHIVE_ITERATOR - typedef wxArchiveIter iter_type; - typedef wxArchivePairIter pairiter_type; -#endif - - virtual ~wxArchiveClassFactory() { } - - wxArchiveEntry *NewEntry() const - { return DoNewEntry(); } - wxArchiveInputStream *NewStream(wxInputStream& stream) const - { return DoNewStream(stream); } - wxArchiveOutputStream *NewStream(wxOutputStream& stream) const - { return DoNewStream(stream); } - wxArchiveInputStream *NewStream(wxInputStream *stream) const - { return DoNewStream(stream); } - wxArchiveOutputStream *NewStream(wxOutputStream *stream) const - { return DoNewStream(stream); } - - virtual wxString GetInternalName( - const wxString& name, - wxPathFormat format = wxPATH_NATIVE) const = 0; - - // FIXME-UTF8: remove these from this file, they are used for ANSI - // build only - void SetConv(wxMBConv& conv) { m_pConv = &conv; } - wxMBConv& GetConv() const - { if (m_pConv) return *m_pConv; else return wxConvLocal; } - - static const wxArchiveClassFactory *Find(const wxString& protocol, - wxStreamProtocolType type - = wxSTREAM_PROTOCOL); - - static const wxArchiveClassFactory *GetFirst(); - const wxArchiveClassFactory *GetNext() const { return m_next; } - - void PushFront() { Remove(); m_next = sm_first; sm_first = this; } - void Remove(); - -protected: - // old compilers don't support covarient returns, so 'Do' methods are - // used to simulate them - virtual wxArchiveEntry *DoNewEntry() const = 0; - virtual wxArchiveInputStream *DoNewStream(wxInputStream& stream) const = 0; - virtual wxArchiveOutputStream *DoNewStream(wxOutputStream& stream) const = 0; - virtual wxArchiveInputStream *DoNewStream(wxInputStream *stream) const = 0; - virtual wxArchiveOutputStream *DoNewStream(wxOutputStream *stream) const = 0; - - wxArchiveClassFactory() : m_pConv(NULL), m_next(this) { } - wxArchiveClassFactory& operator=(const wxArchiveClassFactory& WXUNUSED(f)) - { return *this; } - -private: - wxMBConv *m_pConv; - static wxArchiveClassFactory *sm_first; - wxArchiveClassFactory *m_next; - - wxDECLARE_ABSTRACT_CLASS(wxArchiveClassFactory); -}; - -#endif // wxUSE_STREAMS && wxUSE_ARCHIVE_STREAMS - -#endif // _WX_ARCHIVE_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/arrimpl.cpp b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/arrimpl.cpp deleted file mode 100644 index 0ef9e748..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/arrimpl.cpp +++ /dev/null @@ -1,119 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/arrimpl.cpp -// Purpose: helper file for implementation of dynamic lists -// Author: Vadim Zeitlin -// Modified by: -// Created: 16.10.97 -// Copyright: (c) 1997 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -/***************************************************************************** - * Purpose: implements methods of "template" class declared in * - * DECLARE_OBJARRAY macro and which couldn't be implemented inline * - * (because they need the full definition of type T in scope) * - * * - * Usage: 1) #include dynarray.h * - * 2) WX_DECLARE_OBJARRAY * - * 3) #include arrimpl.cpp * - * 4) WX_DEFINE_OBJARRAY * - *****************************************************************************/ - -// needed to resolve the conflict between global T and macro parameter T - -#define _WX_ERROR_REMOVE2(x) wxT("bad index in ") wxT(#x) wxT("::RemoveAt()") - -// macro implements remaining (not inline) methods of template list -// (it's private to this file) -#undef _DEFINE_OBJARRAY -#define _DEFINE_OBJARRAY(T, name) \ -name::~name() \ -{ \ - Empty(); \ -} \ - \ -void name::DoCopy(const name& src) \ -{ \ - for ( size_t ui = 0; ui < src.size(); ui++ ) \ - Add(src[ui]); \ -} \ - \ -name& name::operator=(const name& src) \ -{ \ - Empty(); \ - DoCopy(src); \ - \ - return *this; \ -} \ - \ -name::name(const name& src) : wxArrayPtrVoid() \ -{ \ - DoCopy(src); \ -} \ - \ -void name::DoEmpty() \ -{ \ - for ( size_t ui = 0; ui < size(); ui++ ) \ - delete (T*)base_array::operator[](ui); \ -} \ - \ -void name::RemoveAt(size_t uiIndex, size_t nRemove) \ -{ \ - wxCHECK_RET( uiIndex < size(), _WX_ERROR_REMOVE2(name) ); \ - \ - for (size_t i = 0; i < nRemove; i++ ) \ - delete (T*)base_array::operator[](uiIndex + i); \ - \ - base_array::erase(begin() + uiIndex, begin() + uiIndex + nRemove); \ -} \ - \ -void name::Add(const T& item, size_t nInsert) \ -{ \ - if (nInsert == 0) \ - return; \ - T* pItem = new T(item); \ - size_t nOldSize = size(); \ - if ( pItem != NULL ) \ - base_array::insert(end(), nInsert, pItem); \ - for (size_t i = 1; i < nInsert; i++) \ - base_array::operator[](nOldSize + i) = new T(item); \ -} \ - \ -void name::Insert(const T& item, size_t uiIndex, size_t nInsert) \ -{ \ - if (nInsert == 0) \ - return; \ - T* pItem = new T(item); \ - if ( pItem != NULL ) \ - base_array::insert(begin() + uiIndex, nInsert, pItem); \ - for (size_t i = 1; i < nInsert; i++) \ - base_array::operator[](uiIndex + i) = new T(item); \ -} \ - \ -int name::Index(const T& item, bool bFromEnd) const \ -{ \ - if ( bFromEnd ) { \ - if ( size() > 0 ) { \ - size_t ui = size() - 1; \ - do { \ - if ( (T*)base_array::operator[](ui) == &item ) \ - return static_cast(ui); \ - ui--; \ - } \ - while ( ui != 0 ); \ - } \ - } \ - else { \ - for( size_t ui = 0; ui < size(); ui++ ) { \ - if( (T*)base_array::operator[](ui) == &item ) \ - return static_cast(ui); \ - } \ - } \ - \ - return wxNOT_FOUND; \ -} - -// redefine the macro so that now it will generate the class implementation -// old value would provoke a compile-time error if this file is not included -#undef WX_DEFINE_OBJARRAY -#define WX_DEFINE_OBJARRAY(name) _DEFINE_OBJARRAY(_wxObjArray##name, name) diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/arrstr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/arrstr.h deleted file mode 100644 index 8b2a6325..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/arrstr.h +++ /dev/null @@ -1,536 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/arrstr.h -// Purpose: wxArrayString class -// Author: Mattia Barbon and Vadim Zeitlin -// Modified by: -// Created: 07/07/03 -// Copyright: (c) 2003 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ARRSTR_H -#define _WX_ARRSTR_H - -#include "wx/defs.h" -#include "wx/string.h" - -#if wxUSE_STD_CONTAINERS_COMPATIBLY - #include -#endif - -// these functions are only used in STL build now but we define them in any -// case for compatibility with the existing code outside of the library which -// could be using them -inline int wxCMPFUNC_CONV wxStringSortAscending(const wxString& s1, const wxString& s2) -{ - return s1.Cmp(s2); -} - -inline int wxCMPFUNC_CONV wxStringSortDescending(const wxString& s1, const wxString& s2) -{ - return wxStringSortAscending(s2, s1); -} - -// This comparison function ignores case when comparing strings differing not -// in case only, i.e. this ensures that "Aa" comes before "AB", unlike with -// wxStringSortAscending(). -inline int wxCMPFUNC_CONV -wxDictionaryStringSortAscending(const wxString& s1, const wxString& s2) -{ - const int cmp = s1.CmpNoCase(s2); - return cmp ? cmp : s1.Cmp(s2); -} - -inline int wxCMPFUNC_CONV -wxDictionaryStringSortDescending(const wxString& s1, const wxString& s2) -{ - return wxDictionaryStringSortAscending(s2, s1); -} - -#if wxUSE_STD_CONTAINERS - -#include "wx/dynarray.h" - -typedef int (wxCMPFUNC_CONV *CMPFUNCwxString)(wxString*, wxString*); -typedef wxString _wxArraywxBaseArrayStringBase; -_WX_DECLARE_BASEARRAY_2(_wxArraywxBaseArrayStringBase, wxBaseArrayStringBase, - wxArray_SortFunction, - class WXDLLIMPEXP_BASE); -WX_DEFINE_USER_EXPORTED_TYPEARRAY(wxString, wxArrayStringBase, - wxBaseArrayStringBase, WXDLLIMPEXP_BASE); - -class WXDLLIMPEXP_BASE wxArrayString : public wxArrayStringBase -{ -public: - // type of function used by wxArrayString::Sort() - typedef int (wxCMPFUNC_CONV *CompareFunction)(const wxString& first, - const wxString& second); - - wxArrayString() { } - wxArrayString(const wxArrayString& a) : wxArrayStringBase(a) { } - wxArrayString(size_t sz, const char** a); - wxArrayString(size_t sz, const wchar_t** a); - wxArrayString(size_t sz, const wxString* a); - - int Index(const wxString& str, bool bCase = true, bool bFromEnd = false) const; - - void Sort(bool reverseOrder = false); - void Sort(CompareFunction function); - void Sort(CMPFUNCwxString function) { wxArrayStringBase::Sort(function); } - - size_t Add(const wxString& string, size_t copies = 1) - { - wxArrayStringBase::Add(string, copies); - return size() - copies; - } -}; - -_WX_DEFINE_SORTED_TYPEARRAY_2(wxString, wxSortedArrayStringBase, - wxBaseArrayStringBase, = wxStringSortAscending, - class WXDLLIMPEXP_BASE, wxArrayString::CompareFunction); - -class WXDLLIMPEXP_BASE wxSortedArrayString : public wxSortedArrayStringBase -{ -public: - wxSortedArrayString() : wxSortedArrayStringBase(wxStringSortAscending) - { } - wxSortedArrayString(const wxSortedArrayString& array) - : wxSortedArrayStringBase(array) - { } - wxSortedArrayString(const wxArrayString& src) - : wxSortedArrayStringBase(wxStringSortAscending) - { - reserve(src.size()); - - for ( size_t n = 0; n < src.size(); n++ ) - Add(src[n]); - } - wxEXPLICIT wxSortedArrayString(wxArrayString::CompareFunction compareFunction) - : wxSortedArrayStringBase(compareFunction) - { } - - int Index(const wxString& str, bool bCase = true, bool bFromEnd = false) const; - -private: - void Insert() - { - wxFAIL_MSG( "wxSortedArrayString::Insert() is not to be used" ); - } - - void Sort() - { - wxFAIL_MSG( "wxSortedArrayString::Sort() is not to be used" ); - } -}; - -#else // if !wxUSE_STD_CONTAINERS - -#include "wx/beforestd.h" -#include -#include "wx/afterstd.h" - -class WXDLLIMPEXP_BASE wxArrayString -{ -public: - // type of function used by wxArrayString::Sort() - typedef int (wxCMPFUNC_CONV *CompareFunction)(const wxString& first, - const wxString& second); - // type of function used by wxArrayString::Sort(), for compatibility with - // wxArray - typedef int (wxCMPFUNC_CONV *CompareFunction2)(wxString* first, - wxString* second); - - // constructors and destructor - // default ctor - wxArrayString() { Init(false); } - // if autoSort is true, the array is always sorted (in alphabetical order) - // - // NB: the reason for using int and not bool is that like this we can avoid - // using this ctor for implicit conversions from "const char *" (which - // we'd like to be implicitly converted to wxString instead!). This - // wouldn't be needed if the 'explicit' keyword was supported by all - // compilers, or if this was protected ctor for wxSortedArrayString, - // but we're stuck with it now. - wxEXPLICIT wxArrayString(int autoSort) { Init(autoSort != 0); } - // C string array ctor - wxArrayString(size_t sz, const char** a); - wxArrayString(size_t sz, const wchar_t** a); - // wxString string array ctor - wxArrayString(size_t sz, const wxString* a); - // copy ctor - wxArrayString(const wxArrayString& array); - // assignment operator - wxArrayString& operator=(const wxArrayString& src); - // not virtual, this class should not be derived from - ~wxArrayString(); - - // memory management - // empties the list, but doesn't release memory - void Empty(); - // empties the list and releases memory - void Clear(); - // preallocates memory for given number of items - void Alloc(size_t nCount); - // minimizes the memory usage (by freeing all extra memory) - void Shrink(); - - // simple accessors - // number of elements in the array - size_t GetCount() const { return m_nCount; } - // is it empty? - bool IsEmpty() const { return m_nCount == 0; } - // number of elements in the array (GetCount is preferred API) - size_t Count() const { return m_nCount; } - - // items access (range checking is done in debug version) - // get item at position uiIndex - wxString& Item(size_t nIndex) - { - wxASSERT_MSG( nIndex < m_nCount, - wxT("wxArrayString: index out of bounds") ); - - return m_pItems[nIndex]; - } - const wxString& Item(size_t nIndex) const { return const_cast(this)->Item(nIndex); } - - // same as Item() - wxString& operator[](size_t nIndex) { return Item(nIndex); } - const wxString& operator[](size_t nIndex) const { return Item(nIndex); } - // get last item - wxString& Last() - { - wxASSERT_MSG( !IsEmpty(), - wxT("wxArrayString: index out of bounds") ); - return Item(GetCount() - 1); - } - const wxString& Last() const { return const_cast(this)->Last(); } - - - // item management - // Search the element in the array, starting from the beginning if - // bFromEnd is false or from end otherwise. If bCase, comparison is case - // sensitive (default). Returns index of the first item matched or - // wxNOT_FOUND - int Index (const wxString& str, bool bCase = true, bool bFromEnd = false) const; - // add new element at the end (if the array is not sorted), return its - // index - size_t Add(const wxString& str, size_t nInsert = 1); - // add new element at given position - void Insert(const wxString& str, size_t uiIndex, size_t nInsert = 1); - // expand the array to have count elements - void SetCount(size_t count); - // remove first item matching this value - void Remove(const wxString& sz); - // remove item by index - void RemoveAt(size_t nIndex, size_t nRemove = 1); - - // sorting - // sort array elements in alphabetical order (or reversed alphabetical - // order if reverseOrder parameter is true) - void Sort(bool reverseOrder = false); - // sort array elements using specified comparison function - void Sort(CompareFunction compareFunction); - void Sort(CompareFunction2 compareFunction); - - // comparison - // compare two arrays case sensitively - bool operator==(const wxArrayString& a) const; - // compare two arrays case sensitively - bool operator!=(const wxArrayString& a) const { return !(*this == a); } - - // STL-like interface - typedef wxString value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type* iterator; - typedef const value_type* const_iterator; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef int difference_type; - typedef size_t size_type; - - // TODO: this code duplicates the one in dynarray.h - class reverse_iterator - { - typedef wxString value_type; - typedef value_type* pointer; - typedef value_type& reference; - typedef reverse_iterator itor; - friend itor operator+(int o, const itor& it); - friend itor operator+(const itor& it, int o); - friend itor operator-(const itor& it, int o); - friend difference_type operator -(const itor& i1, const itor& i2); - public: - pointer m_ptr; - reverse_iterator() : m_ptr(NULL) { } - wxEXPLICIT reverse_iterator(pointer ptr) : m_ptr(ptr) { } - reverse_iterator(const itor& it) : m_ptr(it.m_ptr) { } - reference operator*() const { return *m_ptr; } - pointer operator->() const { return m_ptr; } - itor& operator++() { --m_ptr; return *this; } - const itor operator++(int) - { reverse_iterator tmp = *this; --m_ptr; return tmp; } - itor& operator--() { ++m_ptr; return *this; } - const itor operator--(int) { itor tmp = *this; ++m_ptr; return tmp; } - bool operator ==(const itor& it) const { return m_ptr == it.m_ptr; } - bool operator !=(const itor& it) const { return m_ptr != it.m_ptr; } - }; - - class const_reverse_iterator - { - typedef wxString value_type; - typedef const value_type* pointer; - typedef const value_type& reference; - typedef const_reverse_iterator itor; - friend itor operator+(int o, const itor& it); - friend itor operator+(const itor& it, int o); - friend itor operator-(const itor& it, int o); - friend difference_type operator -(const itor& i1, const itor& i2); - public: - pointer m_ptr; - const_reverse_iterator() : m_ptr(NULL) { } - wxEXPLICIT const_reverse_iterator(pointer ptr) : m_ptr(ptr) { } - const_reverse_iterator(const itor& it) : m_ptr(it.m_ptr) { } - const_reverse_iterator(const reverse_iterator& it) : m_ptr(it.m_ptr) { } - reference operator*() const { return *m_ptr; } - pointer operator->() const { return m_ptr; } - itor& operator++() { --m_ptr; return *this; } - const itor operator++(int) - { itor tmp = *this; --m_ptr; return tmp; } - itor& operator--() { ++m_ptr; return *this; } - const itor operator--(int) { itor tmp = *this; ++m_ptr; return tmp; } - bool operator ==(const itor& it) const { return m_ptr == it.m_ptr; } - bool operator !=(const itor& it) const { return m_ptr != it.m_ptr; } - }; - - wxArrayString(const_iterator first, const_iterator last) - { Init(false); assign(first, last); } - wxArrayString(size_type n, const_reference v) { Init(false); assign(n, v); } - - template - void assign(Iterator first, Iterator last) - { - clear(); - reserve(std::distance(first, last)); - for(; first != last; ++first) - push_back(*first); - } - - void assign(size_type n, const_reference v) - { clear(); Add(v, n); } - reference back() { return *(end() - 1); } - const_reference back() const { return *(end() - 1); } - iterator begin() { return m_pItems; } - const_iterator begin() const { return m_pItems; } - size_type capacity() const { return m_nSize; } - void clear() { Clear(); } - bool empty() const { return IsEmpty(); } - iterator end() { return begin() + GetCount(); } - const_iterator end() const { return begin() + GetCount(); } - iterator erase(iterator first, iterator last) - { - size_t idx = first - begin(); - RemoveAt(idx, last - first); - return begin() + idx; - } - iterator erase(iterator it) { return erase(it, it + 1); } - reference front() { return *begin(); } - const_reference front() const { return *begin(); } - void insert(iterator it, size_type n, const_reference v) - { Insert(v, it - begin(), n); } - iterator insert(iterator it, const_reference v = value_type()) - { size_t idx = it - begin(); Insert(v, idx); return begin() + idx; } - void insert(iterator it, const_iterator first, const_iterator last); - size_type max_size() const { return INT_MAX; } - void pop_back() { RemoveAt(GetCount() - 1); } - void push_back(const_reference v) { Add(v); } - reverse_iterator rbegin() { return reverse_iterator(end() - 1); } - const_reverse_iterator rbegin() const - { return const_reverse_iterator(end() - 1); } - reverse_iterator rend() { return reverse_iterator(begin() - 1); } - const_reverse_iterator rend() const - { return const_reverse_iterator(begin() - 1); } - void reserve(size_type n) /* base::reserve*/; - void resize(size_type n, value_type v = value_type()); - size_type size() const { return GetCount(); } - void swap(wxArrayString& other) - { - wxSwap(m_nSize, other.m_nSize); - wxSwap(m_nCount, other.m_nCount); - wxSwap(m_pItems, other.m_pItems); - wxSwap(m_autoSort, other.m_autoSort); - } - -protected: - void Init(bool autoSort); // common part of all ctors - void Copy(const wxArrayString& src); // copies the contents of another array - - CompareFunction m_compareFunction; // set only from wxSortedArrayString - -private: - // Allocate the new buffer big enough to hold m_nCount + nIncrement items and - // return the pointer to the old buffer, which must be deleted by the caller - // (if the old buffer is big enough, just return NULL). - wxString *Grow(size_t nIncrement); - - size_t m_nSize, // current size of the array - m_nCount; // current number of elements - - wxString *m_pItems; // pointer to data - - bool m_autoSort; // if true, keep the array always sorted -}; - -class WXDLLIMPEXP_BASE wxSortedArrayString : public wxArrayString -{ -public: - wxSortedArrayString() : wxArrayString(true) - { } - wxSortedArrayString(const wxArrayString& array) : wxArrayString(true) - { Copy(array); } - - wxEXPLICIT wxSortedArrayString(CompareFunction compareFunction) - : wxArrayString(true) - { m_compareFunction = compareFunction; } -}; - -#endif // !wxUSE_STD_CONTAINERS - -// this class provides a temporary wxString* from a -// wxArrayString -class WXDLLIMPEXP_BASE wxCArrayString -{ -public: - wxCArrayString( const wxArrayString& array ) - : m_array( array ), m_strings( NULL ) - { } - ~wxCArrayString() { delete[] m_strings; } - - size_t GetCount() const { return m_array.GetCount(); } - wxString* GetStrings() - { - if( m_strings ) return m_strings; - size_t count = m_array.GetCount(); - m_strings = new wxString[count]; - for( size_t i = 0; i < count; ++i ) - m_strings[i] = m_array[i]; - return m_strings; - } - - wxString* Release() - { - wxString *r = GetStrings(); - m_strings = NULL; - return r; - } - -private: - const wxArrayString& m_array; - wxString* m_strings; -}; - - -// ---------------------------------------------------------------------------- -// helper functions for working with arrays -// ---------------------------------------------------------------------------- - -// by default, these functions use the escape character to escape the -// separators occurring inside the string to be joined, this can be disabled by -// passing '\0' as escape - -WXDLLIMPEXP_BASE wxString wxJoin(const wxArrayString& arr, - const wxChar sep, - const wxChar escape = wxT('\\')); - -WXDLLIMPEXP_BASE wxArrayString wxSplit(const wxString& str, - const wxChar sep, - const wxChar escape = wxT('\\')); - - -// ---------------------------------------------------------------------------- -// This helper class allows to pass both C array of wxStrings or wxArrayString -// using the same interface. -// -// Use it when you have two methods taking wxArrayString or (int, wxString[]), -// that do the same thing. This class lets you iterate over input data in the -// same way whether it is a raw array of strings or wxArrayString. -// -// The object does not take ownership of the data -- internally it keeps -// pointers to the data, therefore the data must be disposed of by user -// and only after this object is destroyed. Usually it is not a problem as -// only temporary objects of this class are used. -// ---------------------------------------------------------------------------- - -class wxArrayStringsAdapter -{ -public: - // construct an adapter from a wxArrayString - wxArrayStringsAdapter(const wxArrayString& strings) - : m_type(wxSTRING_ARRAY), m_size(strings.size()) - { - m_data.array = &strings; - } - - // construct an adapter from a wxString[] - wxArrayStringsAdapter(unsigned int n, const wxString *strings) - : m_type(wxSTRING_POINTER), m_size(n) - { - m_data.ptr = strings; - } - -#if wxUSE_STD_CONTAINERS_COMPATIBLY - // construct an adapter from a vector of strings (of any type) - template - wxArrayStringsAdapter(const std::vector& strings) - : m_type(wxSTRING_POINTER), m_size(strings.size()) - { - m_data.ptr = &strings[0]; - } -#endif // wxUSE_STD_CONTAINERS_COMPATIBLY - - // construct an adapter from a single wxString - wxArrayStringsAdapter(const wxString& s) - : m_type(wxSTRING_POINTER), m_size(1) - { - m_data.ptr = &s; - } - - // default copy constructor is ok - - // iteration interface - size_t GetCount() const { return m_size; } - bool IsEmpty() const { return GetCount() == 0; } - const wxString& operator[] (unsigned int i) const - { - wxASSERT_MSG( i < GetCount(), wxT("index out of bounds") ); - if(m_type == wxSTRING_POINTER) - return m_data.ptr[i]; - return m_data.array->Item(i); - } - wxArrayString AsArrayString() const - { - if(m_type == wxSTRING_ARRAY) - return *m_data.array; - return wxArrayString(GetCount(), m_data.ptr); - } - -private: - // type of the data being held - enum wxStringContainerType - { - wxSTRING_ARRAY, // wxArrayString - wxSTRING_POINTER // wxString[] - }; - - wxStringContainerType m_type; - size_t m_size; - union - { - const wxString * ptr; - const wxArrayString * array; - } m_data; - - wxDECLARE_NO_ASSIGN_CLASS(wxArrayStringsAdapter); -}; - -#endif // _WX_ARRSTR_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/artprov.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/artprov.h deleted file mode 100644 index 29e0c71b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/artprov.h +++ /dev/null @@ -1,255 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/artprov.h -// Purpose: wxArtProvider class -// Author: Vaclav Slavik -// Modified by: -// Created: 18/03/2002 -// Copyright: (c) Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ARTPROV_H_ -#define _WX_ARTPROV_H_ - -#include "wx/string.h" -#include "wx/bitmap.h" -#include "wx/icon.h" -#include "wx/iconbndl.h" - -class WXDLLIMPEXP_FWD_CORE wxArtProvidersList; -class WXDLLIMPEXP_FWD_CORE wxArtProviderCache; -class wxArtProviderModule; - -// ---------------------------------------------------------------------------- -// Types -// ---------------------------------------------------------------------------- - -typedef wxString wxArtClient; -typedef wxString wxArtID; - -#define wxART_MAKE_CLIENT_ID_FROM_STR(id) ((id) + "_C") -#define wxART_MAKE_CLIENT_ID(id) (#id "_C") -#define wxART_MAKE_ART_ID_FROM_STR(id) (id) -#define wxART_MAKE_ART_ID(id) (#id) - -// ---------------------------------------------------------------------------- -// Art clients -// ---------------------------------------------------------------------------- - -#define wxART_TOOLBAR wxART_MAKE_CLIENT_ID(wxART_TOOLBAR) -#define wxART_MENU wxART_MAKE_CLIENT_ID(wxART_MENU) -#define wxART_FRAME_ICON wxART_MAKE_CLIENT_ID(wxART_FRAME_ICON) - -#define wxART_CMN_DIALOG wxART_MAKE_CLIENT_ID(wxART_CMN_DIALOG) -#define wxART_HELP_BROWSER wxART_MAKE_CLIENT_ID(wxART_HELP_BROWSER) -#define wxART_MESSAGE_BOX wxART_MAKE_CLIENT_ID(wxART_MESSAGE_BOX) -#define wxART_BUTTON wxART_MAKE_CLIENT_ID(wxART_BUTTON) -#define wxART_LIST wxART_MAKE_CLIENT_ID(wxART_LIST) - -#define wxART_OTHER wxART_MAKE_CLIENT_ID(wxART_OTHER) - -// ---------------------------------------------------------------------------- -// Art IDs -// ---------------------------------------------------------------------------- - -#define wxART_ADD_BOOKMARK wxART_MAKE_ART_ID(wxART_ADD_BOOKMARK) -#define wxART_DEL_BOOKMARK wxART_MAKE_ART_ID(wxART_DEL_BOOKMARK) -#define wxART_HELP_SIDE_PANEL wxART_MAKE_ART_ID(wxART_HELP_SIDE_PANEL) -#define wxART_HELP_SETTINGS wxART_MAKE_ART_ID(wxART_HELP_SETTINGS) -#define wxART_HELP_BOOK wxART_MAKE_ART_ID(wxART_HELP_BOOK) -#define wxART_HELP_FOLDER wxART_MAKE_ART_ID(wxART_HELP_FOLDER) -#define wxART_HELP_PAGE wxART_MAKE_ART_ID(wxART_HELP_PAGE) -#define wxART_GO_BACK wxART_MAKE_ART_ID(wxART_GO_BACK) -#define wxART_GO_FORWARD wxART_MAKE_ART_ID(wxART_GO_FORWARD) -#define wxART_GO_UP wxART_MAKE_ART_ID(wxART_GO_UP) -#define wxART_GO_DOWN wxART_MAKE_ART_ID(wxART_GO_DOWN) -#define wxART_GO_TO_PARENT wxART_MAKE_ART_ID(wxART_GO_TO_PARENT) -#define wxART_GO_HOME wxART_MAKE_ART_ID(wxART_GO_HOME) -#define wxART_GOTO_FIRST wxART_MAKE_ART_ID(wxART_GOTO_FIRST) -#define wxART_GOTO_LAST wxART_MAKE_ART_ID(wxART_GOTO_LAST) -#define wxART_FILE_OPEN wxART_MAKE_ART_ID(wxART_FILE_OPEN) -#define wxART_FILE_SAVE wxART_MAKE_ART_ID(wxART_FILE_SAVE) -#define wxART_FILE_SAVE_AS wxART_MAKE_ART_ID(wxART_FILE_SAVE_AS) -#define wxART_PRINT wxART_MAKE_ART_ID(wxART_PRINT) -#define wxART_HELP wxART_MAKE_ART_ID(wxART_HELP) -#define wxART_TIP wxART_MAKE_ART_ID(wxART_TIP) -#define wxART_REPORT_VIEW wxART_MAKE_ART_ID(wxART_REPORT_VIEW) -#define wxART_LIST_VIEW wxART_MAKE_ART_ID(wxART_LIST_VIEW) -#define wxART_NEW_DIR wxART_MAKE_ART_ID(wxART_NEW_DIR) -#define wxART_HARDDISK wxART_MAKE_ART_ID(wxART_HARDDISK) -#define wxART_FLOPPY wxART_MAKE_ART_ID(wxART_FLOPPY) -#define wxART_CDROM wxART_MAKE_ART_ID(wxART_CDROM) -#define wxART_REMOVABLE wxART_MAKE_ART_ID(wxART_REMOVABLE) -#define wxART_FOLDER wxART_MAKE_ART_ID(wxART_FOLDER) -#define wxART_FOLDER_OPEN wxART_MAKE_ART_ID(wxART_FOLDER_OPEN) -#define wxART_GO_DIR_UP wxART_MAKE_ART_ID(wxART_GO_DIR_UP) -#define wxART_EXECUTABLE_FILE wxART_MAKE_ART_ID(wxART_EXECUTABLE_FILE) -#define wxART_NORMAL_FILE wxART_MAKE_ART_ID(wxART_NORMAL_FILE) -#define wxART_TICK_MARK wxART_MAKE_ART_ID(wxART_TICK_MARK) -#define wxART_CROSS_MARK wxART_MAKE_ART_ID(wxART_CROSS_MARK) -#define wxART_ERROR wxART_MAKE_ART_ID(wxART_ERROR) -#define wxART_QUESTION wxART_MAKE_ART_ID(wxART_QUESTION) -#define wxART_WARNING wxART_MAKE_ART_ID(wxART_WARNING) -#define wxART_INFORMATION wxART_MAKE_ART_ID(wxART_INFORMATION) -#define wxART_MISSING_IMAGE wxART_MAKE_ART_ID(wxART_MISSING_IMAGE) - -#define wxART_COPY wxART_MAKE_ART_ID(wxART_COPY) -#define wxART_CUT wxART_MAKE_ART_ID(wxART_CUT) -#define wxART_PASTE wxART_MAKE_ART_ID(wxART_PASTE) -#define wxART_DELETE wxART_MAKE_ART_ID(wxART_DELETE) -#define wxART_NEW wxART_MAKE_ART_ID(wxART_NEW) - -#define wxART_UNDO wxART_MAKE_ART_ID(wxART_UNDO) -#define wxART_REDO wxART_MAKE_ART_ID(wxART_REDO) - -#define wxART_PLUS wxART_MAKE_ART_ID(wxART_PLUS) -#define wxART_MINUS wxART_MAKE_ART_ID(wxART_MINUS) - -#define wxART_CLOSE wxART_MAKE_ART_ID(wxART_CLOSE) -#define wxART_QUIT wxART_MAKE_ART_ID(wxART_QUIT) - -#define wxART_FIND wxART_MAKE_ART_ID(wxART_FIND) -#define wxART_FIND_AND_REPLACE wxART_MAKE_ART_ID(wxART_FIND_AND_REPLACE) - -#define wxART_FULL_SCREEN wxART_MAKE_ART_ID(wxART_FULL_SCREEN) - -#define wxART_EDIT wxART_MAKE_ART_ID(wxART_EDIT) - -// ---------------------------------------------------------------------------- -// wxArtProvider class -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxArtProvider : public wxObject -{ -public: - // Dtor removes the provider from providers stack if it's still on it - virtual ~wxArtProvider(); - - // Does this platform implement native icons theme? - static bool HasNativeProvider(); - - // Add new provider to the top of providers stack (i.e. the provider will - // be queried first of all). - static void Push(wxArtProvider *provider); - - // Add new provider to the bottom of providers stack (i.e. the provider - // will be queried as the last one). - static void PushBack(wxArtProvider *provider); - -#if WXWIN_COMPATIBILITY_2_8 - // use PushBack(), it's the same thing - static wxDEPRECATED( void Insert(wxArtProvider *provider) ); -#endif - - // Remove latest added provider and delete it. - static bool Pop(); - - // Remove provider from providers stack but don't delete it. - static bool Remove(wxArtProvider *provider); - - // Delete the given provider and remove it from the providers stack. - static bool Delete(wxArtProvider *provider); - - - // Query the providers for bitmap with given ID and return it. Return - // wxNullBitmap if no provider provides it. - static wxBitmap GetBitmap(const wxArtID& id, - const wxArtClient& client = wxART_OTHER, - const wxSize& size = wxDefaultSize); - - // Query the providers for icon with given ID and return it. Return - // wxNullIcon if no provider provides it. - static wxIcon GetIcon(const wxArtID& id, - const wxArtClient& client = wxART_OTHER, - const wxSize& size = wxDefaultSize); - - // Helper used by GetMessageBoxIcon(): return the art id corresponding to - // the standard wxICON_INFORMATION/WARNING/ERROR/QUESTION flags (only one - // can be set) - static wxArtID GetMessageBoxIconId(int flags); - - // Helper used by several generic classes: return the icon corresponding to - // the standard wxICON_INFORMATION/WARNING/ERROR/QUESTION flags (only one - // can be set) - static wxIcon GetMessageBoxIcon(int flags) - { - return GetIcon(GetMessageBoxIconId(flags), wxART_MESSAGE_BOX); - } - - // Query the providers for iconbundle with given ID and return it. Return - // wxNullIconBundle if no provider provides it. - static wxIconBundle GetIconBundle(const wxArtID& id, - const wxArtClient& client = wxART_OTHER); - - // Gets native size for given 'client' or wxDefaultSize if it doesn't - // have native equivalent - static wxSize GetNativeSizeHint(const wxArtClient& client); - - // Get the size hint of an icon from a specific wxArtClient, queries - // the topmost provider if platform_dependent = false - static wxSize GetSizeHint(const wxArtClient& client, bool platform_dependent = false); - - // Rescale bitmap (used internally if requested size is other than the available). - static void RescaleBitmap(wxBitmap& bmp, const wxSize& sizeNeeded); - -protected: - friend class wxArtProviderModule; -#if wxUSE_ARTPROVIDER_STD - // Initializes default provider - static void InitStdProvider(); -#endif // wxUSE_ARTPROVIDER_STD - // Initializes Tango-based icon provider -#if wxUSE_ARTPROVIDER_TANGO - static void InitTangoProvider(); -#endif // wxUSE_ARTPROVIDER_TANGO - // Initializes platform's native provider, if available (e.g. GTK2) - static void InitNativeProvider(); - // Destroy caches & all providers - static void CleanUpProviders(); - - // Get the default size of an icon for a specific client - virtual wxSize DoGetSizeHint(const wxArtClient& client) - { - return GetSizeHint(client, true); - } - - // Derived classes must override CreateBitmap or CreateIconBundle - // (or both) to create requested art resource. This method is called - // only once per instance's lifetime for each requested wxArtID. - virtual wxBitmap CreateBitmap(const wxArtID& WXUNUSED(id), - const wxArtClient& WXUNUSED(client), - const wxSize& WXUNUSED(size)) - { - return wxNullBitmap; - } - - virtual wxIconBundle CreateIconBundle(const wxArtID& WXUNUSED(id), - const wxArtClient& WXUNUSED(client)) - { - return wxNullIconBundle; - } - -private: - static void CommonAddingProvider(); - static wxIconBundle DoGetIconBundle(const wxArtID& id, - const wxArtClient& client); - -private: - // list of providers: - static wxArtProvidersList *sm_providers; - // art resources cache (so that CreateXXX is not called that often): - static wxArtProviderCache *sm_cache; - - wxDECLARE_ABSTRACT_CLASS(wxArtProvider); -}; - - -#if !defined(__WXUNIVERSAL__) && \ - ((defined(__WXGTK__) && defined(__WXGTK20__)) || defined(__WXMSW__) || \ - defined(__WXMAC__)) - // *some* (partial) native implementation of wxArtProvider exists; this is - // not the same as wxArtProvider::HasNativeProvider()! - #define wxHAS_NATIVE_ART_PROVIDER_IMPL -#endif - -#endif // _WX_ARTPROV_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/atomic.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/atomic.h deleted file mode 100644 index 25bd0498..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/atomic.h +++ /dev/null @@ -1,159 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/atomic.h -// Purpose: functions to manipulate atomically integers and pointers -// Author: Armel Asselin -// Created: 12/13/2006 -// Copyright: (c) Armel Asselin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ATOMIC_H_ -#define _WX_ATOMIC_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -// get the value of wxUSE_THREADS configuration flag -#include "wx/defs.h" - -// constraints on the various functions: -// - wxAtomicDec must return a zero value if the value is zero once -// decremented else it must return any non-zero value (the true value is OK -// but not necessary). - -#if wxUSE_THREADS - -#if defined(HAVE_GCC_ATOMIC_BUILTINS) - -// NB: we intentionally don't use Linux's asm/atomic.h header, because it's -// an internal kernel header that doesn't always work in userspace: -// http://bugs.mysql.com/bug.php?id=28456 -// http://golubenco.org/blog/atomic-operations/ - -inline void wxAtomicInc (wxUint32 &value) -{ - __sync_fetch_and_add(&value, 1); -} - -inline wxUint32 wxAtomicDec (wxUint32 &value) -{ - return __sync_sub_and_fetch(&value, 1); -} - - -#elif defined(__WINDOWS__) - -// include standard Windows headers -#include "wx/msw/wrapwin.h" - -inline void wxAtomicInc (wxUint32 &value) -{ - InterlockedIncrement ((LONG*)&value); -} - -inline wxUint32 wxAtomicDec (wxUint32 &value) -{ - return InterlockedDecrement ((LONG*)&value); -} - -#elif defined(__DARWIN__) - -#include "libkern/OSAtomic.h" -inline void wxAtomicInc (wxUint32 &value) -{ - OSAtomicIncrement32 ((int32_t*)&value); -} - -inline wxUint32 wxAtomicDec (wxUint32 &value) -{ - return OSAtomicDecrement32 ((int32_t*)&value); -} - -#elif defined (__SOLARIS__) - -#include - -inline void wxAtomicInc (wxUint32 &value) -{ - atomic_add_32 ((uint32_t*)&value, 1); -} - -inline wxUint32 wxAtomicDec (wxUint32 &value) -{ - return atomic_add_32_nv ((uint32_t*)&value, (uint32_t)-1); -} - -#else // unknown platform - -// it will result in inclusion if the generic implementation code a bit later in this page -#define wxNEEDS_GENERIC_ATOMIC_OPS - -#endif // unknown platform - -#else // else of wxUSE_THREADS -// if no threads are used we can safely use simple ++/-- - -inline void wxAtomicInc (wxUint32 &value) { ++value; } -inline wxUint32 wxAtomicDec (wxUint32 &value) { return --value; } - -#endif // !wxUSE_THREADS - -// ---------------------------------------------------------------------------- -// proxies to actual implementations, but for various other types with same -// behaviour -// ---------------------------------------------------------------------------- - -#ifdef wxNEEDS_GENERIC_ATOMIC_OPS - -#include "wx/thread.h" // for wxCriticalSection - -class wxAtomicInt32 -{ -public: - wxAtomicInt32() { } // non initialized for consistency with basic int type - wxAtomicInt32(wxInt32 v) : m_value(v) { } - wxAtomicInt32(const wxAtomicInt32& a) : m_value(a.m_value) {} - - operator wxInt32() const { return m_value; } - operator volatile wxInt32&() { return m_value; } - - wxAtomicInt32& operator=(wxInt32 v) { m_value = v; return *this; } - - void Inc() - { - wxCriticalSectionLocker lock(m_locker); - ++m_value; - } - - wxInt32 Dec() - { - wxCriticalSectionLocker lock(m_locker); - return --m_value; - } - -private: - volatile wxInt32 m_value; - wxCriticalSection m_locker; -}; - -inline void wxAtomicInc(wxAtomicInt32 &value) { value.Inc(); } -inline wxInt32 wxAtomicDec(wxAtomicInt32 &value) { return value.Dec(); } - -#else // !wxNEEDS_GENERIC_ATOMIC_OPS - -#define wxHAS_ATOMIC_OPS - -inline void wxAtomicInc(wxInt32 &value) { wxAtomicInc((wxUint32&)value); } -inline wxInt32 wxAtomicDec(wxInt32 &value) { return wxAtomicDec((wxUint32&)value); } - -typedef wxInt32 wxAtomicInt32; - -#endif // wxNEEDS_GENERIC_ATOMIC_OPS - -// all the native implementations use 32 bits currently -// for a 64 bits implementation we could use (a future) wxAtomicInt64 as -// default type -typedef wxAtomicInt32 wxAtomicInt; - -#endif // _WX_ATOMIC_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/aui.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/aui.h deleted file mode 100644 index df3a9166..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/aui.h +++ /dev/null @@ -1,22 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/aui/aui.h -// Purpose: wxaui: wx advanced user interface - docking window manager -// Author: Benjamin I. Williams -// Modified by: -// Created: 2005-05-17 -// Copyright: (C) Copyright 2005, Kirix Corporation, All Rights Reserved. -// Licence: wxWindows Library Licence, Version 3.1 -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_AUI_H_ -#define _WX_AUI_H_ - -#include "wx/aui/framemanager.h" -#include "wx/aui/dockart.h" -#include "wx/aui/floatpane.h" -#include "wx/aui/auibar.h" -#include "wx/aui/auibook.h" -#include "wx/aui/tabmdi.h" - -#endif // _WX_AUI_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/auibar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/auibar.h deleted file mode 100644 index c37787d9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/auibar.h +++ /dev/null @@ -1,765 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/aui/toolbar.h -// Purpose: wxaui: wx advanced user interface - docking window manager -// Author: Benjamin I. Williams -// Modified by: -// Created: 2008-08-04 -// Copyright: (C) Copyright 2005, Kirix Corporation, All Rights Reserved. -// Licence: wxWindows Library Licence, Version 3.1 -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_AUIBAR_H_ -#define _WX_AUIBAR_H_ - -#include "wx/defs.h" - -#if wxUSE_AUI - -#include "wx/control.h" -#include "wx/sizer.h" -#include "wx/pen.h" - -class WXDLLIMPEXP_FWD_CORE wxClientDC; -class WXDLLIMPEXP_FWD_AUI wxAuiPaneInfo; - -enum wxAuiToolBarStyle -{ - wxAUI_TB_TEXT = 1 << 0, - wxAUI_TB_NO_TOOLTIPS = 1 << 1, - wxAUI_TB_NO_AUTORESIZE = 1 << 2, - wxAUI_TB_GRIPPER = 1 << 3, - wxAUI_TB_OVERFLOW = 1 << 4, - // using this style forces the toolbar to be vertical and - // be only dockable to the left or right sides of the window - // whereas by default it can be horizontal or vertical and - // be docked anywhere - wxAUI_TB_VERTICAL = 1 << 5, - wxAUI_TB_HORZ_LAYOUT = 1 << 6, - // analogous to wxAUI_TB_VERTICAL, but forces the toolbar - // to be horizontal - wxAUI_TB_HORIZONTAL = 1 << 7, - wxAUI_TB_PLAIN_BACKGROUND = 1 << 8, - wxAUI_TB_HORZ_TEXT = (wxAUI_TB_HORZ_LAYOUT | wxAUI_TB_TEXT), - wxAUI_ORIENTATION_MASK = (wxAUI_TB_VERTICAL | wxAUI_TB_HORIZONTAL), - wxAUI_TB_DEFAULT_STYLE = 0 -}; - -enum wxAuiToolBarArtSetting -{ - wxAUI_TBART_SEPARATOR_SIZE = 0, - wxAUI_TBART_GRIPPER_SIZE = 1, - wxAUI_TBART_OVERFLOW_SIZE = 2 -}; - -enum wxAuiToolBarToolTextOrientation -{ - wxAUI_TBTOOL_TEXT_LEFT = 0, // unused/unimplemented - wxAUI_TBTOOL_TEXT_RIGHT = 1, - wxAUI_TBTOOL_TEXT_TOP = 2, // unused/unimplemented - wxAUI_TBTOOL_TEXT_BOTTOM = 3 -}; - - -// aui toolbar event class - -class WXDLLIMPEXP_AUI wxAuiToolBarEvent : public wxNotifyEvent -{ -public: - wxAuiToolBarEvent(wxEventType commandType = wxEVT_NULL, - int winId = 0) - : wxNotifyEvent(commandType, winId) - { - m_isDropdownClicked = false; - m_clickPt = wxPoint(-1, -1); - m_rect = wxRect(-1,-1, 0, 0); - m_toolId = -1; - } -#ifndef SWIG - wxAuiToolBarEvent(const wxAuiToolBarEvent& c) : wxNotifyEvent(c) - { - m_isDropdownClicked = c.m_isDropdownClicked; - m_clickPt = c.m_clickPt; - m_rect = c.m_rect; - m_toolId = c.m_toolId; - } -#endif - wxEvent *Clone() const wxOVERRIDE { return new wxAuiToolBarEvent(*this); } - - bool IsDropDownClicked() const { return m_isDropdownClicked; } - void SetDropDownClicked(bool c) { m_isDropdownClicked = c; } - - wxPoint GetClickPoint() const { return m_clickPt; } - void SetClickPoint(const wxPoint& p) { m_clickPt = p; } - - wxRect GetItemRect() const { return m_rect; } - void SetItemRect(const wxRect& r) { m_rect = r; } - - int GetToolId() const { return m_toolId; } - void SetToolId(int toolId) { m_toolId = toolId; } - -private: - - bool m_isDropdownClicked; - wxPoint m_clickPt; - wxRect m_rect; - int m_toolId; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxAuiToolBarEvent); -}; - - -class WXDLLIMPEXP_AUI wxAuiToolBarItem -{ - friend class wxAuiToolBar; - -public: - - wxAuiToolBarItem() - { - m_window = NULL; - m_sizerItem = NULL; - m_spacerPixels = 0; - m_toolId = 0; - m_kind = wxITEM_NORMAL; - m_state = 0; // normal, enabled - m_proportion = 0; - m_active = true; - m_dropDown = true; - m_sticky = true; - m_userData = 0; - m_alignment = wxALIGN_CENTER; - } - - wxAuiToolBarItem(const wxAuiToolBarItem& c) - { - Assign(c); - } - - wxAuiToolBarItem& operator=(const wxAuiToolBarItem& c) - { - Assign(c); - return *this; - } - - void Assign(const wxAuiToolBarItem& c) - { - m_window = c.m_window; - m_label = c.m_label; - m_bitmap = c.m_bitmap; - m_disabledBitmap = c.m_disabledBitmap; - m_hoverBitmap = c.m_hoverBitmap; - m_shortHelp = c.m_shortHelp; - m_longHelp = c.m_longHelp; - m_sizerItem = c.m_sizerItem; - m_minSize = c.m_minSize; - m_spacerPixels = c.m_spacerPixels; - m_toolId = c.m_toolId; - m_kind = c.m_kind; - m_state = c.m_state; - m_proportion = c.m_proportion; - m_active = c.m_active; - m_dropDown = c.m_dropDown; - m_sticky = c.m_sticky; - m_userData = c.m_userData; - m_alignment = c.m_alignment; - } - - - void SetWindow(wxWindow* w) { m_window = w; } - wxWindow* GetWindow() { return m_window; } - - void SetId(int newId) { m_toolId = newId; } - int GetId() const { return m_toolId; } - - void SetKind(int newKind) { m_kind = newKind; } - int GetKind() const { return m_kind; } - - void SetState(int newState) { m_state = newState; } - int GetState() const { return m_state; } - - void SetSizerItem(wxSizerItem* s) { m_sizerItem = s; } - wxSizerItem* GetSizerItem() const { return m_sizerItem; } - - void SetLabel(const wxString& s) { m_label = s; } - const wxString& GetLabel() const { return m_label; } - - void SetBitmap(const wxBitmap& bmp) { m_bitmap = bmp; } - const wxBitmap& GetBitmap() const { return m_bitmap; } - - void SetDisabledBitmap(const wxBitmap& bmp) { m_disabledBitmap = bmp; } - const wxBitmap& GetDisabledBitmap() const { return m_disabledBitmap; } - - void SetHoverBitmap(const wxBitmap& bmp) { m_hoverBitmap = bmp; } - const wxBitmap& GetHoverBitmap() const { return m_hoverBitmap; } - - void SetShortHelp(const wxString& s) { m_shortHelp = s; } - const wxString& GetShortHelp() const { return m_shortHelp; } - - void SetLongHelp(const wxString& s) { m_longHelp = s; } - const wxString& GetLongHelp() const { return m_longHelp; } - - void SetMinSize(const wxSize& s) { m_minSize = s; } - const wxSize& GetMinSize() const { return m_minSize; } - - void SetSpacerPixels(int s) { m_spacerPixels = s; } - int GetSpacerPixels() const { return m_spacerPixels; } - - void SetProportion(int p) { m_proportion = p; } - int GetProportion() const { return m_proportion; } - - void SetActive(bool b) { m_active = b; } - bool IsActive() const { return m_active; } - - void SetHasDropDown(bool b) - { - wxCHECK_RET( !b || m_kind == wxITEM_NORMAL, - wxS("Only normal tools can have drop downs") ); - - m_dropDown = b; - } - - bool HasDropDown() const { return m_dropDown; } - - void SetSticky(bool b) { m_sticky = b; } - bool IsSticky() const { return m_sticky; } - - void SetUserData(long l) { m_userData = l; } - long GetUserData() const { return m_userData; } - - void SetAlignment(int l) { m_alignment = l; } - int GetAlignment() const { return m_alignment; } - -private: - - wxWindow* m_window; // item's associated window - wxString m_label; // label displayed on the item - wxBitmap m_bitmap; // item's bitmap - wxBitmap m_disabledBitmap; // item's disabled bitmap - wxBitmap m_hoverBitmap; // item's hover bitmap - wxString m_shortHelp; // short help (for tooltip) - wxString m_longHelp; // long help (for status bar) - wxSizerItem* m_sizerItem; // sizer item - wxSize m_minSize; // item's minimum size - int m_spacerPixels; // size of a spacer - int m_toolId; // item's id - int m_kind; // item's kind - int m_state; // state - int m_proportion; // proportion - bool m_active; // true if the item is currently active - bool m_dropDown; // true if the item has a dropdown button - bool m_sticky; // overrides button states if true (always active) - long m_userData; // user-specified data - int m_alignment; // sizer alignment flag, defaults to wxCENTER, may be wxEXPAND or any other -}; - -#ifndef SWIG -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiToolBarItem, wxAuiToolBarItemArray, WXDLLIMPEXP_AUI); -#endif - - - - -// tab art class - -class WXDLLIMPEXP_AUI wxAuiToolBarArt -{ -public: - - wxAuiToolBarArt() { } - virtual ~wxAuiToolBarArt() { } - - virtual wxAuiToolBarArt* Clone() = 0; - virtual void SetFlags(unsigned int flags) = 0; - virtual unsigned int GetFlags() = 0; - virtual void SetFont(const wxFont& font) = 0; - virtual wxFont GetFont() = 0; - virtual void SetTextOrientation(int orientation) = 0; - virtual int GetTextOrientation() = 0; - - virtual void DrawBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) = 0; - - virtual void DrawPlainBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) = 0; - - virtual void DrawLabel( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item, - const wxRect& rect) = 0; - - virtual void DrawButton( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item, - const wxRect& rect) = 0; - - virtual void DrawDropDownButton( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item, - const wxRect& rect) = 0; - - virtual void DrawControlLabel( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item, - const wxRect& rect) = 0; - - virtual void DrawSeparator( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) = 0; - - virtual void DrawGripper( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) = 0; - - virtual void DrawOverflowButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - int state) = 0; - - virtual wxSize GetLabelSize( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item) = 0; - - virtual wxSize GetToolSize( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item) = 0; - - virtual int GetElementSize(int elementId) = 0; - virtual void SetElementSize(int elementId, int size) = 0; - - virtual int ShowDropDown( - wxWindow* wnd, - const wxAuiToolBarItemArray& items) = 0; -}; - - - -class WXDLLIMPEXP_AUI wxAuiGenericToolBarArt : public wxAuiToolBarArt -{ - -public: - - wxAuiGenericToolBarArt(); - virtual ~wxAuiGenericToolBarArt(); - - virtual wxAuiToolBarArt* Clone() wxOVERRIDE; - virtual void SetFlags(unsigned int flags) wxOVERRIDE; - virtual unsigned int GetFlags() wxOVERRIDE; - virtual void SetFont(const wxFont& font) wxOVERRIDE; - virtual wxFont GetFont() wxOVERRIDE; - virtual void SetTextOrientation(int orientation) wxOVERRIDE; - virtual int GetTextOrientation() wxOVERRIDE; - - virtual void DrawBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - virtual void DrawPlainBackground(wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - virtual void DrawLabel( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item, - const wxRect& rect) wxOVERRIDE; - - virtual void DrawButton( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item, - const wxRect& rect) wxOVERRIDE; - - virtual void DrawDropDownButton( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item, - const wxRect& rect) wxOVERRIDE; - - virtual void DrawControlLabel( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item, - const wxRect& rect) wxOVERRIDE; - - virtual void DrawSeparator( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - virtual void DrawGripper( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - virtual void DrawOverflowButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - int state) wxOVERRIDE; - - virtual wxSize GetLabelSize( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item) wxOVERRIDE; - - virtual wxSize GetToolSize( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item) wxOVERRIDE; - - virtual int GetElementSize(int element) wxOVERRIDE; - virtual void SetElementSize(int elementId, int size) wxOVERRIDE; - - virtual int ShowDropDown(wxWindow* wnd, - const wxAuiToolBarItemArray& items) wxOVERRIDE; - -protected: - - wxBitmap m_buttonDropDownBmp; - wxBitmap m_disabledButtonDropDownBmp; - wxBitmap m_overflowBmp; - wxBitmap m_disabledOverflowBmp; - wxColour m_baseColour; - wxColour m_highlightColour; - wxFont m_font; - unsigned int m_flags; - int m_textOrientation; - - wxPen m_gripperPen1; - wxPen m_gripperPen2; - wxPen m_gripperPen3; - - int m_separatorSize; - int m_gripperSize; - int m_overflowSize; -}; - - - - -class WXDLLIMPEXP_AUI wxAuiToolBar : public wxControl -{ -public: - wxAuiToolBar() { Init(); } - - wxAuiToolBar(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxAUI_TB_DEFAULT_STYLE) - { - Init(); - Create(parent, id, pos, size, style); - } - - virtual ~wxAuiToolBar(); - - bool Create(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxAUI_TB_DEFAULT_STYLE); - - virtual void SetWindowStyleFlag(long style) wxOVERRIDE; - - void SetArtProvider(wxAuiToolBarArt* art); - wxAuiToolBarArt* GetArtProvider() const; - - bool SetFont(const wxFont& font) wxOVERRIDE; - - - wxAuiToolBarItem* AddTool(int toolId, - const wxString& label, - const wxBitmap& bitmap, - const wxString& shortHelpString = wxEmptyString, - wxItemKind kind = wxITEM_NORMAL); - - wxAuiToolBarItem* AddTool(int toolId, - const wxString& label, - const wxBitmap& bitmap, - const wxBitmap& disabledBitmap, - wxItemKind kind, - const wxString& shortHelpString, - const wxString& longHelpString, - wxObject* clientData); - - wxAuiToolBarItem* AddTool(int toolId, - const wxBitmap& bitmap, - const wxBitmap& disabledBitmap, - bool toggle = false, - wxObject* clientData = NULL, - const wxString& shortHelpString = wxEmptyString, - const wxString& longHelpString = wxEmptyString) - { - return AddTool(toolId, - wxEmptyString, - bitmap, - disabledBitmap, - toggle ? wxITEM_CHECK : wxITEM_NORMAL, - shortHelpString, - longHelpString, - clientData); - } - - wxAuiToolBarItem* AddLabel(int toolId, - const wxString& label = wxEmptyString, - const int width = -1); - wxAuiToolBarItem* AddControl(wxControl* control, - const wxString& label = wxEmptyString); - wxAuiToolBarItem* AddSeparator(); - wxAuiToolBarItem* AddSpacer(int pixels); - wxAuiToolBarItem* AddStretchSpacer(int proportion = 1); - - bool Realize(); - - wxControl* FindControl(int windowId); - wxAuiToolBarItem* FindToolByPosition(wxCoord x, wxCoord y) const; - wxAuiToolBarItem* FindToolByIndex(int idx) const; - wxAuiToolBarItem* FindTool(int toolId) const; - - void ClearTools() { Clear() ; } - void Clear(); - bool DeleteTool(int toolId); - bool DeleteByIndex(int toolId); - - size_t GetToolCount() const; - int GetToolPos(int toolId) const { return GetToolIndex(toolId); } - int GetToolIndex(int toolId) const; - bool GetToolFits(int toolId) const; - wxRect GetToolRect(int toolId) const; - bool GetToolFitsByIndex(int toolId) const; - bool GetToolBarFits() const; - - void SetMargins(const wxSize& size) { SetMargins(size.x, size.x, size.y, size.y); } - void SetMargins(int x, int y) { SetMargins(x, x, y, y); } - void SetMargins(int left, int right, int top, int bottom); - - void SetToolBitmapSize(const wxSize& size); - wxSize GetToolBitmapSize() const; - - bool GetOverflowVisible() const; - void SetOverflowVisible(bool visible); - - bool GetGripperVisible() const; - void SetGripperVisible(bool visible); - - void ToggleTool(int toolId, bool state); - bool GetToolToggled(int toolId) const; - - void EnableTool(int toolId, bool state); - bool GetToolEnabled(int toolId) const; - - void SetToolDropDown(int toolId, bool dropdown); - bool GetToolDropDown(int toolId) const; - - void SetToolBorderPadding(int padding); - int GetToolBorderPadding() const; - - void SetToolTextOrientation(int orientation); - int GetToolTextOrientation() const; - - void SetToolPacking(int packing); - int GetToolPacking() const; - - void SetToolProportion(int toolId, int proportion); - int GetToolProportion(int toolId) const; - - void SetToolSeparation(int separation); - int GetToolSeparation() const; - - void SetToolSticky(int toolId, bool sticky); - bool GetToolSticky(int toolId) const; - - wxString GetToolLabel(int toolId) const; - void SetToolLabel(int toolId, const wxString& label); - - wxBitmap GetToolBitmap(int toolId) const; - void SetToolBitmap(int toolId, const wxBitmap& bitmap); - - wxString GetToolShortHelp(int toolId) const; - void SetToolShortHelp(int toolId, const wxString& helpString); - - wxString GetToolLongHelp(int toolId) const; - void SetToolLongHelp(int toolId, const wxString& helpString); - - void SetCustomOverflowItems(const wxAuiToolBarItemArray& prepend, - const wxAuiToolBarItemArray& append); - - // get size of hint rectangle for a particular dock location - wxSize GetHintSize(int dockDirection) const; - bool IsPaneValid(const wxAuiPaneInfo& pane) const; - - // Override to call DoIdleUpdate(). - virtual void UpdateWindowUI(long flags = wxUPDATE_UI_NONE) wxOVERRIDE; - -protected: - void Init(); - - virtual void OnCustomRender(wxDC& WXUNUSED(dc), - const wxAuiToolBarItem& WXUNUSED(item), - const wxRect& WXUNUSED(rect)) { } - -protected: - - void DoIdleUpdate(); - void SetOrientation(int orientation); - void SetHoverItem(wxAuiToolBarItem* item); - void SetPressedItem(wxAuiToolBarItem* item); - void RefreshOverflowState(); - - int GetOverflowState() const; - wxRect GetOverflowRect() const; - wxSize GetLabelSize(const wxString& label); - wxAuiToolBarItem* FindToolByPositionWithPacking(wxCoord x, wxCoord y) const; - - void DoSetSize(int x, - int y, - int width, - int height, - int sizeFlags = wxSIZE_AUTO) wxOVERRIDE; - -protected: // handlers - - void OnSize(wxSizeEvent& evt); - void OnIdle(wxIdleEvent& evt); - void OnPaint(wxPaintEvent& evt); - void OnEraseBackground(wxEraseEvent& evt); - void OnLeftDown(wxMouseEvent& evt); - void OnLeftUp(wxMouseEvent& evt); - void OnRightDown(wxMouseEvent& evt); - void OnRightUp(wxMouseEvent& evt); - void OnMiddleDown(wxMouseEvent& evt); - void OnMiddleUp(wxMouseEvent& evt); - void OnMotion(wxMouseEvent& evt); - void OnLeaveWindow(wxMouseEvent& evt); - void OnCaptureLost(wxMouseCaptureLostEvent& evt); - void OnSetCursor(wxSetCursorEvent& evt); - -protected: - - wxAuiToolBarItemArray m_items; // array of toolbar items - wxAuiToolBarArt* m_art; // art provider - wxBoxSizer* m_sizer; // main sizer for toolbar - wxAuiToolBarItem* m_actionItem; // item that's being acted upon (pressed) - wxAuiToolBarItem* m_tipItem; // item that has its tooltip shown - wxBitmap m_bitmap; // double-buffer bitmap - wxSizerItem* m_gripperSizerItem; - wxSizerItem* m_overflowSizerItem; - wxSize m_absoluteMinSize; - wxPoint m_actionPos; // position of left-mouse down - wxAuiToolBarItemArray m_customOverflowPrepend; - wxAuiToolBarItemArray m_customOverflowAppend; - - int m_buttonWidth; - int m_buttonHeight; - int m_sizerElementCount; - int m_leftPadding; - int m_rightPadding; - int m_topPadding; - int m_bottomPadding; - int m_toolPacking; - int m_toolBorderPadding; - int m_toolTextOrientation; - int m_overflowState; - bool m_dragging; - bool m_gripperVisible; - bool m_overflowVisible; - - bool RealizeHelper(wxClientDC& dc, bool horizontal); - static bool IsPaneValid(long style, const wxAuiPaneInfo& pane); - bool IsPaneValid(long style) const; - void SetArtFlags() const; - wxOrientation m_orientation; - wxSize m_horzHintSize; - wxSize m_vertHintSize; - -private: - // Common part of OnLeaveWindow() and OnCaptureLost(). - void DoResetMouseState(); - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_CLASS(wxAuiToolBar); -}; - - - - -// wx event machinery - -#ifndef SWIG - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUITOOLBAR_OVERFLOW_CLICK, wxAuiToolBarEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUITOOLBAR_RIGHT_CLICK, wxAuiToolBarEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUITOOLBAR_MIDDLE_CLICK, wxAuiToolBarEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUITOOLBAR_BEGIN_DRAG, wxAuiToolBarEvent ); - -typedef void (wxEvtHandler::*wxAuiToolBarEventFunction)(wxAuiToolBarEvent&); - -#define wxAuiToolBarEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxAuiToolBarEventFunction, func) - -#define EVT_AUITOOLBAR_TOOL_DROPDOWN(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUITOOLBAR_TOOL_DROPDOWN, winid, wxAuiToolBarEventHandler(fn)) -#define EVT_AUITOOLBAR_OVERFLOW_CLICK(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUITOOLBAR_OVERFLOW_CLICK, winid, wxAuiToolBarEventHandler(fn)) -#define EVT_AUITOOLBAR_RIGHT_CLICK(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUITOOLBAR_RIGHT_CLICK, winid, wxAuiToolBarEventHandler(fn)) -#define EVT_AUITOOLBAR_MIDDLE_CLICK(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUITOOLBAR_MIDDLE_CLICK, winid, wxAuiToolBarEventHandler(fn)) -#define EVT_AUITOOLBAR_BEGIN_DRAG(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUITOOLBAR_BEGIN_DRAG, winid, wxAuiToolBarEventHandler(fn)) - -#else - -// wxpython/swig event work -%constant wxEventType wxEVT_AUITOOLBAR_TOOL_DROPDOWN; -%constant wxEventType wxEVT_AUITOOLBAR_OVERFLOW_CLICK; -%constant wxEventType wxEVT_AUITOOLBAR_RIGHT_CLICK; -%constant wxEventType wxEVT_AUITOOLBAR_MIDDLE_CLICK; -%constant wxEventType wxEVT_AUITOOLBAR_BEGIN_DRAG; - -%pythoncode { - EVT_AUITOOLBAR_TOOL_DROPDOWN = wx.PyEventBinder( wxEVT_AUITOOLBAR_TOOL_DROPDOWN, 1 ) - EVT_AUITOOLBAR_OVERFLOW_CLICK = wx.PyEventBinder( wxEVT_AUITOOLBAR_OVERFLOW_CLICK, 1 ) - EVT_AUITOOLBAR_RIGHT_CLICK = wx.PyEventBinder( wxEVT_AUITOOLBAR_RIGHT_CLICK, 1 ) - EVT_AUITOOLBAR_MIDDLE_CLICK = wx.PyEventBinder( wxEVT_AUITOOLBAR_MIDDLE_CLICK, 1 ) - EVT_AUITOOLBAR_BEGIN_DRAG = wx.PyEventBinder( wxEVT_AUITOOLBAR_BEGIN_DRAG, 1 ) -} -#endif // SWIG - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN wxEVT_AUITOOLBAR_TOOL_DROPDOWN -#define wxEVT_COMMAND_AUITOOLBAR_OVERFLOW_CLICK wxEVT_AUITOOLBAR_OVERFLOW_CLICK -#define wxEVT_COMMAND_AUITOOLBAR_RIGHT_CLICK wxEVT_AUITOOLBAR_RIGHT_CLICK -#define wxEVT_COMMAND_AUITOOLBAR_MIDDLE_CLICK wxEVT_AUITOOLBAR_MIDDLE_CLICK -#define wxEVT_COMMAND_AUITOOLBAR_BEGIN_DRAG wxEVT_AUITOOLBAR_BEGIN_DRAG - -#ifdef __WXMSW__ - #define wxHAS_NATIVE_TOOLBAR_ART - #include "wx/aui/barartmsw.h" - #define wxAuiDefaultToolBarArt wxAuiMSWToolBarArt -#endif - -#ifndef wxHAS_NATIVE_TOOLBAR_ART - #define wxAuiDefaultToolBarArt wxAuiGenericToolBarArt -#endif - -#endif // wxUSE_AUI -#endif // _WX_AUIBAR_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/auibook.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/auibook.h deleted file mode 100644 index c6d232e4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/auibook.h +++ /dev/null @@ -1,559 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// Name: wx/aui/auibook.h -// Purpose: wxaui: wx advanced user interface - notebook -// Author: Benjamin I. Williams -// Modified by: Jens Lody -// Created: 2006-06-28 -// Copyright: (C) Copyright 2006, Kirix Corporation, All Rights Reserved. -// Licence: wxWindows Library Licence, Version 3.1 -/////////////////////////////////////////////////////////////////////////////// - - - -#ifndef _WX_AUINOTEBOOK_H_ -#define _WX_AUINOTEBOOK_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_AUI - -#include "wx/aui/tabart.h" -#include "wx/aui/framemanager.h" -#include "wx/bookctrl.h" -#include "wx/containr.h" - - -class wxAuiNotebook; - - -enum wxAuiNotebookOption -{ - wxAUI_NB_TOP = 1 << 0, - wxAUI_NB_LEFT = 1 << 1, // not implemented yet - wxAUI_NB_RIGHT = 1 << 2, // not implemented yet - wxAUI_NB_BOTTOM = 1 << 3, - wxAUI_NB_TAB_SPLIT = 1 << 4, - wxAUI_NB_TAB_MOVE = 1 << 5, - wxAUI_NB_TAB_EXTERNAL_MOVE = 1 << 6, - wxAUI_NB_TAB_FIXED_WIDTH = 1 << 7, - wxAUI_NB_SCROLL_BUTTONS = 1 << 8, - wxAUI_NB_WINDOWLIST_BUTTON = 1 << 9, - wxAUI_NB_CLOSE_BUTTON = 1 << 10, - wxAUI_NB_CLOSE_ON_ACTIVE_TAB = 1 << 11, - wxAUI_NB_CLOSE_ON_ALL_TABS = 1 << 12, - wxAUI_NB_MIDDLE_CLICK_CLOSE = 1 << 13, - - wxAUI_NB_DEFAULT_STYLE = wxAUI_NB_TOP | - wxAUI_NB_TAB_SPLIT | - wxAUI_NB_TAB_MOVE | - wxAUI_NB_SCROLL_BUTTONS | - wxAUI_NB_CLOSE_ON_ACTIVE_TAB | - wxAUI_NB_MIDDLE_CLICK_CLOSE -}; - - - - -// aui notebook event class - -class WXDLLIMPEXP_AUI wxAuiNotebookEvent : public wxBookCtrlEvent -{ -public: - wxAuiNotebookEvent(wxEventType commandType = wxEVT_NULL, - int winId = 0) - : wxBookCtrlEvent(commandType, winId) - { - m_dragSource = NULL; - } -#ifndef SWIG - wxAuiNotebookEvent(const wxAuiNotebookEvent& c) : wxBookCtrlEvent(c) - { - m_dragSource = c.m_dragSource; - } -#endif - wxEvent *Clone() const wxOVERRIDE { return new wxAuiNotebookEvent(*this); } - - void SetDragSource(wxAuiNotebook* s) { m_dragSource = s; } - wxAuiNotebook* GetDragSource() const { return m_dragSource; } - -private: - wxAuiNotebook* m_dragSource; - -#ifndef SWIG -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxAuiNotebookEvent); -#endif -}; - - -class WXDLLIMPEXP_AUI wxAuiNotebookPage -{ -public: - wxWindow* window; // page's associated window - wxString caption; // caption displayed on the tab - wxString tooltip; // tooltip displayed when hovering over tab title - wxBitmap bitmap; // tab's bitmap - wxRect rect; // tab's hit rectangle - bool active; // true if the page is currently active - bool hover; // true if mouse hovering over tab -}; - -class WXDLLIMPEXP_AUI wxAuiTabContainerButton -{ -public: - - int id; // button's id - int curState; // current state (normal, hover, pressed, etc.) - int location; // buttons location (wxLEFT, wxRIGHT, or wxCENTER) - wxBitmap bitmap; // button's hover bitmap - wxBitmap disBitmap; // button's disabled bitmap - wxRect rect; // button's hit rectangle -}; - - -#ifndef SWIG -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiNotebookPage, wxAuiNotebookPageArray, WXDLLIMPEXP_AUI); -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiTabContainerButton, wxAuiTabContainerButtonArray, WXDLLIMPEXP_AUI); -#endif - - -class WXDLLIMPEXP_AUI wxAuiTabContainer -{ -public: - - wxAuiTabContainer(); - virtual ~wxAuiTabContainer(); - - void SetArtProvider(wxAuiTabArt* art); - wxAuiTabArt* GetArtProvider() const; - - void SetFlags(unsigned int flags); - unsigned int GetFlags() const; - - bool AddPage(wxWindow* page, const wxAuiNotebookPage& info); - bool InsertPage(wxWindow* page, const wxAuiNotebookPage& info, size_t idx); - bool MovePage(wxWindow* page, size_t newIdx); - bool RemovePage(wxWindow* page); - bool SetActivePage(wxWindow* page); - bool SetActivePage(size_t page); - void SetNoneActive(); - int GetActivePage() const; - bool TabHitTest(int x, int y, wxWindow** hit) const; - bool ButtonHitTest(int x, int y, wxAuiTabContainerButton** hit) const; - wxWindow* GetWindowFromIdx(size_t idx) const; - int GetIdxFromWindow(wxWindow* page) const; - size_t GetPageCount() const; - wxAuiNotebookPage& GetPage(size_t idx); - const wxAuiNotebookPage& GetPage(size_t idx) const; - wxAuiNotebookPageArray& GetPages(); - void SetNormalFont(const wxFont& normalFont); - void SetSelectedFont(const wxFont& selectedFont); - void SetMeasuringFont(const wxFont& measuringFont); - void SetColour(const wxColour& colour); - void SetActiveColour(const wxColour& colour); - void DoShowHide(); - void SetRect(const wxRect& rect); - - void RemoveButton(int id); - void AddButton(int id, - int location, - const wxBitmap& normalBitmap = wxNullBitmap, - const wxBitmap& disabledBitmap = wxNullBitmap); - - size_t GetTabOffset() const; - void SetTabOffset(size_t offset); - - // Is the tab visible? - bool IsTabVisible(int tabPage, int tabOffset, wxDC* dc, wxWindow* wnd); - - // Make the tab visible if it wasn't already - void MakeTabVisible(int tabPage, wxWindow* win); - -protected: - - virtual void Render(wxDC* dc, wxWindow* wnd); - -protected: - - wxAuiTabArt* m_art; - wxAuiNotebookPageArray m_pages; - wxAuiTabContainerButtonArray m_buttons; - wxAuiTabContainerButtonArray m_tabCloseButtons; - wxRect m_rect; - size_t m_tabOffset; - unsigned int m_flags; -}; - - - -class WXDLLIMPEXP_AUI wxAuiTabCtrl : public wxControl, - public wxAuiTabContainer -{ -public: - - wxAuiTabCtrl(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0); - - ~wxAuiTabCtrl(); - - bool IsDragging() const { return m_isDragging; } - -protected: - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - void OnPaint(wxPaintEvent& evt); - void OnEraseBackground(wxEraseEvent& evt); - void OnSize(wxSizeEvent& evt); - void OnLeftDown(wxMouseEvent& evt); - void OnLeftDClick(wxMouseEvent& evt); - void OnLeftUp(wxMouseEvent& evt); - void OnMiddleDown(wxMouseEvent& evt); - void OnMiddleUp(wxMouseEvent& evt); - void OnRightDown(wxMouseEvent& evt); - void OnRightUp(wxMouseEvent& evt); - void OnMotion(wxMouseEvent& evt); - void OnLeaveWindow(wxMouseEvent& evt); - void OnButton(wxAuiNotebookEvent& evt); - void OnSetFocus(wxFocusEvent& event); - void OnKillFocus(wxFocusEvent& event); - void OnChar(wxKeyEvent& event); - void OnCaptureLost(wxMouseCaptureLostEvent& evt); - -protected: - - wxPoint m_clickPt; - wxWindow* m_clickTab; - bool m_isDragging; - wxAuiTabContainerButton* m_hoverButton; - wxAuiTabContainerButton* m_pressedButton; - - void SetHoverTab(wxWindow* wnd); - -#ifndef SWIG - wxDECLARE_CLASS(wxAuiTabCtrl); - wxDECLARE_EVENT_TABLE(); -#endif -}; - - - - -class WXDLLIMPEXP_AUI wxAuiNotebook : public wxNavigationEnabled -{ - -public: - - wxAuiNotebook() { Init(); } - - wxAuiNotebook(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxAUI_NB_DEFAULT_STYLE) - { - Init(); - Create(parent, id, pos, size, style); - } - - virtual ~wxAuiNotebook(); - - bool Create(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0); - - void SetWindowStyleFlag(long style) wxOVERRIDE; - void SetArtProvider(wxAuiTabArt* art); - wxAuiTabArt* GetArtProvider() const; - - virtual void SetUniformBitmapSize(const wxSize& size); - virtual void SetTabCtrlHeight(int height); - - bool AddPage(wxWindow* page, - const wxString& caption, - bool select = false, - const wxBitmap& bitmap = wxNullBitmap); - - bool InsertPage(size_t pageIdx, - wxWindow* page, - const wxString& caption, - bool select = false, - const wxBitmap& bitmap = wxNullBitmap); - - bool DeletePage(size_t page) wxOVERRIDE; - bool RemovePage(size_t page) wxOVERRIDE; - - virtual size_t GetPageCount() const wxOVERRIDE; - virtual wxWindow* GetPage(size_t pageIdx) const wxOVERRIDE; - int GetPageIndex(wxWindow* pageWnd) const; - - bool SetPageText(size_t page, const wxString& text) wxOVERRIDE; - wxString GetPageText(size_t pageIdx) const wxOVERRIDE; - - bool SetPageToolTip(size_t page, const wxString& text); - wxString GetPageToolTip(size_t pageIdx) const; - - bool SetPageBitmap(size_t page, const wxBitmap& bitmap); - wxBitmap GetPageBitmap(size_t pageIdx) const; - - int SetSelection(size_t newPage) wxOVERRIDE; - int GetSelection() const wxOVERRIDE; - - virtual void Split(size_t page, int direction); - - const wxAuiManager& GetAuiManager() const { return m_mgr; } - - // Sets the normal font - void SetNormalFont(const wxFont& font); - - // Sets the selected tab font - void SetSelectedFont(const wxFont& font); - - // Sets the measuring font - void SetMeasuringFont(const wxFont& font); - - // Sets the tab font - virtual bool SetFont(const wxFont& font) wxOVERRIDE; - - // Gets the tab control height - int GetTabCtrlHeight() const; - - // Gets the height of the notebook for a given page height - int GetHeightForPageHeight(int pageHeight); - - // Shows the window menu - bool ShowWindowMenu(); - - // we do have multiple pages - virtual bool HasMultiplePages() const wxOVERRIDE { return true; } - - // we don't want focus for ourselves - // virtual bool AcceptsFocus() const { return false; } - - //wxBookCtrlBase functions - - virtual void SetPageSize (const wxSize &size) wxOVERRIDE; - virtual int HitTest (const wxPoint &pt, long *flags=NULL) const wxOVERRIDE; - - virtual int GetPageImage(size_t n) const wxOVERRIDE; - virtual bool SetPageImage(size_t n, int imageId) wxOVERRIDE; - - virtual int ChangeSelection(size_t n) wxOVERRIDE; - - virtual bool AddPage(wxWindow *page, const wxString &text, bool select, - int imageId) wxOVERRIDE; - virtual bool DeleteAllPages() wxOVERRIDE; - virtual bool InsertPage(size_t index, wxWindow *page, const wxString &text, - bool select, int imageId) wxOVERRIDE; - -protected: - // Common part of all ctors. - void Init(); - - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - // Redo sizing after thawing - virtual void DoThaw() wxOVERRIDE; - - // these can be overridden - - // update the height, return true if it was done or false if the new height - // calculated by CalculateTabCtrlHeight() is the same as the old one - virtual bool UpdateTabCtrlHeight(); - - virtual int CalculateTabCtrlHeight(); - virtual wxSize CalculateNewSplitSize(); - - // remove the page and return a pointer to it - virtual wxWindow *DoRemovePage(size_t WXUNUSED(page)) wxOVERRIDE { return NULL; } - - //A general selection function - virtual int DoModifySelection(size_t n, bool events); - -protected: - - void DoSizing(); - void InitNotebook(long style); - wxAuiTabCtrl* GetTabCtrlFromPoint(const wxPoint& pt); - wxWindow* GetTabFrameFromTabCtrl(wxWindow* tabCtrl); - wxAuiTabCtrl* GetActiveTabCtrl(); - bool FindTab(wxWindow* page, wxAuiTabCtrl** ctrl, int* idx); - void RemoveEmptyTabFrames(); - void UpdateHintWindowSize(); - -protected: - - void OnChildFocusNotebook(wxChildFocusEvent& evt); - void OnRender(wxAuiManagerEvent& evt); - void OnSize(wxSizeEvent& evt); - void OnTabClicked(wxAuiNotebookEvent& evt); - void OnTabBeginDrag(wxAuiNotebookEvent& evt); - void OnTabDragMotion(wxAuiNotebookEvent& evt); - void OnTabEndDrag(wxAuiNotebookEvent& evt); - void OnTabCancelDrag(wxAuiNotebookEvent& evt); - void OnTabButton(wxAuiNotebookEvent& evt); - void OnTabMiddleDown(wxAuiNotebookEvent& evt); - void OnTabMiddleUp(wxAuiNotebookEvent& evt); - void OnTabRightDown(wxAuiNotebookEvent& evt); - void OnTabRightUp(wxAuiNotebookEvent& evt); - void OnTabBgDClick(wxAuiNotebookEvent& evt); - void OnNavigationKeyNotebook(wxNavigationKeyEvent& event); - - // set selection to the given window (which must be non-NULL and be one of - // our pages, otherwise an assert is raised) - void SetSelectionToWindow(wxWindow *win); - void SetSelectionToPage(const wxAuiNotebookPage& page) - { - SetSelectionToWindow(page.window); - } - -protected: - - wxAuiManager m_mgr; - wxAuiTabContainer m_tabs; - int m_curPage; - int m_tabIdCounter; - wxWindow* m_dummyWnd; - - wxSize m_requestedBmpSize; - int m_requestedTabCtrlHeight; - wxFont m_selectedFont; - wxFont m_normalFont; - int m_tabCtrlHeight; - - int m_lastDragX; - unsigned int m_flags; - -#ifndef SWIG - wxDECLARE_CLASS(wxAuiNotebook); - wxDECLARE_EVENT_TABLE(); -#endif -}; - - - - -// wx event machinery - -#ifndef SWIG - -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_AUI, wxEVT_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_AUI, wxEVT_AUINOTEBOOK_PAGE_CHANGED, wxAuiNotebookEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_AUI, wxEVT_AUINOTEBOOK_PAGE_CHANGING, wxAuiNotebookEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_AUI, wxEVT_AUINOTEBOOK_PAGE_CLOSED, wxAuiNotebookEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_AUI, wxEVT_AUINOTEBOOK_BUTTON, wxAuiNotebookEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_AUI, wxEVT_AUINOTEBOOK_BEGIN_DRAG, wxAuiNotebookEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_AUI, wxEVT_AUINOTEBOOK_END_DRAG, wxAuiNotebookEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_AUI, wxEVT_AUINOTEBOOK_DRAG_MOTION, wxAuiNotebookEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_AUI, wxEVT_AUINOTEBOOK_ALLOW_DND, wxAuiNotebookEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_AUI, wxEVT_AUINOTEBOOK_TAB_MIDDLE_DOWN, wxAuiNotebookEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_AUI, wxEVT_AUINOTEBOOK_TAB_MIDDLE_UP, wxAuiNotebookEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_AUI, wxEVT_AUINOTEBOOK_TAB_RIGHT_DOWN, wxAuiNotebookEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_AUI, wxEVT_AUINOTEBOOK_TAB_RIGHT_UP, wxAuiNotebookEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_AUI, wxEVT_AUINOTEBOOK_DRAG_DONE, wxAuiNotebookEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_AUI, wxEVT_AUINOTEBOOK_BG_DCLICK, wxAuiNotebookEvent); - -typedef void (wxEvtHandler::*wxAuiNotebookEventFunction)(wxAuiNotebookEvent&); - -#define wxAuiNotebookEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxAuiNotebookEventFunction, func) - -#define EVT_AUINOTEBOOK_PAGE_CLOSE(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUINOTEBOOK_PAGE_CLOSE, winid, wxAuiNotebookEventHandler(fn)) -#define EVT_AUINOTEBOOK_PAGE_CLOSED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUINOTEBOOK_PAGE_CLOSED, winid, wxAuiNotebookEventHandler(fn)) -#define EVT_AUINOTEBOOK_PAGE_CHANGED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUINOTEBOOK_PAGE_CHANGED, winid, wxAuiNotebookEventHandler(fn)) -#define EVT_AUINOTEBOOK_PAGE_CHANGING(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUINOTEBOOK_PAGE_CHANGING, winid, wxAuiNotebookEventHandler(fn)) -#define EVT_AUINOTEBOOK_BUTTON(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUINOTEBOOK_BUTTON, winid, wxAuiNotebookEventHandler(fn)) -#define EVT_AUINOTEBOOK_BEGIN_DRAG(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUINOTEBOOK_BEGIN_DRAG, winid, wxAuiNotebookEventHandler(fn)) -#define EVT_AUINOTEBOOK_END_DRAG(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUINOTEBOOK_END_DRAG, winid, wxAuiNotebookEventHandler(fn)) -#define EVT_AUINOTEBOOK_DRAG_MOTION(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUINOTEBOOK_DRAG_MOTION, winid, wxAuiNotebookEventHandler(fn)) -#define EVT_AUINOTEBOOK_ALLOW_DND(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUINOTEBOOK_ALLOW_DND, winid, wxAuiNotebookEventHandler(fn)) -#define EVT_AUINOTEBOOK_DRAG_DONE(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUINOTEBOOK_DRAG_DONE, winid, wxAuiNotebookEventHandler(fn)) -#define EVT_AUINOTEBOOK_TAB_MIDDLE_DOWN(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUINOTEBOOK_TAB_MIDDLE_DOWN, winid, wxAuiNotebookEventHandler(fn)) -#define EVT_AUINOTEBOOK_TAB_MIDDLE_UP(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUINOTEBOOK_TAB_MIDDLE_UP, winid, wxAuiNotebookEventHandler(fn)) -#define EVT_AUINOTEBOOK_TAB_RIGHT_DOWN(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUINOTEBOOK_TAB_RIGHT_DOWN, winid, wxAuiNotebookEventHandler(fn)) -#define EVT_AUINOTEBOOK_TAB_RIGHT_UP(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUINOTEBOOK_TAB_RIGHT_UP, winid, wxAuiNotebookEventHandler(fn)) -#define EVT_AUINOTEBOOK_BG_DCLICK(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_AUINOTEBOOK_BG_DCLICK, winid, wxAuiNotebookEventHandler(fn)) -#else - -// wxpython/swig event work -%constant wxEventType wxEVT_AUINOTEBOOK_PAGE_CLOSE; -%constant wxEventType wxEVT_AUINOTEBOOK_PAGE_CLOSED; -%constant wxEventType wxEVT_AUINOTEBOOK_PAGE_CHANGED; -%constant wxEventType wxEVT_AUINOTEBOOK_PAGE_CHANGING; -%constant wxEventType wxEVT_AUINOTEBOOK_BUTTON; -%constant wxEventType wxEVT_AUINOTEBOOK_BEGIN_DRAG; -%constant wxEventType wxEVT_AUINOTEBOOK_END_DRAG; -%constant wxEventType wxEVT_AUINOTEBOOK_DRAG_MOTION; -%constant wxEventType wxEVT_AUINOTEBOOK_ALLOW_DND; -%constant wxEventType wxEVT_AUINOTEBOOK_DRAG_DONE; -%constant wxEventType wxEVT_AUINOTEBOOK_TAB_MIDDLE_DOWN; -%constant wxEventType wxEVT_AUINOTEBOOK_TAB_MIDDLE_UP; -%constant wxEventType wxEVT_AUINOTEBOOK_TAB_RIGHT_DOWN; -%constant wxEventType wxEVT_AUINOTEBOOK_TAB_RIGHT_UP; -%constant wxEventType wxEVT_AUINOTEBOOK_BG_DCLICK; - -%pythoncode { - EVT_AUINOTEBOOK_PAGE_CLOSE = wx.PyEventBinder( wxEVT_AUINOTEBOOK_PAGE_CLOSE, 1 ) - EVT_AUINOTEBOOK_PAGE_CLOSED = wx.PyEventBinder( wxEVT_AUINOTEBOOK_PAGE_CLOSED, 1 ) - EVT_AUINOTEBOOK_PAGE_CHANGED = wx.PyEventBinder( wxEVT_AUINOTEBOOK_PAGE_CHANGED, 1 ) - EVT_AUINOTEBOOK_PAGE_CHANGING = wx.PyEventBinder( wxEVT_AUINOTEBOOK_PAGE_CHANGING, 1 ) - EVT_AUINOTEBOOK_BUTTON = wx.PyEventBinder( wxEVT_AUINOTEBOOK_BUTTON, 1 ) - EVT_AUINOTEBOOK_BEGIN_DRAG = wx.PyEventBinder( wxEVT_AUINOTEBOOK_BEGIN_DRAG, 1 ) - EVT_AUINOTEBOOK_END_DRAG = wx.PyEventBinder( wxEVT_AUINOTEBOOK_END_DRAG, 1 ) - EVT_AUINOTEBOOK_DRAG_MOTION = wx.PyEventBinder( wxEVT_AUINOTEBOOK_DRAG_MOTION, 1 ) - EVT_AUINOTEBOOK_ALLOW_DND = wx.PyEventBinder( wxEVT_AUINOTEBOOK_ALLOW_DND, 1 ) - EVT_AUINOTEBOOK_DRAG_DONE = wx.PyEventBinder( wxEVT_AUINOTEBOOK_DRAG_DONE, 1 ) - EVT__AUINOTEBOOK_TAB_MIDDLE_DOWN = wx.PyEventBinder( wxEVT_AUINOTEBOOK_TAB_MIDDLE_DOWN, 1 ) - EVT__AUINOTEBOOK_TAB_MIDDLE_UP = wx.PyEventBinder( wxEVT_AUINOTEBOOK_TAB_MIDDLE_UP, 1 ) - EVT__AUINOTEBOOK_TAB_RIGHT_DOWN = wx.PyEventBinder( wxEVT_AUINOTEBOOK_TAB_RIGHT_DOWN, 1 ) - EVT__AUINOTEBOOK_TAB_RIGHT_UP = wx.PyEventBinder( wxEVT_AUINOTEBOOK_TAB_RIGHT_UP, 1 ) - EVT_AUINOTEBOOK_BG_DCLICK = wx.PyEventBinder( wxEVT_AUINOTEBOOK_BG_DCLICK, 1 ) -} -#endif - - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE wxEVT_AUINOTEBOOK_PAGE_CLOSE -#define wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED wxEVT_AUINOTEBOOK_PAGE_CLOSED -#define wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED wxEVT_AUINOTEBOOK_PAGE_CHANGED -#define wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING wxEVT_AUINOTEBOOK_PAGE_CHANGING -#define wxEVT_COMMAND_AUINOTEBOOK_BUTTON wxEVT_AUINOTEBOOK_BUTTON -#define wxEVT_COMMAND_AUINOTEBOOK_BEGIN_DRAG wxEVT_AUINOTEBOOK_BEGIN_DRAG -#define wxEVT_COMMAND_AUINOTEBOOK_END_DRAG wxEVT_AUINOTEBOOK_END_DRAG -#define wxEVT_COMMAND_AUINOTEBOOK_DRAG_MOTION wxEVT_AUINOTEBOOK_DRAG_MOTION -#define wxEVT_COMMAND_AUINOTEBOOK_ALLOW_DND wxEVT_AUINOTEBOOK_ALLOW_DND -#define wxEVT_COMMAND_AUINOTEBOOK_DRAG_DONE wxEVT_AUINOTEBOOK_DRAG_DONE -#define wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN wxEVT_AUINOTEBOOK_TAB_MIDDLE_DOWN -#define wxEVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP wxEVT_AUINOTEBOOK_TAB_MIDDLE_UP -#define wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN wxEVT_AUINOTEBOOK_TAB_RIGHT_DOWN -#define wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP wxEVT_AUINOTEBOOK_TAB_RIGHT_UP -#define wxEVT_COMMAND_AUINOTEBOOK_BG_DCLICK wxEVT_AUINOTEBOOK_BG_DCLICK -#define wxEVT_COMMAND_AUINOTEBOOK_CANCEL_DRAG wxEVT_AUINOTEBOOK_CANCEL_DRAG - -#endif // wxUSE_AUI -#endif // _WX_AUINOTEBOOK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/barartmsw.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/barartmsw.h deleted file mode 100644 index 59602f00..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/barartmsw.h +++ /dev/null @@ -1,86 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/aui/barartmsw.h -// Purpose: Interface of wxAuiMSWToolBarArt -// Author: Tobias Taschner -// Created: 2015-09-22 -// Copyright: (c) 2015 wxWidgets development team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_AUI_BARART_MSW_H_ -#define _WX_AUI_BARART_MSW_H_ - -class WXDLLIMPEXP_AUI wxAuiMSWToolBarArt : public wxAuiGenericToolBarArt -{ -public: - wxAuiMSWToolBarArt(); - - virtual wxAuiToolBarArt* Clone() wxOVERRIDE; - - virtual void DrawBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - virtual void DrawLabel( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item, - const wxRect& rect) wxOVERRIDE; - - virtual void DrawButton( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item, - const wxRect& rect) wxOVERRIDE; - - virtual void DrawDropDownButton( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item, - const wxRect& rect) wxOVERRIDE; - - virtual void DrawControlLabel( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item, - const wxRect& rect) wxOVERRIDE; - - virtual void DrawSeparator( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - virtual void DrawGripper( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - virtual void DrawOverflowButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - int state) wxOVERRIDE; - - virtual wxSize GetLabelSize( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item) wxOVERRIDE; - - virtual wxSize GetToolSize( - wxDC& dc, - wxWindow* wnd, - const wxAuiToolBarItem& item) wxOVERRIDE; - - virtual int GetElementSize(int element) wxOVERRIDE; - virtual void SetElementSize(int elementId, int size) wxOVERRIDE; - - virtual int ShowDropDown(wxWindow* wnd, - const wxAuiToolBarItemArray& items) wxOVERRIDE; - -private: - bool m_themed; - wxSize m_buttonSize; -}; - -#endif // _WX_AUI_BARART_MSW_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/dockart.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/dockart.h deleted file mode 100644 index 744cad56..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/dockart.h +++ /dev/null @@ -1,178 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/aui/dockart.h -// Purpose: wxaui: wx advanced user interface - docking window manager -// Author: Benjamin I. Williams -// Modified by: -// Created: 2005-05-17 -// Copyright: (C) Copyright 2005, Kirix Corporation, All Rights Reserved. -// Licence: wxWindows Library Licence, Version 3.1 -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DOCKART_H_ -#define _WX_DOCKART_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_AUI - -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/bitmap.h" -#include "wx/colour.h" - -// dock art provider code - a dock provider provides all drawing -// functionality to the wxAui dock manager. This allows the dock -// manager to have plugable look-and-feels - -class WXDLLIMPEXP_AUI wxAuiDockArt -{ -public: - - wxAuiDockArt() { } - virtual ~wxAuiDockArt() { } - - virtual int GetMetric(int id) = 0; - virtual void SetMetric(int id, int newVal) = 0; - virtual void SetFont(int id, const wxFont& font) = 0; - virtual wxFont GetFont(int id) = 0; - virtual wxColour GetColour(int id) = 0; - virtual void SetColour(int id, const wxColor& colour) = 0; - wxColour GetColor(int id) { return GetColour(id); } - void SetColor(int id, const wxColour& color) { SetColour(id, color); } - - virtual void DrawSash(wxDC& dc, - wxWindow* window, - int orientation, - const wxRect& rect) = 0; - - virtual void DrawBackground(wxDC& dc, - wxWindow* window, - int orientation, - const wxRect& rect) = 0; - - virtual void DrawCaption(wxDC& dc, - wxWindow* window, - const wxString& text, - const wxRect& rect, - wxAuiPaneInfo& pane) = 0; - - virtual void DrawGripper(wxDC& dc, - wxWindow* window, - const wxRect& rect, - wxAuiPaneInfo& pane) = 0; - - virtual void DrawBorder(wxDC& dc, - wxWindow* window, - const wxRect& rect, - wxAuiPaneInfo& pane) = 0; - - virtual void DrawPaneButton(wxDC& dc, - wxWindow* window, - int button, - int buttonState, - const wxRect& rect, - wxAuiPaneInfo& pane) = 0; -}; - - -// this is the default art provider for wxAuiManager. Dock art -// can be customized by creating a class derived from this one, -// or replacing this class entirely - -class WXDLLIMPEXP_AUI wxAuiDefaultDockArt : public wxAuiDockArt -{ -public: - - wxAuiDefaultDockArt(); - - int GetMetric(int metricId); - void SetMetric(int metricId, int newVal); - wxColour GetColour(int id); - void SetColour(int id, const wxColor& colour); - void SetFont(int id, const wxFont& font); - wxFont GetFont(int id); - - void DrawSash(wxDC& dc, - wxWindow *window, - int orientation, - const wxRect& rect); - - void DrawBackground(wxDC& dc, - wxWindow *window, - int orientation, - const wxRect& rect); - - void DrawCaption(wxDC& dc, - wxWindow *window, - const wxString& text, - const wxRect& rect, - wxAuiPaneInfo& pane); - - void DrawGripper(wxDC& dc, - wxWindow *window, - const wxRect& rect, - wxAuiPaneInfo& pane); - - void DrawBorder(wxDC& dc, - wxWindow *window, - const wxRect& rect, - wxAuiPaneInfo& pane); - - void DrawPaneButton(wxDC& dc, - wxWindow *window, - int button, - int buttonState, - const wxRect& rect, - wxAuiPaneInfo& pane); - - void DrawIcon(wxDC& dc, - const wxRect& rect, - wxAuiPaneInfo& pane); - -protected: - - void DrawCaptionBackground(wxDC& dc, const wxRect& rect, bool active); - - void InitBitmaps(); - -protected: - - wxPen m_borderPen; - wxBrush m_sashBrush; - wxBrush m_backgroundBrush; - wxBrush m_gripperBrush; - wxFont m_captionFont; - wxBitmap m_inactiveCloseBitmap; - wxBitmap m_inactivePinBitmap; - wxBitmap m_inactiveMaximizeBitmap; - wxBitmap m_inactiveRestoreBitmap; - wxBitmap m_activeCloseBitmap; - wxBitmap m_activePinBitmap; - wxBitmap m_activeMaximizeBitmap; - wxBitmap m_activeRestoreBitmap; - wxPen m_gripperPen1; - wxPen m_gripperPen2; - wxPen m_gripperPen3; - wxColour m_baseColour; - wxColour m_activeCaptionColour; - wxColour m_activeCaptionGradientColour; - wxColour m_activeCaptionTextColour; - wxColour m_inactiveCaptionColour; - wxColour m_inactiveCaptionGradientColour; - wxColour m_inactiveCaptionTextColour; - int m_borderSize; - int m_captionSize; - int m_sashSize; - int m_buttonSize; - int m_gripperSize; - int m_gradientType; -}; - - - -#endif // wxUSE_AUI -#endif //_WX_DOCKART_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/floatpane.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/floatpane.h deleted file mode 100644 index 889d2deb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/floatpane.h +++ /dev/null @@ -1,83 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/aui/floatpane.h -// Purpose: wxaui: wx advanced user interface - docking window manager -// Author: Benjamin I. Williams -// Modified by: -// Created: 2005-05-17 -// Copyright: (C) Copyright 2005, Kirix Corporation, All Rights Reserved. -// Licence: wxWindows Library Licence, Version 3.1 -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FLOATPANE_H_ -#define _WX_FLOATPANE_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" -#include "wx/weakref.h" - -#if wxUSE_AUI - -#if wxUSE_MINIFRAME - #include "wx/minifram.h" - #define wxAuiFloatingFrameBaseClass wxMiniFrame -#else - #include "wx/frame.h" - #define wxAuiFloatingFrameBaseClass wxFrame -#endif - -class WXDLLIMPEXP_AUI wxAuiFloatingFrame : public wxAuiFloatingFrameBaseClass -{ -public: - wxAuiFloatingFrame(wxWindow* parent, - wxAuiManager* ownerMgr, - const wxAuiPaneInfo& pane, - wxWindowID id = wxID_ANY, - long style = wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION | - wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT | - wxCLIP_CHILDREN - ); - virtual ~wxAuiFloatingFrame(); - void SetPaneWindow(const wxAuiPaneInfo& pane); - wxAuiManager* GetOwnerManager() const; - - // Allow processing accelerators to the parent frame - virtual bool IsTopNavigationDomain(NavigationKind kind) const wxOVERRIDE; - -protected: - virtual void OnMoveStart(); - virtual void OnMoving(const wxRect& windowRect, wxDirection dir); - virtual void OnMoveFinished(); - -private: - void OnSize(wxSizeEvent& event); - void OnClose(wxCloseEvent& event); - void OnMoveEvent(wxMoveEvent& event); - void OnIdle(wxIdleEvent& event); - void OnActivate(wxActivateEvent& event); - static bool isMouseDown(); - -private: - wxWindow* m_paneWindow; // pane window being managed - bool m_solidDrag; // true if system uses solid window drag - bool m_moving; - wxRect m_lastRect; - wxRect m_last2Rect; - wxRect m_last3Rect; - wxSize m_lastSize; - wxDirection m_lastDirection; - - wxWeakRef m_ownerMgr; - wxAuiManager m_mgr; - -#ifndef SWIG - wxDECLARE_EVENT_TABLE(); - wxDECLARE_CLASS(wxAuiFloatingFrame); -#endif // SWIG -}; - -#endif // wxUSE_AUI -#endif //_WX_FLOATPANE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/framemanager.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/framemanager.h deleted file mode 100644 index fdf29d4f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/framemanager.h +++ /dev/null @@ -1,890 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/aui/framemanager.h -// Purpose: wxaui: wx advanced user interface - docking window manager -// Author: Benjamin I. Williams -// Modified by: -// Created: 2005-05-17 -// Copyright: (C) Copyright 2005, Kirix Corporation, All Rights Reserved. -// Licence: wxWindows Library Licence, Version 3.1 -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FRAMEMANAGER_H_ -#define _WX_FRAMEMANAGER_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_AUI - -#include "wx/dynarray.h" -#include "wx/gdicmn.h" -#include "wx/window.h" -#include "wx/timer.h" -#include "wx/sizer.h" -#include "wx/bitmap.h" - -enum wxAuiManagerDock -{ - wxAUI_DOCK_NONE = 0, - wxAUI_DOCK_TOP = 1, - wxAUI_DOCK_RIGHT = 2, - wxAUI_DOCK_BOTTOM = 3, - wxAUI_DOCK_LEFT = 4, - wxAUI_DOCK_CENTER = 5, - wxAUI_DOCK_CENTRE = wxAUI_DOCK_CENTER -}; - -enum wxAuiManagerOption -{ - wxAUI_MGR_ALLOW_FLOATING = 1 << 0, - wxAUI_MGR_ALLOW_ACTIVE_PANE = 1 << 1, - wxAUI_MGR_TRANSPARENT_DRAG = 1 << 2, - wxAUI_MGR_TRANSPARENT_HINT = 1 << 3, - wxAUI_MGR_VENETIAN_BLINDS_HINT = 1 << 4, - wxAUI_MGR_RECTANGLE_HINT = 1 << 5, - wxAUI_MGR_HINT_FADE = 1 << 6, - wxAUI_MGR_NO_VENETIAN_BLINDS_FADE = 1 << 7, - wxAUI_MGR_LIVE_RESIZE = 1 << 8, - - wxAUI_MGR_DEFAULT = wxAUI_MGR_ALLOW_FLOATING | - wxAUI_MGR_TRANSPARENT_HINT | - wxAUI_MGR_HINT_FADE | - wxAUI_MGR_NO_VENETIAN_BLINDS_FADE -}; - - -enum wxAuiPaneDockArtSetting -{ - wxAUI_DOCKART_SASH_SIZE = 0, - wxAUI_DOCKART_CAPTION_SIZE = 1, - wxAUI_DOCKART_GRIPPER_SIZE = 2, - wxAUI_DOCKART_PANE_BORDER_SIZE = 3, - wxAUI_DOCKART_PANE_BUTTON_SIZE = 4, - wxAUI_DOCKART_BACKGROUND_COLOUR = 5, - wxAUI_DOCKART_SASH_COLOUR = 6, - wxAUI_DOCKART_ACTIVE_CAPTION_COLOUR = 7, - wxAUI_DOCKART_ACTIVE_CAPTION_GRADIENT_COLOUR = 8, - wxAUI_DOCKART_INACTIVE_CAPTION_COLOUR = 9, - wxAUI_DOCKART_INACTIVE_CAPTION_GRADIENT_COLOUR = 10, - wxAUI_DOCKART_ACTIVE_CAPTION_TEXT_COLOUR = 11, - wxAUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR = 12, - wxAUI_DOCKART_BORDER_COLOUR = 13, - wxAUI_DOCKART_GRIPPER_COLOUR = 14, - wxAUI_DOCKART_CAPTION_FONT = 15, - wxAUI_DOCKART_GRADIENT_TYPE = 16 -}; - -enum wxAuiPaneDockArtGradients -{ - wxAUI_GRADIENT_NONE = 0, - wxAUI_GRADIENT_VERTICAL = 1, - wxAUI_GRADIENT_HORIZONTAL = 2 -}; - -enum wxAuiPaneButtonState -{ - wxAUI_BUTTON_STATE_NORMAL = 0, - wxAUI_BUTTON_STATE_HOVER = 1 << 1, - wxAUI_BUTTON_STATE_PRESSED = 1 << 2, - wxAUI_BUTTON_STATE_DISABLED = 1 << 3, - wxAUI_BUTTON_STATE_HIDDEN = 1 << 4, - wxAUI_BUTTON_STATE_CHECKED = 1 << 5 -}; - -enum wxAuiButtonId -{ - wxAUI_BUTTON_CLOSE = 101, - wxAUI_BUTTON_MAXIMIZE_RESTORE = 102, - wxAUI_BUTTON_MINIMIZE = 103, - wxAUI_BUTTON_PIN = 104, - wxAUI_BUTTON_OPTIONS = 105, - wxAUI_BUTTON_WINDOWLIST = 106, - wxAUI_BUTTON_LEFT = 107, - wxAUI_BUTTON_RIGHT = 108, - wxAUI_BUTTON_UP = 109, - wxAUI_BUTTON_DOWN = 110, - wxAUI_BUTTON_CUSTOM1 = 201, - wxAUI_BUTTON_CUSTOM2 = 202, - wxAUI_BUTTON_CUSTOM3 = 203 -}; - -enum wxAuiPaneInsertLevel -{ - wxAUI_INSERT_PANE = 0, - wxAUI_INSERT_ROW = 1, - wxAUI_INSERT_DOCK = 2 -}; - - - - -// forwards and array declarations -class wxAuiDockUIPart; -class wxAuiPaneButton; -class wxAuiPaneInfo; -class wxAuiDockInfo; -class wxAuiDockArt; -class wxAuiManagerEvent; - -#ifndef SWIG -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiDockInfo, wxAuiDockInfoArray, WXDLLIMPEXP_AUI); -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiDockUIPart, wxAuiDockUIPartArray, WXDLLIMPEXP_AUI); -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiPaneButton, wxAuiPaneButtonArray, WXDLLIMPEXP_AUI); -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxAuiPaneInfo, wxAuiPaneInfoArray, WXDLLIMPEXP_AUI); -WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxAuiPaneInfo*, wxAuiPaneInfoPtrArray, class WXDLLIMPEXP_AUI); -WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxAuiDockInfo*, wxAuiDockInfoPtrArray, class WXDLLIMPEXP_AUI); -#endif // SWIG - -extern WXDLLIMPEXP_AUI wxAuiDockInfo wxAuiNullDockInfo; -extern WXDLLIMPEXP_AUI wxAuiPaneInfo wxAuiNullPaneInfo; - - - -class WXDLLIMPEXP_AUI wxAuiPaneInfo -{ -public: - - wxAuiPaneInfo() - { - window = NULL; - frame = NULL; - state = 0; - dock_direction = wxAUI_DOCK_LEFT; - dock_layer = 0; - dock_row = 0; - dock_pos = 0; - floating_pos = wxDefaultPosition; - floating_size = wxDefaultSize; - best_size = wxDefaultSize; - min_size = wxDefaultSize; - max_size = wxDefaultSize; - dock_proportion = 0; - - DefaultPane(); - } - - ~wxAuiPaneInfo() {} - -#ifndef SWIG - wxAuiPaneInfo(const wxAuiPaneInfo& c) - { - name = c.name; - caption = c.caption; - icon = c.icon; - window = c.window; - frame = c.frame; - state = c.state; - dock_direction = c.dock_direction; - dock_layer = c.dock_layer; - dock_row = c.dock_row; - dock_pos = c.dock_pos; - best_size = c.best_size; - min_size = c.min_size; - max_size = c.max_size; - floating_pos = c.floating_pos; - floating_size = c.floating_size; - dock_proportion = c.dock_proportion; - buttons = c.buttons; - rect = c.rect; - } - - wxAuiPaneInfo& operator=(const wxAuiPaneInfo& c) - { - name = c.name; - caption = c.caption; - window = c.window; - frame = c.frame; - state = c.state; - dock_direction = c.dock_direction; - dock_layer = c.dock_layer; - dock_row = c.dock_row; - dock_pos = c.dock_pos; - best_size = c.best_size; - min_size = c.min_size; - max_size = c.max_size; - floating_pos = c.floating_pos; - floating_size = c.floating_size; - dock_proportion = c.dock_proportion; - buttons = c.buttons; - rect = c.rect; - return *this; - } -#endif // SWIG - - // Write the safe parts of a newly loaded PaneInfo structure "source" into "this" - // used on loading perspectives etc. - void SafeSet(wxAuiPaneInfo source) - { - // note source is not passed by reference so we can overwrite, to keep the - // unsafe bits of "dest" - source.window = window; - source.frame = frame; - source.buttons = buttons; - wxCHECK_RET(source.IsValid(), - "window settings and pane settings are incompatible"); - // now assign - *this = source; - } - - bool IsOk() const { return window != NULL; } - bool IsFixed() const { return !HasFlag(optionResizable); } - bool IsResizable() const { return HasFlag(optionResizable); } - bool IsShown() const { return !HasFlag(optionHidden); } - bool IsFloating() const { return HasFlag(optionFloating); } - bool IsDocked() const { return !HasFlag(optionFloating); } - bool IsToolbar() const { return HasFlag(optionToolbar); } - bool IsTopDockable() const { return HasFlag(optionTopDockable); } - bool IsBottomDockable() const { return HasFlag(optionBottomDockable); } - bool IsLeftDockable() const { return HasFlag(optionLeftDockable); } - bool IsRightDockable() const { return HasFlag(optionRightDockable); } - bool IsDockable() const - { - return HasFlag(optionTopDockable | optionBottomDockable | - optionLeftDockable | optionRightDockable); - } - bool IsFloatable() const { return HasFlag(optionFloatable); } - bool IsMovable() const { return HasFlag(optionMovable); } - bool IsDestroyOnClose() const { return HasFlag(optionDestroyOnClose); } - bool IsMaximized() const { return HasFlag(optionMaximized); } - bool HasCaption() const { return HasFlag(optionCaption); } - bool HasGripper() const { return HasFlag(optionGripper); } - bool HasBorder() const { return HasFlag(optionPaneBorder); } - bool HasCloseButton() const { return HasFlag(buttonClose); } - bool HasMaximizeButton() const { return HasFlag(buttonMaximize); } - bool HasMinimizeButton() const { return HasFlag(buttonMinimize); } - bool HasPinButton() const { return HasFlag(buttonPin); } - bool HasGripperTop() const { return HasFlag(optionGripperTop); } - -#ifdef SWIG - %typemap(out) wxAuiPaneInfo& { $result = $self; Py_INCREF($result); } -#endif - wxAuiPaneInfo& Window(wxWindow* w) - { - wxAuiPaneInfo test(*this); - test.window = w; - wxCHECK_MSG(test.IsValid(), *this, - "window settings and pane settings are incompatible"); - *this = test; - return *this; - } - wxAuiPaneInfo& Name(const wxString& n) { name = n; return *this; } - wxAuiPaneInfo& Caption(const wxString& c) { caption = c; return *this; } - wxAuiPaneInfo& Icon(const wxBitmap& b) { icon = b; return *this; } - wxAuiPaneInfo& Left() { dock_direction = wxAUI_DOCK_LEFT; return *this; } - wxAuiPaneInfo& Right() { dock_direction = wxAUI_DOCK_RIGHT; return *this; } - wxAuiPaneInfo& Top() { dock_direction = wxAUI_DOCK_TOP; return *this; } - wxAuiPaneInfo& Bottom() { dock_direction = wxAUI_DOCK_BOTTOM; return *this; } - wxAuiPaneInfo& Center() { dock_direction = wxAUI_DOCK_CENTER; return *this; } - wxAuiPaneInfo& Centre() { dock_direction = wxAUI_DOCK_CENTRE; return *this; } - wxAuiPaneInfo& Direction(int direction) { dock_direction = direction; return *this; } - wxAuiPaneInfo& Layer(int layer) { dock_layer = layer; return *this; } - wxAuiPaneInfo& Row(int row) { dock_row = row; return *this; } - wxAuiPaneInfo& Position(int pos) { dock_pos = pos; return *this; } - wxAuiPaneInfo& BestSize(const wxSize& size) { best_size = size; return *this; } - wxAuiPaneInfo& MinSize(const wxSize& size) { min_size = size; return *this; } - wxAuiPaneInfo& MaxSize(const wxSize& size) { max_size = size; return *this; } - wxAuiPaneInfo& BestSize(int x, int y) { best_size.Set(x,y); return *this; } - wxAuiPaneInfo& MinSize(int x, int y) { min_size.Set(x,y); return *this; } - wxAuiPaneInfo& MaxSize(int x, int y) { max_size.Set(x,y); return *this; } - wxAuiPaneInfo& FloatingPosition(const wxPoint& pos) { floating_pos = pos; return *this; } - wxAuiPaneInfo& FloatingPosition(int x, int y) { floating_pos.x = x; floating_pos.y = y; return *this; } - wxAuiPaneInfo& FloatingSize(const wxSize& size) { floating_size = size; return *this; } - wxAuiPaneInfo& FloatingSize(int x, int y) { floating_size.Set(x,y); return *this; } - wxAuiPaneInfo& Fixed() { return SetFlag(optionResizable, false); } - wxAuiPaneInfo& Resizable(bool resizable = true) { return SetFlag(optionResizable, resizable); } - wxAuiPaneInfo& Dock() { return SetFlag(optionFloating, false); } - wxAuiPaneInfo& Float() { return SetFlag(optionFloating, true); } - wxAuiPaneInfo& Hide() { return SetFlag(optionHidden, true); } - wxAuiPaneInfo& Show(bool show = true) { return SetFlag(optionHidden, !show); } - wxAuiPaneInfo& CaptionVisible(bool visible = true) { return SetFlag(optionCaption, visible); } - wxAuiPaneInfo& Maximize() { return SetFlag(optionMaximized, true); } - wxAuiPaneInfo& Restore() { return SetFlag(optionMaximized, false); } - wxAuiPaneInfo& PaneBorder(bool visible = true) { return SetFlag(optionPaneBorder, visible); } - wxAuiPaneInfo& Gripper(bool visible = true) { return SetFlag(optionGripper, visible); } - wxAuiPaneInfo& GripperTop(bool attop = true) { return SetFlag(optionGripperTop, attop); } - wxAuiPaneInfo& CloseButton(bool visible = true) { return SetFlag(buttonClose, visible); } - wxAuiPaneInfo& MaximizeButton(bool visible = true) { return SetFlag(buttonMaximize, visible); } - wxAuiPaneInfo& MinimizeButton(bool visible = true) { return SetFlag(buttonMinimize, visible); } - wxAuiPaneInfo& PinButton(bool visible = true) { return SetFlag(buttonPin, visible); } - wxAuiPaneInfo& DestroyOnClose(bool b = true) { return SetFlag(optionDestroyOnClose, b); } - wxAuiPaneInfo& TopDockable(bool b = true) { return SetFlag(optionTopDockable, b); } - wxAuiPaneInfo& BottomDockable(bool b = true) { return SetFlag(optionBottomDockable, b); } - wxAuiPaneInfo& LeftDockable(bool b = true) { return SetFlag(optionLeftDockable, b); } - wxAuiPaneInfo& RightDockable(bool b = true) { return SetFlag(optionRightDockable, b); } - wxAuiPaneInfo& Floatable(bool b = true) { return SetFlag(optionFloatable, b); } - wxAuiPaneInfo& Movable(bool b = true) { return SetFlag(optionMovable, b); } - wxAuiPaneInfo& DockFixed(bool b = true) { return SetFlag(optionDockFixed, b); } - - wxAuiPaneInfo& Dockable(bool b = true) - { - return TopDockable(b).BottomDockable(b).LeftDockable(b).RightDockable(b); - } - - wxAuiPaneInfo& DefaultPane() - { - wxAuiPaneInfo test(*this); - test.state |= optionTopDockable | optionBottomDockable | - optionLeftDockable | optionRightDockable | - optionFloatable | optionMovable | optionResizable | - optionCaption | optionPaneBorder | buttonClose; - wxCHECK_MSG(test.IsValid(), *this, - "window settings and pane settings are incompatible"); - *this = test; - return *this; - } - - wxAuiPaneInfo& CentrePane() { return CenterPane(); } - wxAuiPaneInfo& CenterPane() - { - state = 0; - return Center().PaneBorder().Resizable(); - } - - wxAuiPaneInfo& ToolbarPane() - { - DefaultPane(); - state |= (optionToolbar | optionGripper); - state &= ~(optionResizable | optionCaption); - if (dock_layer == 0) - dock_layer = 10; - return *this; - } - - wxAuiPaneInfo& SetFlag(int flag, bool option_state) - { - wxAuiPaneInfo test(*this); - if (option_state) - test.state |= flag; - else - test.state &= ~flag; - wxCHECK_MSG(test.IsValid(), *this, - "window settings and pane settings are incompatible"); - *this = test; - return *this; - } - - bool HasFlag(int flag) const - { - return (state & flag) != 0; - } - -#ifdef SWIG - %typemap(out) wxAuiPaneInfo& ; -#endif - -public: - - // NOTE: You can add and subtract flags from this list, - // but do not change the values of the flags, because - // they are stored in a binary integer format in the - // perspective string. If you really need to change the - // values around, you'll have to ensure backwards-compatibility - // in the perspective loading code. - enum wxAuiPaneState - { - optionFloating = 1 << 0, - optionHidden = 1 << 1, - optionLeftDockable = 1 << 2, - optionRightDockable = 1 << 3, - optionTopDockable = 1 << 4, - optionBottomDockable = 1 << 5, - optionFloatable = 1 << 6, - optionMovable = 1 << 7, - optionResizable = 1 << 8, - optionPaneBorder = 1 << 9, - optionCaption = 1 << 10, - optionGripper = 1 << 11, - optionDestroyOnClose = 1 << 12, - optionToolbar = 1 << 13, - optionActive = 1 << 14, - optionGripperTop = 1 << 15, - optionMaximized = 1 << 16, - optionDockFixed = 1 << 17, - - buttonClose = 1 << 21, - buttonMaximize = 1 << 22, - buttonMinimize = 1 << 23, - buttonPin = 1 << 24, - - buttonCustom1 = 1 << 26, - buttonCustom2 = 1 << 27, - buttonCustom3 = 1 << 28, - - savedHiddenState = 1 << 30, // used internally - actionPane = 1 << 31 // used internally - }; - -public: - wxString name; // name of the pane - wxString caption; // caption displayed on the window - wxBitmap icon; // icon of the pane, may be invalid - - wxWindow* window; // window that is in this pane - wxFrame* frame; // floating frame window that holds the pane - unsigned int state; // a combination of wxPaneState values - - int dock_direction; // dock direction (top, bottom, left, right, center) - int dock_layer; // layer number (0 = innermost layer) - int dock_row; // row number on the docking bar (0 = first row) - int dock_pos; // position inside the row (0 = first position) - - wxSize best_size; // size that the layout engine will prefer - wxSize min_size; // minimum size the pane window can tolerate - wxSize max_size; // maximum size the pane window can tolerate - - wxPoint floating_pos; // position while floating - wxSize floating_size; // size while floating - int dock_proportion; // proportion while docked - - wxAuiPaneButtonArray buttons; // buttons on the pane - - - wxRect rect; // current rectangle (populated by wxAUI) - - bool IsValid() const; -}; - - - -class WXDLLIMPEXP_FWD_AUI wxAuiFloatingFrame; - -class WXDLLIMPEXP_AUI wxAuiManager : public wxEvtHandler -{ - friend class wxAuiFloatingFrame; - -public: - - wxAuiManager(wxWindow* managedWnd = NULL, - unsigned int flags = wxAUI_MGR_DEFAULT); - virtual ~wxAuiManager(); - void UnInit(); - - void SetFlags(unsigned int flags); - unsigned int GetFlags() const; - - void SetManagedWindow(wxWindow* managedWnd); - wxWindow* GetManagedWindow() const; - - static wxAuiManager* GetManager(wxWindow* window); - - void SetArtProvider(wxAuiDockArt* artProvider); - wxAuiDockArt* GetArtProvider() const; - - wxAuiPaneInfo& GetPane(wxWindow* window); - wxAuiPaneInfo& GetPane(const wxString& name); - wxAuiPaneInfoArray& GetAllPanes(); - - bool AddPane(wxWindow* window, - const wxAuiPaneInfo& paneInfo); - - bool AddPane(wxWindow* window, - const wxAuiPaneInfo& paneInfo, - const wxPoint& dropPos); - - bool AddPane(wxWindow* window, - int direction = wxLEFT, - const wxString& caption = wxEmptyString); - - bool InsertPane(wxWindow* window, - const wxAuiPaneInfo& insertLocation, - int insertLevel = wxAUI_INSERT_PANE); - - bool DetachPane(wxWindow* window); - - void Update(); - - wxString SavePaneInfo(wxAuiPaneInfo& pane); - void LoadPaneInfo(wxString panePart, wxAuiPaneInfo &pane); - wxString SavePerspective(); - bool LoadPerspective(const wxString& perspective, bool update = true); - - void SetDockSizeConstraint(double widthPct, double heightPct); - void GetDockSizeConstraint(double* widthPct, double* heightPct) const; - - void ClosePane(wxAuiPaneInfo& paneInfo); - void MaximizePane(wxAuiPaneInfo& paneInfo); - void RestorePane(wxAuiPaneInfo& paneInfo); - void RestoreMaximizedPane(); - -public: - - virtual wxAuiFloatingFrame* CreateFloatingFrame(wxWindow* parent, const wxAuiPaneInfo& p); - virtual bool CanDockPanel(const wxAuiPaneInfo & p); - - void StartPaneDrag( - wxWindow* paneWindow, - const wxPoint& offset); - - wxRect CalculateHintRect( - wxWindow* paneWindow, - const wxPoint& pt, - const wxPoint& offset); - - void DrawHintRect( - wxWindow* paneWindow, - const wxPoint& pt, - const wxPoint& offset); - - virtual void ShowHint(const wxRect& rect); - virtual void HideHint(); - - void OnHintActivate(wxActivateEvent& event); - -public: - - // deprecated -- please use SetManagedWindow() and - // and GetManagedWindow() instead - - wxDEPRECATED( void SetFrame(wxFrame* frame) ); - wxDEPRECATED( wxFrame* GetFrame() const ); - -protected: - - void UpdateHintWindowConfig(); - - void DoFrameLayout(); - - void LayoutAddPane(wxSizer* container, - wxAuiDockInfo& dock, - wxAuiPaneInfo& pane, - wxAuiDockUIPartArray& uiparts, - bool spacerOnly); - - void LayoutAddDock(wxSizer* container, - wxAuiDockInfo& dock, - wxAuiDockUIPartArray& uiParts, - bool spacerOnly); - - wxSizer* LayoutAll(wxAuiPaneInfoArray& panes, - wxAuiDockInfoArray& docks, - wxAuiDockUIPartArray & uiParts, - bool spacerOnly = false); - - virtual bool ProcessDockResult(wxAuiPaneInfo& target, - const wxAuiPaneInfo& newPos); - - bool DoDrop(wxAuiDockInfoArray& docks, - wxAuiPaneInfoArray& panes, - wxAuiPaneInfo& drop, - const wxPoint& pt, - const wxPoint& actionOffset = wxPoint(0,0)); - - wxAuiDockUIPart* HitTest(int x, int y); - wxAuiDockUIPart* GetPanePart(wxWindow* pane); - int GetDockPixelOffset(wxAuiPaneInfo& test); - void OnFloatingPaneMoveStart(wxWindow* window); - void OnFloatingPaneMoving(wxWindow* window, wxDirection dir ); - void OnFloatingPaneMoved(wxWindow* window, wxDirection dir); - void OnFloatingPaneActivated(wxWindow* window); - void OnFloatingPaneClosed(wxWindow* window, wxCloseEvent& evt); - void OnFloatingPaneResized(wxWindow* window, const wxRect& rect); - void Render(wxDC* dc); - void Repaint(wxDC* dc = NULL); - void ProcessMgrEvent(wxAuiManagerEvent& event); - void UpdateButtonOnScreen(wxAuiDockUIPart* buttonUiPart, - const wxMouseEvent& event); - void GetPanePositionsAndSizes(wxAuiDockInfo& dock, - wxArrayInt& positions, - wxArrayInt& sizes); - - /// Ends a resize action, or for live update, resizes the sash - bool DoEndResizeAction(wxMouseEvent& event); - - void SetActivePane(wxWindow* active_pane); - -public: - - // public events (which can be invoked externally) - void OnRender(wxAuiManagerEvent& evt); - void OnPaneButton(wxAuiManagerEvent& evt); - -protected: - - // protected events - void OnPaint(wxPaintEvent& evt); - void OnEraseBackground(wxEraseEvent& evt); - void OnSize(wxSizeEvent& evt); - void OnSetCursor(wxSetCursorEvent& evt); - void OnLeftDown(wxMouseEvent& evt); - void OnLeftUp(wxMouseEvent& evt); - void OnMotion(wxMouseEvent& evt); - void OnCaptureLost(wxMouseCaptureLostEvent& evt); - void OnLeaveWindow(wxMouseEvent& evt); - void OnChildFocus(wxChildFocusEvent& evt); - void OnHintFadeTimer(wxTimerEvent& evt); - void OnFindManager(wxAuiManagerEvent& evt); - -protected: - - enum - { - actionNone = 0, - actionResize, - actionClickButton, - actionClickCaption, - actionDragToolbarPane, - actionDragFloatingPane - }; - -protected: - - wxWindow* m_frame; // the window being managed - wxAuiDockArt* m_art; // dock art object which does all drawing - unsigned int m_flags; // manager flags wxAUI_MGR_* - - wxAuiPaneInfoArray m_panes; // array of panes structures - wxAuiDockInfoArray m_docks; // array of docks structures - wxAuiDockUIPartArray m_uiParts; // array of UI parts (captions, buttons, etc) - - int m_action; // current mouse action - wxPoint m_actionStart; // position where the action click started - wxPoint m_actionOffset; // offset from upper left of the item clicked - wxAuiDockUIPart* m_actionPart; // ptr to the part the action happened to - wxWindow* m_actionWindow; // action frame or window (NULL if none) - wxRect m_actionHintRect; // hint rectangle for the action - wxRect m_lastRect; - wxAuiDockUIPart* m_hoverButton;// button uipart being hovered over - wxRect m_lastHint; // last hint rectangle - wxPoint m_lastMouseMove; // last mouse move position (see OnMotion) - int m_currentDragItem; - bool m_skipping; - bool m_hasMaximized; - - double m_dockConstraintX; // 0.0 .. 1.0; max pct of window width a dock can consume - double m_dockConstraintY; // 0.0 .. 1.0; max pct of window height a dock can consume - - wxFrame* m_hintWnd; // transparent hint window, if supported by platform - wxTimer m_hintFadeTimer; // transparent fade timer - wxByte m_hintFadeAmt; // transparent fade amount - wxByte m_hintFadeMax; // maximum value of hint fade - - void* m_reserved; - -#ifndef SWIG - wxDECLARE_EVENT_TABLE(); - wxDECLARE_CLASS(wxAuiManager); -#endif // SWIG -}; - - - -// event declarations/classes - -class WXDLLIMPEXP_AUI wxAuiManagerEvent : public wxEvent -{ -public: - wxAuiManagerEvent(wxEventType type=wxEVT_NULL) : wxEvent(0, type) - { - manager = NULL; - pane = NULL; - button = 0; - veto_flag = false; - canveto_flag = true; - dc = NULL; - } -#ifndef SWIG - wxAuiManagerEvent(const wxAuiManagerEvent& c) : wxEvent(c) - { - manager = c.manager; - pane = c.pane; - button = c.button; - veto_flag = c.veto_flag; - canveto_flag = c.canveto_flag; - dc = c.dc; - } -#endif - wxEvent *Clone() const wxOVERRIDE { return new wxAuiManagerEvent(*this); } - - void SetManager(wxAuiManager* mgr) { manager = mgr; } - void SetPane(wxAuiPaneInfo* p) { pane = p; } - void SetButton(int b) { button = b; } - void SetDC(wxDC* pdc) { dc = pdc; } - - wxAuiManager* GetManager() const { return manager; } - wxAuiPaneInfo* GetPane() const { return pane; } - int GetButton() const { return button; } - wxDC* GetDC() const { return dc; } - - void Veto(bool veto = true) { veto_flag = veto; } - bool GetVeto() const { return veto_flag; } - void SetCanVeto(bool can_veto) { canveto_flag = can_veto; } - bool CanVeto() const { return canveto_flag && veto_flag; } - -public: - wxAuiManager* manager; - wxAuiPaneInfo* pane; - int button; - bool veto_flag; - bool canveto_flag; - wxDC* dc; - -#ifndef SWIG -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxAuiManagerEvent); -#endif -}; - - -class WXDLLIMPEXP_AUI wxAuiDockInfo -{ -public: - wxAuiDockInfo() - { - dock_direction = 0; - dock_layer = 0; - dock_row = 0; - size = 0; - min_size = 0; - resizable = true; - fixed = false; - toolbar = false; - reserved1 = false; - } - -#ifndef SWIG - wxAuiDockInfo(const wxAuiDockInfo& c) - { - dock_direction = c.dock_direction; - dock_layer = c.dock_layer; - dock_row = c.dock_row; - size = c.size; - min_size = c.min_size; - resizable = c.resizable; - fixed = c.fixed; - toolbar = c.toolbar; - panes = c.panes; - rect = c.rect; - reserved1 = c.reserved1; - } - - wxAuiDockInfo& operator=(const wxAuiDockInfo& c) - { - dock_direction = c.dock_direction; - dock_layer = c.dock_layer; - dock_row = c.dock_row; - size = c.size; - min_size = c.min_size; - resizable = c.resizable; - fixed = c.fixed; - toolbar = c.toolbar; - panes = c.panes; - rect = c.rect; - reserved1 = c.reserved1; - return *this; - } -#endif // SWIG - - bool IsOk() const { return dock_direction != 0; } - bool IsHorizontal() const { return dock_direction == wxAUI_DOCK_TOP || - dock_direction == wxAUI_DOCK_BOTTOM; } - bool IsVertical() const { return dock_direction == wxAUI_DOCK_LEFT || - dock_direction == wxAUI_DOCK_RIGHT || - dock_direction == wxAUI_DOCK_CENTER; } -public: - wxAuiPaneInfoPtrArray panes; // array of panes - wxRect rect; // current rectangle - int dock_direction; // dock direction (top, bottom, left, right, center) - int dock_layer; // layer number (0 = innermost layer) - int dock_row; // row number on the docking bar (0 = first row) - int size; // size of the dock - int min_size; // minimum size of a dock (0 if there is no min) - bool resizable; // flag indicating whether the dock is resizable - bool toolbar; // flag indicating dock contains only toolbars - bool fixed; // flag indicating that the dock operates on - // absolute coordinates as opposed to proportional - bool reserved1; -}; - - -class WXDLLIMPEXP_AUI wxAuiDockUIPart -{ -public: - enum - { - typeCaption, - typeGripper, - typeDock, - typeDockSizer, - typePane, - typePaneSizer, - typeBackground, - typePaneBorder, - typePaneButton - }; - - int type; // ui part type (see enum above) - int orientation; // orientation (either wxHORIZONTAL or wxVERTICAL) - wxAuiDockInfo* dock; // which dock the item is associated with - wxAuiPaneInfo* pane; // which pane the item is associated with - wxAuiPaneButton* button; // which pane button the item is associated with - wxSizer* cont_sizer; // the part's containing sizer - wxSizerItem* sizer_item; // the sizer item of the part - wxRect rect; // client coord rectangle of the part itself -}; - - -class WXDLLIMPEXP_AUI wxAuiPaneButton -{ -public: - int button_id; // id of the button (e.g. buttonClose) -}; - - - -#ifndef SWIG - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUI_PANE_BUTTON, wxAuiManagerEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUI_PANE_CLOSE, wxAuiManagerEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUI_PANE_MAXIMIZE, wxAuiManagerEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUI_PANE_RESTORE, wxAuiManagerEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUI_PANE_ACTIVATED, wxAuiManagerEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUI_RENDER, wxAuiManagerEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_AUI, wxEVT_AUI_FIND_MANAGER, wxAuiManagerEvent ); - -typedef void (wxEvtHandler::*wxAuiManagerEventFunction)(wxAuiManagerEvent&); - -#define wxAuiManagerEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxAuiManagerEventFunction, func) - -#define EVT_AUI_PANE_BUTTON(func) \ - wx__DECLARE_EVT0(wxEVT_AUI_PANE_BUTTON, wxAuiManagerEventHandler(func)) -#define EVT_AUI_PANE_CLOSE(func) \ - wx__DECLARE_EVT0(wxEVT_AUI_PANE_CLOSE, wxAuiManagerEventHandler(func)) -#define EVT_AUI_PANE_MAXIMIZE(func) \ - wx__DECLARE_EVT0(wxEVT_AUI_PANE_MAXIMIZE, wxAuiManagerEventHandler(func)) -#define EVT_AUI_PANE_RESTORE(func) \ - wx__DECLARE_EVT0(wxEVT_AUI_PANE_RESTORE, wxAuiManagerEventHandler(func)) -#define EVT_AUI_PANE_ACTIVATED(func) \ - wx__DECLARE_EVT0(wxEVT_AUI_PANE_ACTIVATED, wxAuiManagerEventHandler(func)) -#define EVT_AUI_RENDER(func) \ - wx__DECLARE_EVT0(wxEVT_AUI_RENDER, wxAuiManagerEventHandler(func)) -#define EVT_AUI_FIND_MANAGER(func) \ - wx__DECLARE_EVT0(wxEVT_AUI_FIND_MANAGER, wxAuiManagerEventHandler(func)) - -#else - -%constant wxEventType wxEVT_AUI_PANE_BUTTON; -%constant wxEventType wxEVT_AUI_PANE_CLOSE; -%constant wxEventType wxEVT_AUI_PANE_MAXIMIZE; -%constant wxEventType wxEVT_AUI_PANE_RESTORE; -%constant wxEventType wxEVT_AUI_PANE_ACTIVATED; -%constant wxEventType wxEVT_AUI_RENDER; -%constant wxEventType wxEVT_AUI_FIND_MANAGER; - -%pythoncode { - EVT_AUI_PANE_BUTTON = wx.PyEventBinder( wxEVT_AUI_PANE_BUTTON ) - EVT_AUI_PANE_CLOSE = wx.PyEventBinder( wxEVT_AUI_PANE_CLOSE ) - EVT_AUI_PANE_MAXIMIZE = wx.PyEventBinder( wxEVT_AUI_PANE_MAXIMIZE ) - EVT_AUI_PANE_RESTORE = wx.PyEventBinder( wxEVT_AUI_PANE_RESTORE ) - EVT_AUI_PANE_ACTIVATED = wx.PyEventBinder( wxEVT_AUI_PANE_ACTIVATED ) - EVT_AUI_RENDER = wx.PyEventBinder( wxEVT_AUI_RENDER ) - EVT_AUI_FIND_MANAGER = wx.PyEventBinder( wxEVT_AUI_FIND_MANAGER ) -} -#endif // SWIG - -#endif // wxUSE_AUI -#endif //_WX_FRAMEMANAGER_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabart.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabart.h deleted file mode 100644 index 11d91938..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabart.h +++ /dev/null @@ -1,330 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// Name: wx/aui/tabart.h -// Purpose: wxaui: wx advanced user interface - notebook -// Author: Benjamin I. Williams -// Modified by: Jens Lody (extracted from wx/aui/auibook.h) -// Created: 2012-03-21 -// Copyright: (C) Copyright 2006, Kirix Corporation, All Rights Reserved. -// Licence: wxWindows Library Licence, Version 3.1 -/////////////////////////////////////////////////////////////////////////////// - - -#ifndef _WX_AUI_TABART_H_ -#define _WX_AUI_TABART_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_AUI - -#include "wx/colour.h" -#include "wx/gdicmn.h" -#include "wx/font.h" -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/bitmap.h" - - -class wxAuiNotebookPage; -class wxAuiNotebookPageArray; -class wxWindow; -class wxDC; - - -// tab art class - -class WXDLLIMPEXP_AUI wxAuiTabArt -{ -public: - - wxAuiTabArt() { } - virtual ~wxAuiTabArt() { } - - virtual wxAuiTabArt* Clone() = 0; - virtual void SetFlags(unsigned int flags) = 0; - - virtual void SetSizingInfo(const wxSize& tabCtrlSize, - size_t tabCount) = 0; - - virtual void SetNormalFont(const wxFont& font) = 0; - virtual void SetSelectedFont(const wxFont& font) = 0; - virtual void SetMeasuringFont(const wxFont& font) = 0; - virtual void SetColour(const wxColour& colour) = 0; - virtual void SetActiveColour(const wxColour& colour) = 0; - - virtual void DrawBorder( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) = 0; - - virtual void DrawBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) = 0; - - virtual void DrawTab(wxDC& dc, - wxWindow* wnd, - const wxAuiNotebookPage& pane, - const wxRect& inRect, - int closeButtonState, - wxRect* outTabRect, - wxRect* outButtonRect, - int* xExtent) = 0; - - virtual void DrawButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& inRect, - int bitmapId, - int buttonState, - int orientation, - wxRect* outRect) = 0; - - virtual wxSize GetTabSize( - wxDC& dc, - wxWindow* wnd, - const wxString& caption, - const wxBitmap& bitmap, - bool active, - int closeButtonState, - int* xExtent) = 0; - - virtual int ShowDropDown( - wxWindow* wnd, - const wxAuiNotebookPageArray& items, - int activeIdx) = 0; - - virtual int GetIndentSize() = 0; - - virtual int GetBorderWidth( - wxWindow* wnd) = 0; - - virtual int GetAdditionalBorderSpace( - wxWindow* wnd) = 0; - - virtual int GetBestTabCtrlSize( - wxWindow* wnd, - const wxAuiNotebookPageArray& pages, - const wxSize& requiredBmpSize) = 0; -}; - - -class WXDLLIMPEXP_AUI wxAuiGenericTabArt : public wxAuiTabArt -{ - -public: - - wxAuiGenericTabArt(); - virtual ~wxAuiGenericTabArt(); - - wxAuiTabArt* Clone() wxOVERRIDE; - void SetFlags(unsigned int flags) wxOVERRIDE; - void SetSizingInfo(const wxSize& tabCtrlSize, - size_t tabCount) wxOVERRIDE; - - void SetNormalFont(const wxFont& font) wxOVERRIDE; - void SetSelectedFont(const wxFont& font) wxOVERRIDE; - void SetMeasuringFont(const wxFont& font) wxOVERRIDE; - void SetColour(const wxColour& colour) wxOVERRIDE; - void SetActiveColour(const wxColour& colour) wxOVERRIDE; - - void DrawBorder( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawTab(wxDC& dc, - wxWindow* wnd, - const wxAuiNotebookPage& pane, - const wxRect& inRect, - int closeButtonState, - wxRect* outTabRect, - wxRect* outButtonRect, - int* xExtent) wxOVERRIDE; - - void DrawButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& inRect, - int bitmapId, - int buttonState, - int orientation, - wxRect* outRect) wxOVERRIDE; - - int GetIndentSize() wxOVERRIDE; - - int GetBorderWidth( - wxWindow* wnd) wxOVERRIDE; - - int GetAdditionalBorderSpace( - wxWindow* wnd) wxOVERRIDE; - - wxSize GetTabSize( - wxDC& dc, - wxWindow* wnd, - const wxString& caption, - const wxBitmap& bitmap, - bool active, - int closeButtonState, - int* xExtent) wxOVERRIDE; - - int ShowDropDown( - wxWindow* wnd, - const wxAuiNotebookPageArray& items, - int activeIdx) wxOVERRIDE; - - int GetBestTabCtrlSize(wxWindow* wnd, - const wxAuiNotebookPageArray& pages, - const wxSize& requiredBmpSize) wxOVERRIDE; - -protected: - - wxFont m_normalFont; - wxFont m_selectedFont; - wxFont m_measuringFont; - wxColour m_baseColour; - wxPen m_baseColourPen; - wxPen m_borderPen; - wxBrush m_baseColourBrush; - wxColour m_activeColour; - wxBitmap m_activeCloseBmp; - wxBitmap m_disabledCloseBmp; - wxBitmap m_activeLeftBmp; - wxBitmap m_disabledLeftBmp; - wxBitmap m_activeRightBmp; - wxBitmap m_disabledRightBmp; - wxBitmap m_activeWindowListBmp; - wxBitmap m_disabledWindowListBmp; - - int m_fixedTabWidth; - int m_tabCtrlHeight; - unsigned int m_flags; -}; - - -class WXDLLIMPEXP_AUI wxAuiSimpleTabArt : public wxAuiTabArt -{ - -public: - - wxAuiSimpleTabArt(); - virtual ~wxAuiSimpleTabArt(); - - wxAuiTabArt* Clone() wxOVERRIDE; - void SetFlags(unsigned int flags) wxOVERRIDE; - - void SetSizingInfo(const wxSize& tabCtrlSize, - size_t tabCount) wxOVERRIDE; - - void SetNormalFont(const wxFont& font) wxOVERRIDE; - void SetSelectedFont(const wxFont& font) wxOVERRIDE; - void SetMeasuringFont(const wxFont& font) wxOVERRIDE; - void SetColour(const wxColour& colour) wxOVERRIDE; - void SetActiveColour(const wxColour& colour) wxOVERRIDE; - - void DrawBorder( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawTab(wxDC& dc, - wxWindow* wnd, - const wxAuiNotebookPage& pane, - const wxRect& inRect, - int closeButtonState, - wxRect* outTabRect, - wxRect* outButtonRect, - int* xExtent) wxOVERRIDE; - - void DrawButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& inRect, - int bitmapId, - int buttonState, - int orientation, - wxRect* outRect) wxOVERRIDE; - - int GetIndentSize() wxOVERRIDE; - - int GetBorderWidth( - wxWindow* wnd) wxOVERRIDE; - - int GetAdditionalBorderSpace( - wxWindow* wnd) wxOVERRIDE; - - wxSize GetTabSize( - wxDC& dc, - wxWindow* wnd, - const wxString& caption, - const wxBitmap& bitmap, - bool active, - int closeButtonState, - int* xExtent) wxOVERRIDE; - - int ShowDropDown( - wxWindow* wnd, - const wxAuiNotebookPageArray& items, - int activeIdx) wxOVERRIDE; - - int GetBestTabCtrlSize(wxWindow* wnd, - const wxAuiNotebookPageArray& pages, - const wxSize& requiredBmpSize) wxOVERRIDE; - -protected: - - wxFont m_normalFont; - wxFont m_selectedFont; - wxFont m_measuringFont; - wxColour m_normalTextColour; - wxColour m_selectedTextColour; - wxPen m_normalBkPen; - wxPen m_selectedBkPen; - wxBrush m_normalBkBrush; - wxBrush m_selectedBkBrush; - wxBrush m_bkBrush; - wxBitmap m_activeCloseBmp; - wxBitmap m_disabledCloseBmp; - wxBitmap m_activeLeftBmp; - wxBitmap m_disabledLeftBmp; - wxBitmap m_activeRightBmp; - wxBitmap m_disabledRightBmp; - wxBitmap m_activeWindowListBmp; - wxBitmap m_disabledWindowListBmp; - - int m_fixedTabWidth; - unsigned int m_flags; -}; - -#ifndef __WXUNIVERSAL__ - #if defined(__WXGTK20__) && !defined(__WXGTK3__) - #define wxHAS_NATIVE_TABART - #include "wx/aui/tabartgtk.h" - #define wxAuiDefaultTabArt wxAuiGtkTabArt - #elif defined(__WXMSW__) - #define wxHAS_NATIVE_TABART - #include "wx/aui/tabartmsw.h" - #define wxAuiDefaultTabArt wxAuiMSWTabArt - #endif -#endif // !__WXUNIVERSAL__ - -#ifndef wxHAS_NATIVE_TABART - #define wxAuiDefaultTabArt wxAuiGenericTabArt -#endif - -#endif // wxUSE_AUI - -#endif // _WX_AUI_TABART_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabartgtk.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabartgtk.h deleted file mode 100644 index 13f42cb4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabartgtk.h +++ /dev/null @@ -1,58 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: include/wx/aui/tabartgtk.h -// Purpose: declaration of the wxAuiGTKTabArt -// Author: Jens Lody and Teodor Petrov -// Modified by: -// Created: 2012-03-23 -// Copyright: (c) 2012 Jens Lody -// and Teodor Petrov -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_AUI_TABARTGTK_H_ -#define _WX_AUI_TABARTGTK_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_AUI - -#include "wx/aui/tabart.h" -#include "wx/gdicmn.h" - -class wxWindow; -class wxDC; - -class WXDLLIMPEXP_AUI wxAuiGtkTabArt : public wxAuiGenericTabArt -{ -public: - wxAuiGtkTabArt(); - - virtual wxAuiTabArt* Clone() wxOVERRIDE; - virtual void DrawBorder(wxDC& dc, wxWindow* wnd, const wxRect& rect) wxOVERRIDE; - virtual void DrawBackground(wxDC& dc, wxWindow* wnd, const wxRect& rect) wxOVERRIDE; - virtual void DrawTab(wxDC& dc, - wxWindow* wnd, - const wxAuiNotebookPage& page, - const wxRect& in_rect, - int close_button_state, - wxRect* out_tab_rect, - wxRect* out_button_rect, - int* x_extent) wxOVERRIDE; - void DrawButton(wxDC& dc, wxWindow* wnd, const wxRect& in_rect, int bitmap_id, - int button_state, int orientation, wxRect* out_rect) wxOVERRIDE; - int GetBestTabCtrlSize(wxWindow* wnd, const wxAuiNotebookPageArray& pages, - const wxSize& required_bmp_size) wxOVERRIDE; - int GetBorderWidth(wxWindow* wnd) wxOVERRIDE; - int GetAdditionalBorderSpace(wxWindow* wnd) wxOVERRIDE; - virtual wxSize GetTabSize(wxDC& dc, wxWindow* wnd, const wxString& caption, - const wxBitmap& bitmap, bool active, - int close_button_state, int* x_extent) wxOVERRIDE; -}; - -#endif // wxUSE_AUI - -#endif // _WX_AUI_TABARTGTK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabartmsw.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabartmsw.h deleted file mode 100644 index 41a47b26..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabartmsw.h +++ /dev/null @@ -1,90 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/aui/tabartmsw.h -// Purpose: wxAuiMSWTabArt declaration -// Author: Tobias Taschner -// Created: 2015-09-26 -// Copyright: (c) 2015 wxWidgets development team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_AUI_TABARTMSW_H_ -#define _WX_AUI_TABARTMSW_H_ - -class WXDLLIMPEXP_AUI wxAuiMSWTabArt : public wxAuiGenericTabArt -{ - -public: - - wxAuiMSWTabArt(); - virtual ~wxAuiMSWTabArt(); - - wxAuiTabArt* Clone() wxOVERRIDE; - void SetSizingInfo(const wxSize& tabCtrlSize, - size_t tabCount) wxOVERRIDE; - - void DrawBorder( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawTab(wxDC& dc, - wxWindow* wnd, - const wxAuiNotebookPage& pane, - const wxRect& inRect, - int closeButtonState, - wxRect* outTabRect, - wxRect* outButtonRect, - int* xExtent) wxOVERRIDE; - - void DrawButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& inRect, - int bitmapId, - int buttonState, - int orientation, - wxRect* outRect) wxOVERRIDE; - - int GetIndentSize() wxOVERRIDE; - - int GetBorderWidth( - wxWindow* wnd) wxOVERRIDE; - - int GetAdditionalBorderSpace( - wxWindow* wnd) wxOVERRIDE; - - wxSize GetTabSize( - wxDC& dc, - wxWindow* wnd, - const wxString& caption, - const wxBitmap& bitmap, - bool active, - int closeButtonState, - int* xExtent) wxOVERRIDE; - - int ShowDropDown( - wxWindow* wnd, - const wxAuiNotebookPageArray& items, - int activeIdx) wxOVERRIDE; - - int GetBestTabCtrlSize(wxWindow* wnd, - const wxAuiNotebookPageArray& pages, - const wxSize& requiredBmpSize) wxOVERRIDE; - -private: - bool m_themed; - wxSize m_closeBtnSize; - wxSize m_tabSize; - int m_maxTabHeight; - - void InitSizes(wxWindow* wnd, wxDC& dc); - - bool IsThemed() const; -}; - -#endif // _WX_AUI_TABARTMSW_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabmdi.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabmdi.h deleted file mode 100644 index 2922d3a8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/aui/tabmdi.h +++ /dev/null @@ -1,270 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/aui/tabmdi.h -// Purpose: Generic MDI (Multiple Document Interface) classes -// Author: Hans Van Leemputten -// Modified by: Benjamin I. Williams / Kirix Corporation -// Created: 29/07/2002 -// Copyright: (c) Hans Van Leemputten -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_AUITABMDI_H_ -#define _WX_AUITABMDI_H_ - -#if wxUSE_AUI - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/frame.h" -#include "wx/panel.h" -#include "wx/notebook.h" -#include "wx/icon.h" -#include "wx/aui/auibook.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_AUI wxAuiMDIParentFrame; -class WXDLLIMPEXP_FWD_AUI wxAuiMDIClientWindow; -class WXDLLIMPEXP_FWD_AUI wxAuiMDIChildFrame; - -//----------------------------------------------------------------------------- -// wxAuiMDIParentFrame -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_AUI wxAuiMDIParentFrame : public wxFrame -{ -public: - wxAuiMDIParentFrame(); - wxAuiMDIParentFrame(wxWindow *parent, - wxWindowID winid, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr); - - ~wxAuiMDIParentFrame(); - - bool Create(wxWindow *parent, - wxWindowID winid, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr ); - - void SetArtProvider(wxAuiTabArt* provider); - wxAuiTabArt* GetArtProvider(); - wxAuiNotebook* GetNotebook() const; - -#if wxUSE_MENUS - wxMenu* GetWindowMenu() const { return m_pWindowMenu; } - void SetWindowMenu(wxMenu* pMenu); - - virtual void SetMenuBar(wxMenuBar *pMenuBar) wxOVERRIDE; -#endif // wxUSE_MENUS - - void SetChildMenuBar(wxAuiMDIChildFrame *pChild); - - wxAuiMDIChildFrame *GetActiveChild() const; - void SetActiveChild(wxAuiMDIChildFrame* pChildFrame); - - wxAuiMDIClientWindow *GetClientWindow() const; - virtual wxAuiMDIClientWindow *OnCreateClient(); - - virtual void Cascade() { /* Has no effect */ } - virtual void Tile(wxOrientation orient = wxHORIZONTAL); - virtual void ArrangeIcons() { /* Has no effect */ } - virtual void ActivateNext(); - virtual void ActivatePrevious(); - -protected: - wxAuiMDIClientWindow* m_pClientWindow; - wxEvent* m_pLastEvt; - -#if wxUSE_MENUS - wxMenu *m_pWindowMenu; - wxMenuBar *m_pMyMenuBar; -#endif // wxUSE_MENUS - -protected: - void Init(); - -#if wxUSE_MENUS - void RemoveWindowMenu(wxMenuBar *pMenuBar); - void AddWindowMenu(wxMenuBar *pMenuBar); - - void DoHandleMenu(wxCommandEvent &event); - void DoHandleUpdateUI(wxUpdateUIEvent &event); -#endif // wxUSE_MENUS - - virtual bool ProcessEvent(wxEvent& event) wxOVERRIDE; - - virtual void DoGetClientSize(int *width, int *height) const wxOVERRIDE; - -private: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxAuiMDIParentFrame); -}; - -//----------------------------------------------------------------------------- -// wxAuiMDIChildFrame -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_AUI wxAuiMDIChildFrame : public wxPanel -{ -public: - wxAuiMDIChildFrame(); - wxAuiMDIChildFrame(wxAuiMDIParentFrame *parent, - wxWindowID winid, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - virtual ~wxAuiMDIChildFrame(); - bool Create(wxAuiMDIParentFrame *parent, - wxWindowID winid, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - -#if wxUSE_MENUS - virtual void SetMenuBar(wxMenuBar *menuBar); - virtual wxMenuBar *GetMenuBar() const; -#endif // wxUSE_MENUS - - virtual void SetTitle(const wxString& title); - virtual wxString GetTitle() const; - - virtual void SetIcons(const wxIconBundle& icons); - virtual const wxIconBundle& GetIcons() const; - - virtual void SetIcon(const wxIcon& icon); - virtual const wxIcon& GetIcon() const; - - virtual void Activate(); - virtual bool Destroy() wxOVERRIDE; - - virtual bool Show(bool show = true) wxOVERRIDE; - -#if wxUSE_STATUSBAR - // no status bars - virtual wxStatusBar* CreateStatusBar(int WXUNUSED(number) = 1, - long WXUNUSED(style) = 1, - wxWindowID WXUNUSED(winid) = 1, - const wxString& WXUNUSED(name) = wxEmptyString) - { return NULL; } - - virtual wxStatusBar *GetStatusBar() const { return NULL; } - virtual void SetStatusText( const wxString &WXUNUSED(text), int WXUNUSED(number)=0 ) {} - virtual void SetStatusWidths( int WXUNUSED(n), const int WXUNUSED(widths_field)[] ) {} -#endif - -#if wxUSE_TOOLBAR - // no toolbar bars - virtual wxToolBar* CreateToolBar(long WXUNUSED(style), - wxWindowID WXUNUSED(winid), - const wxString& WXUNUSED(name)) - { return NULL; } - virtual wxToolBar *GetToolBar() const { return NULL; } -#endif - - - // no maximize etc - virtual void Maximize(bool WXUNUSED(maximize) = true) { /* Has no effect */ } - virtual void Restore() { /* Has no effect */ } - virtual void Iconize(bool WXUNUSED(iconize) = true) { /* Has no effect */ } - virtual bool IsMaximized() const { return true; } - virtual bool IsIconized() const { return false; } - virtual bool ShowFullScreen(bool WXUNUSED(show), long WXUNUSED(style)) { return false; } - virtual bool IsFullScreen() const { return false; } - - virtual bool IsTopLevel() const wxOVERRIDE { return false; } - - void OnMenuHighlight(wxMenuEvent& evt); - void OnActivate(wxActivateEvent& evt); - void OnCloseWindow(wxCloseEvent& evt); - - void SetMDIParentFrame(wxAuiMDIParentFrame* parent); - wxAuiMDIParentFrame* GetMDIParentFrame() const; - -protected: - void Init(); - virtual void DoSetSize(int x, int y, int width, int height, int sizeFlags) wxOVERRIDE; - virtual void DoMoveWindow(int x, int y, int width, int height) wxOVERRIDE; - - // no size hints - virtual void DoSetSizeHints(int WXUNUSED(minW), int WXUNUSED(minH), - int WXUNUSED(maxW), int WXUNUSED(maxH), - int WXUNUSED(incW), int WXUNUSED(incH)) wxOVERRIDE {} -public: - // This function needs to be called when a size change is confirmed, - // we needed this function to prevent anybody from the outside - // changing the panel... it messes the UI layout when we would allow it. - void ApplyMDIChildFrameRect(); - void DoShow(bool show); - -protected: - wxAuiMDIParentFrame* m_pMDIParentFrame; - wxRect m_mdiNewRect; - wxRect m_mdiCurRect; - wxString m_title; - wxIcon m_icon; - wxIconBundle m_iconBundle; - bool m_activateOnCreate; - -#if wxUSE_MENUS - wxMenuBar* m_pMenuBar; -#endif // wxUSE_MENUS - - - -private: - wxDECLARE_DYNAMIC_CLASS(wxAuiMDIChildFrame); - wxDECLARE_EVENT_TABLE(); - - friend class wxAuiMDIClientWindow; -}; - -//----------------------------------------------------------------------------- -// wxAuiMDIClientWindow -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_AUI wxAuiMDIClientWindow : public wxAuiNotebook -{ -public: - wxAuiMDIClientWindow(); - wxAuiMDIClientWindow(wxAuiMDIParentFrame *parent, long style = 0); - - virtual bool CreateClient(wxAuiMDIParentFrame *parent, - long style = wxVSCROLL | wxHSCROLL); - - virtual int SetSelection(size_t page) wxOVERRIDE; - virtual wxAuiMDIChildFrame* GetActiveChild(); - virtual void SetActiveChild(wxAuiMDIChildFrame* pChildFrame) - { - SetSelection(GetPageIndex(pChildFrame)); - } - -protected: - - void PageChanged(int oldSelection, int newSelection); - void OnPageClose(wxAuiNotebookEvent& evt); - void OnPageChanged(wxAuiNotebookEvent& evt); - void OnSize(wxSizeEvent& evt); - -private: - wxDECLARE_DYNAMIC_CLASS(wxAuiMDIClientWindow); - wxDECLARE_EVENT_TABLE(); -}; -#endif // wxUSE_AUI - -#endif // _WX_AUITABMDI_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bannerwindow.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bannerwindow.h deleted file mode 100644 index c65f801f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bannerwindow.h +++ /dev/null @@ -1,144 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/bannerwindow.h -// Purpose: wxBannerWindow class declaration -// Author: Vadim Zeitlin -// Created: 2011-08-16 -// Copyright: (c) 2011 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BANNERWINDOW_H_ -#define _WX_BANNERWINDOW_H_ - -#include "wx/defs.h" - -#if wxUSE_BANNERWINDOW - -#include "wx/bitmap.h" -#include "wx/event.h" -#include "wx/window.h" - -class WXDLLIMPEXP_FWD_CORE wxBitmap; -class WXDLLIMPEXP_FWD_CORE wxColour; -class WXDLLIMPEXP_FWD_CORE wxDC; - -extern WXDLLIMPEXP_DATA_ADV(const char) wxBannerWindowNameStr[]; - -// ---------------------------------------------------------------------------- -// A simple banner window showing either a bitmap or text. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxBannerWindow : public wxWindow -{ -public: - // Default constructor, use Create() later. - wxBannerWindow() { Init(); } - - // Convenient constructor that should be used in the majority of cases. - // - // The banner orientation changes how the text in it is displayed and also - // defines where is the bitmap truncated if it's too big to fit but doesn't - // do anything for the banner position, this is supposed to be taken care - // of in the usual way, e.g. using sizers. - wxBannerWindow(wxWindow* parent, wxDirection dir = wxLEFT) - { - Init(); - - Create(parent, wxID_ANY, dir); - } - - // Full constructor provided for consistency with the other classes only. - wxBannerWindow(wxWindow* parent, - wxWindowID winid, - wxDirection dir = wxLEFT, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxBannerWindowNameStr) - { - Init(); - - Create(parent, winid, dir, pos, size, style, name); - } - - // Can be only called on objects created with the default constructor. - bool Create(wxWindow* parent, - wxWindowID winid, - wxDirection dir = wxLEFT, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxBannerWindowNameStr); - - - // Provide an existing bitmap to show. For wxLEFT orientation the bitmap is - // truncated from the top, for wxTOP and wxBOTTOM -- from the right and for - // wxRIGHT -- from the bottom, so put the most important part of the bitmap - // information in the opposite direction. - void SetBitmap(const wxBitmap& bmp); - - // Set the text to display. This is mutually exclusive with SetBitmap(). - // Title is rendered in bold and should be single line, message can have - // multiple lines but is not wrapped automatically. - void SetText(const wxString& title, const wxString& message); - - // Set the colours between which the gradient runs. This can be combined - // with SetText() but not SetBitmap(). - void SetGradient(const wxColour& start, const wxColour& end); - -protected: - virtual wxSize DoGetBestClientSize() const wxOVERRIDE; - -private: - // Common part of all constructors. - void Init(); - - // Fully invalidates the window. - void OnSize(wxSizeEvent& event); - - // Redraws the window using either m_bitmap or m_title/m_message. - void OnPaint(wxPaintEvent& event); - - // Helper of OnPaint(): draw the bitmap at the correct position depending - // on our orientation. - void DrawBitmapBackground(wxDC& dc); - - // Helper of OnPaint(): draw the text in the appropriate direction. - void DrawBannerTextLine(wxDC& dc, const wxString& str, const wxPoint& pos); - - // Return the font to use for the title. Currently this is hardcoded as a - // larger bold version of the standard window font but could be made - // configurable in the future. - wxFont GetTitleFont() const; - - // Return the colour to use for extending the bitmap. Non-const as it - // updates m_colBitmapBg if needed. - wxColour GetBitmapBg(); - - - // The window side along which the banner is laid out. - wxDirection m_direction; - - // If valid, this bitmap is drawn as is. - wxBitmap m_bitmap; - - // If bitmap is valid, this is the colour we use to extend it if the bitmap - // is smaller than this window. It is computed on demand by GetBitmapBg(). - wxColour m_colBitmapBg; - - // The title and main message to draw, used if m_bitmap is invalid. - wxString m_title, - m_message; - - // Start and stop gradient colours, only used when drawing text. - wxColour m_colStart, - m_colEnd; - - wxDECLARE_EVENT_TABLE(); - - wxDECLARE_NO_COPY_CLASS(wxBannerWindow); -}; - -#endif // wxUSE_BANNERWINDOW - -#endif // _WX_BANNERWINDOW_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/base64.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/base64.h deleted file mode 100644 index 14aaf7d8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/base64.h +++ /dev/null @@ -1,123 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/base64.h -// Purpose: declaration of BASE64 encoding/decoding functionality -// Author: Charles Reimers, Vadim Zeitlin -// Created: 2007-06-18 -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BASE64_H_ -#define _WX_BASE64_H_ - -#include "wx/defs.h" - -#if wxUSE_BASE64 - -#include "wx/string.h" -#include "wx/buffer.h" - -// ---------------------------------------------------------------------------- -// encoding functions -// ---------------------------------------------------------------------------- - -// return the size needed for the buffer containing the encoded representation -// of a buffer of given length -inline size_t wxBase64EncodedSize(size_t len) { return 4*((len+2)/3); } - -// raw base64 encoding function which encodes the contents of a buffer of the -// specified length into the buffer of the specified size -// -// returns the length of the encoded data or wxCONV_FAILED if the buffer is not -// large enough; to determine the needed size you can either allocate a buffer -// of wxBase64EncodedSize(srcLen) size or call the function with NULL buffer in -// which case the required size will be returned -WXDLLIMPEXP_BASE size_t -wxBase64Encode(char *dst, size_t dstLen, const void *src, size_t srcLen); - -// encode the contents of the given buffer using base64 and return as string -// (there is no error return) -inline wxString wxBase64Encode(const void *src, size_t srcLen) -{ - const size_t dstLen = wxBase64EncodedSize(srcLen); - wxCharBuffer dst(dstLen); - wxBase64Encode(dst.data(), dstLen, src, srcLen); - - return dst; -} - -inline wxString wxBase64Encode(const wxMemoryBuffer& buf) -{ - return wxBase64Encode(buf.GetData(), buf.GetDataLen()); -} - -// ---------------------------------------------------------------------------- -// decoding functions -// ---------------------------------------------------------------------------- - -// elements of this enum specify the possible behaviours of wxBase64Decode() -// when an invalid character is encountered -enum wxBase64DecodeMode -{ - // normal behaviour: stop at any invalid characters - wxBase64DecodeMode_Strict, - - // skip whitespace characters - wxBase64DecodeMode_SkipWS, - - // the most lenient behaviour: simply ignore all invalid characters - wxBase64DecodeMode_Relaxed -}; - -// return the buffer size necessary for decoding a base64 string of the given -// length -inline size_t wxBase64DecodedSize(size_t srcLen) { return 3*srcLen/4; } - -// raw decoding function which decodes the contents of the string of specified -// length (or NUL-terminated by default) into the provided buffer of the given -// size -// -// the function normally stops at any character invalid inside a base64-encoded -// string (i.e. not alphanumeric nor '+' nor '/') but can be made to skip the -// whitespace or all invalid characters using its mode argument -// -// returns the length of the decoded data or wxCONV_FAILED if an error occurs -// such as the buffer is too small or the encoded string is invalid; in the -// latter case the posErr is filled with the position where the decoding -// stopped if it is not NULL -WXDLLIMPEXP_BASE size_t -wxBase64Decode(void *dst, size_t dstLen, - const char *src, size_t srcLen = wxNO_LEN, - wxBase64DecodeMode mode = wxBase64DecodeMode_Strict, - size_t *posErr = NULL); - -inline size_t -wxBase64Decode(void *dst, size_t dstLen, - const wxString& src, - wxBase64DecodeMode mode = wxBase64DecodeMode_Strict, - size_t *posErr = NULL) -{ - // don't use str.length() here as the ASCII buffer is shorter than it for - // strings with embedded NULs - return wxBase64Decode(dst, dstLen, src.ToAscii(), wxNO_LEN, mode, posErr); -} - -// decode the contents of the given string; the returned buffer is empty if an -// error occurs during decoding -WXDLLIMPEXP_BASE wxMemoryBuffer -wxBase64Decode(const char *src, size_t srcLen = wxNO_LEN, - wxBase64DecodeMode mode = wxBase64DecodeMode_Strict, - size_t *posErr = NULL); - -inline wxMemoryBuffer -wxBase64Decode(const wxString& src, - wxBase64DecodeMode mode = wxBase64DecodeMode_Strict, - size_t *posErr = NULL) -{ - // don't use str.length() here as the ASCII buffer is shorter than it for - // strings with embedded NULs - return wxBase64Decode(src.ToAscii(), wxNO_LEN, mode, posErr); -} - -#endif // wxUSE_BASE64 - -#endif // _WX_BASE64_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/beforestd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/beforestd.h deleted file mode 100644 index 45c5b5bc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/beforestd.h +++ /dev/null @@ -1,58 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/beforestd.h -// Purpose: #include before STL headers -// Author: Vadim Zeitlin -// Modified by: -// Created: 07/07/03 -// Copyright: (c) 2003 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -/** - Unfortunately, when compiling at maximum warning level, the standard - headers themselves may generate warnings -- and really lots of them. So - before including them, this header should be included to temporarily - suppress the warnings and after this the header afterstd.h should be - included to enable them back again. - - Note that there are intentionally no inclusion guards in this file, because - it can be included several times. - */ - -// VC 7.x isn't as bad as VC6 and doesn't give these warnings but eVC (which -// defines _MSC_VER as 1201) does need to be included as it's VC6-like -#if defined(__VISUALC__) && __VISUALC__ <= 1201 - // these warning have to be disabled and not just temporarily disabled - // because they will be given at the end of the compilation of the - // current source and there is absolutely nothing we can do about them so - // disable them before warning(push) below - - // 'foo': unreferenced inline function has been removed - #pragma warning(disable:4514) - - // 'function' : function not inlined - #pragma warning(disable:4710) - - // 'id': identifier was truncated to 'num' characters in the debug info - #pragma warning(disable:4786) - - // we have to disable (and reenable in afterstd.h) this one because, - // even though it is of level 4, it is not disabled by warning(push, 1) - // below for VC7.1! - - // unreachable code - #pragma warning(disable:4702) - - #pragma warning(push, 1) -#endif // VC++ < 7 - -/** - GCC's visibility support is broken for libstdc++ in some older versions - (namely Debian/Ubuntu's GCC 4.1, see - https://bugs.launchpad.net/ubuntu/+source/gcc-4.1/+bug/109262). We fix it - here by mimicking newer versions' behaviour of using default visibility - for libstdc++ code. - */ -#if defined(HAVE_VISIBILITY) && defined(HAVE_BROKEN_LIBSTDCXX_VISIBILITY) - #pragma GCC visibility push(default) -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bitmap.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bitmap.h deleted file mode 100644 index 9032097b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bitmap.h +++ /dev/null @@ -1,321 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/bitmap.h -// Purpose: wxBitmap class interface -// Author: Vaclav Slavik -// Modified by: -// Created: 22.04.01 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BITMAP_H_BASE_ -#define _WX_BITMAP_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/string.h" -#include "wx/gdicmn.h" // for wxBitmapType -#include "wx/colour.h" -#include "wx/image.h" - -class WXDLLIMPEXP_FWD_CORE wxBitmap; -class WXDLLIMPEXP_FWD_CORE wxBitmapHandler; -class WXDLLIMPEXP_FWD_CORE wxIcon; -class WXDLLIMPEXP_FWD_CORE wxMask; -class WXDLLIMPEXP_FWD_CORE wxPalette; -class WXDLLIMPEXP_FWD_CORE wxDC; - -// ---------------------------------------------------------------------------- -// wxVariant support -// ---------------------------------------------------------------------------- - -#if wxUSE_VARIANT -#include "wx/variant.h" -DECLARE_VARIANT_OBJECT_EXPORTED(wxBitmap,WXDLLIMPEXP_CORE) -#endif - -// ---------------------------------------------------------------------------- -// wxMask represents the transparent area of the bitmap -// ---------------------------------------------------------------------------- - -// TODO: all implementation of wxMask, except the generic one, -// do not derive from wxMaskBase,,, they should -class WXDLLIMPEXP_CORE wxMaskBase : public wxObject -{ -public: - // create the mask from bitmap pixels of the given colour - bool Create(const wxBitmap& bitmap, const wxColour& colour); - -#if wxUSE_PALETTE - // create the mask from bitmap pixels with the given palette index - bool Create(const wxBitmap& bitmap, int paletteIndex); -#endif // wxUSE_PALETTE - - // create the mask from the given mono bitmap - bool Create(const wxBitmap& bitmap); - -protected: - // this function is called from Create() to free the existing mask data - virtual void FreeData() = 0; - - // these functions must be overridden to implement the corresponding public - // Create() methods, they shouldn't call FreeData() as it's already called - // by the public wrappers - virtual bool InitFromColour(const wxBitmap& bitmap, - const wxColour& colour) = 0; - virtual bool InitFromMonoBitmap(const wxBitmap& bitmap) = 0; -}; - -#if defined(__WXDFB__) || \ - defined(__WXMAC__) || \ - defined(__WXGTK__) || \ - defined(__WXMOTIF__) || \ - defined(__WXX11__) || \ - defined(__WXQT__) - #define wxUSE_BITMAP_BASE 1 -#else - #define wxUSE_BITMAP_BASE 0 -#endif - -// a more readable way to tell -#define wxBITMAP_SCREEN_DEPTH (-1) - - -// ---------------------------------------------------------------------------- -// wxBitmapHelpers: container for various bitmap methods common to all ports. -// ---------------------------------------------------------------------------- - -// Unfortunately, currently wxBitmap does not inherit from wxBitmapBase on all -// platforms and this is not easy to fix. So we extract at least some common -// methods into this class from which both wxBitmapBase (and hence wxBitmap on -// all platforms where it does inherit from it) and wxBitmap in wxMSW and other -// exceptional ports (only wxPM and old wxCocoa) inherit. -class WXDLLIMPEXP_CORE wxBitmapHelpers -{ -public: - // Create a new wxBitmap from the PNG data in the given buffer. - static wxBitmap NewFromPNGData(const void* data, size_t size); -}; - - -// All ports except wxMSW use wxBitmapHandler and wxBitmapBase as -// base class for wxBitmapHandler; wxMSW uses wxGDIImageHandler as -// base class since it allows some code reuse there. -#if wxUSE_BITMAP_BASE - -// ---------------------------------------------------------------------------- -// wxBitmapHandler: class which knows how to create/load/save bitmaps in -// different formats -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxBitmapHandler : public wxObject -{ -public: - wxBitmapHandler() { m_type = wxBITMAP_TYPE_INVALID; } - virtual ~wxBitmapHandler() { } - - // NOTE: the following functions should be pure virtuals, but they aren't - // because otherwise almost all ports would have to implement - // them as "return false"... - - virtual bool Create(wxBitmap *WXUNUSED(bitmap), const void* WXUNUSED(data), - wxBitmapType WXUNUSED(type), int WXUNUSED(width), int WXUNUSED(height), - int WXUNUSED(depth) = 1) - { return false; } - - virtual bool LoadFile(wxBitmap *WXUNUSED(bitmap), const wxString& WXUNUSED(name), - wxBitmapType WXUNUSED(type), int WXUNUSED(desiredWidth), - int WXUNUSED(desiredHeight)) - { return false; } - - virtual bool SaveFile(const wxBitmap *WXUNUSED(bitmap), const wxString& WXUNUSED(name), - wxBitmapType WXUNUSED(type), const wxPalette *WXUNUSED(palette) = NULL) const - { return false; } - - void SetName(const wxString& name) { m_name = name; } - void SetExtension(const wxString& ext) { m_extension = ext; } - void SetType(wxBitmapType type) { m_type = type; } - const wxString& GetName() const { return m_name; } - const wxString& GetExtension() const { return m_extension; } - wxBitmapType GetType() const { return m_type; } - -private: - wxString m_name; - wxString m_extension; - wxBitmapType m_type; - - wxDECLARE_ABSTRACT_CLASS(wxBitmapHandler); -}; - -// ---------------------------------------------------------------------------- -// wxBitmap: class which represents platform-dependent bitmap (unlike wxImage) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxBitmapBase : public wxGDIObject, - public wxBitmapHelpers -{ -public: - /* - Derived class must implement these: - - wxBitmap(); - wxBitmap(const wxBitmap& bmp); - wxBitmap(const char bits[], int width, int height, int depth = 1); - wxBitmap(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH); - wxBitmap(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH); - wxBitmap(const char* const* bits); - wxBitmap(const wxString &filename, wxBitmapType type = wxBITMAP_TYPE_XPM); - wxBitmap(const wxImage& image, int depth = wxBITMAP_SCREEN_DEPTH); - - static void InitStandardHandlers(); - */ - - virtual bool Create(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH) = 0; - virtual bool Create(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH) = 0; - virtual bool CreateScaled(int w, int h, int d, double logicalScale) - { return Create(wxRound(w*logicalScale), wxRound(h*logicalScale), d); } - - virtual int GetHeight() const = 0; - virtual int GetWidth() const = 0; - virtual int GetDepth() const = 0; - - wxSize GetSize() const - { return wxSize(GetWidth(), GetHeight()); } - - // support for scaled bitmaps - virtual double GetScaleFactor() const { return 1.0; } - virtual double GetScaledWidth() const { return GetWidth() / GetScaleFactor(); } - virtual double GetScaledHeight() const { return GetHeight() / GetScaleFactor(); } - virtual wxSize GetScaledSize() const - { return wxSize(wxRound(GetScaledWidth()), wxRound(GetScaledHeight())); } - -#if wxUSE_IMAGE - virtual wxImage ConvertToImage() const = 0; - - // Convert to disabled (dimmed) bitmap. - wxBitmap ConvertToDisabled(unsigned char brightness = 255) const; -#endif // wxUSE_IMAGE - - virtual wxMask *GetMask() const = 0; - virtual void SetMask(wxMask *mask) = 0; - - virtual wxBitmap GetSubBitmap(const wxRect& rect) const = 0; - - virtual bool SaveFile(const wxString &name, wxBitmapType type, - const wxPalette *palette = NULL) const = 0; - virtual bool LoadFile(const wxString &name, wxBitmapType type) = 0; - - /* - If raw bitmap access is supported (see wx/rawbmp.h), the following - methods should be implemented: - - virtual bool GetRawData(wxRawBitmapData *data) = 0; - virtual void UngetRawData(wxRawBitmapData *data) = 0; - */ - -#if wxUSE_PALETTE - virtual wxPalette *GetPalette() const = 0; - virtual void SetPalette(const wxPalette& palette) = 0; -#endif // wxUSE_PALETTE - - // copies the contents and mask of the given (colour) icon to the bitmap - virtual bool CopyFromIcon(const wxIcon& icon) = 0; - - // implementation: - virtual void SetHeight(int height) = 0; - virtual void SetWidth(int width) = 0; - virtual void SetDepth(int depth) = 0; - - // Format handling - static inline wxList& GetHandlers() { return sm_handlers; } - static void AddHandler(wxBitmapHandler *handler); - static void InsertHandler(wxBitmapHandler *handler); - static bool RemoveHandler(const wxString& name); - static wxBitmapHandler *FindHandler(const wxString& name); - static wxBitmapHandler *FindHandler(const wxString& extension, wxBitmapType bitmapType); - static wxBitmapHandler *FindHandler(wxBitmapType bitmapType); - - //static void InitStandardHandlers(); - // (wxBitmap must implement this one) - - static void CleanUpHandlers(); - - // this method is only used by the generic implementation of wxMask - // currently but could be useful elsewhere in the future: it can be - // overridden to quantize the colour to correspond to bitmap colour depth - // if necessary; default implementation simply returns the colour as is - virtual wxColour QuantizeColour(const wxColour& colour) const - { - return colour; - } - -protected: - static wxList sm_handlers; - - wxDECLARE_ABSTRACT_CLASS(wxBitmapBase); -}; - -#endif // wxUSE_BITMAP_BASE - - -// the wxBITMAP_DEFAULT_TYPE constant defines the default argument value -// for wxBitmap's ctor and wxBitmap::LoadFile() functions. -#if defined(__WXMSW__) - #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_BMP_RESOURCE - #include "wx/msw/bitmap.h" -#elif defined(__WXMOTIF__) - #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_XPM - #include "wx/x11/bitmap.h" -#elif defined(__WXGTK20__) - #ifdef __WINDOWS__ - #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_BMP_RESOURCE - #else - #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_XPM - #endif - #include "wx/gtk/bitmap.h" -#elif defined(__WXGTK__) - #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_XPM - #include "wx/gtk1/bitmap.h" -#elif defined(__WXX11__) - #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_XPM - #include "wx/x11/bitmap.h" -#elif defined(__WXDFB__) - #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_BMP_RESOURCE - #include "wx/dfb/bitmap.h" -#elif defined(__WXMAC__) - #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_PICT_RESOURCE - #include "wx/osx/bitmap.h" -#elif defined(__WXQT__) - #define wxBITMAP_DEFAULT_TYPE wxBITMAP_TYPE_XPM - #include "wx/qt/bitmap.h" -#endif - -#if wxUSE_IMAGE -inline -wxBitmap -#if wxUSE_BITMAP_BASE -wxBitmapBase:: -#else -wxBitmap:: -#endif -ConvertToDisabled(unsigned char brightness) const -{ - const wxImage imgDisabled = ConvertToImage().ConvertToDisabled(brightness); - return wxBitmap(imgDisabled, -1, GetScaleFactor()); -} -#endif // wxUSE_IMAGE - -// we must include generic mask.h after wxBitmap definition -#if defined(__WXDFB__) - #define wxUSE_GENERIC_MASK 1 -#else - #define wxUSE_GENERIC_MASK 0 -#endif - -#if wxUSE_GENERIC_MASK - #include "wx/generic/mask.h" -#endif - -#endif // _WX_BITMAP_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bmpbuttn.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bmpbuttn.h deleted file mode 100644 index 2aec6703..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bmpbuttn.h +++ /dev/null @@ -1,132 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/bmpbuttn.h -// Purpose: wxBitmapButton class interface -// Author: Vadim Zeitlin -// Modified by: -// Created: 25.08.00 -// Copyright: (c) 2000 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BMPBUTTON_H_BASE_ -#define _WX_BMPBUTTON_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_BMPBUTTON - -#include "wx/button.h" - -// FIXME: right now only wxMSW, wxGTK and wxOSX implement bitmap support in wxButton -// itself, this shouldn't be used for the other platforms neither -// when all of them do it -#if (defined(__WXMSW__) || defined(__WXGTK20__) || defined(__WXOSX__) || defined(__WXQT__)) && !defined(__WXUNIVERSAL__) - #define wxHAS_BUTTON_BITMAP -#endif - -class WXDLLIMPEXP_FWD_CORE wxBitmapButton; - -// ---------------------------------------------------------------------------- -// wxBitmapButton: a button which shows bitmaps instead of the usual string. -// It has different bitmaps for different states (focused/disabled/pressed) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxBitmapButtonBase : public wxButton -{ -public: - wxBitmapButtonBase() - { -#ifndef wxHAS_BUTTON_BITMAP - m_marginX = - m_marginY = 0; -#endif // wxHAS_BUTTON_BITMAP - } - - bool Create(wxWindow *parent, - wxWindowID winid, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name) - { - // We use wxBU_NOTEXT to let the base class Create() know that we are - // not going to show the label: this is a hack needed for wxGTK where - // we can show both label and bitmap only with GTK 2.6+ but we always - // can show just one of them and this style allows us to choose which - // one we need. - // - // And we also use wxBU_EXACTFIT to avoid being resized up to the - // standard button size as this doesn't make sense for bitmap buttons - // which are not standard anyhow and should fit their bitmap size. - return wxButton::Create(parent, winid, "", - pos, size, - style | wxBU_NOTEXT | wxBU_EXACTFIT, - validator, name); - } - - // Special creation function for a standard "Close" bitmap. It allows to - // simply create a close button with the image appropriate for the current - // platform. - static wxBitmapButton* NewCloseButton(wxWindow* parent, wxWindowID winid); - - - // set/get the margins around the button - virtual void SetMargins(int x, int y) - { - DoSetBitmapMargins(x, y); - } - - int GetMarginX() const { return DoGetBitmapMargins().x; } - int GetMarginY() const { return DoGetBitmapMargins().y; } - -protected: -#ifndef wxHAS_BUTTON_BITMAP - // function called when any of the bitmaps changes - virtual void OnSetBitmap() { InvalidateBestSize(); Refresh(); } - - virtual wxBitmap DoGetBitmap(State which) const { return m_bitmaps[which]; } - virtual void DoSetBitmap(const wxBitmap& bitmap, State which) - { m_bitmaps[which] = bitmap; OnSetBitmap(); } - - virtual wxSize DoGetBitmapMargins() const - { - return wxSize(m_marginX, m_marginY); - } - - virtual void DoSetBitmapMargins(int x, int y) - { - m_marginX = x; - m_marginY = y; - } - - // the bitmaps for various states - wxBitmap m_bitmaps[State_Max]; - - // the margins around the bitmap - int m_marginX, - m_marginY; -#endif // !wxHAS_BUTTON_BITMAP - - wxDECLARE_NO_COPY_CLASS(wxBitmapButtonBase); -}; - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/bmpbuttn.h" -#elif defined(__WXMSW__) - #include "wx/msw/bmpbuttn.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/bmpbuttn.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/bmpbuttn.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/bmpbuttn.h" -#elif defined(__WXMAC__) - #include "wx/osx/bmpbuttn.h" -#elif defined(__WXQT__) - #include "wx/qt/bmpbuttn.h" -#endif - -#endif // wxUSE_BMPBUTTON - -#endif // _WX_BMPBUTTON_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bmpcbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bmpcbox.h deleted file mode 100644 index a5b9beee..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bmpcbox.h +++ /dev/null @@ -1,125 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/bmpcbox.h -// Purpose: wxBitmapComboBox base header -// Author: Jaakko Salli -// Modified by: -// Created: Aug-31-2006 -// Copyright: (c) Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BMPCBOX_H_BASE_ -#define _WX_BMPCBOX_H_BASE_ - - -#include "wx/defs.h" - -#if wxUSE_BITMAPCOMBOBOX - -#include "wx/bitmap.h" -#include "wx/dynarray.h" - -class WXDLLIMPEXP_FWD_CORE wxWindow; -class WXDLLIMPEXP_FWD_CORE wxItemContainer; - -// Define wxBITMAPCOMBOBOX_OWNERDRAWN_BASED for platforms which -// wxBitmapComboBox implementation utilizes ownerdrawn combobox -// (either native or generic). -#if !defined(__WXGTK20__) || defined(__WXUNIVERSAL__) - #define wxBITMAPCOMBOBOX_OWNERDRAWN_BASED - -class WXDLLIMPEXP_FWD_CORE wxDC; -#endif - -extern WXDLLIMPEXP_DATA_ADV(const char) wxBitmapComboBoxNameStr[]; - - -class WXDLLIMPEXP_ADV wxBitmapComboBoxBase -{ -public: - // ctors and such - wxBitmapComboBoxBase() { Init(); } - - virtual ~wxBitmapComboBoxBase() { } - - // Sets the image for the given item. - virtual void SetItemBitmap(unsigned int n, const wxBitmap& bitmap) = 0; - -#if !defined(wxBITMAPCOMBOBOX_OWNERDRAWN_BASED) - - // Returns the image of the item with the given index. - virtual wxBitmap GetItemBitmap(unsigned int n) const = 0; - - // Returns size of the image used in list - virtual wxSize GetBitmapSize() const = 0; - -private: - void Init() {} - -#else // wxBITMAPCOMBOBOX_OWNERDRAWN_BASED - - // Returns the image of the item with the given index. - virtual wxBitmap GetItemBitmap(unsigned int n) const; - - // Returns size of the image used in list - virtual wxSize GetBitmapSize() const - { - return m_usedImgSize; - } - -protected: - - // Returns pointer to the combobox item container - virtual wxItemContainer* GetItemContainer() = 0; - - // Return pointer to the owner-drawn combobox control - virtual wxWindow* GetControl() = 0; - - // wxItemContainer functions - void BCBDoClear(); - void BCBDoDeleteOneItem(unsigned int n); - - void DoSetItemBitmap(unsigned int n, const wxBitmap& bitmap); - - void DrawBackground(wxDC& dc, const wxRect& rect, int item, int flags) const; - void DrawItem(wxDC& dc, const wxRect& rect, int item, const wxString& text, - int flags) const; - wxCoord MeasureItem(size_t item) const; - - // Returns true if image size was affected - virtual bool OnAddBitmap(const wxBitmap& bitmap); - - // Recalculates amount of empty space needed in front of text - // in control itself. Returns number that can be passed to - // wxOwnerDrawnComboBox::SetCustomPaintWidth() and similar - // functions. - virtual int DetermineIndent(); - - void UpdateInternals(); - - wxArrayPtrVoid m_bitmaps; // Images associated with items - wxSize m_usedImgSize; // Size of bitmaps - - int m_imgAreaWidth; // Width and height of area next to text field - int m_fontHeight; - int m_indent; - -private: - void Init(); -#endif // !wxBITMAPCOMBOBOX_OWNERDRAWN_BASED/wxBITMAPCOMBOBOX_OWNERDRAWN_BASED -}; - - -#if defined(__WXUNIVERSAL__) - #include "wx/generic/bmpcbox.h" -#elif defined(__WXMSW__) - #include "wx/msw/bmpcbox.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/bmpcbox.h" -#else - #include "wx/generic/bmpcbox.h" -#endif - -#endif // wxUSE_BITMAPCOMBOBOX - -#endif // _WX_BMPCBOX_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bookctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bookctrl.h deleted file mode 100644 index 35d7bb45..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/bookctrl.h +++ /dev/null @@ -1,437 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/bookctrl.h -// Purpose: wxBookCtrlBase: common base class for wxList/Tree/Notebook -// Author: Vadim Zeitlin -// Modified by: -// Created: 19.08.03 -// Copyright: (c) 2003 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BOOKCTRL_H_ -#define _WX_BOOKCTRL_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_BOOKCTRL - -#include "wx/control.h" -#include "wx/dynarray.h" -#include "wx/withimages.h" - -WX_DEFINE_EXPORTED_ARRAY_PTR(wxWindow *, wxArrayPages); - -class WXDLLIMPEXP_FWD_CORE wxImageList; -class WXDLLIMPEXP_FWD_CORE wxBookCtrlEvent; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// wxBookCtrl hit results -enum -{ - wxBK_HITTEST_NOWHERE = 1, // not on tab - wxBK_HITTEST_ONICON = 2, // on icon - wxBK_HITTEST_ONLABEL = 4, // on label - wxBK_HITTEST_ONITEM = 16, // on tab control but not on its icon or label - wxBK_HITTEST_ONPAGE = 8 // not on tab control, but over the selected page -}; - -// wxBookCtrl flags (common for wxNotebook, wxListbook, wxChoicebook, wxTreebook) -#define wxBK_DEFAULT 0x0000 -#define wxBK_TOP 0x0010 -#define wxBK_BOTTOM 0x0020 -#define wxBK_LEFT 0x0040 -#define wxBK_RIGHT 0x0080 -#define wxBK_ALIGN_MASK (wxBK_TOP | wxBK_BOTTOM | wxBK_LEFT | wxBK_RIGHT) - -// ---------------------------------------------------------------------------- -// wxBookCtrlBase -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxBookCtrlBase : public wxControl, - public wxWithImages -{ -public: - // construction - // ------------ - - wxBookCtrlBase() - { - Init(); - } - - wxBookCtrlBase(wxWindow *parent, - wxWindowID winid, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxEmptyString) - { - Init(); - - (void)Create(parent, winid, pos, size, style, name); - } - - // quasi ctor - bool Create(wxWindow *parent, - wxWindowID winid, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxEmptyString); - - - // accessors - // --------- - - // get number of pages in the dialog - virtual size_t GetPageCount() const { return m_pages.size(); } - - // get the panel which represents the given page - virtual wxWindow *GetPage(size_t n) const { return m_pages[n]; } - - // get the current page or NULL if none - wxWindow *GetCurrentPage() const - { - const int n = GetSelection(); - return n == wxNOT_FOUND ? NULL : GetPage(n); - } - - // get the currently selected page or wxNOT_FOUND if none - virtual int GetSelection() const { return m_selection; } - - // set/get the title of a page - virtual bool SetPageText(size_t n, const wxString& strText) = 0; - virtual wxString GetPageText(size_t n) const = 0; - - - // image list stuff: each page may have an image associated with it (all - // images belong to the same image list) - // --------------------------------------------------------------------- - - // sets/returns item's image index in the current image list - virtual int GetPageImage(size_t n) const = 0; - virtual bool SetPageImage(size_t n, int imageId) = 0; - - - // geometry - // -------- - - // resize the notebook so that all pages will have the specified size - virtual void SetPageSize(const wxSize& size); - - // return the size of the area needed to accommodate the controller - wxSize GetControllerSize() const; - - // calculate the size of the control from the size of its page - // - // by default this simply returns size enough to fit both the page and the - // controller - virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const; - - // get/set size of area between book control area and page area - unsigned int GetInternalBorder() const { return m_internalBorder; } - void SetInternalBorder(unsigned int border) { m_internalBorder = border; } - - // Sets/gets the margin around the controller - void SetControlMargin(int margin) { m_controlMargin = margin; } - int GetControlMargin() const { return m_controlMargin; } - - // returns true if we have wxBK_TOP or wxBK_BOTTOM style - bool IsVertical() const { return HasFlag(wxBK_BOTTOM | wxBK_TOP); } - - // set/get option to shrink to fit current page - void SetFitToCurrentPage(bool fit) { m_fitToCurrentPage = fit; } - bool GetFitToCurrentPage() const { return m_fitToCurrentPage; } - - // returns the sizer containing the control, if any - wxSizer* GetControlSizer() const { return m_controlSizer; } - - - // operations - // ---------- - - // remove one page from the control and delete it - virtual bool DeletePage(size_t n); - - // remove one page from the notebook, without deleting it - virtual bool RemovePage(size_t n) - { - DoInvalidateBestSize(); - return DoRemovePage(n) != NULL; - } - - // remove all pages and delete them - virtual bool DeleteAllPages() - { - m_selection = wxNOT_FOUND; - DoInvalidateBestSize(); - WX_CLEAR_ARRAY(m_pages); - return true; - } - - // adds a new page to the control - virtual bool AddPage(wxWindow *page, - const wxString& text, - bool bSelect = false, - int imageId = NO_IMAGE) - { - DoInvalidateBestSize(); - return InsertPage(GetPageCount(), page, text, bSelect, imageId); - } - - // the same as AddPage(), but adds the page at the specified position - virtual bool InsertPage(size_t n, - wxWindow *page, - const wxString& text, - bool bSelect = false, - int imageId = NO_IMAGE) = 0; - - // set the currently selected page, return the index of the previously - // selected one (or wxNOT_FOUND on error) - // - // NB: this function will generate PAGE_CHANGING/ED events - virtual int SetSelection(size_t n) = 0; - - // acts as SetSelection but does not generate events - virtual int ChangeSelection(size_t n) = 0; - - - // cycle thru the pages - void AdvanceSelection(bool forward = true) - { - int nPage = GetNextPage(forward); - if ( nPage != wxNOT_FOUND ) - { - // cast is safe because of the check above - SetSelection((size_t)nPage); - } - } - - // return the index of the given page or wxNOT_FOUND - int FindPage(const wxWindow* page) const; - - // hit test: returns which page is hit and, optionally, where (icon, label) - virtual int HitTest(const wxPoint& WXUNUSED(pt), - long * WXUNUSED(flags) = NULL) const - { - return wxNOT_FOUND; - } - - - // we do have multiple pages - virtual bool HasMultiplePages() const wxOVERRIDE { return true; } - - // we don't want focus for ourselves - virtual bool AcceptsFocus() const wxOVERRIDE { return false; } - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const wxOVERRIDE { return false; } - -protected: - // flags for DoSetSelection() - enum - { - SetSelection_SendEvent = 1 - }; - - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - // After the insertion of the page in the method InsertPage, calling this - // method sets the selection to the given page or the first one if there is - // still no selection. The "selection changed" event is sent only if - // bSelect is true, so when it is false, no event is sent even if the - // selection changed from wxNOT_FOUND to 0 when inserting the first page. - // - // Returns true if the selection was set to the specified page (explicitly - // because of bSelect == true or implicitly because it's the first page) or - // false otherwise. - bool DoSetSelectionAfterInsertion(size_t n, bool bSelect); - - // Update the selection after removing the page at the given index, - // typically called from the derived class overridden DoRemovePage(). - void DoSetSelectionAfterRemoval(size_t n); - - // set the selection to the given page, sending the events (which can - // possibly prevent the page change from taking place) if SendEvent flag is - // included - virtual int DoSetSelection(size_t nPage, int flags = 0); - - // if the derived class uses DoSetSelection() for implementing - // [Set|Change]Selection, it must override UpdateSelectedPage(), - // CreatePageChangingEvent() and MakeChangedEvent(), but as it might not - // use it, these functions are not pure virtual - - // called to notify the control about a new current page - virtual void UpdateSelectedPage(size_t WXUNUSED(newsel)) - { wxFAIL_MSG(wxT("Override this function!")); } - - // create a new "page changing" event - virtual wxBookCtrlEvent* CreatePageChangingEvent() const - { wxFAIL_MSG(wxT("Override this function!")); return NULL; } - - // modify the event created by CreatePageChangingEvent() to "page changed" - // event, usually by just calling SetEventType() on it - virtual void MakeChangedEvent(wxBookCtrlEvent& WXUNUSED(event)) - { wxFAIL_MSG(wxT("Override this function!")); } - - - // The derived class also may override the following method, also called - // from DoSetSelection(), to show/hide pages differently. - virtual void DoShowPage(wxWindow* page, bool show) { page->Show(show); } - - - // Should we accept NULL page pointers in Add/InsertPage()? - // - // Default is no but derived classes may override it if they can treat NULL - // pages in some sensible way (e.g. wxTreebook overrides this to allow - // having nodes without any associated page) - virtual bool AllowNullPage() const { return false; } - - // Remove the page and return a pointer to it. - // - // It also needs to update the current selection if necessary, i.e. if the - // page being removed comes before the selected one and the helper method - // DoSetSelectionAfterRemoval() can be used for this. - virtual wxWindow *DoRemovePage(size_t page) = 0; - - // our best size is the size which fits all our pages - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - // helper: get the next page wrapping if we reached the end - int GetNextPage(bool forward) const; - - // Lay out controls - virtual void DoSize(); - - // This method also invalidates the size of the controller and should be - // called instead of just InvalidateBestSize() whenever pages are added or - // removed as this also affects the controller - void DoInvalidateBestSize(); - -#if wxUSE_HELP - // Show the help for the corresponding page - void OnHelp(wxHelpEvent& event); -#endif // wxUSE_HELP - - - // the array of all pages of this control - wxArrayPages m_pages; - - // get the page area - virtual wxRect GetPageRect() const; - - // event handlers - void OnSize(wxSizeEvent& event); - - // controller buddy if available, NULL otherwise (usually for native book controls like wxNotebook) - wxControl *m_bookctrl; - - // Whether to shrink to fit current page - bool m_fitToCurrentPage; - - // the sizer containing the choice control - wxSizer *m_controlSizer; - - // the margin around the choice control - int m_controlMargin; - - // The currently selected page (in range 0..m_pages.size()-1 inclusive) or - // wxNOT_FOUND if none (this can normally only be the case for an empty - // control without any pages). - int m_selection; - -private: - - // common part of all ctors - void Init(); - - // internal border - unsigned int m_internalBorder; - - wxDECLARE_ABSTRACT_CLASS(wxBookCtrlBase); - wxDECLARE_NO_COPY_CLASS(wxBookCtrlBase); - - wxDECLARE_EVENT_TABLE(); -}; - -// ---------------------------------------------------------------------------- -// wxBookCtrlEvent: page changing events generated by book classes -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxBookCtrlEvent : public wxNotifyEvent -{ -public: - wxBookCtrlEvent(wxEventType commandType = wxEVT_NULL, int winid = 0, - int nSel = wxNOT_FOUND, int nOldSel = wxNOT_FOUND) - : wxNotifyEvent(commandType, winid) - { - m_nSel = nSel; - m_nOldSel = nOldSel; - } - - wxBookCtrlEvent(const wxBookCtrlEvent& event) - : wxNotifyEvent(event) - { - m_nSel = event.m_nSel; - m_nOldSel = event.m_nOldSel; - } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxBookCtrlEvent(*this); } - - // accessors - // the currently selected page (wxNOT_FOUND if none) - int GetSelection() const { return m_nSel; } - void SetSelection(int nSel) { m_nSel = nSel; } - // the page that was selected before the change (wxNOT_FOUND if none) - int GetOldSelection() const { return m_nOldSel; } - void SetOldSelection(int nOldSel) { m_nOldSel = nOldSel; } - -private: - int m_nSel, // currently selected page - m_nOldSel; // previously selected page - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxBookCtrlEvent); -}; - -typedef void (wxEvtHandler::*wxBookCtrlEventFunction)(wxBookCtrlEvent&); - -#define wxBookCtrlEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxBookCtrlEventFunction, func) - -// obsolete name, defined for compatibility only -#define wxBookCtrlBaseEvent wxBookCtrlEvent - -// make a default book control for given platform -#if wxUSE_NOTEBOOK - // dedicated to majority of desktops - #include "wx/notebook.h" - #define wxBookCtrl wxNotebook - #define wxEVT_BOOKCTRL_PAGE_CHANGED wxEVT_NOTEBOOK_PAGE_CHANGED - #define wxEVT_BOOKCTRL_PAGE_CHANGING wxEVT_NOTEBOOK_PAGE_CHANGING - #define EVT_BOOKCTRL_PAGE_CHANGED(id, fn) EVT_NOTEBOOK_PAGE_CHANGED(id, fn) - #define EVT_BOOKCTRL_PAGE_CHANGING(id, fn) EVT_NOTEBOOK_PAGE_CHANGING(id, fn) -#else - // dedicated to Smartphones - #include "wx/choicebk.h" - #define wxBookCtrl wxChoicebook - #define wxEVT_BOOKCTRL_PAGE_CHANGED wxEVT_CHOICEBOOK_PAGE_CHANGED - #define wxEVT_BOOKCTRL_PAGE_CHANGING wxEVT_CHOICEBOOK_PAGE_CHANGING - #define EVT_BOOKCTRL_PAGE_CHANGED(id, fn) EVT_CHOICEBOOK_PAGE_CHANGED(id, fn) - #define EVT_BOOKCTRL_PAGE_CHANGING(id, fn) EVT_CHOICEBOOK_PAGE_CHANGING(id, fn) -#endif - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGED wxEVT_BOOKCTRL_PAGE_CHANGED -#define wxEVT_COMMAND_BOOKCTRL_PAGE_CHANGING wxEVT_BOOKCTRL_PAGE_CHANGING - -#endif // wxUSE_BOOKCTRL - -#endif // _WX_BOOKCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/brush.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/brush.h deleted file mode 100644 index c4fb1da2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/brush.h +++ /dev/null @@ -1,127 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/brush.h -// Purpose: Includes platform-specific wxBrush file -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BRUSH_H_BASE_ -#define _WX_BRUSH_H_BASE_ - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" // for wxGDIObjListBase - -// NOTE: these values cannot be combined together! -enum wxBrushStyle -{ - wxBRUSHSTYLE_INVALID = -1, - - wxBRUSHSTYLE_SOLID = wxSOLID, - wxBRUSHSTYLE_TRANSPARENT = wxTRANSPARENT, - wxBRUSHSTYLE_STIPPLE_MASK_OPAQUE = wxSTIPPLE_MASK_OPAQUE, - wxBRUSHSTYLE_STIPPLE_MASK = wxSTIPPLE_MASK, - wxBRUSHSTYLE_STIPPLE = wxSTIPPLE, - wxBRUSHSTYLE_BDIAGONAL_HATCH = wxHATCHSTYLE_BDIAGONAL, - wxBRUSHSTYLE_CROSSDIAG_HATCH = wxHATCHSTYLE_CROSSDIAG, - wxBRUSHSTYLE_FDIAGONAL_HATCH = wxHATCHSTYLE_FDIAGONAL, - wxBRUSHSTYLE_CROSS_HATCH = wxHATCHSTYLE_CROSS, - wxBRUSHSTYLE_HORIZONTAL_HATCH = wxHATCHSTYLE_HORIZONTAL, - wxBRUSHSTYLE_VERTICAL_HATCH = wxHATCHSTYLE_VERTICAL, - wxBRUSHSTYLE_FIRST_HATCH = wxHATCHSTYLE_FIRST, - wxBRUSHSTYLE_LAST_HATCH = wxHATCHSTYLE_LAST -}; - - -// wxBrushBase -class WXDLLIMPEXP_CORE wxBrushBase: public wxGDIObject -{ -public: - virtual ~wxBrushBase() { } - - virtual void SetColour(const wxColour& col) = 0; - virtual void SetColour(unsigned char r, unsigned char g, unsigned char b) = 0; - virtual void SetStyle(wxBrushStyle style) = 0; - virtual void SetStipple(const wxBitmap& stipple) = 0; - - virtual wxColour GetColour() const = 0; - virtual wxBrushStyle GetStyle() const = 0; - virtual wxBitmap *GetStipple() const = 0; - - virtual bool IsHatch() const - { return (GetStyle()>=wxBRUSHSTYLE_FIRST_HATCH) && (GetStyle()<=wxBRUSHSTYLE_LAST_HATCH); } - - // Convenient helpers for testing whether the brush is a transparent one: - // unlike GetStyle() == wxBRUSHSTYLE_TRANSPARENT, they work correctly even - // if the brush is invalid (they both return false in this case). - bool IsTransparent() const - { - return IsOk() && GetStyle() == wxBRUSHSTYLE_TRANSPARENT; - } - - bool IsNonTransparent() const - { - return IsOk() && GetStyle() != wxBRUSHSTYLE_TRANSPARENT; - } -}; - -#if defined(__WXMSW__) - #include "wx/msw/brush.h" -#elif defined(__WXMOTIF__) || defined(__WXX11__) - #include "wx/x11/brush.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/brush.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/brush.h" -#elif defined(__WXDFB__) - #include "wx/dfb/brush.h" -#elif defined(__WXMAC__) - #include "wx/osx/brush.h" -#elif defined(__WXQT__) - #include "wx/qt/brush.h" -#endif - -class WXDLLIMPEXP_CORE wxBrushList: public wxGDIObjListBase -{ -public: - wxBrush *FindOrCreateBrush(const wxColour& colour, - wxBrushStyle style = wxBRUSHSTYLE_SOLID); - - wxDEPRECATED_MSG("use wxBRUSHSTYLE_XXX constants") - wxBrush *FindOrCreateBrush(const wxColour& colour, int style) - { return FindOrCreateBrush(colour, (wxBrushStyle)style); } -}; - -extern WXDLLIMPEXP_DATA_CORE(wxBrushList*) wxTheBrushList; - -// provide comparison operators to allow code such as -// -// if ( brush.GetStyle() == wxTRANSPARENT ) -// -// to compile without warnings which it would otherwise provoke from some -// compilers as it compares elements of different enums - -// Unfortunately some compilers have ambiguity issues when enum comparisons are -// overloaded so we have to disable the overloads in this case, see -// wxCOMPILER_NO_OVERLOAD_ON_ENUM definition in wx/platform.h for more details. -#ifndef wxCOMPILER_NO_OVERLOAD_ON_ENUM - -wxDEPRECATED_MSG("use wxBRUSHSTYLE_XXX constants only") -inline bool operator==(wxBrushStyle s, wxDeprecatedGUIConstants t) -{ - return static_cast(s) == static_cast(t); -} - -wxDEPRECATED_MSG("use wxBRUSHSTYLE_XXX constants only") -inline bool operator!=(wxBrushStyle s, wxDeprecatedGUIConstants t) -{ - return static_cast(s) != static_cast(t); -} - -#endif // wxCOMPILER_NO_OVERLOAD_ON_ENUM - -#endif // _WX_BRUSH_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/buffer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/buffer.h deleted file mode 100644 index ca6b3400..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/buffer.h +++ /dev/null @@ -1,622 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/buffer.h -// Purpose: auto buffer classes: buffers which automatically free memory -// Author: Vadim Zeitlin -// Modified by: -// Created: 12.04.99 -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BUFFER_H -#define _WX_BUFFER_H - -#include "wx/chartype.h" -#include "wx/wxcrtbase.h" - -#include // malloc() and free() - -class WXDLLIMPEXP_FWD_BASE wxCStrData; - -// ---------------------------------------------------------------------------- -// Special classes for (wide) character strings: they use malloc/free instead -// of new/delete -// ---------------------------------------------------------------------------- - -// helpers used by wxCharTypeBuffer -namespace wxPrivate -{ - -struct UntypedBufferData -{ - enum Kind - { - Owned, - NonOwned - }; - - UntypedBufferData(void *str, size_t len, Kind kind = Owned) - : m_str(str), m_length(len), m_ref(1), m_owned(kind == Owned) {} - - ~UntypedBufferData() - { - if ( m_owned ) - free(m_str); - } - - void *m_str; - size_t m_length; - - // "short" to have sizeof(Data)=12 on 32bit archs - unsigned short m_ref; - - bool m_owned; -}; - -// NB: this is defined in string.cpp and not the (non-existent) buffer.cpp -WXDLLIMPEXP_BASE UntypedBufferData * GetUntypedNullData(); - -} // namespace wxPrivate - - -// Reference-counted character buffer for storing string data. The buffer -// is only valid for as long as the "parent" object that provided the data -// is valid; see wxCharTypeBuffer for persistent variant. -template -class wxScopedCharTypeBuffer -{ -public: - typedef T CharType; - - wxScopedCharTypeBuffer() - { - m_data = GetNullData(); - } - - // Creates "non-owned" buffer, i.e. 'str' is not owned by the buffer - // and doesn't get freed by dtor. Used e.g. to point to wxString's internal - // storage. - static - const wxScopedCharTypeBuffer CreateNonOwned(const CharType *str, - size_t len = wxNO_LEN) - { - if ( len == wxNO_LEN ) - len = wxStrlen(str); - - wxScopedCharTypeBuffer buf; - if ( str ) - buf.m_data = new Data(const_cast(str), len, Data::NonOwned); - return buf; - } - - // Creates "owned" buffer, i.e. takes over ownership of 'str' and frees it - // in dtor (if ref.count reaches 0). - static - const wxScopedCharTypeBuffer CreateOwned(CharType *str, - size_t len = wxNO_LEN ) - { - if ( len == wxNO_LEN ) - len = wxStrlen(str); - - wxScopedCharTypeBuffer buf; - if ( str ) - buf.m_data = new Data(str, len); - return buf; - } - - wxScopedCharTypeBuffer(const wxScopedCharTypeBuffer& src) - { - m_data = src.m_data; - IncRef(); - } - - wxScopedCharTypeBuffer& operator=(const wxScopedCharTypeBuffer& src) - { - if ( &src == this ) - return *this; - - DecRef(); - m_data = src.m_data; - IncRef(); - - return *this; - } - - ~wxScopedCharTypeBuffer() - { - DecRef(); - } - - // NB: this method is only const for backward compatibility. It used to - // be needed for auto_ptr-like semantics of the copy ctor, but now - // that ref-counting is used, it's not really needed. - CharType *release() const - { - if ( m_data == GetNullData() ) - return NULL; - - wxASSERT_MSG( m_data->m_owned, wxT("can't release non-owned buffer") ); - wxASSERT_MSG( m_data->m_ref == 1, wxT("can't release shared buffer") ); - - CharType * const p = m_data->Get(); - - wxScopedCharTypeBuffer *self = const_cast(this); - self->m_data->Set(NULL, 0); - self->DecRef(); - - return p; - } - - void reset() - { - DecRef(); - } - - CharType *data() { return m_data->Get(); } - const CharType *data() const { return m_data->Get(); } - operator const CharType *() const { return data(); } - CharType operator[](size_t n) const { return data()[n]; } - - size_t length() const { return m_data->m_length; } - -protected: - // reference-counted data - struct Data : public wxPrivate::UntypedBufferData - { - Data(CharType *str, size_t len, Kind kind = Owned) - : wxPrivate::UntypedBufferData(str, len, kind) - { - } - - CharType *Get() const { return static_cast(m_str); } - void Set(CharType *str, size_t len) - { - m_str = str; - m_length = len; - } - }; - - // placeholder for NULL string, to simplify this code - static Data *GetNullData() - { - return static_cast(wxPrivate::GetUntypedNullData()); - } - - void IncRef() - { - if ( m_data == GetNullData() ) // exception, not ref-counted - return; - m_data->m_ref++; - } - - void DecRef() - { - if ( m_data == GetNullData() ) // exception, not ref-counted - return; - if ( --m_data->m_ref == 0 ) - delete m_data; - m_data = GetNullData(); - } - - // sets this object to a be copy of 'other'; if 'src' is non-owned, - // a deep copy is made and 'this' will contain new instance of the data - void MakeOwnedCopyOf(const wxScopedCharTypeBuffer& src) - { - this->DecRef(); - - if ( src.m_data == this->GetNullData() ) - { - this->m_data = this->GetNullData(); - } - else if ( src.m_data->m_owned ) - { - this->m_data = src.m_data; - this->IncRef(); - } - else - { - // if the scoped buffer had non-owned data, we have to make - // a copy here, because src.m_data->m_str is valid only for as long - // as 'src' exists - this->m_data = new Data - ( - StrCopy(src.data(), src.length()), - src.length() - ); - } - } - - static CharType *StrCopy(const CharType *src, size_t len) - { - CharType *dst = (CharType*)malloc(sizeof(CharType) * (len + 1)); - if ( dst ) - memcpy(dst, src, sizeof(CharType) * (len + 1)); - return dst; - } - -protected: - Data *m_data; -}; - -typedef wxScopedCharTypeBuffer wxScopedCharBuffer; -typedef wxScopedCharTypeBuffer wxScopedWCharBuffer; - - -// this buffer class always stores data in "owned" (persistent) manner -template -class wxCharTypeBuffer : public wxScopedCharTypeBuffer -{ -protected: - typedef typename wxScopedCharTypeBuffer::Data Data; - -public: - typedef T CharType; - - wxCharTypeBuffer(const CharType *str = NULL, size_t len = wxNO_LEN) - { - if ( str ) - { - if ( len == wxNO_LEN ) - len = wxStrlen(str); - this->m_data = new Data(this->StrCopy(str, len), len); - } - else - { - this->m_data = this->GetNullData(); - } - } - - wxCharTypeBuffer(size_t len) - { - CharType* const str = (CharType *)malloc((len + 1)*sizeof(CharType)); - if ( str ) - { - str[len] = (CharType)0; - - // There is a potential memory leak here if new throws because it - // fails to allocate Data, we ought to use new(nothrow) here, but - // this might fail to compile under some platforms so until this - // can be fully tested, just live with this (rather unlikely, as - // Data is a small object) potential leak. - this->m_data = new Data(str, len); - } - else - { - this->m_data = this->GetNullData(); - } - } - - wxCharTypeBuffer(const wxCharTypeBuffer& src) - : wxScopedCharTypeBuffer(src) {} - - wxCharTypeBuffer& operator=(const CharType *str) - { - this->DecRef(); - - if ( str ) - this->m_data = new Data(wxStrdup(str), wxStrlen(str)); - return *this; - } - - wxCharTypeBuffer& operator=(const wxCharTypeBuffer& src) - { - wxScopedCharTypeBuffer::operator=(src); - return *this; - } - - wxCharTypeBuffer(const wxScopedCharTypeBuffer& src) - { - this->MakeOwnedCopyOf(src); - } - - wxCharTypeBuffer& operator=(const wxScopedCharTypeBuffer& src) - { - MakeOwnedCopyOf(src); - return *this; - } - - bool extend(size_t len) - { - wxASSERT_MSG( this->m_data->m_owned, "cannot extend non-owned buffer" ); - wxASSERT_MSG( this->m_data->m_ref == 1, "can't extend shared buffer" ); - - CharType *str = - (CharType *)realloc(this->data(), (len + 1) * sizeof(CharType)); - if ( !str ) - return false; - - // For consistency with the ctor taking just the length, NUL-terminate - // the buffer. - str[len] = (CharType)0; - - if ( this->m_data == this->GetNullData() ) - { - this->m_data = new Data(str, len); - } - else - { - this->m_data->Set(str, len); - this->m_data->m_owned = true; - } - - return true; - } - - void shrink(size_t len) - { - wxASSERT_MSG( this->m_data->m_owned, "cannot shrink non-owned buffer" ); - wxASSERT_MSG( this->m_data->m_ref == 1, "can't shrink shared buffer" ); - - wxASSERT( len <= this->length() ); - - this->m_data->m_length = len; - this->data()[len] = 0; - } -}; - -class wxCharBuffer : public wxCharTypeBuffer -{ -public: - typedef wxCharTypeBuffer wxCharTypeBufferBase; - typedef wxScopedCharTypeBuffer wxScopedCharTypeBufferBase; - - wxCharBuffer(const wxCharTypeBufferBase& buf) - : wxCharTypeBufferBase(buf) {} - wxCharBuffer(const wxScopedCharTypeBufferBase& buf) - : wxCharTypeBufferBase(buf) {} - - wxCharBuffer(const CharType *str = NULL) : wxCharTypeBufferBase(str) {} - wxCharBuffer(size_t len) : wxCharTypeBufferBase(len) {} - - wxCharBuffer(const wxCStrData& cstr); -}; - -class wxWCharBuffer : public wxCharTypeBuffer -{ -public: - typedef wxCharTypeBuffer wxCharTypeBufferBase; - typedef wxScopedCharTypeBuffer wxScopedCharTypeBufferBase; - - wxWCharBuffer(const wxCharTypeBufferBase& buf) - : wxCharTypeBufferBase(buf) {} - wxWCharBuffer(const wxScopedCharTypeBufferBase& buf) - : wxCharTypeBufferBase(buf) {} - - wxWCharBuffer(const CharType *str = NULL) : wxCharTypeBufferBase(str) {} - wxWCharBuffer(size_t len) : wxCharTypeBufferBase(len) {} - - wxWCharBuffer(const wxCStrData& cstr); -}; - -// wxCharTypeBuffer implicitly convertible to T* -template -class wxWritableCharTypeBuffer : public wxCharTypeBuffer -{ -public: - typedef typename wxScopedCharTypeBuffer::CharType CharType; - - wxWritableCharTypeBuffer(const wxScopedCharTypeBuffer& src) - : wxCharTypeBuffer(src) {} - // FIXME-UTF8: this won't be needed after converting mb_str()/wc_str() to - // always return a buffer - // + we should derive this class from wxScopedCharTypeBuffer - // then - wxWritableCharTypeBuffer(const CharType *str = NULL) - : wxCharTypeBuffer(str) {} - - operator CharType*() { return this->data(); } -}; - -typedef wxWritableCharTypeBuffer wxWritableCharBuffer; -typedef wxWritableCharTypeBuffer wxWritableWCharBuffer; - - -#if wxUSE_UNICODE - #define wxWxCharBuffer wxWCharBuffer - - #define wxMB2WXbuf wxWCharBuffer - #define wxWX2MBbuf wxCharBuffer - #if wxUSE_UNICODE_WCHAR - #define wxWC2WXbuf wxChar* - #define wxWX2WCbuf wxChar* - #elif wxUSE_UNICODE_UTF8 - #define wxWC2WXbuf wxWCharBuffer - #define wxWX2WCbuf wxWCharBuffer - #endif -#else // ANSI - #define wxWxCharBuffer wxCharBuffer - - #define wxMB2WXbuf wxChar* - #define wxWX2MBbuf wxChar* - #define wxWC2WXbuf wxCharBuffer - #define wxWX2WCbuf wxWCharBuffer -#endif // Unicode/ANSI - -// ---------------------------------------------------------------------------- -// A class for holding growable data buffers (not necessarily strings) -// ---------------------------------------------------------------------------- - -// This class manages the actual data buffer pointer and is ref-counted. -class wxMemoryBufferData -{ -public: - // the initial size and also the size added by ResizeIfNeeded() - enum { DefBufSize = 1024 }; - - friend class wxMemoryBuffer; - - // everything is private as it can only be used by wxMemoryBuffer -private: - wxMemoryBufferData(size_t size = wxMemoryBufferData::DefBufSize) - : m_data(size ? malloc(size) : NULL), m_size(size), m_len(0), m_ref(0) - { - } - ~wxMemoryBufferData() { free(m_data); } - - - void ResizeIfNeeded(size_t newSize) - { - if (newSize > m_size) - { - void* const data = realloc(m_data, newSize + wxMemoryBufferData::DefBufSize); - if ( !data ) - { - // It's better to crash immediately dereferencing a null - // pointer in the function calling us than overflowing the - // buffer which couldn't be made big enough. - free(release()); - return; - } - - m_data = data; - m_size = newSize + wxMemoryBufferData::DefBufSize; - } - } - - void IncRef() { m_ref += 1; } - void DecRef() - { - m_ref -= 1; - if (m_ref == 0) // are there no more references? - delete this; - } - - void *release() - { - if ( m_data == NULL ) - return NULL; - - wxASSERT_MSG( m_ref == 1, "can't release shared buffer" ); - - void *p = m_data; - m_data = NULL; - m_len = - m_size = 0; - - return p; - } - - - // the buffer containing the data - void *m_data; - - // the size of the buffer - size_t m_size; - - // the amount of data currently in the buffer - size_t m_len; - - // the reference count - size_t m_ref; - - wxDECLARE_NO_COPY_CLASS(wxMemoryBufferData); -}; - - -class wxMemoryBuffer -{ -public: - // ctor and dtor - wxMemoryBuffer(size_t size = wxMemoryBufferData::DefBufSize) - { - m_bufdata = new wxMemoryBufferData(size); - m_bufdata->IncRef(); - } - - ~wxMemoryBuffer() { m_bufdata->DecRef(); } - - - // copy and assignment - wxMemoryBuffer(const wxMemoryBuffer& src) - : m_bufdata(src.m_bufdata) - { - m_bufdata->IncRef(); - } - - wxMemoryBuffer& operator=(const wxMemoryBuffer& src) - { - if (&src != this) - { - m_bufdata->DecRef(); - m_bufdata = src.m_bufdata; - m_bufdata->IncRef(); - } - return *this; - } - - - // Accessors - void *GetData() const { return m_bufdata->m_data; } - size_t GetBufSize() const { return m_bufdata->m_size; } - size_t GetDataLen() const { return m_bufdata->m_len; } - - bool IsEmpty() const { return GetDataLen() == 0; } - - void SetBufSize(size_t size) { m_bufdata->ResizeIfNeeded(size); } - void SetDataLen(size_t len) - { - wxASSERT(len <= m_bufdata->m_size); - m_bufdata->m_len = len; - } - - void Clear() { SetDataLen(0); } - - // Ensure the buffer is big enough and return a pointer to it - void *GetWriteBuf(size_t sizeNeeded) - { - m_bufdata->ResizeIfNeeded(sizeNeeded); - return m_bufdata->m_data; - } - - // Update the length after the write - void UngetWriteBuf(size_t sizeUsed) { SetDataLen(sizeUsed); } - - // Like the above, but appends to the buffer - void *GetAppendBuf(size_t sizeNeeded) - { - m_bufdata->ResizeIfNeeded(m_bufdata->m_len + sizeNeeded); - return (char*)m_bufdata->m_data + m_bufdata->m_len; - } - - // Update the length after the append - void UngetAppendBuf(size_t sizeUsed) - { - SetDataLen(m_bufdata->m_len + sizeUsed); - } - - // Other ways to append to the buffer - void AppendByte(char data) - { - wxCHECK_RET( m_bufdata->m_data, wxT("invalid wxMemoryBuffer") ); - - m_bufdata->ResizeIfNeeded(m_bufdata->m_len + 1); - *(((char*)m_bufdata->m_data) + m_bufdata->m_len) = data; - m_bufdata->m_len += 1; - } - - void AppendData(const void *data, size_t len) - { - memcpy(GetAppendBuf(len), data, len); - UngetAppendBuf(len); - } - - operator const char *() const { return (const char*)GetData(); } - - // gives up ownership of data, returns the pointer; after this call, - // data isn't freed by the buffer and its content is resent to empty - void *release() - { - return m_bufdata->release(); - } - -private: - wxMemoryBufferData* m_bufdata; -}; - -// ---------------------------------------------------------------------------- -// template class for any kind of data -// ---------------------------------------------------------------------------- - -// TODO - -#endif // _WX_BUFFER_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/build.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/build.h deleted file mode 100644 index 241314c2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/build.h +++ /dev/null @@ -1,128 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/build.h -// Purpose: Runtime build options checking -// Author: Vadim Zeitlin, Vaclav Slavik -// Modified by: -// Created: 07.05.02 -// Copyright: (c) 2002 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BUILD_H_ -#define _WX_BUILD_H_ - -#include "wx/version.h" - -// NB: This file contains macros for checking binary compatibility of libraries -// in multilib builds, plugins and user components. -// The WX_BUILD_OPTIONS_SIGNATURE macro expands into string that should -// uniquely identify binary compatible builds: i.e. if two builds of the -// library are binary compatible, their signature string should be the -// same; if two builds are binary incompatible, their signatures should -// be different. -// -// Therefore, wxUSE_XXX flags that affect binary compatibility (vtables, -// function signatures) should be accounted for here. So should compilers -// and compiler versions (but note that binary compatible compiler versions -// such as gcc-2.95.2 and gcc-2.95.3 should have same signature!). - -// ---------------------------------------------------------------------------- -// WX_BUILD_OPTIONS_SIGNATURE -// ---------------------------------------------------------------------------- - -#define __WX_BO_STRINGIZE(x) __WX_BO_STRINGIZE0(x) -#define __WX_BO_STRINGIZE0(x) #x - -#if (wxMINOR_VERSION % 2) == 0 - #define __WX_BO_VERSION(x,y,z) \ - __WX_BO_STRINGIZE(x) "." __WX_BO_STRINGIZE(y) -#else - #define __WX_BO_VERSION(x,y,z) \ - __WX_BO_STRINGIZE(x) "." __WX_BO_STRINGIZE(y) "." __WX_BO_STRINGIZE(z) -#endif - -#if wxUSE_UNICODE_UTF8 - #define __WX_BO_UNICODE "UTF-8" -#elif wxUSE_UNICODE_WCHAR - #define __WX_BO_UNICODE "wchar_t" -#else - #define __WX_BO_UNICODE "ANSI" -#endif - -// GCC and Intel C++ share same C++ ABI (and possibly others in the future), -// check if compiler versions are compatible: -#if defined(__GXX_ABI_VERSION) - // The changes between ABI versions 1002 through 1010 (documented at - // https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html - // under -fabi-version) don't affect wxWidgets, so we allow a library - // and an application to differ within that range. - #if ((__GXX_ABI_VERSION >= 1002) && (__GXX_ABI_VERSION <= 1010)) - #define wxGXX_EFFECTIVE_ABI_VERSION 1002 - #else - #define wxGXX_EFFECTIVE_ABI_VERSION __GXX_ABI_VERSION - #endif - #define __WX_BO_COMPILER \ - ",compiler with C++ ABI " __WX_BO_STRINGIZE(wxGXX_EFFECTIVE_ABI_VERSION) -#elif defined(__GNUG__) - #define __WX_BO_COMPILER ",GCC " \ - __WX_BO_STRINGIZE(__GNUC__) "." __WX_BO_STRINGIZE(__GNUC_MINOR__) -#elif defined(__VISUALC__) - #define __WX_BO_COMPILER ",Visual C++ " __WX_BO_STRINGIZE(_MSC_VER) -#elif defined(__INTEL_COMPILER) - // Notice that this must come after MSVC check as ICC under Windows is - // ABI-compatible with the corresponding version of the MSVC and we want to - // allow using it compile the application code using MSVC-built DLLs. - #define __WX_BO_COMPILER ",Intel C++" -#elif defined(__BORLANDC__) - #define __WX_BO_COMPILER ",Borland C++" -#else - #define __WX_BO_COMPILER -#endif - -// WXWIN_COMPATIBILITY macros affect presence of virtual functions -#if WXWIN_COMPATIBILITY_2_8 - #define __WX_BO_WXWIN_COMPAT_2_8 ",compatible with 2.8" -#else - #define __WX_BO_WXWIN_COMPAT_2_8 -#endif -#if WXWIN_COMPATIBILITY_3_0 - #define __WX_BO_WXWIN_COMPAT_3_0 ",compatible with 3.0" -#else - #define __WX_BO_WXWIN_COMPAT_3_0 -#endif - -// deriving wxWin containers from STL ones changes them completely: -#if wxUSE_STD_CONTAINERS - #define __WX_BO_STL ",STL containers" -#else - #define __WX_BO_STL ",wx containers" -#endif - -// This macro is passed as argument to wxAppConsole::CheckBuildOptions() -#define WX_BUILD_OPTIONS_SIGNATURE \ - __WX_BO_VERSION(wxMAJOR_VERSION, wxMINOR_VERSION, wxRELEASE_NUMBER) \ - " (" __WX_BO_UNICODE \ - __WX_BO_COMPILER \ - __WX_BO_STL \ - __WX_BO_WXWIN_COMPAT_2_8 __WX_BO_WXWIN_COMPAT_3_0 \ - ")" - - -// ---------------------------------------------------------------------------- -// WX_CHECK_BUILD_OPTIONS -// ---------------------------------------------------------------------------- - -// Use this macro to check build options. Adding it to a file in DLL will -// ensure that the DLL checks build options in same way wxIMPLEMENT_APP() does. -#define WX_CHECK_BUILD_OPTIONS(libName) \ - static struct wxBuildOptionsChecker \ - { \ - wxBuildOptionsChecker() \ - { \ - wxAppConsole::CheckBuildOptions(WX_BUILD_OPTIONS_SIGNATURE, \ - libName); \ - } \ - } gs_buildOptionsCheck; - - -#endif // _WX_BUILD_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/busyinfo.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/busyinfo.h deleted file mode 100644 index 94f8fabd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/busyinfo.h +++ /dev/null @@ -1,78 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/busyinfo.h -// Purpose: Information window (when app is busy) -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __BUSYINFO_H_BASE__ -#define __BUSYINFO_H_BASE__ - -#include "wx/defs.h" - -#if wxUSE_BUSYINFO - -#include "wx/colour.h" -#include "wx/icon.h" - -class WXDLLIMPEXP_FWD_CORE wxWindow; - -// This class is used to pass all the various parameters to wxBusyInfo ctor. -// According to the usual naming conventions (see wxAboutDialogInfo, -// wxFontInfo, ...) it would be called wxBusyInfoInfo, but this would have been -// rather strange, so we call it wxBusyInfoFlags instead. -// -// Methods are mostly self-explanatory except for the difference between "Text" -// and "Label": the former can contain markup, while the latter is just plain -// string which is not parsed in any way. -class wxBusyInfoFlags -{ -public: - wxBusyInfoFlags() - { - m_parent = NULL; - m_alpha = wxALPHA_OPAQUE; - } - - wxBusyInfoFlags& Parent(wxWindow* parent) - { m_parent = parent; return *this; } - - wxBusyInfoFlags& Icon(const wxIcon& icon) - { m_icon = icon; return *this; } - wxBusyInfoFlags& Title(const wxString& title) - { m_title = title; return *this; } - wxBusyInfoFlags& Text(const wxString& text) - { m_text = text; return *this; } - wxBusyInfoFlags& Label(const wxString& label) - { m_label = label; return *this; } - - wxBusyInfoFlags& Foreground(const wxColour& foreground) - { m_foreground = foreground; return *this; } - wxBusyInfoFlags& Background(const wxColour& background) - { m_background = background; return *this; } - - wxBusyInfoFlags& Transparency(wxByte alpha) - { m_alpha = alpha; return *this; } - -private: - wxWindow* m_parent; - - wxIcon m_icon; - wxString m_title, - m_text, - m_label; - - wxColour m_foreground, - m_background; - - wxByte m_alpha; - - friend class wxBusyInfo; -}; - -#include "wx/generic/busyinfo.h" - -#endif // wxUSE_BUSYINFO - -#endif // __BUSYINFO_H_BASE__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/button.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/button.h deleted file mode 100644 index f3116641..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/button.h +++ /dev/null @@ -1,67 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/button.h -// Purpose: wxButtonBase class -// Author: Vadim Zeitlin -// Modified by: -// Created: 15.08.00 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BUTTON_H_BASE_ -#define _WX_BUTTON_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_BUTTON - -#include "wx/anybutton.h" - -extern WXDLLIMPEXP_DATA_CORE(const char) wxButtonNameStr[]; - -// ---------------------------------------------------------------------------- -// wxButton: a push button -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxButtonBase : public wxAnyButton -{ -public: - wxButtonBase() { } - - // show the authentication needed symbol on the button: this is currently - // only implemented on Windows Vista and newer (on which it shows the UAC - // shield symbol) - void SetAuthNeeded(bool show = true) { DoSetAuthNeeded(show); } - bool GetAuthNeeded() const { return DoGetAuthNeeded(); } - - // make this button the default button in its top level window - // - // returns the old default item (possibly NULL) - virtual wxWindow *SetDefault(); - - // returns the default button size for this platform - static wxSize GetDefaultSize(); - -protected: - wxDECLARE_NO_COPY_CLASS(wxButtonBase); -}; - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/button.h" -#elif defined(__WXMSW__) - #include "wx/msw/button.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/button.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/button.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/button.h" -#elif defined(__WXMAC__) - #include "wx/osx/button.h" -#elif defined(__WXQT__) - #include "wx/qt/button.h" -#endif - -#endif // wxUSE_BUTTON - -#endif // _WX_BUTTON_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/calctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/calctrl.h deleted file mode 100644 index de888118..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/calctrl.h +++ /dev/null @@ -1,399 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/calctrl.h -// Purpose: date-picker control -// Author: Vadim Zeitlin -// Modified by: -// Created: 29.12.99 -// Copyright: (c) 1999 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CALCTRL_H_ -#define _WX_CALCTRL_H_ - -#include "wx/defs.h" - -#if wxUSE_CALENDARCTRL - -#include "wx/dateevt.h" -#include "wx/colour.h" -#include "wx/font.h" -#include "wx/control.h" - -// ---------------------------------------------------------------------------- -// wxCalendarCtrl flags -// ---------------------------------------------------------------------------- - -enum -{ - // show Sunday as the first day of the week (default) - wxCAL_SUNDAY_FIRST = 0x0000, - - // show Monday as the first day of the week - wxCAL_MONDAY_FIRST = 0x0001, - - // highlight holidays - wxCAL_SHOW_HOLIDAYS = 0x0002, - - // disable the year change control, show only the month change one - // deprecated - wxCAL_NO_YEAR_CHANGE = 0x0004, - - // don't allow changing neither month nor year (implies - // wxCAL_NO_YEAR_CHANGE) - wxCAL_NO_MONTH_CHANGE = 0x000c, - - // use MS-style month-selection instead of combo-spin combination - wxCAL_SEQUENTIAL_MONTH_SELECTION = 0x0010, - - // show the neighbouring weeks in the previous and next month - wxCAL_SHOW_SURROUNDING_WEEKS = 0x0020, - - // show week numbers on the left side of the calendar. - wxCAL_SHOW_WEEK_NUMBERS = 0x0040 -}; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// return values for the HitTest() method -enum wxCalendarHitTestResult -{ - wxCAL_HITTEST_NOWHERE, // outside of anything - wxCAL_HITTEST_HEADER, // on the header (weekdays) - wxCAL_HITTEST_DAY, // on a day in the calendar - wxCAL_HITTEST_INCMONTH, - wxCAL_HITTEST_DECMONTH, - wxCAL_HITTEST_SURROUNDING_WEEK, - wxCAL_HITTEST_WEEK -}; - -// border types for a date -enum wxCalendarDateBorder -{ - wxCAL_BORDER_NONE, // no border (default) - wxCAL_BORDER_SQUARE, // a rectangular border - wxCAL_BORDER_ROUND // a round border -}; - -// ---------------------------------------------------------------------------- -// wxCalendarDateAttr: custom attributes for a calendar date -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxCalendarDateAttr -{ -public: - // ctors - wxCalendarDateAttr(const wxColour& colText = wxNullColour, - const wxColour& colBack = wxNullColour, - const wxColour& colBorder = wxNullColour, - const wxFont& font = wxNullFont, - wxCalendarDateBorder border = wxCAL_BORDER_NONE) - : m_colText(colText), m_colBack(colBack), - m_colBorder(colBorder), m_font(font) - { - Init(border); - } - wxCalendarDateAttr(wxCalendarDateBorder border, - const wxColour& colBorder = wxNullColour) - : m_colBorder(colBorder) - { - Init(border); - } - - // setters - void SetTextColour(const wxColour& colText) { m_colText = colText; } - void SetBackgroundColour(const wxColour& colBack) { m_colBack = colBack; } - void SetBorderColour(const wxColour& col) { m_colBorder = col; } - void SetFont(const wxFont& font) { m_font = font; } - void SetBorder(wxCalendarDateBorder border) { m_border = border; } - void SetHoliday(bool holiday) { m_holiday = holiday; } - - // accessors - bool HasTextColour() const { return m_colText.IsOk(); } - bool HasBackgroundColour() const { return m_colBack.IsOk(); } - bool HasBorderColour() const { return m_colBorder.IsOk(); } - bool HasFont() const { return m_font.IsOk(); } - bool HasBorder() const { return m_border != wxCAL_BORDER_NONE; } - - bool IsHoliday() const { return m_holiday; } - - const wxColour& GetTextColour() const { return m_colText; } - const wxColour& GetBackgroundColour() const { return m_colBack; } - const wxColour& GetBorderColour() const { return m_colBorder; } - const wxFont& GetFont() const { return m_font; } - wxCalendarDateBorder GetBorder() const { return m_border; } - - // get or change the "mark" attribute, i.e. the one used for the items - // marked with wxCalendarCtrl::Mark() - static const wxCalendarDateAttr& GetMark() { return m_mark; } - static void SetMark(wxCalendarDateAttr const& m) { m_mark = m; } - -protected: - void Init(wxCalendarDateBorder border = wxCAL_BORDER_NONE) - { - m_border = border; - m_holiday = false; - } - -private: - static wxCalendarDateAttr m_mark; - - wxColour m_colText, - m_colBack, - m_colBorder; - wxFont m_font; - wxCalendarDateBorder m_border; - bool m_holiday; -}; - -// ---------------------------------------------------------------------------- -// wxCalendarCtrl events -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_ADV wxCalendarCtrl; - -class WXDLLIMPEXP_ADV wxCalendarEvent : public wxDateEvent -{ -public: - wxCalendarEvent() : m_wday(wxDateTime::Inv_WeekDay) { } - wxCalendarEvent(wxWindow *win, const wxDateTime& dt, wxEventType type) - : wxDateEvent(win, dt, type), - m_wday(wxDateTime::Inv_WeekDay) { } - wxCalendarEvent(const wxCalendarEvent& event) - : wxDateEvent(event), m_wday(event.m_wday) { } - - void SetWeekDay(wxDateTime::WeekDay wd) { m_wday = wd; } - wxDateTime::WeekDay GetWeekDay() const { return m_wday; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxCalendarEvent(*this); } - -private: - wxDateTime::WeekDay m_wday; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxCalendarEvent); -}; - -// ---------------------------------------------------------------------------- -// wxCalendarCtrlBase -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxCalendarCtrlBase : public wxControl -{ -public: - // do we allow changing the month/year? - bool AllowMonthChange() const { return !HasFlag(wxCAL_NO_MONTH_CHANGE); } - - // get/set the current date - virtual wxDateTime GetDate() const = 0; - virtual bool SetDate(const wxDateTime& date) = 0; - - - // restricting the dates shown by the control to the specified range: only - // implemented in the generic and MSW versions for now - - // if either date is set, the corresponding limit will be enforced and true - // returned; if none are set, the existing restrictions are removed and - // false is returned - virtual bool - SetDateRange(const wxDateTime& WXUNUSED(lowerdate) = wxDefaultDateTime, - const wxDateTime& WXUNUSED(upperdate) = wxDefaultDateTime) - { - return false; - } - - // retrieves the limits currently in use (wxDefaultDateTime if none) in the - // provided pointers (which may be NULL) and returns true if there are any - // limits or false if none - virtual bool - GetDateRange(wxDateTime *lowerdate, wxDateTime *upperdate) const - { - if ( lowerdate ) - *lowerdate = wxDefaultDateTime; - if ( upperdate ) - *upperdate = wxDefaultDateTime; - return false; - } - - // returns one of wxCAL_HITTEST_XXX constants and fills either date or wd - // with the corresponding value (none for NOWHERE, the date for DAY and wd - // for HEADER) - // - // notice that this is not implemented in all versions - virtual wxCalendarHitTestResult - HitTest(const wxPoint& WXUNUSED(pos), - wxDateTime* WXUNUSED(date) = NULL, - wxDateTime::WeekDay* WXUNUSED(wd) = NULL) - { - return wxCAL_HITTEST_NOWHERE; - } - - // allow or disable changing the current month (and year), return true if - // the value of this option really changed or false if it was already set - // to the required value - // - // NB: we provide implementation for this pure virtual function, derived - // classes should call it - virtual bool EnableMonthChange(bool enable = true) = 0; - - - // an item without custom attributes is drawn with the default colours and - // font and without border, setting custom attributes allows to modify this - // - // the day parameter should be in 1..31 range, for days 29, 30, 31 the - // corresponding attribute is just unused if there is no such day in the - // current month - // - // notice that currently arbitrary attributes are supported only in the - // generic version, the native controls only support Mark() which assigns - // some special appearance (which can be customized using SetMark() for the - // generic version) to the given day - - virtual void Mark(size_t day, bool mark) = 0; - - virtual wxCalendarDateAttr *GetAttr(size_t WXUNUSED(day)) const - { return NULL; } - virtual void SetAttr(size_t WXUNUSED(day), wxCalendarDateAttr *attr) - { delete attr; } - virtual void ResetAttr(size_t WXUNUSED(day)) { } - - - // holidays support - // - // currently only the generic version implements all functions in this - // section; wxMSW implements simple support for holidays (they can be - // just enabled or disabled) and wxGTK doesn't support them at all - - // equivalent to changing wxCAL_SHOW_HOLIDAYS flag but should be called - // instead of just changing it - virtual void EnableHolidayDisplay(bool display = true); - - // set/get the colours to use for holidays (if they're enabled) - virtual void SetHolidayColours(const wxColour& WXUNUSED(colFg), - const wxColour& WXUNUSED(colBg)) { } - - virtual const wxColour& GetHolidayColourFg() const { return wxNullColour; } - virtual const wxColour& GetHolidayColourBg() const { return wxNullColour; } - - // mark the given day of the current month as being a holiday - virtual void SetHoliday(size_t WXUNUSED(day)) { } - - - // customizing the colours of the controls - // - // most of the methods in this section are only implemented by the native - // version of the control and do nothing in the native ones - - // set/get the colours to use for the display of the week day names at the - // top of the controls - virtual void SetHeaderColours(const wxColour& WXUNUSED(colFg), - const wxColour& WXUNUSED(colBg)) { } - - virtual const wxColour& GetHeaderColourFg() const { return wxNullColour; } - virtual const wxColour& GetHeaderColourBg() const { return wxNullColour; } - - // set/get the colours used for the currently selected date - virtual void SetHighlightColours(const wxColour& WXUNUSED(colFg), - const wxColour& WXUNUSED(colBg)) { } - - virtual const wxColour& GetHighlightColourFg() const { return wxNullColour; } - virtual const wxColour& GetHighlightColourBg() const { return wxNullColour; } - - - // implementation only from now on - - // generate the given calendar event, return true if it was processed - // - // NB: this is public because it's used from GTK+ callbacks - bool GenerateEvent(wxEventType type) - { - wxCalendarEvent event(this, GetDate(), type); - return HandleWindowEvent(event); - } - -protected: - // generate all the events for the selection change from dateOld to current - // date: SEL_CHANGED, PAGE_CHANGED if necessary and also one of (deprecated) - // YEAR/MONTH/DAY_CHANGED ones - // - // returns true if page changed event was generated, false if the new date - // is still in the same month as before - bool GenerateAllChangeEvents(const wxDateTime& dateOld); - - // call SetHoliday() for all holidays in the current month - // - // should be called on month change, does nothing if wxCAL_SHOW_HOLIDAYS is - // not set and returns false in this case, true if we do show them - bool SetHolidayAttrs(); - - // called by SetHolidayAttrs() to forget the previously set holidays - virtual void ResetHolidayAttrs() { } - - // called by EnableHolidayDisplay() - virtual void RefreshHolidays() { } -}; - -// ---------------------------------------------------------------------------- -// wxCalendarCtrl -// ---------------------------------------------------------------------------- - -#define wxCalendarNameStr "CalendarCtrl" - -#ifndef __WXUNIVERSAL__ - #if defined(__WXGTK20__) - #define wxHAS_NATIVE_CALENDARCTRL - #include "wx/gtk/calctrl.h" - #define wxCalendarCtrl wxGtkCalendarCtrl - #elif defined(__WXMSW__) - #define wxHAS_NATIVE_CALENDARCTRL - #include "wx/msw/calctrl.h" - #elif defined(__WXQT__) - #define wxHAS_NATIVE_CALENDARCTRL - #include "wx/qt/calctrl.h" - #endif -#endif // !__WXUNIVERSAL__ - -#ifndef wxHAS_NATIVE_CALENDARCTRL - #include "wx/generic/calctrlg.h" - #define wxCalendarCtrl wxGenericCalendarCtrl -#endif - -// ---------------------------------------------------------------------------- -// calendar event types and macros for handling them -// ---------------------------------------------------------------------------- - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_CALENDAR_SEL_CHANGED, wxCalendarEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_CALENDAR_PAGE_CHANGED, wxCalendarEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_CALENDAR_DOUBLECLICKED, wxCalendarEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_CALENDAR_WEEKDAY_CLICKED, wxCalendarEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_CALENDAR_WEEK_CLICKED, wxCalendarEvent ); - -// deprecated events -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_CALENDAR_DAY_CHANGED, wxCalendarEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_CALENDAR_MONTH_CHANGED, wxCalendarEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_CALENDAR_YEAR_CHANGED, wxCalendarEvent ); - -typedef void (wxEvtHandler::*wxCalendarEventFunction)(wxCalendarEvent&); - -#define wxCalendarEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxCalendarEventFunction, func) - -#define wx__DECLARE_CALEVT(evt, id, fn) \ - wx__DECLARE_EVT1(wxEVT_CALENDAR_ ## evt, id, wxCalendarEventHandler(fn)) - -#define EVT_CALENDAR(id, fn) wx__DECLARE_CALEVT(DOUBLECLICKED, id, fn) -#define EVT_CALENDAR_SEL_CHANGED(id, fn) wx__DECLARE_CALEVT(SEL_CHANGED, id, fn) -#define EVT_CALENDAR_PAGE_CHANGED(id, fn) wx__DECLARE_CALEVT(PAGE_CHANGED, id, fn) -#define EVT_CALENDAR_WEEKDAY_CLICKED(id, fn) wx__DECLARE_CALEVT(WEEKDAY_CLICKED, id, fn) -#define EVT_CALENDAR_WEEK_CLICKED(id, fn) wx__DECLARE_CALEVT(WEEK_CLICKED, id, fn) - -// deprecated events -#define EVT_CALENDAR_DAY(id, fn) wx__DECLARE_CALEVT(DAY_CHANGED, id, fn) -#define EVT_CALENDAR_MONTH(id, fn) wx__DECLARE_CALEVT(MONTH_CHANGED, id, fn) -#define EVT_CALENDAR_YEAR(id, fn) wx__DECLARE_CALEVT(YEAR_CHANGED, id, fn) - -#endif // wxUSE_CALENDARCTRL - -#endif // _WX_CALCTRL_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/caret.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/caret.h deleted file mode 100644 index e6e9728f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/caret.h +++ /dev/null @@ -1,251 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/caret.h -// Purpose: wxCaretBase class - the interface of wxCaret -// Author: Vadim Zeitlin -// Modified by: -// Created: 23.05.99 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CARET_H_BASE_ -#define _WX_CARET_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_CARET - -// --------------------------------------------------------------------------- -// forward declarations -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxWindow; -class WXDLLIMPEXP_FWD_CORE wxWindowBase; - -// ---------------------------------------------------------------------------- -// headers we have to include -// ---------------------------------------------------------------------------- - -#include "wx/gdicmn.h" // for wxPoint, wxSize - -// ---------------------------------------------------------------------------- -// A caret is a blinking cursor showing the position where the typed text will -// appear. It can be either a solid block or a custom bitmap (TODO) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxCaretBase -{ -public: - // ctors - // ----- - // default - use Create - wxCaretBase() { Init(); } - // create the caret of given (in pixels) width and height and associate - // with the given window - wxCaretBase(wxWindowBase *window, int width, int height) - { - Init(); - - (void)Create(window, width, height); - } - // same as above - wxCaretBase(wxWindowBase *window, const wxSize& size) - { - Init(); - - (void)Create(window, size); - } - - // a virtual dtor has been provided since this class has virtual members - virtual ~wxCaretBase() { } - - // Create() functions - same as ctor but returns the success code - // -------------------------------------------------------------- - - // same as ctor - bool Create(wxWindowBase *window, int width, int height) - { return DoCreate(window, width, height); } - // same as ctor - bool Create(wxWindowBase *window, const wxSize& size) - { return DoCreate(window, size.x, size.y); } - - // accessors - // --------- - - // is the caret valid? - bool IsOk() const { return m_width != 0 && m_height != 0; } - - // is the caret currently shown? - bool IsVisible() const { return m_countVisible > 0; } - - // get the caret position - void GetPosition(int *x, int *y) const - { - if ( x ) *x = m_x; - if ( y ) *y = m_y; - } - wxPoint GetPosition() const { return wxPoint(m_x, m_y); } - - // get the caret size - void GetSize(int *width, int *height) const - { - if ( width ) *width = m_width; - if ( height ) *height = m_height; - } - wxSize GetSize() const { return wxSize(m_width, m_height); } - - // get the window we're associated with - wxWindow *GetWindow() const { return (wxWindow *)m_window; } - - // change the size of the caret - void SetSize(int width, int height) { - m_width = width; - m_height = height; - DoSize(); - } - void SetSize(const wxSize& size) { SetSize(size.x, size.y); } - - - // operations - // ---------- - - // move the caret to given position (in logical coords) - void Move(int x, int y) { m_x = x; m_y = y; DoMove(); } - void Move(const wxPoint& pt) { m_x = pt.x; m_y = pt.y; DoMove(); } - - // show/hide the caret (should be called by wxWindow when needed): - // Show() must be called as many times as Hide() + 1 to make the caret - // visible - virtual void Show(bool show = true) - { - if ( show ) - { - if ( m_countVisible++ == 0 ) - DoShow(); - } - else - { - if ( --m_countVisible == 0 ) - DoHide(); - } - } - virtual void Hide() { Show(false); } - - // blink time is measured in milliseconds and is the time elapsed - // between 2 inversions of the caret (blink time of the caret is common - // to all carets in the Universe, so these functions are static) - static int GetBlinkTime(); - static void SetBlinkTime(int milliseconds); - - // implementation from now on - // -------------------------- - - // these functions should be called by wxWindow when the window gets/loses - // the focus - we create/show and hide/destroy the caret here - virtual void OnSetFocus() { } - virtual void OnKillFocus() { } - -protected: - // these functions may be overridden in the derived classes, but they - // should call the base class version first - virtual bool DoCreate(wxWindowBase *window, int width, int height) - { - m_window = window; - m_width = width; - m_height = height; - - return true; - } - - // pure virtuals to implement in the derived class - virtual void DoShow() = 0; - virtual void DoHide() = 0; - virtual void DoMove() = 0; - virtual void DoSize() { } - - // the common initialization - void Init() - { - m_window = NULL; - m_x = m_y = 0; - m_width = m_height = 0; - m_countVisible = 0; - } - - // the size of the caret - int m_width, m_height; - - // the position of the caret - int m_x, m_y; - - // the window we're associated with - wxWindowBase *m_window; - - // visibility count: the caret is visible only if it's positive - int m_countVisible; - -private: - wxDECLARE_NO_COPY_CLASS(wxCaretBase); -}; - -// --------------------------------------------------------------------------- -// now include the real thing -// --------------------------------------------------------------------------- - -#if defined(__WXMSW__) - #include "wx/msw/caret.h" -#else - #include "wx/generic/caret.h" -#endif // platform - -// ---------------------------------------------------------------------------- -// wxCaretSuspend: a simple class which hides the caret in its ctor and -// restores it in the dtor, this should be used when drawing on the screen to -// avoid overdrawing the caret -// ---------------------------------------------------------------------------- - -#ifdef wxHAS_CARET_USING_OVERLAYS - -// we don't need to hide the caret if it's rendered using overlays -class WXDLLIMPEXP_CORE wxCaretSuspend -{ -public: - wxCaretSuspend(wxWindow *WXUNUSED(win)) {} - - wxDECLARE_NO_COPY_CLASS(wxCaretSuspend); -}; - -#else // !wxHAS_CARET_USING_OVERLAYS - -class WXDLLIMPEXP_CORE wxCaretSuspend -{ -public: - wxCaretSuspend(wxWindow *win) - { - m_caret = win->GetCaret(); - m_show = false; - if ( m_caret && m_caret->IsVisible() ) - { - m_caret->Hide(); - m_show = true; - } - } - - ~wxCaretSuspend() - { - if ( m_caret && m_show ) - m_caret->Show(); - } - -private: - wxCaret *m_caret; - bool m_show; - - wxDECLARE_NO_COPY_CLASS(wxCaretSuspend); -}; - -#endif // wxHAS_CARET_USING_OVERLAYS/!wxHAS_CARET_USING_OVERLAYS - -#endif // wxUSE_CARET - -#endif // _WX_CARET_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/chartype.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/chartype.h deleted file mode 100644 index e8ccb35f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/chartype.h +++ /dev/null @@ -1,276 +0,0 @@ -/* - * Name: wx/chartype.h - * Purpose: Declarations of wxChar and related types - * Author: Joel Farley, Ove Kåven - * Modified by: Vadim Zeitlin, Robert Roebling, Ron Lee - * Created: 1998/06/12 - * Copyright: (c) 1998-2006 wxWidgets dev team - * Licence: wxWindows licence - */ - -/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ - -#ifndef _WX_WXCHARTYPE_H_ -#define _WX_WXCHARTYPE_H_ - -/* defs.h indirectly includes this file, so don't include it here */ -#include "wx/platform.h" - -/* check whether we have wchar_t and which size it is if we do */ -#if !defined(wxUSE_WCHAR_T) - #if defined(__UNIX__) - #if defined(HAVE_WCSTR_H) || defined(HAVE_WCHAR_H) || defined(__FreeBSD__) || defined(__DARWIN__) - #define wxUSE_WCHAR_T 1 - #else - #define wxUSE_WCHAR_T 0 - #endif - #elif defined(__GNUWIN32__) && !defined(__MINGW32__) - #define wxUSE_WCHAR_T 0 - #else - /* add additional compiler checks if this fails */ - #define wxUSE_WCHAR_T 1 - #endif -#endif /* !defined(wxUSE_WCHAR_T) */ - -/* Unicode support requires wchar_t */ -#if !wxUSE_WCHAR_T - #error "wchar_t must be available" -#endif /* Unicode */ - -/* - non Unix compilers which do have wchar.h (but not tchar.h which is included - below and which includes wchar.h anyhow). - - Actually MinGW has tchar.h, but it does not include wchar.h - */ -#if defined(__MINGW32__) - #ifndef HAVE_WCHAR_H - #define HAVE_WCHAR_H - #endif -#endif - -#ifdef HAVE_WCHAR_H - /* the current (as of Nov 2002) version of cygwin has a bug in its */ - /* wchar.h -- there is no extern "C" around the declarations in it */ - /* and this results in linking errors later; also, at least on some */ - /* Cygwin versions, wchar.h requires sys/types.h */ - #ifdef __CYGWIN__ - #include - #ifdef __cplusplus - extern "C" { - #endif - #endif /* Cygwin */ - - #include - - #if defined(__CYGWIN__) && defined(__cplusplus) - } - #endif /* Cygwin and C++ */ - - /* the current (as of Mar 2014) version of Android (up to api level 19) */ - /* doesn't include some declarations (wscdup, wcslen, wcscasecmp, etc.) */ - /* (moved out from __CYGWIN__ block) */ - #if defined(__WXQT__) && !defined(wcsdup) && defined(__ANDROID__) - #ifdef __cplusplus - extern "C" { - #endif - extern wchar_t *wcsdup(const wchar_t *); - extern size_t wcslen (const wchar_t *); - extern size_t wcsnlen (const wchar_t *, size_t ); - extern int wcscasecmp (const wchar_t *, const wchar_t *); - extern int wcsncasecmp (const wchar_t *, const wchar_t *, size_t); - #ifdef __cplusplus - } - #endif - #endif /* Android */ - -#elif defined(HAVE_WCSTR_H) - /* old compilers have relevant declarations here */ - #include -#elif defined(__FreeBSD__) || defined(__DARWIN__) - /* include stdlib.h for wchar_t */ - #include -#endif /* HAVE_WCHAR_H */ - -#ifdef HAVE_WIDEC_H - #include -#endif - -/* -------------------------------------------------------------------------- */ -/* define wxHAVE_TCHAR_SUPPORT for the compilers which support the TCHAR type */ -/* mapped to either char or wchar_t depending on the ASCII/Unicode mode and */ -/* have the function mapping _tfoo() -> foo() or wfoo() */ -/* -------------------------------------------------------------------------- */ - -/* VC++ and BC++ starting with 5.2 have TCHAR support */ -#ifdef __VISUALC__ - #define wxHAVE_TCHAR_SUPPORT -#elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x520) - #define wxHAVE_TCHAR_SUPPORT - #include -#elif defined(__MINGW32__) && wxCHECK_W32API_VERSION( 1, 0 ) - #define wxHAVE_TCHAR_SUPPORT - #include - #include - #include -#endif /* compilers with (good) TCHAR support */ - -#ifdef wxHAVE_TCHAR_SUPPORT - /* get TCHAR definition if we've got it */ - #include - - /* we surely do have wchar_t if we have TCHAR */ - #ifndef wxUSE_WCHAR_T - #define wxUSE_WCHAR_T 1 - #endif /* !defined(wxUSE_WCHAR_T) */ -#endif /* wxHAVE_TCHAR_SUPPORT */ - -/* ------------------------------------------------------------------------- */ -/* define wxChar type */ -/* ------------------------------------------------------------------------- */ - -/* TODO: define wxCharInt to be equal to either int or wint_t? */ - -#if !wxUSE_UNICODE - typedef char wxChar; - typedef signed char wxSChar; - typedef unsigned char wxUChar; -#else - /* VZ: note that VC++ defines _T[SU]CHAR simply as wchar_t and not as */ - /* signed/unsigned version of it which (a) makes sense to me (unlike */ - /* char wchar_t is always unsigned) and (b) was how the previous */ - /* definitions worked so keep it like this */ - typedef wchar_t wxChar; - typedef wchar_t wxSChar; - typedef wchar_t wxUChar; -#endif /* ASCII/Unicode */ - -/* ------------------------------------------------------------------------- */ -/* define wxStringCharType */ -/* ------------------------------------------------------------------------- */ - -/* depending on the platform, Unicode build can either store wxStrings as - wchar_t* or UTF-8 encoded char*: */ -#if wxUSE_UNICODE - /* FIXME-UTF8: what would be better place for this? */ - #if defined(wxUSE_UTF8_LOCALE_ONLY) && !defined(wxUSE_UNICODE_UTF8) - #error "wxUSE_UTF8_LOCALE_ONLY only makes sense with wxUSE_UNICODE_UTF8" - #endif - #ifndef wxUSE_UTF8_LOCALE_ONLY - #define wxUSE_UTF8_LOCALE_ONLY 0 - #endif - - #ifndef wxUSE_UNICODE_UTF8 - #define wxUSE_UNICODE_UTF8 0 - #endif - - #if wxUSE_UNICODE_UTF8 - #define wxUSE_UNICODE_WCHAR 0 - #else - #define wxUSE_UNICODE_WCHAR 1 - #endif -#else - #define wxUSE_UNICODE_WCHAR 0 - #define wxUSE_UNICODE_UTF8 0 - #define wxUSE_UTF8_LOCALE_ONLY 0 -#endif - -/* define char type used by wxString internal representation: */ -#if wxUSE_UNICODE_WCHAR - typedef wchar_t wxStringCharType; -#else /* wxUSE_UNICODE_UTF8 || ANSI */ - typedef char wxStringCharType; -#endif - - -/* ------------------------------------------------------------------------- */ -/* define wxT() and related macros */ -/* ------------------------------------------------------------------------- */ - -/* BSD systems define _T() to be something different in ctype.h, override it */ -#if defined(__FreeBSD__) || defined(__DARWIN__) - #include - #undef _T -#endif - -/* - wxT ("wx text") macro turns a literal string constant into a wide char - constant. It is mostly unnecessary with wx 2.9 but defined for - compatibility. - */ -#ifndef wxT - #if !wxUSE_UNICODE - #define wxT(x) x - #else /* Unicode */ - /* - Notice that we use an intermediate macro to allow x to be expanded - if it's a macro itself. - */ - #ifndef wxCOMPILER_BROKEN_CONCAT_OPER - #define wxT(x) wxCONCAT_HELPER(L, x) - #else - #define wxT(x) wxPREPEND_L(x) - #endif - #endif /* ASCII/Unicode */ -#endif /* !defined(wxT) */ - -/* - wxT_2 exists only for compatibility with wx 2.x and is the same as wxT() in - that version but nothing in the newer ones. - */ -#define wxT_2(x) x - -/* - wxS ("wx string") macro can be used to create literals using the same - representation as wxString does internally, i.e. wchar_t in Unicode build - under Windows or char in UTF-8-based Unicode builds and (deprecated) ANSI - builds everywhere (see wxStringCharType definition above). - */ -#if wxUSE_UNICODE_WCHAR - /* - As above with wxT(), wxS() argument is expanded if it's a macro. - */ - #ifndef wxCOMPILER_BROKEN_CONCAT_OPER - #define wxS(x) wxCONCAT_HELPER(L, x) - #else - #define wxS(x) wxPREPEND_L(x) - #endif -#else /* wxUSE_UNICODE_UTF8 || ANSI */ - #define wxS(x) x -#endif - -/* - _T() is a synonym for wxT() familiar to Windows programmers. As this macro - has even higher risk of conflicting with system headers, its use is - discouraged and you may predefine wxNO__T to disable it. Additionally, we - do it ourselves for Sun CC which is known to use it in its standard headers - (see #10660). - */ -#if defined(__SUNPRO_C) || defined(__SUNPRO_CC) - #ifndef wxNO__T - #define wxNO__T - #endif -#endif - -#if !defined(_T) && !defined(wxNO__T) - #define _T(x) wxT(x) -#endif - -/* a helper macro allowing to make another macro Unicode-friendly, see below */ -#define wxAPPLY_T(x) wxT(x) - -/* Unicode-friendly __FILE__, __DATE__ and __TIME__ analogs */ -#ifndef __TFILE__ - #define __TFILE__ wxAPPLY_T(__FILE__) -#endif - -#ifndef __TDATE__ - #define __TDATE__ wxAPPLY_T(__DATE__) -#endif - -#ifndef __TTIME__ - #define __TTIME__ wxAPPLY_T(__TIME__) -#endif - -#endif /* _WX_WXCHARTYPE_H_ */ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/checkbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/checkbox.h deleted file mode 100644 index 00e73dca..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/checkbox.h +++ /dev/null @@ -1,187 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/checkbox.h -// Purpose: wxCheckBox class interface -// Author: Vadim Zeitlin -// Modified by: -// Created: 07.09.00 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHECKBOX_H_BASE_ -#define _WX_CHECKBOX_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_CHECKBOX - -#include "wx/control.h" - - -/* - * wxCheckBox style flags - * (Using wxCHK_* because wxCB_* is used by wxComboBox). - * Determine whether to use a 3-state or 2-state - * checkbox. 3-state enables to differentiate - * between 'unchecked', 'checked' and 'undetermined'. - * - * In addition to the styles here it is also possible to specify just 0 which - * is treated the same as wxCHK_2STATE for compatibility (but using explicit - * flag is preferred). - */ -#define wxCHK_2STATE 0x4000 -#define wxCHK_3STATE 0x1000 - -/* - * If this style is set the user can set the checkbox to the - * undetermined state. If not set the undetermined set can only - * be set programmatically. - * This style can only be used with 3 state checkboxes. - */ -#define wxCHK_ALLOW_3RD_STATE_FOR_USER 0x2000 - -extern WXDLLIMPEXP_DATA_CORE(const char) wxCheckBoxNameStr[]; - -// ---------------------------------------------------------------------------- -// wxCheckBox: a control which shows a label and a box which may be checked -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxCheckBoxBase : public wxControl -{ -public: - wxCheckBoxBase() { } - - // set/get the checked status of the listbox - virtual void SetValue(bool value) = 0; - virtual bool GetValue() const = 0; - - bool IsChecked() const - { - wxASSERT_MSG( !Is3State(), wxT("Calling IsChecked() doesn't make sense for") - wxT(" a three state checkbox, Use Get3StateValue() instead") ); - - return GetValue(); - } - - wxCheckBoxState Get3StateValue() const - { - wxCheckBoxState state = DoGet3StateValue(); - - if ( state == wxCHK_UNDETERMINED && !Is3State() ) - { - // Undetermined state with a 2-state checkbox?? - wxFAIL_MSG( wxT("DoGet3StateValue() says the 2-state checkbox is ") - wxT("in an undetermined/third state") ); - - state = wxCHK_UNCHECKED; - } - - return state; - } - - void Set3StateValue(wxCheckBoxState state) - { - if ( state == wxCHK_UNDETERMINED && !Is3State() ) - { - wxFAIL_MSG(wxT("Setting a 2-state checkbox to undetermined state")); - state = wxCHK_UNCHECKED; - } - - DoSet3StateValue(state); - } - - bool Is3State() const { return HasFlag(wxCHK_3STATE); } - - bool Is3rdStateAllowedForUser() const - { - return HasFlag(wxCHK_ALLOW_3RD_STATE_FOR_USER); - } - - virtual bool HasTransparentBackground() wxOVERRIDE { return true; } - - // wxCheckBox-specific processing after processing the update event - virtual void DoUpdateWindowUI(wxUpdateUIEvent& event) wxOVERRIDE - { - wxControl::DoUpdateWindowUI(event); - - if ( event.GetSetChecked() ) - SetValue(event.GetChecked()); - } - -protected: - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - virtual void DoSet3StateValue(wxCheckBoxState WXUNUSED(state)) { wxFAIL; } - - virtual wxCheckBoxState DoGet3StateValue() const - { - wxFAIL; - return wxCHK_UNCHECKED; - } - - // Helper function to be called from derived classes Create() - // implementations: it checks that the style doesn't contain any - // incompatible bits and modifies it to be sane if it does. - static void WXValidateStyle(long *stylePtr) - { - long& style = *stylePtr; - - if ( !(style & (wxCHK_2STATE | wxCHK_3STATE)) ) - { - // For compatibility we use absence of style flags as wxCHK_2STATE - // because wxCHK_2STATE used to have the value of 0 and some - // existing code uses 0 instead of it. Moreover, some code even - // uses some non-0 style, e.g. wxBORDER_XXX, but doesn't specify - // neither wxCHK_2STATE nor wxCHK_3STATE -- to avoid breaking it, - // assume (much more common) 2 state checkbox by default. - style |= wxCHK_2STATE; - } - - if ( style & wxCHK_3STATE ) - { - if ( style & wxCHK_2STATE ) - { - wxFAIL_MSG( "wxCHK_2STATE and wxCHK_3STATE can't be used " - "together" ); - style &= ~wxCHK_3STATE; - } - } - else // No wxCHK_3STATE - { - if ( style & wxCHK_ALLOW_3RD_STATE_FOR_USER ) - { - wxFAIL_MSG( "wxCHK_ALLOW_3RD_STATE_FOR_USER doesn't make sense " - "without wxCHK_3STATE" ); - style &= ~wxCHK_ALLOW_3RD_STATE_FOR_USER; - } - } - } - -private: - wxDECLARE_NO_COPY_CLASS(wxCheckBoxBase); -}; - -// Most ports support 3 state checkboxes so define this by default. -#define wxHAS_3STATE_CHECKBOX - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/checkbox.h" -#elif defined(__WXMSW__) - #include "wx/msw/checkbox.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/checkbox.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/checkbox.h" -#elif defined(__WXGTK__) - #undef wxHAS_3STATE_CHECKBOX - #include "wx/gtk1/checkbox.h" -#elif defined(__WXMAC__) - #include "wx/osx/checkbox.h" -#elif defined(__WXQT__) - #include "wx/qt/checkbox.h" -#endif - -#endif // wxUSE_CHECKBOX - -#endif // _WX_CHECKBOX_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/checkeddelete.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/checkeddelete.h deleted file mode 100644 index fd295faf..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/checkeddelete.h +++ /dev/null @@ -1,44 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/checkeddelete.h -// Purpose: wxCHECKED_DELETE() macro -// Author: Vadim Zeitlin -// Created: 2009-02-03 -// Copyright: (c) 2002-2009 wxWidgets dev team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHECKEDDELETE_H_ -#define _WX_CHECKEDDELETE_H_ - -#include "wx/cpp.h" - -// TODO: provide wxCheckedDelete[Array]() template functions too - -// ---------------------------------------------------------------------------- -// wxCHECKED_DELETE and wxCHECKED_DELETE_ARRAY macros -// ---------------------------------------------------------------------------- - -/* - checked deleters are used to make sure that the type being deleted is really - a complete type.: otherwise sizeof() would result in a compile-time error - - do { ... } while ( 0 ) construct is used to have an anonymous scope - (otherwise we could have name clashes between different "complete"s) but - still force a semicolon after the macro -*/ - -#define wxCHECKED_DELETE(ptr) \ - wxSTATEMENT_MACRO_BEGIN \ - typedef char complete[sizeof(*ptr)] WX_ATTRIBUTE_UNUSED; \ - delete ptr; \ - wxSTATEMENT_MACRO_END - -#define wxCHECKED_DELETE_ARRAY(ptr) \ - wxSTATEMENT_MACRO_BEGIN \ - typedef char complete[sizeof(*ptr)] WX_ATTRIBUTE_UNUSED; \ - delete [] ptr; \ - wxSTATEMENT_MACRO_END - - -#endif // _WX_CHECKEDDELETE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/checklst.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/checklst.h deleted file mode 100644 index 1b06f34c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/checklst.h +++ /dev/null @@ -1,57 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/checklst.h -// Purpose: wxCheckListBox class interface -// Author: Vadim Zeitlin -// Modified by: -// Created: 12.09.00 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHECKLST_H_BASE_ -#define _WX_CHECKLST_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_CHECKLISTBOX - -#include "wx/listbox.h" - -// ---------------------------------------------------------------------------- -// wxCheckListBox: a listbox whose items may be checked -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxCheckListBoxBase : public wxListBox -{ -public: - wxCheckListBoxBase() { } - - // check list box specific methods - virtual bool IsChecked(unsigned int item) const = 0; - virtual void Check(unsigned int item, bool check = true) = 0; - - virtual unsigned int GetCheckedItems(wxArrayInt& checkedItems) const; - - wxDECLARE_NO_COPY_CLASS(wxCheckListBoxBase); -}; - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/checklst.h" -#elif defined(__WXMSW__) - #include "wx/msw/checklst.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/checklst.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/checklst.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/checklst.h" -#elif defined(__WXMAC__) - #include "wx/osx/checklst.h" -#elif defined(__WXQT__) - #include "wx/qt/checklst.h" -#endif - -#endif // wxUSE_CHECKLISTBOX - -#endif - // _WX_CHECKLST_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/chkconf.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/chkconf.h deleted file mode 100644 index 0e481421..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/chkconf.h +++ /dev/null @@ -1,2327 +0,0 @@ -/* - * Name: wx/chkconf.h - * Purpose: check the config settings for consistency - * Author: Vadim Zeitlin - * Modified by: - * Created: 09.08.00 - * Copyright: (c) 2000 Vadim Zeitlin - * Licence: wxWindows licence - */ - -/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ -#ifndef _WX_CHKCONF_H_ -#define _WX_CHKCONF_H_ - -/* - ************************************************** - PLEASE READ THIS IF YOU GET AN ERROR IN THIS FILE! - ************************************************** - - If you get an error saying "wxUSE_FOO must be defined", it means that you - are not using the correct up-to-date version of setup.h. This happens most - often when using git or snapshots and a new symbol was added to setup0.h - and you haven't updated your local setup.h to reflect it. If this is the - case, you need to propagate the changes from setup0.h to your setup.h and, - if using makefiles under MSW, also remove setup.h under the build directory - (lib/$(COMPILER)_{lib,dll}/msw[u][d][dll]/wx) so that the new setup.h is - copied there. - - If you get an error of the form "wxFoo requires wxBar", then the settings - in your setup.h are inconsistent. You have the choice between correcting - them manually or commenting out #define wxABORT_ON_CONFIG_ERROR below to - try to correct the problems automatically (not really recommended but - might work). - */ - -/* - This file has the following sections: - 1. checks that all wxUSE_XXX symbols we use are defined - a) first the non-GUI ones - b) then the GUI-only ones - 2. platform-specific checks done in the platform headers - 3. generic consistency checks - a) first the non-GUI ones - b) then the GUI-only ones - */ - -/* - this global setting determines what should we do if the setting FOO - requires BAR and BAR is not set: we can either silently unset FOO as well - (do this if you're trying to build the smallest possible library) or give an - error and abort (default as leads to least surprising behaviour) - */ -#define wxABORT_ON_CONFIG_ERROR - -/* - global features - */ - -/* - If we're compiling without support for threads/exceptions we have to - disable the corresponding features. - */ -#ifdef wxNO_THREADS -# undef wxUSE_THREADS -# define wxUSE_THREADS 0 -#endif /* wxNO_THREADS */ - -#ifdef wxNO_EXCEPTIONS -# undef wxUSE_EXCEPTIONS -# define wxUSE_EXCEPTIONS 0 -#endif /* wxNO_EXCEPTIONS */ - -/* we also must disable exceptions if compiler doesn't support them */ -#if defined(_MSC_VER) && !defined(_CPPUNWIND) -# undef wxUSE_EXCEPTIONS -# define wxUSE_EXCEPTIONS 0 -#endif /* VC++ without exceptions support */ - - -/* - Section 1a: tests for non GUI features. - - please keep the options in alphabetical order! - */ - -#ifndef wxUSE_ANY -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ANY must be defined, please read comment near the top of this file." -# else -# define wxUSE_ANY 0 -# endif -#endif /* wxUSE_ANY */ - -#ifndef wxUSE_COMPILER_TLS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_COMPILER_TLS must be defined, please read comment near the top of this file." -# else -# define wxUSE_COMPILER_TLS 0 -# endif -#endif /* !defined(wxUSE_COMPILER_TLS) */ - -#ifndef wxUSE_CONSOLE_EVENTLOOP -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_CONSOLE_EVENTLOOP must be defined, please read comment near the top of this file." -# else -# define wxUSE_CONSOLE_EVENTLOOP 0 -# endif -#endif /* !defined(wxUSE_CONSOLE_EVENTLOOP) */ - -#ifndef wxUSE_DYNLIB_CLASS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DYNLIB_CLASS must be defined, please read comment near the top of this file." -# else -# define wxUSE_DYNLIB_CLASS 0 -# endif -#endif /* !defined(wxUSE_DYNLIB_CLASS) */ - -#ifndef wxUSE_EXCEPTIONS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_EXCEPTIONS must be defined, please read comment near the top of this file." -# else -# define wxUSE_EXCEPTIONS 0 -# endif -#endif /* !defined(wxUSE_EXCEPTIONS) */ - -#ifndef wxUSE_FILE_HISTORY -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_FILE_HISTORY must be defined, please read comment near the top of this file." -# else -# define wxUSE_FILE_HISTORY 0 -# endif -#endif /* !defined(wxUSE_FILE_HISTORY) */ - -#ifndef wxUSE_FILESYSTEM -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_FILESYSTEM must be defined, please read comment near the top of this file." -# else -# define wxUSE_FILESYSTEM 0 -# endif -#endif /* !defined(wxUSE_FILESYSTEM) */ - -#ifndef wxUSE_FS_ARCHIVE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_FS_ARCHIVE must be defined, please read comment near the top of this file." -# else -# define wxUSE_FS_ARCHIVE 0 -# endif -#endif /* !defined(wxUSE_FS_ARCHIVE) */ - -#ifndef wxUSE_FSVOLUME -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_FSVOLUME must be defined, please read comment near the top of this file." -# else -# define wxUSE_FSVOLUME 0 -# endif -#endif /* !defined(wxUSE_FSVOLUME) */ - -#ifndef wxUSE_FSWATCHER -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_FSWATCHER must be defined, please read comment near the top of this file." -# else -# define wxUSE_FSWATCHER 0 -# endif -#endif /* !defined(wxUSE_FSWATCHER) */ - -#ifndef wxUSE_DYNAMIC_LOADER -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DYNAMIC_LOADER must be defined, please read comment near the top of this file." -# else -# define wxUSE_DYNAMIC_LOADER 0 -# endif -#endif /* !defined(wxUSE_DYNAMIC_LOADER) */ - -#ifndef wxUSE_INTL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_INTL must be defined, please read comment near the top of this file." -# else -# define wxUSE_INTL 0 -# endif -#endif /* !defined(wxUSE_INTL) */ - -#ifndef wxUSE_IPV6 -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_IPV6 must be defined, please read comment near the top of this file." -# else -# define wxUSE_IPV6 0 -# endif -#endif /* !defined(wxUSE_IPV6) */ - -#ifndef wxUSE_LOG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_LOG must be defined, please read comment near the top of this file." -# else -# define wxUSE_LOG 0 -# endif -#endif /* !defined(wxUSE_LOG) */ - -#ifndef wxUSE_LONGLONG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_LONGLONG must be defined, please read comment near the top of this file." -# else -# define wxUSE_LONGLONG 0 -# endif -#endif /* !defined(wxUSE_LONGLONG) */ - -#ifndef wxUSE_MIMETYPE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_MIMETYPE must be defined, please read comment near the top of this file." -# else -# define wxUSE_MIMETYPE 0 -# endif -#endif /* !defined(wxUSE_MIMETYPE) */ - -#ifndef wxUSE_ON_FATAL_EXCEPTION -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ON_FATAL_EXCEPTION must be defined, please read comment near the top of this file." -# else -# define wxUSE_ON_FATAL_EXCEPTION 0 -# endif -#endif /* !defined(wxUSE_ON_FATAL_EXCEPTION) */ - -#ifndef wxUSE_PRINTF_POS_PARAMS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_PRINTF_POS_PARAMS must be defined, please read comment near the top of this file." -# else -# define wxUSE_PRINTF_POS_PARAMS 0 -# endif -#endif /* !defined(wxUSE_PRINTF_POS_PARAMS) */ - -#ifndef wxUSE_PROTOCOL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_PROTOCOL must be defined, please read comment near the top of this file." -# else -# define wxUSE_PROTOCOL 0 -# endif -#endif /* !defined(wxUSE_PROTOCOL) */ - -/* we may not define wxUSE_PROTOCOL_XXX if wxUSE_PROTOCOL is set to 0 */ -#if !wxUSE_PROTOCOL -# undef wxUSE_PROTOCOL_HTTP -# undef wxUSE_PROTOCOL_FTP -# undef wxUSE_PROTOCOL_FILE -# define wxUSE_PROTOCOL_HTTP 0 -# define wxUSE_PROTOCOL_FTP 0 -# define wxUSE_PROTOCOL_FILE 0 -#endif /* wxUSE_PROTOCOL */ - -#ifndef wxUSE_PROTOCOL_HTTP -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_PROTOCOL_HTTP must be defined, please read comment near the top of this file." -# else -# define wxUSE_PROTOCOL_HTTP 0 -# endif -#endif /* !defined(wxUSE_PROTOCOL_HTTP) */ - -#ifndef wxUSE_PROTOCOL_FTP -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_PROTOCOL_FTP must be defined, please read comment near the top of this file." -# else -# define wxUSE_PROTOCOL_FTP 0 -# endif -#endif /* !defined(wxUSE_PROTOCOL_FTP) */ - -#ifndef wxUSE_PROTOCOL_FILE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_PROTOCOL_FILE must be defined, please read comment near the top of this file." -# else -# define wxUSE_PROTOCOL_FILE 0 -# endif -#endif /* !defined(wxUSE_PROTOCOL_FILE) */ - -#ifndef wxUSE_REGEX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_REGEX must be defined, please read comment near the top of this file." -# else -# define wxUSE_REGEX 0 -# endif -#endif /* !defined(wxUSE_REGEX) */ - -#ifndef wxUSE_STDPATHS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_STDPATHS must be defined, please read comment near the top of this file." -# else -# define wxUSE_STDPATHS 1 -# endif -#endif /* !defined(wxUSE_STDPATHS) */ - -#ifndef wxUSE_XML -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_XML must be defined, please read comment near the top of this file." -# else -# define wxUSE_XML 0 -# endif -#endif /* !defined(wxUSE_XML) */ - -#ifndef wxUSE_SOCKETS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_SOCKETS must be defined, please read comment near the top of this file." -# else -# define wxUSE_SOCKETS 0 -# endif -#endif /* !defined(wxUSE_SOCKETS) */ - -#ifndef wxUSE_STD_CONTAINERS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_STD_CONTAINERS must be defined, please read comment near the top of this file." -# else -# define wxUSE_STD_CONTAINERS 0 -# endif -#endif /* !defined(wxUSE_STD_CONTAINERS) */ - -#ifndef wxUSE_STD_CONTAINERS_COMPATIBLY -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_STD_CONTAINERS_COMPATIBLY must be defined, please read comment near the top of this file." -# else -# define wxUSE_STD_CONTAINERS_COMPATIBLY 0 -# endif -#endif /* !defined(wxUSE_STD_CONTAINERS_COMPATIBLY) */ - -#ifndef wxUSE_STD_STRING_CONV_IN_WXSTRING -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_STD_STRING_CONV_IN_WXSTRING must be defined, please read comment near the top of this file." -# else -# define wxUSE_STD_STRING_CONV_IN_WXSTRING 0 -# endif -#endif /* !defined(wxUSE_STD_STRING_CONV_IN_WXSTRING) */ - -#ifndef wxUSE_STREAMS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_STREAMS must be defined, please read comment near the top of this file." -# else -# define wxUSE_STREAMS 0 -# endif -#endif /* !defined(wxUSE_STREAMS) */ - -#ifndef wxUSE_STOPWATCH -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_STOPWATCH must be defined, please read comment near the top of this file." -# else -# define wxUSE_STOPWATCH 0 -# endif -#endif /* !defined(wxUSE_STOPWATCH) */ - -#ifndef wxUSE_TEXTBUFFER -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TEXTBUFFER must be defined, please read comment near the top of this file." -# else -# define wxUSE_TEXTBUFFER 0 -# endif -#endif /* !defined(wxUSE_TEXTBUFFER) */ - -#ifndef wxUSE_TEXTFILE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TEXTFILE must be defined, please read comment near the top of this file." -# else -# define wxUSE_TEXTFILE 0 -# endif -#endif /* !defined(wxUSE_TEXTFILE) */ - -#ifndef wxUSE_UNICODE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_UNICODE must be defined, please read comment near the top of this file." -# else -# define wxUSE_UNICODE 0 -# endif -#endif /* !defined(wxUSE_UNICODE) */ - -#ifndef wxUSE_URL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_URL must be defined, please read comment near the top of this file." -# else -# define wxUSE_URL 0 -# endif -#endif /* !defined(wxUSE_URL) */ - -#ifndef wxUSE_VARIANT -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_VARIANT must be defined, please read comment near the top of this file." -# else -# define wxUSE_VARIANT 0 -# endif -#endif /* wxUSE_VARIANT */ - -#ifndef wxUSE_XLOCALE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_XLOCALE must be defined, please read comment near the top of this file." -# else -# define wxUSE_XLOCALE 0 -# endif -#endif /* !defined(wxUSE_XLOCALE) */ - -/* - Section 1b: all these tests are for GUI only. - - please keep the options in alphabetical order! - */ -#if wxUSE_GUI - -/* - all of the settings tested below must be defined or we'd get an error from - preprocessor about invalid integer expression - */ - -#ifndef wxUSE_ABOUTDLG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ABOUTDLG must be defined, please read comment near the top of this file." -# else -# define wxUSE_ABOUTDLG 0 -# endif -#endif /* !defined(wxUSE_ABOUTDLG) */ - -#ifndef wxUSE_ACCEL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ACCEL must be defined, please read comment near the top of this file." -# else -# define wxUSE_ACCEL 0 -# endif -#endif /* !defined(wxUSE_ACCEL) */ - -#ifndef wxUSE_ACCESSIBILITY -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ACCESSIBILITY must be defined, please read comment near the top of this file." -# else -# define wxUSE_ACCESSIBILITY 0 -# endif -#endif /* !defined(wxUSE_ACCESSIBILITY) */ - -#ifndef wxUSE_ADDREMOVECTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ADDREMOVECTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_ADDREMOVECTRL 0 -# endif -#endif /* !defined(wxUSE_ADDREMOVECTRL) */ - -#ifndef wxUSE_ACTIVITYINDICATOR -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ACTIVITYINDICATOR must be defined, please read comment near the top of this file." -# else -# define wxUSE_ACTIVITYINDICATOR 0 -# endif -#endif /* !defined(wxUSE_ACTIVITYINDICATOR) */ - -#ifndef wxUSE_ANIMATIONCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ANIMATIONCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_ANIMATIONCTRL 0 -# endif -#endif /* !defined(wxUSE_ANIMATIONCTRL) */ - -#ifndef wxUSE_ARTPROVIDER_STD -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ARTPROVIDER_STD must be defined, please read comment near the top of this file." -# else -# define wxUSE_ARTPROVIDER_STD 0 -# endif -#endif /* !defined(wxUSE_ARTPROVIDER_STD) */ - -#ifndef wxUSE_ARTPROVIDER_TANGO -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ARTPROVIDER_TANGO must be defined, please read comment near the top of this file." -# else -# define wxUSE_ARTPROVIDER_TANGO 0 -# endif -#endif /* !defined(wxUSE_ARTPROVIDER_TANGO) */ - -#ifndef wxUSE_AUTOID_MANAGEMENT -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_AUTOID_MANAGEMENT must be defined, please read comment near the top of this file." -# else -# define wxUSE_AUTOID_MANAGEMENT 0 -# endif -#endif /* !defined(wxUSE_AUTOID_MANAGEMENT) */ - -#ifndef wxUSE_BITMAPCOMBOBOX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_BITMAPCOMBOBOX must be defined, please read comment near the top of this file." -# else -# define wxUSE_BITMAPCOMBOBOX 0 -# endif -#endif /* !defined(wxUSE_BITMAPCOMBOBOX) */ - -#ifndef wxUSE_BMPBUTTON -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_BMPBUTTON must be defined, please read comment near the top of this file." -# else -# define wxUSE_BMPBUTTON 0 -# endif -#endif /* !defined(wxUSE_BMPBUTTON) */ - -#ifndef wxUSE_BUTTON -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_BUTTON must be defined, please read comment near the top of this file." -# else -# define wxUSE_BUTTON 0 -# endif -#endif /* !defined(wxUSE_BUTTON) */ - -#ifndef wxUSE_CAIRO -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_CAIRO must be defined, please read comment near the top of this file." -# else -# define wxUSE_CAIRO 0 -# endif -#endif /* !defined(wxUSE_CAIRO) */ - -#ifndef wxUSE_CALENDARCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_CALENDARCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_CALENDARCTRL 0 -# endif -#endif /* !defined(wxUSE_CALENDARCTRL) */ - -#ifndef wxUSE_CARET -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_CARET must be defined, please read comment near the top of this file." -# else -# define wxUSE_CARET 0 -# endif -#endif /* !defined(wxUSE_CARET) */ - -#ifndef wxUSE_CHECKBOX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_CHECKBOX must be defined, please read comment near the top of this file." -# else -# define wxUSE_CHECKBOX 0 -# endif -#endif /* !defined(wxUSE_CHECKBOX) */ - -#ifndef wxUSE_CHECKLISTBOX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_CHECKLISTBOX must be defined, please read comment near the top of this file." -# else -# define wxUSE_CHECKLISTBOX 0 -# endif -#endif /* !defined(wxUSE_CHECKLISTBOX) */ - -#ifndef wxUSE_CHOICE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_CHOICE must be defined, please read comment near the top of this file." -# else -# define wxUSE_CHOICE 0 -# endif -#endif /* !defined(wxUSE_CHOICE) */ - -#ifndef wxUSE_CHOICEBOOK -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_CHOICEBOOK must be defined, please read comment near the top of this file." -# else -# define wxUSE_CHOICEBOOK 0 -# endif -#endif /* !defined(wxUSE_CHOICEBOOK) */ - -#ifndef wxUSE_CHOICEDLG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_CHOICEDLG must be defined, please read comment near the top of this file." -# else -# define wxUSE_CHOICEDLG 0 -# endif -#endif /* !defined(wxUSE_CHOICEDLG) */ - -#ifndef wxUSE_CLIPBOARD -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_CLIPBOARD must be defined, please read comment near the top of this file." -# else -# define wxUSE_CLIPBOARD 0 -# endif -#endif /* !defined(wxUSE_CLIPBOARD) */ - -#ifndef wxUSE_COLLPANE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_COLLPANE must be defined, please read comment near the top of this file." -# else -# define wxUSE_COLLPANE 0 -# endif -#endif /* !defined(wxUSE_COLLPANE) */ - -#ifndef wxUSE_COLOURDLG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_COLOURDLG must be defined, please read comment near the top of this file." -# else -# define wxUSE_COLOURDLG 0 -# endif -#endif /* !defined(wxUSE_COLOURDLG) */ - -#ifndef wxUSE_COLOURPICKERCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_COLOURPICKERCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_COLOURPICKERCTRL 0 -# endif -#endif /* !defined(wxUSE_COLOURPICKERCTRL) */ - -#ifndef wxUSE_COMBOBOX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_COMBOBOX must be defined, please read comment near the top of this file." -# else -# define wxUSE_COMBOBOX 0 -# endif -#endif /* !defined(wxUSE_COMBOBOX) */ - -#ifndef wxUSE_COMMANDLINKBUTTON -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_COMMANDLINKBUTTON must be defined, please read comment near the top of this file." -# else -# define wxUSE_COMMANDLINKBUTTON 0 -# endif -#endif /* !defined(wxUSE_COMMANDLINKBUTTON) */ - -#ifndef wxUSE_COMBOCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_COMBOCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_COMBOCTRL 0 -# endif -#endif /* !defined(wxUSE_COMBOCTRL) */ - -#ifndef wxUSE_DATAOBJ -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DATAOBJ must be defined, please read comment near the top of this file." -# else -# define wxUSE_DATAOBJ 0 -# endif -#endif /* !defined(wxUSE_DATAOBJ) */ - -#ifndef wxUSE_DATAVIEWCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DATAVIEWCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_DATAVIEWCTRL 0 -# endif -#endif /* !defined(wxUSE_DATAVIEWCTRL) */ - -#ifndef wxUSE_DATEPICKCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DATEPICKCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_DATEPICKCTRL 0 -# endif -#endif /* !defined(wxUSE_DATEPICKCTRL) */ - -#ifndef wxUSE_DC_TRANSFORM_MATRIX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DC_TRANSFORM_MATRIX must be defined, please read comment near the top of this file." -# else -# define wxUSE_DC_TRANSFORM_MATRIX 1 -# endif -#endif /* wxUSE_DC_TRANSFORM_MATRIX */ - -#ifndef wxUSE_DIRPICKERCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DIRPICKERCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_DIRPICKERCTRL 0 -# endif -#endif /* !defined(wxUSE_DIRPICKERCTRL) */ - -#ifndef wxUSE_DISPLAY -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DISPLAY must be defined, please read comment near the top of this file." -# else -# define wxUSE_DISPLAY 0 -# endif -#endif /* !defined(wxUSE_DISPLAY) */ - -#ifndef wxUSE_DOC_VIEW_ARCHITECTURE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DOC_VIEW_ARCHITECTURE must be defined, please read comment near the top of this file." -# else -# define wxUSE_DOC_VIEW_ARCHITECTURE 0 -# endif -#endif /* !defined(wxUSE_DOC_VIEW_ARCHITECTURE) */ - -#ifndef wxUSE_FILECTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_FILECTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_FILECTRL 0 -# endif -#endif /* !defined(wxUSE_FILECTRL) */ - -#ifndef wxUSE_FILEDLG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_FILEDLG must be defined, please read comment near the top of this file." -# else -# define wxUSE_FILEDLG 0 -# endif -#endif /* !defined(wxUSE_FILEDLG) */ - -#ifndef wxUSE_FILEPICKERCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_FILEPICKERCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_FILEPICKERCTRL 0 -# endif -#endif /* !defined(wxUSE_FILEPICKERCTRL) */ - -#ifndef wxUSE_FONTDLG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_FONTDLG must be defined, please read comment near the top of this file." -# else -# define wxUSE_FONTDLG 0 -# endif -#endif /* !defined(wxUSE_FONTDLG) */ - -#ifndef wxUSE_FONTMAP -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_FONTMAP must be defined, please read comment near the top of this file." -# else -# define wxUSE_FONTMAP 0 -# endif -#endif /* !defined(wxUSE_FONTMAP) */ - -#ifndef wxUSE_FONTPICKERCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_FONTPICKERCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_FONTPICKERCTRL 0 -# endif -#endif /* !defined(wxUSE_FONTPICKERCTRL) */ - -#ifndef wxUSE_GAUGE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_GAUGE must be defined, please read comment near the top of this file." -# else -# define wxUSE_GAUGE 0 -# endif -#endif /* !defined(wxUSE_GAUGE) */ - -#ifndef wxUSE_GRAPHICS_CONTEXT -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_GRAPHICS_CONTEXT must be defined, please read comment near the top of this file." -# else -# define wxUSE_GRAPHICS_CONTEXT 0 -# endif -#endif /* !defined(wxUSE_GRAPHICS_CONTEXT) */ - - -#ifndef wxUSE_GRID -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_GRID must be defined, please read comment near the top of this file." -# else -# define wxUSE_GRID 0 -# endif -#endif /* !defined(wxUSE_GRID) */ - -#ifndef wxUSE_HEADERCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_HEADERCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_HEADERCTRL 0 -# endif -#endif /* !defined(wxUSE_HEADERCTRL) */ - -#ifndef wxUSE_HELP -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_HELP must be defined, please read comment near the top of this file." -# else -# define wxUSE_HELP 0 -# endif -#endif /* !defined(wxUSE_HELP) */ - -#ifndef wxUSE_HYPERLINKCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_HYPERLINKCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_HYPERLINKCTRL 0 -# endif -#endif /* !defined(wxUSE_HYPERLINKCTRL) */ - -#ifndef wxUSE_HTML -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_HTML must be defined, please read comment near the top of this file." -# else -# define wxUSE_HTML 0 -# endif -#endif /* !defined(wxUSE_HTML) */ - -#ifndef wxUSE_LIBMSPACK -# if !defined(__UNIX__) - /* set to 0 on platforms that don't have libmspack */ -# define wxUSE_LIBMSPACK 0 -# else -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_LIBMSPACK must be defined, please read comment near the top of this file." -# else -# define wxUSE_LIBMSPACK 0 -# endif -# endif -#endif /* !defined(wxUSE_LIBMSPACK) */ - -#ifndef wxUSE_ICO_CUR -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ICO_CUR must be defined, please read comment near the top of this file." -# else -# define wxUSE_ICO_CUR 0 -# endif -#endif /* !defined(wxUSE_ICO_CUR) */ - -#ifndef wxUSE_IFF -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_IFF must be defined, please read comment near the top of this file." -# else -# define wxUSE_IFF 0 -# endif -#endif /* !defined(wxUSE_IFF) */ - -#ifndef wxUSE_IMAGLIST -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_IMAGLIST must be defined, please read comment near the top of this file." -# else -# define wxUSE_IMAGLIST 0 -# endif -#endif /* !defined(wxUSE_IMAGLIST) */ - -#ifndef wxUSE_INFOBAR -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_INFOBAR must be defined, please read comment near the top of this file." -# else -# define wxUSE_INFOBAR 0 -# endif -#endif /* !defined(wxUSE_INFOBAR) */ - -#ifndef wxUSE_JOYSTICK -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_JOYSTICK must be defined, please read comment near the top of this file." -# else -# define wxUSE_JOYSTICK 0 -# endif -#endif /* !defined(wxUSE_JOYSTICK) */ - -#ifndef wxUSE_LISTBOOK -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_LISTBOOK must be defined, please read comment near the top of this file." -# else -# define wxUSE_LISTBOOK 0 -# endif -#endif /* !defined(wxUSE_LISTBOOK) */ - -#ifndef wxUSE_LISTBOX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_LISTBOX must be defined, please read comment near the top of this file." -# else -# define wxUSE_LISTBOX 0 -# endif -#endif /* !defined(wxUSE_LISTBOX) */ - -#ifndef wxUSE_LISTCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_LISTCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_LISTCTRL 0 -# endif -#endif /* !defined(wxUSE_LISTCTRL) */ - -#ifndef wxUSE_LOGGUI -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_LOGGUI must be defined, please read comment near the top of this file." -# else -# define wxUSE_LOGGUI 0 -# endif -#endif /* !defined(wxUSE_LOGGUI) */ - -#ifndef wxUSE_LOGWINDOW -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_LOGWINDOW must be defined, please read comment near the top of this file." -# else -# define wxUSE_LOGWINDOW 0 -# endif -#endif /* !defined(wxUSE_LOGWINDOW) */ - -#ifndef wxUSE_LOG_DIALOG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_LOG_DIALOG must be defined, please read comment near the top of this file." -# else -# define wxUSE_LOG_DIALOG 0 -# endif -#endif /* !defined(wxUSE_LOG_DIALOG) */ - -#ifndef wxUSE_MARKUP -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_MARKUP must be defined, please read comment near the top of this file." -# else -# define wxUSE_MARKUP 0 -# endif -#endif /* !defined(wxUSE_MARKUP) */ - -#ifndef wxUSE_MDI -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_MDI must be defined, please read comment near the top of this file." -# else -# define wxUSE_MDI 0 -# endif -#endif /* !defined(wxUSE_MDI) */ - -#ifndef wxUSE_MDI_ARCHITECTURE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_MDI_ARCHITECTURE must be defined, please read comment near the top of this file." -# else -# define wxUSE_MDI_ARCHITECTURE 0 -# endif -#endif /* !defined(wxUSE_MDI_ARCHITECTURE) */ - -#ifndef wxUSE_MENUS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_MENUS must be defined, please read comment near the top of this file." -# else -# define wxUSE_MENUS 0 -# endif -#endif /* !defined(wxUSE_MENUS) */ - -#ifndef wxUSE_MSGDLG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_MSGDLG must be defined, please read comment near the top of this file." -# else -# define wxUSE_MSGDLG 0 -# endif -#endif /* !defined(wxUSE_MSGDLG) */ - -#ifndef wxUSE_NOTEBOOK -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_NOTEBOOK must be defined, please read comment near the top of this file." -# else -# define wxUSE_NOTEBOOK 0 -# endif -#endif /* !defined(wxUSE_NOTEBOOK) */ - -#ifndef wxUSE_NOTIFICATION_MESSAGE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_NOTIFICATION_MESSAGE must be defined, please read comment near the top of this file." -# else -# define wxUSE_NOTIFICATION_MESSAGE 0 -# endif -#endif /* !defined(wxUSE_NOTIFICATION_MESSAGE) */ - -#ifndef wxUSE_ODCOMBOBOX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ODCOMBOBOX must be defined, please read comment near the top of this file." -# else -# define wxUSE_ODCOMBOBOX 0 -# endif -#endif /* !defined(wxUSE_ODCOMBOBOX) */ - -#ifndef wxUSE_PALETTE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_PALETTE must be defined, please read comment near the top of this file." -# else -# define wxUSE_PALETTE 0 -# endif -#endif /* !defined(wxUSE_PALETTE) */ - -#ifndef wxUSE_POPUPWIN -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_POPUPWIN must be defined, please read comment near the top of this file." -# else -# define wxUSE_POPUPWIN 0 -# endif -#endif /* !defined(wxUSE_POPUPWIN) */ - -#ifndef wxUSE_PREFERENCES_EDITOR -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_PREFERENCES_EDITOR must be defined, please read comment near the top of this file." -# else -# define wxUSE_PREFERENCES_EDITOR 0 -# endif -#endif /* !defined(wxUSE_PREFERENCES_EDITOR) */ - -#ifndef wxUSE_PRINTING_ARCHITECTURE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_PRINTING_ARCHITECTURE must be defined, please read comment near the top of this file." -# else -# define wxUSE_PRINTING_ARCHITECTURE 0 -# endif -#endif /* !defined(wxUSE_PRINTING_ARCHITECTURE) */ - -#ifndef wxUSE_RADIOBOX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_RADIOBOX must be defined, please read comment near the top of this file." -# else -# define wxUSE_RADIOBOX 0 -# endif -#endif /* !defined(wxUSE_RADIOBOX) */ - -#ifndef wxUSE_RADIOBTN -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_RADIOBTN must be defined, please read comment near the top of this file." -# else -# define wxUSE_RADIOBTN 0 -# endif -#endif /* !defined(wxUSE_RADIOBTN) */ - -#ifndef wxUSE_REARRANGECTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_REARRANGECTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_REARRANGECTRL 0 -# endif -#endif /* !defined(wxUSE_REARRANGECTRL) */ - -#ifndef wxUSE_RIBBON -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_RIBBON must be defined, please read comment near the top of this file." -# else -# define wxUSE_RIBBON 0 -# endif -#endif /* !defined(wxUSE_RIBBON) */ - -#ifndef wxUSE_RICHMSGDLG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_RICHMSGDLG must be defined, please read comment near the top of this file." -# else -# define wxUSE_RICHMSGDLG 0 -# endif -#endif /* !defined(wxUSE_RICHMSGDLG) */ - -#ifndef wxUSE_RICHTOOLTIP -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_RICHTOOLTIP must be defined, please read comment near the top of this file." -# else -# define wxUSE_RICHTOOLTIP 0 -# endif -#endif /* !defined(wxUSE_RICHTOOLTIP) */ - -#ifndef wxUSE_SASH -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_SASH must be defined, please read comment near the top of this file." -# else -# define wxUSE_SASH 0 -# endif -#endif /* !defined(wxUSE_SASH) */ - -#ifndef wxUSE_SCROLLBAR -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_SCROLLBAR must be defined, please read comment near the top of this file." -# else -# define wxUSE_SCROLLBAR 0 -# endif -#endif /* !defined(wxUSE_SCROLLBAR) */ - -#ifndef wxUSE_SLIDER -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_SLIDER must be defined, please read comment near the top of this file." -# else -# define wxUSE_SLIDER 0 -# endif -#endif /* !defined(wxUSE_SLIDER) */ - -#ifndef wxUSE_SOUND -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_SOUND must be defined, please read comment near the top of this file." -# else -# define wxUSE_SOUND 0 -# endif -#endif /* !defined(wxUSE_SOUND) */ - -#ifndef wxUSE_SPINBTN -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_SPINBTN must be defined, please read comment near the top of this file." -# else -# define wxUSE_SPINBTN 0 -# endif -#endif /* !defined(wxUSE_SPINBTN) */ - -#ifndef wxUSE_SPINCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_SPINCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_SPINCTRL 0 -# endif -#endif /* !defined(wxUSE_SPINCTRL) */ - -#ifndef wxUSE_SPLASH -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_SPLASH must be defined, please read comment near the top of this file." -# else -# define wxUSE_SPLASH 0 -# endif -#endif /* !defined(wxUSE_SPLASH) */ - -#ifndef wxUSE_SPLITTER -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_SPLITTER must be defined, please read comment near the top of this file." -# else -# define wxUSE_SPLITTER 0 -# endif -#endif /* !defined(wxUSE_SPLITTER) */ - -#ifndef wxUSE_STATBMP -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_STATBMP must be defined, please read comment near the top of this file." -# else -# define wxUSE_STATBMP 0 -# endif -#endif /* !defined(wxUSE_STATBMP) */ - -#ifndef wxUSE_STATBOX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_STATBOX must be defined, please read comment near the top of this file." -# else -# define wxUSE_STATBOX 0 -# endif -#endif /* !defined(wxUSE_STATBOX) */ - -#ifndef wxUSE_STATLINE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_STATLINE must be defined, please read comment near the top of this file." -# else -# define wxUSE_STATLINE 0 -# endif -#endif /* !defined(wxUSE_STATLINE) */ - -#ifndef wxUSE_STATTEXT -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_STATTEXT must be defined, please read comment near the top of this file." -# else -# define wxUSE_STATTEXT 0 -# endif -#endif /* !defined(wxUSE_STATTEXT) */ - -#ifndef wxUSE_STATUSBAR -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_STATUSBAR must be defined, please read comment near the top of this file." -# else -# define wxUSE_STATUSBAR 0 -# endif -#endif /* !defined(wxUSE_STATUSBAR) */ - -#ifndef wxUSE_TASKBARICON -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TASKBARICON must be defined, please read comment near the top of this file." -# else -# define wxUSE_TASKBARICON 0 -# endif -#endif /* !defined(wxUSE_TASKBARICON) */ - -#ifndef wxUSE_TEXTCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TEXTCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_TEXTCTRL 0 -# endif -#endif /* !defined(wxUSE_TEXTCTRL) */ - -#ifndef wxUSE_TIMEPICKCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TIMEPICKCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_TIMEPICKCTRL 0 -# endif -#endif /* !defined(wxUSE_TIMEPICKCTRL) */ - -#ifndef wxUSE_TIPWINDOW -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TIPWINDOW must be defined, please read comment near the top of this file." -# else -# define wxUSE_TIPWINDOW 0 -# endif -#endif /* !defined(wxUSE_TIPWINDOW) */ - -#ifndef wxUSE_TOOLBAR -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TOOLBAR must be defined, please read comment near the top of this file." -# else -# define wxUSE_TOOLBAR 0 -# endif -#endif /* !defined(wxUSE_TOOLBAR) */ - -#ifndef wxUSE_TOOLTIPS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TOOLTIPS must be defined, please read comment near the top of this file." -# else -# define wxUSE_TOOLTIPS 0 -# endif -#endif /* !defined(wxUSE_TOOLTIPS) */ - -#ifndef wxUSE_TREECTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TREECTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_TREECTRL 0 -# endif -#endif /* !defined(wxUSE_TREECTRL) */ - -#ifndef wxUSE_TREELISTCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TREELISTCTRL must be defined, please read comment near the top of this file." -# else -# define wxUSE_TREELISTCTRL 0 -# endif -#endif /* !defined(wxUSE_TREELISTCTRL) */ - -#ifndef wxUSE_UIACTIONSIMULATOR -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_UIACTIONSIMULATOR must be defined, please read comment near the top of this file." -# else -# define wxUSE_UIACTIONSIMULATOR 0 -# endif -#endif /* !defined(wxUSE_UIACTIONSIMULATOR) */ - -#ifndef wxUSE_VALIDATORS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_VALIDATORS must be defined, please read comment near the top of this file." -# else -# define wxUSE_VALIDATORS 0 -# endif -#endif /* !defined(wxUSE_VALIDATORS) */ - -#ifndef wxUSE_WEBVIEW -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_WEBVIEW must be defined, please read comment near the top of this file." -# else -# define wxUSE_WEBVIEW 0 -# endif -#endif /* !defined(wxUSE_WEBVIEW) */ - -#ifndef wxUSE_WXHTML_HELP -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_WXHTML_HELP must be defined, please read comment near the top of this file." -# else -# define wxUSE_WXHTML_HELP 0 -# endif -#endif /* !defined(wxUSE_WXHTML_HELP) */ - -#ifndef wxUSE_XRC -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_XRC must be defined, please read comment near the top of this file." -# else -# define wxUSE_XRC 0 -# endif -#endif /* !defined(wxUSE_XRC) */ - -#endif /* wxUSE_GUI */ - -/* - Section 2: platform-specific checks. - - This must be done after checking that everything is defined as the platform - checks use wxUSE_XXX symbols in #if tests. - */ - -#if defined(__WINDOWS__) -# include "wx/msw/chkconf.h" -# if defined(__WXGTK__) -# include "wx/gtk/chkconf.h" -# endif -#elif defined(__WXGTK__) -# include "wx/gtk/chkconf.h" -#elif defined(__WXMAC__) -# include "wx/osx/chkconf.h" -#elif defined(__WXDFB__) -# include "wx/dfb/chkconf.h" -#elif defined(__WXMOTIF__) -# include "wx/motif/chkconf.h" -#elif defined(__WXX11__) -# include "wx/x11/chkconf.h" -#elif defined(__WXANDROID__) -# include "wx/android/chkconf.h" -#endif - -/* - __UNIX__ is also defined under Cygwin but we shouldn't perform these checks - there if we're building Windows ports. - */ -#if defined(__UNIX__) && !defined(__WINDOWS__) -# include "wx/unix/chkconf.h" -#endif - -#ifdef __WXUNIVERSAL__ -# include "wx/univ/chkconf.h" -#endif - -/* - Section 3a: check consistency of the non-GUI settings. - */ - -#if WXWIN_COMPATIBILITY_2_8 -# if !WXWIN_COMPATIBILITY_3_0 -# ifdef wxABORT_ON_CONFIG_ERROR -# error "2.8.X compatibility requires 3.0.X compatibility" -# else -# undef WXWIN_COMPATIBILITY_3_0 -# define WXWIN_COMPATIBILITY_3_0 1 -# endif -# endif -#endif /* WXWIN_COMPATIBILITY_2_8 */ - -#if wxUSE_ARCHIVE_STREAMS -# if !wxUSE_DATETIME -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxArchive requires wxUSE_DATETIME" -# else -# undef wxUSE_ARCHIVE_STREAMS -# define wxUSE_ARCHIVE_STREAMS 0 -# endif -# endif -#endif /* wxUSE_ARCHIVE_STREAMS */ - -#if wxUSE_PROTOCOL_FILE || wxUSE_PROTOCOL_FTP || wxUSE_PROTOCOL_HTTP -# if !wxUSE_PROTOCOL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_PROTOCOL_XXX requires wxUSE_PROTOCOL" -# else -# undef wxUSE_PROTOCOL -# define wxUSE_PROTOCOL 1 -# endif -# endif -#endif /* wxUSE_PROTOCOL_XXX */ - -#if wxUSE_URL -# if !wxUSE_PROTOCOL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_URL requires wxUSE_PROTOCOL" -# else -# undef wxUSE_PROTOCOL -# define wxUSE_PROTOCOL 1 -# endif -# endif -#endif /* wxUSE_URL */ - -#if wxUSE_PROTOCOL -# if !wxUSE_SOCKETS -# if wxUSE_PROTOCOL_HTTP || wxUSE_PROTOCOL_FTP -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_PROTOCOL_FTP/HTTP requires wxUSE_SOCKETS" -# else -# undef wxUSE_SOCKETS -# define wxUSE_SOCKETS 1 -# endif -# endif -# endif - -# if !wxUSE_STREAMS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_PROTOCOL requires wxUSE_STREAMS" -# else -# undef wxUSE_STREAMS -# define wxUSE_STREAMS 1 -# endif -# endif -#endif /* wxUSE_PROTOCOL */ - -/* have to test for wxUSE_HTML before wxUSE_FILESYSTEM */ -#if wxUSE_HTML -# if !wxUSE_FILESYSTEM -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxHTML requires wxFileSystem" -# else -# undef wxUSE_FILESYSTEM -# define wxUSE_FILESYSTEM 1 -# endif -# endif -#endif /* wxUSE_HTML */ - -#if wxUSE_FS_ARCHIVE -# if !wxUSE_FILESYSTEM -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxArchiveFSHandler requires wxFileSystem" -# else -# undef wxUSE_FILESYSTEM -# define wxUSE_FILESYSTEM 1 -# endif -# endif -# if !wxUSE_ARCHIVE_STREAMS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxArchiveFSHandler requires wxArchive" -# else -# undef wxUSE_ARCHIVE_STREAMS -# define wxUSE_ARCHIVE_STREAMS 1 -# endif -# endif -#endif /* wxUSE_FS_ARCHIVE */ - -#if wxUSE_FILESYSTEM -# if !wxUSE_STREAMS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_FILESYSTEM requires wxUSE_STREAMS" -# else -# undef wxUSE_STREAMS -# define wxUSE_STREAMS 1 -# endif -# endif -# if !wxUSE_FILE && !wxUSE_FFILE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_FILESYSTEM requires either wxUSE_FILE or wxUSE_FFILE" -# else -# undef wxUSE_FILE -# define wxUSE_FILE 1 -# undef wxUSE_FFILE -# define wxUSE_FFILE 1 -# endif -# endif -#endif /* wxUSE_FILESYSTEM */ - -#if wxUSE_FS_INET -# if !wxUSE_PROTOCOL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_FS_INET requires wxUSE_PROTOCOL" -# else -# undef wxUSE_PROTOCOL -# define wxUSE_PROTOCOL 1 -# endif -# endif -#endif /* wxUSE_FS_INET */ - -#if wxUSE_STOPWATCH || wxUSE_DATETIME -# if !wxUSE_LONGLONG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_STOPWATCH and wxUSE_DATETIME require wxUSE_LONGLONG" -# else -# undef wxUSE_LONGLONG -# define wxUSE_LONGLONG 1 -# endif -# endif -#endif /* wxUSE_STOPWATCH */ - -#if wxUSE_MIMETYPE && !wxUSE_TEXTFILE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_MIMETYPE requires wxUSE_TEXTFILE" -# else -# undef wxUSE_TEXTFILE -# define wxUSE_TEXTFILE 1 -# endif -#endif /* wxUSE_MIMETYPE */ - -#if wxUSE_TEXTFILE && !wxUSE_TEXTBUFFER -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TEXTFILE requires wxUSE_TEXTBUFFER" -# else -# undef wxUSE_TEXTBUFFER -# define wxUSE_TEXTBUFFER 1 -# endif -#endif /* wxUSE_TEXTFILE */ - -#if wxUSE_TEXTFILE && !wxUSE_FILE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TEXTFILE requires wxUSE_FILE" -# else -# undef wxUSE_FILE -# define wxUSE_FILE 1 -# endif -#endif /* wxUSE_TEXTFILE */ - -#if !wxUSE_DYNLIB_CLASS -# if wxUSE_DYNAMIC_LOADER -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DYNAMIC_LOADER requires wxUSE_DYNLIB_CLASS." -# else -# define wxUSE_DYNLIB_CLASS 1 -# endif -# endif -#endif /* wxUSE_DYNLIB_CLASS */ - -#if wxUSE_ZIPSTREAM -# if !wxUSE_ZLIB -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxZip requires wxZlib" -# else -# undef wxUSE_ZLIB -# define wxUSE_ZLIB 1 -# endif -# endif -# if !wxUSE_ARCHIVE_STREAMS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxZip requires wxArchive" -# else -# undef wxUSE_ARCHIVE_STREAMS -# define wxUSE_ARCHIVE_STREAMS 1 -# endif -# endif -#endif /* wxUSE_ZIPSTREAM */ - -#if wxUSE_TARSTREAM -# if !wxUSE_ARCHIVE_STREAMS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxTar requires wxArchive" -# else -# undef wxUSE_ARCHIVE_STREAMS -# define wxUSE_ARCHIVE_STREAMS 1 -# endif -# endif -#endif /* wxUSE_TARSTREAM */ - -/* - Section 3b: the tests for the GUI settings only. - */ -#if wxUSE_GUI - -#if wxUSE_ACCESSIBILITY && !defined(__WXMSW__) -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ACCESSIBILITY is currently only supported under wxMSW" -# else -# undef wxUSE_ACCESSIBILITY -# define wxUSE_ACCESSIBILITY 0 -# endif -#endif /* wxUSE_ACCESSIBILITY */ - -#if wxUSE_BUTTON || \ - wxUSE_CALENDARCTRL || \ - wxUSE_CARET || \ - wxUSE_COMBOBOX || \ - wxUSE_BMPBUTTON || \ - wxUSE_CHECKBOX || \ - wxUSE_CHECKLISTBOX || \ - wxUSE_CHOICE || \ - wxUSE_GAUGE || \ - wxUSE_GRID || \ - wxUSE_HEADERCTRL || \ - wxUSE_LISTBOX || \ - wxUSE_LISTCTRL || \ - wxUSE_NOTEBOOK || \ - wxUSE_RADIOBOX || \ - wxUSE_RADIOBTN || \ - wxUSE_REARRANGECTRL || \ - wxUSE_SCROLLBAR || \ - wxUSE_SLIDER || \ - wxUSE_SPINBTN || \ - wxUSE_SPINCTRL || \ - wxUSE_STATBMP || \ - wxUSE_STATBOX || \ - wxUSE_STATLINE || \ - wxUSE_STATTEXT || \ - wxUSE_STATUSBAR || \ - wxUSE_TEXTCTRL || \ - wxUSE_TOOLBAR || \ - wxUSE_TREECTRL || \ - wxUSE_TREELISTCTRL -# if !wxUSE_CONTROLS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_CONTROLS unset but some controls used" -# else -# undef wxUSE_CONTROLS -# define wxUSE_CONTROLS 1 -# endif -# endif -#endif /* controls */ - -#if wxUSE_ADDREMOVECTRL -# if !wxUSE_BMPBUTTON -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ADDREMOVECTRL requires wxUSE_BMPBUTTON" -# else -# undef wxUSE_ADDREMOVECTRL -# define wxUSE_ADDREMOVECTRL 0 -# endif -# endif -#endif /* wxUSE_ADDREMOVECTRL */ - -#if wxUSE_ANIMATIONCTRL -# if !wxUSE_STREAMS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ANIMATIONCTRL requires wxUSE_STREAMS" -# else -# undef wxUSE_ANIMATIONCTRL -# define wxUSE_ANIMATIONCTRL 0 -# endif -# endif -#endif /* wxUSE_ANIMATIONCTRL */ - -#if wxUSE_BMPBUTTON -# if !wxUSE_BUTTON -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_BMPBUTTON requires wxUSE_BUTTON" -# else -# undef wxUSE_BUTTON -# define wxUSE_BUTTON 1 -# endif -# endif -#endif /* wxUSE_BMPBUTTON */ - -#if wxUSE_COMMANDLINKBUTTON -# if !wxUSE_BUTTON -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_COMMANDLINKBUTTON requires wxUSE_BUTTON" -# else -# undef wxUSE_BUTTON -# define wxUSE_BUTTON 1 -# endif -# endif -#endif /* wxUSE_COMMANDLINKBUTTON */ - -/* - wxUSE_BOOKCTRL should be only used if any of the controls deriving from it - are used - */ -#ifdef wxUSE_BOOKCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_BOOKCTRL is defined automatically, don't define it" -# else -# undef wxUSE_BOOKCTRL -# endif -#endif - -#define wxUSE_BOOKCTRL (wxUSE_AUI || \ - wxUSE_NOTEBOOK || \ - wxUSE_LISTBOOK || \ - wxUSE_CHOICEBOOK || \ - wxUSE_TOOLBOOK || \ - wxUSE_TREEBOOK) - -#if wxUSE_COLLPANE -# if !wxUSE_BUTTON || !wxUSE_STATLINE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_COLLPANE requires wxUSE_BUTTON and wxUSE_STATLINE" -# else -# undef wxUSE_COLLPANE -# define wxUSE_COLLPANE 0 -# endif -# endif -#endif /* wxUSE_COLLPANE */ - -#if wxUSE_LISTBOOK -# if !wxUSE_LISTCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxListbook requires wxListCtrl" -# else -# undef wxUSE_LISTCTRL -# define wxUSE_LISTCTRL 1 -# endif -# endif -#endif /* wxUSE_LISTBOOK */ - -#if wxUSE_CHOICEBOOK -# if !wxUSE_CHOICE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxChoicebook requires wxChoice" -# else -# undef wxUSE_CHOICE -# define wxUSE_CHOICE 1 -# endif -# endif -#endif /* wxUSE_CHOICEBOOK */ - -#if wxUSE_TOOLBOOK -# if !wxUSE_TOOLBAR -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxToolbook requires wxToolBar" -# else -# undef wxUSE_TOOLBAR -# define wxUSE_TOOLBAR 1 -# endif -# endif -#endif /* wxUSE_TOOLBOOK */ - -#if !wxUSE_ODCOMBOBOX -# if wxUSE_BITMAPCOMBOBOX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxBitmapComboBox requires wxOwnerDrawnComboBox" -# else -# undef wxUSE_BITMAPCOMBOBOX -# define wxUSE_BITMAPCOMBOBOX 0 -# endif -# endif -#endif /* !wxUSE_ODCOMBOBOX */ - -#if !wxUSE_HEADERCTRL -# if wxUSE_DATAVIEWCTRL || wxUSE_GRID -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxDataViewCtrl and wxGrid require wxHeaderCtrl" -# else -# undef wxUSE_HEADERCTRL -# define wxUSE_HEADERCTRL 1 -# endif -# endif -#endif /* !wxUSE_HEADERCTRL */ - -#if wxUSE_REARRANGECTRL -# if !wxUSE_CHECKLISTBOX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxRearrangeCtrl requires wxCheckListBox" -# else -# undef wxUSE_REARRANGECTRL -# define wxUSE_REARRANGECTRL 0 -# endif -# endif -#endif /* wxUSE_REARRANGECTRL */ - -#if wxUSE_RICHMSGDLG -# if !wxUSE_MSGDLG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_RICHMSGDLG requires wxUSE_MSGDLG" -# else -# undef wxUSE_MSGDLG -# define wxUSE_MSGDLG 1 -# endif -# endif -#endif /* wxUSE_RICHMSGDLG */ - -/* don't attempt to use native status bar on the platforms not having it */ -#ifndef wxUSE_NATIVE_STATUSBAR -# define wxUSE_NATIVE_STATUSBAR 0 -#elif wxUSE_NATIVE_STATUSBAR -# if defined(__WXUNIVERSAL__) || !(defined(__WXMSW__) || defined(__WXMAC__)) -# undef wxUSE_NATIVE_STATUSBAR -# define wxUSE_NATIVE_STATUSBAR 0 -# endif -#endif - -#if wxUSE_GRAPHICS_CONTEXT && !wxUSE_GEOMETRY -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_GRAPHICS_CONTEXT requires wxUSE_GEOMETRY" -# else -# undef wxUSE_GRAPHICS_CONTEXT -# define wxUSE_GRAPHICS_CONTEXT 0 -# endif -#endif /* wxUSE_GRAPHICS_CONTEXT */ - - -/* generic controls dependencies */ -#if !defined(__WXMSW__) || defined(__WXUNIVERSAL__) -# if wxUSE_FONTDLG || wxUSE_FILEDLG || wxUSE_CHOICEDLG - /* all common controls are needed by these dialogs */ -# if !defined(wxUSE_CHOICE) || \ - !defined(wxUSE_TEXTCTRL) || \ - !defined(wxUSE_BUTTON) || \ - !defined(wxUSE_CHECKBOX) || \ - !defined(wxUSE_STATTEXT) -# ifdef wxABORT_ON_CONFIG_ERROR -# error "These common controls are needed by common dialogs" -# else -# undef wxUSE_CHOICE -# define wxUSE_CHOICE 1 -# undef wxUSE_TEXTCTRL -# define wxUSE_TEXTCTRL 1 -# undef wxUSE_BUTTON -# define wxUSE_BUTTON 1 -# undef wxUSE_CHECKBOX -# define wxUSE_CHECKBOX 1 -# undef wxUSE_STATTEXT -# define wxUSE_STATTEXT 1 -# endif -# endif -# endif -#endif /* !wxMSW || wxUniv */ - -/* generic file dialog depends on (generic) file control */ -#if wxUSE_FILEDLG && !wxUSE_FILECTRL && \ - (defined(__WXUNIVERSAL__) || defined(__WXGTK__)) -# ifdef wxABORT_ON_CONFIG_ERROR -# error "Generic wxFileDialog requires wxFileCtrl" -# else -# undef wxUSE_FILECTRL -# define wxUSE_FILECTRL 1 -# endif -#endif /* wxUSE_FILEDLG */ - -/* common dependencies */ -#if wxUSE_ARTPROVIDER_TANGO -# if !(wxUSE_STREAMS && wxUSE_IMAGE && wxUSE_LIBPNG) -# ifdef wxABORT_ON_CONFIG_ERROR -# error "Tango art provider requires wxImage with streams and PNG support" -# else -# undef wxUSE_ARTPROVIDER_TANGO -# define wxUSE_ARTPROVIDER_TANGO 0 -# endif -# endif -#endif /* wxUSE_ARTPROVIDER_TANGO */ - -#if wxUSE_CALENDARCTRL -# if !(wxUSE_SPINBTN && wxUSE_COMBOBOX) -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxCalendarCtrl requires wxSpinButton and wxComboBox" -# else -# undef wxUSE_SPINBTN -# undef wxUSE_COMBOBOX -# define wxUSE_SPINBTN 1 -# define wxUSE_COMBOBOX 1 -# endif -# endif - -# if !wxUSE_DATETIME -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxCalendarCtrl requires wxUSE_DATETIME" -# else -# undef wxUSE_DATETIME -# define wxUSE_DATETIME 1 -# endif -# endif -#endif /* wxUSE_CALENDARCTRL */ - -#if wxUSE_DATEPICKCTRL - /* Only the generic implementation, not used under MSW and OSX, needs - * wxComboCtrl. */ -# if !wxUSE_COMBOCTRL && (defined(__WXUNIVERSAL__) || \ - !(defined(__WXMSW__) || defined(__WXOSX_COCOA__))) -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxDatePickerCtrl requires wxUSE_COMBOCTRL" -# else -# undef wxUSE_COMBOCTRL -# define wxUSE_COMBOCTRL 1 -# endif -# endif -#endif /* wxUSE_DATEPICKCTRL */ - -#if wxUSE_DATEPICKCTRL || wxUSE_TIMEPICKCTRL -# if !wxUSE_DATETIME -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxDatePickerCtrl and wxTimePickerCtrl requires wxUSE_DATETIME" -# else -# undef wxUSE_DATETIME -# define wxUSE_DATETIME 1 -# endif -# endif -#endif /* wxUSE_DATEPICKCTRL || wxUSE_TIMEPICKCTRL */ - -#if wxUSE_CHECKLISTBOX -# if !wxUSE_LISTBOX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxCheckListBox requires wxListBox" -# else -# undef wxUSE_LISTBOX -# define wxUSE_LISTBOX 1 -# endif -# endif -#endif /* wxUSE_CHECKLISTBOX */ - -#if wxUSE_CHOICEDLG -# if !wxUSE_LISTBOX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "Choice dialogs requires wxListBox" -# else -# undef wxUSE_LISTBOX -# define wxUSE_LISTBOX 1 -# endif -# endif -#endif /* wxUSE_CHOICEDLG */ - -#if wxUSE_FILECTRL -# if !wxUSE_DATETIME -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxFileCtrl requires wxDateTime" -# else -# undef wxUSE_DATETIME -# define wxUSE_DATETIME 1 -# endif -# endif -#endif /* wxUSE_FILECTRL */ - -#if wxUSE_HELP -# if !wxUSE_BMPBUTTON -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_HELP requires wxUSE_BMPBUTTON" -# else -# undef wxUSE_BMPBUTTON -# define wxUSE_BMPBUTTON 1 -# endif -# endif - -# if !wxUSE_CHOICEDLG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_HELP requires wxUSE_CHOICEDLG" -# else -# undef wxUSE_CHOICEDLG -# define wxUSE_CHOICEDLG 1 -# endif -# endif -#endif /* wxUSE_HELP */ - -#if wxUSE_MS_HTML_HELP - /* - this doesn't make sense for platforms other than MSW but we still - define it in wx/setup_inc.h so don't complain if it happens to be - defined under another platform but just silently fix it. - */ -# ifndef __WXMSW__ -# undef wxUSE_MS_HTML_HELP -# define wxUSE_MS_HTML_HELP 0 -# endif -#endif /* wxUSE_MS_HTML_HELP */ - -#if wxUSE_WXHTML_HELP -# if !wxUSE_HELP || !wxUSE_HTML || !wxUSE_COMBOBOX || !wxUSE_NOTEBOOK || !wxUSE_SPINCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "Built in help controller can't be compiled" -# else -# undef wxUSE_HELP -# define wxUSE_HELP 1 -# undef wxUSE_HTML -# define wxUSE_HTML 1 -# undef wxUSE_COMBOBOX -# define wxUSE_COMBOBOX 1 -# undef wxUSE_NOTEBOOK -# define wxUSE_NOTEBOOK 1 -# undef wxUSE_SPINCTRL -# define wxUSE_SPINCTRL 1 -# endif -# endif -#endif /* wxUSE_WXHTML_HELP */ - -#if !wxUSE_IMAGE -/* - The default wxUSE_IMAGE setting is 1, so if it's set to 0 we assume the - user explicitly wants this and disable all other features that require - wxUSE_IMAGE. - */ -# if wxUSE_DRAGIMAGE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DRAGIMAGE requires wxUSE_IMAGE" -# else -# undef wxUSE_DRAGIMAGE -# define wxUSE_DRAGIMAGE 0 -# endif -# endif - -# if wxUSE_LIBPNG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_LIBPNG requires wxUSE_IMAGE" -# else -# undef wxUSE_LIBPNG -# define wxUSE_LIBPNG 0 -# endif -# endif - -# if wxUSE_LIBJPEG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_LIBJPEG requires wxUSE_IMAGE" -# else -# undef wxUSE_LIBJPEG -# define wxUSE_LIBJPEG 0 -# endif -# endif - -# if wxUSE_LIBTIFF -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_LIBTIFF requires wxUSE_IMAGE" -# else -# undef wxUSE_LIBTIFF -# define wxUSE_LIBTIFF 0 -# endif -# endif - -# if wxUSE_GIF -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_GIF requires wxUSE_IMAGE" -# else -# undef wxUSE_GIF -# define wxUSE_GIF 0 -# endif -# endif - -# if wxUSE_PNM -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_PNM requires wxUSE_IMAGE" -# else -# undef wxUSE_PNM -# define wxUSE_PNM 0 -# endif -# endif - -# if wxUSE_PCX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_PCX requires wxUSE_IMAGE" -# else -# undef wxUSE_PCX -# define wxUSE_PCX 0 -# endif -# endif - -# if wxUSE_IFF -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_IFF requires wxUSE_IMAGE" -# else -# undef wxUSE_IFF -# define wxUSE_IFF 0 -# endif -# endif - -# if wxUSE_TOOLBAR -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TOOLBAR requires wxUSE_IMAGE" -# else -# undef wxUSE_TOOLBAR -# define wxUSE_TOOLBAR 0 -# endif -# endif - -# if wxUSE_XPM -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_XPM requires wxUSE_IMAGE" -# else -# undef wxUSE_XPM -# define wxUSE_XPM 0 -# endif -# endif - -#endif /* !wxUSE_IMAGE */ - -#if wxUSE_DOC_VIEW_ARCHITECTURE -# if !wxUSE_MENUS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "DocView requires wxUSE_MENUS" -# else -# undef wxUSE_MENUS -# define wxUSE_MENUS 1 -# endif -# endif - -# if !wxUSE_CHOICEDLG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "DocView requires wxUSE_CHOICEDLG" -# else -# undef wxUSE_CHOICEDLG -# define wxUSE_CHOICEDLG 1 -# endif -# endif - -# if !wxUSE_STREAMS && !wxUSE_STD_IOSTREAM -# ifdef wxABORT_ON_CONFIG_ERROR -# error "DocView requires wxUSE_STREAMS or wxUSE_STD_IOSTREAM" -# else -# undef wxUSE_STREAMS -# define wxUSE_STREAMS 1 -# endif -# endif - -# if !wxUSE_FILE_HISTORY -# ifdef wxABORT_ON_CONFIG_ERROR -# error "DocView requires wxUSE_FILE_HISTORY" -# else -# undef wxUSE_FILE_HISTORY -# define wxUSE_FILE_HISTORY 1 -# endif -# endif -#endif /* wxUSE_DOC_VIEW_ARCHITECTURE */ - -#if wxUSE_PRINTING_ARCHITECTURE -# if !wxUSE_COMBOBOX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "Print dialog requires wxUSE_COMBOBOX" -# else -# undef wxUSE_COMBOBOX -# define wxUSE_COMBOBOX 1 -# endif -# endif -#endif /* wxUSE_PRINTING_ARCHITECTURE */ - -#if wxUSE_MDI_ARCHITECTURE -# if !wxUSE_MDI -# ifdef wxABORT_ON_CONFIG_ERROR -# error "MDI requires wxUSE_MDI" -# else -# undef wxUSE_MDI -# define wxUSE_MDI 1 -# endif -# endif - -# if !wxUSE_DOC_VIEW_ARCHITECTURE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_MDI_ARCHITECTURE requires wxUSE_DOC_VIEW_ARCHITECTURE" -# else -# undef wxUSE_DOC_VIEW_ARCHITECTURE -# define wxUSE_DOC_VIEW_ARCHITECTURE 1 -# endif -# endif -#endif /* wxUSE_MDI_ARCHITECTURE */ - -#if !wxUSE_FILEDLG -# if wxUSE_DOC_VIEW_ARCHITECTURE || wxUSE_WXHTML_HELP -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_FILEDLG is required by wxUSE_DOC_VIEW_ARCHITECTURE and wxUSE_WXHTML_HELP!" -# else -# undef wxUSE_FILEDLG -# define wxUSE_FILEDLG 1 -# endif -# endif -#endif /* wxUSE_FILEDLG */ - -#if !wxUSE_GAUGE || !wxUSE_BUTTON -# if wxUSE_PROGRESSDLG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "Generic progress dialog requires wxUSE_GAUGE and wxUSE_BUTTON" -# else -# undef wxUSE_GAUGE -# undef wxUSE_BUTTON -# define wxUSE_GAUGE 1 -# define wxUSE_BUTTON 1 -# endif -# endif -#endif /* !wxUSE_GAUGE */ - -#if !wxUSE_BUTTON -# if wxUSE_FONTDLG || \ - wxUSE_FILEDLG || \ - wxUSE_CHOICEDLG || \ - wxUSE_NUMBERDLG || \ - wxUSE_TEXTDLG || \ - wxUSE_DIRDLG || \ - wxUSE_STARTUP_TIPS || \ - wxUSE_WIZARDDLG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "Common and generic dialogs require wxUSE_BUTTON" -# else -# undef wxUSE_BUTTON -# define wxUSE_BUTTON 1 -# endif -# endif -#endif /* !wxUSE_BUTTON */ - -#if !wxUSE_TOOLBAR -# if wxUSE_TOOLBAR_NATIVE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TOOLBAR is set to 0 but wxUSE_TOOLBAR_NATIVE is set to 1" -# else -# undef wxUSE_TOOLBAR_NATIVE -# define wxUSE_TOOLBAR_NATIVE 0 -# endif -# endif -#endif - -#if !wxUSE_IMAGLIST -# if wxUSE_TREECTRL || wxUSE_NOTEBOOK || wxUSE_LISTCTRL || wxUSE_TREELISTCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxImageList must be compiled as well" -# else -# undef wxUSE_IMAGLIST -# define wxUSE_IMAGLIST 1 -# endif -# endif -#endif /* !wxUSE_IMAGLIST */ - -#if wxUSE_RADIOBOX -# if !wxUSE_RADIOBTN -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_RADIOBOX requires wxUSE_RADIOBTN" -# else -# undef wxUSE_RADIOBTN -# define wxUSE_RADIOBTN 1 -# endif -# endif -# if !wxUSE_STATBOX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_RADIOBOX requires wxUSE_STATBOX" -# else -# undef wxUSE_STATBOX -# define wxUSE_STATBOX 1 -# endif -# endif -#endif /* wxUSE_RADIOBOX */ - -#if wxUSE_LOGWINDOW -# if !wxUSE_TEXTCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_LOGWINDOW requires wxUSE_TEXTCTRL" -# else -# undef wxUSE_TEXTCTRL -# define wxUSE_TEXTCTRL 1 -# endif -# endif -#endif /* wxUSE_LOGWINDOW */ - -#if wxUSE_LOG_DIALOG -# if !wxUSE_LISTCTRL || !wxUSE_BUTTON -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_LOG_DIALOG requires wxUSE_LISTCTRL and wxUSE_BUTTON" -# else -# undef wxUSE_LISTCTRL -# define wxUSE_LISTCTRL 1 -# undef wxUSE_BUTTON -# define wxUSE_BUTTON 1 -# endif -# endif -#endif /* wxUSE_LOG_DIALOG */ - -#if wxUSE_CLIPBOARD && !wxUSE_DATAOBJ -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxClipboard requires wxDataObject" -# else -# undef wxUSE_DATAOBJ -# define wxUSE_DATAOBJ 1 -# endif -#endif /* wxUSE_CLIPBOARD */ - -#if wxUSE_XRC && !wxUSE_XML -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_XRC requires wxUSE_XML" -# else -# undef wxUSE_XRC -# define wxUSE_XRC 0 -# endif -#endif /* wxUSE_XRC */ - -#if wxUSE_SOCKETS && !wxUSE_STOPWATCH -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_SOCKETS requires wxUSE_STOPWATCH" -# else -# undef wxUSE_SOCKETS -# define wxUSE_SOCKETS 0 -# endif -#endif /* wxUSE_SOCKETS */ - -#if wxUSE_SVG && !wxUSE_STREAMS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_SVG requires wxUSE_STREAMS" -# else -# undef wxUSE_SVG -# define wxUSE_SVG 0 -# endif -#endif /* wxUSE_SVG */ - -#if wxUSE_SVG && !wxUSE_IMAGE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_SVG requires wxUSE_IMAGE" -# else -# undef wxUSE_SVG -# define wxUSE_SVG 0 -# endif -#endif /* wxUSE_SVG */ - -#if wxUSE_SVG && !wxUSE_LIBPNG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_SVG requires wxUSE_LIBPNG" -# else -# undef wxUSE_SVG -# define wxUSE_SVG 0 -# endif -#endif /* wxUSE_SVG */ - -#if wxUSE_TASKBARICON && !wxUSE_MENUS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TASKBARICON requires wxUSE_MENUS" -# else -# undef wxUSE_TASKBARICON -# define wxUSE_TASKBARICON 0 -# endif -#endif /* wxUSE_TASKBARICON */ - -#if !wxUSE_VARIANT -# if wxUSE_DATAVIEWCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxDataViewCtrl requires wxVariant" -# else -# undef wxUSE_DATAVIEWCTRL -# define wxUSE_DATAVIEWCTRL 0 -# endif -# endif -#endif /* wxUSE_VARIANT */ - -#if wxUSE_TREELISTCTRL && !wxUSE_DATAVIEWCTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TREELISTCTRL requires wxDataViewCtrl" -# else -# undef wxUSE_TREELISTCTRL -# define wxUSE_TREELISTCTRL 0 -# endif -#endif /* wxUSE_TREELISTCTRL */ - -#if wxUSE_WEBVIEW && !(wxUSE_WEBVIEW_WEBKIT || wxUSE_WEBVIEW_IE) -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_WEBVIEW requires at least one backend" -# else -# undef wxUSE_WEBVIEW -# define wxUSE_WEBVIEW 0 -# endif -#endif /* wxUSE_WEBVIEW && !any web view backend */ - -#if wxUSE_PREFERENCES_EDITOR - /* - We can use either a generic implementation, using wxNotebook, or a - native one under wxOSX/Cocoa but then we must be using the native - toolbar. - */ -# if !wxUSE_NOTEBOOK -# ifdef __WXOSX_COCOA__ -# if !wxUSE_TOOLBAR || !wxOSX_USE_NATIVE_TOOLBAR -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_PREFERENCES_EDITOR requires native toolbar in wxOSX" -# else -# undef wxUSE_PREFERENCES_EDITOR -# define wxUSE_PREFERENCES_EDITOR 0 -# endif -# endif -# else -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_PREFERENCES_EDITOR requires wxNotebook" -# else -# undef wxUSE_PREFERENCES_EDITOR -# define wxUSE_PREFERENCES_EDITOR 0 -# endif -# endif -# endif -#endif /* wxUSE_PREFERENCES_EDITOR */ - -#if wxUSE_MEDIACTRL -# if !wxUSE_LONGLONG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxMediaCtrl requires wxUSE_LONLONG" -# else -# undef wxUSE_LONLONG -# define wxUSE_LONLONG 1 -# endif -# endif -#endif /* wxUSE_MEDIACTRL */ - -#if wxUSE_STC -# if !wxUSE_STOPWATCH -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxStyledTextCtrl requires wxUSE_STOPWATCH" -# else -# undef wxUSE_STC -# define wxUSE_STC 0 -# endif -# endif -#endif /* wxUSE_STC */ - -#if wxUSE_RICHTEXT -# if !wxUSE_HTML -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxRichTextCtrl requires wxUSE_HTML" -# else -# undef wxUSE_RICHTEXT -# define wxUSE_RICHTEXT 0 -# endif -# endif -# if !wxUSE_LONGLONG -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxRichTextCtrl requires wxUSE_LONLONG" -# else -# undef wxUSE_LONLONG -# define wxUSE_LONLONG 1 -# endif -# endif -#endif /* wxUSE_RICHTEXT */ - -#endif /* wxUSE_GUI */ - -#endif /* _WX_CHKCONF_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/choicdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/choicdlg.h deleted file mode 100644 index 0ab4c076..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/choicdlg.h +++ /dev/null @@ -1,22 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/choicdlg.h -// Purpose: Includes generic choice dialog file -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHOICDLG_H_BASE_ -#define _WX_CHOICDLG_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_CHOICEDLG - -#include "wx/generic/choicdgg.h" - -#endif - -#endif // _WX_CHOICDLG_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/choice.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/choice.h deleted file mode 100644 index b5bfac3b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/choice.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/choice.h -// Purpose: wxChoice class interface -// Author: Vadim Zeitlin -// Modified by: -// Created: 26.07.99 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHOICE_H_BASE_ -#define _WX_CHOICE_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_CHOICE - -#include "wx/ctrlsub.h" // the base class - -// ---------------------------------------------------------------------------- -// global data -// ---------------------------------------------------------------------------- - -extern WXDLLIMPEXP_DATA_CORE(const char) wxChoiceNameStr[]; - -// ---------------------------------------------------------------------------- -// wxChoice allows to select one of a non-modifiable list of strings -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxChoiceBase : public wxControlWithItems -{ -public: - wxChoiceBase() { } - virtual ~wxChoiceBase(); - - // all generic methods are in wxControlWithItems - - // get the current selection: this can only be different from the normal - // selection if the popup items list is currently opened and the user - // selected some item in it but didn't close the list yet; otherwise (and - // currently always on platforms other than MSW) this is the same as - // GetSelection() - virtual int GetCurrentSelection() const { return GetSelection(); } - - // set/get the number of columns in the control (as they're not supported on - // most platforms, they do nothing by default) - virtual void SetColumns(int WXUNUSED(n) = 1 ) { } - virtual int GetColumns() const { return 1 ; } - - // emulate selecting the item event.GetInt() - void Command(wxCommandEvent& event) wxOVERRIDE; - - // override wxItemContainer::IsSorted - virtual bool IsSorted() const wxOVERRIDE { return HasFlag(wxCB_SORT); } - -protected: - // The generic implementation doesn't determine the height correctly and - // doesn't account for the width of the arrow but does take into account - // the string widths, so the derived classes should override it and set the - // height and add the arrow width to the size returned by this version. - virtual wxSize DoGetBestSize() const wxOVERRIDE; - -private: - wxDECLARE_NO_COPY_CLASS(wxChoiceBase); -}; - -// ---------------------------------------------------------------------------- -// include the platform-dependent class definition -// ---------------------------------------------------------------------------- - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/choice.h" -#elif defined(__WXMSW__) - #include "wx/msw/choice.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/choice.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/choice.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/choice.h" -#elif defined(__WXMAC__) - #include "wx/osx/choice.h" -#elif defined(__WXQT__) - #include "wx/qt/choice.h" -#endif - -#endif // wxUSE_CHOICE - -#endif // _WX_CHOICE_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/choicebk.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/choicebk.h deleted file mode 100644 index c56916f9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/choicebk.h +++ /dev/null @@ -1,130 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/choicebk.h -// Purpose: wxChoicebook: wxChoice and wxNotebook combination -// Author: Vadim Zeitlin -// Modified by: Wlodzimierz ABX Skiba from wx/listbook.h -// Created: 15.09.04 -// Copyright: (c) Vadim Zeitlin, Wlodzimierz Skiba -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHOICEBOOK_H_ -#define _WX_CHOICEBOOK_H_ - -#include "wx/defs.h" - -#if wxUSE_CHOICEBOOK - -#include "wx/bookctrl.h" -#include "wx/choice.h" -#include "wx/containr.h" - -class WXDLLIMPEXP_FWD_CORE wxChoice; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_CHOICEBOOK_PAGE_CHANGED, wxBookCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_CHOICEBOOK_PAGE_CHANGING, wxBookCtrlEvent ); - -// wxChoicebook flags -#define wxCHB_DEFAULT wxBK_DEFAULT -#define wxCHB_TOP wxBK_TOP -#define wxCHB_BOTTOM wxBK_BOTTOM -#define wxCHB_LEFT wxBK_LEFT -#define wxCHB_RIGHT wxBK_RIGHT -#define wxCHB_ALIGN_MASK wxBK_ALIGN_MASK - -// ---------------------------------------------------------------------------- -// wxChoicebook -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxChoicebook : public wxNavigationEnabled -{ -public: - wxChoicebook() { } - - wxChoicebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxEmptyString) - { - (void)Create(parent, id, pos, size, style, name); - } - - // quasi ctor - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxEmptyString); - - - virtual bool SetPageText(size_t n, const wxString& strText) wxOVERRIDE; - virtual wxString GetPageText(size_t n) const wxOVERRIDE; - virtual int GetPageImage(size_t n) const wxOVERRIDE; - virtual bool SetPageImage(size_t n, int imageId) wxOVERRIDE; - virtual bool InsertPage(size_t n, - wxWindow *page, - const wxString& text, - bool bSelect = false, - int imageId = NO_IMAGE) wxOVERRIDE; - virtual int SetSelection(size_t n) wxOVERRIDE - { return DoSetSelection(n, SetSelection_SendEvent); } - virtual int ChangeSelection(size_t n) wxOVERRIDE { return DoSetSelection(n); } - virtual void SetImageList(wxImageList *imageList) wxOVERRIDE; - - virtual bool DeleteAllPages() wxOVERRIDE; - - // returns the choice control - wxChoice* GetChoiceCtrl() const { return (wxChoice*)m_bookctrl; } - - // Override this to return true because the part of parent window - // background between our controlling wxChoice and the page area should - // show through. - virtual bool HasTransparentBackground() wxOVERRIDE { return true; } - -protected: - virtual void DoSetWindowVariant(wxWindowVariant variant) wxOVERRIDE; - - virtual wxWindow *DoRemovePage(size_t page) wxOVERRIDE; - - void UpdateSelectedPage(size_t newsel) wxOVERRIDE - { - m_selection = static_cast(newsel); - GetChoiceCtrl()->Select(m_selection); - } - - wxBookCtrlEvent* CreatePageChangingEvent() const wxOVERRIDE; - void MakeChangedEvent(wxBookCtrlEvent &event) wxOVERRIDE; - - // event handlers - void OnChoiceSelected(wxCommandEvent& event); - -private: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxChoicebook); -}; - -// ---------------------------------------------------------------------------- -// choicebook event class and related stuff -// ---------------------------------------------------------------------------- - -// wxChoicebookEvent is obsolete and defined for compatibility only -#define wxChoicebookEvent wxBookCtrlEvent -typedef wxBookCtrlEventFunction wxChoicebookEventFunction; -#define wxChoicebookEventHandler(func) wxBookCtrlEventHandler(func) - -#define EVT_CHOICEBOOK_PAGE_CHANGED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_CHOICEBOOK_PAGE_CHANGED, winid, wxBookCtrlEventHandler(fn)) - -#define EVT_CHOICEBOOK_PAGE_CHANGING(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_CHOICEBOOK_PAGE_CHANGING, winid, wxBookCtrlEventHandler(fn)) - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED wxEVT_CHOICEBOOK_PAGE_CHANGED -#define wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING wxEVT_CHOICEBOOK_PAGE_CHANGING - -#endif // wxUSE_CHOICEBOOK - -#endif // _WX_CHOICEBOOK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/clipbrd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/clipbrd.h deleted file mode 100644 index 2c37937c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/clipbrd.h +++ /dev/null @@ -1,202 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/clipbrd.h -// Purpose: wxClipboad class and clipboard functions -// Author: Vadim Zeitlin -// Modified by: -// Created: 19.10.99 -// Copyright: (c) wxWidgets Team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CLIPBRD_H_BASE_ -#define _WX_CLIPBRD_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_CLIPBOARD - - -#include "wx/event.h" -#include "wx/chartype.h" -#include "wx/dataobj.h" // for wxDataFormat -#include "wx/vector.h" - -class WXDLLIMPEXP_FWD_CORE wxClipboard; - -// ---------------------------------------------------------------------------- -// wxClipboard represents the system clipboard. Normally, you should use -// wxTheClipboard which is a global pointer to the (unique) clipboard. -// -// Clipboard can be used to copy data to/paste data from. It works together -// with wxDataObject. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxClipboardBase : public wxObject -{ -public: - wxClipboardBase() { m_usePrimary = false; } - - // open the clipboard before Add/SetData() and GetData() - virtual bool Open() = 0; - - // close the clipboard after Add/SetData() and GetData() - virtual void Close() = 0; - - // query whether the clipboard is opened - virtual bool IsOpened() const = 0; - - // add to the clipboard data - // - // NB: the clipboard owns the pointer and will delete it, so data must be - // allocated on the heap - virtual bool AddData( wxDataObject *data ) = 0; - - // set the clipboard data, this is the same as Clear() followed by - // AddData() - virtual bool SetData( wxDataObject *data ) = 0; - - // ask if data in correct format is available - virtual bool IsSupported( const wxDataFormat& format ) = 0; - - // ask if data in correct format is available - virtual bool IsSupportedAsync( wxEvtHandler *sink ); - - // fill data with data on the clipboard (if available) - virtual bool GetData( wxDataObject& data ) = 0; - - // clears wxTheClipboard and the system's clipboard if possible - virtual void Clear() = 0; - - // flushes the clipboard: this means that the data which is currently on - // clipboard will stay available even after the application exits (possibly - // eating memory), otherwise the clipboard will be emptied on exit - virtual bool Flush() { return false; } - - // this allows to choose whether we work with CLIPBOARD (default) or - // PRIMARY selection on X11-based systems - // - // on the other ones, working with primary selection does nothing: this - // allows to write code which sets the primary selection when something is - // selected without any ill effects (i.e. without overwriting the - // clipboard which would be wrong on the platforms without X11 PRIMARY) - virtual void UsePrimarySelection(bool usePrimary = false) - { - m_usePrimary = usePrimary; - } - - // return true if we're using primary selection - bool IsUsingPrimarySelection() const { return m_usePrimary; } - - // Returns global instance (wxTheClipboard) of the object: - static wxClipboard *Get(); - - - // don't use this directly, it is public for compatibility with some ports - // (wxX11, wxMotif, ...) only - bool m_usePrimary; -}; - -// ---------------------------------------------------------------------------- -// asynchronous clipboard event -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxClipboardEvent : public wxEvent -{ -public: - wxClipboardEvent(wxEventType evtType = wxEVT_NULL) - : wxEvent(0, evtType) - { - } - - wxClipboardEvent(const wxClipboardEvent& event) - : wxEvent(event), - m_formats(event.m_formats) - { - } - - bool SupportsFormat(const wxDataFormat& format) const; - void AddFormat(const wxDataFormat& format); - - virtual wxEvent *Clone() const wxOVERRIDE - { - return new wxClipboardEvent(*this); - } - - -protected: - wxVector m_formats; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxClipboardEvent); -}; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_CLIPBOARD_CHANGED, wxClipboardEvent ); - -typedef void (wxEvtHandler::*wxClipboardEventFunction)(wxClipboardEvent&); - -#define wxClipboardEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxClipboardEventFunction, func) - -#define EVT_CLIPBOARD_CHANGED(func) wx__DECLARE_EVT0(wxEVT_CLIPBOARD_CHANGED, wxClipboardEventHandler(func)) - -// ---------------------------------------------------------------------------- -// globals -// ---------------------------------------------------------------------------- - -// The global clipboard object - backward compatible access macro: -#define wxTheClipboard (wxClipboard::Get()) - -// ---------------------------------------------------------------------------- -// include platform-specific class declaration -// ---------------------------------------------------------------------------- - -#if defined(__WXMSW__) - #include "wx/msw/clipbrd.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/clipbrd.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/clipbrd.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/clipbrd.h" -#elif defined(__WXX11__) - #include "wx/x11/clipbrd.h" -#elif defined(__WXMAC__) - #include "wx/osx/clipbrd.h" -#elif defined(__WXQT__) - #include "wx/qt/clipbrd.h" -#endif - -// ---------------------------------------------------------------------------- -// helpful class for opening the clipboard and automatically closing it -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxClipboardLocker -{ -public: - wxClipboardLocker(wxClipboard *clipboard = NULL) - { - m_clipboard = clipboard ? clipboard : wxTheClipboard; - if ( m_clipboard ) - { - m_clipboard->Open(); - } - } - - bool operator!() const { return !m_clipboard->IsOpened(); } - - ~wxClipboardLocker() - { - if ( m_clipboard ) - { - m_clipboard->Close(); - } - } - -private: - wxClipboard *m_clipboard; - - wxDECLARE_NO_COPY_CLASS(wxClipboardLocker); -}; - -#endif // wxUSE_CLIPBOARD - -#endif // _WX_CLIPBRD_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/clntdata.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/clntdata.h deleted file mode 100644 index a41ccc0e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/clntdata.h +++ /dev/null @@ -1,162 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/clntdata.h -// Purpose: A mixin class for holding a wxClientData or void pointer -// Author: Robin Dunn -// Modified by: -// Created: 9-Oct-2001 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CLNTDATAH__ -#define _WX_CLNTDATAH__ - -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/hashmap.h" - -typedef int (*wxShadowObjectMethod)(void*, void*); -WX_DECLARE_STRING_HASH_MAP_WITH_DECL( - wxShadowObjectMethod, - wxShadowObjectMethods, - class WXDLLIMPEXP_BASE -); -WX_DECLARE_STRING_HASH_MAP_WITH_DECL( - void *, - wxShadowObjectFields, - class WXDLLIMPEXP_BASE -); - -class WXDLLIMPEXP_BASE wxShadowObject -{ -public: - wxShadowObject() { } - - void AddMethod( const wxString &name, wxShadowObjectMethod method ) - { - wxShadowObjectMethods::iterator it = m_methods.find( name ); - if (it == m_methods.end()) - m_methods[ name ] = method; - else - it->second = method; - } - - bool InvokeMethod( const wxString &name, void* window, void* param, int* returnValue ) - { - wxShadowObjectMethods::iterator it = m_methods.find( name ); - if (it == m_methods.end()) - return false; - wxShadowObjectMethod method = it->second; - int ret = (*method)(window, param); - if (returnValue) - *returnValue = ret; - return true; - } - - void AddField( const wxString &name, void* initialValue = NULL ) - { - wxShadowObjectFields::iterator it = m_fields.find( name ); - if (it == m_fields.end()) - m_fields[ name ] = initialValue; - else - it->second = initialValue; - } - - void SetField( const wxString &name, void* value ) - { - wxShadowObjectFields::iterator it = m_fields.find( name ); - if (it == m_fields.end()) - return; - it->second = value; - } - - void* GetField( const wxString &name, void *defaultValue = NULL ) - { - wxShadowObjectFields::iterator it = m_fields.find( name ); - if (it == m_fields.end()) - return defaultValue; - return it->second; - } - -private: - wxShadowObjectMethods m_methods; - wxShadowObjectFields m_fields; -}; - - -// ---------------------------------------------------------------------------- - -// what kind of client data do we have? -enum wxClientDataType -{ - wxClientData_None, // we don't know yet because we don't have it at all - wxClientData_Object, // our client data is typed and we own it - wxClientData_Void // client data is untyped and we don't own it -}; - -class WXDLLIMPEXP_BASE wxClientData -{ -public: - wxClientData() { } - virtual ~wxClientData() { } -}; - -class WXDLLIMPEXP_BASE wxStringClientData : public wxClientData -{ -public: - wxStringClientData() : m_data() { } - wxStringClientData( const wxString &data ) : m_data(data) { } - void SetData( const wxString &data ) { m_data = data; } - const wxString& GetData() const { return m_data; } - -private: - wxString m_data; -}; - -// This class is a mixin that provides storage and management of "client -// data." The client data stored can either be a pointer to a wxClientData -// object in which case it is managed by the container (i.e. it will delete -// the data when it's destroyed) or an untyped pointer which won't be deleted -// by the container - but not both of them -// -// NOTE: This functionality is currently duplicated in wxEvtHandler in order -// to avoid having more than one vtable in that class hierarchy. - -class WXDLLIMPEXP_BASE wxClientDataContainer -{ -public: - wxClientDataContainer(); - virtual ~wxClientDataContainer(); - - void SetClientObject( wxClientData *data ) { DoSetClientObject(data); } - wxClientData *GetClientObject() const { return DoGetClientObject(); } - - void SetClientData( void *data ) { DoSetClientData(data); } - void *GetClientData() const { return DoGetClientData(); } - -protected: - // The user data: either an object which will be deleted by the container - // when it's deleted or some raw pointer which we do nothing with. Only - // one type of data can be used with the given window, i.e. you cannot set - // the void data and then associate the container with wxClientData or vice - // versa. - union - { - wxClientData *m_clientObject; - void *m_clientData; - }; - - // client data accessors - virtual void DoSetClientObject( wxClientData *data ); - virtual wxClientData *DoGetClientObject() const; - - virtual void DoSetClientData( void *data ); - virtual void *DoGetClientData() const; - - // what kind of data do we have? - wxClientDataType m_clientDataType; - -}; - -#endif // _WX_CLNTDATAH__ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/clrpicker.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/clrpicker.h deleted file mode 100644 index 840e0b11..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/clrpicker.h +++ /dev/null @@ -1,206 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/clrpicker.h -// Purpose: wxColourPickerCtrl base header -// Author: Francesco Montorsi (based on Vadim Zeitlin's code) -// Modified by: -// Created: 14/4/2006 -// Copyright: (c) Vadim Zeitlin, Francesco Montorsi -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CLRPICKER_H_BASE_ -#define _WX_CLRPICKER_H_BASE_ - -#include "wx/defs.h" - - -#if wxUSE_COLOURPICKERCTRL - -#include "wx/pickerbase.h" - - -class WXDLLIMPEXP_FWD_CORE wxColourPickerEvent; - -extern WXDLLIMPEXP_DATA_CORE(const char) wxColourPickerWidgetNameStr[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxColourPickerCtrlNameStr[]; - -// show the colour in HTML form (#AABBCC) as colour button label -#define wxCLRBTN_SHOW_LABEL 100 - -// the default style -#define wxCLRBTN_DEFAULT_STYLE (wxCLRBTN_SHOW_LABEL) - - - -// ---------------------------------------------------------------------------- -// wxColourPickerWidgetBase: a generic abstract interface which must be -// implemented by controls used by wxColourPickerCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxColourPickerWidgetBase -{ -public: - wxColourPickerWidgetBase() { m_colour = *wxBLACK; } - virtual ~wxColourPickerWidgetBase() {} - - wxColour GetColour() const - { return m_colour; } - virtual void SetColour(const wxColour &col) - { m_colour = col; UpdateColour(); } - virtual void SetColour(const wxString &col) - { m_colour.Set(col); UpdateColour(); } - -protected: - - virtual void UpdateColour() = 0; - - // the current colour (may be invalid if none) - wxColour m_colour; -}; - - -// Styles which must be supported by all controls implementing wxColourPickerWidgetBase -// NB: these styles must be defined to carefully-chosen values to -// avoid conflicts with wxButton's styles - -// show the colour in HTML form (#AABBCC) as colour button label -// (instead of no label at all) -// NOTE: this style is supported just by wxColourButtonGeneric and -// thus is not exposed in wxColourPickerCtrl -#define wxCLRP_SHOW_LABEL 0x0008 -#define wxCLRP_SHOW_ALPHA 0x0010 - -// map platform-dependent controls which implement the wxColourPickerWidgetBase -// under the name "wxColourPickerWidget". -// NOTE: wxColourPickerCtrl allocates a wxColourPickerWidget and relies on the -// fact that all classes being mapped as wxColourPickerWidget have the -// same prototype for their contructor (and also explains why we use -// define instead of a typedef) -// since GTK > 2.4, there is GtkColorButton -#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__) - #include "wx/gtk/clrpicker.h" - #define wxColourPickerWidget wxColourButton -#elif defined(__WXQT__) && !defined(__WXUNIVERSAL__) - #include "wx/qt/clrpicker.h" -#else - #include "wx/generic/clrpickerg.h" - #define wxColourPickerWidget wxGenericColourButton -#endif - - -// ---------------------------------------------------------------------------- -// wxColourPickerCtrl: platform-independent class which embeds a -// platform-dependent wxColourPickerWidget and, if wxCLRP_USE_TEXTCTRL style is -// used, a textctrl next to it. -// ---------------------------------------------------------------------------- - -#define wxCLRP_USE_TEXTCTRL (wxPB_USE_TEXTCTRL) -#define wxCLRP_DEFAULT_STYLE 0 - -class WXDLLIMPEXP_CORE wxColourPickerCtrl : public wxPickerBase -{ -public: - wxColourPickerCtrl() {} - virtual ~wxColourPickerCtrl() {} - - - wxColourPickerCtrl(wxWindow *parent, wxWindowID id, - const wxColour& col = *wxBLACK, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxCLRP_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxColourPickerCtrlNameStr) - { Create(parent, id, col, pos, size, style, validator, name); } - - bool Create(wxWindow *parent, wxWindowID id, - const wxColour& col = *wxBLACK, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCLRP_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxColourPickerCtrlNameStr); - - -public: // public API - - // get the colour chosen - wxColour GetColour() const - { return ((wxColourPickerWidget *)m_picker)->GetColour(); } - - // set currently displayed color - void SetColour(const wxColour& col); - - // set colour using RGB(r,g,b) syntax or considering given text as a colour name; - // returns true if the given text was successfully recognized. - bool SetColour(const wxString& text); - - -public: // internal functions - - // update the button colour to match the text control contents - void UpdatePickerFromTextCtrl() wxOVERRIDE; - - // update the text control to match the button's colour - void UpdateTextCtrlFromPicker() wxOVERRIDE; - - // event handler for our picker - void OnColourChange(wxColourPickerEvent &); - -protected: - virtual long GetPickerStyle(long style) const wxOVERRIDE - { return (style & (wxCLRP_SHOW_LABEL | wxCLRP_SHOW_ALPHA)); } - -private: - wxDECLARE_DYNAMIC_CLASS(wxColourPickerCtrl); -}; - - -// ---------------------------------------------------------------------------- -// wxColourPickerEvent: used by wxColourPickerCtrl only -// ---------------------------------------------------------------------------- - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COLOURPICKER_CHANGED, wxColourPickerEvent ); - -class WXDLLIMPEXP_CORE wxColourPickerEvent : public wxCommandEvent -{ -public: - wxColourPickerEvent() {} - wxColourPickerEvent(wxObject *generator, int id, const wxColour &col) - : wxCommandEvent(wxEVT_COLOURPICKER_CHANGED, id), - m_colour(col) - { - SetEventObject(generator); - } - - wxColour GetColour() const { return m_colour; } - void SetColour(const wxColour &c) { m_colour = c; } - - - // default copy ctor, assignment operator and dtor are ok - virtual wxEvent *Clone() const wxOVERRIDE { return new wxColourPickerEvent(*this); } - -private: - wxColour m_colour; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxColourPickerEvent); -}; - -// ---------------------------------------------------------------------------- -// event types and macros -// ---------------------------------------------------------------------------- - -typedef void (wxEvtHandler::*wxColourPickerEventFunction)(wxColourPickerEvent&); - -#define wxColourPickerEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxColourPickerEventFunction, func) - -#define EVT_COLOURPICKER_CHANGED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_COLOURPICKER_CHANGED, id, wxColourPickerEventHandler(fn)) - - -// old wxEVT_COMMAND_* constant -#define wxEVT_COMMAND_COLOURPICKER_CHANGED wxEVT_COLOURPICKER_CHANGED - -#endif // wxUSE_COLOURPICKERCTRL - -#endif // _WX_CLRPICKER_H_BASE_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmdargs.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmdargs.h deleted file mode 100644 index e34ba52a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmdargs.h +++ /dev/null @@ -1,152 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/cmdargs.h -// Purpose: declaration of wxCmdLineArgsArray helper class -// Author: Vadim Zeitlin -// Created: 2007-11-12 -// Copyright: (c) 2007 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CMDARGS_H_ -#define _WX_CMDARGS_H_ - -#include "wx/arrstr.h" - -// ---------------------------------------------------------------------------- -// wxCmdLineArgsArray: helper class used by wxApp::argv -// ---------------------------------------------------------------------------- - -#if wxUSE_UNICODE - -// this class is used instead of either "char **" or "wchar_t **" (neither of -// which would be backwards compatible with all the existing code) for argv -// field of wxApp -// -// as it's used for compatibility, it tries to look as much as traditional -// (char **) argv as possible, in particular it provides implicit conversions -// to "char **" and also array-like operator[] -class WXDLLIMPEXP_BASE wxCmdLineArgsArray -{ -public: - wxCmdLineArgsArray() { m_argsA = NULL; m_argsW = NULL; } - - template - wxCmdLineArgsArray& operator=(T **argv) - { - FreeArgs(); - - m_args.clear(); - - if ( argv ) - { - while ( *argv ) - m_args.push_back(*argv++); - } - - return *this; - } - - operator char**() const - { - if ( !m_argsA ) - { - const size_t count = m_args.size(); - m_argsA = new char *[count]; - for ( size_t n = 0; n < count; n++ ) - m_argsA[n] = wxStrdup(m_args[n].ToAscii()); - } - - return m_argsA; - } - - operator wchar_t**() const - { - if ( !m_argsW ) - { - const size_t count = m_args.size(); - m_argsW = new wchar_t *[count]; - for ( size_t n = 0; n < count; n++ ) - m_argsW[n] = wxStrdup(m_args[n].wc_str()); - } - - return m_argsW; - } - - // existing code does checks like "if ( argv )" and we want it to continue - // to compile, so provide this conversion even if it is pretty dangerous - operator bool() const - { - return !m_args.empty(); - } - - // and the same for "if ( !argv )" checks - bool operator!() const - { - return m_args.empty(); - } - - wxString operator[](size_t n) const - { - return m_args[n]; - } - - // we must provide this overload for g++ 3.4 which can't choose between - // our operator[](size_t) and ::operator[](char**, int) otherwise - wxString operator[](int n) const - { - return m_args[n]; - } - - - // convenience methods, i.e. not existing only for backwards compatibility - - // do we have any arguments at all? - bool IsEmpty() const { return m_args.empty(); } - - // access the arguments as a convenient array of wxStrings - const wxArrayString& GetArguments() const { return m_args; } - - ~wxCmdLineArgsArray() - { - FreeArgs(); - } - -private: - template - void Free(T**& args) - { - if ( !args ) - return; - - const size_t count = m_args.size(); - for ( size_t n = 0; n < count; n++ ) - free(args[n]); - - delete [] args; - args = NULL; - } - - void FreeArgs() - { - Free(m_argsA); - Free(m_argsW); - } - - wxArrayString m_args; - mutable char **m_argsA; - mutable wchar_t **m_argsW; - - wxDECLARE_NO_COPY_CLASS(wxCmdLineArgsArray); -}; - -// provide global operator overload for compatibility with the existing code -// doing things like "if ( condition && argv )" -inline bool operator&&(bool cond, const wxCmdLineArgsArray& array) -{ - return cond && !array.IsEmpty(); -} - -#endif // wxUSE_UNICODE - -#endif // _WX_CMDARGS_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmdline.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmdline.h deleted file mode 100644 index 2b7000fb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmdline.h +++ /dev/null @@ -1,387 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/cmdline.h -// Purpose: wxCmdLineParser and related classes for parsing the command -// line options -// Author: Vadim Zeitlin -// Modified by: -// Created: 04.01.00 -// Copyright: (c) 2000 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CMDLINE_H_ -#define _WX_CMDLINE_H_ - -#include "wx/defs.h" - -#include "wx/string.h" -#include "wx/arrstr.h" -#include "wx/cmdargs.h" - -// determines ConvertStringToArgs() behaviour -enum wxCmdLineSplitType -{ - wxCMD_LINE_SPLIT_DOS, - wxCMD_LINE_SPLIT_UNIX -}; - -#if wxUSE_CMDLINE_PARSER - -class WXDLLIMPEXP_FWD_BASE wxCmdLineParser; -class WXDLLIMPEXP_FWD_BASE wxDateTime; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// by default, options are optional (sic) and each call to AddParam() allows -// one more parameter - this may be changed by giving non-default flags to it -enum wxCmdLineEntryFlags -{ - wxCMD_LINE_OPTION_MANDATORY = 0x01, // this option must be given - wxCMD_LINE_PARAM_OPTIONAL = 0x02, // the parameter may be omitted - wxCMD_LINE_PARAM_MULTIPLE = 0x04, // the parameter may be repeated - wxCMD_LINE_OPTION_HELP = 0x08, // this option is a help request - wxCMD_LINE_NEEDS_SEPARATOR = 0x10, // must have sep before the value - wxCMD_LINE_SWITCH_NEGATABLE = 0x20 // this switch can be negated (e.g. /S-) -}; - -// an option value or parameter may be a string (the most common case), a -// number or a date -enum wxCmdLineParamType -{ - wxCMD_LINE_VAL_STRING, // should be 0 (default) - wxCMD_LINE_VAL_NUMBER, - wxCMD_LINE_VAL_DATE, - wxCMD_LINE_VAL_DOUBLE, - wxCMD_LINE_VAL_NONE -}; - -// for constructing the cmd line description using Init() -enum wxCmdLineEntryType -{ - wxCMD_LINE_SWITCH, - wxCMD_LINE_OPTION, - wxCMD_LINE_PARAM, - wxCMD_LINE_USAGE_TEXT, - wxCMD_LINE_NONE // to terminate the list -}; - -// Possible return values of wxCmdLineParser::FoundSwitch() -enum wxCmdLineSwitchState -{ - wxCMD_SWITCH_OFF = -1, // Found but turned off/negated. - wxCMD_SWITCH_NOT_FOUND, // Not found at all. - wxCMD_SWITCH_ON // Found in normal state. -}; - -// ---------------------------------------------------------------------------- -// wxCmdLineEntryDesc is a description of one command line -// switch/option/parameter -// ---------------------------------------------------------------------------- - -struct wxCmdLineEntryDesc -{ - wxCmdLineEntryType kind; - const char *shortName; - const char *longName; - const char *description; - wxCmdLineParamType type; - int flags; -}; - -// the list of wxCmdLineEntryDesc objects should be terminated with this one -#define wxCMD_LINE_DESC_END \ - { wxCMD_LINE_NONE, NULL, NULL, NULL, wxCMD_LINE_VAL_NONE, 0x0 } - -// ---------------------------------------------------------------------------- -// wxCmdLineArg contains the value for one command line argument -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxCmdLineArg -{ -public: - virtual ~wxCmdLineArg() {} - - virtual double GetDoubleVal() const = 0; - virtual long GetLongVal() const = 0; - virtual const wxString& GetStrVal() const = 0; -#if wxUSE_DATETIME - virtual const wxDateTime& GetDateVal() const = 0; -#endif // wxUSE_DATETIME - - virtual bool IsNegated() const = 0; - - virtual wxCmdLineEntryType GetKind() const = 0; - virtual wxString GetShortName() const = 0; - virtual wxString GetLongName() const = 0; - virtual wxCmdLineParamType GetType() const = 0; -}; - -// ---------------------------------------------------------------------------- -// wxCmdLineArgs is a container of command line arguments actually parsed and -// allows enumerating them using the standard iterator-based approach. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxCmdLineArgs -{ -public: - class WXDLLIMPEXP_BASE const_iterator - { - public: - typedef int difference_type; - typedef wxCmdLineArg value_type; - typedef const wxCmdLineArg* pointer; - typedef const wxCmdLineArg& reference; - -// We avoid dependency on standard library by default but if we do use -// std::string, then it's ok to use iterator tags as well. -#if wxUSE_STD_STRING - typedef std::bidirectional_iterator_tag iterator_category; -#endif // wx_USE_STD_STRING - - const_iterator() : m_parser(NULL), m_index(0) {} - reference operator *() const; - pointer operator ->() const; - const_iterator &operator ++ (); - const_iterator operator ++ (int); - const_iterator &operator -- (); - const_iterator operator -- (int); - - bool operator == (const const_iterator &other) const { - return m_parser==other.m_parser && m_index==other.m_index; - } - bool operator != (const const_iterator &other) const { - return !operator==(other); - } - - private: - const_iterator (const wxCmdLineParser& parser, size_t index) - : m_parser(&parser), m_index(index) { - } - - const wxCmdLineParser* m_parser; - size_t m_index; - - friend class wxCmdLineArgs; - }; - - wxCmdLineArgs (const wxCmdLineParser& parser) : m_parser(parser) {} - - const_iterator begin() const { return const_iterator(m_parser, 0); } - const_iterator end() const { return const_iterator(m_parser, size()); } - - size_t size() const; - -private: - const wxCmdLineParser& m_parser; - wxDECLARE_NO_ASSIGN_CLASS(wxCmdLineArgs); -}; - -// ---------------------------------------------------------------------------- -// wxCmdLineParser is a class for parsing command line. -// -// It has the following features: -// -// 1. distinguishes options, switches and parameters; allows option grouping -// 2. allows both short and long options -// 3. automatically generates the usage message from the cmd line description -// 4. does type checks on the options values (number, date, ...) -// -// To use it you should: -// -// 1. construct it giving it the cmd line to parse and optionally its desc -// 2. construct the cmd line description using AddXXX() if not done in (1) -// 3. call Parse() -// 4. use GetXXX() to retrieve the parsed info -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxCmdLineParser -{ -public: - // ctors and initializers - // ---------------------- - - // default ctor or ctor giving the cmd line in either Unix or Win form - wxCmdLineParser() { Init(); } - wxCmdLineParser(int argc, char **argv) { Init(); SetCmdLine(argc, argv); } -#if wxUSE_UNICODE - wxCmdLineParser(int argc, wxChar **argv) { Init(); SetCmdLine(argc, argv); } - wxCmdLineParser(int argc, const wxCmdLineArgsArray& argv) - { Init(); SetCmdLine(argc, argv); } -#endif // wxUSE_UNICODE - wxCmdLineParser(const wxString& cmdline) { Init(); SetCmdLine(cmdline); } - - // the same as above, but also gives the cmd line description - otherwise, - // use AddXXX() later - wxCmdLineParser(const wxCmdLineEntryDesc *desc) - { Init(); SetDesc(desc); } - wxCmdLineParser(const wxCmdLineEntryDesc *desc, int argc, char **argv) - { Init(); SetCmdLine(argc, argv); SetDesc(desc); } -#if wxUSE_UNICODE - wxCmdLineParser(const wxCmdLineEntryDesc *desc, int argc, wxChar **argv) - { Init(); SetCmdLine(argc, argv); SetDesc(desc); } - wxCmdLineParser(const wxCmdLineEntryDesc *desc, - int argc, - const wxCmdLineArgsArray& argv) - { Init(); SetCmdLine(argc, argv); SetDesc(desc); } -#endif // wxUSE_UNICODE - wxCmdLineParser(const wxCmdLineEntryDesc *desc, const wxString& cmdline) - { Init(); SetCmdLine(cmdline); SetDesc(desc); } - - // set cmd line to parse after using one of the ctors which don't do it - void SetCmdLine(int argc, char **argv); -#if wxUSE_UNICODE - void SetCmdLine(int argc, wxChar **argv); - void SetCmdLine(int argc, const wxCmdLineArgsArray& argv); -#endif // wxUSE_UNICODE - void SetCmdLine(const wxString& cmdline); - - // not virtual, don't use this class polymorphically - ~wxCmdLineParser(); - - // set different parser options - // ---------------------------- - - // by default, '-' is switch char under Unix, '-' or '/' under Win: - // switchChars contains all characters with which an option or switch may - // start - void SetSwitchChars(const wxString& switchChars); - - // long options are not POSIX-compliant, this option allows to disable them - void EnableLongOptions(bool enable = true); - void DisableLongOptions() { EnableLongOptions(false); } - - bool AreLongOptionsEnabled() const; - - // extra text may be shown by Usage() method if set by this function - void SetLogo(const wxString& logo); - - // construct the cmd line description - // ---------------------------------- - - // take the cmd line description from the wxCMD_LINE_NONE terminated table - void SetDesc(const wxCmdLineEntryDesc *desc); - - // a switch: i.e. an option without value - void AddSwitch(const wxString& name, const wxString& lng = wxEmptyString, - const wxString& desc = wxEmptyString, - int flags = 0); - void AddLongSwitch(const wxString& lng, - const wxString& desc = wxEmptyString, - int flags = 0) - { - AddSwitch(wxString(), lng, desc, flags); - } - - // an option taking a value of the given type - void AddOption(const wxString& name, const wxString& lng = wxEmptyString, - const wxString& desc = wxEmptyString, - wxCmdLineParamType type = wxCMD_LINE_VAL_STRING, - int flags = 0); - void AddLongOption(const wxString& lng, - const wxString& desc = wxEmptyString, - wxCmdLineParamType type = wxCMD_LINE_VAL_STRING, - int flags = 0) - { - AddOption(wxString(), lng, desc, type, flags); - } - - // a parameter - void AddParam(const wxString& desc = wxEmptyString, - wxCmdLineParamType type = wxCMD_LINE_VAL_STRING, - int flags = 0); - - // add an explanatory text to be shown to the user in help - void AddUsageText(const wxString& text); - - // actions - // ------- - - // parse the command line, return 0 if ok, -1 if "-h" or "--help" option - // was encountered and the help message was given or a positive value if a - // syntax error occurred - // - // if showUsage is true, Usage() is called in case of syntax error or if - // help was requested - int Parse(bool showUsage = true); - - // give the usage message describing all program options - void Usage() const; - - // return the usage string, call Usage() to directly show it to the user - wxString GetUsageString() const; - - // get the command line arguments - // ------------------------------ - - // returns true if the given switch was found - bool Found(const wxString& name) const; - - // Returns wxCMD_SWITCH_NOT_FOUND if the switch was not found at all, - // wxCMD_SWITCH_ON if it was found in normal state and wxCMD_SWITCH_OFF if - // it was found but negated (i.e. followed by "-", this can only happen for - // the switches with wxCMD_LINE_SWITCH_NEGATABLE flag). - wxCmdLineSwitchState FoundSwitch(const wxString& name) const; - - // returns true if an option taking a string value was found and stores the - // value in the provided pointer - bool Found(const wxString& name, wxString *value) const; - - // returns true if an option taking an integer value was found and stores - // the value in the provided pointer - bool Found(const wxString& name, long *value) const; - - // returns true if an option taking a double value was found and stores - // the value in the provided pointer - bool Found(const wxString& name, double *value) const; - -#if wxUSE_DATETIME - // returns true if an option taking a date value was found and stores the - // value in the provided pointer - bool Found(const wxString& name, wxDateTime *value) const; -#endif // wxUSE_DATETIME - - // gets the number of parameters found - size_t GetParamCount() const; - - // gets the value of Nth parameter (as string only for now) - wxString GetParam(size_t n = 0u) const; - - // returns a reference to the container of all command line arguments - wxCmdLineArgs GetArguments() const { return wxCmdLineArgs(*this); } - - // Resets switches and options - void Reset(); - - // break down the command line in arguments - static wxArrayString - ConvertStringToArgs(const wxString& cmdline, - wxCmdLineSplitType type = wxCMD_LINE_SPLIT_DOS); - -private: - // common part of all ctors - void Init(); - - struct wxCmdLineParserData *m_data; - - friend class wxCmdLineArgs; - friend class wxCmdLineArgs::const_iterator; - wxDECLARE_NO_COPY_CLASS(wxCmdLineParser); -}; - -#else // !wxUSE_CMDLINE_PARSER - -// this function is always available (even if !wxUSE_CMDLINE_PARSER) because it -// is used by wxWin itself under Windows -class WXDLLIMPEXP_BASE wxCmdLineParser -{ -public: - static wxArrayString - ConvertStringToArgs(const wxString& cmdline, - wxCmdLineSplitType type = wxCMD_LINE_SPLIT_DOS); -}; - -#endif // wxUSE_CMDLINE_PARSER/!wxUSE_CMDLINE_PARSER - -#endif // _WX_CMDLINE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmdproc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmdproc.h deleted file mode 100644 index 8f9656c5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmdproc.h +++ /dev/null @@ -1,140 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/cmdproc.h -// Purpose: undo/redo capable command processing framework -// Author: Julian Smart (extracted from docview.h by VZ) -// Modified by: -// Created: 05.11.00 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CMDPROC_H_ -#define _WX_CMDPROC_H_ - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" - -class WXDLLIMPEXP_FWD_CORE wxMenu; - -// ---------------------------------------------------------------------------- -// wxCommand: a single command capable of performing itself -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxCommand : public wxObject -{ -public: - wxCommand(bool canUndoIt = false, const wxString& name = wxEmptyString); - virtual ~wxCommand(){} - - // Override this to perform a command - virtual bool Do() = 0; - - // Override this to undo a command - virtual bool Undo() = 0; - - virtual bool CanUndo() const { return m_canUndo; } - virtual wxString GetName() const { return m_commandName; } - -protected: - bool m_canUndo; - wxString m_commandName; - -private: - wxDECLARE_CLASS(wxCommand); -}; - -// ---------------------------------------------------------------------------- -// wxCommandProcessor: wxCommand manager -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxCommandProcessor : public wxObject -{ -public: - // if max number of commands is -1, it is unlimited - wxCommandProcessor(int maxCommands = -1); - virtual ~wxCommandProcessor(); - - // Pass a command to the processor. The processor calls Do(); if - // successful, is appended to the command history unless storeIt is false. - virtual bool Submit(wxCommand *command, bool storeIt = true); - - // just store the command without executing it - virtual void Store(wxCommand *command); - - virtual bool Undo(); - virtual bool Redo(); - virtual bool CanUndo() const; - virtual bool CanRedo() const; - - // Initialises the current command and menu strings. - virtual void Initialize(); - - // Sets the Undo/Redo menu strings for the current menu. - virtual void SetMenuStrings(); - - // Gets the current Undo menu label. - wxString GetUndoMenuLabel() const; - - // Gets the current Undo menu label. - wxString GetRedoMenuLabel() const; - -#if wxUSE_MENUS - // Call this to manage an edit menu. - void SetEditMenu(wxMenu *menu) { m_commandEditMenu = menu; } - wxMenu *GetEditMenu() const { return m_commandEditMenu; } -#endif // wxUSE_MENUS - - // command list access - wxList& GetCommands() { return m_commands; } - const wxList& GetCommands() const { return m_commands; } - wxCommand *GetCurrentCommand() const - { - return (wxCommand *)(m_currentCommand ? m_currentCommand->GetData() : NULL); - } - int GetMaxCommands() const { return m_maxNoCommands; } - virtual void ClearCommands(); - - // Has the current project been changed? - virtual bool IsDirty() const; - - // Mark the current command as the one where the last save took place - void MarkAsSaved() - { - m_lastSavedCommand = m_currentCommand; - } - - - // By default, the accelerators are "\tCtrl+Z" and "\tCtrl+Y" - const wxString& GetUndoAccelerator() const { return m_undoAccelerator; } - const wxString& GetRedoAccelerator() const { return m_redoAccelerator; } - - void SetUndoAccelerator(const wxString& accel) { m_undoAccelerator = accel; } - void SetRedoAccelerator(const wxString& accel) { m_redoAccelerator = accel; } - -protected: - // for further flexibility, command processor doesn't call wxCommand::Do() - // and Undo() directly but uses these functions which can be overridden in - // the derived class - virtual bool DoCommand(wxCommand& cmd); - virtual bool UndoCommand(wxCommand& cmd); - - int m_maxNoCommands; - wxList m_commands; - wxList::compatibility_iterator m_currentCommand, - m_lastSavedCommand; - -#if wxUSE_MENUS - wxMenu* m_commandEditMenu; -#endif // wxUSE_MENUS - - wxString m_undoAccelerator; - wxString m_redoAccelerator; - -private: - wxDECLARE_DYNAMIC_CLASS(wxCommandProcessor); - wxDECLARE_NO_COPY_CLASS(wxCommandProcessor); -}; - -#endif // _WX_CMDPROC_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmndata.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmndata.h deleted file mode 100644 index db647824..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cmndata.h +++ /dev/null @@ -1,310 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/cmndata.h -// Purpose: Common GDI data classes -// Author: Julian Smart and others -// Modified by: -// Created: 01/02/97 -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CMNDATA_H_BASE_ -#define _WX_CMNDATA_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_PRINTING_ARCHITECTURE - -#include "wx/gdicmn.h" - -#if wxUSE_STREAMS -#include "wx/stream.h" -#endif - -class WXDLLIMPEXP_FWD_CORE wxPrintNativeDataBase; - -/* - * wxPrintData - * Encapsulates printer information (not printer dialog information) - */ - -enum wxPrintBin -{ - wxPRINTBIN_DEFAULT, - - wxPRINTBIN_ONLYONE, - wxPRINTBIN_LOWER, - wxPRINTBIN_MIDDLE, - wxPRINTBIN_MANUAL, - wxPRINTBIN_ENVELOPE, - wxPRINTBIN_ENVMANUAL, - wxPRINTBIN_AUTO, - wxPRINTBIN_TRACTOR, - wxPRINTBIN_SMALLFMT, - wxPRINTBIN_LARGEFMT, - wxPRINTBIN_LARGECAPACITY, - wxPRINTBIN_CASSETTE, - wxPRINTBIN_FORMSOURCE, - - wxPRINTBIN_USER -}; - -const int wxPRINTMEDIA_DEFAULT = 0; - -class WXDLLIMPEXP_CORE wxPrintData: public wxObject -{ -public: - wxPrintData(); - wxPrintData(const wxPrintData& printData); - virtual ~wxPrintData(); - - int GetNoCopies() const { return m_printNoCopies; } - bool GetCollate() const { return m_printCollate; } - wxPrintOrientation GetOrientation() const { return m_printOrientation; } - bool IsOrientationReversed() const { return m_printOrientationReversed; } - - // Is this data OK for showing the print dialog? - bool Ok() const { return IsOk(); } - bool IsOk() const ; - - const wxString& GetPrinterName() const { return m_printerName; } - bool GetColour() const { return m_colour; } - wxDuplexMode GetDuplex() const { return m_duplexMode; } - wxPaperSize GetPaperId() const { return m_paperId; } - const wxSize& GetPaperSize() const { return m_paperSize; } - wxPrintQuality GetQuality() const { return m_printQuality; } - wxPrintBin GetBin() const { return m_bin; } - wxPrintMode GetPrintMode() const { return m_printMode; } - int GetMedia() const { return m_media; } - - void SetNoCopies(int v) { m_printNoCopies = v; } - void SetCollate(bool flag) { m_printCollate = flag; } - - // Please use the overloaded method below - wxDEPRECATED_INLINE(void SetOrientation(int orient), - m_printOrientation = (wxPrintOrientation)orient; ) - void SetOrientation(wxPrintOrientation orient) { m_printOrientation = orient; } - void SetOrientationReversed(bool reversed) { m_printOrientationReversed = reversed; } - - void SetPrinterName(const wxString& name) { m_printerName = name; } - void SetColour(bool colour) { m_colour = colour; } - void SetDuplex(wxDuplexMode duplex) { m_duplexMode = duplex; } - void SetPaperId(wxPaperSize sizeId) { m_paperId = sizeId; } - void SetPaperSize(const wxSize& sz) { m_paperSize = sz; } - void SetQuality(wxPrintQuality quality) { m_printQuality = quality; } - void SetBin(wxPrintBin bin) { m_bin = bin; } - void SetMedia(int media) { m_media = media; } - void SetPrintMode(wxPrintMode printMode) { m_printMode = printMode; } - - wxString GetFilename() const { return m_filename; } - void SetFilename( const wxString &filename ) { m_filename = filename; } - - wxPrintData& operator=(const wxPrintData& data); - - char* GetPrivData() const { return m_privData; } - int GetPrivDataLen() const { return m_privDataLen; } - void SetPrivData( char *privData, int len ); - - - // Convert between wxPrintData and native data - void ConvertToNative(); - void ConvertFromNative(); - // Holds the native print data - wxPrintNativeDataBase *GetNativeData() const { return m_nativeData; } - -private: - wxPrintBin m_bin; - int m_media; - wxPrintMode m_printMode; - - int m_printNoCopies; - wxPrintOrientation m_printOrientation; - bool m_printOrientationReversed; - bool m_printCollate; - - wxString m_printerName; - bool m_colour; - wxDuplexMode m_duplexMode; - wxPrintQuality m_printQuality; - wxPaperSize m_paperId; - wxSize m_paperSize; - - wxString m_filename; - - char* m_privData; - int m_privDataLen; - - wxPrintNativeDataBase *m_nativeData; - -private: - wxDECLARE_DYNAMIC_CLASS(wxPrintData); -}; - -/* - * wxPrintDialogData - * Encapsulates information displayed and edited in the printer dialog box. - * Contains a wxPrintData object which is filled in according to the values retrieved - * from the dialog. - */ - -class WXDLLIMPEXP_CORE wxPrintDialogData: public wxObject -{ -public: - wxPrintDialogData(); - wxPrintDialogData(const wxPrintDialogData& dialogData); - wxPrintDialogData(const wxPrintData& printData); - virtual ~wxPrintDialogData(); - - int GetFromPage() const { return m_printFromPage; } - int GetToPage() const { return m_printToPage; } - int GetMinPage() const { return m_printMinPage; } - int GetMaxPage() const { return m_printMaxPage; } - int GetNoCopies() const { return m_printNoCopies; } - bool GetAllPages() const { return m_printAllPages; } - bool GetSelection() const { return m_printSelection; } - bool GetCollate() const { return m_printCollate; } - bool GetPrintToFile() const { return m_printToFile; } - - void SetFromPage(int v) { m_printFromPage = v; } - void SetToPage(int v) { m_printToPage = v; } - void SetMinPage(int v) { m_printMinPage = v; } - void SetMaxPage(int v) { m_printMaxPage = v; } - void SetNoCopies(int v) { m_printNoCopies = v; } - void SetAllPages(bool flag) { m_printAllPages = flag; } - void SetSelection(bool flag) { m_printSelection = flag; } - void SetCollate(bool flag) { m_printCollate = flag; } - void SetPrintToFile(bool flag) { m_printToFile = flag; } - - void EnablePrintToFile(bool flag) { m_printEnablePrintToFile = flag; } - void EnableSelection(bool flag) { m_printEnableSelection = flag; } - void EnablePageNumbers(bool flag) { m_printEnablePageNumbers = flag; } - void EnableHelp(bool flag) { m_printEnableHelp = flag; } - - bool GetEnablePrintToFile() const { return m_printEnablePrintToFile; } - bool GetEnableSelection() const { return m_printEnableSelection; } - bool GetEnablePageNumbers() const { return m_printEnablePageNumbers; } - bool GetEnableHelp() const { return m_printEnableHelp; } - - // Is this data OK for showing the print dialog? - bool Ok() const { return IsOk(); } - bool IsOk() const { return m_printData.IsOk() ; } - - wxPrintData& GetPrintData() { return m_printData; } - void SetPrintData(const wxPrintData& printData) { m_printData = printData; } - - void operator=(const wxPrintDialogData& data); - void operator=(const wxPrintData& data); // Sets internal m_printData member - -private: - int m_printFromPage; - int m_printToPage; - int m_printMinPage; - int m_printMaxPage; - int m_printNoCopies; - bool m_printAllPages; - bool m_printCollate; - bool m_printToFile; - bool m_printSelection; - bool m_printEnableSelection; - bool m_printEnablePageNumbers; - bool m_printEnableHelp; - bool m_printEnablePrintToFile; - wxPrintData m_printData; - -private: - wxDECLARE_DYNAMIC_CLASS(wxPrintDialogData); -}; - -/* -* This is the data used (and returned) by the wxPageSetupDialog. -*/ - -// Compatibility with old name -#define wxPageSetupData wxPageSetupDialogData - -class WXDLLIMPEXP_CORE wxPageSetupDialogData: public wxObject -{ -public: - wxPageSetupDialogData(); - wxPageSetupDialogData(const wxPageSetupDialogData& dialogData); - wxPageSetupDialogData(const wxPrintData& printData); - virtual ~wxPageSetupDialogData(); - - wxSize GetPaperSize() const { return m_paperSize; } - wxPaperSize GetPaperId() const { return m_printData.GetPaperId(); } - wxPoint GetMinMarginTopLeft() const { return m_minMarginTopLeft; } - wxPoint GetMinMarginBottomRight() const { return m_minMarginBottomRight; } - wxPoint GetMarginTopLeft() const { return m_marginTopLeft; } - wxPoint GetMarginBottomRight() const { return m_marginBottomRight; } - - bool GetDefaultMinMargins() const { return m_defaultMinMargins; } - bool GetEnableMargins() const { return m_enableMargins; } - bool GetEnableOrientation() const { return m_enableOrientation; } - bool GetEnablePaper() const { return m_enablePaper; } - bool GetEnablePrinter() const { return m_enablePrinter; } - bool GetDefaultInfo() const { return m_getDefaultInfo; } - bool GetEnableHelp() const { return m_enableHelp; } - - // Is this data OK for showing the page setup dialog? - bool Ok() const { return IsOk(); } - bool IsOk() const { return m_printData.IsOk() ; } - - // If a corresponding paper type is found in the paper database, will set the m_printData - // paper size id member as well. - void SetPaperSize(const wxSize& sz); - - void SetPaperId(wxPaperSize id) { m_printData.SetPaperId(id); } - - // Sets the wxPrintData id, plus the paper width/height if found in the paper database. - void SetPaperSize(wxPaperSize id); - - void SetMinMarginTopLeft(const wxPoint& pt) { m_minMarginTopLeft = pt; } - void SetMinMarginBottomRight(const wxPoint& pt) { m_minMarginBottomRight = pt; } - void SetMarginTopLeft(const wxPoint& pt) { m_marginTopLeft = pt; } - void SetMarginBottomRight(const wxPoint& pt) { m_marginBottomRight = pt; } - void SetDefaultMinMargins(bool flag) { m_defaultMinMargins = flag; } - void SetDefaultInfo(bool flag) { m_getDefaultInfo = flag; } - - void EnableMargins(bool flag) { m_enableMargins = flag; } - void EnableOrientation(bool flag) { m_enableOrientation = flag; } - void EnablePaper(bool flag) { m_enablePaper = flag; } - void EnablePrinter(bool flag) { m_enablePrinter = flag; } - void EnableHelp(bool flag) { m_enableHelp = flag; } - - // Use paper size defined in this object to set the wxPrintData - // paper id - void CalculateIdFromPaperSize(); - - // Use paper id in wxPrintData to set this object's paper size - void CalculatePaperSizeFromId(); - - wxPageSetupDialogData& operator=(const wxPageSetupDialogData& data); - wxPageSetupDialogData& operator=(const wxPrintData& data); - - wxPrintData& GetPrintData() { return m_printData; } - const wxPrintData& GetPrintData() const { return m_printData; } - void SetPrintData(const wxPrintData& printData); - -private: - wxSize m_paperSize; // The dimensions selected by the user (on return, same as in wxPrintData?) - wxPoint m_minMarginTopLeft; - wxPoint m_minMarginBottomRight; - wxPoint m_marginTopLeft; - wxPoint m_marginBottomRight; - bool m_defaultMinMargins; - bool m_enableMargins; - bool m_enableOrientation; - bool m_enablePaper; - bool m_enablePrinter; - bool m_getDefaultInfo; // Equiv. to PSD_RETURNDEFAULT - bool m_enableHelp; - wxPrintData m_printData; - -private: - wxDECLARE_DYNAMIC_CLASS(wxPageSetupDialogData); -}; - -#endif // wxUSE_PRINTING_ARCHITECTURE - -#endif -// _WX_CMNDATA_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/collheaderctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/collheaderctrl.h deleted file mode 100644 index 2364218d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/collheaderctrl.h +++ /dev/null @@ -1,106 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/collheaderctrl.h -// Purpose: wxCollapsibleHeaderCtrl -// Author: Tobias Taschner -// Created: 2015-09-19 -// Copyright: (c) 2015 wxWidgets development team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLLAPSIBLEHEADER_CTRL_H_ -#define _WX_COLLAPSIBLEHEADER_CTRL_H_ - -#include "wx/defs.h" - -#if wxUSE_COLLPANE - -#include "wx/control.h" - -// class name -extern WXDLLIMPEXP_DATA_CORE(const char) wxCollapsibleHeaderCtrlNameStr[]; - -// -// wxGenericCollapsibleHeaderCtrl -// - -class WXDLLIMPEXP_CORE wxCollapsibleHeaderCtrlBase : public wxControl -{ -public: - wxCollapsibleHeaderCtrlBase() { } - - wxCollapsibleHeaderCtrlBase(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxBORDER_NONE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCollapsibleHeaderCtrlNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxBORDER_NONE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCollapsibleHeaderCtrlNameStr) - { - if ( !wxControl::Create(parent, id, pos, size, style, validator, name) ) - return false; - - SetLabel(label); - - return true; - } - - virtual void SetCollapsed(bool collapsed = true) = 0; - - virtual bool IsCollapsed() const = 0; - -private: - - wxDECLARE_NO_COPY_CLASS(wxCollapsibleHeaderCtrlBase); -}; - -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COLLAPSIBLEHEADER_CHANGED, wxCommandEvent); - -#define wxCollapsibleHeaderChangedHandler(func) \ - wxEVENT_HANDLER_CAST(wxCommandEventFunction, func) - -#define EVT_COLLAPSIBLEHEADER_CHANGED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_COLLAPSIBLEHEADER_CHANGED, id, wxCollapsibleHeaderChangedHandler(fn)) - -// Currently there is only the native implementation, use it for all ports. - -#include "wx/generic/collheaderctrl.h" - -class WXDLLIMPEXP_CORE wxCollapsibleHeaderCtrl - : public wxGenericCollapsibleHeaderCtrl -{ -public: - wxCollapsibleHeaderCtrl() { } - - wxCollapsibleHeaderCtrl(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxBORDER_NONE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCollapsibleHeaderCtrlNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - -private: - - wxDECLARE_NO_COPY_CLASS(wxCollapsibleHeaderCtrl); -}; - -#endif // wxUSE_COLLPANE - -#endif // _WX_COLLAPSIBLEHEADER_CTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/collpane.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/collpane.h deleted file mode 100644 index 4a66f124..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/collpane.h +++ /dev/null @@ -1,108 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/collpane.h -// Purpose: wxCollapsiblePane -// Author: Francesco Montorsi -// Modified by: -// Created: 8/10/2006 -// Copyright: (c) Francesco Montorsi -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLLAPSABLE_PANE_H_BASE_ -#define _WX_COLLAPSABLE_PANE_H_BASE_ - -#include "wx/defs.h" - - -#if wxUSE_COLLPANE - -#include "wx/control.h" - -// class name -extern WXDLLIMPEXP_DATA_CORE(const char) wxCollapsiblePaneNameStr[]; - -// ---------------------------------------------------------------------------- -// wxCollapsiblePaneBase: interface for wxCollapsiblePane -// ---------------------------------------------------------------------------- - -#define wxCP_DEFAULT_STYLE (wxTAB_TRAVERSAL | wxNO_BORDER) -#define wxCP_NO_TLW_RESIZE (0x0002) - -class WXDLLIMPEXP_CORE wxCollapsiblePaneBase : public wxControl -{ -public: - wxCollapsiblePaneBase() {} - - virtual void Collapse(bool collapse = true) = 0; - void Expand() { Collapse(false); } - - virtual bool IsCollapsed() const = 0; - bool IsExpanded() const { return !IsCollapsed(); } - - virtual wxWindow *GetPane() const = 0; - - virtual wxString GetLabel() const = 0; - virtual void SetLabel(const wxString& label) = 0; -}; - - -// ---------------------------------------------------------------------------- -// event types and macros -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxCollapsiblePaneEvent; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_COLLAPSIBLEPANE_CHANGED, wxCollapsiblePaneEvent ); - -class WXDLLIMPEXP_CORE wxCollapsiblePaneEvent : public wxCommandEvent -{ -public: - wxCollapsiblePaneEvent() {} - wxCollapsiblePaneEvent(wxObject *generator, int id, bool collapsed) - : wxCommandEvent(wxEVT_COLLAPSIBLEPANE_CHANGED, id), - m_bCollapsed(collapsed) - { - SetEventObject(generator); - } - - bool GetCollapsed() const { return m_bCollapsed; } - void SetCollapsed(bool c) { m_bCollapsed = c; } - - - // default copy ctor, assignment operator and dtor are ok - virtual wxEvent *Clone() const wxOVERRIDE { return new wxCollapsiblePaneEvent(*this); } - -private: - bool m_bCollapsed; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxCollapsiblePaneEvent); -}; - -// ---------------------------------------------------------------------------- -// event types and macros -// ---------------------------------------------------------------------------- - -typedef void (wxEvtHandler::*wxCollapsiblePaneEventFunction)(wxCollapsiblePaneEvent&); - -#define wxCollapsiblePaneEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxCollapsiblePaneEventFunction, func) - -#define EVT_COLLAPSIBLEPANE_CHANGED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_COLLAPSIBLEPANE_CHANGED, id, wxCollapsiblePaneEventHandler(fn)) - - -#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__) - #include "wx/gtk/collpane.h" -#else - #include "wx/generic/collpaneg.h" - - // use #define and not a typedef to allow forward declaring the class - #define wxCollapsiblePane wxGenericCollapsiblePane -#endif - -// old wxEVT_COMMAND_* constant -#define wxEVT_COMMAND_COLLPANE_CHANGED wxEVT_COLLAPSIBLEPANE_CHANGED - -#endif // wxUSE_COLLPANE - -#endif // _WX_COLLAPSABLE_PANE_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/colordlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/colordlg.h deleted file mode 100644 index 7eb7cc9a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/colordlg.h +++ /dev/null @@ -1,43 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/colordlg.h -// Purpose: wxColourDialog -// Author: Vadim Zeitlin -// Modified by: -// Created: 01/02/97 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLORDLG_H_BASE_ -#define _WX_COLORDLG_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_COLOURDLG - -#include "wx/colourdata.h" - -#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) - #include "wx/msw/colordlg.h" -#elif defined(__WXMAC__) && !defined(__WXUNIVERSAL__) - #include "wx/osx/colordlg.h" -#elif defined(__WXGTK20__) && !defined(__WXUNIVERSAL__) - #include "wx/gtk/colordlg.h" -#elif defined(__WXQT__) - #include "wx/qt/colordlg.h" -#else - #include "wx/generic/colrdlgg.h" - - #define wxColourDialog wxGenericColourDialog -#endif - -// get the colour from user and return it -WXDLLIMPEXP_CORE wxColour wxGetColourFromUser(wxWindow *parent = NULL, - const wxColour& colInit = wxNullColour, - const wxString& caption = wxEmptyString, - wxColourData *data = NULL); - -#endif // wxUSE_COLOURDLG - -#endif - // _WX_COLORDLG_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/colour.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/colour.h deleted file mode 100644 index 1651f63d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/colour.h +++ /dev/null @@ -1,228 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/colour.h -// Purpose: wxColourBase definition -// Author: Julian Smart -// Modified by: Francesco Montorsi -// Created: -// Copyright: Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLOUR_H_BASE_ -#define _WX_COLOUR_H_BASE_ - -#include "wx/defs.h" -#include "wx/gdiobj.h" - -class WXDLLIMPEXP_FWD_CORE wxColour; - -// A macro to define the standard wxColour constructors: -// -// It avoids the need to repeat these lines across all colour.h files, since -// Set() is a virtual function and thus cannot be called by wxColourBase ctors -#define DEFINE_STD_WXCOLOUR_CONSTRUCTORS \ - wxColour() { Init(); } \ - wxColour(ChannelType red, \ - ChannelType green, \ - ChannelType blue, \ - ChannelType alpha = wxALPHA_OPAQUE) \ - { Init(); Set(red, green, blue, alpha); } \ - wxColour(unsigned long colRGB) { Init(); Set(colRGB ); } \ - wxColour(const wxString& colourName) { Init(); Set(colourName); } \ - wxColour(const char *colourName) { Init(); Set(colourName); } \ - wxColour(const wchar_t *colourName) { Init(); Set(colourName); } - - -// flags for wxColour -> wxString conversion (see wxColour::GetAsString) -enum { - wxC2S_NAME = 1, // return colour name, when possible - wxC2S_CSS_SYNTAX = 2, // return colour in rgb(r,g,b) syntax - wxC2S_HTML_SYNTAX = 4 // return colour in #rrggbb syntax -}; - -const unsigned char wxALPHA_TRANSPARENT = 0; -const unsigned char wxALPHA_OPAQUE = 0xff; - -// a valid but fully transparent colour -#define wxTransparentColour wxColour(0, 0, 0, wxALPHA_TRANSPARENT) -#define wxTransparentColor wxTransparentColour - -// ---------------------------------------------------------------------------- -// wxVariant support -// ---------------------------------------------------------------------------- - -#if wxUSE_VARIANT -#include "wx/variant.h" -DECLARE_VARIANT_OBJECT_EXPORTED(wxColour,WXDLLIMPEXP_CORE) -#endif - -//----------------------------------------------------------------------------- -// wxColourBase: this class has no data members, just some functions to avoid -// code redundancy in all native wxColour implementations -//----------------------------------------------------------------------------- - -/* Transition from wxGDIObject to wxObject is incomplete. If your port does - not need the wxGDIObject machinery to handle colors, please add it to the - list of ports which do not need it. - */ -#if defined( __WXMAC__ ) || defined( __WXMSW__ ) -#define wxCOLOUR_IS_GDIOBJECT 0 -#else -#define wxCOLOUR_IS_GDIOBJECT 1 -#endif - -class WXDLLIMPEXP_CORE wxColourBase : public -#if wxCOLOUR_IS_GDIOBJECT - wxGDIObject -#else - wxObject -#endif -{ -public: - // type of a single colour component - typedef unsigned char ChannelType; - - wxColourBase() {} - virtual ~wxColourBase() {} - - - // Set() functions - // --------------- - - void Set(ChannelType red, - ChannelType green, - ChannelType blue, - ChannelType alpha = wxALPHA_OPAQUE) - { InitRGBA(red, green, blue, alpha); } - - // implemented in colourcmn.cpp - bool Set(const wxString &str) - { return FromString(str); } - - void Set(unsigned long colRGB) - { - // we don't need to know sizeof(long) here because we assume that the three - // least significant bytes contain the R, G and B values - Set((ChannelType)(0xFF & colRGB), - (ChannelType)(0xFF & (colRGB >> 8)), - (ChannelType)(0xFF & (colRGB >> 16))); - } - - - - // accessors - // --------- - - virtual ChannelType Red() const = 0; - virtual ChannelType Green() const = 0; - virtual ChannelType Blue() const = 0; - virtual ChannelType Alpha() const - { return wxALPHA_OPAQUE ; } - - // implemented in colourcmn.cpp - virtual wxString GetAsString(long flags = wxC2S_NAME | wxC2S_CSS_SYNTAX) const; - - void SetRGB(wxUint32 colRGB) - { - Set((ChannelType)(0xFF & colRGB), - (ChannelType)(0xFF & (colRGB >> 8)), - (ChannelType)(0xFF & (colRGB >> 16))); - } - - void SetRGBA(wxUint32 colRGBA) - { - Set((ChannelType)(0xFF & colRGBA), - (ChannelType)(0xFF & (colRGBA >> 8)), - (ChannelType)(0xFF & (colRGBA >> 16)), - (ChannelType)(0xFF & (colRGBA >> 24))); - } - - wxUint32 GetRGB() const - { return Red() | (Green() << 8) | (Blue() << 16); } - - wxUint32 GetRGBA() const - { return Red() | (Green() << 8) | (Blue() << 16) | (Alpha() << 24); } - -#if !wxCOLOUR_IS_GDIOBJECT - virtual bool IsOk() const= 0; - - // older version, for backwards compatibility only (but not deprecated - // because it's still widely used) - bool Ok() const { return IsOk(); } -#endif - - // manipulation - // ------------ - - // These methods are static because they are mostly used - // within tight loops (where we don't want to instantiate wxColour's) - - static void MakeMono (unsigned char* r, unsigned char* g, unsigned char* b, bool on); - static void MakeDisabled(unsigned char* r, unsigned char* g, unsigned char* b, unsigned char brightness = 255); - static void MakeGrey (unsigned char* r, unsigned char* g, unsigned char* b); // integer version - static void MakeGrey (unsigned char* r, unsigned char* g, unsigned char* b, - double weight_r, double weight_g, double weight_b); // floating point version - static unsigned char AlphaBlend (unsigned char fg, unsigned char bg, double alpha); - static void ChangeLightness(unsigned char* r, unsigned char* g, unsigned char* b, int ialpha); - - wxColour ChangeLightness(int ialpha) const; - wxColour& MakeDisabled(unsigned char brightness = 255); - -protected: - // Some ports need Init() and while we don't, provide a stub so that the - // ports which don't need it are not forced to define it - void Init() { } - - virtual void - InitRGBA(ChannelType r, ChannelType g, ChannelType b, ChannelType a) = 0; - - virtual bool FromString(const wxString& s); - -#if wxCOLOUR_IS_GDIOBJECT - // wxColour doesn't use reference counted data (at least not in all ports) - // so provide stubs for the functions which need to be defined if we do use - // them - virtual wxGDIRefData *CreateGDIRefData() const wxOVERRIDE - { - wxFAIL_MSG( "must be overridden if used" ); - - return NULL; - } - - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *WXUNUSED(data)) const wxOVERRIDE - { - wxFAIL_MSG( "must be overridden if used" ); - - return NULL; - } -#endif -}; - - -// wxColour <-> wxString utilities, used by wxConfig, defined in colourcmn.cpp -WXDLLIMPEXP_CORE wxString wxToString(const wxColourBase& col); -WXDLLIMPEXP_CORE bool wxFromString(const wxString& str, wxColourBase* col); - - - -#if defined(__WXMSW__) - #include "wx/msw/colour.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/colour.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/colour.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/colour.h" -#elif defined(__WXDFB__) - #include "wx/generic/colour.h" -#elif defined(__WXX11__) - #include "wx/x11/colour.h" -#elif defined(__WXMAC__) - #include "wx/osx/colour.h" -#elif defined(__WXQT__) - #include "wx/qt/colour.h" -#endif - -#define wxColor wxColour - -#endif // _WX_COLOUR_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/colourdata.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/colourdata.h deleted file mode 100644 index d05a9a37..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/colourdata.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/colourdata.h -// Author: Julian Smart -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLOURDATA_H_ -#define _WX_COLOURDATA_H_ - -#include "wx/colour.h" - -class WXDLLIMPEXP_CORE wxColourData : public wxObject -{ -public: - // number of custom colours we store - enum - { - NUM_CUSTOM = 16 - }; - - wxColourData(); - wxColourData(const wxColourData& data); - wxColourData& operator=(const wxColourData& data); - virtual ~wxColourData(); - - void SetChooseFull(bool flag) { m_chooseFull = flag; } - bool GetChooseFull() const { return m_chooseFull; } - void SetChooseAlpha(bool flag) { m_chooseAlpha = flag; } - bool GetChooseAlpha() const { return m_chooseAlpha; } - void SetColour(const wxColour& colour) { m_dataColour = colour; } - const wxColour& GetColour() const { return m_dataColour; } - wxColour& GetColour() { return m_dataColour; } - - // SetCustomColour() modifies colours in an internal array of NUM_CUSTOM - // custom colours; - void SetCustomColour(int i, const wxColour& colour); - wxColour GetCustomColour(int i) const; - - // Serialize the object to a string and restore it from it - wxString ToString() const; - bool FromString(const wxString& str); - - - // public for backwards compatibility only: don't use directly - wxColour m_dataColour; - wxColour m_custColours[NUM_CUSTOM]; - bool m_chooseFull; - -protected: - bool m_chooseAlpha; - - wxDECLARE_DYNAMIC_CLASS(wxColourData); -}; - -#endif // _WX_COLOURDATA_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/combo.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/combo.h deleted file mode 100644 index 29cd02e8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/combo.h +++ /dev/null @@ -1,883 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/combo.h -// Purpose: wxComboCtrl declaration -// Author: Jaakko Salli -// Modified by: -// Created: Apr-30-2006 -// Copyright: (c) Jaakko Salli -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COMBOCONTROL_H_BASE_ -#define _WX_COMBOCONTROL_H_BASE_ - - -/* - A few words about all the classes defined in this file are probably in - order: why do we need extra wxComboCtrl and wxComboPopup classes? - - This is because a traditional combobox is a combination of a text control - (with a button allowing to open the pop down list) with a listbox and - wxComboBox class is exactly such control, however we want to also have other - combinations - in fact, we want to allow anything at all to be used as pop - down list, not just a wxListBox. - - So we define a base wxComboCtrl which can use any control as pop down - list and wxComboBox deriving from it which implements the standard wxWidgets - combobox API. wxComboCtrl needs to be told somehow which control to use - and this is done by SetPopupControl(). However, we need something more than - just a wxControl in this method as, for example, we need to call - SetSelection("initial text value") and wxControl doesn't have such method. - So we also need a wxComboPopup which is just a very simple interface which - must be implemented by a control to be usable as a popup. - - We couldn't derive wxComboPopup from wxControl as this would make it - impossible to have a class deriving from both wxListBx and from it, so - instead it is just a mix-in. - */ - - -#include "wx/defs.h" - -#if wxUSE_COMBOCTRL - -#include "wx/control.h" -#include "wx/renderer.h" // this is needed for wxCONTROL_XXX flags -#include "wx/bitmap.h" // wxBitmap used by-value -#include "wx/textentry.h" -#include "wx/time.h" // needed for wxMilliClock_t - -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; -class WXDLLIMPEXP_FWD_CORE wxComboPopup; - -// -// New window styles for wxComboCtrlBase -// -enum -{ - // Double-clicking a read-only combo triggers call to popup's OnComboPopup. - // In wxOwnerDrawnComboBox, for instance, it cycles item. - wxCC_SPECIAL_DCLICK = 0x0100, - - // Dropbutton acts like standard push button. - wxCC_STD_BUTTON = 0x0200 -}; - - -// wxComboCtrl internal flags -enum -{ - // First those that can be passed to Customize. - // It is Windows style for all flags to be clear. - - // Button is preferred outside the border (GTK style) - wxCC_BUTTON_OUTSIDE_BORDER = 0x0001, - // Show popup on mouse up instead of mouse down (which is the Windows style) - wxCC_POPUP_ON_MOUSE_UP = 0x0002, - // All text is not automatically selected on click - wxCC_NO_TEXT_AUTO_SELECT = 0x0004, - // Drop-button stays down as long as popup is displayed. - wxCC_BUTTON_STAYS_DOWN = 0x0008, - // Drop-button covers the entire control. - wxCC_FULL_BUTTON = 0x0010, - // Drop-button goes over the custom-border (used under WinVista). - wxCC_BUTTON_COVERS_BORDER = 0x0020, - - // Internal use: signals creation is complete - wxCC_IFLAG_CREATED = 0x0100, - // Internal use: really put button outside - wxCC_IFLAG_BUTTON_OUTSIDE = 0x0200, - // Internal use: SetMargins has been successfully called - wxCC_IFLAG_LEFT_MARGIN_SET = 0x0400, - // Internal use: Set wxTAB_TRAVERSAL to parent when popup is dismissed - wxCC_IFLAG_PARENT_TAB_TRAVERSAL = 0x0800, - // Internal use: Secondary popup window type should be used (if available). - wxCC_IFLAG_USE_ALT_POPUP = 0x1000, - // Internal use: Skip popup animation. - wxCC_IFLAG_DISABLE_POPUP_ANIM = 0x2000, - // Internal use: Drop-button is a bitmap button or has non-default size - // (but can still be on either side of the control), regardless whether - // specified by the platform or the application. - wxCC_IFLAG_HAS_NONSTANDARD_BUTTON = 0x4000 -}; - - -// Flags used by PreprocessMouseEvent and HandleButtonMouseEvent -enum -{ - wxCC_MF_ON_BUTTON = 0x0001, // cursor is on dropbutton area - wxCC_MF_ON_CLICK_AREA = 0x0002 // cursor is on dropbutton or other area - // that can be clicked to show the popup. -}; - - -// Namespace for wxComboCtrl feature flags -struct wxComboCtrlFeatures -{ - enum - { - MovableButton = 0x0001, // Button can be on either side of control - BitmapButton = 0x0002, // Button may be replaced with bitmap - ButtonSpacing = 0x0004, // Button can have spacing from the edge - // of the control - TextIndent = 0x0008, // SetMargins can be used to control - // left margin. - PaintControl = 0x0010, // Combo control itself can be custom painted - PaintWritable = 0x0020, // A variable-width area in front of writable - // combo control's textctrl can be custom - // painted - Borderless = 0x0040, // wxNO_BORDER window style works - - // There are no feature flags for... - // PushButtonBitmapBackground - if its in wxRendererNative, then it should be - // not an issue to have it automatically under the bitmap. - - All = MovableButton|BitmapButton| - ButtonSpacing|TextIndent| - PaintControl|PaintWritable| - Borderless - }; -}; - - -class WXDLLIMPEXP_CORE wxComboCtrlBase : public wxControl, - public wxTextEntry -{ - friend class wxComboPopup; - friend class wxComboPopupEvtHandler; -public: - // ctors and such - wxComboCtrlBase() : wxControl(), wxTextEntry() { Init(); } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name); - - virtual ~wxComboCtrlBase(); - - // Show/hide popup window (wxComboBox-compatible methods) - virtual void Popup(); - virtual void Dismiss() - { - HidePopup(true); - } - - // Show/hide popup window. - // TODO: Maybe deprecate in favor of Popup()/Dismiss(). - // However, these functions are still called internally - // so it is not straightforward. - virtual void ShowPopup(); - virtual void HidePopup(bool generateEvent=false); - - // Override for totally custom combo action - virtual void OnButtonClick(); - - // return true if the popup is currently shown - bool IsPopupShown() const { return m_popupWinState == Visible; } - - // set interface class instance derived from wxComboPopup - // NULL popup can be used to indicate default in a derived class - void SetPopupControl( wxComboPopup* popup ) - { - DoSetPopupControl(popup); - } - - // get interface class instance derived from wxComboPopup - wxComboPopup* GetPopupControl() - { - EnsurePopupControl(); - return m_popupInterface; - } - - // get the popup window containing the popup control - wxWindow *GetPopupWindow() const { return m_winPopup; } - - // Get the text control which is part of the combobox. - wxTextCtrl *GetTextCtrl() const { return m_text; } - - // get the dropdown button which is part of the combobox - // note: its not necessarily a wxButton or wxBitmapButton - wxWindow *GetButton() const { return m_btn; } - - // forward these methods to all subcontrols - virtual bool Enable(bool enable = true) wxOVERRIDE; - virtual bool Show(bool show = true) wxOVERRIDE; - virtual bool SetFont(const wxFont& font) wxOVERRIDE; - - // - // wxTextEntry methods - // - // NB: We basically need to override all of them because there is - // no guarantee how platform-specific wxTextEntry is implemented. - // - virtual void SetValue(const wxString& value) wxOVERRIDE - { wxTextEntryBase::SetValue(value); } - virtual void ChangeValue(const wxString& value) wxOVERRIDE - { wxTextEntryBase::ChangeValue(value); } - - virtual void WriteText(const wxString& text) wxOVERRIDE; - virtual void AppendText(const wxString& text) wxOVERRIDE - { wxTextEntryBase::AppendText(text); } - - virtual wxString GetValue() const wxOVERRIDE - { return wxTextEntryBase::GetValue(); } - - virtual wxString GetRange(long from, long to) const wxOVERRIDE - { return wxTextEntryBase::GetRange(from, to); } - - // Replace() and DoSetValue() need to be fully re-implemented since - // EventSuppressor utility class does not work with the way - // wxComboCtrl is implemented. - virtual void Replace(long from, long to, const wxString& value) wxOVERRIDE; - - virtual void Remove(long from, long to) wxOVERRIDE; - - virtual void Copy() wxOVERRIDE; - virtual void Cut() wxOVERRIDE; - virtual void Paste() wxOVERRIDE; - - virtual void Undo() wxOVERRIDE; - virtual void Redo() wxOVERRIDE; - virtual bool CanUndo() const wxOVERRIDE; - virtual bool CanRedo() const wxOVERRIDE; - - virtual void SetInsertionPoint(long pos) wxOVERRIDE; - virtual long GetInsertionPoint() const wxOVERRIDE; - virtual long GetLastPosition() const wxOVERRIDE; - - virtual void SetSelection(long from, long to) wxOVERRIDE; - virtual void GetSelection(long *from, long *to) const wxOVERRIDE; - - virtual bool IsEditable() const wxOVERRIDE; - virtual void SetEditable(bool editable) wxOVERRIDE; - - virtual bool SetHint(const wxString& hint) wxOVERRIDE; - virtual wxString GetHint() const wxOVERRIDE; - - // This method sets the text without affecting list selection - // (ie. wxComboPopup::SetStringValue doesn't get called). - void SetText(const wxString& value); - - // This method sets value and also optionally sends EVT_TEXT - // (needed by combo popups) - wxDEPRECATED( void SetValueWithEvent(const wxString& value, - bool withEvent = true) ); - - // Changes value of the control as if user had done it by selecting an - // item from a combo box drop-down list. Needs to be public so that - // derived popup classes can call it. - void SetValueByUser(const wxString& value); - - // - // Popup customization methods - // - - // Sets minimum width of the popup. If wider than combo control, it will extend to the left. - // Remarks: - // * Value -1 indicates the default. - // * Custom popup may choose to ignore this (wxOwnerDrawnComboBox does not). - void SetPopupMinWidth( int width ) - { - m_widthMinPopup = width; - } - - // Sets preferred maximum height of the popup. - // Remarks: - // * Value -1 indicates the default. - // * Custom popup may choose to ignore this (wxOwnerDrawnComboBox does not). - void SetPopupMaxHeight( int height ) - { - m_heightPopup = height; - } - - // Extends popup size horizontally, relative to the edges of the combo control. - // Remarks: - // * Popup minimum width may override extLeft (ie. it has higher precedence). - // * Values 0 indicate default. - // * Custom popup may not take this fully into account (wxOwnerDrawnComboBox takes). - void SetPopupExtents( int extLeft, int extRight ) - { - m_extLeft = extLeft; - m_extRight = extRight; - } - - // Set width, in pixels, of custom paint area in writable combo. - // In read-only, used to indicate area that is not covered by the - // focus rectangle (which may or may not be drawn, depending on the - // popup type). - void SetCustomPaintWidth( int width ); - int GetCustomPaintWidth() const { return m_widthCustomPaint; } - - // Set side of the control to which the popup will align itself. - // Valid values are wxLEFT, wxRIGHT and 0. The default value 0 wmeans - // that the side of the button will be used. - void SetPopupAnchor( int anchorSide ) - { - m_anchorSide = anchorSide; - } - - // Set position of dropdown button. - // width: button width. <= 0 for default. - // height: button height. <= 0 for default. - // side: wxLEFT or wxRIGHT, indicates on which side the button will be placed. - // spacingX: empty space on sides of the button. Default is 0. - // Remarks: - // There is no spacingY - the button will be centered vertically. - void SetButtonPosition( int width = -1, - int height = -1, - int side = wxRIGHT, - int spacingX = 0 ); - - // Returns current size of the dropdown button. - wxSize GetButtonSize(); - - // - // Sets dropbutton to be drawn with custom bitmaps. - // - // bmpNormal: drawn when cursor is not on button - // pushButtonBg: Draw push button background below the image. - // NOTE! This is usually only properly supported on platforms with appropriate - // method in wxRendererNative. - // bmpPressed: drawn when button is depressed - // bmpHover: drawn when cursor hovers on button. This is ignored on platforms - // that do not generally display hover differently. - // bmpDisabled: drawn when combobox is disabled. - void SetButtonBitmaps( const wxBitmap& bmpNormal, - bool pushButtonBg = false, - const wxBitmap& bmpPressed = wxNullBitmap, - const wxBitmap& bmpHover = wxNullBitmap, - const wxBitmap& bmpDisabled = wxNullBitmap ); - -#if WXWIN_COMPATIBILITY_2_8 - // - // This will set the space in pixels between left edge of the control and the - // text, regardless whether control is read-only (ie. no wxTextCtrl) or not. - // Platform-specific default can be set with value-1. - // Remarks - // * This method may do nothing on some native implementations. - wxDEPRECATED( void SetTextIndent( int indent ) ); - - // Returns actual indentation in pixels. - wxDEPRECATED( wxCoord GetTextIndent() const ); -#endif - - // Returns area covered by the text field. - const wxRect& GetTextRect() const - { - return m_tcArea; - } - - // Call with enable as true to use a type of popup window that guarantees ability - // to focus the popup control, and normal function of common native controls. - // This alternative popup window is usually a wxDialog, and as such it's parent - // frame will appear as if the focus has been lost from it. - void UseAltPopupWindow( bool enable = true ) - { - wxASSERT_MSG( !m_winPopup, - wxT("call this only before SetPopupControl") ); - - if ( enable ) - m_iFlags |= wxCC_IFLAG_USE_ALT_POPUP; - else - m_iFlags &= ~wxCC_IFLAG_USE_ALT_POPUP; - } - - // Call with false to disable popup animation, if any. - void EnablePopupAnimation( bool enable = true ) - { - if ( enable ) - m_iFlags &= ~wxCC_IFLAG_DISABLE_POPUP_ANIM; - else - m_iFlags |= wxCC_IFLAG_DISABLE_POPUP_ANIM; - } - - // - // Utilies needed by the popups or native implementations - // - - // Returns true if given key combination should toggle the popup. - // NB: This is a separate from other keyboard handling because: - // 1) Replaceability. - // 2) Centralized code (otherwise it'd be split up between - // wxComboCtrl key handler and wxVListBoxComboPopup's - // key handler). - virtual bool IsKeyPopupToggle(const wxKeyEvent& event) const = 0; - - // Prepare background of combo control or an item in a dropdown list - // in a way typical on platform. This includes painting the focus/disabled - // background and setting the clipping region. - // Unless you plan to paint your own focus indicator, you should always call this - // in your wxComboPopup::PaintComboControl implementation. - // In addition, it sets pen and text colour to what looks good and proper - // against the background. - // flags: wxRendererNative flags: wxCONTROL_ISSUBMENU: is drawing a list item instead of combo control - // wxCONTROL_SELECTED: list item is selected - // wxCONTROL_DISABLED: control/item is disabled - virtual void PrepareBackground( wxDC& dc, const wxRect& rect, int flags ) const; - - // Returns true if focus indicator should be drawn in the control. - bool ShouldDrawFocus() const - { - const wxWindow* curFocus = FindFocus(); - return ( IsPopupWindowState(Hidden) && - (curFocus == m_mainCtrlWnd || (m_btn && curFocus == m_btn)) && - (m_windowStyle & wxCB_READONLY) ); - } - - // These methods return references to appropriate dropbutton bitmaps - const wxBitmap& GetBitmapNormal() const { return m_bmpNormal; } - const wxBitmap& GetBitmapPressed() const { return m_bmpPressed; } - const wxBitmap& GetBitmapHover() const { return m_bmpHover; } - const wxBitmap& GetBitmapDisabled() const { return m_bmpDisabled; } - - // Set custom style flags for embedded wxTextCtrl. Usually must be used - // with two-step creation, before Create() call. - void SetTextCtrlStyle( int style ); - - // Return internal flags - wxUint32 GetInternalFlags() const { return m_iFlags; } - - // Return true if Create has finished - bool IsCreated() const { return m_iFlags & wxCC_IFLAG_CREATED ? true : false; } - - // Need to override to return text area background colour - wxColour GetBackgroundColour() const; - - // common code to be called on popup hide/dismiss - void OnPopupDismiss(bool generateEvent); - - // PopupShown states - enum - { - Hidden = 0, - //Closing = 1, - Animating = 2, - Visible = 3 - }; - - bool IsPopupWindowState( int state ) const { return (state == m_popupWinState) ? true : false; } - - wxByte GetPopupWindowState() const { return m_popupWinState; } - - // Set value returned by GetMainWindowOfCompositeControl - void SetCtrlMainWnd( wxWindow* wnd ) { m_mainCtrlWnd = wnd; } - - // This is public so we can access it from wxComboCtrlTextCtrl - virtual wxWindow *GetMainWindowOfCompositeControl() wxOVERRIDE - { return m_mainCtrlWnd; } - - // also set the embedded wxTextCtrl colours - virtual bool SetForegroundColour(const wxColour& colour) wxOVERRIDE; - virtual bool SetBackgroundColour(const wxColour& colour) wxOVERRIDE; - -protected: - - // Returns true if hint text should be drawn in the control - bool ShouldUseHintText(int flags = 0) const - { - return ( !m_text && - !(flags & wxCONTROL_ISSUBMENU) && - !m_valueString.length() && - m_hintText.length() && - !ShouldDrawFocus() ); - } - - // - // Override these for customization purposes - // - - // called from wxSizeEvent handler - virtual void OnResize() = 0; - - // Return native text identation - // (i.e. text margin, for pure text, not textctrl) - virtual wxCoord GetNativeTextIndent() const; - - // Called in syscolourchanged handler and base create - virtual void OnThemeChange(); - - // Creates wxTextCtrl. - // extraStyle: Extra style parameters - void CreateTextCtrl( int extraStyle ); - - // Called when text was changed programmatically - // (e.g. from WriteText()) - void OnSetValue(const wxString& value); - - // Installs standard input handler to combo (and optionally to the textctrl) - void InstallInputHandlers(); - - // Flags for DrawButton - enum - { - Button_PaintBackground = 0x0001, // Paints control background below the button - Button_BitmapOnly = 0x0002 // Only paints the bitmap - }; - - // Draws dropbutton. Using wxRenderer or bitmaps, as appropriate. - // Flags are defined above. - virtual void DrawButton( wxDC& dc, const wxRect& rect, int flags = Button_PaintBackground ); - - // Call if cursor is on button area or mouse is captured for the button. - //bool HandleButtonMouseEvent( wxMouseEvent& event, bool isInside ); - bool HandleButtonMouseEvent( wxMouseEvent& event, int flags ); - - // returns true if event was consumed or filtered (event type is also set to 0 in this case) - bool PreprocessMouseEvent( wxMouseEvent& event, int flags ); - - // - // This will handle left_down and left_dclick events outside button in a Windows-like manner. - // If you need alternate behaviour, it is recommended you manipulate and filter events to it - // instead of building your own handling routine (for reference, on wxEVT_LEFT_DOWN it will - // toggle popup and on wxEVT_LEFT_DCLICK it will do the same or run the popup's dclick method, - // if defined - you should pass events of other types of it for common processing). - void HandleNormalMouseEvent( wxMouseEvent& event ); - - // Creates popup window, calls interface->Create(), etc - void CreatePopup(); - - // Destroy popup window and all related constructs - void DestroyPopup(); - - // override the base class virtuals involved in geometry calculations - // The common version only sets a default width, so the derived classes - // should override it and set the height and change the width as needed. - virtual wxSize DoGetBestSize() const wxOVERRIDE; - virtual wxSize DoGetSizeFromTextSize(int xlen, int ylen = -1) const wxOVERRIDE; - - // NULL popup can be used to indicate default in a derived class - virtual void DoSetPopupControl(wxComboPopup* popup); - - // ensures there is atleast the default popup - void EnsurePopupControl(); - - // Recalculates button and textctrl areas. Called when size or button setup change. - // btnWidth: default/calculated width of the dropbutton. 0 means unchanged, - // just recalculate. - void CalculateAreas( int btnWidth = 0 ); - - // Standard textctrl positioning routine. Just give it platform-dependent - // textctrl coordinate adjustment. - virtual void PositionTextCtrl( int textCtrlXAdjust = 0, - int textCtrlYAdjust = 0); - - // event handlers - void OnSizeEvent( wxSizeEvent& event ); - void OnFocusEvent(wxFocusEvent& event); - void OnIdleEvent(wxIdleEvent& event); - void OnTextCtrlEvent(wxCommandEvent& event); - void OnSysColourChanged(wxSysColourChangedEvent& event); - void OnKeyEvent(wxKeyEvent& event); - void OnCharEvent(wxKeyEvent& event); - - // Set customization flags (directs how wxComboCtrlBase helpers behave) - void Customize( wxUint32 flags ) { m_iFlags |= flags; } - - // Dispatches size event and refreshes - void RecalcAndRefresh(); - - // Flags for DoShowPopup and AnimateShow - enum - { - ShowBelow = 0x0000, // Showing popup below the control - ShowAbove = 0x0001, // Showing popup above the control - CanDeferShow = 0x0002 // Can only return true from AnimateShow if this is set - }; - - // Shows and positions the popup. - virtual void DoShowPopup( const wxRect& rect, int flags ); - - // Implement in derived class to create a drop-down animation. - // Return true if finished immediately. Otherwise popup is only - // shown when the derived class call DoShowPopup. - // Flags are same as for DoShowPopup. - virtual bool AnimateShow( const wxRect& rect, int flags ); - -#if wxUSE_TOOLTIPS - virtual void DoSetToolTip( wxToolTip *tip ) wxOVERRIDE; -#endif - - // protected wxTextEntry methods - virtual void DoSetValue(const wxString& value, int flags) wxOVERRIDE; - virtual wxString DoGetValue() const wxOVERRIDE; - virtual wxWindow *GetEditableWindow() wxOVERRIDE { return this; } - - // margins functions - virtual bool DoSetMargins(const wxPoint& pt) wxOVERRIDE; - virtual wxPoint DoGetMargins() const wxOVERRIDE; - - // This is used when m_text is hidden (readonly). - wxString m_valueString; - - // This is used when control is unfocused and m_valueString is empty - wxString m_hintText; - - // the text control and button we show all the time - wxTextCtrl* m_text; - wxWindow* m_btn; - - // wxPopupWindow or similar containing the window managed by the interface. - wxWindow* m_winPopup; - - // the popup control/panel - wxWindow* m_popup; - - // popup interface - wxComboPopup* m_popupInterface; - - // this is input etc. handler for the text control - wxEvtHandler* m_textEvtHandler; - - // this is for the top level window - wxEvtHandler* m_toplevEvtHandler; - - // this is for the control in popup - wxEvtHandler* m_popupEvtHandler; - - // this is for the popup window - wxEvtHandler* m_popupWinEvtHandler; - - // main (ie. topmost) window of a composite control (default = this) - wxWindow* m_mainCtrlWnd; - - // used to prevent immediate re-popupping in case closed popup - // by clicking on the combo control (needed because of inconsistent - // transient implementation across platforms). - wxMilliClock_t m_timeCanAcceptClick; - - // how much popup should expand to the left/right of the control - wxCoord m_extLeft; - wxCoord m_extRight; - - // minimum popup width - wxCoord m_widthMinPopup; - - // preferred popup height - wxCoord m_heightPopup; - - // how much of writable combo is custom-paint by callback? - // also used to indicate area that is not covered by "blue" - // selection indicator. - wxCoord m_widthCustomPaint; - - // left margin, in pixels - wxCoord m_marginLeft; - - // side on which the popup is aligned - int m_anchorSide; - - // Width of the "fake" border - wxCoord m_widthCustomBorder; - - // The button and textctrl click/paint areas - wxRect m_tcArea; - wxRect m_btnArea; - - // Colour of the text area, in case m_text is NULL - wxColour m_tcBgCol; - - // current button state (uses renderer flags) - int m_btnState; - - // button position - int m_btnWid; - int m_btnHei; - int m_btnSide; - int m_btnSpacingX; - - // last default button width - int m_btnWidDefault; - - // custom dropbutton bitmaps - wxBitmap m_bmpNormal; - wxBitmap m_bmpPressed; - wxBitmap m_bmpHover; - wxBitmap m_bmpDisabled; - - // area used by the button - wxSize m_btnSize; - - // platform-dependent customization and other flags - wxUint32 m_iFlags; - - // custom style for m_text - int m_textCtrlStyle; - - // draw blank button background under bitmap? - bool m_blankButtonBg; - - // is the popup window currenty shown? - wxByte m_popupWinState; - - // should the focus be reset to the textctrl in idle time? - bool m_resetFocus; - - // is the text-area background colour overridden? - bool m_hasTcBgCol; - -private: - void Init(); - - wxByte m_ignoreEvtText; // Number of next EVT_TEXTs to ignore - - // Is popup window wxPopupTransientWindow, wxPopupWindow or wxDialog? - wxByte m_popupWinType; - - wxDECLARE_EVENT_TABLE(); - - wxDECLARE_ABSTRACT_CLASS(wxComboCtrlBase); -}; - - -// ---------------------------------------------------------------------------- -// wxComboPopup is the interface which must be implemented by a control to be -// used as a popup by wxComboCtrl -// ---------------------------------------------------------------------------- - - -// wxComboPopup internal flags -enum -{ - wxCP_IFLAG_CREATED = 0x0001 // Set by wxComboCtrlBase after Create is called -}; - -class WXDLLIMPEXP_FWD_CORE wxComboCtrl; - - -class WXDLLIMPEXP_CORE wxComboPopup -{ - friend class wxComboCtrlBase; -public: - wxComboPopup() - { - m_combo = NULL; - m_iFlags = 0; - } - - // This is called immediately after construction finishes. m_combo member - // variable has been initialized before the call. - // NOTE: It is not in constructor so the derived class doesn't need to redefine - // a default constructor of its own. - virtual void Init() { } - - virtual ~wxComboPopup(); - - // Create the popup child control. - // Return true for success. - virtual bool Create(wxWindow* parent) = 0; - - // Calls Destroy() for the popup control (i.e. one returned by - // GetControl()) and makes sure that 'this' is deleted at the end. - // Default implementation works for both cases where popup control - // class is multiple inherited or created on heap as a separate - // object. - virtual void DestroyPopup(); - - // We must have an associated control which is subclassed by the combobox. - virtual wxWindow *GetControl() = 0; - - // Called immediately after the popup is shown - virtual void OnPopup(); - - // Called when popup is dismissed - virtual void OnDismiss(); - - // Called just prior to displaying popup. - // Default implementation does nothing. - virtual void SetStringValue( const wxString& value ); - - // Gets displayed string representation of the value. - virtual wxString GetStringValue() const = 0; - - // Called to check if the popup - when an item container - actually - // has matching item. Case-sensitivity checking etc. is up to the - // implementation. If the found item matched the string, but is - // different, it should be written back to pItem. Default implementation - // always return true and does not alter trueItem. - virtual bool FindItem(const wxString& item, wxString* trueItem=NULL); - - // This is called to custom paint in the combo control itself (ie. not the popup). - // Default implementation draws value as string. - virtual void PaintComboControl( wxDC& dc, const wxRect& rect ); - - // Receives wxEVT_KEY_DOWN key events from the parent wxComboCtrl. - // Events not handled should be skipped, as usual. - virtual void OnComboKeyEvent( wxKeyEvent& event ); - - // Receives wxEVT_CHAR key events from the parent wxComboCtrl. - // Events not handled should be skipped, as usual. - virtual void OnComboCharEvent( wxKeyEvent& event ); - - // Implement if you need to support special action when user - // double-clicks on the parent wxComboCtrl. - virtual void OnComboDoubleClick(); - - // Return final size of popup. Called on every popup, just prior to OnShow. - // minWidth = preferred minimum width for window - // prefHeight = preferred height. Only applies if > 0, - // maxHeight = max height for window, as limited by screen size - // and should only be rounded down, if necessary. - virtual wxSize GetAdjustedSize( int minWidth, int prefHeight, int maxHeight ); - - // Return true if you want delay call to Create until the popup is shown - // for the first time. It is more efficient, but note that it is often - // more convenient to have the control created immediately. - // Default returns false. - virtual bool LazyCreate(); - - // - // Utilies - // - - // Hides the popup - void Dismiss(); - - // Returns true if Create has been called. - bool IsCreated() const - { - return (m_iFlags & wxCP_IFLAG_CREATED) ? true : false; - } - - // Returns pointer to the associated parent wxComboCtrl. - wxComboCtrl* GetComboCtrl() const; - - // Default PaintComboControl behaviour - static void DefaultPaintComboControl( wxComboCtrlBase* combo, - wxDC& dc, - const wxRect& rect ); - -protected: - wxComboCtrlBase* m_combo; - wxUint32 m_iFlags; - -private: - // Called in wxComboCtrlBase::SetPopupControl - void InitBase(wxComboCtrlBase *combo) - { - m_combo = combo; - } -}; - - -// ---------------------------------------------------------------------------- -// include the platform-dependent header defining the real class -// ---------------------------------------------------------------------------- - -#if defined(__WXUNIVERSAL__) - // No native universal (but it must still be first in the list) -#elif defined(__WXMSW__) - #include "wx/msw/combo.h" -#endif - -// Any ports may need generic as an alternative -#include "wx/generic/combo.h" - -#endif // wxUSE_COMBOCTRL - -#endif - // _WX_COMBOCONTROL_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/combobox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/combobox.h deleted file mode 100644 index 4e9b64fd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/combobox.h +++ /dev/null @@ -1,90 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/combobox.h -// Purpose: wxComboBox declaration -// Author: Vadim Zeitlin -// Modified by: -// Created: 24.12.00 -// Copyright: (c) 1996-2000 wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COMBOBOX_H_BASE_ -#define _WX_COMBOBOX_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_COMBOBOX - -// For compatibility with 2.8 include this header to allow using wxTE_XXX -// styles with wxComboBox without explicitly including it in the user code. -#include "wx/textctrl.h" - -extern WXDLLIMPEXP_DATA_CORE(const char) wxComboBoxNameStr[]; - -// ---------------------------------------------------------------------------- -// wxComboBoxBase: this interface defines the methods wxComboBox must implement -// ---------------------------------------------------------------------------- - -#include "wx/ctrlsub.h" -#include "wx/textentry.h" - -class WXDLLIMPEXP_CORE wxComboBoxBase : public wxItemContainer, - public wxTextEntry -{ -public: - // override these methods to disambiguate between two base classes versions - virtual void Clear() wxOVERRIDE - { - wxTextEntry::Clear(); - wxItemContainer::Clear(); - } - - // IsEmpty() is ambiguous because we inherit it from both wxItemContainer - // and wxTextEntry, and even if defined it here to help the compiler with - // choosing one of them, it would still be confusing for the human users of - // this class. So instead define the clearly named methods below and leave - // IsEmpty() ambiguous to trigger a compilation error if it's used. - bool IsListEmpty() const { return wxItemContainer::IsEmpty(); } - bool IsTextEmpty() const { return wxTextEntry::IsEmpty(); } - - // also bring in GetSelection() versions of both base classes in scope - // - // NB: GetSelection(from, to) could be already implemented in wxTextEntry - // but still make it pure virtual because for some platforms it's not - // implemented there and also because the derived class has to override - // it anyhow to avoid ambiguity with the other GetSelection() - virtual int GetSelection() const wxOVERRIDE = 0; - virtual void GetSelection(long *from, long *to) const wxOVERRIDE = 0; - - virtual void Popup() { wxFAIL_MSG( wxT("Not implemented") ); } - virtual void Dismiss() { wxFAIL_MSG( wxT("Not implemented") ); } - - // may return value different from GetSelection() when the combobox - // dropdown is shown and the user selected, but not yet accepted, a value - // different from the old one in it - virtual int GetCurrentSelection() const { return GetSelection(); } -}; - -// ---------------------------------------------------------------------------- -// include the platform-dependent header defining the real class -// ---------------------------------------------------------------------------- - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/combobox.h" -#elif defined(__WXMSW__) - #include "wx/msw/combobox.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/combobox.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/combobox.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/combobox.h" -#elif defined(__WXMAC__) - #include "wx/osx/combobox.h" -#elif defined(__WXQT__) - #include "wx/qt/combobox.h" -#endif - -#endif // wxUSE_COMBOBOX - -#endif // _WX_COMBOBOX_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/commandlinkbutton.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/commandlinkbutton.h deleted file mode 100644 index bd4b5d2e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/commandlinkbutton.h +++ /dev/null @@ -1,169 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/commandlinkbutton.h -// Purpose: wxCommandLinkButtonBase and wxGenericCommandLinkButton classes -// Author: Rickard Westerlund -// Created: 2010-06-11 -// Copyright: (c) 2010 wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COMMANDLINKBUTTON_H_ -#define _WX_COMMANDLINKBUTTON_H_ - -#include "wx/defs.h" - -#if wxUSE_COMMANDLINKBUTTON - -#include "wx/button.h" - -// ---------------------------------------------------------------------------- -// Command link button common base class -// ---------------------------------------------------------------------------- - -// This class has separate "main label" (title-like string) and (possibly -// multiline) "note" which can be set and queried separately but can also be -// set both at once by joining them with a new line and setting them as a -// label and queried by breaking the label into the parts before the first new -// line and after it. - -class WXDLLIMPEXP_ADV wxCommandLinkButtonBase : public wxButton -{ -public: - wxCommandLinkButtonBase() : wxButton() { } - - wxCommandLinkButtonBase(wxWindow *parent, - wxWindowID id, - const wxString& mainLabel = wxEmptyString, - const wxString& note = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = - wxDefaultValidator, - const wxString& name = wxButtonNameStr) - : wxButton(parent, - id, - mainLabel + '\n' + note, - pos, - size, - style, - validator, - name) - { } - - virtual void SetMainLabelAndNote(const wxString& mainLabel, - const wxString& note) = 0; - - virtual void SetMainLabel(const wxString& mainLabel) - { - SetMainLabelAndNote(mainLabel, GetNote()); - } - - virtual void SetNote(const wxString& note) - { - SetMainLabelAndNote(GetMainLabel(), note); - } - - virtual wxString GetMainLabel() const - { - return GetLabel().BeforeFirst('\n'); - } - - virtual wxString GetNote() const - { - return GetLabel().AfterFirst('\n'); - } - -protected: - virtual bool HasNativeBitmap() const { return false; } - -private: - wxDECLARE_NO_COPY_CLASS(wxCommandLinkButtonBase); -}; - -// ---------------------------------------------------------------------------- -// Generic command link button -// ---------------------------------------------------------------------------- - -// Trivial generic implementation simply using a multiline label to show both -// the main label and the note. - -class WXDLLIMPEXP_ADV wxGenericCommandLinkButton - : public wxCommandLinkButtonBase -{ -public: - wxGenericCommandLinkButton() : wxCommandLinkButtonBase() { } - - - wxGenericCommandLinkButton(wxWindow *parent, - wxWindowID id, - const wxString& mainLabel = wxEmptyString, - const wxString& note = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - : wxCommandLinkButtonBase() - { - Create(parent, id, mainLabel, note, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& mainLabel = wxEmptyString, - const wxString& note = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - virtual void SetMainLabelAndNote(const wxString& mainLabel, - const wxString& note) wxOVERRIDE - { - wxButton::SetLabel(mainLabel + '\n' + note); - } - -private: - void SetDefaultBitmap(); - - wxDECLARE_NO_COPY_CLASS(wxGenericCommandLinkButton); -}; - -#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) - #include "wx/msw/commandlinkbutton.h" -#else - class WXDLLIMPEXP_ADV wxCommandLinkButton : public wxGenericCommandLinkButton - { - public: - wxCommandLinkButton() : wxGenericCommandLinkButton() { } - - wxCommandLinkButton(wxWindow *parent, - wxWindowID id, - const wxString& mainLabel = wxEmptyString, - const wxString& note = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - : wxGenericCommandLinkButton(parent, - id, - mainLabel, - note, - pos, - size, - style, - validator, - name) - { } - - private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxCommandLinkButton); - }; -#endif // __WXMSW__/!__WXMSW__ - -#endif // wxUSE_COMMANDLINKBUTTON - -#endif // _WX_COMMANDLINKBUTTON_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/compiler.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/compiler.h deleted file mode 100644 index dfab0a25..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/compiler.h +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Name: wx/compiler.h - * Purpose: Compiler-specific macro definitions. - * Author: Vadim Zeitlin - * Created: 2013-07-13 (extracted from wx/platform.h) - * Copyright: (c) 1997-2013 Vadim Zeitlin - * Licence: wxWindows licence - */ - -/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ - -#ifndef _WX_COMPILER_H_ -#define _WX_COMPILER_H_ - -/* - Compiler detection and related helpers. - */ - -/* - Notice that Intel compiler can be used as Microsoft Visual C++ add-on and - so we should define both __INTELC__ and __VISUALC__ for it. -*/ -#ifdef __INTEL_COMPILER -# define __INTELC__ -#endif - -#if defined(_MSC_VER) - /* - define another standard symbol for Microsoft Visual C++: the standard - one (_MSC_VER) is also defined by some other compilers. - */ -# define __VISUALC__ _MSC_VER - - /* - define special symbols for different VC version instead of writing tests - for magic numbers such as 1200, 1300 &c repeatedly - */ -#if __VISUALC__ < 1300 -# error "This Visual C++ version is not supported any longer (at least MSVC 2003 required)." -#elif __VISUALC__ < 1400 -# define __VISUALC7__ -#elif __VISUALC__ < 1500 -# define __VISUALC8__ -#elif __VISUALC__ < 1600 -# define __VISUALC9__ -#elif __VISUALC__ < 1700 -# define __VISUALC10__ -#elif __VISUALC__ < 1800 -# define __VISUALC11__ -#elif __VISUALC__ < 1900 -# define __VISUALC12__ -#elif __VISUALC__ < 2000 - /* There is no __VISUALC13__! */ -# define __VISUALC14__ -#else - /* - Don't forget to update include/msvc/wx/setup.h as well when adding - support for a newer MSVC version here. - */ -# pragma message("Please update wx/compiler.h to recognize this VC++ version") -#endif - -#elif defined(__BCPLUSPLUS__) && !defined(__BORLANDC__) -# define __BORLANDC__ -#elif defined(__SUNPRO_CC) -# ifndef __SUNCC__ -# define __SUNCC__ __SUNPRO_CC -# endif /* Sun CC */ -#endif /* compiler */ - -/* - Macros for checking compiler version. -*/ - -/* - This macro can be used to test the gcc version and can be used like this: - -# if wxCHECK_GCC_VERSION(3, 1) - ... we have gcc 3.1 or later ... -# else - ... no gcc at all or gcc < 3.1 ... -# endif -*/ -#if defined(__GNUC__) && defined(__GNUC_MINOR__) - #define wxCHECK_GCC_VERSION( major, minor ) \ - ( ( __GNUC__ > (major) ) \ - || ( __GNUC__ == (major) && __GNUC_MINOR__ >= (minor) ) ) -#else - #define wxCHECK_GCC_VERSION( major, minor ) 0 -#endif - -/* - This macro can be used to test the Visual C++ version. -*/ -#ifndef __VISUALC__ -# define wxVISUALC_VERSION(major) 0 -# define wxCHECK_VISUALC_VERSION(major) 0 -#else - /* - Things used to be simple with the _MSC_VER value and the version number - increasing in lock step, but _MSC_VER value of 1900 is VC14 and not the - non existing (presumably for the superstitious reasons) VC13, so we now - need to account for this with an extra offset. - */ -# define wxVISUALC_VERSION(major) ( (6 + (major >= 14 ? 1 : 0) + major) * 100 ) -# define wxCHECK_VISUALC_VERSION(major) ( __VISUALC__ >= wxVISUALC_VERSION(major) ) -#endif - -/** - This is similar to wxCHECK_GCC_VERSION but for Sun CC compiler. - */ -#ifdef __SUNCC__ - /* - __SUNCC__ is 0xVRP where V is major version, R release and P patch level - */ - #define wxCHECK_SUNCC_VERSION(maj, min) (__SUNCC__ >= (((maj)<<8) | ((min)<<4))) -#else - #define wxCHECK_SUNCC_VERSION(maj, min) (0) -#endif - -/* - wxCHECK_MINGW32_VERSION() is defined in wx/msw/gccpriv.h which is included - later, see comments there. - */ - -#endif // _WX_COMPILER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/compositewin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/compositewin.h deleted file mode 100644 index 0a9bbdff..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/compositewin.h +++ /dev/null @@ -1,231 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/compositewin.h -// Purpose: wxCompositeWindow<> declaration -// Author: Vadim Zeitlin -// Created: 2011-01-02 -// Copyright: (c) 2011 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COMPOSITEWIN_H_ -#define _WX_COMPOSITEWIN_H_ - -#include "wx/window.h" -#include "wx/containr.h" - -class WXDLLIMPEXP_FWD_CORE wxToolTip; - -// NB: This is an experimental and, as for now, undocumented class used only by -// wxWidgets itself internally. Don't use it in your code until its API is -// officially stabilized unless you are ready to change it with the next -// wxWidgets release. - -// ---------------------------------------------------------------------------- -// wxCompositeWindow is a helper for implementing composite windows: to define -// a class using subwindows, simply inherit from it specialized with the real -// base class name and implement GetCompositeWindowParts() pure virtual method. -// ---------------------------------------------------------------------------- - -// The template parameter W must be a wxWindow-derived class. -template -class wxCompositeWindow : public W -{ -public: - typedef W BaseWindowClass; - - // Default ctor doesn't do anything. - wxCompositeWindow() - { - this->Connect - ( - wxEVT_CREATE, - wxWindowCreateEventHandler(wxCompositeWindow::OnWindowCreate) - ); - - } - - // Override all wxWindow methods which must be forwarded to the composite - // window parts. - - // Attribute setters group. - // - // NB: Unfortunately we can't factor out the call for the setter itself - // into DoSetForAllParts() because we can't call the function passed to - // it non-virtually and we need to do this to avoid infinite recursion, - // so we work around this by calling the method of this object itself - // manually in each function. - virtual bool SetForegroundColour(const wxColour& colour) - { - if ( !BaseWindowClass::SetForegroundColour(colour) ) - return false; - - SetForAllParts(&wxWindowBase::SetForegroundColour, colour); - - return true; - } - - virtual bool SetBackgroundColour(const wxColour& colour) - { - if ( !BaseWindowClass::SetBackgroundColour(colour) ) - return false; - - SetForAllParts(&wxWindowBase::SetBackgroundColour, colour); - - return true; - } - - virtual bool SetFont(const wxFont& font) - { - if ( !BaseWindowClass::SetFont(font) ) - return false; - - SetForAllParts(&wxWindowBase::SetFont, font); - - return true; - } - - virtual bool SetCursor(const wxCursor& cursor) - { - if ( !BaseWindowClass::SetCursor(cursor) ) - return false; - - SetForAllParts(&wxWindowBase::SetCursor, cursor); - - return true; - } - - virtual void SetLayoutDirection(wxLayoutDirection dir) - { - BaseWindowClass::SetLayoutDirection(dir); - - SetForAllParts(&wxWindowBase::SetLayoutDirection, dir); - - // The child layout almost invariably depends on the layout direction, - // so redo it when it changes. - // - // However avoid doing it when we're called from wxWindow::Create() in - // wxGTK as the derived window is not fully created yet and calling its - // SetSize() may be unexpected. This does mean that any future calls to - // SetLayoutDirection(wxLayout_Default) wouldn't result in a re-layout - // neither, but then we're not supposed to be called with it at all. - if ( dir != wxLayout_Default ) - this->SetSize(-1, -1, -1, -1, wxSIZE_AUTO | wxSIZE_FORCE); - } - -#if wxUSE_TOOLTIPS - virtual void DoSetToolTipText(const wxString &tip) - { - BaseWindowClass::DoSetToolTipText(tip); - - // Use a variable to disambiguate between SetToolTip() overloads. - void (wxWindowBase::*func)(const wxString&) = &wxWindowBase::SetToolTip; - - SetForAllParts(func, tip); - } - - virtual void DoSetToolTip(wxToolTip *tip) - { - BaseWindowClass::DoSetToolTip(tip); - - SetForAllParts(&wxWindowBase::CopyToolTip, tip); - } -#endif // wxUSE_TOOLTIPS - - virtual void SetFocus() - { - wxSetFocusToChild(this, NULL); - } - -private: - // Must be implemented by the derived class to return all children to which - // the public methods we override should forward to. - virtual wxWindowList GetCompositeWindowParts() const = 0; - - void OnWindowCreate(wxWindowCreateEvent& event) - { - event.Skip(); - - // Attach a few event handlers to all parts of the composite window. - // This makes the composite window behave more like a simple control - // and allows other code (such as wxDataViewCtrl's inline editing - // support) to hook into its event processing. - - wxWindow *child = event.GetWindow(); - if ( child == this ) - return; // not a child, we don't want to Connect() to ourselves - - // Always capture wxEVT_KILL_FOCUS: - child->Connect(wxEVT_KILL_FOCUS, - wxFocusEventHandler(wxCompositeWindow::OnKillFocus), - NULL, this); - - // Some events should be only handled for non-toplevel children. For - // example, we want to close the control in wxDataViewCtrl when Enter - // is pressed in the inline editor, but not when it's pressed in a - // popup dialog it opens. - wxWindow *win = child; - while ( win && win != this ) - { - if ( win->IsTopLevel() ) - return; - win = win->GetParent(); - } - - child->Connect(wxEVT_CHAR, - wxKeyEventHandler(wxCompositeWindow::OnChar), - NULL, this); - } - - void OnChar(wxKeyEvent& event) - { - if ( !this->ProcessWindowEvent(event) ) - event.Skip(); - } - - void OnKillFocus(wxFocusEvent& event) - { - // Ignore focus changes within the composite control: - wxWindow *win = event.GetWindow(); - while ( win ) - { - if ( win == this ) - { - event.Skip(); - return; - } - - // Note that we don't use IsTopLevel() check here, because we do - // want to ignore focus changes going to toplevel window that have - // the composite control as its parent; these would typically be - // some kind of control's popup window. - win = win->GetParent(); - } - - // The event shouldn't be ignored, forward it to the main control: - if ( !this->ProcessWindowEvent(event) ) - event.Skip(); - } - - template - void SetForAllParts(R (wxWindowBase::*func)(TArg), T arg) - { - // Simply call the setters for all parts of this composite window. - const wxWindowList parts = GetCompositeWindowParts(); - for ( wxWindowList::const_iterator i = parts.begin(); - i != parts.end(); - ++i ) - { - wxWindow * const child = *i; - - // Allow NULL elements in the list, this makes the code of derived - // composite controls which may have optionally shown children - // simpler and it doesn't cost us much here. - if ( child ) - (child->*func)(arg); - } - } - - wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxCompositeWindow, W); -}; - -#endif // _WX_COMPOSITEWIN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/confbase.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/confbase.h deleted file mode 100644 index 714e3d00..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/confbase.h +++ /dev/null @@ -1,456 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/confbase.h -// Purpose: declaration of the base class of all config implementations -// (see also: fileconf.h and msw/regconf.h and iniconf.h) -// Author: Karsten Ballueder & Vadim Zeitlin -// Modified by: -// Created: 07.04.98 (adapted from appconf.h) -// Copyright: (c) 1997 Karsten Ballueder Ballueder@usa.net -// Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CONFBASE_H_ -#define _WX_CONFBASE_H_ - -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/object.h" -#include "wx/base64.h" - -class WXDLLIMPEXP_FWD_BASE wxArrayString; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -/// shall we be case sensitive in parsing variable names? -#ifndef wxCONFIG_CASE_SENSITIVE - #define wxCONFIG_CASE_SENSITIVE 0 -#endif - -/// separates group and entry names (probably shouldn't be changed) -#ifndef wxCONFIG_PATH_SEPARATOR - #define wxCONFIG_PATH_SEPARATOR wxT('/') -#endif - -/// introduces immutable entries -// (i.e. the ones which can't be changed from the local config file) -#ifndef wxCONFIG_IMMUTABLE_PREFIX - #define wxCONFIG_IMMUTABLE_PREFIX wxT('!') -#endif - -#if wxUSE_CONFIG - -/// should we use registry instead of configuration files under Windows? -// (i.e. whether wxConfigBase::Create() will create a wxFileConfig (if it's -// false) or wxRegConfig (if it's true and we're under Win32)) -#ifndef wxUSE_CONFIG_NATIVE - #define wxUSE_CONFIG_NATIVE 1 -#endif - -// not all compilers can deal with template Read/Write() methods, define this -// symbol if the template functions are available -#if !defined( __VMS ) && \ - !(defined(__HP_aCC) && defined(__hppa)) - #define wxHAS_CONFIG_TEMPLATE_RW -#endif - -// Style flags for constructor style parameter -enum -{ - wxCONFIG_USE_LOCAL_FILE = 1, - wxCONFIG_USE_GLOBAL_FILE = 2, - wxCONFIG_USE_RELATIVE_PATH = 4, - wxCONFIG_USE_NO_ESCAPE_CHARACTERS = 8, - wxCONFIG_USE_SUBDIR = 16 -}; - -// ---------------------------------------------------------------------------- -// abstract base class wxConfigBase which defines the interface for derived -// classes -// -// wxConfig organizes the items in a tree-like structure (modelled after the -// Unix/Dos filesystem). There are groups (directories) and keys (files). -// There is always one current group given by the current path. -// -// Keys are pairs "key_name = value" where value may be of string or integer -// (long) type (TODO doubles and other types such as wxDate coming soon). -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxConfigBase : public wxObject -{ -public: - // constants - // the type of an entry - enum EntryType - { - Type_Unknown, - Type_String, - Type_Boolean, - Type_Integer, // use Read(long *) - Type_Float // use Read(double *) - }; - - // static functions - // sets the config object, returns the previous pointer - static wxConfigBase *Set(wxConfigBase *pConfig); - // get the config object, creates it on demand unless DontCreateOnDemand - // was called - static wxConfigBase *Get(bool createOnDemand = true) - { if ( createOnDemand && (!ms_pConfig) ) Create(); return ms_pConfig; } - // create a new config object: this function will create the "best" - // implementation of wxConfig available for the current platform, see - // comments near definition wxUSE_CONFIG_NATIVE for details. It returns - // the created object and also sets it as ms_pConfig. - static wxConfigBase *Create(); - // should Get() try to create a new log object if the current one is NULL? - static void DontCreateOnDemand() { ms_bAutoCreate = false; } - - // ctor & virtual dtor - // ctor (can be used as default ctor too) - // - // Not all args will always be used by derived classes, but including - // them all in each class ensures compatibility. If appName is empty, - // uses wxApp name - wxConfigBase(const wxString& appName = wxEmptyString, - const wxString& vendorName = wxEmptyString, - const wxString& localFilename = wxEmptyString, - const wxString& globalFilename = wxEmptyString, - long style = 0); - - // empty but ensures that dtor of all derived classes is virtual - virtual ~wxConfigBase(); - - // path management - // set current path: if the first character is '/', it's the absolute path, - // otherwise it's a relative path. '..' is supported. If the strPath - // doesn't exist it is created. - virtual void SetPath(const wxString& strPath) = 0; - // retrieve the current path (always as absolute path) - virtual const wxString& GetPath() const = 0; - - // enumeration: all functions here return false when there are no more items. - // you must pass the same lIndex to GetNext and GetFirst (don't modify it) - // enumerate subgroups - virtual bool GetFirstGroup(wxString& str, long& lIndex) const = 0; - virtual bool GetNextGroup (wxString& str, long& lIndex) const = 0; - // enumerate entries - virtual bool GetFirstEntry(wxString& str, long& lIndex) const = 0; - virtual bool GetNextEntry (wxString& str, long& lIndex) const = 0; - // get number of entries/subgroups in the current group, with or without - // it's subgroups - virtual size_t GetNumberOfEntries(bool bRecursive = false) const = 0; - virtual size_t GetNumberOfGroups(bool bRecursive = false) const = 0; - - // tests of existence - // returns true if the group by this name exists - virtual bool HasGroup(const wxString& strName) const = 0; - // same as above, but for an entry - virtual bool HasEntry(const wxString& strName) const = 0; - // returns true if either a group or an entry with a given name exist - bool Exists(const wxString& strName) const - { return HasGroup(strName) || HasEntry(strName); } - - // get the entry type - virtual EntryType GetEntryType(const wxString& name) const - { - // by default all entries are strings - return HasEntry(name) ? Type_String : Type_Unknown; - } - - // key access: returns true if value was really read, false if default used - // (and if the key is not found the default value is returned.) - - // read a string from the key - bool Read(const wxString& key, wxString *pStr) const; - bool Read(const wxString& key, wxString *pStr, const wxString& defVal) const; - - // read a number (long) - bool Read(const wxString& key, long *pl) const; - bool Read(const wxString& key, long *pl, long defVal) const; - - // read an int (wrapper around `long' version) - bool Read(const wxString& key, int *pi) const; - bool Read(const wxString& key, int *pi, int defVal) const; - - // read a double - bool Read(const wxString& key, double* val) const; - bool Read(const wxString& key, double* val, double defVal) const; - - // read a float - bool Read(const wxString& key, float* val) const; - bool Read(const wxString& key, float* val, float defVal) const; - - // read a bool - bool Read(const wxString& key, bool* val) const; - bool Read(const wxString& key, bool* val, bool defVal) const; - -#if wxUSE_BASE64 - // read a binary data block - bool Read(const wxString& key, wxMemoryBuffer* data) const - { return DoReadBinary(key, data); } - // no default version since it does not make sense for binary data -#endif // wxUSE_BASE64 - -#ifdef wxHAS_CONFIG_TEMPLATE_RW - // read other types, for which wxFromString is defined - template - bool Read(const wxString& key, T* value) const - { - wxString s; - if ( !Read(key, &s) ) - return false; - return wxFromString(s, value); - } - - template - bool Read(const wxString& key, T* value, const T& defVal) const - { - const bool found = Read(key, value); - if ( !found ) - { - if (IsRecordingDefaults()) - ((wxConfigBase *)this)->Write(key, defVal); - *value = defVal; - } - return found; - } -#endif // wxHAS_CONFIG_TEMPLATE_RW - - // convenience functions returning directly the value - wxString Read(const wxString& key, - const wxString& defVal = wxEmptyString) const - { wxString s; (void)Read(key, &s, defVal); return s; } - - // we have to provide a separate version for C strings as otherwise the - // template Read() would be used - wxString Read(const wxString& key, const char* defVal) const - { return Read(key, wxString(defVal)); } - wxString Read(const wxString& key, const wchar_t* defVal) const - { return Read(key, wxString(defVal)); } - - long ReadLong(const wxString& key, long defVal) const - { long l; (void)Read(key, &l, defVal); return l; } - - double ReadDouble(const wxString& key, double defVal) const - { double d; (void)Read(key, &d, defVal); return d; } - - bool ReadBool(const wxString& key, bool defVal) const - { bool b; (void)Read(key, &b, defVal); return b; } - - template - T ReadObject(const wxString& key, T const& defVal) const - { T t; (void)Read(key, &t, defVal); return t; } - - // for compatibility with wx 2.8 - long Read(const wxString& key, long defVal) const - { return ReadLong(key, defVal); } - - - // write the value (return true on success) - bool Write(const wxString& key, const wxString& value) - { return DoWriteString(key, value); } - - bool Write(const wxString& key, long value) - { return DoWriteLong(key, value); } - - bool Write(const wxString& key, double value) - { return DoWriteDouble(key, value); } - - bool Write(const wxString& key, bool value) - { return DoWriteBool(key, value); } - -#if wxUSE_BASE64 - bool Write(const wxString& key, const wxMemoryBuffer& buf) - { return DoWriteBinary(key, buf); } -#endif // wxUSE_BASE64 - - // we have to provide a separate version for C strings as otherwise they - // would be converted to bool and not to wxString as expected! - bool Write(const wxString& key, const char *value) - { return Write(key, wxString(value)); } - bool Write(const wxString& key, const unsigned char *value) - { return Write(key, wxString(value)); } - bool Write(const wxString& key, const wchar_t *value) - { return Write(key, wxString(value)); } - - - // we also have to provide specializations for other types which we want to - // handle using the specialized DoWriteXXX() instead of the generic template - // version below - bool Write(const wxString& key, char value) - { return DoWriteLong(key, value); } - - bool Write(const wxString& key, unsigned char value) - { return DoWriteLong(key, value); } - - bool Write(const wxString& key, short value) - { return DoWriteLong(key, value); } - - bool Write(const wxString& key, unsigned short value) - { return DoWriteLong(key, value); } - - bool Write(const wxString& key, unsigned int value) - { return DoWriteLong(key, value); } - - bool Write(const wxString& key, int value) - { return DoWriteLong(key, value); } - - bool Write(const wxString& key, unsigned long value) - { return DoWriteLong(key, value); } - - bool Write(const wxString& key, float value) - { return DoWriteDouble(key, value); } - - // Causes ambiguities in under OpenVMS -#if !defined( __VMS ) - // for other types, use wxToString() - template - bool Write(const wxString& key, T const& value) - { return Write(key, wxToString(value)); } -#endif - - // permanently writes all changes - virtual bool Flush(bool bCurrentOnly = false) = 0; - - // renaming, all functions return false on failure (probably because the new - // name is already taken by an existing entry) - // rename an entry - virtual bool RenameEntry(const wxString& oldName, - const wxString& newName) = 0; - // rename a group - virtual bool RenameGroup(const wxString& oldName, - const wxString& newName) = 0; - - // delete entries/groups - // deletes the specified entry and the group it belongs to if - // it was the last key in it and the second parameter is true - virtual bool DeleteEntry(const wxString& key, - bool bDeleteGroupIfEmpty = true) = 0; - // delete the group (with all subgroups) - virtual bool DeleteGroup(const wxString& key) = 0; - // delete the whole underlying object (disk file, registry key, ...) - // primarily for use by uninstallation routine. - virtual bool DeleteAll() = 0; - - // options - // we can automatically expand environment variables in the config entries - // (this option is on by default, you can turn it on/off at any time) - bool IsExpandingEnvVars() const { return m_bExpandEnvVars; } - void SetExpandEnvVars(bool bDoIt = true) { m_bExpandEnvVars = bDoIt; } - // recording of default values - void SetRecordDefaults(bool bDoIt = true) { m_bRecordDefaults = bDoIt; } - bool IsRecordingDefaults() const { return m_bRecordDefaults; } - // does expansion only if needed - wxString ExpandEnvVars(const wxString& str) const; - - // misc accessors - wxString GetAppName() const { return m_appName; } - wxString GetVendorName() const { return m_vendorName; } - - // Used wxIniConfig to set members in constructor - void SetAppName(const wxString& appName) { m_appName = appName; } - void SetVendorName(const wxString& vendorName) { m_vendorName = vendorName; } - - void SetStyle(long style) { m_style = style; } - long GetStyle() const { return m_style; } - -protected: - static bool IsImmutable(const wxString& key) - { return !key.IsEmpty() && key[0] == wxCONFIG_IMMUTABLE_PREFIX; } - - // return the path without trailing separator, if any: this should be called - // to sanitize paths referring to the group names before passing them to - // wxConfigPathChanger as "/foo/bar/" should be the same as "/foo/bar" and it - // isn't interpreted in the same way by it (and this can't be changed there - // as it's not the same for the entries names) - static wxString RemoveTrailingSeparator(const wxString& key); - - // do read/write the values of different types - virtual bool DoReadString(const wxString& key, wxString *pStr) const = 0; - virtual bool DoReadLong(const wxString& key, long *pl) const = 0; - virtual bool DoReadDouble(const wxString& key, double* val) const; - virtual bool DoReadBool(const wxString& key, bool* val) const; -#if wxUSE_BASE64 - virtual bool DoReadBinary(const wxString& key, wxMemoryBuffer* buf) const = 0; -#endif // wxUSE_BASE64 - - virtual bool DoWriteString(const wxString& key, const wxString& value) = 0; - virtual bool DoWriteLong(const wxString& key, long value) = 0; - virtual bool DoWriteDouble(const wxString& key, double value); - virtual bool DoWriteBool(const wxString& key, bool value); -#if wxUSE_BASE64 - virtual bool DoWriteBinary(const wxString& key, const wxMemoryBuffer& buf) = 0; -#endif // wxUSE_BASE64 - -private: - // are we doing automatic environment variable expansion? - bool m_bExpandEnvVars; - // do we record default values? - bool m_bRecordDefaults; - - // static variables - static wxConfigBase *ms_pConfig; - static bool ms_bAutoCreate; - - // Application name and organisation name - wxString m_appName; - wxString m_vendorName; - - // Style flag - long m_style; - - wxDECLARE_ABSTRACT_CLASS(wxConfigBase); -}; - -// a handy little class which changes current path to the path of given entry -// and restores it in dtor: so if you declare a local variable of this type, -// you work in the entry directory and the path is automatically restored -// when the function returns -// Taken out of wxConfig since not all compilers can cope with nested classes. -class WXDLLIMPEXP_BASE wxConfigPathChanger -{ -public: - // ctor/dtor do path changing/restoring of the path - wxConfigPathChanger(const wxConfigBase *pContainer, const wxString& strEntry); - ~wxConfigPathChanger(); - - // get the key name - const wxString& Name() const { return m_strName; } - - // this method must be called if the original path (i.e. the current path at - // the moment of creation of this object) could have been deleted to prevent - // us from restoring the not existing (any more) path - // - // if the original path doesn't exist any more, the path will be restored to - // the deepest still existing component of the old path - void UpdateIfDeleted(); - -private: - wxConfigBase *m_pContainer; // object we live in - wxString m_strName, // name of entry (i.e. name only) - m_strOldPath; // saved path - bool m_bChanged; // was the path changed? - - wxDECLARE_NO_COPY_CLASS(wxConfigPathChanger); -}; - - -#endif // wxUSE_CONFIG - -/* - Replace environment variables ($SOMETHING) with their values. The format is - $VARNAME or ${VARNAME} where VARNAME contains alphanumeric characters and - '_' only. '$' must be escaped ('\$') in order to be taken literally. -*/ - -WXDLLIMPEXP_BASE wxString wxExpandEnvVars(const wxString &sz); - -/* - Split path into parts removing '..' in progress - */ -WXDLLIMPEXP_BASE void wxSplitPath(wxArrayString& aParts, const wxString& path); - -#endif // _WX_CONFBASE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/config.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/config.h deleted file mode 100644 index 2a28e071..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/config.h +++ /dev/null @@ -1,34 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/config.h -// Purpose: wxConfig base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CONFIG_H_BASE_ -#define _WX_CONFIG_H_BASE_ - -#include "wx/confbase.h" - -#if wxUSE_CONFIG - -// ---------------------------------------------------------------------------- -// define the native wxConfigBase implementation -// ---------------------------------------------------------------------------- - -// under Windows we prefer to use the native implementation but can be forced -// to use the file-based one -#if defined(__WINDOWS__) && wxUSE_CONFIG_NATIVE - #include "wx/msw/regconf.h" - #define wxConfig wxRegConfig -#else // either we're under Unix or wish to always use config files - #include "wx/fileconf.h" - #define wxConfig wxFileConfig -#endif - -#endif // wxUSE_CONFIG - -#endif // _WX_CONFIG_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/containr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/containr.h deleted file mode 100644 index 784ff2fc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/containr.h +++ /dev/null @@ -1,414 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/containr.h -// Purpose: wxControlContainer and wxNavigationEnabled declarations -// Author: Vadim Zeitlin -// Modified by: -// Created: 06.08.01 -// Copyright: (c) 2001, 2011 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CONTAINR_H_ -#define _WX_CONTAINR_H_ - -#include "wx/defs.h" - -#ifndef wxHAS_NATIVE_TAB_TRAVERSAL - // We need wxEVT_XXX declarations in this case. - #include "wx/event.h" -#endif - -class WXDLLIMPEXP_FWD_CORE wxWindow; -class WXDLLIMPEXP_FWD_CORE wxWindowBase; - -/* - This header declares wxControlContainer class however it's not a real - container of controls but rather just a helper used to implement TAB - navigation among the window children. You should rarely need to use it - directly, derive from the documented public wxNavigationEnabled<> class to - implement TAB navigation in a custom composite window. - */ - -// ---------------------------------------------------------------------------- -// wxControlContainerBase: common part used in both native and generic cases -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxControlContainerBase -{ -public: - // default ctor, SetContainerWindow() must be called later - wxControlContainerBase() - { - m_winParent = NULL; - - // By default, we accept focus ourselves. - m_acceptsFocusSelf = true; - - // But we don't have any children accepting it yet. - m_acceptsFocusChildren = false; - - m_inSetFocus = false; - m_winLastFocused = NULL; - } - virtual ~wxControlContainerBase() {} - - void SetContainerWindow(wxWindow *winParent) - { - wxASSERT_MSG( !m_winParent, wxT("shouldn't be called twice") ); - - m_winParent = winParent; - } - - // This can be called by the window to indicate that it never wants to have - // the focus for itself. - void DisableSelfFocus() - { m_acceptsFocusSelf = false; UpdateParentCanFocus(); } - - // This can be called to undo the effect of a previous DisableSelfFocus() - // (otherwise calling it is not necessary as the window does accept focus - // by default). - void EnableSelfFocus() - { m_acceptsFocusSelf = true; UpdateParentCanFocus(); } - - // should be called from SetFocus(), returns false if we did nothing with - // the focus and the default processing should take place - bool DoSetFocus(); - - // returns whether we should accept focus ourselves or not - bool AcceptsFocus() const; - - // Returns whether we or one of our children accepts focus. - bool AcceptsFocusRecursively() const - { return AcceptsFocus() || - (m_acceptsFocusChildren && HasAnyChildrenAcceptingFocus()); } - - // We accept focus from keyboard if we accept it at all. - bool AcceptsFocusFromKeyboard() const { return AcceptsFocusRecursively(); } - - // Call this when the number of children of the window changes. - // - // Returns true if we have any focusable children, false otherwise. - bool UpdateCanFocusChildren(); - -protected: - // set the focus to the child which had it the last time - virtual bool SetFocusToChild(); - - // return true if we have any children accepting focus - bool HasAnyFocusableChildren() const; - - // return true if we have any children that do accept focus right now - bool HasAnyChildrenAcceptingFocus() const; - - - // the parent window we manage the children for - wxWindow *m_winParent; - - // the child which had the focus last time this panel was activated - wxWindow *m_winLastFocused; - -private: - // Update the window status to reflect whether it is getting focus or not. - void UpdateParentCanFocus(); - - // Indicates whether the associated window can ever have focus itself. - // - // Usually this is the case, e.g. a wxPanel can be used either as a - // container for its children or just as a normal window which can be - // focused. But sometimes, e.g. for wxStaticBox, we can never have focus - // ourselves and can only get it if we have any focusable children. - bool m_acceptsFocusSelf; - - // Cached value remembering whether we have any children accepting focus. - bool m_acceptsFocusChildren; - - // a guard against infinite recursion - bool m_inSetFocus; -}; - -#ifdef wxHAS_NATIVE_TAB_TRAVERSAL - -// ---------------------------------------------------------------------------- -// wxControlContainer for native TAB navigation -// ---------------------------------------------------------------------------- - -// this must be a real class as we forward-declare it elsewhere -class WXDLLIMPEXP_CORE wxControlContainer : public wxControlContainerBase -{ -protected: - // set the focus to the child which had it the last time - virtual bool SetFocusToChild() wxOVERRIDE; -}; - -#else // !wxHAS_NATIVE_TAB_TRAVERSAL - -// ---------------------------------------------------------------------------- -// wxControlContainer for TAB navigation implemented in wx itself -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxControlContainer : public wxControlContainerBase -{ -public: - // default ctor, SetContainerWindow() must be called later - wxControlContainer(); - - // the methods to be called from the window event handlers - void HandleOnNavigationKey(wxNavigationKeyEvent& event); - void HandleOnFocus(wxFocusEvent& event); - void HandleOnWindowDestroy(wxWindowBase *child); - - // called from OnChildFocus() handler, i.e. when one of our (grand) - // children gets the focus - void SetLastFocus(wxWindow *win); - -protected: - - wxDECLARE_NO_COPY_CLASS(wxControlContainer); -}; - -#endif // wxHAS_NATIVE_TAB_TRAVERSAL/!wxHAS_NATIVE_TAB_TRAVERSAL - -// this function is for wxWidgets internal use only -extern WXDLLIMPEXP_CORE bool wxSetFocusToChild(wxWindow *win, wxWindow **child); - -// ---------------------------------------------------------------------------- -// wxNavigationEnabled: Derive from this class to support keyboard navigation -// among window children in a wxWindow-derived class. The details of this class -// don't matter, you just need to derive from it to make navigation work. -// ---------------------------------------------------------------------------- - -// The template parameter W must be a wxWindow-derived class. -template -class wxNavigationEnabled : public W -{ -public: - typedef W BaseWindowClass; - - wxNavigationEnabled() - { - m_container.SetContainerWindow(this); - -#ifndef wxHAS_NATIVE_TAB_TRAVERSAL - BaseWindowClass::Connect(wxEVT_NAVIGATION_KEY, - wxNavigationKeyEventHandler(wxNavigationEnabled::OnNavigationKey)); - - BaseWindowClass::Connect(wxEVT_SET_FOCUS, - wxFocusEventHandler(wxNavigationEnabled::OnFocus)); - - BaseWindowClass::Connect(wxEVT_CHILD_FOCUS, - wxChildFocusEventHandler(wxNavigationEnabled::OnChildFocus)); -#endif // !wxHAS_NATIVE_TAB_TRAVERSAL - } - - WXDLLIMPEXP_INLINE_CORE virtual bool AcceptsFocus() const - { - return m_container.AcceptsFocus(); - } - - WXDLLIMPEXP_INLINE_CORE virtual bool AcceptsFocusRecursively() const - { - return m_container.AcceptsFocusRecursively(); - } - - WXDLLIMPEXP_INLINE_CORE virtual bool AcceptsFocusFromKeyboard() const - { - return m_container.AcceptsFocusFromKeyboard(); - } - - WXDLLIMPEXP_INLINE_CORE virtual void AddChild(wxWindowBase *child) - { - BaseWindowClass::AddChild(child); - - if ( m_container.UpdateCanFocusChildren() ) - { - // Under MSW we must have wxTAB_TRAVERSAL style for TAB navigation - // to work. - if ( !BaseWindowClass::HasFlag(wxTAB_TRAVERSAL) ) - BaseWindowClass::ToggleWindowStyle(wxTAB_TRAVERSAL); - } - } - - WXDLLIMPEXP_INLINE_CORE virtual void RemoveChild(wxWindowBase *child) - { -#ifndef wxHAS_NATIVE_TAB_TRAVERSAL - m_container.HandleOnWindowDestroy(child); -#endif // !wxHAS_NATIVE_TAB_TRAVERSAL - - BaseWindowClass::RemoveChild(child); - - // We could reset wxTAB_TRAVERSAL here but it doesn't seem to do any - // harm to keep it. - m_container.UpdateCanFocusChildren(); - } - - WXDLLIMPEXP_INLINE_CORE virtual void SetFocus() - { - if ( !m_container.DoSetFocus() ) - BaseWindowClass::SetFocus(); - } - - void SetFocusIgnoringChildren() - { - BaseWindowClass::SetFocus(); - } - -protected: -#ifndef wxHAS_NATIVE_TAB_TRAVERSAL - void OnNavigationKey(wxNavigationKeyEvent& event) - { - m_container.HandleOnNavigationKey(event); - } - - void OnFocus(wxFocusEvent& event) - { - m_container.HandleOnFocus(event); - } - - void OnChildFocus(wxChildFocusEvent& event) - { - m_container.SetLastFocus(event.GetWindow()); - event.Skip(); - } -#endif // !wxHAS_NATIVE_TAB_TRAVERSAL - - wxControlContainer m_container; - - - wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxNavigationEnabled, W); -}; - -// ---------------------------------------------------------------------------- -// Compatibility macros from now on, do NOT use them and preferably do not even -// look at them. -// ---------------------------------------------------------------------------- - -#if WXWIN_COMPATIBILITY_2_8 - -// common part of WX_DECLARE_CONTROL_CONTAINER in the native and generic cases, -// it should be used in the wxWindow-derived class declaration -#define WX_DECLARE_CONTROL_CONTAINER_BASE() \ -public: \ - virtual bool AcceptsFocus() const; \ - virtual bool AcceptsFocusRecursively() const; \ - virtual bool AcceptsFocusFromKeyboard() const; \ - virtual void AddChild(wxWindowBase *child); \ - virtual void RemoveChild(wxWindowBase *child); \ - virtual void SetFocus(); \ - void SetFocusIgnoringChildren(); \ - \ -protected: \ - wxControlContainer m_container - -// this macro must be used in the derived class ctor -#define WX_INIT_CONTROL_CONTAINER() \ - m_container.SetContainerWindow(this) - -// common part of WX_DELEGATE_TO_CONTROL_CONTAINER in the native and generic -// cases, must be used in the wxWindow-derived class implementation -#define WX_DELEGATE_TO_CONTROL_CONTAINER_BASE(classname, basename) \ - void classname::AddChild(wxWindowBase *child) \ - { \ - basename::AddChild(child); \ - \ - m_container.UpdateCanFocusChildren(); \ - } \ - \ - bool classname::AcceptsFocusRecursively() const \ - { \ - return m_container.AcceptsFocusRecursively(); \ - } \ - \ - void classname::SetFocus() \ - { \ - if ( !m_container.DoSetFocus() ) \ - basename::SetFocus(); \ - } \ - \ - bool classname::AcceptsFocus() const \ - { \ - return m_container.AcceptsFocus(); \ - } \ - \ - bool classname::AcceptsFocusFromKeyboard() const \ - { \ - return m_container.AcceptsFocusFromKeyboard(); \ - } - - -#ifdef wxHAS_NATIVE_TAB_TRAVERSAL - -#define WX_EVENT_TABLE_CONTROL_CONTAINER(classname) - -#define WX_DECLARE_CONTROL_CONTAINER WX_DECLARE_CONTROL_CONTAINER_BASE - -#define WX_DELEGATE_TO_CONTROL_CONTAINER(classname, basename) \ - WX_DELEGATE_TO_CONTROL_CONTAINER_BASE(classname, basename) \ - \ - void classname::RemoveChild(wxWindowBase *child) \ - { \ - basename::RemoveChild(child); \ - \ - m_container.UpdateCanFocusChildren(); \ - } \ - \ - void classname::SetFocusIgnoringChildren() \ - { \ - basename::SetFocus(); \ - } - -#else // !wxHAS_NATIVE_TAB_TRAVERSAL - -// declare the methods to be forwarded -#define WX_DECLARE_CONTROL_CONTAINER() \ - WX_DECLARE_CONTROL_CONTAINER_BASE(); \ - \ -public: \ - void OnNavigationKey(wxNavigationKeyEvent& event); \ - void OnFocus(wxFocusEvent& event); \ - virtual void OnChildFocus(wxChildFocusEvent& event) - -// implement the event table entries for wxControlContainer -#define WX_EVENT_TABLE_CONTROL_CONTAINER(classname) \ - EVT_SET_FOCUS(classname::OnFocus) \ - EVT_CHILD_FOCUS(classname::OnChildFocus) \ - EVT_NAVIGATION_KEY(classname::OnNavigationKey) - -// implement the methods forwarding to the wxControlContainer -#define WX_DELEGATE_TO_CONTROL_CONTAINER(classname, basename) \ - WX_DELEGATE_TO_CONTROL_CONTAINER_BASE(classname, basename) \ - \ - void classname::RemoveChild(wxWindowBase *child) \ - { \ - m_container.HandleOnWindowDestroy(child); \ - \ - basename::RemoveChild(child); \ - \ - m_container.UpdateCanFocusChildren(); \ - } \ - \ - void classname::OnNavigationKey( wxNavigationKeyEvent& event ) \ - { \ - m_container.HandleOnNavigationKey(event); \ - } \ - \ - void classname::SetFocusIgnoringChildren() \ - { \ - basename::SetFocus(); \ - } \ - \ - void classname::OnChildFocus(wxChildFocusEvent& event) \ - { \ - m_container.SetLastFocus(event.GetWindow()); \ - event.Skip(); \ - } \ - \ - void classname::OnFocus(wxFocusEvent& event) \ - { \ - m_container.HandleOnFocus(event); \ - } - -#endif // wxHAS_NATIVE_TAB_TRAVERSAL/!wxHAS_NATIVE_TAB_TRAVERSAL - -#endif // WXWIN_COMPATIBILITY_2_8 - -#endif // _WX_CONTAINR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/control.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/control.h deleted file mode 100644 index 86563645..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/control.h +++ /dev/null @@ -1,223 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/control.h -// Purpose: wxControl common interface -// Author: Vadim Zeitlin -// Modified by: -// Created: 26.07.99 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CONTROL_H_BASE_ -#define _WX_CONTROL_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_CONTROLS - -#include "wx/window.h" // base class -#include "wx/gdicmn.h" // wxEllipsize... - -extern WXDLLIMPEXP_DATA_CORE(const char) wxControlNameStr[]; - - -// ---------------------------------------------------------------------------- -// wxControl is the base class for all controls -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxControlBase : public wxWindow -{ -public: - wxControlBase() { } - - virtual ~wxControlBase(); - - // Create() function adds the validator parameter - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxControlNameStr); - - // get the control alignment (left/right/centre, top/bottom/centre) - int GetAlignment() const { return m_windowStyle & wxALIGN_MASK; } - - // set label with mnemonics - virtual void SetLabel(const wxString& label) wxOVERRIDE - { - m_labelOrig = label; - - InvalidateBestSize(); - - wxWindow::SetLabel(label); - } - - // return the original string, as it was passed to SetLabel() - // (i.e. with wx-style mnemonics) - virtual wxString GetLabel() const wxOVERRIDE { return m_labelOrig; } - - // set label text (mnemonics will be escaped) - virtual void SetLabelText(const wxString& text) - { - SetLabel(EscapeMnemonics(text)); - } - - // get just the text of the label, without mnemonic characters ('&') - virtual wxString GetLabelText() const { return GetLabelText(GetLabel()); } - - -#if wxUSE_MARKUP - // Set the label with markup (and mnemonics). Markup is a simple subset of - // HTML with tags such as , and . By default it is not - // supported i.e. all the markup is simply stripped and SetLabel() is - // called but some controls in some ports do support this already and in - // the future most of them should. - // - // Notice that, being HTML-like, markup also supports XML entities so '<' - // should be encoded as "<" and so on, a bare '<' in the input will - // likely result in an error. As an exception, a bare '&' is allowed and - // indicates that the next character is a mnemonic. To insert a literal '&' - // in the control you need to use "&" in the input string. - // - // Returns true if the label was set, even if the markup in it was ignored. - // False is only returned if we failed to parse the label. - bool SetLabelMarkup(const wxString& markup) - { - return DoSetLabelMarkup(markup); - } -#endif // wxUSE_MARKUP - - - // controls by default inherit the colours of their parents, if a - // particular control class doesn't want to do it, it can override - // ShouldInheritColours() to return false - virtual bool ShouldInheritColours() const wxOVERRIDE { return true; } - - - // WARNING: this doesn't work for all controls nor all platforms! - // - // simulates the event of given type (i.e. wxButton::Command() is just as - // if the button was clicked) - virtual void Command(wxCommandEvent &event); - - virtual bool SetFont(const wxFont& font) wxOVERRIDE; - - // wxControl-specific processing after processing the update event - virtual void DoUpdateWindowUI(wxUpdateUIEvent& event) wxOVERRIDE; - - wxSize GetSizeFromTextSize(int xlen, int ylen = -1) const - { return DoGetSizeFromTextSize(xlen, ylen); } - wxSize GetSizeFromTextSize(const wxSize& tsize) const - { return DoGetSizeFromTextSize(tsize.x, tsize.y); } - - - // static utilities for mnemonics char (&) handling - // ------------------------------------------------ - - // returns the given string without mnemonic characters ('&') - static wxString GetLabelText(const wxString& label); - - // returns the given string without mnemonic characters ('&') - // this function is identic to GetLabelText() and is provided for clarity - // and for symmetry with the wxStaticText::RemoveMarkup() function. - static wxString RemoveMnemonics(const wxString& str); - - // escapes (by doubling them) the mnemonics - static wxString EscapeMnemonics(const wxString& str); - - - // miscellaneous static utilities - // ------------------------------ - - // replaces parts of the given (multiline) string with an ellipsis if needed - static wxString Ellipsize(const wxString& label, const wxDC& dc, - wxEllipsizeMode mode, int maxWidth, - int flags = wxELLIPSIZE_FLAGS_DEFAULT); - - // return the accel index in the string or -1 if none and puts the modified - // string into second parameter if non NULL - static int FindAccelIndex(const wxString& label, - wxString *labelOnly = NULL); - - // this is a helper for the derived class GetClassDefaultAttributes() - // implementation: it returns the right colours for the classes which - // contain something else (e.g. wxListBox, wxTextCtrl, ...) instead of - // being simple controls (such as wxButton, wxCheckBox, ...) - static wxVisualAttributes - GetCompositeControlsDefaultAttributes(wxWindowVariant variant); - -protected: - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const wxOVERRIDE; - - // creates the control (calls wxWindowBase::CreateBase inside) and adds it - // to the list of parents children - bool CreateControl(wxWindowBase *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name); - -#if wxUSE_MARKUP - // This function may be overridden in the derived classes to implement - // support for labels with markup. The base class version simply strips the - // markup and calls SetLabel() with the remaining text. - virtual bool DoSetLabelMarkup(const wxString& markup); -#endif // wxUSE_MARKUP - - // override this to return the total control's size from a string size - virtual wxSize DoGetSizeFromTextSize(int xlen, int ylen = -1) const; - - // initialize the common fields of wxCommandEvent - void InitCommandEvent(wxCommandEvent& event) const; - - // Ellipsize() helper: - static wxString DoEllipsizeSingleLine(const wxString& label, const wxDC& dc, - wxEllipsizeMode mode, int maxWidth, - int replacementWidth); - -#if wxUSE_MARKUP - // Remove markup from the given string, returns empty string on error i.e. - // if markup was syntactically invalid. - static wxString RemoveMarkup(const wxString& markup); -#endif // wxUSE_MARKUP - - - // this field contains the label in wx format, i.e. with '&' mnemonics, - // as it was passed to the last SetLabel() call - wxString m_labelOrig; - - wxDECLARE_NO_COPY_CLASS(wxControlBase); -}; - -// ---------------------------------------------------------------------------- -// include platform-dependent wxControl declarations -// ---------------------------------------------------------------------------- - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/control.h" -#elif defined(__WXMSW__) - #include "wx/msw/control.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/control.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/control.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/control.h" -#elif defined(__WXMAC__) - #include "wx/osx/control.h" -#elif defined(__WXQT__) - #include "wx/qt/control.h" -#endif - -#endif // wxUSE_CONTROLS - -#endif - // _WX_CONTROL_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/convauto.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/convauto.h deleted file mode 100644 index 3da6c6ad..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/convauto.h +++ /dev/null @@ -1,155 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/convauto.h -// Purpose: wxConvAuto class declaration -// Author: Vadim Zeitlin -// Created: 2006-04-03 -// Copyright: (c) 2006 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CONVAUTO_H_ -#define _WX_CONVAUTO_H_ - -#include "wx/strconv.h" -#include "wx/fontenc.h" - -// ---------------------------------------------------------------------------- -// wxConvAuto: uses BOM to automatically detect input encoding -// ---------------------------------------------------------------------------- - -// All currently recognized BOM values. -enum wxBOM -{ - wxBOM_Unknown = -1, - wxBOM_None, - wxBOM_UTF32BE, - wxBOM_UTF32LE, - wxBOM_UTF16BE, - wxBOM_UTF16LE, - wxBOM_UTF8 -}; - -class WXDLLIMPEXP_BASE wxConvAuto : public wxMBConv -{ -public: - // default ctor, the real conversion will be created on demand - wxConvAuto(wxFontEncoding enc = wxFONTENCODING_DEFAULT) - { - Init(); - - m_encDefault = enc; - } - - // copy ctor doesn't initialize anything neither as conversion can only be - // deduced on first use - wxConvAuto(const wxConvAuto& other) : wxMBConv() - { - Init(); - - m_encDefault = other.m_encDefault; - } - - virtual ~wxConvAuto() - { - if ( m_ownsConv ) - delete m_conv; - } - - // get/set the fall-back encoding used when the input text doesn't have BOM - // and isn't UTF-8 - // - // special values are wxFONTENCODING_MAX meaning not to use any fall back - // at all (but just fail to convert in this case) and wxFONTENCODING_SYSTEM - // meaning to use the encoding of the system locale - static wxFontEncoding GetFallbackEncoding() { return ms_defaultMBEncoding; } - static void SetFallbackEncoding(wxFontEncoding enc); - static void DisableFallbackEncoding() - { - SetFallbackEncoding(wxFONTENCODING_MAX); - } - - - // override the base class virtual function(s) to use our m_conv - virtual size_t ToWChar(wchar_t *dst, size_t dstLen, - const char *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - - virtual size_t FromWChar(char *dst, size_t dstLen, - const wchar_t *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - - virtual size_t GetMBNulLen() const wxOVERRIDE { return m_conv->GetMBNulLen(); } - - virtual wxMBConv *Clone() const wxOVERRIDE { return new wxConvAuto(*this); } - - // return the BOM type of this buffer - static wxBOM DetectBOM(const char *src, size_t srcLen); - - // return the characters composing the given BOM. - static const char* GetBOMChars(wxBOM bomType, size_t* count); - - wxBOM GetBOM() const - { - return m_bomType; - } - -private: - // common part of all ctors - void Init() - { - // We don't initialize m_encDefault here as different ctors do it - // differently. - m_conv = NULL; - m_bomType = wxBOM_Unknown; - m_ownsConv = false; - m_consumedBOM = false; - } - - // initialize m_conv with the UTF-8 conversion - void InitWithUTF8() - { - m_conv = &wxConvUTF8; - m_ownsConv = false; - } - - // create the correct conversion object for the given BOM type - void InitFromBOM(wxBOM bomType); - - // create the correct conversion object for the BOM present in the - // beginning of the buffer - // - // return false if the buffer is too short to allow us to determine if we - // have BOM or not - bool InitFromInput(const char *src, size_t len); - - // adjust src and len to skip over the BOM (identified by m_bomType) at the - // start of the buffer - void SkipBOM(const char **src, size_t *len) const; - - - // fall-back multibyte encoding to use, may be wxFONTENCODING_SYSTEM or - // wxFONTENCODING_MAX but not wxFONTENCODING_DEFAULT - static wxFontEncoding ms_defaultMBEncoding; - - // conversion object which we really use, NULL until the first call to - // either ToWChar() or FromWChar() - wxMBConv *m_conv; - - // the multibyte encoding to use by default if input isn't Unicode - wxFontEncoding m_encDefault; - - // our BOM type - wxBOM m_bomType; - - // true if we allocated m_conv ourselves, false if we just use an existing - // global conversion - bool m_ownsConv; - - // true if we already skipped BOM when converting (and not just calculating - // the size) - bool m_consumedBOM; - - - wxDECLARE_NO_ASSIGN_CLASS(wxConvAuto); -}; - -#endif // _WX_CONVAUTO_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cpp.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cpp.h deleted file mode 100644 index 2c881c35..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cpp.h +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Name: wx/cpp.h - * Purpose: Various preprocessor helpers - * Author: Vadim Zeitlin - * Created: 2006-09-30 - * Copyright: (c) 2006 Vadim Zeitlin - * Licence: wxWindows licence - */ - -/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ - -#ifndef _WX_CPP_H_ -#define _WX_CPP_H_ - -#include "wx/compiler.h" /* wxCHECK_XXX_VERSION() macros */ - -/* wxCONCAT works like preprocessor ## operator but also works with macros */ -#define wxCONCAT_HELPER(text, line) text ## line - -#define wxCONCAT(x1, x2) \ - wxCONCAT_HELPER(x1, x2) -#define wxCONCAT3(x1, x2, x3) \ - wxCONCAT(wxCONCAT(x1, x2), x3) -#define wxCONCAT4(x1, x2, x3, x4) \ - wxCONCAT(wxCONCAT3(x1, x2, x3), x4) -#define wxCONCAT5(x1, x2, x3, x4, x5) \ - wxCONCAT(wxCONCAT4(x1, x2, x3, x4), x5) -#define wxCONCAT6(x1, x2, x3, x4, x5, x6) \ - wxCONCAT(wxCONCAT5(x1, x2, x3, x4, x5), x6) -#define wxCONCAT7(x1, x2, x3, x4, x5, x6, x7) \ - wxCONCAT(wxCONCAT6(x1, x2, x3, x4, x5, x6), x7) -#define wxCONCAT8(x1, x2, x3, x4, x5, x6, x7, x8) \ - wxCONCAT(wxCONCAT7(x1, x2, x3, x4, x5, x6, x7), x8) -#define wxCONCAT9(x1, x2, x3, x4, x5, x6, x7, x8, x9) \ - wxCONCAT(wxCONCAT8(x1, x2, x3, x4, x5, x6, x7, x8), x9) - -/* wxSTRINGIZE works as the preprocessor # operator but also works with macros */ -#define wxSTRINGIZE_HELPER(x) #x -#define wxSTRINGIZE(x) wxSTRINGIZE_HELPER(x) - -/* a Unicode-friendly version of wxSTRINGIZE_T */ -#define wxSTRINGIZE_T(x) wxAPPLY_T(wxSTRINGIZE(x)) - -/* - Special workarounds for compilers with broken "##" operator. For all the - other ones we can just use it directly. - */ -#ifdef wxCOMPILER_BROKEN_CONCAT_OPER - #define wxPREPEND_L(x) L ## x - #define wxAPPEND_i64(x) x ## i64 - #define wxAPPEND_ui64(x) x ## ui64 -#endif /* wxCOMPILER_BROKEN_CONCAT_OPER */ - -/* - Helper macros for wxMAKE_UNIQUE_NAME: normally this works by appending the - current line number to the given identifier to reduce the probability of the - conflict (it may still happen if this is used in the headers, hence you - should avoid doing it or provide unique prefixes then) but we have to do it - differently for VC++ - */ -#if defined(__VISUALC__) - /* - __LINE__ handling is completely broken in VC++ when using "Edit and - Continue" (/ZI option) and results in preprocessor errors if we use it - inside the macros. Luckily VC7 has another standard macro which can be - used like this and is even better than __LINE__ because it is globally - unique. - */ -# define wxCONCAT_LINE(text) wxCONCAT(text, __COUNTER__) -#else /* normal compilers */ -# define wxCONCAT_LINE(text) wxCONCAT(text, __LINE__) -#endif - -/* Create a "unique" name with the given prefix */ -#define wxMAKE_UNIQUE_NAME(text) wxCONCAT_LINE(text) - -/* - This macro can be passed as argument to another macro when you don't have - anything to pass in fact. - */ -#define wxEMPTY_PARAMETER_VALUE /* Fake macro parameter value */ - -/* - Helpers for defining macros that expand into a single statement. - - The standard solution is to use "do { ... } while (0)" statement but MSVC - generates a C4127 "condition expression is constant" warning for it so we - use something which is just complicated enough to not be recognized as a - constant but still simple enough to be optimized away. - - Another solution would be to use __pragma() to temporarily disable C4127. - - Notice that wxASSERT_ARG_TYPE in wx/strvargarg.h relies on these macros - creating some kind of a loop because it uses "break". - */ -#define wxSTATEMENT_MACRO_BEGIN do { -#define wxSTATEMENT_MACRO_END } while ( (void)0, 0 ) - -/* - Define __WXFUNCTION__ which is like standard __FUNCTION__ but defined as - NULL for the compilers which don't support the latter. - */ -#ifndef __WXFUNCTION__ - #if defined(__GNUC__) || \ - defined(__VISUALC__) || \ - defined(__FUNCTION__) - #define __WXFUNCTION__ __FUNCTION__ - #else - /* still define __WXFUNCTION__ to avoid #ifdefs elsewhere */ - #define __WXFUNCTION__ (NULL) - #endif -#endif /* __WXFUNCTION__ already defined */ - - -/* Auto-detect variadic macros support unless explicitly disabled. */ -#if !defined(HAVE_VARIADIC_MACROS) && !defined(wxNO_VARIADIC_MACROS) - /* Any C99 or C++11 compiler should have them. */ - #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - (defined(__cplusplus) && __cplusplus >= 201103L) - #define HAVE_VARIADIC_MACROS 1 - #elif defined(__GNUC__) - #define HAVE_VARIADIC_MACROS 1 - #elif wxCHECK_VISUALC_VERSION(8) - #define HAVE_VARIADIC_MACROS 1 - #endif -#endif /* !HAVE_VARIADIC_MACROS */ - - - -#ifdef HAVE_VARIADIC_MACROS - -/* - This is a hack to make it possible to use variadic macros with g++ 3.x even - when using -pedantic[-errors] option: without this, it would complain that - - "anonymous variadic macros were introduced in C99" - - and the option disabling this warning (-Wno-variadic-macros) is only - available in gcc 4.0 and later, so until then this hack is the only thing we - can do. - */ -#if defined(__GNUC__) && __GNUC__ == 3 - #pragma GCC system_header -#endif /* gcc-3.x */ - -/* - wxCALL_FOR_EACH(what, ...) calls the macro from its first argument, what(pos, x), - for every remaining argument 'x', with 'pos' being its 1-based index in - *reverse* order (with the last argument being numbered 1). - - For example, wxCALL_FOR_EACH(test, a, b, c) expands into this: - - test(3, a) \ - test(2, b) \ - test(1, c) - - Up to eight arguments are supported. - - (With thanks to https://groups.google.com/d/topic/comp.std.c/d-6Mj5Lko_s/discussion - and http://stackoverflow.com/questions/1872220/is-it-possible-to-iterate-over-arguments-in-variadic-macros) -*/ -#define wxCALL_FOR_EACH_NARG(...) wxCALL_FOR_EACH_NARG_((__VA_ARGS__, wxCALL_FOR_EACH_RSEQ_N())) -#define wxCALL_FOR_EACH_NARG_(args) wxCALL_FOR_EACH_ARG_N args -#define wxCALL_FOR_EACH_ARG_N(_1, _2, _3, _4, _5, _6, _7, _8, N, ...) N -#define wxCALL_FOR_EACH_RSEQ_N() 8, 7, 6, 5, 4, 3, 2, 1, 0 - -#define wxCALL_FOR_EACH_1_(args) wxCALL_FOR_EACH_1 args -#define wxCALL_FOR_EACH_2_(args) wxCALL_FOR_EACH_2 args -#define wxCALL_FOR_EACH_3_(args) wxCALL_FOR_EACH_3 args -#define wxCALL_FOR_EACH_4_(args) wxCALL_FOR_EACH_4 args -#define wxCALL_FOR_EACH_5_(args) wxCALL_FOR_EACH_5 args -#define wxCALL_FOR_EACH_6_(args) wxCALL_FOR_EACH_6 args -#define wxCALL_FOR_EACH_7_(args) wxCALL_FOR_EACH_7 args -#define wxCALL_FOR_EACH_8_(args) wxCALL_FOR_EACH_8 args - -#define wxCALL_FOR_EACH_1(what, x) what(1, x) -#define wxCALL_FOR_EACH_2(what, x, ...) what(2, x) wxCALL_FOR_EACH_1_((what, __VA_ARGS__)) -#define wxCALL_FOR_EACH_3(what, x, ...) what(3, x) wxCALL_FOR_EACH_2_((what, __VA_ARGS__)) -#define wxCALL_FOR_EACH_4(what, x, ...) what(4, x) wxCALL_FOR_EACH_3_((what, __VA_ARGS__)) -#define wxCALL_FOR_EACH_5(what, x, ...) what(5, x) wxCALL_FOR_EACH_4_((what, __VA_ARGS__)) -#define wxCALL_FOR_EACH_6(what, x, ...) what(6, x) wxCALL_FOR_EACH_5_((what, __VA_ARGS__)) -#define wxCALL_FOR_EACH_7(what, x, ...) what(7, x) wxCALL_FOR_EACH_6_((what, __VA_ARGS__)) -#define wxCALL_FOR_EACH_8(what, x, ...) what(8, x) wxCALL_FOR_EACH_7_((what, __VA_ARGS__)) - -#define wxCALL_FOR_EACH_(N, args) \ - wxCONCAT(wxCALL_FOR_EACH_, N) args - -#define wxCALL_FOR_EACH(what, ...) \ - wxCALL_FOR_EACH_(wxCALL_FOR_EACH_NARG(__VA_ARGS__), (what, __VA_ARGS__)) - -#else - #define wxCALL_FOR_EACH Error_wx_CALL_FOR_EACH_requires_variadic_macros_support -#endif /* HAVE_VARIADIC_MACROS */ - -#endif /* _WX_CPP_H_ */ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cppunit.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cppunit.h deleted file mode 100644 index 70ccd977..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cppunit.h +++ /dev/null @@ -1,260 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/cppunit.h -// Purpose: wrapper header for CppUnit headers -// Author: Vadim Zeitlin -// Created: 15.02.04 -// Copyright: (c) 2004 Vadim Zeitlin -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CPPUNIT_H_ -#define _WX_CPPUNIT_H_ - -/////////////////////////////////////////////////////////////////////////////// -// using CPPUNIT_TEST() macro results in this warning, disable it as there is -// no other way to get rid of it and it's not very useful anyhow -#ifdef __VISUALC__ - // typedef-name 'foo' used as synonym for class-name 'bar' - #pragma warning(disable:4097) - - // unreachable code: we don't care about warnings in CppUnit headers - #pragma warning(disable:4702) - - // 'id': identifier was truncated to 'num' characters in the debug info - #pragma warning(disable:4786) -#endif // __VISUALC__ - -#ifdef __BORLANDC__ - #pragma warn -8022 -#endif - -#ifndef CPPUNIT_STD_NEED_ALLOCATOR - #define CPPUNIT_STD_NEED_ALLOCATOR 0 -#endif - -/////////////////////////////////////////////////////////////////////////////// -// Set the default format for the errors, which can be used by an IDE to jump -// to the error location. This default gets overridden by the cppunit headers -// for some compilers (e.g. VC++). - -#ifndef CPPUNIT_COMPILER_LOCATION_FORMAT - #define CPPUNIT_COMPILER_LOCATION_FORMAT "%p:%l:" -#endif - - -/////////////////////////////////////////////////////////////////////////////// -// Include all needed cppunit headers. -// - -#include "wx/beforestd.h" -#ifdef __VISUALC__ - #pragma warning(push) - - // with cppunit 1.12 we get many bogus warnings 4701 (local variable may be - // used without having been initialized) in TestAssert.h - #pragma warning(disable:4701) - - // and also 4100 (unreferenced formal parameter) in extensions/ - // ExceptionTestCaseDecorator.h - #pragma warning(disable:4100) -#endif - -#include -#include -#include -#include -#include - -#ifdef __VISUALC__ - #pragma warning(pop) -#endif -#include "wx/afterstd.h" - -#include "wx/string.h" - - -/////////////////////////////////////////////////////////////////////////////// -// Set of helpful test macros. -// - -// Base macro for wrapping CPPUNIT_TEST macros and so making them conditional -// tests, meaning that the test only get registered and thus run when a given -// runtime condition is true. -// In case the condition is evaluated as false a skip message is logged -// (the message will only be shown in verbose mode). -#define WXTEST_ANY_WITH_CONDITION(suiteName, Condition, testMethod, anyTest) \ - if (Condition) \ - { anyTest; } \ - else \ - wxLogInfo(wxString::Format(wxT("skipping: %s.%s\n reason: %s equals false\n"), \ - wxString(suiteName, wxConvUTF8).c_str(), \ - wxString(#testMethod, wxConvUTF8).c_str(), \ - wxString(#Condition, wxConvUTF8).c_str())) - -// Conditional CPPUNIT_TEST macro. -#define WXTEST_WITH_CONDITION(suiteName, Condition, testMethod) \ - WXTEST_ANY_WITH_CONDITION(suiteName, Condition, testMethod, CPPUNIT_TEST(testMethod)) -// Conditional CPPUNIT_TEST_FAIL macro. -#define WXTEST_FAIL_WITH_CONDITION(suiteName, Condition, testMethod) \ - WXTEST_ANY_WITH_CONDITION(suiteName, Condition, testMethod, CPPUNIT_TEST_FAIL(testMethod)) - -CPPUNIT_NS_BEGIN - -// provide an overload of cppunit assertEquals(T, T) which can be used to -// compare wxStrings directly with C strings -inline void -assertEquals(const char *expected, - const char *actual, - CppUnit::SourceLine sourceLine, - const std::string& message) -{ - assertEquals(wxString(expected), wxString(actual), sourceLine, message); -} - -inline void -assertEquals(const char *expected, - const wxString& actual, - CppUnit::SourceLine sourceLine, - const std::string& message) -{ - assertEquals(wxString(expected), actual, sourceLine, message); -} - -inline void -assertEquals(const wxString& expected, - const char *actual, - CppUnit::SourceLine sourceLine, - const std::string& message) -{ - assertEquals(expected, wxString(actual), sourceLine, message); -} - -inline void -assertEquals(const wchar_t *expected, - const wxString& actual, - CppUnit::SourceLine sourceLine, - const std::string& message) -{ - assertEquals(wxString(expected), actual, sourceLine, message); -} - -inline void -assertEquals(const wxString& expected, - const wchar_t *actual, - CppUnit::SourceLine sourceLine, - const std::string& message) -{ - assertEquals(expected, wxString(actual), sourceLine, message); -} - -CPPUNIT_NS_END - -// define an assertEquals() overload for the given types, this is a helper used -// by WX_CPPUNIT_ALLOW_EQUALS_TO_INT() below -#define WX_CPPUNIT_ASSERT_EQUALS(T1, T2) \ - inline void \ - assertEquals(T1 expected, \ - T2 actual, \ - CppUnit::SourceLine sourceLine, \ - const std::string& message) \ - { \ - if ( !assertion_traits::equal(expected,actual) ) \ - { \ - Asserter::failNotEqual( assertion_traits::toString(expected), \ - assertion_traits::toString(actual), \ - sourceLine, \ - message ); \ - } \ - } - -// this macro allows us to specify (usually literal) ints as expected values -// for functions returning integral types different from "int" -#define WX_CPPUNIT_ALLOW_EQUALS_TO_INT(T) \ - CPPUNIT_NS_BEGIN \ - WX_CPPUNIT_ASSERT_EQUALS(int, T) \ - WX_CPPUNIT_ASSERT_EQUALS(T, int) \ - CPPUNIT_NS_END - -WX_CPPUNIT_ALLOW_EQUALS_TO_INT(long) -WX_CPPUNIT_ALLOW_EQUALS_TO_INT(short) -WX_CPPUNIT_ALLOW_EQUALS_TO_INT(unsigned) -WX_CPPUNIT_ALLOW_EQUALS_TO_INT(unsigned long) - -#if defined( __VMS ) && defined( __ia64 ) -WX_CPPUNIT_ALLOW_EQUALS_TO_INT(std::basic_streambuf::pos_type); -#endif - -#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG -WX_CPPUNIT_ALLOW_EQUALS_TO_INT(wxLongLong_t) -WX_CPPUNIT_ALLOW_EQUALS_TO_INT(unsigned wxLongLong_t) -#endif // wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - -// Use this macro to compare a wxArrayString with the pipe-separated elements -// of the given string -// -// NB: it's a macro and not a function to have the correct line numbers in the -// test failure messages -#define WX_ASSERT_STRARRAY_EQUAL(s, a) \ - { \ - wxArrayString expected(wxSplit(s, '|', '\0')); \ - \ - CPPUNIT_ASSERT_EQUAL( expected.size(), a.size() ); \ - \ - for ( size_t n = 0; n < a.size(); n++ ) \ - { \ - CPPUNIT_ASSERT_EQUAL( expected[n], a[n] ); \ - } \ - } - -// Use this macro to assert with the given formatted message (it should contain -// the format string and arguments in a separate pair of parentheses) -#define WX_ASSERT_MESSAGE(msg, cond) \ - CPPUNIT_ASSERT_MESSAGE(std::string(wxString::Format msg .mb_str()), (cond)) - -#define WX_ASSERT_EQUAL_MESSAGE(msg, expected, actual) \ - CPPUNIT_ASSERT_EQUAL_MESSAGE(std::string(wxString::Format msg .mb_str()), \ - (expected), (actual)) - -/////////////////////////////////////////////////////////////////////////////// -// define stream inserter for wxString if it's not defined in the main library, -// we need it to output the test failures involving wxString -#if !wxUSE_STD_IOSTREAM - -#include "wx/string.h" - -#include - -inline std::ostream& operator<<(std::ostream& o, const wxString& s) -{ -#if wxUSE_UNICODE - return o << (const char *)wxSafeConvertWX2MB(s.wc_str()); -#else - return o << s.c_str(); -#endif -} - -#endif // !wxUSE_STD_IOSTREAM - -/////////////////////////////////////////////////////////////////////////////// -// Some more compiler warning tweaking and auto linking. -// - -#ifdef __BORLANDC__ - #pragma warn .8022 -#endif - -#ifdef _MSC_VER - #pragma warning(default:4702) -#endif // _MSC_VER - -// for VC++ automatically link in cppunit library -#ifdef __VISUALC__ - #ifdef NDEBUG - #pragma comment(lib, "cppunit.lib") - #else // Debug - #pragma comment(lib, "cppunitd.lib") - #endif // Release/Debug -#endif - -#endif // _WX_CPPUNIT_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/crt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/crt.h deleted file mode 100644 index 9b939fd0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/crt.h +++ /dev/null @@ -1,22 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// Name: wx/crt.h -// Purpose: Header to include all headers with wrappers for CRT functions -// Author: Robert Roebling -// Created: 2007-05-30 -// Copyright: (c) 2007 wxWidgets dev team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CRT_H_ -#define _WX_CRT_H_ - -#include "wx/defs.h" - -// include wxChar type definition: -#include "wx/chartype.h" - -// and wrappers for CRT functions: -#include "wx/wxcrt.h" -#include "wx/wxcrtvararg.h" - -#endif // _WX_CRT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cshelp.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cshelp.h deleted file mode 100644 index c521d454..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cshelp.h +++ /dev/null @@ -1,256 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/cshelp.h -// Purpose: Context-sensitive help support classes -// Author: Julian Smart, Vadim Zeitlin -// Modified by: -// Created: 08/09/2000 -// Copyright: (c) 2000 Julian Smart, Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CSHELP_H_ -#define _WX_CSHELP_H_ - -#include "wx/defs.h" - -#if wxUSE_HELP - -#include "wx/help.h" - -#include "wx/hashmap.h" -#if wxUSE_BMPBUTTON -#include "wx/bmpbuttn.h" -#endif - -#include "wx/event.h" - -// ---------------------------------------------------------------------------- -// classes used to implement context help UI -// ---------------------------------------------------------------------------- - -/* - * wxContextHelp - * Invokes context-sensitive help. When the user - * clicks on a window, a wxEVT_HELP event will be sent to that - * window for the application to display help for. - */ - -class WXDLLIMPEXP_CORE wxContextHelp : public wxObject -{ -public: - wxContextHelp(wxWindow* win = NULL, bool beginHelp = true); - virtual ~wxContextHelp(); - - bool BeginContextHelp(wxWindow* win); - bool EndContextHelp(); - - bool EventLoop(); - bool DispatchEvent(wxWindow* win, const wxPoint& pt); - - void SetStatus(bool status) { m_status = status; } - -protected: - bool m_inHelp; - bool m_status; // true if the user left-clicked - -private: - wxDECLARE_DYNAMIC_CLASS(wxContextHelp); -}; - -#if wxUSE_BMPBUTTON -/* - * wxContextHelpButton - * You can add this to your dialogs (especially on non-Windows platforms) - * to put the application into context help mode. - */ - -class WXDLLIMPEXP_CORE wxContextHelpButton : public wxBitmapButton -{ -public: - wxContextHelpButton() {} - - wxContextHelpButton(wxWindow* parent, - wxWindowID id = wxID_CONTEXT_HELP, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxBU_AUTODRAW) - { - Create(parent, id, pos, size, style); - } - - - bool Create(wxWindow* parent, - wxWindowID id = wxID_CONTEXT_HELP, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxBU_AUTODRAW); - - - void OnContextHelp(wxCommandEvent& event); - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxContextHelpButton); - wxDECLARE_EVENT_TABLE(); -}; - -#endif - -// ---------------------------------------------------------------------------- -// classes used to implement context help support -// ---------------------------------------------------------------------------- - -// wxHelpProvider is an abstract class used by the program implementing context help to -// show the help text (or whatever: it may be HTML page or anything else) for -// the given window. -// -// The current help provider must be explicitly set by the application using -// wxHelpProvider::Set(). -// -// Special note about ShowHelpAtPoint() and ShowHelp(): we want to be able to -// override ShowHelpAtPoint() when we need to use different help messages for -// different parts of the window, but it should also be possible to override -// just ShowHelp() both for backwards compatibility and just because most -// often the help does not, in fact, depend on the position and so -// implementing just ShowHelp() is simpler and more natural, so by default -// ShowHelpAtPoint() forwards to ShowHelp(). But this means that -// wxSimpleHelpProvider has to override ShowHelp() and not ShowHelpAtPoint() -// for backwards compatibility as otherwise the existing code deriving from it -// and overriding ShowHelp() but calling the base class version wouldn't work -// any more, which forces us to use a rather ugly hack and pass the extra -// parameters of ShowHelpAtPoint() to ShowHelp() via member variables. -class WXDLLIMPEXP_CORE wxHelpProvider -{ -public: - // get/set the current (application-global) help provider (Set() returns - // the previous one) - static wxHelpProvider *Set(wxHelpProvider *helpProvider) - { - wxHelpProvider *helpProviderOld = ms_helpProvider; - ms_helpProvider = helpProvider; - return helpProviderOld; - } - - // unlike some other class, the help provider is not created on demand, - // this must be explicitly done by the application - static wxHelpProvider *Get() { return ms_helpProvider; } - - // get the help string (whose interpretation is help provider dependent - // except that empty string always means that no help is associated with - // the window) for this window - virtual wxString GetHelp(const wxWindowBase *window) = 0; - - // do show help for the given window (uses window->GetHelpAtPoint() - // internally if applicable), return true if it was done or false - // if no help available for this window - virtual bool ShowHelpAtPoint(wxWindowBase *window, - const wxPoint& pt, - wxHelpEvent::Origin origin) - { - wxCHECK_MSG( window, false, wxT("window must not be NULL") ); - - m_helptextAtPoint = pt; - m_helptextOrigin = origin; - - return ShowHelp(window); - } - - // show help for the given window, see ShowHelpAtPoint() above - virtual bool ShowHelp(wxWindowBase * WXUNUSED(window)) { return false; } - - // associate the text with the given window or id: although all help - // providers have these functions to allow making wxWindow::SetHelpText() - // work, not all of them implement them - virtual void AddHelp(wxWindowBase *window, const wxString& text); - - // this version associates the given text with all window with this id - // (may be used to set the same help string for all [Cancel] buttons in - // the application, for example) - virtual void AddHelp(wxWindowID id, const wxString& text); - - // removes the association - virtual void RemoveHelp(wxWindowBase* window); - - // virtual dtor for any base class - virtual ~wxHelpProvider(); - -protected: - wxHelpProvider() - : m_helptextAtPoint(wxDefaultPosition), - m_helptextOrigin(wxHelpEvent::Origin_Unknown) - { - } - - // helper method used by ShowHelp(): returns the help string to use by - // using m_helptextAtPoint/m_helptextOrigin if they're set or just GetHelp - // otherwise - wxString GetHelpTextMaybeAtPoint(wxWindowBase *window); - - - // parameters of the last ShowHelpAtPoint() call, used by ShowHelp() - wxPoint m_helptextAtPoint; - wxHelpEvent::Origin m_helptextOrigin; - -private: - static wxHelpProvider *ms_helpProvider; -}; - -WX_DECLARE_EXPORTED_HASH_MAP( wxUIntPtr, wxString, wxIntegerHash, - wxIntegerEqual, wxSimpleHelpProviderHashMap ); - -// wxSimpleHelpProvider is an implementation of wxHelpProvider which supports -// only plain text help strings and shows the string associated with the -// control (if any) in a tooltip -class WXDLLIMPEXP_CORE wxSimpleHelpProvider : public wxHelpProvider -{ -public: - // implement wxHelpProvider methods - virtual wxString GetHelp(const wxWindowBase *window) wxOVERRIDE; - - // override ShowHelp() and not ShowHelpAtPoint() as explained above - virtual bool ShowHelp(wxWindowBase *window) wxOVERRIDE; - - virtual void AddHelp(wxWindowBase *window, const wxString& text) wxOVERRIDE; - virtual void AddHelp(wxWindowID id, const wxString& text) wxOVERRIDE; - virtual void RemoveHelp(wxWindowBase* window) wxOVERRIDE; - -protected: - // we use 2 hashes for storing the help strings associated with windows - // and the ids - wxSimpleHelpProviderHashMap m_hashWindows, - m_hashIds; -}; - -// wxHelpControllerHelpProvider is an implementation of wxHelpProvider which supports -// both context identifiers and plain text help strings. If the help text is an integer, -// it is passed to wxHelpController::DisplayContextPopup. Otherwise, it shows the string -// in a tooltip as per wxSimpleHelpProvider. -class WXDLLIMPEXP_CORE wxHelpControllerHelpProvider : public wxSimpleHelpProvider -{ -public: - // Note that it doesn't own the help controller. The help controller - // should be deleted separately. - wxHelpControllerHelpProvider(wxHelpControllerBase* hc = NULL); - - // implement wxHelpProvider methods - - // again (see above): this should be ShowHelpAtPoint() but we need to - // override ShowHelp() to avoid breaking existing code - virtual bool ShowHelp(wxWindowBase *window) wxOVERRIDE; - - // Other accessors - void SetHelpController(wxHelpControllerBase* hc) { m_helpController = hc; } - wxHelpControllerBase* GetHelpController() const { return m_helpController; } - -protected: - wxHelpControllerBase* m_helpController; - - wxDECLARE_NO_COPY_CLASS(wxHelpControllerHelpProvider); -}; - -// Convenience function for turning context id into wxString -WXDLLIMPEXP_CORE wxString wxContextId(int id); - -#endif // wxUSE_HELP - -#endif // _WX_CSHELP_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ctrlsub.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ctrlsub.h deleted file mode 100644 index b934d237..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ctrlsub.h +++ /dev/null @@ -1,502 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/ctrlsub.h (read: "wxConTRoL with SUBitems") -// Purpose: wxControlWithItems interface -// Author: Vadim Zeitlin -// Modified by: -// Created: 22.10.99 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CTRLSUB_H_BASE_ -#define _WX_CTRLSUB_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_CONTROLS - -#include "wx/arrstr.h" -#include "wx/control.h" // base class - -#if wxUSE_STD_CONTAINERS_COMPATIBLY -#include -#endif // wxUSE_STD_CONTAINERS_COMPATIBLY - -// ---------------------------------------------------------------------------- -// wxItemContainer defines an interface which is implemented by all controls -// which have string subitems each of which may be selected. -// -// It is decomposed in wxItemContainerImmutable which omits all methods -// adding/removing items and is used by wxRadioBox and wxItemContainer itself. -// -// Examples: wxListBox, wxCheckListBox, wxChoice and wxComboBox (which -// implements an extended interface deriving from this one) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxItemContainerImmutable -{ -public: - wxItemContainerImmutable() { } - virtual ~wxItemContainerImmutable(); - - // accessing strings - // ----------------- - - virtual unsigned int GetCount() const = 0; - bool IsEmpty() const { return GetCount() == 0; } - - virtual wxString GetString(unsigned int n) const = 0; - wxArrayString GetStrings() const; - virtual void SetString(unsigned int n, const wxString& s) = 0; - - // finding string natively is either case sensitive or insensitive - // but never both so fall back to this base version for not - // supported search type - virtual int FindString(const wxString& s, bool bCase = false) const - { - unsigned int count = GetCount(); - - for ( unsigned int i = 0; i < count ; ++i ) - { - if (GetString(i).IsSameAs( s , bCase )) - return (int)i; - } - - return wxNOT_FOUND; - } - - - // selection - // --------- - - virtual void SetSelection(int n) = 0; - virtual int GetSelection() const = 0; - - // set selection to the specified string, return false if not found - bool SetStringSelection(const wxString& s); - - // return the selected string or empty string if none - virtual wxString GetStringSelection() const; - - // this is the same as SetSelection( for single-selection controls but - // reads better for multi-selection ones - void Select(int n) { SetSelection(n); } - - -protected: - // check that the index is valid - bool IsValid(unsigned int n) const { return n < GetCount(); } - bool IsValidInsert(unsigned int n) const { return n <= GetCount(); } -}; - -// ---------------------------------------------------------------------------- -// wxItemContainer extends wxItemContainerImmutable interface with methods -// for adding/removing items. -// -// Classes deriving from this one must override DoInsertItems() to implement -// adding items to the control. This can often be implemented more efficiently -// than simply looping over the elements and inserting them but if this is not -// the case, the generic DoInsertItemsInLoop can be used in implementation, but -// in this case DoInsertItem() needs to be overridden. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxItemContainer : public wxItemContainerImmutable -{ -private: - // AppendItems() and InsertItems() helpers just call DoAppend/InsertItems() - // after doing some checks - // - // NB: they're defined here so that they're inlined when used in public part - int AppendItems(const wxArrayStringsAdapter& items, - void **clientData, - wxClientDataType type) - { - if ( items.IsEmpty() ) - return wxNOT_FOUND; - - return DoAppendItems(items, clientData, type); - } - - int AppendItems(const wxArrayStringsAdapter& items) - { - return AppendItems(items, NULL, wxClientData_None); - } - - int AppendItems(const wxArrayStringsAdapter& items, void **clientData) - { - wxASSERT_MSG( GetClientDataType() != wxClientData_Object, - wxT("can't mix different types of client data") ); - - return AppendItems(items, clientData, wxClientData_Void); - } - - int AppendItems(const wxArrayStringsAdapter& items, - wxClientData **clientData) - { - wxASSERT_MSG( GetClientDataType() != wxClientData_Void, - wxT("can't mix different types of client data") ); - - return AppendItems(items, reinterpret_cast(clientData), - wxClientData_Object); - } - - int InsertItems(const wxArrayStringsAdapter& items, - unsigned int pos, - void **clientData, - wxClientDataType type) - { - wxASSERT_MSG( !IsSorted(), wxT("can't insert items in sorted control") ); - - wxCHECK_MSG( pos <= GetCount(), wxNOT_FOUND, - wxT("position out of range") ); - - // not all derived classes handle empty arrays correctly in - // DoInsertItems() and besides it really doesn't make much sense to do - // this (for append it could correspond to creating an initially empty - // control but why would anybody need to insert 0 items?) - wxCHECK_MSG( !items.IsEmpty(), wxNOT_FOUND, - wxT("need something to insert") ); - - return DoInsertItems(items, pos, clientData, type); - } - - int InsertItems(const wxArrayStringsAdapter& items, unsigned int pos) - { - return InsertItems(items, pos, NULL, wxClientData_None); - } - - int InsertItems(const wxArrayStringsAdapter& items, - unsigned int pos, - void **clientData) - { - wxASSERT_MSG( GetClientDataType() != wxClientData_Object, - wxT("can't mix different types of client data") ); - - return InsertItems(items, pos, clientData, wxClientData_Void); - } - - int InsertItems(const wxArrayStringsAdapter& items, - unsigned int pos, - wxClientData **clientData) - { - wxASSERT_MSG( GetClientDataType() != wxClientData_Void, - wxT("can't mix different types of client data") ); - - return InsertItems(items, pos, - reinterpret_cast(clientData), - wxClientData_Object); - } - -public: - wxItemContainer() { m_clientDataItemsType = wxClientData_None; } - virtual ~wxItemContainer(); - - // adding items - // ------------ - - // append single item, return its position in the control (which can be - // different from the last one if the control is sorted) - int Append(const wxString& item) - { return AppendItems(item); } - int Append(const wxString& item, void *clientData) - { return AppendItems(item, &clientData); } - int Append(const wxString& item, wxClientData *clientData) - { return AppendItems(item, &clientData); } - - // append several items at once to the control, return the position of the - // last item appended - int Append(const wxArrayString& items) - { return AppendItems(items); } - int Append(const wxArrayString& items, void **clientData) - { return AppendItems(items, clientData); } - int Append(const wxArrayString& items, wxClientData **clientData) - { return AppendItems(items, clientData); } - int Append(unsigned int n, const wxString *items) - { return AppendItems(wxArrayStringsAdapter(n, items)); } - int Append(unsigned int n, const wxString *items, void **clientData) - { return AppendItems(wxArrayStringsAdapter(n, items), clientData); } - int Append(unsigned int n, - const wxString *items, - wxClientData **clientData) - { return AppendItems(wxArrayStringsAdapter(n, items), clientData); } - -#if wxUSE_STD_CONTAINERS_COMPATIBLY - template - int Append(const std::vector& items) - { return AppendItems(items); } -#endif // wxUSE_STD_CONTAINERS_COMPATIBLY - - // only for RTTI needs (separate name) - void AppendString(const wxString& item) - { Append(item); } - - - // inserting items: not for sorted controls! - // ----------------------------------------- - - // insert single item at the given position, return its effective position - int Insert(const wxString& item, unsigned int pos) - { return InsertItems(item, pos); } - int Insert(const wxString& item, unsigned int pos, void *clientData) - { return InsertItems(item, pos, &clientData); } - int Insert(const wxString& item, unsigned int pos, wxClientData *clientData) - { return InsertItems(item, pos, &clientData); } - - // insert several items at once into the control, return the index of the - // last item inserted - int Insert(const wxArrayString& items, unsigned int pos) - { return InsertItems(items, pos); } - int Insert(const wxArrayString& items, unsigned int pos, void **clientData) - { return InsertItems(items, pos, clientData); } - int Insert(const wxArrayString& items, - unsigned int pos, - wxClientData **clientData) - { return InsertItems(items, pos, clientData); } - int Insert(unsigned int n, const wxString *items, unsigned int pos) - { return InsertItems(wxArrayStringsAdapter(n, items), pos); } - int Insert(unsigned int n, - const wxString *items, - unsigned int pos, - void **clientData) - { return InsertItems(wxArrayStringsAdapter(n, items), pos, clientData); } - int Insert(unsigned int n, - const wxString *items, - unsigned int pos, - wxClientData **clientData) - { return InsertItems(wxArrayStringsAdapter(n, items), pos, clientData); } - -#if wxUSE_STD_CONTAINERS_COMPATIBLY - template - int Insert(const std::vector& items, unsigned int pos) - { return InsertItems(items, pos); } -#endif // wxUSE_STD_CONTAINERS_COMPATIBLY - - // replacing items - // --------------- - - void Set(const wxArrayString& items) - { Clear(); Append(items); } - void Set(const wxArrayString& items, void **clientData) - { Clear(); Append(items, clientData); } - void Set(const wxArrayString& items, wxClientData **clientData) - { Clear(); Append(items, clientData); } - void Set(unsigned int n, const wxString *items) - { Clear(); Append(n, items); } - void Set(unsigned int n, const wxString *items, void **clientData) - { Clear(); Append(n, items, clientData); } - void Set(unsigned int n, const wxString *items, wxClientData **clientData) - { Clear(); Append(n, items, clientData); } - -#if wxUSE_STD_CONTAINERS_COMPATIBLY - template - void Set(const std::vector& items) - { Clear(); Append(items); } -#endif // wxUSE_STD_CONTAINERS_COMPATIBLY - - // deleting items - // -------------- - - virtual void Clear(); - void Delete(unsigned int pos); - - - // various accessors - // ----------------- - - // The control may maintain its items in a sorted order in which case - // items are automatically inserted at the right position when they are - // inserted or appended. Derived classes have to override this method if - // they implement sorting, typically by returning HasFlag(wxXX_SORT) - virtual bool IsSorted() const { return false; } - - - // client data stuff - // ----------------- - - void SetClientData(unsigned int n, void* clientData); - void* GetClientData(unsigned int n) const; - - // SetClientObject() takes ownership of the pointer, GetClientObject() - // returns it but keeps the ownership while DetachClientObject() expects - // the caller to delete the pointer and also resets the internally stored - // one to NULL for this item - void SetClientObject(unsigned int n, wxClientData* clientData); - wxClientData* GetClientObject(unsigned int n) const; - wxClientData* DetachClientObject(unsigned int n); - - // return the type of client data stored in this control: usually it just - // returns m_clientDataItemsType but must be overridden in the controls - // which delegate their client data storage to another one (e.g. wxChoice - // in wxUniv which stores data in wxListBox which it uses anyhow); don't - // forget to override SetClientDataType() if you override this one - // - // NB: for this to work no code should ever access m_clientDataItemsType - // directly but only via this function! - virtual wxClientDataType GetClientDataType() const - { return m_clientDataItemsType; } - - bool HasClientData() const - { return GetClientDataType() != wxClientData_None; } - bool HasClientObjectData() const - { return GetClientDataType() == wxClientData_Object; } - bool HasClientUntypedData() const - { return GetClientDataType() == wxClientData_Void; } - -protected: - // there is usually no need to override this method but you can do it if it - // is more convenient to only do "real" insertions in DoInsertItems() and - // to implement items appending here (in which case DoInsertItems() should - // call this method if pos == GetCount() as it can still be called in this - // case if public Insert() is called with such position) - virtual int DoAppendItems(const wxArrayStringsAdapter& items, - void **clientData, - wxClientDataType type) - { - return DoInsertItems(items, GetCount(), clientData, type); - } - - // this method must be implemented to insert the items into the control at - // position pos which can be GetCount() meaning that the items should be - // appended; for the sorted controls the position can be ignored - // - // the derived classes typically use AssignNewItemClientData() to - // associate the data with the items as they're being inserted - // - // the method should return the index of the position the last item was - // inserted into or wxNOT_FOUND if an error occurred - virtual int DoInsertItems(const wxArrayStringsAdapter & items, - unsigned int pos, - void **clientData, - wxClientDataType type) = 0; - - // before the client data is set for the first time for the control which - // hadn't had it before, DoInitItemClientData() is called which gives the - // derived class the possibility to initialize its client data storage only - // when client data is really used - virtual void DoInitItemClientData() { } - virtual void DoSetItemClientData(unsigned int n, void *clientData) = 0; - virtual void *DoGetItemClientData(unsigned int n) const = 0; - - virtual void DoClear() = 0; - virtual void DoDeleteOneItem(unsigned int pos) = 0; - - - // methods useful for the derived classes which don't have any better way - // of adding multiple items to the control than doing it one by one: such - // classes should call DoInsertItemsInLoop() from their DoInsert() and - // override DoInsertOneItem() to perform the real insertion - virtual int DoInsertOneItem(const wxString& item, unsigned int pos); - int DoInsertItemsInLoop(const wxArrayStringsAdapter& items, - unsigned int pos, - void **clientData, - wxClientDataType type); - - - // helper for DoInsertItems(): n is the index into clientData, pos is the - // position of the item in the control - void AssignNewItemClientData(unsigned int pos, - void **clientData, - unsigned int n, - wxClientDataType type); - - // free the client object associated with the item at given position and - // set it to NULL (must only be called if HasClientObjectData()) - void ResetItemClientObject(unsigned int n); - - // set the type of the client data stored in this control: override this if - // you override GetClientDataType() - virtual void SetClientDataType(wxClientDataType clientDataItemsType) - { - m_clientDataItemsType = clientDataItemsType; - } - -private: - // the type of the client data for the items - wxClientDataType m_clientDataItemsType; -}; - -// Inheriting directly from a wxWindow-derived class and wxItemContainer -// unfortunately introduces an ambiguity for all GetClientXXX() methods as they -// are inherited twice: the "global" versions from wxWindow and the per-item -// versions taking the index from wxItemContainer. -// -// So we need to explicitly resolve them and this helper template class is -// provided to do it. To use it, simply inherit from wxWindowWithItems instead of Window and Container interface directly. -template -class wxWindowWithItems : public W, public C -{ -public: - typedef W BaseWindowClass; - typedef C BaseContainerInterface; - - wxWindowWithItems() { } - - void SetClientData(void *data) - { BaseWindowClass::SetClientData(data); } - void *GetClientData() const - { return BaseWindowClass::GetClientData(); } - void SetClientObject(wxClientData *data) - { BaseWindowClass::SetClientObject(data); } - wxClientData *GetClientObject() const - { return BaseWindowClass::GetClientObject(); } - - void SetClientData(unsigned int n, void* clientData) - { wxItemContainer::SetClientData(n, clientData); } - void* GetClientData(unsigned int n) const - { return wxItemContainer::GetClientData(n); } - void SetClientObject(unsigned int n, wxClientData* clientData) - { wxItemContainer::SetClientObject(n, clientData); } - wxClientData* GetClientObject(unsigned int n) const - { return wxItemContainer::GetClientObject(n); } -}; - -class WXDLLIMPEXP_CORE wxControlWithItemsBase : - public wxWindowWithItems -{ -public: - wxControlWithItemsBase() { } - - // usually the controls like list/combo boxes have their own background - // colour - virtual bool ShouldInheritColours() const wxOVERRIDE { return false; } - - - // Implementation only from now on. - - // Generate an event of the given type for the selection change. - void SendSelectionChangedEvent(wxEventType eventType); - -protected: - // fill in the client object or data field of the event as appropriate - // - // calls InitCommandEvent() and, if n != wxNOT_FOUND, also sets the per - // item client data - void InitCommandEventWithItems(wxCommandEvent& event, int n); - -private: - wxDECLARE_NO_COPY_CLASS(wxControlWithItemsBase); -}; - -// define the platform-specific wxControlWithItems class -#if defined(__WXMSW__) - #include "wx/msw/ctrlsub.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/ctrlsub.h" -#elif defined(__WXQT__) - #include "wx/qt/ctrlsub.h" -#else - class WXDLLIMPEXP_CORE wxControlWithItems : public wxControlWithItemsBase - { - public: - wxControlWithItems() { } - - private: - wxDECLARE_ABSTRACT_CLASS(wxControlWithItems); - wxDECLARE_NO_COPY_CLASS(wxControlWithItems); - }; -#endif - -#endif // wxUSE_CONTROLS - -#endif // _WX_CTRLSUB_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cursor.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cursor.h deleted file mode 100644 index df0c5742..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/cursor.h +++ /dev/null @@ -1,113 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/cursor.h -// Purpose: wxCursor base header -// Author: Julian Smart, Vadim Zeitlin -// Created: -// Copyright: (c) Julian Smart -// (c) 2014 Vadim Zeitlin (wxCursorBase) -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CURSOR_H_BASE_ -#define _WX_CURSOR_H_BASE_ - -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" - -// Under most ports, wxCursor derives directly from wxGDIObject, but in wxMSW -// there is an intermediate wxGDIImage class. -#ifdef __WXMSW__ - #include "wx/msw/gdiimage.h" -#else - typedef wxGDIObject wxGDIImage; -#endif - -class WXDLLIMPEXP_CORE wxCursorBase : public wxGDIImage -{ -public: -/* - wxCursor classes should provide the following ctors: - - wxCursor(); - wxCursor(const wxImage& image); - wxCursor(const wxString& name, - wxBitmapType type = wxCURSOR_DEFAULT_TYPE, - int hotSpotX = 0, int hotSpotY = 0); - wxCursor(wxStockCursor id) { InitFromStock(id); } -#if WXWIN_COMPATIBILITY_2_8 - wxCursor(int id) { InitFromStock((wxStockCursor)id); } -#endif -*/ - - virtual wxPoint GetHotSpot() const { return wxDefaultPosition; } -}; - -#if defined(__WXMSW__) - #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_CUR_RESOURCE - #include "wx/msw/cursor.h" -#elif defined(__WXMOTIF__) - #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_XBM - #include "wx/motif/cursor.h" -#elif defined(__WXGTK20__) - #ifdef __WINDOWS__ - #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_CUR_RESOURCE - #else - #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_XPM - #endif - #include "wx/gtk/cursor.h" -#elif defined(__WXGTK__) - #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_XPM - #include "wx/gtk1/cursor.h" -#elif defined(__WXX11__) - #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_XPM - #include "wx/x11/cursor.h" -#elif defined(__WXDFB__) - #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_CUR_RESOURCE - #include "wx/dfb/cursor.h" -#elif defined(__WXMAC__) - #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_MACCURSOR_RESOURCE - #include "wx/osx/cursor.h" -#elif defined(__WXQT__) - #define wxCURSOR_DEFAULT_TYPE wxBITMAP_TYPE_CUR - #include "wx/qt/cursor.h" -#endif - -#include "wx/utils.h" - -/* This is a small class which can be used by all ports - to temporarily suspend the busy cursor. Useful in modal - dialogs. - - Actually that is not (any longer) quite true.. currently it is - only used in wxGTK Dialog::ShowModal() and now uses static - wxBusyCursor methods that are only implemented for wxGTK so far. - The BusyCursor handling code should probably be implemented in - common code somewhere instead of the separate implementations we - currently have. Also the name BusyCursorSuspender is a little - misleading since it doesn't actually suspend the BusyCursor, just - masks one that is already showing. - If another call to wxBeginBusyCursor is made while this is active - the Busy Cursor will again be shown. But at least now it doesn't - interfere with the state of wxIsBusy() -- RL - -*/ -class wxBusyCursorSuspender -{ -public: - wxBusyCursorSuspender() - { - if( wxIsBusy() ) - { - wxSetCursor( wxBusyCursor::GetStoredCursor() ); - } - } - ~wxBusyCursorSuspender() - { - if( wxIsBusy() ) - { - wxSetCursor( wxBusyCursor::GetBusyCursor() ); - } - } -}; -#endif - // _WX_CURSOR_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/custombgwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/custombgwin.h deleted file mode 100644 index 329589c7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/custombgwin.h +++ /dev/null @@ -1,56 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/custombgwin.h -// Purpose: Class adding support for custom window backgrounds. -// Author: Vadim Zeitlin -// Created: 2011-10-10 -// Copyright: (c) 2011 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CUSTOMBGWIN_H_ -#define _WX_CUSTOMBGWIN_H_ - -#include "wx/defs.h" - -class WXDLLIMPEXP_FWD_CORE wxBitmap; - -// ---------------------------------------------------------------------------- -// wxCustomBackgroundWindow: Adds support for custom backgrounds to any -// wxWindow-derived class. -// ---------------------------------------------------------------------------- - -class wxCustomBackgroundWindowBase -{ -public: - // Trivial default ctor. - wxCustomBackgroundWindowBase() { } - - // Also a trivial but virtual -- to suppress g++ warnings -- dtor. - virtual ~wxCustomBackgroundWindowBase() { } - - // Use the given bitmap to tile the background of this window. This bitmap - // will show through any transparent children. - // - // Notice that you must not prevent the base class EVT_ERASE_BACKGROUND - // handler from running (i.e. not to handle this event yourself) for this - // to work. - void SetBackgroundBitmap(const wxBitmap& bmp) - { - DoSetBackgroundBitmap(bmp); - } - -protected: - virtual void DoSetBackgroundBitmap(const wxBitmap& bmp) = 0; - - wxDECLARE_NO_COPY_CLASS(wxCustomBackgroundWindowBase); -}; - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/custombgwin.h" -#elif defined(__WXMSW__) - #include "wx/msw/custombgwin.h" -#else - #include "wx/generic/custombgwin.h" -#endif - -#endif // _WX_CUSTOMBGWIN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dataobj.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dataobj.h deleted file mode 100644 index 2caee942..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dataobj.h +++ /dev/null @@ -1,583 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/dataobj.h -// Purpose: common data object classes -// Author: Vadim Zeitlin, Robert Roebling -// Modified by: -// Created: 26.05.99 -// Copyright: (c) wxWidgets Team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DATAOBJ_H_BASE_ -#define _WX_DATAOBJ_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#include "wx/defs.h" - -#if wxUSE_DATAOBJ - -#include "wx/string.h" -#include "wx/bitmap.h" -#include "wx/list.h" -#include "wx/arrstr.h" - -// ============================================================================ -/* - Generic data transfer related classes. The class hierarchy is as follows: - - - wxDataObject- - / \ - / \ - wxDataObjectSimple wxDataObjectComposite - / | \ - / | \ - wxTextDataObject | wxBitmapDataObject - | - wxCustomDataObject - -*/ -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxDataFormat class is declared in platform-specific headers: it represents -// a format for data which may be either one of the standard ones (text, -// bitmap, ...) or a custom one which is then identified by a unique string. -// ---------------------------------------------------------------------------- - -/* the class interface looks like this (pseudo code): - -class wxDataFormat -{ -public: - typedef NativeFormat; - - wxDataFormat(NativeFormat format = wxDF_INVALID); - wxDataFormat(const wxString& format); - - wxDataFormat& operator=(NativeFormat format); - wxDataFormat& operator=(const wxDataFormat& format); - - bool operator==(NativeFormat format) const; - bool operator!=(NativeFormat format) const; - - void SetType(NativeFormat format); - NativeFormat GetType() const; - - wxString GetId() const; - void SetId(const wxString& format); -}; - -*/ - -#if defined(__WXMSW__) - #include "wx/msw/ole/dataform.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/dataform.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/dataform.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/dataform.h" -#elif defined(__WXX11__) - #include "wx/x11/dataform.h" -#elif defined(__WXMAC__) - #include "wx/osx/dataform.h" -#elif defined(__WXQT__) - #include "wx/qt/dataform.h" -#endif - -// the value for default argument to some functions (corresponds to -// wxDF_INVALID) -extern WXDLLIMPEXP_CORE const wxDataFormat& wxFormatInvalid; - -// ---------------------------------------------------------------------------- -// wxDataObject represents a piece of data which knows which formats it -// supports and knows how to render itself in each of them - GetDataHere(), -// and how to restore data from the buffer (SetData()). -// -// Although this class may be used directly (i.e. custom classes may be -// derived from it), in many cases it might be simpler to use either -// wxDataObjectSimple or wxDataObjectComposite classes. -// -// A data object may be "read only", i.e. support only GetData() functions or -// "read-write", i.e. support both GetData() and SetData() (in principle, it -// might be "write only" too, but this is rare). Moreover, it doesn't have to -// support the same formats in Get() and Set() directions: for example, a data -// object containing JPEG image might accept BMPs in GetData() because JPEG -// image may be easily transformed into BMP but not in SetData(). Accordingly, -// all methods dealing with formats take an additional "direction" argument -// which is either SET or GET and which tells the function if the format needs -// to be supported by SetData() or GetDataHere(). -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDataObjectBase -{ -public: - enum Direction - { - Get = 0x01, // format is supported by GetDataHere() - Set = 0x02, // format is supported by SetData() - Both = 0x03 // format is supported by both (unused currently) - }; - - // this class is polymorphic, hence it needs a virtual dtor - virtual ~wxDataObjectBase(); - - // get the best suited format for rendering our data - virtual wxDataFormat GetPreferredFormat(Direction dir = Get) const = 0; - - // get the number of formats we support - virtual size_t GetFormatCount(Direction dir = Get) const = 0; - - // return all formats in the provided array (of size GetFormatCount()) - virtual void GetAllFormats(wxDataFormat *formats, - Direction dir = Get) const = 0; - - // get the (total) size of data for the given format - virtual size_t GetDataSize(const wxDataFormat& format) const = 0; - - // copy raw data (in the specified format) to the provided buffer, return - // true if data copied successfully, false otherwise - virtual bool GetDataHere(const wxDataFormat& format, void *buf) const = 0; - - // get data from the buffer of specified length (in the given format), - // return true if the data was read successfully, false otherwise - virtual bool SetData(const wxDataFormat& WXUNUSED(format), - size_t WXUNUSED(len), const void * WXUNUSED(buf)) - { - return false; - } - - // returns true if this format is supported - bool IsSupported(const wxDataFormat& format, Direction dir = Get) const; -}; - -// ---------------------------------------------------------------------------- -// include the platform-specific declarations of wxDataObject -// ---------------------------------------------------------------------------- - -#if defined(__WXMSW__) - #include "wx/msw/ole/dataobj.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/dataobj.h" -#elif defined(__WXX11__) - #include "wx/x11/dataobj.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/dataobj.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/dataobj.h" -#elif defined(__WXMAC__) - #include "wx/osx/dataobj.h" -#elif defined(__WXQT__) - #include "wx/qt/dataobj.h" -#endif - -// ---------------------------------------------------------------------------- -// wxDataObjectSimple is a wxDataObject which only supports one format (in -// both Get and Set directions, but you may return false from GetDataHere() or -// SetData() if one of them is not supported). This is the simplest possible -// wxDataObject implementation. -// -// This is still an "abstract base class" (although it doesn't have any pure -// virtual functions), to use it you should derive from it and implement -// GetDataSize(), GetDataHere() and SetData() functions because the base class -// versions don't do anything - they just return "not implemented". -// -// This class should be used when you provide data in only one format (no -// conversion to/from other formats), either a standard or a custom one. -// Otherwise, you should use wxDataObjectComposite or wxDataObject directly. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDataObjectSimple : public wxDataObject -{ -public: - // ctor takes the format we support, but it can also be set later with - // SetFormat() - wxDataObjectSimple(const wxDataFormat& format = wxFormatInvalid) - : m_format(format) - { - } - - // get/set the format we support - const wxDataFormat& GetFormat() const { return m_format; } - void SetFormat(const wxDataFormat& format) { m_format = format; } - - // virtual functions to override in derived class (the base class versions - // just return "not implemented") - // ----------------------------------------------------------------------- - - // get the size of our data - virtual size_t GetDataSize() const - { return 0; } - - // copy our data to the buffer - virtual bool GetDataHere(void *WXUNUSED(buf)) const - { return false; } - - // copy data from buffer to our data - virtual bool SetData(size_t WXUNUSED(len), const void *WXUNUSED(buf)) - { return false; } - - // implement base class pure virtuals - // ---------------------------------- - virtual wxDataFormat GetPreferredFormat(wxDataObjectBase::Direction WXUNUSED(dir) = Get) const wxOVERRIDE - { return m_format; } - virtual size_t GetFormatCount(wxDataObjectBase::Direction WXUNUSED(dir) = Get) const wxOVERRIDE - { return 1; } - virtual void GetAllFormats(wxDataFormat *formats, - wxDataObjectBase::Direction WXUNUSED(dir) = Get) const wxOVERRIDE - { *formats = m_format; } - virtual size_t GetDataSize(const wxDataFormat& WXUNUSED(format)) const wxOVERRIDE - { return GetDataSize(); } - virtual bool GetDataHere(const wxDataFormat& WXUNUSED(format), - void *buf) const wxOVERRIDE - { return GetDataHere(buf); } - virtual bool SetData(const wxDataFormat& WXUNUSED(format), - size_t len, const void *buf) wxOVERRIDE - { return SetData(len, buf); } - -private: - // the one and only format we support - wxDataFormat m_format; - - wxDECLARE_NO_COPY_CLASS(wxDataObjectSimple); -}; - -// ---------------------------------------------------------------------------- -// wxDataObjectComposite is the simplest way to implement wxDataObject -// supporting multiple formats. It contains several wxDataObjectSimple and -// supports all formats supported by any of them. -// -// This class shouldn't be (normally) derived from, but may be used directly. -// If you need more flexibility than what it provides, you should probably use -// wxDataObject directly. -// ---------------------------------------------------------------------------- - -WX_DECLARE_EXPORTED_LIST(wxDataObjectSimple, wxSimpleDataObjectList); - -class WXDLLIMPEXP_CORE wxDataObjectComposite : public wxDataObject -{ -public: - // ctor - wxDataObjectComposite(); - virtual ~wxDataObjectComposite(); - - // add data object (it will be deleted by wxDataObjectComposite, hence it - // must be allocated on the heap) whose format will become the preferred - // one if preferred == true - void Add(wxDataObjectSimple *dataObject, bool preferred = false); - - // Report the format passed to the SetData method. This should be the - // format of the data object within the composite that received data from - // the clipboard or the DnD operation. You can use this method to find - // out what kind of data object was received. - wxDataFormat GetReceivedFormat() const; - - // Returns the pointer to the object which supports this format or NULL. - // The returned pointer is owned by wxDataObjectComposite and must - // therefore not be destroyed by the caller. - wxDataObjectSimple *GetObject(const wxDataFormat& format, - wxDataObjectBase::Direction dir = Get) const; - - // implement base class pure virtuals - // ---------------------------------- - virtual wxDataFormat GetPreferredFormat(wxDataObjectBase::Direction dir = Get) const wxOVERRIDE; - virtual size_t GetFormatCount(wxDataObjectBase::Direction dir = Get) const wxOVERRIDE; - virtual void GetAllFormats(wxDataFormat *formats, wxDataObjectBase::Direction dir = Get) const wxOVERRIDE; - virtual size_t GetDataSize(const wxDataFormat& format) const wxOVERRIDE; - virtual bool GetDataHere(const wxDataFormat& format, void *buf) const wxOVERRIDE; - virtual bool SetData(const wxDataFormat& format, size_t len, const void *buf) wxOVERRIDE; -#if defined(__WXMSW__) - virtual const void* GetSizeFromBuffer( const void* buffer, size_t* size, - const wxDataFormat& format ); - virtual void* SetSizeInBuffer( void* buffer, size_t size, - const wxDataFormat& format ); - virtual size_t GetBufferOffset( const wxDataFormat& format ); -#endif - -private: - // the list of all (simple) data objects whose formats we support - wxSimpleDataObjectList m_dataObjects; - - // the index of the preferred one (0 initially, so by default the first - // one is the preferred) - size_t m_preferred; - - wxDataFormat m_receivedFormat; - - wxDECLARE_NO_COPY_CLASS(wxDataObjectComposite); -}; - -// ============================================================================ -// Standard implementations of wxDataObjectSimple which can be used directly -// (i.e. without having to derive from them) for standard data type transfers. -// -// Note that although all of them can work with provided data, you can also -// override their virtual GetXXX() functions to only provide data on demand. -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxTextDataObject contains text data -// ---------------------------------------------------------------------------- - -#if wxUSE_UNICODE - #if defined(__WXGTK20__) || defined(__WXX11__) - #define wxNEEDS_UTF8_FOR_TEXT_DATAOBJ - #elif defined(__WXMAC__) - #define wxNEEDS_UTF16_FOR_TEXT_DATAOBJ - #endif -#endif // wxUSE_UNICODE - -class WXDLLIMPEXP_CORE wxHTMLDataObject : public wxDataObjectSimple -{ -public: - // ctor: you can specify the text here or in SetText(), or override - // GetText() - wxHTMLDataObject(const wxString& html = wxEmptyString) - : wxDataObjectSimple(wxDF_HTML), - m_html(html) - { - } - - // virtual functions which you may override if you want to provide text on - // demand only - otherwise, the trivial default versions will be used - virtual size_t GetLength() const { return m_html.Len() + 1; } - virtual wxString GetHTML() const { return m_html; } - virtual void SetHTML(const wxString& html) { m_html = html; } - - virtual size_t GetDataSize() const wxOVERRIDE; - virtual bool GetDataHere(void *buf) const wxOVERRIDE; - virtual bool SetData(size_t len, const void *buf) wxOVERRIDE; - - // Must provide overloads to avoid hiding them (and warnings about it) - virtual size_t GetDataSize(const wxDataFormat&) const wxOVERRIDE - { - return GetDataSize(); - } - virtual bool GetDataHere(const wxDataFormat&, void *buf) const wxOVERRIDE - { - return GetDataHere(buf); - } - virtual bool SetData(const wxDataFormat&, size_t len, const void *buf) wxOVERRIDE - { - return SetData(len, buf); - } - -private: - wxString m_html; -}; - -class WXDLLIMPEXP_CORE wxTextDataObject : public wxDataObjectSimple -{ -public: - // ctor: you can specify the text here or in SetText(), or override - // GetText() - wxTextDataObject(const wxString& text = wxEmptyString) - : wxDataObjectSimple( -#if wxUSE_UNICODE - wxDF_UNICODETEXT -#else - wxDF_TEXT -#endif - ), - m_text(text) - { - } - - // virtual functions which you may override if you want to provide text on - // demand only - otherwise, the trivial default versions will be used - virtual size_t GetTextLength() const { return m_text.Len() + 1; } - virtual wxString GetText() const { return m_text; } - virtual void SetText(const wxString& text) { m_text = text; } - - // implement base class pure virtuals - // ---------------------------------- - - // some platforms have 2 and not 1 format for text data -#if defined(wxNEEDS_UTF8_FOR_TEXT_DATAOBJ) || defined(wxNEEDS_UTF16_FOR_TEXT_DATAOBJ) - virtual size_t GetFormatCount(Direction WXUNUSED(dir) = Get) const wxOVERRIDE { return 2; } - virtual void GetAllFormats(wxDataFormat *formats, - wxDataObjectBase::Direction WXUNUSED(dir) = Get) const wxOVERRIDE; - - virtual size_t GetDataSize() const wxOVERRIDE { return GetDataSize(GetPreferredFormat()); } - virtual bool GetDataHere(void *buf) const wxOVERRIDE { return GetDataHere(GetPreferredFormat(), buf); } - virtual bool SetData(size_t len, const void *buf) wxOVERRIDE { return SetData(GetPreferredFormat(), len, buf); } - - size_t GetDataSize(const wxDataFormat& format) const wxOVERRIDE; - bool GetDataHere(const wxDataFormat& format, void *pBuf) const wxOVERRIDE; - bool SetData(const wxDataFormat& format, size_t nLen, const void* pBuf) wxOVERRIDE; -#else // !wxNEEDS_UTF{8,16}_FOR_TEXT_DATAOBJ - virtual size_t GetDataSize() const; - virtual bool GetDataHere(void *buf) const; - virtual bool SetData(size_t len, const void *buf); - // Must provide overloads to avoid hiding them (and warnings about it) - virtual size_t GetDataSize(const wxDataFormat&) const - { - return GetDataSize(); - } - virtual bool GetDataHere(const wxDataFormat&, void *buf) const - { - return GetDataHere(buf); - } - virtual bool SetData(const wxDataFormat&, size_t len, const void *buf) - { - return SetData(len, buf); - } -#endif // different wxTextDataObject implementations - -private: - wxString m_text; - - wxDECLARE_NO_COPY_CLASS(wxTextDataObject); -}; - -// ---------------------------------------------------------------------------- -// wxBitmapDataObject contains a bitmap -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxBitmapDataObjectBase : public wxDataObjectSimple -{ -public: - // ctor: you can specify the bitmap here or in SetBitmap(), or override - // GetBitmap() - wxBitmapDataObjectBase(const wxBitmap& bitmap = wxNullBitmap) - : wxDataObjectSimple(wxDF_BITMAP), m_bitmap(bitmap) - { - } - - // virtual functions which you may override if you want to provide data on - // demand only - otherwise, the trivial default versions will be used - virtual wxBitmap GetBitmap() const { return m_bitmap; } - virtual void SetBitmap(const wxBitmap& bitmap) { m_bitmap = bitmap; } - -protected: - wxBitmap m_bitmap; - - wxDECLARE_NO_COPY_CLASS(wxBitmapDataObjectBase); -}; - -// ---------------------------------------------------------------------------- -// wxFileDataObject contains a list of filenames -// -// NB: notice that this is a "write only" object, it can only be filled with -// data from drag and drop operation. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFileDataObjectBase : public wxDataObjectSimple -{ -public: - // ctor: use AddFile() later to fill the array - wxFileDataObjectBase() : wxDataObjectSimple(wxDF_FILENAME) { } - - // get a reference to our array - const wxArrayString& GetFilenames() const { return m_filenames; } - -protected: - wxArrayString m_filenames; - - wxDECLARE_NO_COPY_CLASS(wxFileDataObjectBase); -}; - -// ---------------------------------------------------------------------------- -// wxCustomDataObject contains arbitrary untyped user data. -// -// It is understood that this data can be copied bitwise. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxCustomDataObject : public wxDataObjectSimple -{ -public: - // if you don't specify the format in the ctor, you can still use - // SetFormat() later - wxCustomDataObject(const wxDataFormat& format = wxFormatInvalid); - - // the dtor calls Free() - virtual ~wxCustomDataObject(); - - // you can call SetData() to set m_data: it will make a copy of the data - // you pass - or you can use TakeData() which won't copy anything, but - // will take ownership of data (i.e. will call Free() on it later) - void TakeData(size_t size, void *data); - - // this function is called to allocate "size" bytes of memory from - // SetData(). The default version uses operator new[]. - virtual void *Alloc(size_t size); - - // this function is called when the data is freed, you may override it to - // anything you want (or may be nothing at all). The default version calls - // operator delete[] on m_data - virtual void Free(); - - // get data: you may override these functions if you wish to provide data - // only when it's requested - virtual size_t GetSize() const { return m_size; } - virtual void *GetData() const { return m_data; } - - // implement base class pure virtuals - // ---------------------------------- - virtual size_t GetDataSize() const wxOVERRIDE; - virtual bool GetDataHere(void *buf) const wxOVERRIDE; - virtual bool SetData(size_t size, const void *buf) wxOVERRIDE; - // Must provide overloads to avoid hiding them (and warnings about it) - virtual size_t GetDataSize(const wxDataFormat&) const wxOVERRIDE - { - return GetDataSize(); - } - virtual bool GetDataHere(const wxDataFormat&, void *buf) const wxOVERRIDE - { - return GetDataHere(buf); - } - virtual bool SetData(const wxDataFormat&, size_t len, const void *buf) wxOVERRIDE - { - return SetData(len, buf); - } - -private: - size_t m_size; - void *m_data; - - wxDECLARE_NO_COPY_CLASS(wxCustomDataObject); -}; - -// ---------------------------------------------------------------------------- -// include platform-specific declarations of wxXXXBase classes -// ---------------------------------------------------------------------------- - -#if defined(__WXMSW__) - #include "wx/msw/ole/dataobj2.h" - // wxURLDataObject defined in msw/ole/dataobj2.h -#elif defined(__WXGTK20__) - #include "wx/gtk/dataobj2.h" - // wxURLDataObject defined in msw/ole/dataobj2.h - -#else - #if defined(__WXGTK__) - #include "wx/gtk1/dataobj2.h" - #elif defined(__WXX11__) - #include "wx/x11/dataobj2.h" - #elif defined(__WXMOTIF__) - #include "wx/motif/dataobj2.h" - #elif defined(__WXMAC__) - #include "wx/osx/dataobj2.h" - #elif defined(__WXQT__) - #include "wx/qt/dataobj2.h" - #endif - - // wxURLDataObject is simply wxTextDataObject with a different name - class WXDLLIMPEXP_CORE wxURLDataObject : public wxTextDataObject - { - public: - wxURLDataObject(const wxString& url = wxEmptyString) - : wxTextDataObject(url) - { - } - - wxString GetURL() const { return GetText(); } - void SetURL(const wxString& url) { SetText(url); } - }; -#endif - -#endif // wxUSE_DATAOBJ - -#endif // _WX_DATAOBJ_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dataview.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dataview.h deleted file mode 100644 index 8364cdbd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dataview.h +++ /dev/null @@ -1,1374 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dataview.h -// Purpose: wxDataViewCtrl base classes -// Author: Robert Roebling -// Modified by: Bo Yang -// Created: 08.01.06 -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DATAVIEW_H_BASE_ -#define _WX_DATAVIEW_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_DATAVIEWCTRL - -#include "wx/textctrl.h" -#include "wx/headercol.h" -#include "wx/variant.h" -#include "wx/dnd.h" // For wxDragResult declaration only. -#include "wx/dynarray.h" -#include "wx/icon.h" -#include "wx/itemid.h" -#include "wx/weakref.h" -#include "wx/vector.h" -#include "wx/dataobj.h" -#include "wx/withimages.h" -#include "wx/systhemectrl.h" - -class WXDLLIMPEXP_FWD_CORE wxImageList; - -#if !(defined(__WXGTK20__) || defined(__WXOSX__) ) || defined(__WXUNIVERSAL__) -// #if !(defined(__WXOSX__)) || defined(__WXUNIVERSAL__) - #define wxHAS_GENERIC_DATAVIEWCTRL -#endif - -#ifdef wxHAS_GENERIC_DATAVIEWCTRL - // this symbol doesn't follow the convention for wxUSE_XXX symbols which - // are normally always defined as either 0 or 1, so its use is deprecated - // and it only exists for backwards compatibility, don't use it any more - // and use wxHAS_GENERIC_DATAVIEWCTRL instead - #define wxUSE_GENERICDATAVIEWCTRL -#endif - -// ---------------------------------------------------------------------------- -// wxDataViewCtrl globals -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_ADV wxDataViewModel; -class WXDLLIMPEXP_FWD_ADV wxDataViewCtrl; -class WXDLLIMPEXP_FWD_ADV wxDataViewColumn; -class WXDLLIMPEXP_FWD_ADV wxDataViewRenderer; -class WXDLLIMPEXP_FWD_ADV wxDataViewModelNotifier; - -extern WXDLLIMPEXP_DATA_ADV(const char) wxDataViewCtrlNameStr[]; - -// ---------------------------------------------------------------------------- -// wxDataViewCtrl flags -// ---------------------------------------------------------------------------- - -// size of a wxDataViewRenderer without contents: -#define wxDVC_DEFAULT_RENDERER_SIZE 20 - -// the default width of new (text) columns: -#define wxDVC_DEFAULT_WIDTH 80 - -// the default width of new toggle columns: -#define wxDVC_TOGGLE_DEFAULT_WIDTH 30 - -// the default minimal width of the columns: -#define wxDVC_DEFAULT_MINWIDTH 30 - -// The default alignment of wxDataViewRenderers is to take -// the alignment from the column it owns. -#define wxDVR_DEFAULT_ALIGNMENT -1 - - -// --------------------------------------------------------- -// wxDataViewItem -// --------------------------------------------------------- - -// Make it a class and not a typedef to allow forward declaring it. -class wxDataViewItem : public wxItemId -{ -public: - wxDataViewItem() : wxItemId() { } - wxEXPLICIT wxDataViewItem(void* pItem) : wxItemId(pItem) { } -}; - -WX_DEFINE_ARRAY(wxDataViewItem, wxDataViewItemArray); - -// --------------------------------------------------------- -// wxDataViewModelNotifier -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewModelNotifier -{ -public: - wxDataViewModelNotifier() { m_owner = NULL; } - virtual ~wxDataViewModelNotifier() { m_owner = NULL; } - - virtual bool ItemAdded( const wxDataViewItem &parent, const wxDataViewItem &item ) = 0; - virtual bool ItemDeleted( const wxDataViewItem &parent, const wxDataViewItem &item ) = 0; - virtual bool ItemChanged( const wxDataViewItem &item ) = 0; - virtual bool ItemsAdded( const wxDataViewItem &parent, const wxDataViewItemArray &items ); - virtual bool ItemsDeleted( const wxDataViewItem &parent, const wxDataViewItemArray &items ); - virtual bool ItemsChanged( const wxDataViewItemArray &items ); - virtual bool ValueChanged( const wxDataViewItem &item, unsigned int col ) = 0; - virtual bool Cleared() = 0; - - // some platforms, such as GTK+, may need a two step procedure for ::Reset() - virtual bool BeforeReset() { return true; } - virtual bool AfterReset() { return Cleared(); } - - virtual void Resort() = 0; - - void SetOwner( wxDataViewModel *owner ) { m_owner = owner; } - wxDataViewModel *GetOwner() const { return m_owner; } - -private: - wxDataViewModel *m_owner; -}; - - - -// ---------------------------------------------------------------------------- -// wxDataViewItemAttr: a structure containing the visual attributes of an item -// ---------------------------------------------------------------------------- - -// TODO: this should be renamed to wxItemAttr or something general like this - -class WXDLLIMPEXP_ADV wxDataViewItemAttr -{ -public: - // ctors - wxDataViewItemAttr() - { - m_bold = false; - m_italic = false; - } - - // setters - void SetColour(const wxColour& colour) { m_colour = colour; } - void SetBold( bool set ) { m_bold = set; } - void SetItalic( bool set ) { m_italic = set; } - void SetBackgroundColour(const wxColour& colour) { m_bgColour = colour; } - - // accessors - bool HasColour() const { return m_colour.IsOk(); } - const wxColour& GetColour() const { return m_colour; } - - bool HasFont() const { return m_bold || m_italic; } - bool GetBold() const { return m_bold; } - bool GetItalic() const { return m_italic; } - - bool HasBackgroundColour() const { return m_bgColour.IsOk(); } - const wxColour& GetBackgroundColour() const { return m_bgColour; } - - bool IsDefault() const { return !(HasColour() || HasFont() || HasBackgroundColour()); } - - // Return the font based on the given one with this attribute applied to it. - wxFont GetEffectiveFont(const wxFont& font) const; - -private: - wxColour m_colour; - bool m_bold; - bool m_italic; - wxColour m_bgColour; -}; - - -// --------------------------------------------------------- -// wxDataViewModel -// --------------------------------------------------------- - -WX_DECLARE_LIST_WITH_DECL(wxDataViewModelNotifier, wxDataViewModelNotifiers, - class WXDLLIMPEXP_ADV); - -class WXDLLIMPEXP_ADV wxDataViewModel: public wxRefCounter -{ -public: - wxDataViewModel(); - - virtual unsigned int GetColumnCount() const = 0; - - // return type as reported by wxVariant - virtual wxString GetColumnType( unsigned int col ) const = 0; - - // get value into a wxVariant - virtual void GetValue( wxVariant &variant, - const wxDataViewItem &item, unsigned int col ) const = 0; - - // return true if the given item has a value to display in the given - // column: this is always true except for container items which by default - // only show their label in the first column (but see HasContainerColumns()) - bool HasValue(const wxDataViewItem& item, unsigned col) const - { - return col == 0 || !IsContainer(item) || HasContainerColumns(item); - } - - // usually ValueChanged() should be called after changing the value in the - // model to update the control, ChangeValue() does it on its own while - // SetValue() does not -- so while you will override SetValue(), you should - // be usually calling ChangeValue() - virtual bool SetValue(const wxVariant &variant, - const wxDataViewItem &item, - unsigned int col) = 0; - - bool ChangeValue(const wxVariant& variant, - const wxDataViewItem& item, - unsigned int col) - { - return SetValue(variant, item, col) && ValueChanged(item, col); - } - - // Get text attribute, return false of default attributes should be used - virtual bool GetAttr(const wxDataViewItem &WXUNUSED(item), - unsigned int WXUNUSED(col), - wxDataViewItemAttr &WXUNUSED(attr)) const - { - return false; - } - - // Override this if you want to disable specific items - virtual bool IsEnabled(const wxDataViewItem &WXUNUSED(item), - unsigned int WXUNUSED(col)) const - { - return true; - } - - // define hierarchy - virtual wxDataViewItem GetParent( const wxDataViewItem &item ) const = 0; - virtual bool IsContainer( const wxDataViewItem &item ) const = 0; - // Is the container just a header or an item with all columns - virtual bool HasContainerColumns(const wxDataViewItem& WXUNUSED(item)) const - { return false; } - virtual unsigned int GetChildren( const wxDataViewItem &item, wxDataViewItemArray &children ) const = 0; - - // delegated notifiers - bool ItemAdded( const wxDataViewItem &parent, const wxDataViewItem &item ); - bool ItemsAdded( const wxDataViewItem &parent, const wxDataViewItemArray &items ); - bool ItemDeleted( const wxDataViewItem &parent, const wxDataViewItem &item ); - bool ItemsDeleted( const wxDataViewItem &parent, const wxDataViewItemArray &items ); - bool ItemChanged( const wxDataViewItem &item ); - bool ItemsChanged( const wxDataViewItemArray &items ); - bool ValueChanged( const wxDataViewItem &item, unsigned int col ); - bool Cleared(); - - // some platforms, such as GTK+, may need a two step procedure for ::Reset() - bool BeforeReset(); - bool AfterReset(); - - - // delegated action - virtual void Resort(); - - void AddNotifier( wxDataViewModelNotifier *notifier ); - void RemoveNotifier( wxDataViewModelNotifier *notifier ); - - // default compare function - virtual int Compare( const wxDataViewItem &item1, const wxDataViewItem &item2, - unsigned int column, bool ascending ) const; - virtual bool HasDefaultCompare() const { return false; } - - // internal - virtual bool IsListModel() const { return false; } - virtual bool IsVirtualListModel() const { return false; } - -protected: - // the user should not delete this class directly: he should use DecRef() instead! - virtual ~wxDataViewModel() { } - - wxDataViewModelNotifiers m_notifiers; -}; - -// ---------------------------------------------------------------------------- -// wxDataViewListModel: a model of a list, i.e. flat data structure without any -// branches/containers, used as base class by wxDataViewIndexListModel and -// wxDataViewVirtualListModel -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewListModel : public wxDataViewModel -{ -public: - // derived classes should override these methods instead of - // {Get,Set}Value() and GetAttr() inherited from the base class - - virtual void GetValueByRow(wxVariant &variant, - unsigned row, unsigned col) const = 0; - - virtual bool SetValueByRow(const wxVariant &variant, - unsigned row, unsigned col) = 0; - - virtual bool - GetAttrByRow(unsigned WXUNUSED(row), unsigned WXUNUSED(col), - wxDataViewItemAttr &WXUNUSED(attr)) const - { - return false; - } - - virtual bool IsEnabledByRow(unsigned int WXUNUSED(row), - unsigned int WXUNUSED(col)) const - { - return true; - } - - - // helper methods provided by list models only - virtual unsigned GetRow( const wxDataViewItem &item ) const = 0; - - // returns the number of rows - virtual unsigned int GetCount() const = 0; - - // implement some base class pure virtual directly - virtual wxDataViewItem - GetParent( const wxDataViewItem & WXUNUSED(item) ) const wxOVERRIDE - { - // items never have valid parent in this model - return wxDataViewItem(); - } - - virtual bool IsContainer( const wxDataViewItem &item ) const wxOVERRIDE - { - // only the invisible (and invalid) root item has children - return !item.IsOk(); - } - - // and implement some others by forwarding them to our own ones - virtual void GetValue( wxVariant &variant, - const wxDataViewItem &item, unsigned int col ) const wxOVERRIDE - { - GetValueByRow(variant, GetRow(item), col); - } - - virtual bool SetValue( const wxVariant &variant, - const wxDataViewItem &item, unsigned int col ) wxOVERRIDE - { - return SetValueByRow( variant, GetRow(item), col ); - } - - virtual bool GetAttr(const wxDataViewItem &item, unsigned int col, - wxDataViewItemAttr &attr) const wxOVERRIDE - { - return GetAttrByRow( GetRow(item), col, attr ); - } - - virtual bool IsEnabled(const wxDataViewItem &item, unsigned int col) const wxOVERRIDE - { - return IsEnabledByRow( GetRow(item), col ); - } - - - virtual bool IsListModel() const wxOVERRIDE { return true; } -}; - -// --------------------------------------------------------- -// wxDataViewIndexListModel -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewIndexListModel: public wxDataViewListModel -{ -public: - wxDataViewIndexListModel( unsigned int initial_size = 0 ); - - void RowPrepended(); - void RowInserted( unsigned int before ); - void RowAppended(); - void RowDeleted( unsigned int row ); - void RowsDeleted( const wxArrayInt &rows ); - void RowChanged( unsigned int row ); - void RowValueChanged( unsigned int row, unsigned int col ); - void Reset( unsigned int new_size ); - - // convert to/from row/wxDataViewItem - - virtual unsigned GetRow( const wxDataViewItem &item ) const wxOVERRIDE; - wxDataViewItem GetItem( unsigned int row ) const; - - // implement base methods - virtual unsigned int GetChildren( const wxDataViewItem &item, wxDataViewItemArray &children ) const wxOVERRIDE; - - unsigned int GetCount() const wxOVERRIDE { return m_hash.GetCount(); } - -private: - wxDataViewItemArray m_hash; - unsigned int m_nextFreeID; - bool m_ordered; -}; - -// --------------------------------------------------------- -// wxDataViewVirtualListModel -// --------------------------------------------------------- - -#ifdef __WXMAC__ -// better than nothing -typedef wxDataViewIndexListModel wxDataViewVirtualListModel; -#else - -class WXDLLIMPEXP_ADV wxDataViewVirtualListModel: public wxDataViewListModel -{ -public: - wxDataViewVirtualListModel( unsigned int initial_size = 0 ); - - void RowPrepended(); - void RowInserted( unsigned int before ); - void RowAppended(); - void RowDeleted( unsigned int row ); - void RowsDeleted( const wxArrayInt &rows ); - void RowChanged( unsigned int row ); - void RowValueChanged( unsigned int row, unsigned int col ); - void Reset( unsigned int new_size ); - - // convert to/from row/wxDataViewItem - - virtual unsigned GetRow( const wxDataViewItem &item ) const wxOVERRIDE; - wxDataViewItem GetItem( unsigned int row ) const; - - // compare based on index - - virtual int Compare( const wxDataViewItem &item1, const wxDataViewItem &item2, - unsigned int column, bool ascending ) const wxOVERRIDE; - virtual bool HasDefaultCompare() const wxOVERRIDE; - - // implement base methods - virtual unsigned int GetChildren( const wxDataViewItem &item, wxDataViewItemArray &children ) const wxOVERRIDE; - - unsigned int GetCount() const wxOVERRIDE { return m_size; } - - // internal - virtual bool IsVirtualListModel() const wxOVERRIDE { return true; } - -private: - unsigned int m_size; -}; -#endif - -// ---------------------------------------------------------------------------- -// wxDataViewRenderer and related classes -// ---------------------------------------------------------------------------- - -#include "wx/dvrenderers.h" - -// --------------------------------------------------------- -// wxDataViewColumnBase -// --------------------------------------------------------- - -// for compatibility only, do not use -enum wxDataViewColumnFlags -{ - wxDATAVIEW_COL_RESIZABLE = wxCOL_RESIZABLE, - wxDATAVIEW_COL_SORTABLE = wxCOL_SORTABLE, - wxDATAVIEW_COL_REORDERABLE = wxCOL_REORDERABLE, - wxDATAVIEW_COL_HIDDEN = wxCOL_HIDDEN -}; - -class WXDLLIMPEXP_ADV wxDataViewColumnBase : public wxSettableHeaderColumn -{ -public: - // ctor for the text columns: takes ownership of renderer - wxDataViewColumnBase(wxDataViewRenderer *renderer, - unsigned int model_column) - { - Init(renderer, model_column); - } - - // ctor for the bitmap columns - wxDataViewColumnBase(const wxBitmap& bitmap, - wxDataViewRenderer *renderer, - unsigned int model_column) - : m_bitmap(bitmap) - { - Init(renderer, model_column); - } - - virtual ~wxDataViewColumnBase(); - - // setters: - virtual void SetOwner( wxDataViewCtrl *owner ) - { m_owner = owner; } - - // getters: - unsigned int GetModelColumn() const { return static_cast(m_model_column); } - wxDataViewCtrl *GetOwner() const { return m_owner; } - wxDataViewRenderer* GetRenderer() const { return m_renderer; } - - // implement some of base class pure virtuals (the rest is port-dependent - // and done differently in generic and native versions) - virtual void SetBitmap( const wxBitmap& bitmap ) wxOVERRIDE { m_bitmap = bitmap; } - virtual wxBitmap GetBitmap() const wxOVERRIDE { return m_bitmap; } - -protected: - wxDataViewRenderer *m_renderer; - int m_model_column; - wxBitmap m_bitmap; - wxDataViewCtrl *m_owner; - -private: - // common part of all ctors - void Init(wxDataViewRenderer *renderer, unsigned int model_column); -}; - -// --------------------------------------------------------- -// wxDataViewCtrlBase -// --------------------------------------------------------- - -#define wxDV_SINGLE 0x0000 // for convenience -#define wxDV_MULTIPLE 0x0001 // can select multiple items - -#define wxDV_NO_HEADER 0x0002 // column titles not visible -#define wxDV_HORIZ_RULES 0x0004 // light horizontal rules between rows -#define wxDV_VERT_RULES 0x0008 // light vertical rules between columns - -#define wxDV_ROW_LINES 0x0010 // alternating colour in rows -#define wxDV_VARIABLE_LINE_HEIGHT 0x0020 // variable line height - -class WXDLLIMPEXP_ADV wxDataViewCtrlBase: public wxSystemThemedControl -{ -public: - wxDataViewCtrlBase(); - virtual ~wxDataViewCtrlBase(); - - // model - // ----- - - virtual bool AssociateModel( wxDataViewModel *model ); - wxDataViewModel* GetModel(); - const wxDataViewModel* GetModel() const; - - - // column management - // ----------------- - - wxDataViewColumn *PrependTextColumn( const wxString &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1, - wxAlignment align = wxALIGN_NOT, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *PrependIconTextColumn( const wxString &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1, - wxAlignment align = wxALIGN_NOT, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *PrependToggleColumn( const wxString &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = wxDVC_TOGGLE_DEFAULT_WIDTH, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *PrependProgressColumn( const wxString &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = wxDVC_DEFAULT_WIDTH, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *PrependDateColumn( const wxString &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, int width = -1, - wxAlignment align = wxALIGN_NOT, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *PrependBitmapColumn( const wxString &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *PrependTextColumn( const wxBitmap &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1, - wxAlignment align = wxALIGN_NOT, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *PrependIconTextColumn( const wxBitmap &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1, - wxAlignment align = wxALIGN_NOT, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *PrependToggleColumn( const wxBitmap &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = wxDVC_TOGGLE_DEFAULT_WIDTH, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *PrependProgressColumn( const wxBitmap &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = wxDVC_DEFAULT_WIDTH, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *PrependDateColumn( const wxBitmap &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, int width = -1, - wxAlignment align = wxALIGN_NOT, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *PrependBitmapColumn( const wxBitmap &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE ); - - wxDataViewColumn *AppendTextColumn( const wxString &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1, - wxAlignment align = wxALIGN_NOT, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *AppendIconTextColumn( const wxString &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1, - wxAlignment align = wxALIGN_NOT, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *AppendToggleColumn( const wxString &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = wxDVC_TOGGLE_DEFAULT_WIDTH, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *AppendProgressColumn( const wxString &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = wxDVC_DEFAULT_WIDTH, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *AppendDateColumn( const wxString &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, int width = -1, - wxAlignment align = wxALIGN_NOT, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *AppendBitmapColumn( const wxString &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *AppendTextColumn( const wxBitmap &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1, - wxAlignment align = wxALIGN_NOT, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *AppendIconTextColumn( const wxBitmap &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1, - wxAlignment align = wxALIGN_NOT, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *AppendToggleColumn( const wxBitmap &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = wxDVC_TOGGLE_DEFAULT_WIDTH, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *AppendProgressColumn( const wxBitmap &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = wxDVC_DEFAULT_WIDTH, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *AppendDateColumn( const wxBitmap &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, int width = -1, - wxAlignment align = wxALIGN_NOT, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *AppendBitmapColumn( const wxBitmap &label, unsigned int model_column, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, int width = -1, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE ); - - virtual bool PrependColumn( wxDataViewColumn *col ); - virtual bool InsertColumn( unsigned int pos, wxDataViewColumn *col ); - virtual bool AppendColumn( wxDataViewColumn *col ); - - virtual unsigned int GetColumnCount() const = 0; - virtual wxDataViewColumn* GetColumn( unsigned int pos ) const = 0; - virtual int GetColumnPosition( const wxDataViewColumn *column ) const = 0; - - virtual bool DeleteColumn( wxDataViewColumn *column ) = 0; - virtual bool ClearColumns() = 0; - - void SetExpanderColumn( wxDataViewColumn *col ) - { m_expander_column = col ; DoSetExpanderColumn(); } - wxDataViewColumn *GetExpanderColumn() const - { return m_expander_column; } - - virtual wxDataViewColumn *GetSortingColumn() const = 0; - virtual wxVector GetSortingColumns() const - { - wxVector columns; - if ( wxDataViewColumn* col = GetSortingColumn() ) - columns.push_back(col); - return columns; - } - - // This must be overridden to return true if the control does allow sorting - // by more than one column, which is not the case by default. - virtual bool AllowMultiColumnSort(bool allow) - { - // We can still return true when disabling multi-column sort. - return !allow; - } - - // This should also be overridden to actually use the specified column for - // sorting if using multiple columns is supported. - virtual void ToggleSortByColumn(int WXUNUSED(column)) { } - - - // items management - // ---------------- - - void SetIndent( int indent ) - { m_indent = indent ; DoSetIndent(); } - int GetIndent() const - { return m_indent; } - - // Current item is the one used by the keyboard navigation, it is the same - // as the (unique) selected item in single selection mode so these - // functions are mostly useful for controls with wxDV_MULTIPLE style. - wxDataViewItem GetCurrentItem() const; - void SetCurrentItem(const wxDataViewItem& item); - - // Currently focused column of the current item or NULL if no column has focus - virtual wxDataViewColumn *GetCurrentColumn() const = 0; - - // Selection: both GetSelection() and GetSelections() can be used for the - // controls both with and without wxDV_MULTIPLE style. For single selection - // controls GetSelections() is not very useful however. And for multi - // selection controls GetSelection() returns an invalid item if more than - // one item is selected. Use GetSelectedItemsCount() or HasSelection() to - // check if any items are selected at all. - virtual int GetSelectedItemsCount() const = 0; - bool HasSelection() const { return GetSelectedItemsCount() != 0; } - wxDataViewItem GetSelection() const; - virtual int GetSelections( wxDataViewItemArray & sel ) const = 0; - virtual void SetSelections( const wxDataViewItemArray & sel ) = 0; - virtual void Select( const wxDataViewItem & item ) = 0; - virtual void Unselect( const wxDataViewItem & item ) = 0; - virtual bool IsSelected( const wxDataViewItem & item ) const = 0; - - virtual void SelectAll() = 0; - virtual void UnselectAll() = 0; - - virtual void Expand( const wxDataViewItem & item ) = 0; - virtual void ExpandAncestors( const wxDataViewItem & item ); - virtual void Collapse( const wxDataViewItem & item ) = 0; - virtual bool IsExpanded( const wxDataViewItem & item ) const = 0; - - virtual void EnsureVisible( const wxDataViewItem & item, - const wxDataViewColumn *column = NULL ) = 0; - virtual void HitTest( const wxPoint & point, wxDataViewItem &item, wxDataViewColumn* &column ) const = 0; - virtual wxRect GetItemRect( const wxDataViewItem & item, const wxDataViewColumn *column = NULL ) const = 0; - - virtual bool SetRowHeight( int WXUNUSED(rowHeight) ) { return false; } - - virtual void EditItem(const wxDataViewItem& item, const wxDataViewColumn *column) = 0; - - // Use EditItem() instead - wxDEPRECATED( void StartEditor(const wxDataViewItem& item, unsigned int column) ); - -#if wxUSE_DRAG_AND_DROP - virtual bool EnableDragSource(const wxDataFormat& WXUNUSED(format)) - { return false; } - virtual bool EnableDropTarget(const wxDataFormat& WXUNUSED(format)) - { return false; } -#endif // wxUSE_DRAG_AND_DROP - - // define control visual attributes - // -------------------------------- - - virtual wxVisualAttributes GetDefaultAttributes() const wxOVERRIDE - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL) - { - return wxControl::GetCompositeControlsDefaultAttributes(variant); - } - -protected: - virtual void DoSetExpanderColumn() = 0 ; - virtual void DoSetIndent() = 0; - -private: - // Implementation of the public Set/GetCurrentItem() methods which are only - // called in multi selection case (for single selection controls their - // implementation is trivial and is done in the base class itself). - virtual wxDataViewItem DoGetCurrentItem() const = 0; - virtual void DoSetCurrentItem(const wxDataViewItem& item) = 0; - - wxDataViewModel *m_model; - wxDataViewColumn *m_expander_column; - int m_indent ; - -protected: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCtrlBase); -}; - -// ---------------------------------------------------------------------------- -// wxDataViewEvent - the event class for the wxDataViewCtrl notifications -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewEvent : public wxNotifyEvent -{ -public: - wxDataViewEvent(wxEventType commandType = wxEVT_NULL, int winid = 0) - : wxNotifyEvent(commandType, winid), - m_item(0), - m_col(-1), - m_model(NULL), - m_value(wxNullVariant), - m_column(NULL), - m_pos(-1,-1), - m_cacheFrom(0), - m_cacheTo(0), - m_editCancelled(false) -#if wxUSE_DRAG_AND_DROP - , m_dataObject(NULL), - m_dataBuffer(NULL), - m_dataSize(0), - m_dragFlags(0), - m_dropEffect(wxDragNone) -#endif - { } - - wxDataViewEvent(const wxDataViewEvent& event) - : wxNotifyEvent(event), - m_item(event.m_item), - m_col(event.m_col), - m_model(event.m_model), - m_value(event.m_value), - m_column(event.m_column), - m_pos(event.m_pos), - m_cacheFrom(event.m_cacheFrom), - m_cacheTo(event.m_cacheTo), - m_editCancelled(event.m_editCancelled) -#if wxUSE_DRAG_AND_DROP - , m_dataObject(event.m_dataObject), - m_dataFormat(event.m_dataFormat), - m_dataBuffer(event.m_dataBuffer), - m_dataSize(event.m_dataSize), - m_dragFlags(event.m_dragFlags), - m_dropEffect(event.m_dropEffect) -#endif - { } - - wxDataViewItem GetItem() const { return m_item; } - void SetItem( const wxDataViewItem &item ) { m_item = item; } - - int GetColumn() const { return m_col; } - void SetColumn( int col ) { m_col = col; } - - wxDataViewModel* GetModel() const { return m_model; } - void SetModel( wxDataViewModel *model ) { m_model = model; } - - const wxVariant &GetValue() const { return m_value; } - void SetValue( const wxVariant &value ) { m_value = value; } - - // for wxEVT_DATAVIEW_ITEM_EDITING_DONE only - bool IsEditCancelled() const { return m_editCancelled; } - void SetEditCanceled(bool editCancelled) { m_editCancelled = editCancelled; } - - // for wxEVT_DATAVIEW_COLUMN_HEADER_CLICKED only - void SetDataViewColumn( wxDataViewColumn *col ) { m_column = col; } - wxDataViewColumn *GetDataViewColumn() const { return m_column; } - - // for wxEVT_DATAVIEW_CONTEXT_MENU only - wxPoint GetPosition() const { return m_pos; } - void SetPosition( int x, int y ) { m_pos.x = x; m_pos.y = y; } - - // For wxEVT_DATAVIEW_CACHE_HINT - int GetCacheFrom() const { return m_cacheFrom; } - int GetCacheTo() const { return m_cacheTo; } - void SetCache(int from, int to) { m_cacheFrom = from; m_cacheTo = to; } - - -#if wxUSE_DRAG_AND_DROP - // For drag operations - void SetDataObject( wxDataObject *obj ) { m_dataObject = obj; } - wxDataObject *GetDataObject() const { return m_dataObject; } - - // For drop operations - void SetDataFormat( const wxDataFormat &format ) { m_dataFormat = format; } - wxDataFormat GetDataFormat() const { return m_dataFormat; } - void SetDataSize( size_t size ) { m_dataSize = size; } - size_t GetDataSize() const { return m_dataSize; } - void SetDataBuffer( void* buf ) { m_dataBuffer = buf;} - void *GetDataBuffer() const { return m_dataBuffer; } - void SetDragFlags( int flags ) { m_dragFlags = flags; } - int GetDragFlags() const { return m_dragFlags; } - void SetDropEffect( wxDragResult effect ) { m_dropEffect = effect; } - wxDragResult GetDropEffect() const { return m_dropEffect; } -#endif // wxUSE_DRAG_AND_DROP - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxDataViewEvent(*this); } - -protected: - wxDataViewItem m_item; - int m_col; - wxDataViewModel *m_model; - wxVariant m_value; - wxDataViewColumn *m_column; - wxPoint m_pos; - int m_cacheFrom; - int m_cacheTo; - bool m_editCancelled; - -#if wxUSE_DRAG_AND_DROP - wxDataObject *m_dataObject; - - wxDataFormat m_dataFormat; - void* m_dataBuffer; - size_t m_dataSize; - - int m_dragFlags; - wxDragResult m_dropEffect; -#endif // wxUSE_DRAG_AND_DROP - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxDataViewEvent); -}; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_SELECTION_CHANGED, wxDataViewEvent ); - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_ITEM_ACTIVATED, wxDataViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_ITEM_COLLAPSED, wxDataViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_ITEM_EXPANDED, wxDataViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_ITEM_COLLAPSING, wxDataViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_ITEM_EXPANDING, wxDataViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_ITEM_START_EDITING, wxDataViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_ITEM_EDITING_STARTED, wxDataViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_ITEM_EDITING_DONE, wxDataViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_ITEM_VALUE_CHANGED, wxDataViewEvent ); - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEvent ); - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_COLUMN_HEADER_CLICK, wxDataViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK, wxDataViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_COLUMN_SORTED, wxDataViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_COLUMN_REORDERED, wxDataViewEvent ); - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_CACHE_HINT, wxDataViewEvent ); - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_ITEM_BEGIN_DRAG, wxDataViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_ITEM_DROP_POSSIBLE, wxDataViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_DATAVIEW_ITEM_DROP, wxDataViewEvent ); - -typedef void (wxEvtHandler::*wxDataViewEventFunction)(wxDataViewEvent&); - -#define wxDataViewEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxDataViewEventFunction, func) - -#define wx__DECLARE_DATAVIEWEVT(evt, id, fn) \ - wx__DECLARE_EVT1(wxEVT_DATAVIEW_ ## evt, id, wxDataViewEventHandler(fn)) - -#define EVT_DATAVIEW_SELECTION_CHANGED(id, fn) wx__DECLARE_DATAVIEWEVT(SELECTION_CHANGED, id, fn) - -#define EVT_DATAVIEW_ITEM_ACTIVATED(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_ACTIVATED, id, fn) -#define EVT_DATAVIEW_ITEM_COLLAPSING(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_COLLAPSING, id, fn) -#define EVT_DATAVIEW_ITEM_COLLAPSED(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_COLLAPSED, id, fn) -#define EVT_DATAVIEW_ITEM_EXPANDING(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_EXPANDING, id, fn) -#define EVT_DATAVIEW_ITEM_EXPANDED(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_EXPANDED, id, fn) -#define EVT_DATAVIEW_ITEM_START_EDITING(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_START_EDITING, id, fn) -#define EVT_DATAVIEW_ITEM_EDITING_STARTED(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_EDITING_STARTED, id, fn) -#define EVT_DATAVIEW_ITEM_EDITING_DONE(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_EDITING_DONE, id, fn) -#define EVT_DATAVIEW_ITEM_VALUE_CHANGED(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_VALUE_CHANGED, id, fn) - -#define EVT_DATAVIEW_ITEM_CONTEXT_MENU(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_CONTEXT_MENU, id, fn) - -#define EVT_DATAVIEW_COLUMN_HEADER_CLICK(id, fn) wx__DECLARE_DATAVIEWEVT(COLUMN_HEADER_CLICK, id, fn) -#define EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK(id, fn) wx__DECLARE_DATAVIEWEVT(COLUMN_HEADER_RIGHT_CLICK, id, fn) -#define EVT_DATAVIEW_COLUMN_SORTED(id, fn) wx__DECLARE_DATAVIEWEVT(COLUMN_SORTED, id, fn) -#define EVT_DATAVIEW_COLUMN_REORDERED(id, fn) wx__DECLARE_DATAVIEWEVT(COLUMN_REORDERED, id, fn) -#define EVT_DATAVIEW_CACHE_HINT(id, fn) wx__DECLARE_DATAVIEWEVT(CACHE_HINT, id, fn) - -#define EVT_DATAVIEW_ITEM_BEGIN_DRAG(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_BEGIN_DRAG, id, fn) -#define EVT_DATAVIEW_ITEM_DROP_POSSIBLE(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_DROP_POSSIBLE, id, fn) -#define EVT_DATAVIEW_ITEM_DROP(id, fn) wx__DECLARE_DATAVIEWEVT(ITEM_DROP, id, fn) - -// Old and not documented synonym, don't use. -#define EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICKED(id, fn) EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK(id, fn) - -#ifdef wxHAS_GENERIC_DATAVIEWCTRL - #include "wx/generic/dataview.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/dataview.h" -#elif defined(__WXMAC__) - #include "wx/osx/dataview.h" -#elif defined(__WXQT__) - #include "wx/qt/dataview.h" -#else - #error "unknown native wxDataViewCtrl implementation" -#endif - -//----------------------------------------------------------------------------- -// wxDataViewListStore -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewListStoreLine -{ -public: - wxDataViewListStoreLine( wxUIntPtr data = 0 ) - { - m_data = data; - } - - void SetData( wxUIntPtr data ) - { m_data = data; } - wxUIntPtr GetData() const - { return m_data; } - - wxVector m_values; - -private: - wxUIntPtr m_data; -}; - - -class WXDLLIMPEXP_ADV wxDataViewListStore: public wxDataViewIndexListModel -{ -public: - wxDataViewListStore(); - ~wxDataViewListStore(); - - void PrependColumn( const wxString &varianttype ); - void InsertColumn( unsigned int pos, const wxString &varianttype ); - void AppendColumn( const wxString &varianttype ); - - void AppendItem( const wxVector &values, wxUIntPtr data = 0 ); - void PrependItem( const wxVector &values, wxUIntPtr data = 0 ); - void InsertItem( unsigned int row, const wxVector &values, wxUIntPtr data = 0 ); - void DeleteItem( unsigned int pos ); - void DeleteAllItems(); - void ClearColumns(); - - unsigned int GetItemCount() const; - - void SetItemData( const wxDataViewItem& item, wxUIntPtr data ); - wxUIntPtr GetItemData( const wxDataViewItem& item ) const; - - // override base virtuals - - virtual unsigned int GetColumnCount() const wxOVERRIDE; - - virtual wxString GetColumnType( unsigned int col ) const wxOVERRIDE; - - virtual void GetValueByRow( wxVariant &value, - unsigned int row, unsigned int col ) const wxOVERRIDE; - - virtual bool SetValueByRow( const wxVariant &value, - unsigned int row, unsigned int col ) wxOVERRIDE; - - -public: - wxVector m_data; - wxArrayString m_cols; -}; - -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewListCtrl: public wxDataViewCtrl -{ -public: - wxDataViewListCtrl(); - wxDataViewListCtrl( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxDV_ROW_LINES, - const wxValidator& validator = wxDefaultValidator ); - ~wxDataViewListCtrl(); - - bool Create( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxDV_ROW_LINES, - const wxValidator& validator = wxDefaultValidator ); - - wxDataViewListStore *GetStore() - { return (wxDataViewListStore*) GetModel(); } - const wxDataViewListStore *GetStore() const - { return (const wxDataViewListStore*) GetModel(); } - - int ItemToRow(const wxDataViewItem &item) const - { return item.IsOk() ? (int)GetStore()->GetRow(item) : wxNOT_FOUND; } - wxDataViewItem RowToItem(int row) const - { return row == wxNOT_FOUND ? wxDataViewItem() : GetStore()->GetItem(row); } - - int GetSelectedRow() const - { return ItemToRow(GetSelection()); } - void SelectRow(unsigned row) - { Select(RowToItem(row)); } - void UnselectRow(unsigned row) - { Unselect(RowToItem(row)); } - bool IsRowSelected(unsigned row) const - { return IsSelected(RowToItem(row)); } - - bool AppendColumn( wxDataViewColumn *column, const wxString &varianttype ); - bool PrependColumn( wxDataViewColumn *column, const wxString &varianttype ); - bool InsertColumn( unsigned int pos, wxDataViewColumn *column, const wxString &varianttype ); - - // overridden from base class - virtual bool PrependColumn( wxDataViewColumn *col ) wxOVERRIDE; - virtual bool InsertColumn( unsigned int pos, wxDataViewColumn *col ) wxOVERRIDE; - virtual bool AppendColumn( wxDataViewColumn *col ) wxOVERRIDE; - virtual bool ClearColumns() wxOVERRIDE; - - wxDataViewColumn *AppendTextColumn( const wxString &label, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int width = -1, wxAlignment align = wxALIGN_LEFT, int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *AppendToggleColumn( const wxString &label, - wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, - int width = -1, wxAlignment align = wxALIGN_LEFT, int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *AppendProgressColumn( const wxString &label, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int width = -1, wxAlignment align = wxALIGN_LEFT, int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn *AppendIconTextColumn( const wxString &label, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int width = -1, wxAlignment align = wxALIGN_LEFT, int flags = wxDATAVIEW_COL_RESIZABLE ); - - void AppendItem( const wxVector &values, wxUIntPtr data = 0 ) - { GetStore()->AppendItem( values, data ); } - void PrependItem( const wxVector &values, wxUIntPtr data = 0 ) - { GetStore()->PrependItem( values, data ); } - void InsertItem( unsigned int row, const wxVector &values, wxUIntPtr data = 0 ) - { GetStore()->InsertItem( row, values, data ); } - void DeleteItem( unsigned row ) - { GetStore()->DeleteItem( row ); } - void DeleteAllItems() - { GetStore()->DeleteAllItems(); } - - void SetValue( const wxVariant &value, unsigned int row, unsigned int col ) - { GetStore()->SetValueByRow( value, row, col ); - GetStore()->RowValueChanged( row, col); } - void GetValue( wxVariant &value, unsigned int row, unsigned int col ) - { GetStore()->GetValueByRow( value, row, col ); } - - void SetTextValue( const wxString &value, unsigned int row, unsigned int col ) - { GetStore()->SetValueByRow( value, row, col ); - GetStore()->RowValueChanged( row, col); } - wxString GetTextValue( unsigned int row, unsigned int col ) const - { wxVariant value; GetStore()->GetValueByRow( value, row, col ); return value.GetString(); } - - void SetToggleValue( bool value, unsigned int row, unsigned int col ) - { GetStore()->SetValueByRow( value, row, col ); - GetStore()->RowValueChanged( row, col); } - bool GetToggleValue( unsigned int row, unsigned int col ) const - { wxVariant value; GetStore()->GetValueByRow( value, row, col ); return value.GetBool(); } - - void SetItemData( const wxDataViewItem& item, wxUIntPtr data ) - { GetStore()->SetItemData( item, data ); } - wxUIntPtr GetItemData( const wxDataViewItem& item ) const - { return GetStore()->GetItemData( item ); } - - int GetItemCount() const - { return GetStore()->GetItemCount(); } - - void OnSize( wxSizeEvent &event ); - -private: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxDataViewListCtrl); -}; - -//----------------------------------------------------------------------------- -// wxDataViewTreeStore -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewTreeStoreNode -{ -public: - wxDataViewTreeStoreNode( wxDataViewTreeStoreNode *parent, - const wxString &text, const wxIcon &icon = wxNullIcon, wxClientData *data = NULL ); - virtual ~wxDataViewTreeStoreNode(); - - void SetText( const wxString &text ) - { m_text = text; } - wxString GetText() const - { return m_text; } - void SetIcon( const wxIcon &icon ) - { m_icon = icon; } - const wxIcon &GetIcon() const - { return m_icon; } - void SetData( wxClientData *data ) - { if (m_data) delete m_data; m_data = data; } - wxClientData *GetData() const - { return m_data; } - - wxDataViewItem GetItem() const - { return wxDataViewItem( (void*) this ); } - - virtual bool IsContainer() - { return false; } - - wxDataViewTreeStoreNode *GetParent() - { return m_parent; } - -private: - wxDataViewTreeStoreNode *m_parent; - wxString m_text; - wxIcon m_icon; - wxClientData *m_data; -}; - -WX_DECLARE_LIST_WITH_DECL(wxDataViewTreeStoreNode, wxDataViewTreeStoreNodeList, - class WXDLLIMPEXP_ADV); - -class WXDLLIMPEXP_ADV wxDataViewTreeStoreContainerNode: public wxDataViewTreeStoreNode -{ -public: - wxDataViewTreeStoreContainerNode( wxDataViewTreeStoreNode *parent, - const wxString &text, const wxIcon &icon = wxNullIcon, const wxIcon &expanded = wxNullIcon, - wxClientData *data = NULL ); - virtual ~wxDataViewTreeStoreContainerNode(); - - const wxDataViewTreeStoreNodeList &GetChildren() const - { return m_children; } - wxDataViewTreeStoreNodeList &GetChildren() - { return m_children; } - - void SetExpandedIcon( const wxIcon &icon ) - { m_iconExpanded = icon; } - const wxIcon &GetExpandedIcon() const - { return m_iconExpanded; } - - void SetExpanded( bool expanded = true ) - { m_isExpanded = expanded; } - bool IsExpanded() const - { return m_isExpanded; } - - virtual bool IsContainer() wxOVERRIDE - { return true; } - -private: - wxDataViewTreeStoreNodeList m_children; - wxIcon m_iconExpanded; - bool m_isExpanded; -}; - -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewTreeStore: public wxDataViewModel -{ -public: - wxDataViewTreeStore(); - ~wxDataViewTreeStore(); - - wxDataViewItem AppendItem( const wxDataViewItem& parent, - const wxString &text, const wxIcon &icon = wxNullIcon, wxClientData *data = NULL ); - wxDataViewItem PrependItem( const wxDataViewItem& parent, - const wxString &text, const wxIcon &icon = wxNullIcon, wxClientData *data = NULL ); - wxDataViewItem InsertItem( const wxDataViewItem& parent, const wxDataViewItem& previous, - const wxString &text, const wxIcon &icon = wxNullIcon, wxClientData *data = NULL ); - - wxDataViewItem PrependContainer( const wxDataViewItem& parent, - const wxString &text, const wxIcon &icon = wxNullIcon, const wxIcon &expanded = wxNullIcon, - wxClientData *data = NULL ); - wxDataViewItem AppendContainer( const wxDataViewItem& parent, - const wxString &text, const wxIcon &icon = wxNullIcon, const wxIcon &expanded = wxNullIcon, - wxClientData *data = NULL ); - wxDataViewItem InsertContainer( const wxDataViewItem& parent, const wxDataViewItem& previous, - const wxString &text, const wxIcon &icon = wxNullIcon, const wxIcon &expanded = wxNullIcon, - wxClientData *data = NULL ); - - wxDataViewItem GetNthChild( const wxDataViewItem& parent, unsigned int pos ) const; - int GetChildCount( const wxDataViewItem& parent ) const; - - void SetItemText( const wxDataViewItem& item, const wxString &text ); - wxString GetItemText( const wxDataViewItem& item ) const; - void SetItemIcon( const wxDataViewItem& item, const wxIcon &icon ); - const wxIcon &GetItemIcon( const wxDataViewItem& item ) const; - void SetItemExpandedIcon( const wxDataViewItem& item, const wxIcon &icon ); - const wxIcon &GetItemExpandedIcon( const wxDataViewItem& item ) const; - void SetItemData( const wxDataViewItem& item, wxClientData *data ); - wxClientData *GetItemData( const wxDataViewItem& item ) const; - - void DeleteItem( const wxDataViewItem& item ); - void DeleteChildren( const wxDataViewItem& item ); - void DeleteAllItems(); - - // implement base methods - - virtual void GetValue( wxVariant &variant, - const wxDataViewItem &item, unsigned int col ) const wxOVERRIDE; - virtual bool SetValue( const wxVariant &variant, - const wxDataViewItem &item, unsigned int col ) wxOVERRIDE; - virtual wxDataViewItem GetParent( const wxDataViewItem &item ) const wxOVERRIDE; - virtual bool IsContainer( const wxDataViewItem &item ) const wxOVERRIDE; - virtual unsigned int GetChildren( const wxDataViewItem &item, wxDataViewItemArray &children ) const wxOVERRIDE; - - virtual int Compare( const wxDataViewItem &item1, const wxDataViewItem &item2, - unsigned int column, bool ascending ) const wxOVERRIDE; - - virtual bool HasDefaultCompare() const wxOVERRIDE - { return true; } - virtual unsigned int GetColumnCount() const wxOVERRIDE - { return 1; } - virtual wxString GetColumnType( unsigned int WXUNUSED(col) ) const wxOVERRIDE - { return wxT("wxDataViewIconText"); } - - wxDataViewTreeStoreNode *FindNode( const wxDataViewItem &item ) const; - wxDataViewTreeStoreContainerNode *FindContainerNode( const wxDataViewItem &item ) const; - wxDataViewTreeStoreNode *GetRoot() const { return m_root; } - -public: - wxDataViewTreeStoreNode *m_root; -}; - -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewTreeCtrl: public wxDataViewCtrl, - public wxWithImages -{ -public: - wxDataViewTreeCtrl() { } - wxDataViewTreeCtrl(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDV_NO_HEADER | wxDV_ROW_LINES, - const wxValidator& validator = wxDefaultValidator) - { - Create(parent, id, pos, size, style, validator); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDV_NO_HEADER | wxDV_ROW_LINES, - const wxValidator& validator = wxDefaultValidator); - - wxDataViewTreeStore *GetStore() - { return (wxDataViewTreeStore*) GetModel(); } - const wxDataViewTreeStore *GetStore() const - { return (const wxDataViewTreeStore*) GetModel(); } - - bool IsContainer( const wxDataViewItem& item ) const - { return GetStore()->IsContainer(item); } - - wxDataViewItem AppendItem( const wxDataViewItem& parent, - const wxString &text, int icon = NO_IMAGE, wxClientData *data = NULL ); - wxDataViewItem PrependItem( const wxDataViewItem& parent, - const wxString &text, int icon = NO_IMAGE, wxClientData *data = NULL ); - wxDataViewItem InsertItem( const wxDataViewItem& parent, const wxDataViewItem& previous, - const wxString &text, int icon = NO_IMAGE, wxClientData *data = NULL ); - - wxDataViewItem PrependContainer( const wxDataViewItem& parent, - const wxString &text, int icon = NO_IMAGE, int expanded = NO_IMAGE, - wxClientData *data = NULL ); - wxDataViewItem AppendContainer( const wxDataViewItem& parent, - const wxString &text, int icon = NO_IMAGE, int expanded = NO_IMAGE, - wxClientData *data = NULL ); - wxDataViewItem InsertContainer( const wxDataViewItem& parent, const wxDataViewItem& previous, - const wxString &text, int icon = NO_IMAGE, int expanded = NO_IMAGE, - wxClientData *data = NULL ); - - wxDataViewItem GetNthChild( const wxDataViewItem& parent, unsigned int pos ) const - { return GetStore()->GetNthChild(parent, pos); } - int GetChildCount( const wxDataViewItem& parent ) const - { return GetStore()->GetChildCount(parent); } - - void SetItemText( const wxDataViewItem& item, const wxString &text ); - wxString GetItemText( const wxDataViewItem& item ) const - { return GetStore()->GetItemText(item); } - void SetItemIcon( const wxDataViewItem& item, const wxIcon &icon ); - const wxIcon &GetItemIcon( const wxDataViewItem& item ) const - { return GetStore()->GetItemIcon(item); } - void SetItemExpandedIcon( const wxDataViewItem& item, const wxIcon &icon ); - const wxIcon &GetItemExpandedIcon( const wxDataViewItem& item ) const - { return GetStore()->GetItemExpandedIcon(item); } - void SetItemData( const wxDataViewItem& item, wxClientData *data ) - { GetStore()->SetItemData(item,data); } - wxClientData *GetItemData( const wxDataViewItem& item ) const - { return GetStore()->GetItemData(item); } - - void DeleteItem( const wxDataViewItem& item ); - void DeleteChildren( const wxDataViewItem& item ); - void DeleteAllItems(); - - void OnExpanded( wxDataViewEvent &event ); - void OnCollapsed( wxDataViewEvent &event ); - void OnSize( wxSizeEvent &event ); - -private: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxDataViewTreeCtrl); -}; - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_DATAVIEW_SELECTION_CHANGED wxEVT_DATAVIEW_SELECTION_CHANGED -#define wxEVT_COMMAND_DATAVIEW_ITEM_ACTIVATED wxEVT_DATAVIEW_ITEM_ACTIVATED -#define wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSED wxEVT_DATAVIEW_ITEM_COLLAPSED -#define wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDED wxEVT_DATAVIEW_ITEM_EXPANDED -#define wxEVT_COMMAND_DATAVIEW_ITEM_COLLAPSING wxEVT_DATAVIEW_ITEM_COLLAPSING -#define wxEVT_COMMAND_DATAVIEW_ITEM_EXPANDING wxEVT_DATAVIEW_ITEM_EXPANDING -#define wxEVT_COMMAND_DATAVIEW_ITEM_START_EDITING wxEVT_DATAVIEW_ITEM_START_EDITING -#define wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED wxEVT_DATAVIEW_ITEM_EDITING_STARTED -#define wxEVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE wxEVT_DATAVIEW_ITEM_EDITING_DONE -#define wxEVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED wxEVT_DATAVIEW_ITEM_VALUE_CHANGED -#define wxEVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU wxEVT_DATAVIEW_ITEM_CONTEXT_MENU -#define wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK wxEVT_DATAVIEW_COLUMN_HEADER_CLICK -#define wxEVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK wxEVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK -#define wxEVT_COMMAND_DATAVIEW_COLUMN_SORTED wxEVT_DATAVIEW_COLUMN_SORTED -#define wxEVT_COMMAND_DATAVIEW_COLUMN_REORDERED wxEVT_DATAVIEW_COLUMN_REORDERED -#define wxEVT_COMMAND_DATAVIEW_CACHE_HINT wxEVT_DATAVIEW_CACHE_HINT -#define wxEVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG wxEVT_DATAVIEW_ITEM_BEGIN_DRAG -#define wxEVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE wxEVT_DATAVIEW_ITEM_DROP_POSSIBLE -#define wxEVT_COMMAND_DATAVIEW_ITEM_DROP wxEVT_DATAVIEW_ITEM_DROP - -#endif // wxUSE_DATAVIEWCTRL - -#endif - // _WX_DATAVIEW_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datectrl.h deleted file mode 100644 index a3c23678..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datectrl.h +++ /dev/null @@ -1,113 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/datectrl.h -// Purpose: implements wxDatePickerCtrl -// Author: Vadim Zeitlin -// Modified by: -// Created: 2005-01-09 -// Copyright: (c) 2005 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DATECTRL_H_ -#define _WX_DATECTRL_H_ - -#include "wx/defs.h" - -#if wxUSE_DATEPICKCTRL - -#include "wx/datetimectrl.h" // the base class - -#define wxDatePickerCtrlNameStr wxT("datectrl") - -// wxDatePickerCtrl styles -enum -{ - // default style on this platform, either wxDP_SPIN or wxDP_DROPDOWN - wxDP_DEFAULT = 0, - - // a spin control-like date picker (not supported in generic version) - wxDP_SPIN = 1, - - // a combobox-like date picker (not supported in mac version) - wxDP_DROPDOWN = 2, - - // always show century in the default date display (otherwise it depends on - // the system date format which may include the century or not) - wxDP_SHOWCENTURY = 4, - - // allow not having any valid date in the control (by default it always has - // some date, today initially if no valid date specified in ctor) - wxDP_ALLOWNONE = 8 -}; - -// ---------------------------------------------------------------------------- -// wxDatePickerCtrl: allow the user to enter the date -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDatePickerCtrlBase : public wxDateTimePickerCtrl -{ -public: - /* - The derived classes should implement ctor and Create() method with the - following signature: - - bool Create(wxWindow *parent, - wxWindowID id, - const wxDateTime& dt = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDatePickerCtrlNameStr); - */ - - /* - We inherit the methods to set/get the date from the base class. - - virtual void SetValue(const wxDateTime& dt) = 0; - virtual wxDateTime GetValue() const = 0; - */ - - // And add methods to set/get the allowed valid range for the dates. If - // either/both of them are invalid, there is no corresponding limit and if - // neither is set, GetRange() returns false. - virtual void SetRange(const wxDateTime& dt1, const wxDateTime& dt2) = 0; - virtual bool GetRange(wxDateTime *dt1, wxDateTime *dt2) const = 0; -}; - -#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) - #include "wx/msw/datectrl.h" - - #define wxHAS_NATIVE_DATEPICKCTRL -#elif defined(__WXOSX_COCOA__) && !defined(__WXUNIVERSAL__) - #include "wx/osx/datectrl.h" - - #define wxHAS_NATIVE_DATEPICKCTRL -#else - #include "wx/generic/datectrl.h" - - class WXDLLIMPEXP_ADV wxDatePickerCtrl : public wxDatePickerCtrlGeneric - { - public: - wxDatePickerCtrl() { } - wxDatePickerCtrl(wxWindow *parent, - wxWindowID id, - const wxDateTime& date = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDatePickerCtrlNameStr) - : wxDatePickerCtrlGeneric(parent, id, date, pos, size, style, validator, name) - { - } - - private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDatePickerCtrl); - }; -#endif - -#endif // wxUSE_DATEPICKCTRL - -#endif // _WX_DATECTRL_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dateevt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dateevt.h deleted file mode 100644 index 2032d89a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dateevt.h +++ /dev/null @@ -1,64 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/dateevt.h -// Purpose: declares wxDateEvent class -// Author: Vadim Zeitlin -// Modified by: -// Created: 2005-01-10 -// Copyright: (c) 2005 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DATEEVT_H_ -#define _WX_DATEEVT_H_ - -#include "wx/event.h" -#include "wx/datetime.h" -#include "wx/window.h" - -// ---------------------------------------------------------------------------- -// wxDateEvent: used by wxCalendarCtrl, wxDatePickerCtrl and wxTimePickerCtrl. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDateEvent : public wxCommandEvent -{ -public: - wxDateEvent() { } - wxDateEvent(wxWindow *win, const wxDateTime& dt, wxEventType type) - : wxCommandEvent(type, win->GetId()), - m_date(dt) - { - SetEventObject(win); - } - - const wxDateTime& GetDate() const { return m_date; } - void SetDate(const wxDateTime &date) { m_date = date; } - - // default copy ctor, assignment operator and dtor are ok - virtual wxEvent *Clone() const wxOVERRIDE { return new wxDateEvent(*this); } - -private: - wxDateTime m_date; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxDateEvent); -}; - -// ---------------------------------------------------------------------------- -// event types and macros for handling them -// ---------------------------------------------------------------------------- - -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_ADV, wxEVT_DATE_CHANGED, wxDateEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_ADV, wxEVT_TIME_CHANGED, wxDateEvent); - -typedef void (wxEvtHandler::*wxDateEventFunction)(wxDateEvent&); - -#define wxDateEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxDateEventFunction, func) - -#define EVT_DATE_CHANGED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_DATE_CHANGED, id, wxDateEventHandler(fn)) - -#define EVT_TIME_CHANGED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_TIME_CHANGED, id, wxDateEventHandler(fn)) - -#endif // _WX_DATEEVT_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datetime.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datetime.h deleted file mode 100644 index d3566724..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datetime.h +++ /dev/null @@ -1,2163 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/datetime.h -// Purpose: declarations of time/date related classes (wxDateTime, -// wxTimeSpan) -// Author: Vadim Zeitlin -// Modified by: -// Created: 10.02.99 -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DATETIME_H -#define _WX_DATETIME_H - -#include "wx/defs.h" - -#if wxUSE_DATETIME - -#include - -#include // for INT_MIN - -#include "wx/longlong.h" -#include "wx/anystr.h" - -class WXDLLIMPEXP_FWD_BASE wxDateTime; -class WXDLLIMPEXP_FWD_BASE wxTimeSpan; -class WXDLLIMPEXP_FWD_BASE wxDateSpan; -#ifdef __WINDOWS__ -struct _SYSTEMTIME; -#endif - -#include "wx/dynarray.h" - -// not all c-runtimes are based on 1/1/1970 being (time_t) 0 -// set this to the corresponding value in seconds 1/1/1970 has on your -// systems c-runtime - -#define WX_TIME_BASE_OFFSET 0 - -/* - * TODO - * - * + 1. Time zones with minutes (make TimeZone a class) - * ? 2. getdate() function like under Solaris - * + 3. text conversion for wxDateSpan - * + 4. pluggable modules for the workdays calculations - * 5. wxDateTimeHolidayAuthority for Easter and other christian feasts - */ - -/* - The three (main) classes declared in this header represent: - - 1. An absolute moment in the time (wxDateTime) - 2. A difference between two moments in the time, positive or negative - (wxTimeSpan) - 3. A logical difference between two dates expressed in - years/months/weeks/days (wxDateSpan) - - The following arithmetic operations are permitted (all others are not): - - addition - -------- - - wxDateTime + wxTimeSpan = wxDateTime - wxDateTime + wxDateSpan = wxDateTime - wxTimeSpan + wxTimeSpan = wxTimeSpan - wxDateSpan + wxDateSpan = wxDateSpan - - subtraction - ------------ - wxDateTime - wxDateTime = wxTimeSpan - wxDateTime - wxTimeSpan = wxDateTime - wxDateTime - wxDateSpan = wxDateTime - wxTimeSpan - wxTimeSpan = wxTimeSpan - wxDateSpan - wxDateSpan = wxDateSpan - - multiplication - -------------- - wxTimeSpan * number = wxTimeSpan - number * wxTimeSpan = wxTimeSpan - wxDateSpan * number = wxDateSpan - number * wxDateSpan = wxDateSpan - - unitary minus - ------------- - -wxTimeSpan = wxTimeSpan - -wxDateSpan = wxDateSpan - - For each binary operation OP (+, -, *) we have the following operatorOP=() as - a method and the method with a symbolic name OPER (Add, Subtract, Multiply) - as a synonym for it and another const method with the same name which returns - the changed copy of the object and operatorOP() as a global function which is - implemented in terms of the const version of OPEN. For the unary - we have - operator-() as a method, Neg() as synonym for it and Negate() which returns - the copy of the object with the changed sign. -*/ - -// an invalid/default date time object which may be used as the default -// argument for arguments of type wxDateTime; it is also returned by all -// functions returning wxDateTime on failure (this is why it is also called -// wxInvalidDateTime) -class WXDLLIMPEXP_FWD_BASE wxDateTime; - -extern WXDLLIMPEXP_DATA_BASE(const char) wxDefaultDateTimeFormat[]; -extern WXDLLIMPEXP_DATA_BASE(const char) wxDefaultTimeSpanFormat[]; -extern WXDLLIMPEXP_DATA_BASE(const wxDateTime) wxDefaultDateTime; - -#define wxInvalidDateTime wxDefaultDateTime - - -// ---------------------------------------------------------------------------- -// conditional compilation -// ---------------------------------------------------------------------------- - -// if configure detected strftime(), we have it too -#ifdef HAVE_STRFTIME - #define wxHAS_STRFTIME -// suppose everyone else has strftime -#else - #define wxHAS_STRFTIME -#endif - -// ---------------------------------------------------------------------------- -// wxDateTime represents an absolute moment in the time -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxDateTime -{ -public: - // types - // ------------------------------------------------------------------------ - - // a small unsigned integer type for storing things like minutes, - // seconds &c. It should be at least short (i.e. not char) to contain - // the number of milliseconds - it may also be 'int' because there is - // no size penalty associated with it in our code, we don't store any - // data in this format - typedef unsigned short wxDateTime_t; - - // constants - // ------------------------------------------------------------------------ - - // the timezones - enum TZ - { - // the time in the current time zone - Local, - - // zones from GMT (= Greenwich Mean Time): they're guaranteed to be - // consequent numbers, so writing something like `GMT0 + offset' is - // safe if abs(offset) <= 12 - - // underscore stands for minus - GMT_12, GMT_11, GMT_10, GMT_9, GMT_8, GMT_7, - GMT_6, GMT_5, GMT_4, GMT_3, GMT_2, GMT_1, - GMT0, - GMT1, GMT2, GMT3, GMT4, GMT5, GMT6, - GMT7, GMT8, GMT9, GMT10, GMT11, GMT12, GMT13, - // Note that GMT12 and GMT_12 are not the same: there is a difference - // of exactly one day between them - - // some symbolic names for TZ - - // Europe - WET = GMT0, // Western Europe Time - WEST = GMT1, // Western Europe Summer Time - CET = GMT1, // Central Europe Time - CEST = GMT2, // Central Europe Summer Time - EET = GMT2, // Eastern Europe Time - EEST = GMT3, // Eastern Europe Summer Time - MSK = GMT3, // Moscow Time - MSD = GMT4, // Moscow Summer Time - - // US and Canada - AST = GMT_4, // Atlantic Standard Time - ADT = GMT_3, // Atlantic Daylight Time - EST = GMT_5, // Eastern Standard Time - EDT = GMT_4, // Eastern Daylight Saving Time - CST = GMT_6, // Central Standard Time - CDT = GMT_5, // Central Daylight Saving Time - MST = GMT_7, // Mountain Standard Time - MDT = GMT_6, // Mountain Daylight Saving Time - PST = GMT_8, // Pacific Standard Time - PDT = GMT_7, // Pacific Daylight Saving Time - HST = GMT_10, // Hawaiian Standard Time - AKST = GMT_9, // Alaska Standard Time - AKDT = GMT_8, // Alaska Daylight Saving Time - - // Australia - - A_WST = GMT8, // Western Standard Time - A_CST = GMT13 + 1, // Central Standard Time (+9.5) - A_EST = GMT10, // Eastern Standard Time - A_ESST = GMT11, // Eastern Summer Time - - // New Zealand - NZST = GMT12, // Standard Time - NZDT = GMT13, // Daylight Saving Time - - // TODO add more symbolic timezone names here - - // Universal Coordinated Time = the new and politically correct name - // for GMT - UTC = GMT0 - }; - - // the calendar systems we know about: notice that it's valid (for - // this classes purpose anyhow) to work with any of these calendars - // even with the dates before the historical appearance of the - // calendar - enum Calendar - { - Gregorian, // current calendar - Julian // calendar in use since -45 until the 1582 (or later) - - // TODO Hebrew, Chinese, Maya, ... (just kidding) (or then may be not?) - }; - - // the country parameter is used so far for calculating the start and - // the end of DST period and for deciding whether the date is a work - // day or not - // - // TODO move this to intl.h - - enum Country - { - Country_Unknown, // no special information for this country - Country_Default, // set the default country with SetCountry() method - // or use the default country with any other - - // TODO add more countries (for this we must know about DST and/or - // holidays for this country) - - // Western European countries: we assume that they all follow the same - // DST rules (true or false?) - Country_WesternEurope_Start, - Country_EEC = Country_WesternEurope_Start, - France, - Germany, - UK, - Country_WesternEurope_End = UK, - - Russia, - USA - }; - // symbolic names for the months - enum Month - { - Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, Inv_Month - }; - - // symbolic names for the weekdays - enum WeekDay - { - Sun, Mon, Tue, Wed, Thu, Fri, Sat, Inv_WeekDay - }; - - // invalid value for the year - enum Year - { - Inv_Year = SHRT_MIN // should hold in wxDateTime_t - }; - - // flags for GetWeekDayName and GetMonthName - enum NameFlags - { - Name_Full = 0x01, // return full name - Name_Abbr = 0x02 // return abbreviated name - }; - - // flags for GetWeekOfYear and GetWeekOfMonth - enum WeekFlags - { - Default_First, // Sunday_First for US, Monday_First for the rest - Monday_First, // week starts with a Monday - Sunday_First // week starts with a Sunday - }; - - // helper classes - // ------------------------------------------------------------------------ - - // a class representing a time zone: basically, this is just an offset - // (in seconds) from GMT - class WXDLLIMPEXP_BASE TimeZone - { - public: - TimeZone(TZ tz); - - // create time zone object with the given offset - TimeZone(long offset = 0) { m_offset = offset; } - - static TimeZone Make(long offset) - { - TimeZone tz; - tz.m_offset = offset; - return tz; - } - - long GetOffset() const { return m_offset; } - - private: - // offset for this timezone from GMT in seconds - long m_offset; - }; - - // standard struct tm is limited to the years from 1900 (because - // tm_year field is the offset from 1900), so we use our own struct - // instead to represent broken down time - // - // NB: this struct should always be kept normalized (i.e. mon should - // be < 12, 1 <= day <= 31 &c), so use AddMonths(), AddDays() - // instead of modifying the member fields directly! - struct WXDLLIMPEXP_BASE Tm - { - wxDateTime_t msec, sec, min, hour, - mday, // Day of the month in 1..31 range. - yday; // Day of the year in 0..365 range. - Month mon; - int year; - - // default ctor inits the object to an invalid value - Tm(); - - // ctor from struct tm and the timezone - Tm(const struct tm& tm, const TimeZone& tz); - - // check that the given date/time is valid (in Gregorian calendar) - bool IsValid() const; - - // get the week day - WeekDay GetWeekDay() // not const because wday may be changed - { - if ( wday == Inv_WeekDay ) - ComputeWeekDay(); - - return (WeekDay)wday; - } - - // add the given number of months to the date keeping it normalized - void AddMonths(int monDiff); - - // add the given number of months to the date keeping it normalized - void AddDays(int dayDiff); - - private: - // compute the weekday from other fields - void ComputeWeekDay(); - - // the timezone we correspond to - TimeZone m_tz; - - // This value can only be accessed via GetWeekDay() and not directly - // because it's not always computed when creating this object and may - // need to be calculated on demand. - wxDateTime_t wday; - }; - - // static methods - // ------------------------------------------------------------------------ - - // set the current country - static void SetCountry(Country country); - // get the current country - static Country GetCountry(); - - // return true if the country is a West European one (in practice, - // this means that the same DST rules as for EEC apply) - static bool IsWestEuropeanCountry(Country country = Country_Default); - - // return the current year - static int GetCurrentYear(Calendar cal = Gregorian); - - // convert the year as returned by wxDateTime::GetYear() to a year - // suitable for BC/AD notation. The difference is that BC year 1 - // corresponds to the year 0 (while BC year 0 didn't exist) and AD - // year N is just year N. - static int ConvertYearToBC(int year); - - // return the current month - static Month GetCurrentMonth(Calendar cal = Gregorian); - - // returns true if the given year is a leap year in the given calendar - static bool IsLeapYear(int year = Inv_Year, Calendar cal = Gregorian); - - // get the century (19 for 1999, 20 for 2000 and -5 for 492 BC) - static int GetCentury(int year); - - // returns the number of days in this year (356 or 355 for Gregorian - // calendar usually :-) - static wxDateTime_t GetNumberOfDays(int year, Calendar cal = Gregorian); - - // get the number of the days in the given month (default value for - // the year means the current one) - static wxDateTime_t GetNumberOfDays(Month month, - int year = Inv_Year, - Calendar cal = Gregorian); - - - // get the full (default) or abbreviated month name in the current - // locale, returns empty string on error - static wxString GetMonthName(Month month, - NameFlags flags = Name_Full); - - // get the standard English full (default) or abbreviated month name - static wxString GetEnglishMonthName(Month month, - NameFlags flags = Name_Full); - - // get the full (default) or abbreviated weekday name in the current - // locale, returns empty string on error - static wxString GetWeekDayName(WeekDay weekday, - NameFlags flags = Name_Full); - - // get the standard English full (default) or abbreviated weekday name - static wxString GetEnglishWeekDayName(WeekDay weekday, - NameFlags flags = Name_Full); - - // get the AM and PM strings in the current locale (may be empty) - static void GetAmPmStrings(wxString *am, wxString *pm); - - // return true if the given country uses DST for this year - static bool IsDSTApplicable(int year = Inv_Year, - Country country = Country_Default); - - // get the beginning of DST for this year, will return invalid object - // if no DST applicable in this year. The default value of the - // parameter means to take the current year. - static wxDateTime GetBeginDST(int year = Inv_Year, - Country country = Country_Default); - // get the end of DST for this year, will return invalid object - // if no DST applicable in this year. The default value of the - // parameter means to take the current year. - static wxDateTime GetEndDST(int year = Inv_Year, - Country country = Country_Default); - - // return the wxDateTime object for the current time - static inline wxDateTime Now(); - - // return the wxDateTime object for the current time with millisecond - // precision (if available on this platform) - static wxDateTime UNow(); - - // return the wxDateTime object for today midnight: i.e. as Now() but - // with time set to 0 - static inline wxDateTime Today(); - - // constructors: you should test whether the constructor succeeded with - // IsValid() function. The values Inv_Month and Inv_Year for the - // parameters mean take current month and/or year values. - // ------------------------------------------------------------------------ - - // default ctor does not initialize the object, use Set()! - wxDateTime() { m_time = wxLongLong(wxINT32_MIN, 0); } - - // from time_t: seconds since the Epoch 00:00:00 UTC, Jan 1, 1970) - inline wxDateTime(time_t timet); - // from broken down time/date (only for standard Unix range) - inline wxDateTime(const struct tm& tm); - // from broken down time/date (any range) - inline wxDateTime(const Tm& tm); - - // from JDN (beware of rounding errors) - inline wxDateTime(double jdn); - - // from separate values for each component, date set to today - inline wxDateTime(wxDateTime_t hour, - wxDateTime_t minute = 0, - wxDateTime_t second = 0, - wxDateTime_t millisec = 0); - // from separate values for each component with explicit date - inline wxDateTime(wxDateTime_t day, // day of the month - Month month, - int year = Inv_Year, // 1999, not 99 please! - wxDateTime_t hour = 0, - wxDateTime_t minute = 0, - wxDateTime_t second = 0, - wxDateTime_t millisec = 0); -#ifdef __WINDOWS__ - wxDateTime(const struct _SYSTEMTIME& st) - { - SetFromMSWSysTime(st); - } -#endif - - // default copy ctor ok - - // no dtor - - // assignment operators and Set() functions: all non const methods return - // the reference to this object. IsValid() should be used to test whether - // the function succeeded. - // ------------------------------------------------------------------------ - - // set to the current time - inline wxDateTime& SetToCurrent(); - - // set to given time_t value - inline wxDateTime& Set(time_t timet); - - // set to given broken down time/date - wxDateTime& Set(const struct tm& tm); - - // set to given broken down time/date - inline wxDateTime& Set(const Tm& tm); - - // set to given JDN (beware of rounding errors) - wxDateTime& Set(double jdn); - - // set to given time, date = today - wxDateTime& Set(wxDateTime_t hour, - wxDateTime_t minute = 0, - wxDateTime_t second = 0, - wxDateTime_t millisec = 0); - - // from separate values for each component with explicit date - // (defaults for month and year are the current values) - wxDateTime& Set(wxDateTime_t day, - Month month, - int year = Inv_Year, // 1999, not 99 please! - wxDateTime_t hour = 0, - wxDateTime_t minute = 0, - wxDateTime_t second = 0, - wxDateTime_t millisec = 0); - - // resets time to 00:00:00, doesn't change the date - wxDateTime& ResetTime(); - - // get the date part of this object only, i.e. the object which has the - // same date as this one but time of 00:00:00 - wxDateTime GetDateOnly() const; - - // the following functions don't change the values of the other - // fields, i.e. SetMinute() won't change either hour or seconds value - - // set the year - wxDateTime& SetYear(int year); - // set the month - wxDateTime& SetMonth(Month month); - // set the day of the month - wxDateTime& SetDay(wxDateTime_t day); - // set hour - wxDateTime& SetHour(wxDateTime_t hour); - // set minute - wxDateTime& SetMinute(wxDateTime_t minute); - // set second - wxDateTime& SetSecond(wxDateTime_t second); - // set millisecond - wxDateTime& SetMillisecond(wxDateTime_t millisecond); - - // assignment operator from time_t - wxDateTime& operator=(time_t timet) { return Set(timet); } - - // assignment operator from broken down time/date - wxDateTime& operator=(const struct tm& tm) { return Set(tm); } - - // assignment operator from broken down time/date - wxDateTime& operator=(const Tm& tm) { return Set(tm); } - - // default assignment operator is ok - - // calendar calculations (functions which set the date only leave the time - // unchanged, e.g. don't explicitly zero it): SetXXX() functions modify the - // object itself, GetXXX() ones return a new object. - // ------------------------------------------------------------------------ - - // set to the given week day in the same week as this one - wxDateTime& SetToWeekDayInSameWeek(WeekDay weekday, - WeekFlags flags = Monday_First); - inline wxDateTime GetWeekDayInSameWeek(WeekDay weekday, - WeekFlags flags = Monday_First) const; - - // set to the next week day following this one - wxDateTime& SetToNextWeekDay(WeekDay weekday); - inline wxDateTime GetNextWeekDay(WeekDay weekday) const; - - // set to the previous week day before this one - wxDateTime& SetToPrevWeekDay(WeekDay weekday); - inline wxDateTime GetPrevWeekDay(WeekDay weekday) const; - - // set to Nth occurrence of given weekday in the given month of the - // given year (time is set to 0), return true on success and false on - // failure. n may be positive (1..5) or negative to count from the end - // of the month (see helper function SetToLastWeekDay()) - bool SetToWeekDay(WeekDay weekday, - int n = 1, - Month month = Inv_Month, - int year = Inv_Year); - inline wxDateTime GetWeekDay(WeekDay weekday, - int n = 1, - Month month = Inv_Month, - int year = Inv_Year) const; - - // sets to the last weekday in the given month, year - inline bool SetToLastWeekDay(WeekDay weekday, - Month month = Inv_Month, - int year = Inv_Year); - inline wxDateTime GetLastWeekDay(WeekDay weekday, - Month month = Inv_Month, - int year = Inv_Year); - - // returns the date corresponding to the given week day of the given - // week (in ISO notation) of the specified year - static wxDateTime SetToWeekOfYear(int year, - wxDateTime_t numWeek, - WeekDay weekday = Mon); - - // sets the date to the last day of the given (or current) month or the - // given (or current) year - wxDateTime& SetToLastMonthDay(Month month = Inv_Month, - int year = Inv_Year); - inline wxDateTime GetLastMonthDay(Month month = Inv_Month, - int year = Inv_Year) const; - - // sets to the given year day (1..365 or 366) - wxDateTime& SetToYearDay(wxDateTime_t yday); - inline wxDateTime GetYearDay(wxDateTime_t yday) const; - - // The definitions below were taken verbatim from - // - // http://www.capecod.net/~pbaum/date/date0.htm - // - // (Peter Baum's home page) - // - // definition: The Julian Day Number, Julian Day, or JD of a - // particular instant of time is the number of days and fractions of a - // day since 12 hours Universal Time (Greenwich mean noon) on January - // 1 of the year -4712, where the year is given in the Julian - // proleptic calendar. The idea of using this reference date was - // originally proposed by Joseph Scalizer in 1582 to count years but - // it was modified by 19th century astronomers to count days. One - // could have equivalently defined the reference time to be noon of - // November 24, -4713 if were understood that Gregorian calendar rules - // were applied. Julian days are Julian Day Numbers and are not to be - // confused with Julian dates. - // - // definition: The Rata Die number is a date specified as the number - // of days relative to a base date of December 31 of the year 0. Thus - // January 1 of the year 1 is Rata Die day 1. - - // get the Julian Day number (the fractional part specifies the time of - // the day, related to noon - beware of rounding errors!) - double GetJulianDayNumber() const; - double GetJDN() const { return GetJulianDayNumber(); } - - // get the Modified Julian Day number: it is equal to JDN - 2400000.5 - // and so integral MJDs correspond to the midnights (and not noons). - // MJD 0 is Nov 17, 1858 - double GetModifiedJulianDayNumber() const { return GetJDN() - 2400000.5; } - double GetMJD() const { return GetModifiedJulianDayNumber(); } - - // get the Rata Die number - double GetRataDie() const; - - // TODO algorithms for calculating some important dates, such as - // religious holidays (Easter...) or moon/solar eclipses? Some - // algorithms can be found in the calendar FAQ - - - // Timezone stuff: a wxDateTime object constructed using given - // day/month/year/hour/min/sec values is interpreted as this moment in - // local time. Using the functions below, it may be converted to another - // time zone (e.g., the Unix epoch is wxDateTime(1, Jan, 1970).ToGMT()). - // - // These functions try to handle DST internally, but there is no magical - // way to know all rules for it in all countries in the world, so if the - // program can handle it itself (or doesn't want to handle it at all for - // whatever reason), the DST handling can be disabled with noDST. - // ------------------------------------------------------------------------ - - // transform to any given timezone - inline wxDateTime ToTimezone(const TimeZone& tz, bool noDST = false) const; - wxDateTime& MakeTimezone(const TimeZone& tz, bool noDST = false); - - // interpret current value as being in another timezone and transform - // it to local one - inline wxDateTime FromTimezone(const TimeZone& tz, bool noDST = false) const; - wxDateTime& MakeFromTimezone(const TimeZone& tz, bool noDST = false); - - // transform to/from GMT/UTC - wxDateTime ToUTC(bool noDST = false) const { return ToTimezone(UTC, noDST); } - wxDateTime& MakeUTC(bool noDST = false) { return MakeTimezone(UTC, noDST); } - - wxDateTime ToGMT(bool noDST = false) const { return ToUTC(noDST); } - wxDateTime& MakeGMT(bool noDST = false) { return MakeUTC(noDST); } - - wxDateTime FromUTC(bool noDST = false) const - { return FromTimezone(UTC, noDST); } - wxDateTime& MakeFromUTC(bool noDST = false) - { return MakeFromTimezone(UTC, noDST); } - - // is daylight savings time in effect at this moment according to the - // rules of the specified country? - // - // Return value is > 0 if DST is in effect, 0 if it is not and -1 if - // the information is not available (this is compatible with ANSI C) - int IsDST(Country country = Country_Default) const; - - - // accessors: many of them take the timezone parameter which indicates the - // timezone for which to make the calculations and the default value means - // to do it for the current timezone of this machine (even if the function - // only operates with the date it's necessary because a date may wrap as - // result of timezone shift) - // ------------------------------------------------------------------------ - - // is the date valid? - inline bool IsValid() const { return m_time != wxInvalidDateTime.m_time; } - - // get the broken down date/time representation in the given timezone - // - // If you wish to get several time components (day, month and year), - // consider getting the whole Tm strcuture first and retrieving the - // value from it - this is much more efficient - Tm GetTm(const TimeZone& tz = Local) const; - - // get the number of seconds since the Unix epoch - returns (time_t)-1 - // if the value is out of range - inline time_t GetTicks() const; - - // get the century, same as GetCentury(GetYear()) - int GetCentury(const TimeZone& tz = Local) const - { return GetCentury(GetYear(tz)); } - // get the year (returns Inv_Year if date is invalid) - int GetYear(const TimeZone& tz = Local) const - { return GetTm(tz).year; } - // get the month (Inv_Month if date is invalid) - Month GetMonth(const TimeZone& tz = Local) const - { return (Month)GetTm(tz).mon; } - // get the month day (in 1..31 range, 0 if date is invalid) - wxDateTime_t GetDay(const TimeZone& tz = Local) const - { return GetTm(tz).mday; } - // get the day of the week (Inv_WeekDay if date is invalid) - WeekDay GetWeekDay(const TimeZone& tz = Local) const - { return GetTm(tz).GetWeekDay(); } - // get the hour of the day - wxDateTime_t GetHour(const TimeZone& tz = Local) const - { return GetTm(tz).hour; } - // get the minute - wxDateTime_t GetMinute(const TimeZone& tz = Local) const - { return GetTm(tz).min; } - // get the second - wxDateTime_t GetSecond(const TimeZone& tz = Local) const - { return GetTm(tz).sec; } - // get milliseconds - wxDateTime_t GetMillisecond(const TimeZone& tz = Local) const - { return GetTm(tz).msec; } - - // get the day since the year start (1..366, 0 if date is invalid) - wxDateTime_t GetDayOfYear(const TimeZone& tz = Local) const; - // get the week number since the year start (1..52 or 53, 0 if date is - // invalid) - wxDateTime_t GetWeekOfYear(WeekFlags flags = Monday_First, - const TimeZone& tz = Local) const; - // get the year to which the number returned from GetWeekOfYear() - // belongs - int GetWeekBasedYear(const TimeZone& tz = Local) const; - // get the week number since the month start (1..5, 0 if date is - // invalid) - wxDateTime_t GetWeekOfMonth(WeekFlags flags = Monday_First, - const TimeZone& tz = Local) const; - - // is this date a work day? This depends on a country, of course, - // because the holidays are different in different countries - bool IsWorkDay(Country country = Country_Default) const; - - // dos date and time format - // ------------------------------------------------------------------------ - - // set from the DOS packed format - wxDateTime& SetFromDOS(unsigned long ddt); - - // pack the date in DOS format - unsigned long GetAsDOS() const; - - // SYSTEMTIME format - // ------------------------------------------------------------------------ -#ifdef __WINDOWS__ - // convert SYSTEMTIME to wxDateTime - wxDateTime& SetFromMSWSysTime(const struct _SYSTEMTIME& st); - - // convert wxDateTime to SYSTEMTIME - void GetAsMSWSysTime(struct _SYSTEMTIME* st) const; - - // same as above but only take date part into account, time is always zero - wxDateTime& SetFromMSWSysDate(const struct _SYSTEMTIME& st); - void GetAsMSWSysDate(struct _SYSTEMTIME* st) const; -#endif // __WINDOWS__ - - // comparison (see also functions below for operator versions) - // ------------------------------------------------------------------------ - - // returns true if the two moments are strictly identical - inline bool IsEqualTo(const wxDateTime& datetime) const; - - // returns true if the date is strictly earlier than the given one - inline bool IsEarlierThan(const wxDateTime& datetime) const; - - // returns true if the date is strictly later than the given one - inline bool IsLaterThan(const wxDateTime& datetime) const; - - // returns true if the date is strictly in the given range - inline bool IsStrictlyBetween(const wxDateTime& t1, - const wxDateTime& t2) const; - - // returns true if the date is in the given range - inline bool IsBetween(const wxDateTime& t1, const wxDateTime& t2) const; - - // do these two objects refer to the same date? - inline bool IsSameDate(const wxDateTime& dt) const; - - // do these two objects have the same time? - inline bool IsSameTime(const wxDateTime& dt) const; - - // are these two objects equal up to given timespan? - inline bool IsEqualUpTo(const wxDateTime& dt, const wxTimeSpan& ts) const; - - inline bool operator<(const wxDateTime& dt) const - { - wxASSERT_MSG( IsValid() && dt.IsValid(), wxT("invalid wxDateTime") ); - return GetValue() < dt.GetValue(); - } - - inline bool operator<=(const wxDateTime& dt) const - { - wxASSERT_MSG( IsValid() && dt.IsValid(), wxT("invalid wxDateTime") ); - return GetValue() <= dt.GetValue(); - } - - inline bool operator>(const wxDateTime& dt) const - { - wxASSERT_MSG( IsValid() && dt.IsValid(), wxT("invalid wxDateTime") ); - return GetValue() > dt.GetValue(); - } - - inline bool operator>=(const wxDateTime& dt) const - { - wxASSERT_MSG( IsValid() && dt.IsValid(), wxT("invalid wxDateTime") ); - return GetValue() >= dt.GetValue(); - } - - inline bool operator==(const wxDateTime& dt) const - { - wxASSERT_MSG( IsValid() && dt.IsValid(), wxT("invalid wxDateTime") ); - return GetValue() == dt.GetValue(); - } - - inline bool operator!=(const wxDateTime& dt) const - { - wxASSERT_MSG( IsValid() && dt.IsValid(), wxT("invalid wxDateTime") ); - return GetValue() != dt.GetValue(); - } - - // arithmetics with dates (see also below for more operators) - // ------------------------------------------------------------------------ - - // return the sum of the date with a time span (positive or negative) - inline wxDateTime Add(const wxTimeSpan& diff) const; - // add a time span (positive or negative) - inline wxDateTime& Add(const wxTimeSpan& diff); - // add a time span (positive or negative) - inline wxDateTime& operator+=(const wxTimeSpan& diff); - inline wxDateTime operator+(const wxTimeSpan& ts) const - { - wxDateTime dt(*this); - dt.Add(ts); - return dt; - } - - // return the difference of the date with a time span - inline wxDateTime Subtract(const wxTimeSpan& diff) const; - // subtract a time span (positive or negative) - inline wxDateTime& Subtract(const wxTimeSpan& diff); - // subtract a time span (positive or negative) - inline wxDateTime& operator-=(const wxTimeSpan& diff); - inline wxDateTime operator-(const wxTimeSpan& ts) const - { - wxDateTime dt(*this); - dt.Subtract(ts); - return dt; - } - - // return the sum of the date with a date span - inline wxDateTime Add(const wxDateSpan& diff) const; - // add a date span (positive or negative) - wxDateTime& Add(const wxDateSpan& diff); - // add a date span (positive or negative) - inline wxDateTime& operator+=(const wxDateSpan& diff); - inline wxDateTime operator+(const wxDateSpan& ds) const - { - wxDateTime dt(*this); - dt.Add(ds); - return dt; - } - - // return the difference of the date with a date span - inline wxDateTime Subtract(const wxDateSpan& diff) const; - // subtract a date span (positive or negative) - inline wxDateTime& Subtract(const wxDateSpan& diff); - // subtract a date span (positive or negative) - inline wxDateTime& operator-=(const wxDateSpan& diff); - inline wxDateTime operator-(const wxDateSpan& ds) const - { - wxDateTime dt(*this); - dt.Subtract(ds); - return dt; - } - - // return the difference between two dates - inline wxTimeSpan Subtract(const wxDateTime& dt) const; - inline wxTimeSpan operator-(const wxDateTime& dt2) const; - - wxDateSpan DiffAsDateSpan(const wxDateTime& dt) const; - - // conversion to/from text - // ------------------------------------------------------------------------ - - // all conversions functions return true to indicate whether parsing - // succeeded or failed and fill in the provided end iterator, which must - // not be NULL, with the location of the character where the parsing - // stopped (this will be end() of the passed string if everything was - // parsed) - - // parse a string in RFC 822 format (found e.g. in mail headers and - // having the form "Wed, 10 Feb 1999 19:07:07 +0100") - bool ParseRfc822Date(const wxString& date, - wxString::const_iterator *end); - - // parse a date/time in the given format (see strptime(3)), fill in - // the missing (in the string) fields with the values of dateDef (by - // default, they will not change if they had valid values or will - // default to Today() otherwise) - bool ParseFormat(const wxString& date, - const wxString& format, - const wxDateTime& dateDef, - wxString::const_iterator *end); - - bool ParseFormat(const wxString& date, - const wxString& format, - wxString::const_iterator *end) - { - return ParseFormat(date, format, wxDefaultDateTime, end); - } - - bool ParseFormat(const wxString& date, - wxString::const_iterator *end) - { - return ParseFormat(date, wxDefaultDateTimeFormat, wxDefaultDateTime, end); - } - - // parse a string containing date, time or both in ISO 8601 format - // - // notice that these functions are new in wx 3.0 and so we don't - // provide compatibility overloads for them - bool ParseISODate(const wxString& date) - { - wxString::const_iterator end; - return ParseFormat(date, wxS("%Y-%m-%d"), &end) && end == date.end(); - } - - bool ParseISOTime(const wxString& time) - { - wxString::const_iterator end; - return ParseFormat(time, wxS("%H:%M:%S"), &end) && end == time.end(); - } - - bool ParseISOCombined(const wxString& datetime, char sep = 'T') - { - wxString::const_iterator end; - const wxString fmt = wxS("%Y-%m-%d") + wxString(sep) + wxS("%H:%M:%S"); - return ParseFormat(datetime, fmt, &end) && end == datetime.end(); - } - - // parse a string containing the date/time in "free" format, this - // function will try to make an educated guess at the string contents - bool ParseDateTime(const wxString& datetime, - wxString::const_iterator *end); - - // parse a string containing the date only in "free" format (less - // flexible than ParseDateTime) - bool ParseDate(const wxString& date, - wxString::const_iterator *end); - - // parse a string containing the time only in "free" format - bool ParseTime(const wxString& time, - wxString::const_iterator *end); - - - // this function accepts strftime()-like format string (default - // argument corresponds to the preferred date and time representation - // for the current locale) and returns the string containing the - // resulting text representation - wxString Format(const wxString& format = wxDefaultDateTimeFormat, - const TimeZone& tz = Local) const; - // preferred date representation for the current locale - wxString FormatDate() const { return Format(wxS("%x")); } - // preferred time representation for the current locale - wxString FormatTime() const { return Format(wxS("%X")); } - // returns the string representing the date in ISO 8601 format - // (YYYY-MM-DD) - wxString FormatISODate() const { return Format(wxS("%Y-%m-%d")); } - // returns the string representing the time in ISO 8601 format - // (HH:MM:SS) - wxString FormatISOTime() const { return Format(wxS("%H:%M:%S")); } - // return the combined date time representation in ISO 8601 format; the - // separator character should be 'T' according to the standard but it - // can also be useful to set it to ' ' - wxString FormatISOCombined(char sep = 'T') const - { return FormatISODate() + sep + FormatISOTime(); } - - - // backwards compatible versions of the parsing functions: they return an - // object representing the next character following the date specification - // (i.e. the one where the scan had to stop) or a special NULL-like object - // on failure - // - // they're not deprecated because a lot of existing code uses them and - // there is no particular harm in keeping them but you should still prefer - // the versions above in the new code - wxAnyStrPtr ParseRfc822Date(const wxString& date) - { - wxString::const_iterator end; - return ParseRfc822Date(date, &end) ? wxAnyStrPtr(date, end) - : wxAnyStrPtr(); - } - - wxAnyStrPtr ParseFormat(const wxString& date, - const wxString& format = wxDefaultDateTimeFormat, - const wxDateTime& dateDef = wxDefaultDateTime) - { - wxString::const_iterator end; - return ParseFormat(date, format, dateDef, &end) ? wxAnyStrPtr(date, end) - : wxAnyStrPtr(); - } - - wxAnyStrPtr ParseDateTime(const wxString& datetime) - { - wxString::const_iterator end; - return ParseDateTime(datetime, &end) ? wxAnyStrPtr(datetime, end) - : wxAnyStrPtr(); - } - - wxAnyStrPtr ParseDate(const wxString& date) - { - wxString::const_iterator end; - return ParseDate(date, &end) ? wxAnyStrPtr(date, end) - : wxAnyStrPtr(); - } - - wxAnyStrPtr ParseTime(const wxString& time) - { - wxString::const_iterator end; - return ParseTime(time, &end) ? wxAnyStrPtr(time, end) - : wxAnyStrPtr(); - } - - // In addition to wxAnyStrPtr versions above we also must provide the - // overloads for C strings as we must return a pointer into the original - // string and not inside a temporary wxString which would have been created - // if the overloads above were used. - // - // And then we also have to provide the overloads for wxCStrData, as usual. - // Unfortunately those ones can't return anything as we don't have any - // sufficiently long-lived wxAnyStrPtr to return from them: any temporary - // strings it would point to would be destroyed when this function returns - // making it impossible to dereference the return value. So we just don't - // return anything from here which at least allows to keep compatibility - // with the code not testing the return value. Other uses of this method - // need to be converted to use one of the new bool-returning overloads - // above. - void ParseRfc822Date(const wxCStrData& date) - { ParseRfc822Date(wxString(date)); } - const char* ParseRfc822Date(const char* date); - const wchar_t* ParseRfc822Date(const wchar_t* date); - - void ParseFormat(const wxCStrData& date, - const wxString& format = wxDefaultDateTimeFormat, - const wxDateTime& dateDef = wxDefaultDateTime) - { ParseFormat(wxString(date), format, dateDef); } - const char* ParseFormat(const char* date, - const wxString& format = wxDefaultDateTimeFormat, - const wxDateTime& dateDef = wxDefaultDateTime); - const wchar_t* ParseFormat(const wchar_t* date, - const wxString& format = wxDefaultDateTimeFormat, - const wxDateTime& dateDef = wxDefaultDateTime); - - void ParseDateTime(const wxCStrData& datetime) - { ParseDateTime(wxString(datetime)); } - const char* ParseDateTime(const char* datetime); - const wchar_t* ParseDateTime(const wchar_t* datetime); - - void ParseDate(const wxCStrData& date) - { ParseDate(wxString(date)); } - const char* ParseDate(const char* date); - const wchar_t* ParseDate(const wchar_t* date); - - void ParseTime(const wxCStrData& time) - { ParseTime(wxString(time)); } - const char* ParseTime(const char* time); - const wchar_t* ParseTime(const wchar_t* time); - - - // implementation - // ------------------------------------------------------------------------ - - // construct from internal representation - wxDateTime(const wxLongLong& time) { m_time = time; } - - // get the internal representation - inline wxLongLong GetValue() const; - - // a helper function to get the current time_t - static time_t GetTimeNow() { return time(NULL); } - - // another one to get the current time broken down - static struct tm *GetTmNow() - { - static struct tm l_CurrentTime; - return GetTmNow(&l_CurrentTime); - } - - // get current time using thread-safe function - static struct tm *GetTmNow(struct tm *tmstruct); - -private: - // the current country - as it's the same for all program objects (unless - // it runs on a _really_ big cluster system :-), this is a static member: - // see SetCountry() and GetCountry() - static Country ms_country; - - // this constant is used to transform a time_t value to the internal - // representation, as time_t is in seconds and we use milliseconds it's - // fixed to 1000 - static const long TIME_T_FACTOR; - - // returns true if we fall in range in which we can use standard ANSI C - // functions - inline bool IsInStdRange() const; - - // the internal representation of the time is the amount of milliseconds - // elapsed since the origin which is set by convention to the UNIX/C epoch - // value: the midnight of January 1, 1970 (UTC) - wxLongLong m_time; -}; - -// ---------------------------------------------------------------------------- -// This class contains a difference between 2 wxDateTime values, so it makes -// sense to add it to wxDateTime and it is the result of subtraction of 2 -// objects of that class. See also wxDateSpan. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxTimeSpan -{ -public: - // constructors - // ------------------------------------------------------------------------ - - // return the timespan for the given number of milliseconds - static wxTimeSpan Milliseconds(wxLongLong ms) { return wxTimeSpan(0, 0, 0, ms); } - static wxTimeSpan Millisecond() { return Milliseconds(1); } - - // return the timespan for the given number of seconds - static wxTimeSpan Seconds(wxLongLong sec) { return wxTimeSpan(0, 0, sec); } - static wxTimeSpan Second() { return Seconds(1); } - - // return the timespan for the given number of minutes - static wxTimeSpan Minutes(long min) { return wxTimeSpan(0, min, 0 ); } - static wxTimeSpan Minute() { return Minutes(1); } - - // return the timespan for the given number of hours - static wxTimeSpan Hours(long hours) { return wxTimeSpan(hours, 0, 0); } - static wxTimeSpan Hour() { return Hours(1); } - - // return the timespan for the given number of days - static wxTimeSpan Days(long days) { return Hours(24 * days); } - static wxTimeSpan Day() { return Days(1); } - - // return the timespan for the given number of weeks - static wxTimeSpan Weeks(long days) { return Days(7 * days); } - static wxTimeSpan Week() { return Weeks(1); } - - // default ctor constructs the 0 time span - wxTimeSpan() { } - - // from separate values for each component, date set to 0 (hours are - // not restricted to 0..24 range, neither are minutes, seconds or - // milliseconds) - inline wxTimeSpan(long hours, - long minutes = 0, - wxLongLong seconds = 0, - wxLongLong milliseconds = 0); - - // default copy ctor is ok - - // no dtor - - // arithmetics with time spans (see also below for more operators) - // ------------------------------------------------------------------------ - - // return the sum of two timespans - inline wxTimeSpan Add(const wxTimeSpan& diff) const; - // add two timespans together - inline wxTimeSpan& Add(const wxTimeSpan& diff); - // add two timespans together - wxTimeSpan& operator+=(const wxTimeSpan& diff) { return Add(diff); } - inline wxTimeSpan operator+(const wxTimeSpan& ts) const - { - return wxTimeSpan(GetValue() + ts.GetValue()); - } - - // return the difference of two timespans - inline wxTimeSpan Subtract(const wxTimeSpan& diff) const; - // subtract another timespan - inline wxTimeSpan& Subtract(const wxTimeSpan& diff); - // subtract another timespan - wxTimeSpan& operator-=(const wxTimeSpan& diff) { return Subtract(diff); } - inline wxTimeSpan operator-(const wxTimeSpan& ts) - { - return wxTimeSpan(GetValue() - ts.GetValue()); - } - - // multiply timespan by a scalar - inline wxTimeSpan Multiply(int n) const; - // multiply timespan by a scalar - inline wxTimeSpan& Multiply(int n); - // multiply timespan by a scalar - wxTimeSpan& operator*=(int n) { return Multiply(n); } - inline wxTimeSpan operator*(int n) const - { - return wxTimeSpan(*this).Multiply(n); - } - - // return this timespan with opposite sign - wxTimeSpan Negate() const { return wxTimeSpan(-GetValue()); } - // negate the value of the timespan - wxTimeSpan& Neg() { m_diff = -GetValue(); return *this; } - // negate the value of the timespan - wxTimeSpan& operator-() { return Neg(); } - - // return the absolute value of the timespan: does _not_ modify the - // object - inline wxTimeSpan Abs() const; - - // there is intentionally no division because we don't want to - // introduce rounding errors in time calculations - - // comparaison (see also operator versions below) - // ------------------------------------------------------------------------ - - // is the timespan null? - bool IsNull() const { return m_diff == 0l; } - // returns true if the timespan is null - bool operator!() const { return !IsNull(); } - - // is the timespan positive? - bool IsPositive() const { return m_diff > 0l; } - - // is the timespan negative? - bool IsNegative() const { return m_diff < 0l; } - - // are two timespans equal? - inline bool IsEqualTo(const wxTimeSpan& ts) const; - // compare two timestamps: works with the absolute values, i.e. -2 - // hours is longer than 1 hour. Also, it will return false if the - // timespans are equal in absolute value. - inline bool IsLongerThan(const wxTimeSpan& ts) const; - // compare two timestamps: works with the absolute values, i.e. 1 - // hour is shorter than -2 hours. Also, it will return false if the - // timespans are equal in absolute value. - bool IsShorterThan(const wxTimeSpan& t) const; - - inline bool operator<(const wxTimeSpan &ts) const - { - return GetValue() < ts.GetValue(); - } - - inline bool operator<=(const wxTimeSpan &ts) const - { - return GetValue() <= ts.GetValue(); - } - - inline bool operator>(const wxTimeSpan &ts) const - { - return GetValue() > ts.GetValue(); - } - - inline bool operator>=(const wxTimeSpan &ts) const - { - return GetValue() >= ts.GetValue(); - } - - inline bool operator==(const wxTimeSpan &ts) const - { - return GetValue() == ts.GetValue(); - } - - inline bool operator!=(const wxTimeSpan &ts) const - { - return GetValue() != ts.GetValue(); - } - - // breaking into days, hours, minutes and seconds - // ------------------------------------------------------------------------ - - // get the max number of weeks in this timespan - inline int GetWeeks() const; - // get the max number of days in this timespan - inline int GetDays() const; - // get the max number of hours in this timespan - inline int GetHours() const; - // get the max number of minutes in this timespan - inline int GetMinutes() const; - // get the max number of seconds in this timespan - inline wxLongLong GetSeconds() const; - // get the number of milliseconds in this timespan - wxLongLong GetMilliseconds() const { return m_diff; } - - // conversion to text - // ------------------------------------------------------------------------ - - // this function accepts strftime()-like format string (default - // argument corresponds to the preferred date and time representation - // for the current locale) and returns the string containing the - // resulting text representation. Notice that only some of format - // specifiers valid for wxDateTime are valid for wxTimeSpan: hours, - // minutes and seconds make sense, but not "PM/AM" string for example. - wxString Format(const wxString& format = wxDefaultTimeSpanFormat) const; - - // implementation - // ------------------------------------------------------------------------ - - // construct from internal representation - wxTimeSpan(const wxLongLong& diff) { m_diff = diff; } - - // get the internal representation - wxLongLong GetValue() const { return m_diff; } - -private: - // the (signed) time span in milliseconds - wxLongLong m_diff; -}; - -// ---------------------------------------------------------------------------- -// This class is a "logical time span" and is useful for implementing program -// logic for such things as "add one month to the date" which, in general, -// doesn't mean to add 60*60*24*31 seconds to it, but to take the same date -// the next month (to understand that this is indeed different consider adding -// one month to Feb, 15 - we want to get Mar, 15, of course). -// -// When adding a month to the date, all lesser components (days, hours, ...) -// won't be changed unless the resulting date would be invalid: for example, -// Jan 31 + 1 month will be Feb 28, not (non existing) Feb 31. -// -// Because of this feature, adding and subtracting back again the same -// wxDateSpan will *not*, in general give back the original date: Feb 28 - 1 -// month will be Jan 28, not Jan 31! -// -// wxDateSpan can be either positive or negative. They may be -// multiplied by scalars which multiply all deltas by the scalar: i.e. 2*(1 -// month and 1 day) is 2 months and 2 days. They can be added together and -// with wxDateTime or wxTimeSpan, but the type of result is different for each -// case. -// -// Beware about weeks: if you specify both weeks and days, the total number of -// days added will be 7*weeks + days! See also GetTotalDays() function. -// -// Equality operators are defined for wxDateSpans. Two datespans are equal if -// they both give the same target date when added to *every* source date. -// Thus wxDateSpan::Months(1) is not equal to wxDateSpan::Days(30), because -// they not give the same date when added to 1 Feb. But wxDateSpan::Days(14) is -// equal to wxDateSpan::Weeks(2) -// -// Finally, notice that for adding hours, minutes &c you don't need this -// class: wxTimeSpan will do the job because there are no subtleties -// associated with those. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxDateSpan -{ -public: - // constructors - // ------------------------------------------------------------------------ - - // this many years/months/weeks/days - wxDateSpan(int years = 0, int months = 0, int weeks = 0, int days = 0) - { - m_years = years; - m_months = months; - m_weeks = weeks; - m_days = days; - } - - // get an object for the given number of days - static wxDateSpan Days(int days) { return wxDateSpan(0, 0, 0, days); } - static wxDateSpan Day() { return Days(1); } - - // get an object for the given number of weeks - static wxDateSpan Weeks(int weeks) { return wxDateSpan(0, 0, weeks, 0); } - static wxDateSpan Week() { return Weeks(1); } - - // get an object for the given number of months - static wxDateSpan Months(int mon) { return wxDateSpan(0, mon, 0, 0); } - static wxDateSpan Month() { return Months(1); } - - // get an object for the given number of years - static wxDateSpan Years(int years) { return wxDateSpan(years, 0, 0, 0); } - static wxDateSpan Year() { return Years(1); } - - // default copy ctor is ok - - // no dtor - - // accessors (all SetXXX() return the (modified) wxDateSpan object) - // ------------------------------------------------------------------------ - - // set number of years - wxDateSpan& SetYears(int n) { m_years = n; return *this; } - // set number of months - wxDateSpan& SetMonths(int n) { m_months = n; return *this; } - // set number of weeks - wxDateSpan& SetWeeks(int n) { m_weeks = n; return *this; } - // set number of days - wxDateSpan& SetDays(int n) { m_days = n; return *this; } - - // get number of years - int GetYears() const { return m_years; } - // get number of months - int GetMonths() const { return m_months; } - // returns 12*GetYears() + GetMonths() - int GetTotalMonths() const { return 12*m_years + m_months; } - // get number of weeks - int GetWeeks() const { return m_weeks; } - // get number of days - int GetDays() const { return m_days; } - // returns 7*GetWeeks() + GetDays() - int GetTotalDays() const { return 7*m_weeks + m_days; } - - // arithmetics with date spans (see also below for more operators) - // ------------------------------------------------------------------------ - - // return sum of two date spans - inline wxDateSpan Add(const wxDateSpan& other) const; - // add another wxDateSpan to us - inline wxDateSpan& Add(const wxDateSpan& other); - // add another wxDateSpan to us - inline wxDateSpan& operator+=(const wxDateSpan& other); - inline wxDateSpan operator+(const wxDateSpan& ds) const - { - return wxDateSpan(GetYears() + ds.GetYears(), - GetMonths() + ds.GetMonths(), - GetWeeks() + ds.GetWeeks(), - GetDays() + ds.GetDays()); - } - - // return difference of two date spans - inline wxDateSpan Subtract(const wxDateSpan& other) const; - // subtract another wxDateSpan from us - inline wxDateSpan& Subtract(const wxDateSpan& other); - // subtract another wxDateSpan from us - inline wxDateSpan& operator-=(const wxDateSpan& other); - inline wxDateSpan operator-(const wxDateSpan& ds) const - { - return wxDateSpan(GetYears() - ds.GetYears(), - GetMonths() - ds.GetMonths(), - GetWeeks() - ds.GetWeeks(), - GetDays() - ds.GetDays()); - } - - // return a copy of this time span with changed sign - inline wxDateSpan Negate() const; - // inverse the sign of this timespan - inline wxDateSpan& Neg(); - // inverse the sign of this timespan - wxDateSpan& operator-() { return Neg(); } - - // return the date span proportional to this one with given factor - inline wxDateSpan Multiply(int factor) const; - // multiply all components by a (signed) number - inline wxDateSpan& Multiply(int factor); - // multiply all components by a (signed) number - inline wxDateSpan& operator*=(int factor) { return Multiply(factor); } - inline wxDateSpan operator*(int n) const - { - return wxDateSpan(*this).Multiply(n); - } - - // ds1 == d2 if and only if for every wxDateTime t t + ds1 == t + ds2 - inline bool operator==(const wxDateSpan& ds) const - { - return GetYears() == ds.GetYears() && - GetMonths() == ds.GetMonths() && - GetTotalDays() == ds.GetTotalDays(); - } - - inline bool operator!=(const wxDateSpan& ds) const - { - return !(*this == ds); - } - -private: - int m_years, - m_months, - m_weeks, - m_days; -}; - -// ---------------------------------------------------------------------------- -// wxDateTimeArray: array of dates. -// ---------------------------------------------------------------------------- - -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxDateTime, wxDateTimeArray, WXDLLIMPEXP_BASE); - -// ---------------------------------------------------------------------------- -// wxDateTimeHolidayAuthority: an object of this class will decide whether a -// given date is a holiday and is used by all functions working with "work -// days". -// -// NB: the base class is an ABC, derived classes must implement the pure -// virtual methods to work with the holidays they correspond to. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_BASE wxDateTimeHolidayAuthority; -WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxDateTimeHolidayAuthority *, - wxHolidayAuthoritiesArray, - class WXDLLIMPEXP_BASE); - -class wxDateTimeHolidaysModule; -class WXDLLIMPEXP_BASE wxDateTimeHolidayAuthority -{ -friend class wxDateTimeHolidaysModule; -public: - // returns true if the given date is a holiday - static bool IsHoliday(const wxDateTime& dt); - - // fills the provided array with all holidays in the given range, returns - // the number of them - static size_t GetHolidaysInRange(const wxDateTime& dtStart, - const wxDateTime& dtEnd, - wxDateTimeArray& holidays); - - // clear the list of holiday authorities - static void ClearAllAuthorities(); - - // add a new holiday authority (the pointer will be deleted by - // wxDateTimeHolidayAuthority) - static void AddAuthority(wxDateTimeHolidayAuthority *auth); - - // the base class must have a virtual dtor - virtual ~wxDateTimeHolidayAuthority(); - -protected: - // this function is called to determine whether a given day is a holiday - virtual bool DoIsHoliday(const wxDateTime& dt) const = 0; - - // this function should fill the array with all holidays between the two - // given dates - it is implemented in the base class, but in a very - // inefficient way (it just iterates over all days and uses IsHoliday() for - // each of them), so it must be overridden in the derived class where the - // base class version may be explicitly used if needed - // - // returns the number of holidays in the given range and fills holidays - // array - virtual size_t DoGetHolidaysInRange(const wxDateTime& dtStart, - const wxDateTime& dtEnd, - wxDateTimeArray& holidays) const = 0; - -private: - // all holiday authorities - static wxHolidayAuthoritiesArray ms_authorities; -}; - -// the holidays for this class are all Saturdays and Sundays -class WXDLLIMPEXP_BASE wxDateTimeWorkDays : public wxDateTimeHolidayAuthority -{ -protected: - virtual bool DoIsHoliday(const wxDateTime& dt) const wxOVERRIDE; - virtual size_t DoGetHolidaysInRange(const wxDateTime& dtStart, - const wxDateTime& dtEnd, - wxDateTimeArray& holidays) const wxOVERRIDE; -}; - -// ============================================================================ -// inline functions implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// private macros -// ---------------------------------------------------------------------------- - -#define MILLISECONDS_PER_DAY 86400000l - -// some broken compilers (HP-UX CC) refuse to compile the "normal" version, but -// using a temp variable always might prevent other compilers from optimising -// it away - hence use of this ugly macro -#ifndef __HPUX__ - #define MODIFY_AND_RETURN(op) return wxDateTime(*this).op -#else - #define MODIFY_AND_RETURN(op) wxDateTime dt(*this); dt.op; return dt -#endif - -// ---------------------------------------------------------------------------- -// wxDateTime construction -// ---------------------------------------------------------------------------- - -inline bool wxDateTime::IsInStdRange() const -{ - // currently we don't know what is the real type of time_t so prefer to err - // on the safe side and limit it to 32 bit values which is safe everywhere - return m_time >= 0l && (m_time / TIME_T_FACTOR) < wxINT32_MAX; -} - -/* static */ -inline wxDateTime wxDateTime::Now() -{ - struct tm tmstruct; - return wxDateTime(*GetTmNow(&tmstruct)); -} - -/* static */ -inline wxDateTime wxDateTime::Today() -{ - wxDateTime dt(Now()); - dt.ResetTime(); - - return dt; -} - -inline wxDateTime& wxDateTime::Set(time_t timet) -{ - if ( timet == (time_t)-1 ) - { - m_time = wxInvalidDateTime.m_time; - } - else - { - // assign first to avoid long multiplication overflow! - m_time = timet - WX_TIME_BASE_OFFSET; - m_time *= TIME_T_FACTOR; - } - - return *this; -} - -inline wxDateTime& wxDateTime::SetToCurrent() -{ - *this = Now(); - return *this; -} - -inline wxDateTime::wxDateTime(time_t timet) -{ - Set(timet); -} - -inline wxDateTime::wxDateTime(const struct tm& tm) -{ - Set(tm); -} - -inline wxDateTime::wxDateTime(const Tm& tm) -{ - Set(tm); -} - -inline wxDateTime::wxDateTime(double jdn) -{ - Set(jdn); -} - -inline wxDateTime& wxDateTime::Set(const Tm& tm) -{ - wxASSERT_MSG( tm.IsValid(), wxT("invalid broken down date/time") ); - - return Set(tm.mday, (Month)tm.mon, tm.year, - tm.hour, tm.min, tm.sec, tm.msec); -} - -inline wxDateTime::wxDateTime(wxDateTime_t hour, - wxDateTime_t minute, - wxDateTime_t second, - wxDateTime_t millisec) -{ - Set(hour, minute, second, millisec); -} - -inline wxDateTime::wxDateTime(wxDateTime_t day, - Month month, - int year, - wxDateTime_t hour, - wxDateTime_t minute, - wxDateTime_t second, - wxDateTime_t millisec) -{ - Set(day, month, year, hour, minute, second, millisec); -} - -// ---------------------------------------------------------------------------- -// wxDateTime accessors -// ---------------------------------------------------------------------------- - -inline wxLongLong wxDateTime::GetValue() const -{ - wxASSERT_MSG( IsValid(), wxT("invalid wxDateTime")); - - return m_time; -} - -inline time_t wxDateTime::GetTicks() const -{ - wxASSERT_MSG( IsValid(), wxT("invalid wxDateTime")); - if ( !IsInStdRange() ) - { - return (time_t)-1; - } - - return (time_t)((m_time / (long)TIME_T_FACTOR).ToLong()) + WX_TIME_BASE_OFFSET; -} - -inline bool wxDateTime::SetToLastWeekDay(WeekDay weekday, - Month month, - int year) -{ - return SetToWeekDay(weekday, -1, month, year); -} - -inline wxDateTime -wxDateTime::GetWeekDayInSameWeek(WeekDay weekday, - WeekFlags WXUNUSED(flags)) const -{ - MODIFY_AND_RETURN( SetToWeekDayInSameWeek(weekday) ); -} - -inline wxDateTime wxDateTime::GetNextWeekDay(WeekDay weekday) const -{ - MODIFY_AND_RETURN( SetToNextWeekDay(weekday) ); -} - -inline wxDateTime wxDateTime::GetPrevWeekDay(WeekDay weekday) const -{ - MODIFY_AND_RETURN( SetToPrevWeekDay(weekday) ); -} - -inline wxDateTime wxDateTime::GetWeekDay(WeekDay weekday, - int n, - Month month, - int year) const -{ - wxDateTime dt(*this); - - return dt.SetToWeekDay(weekday, n, month, year) ? dt : wxInvalidDateTime; -} - -inline wxDateTime wxDateTime::GetLastWeekDay(WeekDay weekday, - Month month, - int year) -{ - wxDateTime dt(*this); - - return dt.SetToLastWeekDay(weekday, month, year) ? dt : wxInvalidDateTime; -} - -inline wxDateTime wxDateTime::GetLastMonthDay(Month month, int year) const -{ - MODIFY_AND_RETURN( SetToLastMonthDay(month, year) ); -} - -inline wxDateTime wxDateTime::GetYearDay(wxDateTime_t yday) const -{ - MODIFY_AND_RETURN( SetToYearDay(yday) ); -} - -// ---------------------------------------------------------------------------- -// wxDateTime comparison -// ---------------------------------------------------------------------------- - -inline bool wxDateTime::IsEqualTo(const wxDateTime& datetime) const -{ - wxASSERT_MSG( IsValid() && datetime.IsValid(), wxT("invalid wxDateTime")); - - return m_time == datetime.m_time; -} - -inline bool wxDateTime::IsEarlierThan(const wxDateTime& datetime) const -{ - wxASSERT_MSG( IsValid() && datetime.IsValid(), wxT("invalid wxDateTime")); - - return m_time < datetime.m_time; -} - -inline bool wxDateTime::IsLaterThan(const wxDateTime& datetime) const -{ - wxASSERT_MSG( IsValid() && datetime.IsValid(), wxT("invalid wxDateTime")); - - return m_time > datetime.m_time; -} - -inline bool wxDateTime::IsStrictlyBetween(const wxDateTime& t1, - const wxDateTime& t2) const -{ - // no need for assert, will be checked by the functions we call - return IsLaterThan(t1) && IsEarlierThan(t2); -} - -inline bool wxDateTime::IsBetween(const wxDateTime& t1, - const wxDateTime& t2) const -{ - // no need for assert, will be checked by the functions we call - return IsEqualTo(t1) || IsEqualTo(t2) || IsStrictlyBetween(t1, t2); -} - -inline bool wxDateTime::IsSameDate(const wxDateTime& dt) const -{ - Tm tm1 = GetTm(), - tm2 = dt.GetTm(); - - return tm1.year == tm2.year && - tm1.mon == tm2.mon && - tm1.mday == tm2.mday; -} - -inline bool wxDateTime::IsSameTime(const wxDateTime& dt) const -{ - // notice that we can't do something like this: - // - // m_time % MILLISECONDS_PER_DAY == dt.m_time % MILLISECONDS_PER_DAY - // - // because we have also to deal with (possibly) different DST settings! - Tm tm1 = GetTm(), - tm2 = dt.GetTm(); - - return tm1.hour == tm2.hour && - tm1.min == tm2.min && - tm1.sec == tm2.sec && - tm1.msec == tm2.msec; -} - -inline bool wxDateTime::IsEqualUpTo(const wxDateTime& dt, - const wxTimeSpan& ts) const -{ - return IsBetween(dt.Subtract(ts), dt.Add(ts)); -} - -// ---------------------------------------------------------------------------- -// wxDateTime arithmetics -// ---------------------------------------------------------------------------- - -inline wxDateTime wxDateTime::Add(const wxTimeSpan& diff) const -{ - wxASSERT_MSG( IsValid(), wxT("invalid wxDateTime")); - - return wxDateTime(m_time + diff.GetValue()); -} - -inline wxDateTime& wxDateTime::Add(const wxTimeSpan& diff) -{ - wxASSERT_MSG( IsValid(), wxT("invalid wxDateTime")); - - m_time += diff.GetValue(); - - return *this; -} - -inline wxDateTime& wxDateTime::operator+=(const wxTimeSpan& diff) -{ - return Add(diff); -} - -inline wxDateTime wxDateTime::Subtract(const wxTimeSpan& diff) const -{ - wxASSERT_MSG( IsValid(), wxT("invalid wxDateTime")); - - return wxDateTime(m_time - diff.GetValue()); -} - -inline wxDateTime& wxDateTime::Subtract(const wxTimeSpan& diff) -{ - wxASSERT_MSG( IsValid(), wxT("invalid wxDateTime")); - - m_time -= diff.GetValue(); - - return *this; -} - -inline wxDateTime& wxDateTime::operator-=(const wxTimeSpan& diff) -{ - return Subtract(diff); -} - -inline wxTimeSpan wxDateTime::Subtract(const wxDateTime& datetime) const -{ - wxASSERT_MSG( IsValid() && datetime.IsValid(), wxT("invalid wxDateTime")); - - return wxTimeSpan(GetValue() - datetime.GetValue()); -} - -inline wxTimeSpan wxDateTime::operator-(const wxDateTime& dt2) const -{ - return this->Subtract(dt2); -} - -inline wxDateTime wxDateTime::Add(const wxDateSpan& diff) const -{ - return wxDateTime(*this).Add(diff); -} - -inline wxDateTime& wxDateTime::Subtract(const wxDateSpan& diff) -{ - return Add(diff.Negate()); -} - -inline wxDateTime wxDateTime::Subtract(const wxDateSpan& diff) const -{ - return wxDateTime(*this).Subtract(diff); -} - -inline wxDateTime& wxDateTime::operator-=(const wxDateSpan& diff) -{ - return Subtract(diff); -} - -inline wxDateTime& wxDateTime::operator+=(const wxDateSpan& diff) -{ - return Add(diff); -} - -// ---------------------------------------------------------------------------- -// wxDateTime and timezones -// ---------------------------------------------------------------------------- - -inline wxDateTime -wxDateTime::ToTimezone(const wxDateTime::TimeZone& tz, bool noDST) const -{ - MODIFY_AND_RETURN( MakeTimezone(tz, noDST) ); -} - -inline wxDateTime -wxDateTime::FromTimezone(const wxDateTime::TimeZone& tz, bool noDST) const -{ - MODIFY_AND_RETURN( MakeFromTimezone(tz, noDST) ); -} - -// ---------------------------------------------------------------------------- -// wxTimeSpan construction -// ---------------------------------------------------------------------------- - -inline wxTimeSpan::wxTimeSpan(long hours, - long minutes, - wxLongLong seconds, - wxLongLong milliseconds) -{ - // assign first to avoid precision loss - m_diff = hours; - m_diff *= 60l; - m_diff += minutes; - m_diff *= 60l; - m_diff += seconds; - m_diff *= 1000l; - m_diff += milliseconds; -} - -// ---------------------------------------------------------------------------- -// wxTimeSpan accessors -// ---------------------------------------------------------------------------- - -inline wxLongLong wxTimeSpan::GetSeconds() const -{ - return m_diff / 1000l; -} - -inline int wxTimeSpan::GetMinutes() const -{ - // For compatibility, this method (and the other accessors) return int, - // even though GetLo() actually returns unsigned long with greater range. - return static_cast((GetSeconds() / 60l).GetLo()); -} - -inline int wxTimeSpan::GetHours() const -{ - return GetMinutes() / 60; -} - -inline int wxTimeSpan::GetDays() const -{ - return GetHours() / 24; -} - -inline int wxTimeSpan::GetWeeks() const -{ - return GetDays() / 7; -} - -// ---------------------------------------------------------------------------- -// wxTimeSpan arithmetics -// ---------------------------------------------------------------------------- - -inline wxTimeSpan wxTimeSpan::Add(const wxTimeSpan& diff) const -{ - return wxTimeSpan(m_diff + diff.GetValue()); -} - -inline wxTimeSpan& wxTimeSpan::Add(const wxTimeSpan& diff) -{ - m_diff += diff.GetValue(); - - return *this; -} - -inline wxTimeSpan wxTimeSpan::Subtract(const wxTimeSpan& diff) const -{ - return wxTimeSpan(m_diff - diff.GetValue()); -} - -inline wxTimeSpan& wxTimeSpan::Subtract(const wxTimeSpan& diff) -{ - m_diff -= diff.GetValue(); - - return *this; -} - -inline wxTimeSpan& wxTimeSpan::Multiply(int n) -{ - m_diff *= (long)n; - - return *this; -} - -inline wxTimeSpan wxTimeSpan::Multiply(int n) const -{ - return wxTimeSpan(m_diff * (long)n); -} - -inline wxTimeSpan wxTimeSpan::Abs() const -{ - return wxTimeSpan(GetValue().Abs()); -} - -inline bool wxTimeSpan::IsEqualTo(const wxTimeSpan& ts) const -{ - return GetValue() == ts.GetValue(); -} - -inline bool wxTimeSpan::IsLongerThan(const wxTimeSpan& ts) const -{ - return GetValue().Abs() > ts.GetValue().Abs(); -} - -inline bool wxTimeSpan::IsShorterThan(const wxTimeSpan& ts) const -{ - return GetValue().Abs() < ts.GetValue().Abs(); -} - -// ---------------------------------------------------------------------------- -// wxDateSpan -// ---------------------------------------------------------------------------- - -inline wxDateSpan& wxDateSpan::operator+=(const wxDateSpan& other) -{ - m_years += other.m_years; - m_months += other.m_months; - m_weeks += other.m_weeks; - m_days += other.m_days; - - return *this; -} - -inline wxDateSpan& wxDateSpan::Add(const wxDateSpan& other) -{ - return *this += other; -} - -inline wxDateSpan wxDateSpan::Add(const wxDateSpan& other) const -{ - wxDateSpan ds(*this); - ds.Add(other); - return ds; -} - -inline wxDateSpan& wxDateSpan::Multiply(int factor) -{ - m_years *= factor; - m_months *= factor; - m_weeks *= factor; - m_days *= factor; - - return *this; -} - -inline wxDateSpan wxDateSpan::Multiply(int factor) const -{ - wxDateSpan ds(*this); - ds.Multiply(factor); - return ds; -} - -inline wxDateSpan wxDateSpan::Negate() const -{ - return wxDateSpan(-m_years, -m_months, -m_weeks, -m_days); -} - -inline wxDateSpan& wxDateSpan::Neg() -{ - m_years = -m_years; - m_months = -m_months; - m_weeks = -m_weeks; - m_days = -m_days; - - return *this; -} - -inline wxDateSpan& wxDateSpan::operator-=(const wxDateSpan& other) -{ - return *this += other.Negate(); -} - -inline wxDateSpan& wxDateSpan::Subtract(const wxDateSpan& other) -{ - return *this -= other; -} - -inline wxDateSpan wxDateSpan::Subtract(const wxDateSpan& other) const -{ - wxDateSpan ds(*this); - ds.Subtract(other); - return ds; -} - -#undef MILLISECONDS_PER_DAY - -#undef MODIFY_AND_RETURN - -// ============================================================================ -// binary operators -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxTimeSpan operators -// ---------------------------------------------------------------------------- - -wxTimeSpan WXDLLIMPEXP_BASE operator*(int n, const wxTimeSpan& ts); - -// ---------------------------------------------------------------------------- -// wxDateSpan -// ---------------------------------------------------------------------------- - -wxDateSpan WXDLLIMPEXP_BASE operator*(int n, const wxDateSpan& ds); - -// ============================================================================ -// other helper functions -// ============================================================================ - -// ---------------------------------------------------------------------------- -// iteration helpers: can be used to write a for loop over enum variable like -// this: -// for ( m = wxDateTime::Jan; m < wxDateTime::Inv_Month; wxNextMonth(m) ) -// ---------------------------------------------------------------------------- - -WXDLLIMPEXP_BASE void wxNextMonth(wxDateTime::Month& m); -WXDLLIMPEXP_BASE void wxPrevMonth(wxDateTime::Month& m); -WXDLLIMPEXP_BASE void wxNextWDay(wxDateTime::WeekDay& wd); -WXDLLIMPEXP_BASE void wxPrevWDay(wxDateTime::WeekDay& wd); - -#endif // wxUSE_DATETIME - -#endif // _WX_DATETIME_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datetimectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datetimectrl.h deleted file mode 100644 index 30f23dff..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datetimectrl.h +++ /dev/null @@ -1,47 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/timectrl.h -// Purpose: Declaration of wxDateTimePickerCtrl class. -// Author: Vadim Zeitlin -// Created: 2011-09-22 -// Copyright: (c) 2011 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DATETIME_CTRL_H_ -#define _WX_DATETIME_CTRL_H_ - -#include "wx/defs.h" - -#if wxUSE_DATEPICKCTRL || wxUSE_TIMEPICKCTRL - -#define wxNEEDS_DATETIMEPICKCTRL - -#include "wx/control.h" // the base class - -#include "wx/datetime.h" - -// ---------------------------------------------------------------------------- -// wxDateTimePickerCtrl: Private common base class of wx{Date,Time}PickerCtrl. -// ---------------------------------------------------------------------------- - -// This class is an implementation detail and should not be used directly, only -// use the documented API of wxDateTimePickerCtrl and wxTimePickerCtrl. -class WXDLLIMPEXP_ADV wxDateTimePickerCtrlBase : public wxControl -{ -public: - // Set/get the date or time (in the latter case, time part is ignored). - virtual void SetValue(const wxDateTime& dt) = 0; - virtual wxDateTime GetValue() const = 0; -}; - -#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) - #include "wx/msw/datetimectrl.h" -#elif defined(__WXOSX_COCOA__) && !defined(__WXUNIVERSAL__) - #include "wx/osx/datetimectrl.h" -#else - typedef wxDateTimePickerCtrlBase wxDateTimePickerCtrl; -#endif - -#endif // wxUSE_DATEPICKCTRL || wxUSE_TIMEPICKCTRL - -#endif // _WX_DATETIME_CTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datstrm.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datstrm.h deleted file mode 100644 index 477da30e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/datstrm.h +++ /dev/null @@ -1,204 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/datstrm.h -// Purpose: Data stream classes -// Author: Guilhem Lavaux -// Modified by: Mickael Gilabert -// Created: 28/06/1998 -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DATSTREAM_H_ -#define _WX_DATSTREAM_H_ - -#include "wx/stream.h" -#include "wx/longlong.h" -#include "wx/convauto.h" - -#if wxUSE_STREAMS - -// Common wxDataInputStream and wxDataOutputStream parameters. -class WXDLLIMPEXP_BASE wxDataStreamBase -{ -public: - void BigEndianOrdered(bool be_order) { m_be_order = be_order; } - - // By default we use extended precision (80 bit) format for both float and - // doubles. Call this function to switch to alternative representation in - // which IEEE 754 single precision (32 bits) is used for floats and double - // precision (64 bits) is used for doubles. - void UseBasicPrecisions() - { -#if wxUSE_APPLE_IEEE - m_useExtendedPrecision = false; -#endif // wxUSE_APPLE_IEEE - } - - // UseExtendedPrecision() is not very useful as it corresponds to the - // default value, only call it in your code if you want the compilation - // fail with the error when using wxWidgets library compiled without - // extended precision support. -#if wxUSE_APPLE_IEEE - void UseExtendedPrecision() - { - m_useExtendedPrecision = true; - } -#endif // wxUSE_APPLE_IEEE - -#if wxUSE_UNICODE - void SetConv( const wxMBConv &conv ); - wxMBConv *GetConv() const { return m_conv; } -#endif - -protected: - // Ctor and dtor are both protected, this class is never used directly but - // only by its derived classes. - wxDataStreamBase(const wxMBConv& conv); - ~wxDataStreamBase(); - - - bool m_be_order; - -#if wxUSE_APPLE_IEEE - bool m_useExtendedPrecision; -#endif // wxUSE_APPLE_IEEE - -#if wxUSE_UNICODE - wxMBConv *m_conv; -#endif - - wxDECLARE_NO_COPY_CLASS(wxDataStreamBase); -}; - - -class WXDLLIMPEXP_BASE wxDataInputStream : public wxDataStreamBase -{ -public: - wxDataInputStream(wxInputStream& s, const wxMBConv& conv = wxConvUTF8); - - bool IsOk() { return m_input->IsOk(); } - -#if wxHAS_INT64 - wxUint64 Read64(); -#endif -#if wxUSE_LONGLONG - wxLongLong ReadLL(); -#endif - wxUint32 Read32(); - wxUint16 Read16(); - wxUint8 Read8(); - double ReadDouble(); - float ReadFloat(); - wxString ReadString(); - -#if wxHAS_INT64 - void Read64(wxUint64 *buffer, size_t size); - void Read64(wxInt64 *buffer, size_t size); -#endif -#if defined(wxLongLong_t) && wxUSE_LONGLONG - void Read64(wxULongLong *buffer, size_t size); - void Read64(wxLongLong *buffer, size_t size); -#endif -#if wxUSE_LONGLONG - void ReadLL(wxULongLong *buffer, size_t size); - void ReadLL(wxLongLong *buffer, size_t size); -#endif - void Read32(wxUint32 *buffer, size_t size); - void Read16(wxUint16 *buffer, size_t size); - void Read8(wxUint8 *buffer, size_t size); - void ReadDouble(double *buffer, size_t size); - void ReadFloat(float *buffer, size_t size); - - wxDataInputStream& operator>>(wxString& s); - wxDataInputStream& operator>>(wxInt8& c); - wxDataInputStream& operator>>(wxInt16& i); - wxDataInputStream& operator>>(wxInt32& i); - wxDataInputStream& operator>>(wxUint8& c); - wxDataInputStream& operator>>(wxUint16& i); - wxDataInputStream& operator>>(wxUint32& i); -#if wxHAS_INT64 - wxDataInputStream& operator>>(wxUint64& i); - wxDataInputStream& operator>>(wxInt64& i); -#endif -#if defined(wxLongLong_t) && wxUSE_LONGLONG - wxDataInputStream& operator>>(wxULongLong& i); - wxDataInputStream& operator>>(wxLongLong& i); -#endif - wxDataInputStream& operator>>(double& d); - wxDataInputStream& operator>>(float& f); - -protected: - wxInputStream *m_input; - - wxDECLARE_NO_COPY_CLASS(wxDataInputStream); -}; - -class WXDLLIMPEXP_BASE wxDataOutputStream : public wxDataStreamBase -{ -public: - wxDataOutputStream(wxOutputStream& s, const wxMBConv& conv = wxConvUTF8); - - bool IsOk() { return m_output->IsOk(); } - -#if wxHAS_INT64 - void Write64(wxUint64 i); - void Write64(wxInt64 i); -#endif -#if wxUSE_LONGLONG - void WriteLL(const wxLongLong &ll); - void WriteLL(const wxULongLong &ll); -#endif - void Write32(wxUint32 i); - void Write16(wxUint16 i); - void Write8(wxUint8 i); - void WriteDouble(double d); - void WriteFloat(float f); - void WriteString(const wxString& string); - -#if wxHAS_INT64 - void Write64(const wxUint64 *buffer, size_t size); - void Write64(const wxInt64 *buffer, size_t size); -#endif -#if defined(wxLongLong_t) && wxUSE_LONGLONG - void Write64(const wxULongLong *buffer, size_t size); - void Write64(const wxLongLong *buffer, size_t size); -#endif -#if wxUSE_LONGLONG - void WriteLL(const wxULongLong *buffer, size_t size); - void WriteLL(const wxLongLong *buffer, size_t size); -#endif - void Write32(const wxUint32 *buffer, size_t size); - void Write16(const wxUint16 *buffer, size_t size); - void Write8(const wxUint8 *buffer, size_t size); - void WriteDouble(const double *buffer, size_t size); - void WriteFloat(const float *buffer, size_t size); - - wxDataOutputStream& operator<<(const wxString& string); - wxDataOutputStream& operator<<(wxInt8 c); - wxDataOutputStream& operator<<(wxInt16 i); - wxDataOutputStream& operator<<(wxInt32 i); - wxDataOutputStream& operator<<(wxUint8 c); - wxDataOutputStream& operator<<(wxUint16 i); - wxDataOutputStream& operator<<(wxUint32 i); -#if wxHAS_INT64 - wxDataOutputStream& operator<<(wxUint64 i); - wxDataOutputStream& operator<<(wxInt64 i); -#endif -#if defined(wxLongLong_t) && wxUSE_LONGLONG - wxDataOutputStream& operator<<(const wxULongLong &i); - wxDataOutputStream& operator<<(const wxLongLong &i); -#endif - wxDataOutputStream& operator<<(double d); - wxDataOutputStream& operator<<(float f); - -protected: - wxOutputStream *m_output; - - wxDECLARE_NO_COPY_CLASS(wxDataOutputStream); -}; - -#endif - // wxUSE_STREAMS - -#endif - // _WX_DATSTREAM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dc.h deleted file mode 100644 index 2637b5a8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dc.h +++ /dev/null @@ -1,1487 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dc.h -// Purpose: wxDC class -// Author: Vadim Zeitlin -// Modified by: -// Created: 05/25/99 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DC_H_BASE_ -#define _WX_DC_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers which we must include here -// ---------------------------------------------------------------------------- - -#include "wx/object.h" // the base class - -#include "wx/intl.h" // for wxLayoutDirection -#include "wx/colour.h" // we have member variables of these classes -#include "wx/font.h" // so we can't do without them -#include "wx/bitmap.h" // for wxNullBitmap -#include "wx/brush.h" -#include "wx/pen.h" -#include "wx/palette.h" -#include "wx/dynarray.h" -#include "wx/math.h" -#include "wx/image.h" -#include "wx/region.h" -#include "wx/affinematrix2d.h" - -#define wxUSE_NEW_DC 1 - -class WXDLLIMPEXP_FWD_CORE wxDC; -class WXDLLIMPEXP_FWD_CORE wxClientDC; -class WXDLLIMPEXP_FWD_CORE wxPaintDC; -class WXDLLIMPEXP_FWD_CORE wxWindowDC; -class WXDLLIMPEXP_FWD_CORE wxScreenDC; -class WXDLLIMPEXP_FWD_CORE wxMemoryDC; -class WXDLLIMPEXP_FWD_CORE wxPrinterDC; -class WXDLLIMPEXP_FWD_CORE wxPrintData; -class WXDLLIMPEXP_FWD_CORE wxWindow; - -#if wxUSE_GRAPHICS_CONTEXT -class WXDLLIMPEXP_FWD_CORE wxGraphicsContext; -#endif - -// Logical ops -enum wxRasterOperationMode -{ - wxCLEAR, // 0 - wxXOR, // src XOR dst - wxINVERT, // NOT dst - wxOR_REVERSE, // src OR (NOT dst) - wxAND_REVERSE, // src AND (NOT dst) - wxCOPY, // src - wxAND, // src AND dst - wxAND_INVERT, // (NOT src) AND dst - wxNO_OP, // dst - wxNOR, // (NOT src) AND (NOT dst) - wxEQUIV, // (NOT src) XOR dst - wxSRC_INVERT, // (NOT src) - wxOR_INVERT, // (NOT src) OR dst - wxNAND, // (NOT src) OR (NOT dst) - wxOR, // src OR dst - wxSET // 1 -#if WXWIN_COMPATIBILITY_2_8 - ,wxROP_BLACK = wxCLEAR, - wxBLIT_BLACKNESS = wxCLEAR, - wxROP_XORPEN = wxXOR, - wxBLIT_SRCINVERT = wxXOR, - wxROP_NOT = wxINVERT, - wxBLIT_DSTINVERT = wxINVERT, - wxROP_MERGEPENNOT = wxOR_REVERSE, - wxBLIT_00DD0228 = wxOR_REVERSE, - wxROP_MASKPENNOT = wxAND_REVERSE, - wxBLIT_SRCERASE = wxAND_REVERSE, - wxROP_COPYPEN = wxCOPY, - wxBLIT_SRCCOPY = wxCOPY, - wxROP_MASKPEN = wxAND, - wxBLIT_SRCAND = wxAND, - wxROP_MASKNOTPEN = wxAND_INVERT, - wxBLIT_00220326 = wxAND_INVERT, - wxROP_NOP = wxNO_OP, - wxBLIT_00AA0029 = wxNO_OP, - wxROP_NOTMERGEPEN = wxNOR, - wxBLIT_NOTSRCERASE = wxNOR, - wxROP_NOTXORPEN = wxEQUIV, - wxBLIT_00990066 = wxEQUIV, - wxROP_NOTCOPYPEN = wxSRC_INVERT, - wxBLIT_NOTSCRCOPY = wxSRC_INVERT, - wxROP_MERGENOTPEN = wxOR_INVERT, - wxBLIT_MERGEPAINT = wxOR_INVERT, - wxROP_NOTMASKPEN = wxNAND, - wxBLIT_007700E6 = wxNAND, - wxROP_MERGEPEN = wxOR, - wxBLIT_SRCPAINT = wxOR, - wxROP_WHITE = wxSET, - wxBLIT_WHITENESS = wxSET -#endif //WXWIN_COMPATIBILITY_2_8 -}; - -// Flood styles -enum wxFloodFillStyle -{ - wxFLOOD_SURFACE = 1, - wxFLOOD_BORDER -}; - -// Mapping modes -enum wxMappingMode -{ - wxMM_TEXT = 1, - wxMM_METRIC, - wxMM_LOMETRIC, - wxMM_TWIPS, - wxMM_POINTS -}; - -// Description of text characteristics. -struct wxFontMetrics -{ - wxFontMetrics() - { - height = - ascent = - descent = - internalLeading = - externalLeading = - averageWidth = 0; - } - - int height, // Total character height. - ascent, // Part of the height above the baseline. - descent, // Part of the height below the baseline. - internalLeading, // Intra-line spacing. - externalLeading, // Inter-line spacing. - averageWidth; // Average font width, a.k.a. "x-width". -}; - -#if WXWIN_COMPATIBILITY_2_8 - -//----------------------------------------------------------------------------- -// wxDrawObject helper class -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDrawObject -{ -public: - wxDEPRECATED_CONSTRUCTOR(wxDrawObject)() - : m_isBBoxValid(false) - , m_minX(0), m_minY(0), m_maxX(0), m_maxY(0) - { } - - virtual ~wxDrawObject() { } - - virtual void Draw(wxDC&) const { } - - virtual void CalcBoundingBox(wxCoord x, wxCoord y) - { - if ( m_isBBoxValid ) - { - if ( x < m_minX ) m_minX = x; - if ( y < m_minY ) m_minY = y; - if ( x > m_maxX ) m_maxX = x; - if ( y > m_maxY ) m_maxY = y; - } - else - { - m_isBBoxValid = true; - - m_minX = x; - m_minY = y; - m_maxX = x; - m_maxY = y; - } - } - - void ResetBoundingBox() - { - m_isBBoxValid = false; - - m_minX = m_maxX = m_minY = m_maxY = 0; - } - - // Get the final bounding box of the PostScript or Metafile picture. - - wxCoord MinX() const { return m_minX; } - wxCoord MaxX() const { return m_maxX; } - wxCoord MinY() const { return m_minY; } - wxCoord MaxY() const { return m_maxY; } - - //to define the type of object for derived objects - virtual int GetType()=0; - -protected: - //for boundingbox calculation - bool m_isBBoxValid:1; - //for boundingbox calculation - wxCoord m_minX, m_minY, m_maxX, m_maxY; -}; - -#endif // WXWIN_COMPATIBILITY_2_8 - - -//----------------------------------------------------------------------------- -// wxDCFactory -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxDCImpl; - -class WXDLLIMPEXP_CORE wxDCFactory -{ -public: - wxDCFactory() {} - virtual ~wxDCFactory() {} - - virtual wxDCImpl* CreateWindowDC( wxWindowDC *owner, wxWindow *window ) = 0; - virtual wxDCImpl* CreateClientDC( wxClientDC *owner, wxWindow *window ) = 0; - virtual wxDCImpl* CreatePaintDC( wxPaintDC *owner, wxWindow *window ) = 0; - virtual wxDCImpl* CreateMemoryDC( wxMemoryDC *owner ) = 0; - virtual wxDCImpl* CreateMemoryDC( wxMemoryDC *owner, wxBitmap &bitmap ) = 0; - virtual wxDCImpl* CreateMemoryDC( wxMemoryDC *owner, wxDC *dc ) = 0; - virtual wxDCImpl* CreateScreenDC( wxScreenDC *owner ) = 0; -#if wxUSE_PRINTING_ARCHITECTURE - virtual wxDCImpl* CreatePrinterDC( wxPrinterDC *owner, const wxPrintData &data ) = 0; -#endif - - static void Set(wxDCFactory *factory); - static wxDCFactory *Get(); - -private: - static wxDCFactory *m_factory; -}; - -//----------------------------------------------------------------------------- -// wxNativeDCFactory -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxNativeDCFactory: public wxDCFactory -{ -public: - wxNativeDCFactory() {} - - virtual wxDCImpl* CreateWindowDC( wxWindowDC *owner, wxWindow *window ) wxOVERRIDE; - virtual wxDCImpl* CreateClientDC( wxClientDC *owner, wxWindow *window ) wxOVERRIDE; - virtual wxDCImpl* CreatePaintDC( wxPaintDC *owner, wxWindow *window ) wxOVERRIDE; - virtual wxDCImpl* CreateMemoryDC( wxMemoryDC *owner ) wxOVERRIDE; - virtual wxDCImpl* CreateMemoryDC( wxMemoryDC *owner, wxBitmap &bitmap ) wxOVERRIDE; - virtual wxDCImpl* CreateMemoryDC( wxMemoryDC *owner, wxDC *dc ) wxOVERRIDE; - virtual wxDCImpl* CreateScreenDC( wxScreenDC *owner ) wxOVERRIDE; -#if wxUSE_PRINTING_ARCHITECTURE - virtual wxDCImpl* CreatePrinterDC( wxPrinterDC *owner, const wxPrintData &data ) wxOVERRIDE; -#endif -}; - -//----------------------------------------------------------------------------- -// wxDCImpl -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDCImpl: public wxObject -{ -public: - wxDCImpl( wxDC *owner ); - virtual ~wxDCImpl(); - - wxDC *GetOwner() const { return m_owner; } - - wxWindow* GetWindow() const { return m_window; } - - virtual bool IsOk() const { return m_ok; } - - // query capabilities - - virtual bool CanDrawBitmap() const = 0; - virtual bool CanGetTextExtent() const = 0; - - // get Cairo context - virtual void* GetCairoContext() const - { - return NULL; - } - - virtual void* GetHandle() const { return NULL; } - - // query dimension, colour deps, resolution - - virtual void DoGetSize(int *width, int *height) const = 0; - void GetSize(int *width, int *height) const - { - DoGetSize(width, height); - return ; - } - - wxSize GetSize() const - { - int w, h; - DoGetSize(&w, &h); - return wxSize(w, h); - } - - virtual void DoGetSizeMM(int* width, int* height) const = 0; - - virtual int GetDepth() const = 0; - virtual wxSize GetPPI() const = 0; - - // Right-To-Left (RTL) modes - - virtual void SetLayoutDirection(wxLayoutDirection WXUNUSED(dir)) { } - virtual wxLayoutDirection GetLayoutDirection() const { return wxLayout_Default; } - - // page and document - - virtual bool StartDoc(const wxString& WXUNUSED(message)) { return true; } - virtual void EndDoc() { } - - virtual void StartPage() { } - virtual void EndPage() { } - - // flushing the content of this dc immediately eg onto screen - virtual void Flush() { } - - // bounding box - - virtual void CalcBoundingBox(wxCoord x, wxCoord y) - { - if ( m_isBBoxValid ) - { - if ( x < m_minX ) m_minX = x; - if ( y < m_minY ) m_minY = y; - if ( x > m_maxX ) m_maxX = x; - if ( y > m_maxY ) m_maxY = y; - } - else - { - m_isBBoxValid = true; - - m_minX = x; - m_minY = y; - m_maxX = x; - m_maxY = y; - } - } - void ResetBoundingBox() - { - m_isBBoxValid = false; - - m_minX = m_maxX = m_minY = m_maxY = 0; - } - - wxCoord MinX() const { return m_minX; } - wxCoord MaxX() const { return m_maxX; } - wxCoord MinY() const { return m_minY; } - wxCoord MaxY() const { return m_maxY; } - - // setters and getters - - virtual void SetFont(const wxFont& font) = 0; - virtual const wxFont& GetFont() const { return m_font; } - - virtual void SetPen(const wxPen& pen) = 0; - virtual const wxPen& GetPen() const { return m_pen; } - - virtual void SetBrush(const wxBrush& brush) = 0; - virtual const wxBrush& GetBrush() const { return m_brush; } - - virtual void SetBackground(const wxBrush& brush) = 0; - virtual const wxBrush& GetBackground() const { return m_backgroundBrush; } - - virtual void SetBackgroundMode(int mode) = 0; - virtual int GetBackgroundMode() const { return m_backgroundMode; } - - virtual void SetTextForeground(const wxColour& colour) - { m_textForegroundColour = colour; } - virtual const wxColour& GetTextForeground() const - { return m_textForegroundColour; } - - virtual void SetTextBackground(const wxColour& colour) - { m_textBackgroundColour = colour; } - virtual const wxColour& GetTextBackground() const - { return m_textBackgroundColour; } - -#if wxUSE_PALETTE - virtual void SetPalette(const wxPalette& palette) = 0; -#endif // wxUSE_PALETTE - - // inherit the DC attributes (font and colours) from the given window - // - // this is called automatically when a window, client or paint DC is - // created - virtual void InheritAttributes(wxWindow *win); - - - // logical functions - - virtual void SetLogicalFunction(wxRasterOperationMode function) = 0; - virtual wxRasterOperationMode GetLogicalFunction() const - { return m_logicalFunction; } - - // text measurement - - virtual wxCoord GetCharHeight() const = 0; - virtual wxCoord GetCharWidth() const = 0; - - // The derived classes should really override DoGetFontMetrics() to return - // the correct values in the future but for now provide a default - // implementation in terms of DoGetTextExtent() to avoid breaking the - // compilation of all other ports as wxMSW is the only one to implement it. - virtual void DoGetFontMetrics(int *height, - int *ascent, - int *descent, - int *internalLeading, - int *externalLeading, - int *averageWidth) const; - - virtual void DoGetTextExtent(const wxString& string, - wxCoord *x, wxCoord *y, - wxCoord *descent = NULL, - wxCoord *externalLeading = NULL, - const wxFont *theFont = NULL) const = 0; - virtual void GetMultiLineTextExtent(const wxString& string, - wxCoord *width, - wxCoord *height, - wxCoord *heightLine = NULL, - const wxFont *font = NULL) const; - virtual bool DoGetPartialTextExtents(const wxString& text, wxArrayInt& widths) const; - - // clearing - - virtual void Clear() = 0; - - // clipping - - // Note that this pure virtual method has an implementation that updates - // the values returned by DoGetClippingBox() and so can be called from the - // derived class overridden version if it makes sense (i.e. if the clipping - // box coordinates are not already updated in some other way). - virtual void DoSetClippingRegion(wxCoord x, wxCoord y, - wxCoord w, wxCoord h) = 0; - - // NB: this function works with device coordinates, not the logical ones! - virtual void DoSetDeviceClippingRegion(const wxRegion& region) = 0; - - virtual void DoGetClippingBox(wxCoord *x, wxCoord *y, - wxCoord *w, wxCoord *h) const - { - if ( x ) - *x = m_clipX1; - if ( y ) - *y = m_clipY1; - if ( w ) - *w = m_clipX2 - m_clipX1; - if ( h ) - *h = m_clipY2 - m_clipY1; - } - - virtual void DestroyClippingRegion() { ResetClipping(); } - - - // coordinates conversions and transforms - - virtual wxCoord DeviceToLogicalX(wxCoord x) const; - virtual wxCoord DeviceToLogicalY(wxCoord y) const; - virtual wxCoord DeviceToLogicalXRel(wxCoord x) const; - virtual wxCoord DeviceToLogicalYRel(wxCoord y) const; - virtual wxCoord LogicalToDeviceX(wxCoord x) const; - virtual wxCoord LogicalToDeviceY(wxCoord y) const; - virtual wxCoord LogicalToDeviceXRel(wxCoord x) const; - virtual wxCoord LogicalToDeviceYRel(wxCoord y) const; - - virtual void SetMapMode(wxMappingMode mode); - virtual wxMappingMode GetMapMode() const { return m_mappingMode; } - - virtual void SetUserScale(double x, double y); - virtual void GetUserScale(double *x, double *y) const - { - if ( x ) *x = m_userScaleX; - if ( y ) *y = m_userScaleY; - } - - virtual void SetLogicalScale(double x, double y); - virtual void GetLogicalScale(double *x, double *y) const - { - if ( x ) *x = m_logicalScaleX; - if ( y ) *y = m_logicalScaleY; - } - - virtual void SetLogicalOrigin(wxCoord x, wxCoord y); - virtual void DoGetLogicalOrigin(wxCoord *x, wxCoord *y) const - { - if ( x ) *x = m_logicalOriginX; - if ( y ) *y = m_logicalOriginY; - } - - virtual void SetDeviceOrigin(wxCoord x, wxCoord y); - virtual void DoGetDeviceOrigin(wxCoord *x, wxCoord *y) const - { - if ( x ) *x = m_deviceOriginX; - if ( y ) *y = m_deviceOriginY; - } - -#if wxUSE_DC_TRANSFORM_MATRIX - // Transform matrix support is not available in most ports right now - // (currently only wxMSW provides it) so do nothing in these methods by - // default. - virtual bool CanUseTransformMatrix() const - { return false; } - virtual bool SetTransformMatrix(const wxAffineMatrix2D& WXUNUSED(matrix)) - { return false; } - virtual wxAffineMatrix2D GetTransformMatrix() const - { return wxAffineMatrix2D(); } - virtual void ResetTransformMatrix() - { } -#endif // wxUSE_DC_TRANSFORM_MATRIX - - virtual void SetDeviceLocalOrigin( wxCoord x, wxCoord y ); - - virtual void ComputeScaleAndOrigin(); - - // this needs to overidden if the axis is inverted - virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp); - - virtual double GetContentScaleFactor() const { return m_contentScaleFactor; } - -#ifdef __WXMSW__ - // Native Windows functions using the underlying HDC don't honour GDI+ - // transformations which may be applied to it. Using this function we can - // transform the coordinates manually before passing them to such functions - // (as in e.g. wxRendererMSW code). It doesn't do anything if this is not a - // wxGCDC. - virtual wxRect MSWApplyGDIPlusTransform(const wxRect& r) const - { - return r; - } -#endif // __WXMSW__ - - - // --------------------------------------------------------- - // the actual drawing API - - virtual bool DoFloodFill(wxCoord x, wxCoord y, const wxColour& col, - wxFloodFillStyle style = wxFLOOD_SURFACE) = 0; - - virtual void DoGradientFillLinear(const wxRect& rect, - const wxColour& initialColour, - const wxColour& destColour, - wxDirection nDirection = wxEAST); - - virtual void DoGradientFillConcentric(const wxRect& rect, - const wxColour& initialColour, - const wxColour& destColour, - const wxPoint& circleCenter); - - virtual bool DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const = 0; - - virtual void DoDrawPoint(wxCoord x, wxCoord y) = 0; - virtual void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2) = 0; - - virtual void DoDrawArc(wxCoord x1, wxCoord y1, - wxCoord x2, wxCoord y2, - wxCoord xc, wxCoord yc) = 0; - virtual void DoDrawCheckMark(wxCoord x, wxCoord y, - wxCoord width, wxCoord height); - virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h, - double sa, double ea) = 0; - - virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height) = 0; - virtual void DoDrawRoundedRectangle(wxCoord x, wxCoord y, - wxCoord width, wxCoord height, - double radius) = 0; - virtual void DoDrawEllipse(wxCoord x, wxCoord y, - wxCoord width, wxCoord height) = 0; - - virtual void DoCrossHair(wxCoord x, wxCoord y) = 0; - - virtual void DoDrawIcon(const wxIcon& icon, wxCoord x, wxCoord y) = 0; - virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y, - bool useMask = false) = 0; - - virtual void DoDrawText(const wxString& text, wxCoord x, wxCoord y) = 0; - virtual void DoDrawRotatedText(const wxString& text, - wxCoord x, wxCoord y, double angle) = 0; - - virtual bool DoBlit(wxCoord xdest, wxCoord ydest, - wxCoord width, wxCoord height, - wxDC *source, - wxCoord xsrc, wxCoord ysrc, - wxRasterOperationMode rop = wxCOPY, - bool useMask = false, - wxCoord xsrcMask = wxDefaultCoord, - wxCoord ysrcMask = wxDefaultCoord) = 0; - - virtual bool DoStretchBlit(wxCoord xdest, wxCoord ydest, - wxCoord dstWidth, wxCoord dstHeight, - wxDC *source, - wxCoord xsrc, wxCoord ysrc, - wxCoord srcWidth, wxCoord srcHeight, - wxRasterOperationMode rop = wxCOPY, - bool useMask = false, - wxCoord xsrcMask = wxDefaultCoord, - wxCoord ysrcMask = wxDefaultCoord); - - virtual wxBitmap DoGetAsBitmap(const wxRect *WXUNUSED(subrect)) const - { return wxNullBitmap; } - - - virtual void DoDrawLines(int n, const wxPoint points[], - wxCoord xoffset, wxCoord yoffset ) = 0; - virtual void DrawLines(const wxPointList *list, - wxCoord xoffset, wxCoord yoffset ); - - virtual void DoDrawPolygon(int n, const wxPoint points[], - wxCoord xoffset, wxCoord yoffset, - wxPolygonFillMode fillStyle = wxODDEVEN_RULE) = 0; - virtual void DoDrawPolyPolygon(int n, const int count[], const wxPoint points[], - wxCoord xoffset, wxCoord yoffset, - wxPolygonFillMode fillStyle); - void DrawPolygon(const wxPointList *list, - wxCoord xoffset, wxCoord yoffset, - wxPolygonFillMode fillStyle ); - - -#if wxUSE_SPLINES - void DrawSpline(wxCoord x1, wxCoord y1, - wxCoord x2, wxCoord y2, - wxCoord x3, wxCoord y3); - void DrawSpline(int n, const wxPoint points[]); - void DrawSpline(const wxPointList *points) { DoDrawSpline(points); } - - virtual void DoDrawSpline(const wxPointList *points); -#endif - - // --------------------------------------------------------- - // wxMemoryDC Impl API - - virtual void DoSelect(const wxBitmap& WXUNUSED(bmp)) - { } - - virtual const wxBitmap& GetSelectedBitmap() const - { return wxNullBitmap; } - virtual wxBitmap& GetSelectedBitmap() - { return wxNullBitmap; } - - // --------------------------------------------------------- - // wxPrinterDC Impl API - - virtual wxRect GetPaperRect() const - { int w = 0; int h = 0; DoGetSize( &w, &h ); return wxRect(0,0,w,h); } - - virtual int GetResolution() const - { return -1; } - -#if wxUSE_GRAPHICS_CONTEXT - virtual wxGraphicsContext* GetGraphicsContext() const - { return NULL; } - virtual void SetGraphicsContext( wxGraphicsContext* WXUNUSED(ctx) ) - {} -#endif - -private: - wxDC *m_owner; - -protected: - // unset clipping variables (after clipping region was destroyed) - void ResetClipping() - { - m_clipping = false; - - m_clipX1 = m_clipX2 = m_clipY1 = m_clipY2 = 0; - } - - // returns adjustment factor for converting wxFont "point size"; in wx - // it is point size on screen and needs to be multiplied by this value - // for rendering on higher-resolution DCs such as printer ones - static float GetFontPointSizeAdjustment(float dpi); - - // window on which the DC draws or NULL - wxWindow *m_window; - - // flags - bool m_colour:1; - bool m_ok:1; - bool m_clipping:1; - bool m_isInteractive:1; - bool m_isBBoxValid:1; - - // coordinate system variables - - wxCoord m_logicalOriginX, m_logicalOriginY; - wxCoord m_deviceOriginX, m_deviceOriginY; // Usually 0,0, can be change by user - - wxCoord m_deviceLocalOriginX, m_deviceLocalOriginY; // non-zero if native top-left corner - // is not at 0,0. This was the case under - // Mac's GrafPorts (coordinate system - // used toplevel window's origin) and - // e.g. for Postscript, where the native - // origin in the bottom left corner. - double m_logicalScaleX, m_logicalScaleY; - double m_userScaleX, m_userScaleY; - double m_scaleX, m_scaleY; // calculated from logical scale and user scale - - int m_signX, m_signY; // Used by SetAxisOrientation() to invert the axes - - double m_contentScaleFactor; // used by high resolution displays (retina) - - // what is a mm on a screen you don't know the size of? - double m_mm_to_pix_x, - m_mm_to_pix_y; - - // bounding and clipping boxes - wxCoord m_minX, m_minY, m_maxX, m_maxY; - wxCoord m_clipX1, m_clipY1, m_clipX2, m_clipY2; - - wxRasterOperationMode m_logicalFunction; - int m_backgroundMode; - wxMappingMode m_mappingMode; - - wxPen m_pen; - wxBrush m_brush; - wxBrush m_backgroundBrush; - wxColour m_textForegroundColour; - wxColour m_textBackgroundColour; - wxFont m_font; - -#if wxUSE_PALETTE - wxPalette m_palette; - bool m_hasCustomPalette; -#endif // wxUSE_PALETTE - -private: - wxDECLARE_ABSTRACT_CLASS(wxDCImpl); -}; - - -class WXDLLIMPEXP_CORE wxDC : public wxObject -{ -public: - // copy attributes (font, colours and writing direction) from another DC - void CopyAttributes(const wxDC& dc); - - virtual ~wxDC() { delete m_pimpl; } - - wxDCImpl *GetImpl() - { return m_pimpl; } - const wxDCImpl *GetImpl() const - { return m_pimpl; } - - wxWindow *GetWindow() const - { return m_pimpl->GetWindow(); } - - void *GetHandle() const - { return m_pimpl->GetHandle(); } - - bool IsOk() const - { return m_pimpl && m_pimpl->IsOk(); } - - // query capabilities - - bool CanDrawBitmap() const - { return m_pimpl->CanDrawBitmap(); } - bool CanGetTextExtent() const - { return m_pimpl->CanGetTextExtent(); } - - // query dimension, colour deps, resolution - - void GetSize(int *width, int *height) const - { m_pimpl->DoGetSize(width, height); } - wxSize GetSize() const - { return m_pimpl->GetSize(); } - - void GetSizeMM(int* width, int* height) const - { m_pimpl->DoGetSizeMM(width, height); } - wxSize GetSizeMM() const - { - int w, h; - m_pimpl->DoGetSizeMM(&w, &h); - return wxSize(w, h); - } - - int GetDepth() const - { return m_pimpl->GetDepth(); } - wxSize GetPPI() const - { return m_pimpl->GetPPI(); } - - virtual int GetResolution() const - { return m_pimpl->GetResolution(); } - - double GetContentScaleFactor() const - { return m_pimpl->GetContentScaleFactor(); } - - // Right-To-Left (RTL) modes - - void SetLayoutDirection(wxLayoutDirection dir) - { m_pimpl->SetLayoutDirection( dir ); } - wxLayoutDirection GetLayoutDirection() const - { return m_pimpl->GetLayoutDirection(); } - - // page and document - - bool StartDoc(const wxString& message) - { return m_pimpl->StartDoc(message); } - void EndDoc() - { m_pimpl->EndDoc(); } - - void StartPage() - { m_pimpl->StartPage(); } - void EndPage() - { m_pimpl->EndPage(); } - - // bounding box - - void CalcBoundingBox(wxCoord x, wxCoord y) - { m_pimpl->CalcBoundingBox(x,y); } - void ResetBoundingBox() - { m_pimpl->ResetBoundingBox(); } - - wxCoord MinX() const - { return m_pimpl->MinX(); } - wxCoord MaxX() const - { return m_pimpl->MaxX(); } - wxCoord MinY() const - { return m_pimpl->MinY(); } - wxCoord MaxY() const - { return m_pimpl->MaxY(); } - - // setters and getters - - void SetFont(const wxFont& font) - { m_pimpl->SetFont( font ); } - const wxFont& GetFont() const - { return m_pimpl->GetFont(); } - - void SetPen(const wxPen& pen) - { m_pimpl->SetPen( pen ); } - const wxPen& GetPen() const - { return m_pimpl->GetPen(); } - - void SetBrush(const wxBrush& brush) - { m_pimpl->SetBrush( brush ); } - const wxBrush& GetBrush() const - { return m_pimpl->GetBrush(); } - - void SetBackground(const wxBrush& brush) - { m_pimpl->SetBackground( brush ); } - const wxBrush& GetBackground() const - { return m_pimpl->GetBackground(); } - - void SetBackgroundMode(int mode) - { m_pimpl->SetBackgroundMode( mode ); } - int GetBackgroundMode() const - { return m_pimpl->GetBackgroundMode(); } - - void SetTextForeground(const wxColour& colour) - { m_pimpl->SetTextForeground(colour); } - const wxColour& GetTextForeground() const - { return m_pimpl->GetTextForeground(); } - - void SetTextBackground(const wxColour& colour) - { m_pimpl->SetTextBackground(colour); } - const wxColour& GetTextBackground() const - { return m_pimpl->GetTextBackground(); } - -#if wxUSE_PALETTE - void SetPalette(const wxPalette& palette) - { m_pimpl->SetPalette(palette); } -#endif // wxUSE_PALETTE - - // logical functions - - void SetLogicalFunction(wxRasterOperationMode function) - { m_pimpl->SetLogicalFunction(function); } - wxRasterOperationMode GetLogicalFunction() const - { return m_pimpl->GetLogicalFunction(); } - - // text measurement - - wxCoord GetCharHeight() const - { return m_pimpl->GetCharHeight(); } - wxCoord GetCharWidth() const - { return m_pimpl->GetCharWidth(); } - - wxFontMetrics GetFontMetrics() const - { - wxFontMetrics fm; - m_pimpl->DoGetFontMetrics(&fm.height, &fm.ascent, &fm.descent, - &fm.internalLeading, &fm.externalLeading, - &fm.averageWidth); - return fm; - } - - void GetTextExtent(const wxString& string, - wxCoord *x, wxCoord *y, - wxCoord *descent = NULL, - wxCoord *externalLeading = NULL, - const wxFont *theFont = NULL) const - { m_pimpl->DoGetTextExtent(string, x, y, descent, externalLeading, theFont); } - - wxSize GetTextExtent(const wxString& string) const - { - wxCoord w, h; - m_pimpl->DoGetTextExtent(string, &w, &h); - return wxSize(w, h); - } - - void GetMultiLineTextExtent(const wxString& string, - wxCoord *width, - wxCoord *height, - wxCoord *heightLine = NULL, - const wxFont *font = NULL) const - { m_pimpl->GetMultiLineTextExtent( string, width, height, heightLine, font ); } - - wxSize GetMultiLineTextExtent(const wxString& string) const - { - wxCoord w, h; - m_pimpl->GetMultiLineTextExtent(string, &w, &h); - return wxSize(w, h); - } - - bool GetPartialTextExtents(const wxString& text, wxArrayInt& widths) const - { return m_pimpl->DoGetPartialTextExtents(text, widths); } - - // clearing - - void Clear() - { m_pimpl->Clear(); } - - // clipping - - void SetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height) - { m_pimpl->DoSetClippingRegion(x, y, width, height); } - void SetClippingRegion(const wxPoint& pt, const wxSize& sz) - { m_pimpl->DoSetClippingRegion(pt.x, pt.y, sz.x, sz.y); } - void SetClippingRegion(const wxRect& rect) - { m_pimpl->DoSetClippingRegion(rect.x, rect.y, rect.width, rect.height); } - - // unlike the functions above, the coordinates of the region used in this - // one are in device coordinates, not the logical ones - void SetDeviceClippingRegion(const wxRegion& region) - { m_pimpl->DoSetDeviceClippingRegion(region); } - - // this function is deprecated because its name is confusing: you may - // expect it to work with logical coordinates but, in fact, it does exactly - // the same thing as SetDeviceClippingRegion() - // - // please review the code using it and either replace it with calls to - // SetDeviceClippingRegion() or correct it if it was [wrongly] passing - // logical coordinates to this function - wxDEPRECATED_INLINE(void SetClippingRegion(const wxRegion& region), - SetDeviceClippingRegion(region); ) - - void DestroyClippingRegion() - { m_pimpl->DestroyClippingRegion(); } - - void GetClippingBox(wxCoord *x, wxCoord *y, wxCoord *w, wxCoord *h) const - { m_pimpl->DoGetClippingBox(x, y, w, h); } - void GetClippingBox(wxRect& rect) const - { m_pimpl->DoGetClippingBox(&rect.x, &rect.y, &rect.width, &rect.height); } - - // coordinates conversions and transforms - - wxCoord DeviceToLogicalX(wxCoord x) const - { return m_pimpl->DeviceToLogicalX(x); } - wxCoord DeviceToLogicalY(wxCoord y) const - { return m_pimpl->DeviceToLogicalY(y); } - wxCoord DeviceToLogicalXRel(wxCoord x) const - { return m_pimpl->DeviceToLogicalXRel(x); } - wxCoord DeviceToLogicalYRel(wxCoord y) const - { return m_pimpl->DeviceToLogicalYRel(y); } - wxCoord LogicalToDeviceX(wxCoord x) const - { return m_pimpl->LogicalToDeviceX(x); } - wxCoord LogicalToDeviceY(wxCoord y) const - { return m_pimpl->LogicalToDeviceY(y); } - wxCoord LogicalToDeviceXRel(wxCoord x) const - { return m_pimpl->LogicalToDeviceXRel(x); } - wxCoord LogicalToDeviceYRel(wxCoord y) const - { return m_pimpl->LogicalToDeviceYRel(y); } - - void SetMapMode(wxMappingMode mode) - { m_pimpl->SetMapMode(mode); } - wxMappingMode GetMapMode() const - { return m_pimpl->GetMapMode(); } - - void SetUserScale(double x, double y) - { m_pimpl->SetUserScale(x,y); } - void GetUserScale(double *x, double *y) const - { m_pimpl->GetUserScale( x, y ); } - - void SetLogicalScale(double x, double y) - { m_pimpl->SetLogicalScale( x, y ); } - void GetLogicalScale(double *x, double *y) const - { m_pimpl->GetLogicalScale( x, y ); } - - void SetLogicalOrigin(wxCoord x, wxCoord y) - { m_pimpl->SetLogicalOrigin(x,y); } - void GetLogicalOrigin(wxCoord *x, wxCoord *y) const - { m_pimpl->DoGetLogicalOrigin(x, y); } - wxPoint GetLogicalOrigin() const - { wxCoord x, y; m_pimpl->DoGetLogicalOrigin(&x, &y); return wxPoint(x, y); } - - void SetDeviceOrigin(wxCoord x, wxCoord y) - { m_pimpl->SetDeviceOrigin( x, y); } - void GetDeviceOrigin(wxCoord *x, wxCoord *y) const - { m_pimpl->DoGetDeviceOrigin(x, y); } - wxPoint GetDeviceOrigin() const - { wxCoord x, y; m_pimpl->DoGetDeviceOrigin(&x, &y); return wxPoint(x, y); } - - void SetAxisOrientation(bool xLeftRight, bool yBottomUp) - { m_pimpl->SetAxisOrientation(xLeftRight, yBottomUp); } - -#if wxUSE_DC_TRANSFORM_MATRIX - bool CanUseTransformMatrix() const - { return m_pimpl->CanUseTransformMatrix(); } - - bool SetTransformMatrix(const wxAffineMatrix2D &matrix) - { return m_pimpl->SetTransformMatrix(matrix); } - - wxAffineMatrix2D GetTransformMatrix() const - { return m_pimpl->GetTransformMatrix(); } - - void ResetTransformMatrix() - { m_pimpl->ResetTransformMatrix(); } -#endif // wxUSE_DC_TRANSFORM_MATRIX - - // mostly internal - void SetDeviceLocalOrigin( wxCoord x, wxCoord y ) - { m_pimpl->SetDeviceLocalOrigin( x, y ); } - - - // ----------------------------------------------- - // the actual drawing API - - bool FloodFill(wxCoord x, wxCoord y, const wxColour& col, - wxFloodFillStyle style = wxFLOOD_SURFACE) - { return m_pimpl->DoFloodFill(x, y, col, style); } - bool FloodFill(const wxPoint& pt, const wxColour& col, - wxFloodFillStyle style = wxFLOOD_SURFACE) - { return m_pimpl->DoFloodFill(pt.x, pt.y, col, style); } - - // fill the area specified by rect with a radial gradient, starting from - // initialColour in the centre of the cercle and fading to destColour. - void GradientFillConcentric(const wxRect& rect, - const wxColour& initialColour, - const wxColour& destColour) - { m_pimpl->DoGradientFillConcentric( rect, initialColour, destColour, - wxPoint(rect.GetWidth() / 2, - rect.GetHeight() / 2)); } - - void GradientFillConcentric(const wxRect& rect, - const wxColour& initialColour, - const wxColour& destColour, - const wxPoint& circleCenter) - { m_pimpl->DoGradientFillConcentric(rect, initialColour, destColour, circleCenter); } - - // fill the area specified by rect with a linear gradient - void GradientFillLinear(const wxRect& rect, - const wxColour& initialColour, - const wxColour& destColour, - wxDirection nDirection = wxEAST) - { m_pimpl->DoGradientFillLinear(rect, initialColour, destColour, nDirection); } - - bool GetPixel(wxCoord x, wxCoord y, wxColour *col) const - { return m_pimpl->DoGetPixel(x, y, col); } - bool GetPixel(const wxPoint& pt, wxColour *col) const - { return m_pimpl->DoGetPixel(pt.x, pt.y, col); } - - void DrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2) - { m_pimpl->DoDrawLine(x1, y1, x2, y2); } - void DrawLine(const wxPoint& pt1, const wxPoint& pt2) - { m_pimpl->DoDrawLine(pt1.x, pt1.y, pt2.x, pt2.y); } - - void CrossHair(wxCoord x, wxCoord y) - { m_pimpl->DoCrossHair(x, y); } - void CrossHair(const wxPoint& pt) - { m_pimpl->DoCrossHair(pt.x, pt.y); } - - void DrawArc(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2, - wxCoord xc, wxCoord yc) - { m_pimpl->DoDrawArc(x1, y1, x2, y2, xc, yc); } - void DrawArc(const wxPoint& pt1, const wxPoint& pt2, const wxPoint& centre) - { m_pimpl->DoDrawArc(pt1.x, pt1.y, pt2.x, pt2.y, centre.x, centre.y); } - - void DrawCheckMark(wxCoord x, wxCoord y, - wxCoord width, wxCoord height) - { m_pimpl->DoDrawCheckMark(x, y, width, height); } - void DrawCheckMark(const wxRect& rect) - { m_pimpl->DoDrawCheckMark(rect.x, rect.y, rect.width, rect.height); } - - void DrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h, - double sa, double ea) - { m_pimpl->DoDrawEllipticArc(x, y, w, h, sa, ea); } - void DrawEllipticArc(const wxPoint& pt, const wxSize& sz, - double sa, double ea) - { m_pimpl->DoDrawEllipticArc(pt.x, pt.y, sz.x, sz.y, sa, ea); } - - void DrawPoint(wxCoord x, wxCoord y) - { m_pimpl->DoDrawPoint(x, y); } - void DrawPoint(const wxPoint& pt) - { m_pimpl->DoDrawPoint(pt.x, pt.y); } - - void DrawLines(int n, const wxPoint points[], - wxCoord xoffset = 0, wxCoord yoffset = 0) - { m_pimpl->DoDrawLines(n, points, xoffset, yoffset); } - void DrawLines(const wxPointList *list, - wxCoord xoffset = 0, wxCoord yoffset = 0) - { m_pimpl->DrawLines( list, xoffset, yoffset ); } -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED( void DrawLines(const wxList *list, - wxCoord xoffset = 0, wxCoord yoffset = 0) ); -#endif // WXWIN_COMPATIBILITY_2_8 - - void DrawPolygon(int n, const wxPoint points[], - wxCoord xoffset = 0, wxCoord yoffset = 0, - wxPolygonFillMode fillStyle = wxODDEVEN_RULE) - { m_pimpl->DoDrawPolygon(n, points, xoffset, yoffset, fillStyle); } - void DrawPolygon(const wxPointList *list, - wxCoord xoffset = 0, wxCoord yoffset = 0, - wxPolygonFillMode fillStyle = wxODDEVEN_RULE) - { m_pimpl->DrawPolygon( list, xoffset, yoffset, fillStyle ); } - void DrawPolyPolygon(int n, const int count[], const wxPoint points[], - wxCoord xoffset = 0, wxCoord yoffset = 0, - wxPolygonFillMode fillStyle = wxODDEVEN_RULE) - { m_pimpl->DoDrawPolyPolygon(n, count, points, xoffset, yoffset, fillStyle); } -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED( void DrawPolygon(const wxList *list, - wxCoord xoffset = 0, wxCoord yoffset = 0, - wxPolygonFillMode fillStyle = wxODDEVEN_RULE) ); -#endif // WXWIN_COMPATIBILITY_2_8 - - void DrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height) - { m_pimpl->DoDrawRectangle(x, y, width, height); } - void DrawRectangle(const wxPoint& pt, const wxSize& sz) - { m_pimpl->DoDrawRectangle(pt.x, pt.y, sz.x, sz.y); } - void DrawRectangle(const wxRect& rect) - { m_pimpl->DoDrawRectangle(rect.x, rect.y, rect.width, rect.height); } - - void DrawRoundedRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height, - double radius) - { m_pimpl->DoDrawRoundedRectangle(x, y, width, height, radius); } - void DrawRoundedRectangle(const wxPoint& pt, const wxSize& sz, - double radius) - { m_pimpl->DoDrawRoundedRectangle(pt.x, pt.y, sz.x, sz.y, radius); } - void DrawRoundedRectangle(const wxRect& r, double radius) - { m_pimpl->DoDrawRoundedRectangle(r.x, r.y, r.width, r.height, radius); } - - void DrawCircle(wxCoord x, wxCoord y, wxCoord radius) - { m_pimpl->DoDrawEllipse(x - radius, y - radius, 2*radius, 2*radius); } - void DrawCircle(const wxPoint& pt, wxCoord radius) - { m_pimpl->DoDrawEllipse(pt.x - radius, pt.y - radius, 2*radius, 2*radius); } - - void DrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height) - { m_pimpl->DoDrawEllipse(x, y, width, height); } - void DrawEllipse(const wxPoint& pt, const wxSize& sz) - { m_pimpl->DoDrawEllipse(pt.x, pt.y, sz.x, sz.y); } - void DrawEllipse(const wxRect& rect) - { m_pimpl->DoDrawEllipse(rect.x, rect.y, rect.width, rect.height); } - - void DrawIcon(const wxIcon& icon, wxCoord x, wxCoord y) - { m_pimpl->DoDrawIcon(icon, x, y); } - void DrawIcon(const wxIcon& icon, const wxPoint& pt) - { m_pimpl->DoDrawIcon(icon, pt.x, pt.y); } - - void DrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y, - bool useMask = false) - { m_pimpl->DoDrawBitmap(bmp, x, y, useMask); } - void DrawBitmap(const wxBitmap &bmp, const wxPoint& pt, - bool useMask = false) - { m_pimpl->DoDrawBitmap(bmp, pt.x, pt.y, useMask); } - - void DrawText(const wxString& text, wxCoord x, wxCoord y) - { m_pimpl->DoDrawText(text, x, y); } - void DrawText(const wxString& text, const wxPoint& pt) - { m_pimpl->DoDrawText(text, pt.x, pt.y); } - - void DrawRotatedText(const wxString& text, wxCoord x, wxCoord y, double angle) - { m_pimpl->DoDrawRotatedText(text, x, y, angle); } - void DrawRotatedText(const wxString& text, const wxPoint& pt, double angle) - { m_pimpl->DoDrawRotatedText(text, pt.x, pt.y, angle); } - - // this version puts both optional bitmap and the text into the given - // rectangle and aligns is as specified by alignment parameter; it also - // will emphasize the character with the given index if it is != -1 and - // return the bounding rectangle if required - void DrawLabel(const wxString& text, - const wxBitmap& image, - const wxRect& rect, - int alignment = wxALIGN_LEFT | wxALIGN_TOP, - int indexAccel = -1, - wxRect *rectBounding = NULL); - - void DrawLabel(const wxString& text, const wxRect& rect, - int alignment = wxALIGN_LEFT | wxALIGN_TOP, - int indexAccel = -1) - { DrawLabel(text, wxNullBitmap, rect, alignment, indexAccel); } - - bool Blit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height, - wxDC *source, wxCoord xsrc, wxCoord ysrc, - wxRasterOperationMode rop = wxCOPY, bool useMask = false, - wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord) - { - return m_pimpl->DoBlit(xdest, ydest, width, height, - source, xsrc, ysrc, rop, useMask, xsrcMask, ysrcMask); - } - bool Blit(const wxPoint& destPt, const wxSize& sz, - wxDC *source, const wxPoint& srcPt, - wxRasterOperationMode rop = wxCOPY, bool useMask = false, - const wxPoint& srcPtMask = wxDefaultPosition) - { - return m_pimpl->DoBlit(destPt.x, destPt.y, sz.x, sz.y, - source, srcPt.x, srcPt.y, rop, useMask, srcPtMask.x, srcPtMask.y); - } - - bool StretchBlit(wxCoord dstX, wxCoord dstY, - wxCoord dstWidth, wxCoord dstHeight, - wxDC *source, - wxCoord srcX, wxCoord srcY, - wxCoord srcWidth, wxCoord srcHeight, - wxRasterOperationMode rop = wxCOPY, bool useMask = false, - wxCoord srcMaskX = wxDefaultCoord, wxCoord srcMaskY = wxDefaultCoord) - { - return m_pimpl->DoStretchBlit(dstX, dstY, dstWidth, dstHeight, - source, srcX, srcY, srcWidth, srcHeight, rop, useMask, srcMaskX, srcMaskY); - } - bool StretchBlit(const wxPoint& dstPt, const wxSize& dstSize, - wxDC *source, const wxPoint& srcPt, const wxSize& srcSize, - wxRasterOperationMode rop = wxCOPY, bool useMask = false, - const wxPoint& srcMaskPt = wxDefaultPosition) - { - return m_pimpl->DoStretchBlit(dstPt.x, dstPt.y, dstSize.x, dstSize.y, - source, srcPt.x, srcPt.y, srcSize.x, srcSize.y, rop, useMask, srcMaskPt.x, srcMaskPt.y); - } - - wxBitmap GetAsBitmap(const wxRect *subrect = (const wxRect *) NULL) const - { - return m_pimpl->DoGetAsBitmap(subrect); - } - -#if wxUSE_SPLINES - void DrawSpline(wxCoord x1, wxCoord y1, - wxCoord x2, wxCoord y2, - wxCoord x3, wxCoord y3) - { m_pimpl->DrawSpline(x1,y1,x2,y2,x3,y3); } - void DrawSpline(int n, const wxPoint points[]) - { m_pimpl->DrawSpline(n,points); } - void DrawSpline(const wxPointList *points) - { m_pimpl->DrawSpline(points); } -#endif // wxUSE_SPLINES - - -#if WXWIN_COMPATIBILITY_2_8 - // for compatibility with the old code when wxCoord was long everywhere - wxDEPRECATED( void GetTextExtent(const wxString& string, - long *x, long *y, - long *descent = NULL, - long *externalLeading = NULL, - const wxFont *theFont = NULL) const ); - wxDEPRECATED( void GetLogicalOrigin(long *x, long *y) const ); - wxDEPRECATED( void GetDeviceOrigin(long *x, long *y) const ); - wxDEPRECATED( void GetClippingBox(long *x, long *y, long *w, long *h) const ); - - wxDEPRECATED( void DrawObject(wxDrawObject* drawobject) ); -#endif // WXWIN_COMPATIBILITY_2_8 - -#ifdef __WXMSW__ - // GetHDC() is the simplest way to retrieve an HDC From a wxDC but only - // works if this wxDC is GDI-based and fails for GDI+ contexts (and - // anything else without HDC, e.g. wxPostScriptDC) - WXHDC GetHDC() const; - - // don't use these methods manually, use GetTempHDC() instead - virtual WXHDC AcquireHDC() { return GetHDC(); } - virtual void ReleaseHDC(WXHDC WXUNUSED(hdc)) { } - - // helper class holding the result of GetTempHDC() with std::auto_ptr<>-like - // semantics, i.e. it is moved when copied - class TempHDC - { - public: - TempHDC(wxDC& dc) - : m_dc(dc), - m_hdc(dc.AcquireHDC()) - { - } - - TempHDC(const TempHDC& thdc) - : m_dc(thdc.m_dc), - m_hdc(thdc.m_hdc) - { - const_cast(thdc).m_hdc = 0; - } - - ~TempHDC() - { - if ( m_hdc ) - m_dc.ReleaseHDC(m_hdc); - } - - WXHDC GetHDC() const { return m_hdc; } - - private: - wxDC& m_dc; - WXHDC m_hdc; - - wxDECLARE_NO_ASSIGN_CLASS(TempHDC); - }; - - // GetTempHDC() also works for wxGCDC (but still not for wxPostScriptDC &c) - TempHDC GetTempHDC() { return TempHDC(*this); } -#endif // __WXMSW__ - -#if wxUSE_GRAPHICS_CONTEXT - virtual wxGraphicsContext* GetGraphicsContext() const - { - return m_pimpl->GetGraphicsContext(); - } - virtual void SetGraphicsContext( wxGraphicsContext* ctx ) - { - m_pimpl->SetGraphicsContext(ctx); - } -#endif - -protected: - // ctor takes ownership of the pointer - wxDC(wxDCImpl *pimpl) : m_pimpl(pimpl) { } - - wxDCImpl * const m_pimpl; - -private: - wxDECLARE_ABSTRACT_CLASS(wxDC); - wxDECLARE_NO_COPY_CLASS(wxDC); -}; - -// ---------------------------------------------------------------------------- -// helper class: you can use it to temporarily change the DC text colour and -// restore it automatically when the object goes out of scope -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDCTextColourChanger -{ -public: - wxDCTextColourChanger(wxDC& dc) : m_dc(dc), m_colFgOld() { } - - wxDCTextColourChanger(wxDC& dc, const wxColour& col) : m_dc(dc) - { - Set(col); - } - - ~wxDCTextColourChanger() - { - if ( m_colFgOld.IsOk() ) - m_dc.SetTextForeground(m_colFgOld); - } - - void Set(const wxColour& col) - { - if ( !m_colFgOld.IsOk() ) - m_colFgOld = m_dc.GetTextForeground(); - m_dc.SetTextForeground(col); - } - -private: - wxDC& m_dc; - - wxColour m_colFgOld; - - wxDECLARE_NO_COPY_CLASS(wxDCTextColourChanger); -}; - -// ---------------------------------------------------------------------------- -// helper class: you can use it to temporarily change the DC pen and -// restore it automatically when the object goes out of scope -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDCPenChanger -{ -public: - wxDCPenChanger(wxDC& dc, const wxPen& pen) : m_dc(dc), m_penOld(dc.GetPen()) - { - m_dc.SetPen(pen); - } - - ~wxDCPenChanger() - { - if ( m_penOld.IsOk() ) - m_dc.SetPen(m_penOld); - } - -private: - wxDC& m_dc; - - wxPen m_penOld; - - wxDECLARE_NO_COPY_CLASS(wxDCPenChanger); -}; - -// ---------------------------------------------------------------------------- -// helper class: you can use it to temporarily change the DC brush and -// restore it automatically when the object goes out of scope -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDCBrushChanger -{ -public: - wxDCBrushChanger(wxDC& dc, const wxBrush& brush) : m_dc(dc), m_brushOld(dc.GetBrush()) - { - m_dc.SetBrush(brush); - } - - ~wxDCBrushChanger() - { - if ( m_brushOld.IsOk() ) - m_dc.SetBrush(m_brushOld); - } - -private: - wxDC& m_dc; - - wxBrush m_brushOld; - - wxDECLARE_NO_COPY_CLASS(wxDCBrushChanger); -}; - -// ---------------------------------------------------------------------------- -// another small helper class: sets the clipping region in its ctor and -// destroys it in the dtor -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDCClipper -{ -public: - wxDCClipper(wxDC& dc, const wxRegion& r) : m_dc(dc) - { dc.SetClippingRegion(r.GetBox()); } - wxDCClipper(wxDC& dc, const wxRect& r) : m_dc(dc) - { dc.SetClippingRegion(r.x, r.y, r.width, r.height); } - wxDCClipper(wxDC& dc, wxCoord x, wxCoord y, wxCoord w, wxCoord h) : m_dc(dc) - { dc.SetClippingRegion(x, y, w, h); } - - ~wxDCClipper() { m_dc.DestroyClippingRegion(); } - -private: - wxDC& m_dc; - - wxDECLARE_NO_COPY_CLASS(wxDCClipper); -}; - -// ---------------------------------------------------------------------------- -// helper class: you can use it to temporarily change the DC font and -// restore it automatically when the object goes out of scope -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDCFontChanger -{ -public: - wxDCFontChanger(wxDC& dc) - : m_dc(dc), m_fontOld() - { - } - - wxDCFontChanger(wxDC& dc, const wxFont& font) - : m_dc(dc), m_fontOld(dc.GetFont()) - { - m_dc.SetFont(font); - } - - void Set(const wxFont& font) - { - if ( !m_fontOld.IsOk() ) - m_fontOld = m_dc.GetFont(); - m_dc.SetFont(font); - } - - ~wxDCFontChanger() - { - if ( m_fontOld.IsOk() ) - m_dc.SetFont(m_fontOld); - } - -private: - wxDC& m_dc; - - wxFont m_fontOld; - - wxDECLARE_NO_COPY_CLASS(wxDCFontChanger); -}; - - -#endif // _WX_DC_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcbuffer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcbuffer.h deleted file mode 100644 index fb912f6e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcbuffer.h +++ /dev/null @@ -1,248 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dcbuffer.h -// Purpose: wxBufferedDC class -// Author: Ron Lee -// Modified by: Vadim Zeitlin (refactored, added bg preservation) -// Created: 16/03/02 -// Copyright: (c) Ron Lee -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCBUFFER_H_ -#define _WX_DCBUFFER_H_ - -#include "wx/dcmemory.h" -#include "wx/dcclient.h" -#include "wx/window.h" - -// Split platforms into two groups - those which have well-working -// double-buffering by default, and those which do not. -#if defined(__WXMAC__) || defined(__WXGTK20__) || defined(__WXDFB__) || defined(__WXQT__) - #define wxALWAYS_NATIVE_DOUBLE_BUFFER 1 -#else - #define wxALWAYS_NATIVE_DOUBLE_BUFFER 0 -#endif - - -// ---------------------------------------------------------------------------- -// Double buffering helper. -// ---------------------------------------------------------------------------- - -// Assumes the buffer bitmap covers the entire scrolled window, -// and prepares the window DC accordingly -#define wxBUFFER_VIRTUAL_AREA 0x01 - -// Assumes the buffer bitmap only covers the client area; -// does not prepare the window DC -#define wxBUFFER_CLIENT_AREA 0x02 - -// Set when not using specific buffer bitmap. Note that this -// is private style and not returned by GetStyle. -#define wxBUFFER_USES_SHARED_BUFFER 0x04 - -class WXDLLIMPEXP_CORE wxBufferedDC : public wxMemoryDC -{ -public: - // Default ctor, must subsequently call Init for two stage construction. - wxBufferedDC() - : m_dc(NULL), - m_buffer(NULL), - m_style(0) - { - } - - // Construct a wxBufferedDC using a user supplied buffer. - wxBufferedDC(wxDC *dc, - wxBitmap& buffer = wxNullBitmap, - int style = wxBUFFER_CLIENT_AREA) - : m_dc(NULL), m_buffer(NULL) - { - Init(dc, buffer, style); - } - - // Construct a wxBufferedDC with an internal buffer of 'area' - // (where area is usually something like the size of the window - // being buffered) - wxBufferedDC(wxDC *dc, const wxSize& area, int style = wxBUFFER_CLIENT_AREA) - : m_dc(NULL), m_buffer(NULL) - { - Init(dc, area, style); - } - - // The usually desired action in the dtor is to blit the buffer. - virtual ~wxBufferedDC() - { - if ( m_dc ) - UnMask(); - } - - // These reimplement the actions of the ctors for two stage creation - void Init(wxDC *dc, - wxBitmap& buffer = wxNullBitmap, - int style = wxBUFFER_CLIENT_AREA) - { - InitCommon(dc, style); - - m_buffer = &buffer; - - UseBuffer(); - } - - void Init(wxDC *dc, const wxSize &area, int style = wxBUFFER_CLIENT_AREA) - { - InitCommon(dc, style); - - UseBuffer(area.x, area.y); - } - - // Blits the buffer to the dc, and detaches the dc from the buffer (so it - // can be effectively used once only). - // - // Usually called in the dtor or by the dtor of derived classes if the - // BufferedDC must blit before the derived class (which may own the dc it's - // blitting to) is destroyed. - void UnMask(); - - // Set and get the style - void SetStyle(int style) { m_style = style; } - int GetStyle() const { return m_style & ~wxBUFFER_USES_SHARED_BUFFER; } - -private: - // common part of Init()s - void InitCommon(wxDC *dc, int style) - { - wxASSERT_MSG( !m_dc, wxT("wxBufferedDC already initialised") ); - - m_dc = dc; - m_style = style; - } - - // check that the bitmap is valid and use it - void UseBuffer(wxCoord w = -1, wxCoord h = -1); - - // the underlying DC to which we copy everything drawn on this one in - // UnMask() - // - // NB: Without the existence of a wxNullDC, this must be a pointer, else it - // could probably be a reference. - wxDC *m_dc; - - // the buffer (selected in this DC), initially invalid - wxBitmap *m_buffer; - - // the buffering style - int m_style; - - wxSize m_area; - - wxDECLARE_DYNAMIC_CLASS(wxBufferedDC); - wxDECLARE_NO_COPY_CLASS(wxBufferedDC); -}; - - -// ---------------------------------------------------------------------------- -// Double buffered PaintDC. -// ---------------------------------------------------------------------------- - -// Creates a double buffered wxPaintDC, optionally allowing the -// user to specify their own buffer to use. -class WXDLLIMPEXP_CORE wxBufferedPaintDC : public wxBufferedDC -{ -public: - // If no bitmap is supplied by the user, a temporary one will be created. - wxBufferedPaintDC(wxWindow *window, wxBitmap& buffer, int style = wxBUFFER_CLIENT_AREA) - : m_paintdc(window) - { - // If we're buffering the virtual window, scale the paint DC as well - if (style & wxBUFFER_VIRTUAL_AREA) - window->PrepareDC( m_paintdc ); - - if( buffer.IsOk() ) - Init(&m_paintdc, buffer, style); - else - Init(&m_paintdc, GetBufferedSize(window, style), style); - } - - // If no bitmap is supplied by the user, a temporary one will be created. - wxBufferedPaintDC(wxWindow *window, int style = wxBUFFER_CLIENT_AREA) - : m_paintdc(window) - { - // If we're using the virtual window, scale the paint DC as well - if (style & wxBUFFER_VIRTUAL_AREA) - window->PrepareDC( m_paintdc ); - - Init(&m_paintdc, GetBufferedSize(window, style), style); - } - - // default copy ctor ok. - - virtual ~wxBufferedPaintDC() - { - // We must UnMask here, else by the time the base class - // does it, the PaintDC will have already been destroyed. - UnMask(); - } - -protected: - // return the size needed by the buffer: this depends on whether we're - // buffering just the currently shown part or the total (scrolled) window - static wxSize GetBufferedSize(wxWindow *window, int style) - { - return style & wxBUFFER_VIRTUAL_AREA ? window->GetVirtualSize() - : window->GetClientSize(); - } - -private: - wxPaintDC m_paintdc; - - wxDECLARE_ABSTRACT_CLASS(wxBufferedPaintDC); - wxDECLARE_NO_COPY_CLASS(wxBufferedPaintDC); -}; - - - -// -// wxAutoBufferedPaintDC is a wxPaintDC in toolkits which have double- -// buffering by default. Otherwise it is a wxBufferedPaintDC. Thus, -// you can only expect it work with a simple constructor that -// accepts single wxWindow* argument. -// -#if wxALWAYS_NATIVE_DOUBLE_BUFFER - #define wxAutoBufferedPaintDCBase wxPaintDC -#else - #define wxAutoBufferedPaintDCBase wxBufferedPaintDC -#endif - -class WXDLLIMPEXP_CORE wxAutoBufferedPaintDC : public wxAutoBufferedPaintDCBase -{ -public: - - wxAutoBufferedPaintDC(wxWindow* win) - : wxAutoBufferedPaintDCBase(win) - { - wxASSERT_MSG( win->GetBackgroundStyle() == wxBG_STYLE_PAINT, - "You need to call SetBackgroundStyle(wxBG_STYLE_PAINT) in ctor, " - "and also, if needed, paint the background in wxEVT_PAINT handler." - ); - } - - virtual ~wxAutoBufferedPaintDC() { } - -private: - wxDECLARE_NO_COPY_CLASS(wxAutoBufferedPaintDC); -}; - - - -// Check if the window is natively double buffered and will return a wxPaintDC -// if it is, a wxBufferedPaintDC otherwise. It is the caller's responsibility -// to delete the wxDC pointer when finished with it. -inline wxDC* wxAutoBufferedPaintDCFactory(wxWindow* window) -{ - if ( window->IsDoubleBuffered() ) - return new wxPaintDC(window); - else - return new wxBufferedPaintDC(window); -} - -#endif // _WX_DCBUFFER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcclient.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcclient.h deleted file mode 100644 index 28391d12..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcclient.h +++ /dev/null @@ -1,62 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dcclient.h -// Purpose: wxClientDC base header -// Author: Julian Smart -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCCLIENT_H_BASE_ -#define _WX_DCCLIENT_H_BASE_ - -#include "wx/dc.h" - -//----------------------------------------------------------------------------- -// wxWindowDC -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxWindowDC : public wxDC -{ -public: - wxWindowDC(wxWindow *win); - -protected: - wxWindowDC(wxDCImpl *impl) : wxDC(impl) { } - -private: - wxDECLARE_ABSTRACT_CLASS(wxWindowDC); -}; - -//----------------------------------------------------------------------------- -// wxClientDC -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxClientDC : public wxWindowDC -{ -public: - wxClientDC(wxWindow *win); - -protected: - wxClientDC(wxDCImpl *impl) : wxWindowDC(impl) { } - -private: - wxDECLARE_ABSTRACT_CLASS(wxClientDC); -}; - -//----------------------------------------------------------------------------- -// wxPaintDC -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPaintDC : public wxClientDC -{ -public: - wxPaintDC(wxWindow *win); - -protected: - wxPaintDC(wxDCImpl *impl) : wxClientDC(impl) { } - -private: - wxDECLARE_ABSTRACT_CLASS(wxPaintDC); -}; - -#endif // _WX_DCCLIENT_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcgraph.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcgraph.h deleted file mode 100644 index 612bd1c0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcgraph.h +++ /dev/null @@ -1,223 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dcgraph.h -// Purpose: graphics context device bridge header -// Author: Stefan Csomor -// Modified by: -// Created: -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GRAPHICS_DC_H_ -#define _WX_GRAPHICS_DC_H_ - -#if wxUSE_GRAPHICS_CONTEXT - -#include "wx/dc.h" -#include "wx/geometry.h" -#include "wx/graphics.h" - -class WXDLLIMPEXP_FWD_CORE wxWindowDC; - - -class WXDLLIMPEXP_CORE wxGCDC: public wxDC -{ -public: - wxGCDC( const wxWindowDC& dc ); - wxGCDC( const wxMemoryDC& dc ); -#if wxUSE_PRINTING_ARCHITECTURE - wxGCDC( const wxPrinterDC& dc ); -#endif -#if defined(__WXMSW__) && wxUSE_ENH_METAFILE - wxGCDC( const wxEnhMetaFileDC& dc ); -#endif - wxGCDC(wxGraphicsContext* context); - - wxGCDC(); - virtual ~wxGCDC(); - -#ifdef __WXMSW__ - // override wxDC virtual functions to provide access to HDC associated with - // this Graphics object (implemented in src/msw/graphics.cpp) - virtual WXHDC AcquireHDC(); - virtual void ReleaseHDC(WXHDC hdc); -#endif // __WXMSW__ - -private: - wxDECLARE_DYNAMIC_CLASS(wxGCDC); - wxDECLARE_NO_COPY_CLASS(wxGCDC); -}; - - -class WXDLLIMPEXP_CORE wxGCDCImpl: public wxDCImpl -{ -public: - wxGCDCImpl( wxDC *owner, const wxWindowDC& dc ); - wxGCDCImpl( wxDC *owner, const wxMemoryDC& dc ); -#if wxUSE_PRINTING_ARCHITECTURE - wxGCDCImpl( wxDC *owner, const wxPrinterDC& dc ); -#endif -#if defined(__WXMSW__) && wxUSE_ENH_METAFILE - wxGCDCImpl( wxDC *owner, const wxEnhMetaFileDC& dc ); -#endif - wxGCDCImpl( wxDC *owner ); - - virtual ~wxGCDCImpl(); - - // implement base class pure virtuals - // ---------------------------------- - - virtual void Clear() wxOVERRIDE; - - virtual bool StartDoc( const wxString& message ) wxOVERRIDE; - virtual void EndDoc() wxOVERRIDE; - - virtual void StartPage() wxOVERRIDE; - virtual void EndPage() wxOVERRIDE; - - // flushing the content of this dc immediately onto screen - virtual void Flush() wxOVERRIDE; - - virtual void SetFont(const wxFont& font) wxOVERRIDE; - virtual void SetPen(const wxPen& pen) wxOVERRIDE; - virtual void SetBrush(const wxBrush& brush) wxOVERRIDE; - virtual void SetBackground(const wxBrush& brush) wxOVERRIDE; - virtual void SetBackgroundMode(int mode) wxOVERRIDE; - virtual void SetPalette(const wxPalette& palette) wxOVERRIDE; - - virtual void DestroyClippingRegion() wxOVERRIDE; - - virtual wxCoord GetCharHeight() const wxOVERRIDE; - virtual wxCoord GetCharWidth() const wxOVERRIDE; - - virtual bool CanDrawBitmap() const wxOVERRIDE; - virtual bool CanGetTextExtent() const wxOVERRIDE; - virtual int GetDepth() const wxOVERRIDE; - virtual wxSize GetPPI() const wxOVERRIDE; - - virtual void SetLogicalFunction(wxRasterOperationMode function) wxOVERRIDE; - - virtual void SetTextForeground(const wxColour& colour) wxOVERRIDE; - virtual void SetTextBackground(const wxColour& colour) wxOVERRIDE; - - virtual void ComputeScaleAndOrigin() wxOVERRIDE; - - wxGraphicsContext* GetGraphicsContext() const wxOVERRIDE { return m_graphicContext; } - virtual void SetGraphicsContext( wxGraphicsContext* ctx ) wxOVERRIDE; - - virtual void* GetHandle() const wxOVERRIDE; - - // the true implementations - virtual bool DoFloodFill(wxCoord x, wxCoord y, const wxColour& col, - wxFloodFillStyle style = wxFLOOD_SURFACE) wxOVERRIDE; - - virtual void DoGradientFillLinear(const wxRect& rect, - const wxColour& initialColour, - const wxColour& destColour, - wxDirection nDirection = wxEAST) wxOVERRIDE; - - virtual void DoGradientFillConcentric(const wxRect& rect, - const wxColour& initialColour, - const wxColour& destColour, - const wxPoint& circleCenter) wxOVERRIDE; - - virtual bool DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const wxOVERRIDE; - - virtual void DoDrawPoint(wxCoord x, wxCoord y) wxOVERRIDE; - -#if wxUSE_SPLINES - virtual void DoDrawSpline(const wxPointList *points) wxOVERRIDE; -#endif - - virtual void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2) wxOVERRIDE; - - virtual void DoDrawArc(wxCoord x1, wxCoord y1, - wxCoord x2, wxCoord y2, - wxCoord xc, wxCoord yc) wxOVERRIDE; - - virtual void DoDrawCheckMark(wxCoord x, wxCoord y, - wxCoord width, wxCoord height) wxOVERRIDE; - - virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h, - double sa, double ea) wxOVERRIDE; - - virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height) wxOVERRIDE; - virtual void DoDrawRoundedRectangle(wxCoord x, wxCoord y, - wxCoord width, wxCoord height, - double radius) wxOVERRIDE; - virtual void DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height) wxOVERRIDE; - - virtual void DoCrossHair(wxCoord x, wxCoord y) wxOVERRIDE; - - virtual void DoDrawIcon(const wxIcon& icon, wxCoord x, wxCoord y) wxOVERRIDE; - virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y, - bool useMask = false) wxOVERRIDE; - - virtual void DoDrawText(const wxString& text, wxCoord x, wxCoord y) wxOVERRIDE; - virtual void DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord y, - double angle) wxOVERRIDE; - - virtual bool DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height, - wxDC *source, wxCoord xsrc, wxCoord ysrc, - wxRasterOperationMode rop = wxCOPY, bool useMask = false, - wxCoord xsrcMask = -1, wxCoord ysrcMask = -1) wxOVERRIDE; - - virtual bool DoStretchBlit(wxCoord xdest, wxCoord ydest, - wxCoord dstWidth, wxCoord dstHeight, - wxDC *source, - wxCoord xsrc, wxCoord ysrc, - wxCoord srcWidth, wxCoord srcHeight, - wxRasterOperationMode = wxCOPY, bool useMask = false, - wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord) wxOVERRIDE; - - virtual void DoGetSize(int *,int *) const wxOVERRIDE; - virtual void DoGetSizeMM(int* width, int* height) const wxOVERRIDE; - - virtual void DoDrawLines(int n, const wxPoint points[], - wxCoord xoffset, wxCoord yoffset) wxOVERRIDE; - virtual void DoDrawPolygon(int n, const wxPoint points[], - wxCoord xoffset, wxCoord yoffset, - wxPolygonFillMode fillStyle = wxODDEVEN_RULE) wxOVERRIDE; - virtual void DoDrawPolyPolygon(int n, const int count[], const wxPoint points[], - wxCoord xoffset, wxCoord yoffset, - wxPolygonFillMode fillStyle) wxOVERRIDE; - - virtual void DoSetDeviceClippingRegion(const wxRegion& region) wxOVERRIDE; - virtual void DoSetClippingRegion(wxCoord x, wxCoord y, - wxCoord width, wxCoord height) wxOVERRIDE; - - virtual void DoGetTextExtent(const wxString& string, - wxCoord *x, wxCoord *y, - wxCoord *descent = NULL, - wxCoord *externalLeading = NULL, - const wxFont *theFont = NULL) const wxOVERRIDE; - - virtual bool DoGetPartialTextExtents(const wxString& text, wxArrayInt& widths) const wxOVERRIDE; - -#ifdef __WXMSW__ - virtual wxRect MSWApplyGDIPlusTransform(const wxRect& r) const; -#endif // __WXMSW__ - -protected: - // unused int parameter distinguishes this version, which does not create a - // wxGraphicsContext, in the expectation that the derived class will do it - wxGCDCImpl(wxDC* owner, int); - - // scaling variables - bool m_logicalFunctionSupported; - wxGraphicsMatrix m_matrixOriginal; - wxGraphicsMatrix m_matrixCurrent; - - double m_formerScaleX, m_formerScaleY; - - wxGraphicsContext* m_graphicContext; - -private: - void Init(wxGraphicsContext*); - - wxDECLARE_CLASS(wxGCDCImpl); - wxDECLARE_NO_COPY_CLASS(wxGCDCImpl); -}; - -#endif // wxUSE_GRAPHICS_CONTEXT -#endif // _WX_GRAPHICS_DC_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcmemory.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcmemory.h deleted file mode 100644 index 573da75c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcmemory.h +++ /dev/null @@ -1,44 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dcmemory.h -// Purpose: wxMemoryDC base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCMEMORY_H_BASE_ -#define _WX_DCMEMORY_H_BASE_ - -#include "wx/dc.h" -#include "wx/bitmap.h" - -//----------------------------------------------------------------------------- -// wxMemoryDC -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMemoryDC: public wxDC -{ -public: - wxMemoryDC(); - wxMemoryDC( wxBitmap& bitmap ); - wxMemoryDC( wxDC *dc ); - - // select the given bitmap to draw on it - void SelectObject(wxBitmap& bmp); - - // select the given bitmap for read-only - void SelectObjectAsSource(const wxBitmap& bmp); - - // get selected bitmap - const wxBitmap& GetSelectedBitmap() const; - wxBitmap& GetSelectedBitmap(); - -private: - wxDECLARE_DYNAMIC_CLASS(wxMemoryDC); -}; - - -#endif - // _WX_DCMEMORY_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcmirror.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcmirror.h deleted file mode 100644 index 4bbd27e7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcmirror.h +++ /dev/null @@ -1,299 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/dcmirror.h -// Purpose: wxMirrorDC class -// Author: Vadim Zeitlin -// Modified by: -// Created: 21.07.2003 -// Copyright: (c) 2003 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCMIRROR_H_ -#define _WX_DCMIRROR_H_ - -#include "wx/dc.h" - -// ---------------------------------------------------------------------------- -// wxMirrorDC allows to write the same code for horz/vertical layout -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMirrorDCImpl : public wxDCImpl -{ -public: - // constructs a mirror DC associated with the given real DC - // - // if mirror parameter is true, all vertical and horizontal coordinates are - // exchanged, otherwise this class behaves in exactly the same way as a - // plain DC - wxMirrorDCImpl(wxDC *owner, wxDCImpl& dc, bool mirror) - : wxDCImpl(owner), - m_dc(dc) - { - m_mirror = mirror; - } - - // wxDCBase operations - virtual void Clear() wxOVERRIDE { m_dc.Clear(); } - virtual void SetFont(const wxFont& font) wxOVERRIDE { m_dc.SetFont(font); } - virtual void SetPen(const wxPen& pen) wxOVERRIDE { m_dc.SetPen(pen); } - virtual void SetBrush(const wxBrush& brush) wxOVERRIDE { m_dc.SetBrush(brush); } - virtual void SetBackground(const wxBrush& brush) wxOVERRIDE - { m_dc.SetBackground(brush); } - virtual void SetBackgroundMode(int mode) wxOVERRIDE { m_dc.SetBackgroundMode(mode); } -#if wxUSE_PALETTE - virtual void SetPalette(const wxPalette& palette) wxOVERRIDE - { m_dc.SetPalette(palette); } -#endif // wxUSE_PALETTE - virtual void DestroyClippingRegion() wxOVERRIDE { m_dc.DestroyClippingRegion(); } - virtual wxCoord GetCharHeight() const wxOVERRIDE { return m_dc.GetCharHeight(); } - virtual wxCoord GetCharWidth() const wxOVERRIDE { return m_dc.GetCharWidth(); } - virtual bool CanDrawBitmap() const wxOVERRIDE { return m_dc.CanDrawBitmap(); } - virtual bool CanGetTextExtent() const wxOVERRIDE { return m_dc.CanGetTextExtent(); } - virtual int GetDepth() const wxOVERRIDE { return m_dc.GetDepth(); } - virtual wxSize GetPPI() const wxOVERRIDE { return m_dc.GetPPI(); } - virtual bool IsOk() const wxOVERRIDE { return m_dc.IsOk(); } - virtual void SetMapMode(wxMappingMode mode) wxOVERRIDE { m_dc.SetMapMode(mode); } - virtual void SetUserScale(double x, double y) wxOVERRIDE - { m_dc.SetUserScale(GetX(x, y), GetY(x, y)); } - virtual void SetLogicalOrigin(wxCoord x, wxCoord y) wxOVERRIDE - { m_dc.SetLogicalOrigin(GetX(x, y), GetY(x, y)); } - virtual void SetDeviceOrigin(wxCoord x, wxCoord y) wxOVERRIDE - { m_dc.SetDeviceOrigin(GetX(x, y), GetY(x, y)); } - virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp) wxOVERRIDE - { m_dc.SetAxisOrientation(GetX(xLeftRight, yBottomUp), - GetY(xLeftRight, yBottomUp)); } - virtual void SetLogicalFunction(wxRasterOperationMode function) wxOVERRIDE - { m_dc.SetLogicalFunction(function); } - - virtual void* GetHandle() const wxOVERRIDE - { return m_dc.GetHandle(); } - -protected: - // returns x and y if not mirroring or y and x if mirroring - wxCoord GetX(wxCoord x, wxCoord y) const { return m_mirror ? y : x; } - wxCoord GetY(wxCoord x, wxCoord y) const { return m_mirror ? x : y; } - double GetX(double x, double y) const { return m_mirror ? y : x; } - double GetY(double x, double y) const { return m_mirror ? x : y; } - bool GetX(bool x, bool y) const { return m_mirror ? y : x; } - bool GetY(bool x, bool y) const { return m_mirror ? x : y; } - - // same thing but for pointers - wxCoord *GetX(wxCoord *x, wxCoord *y) const { return m_mirror ? y : x; } - wxCoord *GetY(wxCoord *x, wxCoord *y) const { return m_mirror ? x : y; } - - // exchange x and y components of all points in the array if necessary - wxPoint* Mirror(int n, const wxPoint*& points) const - { - wxPoint* points_alloc = NULL; - if ( m_mirror ) - { - points_alloc = new wxPoint[n]; - for ( int i = 0; i < n; i++ ) - { - points_alloc[i].x = points[i].y; - points_alloc[i].y = points[i].x; - } - points = points_alloc; - } - return points_alloc; - } - - // wxDCBase functions - virtual bool DoFloodFill(wxCoord x, wxCoord y, const wxColour& col, - wxFloodFillStyle style = wxFLOOD_SURFACE) wxOVERRIDE - { - return m_dc.DoFloodFill(GetX(x, y), GetY(x, y), col, style); - } - - virtual bool DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const wxOVERRIDE - { - return m_dc.DoGetPixel(GetX(x, y), GetY(x, y), col); - } - - - virtual void DoDrawPoint(wxCoord x, wxCoord y) wxOVERRIDE - { - m_dc.DoDrawPoint(GetX(x, y), GetY(x, y)); - } - - virtual void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2) wxOVERRIDE - { - m_dc.DoDrawLine(GetX(x1, y1), GetY(x1, y1), GetX(x2, y2), GetY(x2, y2)); - } - - virtual void DoDrawArc(wxCoord x1, wxCoord y1, - wxCoord x2, wxCoord y2, - wxCoord xc, wxCoord yc) wxOVERRIDE - { - wxFAIL_MSG( wxT("this is probably wrong") ); - - m_dc.DoDrawArc(GetX(x1, y1), GetY(x1, y1), - GetX(x2, y2), GetY(x2, y2), - xc, yc); - } - - virtual void DoDrawCheckMark(wxCoord x, wxCoord y, - wxCoord w, wxCoord h) wxOVERRIDE - { - m_dc.DoDrawCheckMark(GetX(x, y), GetY(x, y), - GetX(w, h), GetY(w, h)); - } - - virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h, - double sa, double ea) wxOVERRIDE - { - wxFAIL_MSG( wxT("this is probably wrong") ); - - m_dc.DoDrawEllipticArc(GetX(x, y), GetY(x, y), - GetX(w, h), GetY(w, h), - sa, ea); - } - - virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord w, wxCoord h) wxOVERRIDE - { - m_dc.DoDrawRectangle(GetX(x, y), GetY(x, y), GetX(w, h), GetY(w, h)); - } - - virtual void DoDrawRoundedRectangle(wxCoord x, wxCoord y, - wxCoord w, wxCoord h, - double radius) wxOVERRIDE - { - m_dc.DoDrawRoundedRectangle(GetX(x, y), GetY(x, y), - GetX(w, h), GetY(w, h), - radius); - } - - virtual void DoDrawEllipse(wxCoord x, wxCoord y, wxCoord w, wxCoord h) wxOVERRIDE - { - m_dc.DoDrawEllipse(GetX(x, y), GetY(x, y), GetX(w, h), GetY(w, h)); - } - - virtual void DoCrossHair(wxCoord x, wxCoord y) wxOVERRIDE - { - m_dc.DoCrossHair(GetX(x, y), GetY(x, y)); - } - - virtual void DoDrawIcon(const wxIcon& icon, wxCoord x, wxCoord y) wxOVERRIDE - { - m_dc.DoDrawIcon(icon, GetX(x, y), GetY(x, y)); - } - - virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y, - bool useMask = false) wxOVERRIDE - { - m_dc.DoDrawBitmap(bmp, GetX(x, y), GetY(x, y), useMask); - } - - virtual void DoDrawText(const wxString& text, wxCoord x, wxCoord y) wxOVERRIDE - { - // this is never mirrored - m_dc.DoDrawText(text, x, y); - } - - virtual void DoDrawRotatedText(const wxString& text, - wxCoord x, wxCoord y, double angle) wxOVERRIDE - { - // this is never mirrored - m_dc.DoDrawRotatedText(text, x, y, angle); - } - - virtual bool DoBlit(wxCoord xdest, wxCoord ydest, - wxCoord w, wxCoord h, - wxDC *source, wxCoord xsrc, wxCoord ysrc, - wxRasterOperationMode rop = wxCOPY, - bool useMask = false, - wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord) wxOVERRIDE - { - return m_dc.DoBlit(GetX(xdest, ydest), GetY(xdest, ydest), - GetX(w, h), GetY(w, h), - source, GetX(xsrc, ysrc), GetY(xsrc, ysrc), - rop, useMask, - GetX(xsrcMask, ysrcMask), GetX(xsrcMask, ysrcMask)); - } - - virtual void DoGetSize(int *w, int *h) const wxOVERRIDE - { - m_dc.DoGetSize(GetX(w, h), GetY(w, h)); - } - - virtual void DoGetSizeMM(int *w, int *h) const wxOVERRIDE - { - m_dc.DoGetSizeMM(GetX(w, h), GetY(w, h)); - } - - virtual void DoDrawLines(int n, const wxPoint points[], - wxCoord xoffset, wxCoord yoffset) wxOVERRIDE - { - wxPoint* points_alloc = Mirror(n, points); - - m_dc.DoDrawLines(n, points, - GetX(xoffset, yoffset), GetY(xoffset, yoffset)); - - delete[] points_alloc; - } - - virtual void DoDrawPolygon(int n, const wxPoint points[], - wxCoord xoffset, wxCoord yoffset, - wxPolygonFillMode fillStyle = wxODDEVEN_RULE) wxOVERRIDE - { - wxPoint* points_alloc = Mirror(n, points); - - m_dc.DoDrawPolygon(n, points, - GetX(xoffset, yoffset), GetY(xoffset, yoffset), - fillStyle); - - delete[] points_alloc; - } - - virtual void DoSetDeviceClippingRegion(const wxRegion& WXUNUSED(region)) wxOVERRIDE - { - wxFAIL_MSG( wxT("not implemented") ); - } - - virtual void DoSetClippingRegion(wxCoord x, wxCoord y, - wxCoord w, wxCoord h) wxOVERRIDE - { - m_dc.DoSetClippingRegion(GetX(x, y), GetY(x, y), GetX(w, h), GetY(w, h)); - } - - virtual void DoGetTextExtent(const wxString& string, - wxCoord *x, wxCoord *y, - wxCoord *descent = NULL, - wxCoord *externalLeading = NULL, - const wxFont *theFont = NULL) const wxOVERRIDE - { - // never mirrored - m_dc.DoGetTextExtent(string, x, y, descent, externalLeading, theFont); - } - -private: - wxDCImpl& m_dc; - - bool m_mirror; - - wxDECLARE_NO_COPY_CLASS(wxMirrorDCImpl); -}; - -class WXDLLIMPEXP_CORE wxMirrorDC : public wxDC -{ -public: - wxMirrorDC(wxDC& dc, bool mirror) - : wxDC(new wxMirrorDCImpl(this, *dc.GetImpl(), mirror)) - { - m_mirror = mirror; - } - - // helper functions which may be useful for the users of this class - wxSize Reflect(const wxSize& sizeOrig) - { - return m_mirror ? wxSize(sizeOrig.y, sizeOrig.x) : sizeOrig; - } - -private: - bool m_mirror; - - wxDECLARE_NO_COPY_CLASS(wxMirrorDC); -}; - -#endif // _WX_DCMIRROR_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcprint.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcprint.h deleted file mode 100644 index 2e98c7e4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcprint.h +++ /dev/null @@ -1,42 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dcprint.h -// Purpose: wxPrinterDC base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCPRINT_H_BASE_ -#define _WX_DCPRINT_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_PRINTING_ARCHITECTURE - -#include "wx/dc.h" - -//----------------------------------------------------------------------------- -// wxPrinterDC -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPrinterDC : public wxDC -{ -public: - wxPrinterDC(); - wxPrinterDC(const wxPrintData& data); - - wxRect GetPaperRect() const; - int GetResolution() const wxOVERRIDE; - -protected: - wxPrinterDC(wxDCImpl *impl) : wxDC(impl) { } - -private: - wxDECLARE_DYNAMIC_CLASS(wxPrinterDC); -}; - -#endif // wxUSE_PRINTING_ARCHITECTURE - -#endif // _WX_DCPRINT_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcps.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcps.h deleted file mode 100644 index 659eb595..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcps.h +++ /dev/null @@ -1,17 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dcps.h -// Purpose: wxPostScriptDC base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCPS_H_BASE_ -#define _WX_DCPS_H_BASE_ - -#include "wx/generic/dcpsg.h" - -#endif - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcscreen.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcscreen.h deleted file mode 100644 index fb60309d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcscreen.h +++ /dev/null @@ -1,35 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dcscreen.h -// Purpose: wxScreenDC base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCSCREEN_H_BASE_ -#define _WX_DCSCREEN_H_BASE_ - -#include "wx/defs.h" -#include "wx/dc.h" - -class WXDLLIMPEXP_CORE wxScreenDC : public wxDC -{ -public: - wxScreenDC(); - - static bool StartDrawingOnTop(wxWindow * WXUNUSED(window)) - { return true; } - static bool StartDrawingOnTop(wxRect * WXUNUSED(rect) = NULL) - { return true; } - static bool EndDrawingOnTop() - { return true; } - -private: - wxDECLARE_DYNAMIC_CLASS(wxScreenDC); -}; - - -#endif - // _WX_DCSCREEN_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcsvg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcsvg.h deleted file mode 100644 index 3f7bd5a5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dcsvg.h +++ /dev/null @@ -1,268 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dcsvg.h -// Purpose: wxSVGFileDC -// Author: Chris Elliott -// Modified by: -// Created: -// Copyright: (c) Chris Elliott -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCSVG_H_ -#define _WX_DCSVG_H_ - -#include "wx/string.h" -#include "wx/dc.h" - -#if wxUSE_SVG - -#define wxSVGVersion wxT("v0100") - -#ifdef __BORLANDC__ -#pragma warn -8008 -#pragma warn -8066 -#endif - -class WXDLLIMPEXP_FWD_BASE wxFileOutputStream; - -class WXDLLIMPEXP_FWD_CORE wxSVGFileDC; - -// Base class for bitmap handlers used by wxSVGFileDC, used by the standard -// "embed" and "link" handlers below but can also be used to create a custom -// handler. -class WXDLLIMPEXP_CORE wxSVGBitmapHandler -{ -public: - // Write the representation of the given bitmap, appearing at the specified - // position, to the provided stream. - virtual bool ProcessBitmap(const wxBitmap& bitmap, - wxCoord x, wxCoord y, - wxOutputStream& stream) const = 0; - - virtual ~wxSVGBitmapHandler() {} -}; - -// Predefined standard bitmap handler: creates a file, stores the bitmap in -// this file and uses the file URI in the generated SVG. -class WXDLLIMPEXP_CORE wxSVGBitmapFileHandler : public wxSVGBitmapHandler -{ -public: - virtual bool ProcessBitmap(const wxBitmap& bitmap, - wxCoord x, wxCoord y, - wxOutputStream& stream) const wxOVERRIDE; -}; - -// Predefined handler which embeds the bitmap (base64-encoding it) inside the -// generated SVG file. -class WXDLLIMPEXP_CORE wxSVGBitmapEmbedHandler : public wxSVGBitmapHandler -{ -public: - virtual bool ProcessBitmap(const wxBitmap& bitmap, - wxCoord x, wxCoord y, - wxOutputStream& stream) const wxOVERRIDE; -}; - -class WXDLLIMPEXP_CORE wxSVGFileDCImpl : public wxDCImpl -{ -public: - wxSVGFileDCImpl( wxSVGFileDC *owner, const wxString &filename, - int width=320, int height=240, double dpi=72.0 ); - - virtual ~wxSVGFileDCImpl(); - - bool IsOk() const wxOVERRIDE { return m_OK; } - - virtual bool CanDrawBitmap() const wxOVERRIDE { return true; } - virtual bool CanGetTextExtent() const wxOVERRIDE { return true; } - - virtual int GetDepth() const wxOVERRIDE - { - wxFAIL_MSG(wxT("wxSVGFILEDC::GetDepth Call not implemented")); - return -1; - } - - virtual void Clear() wxOVERRIDE - { - wxFAIL_MSG(wxT("wxSVGFILEDC::Clear() Call not implemented \nNot sensible for an output file?")); - } - - virtual void DestroyClippingRegion() wxOVERRIDE; - - virtual wxCoord GetCharHeight() const wxOVERRIDE; - virtual wxCoord GetCharWidth() const wxOVERRIDE; - - virtual void SetClippingRegion(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), - wxCoord WXUNUSED(w), wxCoord WXUNUSED(h)) - { - wxFAIL_MSG(wxT("wxSVGFILEDC::SetClippingRegion not implemented")); - } - - virtual void SetPalette(const wxPalette& WXUNUSED(palette)) wxOVERRIDE - { - wxFAIL_MSG(wxT("wxSVGFILEDC::SetPalette not implemented")); - } - - virtual void GetClippingBox(wxCoord *WXUNUSED(x), wxCoord *WXUNUSED(y), - wxCoord *WXUNUSED(w), wxCoord *WXUNUSED(h)) - { - wxFAIL_MSG(wxT("wxSVGFILEDC::GetClippingBox not implemented")); - } - - virtual void SetLogicalFunction(wxRasterOperationMode WXUNUSED(function)) wxOVERRIDE - { - wxFAIL_MSG(wxT("wxSVGFILEDC::SetLogicalFunction Call not implemented")); - } - - virtual wxRasterOperationMode GetLogicalFunction() const wxOVERRIDE - { - wxFAIL_MSG(wxT("wxSVGFILEDC::GetLogicalFunction() not implemented")); - return wxCOPY; - } - - virtual void SetBackground( const wxBrush &brush ) wxOVERRIDE; - virtual void SetBackgroundMode( int mode ) wxOVERRIDE; - virtual void SetBrush(const wxBrush& brush) wxOVERRIDE; - virtual void SetFont(const wxFont& font) wxOVERRIDE; - virtual void SetPen(const wxPen& pen) wxOVERRIDE; - - virtual void* GetHandle() const wxOVERRIDE { return NULL; } - - void SetBitmapHandler(wxSVGBitmapHandler* handler); - -private: - virtual bool DoGetPixel(wxCoord, wxCoord, wxColour *) const wxOVERRIDE - { - wxFAIL_MSG(wxT("wxSVGFILEDC::DoGetPixel Call not implemented")); - return true; - } - - virtual bool DoBlit(wxCoord, wxCoord, wxCoord, wxCoord, wxDC *, - wxCoord, wxCoord, wxRasterOperationMode = wxCOPY, - bool = 0, int = -1, int = -1) wxOVERRIDE; - - virtual void DoCrossHair(wxCoord, wxCoord) wxOVERRIDE - { - wxFAIL_MSG(wxT("wxSVGFILEDC::CrossHair Call not implemented")); - } - - virtual void DoDrawArc(wxCoord, wxCoord, wxCoord, wxCoord, wxCoord, wxCoord) wxOVERRIDE; - - virtual void DoDrawBitmap(const wxBitmap &, wxCoord, wxCoord, bool = false) wxOVERRIDE; - - virtual void DoDrawCheckMark(wxCoord x, wxCoord y, wxCoord w, wxCoord h) wxOVERRIDE; - - virtual void DoDrawEllipse(wxCoord x, wxCoord y, wxCoord w, wxCoord h) wxOVERRIDE; - - virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h, - double sa, double ea) wxOVERRIDE; - - virtual void DoDrawIcon(const wxIcon &, wxCoord, wxCoord) wxOVERRIDE; - - virtual void DoDrawLine (wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2) wxOVERRIDE; - - virtual void DoDrawLines(int n, const wxPoint points[], - wxCoord xoffset = 0, wxCoord yoffset = 0) wxOVERRIDE; - - virtual void DoDrawPoint(wxCoord, wxCoord) wxOVERRIDE; - - virtual void DoDrawPolygon(int n, const wxPoint points[], - wxCoord xoffset, wxCoord yoffset, - wxPolygonFillMode fillStyle) wxOVERRIDE; - - virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord w, wxCoord h) wxOVERRIDE; - - virtual void DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord y, - double angle) wxOVERRIDE; - - virtual void DoDrawRoundedRectangle(wxCoord x, wxCoord y, - wxCoord w, wxCoord h, - double radius = 20) wxOVERRIDE ; - - virtual void DoDrawText(const wxString& text, wxCoord x, wxCoord y) wxOVERRIDE; - - virtual bool DoFloodFill(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), - const wxColour& WXUNUSED(col), - wxFloodFillStyle WXUNUSED(style) = wxFLOOD_SURFACE) wxOVERRIDE - { - wxFAIL_MSG(wxT("wxSVGFILEDC::DoFloodFill Call not implemented")); - return false; - } - - virtual void DoGetSize(int * x, int *y) const wxOVERRIDE - { - if ( x ) - *x = m_width; - if ( y ) - *y = m_height; - } - - virtual void DoGetTextExtent(const wxString& string, wxCoord *w, wxCoord *h, - wxCoord *descent = NULL, - wxCoord *externalLeading = NULL, - const wxFont *font = NULL) const wxOVERRIDE; - - virtual void DoSetDeviceClippingRegion(const wxRegion& WXUNUSED(region)) wxOVERRIDE - { - wxFAIL_MSG(wxT("wxSVGFILEDC::DoSetDeviceClippingRegion not yet implemented")); - } - - virtual void DoSetClippingRegion(int x, int y, int width, int height) wxOVERRIDE; - - virtual void DoGetSizeMM( int *width, int *height ) const wxOVERRIDE; - - virtual wxSize GetPPI() const wxOVERRIDE; - - void Init (const wxString &filename, int width, int height, double dpi); - - void write( const wxString &s ); - -private: - // If m_graphics_changed is true, close the current element and start a - // new one for the last pen/brush change. - void NewGraphicsIfNeeded(); - - // Open a new graphics group setting up all the attributes according to - // their current values in wxDC. - void DoStartNewGraphics(); - - wxFileOutputStream *m_outfile; - wxString m_filename; - int m_sub_images; // number of png format images we have - bool m_OK; - bool m_graphics_changed; // set by Set{Brush,Pen}() - int m_width, m_height; - double m_dpi; - wxSVGBitmapHandler* m_bmp_handler; // class to handle bitmaps - - // The clipping nesting level is incremented by every call to - // SetClippingRegion() and reset when DestroyClippingRegion() is called. - size_t m_clipNestingLevel; - - // Unique ID for every clipping graphics group: this is simply always - // incremented in each SetClippingRegion() call. - size_t m_clipUniqueId; - - wxDECLARE_ABSTRACT_CLASS(wxSVGFileDCImpl); -}; - - -class WXDLLIMPEXP_CORE wxSVGFileDC : public wxDC -{ -public: - wxSVGFileDC(const wxString& filename, - int width = 320, - int height = 240, - double dpi = 72.0) - : wxDC(new wxSVGFileDCImpl(this, filename, width, height, dpi)) - { - } - - // wxSVGFileDC-specific methods: - - // Use a custom bitmap handler: takes ownership of the handler. - void SetBitmapHandler(wxSVGBitmapHandler* handler); -}; - -#endif // wxUSE_SVG - -#endif // _WX_DCSVG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dde.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dde.h deleted file mode 100644 index d6524e1f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dde.h +++ /dev/null @@ -1,31 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dde.h -// Purpose: DDE base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DDE_H_BASE_ -#define _WX_DDE_H_BASE_ - -#include "wx/list.h" - -class WXDLLIMPEXP_FWD_BASE wxDDEClient; -class WXDLLIMPEXP_FWD_BASE wxDDEServer; -class WXDLLIMPEXP_FWD_BASE wxDDEConnection; - -WX_DECLARE_USER_EXPORTED_LIST(wxDDEClient, wxDDEClientList, WXDLLIMPEXP_BASE); -WX_DECLARE_USER_EXPORTED_LIST(wxDDEServer, wxDDEServerList, WXDLLIMPEXP_BASE); -WX_DECLARE_USER_EXPORTED_LIST(wxDDEConnection, wxDDEConnectionList, WXDLLIMPEXP_BASE); - -#if defined(__WINDOWS__) - #include "wx/msw/dde.h" -#else - #error DDE is only supported under Windows -#endif - -#endif - // _WX_DDE_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/debug.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/debug.h deleted file mode 100644 index 13f3cb7d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/debug.h +++ /dev/null @@ -1,504 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/debug.h -// Purpose: Misc debug functions and macros -// Author: Vadim Zeitlin -// Created: 29/01/98 -// Copyright: (c) 1998-2009 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DEBUG_H_ -#define _WX_DEBUG_H_ - -#include - -#include // for CHAR_BIT used below - -#include "wx/chartype.h" // for __TFILE__ and wxChar -#include "wx/cpp.h" // for __WXFUNCTION__ -#include "wx/dlimpexp.h" // for WXDLLIMPEXP_FWD_BASE - -class WXDLLIMPEXP_FWD_BASE wxString; -class WXDLLIMPEXP_FWD_BASE wxCStrData; - -// ---------------------------------------------------------------------------- -// Defines controlling the debugging macros -// ---------------------------------------------------------------------------- - -/* - wxWidgets can be built with several different levels of debug support - specified by the value of wxDEBUG_LEVEL constant: - - 0: No assertion macros at all, this should only be used when optimizing - for resource-constrained systems (typically embedded ones). - 1: Default level, most of the assertions are enabled. - 2: Maximal (at least for now): asserts which are "expensive" - (performance-wise) or only make sense for finding errors in wxWidgets - itself, as opposed to bugs in applications using it, are also enabled. - */ - -// unless wxDEBUG_LEVEL is predefined (by configure or via wx/setup.h under -// Windows), use the default -#if !defined(wxDEBUG_LEVEL) - #define wxDEBUG_LEVEL 1 -#endif // !defined(wxDEBUG_LEVEL) - -/* - __WXDEBUG__ is defined when wxDEBUG_LEVEL != 0. This is done mostly for - compatibility but it also provides a simpler way to check if asserts and - debug logging is enabled at all. - */ -#if wxDEBUG_LEVEL > 0 - #ifndef __WXDEBUG__ - #define __WXDEBUG__ - #endif -#else - #undef __WXDEBUG__ -#endif - -// Finally there is also a very old WXDEBUG macro not used anywhere at all, it -// is only defined for compatibility. -#ifdef __WXDEBUG__ - #if !defined(WXDEBUG) || !WXDEBUG - #undef WXDEBUG - #define WXDEBUG 1 - #endif // !WXDEBUG -#endif // __WXDEBUG__ - -// ---------------------------------------------------------------------------- -// Handling assertion failures -// ---------------------------------------------------------------------------- - -/* - Type for the function called in case of assert failure, see - wxSetAssertHandler(). - */ -typedef void (*wxAssertHandler_t)(const wxString& file, - int line, - const wxString& func, - const wxString& cond, - const wxString& msg); - -#if wxDEBUG_LEVEL - -// the global assert handler function, if it is NULL asserts don't check their -// conditions -extern WXDLLIMPEXP_DATA_BASE(wxAssertHandler_t) wxTheAssertHandler; - -/* - Sets the function to be called in case of assertion failure. - - The default assert handler forwards to wxApp::OnAssertFailure() whose - default behaviour is, in turn, to show the standard assertion failure - dialog if a wxApp object exists or shows the same dialog itself directly - otherwise. - - While usually it is enough -- and more convenient -- to just override - OnAssertFailure(), to handle all assertion failures, including those - occurring even before wxApp object creation or after its destruction you - need to provide your assertion handler function. - - This function also provides a simple way to disable all asserts: simply - pass NULL pointer to it. Doing this will result in not even evaluating - assert conditions at all, avoiding almost all run-time cost of asserts. - - Notice that this function is not MT-safe, so you should call it before - starting any other threads. - - The return value of this function is the previous assertion handler. It can - be called after any pre-processing by your handler and can also be restored - later if you uninstall your handler. - */ -inline wxAssertHandler_t wxSetAssertHandler(wxAssertHandler_t handler) -{ - const wxAssertHandler_t old = wxTheAssertHandler; - wxTheAssertHandler = handler; - return old; -} - -/* - Reset the default assert handler. - - This may be used to enable asserts, which are disabled by default in this - case, for programs built in release build (NDEBUG defined). - */ -extern void WXDLLIMPEXP_BASE wxSetDefaultAssertHandler(); - -#else // !wxDEBUG_LEVEL - -// provide empty stubs in case assertions are completely disabled -// -// NB: can't use WXUNUSED() here as we're included from wx/defs.h before it is -// defined -inline wxAssertHandler_t wxSetAssertHandler(wxAssertHandler_t /* handler */) -{ - return NULL; -} - -inline void wxSetDefaultAssertHandler() { } - -#endif // wxDEBUG_LEVEL/!wxDEBUG_LEVEL - -// simply a synonym for wxSetAssertHandler(NULL) -inline void wxDisableAsserts() { wxSetAssertHandler(NULL); } - -/* - A macro which disables asserts for applications compiled in release build. - - By default, wxIMPLEMENT_APP (or rather wxIMPLEMENT_WXWIN_MAIN) disable the - asserts in the applications compiled in the release build by calling this. - It does nothing if NDEBUG is not defined. - */ -#ifdef NDEBUG - #define wxDISABLE_ASSERTS_IN_RELEASE_BUILD() wxDisableAsserts() -#else - #define wxDISABLE_ASSERTS_IN_RELEASE_BUILD() -#endif - -#if wxDEBUG_LEVEL - -/* - wxOnAssert() is used by the debugging macros defined below. Different - overloads are needed because these macros can be used with or without wxT(). - - All of them are implemented in src/common/appcmn.cpp and unconditionally - call wxTheAssertHandler so the caller must check that it is non-NULL - (assert macros do it). - */ - -#if wxUSE_UNICODE - -// these overloads are the ones typically used by debugging macros: we have to -// provide wxChar* msg version because it's common to use wxT() in the macros -// and finally, we can't use const wx(char)* msg = NULL, because that would -// be ambiguous -// -// also notice that these functions can't be inline as wxString is not defined -// yet (and can't be as wxString code itself may use assertions) -extern WXDLLIMPEXP_BASE void wxOnAssert(const char *file, - int line, - const char *func, - const char *cond); - -extern WXDLLIMPEXP_BASE void wxOnAssert(const char *file, - int line, - const char *func, - const char *cond, - const char *msg); - -extern WXDLLIMPEXP_BASE void wxOnAssert(const char *file, - int line, - const char *func, - const char *cond, - const wxChar *msg) ; -#endif /* wxUSE_UNICODE */ - -// this version is for compatibility with wx 2.8 Unicode build only, we don't -// use it ourselves any more except in ANSI-only build in which case it is all -// we need -extern WXDLLIMPEXP_BASE void wxOnAssert(const wxChar *file, - int line, - const char *func, - const wxChar *cond, - const wxChar *msg = NULL); - -// these overloads work when msg passed to debug macro is a string and we -// also have to provide wxCStrData overload to resolve ambiguity which would -// otherwise arise from wxASSERT( s.c_str() ) -extern WXDLLIMPEXP_BASE void wxOnAssert(const wxString& file, - int line, - const wxString& func, - const wxString& cond, - const wxString& msg); - -extern WXDLLIMPEXP_BASE void wxOnAssert(const wxString& file, - int line, - const wxString& func, - const wxString& cond); - -extern WXDLLIMPEXP_BASE void wxOnAssert(const char *file, - int line, - const char *func, - const char *cond, - const wxCStrData& msg); - -extern WXDLLIMPEXP_BASE void wxOnAssert(const char *file, - int line, - const char *func, - const char *cond, - const wxString& msg); - -#endif // wxDEBUG_LEVEL - - -// ---------------------------------------------------------------------------- -// Debugging macros -// ---------------------------------------------------------------------------- - -/* - Assertion macros: check if the condition is true and call assert handler - (which will by default notify the user about failure) if it isn't. - - wxASSERT and wxFAIL macros as well as wxTrap() function do nothing at all - if wxDEBUG_LEVEL is 0 however they do check their conditions at default - debug level 1, unlike the previous wxWidgets versions. - - wxASSERT_LEVEL_2 is meant to be used for "expensive" asserts which should - normally be disabled because they have a big impact on performance and so - this macro only does anything if wxDEBUG_LEVEL >= 2. - */ -#if wxDEBUG_LEVEL - // wxTrap() can be used to break into the debugger unconditionally - // (assuming the program is running under debugger, of course). - // - // If possible, we prefer to define it as a macro rather than as a function - // to open the debugger at the position where we trapped and not inside the - // trap function itself which is not very useful. - #ifdef __VISUALC__ - #define wxTrap() __debugbreak() - #elif defined(__GNUC__) - #if defined(__i386) || defined(__x86_64) - #define wxTrap() asm volatile ("int $3") - #endif - #endif - - #ifndef wxTrap - // For all the other cases, use a generic function. - extern WXDLLIMPEXP_BASE void wxTrap(); - #endif - - // Global flag used to indicate that assert macros should call wxTrap(): it - // is set by the default assert handler if the user answers yes to the - // question of whether to trap. - extern WXDLLIMPEXP_DATA_BASE(bool) wxTrapInAssert; - - // This macro checks if the condition is true and calls the assert handler - // with the provided message if it isn't and finally traps if the special - // flag indicating that it should do it was set by the handler. - // - // Notice that we don't use the handler return value for compatibility - // reasons (if we changed its return type, we'd need to change wxApp:: - // OnAssertFailure() too which would break user code overriding it), hence - // the need for the ugly global flag. - #define wxASSERT_MSG_AT(cond, msg, file, line, func) \ - wxSTATEMENT_MACRO_BEGIN \ - if ( wxTheAssertHandler && !(cond) && \ - (wxOnAssert(file, line, func, #cond, msg), \ - wxTrapInAssert) ) \ - { \ - wxTrapInAssert = false; \ - wxTrap(); \ - } \ - wxSTATEMENT_MACRO_END - - // A version asserting at the current location. - #define wxASSERT_MSG(cond, msg) \ - wxASSERT_MSG_AT(cond, msg, __FILE__, __LINE__, __WXFUNCTION__) - - // a version without any additional message, don't use unless condition - // itself is fully self-explanatory - #define wxASSERT(cond) wxASSERT_MSG(cond, (const char*)NULL) - - // wxFAIL is a special form of assert: it always triggers (and so is - // usually used in normally unreachable code) - #define wxFAIL_COND_MSG_AT(cond, msg, file, line, func) \ - wxSTATEMENT_MACRO_BEGIN \ - if ( wxTheAssertHandler && \ - (wxOnAssert(file, line, func, #cond, msg), \ - wxTrapInAssert) ) \ - { \ - wxTrapInAssert = false; \ - wxTrap(); \ - } \ - wxSTATEMENT_MACRO_END - - #define wxFAIL_MSG_AT(msg, file, line, func) \ - wxFAIL_COND_MSG_AT("Assert failure", msg, file, line, func) - - #define wxFAIL_COND_MSG(cond, msg) \ - wxFAIL_COND_MSG_AT(cond, msg, __FILE__, __LINE__, __WXFUNCTION__) - - #define wxFAIL_MSG(msg) wxFAIL_COND_MSG("Assert failure", msg) - #define wxFAIL wxFAIL_MSG((const char*)NULL) -#else // !wxDEBUG_LEVEL - #define wxTrap() - - #define wxASSERT(cond) - #define wxASSERT_MSG(cond, msg) - #define wxFAIL - #define wxFAIL_MSG(msg) - #define wxFAIL_COND_MSG(cond, msg) -#endif // wxDEBUG_LEVEL - -#if wxDEBUG_LEVEL >= 2 - #define wxASSERT_LEVEL_2_MSG(cond, msg) wxASSERT_MSG(cond, msg) - #define wxASSERT_LEVEL_2(cond) wxASSERT(cond) -#else // wxDEBUG_LEVEL < 2 - #define wxASSERT_LEVEL_2_MSG(cond, msg) - #define wxASSERT_LEVEL_2(cond) -#endif - -// This is simply a wrapper for the standard abort() which is not available -// under all platforms. -// -// It isn't really debug-related but there doesn't seem to be any better place -// for it, so declare it here and define it in appbase.cpp, together with -// wxTrap(). -extern void WXDLLIMPEXP_BASE wxAbort(); - -/* - wxCHECK macros always check their conditions, setting debug level to 0 only - makes them silent in case of failure, otherwise -- including at default - debug level 1 -- they call the assert handler if the condition is false - - They are supposed to be used only in invalid situation: for example, an - invalid parameter (e.g. a NULL pointer) is passed to a function. Instead of - dereferencing it and causing core dump the function might use - - wxCHECK_RET( p != NULL, "pointer can't be NULL" ) -*/ - -// the generic macro: takes the condition to check, the statement to be executed -// in case the condition is false and the message to pass to the assert handler -#define wxCHECK2_MSG(cond, op, msg) \ - if ( cond ) \ - {} \ - else \ - { \ - wxFAIL_COND_MSG(#cond, msg); \ - op; \ - } \ - struct wxDummyCheckStruct /* just to force a semicolon */ - -// check which returns with the specified return code if the condition fails -#define wxCHECK_MSG(cond, rc, msg) wxCHECK2_MSG(cond, return rc, msg) - -// check that expression is true, "return" if not (also FAILs in debug mode) -#define wxCHECK(cond, rc) wxCHECK_MSG(cond, rc, (const char*)NULL) - -// check that expression is true, perform op if not -#define wxCHECK2(cond, op) wxCHECK2_MSG(cond, op, (const char*)NULL) - -// special form of wxCHECK2: as wxCHECK, but for use in void functions -// -// NB: there is only one form (with msg parameter) and it's intentional: -// there is no other way to tell the caller what exactly went wrong -// from the void function (of course, the function shouldn't be void -// to begin with...) -#define wxCHECK_RET(cond, msg) wxCHECK2_MSG(cond, return, msg) - - -// ---------------------------------------------------------------------------- -// Compile time asserts -// -// Unlike the normal assert and related macros above which are checked during -// the program run-time the macros below will result in a compilation error if -// the condition they check is false. This is usually used to check the -// expressions containing sizeof()s which cannot be tested with the -// preprocessor. If you can use the #if's, do use them as you can give a more -// detailed error message then. -// ---------------------------------------------------------------------------- - -/* - How this works (you don't have to understand it to be able to use the - macros): we rely on the fact that it is invalid to define a named bit field - in a struct of width 0. All the rest are just the hacks to minimize the - possibility of the compiler warnings when compiling this macro: in - particular, this is why we define a struct and not an object (which would - result in a warning about unused variable) and a named struct (otherwise we'd - get a warning about an unnamed struct not used to define an object!). - */ - -#define wxMAKE_UNIQUE_ASSERT_NAME wxMAKE_UNIQUE_NAME(wxAssert_) - -/* - The second argument of this macro must be a valid C++ identifier and not a - string. I.e. you should use it like this: - - wxCOMPILE_TIME_ASSERT( sizeof(int) >= 2, YourIntsAreTooSmall ); - - It may be used both within a function and in the global scope. -*/ -#if defined( __VMS ) -namespace wxdebug{ - -// HP aCC cannot deal with missing names for template value parameters -template struct STATIC_ASSERTION_FAILURE; - -template <> struct STATIC_ASSERTION_FAILURE { enum { value = 1 }; }; - -// HP aCC cannot deal with missing names for template value parameters -template struct static_assert_test{}; - -} - #define WX_JOIN( X, Y ) X##Y - #define WX_STATIC_ASSERT_BOOL_CAST(x) (bool)(x) - #define wxCOMPILE_TIME_ASSERT(expr, msg) \ - typedef ::wxdebug::static_assert_test<\ - sizeof(::wxdebug::STATIC_ASSERTION_FAILURE< WX_STATIC_ASSERT_BOOL_CAST( expr ) >)>\ - WX_JOIN(wx_static_assert_typedef_, __LINE__) -#else - #define wxCOMPILE_TIME_ASSERT(expr, msg) \ - struct wxMAKE_UNIQUE_ASSERT_NAME { unsigned int msg: expr; } -#endif - -/* - When using VC++ 6 with "Edit and Continue" on, the compiler completely - mishandles __LINE__ and so wxCOMPILE_TIME_ASSERT() doesn't work, provide a - way to make "unique" assert names by specifying a unique prefix explicitly - */ -#define wxMAKE_UNIQUE_ASSERT_NAME2(text) wxCONCAT(wxAssert_, text) - -#define wxCOMPILE_TIME_ASSERT2(expr, msg, text) \ - struct wxMAKE_UNIQUE_ASSERT_NAME2(text) { unsigned int msg: expr; } - -// helpers for wxCOMPILE_TIME_ASSERT below, for private use only -#define wxMAKE_BITSIZE_MSG(type, size) type ## SmallerThan ## size ## Bits - -// a special case of compile time assert: check that the size of the given type -// is at least the given number of bits -#define wxASSERT_MIN_BITSIZE(type, size) \ - wxCOMPILE_TIME_ASSERT(sizeof(type) * CHAR_BIT >= size, \ - wxMAKE_BITSIZE_MSG(type, size)) - - -// ---------------------------------------------------------------------------- -// other miscellaneous debugger-related functions -// ---------------------------------------------------------------------------- - -/* - Return true if we're running under debugger. - - Currently only really works under Win32 and just returns false elsewhere. - */ -#if defined(__WIN32__) - extern bool WXDLLIMPEXP_BASE wxIsDebuggerRunning(); -#else // !Mac - inline bool wxIsDebuggerRunning() { return false; } -#endif // Mac/!Mac - -// An assert helper used to avoid warning when testing constant expressions, -// i.e. wxASSERT( sizeof(int) == 4 ) can generate a compiler warning about -// expression being always true, but not using -// wxASSERT( wxAssertIsEqual(sizeof(int), 4) ) -// -// NB: this is made obsolete by wxCOMPILE_TIME_ASSERT() and should no -// longer be used. -extern bool WXDLLIMPEXP_BASE wxAssertIsEqual(int x, int y); - -// Use of wxFalse instead of false suppresses compiler warnings about testing -// constant expression -extern WXDLLIMPEXP_DATA_BASE(const bool) wxFalse; - -#define wxAssertFailure wxFalse - -// This is similar to WXUNUSED() and useful for parameters which are only used -// in assertions. -#if wxDEBUG_LEVEL - #define WXUNUSED_UNLESS_DEBUG(param) param -#else - #define WXUNUSED_UNLESS_DEBUG(param) WXUNUSED(param) -#endif - - -#endif // _WX_DEBUG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/debugrpt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/debugrpt.h deleted file mode 100644 index 17e0b899..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/debugrpt.h +++ /dev/null @@ -1,247 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/debugrpt.h -// Purpose: declaration of wxDebugReport class -// Author: Vadim Zeitlin -// Created: 2005-01-17 -// Copyright: (c) 2005 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DEBUGRPT_H_ -#define _WX_DEBUGRPT_H_ - -#include "wx/defs.h" - -#if wxUSE_DEBUGREPORT && wxUSE_XML - -#include "wx/string.h" -#include "wx/arrstr.h" - -class WXDLLIMPEXP_FWD_XML wxXmlNode; - -// ---------------------------------------------------------------------------- -// wxDebugReport: generate a debug report, processing is done in derived class -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_QA wxDebugReport -{ -public: - // this is used for the functions which may report either the current state - // or the state during the last (fatal) exception - enum Context { Context_Current, Context_Exception }; - - - // ctor creates a temporary directory where we create the files which will - // be included in the report, use IsOk() to check for errors - wxDebugReport(); - - // dtor normally destroys the temporary directory created in the ctor (with - // all the files it contains), call Reset() to prevent this from happening - virtual ~wxDebugReport(); - - // return the name of the directory used for this report - const wxString& GetDirectory() const { return m_dir; } - - // return true if the object was successfully initialized - bool IsOk() const { return !GetDirectory().empty(); } - - // reset the directory name we use, the object can't be used any more after - // this as it becomes invalid/uninitialized - void Reset() { m_dir.clear(); } - - - // add another file to the report: the file must already exist, its name - // can be either absolute in which case it is copied to the debug report - // directory or relative to GetDirectory() - // - // description is shown to the user in the report summary - virtual void AddFile(const wxString& filename, const wxString& description); - - // convenience function: write the given text to a file with the given name - // and then add it to the report (the difference with AddFile() is that the - // file will be created by this function and doesn't have to already exist) - bool AddText(const wxString& filename, - const wxString& text, - const wxString& description); - -#if wxUSE_STACKWALKER - // add an XML file containing the current or exception context and the - // stack trace - bool AddCurrentContext() { return AddContext(Context_Current); } - bool AddExceptionContext() { return AddContext(Context_Exception); } - virtual bool AddContext(Context ctx); -#endif - -#if wxUSE_CRASHREPORT - // add a file with crash report - bool AddCurrentDump() { return AddDump(Context_Current); } - bool AddExceptionDump() { return AddDump(Context_Exception); } - virtual bool AddDump(Context ctx); -#endif // wxUSE_CRASHREPORT - - // add all available information to the report - void AddAll(Context context = Context_Exception); - - - // process this report: the base class simply notifies the user that the - // report has been generated, this is usually not enough -- instead you - // should override this method to do something more useful to you - bool Process(); - - // get the name used as base name for various files, by default - // wxApp::GetName() - virtual wxString GetReportName() const; - - // get the files in this report - size_t GetFilesCount() const { return m_files.GetCount(); } - bool GetFile(size_t n, wxString *name, wxString *desc) const; - - // remove the file from report: this is used by wxDebugReportPreview to - // allow the user to remove files potentially containing private - // information from the report - void RemoveFile(const wxString& name); - -protected: -#if wxUSE_STACKWALKER - // used by AddContext() - virtual bool DoAddSystemInfo(wxXmlNode *nodeSystemInfo); - virtual bool DoAddLoadedModules(wxXmlNode *nodeModules); - virtual bool DoAddExceptionInfo(wxXmlNode *nodeContext); - virtual void DoAddCustomContext(wxXmlNode * WXUNUSED(nodeRoot)) { } -#endif - - // used by Process() - virtual bool DoProcess(); - -private: - // name of the report directory - wxString m_dir; - - // the arrays of files in this report and their descriptions - wxArrayString m_files, - m_descriptions; -}; - -#if wxUSE_ZIPSTREAM - -// ---------------------------------------------------------------------------- -// wxDebugReportCompress: compress all files of this debug report in a .ZIP -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_QA wxDebugReportCompress : public wxDebugReport -{ -public: - wxDebugReportCompress() { } - - // you can optionally specify the directory and/or name of the file where - // the debug report should be generated, a default location under the - // directory containing temporary files will be used if you don't - // - // both of these functions should be called before Process()ing the report - // if they're called at all - void SetCompressedFileDirectory(const wxString& dir); - void SetCompressedFileBaseName(const wxString& name); - - // returns the full path of the compressed file (empty if creation failed) - const wxString& GetCompressedFileName() const { return m_zipfile; } - -protected: - virtual bool DoProcess() wxOVERRIDE; - -private: - // user-specified file directory/base name, use defaults if empty - wxString m_zipDir, - m_zipName; - - // full path to the ZIP file we created - wxString m_zipfile; -}; - -// ---------------------------------------------------------------------------- -// wxDebugReportUploader: uploads compressed file using HTTP POST request -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_QA wxDebugReportUpload : public wxDebugReportCompress -{ -public: - // this class will upload the compressed file created by its base class to - // an HTML multipart/form-data form at the specified address - // - // the URL is the base address, input is the name of the "type=file" - // control on the form used for the file name and action is the value of - // the form action field - wxDebugReportUpload(const wxString& url, - const wxString& input, - const wxString& action, - const wxString& curl = wxT("curl")); - -protected: - virtual bool DoProcess() wxOVERRIDE; - - // this function may be overridden in a derived class to show the output - // from curl: this may be an HTML page or anything else that the server - // returned - // - // return value becomes the return value of Process() - virtual bool OnServerReply(const wxArrayString& WXUNUSED(reply)) - { - return true; - } - -private: - // the full URL to use with HTTP POST request - wxString m_uploadURL; - - // the name of the input field containing the file name in the form at - // above URL - wxString m_inputField; - - // the curl command (by default it is just "curl" but could be full path to - // curl or a wrapper script with curl-compatible syntax) - wxString m_curlCmd; -}; - -#endif // wxUSE_ZIPSTREAM - - -// ---------------------------------------------------------------------------- -// wxDebugReportPreview: presents the debug report to the user and allows him -// to veto report entirely or remove some parts of it -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_QA wxDebugReportPreview -{ -public: - // ctor is trivial - wxDebugReportPreview() { } - - // present the report to the user and allow him to modify it by removing - // some or all of the files and, potentially, adding some notes - // - // return true if the report should be processed or false if the user chose - // to cancel report generation or removed all files from it - virtual bool Show(wxDebugReport& dbgrpt) const = 0; - - // dtor is trivial as well but should be virtual for a base class - virtual ~wxDebugReportPreview() { } -}; - -#if wxUSE_GUI - -// ---------------------------------------------------------------------------- -// wxDebugReportPreviewStd: standard debug report preview window -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_QA wxDebugReportPreviewStd : public wxDebugReportPreview -{ -public: - wxDebugReportPreviewStd() { } - - virtual bool Show(wxDebugReport& dbgrpt) const wxOVERRIDE; -}; - -#endif // wxUSE_GUI - -#endif // wxUSE_DEBUGREPORT && wxUSE_XML - -#endif // _WX_DEBUGRPT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/defs.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/defs.h deleted file mode 100644 index 7dc03afd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/defs.h +++ /dev/null @@ -1,3443 +0,0 @@ -/* - * Name: wx/defs.h - * Purpose: Declarations/definitions common to all wx source files - * Author: Julian Smart and others - * Modified by: Ryan Norton (Converted to C) - * Created: 01/02/97 - * Copyright: (c) Julian Smart - * Licence: wxWindows licence - */ - -/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ - -#ifndef _WX_DEFS_H_ -#define _WX_DEFS_H_ - -/* ---------------------------------------------------------------------------- */ -/* compiler and OS identification */ -/* ---------------------------------------------------------------------------- */ - -#include "wx/platform.h" - -#ifdef __cplusplus -/* Make sure the environment is set correctly */ -# if defined(__WXMSW__) && defined(__X__) -# error "Target can't be both X and MSW" -# elif !defined(__WXMOTIF__) && \ - !defined(__WXMSW__) && \ - !defined(__WXGTK__) && \ - !defined(__WXOSX_COCOA__) && \ - !defined(__WXOSX_IPHONE__) && \ - !defined(__X__) && \ - !defined(__WXDFB__) && \ - !defined(__WXX11__) && \ - !defined(__WXQT__) && \ - wxUSE_GUI -# ifdef __UNIX__ -# error "No Target! You should use wx-config program for compilation flags!" -# else /* !Unix */ -# error "No Target! You should use supplied makefiles for compilation!" -# endif /* Unix/!Unix */ -# endif -#endif /*__cplusplus*/ - -#ifndef __WXWINDOWS__ - #define __WXWINDOWS__ 1 -#endif - -#ifndef wxUSE_BASE - /* by default consider that this is a monolithic build */ - #define wxUSE_BASE 1 -#endif - -#if !wxUSE_GUI && !defined(__WXBASE__) - #define __WXBASE__ -#endif - -/* suppress some Visual C++ warnings */ -#ifdef __VISUALC__ - /* the only "real" warning here is 4244 but there are just too many of them */ - /* in our code... one day someone should go and fix them but until then... */ -# pragma warning(disable:4097) /* typedef used as class */ -# pragma warning(disable:4201) /* nonstandard extension used: nameless struct/union */ -# pragma warning(disable:4244) /* conversion from double to float */ -# pragma warning(disable:4355) /* 'this' used in base member initializer list */ -# pragma warning(disable:4511) /* copy ctor couldn't be generated */ -# pragma warning(disable:4512) /* operator=() couldn't be generated */ -# pragma warning(disable:4514) /* unreferenced inline func has been removed */ -# pragma warning(disable:4710) /* function not inlined */ - - /* - TODO: this warning should really be enabled as it can be genuinely - useful, check where does it occur in wxWidgets - */ - #pragma warning(disable: 4127) /* conditional expression is constant */ - - /* There are too many false positivies for this one, particularly when - using templates like wxVector */ - /* class 'foo' needs to have dll-interface to be used by clients of - class 'bar'" */ -# pragma warning(disable:4251) - - /* - This is a similar warning which occurs when deriving from standard - containers. MSDN even mentions that it can be ignored in this case - (albeit only in debug build while the warning is the same in release - too and seems equally harmless). - */ -#if wxUSE_STD_CONTAINERS -# pragma warning(disable:4275) -#endif /* wxUSE_STD_CONTAINERS */ - -# ifdef __VISUALC5__ - /* For VC++ 5.0 for release mode, the warning 'C4702: unreachable code */ - /* is buggy, and occurs for code that does actually get executed */ -# ifndef __WXDEBUG__ -# pragma warning(disable:4702) /* unreachable code */ -# endif - - /* The VC++ 5.0 warning 'C4003: not enough actual parameters for macro' - * is incompatible with the wxWidgets headers since it is given when - * parameters are empty but not missing. */ -# pragma warning(disable:4003) /* not enough actual parameters for macro */ -# endif - - /* - When compiling with VC++ 7 /Wp64 option we get thousands of warnings for - conversion from size_t to int or long. Some precious few of them might - be worth looking into but unfortunately it seems infeasible to fix all - the other, harmless ones (e.g. inserting static_cast(s.length()) - everywhere this method is used though we are quite sure that using >4GB - strings is a bad idea anyhow) so just disable it globally for now. - */ - #if wxCHECK_VISUALC_VERSION(7) - /* conversion from 'size_t' to 'unsigned long', possible loss of data */ - #pragma warning(disable:4267) - #endif /* VC++ 7 or later */ - - /* - VC++ 8 gives a warning when using standard functions such as sprintf, - localtime, ... -- stop this madness, unless the user had already done it - */ - #if wxCHECK_VISUALC_VERSION(8) - #ifndef _CRT_SECURE_NO_DEPRECATE - #define _CRT_SECURE_NO_DEPRECATE 1 - #endif - #ifndef _CRT_NON_CONFORMING_SWPRINTFS - #define _CRT_NON_CONFORMING_SWPRINTFS 1 - #endif - #ifndef _SCL_SECURE_NO_WARNINGS - #define _SCL_SECURE_NO_WARNINGS 1 - #endif - #endif /* VC++ 8 */ -#endif /* __VISUALC__ */ - -/* suppress some Borland C++ warnings */ -#ifdef __BORLANDC__ -# pragma warn -inl /* Functions containing reserved words and certain constructs are not expanded inline */ -#endif /* __BORLANDC__ */ - -/* - g++ gives a warning when a class has private dtor if it has no friends but - this is a perfectly valid situation for a ref-counted class which destroys - itself when its ref count drops to 0, so provide a macro to suppress this - warning - */ -#ifdef __GNUG__ -# define wxSUPPRESS_GCC_PRIVATE_DTOR_WARNING(name) \ - friend class wxDummyFriendFor ## name; -#else /* !g++ */ -# define wxSUPPRESS_GCC_PRIVATE_DTOR_WARNING(name) -#endif - -/* - Clang Support - */ - -#ifndef WX_HAS_CLANG_FEATURE -# ifndef __has_feature -# define WX_HAS_CLANG_FEATURE(x) 0 -# else -# define WX_HAS_CLANG_FEATURE(x) __has_feature(x) -# endif -#endif - -/* ---------------------------------------------------------------------------- */ -/* wxWidgets version and compatibility defines */ -/* ---------------------------------------------------------------------------- */ - -#include "wx/version.h" - -/* ============================================================================ */ -/* non portable C++ features */ -/* ============================================================================ */ - -/* ---------------------------------------------------------------------------- */ -/* compiler defects workarounds */ -/* ---------------------------------------------------------------------------- */ - -/* - Digital Unix C++ compiler only defines this symbol for .cxx and .hxx files, - so define it ourselves (newer versions do it for all files, though, and - don't allow it to be redefined) - */ -#if defined(__DECCXX) && !defined(__VMS) && !defined(__cplusplus) -#define __cplusplus -#endif /* __DECCXX */ - -/* Resolves linking problems under HP-UX when compiling with gcc/g++ */ -#if defined(__HPUX__) && defined(__GNUG__) -#define va_list __gnuc_va_list -#endif /* HP-UX */ - -/* Prevents conflicts between sys/types.h and winsock.h with Cygwin, */ -/* when using Windows sockets. */ -#if defined(__CYGWIN__) && defined(__WINDOWS__) -#define __USE_W32_SOCKETS -#endif - -/* ---------------------------------------------------------------------------- */ -/* check for native bool type and TRUE/FALSE constants */ -/* ---------------------------------------------------------------------------- */ - -/* for backwards compatibility, also define TRUE and FALSE */ -/* */ -/* note that these definitions should work both in C++ and C code, so don't */ -/* use true/false below */ -#ifndef TRUE - #define TRUE 1 -#endif - -#ifndef FALSE - #define FALSE 0 -#endif - -typedef short int WXTYPE; - - -/* ---------------------------------------------------------------------------- */ -/* other feature tests */ -/* ---------------------------------------------------------------------------- */ - -#ifdef __cplusplus - -/* Every ride down a slippery slope begins with a single step.. */ -/* */ -/* Yes, using nested classes is indeed against our coding standards in */ -/* general, but there are places where you can use them to advantage */ -/* without totally breaking ports that cannot use them. If you do, then */ -/* wrap it in this guard, but such cases should still be relatively rare. */ -#define wxUSE_NESTED_CLASSES 1 - -/* check for explicit keyword support */ -#ifndef HAVE_EXPLICIT - #if defined(__VISUALC__) - #define HAVE_EXPLICIT - #elif defined(__GNUC__) - #define HAVE_EXPLICIT - #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x0520) - /* BC++ 4.52 doesn't support explicit, CBuilder 1 does */ - #define HAVE_EXPLICIT - #endif -#endif /* !HAVE_EXPLICIT */ - -#ifdef HAVE_EXPLICIT - #define wxEXPLICIT explicit -#else /* !HAVE_EXPLICIT */ - #define wxEXPLICIT -#endif /* HAVE_EXPLICIT/!HAVE_EXPLICIT */ - -/* check for override keyword support */ -#ifndef HAVE_OVERRIDE - #if __cplusplus >= 201103L - /* All C++11 compilers should have it. */ - #define HAVE_OVERRIDE - #elif wxCHECK_VISUALC_VERSION(11) - /* - VC++ supports override keyword since version 8 but doesn't define - __cplusplus as indicating C++11 support (at least up to and - including 12), so handle its case specially. - - Also note that while the keyword is supported, using it with - versions 8, 9 and 10 results in C4481 compiler warning ("nonstandard - extension used") and so we avoid using it there, you could disable - this warning and predefine HAVE_OVERRIDE if you don't care about it. - */ - #define HAVE_OVERRIDE - #elif WX_HAS_CLANG_FEATURE(cxx_override_control) - #define HAVE_OVERRIDE - #endif -#endif /* !HAVE_OVERRIDE */ - -#ifdef HAVE_OVERRIDE - #define wxOVERRIDE override -#else /* !HAVE_OVERRIDE */ - #define wxOVERRIDE -#endif /* HAVE_OVERRIDE/!HAVE_EXPLICIT */ - -/* wxFALLTHROUGH is used to notate explicit fallthroughs in switch statements */ - -#if __cplusplus >= 201103L && defined(__has_warning) - #if WX_HAS_CLANG_FEATURE(cxx_attributes) - #define wxFALLTHROUGH [[clang::fallthrough]] - #endif -#endif - -#ifndef wxFALLTHROUGH - #define wxFALLTHROUGH ((void)0) -#endif - -/* these macros are obsolete, use the standard C++ casts directly now */ -#define wx_static_cast(t, x) static_cast(x) -#define wx_const_cast(t, x) const_cast(x) -#define wx_reinterpret_cast(t, x) reinterpret_cast(x) - -/* - This one is a wx invention: like static cast but used when we intentionally - truncate from a larger to smaller type, static_cast<> can't be used for it - as it results in warnings when using some compilers (SGI mipspro for example) - */ -#if defined(__INTELC__) - template - inline T wx_truncate_cast_impl(X x) - { - #pragma warning(push) - /* implicit conversion of a 64-bit integral type to a smaller integral type */ - #pragma warning(disable: 1682) - /* conversion from "X" to "T" may lose significant bits */ - #pragma warning(disable: 810) - /* non-pointer conversion from "foo" to "bar" may lose significant bits */ - #pragma warning(disable: 2259) - - return x; - - #pragma warning(pop) - } - - #define wx_truncate_cast(t, x) wx_truncate_cast_impl(x) - -#elif defined(__VISUALC__) && __VISUALC__ >= 1310 - template - inline T wx_truncate_cast_impl(X x) - { - #pragma warning(push) - /* conversion from 'size_t' to 'type', possible loss of data */ - #pragma warning(disable: 4267) - /* conversion from 'type1' to 'type2', possible loss of data */ - #pragma warning(disable: 4242) - - return x; - - #pragma warning(pop) - } - - #define wx_truncate_cast(t, x) wx_truncate_cast_impl(x) -#else - #define wx_truncate_cast(t, x) ((t)(x)) -#endif - -/* for consistency with wxStatic/DynamicCast defined in wx/object.h */ -#define wxConstCast(obj, className) wx_const_cast(className *, obj) - -#ifndef HAVE_STD_WSTRING - #if __cplusplus >= 201103L - #define HAVE_STD_WSTRING - #elif defined(__VISUALC__) - #define HAVE_STD_WSTRING - #elif defined(__MINGW32__) - #define HAVE_STD_WSTRING - #endif -#endif - -#ifndef HAVE_STD_STRING_COMPARE - #if __cplusplus >= 201103L - #define HAVE_STD_STRING_COMPARE - #elif defined(__VISUALC__) - #define HAVE_STD_STRING_COMPARE - #elif defined(__MINGW32__) || defined(__CYGWIN32__) - #define HAVE_STD_STRING_COMPARE - #endif -#endif - -#ifndef HAVE_TR1_TYPE_TRAITS - #if defined(__VISUALC__) && (_MSC_FULL_VER >= 150030729) - #define HAVE_TR1_TYPE_TRAITS - #endif -#endif - -/* - Check for C++11 compilers, it is important to do it before the - __has_include() checks because of g++ 4.9.2+ complications below. - */ -#if __cplusplus >= 201103L || wxCHECK_VISUALC_VERSION(10) - #ifndef HAVE_TYPE_TRAITS - #define HAVE_TYPE_TRAITS - #endif - #ifndef HAVE_STD_UNORDERED_MAP - #define HAVE_STD_UNORDERED_MAP - #endif - #ifndef HAVE_STD_UNORDERED_SET - #define HAVE_STD_UNORDERED_SET - #endif -#elif defined(__has_include) - /* - Notice that we trust our configure tests more than __has_include(), - notably the latter can return true even if the header exists but isn't - actually usable, as it happens with in non C++11 mode. - So if configure already detected at least one working alternative, - just use it. - */ - - /* - Since 4.9.2, g++ provides __has_include() but, unlike clang, refuses to - compile the C++11 headers in C++98 mode (and we are sure we use the - latter because we explicitly checked for C++11 above). - */ - #if defined(__GNUC__) && !defined(__clang__) - #define wx_has_cpp11_include(h) 0 - #else - #define wx_has_cpp11_include(h) __has_include(h) - #endif - - #if !defined(HAVE_TYPE_TRAITS) && !defined(HAVE_TR1_TYPE_TRAITS) - #if wx_has_cpp11_include() - #define HAVE_TYPE_TRAITS - #elif __has_include() - #define HAVE_TR1_TYPE_TRAITS - #endif - #endif - - #if !defined(HAVE_STD_UNORDERED_MAP) && !defined(HAVE_TR1_UNORDERED_MAP) - #if wx_has_cpp11_include() - #define HAVE_STD_UNORDERED_MAP - #elif __has_include() - #define HAVE_TR1_UNORDERED_MAP - #endif - #endif - - #if !defined(HAVE_STD_UNORDERED_SET) && !defined(HAVE_TR1_UNORDERED_SET) - #if wx_has_cpp11_include() - #define HAVE_STD_UNORDERED_SET - #elif __has_include() - #define HAVE_TR1_UNORDERED_SET - #endif - #endif -#endif /* defined(__has_include) */ - -#endif /* __cplusplus */ - -/* provide replacement for C99 va_copy() if the compiler doesn't have it */ - -/* could be already defined by configure or the user */ -#ifndef wxVaCopy - /* if va_copy is a macro or configure detected that we have it, use it */ - #if defined(va_copy) || defined(HAVE_VA_COPY) - #define wxVaCopy va_copy - #else /* no va_copy, try to provide a replacement */ - /* - configure tries to determine whether va_list is an array or struct - type, but it may not be used under Windows, so deal with a few - special cases. - */ - - #if defined(__PPC__) && (defined(_CALL_SYSV) || defined (_WIN32)) - /* - PPC using SysV ABI and NT/PPC are special in that they use an - extra level of indirection. - */ - #define VA_LIST_IS_POINTER - #endif /* SysV or Win32 on __PPC__ */ - - /* - note that we use memmove(), not memcpy(), in case anybody tries - to do wxVaCopy(ap, ap) - */ - #if defined(VA_LIST_IS_POINTER) - #define wxVaCopy(d, s) memmove(*(d), *(s), sizeof(va_list)) - #elif defined(VA_LIST_IS_ARRAY) - #define wxVaCopy(d, s) memmove((d), (s), sizeof(va_list)) - #else /* we can only hope that va_lists are simple lvalues */ - #define wxVaCopy(d, s) ((d) = (s)) - #endif - #endif /* va_copy/!va_copy */ -#endif /* wxVaCopy */ - -#ifndef HAVE_WOSTREAM - /* - Mingw <= 3.4 and all versions of Cygwin don't have std::wostream - */ - #if (defined(__MINGW32__) && !wxCHECK_GCC_VERSION(4, 0)) || \ - defined(__CYGWIN__) - #define wxNO_WOSTREAM - #endif - - /* VC++ doesn't have it in the old iostream library */ - #if defined(__VISUALC__) && wxUSE_IOSTREAMH - #define wxNO_WOSTREAM - #endif - - #ifndef wxNO_WOSTREAM - #define HAVE_WOSTREAM - #endif - - #undef wxNO_WOSTREAM -#endif /* HAVE_WOSTREAM */ - -/* ---------------------------------------------------------------------------- */ -/* other C++ features */ -/* ---------------------------------------------------------------------------- */ - -#ifndef HAVE_PARTIAL_SPECIALIZATION - /* be optimistic by default */ - #define HAVE_PARTIAL_SPECIALIZATION -#endif - -#ifdef __VISUALC__ - #if __VISUALC__ < 1310 - #undef HAVE_PARTIAL_SPECIALIZATION - #endif -#endif /* __VISUALC__ */ - - -#ifndef HAVE_TEMPLATE_OVERLOAD_RESOLUTION - /* assume the compiler can use type or const expressions as template - arguments if it supports partial specialization -- except if it's a - Borland one which can't */ - #if defined(HAVE_PARTIAL_SPECIALIZATION) && !defined(__BORLANDC__) - #define HAVE_TEMPLATE_OVERLOAD_RESOLUTION - #endif /* (HAVE_PARTIAL_SPECIALIZATION) && !defined(__BORLANDC__) */ -#endif /* !defined(HAVE_TEMPLATE_OVERLOAD_RESOLUTION) */ - -/* ---------------------------------------------------------------------------- */ -/* portable calling conventions macros */ -/* ---------------------------------------------------------------------------- */ - -/* stdcall is used for all functions called by Windows under Windows */ -#if defined(__WINDOWS__) - #if defined(__GNUWIN32__) - #define wxSTDCALL __attribute__((stdcall)) - #else - /* both VC++ and Borland understand this */ - #define wxSTDCALL _stdcall - #endif - -#else /* Win */ - /* no such stupidness under Unix */ - #define wxSTDCALL -#endif /* platform */ - -/* LINKAGEMODE mode is empty for everything except OS/2 */ -#ifndef LINKAGEMODE - #define LINKAGEMODE -#endif /* LINKAGEMODE */ - -/* wxCALLBACK should be used for the functions which are called back by */ -/* Windows (such as compare function for wxListCtrl) */ -#if defined(__WIN32__) - #define wxCALLBACK wxSTDCALL -#else - /* no stdcall under Unix nor Win16 */ - #define wxCALLBACK -#endif /* platform */ - -/* generic calling convention for the extern "C" functions */ - -#if defined(__VISUALC__) - #define wxC_CALLING_CONV _cdecl -#else /* !Visual C++ */ - #define wxC_CALLING_CONV -#endif /* compiler */ - -/* callling convention for the qsort(3) callback */ -#define wxCMPFUNC_CONV wxC_CALLING_CONV - -/* compatibility :-( */ -#define CMPFUNC_CONV wxCMPFUNC_CONV - -/* DLL import/export declarations */ -#include "wx/dlimpexp.h" - -/* ---------------------------------------------------------------------------- */ -/* Very common macros */ -/* ---------------------------------------------------------------------------- */ - -/* Printf-like attribute definitions to obtain warnings with GNU C/C++ */ -#ifndef WX_ATTRIBUTE_PRINTF -# if defined(__GNUC__) && !wxUSE_UNICODE -# define WX_ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) -# else -# define WX_ATTRIBUTE_PRINTF(m, n) -# endif - -# define WX_ATTRIBUTE_PRINTF_1 WX_ATTRIBUTE_PRINTF(1, 2) -# define WX_ATTRIBUTE_PRINTF_2 WX_ATTRIBUTE_PRINTF(2, 3) -# define WX_ATTRIBUTE_PRINTF_3 WX_ATTRIBUTE_PRINTF(3, 4) -# define WX_ATTRIBUTE_PRINTF_4 WX_ATTRIBUTE_PRINTF(4, 5) -# define WX_ATTRIBUTE_PRINTF_5 WX_ATTRIBUTE_PRINTF(5, 6) -#endif /* !defined(WX_ATTRIBUTE_PRINTF) */ - -#ifndef WX_ATTRIBUTE_NORETURN -# if WX_HAS_CLANG_FEATURE(attribute_analyzer_noreturn) -# define WX_ATTRIBUTE_NORETURN __attribute__((analyzer_noreturn)) -# elif defined( __GNUC__ ) -# define WX_ATTRIBUTE_NORETURN __attribute__ ((noreturn)) -# elif defined(__VISUALC__) -# define WX_ATTRIBUTE_NORETURN __declspec(noreturn) -# else -# define WX_ATTRIBUTE_NORETURN -# endif -#endif - -#if defined(__GNUC__) - #define WX_ATTRIBUTE_UNUSED __attribute__ ((unused)) -#else - #define WX_ATTRIBUTE_UNUSED -#endif - -/* - Macros for marking functions as being deprecated. - - The preferred macro in the new code is wxDEPRECATED_MSG() which allows to - explain why is the function deprecated. Almost all the existing code uses - the older wxDEPRECATED() or its variants currently, but this will hopefully - change in the future. - */ - -/* The basic compiler-specific construct to generate a deprecation warning. */ -#ifdef __clang__ - #define wxDEPRECATED_DECL __attribute__((deprecated)) -#elif defined(__GNUC__) - #define wxDEPRECATED_DECL __attribute__((deprecated)) -#elif defined(__VISUALC__) - #define wxDEPRECATED_DECL __declspec(deprecated) -#else - #define wxDEPRECATED_DECL -#endif - -/* - Macro taking the deprecation message. It applies to the next declaration. - - If the compiler doesn't support showing the message, this degrades to a - simple wxDEPRECATED(), i.e. at least gives a warning, if possible. - */ -#if defined(__clang__) && defined(__has_extension) - #if __has_extension(attribute_deprecated_with_message) - #define wxDEPRECATED_MSG(msg) __attribute__((deprecated(msg))) - #else - #define wxDEPRECATED_MSG(msg) __attribute__((deprecated)) - #endif -#elif wxCHECK_GCC_VERSION(4, 5) - #define wxDEPRECATED_MSG(msg) __attribute__((deprecated(msg))) -#elif wxCHECK_VISUALC_VERSION(8) - #define wxDEPRECATED_MSG(msg) __declspec(deprecated("deprecated: " msg)) -#else - #define wxDEPRECATED_MSG(msg) wxDEPRECATED_DECL -#endif - -/* - Macro taking the declaration that it deprecates. Prefer to use - wxDEPRECATED_MSG() instead as it's simpler (wrapping the entire declaration - makes the code unclear) and allows to specify the explanation. - */ -#define wxDEPRECATED(x) wxDEPRECATED_DECL x - -#if defined(__GNUC__) && !wxCHECK_GCC_VERSION(3, 4) - /* - We need to add dummy "inline" to allow gcc < 3.4 to handle the - deprecation attribute on the constructors. - */ - #define wxDEPRECATED_CONSTRUCTOR(x) wxDEPRECATED( inline x) -#else - #define wxDEPRECATED_CONSTRUCTOR(x) wxDEPRECATED(x) -#endif - -/* - Macro which marks the function as being deprecated but also defines it - inline. - - Currently it's defined in the same trivial way in all cases but it could - need a special definition with some other compilers in the future which - explains why do we have it. - */ -#define wxDEPRECATED_INLINE(func, body) wxDEPRECATED(func) { body } - -/* - A macro to define a simple deprecated accessor. - */ -#define wxDEPRECATED_ACCESSOR(func, what) wxDEPRECATED_INLINE(func, return what;) - -/* - Special variant of the macro above which should be used for the functions - which are deprecated but called by wx itself: this often happens with - deprecated virtual functions which are called by the library. - */ -#ifdef WXBUILDING -# define wxDEPRECATED_BUT_USED_INTERNALLY(x) x -#else -# define wxDEPRECATED_BUT_USED_INTERNALLY(x) wxDEPRECATED(x) -#endif - -/* - Macros to suppress and restore gcc warnings, requires g++ >= 4.6 and don't - do anything otherwise. - - Example of use: - - wxGCC_WARNING_SUPPRESS(float-equal) - inline bool wxIsSameDouble(double x, double y) { return x == y; } - wxGCC_WARNING_RESTORE(float-equal) - */ -#if defined(__clang__) || wxCHECK_GCC_VERSION(4, 6) -# define wxGCC_WARNING_SUPPRESS(x) \ - _Pragma (wxSTRINGIZE(GCC diagnostic push)) \ - _Pragma (wxSTRINGIZE(GCC diagnostic ignored wxSTRINGIZE(wxCONCAT(-W,x)))) -# define wxGCC_WARNING_RESTORE(x) \ - _Pragma (wxSTRINGIZE(GCC diagnostic pop)) -#else /* gcc < 4.6 or not gcc and not clang at all */ -# define wxGCC_WARNING_SUPPRESS(x) -# define wxGCC_WARNING_RESTORE(x) -#endif - -/* - Macros to suppress and restore clang warning only when it is valid. - - Example: - wxCLANG_WARNING_SUPPRESS(inconsistent-missing-override) - virtual wxClassInfo *GetClassInfo() const - wxCLANG_WARNING_RESTORE(inconsistent-missing-override) -*/ -#if defined(__has_warning) -# define wxCLANG_HAS_WARNING(x) __has_warning(x) /* allow macro expansion for the warning name */ -# define wxCLANG_IF_VALID_WARNING(x,y) \ - wxCONCAT(wxCLANG_IF_VALID_WARNING_,wxCLANG_HAS_WARNING(wxSTRINGIZE(wxCONCAT(-W,x))))(y) -# define wxCLANG_IF_VALID_WARNING_0(x) -# define wxCLANG_IF_VALID_WARNING_1(x) x -# define wxCLANG_WARNING_SUPPRESS(x) \ - wxCLANG_IF_VALID_WARNING(x,wxGCC_WARNING_SUPPRESS(x)) -# define wxCLANG_WARNING_RESTORE(x) \ - wxCLANG_IF_VALID_WARNING(x,wxGCC_WARNING_RESTORE(x)) -#else -# define wxCLANG_WARNING_SUPPRESS(x) -# define wxCLANG_WARNING_RESTORE(x) -#endif - -/* - Combination of the two variants above: should be used for deprecated - functions which are defined inline and are used by wxWidgets itself. - */ -#ifdef WXBUILDING -# define wxDEPRECATED_BUT_USED_INTERNALLY_INLINE(func, body) func { body } -#else -# define wxDEPRECATED_BUT_USED_INTERNALLY_INLINE(func, body) \ - wxDEPRECATED(func) { body } -#endif - -/* NULL declaration: it must be defined as 0 for C++ programs (in particular, */ -/* it must not be defined as "(void *)0" which is standard for C but completely */ -/* breaks C++ code) */ -#include - -#ifdef __cplusplus - -// everybody gets the assert and other debug macros -#include "wx/debug.h" - - // delete pointer if it is not NULL and NULL it afterwards - template - inline void wxDELETE(T*& ptr) - { - typedef char TypeIsCompleteCheck[sizeof(T)] WX_ATTRIBUTE_UNUSED; - - if ( ptr != NULL ) - { - delete ptr; - ptr = NULL; - } - } - - // delete an array and NULL it (see comments above) - template - inline void wxDELETEA(T*& ptr) - { - typedef char TypeIsCompleteCheck[sizeof(T)] WX_ATTRIBUTE_UNUSED; - - if ( ptr != NULL ) - { - delete [] ptr; - ptr = NULL; - } - } - - // trivial implementation of std::swap() for primitive types - template - inline void wxSwap(T& first, T& second) - { - T tmp(first); - first = second; - second = tmp; - } -#endif /*__cplusplus*/ - -/* size of statically declared array */ -#define WXSIZEOF(array) (sizeof(array)/sizeof(array[0])) - -/* symbolic constant used by all Find()-like functions returning positive */ -/* integer on success as failure indicator */ -#define wxNOT_FOUND (-1) - -/* the default value for some length parameters meaning that the string is */ -/* NUL-terminated */ -#define wxNO_LEN ((size_t)-1) - -/* ---------------------------------------------------------------------------- */ -/* macros dealing with comparison operators */ -/* ---------------------------------------------------------------------------- */ - -/* - Expands into m(op, args...) for each op in the set { ==, !=, <, <=, >, >= }. - */ -#define wxFOR_ALL_COMPARISONS(m) \ - m(==) m(!=) m(>=) m(<=) m(>) m(<) - -#define wxFOR_ALL_COMPARISONS_1(m, x) \ - m(==,x) m(!=,x) m(>=,x) m(<=,x) m(>,x) m(<,x) - -#define wxFOR_ALL_COMPARISONS_2(m, x, y) \ - m(==,x,y) m(!=,x,y) m(>=,x,y) m(<=,x,y) m(>,x,y) m(<,x,y) - -#define wxFOR_ALL_COMPARISONS_3(m, x, y, z) \ - m(==,x,y,z) m(!=,x,y,z) m(>=,x,y,z) m(<=,x,y,z) m(>,x,y,z) m(<,x,y,z) - -/* - These are only used with wxDEFINE_COMPARISON_[BY_]REV: they pass both the - normal and the reversed comparison operators to the macro. - */ -#define wxFOR_ALL_COMPARISONS_2_REV(m, x, y) \ - m(==,x,y,==) m(!=,x,y,!=) m(>=,x,y,<=) \ - m(<=,x,y,>=) m(>,x,y,<) m(<,x,y,>) - -#define wxFOR_ALL_COMPARISONS_3_REV(m, x, y, z) \ - m(==,x,y,z,==) m(!=,x,y,z,!=) m(>=,x,y,z,<=) \ - m(<=,x,y,z,>=) m(>,x,y,z,<) m(<,x,y,z,>) - - -#define wxDEFINE_COMPARISON(op, T1, T2, cmp) \ - inline bool operator op(T1 x, T2 y) { return cmp(x, y, op); } - -#define wxDEFINE_COMPARISON_REV(op, T1, T2, cmp, oprev) \ - inline bool operator op(T2 y, T1 x) { return cmp(x, y, oprev); } - -#define wxDEFINE_COMPARISON_BY_REV(op, T1, T2, oprev) \ - inline bool operator op(T1 x, T2 y) { return y oprev x; } - -/* - Define all 6 comparison operators (==, !=, <, <=, >, >=) for the given - types in the specified order. The implementation is provided by the cmp - macro. Normally wxDEFINE_ALL_COMPARISONS should be used as comparison - operators are usually symmetric. - */ -#define wxDEFINE_COMPARISONS(T1, T2, cmp) \ - wxFOR_ALL_COMPARISONS_3(wxDEFINE_COMPARISON, T1, T2, cmp) - -/* - Define all 6 comparison operators (==, !=, <, <=, >, >=) for the given - types in the specified order, implemented in terms of existing operators - for the reverse order. - */ -#define wxDEFINE_COMPARISONS_BY_REV(T1, T2) \ - wxFOR_ALL_COMPARISONS_2_REV(wxDEFINE_COMPARISON_BY_REV, T1, T2) - -/* - This macro allows to define all 12 comparison operators (6 operators for - both orders of arguments) for the given types using the provided "cmp" - macro to implement the actual comparison: the macro is called with the 2 - arguments names, the first of type T1 and the second of type T2, and the - comparison operator being implemented. - */ -#define wxDEFINE_ALL_COMPARISONS(T1, T2, cmp) \ - wxFOR_ALL_COMPARISONS_3(wxDEFINE_COMPARISON, T1, T2, cmp) \ - wxFOR_ALL_COMPARISONS_3_REV(wxDEFINE_COMPARISON_REV, T1, T2, cmp) - -/* ---------------------------------------------------------------------------- */ -/* macros to avoid compiler warnings */ -/* ---------------------------------------------------------------------------- */ - -/* Macro to cut down on compiler warnings. */ -#if 1 /* there should be no more any compilers needing the "#else" version */ - #define WXUNUSED(identifier) /* identifier */ -#else /* stupid, broken compiler */ - #define WXUNUSED(identifier) identifier -#endif - -/* some arguments are not used in unicode mode */ -#if wxUSE_UNICODE - #define WXUNUSED_IN_UNICODE(param) WXUNUSED(param) -#else - #define WXUNUSED_IN_UNICODE(param) param -#endif - -/* unused parameters in non stream builds */ -#if wxUSE_STREAMS - #define WXUNUSED_UNLESS_STREAMS(param) param -#else - #define WXUNUSED_UNLESS_STREAMS(param) WXUNUSED(param) -#endif - -/* some compilers give warning about a possibly unused variable if it is */ -/* initialized in both branches of if/else and shut up if it is initialized */ -/* when declared, but other compilers then give warnings about unused variable */ -/* value -- this should satisfy both of them */ -#if defined(__VISUALC__) - #define wxDUMMY_INITIALIZE(val) = val -#else - #define wxDUMMY_INITIALIZE(val) -#endif - -/* sometimes the value of a variable is *really* not used, to suppress the */ -/* resulting warning you may pass it to this function */ -#ifdef __cplusplus -# ifdef __BORLANDC__ -# define wxUnusedVar(identifier) identifier -# else - template - inline void wxUnusedVar(const T& WXUNUSED(t)) { } -# endif -#endif - -/* ---------------------------------------------------------------------------- */ -/* compiler specific settings */ -/* ---------------------------------------------------------------------------- */ - -/* where should i put this? we need to make sure of this as it breaks */ -/* the code. */ -#if !wxUSE_IOSTREAMH && defined(__WXDEBUG__) -# undef wxUSE_DEBUG_NEW_ALWAYS -# define wxUSE_DEBUG_NEW_ALWAYS 0 -#endif - -/* ---------------------------------------------------------------------------- */ -/* standard wxWidgets types */ -/* ---------------------------------------------------------------------------- */ - -/* the type for screen and DC coordinates */ -typedef int wxCoord; - -enum { wxDefaultCoord = -1 }; - -/* ---------------------------------------------------------------------------- */ -/* define fixed length types */ -/* ---------------------------------------------------------------------------- */ - -#if defined(__MINGW32__) - #include -#endif - -/* chars are always one byte (by definition), shorts are always two (in */ -/* practice) */ - -/* 8bit */ -typedef signed char wxInt8; -typedef unsigned char wxUint8; -typedef wxUint8 wxByte; - - -/* 16bit */ -#ifdef SIZEOF_SHORT - #if SIZEOF_SHORT != 2 - #error "wxWidgets assumes sizeof(short) == 2, please fix the code" - #endif -#else - #define SIZEOF_SHORT 2 -#endif - -typedef signed short wxInt16; -typedef unsigned short wxUint16; - -typedef wxUint16 wxWord; - -/* - things are getting more interesting with ints, longs and pointers - - there are several different standard data models described by this table: - - +-----------+----------------------------+ - |type\model | LP64 ILP64 LLP64 ILP32 LP32| - +-----------+----------------------------+ - |char | 8 8 8 8 8 | - |short | 16 16 16 16 16 | - |int | 32 64 32 32 16 | - |long | 64 64 32 32 32 | - |long long | 64 64 64 -- -- | - |void * | 64 64 64 32 32 | - +-----------+----------------------------+ - - Win16 used LP32 (but we don't support it any longer), Win32 obviously used - ILP32 and Win64 uses LLP64 (a.k.a. P64) - - Under Unix LP64 is the most widely used (the only I've ever seen, in fact) - */ - -/* 32bit */ -#if defined(__WINDOWS__) - #if defined(__WIN32__) - typedef int wxInt32; - typedef unsigned int wxUint32; - - /* - Win64 uses LLP64 model and so ints and longs have the same size as - in Win32. - */ - #ifndef SIZEOF_INT - #define SIZEOF_INT 4 - #endif - - #ifndef SIZEOF_LONG - #define SIZEOF_LONG 4 - #endif - - #ifndef SIZEOF_LONG_LONG - #define SIZEOF_LONG_LONG 8 - #endif - - #ifndef SIZEOF_WCHAR_T - /* Windows uses UTF-16 */ - #define SIZEOF_WCHAR_T 2 - #endif - - #ifndef SIZEOF_SIZE_T - /* - Under Win64 sizeof(size_t) == 8 and so it is neither unsigned - int nor unsigned long! - */ - #ifdef __WIN64__ - #define SIZEOF_SIZE_T 8 - - #undef wxSIZE_T_IS_UINT - #else /* Win32 */ - #define SIZEOF_SIZE_T 4 - - #define wxSIZE_T_IS_UINT - #endif - #undef wxSIZE_T_IS_ULONG - #endif - - #ifndef SIZEOF_VOID_P - #ifdef __WIN64__ - #define SIZEOF_VOID_P 8 - #else /* Win32 */ - #define SIZEOF_VOID_P 4 - #endif /* Win64/32 */ - #endif - #else - #error "Unsupported Windows version" - #endif -#else /* !Windows */ - /* SIZEOF_XXX are normally defined by configure */ - #ifdef SIZEOF_INT - #if SIZEOF_INT == 8 - /* must be ILP64 data model, there is normally a special 32 bit */ - /* type in it but we don't know what it is... */ - #error "No 32bit int type on this platform" - #elif SIZEOF_INT == 4 - typedef int wxInt32; - typedef unsigned int wxUint32; - #elif SIZEOF_INT == 2 - /* must be LP32 */ - #if SIZEOF_LONG != 4 - #error "No 32bit int type on this platform" - #endif - - typedef long wxInt32; - typedef unsigned long wxUint32; - #else - /* wxWidgets is not ready for 128bit systems yet... */ - #error "Unknown sizeof(int) value, what are you compiling for?" - #endif - #else /* !defined(SIZEOF_INT) */ - /* assume default 32bit machine -- what else can we do? */ - wxCOMPILE_TIME_ASSERT( sizeof(int) == 4, IntMustBeExactly4Bytes); - wxCOMPILE_TIME_ASSERT( sizeof(size_t) == 4, SizeTMustBeExactly4Bytes); - wxCOMPILE_TIME_ASSERT( sizeof(void *) == 4, PtrMustBeExactly4Bytes); - - #define SIZEOF_INT 4 - #define SIZEOF_SIZE_T 4 - #define SIZEOF_VOID_P 4 - - typedef int wxInt32; - typedef unsigned int wxUint32; - - #if defined(__MACH__) && !defined(SIZEOF_WCHAR_T) - #define SIZEOF_WCHAR_T 4 - #endif - #if !defined(SIZEOF_WCHAR_T) - /* also assume that sizeof(wchar_t) == 2 (under Unix the most */ - /* common case is 4 but there configure would have defined */ - /* SIZEOF_WCHAR_T for us) */ - /* the most common case */ - wxCOMPILE_TIME_ASSERT( sizeof(wchar_t) == 2, - Wchar_tMustBeExactly2Bytes); - - #define SIZEOF_WCHAR_T 2 - #endif /* !defined(SIZEOF_WCHAR_T) */ - #endif -#endif /* Win/!Win */ - -#ifndef SIZEOF_WCHAR_T - #error "SIZEOF_WCHAR_T must be defined, but isn't" -#endif - -/* also define C99-like sized MIN/MAX constants */ -#define wxINT8_MIN CHAR_MIN -#define wxINT8_MAX CHAR_MAX -#define wxUINT8_MAX UCHAR_MAX - -#define wxINT16_MIN SHRT_MIN -#define wxINT16_MAX SHRT_MAX -#define wxUINT16_MAX USHRT_MAX - -#if SIZEOF_INT == 4 - #define wxINT32_MIN INT_MIN - #define wxINT32_MAX INT_MAX - #define wxUINT32_MAX UINT_MAX -#elif SIZEOF_LONG == 4 - #define wxINT32_MIN LONG_MIN - #define wxINT32_MAX LONG_MAX - #define wxUINT32_MAX ULONG_MAX -#else - #error "Unknown 32 bit type" -#endif - -typedef wxUint32 wxDword; - -#ifdef LLONG_MAX - #define wxINT64_MIN LLONG_MIN - #define wxINT64_MAX LLONG_MAX - #define wxUINT64_MAX ULLONG_MAX -#else - #define wxINT64_MIN (wxLL(-9223372036854775807)-1) - #define wxINT64_MAX wxLL(9223372036854775807) - #define wxUINT64_MAX wxULL(0xFFFFFFFFFFFFFFFF) -#endif - -/* 64 bit */ - -/* NB: we #define and not typedef wxLongLong_t because we use "#ifdef */ -/* wxLongLong_t" in wx/longlong.h */ - -/* wxULongLong_t is set later (usually to unsigned wxLongLong_t) */ - -/* to avoid compilation problems on 64bit machines with ambiguous method calls */ -/* we will need to define this */ -#undef wxLongLongIsLong - -/* - First check for specific compilers which have known 64 bit integer types, - this avoids clashes with SIZEOF_LONG[_LONG] being defined incorrectly for - e.g. MSVC builds (Python.h defines it as 8 even for MSVC). - - Also notice that we check for "long long" before checking for 64 bit long as - we still want to use "long long" and not "long" for wxLongLong_t on 64 bit - architectures to be able to pass wxLongLong_t to the standard functions - prototyped as taking "long long" such as strtoll(). - */ -#if (defined(__VISUALC__) || defined(__INTELC__)) && defined(__WIN32__) - #define wxLongLong_t __int64 - #define wxLongLongSuffix i64 - #define wxLongLongFmtSpec "I64" -#elif defined(__BORLANDC__) && defined(__WIN32__) && (__BORLANDC__ >= 0x520) - #define wxLongLong_t __int64 - #define wxLongLongSuffix i64 - #define wxLongLongFmtSpec "L" -#elif defined(__MINGW32__) - #define wxLongLong_t long long - #define wxLongLongSuffix ll - #define wxLongLongFmtSpec "I64" -#elif (defined(SIZEOF_LONG_LONG) && SIZEOF_LONG_LONG >= 8) || \ - defined(__GNUC__) || \ - defined(__CYGWIN__) - #define wxLongLong_t long long - #define wxLongLongSuffix ll - #define wxLongLongFmtSpec "ll" -#elif defined(SIZEOF_LONG) && (SIZEOF_LONG == 8) - #define wxLongLong_t long - #define wxLongLongSuffix l - #define wxLongLongFmtSpec "l" - #define wxLongLongIsLong -#endif - - -#ifdef wxLongLong_t - #define wxULongLong_t unsigned wxLongLong_t - - /* - wxLL() and wxULL() macros allow to define 64 bit constants in a - portable way. - */ - #ifndef wxCOMPILER_BROKEN_CONCAT_OPER - #define wxLL(x) wxCONCAT(x, wxLongLongSuffix) - #define wxULL(x) wxCONCAT(x, wxCONCAT(u, wxLongLongSuffix)) - #else - /* - Currently only Borland compiler has broken concatenation operator - and this compiler is known to use [u]i64 suffix. - */ - #define wxLL(x) wxAPPEND_i64(x) - #define wxULL(x) wxAPPEND_ui64(x) - #endif - - typedef wxLongLong_t wxInt64; - typedef wxULongLong_t wxUint64; - - #define wxHAS_INT64 1 - - #ifndef wxLongLongIsLong - #define wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - #endif -#elif wxUSE_LONGLONG - /* these macros allow to define 64 bit constants in a portable way */ - #define wxLL(x) wxLongLong(x) - #define wxULL(x) wxULongLong(x) - - #define wxInt64 wxLongLong - #define wxUint64 wxULongLong - - #define wxHAS_INT64 1 - -#else /* !wxUSE_LONGLONG */ - - #define wxHAS_INT64 0 - -#endif - -/* - Helper macro for conditionally compiling some code only if wxLongLong_t is - available and is a type different from the other integer types (i.e. not - long). - */ -#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - #define wxIF_LONG_LONG_TYPE(x) x -#else - #define wxIF_LONG_LONG_TYPE(x) -#endif - - -/* Make sure ssize_t is defined (a signed type the same size as size_t). */ -/* (HAVE_SSIZE_T is not already defined by configure) */ -#ifndef HAVE_SSIZE_T -#ifdef __MINGW32__ - #if defined(_SSIZE_T_) || defined(_SSIZE_T_DEFINED) - #define HAVE_SSIZE_T - #endif -#endif -#endif /* !HAVE_SSIZE_T */ - -/* If we really don't have ssize_t, provide our own version. */ -#ifdef HAVE_SSIZE_T - #ifdef __UNIX__ - #include - #endif -#else /* !HAVE_SSIZE_T */ - #if SIZEOF_SIZE_T == 4 - typedef wxInt32 ssize_t; - #elif SIZEOF_SIZE_T == 8 - typedef wxInt64 ssize_t; - #else - #error "error defining ssize_t, size_t is not 4 or 8 bytes" - #endif - - /* prevent ssize_t redefinitions in other libraries */ - #define HAVE_SSIZE_T -#endif - -/* - We can't rely on Windows _W64 being defined as windows.h may not be - included so define our own equivalent: this should be used with types - like WXLPARAM or WXWPARAM which are 64 bit under Win64 to avoid warnings - each time we cast it to a pointer or a handle (which results in hundreds - of warnings as Win32 API often passes pointers in them) - */ -#ifdef __VISUALC__ - #define wxW64 __w64 -#else - #define wxW64 -#endif - -/* - Define signed and unsigned integral types big enough to contain all of long, - size_t and void *. - */ -#if SIZEOF_LONG >= SIZEOF_VOID_P - /* - Normal case when long is the largest integral type. - */ - typedef long wxIntPtr; - typedef unsigned long wxUIntPtr; -#elif SIZEOF_SIZE_T >= SIZEOF_VOID_P - /* - Win64 case: size_t is the only integral type big enough for "void *". - - Notice that we must use __w64 to avoid warnings about casting pointers - to wxIntPtr (which we do often as this is what it is defined for) in 32 - bit build with MSVC. - */ - typedef wxW64 ssize_t wxIntPtr; - typedef size_t wxUIntPtr; -#else - /* - This should never happen for the current architectures but if you're - using one where it does, please contact wx-dev@googlegroups.com. - */ - #error "Pointers can't be stored inside integer types." -#endif - -#ifdef __cplusplus -/* And also define a couple of simple functions to cast pointer to/from it. */ -inline wxUIntPtr wxPtrToUInt(const void *p) -{ - /* - VC++ 7.1 gives warnings about casts such as below even when they're - explicit with /Wp64 option, suppress them as we really know what we're - doing here. Same thing with icc with -Wall. - */ -#ifdef __VISUALC__ - #pragma warning(push) - /* pointer truncation from '' to '' */ - #pragma warning(disable: 4311) -#elif defined(__INTELC__) - #pragma warning(push) - /* conversion from pointer to same-sized integral type */ - #pragma warning(disable: 1684) -#endif - - return wx_reinterpret_cast(wxUIntPtr, p); - -#if defined(__VISUALC__) || defined(__INTELC__) - #pragma warning(pop) -#endif -} - -inline void *wxUIntToPtr(wxUIntPtr p) -{ -#ifdef __VISUALC__ - #pragma warning(push) - /* conversion to type of greater size */ - #pragma warning(disable: 4312) -#elif defined(__INTELC__) - #pragma warning(push) - /* invalid type conversion: "wxUIntPtr={unsigned long}" to "void *" */ - #pragma warning(disable: 171) -#endif - - return wx_reinterpret_cast(void *, p); - -#if defined(__VISUALC__) || defined(__INTELC__) - #pragma warning(pop) -#endif -} -#endif /*__cplusplus*/ - - - -/* base floating point types */ -/* wxFloat32: 32 bit IEEE float ( 1 sign, 8 exponent bits, 23 fraction bits ) */ -/* wxFloat64: 64 bit IEEE float ( 1 sign, 11 exponent bits, 52 fraction bits ) */ -/* wxDouble: native fastest representation that has at least wxFloat64 */ -/* precision, so use the IEEE types for storage, and this for */ -/* calculations */ - -typedef float wxFloat32; -typedef double wxFloat64; - -typedef double wxDouble; - -/* - Some (non standard) compilers typedef wchar_t as an existing type instead - of treating it as a real fundamental type, set wxWCHAR_T_IS_REAL_TYPE to 0 - for them and to 1 for all the others. - */ -#ifndef wxWCHAR_T_IS_REAL_TYPE - /* - VC++ typedefs wchar_t as unsigned short by default until VC8, that is - unless /Za or /Zc:wchar_t option is used in which case _WCHAR_T_DEFINED - is defined. - */ -# if defined(__VISUALC__) && !defined(_NATIVE_WCHAR_T_DEFINED) -# define wxWCHAR_T_IS_REAL_TYPE 0 -# else /* compiler having standard-conforming wchar_t */ -# define wxWCHAR_T_IS_REAL_TYPE 1 -# endif -#endif /* !defined(wxWCHAR_T_IS_REAL_TYPE) */ - -/* Helper macro for doing something dependent on whether wchar_t is or isn't a - typedef inside another macro. */ -#if wxWCHAR_T_IS_REAL_TYPE - #define wxIF_WCHAR_T_TYPE(x) x -#else /* !wxWCHAR_T_IS_REAL_TYPE */ - #define wxIF_WCHAR_T_TYPE(x) -#endif /* wxWCHAR_T_IS_REAL_TYPE/!wxWCHAR_T_IS_REAL_TYPE */ - -/* - This constant should be used instead of NULL in vararg functions taking - wxChar* arguments: passing NULL (which is the same as 0, unless the compiler - defines it specially, e.g. like gcc does with its __null built-in) doesn't - work in this case as va_arg() wouldn't interpret the integer 0 correctly - when trying to convert it to a pointer on architectures where sizeof(int) is - strictly less than sizeof(void *). - - Examples of places where this must be used include wxFileTypeInfo ctor. - */ -#define wxNullPtr ((void *)NULL) - - -/* Define wxChar16 and wxChar32 */ - -#if SIZEOF_WCHAR_T == 2 - #define wxWCHAR_T_IS_WXCHAR16 - typedef wchar_t wxChar16; -#else - typedef wxUint16 wxChar16; -#endif - -#if SIZEOF_WCHAR_T == 4 - #define wxWCHAR_T_IS_WXCHAR32 - typedef wchar_t wxChar32; -#else - typedef wxUint32 wxChar32; -#endif - - -/* - Helper macro expanding into the given "m" macro invoked with each of the - integer types as parameter (notice that this does not include char/unsigned - char and bool but does include wchar_t). - */ -#define wxDO_FOR_INT_TYPES(m) \ - m(short) \ - m(unsigned short) \ - m(int) \ - m(unsigned int) \ - m(long) \ - m(unsigned long) \ - wxIF_LONG_LONG_TYPE( m(wxLongLong_t) ) \ - wxIF_LONG_LONG_TYPE( m(wxULongLong_t) ) \ - wxIF_WCHAR_T_TYPE( m(wchar_t) ) - -/* - Same as wxDO_FOR_INT_TYPES() but does include char and unsigned char. - - Notice that we use "char" and "unsigned char" here but not "signed char" - which would be more correct as "char" could be unsigned by default. But - wxWidgets code currently supposes that char is signed and we'd need to - clean up assumptions about it, notably in wx/unichar.h, to be able to use - "signed char" here. - */ -#define wxDO_FOR_CHAR_INT_TYPES(m) \ - m(char) \ - m(unsigned char) \ - wxDO_FOR_INT_TYPES(m) - -/* - Same as wxDO_FOR_INT_TYPES() above except that m macro takes the - type as the first argument and some extra argument, passed from this macro - itself, as the second one. - */ -#define wxDO_FOR_INT_TYPES_1(m, arg) \ - m(short, arg) \ - m(unsigned short, arg) \ - m(int, arg) \ - m(unsigned int, arg) \ - m(long, arg) \ - m(unsigned long, arg) \ - wxIF_LONG_LONG_TYPE( m(wxLongLong_t, arg) ) \ - wxIF_LONG_LONG_TYPE( m(wxULongLong_t, arg) ) \ - wxIF_WCHAR_T_TYPE( m(wchar_t, arg) ) - -/* - Combination of wxDO_FOR_CHAR_INT_TYPES() and wxDO_FOR_INT_TYPES_1(): - invokes the given macro with the specified argument as its second parameter - for all char and int types. - */ -#define wxDO_FOR_CHAR_INT_TYPES_1(m, arg) \ - m(char, arg) \ - m(unsigned char, arg) \ - wxDO_FOR_INT_TYPES_1(m, arg) - - -/* ---------------------------------------------------------------------------- */ -/* byte ordering related definition and macros */ -/* ---------------------------------------------------------------------------- */ - -/* byte sex */ - -#define wxBIG_ENDIAN 4321 -#define wxLITTLE_ENDIAN 1234 -#define wxPDP_ENDIAN 3412 - -#ifdef WORDS_BIGENDIAN -#define wxBYTE_ORDER wxBIG_ENDIAN -#else -#define wxBYTE_ORDER wxLITTLE_ENDIAN -#endif - -/* byte swapping */ - -#define wxUINT16_SWAP_ALWAYS(val) \ - ((wxUint16) ( \ - (((wxUint16) (val) & (wxUint16) 0x00ffU) << 8) | \ - (((wxUint16) (val) & (wxUint16) 0xff00U) >> 8))) - -#define wxINT16_SWAP_ALWAYS(val) \ - ((wxInt16) ( \ - (((wxUint16) (val) & (wxUint16) 0x00ffU) << 8) | \ - (((wxUint16) (val) & (wxUint16) 0xff00U) >> 8))) - -#define wxUINT32_SWAP_ALWAYS(val) \ - ((wxUint32) ( \ - (((wxUint32) (val) & (wxUint32) 0x000000ffU) << 24) | \ - (((wxUint32) (val) & (wxUint32) 0x0000ff00U) << 8) | \ - (((wxUint32) (val) & (wxUint32) 0x00ff0000U) >> 8) | \ - (((wxUint32) (val) & (wxUint32) 0xff000000U) >> 24))) - -#define wxINT32_SWAP_ALWAYS(val) \ - ((wxInt32) ( \ - (((wxUint32) (val) & (wxUint32) 0x000000ffU) << 24) | \ - (((wxUint32) (val) & (wxUint32) 0x0000ff00U) << 8) | \ - (((wxUint32) (val) & (wxUint32) 0x00ff0000U) >> 8) | \ - (((wxUint32) (val) & (wxUint32) 0xff000000U) >> 24))) -/* machine specific byte swapping */ - -#ifdef wxLongLong_t - #define wxUINT64_SWAP_ALWAYS(val) \ - ((wxUint64) ( \ - (((wxUint64) (val) & (wxUint64) wxULL(0x00000000000000ff)) << 56) | \ - (((wxUint64) (val) & (wxUint64) wxULL(0x000000000000ff00)) << 40) | \ - (((wxUint64) (val) & (wxUint64) wxULL(0x0000000000ff0000)) << 24) | \ - (((wxUint64) (val) & (wxUint64) wxULL(0x00000000ff000000)) << 8) | \ - (((wxUint64) (val) & (wxUint64) wxULL(0x000000ff00000000)) >> 8) | \ - (((wxUint64) (val) & (wxUint64) wxULL(0x0000ff0000000000)) >> 24) | \ - (((wxUint64) (val) & (wxUint64) wxULL(0x00ff000000000000)) >> 40) | \ - (((wxUint64) (val) & (wxUint64) wxULL(0xff00000000000000)) >> 56))) - - #define wxINT64_SWAP_ALWAYS(val) \ - ((wxInt64) ( \ - (((wxUint64) (val) & (wxUint64) wxULL(0x00000000000000ff)) << 56) | \ - (((wxUint64) (val) & (wxUint64) wxULL(0x000000000000ff00)) << 40) | \ - (((wxUint64) (val) & (wxUint64) wxULL(0x0000000000ff0000)) << 24) | \ - (((wxUint64) (val) & (wxUint64) wxULL(0x00000000ff000000)) << 8) | \ - (((wxUint64) (val) & (wxUint64) wxULL(0x000000ff00000000)) >> 8) | \ - (((wxUint64) (val) & (wxUint64) wxULL(0x0000ff0000000000)) >> 24) | \ - (((wxUint64) (val) & (wxUint64) wxULL(0x00ff000000000000)) >> 40) | \ - (((wxUint64) (val) & (wxUint64) wxULL(0xff00000000000000)) >> 56))) -#elif wxUSE_LONGLONG /* !wxLongLong_t */ - #define wxUINT64_SWAP_ALWAYS(val) \ - ((wxUint64) ( \ - ((wxULongLong(val) & wxULongLong(0L, 0x000000ffU)) << 56) | \ - ((wxULongLong(val) & wxULongLong(0L, 0x0000ff00U)) << 40) | \ - ((wxULongLong(val) & wxULongLong(0L, 0x00ff0000U)) << 24) | \ - ((wxULongLong(val) & wxULongLong(0L, 0xff000000U)) << 8) | \ - ((wxULongLong(val) & wxULongLong(0x000000ffL, 0U)) >> 8) | \ - ((wxULongLong(val) & wxULongLong(0x0000ff00L, 0U)) >> 24) | \ - ((wxULongLong(val) & wxULongLong(0x00ff0000L, 0U)) >> 40) | \ - ((wxULongLong(val) & wxULongLong(0xff000000L, 0U)) >> 56))) - - #define wxINT64_SWAP_ALWAYS(val) \ - ((wxInt64) ( \ - ((wxLongLong(val) & wxLongLong(0L, 0x000000ffU)) << 56) | \ - ((wxLongLong(val) & wxLongLong(0L, 0x0000ff00U)) << 40) | \ - ((wxLongLong(val) & wxLongLong(0L, 0x00ff0000U)) << 24) | \ - ((wxLongLong(val) & wxLongLong(0L, 0xff000000U)) << 8) | \ - ((wxLongLong(val) & wxLongLong(0x000000ffL, 0U)) >> 8) | \ - ((wxLongLong(val) & wxLongLong(0x0000ff00L, 0U)) >> 24) | \ - ((wxLongLong(val) & wxLongLong(0x00ff0000L, 0U)) >> 40) | \ - ((wxLongLong(val) & wxLongLong(0xff000000L, 0U)) >> 56))) -#endif /* wxLongLong_t/!wxLongLong_t */ - -#ifdef WORDS_BIGENDIAN - #define wxUINT16_SWAP_ON_BE(val) wxUINT16_SWAP_ALWAYS(val) - #define wxINT16_SWAP_ON_BE(val) wxINT16_SWAP_ALWAYS(val) - #define wxUINT16_SWAP_ON_LE(val) (val) - #define wxINT16_SWAP_ON_LE(val) (val) - #define wxUINT32_SWAP_ON_BE(val) wxUINT32_SWAP_ALWAYS(val) - #define wxINT32_SWAP_ON_BE(val) wxINT32_SWAP_ALWAYS(val) - #define wxUINT32_SWAP_ON_LE(val) (val) - #define wxINT32_SWAP_ON_LE(val) (val) - #if wxHAS_INT64 - #define wxUINT64_SWAP_ON_BE(val) wxUINT64_SWAP_ALWAYS(val) - #define wxUINT64_SWAP_ON_LE(val) (val) - #define wxINT64_SWAP_ON_BE(val) wxINT64_SWAP_ALWAYS(val) - #define wxINT64_SWAP_ON_LE(val) (val) - - #define wxUINT64_SWAP_ON_BE_IN_PLACE(val) val = wxUINT64_SWAP_ALWAYS(val) - #define wxINT64_SWAP_ON_BE_IN_PLACE(val) val = wxINT64_SWAP_ALWAYS(val) - #define wxUINT64_SWAP_ON_LE_IN_PLACE(val) - #define wxINT64_SWAP_ON_LE_IN_PLACE(val) - #endif - - #define wxUINT16_SWAP_ON_BE_IN_PLACE(val) val = wxUINT16_SWAP_ALWAYS(val) - #define wxINT16_SWAP_ON_BE_IN_PLACE(val) val = wxINT16_SWAP_ALWAYS(val) - #define wxUINT16_SWAP_ON_LE_IN_PLACE(val) - #define wxINT16_SWAP_ON_LE_IN_PLACE(val) - #define wxUINT32_SWAP_ON_BE_IN_PLACE(val) val = wxUINT32_SWAP_ALWAYS(val) - #define wxINT32_SWAP_ON_BE_IN_PLACE(val) val = wxINT32_SWAP_ALWAYS(val) - #define wxUINT32_SWAP_ON_LE_IN_PLACE(val) - #define wxINT32_SWAP_ON_LE_IN_PLACE(val) -#else - #define wxUINT16_SWAP_ON_LE(val) wxUINT16_SWAP_ALWAYS(val) - #define wxINT16_SWAP_ON_LE(val) wxINT16_SWAP_ALWAYS(val) - #define wxUINT16_SWAP_ON_BE(val) (val) - #define wxINT16_SWAP_ON_BE(val) (val) - #define wxUINT32_SWAP_ON_LE(val) wxUINT32_SWAP_ALWAYS(val) - #define wxINT32_SWAP_ON_LE(val) wxINT32_SWAP_ALWAYS(val) - #define wxUINT32_SWAP_ON_BE(val) (val) - #define wxINT32_SWAP_ON_BE(val) (val) - #if wxHAS_INT64 - #define wxUINT64_SWAP_ON_LE(val) wxUINT64_SWAP_ALWAYS(val) - #define wxUINT64_SWAP_ON_BE(val) (val) - #define wxINT64_SWAP_ON_LE(val) wxINT64_SWAP_ALWAYS(val) - #define wxINT64_SWAP_ON_BE(val) (val) - #define wxUINT64_SWAP_ON_BE_IN_PLACE(val) - #define wxINT64_SWAP_ON_BE_IN_PLACE(val) - #define wxUINT64_SWAP_ON_LE_IN_PLACE(val) val = wxUINT64_SWAP_ALWAYS(val) - #define wxINT64_SWAP_ON_LE_IN_PLACE(val) val = wxINT64_SWAP_ALWAYS(val) - #endif - - #define wxUINT16_SWAP_ON_BE_IN_PLACE(val) - #define wxINT16_SWAP_ON_BE_IN_PLACE(val) - #define wxUINT16_SWAP_ON_LE_IN_PLACE(val) val = wxUINT16_SWAP_ALWAYS(val) - #define wxINT16_SWAP_ON_LE_IN_PLACE(val) val = wxINT16_SWAP_ALWAYS(val) - #define wxUINT32_SWAP_ON_BE_IN_PLACE(val) - #define wxINT32_SWAP_ON_BE_IN_PLACE(val) - #define wxUINT32_SWAP_ON_LE_IN_PLACE(val) val = wxUINT32_SWAP_ALWAYS(val) - #define wxINT32_SWAP_ON_LE_IN_PLACE(val) val = wxINT32_SWAP_ALWAYS(val) -#endif - -/* ---------------------------------------------------------------------------- */ -/* Geometric flags */ -/* ---------------------------------------------------------------------------- */ - -enum wxGeometryCentre -{ - wxCENTRE = 0x0001, - wxCENTER = wxCENTRE -}; - -/* centering into frame rather than screen (obsolete) */ -#define wxCENTER_FRAME 0x0000 -/* centre on screen rather than parent */ -#define wxCENTRE_ON_SCREEN 0x0002 -#define wxCENTER_ON_SCREEN wxCENTRE_ON_SCREEN - -enum wxOrientation -{ - /* don't change the values of these elements, they are used elsewhere */ - wxHORIZONTAL = 0x0004, - wxVERTICAL = 0x0008, - - wxBOTH = wxVERTICAL | wxHORIZONTAL, - - /* a mask to extract orientation from the combination of flags */ - wxORIENTATION_MASK = wxBOTH -}; - -enum wxDirection -{ - wxLEFT = 0x0010, - wxRIGHT = 0x0020, - wxUP = 0x0040, - wxDOWN = 0x0080, - - wxTOP = wxUP, - wxBOTTOM = wxDOWN, - - wxNORTH = wxUP, - wxSOUTH = wxDOWN, - wxWEST = wxLEFT, - wxEAST = wxRIGHT, - - wxALL = (wxUP | wxDOWN | wxRIGHT | wxLEFT), - - /* a mask to extract direction from the combination of flags */ - wxDIRECTION_MASK = wxALL -}; - -enum wxAlignment -{ - /* - 0 is a valid wxAlignment value (both wxALIGN_LEFT and wxALIGN_TOP - use it) so define a symbolic name for an invalid alignment value - which can be assumed to be different from anything else - */ - wxALIGN_INVALID = -1, - - wxALIGN_NOT = 0x0000, - wxALIGN_CENTER_HORIZONTAL = 0x0100, - wxALIGN_CENTRE_HORIZONTAL = wxALIGN_CENTER_HORIZONTAL, - wxALIGN_LEFT = wxALIGN_NOT, - wxALIGN_TOP = wxALIGN_NOT, - wxALIGN_RIGHT = 0x0200, - wxALIGN_BOTTOM = 0x0400, - wxALIGN_CENTER_VERTICAL = 0x0800, - wxALIGN_CENTRE_VERTICAL = wxALIGN_CENTER_VERTICAL, - - wxALIGN_CENTER = (wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL), - wxALIGN_CENTRE = wxALIGN_CENTER, - - /* a mask to extract alignment from the combination of flags */ - wxALIGN_MASK = 0x0f00 -}; - -/* misc. flags for wxSizer items */ -enum wxSizerFlagBits -{ - /* - wxADJUST_MINSIZE doesn't do anything any more but we still define - it for compatibility. Notice that it may be also predefined (as 0, - hopefully) in the user code in order to use it even in - !WXWIN_COMPATIBILITY_2_8 builds so don't redefine it in such case. - */ -#if WXWIN_COMPATIBILITY_2_8 && !defined(wxADJUST_MINSIZE) - wxADJUST_MINSIZE = 0, -#endif - wxFIXED_MINSIZE = 0x8000, - wxRESERVE_SPACE_EVEN_IF_HIDDEN = 0x0002, - - /* a mask to extract wxSizerFlagBits from combination of flags */ - wxSIZER_FLAG_BITS_MASK = 0x8002 -}; - -enum wxStretch -{ - wxSTRETCH_NOT = 0x0000, - wxSHRINK = 0x1000, - wxGROW = 0x2000, - wxEXPAND = wxGROW, - wxSHAPED = 0x4000, - wxTILE = wxSHAPED | wxFIXED_MINSIZE, - - /* a mask to extract stretch from the combination of flags */ - wxSTRETCH_MASK = 0x7000 /* sans wxTILE */ -}; - -/* border flags: the values are chosen for backwards compatibility */ -enum wxBorder -{ - /* this is different from wxBORDER_NONE as by default the controls do have */ - /* border */ - wxBORDER_DEFAULT = 0, - - wxBORDER_NONE = 0x00200000, - wxBORDER_STATIC = 0x01000000, - wxBORDER_SIMPLE = 0x02000000, - wxBORDER_RAISED = 0x04000000, - wxBORDER_SUNKEN = 0x08000000, - wxBORDER_DOUBLE = 0x10000000, /* deprecated */ - wxBORDER_THEME = wxBORDER_DOUBLE, - - /* a mask to extract border style from the combination of flags */ - wxBORDER_MASK = 0x1f200000 -}; - -/* This makes it easier to specify a 'normal' border for a control */ -#define wxDEFAULT_CONTROL_BORDER wxBORDER_SUNKEN - -/* ---------------------------------------------------------------------------- */ -/* Window style flags */ -/* ---------------------------------------------------------------------------- */ - -/* - * Values are chosen so they can be |'ed in a bit list. - * Some styles are used across more than one group, - * so the values mustn't clash with others in the group. - * Otherwise, numbers can be reused across groups. - */ - -/* - Summary of the bits used by various styles. - - High word, containing styles which can be used with many windows: - - +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ - |31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16| - +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ - | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | \_ wxFULL_REPAINT_ON_RESIZE - | | | | | | | | | | | | | | \____ wxPOPUP_WINDOW - | | | | | | | | | | | | | \_______ wxWANTS_CHARS - | | | | | | | | | | | | \__________ wxTAB_TRAVERSAL - | | | | | | | | | | | \_____________ wxTRANSPARENT_WINDOW - | | | | | | | | | | \________________ wxBORDER_NONE - | | | | | | | | | \___________________ wxCLIP_CHILDREN - | | | | | | | | \______________________ wxALWAYS_SHOW_SB - | | | | | | | \_________________________ wxBORDER_STATIC - | | | | | | \____________________________ wxBORDER_SIMPLE - | | | | | \_______________________________ wxBORDER_RAISED - | | | | \__________________________________ wxBORDER_SUNKEN - | | | \_____________________________________ wxBORDER_{DOUBLE,THEME} - | | \________________________________________ wxCAPTION/wxCLIP_SIBLINGS - | \___________________________________________ wxHSCROLL - \______________________________________________ wxVSCROLL - - - Low word style bits is class-specific meaning that the same bit can have - different meanings for different controls (e.g. 0x10 is wxCB_READONLY - meaning that the control can't be modified for wxComboBox but wxLB_SORT - meaning that the control should be kept sorted for wxListBox, while - wxLB_SORT has a different value -- and this is just fine). - */ - -/* - * Window (Frame/dialog/subwindow/panel item) style flags - */ - -/* The cast is needed to avoid g++ -Wnarrowing warnings when initializing - * values of int type with wxVSCROLL on 32 bit platforms, where its value is - * greater than INT_MAX. - */ -#define wxVSCROLL ((int)0x80000000) -#define wxHSCROLL 0x40000000 -#define wxCAPTION 0x20000000 - -/* New styles (border styles are now in their own enum) */ -#define wxDOUBLE_BORDER wxBORDER_DOUBLE -#define wxSUNKEN_BORDER wxBORDER_SUNKEN -#define wxRAISED_BORDER wxBORDER_RAISED -#define wxBORDER wxBORDER_SIMPLE -#define wxSIMPLE_BORDER wxBORDER_SIMPLE -#define wxSTATIC_BORDER wxBORDER_STATIC -#define wxNO_BORDER wxBORDER_NONE - -/* wxALWAYS_SHOW_SB: instead of hiding the scrollbar when it is not needed, */ -/* disable it - but still show (see also wxLB_ALWAYS_SB style) */ -/* */ -/* NB: as this style is only supported by wxUniversal and wxMSW so far */ -#define wxALWAYS_SHOW_SB 0x00800000 - -/* Clip children when painting, which reduces flicker in e.g. frames and */ -/* splitter windows, but can't be used in a panel where a static box must be */ -/* 'transparent' (panel paints the background for it) */ -#define wxCLIP_CHILDREN 0x00400000 - -/* Note we're reusing the wxCAPTION style because we won't need captions */ -/* for subwindows/controls */ -#define wxCLIP_SIBLINGS 0x20000000 - -#define wxTRANSPARENT_WINDOW 0x00100000 - -/* Add this style to a panel to get tab traversal working outside of dialogs */ -/* (on by default for wxPanel, wxDialog, wxScrolledWindow) */ -#define wxTAB_TRAVERSAL 0x00080000 - -/* Add this style if the control wants to get all keyboard messages (under */ -/* Windows, it won't normally get the dialog navigation key events) */ -#define wxWANTS_CHARS 0x00040000 - -/* Make window retained (Motif only, see src/generic/scrolwing.cpp) - * This is non-zero only under wxMotif, to avoid a clash with wxPOPUP_WINDOW - * on other platforms - */ - -#ifdef __WXMOTIF__ -#define wxRETAINED 0x00020000 -#else -#define wxRETAINED 0x00000000 -#endif -#define wxBACKINGSTORE wxRETAINED - -/* set this flag to create a special popup window: it will be always shown on */ -/* top of other windows, will capture the mouse and will be dismissed when the */ -/* mouse is clicked outside of it or if it loses focus in any other way */ -#define wxPOPUP_WINDOW 0x00020000 - -/* force a full repaint when the window is resized (instead of repainting just */ -/* the invalidated area) */ -#define wxFULL_REPAINT_ON_RESIZE 0x00010000 - -/* obsolete: now this is the default behaviour */ -/* */ -/* don't invalidate the whole window (resulting in a PAINT event) when the */ -/* window is resized (currently, makes sense for wxMSW only) */ -#define wxNO_FULL_REPAINT_ON_RESIZE 0 - -/* A mask which can be used to filter (out) all wxWindow-specific styles. - */ -#define wxWINDOW_STYLE_MASK \ - (wxVSCROLL|wxHSCROLL|wxBORDER_MASK|wxALWAYS_SHOW_SB|wxCLIP_CHILDREN| \ - wxCLIP_SIBLINGS|wxTRANSPARENT_WINDOW|wxTAB_TRAVERSAL|wxWANTS_CHARS| \ - wxRETAINED|wxPOPUP_WINDOW|wxFULL_REPAINT_ON_RESIZE) - -/* - * Extra window style flags (use wxWS_EX prefix to make it clear that they - * should be passed to wxWindow::SetExtraStyle(), not SetWindowStyle()) - */ - -/* This flag is obsolete as recursive validation is now the default (and only - * possible) behaviour. Simply don't use it any more in the new code. */ -#define wxWS_EX_VALIDATE_RECURSIVELY 0x00000000 /* used to be 1 */ - -/* wxCommandEvents and the objects of the derived classes are forwarded to the */ -/* parent window and so on recursively by default. Using this flag for the */ -/* given window allows to block this propagation at this window, i.e. prevent */ -/* the events from being propagated further upwards. The dialogs have this */ -/* flag on by default. */ -#define wxWS_EX_BLOCK_EVENTS 0x00000002 - -/* don't use this window as an implicit parent for the other windows: this must */ -/* be used with transient windows as otherwise there is the risk of creating a */ -/* dialog/frame with this window as a parent which would lead to a crash if the */ -/* parent is destroyed before the child */ -#define wxWS_EX_TRANSIENT 0x00000004 - -/* don't paint the window background, we'll assume it will */ -/* be done by a theming engine. This is not yet used but could */ -/* possibly be made to work in the future, at least on Windows */ -#define wxWS_EX_THEMED_BACKGROUND 0x00000008 - -/* this window should always process idle events */ -#define wxWS_EX_PROCESS_IDLE 0x00000010 - -/* this window should always process UI update events */ -#define wxWS_EX_PROCESS_UI_UPDATES 0x00000020 - -/* Draw the window in a metal theme on Mac */ -#define wxFRAME_EX_METAL 0x00000040 -#define wxDIALOG_EX_METAL 0x00000040 - -/* Use this style to add a context-sensitive help to the window (currently for */ -/* Win32 only and it doesn't work if wxMINIMIZE_BOX or wxMAXIMIZE_BOX are used) */ -#define wxWS_EX_CONTEXTHELP 0x00000080 - -/* synonyms for wxWS_EX_CONTEXTHELP for compatibility */ -#define wxFRAME_EX_CONTEXTHELP wxWS_EX_CONTEXTHELP -#define wxDIALOG_EX_CONTEXTHELP wxWS_EX_CONTEXTHELP - -/* Create a window which is attachable to another top level window */ -#define wxFRAME_DRAWER 0x0020 - -/* - * MDI parent frame style flags - * Can overlap with some of the above. - */ - -#define wxFRAME_NO_WINDOW_MENU 0x0100 - -/* - * wxMenuBar style flags - */ -/* use native docking */ -#define wxMB_DOCKABLE 0x0001 - -/* - * wxMenu style flags - */ -#define wxMENU_TEAROFF 0x0001 - -/* - * Apply to all panel items - */ -#define wxCOLOURED 0x0800 -#define wxFIXED_LENGTH 0x0400 - -/* - * Styles for wxListBox - */ -#define wxLB_SORT 0x0010 -#define wxLB_SINGLE 0x0020 -#define wxLB_MULTIPLE 0x0040 -#define wxLB_EXTENDED 0x0080 -/* wxLB_OWNERDRAW is Windows-only */ -#define wxLB_NEEDED_SB 0x0000 -#define wxLB_OWNERDRAW 0x0100 -#define wxLB_ALWAYS_SB 0x0200 -#define wxLB_NO_SB 0x0400 -#define wxLB_HSCROLL wxHSCROLL -/* always show an entire number of rows */ -#define wxLB_INT_HEIGHT 0x0800 - -/* - * wxComboBox style flags - */ -#define wxCB_SIMPLE 0x0004 -#define wxCB_SORT 0x0008 -#define wxCB_READONLY 0x0010 -#define wxCB_DROPDOWN 0x0020 - -/* - * wxRadioBox style flags - */ -/* should we number the items from left to right or from top to bottom in a 2d */ -/* radiobox? */ -#define wxRA_LEFTTORIGHT 0x0001 -#define wxRA_TOPTOBOTTOM 0x0002 - -/* New, more intuitive names to specify majorDim argument */ -#define wxRA_SPECIFY_COLS wxHORIZONTAL -#define wxRA_SPECIFY_ROWS wxVERTICAL - -/* Old names for compatibility */ -#define wxRA_HORIZONTAL wxHORIZONTAL -#define wxRA_VERTICAL wxVERTICAL - -/* - * wxRadioButton style flag - */ -#define wxRB_GROUP 0x0004 -#define wxRB_SINGLE 0x0008 - -/* - * wxScrollBar flags - */ -#define wxSB_HORIZONTAL wxHORIZONTAL -#define wxSB_VERTICAL wxVERTICAL - -/* - * wxSpinButton flags. - * Note that a wxSpinCtrl is sometimes defined as a wxTextCtrl, and so the - * flags shouldn't overlap with wxTextCtrl flags that can be used for a single - * line controls (currently we reuse wxTE_CHARWRAP and wxTE_RICH2 neither of - * which makes sense for them). - */ -#define wxSP_HORIZONTAL wxHORIZONTAL /* 4 */ -#define wxSP_VERTICAL wxVERTICAL /* 8 */ -#define wxSP_ARROW_KEYS 0x4000 -#define wxSP_WRAP 0x8000 - -/* - * wxTabCtrl flags - */ -#define wxTC_RIGHTJUSTIFY 0x0010 -#define wxTC_FIXEDWIDTH 0x0020 -#define wxTC_TOP 0x0000 /* default */ -#define wxTC_LEFT 0x0020 -#define wxTC_RIGHT 0x0040 -#define wxTC_BOTTOM 0x0080 -#define wxTC_MULTILINE 0x0200 /* == wxNB_MULTILINE */ -#define wxTC_OWNERDRAW 0x0400 - -/* - * wxStaticBitmap flags - */ -#define wxBI_EXPAND wxEXPAND - -/* - * wxStaticLine flags - */ -#define wxLI_HORIZONTAL wxHORIZONTAL -#define wxLI_VERTICAL wxVERTICAL - - -/* - * extended dialog specifiers. these values are stored in a different - * flag and thus do not overlap with other style flags. note that these - * values do not correspond to the return values of the dialogs (for - * those values, look at the wxID_XXX defines). - */ - -/* wxCENTRE already defined as 0x00000001 */ -#define wxYES 0x00000002 -#define wxOK 0x00000004 -#define wxNO 0x00000008 -#define wxYES_NO (wxYES | wxNO) -#define wxCANCEL 0x00000010 -#define wxAPPLY 0x00000020 -#define wxCLOSE 0x00000040 - -#define wxOK_DEFAULT 0x00000000 /* has no effect (default) */ -#define wxYES_DEFAULT 0x00000000 /* has no effect (default) */ -#define wxNO_DEFAULT 0x00000080 /* only valid with wxYES_NO */ -#define wxCANCEL_DEFAULT 0x80000000 /* only valid with wxCANCEL */ - -#define wxICON_WARNING 0x00000100 -#define wxICON_ERROR 0x00000200 -#define wxICON_QUESTION 0x00000400 -#define wxICON_INFORMATION 0x00000800 -#define wxICON_EXCLAMATION wxICON_WARNING -#define wxICON_HAND wxICON_ERROR -#define wxICON_STOP wxICON_ERROR -#define wxICON_ASTERISK wxICON_INFORMATION - -#define wxHELP 0x00001000 -#define wxFORWARD 0x00002000 -#define wxBACKWARD 0x00004000 -#define wxRESET 0x00008000 -#define wxMORE 0x00010000 -#define wxSETUP 0x00020000 -#define wxICON_NONE 0x00040000 -#define wxICON_AUTH_NEEDED 0x00080000 - -#define wxICON_MASK \ - (wxICON_EXCLAMATION|wxICON_HAND|wxICON_QUESTION|wxICON_INFORMATION|wxICON_NONE|wxICON_AUTH_NEEDED) - -/* - * Background styles. See wxWindow::SetBackgroundStyle - */ -enum wxBackgroundStyle -{ - /* - background is erased in the EVT_ERASE_BACKGROUND handler or using - the system default background if no such handler is defined (this - is the default style) - */ - wxBG_STYLE_ERASE, - - /* - background is erased by the system, no EVT_ERASE_BACKGROUND event - is generated at all - */ - wxBG_STYLE_SYSTEM, - - /* - background is erased in EVT_PAINT handler and not erased at all - before it, this should be used if the paint handler paints over - the entire window to avoid flicker - */ - wxBG_STYLE_PAINT, - - /* - Indicates that the window background is not erased, letting the parent - window show through. - */ - wxBG_STYLE_TRANSPARENT, - - /* this style is deprecated and doesn't do anything, don't use */ - wxBG_STYLE_COLOUR, - - /* - this style is deprecated and is synonymous with - wxBG_STYLE_PAINT, use the new name - */ - wxBG_STYLE_CUSTOM = wxBG_STYLE_PAINT -}; - -/* - * Key types used by (old style) lists and hashes. - */ -enum wxKeyType -{ - wxKEY_NONE, - wxKEY_INTEGER, - wxKEY_STRING -}; - -/* ---------------------------------------------------------------------------- */ -/* standard IDs */ -/* ---------------------------------------------------------------------------- */ - -/* Standard menu IDs */ -enum wxStandardID -{ - /* - These ids delimit the range used by automatically-generated ids - (i.e. those used when wxID_ANY is specified during construction). - */ -#if defined(__WXMSW__) || wxUSE_AUTOID_MANAGEMENT - /* - On MSW the range is always restricted no matter if id management - is used or not because the native window ids are limited to short - range. On other platforms the range is only restricted if id - management is used so the reference count buffer won't be so big. - */ - wxID_AUTO_LOWEST = -32000, - wxID_AUTO_HIGHEST = -2000, -#else - wxID_AUTO_LOWEST = -1000000, - wxID_AUTO_HIGHEST = -2000, -#endif - - /* no id matches this one when compared to it */ - wxID_NONE = -3, - - /* id for a separator line in the menu (invalid for normal item) */ - wxID_SEPARATOR = -2, - - /* any id: means that we don't care about the id, whether when installing - * an event handler or when creating a new window */ - wxID_ANY = -1, - - - /* all predefined ids are between wxID_LOWEST and wxID_HIGHEST */ - wxID_LOWEST = 4999, - - wxID_OPEN, - wxID_CLOSE, - wxID_NEW, - wxID_SAVE, - wxID_SAVEAS, - wxID_REVERT, - wxID_EXIT, - wxID_UNDO, - wxID_REDO, - wxID_HELP, - wxID_PRINT, - wxID_PRINT_SETUP, - wxID_PAGE_SETUP, - wxID_PREVIEW, - wxID_ABOUT, - wxID_HELP_CONTENTS, - wxID_HELP_INDEX, - wxID_HELP_SEARCH, - wxID_HELP_COMMANDS, - wxID_HELP_PROCEDURES, - wxID_HELP_CONTEXT, - wxID_CLOSE_ALL, - wxID_PREFERENCES, - - wxID_EDIT = 5030, - wxID_CUT, - wxID_COPY, - wxID_PASTE, - wxID_CLEAR, - wxID_FIND, - wxID_DUPLICATE, - wxID_SELECTALL, - wxID_DELETE, - wxID_REPLACE, - wxID_REPLACE_ALL, - wxID_PROPERTIES, - - wxID_VIEW_DETAILS, - wxID_VIEW_LARGEICONS, - wxID_VIEW_SMALLICONS, - wxID_VIEW_LIST, - wxID_VIEW_SORTDATE, - wxID_VIEW_SORTNAME, - wxID_VIEW_SORTSIZE, - wxID_VIEW_SORTTYPE, - - wxID_FILE = 5050, - wxID_FILE1, - wxID_FILE2, - wxID_FILE3, - wxID_FILE4, - wxID_FILE5, - wxID_FILE6, - wxID_FILE7, - wxID_FILE8, - wxID_FILE9, - - /* Standard button and menu IDs */ - wxID_OK = 5100, - wxID_CANCEL, - wxID_APPLY, - wxID_YES, - wxID_NO, - wxID_STATIC, - wxID_FORWARD, - wxID_BACKWARD, - wxID_DEFAULT, - wxID_MORE, - wxID_SETUP, - wxID_RESET, - wxID_CONTEXT_HELP, - wxID_YESTOALL, - wxID_NOTOALL, - wxID_ABORT, - wxID_RETRY, - wxID_IGNORE, - wxID_ADD, - wxID_REMOVE, - - wxID_UP, - wxID_DOWN, - wxID_HOME, - wxID_REFRESH, - wxID_STOP, - wxID_INDEX, - - wxID_BOLD, - wxID_ITALIC, - wxID_JUSTIFY_CENTER, - wxID_JUSTIFY_FILL, - wxID_JUSTIFY_RIGHT, - wxID_JUSTIFY_LEFT, - wxID_UNDERLINE, - wxID_INDENT, - wxID_UNINDENT, - wxID_ZOOM_100, - wxID_ZOOM_FIT, - wxID_ZOOM_IN, - wxID_ZOOM_OUT, - wxID_UNDELETE, - wxID_REVERT_TO_SAVED, - wxID_CDROM, - wxID_CONVERT, - wxID_EXECUTE, - wxID_FLOPPY, - wxID_HARDDISK, - wxID_BOTTOM, - wxID_FIRST, - wxID_LAST, - wxID_TOP, - wxID_INFO, - wxID_JUMP_TO, - wxID_NETWORK, - wxID_SELECT_COLOR, - wxID_SELECT_FONT, - wxID_SORT_ASCENDING, - wxID_SORT_DESCENDING, - wxID_SPELL_CHECK, - wxID_STRIKETHROUGH, - - /* System menu IDs (used by wxUniv): */ - wxID_SYSTEM_MENU = 5200, - wxID_CLOSE_FRAME, - wxID_MOVE_FRAME, - wxID_RESIZE_FRAME, - wxID_MAXIMIZE_FRAME, - wxID_ICONIZE_FRAME, - wxID_RESTORE_FRAME, - - /* MDI window menu ids */ - wxID_MDI_WINDOW_FIRST = 5230, - wxID_MDI_WINDOW_CASCADE = wxID_MDI_WINDOW_FIRST, - wxID_MDI_WINDOW_TILE_HORZ, - wxID_MDI_WINDOW_TILE_VERT, - wxID_MDI_WINDOW_ARRANGE_ICONS, - wxID_MDI_WINDOW_PREV, - wxID_MDI_WINDOW_NEXT, - wxID_MDI_WINDOW_LAST = wxID_MDI_WINDOW_NEXT, - - /* OS X system menu ids */ - wxID_OSX_MENU_FIRST = 5250, - wxID_OSX_HIDE = wxID_OSX_MENU_FIRST, - wxID_OSX_HIDEOTHERS, - wxID_OSX_SHOWALL, -#if wxABI_VERSION >= 30001 - wxID_OSX_SERVICES, - wxID_OSX_MENU_LAST = wxID_OSX_SERVICES, -#else - wxID_OSX_MENU_LAST = wxID_OSX_SHOWALL, -#endif - - /* IDs used by generic file dialog (13 consecutive starting from this value) */ - wxID_FILEDLGG = 5900, - - /* IDs used by generic file ctrl (4 consecutive starting from this value) */ - wxID_FILECTRL = 5950, - - wxID_HIGHEST = 5999 -}; - -/* ---------------------------------------------------------------------------- */ -/* wxWindowID type */ -/* ---------------------------------------------------------------------------- */ - -/* - * wxWindowID used to be just a typedef defined here, now it's a class, but we - * still continue to define it here for compatibility, so that the code using - * it continues to compile even if it includes just wx/defs.h. - * - * Notice that wx/windowid.h can only be included after wxID_XYZ definitions - * (as it uses them). - */ -#if defined(__cplusplus) && wxUSE_GUI - #include "wx/windowid.h" -#endif - -/* ---------------------------------------------------------------------------- */ -/* other constants */ -/* ---------------------------------------------------------------------------- */ - -/* menu and toolbar item kinds */ -enum wxItemKind -{ - wxITEM_SEPARATOR = -1, - wxITEM_NORMAL, - wxITEM_CHECK, - wxITEM_RADIO, - wxITEM_DROPDOWN, - wxITEM_MAX -}; - -/* - * The possible states of a 3-state checkbox (Compatible - * with the 2-state checkbox). - */ -enum wxCheckBoxState -{ - wxCHK_UNCHECKED, - wxCHK_CHECKED, - wxCHK_UNDETERMINED /* 3-state checkbox only */ -}; - - -/* hit test results */ -enum wxHitTest -{ - wxHT_NOWHERE, - - /* scrollbar */ - wxHT_SCROLLBAR_FIRST = wxHT_NOWHERE, - wxHT_SCROLLBAR_ARROW_LINE_1, /* left or upper arrow to scroll by line */ - wxHT_SCROLLBAR_ARROW_LINE_2, /* right or down */ - wxHT_SCROLLBAR_ARROW_PAGE_1, /* left or upper arrow to scroll by page */ - wxHT_SCROLLBAR_ARROW_PAGE_2, /* right or down */ - wxHT_SCROLLBAR_THUMB, /* on the thumb */ - wxHT_SCROLLBAR_BAR_1, /* bar to the left/above the thumb */ - wxHT_SCROLLBAR_BAR_2, /* bar to the right/below the thumb */ - wxHT_SCROLLBAR_LAST, - - /* window */ - wxHT_WINDOW_OUTSIDE, /* not in this window at all */ - wxHT_WINDOW_INSIDE, /* in the client area */ - wxHT_WINDOW_VERT_SCROLLBAR, /* on the vertical scrollbar */ - wxHT_WINDOW_HORZ_SCROLLBAR, /* on the horizontal scrollbar */ - wxHT_WINDOW_CORNER, /* on the corner between 2 scrollbars */ - - wxHT_MAX -}; - -/* ---------------------------------------------------------------------------- */ -/* Possible SetSize flags */ -/* ---------------------------------------------------------------------------- */ - -/* Use internally-calculated width if -1 */ -#define wxSIZE_AUTO_WIDTH 0x0001 -/* Use internally-calculated height if -1 */ -#define wxSIZE_AUTO_HEIGHT 0x0002 -/* Use internally-calculated width and height if each is -1 */ -#define wxSIZE_AUTO (wxSIZE_AUTO_WIDTH|wxSIZE_AUTO_HEIGHT) -/* Ignore missing (-1) dimensions (use existing). */ -/* For readability only: test for wxSIZE_AUTO_WIDTH/HEIGHT in code. */ -#define wxSIZE_USE_EXISTING 0x0000 -/* Allow -1 as a valid position */ -#define wxSIZE_ALLOW_MINUS_ONE 0x0004 -/* Don't do parent client adjustments (for implementation only) */ -#define wxSIZE_NO_ADJUSTMENTS 0x0008 -/* Change the window position even if it seems to be already correct */ -#define wxSIZE_FORCE 0x0010 -/* Emit size event even if size didn't change */ -#define wxSIZE_FORCE_EVENT 0x0020 - -/* ---------------------------------------------------------------------------- */ -/* GDI descriptions */ -/* ---------------------------------------------------------------------------- */ - -// Hatch styles used by both pen and brush styles. -// -// NB: Do not use these constants directly, they're for internal use only, use -// wxBRUSHSTYLE_XXX_HATCH and wxPENSTYLE_XXX_HATCH instead. -enum wxHatchStyle -{ - wxHATCHSTYLE_INVALID = -1, - - /* - The value of the first style is chosen to fit with - wxDeprecatedGUIConstants values below, don't change it. - */ - wxHATCHSTYLE_FIRST = 111, - wxHATCHSTYLE_BDIAGONAL = wxHATCHSTYLE_FIRST, - wxHATCHSTYLE_CROSSDIAG, - wxHATCHSTYLE_FDIAGONAL, - wxHATCHSTYLE_CROSS, - wxHATCHSTYLE_HORIZONTAL, - wxHATCHSTYLE_VERTICAL, - wxHATCHSTYLE_LAST = wxHATCHSTYLE_VERTICAL -}; - -/* - WARNING: the following styles are deprecated; use the - wxFontFamily, wxFontStyle, wxFontWeight, wxBrushStyle, - wxPenStyle, wxPenCap, wxPenJoin enum values instead! -*/ - -/* don't use any elements of this enum in the new code */ -enum wxDeprecatedGUIConstants -{ - /* Text font families */ - wxDEFAULT = 70, - wxDECORATIVE, - wxROMAN, - wxSCRIPT, - wxSWISS, - wxMODERN, - wxTELETYPE, /* @@@@ */ - - /* Proportional or Fixed width fonts (not yet used) */ - wxVARIABLE = 80, - wxFIXED, - - wxNORMAL = 90, - wxLIGHT, - wxBOLD, - /* Also wxNORMAL for normal (non-italic text) */ - wxITALIC, - wxSLANT, - - /* Pen styles */ - wxSOLID = 100, - wxDOT, - wxLONG_DASH, - wxSHORT_DASH, - wxDOT_DASH, - wxUSER_DASH, - - wxTRANSPARENT, - - /* Brush & Pen Stippling. Note that a stippled pen cannot be dashed!! */ - /* Note also that stippling a Pen IS meaningful, because a Line is */ - wxSTIPPLE_MASK_OPAQUE, /* mask is used for blitting monochrome using text fore and back ground colors */ - wxSTIPPLE_MASK, /* mask is used for masking areas in the stipple bitmap (TO DO) */ - /* drawn with a Pen, and without any Brush -- and it can be stippled. */ - wxSTIPPLE = 110, - - wxBDIAGONAL_HATCH = wxHATCHSTYLE_BDIAGONAL, - wxCROSSDIAG_HATCH = wxHATCHSTYLE_CROSSDIAG, - wxFDIAGONAL_HATCH = wxHATCHSTYLE_FDIAGONAL, - wxCROSS_HATCH = wxHATCHSTYLE_CROSS, - wxHORIZONTAL_HATCH = wxHATCHSTYLE_HORIZONTAL, - wxVERTICAL_HATCH = wxHATCHSTYLE_VERTICAL, - wxFIRST_HATCH = wxHATCHSTYLE_FIRST, - wxLAST_HATCH = wxHATCHSTYLE_LAST -}; - -/* ToolPanel in wxFrame (VZ: unused?) */ -enum -{ - wxTOOL_TOP = 1, - wxTOOL_BOTTOM, - wxTOOL_LEFT, - wxTOOL_RIGHT -}; - -/* the values of the format constants should be the same as corresponding */ -/* CF_XXX constants in Windows API */ -enum wxDataFormatId -{ - wxDF_INVALID = 0, - wxDF_TEXT = 1, /* CF_TEXT */ - wxDF_BITMAP = 2, /* CF_BITMAP */ - wxDF_METAFILE = 3, /* CF_METAFILEPICT */ - wxDF_SYLK = 4, - wxDF_DIF = 5, - wxDF_TIFF = 6, - wxDF_OEMTEXT = 7, /* CF_OEMTEXT */ - wxDF_DIB = 8, /* CF_DIB */ - wxDF_PALETTE = 9, - wxDF_PENDATA = 10, - wxDF_RIFF = 11, - wxDF_WAVE = 12, - wxDF_UNICODETEXT = 13, - wxDF_ENHMETAFILE = 14, - wxDF_FILENAME = 15, /* CF_HDROP */ - wxDF_LOCALE = 16, - wxDF_PRIVATE = 20, - wxDF_HTML = 30, /* Note: does not correspond to CF_ constant */ - wxDF_MAX -}; - -/* Key codes */ -enum wxKeyCode -{ - WXK_NONE = 0, - - WXK_CONTROL_A = 1, - WXK_CONTROL_B, - WXK_CONTROL_C, - WXK_CONTROL_D, - WXK_CONTROL_E, - WXK_CONTROL_F, - WXK_CONTROL_G, - WXK_CONTROL_H, - WXK_CONTROL_I, - WXK_CONTROL_J, - WXK_CONTROL_K, - WXK_CONTROL_L, - WXK_CONTROL_M, - WXK_CONTROL_N, - WXK_CONTROL_O, - WXK_CONTROL_P, - WXK_CONTROL_Q, - WXK_CONTROL_R, - WXK_CONTROL_S, - WXK_CONTROL_T, - WXK_CONTROL_U, - WXK_CONTROL_V, - WXK_CONTROL_W, - WXK_CONTROL_X, - WXK_CONTROL_Y, - WXK_CONTROL_Z, - - WXK_BACK = 8, /* backspace */ - WXK_TAB = 9, - WXK_RETURN = 13, - WXK_ESCAPE = 27, - - /* values from 33 to 126 are reserved for the standard ASCII characters */ - - WXK_SPACE = 32, - WXK_DELETE = 127, - - /* values from 128 to 255 are reserved for ASCII extended characters - (note that there isn't a single fixed standard for the meaning - of these values; avoid them in portable apps!) */ - - /* These are not compatible with unicode characters. - If you want to get a unicode character from a key event, use - wxKeyEvent::GetUnicodeKey */ - WXK_START = 300, - WXK_LBUTTON, - WXK_RBUTTON, - WXK_CANCEL, - WXK_MBUTTON, - WXK_CLEAR, - WXK_SHIFT, - WXK_ALT, - WXK_CONTROL, - WXK_MENU, - WXK_PAUSE, - WXK_CAPITAL, - WXK_END, - WXK_HOME, - WXK_LEFT, - WXK_UP, - WXK_RIGHT, - WXK_DOWN, - WXK_SELECT, - WXK_PRINT, - WXK_EXECUTE, - WXK_SNAPSHOT, - WXK_INSERT, - WXK_HELP, - WXK_NUMPAD0, - WXK_NUMPAD1, - WXK_NUMPAD2, - WXK_NUMPAD3, - WXK_NUMPAD4, - WXK_NUMPAD5, - WXK_NUMPAD6, - WXK_NUMPAD7, - WXK_NUMPAD8, - WXK_NUMPAD9, - WXK_MULTIPLY, - WXK_ADD, - WXK_SEPARATOR, - WXK_SUBTRACT, - WXK_DECIMAL, - WXK_DIVIDE, - WXK_F1, - WXK_F2, - WXK_F3, - WXK_F4, - WXK_F5, - WXK_F6, - WXK_F7, - WXK_F8, - WXK_F9, - WXK_F10, - WXK_F11, - WXK_F12, - WXK_F13, - WXK_F14, - WXK_F15, - WXK_F16, - WXK_F17, - WXK_F18, - WXK_F19, - WXK_F20, - WXK_F21, - WXK_F22, - WXK_F23, - WXK_F24, - WXK_NUMLOCK, - WXK_SCROLL, - WXK_PAGEUP, - WXK_PAGEDOWN, - WXK_NUMPAD_SPACE, - WXK_NUMPAD_TAB, - WXK_NUMPAD_ENTER, - WXK_NUMPAD_F1, - WXK_NUMPAD_F2, - WXK_NUMPAD_F3, - WXK_NUMPAD_F4, - WXK_NUMPAD_HOME, - WXK_NUMPAD_LEFT, - WXK_NUMPAD_UP, - WXK_NUMPAD_RIGHT, - WXK_NUMPAD_DOWN, - WXK_NUMPAD_PAGEUP, - WXK_NUMPAD_PAGEDOWN, - WXK_NUMPAD_END, - WXK_NUMPAD_BEGIN, - WXK_NUMPAD_INSERT, - WXK_NUMPAD_DELETE, - WXK_NUMPAD_EQUAL, - WXK_NUMPAD_MULTIPLY, - WXK_NUMPAD_ADD, - WXK_NUMPAD_SEPARATOR, - WXK_NUMPAD_SUBTRACT, - WXK_NUMPAD_DECIMAL, - WXK_NUMPAD_DIVIDE, - - WXK_WINDOWS_LEFT, - WXK_WINDOWS_RIGHT, - WXK_WINDOWS_MENU , -#ifdef __WXOSX__ - WXK_RAW_CONTROL, -#else - WXK_RAW_CONTROL = WXK_CONTROL, -#endif - WXK_COMMAND = WXK_CONTROL, - - /* Hardware-specific buttons */ - WXK_SPECIAL1 = WXK_WINDOWS_MENU + 2, /* Skip WXK_RAW_CONTROL if necessary */ - WXK_SPECIAL2, - WXK_SPECIAL3, - WXK_SPECIAL4, - WXK_SPECIAL5, - WXK_SPECIAL6, - WXK_SPECIAL7, - WXK_SPECIAL8, - WXK_SPECIAL9, - WXK_SPECIAL10, - WXK_SPECIAL11, - WXK_SPECIAL12, - WXK_SPECIAL13, - WXK_SPECIAL14, - WXK_SPECIAL15, - WXK_SPECIAL16, - WXK_SPECIAL17, - WXK_SPECIAL18, - WXK_SPECIAL19, - WXK_SPECIAL20, - - WXK_BROWSER_BACK, - WXK_BROWSER_FORWARD, - WXK_BROWSER_REFRESH, - WXK_BROWSER_STOP, - WXK_BROWSER_SEARCH, - WXK_BROWSER_FAVORITES, - WXK_BROWSER_HOME, - WXK_VOLUME_MUTE, - WXK_VOLUME_DOWN, - WXK_VOLUME_UP, - WXK_MEDIA_NEXT_TRACK, - WXK_MEDIA_PREV_TRACK, - WXK_MEDIA_STOP, - WXK_MEDIA_PLAY_PAUSE, - WXK_LAUNCH_MAIL, - WXK_LAUNCH_APP1, - WXK_LAUNCH_APP2 -}; - -/* This enum contains bit mask constants used in wxKeyEvent */ -enum wxKeyModifier -{ - wxMOD_NONE = 0x0000, - wxMOD_ALT = 0x0001, - wxMOD_CONTROL = 0x0002, - wxMOD_ALTGR = wxMOD_ALT | wxMOD_CONTROL, - wxMOD_SHIFT = 0x0004, - wxMOD_META = 0x0008, - wxMOD_WIN = wxMOD_META, -#if defined(__WXMAC__) - wxMOD_RAW_CONTROL = 0x0010, -#else - wxMOD_RAW_CONTROL = wxMOD_CONTROL, -#endif - wxMOD_CMD = wxMOD_CONTROL, - wxMOD_ALL = 0xffff -}; - -/* Shortcut for easier dialog-unit-to-pixel conversion */ -#define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt) - -/* Paper types */ -enum wxPaperSize -{ - wxPAPER_NONE, /* Use specific dimensions */ - wxPAPER_LETTER, /* Letter, 8 1/2 by 11 inches */ - wxPAPER_LEGAL, /* Legal, 8 1/2 by 14 inches */ - wxPAPER_A4, /* A4 Sheet, 210 by 297 millimeters */ - wxPAPER_CSHEET, /* C Sheet, 17 by 22 inches */ - wxPAPER_DSHEET, /* D Sheet, 22 by 34 inches */ - wxPAPER_ESHEET, /* E Sheet, 34 by 44 inches */ - wxPAPER_LETTERSMALL, /* Letter Small, 8 1/2 by 11 inches */ - wxPAPER_TABLOID, /* Tabloid, 11 by 17 inches */ - wxPAPER_LEDGER, /* Ledger, 17 by 11 inches */ - wxPAPER_STATEMENT, /* Statement, 5 1/2 by 8 1/2 inches */ - wxPAPER_EXECUTIVE, /* Executive, 7 1/4 by 10 1/2 inches */ - wxPAPER_A3, /* A3 sheet, 297 by 420 millimeters */ - wxPAPER_A4SMALL, /* A4 small sheet, 210 by 297 millimeters */ - wxPAPER_A5, /* A5 sheet, 148 by 210 millimeters */ - wxPAPER_B4, /* B4 sheet, 250 by 354 millimeters */ - wxPAPER_B5, /* B5 sheet, 182-by-257-millimeter paper */ - wxPAPER_FOLIO, /* Folio, 8-1/2-by-13-inch paper */ - wxPAPER_QUARTO, /* Quarto, 215-by-275-millimeter paper */ - wxPAPER_10X14, /* 10-by-14-inch sheet */ - wxPAPER_11X17, /* 11-by-17-inch sheet */ - wxPAPER_NOTE, /* Note, 8 1/2 by 11 inches */ - wxPAPER_ENV_9, /* #9 Envelope, 3 7/8 by 8 7/8 inches */ - wxPAPER_ENV_10, /* #10 Envelope, 4 1/8 by 9 1/2 inches */ - wxPAPER_ENV_11, /* #11 Envelope, 4 1/2 by 10 3/8 inches */ - wxPAPER_ENV_12, /* #12 Envelope, 4 3/4 by 11 inches */ - wxPAPER_ENV_14, /* #14 Envelope, 5 by 11 1/2 inches */ - wxPAPER_ENV_DL, /* DL Envelope, 110 by 220 millimeters */ - wxPAPER_ENV_C5, /* C5 Envelope, 162 by 229 millimeters */ - wxPAPER_ENV_C3, /* C3 Envelope, 324 by 458 millimeters */ - wxPAPER_ENV_C4, /* C4 Envelope, 229 by 324 millimeters */ - wxPAPER_ENV_C6, /* C6 Envelope, 114 by 162 millimeters */ - wxPAPER_ENV_C65, /* C65 Envelope, 114 by 229 millimeters */ - wxPAPER_ENV_B4, /* B4 Envelope, 250 by 353 millimeters */ - wxPAPER_ENV_B5, /* B5 Envelope, 176 by 250 millimeters */ - wxPAPER_ENV_B6, /* B6 Envelope, 176 by 125 millimeters */ - wxPAPER_ENV_ITALY, /* Italy Envelope, 110 by 230 millimeters */ - wxPAPER_ENV_MONARCH, /* Monarch Envelope, 3 7/8 by 7 1/2 inches */ - wxPAPER_ENV_PERSONAL, /* 6 3/4 Envelope, 3 5/8 by 6 1/2 inches */ - wxPAPER_FANFOLD_US, /* US Std Fanfold, 14 7/8 by 11 inches */ - wxPAPER_FANFOLD_STD_GERMAN, /* German Std Fanfold, 8 1/2 by 12 inches */ - wxPAPER_FANFOLD_LGL_GERMAN, /* German Legal Fanfold, 8 1/2 by 13 inches */ - - wxPAPER_ISO_B4, /* B4 (ISO) 250 x 353 mm */ - wxPAPER_JAPANESE_POSTCARD, /* Japanese Postcard 100 x 148 mm */ - wxPAPER_9X11, /* 9 x 11 in */ - wxPAPER_10X11, /* 10 x 11 in */ - wxPAPER_15X11, /* 15 x 11 in */ - wxPAPER_ENV_INVITE, /* Envelope Invite 220 x 220 mm */ - wxPAPER_LETTER_EXTRA, /* Letter Extra 9 \275 x 12 in */ - wxPAPER_LEGAL_EXTRA, /* Legal Extra 9 \275 x 15 in */ - wxPAPER_TABLOID_EXTRA, /* Tabloid Extra 11.69 x 18 in */ - wxPAPER_A4_EXTRA, /* A4 Extra 9.27 x 12.69 in */ - wxPAPER_LETTER_TRANSVERSE, /* Letter Transverse 8 \275 x 11 in */ - wxPAPER_A4_TRANSVERSE, /* A4 Transverse 210 x 297 mm */ - wxPAPER_LETTER_EXTRA_TRANSVERSE, /* Letter Extra Transverse 9\275 x 12 in */ - wxPAPER_A_PLUS, /* SuperA/SuperA/A4 227 x 356 mm */ - wxPAPER_B_PLUS, /* SuperB/SuperB/A3 305 x 487 mm */ - wxPAPER_LETTER_PLUS, /* Letter Plus 8.5 x 12.69 in */ - wxPAPER_A4_PLUS, /* A4 Plus 210 x 330 mm */ - wxPAPER_A5_TRANSVERSE, /* A5 Transverse 148 x 210 mm */ - wxPAPER_B5_TRANSVERSE, /* B5 (JIS) Transverse 182 x 257 mm */ - wxPAPER_A3_EXTRA, /* A3 Extra 322 x 445 mm */ - wxPAPER_A5_EXTRA, /* A5 Extra 174 x 235 mm */ - wxPAPER_B5_EXTRA, /* B5 (ISO) Extra 201 x 276 mm */ - wxPAPER_A2, /* A2 420 x 594 mm */ - wxPAPER_A3_TRANSVERSE, /* A3 Transverse 297 x 420 mm */ - wxPAPER_A3_EXTRA_TRANSVERSE, /* A3 Extra Transverse 322 x 445 mm */ - - wxPAPER_DBL_JAPANESE_POSTCARD,/* Japanese Double Postcard 200 x 148 mm */ - wxPAPER_A6, /* A6 105 x 148 mm */ - wxPAPER_JENV_KAKU2, /* Japanese Envelope Kaku #2 */ - wxPAPER_JENV_KAKU3, /* Japanese Envelope Kaku #3 */ - wxPAPER_JENV_CHOU3, /* Japanese Envelope Chou #3 */ - wxPAPER_JENV_CHOU4, /* Japanese Envelope Chou #4 */ - wxPAPER_LETTER_ROTATED, /* Letter Rotated 11 x 8 1/2 in */ - wxPAPER_A3_ROTATED, /* A3 Rotated 420 x 297 mm */ - wxPAPER_A4_ROTATED, /* A4 Rotated 297 x 210 mm */ - wxPAPER_A5_ROTATED, /* A5 Rotated 210 x 148 mm */ - wxPAPER_B4_JIS_ROTATED, /* B4 (JIS) Rotated 364 x 257 mm */ - wxPAPER_B5_JIS_ROTATED, /* B5 (JIS) Rotated 257 x 182 mm */ - wxPAPER_JAPANESE_POSTCARD_ROTATED,/* Japanese Postcard Rotated 148 x 100 mm */ - wxPAPER_DBL_JAPANESE_POSTCARD_ROTATED,/* Double Japanese Postcard Rotated 148 x 200 mm */ - wxPAPER_A6_ROTATED, /* A6 Rotated 148 x 105 mm */ - wxPAPER_JENV_KAKU2_ROTATED, /* Japanese Envelope Kaku #2 Rotated */ - wxPAPER_JENV_KAKU3_ROTATED, /* Japanese Envelope Kaku #3 Rotated */ - wxPAPER_JENV_CHOU3_ROTATED, /* Japanese Envelope Chou #3 Rotated */ - wxPAPER_JENV_CHOU4_ROTATED, /* Japanese Envelope Chou #4 Rotated */ - wxPAPER_B6_JIS, /* B6 (JIS) 128 x 182 mm */ - wxPAPER_B6_JIS_ROTATED, /* B6 (JIS) Rotated 182 x 128 mm */ - wxPAPER_12X11, /* 12 x 11 in */ - wxPAPER_JENV_YOU4, /* Japanese Envelope You #4 */ - wxPAPER_JENV_YOU4_ROTATED, /* Japanese Envelope You #4 Rotated */ - wxPAPER_P16K, /* PRC 16K 146 x 215 mm */ - wxPAPER_P32K, /* PRC 32K 97 x 151 mm */ - wxPAPER_P32KBIG, /* PRC 32K(Big) 97 x 151 mm */ - wxPAPER_PENV_1, /* PRC Envelope #1 102 x 165 mm */ - wxPAPER_PENV_2, /* PRC Envelope #2 102 x 176 mm */ - wxPAPER_PENV_3, /* PRC Envelope #3 125 x 176 mm */ - wxPAPER_PENV_4, /* PRC Envelope #4 110 x 208 mm */ - wxPAPER_PENV_5, /* PRC Envelope #5 110 x 220 mm */ - wxPAPER_PENV_6, /* PRC Envelope #6 120 x 230 mm */ - wxPAPER_PENV_7, /* PRC Envelope #7 160 x 230 mm */ - wxPAPER_PENV_8, /* PRC Envelope #8 120 x 309 mm */ - wxPAPER_PENV_9, /* PRC Envelope #9 229 x 324 mm */ - wxPAPER_PENV_10, /* PRC Envelope #10 324 x 458 mm */ - wxPAPER_P16K_ROTATED, /* PRC 16K Rotated */ - wxPAPER_P32K_ROTATED, /* PRC 32K Rotated */ - wxPAPER_P32KBIG_ROTATED, /* PRC 32K(Big) Rotated */ - wxPAPER_PENV_1_ROTATED, /* PRC Envelope #1 Rotated 165 x 102 mm */ - wxPAPER_PENV_2_ROTATED, /* PRC Envelope #2 Rotated 176 x 102 mm */ - wxPAPER_PENV_3_ROTATED, /* PRC Envelope #3 Rotated 176 x 125 mm */ - wxPAPER_PENV_4_ROTATED, /* PRC Envelope #4 Rotated 208 x 110 mm */ - wxPAPER_PENV_5_ROTATED, /* PRC Envelope #5 Rotated 220 x 110 mm */ - wxPAPER_PENV_6_ROTATED, /* PRC Envelope #6 Rotated 230 x 120 mm */ - wxPAPER_PENV_7_ROTATED, /* PRC Envelope #7 Rotated 230 x 160 mm */ - wxPAPER_PENV_8_ROTATED, /* PRC Envelope #8 Rotated 309 x 120 mm */ - wxPAPER_PENV_9_ROTATED, /* PRC Envelope #9 Rotated 324 x 229 mm */ - wxPAPER_PENV_10_ROTATED, /* PRC Envelope #10 Rotated 458 x 324 m */ - wxPAPER_A0, /* A0 Sheet 841 x 1189 mm */ - wxPAPER_A1 /* A1 Sheet 594 x 841 mm */ -}; - -/* Printing orientation */ -enum wxPrintOrientation -{ - wxPORTRAIT = 1, - wxLANDSCAPE -}; - -/* Duplex printing modes - */ - -enum wxDuplexMode -{ - wxDUPLEX_SIMPLEX, /* Non-duplex */ - wxDUPLEX_HORIZONTAL, - wxDUPLEX_VERTICAL -}; - -/* Print quality. - */ - -#define wxPRINT_QUALITY_HIGH -1 -#define wxPRINT_QUALITY_MEDIUM -2 -#define wxPRINT_QUALITY_LOW -3 -#define wxPRINT_QUALITY_DRAFT -4 - -typedef int wxPrintQuality; - -/* Print mode (currently PostScript only) - */ - -enum wxPrintMode -{ - wxPRINT_MODE_NONE = 0, - wxPRINT_MODE_PREVIEW = 1, /* Preview in external application */ - wxPRINT_MODE_FILE = 2, /* Print to file */ - wxPRINT_MODE_PRINTER = 3, /* Send to printer */ - wxPRINT_MODE_STREAM = 4 /* Send postscript data into a stream */ -}; - -/* ---------------------------------------------------------------------------- */ -/* UpdateWindowUI flags */ -/* ---------------------------------------------------------------------------- */ - -enum wxUpdateUI -{ - wxUPDATE_UI_NONE = 0x0000, - wxUPDATE_UI_RECURSE = 0x0001, - wxUPDATE_UI_FROMIDLE = 0x0002 /* Invoked from On(Internal)Idle */ -}; - - -/* ---------------------------------------------------------------------------- */ -/* wxList types */ -/* ---------------------------------------------------------------------------- */ - -/* type of compare function for list sort operation (as in 'qsort'): it should - return a negative value, 0 or positive value if the first element is less - than, equal or greater than the second */ - -typedef int (* LINKAGEMODE wxSortCompareFunction)(const void *elem1, const void *elem2); - -/* wxList iterator function */ -typedef int (* LINKAGEMODE wxListIterateFunction)(void *current); - - -/* ---------------------------------------------------------------------------- */ -/* miscellaneous */ -/* ---------------------------------------------------------------------------- */ - -/* define this macro if font handling is done using the X font names */ -#if (defined(__WXGTK__) && !defined(__WXGTK20__)) || defined(__X__) - #define _WX_X_FONTLIKE -#endif - -/* macro to specify "All Files" on different platforms */ -#if defined(__WXMSW__) -# define wxALL_FILES_PATTERN wxT("*.*") -# define wxALL_FILES gettext_noop("All files (*.*)|*.*") -#else -# define wxALL_FILES_PATTERN wxT("*") -# define wxALL_FILES gettext_noop("All files (*)|*") -#endif - -#if defined(__CYGWIN__) && defined(__WXMSW__) -# if wxUSE_STD_CONTAINERS || defined(wxUSE_STD_STRING) - /* - NASTY HACK because the gethostname in sys/unistd.h which the gnu - stl includes and wx builds with by default clash with each other - (windows version 2nd param is int, sys/unistd.h version is unsigned - int). - */ -# define gethostname gethostnameHACK -# include -# undef gethostname -# endif -#endif - -/* --------------------------------------------------------------------------- */ -/* macros that enable wxWidgets apps to be compiled in absence of the */ -/* system headers, although some platform specific types are used in the */ -/* platform specific (implementation) parts of the headers */ -/* --------------------------------------------------------------------------- */ - -#ifdef __DARWIN__ -#define DECLARE_WXOSX_OPAQUE_CFREF( name ) typedef struct __##name* name##Ref; -#define DECLARE_WXOSX_OPAQUE_CONST_CFREF( name ) typedef const struct __##name* name##Ref; -#endif - -#ifdef __WXMAC__ - -#define WX_OPAQUE_TYPE( name ) struct wxOpaque##name - -typedef void* WXHBITMAP; -typedef void* WXHCURSOR; -typedef void* WXRECTPTR; -typedef void* WXPOINTPTR; -typedef void* WXHWND; -typedef void* WXEVENTREF; -typedef void* WXEVENTHANDLERREF; -typedef void* WXEVENTHANDLERCALLREF; -typedef void* WXAPPLEEVENTREF; - -typedef unsigned int WXUINT; -typedef unsigned long WXDWORD; -typedef unsigned short WXWORD; - -typedef WX_OPAQUE_TYPE(PicHandle ) * WXHMETAFILE ; - -typedef void* WXDisplay; - -/* - * core frameworks - */ - -typedef const void * CFTypeRef; - -/* typedef const struct __CFString * CFStringRef; */ - -DECLARE_WXOSX_OPAQUE_CONST_CFREF( CFString ) -typedef struct __CFString * CFMutableStringRef; - -DECLARE_WXOSX_OPAQUE_CFREF( CFRunLoopSource ) -DECLARE_WXOSX_OPAQUE_CONST_CFREF( CTFont ) -DECLARE_WXOSX_OPAQUE_CONST_CFREF( CTFontDescriptor ) - -#define DECLARE_WXOSX_OPAQUE_CGREF( name ) typedef struct name* name##Ref; - -DECLARE_WXOSX_OPAQUE_CGREF( CGColor ) -DECLARE_WXOSX_OPAQUE_CGREF( CGImage ) -DECLARE_WXOSX_OPAQUE_CGREF( CGContext ) -DECLARE_WXOSX_OPAQUE_CGREF( CGFont ) - -typedef CGColorRef WXCOLORREF; -typedef CGImageRef WXCGIMAGEREF; -typedef CGContextRef WXHDC; - -/* - * carbon - */ - -typedef const struct __HIShape * HIShapeRef; -typedef struct __HIShape * HIMutableShapeRef; - -#define DECLARE_WXMAC_OPAQUE_REF( name ) typedef struct Opaque##name* name; - -DECLARE_WXMAC_OPAQUE_REF( PasteboardRef ) -DECLARE_WXMAC_OPAQUE_REF( IconRef ) -DECLARE_WXMAC_OPAQUE_REF( MenuRef ) - -typedef IconRef WXHICON ; -typedef HIShapeRef WXHRGN; - -#endif - -#if defined(__WXMAC__) - -/* Definitions of 32-bit/64-bit types - * These are typedef'd exactly the same way in newer OS X headers so - * redefinition when real headers are included should not be a problem. If - * it is, the types are being defined wrongly here. - * The purpose of these types is so they can be used from public wx headers. - * and also because the older (pre-Leopard) headers don't define them. - */ - -/* NOTE: We don't pollute namespace with CGFLOAT_MIN/MAX/IS_DOUBLE macros - * since they are unlikely to be needed in a public header. - */ -#if defined(__LP64__) && __LP64__ - typedef double CGFloat; -#else - typedef float CGFloat; -#endif - -#if (defined(__LP64__) && __LP64__) || (defined(NS_BUILD_32_LIKE_64) && NS_BUILD_32_LIKE_64) -typedef long NSInteger; -typedef unsigned long NSUInteger; -#else -typedef int NSInteger; -typedef unsigned int NSUInteger; -#endif - -/* Objective-C type declarations. - * These are to be used in public headers in lieu of NSSomething* because - * Objective-C class names are not available in C/C++ code. - */ - -/* NOTE: This ought to work with other compilers too, but I'm being cautious */ -#if (defined(__GNUC__) && defined(__APPLE__)) -/* It's desirable to have type safety for Objective-C(++) code as it does -at least catch typos of method names among other things. However, it -is not possible to declare an Objective-C class from plain old C or C++ -code. Furthermore, because of C++ name mangling, the type name must -be the same for both C++ and Objective-C++ code. Therefore, we define -what should be a pointer to an Objective-C class as a pointer to a plain -old C struct with the same name. Unfortunately, because the compiler -does not see a struct as an Objective-C class we cannot declare it -as a struct in Objective-C(++) mode. -*/ -#if defined(__OBJC__) -#define DECLARE_WXCOCOA_OBJC_CLASS(klass) \ -@class klass; \ -typedef klass *WX_##klass -#else /* not defined(__OBJC__) */ -#define DECLARE_WXCOCOA_OBJC_CLASS(klass) \ -typedef struct klass *WX_##klass -#endif /* defined(__OBJC__) */ - -#else /* not Apple's gcc */ -#warning "Objective-C types will not be checked by the compiler." -/* NOTE: typedef struct objc_object *id; */ -/* IOW, we're declaring these using the id type without using that name, */ -/* since "id" is used extensively not only within wxWidgets itself, but */ -/* also in wxWidgets application code. The following works fine when */ -/* compiling C(++) code, and works without typesafety for Obj-C(++) code */ -#define DECLARE_WXCOCOA_OBJC_CLASS(klass) \ -typedef struct objc_object *WX_##klass - -#endif /* (defined(__GNUC__) && defined(__APPLE__)) */ - -DECLARE_WXCOCOA_OBJC_CLASS(NSApplication); -DECLARE_WXCOCOA_OBJC_CLASS(NSBitmapImageRep); -DECLARE_WXCOCOA_OBJC_CLASS(NSBox); -DECLARE_WXCOCOA_OBJC_CLASS(NSButton); -DECLARE_WXCOCOA_OBJC_CLASS(NSColor); -DECLARE_WXCOCOA_OBJC_CLASS(NSColorPanel); -DECLARE_WXCOCOA_OBJC_CLASS(NSControl); -DECLARE_WXCOCOA_OBJC_CLASS(NSCursor); -DECLARE_WXCOCOA_OBJC_CLASS(NSEvent); -DECLARE_WXCOCOA_OBJC_CLASS(NSFont); -DECLARE_WXCOCOA_OBJC_CLASS(NSFontDescriptor); -DECLARE_WXCOCOA_OBJC_CLASS(NSFontPanel); -DECLARE_WXCOCOA_OBJC_CLASS(NSImage); -DECLARE_WXCOCOA_OBJC_CLASS(NSLayoutManager); -DECLARE_WXCOCOA_OBJC_CLASS(NSMenu); -DECLARE_WXCOCOA_OBJC_CLASS(NSMenuExtra); -DECLARE_WXCOCOA_OBJC_CLASS(NSMenuItem); -DECLARE_WXCOCOA_OBJC_CLASS(NSMutableArray); -DECLARE_WXCOCOA_OBJC_CLASS(NSNotification); -DECLARE_WXCOCOA_OBJC_CLASS(NSObject); -DECLARE_WXCOCOA_OBJC_CLASS(NSPanel); -DECLARE_WXCOCOA_OBJC_CLASS(NSResponder); -DECLARE_WXCOCOA_OBJC_CLASS(NSScrollView); -DECLARE_WXCOCOA_OBJC_CLASS(NSSound); -DECLARE_WXCOCOA_OBJC_CLASS(NSStatusItem); -DECLARE_WXCOCOA_OBJC_CLASS(NSTableColumn); -DECLARE_WXCOCOA_OBJC_CLASS(NSTableView); -DECLARE_WXCOCOA_OBJC_CLASS(NSTextContainer); -DECLARE_WXCOCOA_OBJC_CLASS(NSTextField); -DECLARE_WXCOCOA_OBJC_CLASS(NSTextStorage); -DECLARE_WXCOCOA_OBJC_CLASS(NSThread); -DECLARE_WXCOCOA_OBJC_CLASS(NSWindow); -DECLARE_WXCOCOA_OBJC_CLASS(NSView); -DECLARE_WXCOCOA_OBJC_CLASS(NSOpenGLContext); -DECLARE_WXCOCOA_OBJC_CLASS(NSOpenGLPixelFormat); -DECLARE_WXCOCOA_OBJC_CLASS( NSPrintInfo ); -#endif /* __WXMAC__ &__DARWIN__ */ - -#ifdef __WXMAC__ - -DECLARE_WXCOCOA_OBJC_CLASS(NSString); - -#if wxOSX_USE_COCOA - -typedef WX_NSWindow WXWindow; -typedef WX_NSView WXWidget; -typedef WX_NSMenu WXHMENU; -typedef WX_NSOpenGLPixelFormat WXGLPixelFormat; -typedef WX_NSOpenGLContext WXGLContext; - -#elif wxOSX_USE_IPHONE - -DECLARE_WXCOCOA_OBJC_CLASS(UIWindow); -DECLARE_WXCOCOA_OBJC_CLASS(UIView); -DECLARE_WXCOCOA_OBJC_CLASS(UIFont); -DECLARE_WXCOCOA_OBJC_CLASS(UIImage); -DECLARE_WXCOCOA_OBJC_CLASS(UIEvent); -DECLARE_WXCOCOA_OBJC_CLASS(NSSet); -DECLARE_WXCOCOA_OBJC_CLASS(EAGLContext); -DECLARE_WXCOCOA_OBJC_CLASS(UIWebView); - -typedef WX_UIWindow WXWindow; -typedef WX_UIView WXWidget; -typedef WX_EAGLContext WXGLContext; -typedef WX_NSString* WXGLPixelFormat; -typedef WX_UIWebView OSXWebViewPtr; - -#endif - -#if wxOSX_USE_COCOA_OR_CARBON -DECLARE_WXCOCOA_OBJC_CLASS(WebView); -typedef WX_WebView OSXWebViewPtr; -#endif - - -#endif /* __WXMAC__ */ - -/* ABX: check __WIN32__ instead of __WXMSW__ for the same MSWBase in any Win32 port */ -#if defined(__WIN32__) - -/* Stand-ins for Windows types to avoid #including all of windows.h */ - -#ifndef NO_STRICT - #define WX_MSW_DECLARE_HANDLE(type) typedef struct type##__ * WX##type -#else - #define WX_MSW_DECLARE_HANDLE(type) typedef void * WX##type -#endif - -typedef void* WXHANDLE; -WX_MSW_DECLARE_HANDLE(HWND); -WX_MSW_DECLARE_HANDLE(HICON); -WX_MSW_DECLARE_HANDLE(HFONT); -WX_MSW_DECLARE_HANDLE(HMENU); -WX_MSW_DECLARE_HANDLE(HPEN); -WX_MSW_DECLARE_HANDLE(HBRUSH); -WX_MSW_DECLARE_HANDLE(HPALETTE); -WX_MSW_DECLARE_HANDLE(HCURSOR); -WX_MSW_DECLARE_HANDLE(HRGN); -WX_MSW_DECLARE_HANDLE(RECTPTR); -WX_MSW_DECLARE_HANDLE(HACCEL); -WX_MSW_DECLARE_HANDLE(HINSTANCE); -WX_MSW_DECLARE_HANDLE(HBITMAP); -WX_MSW_DECLARE_HANDLE(HIMAGELIST); -WX_MSW_DECLARE_HANDLE(HGLOBAL); -WX_MSW_DECLARE_HANDLE(HDC); -typedef WXHINSTANCE WXHMODULE; - -#undef WX_MSW_DECLARE_HANDLE - -typedef unsigned int WXUINT; -typedef unsigned long WXDWORD; -typedef unsigned short WXWORD; - -typedef unsigned long WXCOLORREF; -typedef void * WXRGNDATA; -typedef struct tagMSG WXMSG; -typedef void * WXHCONV; -typedef void * WXHKEY; -typedef void * WXHTREEITEM; - -typedef void * WXDRAWITEMSTRUCT; -typedef void * WXMEASUREITEMSTRUCT; -typedef void * WXLPCREATESTRUCT; - -#ifdef __WXMSW__ -typedef WXHWND WXWidget; -#endif - -#ifdef __WIN64__ -typedef wxUint64 WXWPARAM; -typedef wxInt64 WXLPARAM; -typedef wxInt64 WXLRESULT; -#else -typedef wxW64 unsigned int WXWPARAM; -typedef wxW64 long WXLPARAM; -typedef wxW64 long WXLRESULT; -#endif - -#if defined(__GNUWIN32__) -typedef int (*WXFARPROC)(); -#else -typedef int (__stdcall *WXFARPROC)(); -#endif -#endif /* __WIN32__ */ - - -#if defined(__WXMOTIF__) || defined(__WXX11__) -/* Stand-ins for X/Xt/Motif types */ -typedef void* WXWindow; -typedef void* WXWidget; -typedef void* WXAppContext; -typedef void* WXColormap; -typedef void* WXColor; -typedef void WXDisplay; -typedef void WXEvent; -typedef void* WXCursor; -typedef void* WXPixmap; -typedef void* WXFontStructPtr; -typedef void* WXGC; -typedef void* WXRegion; -typedef void* WXFont; -typedef void* WXImage; -typedef void* WXFontList; -typedef void* WXFontSet; -typedef void* WXRendition; -typedef void* WXRenderTable; -typedef void* WXFontType; /* either a XmFontList or XmRenderTable */ -typedef void* WXString; - -typedef unsigned long Atom; /* this might fail on a few architectures */ -typedef long WXPixel; /* safety catch in src/motif/colour.cpp */ - -#endif /* Motif */ - -#ifdef __WXGTK__ - -/* Stand-ins for GLIB types */ -typedef struct _GSList GSList; - -/* Stand-ins for GDK types */ -typedef struct _GdkColor GdkColor; -typedef struct _GdkCursor GdkCursor; -typedef struct _GdkDragContext GdkDragContext; - -#if defined(__WXGTK20__) - typedef struct _GdkAtom* GdkAtom; -#else - typedef unsigned long GdkAtom; -#endif - -#if !defined(__WXGTK3__) - typedef struct _GdkColormap GdkColormap; - typedef struct _GdkFont GdkFont; - typedef struct _GdkGC GdkGC; - typedef struct _GdkRegion GdkRegion; -#endif - -#if defined(__WXGTK3__) - typedef struct _GdkWindow GdkWindow; -#elif defined(__WXGTK20__) - typedef struct _GdkDrawable GdkWindow; - typedef struct _GdkDrawable GdkPixmap; -#else - typedef struct _GdkWindow GdkWindow; - typedef struct _GdkWindow GdkBitmap; - typedef struct _GdkWindow GdkPixmap; -#endif - -/* Stand-ins for GTK types */ -typedef struct _GtkWidget GtkWidget; -typedef struct _GtkRcStyle GtkRcStyle; -typedef struct _GtkAdjustment GtkAdjustment; -typedef struct _GtkToolbar GtkToolbar; -typedef struct _GtkNotebook GtkNotebook; -typedef struct _GtkNotebookPage GtkNotebookPage; -typedef struct _GtkAccelGroup GtkAccelGroup; -typedef struct _GtkSelectionData GtkSelectionData; -typedef struct _GtkTextBuffer GtkTextBuffer; -typedef struct _GtkRange GtkRange; -typedef struct _GtkCellRenderer GtkCellRenderer; - -typedef GtkWidget *WXWidget; - -#ifndef __WXGTK20__ -#define GTK_OBJECT_GET_CLASS(object) (GTK_OBJECT(object)->klass) -#define GTK_CLASS_TYPE(klass) ((klass)->type) -#endif - -#endif /* __WXGTK__ */ - -#if defined(__WXGTK20__) || (defined(__WXX11__) && wxUSE_UNICODE) -#define wxUSE_PANGO 1 -#else -#define wxUSE_PANGO 0 -#endif - -#if wxUSE_PANGO -/* Stand-ins for Pango types */ -typedef struct _PangoContext PangoContext; -typedef struct _PangoLayout PangoLayout; -typedef struct _PangoFontDescription PangoFontDescription; -#endif - -#ifdef __WXDFB__ -/* DirectFB doesn't have the concept of non-TLW window, so use - something arbitrary */ -typedef const void* WXWidget; -#endif /* DFB */ - -#ifdef __WXQT__ -#include "wx/qt/defs.h" -#endif - -/* This is required because of clashing macros in windows.h, which may be */ -/* included before or after wxWidgets classes, and therefore must be */ -/* disabled here before any significant wxWidgets headers are included. */ -#ifdef __cplusplus -#ifdef __WINDOWS__ -#include "wx/msw/winundef.h" -#endif /* __WINDOWS__ */ -#endif /* __cplusplus */ - - -/* include the feature test macros */ -#include "wx/features.h" - -/* --------------------------------------------------------------------------- */ -/* macros to define a class without copy ctor nor assignment operator */ -/* --------------------------------------------------------------------------- */ - -#define wxDECLARE_NO_COPY_CLASS(classname) \ - private: \ - classname(const classname&); \ - classname& operator=(const classname&) - -#define wxDECLARE_NO_COPY_TEMPLATE_CLASS(classname, arg) \ - private: \ - classname(const classname&); \ - classname& operator=(const classname&) - -#define wxDECLARE_NO_COPY_TEMPLATE_CLASS_2(classname, arg1, arg2) \ - private: \ - classname(const classname&); \ - classname& operator=(const classname&) - -#define wxDECLARE_NO_ASSIGN_CLASS(classname) \ - private: \ - classname& operator=(const classname&) - -/* deprecated variants _not_ requiring a semicolon after them */ -#define DECLARE_NO_COPY_CLASS(classname) \ - wxDECLARE_NO_COPY_CLASS(classname); -#define DECLARE_NO_COPY_TEMPLATE_CLASS(classname, arg) \ - wxDECLARE_NO_COPY_TEMPLATE_CLASS(classname, arg); -#define DECLARE_NO_ASSIGN_CLASS(classname) \ - wxDECLARE_NO_ASSIGN_CLASS(classname); - -/* --------------------------------------------------------------------------- */ -/* If a manifest is being automatically generated, add common controls 6 to it */ -/* --------------------------------------------------------------------------- */ - -#if wxUSE_GUI && \ - (!defined wxUSE_NO_MANIFEST || wxUSE_NO_MANIFEST == 0 ) && \ - ( defined _MSC_FULL_VER && _MSC_FULL_VER >= 140040130 ) - -#define WX_CC_MANIFEST(cpu) \ - "/manifestdependency:\"type='win32' \ - name='Microsoft.Windows.Common-Controls' \ - version='6.0.0.0' \ - processorArchitecture='" cpu "' \ - publicKeyToken='6595b64144ccf1df' \ - language='*'\"" - -#if defined _M_IX86 - #pragma comment(linker, WX_CC_MANIFEST("x86")) -#elif defined _M_X64 - #pragma comment(linker, WX_CC_MANIFEST("amd64")) -#elif defined _M_IA64 - #pragma comment(linker, WX_CC_MANIFEST("ia64")) -#else - #pragma comment(linker, WX_CC_MANIFEST("*")) -#endif - -#endif /* !wxUSE_NO_MANIFEST && _MSC_FULL_VER >= 140040130 */ - -/* wxThread and wxProcess priorities */ -enum -{ - wxPRIORITY_MIN = 0u, /* lowest possible priority */ - wxPRIORITY_DEFAULT = 50u, /* normal priority */ - wxPRIORITY_MAX = 100u /* highest possible priority */ -}; - -#endif - /* _WX_DEFS_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dialog.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dialog.h deleted file mode 100644 index 1150fbdb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dialog.h +++ /dev/null @@ -1,431 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dialog.h -// Purpose: wxDialogBase class -// Author: Vadim Zeitlin -// Modified by: -// Created: 29.06.99 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIALOG_H_BASE_ -#define _WX_DIALOG_H_BASE_ - -#include "wx/toplevel.h" -#include "wx/containr.h" -#include "wx/sharedptr.h" - -class WXDLLIMPEXP_FWD_CORE wxSizer; -class WXDLLIMPEXP_FWD_CORE wxStdDialogButtonSizer; -class WXDLLIMPEXP_FWD_CORE wxBoxSizer; -class WXDLLIMPEXP_FWD_CORE wxDialogLayoutAdapter; -class WXDLLIMPEXP_FWD_CORE wxDialog; -class WXDLLIMPEXP_FWD_CORE wxButton; -class WXDLLIMPEXP_FWD_CORE wxScrolledWindow; -class wxTextSizerWrapper; - -// Also see the bit summary table in wx/toplevel.h. - -#define wxDIALOG_NO_PARENT 0x00000020 // Don't make owned by apps top window - -#define wxDEFAULT_DIALOG_STYLE (wxCAPTION | wxSYSTEM_MENU | wxCLOSE_BOX) - -// Layout adaptation levels, for SetLayoutAdaptationLevel - -// Don't do any layout adaptation -#define wxDIALOG_ADAPTATION_NONE 0 - -// Only look for wxStdDialogButtonSizer for non-scrolling part -#define wxDIALOG_ADAPTATION_STANDARD_SIZER 1 - -// Also look for any suitable sizer for non-scrolling part -#define wxDIALOG_ADAPTATION_ANY_SIZER 2 - -// Also look for 'loose' standard buttons for non-scrolling part -#define wxDIALOG_ADAPTATION_LOOSE_BUTTONS 3 - -// Layout adaptation mode, for SetLayoutAdaptationMode -enum wxDialogLayoutAdaptationMode -{ - wxDIALOG_ADAPTATION_MODE_DEFAULT = 0, // use global adaptation enabled status - wxDIALOG_ADAPTATION_MODE_ENABLED = 1, // enable this dialog overriding global status - wxDIALOG_ADAPTATION_MODE_DISABLED = 2 // disable this dialog overriding global status -}; - -enum wxDialogModality -{ - wxDIALOG_MODALITY_NONE = 0, - wxDIALOG_MODALITY_WINDOW_MODAL = 1, - wxDIALOG_MODALITY_APP_MODAL = 2 -}; - -extern WXDLLIMPEXP_DATA_CORE(const char) wxDialogNameStr[]; - -class WXDLLIMPEXP_CORE wxDialogBase : public wxNavigationEnabled -{ -public: - wxDialogBase(); - virtual ~wxDialogBase() { } - - // define public wxDialog methods to be implemented by the derived classes - virtual int ShowModal() = 0; - virtual void EndModal(int retCode) = 0; - virtual bool IsModal() const = 0; - // show the dialog frame-modally (needs a parent), using app-modal - // dialogs on platforms that don't support it - virtual void ShowWindowModal () ; - virtual void SendWindowModalDialogEvent ( wxEventType type ); - - template - void ShowWindowModalThenDo(const Functor& onEndModal); - - // Modal dialogs have a return code - usually the id of the last - // pressed button - void SetReturnCode(int returnCode) { m_returnCode = returnCode; } - int GetReturnCode() const { return m_returnCode; } - - // Set the identifier for the affirmative button: this button will close - // the dialog after validating data and calling TransferDataFromWindow() - void SetAffirmativeId(int affirmativeId); - int GetAffirmativeId() const { return m_affirmativeId; } - - // Set identifier for Esc key translation: the button with this id will - // close the dialog without doing anything else; special value wxID_NONE - // means to not handle Esc at all while wxID_ANY means to map Esc to - // wxID_CANCEL if present and GetAffirmativeId() otherwise - void SetEscapeId(int escapeId); - int GetEscapeId() const { return m_escapeId; } - - // Find the parent to use for modal dialog: try to use the specified parent - // but fall back to the current active window or main application window as - // last resort if it is unsuitable. - // - // As this function is often called from the ctor, the window style may be - // not set yet and hence must be passed explicitly to it so that we could - // check whether it contains wxDIALOG_NO_PARENT bit. - // - // This function always returns a valid top level window or NULL. - wxWindow *GetParentForModalDialog(wxWindow *parent, long style) const; - - // This overload can only be used for already initialized windows, i.e. not - // from the ctor. It uses the current window parent and style. - wxWindow *GetParentForModalDialog() const - { - return GetParentForModalDialog(GetParent(), GetWindowStyle()); - } - -#if wxUSE_STATTEXT // && wxUSE_TEXTCTRL - // splits text up at newlines and places the lines into a vertical - // wxBoxSizer - wxSizer *CreateTextSizer( const wxString& message ); - - // same as above but uses a customized wxTextSizerWrapper to create - // non-standard controls for the lines - wxSizer *CreateTextSizer( const wxString& message, - wxTextSizerWrapper& wrapper ); -#endif // wxUSE_STATTEXT // && wxUSE_TEXTCTRL - - // returns a horizontal wxBoxSizer containing the given buttons - // - // notice that the returned sizer can be NULL if no buttons are put in the - // sizer (this mostly happens under smart phones and other atypical - // platforms which have hardware buttons replacing OK/Cancel and such) - wxSizer *CreateButtonSizer(long flags); - - // returns a sizer containing the given one and a static line separating it - // from the preceding elements if it's appropriate for the current platform - wxSizer *CreateSeparatedSizer(wxSizer *sizer); - - // returns the sizer containing CreateButtonSizer() below a separating - // static line for the platforms which use static lines for items - // separation (i.e. not Mac) - // - // this is just a combination of CreateButtonSizer() and - // CreateSeparatedSizer() - wxSizer *CreateSeparatedButtonSizer(long flags); - -#if wxUSE_BUTTON - wxStdDialogButtonSizer *CreateStdDialogButtonSizer( long flags ); -#endif // wxUSE_BUTTON - - // Do layout adaptation - virtual bool DoLayoutAdaptation(); - - // Can we do layout adaptation? - virtual bool CanDoLayoutAdaptation(); - - // Returns a content window if there is one. This can be used by the layout adapter, for - // example to make the pages of a book control into scrolling windows - virtual wxWindow* GetContentWindow() const { return NULL; } - - // Add an id to the list of main button identifiers that should be in the button sizer - void AddMainButtonId(wxWindowID id) { m_mainButtonIds.Add((int) id); } - wxArrayInt& GetMainButtonIds() { return m_mainButtonIds; } - - // Is this id in the main button id array? - bool IsMainButtonId(wxWindowID id) const { return (m_mainButtonIds.Index((int) id) != wxNOT_FOUND); } - - // Level of adaptation, from none (Level 0) to full (Level 3). To disable adaptation, - // set level 0, for example in your dialog constructor. You might - // do this if you know that you are displaying on a large screen and you don't want the - // dialog changed. - void SetLayoutAdaptationLevel(int level) { m_layoutAdaptationLevel = level; } - int GetLayoutAdaptationLevel() const { return m_layoutAdaptationLevel; } - - /// Override global adaptation enabled/disabled status - void SetLayoutAdaptationMode(wxDialogLayoutAdaptationMode mode) { m_layoutAdaptationMode = mode; } - wxDialogLayoutAdaptationMode GetLayoutAdaptationMode() const { return m_layoutAdaptationMode; } - - // Returns true if the adaptation has been done - void SetLayoutAdaptationDone(bool adaptationDone) { m_layoutAdaptationDone = adaptationDone; } - bool GetLayoutAdaptationDone() const { return m_layoutAdaptationDone; } - - // Set layout adapter class, returning old adapter - static wxDialogLayoutAdapter* SetLayoutAdapter(wxDialogLayoutAdapter* adapter); - static wxDialogLayoutAdapter* GetLayoutAdapter() { return sm_layoutAdapter; } - - // Global switch for layout adaptation - static bool IsLayoutAdaptationEnabled() { return sm_layoutAdaptation; } - static void EnableLayoutAdaptation(bool enable) { sm_layoutAdaptation = enable; } - - // modality kind - virtual wxDialogModality GetModality() const; -protected: - // emulate click of a button with the given id if it's present in the dialog - // - // return true if button was "clicked" or false if we don't have it - bool EmulateButtonClickIfPresent(int id); - - // this function is used by OnCharHook() to decide whether the given key - // should close the dialog - // - // for most platforms the default implementation (which just checks for - // Esc) is sufficient, but Mac port also adds Cmd-. here and other ports - // could do something different if needed - virtual bool IsEscapeKey(const wxKeyEvent& event); - - // end either modal or modeless dialog, for the modal dialog rc is used as - // the dialog return code - void EndDialog(int rc); - - // call Validate() and TransferDataFromWindow() and close dialog with - // wxID_OK return code - void AcceptAndClose(); - - // The return code from modal dialog - int m_returnCode; - - // The identifier for the affirmative button (usually wxID_OK) - int m_affirmativeId; - - // The identifier for cancel button (usually wxID_CANCEL) - int m_escapeId; - - // Flags whether layout adaptation has been done for this dialog - bool m_layoutAdaptationDone; - - // Extra button identifiers to be taken as 'main' button identifiers - // to be placed in the non-scrolling area - wxArrayInt m_mainButtonIds; - - // Adaptation level - int m_layoutAdaptationLevel; - - // Local override for global adaptation enabled status - wxDialogLayoutAdaptationMode m_layoutAdaptationMode; - - // Global layout adapter - static wxDialogLayoutAdapter* sm_layoutAdapter; - - // Global adaptation switch - static bool sm_layoutAdaptation; - -private: - // helper of GetParentForModalDialog(): returns the passed in window if it - // can be used as our parent or NULL if it can't - wxWindow *CheckIfCanBeUsedAsParent(wxWindow *parent) const; - - // Helper of OnCharHook() and OnCloseWindow(): find the appropriate button - // for closing the dialog and send a click event for it. - // - // Return true if we found a button to close the dialog and "clicked" it or - // false otherwise. - bool SendCloseButtonClickEvent(); - - // handle Esc key presses - void OnCharHook(wxKeyEvent& event); - - // handle closing the dialog window - void OnCloseWindow(wxCloseEvent& event); - - // handle the standard buttons - void OnButton(wxCommandEvent& event); - - // update the background colour - void OnSysColourChanged(wxSysColourChangedEvent& event); - - - wxDECLARE_NO_COPY_CLASS(wxDialogBase); - wxDECLARE_EVENT_TABLE(); -}; - -/*! - * Base class for layout adapters - code that, for example, turns a dialog into a - * scrolling dialog if there isn't enough screen space. You can derive further - * adapter classes to do any other kind of adaptation, such as applying a watermark, or adding - * a help mechanism. - */ - -class WXDLLIMPEXP_CORE wxDialogLayoutAdapter: public wxObject -{ - wxDECLARE_CLASS(wxDialogLayoutAdapter); -public: - wxDialogLayoutAdapter() {} - - // Override this function to indicate that adaptation should be done - virtual bool CanDoLayoutAdaptation(wxDialog* dialog) = 0; - - // Override this function to do the adaptation - virtual bool DoLayoutAdaptation(wxDialog* dialog) = 0; -}; - -/*! - * Standard adapter. Does scrolling adaptation for paged and regular dialogs. - * - */ - -class WXDLLIMPEXP_CORE wxStandardDialogLayoutAdapter: public wxDialogLayoutAdapter -{ - wxDECLARE_CLASS(wxStandardDialogLayoutAdapter); -public: - wxStandardDialogLayoutAdapter() {} - -// Overrides - - // Indicate that adaptation should be done - virtual bool CanDoLayoutAdaptation(wxDialog* dialog) wxOVERRIDE; - - // Do layout adaptation - virtual bool DoLayoutAdaptation(wxDialog* dialog) wxOVERRIDE; - -// Implementation - - // Create the scrolled window - virtual wxScrolledWindow* CreateScrolledWindow(wxWindow* parent); - -#if wxUSE_BUTTON - // Find a standard or horizontal box sizer - virtual wxSizer* FindButtonSizer(bool stdButtonSizer, wxDialog* dialog, wxSizer* sizer, int& retBorder, int accumlatedBorder = 0); - - // Check if this sizer contains standard buttons, and so can be repositioned in the dialog - virtual bool IsOrdinaryButtonSizer(wxDialog* dialog, wxBoxSizer* sizer); - - // Check if this is a standard button - virtual bool IsStandardButton(wxDialog* dialog, wxButton* button); - - // Find 'loose' main buttons in the existing layout and add them to the standard dialog sizer - virtual bool FindLooseButtons(wxDialog* dialog, wxStdDialogButtonSizer* buttonSizer, wxSizer* sizer, int& count); -#endif // wxUSE_BUTTON - - // Reparent the controls to the scrolled window, except those in buttonSizer - virtual void ReparentControls(wxWindow* parent, wxWindow* reparentTo, wxSizer* buttonSizer = NULL); - static void DoReparentControls(wxWindow* parent, wxWindow* reparentTo, wxSizer* buttonSizer = NULL); - - // A function to fit the dialog around its contents, and then adjust for screen size. - // If scrolled windows are passed, scrolling is enabled in the required orientation(s). - virtual bool FitWithScrolling(wxDialog* dialog, wxScrolledWindow* scrolledWindow); - virtual bool FitWithScrolling(wxDialog* dialog, wxWindowList& windows); - static bool DoFitWithScrolling(wxDialog* dialog, wxScrolledWindow* scrolledWindow); - static bool DoFitWithScrolling(wxDialog* dialog, wxWindowList& windows); - - // Find whether scrolling will be necessary for the dialog, returning wxVERTICAL, wxHORIZONTAL or both - virtual int MustScroll(wxDialog* dialog, wxSize& windowSize, wxSize& displaySize); - static int DoMustScroll(wxDialog* dialog, wxSize& windowSize, wxSize& displaySize); -}; - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/dialog.h" -#else - #if defined(__WXMSW__) - #include "wx/msw/dialog.h" - #elif defined(__WXMOTIF__) - #include "wx/motif/dialog.h" - #elif defined(__WXGTK20__) - #include "wx/gtk/dialog.h" - #elif defined(__WXGTK__) - #include "wx/gtk1/dialog.h" - #elif defined(__WXMAC__) - #include "wx/osx/dialog.h" - #elif defined(__WXQT__) - #include "wx/qt/dialog.h" - #endif -#endif - -class WXDLLIMPEXP_CORE wxWindowModalDialogEvent : public wxCommandEvent -{ -public: - wxWindowModalDialogEvent (wxEventType commandType = wxEVT_NULL, int id = 0) - : wxCommandEvent(commandType, id) { } - - wxDialog *GetDialog() const - { return wxStaticCast(GetEventObject(), wxDialog); } - - int GetReturnCode() const - { return GetDialog()->GetReturnCode(); } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxWindowModalDialogEvent (*this); } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxWindowModalDialogEvent); -}; - -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_WINDOW_MODAL_DIALOG_CLOSED , wxWindowModalDialogEvent ); - -typedef void (wxEvtHandler::*wxWindowModalDialogEventFunction)(wxWindowModalDialogEvent &); - -#define wxWindowModalDialogEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxWindowModalDialogEventFunction, func) - -#define EVT_WINDOW_MODAL_DIALOG_CLOSED(winid, func) \ - wx__DECLARE_EVT1(wxEVT_WINDOW_MODAL_DIALOG_CLOSED, winid, wxWindowModalDialogEventHandler(func)) - -template -class wxWindowModalDialogEventFunctor -{ -public: - wxWindowModalDialogEventFunctor(const Functor& f) - : m_f(new Functor(f)) - {} - - void operator()(wxWindowModalDialogEvent& event) - { - if ( m_f ) - { - // We only want to call this handler once. Also, by deleting - // the functor here, its data (such as wxWindowPtr pointing to - // the dialog) are freed immediately after exiting this operator(). - wxSharedPtr functor(m_f); - m_f.reset(); - - (*functor)(event.GetReturnCode()); - } - else // was already called once - { - event.Skip(); - } - } - -private: - wxSharedPtr m_f; -}; - -template -void wxDialogBase::ShowWindowModalThenDo(const Functor& onEndModal) -{ - Bind(wxEVT_WINDOW_MODAL_DIALOG_CLOSED, - wxWindowModalDialogEventFunctor(onEndModal)); - ShowWindowModal(); -} - -#endif - // _WX_DIALOG_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dialup.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dialup.h deleted file mode 100644 index 7688d4a1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dialup.h +++ /dev/null @@ -1,200 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dialup.h -// Purpose: Network related wxWidgets classes and functions -// Author: Vadim Zeitlin -// Modified by: -// Created: 07.07.99 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIALUP_H -#define _WX_DIALUP_H - -#if wxUSE_DIALUP_MANAGER - -#include "wx/event.h" - -// ---------------------------------------------------------------------------- -// misc -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_BASE wxArrayString; - -#define WXDIALUP_MANAGER_DEFAULT_BEACONHOST wxT("www.yahoo.com") - -// ---------------------------------------------------------------------------- -// A class which groups functions dealing with connecting to the network from a -// workstation using dial-up access to the net. There is at most one instance -// of this class in the program accessed via GetDialUpManager(). -// ---------------------------------------------------------------------------- - -/* TODO - * - * 1. more configurability for Unix: i.e. how to initiate the connection, how - * to check for online status, &c. - * 2. a function to enumerate all connections (ISPs) and show a dialog in - * Dial() allowing to choose between them if no ISP given - * 3. add an async version of dialing functions which notify the caller about - * the progress (or may be even start another thread to monitor it) - * 4. the static creation/accessor functions are not MT-safe - but is this - * really crucial? I think we may suppose they're always called from the - * main thread? - */ - -class WXDLLIMPEXP_CORE wxDialUpManager -{ -public: - // this function should create and return the object of the - // platform-specific class derived from wxDialUpManager. It's implemented - // in the platform-specific source files. - static wxDialUpManager *Create(); - - // could the dialup manager be initialized correctly? If this function - // returns false, no other functions will work neither, so it's a good idea - // to call this function and check its result before calling any other - // wxDialUpManager methods - virtual bool IsOk() const = 0; - - // virtual dtor for any base class - virtual ~wxDialUpManager() { } - - // operations - // ---------- - - // fills the array with the names of all possible values for the first - // parameter to Dial() on this machine and returns their number (may be 0) - virtual size_t GetISPNames(wxArrayString& names) const = 0; - - // dial the given ISP, use username and password to authentificate - // - // if no nameOfISP is given, the function will select the default one - // - // if no username/password are given, the function will try to do without - // them, but will ask the user if really needed - // - // if async parameter is false, the function waits until the end of dialing - // and returns true upon successful completion. - // if async is true, the function only initiates the connection and returns - // immediately - the result is reported via events (an event is sent - // anyhow, but if dialing failed it will be a DISCONNECTED one) - virtual bool Dial(const wxString& nameOfISP = wxEmptyString, - const wxString& username = wxEmptyString, - const wxString& password = wxEmptyString, - bool async = true) = 0; - - // returns true if (async) dialing is in progress - virtual bool IsDialing() const = 0; - - // cancel dialing the number initiated with Dial(async = true) - // NB: this won't result in DISCONNECTED event being sent - virtual bool CancelDialing() = 0; - - // hang up the currently active dial up connection - virtual bool HangUp() = 0; - - // online status - // ------------- - - // returns true if the computer has a permanent network connection (i.e. is - // on a LAN) and so there is no need to use Dial() function to go online - // - // NB: this functions tries to guess the result and it is not always - // guaranteed to be correct, so it's better to ask user for - // confirmation or give him a possibility to override it - virtual bool IsAlwaysOnline() const = 0; - - // returns true if the computer is connected to the network: under Windows, - // this just means that a RAS connection exists, under Unix we check that - // the "well-known host" (as specified by SetWellKnownHost) is reachable - virtual bool IsOnline() const = 0; - - // sometimes the built-in logic for determining the online status may fail, - // so, in general, the user should be allowed to override it. This function - // allows to forcefully set the online status - whatever our internal - // algorithm may think about it. - virtual void SetOnlineStatus(bool isOnline = true) = 0; - - // set misc wxDialUpManager options - // -------------------------------- - - // enable automatical checks for the connection status and sending of - // wxEVT_DIALUP_CONNECTED/wxEVT_DIALUP_DISCONNECTED events. The interval - // parameter is only for Unix where we do the check manually: under - // Windows, the notification about the change of connection status is - // instantenous. - // - // Returns false if couldn't set up automatic check for online status. - virtual bool EnableAutoCheckOnlineStatus(size_t nSeconds = 60) = 0; - - // disable automatic check for connection status change - notice that the - // wxEVT_DIALUP_XXX events won't be sent any more neither. - virtual void DisableAutoCheckOnlineStatus() = 0; - - // additional Unix-only configuration - // ---------------------------------- - - // under Unix, the value of well-known host is used to check whether we're - // connected to the internet. It's unused under Windows, but this function - // is always safe to call. The default value is www.yahoo.com. - virtual void SetWellKnownHost(const wxString& hostname, - int portno = 80) = 0; - - // Sets the commands to start up the network and to hang up again. Used by - // the Unix implementations only. - virtual void - SetConnectCommand(const wxString& commandDial = wxT("/usr/bin/pon"), - const wxString& commandHangup = wxT("/usr/bin/poff")) = 0; -}; - -// ---------------------------------------------------------------------------- -// wxDialUpManager events -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxDialUpEvent; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_DIALUP_CONNECTED, wxDialUpEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_DIALUP_DISCONNECTED, wxDialUpEvent ); - -// the event class for the dialup events -class WXDLLIMPEXP_CORE wxDialUpEvent : public wxEvent -{ -public: - wxDialUpEvent(bool isConnected, bool isOwnEvent) : wxEvent(isOwnEvent) - { - SetEventType(isConnected ? wxEVT_DIALUP_CONNECTED - : wxEVT_DIALUP_DISCONNECTED); - } - - // is this a CONNECTED or DISCONNECTED event? - bool IsConnectedEvent() const - { return GetEventType() == wxEVT_DIALUP_CONNECTED; } - - // does this event come from wxDialUpManager::Dial() or from some external - // process (i.e. does it result from our own attempt to establish the - // connection)? - bool IsOwnEvent() const { return m_id != 0; } - - // implement the base class pure virtual - virtual wxEvent *Clone() const { return new wxDialUpEvent(*this); } - -private: - wxDECLARE_NO_ASSIGN_CLASS(wxDialUpEvent); -}; - -// the type of dialup event handler function -typedef void (wxEvtHandler::*wxDialUpEventFunction)(wxDialUpEvent&); - -#define wxDialUpEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxDialUpEventFunction, func) - -// macros to catch dialup events -#define EVT_DIALUP_CONNECTED(func) \ - wx__DECLARE_EVT0(wxEVT_DIALUP_CONNECTED, wxDialUpEventHandler(func)) -#define EVT_DIALUP_DISCONNECTED(func) \ - wx__DECLARE_EVT0(wxEVT_DIALUP_DISCONNECTED, wxDialUpEventHandler(func)) - - -#endif // wxUSE_DIALUP_MANAGER - -#endif // _WX_DIALUP_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dir.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dir.h deleted file mode 100644 index f23862e0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dir.h +++ /dev/null @@ -1,186 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dir.h -// Purpose: wxDir is a class for enumerating the files in a directory -// Author: Vadim Zeitlin -// Modified by: -// Created: 08.12.99 -// Copyright: (c) 1999 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIR_H_ -#define _WX_DIR_H_ - -#include "wx/longlong.h" -#include "wx/string.h" -#include "wx/filefn.h" // for wxS_DIR_DEFAULT - -class WXDLLIMPEXP_FWD_BASE wxArrayString; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// These flags affect the behaviour of GetFirst/GetNext() and Traverse(). -// They define what types are included in the list of items they produce. -// Note that wxDIR_NO_FOLLOW is relevant only on Unix and ignored under systems -// not supporting symbolic links. -enum wxDirFlags -{ - wxDIR_FILES = 0x0001, // include files - wxDIR_DIRS = 0x0002, // include directories - wxDIR_HIDDEN = 0x0004, // include hidden files - wxDIR_DOTDOT = 0x0008, // include '.' and '..' - wxDIR_NO_FOLLOW = 0x0010, // don't dereference any symlink - - // by default, enumerate everything except '.' and '..' - wxDIR_DEFAULT = wxDIR_FILES | wxDIR_DIRS | wxDIR_HIDDEN -}; - -// these constants are possible return value of wxDirTraverser::OnDir() -enum wxDirTraverseResult -{ - wxDIR_IGNORE = -1, // ignore this directory but continue with others - wxDIR_STOP, // stop traversing - wxDIR_CONTINUE // continue into this directory -}; - -// ---------------------------------------------------------------------------- -// wxDirTraverser: helper class for wxDir::Traverse() -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxDirTraverser -{ -public: - /// a virtual dtor has been provided since this class has virtual members - virtual ~wxDirTraverser() { } - // called for each file found by wxDir::Traverse() - // - // return wxDIR_STOP or wxDIR_CONTINUE from here (wxDIR_IGNORE doesn't - // make sense) - virtual wxDirTraverseResult OnFile(const wxString& filename) = 0; - - // called for each directory found by wxDir::Traverse() - // - // return one of the enum elements defined above - virtual wxDirTraverseResult OnDir(const wxString& dirname) = 0; - - // called for each directory which we couldn't open during our traversal - // of the directory tree - // - // this method can also return either wxDIR_STOP, wxDIR_IGNORE or - // wxDIR_CONTINUE but the latter is treated specially: it means to retry - // opening the directory and so may lead to infinite loop if it is - // returned unconditionally, be careful with this! - // - // the base class version always returns wxDIR_IGNORE - virtual wxDirTraverseResult OnOpenError(const wxString& dirname); -}; - -// ---------------------------------------------------------------------------- -// wxDir: portable equivalent of {open/read/close}dir functions -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_BASE wxDirData; - -class WXDLLIMPEXP_BASE wxDir -{ -public: - - // ctors - // ----- - - // default, use Open() - wxDir() { m_data = NULL; } - - // opens the directory for enumeration, use IsOpened() to test success - wxDir(const wxString& dir); - - // dtor calls Close() automatically - ~wxDir() { Close(); } - - // open the directory for enumerating - bool Open(const wxString& dir); - - // close the directory, Open() can be called again later - void Close(); - - // returns true if the directory was successfully opened - bool IsOpened() const; - - // get the full name of the directory (without '/' at the end) - wxString GetName() const; - - // Same as GetName() but does include the trailing separator, unless the - // string is empty (only for invalid directories). - wxString GetNameWithSep() const; - - - // file enumeration routines - // ------------------------- - - // start enumerating all files matching filespec (or all files if it is - // empty) and flags, return true on success - bool GetFirst(wxString *filename, - const wxString& filespec = wxEmptyString, - int flags = wxDIR_DEFAULT) const; - - // get next file in the enumeration started with GetFirst() - bool GetNext(wxString *filename) const; - - // return true if this directory has any files in it - bool HasFiles(const wxString& spec = wxEmptyString) const; - - // return true if this directory has any subdirectories - bool HasSubDirs(const wxString& spec = wxEmptyString) const; - - // enumerate all files in this directory and its subdirectories - // - // return the number of files found - size_t Traverse(wxDirTraverser& sink, - const wxString& filespec = wxEmptyString, - int flags = wxDIR_DEFAULT) const; - - // simplest version of Traverse(): get the names of all files under this - // directory into filenames array, return the number of files - static size_t GetAllFiles(const wxString& dirname, - wxArrayString *files, - const wxString& filespec = wxEmptyString, - int flags = wxDIR_DEFAULT); - - // check if there any files matching the given filespec under the given - // directory (i.e. searches recursively), return the file path if found or - // empty string otherwise - static wxString FindFirst(const wxString& dirname, - const wxString& filespec, - int flags = wxDIR_DEFAULT); - -#if wxUSE_LONGLONG - // returns the size of all directories recursively found in given path - static wxULongLong GetTotalSize(const wxString &dir, wxArrayString *filesSkipped = NULL); -#endif // wxUSE_LONGLONG - - - // static utilities for directory management - // (alias to wxFileName's functions for dirs) - // ----------------------------------------- - - // test for existence of a directory with the given name - static bool Exists(const wxString& dir); - - static bool Make(const wxString &dir, int perm = wxS_DIR_DEFAULT, - int flags = 0); - - static bool Remove(const wxString &dir, int flags = 0); - - -private: - friend class wxDirData; - - wxDirData *m_data; - - wxDECLARE_NO_COPY_CLASS(wxDir); -}; - -#endif // _WX_DIR_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dirctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dirctrl.h deleted file mode 100644 index 1d9d1ba1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dirctrl.h +++ /dev/null @@ -1,17 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dirctrl.h -// Purpose: Directory control base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIRCTRL_H_BASE_ -#define _WX_DIRCTRL_H_BASE_ - -#include "wx/generic/dirctrlg.h" - -#endif - // _WX_DIRCTRL_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dirdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dirdlg.h deleted file mode 100644 index dfdbffc7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dirdlg.h +++ /dev/null @@ -1,123 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dirdlg.h -// Purpose: wxDirDialog base class -// Author: Robert Roebling -// Modified by: -// Created: -// Copyright: (c) Robert Roebling -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIRDLG_H_BASE_ -#define _WX_DIRDLG_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_DIRDLG - -#include "wx/dialog.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -extern WXDLLIMPEXP_DATA_CORE(const char) wxDirDialogNameStr[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxDirDialogDefaultFolderStr[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxDirSelectorPromptStr[]; - -#define wxDD_CHANGE_DIR 0x0100 -#define wxDD_DIR_MUST_EXIST 0x0200 - -// deprecated, on by default now, use wxDD_DIR_MUST_EXIST to disable it -#define wxDD_NEW_DIR_BUTTON 0 - -#define wxDD_DEFAULT_STYLE (wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) - -//------------------------------------------------------------------------- -// wxDirDialogBase -//------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDirDialogBase : public wxDialog -{ -public: - wxDirDialogBase() {} - wxDirDialogBase(wxWindow *parent, - const wxString& title = wxDirSelectorPromptStr, - const wxString& defaultPath = wxEmptyString, - long style = wxDD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize, - const wxString& name = wxDirDialogNameStr) - { - Create(parent, title, defaultPath, style, pos, sz, name); - } - - virtual ~wxDirDialogBase() {} - - - bool Create(wxWindow *parent, - const wxString& title = wxDirSelectorPromptStr, - const wxString& defaultPath = wxEmptyString, - long style = wxDD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize, - const wxString& name = wxDirDialogNameStr) - { - if (!wxDialog::Create(parent, wxID_ANY, title, pos, sz, style, name)) - return false; - m_path = defaultPath; - m_message = title; - return true; - } - - virtual void SetMessage(const wxString& message) { m_message = message; } - virtual void SetPath(const wxString& path) { m_path = path; } - - virtual wxString GetMessage() const { return m_message; } - virtual wxString GetPath() const { return m_path; } - -protected: - wxString m_message; - wxString m_path; -}; - - -// Universal and non-port related switches with need for generic implementation -#if defined(__WXUNIVERSAL__) - #include "wx/generic/dirdlgg.h" - #define wxDirDialog wxGenericDirDialog -#elif defined(__WXMSW__) && !wxUSE_OLE - #include "wx/generic/dirdlgg.h" - #define wxDirDialog wxGenericDirDialog -#elif defined(__WXMSW__) - #include "wx/msw/dirdlg.h" // Native MSW -#elif defined(__WXGTK20__) - #include "wx/gtk/dirdlg.h" // Native GTK for gtk2.4 -#elif defined(__WXGTK__) - #include "wx/generic/dirdlgg.h" - #define wxDirDialog wxGenericDirDialog -#elif defined(__WXMAC__) - #include "wx/osx/dirdlg.h" // Native Mac -#elif defined(__WXMOTIF__) || \ - defined(__WXX11__) - #include "wx/generic/dirdlgg.h" // Other ports use generic implementation - #define wxDirDialog wxGenericDirDialog -#elif defined(__WXQT__) - #include "wx/qt/dirdlg.h" -#endif - -// ---------------------------------------------------------------------------- -// common ::wxDirSelector() function -// ---------------------------------------------------------------------------- - -WXDLLIMPEXP_CORE wxString -wxDirSelector(const wxString& message = wxDirSelectorPromptStr, - const wxString& defaultPath = wxEmptyString, - long style = wxDD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - wxWindow *parent = NULL); - -#endif // wxUSE_DIRDLG - -#endif - // _WX_DIRDLG_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/display.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/display.h deleted file mode 100644 index 46786721..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/display.h +++ /dev/null @@ -1,127 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/display.h -// Purpose: wxDisplay class -// Author: Royce Mitchell III, Vadim Zeitlin -// Created: 06/21/02 -// Copyright: (c) 2002-2006 wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DISPLAY_H_BASE_ -#define _WX_DISPLAY_H_BASE_ - -// NB: no #if wxUSE_DISPLAY here, the display geometry part of this class (but -// not the video mode stuff) is always available but if wxUSE_DISPLAY == 0 -// it becomes just a trivial wrapper around the old wxDisplayXXX() functions - -#if wxUSE_DISPLAY - #include "wx/dynarray.h" - #include "wx/vidmode.h" - - WX_DECLARE_EXPORTED_OBJARRAY(wxVideoMode, wxArrayVideoModes); - - // default, uninitialized, video mode object - extern WXDLLIMPEXP_DATA_CORE(const wxVideoMode) wxDefaultVideoMode; -#endif // wxUSE_DISPLAY - -class WXDLLIMPEXP_FWD_CORE wxWindow; -class WXDLLIMPEXP_FWD_CORE wxPoint; -class WXDLLIMPEXP_FWD_CORE wxRect; -class WXDLLIMPEXP_FWD_BASE wxString; - -class WXDLLIMPEXP_FWD_CORE wxDisplayFactory; -class WXDLLIMPEXP_FWD_CORE wxDisplayImpl; - -// ---------------------------------------------------------------------------- -// wxDisplay: represents a display/monitor attached to the system -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDisplay -{ -public: - // initialize the object containing all information about the given - // display - // - // the displays are numbered from 0 to GetCount() - 1, 0 is always the - // primary display and the only one which is always supported - wxDisplay(unsigned n = 0); - - // dtor is not virtual as this is a concrete class not meant to be derived - // from - ~wxDisplay(); - - - // return the number of available displays, valid parameters to - // wxDisplay ctor are from 0 up to this number - static unsigned GetCount(); - - // find the display where the given point lies, return wxNOT_FOUND if - // it doesn't belong to any display - static int GetFromPoint(const wxPoint& pt); - - // find the display where the given window lies, return wxNOT_FOUND if it - // is not shown at all - static int GetFromWindow(const wxWindow *window); - - - // return true if the object was initialized successfully - bool IsOk() const { return m_impl != NULL; } - - // get the full display size - wxRect GetGeometry() const; - - // get the client area of the display, i.e. without taskbars and such - wxRect GetClientArea() const; - - // name may be empty - wxString GetName() const; - - // display 0 is usually the primary display - bool IsPrimary() const; - - -#if wxUSE_DISPLAY - // enumerate all video modes supported by this display matching the given - // one (in the sense of wxVideoMode::Match()) - // - // as any mode matches the default value of the argument and there is - // always at least one video mode supported by display, the returned array - // is only empty for the default value of the argument if this function is - // not supported at all on this platform - wxArrayVideoModes - GetModes(const wxVideoMode& mode = wxDefaultVideoMode) const; - - // get current video mode - wxVideoMode GetCurrentMode() const; - - // change current mode, return true if succeeded, false otherwise - // - // for the default value of the argument restores the video mode to default - bool ChangeMode(const wxVideoMode& mode = wxDefaultVideoMode); - - // restore the default video mode (just a more readable synonym) - void ResetMode() { (void)ChangeMode(); } -#endif // wxUSE_DISPLAY - -private: - // returns the factory used to implement our static methods and create new - // displays - static wxDisplayFactory& Factory(); - - // creates the factory object, called by Factory() when it is called for - // the first time and should return a pointer allocated with new (the - // caller will delete it) - // - // this method must be implemented in platform-specific code if - // wxUSE_DISPLAY == 1 (if it is 0 we provide the stub in common code) - static wxDisplayFactory *CreateFactory(); - - - // the real implementation - wxDisplayImpl *m_impl; - - - wxDECLARE_NO_COPY_CLASS(wxDisplay); -}; - -#endif // _WX_DISPLAY_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/display_impl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/display_impl.h deleted file mode 100644 index b6674ebf..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/display_impl.h +++ /dev/null @@ -1,109 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/display_impl.h -// Purpose: wxDisplayImpl class declaration -// Author: Vadim Zeitlin -// Created: 2006-03-15 -// Copyright: (c) 2002-2006 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DISPLAY_IMPL_H_BASE_ -#define _WX_DISPLAY_IMPL_H_BASE_ - -#include "wx/gdicmn.h" // for wxRect - -// ---------------------------------------------------------------------------- -// wxDisplayFactory: allows to create wxDisplay objects -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDisplayFactory -{ -public: - wxDisplayFactory() { } - virtual ~wxDisplayFactory() { } - - // create a new display object - // - // it can return a NULL pointer if the display creation failed - virtual wxDisplayImpl *CreateDisplay(unsigned n) = 0; - - // get the total number of displays - virtual unsigned GetCount() = 0; - - // return the display for the given point or wxNOT_FOUND - virtual int GetFromPoint(const wxPoint& pt) = 0; - - // return the display for the given window or wxNOT_FOUND - // - // the window pointer must not be NULL (i.e. caller should check it) - virtual int GetFromWindow(const wxWindow *window); -}; - -// ---------------------------------------------------------------------------- -// wxDisplayImpl: base class for all wxDisplay implementations -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDisplayImpl -{ -public: - // virtual dtor for this base class - virtual ~wxDisplayImpl() { } - - - // return the full area of this display - virtual wxRect GetGeometry() const = 0; - - // return the area of the display available for normal windows - virtual wxRect GetClientArea() const { return GetGeometry(); } - - // return the name (may be empty) - virtual wxString GetName() const = 0; - - // return the index of this display - unsigned GetIndex() const { return m_index; } - - // return true if this is the primary monitor (usually one with index 0) - virtual bool IsPrimary() const { return GetIndex() == 0; } - - -#if wxUSE_DISPLAY - // implements wxDisplay::GetModes() - virtual wxArrayVideoModes GetModes(const wxVideoMode& mode) const = 0; - - // get current video mode - virtual wxVideoMode GetCurrentMode() const = 0; - - // change current mode, return true if succeeded, false otherwise - virtual bool ChangeMode(const wxVideoMode& mode) = 0; -#endif // wxUSE_DISPLAY - -protected: - // create the object providing access to the display with the given index - wxDisplayImpl(unsigned n) : m_index(n) { } - - - // the index of this display (0 is always the primary one) - const unsigned m_index; - - - friend class wxDisplayFactory; - - wxDECLARE_NO_COPY_CLASS(wxDisplayImpl); -}; - -// ---------------------------------------------------------------------------- -// wxDisplayFactorySingle -// ---------------------------------------------------------------------------- - -// this is a stub implementation using single/main display only, it is -// available even if wxUSE_DISPLAY == 0 -class WXDLLIMPEXP_CORE wxDisplayFactorySingle : public wxDisplayFactory -{ -public: - virtual wxDisplayImpl *CreateDisplay(unsigned n); - virtual unsigned GetCount() { return 1; } - virtual int GetFromPoint(const wxPoint& pt); -}; - -#endif // _WX_DISPLAY_IMPL_H_BASE_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dlimpexp.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dlimpexp.h deleted file mode 100644 index 3412137f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dlimpexp.h +++ /dev/null @@ -1,316 +0,0 @@ -/* - * Name: wx/dlimpexp.h - * Purpose: Macros for declaring DLL-imported/exported functions - * Author: Vadim Zeitlin - * Modified by: - * Created: 16.10.2003 (extracted from wx/defs.h) - * Copyright: (c) 2003 Vadim Zeitlin - * Licence: wxWindows licence - */ - -/* - This is a C file, not C++ one, do not use C++ comments here! - */ - -#ifndef _WX_DLIMPEXP_H_ -#define _WX_DLIMPEXP_H_ - -#if defined(HAVE_VISIBILITY) -# define WXEXPORT __attribute__ ((visibility("default"))) -# define WXIMPORT __attribute__ ((visibility("default"))) -#elif defined(__WINDOWS__) - /* - __declspec works in BC++ 5 and later as well as VC++. - */ -# if defined(__VISUALC__) || defined(__BORLANDC__) -# define WXEXPORT __declspec(dllexport) -# define WXIMPORT __declspec(dllimport) - /* - While gcc also supports __declspec(dllexport), it created unusably huge - DLL files in gcc 4.[56] (while taking horribly long amounts of time), - see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601. Because of this - we rely on binutils auto export/import support which seems to work - quite well for 4.5+. However the problem was fixed in 4.7 and later and - not exporting everything creates smaller DLLs (~8% size difference), so - do use the explicit attributes again for the newer versions. - */ -# elif defined(__GNUC__) && \ - (!wxCHECK_GCC_VERSION(4, 5) || wxCHECK_GCC_VERSION(4, 7)) - /* - __declspec could be used here too but let's use the native - __attribute__ instead for clarity. - */ -# define WXEXPORT __attribute__((dllexport)) -# define WXIMPORT __attribute__((dllimport)) -# endif -#elif defined(__CYGWIN__) -# define WXEXPORT __declspec(dllexport) -# define WXIMPORT __declspec(dllimport) -#endif - -/* for other platforms/compilers we don't anything */ -#ifndef WXEXPORT -# define WXEXPORT -# define WXIMPORT -#endif - -/* - We support building wxWidgets as a set of several libraries but we don't - support arbitrary combinations of libs/DLLs: either we build all of them as - DLLs (in which case WXMAKINGDLL is defined) or none (it isn't). - - However we have a problem because we need separate WXDLLIMPEXP versions for - different libraries as, for example, wxString class should be dllexported - when compiled in wxBase and dllimported otherwise, so we do define separate - WXMAKING/USINGDLL_XYZ constants for each component XYZ. - */ -#ifdef WXMAKINGDLL -# if wxUSE_BASE -# define WXMAKINGDLL_BASE -# endif - -# define WXMAKINGDLL_NET -# define WXMAKINGDLL_CORE -# define WXMAKINGDLL_ADV -# define WXMAKINGDLL_QA -# define WXMAKINGDLL_HTML -# define WXMAKINGDLL_GL -# define WXMAKINGDLL_XML -# define WXMAKINGDLL_XRC -# define WXMAKINGDLL_AUI -# define WXMAKINGDLL_PROPGRID -# define WXMAKINGDLL_RIBBON -# define WXMAKINGDLL_RICHTEXT -# define WXMAKINGDLL_MEDIA -# define WXMAKINGDLL_STC -# define WXMAKINGDLL_WEBVIEW -#endif /* WXMAKINGDLL */ - -/* - WXDLLIMPEXP_CORE maps to export declaration when building the DLL, to import - declaration if using it or to nothing at all if we don't use wxWin as DLL - */ -#ifdef WXMAKINGDLL_BASE -# define WXDLLIMPEXP_BASE WXEXPORT -# define WXDLLIMPEXP_DATA_BASE(type) WXEXPORT type -# if defined(HAVE_VISIBILITY) -# define WXDLLIMPEXP_INLINE_BASE WXEXPORT -# else -# define WXDLLIMPEXP_INLINE_BASE -# endif -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_BASE WXIMPORT -# define WXDLLIMPEXP_DATA_BASE(type) WXIMPORT type -# if defined(HAVE_VISIBILITY) -# define WXDLLIMPEXP_INLINE_BASE WXIMPORT -# else -# define WXDLLIMPEXP_INLINE_BASE -# endif -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_BASE -# define WXDLLIMPEXP_DATA_BASE(type) type -# define WXDLLIMPEXP_INLINE_BASE -#endif - -#ifdef WXMAKINGDLL_NET -# define WXDLLIMPEXP_NET WXEXPORT -# define WXDLLIMPEXP_DATA_NET(type) WXEXPORT type -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_NET WXIMPORT -# define WXDLLIMPEXP_DATA_NET(type) WXIMPORT type -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_NET -# define WXDLLIMPEXP_DATA_NET(type) type -#endif - -#ifdef WXMAKINGDLL_CORE -# define WXDLLIMPEXP_CORE WXEXPORT -# define WXDLLIMPEXP_DATA_CORE(type) WXEXPORT type -# if defined(HAVE_VISIBILITY) -# define WXDLLIMPEXP_INLINE_CORE WXEXPORT -# else -# define WXDLLIMPEXP_INLINE_CORE -# endif -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_CORE WXIMPORT -# define WXDLLIMPEXP_DATA_CORE(type) WXIMPORT type -# if defined(HAVE_VISIBILITY) -# define WXDLLIMPEXP_INLINE_CORE WXIMPORT -# else -# define WXDLLIMPEXP_INLINE_CORE -# endif -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_CORE -# define WXDLLIMPEXP_DATA_CORE(type) type -# define WXDLLIMPEXP_INLINE_CORE -#endif - -#ifdef WXMAKINGDLL_ADV -# define WXDLLIMPEXP_ADV WXEXPORT -# define WXDLLIMPEXP_DATA_ADV(type) WXEXPORT type -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_ADV WXIMPORT -# define WXDLLIMPEXP_DATA_ADV(type) WXIMPORT type -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_ADV -# define WXDLLIMPEXP_DATA_ADV(type) type -#endif - -#ifdef WXMAKINGDLL_QA -# define WXDLLIMPEXP_QA WXEXPORT -# define WXDLLIMPEXP_DATA_QA(type) WXEXPORT type -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_QA WXIMPORT -# define WXDLLIMPEXP_DATA_QA(type) WXIMPORT type -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_QA -# define WXDLLIMPEXP_DATA_QA(type) type -#endif - -#ifdef WXMAKINGDLL_HTML -# define WXDLLIMPEXP_HTML WXEXPORT -# define WXDLLIMPEXP_DATA_HTML(type) WXEXPORT type -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_HTML WXIMPORT -# define WXDLLIMPEXP_DATA_HTML(type) WXIMPORT type -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_HTML -# define WXDLLIMPEXP_DATA_HTML(type) type -#endif - -#ifdef WXMAKINGDLL_GL -# define WXDLLIMPEXP_GL WXEXPORT -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_GL WXIMPORT -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_GL -#endif - -#ifdef WXMAKINGDLL_XML -# define WXDLLIMPEXP_XML WXEXPORT -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_XML WXIMPORT -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_XML -#endif - -#ifdef WXMAKINGDLL_XRC -# define WXDLLIMPEXP_XRC WXEXPORT -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_XRC WXIMPORT -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_XRC -#endif - -#ifdef WXMAKINGDLL_AUI -# define WXDLLIMPEXP_AUI WXEXPORT -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_AUI WXIMPORT -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_AUI -#endif - -#ifdef WXMAKINGDLL_PROPGRID -# define WXDLLIMPEXP_PROPGRID WXEXPORT -# define WXDLLIMPEXP_DATA_PROPGRID(type) WXEXPORT type -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_PROPGRID WXIMPORT -# define WXDLLIMPEXP_DATA_PROPGRID(type) WXIMPORT type -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_PROPGRID -# define WXDLLIMPEXP_DATA_PROPGRID(type) type -#endif - -#ifdef WXMAKINGDLL_RIBBON -# define WXDLLIMPEXP_RIBBON WXEXPORT -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_RIBBON WXIMPORT -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_RIBBON -#endif - -#ifdef WXMAKINGDLL_RICHTEXT -# define WXDLLIMPEXP_RICHTEXT WXEXPORT -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_RICHTEXT WXIMPORT -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_RICHTEXT -#endif - -#ifdef WXMAKINGDLL_MEDIA -# define WXDLLIMPEXP_MEDIA WXEXPORT -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_MEDIA WXIMPORT -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_MEDIA -#endif - -#ifdef WXMAKINGDLL_STC -# define WXDLLIMPEXP_STC WXEXPORT -# define WXDLLIMPEXP_DATA_STC(type) WXEXPORT type -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_STC WXIMPORT -# define WXDLLIMPEXP_DATA_STC(type) WXIMPORT type -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_STC -# define WXDLLIMPEXP_DATA_STC(type) type -#endif - -#ifdef WXMAKINGDLL_WEBVIEW -# define WXDLLIMPEXP_WEBVIEW WXEXPORT -# define WXDLLIMPEXP_DATA_WEBVIEW(type) WXEXPORT type -#elif defined(WXUSINGDLL) -# define WXDLLIMPEXP_WEBVIEW WXIMPORT -# define WXDLLIMPEXP_DATA_WEBVIEW(type) WXIMPORT type -#else /* not making nor using DLL */ -# define WXDLLIMPEXP_WEBVIEW -# define WXDLLIMPEXP_DATA_WEBVIEW(type) type -#endif - -/* - GCC warns about using __attribute__ (and also __declspec in mingw32 case) on - forward declarations while MSVC complains about forward declarations without - __declspec for the classes later declared with it, so we need a separate set - of macros for forward declarations to hide this difference: - */ -#if defined(HAVE_VISIBILITY) || (defined(__WINDOWS__) && defined(__GNUC__)) - #define WXDLLIMPEXP_FWD_BASE - #define WXDLLIMPEXP_FWD_NET - #define WXDLLIMPEXP_FWD_CORE - #define WXDLLIMPEXP_FWD_ADV - #define WXDLLIMPEXP_FWD_QA - #define WXDLLIMPEXP_FWD_HTML - #define WXDLLIMPEXP_FWD_GL - #define WXDLLIMPEXP_FWD_XML - #define WXDLLIMPEXP_FWD_XRC - #define WXDLLIMPEXP_FWD_AUI - #define WXDLLIMPEXP_FWD_PROPGRID - #define WXDLLIMPEXP_FWD_RIBBON - #define WXDLLIMPEXP_FWD_RICHTEXT - #define WXDLLIMPEXP_FWD_MEDIA - #define WXDLLIMPEXP_FWD_STC - #define WXDLLIMPEXP_FWD_WEBVIEW -#else - #define WXDLLIMPEXP_FWD_BASE WXDLLIMPEXP_BASE - #define WXDLLIMPEXP_FWD_NET WXDLLIMPEXP_NET - #define WXDLLIMPEXP_FWD_CORE WXDLLIMPEXP_CORE - #define WXDLLIMPEXP_FWD_ADV WXDLLIMPEXP_ADV - #define WXDLLIMPEXP_FWD_QA WXDLLIMPEXP_QA - #define WXDLLIMPEXP_FWD_HTML WXDLLIMPEXP_HTML - #define WXDLLIMPEXP_FWD_GL WXDLLIMPEXP_GL - #define WXDLLIMPEXP_FWD_XML WXDLLIMPEXP_XML - #define WXDLLIMPEXP_FWD_XRC WXDLLIMPEXP_XRC - #define WXDLLIMPEXP_FWD_AUI WXDLLIMPEXP_AUI - #define WXDLLIMPEXP_FWD_PROPGRID WXDLLIMPEXP_PROPGRID - #define WXDLLIMPEXP_FWD_RIBBON WXDLLIMPEXP_RIBBON - #define WXDLLIMPEXP_FWD_RICHTEXT WXDLLIMPEXP_RICHTEXT - #define WXDLLIMPEXP_FWD_MEDIA WXDLLIMPEXP_MEDIA - #define WXDLLIMPEXP_FWD_STC WXDLLIMPEXP_STC - #define WXDLLIMPEXP_FWD_WEBVIEW WXDLLIMPEXP_WEBVIEW -#endif - -/* for backwards compatibility, define suffix-less versions too */ -#define WXDLLEXPORT WXDLLIMPEXP_CORE -#define WXDLLEXPORT_DATA WXDLLIMPEXP_DATA_CORE - -#endif /* _WX_DLIMPEXP_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dlist.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dlist.h deleted file mode 100644 index e0d23106..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dlist.h +++ /dev/null @@ -1,848 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/dlist.h -// Purpose: wxDList which is a template version of wxList -// Author: Robert Roebling -// Created: 18.09.2008 -// Copyright: (c) 2008 wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DLIST_H_ -#define _WX_DLIST_H_ - -#include "wx/defs.h" -#include "wx/utils.h" - -#if wxUSE_STD_CONTAINERS - -#include "wx/beforestd.h" -#include -#include -#include -#include "wx/afterstd.h" - -template -class wxDList: public std::list -{ -private: - bool m_destroy; - typedef std::list BaseListType; - typedef wxDList ListType; - -public: - typedef typename BaseListType::iterator iterator; - - class compatibility_iterator - { - private: - friend class wxDList; - - iterator m_iter; - ListType *m_list; - - public: - compatibility_iterator() - : m_iter(), m_list( NULL ) {} - compatibility_iterator( ListType* li, iterator i ) - : m_iter( i ), m_list( li ) {} - compatibility_iterator( const ListType* li, iterator i ) - : m_iter( i ), m_list( const_cast(li) ) {} - - compatibility_iterator* operator->() { return this; } - const compatibility_iterator* operator->() const { return this; } - - bool operator==(const compatibility_iterator& i) const - { - wxASSERT_MSG( m_list && i.m_list, - "comparing invalid iterators is illegal" ); - return (m_list == i.m_list) && (m_iter == i.m_iter); - } - bool operator!=(const compatibility_iterator& i) const - { return !( operator==( i ) ); } - operator bool() const - { return m_list ? m_iter != m_list->end() : false; } - bool operator !() const - { return !( operator bool() ); } - - T* GetData() const { return *m_iter; } - void SetData( T* e ) { *m_iter = e; } - - compatibility_iterator GetNext() const - { - iterator i = m_iter; - return compatibility_iterator( m_list, ++i ); - } - - compatibility_iterator GetPrevious() const - { - if ( m_iter == m_list->begin() ) - return compatibility_iterator(); - - iterator i = m_iter; - return compatibility_iterator( m_list, --i ); - } - - int IndexOf() const - { - return *this ? std::distance( m_list->begin(), m_iter ) - : wxNOT_FOUND; - } - }; - -public: - wxDList() : m_destroy( false ) {} - - ~wxDList() { Clear(); } - - compatibility_iterator Find( const T* e ) const - { - return compatibility_iterator( this, - std::find( const_cast(this)->begin(), - const_cast(this)->end(), e ) ); - } - - bool IsEmpty() const - { return this->empty(); } - size_t GetCount() const - { return this->size(); } - - compatibility_iterator Item( size_t idx ) const - { - iterator i = const_cast(this)->begin(); - std::advance( i, idx ); - return compatibility_iterator( this, i ); - } - - T* operator[](size_t idx) const - { - return Item(idx).GetData(); - } - - compatibility_iterator GetFirst() const - { - return compatibility_iterator( this, const_cast(this)->begin() ); - } - compatibility_iterator GetLast() const - { - iterator i = const_cast(this)->end(); - return compatibility_iterator( this, !(this->empty()) ? --i : i ); - } - compatibility_iterator Member( T* e ) const - { return Find( e ); } - compatibility_iterator Nth( int n ) const - { return Item( n ); } - int IndexOf( T* e ) const - { return Find( e ).IndexOf(); } - - compatibility_iterator Append( T* e ) - { - this->push_back( e ); - return GetLast(); - } - - compatibility_iterator Insert( T* e ) - { - this->push_front( e ); - return compatibility_iterator( this, this->begin() ); - } - - compatibility_iterator Insert( compatibility_iterator & i, T* e ) - { - return compatibility_iterator( this, this->insert( i.m_iter, e ) ); - } - - compatibility_iterator Insert( size_t idx, T* e ) - { - return compatibility_iterator( this, - this->insert( Item( idx ).m_iter, e ) ); - } - - void DeleteContents( bool destroy ) - { m_destroy = destroy; } - - bool GetDeleteContents() const - { return m_destroy; } - - void Erase( const compatibility_iterator& i ) - { - if ( m_destroy ) - delete i->GetData(); - this->erase( i.m_iter ); - } - - bool DeleteNode( const compatibility_iterator& i ) - { - if( i ) - { - Erase( i ); - return true; - } - return false; - } - - bool DeleteObject( T* e ) - { - return DeleteNode( Find( e ) ); - } - - void Clear() - { - if ( m_destroy ) - { - iterator it, en; - for ( it = this->begin(), en = this->end(); it != en; ++it ) - delete *it; - } - this->clear(); - } -}; - -#else // !wxUSE_STD_CONTAINERS - -template -class wxDList -{ -public: - class Node - { - public: - Node(wxDList *list = NULL, - Node *previous = NULL, - Node *next = NULL, - T *data = NULL) - { - m_list = list; - m_previous = previous; - m_next = next; - m_data = data; - if (previous) - previous->m_next = this; - if (next) - next->m_previous = this; - } - - ~Node() - { - // handle the case when we're being deleted from the list by - // the user (i.e. not by the list itself from DeleteNode) - - // we must do it for compatibility with old code - if (m_list != NULL) - m_list->DetachNode(this); - } - - void DeleteData() - { - delete m_data; - } - - Node *GetNext() const { return m_next; } - Node *GetPrevious() const { return m_previous; } - T *GetData() const { return m_data; } - T **GetDataPtr() const { return &(wx_const_cast(nodetype*,this)->m_data); } - void SetData( T *data ) { m_data = data; } - - int IndexOf() const - { - wxCHECK_MSG( m_list, wxNOT_FOUND, - "node doesn't belong to a list in IndexOf" ); - - int i; - Node *prev = m_previous; - for( i = 0; prev; i++ ) - prev = prev->m_previous; - return i; - } - - private: - T *m_data; // user data - Node *m_next, // next and previous nodes in the list - *m_previous; - wxDList *m_list; // list we belong to - - friend class wxDList; - }; - - typedef Node nodetype; - - class compatibility_iterator - { - public: - compatibility_iterator(nodetype *ptr = NULL) : m_ptr(ptr) { } - nodetype *operator->() const { return m_ptr; } - operator nodetype *() const { return m_ptr; } - - private: - nodetype *m_ptr; - }; - -private: - void Init() - { - m_nodeFirst = - m_nodeLast = NULL; - m_count = 0; - m_destroy = false; - } - - void DoDeleteNode( nodetype *node ) - { - if ( m_destroy ) - node->DeleteData(); - // so that the node knows that it's being deleted by the list - node->m_list = NULL; - delete node; - } - - size_t m_count; // number of elements in the list - bool m_destroy; // destroy user data when deleting list items? - nodetype *m_nodeFirst, // pointers to the head and tail of the list - *m_nodeLast; - -public: - wxDList() - { - Init(); - } - - wxDList( const wxDList& list ) - { - Init(); - Assign(list); - } - - wxDList( size_t count, T *elements[] ) - { - Init(); - size_t n; - for (n = 0; n < count; n++) - Append( elements[n] ); - } - - wxDList& operator=( const wxDList& list ) - { - if (&list != this) - Assign(list); - return *this; - } - - ~wxDList() - { - nodetype *each = m_nodeFirst; - while ( each != NULL ) - { - nodetype *next = each->GetNext(); - DoDeleteNode(each); - each = next; - } - } - - void Assign(const wxDList &list) - { - wxASSERT_MSG( !list.m_destroy, - "copying list which owns it's elements is a bad idea" ); - Clear(); - m_destroy = list.m_destroy; - m_nodeFirst = NULL; - m_nodeLast = NULL; - nodetype* node; - for (node = list.GetFirst(); node; node = node->GetNext() ) - Append(node->GetData()); - wxASSERT_MSG( m_count == list.m_count, "logic error in Assign()" ); - } - - nodetype *Append( T *object ) - { - nodetype *node = new nodetype( this, m_nodeLast, NULL, object ); - - if ( !m_nodeFirst ) - { - m_nodeFirst = node; - m_nodeLast = m_nodeFirst; - } - else - { - m_nodeLast->m_next = node; - m_nodeLast = node; - } - m_count++; - return node; - } - - nodetype *Insert( T* object ) - { - return Insert( NULL, object ); - } - - nodetype *Insert( size_t pos, T* object ) - { - if (pos == m_count) - return Append( object ); - else - return Insert( Item(pos), object ); - } - - nodetype *Insert( nodetype *position, T* object ) - { - wxCHECK_MSG( !position || position->m_list == this, NULL, - "can't insert before a node from another list" ); - - // previous and next node for the node being inserted - nodetype *prev, *next; - if ( position ) - { - prev = position->GetPrevious(); - next = position; - } - else - { - // inserting in the beginning of the list - prev = NULL; - next = m_nodeFirst; - } - nodetype *node = new nodetype( this, prev, next, object ); - if ( !m_nodeFirst ) - m_nodeLast = node; - if ( prev == NULL ) - m_nodeFirst = node; - m_count++; - return node; - } - - nodetype *GetFirst() const { return m_nodeFirst; } - nodetype *GetLast() const { return m_nodeLast; } - size_t GetCount() const { return m_count; } - bool IsEmpty() const { return m_count == 0; } - - void DeleteContents(bool destroy) { m_destroy = destroy; } - bool GetDeleteContents() const { return m_destroy; } - - nodetype *Item(size_t index) const - { - for ( nodetype *current = GetFirst(); current; current = current->GetNext() ) - { - if ( index-- == 0 ) - return current; - } - wxFAIL_MSG( "invalid index in Item()" ); - return NULL; - } - - T *operator[](size_t index) const - { - nodetype *node = Item(index); - return node ? node->GetData() : NULL; - } - - nodetype *DetachNode( nodetype *node ) - { - wxCHECK_MSG( node, NULL, "detaching NULL wxNodeBase" ); - wxCHECK_MSG( node->m_list == this, NULL, - "detaching node which is not from this list" ); - // update the list - nodetype **prevNext = node->GetPrevious() ? &node->GetPrevious()->m_next - : &m_nodeFirst; - nodetype **nextPrev = node->GetNext() ? &node->GetNext()->m_previous - : &m_nodeLast; - *prevNext = node->GetNext(); - *nextPrev = node->GetPrevious(); - m_count--; - // mark the node as not belonging to this list any more - node->m_list = NULL; - return node; - } - - void Erase( nodetype *node ) - { - DeleteNode(node); - } - - bool DeleteNode( nodetype *node ) - { - if ( !DetachNode(node) ) - return false; - DoDeleteNode(node); - return true; - } - - bool DeleteObject( T *object ) - { - for ( nodetype *current = GetFirst(); current; current = current->GetNext() ) - { - if ( current->GetData() == object ) - { - DeleteNode(current); - return true; - } - } - // not found - return false; - } - - nodetype *Find(const T *object) const - { - for ( nodetype *current = GetFirst(); current; current = current->GetNext() ) - { - if ( current->GetData() == object ) - return current; - } - // not found - return NULL; - } - - int IndexOf(const T *object) const - { - int n = 0; - for ( nodetype *current = GetFirst(); current; current = current->GetNext() ) - { - if ( current->GetData() == object ) - return n; - n++; - } - return wxNOT_FOUND; - } - - void Clear() - { - nodetype *current = m_nodeFirst; - while ( current ) - { - nodetype *next = current->GetNext(); - DoDeleteNode(current); - current = next; - } - m_nodeFirst = - m_nodeLast = NULL; - m_count = 0; - } - - void Reverse() - { - nodetype * node = m_nodeFirst; - nodetype* tmp; - while (node) - { - // swap prev and next pointers - tmp = node->m_next; - node->m_next = node->m_previous; - node->m_previous = tmp; - // this is the node that was next before swapping - node = tmp; - } - // swap first and last node - tmp = m_nodeFirst; m_nodeFirst = m_nodeLast; m_nodeLast = tmp; - } - - void DeleteNodes(nodetype* first, nodetype* last) - { - nodetype * node = first; - while (node != last) - { - nodetype* next = node->GetNext(); - DeleteNode(node); - node = next; - } - } - - void ForEach(wxListIterateFunction F) - { - for ( nodetype *current = GetFirst(); current; current = current->GetNext() ) - (*F)(current->GetData()); - } - - T *FirstThat(wxListIterateFunction F) - { - for ( nodetype *current = GetFirst(); current; current = current->GetNext() ) - { - if ( (*F)(current->GetData()) ) - return current->GetData(); - } - return NULL; - } - - T *LastThat(wxListIterateFunction F) - { - for ( nodetype *current = GetLast(); current; current = current->GetPrevious() ) - { - if ( (*F)(current->GetData()) ) - return current->GetData(); - } - return NULL; - } - - /* STL interface */ -public: - typedef size_t size_type; - typedef int difference_type; - typedef T* value_type; - typedef value_type& reference; - typedef const value_type& const_reference; - - class iterator - { - public: - typedef nodetype Node; - typedef iterator itor; - typedef T* value_type; - typedef value_type* ptr_type; - typedef value_type& reference; - - Node* m_node; - Node* m_init; - public: - typedef reference reference_type; - typedef ptr_type pointer_type; - - iterator(Node* node, Node* init) : m_node(node), m_init(init) {} - iterator() : m_node(NULL), m_init(NULL) { } - reference_type operator*() const - { return *m_node->GetDataPtr(); } - // ptrop - itor& operator++() { m_node = m_node->GetNext(); return *this; } - const itor operator++(int) - { itor tmp = *this; m_node = m_node->GetNext(); return tmp; } - itor& operator--() - { - m_node = m_node ? m_node->GetPrevious() : m_init; - return *this; - } - const itor operator--(int) - { - itor tmp = *this; - m_node = m_node ? m_node->GetPrevious() : m_init; - return tmp; - } - bool operator!=(const itor& it) const - { return it.m_node != m_node; } - bool operator==(const itor& it) const - { return it.m_node == m_node; } - }; - class const_iterator - { - public: - typedef nodetype Node; - typedef T* value_type; - typedef const value_type& const_reference; - typedef const_iterator itor; - typedef value_type* ptr_type; - - Node* m_node; - Node* m_init; - public: - typedef const_reference reference_type; - typedef const ptr_type pointer_type; - - const_iterator(Node* node, Node* init) - : m_node(node), m_init(init) { } - const_iterator() : m_node(NULL), m_init(NULL) { } - const_iterator(const iterator& it) - : m_node(it.m_node), m_init(it.m_init) { } - reference_type operator*() const - { return *m_node->GetDataPtr(); } - // ptrop - itor& operator++() { m_node = m_node->GetNext(); return *this; } - const itor operator++(int) - { itor tmp = *this; m_node = m_node->GetNext(); return tmp; } - itor& operator--() - { - m_node = m_node ? m_node->GetPrevious() : m_init; - return *this; - } - const itor operator--(int) - { - itor tmp = *this; - m_node = m_node ? m_node->GetPrevious() : m_init; - return tmp; - } - bool operator!=(const itor& it) const - { return it.m_node != m_node; } - bool operator==(const itor& it) const - { return it.m_node == m_node; } - }; - - class reverse_iterator - { - public: - typedef nodetype Node; - typedef T* value_type; - typedef reverse_iterator itor; - typedef value_type* ptr_type; - typedef value_type& reference; - - Node* m_node; - Node* m_init; - public: - typedef reference reference_type; - typedef ptr_type pointer_type; - - reverse_iterator(Node* node, Node* init) - : m_node(node), m_init(init) { } - reverse_iterator() : m_node(NULL), m_init(NULL) { } - reference_type operator*() const - { return *m_node->GetDataPtr(); } - // ptrop - itor& operator++() - { m_node = m_node->GetPrevious(); return *this; } - const itor operator++(int) - { itor tmp = *this; m_node = m_node->GetPrevious(); return tmp; } - itor& operator--() - { m_node = m_node ? m_node->GetNext() : m_init; return *this; } - const itor operator--(int) - { - itor tmp = *this; - m_node = m_node ? m_node->GetNext() : m_init; - return tmp; - } - bool operator!=(const itor& it) const - { return it.m_node != m_node; } - bool operator==(const itor& it) const - { return it.m_node == m_node; } - }; - - class const_reverse_iterator - { - public: - typedef nodetype Node; - typedef T* value_type; - typedef const_reverse_iterator itor; - typedef value_type* ptr_type; - typedef const value_type& const_reference; - - Node* m_node; - Node* m_init; - public: - typedef const_reference reference_type; - typedef const ptr_type pointer_type; - - const_reverse_iterator(Node* node, Node* init) - : m_node(node), m_init(init) { } - const_reverse_iterator() : m_node(NULL), m_init(NULL) { } - const_reverse_iterator(const reverse_iterator& it) - : m_node(it.m_node), m_init(it.m_init) { } - reference_type operator*() const - { return *m_node->GetDataPtr(); } - // ptrop - itor& operator++() - { m_node = m_node->GetPrevious(); return *this; } - const itor operator++(int) - { itor tmp = *this; m_node = m_node->GetPrevious(); return tmp; } - itor& operator--() - { m_node = m_node ? m_node->GetNext() : m_init; return *this;} - const itor operator--(int) - { - itor tmp = *this; - m_node = m_node ? m_node->GetNext() : m_init; - return tmp; - } - bool operator!=(const itor& it) const - { return it.m_node != m_node; } - bool operator==(const itor& it) const - { return it.m_node == m_node; } - }; - - wxEXPLICIT wxDList(size_type n, const_reference v = value_type()) - { assign(n, v); } - wxDList(const const_iterator& first, const const_iterator& last) - { assign(first, last); } - iterator begin() { return iterator(GetFirst(), GetLast()); } - const_iterator begin() const - { return const_iterator(GetFirst(), GetLast()); } - iterator end() { return iterator(NULL, GetLast()); } - const_iterator end() const { return const_iterator(NULL, GetLast()); } - reverse_iterator rbegin() - { return reverse_iterator(GetLast(), GetFirst()); } - const_reverse_iterator rbegin() const - { return const_reverse_iterator(GetLast(), GetFirst()); } - reverse_iterator rend() { return reverse_iterator(NULL, GetFirst()); } - const_reverse_iterator rend() const - { return const_reverse_iterator(NULL, GetFirst()); } - void resize(size_type n, value_type v = value_type()) - { - while (n < size()) - pop_back(); - while (n > size()) - push_back(v); - } - size_type size() const { return GetCount(); } - size_type max_size() const { return INT_MAX; } - bool empty() const { return IsEmpty(); } - reference front() { return *begin(); } - const_reference front() const { return *begin(); } - reference back() { iterator tmp = end(); return *--tmp; } - const_reference back() const { const_iterator tmp = end(); return *--tmp; } - void push_front(const_reference v = value_type()) - { Insert(GetFirst(), v); } - void pop_front() { DeleteNode(GetFirst()); } - void push_back(const_reference v = value_type()) - { Append( v ); } - void pop_back() { DeleteNode(GetLast()); } - void assign(const_iterator first, const const_iterator& last) - { - clear(); - for(; first != last; ++first) - Append(*first); - } - void assign(size_type n, const_reference v = value_type()) - { - clear(); - for(size_type i = 0; i < n; ++i) - Append(v); - } - iterator insert(const iterator& it, const_reference v) - { - if (it == end()) - Append( v ); - else - Insert(it.m_node,v); - iterator itprev(it); - return itprev--; - } - void insert(const iterator& it, size_type n, const_reference v) - { - for(size_type i = 0; i < n; ++i) - Insert(it.m_node, v); - } - void insert(const iterator& it, const_iterator first, const const_iterator& last) - { - for(; first != last; ++first) - Insert(it.m_node, *first); - } - iterator erase(const iterator& it) - { - iterator next = iterator(it.m_node->GetNext(), GetLast()); - DeleteNode(it.m_node); return next; - } - iterator erase(const iterator& first, const iterator& last) - { - iterator next = last; ++next; - DeleteNodes(first.m_node, last.m_node); - return next; - } - void clear() { Clear(); } - void splice(const iterator& it, wxDList& l, const iterator& first, const iterator& last) - { insert(it, first, last); l.erase(first, last); } - void splice(const iterator& it, wxDList& l) - { splice(it, l, l.begin(), l.end() ); } - void splice(const iterator& it, wxDList& l, const iterator& first) - { - iterator tmp = first; ++tmp; - if(it == first || it == tmp) return; - insert(it, *first); - l.erase(first); - } - void remove(const_reference v) - { DeleteObject(v); } - void reverse() - { Reverse(); } - /* void swap(list& l) - { - { size_t t = m_count; m_count = l.m_count; l.m_count = t; } - { bool t = m_destroy; m_destroy = l.m_destroy; l.m_destroy = t; } - { wxNodeBase* t = m_nodeFirst; m_nodeFirst = l.m_nodeFirst; l.m_nodeFirst = t; } - { wxNodeBase* t = m_nodeLast; m_nodeLast = l.m_nodeLast; l.m_nodeLast = t; } - { wxKeyType t = m_keyType; m_keyType = l.m_keyType; l.m_keyType = t; } - } */ -}; - -#endif // wxUSE_STD_CONTAINERS/!wxUSE_STD_CONTAINERS - -#endif // _WX_DLIST_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dnd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dnd.h deleted file mode 100644 index 2f3f3333..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dnd.h +++ /dev/null @@ -1,266 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/dnd.h -// Purpose: Drag and drop classes declarations -// Author: Vadim Zeitlin, Robert Roebling -// Modified by: -// Created: 26.05.99 -// Copyright: (c) wxWidgets Team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DND_H_BASE_ -#define _WX_DND_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_DRAG_AND_DROP - -#include "wx/dataobj.h" -#include "wx/cursor.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// flags for wxDropSource::DoDragDrop() -// -// NB: wxDrag_CopyOnly must be 0 (== FALSE) and wxDrag_AllowMove must be 1 -// (== TRUE) for compatibility with the old DoDragDrop(bool) method! -enum -{ - wxDrag_CopyOnly = 0, // allow only copying - wxDrag_AllowMove = 1, // allow moving (copying is always allowed) - wxDrag_DefaultMove = 3 // the default operation is move, not copy -}; - -// result of wxDropSource::DoDragDrop() call -enum wxDragResult -{ - wxDragError, // error prevented the d&d operation from completing - wxDragNone, // drag target didn't accept the data - wxDragCopy, // the data was successfully copied - wxDragMove, // the data was successfully moved (MSW only) - wxDragLink, // operation is a drag-link - wxDragCancel // the operation was cancelled by user (not an error) -}; - -// return true if res indicates that something was done during a dnd operation, -// i.e. is neither error nor none nor cancel -WXDLLIMPEXP_CORE bool wxIsDragResultOk(wxDragResult res); - -// ---------------------------------------------------------------------------- -// wxDropSource is the object you need to create (and call DoDragDrop on it) -// to initiate a drag-and-drop operation -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDropSourceBase -{ -public: - wxDropSourceBase(const wxCursor &cursorCopy = wxNullCursor, - const wxCursor &cursorMove = wxNullCursor, - const wxCursor &cursorStop = wxNullCursor) - : m_cursorCopy(cursorCopy), - m_cursorMove(cursorMove), - m_cursorStop(cursorStop) - { m_data = NULL; } - virtual ~wxDropSourceBase() { } - - // set the data which is transferred by drag and drop - void SetData(wxDataObject& data) - { m_data = &data; } - - wxDataObject *GetDataObject() - { return m_data; } - - // set the icon corresponding to given drag result - void SetCursor(wxDragResult res, const wxCursor& cursor) - { - if ( res == wxDragCopy ) - m_cursorCopy = cursor; - else if ( res == wxDragMove ) - m_cursorMove = cursor; - else - m_cursorStop = cursor; - } - - // start drag action, see enum wxDragResult for return value description - // - // if flags contains wxDrag_AllowMove, moving (and only copying) data is - // allowed, if it contains wxDrag_DefaultMove (which includes the previous - // flag), it is even the default operation - virtual wxDragResult DoDragDrop(int flags = wxDrag_CopyOnly) = 0; - - // override to give feedback depending on the current operation result - // "effect" and return true if you did something, false to let the library - // give the default feedback - virtual bool GiveFeedback(wxDragResult WXUNUSED(effect)) { return false; } - -protected: - const wxCursor& GetCursor(wxDragResult res) const - { - if ( res == wxDragCopy ) - return m_cursorCopy; - else if ( res == wxDragMove ) - return m_cursorMove; - else - return m_cursorStop; - } - - // the data we're dragging - wxDataObject *m_data; - - // the cursors to use for feedback - wxCursor m_cursorCopy, - m_cursorMove, - m_cursorStop; - - wxDECLARE_NO_COPY_CLASS(wxDropSourceBase); -}; - -// ---------------------------------------------------------------------------- -// wxDropTarget should be associated with a window if it wants to be able to -// receive data via drag and drop. -// -// To use this class, you should derive from wxDropTarget and implement -// OnData() pure virtual method. You may also wish to override OnDrop() if you -// want to accept the data only inside some region of the window (this may -// avoid having to copy the data to this application which happens only when -// OnData() is called) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDropTargetBase -{ -public: - // ctor takes a pointer to heap-allocated wxDataObject which will be owned - // by wxDropTarget and deleted by it automatically. If you don't give it - // here, you can use SetDataObject() later. - wxDropTargetBase(wxDataObject *dataObject = NULL) - { m_dataObject = dataObject; m_defaultAction = wxDragNone; } - // dtor deletes our data object - virtual ~wxDropTargetBase() - { delete m_dataObject; } - - // get/set the associated wxDataObject - wxDataObject *GetDataObject() const - { return m_dataObject; } - void SetDataObject(wxDataObject *dataObject) - { if (m_dataObject) delete m_dataObject; - m_dataObject = dataObject; } - - // these functions are called when data is moved over position (x, y) and - // may return either wxDragCopy, wxDragMove or wxDragNone depending on - // what would happen if the data were dropped here. - // - // the last parameter is what would happen by default and is determined by - // the platform-specific logic (for example, under Windows it's wxDragCopy - // if Ctrl key is pressed and wxDragMove otherwise) except that it will - // always be wxDragNone if the carried data is in an unsupported format. - - // called when the mouse enters the window (only once until OnLeave()) - virtual wxDragResult OnEnter(wxCoord x, wxCoord y, wxDragResult def) - { return OnDragOver(x, y, def); } - - // called when the mouse moves in the window - shouldn't take long to - // execute or otherwise mouse movement would be too slow - virtual wxDragResult OnDragOver(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), - wxDragResult def) - { return def; } - - // called when mouse leaves the window: might be used to remove the - // feedback which was given in OnEnter() - virtual void OnLeave() { } - - // this function is called when data is dropped at position (x, y) - if it - // returns true, OnData() will be called immediately afterwards which will - // allow to retrieve the data dropped. - virtual bool OnDrop(wxCoord x, wxCoord y) = 0; - - // called after OnDrop() returns TRUE: you will usually just call - // GetData() from here and, probably, also refresh something to update the - // new data and, finally, return the code indicating how did the operation - // complete (returning default value in case of success and wxDragError on - // failure is usually ok) - virtual wxDragResult OnData(wxCoord x, wxCoord y, wxDragResult def) = 0; - - // may be called *only* from inside OnData() and will fill m_dataObject - // with the data from the drop source if it returns true - virtual bool GetData() = 0; - - // sets the default action for drag and drop: - // use wxDragMove or wxDragCopy to set deafult action to move or copy - // and use wxDragNone (default) to set default action specified by - // initialization of draging (see wxDropSourceBase::DoDragDrop()) - void SetDefaultAction(wxDragResult action) - { m_defaultAction = action; } - - // returns default action for drag and drop or - // wxDragNone if this not specified - wxDragResult GetDefaultAction() - { return m_defaultAction; } - -protected: - wxDataObject *m_dataObject; - wxDragResult m_defaultAction; - - wxDECLARE_NO_COPY_CLASS(wxDropTargetBase); -}; - -// ---------------------------------------------------------------------------- -// include platform dependent class declarations -// ---------------------------------------------------------------------------- - -#if defined(__WXMSW__) - #include "wx/msw/ole/dropsrc.h" - #include "wx/msw/ole/droptgt.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/dnd.h" -#elif defined(__WXX11__) - #include "wx/x11/dnd.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/dnd.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/dnd.h" -#elif defined(__WXMAC__) - #include "wx/osx/dnd.h" -#elif defined(__WXQT__) - #include "wx/qt/dnd.h" -#endif - -// ---------------------------------------------------------------------------- -// standard wxDropTarget implementations (implemented in common/dobjcmn.cpp) -// ---------------------------------------------------------------------------- - -// A simple wxDropTarget derived class for text data: you only need to -// override OnDropText() to get something working -class WXDLLIMPEXP_CORE wxTextDropTarget : public wxDropTarget -{ -public: - wxTextDropTarget(); - - virtual bool OnDropText(wxCoord x, wxCoord y, const wxString& text) = 0; - - virtual wxDragResult OnData(wxCoord x, wxCoord y, wxDragResult def) wxOVERRIDE; - -private: - wxDECLARE_NO_COPY_CLASS(wxTextDropTarget); -}; - -// A drop target which accepts files (dragged from File Manager or Explorer) -class WXDLLIMPEXP_CORE wxFileDropTarget : public wxDropTarget -{ -public: - wxFileDropTarget(); - - // parameters are the number of files and the array of file names - virtual bool OnDropFiles(wxCoord x, wxCoord y, - const wxArrayString& filenames) = 0; - - virtual wxDragResult OnData(wxCoord x, wxCoord y, wxDragResult def) wxOVERRIDE; - -private: - wxDECLARE_NO_COPY_CLASS(wxFileDropTarget); -}; - -#endif // wxUSE_DRAG_AND_DROP - -#endif // _WX_DND_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/docmdi.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/docmdi.h deleted file mode 100644 index 4ffd2e75..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/docmdi.h +++ /dev/null @@ -1,88 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/docmdi.h -// Purpose: Frame classes for MDI document/view applications -// Author: Julian Smart -// Created: 01/02/97 -// Copyright: (c) 1997 Julian Smart -// (c) 2010 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DOCMDI_H_ -#define _WX_DOCMDI_H_ - -#include "wx/defs.h" - -#if wxUSE_MDI_ARCHITECTURE - -#include "wx/docview.h" -#include "wx/mdi.h" - -// Define MDI versions of the doc-view frame classes. Note that we need to -// define them as classes for wxRTTI, otherwise we could simply define them as -// typedefs. - -// ---------------------------------------------------------------------------- -// An MDI document parent frame -// ---------------------------------------------------------------------------- - -typedef - wxDocParentFrameAny wxDocMDIParentFrameBase; - -class WXDLLIMPEXP_CORE wxDocMDIParentFrame : public wxDocMDIParentFrameBase -{ -public: - wxDocMDIParentFrame() : wxDocMDIParentFrameBase() { } - - wxDocMDIParentFrame(wxDocManager *manager, - wxFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - : wxDocMDIParentFrameBase(manager, - parent, id, title, pos, size, style, name) - { - } - -private: - wxDECLARE_CLASS(wxDocMDIParentFrame); - wxDECLARE_NO_COPY_CLASS(wxDocMDIParentFrame); -}; - -// ---------------------------------------------------------------------------- -// An MDI document child frame -// ---------------------------------------------------------------------------- - -typedef - wxDocChildFrameAny wxDocMDIChildFrameBase; - -class WXDLLIMPEXP_CORE wxDocMDIChildFrame : public wxDocMDIChildFrameBase -{ -public: - wxDocMDIChildFrame() { } - - wxDocMDIChildFrame(wxDocument *doc, - wxView *view, - wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - : wxDocMDIChildFrameBase(doc, view, - parent, id, title, pos, size, style, name) - { - } - -private: - wxDECLARE_CLASS(wxDocMDIChildFrame); - wxDECLARE_NO_COPY_CLASS(wxDocMDIChildFrame); -}; - -#endif // wxUSE_MDI_ARCHITECTURE - -#endif // _WX_DOCMDI_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/docview.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/docview.h deleted file mode 100644 index 45cfc585..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/docview.h +++ /dev/null @@ -1,1028 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/docview.h -// Purpose: Doc/View classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DOCH__ -#define _WX_DOCH__ - -#include "wx/defs.h" - -#if wxUSE_DOC_VIEW_ARCHITECTURE - -#include "wx/list.h" -#include "wx/dlist.h" -#include "wx/string.h" -#include "wx/frame.h" -#include "wx/filehistory.h" -#include "wx/vector.h" - -#if wxUSE_PRINTING_ARCHITECTURE - #include "wx/print.h" -#endif - -class WXDLLIMPEXP_FWD_CORE wxWindow; -class WXDLLIMPEXP_FWD_CORE wxDocument; -class WXDLLIMPEXP_FWD_CORE wxView; -class WXDLLIMPEXP_FWD_CORE wxDocTemplate; -class WXDLLIMPEXP_FWD_CORE wxDocManager; -class WXDLLIMPEXP_FWD_CORE wxPrintInfo; -class WXDLLIMPEXP_FWD_CORE wxCommandProcessor; -class WXDLLIMPEXP_FWD_BASE wxConfigBase; - -class wxDocChildFrameAnyBase; - -#if wxUSE_STD_IOSTREAM - #include "wx/iosfwrap.h" -#else - #include "wx/stream.h" -#endif - -// Flags for wxDocManager (can be combined). -enum -{ - wxDOC_NEW = 1, - wxDOC_SILENT = 2 -}; - -// Document template flags -enum -{ - wxTEMPLATE_VISIBLE = 1, - wxTEMPLATE_INVISIBLE = 2, - wxDEFAULT_TEMPLATE_FLAGS = wxTEMPLATE_VISIBLE -}; - -#define wxMAX_FILE_HISTORY 9 - -typedef wxVector wxDocVector; -typedef wxVector wxViewVector; -typedef wxVector wxDocTemplateVector; - -class WXDLLIMPEXP_CORE wxDocument : public wxEvtHandler -{ -public: - wxDocument(wxDocument *parent = NULL); - virtual ~wxDocument(); - - // accessors - void SetFilename(const wxString& filename, bool notifyViews = false); - wxString GetFilename() const { return m_documentFile; } - - void SetTitle(const wxString& title) { m_documentTitle = title; } - wxString GetTitle() const { return m_documentTitle; } - - void SetDocumentName(const wxString& name) { m_documentTypeName = name; } - wxString GetDocumentName() const { return m_documentTypeName; } - - // access the flag indicating whether this document had been already saved, - // SetDocumentSaved() is only used internally, don't call it - bool GetDocumentSaved() const { return m_savedYet; } - void SetDocumentSaved(bool saved = true) { m_savedYet = saved; } - - // activate the first view of the document if any - void Activate(); - - // return true if the document hasn't been modified since the last time it - // was saved (implying that it returns false if it was never saved, even if - // the document is not modified) - bool AlreadySaved() const { return !IsModified() && GetDocumentSaved(); } - - virtual bool Close(); - virtual bool Save(); - virtual bool SaveAs(); - virtual bool Revert(); - -#if wxUSE_STD_IOSTREAM - virtual wxSTD ostream& SaveObject(wxSTD ostream& stream); - virtual wxSTD istream& LoadObject(wxSTD istream& stream); -#else - virtual wxOutputStream& SaveObject(wxOutputStream& stream); - virtual wxInputStream& LoadObject(wxInputStream& stream); -#endif - - // Called by wxWidgets - virtual bool OnSaveDocument(const wxString& filename); - virtual bool OnOpenDocument(const wxString& filename); - virtual bool OnNewDocument(); - virtual bool OnCloseDocument(); - - // Prompts for saving if about to close a modified document. Returns true - // if ok to close the document (may have saved in the meantime, or set - // modified to false) - virtual bool OnSaveModified(); - - // if you override, remember to call the default - // implementation (wxDocument::OnChangeFilename) - virtual void OnChangeFilename(bool notifyViews); - - // Called by framework if created automatically by the default document - // manager: gives document a chance to initialise and (usually) create a - // view - virtual bool OnCreate(const wxString& path, long flags); - - // By default, creates a base wxCommandProcessor. - virtual wxCommandProcessor *OnCreateCommandProcessor(); - virtual wxCommandProcessor *GetCommandProcessor() const - { return m_commandProcessor; } - virtual void SetCommandProcessor(wxCommandProcessor *proc) - { m_commandProcessor = proc; } - - // Called after a view is added or removed. The default implementation - // deletes the document if this is there are no more views. - virtual void OnChangedViewList(); - - // Called from OnCloseDocument(), does nothing by default but may be - // overridden. Return value is ignored. - virtual bool DeleteContents(); - - virtual bool Draw(wxDC&); - virtual bool IsModified() const { return m_documentModified; } - virtual void Modify(bool mod); - - virtual bool AddView(wxView *view); - virtual bool RemoveView(wxView *view); - - wxViewVector GetViewsVector() const; - - wxList& GetViews() { return m_documentViews; } - const wxList& GetViews() const { return m_documentViews; } - - wxView *GetFirstView() const; - - virtual void UpdateAllViews(wxView *sender = NULL, wxObject *hint = NULL); - virtual void NotifyClosing(); - - // Remove all views (because we're closing the document) - virtual bool DeleteAllViews(); - - // Other stuff - virtual wxDocManager *GetDocumentManager() const; - virtual wxDocTemplate *GetDocumentTemplate() const - { return m_documentTemplate; } - virtual void SetDocumentTemplate(wxDocTemplate *temp) - { m_documentTemplate = temp; } - - // Get the document name to be shown to the user: the title if there is - // any, otherwise the filename if the document was saved and, finally, - // "unnamed" otherwise - virtual wxString GetUserReadableName() const; - -#if WXWIN_COMPATIBILITY_2_8 - // use GetUserReadableName() instead - wxDEPRECATED_BUT_USED_INTERNALLY( - virtual bool GetPrintableName(wxString& buf) const - ); -#endif // WXWIN_COMPATIBILITY_2_8 - - // Returns a window that can be used as a parent for document-related - // dialogs. Override if necessary. - virtual wxWindow *GetDocumentWindow() const; - - // Returns true if this document is a child document corresponding to a - // part of the parent document and not a disk file as usual. - bool IsChildDocument() const { return m_documentParent != NULL; } - -protected: - wxList m_documentViews; - wxString m_documentFile; - wxString m_documentTitle; - wxString m_documentTypeName; - wxDocTemplate* m_documentTemplate; - bool m_documentModified; - - // if the document parent is non-NULL, it's a pseudo-document corresponding - // to a part of the parent document which can't be saved or loaded - // independently of its parent and is always closed when its parent is - wxDocument* m_documentParent; - - wxCommandProcessor* m_commandProcessor; - bool m_savedYet; - - // Called by OnSaveDocument and OnOpenDocument to implement standard - // Save/Load behaviour. Re-implement in derived class for custom - // behaviour. - virtual bool DoSaveDocument(const wxString& file); - virtual bool DoOpenDocument(const wxString& file); - - // the default implementation of GetUserReadableName() - wxString DoGetUserReadableName() const; - -private: - // list of all documents whose m_documentParent is this one - typedef wxDList DocsList; - DocsList m_childDocuments; - - wxDECLARE_ABSTRACT_CLASS(wxDocument); - wxDECLARE_NO_COPY_CLASS(wxDocument); -}; - -class WXDLLIMPEXP_CORE wxView: public wxEvtHandler -{ -public: - wxView(); - virtual ~wxView(); - - wxDocument *GetDocument() const { return m_viewDocument; } - virtual void SetDocument(wxDocument *doc); - - wxString GetViewName() const { return m_viewTypeName; } - void SetViewName(const wxString& name) { m_viewTypeName = name; } - - wxWindow *GetFrame() const { return m_viewFrame ; } - void SetFrame(wxWindow *frame) { m_viewFrame = frame; } - - virtual void OnActivateView(bool activate, - wxView *activeView, - wxView *deactiveView); - virtual void OnDraw(wxDC *dc) = 0; - virtual void OnPrint(wxDC *dc, wxObject *info); - virtual void OnUpdate(wxView *sender, wxObject *hint = NULL); - virtual void OnClosingDocument() {} - virtual void OnChangeFilename(); - - // Called by framework if created automatically by the default document - // manager class: gives view a chance to initialise - virtual bool OnCreate(wxDocument *WXUNUSED(doc), long WXUNUSED(flags)) - { return true; } - - // Checks if the view is the last one for the document; if so, asks user - // to confirm save data (if modified). If ok, deletes itself and returns - // true. - virtual bool Close(bool deleteWindow = true); - - // Override to do cleanup/veto close - virtual bool OnClose(bool deleteWindow); - - // A view's window can call this to notify the view it is (in)active. - // The function then notifies the document manager. - virtual void Activate(bool activate); - - wxDocManager *GetDocumentManager() const - { return m_viewDocument->GetDocumentManager(); } - -#if wxUSE_PRINTING_ARCHITECTURE - virtual wxPrintout *OnCreatePrintout(); -#endif - - // implementation only - // ------------------- - - // set the associated frame, it is used to reset its view when we're - // destroyed - void SetDocChildFrame(wxDocChildFrameAnyBase *docChildFrame); - - // get the associated frame, may be NULL during destruction - wxDocChildFrameAnyBase* GetDocChildFrame() const { return m_docChildFrame; } - -protected: - // hook the document into event handlers chain here - virtual bool TryBefore(wxEvent& event) wxOVERRIDE; - - wxDocument* m_viewDocument; - wxString m_viewTypeName; - wxWindow* m_viewFrame; - - wxDocChildFrameAnyBase *m_docChildFrame; - -private: - wxDECLARE_ABSTRACT_CLASS(wxView); - wxDECLARE_NO_COPY_CLASS(wxView); -}; - -// Represents user interface (and other) properties of documents and views -class WXDLLIMPEXP_CORE wxDocTemplate: public wxObject -{ - -friend class WXDLLIMPEXP_FWD_CORE wxDocManager; - -public: - // Associate document and view types. They're for identifying what view is - // associated with what template/document type - wxDocTemplate(wxDocManager *manager, - const wxString& descr, - const wxString& filter, - const wxString& dir, - const wxString& ext, - const wxString& docTypeName, - const wxString& viewTypeName, - wxClassInfo *docClassInfo = NULL, - wxClassInfo *viewClassInfo = NULL, - long flags = wxDEFAULT_TEMPLATE_FLAGS); - - virtual ~wxDocTemplate(); - - // By default, these two member functions dynamically creates document and - // view using dynamic instance construction. Override these if you need a - // different method of construction. - virtual wxDocument *CreateDocument(const wxString& path, long flags = 0); - virtual wxView *CreateView(wxDocument *doc, long flags = 0); - - // Helper method for CreateDocument; also allows you to do your own document - // creation - virtual bool InitDocument(wxDocument* doc, - const wxString& path, - long flags = 0); - - wxString GetDefaultExtension() const { return m_defaultExt; } - wxString GetDescription() const { return m_description; } - wxString GetDirectory() const { return m_directory; } - wxDocManager *GetDocumentManager() const { return m_documentManager; } - void SetDocumentManager(wxDocManager *manager) - { m_documentManager = manager; } - wxString GetFileFilter() const { return m_fileFilter; } - long GetFlags() const { return m_flags; } - virtual wxString GetViewName() const { return m_viewTypeName; } - virtual wxString GetDocumentName() const { return m_docTypeName; } - - void SetFileFilter(const wxString& filter) { m_fileFilter = filter; } - void SetDirectory(const wxString& dir) { m_directory = dir; } - void SetDescription(const wxString& descr) { m_description = descr; } - void SetDefaultExtension(const wxString& ext) { m_defaultExt = ext; } - void SetFlags(long flags) { m_flags = flags; } - - bool IsVisible() const { return (m_flags & wxTEMPLATE_VISIBLE) != 0; } - - wxClassInfo* GetDocClassInfo() const { return m_docClassInfo; } - wxClassInfo* GetViewClassInfo() const { return m_viewClassInfo; } - - virtual bool FileMatchesTemplate(const wxString& path); - -protected: - long m_flags; - wxString m_fileFilter; - wxString m_directory; - wxString m_description; - wxString m_defaultExt; - wxString m_docTypeName; - wxString m_viewTypeName; - wxDocManager* m_documentManager; - - // For dynamic creation of appropriate instances. - wxClassInfo* m_docClassInfo; - wxClassInfo* m_viewClassInfo; - - // Called by CreateDocument and CreateView to create the actual - // document/view object. - // - // By default uses the ClassInfo provided to the constructor. Override - // these functions to provide a different method of creation. - virtual wxDocument *DoCreateDocument(); - virtual wxView *DoCreateView(); - -private: - wxDECLARE_CLASS(wxDocTemplate); - wxDECLARE_NO_COPY_CLASS(wxDocTemplate); -}; - -// One object of this class may be created in an application, to manage all -// the templates and documents. -class WXDLLIMPEXP_CORE wxDocManager: public wxEvtHandler -{ -public: - // NB: flags are unused, don't pass wxDOC_XXX to this ctor - wxDocManager(long flags = 0, bool initialize = true); - virtual ~wxDocManager(); - - virtual bool Initialize(); - - // Handlers for common user commands - void OnFileClose(wxCommandEvent& event); - void OnFileCloseAll(wxCommandEvent& event); - void OnFileNew(wxCommandEvent& event); - void OnFileOpen(wxCommandEvent& event); - void OnFileRevert(wxCommandEvent& event); - void OnFileSave(wxCommandEvent& event); - void OnFileSaveAs(wxCommandEvent& event); - void OnMRUFile(wxCommandEvent& event); -#if wxUSE_PRINTING_ARCHITECTURE - void OnPrint(wxCommandEvent& event); - void OnPreview(wxCommandEvent& event); - void OnPageSetup(wxCommandEvent& event); -#endif // wxUSE_PRINTING_ARCHITECTURE - void OnUndo(wxCommandEvent& event); - void OnRedo(wxCommandEvent& event); - - // Handlers for UI update commands - void OnUpdateFileOpen(wxUpdateUIEvent& event); - void OnUpdateDisableIfNoDoc(wxUpdateUIEvent& event); - void OnUpdateFileRevert(wxUpdateUIEvent& event); - void OnUpdateFileNew(wxUpdateUIEvent& event); - void OnUpdateFileSave(wxUpdateUIEvent& event); - void OnUpdateFileSaveAs(wxUpdateUIEvent& event); - void OnUpdateUndo(wxUpdateUIEvent& event); - void OnUpdateRedo(wxUpdateUIEvent& event); - - // called when file format detection didn't work, can be overridden to do - // something in this case - virtual void OnOpenFileFailure() { } - - virtual wxDocument *CreateDocument(const wxString& path, long flags = 0); - - // wrapper around CreateDocument() with a more clear name - wxDocument *CreateNewDocument() - { return CreateDocument(wxString(), wxDOC_NEW); } - - virtual wxView *CreateView(wxDocument *doc, long flags = 0); - virtual void DeleteTemplate(wxDocTemplate *temp, long flags = 0); - virtual bool FlushDoc(wxDocument *doc); - virtual wxDocTemplate *MatchTemplate(const wxString& path); - virtual wxDocTemplate *SelectDocumentPath(wxDocTemplate **templates, - int noTemplates, wxString& path, long flags, bool save = false); - virtual wxDocTemplate *SelectDocumentType(wxDocTemplate **templates, - int noTemplates, bool sort = false); - virtual wxDocTemplate *SelectViewType(wxDocTemplate **templates, - int noTemplates, bool sort = false); - virtual wxDocTemplate *FindTemplateForPath(const wxString& path); - - void AssociateTemplate(wxDocTemplate *temp); - void DisassociateTemplate(wxDocTemplate *temp); - - // Find template from document class info, may return NULL. - wxDocTemplate* FindTemplate(const wxClassInfo* documentClassInfo); - - // Find document from file name, may return NULL. - wxDocument* FindDocumentByPath(const wxString& path) const; - - wxDocument *GetCurrentDocument() const; - - void SetMaxDocsOpen(int n) { m_maxDocsOpen = n; } - int GetMaxDocsOpen() const { return m_maxDocsOpen; } - - // Add and remove a document from the manager's list - void AddDocument(wxDocument *doc); - void RemoveDocument(wxDocument *doc); - - // closes all currently open documents - bool CloseDocuments(bool force = true); - - // closes the specified document - bool CloseDocument(wxDocument* doc, bool force = false); - - // Clear remaining documents and templates - bool Clear(bool force = true); - - // Views or windows should inform the document manager - // when a view is going in or out of focus - virtual void ActivateView(wxView *view, bool activate = true); - virtual wxView *GetCurrentView() const { return m_currentView; } - - // This method tries to find an active view harder than GetCurrentView(): - // if the latter is NULL, it also checks if we don't have just a single - // view and returns it then. - wxView *GetAnyUsableView() const; - - - wxDocVector GetDocumentsVector() const; - wxDocTemplateVector GetTemplatesVector() const; - - wxList& GetDocuments() { return m_docs; } - wxList& GetTemplates() { return m_templates; } - - // Return the default name for a new document (by default returns strings - // in the form "unnamed " but can be overridden) - virtual wxString MakeNewDocumentName(); - - // Make a frame title (override this to do something different) - virtual wxString MakeFrameTitle(wxDocument* doc); - - virtual wxFileHistory *OnCreateFileHistory(); - virtual wxFileHistory *GetFileHistory() const { return m_fileHistory; } - - // File history management - virtual void AddFileToHistory(const wxString& file); - virtual void RemoveFileFromHistory(size_t i); - virtual size_t GetHistoryFilesCount() const; - virtual wxString GetHistoryFile(size_t i) const; - virtual void FileHistoryUseMenu(wxMenu *menu); - virtual void FileHistoryRemoveMenu(wxMenu *menu); -#if wxUSE_CONFIG - virtual void FileHistoryLoad(const wxConfigBase& config); - virtual void FileHistorySave(wxConfigBase& config); -#endif // wxUSE_CONFIG - - virtual void FileHistoryAddFilesToMenu(); - virtual void FileHistoryAddFilesToMenu(wxMenu* menu); - - wxString GetLastDirectory() const; - void SetLastDirectory(const wxString& dir) { m_lastDirectory = dir; } - - // Get the current document manager - static wxDocManager* GetDocumentManager() { return sm_docManager; } - -#if wxUSE_PRINTING_ARCHITECTURE - wxPageSetupDialogData& GetPageSetupDialogData() - { return m_pageSetupDialogData; } - const wxPageSetupDialogData& GetPageSetupDialogData() const - { return m_pageSetupDialogData; } -#endif // wxUSE_PRINTING_ARCHITECTURE - -#if WXWIN_COMPATIBILITY_2_8 - // deprecated, override GetDefaultName() instead - wxDEPRECATED_BUT_USED_INTERNALLY( - virtual bool MakeDefaultName(wxString& buf) - ); -#endif - -protected: - // Called when a file selected from the MRU list doesn't exist any more. - // The default behaviour is to remove the file from the MRU and notify the - // user about it but this method can be overridden to customize it. - virtual void OnMRUFileNotExist(unsigned n, const wxString& filename); - - // Open the MRU file with the given index in our associated file history. - void DoOpenMRUFile(unsigned n); -#if wxUSE_PRINTING_ARCHITECTURE - virtual wxPreviewFrame* CreatePreviewFrame(wxPrintPreviewBase* preview, - wxWindow *parent, - const wxString& title); -#endif // wxUSE_PRINTING_ARCHITECTURE - - // hook the currently active view into event handlers chain here - virtual bool TryBefore(wxEvent& event) wxOVERRIDE; - - // return the command processor for the current document, if any - wxCommandProcessor *GetCurrentCommandProcessor() const; - - int m_defaultDocumentNameCounter; - int m_maxDocsOpen; - wxList m_docs; - wxList m_templates; - wxView* m_currentView; - wxFileHistory* m_fileHistory; - wxString m_lastDirectory; - static wxDocManager* sm_docManager; - -#if wxUSE_PRINTING_ARCHITECTURE - wxPageSetupDialogData m_pageSetupDialogData; -#endif // wxUSE_PRINTING_ARCHITECTURE - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxDocManager); - wxDECLARE_NO_COPY_CLASS(wxDocManager); -}; - -// ---------------------------------------------------------------------------- -// Base class for child frames -- this is what wxView renders itself into -// -// Notice that this is a mix-in class so it doesn't derive from wxWindow, only -// wxDocChildFrameAny does -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDocChildFrameAnyBase -{ -public: - // default ctor, use Create() after it - wxDocChildFrameAnyBase() - { - m_childDocument = NULL; - m_childView = NULL; - m_win = NULL; - m_lastEvent = NULL; - } - - // full ctor equivalent to using the default one and Create() - wxDocChildFrameAnyBase(wxDocument *doc, wxView *view, wxWindow *win) - { - Create(doc, view, win); - } - - // method which must be called for an object created using the default ctor - // - // note that it returns bool just for consistency with Create() methods in - // other classes, we never return false from here - bool Create(wxDocument *doc, wxView *view, wxWindow *win) - { - m_childDocument = doc; - m_childView = view; - m_win = win; - - if ( view ) - view->SetDocChildFrame(this); - - return true; - } - - // dtor doesn't need to be virtual, an object should never be destroyed via - // a pointer to this class - ~wxDocChildFrameAnyBase() - { - // prevent the view from deleting us if we're being deleted directly - // (and not via Close() + Destroy()) - if ( m_childView ) - m_childView->SetDocChildFrame(NULL); - } - - wxDocument *GetDocument() const { return m_childDocument; } - wxView *GetView() const { return m_childView; } - void SetDocument(wxDocument *doc) { m_childDocument = doc; } - void SetView(wxView *view) { m_childView = view; } - - wxWindow *GetWindow() const { return m_win; } - - // implementation only - - // Check if this event had been just processed in this frame. - bool HasAlreadyProcessed(wxEvent& event) const - { - return m_lastEvent == &event; - } - -protected: - // we're not a wxEvtHandler but we provide this wxEvtHandler-like function - // which is called from TryBefore() of the derived classes to give our view - // a chance to process the message before the frame event handlers are used - bool TryProcessEvent(wxEvent& event); - - // called from EVT_CLOSE handler in the frame: check if we can close and do - // cleanup if so; veto the event otherwise - bool CloseView(wxCloseEvent& event); - - - wxDocument* m_childDocument; - wxView* m_childView; - - // the associated window: having it here is not terribly elegant but it - // allows us to avoid having any virtual functions in this class - wxWindow* m_win; - -private: - // Pointer to the last processed event used to avoid sending the same event - // twice to wxDocManager, from here and from wxDocParentFrameAnyBase. - wxEvent* m_lastEvent; - - wxDECLARE_NO_COPY_CLASS(wxDocChildFrameAnyBase); -}; - -// ---------------------------------------------------------------------------- -// Template implementing child frame concept using the given wxFrame-like class -// -// This is used to define wxDocChildFrame and wxDocMDIChildFrame: ChildFrame is -// a wxFrame or wxMDIChildFrame (although in theory it could be any wxWindow- -// derived class as long as it provided a ctor with the same signature as -// wxFrame and OnActivate() method) and ParentFrame is either wxFrame or -// wxMDIParentFrame. -// ---------------------------------------------------------------------------- - -template -class WXDLLIMPEXP_CORE wxDocChildFrameAny : public ChildFrame, - public wxDocChildFrameAnyBase -{ -public: - typedef ChildFrame BaseClass; - - // default ctor, use Create after it - wxDocChildFrameAny() { } - - // ctor for a frame showing the given view of the specified document - wxDocChildFrameAny(wxDocument *doc, - wxView *view, - ParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Create(doc, view, parent, id, title, pos, size, style, name); - } - - bool Create(wxDocument *doc, - wxView *view, - ParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - if ( !wxDocChildFrameAnyBase::Create(doc, view, this) ) - return false; - - if ( !BaseClass::Create(parent, id, title, pos, size, style, name) ) - return false; - - this->Connect(wxEVT_ACTIVATE, - wxActivateEventHandler(wxDocChildFrameAny::OnActivate)); - this->Connect(wxEVT_CLOSE_WINDOW, - wxCloseEventHandler(wxDocChildFrameAny::OnCloseWindow)); - - return true; - } - - virtual bool Destroy() - { - // FIXME: why exactly do we do this? to avoid activation events during - // destructions maybe? - m_childView = NULL; - return BaseClass::Destroy(); - } - -protected: - // hook the child view into event handlers chain here - virtual bool TryBefore(wxEvent& event) - { - return TryProcessEvent(event) || BaseClass::TryBefore(event); - } - -private: - void OnActivate(wxActivateEvent& event) - { - BaseClass::OnActivate(event); - - if ( m_childView ) - m_childView->Activate(event.GetActive()); - } - - void OnCloseWindow(wxCloseEvent& event) - { - if ( CloseView(event) ) - Destroy(); - //else: vetoed - } - - wxDECLARE_NO_COPY_TEMPLATE_CLASS_2(wxDocChildFrameAny, - ChildFrame, ParentFrame); -}; - -// ---------------------------------------------------------------------------- -// A default child frame: we need to define it as a class just for wxRTTI, -// otherwise we could simply typedef it -// ---------------------------------------------------------------------------- - -typedef wxDocChildFrameAny wxDocChildFrameBase; - -class WXDLLIMPEXP_CORE wxDocChildFrame : public wxDocChildFrameBase -{ -public: - wxDocChildFrame() - { - } - - wxDocChildFrame(wxDocument *doc, - wxView *view, - wxFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - : wxDocChildFrameBase(doc, view, - parent, id, title, pos, size, style, name) - { - } - - bool Create(wxDocument *doc, - wxView *view, - wxFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - return wxDocChildFrameBase::Create - ( - doc, view, - parent, id, title, pos, size, style, name - ); - } - -private: - wxDECLARE_CLASS(wxDocChildFrame); - wxDECLARE_NO_COPY_CLASS(wxDocChildFrame); -}; - -// ---------------------------------------------------------------------------- -// wxDocParentFrame and related classes. -// -// As with wxDocChildFrame we define a template base class used by both normal -// and MDI versions -// ---------------------------------------------------------------------------- - -// Base class containing type-independent code of wxDocParentFrameAny -// -// Similarly to wxDocChildFrameAnyBase, this class is a mix-in and doesn't -// derive from wxWindow. -class WXDLLIMPEXP_CORE wxDocParentFrameAnyBase -{ -public: - wxDocParentFrameAnyBase(wxWindow* frame) - : m_frame(frame) - { - m_docManager = NULL; - } - - wxDocManager *GetDocumentManager() const { return m_docManager; } - -protected: - // This is similar to wxDocChildFrameAnyBase method with the same name: - // while we're not an event handler ourselves and so can't override - // TryBefore(), we provide a helper that the derived template class can use - // from its TryBefore() implementation. - bool TryProcessEvent(wxEvent& event); - - wxWindow* const m_frame; - wxDocManager *m_docManager; - - wxDECLARE_NO_COPY_CLASS(wxDocParentFrameAnyBase); -}; - -// This is similar to wxDocChildFrameAny and is used to provide common -// implementation for both wxDocParentFrame and wxDocMDIParentFrame -template -class WXDLLIMPEXP_CORE wxDocParentFrameAny : public BaseFrame, - public wxDocParentFrameAnyBase -{ -public: - wxDocParentFrameAny() : wxDocParentFrameAnyBase(this) { } - wxDocParentFrameAny(wxDocManager *manager, - wxFrame *frame, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - : wxDocParentFrameAnyBase(this) - { - Create(manager, frame, id, title, pos, size, style, name); - } - - bool Create(wxDocManager *manager, - wxFrame *frame, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - m_docManager = manager; - - if ( !BaseFrame::Create(frame, id, title, pos, size, style, name) ) - return false; - - this->Connect(wxID_EXIT, wxEVT_MENU, - wxCommandEventHandler(wxDocParentFrameAny::OnExit)); - this->Connect(wxEVT_CLOSE_WINDOW, - wxCloseEventHandler(wxDocParentFrameAny::OnCloseWindow)); - - return true; - } - -protected: - // hook the document manager into event handling chain here - virtual bool TryBefore(wxEvent& event) - { - // It is important to send the event to the base class first as - // wxMDIParentFrame overrides its TryBefore() to send the menu events - // to the currently active child frame and the child must get them - // before our own TryProcessEvent() is executed, not afterwards. - return BaseFrame::TryBefore(event) || TryProcessEvent(event); - } - -private: - void OnExit(wxCommandEvent& WXUNUSED(event)) - { - this->Close(); - } - - void OnCloseWindow(wxCloseEvent& event) - { - if ( m_docManager && !m_docManager->Clear(!event.CanVeto()) ) - { - // The user decided not to close finally, abort. - event.Veto(); - } - else - { - // Just skip the event, base class handler will destroy the window. - event.Skip(); - } - } - - - wxDECLARE_NO_COPY_CLASS(wxDocParentFrameAny); -}; - -typedef wxDocParentFrameAny wxDocParentFrameBase; - -class WXDLLIMPEXP_CORE wxDocParentFrame : public wxDocParentFrameBase -{ -public: - wxDocParentFrame() : wxDocParentFrameBase() { } - - wxDocParentFrame(wxDocManager *manager, - wxFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - : wxDocParentFrameBase(manager, - parent, id, title, pos, size, style, name) - { - } - - bool Create(wxDocManager *manager, - wxFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - return wxDocParentFrameBase::Create(manager, - parent, id, title, - pos, size, style, name); - } - -private: - wxDECLARE_CLASS(wxDocParentFrame); - wxDECLARE_NO_COPY_CLASS(wxDocParentFrame); -}; - -// ---------------------------------------------------------------------------- -// Provide simple default printing facilities -// ---------------------------------------------------------------------------- - -#if wxUSE_PRINTING_ARCHITECTURE -class WXDLLIMPEXP_CORE wxDocPrintout : public wxPrintout -{ -public: - wxDocPrintout(wxView *view = NULL, const wxString& title = wxString()); - - // implement wxPrintout methods - virtual bool OnPrintPage(int page) wxOVERRIDE; - virtual bool HasPage(int page) wxOVERRIDE; - virtual bool OnBeginDocument(int startPage, int endPage) wxOVERRIDE; - virtual void GetPageInfo(int *minPage, int *maxPage, - int *selPageFrom, int *selPageTo) wxOVERRIDE; - - virtual wxView *GetView() { return m_printoutView; } - -protected: - wxView* m_printoutView; - -private: - wxDECLARE_DYNAMIC_CLASS(wxDocPrintout); - wxDECLARE_NO_COPY_CLASS(wxDocPrintout); -}; -#endif // wxUSE_PRINTING_ARCHITECTURE - -// For compatibility with existing file formats: -// converts from/to a stream to/from a temporary file. -#if wxUSE_STD_IOSTREAM -bool WXDLLIMPEXP_CORE -wxTransferFileToStream(const wxString& filename, wxSTD ostream& stream); -bool WXDLLIMPEXP_CORE -wxTransferStreamToFile(wxSTD istream& stream, const wxString& filename); -#else -bool WXDLLIMPEXP_CORE -wxTransferFileToStream(const wxString& filename, wxOutputStream& stream); -bool WXDLLIMPEXP_CORE -wxTransferStreamToFile(wxInputStream& stream, const wxString& filename); -#endif // wxUSE_STD_IOSTREAM - - -// these flags are not used anywhere by wxWidgets and kept only for an unlikely -// case of existing user code using them for its own purposes -#if WXWIN_COMPATIBILITY_2_8 -enum -{ - wxDOC_SDI = 1, - wxDOC_MDI, - wxDEFAULT_DOCMAN_FLAGS = wxDOC_SDI -}; -#endif // WXWIN_COMPATIBILITY_2_8 - -inline wxViewVector wxDocument::GetViewsVector() const -{ - return m_documentViews.AsVector(); -} - -inline wxDocVector wxDocManager::GetDocumentsVector() const -{ - return m_docs.AsVector(); -} - -inline wxDocTemplateVector wxDocManager::GetTemplatesVector() const -{ - return m_templates.AsVector(); -} - -#endif // wxUSE_DOC_VIEW_ARCHITECTURE - -#endif // _WX_DOCH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dragimag.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dragimag.h deleted file mode 100644 index 4f8bc6a7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dragimag.h +++ /dev/null @@ -1,53 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dragimag.h -// Purpose: wxDragImage base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DRAGIMAG_H_BASE_ -#define _WX_DRAGIMAG_H_BASE_ - -#if wxUSE_DRAGIMAGE - -class WXDLLIMPEXP_FWD_CORE wxRect; -class WXDLLIMPEXP_FWD_CORE wxMemoryDC; -class WXDLLIMPEXP_FWD_CORE wxDC; - -#if defined(__WXMSW__) -# if defined(__WXUNIVERSAL__) -# include "wx/generic/dragimgg.h" -# define wxDragImage wxGenericDragImage -# else -# include "wx/msw/dragimag.h" -# endif - -#elif defined(__WXMOTIF__) -# include "wx/generic/dragimgg.h" -# define wxDragImage wxGenericDragImage - -#elif defined(__WXGTK__) -# include "wx/generic/dragimgg.h" -# define wxDragImage wxGenericDragImage - -#elif defined(__WXX11__) -# include "wx/generic/dragimgg.h" -# define wxDragImage wxGenericDragImage - -#elif defined(__WXMAC__) -# include "wx/generic/dragimgg.h" -# define wxDragImage wxGenericDragImage - -#elif defined(__WXQT__) -# include "wx/generic/dragimgg.h" -# define wxDragImage wxGenericDragImage - -#endif - -#endif // wxUSE_DRAGIMAGE - -#endif - // _WX_DRAGIMAG_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dvrenderers.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dvrenderers.h deleted file mode 100644 index 69ed7817..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dvrenderers.h +++ /dev/null @@ -1,478 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/dvrenderers.h -// Purpose: Declare all wxDataViewCtrl classes -// Author: Robert Roebling, Vadim Zeitlin -// Created: 2009-11-08 (extracted from wx/dataview.h) -// Copyright: (c) 2006 Robert Roebling -// (c) 2009 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DVRENDERERS_H_ -#define _WX_DVRENDERERS_H_ - -/* - Note about the structure of various headers: they're organized in a more - complicated way than usual because of the various dependencies which are - different for different ports. In any case the only public header, i.e. the - one which can be included directly is wx/dataview.h. It, in turn, includes - this one to define all the renderer classes. - - We define the base wxDataViewRendererBase class first and then include a - port-dependent wx/xxx/dvrenderer.h which defines wxDataViewRenderer itself. - After this we can define wxDataViewRendererCustomBase (and maybe in the - future base classes for other renderers if the need arises, i.e. if there - is any non-trivial code or API which it makes sense to keep in common code) - and include wx/xxx/dvrenderers.h (notice the plural) which defines all the - rest of the renderer classes. - */ - -class WXDLLIMPEXP_FWD_ADV wxDataViewCustomRenderer; - -// ---------------------------------------------------------------------------- -// wxDataViewIconText: helper class used by wxDataViewIconTextRenderer -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewIconText : public wxObject -{ -public: - wxDataViewIconText( const wxString &text = wxEmptyString, - const wxIcon& icon = wxNullIcon ) - : m_text(text), - m_icon(icon) - { } - - wxDataViewIconText( const wxDataViewIconText &other ) - : wxObject(), - m_text(other.m_text), - m_icon(other.m_icon) - { } - - void SetText( const wxString &text ) { m_text = text; } - wxString GetText() const { return m_text; } - void SetIcon( const wxIcon &icon ) { m_icon = icon; } - const wxIcon &GetIcon() const { return m_icon; } - - bool IsSameAs(const wxDataViewIconText& other) const - { - return m_text == other.m_text && m_icon.IsSameAs(other.m_icon); - } - - bool operator==(const wxDataViewIconText& other) const - { - return IsSameAs(other); - } - - bool operator!=(const wxDataViewIconText& other) const - { - return !IsSameAs(other); - } - -private: - wxString m_text; - wxIcon m_icon; - - wxDECLARE_DYNAMIC_CLASS(wxDataViewIconText); -}; - -DECLARE_VARIANT_OBJECT_EXPORTED(wxDataViewIconText, WXDLLIMPEXP_ADV) - -// ---------------------------------------------------------------------------- -// wxDataViewRendererBase -// ---------------------------------------------------------------------------- - -enum wxDataViewCellMode -{ - wxDATAVIEW_CELL_INERT, - wxDATAVIEW_CELL_ACTIVATABLE, - wxDATAVIEW_CELL_EDITABLE -}; - -enum wxDataViewCellRenderState -{ - wxDATAVIEW_CELL_SELECTED = 1, - wxDATAVIEW_CELL_PRELIT = 2, - wxDATAVIEW_CELL_INSENSITIVE = 4, - wxDATAVIEW_CELL_FOCUSED = 8 -}; - -class WXDLLIMPEXP_ADV wxDataViewRendererBase: public wxObject -{ -public: - wxDataViewRendererBase( const wxString &varianttype, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int alignment = wxDVR_DEFAULT_ALIGNMENT ); - virtual ~wxDataViewRendererBase(); - - virtual bool Validate( wxVariant& WXUNUSED(value) ) - { return true; } - - void SetOwner( wxDataViewColumn *owner ) { m_owner = owner; } - wxDataViewColumn* GetOwner() const { return m_owner; } - - // renderer value and attributes: SetValue() and SetAttr() are called - // before a cell is rendered using this renderer - virtual bool SetValue(const wxVariant& value) = 0; - virtual bool GetValue(wxVariant& value) const = 0; - - wxString GetVariantType() const { return m_variantType; } - - // Prepare for rendering the value of the corresponding item in the given - // column taken from the provided non-null model. - // - // Notice that the column must be the same as GetOwner()->GetModelColumn(), - // it is only passed to this method because the existing code already has - // it and should probably be removed in the future. - // - // Return true if this cell is non-empty or false otherwise (and also if - // the model returned a value of the wrong, i.e. different from our - // GetVariantType(), type, in which case a debug error is also logged). - bool PrepareForItem(const wxDataViewModel *model, - const wxDataViewItem& item, - unsigned column); - - // renderer properties: - virtual void SetMode( wxDataViewCellMode mode ) = 0; - virtual wxDataViewCellMode GetMode() const = 0; - - // NOTE: Set/GetAlignment do not take/return a wxAlignment enum but - // rather an "int"; that's because for rendering cells it's allowed - // to combine alignment flags (e.g. wxALIGN_LEFT|wxALIGN_BOTTOM) - virtual void SetAlignment( int align ) = 0; - virtual int GetAlignment() const = 0; - - // enable or disable (if called with wxELLIPSIZE_NONE) replacing parts of - // the item text (hence this only makes sense for renderers showing - // text...) with ellipsis in order to make it fit the column width - virtual void EnableEllipsize(wxEllipsizeMode mode = wxELLIPSIZE_MIDDLE) = 0; - void DisableEllipsize() { EnableEllipsize(wxELLIPSIZE_NONE); } - - virtual wxEllipsizeMode GetEllipsizeMode() const = 0; - - // in-place editing - virtual bool HasEditorCtrl() const - { return false; } - virtual wxWindow* CreateEditorCtrl(wxWindow * WXUNUSED(parent), - wxRect WXUNUSED(labelRect), - const wxVariant& WXUNUSED(value)) - { return NULL; } - virtual bool GetValueFromEditorCtrl(wxWindow * WXUNUSED(editor), - wxVariant& WXUNUSED(value)) - { return false; } - - virtual bool StartEditing( const wxDataViewItem &item, wxRect labelRect ); - virtual void CancelEditing(); - virtual bool FinishEditing(); - - wxWindow *GetEditorCtrl() const { return m_editorCtrl; } - - virtual bool IsCustomRenderer() const { return false; } - - - // Implementation only from now on. - - // Return the alignment of this renderer if it's specified (i.e. has value - // different from the default wxDVR_DEFAULT_ALIGNMENT) or the alignment of - // the column it is used for otherwise. - // - // Unlike GetAlignment(), this always returns a valid combination of - // wxALIGN_XXX flags (although possibly wxALIGN_NOT) and never returns - // wxDVR_DEFAULT_ALIGNMENT. - int GetEffectiveAlignment() const; - - // Send wxEVT_DATAVIEW_ITEM_EDITING_STARTED event. - void NotifyEditingStarted(const wxDataViewItem& item); - -protected: - // These methods are called from PrepareForItem() and should do whatever is - // needed for the current platform to ensure that the item is rendered - // using the given attributes and enabled/disabled state. - virtual void SetAttr(const wxDataViewItemAttr& attr) = 0; - virtual void SetEnabled(bool enabled) = 0; - - // Called from {Cancel,Finish}Editing() to cleanup m_editorCtrl - void DestroyEditControl(); - - // Helper of PrepareForItem() also used in StartEditing(): returns the - // value checking that its type matches our GetVariantType(). - wxVariant CheckedGetValue(const wxDataViewModel* model, - const wxDataViewItem& item, - unsigned column) const; - - wxString m_variantType; - wxDataViewColumn *m_owner; - wxWeakRef m_editorCtrl; - wxDataViewItem m_item; // Item being currently edited, if valid. - - // internal utility, may be used anywhere the window associated with the - // renderer is required - wxDataViewCtrl* GetView() const; - -protected: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRendererBase); -}; - -// include the real wxDataViewRenderer declaration for the native ports -#ifdef wxHAS_GENERIC_DATAVIEWCTRL - // in the generic implementation there is no real wxDataViewRenderer, all - // renderers are custom so it's the same as wxDataViewCustomRenderer and - // wxDataViewCustomRendererBase derives from wxDataViewRendererBase directly - // - // this is a rather ugly hack but unfortunately it just doesn't seem to be - // possible to have the same class hierarchy in all ports and avoid - // duplicating the entire wxDataViewCustomRendererBase in the generic - // wxDataViewRenderer class (well, we could use a mix-in but this would - // make classes hierarchy non linear and arguably even more complex) - #define wxDataViewCustomRendererRealBase wxDataViewRendererBase -#else - #if defined(__WXGTK20__) - #include "wx/gtk/dvrenderer.h" - #elif defined(__WXMAC__) - #include "wx/osx/dvrenderer.h" - #elif defined(__WXQT__) - #include "wx/qt/dvrenderer.h" - #else - #error "unknown native wxDataViewCtrl implementation" - #endif - #define wxDataViewCustomRendererRealBase wxDataViewRenderer -#endif - -// ---------------------------------------------------------------------------- -// wxDataViewCustomRendererBase -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewCustomRendererBase - : public wxDataViewCustomRendererRealBase -{ -public: - // Constructor must specify the usual renderer parameters which we simply - // pass to the base class - wxDataViewCustomRendererBase(const wxString& varianttype = "string", - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT) - : wxDataViewCustomRendererRealBase(varianttype, mode, align) - { - } - - - // Render the item using the current value (returned by GetValue()). - virtual bool Render(wxRect cell, wxDC *dc, int state) = 0; - - // Return the size of the item appropriate to its current value. - virtual wxSize GetSize() const = 0; - - // Define virtual function which are called when a key is pressed on the - // item, clicked or the user starts to drag it: by default they all simply - // return false indicating that the events are not handled - - virtual bool ActivateCell(const wxRect& cell, - wxDataViewModel *model, - const wxDataViewItem & item, - unsigned int col, - const wxMouseEvent* mouseEvent); - - // Deprecated, use (and override) ActivateCell() instead - wxDEPRECATED_BUT_USED_INTERNALLY_INLINE( - virtual bool Activate(wxRect WXUNUSED(cell), - wxDataViewModel *WXUNUSED(model), - const wxDataViewItem & WXUNUSED(item), - unsigned int WXUNUSED(col)), - return false; ) - - // Deprecated, use (and override) ActivateCell() instead - wxDEPRECATED_BUT_USED_INTERNALLY_INLINE( - virtual bool LeftClick(wxPoint WXUNUSED(cursor), - wxRect WXUNUSED(cell), - wxDataViewModel *WXUNUSED(model), - const wxDataViewItem & WXUNUSED(item), - unsigned int WXUNUSED(col)), - return false; ) - - virtual bool StartDrag(const wxPoint& WXUNUSED(cursor), - const wxRect& WXUNUSED(cell), - wxDataViewModel *WXUNUSED(model), - const wxDataViewItem & WXUNUSED(item), - unsigned int WXUNUSED(col) ) - { return false; } - - - // Helper which can be used by Render() implementation in the derived - // classes: it will draw the text in the same manner as the standard - // renderers do. - virtual void RenderText(const wxString& text, - int xoffset, - wxRect cell, - wxDC *dc, - int state); - - - // Override the base class virtual method to simply store the attribute so - // that it can be accessed using GetAttr() from Render() if needed. - virtual void SetAttr(const wxDataViewItemAttr& attr) wxOVERRIDE { m_attr = attr; } - const wxDataViewItemAttr& GetAttr() const { return m_attr; } - - // Store the enabled state of the item so that it can be accessed from - // Render() via GetEnabled() if needed. - virtual void SetEnabled(bool enabled) wxOVERRIDE; - bool GetEnabled() const { return m_enabled; } - - - // Implementation only from now on - - // Retrieve the DC to use for drawing. This is implemented in derived - // platform-specific classes. - virtual wxDC *GetDC() = 0; - - // To draw background use the background colour in wxDataViewItemAttr - virtual void RenderBackground(wxDC* dc, const wxRect& rect); - - // Prepare DC to use attributes and call Render(). - void WXCallRender(wxRect rect, wxDC *dc, int state); - - virtual bool IsCustomRenderer() const wxOVERRIDE { return true; } - -protected: - // helper for GetSize() implementations, respects attributes - wxSize GetTextExtent(const wxString& str) const; - -private: - wxDataViewItemAttr m_attr; - bool m_enabled; - - wxDECLARE_NO_COPY_CLASS(wxDataViewCustomRendererBase); -}; - -// include the declaration of all the other renderers to get the real -// wxDataViewCustomRenderer from which we need to inherit below -#ifdef wxHAS_GENERIC_DATAVIEWCTRL - // because of the different renderer classes hierarchy in the generic - // version, as explained above, we can include the header defining - // wxDataViewRenderer only here and not before wxDataViewCustomRendererBase - // declaration as for the native ports - #include "wx/generic/dvrenderer.h" - #include "wx/generic/dvrenderers.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/dvrenderers.h" -#elif defined(__WXMAC__) - #include "wx/osx/dvrenderers.h" -#elif defined(__WXQT__) - #include "wx/qt/dvrenderers.h" -#else - #error "unknown native wxDataViewCtrl implementation" -#endif - -#if wxUSE_SPINCTRL - -// ---------------------------------------------------------------------------- -// wxDataViewSpinRenderer -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewSpinRenderer: public wxDataViewCustomRenderer -{ -public: - wxDataViewSpinRenderer( int min, int max, - wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE, - int alignment = wxDVR_DEFAULT_ALIGNMENT ); - virtual bool HasEditorCtrl() const wxOVERRIDE { return true; } - virtual wxWindow* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value ) wxOVERRIDE; - virtual bool GetValueFromEditorCtrl( wxWindow* editor, wxVariant &value ) wxOVERRIDE; - virtual bool Render( wxRect rect, wxDC *dc, int state ) wxOVERRIDE; - virtual wxSize GetSize() const wxOVERRIDE; - virtual bool SetValue( const wxVariant &value ) wxOVERRIDE; - virtual bool GetValue( wxVariant &value ) const wxOVERRIDE; - -private: - long m_data; - long m_min,m_max; -}; - -#endif // wxUSE_SPINCTRL - -#if defined(wxHAS_GENERIC_DATAVIEWCTRL) - -// ---------------------------------------------------------------------------- -// wxDataViewChoiceRenderer -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewChoiceRenderer: public wxDataViewCustomRenderer -{ -public: - wxDataViewChoiceRenderer( const wxArrayString &choices, - wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE, - int alignment = wxDVR_DEFAULT_ALIGNMENT ); - virtual bool HasEditorCtrl() const { return true; } - virtual wxWindow* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value ); - virtual bool GetValueFromEditorCtrl( wxWindow* editor, wxVariant &value ); - virtual bool Render( wxRect rect, wxDC *dc, int state ); - virtual wxSize GetSize() const; - virtual bool SetValue( const wxVariant &value ); - virtual bool GetValue( wxVariant &value ) const; - - wxString GetChoice(size_t index) const { return m_choices[index]; } - const wxArrayString& GetChoices() const { return m_choices; } - -private: - wxArrayString m_choices; - wxString m_data; -}; - -// ---------------------------------------------------------------------------- -// wxDataViewChoiceByIndexRenderer -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewChoiceByIndexRenderer: public wxDataViewChoiceRenderer -{ -public: - wxDataViewChoiceByIndexRenderer( const wxArrayString &choices, - wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE, - int alignment = wxDVR_DEFAULT_ALIGNMENT ); - - virtual wxWindow* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value ); - virtual bool GetValueFromEditorCtrl( wxWindow* editor, wxVariant &value ); - - virtual bool SetValue( const wxVariant &value ); - virtual bool GetValue( wxVariant &value ) const; -}; - - -#endif // generic version - -#if defined(wxHAS_GENERIC_DATAVIEWCTRL) || defined(__WXGTK__) - -// ---------------------------------------------------------------------------- -// wxDataViewDateRenderer -// ---------------------------------------------------------------------------- - -#if wxUSE_DATEPICKCTRL -class WXDLLIMPEXP_ADV wxDataViewDateRenderer: public wxDataViewCustomRenderer -{ -public: - static wxString GetDefaultType() { return wxS("datetime"); } - - wxDataViewDateRenderer(const wxString &varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE, - int align = wxDVR_DEFAULT_ALIGNMENT); - - virtual bool HasEditorCtrl() const wxOVERRIDE { return true; } - virtual wxWindow *CreateEditorCtrl(wxWindow *parent, wxRect labelRect, const wxVariant &value) wxOVERRIDE; - virtual bool GetValueFromEditorCtrl(wxWindow* editor, wxVariant &value) wxOVERRIDE; - virtual bool SetValue(const wxVariant &value) wxOVERRIDE; - virtual bool GetValue(wxVariant& value) const wxOVERRIDE; - virtual bool Render( wxRect cell, wxDC *dc, int state ) wxOVERRIDE; - virtual wxSize GetSize() const wxOVERRIDE; - -private: - wxDateTime m_date; -}; -#else // !wxUSE_DATEPICKCTRL -typedef wxDataViewTextRenderer wxDataViewDateRenderer; -#endif - -#endif // generic or GTK+ versions - -// this class is obsolete, its functionality was merged in -// wxDataViewTextRenderer itself now, don't use it any more -#define wxDataViewTextRendererAttr wxDataViewTextRenderer - -#endif // _WX_DVRENDERERS_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dynarray.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dynarray.h deleted file mode 100644 index a15936c3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dynarray.h +++ /dev/null @@ -1,1072 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/dynarray.h -// Purpose: auto-resizable (i.e. dynamic) array support -// Author: Vadim Zeitlin -// Modified by: -// Created: 12.09.97 -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _DYNARRAY_H -#define _DYNARRAY_H - -#include "wx/defs.h" - -#if wxUSE_STD_CONTAINERS - #include "wx/beforestd.h" - #include - #include - #include "wx/afterstd.h" -#endif - -/* - This header defines the dynamic arrays and object arrays (i.e. arrays which - own their elements). Dynamic means that the arrays grow automatically as - needed. - - These macros are ugly (especially if you look in the sources ;-), but they - allow us to define "template" classes without actually using templates and so - this works with all compilers (and may be also much faster to compile even - with a compiler which does support templates). The arrays defined with these - macros are type-safe. - - Range checking is performed in debug build for both arrays and objarrays but - not in release build - so using an invalid index will just lead to a crash - then. - - Note about memory usage: arrays never shrink automatically (although you may - use Shrink() function explicitly), they only grow, so loading 10 millions in - an array only to delete them 2 lines below might be a bad idea if the array - object is not going to be destroyed soon. However, as it does free memory - when destroyed, it is ok if the array is a local variable. - */ - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -/* - The initial size by which an array grows when an element is added default - value avoids allocate one or two bytes when the array is created which is - rather inefficient -*/ -#define WX_ARRAY_DEFAULT_INITIAL_SIZE (16) - -#define _WX_ERROR_REMOVE "removing inexistent element in wxArray::Remove" - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -/* - Callback compare function for quick sort. - - It must return negative value, 0 or positive value if the first item is - less than, equal to or greater than the second one. - */ -extern "C" -{ -typedef int (wxCMPFUNC_CONV *CMPFUNC)(const void* pItem1, const void* pItem2); -} - -// ---------------------------------------------------------------------------- -// Base class managing data having size of type 'long' (not used directly) -// -// NB: for efficiency this often used class has no virtual functions (hence no -// virtual table), even dtor is *not* virtual. If used as expected it -// won't create any problems because ARRAYs from DEFINE_ARRAY have no dtor -// at all, so it's not too important if it's not called (this happens when -// you cast "SomeArray *" as "BaseArray *" and then delete it) -// ---------------------------------------------------------------------------- - -#if wxUSE_STD_CONTAINERS - -template -class wxArray_SortFunction -{ -public: - typedef int (wxCMPFUNC_CONV *CMPFUNC)(T* pItem1, T* pItem2); - - wxArray_SortFunction(CMPFUNC f) : m_f(f) { } - bool operator()(const T& i1, const T& i2) - { return m_f((T*)&i1, (T*)&i2) < 0; } -private: - CMPFUNC m_f; -}; - -template -class wxSortedArray_SortFunction -{ -public: - typedef F CMPFUNC; - - wxSortedArray_SortFunction(CMPFUNC f) : m_f(f) { } - bool operator()(const T& i1, const T& i2) - { return m_f(i1, i2) < 0; } -private: - CMPFUNC m_f; -}; - -#define _WX_DECLARE_BASEARRAY(T, name, classexp) \ - typedef int (wxCMPFUNC_CONV *CMPFUN##name)(T pItem1, T pItem2); \ - typedef wxSortedArray_SortFunction name##_Predicate; \ - _WX_DECLARE_BASEARRAY_2(T, name, name##_Predicate, classexp) - -#define _WX_DECLARE_BASEARRAY_2(T, name, predicate, classexp) \ -class name : public std::vector \ -{ \ - typedef predicate Predicate; \ - typedef predicate::CMPFUNC SCMPFUNC; \ -public: \ - typedef wxArray_SortFunction::CMPFUNC CMPFUNC; \ - \ -public: \ - typedef T base_type; \ - \ - name() : std::vector() { } \ - name(size_type n) : std::vector(n) { } \ - name(size_type n, const_reference v) : std::vector(n, v) { } \ - template \ - name(InputIterator first, InputIterator last) : std::vector(first, last) { } \ - \ - void Empty() { clear(); } \ - void Clear() { clear(); } \ - void Alloc(size_t uiSize) { reserve(uiSize); } \ - void Shrink() { name tmp(*this); swap(tmp); } \ - \ - size_t GetCount() const { return size(); } \ - void SetCount(size_t n, T v = T()) { resize(n, v); } \ - bool IsEmpty() const { return empty(); } \ - size_t Count() const { return size(); } \ - \ - T& Item(size_t uiIndex) const \ - { wxASSERT( uiIndex < size() ); return (T&)operator[](uiIndex); } \ - T& Last() const { return Item(size() - 1); } \ - \ - int Index(T item, bool bFromEnd = false) const \ - { \ - if ( bFromEnd ) \ - { \ - const const_reverse_iterator b = rbegin(), \ - e = rend(); \ - for ( const_reverse_iterator i = b; i != e; ++i ) \ - if ( *i == item ) \ - return (int)(e - i - 1); \ - } \ - else \ - { \ - const const_iterator b = begin(), \ - e = end(); \ - for ( const_iterator i = b; i != e; ++i ) \ - if ( *i == item ) \ - return (int)(i - b); \ - } \ - \ - return wxNOT_FOUND; \ - } \ - int Index(T lItem, CMPFUNC fnCompare) const \ - { \ - Predicate p((SCMPFUNC)fnCompare); \ - const_iterator i = std::lower_bound(begin(), end(), lItem, p);\ - return i != end() && !p(lItem, *i) ? (int)(i - begin()) \ - : wxNOT_FOUND; \ - } \ - size_t IndexForInsert(T lItem, CMPFUNC fnCompare) const \ - { \ - Predicate p((SCMPFUNC)fnCompare); \ - const_iterator i = std::lower_bound(begin(), end(), lItem, p);\ - return i - begin(); \ - } \ - void Add(T lItem, size_t nInsert = 1) \ - { insert(end(), nInsert, lItem); } \ - size_t Add(T lItem, CMPFUNC fnCompare) \ - { \ - size_t n = IndexForInsert(lItem, fnCompare); \ - Insert(lItem, n); \ - return n; \ - } \ - void Insert(T lItem, size_t uiIndex, size_t nInsert = 1) \ - { insert(begin() + uiIndex, nInsert, lItem); } \ - void Remove(T lItem) \ - { \ - int n = Index(lItem); \ - wxCHECK_RET( n != wxNOT_FOUND, _WX_ERROR_REMOVE ); \ - RemoveAt((size_t)n); \ - } \ - void RemoveAt(size_t uiIndex, size_t nRemove = 1) \ - { erase(begin() + uiIndex, begin() + uiIndex + nRemove); } \ - \ - void Sort(CMPFUNC fCmp) \ - { \ - wxArray_SortFunction p(fCmp); \ - std::sort(begin(), end(), p); \ - } \ -} - -#else // if !wxUSE_STD_CONTAINERS - -#define _WX_DECLARE_BASEARRAY(T, name, classexp) \ -classexp name \ -{ \ - typedef CMPFUNC SCMPFUNC; /* for compatibility wuth wxUSE_STD_CONTAINERS */ \ -public: \ - name(); \ - name(const name& array); \ - name& operator=(const name& src); \ - ~name(); \ - \ - void Empty() { m_nCount = 0; } \ - void Clear(); \ - void Alloc(size_t n) { if ( n > m_nSize ) Realloc(n); } \ - void Shrink(); \ - \ - size_t GetCount() const { return m_nCount; } \ - void SetCount(size_t n, T defval = T()); \ - bool IsEmpty() const { return m_nCount == 0; } \ - size_t Count() const { return m_nCount; } \ - \ - typedef T base_type; \ - \ -protected: \ - T& Item(size_t uiIndex) const \ - { wxASSERT( uiIndex < m_nCount ); return m_pItems[uiIndex]; } \ - T& operator[](size_t uiIndex) const { return Item(uiIndex); } \ - \ - int Index(T lItem, bool bFromEnd = false) const; \ - int Index(T lItem, CMPFUNC fnCompare) const; \ - size_t IndexForInsert(T lItem, CMPFUNC fnCompare) const; \ - void Add(T lItem, size_t nInsert = 1); \ - size_t Add(T lItem, CMPFUNC fnCompare); \ - void Insert(T lItem, size_t uiIndex, size_t nInsert = 1); \ - void Remove(T lItem); \ - void RemoveAt(size_t uiIndex, size_t nRemove = 1); \ - \ - void Sort(CMPFUNC fnCompare); \ - \ - /* *minimal* STL-ish interface, for derived classes */ \ - typedef T value_type; \ - typedef value_type* iterator; \ - typedef const value_type* const_iterator; \ - typedef value_type& reference; \ - typedef const value_type& const_reference; \ - typedef ptrdiff_t difference_type; \ - typedef size_t size_type; \ - \ - void assign(const_iterator first, const_iterator last); \ - void assign(size_type n, const_reference v); \ - size_type capacity() const { return m_nSize; } \ - iterator erase(iterator first, iterator last) \ - { \ - size_type idx = first - begin(); \ - RemoveAt(idx, last - first); \ - return begin() + idx; \ - } \ - iterator erase(iterator it) { return erase(it, it + 1); } \ - void insert(iterator it, size_type n, const value_type& v) \ - { Insert(v, it - begin(), n); } \ - iterator insert(iterator it, const value_type& v = value_type()) \ - { \ - size_type idx = it - begin(); \ - Insert(v, idx); \ - return begin() + idx; \ - } \ - void insert(iterator it, const_iterator first, const_iterator last);\ - void pop_back() { RemoveAt(size() - 1); } \ - void push_back(const value_type& v) { Add(v); } \ - void reserve(size_type n) { Alloc(n); } \ - void resize(size_type count, value_type defval = value_type()) \ - { \ - if ( count < m_nCount ) \ - m_nCount = count; \ - else \ - SetCount(count, defval); \ - } \ - \ - iterator begin() { return m_pItems; } \ - iterator end() { return m_pItems + m_nCount; } \ - const_iterator begin() const { return m_pItems; } \ - const_iterator end() const { return m_pItems + m_nCount; } \ - \ - void swap(name& other) \ - { \ - wxSwap(m_nSize, other.m_nSize); \ - wxSwap(m_nCount, other.m_nCount); \ - wxSwap(m_pItems, other.m_pItems); \ - } \ - \ - /* the following functions may be made directly public because */ \ - /* they don't use the type of the elements at all */ \ -public: \ - void clear() { Clear(); } \ - bool empty() const { return IsEmpty(); } \ - size_type max_size() const { return INT_MAX; } \ - size_type size() const { return GetCount(); } \ - \ -private: \ - void Grow(size_t nIncrement = 0); \ - bool Realloc(size_t nSize); \ - \ - size_t m_nSize, \ - m_nCount; \ - \ - T *m_pItems; \ -} - -#endif // !wxUSE_STD_CONTAINERS - -// ============================================================================ -// The private helper macros containing the core of the array classes -// ============================================================================ - -// Implementation notes: -// -// JACS: Salford C++ doesn't like 'var->operator=' syntax, as in: -// { ((wxBaseArray *)this)->operator=((const wxBaseArray&)src); -// so using a temporary variable instead. -// -// The classes need a (even trivial) ~name() to link under Mac X - -// ---------------------------------------------------------------------------- -// _WX_DEFINE_TYPEARRAY: array for simple types -// ---------------------------------------------------------------------------- - -#if wxUSE_STD_CONTAINERS - -// in STL case we don't need the entire base arrays hack as standard container -// don't suffer from alignment/storage problems as our home-grown do -#define _WX_DEFINE_TYPEARRAY(T, name, base, classexp) \ - _WX_DECLARE_BASEARRAY(T, name, classexp) - -#define _WX_DEFINE_TYPEARRAY_PTR(T, name, base, classexp) \ - _WX_DEFINE_TYPEARRAY(T, name, base, classexp) - -#else // if !wxUSE_STD_CONTAINERS - -// common declaration used by both _WX_DEFINE_TYPEARRAY and -// _WX_DEFINE_TYPEARRAY_PTR -#define _WX_DEFINE_TYPEARRAY_HELPER(T, name, base, classexp, ptrop) \ -wxCOMPILE_TIME_ASSERT2(sizeof(T) <= sizeof(base::base_type), \ - TypeTooBigToBeStoredIn##base, \ - name); \ -typedef int (CMPFUNC_CONV *CMPFUNC##T)(T *pItem1, T *pItem2); \ -classexp name : public base \ -{ \ -public: \ - name() { } \ - ~name() { } \ - \ - T& operator[](size_t uiIndex) const \ - { return (T&)(base::operator[](uiIndex)); } \ - T& Item(size_t uiIndex) const \ - { return (T&)(base::operator[](uiIndex)); } \ - T& Last() const \ - { return (T&)(base::operator[](GetCount() - 1)); } \ - \ - int Index(T lItem, bool bFromEnd = false) const \ - { return base::Index((base_type)lItem, bFromEnd); } \ - \ - void Add(T lItem, size_t nInsert = 1) \ - { base::Add((base_type)lItem, nInsert); } \ - void Insert(T lItem, size_t uiIndex, size_t nInsert = 1) \ - { base::Insert((base_type)lItem, uiIndex, nInsert) ; } \ - \ - void RemoveAt(size_t uiIndex, size_t nRemove = 1) \ - { base::RemoveAt(uiIndex, nRemove); } \ - void Remove(T lItem) \ - { int iIndex = Index(lItem); \ - wxCHECK_RET( iIndex != wxNOT_FOUND, _WX_ERROR_REMOVE); \ - base::RemoveAt((size_t)iIndex); } \ - \ - void Sort(CMPFUNC##T fCmp) { base::Sort((CMPFUNC)fCmp); } \ - \ - /* STL-like interface */ \ -private: \ - typedef base::iterator biterator; \ - typedef base::const_iterator bconst_iterator; \ - typedef base::value_type bvalue_type; \ - typedef base::const_reference bconst_reference; \ -public: \ - typedef T value_type; \ - typedef value_type* pointer; \ - typedef const value_type* const_pointer; \ - typedef value_type* iterator; \ - typedef const value_type* const_iterator; \ - typedef value_type& reference; \ - typedef const value_type& const_reference; \ - typedef base::difference_type difference_type; \ - typedef base::size_type size_type; \ - \ - class reverse_iterator \ - { \ - typedef T value_type; \ - typedef value_type& reference; \ - typedef value_type* pointer; \ - typedef reverse_iterator itor; \ - friend inline itor operator+(int o, const itor& it) \ - { return it.m_ptr - o; } \ - friend inline itor operator+(const itor& it, int o) \ - { return it.m_ptr - o; } \ - friend inline itor operator-(const itor& it, int o) \ - { return it.m_ptr + o; } \ - friend inline difference_type operator-(const itor& i1, \ - const itor& i2) \ - { return i1.m_ptr - i2.m_ptr; } \ - \ - public: \ - pointer m_ptr; \ - reverse_iterator() : m_ptr(NULL) { } \ - reverse_iterator(pointer ptr) : m_ptr(ptr) { } \ - reverse_iterator(const itor& it) : m_ptr(it.m_ptr) { } \ - reference operator*() const { return *m_ptr; } \ - ptrop \ - itor& operator++() { --m_ptr; return *this; } \ - const itor operator++(int) \ - { reverse_iterator tmp = *this; --m_ptr; return tmp; } \ - itor& operator--() { ++m_ptr; return *this; } \ - const itor operator--(int) { itor tmp = *this; ++m_ptr; return tmp; }\ - bool operator ==(const itor& it) const { return m_ptr == it.m_ptr; }\ - bool operator !=(const itor& it) const { return m_ptr != it.m_ptr; }\ - }; \ - \ - class const_reverse_iterator \ - { \ - typedef T value_type; \ - typedef const value_type& reference; \ - typedef const value_type* pointer; \ - typedef const_reverse_iterator itor; \ - friend inline itor operator+(int o, const itor& it) \ - { return it.m_ptr - o; } \ - friend inline itor operator+(const itor& it, int o) \ - { return it.m_ptr - o; } \ - friend inline itor operator-(const itor& it, int o) \ - { return it.m_ptr + o; } \ - friend inline difference_type operator-(const itor& i1, \ - const itor& i2) \ - { return i1.m_ptr - i2.m_ptr; } \ - \ - public: \ - pointer m_ptr; \ - const_reverse_iterator() : m_ptr(NULL) { } \ - const_reverse_iterator(pointer ptr) : m_ptr(ptr) { } \ - const_reverse_iterator(const itor& it) : m_ptr(it.m_ptr) { } \ - const_reverse_iterator(const reverse_iterator& it) : m_ptr(it.m_ptr) { }\ - reference operator*() const { return *m_ptr; } \ - ptrop \ - itor& operator++() { --m_ptr; return *this; } \ - const itor operator++(int) \ - { itor tmp = *this; --m_ptr; return tmp; } \ - itor& operator--() { ++m_ptr; return *this; } \ - const itor operator--(int) { itor tmp = *this; ++m_ptr; return tmp; }\ - bool operator ==(const itor& it) const { return m_ptr == it.m_ptr; }\ - bool operator !=(const itor& it) const { return m_ptr != it.m_ptr; }\ - }; \ - \ - name(size_type n) { assign(n, value_type()); } \ - name(size_type n, const_reference v) { assign(n, v); } \ - name(const_iterator first, const_iterator last) \ - { assign(first, last); } \ - void assign(const_iterator first, const_iterator last) \ - { base::assign((bconst_iterator)first, (bconst_iterator)last); } \ - void assign(size_type n, const_reference v) \ - { base::assign(n, (bconst_reference)v); } \ - reference back() { return *(end() - 1); } \ - const_reference back() const { return *(end() - 1); } \ - iterator begin() { return (iterator)base::begin(); } \ - const_iterator begin() const { return (const_iterator)base::begin(); }\ - size_type capacity() const { return base::capacity(); } \ - iterator end() { return (iterator)base::end(); } \ - const_iterator end() const { return (const_iterator)base::end(); } \ - iterator erase(iterator first, iterator last) \ - { return (iterator)base::erase((biterator)first, (biterator)last); }\ - iterator erase(iterator it) \ - { return (iterator)base::erase((biterator)it); } \ - reference front() { return *begin(); } \ - const_reference front() const { return *begin(); } \ - void insert(iterator it, size_type n, const_reference v) \ - { base::insert((biterator)it, n, (bconst_reference)v); } \ - iterator insert(iterator it, const_reference v = value_type()) \ - { return (iterator)base::insert((biterator)it, (bconst_reference)v); }\ - void insert(iterator it, const_iterator first, const_iterator last) \ - { base::insert((biterator)it, (bconst_iterator)first, \ - (bconst_iterator)last); } \ - void pop_back() { base::pop_back(); } \ - void push_back(const_reference v) \ - { base::push_back((bconst_reference)v); } \ - reverse_iterator rbegin() { return reverse_iterator(end() - 1); } \ - const_reverse_iterator rbegin() const; \ - reverse_iterator rend() { return reverse_iterator(begin() - 1); } \ - const_reverse_iterator rend() const; \ - void reserve(size_type n) { base::reserve(n); } \ - void resize(size_type n, value_type v = value_type()) \ - { base::resize(n, v); } \ - void swap(name& other) { base::swap(other); } \ -} - -#define _WX_PTROP pointer operator->() const { return m_ptr; } -#define _WX_PTROP_NONE - -#define _WX_DEFINE_TYPEARRAY(T, name, base, classexp) \ - _WX_DEFINE_TYPEARRAY_HELPER(T, name, base, classexp, _WX_PTROP) -#define _WX_DEFINE_TYPEARRAY_PTR(T, name, base, classexp) \ - _WX_DEFINE_TYPEARRAY_HELPER(T, name, base, classexp, _WX_PTROP_NONE) - -#endif // !wxUSE_STD_CONTAINERS - -// ---------------------------------------------------------------------------- -// _WX_DEFINE_SORTED_TYPEARRAY: sorted array for simple data types -// cannot handle types with size greater than pointer because of sorting -// ---------------------------------------------------------------------------- - -#define _WX_DEFINE_SORTED_TYPEARRAY_2(T, name, base, defcomp, classexp, comptype)\ -wxCOMPILE_TIME_ASSERT2(sizeof(T) <= sizeof(base::base_type), \ - TypeTooBigToBeStoredInSorted##base, \ - name); \ -classexp name : public base \ -{ \ - typedef comptype SCMPFUNC; \ -public: \ - name(comptype fn defcomp) { m_fnCompare = fn; } \ - \ - name& operator=(const name& src) \ - { base* temp = (base*) this; \ - (*temp) = ((const base&)src); \ - m_fnCompare = src.m_fnCompare; \ - return *this; } \ - \ - T& operator[](size_t uiIndex) const \ - { return (T&)(base::operator[](uiIndex)); } \ - T& Item(size_t uiIndex) const \ - { return (T&)(base::operator[](uiIndex)); } \ - T& Last() const \ - { return (T&)(base::operator[](size() - 1)); } \ - \ - int Index(T lItem) const \ - { return base::Index(lItem, (CMPFUNC)m_fnCompare); } \ - \ - size_t IndexForInsert(T lItem) const \ - { return base::IndexForInsert(lItem, (CMPFUNC)m_fnCompare); } \ - \ - void AddAt(T item, size_t index) \ - { base::insert(begin() + index, item); } \ - \ - size_t Add(T lItem) \ - { return base::Add(lItem, (CMPFUNC)m_fnCompare); } \ - void push_back(T lItem) \ - { Add(lItem); } \ - \ - void RemoveAt(size_t uiIndex, size_t nRemove = 1) \ - { base::erase(begin() + uiIndex, begin() + uiIndex + nRemove); } \ - void Remove(T lItem) \ - { int iIndex = Index(lItem); \ - wxCHECK_RET( iIndex != wxNOT_FOUND, _WX_ERROR_REMOVE ); \ - base::erase(begin() + iIndex); } \ - \ -private: \ - comptype m_fnCompare; \ -} - - -// ---------------------------------------------------------------------------- -// _WX_DECLARE_OBJARRAY: an array for pointers to type T with owning semantics -// ---------------------------------------------------------------------------- - -#define _WX_DECLARE_OBJARRAY(T, name, base, classexp) \ -typedef int (CMPFUNC_CONV *CMPFUNC##T)(T **pItem1, T **pItem2); \ -classexp name : protected base \ -{ \ -typedef int (CMPFUNC_CONV *CMPFUNC##base)(void **pItem1, void **pItem2); \ -typedef base base_array; \ -public: \ - name() { } \ - name(const name& src); \ - name& operator=(const name& src); \ - \ - ~name(); \ - \ - void Alloc(size_t count) { base::reserve(count); } \ - void reserve(size_t count) { base::reserve(count); } \ - size_t GetCount() const { return base_array::size(); } \ - size_t size() const { return base_array::size(); } \ - bool IsEmpty() const { return base_array::empty(); } \ - bool empty() const { return base_array::empty(); } \ - size_t Count() const { return base_array::size(); } \ - void Shrink() { base::Shrink(); } \ - \ - T& operator[](size_t uiIndex) const \ - { return *(T*)base::operator[](uiIndex); } \ - T& Item(size_t uiIndex) const \ - { return *(T*)base::operator[](uiIndex); } \ - T& Last() const \ - { return *(T*)(base::operator[](size() - 1)); } \ - \ - int Index(const T& lItem, bool bFromEnd = false) const; \ - \ - void Add(const T& lItem, size_t nInsert = 1); \ - void Add(const T* pItem) \ - { base::push_back((T*)pItem); } \ - void push_back(const T* pItem) \ - { base::push_back((T*)pItem); } \ - void push_back(const T& lItem) \ - { Add(lItem); } \ - \ - void Insert(const T& lItem, size_t uiIndex, size_t nInsert = 1); \ - void Insert(const T* pItem, size_t uiIndex) \ - { base::insert(begin() + uiIndex, (T*)pItem); } \ - \ - void Empty() { DoEmpty(); base::clear(); } \ - void Clear() { DoEmpty(); base::clear(); } \ - \ - T* Detach(size_t uiIndex) \ - { T* p = (T*)base::operator[](uiIndex); \ - base::erase(begin() + uiIndex); return p; } \ - void RemoveAt(size_t uiIndex, size_t nRemove = 1); \ - \ - void Sort(CMPFUNC##T fCmp) { base::Sort((CMPFUNC##base)fCmp); } \ - \ -private: \ - void DoEmpty(); \ - void DoCopy(const name& src); \ -} - -// ============================================================================ -// The public macros for declaration and definition of the dynamic arrays -// ============================================================================ - -// Please note that for each macro WX_FOO_ARRAY we also have -// WX_FOO_EXPORTED_ARRAY and WX_FOO_USER_EXPORTED_ARRAY which are exactly the -// same except that they use an additional __declspec(dllexport) or equivalent -// under Windows if needed. -// -// The first (just EXPORTED) macros do it if wxWidgets was compiled as a DLL -// and so must be used used inside the library. The second kind (USER_EXPORTED) -// allow the user code to do it when it wants. This is needed if you have a dll -// that wants to export a wxArray daubed with your own import/export goo. -// -// Finally, you can define the macro below as something special to modify the -// arrays defined by a simple WX_FOO_ARRAY as well. By default is empty. -#define wxARRAY_DEFAULT_EXPORT - -// ---------------------------------------------------------------------------- -// WX_DECLARE_BASEARRAY(T, name) declare an array class named "name" containing -// the elements of type T -// ---------------------------------------------------------------------------- - -#define WX_DECLARE_BASEARRAY(T, name) \ - WX_DECLARE_USER_EXPORTED_BASEARRAY(T, name, wxARRAY_DEFAULT_EXPORT) - -#define WX_DECLARE_EXPORTED_BASEARRAY(T, name) \ - WX_DECLARE_USER_EXPORTED_BASEARRAY(T, name, WXDLLIMPEXP_CORE) - -#define WX_DECLARE_USER_EXPORTED_BASEARRAY(T, name, expmode) \ - typedef T _wxArray##name; \ - _WX_DECLARE_BASEARRAY(_wxArray##name, name, class expmode) - -// ---------------------------------------------------------------------------- -// WX_DEFINE_TYPEARRAY(T, name, base) define an array class named "name" deriving -// from class "base" containing the elements of type T -// -// Note that the class defined has only inline function and doesn't take any -// space at all so there is no size penalty for defining multiple array classes -// ---------------------------------------------------------------------------- - -#define WX_DEFINE_TYPEARRAY(T, name, base) \ - WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, base, class wxARRAY_DEFAULT_EXPORT) - -#define WX_DEFINE_TYPEARRAY_PTR(T, name, base) \ - WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, base, class wxARRAY_DEFAULT_EXPORT) - -#define WX_DEFINE_EXPORTED_TYPEARRAY(T, name, base) \ - WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, base, class WXDLLIMPEXP_CORE) - -#define WX_DEFINE_EXPORTED_TYPEARRAY_PTR(T, name, base) \ - WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, base, class WXDLLIMPEXP_CORE) - -#define WX_DEFINE_USER_EXPORTED_TYPEARRAY(T, name, base, expdecl) \ - WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, base, class expdecl) - -#define WX_DEFINE_USER_EXPORTED_TYPEARRAY_PTR(T, name, base, expdecl) \ - WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, base, class expdecl) - -#define WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, base, classdecl) \ - typedef T _wxArray##name; \ - _WX_DEFINE_TYPEARRAY(_wxArray##name, name, base, classdecl) - -#define WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, base, classdecl) \ - typedef T _wxArray##name; \ - _WX_DEFINE_TYPEARRAY_PTR(_wxArray##name, name, base, classdecl) - -// ---------------------------------------------------------------------------- -// WX_DEFINE_SORTED_TYPEARRAY: this is the same as the previous macro, but it -// defines a sorted array. -// -// Differences: -// 1) it must be given a COMPARE function in ctor which takes 2 items of type -// T* and should return -1, 0 or +1 if the first one is less/greater -// than/equal to the second one. -// 2) the Add() method inserts the item in such was that the array is always -// sorted (it uses the COMPARE function) -// 3) it has no Sort() method because it's always sorted -// 4) Index() method is much faster (the sorted arrays use binary search -// instead of linear one), but Add() is slower. -// 5) there is no Insert() method because you can't insert an item into the -// given position in a sorted array but there is IndexForInsert()/AddAt() -// pair which may be used to optimize a common operation of "insert only if -// not found" -// -// Note that you have to specify the comparison function when creating the -// objects of this array type. If, as in 99% of cases, the comparison function -// is the same for all objects of a class, WX_DEFINE_SORTED_TYPEARRAY_CMP below -// is more convenient. -// -// Summary: use this class when the speed of Index() function is important, use -// the normal arrays otherwise. -// ---------------------------------------------------------------------------- - -// we need a macro which expands to nothing to pass correct number of -// parameters to a nested macro invocation even when we don't have anything to -// pass it -#define wxARRAY_EMPTY - -#define WX_DEFINE_SORTED_TYPEARRAY(T, name, base) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY(T, name, base, \ - wxARRAY_DEFAULT_EXPORT) - -#define WX_DEFINE_SORTED_EXPORTED_TYPEARRAY(T, name, base) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY(T, name, base, WXDLLIMPEXP_CORE) - -#define WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY(T, name, base, expmode) \ - typedef T _wxArray##name; \ - typedef int (CMPFUNC_CONV *SCMPFUNC##name)(T pItem1, T pItem2); \ - _WX_DEFINE_SORTED_TYPEARRAY_2(_wxArray##name, name, base, \ - wxARRAY_EMPTY, class expmode, SCMPFUNC##name) - -// ---------------------------------------------------------------------------- -// WX_DEFINE_SORTED_TYPEARRAY_CMP: exactly the same as above but the comparison -// function is provided by this macro and the objects of this class have a -// default constructor which just uses it. -// -// The arguments are: the element type, the comparison function and the array -// name -// -// NB: this is, of course, how WX_DEFINE_SORTED_TYPEARRAY() should have worked -// from the very beginning - unfortunately I didn't think about this earlier -// ---------------------------------------------------------------------------- - -#define WX_DEFINE_SORTED_TYPEARRAY_CMP(T, cmpfunc, name, base) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, base, \ - wxARRAY_DEFAULT_EXPORT) - -#define WX_DEFINE_SORTED_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, base) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, base, \ - WXDLLIMPEXP_CORE) - -#define WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, base, \ - expmode) \ - typedef T _wxArray##name; \ - typedef int (CMPFUNC_CONV *SCMPFUNC##name)(T pItem1, T pItem2); \ - _WX_DEFINE_SORTED_TYPEARRAY_2(_wxArray##name, name, base, = cmpfunc, \ - class expmode, SCMPFUNC##name) - -// ---------------------------------------------------------------------------- -// WX_DECLARE_OBJARRAY(T, name): this macro generates a new array class -// named "name" which owns the objects of type T it contains, i.e. it will -// delete them when it is destroyed. -// -// An element is of type T*, but arguments of type T& are taken (see below!) -// and T& is returned. -// -// Don't use this for simple types such as "int" or "long"! -// -// Note on Add/Insert functions: -// 1) function(T*) gives the object to the array, i.e. it will delete the -// object when it's removed or in the array's dtor -// 2) function(T&) will create a copy of the object and work with it -// -// Also: -// 1) Remove() will delete the object after removing it from the array -// 2) Detach() just removes the object from the array (returning pointer to it) -// -// NB1: Base type T should have an accessible copy ctor if Add(T&) is used -// NB2: Never ever cast a array to it's base type: as dtor is not virtual -// and so you risk having at least the memory leaks and probably worse -// -// Some functions of this class are not inline, so it takes some space to -// define new class from this template even if you don't use it - which is not -// the case for the simple (non-object) array classes -// -// To use an objarray class you must -// #include "dynarray.h" -// WX_DECLARE_OBJARRAY(element_type, list_class_name) -// #include "arrimpl.cpp" -// WX_DEFINE_OBJARRAY(list_class_name) // name must be the same as above! -// -// This is necessary because at the moment of DEFINE_OBJARRAY class parsing the -// element_type must be fully defined (i.e. forward declaration is not -// enough), while WX_DECLARE_OBJARRAY may be done anywhere. The separation of -// two allows to break cicrcular dependencies with classes which have member -// variables of objarray type. -// ---------------------------------------------------------------------------- - -#define WX_DECLARE_OBJARRAY(T, name) \ - WX_DECLARE_USER_EXPORTED_OBJARRAY(T, name, wxARRAY_DEFAULT_EXPORT) - -#define WX_DECLARE_EXPORTED_OBJARRAY(T, name) \ - WX_DECLARE_USER_EXPORTED_OBJARRAY(T, name, WXDLLIMPEXP_CORE) - -#define WX_DECLARE_OBJARRAY_WITH_DECL(T, name, decl) \ - typedef T _wxObjArray##name; \ - _WX_DECLARE_OBJARRAY(_wxObjArray##name, name, wxArrayPtrVoid, decl) - -#define WX_DECLARE_USER_EXPORTED_OBJARRAY(T, name, expmode) \ - WX_DECLARE_OBJARRAY_WITH_DECL(T, name, class expmode) - -// WX_DEFINE_OBJARRAY is going to be redefined when arrimpl.cpp is included, -// try to provoke a human-understandable error if it used incorrectly. -// -// there is no real need for 3 different macros in the DEFINE case but do it -// anyhow for consistency -#define WX_DEFINE_OBJARRAY(name) DidYouIncludeArrimplCpp -#define WX_DEFINE_EXPORTED_OBJARRAY(name) WX_DEFINE_OBJARRAY(name) -#define WX_DEFINE_USER_EXPORTED_OBJARRAY(name) WX_DEFINE_OBJARRAY(name) - -// ---------------------------------------------------------------------------- -// Some commonly used predefined base arrays -// ---------------------------------------------------------------------------- - -WX_DECLARE_USER_EXPORTED_BASEARRAY(const void *, wxBaseArrayPtrVoid, - WXDLLIMPEXP_BASE); -WX_DECLARE_USER_EXPORTED_BASEARRAY(char, wxBaseArrayChar, WXDLLIMPEXP_BASE); -WX_DECLARE_USER_EXPORTED_BASEARRAY(short, wxBaseArrayShort, WXDLLIMPEXP_BASE); -WX_DECLARE_USER_EXPORTED_BASEARRAY(int, wxBaseArrayInt, WXDLLIMPEXP_BASE); -WX_DECLARE_USER_EXPORTED_BASEARRAY(long, wxBaseArrayLong, WXDLLIMPEXP_BASE); -WX_DECLARE_USER_EXPORTED_BASEARRAY(size_t, wxBaseArraySizeT, WXDLLIMPEXP_BASE); -WX_DECLARE_USER_EXPORTED_BASEARRAY(double, wxBaseArrayDouble, WXDLLIMPEXP_BASE); - -// ---------------------------------------------------------------------------- -// Convenience macros to define arrays from base arrays -// ---------------------------------------------------------------------------- - -#define WX_DEFINE_ARRAY(T, name) \ - WX_DEFINE_TYPEARRAY(T, name, wxBaseArrayPtrVoid) -#define WX_DEFINE_ARRAY_PTR(T, name) \ - WX_DEFINE_TYPEARRAY_PTR(T, name, wxBaseArrayPtrVoid) -#define WX_DEFINE_EXPORTED_ARRAY(T, name) \ - WX_DEFINE_EXPORTED_TYPEARRAY(T, name, wxBaseArrayPtrVoid) -#define WX_DEFINE_EXPORTED_ARRAY_PTR(T, name) \ - WX_DEFINE_EXPORTED_TYPEARRAY_PTR(T, name, wxBaseArrayPtrVoid) -#define WX_DEFINE_ARRAY_WITH_DECL_PTR(T, name, decl) \ - WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, wxBaseArrayPtrVoid, decl) -#define WX_DEFINE_USER_EXPORTED_ARRAY(T, name, expmode) \ - WX_DEFINE_TYPEARRAY_WITH_DECL(T, name, wxBaseArrayPtrVoid, wxARRAY_EMPTY expmode) -#define WX_DEFINE_USER_EXPORTED_ARRAY_PTR(T, name, expmode) \ - WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, wxBaseArrayPtrVoid, wxARRAY_EMPTY expmode) - -#define WX_DEFINE_ARRAY_CHAR(T, name) \ - WX_DEFINE_TYPEARRAY_PTR(T, name, wxBaseArrayChar) -#define WX_DEFINE_EXPORTED_ARRAY_CHAR(T, name) \ - WX_DEFINE_EXPORTED_TYPEARRAY_PTR(T, name, wxBaseArrayChar) -#define WX_DEFINE_USER_EXPORTED_ARRAY_CHAR(T, name, expmode) \ - WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, wxBaseArrayChar, wxARRAY_EMPTY expmode) - -#define WX_DEFINE_ARRAY_SHORT(T, name) \ - WX_DEFINE_TYPEARRAY_PTR(T, name, wxBaseArrayShort) -#define WX_DEFINE_EXPORTED_ARRAY_SHORT(T, name) \ - WX_DEFINE_EXPORTED_TYPEARRAY_PTR(T, name, wxBaseArrayShort) -#define WX_DEFINE_USER_EXPORTED_ARRAY_SHORT(T, name, expmode) \ - WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, wxBaseArrayShort, wxARRAY_EMPTY expmode) - -#define WX_DEFINE_ARRAY_INT(T, name) \ - WX_DEFINE_TYPEARRAY_PTR(T, name, wxBaseArrayInt) -#define WX_DEFINE_EXPORTED_ARRAY_INT(T, name) \ - WX_DEFINE_EXPORTED_TYPEARRAY_PTR(T, name, wxBaseArrayInt) -#define WX_DEFINE_USER_EXPORTED_ARRAY_INT(T, name, expmode) \ - WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, wxBaseArrayInt, wxARRAY_EMPTY expmode) - -#define WX_DEFINE_ARRAY_LONG(T, name) \ - WX_DEFINE_TYPEARRAY_PTR(T, name, wxBaseArrayLong) -#define WX_DEFINE_EXPORTED_ARRAY_LONG(T, name) \ - WX_DEFINE_EXPORTED_TYPEARRAY_PTR(T, name, wxBaseArrayLong) -#define WX_DEFINE_USER_EXPORTED_ARRAY_LONG(T, name, expmode) \ - WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, wxBaseArrayLong, wxARRAY_EMPTY expmode) - -#define WX_DEFINE_ARRAY_SIZE_T(T, name) \ - WX_DEFINE_TYPEARRAY_PTR(T, name, wxBaseArraySizeT) -#define WX_DEFINE_EXPORTED_ARRAY_SIZE_T(T, name) \ - WX_DEFINE_EXPORTED_TYPEARRAY_PTR(T, name, wxBaseArraySizeT) -#define WX_DEFINE_USER_EXPORTED_ARRAY_SIZE_T(T, name, expmode) \ - WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, wxBaseArraySizeT, wxARRAY_EMPTY expmode) - -#define WX_DEFINE_ARRAY_DOUBLE(T, name) \ - WX_DEFINE_TYPEARRAY_PTR(T, name, wxBaseArrayDouble) -#define WX_DEFINE_EXPORTED_ARRAY_DOUBLE(T, name) \ - WX_DEFINE_EXPORTED_TYPEARRAY_PTR(T, name, wxBaseArrayDouble) -#define WX_DEFINE_USER_EXPORTED_ARRAY_DOUBLE(T, name, expmode) \ - WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(T, name, wxBaseArrayDouble, wxARRAY_EMPTY expmode) - -// ---------------------------------------------------------------------------- -// Convenience macros to define sorted arrays from base arrays -// ---------------------------------------------------------------------------- - -#define WX_DEFINE_SORTED_ARRAY(T, name) \ - WX_DEFINE_SORTED_TYPEARRAY(T, name, wxBaseArrayPtrVoid) -#define WX_DEFINE_SORTED_EXPORTED_ARRAY(T, name) \ - WX_DEFINE_SORTED_EXPORTED_TYPEARRAY(T, name, wxBaseArrayPtrVoid) -#define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY(T, name, expmode) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY(T, name, wxBaseArrayPtrVoid, wxARRAY_EMPTY expmode) - -#define WX_DEFINE_SORTED_ARRAY_CHAR(T, name) \ - WX_DEFINE_SORTED_TYPEARRAY(T, name, wxBaseArrayChar) -#define WX_DEFINE_SORTED_EXPORTED_ARRAY_CHAR(T, name) \ - WX_DEFINE_SORTED_EXPORTED_TYPEARRAY(T, name, wxBaseArrayChar) -#define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY_CHAR(T, name, expmode) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY(T, name, wxBaseArrayChar, wxARRAY_EMPTY expmode) - -#define WX_DEFINE_SORTED_ARRAY_SHORT(T, name) \ - WX_DEFINE_SORTED_TYPEARRAY(T, name, wxBaseArrayShort) -#define WX_DEFINE_SORTED_EXPORTED_ARRAY_SHORT(T, name) \ - WX_DEFINE_SORTED_EXPORTED_TYPEARRAY(T, name, wxBaseArrayShort) -#define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY_SHORT(T, name, expmode) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY(T, name, wxBaseArrayShort, wxARRAY_EMPTY expmode) - -#define WX_DEFINE_SORTED_ARRAY_INT(T, name) \ - WX_DEFINE_SORTED_TYPEARRAY(T, name, wxBaseArrayInt) -#define WX_DEFINE_SORTED_EXPORTED_ARRAY_INT(T, name) \ - WX_DEFINE_SORTED_EXPORTED_TYPEARRAY(T, name, wxBaseArrayInt) -#define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY_INT(T, name, expmode) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY(T, name, wxBaseArrayInt, expmode) - -#define WX_DEFINE_SORTED_ARRAY_LONG(T, name) \ - WX_DEFINE_SORTED_TYPEARRAY(T, name, wxBaseArrayLong) -#define WX_DEFINE_SORTED_EXPORTED_ARRAY_LONG(T, name) \ - WX_DEFINE_SORTED_EXPORTED_TYPEARRAY(T, name, wxBaseArrayLong) -#define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY_LONG(T, name, expmode) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY(T, name, wxBaseArrayLong, expmode) - -#define WX_DEFINE_SORTED_ARRAY_SIZE_T(T, name) \ - WX_DEFINE_SORTED_TYPEARRAY(T, name, wxBaseArraySizeT) -#define WX_DEFINE_SORTED_EXPORTED_ARRAY_SIZE_T(T, name) \ - WX_DEFINE_SORTED_EXPORTED_TYPEARRAY(T, name, wxBaseArraySizeT) -#define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY_SIZE_T(T, name, expmode) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY(T, name, wxBaseArraySizeT, wxARRAY_EMPTY expmode) - -// ---------------------------------------------------------------------------- -// Convenience macros to define sorted arrays from base arrays -// ---------------------------------------------------------------------------- - -#define WX_DEFINE_SORTED_ARRAY_CMP(T, cmpfunc, name) \ - WX_DEFINE_SORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArrayPtrVoid) -#define WX_DEFINE_SORTED_EXPORTED_ARRAY_CMP(T, cmpfunc, name) \ - WX_DEFINE_SORTED_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArrayPtrVoid) -#define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY_CMP(T, cmpfunc, \ - name, expmode) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, \ - wxBaseArrayPtrVoid, \ - wxARRAY_EMPTY expmode) - -#define WX_DEFINE_SORTED_ARRAY_CMP_CHAR(T, cmpfunc, name) \ - WX_DEFINE_SORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArrayChar) -#define WX_DEFINE_SORTED_EXPORTED_ARRAY_CMP_CHAR(T, cmpfunc, name) \ - WX_DEFINE_SORTED_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArrayChar) -#define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY_CMP_CHAR(T, cmpfunc, \ - name, expmode) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, \ - wxBaseArrayChar, \ - wxARRAY_EMPTY expmode) - -#define WX_DEFINE_SORTED_ARRAY_CMP_SHORT(T, cmpfunc, name) \ - WX_DEFINE_SORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArrayShort) -#define WX_DEFINE_SORTED_EXPORTED_ARRAY_CMP_SHORT(T, cmpfunc, name) \ - WX_DEFINE_SORTED_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArrayShort) -#define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY_CMP_SHORT(T, cmpfunc, \ - name, expmode) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, \ - wxBaseArrayShort, \ - wxARRAY_EMPTY expmode) - -#define WX_DEFINE_SORTED_ARRAY_CMP_INT(T, cmpfunc, name) \ - WX_DEFINE_SORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArrayInt) -#define WX_DEFINE_SORTED_EXPORTED_ARRAY_CMP_INT(T, cmpfunc, name) \ - WX_DEFINE_SORTED_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArrayInt) -#define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY_CMP_INT(T, cmpfunc, \ - name, expmode) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, \ - wxBaseArrayInt, \ - wxARRAY_EMPTY expmode) - -#define WX_DEFINE_SORTED_ARRAY_CMP_LONG(T, cmpfunc, name) \ - WX_DEFINE_SORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArrayLong) -#define WX_DEFINE_SORTED_EXPORTED_ARRAY_CMP_LONG(T, cmpfunc, name) \ - WX_DEFINE_SORTED_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArrayLong) -#define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY_CMP_LONG(T, cmpfunc, \ - name, expmode) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, \ - wxBaseArrayLong, \ - wxARRAY_EMPTY expmode) - -#define WX_DEFINE_SORTED_ARRAY_CMP_SIZE_T(T, cmpfunc, name) \ - WX_DEFINE_SORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArraySizeT) -#define WX_DEFINE_SORTED_EXPORTED_ARRAY_CMP_SIZE_T(T, cmpfunc, name) \ - WX_DEFINE_SORTED_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, wxBaseArraySizeT) -#define WX_DEFINE_SORTED_USER_EXPORTED_ARRAY_CMP_SIZE_T(T, cmpfunc, \ - name, expmode) \ - WX_DEFINE_SORTED_USER_EXPORTED_TYPEARRAY_CMP(T, cmpfunc, name, \ - wxBaseArraySizeT, \ - wxARRAY_EMPTY expmode) - -// ---------------------------------------------------------------------------- -// Some commonly used predefined arrays -// ---------------------------------------------------------------------------- - -WX_DEFINE_USER_EXPORTED_ARRAY_SHORT(short, wxArrayShort, class WXDLLIMPEXP_BASE); -WX_DEFINE_USER_EXPORTED_ARRAY_INT(int, wxArrayInt, class WXDLLIMPEXP_BASE); -WX_DEFINE_USER_EXPORTED_ARRAY_DOUBLE(double, wxArrayDouble, class WXDLLIMPEXP_BASE); -WX_DEFINE_USER_EXPORTED_ARRAY_LONG(long, wxArrayLong, class WXDLLIMPEXP_BASE); -WX_DEFINE_USER_EXPORTED_ARRAY_PTR(void *, wxArrayPtrVoid, class WXDLLIMPEXP_BASE); - -// ----------------------------------------------------------------------------- -// convenience macros -// ----------------------------------------------------------------------------- - -// prepend all element of one array to another one; e.g. if first array contains -// elements X,Y,Z and the second contains A,B,C (in those orders), then the -// first array will be result as A,B,C,X,Y,Z -#define WX_PREPEND_ARRAY(array, other) \ - { \ - size_t wxAAcnt = (other).size(); \ - (array).reserve(wxAAcnt); \ - for ( size_t wxAAn = 0; wxAAn < wxAAcnt; wxAAn++ ) \ - { \ - (array).Insert((other)[wxAAn], wxAAn); \ - } \ - } - -// append all element of one array to another one -#define WX_APPEND_ARRAY(array, other) \ - { \ - size_t wxAAcnt = (other).size(); \ - (array).reserve(wxAAcnt); \ - for ( size_t wxAAn = 0; wxAAn < wxAAcnt; wxAAn++ ) \ - { \ - (array).push_back((other)[wxAAn]); \ - } \ - } - -// delete all array elements -// -// NB: the class declaration of the array elements must be visible from the -// place where you use this macro, otherwise the proper destructor may not -// be called (a decent compiler should give a warning about it, but don't -// count on it)! -#define WX_CLEAR_ARRAY(array) \ - { \ - size_t wxAAcnt = (array).size(); \ - for ( size_t wxAAn = 0; wxAAn < wxAAcnt; wxAAn++ ) \ - { \ - delete (array)[wxAAn]; \ - } \ - \ - (array).clear(); \ - } - -#endif // _DYNARRAY_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dynlib.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dynlib.h deleted file mode 100644 index 0f035d90..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dynlib.h +++ /dev/null @@ -1,417 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dynlib.h -// Purpose: Dynamic library loading classes -// Author: Guilhem Lavaux, Vadim Zeitlin, Vaclav Slavik -// Modified by: -// Created: 20/07/98 -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DYNLIB_H__ -#define _WX_DYNLIB_H__ - -#include "wx/defs.h" - -#if wxUSE_DYNLIB_CLASS - -#include "wx/string.h" -#include "wx/dynarray.h" - -// note that we have our own dlerror() implementation under Darwin -#if defined(HAVE_DLERROR) || defined(__DARWIN__) - #define wxHAVE_DYNLIB_ERROR -#endif - -class WXDLLIMPEXP_FWD_BASE wxDynamicLibraryDetailsCreator; - -// ---------------------------------------------------------------------------- -// conditional compilation -// ---------------------------------------------------------------------------- - -#if defined(__WINDOWS__) - typedef WXHMODULE wxDllType; -#elif defined(__DARWIN__) - // Don't include dlfcn.h on Darwin, we may be using our own replacements. - typedef void *wxDllType; -#elif defined(HAVE_DLOPEN) - #include - typedef void *wxDllType; -#elif defined(HAVE_SHL_LOAD) - #include - typedef shl_t wxDllType; -#elif defined(__WXMAC__) - #include - typedef CFragConnectionID wxDllType; -#else - #error "Dynamic Loading classes can't be compiled on this platform, sorry." -#endif - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -enum wxDLFlags -{ - wxDL_LAZY = 0x00000001, // resolve undefined symbols at first use - // (only works on some Unix versions) - wxDL_NOW = 0x00000002, // resolve undefined symbols on load - // (default, always the case under Win32) - wxDL_GLOBAL = 0x00000004, // export extern symbols to subsequently - // loaded libs. - wxDL_VERBATIM = 0x00000008, // attempt to load the supplied library - // name without appending the usual dll - // filename extension. - - // this flag is obsolete, don't use - wxDL_NOSHARE = 0x00000010, // load new DLL, don't reuse already loaded - // (only for wxPluginManager) - - wxDL_QUIET = 0x00000020, // don't log an error if failed to load - - // this flag is dangerous, for internal use of wxMSW only, don't use at all - // and especially don't use directly, use wxLoadedDLL instead if you really - // do need it - wxDL_GET_LOADED = 0x00000040, // Win32 only: return handle of already - // loaded DLL or NULL otherwise; Unload() - // should not be called so don't forget to - // Detach() if you use this function - - wxDL_DEFAULT = wxDL_NOW // default flags correspond to Win32 -}; - -enum wxDynamicLibraryCategory -{ - wxDL_LIBRARY, // standard library - wxDL_MODULE // loadable module/plugin -}; - -enum wxPluginCategory -{ - wxDL_PLUGIN_GUI, // plugin that uses GUI classes - wxDL_PLUGIN_BASE // wxBase-only plugin -}; - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -// when loading a function from a DLL you always have to cast the returned -// "void *" pointer to the correct type and, even more annoyingly, you have to -// repeat this type twice if you want to declare and define a function pointer -// all in one line -// -// this macro makes this slightly less painful by allowing you to specify the -// type only once, as the first parameter, and creating a variable of this type -// called "pfn" initialized with the "name" from the "dynlib" -#define wxDYNLIB_FUNCTION(type, name, dynlib) \ - type pfn ## name = (type)(dynlib).GetSymbol(wxT(#name)) - - -// a more convenient function replacing wxDYNLIB_FUNCTION above -// -// it uses the convention that the type of the function is its name suffixed -// with "_t" but it doesn't define a variable but just assigns the loaded value -// to it and also allows to pass it the prefix to be used instead of hardcoding -// "pfn" (the prefix can be "m_" or "gs_pfn" or whatever) -// -// notice that this function doesn't generate error messages if the symbol -// couldn't be loaded, the caller should generate the appropriate message -#define wxDL_INIT_FUNC(pfx, name, dynlib) \ - pfx ## name = (name ## _t)(dynlib).RawGetSymbol(#name) - -#ifdef __WINDOWS__ - -// same as wxDL_INIT_FUNC() but appends 'A' or 'W' to the function name, see -// wxDynamicLibrary::GetSymbolAorW() -#define wxDL_INIT_FUNC_AW(pfx, name, dynlib) \ - pfx ## name = (name ## _t)(dynlib).GetSymbolAorW(#name) - -#endif // __WINDOWS__ - -// the following macros can be used to redirect a whole library to a class and -// check at run-time if the library is present and contains all required -// methods -// -// notice that they are supposed to be used inside a class which has "m_ok" -// member variable indicating if the library had been successfully loaded - -// helper macros constructing the name of the variable storing the function -// pointer and the name of its type from the function name -#define wxDL_METHOD_NAME(name) m_pfn ## name -#define wxDL_METHOD_TYPE(name) name ## _t - -// parameters are: -// - rettype: return type of the function, e.g. "int" -// - name: name of the function, e.g. "foo" -// - args: function signature in parentheses, e.g. "(int x, int y)" -// - argnames: the names of the parameters in parentheses, e.g. "(x, y)" -// - defret: the value to return if the library wasn't successfully loaded -#define wxDL_METHOD_DEFINE( rettype, name, args, argnames, defret ) \ - typedef rettype (* wxDL_METHOD_TYPE(name)) args ; \ - wxDL_METHOD_TYPE(name) wxDL_METHOD_NAME(name); \ - rettype name args \ - { return m_ok ? wxDL_METHOD_NAME(name) argnames : defret; } - -#define wxDL_VOIDMETHOD_DEFINE( name, args, argnames ) \ - typedef void (* wxDL_METHOD_TYPE(name)) args ; \ - wxDL_METHOD_TYPE(name) wxDL_METHOD_NAME(name); \ - void name args \ - { if ( m_ok ) wxDL_METHOD_NAME(name) argnames ; } - -#define wxDL_METHOD_LOAD(lib, name) \ - wxDL_METHOD_NAME(name) = \ - (wxDL_METHOD_TYPE(name)) lib.GetSymbol(#name, &m_ok); \ - if ( !m_ok ) return false - -// ---------------------------------------------------------------------------- -// wxDynamicLibraryDetails: contains details about a loaded wxDynamicLibrary -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxDynamicLibraryDetails -{ -public: - // ctor, normally never used as these objects are only created by - // wxDynamicLibrary::ListLoaded() - wxDynamicLibraryDetails() { m_address = NULL; m_length = 0; } - - // get the (base) name - wxString GetName() const { return m_name; } - - // get the full path of this object - wxString GetPath() const { return m_path; } - - // get the load address and the extent, return true if this information is - // available - bool GetAddress(void **addr, size_t *len) const - { - if ( !m_address ) - return false; - - if ( addr ) - *addr = m_address; - if ( len ) - *len = m_length; - - return true; - } - - // return the version of the DLL (may be empty if no version info) - wxString GetVersion() const - { - return m_version; - } - -private: - wxString m_name, - m_path, - m_version; - - void *m_address; - size_t m_length; - - friend class wxDynamicLibraryDetailsCreator; -}; - -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxDynamicLibraryDetails, - wxDynamicLibraryDetailsArray, - WXDLLIMPEXP_BASE); - -// ---------------------------------------------------------------------------- -// wxDynamicLibrary: represents a handle to a DLL/shared object -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxDynamicLibrary -{ -public: - // return a valid handle for the main program itself or NULL if back - // linking is not supported by the current platform (e.g. Win32) - static wxDllType GetProgramHandle(); - - // return the platform standard DLL extension (with leading dot) - static wxString GetDllExt(wxDynamicLibraryCategory cat = wxDL_LIBRARY); - - wxDynamicLibrary() : m_handle(0) { } - wxDynamicLibrary(const wxString& libname, int flags = wxDL_DEFAULT) - : m_handle(0) - { - Load(libname, flags); - } - - // NOTE: this class is (deliberately) not virtual, do not attempt - // to use it polymorphically. - ~wxDynamicLibrary() { Unload(); } - - // return true if the library was loaded successfully - bool IsLoaded() const { return m_handle != 0; } - - // load the library with the given name (full or not), return true if ok - bool Load(const wxString& libname, int flags = wxDL_DEFAULT); - - // raw function for loading dynamic libs: always behaves as if - // wxDL_VERBATIM were specified and doesn't log error message if the - // library couldn't be loaded but simply returns NULL - static wxDllType RawLoad(const wxString& libname, int flags = wxDL_DEFAULT); - - // detach the library object from its handle, i.e. prevent the object from - // unloading the library in its dtor -- the caller is now responsible for - // doing this - wxDllType Detach() { wxDllType h = m_handle; m_handle = 0; return h; } - - // unload the given library handle (presumably returned by Detach() before) - static void Unload(wxDllType handle); - - // unload the library, also done automatically in dtor - void Unload() { if ( IsLoaded() ) { Unload(m_handle); m_handle = 0; } } - - // Return the raw handle from dlopen and friends. - wxDllType GetLibHandle() const { return m_handle; } - - // check if the given symbol is present in the library, useful to verify if - // a loadable module is our plugin, for example, without provoking error - // messages from GetSymbol() - bool HasSymbol(const wxString& name) const - { - bool ok; - DoGetSymbol(name, &ok); - return ok; - } - - // resolve a symbol in a loaded DLL, such as a variable or function name. - // 'name' is the (possibly mangled) name of the symbol. (use extern "C" to - // export unmangled names) - // - // Since it is perfectly valid for the returned symbol to actually be NULL, - // that is not always indication of an error. Pass and test the parameter - // 'success' for a true indication of success or failure to load the - // symbol. - // - // Returns a pointer to the symbol on success, or NULL if an error occurred - // or the symbol wasn't found. - void *GetSymbol(const wxString& name, bool *success = NULL) const; - - // low-level version of GetSymbol() - static void *RawGetSymbol(wxDllType handle, const wxString& name); - void *RawGetSymbol(const wxString& name) const - { - return RawGetSymbol(m_handle, name); - } - -#ifdef __WINDOWS__ - // this function is useful for loading functions from the standard Windows - // DLLs: such functions have an 'A' (in ANSI build) or 'W' (in Unicode, or - // wide character build) suffix if they take string parameters - static void *RawGetSymbolAorW(wxDllType handle, const wxString& name) - { - return RawGetSymbol - ( - handle, - name + -#if wxUSE_UNICODE - L'W' -#else - 'A' -#endif - ); - } - - void *GetSymbolAorW(const wxString& name) const - { - return RawGetSymbolAorW(m_handle, name); - } -#endif // __WINDOWS__ - - // return all modules/shared libraries in the address space of this process - // - // returns an empty array if not implemented or an error occurred - static wxDynamicLibraryDetailsArray ListLoaded(); - - // return platform-specific name of dynamic library with proper extension - // and prefix (e.g. "foo.dll" on Windows or "libfoo.so" on Linux) - static wxString CanonicalizeName(const wxString& name, - wxDynamicLibraryCategory cat = wxDL_LIBRARY); - - // return name of wxWidgets plugin (adds compiler and version info - // to the filename): - static wxString - CanonicalizePluginName(const wxString& name, - wxPluginCategory cat = wxDL_PLUGIN_GUI); - - // return plugin directory on platforms where it makes sense and empty - // string on others: - static wxString GetPluginsDirectory(); - - // Return the load address of the module containing the given address or - // NULL if not found. - // - // If path output parameter is non-NULL, fill it with the full path to this - // module disk file on success. - static void* GetModuleFromAddress(const void* addr, wxString* path = NULL); - -#ifdef __WINDOWS__ - // return the handle (HMODULE/HINSTANCE) of the DLL with the given name - // and/or containing the specified address: for XP and later systems only - // the address is used and the name is ignored but for the previous systems - // only the name (which may be either a full path to the DLL or just its - // base name, possibly even without extension) is used - // - // the returned handle reference count is not incremented so it doesn't - // need to be freed using FreeLibrary() but it also means that it can - // become invalid if the DLL is unloaded - static WXHMODULE MSWGetModuleHandle(const wxString& name, void *addr); -#endif // __WINDOWS__ - -protected: - // common part of GetSymbol() and HasSymbol() - void *DoGetSymbol(const wxString& name, bool *success = 0) const; - -#ifdef wxHAVE_DYNLIB_ERROR - // log the error after a dlxxx() function failure - static void Error(); -#endif // wxHAVE_DYNLIB_ERROR - - - // the handle to DLL or NULL - wxDllType m_handle; - - // no copy ctor/assignment operators (or we'd try to unload the library - // twice) - wxDECLARE_NO_COPY_CLASS(wxDynamicLibrary); -}; - -#ifdef __WINDOWS__ - -// ---------------------------------------------------------------------------- -// wxLoadedDLL is a MSW-only internal helper class allowing to dynamically bind -// to a DLL already loaded into the project address space -// ---------------------------------------------------------------------------- - -class wxLoadedDLL : public wxDynamicLibrary -{ -public: - wxLoadedDLL(const wxString& dllname) - : wxDynamicLibrary(dllname, wxDL_GET_LOADED | wxDL_VERBATIM | wxDL_QUIET) - { - } - - ~wxLoadedDLL() - { - Detach(); - } -}; - -#endif // __WINDOWS__ - -// ---------------------------------------------------------------------------- -// Interesting defines -// ---------------------------------------------------------------------------- - -#define WXDLL_ENTRY_FUNCTION() \ -extern "C" WXEXPORT const wxClassInfo *wxGetClassFirst(); \ -const wxClassInfo *wxGetClassFirst() { \ - return wxClassInfo::GetFirst(); \ -} - -#endif // wxUSE_DYNLIB_CLASS - -#endif // _WX_DYNLIB_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dynload.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dynload.h deleted file mode 100644 index 7cb4d25b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/dynload.h +++ /dev/null @@ -1,155 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/dynload.h -// Purpose: Dynamic loading framework -// Author: Ron Lee, David Falkinder, Vadim Zeitlin and a cast of 1000's -// (derived in part from dynlib.cpp (c) 1998 Guilhem Lavaux) -// Modified by: -// Created: 03/12/01 -// Copyright: (c) 2001 Ron Lee -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DYNAMICLOADER_H__ -#define _WX_DYNAMICLOADER_H__ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_DYNAMIC_LOADER - -#include "wx/dynlib.h" -#include "wx/hashmap.h" -#include "wx/module.h" - -class WXDLLIMPEXP_FWD_BASE wxPluginLibrary; - - -WX_DECLARE_STRING_HASH_MAP_WITH_DECL(wxPluginLibrary *, wxDLManifest, - class WXDLLIMPEXP_BASE); -typedef wxDLManifest wxDLImports; - -// --------------------------------------------------------------------------- -// wxPluginLibrary -// --------------------------------------------------------------------------- - -// NOTE: Do not attempt to use a base class pointer to this class. -// wxDL is not virtual and we deliberately hide some of it's -// methods here. -// -// Unless you know exacty why you need to, you probably shouldn't -// instantiate this class directly anyway, use wxPluginManager -// instead. - -class WXDLLIMPEXP_BASE wxPluginLibrary : public wxDynamicLibrary -{ -public: - - static wxDLImports* ms_classes; // Static hash of all imported classes. - - wxPluginLibrary( const wxString &libname, int flags = wxDL_DEFAULT ); - ~wxPluginLibrary(); - - wxPluginLibrary *RefLib(); - bool UnrefLib(); - - // These two are called by the PluginSentinel on (PLUGGABLE) object - // creation/destruction. There is usually no reason for the user to - // call them directly. We have to separate this from the link count, - // since the two are not interchangeable. - - // FIXME: for even better debugging PluginSentinel should register - // the name of the class created too, then we can state - // exactly which object was not destroyed which may be - // difficult to find otherwise. Also this code should - // probably only be active in DEBUG mode, but let's just - // get it right first. - - void RefObj() { ++m_objcount; } - void UnrefObj() - { - wxASSERT_MSG( m_objcount > 0, wxT("Too many objects deleted??") ); - --m_objcount; - } - - // Override/hide some base class methods - - bool IsLoaded() const { return m_linkcount > 0; } - void Unload() { UnrefLib(); } - -private: - - // These pointers may be NULL but if they are not, then m_ourLast follows - // m_ourFirst in the linked list, i.e. can be found by calling GetNext() a - // sufficient number of times. - const wxClassInfo *m_ourFirst; // first class info in this plugin - const wxClassInfo *m_ourLast; // ..and the last one - - size_t m_linkcount; // Ref count of library link calls - size_t m_objcount; // ..and (pluggable) object instantiations. - wxModuleList m_wxmodules; // any wxModules that we initialised. - - void UpdateClasses(); // Update ms_classes - void RestoreClasses(); // Removes this library from ms_classes - void RegisterModules(); // Init any wxModules in the lib. - void UnregisterModules(); // Cleanup any wxModules we installed. - - wxDECLARE_NO_COPY_CLASS(wxPluginLibrary); -}; - - -class WXDLLIMPEXP_BASE wxPluginManager -{ -public: - - // Static accessors. - - static wxPluginLibrary *LoadLibrary( const wxString &libname, - int flags = wxDL_DEFAULT ); - static bool UnloadLibrary(const wxString &libname); - - // Instance methods. - - wxPluginManager() : m_entry(NULL) {} - wxPluginManager(const wxString &libname, int flags = wxDL_DEFAULT) - { - Load(libname, flags); - } - ~wxPluginManager() { if ( IsLoaded() ) Unload(); } - - bool Load(const wxString &libname, int flags = wxDL_DEFAULT); - void Unload(); - - bool IsLoaded() const { return m_entry && m_entry->IsLoaded(); } - void *GetSymbol(const wxString &symbol, bool *success = 0) - { - return m_entry->GetSymbol( symbol, success ); - } - - static void CreateManifest() { ms_manifest = new wxDLManifest(wxKEY_STRING); } - static void ClearManifest() { delete ms_manifest; ms_manifest = NULL; } - -private: - // return the pointer to the entry for the library with given name in - // ms_manifest or NULL if none - static wxPluginLibrary *FindByName(const wxString& name) - { - const wxDLManifest::iterator i = ms_manifest->find(name); - - return i == ms_manifest->end() ? NULL : i->second; - } - - static wxDLManifest* ms_manifest; // Static hash of loaded libs. - wxPluginLibrary* m_entry; // Cache our entry in the manifest. - - // We could allow this class to be copied if we really - // wanted to, but not without modification. - wxDECLARE_NO_COPY_CLASS(wxPluginManager); -}; - - -#endif // wxUSE_DYNAMIC_LOADER -#endif // _WX_DYNAMICLOADER_H__ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/editlbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/editlbox.h deleted file mode 100644 index c264c4c8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/editlbox.h +++ /dev/null @@ -1,99 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/editlbox.h -// Purpose: ListBox with editable items -// Author: Vaclav Slavik -// Copyright: (c) Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __WX_EDITLBOX_H__ -#define __WX_EDITLBOX_H__ - -#include "wx/defs.h" - -#if wxUSE_EDITABLELISTBOX - -#include "wx/panel.h" - -class WXDLLIMPEXP_FWD_CORE wxBitmapButton; -class WXDLLIMPEXP_FWD_CORE wxListCtrl; -class WXDLLIMPEXP_FWD_CORE wxListEvent; - -#define wxEL_ALLOW_NEW 0x0100 -#define wxEL_ALLOW_EDIT 0x0200 -#define wxEL_ALLOW_DELETE 0x0400 -#define wxEL_NO_REORDER 0x0800 -#define wxEL_DEFAULT_STYLE (wxEL_ALLOW_NEW | wxEL_ALLOW_EDIT | wxEL_ALLOW_DELETE) - -extern WXDLLIMPEXP_DATA_ADV(const char) wxEditableListBoxNameStr[]; - -// This class provides a composite control that lets the -// user easily enter list of strings - -class WXDLLIMPEXP_ADV wxEditableListBox : public wxPanel -{ -public: - wxEditableListBox() { Init(); } - - wxEditableListBox(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxEL_DEFAULT_STYLE, - const wxString& name = wxEditableListBoxNameStr) - { - Init(); - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxEL_DEFAULT_STYLE, - const wxString& name = wxEditableListBoxNameStr); - - void SetStrings(const wxArrayString& strings); - void GetStrings(wxArrayString& strings) const; - - wxListCtrl* GetListCtrl() { return m_listCtrl; } - wxBitmapButton* GetDelButton() { return m_bDel; } - wxBitmapButton* GetNewButton() { return m_bNew; } - wxBitmapButton* GetUpButton() { return m_bUp; } - wxBitmapButton* GetDownButton() { return m_bDown; } - wxBitmapButton* GetEditButton() { return m_bEdit; } - -protected: - wxBitmapButton *m_bDel, *m_bNew, *m_bUp, *m_bDown, *m_bEdit; - wxListCtrl *m_listCtrl; - int m_selection; - long m_style; - - void Init() - { - m_style = 0; - m_selection = 0; - m_bEdit = m_bNew = m_bDel = m_bUp = m_bDown = NULL; - m_listCtrl = NULL; - } - - void OnItemSelected(wxListEvent& event); - void OnEndLabelEdit(wxListEvent& event); - void OnNewItem(wxCommandEvent& event); - void OnDelItem(wxCommandEvent& event); - void OnEditItem(wxCommandEvent& event); - void OnUpItem(wxCommandEvent& event); - void OnDownItem(wxCommandEvent& event); - - wxDECLARE_CLASS(wxEditableListBox); - wxDECLARE_EVENT_TABLE(); - -private: - void SwapItems(long i1, long i2); - -}; - -#endif // wxUSE_EDITABLELISTBOX - -#endif // __WX_EDITLBOX_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/effects.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/effects.h deleted file mode 100644 index b0e1b574..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/effects.h +++ /dev/null @@ -1,90 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/effects.h -// Purpose: wxEffects class -// Draws 3D effects. -// Author: Julian Smart et al -// Modified by: -// Created: 25/4/2000 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_EFFECTS_H_ -#define _WX_EFFECTS_H_ - -// this class is deprecated and will be removed in the next wx version -// -// please use wxRenderer::DrawBorder() instead of DrawSunkenEdge(); there is no -// replacement for TileBitmap() but it doesn't seem to be very useful anyhow -#if WXWIN_COMPATIBILITY_2_8 - -/* - * wxEffects: various 3D effects - */ - -#include "wx/object.h" -#include "wx/colour.h" -#include "wx/gdicmn.h" -#include "wx/dc.h" - -class WXDLLIMPEXP_CORE wxEffectsImpl: public wxObject -{ -public: - // Assume system colours - wxEffectsImpl() ; - // Going from lightest to darkest - wxEffectsImpl(const wxColour& highlightColour, const wxColour& lightShadow, - const wxColour& faceColour, const wxColour& mediumShadow, - const wxColour& darkShadow) ; - - // Accessors - wxColour GetHighlightColour() const { return m_highlightColour; } - wxColour GetLightShadow() const { return m_lightShadow; } - wxColour GetFaceColour() const { return m_faceColour; } - wxColour GetMediumShadow() const { return m_mediumShadow; } - wxColour GetDarkShadow() const { return m_darkShadow; } - - void SetHighlightColour(const wxColour& c) { m_highlightColour = c; } - void SetLightShadow(const wxColour& c) { m_lightShadow = c; } - void SetFaceColour(const wxColour& c) { m_faceColour = c; } - void SetMediumShadow(const wxColour& c) { m_mediumShadow = c; } - void SetDarkShadow(const wxColour& c) { m_darkShadow = c; } - - void Set(const wxColour& highlightColour, const wxColour& lightShadow, - const wxColour& faceColour, const wxColour& mediumShadow, - const wxColour& darkShadow) - { - SetHighlightColour(highlightColour); - SetLightShadow(lightShadow); - SetFaceColour(faceColour); - SetMediumShadow(mediumShadow); - SetDarkShadow(darkShadow); - } - - // Draw a sunken edge - void DrawSunkenEdge(wxDC& dc, const wxRect& rect, int borderSize = 1); - - // Tile a bitmap - bool TileBitmap(const wxRect& rect, wxDC& dc, const wxBitmap& bitmap); - -protected: - wxColour m_highlightColour; // Usually white - wxColour m_lightShadow; // Usually light grey - wxColour m_faceColour; // Usually grey - wxColour m_mediumShadow; // Usually dark grey - wxColour m_darkShadow; // Usually black - - wxDECLARE_CLASS(wxEffectsImpl); -}; - -// current versions of g++ don't generate deprecation warnings for classes -// declared deprecated, so define wxEffects as a typedef instead: this does -// generate warnings with both g++ and VC (which also has no troubles with -// directly deprecating the classes...) -// -// note that this g++ bug (16370) is supposed to be fixed in g++ 4.3.0 -typedef wxEffectsImpl wxDEPRECATED(wxEffects); - -#endif // WXWIN_COMPATIBILITY_2_8 - -#endif // _WX_EFFECTS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/encconv.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/encconv.h deleted file mode 100644 index 7c49465f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/encconv.h +++ /dev/null @@ -1,152 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/encconv.h -// Purpose: wxEncodingConverter class for converting between different -// font encodings -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ENCCONV_H_ -#define _WX_ENCCONV_H_ - -#include "wx/defs.h" - -#include "wx/object.h" -#include "wx/fontenc.h" -#include "wx/dynarray.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -enum -{ - wxCONVERT_STRICT, - wxCONVERT_SUBSTITUTE -}; - - -enum -{ - wxPLATFORM_CURRENT = -1, - - wxPLATFORM_UNIX = 0, - wxPLATFORM_WINDOWS, - wxPLATFORM_MAC -}; - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -WX_DEFINE_ARRAY_INT(wxFontEncoding, wxFontEncodingArray); - -//-------------------------------------------------------------------------------- -// wxEncodingConverter -// This class is capable of converting strings between any two -// 8bit encodings/charsets. It can also convert from/to Unicode -//-------------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxEncodingConverter : public wxObject -{ - public: - - wxEncodingConverter(); - virtual ~wxEncodingConverter() { if (m_Table) delete[] m_Table; } - - // Initialize conversion. Both output or input encoding may - // be wxFONTENCODING_UNICODE. - // - // All subsequent calls to Convert() will interpret it's argument - // as a string in input_enc encoding and will output string in - // output_enc encoding. - // - // You must call this method before calling Convert. You may call - // it more than once in order to switch to another conversion - // - // Method affects behaviour of Convert() in case input character - // cannot be converted because it does not exist in output encoding: - // wxCONVERT_STRICT -- - // follow behaviour of GNU Recode - just copy unconvertable - // characters to output and don't change them (it's integer - // value will stay the same) - // wxCONVERT_SUBSTITUTE -- - // try some (lossy) substitutions - e.g. replace - // unconvertable latin capitals with acute by ordinary - // capitals, replace en-dash or em-dash by '-' etc. - // both modes guarantee that output string will have same length - // as input string - // - // Returns false if given conversion is impossible, true otherwise - // (conversion may be impossible either if you try to convert - // to Unicode with non-Unicode build of wxWidgets or if input - // or output encoding is not supported.) - bool Init(wxFontEncoding input_enc, wxFontEncoding output_enc, int method = wxCONVERT_STRICT); - - // Convert input string according to settings passed to Init. - // Note that you must call Init before using Convert! - bool Convert(const char* input, char* output) const; - bool Convert(char* str) const { return Convert(str, str); } - wxString Convert(const wxString& input) const; - - bool Convert(const char* input, wchar_t* output) const; - bool Convert(const wchar_t* input, char* output) const; - bool Convert(const wchar_t* input, wchar_t* output) const; - bool Convert(wchar_t* str) const { return Convert(str, str); } - - // Return equivalent(s) for given font that are used - // under given platform. wxPLATFORM_CURRENT means the plaform - // this binary was compiled for - // - // Examples: - // current platform enc returned value - // ----------------------------------------------------- - // unix CP1250 {ISO8859_2} - // unix ISO8859_2 {} - // windows ISO8859_2 {CP1250} - // - // Equivalence is defined in terms of convertibility: - // 2 encodings are equivalent if you can convert text between - // then without losing information (it may - and will - happen - // that you lose special chars like quotation marks or em-dashes - // but you shouldn't lose any diacritics and language-specific - // characters when converting between equivalent encodings). - // - // Convert() method is not limited to converting between - // equivalent encodings, it can convert between arbitrary - // two encodings! - // - // Remember that this function does _NOT_ check for presence of - // fonts in system. It only tells you what are most suitable - // encodings. (It usually returns only one encoding) - // - // Note that argument enc itself may be present in returned array! - // (so that you can -- as a side effect -- detect whether the - // encoding is native for this platform or not) - static wxFontEncodingArray GetPlatformEquivalents(wxFontEncoding enc, int platform = wxPLATFORM_CURRENT); - - // Similar to GetPlatformEquivalent, but this one will return ALL - // equivalent encodings, regardless the platform, including itself. - static wxFontEncodingArray GetAllEquivalents(wxFontEncoding enc); - - // Return true if [any text in] one multibyte encoding can be - // converted to another one losslessly. - // - // Do not call this with wxFONTENCODING_UNICODE, it doesn't make - // sense (always works in one sense and always depends on the text - // to convert in the other) - static bool CanConvert(wxFontEncoding encIn, wxFontEncoding encOut) - { - return GetAllEquivalents(encIn).Index(encOut) != wxNOT_FOUND; - } - - private: - wchar_t *m_Table; - bool m_UnicodeInput, m_UnicodeOutput; - bool m_JustCopy; - - wxDECLARE_NO_COPY_CLASS(wxEncodingConverter); -}; - -#endif // _WX_ENCCONV_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/encinfo.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/encinfo.h deleted file mode 100644 index 66b00034..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/encinfo.h +++ /dev/null @@ -1,65 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/encinfo.h -// Purpose: declares wxNativeEncodingInfo struct -// Author: Vadim Zeitlin -// Modified by: -// Created: 19.09.2003 (extracted from wx/fontenc.h) -// Copyright: (c) 2003 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ENCINFO_H_ -#define _WX_ENCINFO_H_ - -#include "wx/string.h" - -// ---------------------------------------------------------------------------- -// wxNativeEncodingInfo contains all encoding parameters for this platform -// ---------------------------------------------------------------------------- - -// This private structure specifies all the parameters needed to create a font -// with the given encoding on this platform. -// -// Under X, it contains the last 2 elements of the font specifications -// (registry and encoding). -// -// Under Windows, it contains a number which is one of predefined CHARSET_XXX -// values. -// -// Under all platforms it also contains a facename string which should be -// used, if not empty, to create fonts in this encoding (this is the only way -// to create a font of non-standard encoding (like KOI8) under Windows - the -// facename specifies the encoding then) - -struct WXDLLIMPEXP_CORE wxNativeEncodingInfo -{ - wxString facename; // may be empty meaning "any" - wxFontEncoding encoding; // so that we know what this struct represents - -#if defined(__WXMSW__) || \ - defined(__WXMAC__) || \ - defined(__WXQT__) - - wxNativeEncodingInfo() - : facename() - , encoding(wxFONTENCODING_SYSTEM) - , charset(0) /* ANSI_CHARSET */ - { } - - int charset; -#elif defined(_WX_X_FONTLIKE) - wxString xregistry, - xencoding; -#elif defined(wxHAS_UTF8_FONTS) - // ports using UTF-8 for text don't need encoding information for fonts -#else - #error "Unsupported toolkit" -#endif - // this struct is saved in config by wxFontMapper, so it should know to - // serialise itself (implemented in platform-specific code) - bool FromString(const wxString& s); - wxString ToString() const; -}; - -#endif // _WX_ENCINFO_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/event.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/event.h deleted file mode 100644 index c70f159f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/event.h +++ /dev/null @@ -1,4456 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/event.h -// Purpose: Event classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_EVENT_H_ -#define _WX_EVENT_H_ - -#include "wx/defs.h" -#include "wx/cpp.h" -#include "wx/object.h" -#include "wx/clntdata.h" - -#if wxUSE_GUI - #include "wx/gdicmn.h" - #include "wx/cursor.h" - #include "wx/mousestate.h" -#endif - -#include "wx/dynarray.h" -#include "wx/thread.h" -#include "wx/tracker.h" -#include "wx/typeinfo.h" -#include "wx/any.h" -#include "wx/vector.h" - -#include "wx/meta/convertible.h" - -// Currently VC7 is known to not be able to compile CallAfter() code, so -// disable it for it (FIXME-VC7). -#if !defined(__VISUALC__) || wxCHECK_VISUALC_VERSION(8) - #include "wx/meta/removeref.h" - - #define wxHAS_CALL_AFTER -#endif - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_BASE wxList; -class WXDLLIMPEXP_FWD_BASE wxEvent; -class WXDLLIMPEXP_FWD_BASE wxEventFilter; -#if wxUSE_GUI - class WXDLLIMPEXP_FWD_CORE wxDC; - class WXDLLIMPEXP_FWD_CORE wxMenu; - class WXDLLIMPEXP_FWD_CORE wxWindow; - class WXDLLIMPEXP_FWD_CORE wxWindowBase; -#endif // wxUSE_GUI - -// We operate with pointer to members of wxEvtHandler (such functions are used -// as event handlers in the event tables or as arguments to Connect()) but by -// default MSVC uses a restricted (but more efficient) representation of -// pointers to members which can't deal with multiple base classes. To avoid -// mysterious (as the compiler is not good enough to detect this and give a -// sensible error message) errors in the user code as soon as it defines -// classes inheriting from both wxEvtHandler (possibly indirectly, e.g. via -// wxWindow) and something else (including our own wxTrackable but not limited -// to it), we use the special MSVC keyword telling the compiler to use a more -// general pointer to member representation for the classes inheriting from -// wxEvtHandler. -#ifdef __VISUALC__ - #define wxMSVC_FWD_MULTIPLE_BASES __multiple_inheritance -#else - #define wxMSVC_FWD_MULTIPLE_BASES -#endif - -class WXDLLIMPEXP_FWD_BASE wxMSVC_FWD_MULTIPLE_BASES wxEvtHandler; -class wxEventConnectionRef; - -// ---------------------------------------------------------------------------- -// Event types -// ---------------------------------------------------------------------------- - -typedef int wxEventType; - -#define wxEVT_ANY ((wxEventType)-1) - -// this is used to make the event table entry type safe, so that for an event -// handler only a function with proper parameter list can be given. See also -// the wxEVENT_HANDLER_CAST-macro. -#define wxStaticCastEvent(type, val) static_cast(val) - -#define wxDECLARE_EVENT_TABLE_ENTRY(type, winid, idLast, fn, obj) \ - wxEventTableEntry(type, winid, idLast, wxNewEventTableFunctor(type, fn), obj) - -#define wxDECLARE_EVENT_TABLE_TERMINATOR() \ - wxEventTableEntry(wxEVT_NULL, 0, 0, 0, 0) - -// generate a new unique event type -extern WXDLLIMPEXP_BASE wxEventType wxNewEventType(); - -// events are represented by an instance of wxEventTypeTag and the -// corresponding type must be specified for type-safety checks - -// define a new custom event type, can be used alone or after event -// declaration in the header using one of the macros below -#define wxDEFINE_EVENT( name, type ) \ - const wxEventTypeTag< type > name( wxNewEventType() ) - -// the general version allowing exporting the event type from DLL, used by -// wxWidgets itself -#define wxDECLARE_EXPORTED_EVENT( expdecl, name, type ) \ - extern const expdecl wxEventTypeTag< type > name - -// this is the version which will normally be used in the user code -#define wxDECLARE_EVENT( name, type ) \ - wxDECLARE_EXPORTED_EVENT( wxEMPTY_PARAMETER_VALUE, name, type ) - - -// these macros are only used internally for backwards compatibility and -// allow to define an alias for an existing event type (this is used by -// wxEVT_SPIN_XXX) -#define wxDEFINE_EVENT_ALIAS( name, type, value ) \ - const wxEventTypeTag< type > name( value ) - -#define wxDECLARE_EXPORTED_EVENT_ALIAS( expdecl, name, type ) \ - extern const expdecl wxEventTypeTag< type > name - -// Try to cast the given event handler to the correct handler type: - -#define wxEVENT_HANDLER_CAST( functype, func ) \ - ( wxObjectEventFunction )( wxEventFunction )wxStaticCastEvent( functype, &func ) - - -// The tag is a type associated to the event type (which is an integer itself, -// in spite of its name) value. It exists in order to be used as a template -// parameter and provide a mapping between the event type values and their -// corresponding wxEvent-derived classes. -template -class wxEventTypeTag -{ -public: - // The class of wxEvent-derived class carried by the events of this type. - typedef T EventClass; - - wxEventTypeTag(wxEventType type) { m_type = type; } - - // Return a wxEventType reference for the initialization of the static - // event tables. See wxEventTableEntry::m_eventType for a more thorough - // explanation. - operator const wxEventType&() const { return m_type; } - -private: - wxEventType m_type; -}; - -// These are needed for the functor definitions -typedef void (wxEvtHandler::*wxEventFunction)(wxEvent&); - -// We had some trouble (specifically with eVC for ARM WinCE build) with using -// wxEventFunction in the past so we had introduced wxObjectEventFunction which -// used to be a typedef for a member of wxObject and not wxEvtHandler to work -// around this but as eVC is not really supported any longer we now only keep -// this for backwards compatibility and, despite its name, this is a typedef -// for wxEvtHandler member now -- but if we have the same problem with another -// compiler we can restore its old definition for it. -typedef wxEventFunction wxObjectEventFunction; - -// The event functor which is stored in the static and dynamic event tables: -class WXDLLIMPEXP_BASE wxEventFunctor -{ -public: - virtual ~wxEventFunctor(); - - // Invoke the actual event handler: - virtual void operator()(wxEvtHandler *, wxEvent&) = 0; - - // this function tests whether this functor is matched, for the purpose of - // finding it in an event table in Unbind(), by the given functor: - virtual bool IsMatching(const wxEventFunctor& functor) const = 0; - - // If the functor holds an wxEvtHandler, then get access to it and track - // its lifetime with wxEventConnectionRef: - virtual wxEvtHandler *GetEvtHandler() const - { return NULL; } - - // This is only used to maintain backward compatibility in - // wxAppConsoleBase::CallEventHandler and ensures that an overwritten - // wxAppConsoleBase::HandleEvent is still called for functors which hold an - // wxEventFunction: - virtual wxEventFunction GetEvtMethod() const - { return NULL; } - -private: - WX_DECLARE_ABSTRACT_TYPEINFO(wxEventFunctor) -}; - -// A plain method functor for the untyped legacy event types: -class WXDLLIMPEXP_BASE wxObjectEventFunctor : public wxEventFunctor -{ -public: - wxObjectEventFunctor(wxObjectEventFunction method, wxEvtHandler *handler) - : m_handler( handler ), m_method( method ) - { } - - virtual void operator()(wxEvtHandler *handler, wxEvent& event) wxOVERRIDE; - - virtual bool IsMatching(const wxEventFunctor& functor) const wxOVERRIDE - { - if ( wxTypeId(functor) == wxTypeId(*this) ) - { - const wxObjectEventFunctor &other = - static_cast< const wxObjectEventFunctor & >( functor ); - - return ( m_method == other.m_method || !other.m_method ) && - ( m_handler == other.m_handler || !other.m_handler ); - } - else - return false; - } - - virtual wxEvtHandler *GetEvtHandler() const wxOVERRIDE - { return m_handler; } - - virtual wxEventFunction GetEvtMethod() const wxOVERRIDE - { return m_method; } - -private: - wxEvtHandler *m_handler; - wxEventFunction m_method; - - // Provide a dummy default ctor for type info purposes - wxObjectEventFunctor() { } - - WX_DECLARE_TYPEINFO_INLINE(wxObjectEventFunctor) -}; - -// Create a functor for the legacy events: used by Connect() -inline wxObjectEventFunctor * -wxNewEventFunctor(const wxEventType& WXUNUSED(evtType), - wxObjectEventFunction method, - wxEvtHandler *handler) -{ - return new wxObjectEventFunctor(method, handler); -} - -// This version is used by wxDECLARE_EVENT_TABLE_ENTRY() -inline wxObjectEventFunctor * -wxNewEventTableFunctor(const wxEventType& WXUNUSED(evtType), - wxObjectEventFunction method) -{ - return new wxObjectEventFunctor(method, NULL); -} - -inline wxObjectEventFunctor -wxMakeEventFunctor(const wxEventType& WXUNUSED(evtType), - wxObjectEventFunction method, - wxEvtHandler *handler) -{ - return wxObjectEventFunctor(method, handler); -} - -namespace wxPrivate -{ - -// helper template defining nested "type" typedef as the event class -// corresponding to the given event type -template struct EventClassOf; - -// the typed events provide the information about the class of the events they -// carry themselves: -template -struct EventClassOf< wxEventTypeTag > -{ - typedef typename wxEventTypeTag::EventClass type; -}; - -// for the old untyped events we don't have information about the exact event -// class carried by them -template <> -struct EventClassOf -{ - typedef wxEvent type; -}; - - -// helper class defining operations different for method functors using an -// object of wxEvtHandler-derived class as handler and the others -template struct HandlerImpl; - -// specialization for handlers deriving from wxEvtHandler -template -struct HandlerImpl -{ - static bool IsEvtHandler() - { return true; } - static T *ConvertFromEvtHandler(wxEvtHandler *p) - { return static_cast(p); } - static wxEvtHandler *ConvertToEvtHandler(T *p) - { return p; } - static wxEventFunction ConvertToEvtMethod(void (T::*f)(A&)) - { return static_cast( - reinterpret_cast(f)); } -}; - -// specialization for handlers not deriving from wxEvtHandler -template -struct HandlerImpl -{ - static bool IsEvtHandler() - { return false; } - static T *ConvertFromEvtHandler(wxEvtHandler *) - { return NULL; } - static wxEvtHandler *ConvertToEvtHandler(T *) - { return NULL; } - static wxEventFunction ConvertToEvtMethod(void (T::*)(A&)) - { return NULL; } -}; - -} // namespace wxPrivate - -// functor forwarding the event to a method of the given object -// -// notice that the object class may be different from the class in which the -// method is defined but it must be convertible to this class -// -// also, the type of the handler parameter doesn't need to be exactly the same -// as EventTag::EventClass but it must be its base class -- this is explicitly -// allowed to handle different events in the same handler taking wxEvent&, for -// example -template - -class wxEventFunctorMethod - : public wxEventFunctor, - private wxPrivate::HandlerImpl - < - Class, - EventArg, - wxConvertibleTo::value != 0 - > -{ -private: - static void CheckHandlerArgument(EventArg *) { } - -public: - // the event class associated with the given event tag - typedef typename wxPrivate::EventClassOf::type EventClass; - - - wxEventFunctorMethod(void (Class::*method)(EventArg&), EventHandler *handler) - : m_handler( handler ), m_method( method ) - { - wxASSERT_MSG( handler || this->IsEvtHandler(), - "handlers defined in non-wxEvtHandler-derived classes " - "must be connected with a valid sink object" ); - - // if you get an error here it means that the signature of the handler - // you're trying to use is not compatible with (i.e. is not the same as - // or a base class of) the real event class used for this event type - CheckHandlerArgument(static_cast(NULL)); - } - - virtual void operator()(wxEvtHandler *handler, wxEvent& event) - { - Class * realHandler = m_handler; - if ( !realHandler ) - { - realHandler = this->ConvertFromEvtHandler(handler); - - // this is not supposed to happen but check for it nevertheless - wxCHECK_RET( realHandler, "invalid event handler" ); - } - - // the real (run-time) type of event is EventClass and we checked in - // the ctor that EventClass can be converted to EventArg, so this cast - // is always valid - (realHandler->*m_method)(static_cast(event)); - } - - virtual bool IsMatching(const wxEventFunctor& functor) const - { - if ( wxTypeId(functor) != wxTypeId(*this) ) - return false; - - typedef wxEventFunctorMethod - ThisFunctor; - - // the cast is valid because wxTypeId()s matched above - const ThisFunctor& other = static_cast(functor); - - return (m_method == other.m_method || other.m_method == NULL) && - (m_handler == other.m_handler || other.m_handler == NULL); - } - - virtual wxEvtHandler *GetEvtHandler() const - { return this->ConvertToEvtHandler(m_handler); } - - virtual wxEventFunction GetEvtMethod() const - { return this->ConvertToEvtMethod(m_method); } - -private: - EventHandler *m_handler; - void (Class::*m_method)(EventArg&); - - // Provide a dummy default ctor for type info purposes - wxEventFunctorMethod() { } - - typedef wxEventFunctorMethod thisClass; - WX_DECLARE_TYPEINFO_INLINE(thisClass) -}; - - -// functor forwarding the event to function (function, static method) -template -class wxEventFunctorFunction : public wxEventFunctor -{ -private: - static void CheckHandlerArgument(EventArg *) { } - -public: - // the event class associated with the given event tag - typedef typename wxPrivate::EventClassOf::type EventClass; - - wxEventFunctorFunction( void ( *handler )( EventArg & )) - : m_handler( handler ) - { - // if you get an error here it means that the signature of the handler - // you're trying to use is not compatible with (i.e. is not the same as - // or a base class of) the real event class used for this event type - CheckHandlerArgument(static_cast(NULL)); - } - - virtual void operator()(wxEvtHandler *WXUNUSED(handler), wxEvent& event) wxOVERRIDE - { - // If you get an error here like "must use .* or ->* to call - // pointer-to-member function" then you probably tried to call - // Bind/Unbind with a method pointer but without a handler pointer or - // NULL as a handler e.g.: - // Unbind( wxEVT_XXX, &EventHandler::method ); - // or - // Unbind( wxEVT_XXX, &EventHandler::method, NULL ) - m_handler(static_cast(event)); - } - - virtual bool IsMatching(const wxEventFunctor &functor) const wxOVERRIDE - { - if ( wxTypeId(functor) != wxTypeId(*this) ) - return false; - - typedef wxEventFunctorFunction ThisFunctor; - - const ThisFunctor& other = static_cast( functor ); - - return m_handler == other.m_handler; - } - -private: - void (*m_handler)(EventArg&); - - // Provide a dummy default ctor for type info purposes - wxEventFunctorFunction() { } - - typedef wxEventFunctorFunction thisClass; - WX_DECLARE_TYPEINFO_INLINE(thisClass) -}; - - -template -class wxEventFunctorFunctor : public wxEventFunctor -{ -public: - typedef typename EventTag::EventClass EventArg; - - wxEventFunctorFunctor(const Functor& handler) - : m_handler(handler), m_handlerAddr(&handler) - { } - - virtual void operator()(wxEvtHandler *WXUNUSED(handler), wxEvent& event) wxOVERRIDE - { - // If you get an error here like "must use '.*' or '->*' to call - // pointer-to-member function" then you probably tried to call - // Bind/Unbind with a method pointer but without a handler pointer or - // NULL as a handler e.g.: - // Unbind( wxEVT_XXX, &EventHandler::method ); - // or - // Unbind( wxEVT_XXX, &EventHandler::method, NULL ) - m_handler(static_cast(event)); - } - - virtual bool IsMatching(const wxEventFunctor &functor) const wxOVERRIDE - { - if ( wxTypeId(functor) != wxTypeId(*this) ) - return false; - - typedef wxEventFunctorFunctor FunctorThis; - - const FunctorThis& other = static_cast(functor); - - // The only reliable/portable way to compare two functors is by - // identity: - return m_handlerAddr == other.m_handlerAddr; - } - -private: - // Store a copy of the functor to prevent using/calling an already - // destroyed instance: - Functor m_handler; - - // Use the address of the original functor for comparison in IsMatching: - const void *m_handlerAddr; - - // Provide a dummy default ctor for type info purposes - wxEventFunctorFunctor() { } - - typedef wxEventFunctorFunctor thisClass; - WX_DECLARE_TYPEINFO_INLINE(thisClass) -}; - -// Create functors for the templatized events, either allocated on the heap for -// wxNewXXX() variants (this is needed in wxEvtHandler::Bind<>() to store them -// in dynamic event table) or just by returning them as temporary objects (this -// is enough for Unbind<>() and we avoid unnecessary heap allocation like this). - - -// Create functors wrapping functions: -template -inline wxEventFunctorFunction * -wxNewEventFunctor(const EventTag&, void (*func)(EventArg &)) -{ - return new wxEventFunctorFunction(func); -} - -template -inline wxEventFunctorFunction -wxMakeEventFunctor(const EventTag&, void (*func)(EventArg &)) -{ - return wxEventFunctorFunction(func); -} - -// Create functors wrapping other functors: -template -inline wxEventFunctorFunctor * -wxNewEventFunctor(const EventTag&, const Functor &func) -{ - return new wxEventFunctorFunctor(func); -} - -template -inline wxEventFunctorFunctor -wxMakeEventFunctor(const EventTag&, const Functor &func) -{ - return wxEventFunctorFunctor(func); -} - -// Create functors wrapping methods: -template - -inline wxEventFunctorMethod * -wxNewEventFunctor(const EventTag&, - void (Class::*method)(EventArg&), - EventHandler *handler) -{ - return new wxEventFunctorMethod( - method, handler); -} - -template - -inline wxEventFunctorMethod -wxMakeEventFunctor(const EventTag&, - void (Class::*method)(EventArg&), - EventHandler *handler) -{ - return wxEventFunctorMethod( - method, handler); -} - -// Create an event functor for the event table via wxDECLARE_EVENT_TABLE_ENTRY: -// in this case we don't have the handler (as it's always the same as the -// object which generated the event) so we must use Class as its type -template -inline wxEventFunctorMethod * -wxNewEventTableFunctor(const EventTag&, void (Class::*method)(EventArg&)) -{ - return new wxEventFunctorMethod( - method, NULL); -} - - -// many, but not all, standard event types - - // some generic events -extern WXDLLIMPEXP_BASE const wxEventType wxEVT_NULL; -extern WXDLLIMPEXP_BASE const wxEventType wxEVT_FIRST; -extern WXDLLIMPEXP_BASE const wxEventType wxEVT_USER_FIRST; - - // Need events declared to do this -class WXDLLIMPEXP_FWD_BASE wxIdleEvent; -class WXDLLIMPEXP_FWD_BASE wxThreadEvent; -class WXDLLIMPEXP_FWD_BASE wxAsyncMethodCallEvent; -class WXDLLIMPEXP_FWD_CORE wxCommandEvent; -class WXDLLIMPEXP_FWD_CORE wxMouseEvent; -class WXDLLIMPEXP_FWD_CORE wxFocusEvent; -class WXDLLIMPEXP_FWD_CORE wxChildFocusEvent; -class WXDLLIMPEXP_FWD_CORE wxKeyEvent; -class WXDLLIMPEXP_FWD_CORE wxNavigationKeyEvent; -class WXDLLIMPEXP_FWD_CORE wxSetCursorEvent; -class WXDLLIMPEXP_FWD_CORE wxScrollEvent; -class WXDLLIMPEXP_FWD_CORE wxSpinEvent; -class WXDLLIMPEXP_FWD_CORE wxScrollWinEvent; -class WXDLLIMPEXP_FWD_CORE wxSizeEvent; -class WXDLLIMPEXP_FWD_CORE wxMoveEvent; -class WXDLLIMPEXP_FWD_CORE wxCloseEvent; -class WXDLLIMPEXP_FWD_CORE wxActivateEvent; -class WXDLLIMPEXP_FWD_CORE wxWindowCreateEvent; -class WXDLLIMPEXP_FWD_CORE wxWindowDestroyEvent; -class WXDLLIMPEXP_FWD_CORE wxShowEvent; -class WXDLLIMPEXP_FWD_CORE wxIconizeEvent; -class WXDLLIMPEXP_FWD_CORE wxMaximizeEvent; -class WXDLLIMPEXP_FWD_CORE wxMouseCaptureChangedEvent; -class WXDLLIMPEXP_FWD_CORE wxMouseCaptureLostEvent; -class WXDLLIMPEXP_FWD_CORE wxPaintEvent; -class WXDLLIMPEXP_FWD_CORE wxEraseEvent; -class WXDLLIMPEXP_FWD_CORE wxNcPaintEvent; -class WXDLLIMPEXP_FWD_CORE wxMenuEvent; -class WXDLLIMPEXP_FWD_CORE wxContextMenuEvent; -class WXDLLIMPEXP_FWD_CORE wxSysColourChangedEvent; -class WXDLLIMPEXP_FWD_CORE wxDisplayChangedEvent; -class WXDLLIMPEXP_FWD_CORE wxQueryNewPaletteEvent; -class WXDLLIMPEXP_FWD_CORE wxPaletteChangedEvent; -class WXDLLIMPEXP_FWD_CORE wxJoystickEvent; -class WXDLLIMPEXP_FWD_CORE wxDropFilesEvent; -class WXDLLIMPEXP_FWD_CORE wxInitDialogEvent; -class WXDLLIMPEXP_FWD_CORE wxUpdateUIEvent; -class WXDLLIMPEXP_FWD_CORE wxClipboardTextEvent; -class WXDLLIMPEXP_FWD_CORE wxHelpEvent; - - - // Command events -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_BUTTON, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_CHECKBOX, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_CHOICE, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_LISTBOX, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_LISTBOX_DCLICK, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_CHECKLISTBOX, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MENU, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SLIDER, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_RADIOBOX, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_RADIOBUTTON, wxCommandEvent); - -// wxEVT_SCROLLBAR is deprecated, use wxEVT_SCROLL... events -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLLBAR, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_VLBOX, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COMBOBOX, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_TOOL_RCLICKED, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_TOOL_DROPDOWN, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_TOOL_ENTER, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COMBOBOX_DROPDOWN, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COMBOBOX_CLOSEUP, wxCommandEvent); - - // Thread and asynchronous method call events -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_BASE, wxEVT_THREAD, wxThreadEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_BASE, wxEVT_ASYNC_METHOD_CALL, wxAsyncMethodCallEvent); - - // Mouse event types -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_LEFT_DOWN, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_LEFT_UP, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MIDDLE_DOWN, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MIDDLE_UP, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_RIGHT_DOWN, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_RIGHT_UP, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MOTION, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_ENTER_WINDOW, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_LEAVE_WINDOW, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_LEFT_DCLICK, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MIDDLE_DCLICK, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_RIGHT_DCLICK, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SET_FOCUS, wxFocusEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_KILL_FOCUS, wxFocusEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_CHILD_FOCUS, wxChildFocusEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MOUSEWHEEL, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_AUX1_DOWN, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_AUX1_UP, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_AUX1_DCLICK, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_AUX2_DOWN, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_AUX2_UP, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_AUX2_DCLICK, wxMouseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MAGNIFY, wxMouseEvent); - - // Character input event type -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_CHAR, wxKeyEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_CHAR_HOOK, wxKeyEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_NAVIGATION_KEY, wxNavigationKeyEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_KEY_DOWN, wxKeyEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_KEY_UP, wxKeyEvent); -#if wxUSE_HOTKEY -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_HOTKEY, wxKeyEvent); -#endif -// This is a private event used by wxMSW code only and subject to change or -// disappear in the future. Don't use. -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_AFTER_CHAR, wxKeyEvent); - - // Set cursor event -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SET_CURSOR, wxSetCursorEvent); - - // wxScrollBar and wxSlider event identifiers -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLL_TOP, wxScrollEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLL_BOTTOM, wxScrollEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLL_LINEUP, wxScrollEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLL_LINEDOWN, wxScrollEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLL_PAGEUP, wxScrollEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLL_PAGEDOWN, wxScrollEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLL_THUMBTRACK, wxScrollEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLL_THUMBRELEASE, wxScrollEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLL_CHANGED, wxScrollEvent); - -// Due to a bug in older wx versions, wxSpinEvents were being sent with type of -// wxEVT_SCROLL_LINEUP, wxEVT_SCROLL_LINEDOWN and wxEVT_SCROLL_THUMBTRACK. But -// with the type-safe events in place, these event types are associated with -// wxScrollEvent. To allow handling of spin events, new event types have been -// defined in spinbutt.h/spinnbuttcmn.cpp. To maintain backward compatibility -// the spin event types are being initialized with the scroll event types. - -#if wxUSE_SPINBTN - -wxDECLARE_EXPORTED_EVENT_ALIAS( WXDLLIMPEXP_CORE, wxEVT_SPIN_UP, wxSpinEvent ); -wxDECLARE_EXPORTED_EVENT_ALIAS( WXDLLIMPEXP_CORE, wxEVT_SPIN_DOWN, wxSpinEvent ); -wxDECLARE_EXPORTED_EVENT_ALIAS( WXDLLIMPEXP_CORE, wxEVT_SPIN, wxSpinEvent ); - -#endif - - // Scroll events from wxWindow -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLLWIN_TOP, wxScrollWinEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLLWIN_BOTTOM, wxScrollWinEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLLWIN_LINEUP, wxScrollWinEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLLWIN_LINEDOWN, wxScrollWinEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLLWIN_PAGEUP, wxScrollWinEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLLWIN_PAGEDOWN, wxScrollWinEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLLWIN_THUMBTRACK, wxScrollWinEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SCROLLWIN_THUMBRELEASE, wxScrollWinEvent); - - // System events -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SIZE, wxSizeEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MOVE, wxMoveEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_CLOSE_WINDOW, wxCloseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_END_SESSION, wxCloseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_QUERY_END_SESSION, wxCloseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_ACTIVATE_APP, wxActivateEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_ACTIVATE, wxActivateEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_CREATE, wxWindowCreateEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_DESTROY, wxWindowDestroyEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SHOW, wxShowEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_ICONIZE, wxIconizeEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MAXIMIZE, wxMaximizeEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MOUSE_CAPTURE_CHANGED, wxMouseCaptureChangedEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MOUSE_CAPTURE_LOST, wxMouseCaptureLostEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_PAINT, wxPaintEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_ERASE_BACKGROUND, wxEraseEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_NC_PAINT, wxNcPaintEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MENU_OPEN, wxMenuEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MENU_CLOSE, wxMenuEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MENU_HIGHLIGHT, wxMenuEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_CONTEXT_MENU, wxContextMenuEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SYS_COLOUR_CHANGED, wxSysColourChangedEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_DISPLAY_CHANGED, wxDisplayChangedEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_QUERY_NEW_PALETTE, wxQueryNewPaletteEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_PALETTE_CHANGED, wxPaletteChangedEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_JOY_BUTTON_DOWN, wxJoystickEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_JOY_BUTTON_UP, wxJoystickEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_JOY_MOVE, wxJoystickEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_JOY_ZMOVE, wxJoystickEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_DROP_FILES, wxDropFilesEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_INIT_DIALOG, wxInitDialogEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_BASE, wxEVT_IDLE, wxIdleEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_UPDATE_UI, wxUpdateUIEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SIZING, wxSizeEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MOVING, wxMoveEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MOVE_START, wxMoveEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_MOVE_END, wxMoveEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_HIBERNATE, wxActivateEvent); - - // Clipboard events -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_TEXT_COPY, wxClipboardTextEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_TEXT_CUT, wxClipboardTextEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_TEXT_PASTE, wxClipboardTextEvent); - - // Generic command events - // Note: a click is a higher-level event than button down/up -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COMMAND_LEFT_CLICK, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COMMAND_LEFT_DCLICK, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COMMAND_RIGHT_CLICK, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COMMAND_RIGHT_DCLICK, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COMMAND_SET_FOCUS, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COMMAND_KILL_FOCUS, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_COMMAND_ENTER, wxCommandEvent); - - // Help events -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_HELP, wxHelpEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_DETAILED_HELP, wxHelpEvent); - -// these 2 events are the same -#define wxEVT_TOOL wxEVT_MENU - -// ---------------------------------------------------------------------------- -// Compatibility -// ---------------------------------------------------------------------------- - -// this event is also used by wxComboBox and wxSpinCtrl which don't include -// wx/textctrl.h in all ports [yet], so declare it here as well -// -// still, any new code using it should include wx/textctrl.h explicitly -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_TEXT, wxCommandEvent); - - -// ---------------------------------------------------------------------------- -// wxEvent(-derived) classes -// ---------------------------------------------------------------------------- - -// the predefined constants for the number of times we propagate event -// upwards window child-parent chain -enum wxEventPropagation -{ - // don't propagate it at all - wxEVENT_PROPAGATE_NONE = 0, - - // propagate it until it is processed - wxEVENT_PROPAGATE_MAX = INT_MAX -}; - -// The different categories for a wxEvent; see wxEvent::GetEventCategory. -// NOTE: they are used as OR-combinable flags by wxEventLoopBase::YieldFor -enum wxEventCategory -{ - // this is the category for those events which are generated to update - // the appearance of the GUI but which (usually) do not comport data - // processing, i.e. which do not provide input or output data - // (e.g. size events, scroll events, etc). - // They are events NOT directly generated by the user's input devices. - wxEVT_CATEGORY_UI = 1, - - // this category groups those events which are generated directly from the - // user through input devices like mouse and keyboard and usually result in - // data to be processed from the application. - // (e.g. mouse clicks, key presses, etc) - wxEVT_CATEGORY_USER_INPUT = 2, - - // this category is for wxSocketEvent - wxEVT_CATEGORY_SOCKET = 4, - - // this category is for wxTimerEvent - wxEVT_CATEGORY_TIMER = 8, - - // this category is for any event used to send notifications from the - // secondary threads to the main one or in general for notifications among - // different threads (which may or may not be user-generated) - wxEVT_CATEGORY_THREAD = 16, - - - // implementation only - - // used in the implementations of wxEventLoopBase::YieldFor - wxEVT_CATEGORY_UNKNOWN = 32, - - // a special category used as an argument to wxEventLoopBase::YieldFor to indicate that - // Yield() should leave all wxEvents on the queue while emptying the native event queue - // (native events will be processed but the wxEvents they generate will be queued) - wxEVT_CATEGORY_CLIPBOARD = 64, - - - // shortcut masks - - // this category groups those events which are emitted in response to - // events of the native toolkit and which typically are not-"delayable". - wxEVT_CATEGORY_NATIVE_EVENTS = wxEVT_CATEGORY_UI|wxEVT_CATEGORY_USER_INPUT, - - // used in wxEventLoopBase::YieldFor to specify all event categories should be processed: - wxEVT_CATEGORY_ALL = - wxEVT_CATEGORY_UI|wxEVT_CATEGORY_USER_INPUT|wxEVT_CATEGORY_SOCKET| \ - wxEVT_CATEGORY_TIMER|wxEVT_CATEGORY_THREAD|wxEVT_CATEGORY_UNKNOWN| \ - wxEVT_CATEGORY_CLIPBOARD -}; - -/* - * wxWidgets events, covering all interesting things that might happen - * (button clicking, resizing, setting text in widgets, etc.). - * - * For each completely new event type, derive a new event class. - * An event CLASS represents a C++ class defining a range of similar event TYPES; - * examples are canvas events, panel item command events. - * An event TYPE is a unique identifier for a particular system event, - * such as a button press or a listbox deselection. - * - */ - -class WXDLLIMPEXP_BASE wxEvent : public wxObject -{ -public: - wxEvent(int winid = 0, wxEventType commandType = wxEVT_NULL ); - - void SetEventType(wxEventType typ) { m_eventType = typ; } - wxEventType GetEventType() const { return m_eventType; } - - wxObject *GetEventObject() const { return m_eventObject; } - void SetEventObject(wxObject *obj) { m_eventObject = obj; } - - long GetTimestamp() const { return m_timeStamp; } - void SetTimestamp(long ts = 0) { m_timeStamp = ts; } - - int GetId() const { return m_id; } - void SetId(int Id) { m_id = Id; } - - // Returns the user data optionally associated with the event handler when - // using Connect() or Bind(). - wxObject *GetEventUserData() const { return m_callbackUserData; } - - // Can instruct event processor that we wish to ignore this event - // (treat as if the event table entry had not been found): this must be done - // to allow the event processing by the base classes (calling event.Skip() - // is the analog of calling the base class version of a virtual function) - void Skip(bool skip = true) { m_skipped = skip; } - bool GetSkipped() const { return m_skipped; } - - // This function is used to create a copy of the event polymorphically and - // all derived classes must implement it because otherwise wxPostEvent() - // for them wouldn't work (it needs to do a copy of the event) - virtual wxEvent *Clone() const = 0; - - // this function is used to selectively process events in wxEventLoopBase::YieldFor - // NOTE: by default it returns wxEVT_CATEGORY_UI just because the major - // part of wxWidgets events belong to that category. - virtual wxEventCategory GetEventCategory() const - { return wxEVT_CATEGORY_UI; } - - // Implementation only: this test is explicitly anti OO and this function - // exists only for optimization purposes. - bool IsCommandEvent() const { return m_isCommandEvent; } - - // Determine if this event should be propagating to the parent window. - bool ShouldPropagate() const - { return m_propagationLevel != wxEVENT_PROPAGATE_NONE; } - - // Stop an event from propagating to its parent window, returns the old - // propagation level value - int StopPropagation() - { - int propagationLevel = m_propagationLevel; - m_propagationLevel = wxEVENT_PROPAGATE_NONE; - return propagationLevel; - } - - // Resume the event propagation by restoring the propagation level - // (returned by StopPropagation()) - void ResumePropagation(int propagationLevel) - { - m_propagationLevel = propagationLevel; - } - - // This method is for internal use only and allows to get the object that - // is propagating this event upwards the window hierarchy, if any. - wxEvtHandler* GetPropagatedFrom() const { return m_propagatedFrom; } - - // This is for internal use only and is only called by - // wxEvtHandler::ProcessEvent() to check whether it's the first time this - // event is being processed - bool WasProcessed() - { - if ( m_wasProcessed ) - return true; - - m_wasProcessed = true; - - return false; - } - - // This is for internal use only and is used for setting, testing and - // resetting of m_willBeProcessedAgain flag. - void SetWillBeProcessedAgain() - { - m_willBeProcessedAgain = true; - } - - bool WillBeProcessedAgain() - { - if ( m_willBeProcessedAgain ) - { - m_willBeProcessedAgain = false; - return true; - } - - return false; - } - - // This is also used only internally by ProcessEvent() to check if it - // should process the event normally or only restrict the search for the - // event handler to this object itself. - bool ShouldProcessOnlyIn(wxEvtHandler *h) const - { - return h == m_handlerToProcessOnlyIn; - } - - // Called to indicate that the result of ShouldProcessOnlyIn() wasn't taken - // into account. The existence of this function may seem counterintuitive - // but unfortunately it's needed by wxScrollHelperEvtHandler, see comments - // there. Don't even think of using this in your own code, this is a gross - // hack and is only needed because of wx complicated history and should - // never be used anywhere else. - void DidntHonourProcessOnlyIn() - { - m_handlerToProcessOnlyIn = NULL; - } - -protected: - wxObject* m_eventObject; - wxEventType m_eventType; - long m_timeStamp; - int m_id; - -public: - // m_callbackUserData is for internal usage only - wxObject* m_callbackUserData; - -private: - // If this handler - wxEvtHandler *m_handlerToProcessOnlyIn; - -protected: - // the propagation level: while it is positive, we propagate the event to - // the parent window (if any) - int m_propagationLevel; - - // The object that the event is being propagated from, initially NULL and - // only set by wxPropagateOnce. - wxEvtHandler* m_propagatedFrom; - - bool m_skipped; - bool m_isCommandEvent; - - // initially false but becomes true as soon as WasProcessed() is called for - // the first time, as this is done only by ProcessEvent() it explains the - // variable name: it becomes true after ProcessEvent() was called at least - // once for this event - bool m_wasProcessed; - - // This one is initially false too, but can be set to true to indicate that - // the event will be passed to another handler if it's not processed in - // this one. - bool m_willBeProcessedAgain; - -protected: - wxEvent(const wxEvent&); // for implementing Clone() - wxEvent& operator=(const wxEvent&); // for derived classes operator=() - -private: - // It needs to access our m_propagationLevel and m_propagatedFrom fields. - friend class WXDLLIMPEXP_FWD_BASE wxPropagateOnce; - - // and this one needs to access our m_handlerToProcessOnlyIn - friend class WXDLLIMPEXP_FWD_BASE wxEventProcessInHandlerOnly; - - - wxDECLARE_ABSTRACT_CLASS(wxEvent); -}; - -/* - * Helper class to temporarily change an event not to propagate. - */ -class WXDLLIMPEXP_BASE wxPropagationDisabler -{ -public: - wxPropagationDisabler(wxEvent& event) : m_event(event) - { - m_propagationLevelOld = m_event.StopPropagation(); - } - - ~wxPropagationDisabler() - { - m_event.ResumePropagation(m_propagationLevelOld); - } - -private: - wxEvent& m_event; - int m_propagationLevelOld; - - wxDECLARE_NO_COPY_CLASS(wxPropagationDisabler); -}; - -/* - * Helper used to indicate that an event is propagated upwards the window - * hierarchy by the given window. - */ -class WXDLLIMPEXP_BASE wxPropagateOnce -{ -public: - // The handler argument should normally be non-NULL to allow the parent - // event handler to know that it's being used to process an event coming - // from the child, it's only NULL by default for backwards compatibility. - wxPropagateOnce(wxEvent& event, wxEvtHandler* handler = NULL) - : m_event(event), - m_propagatedFromOld(event.m_propagatedFrom) - { - wxASSERT_MSG( m_event.m_propagationLevel > 0, - wxT("shouldn't be used unless ShouldPropagate()!") ); - - m_event.m_propagationLevel--; - m_event.m_propagatedFrom = handler; - } - - ~wxPropagateOnce() - { - m_event.m_propagatedFrom = m_propagatedFromOld; - m_event.m_propagationLevel++; - } - -private: - wxEvent& m_event; - wxEvtHandler* const m_propagatedFromOld; - - wxDECLARE_NO_COPY_CLASS(wxPropagateOnce); -}; - -// A helper object used to temporarily make wxEvent::ShouldProcessOnlyIn() -// return true for the handler passed to its ctor. -class wxEventProcessInHandlerOnly -{ -public: - wxEventProcessInHandlerOnly(wxEvent& event, wxEvtHandler *handler) - : m_event(event), - m_handlerToProcessOnlyInOld(event.m_handlerToProcessOnlyIn) - { - m_event.m_handlerToProcessOnlyIn = handler; - } - - ~wxEventProcessInHandlerOnly() - { - m_event.m_handlerToProcessOnlyIn = m_handlerToProcessOnlyInOld; - } - -private: - wxEvent& m_event; - wxEvtHandler * const m_handlerToProcessOnlyInOld; - - wxDECLARE_NO_COPY_CLASS(wxEventProcessInHandlerOnly); -}; - - -class WXDLLIMPEXP_BASE wxEventBasicPayloadMixin -{ -public: - wxEventBasicPayloadMixin() - : m_commandInt(0), - m_extraLong(0) - { - } - - void SetString(const wxString& s) { m_cmdString = s; } - const wxString& GetString() const { return m_cmdString; } - - void SetInt(int i) { m_commandInt = i; } - int GetInt() const { return m_commandInt; } - - void SetExtraLong(long extraLong) { m_extraLong = extraLong; } - long GetExtraLong() const { return m_extraLong; } - -protected: - // Note: these variables have "cmd" or "command" in their name for backward compatibility: - // they used to be part of wxCommandEvent, not this mixin. - wxString m_cmdString; // String event argument - int m_commandInt; - long m_extraLong; // Additional information (e.g. select/deselect) - - wxDECLARE_NO_ASSIGN_CLASS(wxEventBasicPayloadMixin); -}; - -class WXDLLIMPEXP_BASE wxEventAnyPayloadMixin : public wxEventBasicPayloadMixin -{ -public: - wxEventAnyPayloadMixin() : wxEventBasicPayloadMixin() {} - -#if wxUSE_ANY - template - void SetPayload(const T& payload) - { - m_payload = payload; - } - - template - T GetPayload() const - { - return m_payload.As(); - } - -protected: - wxAny m_payload; -#endif // wxUSE_ANY - - wxDECLARE_NO_ASSIGN_CLASS(wxEventBasicPayloadMixin); -}; - - -// Idle event -/* - wxEVT_IDLE - */ - -// Whether to always send idle events to windows, or -// to only send update events to those with the -// wxWS_EX_PROCESS_IDLE style. - -enum wxIdleMode -{ - // Send idle events to all windows - wxIDLE_PROCESS_ALL, - - // Send idle events to windows that have - // the wxWS_EX_PROCESS_IDLE flag specified - wxIDLE_PROCESS_SPECIFIED -}; - -class WXDLLIMPEXP_BASE wxIdleEvent : public wxEvent -{ -public: - wxIdleEvent() - : wxEvent(0, wxEVT_IDLE), - m_requestMore(false) - { } - wxIdleEvent(const wxIdleEvent& event) - : wxEvent(event), - m_requestMore(event.m_requestMore) - { } - - void RequestMore(bool needMore = true) { m_requestMore = needMore; } - bool MoreRequested() const { return m_requestMore; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxIdleEvent(*this); } - - // Specify how wxWidgets will send idle events: to - // all windows, or only to those which specify that they - // will process the events. - static void SetMode(wxIdleMode mode) { sm_idleMode = mode; } - - // Returns the idle event mode - static wxIdleMode GetMode() { return sm_idleMode; } - -protected: - bool m_requestMore; - static wxIdleMode sm_idleMode; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxIdleEvent); -}; - - -// Thread event - -class WXDLLIMPEXP_BASE wxThreadEvent : public wxEvent, - public wxEventAnyPayloadMixin -{ -public: - wxThreadEvent(wxEventType eventType = wxEVT_THREAD, int id = wxID_ANY) - : wxEvent(id, eventType) - { } - - wxThreadEvent(const wxThreadEvent& event) - : wxEvent(event), - wxEventAnyPayloadMixin(event) - { - // make sure our string member (which uses COW, aka refcounting) is not - // shared by other wxString instances: - SetString(GetString().Clone()); - } - - virtual wxEvent *Clone() const wxOVERRIDE - { - return new wxThreadEvent(*this); - } - - // this is important to avoid that calling wxEventLoopBase::YieldFor thread events - // gets processed when this is unwanted: - virtual wxEventCategory GetEventCategory() const wxOVERRIDE - { return wxEVT_CATEGORY_THREAD; } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxThreadEvent); -}; - - -// Asynchronous method call events: these event are processed by wxEvtHandler -// itself and result in a call to its Execute() method which simply calls the -// specified method. The difference with a simple method call is that this is -// done asynchronously, i.e. at some later time, instead of immediately when -// the event object is constructed. - -#ifdef wxHAS_CALL_AFTER - -// This is a base class used to process all method calls. -class wxAsyncMethodCallEvent : public wxEvent -{ -public: - wxAsyncMethodCallEvent(wxObject* object) - : wxEvent(wxID_ANY, wxEVT_ASYNC_METHOD_CALL) - { - SetEventObject(object); - } - - wxAsyncMethodCallEvent(const wxAsyncMethodCallEvent& other) - : wxEvent(other) - { - } - - virtual void Execute() = 0; -}; - -// This is a version for calling methods without parameters. -template -class wxAsyncMethodCallEvent0 : public wxAsyncMethodCallEvent -{ -public: - typedef T ObjectType; - typedef void (ObjectType::*MethodType)(); - - wxAsyncMethodCallEvent0(ObjectType* object, - MethodType method) - : wxAsyncMethodCallEvent(object), - m_object(object), - m_method(method) - { - } - - wxAsyncMethodCallEvent0(const wxAsyncMethodCallEvent0& other) - : wxAsyncMethodCallEvent(other), - m_object(other.m_object), - m_method(other.m_method) - { - } - - virtual wxEvent *Clone() const wxOVERRIDE - { - return new wxAsyncMethodCallEvent0(*this); - } - - virtual void Execute() wxOVERRIDE - { - (m_object->*m_method)(); - } - -private: - ObjectType* const m_object; - const MethodType m_method; -}; - -// This is a version for calling methods with a single parameter. -template -class wxAsyncMethodCallEvent1 : public wxAsyncMethodCallEvent -{ -public: - typedef T ObjectType; - typedef void (ObjectType::*MethodType)(T1 x1); - typedef typename wxRemoveRef::type ParamType1; - - wxAsyncMethodCallEvent1(ObjectType* object, - MethodType method, - const ParamType1& x1) - : wxAsyncMethodCallEvent(object), - m_object(object), - m_method(method), - m_param1(x1) - { - } - - wxAsyncMethodCallEvent1(const wxAsyncMethodCallEvent1& other) - : wxAsyncMethodCallEvent(other), - m_object(other.m_object), - m_method(other.m_method), - m_param1(other.m_param1) - { - } - - virtual wxEvent *Clone() const wxOVERRIDE - { - return new wxAsyncMethodCallEvent1(*this); - } - - virtual void Execute() wxOVERRIDE - { - (m_object->*m_method)(m_param1); - } - -private: - ObjectType* const m_object; - const MethodType m_method; - const ParamType1 m_param1; -}; - -// This is a version for calling methods with two parameters. -template -class wxAsyncMethodCallEvent2 : public wxAsyncMethodCallEvent -{ -public: - typedef T ObjectType; - typedef void (ObjectType::*MethodType)(T1 x1, T2 x2); - typedef typename wxRemoveRef::type ParamType1; - typedef typename wxRemoveRef::type ParamType2; - - wxAsyncMethodCallEvent2(ObjectType* object, - MethodType method, - const ParamType1& x1, - const ParamType2& x2) - : wxAsyncMethodCallEvent(object), - m_object(object), - m_method(method), - m_param1(x1), - m_param2(x2) - { - } - - wxAsyncMethodCallEvent2(const wxAsyncMethodCallEvent2& other) - : wxAsyncMethodCallEvent(other), - m_object(other.m_object), - m_method(other.m_method), - m_param1(other.m_param1), - m_param2(other.m_param2) - { - } - - virtual wxEvent *Clone() const wxOVERRIDE - { - return new wxAsyncMethodCallEvent2(*this); - } - - virtual void Execute() wxOVERRIDE - { - (m_object->*m_method)(m_param1, m_param2); - } - -private: - ObjectType* const m_object; - const MethodType m_method; - const ParamType1 m_param1; - const ParamType2 m_param2; -}; - -// This is a version for calling any functors -template -class wxAsyncMethodCallEventFunctor : public wxAsyncMethodCallEvent -{ -public: - typedef T FunctorType; - - wxAsyncMethodCallEventFunctor(wxObject *object, const FunctorType& fn) - : wxAsyncMethodCallEvent(object), - m_fn(fn) - { - } - - wxAsyncMethodCallEventFunctor(const wxAsyncMethodCallEventFunctor& other) - : wxAsyncMethodCallEvent(other), - m_fn(other.m_fn) - { - } - - virtual wxEvent *Clone() const wxOVERRIDE - { - return new wxAsyncMethodCallEventFunctor(*this); - } - - virtual void Execute() wxOVERRIDE - { - m_fn(); - } - -private: - FunctorType m_fn; -}; - -#endif // wxHAS_CALL_AFTER - - -#if wxUSE_GUI - - -// Item or menu event class -/* - wxEVT_BUTTON - wxEVT_CHECKBOX - wxEVT_CHOICE - wxEVT_LISTBOX - wxEVT_LISTBOX_DCLICK - wxEVT_TEXT - wxEVT_TEXT_ENTER - wxEVT_MENU - wxEVT_SLIDER - wxEVT_RADIOBOX - wxEVT_RADIOBUTTON - wxEVT_SCROLLBAR - wxEVT_VLBOX - wxEVT_COMBOBOX - wxEVT_TOGGLEBUTTON -*/ - -class WXDLLIMPEXP_CORE wxCommandEvent : public wxEvent, - public wxEventBasicPayloadMixin -{ -public: - wxCommandEvent(wxEventType commandType = wxEVT_NULL, int winid = 0) - : wxEvent(winid, commandType) - { - m_clientData = NULL; - m_clientObject = NULL; - m_isCommandEvent = true; - - // the command events are propagated upwards by default - m_propagationLevel = wxEVENT_PROPAGATE_MAX; - } - - wxCommandEvent(const wxCommandEvent& event) - : wxEvent(event), - wxEventBasicPayloadMixin(event), - m_clientData(event.m_clientData), - m_clientObject(event.m_clientObject) - { - // Because GetString() can retrieve the string text only on demand, we - // need to copy it explicitly. - if ( m_cmdString.empty() ) - m_cmdString = event.GetString(); - } - - // Set/Get client data from controls - void SetClientData(void* clientData) { m_clientData = clientData; } - void *GetClientData() const { return m_clientData; } - - // Set/Get client object from controls - void SetClientObject(wxClientData* clientObject) { m_clientObject = clientObject; } - wxClientData *GetClientObject() const { return m_clientObject; } - - // Note: this shadows wxEventBasicPayloadMixin::GetString(), because it does some - // GUI-specific hacks - wxString GetString() const; - - // Get listbox selection if single-choice - int GetSelection() const { return m_commandInt; } - - // Get checkbox value - bool IsChecked() const { return m_commandInt != 0; } - - // true if the listbox event was a selection. - bool IsSelection() const { return (m_extraLong != 0); } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxCommandEvent(*this); } - virtual wxEventCategory GetEventCategory() const wxOVERRIDE { return wxEVT_CATEGORY_USER_INPUT; } - -protected: - void* m_clientData; // Arbitrary client data - wxClientData* m_clientObject; // Arbitrary client object - -private: - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxCommandEvent); -}; - -// this class adds a possibility to react (from the user) code to a control -// notification: allow or veto the operation being reported. -class WXDLLIMPEXP_CORE wxNotifyEvent : public wxCommandEvent -{ -public: - wxNotifyEvent(wxEventType commandType = wxEVT_NULL, int winid = 0) - : wxCommandEvent(commandType, winid) - { m_bAllow = true; } - - wxNotifyEvent(const wxNotifyEvent& event) - : wxCommandEvent(event) - { m_bAllow = event.m_bAllow; } - - // veto the operation (usually it's allowed by default) - void Veto() { m_bAllow = false; } - - // allow the operation if it was disabled by default - void Allow() { m_bAllow = true; } - - // for implementation code only: is the operation allowed? - bool IsAllowed() const { return m_bAllow; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxNotifyEvent(*this); } - -private: - bool m_bAllow; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxNotifyEvent); -}; - - -// Scroll event class, derived form wxCommandEvent. wxScrollEvents are -// sent by wxSlider and wxScrollBar. -/* - wxEVT_SCROLL_TOP - wxEVT_SCROLL_BOTTOM - wxEVT_SCROLL_LINEUP - wxEVT_SCROLL_LINEDOWN - wxEVT_SCROLL_PAGEUP - wxEVT_SCROLL_PAGEDOWN - wxEVT_SCROLL_THUMBTRACK - wxEVT_SCROLL_THUMBRELEASE - wxEVT_SCROLL_CHANGED -*/ - -class WXDLLIMPEXP_CORE wxScrollEvent : public wxCommandEvent -{ -public: - wxScrollEvent(wxEventType commandType = wxEVT_NULL, - int winid = 0, int pos = 0, int orient = 0); - - int GetOrientation() const { return (int) m_extraLong; } - int GetPosition() const { return m_commandInt; } - void SetOrientation(int orient) { m_extraLong = (long) orient; } - void SetPosition(int pos) { m_commandInt = pos; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxScrollEvent(*this); } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxScrollEvent); -}; - -// ScrollWin event class, derived fom wxEvent. wxScrollWinEvents -// are sent by wxWindow. -/* - wxEVT_SCROLLWIN_TOP - wxEVT_SCROLLWIN_BOTTOM - wxEVT_SCROLLWIN_LINEUP - wxEVT_SCROLLWIN_LINEDOWN - wxEVT_SCROLLWIN_PAGEUP - wxEVT_SCROLLWIN_PAGEDOWN - wxEVT_SCROLLWIN_THUMBTRACK - wxEVT_SCROLLWIN_THUMBRELEASE -*/ - -class WXDLLIMPEXP_CORE wxScrollWinEvent : public wxEvent -{ -public: - wxScrollWinEvent(wxEventType commandType = wxEVT_NULL, - int pos = 0, int orient = 0); - wxScrollWinEvent(const wxScrollWinEvent& event) : wxEvent(event) - { m_commandInt = event.m_commandInt; - m_extraLong = event.m_extraLong; } - - int GetOrientation() const { return (int) m_extraLong; } - int GetPosition() const { return m_commandInt; } - void SetOrientation(int orient) { m_extraLong = (long) orient; } - void SetPosition(int pos) { m_commandInt = pos; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxScrollWinEvent(*this); } - -protected: - int m_commandInt; - long m_extraLong; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxScrollWinEvent); -}; - - - -// Mouse event class - -/* - wxEVT_LEFT_DOWN - wxEVT_LEFT_UP - wxEVT_MIDDLE_DOWN - wxEVT_MIDDLE_UP - wxEVT_RIGHT_DOWN - wxEVT_RIGHT_UP - wxEVT_MOTION - wxEVT_ENTER_WINDOW - wxEVT_LEAVE_WINDOW - wxEVT_LEFT_DCLICK - wxEVT_MIDDLE_DCLICK - wxEVT_RIGHT_DCLICK -*/ - -enum wxMouseWheelAxis -{ - wxMOUSE_WHEEL_VERTICAL, - wxMOUSE_WHEEL_HORIZONTAL -}; - -class WXDLLIMPEXP_CORE wxMouseEvent : public wxEvent, - public wxMouseState -{ -public: - wxMouseEvent(wxEventType mouseType = wxEVT_NULL); - wxMouseEvent(const wxMouseEvent& event) - : wxEvent(event), - wxMouseState(event) - { - Assign(event); - } - - // Was it a button event? (*doesn't* mean: is any button *down*?) - bool IsButton() const { return Button(wxMOUSE_BTN_ANY); } - - // Was it a down event from this (or any) button? - bool ButtonDown(int but = wxMOUSE_BTN_ANY) const; - - // Was it a dclick event from this (or any) button? - bool ButtonDClick(int but = wxMOUSE_BTN_ANY) const; - - // Was it a up event from this (or any) button? - bool ButtonUp(int but = wxMOUSE_BTN_ANY) const; - - // Was this event generated by the given button? - bool Button(int but) const; - - // Get the button which is changing state (wxMOUSE_BTN_NONE if none) - int GetButton() const; - - // Find which event was just generated - bool LeftDown() const { return (m_eventType == wxEVT_LEFT_DOWN); } - bool MiddleDown() const { return (m_eventType == wxEVT_MIDDLE_DOWN); } - bool RightDown() const { return (m_eventType == wxEVT_RIGHT_DOWN); } - bool Aux1Down() const { return (m_eventType == wxEVT_AUX1_DOWN); } - bool Aux2Down() const { return (m_eventType == wxEVT_AUX2_DOWN); } - - bool LeftUp() const { return (m_eventType == wxEVT_LEFT_UP); } - bool MiddleUp() const { return (m_eventType == wxEVT_MIDDLE_UP); } - bool RightUp() const { return (m_eventType == wxEVT_RIGHT_UP); } - bool Aux1Up() const { return (m_eventType == wxEVT_AUX1_UP); } - bool Aux2Up() const { return (m_eventType == wxEVT_AUX2_UP); } - - bool LeftDClick() const { return (m_eventType == wxEVT_LEFT_DCLICK); } - bool MiddleDClick() const { return (m_eventType == wxEVT_MIDDLE_DCLICK); } - bool RightDClick() const { return (m_eventType == wxEVT_RIGHT_DCLICK); } - bool Aux1DClick() const { return (m_eventType == wxEVT_AUX1_DCLICK); } - bool Aux2DClick() const { return (m_eventType == wxEVT_AUX2_DCLICK); } - - bool Magnify() const { return (m_eventType == wxEVT_MAGNIFY); } - - // True if a button is down and the mouse is moving - bool Dragging() const - { - return (m_eventType == wxEVT_MOTION) && ButtonIsDown(wxMOUSE_BTN_ANY); - } - - // True if the mouse is moving, and no button is down - bool Moving() const - { - return (m_eventType == wxEVT_MOTION) && !ButtonIsDown(wxMOUSE_BTN_ANY); - } - - // True if the mouse is just entering the window - bool Entering() const { return (m_eventType == wxEVT_ENTER_WINDOW); } - - // True if the mouse is just leaving the window - bool Leaving() const { return (m_eventType == wxEVT_LEAVE_WINDOW); } - - // Returns the number of mouse clicks associated with this event. - int GetClickCount() const { return m_clickCount; } - - // Find the logical position of the event given the DC - wxPoint GetLogicalPosition(const wxDC& dc) const; - - // Get wheel rotation, positive or negative indicates direction of - // rotation. Current devices all send an event when rotation is equal to - // +/-WheelDelta, but this allows for finer resolution devices to be - // created in the future. Because of this you shouldn't assume that one - // event is equal to 1 line or whatever, but you should be able to either - // do partial line scrolling or wait until +/-WheelDelta rotation values - // have been accumulated before scrolling. - int GetWheelRotation() const { return m_wheelRotation; } - - // Get wheel delta, normally 120. This is the threshold for action to be - // taken, and one such action (for example, scrolling one increment) - // should occur for each delta. - int GetWheelDelta() const { return m_wheelDelta; } - - // Gets the axis the wheel operation concerns; wxMOUSE_WHEEL_VERTICAL - // (most common case) or wxMOUSE_WHEEL_HORIZONTAL (for horizontal scrolling - // using e.g. a trackpad). - wxMouseWheelAxis GetWheelAxis() const { return m_wheelAxis; } - - // Returns the configured number of lines (or whatever) to be scrolled per - // wheel action. Defaults to three. - int GetLinesPerAction() const { return m_linesPerAction; } - - // Returns the configured number of columns (or whatever) to be scrolled per - // wheel action. Defaults to three. - int GetColumnsPerAction() const { return m_columnsPerAction; } - - // Is the system set to do page scrolling? - bool IsPageScroll() const { return ((unsigned int)m_linesPerAction == UINT_MAX); } - - float GetMagnification() const { return m_magnification; } - virtual wxEvent *Clone() const wxOVERRIDE { return new wxMouseEvent(*this); } - virtual wxEventCategory GetEventCategory() const wxOVERRIDE { return wxEVT_CATEGORY_USER_INPUT; } - - wxMouseEvent& operator=(const wxMouseEvent& event) - { - if (&event != this) - Assign(event); - return *this; - } - -public: - int m_clickCount; - - wxMouseWheelAxis m_wheelAxis; - int m_wheelRotation; - int m_wheelDelta; - int m_linesPerAction; - int m_columnsPerAction; - float m_magnification; - -protected: - void Assign(const wxMouseEvent& evt); - -private: - wxDECLARE_DYNAMIC_CLASS(wxMouseEvent); -}; - -// Cursor set event - -/* - wxEVT_SET_CURSOR - */ - -class WXDLLIMPEXP_CORE wxSetCursorEvent : public wxEvent -{ -public: - wxSetCursorEvent(wxCoord x = 0, wxCoord y = 0) - : wxEvent(0, wxEVT_SET_CURSOR), - m_x(x), m_y(y), m_cursor() - { } - - wxSetCursorEvent(const wxSetCursorEvent& event) - : wxEvent(event), - m_x(event.m_x), - m_y(event.m_y), - m_cursor(event.m_cursor) - { } - - wxCoord GetX() const { return m_x; } - wxCoord GetY() const { return m_y; } - - void SetCursor(const wxCursor& cursor) { m_cursor = cursor; } - const wxCursor& GetCursor() const { return m_cursor; } - bool HasCursor() const { return m_cursor.IsOk(); } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxSetCursorEvent(*this); } - -private: - wxCoord m_x, m_y; - wxCursor m_cursor; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxSetCursorEvent); -}; - -// Keyboard input event class - -/* - wxEVT_CHAR - wxEVT_CHAR_HOOK - wxEVT_KEY_DOWN - wxEVT_KEY_UP - wxEVT_HOTKEY - */ - -// key categories: the bit flags for IsKeyInCategory() function -// -// the enum values used may change in future version of wx -// use the named constants only, or bitwise combinations thereof -enum wxKeyCategoryFlags -{ - // arrow keys, on and off numeric keypads - WXK_CATEGORY_ARROW = 1, - - // page up and page down keys, on and off numeric keypads - WXK_CATEGORY_PAGING = 2, - - // home and end keys, on and off numeric keypads - WXK_CATEGORY_JUMP = 4, - - // tab key, on and off numeric keypads - WXK_CATEGORY_TAB = 8, - - // backspace and delete keys, on and off numeric keypads - WXK_CATEGORY_CUT = 16, - - // all keys usually used for navigation - WXK_CATEGORY_NAVIGATION = WXK_CATEGORY_ARROW | - WXK_CATEGORY_PAGING | - WXK_CATEGORY_JUMP -}; - -class WXDLLIMPEXP_CORE wxKeyEvent : public wxEvent, - public wxKeyboardState -{ -public: - wxKeyEvent(wxEventType keyType = wxEVT_NULL); - - // Normal copy ctor and a ctor creating a new event for the same key as the - // given one but a different event type (this is used in implementation - // code only, do not use outside of the library). - wxKeyEvent(const wxKeyEvent& evt); - wxKeyEvent(wxEventType eventType, const wxKeyEvent& evt); - - // get the key code: an ASCII7 char or an element of wxKeyCode enum - int GetKeyCode() const { return (int)m_keyCode; } - - // returns true iff this event's key code is of a certain type - bool IsKeyInCategory(int category) const; - -#if wxUSE_UNICODE - // get the Unicode character corresponding to this key - wxChar GetUnicodeKey() const { return m_uniChar; } -#endif // wxUSE_UNICODE - - // get the raw key code (platform-dependent) - wxUint32 GetRawKeyCode() const { return m_rawCode; } - - // get the raw key flags (platform-dependent) - wxUint32 GetRawKeyFlags() const { return m_rawFlags; } - - // Find the position of the event - void GetPosition(wxCoord *xpos, wxCoord *ypos) const - { - if (xpos) - *xpos = GetX(); - if (ypos) - *ypos = GetY(); - } - - // This version if provided only for backwards compatiblity, don't use. - void GetPosition(long *xpos, long *ypos) const - { - if (xpos) - *xpos = GetX(); - if (ypos) - *ypos = GetY(); - } - - wxPoint GetPosition() const - { return wxPoint(GetX(), GetY()); } - - // Get X position - wxCoord GetX() const; - - // Get Y position - wxCoord GetY() const; - - // Can be called from wxEVT_CHAR_HOOK handler to allow generation of normal - // key events even though the event had been handled (by default they would - // not be generated in this case). - void DoAllowNextEvent() { m_allowNext = true; } - - // Return the value of the "allow next" flag, for internal use only. - bool IsNextEventAllowed() const { return m_allowNext; } - - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxKeyEvent(*this); } - virtual wxEventCategory GetEventCategory() const wxOVERRIDE { return wxEVT_CATEGORY_USER_INPUT; } - - // we do need to copy wxKeyEvent sometimes (in wxTreeCtrl code, for - // example) - wxKeyEvent& operator=(const wxKeyEvent& evt) - { - if ( &evt != this ) - { - wxEvent::operator=(evt); - - // Borland C++ 5.82 doesn't compile an explicit call to an - // implicitly defined operator=() so need to do it this way: - *static_cast(this) = evt; - - DoAssignMembers(evt); - } - return *this; - } - -public: - // Do not use these fields directly, they are initialized on demand, so - // call GetX() and GetY() or GetPosition() instead. - wxCoord m_x, m_y; - - long m_keyCode; - -#if wxUSE_UNICODE - // This contains the full Unicode character - // in a character events in Unicode mode - wxChar m_uniChar; -#endif - - // these fields contain the platform-specific information about - // key that was pressed - wxUint32 m_rawCode; - wxUint32 m_rawFlags; - -private: - // Set the event to propagate if necessary, i.e. if it's of wxEVT_CHAR_HOOK - // type. This is used by all ctors. - void InitPropagation() - { - if ( m_eventType == wxEVT_CHAR_HOOK ) - m_propagationLevel = wxEVENT_PROPAGATE_MAX; - - m_allowNext = false; - } - - // Copy only the event data present in this class, this is used by - // AssignKeyData() and copy ctor. - void DoAssignMembers(const wxKeyEvent& evt) - { - m_x = evt.m_x; - m_y = evt.m_y; - m_hasPosition = evt.m_hasPosition; - - m_keyCode = evt.m_keyCode; - - m_rawCode = evt.m_rawCode; - m_rawFlags = evt.m_rawFlags; -#if wxUSE_UNICODE - m_uniChar = evt.m_uniChar; -#endif - } - - // Initialize m_x and m_y using the current mouse cursor position if - // necessary. - void InitPositionIfNecessary() const; - - // If this flag is true, the normal key events should still be generated - // even if wxEVT_CHAR_HOOK had been handled. By default it is false as - // handling wxEVT_CHAR_HOOK suppresses all the subsequent events. - bool m_allowNext; - - // If true, m_x and m_y were already initialized. If false, try to get them - // when they're requested. - bool m_hasPosition; - - wxDECLARE_DYNAMIC_CLASS(wxKeyEvent); -}; - -// Size event class -/* - wxEVT_SIZE - */ - -class WXDLLIMPEXP_CORE wxSizeEvent : public wxEvent -{ -public: - wxSizeEvent() : wxEvent(0, wxEVT_SIZE) - { } - wxSizeEvent(const wxSize& sz, int winid = 0) - : wxEvent(winid, wxEVT_SIZE), - m_size(sz) - { } - wxSizeEvent(const wxSizeEvent& event) - : wxEvent(event), - m_size(event.m_size), m_rect(event.m_rect) - { } - wxSizeEvent(const wxRect& rect, int id = 0) - : m_size(rect.GetSize()), m_rect(rect) - { m_eventType = wxEVT_SIZING; m_id = id; } - - wxSize GetSize() const { return m_size; } - void SetSize(wxSize size) { m_size = size; } - wxRect GetRect() const { return m_rect; } - void SetRect(const wxRect& rect) { m_rect = rect; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxSizeEvent(*this); } - -public: - // For internal usage only. Will be converted to protected members. - wxSize m_size; - wxRect m_rect; // Used for wxEVT_SIZING - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxSizeEvent); -}; - -// Move event class - -/* - wxEVT_MOVE - */ - -class WXDLLIMPEXP_CORE wxMoveEvent : public wxEvent -{ -public: - wxMoveEvent() - : wxEvent(0, wxEVT_MOVE) - { } - wxMoveEvent(const wxPoint& pos, int winid = 0) - : wxEvent(winid, wxEVT_MOVE), - m_pos(pos) - { } - wxMoveEvent(const wxMoveEvent& event) - : wxEvent(event), - m_pos(event.m_pos) - { } - wxMoveEvent(const wxRect& rect, int id = 0) - : m_pos(rect.GetPosition()), m_rect(rect) - { m_eventType = wxEVT_MOVING; m_id = id; } - - wxPoint GetPosition() const { return m_pos; } - void SetPosition(const wxPoint& pos) { m_pos = pos; } - wxRect GetRect() const { return m_rect; } - void SetRect(const wxRect& rect) { m_rect = rect; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxMoveEvent(*this); } - -protected: - wxPoint m_pos; - wxRect m_rect; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxMoveEvent); -}; - -// Paint event class -/* - wxEVT_PAINT - wxEVT_NC_PAINT - */ - -#if wxDEBUG_LEVEL && defined(__WXMSW__) - #define wxHAS_PAINT_DEBUG - - // see comments in src/msw/dcclient.cpp where g_isPainting is defined - extern WXDLLIMPEXP_CORE int g_isPainting; -#endif // debug - -class WXDLLIMPEXP_CORE wxPaintEvent : public wxEvent -{ -public: - wxPaintEvent(int Id = 0) - : wxEvent(Id, wxEVT_PAINT) - { -#ifdef wxHAS_PAINT_DEBUG - // set the internal flag for the duration of redrawing - g_isPainting++; -#endif // debug - } - - // default copy ctor and dtor are normally fine, we only need them to keep - // g_isPainting updated in debug build -#ifdef wxHAS_PAINT_DEBUG - wxPaintEvent(const wxPaintEvent& event) - : wxEvent(event) - { - g_isPainting++; - } - - virtual ~wxPaintEvent() - { - g_isPainting--; - } -#endif // debug - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxPaintEvent(*this); } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxPaintEvent); -}; - -class WXDLLIMPEXP_CORE wxNcPaintEvent : public wxEvent -{ -public: - wxNcPaintEvent(int winid = 0) - : wxEvent(winid, wxEVT_NC_PAINT) - { } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxNcPaintEvent(*this); } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxNcPaintEvent); -}; - -// Erase background event class -/* - wxEVT_ERASE_BACKGROUND - */ - -class WXDLLIMPEXP_CORE wxEraseEvent : public wxEvent -{ -public: - wxEraseEvent(int Id = 0, wxDC *dc = NULL) - : wxEvent(Id, wxEVT_ERASE_BACKGROUND), - m_dc(dc) - { } - - wxEraseEvent(const wxEraseEvent& event) - : wxEvent(event), - m_dc(event.m_dc) - { } - - wxDC *GetDC() const { return m_dc; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxEraseEvent(*this); } - -protected: - wxDC *m_dc; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxEraseEvent); -}; - -// Focus event class -/* - wxEVT_SET_FOCUS - wxEVT_KILL_FOCUS - */ - -class WXDLLIMPEXP_CORE wxFocusEvent : public wxEvent -{ -public: - wxFocusEvent(wxEventType type = wxEVT_NULL, int winid = 0) - : wxEvent(winid, type) - { m_win = NULL; } - - wxFocusEvent(const wxFocusEvent& event) - : wxEvent(event) - { m_win = event.m_win; } - - // The window associated with this event is the window which had focus - // before for SET event and the window which will have focus for the KILL - // one. NB: it may be NULL in both cases! - wxWindow *GetWindow() const { return m_win; } - void SetWindow(wxWindow *win) { m_win = win; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxFocusEvent(*this); } - -private: - wxWindow *m_win; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxFocusEvent); -}; - -// wxChildFocusEvent notifies the parent that a child has got the focus: unlike -// wxFocusEvent it is propagated upwards the window chain -class WXDLLIMPEXP_CORE wxChildFocusEvent : public wxCommandEvent -{ -public: - wxChildFocusEvent(wxWindow *win = NULL); - - wxWindow *GetWindow() const { return (wxWindow *)GetEventObject(); } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxChildFocusEvent(*this); } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxChildFocusEvent); -}; - -// Activate event class -/* - wxEVT_ACTIVATE - wxEVT_ACTIVATE_APP - wxEVT_HIBERNATE - */ - -class WXDLLIMPEXP_CORE wxActivateEvent : public wxEvent -{ -public: - // Type of activation. For now we can only detect if it was by mouse or by - // some other method and even this is only available under wxMSW. - enum Reason - { - Reason_Mouse, - Reason_Unknown - }; - - wxActivateEvent(wxEventType type = wxEVT_NULL, bool active = true, - int Id = 0, Reason activationReason = Reason_Unknown) - : wxEvent(Id, type), - m_activationReason(activationReason) - { - m_active = active; - } - wxActivateEvent(const wxActivateEvent& event) - : wxEvent(event) - { - m_active = event.m_active; - m_activationReason = event.m_activationReason; - } - - bool GetActive() const { return m_active; } - Reason GetActivationReason() const { return m_activationReason;} - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxActivateEvent(*this); } - -private: - bool m_active; - Reason m_activationReason; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxActivateEvent); -}; - -// InitDialog event class -/* - wxEVT_INIT_DIALOG - */ - -class WXDLLIMPEXP_CORE wxInitDialogEvent : public wxEvent -{ -public: - wxInitDialogEvent(int Id = 0) - : wxEvent(Id, wxEVT_INIT_DIALOG) - { } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxInitDialogEvent(*this); } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxInitDialogEvent); -}; - -// Miscellaneous menu event class -/* - wxEVT_MENU_OPEN, - wxEVT_MENU_CLOSE, - wxEVT_MENU_HIGHLIGHT, -*/ - -class WXDLLIMPEXP_CORE wxMenuEvent : public wxEvent -{ -public: - wxMenuEvent(wxEventType type = wxEVT_NULL, int winid = 0, wxMenu* menu = NULL) - : wxEvent(winid, type) - { m_menuId = winid; m_menu = menu; } - wxMenuEvent(const wxMenuEvent& event) - : wxEvent(event) - { m_menuId = event.m_menuId; m_menu = event.m_menu; } - - // only for wxEVT_MENU_HIGHLIGHT - int GetMenuId() const { return m_menuId; } - - // only for wxEVT_MENU_OPEN/CLOSE - bool IsPopup() const { return m_menuId == wxID_ANY; } - - // only for wxEVT_MENU_OPEN/CLOSE - wxMenu* GetMenu() const { return m_menu; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxMenuEvent(*this); } - -private: - int m_menuId; - wxMenu* m_menu; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxMenuEvent); -}; - -// Window close or session close event class -/* - wxEVT_CLOSE_WINDOW, - wxEVT_END_SESSION, - wxEVT_QUERY_END_SESSION - */ - -class WXDLLIMPEXP_CORE wxCloseEvent : public wxEvent -{ -public: - wxCloseEvent(wxEventType type = wxEVT_NULL, int winid = 0) - : wxEvent(winid, type), - m_loggingOff(true), - m_veto(false), // should be false by default - m_canVeto(true) {} - - wxCloseEvent(const wxCloseEvent& event) - : wxEvent(event), - m_loggingOff(event.m_loggingOff), - m_veto(event.m_veto), - m_canVeto(event.m_canVeto) {} - - void SetLoggingOff(bool logOff) { m_loggingOff = logOff; } - bool GetLoggingOff() const - { - // m_loggingOff flag is only used by wxEVT_[QUERY_]END_SESSION, it - // doesn't make sense for wxEVT_CLOSE_WINDOW - wxASSERT_MSG( m_eventType != wxEVT_CLOSE_WINDOW, - wxT("this flag is for end session events only") ); - - return m_loggingOff; - } - - void Veto(bool veto = true) - { - // GetVeto() will return false anyhow... - wxCHECK_RET( m_canVeto, - wxT("call to Veto() ignored (can't veto this event)") ); - - m_veto = veto; - } - void SetCanVeto(bool canVeto) { m_canVeto = canVeto; } - bool CanVeto() const { return m_canVeto; } - bool GetVeto() const { return m_canVeto && m_veto; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxCloseEvent(*this); } - -protected: - bool m_loggingOff, - m_veto, - m_canVeto; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxCloseEvent); -}; - -/* - wxEVT_SHOW - */ - -class WXDLLIMPEXP_CORE wxShowEvent : public wxEvent -{ -public: - wxShowEvent(int winid = 0, bool show = false) - : wxEvent(winid, wxEVT_SHOW) - { m_show = show; } - wxShowEvent(const wxShowEvent& event) - : wxEvent(event) - { m_show = event.m_show; } - - void SetShow(bool show) { m_show = show; } - - // return true if the window was shown, false if hidden - bool IsShown() const { return m_show; } - -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED( bool GetShow() const { return IsShown(); } ) -#endif - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxShowEvent(*this); } - -protected: - bool m_show; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxShowEvent); -}; - -/* - wxEVT_ICONIZE - */ - -class WXDLLIMPEXP_CORE wxIconizeEvent : public wxEvent -{ -public: - wxIconizeEvent(int winid = 0, bool iconized = true) - : wxEvent(winid, wxEVT_ICONIZE) - { m_iconized = iconized; } - wxIconizeEvent(const wxIconizeEvent& event) - : wxEvent(event) - { m_iconized = event.m_iconized; } - -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED( bool Iconized() const { return IsIconized(); } ) -#endif - // return true if the frame was iconized, false if restored - bool IsIconized() const { return m_iconized; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxIconizeEvent(*this); } - -protected: - bool m_iconized; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxIconizeEvent); -}; -/* - wxEVT_MAXIMIZE - */ - -class WXDLLIMPEXP_CORE wxMaximizeEvent : public wxEvent -{ -public: - wxMaximizeEvent(int winid = 0) - : wxEvent(winid, wxEVT_MAXIMIZE) - { } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxMaximizeEvent(*this); } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxMaximizeEvent); -}; - -// Joystick event class -/* - wxEVT_JOY_BUTTON_DOWN, - wxEVT_JOY_BUTTON_UP, - wxEVT_JOY_MOVE, - wxEVT_JOY_ZMOVE -*/ - -// Which joystick? Same as Windows ids so no conversion necessary. -enum -{ - wxJOYSTICK1, - wxJOYSTICK2 -}; - -// Which button is down? -enum -{ - wxJOY_BUTTON_ANY = -1, - wxJOY_BUTTON1 = 1, - wxJOY_BUTTON2 = 2, - wxJOY_BUTTON3 = 4, - wxJOY_BUTTON4 = 8 -}; - -class WXDLLIMPEXP_CORE wxJoystickEvent : public wxEvent -{ -protected: - wxPoint m_pos; - int m_zPosition; - int m_buttonChange; // Which button changed? - int m_buttonState; // Which buttons are down? - int m_joyStick; // Which joystick? - -public: - wxJoystickEvent(wxEventType type = wxEVT_NULL, - int state = 0, - int joystick = wxJOYSTICK1, - int change = 0) - : wxEvent(0, type), - m_pos(), - m_zPosition(0), - m_buttonChange(change), - m_buttonState(state), - m_joyStick(joystick) - { - } - wxJoystickEvent(const wxJoystickEvent& event) - : wxEvent(event), - m_pos(event.m_pos), - m_zPosition(event.m_zPosition), - m_buttonChange(event.m_buttonChange), - m_buttonState(event.m_buttonState), - m_joyStick(event.m_joyStick) - { } - - wxPoint GetPosition() const { return m_pos; } - int GetZPosition() const { return m_zPosition; } - int GetButtonState() const { return m_buttonState; } - int GetButtonChange() const { return m_buttonChange; } - int GetJoystick() const { return m_joyStick; } - - void SetJoystick(int stick) { m_joyStick = stick; } - void SetButtonState(int state) { m_buttonState = state; } - void SetButtonChange(int change) { m_buttonChange = change; } - void SetPosition(const wxPoint& pos) { m_pos = pos; } - void SetZPosition(int zPos) { m_zPosition = zPos; } - - // Was it a button event? (*doesn't* mean: is any button *down*?) - bool IsButton() const { return ((GetEventType() == wxEVT_JOY_BUTTON_DOWN) || - (GetEventType() == wxEVT_JOY_BUTTON_UP)); } - - // Was it a move event? - bool IsMove() const { return (GetEventType() == wxEVT_JOY_MOVE); } - - // Was it a zmove event? - bool IsZMove() const { return (GetEventType() == wxEVT_JOY_ZMOVE); } - - // Was it a down event from button 1, 2, 3, 4 or any? - bool ButtonDown(int but = wxJOY_BUTTON_ANY) const - { return ((GetEventType() == wxEVT_JOY_BUTTON_DOWN) && - ((but == wxJOY_BUTTON_ANY) || (but == m_buttonChange))); } - - // Was it a up event from button 1, 2, 3 or any? - bool ButtonUp(int but = wxJOY_BUTTON_ANY) const - { return ((GetEventType() == wxEVT_JOY_BUTTON_UP) && - ((but == wxJOY_BUTTON_ANY) || (but == m_buttonChange))); } - - // Was the given button 1,2,3,4 or any in Down state? - bool ButtonIsDown(int but = wxJOY_BUTTON_ANY) const - { return (((but == wxJOY_BUTTON_ANY) && (m_buttonState != 0)) || - ((m_buttonState & but) == but)); } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxJoystickEvent(*this); } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxJoystickEvent); -}; - -// Drop files event class -/* - wxEVT_DROP_FILES - */ - -class WXDLLIMPEXP_CORE wxDropFilesEvent : public wxEvent -{ -public: - int m_noFiles; - wxPoint m_pos; - wxString* m_files; - - wxDropFilesEvent(wxEventType type = wxEVT_NULL, - int noFiles = 0, - wxString *files = NULL) - : wxEvent(0, type), - m_noFiles(noFiles), - m_pos(), - m_files(files) - { } - - // we need a copy ctor to avoid deleting m_files pointer twice - wxDropFilesEvent(const wxDropFilesEvent& other) - : wxEvent(other), - m_noFiles(other.m_noFiles), - m_pos(other.m_pos), - m_files(NULL) - { - m_files = new wxString[m_noFiles]; - for ( int n = 0; n < m_noFiles; n++ ) - { - m_files[n] = other.m_files[n]; - } - } - - virtual ~wxDropFilesEvent() - { - delete [] m_files; - } - - wxPoint GetPosition() const { return m_pos; } - int GetNumberOfFiles() const { return m_noFiles; } - wxString *GetFiles() const { return m_files; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxDropFilesEvent(*this); } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxDropFilesEvent); -}; - -// Update UI event -/* - wxEVT_UPDATE_UI - */ - -// Whether to always send update events to windows, or -// to only send update events to those with the -// wxWS_EX_PROCESS_UI_UPDATES style. - -enum wxUpdateUIMode -{ - // Send UI update events to all windows - wxUPDATE_UI_PROCESS_ALL, - - // Send UI update events to windows that have - // the wxWS_EX_PROCESS_UI_UPDATES flag specified - wxUPDATE_UI_PROCESS_SPECIFIED -}; - -class WXDLLIMPEXP_CORE wxUpdateUIEvent : public wxCommandEvent -{ -public: - wxUpdateUIEvent(wxWindowID commandId = 0) - : wxCommandEvent(wxEVT_UPDATE_UI, commandId) - { - m_checked = - m_enabled = - m_shown = - m_setEnabled = - m_setShown = - m_setText = - m_setChecked = false; - } - wxUpdateUIEvent(const wxUpdateUIEvent& event) - : wxCommandEvent(event), - m_checked(event.m_checked), - m_enabled(event.m_enabled), - m_shown(event.m_shown), - m_setEnabled(event.m_setEnabled), - m_setShown(event.m_setShown), - m_setText(event.m_setText), - m_setChecked(event.m_setChecked), - m_text(event.m_text) - { } - - bool GetChecked() const { return m_checked; } - bool GetEnabled() const { return m_enabled; } - bool GetShown() const { return m_shown; } - wxString GetText() const { return m_text; } - bool GetSetText() const { return m_setText; } - bool GetSetChecked() const { return m_setChecked; } - bool GetSetEnabled() const { return m_setEnabled; } - bool GetSetShown() const { return m_setShown; } - - void Check(bool check) { m_checked = check; m_setChecked = true; } - void Enable(bool enable) { m_enabled = enable; m_setEnabled = true; } - void Show(bool show) { m_shown = show; m_setShown = true; } - void SetText(const wxString& text) { m_text = text; m_setText = true; } - - // Sets the interval between updates in milliseconds. - // Set to -1 to disable updates, or to 0 to update as frequently as possible. - static void SetUpdateInterval(long updateInterval) { sm_updateInterval = updateInterval; } - - // Returns the current interval between updates in milliseconds - static long GetUpdateInterval() { return sm_updateInterval; } - - // Can we update this window? - static bool CanUpdate(wxWindowBase *win); - - // Reset the update time to provide a delay until the next - // time we should update - static void ResetUpdateTime(); - - // Specify how wxWidgets will send update events: to - // all windows, or only to those which specify that they - // will process the events. - static void SetMode(wxUpdateUIMode mode) { sm_updateMode = mode; } - - // Returns the UI update mode - static wxUpdateUIMode GetMode() { return sm_updateMode; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxUpdateUIEvent(*this); } - -protected: - bool m_checked; - bool m_enabled; - bool m_shown; - bool m_setEnabled; - bool m_setShown; - bool m_setText; - bool m_setChecked; - wxString m_text; -#if wxUSE_LONGLONG - static wxLongLong sm_lastUpdate; -#endif - static long sm_updateInterval; - static wxUpdateUIMode sm_updateMode; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxUpdateUIEvent); -}; - -/* - wxEVT_SYS_COLOUR_CHANGED - */ - -// TODO: shouldn't all events record the window ID? -class WXDLLIMPEXP_CORE wxSysColourChangedEvent : public wxEvent -{ -public: - wxSysColourChangedEvent() - : wxEvent(0, wxEVT_SYS_COLOUR_CHANGED) - { } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxSysColourChangedEvent(*this); } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxSysColourChangedEvent); -}; - -/* - wxEVT_MOUSE_CAPTURE_CHANGED - The window losing the capture receives this message - (even if it released the capture itself). - */ - -class WXDLLIMPEXP_CORE wxMouseCaptureChangedEvent : public wxEvent -{ -public: - wxMouseCaptureChangedEvent(wxWindowID winid = 0, wxWindow* gainedCapture = NULL) - : wxEvent(winid, wxEVT_MOUSE_CAPTURE_CHANGED), - m_gainedCapture(gainedCapture) - { } - - wxMouseCaptureChangedEvent(const wxMouseCaptureChangedEvent& event) - : wxEvent(event), - m_gainedCapture(event.m_gainedCapture) - { } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxMouseCaptureChangedEvent(*this); } - - wxWindow* GetCapturedWindow() const { return m_gainedCapture; } - -private: - wxWindow* m_gainedCapture; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxMouseCaptureChangedEvent); -}; - -/* - wxEVT_MOUSE_CAPTURE_LOST - The window losing the capture receives this message, unless it released it - it itself or unless wxWindow::CaptureMouse was called on another window - (and so capture will be restored when the new capturer releases it). - */ - -class WXDLLIMPEXP_CORE wxMouseCaptureLostEvent : public wxEvent -{ -public: - wxMouseCaptureLostEvent(wxWindowID winid = 0) - : wxEvent(winid, wxEVT_MOUSE_CAPTURE_LOST) - {} - - wxMouseCaptureLostEvent(const wxMouseCaptureLostEvent& event) - : wxEvent(event) - {} - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxMouseCaptureLostEvent(*this); } - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxMouseCaptureLostEvent); -}; - -/* - wxEVT_DISPLAY_CHANGED - */ -class WXDLLIMPEXP_CORE wxDisplayChangedEvent : public wxEvent -{ -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxDisplayChangedEvent); - -public: - wxDisplayChangedEvent() - : wxEvent(0, wxEVT_DISPLAY_CHANGED) - { } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxDisplayChangedEvent(*this); } -}; - -/* - wxEVT_PALETTE_CHANGED - */ - -class WXDLLIMPEXP_CORE wxPaletteChangedEvent : public wxEvent -{ -public: - wxPaletteChangedEvent(wxWindowID winid = 0) - : wxEvent(winid, wxEVT_PALETTE_CHANGED), - m_changedWindow(NULL) - { } - - wxPaletteChangedEvent(const wxPaletteChangedEvent& event) - : wxEvent(event), - m_changedWindow(event.m_changedWindow) - { } - - void SetChangedWindow(wxWindow* win) { m_changedWindow = win; } - wxWindow* GetChangedWindow() const { return m_changedWindow; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxPaletteChangedEvent(*this); } - -protected: - wxWindow* m_changedWindow; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxPaletteChangedEvent); -}; - -/* - wxEVT_QUERY_NEW_PALETTE - Indicates the window is getting keyboard focus and should re-do its palette. - */ - -class WXDLLIMPEXP_CORE wxQueryNewPaletteEvent : public wxEvent -{ -public: - wxQueryNewPaletteEvent(wxWindowID winid = 0) - : wxEvent(winid, wxEVT_QUERY_NEW_PALETTE), - m_paletteRealized(false) - { } - wxQueryNewPaletteEvent(const wxQueryNewPaletteEvent& event) - : wxEvent(event), - m_paletteRealized(event.m_paletteRealized) - { } - - // App sets this if it changes the palette. - void SetPaletteRealized(bool realized) { m_paletteRealized = realized; } - bool GetPaletteRealized() const { return m_paletteRealized; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxQueryNewPaletteEvent(*this); } - -protected: - bool m_paletteRealized; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxQueryNewPaletteEvent); -}; - -/* - Event generated by dialog navigation keys - wxEVT_NAVIGATION_KEY - */ -// NB: don't derive from command event to avoid being propagated to the parent -class WXDLLIMPEXP_CORE wxNavigationKeyEvent : public wxEvent -{ -public: - wxNavigationKeyEvent() - : wxEvent(0, wxEVT_NAVIGATION_KEY), - m_flags(IsForward | FromTab), // defaults are for TAB - m_focus(NULL) - { - m_propagationLevel = wxEVENT_PROPAGATE_NONE; - } - - wxNavigationKeyEvent(const wxNavigationKeyEvent& event) - : wxEvent(event), - m_flags(event.m_flags), - m_focus(event.m_focus) - { } - - // direction: forward (true) or backward (false) - bool GetDirection() const - { return (m_flags & IsForward) != 0; } - void SetDirection(bool bForward) - { if ( bForward ) m_flags |= IsForward; else m_flags &= ~IsForward; } - - // it may be a window change event (MDI, notebook pages...) or a control - // change event - bool IsWindowChange() const - { return (m_flags & WinChange) != 0; } - void SetWindowChange(bool bIs) - { if ( bIs ) m_flags |= WinChange; else m_flags &= ~WinChange; } - - // Set to true under MSW if the event was generated using the tab key. - // This is required for proper navogation over radio buttons - bool IsFromTab() const - { return (m_flags & FromTab) != 0; } - void SetFromTab(bool bIs) - { if ( bIs ) m_flags |= FromTab; else m_flags &= ~FromTab; } - - // the child which has the focus currently (may be NULL - use - // wxWindow::FindFocus then) - wxWindow* GetCurrentFocus() const { return m_focus; } - void SetCurrentFocus(wxWindow *win) { m_focus = win; } - - // Set flags - void SetFlags(long flags) { m_flags = flags; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxNavigationKeyEvent(*this); } - - enum wxNavigationKeyEventFlags - { - IsBackward = 0x0000, - IsForward = 0x0001, - WinChange = 0x0002, - FromTab = 0x0004 - }; - - long m_flags; - wxWindow *m_focus; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxNavigationKeyEvent); -}; - -// Window creation/destruction events: the first is sent as soon as window is -// created (i.e. the underlying GUI object exists), but when the C++ object is -// fully initialized (so virtual functions may be called). The second, -// wxEVT_DESTROY, is sent right before the window is destroyed - again, it's -// still safe to call virtual functions at this moment -/* - wxEVT_CREATE - wxEVT_DESTROY - */ - -class WXDLLIMPEXP_CORE wxWindowCreateEvent : public wxCommandEvent -{ -public: - wxWindowCreateEvent(wxWindow *win = NULL); - - wxWindow *GetWindow() const { return (wxWindow *)GetEventObject(); } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxWindowCreateEvent(*this); } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxWindowCreateEvent); -}; - -class WXDLLIMPEXP_CORE wxWindowDestroyEvent : public wxCommandEvent -{ -public: - wxWindowDestroyEvent(wxWindow *win = NULL); - - wxWindow *GetWindow() const { return (wxWindow *)GetEventObject(); } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxWindowDestroyEvent(*this); } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxWindowDestroyEvent); -}; - -// A help event is sent when the user clicks on a window in context-help mode. -/* - wxEVT_HELP - wxEVT_DETAILED_HELP -*/ - -class WXDLLIMPEXP_CORE wxHelpEvent : public wxCommandEvent -{ -public: - // how was this help event generated? - enum Origin - { - Origin_Unknown, // unrecognized event source - Origin_Keyboard, // event generated from F1 key press - Origin_HelpButton // event from [?] button on the title bar (Windows) - }; - - wxHelpEvent(wxEventType type = wxEVT_NULL, - wxWindowID winid = 0, - const wxPoint& pt = wxDefaultPosition, - Origin origin = Origin_Unknown) - : wxCommandEvent(type, winid), - m_pos(pt), - m_origin(GuessOrigin(origin)) - { } - wxHelpEvent(const wxHelpEvent& event) - : wxCommandEvent(event), - m_pos(event.m_pos), - m_target(event.m_target), - m_link(event.m_link), - m_origin(event.m_origin) - { } - - // Position of event (in screen coordinates) - const wxPoint& GetPosition() const { return m_pos; } - void SetPosition(const wxPoint& pos) { m_pos = pos; } - - // Optional link to further help - const wxString& GetLink() const { return m_link; } - void SetLink(const wxString& link) { m_link = link; } - - // Optional target to display help in. E.g. a window specification - const wxString& GetTarget() const { return m_target; } - void SetTarget(const wxString& target) { m_target = target; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxHelpEvent(*this); } - - // optional indication of the event source - Origin GetOrigin() const { return m_origin; } - void SetOrigin(Origin origin) { m_origin = origin; } - -protected: - wxPoint m_pos; - wxString m_target; - wxString m_link; - Origin m_origin; - - // we can try to guess the event origin ourselves, even if none is - // specified in the ctor - static Origin GuessOrigin(Origin origin); - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxHelpEvent); -}; - -// A Clipboard Text event is sent when a window intercepts text copy/cut/paste -// message, i.e. the user has cut/copied/pasted data from/into a text control -// via ctrl-C/X/V, ctrl/shift-del/insert, a popup menu command, etc. -// NOTE : under windows these events are *NOT* generated automatically -// for a Rich Edit text control. -/* -wxEVT_TEXT_COPY -wxEVT_TEXT_CUT -wxEVT_TEXT_PASTE -*/ - -class WXDLLIMPEXP_CORE wxClipboardTextEvent : public wxCommandEvent -{ -public: - wxClipboardTextEvent(wxEventType type = wxEVT_NULL, - wxWindowID winid = 0) - : wxCommandEvent(type, winid) - { } - wxClipboardTextEvent(const wxClipboardTextEvent& event) - : wxCommandEvent(event) - { } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxClipboardTextEvent(*this); } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxClipboardTextEvent); -}; - -// A Context event is sent when the user right clicks on a window or -// presses Shift-F10 -// NOTE : Under windows this is a repackaged WM_CONTETXMENU message -// Under other systems it may have to be generated from a right click event -/* - wxEVT_CONTEXT_MENU -*/ - -class WXDLLIMPEXP_CORE wxContextMenuEvent : public wxCommandEvent -{ -public: - wxContextMenuEvent(wxEventType type = wxEVT_NULL, - wxWindowID winid = 0, - const wxPoint& pt = wxDefaultPosition) - : wxCommandEvent(type, winid), - m_pos(pt) - { } - wxContextMenuEvent(const wxContextMenuEvent& event) - : wxCommandEvent(event), - m_pos(event.m_pos) - { } - - // Position of event (in screen coordinates) - const wxPoint& GetPosition() const { return m_pos; } - void SetPosition(const wxPoint& pos) { m_pos = pos; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxContextMenuEvent(*this); } - -protected: - wxPoint m_pos; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxContextMenuEvent); -}; - - -/* TODO - wxEVT_MOUSE_CAPTURE_CHANGED, - wxEVT_SETTING_CHANGED, // WM_WININICHANGE (NT) / WM_SETTINGCHANGE (Win95) -// wxEVT_FONT_CHANGED, // WM_FONTCHANGE: roll into wxEVT_SETTING_CHANGED, but remember to propagate - // wxEVT_FONT_CHANGED to all other windows (maybe). - wxEVT_DRAW_ITEM, // Leave these three as virtual functions in wxControl?? Platform-specific. - wxEVT_MEASURE_ITEM, - wxEVT_COMPARE_ITEM -*/ - -#endif // wxUSE_GUI - - -// ============================================================================ -// event handler and related classes -// ============================================================================ - - -// struct containing the members common to static and dynamic event tables -// entries -struct WXDLLIMPEXP_BASE wxEventTableEntryBase -{ - wxEventTableEntryBase(int winid, int idLast, - wxEventFunctor* fn, wxObject *data) - : m_id(winid), - m_lastId(idLast), - m_fn(fn), - m_callbackUserData(data) - { - wxASSERT_MSG( idLast == wxID_ANY || winid <= idLast, - "invalid IDs range: lower bound > upper bound" ); - } - - wxEventTableEntryBase( const wxEventTableEntryBase &entry ) - : m_id( entry.m_id ), - m_lastId( entry.m_lastId ), - m_fn( entry.m_fn ), - m_callbackUserData( entry.m_callbackUserData ) - { - // This is a 'hack' to ensure that only one instance tries to delete - // the functor pointer. It is safe as long as the only place where the - // copy constructor is being called is when the static event tables are - // being initialized (a temporary instance is created and then this - // constructor is called). - - const_cast( entry ).m_fn = NULL; - } - - ~wxEventTableEntryBase() - { - delete m_fn; - } - - // the range of ids for this entry: if m_lastId == wxID_ANY, the range - // consists only of m_id, otherwise it is m_id..m_lastId inclusive - int m_id, - m_lastId; - - // function/method/functor to call - wxEventFunctor* m_fn; - - // arbitrary user data associated with the callback - wxObject* m_callbackUserData; - -private: - wxDECLARE_NO_ASSIGN_CLASS(wxEventTableEntryBase); -}; - -// an entry from a static event table -struct WXDLLIMPEXP_BASE wxEventTableEntry : public wxEventTableEntryBase -{ - wxEventTableEntry(const int& evType, int winid, int idLast, - wxEventFunctor* fn, wxObject *data) - : wxEventTableEntryBase(winid, idLast, fn, data), - m_eventType(evType) - { } - - // the reference to event type: this allows us to not care about the - // (undefined) order in which the event table entries and the event types - // are initialized: initially the value of this reference might be - // invalid, but by the time it is used for the first time, all global - // objects will have been initialized (including the event type constants) - // and so it will have the correct value when it is needed - const int& m_eventType; - -private: - wxDECLARE_NO_ASSIGN_CLASS(wxEventTableEntry); -}; - -// an entry used in dynamic event table managed by wxEvtHandler::Connect() -struct WXDLLIMPEXP_BASE wxDynamicEventTableEntry : public wxEventTableEntryBase -{ - wxDynamicEventTableEntry(int evType, int winid, int idLast, - wxEventFunctor* fn, wxObject *data) - : wxEventTableEntryBase(winid, idLast, fn, data), - m_eventType(evType) - { } - - // not a reference here as we can't keep a reference to a temporary int - // created to wrap the constant value typically passed to Connect() - nor - // do we need it - int m_eventType; - -private: - wxDECLARE_NO_ASSIGN_CLASS(wxDynamicEventTableEntry); -}; - -// ---------------------------------------------------------------------------- -// wxEventTable: an array of event entries terminated with {0, 0, 0, 0, 0} -// ---------------------------------------------------------------------------- - -struct WXDLLIMPEXP_BASE wxEventTable -{ - const wxEventTable *baseTable; // base event table (next in chain) - const wxEventTableEntry *entries; // bottom of entry array -}; - -// ---------------------------------------------------------------------------- -// wxEventHashTable: a helper of wxEvtHandler to speed up wxEventTable lookups. -// ---------------------------------------------------------------------------- - -WX_DEFINE_ARRAY_PTR(const wxEventTableEntry*, wxEventTableEntryPointerArray); - -class WXDLLIMPEXP_BASE wxEventHashTable -{ -private: - // Internal data structs - struct EventTypeTable - { - wxEventType eventType; - wxEventTableEntryPointerArray eventEntryTable; - }; - typedef EventTypeTable* EventTypeTablePointer; - -public: - // Constructor, needs the event table it needs to hash later on. - // Note: hashing of the event table is not done in the constructor as it - // can be that the event table is not yet full initialize, the hash - // will gets initialized when handling the first event look-up request. - wxEventHashTable(const wxEventTable &table); - // Destructor. - ~wxEventHashTable(); - - // Handle the given event, in other words search the event table hash - // and call self->ProcessEvent() if a match was found. - bool HandleEvent(wxEvent& event, wxEvtHandler *self); - - // Clear table - void Clear(); - -#if wxUSE_MEMORY_TRACING - // Clear all tables: only used to work around problems in memory tracing - // code - static void ClearAll(); -#endif // wxUSE_MEMORY_TRACING - -protected: - // Init the hash table with the entries of the static event table. - void InitHashTable(); - // Helper function of InitHashTable() to insert 1 entry into the hash table. - void AddEntry(const wxEventTableEntry &entry); - // Allocate and init with null pointers the base hash table. - void AllocEventTypeTable(size_t size); - // Grow the hash table in size and transfer all items currently - // in the table to the correct location in the new table. - void GrowEventTypeTable(); - -protected: - const wxEventTable &m_table; - bool m_rebuildHash; - - size_t m_size; - EventTypeTablePointer *m_eventTypeTable; - - static wxEventHashTable* sm_first; - wxEventHashTable* m_previous; - wxEventHashTable* m_next; - - wxDECLARE_NO_COPY_CLASS(wxEventHashTable); -}; - -// ---------------------------------------------------------------------------- -// wxEvtHandler: the base class for all objects handling wxWidgets events -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxEvtHandler : public wxObject - , public wxTrackable -{ -public: - wxEvtHandler(); - virtual ~wxEvtHandler(); - - - // Event handler chain - // ------------------- - - wxEvtHandler *GetNextHandler() const { return m_nextHandler; } - wxEvtHandler *GetPreviousHandler() const { return m_previousHandler; } - virtual void SetNextHandler(wxEvtHandler *handler) { m_nextHandler = handler; } - virtual void SetPreviousHandler(wxEvtHandler *handler) { m_previousHandler = handler; } - - void SetEvtHandlerEnabled(bool enabled) { m_enabled = enabled; } - bool GetEvtHandlerEnabled() const { return m_enabled; } - - void Unlink(); - bool IsUnlinked() const; - - - // Global event filters - // -------------------- - - // Add an event filter whose FilterEvent() method will be called for each - // and every event processed by wxWidgets. The filters are called in LIFO - // order and wxApp is registered as an event filter by default. The pointer - // must remain valid until it's removed with RemoveFilter() and is not - // deleted by wxEvtHandler. - static void AddFilter(wxEventFilter* filter); - - // Remove a filter previously installed with AddFilter(). - static void RemoveFilter(wxEventFilter* filter); - - - // Event queuing and processing - // ---------------------------- - - // Process an event right now: this can only be called from the main - // thread, use QueueEvent() for scheduling the events for - // processing from other threads. - virtual bool ProcessEvent(wxEvent& event); - - // Process an event by calling ProcessEvent and handling any exceptions - // thrown by event handlers. It's mostly useful when processing wx events - // when called from C code (e.g. in GTK+ callback) when the exception - // wouldn't correctly propagate to wxEventLoop. - bool SafelyProcessEvent(wxEvent& event); - // NOTE: uses ProcessEvent() - - // This method tries to process the event in this event handler, including - // any preprocessing done by TryBefore() and all the handlers chained to - // it, but excluding the post-processing done in TryAfter(). - // - // It is meant to be called from ProcessEvent() only and is not virtual, - // additional event handlers can be hooked into the normal event processing - // logic using TryBefore() and TryAfter() hooks. - // - // You can also call it yourself to forward an event to another handler but - // without propagating it upwards if it's unhandled (this is usually - // unwanted when forwarding as the original handler would already do it if - // needed normally). - bool ProcessEventLocally(wxEvent& event); - - // Schedule the given event to be processed later. It takes ownership of - // the event pointer, i.e. it will be deleted later. This is safe to call - // from multiple threads although you still need to ensure that wxString - // fields of the event object are deep copies and not use the same string - // buffer as other wxString objects in this thread. - virtual void QueueEvent(wxEvent *event); - - // Add an event to be processed later: notice that this function is not - // safe to call from threads other than main, use QueueEvent() - virtual void AddPendingEvent(const wxEvent& event) - { - // notice that the thread-safety problem comes from the fact that - // Clone() doesn't make deep copies of wxString fields of wxEvent - // object and so the same wxString could be used from both threads when - // the event object is destroyed in this one -- QueueEvent() avoids - // this problem as the event pointer is not used any more in this - // thread at all after it is called. - QueueEvent(event.Clone()); - } - - void ProcessPendingEvents(); - // NOTE: uses ProcessEvent() - - void DeletePendingEvents(); - -#if wxUSE_THREADS - bool ProcessThreadEvent(const wxEvent& event); - // NOTE: uses AddPendingEvent(); call only from secondary threads -#endif - -#ifdef wxHAS_CALL_AFTER - // Asynchronous method calls: these methods schedule the given method - // pointer for a later call (during the next idle event loop iteration). - // - // Notice that the method is called on this object itself, so the object - // CallAfter() is called on must have the correct dynamic type. - // - // These method can be used from another thread. - - template - void CallAfter(void (T::*method)()) - { - QueueEvent( - new wxAsyncMethodCallEvent0(static_cast(this), method) - ); - } - - // Notice that we use P1 and not T1 for the parameter to allow passing - // parameters that are convertible to the type taken by the method - // instead of being exactly the same, to be closer to the usual method call - // semantics. - template - void CallAfter(void (T::*method)(T1 x1), P1 x1) - { - QueueEvent( - new wxAsyncMethodCallEvent1( - static_cast(this), method, x1) - ); - } - - template - void CallAfter(void (T::*method)(T1 x1, T2 x2), P1 x1, P2 x2) - { - QueueEvent( - new wxAsyncMethodCallEvent2( - static_cast(this), method, x1, x2) - ); - } - - template - void CallAfter(const T& fn) - { - QueueEvent(new wxAsyncMethodCallEventFunctor(this, fn)); - } -#endif // wxHAS_CALL_AFTER - - - // Connecting and disconnecting - // ---------------------------- - - // These functions are used for old, untyped, event handlers and don't - // check that the type of the function passed to them actually matches the - // type of the event. They also only allow connecting events to methods of - // wxEvtHandler-derived classes. - // - // The template Connect() methods below are safer and allow connecting - // events to arbitrary functions or functors -- but require compiler - // support for templates. - - // Dynamic association of a member function handler with the event handler, - // winid and event type - void Connect(int winid, - int lastId, - wxEventType eventType, - wxObjectEventFunction func, - wxObject *userData = NULL, - wxEvtHandler *eventSink = NULL) - { - DoBind(winid, lastId, eventType, - wxNewEventFunctor(eventType, func, eventSink), - userData); - } - - // Convenience function: take just one id - void Connect(int winid, - wxEventType eventType, - wxObjectEventFunction func, - wxObject *userData = NULL, - wxEvtHandler *eventSink = NULL) - { Connect(winid, wxID_ANY, eventType, func, userData, eventSink); } - - // Even more convenient: without id (same as using id of wxID_ANY) - void Connect(wxEventType eventType, - wxObjectEventFunction func, - wxObject *userData = NULL, - wxEvtHandler *eventSink = NULL) - { Connect(wxID_ANY, wxID_ANY, eventType, func, userData, eventSink); } - - bool Disconnect(int winid, - int lastId, - wxEventType eventType, - wxObjectEventFunction func = NULL, - wxObject *userData = NULL, - wxEvtHandler *eventSink = NULL) - { - return DoUnbind(winid, lastId, eventType, - wxMakeEventFunctor(eventType, func, eventSink), - userData ); - } - - bool Disconnect(int winid = wxID_ANY, - wxEventType eventType = wxEVT_NULL, - wxObjectEventFunction func = NULL, - wxObject *userData = NULL, - wxEvtHandler *eventSink = NULL) - { return Disconnect(winid, wxID_ANY, eventType, func, userData, eventSink); } - - bool Disconnect(wxEventType eventType, - wxObjectEventFunction func, - wxObject *userData = NULL, - wxEvtHandler *eventSink = NULL) - { return Disconnect(wxID_ANY, eventType, func, userData, eventSink); } - - // Bind functions to an event: - template - void Bind(const EventTag& eventType, - void (*function)(EventArg &), - int winid = wxID_ANY, - int lastId = wxID_ANY, - wxObject *userData = NULL) - { - DoBind(winid, lastId, eventType, - wxNewEventFunctor(eventType, function), - userData); - } - - - template - bool Unbind(const EventTag& eventType, - void (*function)(EventArg &), - int winid = wxID_ANY, - int lastId = wxID_ANY, - wxObject *userData = NULL) - { - return DoUnbind(winid, lastId, eventType, - wxMakeEventFunctor(eventType, function), - userData); - } - - // Bind functors to an event: - template - void Bind(const EventTag& eventType, - const Functor &functor, - int winid = wxID_ANY, - int lastId = wxID_ANY, - wxObject *userData = NULL) - { - DoBind(winid, lastId, eventType, - wxNewEventFunctor(eventType, functor), - userData); - } - - - template - bool Unbind(const EventTag& eventType, - const Functor &functor, - int winid = wxID_ANY, - int lastId = wxID_ANY, - wxObject *userData = NULL) - { - return DoUnbind(winid, lastId, eventType, - wxMakeEventFunctor(eventType, functor), - userData); - } - - - // Bind a method of a class (called on the specified handler which must - // be convertible to this class) object to an event: - - template - void Bind(const EventTag &eventType, - void (Class::*method)(EventArg &), - EventHandler *handler, - int winid = wxID_ANY, - int lastId = wxID_ANY, - wxObject *userData = NULL) - { - DoBind(winid, lastId, eventType, - wxNewEventFunctor(eventType, method, handler), - userData); - } - - template - bool Unbind(const EventTag &eventType, - void (Class::*method)(EventArg&), - EventHandler *handler, - int winid = wxID_ANY, - int lastId = wxID_ANY, - wxObject *userData = NULL ) - { - return DoUnbind(winid, lastId, eventType, - wxMakeEventFunctor(eventType, method, handler), - userData); - } - - // User data can be associated with each wxEvtHandler - void SetClientObject( wxClientData *data ) { DoSetClientObject(data); } - wxClientData *GetClientObject() const { return DoGetClientObject(); } - - void SetClientData( void *data ) { DoSetClientData(data); } - void *GetClientData() const { return DoGetClientData(); } - - - // implementation from now on - // -------------------------- - - // check if the given event table entry matches this event by id (the check - // for the event type should be done by caller) and call the handler if it - // does - // - // return true if the event was processed, false otherwise (no match or the - // handler decided to skip the event) - static bool ProcessEventIfMatchesId(const wxEventTableEntryBase& tableEntry, - wxEvtHandler *handler, - wxEvent& event); - - // Allow iterating over all connected dynamic event handlers: you must pass - // the same "cookie" to GetFirst() and GetNext() and call them until null - // is returned. - // - // These functions are for internal use only. - wxDynamicEventTableEntry* GetFirstDynamicEntry(size_t& cookie) const; - wxDynamicEventTableEntry* GetNextDynamicEntry(size_t& cookie) const; - - virtual bool SearchEventTable(wxEventTable& table, wxEvent& event); - bool SearchDynamicEventTable( wxEvent& event ); - - // Avoid problems at exit by cleaning up static hash table gracefully - void ClearEventHashTable() { GetEventHashTable().Clear(); } - void OnSinkDestroyed( wxEvtHandler *sink ); - - -private: - void DoBind(int winid, - int lastId, - wxEventType eventType, - wxEventFunctor *func, - wxObject* userData = NULL); - - bool DoUnbind(int winid, - int lastId, - wxEventType eventType, - const wxEventFunctor& func, - wxObject *userData = NULL); - - static const wxEventTableEntry sm_eventTableEntries[]; - -protected: - // hooks for wxWindow used by ProcessEvent() - // ----------------------------------------- - - // this one is called before trying our own event table to allow plugging - // in the event handlers overriding the default logic, this is used by e.g. - // validators. - virtual bool TryBefore(wxEvent& event); - - // This one is not a hook but just a helper which looks up the handler in - // this object itself. - // - // It is called from ProcessEventLocally() and normally shouldn't be called - // directly as doing it would ignore any chained event handlers - bool TryHereOnly(wxEvent& event); - - // Another helper which simply calls pre-processing hook and then tries to - // handle the event at this handler level. - bool TryBeforeAndHere(wxEvent& event) - { - return TryBefore(event) || TryHereOnly(event); - } - - // this one is called after failing to find the event handle in our own - // table to give a chance to the other windows to process it - // - // base class implementation passes the event to wxTheApp - virtual bool TryAfter(wxEvent& event); - -#if WXWIN_COMPATIBILITY_2_8 - // deprecated method: override TryBefore() instead of this one - wxDEPRECATED_BUT_USED_INTERNALLY_INLINE( - virtual bool TryValidator(wxEvent& WXUNUSED(event)), return false; ) - - wxDEPRECATED_BUT_USED_INTERNALLY_INLINE( - virtual bool TryParent(wxEvent& event), return DoTryApp(event); ) -#endif // WXWIN_COMPATIBILITY_2_8 - - // Overriding this method allows filtering the event handlers dynamically - // connected to this object. If this method returns false, the handler is - // not connected at all. If it returns true, it is connected using the - // possibly modified fields of the given entry. - virtual bool OnDynamicBind(wxDynamicEventTableEntry& WXUNUSED(entry)) - { - return true; - } - - - static const wxEventTable sm_eventTable; - virtual const wxEventTable *GetEventTable() const; - - static wxEventHashTable sm_eventHashTable; - virtual wxEventHashTable& GetEventHashTable() const; - - wxEvtHandler* m_nextHandler; - wxEvtHandler* m_previousHandler; - - typedef wxVector DynamicEvents; - DynamicEvents* m_dynamicEvents; - - wxList* m_pendingEvents; - -#if wxUSE_THREADS - // critical section protecting m_pendingEvents - wxCriticalSection m_pendingEventsLock; -#endif // wxUSE_THREADS - - // Is event handler enabled? - bool m_enabled; - - - // The user data: either an object which will be deleted by the container - // when it's deleted or some raw pointer which we do nothing with - only - // one type of data can be used with the given window (i.e. you cannot set - // the void data and then associate the container with wxClientData or vice - // versa) - union - { - wxClientData *m_clientObject; - void *m_clientData; - }; - - // what kind of data do we have? - wxClientDataType m_clientDataType; - - // client data accessors - virtual void DoSetClientObject( wxClientData *data ); - virtual wxClientData *DoGetClientObject() const; - - virtual void DoSetClientData( void *data ); - virtual void *DoGetClientData() const; - - // Search tracker objects for event connection with this sink - wxEventConnectionRef *FindRefInTrackerList(wxEvtHandler *handler); - -private: - // pass the event to wxTheApp instance, called from TryAfter() - bool DoTryApp(wxEvent& event); - - // try to process events in all handlers chained to this one - bool DoTryChain(wxEvent& event); - - // Head of the event filter linked list. - static wxEventFilter* ms_filterList; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxEvtHandler); -}; - -WX_DEFINE_ARRAY_WITH_DECL_PTR(wxEvtHandler *, wxEvtHandlerArray, class WXDLLIMPEXP_BASE); - - -// Define an inline method of wxObjectEventFunctor which couldn't be defined -// before wxEvtHandler declaration: at least Sun CC refuses to compile function -// calls through pointer to member for forward-declared classes (see #12452). -inline void wxObjectEventFunctor::operator()(wxEvtHandler *handler, wxEvent& event) -{ - wxEvtHandler * const realHandler = m_handler ? m_handler : handler; - - (realHandler->*m_method)(event); -} - -// ---------------------------------------------------------------------------- -// wxEventConnectionRef represents all connections between two event handlers -// and enables automatic disconnect when an event handler sink goes out of -// scope. Each connection/disconnect increases/decreases ref count, and -// when it reaches zero the node goes out of scope. -// ---------------------------------------------------------------------------- - -class wxEventConnectionRef : public wxTrackerNode -{ -public: - wxEventConnectionRef() : m_src(NULL), m_sink(NULL), m_refCount(0) { } - wxEventConnectionRef(wxEvtHandler *src, wxEvtHandler *sink) - : m_src(src), m_sink(sink), m_refCount(1) - { - m_sink->AddNode(this); - } - - // The sink is being destroyed - virtual void OnObjectDestroy( ) wxOVERRIDE - { - if ( m_src ) - m_src->OnSinkDestroyed( m_sink ); - delete this; - } - - virtual wxEventConnectionRef *ToEventConnection() wxOVERRIDE { return this; } - - void IncRef() { m_refCount++; } - void DecRef() - { - if ( !--m_refCount ) - { - // The sink holds the only external pointer to this object - if ( m_sink ) - m_sink->RemoveNode(this); - delete this; - } - } - -private: - wxEvtHandler *m_src, - *m_sink; - int m_refCount; - - friend class wxEvtHandler; - - wxDECLARE_NO_ASSIGN_CLASS(wxEventConnectionRef); -}; - -// Post a message to the given event handler which will be processed during the -// next event loop iteration. -// -// Notice that this one is not thread-safe, use wxQueueEvent() -inline void wxPostEvent(wxEvtHandler *dest, const wxEvent& event) -{ - wxCHECK_RET( dest, "need an object to post event to" ); - - dest->AddPendingEvent(event); -} - -// Wrapper around wxEvtHandler::QueueEvent(): adds an event for later -// processing, unlike wxPostEvent it is safe to use from different thread even -// for events with wxString members -inline void wxQueueEvent(wxEvtHandler *dest, wxEvent *event) -{ - wxCHECK_RET( dest, "need an object to queue event for" ); - - dest->QueueEvent(event); -} - -typedef void (wxEvtHandler::*wxEventFunction)(wxEvent&); -typedef void (wxEvtHandler::*wxIdleEventFunction)(wxIdleEvent&); -typedef void (wxEvtHandler::*wxThreadEventFunction)(wxThreadEvent&); - -#define wxEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxEventFunction, func) -#define wxIdleEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxIdleEventFunction, func) -#define wxThreadEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxThreadEventFunction, func) - -#if wxUSE_GUI - -// ---------------------------------------------------------------------------- -// wxEventBlocker: helper class to temporarily disable event handling for a window -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxEventBlocker : public wxEvtHandler -{ -public: - wxEventBlocker(wxWindow *win, wxEventType type = wxEVT_ANY); - virtual ~wxEventBlocker(); - - void Block(wxEventType type) - { - m_eventsToBlock.push_back(type); - } - - virtual bool ProcessEvent(wxEvent& event) wxOVERRIDE; - -protected: - wxArrayInt m_eventsToBlock; - wxWindow *m_window; - - wxDECLARE_NO_COPY_CLASS(wxEventBlocker); -}; - -typedef void (wxEvtHandler::*wxCommandEventFunction)(wxCommandEvent&); -typedef void (wxEvtHandler::*wxScrollEventFunction)(wxScrollEvent&); -typedef void (wxEvtHandler::*wxScrollWinEventFunction)(wxScrollWinEvent&); -typedef void (wxEvtHandler::*wxSizeEventFunction)(wxSizeEvent&); -typedef void (wxEvtHandler::*wxMoveEventFunction)(wxMoveEvent&); -typedef void (wxEvtHandler::*wxPaintEventFunction)(wxPaintEvent&); -typedef void (wxEvtHandler::*wxNcPaintEventFunction)(wxNcPaintEvent&); -typedef void (wxEvtHandler::*wxEraseEventFunction)(wxEraseEvent&); -typedef void (wxEvtHandler::*wxMouseEventFunction)(wxMouseEvent&); -typedef void (wxEvtHandler::*wxCharEventFunction)(wxKeyEvent&); -typedef void (wxEvtHandler::*wxFocusEventFunction)(wxFocusEvent&); -typedef void (wxEvtHandler::*wxChildFocusEventFunction)(wxChildFocusEvent&); -typedef void (wxEvtHandler::*wxActivateEventFunction)(wxActivateEvent&); -typedef void (wxEvtHandler::*wxMenuEventFunction)(wxMenuEvent&); -typedef void (wxEvtHandler::*wxJoystickEventFunction)(wxJoystickEvent&); -typedef void (wxEvtHandler::*wxDropFilesEventFunction)(wxDropFilesEvent&); -typedef void (wxEvtHandler::*wxInitDialogEventFunction)(wxInitDialogEvent&); -typedef void (wxEvtHandler::*wxSysColourChangedEventFunction)(wxSysColourChangedEvent&); -typedef void (wxEvtHandler::*wxDisplayChangedEventFunction)(wxDisplayChangedEvent&); -typedef void (wxEvtHandler::*wxUpdateUIEventFunction)(wxUpdateUIEvent&); -typedef void (wxEvtHandler::*wxCloseEventFunction)(wxCloseEvent&); -typedef void (wxEvtHandler::*wxShowEventFunction)(wxShowEvent&); -typedef void (wxEvtHandler::*wxIconizeEventFunction)(wxIconizeEvent&); -typedef void (wxEvtHandler::*wxMaximizeEventFunction)(wxMaximizeEvent&); -typedef void (wxEvtHandler::*wxNavigationKeyEventFunction)(wxNavigationKeyEvent&); -typedef void (wxEvtHandler::*wxPaletteChangedEventFunction)(wxPaletteChangedEvent&); -typedef void (wxEvtHandler::*wxQueryNewPaletteEventFunction)(wxQueryNewPaletteEvent&); -typedef void (wxEvtHandler::*wxWindowCreateEventFunction)(wxWindowCreateEvent&); -typedef void (wxEvtHandler::*wxWindowDestroyEventFunction)(wxWindowDestroyEvent&); -typedef void (wxEvtHandler::*wxSetCursorEventFunction)(wxSetCursorEvent&); -typedef void (wxEvtHandler::*wxNotifyEventFunction)(wxNotifyEvent&); -typedef void (wxEvtHandler::*wxHelpEventFunction)(wxHelpEvent&); -typedef void (wxEvtHandler::*wxContextMenuEventFunction)(wxContextMenuEvent&); -typedef void (wxEvtHandler::*wxMouseCaptureChangedEventFunction)(wxMouseCaptureChangedEvent&); -typedef void (wxEvtHandler::*wxMouseCaptureLostEventFunction)(wxMouseCaptureLostEvent&); -typedef void (wxEvtHandler::*wxClipboardTextEventFunction)(wxClipboardTextEvent&); - - -#define wxCommandEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxCommandEventFunction, func) -#define wxScrollEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxScrollEventFunction, func) -#define wxScrollWinEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxScrollWinEventFunction, func) -#define wxSizeEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxSizeEventFunction, func) -#define wxMoveEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxMoveEventFunction, func) -#define wxPaintEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxPaintEventFunction, func) -#define wxNcPaintEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxNcPaintEventFunction, func) -#define wxEraseEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxEraseEventFunction, func) -#define wxMouseEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxMouseEventFunction, func) -#define wxCharEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxCharEventFunction, func) -#define wxKeyEventHandler(func) wxCharEventHandler(func) -#define wxFocusEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxFocusEventFunction, func) -#define wxChildFocusEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxChildFocusEventFunction, func) -#define wxActivateEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxActivateEventFunction, func) -#define wxMenuEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxMenuEventFunction, func) -#define wxJoystickEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxJoystickEventFunction, func) -#define wxDropFilesEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxDropFilesEventFunction, func) -#define wxInitDialogEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxInitDialogEventFunction, func) -#define wxSysColourChangedEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxSysColourChangedEventFunction, func) -#define wxDisplayChangedEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxDisplayChangedEventFunction, func) -#define wxUpdateUIEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxUpdateUIEventFunction, func) -#define wxCloseEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxCloseEventFunction, func) -#define wxShowEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxShowEventFunction, func) -#define wxIconizeEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxIconizeEventFunction, func) -#define wxMaximizeEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxMaximizeEventFunction, func) -#define wxNavigationKeyEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxNavigationKeyEventFunction, func) -#define wxPaletteChangedEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxPaletteChangedEventFunction, func) -#define wxQueryNewPaletteEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxQueryNewPaletteEventFunction, func) -#define wxWindowCreateEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxWindowCreateEventFunction, func) -#define wxWindowDestroyEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxWindowDestroyEventFunction, func) -#define wxSetCursorEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxSetCursorEventFunction, func) -#define wxNotifyEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxNotifyEventFunction, func) -#define wxHelpEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxHelpEventFunction, func) -#define wxContextMenuEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxContextMenuEventFunction, func) -#define wxMouseCaptureChangedEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxMouseCaptureChangedEventFunction, func) -#define wxMouseCaptureLostEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxMouseCaptureLostEventFunction, func) -#define wxClipboardTextEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxClipboardTextEventFunction, func) - -#endif // wxUSE_GUI - -// N.B. In GNU-WIN32, you *have* to take the address of a member function -// (use &) or the compiler crashes... - -#define wxDECLARE_EVENT_TABLE() \ - private: \ - static const wxEventTableEntry sm_eventTableEntries[]; \ - protected: \ - wxCLANG_WARNING_SUPPRESS(inconsistent-missing-override) \ - const wxEventTable* GetEventTable() const; \ - wxEventHashTable& GetEventHashTable() const; \ - wxCLANG_WARNING_RESTORE(inconsistent-missing-override) \ - static const wxEventTable sm_eventTable; \ - static wxEventHashTable sm_eventHashTable - -// N.B.: when building DLL with Borland C++ 5.5 compiler, you must initialize -// sm_eventTable before using it in GetEventTable() or the compiler gives -// E2233 (see http://groups.google.com/groups?selm=397dcc8a%241_2%40dnews) - -#define wxBEGIN_EVENT_TABLE(theClass, baseClass) \ - const wxEventTable theClass::sm_eventTable = \ - { &baseClass::sm_eventTable, &theClass::sm_eventTableEntries[0] }; \ - const wxEventTable *theClass::GetEventTable() const \ - { return &theClass::sm_eventTable; } \ - wxEventHashTable theClass::sm_eventHashTable(theClass::sm_eventTable); \ - wxEventHashTable &theClass::GetEventHashTable() const \ - { return theClass::sm_eventHashTable; } \ - const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ - -#define wxBEGIN_EVENT_TABLE_TEMPLATE1(theClass, baseClass, T1) \ - template \ - const wxEventTable theClass::sm_eventTable = \ - { &baseClass::sm_eventTable, &theClass::sm_eventTableEntries[0] }; \ - template \ - const wxEventTable *theClass::GetEventTable() const \ - { return &theClass::sm_eventTable; } \ - template \ - wxEventHashTable theClass::sm_eventHashTable(theClass::sm_eventTable); \ - template \ - wxEventHashTable &theClass::GetEventHashTable() const \ - { return theClass::sm_eventHashTable; } \ - template \ - const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ - -#define wxBEGIN_EVENT_TABLE_TEMPLATE2(theClass, baseClass, T1, T2) \ - template \ - const wxEventTable theClass::sm_eventTable = \ - { &baseClass::sm_eventTable, &theClass::sm_eventTableEntries[0] }; \ - template \ - const wxEventTable *theClass::GetEventTable() const \ - { return &theClass::sm_eventTable; } \ - template \ - wxEventHashTable theClass::sm_eventHashTable(theClass::sm_eventTable); \ - template \ - wxEventHashTable &theClass::GetEventHashTable() const \ - { return theClass::sm_eventHashTable; } \ - template \ - const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ - -#define wxBEGIN_EVENT_TABLE_TEMPLATE3(theClass, baseClass, T1, T2, T3) \ - template \ - const wxEventTable theClass::sm_eventTable = \ - { &baseClass::sm_eventTable, &theClass::sm_eventTableEntries[0] }; \ - template \ - const wxEventTable *theClass::GetEventTable() const \ - { return &theClass::sm_eventTable; } \ - template \ - wxEventHashTable theClass::sm_eventHashTable(theClass::sm_eventTable); \ - template \ - wxEventHashTable &theClass::GetEventHashTable() const \ - { return theClass::sm_eventHashTable; } \ - template \ - const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ - -#define wxBEGIN_EVENT_TABLE_TEMPLATE4(theClass, baseClass, T1, T2, T3, T4) \ - template \ - const wxEventTable theClass::sm_eventTable = \ - { &baseClass::sm_eventTable, &theClass::sm_eventTableEntries[0] }; \ - template \ - const wxEventTable *theClass::GetEventTable() const \ - { return &theClass::sm_eventTable; } \ - template \ - wxEventHashTable theClass::sm_eventHashTable(theClass::sm_eventTable); \ - template \ - wxEventHashTable &theClass::GetEventHashTable() const \ - { return theClass::sm_eventHashTable; } \ - template \ - const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ - -#define wxBEGIN_EVENT_TABLE_TEMPLATE5(theClass, baseClass, T1, T2, T3, T4, T5) \ - template \ - const wxEventTable theClass::sm_eventTable = \ - { &baseClass::sm_eventTable, &theClass::sm_eventTableEntries[0] }; \ - template \ - const wxEventTable *theClass::GetEventTable() const \ - { return &theClass::sm_eventTable; } \ - template \ - wxEventHashTable theClass::sm_eventHashTable(theClass::sm_eventTable); \ - template \ - wxEventHashTable &theClass::GetEventHashTable() const \ - { return theClass::sm_eventHashTable; } \ - template \ - const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ - -#define wxBEGIN_EVENT_TABLE_TEMPLATE7(theClass, baseClass, T1, T2, T3, T4, T5, T6, T7) \ - template \ - const wxEventTable theClass::sm_eventTable = \ - { &baseClass::sm_eventTable, &theClass::sm_eventTableEntries[0] }; \ - template \ - const wxEventTable *theClass::GetEventTable() const \ - { return &theClass::sm_eventTable; } \ - template \ - wxEventHashTable theClass::sm_eventHashTable(theClass::sm_eventTable); \ - template \ - wxEventHashTable &theClass::GetEventHashTable() const \ - { return theClass::sm_eventHashTable; } \ - template \ - const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ - -#define wxBEGIN_EVENT_TABLE_TEMPLATE8(theClass, baseClass, T1, T2, T3, T4, T5, T6, T7, T8) \ - template \ - const wxEventTable theClass::sm_eventTable = \ - { &baseClass::sm_eventTable, &theClass::sm_eventTableEntries[0] }; \ - template \ - const wxEventTable *theClass::GetEventTable() const \ - { return &theClass::sm_eventTable; } \ - template \ - wxEventHashTable theClass::sm_eventHashTable(theClass::sm_eventTable); \ - template \ - wxEventHashTable &theClass::GetEventHashTable() const \ - { return theClass::sm_eventHashTable; } \ - template \ - const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ - -#define wxEND_EVENT_TABLE() \ - wxDECLARE_EVENT_TABLE_TERMINATOR() }; - -/* - * Event table macros - */ - -// helpers for writing shorter code below: declare an event macro taking 2, 1 -// or none ids (the missing ids default to wxID_ANY) -// -// macro arguments: -// - evt one of wxEVT_XXX constants -// - id1, id2 ids of the first/last id -// - fn the function (should be cast to the right type) -#define wx__DECLARE_EVT2(evt, id1, id2, fn) \ - wxDECLARE_EVENT_TABLE_ENTRY(evt, id1, id2, fn, NULL), -#define wx__DECLARE_EVT1(evt, id, fn) \ - wx__DECLARE_EVT2(evt, id, wxID_ANY, fn) -#define wx__DECLARE_EVT0(evt, fn) \ - wx__DECLARE_EVT1(evt, wxID_ANY, fn) - - -// Generic events -#define EVT_CUSTOM(event, winid, func) \ - wx__DECLARE_EVT1(event, winid, wxEventHandler(func)) -#define EVT_CUSTOM_RANGE(event, id1, id2, func) \ - wx__DECLARE_EVT2(event, id1, id2, wxEventHandler(func)) - -// EVT_COMMAND -#define EVT_COMMAND(winid, event, func) \ - wx__DECLARE_EVT1(event, winid, wxCommandEventHandler(func)) - -#define EVT_COMMAND_RANGE(id1, id2, event, func) \ - wx__DECLARE_EVT2(event, id1, id2, wxCommandEventHandler(func)) - -#define EVT_NOTIFY(event, winid, func) \ - wx__DECLARE_EVT1(event, winid, wxNotifyEventHandler(func)) - -#define EVT_NOTIFY_RANGE(event, id1, id2, func) \ - wx__DECLARE_EVT2(event, id1, id2, wxNotifyEventHandler(func)) - -// Miscellaneous -#define EVT_SIZE(func) wx__DECLARE_EVT0(wxEVT_SIZE, wxSizeEventHandler(func)) -#define EVT_SIZING(func) wx__DECLARE_EVT0(wxEVT_SIZING, wxSizeEventHandler(func)) -#define EVT_MOVE(func) wx__DECLARE_EVT0(wxEVT_MOVE, wxMoveEventHandler(func)) -#define EVT_MOVING(func) wx__DECLARE_EVT0(wxEVT_MOVING, wxMoveEventHandler(func)) -#define EVT_MOVE_START(func) wx__DECLARE_EVT0(wxEVT_MOVE_START, wxMoveEventHandler(func)) -#define EVT_MOVE_END(func) wx__DECLARE_EVT0(wxEVT_MOVE_END, wxMoveEventHandler(func)) -#define EVT_CLOSE(func) wx__DECLARE_EVT0(wxEVT_CLOSE_WINDOW, wxCloseEventHandler(func)) -#define EVT_END_SESSION(func) wx__DECLARE_EVT0(wxEVT_END_SESSION, wxCloseEventHandler(func)) -#define EVT_QUERY_END_SESSION(func) wx__DECLARE_EVT0(wxEVT_QUERY_END_SESSION, wxCloseEventHandler(func)) -#define EVT_PAINT(func) wx__DECLARE_EVT0(wxEVT_PAINT, wxPaintEventHandler(func)) -#define EVT_NC_PAINT(func) wx__DECLARE_EVT0(wxEVT_NC_PAINT, wxNcPaintEventHandler(func)) -#define EVT_ERASE_BACKGROUND(func) wx__DECLARE_EVT0(wxEVT_ERASE_BACKGROUND, wxEraseEventHandler(func)) -#define EVT_CHAR(func) wx__DECLARE_EVT0(wxEVT_CHAR, wxCharEventHandler(func)) -#define EVT_KEY_DOWN(func) wx__DECLARE_EVT0(wxEVT_KEY_DOWN, wxKeyEventHandler(func)) -#define EVT_KEY_UP(func) wx__DECLARE_EVT0(wxEVT_KEY_UP, wxKeyEventHandler(func)) -#if wxUSE_HOTKEY -#define EVT_HOTKEY(winid, func) wx__DECLARE_EVT1(wxEVT_HOTKEY, winid, wxCharEventHandler(func)) -#endif -#define EVT_CHAR_HOOK(func) wx__DECLARE_EVT0(wxEVT_CHAR_HOOK, wxCharEventHandler(func)) -#define EVT_MENU_OPEN(func) wx__DECLARE_EVT0(wxEVT_MENU_OPEN, wxMenuEventHandler(func)) -#define EVT_MENU_CLOSE(func) wx__DECLARE_EVT0(wxEVT_MENU_CLOSE, wxMenuEventHandler(func)) -#define EVT_MENU_HIGHLIGHT(winid, func) wx__DECLARE_EVT1(wxEVT_MENU_HIGHLIGHT, winid, wxMenuEventHandler(func)) -#define EVT_MENU_HIGHLIGHT_ALL(func) wx__DECLARE_EVT0(wxEVT_MENU_HIGHLIGHT, wxMenuEventHandler(func)) -#define EVT_SET_FOCUS(func) wx__DECLARE_EVT0(wxEVT_SET_FOCUS, wxFocusEventHandler(func)) -#define EVT_KILL_FOCUS(func) wx__DECLARE_EVT0(wxEVT_KILL_FOCUS, wxFocusEventHandler(func)) -#define EVT_CHILD_FOCUS(func) wx__DECLARE_EVT0(wxEVT_CHILD_FOCUS, wxChildFocusEventHandler(func)) -#define EVT_ACTIVATE(func) wx__DECLARE_EVT0(wxEVT_ACTIVATE, wxActivateEventHandler(func)) -#define EVT_ACTIVATE_APP(func) wx__DECLARE_EVT0(wxEVT_ACTIVATE_APP, wxActivateEventHandler(func)) -#define EVT_HIBERNATE(func) wx__DECLARE_EVT0(wxEVT_HIBERNATE, wxActivateEventHandler(func)) -#define EVT_END_SESSION(func) wx__DECLARE_EVT0(wxEVT_END_SESSION, wxCloseEventHandler(func)) -#define EVT_QUERY_END_SESSION(func) wx__DECLARE_EVT0(wxEVT_QUERY_END_SESSION, wxCloseEventHandler(func)) -#define EVT_DROP_FILES(func) wx__DECLARE_EVT0(wxEVT_DROP_FILES, wxDropFilesEventHandler(func)) -#define EVT_INIT_DIALOG(func) wx__DECLARE_EVT0(wxEVT_INIT_DIALOG, wxInitDialogEventHandler(func)) -#define EVT_SYS_COLOUR_CHANGED(func) wx__DECLARE_EVT0(wxEVT_SYS_COLOUR_CHANGED, wxSysColourChangedEventHandler(func)) -#define EVT_DISPLAY_CHANGED(func) wx__DECLARE_EVT0(wxEVT_DISPLAY_CHANGED, wxDisplayChangedEventHandler(func)) -#define EVT_SHOW(func) wx__DECLARE_EVT0(wxEVT_SHOW, wxShowEventHandler(func)) -#define EVT_MAXIMIZE(func) wx__DECLARE_EVT0(wxEVT_MAXIMIZE, wxMaximizeEventHandler(func)) -#define EVT_ICONIZE(func) wx__DECLARE_EVT0(wxEVT_ICONIZE, wxIconizeEventHandler(func)) -#define EVT_NAVIGATION_KEY(func) wx__DECLARE_EVT0(wxEVT_NAVIGATION_KEY, wxNavigationKeyEventHandler(func)) -#define EVT_PALETTE_CHANGED(func) wx__DECLARE_EVT0(wxEVT_PALETTE_CHANGED, wxPaletteChangedEventHandler(func)) -#define EVT_QUERY_NEW_PALETTE(func) wx__DECLARE_EVT0(wxEVT_QUERY_NEW_PALETTE, wxQueryNewPaletteEventHandler(func)) -#define EVT_WINDOW_CREATE(func) wx__DECLARE_EVT0(wxEVT_CREATE, wxWindowCreateEventHandler(func)) -#define EVT_WINDOW_DESTROY(func) wx__DECLARE_EVT0(wxEVT_DESTROY, wxWindowDestroyEventHandler(func)) -#define EVT_SET_CURSOR(func) wx__DECLARE_EVT0(wxEVT_SET_CURSOR, wxSetCursorEventHandler(func)) -#define EVT_MOUSE_CAPTURE_CHANGED(func) wx__DECLARE_EVT0(wxEVT_MOUSE_CAPTURE_CHANGED, wxMouseCaptureChangedEventHandler(func)) -#define EVT_MOUSE_CAPTURE_LOST(func) wx__DECLARE_EVT0(wxEVT_MOUSE_CAPTURE_LOST, wxMouseCaptureLostEventHandler(func)) - -// Mouse events -#define EVT_LEFT_DOWN(func) wx__DECLARE_EVT0(wxEVT_LEFT_DOWN, wxMouseEventHandler(func)) -#define EVT_LEFT_UP(func) wx__DECLARE_EVT0(wxEVT_LEFT_UP, wxMouseEventHandler(func)) -#define EVT_MIDDLE_DOWN(func) wx__DECLARE_EVT0(wxEVT_MIDDLE_DOWN, wxMouseEventHandler(func)) -#define EVT_MIDDLE_UP(func) wx__DECLARE_EVT0(wxEVT_MIDDLE_UP, wxMouseEventHandler(func)) -#define EVT_RIGHT_DOWN(func) wx__DECLARE_EVT0(wxEVT_RIGHT_DOWN, wxMouseEventHandler(func)) -#define EVT_RIGHT_UP(func) wx__DECLARE_EVT0(wxEVT_RIGHT_UP, wxMouseEventHandler(func)) -#define EVT_MOTION(func) wx__DECLARE_EVT0(wxEVT_MOTION, wxMouseEventHandler(func)) -#define EVT_LEFT_DCLICK(func) wx__DECLARE_EVT0(wxEVT_LEFT_DCLICK, wxMouseEventHandler(func)) -#define EVT_MIDDLE_DCLICK(func) wx__DECLARE_EVT0(wxEVT_MIDDLE_DCLICK, wxMouseEventHandler(func)) -#define EVT_RIGHT_DCLICK(func) wx__DECLARE_EVT0(wxEVT_RIGHT_DCLICK, wxMouseEventHandler(func)) -#define EVT_LEAVE_WINDOW(func) wx__DECLARE_EVT0(wxEVT_LEAVE_WINDOW, wxMouseEventHandler(func)) -#define EVT_ENTER_WINDOW(func) wx__DECLARE_EVT0(wxEVT_ENTER_WINDOW, wxMouseEventHandler(func)) -#define EVT_MOUSEWHEEL(func) wx__DECLARE_EVT0(wxEVT_MOUSEWHEEL, wxMouseEventHandler(func)) -#define EVT_MOUSE_AUX1_DOWN(func) wx__DECLARE_EVT0(wxEVT_AUX1_DOWN, wxMouseEventHandler(func)) -#define EVT_MOUSE_AUX1_UP(func) wx__DECLARE_EVT0(wxEVT_AUX1_UP, wxMouseEventHandler(func)) -#define EVT_MOUSE_AUX1_DCLICK(func) wx__DECLARE_EVT0(wxEVT_AUX1_DCLICK, wxMouseEventHandler(func)) -#define EVT_MOUSE_AUX2_DOWN(func) wx__DECLARE_EVT0(wxEVT_AUX2_DOWN, wxMouseEventHandler(func)) -#define EVT_MOUSE_AUX2_UP(func) wx__DECLARE_EVT0(wxEVT_AUX2_UP, wxMouseEventHandler(func)) -#define EVT_MOUSE_AUX2_DCLICK(func) wx__DECLARE_EVT0(wxEVT_AUX2_DCLICK, wxMouseEventHandler(func)) -#define EVT_MAGNIFY(func) wx__DECLARE_EVT0(wxEVT_MAGNIFY, wxMouseEventHandler(func)) - -// All mouse events -#define EVT_MOUSE_EVENTS(func) \ - EVT_LEFT_DOWN(func) \ - EVT_LEFT_UP(func) \ - EVT_LEFT_DCLICK(func) \ - EVT_MIDDLE_DOWN(func) \ - EVT_MIDDLE_UP(func) \ - EVT_MIDDLE_DCLICK(func) \ - EVT_RIGHT_DOWN(func) \ - EVT_RIGHT_UP(func) \ - EVT_RIGHT_DCLICK(func) \ - EVT_MOUSE_AUX1_DOWN(func) \ - EVT_MOUSE_AUX1_UP(func) \ - EVT_MOUSE_AUX1_DCLICK(func) \ - EVT_MOUSE_AUX2_DOWN(func) \ - EVT_MOUSE_AUX2_UP(func) \ - EVT_MOUSE_AUX2_DCLICK(func) \ - EVT_MOTION(func) \ - EVT_LEAVE_WINDOW(func) \ - EVT_ENTER_WINDOW(func) \ - EVT_MOUSEWHEEL(func) \ - EVT_MAGNIFY(func) - -// Scrolling from wxWindow (sent to wxScrolledWindow) -#define EVT_SCROLLWIN_TOP(func) wx__DECLARE_EVT0(wxEVT_SCROLLWIN_TOP, wxScrollWinEventHandler(func)) -#define EVT_SCROLLWIN_BOTTOM(func) wx__DECLARE_EVT0(wxEVT_SCROLLWIN_BOTTOM, wxScrollWinEventHandler(func)) -#define EVT_SCROLLWIN_LINEUP(func) wx__DECLARE_EVT0(wxEVT_SCROLLWIN_LINEUP, wxScrollWinEventHandler(func)) -#define EVT_SCROLLWIN_LINEDOWN(func) wx__DECLARE_EVT0(wxEVT_SCROLLWIN_LINEDOWN, wxScrollWinEventHandler(func)) -#define EVT_SCROLLWIN_PAGEUP(func) wx__DECLARE_EVT0(wxEVT_SCROLLWIN_PAGEUP, wxScrollWinEventHandler(func)) -#define EVT_SCROLLWIN_PAGEDOWN(func) wx__DECLARE_EVT0(wxEVT_SCROLLWIN_PAGEDOWN, wxScrollWinEventHandler(func)) -#define EVT_SCROLLWIN_THUMBTRACK(func) wx__DECLARE_EVT0(wxEVT_SCROLLWIN_THUMBTRACK, wxScrollWinEventHandler(func)) -#define EVT_SCROLLWIN_THUMBRELEASE(func) wx__DECLARE_EVT0(wxEVT_SCROLLWIN_THUMBRELEASE, wxScrollWinEventHandler(func)) - -#define EVT_SCROLLWIN(func) \ - EVT_SCROLLWIN_TOP(func) \ - EVT_SCROLLWIN_BOTTOM(func) \ - EVT_SCROLLWIN_LINEUP(func) \ - EVT_SCROLLWIN_LINEDOWN(func) \ - EVT_SCROLLWIN_PAGEUP(func) \ - EVT_SCROLLWIN_PAGEDOWN(func) \ - EVT_SCROLLWIN_THUMBTRACK(func) \ - EVT_SCROLLWIN_THUMBRELEASE(func) - -// Scrolling from wxSlider and wxScrollBar -#define EVT_SCROLL_TOP(func) wx__DECLARE_EVT0(wxEVT_SCROLL_TOP, wxScrollEventHandler(func)) -#define EVT_SCROLL_BOTTOM(func) wx__DECLARE_EVT0(wxEVT_SCROLL_BOTTOM, wxScrollEventHandler(func)) -#define EVT_SCROLL_LINEUP(func) wx__DECLARE_EVT0(wxEVT_SCROLL_LINEUP, wxScrollEventHandler(func)) -#define EVT_SCROLL_LINEDOWN(func) wx__DECLARE_EVT0(wxEVT_SCROLL_LINEDOWN, wxScrollEventHandler(func)) -#define EVT_SCROLL_PAGEUP(func) wx__DECLARE_EVT0(wxEVT_SCROLL_PAGEUP, wxScrollEventHandler(func)) -#define EVT_SCROLL_PAGEDOWN(func) wx__DECLARE_EVT0(wxEVT_SCROLL_PAGEDOWN, wxScrollEventHandler(func)) -#define EVT_SCROLL_THUMBTRACK(func) wx__DECLARE_EVT0(wxEVT_SCROLL_THUMBTRACK, wxScrollEventHandler(func)) -#define EVT_SCROLL_THUMBRELEASE(func) wx__DECLARE_EVT0(wxEVT_SCROLL_THUMBRELEASE, wxScrollEventHandler(func)) -#define EVT_SCROLL_CHANGED(func) wx__DECLARE_EVT0(wxEVT_SCROLL_CHANGED, wxScrollEventHandler(func)) - -#define EVT_SCROLL(func) \ - EVT_SCROLL_TOP(func) \ - EVT_SCROLL_BOTTOM(func) \ - EVT_SCROLL_LINEUP(func) \ - EVT_SCROLL_LINEDOWN(func) \ - EVT_SCROLL_PAGEUP(func) \ - EVT_SCROLL_PAGEDOWN(func) \ - EVT_SCROLL_THUMBTRACK(func) \ - EVT_SCROLL_THUMBRELEASE(func) \ - EVT_SCROLL_CHANGED(func) - -// Scrolling from wxSlider and wxScrollBar, with an id -#define EVT_COMMAND_SCROLL_TOP(winid, func) wx__DECLARE_EVT1(wxEVT_SCROLL_TOP, winid, wxScrollEventHandler(func)) -#define EVT_COMMAND_SCROLL_BOTTOM(winid, func) wx__DECLARE_EVT1(wxEVT_SCROLL_BOTTOM, winid, wxScrollEventHandler(func)) -#define EVT_COMMAND_SCROLL_LINEUP(winid, func) wx__DECLARE_EVT1(wxEVT_SCROLL_LINEUP, winid, wxScrollEventHandler(func)) -#define EVT_COMMAND_SCROLL_LINEDOWN(winid, func) wx__DECLARE_EVT1(wxEVT_SCROLL_LINEDOWN, winid, wxScrollEventHandler(func)) -#define EVT_COMMAND_SCROLL_PAGEUP(winid, func) wx__DECLARE_EVT1(wxEVT_SCROLL_PAGEUP, winid, wxScrollEventHandler(func)) -#define EVT_COMMAND_SCROLL_PAGEDOWN(winid, func) wx__DECLARE_EVT1(wxEVT_SCROLL_PAGEDOWN, winid, wxScrollEventHandler(func)) -#define EVT_COMMAND_SCROLL_THUMBTRACK(winid, func) wx__DECLARE_EVT1(wxEVT_SCROLL_THUMBTRACK, winid, wxScrollEventHandler(func)) -#define EVT_COMMAND_SCROLL_THUMBRELEASE(winid, func) wx__DECLARE_EVT1(wxEVT_SCROLL_THUMBRELEASE, winid, wxScrollEventHandler(func)) -#define EVT_COMMAND_SCROLL_CHANGED(winid, func) wx__DECLARE_EVT1(wxEVT_SCROLL_CHANGED, winid, wxScrollEventHandler(func)) - -#define EVT_COMMAND_SCROLL(winid, func) \ - EVT_COMMAND_SCROLL_TOP(winid, func) \ - EVT_COMMAND_SCROLL_BOTTOM(winid, func) \ - EVT_COMMAND_SCROLL_LINEUP(winid, func) \ - EVT_COMMAND_SCROLL_LINEDOWN(winid, func) \ - EVT_COMMAND_SCROLL_PAGEUP(winid, func) \ - EVT_COMMAND_SCROLL_PAGEDOWN(winid, func) \ - EVT_COMMAND_SCROLL_THUMBTRACK(winid, func) \ - EVT_COMMAND_SCROLL_THUMBRELEASE(winid, func) \ - EVT_COMMAND_SCROLL_CHANGED(winid, func) - -// Convenience macros for commonly-used commands -#define EVT_CHECKBOX(winid, func) wx__DECLARE_EVT1(wxEVT_CHECKBOX, winid, wxCommandEventHandler(func)) -#define EVT_CHOICE(winid, func) wx__DECLARE_EVT1(wxEVT_CHOICE, winid, wxCommandEventHandler(func)) -#define EVT_LISTBOX(winid, func) wx__DECLARE_EVT1(wxEVT_LISTBOX, winid, wxCommandEventHandler(func)) -#define EVT_LISTBOX_DCLICK(winid, func) wx__DECLARE_EVT1(wxEVT_LISTBOX_DCLICK, winid, wxCommandEventHandler(func)) -#define EVT_MENU(winid, func) wx__DECLARE_EVT1(wxEVT_MENU, winid, wxCommandEventHandler(func)) -#define EVT_MENU_RANGE(id1, id2, func) wx__DECLARE_EVT2(wxEVT_MENU, id1, id2, wxCommandEventHandler(func)) -#define EVT_BUTTON(winid, func) wx__DECLARE_EVT1(wxEVT_BUTTON, winid, wxCommandEventHandler(func)) -#define EVT_SLIDER(winid, func) wx__DECLARE_EVT1(wxEVT_SLIDER, winid, wxCommandEventHandler(func)) -#define EVT_RADIOBOX(winid, func) wx__DECLARE_EVT1(wxEVT_RADIOBOX, winid, wxCommandEventHandler(func)) -#define EVT_RADIOBUTTON(winid, func) wx__DECLARE_EVT1(wxEVT_RADIOBUTTON, winid, wxCommandEventHandler(func)) -// EVT_SCROLLBAR is now obsolete since we use EVT_COMMAND_SCROLL... events -#define EVT_SCROLLBAR(winid, func) wx__DECLARE_EVT1(wxEVT_SCROLLBAR, winid, wxCommandEventHandler(func)) -#define EVT_VLBOX(winid, func) wx__DECLARE_EVT1(wxEVT_VLBOX, winid, wxCommandEventHandler(func)) -#define EVT_COMBOBOX(winid, func) wx__DECLARE_EVT1(wxEVT_COMBOBOX, winid, wxCommandEventHandler(func)) -#define EVT_TOOL(winid, func) wx__DECLARE_EVT1(wxEVT_TOOL, winid, wxCommandEventHandler(func)) -#define EVT_TOOL_DROPDOWN(winid, func) wx__DECLARE_EVT1(wxEVT_TOOL_DROPDOWN, winid, wxCommandEventHandler(func)) -#define EVT_TOOL_RANGE(id1, id2, func) wx__DECLARE_EVT2(wxEVT_TOOL, id1, id2, wxCommandEventHandler(func)) -#define EVT_TOOL_RCLICKED(winid, func) wx__DECLARE_EVT1(wxEVT_TOOL_RCLICKED, winid, wxCommandEventHandler(func)) -#define EVT_TOOL_RCLICKED_RANGE(id1, id2, func) wx__DECLARE_EVT2(wxEVT_TOOL_RCLICKED, id1, id2, wxCommandEventHandler(func)) -#define EVT_TOOL_ENTER(winid, func) wx__DECLARE_EVT1(wxEVT_TOOL_ENTER, winid, wxCommandEventHandler(func)) -#define EVT_CHECKLISTBOX(winid, func) wx__DECLARE_EVT1(wxEVT_CHECKLISTBOX, winid, wxCommandEventHandler(func)) -#define EVT_COMBOBOX_DROPDOWN(winid, func) wx__DECLARE_EVT1(wxEVT_COMBOBOX_DROPDOWN, winid, wxCommandEventHandler(func)) -#define EVT_COMBOBOX_CLOSEUP(winid, func) wx__DECLARE_EVT1(wxEVT_COMBOBOX_CLOSEUP, winid, wxCommandEventHandler(func)) - -// Generic command events -#define EVT_COMMAND_LEFT_CLICK(winid, func) wx__DECLARE_EVT1(wxEVT_COMMAND_LEFT_CLICK, winid, wxCommandEventHandler(func)) -#define EVT_COMMAND_LEFT_DCLICK(winid, func) wx__DECLARE_EVT1(wxEVT_COMMAND_LEFT_DCLICK, winid, wxCommandEventHandler(func)) -#define EVT_COMMAND_RIGHT_CLICK(winid, func) wx__DECLARE_EVT1(wxEVT_COMMAND_RIGHT_CLICK, winid, wxCommandEventHandler(func)) -#define EVT_COMMAND_RIGHT_DCLICK(winid, func) wx__DECLARE_EVT1(wxEVT_COMMAND_RIGHT_DCLICK, winid, wxCommandEventHandler(func)) -#define EVT_COMMAND_SET_FOCUS(winid, func) wx__DECLARE_EVT1(wxEVT_COMMAND_SET_FOCUS, winid, wxCommandEventHandler(func)) -#define EVT_COMMAND_KILL_FOCUS(winid, func) wx__DECLARE_EVT1(wxEVT_COMMAND_KILL_FOCUS, winid, wxCommandEventHandler(func)) -#define EVT_COMMAND_ENTER(winid, func) wx__DECLARE_EVT1(wxEVT_COMMAND_ENTER, winid, wxCommandEventHandler(func)) - -// Joystick events - -#define EVT_JOY_BUTTON_DOWN(func) wx__DECLARE_EVT0(wxEVT_JOY_BUTTON_DOWN, wxJoystickEventHandler(func)) -#define EVT_JOY_BUTTON_UP(func) wx__DECLARE_EVT0(wxEVT_JOY_BUTTON_UP, wxJoystickEventHandler(func)) -#define EVT_JOY_MOVE(func) wx__DECLARE_EVT0(wxEVT_JOY_MOVE, wxJoystickEventHandler(func)) -#define EVT_JOY_ZMOVE(func) wx__DECLARE_EVT0(wxEVT_JOY_ZMOVE, wxJoystickEventHandler(func)) - -// All joystick events -#define EVT_JOYSTICK_EVENTS(func) \ - EVT_JOY_BUTTON_DOWN(func) \ - EVT_JOY_BUTTON_UP(func) \ - EVT_JOY_MOVE(func) \ - EVT_JOY_ZMOVE(func) - -// Idle event -#define EVT_IDLE(func) wx__DECLARE_EVT0(wxEVT_IDLE, wxIdleEventHandler(func)) - -// Update UI event -#define EVT_UPDATE_UI(winid, func) wx__DECLARE_EVT1(wxEVT_UPDATE_UI, winid, wxUpdateUIEventHandler(func)) -#define EVT_UPDATE_UI_RANGE(id1, id2, func) wx__DECLARE_EVT2(wxEVT_UPDATE_UI, id1, id2, wxUpdateUIEventHandler(func)) - -// Help events -#define EVT_HELP(winid, func) wx__DECLARE_EVT1(wxEVT_HELP, winid, wxHelpEventHandler(func)) -#define EVT_HELP_RANGE(id1, id2, func) wx__DECLARE_EVT2(wxEVT_HELP, id1, id2, wxHelpEventHandler(func)) -#define EVT_DETAILED_HELP(winid, func) wx__DECLARE_EVT1(wxEVT_DETAILED_HELP, winid, wxHelpEventHandler(func)) -#define EVT_DETAILED_HELP_RANGE(id1, id2, func) wx__DECLARE_EVT2(wxEVT_DETAILED_HELP, id1, id2, wxHelpEventHandler(func)) - -// Context Menu Events -#define EVT_CONTEXT_MENU(func) wx__DECLARE_EVT0(wxEVT_CONTEXT_MENU, wxContextMenuEventHandler(func)) -#define EVT_COMMAND_CONTEXT_MENU(winid, func) wx__DECLARE_EVT1(wxEVT_CONTEXT_MENU, winid, wxContextMenuEventHandler(func)) - -// Clipboard text Events -#define EVT_TEXT_CUT(winid, func) wx__DECLARE_EVT1(wxEVT_TEXT_CUT, winid, wxClipboardTextEventHandler(func)) -#define EVT_TEXT_COPY(winid, func) wx__DECLARE_EVT1(wxEVT_TEXT_COPY, winid, wxClipboardTextEventHandler(func)) -#define EVT_TEXT_PASTE(winid, func) wx__DECLARE_EVT1(wxEVT_TEXT_PASTE, winid, wxClipboardTextEventHandler(func)) - -// Thread events -#define EVT_THREAD(id, func) wx__DECLARE_EVT1(wxEVT_THREAD, id, wxThreadEventHandler(func)) - -// ---------------------------------------------------------------------------- -// Helper functions -// ---------------------------------------------------------------------------- - -#if wxUSE_GUI - -// Find a window with the focus, that is also a descendant of the given window. -// This is used to determine the window to initially send commands to. -WXDLLIMPEXP_CORE wxWindow* wxFindFocusDescendant(wxWindow* ancestor); - -#endif // wxUSE_GUI - - -// ---------------------------------------------------------------------------- -// Compatibility macro aliases -// ---------------------------------------------------------------------------- - -// deprecated variants _not_ requiring a semicolon after them and without wx prefix -// (note that also some wx-prefixed macro do _not_ require a semicolon because -// it's not always possible to force the compiler to require it) - -#define DECLARE_EVENT_TABLE_ENTRY(type, winid, idLast, fn, obj) \ - wxDECLARE_EVENT_TABLE_ENTRY(type, winid, idLast, fn, obj) -#define DECLARE_EVENT_TABLE_TERMINATOR() wxDECLARE_EVENT_TABLE_TERMINATOR() -#define DECLARE_EVENT_TABLE() wxDECLARE_EVENT_TABLE(); -#define BEGIN_EVENT_TABLE(a,b) wxBEGIN_EVENT_TABLE(a,b) -#define BEGIN_EVENT_TABLE_TEMPLATE1(a,b,c) wxBEGIN_EVENT_TABLE_TEMPLATE1(a,b,c) -#define BEGIN_EVENT_TABLE_TEMPLATE2(a,b,c,d) wxBEGIN_EVENT_TABLE_TEMPLATE2(a,b,c,d) -#define BEGIN_EVENT_TABLE_TEMPLATE3(a,b,c,d,e) wxBEGIN_EVENT_TABLE_TEMPLATE3(a,b,c,d,e) -#define BEGIN_EVENT_TABLE_TEMPLATE4(a,b,c,d,e,f) wxBEGIN_EVENT_TABLE_TEMPLATE4(a,b,c,d,e,f) -#define BEGIN_EVENT_TABLE_TEMPLATE5(a,b,c,d,e,f,g) wxBEGIN_EVENT_TABLE_TEMPLATE5(a,b,c,d,e,f,g) -#define BEGIN_EVENT_TABLE_TEMPLATE6(a,b,c,d,e,f,g,h) wxBEGIN_EVENT_TABLE_TEMPLATE6(a,b,c,d,e,f,g,h) -#define END_EVENT_TABLE() wxEND_EVENT_TABLE() - -// other obsolete event declaration/definition macros; we don't need them any longer -// but we keep them for compatibility as it doesn't cost us anything anyhow -#define BEGIN_DECLARE_EVENT_TYPES() -#define END_DECLARE_EVENT_TYPES() -#define DECLARE_EXPORTED_EVENT_TYPE(expdecl, name, value) \ - extern expdecl const wxEventType name; -#define DECLARE_EVENT_TYPE(name, value) \ - DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_CORE, name, value) -#define DECLARE_LOCAL_EVENT_TYPE(name, value) \ - DECLARE_EXPORTED_EVENT_TYPE(wxEMPTY_PARAMETER_VALUE, name, value) -#define DEFINE_EVENT_TYPE(name) const wxEventType name = wxNewEventType(); -#define DEFINE_LOCAL_EVENT_TYPE(name) DEFINE_EVENT_TYPE(name) - -// alias for backward compatibility with 2.9.0: -#define wxEVT_COMMAND_THREAD wxEVT_THREAD -// other old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_BUTTON_CLICKED wxEVT_BUTTON -#define wxEVT_COMMAND_CHECKBOX_CLICKED wxEVT_CHECKBOX -#define wxEVT_COMMAND_CHOICE_SELECTED wxEVT_CHOICE -#define wxEVT_COMMAND_LISTBOX_SELECTED wxEVT_LISTBOX -#define wxEVT_COMMAND_LISTBOX_DOUBLECLICKED wxEVT_LISTBOX_DCLICK -#define wxEVT_COMMAND_CHECKLISTBOX_TOGGLED wxEVT_CHECKLISTBOX -#define wxEVT_COMMAND_MENU_SELECTED wxEVT_MENU -#define wxEVT_COMMAND_TOOL_CLICKED wxEVT_TOOL -#define wxEVT_COMMAND_SLIDER_UPDATED wxEVT_SLIDER -#define wxEVT_COMMAND_RADIOBOX_SELECTED wxEVT_RADIOBOX -#define wxEVT_COMMAND_RADIOBUTTON_SELECTED wxEVT_RADIOBUTTON -#define wxEVT_COMMAND_SCROLLBAR_UPDATED wxEVT_SCROLLBAR -#define wxEVT_COMMAND_VLBOX_SELECTED wxEVT_VLBOX -#define wxEVT_COMMAND_COMBOBOX_SELECTED wxEVT_COMBOBOX -#define wxEVT_COMMAND_TOOL_RCLICKED wxEVT_TOOL_RCLICKED -#define wxEVT_COMMAND_TOOL_DROPDOWN_CLICKED wxEVT_TOOL_DROPDOWN -#define wxEVT_COMMAND_TOOL_ENTER wxEVT_TOOL_ENTER -#define wxEVT_COMMAND_COMBOBOX_DROPDOWN wxEVT_COMBOBOX_DROPDOWN -#define wxEVT_COMMAND_COMBOBOX_CLOSEUP wxEVT_COMBOBOX_CLOSEUP -#define wxEVT_COMMAND_TEXT_COPY wxEVT_TEXT_COPY -#define wxEVT_COMMAND_TEXT_CUT wxEVT_TEXT_CUT -#define wxEVT_COMMAND_TEXT_PASTE wxEVT_TEXT_PASTE -#define wxEVT_COMMAND_TEXT_UPDATED wxEVT_TEXT - -#endif // _WX_EVENT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/eventfilter.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/eventfilter.h deleted file mode 100644 index 30eac4d3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/eventfilter.h +++ /dev/null @@ -1,71 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/eventfilter.h -// Purpose: wxEventFilter class declaration. -// Author: Vadim Zeitlin -// Created: 2011-11-21 -// Copyright: (c) 2011 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_EVENTFILTER_H_ -#define _WX_EVENTFILTER_H_ - -#include "wx/defs.h" - -class WXDLLIMPEXP_FWD_BASE wxEvent; -class WXDLLIMPEXP_FWD_BASE wxEvtHandler; - -// ---------------------------------------------------------------------------- -// wxEventFilter is used with wxEvtHandler::AddFilter() and ProcessEvent(). -// ---------------------------------------------------------------------------- - -class wxEventFilter -{ -public: - // Possible return values for FilterEvent(). - // - // Notice that the values of these enum elements are fixed due to backwards - // compatibility constraints. - enum - { - // Process event as usual. - Event_Skip = -1, - - // Don't process the event normally at all. - Event_Ignore = 0, - - // Event was already handled, don't process it normally. - Event_Processed = 1 - }; - - wxEventFilter() - { - m_next = NULL; - } - - virtual ~wxEventFilter() - { - wxASSERT_MSG( !m_next, "Forgot to call wxEvtHandler::RemoveFilter()?" ); - } - - // This method allows to filter all the events processed by the program, so - // you should try to return quickly from it to avoid slowing down the - // program to a crawl. - // - // Return value should be -1 to continue with the normal event processing, - // or true or false to stop further processing and pretend that the event - // had been already processed or won't be processed at all, respectively. - virtual int FilterEvent(wxEvent& event) = 0; - -private: - // Objects of this class are made to be stored in a linked list in - // wxEvtHandler so put the next node ponter directly in the class itself. - wxEventFilter* m_next; - - // And provide access to it for wxEvtHandler [only]. - friend class wxEvtHandler; - - wxDECLARE_NO_COPY_CLASS(wxEventFilter); -}; - -#endif // _WX_EVENTFILTER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/evtloop.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/evtloop.h deleted file mode 100644 index 00e6d097..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/evtloop.h +++ /dev/null @@ -1,452 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/evtloop.h -// Purpose: declares wxEventLoop class -// Author: Vadim Zeitlin -// Modified by: -// Created: 01.06.01 -// Copyright: (c) 2001 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_EVTLOOP_H_ -#define _WX_EVTLOOP_H_ - -#include "wx/event.h" -#include "wx/utils.h" - -// TODO: implement wxEventLoopSource for MSW (it should wrap a HANDLE and be -// monitored using MsgWaitForMultipleObjects()) -#if defined(__WXOSX__) || (defined(__UNIX__) && !defined(__WINDOWS__)) - #define wxUSE_EVENTLOOP_SOURCE 1 -#else - #define wxUSE_EVENTLOOP_SOURCE 0 -#endif - -#if wxUSE_EVENTLOOP_SOURCE - class wxEventLoopSource; - class wxEventLoopSourceHandler; -#endif - -/* - NOTE ABOUT wxEventLoopBase::YieldFor LOGIC - ------------------------------------------ - - The YieldFor() function helps to avoid re-entrancy problems and problems - caused by out-of-order event processing - (see "wxYield-like problems" and "wxProgressDialog+threading BUG" wx-dev threads). - - The logic behind YieldFor() is simple: it analyzes the queue of the native - events generated by the underlying GUI toolkit and picks out and processes - only those matching the given mask. - - It's important to note that YieldFor() is used to selectively process the - events generated by the NATIVE toolkit. - Events syntethized by wxWidgets code or by user code are instead selectively - processed thanks to the logic built into wxEvtHandler::ProcessPendingEvents(). - In fact, when wxEvtHandler::ProcessPendingEvents gets called from inside a - YieldFor() call, wxEventLoopBase::IsEventAllowedInsideYield is used to decide - if the pending events for that event handler can be processed. - If all the pending events associated with that event handler result as "not processable", - the event handler "delays" itself calling wxEventLoopBase::DelayPendingEventHandler - (so it's moved: m_handlersWithPendingEvents => m_handlersWithPendingDelayedEvents). - Last, wxEventLoopBase::ProcessPendingEvents() before exiting moves the delayed - event handlers back into the list of handlers with pending events - (m_handlersWithPendingDelayedEvents => m_handlersWithPendingEvents) so that - a later call to ProcessPendingEvents() (possibly outside the YieldFor() call) - will process all pending events as usual. -*/ - -// ---------------------------------------------------------------------------- -// wxEventLoopBase: interface for wxEventLoop -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxEventLoopBase -{ -public: - // trivial, but needed (because of wxEventLoopBase) ctor - wxEventLoopBase(); - - // dtor - virtual ~wxEventLoopBase() { } - - // use this to check whether the event loop was successfully created before - // using it - virtual bool IsOk() const { return true; } - - // returns true if this is the main loop - bool IsMain() const; - -#if wxUSE_EVENTLOOP_SOURCE - // create a new event loop source wrapping the given file descriptor and - // monitor it for events occurring on this descriptor in all event loops - static wxEventLoopSource * - AddSourceForFD(int fd, wxEventLoopSourceHandler *handler, int flags); -#endif // wxUSE_EVENTLOOP_SOURCE - - // dispatch&processing - // ------------------- - - // start the event loop, return the exit code when it is finished - // - // notice that wx ports should override DoRun(), this method is virtual - // only to allow overriding it in the user code for custom event loops - virtual int Run(); - - // is this event loop running now? - // - // notice that even if this event loop hasn't terminated yet but has just - // spawned a nested (e.g. modal) event loop, this would return false - bool IsRunning() const; - - // exit from the loop with the given exit code - // - // this can be only used to exit the currently running loop, use - // ScheduleExit() if this might not be the case - virtual void Exit(int rc = 0); - - // ask the event loop to exit with the given exit code, can be used even if - // this loop is not running right now but the loop must have been started, - // i.e. Run() should have been already called - virtual void ScheduleExit(int rc = 0) = 0; - - // return true if any events are available - virtual bool Pending() const = 0; - - // dispatch a single event, return false if we should exit from the loop - virtual bool Dispatch() = 0; - - // same as Dispatch() but doesn't wait for longer than the specified (in - // ms) timeout, return true if an event was processed, false if we should - // exit the loop or -1 if timeout expired - virtual int DispatchTimeout(unsigned long timeout) = 0; - - // implement this to wake up the loop: usually done by posting a dummy event - // to it (can be called from non main thread) - virtual void WakeUp() = 0; - - - // idle handling - // ------------- - - // make sure that idle events are sent again - virtual void WakeUpIdle(); - - // this virtual function is called when the application - // becomes idle and by default it forwards to wxApp::ProcessIdle() and - // while it can be overridden in a custom event loop, you must call the - // base class version to ensure that idle events are still generated - // - // it should return true if more idle events are needed, false if not - virtual bool ProcessIdle(); - - - // Yield-related hooks - // ------------------- - - // process all currently pending events right now - // - // if onlyIfNeeded is true, returns false without doing anything else if - // we're already inside Yield() - // - // WARNING: this function is dangerous as it can lead to unexpected - // reentrancies (i.e. when called from an event handler it - // may result in calling the same event handler again), use - // with _extreme_ care or, better, don't use at all! - bool Yield(bool onlyIfNeeded = false); - - // more selective version of Yield() - // - // notice that it is virtual for backwards-compatibility but new code - // should override DoYieldFor() and not YieldFor() itself - virtual bool YieldFor(long eventsToProcess); - - // returns true if the main thread is inside a Yield() call - virtual bool IsYielding() const - { return m_yieldLevel != 0; } - - // returns true if events of the given event category should be immediately - // processed inside a wxApp::Yield() call or rather should be queued for - // later processing by the main event loop - virtual bool IsEventAllowedInsideYield(wxEventCategory cat) const - { return (m_eventsToProcessInsideYield & cat) != 0; } - - // no SafeYield hooks since it uses wxWindow which is not available when wxUSE_GUI=0 - - - // active loop - // ----------- - - // return currently active (running) event loop, may be NULL - static wxEventLoopBase *GetActive() { return ms_activeLoop; } - - // set currently active (running) event loop - static void SetActive(wxEventLoopBase* loop); - - -protected: - // real implementation of Run() - virtual int DoRun() = 0; - - // And the real, port-specific, implementation of YieldFor(). - // - // The base class version is pure virtual to ensure that it is overridden - // in the derived classes but does have an implementation which processes - // pending events in wxApp if eventsToProcess allows it, and so should be - // called from the overridden version at an appropriate place (i.e. after - // processing the native events but before doing anything else that could - // be affected by pending events dispatching). - virtual void DoYieldFor(long eventsToProcess) = 0; - - // this function should be called before the event loop terminates, whether - // this happens normally (because of Exit() call) or abnormally (because of - // an exception thrown from inside the loop) - virtual void OnExit(); - - // Return true if we're currently inside our Run(), even if another nested - // event loop is currently running, unlike IsRunning() (which should have - // been really called IsActive() but it's too late to change this now). - bool IsInsideRun() const { return m_isInsideRun; } - - - // the pointer to currently active loop - static wxEventLoopBase *ms_activeLoop; - - // should we exit the loop? - bool m_shouldExit; - - // incremented each time on entering Yield() and decremented on leaving it - int m_yieldLevel; - - // the argument of the last call to YieldFor() - long m_eventsToProcessInsideYield; - -private: - // this flag is set on entry into Run() and reset before leaving it - bool m_isInsideRun; - - wxDECLARE_NO_COPY_CLASS(wxEventLoopBase); -}; - -#if defined(__WINDOWS__) || defined(__WXMAC__) || defined(__WXDFB__) || (defined(__UNIX__) && !defined(__WXOSX__)) - -// this class can be used to implement a standard event loop logic using -// Pending() and Dispatch() -// -// it also handles idle processing automatically -class WXDLLIMPEXP_BASE wxEventLoopManual : public wxEventLoopBase -{ -public: - wxEventLoopManual(); - - // sets the "should exit" flag and wakes up the loop so that it terminates - // soon - virtual void ScheduleExit(int rc = 0) wxOVERRIDE; - -protected: - // enters a loop calling OnNextIteration(), Pending() and Dispatch() and - // terminating when Exit() is called - virtual int DoRun() wxOVERRIDE; - - // may be overridden to perform some action at the start of each new event - // loop iteration - virtual void OnNextIteration() { } - - - // the loop exit code - int m_exitcode; - -private: - // process all already pending events and dispatch a new one (blocking - // until it appears in the event queue if necessary) - // - // returns the return value of Dispatch() - bool ProcessEvents(); - - wxDECLARE_NO_COPY_CLASS(wxEventLoopManual); -}; - -#endif // platforms using "manual" loop - -// we're moving away from old m_impl wxEventLoop model as otherwise the user -// code doesn't have access to platform-specific wxEventLoop methods and this -// can sometimes be very useful (e.g. under MSW this is necessary for -// integration with MFC) but currently this is not done for all ports yet (e.g. -// wxX11) so fall back to the old wxGUIEventLoop definition below for them - -#if defined(__DARWIN__) - // CoreFoundation-based event loop is currently in wxBase so include it in - // any case too (although maybe it actually shouldn't be there at all) - #include "wx/osx/core/evtloop.h" -#endif - -// include the header defining wxConsoleEventLoop -#if defined(__UNIX__) && !defined(__WINDOWS__) - #include "wx/unix/evtloop.h" -#elif defined(__WINDOWS__) - #include "wx/msw/evtloopconsole.h" -#endif - -#if wxUSE_GUI - -// include the appropriate header defining wxGUIEventLoop - -#if defined(__WXMSW__) - #include "wx/msw/evtloop.h" -#elif defined(__WXOSX__) - #include "wx/osx/evtloop.h" -#elif defined(__WXDFB__) - #include "wx/dfb/evtloop.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/evtloop.h" - #elif defined(__WXQT__) - #include "wx/qt/evtloop.h" -#else // other platform - -#include "wx/stopwatch.h" // for wxMilliClock_t - -class WXDLLIMPEXP_FWD_CORE wxEventLoopImpl; - -class WXDLLIMPEXP_CORE wxGUIEventLoop : public wxEventLoopBase -{ -public: - wxGUIEventLoop() { m_impl = NULL; } - virtual ~wxGUIEventLoop(); - - virtual void ScheduleExit(int rc = 0); - virtual bool Pending() const; - virtual bool Dispatch(); - virtual int DispatchTimeout(unsigned long timeout) - { - // TODO: this is, of course, horribly inefficient and a proper wait with - // timeout should be implemented for all ports natively... - const wxMilliClock_t timeEnd = wxGetLocalTimeMillis() + timeout; - for ( ;; ) - { - if ( Pending() ) - return Dispatch(); - - if ( wxGetLocalTimeMillis() >= timeEnd ) - return -1; - } - } - virtual void WakeUp() { } - -protected: - virtual int DoRun(); - virtual void DoYieldFor(long eventsToProcess); - - // the pointer to the port specific implementation class - wxEventLoopImpl *m_impl; - - wxDECLARE_NO_COPY_CLASS(wxGUIEventLoop); -}; - -#endif // platforms - -#endif // wxUSE_GUI - -#if wxUSE_GUI - // we use a class rather than a typedef because wxEventLoop is - // forward-declared in many places - class wxEventLoop : public wxGUIEventLoop { }; -#else // !wxUSE_GUI - // we can't define wxEventLoop differently in GUI and base libraries so use - // a #define to still allow writing wxEventLoop in the user code - #if wxUSE_CONSOLE_EVENTLOOP && (defined(__WINDOWS__) || defined(__UNIX__)) - #define wxEventLoop wxConsoleEventLoop - #else // we still must define it somehow for the code below... - #define wxEventLoop wxEventLoopBase - #endif -#endif - -inline bool wxEventLoopBase::IsRunning() const { return GetActive() == this; } - -#if wxUSE_GUI && !defined(__WXOSX__) -// ---------------------------------------------------------------------------- -// wxModalEventLoop -// ---------------------------------------------------------------------------- - -// this is a naive generic implementation which uses wxWindowDisabler to -// implement modality, we will surely need platform-specific implementations -// too, this generic implementation is here only temporarily to see how it -// works -class WXDLLIMPEXP_CORE wxModalEventLoop : public wxGUIEventLoop -{ -public: - wxModalEventLoop(wxWindow *winModal) - { - m_windowDisabler = new wxWindowDisabler(winModal); - } - -protected: - virtual void OnExit() wxOVERRIDE - { - delete m_windowDisabler; - m_windowDisabler = NULL; - - wxGUIEventLoop::OnExit(); - } - -private: - wxWindowDisabler *m_windowDisabler; -}; - -#endif //wxUSE_GUI - -// ---------------------------------------------------------------------------- -// wxEventLoopActivator: helper class for wxEventLoop implementations -// ---------------------------------------------------------------------------- - -// this object sets the wxEventLoop given to the ctor as the currently active -// one and unsets it in its dtor, this is especially useful in presence of -// exceptions but is more tidy even when we don't use them -class wxEventLoopActivator -{ -public: - wxEventLoopActivator(wxEventLoopBase *evtLoop) - { - m_evtLoopOld = wxEventLoopBase::GetActive(); - wxEventLoopBase::SetActive(evtLoop); - } - - ~wxEventLoopActivator() - { - // restore the previously active event loop - wxEventLoopBase::SetActive(m_evtLoopOld); - } - -private: - wxEventLoopBase *m_evtLoopOld; -}; - -#if wxUSE_GUI || wxUSE_CONSOLE_EVENTLOOP - -class wxEventLoopGuarantor -{ -public: - wxEventLoopGuarantor() - { - m_evtLoopNew = NULL; - if (!wxEventLoop::GetActive()) - { - m_evtLoopNew = new wxEventLoop; - wxEventLoop::SetActive(m_evtLoopNew); - } - } - - ~wxEventLoopGuarantor() - { - if (m_evtLoopNew) - { - wxEventLoop::SetActive(NULL); - delete m_evtLoopNew; - } - } - -private: - wxEventLoop *m_evtLoopNew; -}; - -#endif // wxUSE_GUI || wxUSE_CONSOLE_EVENTLOOP - -#endif // _WX_EVTLOOP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/evtloopsrc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/evtloopsrc.h deleted file mode 100644 index 6b7f2b1f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/evtloopsrc.h +++ /dev/null @@ -1,104 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/evtloopsrc.h -// Purpose: declaration of wxEventLoopSource class -// Author: Vadim Zeitlin -// Created: 2009-10-21 -// Copyright: (c) 2009 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_EVTLOOPSRC_H_ -#define _WX_EVTLOOPSRC_H_ - -// Include the header to get wxUSE_EVENTLOOP_SOURCE definition from it. -#include "wx/evtloop.h" -// ---------------------------------------------------------------------------- -// wxEventLoopSource: a source of events which may be added to wxEventLoop -// ---------------------------------------------------------------------------- - -// TODO: refactor wxSocket under Unix to reuse wxEventLoopSource instead of -// duplicating much of its logic -// -// TODO: freeze the API and document it - -#if wxUSE_EVENTLOOP_SOURCE - -#define wxTRACE_EVT_SOURCE "EventSource" - -// handler used to process events on event loop sources -class wxEventLoopSourceHandler -{ -public: - // called when descriptor is available for non-blocking read - virtual void OnReadWaiting() = 0; - - // called when descriptor is available for non-blocking write - virtual void OnWriteWaiting() = 0; - - // called when there is exception on descriptor - virtual void OnExceptionWaiting() = 0; - - // virtual dtor for the base class - virtual ~wxEventLoopSourceHandler() { } -}; - -// flags describing which kind of IO events we're interested in -enum -{ - wxEVENT_SOURCE_INPUT = 0x01, - wxEVENT_SOURCE_OUTPUT = 0x02, - wxEVENT_SOURCE_EXCEPTION = 0x04, - wxEVENT_SOURCE_ALL = wxEVENT_SOURCE_INPUT | - wxEVENT_SOURCE_OUTPUT | - wxEVENT_SOURCE_EXCEPTION -}; - -// wxEventLoopSource itself is an ABC and can't be created directly, currently -// the only way to create it is by using wxEventLoop::AddSourceForFD(). -class wxEventLoopSource -{ -public: - // dtor is pure virtual because it must be overridden to remove the source - // from the event loop monitoring it - virtual ~wxEventLoopSource() = 0; - - void SetHandler(wxEventLoopSourceHandler* handler) { m_handler = handler; } - wxEventLoopSourceHandler* GetHandler() const { return m_handler; } - - void SetFlags(int flags) { m_flags = flags; } - int GetFlags() const { return m_flags; } - -protected: - // ctor is only used by the derived classes - wxEventLoopSource(wxEventLoopSourceHandler *handler, int flags) - : m_handler(handler), - m_flags(flags) - { - } - - wxEventLoopSourceHandler* m_handler; - int m_flags; - - wxDECLARE_NO_COPY_CLASS(wxEventLoopSource); -}; - -inline wxEventLoopSource::~wxEventLoopSource() { } - -#if defined(__UNIX__) - #include "wx/unix/evtloopsrc.h" -#endif // __UNIX__ - -#if defined(__WXGTK20__) - #include "wx/gtk/evtloopsrc.h" -#endif - -#if defined(__DARWIN__) - #include "wx/osx/evtloopsrc.h" -#elif defined(__WXQT__) - #include "wx/unix/evtloopsrc.h" -#endif - -#endif // wxUSE_EVENTLOOP_SOURCE - -#endif // _WX_EVTLOOPSRC_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/except.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/except.h deleted file mode 100644 index 75589163..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/except.h +++ /dev/null @@ -1,40 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/except.h -// Purpose: C++ exception related stuff -// Author: Vadim Zeitlin -// Modified by: -// Created: 17.09.2003 -// Copyright: (c) 2003 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_EXCEPT_H_ -#define _WX_EXCEPT_H_ - -#include "wx/defs.h" - -// ---------------------------------------------------------------------------- -// macros working whether wxUSE_EXCEPTIONS is 0 or 1 -// ---------------------------------------------------------------------------- - -// even if the library itself was compiled with exceptions support, the user -// code using it might be compiling with a compiler switch disabling them in -// which cases we shouldn't use try/catch in the headers -- this results in -// compilation errors in e.g. wx/scopeguard.h with at least g++ 4 -#if !wxUSE_EXCEPTIONS || \ - (defined(__GNUG__) && !defined(__EXCEPTIONS)) - #ifndef wxNO_EXCEPTIONS - #define wxNO_EXCEPTIONS - #endif -#endif - -#ifdef wxNO_EXCEPTIONS - #define wxTRY - #define wxCATCH_ALL(code) -#else // do use exceptions - #define wxTRY try - #define wxCATCH_ALL(code) catch ( ... ) { code } -#endif // wxNO_EXCEPTIONS/!wxNO_EXCEPTIONS - -#endif // _WX_EXCEPT_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fdrepdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fdrepdlg.h deleted file mode 100644 index 1c7f46f5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fdrepdlg.h +++ /dev/null @@ -1,203 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/fdrepdlg.h -// Purpose: wxFindReplaceDialog class -// Author: Markus Greither and Vadim Zeitlin -// Modified by: -// Created: 23/03/2001 -// Copyright: (c) Markus Greither -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FINDREPLACEDLG_H_ -#define _WX_FINDREPLACEDLG_H_ - -#include "wx/defs.h" - -#if wxUSE_FINDREPLDLG - -#include "wx/dialog.h" - -class WXDLLIMPEXP_FWD_CORE wxFindDialogEvent; -class WXDLLIMPEXP_FWD_CORE wxFindReplaceDialog; -class WXDLLIMPEXP_FWD_CORE wxFindReplaceData; -class WXDLLIMPEXP_FWD_CORE wxFindReplaceDialogImpl; - -// ---------------------------------------------------------------------------- -// Flags for wxFindReplaceData.Flags -// ---------------------------------------------------------------------------- - -// flages used by wxFindDialogEvent::GetFlags() -enum wxFindReplaceFlags -{ - // downward search/replace selected (otherwise - upwards) - wxFR_DOWN = 1, - - // whole word search/replace selected - wxFR_WHOLEWORD = 2, - - // case sensitive search/replace selected (otherwise - case insensitive) - wxFR_MATCHCASE = 4 -}; - -// these flags can be specified in wxFindReplaceDialog ctor or Create() -enum wxFindReplaceDialogStyles -{ - // replace dialog (otherwise find dialog) - wxFR_REPLACEDIALOG = 1, - - // don't allow changing the search direction - wxFR_NOUPDOWN = 2, - - // don't allow case sensitive searching - wxFR_NOMATCHCASE = 4, - - // don't allow whole word searching - wxFR_NOWHOLEWORD = 8 -}; - -// ---------------------------------------------------------------------------- -// wxFindReplaceData: holds Setup Data/Feedback Data for wxFindReplaceDialog -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFindReplaceData : public wxObject -{ -public: - wxFindReplaceData() { Init(); } - wxFindReplaceData(wxUint32 flags) { Init(); SetFlags(flags); } - - // accessors - const wxString& GetFindString() const { return m_FindWhat; } - const wxString& GetReplaceString() const { return m_ReplaceWith; } - - int GetFlags() const { return m_Flags; } - - // setters: may only be called before showing the dialog, no effect later - void SetFlags(wxUint32 flags) { m_Flags = flags; } - - void SetFindString(const wxString& str) { m_FindWhat = str; } - void SetReplaceString(const wxString& str) { m_ReplaceWith = str; } - -protected: - void Init(); - -private: - wxUint32 m_Flags; - wxString m_FindWhat, - m_ReplaceWith; - - friend class wxFindReplaceDialogBase; -}; - -// ---------------------------------------------------------------------------- -// wxFindReplaceDialogBase -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFindReplaceDialogBase : public wxDialog -{ -public: - // ctors and such - wxFindReplaceDialogBase() { m_FindReplaceData = NULL; } - wxFindReplaceDialogBase(wxWindow * WXUNUSED(parent), - wxFindReplaceData *data, - const wxString& WXUNUSED(title), - int WXUNUSED(style) = 0) - { - m_FindReplaceData = data; - } - - virtual ~wxFindReplaceDialogBase(); - - // find dialog data access - const wxFindReplaceData *GetData() const { return m_FindReplaceData; } - void SetData(wxFindReplaceData *data) { m_FindReplaceData = data; } - - // implementation only, don't use - void Send(wxFindDialogEvent& event); - -protected: - wxFindReplaceData *m_FindReplaceData; - - // the last string we searched for - wxString m_lastSearch; - - wxDECLARE_NO_COPY_CLASS(wxFindReplaceDialogBase); -}; - -// include wxFindReplaceDialog declaration -#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) - #include "wx/msw/fdrepdlg.h" -#else - #define wxGenericFindReplaceDialog wxFindReplaceDialog - - #include "wx/generic/fdrepdlg.h" -#endif - -// ---------------------------------------------------------------------------- -// wxFindReplaceDialog events -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFindDialogEvent : public wxCommandEvent -{ -public: - wxFindDialogEvent(wxEventType commandType = wxEVT_NULL, int id = 0) - : wxCommandEvent(commandType, id) { } - wxFindDialogEvent(const wxFindDialogEvent& event) - : wxCommandEvent(event), m_strReplace(event.m_strReplace) { } - - int GetFlags() const { return GetInt(); } - wxString GetFindString() const { return GetString(); } - const wxString& GetReplaceString() const { return m_strReplace; } - - wxFindReplaceDialog *GetDialog() const - { return wxStaticCast(GetEventObject(), wxFindReplaceDialog); } - - // implementation only - void SetFlags(int flags) { SetInt(flags); } - void SetFindString(const wxString& str) { SetString(str); } - void SetReplaceString(const wxString& str) { m_strReplace = str; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxFindDialogEvent(*this); } - -private: - wxString m_strReplace; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxFindDialogEvent); -}; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_FIND, wxFindDialogEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_FIND_NEXT, wxFindDialogEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_FIND_REPLACE, wxFindDialogEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_FIND_REPLACE_ALL, wxFindDialogEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_FIND_CLOSE, wxFindDialogEvent ); - -typedef void (wxEvtHandler::*wxFindDialogEventFunction)(wxFindDialogEvent&); - -#define wxFindDialogEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxFindDialogEventFunction, func) - -#define EVT_FIND(id, fn) \ - wx__DECLARE_EVT1(wxEVT_FIND, id, wxFindDialogEventHandler(fn)) - -#define EVT_FIND_NEXT(id, fn) \ - wx__DECLARE_EVT1(wxEVT_FIND_NEXT, id, wxFindDialogEventHandler(fn)) - -#define EVT_FIND_REPLACE(id, fn) \ - wx__DECLARE_EVT1(wxEVT_FIND_REPLACE, id, wxFindDialogEventHandler(fn)) - -#define EVT_FIND_REPLACE_ALL(id, fn) \ - wx__DECLARE_EVT1(wxEVT_FIND_REPLACE_ALL, id, wxFindDialogEventHandler(fn)) - -#define EVT_FIND_CLOSE(id, fn) \ - wx__DECLARE_EVT1(wxEVT_FIND_CLOSE, id, wxFindDialogEventHandler(fn)) - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_FIND wxEVT_FIND -#define wxEVT_COMMAND_FIND_NEXT wxEVT_FIND_NEXT -#define wxEVT_COMMAND_FIND_REPLACE wxEVT_FIND_REPLACE -#define wxEVT_COMMAND_FIND_REPLACE_ALL wxEVT_FIND_REPLACE_ALL -#define wxEVT_COMMAND_FIND_CLOSE wxEVT_FIND_CLOSE - -#endif // wxUSE_FINDREPLDLG - -#endif - // _WX_FDREPDLG_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/features.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/features.h deleted file mode 100644 index 46ac758c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/features.h +++ /dev/null @@ -1,111 +0,0 @@ -/** -* Name: wx/features.h -* Purpose: test macros for the features which might be available in some -* wxWidgets ports but not others -* Author: Vadim Zeitlin -* Modified by: Ryan Norton (Converted to C) -* Created: 18.03.02 -* Copyright: (c) 2002 Vadim Zeitlin -* Licence: wxWindows licence -*/ - -/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ - -#ifndef _WX_FEATURES_H_ -#define _WX_FEATURES_H_ - -/* radio menu items are currently not implemented in wxMotif, use this - symbol (kept for compatibility from the time when they were not implemented - under other platforms as well) to test for this */ -#if !defined(__WXMOTIF__) - #define wxHAS_RADIO_MENU_ITEMS -#else - #undef wxHAS_RADIO_MENU_ITEMS -#endif - -/* the raw keyboard codes are generated under wxGTK and wxMSW only */ -#if defined(__WXGTK__) || defined(__WXMSW__) || defined(__WXMAC__) \ - || defined(__WXDFB__) - #define wxHAS_RAW_KEY_CODES -#else - #undef wxHAS_RAW_KEY_CODES -#endif - -/* taskbar is implemented in the major ports */ -#if defined(__WXMSW__) \ - || defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXX11__) \ - || defined(__WXOSX_MAC__) || defined(__WXQT__) - #define wxHAS_TASK_BAR_ICON -#else - #undef wxUSE_TASKBARICON - #define wxUSE_TASKBARICON 0 - #undef wxHAS_TASK_BAR_ICON -#endif - -/* wxIconLocation appeared in the middle of 2.5.0 so it's handy to have a */ -/* separate define for it */ -#define wxHAS_ICON_LOCATION - -/* same for wxCrashReport */ -#ifdef __WXMSW__ - #define wxHAS_CRASH_REPORT -#else - #undef wxHAS_CRASH_REPORT -#endif - -/* wxRE_ADVANCED is not always available, depending on regex library used - * (it's unavailable only if compiling via configure against system library) */ -#ifndef WX_NO_REGEX_ADVANCED - #define wxHAS_REGEX_ADVANCED -#else - #undef wxHAS_REGEX_ADVANCED -#endif - -/* Pango-based ports and wxDFB use UTF-8 for text and font encodings - * internally and so their fonts can handle any encodings: */ -#if wxUSE_PANGO || defined(__WXDFB__) - #define wxHAS_UTF8_FONTS -#endif - -/* This is defined when the underlying toolkit handles tab traversal natively. - Otherwise we implement it ourselves in wxControlContainer. */ -#if defined(__WXGTK20__) || defined(__WXQT__) - #define wxHAS_NATIVE_TAB_TRAVERSAL -#endif - -/* This is defined when the compiler provides some type of extended locale - functions. Otherwise, we implement them ourselves to only support the - 'C' locale */ -#if defined(HAVE_LOCALE_T) || \ - (wxCHECK_VISUALC_VERSION(8)) - #define wxHAS_XLOCALE_SUPPORT -#else - #undef wxHAS_XLOCALE_SUPPORT -#endif - -/* Direct access to bitmap data is not implemented in all ports yet */ -#if defined(__WXGTK20__) || defined(__WXMAC__) || defined(__WXDFB__) || \ - defined(__WXMSW__) || defined(__WXQT__) - - /* - HP aCC for PA-RISC can't deal with templates in wx/rawbmp.h. - */ - #if !(defined(__HP_aCC) && defined(__hppa)) - #define wxHAS_RAW_BITMAP - #endif -#endif - -/* also define deprecated synonym which exists for compatibility only */ -#ifdef wxHAS_RAW_BITMAP - #define wxHAVE_RAW_BITMAP -#endif - - -// Previously this symbol wasn't defined for all compilers as Bind() couldn't -// be implemented for some of them (notably MSVC 6), but this is not the case -// any more and Bind() is always implemented when using any currently supported -// compiler, so this symbol exists purely for compatibility. -#define wxHAS_EVENT_BIND - -#endif /* _WX_FEATURES_H_ */ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ffile.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ffile.h deleted file mode 100644 index 91a7c28e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ffile.h +++ /dev/null @@ -1,109 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/ffile.h -// Purpose: wxFFile - encapsulates "FILE *" stream -// Author: Vadim Zeitlin -// Modified by: -// Created: 14.07.99 -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FFILE_H_ -#define _WX_FFILE_H_ - -#include "wx/defs.h" // for wxUSE_FFILE - -#if wxUSE_FFILE - -#include "wx/string.h" -#include "wx/filefn.h" -#include "wx/convauto.h" - -#include - -// ---------------------------------------------------------------------------- -// class wxFFile: standard C stream library IO -// -// NB: for space efficiency this class has no virtual functions, including -// dtor which is _not_ virtual, so it shouldn't be used as a base class. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxFFile -{ -public: - // ctors - // ----- - // def ctor - wxFFile() { m_fp = NULL; } - // open specified file (may fail, use IsOpened()) - wxFFile(const wxString& filename, const wxString& mode = wxT("r")); - // attach to (already opened) file - wxFFile(FILE *lfp) { m_fp = lfp; } - - // open/close - // open a file (existing or not - the mode controls what happens) - bool Open(const wxString& filename, const wxString& mode = wxT("r")); - // closes the opened file (this is a NOP if not opened) - bool Close(); - - // assign an existing file descriptor and get it back from wxFFile object - void Attach(FILE *lfp, const wxString& name = wxEmptyString) - { Close(); m_fp = lfp; m_name = name; } - FILE* Detach() { FILE* fpOld = m_fp; m_fp = NULL; return fpOld; } - FILE *fp() const { return m_fp; } - - // read/write (unbuffered) - // read all data from the file into a string (useful for text files) - bool ReadAll(wxString *str, const wxMBConv& conv = wxConvAuto()); - // returns number of bytes read - use Eof() and Error() to see if an error - // occurred or not - size_t Read(void *pBuf, size_t nCount); - // returns the number of bytes written - size_t Write(const void *pBuf, size_t nCount); - // returns true on success - bool Write(const wxString& s, const wxMBConv& conv = wxConvAuto()); - // flush data not yet written - bool Flush(); - - // file pointer operations (return ofsInvalid on failure) - // move ptr ofs bytes related to start/current pos/end of file - bool Seek(wxFileOffset ofs, wxSeekMode mode = wxFromStart); - // move ptr to ofs bytes before the end - bool SeekEnd(wxFileOffset ofs = 0) { return Seek(ofs, wxFromEnd); } - // get current position in the file - wxFileOffset Tell() const; - // get current file length - wxFileOffset Length() const; - - // simple accessors: note that Eof() and Error() may only be called if - // IsOpened()! - // is file opened? - bool IsOpened() const { return m_fp != NULL; } - // is end of file reached? - bool Eof() const { return feof(m_fp) != 0; } - // has an error occurred? - bool Error() const { return ferror(m_fp) != 0; } - // get the file name - const wxString& GetName() const { return m_name; } - // type such as disk or pipe - wxFileKind GetKind() const { return wxGetFileKind(m_fp); } - - // dtor closes the file if opened - ~wxFFile() { Close(); } - -private: - // copy ctor and assignment operator are private because it doesn't make - // sense to copy files this way: attempt to do it will provoke a compile-time - // error. - wxFFile(const wxFFile&); - wxFFile& operator=(const wxFFile&); - - FILE *m_fp; // IO stream or NULL if not opened - - wxString m_name; // the name of the file (for diagnostic messages) -}; - -#endif // wxUSE_FFILE - -#endif // _WX_FFILE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/file.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/file.h deleted file mode 100644 index 00ac471a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/file.h +++ /dev/null @@ -1,190 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/file.h -// Purpose: wxFile - encapsulates low-level "file descriptor" -// wxTempFile - safely replace the old file -// Author: Vadim Zeitlin -// Modified by: -// Created: 29/01/98 -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILEH__ -#define _WX_FILEH__ - -#include "wx/defs.h" - -#if wxUSE_FILE - -#include "wx/string.h" -#include "wx/filefn.h" -#include "wx/convauto.h" - -// ---------------------------------------------------------------------------- -// class wxFile: raw file IO -// -// NB: for space efficiency this class has no virtual functions, including -// dtor which is _not_ virtual, so it shouldn't be used as a base class. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxFile -{ -public: - // more file constants - // ------------------- - // opening mode - enum OpenMode { read, write, read_write, write_append, write_excl }; - // standard values for file descriptor - enum { fd_invalid = -1, fd_stdin, fd_stdout, fd_stderr }; - - // static functions - // ---------------- - // check whether a regular file by this name exists - static bool Exists(const wxString& name); - // check whether we can access the given file in given mode - // (only read and write make sense here) - static bool Access(const wxString& name, OpenMode mode); - - // ctors - // ----- - // def ctor - wxFile() { m_fd = fd_invalid; m_lasterror = 0; } - // open specified file (may fail, use IsOpened()) - wxFile(const wxString& fileName, OpenMode mode = read); - // attach to (already opened) file - wxFile(int lfd) { m_fd = lfd; m_lasterror = 0; } - - // open/close - // create a new file (with the default value of bOverwrite, it will fail if - // the file already exists, otherwise it will overwrite it and succeed) - bool Create(const wxString& fileName, bool bOverwrite = false, - int access = wxS_DEFAULT); - bool Open(const wxString& fileName, OpenMode mode = read, - int access = wxS_DEFAULT); - bool Close(); // Close is a NOP if not opened - - // assign an existing file descriptor and get it back from wxFile object - void Attach(int lfd) { Close(); m_fd = lfd; m_lasterror = 0; } - int Detach() { int fdOld = m_fd; m_fd = fd_invalid; return fdOld; } - int fd() const { return m_fd; } - - // read/write (unbuffered) - // read all data from the file into a string (useful for text files) - bool ReadAll(wxString *str, const wxMBConv& conv = wxConvAuto()); - // returns number of bytes read or wxInvalidOffset on error - ssize_t Read(void *pBuf, size_t nCount); - // returns the number of bytes written - size_t Write(const void *pBuf, size_t nCount); - // returns true on success - bool Write(const wxString& s, const wxMBConv& conv = wxConvAuto()); - // flush data not yet written - bool Flush(); - - // file pointer operations (return wxInvalidOffset on failure) - // move ptr ofs bytes related to start/current offset/end of file - wxFileOffset Seek(wxFileOffset ofs, wxSeekMode mode = wxFromStart); - // move ptr to ofs bytes before the end - wxFileOffset SeekEnd(wxFileOffset ofs = 0) { return Seek(ofs, wxFromEnd); } - // get current offset - wxFileOffset Tell() const; - // get current file length - wxFileOffset Length() const; - - // simple accessors - // is file opened? - bool IsOpened() const { return m_fd != fd_invalid; } - // is end of file reached? - bool Eof() const; - // has an error occurred? - bool Error() const { return m_lasterror != 0; } - // get last errno - int GetLastError() const { return m_lasterror; } - // reset error state - void ClearLastError() { m_lasterror = 0; } - // type such as disk or pipe - wxFileKind GetKind() const { return wxGetFileKind(m_fd); } - - - // dtor closes the file if opened - ~wxFile() { Close(); } - -private: - // copy ctor and assignment operator are private because - // it doesn't make sense to copy files this way: - // attempt to do it will provoke a compile-time error. - wxFile(const wxFile&); - wxFile& operator=(const wxFile&); - - // Copy the value of errno into m_lasterror if rc == -1 and return true in - // this case (indicating that we've got an error). Otherwise return false. - // - // Notice that we use the possibly 64 bit wxFileOffset instead of int here so - // that it works for checking the result of functions such as tell() too. - bool CheckForError(wxFileOffset rc) const; - - - int m_fd; // file descriptor or INVALID_FD if not opened - int m_lasterror; // errno value of last error -}; - -// ---------------------------------------------------------------------------- -// class wxTempFile: if you want to replace another file, create an instance -// of wxTempFile passing the name of the file to be replaced to the ctor. Then -// you can write to wxTempFile and call Commit() function to replace the old -// file (and close this one) or call Discard() to cancel the modification. If -// you call neither of them, dtor will call Discard(). -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxTempFile -{ -public: - // ctors - // default - wxTempFile() { } - // associates the temp file with the file to be replaced and opens it - wxTempFile(const wxString& strName); - - // open the temp file (strName is the name of file to be replaced) - bool Open(const wxString& strName); - - // is the file opened? - bool IsOpened() const { return m_file.IsOpened(); } - // get current file length - wxFileOffset Length() const { return m_file.Length(); } - // move ptr ofs bytes related to start/current offset/end of file - wxFileOffset Seek(wxFileOffset ofs, wxSeekMode mode = wxFromStart) - { return m_file.Seek(ofs, mode); } - // get current offset - wxFileOffset Tell() const { return m_file.Tell(); } - - // I/O (both functions return true on success, false on failure) - bool Write(const void *p, size_t n) { return m_file.Write(p, n) == n; } - bool Write(const wxString& str, const wxMBConv& conv = wxMBConvUTF8()) - { return m_file.Write(str, conv); } - - // flush data: can be called before closing file to ensure that data was - // correctly written out - bool Flush() { return m_file.Flush(); } - - // different ways to close the file - // validate changes and delete the old file of name m_strName - bool Commit(); - // discard changes - void Discard(); - - // dtor calls Discard() if file is still opened - ~wxTempFile(); - -private: - // no copy ctor/assignment operator - wxTempFile(const wxTempFile&); - wxTempFile& operator=(const wxTempFile&); - - wxString m_strName, // name of the file to replace in Commit() - m_strTemp; // temporary file name - wxFile m_file; // the temporary file -}; - -#endif // wxUSE_FILE - -#endif // _WX_FILEH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fileconf.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fileconf.h deleted file mode 100644 index a15468cf..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fileconf.h +++ /dev/null @@ -1,263 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/fileconf.h -// Purpose: wxFileConfig derivation of wxConfigBase -// Author: Vadim Zeitlin -// Modified by: -// Created: 07.04.98 (adapted from appconf.cpp) -// Copyright: (c) 1997 Karsten Ballueder & Vadim Zeitlin -// Ballueder@usa.net -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _FILECONF_H -#define _FILECONF_H - -#include "wx/defs.h" - -#if wxUSE_CONFIG - -#include "wx/textfile.h" -#include "wx/string.h" -#include "wx/confbase.h" -#include "wx/filename.h" - -// ---------------------------------------------------------------------------- -// wxFileConfig -// ---------------------------------------------------------------------------- - -/* - wxFileConfig derives from base Config and implements file based config class, - i.e. it uses ASCII disk files to store the information. These files are - alternatively called INI, .conf or .rc in the documentation. They are - organized in groups or sections, which can nest (i.e. a group contains - subgroups, which contain their own subgroups &c). Each group has some - number of entries, which are "key = value" pairs. More precisely, the format - is: - - # comments are allowed after either ';' or '#' (Win/UNIX standard) - - # blank lines (as above) are ignored - - # global entries are members of special (no name) top group - written_for = Windows - platform = Linux - - # the start of the group 'Foo' - [Foo] # may put comments like this also - # following 3 lines are entries - key = value - another_key = " strings with spaces in the beginning should be quoted, \ - otherwise the spaces are lost" - last_key = but you don't have to put " normally (nor quote them, like here) - - # subgroup of the group 'Foo' - # (order is not important, only the name is: separator is '/', as in paths) - [Foo/Bar] - # entries prefixed with "!" are immutable, i.e. can't be changed if they are - # set in the system-wide config file - !special_key = value - bar_entry = whatever - - [Foo/Bar/Fubar] # depth is (theoretically :-) unlimited - # may have the same name as key in another section - bar_entry = whatever not - - You have {read/write/delete}Entry functions (guess what they do) and also - setCurrentPath to select current group. enum{Subgroups/Entries} allow you - to get all entries in the config file (in the current group). Finally, - flush() writes immediately all changed entries to disk (otherwise it would - be done automatically in dtor) - - wxFileConfig manages not less than 2 config files for each program: global - and local (or system and user if you prefer). Entries are read from both of - them and the local entries override the global ones unless the latter is - immutable (prefixed with '!') in which case a warning message is generated - and local value is ignored. Of course, the changes are always written to local - file only. - - The names of these files can be specified in a number of ways. First of all, - you can use the standard convention: using the ctor which takes 'strAppName' - parameter will probably be sufficient for 90% of cases. If, for whatever - reason you wish to use the files with some other names, you can always use the - second ctor. - - wxFileConfig also may automatically expand the values of environment variables - in the entries it reads: for example, if you have an entry - score_file = $HOME/.score - a call to Read(&str, "score_file") will return a complete path to .score file - unless the expansion was previously disabled with SetExpandEnvVars(false) call - (it's on by default, the current status can be retrieved with - IsExpandingEnvVars function). -*/ -class WXDLLIMPEXP_FWD_BASE wxFileConfigGroup; -class WXDLLIMPEXP_FWD_BASE wxFileConfigEntry; -class WXDLLIMPEXP_FWD_BASE wxFileConfigLineList; - -#if wxUSE_STREAMS -class WXDLLIMPEXP_FWD_BASE wxInputStream; -class WXDLLIMPEXP_FWD_BASE wxOutputStream; -#endif // wxUSE_STREAMS - -class WXDLLIMPEXP_BASE wxFileConfig : public wxConfigBase -{ -public: - // construct the "standard" full name for global (system-wide) and - // local (user-specific) config files from the base file name. - // - // the following are the filenames returned by this functions: - // global local - // Unix /etc/file.ext ~/.file - // Win %windir%\file.ext %USERPROFILE%\file.ext - // - // where file is the basename of szFile, ext is its extension - // or .conf (Unix) or .ini (Win) if it has none - static wxFileName GetGlobalFile(const wxString& szFile); - static wxFileName GetLocalFile(const wxString& szFile, int style = 0); - - static wxString GetGlobalFileName(const wxString& szFile) - { - return GetGlobalFile(szFile).GetFullPath(); - } - - static wxString GetLocalFileName(const wxString& szFile, int style = 0) - { - return GetLocalFile(szFile, style).GetFullPath(); - } - - // ctor & dtor - // New constructor: one size fits all. Specify wxCONFIG_USE_LOCAL_FILE or - // wxCONFIG_USE_GLOBAL_FILE to say which files should be used. - wxFileConfig(const wxString& appName = wxEmptyString, - const wxString& vendorName = wxEmptyString, - const wxString& localFilename = wxEmptyString, - const wxString& globalFilename = wxEmptyString, - long style = wxCONFIG_USE_LOCAL_FILE | wxCONFIG_USE_GLOBAL_FILE, - const wxMBConv& conv = wxConvAuto()); - -#if wxUSE_STREAMS - // ctor that takes an input stream. - wxFileConfig(wxInputStream &inStream, const wxMBConv& conv = wxConvAuto()); -#endif // wxUSE_STREAMS - - // dtor will save unsaved data - virtual ~wxFileConfig(); - - // under Unix, set the umask to be used for the file creation, do nothing - // under other systems -#ifdef __UNIX__ - void SetUmask(int mode) { m_umask = mode; } -#else // !__UNIX__ - void SetUmask(int WXUNUSED(mode)) { } -#endif // __UNIX__/!__UNIX__ - - // implement inherited pure virtual functions - virtual void SetPath(const wxString& strPath) wxOVERRIDE; - virtual const wxString& GetPath() const wxOVERRIDE; - - virtual bool GetFirstGroup(wxString& str, long& lIndex) const wxOVERRIDE; - virtual bool GetNextGroup (wxString& str, long& lIndex) const wxOVERRIDE; - virtual bool GetFirstEntry(wxString& str, long& lIndex) const wxOVERRIDE; - virtual bool GetNextEntry (wxString& str, long& lIndex) const wxOVERRIDE; - - virtual size_t GetNumberOfEntries(bool bRecursive = false) const wxOVERRIDE; - virtual size_t GetNumberOfGroups(bool bRecursive = false) const wxOVERRIDE; - - virtual bool HasGroup(const wxString& strName) const wxOVERRIDE; - virtual bool HasEntry(const wxString& strName) const wxOVERRIDE; - - virtual bool Flush(bool bCurrentOnly = false) wxOVERRIDE; - - virtual bool RenameEntry(const wxString& oldName, const wxString& newName) wxOVERRIDE; - virtual bool RenameGroup(const wxString& oldName, const wxString& newName) wxOVERRIDE; - - virtual bool DeleteEntry(const wxString& key, bool bGroupIfEmptyAlso = true) wxOVERRIDE; - virtual bool DeleteGroup(const wxString& szKey) wxOVERRIDE; - virtual bool DeleteAll() wxOVERRIDE; - - // additional, wxFileConfig-specific, functionality -#if wxUSE_STREAMS - // save the entire config file text to the given stream, note that the text - // won't be saved again in dtor when Flush() is called if you use this method - // as it won't be "changed" any more - virtual bool Save(wxOutputStream& os, const wxMBConv& conv = wxConvAuto()); -#endif // wxUSE_STREAMS - -public: - // functions to work with this list - wxFileConfigLineList *LineListAppend(const wxString& str); - wxFileConfigLineList *LineListInsert(const wxString& str, - wxFileConfigLineList *pLine); // NULL => Prepend() - void LineListRemove(wxFileConfigLineList *pLine); - bool LineListIsEmpty(); - -protected: - virtual bool DoReadString(const wxString& key, wxString *pStr) const wxOVERRIDE; - virtual bool DoReadLong(const wxString& key, long *pl) const wxOVERRIDE; -#if wxUSE_BASE64 - virtual bool DoReadBinary(const wxString& key, wxMemoryBuffer* buf) const wxOVERRIDE; -#endif // wxUSE_BASE64 - - virtual bool DoWriteString(const wxString& key, const wxString& szValue) wxOVERRIDE; - virtual bool DoWriteLong(const wxString& key, long lValue) wxOVERRIDE; -#if wxUSE_BASE64 - virtual bool DoWriteBinary(const wxString& key, const wxMemoryBuffer& buf) wxOVERRIDE; -#endif // wxUSE_BASE64 - -private: - // GetXXXFileName helpers: return ('/' terminated) directory names - static wxString GetGlobalDir(); - static wxString GetLocalDir(int style = 0); - - // common part of all ctors (assumes that m_str{Local|Global}File are already - // initialized - void Init(); - - // common part of from dtor and DeleteAll - void CleanUp(); - - // parse the whole file - void Parse(const wxTextBuffer& buffer, bool bLocal); - - // the same as SetPath("/") - void SetRootPath(); - - // real SetPath() implementation, returns true if path could be set or false - // if path doesn't exist and createMissingComponents == false - bool DoSetPath(const wxString& strPath, bool createMissingComponents); - - // set/test the dirty flag - void SetDirty() { m_isDirty = true; } - void ResetDirty() { m_isDirty = false; } - bool IsDirty() const { return m_isDirty; } - - - // member variables - // ---------------- - wxFileConfigLineList *m_linesHead, // head of the linked list - *m_linesTail; // tail - - wxFileName m_fnLocalFile, // local file name passed to ctor - m_fnGlobalFile; // global - wxString m_strPath; // current path (not '/' terminated) - - wxFileConfigGroup *m_pRootGroup, // the top (unnamed) group - *m_pCurrentGroup; // the current group - - wxMBConv *m_conv; - -#ifdef __UNIX__ - int m_umask; // the umask to use for file creation -#endif // __UNIX__ - - bool m_isDirty; // if true, we have unsaved changes - - wxDECLARE_NO_COPY_CLASS(wxFileConfig); - wxDECLARE_ABSTRACT_CLASS(wxFileConfig); -}; - -#endif - // wxUSE_CONFIG - -#endif - //_FILECONF_H - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filectrl.h deleted file mode 100644 index c8c3d49a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filectrl.h +++ /dev/null @@ -1,145 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/filectrl.h -// Purpose: Header for wxFileCtrlBase and other common functions used by -// platform-specific wxFileCtrl's -// Author: Diaa M. Sami -// Modified by: -// Created: Jul-07-2007 -// Copyright: (c) Diaa M. Sami -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILECTRL_H_BASE_ -#define _WX_FILECTRL_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_FILECTRL - -#include "wx/string.h" -#include "wx/event.h" - -enum -{ - wxFC_OPEN = 0x0001, - wxFC_SAVE = 0x0002, - wxFC_MULTIPLE = 0x0004, - wxFC_NOSHOWHIDDEN = 0x0008 -}; - -#define wxFC_DEFAULT_STYLE wxFC_OPEN -extern WXDLLIMPEXP_DATA_CORE(const char) wxFileCtrlNameStr[]; // in filectrlcmn.cpp - -class WXDLLIMPEXP_CORE wxFileCtrlBase -{ -public: - virtual ~wxFileCtrlBase() {} - - virtual void SetWildcard( const wxString& wildCard ) = 0; - virtual void SetFilterIndex( int filterindex ) = 0; - virtual bool SetDirectory( const wxString& dir ) = 0; - - // Selects a certain file. - // In case the filename specified isn't found/couldn't be shown with - // currently selected filter, false is returned and nothing happens - virtual bool SetFilename( const wxString& name ) = 0; - - // chdirs to a certain directory and selects a certain file. - // In case the filename specified isn't found/couldn't be shown with - // currently selected filter, false is returned and if directory exists - // it's chdir'ed to - virtual bool SetPath( const wxString& path ) = 0; - - virtual wxString GetFilename() const = 0; - virtual wxString GetDirectory() const = 0; - virtual wxString GetWildcard() const = 0; - virtual wxString GetPath() const = 0; - virtual void GetPaths( wxArrayString& paths ) const = 0; - virtual void GetFilenames( wxArrayString& files ) const = 0; - virtual int GetFilterIndex() const = 0; - - virtual bool HasMultipleFileSelection() const = 0; - virtual void ShowHidden(bool show) = 0; -}; - -void GenerateFilterChangedEvent( wxFileCtrlBase *fileCtrl, wxWindow *wnd ); -void GenerateFolderChangedEvent( wxFileCtrlBase *fileCtrl, wxWindow *wnd ); -void GenerateSelectionChangedEvent( wxFileCtrlBase *fileCtrl, wxWindow *wnd ); -void GenerateFileActivatedEvent( wxFileCtrlBase *fileCtrl, wxWindow *wnd, const wxString& filename = wxEmptyString ); - -#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__) - #define wxFileCtrl wxGtkFileCtrl - #include "wx/gtk/filectrl.h" -#else - #define wxFileCtrl wxGenericFileCtrl - #include "wx/generic/filectrlg.h" -#endif - -// Some documentation -// On wxEVT_FILECTRL_FILTERCHANGED, only the value returned by GetFilterIndex is -// valid and it represents the (new) current filter index for the wxFileCtrl. -// On wxEVT_FILECTRL_FOLDERCHANGED, only the value returned by GetDirectory is -// valid and it represents the (new) current directory for the wxFileCtrl. -// On wxEVT_FILECTRL_FILEACTIVATED, GetDirectory returns the current directory -// for the wxFileCtrl and GetFiles returns the names of the file(s) activated. -// On wxEVT_FILECTRL_SELECTIONCHANGED, GetDirectory returns the current directory -// for the wxFileCtrl and GetFiles returns the names of the currently selected -// file(s). -// In wxGTK, after each wxEVT_FILECTRL_FOLDERCHANGED, wxEVT_FILECTRL_SELECTIONCHANGED -// is fired automatically once or more with 0 files. -class WXDLLIMPEXP_CORE wxFileCtrlEvent : public wxCommandEvent -{ -public: - wxFileCtrlEvent() {} - wxFileCtrlEvent( wxEventType type, wxObject *evtObject, int id ) - : wxCommandEvent( type, id ) - { - SetEventObject( evtObject ); - } - - // no need for the copy constructor as the default one will be fine. - virtual wxEvent *Clone() const wxOVERRIDE { return new wxFileCtrlEvent( *this ); } - - void SetFiles( const wxArrayString &files ) { m_files = files; } - void SetDirectory( const wxString &directory ) { m_directory = directory; } - void SetFilterIndex( int filterIndex ) { m_filterIndex = filterIndex; } - - wxArrayString GetFiles() const { return m_files; } - wxString GetDirectory() const { return m_directory; } - int GetFilterIndex() const { return m_filterIndex; } - - wxString GetFile() const; - -protected: - int m_filterIndex; - wxString m_directory; - wxArrayString m_files; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxFileCtrlEvent); -}; - -typedef void ( wxEvtHandler::*wxFileCtrlEventFunction )( wxFileCtrlEvent& ); - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_FILECTRL_SELECTIONCHANGED, wxFileCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_FILECTRL_FILEACTIVATED, wxFileCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_FILECTRL_FOLDERCHANGED, wxFileCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_FILECTRL_FILTERCHANGED, wxFileCtrlEvent ); - -#define wxFileCtrlEventHandler(func) \ - wxEVENT_HANDLER_CAST( wxFileCtrlEventFunction, func ) - -#define EVT_FILECTRL_FILEACTIVATED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_FILECTRL_FILEACTIVATED, id, wxFileCtrlEventHandler(fn)) - -#define EVT_FILECTRL_SELECTIONCHANGED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_FILECTRL_SELECTIONCHANGED, id, wxFileCtrlEventHandler(fn)) - -#define EVT_FILECTRL_FOLDERCHANGED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_FILECTRL_FOLDERCHANGED, id, wxFileCtrlEventHandler(fn)) - -#define EVT_FILECTRL_FILTERCHANGED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_FILECTRL_FILTERCHANGED, id, wxFileCtrlEventHandler(fn)) - -#endif // wxUSE_FILECTRL - -#endif // _WX_FILECTRL_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filedlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filedlg.h deleted file mode 100644 index b068129a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filedlg.h +++ /dev/null @@ -1,235 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/filedlg.h -// Purpose: wxFileDialog base header -// Author: Robert Roebling -// Modified by: -// Created: 8/17/99 -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILEDLG_H_BASE_ -#define _WX_FILEDLG_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_FILEDLG - -#include "wx/dialog.h" -#include "wx/arrstr.h" - -// this symbol is defined for the platforms which support multiple -// ('|'-separated) filters in the file dialog -#if defined(__WXMSW__) || defined(__WXGTK__) || defined(__WXMAC__) - #define wxHAS_MULTIPLE_FILEDLG_FILTERS -#endif - -//---------------------------------------------------------------------------- -// wxFileDialog data -//---------------------------------------------------------------------------- - -/* - The flags below must coexist with the following flags in m_windowStyle - #define wxCAPTION 0x20000000 - #define wxMAXIMIZE 0x00002000 - #define wxCLOSE_BOX 0x00001000 - #define wxSYSTEM_MENU 0x00000800 - wxBORDER_NONE = 0x00200000 - #define wxRESIZE_BORDER 0x00000040 - #define wxDIALOG_NO_PARENT 0x00000020 -*/ - -enum -{ - wxFD_OPEN = 0x0001, - wxFD_SAVE = 0x0002, - wxFD_OVERWRITE_PROMPT = 0x0004, - wxFD_NO_FOLLOW = 0x0008, - wxFD_FILE_MUST_EXIST = 0x0010, - wxFD_CHANGE_DIR = 0x0080, - wxFD_PREVIEW = 0x0100, - wxFD_MULTIPLE = 0x0200 -}; - -#define wxFD_DEFAULT_STYLE wxFD_OPEN - -extern WXDLLIMPEXP_DATA_CORE(const char) wxFileDialogNameStr[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxFileSelectorPromptStr[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxFileSelectorDefaultWildcardStr[]; - -//---------------------------------------------------------------------------- -// wxFileDialogBase -//---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFileDialogBase: public wxDialog -{ -public: - wxFileDialogBase () { Init(); } - - wxFileDialogBase(wxWindow *parent, - const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = wxEmptyString, - const wxString& defaultFile = wxEmptyString, - const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = wxFD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize, - const wxString& name = wxFileDialogNameStr) - { - Init(); - Create(parent, message, defaultDir, defaultFile, wildCard, style, pos, sz, name); - } - - virtual ~wxFileDialogBase() {} - - - bool Create(wxWindow *parent, - const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = wxEmptyString, - const wxString& defaultFile = wxEmptyString, - const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = wxFD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize, - const wxString& name = wxFileDialogNameStr); - - bool HasFdFlag(int flag) const { return HasFlag(flag); } - - virtual void SetMessage(const wxString& message) { m_message = message; } - virtual void SetPath(const wxString& path); - virtual void SetDirectory(const wxString& dir); - virtual void SetFilename(const wxString& name); - virtual void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; } - virtual void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; } - - virtual wxString GetMessage() const { return m_message; } - virtual wxString GetPath() const { return m_path; } - virtual void GetPaths(wxArrayString& paths) const { paths.Empty(); paths.Add(m_path); } - virtual wxString GetDirectory() const { return m_dir; } - virtual wxString GetFilename() const { return m_fileName; } - virtual void GetFilenames(wxArrayString& files) const { files.Empty(); files.Add(m_fileName); } - virtual wxString GetWildcard() const { return m_wildCard; } - virtual int GetFilterIndex() const { return m_filterIndex; } - - virtual wxString GetCurrentlySelectedFilename() const - { return m_currentlySelectedFilename; } - - // this function is called with wxFileDialog as parameter and should - // create the window containing the extra controls we want to show in it - typedef wxWindow *(*ExtraControlCreatorFunction)(wxWindow*); - - virtual bool SupportsExtraControl() const { return false; } - - bool SetExtraControlCreator(ExtraControlCreatorFunction creator); - wxWindow *GetExtraControl() const { return m_extraControl; } - - // Utility functions - - // Append first extension to filePath from a ';' separated extensionList - // if filePath = "path/foo.bar" just return it as is - // if filePath = "foo[.]" and extensionList = "*.jpg;*.png" return "foo.jpg" - // if the extension is "*.j?g" (has wildcards) or "jpg" then return filePath - static wxString AppendExtension(const wxString &filePath, - const wxString &extensionList); - - // Set the filter index to match the given extension. - // - // This is always valid to call, even if the extension is empty or the - // filter list doesn't contain it, the function will just do nothing in - // these cases. - void SetFilterIndexFromExt(const wxString& ext); - -protected: - wxString m_message; - wxString m_dir; - wxString m_path; // Full path - wxString m_fileName; - wxString m_wildCard; - int m_filterIndex; - - // Currently selected, but not yet necessarily accepted by the user, file. - // This should be updated whenever the selection in the control changes by - // the platform-specific code to provide a useful implementation of - // GetCurrentlySelectedFilename(). - wxString m_currentlySelectedFilename; - - wxWindow* m_extraControl; - - // returns true if control is created (if it already exists returns false) - bool CreateExtraControl(); - // return true if SetExtraControlCreator() was called - bool HasExtraControlCreator() const - { return m_extraControlCreator != NULL; } - // get the size of the extra control by creating and deleting it - wxSize GetExtraControlSize(); - -private: - ExtraControlCreatorFunction m_extraControlCreator; - - void Init(); - wxDECLARE_DYNAMIC_CLASS(wxFileDialogBase); - wxDECLARE_NO_COPY_CLASS(wxFileDialogBase); -}; - - -//---------------------------------------------------------------------------- -// wxFileDialog convenience functions -//---------------------------------------------------------------------------- - -// File selector - backward compatibility -WXDLLIMPEXP_CORE wxString -wxFileSelector(const wxString& message = wxFileSelectorPromptStr, - const wxString& default_path = wxEmptyString, - const wxString& default_filename = wxEmptyString, - const wxString& default_extension = wxEmptyString, - const wxString& wildcard = wxFileSelectorDefaultWildcardStr, - int flags = 0, - wxWindow *parent = NULL, - int x = wxDefaultCoord, int y = wxDefaultCoord); - -// An extended version of wxFileSelector -WXDLLIMPEXP_CORE wxString -wxFileSelectorEx(const wxString& message = wxFileSelectorPromptStr, - const wxString& default_path = wxEmptyString, - const wxString& default_filename = wxEmptyString, - int *indexDefaultExtension = NULL, - const wxString& wildcard = wxFileSelectorDefaultWildcardStr, - int flags = 0, - wxWindow *parent = NULL, - int x = wxDefaultCoord, int y = wxDefaultCoord); - -// Ask for filename to load -WXDLLIMPEXP_CORE wxString -wxLoadFileSelector(const wxString& what, - const wxString& extension, - const wxString& default_name = wxEmptyString, - wxWindow *parent = NULL); - -// Ask for filename to save -WXDLLIMPEXP_CORE wxString -wxSaveFileSelector(const wxString& what, - const wxString& extension, - const wxString& default_name = wxEmptyString, - wxWindow *parent = NULL); - - -#if defined (__WXUNIVERSAL__) - #define wxHAS_GENERIC_FILEDIALOG - #include "wx/generic/filedlgg.h" -#elif defined(__WXMSW__) - #include "wx/msw/filedlg.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/filedlg.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/filedlg.h" // GTK+ > 2.4 has native version -#elif defined(__WXGTK__) - #include "wx/gtk1/filedlg.h" -#elif defined(__WXMAC__) - #include "wx/osx/filedlg.h" -#elif defined(__WXQT__) - #include "wx/qt/filedlg.h" -#endif - -#endif // wxUSE_FILEDLG - -#endif // _WX_FILEDLG_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filefn.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filefn.h deleted file mode 100644 index 5a585bd9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filefn.h +++ /dev/null @@ -1,718 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/filefn.h -// Purpose: File- and directory-related functions -// Author: Julian Smart -// Modified by: -// Created: 29/01/98 -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _FILEFN_H_ -#define _FILEFN_H_ - -#include "wx/list.h" -#include "wx/arrstr.h" - -#include - -#include -#include - -#if defined(__UNIX__) - #include - #include -#endif - -#if defined(__WINDOWS__) -#if !defined( __GNUWIN32__ ) && !defined(__CYGWIN__) - #include - #include - #include -#endif // __WINDOWS__ -#endif // native Win compiler - -#ifdef __BORLANDC__ // Please someone tell me which version of Borland needs - // this (3.1 I believe) and how to test for it. - // If this works for Borland 4.0 as well, then no worries. - #include -#endif - -#include // O_RDONLY &c - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// MSVC doesn't define mode_t, so do it ourselves unless someone else -// had already predefined it. -#if defined(__VISUALC__) && !defined(wxHAS_MODE_T) - #define wxHAS_MODE_T - typedef int mode_t; -#endif - -// define off_t -#include - -#if defined(__VISUALC__) - typedef _off_t off_t; -#endif - -enum wxSeekMode -{ - wxFromStart, - wxFromCurrent, - wxFromEnd -}; - -enum wxFileKind -{ - wxFILE_KIND_UNKNOWN, - wxFILE_KIND_DISK, // a file supporting seeking to arbitrary offsets - wxFILE_KIND_TERMINAL, // a tty - wxFILE_KIND_PIPE // a pipe -}; - -// we redefine these constants here because S_IREAD &c are _not_ standard -// however, we do assume that the values correspond to the Unix umask bits -enum wxPosixPermissions -{ - // standard Posix names for these permission flags: - wxS_IRUSR = 00400, - wxS_IWUSR = 00200, - wxS_IXUSR = 00100, - - wxS_IRGRP = 00040, - wxS_IWGRP = 00020, - wxS_IXGRP = 00010, - - wxS_IROTH = 00004, - wxS_IWOTH = 00002, - wxS_IXOTH = 00001, - - // longer but more readable synonyms for the constants above: - wxPOSIX_USER_READ = wxS_IRUSR, - wxPOSIX_USER_WRITE = wxS_IWUSR, - wxPOSIX_USER_EXECUTE = wxS_IXUSR, - - wxPOSIX_GROUP_READ = wxS_IRGRP, - wxPOSIX_GROUP_WRITE = wxS_IWGRP, - wxPOSIX_GROUP_EXECUTE = wxS_IXGRP, - - wxPOSIX_OTHERS_READ = wxS_IROTH, - wxPOSIX_OTHERS_WRITE = wxS_IWOTH, - wxPOSIX_OTHERS_EXECUTE = wxS_IXOTH, - - // default mode for the new files: allow reading/writing them to everybody but - // the effective file mode will be set after anding this value with umask and - // so won't include wxS_IW{GRP,OTH} for the default 022 umask value - wxS_DEFAULT = (wxPOSIX_USER_READ | wxPOSIX_USER_WRITE | \ - wxPOSIX_GROUP_READ | wxPOSIX_GROUP_WRITE | \ - wxPOSIX_OTHERS_READ | wxPOSIX_OTHERS_WRITE), - - // default mode for the new directories (see wxFileName::Mkdir): allow - // reading/writing/executing them to everybody, but just like wxS_DEFAULT - // the effective directory mode will be set after anding this value with umask - wxS_DIR_DEFAULT = (wxPOSIX_USER_READ | wxPOSIX_USER_WRITE | wxPOSIX_USER_EXECUTE | \ - wxPOSIX_GROUP_READ | wxPOSIX_GROUP_WRITE | wxPOSIX_GROUP_EXECUTE | \ - wxPOSIX_OTHERS_READ | wxPOSIX_OTHERS_WRITE | wxPOSIX_OTHERS_EXECUTE) -}; - -// ---------------------------------------------------------------------------- -// declare our versions of low level file functions: some compilers prepend -// underscores to the usual names, some also have Unicode versions of them -// ---------------------------------------------------------------------------- - -#if defined(__WINDOWS__) && \ - ( \ - defined(__VISUALC__) || \ - defined(__MINGW64_TOOLCHAIN__) || \ - (defined(__MINGW32__) && !defined(__WINE__) && \ - wxCHECK_W32API_VERSION(0, 5)) || \ - defined(__BORLANDC__) \ - ) - - // temporary defines just used immediately below - #undef wxHAS_HUGE_FILES - #undef wxHAS_HUGE_STDIO_FILES - - // detect compilers which have support for huge files - #if defined(__VISUALC__) - #define wxHAS_HUGE_FILES 1 - #elif defined(__MINGW32__) - #define wxHAS_HUGE_FILES 1 - #elif defined(_LARGE_FILES) - #define wxHAS_HUGE_FILES 1 - #endif - - // detect compilers which have support for huge stdio files - #if wxCHECK_VISUALC_VERSION(8) - #define wxHAS_HUGE_STDIO_FILES - #define wxFseek _fseeki64 - #define wxFtell _ftelli64 - #elif wxCHECK_MINGW32_VERSION(3, 5) // mingw-runtime version (not gcc) - #define wxHAS_HUGE_STDIO_FILES - - wxDECL_FOR_STRICT_MINGW32(int, fseeko64, (FILE*, long long, int)) - #define wxFseek fseeko64 - - #ifdef wxNEEDS_STRICT_ANSI_WORKAROUNDS - // Unfortunately ftello64() is not defined in the library for - // whatever reason but as an inline function, so define wxFtell() - // here similarly. - inline long long wxFtell(FILE* fp) - { - fpos_t pos; - return fgetpos(fp, &pos) == 0 ? pos : -1LL; - } - #else - #define wxFtell ftello64 - #endif - #endif - - // other Windows compilers (Borland) don't have huge file support (or at - // least not all functions needed for it by wx) currently - - // types - - #ifdef wxHAS_HUGE_FILES - typedef wxLongLong_t wxFileOffset; - #define wxFileOffsetFmtSpec wxLongLongFmtSpec - #else - typedef off_t wxFileOffset; - #endif - - // at least Borland 5.5 doesn't like "struct ::stat" so don't use the scope - // resolution operator present in wxPOSIX_IDENT for it - #ifdef __BORLANDC__ - #define wxPOSIX_STRUCT(s) struct s - #else - #define wxPOSIX_STRUCT(s) struct wxPOSIX_IDENT(s) - #endif - - // Borland is special in that it uses _stat with Unicode functions (for - // MSVC compatibility?) but stat with ANSI ones - #ifdef __BORLANDC__ - #if wxHAS_HUGE_FILES - #define wxStructStat struct stati64 - #else - #if wxUSE_UNICODE - #define wxStructStat struct _stat - #else - #define wxStructStat struct stat - #endif - #endif - #else // !__BORLANDC__ - #ifdef wxHAS_HUGE_FILES - #define wxStructStat struct _stati64 - #else - #define wxStructStat struct _stat - #endif - #endif // __BORLANDC__/!__BORLANDC__ - - - // functions - - // MSVC and compatible compilers prepend underscores to the POSIX function - // names, other compilers don't and even if their later versions usually do - // define the versions with underscores for MSVC compatibility, it's better - // to avoid using them as they're not present in earlier versions and - // always using the native functions spelling is easier than testing for - // the versions - #if defined(__BORLANDC__) || defined(__MINGW64_TOOLCHAIN__) - #define wxPOSIX_IDENT(func) ::func - #else // by default assume MSVC-compatible names - #define wxPOSIX_IDENT(func) _ ## func - #define wxHAS_UNDERSCORES_IN_POSIX_IDENTS - #endif - - // first functions not working with strings, i.e. without ANSI/Unicode - // complications - #define wxClose wxPOSIX_IDENT(close) - - #define wxRead wxPOSIX_IDENT(read) - #define wxWrite wxPOSIX_IDENT(write) - - #ifdef wxHAS_HUGE_FILES - #ifndef __MINGW64_TOOLCHAIN__ - #define wxSeek wxPOSIX_IDENT(lseeki64) - #define wxLseek wxPOSIX_IDENT(lseeki64) - #define wxTell wxPOSIX_IDENT(telli64) - #else - // unfortunately, mingw-W64 is somewhat inconsistent... - #define wxSeek _lseeki64 - #define wxLseek _lseeki64 - #define wxTell _telli64 - #endif - #else // !wxHAS_HUGE_FILES - #define wxSeek wxPOSIX_IDENT(lseek) - #define wxLseek wxPOSIX_IDENT(lseek) - #define wxTell wxPOSIX_IDENT(tell) - #endif // wxHAS_HUGE_FILES/!wxHAS_HUGE_FILES - - #if !defined(__BORLANDC__) || (__BORLANDC__ > 0x540) - // NB: this one is not POSIX and always has the underscore - #define wxFsync _commit - - // could be already defined by configure (Cygwin) - #ifndef HAVE_FSYNC - #define HAVE_FSYNC - #endif - #endif // BORLANDC - - #define wxEof wxPOSIX_IDENT(eof) - - // then the functions taking strings - - // first the ANSI versions - #define wxCRT_OpenA wxPOSIX_IDENT(open) - #define wxCRT_AccessA wxPOSIX_IDENT(access) - #define wxCRT_ChmodA wxPOSIX_IDENT(chmod) - #define wxCRT_MkDirA wxPOSIX_IDENT(mkdir) - #define wxCRT_RmDirA wxPOSIX_IDENT(rmdir) - #ifdef wxHAS_HUGE_FILES - // MinGW-64 provides underscore-less versions of all file functions - // except for this one. - #ifdef __MINGW64_TOOLCHAIN__ - #define wxCRT_StatA _stati64 - #else - #define wxCRT_StatA wxPOSIX_IDENT(stati64) - #endif - #else - #define wxCRT_StatA wxPOSIX_IDENT(stat) - #endif - - // then wide char ones - #if wxUSE_UNICODE - // special workaround for buggy wopen() in bcc 5.5 - #if defined(__BORLANDC__) && \ - (__BORLANDC__ >= 0x550 && __BORLANDC__ <= 0x551) - WXDLLIMPEXP_BASE int wxCRT_OpenW(const wxChar *pathname, - int flags, mode_t mode); - #else - #define wxCRT_OpenW _wopen - #endif - - wxDECL_FOR_STRICT_MINGW32(int, _wmkdir, (const wchar_t*)) - wxDECL_FOR_STRICT_MINGW32(int, _wrmdir, (const wchar_t*)) - - #define wxCRT_AccessW _waccess - #define wxCRT_ChmodW _wchmod - #define wxCRT_MkDirW _wmkdir - #define wxCRT_RmDirW _wrmdir - #ifdef wxHAS_HUGE_FILES - #define wxCRT_StatW _wstati64 - #else - #define wxCRT_StatW _wstat - #endif - #endif // wxUSE_UNICODE - - - // finally the default char-type versions - #if wxUSE_UNICODE - #define wxCRT_Open wxCRT_OpenW - #define wxCRT_Access wxCRT_AccessW - #define wxCRT_Chmod wxCRT_ChmodW - #define wxCRT_MkDir wxCRT_MkDirW - #define wxCRT_RmDir wxCRT_RmDirW - #define wxCRT_Stat wxCRT_StatW - #else // !wxUSE_UNICODE - #define wxCRT_Open wxCRT_OpenA - #define wxCRT_Access wxCRT_AccessA - #define wxCRT_Chmod wxCRT_ChmodA - #define wxCRT_MkDir wxCRT_MkDirA - #define wxCRT_RmDir wxCRT_RmDirA - #define wxCRT_Stat wxCRT_StatA - #endif // wxUSE_UNICODE/!wxUSE_UNICODE - - - // constants (unless already defined by the user code) - #ifdef wxHAS_UNDERSCORES_IN_POSIX_IDENTS - #ifndef O_RDONLY - #define O_RDONLY _O_RDONLY - #define O_WRONLY _O_WRONLY - #define O_RDWR _O_RDWR - #define O_EXCL _O_EXCL - #define O_CREAT _O_CREAT - #define O_BINARY _O_BINARY - #endif - - #ifndef S_IFMT - #define S_IFMT _S_IFMT - #define S_IFDIR _S_IFDIR - #define S_IFREG _S_IFREG - #endif - #endif // wxHAS_UNDERSCORES_IN_POSIX_IDENTS - - #ifdef wxHAS_HUGE_FILES - // wxFile is present and supports large files. - #if wxUSE_FILE - #define wxHAS_LARGE_FILES - #endif - // wxFFile is present and supports large files - #if wxUSE_FFILE && defined wxHAS_HUGE_STDIO_FILES - #define wxHAS_LARGE_FFILES - #endif - #endif - - // private defines, undefine so that nobody gets tempted to use - #undef wxHAS_HUGE_FILES - #undef wxHAS_HUGE_STDIO_FILES -#else // Unix or Windows using unknown compiler, assume POSIX supported - typedef off_t wxFileOffset; - #ifdef HAVE_LARGEFILE_SUPPORT - #define wxFileOffsetFmtSpec wxLongLongFmtSpec - wxCOMPILE_TIME_ASSERT( sizeof(off_t) == sizeof(wxLongLong_t), - BadFileSizeType ); - // wxFile is present and supports large files - #if wxUSE_FILE - #define wxHAS_LARGE_FILES - #endif - // wxFFile is present and supports large files - #if wxUSE_FFILE && (SIZEOF_LONG == 8 || defined HAVE_FSEEKO) - #define wxHAS_LARGE_FFILES - #endif - #ifdef HAVE_FSEEKO - #define wxFseek fseeko - #define wxFtell ftello - #endif - #else - #define wxFileOffsetFmtSpec wxT("") - #endif - // functions - #define wxClose close - #define wxRead ::read - #define wxWrite ::write - #define wxLseek lseek - #define wxSeek lseek - #define wxFsync fsync - #define wxEof eof - #define wxCRT_MkDir mkdir - #define wxCRT_RmDir rmdir - - #define wxTell(fd) lseek(fd, 0, SEEK_CUR) - - #define wxStructStat struct stat - - #define wxCRT_Open open - #define wxCRT_Stat stat - #define wxCRT_Lstat lstat - #define wxCRT_Access access - #define wxCRT_Chmod chmod - - #define wxHAS_NATIVE_LSTAT -#endif // platforms - -// if the platform doesn't have symlinks, define wxCRT_Lstat to be the same as -// wxCRT_Stat to avoid #ifdefs in the code using it -#ifndef wxHAS_NATIVE_LSTAT - #define wxCRT_Lstat wxCRT_Stat -#endif - -// define wxFseek/wxFtell to large file versions if available (done above) or -// to fseek/ftell if not, to save ifdefs in using code -#ifndef wxFseek - #define wxFseek fseek -#endif -#ifndef wxFtell - #define wxFtell ftell -#endif - -inline int wxAccess(const wxString& path, mode_t mode) - { return wxCRT_Access(path.fn_str(), mode); } -inline int wxChmod(const wxString& path, mode_t mode) - { return wxCRT_Chmod(path.fn_str(), mode); } -inline int wxOpen(const wxString& path, int flags, mode_t mode) - { return wxCRT_Open(path.fn_str(), flags, mode); } - -inline int wxStat(const wxString& path, wxStructStat *buf) - { return wxCRT_Stat(path.fn_str(), buf); } -inline int wxLstat(const wxString& path, wxStructStat *buf) - { return wxCRT_Lstat(path.fn_str(), buf); } -inline int wxRmDir(const wxString& path) - { return wxCRT_RmDir(path.fn_str()); } -#if (defined(__WINDOWS__) && !defined(__CYGWIN__)) -inline int wxMkDir(const wxString& path, mode_t WXUNUSED(mode) = 0) - { return wxCRT_MkDir(path.fn_str()); } -#else -inline int wxMkDir(const wxString& path, mode_t mode) - { return wxCRT_MkDir(path.fn_str(), mode); } -#endif - -#ifdef O_BINARY - #define wxO_BINARY O_BINARY -#else - #define wxO_BINARY 0 -#endif - -const int wxInvalidOffset = -1; - -// ---------------------------------------------------------------------------- -// functions -// ---------------------------------------------------------------------------- -WXDLLIMPEXP_BASE bool wxFileExists(const wxString& filename); - -// does the path exist? (may have or not '/' or '\\' at the end) -WXDLLIMPEXP_BASE bool wxDirExists(const wxString& pathName); - -WXDLLIMPEXP_BASE bool wxIsAbsolutePath(const wxString& filename); - -// Get filename -WXDLLIMPEXP_BASE wxChar* wxFileNameFromPath(wxChar *path); -WXDLLIMPEXP_BASE wxString wxFileNameFromPath(const wxString& path); - -// Get directory -WXDLLIMPEXP_BASE wxString wxPathOnly(const wxString& path); - -// all deprecated functions below are deprecated in favour of wxFileName's methods -#if WXWIN_COMPATIBILITY_2_8 - -wxDEPRECATED( WXDLLIMPEXP_BASE void wxDos2UnixFilename(char *s) ); -wxDEPRECATED( WXDLLIMPEXP_BASE void wxDos2UnixFilename(wchar_t *s) ); - -wxDEPRECATED_BUT_USED_INTERNALLY( - WXDLLIMPEXP_BASE void wxUnix2DosFilename(char *s) ); -wxDEPRECATED_BUT_USED_INTERNALLY( - WXDLLIMPEXP_BASE void wxUnix2DosFilename(wchar_t *s) ); - -// Strip the extension, in situ -// Deprecated in favour of wxFileName::StripExtension() but notice that their -// behaviour is slightly different, see the manual -wxDEPRECATED( WXDLLIMPEXP_BASE void wxStripExtension(char *buffer) ); -wxDEPRECATED( WXDLLIMPEXP_BASE void wxStripExtension(wchar_t *buffer) ); -wxDEPRECATED( WXDLLIMPEXP_BASE void wxStripExtension(wxString& buffer) ); - -// Get a temporary filename -wxDEPRECATED_BUT_USED_INTERNALLY( WXDLLIMPEXP_BASE wxChar* wxGetTempFileName(const wxString& prefix, wxChar *buf = NULL) ); -wxDEPRECATED_BUT_USED_INTERNALLY( WXDLLIMPEXP_BASE bool wxGetTempFileName(const wxString& prefix, wxString& buf) ); - -// Expand file name (~/ and ${OPENWINHOME}/ stuff) -wxDEPRECATED_BUT_USED_INTERNALLY( WXDLLIMPEXP_BASE char* wxExpandPath(char *dest, const wxString& path) ); -wxDEPRECATED_BUT_USED_INTERNALLY( WXDLLIMPEXP_BASE wchar_t* wxExpandPath(wchar_t *dest, const wxString& path) ); - // DEPRECATED: use wxFileName::Normalize(wxPATH_NORM_ENV_VARS) - -// Contract w.r.t environment ( -> ${OPENWINHOME}/lib) -// and make (if under the home tree) relative to home -// [caller must copy-- volatile] -wxDEPRECATED( -WXDLLIMPEXP_BASE wxChar* wxContractPath(const wxString& filename, - const wxString& envname = wxEmptyString, - const wxString& user = wxEmptyString) ); - // DEPRECATED: use wxFileName::ReplaceEnvVariable and wxFileName::ReplaceHomeDir - -// Destructive removal of /./ and /../ stuff -wxDEPRECATED_BUT_USED_INTERNALLY( WXDLLIMPEXP_BASE char* wxRealPath(char *path) ); -wxDEPRECATED_BUT_USED_INTERNALLY( WXDLLIMPEXP_BASE wchar_t* wxRealPath(wchar_t *path) ); -wxDEPRECATED_BUT_USED_INTERNALLY( WXDLLIMPEXP_BASE wxString wxRealPath(const wxString& path) ); - // DEPRECATED: use wxFileName::Normalize instead - -// Allocate a copy of the full absolute path -wxDEPRECATED( WXDLLIMPEXP_BASE wxChar* wxCopyAbsolutePath(const wxString& path) ); - // DEPRECATED: use wxFileName::MakeAbsolute instead -#endif - -// Get first file name matching given wild card. -// Flags are reserved for future use. -#define wxFILE 1 -#define wxDIR 2 -WXDLLIMPEXP_BASE wxString wxFindFirstFile(const wxString& spec, int flags = wxFILE); -WXDLLIMPEXP_BASE wxString wxFindNextFile(); - -// Does the pattern contain wildcards? -WXDLLIMPEXP_BASE bool wxIsWild(const wxString& pattern); - -// Does the pattern match the text (usually a filename)? -// If dot_special is true, doesn't match * against . (eliminating -// `hidden' dot files) -WXDLLIMPEXP_BASE bool wxMatchWild(const wxString& pattern, const wxString& text, bool dot_special = true); - -// Concatenate two files to form third -WXDLLIMPEXP_BASE bool wxConcatFiles(const wxString& file1, const wxString& file2, const wxString& file3); - -// Copy file1 to file2 -WXDLLIMPEXP_BASE bool wxCopyFile(const wxString& file1, const wxString& file2, - bool overwrite = true); - -// Remove file -WXDLLIMPEXP_BASE bool wxRemoveFile(const wxString& file); - -// Rename file -WXDLLIMPEXP_BASE bool wxRenameFile(const wxString& file1, const wxString& file2, bool overwrite = true); - -// Get current working directory. -WXDLLIMPEXP_BASE wxString wxGetCwd(); - -// Set working directory -WXDLLIMPEXP_BASE bool wxSetWorkingDirectory(const wxString& d); - -// Make directory -WXDLLIMPEXP_BASE bool wxMkdir(const wxString& dir, int perm = wxS_DIR_DEFAULT); - -// Remove directory. Flags reserved for future use. -WXDLLIMPEXP_BASE bool wxRmdir(const wxString& dir, int flags = 0); - -// Return the type of an open file -WXDLLIMPEXP_BASE wxFileKind wxGetFileKind(int fd); -WXDLLIMPEXP_BASE wxFileKind wxGetFileKind(FILE *fp); - -// permissions; these functions work both on files and directories: -WXDLLIMPEXP_BASE bool wxIsWritable(const wxString &path); -WXDLLIMPEXP_BASE bool wxIsReadable(const wxString &path); -WXDLLIMPEXP_BASE bool wxIsExecutable(const wxString &path); - -// ---------------------------------------------------------------------------- -// separators in file names -// ---------------------------------------------------------------------------- - -// between file name and extension -#define wxFILE_SEP_EXT wxT('.') - -// between drive/volume name and the path -#define wxFILE_SEP_DSK wxT(':') - -// between the path components -#define wxFILE_SEP_PATH_DOS wxT('\\') -#define wxFILE_SEP_PATH_UNIX wxT('/') -#define wxFILE_SEP_PATH_MAC wxT(':') -#define wxFILE_SEP_PATH_VMS wxT('.') // VMS also uses '[' and ']' - -// separator in the path list (as in PATH environment variable) -// there is no PATH variable in Classic Mac OS so just use the -// semicolon (it must be different from the file name separator) -// NB: these are strings and not characters on purpose! -#define wxPATH_SEP_DOS wxT(";") -#define wxPATH_SEP_UNIX wxT(":") -#define wxPATH_SEP_MAC wxT(";") - -// platform independent versions -#if defined(__UNIX__) - // CYGWIN also uses UNIX settings - #define wxFILE_SEP_PATH wxFILE_SEP_PATH_UNIX - #define wxPATH_SEP wxPATH_SEP_UNIX -#elif defined(__MAC__) - #define wxFILE_SEP_PATH wxFILE_SEP_PATH_MAC - #define wxPATH_SEP wxPATH_SEP_MAC -#else // Windows and OS/2 - #define wxFILE_SEP_PATH wxFILE_SEP_PATH_DOS - #define wxPATH_SEP wxPATH_SEP_DOS -#endif // Unix/Windows - -// this is useful for wxString::IsSameAs(): to compare two file names use -// filename1.IsSameAs(filename2, wxARE_FILENAMES_CASE_SENSITIVE) -#if defined(__UNIX__) && !defined(__DARWIN__) - #define wxARE_FILENAMES_CASE_SENSITIVE true -#else // Windows, Mac OS and OS/2 - #define wxARE_FILENAMES_CASE_SENSITIVE false -#endif // Unix/Windows - -// is the char a path separator? -inline bool wxIsPathSeparator(wxChar c) -{ - // under DOS/Windows we should understand both Unix and DOS file separators -#if defined(__UNIX__) || defined(__MAC__) - return c == wxFILE_SEP_PATH; -#else - return c == wxFILE_SEP_PATH_DOS || c == wxFILE_SEP_PATH_UNIX; -#endif -} - -// does the string ends with path separator? -WXDLLIMPEXP_BASE bool wxEndsWithPathSeparator(const wxString& filename); - -#if WXWIN_COMPATIBILITY_2_8 -// split the full path into path (including drive for DOS), name and extension -// (understands both '/' and '\\') -// Deprecated in favour of wxFileName::SplitPath -wxDEPRECATED( WXDLLIMPEXP_BASE void wxSplitPath(const wxString& fileName, - wxString *pstrPath, - wxString *pstrName, - wxString *pstrExt) ); -#endif - -// find a file in a list of directories, returns false if not found -WXDLLIMPEXP_BASE bool wxFindFileInPath(wxString *pStr, const wxString& szPath, const wxString& szFile); - -// Get the OS directory if appropriate (such as the Windows directory). -// On non-Windows platform, probably just return the empty string. -WXDLLIMPEXP_BASE wxString wxGetOSDirectory(); - -#if wxUSE_DATETIME - -// Get file modification time -WXDLLIMPEXP_BASE time_t wxFileModificationTime(const wxString& filename); - -#endif // wxUSE_DATETIME - -// Parses the wildCard, returning the number of filters. -// Returns 0 if none or if there's a problem, -// The arrays will contain an equal number of items found before the error. -// wildCard is in the form: -// "All files (*)|*|Image Files (*.jpeg *.png)|*.jpg;*.png" -WXDLLIMPEXP_BASE int wxParseCommonDialogsFilter(const wxString& wildCard, wxArrayString& descriptions, wxArrayString& filters); - -// ---------------------------------------------------------------------------- -// classes -// ---------------------------------------------------------------------------- - -#ifdef __UNIX__ - -// set umask to the given value in ctor and reset it to the old one in dtor -class WXDLLIMPEXP_BASE wxUmaskChanger -{ -public: - // change the umask to the given one if it is not -1: this allows to write - // the same code whether you really want to change umask or not, as is in - // wxFileConfig::Flush() for example - wxUmaskChanger(int umaskNew) - { - m_umaskOld = umaskNew == -1 ? -1 : (int)umask((mode_t)umaskNew); - } - - ~wxUmaskChanger() - { - if ( m_umaskOld != -1 ) - umask((mode_t)m_umaskOld); - } - -private: - int m_umaskOld; -}; - -// this macro expands to an "anonymous" wxUmaskChanger object under Unix and -// nothing elsewhere -#define wxCHANGE_UMASK(m) wxUmaskChanger wxMAKE_UNIQUE_NAME(umaskChanger_)(m) - -#else // !__UNIX__ - -#define wxCHANGE_UMASK(m) - -#endif // __UNIX__/!__UNIX__ - - -// Path searching -class WXDLLIMPEXP_BASE wxPathList : public wxArrayString -{ -public: - wxPathList() {} - wxPathList(const wxArrayString &arr) - { Add(arr); } - - // Adds all paths in environment variable - void AddEnvList(const wxString& envVariable); - - // Adds given path to this list - bool Add(const wxString& path); - void Add(const wxArrayString &paths); - - // Find the first full path for which the file exists - wxString FindValidPath(const wxString& filename) const; - - // Find the first full path for which the file exists; ensure it's an - // absolute path that gets returned. - wxString FindAbsoluteValidPath(const wxString& filename) const; - - // Given full path and filename, add path to list - bool EnsureFileAccessible(const wxString& path); -}; - -#endif // _WX_FILEFN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filehistory.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filehistory.h deleted file mode 100644 index 9cd4be40..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filehistory.h +++ /dev/null @@ -1,103 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/filehistory.h -// Purpose: wxFileHistory class -// Author: Julian Smart, Vaclav Slavik -// Created: 2010-05-03 -// Copyright: (c) Julian Smart, Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILEHISTORY_H_ -#define _WX_FILEHISTORY_H_ - -#include "wx/defs.h" - -#if wxUSE_FILE_HISTORY - -#include "wx/windowid.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/string.h" -#include "wx/arrstr.h" - -class WXDLLIMPEXP_FWD_CORE wxMenu; -class WXDLLIMPEXP_FWD_BASE wxConfigBase; -class WXDLLIMPEXP_FWD_BASE wxFileName; - -// ---------------------------------------------------------------------------- -// File history management -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFileHistoryBase : public wxObject -{ -public: - wxFileHistoryBase(size_t maxFiles = 9, wxWindowID idBase = wxID_FILE1); - - // Operations - virtual void AddFileToHistory(const wxString& file); - virtual void RemoveFileFromHistory(size_t i); - virtual int GetMaxFiles() const { return (int)m_fileMaxFiles; } - virtual void UseMenu(wxMenu *menu); - - // Remove menu from the list (MDI child may be closing) - virtual void RemoveMenu(wxMenu *menu); - -#if wxUSE_CONFIG - virtual void Load(const wxConfigBase& config); - virtual void Save(wxConfigBase& config); -#endif // wxUSE_CONFIG - - virtual void AddFilesToMenu(); - virtual void AddFilesToMenu(wxMenu* menu); // Single menu - - // Accessors - virtual wxString GetHistoryFile(size_t i) const { return m_fileHistory[i]; } - virtual size_t GetCount() const { return m_fileHistory.GetCount(); } - - const wxList& GetMenus() const { return m_fileMenus; } - - // Set/get base id - void SetBaseId(wxWindowID baseId) { m_idBase = baseId; } - wxWindowID GetBaseId() const { return m_idBase; } - -protected: - // Last n files - wxArrayString m_fileHistory; - - // Menus to maintain (may need several for an MDI app) - wxList m_fileMenus; - - // Max files to maintain - size_t m_fileMaxFiles; - -private: - // The ID of the first history menu item (Doesn't have to be wxID_FILE1) - wxWindowID m_idBase; - - // Normalize a file name to canonical form. We have a special function for - // this to ensure the same normalization is used everywhere. - static wxString NormalizeFileName(const wxFileName& filename); - - // Remove any existing entries from the associated menus. - void RemoveExistingHistory(); - - wxDECLARE_NO_COPY_CLASS(wxFileHistoryBase); -}; - -#if defined(__WXGTK20__) - #include "wx/gtk/filehistory.h" -#else - // no platform-specific implementation of wxFileHistory yet - class WXDLLIMPEXP_CORE wxFileHistory : public wxFileHistoryBase - { - public: - wxFileHistory(size_t maxFiles = 9, wxWindowID idBase = wxID_FILE1) - : wxFileHistoryBase(maxFiles, idBase) {} - - wxDECLARE_DYNAMIC_CLASS(wxFileHistory); - }; -#endif - -#endif // wxUSE_FILE_HISTORY - -#endif // _WX_FILEHISTORY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filename.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filename.h deleted file mode 100644 index e2b05ec1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filename.h +++ /dev/null @@ -1,630 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/filename.h -// Purpose: wxFileName - encapsulates a file path -// Author: Robert Roebling, Vadim Zeitlin -// Modified by: -// Created: 28.12.00 -// Copyright: (c) 2000 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILENAME_H_ -#define _WX_FILENAME_H_ - -#include "wx/arrstr.h" -#include "wx/filefn.h" -#include "wx/datetime.h" -#include "wx/intl.h" -#include "wx/longlong.h" -#include "wx/file.h" - -#if wxUSE_FILE -class WXDLLIMPEXP_FWD_BASE wxFile; -#endif - -#if wxUSE_FFILE -class WXDLLIMPEXP_FWD_BASE wxFFile; -#endif - -// this symbol is defined for the platforms where file systems use volumes in -// paths -#if defined(__WINDOWS__) - #define wxHAS_FILESYSTEM_VOLUMES -#endif - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// the various values for the path format: this mainly affects the path -// separator but also whether or not the path has the drive part (as under -// Windows) -enum wxPathFormat -{ - wxPATH_NATIVE = 0, // the path format for the current platform - wxPATH_UNIX, - wxPATH_BEOS = wxPATH_UNIX, - wxPATH_MAC, - wxPATH_DOS, - wxPATH_WIN = wxPATH_DOS, - wxPATH_OS2 = wxPATH_DOS, - wxPATH_VMS, - - wxPATH_MAX // Not a valid value for specifying path format -}; - -// different conventions that may be used with GetHumanReadableSize() -enum wxSizeConvention -{ - wxSIZE_CONV_TRADITIONAL, // 1024 bytes = 1 KB - wxSIZE_CONV_IEC, // 1024 bytes = 1 KiB - wxSIZE_CONV_SI // 1000 bytes = 1 KB -}; - -// the kind of normalization to do with the file name: these values can be -// or'd together to perform several operations at once -enum wxPathNormalize -{ - wxPATH_NORM_ENV_VARS = 0x0001, // replace env vars with their values - wxPATH_NORM_DOTS = 0x0002, // squeeze all .. and . - wxPATH_NORM_TILDE = 0x0004, // Unix only: replace ~ and ~user - wxPATH_NORM_CASE = 0x0008, // if case insensitive => tolower - wxPATH_NORM_ABSOLUTE = 0x0010, // make the path absolute - wxPATH_NORM_LONG = 0x0020, // make the path the long form - wxPATH_NORM_SHORTCUT = 0x0040, // resolve the shortcut, if it is a shortcut - wxPATH_NORM_ALL = 0x00ff & ~wxPATH_NORM_CASE -}; - -// what exactly should GetPath() return? -enum -{ - wxPATH_NO_SEPARATOR = 0x0000, // for symmetry with wxPATH_GET_SEPARATOR - wxPATH_GET_VOLUME = 0x0001, // include the volume if applicable - wxPATH_GET_SEPARATOR = 0x0002 // terminate the path with the separator -}; - -// Mkdir flags -enum -{ - wxPATH_MKDIR_FULL = 0x0001 // create directories recursively -}; - -// Rmdir flags -enum -{ - wxPATH_RMDIR_FULL = 0x0001, // delete with subdirectories if empty - wxPATH_RMDIR_RECURSIVE = 0x0002 // delete all recursively (dangerous!) -}; - -// FileExists flags -enum -{ - wxFILE_EXISTS_REGULAR = 0x0001, // check for existence of a regular file - wxFILE_EXISTS_DIR = 0x0002, // check for existence of a directory - wxFILE_EXISTS_SYMLINK = 0x1004, // check for existence of a symbolic link; - // also sets wxFILE_EXISTS_NO_FOLLOW as - // it would never be satisfied otherwise - wxFILE_EXISTS_DEVICE = 0x0008, // check for existence of a device - wxFILE_EXISTS_FIFO = 0x0016, // check for existence of a FIFO - wxFILE_EXISTS_SOCKET = 0x0032, // check for existence of a socket - // gap for future types - wxFILE_EXISTS_NO_FOLLOW = 0x1000, // don't dereference a contained symlink - wxFILE_EXISTS_ANY = 0x1FFF // check for existence of anything -}; - -#if wxUSE_LONGLONG -// error code of wxFileName::GetSize() -extern WXDLLIMPEXP_DATA_BASE(const wxULongLong) wxInvalidSize; -#endif // wxUSE_LONGLONG - - - -// ---------------------------------------------------------------------------- -// wxFileName: encapsulates a file path -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxFileName -{ -public: - // constructors and assignment - - // the usual stuff - wxFileName() { Clear(); } - wxFileName(const wxFileName& filepath) { Assign(filepath); } - - // from a full filename: if it terminates with a '/', a directory path - // is contructed (the name will be empty), otherwise a file name and - // extension are extracted from it - wxFileName( const wxString& fullpath, wxPathFormat format = wxPATH_NATIVE ) - { Assign( fullpath, format ); m_dontFollowLinks = false; } - - // from a directory name and a file name - wxFileName(const wxString& path, - const wxString& name, - wxPathFormat format = wxPATH_NATIVE) - { Assign(path, name, format); m_dontFollowLinks = false; } - - // from a volume, directory name, file base name and extension - wxFileName(const wxString& volume, - const wxString& path, - const wxString& name, - const wxString& ext, - wxPathFormat format = wxPATH_NATIVE) - { Assign(volume, path, name, ext, format); m_dontFollowLinks = false; } - - // from a directory name, file base name and extension - wxFileName(const wxString& path, - const wxString& name, - const wxString& ext, - wxPathFormat format = wxPATH_NATIVE) - { Assign(path, name, ext, format); m_dontFollowLinks = false; } - - // the same for delayed initialization - - void Assign(const wxFileName& filepath); - - void Assign(const wxString& fullpath, - wxPathFormat format = wxPATH_NATIVE); - - void Assign(const wxString& volume, - const wxString& path, - const wxString& name, - const wxString& ext, - bool hasExt, - wxPathFormat format = wxPATH_NATIVE); - - void Assign(const wxString& volume, - const wxString& path, - const wxString& name, - const wxString& ext, - wxPathFormat format = wxPATH_NATIVE) - { Assign(volume, path, name, ext, !ext.empty(), format); } - - void Assign(const wxString& path, - const wxString& name, - wxPathFormat format = wxPATH_NATIVE); - - void Assign(const wxString& path, - const wxString& name, - const wxString& ext, - wxPathFormat format = wxPATH_NATIVE); - - void AssignDir(const wxString& dir, wxPathFormat format = wxPATH_NATIVE); - - // assorted assignment operators - - wxFileName& operator=(const wxFileName& filename) - { if (this != &filename) Assign(filename); return *this; } - - wxFileName& operator=(const wxString& filename) - { Assign(filename); return *this; } - - // reset all components to default, uninitialized state - void Clear(); - - // static pseudo constructors - static wxFileName FileName(const wxString& file, - wxPathFormat format = wxPATH_NATIVE); - static wxFileName DirName(const wxString& dir, - wxPathFormat format = wxPATH_NATIVE); - - // file tests - - // is the filename valid at all? - bool IsOk() const - { - // we're fine if we have the path or the name or if we're a root dir - return m_dirs.size() != 0 || !m_name.empty() || !m_relative || - !m_ext.empty() || m_hasExt; - } - - // does the file with this name exist? - bool FileExists() const; - static bool FileExists( const wxString &file ); - - // does the directory with this name exist? - bool DirExists() const; - static bool DirExists( const wxString &dir ); - - // does anything at all with this name (i.e. file, directory or some - // other file system object such as a device, socket, ...) exist? - bool Exists(int flags = wxFILE_EXISTS_ANY) const; - static bool Exists(const wxString& path, int flags = wxFILE_EXISTS_ANY); - - - // checks on most common flags for files/directories; - // more platform-specific features (like e.g. Unix permissions) are not - // available in wxFileName - - bool IsDirWritable() const { return wxIsWritable(GetPath()); } - static bool IsDirWritable(const wxString &path) { return wxDirExists(path) && wxIsWritable(path); } - - bool IsDirReadable() const { return wxIsReadable(GetPath()); } - static bool IsDirReadable(const wxString &path) { return wxDirExists(path) && wxIsReadable(path); } - - // NOTE: IsDirExecutable() is not present because the meaning of "executable" - // directory is very platform-dependent and also not so useful - - bool IsFileWritable() const { return wxIsWritable(GetFullPath()); } - static bool IsFileWritable(const wxString &path) { return wxFileExists(path) && wxIsWritable(path); } - - bool IsFileReadable() const { return wxIsReadable(GetFullPath()); } - static bool IsFileReadable(const wxString &path) { return wxFileExists(path) && wxIsReadable(path); } - - bool IsFileExecutable() const { return wxIsExecutable(GetFullPath()); } - static bool IsFileExecutable(const wxString &path) { return wxFileExists(path) && wxIsExecutable(path); } - - // set the file permissions to a combination of wxPosixPermissions enum - // values - bool SetPermissions(int permissions); - - - // time functions -#if wxUSE_DATETIME - // set the file last access/mod and creation times - // (any of the pointers may be NULL) - bool SetTimes(const wxDateTime *dtAccess, - const wxDateTime *dtMod, - const wxDateTime *dtCreate) const; - - // set the access and modification times to the current moment - bool Touch() const; - - // return the last access, last modification and create times - // (any of the pointers may be NULL) - bool GetTimes(wxDateTime *dtAccess, - wxDateTime *dtMod, - wxDateTime *dtCreate) const; - - // convenience wrapper: get just the last mod time of the file - wxDateTime GetModificationTime() const - { - wxDateTime dtMod; - (void)GetTimes(NULL, &dtMod, NULL); - return dtMod; - } -#endif // wxUSE_DATETIME - - // various file/dir operations - - // retrieve the value of the current working directory - void AssignCwd(const wxString& volume = wxEmptyString); - static wxString GetCwd(const wxString& volume = wxEmptyString); - - // change the current working directory - bool SetCwd() const; - static bool SetCwd( const wxString &cwd ); - - // get the value of user home (Unix only mainly) - void AssignHomeDir(); - static wxString GetHomeDir(); - - // get the system temporary directory - static wxString GetTempDir(); - -#if wxUSE_FILE || wxUSE_FFILE - // get a temp file name starting with the specified prefix - void AssignTempFileName(const wxString& prefix); - static wxString CreateTempFileName(const wxString& prefix); -#endif // wxUSE_FILE - -#if wxUSE_FILE - // get a temp file name starting with the specified prefix and open the - // file passed to us using this name for writing (atomically if - // possible) - void AssignTempFileName(const wxString& prefix, wxFile *fileTemp); - static wxString CreateTempFileName(const wxString& prefix, - wxFile *fileTemp); -#endif // wxUSE_FILE - -#if wxUSE_FFILE - // get a temp file name starting with the specified prefix and open the - // file passed to us using this name for writing (atomically if - // possible) - void AssignTempFileName(const wxString& prefix, wxFFile *fileTemp); - static wxString CreateTempFileName(const wxString& prefix, - wxFFile *fileTemp); -#endif // wxUSE_FFILE - - // directory creation and removal. - bool Mkdir(int perm = wxS_DIR_DEFAULT, int flags = 0) const; - static bool Mkdir(const wxString &dir, int perm = wxS_DIR_DEFAULT, - int flags = 0); - - bool Rmdir(int flags = 0) const; - static bool Rmdir(const wxString &dir, int flags = 0); - - // operations on the path - - // normalize the path: with the default flags value, the path will be - // made absolute, without any ".." and "." and all environment - // variables will be expanded in it - // - // this may be done using another (than current) value of cwd - bool Normalize(int flags = wxPATH_NORM_ALL, - const wxString& cwd = wxEmptyString, - wxPathFormat format = wxPATH_NATIVE); - - // get a path path relative to the given base directory, i.e. opposite - // of Normalize - // - // pass an empty string to get a path relative to the working directory - // - // returns true if the file name was modified, false if we failed to do - // anything with it (happens when the file is on a different volume, - // for example) - bool MakeRelativeTo(const wxString& pathBase = wxEmptyString, - wxPathFormat format = wxPATH_NATIVE); - - // make the path absolute - // - // this may be done using another (than current) value of cwd - bool MakeAbsolute(const wxString& cwd = wxEmptyString, - wxPathFormat format = wxPATH_NATIVE) - { return Normalize(wxPATH_NORM_DOTS | wxPATH_NORM_ABSOLUTE | - wxPATH_NORM_TILDE, cwd, format); } - - - // If the path is a symbolic link (Unix-only), indicate that all - // filesystem operations on this path should be performed on the link - // itself and not on the file it points to, as is the case by default. - // - // No effect if this is not a symbolic link. - void DontFollowLink() - { - m_dontFollowLinks = true; - } - - // If the path is a symbolic link (Unix-only), returns whether various - // file operations should act on the link itself, or on its target. - // - // This does not test if the path is really a symlink or not. - bool ShouldFollowLink() const - { - return !m_dontFollowLinks; - } - -#if defined(__WIN32__) && wxUSE_OLE - // if the path is a shortcut, return the target and optionally, - // the arguments - bool GetShortcutTarget(const wxString& shortcutPath, - wxString& targetFilename, - wxString* arguments = NULL) const; -#endif - - // if the path contains the value of the environment variable named envname - // then this function replaces it with the string obtained from - // wxString::Format(replacementFmtString, value_of_envname_variable) - // - // Example: - // wxFileName fn("/usr/openwin/lib/someFile"); - // fn.ReplaceEnvVariable("OPENWINHOME"); - // // now fn.GetFullPath() == "$OPENWINHOME/lib/someFile" - bool ReplaceEnvVariable(const wxString& envname, - const wxString& replacementFmtString = "$%s", - wxPathFormat format = wxPATH_NATIVE); - - // replaces, if present in the path, the home directory for the given user - // (see wxGetHomeDir) with a tilde - bool ReplaceHomeDir(wxPathFormat format = wxPATH_NATIVE); - - - // Comparison - - // compares with the rules of the given platforms format - bool SameAs(const wxFileName& filepath, - wxPathFormat format = wxPATH_NATIVE) const; - - // compare with another filename object - bool operator==(const wxFileName& filename) const - { return SameAs(filename); } - bool operator!=(const wxFileName& filename) const - { return !SameAs(filename); } - - // compare with a filename string interpreted as a native file name - bool operator==(const wxString& filename) const - { return SameAs(wxFileName(filename)); } - bool operator!=(const wxString& filename) const - { return !SameAs(wxFileName(filename)); } - - // are the file names of this type cases sensitive? - static bool IsCaseSensitive( wxPathFormat format = wxPATH_NATIVE ); - - // is this filename absolute? - bool IsAbsolute(wxPathFormat format = wxPATH_NATIVE) const; - - // is this filename relative? - bool IsRelative(wxPathFormat format = wxPATH_NATIVE) const - { return !IsAbsolute(format); } - - // Returns the characters that aren't allowed in filenames - // on the specified platform. - static wxString GetForbiddenChars(wxPathFormat format = wxPATH_NATIVE); - - // Information about path format - - // get the string separating the volume from the path for this format, - // return an empty string if this format doesn't support the notion of - // volumes at all - static wxString GetVolumeSeparator(wxPathFormat format = wxPATH_NATIVE); - - // get the string of path separators for this format - static wxString GetPathSeparators(wxPathFormat format = wxPATH_NATIVE); - - // get the string of path terminators, i.e. characters which terminate the - // path - static wxString GetPathTerminators(wxPathFormat format = wxPATH_NATIVE); - - // get the canonical path separator for this format - static wxUniChar GetPathSeparator(wxPathFormat format = wxPATH_NATIVE) - { return GetPathSeparators(format)[0u]; } - - // is the char a path separator for this format? - static bool IsPathSeparator(wxChar ch, wxPathFormat format = wxPATH_NATIVE); - - // is this is a DOS path which beings with a windows unique volume name - // ('\\?\Volume{guid}\')? - static bool IsMSWUniqueVolumeNamePath(const wxString& path, - wxPathFormat format = wxPATH_NATIVE); - - // Dir accessors - size_t GetDirCount() const { return m_dirs.size(); } - bool AppendDir(const wxString& dir); - void PrependDir(const wxString& dir); - bool InsertDir(size_t before, const wxString& dir); - void RemoveDir(size_t pos); - void RemoveLastDir() { RemoveDir(GetDirCount() - 1); } - - // Other accessors - void SetExt( const wxString &ext ) { m_ext = ext; m_hasExt = !m_ext.empty(); } - void ClearExt() { m_ext.clear(); m_hasExt = false; } - void SetEmptyExt() { m_ext.clear(); m_hasExt = true; } - wxString GetExt() const { return m_ext; } - bool HasExt() const { return m_hasExt; } - - void SetName( const wxString &name ) { m_name = name; } - wxString GetName() const { return m_name; } - bool HasName() const { return !m_name.empty(); } - - void SetVolume( const wxString &volume ) { m_volume = volume; } - wxString GetVolume() const { return m_volume; } - bool HasVolume() const { return !m_volume.empty(); } - - // full name is the file name + extension (but without the path) - void SetFullName(const wxString& fullname); - wxString GetFullName() const; - - const wxArrayString& GetDirs() const { return m_dirs; } - - // flags are combination of wxPATH_GET_XXX flags - wxString GetPath(int flags = wxPATH_GET_VOLUME, - wxPathFormat format = wxPATH_NATIVE) const; - - // Replace current path with this one - void SetPath( const wxString &path, wxPathFormat format = wxPATH_NATIVE ); - - // Construct full path with name and ext - wxString GetFullPath( wxPathFormat format = wxPATH_NATIVE ) const; - - // Return the short form of the path (returns identity on non-Windows platforms) - wxString GetShortPath() const; - - // Return the long form of the path (returns identity on non-Windows platforms) - wxString GetLongPath() const; - - // Is this a file or directory (not necessarily an existing one) - bool IsDir() const { return m_name.empty() && m_ext.empty(); } - - // various helpers - - // get the canonical path format for this platform - static wxPathFormat GetFormat( wxPathFormat format = wxPATH_NATIVE ); - - // split a fullpath into the volume, path, (base) name and extension - // (all of the pointers can be NULL) - static void SplitPath(const wxString& fullpath, - wxString *volume, - wxString *path, - wxString *name, - wxString *ext, - bool *hasExt = NULL, - wxPathFormat format = wxPATH_NATIVE); - - static void SplitPath(const wxString& fullpath, - wxString *volume, - wxString *path, - wxString *name, - wxString *ext, - wxPathFormat format) - { - SplitPath(fullpath, volume, path, name, ext, NULL, format); - } - - // compatibility version: volume is part of path - static void SplitPath(const wxString& fullpath, - wxString *path, - wxString *name, - wxString *ext, - wxPathFormat format = wxPATH_NATIVE); - - // split a path into volume and pure path part - static void SplitVolume(const wxString& fullpathWithVolume, - wxString *volume, - wxString *path, - wxPathFormat format = wxPATH_NATIVE); - - // strip the file extension: "foo.bar" => "foo" (but ".baz" => ".baz") - static wxString StripExtension(const wxString& fullpath); - -#ifdef wxHAS_FILESYSTEM_VOLUMES - // return the string representing a file system volume, or drive - static wxString GetVolumeString(char drive, int flags = wxPATH_GET_SEPARATOR); -#endif // wxHAS_FILESYSTEM_VOLUMES - - // File size - -#if wxUSE_LONGLONG - // returns the size of the given filename - wxULongLong GetSize() const; - static wxULongLong GetSize(const wxString &file); - - // returns the size in a human readable form - wxString - GetHumanReadableSize(const wxString& nullsize = wxGetTranslation("Not available"), - int precision = 1, - wxSizeConvention conv = wxSIZE_CONV_TRADITIONAL) const; - static wxString - GetHumanReadableSize(const wxULongLong& sz, - const wxString& nullsize = wxGetTranslation("Not available"), - int precision = 1, - wxSizeConvention conv = wxSIZE_CONV_TRADITIONAL); -#endif // wxUSE_LONGLONG - - - // deprecated methods, don't use any more - // -------------------------------------- - - wxString GetPath( bool withSep, wxPathFormat format = wxPATH_NATIVE ) const - { return GetPath(withSep ? wxPATH_GET_SEPARATOR : 0, format); } - wxString GetPathWithSep(wxPathFormat format = wxPATH_NATIVE ) const - { return GetPath(wxPATH_GET_VOLUME | wxPATH_GET_SEPARATOR, format); } - -private: - // check whether this dir is valid for Append/Prepend/InsertDir() - static bool IsValidDirComponent(const wxString& dir); - - // the drive/volume/device specification (always empty for Unix) - wxString m_volume; - - // the path components of the file - wxArrayString m_dirs; - - // the file name and extension (empty for directories) - wxString m_name, - m_ext; - - // when m_dirs is empty it may mean either that we have no path at all or - // that our path is '/', i.e. the root directory - // - // we use m_relative to distinguish between these two cases, it will be - // true in the former and false in the latter - // - // NB: the path is not absolute just because m_relative is false, it still - // needs the drive (i.e. volume) in some formats (Windows) - bool m_relative; - - // when m_ext is empty, it may be because we don't have any extension or - // because we have an empty extension - // - // the difference is important as file with name "foo" and without - // extension has full name "foo" while with empty extension it is "foo." - bool m_hasExt; - - // by default, symlinks are dereferenced but this flag can be set with - // DontFollowLink() to change this and make different operations work on - // this file path itself instead of the target of the symlink - bool m_dontFollowLinks; -}; - -#endif // _WX_FILENAME_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filepicker.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filepicker.h deleted file mode 100644 index 6c9b3f85..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filepicker.h +++ /dev/null @@ -1,420 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/filepicker.h -// Purpose: wxFilePickerCtrl, wxDirPickerCtrl base header -// Author: Francesco Montorsi -// Modified by: -// Created: 14/4/2006 -// Copyright: (c) Francesco Montorsi -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILEDIRPICKER_H_BASE_ -#define _WX_FILEDIRPICKER_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_FILEPICKERCTRL || wxUSE_DIRPICKERCTRL - -#include "wx/pickerbase.h" -#include "wx/filename.h" - -class WXDLLIMPEXP_FWD_CORE wxDialog; -class WXDLLIMPEXP_FWD_CORE wxFileDirPickerEvent; - -extern WXDLLIMPEXP_DATA_CORE(const char) wxFilePickerWidgetLabel[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxFilePickerWidgetNameStr[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxFilePickerCtrlNameStr[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxFileSelectorPromptStr[]; - -extern WXDLLIMPEXP_DATA_CORE(const char) wxDirPickerWidgetLabel[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxDirPickerWidgetNameStr[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxDirPickerCtrlNameStr[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxDirSelectorPromptStr[]; - -// ---------------------------------------------------------------------------- -// wxFileDirPickerEvent: used by wxFilePickerCtrl and wxDirPickerCtrl only -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFileDirPickerEvent : public wxCommandEvent -{ -public: - wxFileDirPickerEvent() {} - wxFileDirPickerEvent(wxEventType type, wxObject *generator, int id, const wxString &path) - : wxCommandEvent(type, id), - m_path(path) - { - SetEventObject(generator); - } - - wxString GetPath() const { return m_path; } - void SetPath(const wxString &p) { m_path = p; } - - // default copy ctor, assignment operator and dtor are ok - virtual wxEvent *Clone() const wxOVERRIDE { return new wxFileDirPickerEvent(*this); } - -private: - wxString m_path; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxFileDirPickerEvent); -}; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_FILEPICKER_CHANGED, wxFileDirPickerEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_DIRPICKER_CHANGED, wxFileDirPickerEvent ); - -// ---------------------------------------------------------------------------- -// event types and macros -// ---------------------------------------------------------------------------- - -typedef void (wxEvtHandler::*wxFileDirPickerEventFunction)(wxFileDirPickerEvent&); - -#define wxFileDirPickerEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxFileDirPickerEventFunction, func) - -#define EVT_FILEPICKER_CHANGED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_FILEPICKER_CHANGED, id, wxFileDirPickerEventHandler(fn)) -#define EVT_DIRPICKER_CHANGED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_DIRPICKER_CHANGED, id, wxFileDirPickerEventHandler(fn)) - -// ---------------------------------------------------------------------------- -// wxFileDirPickerWidgetBase: a generic abstract interface which must be -// implemented by controls used by wxFileDirPickerCtrlBase -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFileDirPickerWidgetBase -{ -public: - wxFileDirPickerWidgetBase() { } - virtual ~wxFileDirPickerWidgetBase() { } - - // Path here is the name of the selected file or directory. - wxString GetPath() const { return m_path; } - virtual void SetPath(const wxString &str) { m_path=str; } - - // Set the directory to open the file browse dialog at initially. - virtual void SetInitialDirectory(const wxString& dir) = 0; - - // returns the picker widget cast to wxControl - virtual wxControl *AsControl() = 0; - -protected: - virtual void UpdateDialogPath(wxDialog *) = 0; - virtual void UpdatePathFromDialog(wxDialog *) = 0; - - wxString m_path; -}; - -// Styles which must be supported by all controls implementing wxFileDirPickerWidgetBase -// NB: these styles must be defined to carefully-chosen values to -// avoid conflicts with wxButton's styles - -#define wxFLP_OPEN 0x0400 -#define wxFLP_SAVE 0x0800 -#define wxFLP_OVERWRITE_PROMPT 0x1000 -#define wxFLP_FILE_MUST_EXIST 0x2000 -#define wxFLP_CHANGE_DIR 0x4000 -#define wxFLP_SMALL wxPB_SMALL - -// NOTE: wxMULTIPLE is not supported ! - - -#define wxDIRP_DIR_MUST_EXIST 0x0008 -#define wxDIRP_CHANGE_DIR 0x0010 -#define wxDIRP_SMALL wxPB_SMALL - - -// map platform-dependent controls which implement the wxFileDirPickerWidgetBase -// under the name "wxFilePickerWidget" and "wxDirPickerWidget". -// NOTE: wxFileDirPickerCtrlBase will allocate a wx{File|Dir}PickerWidget and this -// requires that all classes being mapped as wx{File|Dir}PickerWidget have the -// same prototype for the contructor... -// since GTK >= 2.6, there is GtkFileButton -#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__) - #include "wx/gtk/filepicker.h" - #define wxFilePickerWidget wxFileButton - #define wxDirPickerWidget wxDirButton -#else - #include "wx/generic/filepickerg.h" - #define wxFilePickerWidget wxGenericFileButton - #define wxDirPickerWidget wxGenericDirButton -#endif - - - -// ---------------------------------------------------------------------------- -// wxFileDirPickerCtrlBase -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFileDirPickerCtrlBase : public wxPickerBase -{ -public: - wxFileDirPickerCtrlBase() {} - -protected: - // NB: no default values since this function will never be used - // directly by the user and derived classes wouldn't use them - bool CreateBase(wxWindow *parent, - wxWindowID id, - const wxString& path, - const wxString &message, - const wxString &wildcard, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name); - -public: // public API - - wxString GetPath() const; - void SetPath(const wxString &str); - - // Set the directory to open the file browse dialog at initially. - void SetInitialDirectory(const wxString& dir) - { - m_pickerIface->SetInitialDirectory(dir); - } - -public: // internal functions - - void UpdatePickerFromTextCtrl() wxOVERRIDE; - void UpdateTextCtrlFromPicker() wxOVERRIDE; - - // event handler for our picker - void OnFileDirChange(wxFileDirPickerEvent &); - - // TRUE if any textctrl change should update the current working directory - virtual bool IsCwdToUpdate() const = 0; - - // Returns the event type sent by this picker - virtual wxEventType GetEventType() const = 0; - - virtual void DoConnect( wxControl *sender, wxFileDirPickerCtrlBase *eventSink ) = 0; - - // Returns the filtered value currently placed in the text control (if present). - virtual wxString GetTextCtrlValue() const = 0; - -protected: - // creates the picker control - virtual - wxFileDirPickerWidgetBase *CreatePicker(wxWindow *parent, - const wxString& path, - const wxString& message, - const wxString& wildcard) = 0; - -protected: - - // m_picker object as wxFileDirPickerWidgetBase interface - wxFileDirPickerWidgetBase *m_pickerIface; -}; - -#endif // wxUSE_FILEPICKERCTRL || wxUSE_DIRPICKERCTRL - - -#if wxUSE_FILEPICKERCTRL - -// ---------------------------------------------------------------------------- -// wxFilePickerCtrl: platform-independent class which embeds the -// platform-dependent wxFilePickerWidget and, if wxFLP_USE_TEXTCTRL style is -// used, a textctrl next to it. -// ---------------------------------------------------------------------------- - -#define wxFLP_USE_TEXTCTRL (wxPB_USE_TEXTCTRL) - -#ifdef __WXGTK__ - // GTK apps usually don't have a textctrl next to the picker - #define wxFLP_DEFAULT_STYLE (wxFLP_OPEN|wxFLP_FILE_MUST_EXIST) -#else - #define wxFLP_DEFAULT_STYLE (wxFLP_USE_TEXTCTRL|wxFLP_OPEN|wxFLP_FILE_MUST_EXIST) -#endif - -class WXDLLIMPEXP_CORE wxFilePickerCtrl : public wxFileDirPickerCtrlBase -{ -public: - wxFilePickerCtrl() {} - - wxFilePickerCtrl(wxWindow *parent, - wxWindowID id, - const wxString& path = wxEmptyString, - const wxString& message = wxFileSelectorPromptStr, - const wxString& wildcard = wxFileSelectorDefaultWildcardStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxFLP_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxFilePickerCtrlNameStr) - { - Create(parent, id, path, message, wildcard, pos, size, style, - validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& path = wxEmptyString, - const wxString& message = wxFileSelectorPromptStr, - const wxString& wildcard = wxFileSelectorDefaultWildcardStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxFLP_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxFilePickerCtrlNameStr); - - void SetFileName(const wxFileName &filename) - { SetPath(filename.GetFullPath()); } - - wxFileName GetFileName() const - { return wxFileName(GetPath()); } - -public: // overrides - - // return the text control value in canonical form - wxString GetTextCtrlValue() const wxOVERRIDE; - - bool IsCwdToUpdate() const wxOVERRIDE - { return HasFlag(wxFLP_CHANGE_DIR); } - - wxEventType GetEventType() const wxOVERRIDE - { return wxEVT_FILEPICKER_CHANGED; } - - virtual void DoConnect( wxControl *sender, wxFileDirPickerCtrlBase *eventSink ) wxOVERRIDE - { - sender->Connect( wxEVT_FILEPICKER_CHANGED, - wxFileDirPickerEventHandler( wxFileDirPickerCtrlBase::OnFileDirChange ), - NULL, eventSink ); - } - - -protected: - virtual - wxFileDirPickerWidgetBase *CreatePicker(wxWindow *parent, - const wxString& path, - const wxString& message, - const wxString& wildcard) wxOVERRIDE - { - return new wxFilePickerWidget(parent, wxID_ANY, - wxGetTranslation(wxFilePickerWidgetLabel), - path, message, wildcard, - wxDefaultPosition, wxDefaultSize, - GetPickerStyle(GetWindowStyle())); - } - - // extracts the style for our picker from wxFileDirPickerCtrlBase's style - long GetPickerStyle(long style) const wxOVERRIDE - { - return style & (wxFLP_OPEN | - wxFLP_SAVE | - wxFLP_OVERWRITE_PROMPT | - wxFLP_FILE_MUST_EXIST | - wxFLP_CHANGE_DIR | - wxFLP_USE_TEXTCTRL | - wxFLP_SMALL); - } - -private: - wxDECLARE_DYNAMIC_CLASS(wxFilePickerCtrl); -}; - -#endif // wxUSE_FILEPICKERCTRL - - -#if wxUSE_DIRPICKERCTRL - -// ---------------------------------------------------------------------------- -// wxDirPickerCtrl: platform-independent class which embeds the -// platform-dependent wxDirPickerWidget and eventually a textctrl -// (see wxDIRP_USE_TEXTCTRL) next to it. -// ---------------------------------------------------------------------------- - -#define wxDIRP_USE_TEXTCTRL (wxPB_USE_TEXTCTRL) - -#ifdef __WXGTK__ - // GTK apps usually don't have a textctrl next to the picker - #define wxDIRP_DEFAULT_STYLE (wxDIRP_DIR_MUST_EXIST) -#else - #define wxDIRP_DEFAULT_STYLE (wxDIRP_USE_TEXTCTRL|wxDIRP_DIR_MUST_EXIST) -#endif - -class WXDLLIMPEXP_CORE wxDirPickerCtrl : public wxFileDirPickerCtrlBase -{ -public: - wxDirPickerCtrl() {} - - wxDirPickerCtrl(wxWindow *parent, wxWindowID id, - const wxString& path = wxEmptyString, - const wxString& message = wxDirSelectorPromptStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDIRP_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDirPickerCtrlNameStr) - { - Create(parent, id, path, message, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& path = wxEmptyString, - const wxString& message = wxDirSelectorPromptStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDIRP_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDirPickerCtrlNameStr); - - void SetDirName(const wxFileName &dirname) - { SetPath(dirname.GetPath()); } - - wxFileName GetDirName() const - { return wxFileName::DirName(GetPath()); } - -public: // overrides - - wxString GetTextCtrlValue() const wxOVERRIDE; - - bool IsCwdToUpdate() const wxOVERRIDE - { return HasFlag(wxDIRP_CHANGE_DIR); } - - wxEventType GetEventType() const wxOVERRIDE - { return wxEVT_DIRPICKER_CHANGED; } - - virtual void DoConnect( wxControl *sender, wxFileDirPickerCtrlBase *eventSink ) wxOVERRIDE - { - sender->Connect( wxEVT_DIRPICKER_CHANGED, - wxFileDirPickerEventHandler( wxFileDirPickerCtrlBase::OnFileDirChange ), - NULL, eventSink ); - } - - -protected: - virtual - wxFileDirPickerWidgetBase *CreatePicker(wxWindow *parent, - const wxString& path, - const wxString& message, - const wxString& WXUNUSED(wildcard)) wxOVERRIDE - { - return new wxDirPickerWidget(parent, wxID_ANY, - wxGetTranslation(wxDirPickerWidgetLabel), - path, message, - wxDefaultPosition, wxDefaultSize, - GetPickerStyle(GetWindowStyle())); - } - - // extracts the style for our picker from wxFileDirPickerCtrlBase's style - long GetPickerStyle(long style) const wxOVERRIDE - { - return style & (wxDIRP_DIR_MUST_EXIST | - wxDIRP_CHANGE_DIR | - wxDIRP_USE_TEXTCTRL | - wxDIRP_SMALL); - } - -private: - wxDECLARE_DYNAMIC_CLASS(wxDirPickerCtrl); -}; - -#endif // wxUSE_DIRPICKERCTRL - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_FILEPICKER_CHANGED wxEVT_FILEPICKER_CHANGED -#define wxEVT_COMMAND_DIRPICKER_CHANGED wxEVT_DIRPICKER_CHANGED - -#endif // _WX_FILEDIRPICKER_H_BASE_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filesys.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filesys.h deleted file mode 100644 index eb9a794e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/filesys.h +++ /dev/null @@ -1,314 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/filesys.h -// Purpose: class for opening files - virtual file system -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __FILESYS_H__ -#define __FILESYS_H__ - -#include "wx/defs.h" - -#if wxUSE_FILESYSTEM - -#if !wxUSE_STREAMS -#error You cannot compile virtual file systems without wxUSE_STREAMS -#endif - -#if wxUSE_HTML && !wxUSE_FILESYSTEM -#error You cannot compile wxHTML without virtual file systems -#endif - -#include "wx/stream.h" -#include "wx/datetime.h" -#include "wx/filename.h" -#include "wx/hashmap.h" - -class WXDLLIMPEXP_FWD_BASE wxFSFile; -class WXDLLIMPEXP_FWD_BASE wxFileSystemHandler; -class WXDLLIMPEXP_FWD_BASE wxFileSystem; - -//-------------------------------------------------------------------------------- -// wxFSFile -// This class is a file opened using wxFileSystem. It consists of -// input stream, location, mime type & optional anchor -// (in 'index.htm#chapter2', 'chapter2' is anchor) -//-------------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxFSFile : public wxObject -{ -public: - wxFSFile(wxInputStream *stream, const wxString& loc, - const wxString& mimetype, const wxString& anchor -#if wxUSE_DATETIME - , wxDateTime modif -#endif // wxUSE_DATETIME - ) - { - m_Stream = stream; - m_Location = loc; - m_MimeType = mimetype.Lower(); - m_Anchor = anchor; -#if wxUSE_DATETIME - m_Modif = modif; -#endif // wxUSE_DATETIME - } - - virtual ~wxFSFile() { delete m_Stream; } - - // returns stream. This doesn't give away ownership of the stream object. - wxInputStream *GetStream() const { return m_Stream; } - - // gives away the ownership of the current stream. - wxInputStream *DetachStream() - { - wxInputStream *stream = m_Stream; - m_Stream = NULL; - return stream; - } - - // deletes the current stream and takes ownership of another. - void SetStream(wxInputStream *stream) - { - delete m_Stream; - m_Stream = stream; - } - - // returns file's mime type - const wxString& GetMimeType() const; - - // returns the original location (aka filename) of the file - const wxString& GetLocation() const { return m_Location; } - - const wxString& GetAnchor() const { return m_Anchor; } - -#if wxUSE_DATETIME - wxDateTime GetModificationTime() const { return m_Modif; } -#endif // wxUSE_DATETIME - -private: - wxInputStream *m_Stream; - wxString m_Location; - wxString m_MimeType; - wxString m_Anchor; -#if wxUSE_DATETIME - wxDateTime m_Modif; -#endif // wxUSE_DATETIME - - wxDECLARE_ABSTRACT_CLASS(wxFSFile); - wxDECLARE_NO_COPY_CLASS(wxFSFile); -}; - - - - - -//-------------------------------------------------------------------------------- -// wxFileSystemHandler -// This class is FS handler for wxFileSystem. It provides -// interface to access certain -// kinds of files (HTPP, FTP, local, tar.gz etc..) -//-------------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxFileSystemHandler : public wxObject -{ -public: - wxFileSystemHandler() : wxObject() {} - - // returns true if this handler is able to open given location - virtual bool CanOpen(const wxString& location) = 0; - - // opens given file and returns pointer to input stream. - // Returns NULL if opening failed. - // The location is always absolute path. - virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location) = 0; - - // Finds first/next file that matches spec wildcard. flags can be wxDIR for restricting - // the query to directories or wxFILE for files only or 0 for either. - // Returns filename or empty string if no more matching file exists - virtual wxString FindFirst(const wxString& spec, int flags = 0); - virtual wxString FindNext(); - - // Returns MIME type of the file - w/o need to open it - // (default behaviour is that it returns type based on extension) - static wxString GetMimeTypeFromExt(const wxString& location); - -protected: - // returns protocol ("file", "http", "tar" etc.) The last (most right) - // protocol is used: - // {it returns "tar" for "file:subdir/archive.tar.gz#tar:/README.txt"} - static wxString GetProtocol(const wxString& location); - - // returns left part of address: - // {it returns "file:subdir/archive.tar.gz" for "file:subdir/archive.tar.gz#tar:/README.txt"} - static wxString GetLeftLocation(const wxString& location); - - // returns anchor part of address: - // {it returns "anchor" for "file:subdir/archive.tar.gz#tar:/README.txt#anchor"} - // NOTE: anchor is NOT a part of GetLeftLocation()'s return value - static wxString GetAnchor(const wxString& location); - - // returns right part of address: - // {it returns "/README.txt" for "file:subdir/archive.tar.gz#tar:/README.txt"} - static wxString GetRightLocation(const wxString& location); - - wxDECLARE_ABSTRACT_CLASS(wxFileSystemHandler); -}; - - - - -//-------------------------------------------------------------------------------- -// wxFileSystem -// This class provides simple interface for opening various -// kinds of files (HTPP, FTP, local, tar.gz etc..) -//-------------------------------------------------------------------------------- - -// Open Bit Flags -enum wxFileSystemOpenFlags -{ - wxFS_READ = 1, // Open for reading - wxFS_SEEKABLE = 4 // Returned stream will be seekable -}; - -WX_DECLARE_VOIDPTR_HASH_MAP_WITH_DECL(wxFileSystemHandler*, wxFSHandlerHash, class WXDLLIMPEXP_BASE); - -class WXDLLIMPEXP_BASE wxFileSystem : public wxObject -{ -public: - wxFileSystem() : wxObject() { m_FindFileHandler = NULL;} - virtual ~wxFileSystem(); - - // sets the current location. Every call to OpenFile is - // relative to this location. - // NOTE !! - // unless is_dir = true 'location' is *not* the directory but - // file contained in this directory - // (so ChangePathTo("dir/subdir/xh.htm") sets m_Path to "dir/subdir/") - void ChangePathTo(const wxString& location, bool is_dir = false); - - wxString GetPath() const {return m_Path;} - - // opens given file and returns pointer to input stream. - // Returns NULL if opening failed. - // It first tries to open the file in relative scope - // (based on ChangePathTo()'s value) and then as an absolute - // path. - wxFSFile* OpenFile(const wxString& location, int flags = wxFS_READ); - - // Finds first/next file that matches spec wildcard. flags can be wxDIR for restricting - // the query to directories or wxFILE for files only or 0 for either. - // Returns filename or empty string if no more matching file exists - wxString FindFirst(const wxString& spec, int flags = 0); - wxString FindNext(); - - // find a file in a list of directories, returns false if not found - bool FindFileInPath(wxString *pStr, - const wxString& path, const wxString& file); - - // Adds FS handler. - // In fact, this class is only front-end to the FS handlers :-) - static void AddHandler(wxFileSystemHandler *handler); - - // Removes FS handler - static wxFileSystemHandler* RemoveHandler(wxFileSystemHandler *handler); - - // Returns true if there is a handler which can open the given location. - static bool HasHandlerForPath(const wxString& location); - - // remove all items from the m_Handlers list - static void CleanUpHandlers(); - - // Returns the native path for a file URL - static wxFileName URLToFileName(const wxString& url); - - // Returns the file URL for a native path - static wxString FileNameToURL(const wxFileName& filename); - - -protected: - wxFileSystemHandler *MakeLocal(wxFileSystemHandler *h); - - wxString m_Path; - // the path (location) we are currently in - // this is path, not file! - // (so if you opened test/demo.htm, it is - // "test/", not "test/demo.htm") - wxString m_LastName; - // name of last opened file (full path) - static wxList m_Handlers; - // list of FS handlers - wxFileSystemHandler *m_FindFileHandler; - // handler that succeed in FindFirst query - wxFSHandlerHash m_LocalHandlers; - // Handlers local to this instance - - wxDECLARE_DYNAMIC_CLASS(wxFileSystem); - wxDECLARE_NO_COPY_CLASS(wxFileSystem); -}; - - -/* - -'location' syntax: - -To determine FS type, we're using standard KDE notation: -file:/absolute/path/file.htm -file:relative_path/xxxxx.html -/some/path/x.file ('file:' is default) -http://www.gnome.org -file:subdir/archive.tar.gz#tar:/README.txt - -special characters : - ':' - FS identificator is before this char - '#' - separator. It can be either HTML anchor ("index.html#news") - (in case there is no ':' in the string to the right from it) - or FS separator - (example : http://www.wxhtml.org/wxhtml-0.1.tar.gz#tar:/include/wxhtml/filesys.h" - this would access tgz archive stored on web) - '/' - directory (path) separator. It is used to determine upper-level path. - HEY! Don't use \ even if you're on Windows! - -*/ - - -class WXDLLIMPEXP_BASE wxLocalFSHandler : public wxFileSystemHandler -{ -public: - virtual bool CanOpen(const wxString& location) wxOVERRIDE; - virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location) wxOVERRIDE; - virtual wxString FindFirst(const wxString& spec, int flags = 0) wxOVERRIDE; - virtual wxString FindNext() wxOVERRIDE; - - // wxLocalFSHandler will prefix all filenames with 'root' before accessing - // files on disk. This effectively makes 'root' the top-level directory - // and prevents access to files outside this directory. - // (This is similar to Unix command 'chroot'.) - static void Chroot(const wxString& root) { ms_root = root; } - -protected: - static wxString ms_root; -}; - -// Stream reading data from wxFSFile: this allows to use virtual files with any -// wx functions accepting streams. -class WXDLLIMPEXP_BASE wxFSInputStream : public wxWrapperInputStream -{ -public: - // Notice that wxFS_READ is implied in flags. - wxFSInputStream(const wxString& filename, int flags = 0); - virtual ~wxFSInputStream(); - -private: - wxFSFile* m_file; - - wxDECLARE_NO_COPY_CLASS(wxFSInputStream); -}; - -#endif - // wxUSE_FILESYSTEM - -#endif - // __FILESYS_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/flags.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/flags.h deleted file mode 100644 index c45bafab..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/flags.h +++ /dev/null @@ -1,176 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/flags.h -// Purpose: a bitset suited for replacing the current style flags -// Author: Stefan Csomor -// Modified by: -// Created: 27/07/03 -// Copyright: (c) 2003 Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SETH__ -#define _WX_SETH__ - -// wxBitset should be applied to an enum, then this can be used like -// bitwise operators but keeps the type safety and information, the -// enums must be in a sequence , their value determines the bit position -// that they represent -// The api is made as close as possible to - -template class wxBitset -{ - friend class wxEnumData ; -public: - // creates a wxBitset<> object with all flags initialized to 0 - wxBitset() { m_data = 0; } - - // created a wxBitset<> object initialized according to the bits of the - // integral value val - wxBitset(unsigned long val) { m_data = val ; } - - // copies the content in the new wxBitset<> object from another one - wxBitset(const wxBitset &src) { m_data = src.m_data; } - - // creates a wxBitset<> object that has the specific flag set - wxBitset(const T el) { m_data |= 1 << el; } - - // returns the integral value that the bits of this object represent - unsigned long to_ulong() const { return m_data ; } - - // assignment - wxBitset &operator =(const wxBitset &rhs) - { - m_data = rhs.m_data; - return *this; - } - - // bitwise or operator, sets all bits that are in rhs and leaves - // the rest unchanged - wxBitset &operator |=(const wxBitset &rhs) - { - m_data |= rhs.m_data; - return *this; - } - - // bitwsie exclusive-or operator, toggles the value of all bits - // that are set in bits and leaves all others unchanged - wxBitset &operator ^=(const wxBitset &rhs) // difference - { - m_data ^= rhs.m_data; - return *this; - } - - // bitwise and operator, resets all bits that are not in rhs and leaves - // all others unchanged - wxBitset &operator &=(const wxBitset &rhs) // intersection - { - m_data &= rhs.m_data; - return *this; - } - - // bitwise or operator, returns a new bitset that has all bits set that set are in - // bitset2 or in this bitset - wxBitset operator |(const wxBitset &bitset2) const // union - { - wxBitset s; - s.m_data = m_data | bitset2.m_data; - return s; - } - - // bitwise exclusive-or operator, returns a new bitset that has all bits set that are set either in - // bitset2 or in this bitset but not in both - wxBitset operator ^(const wxBitset &bitset2) const // difference - { - wxBitset s; - s.m_data = m_data ^ bitset2.m_data; - return s; - } - - // bitwise and operator, returns a new bitset that has all bits set that are set both in - // bitset2 and in this bitset - wxBitset operator &(const wxBitset &bitset2) const // intersection - { - wxBitset s; - s.m_data = m_data & bitset2.m_data; - return s; - } - - // sets appropriate the bit to true - wxBitset& set(const T el) //Add element - { - m_data |= 1 << el; - return *this; - } - - // clears the appropriate flag to false - wxBitset& reset(const T el) //remove element - { - m_data &= ~(1 << el); - return *this; - } - - // clear all flags - wxBitset& reset() - { - m_data = 0; - return *this; - } - - // true if this flag is set - bool test(const T el) const - { - return (m_data & (1 << el)) ? true : false; - } - - // true if no flag is set - bool none() const - { - return m_data == 0; - } - - // true if any flag is set - bool any() const - { - return m_data != 0; - } - - // true if both have the same flags - bool operator ==(const wxBitset &rhs) const - { - return m_data == rhs.m_data; - } - - // true if both differ in their flags set - bool operator !=(const wxBitset &rhs) const - { - return !operator==(rhs); - } - - bool operator[] (const T el) const { return test(el) ; } - -private : - unsigned long m_data; -}; - -#if wxUSE_EXTENDED_RTTI - -#define wxDEFINE_FLAGS( flags ) \ - class WXDLLIMPEXP_BASE flags \ - {\ - public : \ - flags(long data=0) :m_data(data) {} \ - long m_data ;\ - bool operator ==(const flags &rhs) const { return m_data == rhs.m_data; }\ - } ; - -#else - -#define wxDEFINE_FLAGS( flags ) - -#endif - -#if WXWIN_COMPATIBILITY_2_8 - #define WX_DEFINE_FLAGS wxDEFINE_FLAGS -#endif - -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fmappriv.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fmappriv.h deleted file mode 100644 index 66370886..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fmappriv.h +++ /dev/null @@ -1,73 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/fmappriv.h -// Purpose: private wxFontMapper stuff, not to be used by the library users -// Author: Vadim Zeitlin -// Modified by: -// Created: 21.06.2003 (extracted from common/fontmap.cpp) -// Copyright: (c) 1999-2003 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FMAPPRIV_H_ -#define _WX_FMAPPRIV_H_ - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// a special pseudo encoding which means "don't ask me about this charset -// any more" -- we need it to avoid driving the user crazy with asking him -// time after time about the same charset which he [presumably] doesn't -// have the fonts for -enum { wxFONTENCODING_UNKNOWN = -2 }; - -// the config paths we use -#if wxUSE_CONFIG - -#define FONTMAPPER_ROOT_PATH wxT("/wxWindows/FontMapper") -#define FONTMAPPER_CHARSET_PATH wxT("Charsets") -#define FONTMAPPER_CHARSET_ALIAS_PATH wxT("Aliases") - -#endif // wxUSE_CONFIG - -// ---------------------------------------------------------------------------- -// wxFontMapperPathChanger: change the config path during our lifetime -// ---------------------------------------------------------------------------- - -#if wxUSE_CONFIG && wxUSE_FILECONFIG - -class wxFontMapperPathChanger -{ -public: - wxFontMapperPathChanger(wxFontMapperBase *fontMapper, const wxString& path) - { - m_fontMapper = fontMapper; - m_ok = m_fontMapper->ChangePath(path, &m_pathOld); - } - - bool IsOk() const { return m_ok; } - - ~wxFontMapperPathChanger() - { - if ( IsOk() ) - m_fontMapper->RestorePath(m_pathOld); - } - -private: - // the fontmapper object we're working with - wxFontMapperBase *m_fontMapper; - - // the old path to be restored if m_ok - wxString m_pathOld; - - // have we changed the path successfully? - bool m_ok; - - - wxDECLARE_NO_COPY_CLASS(wxFontMapperPathChanger); -}; - -#endif // wxUSE_CONFIG - -#endif // _WX_FMAPPRIV_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/font.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/font.h deleted file mode 100644 index cbd3cada..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/font.h +++ /dev/null @@ -1,593 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/font.h -// Purpose: wxFontBase class: the interface of wxFont -// Author: Vadim Zeitlin -// Modified by: -// Created: 20.09.99 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONT_H_BASE_ -#define _WX_FONT_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" // for wxDEFAULT &c -#include "wx/fontenc.h" // the font encoding constants -#include "wx/gdiobj.h" // the base class -#include "wx/gdicmn.h" // for wxGDIObjListBase - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxFont; - -// ---------------------------------------------------------------------------- -// font constants -// ---------------------------------------------------------------------------- - -// standard font families: these may be used only for the font creation, it -// doesn't make sense to query an existing font for its font family as, -// especially if the font had been created from a native font description, it -// may be unknown -enum wxFontFamily -{ - wxFONTFAMILY_DEFAULT = wxDEFAULT, - wxFONTFAMILY_DECORATIVE = wxDECORATIVE, - wxFONTFAMILY_ROMAN = wxROMAN, - wxFONTFAMILY_SCRIPT = wxSCRIPT, - wxFONTFAMILY_SWISS = wxSWISS, - wxFONTFAMILY_MODERN = wxMODERN, - wxFONTFAMILY_TELETYPE = wxTELETYPE, - wxFONTFAMILY_MAX, - wxFONTFAMILY_UNKNOWN = wxFONTFAMILY_MAX -}; - -// font styles -enum wxFontStyle -{ - wxFONTSTYLE_NORMAL = wxNORMAL, - wxFONTSTYLE_ITALIC = wxITALIC, - wxFONTSTYLE_SLANT = wxSLANT, - wxFONTSTYLE_MAX -}; - -// font weights -enum wxFontWeight -{ - wxFONTWEIGHT_NORMAL = wxNORMAL, - wxFONTWEIGHT_LIGHT = wxLIGHT, - wxFONTWEIGHT_BOLD = wxBOLD, - wxFONTWEIGHT_MAX -}; - -// Symbolic font sizes as defined in CSS specification. -enum wxFontSymbolicSize -{ - wxFONTSIZE_XX_SMALL = -3, - wxFONTSIZE_X_SMALL, - wxFONTSIZE_SMALL, - wxFONTSIZE_MEDIUM, - wxFONTSIZE_LARGE, - wxFONTSIZE_X_LARGE, - wxFONTSIZE_XX_LARGE -}; - -// the font flag bits for the new font ctor accepting one combined flags word -enum wxFontFlag -{ - // no special flags: font with default weight/slant/anti-aliasing - wxFONTFLAG_DEFAULT = 0, - - // slant flags (default: no slant) - wxFONTFLAG_ITALIC = 1 << 0, - wxFONTFLAG_SLANT = 1 << 1, - - // weight flags (default: medium) - wxFONTFLAG_LIGHT = 1 << 2, - wxFONTFLAG_BOLD = 1 << 3, - - // anti-aliasing flag: force on or off (default: the current system default) - wxFONTFLAG_ANTIALIASED = 1 << 4, - wxFONTFLAG_NOT_ANTIALIASED = 1 << 5, - - // underlined/strikethrough flags (default: no lines) - wxFONTFLAG_UNDERLINED = 1 << 6, - wxFONTFLAG_STRIKETHROUGH = 1 << 7, - - // the mask of all currently used flags - wxFONTFLAG_MASK = wxFONTFLAG_ITALIC | - wxFONTFLAG_SLANT | - wxFONTFLAG_LIGHT | - wxFONTFLAG_BOLD | - wxFONTFLAG_ANTIALIASED | - wxFONTFLAG_NOT_ANTIALIASED | - wxFONTFLAG_UNDERLINED | - wxFONTFLAG_STRIKETHROUGH -}; - -// ---------------------------------------------------------------------------- -// wxFontInfo describes a wxFont -// ---------------------------------------------------------------------------- - -class wxFontInfo -{ -public: - // Default ctor uses the default font size appropriate for the current - // platform. - wxFontInfo() - { InitPointSize(-1); } - - // These ctors specify the font size, either in points or in pixels. - wxEXPLICIT wxFontInfo(int pointSize) - { InitPointSize(pointSize); } - wxEXPLICIT wxFontInfo(const wxSize& pixelSize) : m_pixelSize(pixelSize) - { Init(); } - - // Setters for the various attributes. All of them return the object itself - // so that the calls to them could be chained. - wxFontInfo& Family(wxFontFamily family) - { m_family = family; return *this; } - wxFontInfo& FaceName(const wxString& faceName) - { m_faceName = faceName; return *this; } - - wxFontInfo& Bold(bool bold = true) - { SetFlag(wxFONTFLAG_BOLD, bold); return *this; } - wxFontInfo& Light(bool light = true) - { SetFlag(wxFONTFLAG_LIGHT, light); return *this; } - - wxFontInfo& Italic(bool italic = true) - { SetFlag(wxFONTFLAG_ITALIC, italic); return *this; } - wxFontInfo& Slant(bool slant = true) - { SetFlag(wxFONTFLAG_SLANT, slant); return *this; } - - wxFontInfo& AntiAliased(bool antiAliased = true) - { SetFlag(wxFONTFLAG_ANTIALIASED, antiAliased); return *this; } - wxFontInfo& Underlined(bool underlined = true) - { SetFlag(wxFONTFLAG_UNDERLINED, underlined); return *this; } - wxFontInfo& Strikethrough(bool strikethrough = true) - { SetFlag(wxFONTFLAG_STRIKETHROUGH, strikethrough); return *this; } - - wxFontInfo& Encoding(wxFontEncoding encoding) - { m_encoding = encoding; return *this; } - - - // Set all flags at once. - wxFontInfo& AllFlags(int flags) - { m_flags = flags; return *this; } - - - // Accessors are mostly meant to be used by wxFont itself to extract the - // various pieces of the font description. - - bool IsUsingSizeInPixels() const { return m_pixelSize != wxDefaultSize; } - int GetPointSize() const { return m_pointSize; } - wxSize GetPixelSize() const { return m_pixelSize; } - wxFontFamily GetFamily() const { return m_family; } - const wxString& GetFaceName() const { return m_faceName; } - - wxFontStyle GetStyle() const - { - return m_flags & wxFONTFLAG_ITALIC - ? wxFONTSTYLE_ITALIC - : m_flags & wxFONTFLAG_SLANT - ? wxFONTSTYLE_SLANT - : wxFONTSTYLE_NORMAL; - } - - wxFontWeight GetWeight() const - { - return m_flags & wxFONTFLAG_LIGHT - ? wxFONTWEIGHT_LIGHT - : m_flags & wxFONTFLAG_BOLD - ? wxFONTWEIGHT_BOLD - : wxFONTWEIGHT_NORMAL; - } - - bool IsAntiAliased() const - { - return (m_flags & wxFONTFLAG_ANTIALIASED) != 0; - } - - bool IsUnderlined() const - { - return (m_flags & wxFONTFLAG_UNDERLINED) != 0; - } - - bool IsStrikethrough() const - { - return (m_flags & wxFONTFLAG_STRIKETHROUGH) != 0; - } - - wxFontEncoding GetEncoding() const { return m_encoding; } - - - // Default copy ctor, assignment operator and dtor are OK. - -private: - // Common part of all ctor, initializing everything except the size (which - // is initialized by the ctors themselves). - void Init() - { - m_family = wxFONTFAMILY_DEFAULT; - m_flags = wxFONTFLAG_DEFAULT; - m_encoding = wxFONTENCODING_DEFAULT; - } - - void InitPointSize(int pointSize) - { - Init(); - - m_pointSize = pointSize; - m_pixelSize = wxDefaultSize; - } - - // Turn on or off the given bit in m_flags depending on the value of the - // boolean argument. - void SetFlag(int flag, bool on) - { - if ( on ) - m_flags |= flag; - else - m_flags &= ~flag; - } - - // The size information: if m_pixelSize is valid (!= wxDefaultSize), then - // it is used. Otherwise m_pointSize is used, taking into account that if - // it is == -1, it means that the platform dependent font size should be - // used. - int m_pointSize; - wxSize m_pixelSize; - - wxFontFamily m_family; - wxString m_faceName; - int m_flags; - wxFontEncoding m_encoding; -}; - -// ---------------------------------------------------------------------------- -// wxFontBase represents a font object -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxNativeFontInfo; - -class WXDLLIMPEXP_CORE wxFontBase : public wxGDIObject -{ -public: - /* - derived classes should provide the following ctors: - - wxFont(); - wxFont(const wxFontInfo& info); - wxFont(const wxString& nativeFontInfoString); - wxFont(const wxNativeFontInfo& info); - wxFont(int size, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); - wxFont(const wxSize& pixelSize, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); - */ - - // creator function - virtual ~wxFontBase(); - - - // from the font components - static wxFont *New( - int pointSize, // size of the font in points - wxFontFamily family, // see wxFontFamily enum - wxFontStyle style, // see wxFontStyle enum - wxFontWeight weight, // see wxFontWeight enum - bool underlined = false, // not underlined by default - const wxString& face = wxEmptyString, // facename - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); // ISO8859-X, ... - - // from the font components - static wxFont *New( - const wxSize& pixelSize, // size of the font in pixels - wxFontFamily family, // see wxFontFamily enum - wxFontStyle style, // see wxFontStyle enum - wxFontWeight weight, // see wxFontWeight enum - bool underlined = false, // not underlined by default - const wxString& face = wxEmptyString, // facename - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); // ISO8859-X, ... - - // from the font components but using the font flags instead of separate - // parameters for each flag - static wxFont *New(int pointSize, - wxFontFamily family, - int flags = wxFONTFLAG_DEFAULT, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); - - - // from the font components but using the font flags instead of separate - // parameters for each flag - static wxFont *New(const wxSize& pixelSize, - wxFontFamily family, - int flags = wxFONTFLAG_DEFAULT, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); - - // from the (opaque) native font description object - static wxFont *New(const wxNativeFontInfo& nativeFontDesc); - - // from the string representation of wxNativeFontInfo - static wxFont *New(const wxString& strNativeFontDesc); - - // comparison - bool operator==(const wxFont& font) const; - bool operator!=(const wxFont& font) const { return !(*this == font); } - - // accessors: get the font characteristics - virtual int GetPointSize() const = 0; - virtual wxSize GetPixelSize() const; - virtual bool IsUsingSizeInPixels() const; - wxFontFamily GetFamily() const; - virtual wxFontStyle GetStyle() const = 0; - virtual wxFontWeight GetWeight() const = 0; - virtual bool GetUnderlined() const = 0; - virtual bool GetStrikethrough() const { return false; } - virtual wxString GetFaceName() const = 0; - virtual wxFontEncoding GetEncoding() const = 0; - virtual const wxNativeFontInfo *GetNativeFontInfo() const = 0; - - virtual bool IsFixedWidth() const; - - wxString GetNativeFontInfoDesc() const; - wxString GetNativeFontInfoUserDesc() const; - - // change the font characteristics - virtual void SetPointSize( int pointSize ) = 0; - virtual void SetPixelSize( const wxSize& pixelSize ); - virtual void SetFamily( wxFontFamily family ) = 0; - virtual void SetStyle( wxFontStyle style ) = 0; - virtual void SetWeight( wxFontWeight weight ) = 0; - - virtual void SetUnderlined( bool underlined ) = 0; - virtual void SetStrikethrough( bool WXUNUSED(strikethrough) ) {} - virtual void SetEncoding(wxFontEncoding encoding) = 0; - virtual bool SetFaceName( const wxString& faceName ); - void SetNativeFontInfo(const wxNativeFontInfo& info) - { DoSetNativeFontInfo(info); } - - bool SetNativeFontInfo(const wxString& info); - bool SetNativeFontInfoUserDesc(const wxString& info); - - // Symbolic font sizes support: set the font size to "large" or "very - // small" either absolutely (i.e. compared to the default font size) or - // relatively to the given font size. - void SetSymbolicSize(wxFontSymbolicSize size); - void SetSymbolicSizeRelativeTo(wxFontSymbolicSize size, int base) - { - SetPointSize(AdjustToSymbolicSize(size, base)); - } - - // Adjust the base size in points according to symbolic size. - static int AdjustToSymbolicSize(wxFontSymbolicSize size, int base); - - - // translate the fonts into human-readable string (i.e. GetStyleString() - // will return "wxITALIC" for an italic font, ...) - wxString GetFamilyString() const; - wxString GetStyleString() const; - wxString GetWeightString() const; - - // the default encoding is used for creating all fonts with default - // encoding parameter - static wxFontEncoding GetDefaultEncoding() { return ms_encodingDefault; } - static void SetDefaultEncoding(wxFontEncoding encoding); - - // this doesn't do anything and is kept for compatibility only -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED_INLINE(void SetNoAntiAliasing(bool no = true), wxUnusedVar(no);) - wxDEPRECATED_INLINE(bool GetNoAntiAliasing() const, return false;) -#endif // WXWIN_COMPATIBILITY_2_8 - - // from the font components - wxDEPRECATED_MSG("use wxFONT{FAMILY,STYLE,WEIGHT}_XXX constants") - static wxFont *New( - int pointSize, // size of the font in points - int family, // see wxFontFamily enum - int style, // see wxFontStyle enum - int weight, // see wxFontWeight enum - bool underlined = false, // not underlined by default - const wxString& face = wxEmptyString, // facename - wxFontEncoding encoding = wxFONTENCODING_DEFAULT) // ISO8859-X, ... - { return New(pointSize, (wxFontFamily)family, (wxFontStyle)style, - (wxFontWeight)weight, underlined, face, encoding); } - - // from the font components - wxDEPRECATED_MSG("use wxFONT{FAMILY,STYLE,WEIGHT}_XXX constants") - static wxFont *New( - const wxSize& pixelSize, // size of the font in pixels - int family, // see wxFontFamily enum - int style, // see wxFontStyle enum - int weight, // see wxFontWeight enum - bool underlined = false, // not underlined by default - const wxString& face = wxEmptyString, // facename - wxFontEncoding encoding = wxFONTENCODING_DEFAULT) // ISO8859-X, ... - { return New(pixelSize, (wxFontFamily)family, (wxFontStyle)style, - (wxFontWeight)weight, underlined, face, encoding); } - - -protected: - // the function called by both overloads of SetNativeFontInfo() - virtual void DoSetNativeFontInfo(const wxNativeFontInfo& info); - - // The function called by public GetFamily(): it can return - // wxFONTFAMILY_UNKNOWN unlike the public method (see comment there). - virtual wxFontFamily DoGetFamily() const = 0; - - - // Helper functions to recover wxFONTSTYLE/wxFONTWEIGHT and underlined flag - // values from flags containing a combination of wxFONTFLAG_XXX. - static wxFontStyle GetStyleFromFlags(int flags) - { - return flags & wxFONTFLAG_ITALIC - ? wxFONTSTYLE_ITALIC - : flags & wxFONTFLAG_SLANT - ? wxFONTSTYLE_SLANT - : wxFONTSTYLE_NORMAL; - } - - static wxFontWeight GetWeightFromFlags(int flags) - { - return flags & wxFONTFLAG_LIGHT - ? wxFONTWEIGHT_LIGHT - : flags & wxFONTFLAG_BOLD - ? wxFONTWEIGHT_BOLD - : wxFONTWEIGHT_NORMAL; - } - - static bool GetUnderlinedFromFlags(int flags) - { - return (flags & wxFONTFLAG_UNDERLINED) != 0; - } - - static bool GetStrikethroughFromFlags(int flags) - { - return (flags & wxFONTFLAG_STRIKETHROUGH) != 0; - } - -private: - // the currently default encoding: by default, it's the default system - // encoding, but may be changed by the application using - // SetDefaultEncoding() to make all subsequent fonts created without - // specifying encoding parameter using this encoding - static wxFontEncoding ms_encodingDefault; -}; - -// wxFontBase <-> wxString utilities, used by wxConfig -WXDLLIMPEXP_CORE wxString wxToString(const wxFontBase& font); -WXDLLIMPEXP_CORE bool wxFromString(const wxString& str, wxFontBase* font); - - -// this macro must be used in all derived wxFont classes declarations -#define wxDECLARE_COMMON_FONT_METHODS() \ - wxDEPRECATED_MSG("use wxFONTFAMILY_XXX constants") \ - void SetFamily(int family) \ - { SetFamily((wxFontFamily)family); } \ - wxDEPRECATED_MSG("use wxFONTSTYLE_XXX constants") \ - void SetStyle(int style) \ - { SetStyle((wxFontStyle)style); } \ - wxDEPRECATED_MSG("use wxFONTWEIGHT_XXX constants") \ - void SetWeight(int weight) \ - { SetWeight((wxFontWeight)weight); } \ - wxDEPRECATED_MSG("use wxFONTFAMILY_XXX constants") \ - void SetFamily(wxDeprecatedGUIConstants family) \ - { SetFamily((wxFontFamily)family); } \ - wxDEPRECATED_MSG("use wxFONTSTYLE_XXX constants") \ - void SetStyle(wxDeprecatedGUIConstants style) \ - { SetStyle((wxFontStyle)style); } \ - wxDEPRECATED_MSG("use wxFONTWEIGHT_XXX constants") \ - void SetWeight(wxDeprecatedGUIConstants weight) \ - { SetWeight((wxFontWeight)weight); } \ - \ - /* functions for modifying font in place */ \ - wxFont& MakeBold(); \ - wxFont& MakeItalic(); \ - wxFont& MakeUnderlined(); \ - wxFont& MakeStrikethrough(); \ - wxFont& MakeLarger() { return Scale(1.2f); } \ - wxFont& MakeSmaller() { return Scale(1/1.2f); } \ - wxFont& Scale(float x); \ - /* functions for creating fonts based on this one */ \ - wxFont Bold() const; \ - wxFont GetBaseFont() const; \ - wxFont Italic() const; \ - wxFont Underlined() const; \ - wxFont Strikethrough() const; \ - wxFont Larger() const { return Scaled(1.2f); } \ - wxFont Smaller() const { return Scaled(1/1.2f); } \ - wxFont Scaled(float x) const - -// include the real class declaration -#if defined(__WXMSW__) - #include "wx/msw/font.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/font.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/font.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/font.h" -#elif defined(__WXX11__) - #include "wx/x11/font.h" -#elif defined(__WXDFB__) - #include "wx/dfb/font.h" -#elif defined(__WXMAC__) - #include "wx/osx/font.h" -#elif defined(__WXQT__) - #include "wx/qt/font.h" -#endif - -class WXDLLIMPEXP_CORE wxFontList: public wxGDIObjListBase -{ -public: - wxFont *FindOrCreateFont(int pointSize, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underline = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); - - wxDEPRECATED_MSG("use wxFONT{FAMILY,STYLE,WEIGHT}_XXX constants") - wxFont *FindOrCreateFont(int pointSize, int family, int style, int weight, - bool underline = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT) - { return FindOrCreateFont(pointSize, (wxFontFamily)family, (wxFontStyle)style, - (wxFontWeight)weight, underline, face, encoding); } -}; - -extern WXDLLIMPEXP_DATA_CORE(wxFontList*) wxTheFontList; - - -// provide comparison operators to allow code such as -// -// if ( font.GetStyle() == wxFONTSTYLE_SLANT ) -// -// to compile without warnings which it would otherwise provoke from some -// compilers as it compares elements of different enums - -// Unfortunately some compilers have ambiguity issues when enum comparisons are -// overloaded so we have to disable the overloads in this case, see -// wxCOMPILER_NO_OVERLOAD_ON_ENUM definition in wx/platform.h for more details. -#ifndef wxCOMPILER_NO_OVERLOAD_ON_ENUM - -wxDEPRECATED_MSG("use wxFONTFAMILY_XXX constants") \ -inline bool operator==(wxFontFamily s, wxDeprecatedGUIConstants t) - { return static_cast(s) == static_cast(t); } -wxDEPRECATED_MSG("use wxFONTFAMILY_XXX constants") \ -inline bool operator!=(wxFontFamily s, wxDeprecatedGUIConstants t) - { return static_cast(s) != static_cast(t); } -wxDEPRECATED_MSG("use wxFONTSTYLE_XXX constants") \ -inline bool operator==(wxFontStyle s, wxDeprecatedGUIConstants t) - { return static_cast(s) == static_cast(t); } -wxDEPRECATED_MSG("use wxFONTSTYLE_XXX constants") \ -inline bool operator!=(wxFontStyle s, wxDeprecatedGUIConstants t) - { return static_cast(s) != static_cast(t); } -wxDEPRECATED_MSG("use wxFONTWEIGHT_XXX constants") \ -inline bool operator==(wxFontWeight s, wxDeprecatedGUIConstants t) - { return static_cast(s) == static_cast(t); } -wxDEPRECATED_MSG("use wxFONTWEIGHT_XXX constants") \ -inline bool operator!=(wxFontWeight s, wxDeprecatedGUIConstants t) - { return static_cast(s) != static_cast(t); } - -#endif // // wxCOMPILER_NO_OVERLOAD_ON_ENUM - -#endif // _WX_FONT_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontdata.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontdata.h deleted file mode 100644 index 592e0b6d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontdata.h +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/fontdata.h -// Author: Julian Smart -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONTDATA_H_ -#define _WX_FONTDATA_H_ - -#include "wx/font.h" -#include "wx/colour.h" -#include "wx/encinfo.h" - -class WXDLLIMPEXP_CORE wxFontData : public wxObject -{ -public: - wxFontData(); - virtual ~wxFontData(); - - wxFontData(const wxFontData& data); - wxFontData& operator=(const wxFontData& data); - - void SetAllowSymbols(bool flag) { m_allowSymbols = flag; } - bool GetAllowSymbols() const { return m_allowSymbols; } - - void SetColour(const wxColour& colour) { m_fontColour = colour; } - const wxColour& GetColour() const { return m_fontColour; } - - void SetShowHelp(bool flag) { m_showHelp = flag; } - bool GetShowHelp() const { return m_showHelp; } - - void EnableEffects(bool flag) { m_enableEffects = flag; } - bool GetEnableEffects() const { return m_enableEffects; } - - void SetInitialFont(const wxFont& font) { m_initialFont = font; } - wxFont GetInitialFont() const { return m_initialFont; } - - void SetChosenFont(const wxFont& font) { m_chosenFont = font; } - wxFont GetChosenFont() const { return m_chosenFont; } - - void SetRange(int minRange, int maxRange) { m_minSize = minRange; m_maxSize = maxRange; } - - // encoding info is split into 2 parts: the logical wxWin encoding - // (wxFontEncoding) and a structure containing the native parameters for - // it (wxNativeEncodingInfo) - wxFontEncoding GetEncoding() const { return m_encoding; } - void SetEncoding(wxFontEncoding encoding) { m_encoding = encoding; } - - wxNativeEncodingInfo& EncodingInfo() { return m_encodingInfo; } - - - // public for backwards compatibility only: don't use directly - wxColour m_fontColour; - bool m_showHelp; - bool m_allowSymbols; - bool m_enableEffects; - wxFont m_initialFont; - wxFont m_chosenFont; - int m_minSize; - int m_maxSize; - -private: - wxFontEncoding m_encoding; - wxNativeEncodingInfo m_encodingInfo; - - wxDECLARE_DYNAMIC_CLASS(wxFontData); -}; - -#endif // _WX_FONTDATA_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontdlg.h deleted file mode 100644 index 63e7fd44..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontdlg.h +++ /dev/null @@ -1,97 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/fontdlg.h -// Purpose: common interface for different wxFontDialog classes -// Author: Vadim Zeitlin -// Modified by: -// Created: 12.05.02 -// Copyright: (c) 1997-2002 wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONTDLG_H_BASE_ -#define _WX_FONTDLG_H_BASE_ - -#include "wx/defs.h" // for wxUSE_FONTDLG - -#if wxUSE_FONTDLG - -#include "wx/dialog.h" // the base class -#include "wx/fontdata.h" - -// ---------------------------------------------------------------------------- -// wxFontDialog interface -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFontDialogBase : public wxDialog -{ -public: - // create the font dialog - wxFontDialogBase() { } - wxFontDialogBase(wxWindow *parent) { m_parent = parent; } - wxFontDialogBase(wxWindow *parent, const wxFontData& data) - { m_parent = parent; InitFontData(&data); } - - bool Create(wxWindow *parent) - { return DoCreate(parent); } - bool Create(wxWindow *parent, const wxFontData& data) - { InitFontData(&data); return Create(parent); } - - // retrieve the font data - const wxFontData& GetFontData() const { return m_fontData; } - wxFontData& GetFontData() { return m_fontData; } - -protected: - virtual bool DoCreate(wxWindow *parent) { m_parent = parent; return true; } - - void InitFontData(const wxFontData *data = NULL) - { if ( data ) m_fontData = *data; } - - wxFontData m_fontData; - - wxDECLARE_NO_COPY_CLASS(wxFontDialogBase); -}; - -// ---------------------------------------------------------------------------- -// platform-specific wxFontDialog implementation -// ---------------------------------------------------------------------------- - -#if defined( __WXOSX_MAC__ ) -//set to 1 to use native mac font and color dialogs -#define USE_NATIVE_FONT_DIALOG_FOR_MACOSX 1 -#else -//not supported on these platforms, leave 0 -#define USE_NATIVE_FONT_DIALOG_FOR_MACOSX 0 -#endif - -#if defined(__WXUNIVERSAL__) || \ - defined(__WXMOTIF__) || \ - defined(__WXGPE__) - - #include "wx/generic/fontdlgg.h" - #define wxFontDialog wxGenericFontDialog -#elif defined(__WXMSW__) - #include "wx/msw/fontdlg.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/fontdlg.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/fontdlg.h" -#elif defined(__WXMAC__) - #include "wx/osx/fontdlg.h" -#elif defined(__WXQT__) - #include "wx/qt/fontdlg.h" -#endif - -// ---------------------------------------------------------------------------- -// global public functions -// ---------------------------------------------------------------------------- - -// get the font from user and return it, returns wxNullFont if the dialog was -// cancelled -WXDLLIMPEXP_CORE wxFont wxGetFontFromUser(wxWindow *parent = NULL, - const wxFont& fontInit = wxNullFont, - const wxString& caption = wxEmptyString); - -#endif // wxUSE_FONTDLG - -#endif - // _WX_FONTDLG_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontenc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontenc.h deleted file mode 100644 index 5263997a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontenc.h +++ /dev/null @@ -1,163 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/fontenc.h -// Purpose: wxFontEncoding constants -// Author: Vadim Zeitlin -// Modified by: -// Created: 29.03.00 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONTENC_H_ -#define _WX_FONTENC_H_ - -// font encodings -enum wxFontEncoding -{ - wxFONTENCODING_SYSTEM = -1, // system default - wxFONTENCODING_DEFAULT, // current default encoding - - // ISO8859 standard defines a number of single-byte charsets - wxFONTENCODING_ISO8859_1, // West European (Latin1) - wxFONTENCODING_ISO8859_2, // Central and East European (Latin2) - wxFONTENCODING_ISO8859_3, // Esperanto (Latin3) - wxFONTENCODING_ISO8859_4, // Baltic (old) (Latin4) - wxFONTENCODING_ISO8859_5, // Cyrillic - wxFONTENCODING_ISO8859_6, // Arabic - wxFONTENCODING_ISO8859_7, // Greek - wxFONTENCODING_ISO8859_8, // Hebrew - wxFONTENCODING_ISO8859_9, // Turkish (Latin5) - wxFONTENCODING_ISO8859_10, // Variation of Latin4 (Latin6) - wxFONTENCODING_ISO8859_11, // Thai - wxFONTENCODING_ISO8859_12, // doesn't exist currently, but put it - // here anyhow to make all ISO8859 - // consecutive numbers - wxFONTENCODING_ISO8859_13, // Baltic (Latin7) - wxFONTENCODING_ISO8859_14, // Latin8 - wxFONTENCODING_ISO8859_15, // Latin9 (a.k.a. Latin0, includes euro) - wxFONTENCODING_ISO8859_MAX, - - // Cyrillic charset soup (see http://czyborra.com/charsets/cyrillic.html) - wxFONTENCODING_KOI8, // KOI8 Russian - wxFONTENCODING_KOI8_U, // KOI8 Ukrainian - wxFONTENCODING_ALTERNATIVE, // same as MS-DOS CP866 - wxFONTENCODING_BULGARIAN, // used under Linux in Bulgaria - - // what would we do without Microsoft? They have their own encodings - // for DOS - wxFONTENCODING_CP437, // original MS-DOS codepage - wxFONTENCODING_CP850, // CP437 merged with Latin1 - wxFONTENCODING_CP852, // CP437 merged with Latin2 - wxFONTENCODING_CP855, // another cyrillic encoding - wxFONTENCODING_CP866, // and another one - // and for Windows - wxFONTENCODING_CP874, // WinThai - wxFONTENCODING_CP932, // Japanese (shift-JIS) - wxFONTENCODING_CP936, // Chinese simplified (GB) - wxFONTENCODING_CP949, // Korean (Hangul charset, a.k.a. EUC-KR) - wxFONTENCODING_CP950, // Chinese (traditional - Big5) - wxFONTENCODING_CP1250, // WinLatin2 - wxFONTENCODING_CP1251, // WinCyrillic - wxFONTENCODING_CP1252, // WinLatin1 - wxFONTENCODING_CP1253, // WinGreek (8859-7) - wxFONTENCODING_CP1254, // WinTurkish - wxFONTENCODING_CP1255, // WinHebrew - wxFONTENCODING_CP1256, // WinArabic - wxFONTENCODING_CP1257, // WinBaltic (same as Latin 7) - wxFONTENCODING_CP1258, // WinVietnamese - wxFONTENCODING_CP1361, // Johab Korean character set. - wxFONTENCODING_CP12_MAX, - - wxFONTENCODING_UTF7, // UTF-7 Unicode encoding - wxFONTENCODING_UTF8, // UTF-8 Unicode encoding - wxFONTENCODING_EUC_JP, // Extended Unix Codepage for Japanese - wxFONTENCODING_UTF16BE, // UTF-16 Big Endian Unicode encoding - wxFONTENCODING_UTF16LE, // UTF-16 Little Endian Unicode encoding - wxFONTENCODING_UTF32BE, // UTF-32 Big Endian Unicode encoding - wxFONTENCODING_UTF32LE, // UTF-32 Little Endian Unicode encoding - - wxFONTENCODING_MACROMAN, // the standard mac encodings - wxFONTENCODING_MACJAPANESE, - wxFONTENCODING_MACCHINESETRAD, - wxFONTENCODING_MACKOREAN, - wxFONTENCODING_MACARABIC, - wxFONTENCODING_MACHEBREW, - wxFONTENCODING_MACGREEK, - wxFONTENCODING_MACCYRILLIC, - wxFONTENCODING_MACDEVANAGARI, - wxFONTENCODING_MACGURMUKHI, - wxFONTENCODING_MACGUJARATI, - wxFONTENCODING_MACORIYA, - wxFONTENCODING_MACBENGALI, - wxFONTENCODING_MACTAMIL, - wxFONTENCODING_MACTELUGU, - wxFONTENCODING_MACKANNADA, - wxFONTENCODING_MACMALAJALAM, - wxFONTENCODING_MACSINHALESE, - wxFONTENCODING_MACBURMESE, - wxFONTENCODING_MACKHMER, - wxFONTENCODING_MACTHAI, - wxFONTENCODING_MACLAOTIAN, - wxFONTENCODING_MACGEORGIAN, - wxFONTENCODING_MACARMENIAN, - wxFONTENCODING_MACCHINESESIMP, - wxFONTENCODING_MACTIBETAN, - wxFONTENCODING_MACMONGOLIAN, - wxFONTENCODING_MACETHIOPIC, - wxFONTENCODING_MACCENTRALEUR, - wxFONTENCODING_MACVIATNAMESE, - wxFONTENCODING_MACARABICEXT, - wxFONTENCODING_MACSYMBOL, - wxFONTENCODING_MACDINGBATS, - wxFONTENCODING_MACTURKISH, - wxFONTENCODING_MACCROATIAN, - wxFONTENCODING_MACICELANDIC, - wxFONTENCODING_MACROMANIAN, - wxFONTENCODING_MACCELTIC, - wxFONTENCODING_MACGAELIC, - wxFONTENCODING_MACKEYBOARD, - - // more CJK encodings (for historical reasons some are already declared - // above) - wxFONTENCODING_ISO2022_JP, // ISO-2022-JP JIS encoding - - wxFONTENCODING_MAX, // highest enumerated encoding value - - wxFONTENCODING_MACMIN = wxFONTENCODING_MACROMAN , - wxFONTENCODING_MACMAX = wxFONTENCODING_MACKEYBOARD , - - // aliases for endian-dependent UTF encodings -#ifdef WORDS_BIGENDIAN - wxFONTENCODING_UTF16 = wxFONTENCODING_UTF16BE, // native UTF-16 - wxFONTENCODING_UTF32 = wxFONTENCODING_UTF32BE, // native UTF-32 -#else // WORDS_BIGENDIAN - wxFONTENCODING_UTF16 = wxFONTENCODING_UTF16LE, // native UTF-16 - wxFONTENCODING_UTF32 = wxFONTENCODING_UTF32LE, // native UTF-32 -#endif // WORDS_BIGENDIAN - - // alias for the native Unicode encoding on this platform - // (this is used by wxEncodingConverter and wxUTFFile only for now) -#if SIZEOF_WCHAR_T == 2 - wxFONTENCODING_UNICODE = wxFONTENCODING_UTF16, -#else // SIZEOF_WCHAR_T == 4 - wxFONTENCODING_UNICODE = wxFONTENCODING_UTF32, -#endif - - // alternative names for Far Eastern encodings - // Chinese - wxFONTENCODING_GB2312 = wxFONTENCODING_CP936, // Simplified Chinese - wxFONTENCODING_BIG5 = wxFONTENCODING_CP950, // Traditional Chinese - - // Japanese (see http://zsigri.tripod.com/fontboard/cjk/jis.html) - wxFONTENCODING_SHIFT_JIS = wxFONTENCODING_CP932, // Shift JIS - - // Korean (CP 949 not actually the same but close enough) - wxFONTENCODING_EUC_KR = wxFONTENCODING_CP949, - wxFONTENCODING_JOHAB = wxFONTENCODING_CP1361, - - // Vietnamese - wxFONTENCODING_VIETNAMESE = wxFONTENCODING_CP1258 -}; - -#endif // _WX_FONTENC_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontenum.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontenum.h deleted file mode 100644 index 782dc7fd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontenum.h +++ /dev/null @@ -1,88 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/fontenum.h -// Purpose: wxFontEnumerator class for getting available fonts -// Author: Julian Smart, Vadim Zeitlin -// Modified by: extended to enumerate more than just font facenames and works -// not only on Windows now (VZ) -// Created: 04/01/98 -// Copyright: (c) Julian Smart, Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONTENUM_H_ -#define _WX_FONTENUM_H_ - -#include "wx/defs.h" - -#if wxUSE_FONTENUM - -#include "wx/fontenc.h" -#include "wx/arrstr.h" - -// ---------------------------------------------------------------------------- -// wxFontEnumerator enumerates all available fonts on the system or only the -// fonts with given attributes -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFontEnumerator -{ -public: - wxFontEnumerator() {} - - // virtual dtor for the base class - virtual ~wxFontEnumerator() {} - - // start enumerating font facenames (either all of them or those which - // support the given encoding) - will result in OnFacename() being - // called for each available facename (until they are exhausted or - // OnFacename returns false) - virtual bool EnumerateFacenames - ( - wxFontEncoding encoding = wxFONTENCODING_SYSTEM, // all - bool fixedWidthOnly = false - ); - - // enumerate the different encodings either for given font facename or for - // all facenames - will result in OnFontEncoding() being called for each - // available (facename, encoding) couple - virtual bool EnumerateEncodings(const wxString& facename = wxEmptyString); - - // callbacks which are called after one of EnumerateXXX() functions from - // above is invoked - all of them may return false to stop enumeration or - // true to continue with it - - // called by EnumerateFacenames - virtual bool OnFacename(const wxString& WXUNUSED(facename)) - { return true; } - - // called by EnumerateEncodings - virtual bool OnFontEncoding(const wxString& WXUNUSED(facename), - const wxString& WXUNUSED(encoding)) - { return true; } - - - - // convenience function that returns array of facenames. - static wxArrayString - GetFacenames(wxFontEncoding encoding = wxFONTENCODING_SYSTEM, // all - bool fixedWidthOnly = false); - - // convenience function that returns array of all available encodings. - static wxArrayString GetEncodings(const wxString& facename = wxEmptyString); - - // convenience function that returns true if the given face name exist - // in the user's system - static bool IsValidFacename(const wxString &str); - -private: -#ifdef wxHAS_UTF8_FONTS - // helper for ports that only use UTF-8 encoding natively - bool EnumerateEncodingsUTF8(const wxString& facename); -#endif - - wxDECLARE_NO_COPY_CLASS(wxFontEnumerator); -}; - -#endif // wxUSE_FONTENUM - -#endif // _WX_FONTENUM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontmap.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontmap.h deleted file mode 100644 index c640daa8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontmap.h +++ /dev/null @@ -1,289 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/fontmap.h -// Purpose: wxFontMapper class -// Author: Vadim Zeitlin -// Modified by: -// Created: 04.11.99 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONTMAPPER_H_ -#define _WX_FONTMAPPER_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#if wxUSE_FONTMAP - -#include "wx/fontenc.h" // for wxFontEncoding - -#if wxUSE_GUI - #include "wx/fontutil.h" // for wxNativeEncodingInfo -#endif // wxUSE_GUI - -#if wxUSE_CONFIG && wxUSE_FILECONFIG - class WXDLLIMPEXP_FWD_BASE wxConfigBase; -#endif // wxUSE_CONFIG - -class WXDLLIMPEXP_FWD_CORE wxFontMapper; - -#if wxUSE_GUI - class WXDLLIMPEXP_FWD_CORE wxWindow; -#endif // wxUSE_GUI - -// ============================================================================ -// wxFontMapper manages user-definable correspondence between wxWidgets font -// encodings and the fonts present on the machine. -// -// This is a singleton class, font mapper objects can only be accessed using -// wxFontMapper::Get(). -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxFontMapperBase: this is a non-interactive class which just uses its built -// in knowledge of the encodings equivalence -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxFontMapperBase -{ -public: - // constructor and such - // --------------------- - - // default ctor - wxFontMapperBase(); - - // virtual dtor for any base class - virtual ~wxFontMapperBase(); - - // return instance of the wxFontMapper singleton - // wxBase code only cares that it's a wxFontMapperBase - // In wxBase, wxFontMapper is only forward declared - // so one cannot implicitly cast from it to wxFontMapperBase. - static wxFontMapperBase *Get(); - - // set the singleton to 'mapper' instance and return previous one - static wxFontMapper *Set(wxFontMapper *mapper); - - // delete the existing font mapper if any - static void Reset(); - - - // translates charset strings to encoding - // -------------------------------------- - - // returns the encoding for the given charset (in the form of RFC 2046) or - // wxFONTENCODING_SYSTEM if couldn't decode it - // - // interactive parameter is ignored in the base class, we behave as if it - // were always false - virtual wxFontEncoding CharsetToEncoding(const wxString& charset, - bool interactive = true); - - // information about supported encodings - // ------------------------------------- - - // get the number of font encodings we know about - static size_t GetSupportedEncodingsCount(); - - // get the n-th supported encoding - static wxFontEncoding GetEncoding(size_t n); - - // return canonical name of this encoding (this is a short string, - // GetEncodingDescription() returns a longer one) - static wxString GetEncodingName(wxFontEncoding encoding); - - // return a list of all names of this encoding (see GetEncodingName) - static const wxChar** GetAllEncodingNames(wxFontEncoding encoding); - - // return user-readable string describing the given encoding - // - // NB: hard-coded now, but might change later (read it from config?) - static wxString GetEncodingDescription(wxFontEncoding encoding); - - // find the encoding corresponding to the given name, inverse of - // GetEncodingName() and less general than CharsetToEncoding() - // - // returns wxFONTENCODING_MAX if the name is not a supported encoding - static wxFontEncoding GetEncodingFromName(const wxString& name); - - - // functions which allow to configure the config object used: by default, - // the global one (from wxConfigBase::Get() will be used) and the default - // root path for the config settings is the string returned by - // GetDefaultConfigPath() - // ---------------------------------------------------------------------- - -#if wxUSE_CONFIG && wxUSE_FILECONFIG - // set the root config path to use (should be an absolute path) - void SetConfigPath(const wxString& prefix); - - // return default config path - static const wxString& GetDefaultConfigPath(); -#endif // wxUSE_CONFIG - - - // returns true for the base class and false for a "real" font mapper object - // (implementation-only) - virtual bool IsDummy() { return true; } - -protected: -#if wxUSE_CONFIG && wxUSE_FILECONFIG - // get the config object we're using -- either the global config object - // or a wxMemoryConfig object created by this class otherwise - wxConfigBase *GetConfig(); - - // gets the root path for our settings -- if it wasn't set explicitly, use - // GetDefaultConfigPath() - const wxString& GetConfigPath(); - - // change to the given (relative) path in the config, return true if ok - // (then GetConfig() will return something !NULL), false if no config - // object - // - // caller should provide a pointer to the string variable which should be - // later passed to RestorePath() - bool ChangePath(const wxString& pathNew, wxString *pathOld); - - // restore the config path after use - void RestorePath(const wxString& pathOld); - - // config object and path (in it) to use - wxConfigBase *m_configDummy; - - wxString m_configRootPath; -#endif // wxUSE_CONFIG - - // the real implementation of the base class version of CharsetToEncoding() - // - // returns wxFONTENCODING_UNKNOWN if encoding is unknown and we shouldn't - // ask the user about it, wxFONTENCODING_SYSTEM if it is unknown but we - // should/could ask the user - int NonInteractiveCharsetToEncoding(const wxString& charset); - -private: - // the global fontmapper object or NULL - static wxFontMapper *sm_instance; - - friend class wxFontMapperPathChanger; - - wxDECLARE_NO_COPY_CLASS(wxFontMapperBase); -}; - -// ---------------------------------------------------------------------------- -// wxFontMapper: interactive extension of wxFontMapperBase -// -// The default implementations of all functions will ask the user if they are -// not capable of finding the answer themselves and store the answer in a -// config file (configurable via SetConfigXXX functions). This behaviour may -// be disabled by giving the value of false to "interactive" parameter. -// However, the functions will always consult the config file to allow the -// user-defined values override the default logic and there is no way to -// disable this -- which shouldn't be ever needed because if "interactive" was -// never true, the config file is never created anyhow. -// ---------------------------------------------------------------------------- - -#if wxUSE_GUI - -class WXDLLIMPEXP_CORE wxFontMapper : public wxFontMapperBase -{ -public: - // default ctor - wxFontMapper(); - - // virtual dtor for a base class - virtual ~wxFontMapper(); - - // working with the encodings - // -------------------------- - - // returns the encoding for the given charset (in the form of RFC 2046) or - // wxFONTENCODING_SYSTEM if couldn't decode it - virtual wxFontEncoding CharsetToEncoding(const wxString& charset, - bool interactive = true); - - // find an alternative for the given encoding (which is supposed to not be - // available on this system). If successful, return true and fill info - // structure with the parameters required to create the font, otherwise - // return false - virtual bool GetAltForEncoding(wxFontEncoding encoding, - wxNativeEncodingInfo *info, - const wxString& facename = wxEmptyString, - bool interactive = true); - - // version better suitable for 'public' use. Returns wxFontEcoding - // that can be used it wxFont ctor - bool GetAltForEncoding(wxFontEncoding encoding, - wxFontEncoding *alt_encoding, - const wxString& facename = wxEmptyString, - bool interactive = true); - - // checks whether given encoding is available in given face or not. - // - // if no facename is given (default), return true if it's available in any - // facename at alll. - virtual bool IsEncodingAvailable(wxFontEncoding encoding, - const wxString& facename = wxEmptyString); - - - // configure the appearance of the dialogs we may popup - // ---------------------------------------------------- - - // the parent window for modal dialogs - void SetDialogParent(wxWindow *parent) { m_windowParent = parent; } - - // the title for the dialogs (note that default is quite reasonable) - void SetDialogTitle(const wxString& title) { m_titleDialog = title; } - - // GUI code needs to know it's a wxFontMapper because there - // are additional methods in the subclass. - static wxFontMapper *Get(); - - // pseudo-RTTI since we aren't a wxObject. - virtual bool IsDummy() { return false; } - -protected: - // GetAltForEncoding() helper: tests for the existence of the given - // encoding and saves the result in config if ok - this results in the - // following (desired) behaviour: when an unknown/unavailable encoding is - // requested for the first time, the user is asked about a replacement, - // but if he doesn't choose any and the default logic finds one, it will - // be saved in the config so that the user won't be asked about it any - // more - bool TestAltEncoding(const wxString& configEntry, - wxFontEncoding encReplacement, - wxNativeEncodingInfo *info); - - // the title for our dialogs - wxString m_titleDialog; - - // the parent window for our dialogs - wxWindow *m_windowParent; - -private: - wxDECLARE_NO_COPY_CLASS(wxFontMapper); -}; - -#endif // wxUSE_GUI - -// ---------------------------------------------------------------------------- -// global variables -// ---------------------------------------------------------------------------- - -// the default font mapper for wxWidgets programs do NOT use! This is for -// backward compatibility, use wxFontMapper::Get() instead -#define wxTheFontMapper (wxFontMapper::Get()) - -#else // !wxUSE_FONTMAP - -#if wxUSE_GUI - // wxEncodingToCodepage (utils.cpp) needs wxGetNativeFontEncoding - #include "wx/fontutil.h" -#endif - -#endif // wxUSE_FONTMAP/!wxUSE_FONTMAP - -#endif // _WX_FONTMAPPER_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontpicker.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontpicker.h deleted file mode 100644 index 650c9195..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontpicker.h +++ /dev/null @@ -1,235 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/fontpicker.h -// Purpose: wxFontPickerCtrl base header -// Author: Francesco Montorsi -// Modified by: -// Created: 14/4/2006 -// Copyright: (c) Francesco Montorsi -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONTPICKER_H_BASE_ -#define _WX_FONTPICKER_H_BASE_ - -#include "wx/defs.h" - - -#if wxUSE_FONTPICKERCTRL - -#include "wx/pickerbase.h" - - -class WXDLLIMPEXP_FWD_CORE wxFontPickerEvent; - -extern WXDLLIMPEXP_DATA_CORE(const char) wxFontPickerWidgetNameStr[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxFontPickerCtrlNameStr[]; - - -// ---------------------------------------------------------------------------- -// wxFontPickerWidgetBase: a generic abstract interface which must be -// implemented by controls used by wxFontPickerCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFontPickerWidgetBase -{ -public: - wxFontPickerWidgetBase() { m_selectedFont = *wxNORMAL_FONT; } - virtual ~wxFontPickerWidgetBase() {} - - wxFont GetSelectedFont() const - { return m_selectedFont; } - virtual void SetSelectedFont(const wxFont &f) - { m_selectedFont = f; UpdateFont(); } - - virtual wxColour GetSelectedColour() const = 0; - virtual void SetSelectedColour(const wxColour &colour) = 0; - -protected: - - virtual void UpdateFont() = 0; - - // the current font (may be invalid if none) - // NOTE: don't call this m_font as wxWindow::m_font already exists - wxFont m_selectedFont; -}; - -// Styles which must be supported by all controls implementing wxFontPickerWidgetBase -// NB: these styles must be defined to carefully-chosen values to -// avoid conflicts with wxButton's styles - - -// keeps the label of the button updated with the fontface name + font size -// E.g. choosing "Times New Roman bold, italic with size 10" from the fontdialog, -// updates the wxFontButtonGeneric's label (overwriting any previous label) -// with the "Times New Roman, 10" text (only fontface + fontsize is displayed -// to avoid extralong labels). -#define wxFNTP_FONTDESC_AS_LABEL 0x0008 - -// uses the currently selected font to draw the label of the button -#define wxFNTP_USEFONT_FOR_LABEL 0x0010 - -#define wxFONTBTN_DEFAULT_STYLE \ - (wxFNTP_FONTDESC_AS_LABEL | wxFNTP_USEFONT_FOR_LABEL) - -// native version currently only exists in wxGTK2 -#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__) - #include "wx/gtk/fontpicker.h" - #define wxFontPickerWidget wxFontButton -#else - #include "wx/generic/fontpickerg.h" - #define wxFontPickerWidget wxGenericFontButton -#endif - - -// ---------------------------------------------------------------------------- -// wxFontPickerCtrl specific flags -// ---------------------------------------------------------------------------- - -#define wxFNTP_USE_TEXTCTRL (wxPB_USE_TEXTCTRL) -#define wxFNTP_DEFAULT_STYLE (wxFNTP_FONTDESC_AS_LABEL|wxFNTP_USEFONT_FOR_LABEL) - -// not a style but rather the default value of the maximum pointsize allowed -#define wxFNTP_MAXPOINT_SIZE 100 - - -// ---------------------------------------------------------------------------- -// wxFontPickerCtrl: platform-independent class which embeds the -// platform-dependent wxFontPickerWidget andm if wxFNTP_USE_TEXTCTRL style is -// used, a textctrl next to it. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFontPickerCtrl : public wxPickerBase -{ -public: - wxFontPickerCtrl() - : m_nMaxPointSize(wxFNTP_MAXPOINT_SIZE) - { - } - - virtual ~wxFontPickerCtrl() {} - - - wxFontPickerCtrl(wxWindow *parent, - wxWindowID id, - const wxFont& initial = wxNullFont, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxFNTP_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxFontPickerCtrlNameStr) - : m_nMaxPointSize(wxFNTP_MAXPOINT_SIZE) - { - Create(parent, id, initial, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxFont& initial = wxNullFont, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxFNTP_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxFontPickerCtrlNameStr); - - -public: // public API - - // get the font chosen - wxFont GetSelectedFont() const - { return GetPickerWidget()->GetSelectedFont(); } - - // sets currently displayed font - void SetSelectedFont(const wxFont& f); - - // returns the selected color - wxColour GetSelectedColour() const - { return GetPickerWidget()->GetSelectedColour(); } - - // sets the currently selected color - void SetSelectedColour(const wxColour& colour) - { GetPickerWidget()->SetSelectedColour(colour); } - - // set/get the max point size - void SetMaxPointSize(unsigned int max) - { m_nMaxPointSize=max; } - unsigned int GetMaxPointSize() const - { return m_nMaxPointSize; } - -public: // internal functions - - void UpdatePickerFromTextCtrl() wxOVERRIDE; - void UpdateTextCtrlFromPicker() wxOVERRIDE; - - // event handler for our picker - void OnFontChange(wxFontPickerEvent &); - - // used to convert wxString <-> wxFont - virtual wxString Font2String(const wxFont &font); - virtual wxFont String2Font(const wxString &font); - -protected: - - // extracts the style for our picker from wxFontPickerCtrl's style - long GetPickerStyle(long style) const wxOVERRIDE - { return (style & (wxFNTP_FONTDESC_AS_LABEL|wxFNTP_USEFONT_FOR_LABEL)); } - - // the maximum pointsize allowed to the user - unsigned int m_nMaxPointSize; - -private: - wxFontPickerWidget* GetPickerWidget() const - { return static_cast(m_picker); } - - wxDECLARE_DYNAMIC_CLASS(wxFontPickerCtrl); -}; - - -// ---------------------------------------------------------------------------- -// wxFontPickerEvent: used by wxFontPickerCtrl only -// ---------------------------------------------------------------------------- - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_FONTPICKER_CHANGED, wxFontPickerEvent ); - -class WXDLLIMPEXP_CORE wxFontPickerEvent : public wxCommandEvent -{ -public: - wxFontPickerEvent() {} - wxFontPickerEvent(wxObject *generator, int id, const wxFont &f) - : wxCommandEvent(wxEVT_FONTPICKER_CHANGED, id), - m_font(f) - { - SetEventObject(generator); - } - - wxFont GetFont() const { return m_font; } - void SetFont(const wxFont &c) { m_font = c; } - - // default copy ctor, assignment operator and dtor are ok - virtual wxEvent *Clone() const wxOVERRIDE { return new wxFontPickerEvent(*this); } - -private: - wxFont m_font; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxFontPickerEvent); -}; - -// ---------------------------------------------------------------------------- -// event types and macros -// ---------------------------------------------------------------------------- - -typedef void (wxEvtHandler::*wxFontPickerEventFunction)(wxFontPickerEvent&); - -#define wxFontPickerEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxFontPickerEventFunction, func) - -#define EVT_FONTPICKER_CHANGED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_FONTPICKER_CHANGED, id, wxFontPickerEventHandler(fn)) - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_FONTPICKER_CHANGED wxEVT_FONTPICKER_CHANGED - - -#endif // wxUSE_FONTPICKERCTRL - -#endif - // _WX_FONTPICKER_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontutil.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontutil.h deleted file mode 100644 index 848166cf..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fontutil.h +++ /dev/null @@ -1,322 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/fontutil.h -// Purpose: font-related helper functions -// Author: Vadim Zeitlin -// Modified by: -// Created: 05.11.99 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// General note: this header is private to wxWidgets and is not supposed to be -// included by user code. The functions declared here are implemented in -// msw/fontutil.cpp for Windows, unix/fontutil.cpp for GTK/Motif &c. - -#ifndef _WX_FONTUTIL_H_ -#define _WX_FONTUTIL_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/font.h" // for wxFont and wxFontEncoding - -#if defined(__WXMSW__) - #include "wx/msw/wrapwin.h" -#endif - -#if defined(__WXQT__) - #include -#endif - -class WXDLLIMPEXP_FWD_BASE wxArrayString; -struct WXDLLIMPEXP_FWD_CORE wxNativeEncodingInfo; - -#if defined(_WX_X_FONTLIKE) - -// the symbolic names for the XLFD fields (with examples for their value) -// -// NB: we suppose that the font always starts with the empty token (font name -// registry field) as we never use nor generate it anyhow -enum wxXLFDField -{ - wxXLFD_FOUNDRY, // adobe - wxXLFD_FAMILY, // courier, times, ... - wxXLFD_WEIGHT, // black, bold, demibold, medium, regular, light - wxXLFD_SLANT, // r/i/o (roman/italique/oblique) - wxXLFD_SETWIDTH, // condensed, expanded, ... - wxXLFD_ADDSTYLE, // whatever - usually nothing - wxXLFD_PIXELSIZE, // size in pixels - wxXLFD_POINTSIZE, // size in points - wxXLFD_RESX, // 72, 75, 100, ... - wxXLFD_RESY, - wxXLFD_SPACING, // m/p/c (monospaced/proportional/character cell) - wxXLFD_AVGWIDTH, // average width in 1/10 pixels - wxXLFD_REGISTRY, // iso8859, rawin, koi8, ... - wxXLFD_ENCODING, // 1, r, r, ... - wxXLFD_MAX -}; - -#endif // _WX_X_FONTLIKE - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -// wxNativeFontInfo is platform-specific font representation: this struct -// should be considered as opaque font description only used by the native -// functions, the user code can only get the objects of this type from -// somewhere and pass it somewhere else (possibly save them somewhere using -// ToString() and restore them using FromString()) - -class WXDLLIMPEXP_CORE wxNativeFontInfo -{ -public: -#if wxUSE_PANGO - PangoFontDescription *description; - - // Pango font description doesn't have these attributes, so we store them - // separately and handle them ourselves in {To,From}String() methods. - bool m_underlined; - bool m_strikethrough; -#elif defined(_WX_X_FONTLIKE) - // the members can't be accessed directly as we only parse the - // xFontName on demand -private: - // the components of the XLFD - wxString fontElements[wxXLFD_MAX]; - - // the full XLFD - wxString xFontName; - - // true until SetXFontName() is called - bool m_isDefault; - - // return true if we have already initialized fontElements - inline bool HasElements() const; - -public: - // init the elements from an XLFD, return true if ok - bool FromXFontName(const wxString& xFontName); - - // return false if we were never initialized with a valid XLFD - bool IsDefault() const { return m_isDefault; } - - // return the XLFD (using the fontElements if necessary) - wxString GetXFontName() const; - - // get the given XFLD component - wxString GetXFontComponent(wxXLFDField field) const; - - // change the font component - void SetXFontComponent(wxXLFDField field, const wxString& value); - - // set the XFLD - void SetXFontName(const wxString& xFontName); -#elif defined(__WXMSW__) - wxNativeFontInfo(const LOGFONT& lf_) : lf(lf_) { } - - LOGFONT lf; -#elif defined(__WXOSX__) -public: - wxNativeFontInfo(const wxNativeFontInfo& info) { Init(info); } - wxNativeFontInfo( int size, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underlined, - bool strikethrough, - const wxString& faceName, - wxFontEncoding encoding) - { - Init(size, family, style, weight, - underlined, strikethrough, - faceName, encoding); - } - - ~wxNativeFontInfo() { Free(); } - - wxNativeFontInfo& operator=(const wxNativeFontInfo& info) - { - if (this != &info) - { - Free(); - Init(info); - } - return *this; - } - - void Init(CTFontDescriptorRef descr); - void Init(const wxNativeFontInfo& info); - void Init(int size, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underlined, - bool strikethrough, - const wxString& faceName , - wxFontEncoding encoding); - - void Free(); - void EnsureValid(); - - static void UpdateNamesMap(const wxString& familyname, CTFontDescriptorRef descr); - static void UpdateNamesMap(const wxString& familyname, CTFontRef font); - - bool m_descriptorValid; - -#if wxOSX_USE_ATSU_TEXT - bool m_atsuFontValid; - // the atsu font ID - wxUint32 m_atsuFontID; - // the qd styles that are not intrinsic to the font above - wxInt16 m_atsuAdditionalQDStyles; -#endif - - int m_pointSize; - wxFontFamily m_family; - wxFontStyle m_style; - wxFontWeight m_weight; - bool m_underlined; - bool m_strikethrough; - wxString m_faceName; - wxFontEncoding m_encoding; -public : -#elif defined(__WXQT__) - QFont m_qtFont; -#else // other platforms - // - // This is a generic implementation that should work on all ports - // without specific support by the port. - // - #define wxNO_NATIVE_FONTINFO - - int pointSize; - wxFontFamily family; - wxFontStyle style; - wxFontWeight weight; - bool underlined; - bool strikethrough; - wxString faceName; - wxFontEncoding encoding; -#endif // platforms - - // default ctor (default copy ctor is ok) - wxNativeFontInfo() { Init(); } - -#if wxUSE_PANGO -private: - void Init(const wxNativeFontInfo& info); - void Free(); - -public: - wxNativeFontInfo(const wxNativeFontInfo& info) { Init(info); } - ~wxNativeFontInfo() { Free(); } - - wxNativeFontInfo& operator=(const wxNativeFontInfo& info) - { - if (this != &info) - { - Free(); - Init(info); - } - return *this; - } -#endif // wxUSE_PANGO - - // reset to the default state - void Init(); - - // init with the parameters of the given font - void InitFromFont(const wxFont& font) - { - // translate all font parameters - SetStyle((wxFontStyle)font.GetStyle()); - SetWeight((wxFontWeight)font.GetWeight()); - SetUnderlined(font.GetUnderlined()); - SetStrikethrough(font.GetStrikethrough()); -#if defined(__WXMSW__) - if ( font.IsUsingSizeInPixels() ) - SetPixelSize(font.GetPixelSize()); - else - SetPointSize(font.GetPointSize()); -#else - SetPointSize(font.GetPointSize()); -#endif - - // set the family/facename - SetFamily((wxFontFamily)font.GetFamily()); - const wxString& facename = font.GetFaceName(); - if ( !facename.empty() ) - { - SetFaceName(facename); - } - - // deal with encoding now (it may override the font family and facename - // so do it after setting them) - SetEncoding(font.GetEncoding()); - } - - // accessors and modifiers for the font elements - int GetPointSize() const; - wxSize GetPixelSize() const; - wxFontStyle GetStyle() const; - wxFontWeight GetWeight() const; - bool GetUnderlined() const; - bool GetStrikethrough() const; - wxString GetFaceName() const; - wxFontFamily GetFamily() const; - wxFontEncoding GetEncoding() const; - - void SetPointSize(int pointsize); - void SetPixelSize(const wxSize& pixelSize); - void SetStyle(wxFontStyle style); - void SetWeight(wxFontWeight weight); - void SetUnderlined(bool underlined); - void SetStrikethrough(bool strikethrough); - bool SetFaceName(const wxString& facename); - void SetFamily(wxFontFamily family); - void SetEncoding(wxFontEncoding encoding); - - // sets the first facename in the given array which is found - // to be valid. If no valid facename is given, sets the - // first valid facename returned by wxFontEnumerator::GetFacenames(). - // Does not return a bool since it cannot fail. - void SetFaceName(const wxArrayString &facenames); - - - // it is important to be able to serialize wxNativeFontInfo objects to be - // able to store them (in config file, for example) - bool FromString(const wxString& s); - wxString ToString() const; - - // we also want to present the native font descriptions to the user in some - // human-readable form (it is not platform independent neither, but can - // hopefully be understood by the user) - bool FromUserString(const wxString& s); - wxString ToUserString() const; -}; - -// ---------------------------------------------------------------------------- -// font-related functions (common) -// ---------------------------------------------------------------------------- - -// translate a wxFontEncoding into native encoding parameter (defined above), -// returning true if an (exact) macth could be found, false otherwise (without -// attempting any substitutions) -WXDLLIMPEXP_CORE bool wxGetNativeFontEncoding(wxFontEncoding encoding, - wxNativeEncodingInfo *info); - -// test for the existence of the font described by this facename/encoding, -// return true if such font(s) exist, false otherwise -WXDLLIMPEXP_CORE bool wxTestFontEncoding(const wxNativeEncodingInfo& info); - -// ---------------------------------------------------------------------------- -// font-related functions (X and GTK) -// ---------------------------------------------------------------------------- - -#ifdef _WX_X_FONTLIKE - #include "wx/unix/fontutil.h" -#endif // X || GDK - -#endif // _WX_FONTUTIL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/frame.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/frame.h deleted file mode 100644 index c1e1bcfe..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/frame.h +++ /dev/null @@ -1,273 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/frame.h -// Purpose: wxFrame class interface -// Author: Vadim Zeitlin -// Modified by: -// Created: 15.11.99 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FRAME_H_BASE_ -#define _WX_FRAME_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/toplevel.h" // the base class -#include "wx/statusbr.h" - -// the default names for various classs -extern WXDLLIMPEXP_DATA_CORE(const char) wxStatusLineNameStr[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxToolBarNameStr[]; - -class WXDLLIMPEXP_FWD_CORE wxFrame; -class WXDLLIMPEXP_FWD_CORE wxMenuBar; -class WXDLLIMPEXP_FWD_CORE wxMenuItem; -class WXDLLIMPEXP_FWD_CORE wxStatusBar; -class WXDLLIMPEXP_FWD_CORE wxToolBar; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// wxFrame-specific (i.e. not for wxDialog) styles -// -// Also see the bit summary table in wx/toplevel.h. -#define wxFRAME_NO_TASKBAR 0x0002 // No taskbar button (MSW only) -#define wxFRAME_TOOL_WINDOW 0x0004 // No taskbar button, no system menu -#define wxFRAME_FLOAT_ON_PARENT 0x0008 // Always above its parent - -// ---------------------------------------------------------------------------- -// wxFrame is a top-level window with optional menubar, statusbar and toolbar -// -// For each of *bars, a frame may have several of them, but only one is -// managed by the frame, i.e. resized/moved when the frame is and whose size -// is accounted for in client size calculations - all others should be taken -// care of manually. The CreateXXXBar() functions create this, main, XXXBar, -// but the actual creation is done in OnCreateXXXBar() functions which may be -// overridden to create custom objects instead of standard ones when -// CreateXXXBar() is called. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFrameBase : public wxTopLevelWindow -{ -public: - // construction - wxFrameBase(); - virtual ~wxFrameBase(); - - wxFrame *New(wxWindow *parent, - wxWindowID winid, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - // frame state - // ----------- - - // get the origin of the client area (which may be different from (0, 0) - // if the frame has a toolbar) in client coordinates - virtual wxPoint GetClientAreaOrigin() const wxOVERRIDE; - - - // menu bar functions - // ------------------ - -#if wxUSE_MENUS - virtual void SetMenuBar(wxMenuBar *menubar); - virtual wxMenuBar *GetMenuBar() const { return m_frameMenuBar; } - - // find the item by id in the frame menu bar: this is an internal function - // and exists mainly in order to be overridden in the MDI parent frame - // which also looks at its active child menu bar - virtual wxMenuItem *FindItemInMenuBar(int menuId) const; - - // generate menu command corresponding to the given menu item - // - // returns true if processed - bool ProcessCommand(wxMenuItem *item); - - // generate menu command corresponding to the given menu command id - // - // returns true if processed - bool ProcessCommand(int winid); -#else - bool ProcessCommand(int WXUNUSED(winid)) { return false; } -#endif // wxUSE_MENUS - - // status bar functions - // -------------------- -#if wxUSE_STATUSBAR - // create the main status bar by calling OnCreateStatusBar() - virtual wxStatusBar* CreateStatusBar(int number = 1, - long style = wxSTB_DEFAULT_STYLE, - wxWindowID winid = 0, - const wxString& name = wxStatusLineNameStr); - // return a new status bar - virtual wxStatusBar *OnCreateStatusBar(int number, - long style, - wxWindowID winid, - const wxString& name); - // get the main status bar - virtual wxStatusBar *GetStatusBar() const { return m_frameStatusBar; } - - // sets the main status bar - virtual void SetStatusBar(wxStatusBar *statBar); - - // forward these to status bar - virtual void SetStatusText(const wxString &text, int number = 0); - virtual void SetStatusWidths(int n, const int widths_field[]); - void PushStatusText(const wxString &text, int number = 0); - void PopStatusText(int number = 0); - - // set the status bar pane the help will be shown in - void SetStatusBarPane(int n) { m_statusBarPane = n; } - int GetStatusBarPane() const { return m_statusBarPane; } -#endif // wxUSE_STATUSBAR - - // toolbar functions - // ----------------- - -#if wxUSE_TOOLBAR - // create main toolbar bycalling OnCreateToolBar() - virtual wxToolBar* CreateToolBar(long style = -1, - wxWindowID winid = wxID_ANY, - const wxString& name = wxToolBarNameStr); - // return a new toolbar - virtual wxToolBar *OnCreateToolBar(long style, - wxWindowID winid, - const wxString& name ); - - // get/set the main toolbar - virtual wxToolBar *GetToolBar() const { return m_frameToolBar; } - virtual void SetToolBar(wxToolBar *toolbar); -#endif // wxUSE_TOOLBAR - - // implementation only from now on - // ------------------------------- - - // event handlers -#if wxUSE_MENUS -#if wxUSE_STATUSBAR - void OnMenuOpen(wxMenuEvent& event); - void OnMenuClose(wxMenuEvent& event); - void OnMenuHighlight(wxMenuEvent& event); -#endif // wxUSE_STATUSBAR - - // send wxUpdateUIEvents for all menu items in the menubar, - // or just for menu if non-NULL - virtual void DoMenuUpdates(wxMenu* menu = NULL); -#endif // wxUSE_MENUS - - // do the UI update processing for this window - virtual void UpdateWindowUI(long flags = wxUPDATE_UI_NONE) wxOVERRIDE; - - // Implement internal behaviour (menu updating on some platforms) - virtual void OnInternalIdle() wxOVERRIDE; - -#if wxUSE_MENUS || wxUSE_TOOLBAR - // show help text for the currently selected menu or toolbar item - // (typically in the status bar) or hide it and restore the status bar text - // originally shown before the menu was opened if show == false - virtual void DoGiveHelp(const wxString& text, bool show); -#endif - - virtual bool IsClientAreaChild(const wxWindow *child) const wxOVERRIDE - { - return !IsOneOfBars(child) && wxTopLevelWindow::IsClientAreaChild(child); - } - -protected: - // the frame main menu/status/tool bars - // ------------------------------------ - - // this (non virtual!) function should be called from dtor to delete the - // main menubar, statusbar and toolbar (if any) - void DeleteAllBars(); - - // test whether this window makes part of the frame - virtual bool IsOneOfBars(const wxWindow *win) const wxOVERRIDE; - -#if wxUSE_MENUS - // override to update menu bar position when the frame size changes - virtual void PositionMenuBar() { } - - // override to do something special when the menu bar is being removed - // from the frame - virtual void DetachMenuBar(); - - // override to do something special when the menu bar is attached to the - // frame - virtual void AttachMenuBar(wxMenuBar *menubar); - - // Return true if we should update the menu item state from idle event - // handler or false if we should delay it until the menu is opened. - static bool ShouldUpdateMenuFromIdle(); - - wxMenuBar *m_frameMenuBar; -#endif // wxUSE_MENUS - -#if wxUSE_STATUSBAR && (wxUSE_MENUS || wxUSE_TOOLBAR) - // the saved status bar text overwritten by DoGiveHelp() - wxString m_oldStatusText; - - // the last help string we have shown in the status bar - wxString m_lastHelpShown; -#endif - -#if wxUSE_STATUSBAR - // override to update status bar position (or anything else) when - // something changes - virtual void PositionStatusBar() { } - - // show the help string for the given menu item using DoGiveHelp() if the - // given item does have a help string (as determined by FindInMenuBar()), - // return false if there is no help for such item - bool ShowMenuHelp(int helpid); - - wxStatusBar *m_frameStatusBar; -#endif // wxUSE_STATUSBAR - - - int m_statusBarPane; - -#if wxUSE_TOOLBAR - // override to update status bar position (or anything else) when - // something changes - virtual void PositionToolBar() { } - - wxToolBar *m_frameToolBar; -#endif // wxUSE_TOOLBAR - -#if wxUSE_MENUS && wxUSE_STATUSBAR - wxDECLARE_EVENT_TABLE(); -#endif // wxUSE_MENUS && wxUSE_STATUSBAR - - wxDECLARE_NO_COPY_CLASS(wxFrameBase); -}; - -// include the real class declaration -#if defined(__WXUNIVERSAL__) - #include "wx/univ/frame.h" -#else // !__WXUNIVERSAL__ - #if defined(__WXMSW__) - #include "wx/msw/frame.h" - #elif defined(__WXGTK20__) - #include "wx/gtk/frame.h" - #elif defined(__WXGTK__) - #include "wx/gtk1/frame.h" - #elif defined(__WXMOTIF__) - #include "wx/motif/frame.h" - #elif defined(__WXMAC__) - #include "wx/osx/frame.h" - #elif defined(__WXQT__) - #include "wx/qt/frame.h" - #endif -#endif - -#endif - // _WX_FRAME_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_arc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_arc.h deleted file mode 100644 index 014270d6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_arc.h +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/fs_arc.h -// Purpose: Archive file system -// Author: Vaclav Slavik, Mike Wetherell -// Copyright: (c) 1999 Vaclav Slavik, (c) 2006 Mike Wetherell -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FS_ARC_H_ -#define _WX_FS_ARC_H_ - -#include "wx/defs.h" - -#if wxUSE_FS_ARCHIVE - -#include "wx/filesys.h" -#include "wx/hashmap.h" - -WX_DECLARE_STRING_HASH_MAP(int, wxArchiveFilenameHashMap); - -//--------------------------------------------------------------------------- -// wxArchiveFSHandler -//--------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxArchiveFSHandler : public wxFileSystemHandler -{ -public: - wxArchiveFSHandler(); - virtual bool CanOpen(const wxString& location) wxOVERRIDE; - virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location) wxOVERRIDE; - virtual wxString FindFirst(const wxString& spec, int flags = 0) wxOVERRIDE; - virtual wxString FindNext() wxOVERRIDE; - void Cleanup(); - virtual ~wxArchiveFSHandler(); - -private: - class wxArchiveFSCache *m_cache; - wxFileSystem m_fs; - - // these vars are used by FindFirst/Next: - class wxArchiveFSCacheData *m_Archive; - struct wxArchiveFSEntry *m_FindEntry; - wxString m_Pattern, m_BaseDir, m_ZipFile; - bool m_AllowDirs, m_AllowFiles; - wxArchiveFilenameHashMap *m_DirsFound; - - wxString DoFind(); - - wxDECLARE_NO_COPY_CLASS(wxArchiveFSHandler); - wxDECLARE_DYNAMIC_CLASS(wxArchiveFSHandler); -}; - -#endif // wxUSE_FS_ARCHIVE - -#endif // _WX_FS_ARC_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_filter.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_filter.h deleted file mode 100644 index 43919212..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_filter.h +++ /dev/null @@ -1,40 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/fs_filter.h -// Purpose: Filter file system handler -// Author: Mike Wetherell -// Copyright: (c) 2006 Mike Wetherell -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FS_FILTER_H_ -#define _WX_FS_FILTER_H_ - -#include "wx/defs.h" - -#if wxUSE_FILESYSTEM - -#include "wx/filesys.h" - -//--------------------------------------------------------------------------- -// wxFilterFSHandler -//--------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxFilterFSHandler : public wxFileSystemHandler -{ -public: - wxFilterFSHandler() : wxFileSystemHandler() { } - virtual ~wxFilterFSHandler() { } - - virtual bool CanOpen(const wxString& location) wxOVERRIDE; - virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location) wxOVERRIDE; - - virtual wxString FindFirst(const wxString& spec, int flags = 0) wxOVERRIDE; - virtual wxString FindNext() wxOVERRIDE; - -private: - wxDECLARE_NO_COPY_CLASS(wxFilterFSHandler); -}; - -#endif // wxUSE_FILESYSTEM - -#endif // _WX_FS_FILTER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_inet.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_inet.h deleted file mode 100644 index 58b74ab6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_inet.h +++ /dev/null @@ -1,33 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/fs_inet.h -// Purpose: HTTP and FTP file system -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FS_INET_H_ -#define _WX_FS_INET_H_ - -#include "wx/defs.h" - -#if wxUSE_FILESYSTEM && wxUSE_FS_INET && wxUSE_STREAMS && wxUSE_SOCKETS - -#include "wx/filesys.h" - -// ---------------------------------------------------------------------------- -// wxInternetFSHandler -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_NET wxInternetFSHandler : public wxFileSystemHandler -{ - public: - virtual bool CanOpen(const wxString& location) wxOVERRIDE; - virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location) wxOVERRIDE; -}; - -#endif - // wxUSE_FILESYSTEM && wxUSE_FS_INET && wxUSE_STREAMS && wxUSE_SOCKETS - -#endif // _WX_FS_INET_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_mem.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_mem.h deleted file mode 100644 index f62d21c2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_mem.h +++ /dev/null @@ -1,140 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/fs_mem.h -// Purpose: in-memory file system -// Author: Vaclav Slavik -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FS_MEM_H_ -#define _WX_FS_MEM_H_ - -#include "wx/defs.h" - -#if wxUSE_FILESYSTEM - -#include "wx/filesys.h" - -#include "wx/hashmap.h" - -class wxMemoryFSFile; -WX_DECLARE_STRING_HASH_MAP(wxMemoryFSFile *, wxMemoryFSHash); - -#if wxUSE_GUI - #include "wx/bitmap.h" -#endif // wxUSE_GUI - -// ---------------------------------------------------------------------------- -// wxMemoryFSHandlerBase -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMemoryFSHandlerBase : public wxFileSystemHandler -{ -public: - wxMemoryFSHandlerBase(); - virtual ~wxMemoryFSHandlerBase(); - - // Add file to list of files stored in memory. Stored data (bitmap, text or - // raw data) will be copied into private memory stream and available under - // name "memory:" + filename - static void AddFile(const wxString& filename, const wxString& textdata); - static void AddFile(const wxString& filename, const void *binarydata, size_t size); - static void AddFileWithMimeType(const wxString& filename, - const wxString& textdata, - const wxString& mimetype); - static void AddFileWithMimeType(const wxString& filename, - const void *binarydata, size_t size, - const wxString& mimetype); - - // Remove file from memory FS and free occupied memory - static void RemoveFile(const wxString& filename); - - virtual bool CanOpen(const wxString& location) wxOVERRIDE; - virtual wxFSFile* OpenFile(wxFileSystem& fs, const wxString& location) wxOVERRIDE; - virtual wxString FindFirst(const wxString& spec, int flags = 0) wxOVERRIDE; - virtual wxString FindNext() wxOVERRIDE; - -protected: - // check that the given file is not already present in m_Hash; logs an - // error and returns false if it does exist - static bool CheckDoesntExist(const wxString& filename); - - // the hash map indexed by the names of the files stored in the memory FS - static wxMemoryFSHash m_Hash; - - // the file name currently being searched for, i.e. the argument of the - // last FindFirst() call or empty string if FindFirst() hasn't been called - // yet or FindNext() didn't find anything - wxString m_findArgument; - - // iterator into m_Hash used by FindFirst/Next(), possibly m_Hash.end() or - // even invalid (can only be used when m_findArgument is not empty) - wxMemoryFSHash::const_iterator m_findIter; -}; - -// ---------------------------------------------------------------------------- -// wxMemoryFSHandler -// ---------------------------------------------------------------------------- - -#if wxUSE_GUI - -// add GUI-only operations to the base class -class WXDLLIMPEXP_CORE wxMemoryFSHandler : public wxMemoryFSHandlerBase -{ -public: - // bring the base class versions into the scope, otherwise they would be - // inaccessible in wxMemoryFSHandler - // (unfortunately "using" can't be used as gcc 2.95 doesn't have it...) - static void AddFile(const wxString& filename, const wxString& textdata) - { - wxMemoryFSHandlerBase::AddFile(filename, textdata); - } - - static void AddFile(const wxString& filename, - const void *binarydata, - size_t size) - { - wxMemoryFSHandlerBase::AddFile(filename, binarydata, size); - } - static void AddFileWithMimeType(const wxString& filename, - const wxString& textdata, - const wxString& mimetype) - { - wxMemoryFSHandlerBase::AddFileWithMimeType(filename, - textdata, - mimetype); - } - static void AddFileWithMimeType(const wxString& filename, - const void *binarydata, size_t size, - const wxString& mimetype) - { - wxMemoryFSHandlerBase::AddFileWithMimeType(filename, - binarydata, size, - mimetype); - } - -#if wxUSE_IMAGE - static void AddFile(const wxString& filename, - const wxImage& image, - wxBitmapType type); - - static void AddFile(const wxString& filename, - const wxBitmap& bitmap, - wxBitmapType type); -#endif // wxUSE_IMAGE - -}; - -#else // !wxUSE_GUI - -// just the same thing as the base class in wxBase -class WXDLLIMPEXP_BASE wxMemoryFSHandler : public wxMemoryFSHandlerBase -{ -}; - -#endif // wxUSE_GUI/!wxUSE_GUI - -#endif // wxUSE_FILESYSTEM - -#endif // _WX_FS_MEM_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_zip.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_zip.h deleted file mode 100644 index 197a46a5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fs_zip.h +++ /dev/null @@ -1,22 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/fs_zip.h -// Purpose: wxZipFSHandler typedef for compatibility -// Author: Mike Wetherell -// Copyright: (c) 2006 Mike Wetherell -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FS_ZIP_H_ -#define _WX_FS_ZIP_H_ - -#include "wx/defs.h" - -#if wxUSE_FS_ZIP - -#include "wx/fs_arc.h" - -typedef wxArchiveFSHandler wxZipFSHandler; - -#endif // wxUSE_FS_ZIP - -#endif // _WX_FS_ZIP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fswatcher.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fswatcher.h deleted file mode 100644 index a29ff834..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/fswatcher.h +++ /dev/null @@ -1,415 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/fswatcher.h -// Purpose: wxFileSystemWatcherBase -// Author: Bartosz Bekier -// Created: 2009-05-23 -// Copyright: (c) 2009 Bartosz Bekier -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FSWATCHER_BASE_H_ -#define _WX_FSWATCHER_BASE_H_ - -#include "wx/defs.h" - -#if wxUSE_FSWATCHER - -#include "wx/log.h" -#include "wx/event.h" -#include "wx/evtloop.h" -#include "wx/filename.h" -#include "wx/dir.h" -#include "wx/hashmap.h" - -#define wxTRACE_FSWATCHER "fswatcher" - -// ---------------------------------------------------------------------------- -// wxFileSystemWatcherEventType & wxFileSystemWatcherEvent -// ---------------------------------------------------------------------------- - -/** - * Possible types of file system events. - * This is a subset that will work fine an all platforms (actually, we will - * see how it works on Mac). - * - * We got 2 types of error events: - * - warning: these are not fatal and further events can still be generated - * - error: indicates fatal error and causes that no more events will happen - */ -enum -{ - wxFSW_EVENT_CREATE = 0x01, - wxFSW_EVENT_DELETE = 0x02, - wxFSW_EVENT_RENAME = 0x04, - wxFSW_EVENT_MODIFY = 0x08, - wxFSW_EVENT_ACCESS = 0x10, - wxFSW_EVENT_ATTRIB = 0x20, // Currently this is wxGTK-only - - // error events - wxFSW_EVENT_WARNING = 0x40, - wxFSW_EVENT_ERROR = 0x80, - wxFSW_EVENT_ALL = wxFSW_EVENT_CREATE | wxFSW_EVENT_DELETE | - wxFSW_EVENT_RENAME | wxFSW_EVENT_MODIFY | - wxFSW_EVENT_ACCESS | wxFSW_EVENT_ATTRIB | - wxFSW_EVENT_WARNING | wxFSW_EVENT_ERROR -#if defined(wxHAS_INOTIFY) || defined(wxHAVE_FSEVENTS_FILE_NOTIFICATIONS) - ,wxFSW_EVENT_UNMOUNT = 0x2000 -#endif -}; - -// Type of the path watched, used only internally for now. -enum wxFSWPathType -{ - wxFSWPath_None, // Invalid value for an initialized watch. - wxFSWPath_File, // Plain file. - wxFSWPath_Dir, // Watch a directory and the files in it. - wxFSWPath_Tree // Watch a directory and all its children recursively. -}; - -// Type of the warning for the events notifying about them. -enum wxFSWWarningType -{ - wxFSW_WARNING_NONE, - wxFSW_WARNING_GENERAL, - wxFSW_WARNING_OVERFLOW -}; - -/** - * Event containing information about file system change. - */ -class WXDLLIMPEXP_FWD_BASE wxFileSystemWatcherEvent; -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_BASE, wxEVT_FSWATCHER, - wxFileSystemWatcherEvent); - -class WXDLLIMPEXP_BASE wxFileSystemWatcherEvent: public wxEvent -{ -public: - // Constructor for any kind of events, also used as default ctor. - wxFileSystemWatcherEvent(int changeType = 0, int watchid = wxID_ANY) : - wxEvent(watchid, wxEVT_FSWATCHER), - m_changeType(changeType), - m_warningType(wxFSW_WARNING_NONE) - { - } - - // Constructor for the error or warning events. - wxFileSystemWatcherEvent(int changeType, - wxFSWWarningType warningType, - const wxString& errorMsg = wxString(), - int watchid = wxID_ANY) : - wxEvent(watchid, wxEVT_FSWATCHER), - m_changeType(changeType), - m_warningType(warningType), - m_errorMsg(errorMsg) - { - } - - // Constructor for the normal events carrying information about the changes. - wxFileSystemWatcherEvent(int changeType, - const wxFileName& path, const wxFileName& newPath, - int watchid = wxID_ANY) : - wxEvent(watchid, wxEVT_FSWATCHER), - m_changeType(changeType), - m_warningType(wxFSW_WARNING_NONE), - m_path(path), - m_newPath(newPath) - - { - } - - /** - * Returns the path at which the event occurred. - */ - const wxFileName& GetPath() const - { - return m_path; - } - - /** - * Sets the path at which the event occurred - */ - void SetPath(const wxFileName& path) - { - m_path = path; - } - - /** - * In case of rename(move?) events, returns the new path related to the - * event. The "new" means newer in the sense of time. In case of other - * events it returns the same path as GetPath(). - */ - const wxFileName& GetNewPath() const - { - return m_newPath; - } - - /** - * Sets the new path related to the event. See above. - */ - void SetNewPath(const wxFileName& path) - { - m_newPath = path; - } - - /** - * Returns the type of file system event that occurred. - */ - int GetChangeType() const - { - return m_changeType; - } - - virtual wxEvent* Clone() const wxOVERRIDE - { - wxFileSystemWatcherEvent* evt = new wxFileSystemWatcherEvent(*this); - evt->m_errorMsg = m_errorMsg.Clone(); - evt->m_path = wxFileName(m_path.GetFullPath().Clone()); - evt->m_newPath = wxFileName(m_newPath.GetFullPath().Clone()); - evt->m_warningType = m_warningType; - return evt; - } - - virtual wxEventCategory GetEventCategory() const wxOVERRIDE - { - // TODO this has to be merged with "similar" categories and changed - return wxEVT_CATEGORY_UNKNOWN; - } - - /** - * Returns if this error is an error event - */ - bool IsError() const - { - return (m_changeType & (wxFSW_EVENT_ERROR | wxFSW_EVENT_WARNING)) != 0; - } - - wxString GetErrorDescription() const - { - return m_errorMsg; - } - - wxFSWWarningType GetWarningType() const - { - return m_warningType; - } - - /** - * Returns a wxString describing an event useful for debugging or testing - */ - wxString ToString() const; - -protected: - int m_changeType; - wxFSWWarningType m_warningType; - wxFileName m_path; - wxFileName m_newPath; - wxString m_errorMsg; -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxFileSystemWatcherEvent); -}; - -typedef void (wxEvtHandler::*wxFileSystemWatcherEventFunction) - (wxFileSystemWatcherEvent&); - -#define wxFileSystemWatcherEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxFileSystemWatcherEventFunction, func) - -#define EVT_FSWATCHER(winid, func) \ - wx__DECLARE_EVT1(wxEVT_FSWATCHER, winid, wxFileSystemWatcherEventHandler(func)) - -// ---------------------------------------------------------------------------- -// wxFileSystemWatcherBase: interface for wxFileSystemWatcher -// ---------------------------------------------------------------------------- - -// Simple container to store information about one watched path. -class wxFSWatchInfo -{ -public: - wxFSWatchInfo() : - m_events(-1), m_type(wxFSWPath_None), m_refcount(-1) - { - } - - wxFSWatchInfo(const wxString& path, - int events, - wxFSWPathType type, - const wxString& filespec = wxString()) : - m_path(path), m_filespec(filespec), m_events(events), m_type(type), - m_refcount(1) - { - } - - const wxString& GetPath() const - { - return m_path; - } - - const wxString& GetFilespec() const { return m_filespec; } - - int GetFlags() const - { - return m_events; - } - - wxFSWPathType GetType() const - { - return m_type; - } - - // Reference counting of watch entries is used to avoid watching the same - // file system path multiple times (this can happen even accidentally, e.g. - // when you have a recursive watch and then decide to watch some file or - // directory under it separately). - int IncRef() - { - return ++m_refcount; - } - - int DecRef() - { - wxASSERT_MSG( m_refcount > 0, wxS("Trying to decrement a zero count") ); - return --m_refcount; - } - -protected: - wxString m_path; - wxString m_filespec; // For tree watches, holds any filespec to apply - int m_events; - wxFSWPathType m_type; - int m_refcount; -}; - -WX_DECLARE_STRING_HASH_MAP(wxFSWatchInfo, wxFSWatchInfoMap); - -/** - * Encapsulation of platform-specific file system event mechanism - */ -class wxFSWatcherImpl; - -/** - * Main entry point for clients interested in file system events. - * Defines interface that can be used to receive that kind of events. - */ -class WXDLLIMPEXP_BASE wxFileSystemWatcherBase: public wxEvtHandler -{ -public: - wxFileSystemWatcherBase(); - - virtual ~wxFileSystemWatcherBase(); - - /** - * Adds path to currently watched files. Any events concerning this - * particular path will be sent to handler. Optionally a filter can be - * specified to receive only events of particular type. - * - * Please note that when adding a dir, immediate children will be watched - * as well. - */ - virtual bool Add(const wxFileName& path, int events = wxFSW_EVENT_ALL); - - /** - * Like above, but recursively adds every file/dir in the tree rooted in - * path. Additionally a file mask can be specified to include only files - * of particular type. - */ - virtual bool AddTree(const wxFileName& path, int events = wxFSW_EVENT_ALL, - const wxString& filespec = wxEmptyString); - - /** - * Removes path from the list of watched paths. - */ - virtual bool Remove(const wxFileName& path); - - /** - * Same as above, but also removes every file belonging to the tree rooted - * at path. - */ - virtual bool RemoveTree(const wxFileName& path); - - /** - * Clears the list of currently watched paths. - */ - virtual bool RemoveAll(); - - /** - * Returns the number of watched paths - */ - int GetWatchedPathsCount() const; - - /** - * Retrevies all watched paths and places them in wxArrayString. Returns - * the number of paths. - * - * TODO think about API here: we need to return more information (like is - * the path watched recursively) - */ - int GetWatchedPaths(wxArrayString* paths) const; - - wxEvtHandler* GetOwner() const - { - return m_owner; - } - - void SetOwner(wxEvtHandler* handler) - { - if (!handler) - m_owner = this; - else - m_owner = handler; - } - - - // This is a semi-private function used by wxWidgets itself only. - // - // Delegates the real work of adding the path to wxFSWatcherImpl::Add() and - // updates m_watches if the new path was successfully added. - bool AddAny(const wxFileName& path, int events, wxFSWPathType type, - const wxString& filespec = wxString()); - -protected: - - static wxString GetCanonicalPath(const wxFileName& path) - { - wxFileName path_copy = wxFileName(path); - if ( !path_copy.Normalize() ) - { - wxFAIL_MSG(wxString::Format("Unable to normalize path '%s'", - path.GetFullPath())); - return wxEmptyString; - } - - return path_copy.GetFullPath(); - } - - - wxFSWatchInfoMap m_watches; // path=>wxFSWatchInfo map - wxFSWatcherImpl* m_service; // file system events service - wxEvtHandler* m_owner; // handler for file system events - - friend class wxFSWatcherImpl; -}; - -// include the platform specific file defining wxFileSystemWatcher -// inheriting from wxFileSystemWatcherBase - -#ifdef wxHAS_INOTIFY - #include "wx/unix/fswatcher_inotify.h" - #define wxFileSystemWatcher wxInotifyFileSystemWatcher -#elif defined(wxHAS_KQUEUE) && defined(wxHAVE_FSEVENTS_FILE_NOTIFICATIONS) - #include "wx/unix/fswatcher_kqueue.h" - #include "wx/osx/fswatcher_fsevents.h" - #define wxFileSystemWatcher wxFsEventsFileSystemWatcher -#elif defined(wxHAS_KQUEUE) - #include "wx/unix/fswatcher_kqueue.h" - #define wxFileSystemWatcher wxKqueueFileSystemWatcher -#elif defined(__WINDOWS__) - #include "wx/msw/fswatcher.h" - #define wxFileSystemWatcher wxMSWFileSystemWatcher -#else - #include "wx/generic/fswatcher.h" - #define wxFileSystemWatcher wxPollingFileSystemWatcher -#endif - -#endif // wxUSE_FSWATCHER - -#endif /* _WX_FSWATCHER_BASE_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gauge.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gauge.h deleted file mode 100644 index d89f0891..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gauge.h +++ /dev/null @@ -1,143 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/gauge.h -// Purpose: wxGauge interface -// Author: Vadim Zeitlin -// Modified by: -// Created: 20.02.01 -// Copyright: (c) 1996-2001 wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GAUGE_H_BASE_ -#define _WX_GAUGE_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_GAUGE - -#include "wx/control.h" - -// ---------------------------------------------------------------------------- -// wxGauge style flags -// ---------------------------------------------------------------------------- - -#define wxGA_HORIZONTAL wxHORIZONTAL -#define wxGA_VERTICAL wxVERTICAL - -// Available since Windows 7 only. With this style, the value of guage will -// reflect on the taskbar button. -#define wxGA_PROGRESS 0x0010 -// Win32 only, is default (and only) on some other platforms -#define wxGA_SMOOTH 0x0020 -// QT only, display current completed percentage (text default format "%p%") -#define wxGA_TEXT 0x0040 - -// GTK and Mac always have native implementation of the indeterminate mode -// wxMSW has native implementation only if comctl32.dll >= 6.00 -#if !defined(__WXGTK20__) && !defined(__WXMAC__) - #define wxGAUGE_EMULATE_INDETERMINATE_MODE 1 -#else - #define wxGAUGE_EMULATE_INDETERMINATE_MODE 0 -#endif - -extern WXDLLIMPEXP_DATA_CORE(const char) wxGaugeNameStr[]; - -class WXDLLIMPEXP_FWD_CORE wxAppProgressIndicator; - -// ---------------------------------------------------------------------------- -// wxGauge: a progress bar -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGaugeBase : public wxControl -{ -public: - wxGaugeBase() : m_rangeMax(0), m_gaugePos(0), - m_appProgressIndicator(NULL) { } - - virtual ~wxGaugeBase(); - - bool Create(wxWindow *parent, - wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr); - - // determinate mode API - - // set/get the control range - virtual void SetRange(int range); - virtual int GetRange() const; - - virtual void SetValue(int pos); - virtual int GetValue() const; - - // indeterminate mode API - virtual void Pulse(); - - // simple accessors - bool IsVertical() const { return HasFlag(wxGA_VERTICAL); } - - // overridden base class virtuals - virtual bool AcceptsFocus() const wxOVERRIDE { return false; } - - // Deprecated methods not doing anything since a long time. - wxDEPRECATED_MSG("Remove calls to this method, it doesn't do anything") - void SetShadowWidth(int WXUNUSED(w)) { } - - wxDEPRECATED_MSG("Remove calls to this method, it always returns 0") - int GetShadowWidth() const { return 0; } - - wxDEPRECATED_MSG("Remove calls to this method, it doesn't do anything") - void SetBezelFace(int WXUNUSED(w)) { } - - wxDEPRECATED_MSG("Remove calls to this method, it always returns 0") - int GetBezelFace() const { return 0; } - -protected: - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - // Initialize m_appProgressIndicator if necessary, i.e. if this object has - // wxGA_PROGRESS style. This method is supposed to be called from the - // derived class Create() if it doesn't call the base class Create(), which - // already does it, after initializing the window style and range. - void InitProgressIndicatorIfNeeded(); - - - // the max position - int m_rangeMax; - - // the current position - int m_gaugePos; - -#if wxGAUGE_EMULATE_INDETERMINATE_MODE - int m_nDirection; // can be wxRIGHT or wxLEFT -#endif - - wxAppProgressIndicator *m_appProgressIndicator; - - wxDECLARE_NO_COPY_CLASS(wxGaugeBase); -}; - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/gauge.h" -#elif defined(__WXMSW__) - #include "wx/msw/gauge.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/gauge.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/gauge.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/gauge.h" -#elif defined(__WXMAC__) - #include "wx/osx/gauge.h" -#elif defined(__WXQT__) - #include "wx/qt/gauge.h" -#endif - -#endif // wxUSE_GAUGE - -#endif - // _WX_GAUGE_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gbsizer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gbsizer.h deleted file mode 100644 index 501b5d81..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gbsizer.h +++ /dev/null @@ -1,341 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/gbsizer.h -// Purpose: wxGridBagSizer: A sizer that can lay out items in a grid, -// with items at specified cells, and with the option of row -// and/or column spanning -// -// Author: Robin Dunn -// Created: 03-Nov-2003 -// Copyright: (c) Robin Dunn -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __WXGBSIZER_H__ -#define __WXGBSIZER_H__ - -#include "wx/sizer.h" - - -//--------------------------------------------------------------------------- -// Classes to represent a position in the grid and a size of an item in the -// grid, IOW, the number of rows and columns it occupies. I chose to use these -// instead of wxPoint and wxSize because they are (x,y) and usually pixel -// oriented while grids and tables are usually thought of as (row,col) so some -// confusion would definitely result in using wxPoint... -// -// NOTE: This should probably be refactored to a common RowCol data type which -// is used for this and also for wxGridCellCoords. -//--------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGBPosition -{ -public: - wxGBPosition() : m_row(0), m_col(0) {} - wxGBPosition(int row, int col) : m_row(row), m_col(col) {} - - // default copy ctor and assignment operator are okay. - - int GetRow() const { return m_row; } - int GetCol() const { return m_col; } - void SetRow(int row) { m_row = row; } - void SetCol(int col) { m_col = col; } - - bool operator==(const wxGBPosition& p) const { return m_row == p.m_row && m_col == p.m_col; } - bool operator!=(const wxGBPosition& p) const { return !(*this == p); } - -private: - int m_row; - int m_col; -}; - - -class WXDLLIMPEXP_CORE wxGBSpan -{ -public: - wxGBSpan() { Init(); } - wxGBSpan(int rowspan, int colspan) - { - // Initialize the members to valid values as not doing it may result in - // infinite loop in wxGBSizer code if the user passed 0 for any of - // them, see #12934. - Init(); - - SetRowspan(rowspan); - SetColspan(colspan); - } - - // default copy ctor and assignment operator are okay. - - // Factor constructor creating an invalid wxGBSpan: this is mostly supposed - // to be used as return value for functions returning wxGBSpan in case of - // errors. - static wxGBSpan Invalid() - { - return wxGBSpan(NULL); - } - - int GetRowspan() const { return m_rowspan; } - int GetColspan() const { return m_colspan; } - void SetRowspan(int rowspan) - { - wxCHECK_RET( rowspan > 0, "Row span should be strictly positive" ); - - m_rowspan = rowspan; - } - - void SetColspan(int colspan) - { - wxCHECK_RET( colspan > 0, "Column span should be strictly positive" ); - - m_colspan = colspan; - } - - bool operator==(const wxGBSpan& o) const { return m_rowspan == o.m_rowspan && m_colspan == o.m_colspan; } - bool operator!=(const wxGBSpan& o) const { return !(*this == o); } - -private: - // This private ctor is used by Invalid() only. - wxGBSpan(struct InvalidCtorTag*) - { - m_rowspan = - m_colspan = -1; - } - - void Init() - { - m_rowspan = - m_colspan = 1; - } - - int m_rowspan; - int m_colspan; -}; - - -extern WXDLLIMPEXP_DATA_CORE(const wxGBSpan) wxDefaultSpan; - - -//--------------------------------------------------------------------------- -// wxGBSizerItem -//--------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxGridBagSizer; - - -class WXDLLIMPEXP_CORE wxGBSizerItem : public wxSizerItem -{ -public: - // spacer - wxGBSizerItem( int width, - int height, - const wxGBPosition& pos, - const wxGBSpan& span=wxDefaultSpan, - int flag=0, - int border=0, - wxObject* userData=NULL); - - // window - wxGBSizerItem( wxWindow *window, - const wxGBPosition& pos, - const wxGBSpan& span=wxDefaultSpan, - int flag=0, - int border=0, - wxObject* userData=NULL ); - - // subsizer - wxGBSizerItem( wxSizer *sizer, - const wxGBPosition& pos, - const wxGBSpan& span=wxDefaultSpan, - int flag=0, - int border=0, - wxObject* userData=NULL ); - - // default ctor - wxGBSizerItem(); - - - // Get the grid position of the item - wxGBPosition GetPos() const { return m_pos; } - void GetPos(int& row, int& col) const; - - // Get the row and column spanning of the item - wxGBSpan GetSpan() const { return m_span; } - void GetSpan(int& rowspan, int& colspan) const; - - // If the item is already a member of a sizer then first ensure that there - // is no other item that would intersect with this one at the new - // position, then set the new position. Returns true if the change is - // successful and after the next Layout the item will be moved. - bool SetPos( const wxGBPosition& pos ); - - // If the item is already a member of a sizer then first ensure that there - // is no other item that would intersect with this one with its new - // spanning size, then set the new spanning. Returns true if the change - // is successful and after the next Layout the item will be resized. - bool SetSpan( const wxGBSpan& span ); - - // Returns true if this item and the other item intersect - bool Intersects(const wxGBSizerItem& other); - - // Returns true if the given pos/span would intersect with this item. - bool Intersects(const wxGBPosition& pos, const wxGBSpan& span); - - // Get the row and column of the endpoint of this item - void GetEndPos(int& row, int& col); - - - wxGridBagSizer* GetGBSizer() const { return m_gbsizer; } - void SetGBSizer(wxGridBagSizer* sizer) { m_gbsizer = sizer; } - - -protected: - wxGBPosition m_pos; - wxGBSpan m_span; - wxGridBagSizer* m_gbsizer; // so SetPos/SetSpan can check for intersects - - -private: - wxDECLARE_DYNAMIC_CLASS(wxGBSizerItem); - wxDECLARE_NO_COPY_CLASS(wxGBSizerItem); -}; - - -//--------------------------------------------------------------------------- -// wxGridBagSizer -//--------------------------------------------------------------------------- - - -class WXDLLIMPEXP_CORE wxGridBagSizer : public wxFlexGridSizer -{ -public: - wxGridBagSizer(int vgap = 0, int hgap = 0 ); - - // The Add methods return true if the item was successfully placed at the - // given position, false if something was already there. - wxSizerItem* Add( wxWindow *window, - const wxGBPosition& pos, - const wxGBSpan& span = wxDefaultSpan, - int flag = 0, - int border = 0, - wxObject* userData = NULL ); - wxSizerItem* Add( wxSizer *sizer, - const wxGBPosition& pos, - const wxGBSpan& span = wxDefaultSpan, - int flag = 0, - int border = 0, - wxObject* userData = NULL ); - wxSizerItem* Add( int width, - int height, - const wxGBPosition& pos, - const wxGBSpan& span = wxDefaultSpan, - int flag = 0, - int border = 0, - wxObject* userData = NULL ); - wxSizerItem* Add( wxGBSizerItem *item ); - - - // Get/Set the size used for cells in the grid with no item. - wxSize GetEmptyCellSize() const { return m_emptyCellSize; } - void SetEmptyCellSize(const wxSize& sz) { m_emptyCellSize = sz; } - - // Get the size of the specified cell, including hgap and vgap. Only - // valid after a Layout. - wxSize GetCellSize(int row, int col) const; - - // Get the grid position of the specified item (non-recursive) - wxGBPosition GetItemPosition(wxWindow *window); - wxGBPosition GetItemPosition(wxSizer *sizer); - wxGBPosition GetItemPosition(size_t index); - - // Set the grid position of the specified item. Returns true on success. - // If the move is not allowed (because an item is already there) then - // false is returned. (non-recursive) - bool SetItemPosition(wxWindow *window, const wxGBPosition& pos); - bool SetItemPosition(wxSizer *sizer, const wxGBPosition& pos); - bool SetItemPosition(size_t index, const wxGBPosition& pos); - - // Get the row/col spanning of the specified item (non-recursive) - wxGBSpan GetItemSpan(wxWindow *window); - wxGBSpan GetItemSpan(wxSizer *sizer); - wxGBSpan GetItemSpan(size_t index); - - // Set the row/col spanning of the specified item. Returns true on - // success. If the move is not allowed (because an item is already there) - // then false is returned. (non-recursive) - bool SetItemSpan(wxWindow *window, const wxGBSpan& span); - bool SetItemSpan(wxSizer *sizer, const wxGBSpan& span); - bool SetItemSpan(size_t index, const wxGBSpan& span); - - - // Find the sizer item for the given window or subsizer, returns NULL if - // not found. (non-recursive) - wxGBSizerItem* FindItem(wxWindow* window); - wxGBSizerItem* FindItem(wxSizer* sizer); - - - // Return the sizer item for the given grid cell, or NULL if there is no - // item at that position. (non-recursive) - wxGBSizerItem* FindItemAtPosition(const wxGBPosition& pos); - - - // Return the sizer item located at the point given in pt, or NULL if - // there is no item at that point. The (x,y) coordinates in pt correspond - // to the client coordinates of the window using the sizer for - // layout. (non-recursive) - wxGBSizerItem* FindItemAtPoint(const wxPoint& pt); - - - // Return the sizer item that has a matching user data (it only compares - // pointer values) or NULL if not found. (non-recursive) - wxGBSizerItem* FindItemWithData(const wxObject* userData); - - - // These are what make the sizer do size calculations and layout - virtual void RecalcSizes() wxOVERRIDE; - virtual wxSize CalcMin() wxOVERRIDE; - - - // Look at all items and see if any intersect (or would overlap) the given - // item. Returns true if so, false if there would be no overlap. If an - // excludeItem is given then it will not be checked for intersection, for - // example it may be the item we are checking the position of. - bool CheckForIntersection(wxGBSizerItem* item, wxGBSizerItem* excludeItem = NULL); - bool CheckForIntersection(const wxGBPosition& pos, const wxGBSpan& span, wxGBSizerItem* excludeItem = NULL); - - - // The Add base class virtuals should not be used with this class, but - // we'll try to make them automatically select a location for the item - // anyway. - virtual wxSizerItem* Add( wxWindow *window, int proportion = 0, int flag = 0, int border = 0, wxObject* userData = NULL ); - virtual wxSizerItem* Add( wxSizer *sizer, int proportion = 0, int flag = 0, int border = 0, wxObject* userData = NULL ); - virtual wxSizerItem* Add( int width, int height, int proportion = 0, int flag = 0, int border = 0, wxObject* userData = NULL ); - - // The Insert and Prepend base class virtuals that are not appropriate for - // this class and should not be used. Their implementation in this class - // simply fails. - virtual wxSizerItem* Add( wxSizerItem *item ); - virtual wxSizerItem* Insert( size_t index, wxWindow *window, int proportion = 0, int flag = 0, int border = 0, wxObject* userData = NULL ); - virtual wxSizerItem* Insert( size_t index, wxSizer *sizer, int proportion = 0, int flag = 0, int border = 0, wxObject* userData = NULL ); - virtual wxSizerItem* Insert( size_t index, int width, int height, int proportion = 0, int flag = 0, int border = 0, wxObject* userData = NULL ); - virtual wxSizerItem* Insert( size_t index, wxSizerItem *item ) wxOVERRIDE; - virtual wxSizerItem* Prepend( wxWindow *window, int proportion = 0, int flag = 0, int border = 0, wxObject* userData = NULL ); - virtual wxSizerItem* Prepend( wxSizer *sizer, int proportion = 0, int flag = 0, int border = 0, wxObject* userData = NULL ); - virtual wxSizerItem* Prepend( int width, int height, int proportion = 0, int flag = 0, int border = 0, wxObject* userData = NULL ); - virtual wxSizerItem* Prepend( wxSizerItem *item ); - - -protected: - wxGBPosition FindEmptyCell(); - void AdjustForOverflow(); - - wxSize m_emptyCellSize; - - -private: - - wxDECLARE_CLASS(wxGridBagSizer); - wxDECLARE_NO_COPY_CLASS(wxGridBagSizer); -}; - -//--------------------------------------------------------------------------- -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gdicmn.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gdicmn.h deleted file mode 100644 index 35f680ad..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gdicmn.h +++ /dev/null @@ -1,1105 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/gdicmn.h -// Purpose: Common GDI classes, types and declarations -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GDICMNH__ -#define _WX_GDICMNH__ - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#include "wx/defs.h" -#include "wx/list.h" -#include "wx/string.h" -#include "wx/fontenc.h" -#include "wx/hashmap.h" -#include "wx/math.h" - -// --------------------------------------------------------------------------- -// forward declarations -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxBitmap; -class WXDLLIMPEXP_FWD_CORE wxBrush; -class WXDLLIMPEXP_FWD_CORE wxColour; -class WXDLLIMPEXP_FWD_CORE wxCursor; -class WXDLLIMPEXP_FWD_CORE wxFont; -class WXDLLIMPEXP_FWD_CORE wxIcon; -class WXDLLIMPEXP_FWD_CORE wxPalette; -class WXDLLIMPEXP_FWD_CORE wxPen; -class WXDLLIMPEXP_FWD_CORE wxRegion; -class WXDLLIMPEXP_FWD_BASE wxString; -class WXDLLIMPEXP_FWD_CORE wxIconBundle; -class WXDLLIMPEXP_FWD_CORE wxPoint; - -// --------------------------------------------------------------------------- -// constants -// --------------------------------------------------------------------------- - -// Bitmap flags -enum wxBitmapType -{ - wxBITMAP_TYPE_INVALID, // should be == 0 for compatibility! - wxBITMAP_TYPE_BMP, - wxBITMAP_TYPE_BMP_RESOURCE, - wxBITMAP_TYPE_RESOURCE = wxBITMAP_TYPE_BMP_RESOURCE, - wxBITMAP_TYPE_ICO, - wxBITMAP_TYPE_ICO_RESOURCE, - wxBITMAP_TYPE_CUR, - wxBITMAP_TYPE_CUR_RESOURCE, - wxBITMAP_TYPE_XBM, - wxBITMAP_TYPE_XBM_DATA, - wxBITMAP_TYPE_XPM, - wxBITMAP_TYPE_XPM_DATA, - wxBITMAP_TYPE_TIFF, - wxBITMAP_TYPE_TIF = wxBITMAP_TYPE_TIFF, - wxBITMAP_TYPE_TIFF_RESOURCE, - wxBITMAP_TYPE_TIF_RESOURCE = wxBITMAP_TYPE_TIFF_RESOURCE, - wxBITMAP_TYPE_GIF, - wxBITMAP_TYPE_GIF_RESOURCE, - wxBITMAP_TYPE_PNG, - wxBITMAP_TYPE_PNG_RESOURCE, - wxBITMAP_TYPE_JPEG, - wxBITMAP_TYPE_JPEG_RESOURCE, - wxBITMAP_TYPE_PNM, - wxBITMAP_TYPE_PNM_RESOURCE, - wxBITMAP_TYPE_PCX, - wxBITMAP_TYPE_PCX_RESOURCE, - wxBITMAP_TYPE_PICT, - wxBITMAP_TYPE_PICT_RESOURCE, - wxBITMAP_TYPE_ICON, - wxBITMAP_TYPE_ICON_RESOURCE, - wxBITMAP_TYPE_ANI, - wxBITMAP_TYPE_IFF, - wxBITMAP_TYPE_TGA, - wxBITMAP_TYPE_MACCURSOR, - wxBITMAP_TYPE_MACCURSOR_RESOURCE, - - wxBITMAP_TYPE_MAX, - wxBITMAP_TYPE_ANY = 50 -}; - -// Polygon filling mode -enum wxPolygonFillMode -{ - wxODDEVEN_RULE = 1, - wxWINDING_RULE -}; - -// Standard cursors -enum wxStockCursor -{ - wxCURSOR_NONE, // should be 0 - wxCURSOR_ARROW, - wxCURSOR_RIGHT_ARROW, - wxCURSOR_BULLSEYE, - wxCURSOR_CHAR, - wxCURSOR_CROSS, - wxCURSOR_HAND, - wxCURSOR_IBEAM, - wxCURSOR_LEFT_BUTTON, - wxCURSOR_MAGNIFIER, - wxCURSOR_MIDDLE_BUTTON, - wxCURSOR_NO_ENTRY, - wxCURSOR_PAINT_BRUSH, - wxCURSOR_PENCIL, - wxCURSOR_POINT_LEFT, - wxCURSOR_POINT_RIGHT, - wxCURSOR_QUESTION_ARROW, - wxCURSOR_RIGHT_BUTTON, - wxCURSOR_SIZENESW, - wxCURSOR_SIZENS, - wxCURSOR_SIZENWSE, - wxCURSOR_SIZEWE, - wxCURSOR_SIZING, - wxCURSOR_SPRAYCAN, - wxCURSOR_WAIT, - wxCURSOR_WATCH, - wxCURSOR_BLANK, -#ifdef __WXGTK__ - wxCURSOR_DEFAULT, // standard X11 cursor -#endif -#ifdef __WXMAC__ - wxCURSOR_COPY_ARROW , // MacOS Theme Plus arrow -#endif -#ifdef __X__ - // Not yet implemented for Windows - wxCURSOR_CROSS_REVERSE, - wxCURSOR_DOUBLE_ARROW, - wxCURSOR_BASED_ARROW_UP, - wxCURSOR_BASED_ARROW_DOWN, -#endif // X11 - wxCURSOR_ARROWWAIT, -#ifdef __WXMAC__ - wxCURSOR_OPEN_HAND, - wxCURSOR_CLOSED_HAND, -#endif - - wxCURSOR_MAX -}; - -#ifndef __WXGTK__ - #define wxCURSOR_DEFAULT wxCURSOR_ARROW -#endif - -#ifndef __WXMAC__ - // TODO CS supply openhand and closedhand cursors - #define wxCURSOR_OPEN_HAND wxCURSOR_HAND - #define wxCURSOR_CLOSED_HAND wxCURSOR_HAND -#endif - -// ---------------------------------------------------------------------------- -// Ellipsize() constants -// ---------------------------------------------------------------------------- - -enum wxEllipsizeFlags -{ - wxELLIPSIZE_FLAGS_NONE = 0, - wxELLIPSIZE_FLAGS_PROCESS_MNEMONICS = 1, - wxELLIPSIZE_FLAGS_EXPAND_TABS = 2, - - wxELLIPSIZE_FLAGS_DEFAULT = wxELLIPSIZE_FLAGS_PROCESS_MNEMONICS | - wxELLIPSIZE_FLAGS_EXPAND_TABS -}; - -// NB: Don't change the order of these values, they're the same as in -// PangoEllipsizeMode enum. -enum wxEllipsizeMode -{ - wxELLIPSIZE_NONE, - wxELLIPSIZE_START, - wxELLIPSIZE_MIDDLE, - wxELLIPSIZE_END -}; - -// --------------------------------------------------------------------------- -// macros -// --------------------------------------------------------------------------- - -#if defined(__WINDOWS__) - #define wxHAS_IMAGES_IN_RESOURCES -#endif - -/* Useful macro for creating icons portably, for example: - - wxIcon *icon = new wxICON(sample); - - expands into: - - wxIcon *icon = new wxIcon("sample"); // On Windows - wxIcon *icon = new wxIcon(sample_xpm); // On wxGTK/Linux - */ - -#ifdef __WINDOWS__ - // Load from a resource - #define wxICON(X) wxIcon(wxT(#X)) -#elif defined(__WXDFB__) - // Initialize from an included XPM - #define wxICON(X) wxIcon( X##_xpm ) -#elif defined(__WXGTK__) - // Initialize from an included XPM - #define wxICON(X) wxIcon( X##_xpm ) -#elif defined(__WXMAC__) - // Initialize from an included XPM - #define wxICON(X) wxIcon( X##_xpm ) -#elif defined(__WXMOTIF__) - // Initialize from an included XPM - #define wxICON(X) wxIcon( X##_xpm ) -#elif defined(__WXX11__) - // Initialize from an included XPM - #define wxICON(X) wxIcon( X##_xpm ) -#elif defined(__WXQT__) - // Initialize from an included XPM - #define wxICON(X) wxIcon( X##_xpm ) -#else - // This will usually mean something on any platform - #define wxICON(X) wxIcon(wxT(#X)) -#endif // platform - -/* Another macro: this one is for portable creation of bitmaps. We assume that - under Unix bitmaps live in XPMs and under Windows they're in ressources. - */ - -#if defined(__WINDOWS__) - #define wxBITMAP(name) wxBitmap(wxT(#name), wxBITMAP_TYPE_BMP_RESOURCE) -#elif defined(__WXGTK__) || \ - defined(__WXMOTIF__) || \ - defined(__WXX11__) || \ - defined(__WXMAC__) || \ - defined(__WXDFB__) - // Initialize from an included XPM - #define wxBITMAP(name) wxBitmap(name##_xpm) -#else // other platforms - #define wxBITMAP(name) wxBitmap(name##_xpm, wxBITMAP_TYPE_XPM) -#endif // platform - -// Macro for creating wxBitmap from in-memory PNG data. -// -// It reads PNG data from name_png static byte arrays that can be created using -// e.g. misc/scripts/png2c.py. -// -// This macro exists mostly as a helper for wxBITMAP_PNG() below but also -// because it's slightly more convenient to use than NewFromPNGData() directly. -#define wxBITMAP_PNG_FROM_DATA(name) \ - wxBitmap::NewFromPNGData(name##_png, WXSIZEOF(name##_png)) - -// Similar to wxBITMAP but used for the bitmaps in PNG format. -// -// Under Windows they should be embedded into the resource file using RT_RCDATA -// resource type and under OS X the PNG file with the specified name must be -// available in the resource subdirectory of the bundle. Elsewhere, this is -// exactly the same thing as wxBITMAP_PNG_FROM_DATA() described above. -#if defined(__WINDOWS__) || defined(__WXOSX__) - #define wxBITMAP_PNG(name) wxBitmap(wxS(#name), wxBITMAP_TYPE_PNG_RESOURCE) -#else - #define wxBITMAP_PNG(name) wxBITMAP_PNG_FROM_DATA(name) -#endif - -// =========================================================================== -// classes -// =========================================================================== - -// --------------------------------------------------------------------------- -// wxSize -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSize -{ -public: - // members are public for compatibility, don't use them directly. - int x, y; - - // constructors - wxSize() : x(0), y(0) { } - wxSize(int xx, int yy) : x(xx), y(yy) { } - - // no copy ctor or assignment operator - the defaults are ok - - wxSize& operator+=(const wxSize& sz) { x += sz.x; y += sz.y; return *this; } - wxSize& operator-=(const wxSize& sz) { x -= sz.x; y -= sz.y; return *this; } - wxSize& operator/=(int i) { x /= i; y /= i; return *this; } - wxSize& operator*=(int i) { x *= i; y *= i; return *this; } - wxSize& operator/=(unsigned int i) { x /= i; y /= i; return *this; } - wxSize& operator*=(unsigned int i) { x *= i; y *= i; return *this; } - wxSize& operator/=(long i) { x /= i; y /= i; return *this; } - wxSize& operator*=(long i) { x *= i; y *= i; return *this; } - wxSize& operator/=(unsigned long i) { x /= i; y /= i; return *this; } - wxSize& operator*=(unsigned long i) { x *= i; y *= i; return *this; } - wxSize& operator/=(double i) { x = int(x/i); y = int(y/i); return *this; } - wxSize& operator*=(double i) { x = int(x*i); y = int(y*i); return *this; } - - void IncTo(const wxSize& sz) - { if ( sz.x > x ) x = sz.x; if ( sz.y > y ) y = sz.y; } - void DecTo(const wxSize& sz) - { if ( sz.x < x ) x = sz.x; if ( sz.y < y ) y = sz.y; } - void DecToIfSpecified(const wxSize& sz) - { - if ( sz.x != wxDefaultCoord && sz.x < x ) - x = sz.x; - if ( sz.y != wxDefaultCoord && sz.y < y ) - y = sz.y; - } - - void IncBy(int dx, int dy) { x += dx; y += dy; } - void IncBy(const wxPoint& pt); - void IncBy(const wxSize& sz) { IncBy(sz.x, sz.y); } - void IncBy(int d) { IncBy(d, d); } - - void DecBy(int dx, int dy) { IncBy(-dx, -dy); } - void DecBy(const wxPoint& pt); - void DecBy(const wxSize& sz) { DecBy(sz.x, sz.y); } - void DecBy(int d) { DecBy(d, d); } - - - wxSize& Scale(float xscale, float yscale) - { x = (int)(x*xscale); y = (int)(y*yscale); return *this; } - - // accessors - void Set(int xx, int yy) { x = xx; y = yy; } - void SetWidth(int w) { x = w; } - void SetHeight(int h) { y = h; } - - int GetWidth() const { return x; } - int GetHeight() const { return y; } - - bool IsFullySpecified() const { return x != wxDefaultCoord && y != wxDefaultCoord; } - - // combine this size with the other one replacing the default (i.e. equal - // to wxDefaultCoord) components of this object with those of the other - void SetDefaults(const wxSize& size) - { - if ( x == wxDefaultCoord ) - x = size.x; - if ( y == wxDefaultCoord ) - y = size.y; - } - - // compatibility - int GetX() const { return x; } - int GetY() const { return y; } -}; - -inline bool operator==(const wxSize& s1, const wxSize& s2) -{ - return s1.x == s2.x && s1.y == s2.y; -} - -inline bool operator!=(const wxSize& s1, const wxSize& s2) -{ - return s1.x != s2.x || s1.y != s2.y; -} - -inline wxSize operator+(const wxSize& s1, const wxSize& s2) -{ - return wxSize(s1.x + s2.x, s1.y + s2.y); -} - -inline wxSize operator-(const wxSize& s1, const wxSize& s2) -{ - return wxSize(s1.x - s2.x, s1.y - s2.y); -} - -inline wxSize operator/(const wxSize& s, int i) -{ - return wxSize(s.x / i, s.y / i); -} - -inline wxSize operator*(const wxSize& s, int i) -{ - return wxSize(s.x * i, s.y * i); -} - -inline wxSize operator*(int i, const wxSize& s) -{ - return wxSize(s.x * i, s.y * i); -} - -inline wxSize operator/(const wxSize& s, unsigned int i) -{ - return wxSize(s.x / i, s.y / i); -} - -inline wxSize operator*(const wxSize& s, unsigned int i) -{ - return wxSize(s.x * i, s.y * i); -} - -inline wxSize operator*(unsigned int i, const wxSize& s) -{ - return wxSize(s.x * i, s.y * i); -} - -inline wxSize operator/(const wxSize& s, long i) -{ - return wxSize(s.x / i, s.y / i); -} - -inline wxSize operator*(const wxSize& s, long i) -{ - return wxSize(int(s.x * i), int(s.y * i)); -} - -inline wxSize operator*(long i, const wxSize& s) -{ - return wxSize(int(s.x * i), int(s.y * i)); -} - -inline wxSize operator/(const wxSize& s, unsigned long i) -{ - return wxSize(int(s.x / i), int(s.y / i)); -} - -inline wxSize operator*(const wxSize& s, unsigned long i) -{ - return wxSize(int(s.x * i), int(s.y * i)); -} - -inline wxSize operator*(unsigned long i, const wxSize& s) -{ - return wxSize(int(s.x * i), int(s.y * i)); -} - -inline wxSize operator*(const wxSize& s, double i) -{ - return wxSize(int(s.x * i), int(s.y * i)); -} - -inline wxSize operator*(double i, const wxSize& s) -{ - return wxSize(int(s.x * i), int(s.y * i)); -} - - - -// --------------------------------------------------------------------------- -// Point classes: with real or integer coordinates -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxRealPoint -{ -public: - double x; - double y; - - wxRealPoint() : x(0.0), y(0.0) { } - wxRealPoint(double xx, double yy) : x(xx), y(yy) { } - wxRealPoint(const wxPoint& pt); - - // no copy ctor or assignment operator - the defaults are ok - - //assignment operators - wxRealPoint& operator+=(const wxRealPoint& p) { x += p.x; y += p.y; return *this; } - wxRealPoint& operator-=(const wxRealPoint& p) { x -= p.x; y -= p.y; return *this; } - - wxRealPoint& operator+=(const wxSize& s) { x += s.GetWidth(); y += s.GetHeight(); return *this; } - wxRealPoint& operator-=(const wxSize& s) { x -= s.GetWidth(); y -= s.GetHeight(); return *this; } -}; - - -inline bool operator==(const wxRealPoint& p1, const wxRealPoint& p2) -{ - return wxIsSameDouble(p1.x, p2.x) && wxIsSameDouble(p1.y, p2.y); -} - -inline bool operator!=(const wxRealPoint& p1, const wxRealPoint& p2) -{ - return !(p1 == p2); -} - -inline wxRealPoint operator+(const wxRealPoint& p1, const wxRealPoint& p2) -{ - return wxRealPoint(p1.x + p2.x, p1.y + p2.y); -} - - -inline wxRealPoint operator-(const wxRealPoint& p1, const wxRealPoint& p2) -{ - return wxRealPoint(p1.x - p2.x, p1.y - p2.y); -} - - -inline wxRealPoint operator/(const wxRealPoint& s, int i) -{ - return wxRealPoint(s.x / i, s.y / i); -} - -inline wxRealPoint operator*(const wxRealPoint& s, int i) -{ - return wxRealPoint(s.x * i, s.y * i); -} - -inline wxRealPoint operator*(int i, const wxRealPoint& s) -{ - return wxRealPoint(s.x * i, s.y * i); -} - -inline wxRealPoint operator/(const wxRealPoint& s, unsigned int i) -{ - return wxRealPoint(s.x / i, s.y / i); -} - -inline wxRealPoint operator*(const wxRealPoint& s, unsigned int i) -{ - return wxRealPoint(s.x * i, s.y * i); -} - -inline wxRealPoint operator*(unsigned int i, const wxRealPoint& s) -{ - return wxRealPoint(s.x * i, s.y * i); -} - -inline wxRealPoint operator/(const wxRealPoint& s, long i) -{ - return wxRealPoint(s.x / i, s.y / i); -} - -inline wxRealPoint operator*(const wxRealPoint& s, long i) -{ - return wxRealPoint(s.x * i, s.y * i); -} - -inline wxRealPoint operator*(long i, const wxRealPoint& s) -{ - return wxRealPoint(s.x * i, s.y * i); -} - -inline wxRealPoint operator/(const wxRealPoint& s, unsigned long i) -{ - return wxRealPoint(s.x / i, s.y / i); -} - -inline wxRealPoint operator*(const wxRealPoint& s, unsigned long i) -{ - return wxRealPoint(s.x * i, s.y * i); -} - -inline wxRealPoint operator*(unsigned long i, const wxRealPoint& s) -{ - return wxRealPoint(s.x * i, s.y * i); -} - -inline wxRealPoint operator*(const wxRealPoint& s, double i) -{ - return wxRealPoint(int(s.x * i), int(s.y * i)); -} - -inline wxRealPoint operator*(double i, const wxRealPoint& s) -{ - return wxRealPoint(int(s.x * i), int(s.y * i)); -} - - -// ---------------------------------------------------------------------------- -// wxPoint: 2D point with integer coordinates -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPoint -{ -public: - int x, y; - - wxPoint() : x(0), y(0) { } - wxPoint(int xx, int yy) : x(xx), y(yy) { } - wxPoint(const wxRealPoint& pt) : x(int(pt.x)), y(int(pt.y)) { } - - // no copy ctor or assignment operator - the defaults are ok - - //assignment operators - wxPoint& operator+=(const wxPoint& p) { x += p.x; y += p.y; return *this; } - wxPoint& operator-=(const wxPoint& p) { x -= p.x; y -= p.y; return *this; } - - wxPoint& operator+=(const wxSize& s) { x += s.GetWidth(); y += s.GetHeight(); return *this; } - wxPoint& operator-=(const wxSize& s) { x -= s.GetWidth(); y -= s.GetHeight(); return *this; } - - // check if both components are set/initialized - bool IsFullySpecified() const { return x != wxDefaultCoord && y != wxDefaultCoord; } - - // fill in the unset components with the values from the other point - void SetDefaults(const wxPoint& pt) - { - if ( x == wxDefaultCoord ) - x = pt.x; - if ( y == wxDefaultCoord ) - y = pt.y; - } -}; - - -// comparison -inline bool operator==(const wxPoint& p1, const wxPoint& p2) -{ - return p1.x == p2.x && p1.y == p2.y; -} - -inline bool operator!=(const wxPoint& p1, const wxPoint& p2) -{ - return !(p1 == p2); -} - - -// arithmetic operations (component wise) -inline wxPoint operator+(const wxPoint& p1, const wxPoint& p2) -{ - return wxPoint(p1.x + p2.x, p1.y + p2.y); -} - -inline wxPoint operator-(const wxPoint& p1, const wxPoint& p2) -{ - return wxPoint(p1.x - p2.x, p1.y - p2.y); -} - -inline wxPoint operator+(const wxPoint& p, const wxSize& s) -{ - return wxPoint(p.x + s.x, p.y + s.y); -} - -inline wxPoint operator-(const wxPoint& p, const wxSize& s) -{ - return wxPoint(p.x - s.x, p.y - s.y); -} - -inline wxPoint operator+(const wxSize& s, const wxPoint& p) -{ - return wxPoint(p.x + s.x, p.y + s.y); -} - -inline wxPoint operator-(const wxSize& s, const wxPoint& p) -{ - return wxPoint(s.x - p.x, s.y - p.y); -} - -inline wxPoint operator-(const wxPoint& p) -{ - return wxPoint(-p.x, -p.y); -} - -inline wxPoint operator/(const wxPoint& s, int i) -{ - return wxPoint(s.x / i, s.y / i); -} - -inline wxPoint operator*(const wxPoint& s, int i) -{ - return wxPoint(s.x * i, s.y * i); -} - -inline wxPoint operator*(int i, const wxPoint& s) -{ - return wxPoint(s.x * i, s.y * i); -} - -inline wxPoint operator/(const wxPoint& s, unsigned int i) -{ - return wxPoint(s.x / i, s.y / i); -} - -inline wxPoint operator*(const wxPoint& s, unsigned int i) -{ - return wxPoint(s.x * i, s.y * i); -} - -inline wxPoint operator*(unsigned int i, const wxPoint& s) -{ - return wxPoint(s.x * i, s.y * i); -} - -inline wxPoint operator/(const wxPoint& s, long i) -{ - return wxPoint(s.x / i, s.y / i); -} - -inline wxPoint operator*(const wxPoint& s, long i) -{ - return wxPoint(int(s.x * i), int(s.y * i)); -} - -inline wxPoint operator*(long i, const wxPoint& s) -{ - return wxPoint(int(s.x * i), int(s.y * i)); -} - -inline wxPoint operator/(const wxPoint& s, unsigned long i) -{ - return wxPoint(s.x / i, s.y / i); -} - -inline wxPoint operator*(const wxPoint& s, unsigned long i) -{ - return wxPoint(int(s.x * i), int(s.y * i)); -} - -inline wxPoint operator*(unsigned long i, const wxPoint& s) -{ - return wxPoint(int(s.x * i), int(s.y * i)); -} - -inline wxPoint operator*(const wxPoint& s, double i) -{ - return wxPoint(int(s.x * i), int(s.y * i)); -} - -inline wxPoint operator*(double i, const wxPoint& s) -{ - return wxPoint(int(s.x * i), int(s.y * i)); -} - -WX_DECLARE_LIST_WITH_DECL(wxPoint, wxPointList, class WXDLLIMPEXP_CORE); - -// --------------------------------------------------------------------------- -// wxRect -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxRect -{ -public: - wxRect() - : x(0), y(0), width(0), height(0) - { } - wxRect(int xx, int yy, int ww, int hh) - : x(xx), y(yy), width(ww), height(hh) - { } - wxRect(const wxPoint& topLeft, const wxPoint& bottomRight); - wxRect(const wxPoint& pt, const wxSize& size) - : x(pt.x), y(pt.y), width(size.x), height(size.y) - { } - wxRect(const wxSize& size) - : x(0), y(0), width(size.x), height(size.y) - { } - - // default copy ctor and assignment operators ok - - int GetX() const { return x; } - void SetX(int xx) { x = xx; } - - int GetY() const { return y; } - void SetY(int yy) { y = yy; } - - int GetWidth() const { return width; } - void SetWidth(int w) { width = w; } - - int GetHeight() const { return height; } - void SetHeight(int h) { height = h; } - - wxPoint GetPosition() const { return wxPoint(x, y); } - void SetPosition( const wxPoint &p ) { x = p.x; y = p.y; } - - wxSize GetSize() const { return wxSize(width, height); } - void SetSize( const wxSize &s ) { width = s.GetWidth(); height = s.GetHeight(); } - - bool IsEmpty() const { return (width <= 0) || (height <= 0); } - - int GetLeft() const { return x; } - int GetTop() const { return y; } - int GetBottom() const { return y + height - 1; } - int GetRight() const { return x + width - 1; } - - void SetLeft(int left) { x = left; } - void SetRight(int right) { width = right - x + 1; } - void SetTop(int top) { y = top; } - void SetBottom(int bottom) { height = bottom - y + 1; } - - wxPoint GetTopLeft() const { return GetPosition(); } - wxPoint GetLeftTop() const { return GetTopLeft(); } - void SetTopLeft(const wxPoint &p) { SetPosition(p); } - void SetLeftTop(const wxPoint &p) { SetTopLeft(p); } - - wxPoint GetBottomRight() const { return wxPoint(GetRight(), GetBottom()); } - wxPoint GetRightBottom() const { return GetBottomRight(); } - void SetBottomRight(const wxPoint &p) { SetRight(p.x); SetBottom(p.y); } - void SetRightBottom(const wxPoint &p) { SetBottomRight(p); } - - wxPoint GetTopRight() const { return wxPoint(GetRight(), GetTop()); } - wxPoint GetRightTop() const { return GetTopRight(); } - void SetTopRight(const wxPoint &p) { SetRight(p.x); SetTop(p.y); } - void SetRightTop(const wxPoint &p) { SetTopRight(p); } - - wxPoint GetBottomLeft() const { return wxPoint(GetLeft(), GetBottom()); } - wxPoint GetLeftBottom() const { return GetBottomLeft(); } - void SetBottomLeft(const wxPoint &p) { SetLeft(p.x); SetBottom(p.y); } - void SetLeftBottom(const wxPoint &p) { SetBottomLeft(p); } - - // operations with rect - wxRect& Inflate(wxCoord dx, wxCoord dy); - wxRect& Inflate(const wxSize& d) { return Inflate(d.x, d.y); } - wxRect& Inflate(wxCoord d) { return Inflate(d, d); } - wxRect Inflate(wxCoord dx, wxCoord dy) const - { - wxRect r = *this; - r.Inflate(dx, dy); - return r; - } - - wxRect& Deflate(wxCoord dx, wxCoord dy) { return Inflate(-dx, -dy); } - wxRect& Deflate(const wxSize& d) { return Inflate(-d.x, -d.y); } - wxRect& Deflate(wxCoord d) { return Inflate(-d); } - wxRect Deflate(wxCoord dx, wxCoord dy) const - { - wxRect r = *this; - r.Deflate(dx, dy); - return r; - } - - void Offset(wxCoord dx, wxCoord dy) { x += dx; y += dy; } - void Offset(const wxPoint& pt) { Offset(pt.x, pt.y); } - - wxRect& Intersect(const wxRect& rect); - wxRect Intersect(const wxRect& rect) const - { - wxRect r = *this; - r.Intersect(rect); - return r; - } - - wxRect& Union(const wxRect& rect); - wxRect Union(const wxRect& rect) const - { - wxRect r = *this; - r.Union(rect); - return r; - } - - // return true if the point is (not strcitly) inside the rect - bool Contains(int x, int y) const; - bool Contains(const wxPoint& pt) const { return Contains(pt.x, pt.y); } - // return true if the rectangle 'rect' is (not strictly) inside this rect - bool Contains(const wxRect& rect) const; - - // return true if the rectangles have a non empty intersection - bool Intersects(const wxRect& rect) const; - - // like Union() but don't ignore empty rectangles - wxRect& operator+=(const wxRect& rect); - - // intersections of two rectrangles not testing for empty rectangles - wxRect& operator*=(const wxRect& rect); - - // centre this rectangle in the given (usually, but not necessarily, - // larger) one - wxRect CentreIn(const wxRect& r, int dir = wxBOTH) const - { - return wxRect(dir & wxHORIZONTAL ? r.x + (r.width - width)/2 : x, - dir & wxVERTICAL ? r.y + (r.height - height)/2 : y, - width, height); - } - - wxRect CenterIn(const wxRect& r, int dir = wxBOTH) const - { - return CentreIn(r, dir); - } - -public: - int x, y, width, height; -}; - - -// compare rectangles -inline bool operator==(const wxRect& r1, const wxRect& r2) -{ - return (r1.x == r2.x) && (r1.y == r2.y) && - (r1.width == r2.width) && (r1.height == r2.height); -} - -inline bool operator!=(const wxRect& r1, const wxRect& r2) -{ - return !(r1 == r2); -} - -// like Union() but don't treat empty rectangles specially -WXDLLIMPEXP_CORE wxRect operator+(const wxRect& r1, const wxRect& r2); - -// intersections of two rectangles -WXDLLIMPEXP_CORE wxRect operator*(const wxRect& r1, const wxRect& r2); - -// define functions which couldn't be defined above because of declarations -// order -inline void wxSize::IncBy(const wxPoint& pt) { IncBy(pt.x, pt.y); } -inline void wxSize::DecBy(const wxPoint& pt) { DecBy(pt.x, pt.y); } - -// --------------------------------------------------------------------------- -// Management of pens, brushes and fonts -// --------------------------------------------------------------------------- - -typedef wxInt8 wxDash; - -class WXDLLIMPEXP_CORE wxGDIObjListBase { -public: - wxGDIObjListBase(); - ~wxGDIObjListBase(); - -protected: - wxList list; -}; - -WX_DECLARE_STRING_HASH_MAP(wxColour*, wxStringToColourHashMap); - -class WXDLLIMPEXP_CORE wxColourDatabase -{ -public: - wxColourDatabase(); - ~wxColourDatabase(); - - // find colour by name or name for the given colour - wxColour Find(const wxString& name) const; - wxString FindName(const wxColour& colour) const; - - // add a new colour to the database - void AddColour(const wxString& name, const wxColour& colour); - -private: - // load the database with the built in colour values when called for the - // first time, do nothing after this - void Initialize(); - - wxStringToColourHashMap *m_map; -}; - -class WXDLLIMPEXP_CORE wxResourceCache: public wxList -{ -public: - wxResourceCache() { } -#if !wxUSE_STD_CONTAINERS - wxResourceCache(unsigned int keyType) : wxList(keyType) { } -#endif - virtual ~wxResourceCache(); -}; - -// --------------------------------------------------------------------------- -// global variables -// --------------------------------------------------------------------------- - - -/* Stock objects - - wxStockGDI creates the stock GDI objects on demand. Pointers to the - created objects are stored in the ms_stockObject array, which is indexed - by the Item enum values. Platorm-specific fonts can be created by - implementing a derived class with an override for the GetFont function. - wxStockGDI operates as a singleton, accessed through the ms_instance - pointer. By default this pointer is set to an instance of wxStockGDI. - A derived class must arrange to set this pointer to an instance of itself. -*/ -class WXDLLIMPEXP_CORE wxStockGDI -{ -public: - enum Item { - BRUSH_BLACK, - BRUSH_BLUE, - BRUSH_CYAN, - BRUSH_GREEN, - BRUSH_YELLOW, - BRUSH_GREY, - BRUSH_LIGHTGREY, - BRUSH_MEDIUMGREY, - BRUSH_RED, - BRUSH_TRANSPARENT, - BRUSH_WHITE, - COLOUR_BLACK, - COLOUR_BLUE, - COLOUR_CYAN, - COLOUR_GREEN, - COLOUR_YELLOW, - COLOUR_LIGHTGREY, - COLOUR_RED, - COLOUR_WHITE, - CURSOR_CROSS, - CURSOR_HOURGLASS, - CURSOR_STANDARD, - FONT_ITALIC, - FONT_NORMAL, - FONT_SMALL, - FONT_SWISS, - PEN_BLACK, - PEN_BLACKDASHED, - PEN_BLUE, - PEN_CYAN, - PEN_GREEN, - PEN_YELLOW, - PEN_GREY, - PEN_LIGHTGREY, - PEN_MEDIUMGREY, - PEN_RED, - PEN_TRANSPARENT, - PEN_WHITE, - ITEMCOUNT - }; - - wxStockGDI(); - virtual ~wxStockGDI(); - static void DeleteAll(); - - static wxStockGDI& instance() { return *ms_instance; } - - static const wxBrush* GetBrush(Item item); - static const wxColour* GetColour(Item item); - static const wxCursor* GetCursor(Item item); - // Can be overridden by platform-specific derived classes - virtual const wxFont* GetFont(Item item); - static const wxPen* GetPen(Item item); - -protected: - static wxStockGDI* ms_instance; - - static wxObject* ms_stockObject[ITEMCOUNT]; - - wxDECLARE_NO_COPY_CLASS(wxStockGDI); -}; - -#define wxITALIC_FONT wxStockGDI::instance().GetFont(wxStockGDI::FONT_ITALIC) -#define wxNORMAL_FONT wxStockGDI::instance().GetFont(wxStockGDI::FONT_NORMAL) -#define wxSMALL_FONT wxStockGDI::instance().GetFont(wxStockGDI::FONT_SMALL) -#define wxSWISS_FONT wxStockGDI::instance().GetFont(wxStockGDI::FONT_SWISS) - -#define wxBLACK_DASHED_PEN wxStockGDI::GetPen(wxStockGDI::PEN_BLACKDASHED) -#define wxBLACK_PEN wxStockGDI::GetPen(wxStockGDI::PEN_BLACK) -#define wxBLUE_PEN wxStockGDI::GetPen(wxStockGDI::PEN_BLUE) -#define wxCYAN_PEN wxStockGDI::GetPen(wxStockGDI::PEN_CYAN) -#define wxGREEN_PEN wxStockGDI::GetPen(wxStockGDI::PEN_GREEN) -#define wxYELLOW_PEN wxStockGDI::GetPen(wxStockGDI::PEN_YELLOW) -#define wxGREY_PEN wxStockGDI::GetPen(wxStockGDI::PEN_GREY) -#define wxLIGHT_GREY_PEN wxStockGDI::GetPen(wxStockGDI::PEN_LIGHTGREY) -#define wxMEDIUM_GREY_PEN wxStockGDI::GetPen(wxStockGDI::PEN_MEDIUMGREY) -#define wxRED_PEN wxStockGDI::GetPen(wxStockGDI::PEN_RED) -#define wxTRANSPARENT_PEN wxStockGDI::GetPen(wxStockGDI::PEN_TRANSPARENT) -#define wxWHITE_PEN wxStockGDI::GetPen(wxStockGDI::PEN_WHITE) - -#define wxBLACK_BRUSH wxStockGDI::GetBrush(wxStockGDI::BRUSH_BLACK) -#define wxBLUE_BRUSH wxStockGDI::GetBrush(wxStockGDI::BRUSH_BLUE) -#define wxCYAN_BRUSH wxStockGDI::GetBrush(wxStockGDI::BRUSH_CYAN) -#define wxGREEN_BRUSH wxStockGDI::GetBrush(wxStockGDI::BRUSH_GREEN) -#define wxYELLOW_BRUSH wxStockGDI::GetBrush(wxStockGDI::BRUSH_YELLOW) -#define wxGREY_BRUSH wxStockGDI::GetBrush(wxStockGDI::BRUSH_GREY) -#define wxLIGHT_GREY_BRUSH wxStockGDI::GetBrush(wxStockGDI::BRUSH_LIGHTGREY) -#define wxMEDIUM_GREY_BRUSH wxStockGDI::GetBrush(wxStockGDI::BRUSH_MEDIUMGREY) -#define wxRED_BRUSH wxStockGDI::GetBrush(wxStockGDI::BRUSH_RED) -#define wxTRANSPARENT_BRUSH wxStockGDI::GetBrush(wxStockGDI::BRUSH_TRANSPARENT) -#define wxWHITE_BRUSH wxStockGDI::GetBrush(wxStockGDI::BRUSH_WHITE) - -#define wxBLACK wxStockGDI::GetColour(wxStockGDI::COLOUR_BLACK) -#define wxBLUE wxStockGDI::GetColour(wxStockGDI::COLOUR_BLUE) -#define wxCYAN wxStockGDI::GetColour(wxStockGDI::COLOUR_CYAN) -#define wxGREEN wxStockGDI::GetColour(wxStockGDI::COLOUR_GREEN) -#define wxYELLOW wxStockGDI::GetColour(wxStockGDI::COLOUR_YELLOW) -#define wxLIGHT_GREY wxStockGDI::GetColour(wxStockGDI::COLOUR_LIGHTGREY) -#define wxRED wxStockGDI::GetColour(wxStockGDI::COLOUR_RED) -#define wxWHITE wxStockGDI::GetColour(wxStockGDI::COLOUR_WHITE) - -#define wxCROSS_CURSOR wxStockGDI::GetCursor(wxStockGDI::CURSOR_CROSS) -#define wxHOURGLASS_CURSOR wxStockGDI::GetCursor(wxStockGDI::CURSOR_HOURGLASS) -#define wxSTANDARD_CURSOR wxStockGDI::GetCursor(wxStockGDI::CURSOR_STANDARD) - -// 'Null' objects -extern WXDLLIMPEXP_DATA_CORE(wxBitmap) wxNullBitmap; -extern WXDLLIMPEXP_DATA_CORE(wxIcon) wxNullIcon; -extern WXDLLIMPEXP_DATA_CORE(wxCursor) wxNullCursor; -extern WXDLLIMPEXP_DATA_CORE(wxPen) wxNullPen; -extern WXDLLIMPEXP_DATA_CORE(wxBrush) wxNullBrush; -extern WXDLLIMPEXP_DATA_CORE(wxPalette) wxNullPalette; -extern WXDLLIMPEXP_DATA_CORE(wxFont) wxNullFont; -extern WXDLLIMPEXP_DATA_CORE(wxColour) wxNullColour; -extern WXDLLIMPEXP_DATA_CORE(wxIconBundle) wxNullIconBundle; - -extern WXDLLIMPEXP_DATA_CORE(wxColourDatabase*) wxTheColourDatabase; - -extern WXDLLIMPEXP_DATA_CORE(const char) wxPanelNameStr[]; - -extern WXDLLIMPEXP_DATA_CORE(const wxSize) wxDefaultSize; -extern WXDLLIMPEXP_DATA_CORE(const wxPoint) wxDefaultPosition; - -// --------------------------------------------------------------------------- -// global functions -// --------------------------------------------------------------------------- - -// resource management -extern void WXDLLIMPEXP_CORE wxInitializeStockLists(); -extern void WXDLLIMPEXP_CORE wxDeleteStockLists(); - -// is the display colour (or monochrome)? -extern bool WXDLLIMPEXP_CORE wxColourDisplay(); - -// Returns depth of screen -extern int WXDLLIMPEXP_CORE wxDisplayDepth(); -#define wxGetDisplayDepth wxDisplayDepth - -// get the display size -extern void WXDLLIMPEXP_CORE wxDisplaySize(int *width, int *height); -extern wxSize WXDLLIMPEXP_CORE wxGetDisplaySize(); -extern void WXDLLIMPEXP_CORE wxDisplaySizeMM(int *width, int *height); -extern wxSize WXDLLIMPEXP_CORE wxGetDisplaySizeMM(); -extern wxSize WXDLLIMPEXP_CORE wxGetDisplayPPI(); - -// Get position and size of the display workarea -extern void WXDLLIMPEXP_CORE wxClientDisplayRect(int *x, int *y, int *width, int *height); -extern wxRect WXDLLIMPEXP_CORE wxGetClientDisplayRect(); - -// set global cursor -extern void WXDLLIMPEXP_CORE wxSetCursor(const wxCursor& cursor); - -#endif - // _WX_GDICMNH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gdiobj.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gdiobj.h deleted file mode 100644 index 81d1f46a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gdiobj.h +++ /dev/null @@ -1,92 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/gdiobj.h -// Purpose: wxGDIObject base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GDIOBJ_H_BASE_ -#define _WX_GDIOBJ_H_BASE_ - -#include "wx/object.h" - -// ---------------------------------------------------------------------------- -// wxGDIRefData is the base class for wxXXXData structures which contain the -// real data for the GDI object and are shared among all wxWin objects sharing -// the same native GDI object -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGDIRefData : public wxObjectRefData -{ -public: - // Default ctor which needs to be defined just because we use - // wxDECLARE_NO_COPY_CLASS() below. - wxGDIRefData() { } - - // override this in the derived classes to check if this data object is - // really fully initialized - virtual bool IsOk() const { return true; } - -private: - wxDECLARE_NO_COPY_CLASS(wxGDIRefData); -}; - -// ---------------------------------------------------------------------------- -// wxGDIObject: base class for bitmaps, pens, brushes, ... -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGDIObject : public wxObject -{ -public: - // checks if the object can be used - virtual bool IsOk() const - { - // the cast here is safe because the derived classes always create - // wxGDIRefData objects - return m_refData && static_cast(m_refData)->IsOk(); - } - - // don't use in the new code, use IsOk() instead - bool IsNull() const { return m_refData == NULL; } - - // older version, for backwards compatibility only (but not deprecated - // because it's still widely used) - bool Ok() const { return IsOk(); } - -#if defined(__WXMSW__) - // Creates the resource - virtual bool RealizeResource() { return false; } - - // Frees the resource - virtual bool FreeResource(bool WXUNUSED(force) = false) { return false; } - - virtual bool IsFree() const { return false; } - - // Returns handle. - virtual WXHANDLE GetResourceHandle() const { return 0; } -#endif // defined(__WXMSW__) - -protected: - // replace base class functions using wxObjectRefData with our own which - // use wxGDIRefData to ensure that we always work with data objects of the - // correct type (i.e. derived from wxGDIRefData) - virtual wxObjectRefData *CreateRefData() const wxOVERRIDE - { - return CreateGDIRefData(); - } - - virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const wxOVERRIDE - { - return CloneGDIRefData(static_cast(data)); - } - - virtual wxGDIRefData *CreateGDIRefData() const = 0; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const = 0; - - wxDECLARE_DYNAMIC_CLASS(wxGDIObject); -}; - -#endif // _WX_GDIOBJ_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/aboutdlgg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/aboutdlgg.h deleted file mode 100644 index 36e0cad4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/aboutdlgg.h +++ /dev/null @@ -1,102 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/aboutdlgg.h -// Purpose: generic wxAboutBox() implementation -// Author: Vadim Zeitlin -// Created: 2006-10-07 -// Copyright: (c) 2006 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_ABOUTDLGG_H_ -#define _WX_GENERIC_ABOUTDLGG_H_ - -#include "wx/defs.h" - -#if wxUSE_ABOUTDLG - -#include "wx/dialog.h" - -class WXDLLIMPEXP_FWD_ADV wxAboutDialogInfo; -class WXDLLIMPEXP_FWD_CORE wxSizer; -class WXDLLIMPEXP_FWD_CORE wxSizerFlags; - -// Under GTK and OS X "About" dialogs are not supposed to be modal, unlike MSW -// and, presumably, all the other platforms. -#ifndef wxUSE_MODAL_ABOUT_DIALOG - #if defined(__WXGTK__) || defined(__WXMAC__) - #define wxUSE_MODAL_ABOUT_DIALOG 0 - #else - #define wxUSE_MODAL_ABOUT_DIALOG 1 - #endif -#endif // wxUSE_MODAL_ABOUT_DIALOG not defined - -// ---------------------------------------------------------------------------- -// wxGenericAboutDialog: generic "About" dialog implementation -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxGenericAboutDialog : public wxDialog -{ -public: - // constructors and Create() method - // -------------------------------- - - // default ctor, you must use Create() to really initialize the dialog - wxGenericAboutDialog() { Init(); } - - // ctor which fully initializes the object - wxGenericAboutDialog(const wxAboutDialogInfo& info, wxWindow* parent = NULL) - { - Init(); - - (void)Create(info, parent); - } - - // this method must be called if and only if the default ctor was used - bool Create(const wxAboutDialogInfo& info, wxWindow* parent = NULL); - -protected: - // this virtual method may be overridden to add some more controls to the - // dialog - // - // notice that for this to work you must call Create() from the derived - // class ctor and not use the base class ctor directly as otherwise the - // virtual function of the derived class wouldn't be called - virtual void DoAddCustomControls() { } - - // add arbitrary control to the text sizer contents with the specified - // flags - void AddControl(wxWindow *win, const wxSizerFlags& flags); - - // add arbitrary control to the text sizer contents and center it - void AddControl(wxWindow *win); - - // add the text, if it's not empty, to the text sizer contents - void AddText(const wxString& text); - -#if wxUSE_COLLPANE - // add a wxCollapsiblePane containing the given text - void AddCollapsiblePane(const wxString& title, const wxString& text); -#endif // wxUSE_COLLPANE - -private: - // common part of all ctors - void Init() { m_sizerText = NULL; } - -#if !wxUSE_MODAL_ABOUT_DIALOG - // An explicit handler for deleting the dialog when it's closed is needed - // when we show it non-modally. - void OnCloseWindow(wxCloseEvent& event); - void OnOK(wxCommandEvent& event); -#endif // !wxUSE_MODAL_ABOUT_DIALOG - - wxSizer *m_sizerText; -}; - -// unlike wxAboutBox which can show either the native or generic about dialog, -// this function always shows the generic one -WXDLLIMPEXP_ADV void wxGenericAboutBox(const wxAboutDialogInfo& info, wxWindow* parent = NULL); - -#endif // wxUSE_ABOUTDLG - -#endif // _WX_GENERIC_ABOUTDLGG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/accel.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/accel.h deleted file mode 100644 index 0195f464..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/accel.h +++ /dev/null @@ -1,49 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/accel.h -// Purpose: wxAcceleratorTable class -// Author: Robert Roebling -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_ACCEL_H_ -#define _WX_GENERIC_ACCEL_H_ - -class WXDLLIMPEXP_FWD_CORE wxKeyEvent; - -// ---------------------------------------------------------------------------- -// wxAcceleratorTable -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxAcceleratorTable : public wxObject -{ -public: - wxAcceleratorTable(); - wxAcceleratorTable(int n, const wxAcceleratorEntry entries[]); - virtual ~wxAcceleratorTable(); - - bool Ok() const { return IsOk(); } - bool IsOk() const; - - void Add(const wxAcceleratorEntry& entry); - void Remove(const wxAcceleratorEntry& entry); - - // implementation - // -------------- - - wxMenuItem *GetMenuItem(const wxKeyEvent& event) const; - int GetCommand(const wxKeyEvent& event) const; - - const wxAcceleratorEntry *GetEntry(const wxKeyEvent& event) const; - -protected: - // ref counting code - virtual wxObjectRefData *CreateRefData() const wxOVERRIDE; - virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const wxOVERRIDE; - -private: - wxDECLARE_DYNAMIC_CLASS(wxAcceleratorTable); -}; - -#endif // _WX_GENERIC_ACCEL_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/activityindicator.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/activityindicator.h deleted file mode 100644 index 1fbeb8e6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/activityindicator.h +++ /dev/null @@ -1,67 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/activityindicator.h -// Purpose: Declaration of wxActivityIndicatorGeneric. -// Author: Vadim Zeitlin -// Created: 2015-03-06 -// Copyright: (c) 2015 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_ACTIVITYINDICATOR_H_ -#define _WX_GENERIC_ACTIVITYINDICATOR_H_ - -#ifndef wxHAS_NATIVE_ACTIVITYINDICATOR - // This is the only implementation we have, so call it accordingly. - #define wxActivityIndicatorGeneric wxActivityIndicator -#endif - -// ---------------------------------------------------------------------------- -// wxActivityIndicatorGeneric: built-in generic implementation. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxActivityIndicatorGeneric : public wxActivityIndicatorBase -{ -public: - wxActivityIndicatorGeneric() - { - m_impl = NULL; - } - - explicit - wxActivityIndicatorGeneric(wxWindow* parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxActivityIndicatorNameStr) - { - m_impl = NULL; - - Create(parent, winid, pos, size, style, name); - } - - bool Create(wxWindow* parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxActivityIndicatorNameStr); - - virtual ~wxActivityIndicatorGeneric(); - - virtual void Start() wxOVERRIDE; - virtual void Stop() wxOVERRIDE; - virtual bool IsRunning() const wxOVERRIDE; - -protected: - virtual wxSize DoGetBestClientSize() const wxOVERRIDE; - -private: - class wxActivityIndicatorImpl *m_impl; - -#ifndef wxHAS_NATIVE_ACTIVITYINDICATOR - wxDECLARE_DYNAMIC_CLASS(wxActivityIndicator); -#endif -}; - -#endif // _WX_GENERIC_ACTIVITYINDICATOR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/animate.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/animate.h deleted file mode 100644 index c9773f44..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/animate.h +++ /dev/null @@ -1,177 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/animate.h -// Purpose: wxAnimation and wxAnimationCtrl -// Author: Julian Smart and Guillermo Rodriguez Garcia -// Modified by: Francesco Montorsi -// Created: 13/8/99 -// Copyright: (c) Julian Smart and Guillermo Rodriguez Garcia -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_ANIMATEH__ -#define _WX_GENERIC_ANIMATEH__ - -#include "wx/bitmap.h" - -// ---------------------------------------------------------------------------- -// wxAnimation -// ---------------------------------------------------------------------------- - -WX_DECLARE_LIST_WITH_DECL(wxAnimationDecoder, wxAnimationDecoderList, class WXDLLIMPEXP_ADV); - -class WXDLLIMPEXP_ADV wxAnimation : public wxAnimationBase -{ -public: - wxAnimation() {} - wxAnimation(const wxString &name, wxAnimationType type = wxANIMATION_TYPE_ANY) - { LoadFile(name, type); } - - virtual bool IsOk() const - { return m_refData != NULL; } - - virtual unsigned int GetFrameCount() const; - virtual int GetDelay(unsigned int i) const; - virtual wxImage GetFrame(unsigned int i) const; - virtual wxSize GetSize() const; - - virtual bool LoadFile(const wxString& filename, - wxAnimationType type = wxANIMATION_TYPE_ANY); - virtual bool Load(wxInputStream& stream, - wxAnimationType type = wxANIMATION_TYPE_ANY); - - // extended interface used by the generic implementation of wxAnimationCtrl - wxPoint GetFramePosition(unsigned int frame) const; - wxSize GetFrameSize(unsigned int frame) const; - wxAnimationDisposal GetDisposalMethod(unsigned int frame) const; - wxColour GetTransparentColour(unsigned int frame) const; - wxColour GetBackgroundColour() const; - -protected: - static wxAnimationDecoderList sm_handlers; - -public: - static inline wxAnimationDecoderList& GetHandlers() { return sm_handlers; } - static void AddHandler(wxAnimationDecoder *handler); - static void InsertHandler(wxAnimationDecoder *handler); - static const wxAnimationDecoder *FindHandler( wxAnimationType animType ); - - static void CleanUpHandlers(); - static void InitStandardHandlers(); - - wxDECLARE_DYNAMIC_CLASS(wxAnimation); -}; - - -// ---------------------------------------------------------------------------- -// wxAnimationCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxAnimationCtrl: public wxAnimationCtrlBase -{ -public: - wxAnimationCtrl() { Init(); } - wxAnimationCtrl(wxWindow *parent, - wxWindowID id, - const wxAnimation& anim = wxNullAnimation, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxAC_DEFAULT_STYLE, - const wxString& name = wxAnimationCtrlNameStr) - { - Init(); - - Create(parent, id, anim, pos, size, style, name); - } - - void Init(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxAnimation& anim = wxNullAnimation, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxAC_DEFAULT_STYLE, - const wxString& name = wxAnimationCtrlNameStr); - - ~wxAnimationCtrl(); - -public: - virtual bool LoadFile(const wxString& filename, wxAnimationType type = wxANIMATION_TYPE_ANY) wxOVERRIDE; - virtual bool Load(wxInputStream& stream, wxAnimationType type = wxANIMATION_TYPE_ANY) wxOVERRIDE; - - virtual void Stop() wxOVERRIDE; - virtual bool Play() wxOVERRIDE - { return Play(true /* looped */); } - virtual bool IsPlaying() const wxOVERRIDE - { return m_isPlaying; } - - void SetAnimation(const wxAnimation &animation) wxOVERRIDE; - wxAnimation GetAnimation() const wxOVERRIDE - { return m_animation; } - - virtual void SetInactiveBitmap(const wxBitmap &bmp) wxOVERRIDE; - - // override base class method - virtual bool SetBackgroundColour(const wxColour& col) wxOVERRIDE; - -public: // event handlers - - void OnPaint(wxPaintEvent& event); - void OnTimer(wxTimerEvent& event); - void OnSize(wxSizeEvent& event); - -public: // extended API specific to this implementation of wxAnimateCtrl - - // Specify whether the animation's background colour is to be shown (the default), - // or whether the window background should show through - void SetUseWindowBackgroundColour(bool useWinBackground = true) - { m_useWinBackgroundColour = useWinBackground; } - bool IsUsingWindowBackgroundColour() const - { return m_useWinBackgroundColour; } - - // This overload of Play() lets you specify if the animation must loop or not - bool Play(bool looped); - - // Draw the current frame of the animation into given DC. - // This is fast as current frame is always cached. - void DrawCurrentFrame(wxDC& dc); - - // Returns a wxBitmap with the current frame drawn in it - wxBitmap& GetBackingStore() - { return m_backingStore; } - -protected: // internal utilities - - // resize this control to fit m_animation - void FitToAnimation(); - - // Draw the background; use this when e.g. previous frame had wxANIM_TOBACKGROUND disposal. - void DisposeToBackground(); - void DisposeToBackground(wxDC& dc); - void DisposeToBackground(wxDC& dc, const wxPoint &pos, const wxSize &sz); - - void IncrementalUpdateBackingStore(); - bool RebuildBackingStoreUpToFrame(unsigned int); - void DrawFrame(wxDC &dc, unsigned int); - - virtual void DisplayStaticImage() wxOVERRIDE; - virtual wxSize DoGetBestSize() const wxOVERRIDE; - -protected: - unsigned int m_currentFrame; // Current frame - bool m_looped; // Looped, or not - wxTimer m_timer; // The timer - wxAnimation m_animation; // The animation - - bool m_isPlaying; // Is the animation playing? - bool m_useWinBackgroundColour; // Use animation bg colour or window bg colour? - - wxBitmap m_backingStore; // The frames are drawn here and then blitted - // on the screen - -private: - typedef wxAnimationCtrlBase base_type; - wxDECLARE_DYNAMIC_CLASS(wxAnimationCtrl); - wxDECLARE_EVENT_TABLE(); -}; - -#endif // _WX_GENERIC_ANIMATEH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/bmpcbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/bmpcbox.h deleted file mode 100644 index 4630a29a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/bmpcbox.h +++ /dev/null @@ -1,136 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/bmpcbox.h -// Purpose: wxBitmapComboBox -// Author: Jaakko Salli -// Modified by: -// Created: Aug-30-2006 -// Copyright: (c) Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_BMPCBOX_H_ -#define _WX_GENERIC_BMPCBOX_H_ - - -#define wxGENERIC_BITMAPCOMBOBOX 1 - -#include "wx/odcombo.h" - -// ---------------------------------------------------------------------------- -// wxBitmapComboBox: a wxComboBox that allows images to be shown -// in front of string items. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxBitmapComboBox : public wxOwnerDrawnComboBox, - public wxBitmapComboBoxBase -{ -public: - - // ctors and such - wxBitmapComboBox() : wxOwnerDrawnComboBox(), wxBitmapComboBoxBase() - { - Init(); - } - - wxBitmapComboBox(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, - const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapComboBoxNameStr) - : wxOwnerDrawnComboBox(), - wxBitmapComboBoxBase() - { - Init(); - - (void)Create(parent, id, value, pos, size, n, - choices, style, validator, name); - } - - wxBitmapComboBox(wxWindow *parent, - wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapComboBoxNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - int n, - const wxString choices[], - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapComboBoxNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapComboBoxNameStr); - - virtual ~wxBitmapComboBox(); - - // Adds item with image to the end of the combo box. - int Append(const wxString& item, const wxBitmap& bitmap = wxNullBitmap); - int Append(const wxString& item, const wxBitmap& bitmap, void *clientData); - int Append(const wxString& item, const wxBitmap& bitmap, wxClientData *clientData); - - // Inserts item with image into the list before pos. Not valid for wxCB_SORT - // styles, use Append instead. - int Insert(const wxString& item, const wxBitmap& bitmap, unsigned int pos); - int Insert(const wxString& item, const wxBitmap& bitmap, - unsigned int pos, void *clientData); - int Insert(const wxString& item, const wxBitmap& bitmap, - unsigned int pos, wxClientData *clientData); - - // Sets the image for the given item. - virtual void SetItemBitmap(unsigned int n, const wxBitmap& bitmap) wxOVERRIDE; - virtual bool SetFont(const wxFont& font) wxOVERRIDE; - -protected: - - virtual void OnDrawBackground(wxDC& dc, const wxRect& rect, int item, int flags) const wxOVERRIDE; - virtual void OnDrawItem(wxDC& dc, const wxRect& rect, int item, int flags) const wxOVERRIDE; - virtual wxCoord OnMeasureItem(size_t item) const wxOVERRIDE; - virtual wxCoord OnMeasureItemWidth(size_t item) const wxOVERRIDE; - - // Event handlers - void OnSize(wxSizeEvent& event); - - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - virtual wxItemContainer* GetItemContainer() wxOVERRIDE { return this; } - virtual wxWindow* GetControl() wxOVERRIDE { return this; } - - // wxItemContainer implementation - virtual int DoInsertItems(const wxArrayStringsAdapter & items, - unsigned int pos, - void **clientData, wxClientDataType type) wxOVERRIDE; - virtual void DoClear() wxOVERRIDE; - virtual void DoDeleteOneItem(unsigned int n) wxOVERRIDE; - -private: - bool m_inResize; - - void Init(); - - wxDECLARE_EVENT_TABLE(); - - wxDECLARE_DYNAMIC_CLASS(wxBitmapComboBox); -}; - -#endif // _WX_GENERIC_BMPCBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/busyinfo.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/busyinfo.h deleted file mode 100644 index d910668c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/busyinfo.h +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/busyinfo.h -// Purpose: Information window (when app is busy) -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BUSYINFO_H_ -#define _WX_BUSYINFO_H_ - -#include "wx/defs.h" - -#if wxUSE_BUSYINFO - -#include "wx/object.h" - -class WXDLLIMPEXP_FWD_CORE wxFrame; -class WXDLLIMPEXP_FWD_CORE wxWindow; - -//-------------------------------------------------------------------------------- -// wxBusyInfo -// Displays progress information -// Can be used in exactly same way as wxBusyCursor -//-------------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxBusyInfo : public wxObject -{ -public: - wxBusyInfo(const wxBusyInfoFlags& flags) - { - Init(flags); - } - - wxBusyInfo(const wxString& message, wxWindow *parent = NULL) - { - Init(wxBusyInfoFlags().Parent(parent).Label(message)); - } - - virtual ~wxBusyInfo(); - -private: - void Init(const wxBusyInfoFlags& flags); - - wxFrame *m_InfoFrame; - - wxDECLARE_NO_COPY_CLASS(wxBusyInfo); -}; - -#endif // wxUSE_BUSYINFO -#endif // _WX_BUSYINFO_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/buttonbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/buttonbar.h deleted file mode 100644 index 7a96d4ad..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/buttonbar.h +++ /dev/null @@ -1,123 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/buttonbar.h -// Purpose: wxButtonToolBar declaration -// Author: Julian Smart, after Robert Roebling, Vadim Zeitlin, SciTech -// Modified by: -// Created: 2006-04-13 -// Copyright: (c) Julian Smart, Robert Roebling, Vadim Zeitlin, -// SciTech Software, Inc. -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BUTTONBAR_H_ -#define _WX_BUTTONBAR_H_ - -#include "wx/bmpbuttn.h" -#include "wx/toolbar.h" - -class WXDLLIMPEXP_FWD_CORE wxButtonToolBarTool; - -// ---------------------------------------------------------------------------- -// wxButtonToolBar -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxButtonToolBar : public wxToolBarBase -{ -public: - // construction/destruction - wxButtonToolBar() { Init(); } - wxButtonToolBar(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxToolBarNameStr) - { - Init(); - - Create(parent, id, pos, size, style, name); - } - - bool Create( wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxToolBarNameStr ); - - virtual ~wxButtonToolBar(); - - virtual bool Realize() wxOVERRIDE; - - virtual void SetToolShortHelp(int id, const wxString& helpString) wxOVERRIDE; - virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const wxOVERRIDE; - -protected: - // common part of all ctors - void Init(); - - // implement base class pure virtuals - virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool) wxOVERRIDE; - virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool) wxOVERRIDE; - - virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable) wxOVERRIDE; - virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle) wxOVERRIDE; - virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle) wxOVERRIDE; - - virtual wxToolBarToolBase *CreateTool(int id, - const wxString& label, - const wxBitmap& bmpNormal, - const wxBitmap& bmpDisabled, - wxItemKind kind, - wxObject *clientData, - const wxString& shortHelp, - const wxString& longHelp) wxOVERRIDE; - virtual wxToolBarToolBase *CreateTool(wxControl *control, - const wxString& label) wxOVERRIDE; - - virtual wxSize DoGetBestClientSize() const wxOVERRIDE; - - // calculate layout - void DoLayout(); - - // get the bounding rect for the given tool - wxRect GetToolRect(wxToolBarToolBase *tool) const; - - // get the rect limits depending on the orientation: top/bottom for a - // vertical toolbar, left/right for a horizontal one - void GetRectLimits(const wxRect& rect, wxCoord *start, wxCoord *end) const; - - // receives button commands - void OnCommand(wxCommandEvent& event); - - // paints a border - void OnPaint(wxPaintEvent& event); - - // detects mouse clicks outside buttons - void OnLeftUp(wxMouseEvent& event); - -private: - // have we calculated the positions of our tools? - bool m_needsLayout; - - // the width of a separator - wxCoord m_widthSeparator; - - // the total size of all toolbar elements - wxCoord m_maxWidth, - m_maxHeight; - - // the height of a label - int m_labelHeight; - - // the space above the label - int m_labelMargin; - -private: - wxDECLARE_DYNAMIC_CLASS(wxButtonToolBar); - wxDECLARE_EVENT_TABLE(); -}; - -#endif - // _WX_BUTTONBAR_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/calctrlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/calctrlg.h deleted file mode 100644 index 0c2b48b4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/calctrlg.h +++ /dev/null @@ -1,317 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/calctrlg.h -// Purpose: generic implementation of date-picker control -// Author: Vadim Zeitlin -// Modified by: -// Created: 29.12.99 -// Copyright: (c) 1999 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_CALCTRLG_H -#define _WX_GENERIC_CALCTRLG_H - -#include "wx/control.h" // the base class -#include "wx/dcclient.h" // for wxPaintDC - -class WXDLLIMPEXP_FWD_CORE wxComboBox; -class WXDLLIMPEXP_FWD_CORE wxStaticText; -class WXDLLIMPEXP_FWD_CORE wxSpinCtrl; -class WXDLLIMPEXP_FWD_CORE wxSpinEvent; - -// ---------------------------------------------------------------------------- -// wxGenericCalendarCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxGenericCalendarCtrl : public wxCalendarCtrlBase -{ -public: - // construction - wxGenericCalendarCtrl() { Init(); } - wxGenericCalendarCtrl(wxWindow *parent, - wxWindowID id, - const wxDateTime& date = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCAL_SHOW_HOLIDAYS, - const wxString& name = wxCalendarNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxDateTime& date = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCAL_SHOW_HOLIDAYS, - const wxString& name = wxCalendarNameStr); - - virtual ~wxGenericCalendarCtrl(); - - virtual bool Destroy() wxOVERRIDE; - - // set/get the current date - // ------------------------ - - virtual bool SetDate(const wxDateTime& date) wxOVERRIDE; - virtual wxDateTime GetDate() const wxOVERRIDE { return m_date; } - - - // set/get the range in which selection can occur - // --------------------------------------------- - - virtual bool SetDateRange(const wxDateTime& lowerdate = wxDefaultDateTime, - const wxDateTime& upperdate = wxDefaultDateTime) wxOVERRIDE; - - virtual bool GetDateRange(wxDateTime *lowerdate, wxDateTime *upperdate) const wxOVERRIDE; - - // these functions are for generic version only, don't use them but use the - // Set/GetDateRange() above instead - bool SetLowerDateLimit(const wxDateTime& date = wxDefaultDateTime); - const wxDateTime& GetLowerDateLimit() const { return m_lowdate; } - bool SetUpperDateLimit(const wxDateTime& date = wxDefaultDateTime); - const wxDateTime& GetUpperDateLimit() const { return m_highdate; } - - - // calendar mode - // ------------- - - // some calendar styles can't be changed after the control creation by - // just using SetWindowStyle() and Refresh() and the functions below - // should be used instead for them - - // corresponds to wxCAL_NO_MONTH_CHANGE bit - virtual bool EnableMonthChange(bool enable = true) wxOVERRIDE; - - // corresponds to wxCAL_NO_YEAR_CHANGE bit, deprecated, generic only - void EnableYearChange(bool enable = true); - - - // customization - // ------------- - - virtual void Mark(size_t day, bool mark) wxOVERRIDE; - - // all other functions in this section are for generic version only - - // header colours are used for painting the weekdays at the top - virtual void SetHeaderColours(const wxColour& colFg, const wxColour& colBg) wxOVERRIDE - { - m_colHeaderFg = colFg; - m_colHeaderBg = colBg; - } - - virtual const wxColour& GetHeaderColourFg() const wxOVERRIDE { return m_colHeaderFg; } - virtual const wxColour& GetHeaderColourBg() const wxOVERRIDE { return m_colHeaderBg; } - - // highlight colour is used for the currently selected date - virtual void SetHighlightColours(const wxColour& colFg, const wxColour& colBg) wxOVERRIDE - { - m_colHighlightFg = colFg; - m_colHighlightBg = colBg; - } - - virtual const wxColour& GetHighlightColourFg() const wxOVERRIDE { return m_colHighlightFg; } - virtual const wxColour& GetHighlightColourBg() const wxOVERRIDE { return m_colHighlightBg; } - - // holiday colour is used for the holidays (if style & wxCAL_SHOW_HOLIDAYS) - virtual void SetHolidayColours(const wxColour& colFg, const wxColour& colBg) wxOVERRIDE - { - m_colHolidayFg = colFg; - m_colHolidayBg = colBg; - } - - virtual const wxColour& GetHolidayColourFg() const wxOVERRIDE { return m_colHolidayFg; } - virtual const wxColour& GetHolidayColourBg() const wxOVERRIDE { return m_colHolidayBg; } - - virtual wxCalendarDateAttr *GetAttr(size_t day) const wxOVERRIDE - { - wxCHECK_MSG( day > 0 && day < 32, NULL, wxT("invalid day") ); - - return m_attrs[day - 1]; - } - - virtual void SetAttr(size_t day, wxCalendarDateAttr *attr) wxOVERRIDE - { - wxCHECK_RET( day > 0 && day < 32, wxT("invalid day") ); - - delete m_attrs[day - 1]; - m_attrs[day - 1] = attr; - } - - virtual void ResetAttr(size_t day) wxOVERRIDE { SetAttr(day, NULL); } - - virtual void SetHoliday(size_t day) wxOVERRIDE; - - virtual wxCalendarHitTestResult HitTest(const wxPoint& pos, - wxDateTime *date = NULL, - wxDateTime::WeekDay *wd = NULL) wxOVERRIDE; - - // implementation only from now on - // ------------------------------- - - // forward these functions to all subcontrols - virtual bool Enable(bool enable = true) wxOVERRIDE; - virtual bool Show(bool show = true) wxOVERRIDE; - - virtual void SetWindowStyleFlag(long style) wxOVERRIDE; - - virtual wxVisualAttributes GetDefaultAttributes() const wxOVERRIDE - { return GetClassDefaultAttributes(GetWindowVariant()); } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); - - void OnSysColourChanged(wxSysColourChangedEvent& event); - -protected: - // override some base class virtuals - virtual wxSize DoGetBestSize() const wxOVERRIDE; - virtual void DoMoveWindow(int x, int y, int width, int height) wxOVERRIDE; - virtual void DoGetSize(int *width, int *height) const wxOVERRIDE; - -private: - // common part of all ctors - void Init(); - - // startup colours and reinitialization after colour changes in system - void InitColours(); - - // event handlers - void OnPaint(wxPaintEvent& event); - void OnClick(wxMouseEvent& event); - void OnDClick(wxMouseEvent& event); - void OnWheel(wxMouseEvent& event); - void OnChar(wxKeyEvent& event); - void OnMonthChange(wxCommandEvent& event); - - void HandleYearChange(wxCommandEvent& event); - void OnYearChange(wxSpinEvent& event); - void OnYearTextChange(wxCommandEvent& event); - - // (re)calc m_widthCol and m_heightRow - void RecalcGeometry(); - - // set the date and send the notification - void SetDateAndNotify(const wxDateTime& date); - - // get the week (row, in range 1..6) for the given date - size_t GetWeek(const wxDateTime& date) const; - - // get the date from which we start drawing days - wxDateTime GetStartDate() const; - - // get the first/last days of the week corresponding to the current style - wxDateTime::WeekDay GetWeekStart() const - { - return HasFlag(wxCAL_MONDAY_FIRST) ? wxDateTime::Mon - : wxDateTime::Sun; - } - - wxDateTime::WeekDay GetWeekEnd() const - { - return HasFlag(wxCAL_MONDAY_FIRST) ? wxDateTime::Sun - : wxDateTime::Sat; - } - - - // is this date shown? - bool IsDateShown(const wxDateTime& date) const; - - // is this date in the currently allowed range? - bool IsDateInRange(const wxDateTime& date) const; - - // adjust the date to the currently allowed range, return true if it was - // changed - bool AdjustDateToRange(wxDateTime *date) const; - - // redraw the given date - void RefreshDate(const wxDateTime& date); - - // change the date inside the same month/year - void ChangeDay(const wxDateTime& date); - - // deprecated - bool AllowYearChange() const - { - return !(GetWindowStyle() & wxCAL_NO_YEAR_CHANGE); - } - - // show the correct controls - void ShowCurrentControls(); - - // create the month combo and year spin controls - void CreateMonthComboBox(); - void CreateYearSpinCtrl(); - -public: - // get the currently shown control for month/year - wxControl *GetMonthControl() const; - wxControl *GetYearControl() const; - -private: - virtual void ResetHolidayAttrs() wxOVERRIDE; - virtual void RefreshHolidays() wxOVERRIDE { Refresh(); } - - // OnPaint helper-methods - - // Highlight the [fromdate : todate] range using pen and brush - void HighlightRange(wxPaintDC* dc, const wxDateTime& fromdate, const wxDateTime& todate, const wxPen* pen, const wxBrush* brush); - - // Get the "coordinates" for the date relative to the month currently displayed. - // using (day, week): upper left coord is (1, 1), lower right coord is (7, 6) - // if the date isn't visible (-1, -1) is put in (day, week) and false is returned - bool GetDateCoord(const wxDateTime& date, int *day, int *week) const; - - // Set the flag for SetDate(): otherwise it would overwrite the year - // typed in by the user - void SetUserChangedYear() { m_userChangedYear = true; } - - - // the subcontrols - wxStaticText *m_staticMonth; - wxComboBox *m_comboMonth; - - wxStaticText *m_staticYear; - wxSpinCtrl *m_spinYear; - - // the current selection - wxDateTime m_date; - - // the date-range - wxDateTime m_lowdate; - wxDateTime m_highdate; - - // default attributes - wxColour m_colHighlightFg, - m_colHighlightBg, - m_colHolidayFg, - m_colHolidayBg, - m_colHeaderFg, - m_colHeaderBg, - m_colBackground, - m_colSurrounding; - - // the attributes for each of the month days - wxCalendarDateAttr *m_attrs[31]; - - // the width and height of one column/row in the calendar - wxCoord m_widthCol, - m_heightRow, - m_rowOffset, - m_calendarWeekWidth; - - wxRect m_leftArrowRect, - m_rightArrowRect; - - // the week day names - wxString m_weekdays[7]; - - // true if SetDate() is being called as the result of changing the year in - // the year control - bool m_userChangedYear; - - wxDECLARE_DYNAMIC_CLASS(wxGenericCalendarCtrl); - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxGenericCalendarCtrl); -}; - -#endif // _WX_GENERIC_CALCTRLG_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/caret.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/caret.h deleted file mode 100644 index de9117c6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/caret.h +++ /dev/null @@ -1,94 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/caret.h -// Purpose: generic wxCaret class -// Author: Vadim Zeitlin (original code by Robert Roebling) -// Modified by: -// Created: 25.05.99 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CARET_H_ -#define _WX_CARET_H_ - -#include "wx/timer.h" -#include "wx/dc.h" -#include "wx/overlay.h" - -#ifdef wxHAS_NATIVE_OVERLAY - #define wxHAS_CARET_USING_OVERLAYS -#endif - -class WXDLLIMPEXP_FWD_CORE wxCaret; - -class WXDLLIMPEXP_CORE wxCaretTimer : public wxTimer -{ -public: - wxCaretTimer(wxCaret *caret); - virtual void Notify() wxOVERRIDE; - -private: - wxCaret *m_caret; -}; - -class WXDLLIMPEXP_CORE wxCaret : public wxCaretBase -{ -public: - // ctors - // ----- - // default - use Create() - wxCaret() : m_timer(this) { InitGeneric(); } - // creates a block caret associated with the given window - wxCaret(wxWindowBase *window, int width, int height) - : wxCaretBase(window, width, height), m_timer(this) { InitGeneric(); } - wxCaret(wxWindowBase *window, const wxSize& size) - : wxCaretBase(window, size), m_timer(this) { InitGeneric(); } - - virtual ~wxCaret(); - - // implementation - // -------------- - - // called by wxWindow (not using the event tables) - virtual void OnSetFocus() wxOVERRIDE; - virtual void OnKillFocus() wxOVERRIDE; - - // called by wxCaretTimer - void OnTimer(); - -protected: - virtual void DoShow() wxOVERRIDE; - virtual void DoHide() wxOVERRIDE; - virtual void DoMove() wxOVERRIDE; - virtual void DoSize() wxOVERRIDE; - - // blink the caret once - void Blink(); - - // refresh the caret - void Refresh(); - - // draw the caret on the given DC - void DoDraw(wxDC *dc, wxWindow* win); - -private: - // GTK specific initialization - void InitGeneric(); - -#ifdef wxHAS_CARET_USING_OVERLAYS - // the overlay for displaying the caret - wxOverlay m_overlay; -#else - // the bitmap holding the part of window hidden by the caret when it was - // at (m_xOld, m_yOld) - wxBitmap m_bmpUnderCaret; - int m_xOld, - m_yOld; -#endif - - wxCaretTimer m_timer; - bool m_blinkedOut, // true => caret hidden right now - m_hasFocus; // true => our window has focus -}; - -#endif // _WX_CARET_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/choicdgg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/choicdgg.h deleted file mode 100644 index 114d6662..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/choicdgg.h +++ /dev/null @@ -1,454 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/choicdgg.h -// Purpose: Generic choice dialogs -// Author: Julian Smart -// Modified by: 03.11.00: VZ to add wxArrayString and multiple sel functions -// Created: 01/02/97 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_CHOICDGG_H_ -#define _WX_GENERIC_CHOICDGG_H_ - -#include "wx/dynarray.h" -#include "wx/dialog.h" - -class WXDLLIMPEXP_FWD_CORE wxListBoxBase; - -// ---------------------------------------------------------------------------- -// some (ugly...) constants -// ---------------------------------------------------------------------------- - -#define wxCHOICE_HEIGHT 150 -#define wxCHOICE_WIDTH 200 - -#define wxCHOICEDLG_STYLE \ - (wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxOK | wxCANCEL | wxCENTRE) - -// ---------------------------------------------------------------------------- -// wxAnyChoiceDialog: a base class for dialogs containing a listbox -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxAnyChoiceDialog : public wxDialog -{ -public: - wxAnyChoiceDialog() { } - - wxAnyChoiceDialog(wxWindow *parent, - const wxString& message, - const wxString& caption, - int n, const wxString *choices, - long styleDlg = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition, - long styleLbox = wxLB_ALWAYS_SB) - { - (void)Create(parent, message, caption, n, choices, - styleDlg, pos, styleLbox); - } - wxAnyChoiceDialog(wxWindow *parent, - const wxString& message, - const wxString& caption, - const wxArrayString& choices, - long styleDlg = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition, - long styleLbox = wxLB_ALWAYS_SB) - { - (void)Create(parent, message, caption, choices, - styleDlg, pos, styleLbox); - } - - bool Create(wxWindow *parent, - const wxString& message, - const wxString& caption, - int n, const wxString *choices, - long styleDlg = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition, - long styleLbox = wxLB_ALWAYS_SB); - bool Create(wxWindow *parent, - const wxString& message, - const wxString& caption, - const wxArrayString& choices, - long styleDlg = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition, - long styleLbox = wxLB_ALWAYS_SB); - -protected: - wxListBoxBase *m_listbox; - - virtual wxListBoxBase *CreateList(int n, - const wxString *choices, - long styleLbox); - - wxDECLARE_NO_COPY_CLASS(wxAnyChoiceDialog); -}; - -// ---------------------------------------------------------------------------- -// wxSingleChoiceDialog: a dialog with single selection listbox -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSingleChoiceDialog : public wxAnyChoiceDialog -{ -public: - wxSingleChoiceDialog() - { - m_selection = -1; - } - - wxSingleChoiceDialog(wxWindow *parent, - const wxString& message, - const wxString& caption, - int n, - const wxString *choices, - void **clientData = NULL, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition) - { - Create(parent, message, caption, n, choices, clientData, style, pos); - } - - wxSingleChoiceDialog(wxWindow *parent, - const wxString& message, - const wxString& caption, - const wxArrayString& choices, - void **clientData = NULL, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition) - { - Create(parent, message, caption, choices, clientData, style, pos); - } - - bool Create(wxWindow *parent, - const wxString& message, - const wxString& caption, - int n, - const wxString *choices, - void **clientData = NULL, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition); - bool Create(wxWindow *parent, - const wxString& message, - const wxString& caption, - const wxArrayString& choices, - void **clientData = NULL, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition); - - void SetSelection(int sel); - int GetSelection() const { return m_selection; } - wxString GetStringSelection() const { return m_stringSelection; } - void* GetSelectionData() const { return m_clientData; } - -#if WXWIN_COMPATIBILITY_2_8 - // Deprecated overloads taking "char**" client data. - wxDEPRECATED_CONSTRUCTOR - ( - wxSingleChoiceDialog(wxWindow *parent, - const wxString& message, - const wxString& caption, - int n, - const wxString *choices, - char **clientData, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition) - ) - { - Create(parent, message, caption, n, choices, - (void**)clientData, style, pos); - } - - wxDEPRECATED_CONSTRUCTOR - ( - wxSingleChoiceDialog(wxWindow *parent, - const wxString& message, - const wxString& caption, - const wxArrayString& choices, - char **clientData, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition) - ) - { - Create(parent, message, caption, choices, - (void**)clientData, style, pos); - } - - wxDEPRECATED_INLINE - ( - bool Create(wxWindow *parent, - const wxString& message, - const wxString& caption, - int n, - const wxString *choices, - char **clientData, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition), - return Create(parent, message, caption, n, choices, - (void**)clientData, style, pos); - ) - - wxDEPRECATED_INLINE - ( - bool Create(wxWindow *parent, - const wxString& message, - const wxString& caption, - const wxArrayString& choices, - char **clientData, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition), - return Create(parent, message, caption, choices, - (void**)clientData, style, pos); - ) - - // NB: no need to make it return wxChar, it's untyped - wxDEPRECATED_ACCESSOR - ( - char* GetSelectionClientData() const, - (char*)GetSelectionData() - ) -#endif // WXWIN_COMPATIBILITY_2_8 - - // implementation from now on - void OnOK(wxCommandEvent& event); - void OnListBoxDClick(wxCommandEvent& event); - -protected: - int m_selection; - wxString m_stringSelection; - - void DoChoice(); - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxSingleChoiceDialog); - wxDECLARE_EVENT_TABLE(); -}; - -// ---------------------------------------------------------------------------- -// wxMultiChoiceDialog: a dialog with multi selection listbox -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMultiChoiceDialog : public wxAnyChoiceDialog -{ -public: - wxMultiChoiceDialog() { } - - wxMultiChoiceDialog(wxWindow *parent, - const wxString& message, - const wxString& caption, - int n, - const wxString *choices, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition) - { - (void)Create(parent, message, caption, n, choices, style, pos); - } - wxMultiChoiceDialog(wxWindow *parent, - const wxString& message, - const wxString& caption, - const wxArrayString& choices, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition) - { - (void)Create(parent, message, caption, choices, style, pos); - } - - bool Create(wxWindow *parent, - const wxString& message, - const wxString& caption, - int n, - const wxString *choices, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition); - bool Create(wxWindow *parent, - const wxString& message, - const wxString& caption, - const wxArrayString& choices, - long style = wxCHOICEDLG_STYLE, - const wxPoint& pos = wxDefaultPosition); - - void SetSelections(const wxArrayInt& selections); - wxArrayInt GetSelections() const { return m_selections; } - - // implementation from now on - virtual bool TransferDataFromWindow() wxOVERRIDE; - -protected: -#if wxUSE_CHECKLISTBOX - virtual wxListBoxBase *CreateList(int n, - const wxString *choices, - long styleLbox) wxOVERRIDE; -#endif // wxUSE_CHECKLISTBOX - - wxArrayInt m_selections; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxMultiChoiceDialog); -}; - -// ---------------------------------------------------------------------------- -// wrapper functions which can be used to get selection(s) from the user -// ---------------------------------------------------------------------------- - -// get the user selection as a string -WXDLLIMPEXP_CORE wxString wxGetSingleChoice(const wxString& message, - const wxString& caption, - const wxArrayString& choices, - wxWindow *parent = NULL, - int x = wxDefaultCoord, - int y = wxDefaultCoord, - bool centre = true, - int width = wxCHOICE_WIDTH, - int height = wxCHOICE_HEIGHT, - int initialSelection = 0); - -WXDLLIMPEXP_CORE wxString wxGetSingleChoice(const wxString& message, - const wxString& caption, - int n, const wxString *choices, - wxWindow *parent = NULL, - int x = wxDefaultCoord, - int y = wxDefaultCoord, - bool centre = true, - int width = wxCHOICE_WIDTH, - int height = wxCHOICE_HEIGHT, - int initialSelection = 0); - -WXDLLIMPEXP_CORE wxString wxGetSingleChoice(const wxString& message, - const wxString& caption, - const wxArrayString& choices, - int initialSelection, - wxWindow *parent = NULL); - -WXDLLIMPEXP_CORE wxString wxGetSingleChoice(const wxString& message, - const wxString& caption, - int n, const wxString *choices, - int initialSelection, - wxWindow *parent = NULL); - -// Same as above but gets position in list of strings, instead of string, -// or -1 if no selection -WXDLLIMPEXP_CORE int wxGetSingleChoiceIndex(const wxString& message, - const wxString& caption, - const wxArrayString& choices, - wxWindow *parent = NULL, - int x = wxDefaultCoord, - int y = wxDefaultCoord, - bool centre = true, - int width = wxCHOICE_WIDTH, - int height = wxCHOICE_HEIGHT, - int initialSelection = 0); - -WXDLLIMPEXP_CORE int wxGetSingleChoiceIndex(const wxString& message, - const wxString& caption, - int n, const wxString *choices, - wxWindow *parent = NULL, - int x = wxDefaultCoord, - int y = wxDefaultCoord, - bool centre = true, - int width = wxCHOICE_WIDTH, - int height = wxCHOICE_HEIGHT, - int initialSelection = 0); - -WXDLLIMPEXP_CORE int wxGetSingleChoiceIndex(const wxString& message, - const wxString& caption, - const wxArrayString& choices, - int initialSelection, - wxWindow *parent = NULL); - -WXDLLIMPEXP_CORE int wxGetSingleChoiceIndex(const wxString& message, - const wxString& caption, - int n, const wxString *choices, - int initialSelection, - wxWindow *parent = NULL); - -// Return client data instead or NULL if canceled -WXDLLIMPEXP_CORE void* wxGetSingleChoiceData(const wxString& message, - const wxString& caption, - const wxArrayString& choices, - void **client_data, - wxWindow *parent = NULL, - int x = wxDefaultCoord, - int y = wxDefaultCoord, - bool centre = true, - int width = wxCHOICE_WIDTH, - int height = wxCHOICE_HEIGHT, - int initialSelection = 0); - -WXDLLIMPEXP_CORE void* wxGetSingleChoiceData(const wxString& message, - const wxString& caption, - int n, const wxString *choices, - void **client_data, - wxWindow *parent = NULL, - int x = wxDefaultCoord, - int y = wxDefaultCoord, - bool centre = true, - int width = wxCHOICE_WIDTH, - int height = wxCHOICE_HEIGHT, - int initialSelection = 0); - -WXDLLIMPEXP_CORE void* wxGetSingleChoiceData(const wxString& message, - const wxString& caption, - const wxArrayString& choices, - void **client_data, - int initialSelection, - wxWindow *parent = NULL); - - -WXDLLIMPEXP_CORE void* wxGetSingleChoiceData(const wxString& message, - const wxString& caption, - int n, const wxString *choices, - void **client_data, - int initialSelection, - wxWindow *parent = NULL); - -// fill the array with the indices of the chosen items, it will be empty -// if no items were selected or Cancel was pressed - return the number of -// selections or -1 if cancelled -WXDLLIMPEXP_CORE int wxGetSelectedChoices(wxArrayInt& selections, - const wxString& message, - const wxString& caption, - int n, const wxString *choices, - wxWindow *parent = NULL, - int x = wxDefaultCoord, - int y = wxDefaultCoord, - bool centre = true, - int width = wxCHOICE_WIDTH, - int height = wxCHOICE_HEIGHT); - -WXDLLIMPEXP_CORE int wxGetSelectedChoices(wxArrayInt& selections, - const wxString& message, - const wxString& caption, - const wxArrayString& choices, - wxWindow *parent = NULL, - int x = wxDefaultCoord, - int y = wxDefaultCoord, - bool centre = true, - int width = wxCHOICE_WIDTH, - int height = wxCHOICE_HEIGHT); - -#if WXWIN_COMPATIBILITY_2_8 -// fill the array with the indices of the chosen items, it will be empty -// if no items were selected or Cancel was pressed - return the number of -// selections -wxDEPRECATED( WXDLLIMPEXP_CORE size_t wxGetMultipleChoices(wxArrayInt& selections, - const wxString& message, - const wxString& caption, - int n, const wxString *choices, - wxWindow *parent = NULL, - int x = wxDefaultCoord, - int y = wxDefaultCoord, - bool centre = true, - int width = wxCHOICE_WIDTH, - int height = wxCHOICE_HEIGHT) ); - -wxDEPRECATED( WXDLLIMPEXP_CORE size_t wxGetMultipleChoices(wxArrayInt& selections, - const wxString& message, - const wxString& caption, - const wxArrayString& choices, - wxWindow *parent = NULL, - int x = wxDefaultCoord, - int y = wxDefaultCoord, - bool centre = true, - int width = wxCHOICE_WIDTH, - int height = wxCHOICE_HEIGHT)); -#endif // WXWIN_COMPATIBILITY_2_8 - -#endif // _WX_GENERIC_CHOICDGG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/clrpickerg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/clrpickerg.h deleted file mode 100644 index fd12c0e6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/clrpickerg.h +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/clrpickerg.h -// Purpose: wxGenericColourButton header -// Author: Francesco Montorsi (based on Vadim Zeitlin's code) -// Modified by: -// Created: 14/4/2006 -// Copyright: (c) Vadim Zeitlin, Francesco Montorsi -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CLRPICKER_H_ -#define _WX_CLRPICKER_H_ - -#include "wx/button.h" -#include "wx/bmpbuttn.h" -#include "wx/colourdata.h" - -//----------------------------------------------------------------------------- -// wxGenericColourButton: a button which brings up a wxColourDialog -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGenericColourButton : public wxBitmapButton, - public wxColourPickerWidgetBase -{ -public: - wxGenericColourButton() {} - wxGenericColourButton(wxWindow *parent, - wxWindowID id, - const wxColour& col = *wxBLACK, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCLRBTN_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxColourPickerWidgetNameStr) - { - Create(parent, id, col, pos, size, style, validator, name); - } - - virtual ~wxGenericColourButton() {} - - -public: // API extensions specific for wxGenericColourButton - - // user can override this to init colour data in a different way - virtual void InitColourData(); - - // returns the colour data shown in wxColourDialog - wxColourData *GetColourData() { return &ms_data; } - - -public: - - bool Create(wxWindow *parent, - wxWindowID id, - const wxColour& col = *wxBLACK, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCLRBTN_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxColourPickerWidgetNameStr); - - void OnButtonClick(wxCommandEvent &); - - -protected: - wxBitmap m_bitmap; - - wxSize DoGetBestSize() const; - - void UpdateColour(); - - // the colour data shown in wxColourPickerCtrlGeneric - // controls. This member is static so that all colour pickers - // in the program share the same set of custom colours. - static wxColourData ms_data; - -private: - wxDECLARE_DYNAMIC_CLASS(wxGenericColourButton); -}; - - -#endif // _WX_CLRPICKER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/collheaderctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/collheaderctrl.h deleted file mode 100644 index b2dd3582..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/collheaderctrl.h +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/collheaderctrl.h -// Purpose: wxGenericCollapsibleHeaderCtrl -// Author: Tobias Taschner -// Created: 2015-09-19 -// Copyright: (c) 2015 wxWidgets development team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_COLLAPSIBLEHEADER_CTRL_H_ -#define _WX_GENERIC_COLLAPSIBLEHEADER_CTRL_H_ - -class WXDLLIMPEXP_CORE wxGenericCollapsibleHeaderCtrl - : public wxCollapsibleHeaderCtrlBase -{ -public: - wxGenericCollapsibleHeaderCtrl() { Init(); } - - wxGenericCollapsibleHeaderCtrl(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxBORDER_NONE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCollapsibleHeaderCtrlNameStr) - { - Init(); - - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxBORDER_NONE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCollapsibleHeaderCtrlNameStr); - - virtual void SetCollapsed(bool collapsed = true) wxOVERRIDE; - - virtual bool IsCollapsed() const wxOVERRIDE - { return m_collapsed; } - -protected: - - virtual wxSize DoGetBestClientSize() const wxOVERRIDE; - -private: - bool m_collapsed; - bool m_inWindow; - bool m_mouseDown; - - void Init(); - - void OnPaint(wxPaintEvent& event); - - // Handle set/kill focus events (invalidate for painting focus rect) - void OnFocus(wxFocusEvent& event); - - // Handle click - void OnLeftUp(wxMouseEvent& event); - - // Handle pressed state - void OnLeftDown(wxMouseEvent& event); - - // Handle current state - void OnEnterWindow(wxMouseEvent& event); - - void OnLeaveWindow(wxMouseEvent& event); - - // Toggle on space - void OnChar(wxKeyEvent& event); - - void DoSetCollapsed(bool collapsed); - - wxDECLARE_NO_COPY_CLASS(wxGenericCollapsibleHeaderCtrl); -}; - - -#endif // _WX_GENERIC_COLLAPSIBLEHEADER_CTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/collpaneg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/collpaneg.h deleted file mode 100644 index 7b14cc1b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/collpaneg.h +++ /dev/null @@ -1,98 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/collpaneg.h -// Purpose: wxGenericCollapsiblePane -// Author: Francesco Montorsi -// Modified by: -// Created: 8/10/2006 -// Copyright: (c) Francesco Montorsi -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLLAPSABLE_PANE_H_GENERIC_ -#define _WX_COLLAPSABLE_PANE_H_GENERIC_ - -// forward declared -class WXDLLIMPEXP_FWD_CORE wxCollapsibleHeaderCtrl; -class WXDLLIMPEXP_FWD_CORE wxStaticLine; - -#include "wx/containr.h" - -// ---------------------------------------------------------------------------- -// wxGenericCollapsiblePane -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGenericCollapsiblePane : - public wxNavigationEnabled -{ -public: - wxGenericCollapsiblePane() { Init(); } - - wxGenericCollapsiblePane(wxWindow *parent, - wxWindowID winid, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCP_DEFAULT_STYLE, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxCollapsiblePaneNameStr) - { - Init(); - - Create(parent, winid, label, pos, size, style, val, name); - } - - virtual ~wxGenericCollapsiblePane(); - - bool Create(wxWindow *parent, - wxWindowID winid, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCP_DEFAULT_STYLE, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxCollapsiblePaneNameStr); - - // public wxCollapsiblePane API - virtual void Collapse(bool collapse = true) wxOVERRIDE; - virtual void SetLabel(const wxString &label) wxOVERRIDE; - - virtual bool IsCollapsed() const wxOVERRIDE - { return m_pPane==NULL || !m_pPane->IsShown(); } - virtual wxWindow *GetPane() const wxOVERRIDE - { return m_pPane; } - virtual wxString GetLabel() const wxOVERRIDE; - - virtual bool Layout() wxOVERRIDE; - - - // for the generic collapsible pane only: - wxControl* GetControlWidget() const - { return (wxControl*)m_pButton; } - - // implementation only, don't use - void OnStateChange(const wxSize& sizeNew); - -protected: - // overridden methods - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - int GetBorder() const; - - // child controls - wxCollapsibleHeaderCtrl *m_pButton; - wxStaticLine *m_pStaticLine; - wxWindow *m_pPane; - wxSizer *m_sz; - -private: - void Init(); - - // event handlers - void OnButton(wxCommandEvent &ev); - void OnSize(wxSizeEvent &ev); - - wxDECLARE_DYNAMIC_CLASS(wxGenericCollapsiblePane); - wxDECLARE_EVENT_TABLE(); -}; - -#endif // _WX_COLLAPSABLE_PANE_H_GENERIC_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/colour.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/colour.h deleted file mode 100644 index 8ef0ccb7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/colour.h +++ /dev/null @@ -1,71 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/colour.h -// Purpose: wxColour class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_COLOUR_H_ -#define _WX_GENERIC_COLOUR_H_ - -#include "wx/object.h" - -// Colour -class WXDLLIMPEXP_CORE wxColour: public wxColourBase -{ -public: - // constructors - // ------------ - DEFINE_STD_WXCOLOUR_CONSTRUCTORS - - // copy ctors and assignment operators - wxColour(const wxColour& col) - { - *this = col; - } - - wxColour& operator=(const wxColour& col); - - // accessors - virtual bool IsOk() const { return m_isInit; } - - unsigned char Red() const { return m_red; } - unsigned char Green() const { return m_green; } - unsigned char Blue() const { return m_blue; } - unsigned char Alpha() const { return m_alpha; } - - // comparison - bool operator==(const wxColour& colour) const - { - return (m_red == colour.m_red && - m_green == colour.m_green && - m_blue == colour.m_blue && - m_alpha == colour.m_alpha && - m_isInit == colour.m_isInit); - } - - bool operator!=(const wxColour& colour) const { return !(*this == colour); } - -protected: - - // Helper function - void Init(); - - virtual void - InitRGBA(unsigned char r, unsigned char g, unsigned char b, unsigned char a); - -private: - bool m_isInit; - unsigned char m_red; - unsigned char m_blue; - unsigned char m_green; - unsigned char m_alpha; - -private: - wxDECLARE_DYNAMIC_CLASS(wxColour); -}; - -#endif // _WX_GENERIC_COLOUR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/colrdlgg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/colrdlgg.h deleted file mode 100644 index 10657529..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/colrdlgg.h +++ /dev/null @@ -1,133 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/colrdlgg.h -// Purpose: wxGenericColourDialog -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLORDLGG_H_ -#define _WX_COLORDLGG_H_ - -#include "wx/gdicmn.h" -#include "wx/dialog.h" - -#if wxUSE_SLIDER - class WXDLLIMPEXP_FWD_CORE wxSlider; -#endif // wxUSE_SLIDER - -// Preview with opacity is possible only if wxGCDC and wxStaticBitmap are -// available and currently it only works in wxOSX and wxMSW as it uses wxBitmap -// UseAlpha() and HasAlpha() methods which only these ports provide. -#define wxCLRDLGG_USE_PREVIEW_WITH_ALPHA \ - ((wxUSE_GRAPHICS_CONTEXT && wxUSE_STATBMP) && \ - (defined(__WXMSW__) || defined(__WXOSX__))) - -#if wxCLRDLGG_USE_PREVIEW_WITH_ALPHA -class wxStaticBitmap; -#endif // wxCLRDLGG_USE_PREVIEW_WITH_ALPHA - -class WXDLLIMPEXP_CORE wxGenericColourDialog : public wxDialog -{ -public: - wxGenericColourDialog(); - wxGenericColourDialog(wxWindow *parent, - wxColourData *data = NULL); - virtual ~wxGenericColourDialog(); - - bool Create(wxWindow *parent, wxColourData *data = NULL); - - wxColourData &GetColourData() { return m_colourData; } - - virtual int ShowModal() wxOVERRIDE; - - // Internal functions - void OnMouseEvent(wxMouseEvent& event); - void OnPaint(wxPaintEvent& event); -#if wxCLRDLGG_USE_PREVIEW_WITH_ALPHA - void OnCustomColourMouseClick(wxMouseEvent& event); -#endif // wxCLRDLGG_USE_PREVIEW_WITH_ALPHA - - virtual void CalculateMeasurements(); - virtual void CreateWidgets(); - virtual void InitializeColours(); - - virtual void PaintBasicColours(wxDC& dc); -#if !wxCLRDLGG_USE_PREVIEW_WITH_ALPHA - virtual void PaintCustomColours(wxDC& dc, int clrIndex = -1); -#endif // !wxCLRDLGG_USE_PREVIEW_WITH_ALPHA - virtual void PaintCustomColour(wxDC& dc); - virtual void PaintHighlight(wxDC& dc, bool draw); - - virtual void OnBasicColourClick(int which); - virtual void OnCustomColourClick(int which); - - void OnAddCustom(wxCommandEvent& event); - -#if wxUSE_SLIDER - void OnRedSlider(wxCommandEvent& event); - void OnGreenSlider(wxCommandEvent& event); - void OnBlueSlider(wxCommandEvent& event); - void OnAlphaSlider(wxCommandEvent& event); -#endif // wxUSE_SLIDER - - void OnCloseWindow(wxCloseEvent& event); - -#if wxCLRDLGG_USE_PREVIEW_WITH_ALPHA - void DoPreviewBitmap(wxBitmap& bmp, const wxColour& colour); -#endif // wxCLRDLGG_USE_PREVIEW_WITH_ALPHA - -protected: - wxColourData m_colourData; - - // Area reserved for grids of colours - wxRect m_standardColoursRect; - wxRect m_customColoursRect; - wxRect m_singleCustomColourRect; - - // Size of each colour rectangle - wxSize m_smallRectangleSize; - - // Grid spacing (between rectangles) - int m_gridSpacing; - - // Section spacing (between left and right halves of dialog box) - int m_sectionSpacing; - - // 48 'standard' colours - wxColour m_standardColours[48]; - - // 16 'custom' colours - wxColour m_customColours[16]; - - // Which colour is selected? An index into one of the two areas. - int m_colourSelection; - int m_whichKind; // 1 for standard colours, 2 for custom colours, - -#if wxUSE_SLIDER - wxSlider *m_redSlider; - wxSlider *m_greenSlider; - wxSlider *m_blueSlider; - wxSlider *m_alphaSlider; -#endif // wxUSE_SLIDER -#if wxCLRDLGG_USE_PREVIEW_WITH_ALPHA - // Bitmap to preview selected colour (with alpha channel) - wxStaticBitmap *m_customColourBmp; - // Bitmaps to preview custom colours (with alpha channel) - wxStaticBitmap *m_customColoursBmp[16]; -#endif // wxCLRDLGG_USE_PREVIEW_WITH_ALPHA - - int m_buttonY; - - int m_okButtonX; - int m_customButtonX; - - // static bool colourDialogCancelled; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxGenericColourDialog); -}; - -#endif // _WX_COLORDLGG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/combo.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/combo.h deleted file mode 100644 index 92b3ff62..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/combo.h +++ /dev/null @@ -1,170 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/combo.h -// Purpose: Generic wxComboCtrl -// Author: Jaakko Salli -// Modified by: -// Created: Apr-30-2006 -// Copyright: (c) Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_COMBOCTRL_H_ -#define _WX_GENERIC_COMBOCTRL_H_ - -#if wxUSE_COMBOCTRL - -// Only define generic if native doesn't have all the features -#if !defined(wxCOMBOCONTROL_FULLY_FEATURED) - -// ---------------------------------------------------------------------------- -// Generic wxComboCtrl -// ---------------------------------------------------------------------------- - -#if defined(__WXUNIVERSAL__) - -// all actions of single line text controls are supported - -// popup/dismiss the choice window -#define wxACTION_COMBOBOX_POPUP wxT("popup") -#define wxACTION_COMBOBOX_DISMISS wxT("dismiss") - -#endif - -#include "wx/dcbuffer.h" - -extern WXDLLIMPEXP_DATA_CORE(const char) wxComboBoxNameStr[]; - -class WXDLLIMPEXP_CORE wxGenericComboCtrl : public wxComboCtrlBase -{ -public: - // ctors and such - wxGenericComboCtrl() : wxComboCtrlBase() { Init(); } - - wxGenericComboCtrl(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - : wxComboCtrlBase() - { - Init(); - - (void)Create(parent, id, value, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - virtual ~wxGenericComboCtrl(); - - void SetCustomPaintWidth( int width ); - - virtual bool IsKeyPopupToggle(const wxKeyEvent& event) const wxOVERRIDE; - - static int GetFeatures() { return wxComboCtrlFeatures::All; } - -#if defined(__WXUNIVERSAL__) - // we have our own input handler and our own actions - virtual bool PerformAction(const wxControlAction& action, - long numArg = 0l, - const wxString& strArg = wxEmptyString); -#endif - -protected: - - // Dummies for platform-specific wxTextEntry implementations -#if defined(__WXUNIVERSAL__) - // Looks like there's nothing we need to override here -#elif defined(__WXMOTIF__) - virtual WXWidget GetTextWidget() const { return NULL; } -#elif defined(__WXGTK__) -#if defined(__WXGTK20__) - virtual GtkEditable *GetEditable() const wxOVERRIDE { return NULL; } - virtual GtkEntry *GetEntry() const wxOVERRIDE { return NULL; } -#endif -#elif defined(__WXMAC__) - // Looks like there's nothing we need to override here -#endif - - // For better transparent background rendering - virtual bool HasTransparentBackground() wxOVERRIDE - { - #if wxALWAYS_NATIVE_DOUBLE_BUFFER - #ifdef __WXGTK__ - // Sanity check for GTK+ - return IsDoubleBuffered(); - #else - return true; - #endif - #else - return false; - #endif - } - - // Mandatory virtuals - virtual void OnResize() wxOVERRIDE; - - // Event handlers - void OnPaintEvent( wxPaintEvent& event ); - void OnMouseEvent( wxMouseEvent& event ); - -private: - void Init(); - - wxDECLARE_EVENT_TABLE(); - - wxDECLARE_DYNAMIC_CLASS(wxGenericComboCtrl); -}; - - -#ifndef _WX_COMBOCONTROL_H_ - -// If native wxComboCtrl was not defined, then prepare a simple -// front-end so that wxRTTI works as expected. - -class WXDLLIMPEXP_CORE wxComboCtrl : public wxGenericComboCtrl -{ -public: - wxComboCtrl() : wxGenericComboCtrl() {} - - wxComboCtrl(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - : wxGenericComboCtrl() - { - (void)Create(parent, id, value, pos, size, style, validator, name); - } - - virtual ~wxComboCtrl() {} - -protected: - -private: - wxDECLARE_DYNAMIC_CLASS(wxComboCtrl); -}; - -#endif // _WX_COMBOCONTROL_H_ - -#else - -#define wxGenericComboCtrl wxComboCtrl - -#endif // !defined(wxCOMBOCONTROL_FULLY_FEATURED) - -#endif // wxUSE_COMBOCTRL -#endif - // _WX_GENERIC_COMBOCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/ctrlsub.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/ctrlsub.h deleted file mode 100644 index 0dd113dc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/ctrlsub.h +++ /dev/null @@ -1,122 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/ctrlsub.h -// Purpose: common functionality of wxItemContainer-derived controls -// Author: Vadim Zeitlin -// Created: 2007-07-25 -// Copyright: (c) 2007 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_CTRLSUB_H_ -#define _WX_GENERIC_CTRLSUB_H_ - -#include "wx/dynarray.h" - -// ---------------------------------------------------------------------------- -// wxControlWithItemsGeneric: generic implementation of item client data -// ---------------------------------------------------------------------------- - -class wxControlWithItemsGeneric : public wxControlWithItemsBase -{ -public: - wxControlWithItemsGeneric() { } - - virtual void DoInitItemClientData() - { - m_itemsClientData.resize(GetCount(), NULL); - } - - virtual void DoSetItemClientData(unsigned int n, void *clientData) - { - m_itemsClientData[n] = clientData; - } - - virtual void *DoGetItemClientData(unsigned int n) const - { - return m_itemsClientData[n]; - } - - virtual void DoClear() { m_itemsClientData.clear(); } - virtual void DoDeleteOneItem(unsigned int pos) - { - if ( HasClientData() ) - m_itemsClientData.RemoveAt(pos); - } - -protected: - // preallocate memory for numItems new items: this should be called from - // the derived classes DoInsertItems() to speed up appending big numbers of - // items with client data; it is safe to call even if we don't use client - // data at all and does nothing in this case - void AllocClientData(unsigned int numItems) - { - if ( HasClientData() ) - m_itemsClientData.reserve(m_itemsClientData.size() + numItems); - } - - // this must be called by derived classes when a new item is added to the - // control to add storage for the corresponding client data pointer (before - // inserting many items, call AllocClientData()) - void InsertNewItemClientData(unsigned int pos, - void **clientData, - unsigned int n, - wxClientDataType type) - { - if ( InitClientDataIfNeeded(type) ) - m_itemsClientData.Insert(clientData[n], pos); - } - - // the same as InsertNewItemClientData() but for numItems consecutive items - // (this can only be used if the control doesn't support sorting as - // otherwise the items positions wouldn't be consecutive any more) - void InsertNewItemsClientData(unsigned int pos, - unsigned int numItems, - void **clientData, - wxClientDataType type) - { - if ( InitClientDataIfNeeded(type) ) - { - // it's more efficient to insert everything at once and then update - // for big number of items to avoid moving the array contents - // around (which would result in O(N^2) algorithm) - m_itemsClientData.Insert(NULL, pos, numItems); - - for ( unsigned int n = 0; n < numItems; ++n, ++pos ) - m_itemsClientData[pos] = clientData[n]; - } - } - - - // vector containing the client data pointers: it is either empty (if - // client data is not used) or has the same number of elements as the - // control - wxArrayPtrVoid m_itemsClientData; - -private: - // initialize client data if needed, return false if we don't have any - // client data and true otherwise - bool InitClientDataIfNeeded(wxClientDataType type) - { - if ( !HasClientData() ) - { - if ( type == wxClientData_None ) - { - // we didn't have the client data before and are not asked to - // store it now neither - return false; - } - - // this is the first time client data is used with this control - DoInitItemClientData(); - SetClientDataType(type); - } - //else: we already have client data - - return true; - } - - wxDECLARE_NO_COPY_CLASS(wxControlWithItemsGeneric); -}; - -#endif // _WX_GENERIC_CTRLSUB_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/custombgwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/custombgwin.h deleted file mode 100644 index d2743130..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/custombgwin.h +++ /dev/null @@ -1,98 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/custombgwin.h -// Purpose: Generic implementation of wxCustomBackgroundWindow. -// Author: Vadim Zeitlin -// Created: 2011-10-10 -// Copyright: (c) 2011 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_CUSTOMBGWIN_H_ -#define _WX_GENERIC_CUSTOMBGWIN_H_ - -#include "wx/bitmap.h" -#include "wx/dc.h" -#include "wx/event.h" -#include "wx/window.h" - -// A helper to avoid template bloat: this class contains all type-independent -// code of wxCustomBackgroundWindow<> below. -class wxCustomBackgroundWindowGenericBase : public wxCustomBackgroundWindowBase -{ -public: - wxCustomBackgroundWindowGenericBase() { } - -protected: - void DoEraseBackground(wxEraseEvent& event, wxWindow* win) - { - wxDC& dc = *event.GetDC(); - - const wxSize clientSize = win->GetClientSize(); - const wxSize bitmapSize = m_bitmapBg.GetSize(); - - for ( int x = 0; x < clientSize.x; x += bitmapSize.x ) - { - for ( int y = 0; y < clientSize.y; y += bitmapSize.y ) - { - dc.DrawBitmap(m_bitmapBg, x, y); - } - } - } - - - // The bitmap used for painting the background if valid. - wxBitmap m_bitmapBg; - - - wxDECLARE_NO_COPY_CLASS(wxCustomBackgroundWindowGenericBase); -}; - -// ---------------------------------------------------------------------------- -// wxCustomBackgroundWindow -// ---------------------------------------------------------------------------- - -template -class wxCustomBackgroundWindow : public W, - public wxCustomBackgroundWindowGenericBase -{ -public: - typedef W BaseWindowClass; - - wxCustomBackgroundWindow() { } - -protected: - virtual void DoSetBackgroundBitmap(const wxBitmap& bmp) - { - m_bitmapBg = bmp; - - if ( m_bitmapBg.IsOk() ) - { - BaseWindowClass::Connect - ( - wxEVT_ERASE_BACKGROUND, - wxEraseEventHandler(wxCustomBackgroundWindow::OnEraseBackground) - ); - } - else - { - BaseWindowClass::Disconnect - ( - wxEVT_ERASE_BACKGROUND, - wxEraseEventHandler(wxCustomBackgroundWindow::OnEraseBackground) - ); - } - } - -private: - // Event handler for erasing the background which is only used when we have - // a valid background bitmap. - void OnEraseBackground(wxEraseEvent& event) - { - DoEraseBackground(event, this); - } - - - wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxCustomBackgroundWindow, W); -}; - -#endif // _WX_GENERIC_CUSTOMBGWIN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dataview.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dataview.h deleted file mode 100644 index c4ec5012..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dataview.h +++ /dev/null @@ -1,309 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/dataview.h -// Purpose: wxDataViewCtrl generic implementation header -// Author: Robert Roebling -// Modified By: Bo Yang -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GENERICDATAVIEWCTRLH__ -#define __GENERICDATAVIEWCTRLH__ - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" -#include "wx/scrolwin.h" -#include "wx/icon.h" -#include "wx/vector.h" - -class WXDLLIMPEXP_FWD_ADV wxDataViewMainWindow; -class WXDLLIMPEXP_FWD_ADV wxDataViewHeaderWindow; - -// --------------------------------------------------------- -// wxDataViewColumn -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewColumn : public wxDataViewColumnBase -{ -public: - wxDataViewColumn(const wxString& title, - wxDataViewRenderer *renderer, - unsigned int model_column, - int width = wxDVC_DEFAULT_WIDTH, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE) - : wxDataViewColumnBase(renderer, model_column), - m_title(title) - { - Init(width, align, flags); - } - - wxDataViewColumn(const wxBitmap& bitmap, - wxDataViewRenderer *renderer, - unsigned int model_column, - int width = wxDVC_DEFAULT_WIDTH, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE) - : wxDataViewColumnBase(bitmap, renderer, model_column) - { - Init(width, align, flags); - } - - // implement wxHeaderColumnBase methods - virtual void SetTitle(const wxString& title) { m_title = title; UpdateDisplay(); } - virtual wxString GetTitle() const { return m_title; } - - virtual void SetWidth(int width) { m_width = width; UpdateDisplay(); } - virtual int GetWidth() const; - - virtual void SetMinWidth(int minWidth) { m_minWidth = minWidth; UpdateDisplay(); } - virtual int GetMinWidth() const { return m_minWidth; } - - virtual void SetAlignment(wxAlignment align) { m_align = align; UpdateDisplay(); } - virtual wxAlignment GetAlignment() const { return m_align; } - - virtual void SetFlags(int flags) { m_flags = flags; UpdateDisplay(); } - virtual int GetFlags() const { return m_flags; } - - virtual bool IsSortKey() const { return m_sort; } - - virtual void UnsetAsSortKey(); - - virtual void SetSortOrder(bool ascending); - - virtual bool IsSortOrderAscending() const { return m_sortAscending; } - - virtual void SetBitmap( const wxBitmap& bitmap ) { wxDataViewColumnBase::SetBitmap(bitmap); UpdateDisplay(); } - - -private: - // common part of all ctors - void Init(int width, wxAlignment align, int flags); - - void UpdateDisplay(); - - wxString m_title; - int m_width, - m_minWidth; - wxAlignment m_align; - int m_flags; - bool m_sort, - m_sortAscending; - - friend class wxDataViewHeaderWindowBase; - friend class wxDataViewHeaderWindow; - friend class wxDataViewHeaderWindowMSW; -}; - -// --------------------------------------------------------- -// wxDataViewCtrl -// --------------------------------------------------------- - -WX_DECLARE_LIST_WITH_DECL(wxDataViewColumn, wxDataViewColumnList, - class WXDLLIMPEXP_ADV); - -class WXDLLIMPEXP_ADV wxDataViewCtrl : public wxDataViewCtrlBase, - public wxScrollHelper -{ - friend class wxDataViewMainWindow; - friend class wxDataViewHeaderWindowBase; - friend class wxDataViewHeaderWindow; - friend class wxDataViewHeaderWindowMSW; - friend class wxDataViewColumn; - -public: - wxDataViewCtrl() : wxScrollHelper(this) - { - Init(); - } - - wxDataViewCtrl( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDataViewCtrlNameStr ) - : wxScrollHelper(this) - { - Create(parent, id, pos, size, style, validator, name); - } - - virtual ~wxDataViewCtrl(); - - void Init(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDataViewCtrlNameStr); - - virtual bool AssociateModel( wxDataViewModel *model ); - - virtual bool AppendColumn( wxDataViewColumn *col ); - virtual bool PrependColumn( wxDataViewColumn *col ); - virtual bool InsertColumn( unsigned int pos, wxDataViewColumn *col ); - - virtual void DoSetExpanderColumn(); - virtual void DoSetIndent(); - - virtual unsigned int GetColumnCount() const; - virtual wxDataViewColumn* GetColumn( unsigned int pos ) const; - virtual bool DeleteColumn( wxDataViewColumn *column ); - virtual bool ClearColumns(); - virtual int GetColumnPosition( const wxDataViewColumn *column ) const; - - virtual wxDataViewColumn *GetSortingColumn() const; - virtual wxVector GetSortingColumns() const; - - virtual int GetSelectedItemsCount() const; - virtual int GetSelections( wxDataViewItemArray & sel ) const; - virtual void SetSelections( const wxDataViewItemArray & sel ); - virtual void Select( const wxDataViewItem & item ); - virtual void Unselect( const wxDataViewItem & item ); - virtual bool IsSelected( const wxDataViewItem & item ) const; - - virtual void SelectAll(); - virtual void UnselectAll(); - - virtual void EnsureVisible( const wxDataViewItem & item, - const wxDataViewColumn *column = NULL ); - virtual void HitTest( const wxPoint & point, wxDataViewItem & item, - wxDataViewColumn* &column ) const; - virtual wxRect GetItemRect( const wxDataViewItem & item, - const wxDataViewColumn *column = NULL ) const; - - virtual bool SetRowHeight( int rowHeight ); - - virtual void Expand( const wxDataViewItem & item ); - virtual void Collapse( const wxDataViewItem & item ); - virtual bool IsExpanded( const wxDataViewItem & item ) const; - - virtual void SetFocus(); - - virtual bool SetFont(const wxFont & font); - - virtual bool AllowMultiColumnSort(bool allow); - virtual bool IsMultiColumnSortAllowed() { return m_allowMultiColumnSort; } - virtual void ToggleSortByColumn(int column); - -#if wxUSE_DRAG_AND_DROP - virtual bool EnableDragSource( const wxDataFormat &format ); - virtual bool EnableDropTarget( const wxDataFormat &format ); -#endif // wxUSE_DRAG_AND_DROP - - virtual wxBorder GetDefaultBorder() const; - - virtual void EditItem(const wxDataViewItem& item, const wxDataViewColumn *column); - - // These methods are specific to generic wxDataViewCtrl implementation and - // should not be used in portable code. - wxColour GetAlternateRowColour() const { return m_alternateRowColour; } - void SetAlternateRowColour(const wxColour& colour); - -protected: - virtual void EnsureVisible( int row, int column ); - - // Notice that row here may be invalid (i.e. >= GetRowCount()), this is not - // an error and this function simply returns an invalid item in this case. - virtual wxDataViewItem GetItemByRow( unsigned int row ) const; - virtual int GetRowByItem( const wxDataViewItem & item ) const; - - // Mark the column as being used or not for sorting. - void UseColumnForSorting(int idx); - void DontUseColumnForSorting(int idx); - - // Return true if the given column is sorted - bool IsColumnSorted(int idx) const; - - // Reset all columns currently used for sorting. - void ResetAllSortColumns(); - - virtual void DoEnableSystemTheme(bool enable, wxWindow* window) wxOVERRIDE; - -public: // utility functions not part of the API - - // returns the "best" width for the idx-th column - unsigned int GetBestColumnWidth(int idx) const; - - // called by header window after reorder - void ColumnMoved( wxDataViewColumn* col, unsigned int new_pos ); - - // update the display after a change to an individual column - void OnColumnChange(unsigned int idx); - - // update after a change to the number of columns - void OnColumnsCountChanged(); - - wxWindow *GetMainWindow() { return (wxWindow*) m_clientArea; } - - // return the index of the given column in m_cols - int GetColumnIndex(const wxDataViewColumn *column) const; - - // Return the index of the column having the given model index. - int GetModelColumnIndex(unsigned int model_column) const; - - // return the column displayed at the given position in the control - wxDataViewColumn *GetColumnAt(unsigned int pos) const; - - virtual wxDataViewColumn *GetCurrentColumn() const; - - virtual void OnInternalIdle(); - -private: - virtual wxDataViewItem DoGetCurrentItem() const; - virtual void DoSetCurrentItem(const wxDataViewItem& item); - - void InvalidateColBestWidths(); - void InvalidateColBestWidth(int idx); - void UpdateColWidths(); - - wxDataViewColumnList m_cols; - // cached column best widths information, values are for - // respective columns from m_cols and the arrays have same size - struct CachedColWidthInfo - { - CachedColWidthInfo() : width(0), dirty(true) {} - int width; // cached width or 0 if not computed - bool dirty; // column was invalidated, header needs updating - }; - wxVector m_colsBestWidths; - // This indicates that at least one entry in m_colsBestWidths has 'dirty' - // flag set. It's cheaper to check one flag in OnInternalIdle() than to - // iterate over m_colsBestWidths to check if anything needs to be done. - bool m_colsDirty; - - wxDataViewModelNotifier *m_notifier; - wxDataViewMainWindow *m_clientArea; - wxDataViewHeaderWindow *m_headerArea; - - // user defined color to draw row lines, may be invalid - wxColour m_alternateRowColour; - - // columns indices used for sorting, empty if nothing is sorted - wxVector m_sortingColumnIdxs; - - // if true, allow sorting by more than one column - bool m_allowMultiColumnSort; - -private: - void OnSize( wxSizeEvent &event ); - virtual wxSize GetSizeAvailableForScrollTarget(const wxSize& size); - - // we need to return a special WM_GETDLGCODE value to process just the - // arrows but let the other navigation characters through -#ifdef __WXMSW__ - virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); -#endif // __WXMSW__ - - WX_FORWARD_TO_SCROLL_HELPER() - -private: - wxDECLARE_DYNAMIC_CLASS(wxDataViewCtrl); - wxDECLARE_NO_COPY_CLASS(wxDataViewCtrl); - wxDECLARE_EVENT_TABLE(); -}; - - -#endif // __GENERICDATAVIEWCTRLH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/datectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/datectrl.h deleted file mode 100644 index 61a4ad18..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/datectrl.h +++ /dev/null @@ -1,96 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/datectrl.h -// Purpose: generic wxDatePickerCtrl implementation -// Author: Andreas Pflug -// Modified by: -// Created: 2005-01-19 -// Copyright: (c) 2005 Andreas Pflug -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_DATECTRL_H_ -#define _WX_GENERIC_DATECTRL_H_ - -#include "wx/compositewin.h" - -class WXDLLIMPEXP_FWD_CORE wxComboCtrl; - -class WXDLLIMPEXP_FWD_ADV wxCalendarCtrl; -class WXDLLIMPEXP_FWD_ADV wxCalendarComboPopup; - -class WXDLLIMPEXP_ADV wxDatePickerCtrlGeneric - : public wxCompositeWindow -{ -public: - // creating the control - wxDatePickerCtrlGeneric() { Init(); } - virtual ~wxDatePickerCtrlGeneric(); - wxDatePickerCtrlGeneric(wxWindow *parent, - wxWindowID id, - const wxDateTime& date = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDatePickerCtrlNameStr) - { - Init(); - - (void)Create(parent, id, date, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxDateTime& date = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDatePickerCtrlNameStr); - - // wxDatePickerCtrl methods - void SetValue(const wxDateTime& date) wxOVERRIDE; - wxDateTime GetValue() const wxOVERRIDE; - - bool GetRange(wxDateTime *dt1, wxDateTime *dt2) const wxOVERRIDE; - void SetRange(const wxDateTime &dt1, const wxDateTime &dt2) wxOVERRIDE; - - bool SetDateRange(const wxDateTime& lowerdate = wxDefaultDateTime, - const wxDateTime& upperdate = wxDefaultDateTime); - - // extra methods available only in this (generic) implementation - wxCalendarCtrl *GetCalendar() const; - - - // implementation only from now on - // ------------------------------- - - // overridden base class methods - virtual bool Destroy() wxOVERRIDE; - -protected: - virtual wxSize DoGetBestSize() const wxOVERRIDE; - -private: - void Init(); - - // return the list of the windows composing this one - virtual wxWindowList GetCompositeWindowParts() const wxOVERRIDE; - - void OnText(wxCommandEvent &event); - void OnSize(wxSizeEvent& event); - void OnFocus(wxFocusEvent& event); - -#ifdef __WXOSX_COCOA__ - virtual void OSXGenerateEvent(const wxDateTime& WXUNUSED(dt)) wxOVERRIDE { } -#endif - - wxComboCtrl* m_combo; - wxCalendarComboPopup* m_popup; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxDatePickerCtrlGeneric); -}; - -#endif // _WX_GENERIC_DATECTRL_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dcpsg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dcpsg.h deleted file mode 100644 index 5eb3463e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dcpsg.h +++ /dev/null @@ -1,159 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/dcpsg.h -// Purpose: wxPostScriptDC class -// Author: Julian Smart and others -// Modified by: -// Copyright: (c) Julian Smart and Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCPSG_H_ -#define _WX_DCPSG_H_ - -#include "wx/defs.h" - -#if wxUSE_PRINTING_ARCHITECTURE && wxUSE_POSTSCRIPT - -#include "wx/dc.h" -#include "wx/dcprint.h" -#include "wx/dialog.h" -#include "wx/module.h" -#include "wx/cmndata.h" -#include "wx/strvararg.h" - -//----------------------------------------------------------------------------- -// wxPostScriptDC -//----------------------------------------------------------------------------- - - -class WXDLLIMPEXP_CORE wxPostScriptDC : public wxDC -{ -public: - wxPostScriptDC(); - - // Recommended constructor - wxPostScriptDC(const wxPrintData& printData); - -private: - wxDECLARE_DYNAMIC_CLASS(wxPostScriptDC); -}; - -class WXDLLIMPEXP_CORE wxPostScriptDCImpl : public wxDCImpl -{ -public: - wxPostScriptDCImpl( wxPrinterDC *owner ); - wxPostScriptDCImpl( wxPrinterDC *owner, const wxPrintData& data ); - wxPostScriptDCImpl( wxPostScriptDC *owner ); - wxPostScriptDCImpl( wxPostScriptDC *owner, const wxPrintData& data ); - - void Init(); - - virtual ~wxPostScriptDCImpl(); - - virtual bool Ok() const { return IsOk(); } - virtual bool IsOk() const wxOVERRIDE; - - bool CanDrawBitmap() const wxOVERRIDE { return true; } - - void Clear() wxOVERRIDE; - void SetFont( const wxFont& font ) wxOVERRIDE; - void SetPen( const wxPen& pen ) wxOVERRIDE; - void SetBrush( const wxBrush& brush ) wxOVERRIDE; - void SetLogicalFunction( wxRasterOperationMode function ) wxOVERRIDE; - void SetBackground( const wxBrush& brush ) wxOVERRIDE; - - void DestroyClippingRegion() wxOVERRIDE; - - bool StartDoc(const wxString& message) wxOVERRIDE; - void EndDoc() wxOVERRIDE; - void StartPage() wxOVERRIDE; - void EndPage() wxOVERRIDE; - - wxCoord GetCharHeight() const wxOVERRIDE; - wxCoord GetCharWidth() const wxOVERRIDE; - bool CanGetTextExtent() const wxOVERRIDE { return true; } - - // Resolution in pixels per logical inch - wxSize GetPPI() const wxOVERRIDE; - - virtual void ComputeScaleAndOrigin() wxOVERRIDE; - - void SetBackgroundMode(int WXUNUSED(mode)) wxOVERRIDE { } - void SetPalette(const wxPalette& WXUNUSED(palette)) wxOVERRIDE { } - - void SetPrintData(const wxPrintData& data); - wxPrintData& GetPrintData() { return m_printData; } - - virtual int GetDepth() const wxOVERRIDE { return 24; } - - void PsPrint( const wxString& psdata ); - - // Overrridden for wxPrinterDC Impl - - virtual int GetResolution() const wxOVERRIDE; - virtual wxRect GetPaperRect() const wxOVERRIDE; - - virtual void* GetHandle() const wxOVERRIDE { return NULL; } - -protected: - bool DoFloodFill(wxCoord x1, wxCoord y1, const wxColour &col, - wxFloodFillStyle style = wxFLOOD_SURFACE) wxOVERRIDE; - bool DoGetPixel(wxCoord x1, wxCoord y1, wxColour *col) const wxOVERRIDE; - void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2) wxOVERRIDE; - void DoCrossHair(wxCoord x, wxCoord y) wxOVERRIDE ; - void DoDrawArc(wxCoord x1,wxCoord y1,wxCoord x2,wxCoord y2,wxCoord xc,wxCoord yc) wxOVERRIDE; - void DoDrawEllipticArc(wxCoord x,wxCoord y,wxCoord w,wxCoord h,double sa,double ea) wxOVERRIDE; - void DoDrawPoint(wxCoord x, wxCoord y) wxOVERRIDE; - void DoDrawLines(int n, const wxPoint points[], wxCoord xoffset = 0, wxCoord yoffset = 0) wxOVERRIDE; - void DoDrawPolygon(int n, const wxPoint points[], - wxCoord xoffset = 0, wxCoord yoffset = 0, - wxPolygonFillMode fillStyle = wxODDEVEN_RULE) wxOVERRIDE; - void DoDrawPolyPolygon(int n, const int count[], const wxPoint points[], - wxCoord xoffset = 0, wxCoord yoffset = 0, - wxPolygonFillMode fillStyle = wxODDEVEN_RULE) wxOVERRIDE; - void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height) wxOVERRIDE; - void DoDrawRoundedRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height, double radius = 20) wxOVERRIDE; - void DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height) wxOVERRIDE; -#if wxUSE_SPLINES - void DoDrawSpline(const wxPointList *points) wxOVERRIDE; -#endif - bool DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height, - wxDC *source, wxCoord xsrc, wxCoord ysrc, - wxRasterOperationMode rop = wxCOPY, bool useMask = false, - wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord) wxOVERRIDE; - void DoDrawIcon(const wxIcon& icon, wxCoord x, wxCoord y) wxOVERRIDE; - void DoDrawBitmap(const wxBitmap& bitmap, wxCoord x, wxCoord y, bool useMask = false) wxOVERRIDE; - void DoDrawText(const wxString& text, wxCoord x, wxCoord y) wxOVERRIDE; - void DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord y, double angle) wxOVERRIDE; - void DoSetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height) wxOVERRIDE; - void DoSetDeviceClippingRegion( const wxRegion &WXUNUSED(clip)) wxOVERRIDE - { - wxFAIL_MSG( "not implemented" ); - } - void DoGetTextExtent(const wxString& string, wxCoord *x, wxCoord *y, - wxCoord *descent = NULL, - wxCoord *externalLeading = NULL, - const wxFont *theFont = NULL) const wxOVERRIDE; - void DoGetSize(int* width, int* height) const wxOVERRIDE; - void DoGetSizeMM(int *width, int *height) const wxOVERRIDE; - - FILE* m_pstream; // PostScript output stream - unsigned char m_currentRed; - unsigned char m_currentGreen; - unsigned char m_currentBlue; - int m_pageNumber; - bool m_clipping; - double m_underlinePosition; - double m_underlineThickness; - wxPrintData m_printData; - double m_pageHeight; - -private: - wxDECLARE_DYNAMIC_CLASS(wxPostScriptDCImpl); -}; - -#endif - // wxUSE_POSTSCRIPT && wxUSE_PRINTING_ARCHITECTURE - -#endif - // _WX_DCPSG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dirctrlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dirctrlg.h deleted file mode 100644 index 9eb15540..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dirctrlg.h +++ /dev/null @@ -1,326 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/dirctrlg.h -// Purpose: wxGenericDirCtrl class -// Builds on wxDirCtrl class written by Robert Roebling for the -// wxFile application, modified by Harm van der Heijden. -// Further modified for Windows. -// Author: Robert Roebling, Harm van der Heijden, Julian Smart et al -// Modified by: -// Created: 21/3/2000 -// Copyright: (c) Robert Roebling, Harm van der Heijden, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIRCTRL_H_ -#define _WX_DIRCTRL_H_ - -#if wxUSE_DIRDLG - -#include "wx/treectrl.h" -#include "wx/dialog.h" -#include "wx/dirdlg.h" -#include "wx/choice.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; -class WXDLLIMPEXP_FWD_BASE wxHashTable; - -//----------------------------------------------------------------------------- -// Extra styles for wxGenericDirCtrl -//----------------------------------------------------------------------------- - -enum -{ - // Only allow directory viewing/selection, no files - wxDIRCTRL_DIR_ONLY = 0x0010, - // When setting the default path, select the first file in the directory - wxDIRCTRL_SELECT_FIRST = 0x0020, - // Show the filter list - wxDIRCTRL_SHOW_FILTERS = 0x0040, - // Use 3D borders on internal controls - wxDIRCTRL_3D_INTERNAL = 0x0080, - // Editable labels - wxDIRCTRL_EDIT_LABELS = 0x0100, - // Allow multiple selection - wxDIRCTRL_MULTIPLE = 0x0200, - - wxDIRCTRL_DEFAULT_STYLE = wxDIRCTRL_3D_INTERNAL -}; - -//----------------------------------------------------------------------------- -// wxDirItemData -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDirItemData : public wxTreeItemData -{ -public: - wxDirItemData(const wxString& path, const wxString& name, bool isDir); - virtual ~wxDirItemData(){} - void SetNewDirName(const wxString& path); - - bool HasSubDirs() const; - bool HasFiles(const wxString& spec = wxEmptyString) const; - - wxString m_path, m_name; - bool m_isHidden; - bool m_isExpanded; - bool m_isDir; -}; - -//----------------------------------------------------------------------------- -// wxDirCtrl -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxDirFilterListCtrl; - -class WXDLLIMPEXP_CORE wxGenericDirCtrl: public wxControl -{ -public: - wxGenericDirCtrl(); - wxGenericDirCtrl(wxWindow *parent, wxWindowID id = wxID_ANY, - const wxString &dir = wxDirDialogDefaultFolderStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDIRCTRL_DEFAULT_STYLE, - const wxString& filter = wxEmptyString, - int defaultFilter = 0, - const wxString& name = wxTreeCtrlNameStr ) - { - Init(); - Create(parent, id, dir, pos, size, style, filter, defaultFilter, name); - } - - bool Create(wxWindow *parent, wxWindowID id = wxID_ANY, - const wxString &dir = wxDirDialogDefaultFolderStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDIRCTRL_DEFAULT_STYLE, - const wxString& filter = wxEmptyString, - int defaultFilter = 0, - const wxString& name = wxTreeCtrlNameStr ); - - virtual void Init(); - - virtual ~wxGenericDirCtrl(); - - void OnExpandItem(wxTreeEvent &event ); - void OnCollapseItem(wxTreeEvent &event ); - void OnBeginEditItem(wxTreeEvent &event ); - void OnEndEditItem(wxTreeEvent &event ); - void OnTreeSelChange(wxTreeEvent &event); - void OnItemActivated(wxTreeEvent &event); - void OnSize(wxSizeEvent &event ); - - // Try to expand as much of the given path as possible. - virtual bool ExpandPath(const wxString& path); - // collapse the path - virtual bool CollapsePath(const wxString& path); - - // Accessors - - virtual inline wxString GetDefaultPath() const { return m_defaultPath; } - virtual void SetDefaultPath(const wxString& path) { m_defaultPath = path; } - - // Get dir or filename - virtual wxString GetPath() const; - virtual void GetPaths(wxArrayString& paths) const; - - // Get selected filename path only (else empty string). - // I.e. don't count a directory as a selection - virtual wxString GetFilePath() const; - virtual void GetFilePaths(wxArrayString& paths) const; - virtual void SetPath(const wxString& path); - - virtual void SelectPath(const wxString& path, bool select = true); - virtual void SelectPaths(const wxArrayString& paths); - - virtual void ShowHidden( bool show ); - virtual bool GetShowHidden() { return m_showHidden; } - - virtual wxString GetFilter() const { return m_filter; } - virtual void SetFilter(const wxString& filter); - - virtual int GetFilterIndex() const { return m_currentFilter; } - virtual void SetFilterIndex(int n); - - virtual wxTreeItemId GetRootId() { return m_rootId; } - - virtual wxTreeCtrl* GetTreeCtrl() const { return m_treeCtrl; } - virtual wxDirFilterListCtrl* GetFilterListCtrl() const { return m_filterListCtrl; } - - virtual void UnselectAll(); - - // Helper - virtual void SetupSections(); - - // Find the child that matches the first part of 'path'. - // E.g. if a child path is "/usr" and 'path' is "/usr/include" - // then the child for /usr is returned. - // If the path string has been used (we're at the leaf), done is set to true - virtual wxTreeItemId FindChild(wxTreeItemId parentId, const wxString& path, bool& done); - - wxString GetPath(wxTreeItemId itemId) const; - - // Resize the components of the control - virtual void DoResize(); - - // Collapse & expand the tree, thus re-creating it from scratch: - virtual void ReCreateTree(); - - // Collapse the entire tree - virtual void CollapseTree(); - - // overridden base class methods - virtual void SetFocus() wxOVERRIDE; - -protected: - virtual void ExpandRoot(); - virtual void ExpandDir(wxTreeItemId parentId); - virtual void CollapseDir(wxTreeItemId parentId); - virtual const wxTreeItemId AddSection(const wxString& path, const wxString& name, int imageId = 0); - virtual wxTreeItemId AppendItem (const wxTreeItemId & parent, - const wxString & text, - int image = -1, int selectedImage = -1, - wxTreeItemData * data = NULL); - //void FindChildFiles(wxTreeItemId id, int dirFlags, wxArrayString& filenames); - virtual wxTreeCtrl* CreateTreeCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long treeStyle); - - // Extract description and actual filter from overall filter string - bool ExtractWildcard(const wxString& filterStr, int n, wxString& filter, wxString& description); - -private: - void PopulateNode(wxTreeItemId node); - wxDirItemData* GetItemData(wxTreeItemId itemId); - - bool m_showHidden; - wxTreeItemId m_rootId; - wxString m_defaultPath; // Starting path - long m_styleEx; // Extended style - wxString m_filter; // Wildcards in same format as per wxFileDialog - int m_currentFilter; // The current filter index - wxString m_currentFilterStr; // Current filter string - wxTreeCtrl* m_treeCtrl; - wxDirFilterListCtrl* m_filterListCtrl; - -private: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxGenericDirCtrl); - wxDECLARE_NO_COPY_CLASS(wxGenericDirCtrl); -}; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_DIRCTRL_SELECTIONCHANGED, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_DIRCTRL_FILEACTIVATED, wxTreeEvent ); - -#define wx__DECLARE_DIRCTRL_EVT(evt, id, fn) \ - wx__DECLARE_EVT1(wxEVT_DIRCTRL_ ## evt, id, wxTreeEventHandler(fn)) - -#define EVT_DIRCTRL_SELECTIONCHANGED(id, fn) wx__DECLARE_DIRCTRL_EVT(SELECTIONCHANGED, id, fn) -#define EVT_DIRCTRL_FILEACTIVATED(id, fn) wx__DECLARE_DIRCTRL_EVT(FILEACTIVATED, id, fn) - -//----------------------------------------------------------------------------- -// wxDirFilterListCtrl -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDirFilterListCtrl: public wxChoice -{ -public: - wxDirFilterListCtrl() { Init(); } - wxDirFilterListCtrl(wxGenericDirCtrl* parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0) - { - Init(); - Create(parent, id, pos, size, style); - } - - bool Create(wxGenericDirCtrl* parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0); - - void Init(); - - virtual ~wxDirFilterListCtrl() {} - - //// Operations - void FillFilterList(const wxString& filter, int defaultFilter); - - //// Events - void OnSelFilter(wxCommandEvent& event); - -protected: - wxGenericDirCtrl* m_dirCtrl; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_CLASS(wxDirFilterListCtrl); - wxDECLARE_NO_COPY_CLASS(wxDirFilterListCtrl); -}; - -#if !defined(__WXMSW__) && !defined(__WXMAC__) - #define wxDirCtrl wxGenericDirCtrl -#endif - -// Symbols for accessing individual controls -#define wxID_TREECTRL 7000 -#define wxID_FILTERLISTCTRL 7001 - -#endif // wxUSE_DIRDLG - -//------------------------------------------------------------------------- -// wxFileIconsTable - use wxTheFileIconsTable which is created as necessary -//------------------------------------------------------------------------- - -#if wxUSE_DIRDLG || wxUSE_FILEDLG || wxUSE_FILECTRL - -class WXDLLIMPEXP_FWD_CORE wxImageList; - -class WXDLLIMPEXP_CORE wxFileIconsTable -{ -public: - wxFileIconsTable(); - ~wxFileIconsTable(); - - enum iconId_Type - { - folder, - folder_open, - computer, - drive, - cdrom, - floppy, - removeable, - file, - executable - }; - - int GetIconID(const wxString& extension, const wxString& mime = wxEmptyString); - wxImageList *GetSmallImageList(); - - const wxSize& GetSize() const { return m_size; } - void SetSize(const wxSize& sz) { m_size = sz; } - - bool IsOk() const { return m_smallImageList != NULL; } - -protected: - void Create(const wxSize& sz); // create on first use - - wxImageList *m_smallImageList; - wxHashTable *m_HashTable; - wxSize m_size; -}; - -// The global fileicons table -extern WXDLLIMPEXP_DATA_CORE(wxFileIconsTable *) wxTheFileIconsTable; - -#endif // wxUSE_DIRDLG || wxUSE_FILEDLG || wxUSE_FILECTRL - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_DIRCTRL_SELECTIONCHANGED wxEVT_DIRCTRL_SELECTIONCHANGED -#define wxEVT_COMMAND_DIRCTRL_FILEACTIVATED wxEVT_DIRCTRL_FILEACTIVATED - -#endif - // _WX_DIRCTRLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dirdlgg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dirdlgg.h deleted file mode 100644 index 85038afe..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dirdlgg.h +++ /dev/null @@ -1,84 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/dirdlgg.h -// Purpose: wxGenericDirCtrl class -// Builds on wxDirCtrl class written by Robert Roebling for the -// wxFile application, modified by Harm van der Heijden. -// Further modified for Windows. -// Author: Robert Roebling, Harm van der Heijden, Julian Smart et al -// Modified by: -// Created: 21/3/2000 -// Copyright: (c) Robert Roebling, Harm van der Heijden, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIRDLGG_H_ -#define _WX_DIRDLGG_H_ - -class WXDLLIMPEXP_FWD_CORE wxGenericDirCtrl; -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; -class WXDLLIMPEXP_FWD_CORE wxTreeEvent; - -// we may be included directly as well as from wx/dirdlg.h (FIXME) -extern WXDLLIMPEXP_DATA_CORE(const char) wxDirDialogNameStr[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxDirSelectorPromptStr[]; - -#ifndef wxDD_DEFAULT_STYLE -#define wxDD_DEFAULT_STYLE (wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER) -#endif - -#include "wx/dialog.h" - -//----------------------------------------------------------------------------- -// wxGenericDirDialog -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGenericDirDialog : public wxDirDialogBase -{ -public: - wxGenericDirDialog() : wxDirDialogBase() { } - - wxGenericDirDialog(wxWindow* parent, - const wxString& title = wxDirSelectorPromptStr, - const wxString& defaultPath = wxEmptyString, - long style = wxDD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize,//Size(450, 550), - const wxString& name = wxDirDialogNameStr); - - bool Create(wxWindow* parent, - const wxString& title = wxDirSelectorPromptStr, - const wxString& defaultPath = wxEmptyString, - long style = wxDD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize,//Size(450, 550), - const wxString& name = wxDirDialogNameStr); - - //// Accessors - void SetPath(const wxString& path) wxOVERRIDE; - wxString GetPath() const wxOVERRIDE; - - //// Overrides - virtual int ShowModal() wxOVERRIDE; - virtual void EndModal(int retCode) wxOVERRIDE; - - // this one is specific to wxGenericDirDialog - wxTextCtrl* GetInputCtrl() const { return m_input; } - -protected: - //// Event handlers - void OnCloseWindow(wxCloseEvent& event); - void OnOK(wxCommandEvent& event); - void OnTreeSelected(wxTreeEvent &event); - void OnTreeKeyDown(wxTreeEvent &event); - void OnNew(wxCommandEvent& event); - void OnGoHome(wxCommandEvent& event); - void OnShowHidden(wxCommandEvent& event); - - wxGenericDirCtrl* m_dirCtrl; - wxTextCtrl* m_input; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxGenericDirDialog); -}; - -#endif // _WX_DIRDLGG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dragimgg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dragimgg.h deleted file mode 100644 index 71ffd8ae..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dragimgg.h +++ /dev/null @@ -1,259 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/dragimgg.h -// Purpose: wxDragImage class: a kind of a cursor, that can cope -// with more sophisticated images -// Author: Julian Smart -// Modified by: -// Created: 29/2/2000 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DRAGIMGG_H_ -#define _WX_DRAGIMGG_H_ - -#include "wx/bitmap.h" -#include "wx/icon.h" -#include "wx/cursor.h" -#include "wx/treectrl.h" -#include "wx/listctrl.h" -#include "wx/log.h" -#include "wx/overlay.h" - -/* - To use this class, create a wxDragImage when you start dragging, for example: - - void MyTreeCtrl::OnBeginDrag(wxTreeEvent& event) - { -#ifdef __WXMSW__ - ::UpdateWindow((HWND) GetHWND()); // We need to implement this in wxWidgets -#endif - - CaptureMouse(); - - m_dragImage = new wxDragImage(* this, itemId); - m_dragImage->BeginDrag(wxPoint(0, 0), this); - m_dragImage->Move(pt, this); - m_dragImage->Show(this); - ... - } - - In your OnMouseMove function, hide the image, do any display updating required, - then move and show the image again: - - void MyTreeCtrl::OnMouseMove(wxMouseEvent& event) - { - if (m_dragMode == MY_TREE_DRAG_NONE) - { - event.Skip(); - return; - } - - // Prevent screen corruption by hiding the image - if (m_dragImage) - m_dragImage->Hide(this); - - // Do some updating of the window, such as highlighting the drop target - ... - -#ifdef __WXMSW__ - if (updateWindow) - ::UpdateWindow((HWND) GetHWND()); -#endif - - // Move and show the image again - m_dragImage->Move(event.GetPosition(), this); - m_dragImage->Show(this); - } - - Eventually we end the drag and delete the drag image. - - void MyTreeCtrl::OnLeftUp(wxMouseEvent& event) - { - ... - - // End the drag and delete the drag image - if (m_dragImage) - { - m_dragImage->EndDrag(this); - delete m_dragImage; - m_dragImage = NULL; - } - ReleaseMouse(); - } -*/ - -/* - * wxGenericDragImage - */ - -class WXDLLIMPEXP_CORE wxGenericDragImage: public wxObject -{ -public: - - // Ctors & dtor - //////////////////////////////////////////////////////////////////////////// - - wxGenericDragImage(const wxCursor& cursor = wxNullCursor) - { - Init(); - Create(cursor); - } - - wxGenericDragImage(const wxBitmap& image, const wxCursor& cursor = wxNullCursor) - { - Init(); - - Create(image, cursor); - } - - wxGenericDragImage(const wxIcon& image, const wxCursor& cursor = wxNullCursor) - { - Init(); - - Create(image, cursor); - } - - wxGenericDragImage(const wxString& str, const wxCursor& cursor = wxNullCursor) - { - Init(); - - Create(str, cursor); - } - -#if wxUSE_TREECTRL - wxGenericDragImage(const wxTreeCtrl& treeCtrl, wxTreeItemId& id) - { - Init(); - - Create(treeCtrl, id); - } -#endif - -#if wxUSE_LISTCTRL - wxGenericDragImage(const wxListCtrl& listCtrl, long id) - { - Init(); - - Create(listCtrl, id); - } -#endif - - virtual ~wxGenericDragImage(); - - // Attributes - //////////////////////////////////////////////////////////////////////////// - -#ifdef wxHAS_NATIVE_OVERLAY - // backing store is not used when native overlays are - void SetBackingBitmap(wxBitmap* WXUNUSED(bitmap)) { } -#else - // For efficiency, tell wxGenericDragImage to use a bitmap that's already - // created (e.g. from last drag) - void SetBackingBitmap(wxBitmap* bitmap) { m_pBackingBitmap = bitmap; } -#endif // wxHAS_NATIVE_OVERLAY/!wxHAS_NATIVE_OVERLAY - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // Create a drag image with a virtual image (need to override DoDrawImage, GetImageRect) - bool Create(const wxCursor& cursor = wxNullCursor); - - // Create a drag image from a bitmap and optional cursor - bool Create(const wxBitmap& image, const wxCursor& cursor = wxNullCursor); - - // Create a drag image from an icon and optional cursor - bool Create(const wxIcon& image, const wxCursor& cursor = wxNullCursor); - - // Create a drag image from a string and optional cursor - bool Create(const wxString& str, const wxCursor& cursor = wxNullCursor); - -#if wxUSE_TREECTRL - // Create a drag image for the given tree control item - bool Create(const wxTreeCtrl& treeCtrl, wxTreeItemId& id); -#endif - -#if wxUSE_LISTCTRL - // Create a drag image for the given list control item - bool Create(const wxListCtrl& listCtrl, long id); -#endif - - // Begin drag. hotspot is the location of the drag position relative to the upper-left - // corner of the image. - bool BeginDrag(const wxPoint& hotspot, wxWindow* window, bool fullScreen = false, wxRect* rect = NULL); - - // Begin drag. hotspot is the location of the drag position relative to the upper-left - // corner of the image. This is full screen only. fullScreenRect gives the - // position of the window on the screen, to restrict the drag to. - bool BeginDrag(const wxPoint& hotspot, wxWindow* window, wxWindow* fullScreenRect); - - // End drag - bool EndDrag(); - - // Move the image: call from OnMouseMove. Pt is in window client coordinates if window - // is non-NULL, or in screen coordinates if NULL. - bool Move(const wxPoint& pt); - - // Show the image - bool Show(); - - // Hide the image - bool Hide(); - - // Implementation - //////////////////////////////////////////////////////////////////////////// - - void Init(); - - // Override this if you are using a virtual image (drawing your own image) - virtual wxRect GetImageRect(const wxPoint& pos) const; - - // Override this if you are using a virtual image (drawing your own image) - virtual bool DoDrawImage(wxDC& dc, const wxPoint& pos) const; - - // Override this if you wish to draw the window contents to the backing bitmap - // yourself. This can be desirable if you wish to avoid flicker by not having to - // redraw the window itself before dragging in order to be graphic-minus-dragged-objects. - // Instead, paint the drag image's backing bitmap to be correct, and leave the window - // to be updated only when dragging the objects away (thus giving a smoother appearance). - virtual bool UpdateBackingFromWindow(wxDC& windowDC, wxMemoryDC& destDC, - const wxRect& sourceRect, const wxRect& destRect) const; - - // Erase and redraw simultaneously if possible - virtual bool RedrawImage(const wxPoint& oldPos, const wxPoint& newPos, bool eraseOld, bool drawNew); - -protected: - wxBitmap m_bitmap; - wxIcon m_icon; - wxCursor m_cursor; - wxCursor m_oldCursor; -// wxPoint m_hotspot; - wxPoint m_offset; // The hostpot value passed to BeginDrag - wxPoint m_position; - bool m_isDirty; - bool m_isShown; - wxWindow* m_window; - wxDC* m_windowDC; - -#ifdef wxHAS_NATIVE_OVERLAY - wxOverlay m_overlay; - wxDCOverlay* m_dcOverlay; -#else - // Stores the window contents while we're dragging the image around - wxBitmap m_backingBitmap; - wxBitmap* m_pBackingBitmap; // Pointer to existing backing bitmap - // (pass to wxGenericDragImage as an efficiency measure) - // A temporary bitmap for repairing/redrawing - wxBitmap m_repairBitmap; -#endif // !wxHAS_NATIVE_OVERLAY - - wxRect m_boundingRect; - bool m_fullScreen; - -private: - wxDECLARE_DYNAMIC_CLASS(wxGenericDragImage); - wxDECLARE_NO_COPY_CLASS(wxGenericDragImage); -}; - -#endif - // _WX_DRAGIMGG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dvrenderer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dvrenderer.h deleted file mode 100644 index 251dc812..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dvrenderer.h +++ /dev/null @@ -1,67 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/dvrenderer.h -// Purpose: wxDataViewRenderer for generic wxDataViewCtrl implementation -// Author: Robert Roebling, Vadim Zeitlin -// Created: 2009-11-07 (extracted from wx/generic/dataview.h) -// Copyright: (c) 2006 Robert Roebling -// (c) 2009 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_DVRENDERER_H_ -#define _WX_GENERIC_DVRENDERER_H_ - -// ---------------------------------------------------------------------------- -// wxDataViewRenderer -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewRenderer: public wxDataViewCustomRendererBase -{ -public: - wxDataViewRenderer( const wxString &varianttype, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - virtual ~wxDataViewRenderer(); - - virtual wxDC *GetDC(); - - virtual void SetAlignment( int align ); - virtual int GetAlignment() const; - - virtual void EnableEllipsize(wxEllipsizeMode mode = wxELLIPSIZE_MIDDLE) - { m_ellipsizeMode = mode; } - virtual wxEllipsizeMode GetEllipsizeMode() const - { return m_ellipsizeMode; } - - virtual void SetMode( wxDataViewCellMode mode ) - { m_mode = mode; } - virtual wxDataViewCellMode GetMode() const - { return m_mode; } - - // implementation - - // This callback is used by generic implementation of wxDVC itself. It's - // different from the corresponding ActivateCell() method which should only - // be overridable for the custom renderers while the generic implementation - // uses this one for all of them, including the standard ones. - - virtual bool WXActivateCell(const wxRect& WXUNUSED(cell), - wxDataViewModel *WXUNUSED(model), - const wxDataViewItem & WXUNUSED(item), - unsigned int WXUNUSED(col), - const wxMouseEvent* WXUNUSED(mouseEvent)) - { return false; } - -private: - int m_align; - wxDataViewCellMode m_mode; - - wxEllipsizeMode m_ellipsizeMode; - - wxDC *m_dc; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer); -}; - -#endif // _WX_GENERIC_DVRENDERER_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dvrenderers.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dvrenderers.h deleted file mode 100644 index a56beaf0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/dvrenderers.h +++ /dev/null @@ -1,195 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/dvrenderers.h -// Purpose: All generic wxDataViewCtrl renderer classes -// Author: Robert Roebling, Vadim Zeitlin -// Created: 2009-11-07 (extracted from wx/generic/dataview.h) -// Copyright: (c) 2006 Robert Roebling -// (c) 2009 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_DVRENDERERS_H_ -#define _WX_GENERIC_DVRENDERERS_H_ - -// --------------------------------------------------------- -// wxDataViewCustomRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewCustomRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("string"); } - - wxDataViewCustomRenderer( const wxString &varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - - // see the explanation of the following WXOnXXX() methods in wx/generic/dvrenderer.h - - virtual bool WXActivateCell(const wxRect& cell, - wxDataViewModel *model, - const wxDataViewItem& item, - unsigned int col, - const wxMouseEvent *mouseEvent) - { - return ActivateCell(cell, model, item, col, mouseEvent); - } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomRenderer); -}; - - -// --------------------------------------------------------- -// wxDataViewTextRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewTextRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("string"); } - - wxDataViewTextRenderer( const wxString &varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - virtual bool SetValue( const wxVariant &value ); - virtual bool GetValue( wxVariant &value ) const; - - virtual bool Render(wxRect cell, wxDC *dc, int state); - virtual wxSize GetSize() const; - - // in-place editing - virtual bool HasEditorCtrl() const; - virtual wxWindow* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, - const wxVariant &value ); - virtual bool GetValueFromEditorCtrl( wxWindow* editor, wxVariant &value ); - -protected: - wxString m_text; - -protected: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRenderer); -}; - -// --------------------------------------------------------- -// wxDataViewBitmapRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewBitmapRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("wxBitmap"); } - - wxDataViewBitmapRenderer( const wxString &varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - virtual bool SetValue( const wxVariant &value ); - virtual bool GetValue( wxVariant &value ) const; - - virtual bool Render( wxRect cell, wxDC *dc, int state ); - virtual wxSize GetSize() const; - -private: - wxIcon m_icon; - wxBitmap m_bitmap; - -protected: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewBitmapRenderer); -}; - -// --------------------------------------------------------- -// wxDataViewToggleRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewToggleRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("bool"); } - - wxDataViewToggleRenderer( const wxString &varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - virtual bool SetValue( const wxVariant &value ); - virtual bool GetValue( wxVariant &value ) const; - - virtual bool Render( wxRect cell, wxDC *dc, int state ); - virtual wxSize GetSize() const; - - // Implementation only, don't use nor override - virtual bool WXActivateCell(const wxRect& cell, - wxDataViewModel *model, - const wxDataViewItem& item, - unsigned int col, - const wxMouseEvent *mouseEvent); -private: - bool m_toggle; - -protected: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewToggleRenderer); -}; - -// --------------------------------------------------------- -// wxDataViewProgressRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewProgressRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("long"); } - - wxDataViewProgressRenderer( const wxString &label = wxEmptyString, - const wxString &varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - virtual bool SetValue( const wxVariant &value ); - virtual bool GetValue( wxVariant& value ) const; - - virtual bool Render(wxRect cell, wxDC *dc, int state); - virtual wxSize GetSize() const; - -private: - wxString m_label; - int m_value; - -protected: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressRenderer); -}; - -// --------------------------------------------------------- -// wxDataViewIconTextRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewIconTextRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("wxDataViewIconText"); } - - wxDataViewIconTextRenderer( const wxString &varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - virtual bool SetValue( const wxVariant &value ); - virtual bool GetValue( wxVariant &value ) const; - - virtual bool Render(wxRect cell, wxDC *dc, int state); - virtual wxSize GetSize() const; - - virtual bool HasEditorCtrl() const { return true; } - virtual wxWindow* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, - const wxVariant &value ); - virtual bool GetValueFromEditorCtrl( wxWindow* editor, wxVariant &value ); - -private: - wxDataViewIconText m_value; - -protected: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewIconTextRenderer); -}; - -#endif // _WX_GENERIC_DVRENDERERS_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fdrepdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fdrepdlg.h deleted file mode 100644 index 052193c9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fdrepdlg.h +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/fdrepdlg.h -// Purpose: wxGenericFindReplaceDialog class -// Author: Markus Greither -// Modified by: -// Created: 25/05/2001 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_FDREPDLG_H_ -#define _WX_GENERIC_FDREPDLG_H_ - -class WXDLLIMPEXP_FWD_CORE wxCheckBox; -class WXDLLIMPEXP_FWD_CORE wxRadioBox; -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; - -// ---------------------------------------------------------------------------- -// wxGenericFindReplaceDialog: dialog for searching / replacing text -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGenericFindReplaceDialog : public wxFindReplaceDialogBase -{ -public: - wxGenericFindReplaceDialog() { Init(); } - - wxGenericFindReplaceDialog(wxWindow *parent, - wxFindReplaceData *data, - const wxString& title, - int style = 0) - { - Init(); - - (void)Create(parent, data, title, style); - } - - bool Create(wxWindow *parent, - wxFindReplaceData *data, - const wxString& title, - int style = 0); - -protected: - void Init(); - - void SendEvent(const wxEventType& evtType); - - void OnFind(wxCommandEvent& event); - void OnReplace(wxCommandEvent& event); - void OnReplaceAll(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - - void OnUpdateFindUI(wxUpdateUIEvent& event); - - void OnCloseWindow(wxCloseEvent& event); - - wxCheckBox *m_chkCase, - *m_chkWord; - - wxRadioBox *m_radioDir; - - wxTextCtrl *m_textFind, - *m_textRepl; - -private: - wxDECLARE_DYNAMIC_CLASS(wxGenericFindReplaceDialog); - - wxDECLARE_EVENT_TABLE(); -}; - -#endif // _WX_GENERIC_FDREPDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/filectrlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/filectrlg.h deleted file mode 100644 index d460fd3e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/filectrlg.h +++ /dev/null @@ -1,303 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/filectrlg.h -// Purpose: wxGenericFileCtrl Header -// Author: Diaa M. Sami -// Modified by: -// Created: Jul-07-2007 -// Copyright: (c) Diaa M. Sami -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_FILECTRL_H_ -#define _WX_GENERIC_FILECTRL_H_ - -#if wxUSE_FILECTRL - -#include "wx/containr.h" -#include "wx/listctrl.h" -#include "wx/filectrl.h" -#include "wx/filename.h" - -class WXDLLIMPEXP_FWD_CORE wxCheckBox; -class WXDLLIMPEXP_FWD_CORE wxChoice; -class WXDLLIMPEXP_FWD_CORE wxStaticText; -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; - -extern WXDLLIMPEXP_DATA_CORE(const char) wxFileSelectorDefaultWildcardStr[]; - -//----------------------------------------------------------------------------- -// wxFileData - a class to hold the file info for the wxFileListCtrl -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFileData -{ -public: - enum fileType - { - is_file = 0x0000, - is_dir = 0x0001, - is_link = 0x0002, - is_exe = 0x0004, - is_drive = 0x0008 - }; - - wxFileData() { Init(); } - // Full copy constructor - wxFileData( const wxFileData& fileData ) { Copy(fileData); } - // Create a filedata from this information - wxFileData( const wxString &filePath, const wxString &fileName, - fileType type, int image_id ); - - // make a full copy of the other wxFileData - void Copy( const wxFileData &other ); - - // (re)read the extra data about the file from the system - void ReadData(); - - // get the name of the file, dir, drive - wxString GetFileName() const { return m_fileName; } - // get the full path + name of the file, dir, path - wxString GetFilePath() const { return m_filePath; } - // Set the path + name and name of the item - void SetNewName( const wxString &filePath, const wxString &fileName ); - - // Get the size of the file in bytes - wxFileOffset GetSize() const { return m_size; } - // Get the type of file, either file extension or , , - wxString GetFileType() const; - // get the last modification time - wxDateTime GetDateTime() const { return m_dateTime; } - // Get the time as a formatted string - wxString GetModificationTime() const; - // in UNIX get rwx for file, in MSW get attributes ARHS - wxString GetPermissions() const { return m_permissions; } - // Get the id of the image used in a wxImageList - int GetImageId() const { return m_image; } - - bool IsFile() const { return !IsDir() && !IsLink() && !IsDrive(); } - bool IsDir() const { return (m_type & is_dir ) != 0; } - bool IsLink() const { return (m_type & is_link ) != 0; } - bool IsExe() const { return (m_type & is_exe ) != 0; } - bool IsDrive() const { return (m_type & is_drive) != 0; } - - // Get/Set the type of file, file/dir/drive/link - int GetType() const { return m_type; } - - // the wxFileListCtrl fields in report view - enum fileListFieldType - { - FileList_Name, - FileList_Size, - FileList_Type, - FileList_Time, -#if defined(__UNIX__) || defined(__WIN32__) - FileList_Perm, -#endif // defined(__UNIX__) || defined(__WIN32__) - FileList_Max - }; - - // Get the entry for report view of wxFileListCtrl - wxString GetEntry( fileListFieldType num ) const; - - // Get a string representation of the file info - wxString GetHint() const; - // initialize a wxListItem attributes - void MakeItem( wxListItem &item ); - - // operators - wxFileData& operator = (const wxFileData& fd) { Copy(fd); return *this; } - -protected: - wxString m_fileName; - wxString m_filePath; - wxFileOffset m_size; - wxDateTime m_dateTime; - wxString m_permissions; - int m_type; - int m_image; - -private: - void Init(); -}; - -//----------------------------------------------------------------------------- -// wxFileListCtrl -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFileListCtrl : public wxListCtrl -{ -public: - wxFileListCtrl(); - wxFileListCtrl( wxWindow *win, - wxWindowID id, - const wxString &wild, - bool showHidden, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxLC_LIST, - const wxValidator &validator = wxDefaultValidator, - const wxString &name = wxT("filelist") ); - virtual ~wxFileListCtrl(); - - virtual void ChangeToListMode(); - virtual void ChangeToReportMode(); - virtual void ChangeToSmallIconMode(); - virtual void ShowHidden( bool show = true ); - bool GetShowHidden() const { return m_showHidden; } - - virtual long Add( wxFileData *fd, wxListItem &item ); - virtual void UpdateItem(const wxListItem &item); - virtual void UpdateFiles(); - virtual void MakeDir(); - virtual void GoToParentDir(); - virtual void GoToHomeDir(); - virtual void GoToDir( const wxString &dir ); - virtual void SetWild( const wxString &wild ); - wxString GetWild() const { return m_wild; } - wxString GetDir() const { return m_dirName; } - - void OnListDeleteItem( wxListEvent &event ); - void OnListDeleteAllItems( wxListEvent &event ); - void OnListEndLabelEdit( wxListEvent &event ); - void OnListColClick( wxListEvent &event ); - - virtual void SortItems(wxFileData::fileListFieldType field, bool forward); - bool GetSortDirection() const { return m_sort_forward; } - wxFileData::fileListFieldType GetSortField() const { return m_sort_field; } - -protected: - void FreeItemData(wxListItem& item); - void FreeAllItemsData(); - - wxString m_dirName; - bool m_showHidden; - wxString m_wild; - - bool m_sort_forward; - wxFileData::fileListFieldType m_sort_field; - -private: - wxDECLARE_DYNAMIC_CLASS(wxFileListCtrl); - wxDECLARE_EVENT_TABLE(); -}; - -class WXDLLIMPEXP_CORE wxGenericFileCtrl : public wxNavigationEnabled, - public wxFileCtrlBase -{ -public: - wxGenericFileCtrl() - { - m_ignoreChanges = false; - } - - wxGenericFileCtrl ( wxWindow *parent, - wxWindowID id, - const wxString& defaultDirectory = wxEmptyString, - const wxString& defaultFilename = wxEmptyString, - const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = wxFC_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - const wxString& name = wxFileCtrlNameStr ) - { - m_ignoreChanges = false; - Create(parent, id, defaultDirectory, defaultFilename, wildCard, - style, pos, size, name ); - } - - virtual ~wxGenericFileCtrl() {} - - bool Create( wxWindow *parent, - wxWindowID id, - const wxString& defaultDirectory = wxEmptyString, - const wxString& defaultFileName = wxEmptyString, - const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = wxFC_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - const wxString& name = wxFileCtrlNameStr ); - - virtual void SetWildcard( const wxString& wildCard ) wxOVERRIDE; - virtual void SetFilterIndex( int filterindex ) wxOVERRIDE; - virtual bool SetDirectory( const wxString& dir ) wxOVERRIDE; - - // Selects a certain file. - // In case the filename specified isn't found/couldn't be shown with - // currently selected filter, false is returned and nothing happens - virtual bool SetFilename( const wxString& name ) wxOVERRIDE; - - // Changes to a certain directory and selects a certain file. - // In case the filename specified isn't found/couldn't be shown with - // currently selected filter, false is returned and if directory exists - // it's chdir'ed to - virtual bool SetPath( const wxString& path ) wxOVERRIDE; - - virtual wxString GetFilename() const wxOVERRIDE; - virtual wxString GetDirectory() const wxOVERRIDE; - virtual wxString GetWildcard() const wxOVERRIDE { return this->m_wildCard; } - virtual wxString GetPath() const wxOVERRIDE; - virtual void GetPaths( wxArrayString& paths ) const wxOVERRIDE; - virtual void GetFilenames( wxArrayString& files ) const wxOVERRIDE; - virtual int GetFilterIndex() const wxOVERRIDE { return m_filterIndex; } - - virtual bool HasMultipleFileSelection() const wxOVERRIDE - { return HasFlag(wxFC_MULTIPLE); } - virtual void ShowHidden(bool show) wxOVERRIDE { m_list->ShowHidden( show ); } - - void GoToParentDir(); - void GoToHomeDir(); - - // get the directory currently shown in the control: this can be different - // from GetDirectory() if the user entered a full path (with a path other - // than the one currently shown in the control) in the text control - // manually - wxString GetShownDirectory() const { return m_list->GetDir(); } - - wxFileListCtrl *GetFileList() { return m_list; } - - void ChangeToReportMode() { m_list->ChangeToReportMode(); } - void ChangeToListMode() { m_list->ChangeToListMode(); } - - -private: - void OnChoiceFilter( wxCommandEvent &event ); - void OnCheck( wxCommandEvent &event ); - void OnActivated( wxListEvent &event ); - void OnTextEnter( wxCommandEvent &WXUNUSED( event ) ); - void OnTextChange( wxCommandEvent &WXUNUSED( event ) ); - void OnSelected( wxListEvent &event ); - void HandleAction( const wxString &fn ); - - void DoSetFilterIndex( int filterindex ); - void UpdateControls(); - - // the first of these methods can only be used for the controls with single - // selection (i.e. without wxFC_MULTIPLE style), the second one in any case - wxFileName DoGetFileName() const; - void DoGetFilenames( wxArrayString& filenames, bool fullPath ) const; - - int m_style; - - wxString m_filterExtension; - wxChoice *m_choice; - wxTextCtrl *m_text; - wxFileListCtrl *m_list; - wxCheckBox *m_check; - wxStaticText *m_static; - - wxString m_dir; - wxString m_fileName; - wxString m_wildCard; // wild card in one string as we got it - - int m_filterIndex; - bool m_inSelected; - bool m_ignoreChanges; - bool m_noSelChgEvent; // suppress selection changed events. - - wxDECLARE_DYNAMIC_CLASS(wxGenericFileCtrl); - wxDECLARE_EVENT_TABLE(); -}; - -#endif // wxUSE_FILECTRL - -#endif // _WX_GENERIC_FILECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/filedlgg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/filedlgg.h deleted file mode 100644 index 6c00f202..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/filedlgg.h +++ /dev/null @@ -1,160 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/filedlgg.h -// Purpose: wxGenericFileDialog -// Author: Robert Roebling -// Modified by: -// Created: 8/17/99 -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILEDLGG_H_ -#define _WX_FILEDLGG_H_ - -#include "wx/listctrl.h" -#include "wx/datetime.h" -#include "wx/filefn.h" -#include "wx/artprov.h" -#include "wx/filedlg.h" -#include "wx/generic/filectrlg.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxBitmapButton; -class WXDLLIMPEXP_FWD_CORE wxGenericFileCtrl; -class WXDLLIMPEXP_FWD_CORE wxGenericFileDialog; -class WXDLLIMPEXP_FWD_CORE wxFileCtrlEvent; - -//------------------------------------------------------------------------- -// wxGenericFileDialog -//------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGenericFileDialog: public wxFileDialogBase -{ -public: - wxGenericFileDialog() : wxFileDialogBase() { Init(); } - - wxGenericFileDialog(wxWindow *parent, - const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = wxEmptyString, - const wxString& defaultFile = wxEmptyString, - const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = wxFD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize, - const wxString& name = wxFileDialogNameStr, - bool bypassGenericImpl = false ); - - bool Create( wxWindow *parent, - const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = wxEmptyString, - const wxString& defaultFile = wxEmptyString, - const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = wxFD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize, - const wxString& name = wxFileDialogNameStr, - bool bypassGenericImpl = false ); - - virtual ~wxGenericFileDialog(); - - virtual void SetDirectory(const wxString& dir) wxOVERRIDE - { m_filectrl->SetDirectory(dir); } - virtual void SetFilename(const wxString& name) wxOVERRIDE - { m_filectrl->SetFilename(name); } - virtual void SetMessage(const wxString& message) wxOVERRIDE { SetTitle(message); } - virtual void SetPath(const wxString& path) wxOVERRIDE - { m_filectrl->SetPath(path); } - virtual void SetFilterIndex(int filterIndex) wxOVERRIDE - { m_filectrl->SetFilterIndex(filterIndex); } - virtual void SetWildcard(const wxString& wildCard) wxOVERRIDE - { m_filectrl->SetWildcard(wildCard); } - - virtual wxString GetPath() const wxOVERRIDE - { return m_filectrl->GetPath(); } - virtual void GetPaths(wxArrayString& paths) const wxOVERRIDE - { m_filectrl->GetPaths(paths); } - virtual wxString GetDirectory() const wxOVERRIDE - { return m_filectrl->GetDirectory(); } - virtual wxString GetFilename() const wxOVERRIDE - { return m_filectrl->GetFilename(); } - virtual void GetFilenames(wxArrayString& files) const wxOVERRIDE - { m_filectrl->GetFilenames(files); } - virtual wxString GetWildcard() const wxOVERRIDE - { return m_filectrl->GetWildcard(); } - virtual int GetFilterIndex() const wxOVERRIDE - { return m_filectrl->GetFilterIndex(); } - virtual bool SupportsExtraControl() const wxOVERRIDE { return true; } - - // implementation only from now on - // ------------------------------- - - virtual int ShowModal() wxOVERRIDE; - virtual bool Show( bool show = true ) wxOVERRIDE; - - void OnList( wxCommandEvent &event ); - void OnReport( wxCommandEvent &event ); - void OnUp( wxCommandEvent &event ); - void OnHome( wxCommandEvent &event ); - void OnOk( wxCommandEvent &event ); - void OnNew( wxCommandEvent &event ); - void OnFileActivated( wxFileCtrlEvent &event); - -private: - // if true, don't use this implementation at all - bool m_bypassGenericImpl; - -protected: - // update the state of m_upDirButton and m_newDirButton depending on the - // currently selected directory - void OnUpdateButtonsUI(wxUpdateUIEvent& event); - - wxString m_filterExtension; - wxGenericFileCtrl *m_filectrl; - wxBitmapButton *m_upDirButton; - wxBitmapButton *m_newDirButton; - -private: - void Init(); - wxBitmapButton* AddBitmapButton( wxWindowID winId, const wxArtID& artId, - const wxString& tip, wxSizer *sizer ); - - wxDECLARE_DYNAMIC_CLASS(wxGenericFileDialog); - wxDECLARE_EVENT_TABLE(); - - // these variables are preserved between wxGenericFileDialog calls - static long ms_lastViewStyle; // list or report? - static bool ms_lastShowHidden; // did we show hidden files? -}; - -#ifdef wxHAS_GENERIC_FILEDIALOG - -class WXDLLIMPEXP_CORE wxFileDialog: public wxGenericFileDialog -{ -public: - wxFileDialog() {} - - wxFileDialog(wxWindow *parent, - const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = wxEmptyString, - const wxString& defaultFile = wxEmptyString, - const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = 0, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize) - :wxGenericFileDialog(parent, message, - defaultDir, defaultFile, wildCard, - style, - pos, size) - { - } - -private: - wxDECLARE_DYNAMIC_CLASS(wxFileDialog); -}; - -#endif // wxHAS_GENERIC_FILEDIALOG - -#endif // _WX_FILEDLGG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/filepickerg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/filepickerg.h deleted file mode 100644 index cf4782f8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/filepickerg.h +++ /dev/null @@ -1,221 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/filepickerg.h -// Purpose: wxGenericFileDirButton, wxGenericFileButton, wxGenericDirButton -// Author: Francesco Montorsi -// Modified by: -// Created: 14/4/2006 -// Copyright: (c) Francesco Montorsi -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILEDIRPICKER_H_ -#define _WX_FILEDIRPICKER_H_ - -#include "wx/button.h" -#include "wx/filedlg.h" -#include "wx/dirdlg.h" - - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_DIRPICKER_CHANGED, wxFileDirPickerEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_FILEPICKER_CHANGED, wxFileDirPickerEvent ); - - -//----------------------------------------------------------------------------- -// wxGenericFileDirButton: a button which brings up a wx{File|Dir}Dialog -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGenericFileDirButton : public wxButton, - public wxFileDirPickerWidgetBase -{ -public: - wxGenericFileDirButton() { Init(); } - wxGenericFileDirButton(wxWindow *parent, - wxWindowID id, - const wxString& label = wxFilePickerWidgetLabel, - const wxString& path = wxEmptyString, - const wxString &message = wxFileSelectorPromptStr, - const wxString &wildcard = wxFileSelectorDefaultWildcardStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxFilePickerWidgetNameStr) - { - Init(); - Create(parent, id, label, path, message, wildcard, - pos, size, style, validator, name); - } - - virtual wxControl *AsControl() wxOVERRIDE { return this; } - -public: // overridable - - virtual wxDialog *CreateDialog() = 0; - - virtual wxWindow *GetDialogParent() - { return GetParent(); } - - virtual wxEventType GetEventType() const = 0; - - virtual void SetInitialDirectory(const wxString& dir) wxOVERRIDE; - -public: - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label = wxFilePickerWidgetLabel, - const wxString& path = wxEmptyString, - const wxString &message = wxFileSelectorPromptStr, - const wxString &wildcard = wxFileSelectorDefaultWildcardStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxFilePickerWidgetNameStr); - - // event handler for the click - void OnButtonClick(wxCommandEvent &); - -protected: - wxString m_message, m_wildcard; - - // we just store the style passed to the ctor here instead of passing it to - // wxButton as some of our bits can conflict with wxButton styles and it - // just doesn't make sense to use picker styles for wxButton anyhow - long m_pickerStyle; - - // Initial directory set by SetInitialDirectory() call or empty. - wxString m_initialDir; - -private: - // common part of all ctors - void Init() { m_pickerStyle = -1; } -}; - - -//----------------------------------------------------------------------------- -// wxGenericFileButton: a button which brings up a wxFileDialog -//----------------------------------------------------------------------------- - -#define wxFILEBTN_DEFAULT_STYLE (wxFLP_OPEN) - -class WXDLLIMPEXP_CORE wxGenericFileButton : public wxGenericFileDirButton -{ -public: - wxGenericFileButton() {} - wxGenericFileButton(wxWindow *parent, - wxWindowID id, - const wxString& label = wxFilePickerWidgetLabel, - const wxString& path = wxEmptyString, - const wxString &message = wxFileSelectorPromptStr, - const wxString &wildcard = wxFileSelectorDefaultWildcardStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxFILEBTN_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxFilePickerWidgetNameStr) - { - Create(parent, id, label, path, message, wildcard, - pos, size, style, validator, name); - } - -public: // overridable - - virtual long GetDialogStyle() const - { - // the derived class must initialize it if it doesn't use the - // non-default wxGenericFileDirButton ctor - wxASSERT_MSG( m_pickerStyle != -1, - "forgot to initialize m_pickerStyle?" ); - - - long filedlgstyle = 0; - - if ( m_pickerStyle & wxFLP_OPEN ) - filedlgstyle |= wxFD_OPEN; - if ( m_pickerStyle & wxFLP_SAVE ) - filedlgstyle |= wxFD_SAVE; - if ( m_pickerStyle & wxFLP_OVERWRITE_PROMPT ) - filedlgstyle |= wxFD_OVERWRITE_PROMPT; - if ( m_pickerStyle & wxFLP_FILE_MUST_EXIST ) - filedlgstyle |= wxFD_FILE_MUST_EXIST; - if ( m_pickerStyle & wxFLP_CHANGE_DIR ) - filedlgstyle |= wxFD_CHANGE_DIR; - - return filedlgstyle; - } - - virtual wxDialog *CreateDialog() wxOVERRIDE; - - wxEventType GetEventType() const wxOVERRIDE - { return wxEVT_FILEPICKER_CHANGED; } - -protected: - void UpdateDialogPath(wxDialog *p) wxOVERRIDE - { wxStaticCast(p, wxFileDialog)->SetPath(m_path); } - void UpdatePathFromDialog(wxDialog *p) wxOVERRIDE - { m_path = wxStaticCast(p, wxFileDialog)->GetPath(); } - -private: - wxDECLARE_DYNAMIC_CLASS(wxGenericFileButton); -}; - - -//----------------------------------------------------------------------------- -// wxGenericDirButton: a button which brings up a wxDirDialog -//----------------------------------------------------------------------------- - -#define wxDIRBTN_DEFAULT_STYLE 0 - -class WXDLLIMPEXP_CORE wxGenericDirButton : public wxGenericFileDirButton -{ -public: - wxGenericDirButton() {} - wxGenericDirButton(wxWindow *parent, - wxWindowID id, - const wxString& label = wxDirPickerWidgetLabel, - const wxString& path = wxEmptyString, - const wxString &message = wxDirSelectorPromptStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDIRBTN_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDirPickerWidgetNameStr) - { - Create(parent, id, label, path, message, wxEmptyString, - pos, size, style, validator, name); - } - -public: // overridable - - virtual long GetDialogStyle() const - { - long dirdlgstyle = wxDD_DEFAULT_STYLE; - - if ( m_pickerStyle & wxDIRP_DIR_MUST_EXIST ) - dirdlgstyle |= wxDD_DIR_MUST_EXIST; - if ( m_pickerStyle & wxDIRP_CHANGE_DIR ) - dirdlgstyle |= wxDD_CHANGE_DIR; - - return dirdlgstyle; - } - - virtual wxDialog *CreateDialog() wxOVERRIDE; - - wxEventType GetEventType() const wxOVERRIDE - { return wxEVT_DIRPICKER_CHANGED; } - -protected: - void UpdateDialogPath(wxDialog *p) wxOVERRIDE - { wxStaticCast(p, wxDirDialog)->SetPath(m_path); } - void UpdatePathFromDialog(wxDialog *p) wxOVERRIDE - { m_path = wxStaticCast(p, wxDirDialog)->GetPath(); } - -private: - wxDECLARE_DYNAMIC_CLASS(wxGenericDirButton); -}; - -// old wxEVT_COMMAND_* constants -//#define wxEVT_COMMAND_DIRPICKER_CHANGED wxEVT_DIRPICKER_CHANGED -//#define wxEVT_COMMAND_FILEPICKER_CHANGED wxEVT_FILEPICKER_CHANGED - -#endif // _WX_FILEDIRPICKER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fontdlgg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fontdlgg.h deleted file mode 100644 index 4d01c899..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fontdlgg.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/fontdlgg.h -// Purpose: wxGenericFontDialog -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_FONTDLGG_H -#define _WX_GENERIC_FONTDLGG_H - -#include "wx/gdicmn.h" -#include "wx/font.h" - -#define USE_SPINCTRL_FOR_POINT_SIZE 0 - -/* - * FONT DIALOG - */ - -class WXDLLIMPEXP_FWD_CORE wxChoice; -class WXDLLIMPEXP_FWD_CORE wxText; -class WXDLLIMPEXP_FWD_CORE wxCheckBox; -class WXDLLIMPEXP_FWD_CORE wxFontPreviewer; - -enum -{ - wxID_FONT_UNDERLINE = 3000, - wxID_FONT_STYLE, - wxID_FONT_WEIGHT, - wxID_FONT_FAMILY, - wxID_FONT_COLOUR, - wxID_FONT_SIZE -}; - -class WXDLLIMPEXP_CORE wxGenericFontDialog : public wxFontDialogBase -{ -public: - wxGenericFontDialog() { Init(); } - wxGenericFontDialog(wxWindow *parent) - : wxFontDialogBase(parent) { Init(); } - wxGenericFontDialog(wxWindow *parent, const wxFontData& data) - : wxFontDialogBase(parent, data) { Init(); } - virtual ~wxGenericFontDialog(); - - virtual int ShowModal() wxOVERRIDE; - - // Internal functions - void OnCloseWindow(wxCloseEvent& event); - - virtual void CreateWidgets(); - virtual void InitializeFont(); - - void OnChangeFont(wxCommandEvent& event); - -#if USE_SPINCTRL_FOR_POINT_SIZE - void OnChangeSize(wxSpinEvent& event); -#endif - -protected: - - virtual bool DoCreate(wxWindow *parent) wxOVERRIDE; - -private: - - // common part of all ctors - void Init(); - - void DoChangeFont(); - - wxFont m_dialogFont; - - wxChoice *m_familyChoice; - wxChoice *m_styleChoice; - wxChoice *m_weightChoice; - wxChoice *m_colourChoice; - wxCheckBox *m_underLineCheckBox; - -#if !USE_SPINCTRL_FOR_POINT_SIZE - wxChoice *m_pointSizeChoice; -#endif - - wxFontPreviewer *m_previewer; - bool m_useEvents; - - // static bool fontDialogCancelled; - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxGenericFontDialog); -}; - -#endif // _WX_GENERIC_FONTDLGG_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fontpickerg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fontpickerg.h deleted file mode 100644 index ea2180ed..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fontpickerg.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/fontpickerg.h -// Purpose: wxGenericFontButton header -// Author: Francesco Montorsi -// Modified by: -// Created: 14/4/2006 -// Copyright: (c) Francesco Montorsi -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONTPICKER_H_ -#define _WX_FONTPICKER_H_ - -#include "wx/button.h" -#include "wx/fontdata.h" - -//----------------------------------------------------------------------------- -// wxGenericFontButton: a button which brings up a wxFontDialog -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGenericFontButton : public wxButton, - public wxFontPickerWidgetBase -{ -public: - wxGenericFontButton() {} - wxGenericFontButton(wxWindow *parent, - wxWindowID id, - const wxFont &initial = wxNullFont, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxFONTBTN_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxFontPickerWidgetNameStr) - { - Create(parent, id, initial, pos, size, style, validator, name); - } - - virtual wxColour GetSelectedColour() const - { return m_data.GetColour(); } - - virtual void SetSelectedColour(const wxColour &colour) - { m_data.SetColour(colour); UpdateFont(); } - - virtual ~wxGenericFontButton() {} - - -public: // API extensions specific for wxGenericFontButton - - // user can override this to init font data in a different way - virtual void InitFontData(); - - // returns the font data shown in wxFontDialog - wxFontData *GetFontData() { return &m_data; } - - -public: - - bool Create(wxWindow *parent, - wxWindowID id, - const wxFont &initial = *wxNORMAL_FONT, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxFONTBTN_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxFontPickerWidgetNameStr); - - void OnButtonClick(wxCommandEvent &); - - -protected: - - void UpdateFont(); - - wxFontData m_data; - -private: - wxDECLARE_DYNAMIC_CLASS(wxGenericFontButton); -}; - - -#endif // _WX_FONTPICKER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fswatcher.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fswatcher.h deleted file mode 100644 index efd7631b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/fswatcher.h +++ /dev/null @@ -1,25 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/fswatcher.h -// Purpose: wxPollingFileSystemWatcher -// Author: Bartosz Bekier -// Created: 2009-05-26 -// Copyright: (c) 2009 Bartosz Bekier -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FSWATCHER_GENERIC_H_ -#define _WX_FSWATCHER_GENERIC_H_ - -#include "wx/defs.h" - -#if wxUSE_FSWATCHER - -class WXDLLIMPEXP_BASE wxPollingFileSystemWatcher : public wxFileSystemWatcherBase -{ -public: - -}; - -#endif // wxUSE_FSWATCHER - -#endif /* _WX_FSWATCHER_GENERIC_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/grid.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/grid.h deleted file mode 100644 index 32a63415..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/grid.h +++ /dev/null @@ -1,2742 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/grid.h -// Purpose: wxGrid and related classes -// Author: Michael Bedward (based on code by Julian Smart, Robin Dunn) -// Modified by: Santiago Palacios -// Created: 1/08/1999 -// Copyright: (c) Michael Bedward -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_GRID_H_ -#define _WX_GENERIC_GRID_H_ - -#include "wx/defs.h" - -#if wxUSE_GRID - -#include "wx/hashmap.h" - -#include "wx/scrolwin.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -extern WXDLLIMPEXP_DATA_ADV(const char) wxGridNameStr[]; - -// Default parameters for wxGrid -// -#define WXGRID_DEFAULT_NUMBER_ROWS 10 -#define WXGRID_DEFAULT_NUMBER_COLS 10 -#if defined(__WXMSW__) || defined(__WXGTK20__) -#define WXGRID_DEFAULT_ROW_HEIGHT 25 -#else -#define WXGRID_DEFAULT_ROW_HEIGHT 30 -#endif // __WXMSW__ -#define WXGRID_DEFAULT_COL_WIDTH 80 -#define WXGRID_DEFAULT_COL_LABEL_HEIGHT 32 -#define WXGRID_DEFAULT_ROW_LABEL_WIDTH 82 -#define WXGRID_LABEL_EDGE_ZONE 2 -#define WXGRID_MIN_ROW_HEIGHT 15 -#define WXGRID_MIN_COL_WIDTH 15 -#define WXGRID_DEFAULT_SCROLLBAR_WIDTH 16 - -// type names for grid table values -#define wxGRID_VALUE_STRING wxT("string") -#define wxGRID_VALUE_BOOL wxT("bool") -#define wxGRID_VALUE_NUMBER wxT("long") -#define wxGRID_VALUE_FLOAT wxT("double") -#define wxGRID_VALUE_CHOICE wxT("choice") - -#define wxGRID_VALUE_TEXT wxGRID_VALUE_STRING -#define wxGRID_VALUE_LONG wxGRID_VALUE_NUMBER - -// magic constant which tells (to some functions) to automatically calculate -// the appropriate size -#define wxGRID_AUTOSIZE (-1) - -// many wxGrid methods work either with columns or rows, this enum is used for -// the parameter indicating which one should it be -enum wxGridDirection -{ - wxGRID_COLUMN, - wxGRID_ROW -}; - -// Flags used with wxGrid::Render() to select parts of the grid to draw. -enum wxGridRenderStyle -{ - wxGRID_DRAW_ROWS_HEADER = 0x001, - wxGRID_DRAW_COLS_HEADER = 0x002, - wxGRID_DRAW_CELL_LINES = 0x004, - wxGRID_DRAW_BOX_RECT = 0x008, - wxGRID_DRAW_SELECTION = 0x010, - wxGRID_DRAW_DEFAULT = wxGRID_DRAW_ROWS_HEADER | - wxGRID_DRAW_COLS_HEADER | - wxGRID_DRAW_CELL_LINES | - wxGRID_DRAW_BOX_RECT -}; - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_ADV wxGrid; -class WXDLLIMPEXP_FWD_ADV wxGridCellAttr; -class WXDLLIMPEXP_FWD_ADV wxGridCellAttrProviderData; -class WXDLLIMPEXP_FWD_ADV wxGridColLabelWindow; -class WXDLLIMPEXP_FWD_ADV wxGridCornerLabelWindow; -class WXDLLIMPEXP_FWD_ADV wxGridRowLabelWindow; -class WXDLLIMPEXP_FWD_ADV wxGridWindow; -class WXDLLIMPEXP_FWD_ADV wxGridTypeRegistry; -class WXDLLIMPEXP_FWD_ADV wxGridSelection; - -class WXDLLIMPEXP_FWD_CORE wxHeaderCtrl; -class WXDLLIMPEXP_FWD_CORE wxCheckBox; -class WXDLLIMPEXP_FWD_CORE wxComboBox; -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; -#if wxUSE_SPINCTRL -class WXDLLIMPEXP_FWD_CORE wxSpinCtrl; -#endif - -class wxGridFixedIndicesSet; - -class wxGridOperations; -class wxGridRowOperations; -class wxGridColumnOperations; -class wxGridDirectionOperations; - - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -#define wxSafeIncRef(p) if ( p ) (p)->IncRef() -#define wxSafeDecRef(p) if ( p ) (p)->DecRef() - -// ---------------------------------------------------------------------------- -// wxGridCellWorker: common base class for wxGridCellRenderer and -// wxGridCellEditor -// -// NB: this is more an implementation convenience than a design issue, so this -// class is not documented and is not public at all -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxGridCellWorker : public wxClientDataContainer, public wxRefCounter -{ -public: - wxGridCellWorker() { } - - // interpret renderer parameters: arbitrary string whose interpretation is - // left to the derived classes - virtual void SetParameters(const wxString& params); - -protected: - // virtual dtor for any base class - private because only DecRef() can - // delete us - virtual ~wxGridCellWorker(); - -private: - // suppress the stupid gcc warning about the class having private dtor and - // no friends - friend class wxGridCellWorkerDummyFriend; -}; - -// ---------------------------------------------------------------------------- -// wxGridCellRenderer: this class is responsible for actually drawing the cell -// in the grid. You may pass it to the wxGridCellAttr (below) to change the -// format of one given cell or to wxGrid::SetDefaultRenderer() to change the -// view of all cells. This is an ABC, you will normally use one of the -// predefined derived classes or derive your own class from it. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxGridCellRenderer : public wxGridCellWorker -{ -public: - // draw the given cell on the provided DC inside the given rectangle - // using the style specified by the attribute and the default or selected - // state corresponding to the isSelected value. - // - // this pure virtual function has a default implementation which will - // prepare the DC using the given attribute: it will draw the rectangle - // with the bg colour from attr and set the text colour and font - virtual void Draw(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - const wxRect& rect, - int row, int col, - bool isSelected) = 0; - - // get the preferred size of the cell for its contents - virtual wxSize GetBestSize(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - int row, int col) = 0; - - // Get the preferred height for a given width. Override this method if the - // renderer computes height as function of its width, as is the case of the - // standard wxGridCellAutoWrapStringRenderer, for example. - // and vice versa - virtual int GetBestHeight(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - int row, int col, - int WXUNUSED(width)) - { - return GetBestSize(grid, attr, dc, row, col).GetHeight(); - } - - // Get the preferred width for a given height, this is the symmetric - // version of GetBestHeight(). - virtual int GetBestWidth(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - int row, int col, - int WXUNUSED(height)) - { - return GetBestSize(grid, attr, dc, row, col).GetWidth(); - } - - // create a new object which is the copy of this one - virtual wxGridCellRenderer *Clone() const = 0; -}; - -// ---------------------------------------------------------------------------- -// wxGridCellEditor: This class is responsible for providing and manipulating -// the in-place edit controls for the grid. Instances of wxGridCellEditor -// (actually, instances of derived classes since it is an ABC) can be -// associated with the cell attributes for individual cells, rows, columns, or -// even for the entire grid. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxGridCellEditor : public wxGridCellWorker -{ -public: - wxGridCellEditor(); - - bool IsCreated() const { return m_control != NULL; } - wxControl* GetControl() const { return m_control; } - void SetControl(wxControl* control) { m_control = control; } - - wxGridCellAttr* GetCellAttr() const { return m_attr; } - void SetCellAttr(wxGridCellAttr* attr) { m_attr = attr; } - - // Creates the actual edit control - virtual void Create(wxWindow* parent, - wxWindowID id, - wxEvtHandler* evtHandler) = 0; - - // Size and position the edit control - virtual void SetSize(const wxRect& rect); - - // Show or hide the edit control, use the specified attributes to set - // colours/fonts for it - virtual void Show(bool show, wxGridCellAttr *attr = NULL); - - // Draws the part of the cell not occupied by the control: the base class - // version just fills it with background colour from the attribute - virtual void PaintBackground(wxDC& dc, - const wxRect& rectCell, - const wxGridCellAttr& attr); - - - // The methods called by wxGrid when a cell is edited: first BeginEdit() is - // called, then EndEdit() is and if it returns true and if the change is - // not vetoed by a user-defined event handler, finally ApplyEdit() is called - - // Fetch the value from the table and prepare the edit control - // to begin editing. Set the focus to the edit control. - virtual void BeginEdit(int row, int col, wxGrid* grid) = 0; - - // Returns false if nothing changed, otherwise returns true and return the - // new value in its string form in the newval output parameter. - // - // This should also store the new value in its real type internally so that - // it could be used by ApplyEdit() but it must not modify the grid as the - // change could still be vetoed. - virtual bool EndEdit(int row, int col, const wxGrid *grid, - const wxString& oldval, wxString *newval) = 0; - - // Complete the editing of the current cell by storing the value saved by - // the previous call to EndEdit() in the grid - virtual void ApplyEdit(int row, int col, wxGrid* grid) = 0; - - - // Reset the value in the control back to its starting value - virtual void Reset() = 0; - - // return true to allow the given key to start editing: the base class - // version only checks that the event has no modifiers. The derived - // classes are supposed to do "if ( base::IsAcceptedKey() && ... )" in - // their IsAcceptedKey() implementation, although, of course, it is not a - // mandatory requirment. - // - // NB: if the key is F2 (special), editing will always start and this - // method will not be called at all (but StartingKey() will) - virtual bool IsAcceptedKey(wxKeyEvent& event); - - // If the editor is enabled by pressing keys on the grid, this will be - // called to let the editor do something about that first key if desired - virtual void StartingKey(wxKeyEvent& event); - - // if the editor is enabled by clicking on the cell, this method will be - // called - virtual void StartingClick(); - - // Some types of controls on some platforms may need some help - // with the Return key. - virtual void HandleReturn(wxKeyEvent& event); - - // Final cleanup - virtual void Destroy(); - - // create a new object which is the copy of this one - virtual wxGridCellEditor *Clone() const = 0; - - // added GetValue so we can get the value which is in the control - virtual wxString GetValue() const = 0; - -protected: - // the dtor is private because only DecRef() can delete us - virtual ~wxGridCellEditor(); - - // the control we show on screen - wxControl* m_control; - - // a temporary pointer to the attribute being edited - wxGridCellAttr* m_attr; - - // if we change the colours/font of the control from the default ones, we - // must restore the default later and we save them here between calls to - // Show(true) and Show(false) - wxColour m_colFgOld, - m_colBgOld; - wxFont m_fontOld; - - // suppress the stupid gcc warning about the class having private dtor and - // no friends - friend class wxGridCellEditorDummyFriend; - - wxDECLARE_NO_COPY_CLASS(wxGridCellEditor); -}; - -// ---------------------------------------------------------------------------- -// wxGridHeaderRenderer and company: like wxGridCellRenderer but for headers -// ---------------------------------------------------------------------------- - -// Base class for corner window renderer: it is the simplest of all renderers -// and only has a single function -class WXDLLIMPEXP_ADV wxGridCornerHeaderRenderer -{ -public: - // Draw the border around the corner window. - virtual void DrawBorder(const wxGrid& grid, - wxDC& dc, - wxRect& rect) const = 0; - - // make the dtor of a class with virtual functions virtual to avoid g++ - // warnings, even though this class is not supposed to be used - // polymorphically - virtual ~wxGridCornerHeaderRenderer() { } -}; - - -// Base class for the row/column header cells renderers -class WXDLLIMPEXP_ADV wxGridHeaderLabelsRenderer - : public wxGridCornerHeaderRenderer -{ -public: - // Draw header cell label - virtual void DrawLabel(const wxGrid& grid, - wxDC& dc, - const wxString& value, - const wxRect& rect, - int horizAlign, - int vertAlign, - int textOrientation) const; -}; - -// Currently the row/column/corner renders don't need any methods other than -// those already in wxGridHeaderLabelsRenderer but still define separate classes -// for them for future extensions and also for better type safety (i.e. to -// avoid inadvertently using a column header renderer for the row headers) -class WXDLLIMPEXP_ADV wxGridRowHeaderRenderer - : public wxGridHeaderLabelsRenderer -{ -}; - -class WXDLLIMPEXP_ADV wxGridColumnHeaderRenderer - : public wxGridHeaderLabelsRenderer -{ -}; - -// Also define the default renderers which are used by wxGridCellAttrProvider -// by default -class WXDLLIMPEXP_ADV wxGridRowHeaderRendererDefault - : public wxGridRowHeaderRenderer -{ -public: - virtual void DrawBorder(const wxGrid& grid, - wxDC& dc, - wxRect& rect) const wxOVERRIDE; -}; - -// Column header cells renderers -class WXDLLIMPEXP_ADV wxGridColumnHeaderRendererDefault - : public wxGridColumnHeaderRenderer -{ -public: - virtual void DrawBorder(const wxGrid& grid, - wxDC& dc, - wxRect& rect) const wxOVERRIDE; -}; - -// Header corner renderer -class WXDLLIMPEXP_ADV wxGridCornerHeaderRendererDefault - : public wxGridCornerHeaderRenderer -{ -public: - virtual void DrawBorder(const wxGrid& grid, - wxDC& dc, - wxRect& rect) const wxOVERRIDE; -}; - - -// ---------------------------------------------------------------------------- -// wxGridCellAttr: this class can be used to alter the cells appearance in -// the grid by changing their colour/font/... from default. An object of this -// class may be returned by wxGridTable::GetAttr(). -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxGridCellAttr : public wxClientDataContainer, public wxRefCounter -{ -public: - enum wxAttrKind - { - Any, - Default, - Cell, - Row, - Col, - Merged - }; - - // ctors - wxGridCellAttr(wxGridCellAttr *attrDefault = NULL) - { - Init(attrDefault); - - SetAlignment(wxALIGN_INVALID, wxALIGN_INVALID); - } - - // VZ: considering the number of members wxGridCellAttr has now, this ctor - // seems to be pretty useless... may be we should just remove it? - wxGridCellAttr(const wxColour& colText, - const wxColour& colBack, - const wxFont& font, - int hAlign, - int vAlign) - : m_colText(colText), m_colBack(colBack), m_font(font) - { - Init(); - SetAlignment(hAlign, vAlign); - } - - // creates a new copy of this object - wxGridCellAttr *Clone() const; - void MergeWith(wxGridCellAttr *mergefrom); - - // setters - void SetTextColour(const wxColour& colText) { m_colText = colText; } - void SetBackgroundColour(const wxColour& colBack) { m_colBack = colBack; } - void SetFont(const wxFont& font) { m_font = font; } - void SetAlignment(int hAlign, int vAlign) - { - m_hAlign = hAlign; - m_vAlign = vAlign; - } - void SetSize(int num_rows, int num_cols); - void SetOverflow(bool allow = true) - { m_overflow = allow ? Overflow : SingleCell; } - void SetReadOnly(bool isReadOnly = true) - { m_isReadOnly = isReadOnly ? ReadOnly : ReadWrite; } - - // takes ownership of the pointer - void SetRenderer(wxGridCellRenderer *renderer) - { wxSafeDecRef(m_renderer); m_renderer = renderer; } - void SetEditor(wxGridCellEditor* editor) - { wxSafeDecRef(m_editor); m_editor = editor; } - - void SetKind(wxAttrKind kind) { m_attrkind = kind; } - - // accessors - bool HasTextColour() const { return m_colText.IsOk(); } - bool HasBackgroundColour() const { return m_colBack.IsOk(); } - bool HasFont() const { return m_font.IsOk(); } - bool HasAlignment() const - { - return m_hAlign != wxALIGN_INVALID || m_vAlign != wxALIGN_INVALID; - } - bool HasRenderer() const { return m_renderer != NULL; } - bool HasEditor() const { return m_editor != NULL; } - bool HasReadWriteMode() const { return m_isReadOnly != Unset; } - bool HasOverflowMode() const { return m_overflow != UnsetOverflow; } - bool HasSize() const { return m_sizeRows != 1 || m_sizeCols != 1; } - - const wxColour& GetTextColour() const; - const wxColour& GetBackgroundColour() const; - const wxFont& GetFont() const; - void GetAlignment(int *hAlign, int *vAlign) const; - - // unlike GetAlignment() which always overwrites its output arguments with - // the alignment values to use, falling back on default alignment if this - // attribute doesn't have any, this function will preserve the values of - // parameters on entry if the corresponding alignment is not set in this - // attribute meaning that they can be initialized to default alignment (and - // also that they must be initialized, unlike with GetAlignment()) - void GetNonDefaultAlignment(int *hAlign, int *vAlign) const; - - void GetSize(int *num_rows, int *num_cols) const; - bool GetOverflow() const - { return m_overflow != SingleCell; } - wxGridCellRenderer *GetRenderer(const wxGrid* grid, int row, int col) const; - wxGridCellEditor *GetEditor(const wxGrid* grid, int row, int col) const; - - bool IsReadOnly() const { return m_isReadOnly == wxGridCellAttr::ReadOnly; } - - wxAttrKind GetKind() { return m_attrkind; } - - void SetDefAttr(wxGridCellAttr* defAttr) { m_defGridAttr = defAttr; } - -protected: - // the dtor is private because only DecRef() can delete us - virtual ~wxGridCellAttr() - { - wxSafeDecRef(m_renderer); - wxSafeDecRef(m_editor); - } - -private: - enum wxAttrReadMode - { - Unset = -1, - ReadWrite, - ReadOnly - }; - - enum wxAttrOverflowMode - { - UnsetOverflow = -1, - Overflow, - SingleCell - }; - - // the common part of all ctors - void Init(wxGridCellAttr *attrDefault = NULL); - - - wxColour m_colText, - m_colBack; - wxFont m_font; - int m_hAlign, - m_vAlign; - int m_sizeRows, - m_sizeCols; - - wxAttrOverflowMode m_overflow; - - wxGridCellRenderer* m_renderer; - wxGridCellEditor* m_editor; - wxGridCellAttr* m_defGridAttr; - - wxAttrReadMode m_isReadOnly; - - wxAttrKind m_attrkind; - - // use Clone() instead - wxDECLARE_NO_COPY_CLASS(wxGridCellAttr); - - // suppress the stupid gcc warning about the class having private dtor and - // no friends - friend class wxGridCellAttrDummyFriend; -}; - -// ---------------------------------------------------------------------------- -// wxGridCellAttrProvider: class used by wxGridTableBase to retrieve/store the -// cell attributes. -// ---------------------------------------------------------------------------- - -// implementation note: we separate it from wxGridTableBase because we wish to -// avoid deriving a new table class if possible, and sometimes it will be -// enough to just derive another wxGridCellAttrProvider instead -// -// the default implementation is reasonably efficient for the generic case, -// but you might still wish to implement your own for some specific situations -// if you have performance problems with the stock one -class WXDLLIMPEXP_ADV wxGridCellAttrProvider : public wxClientDataContainer -{ -public: - wxGridCellAttrProvider(); - virtual ~wxGridCellAttrProvider(); - - // DecRef() must be called on the returned pointer - virtual wxGridCellAttr *GetAttr(int row, int col, - wxGridCellAttr::wxAttrKind kind ) const; - - // all these functions take ownership of the pointer, don't call DecRef() - // on it - virtual void SetAttr(wxGridCellAttr *attr, int row, int col); - virtual void SetRowAttr(wxGridCellAttr *attr, int row); - virtual void SetColAttr(wxGridCellAttr *attr, int col); - - // these functions must be called whenever some rows/cols are deleted - // because the internal data must be updated then - void UpdateAttrRows( size_t pos, int numRows ); - void UpdateAttrCols( size_t pos, int numCols ); - - - // get renderers for the given row/column header label and the corner - // window: unlike cell renderers, these objects are not reference counted - // and are never NULL so they are returned by reference - virtual const wxGridColumnHeaderRenderer& GetColumnHeaderRenderer(int col); - virtual const wxGridRowHeaderRenderer& GetRowHeaderRenderer(int row); - virtual const wxGridCornerHeaderRenderer& GetCornerRenderer(); - -private: - void InitData(); - - wxGridCellAttrProviderData *m_data; - - wxDECLARE_NO_COPY_CLASS(wxGridCellAttrProvider); -}; - -// ---------------------------------------------------------------------------- -// wxGridCellCoords: location of a cell in the grid -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxGridCellCoords -{ -public: - wxGridCellCoords() { m_row = m_col = -1; } - wxGridCellCoords( int r, int c ) { m_row = r; m_col = c; } - - // default copy ctor is ok - - int GetRow() const { return m_row; } - void SetRow( int n ) { m_row = n; } - int GetCol() const { return m_col; } - void SetCol( int n ) { m_col = n; } - void Set( int row, int col ) { m_row = row; m_col = col; } - - wxGridCellCoords& operator=( const wxGridCellCoords& other ) - { - if ( &other != this ) - { - m_row=other.m_row; - m_col=other.m_col; - } - return *this; - } - - bool operator==( const wxGridCellCoords& other ) const - { - return (m_row == other.m_row && m_col == other.m_col); - } - - bool operator!=( const wxGridCellCoords& other ) const - { - return (m_row != other.m_row || m_col != other.m_col); - } - - bool operator!() const - { - return (m_row == -1 && m_col == -1 ); - } - -private: - int m_row; - int m_col; -}; - - -// For comparisons... -// -extern WXDLLIMPEXP_ADV wxGridCellCoords wxGridNoCellCoords; -extern WXDLLIMPEXP_ADV wxRect wxGridNoCellRect; - -// An array of cell coords... -// -WX_DECLARE_OBJARRAY_WITH_DECL(wxGridCellCoords, wxGridCellCoordsArray, - class WXDLLIMPEXP_ADV); - -// ---------------------------------------------------------------------------- -// Grid table classes -// ---------------------------------------------------------------------------- - -// the abstract base class -class WXDLLIMPEXP_ADV wxGridTableBase : public wxObject, - public wxClientDataContainer -{ -public: - wxGridTableBase(); - virtual ~wxGridTableBase(); - - // You must override these functions in a derived table class - // - - // return the number of rows and columns in this table - virtual int GetNumberRows() = 0; - virtual int GetNumberCols() = 0; - - // the methods above are unfortunately non-const even though they should - // have been const -- but changing it now is not possible any longer as it - // would break the existing code overriding them, so instead we provide - // these const synonyms which can be used from const-correct code - int GetRowsCount() const - { return const_cast(this)->GetNumberRows(); } - int GetColsCount() const - { return const_cast(this)->GetNumberCols(); } - - - virtual bool IsEmptyCell( int row, int col ) - { - return GetValue(row, col).empty(); - } - - bool IsEmpty(const wxGridCellCoords& coord) - { - return IsEmptyCell(coord.GetRow(), coord.GetCol()); - } - - virtual wxString GetValue( int row, int col ) = 0; - virtual void SetValue( int row, int col, const wxString& value ) = 0; - - // Data type determination and value access - virtual wxString GetTypeName( int row, int col ); - virtual bool CanGetValueAs( int row, int col, const wxString& typeName ); - virtual bool CanSetValueAs( int row, int col, const wxString& typeName ); - - virtual long GetValueAsLong( int row, int col ); - virtual double GetValueAsDouble( int row, int col ); - virtual bool GetValueAsBool( int row, int col ); - - virtual void SetValueAsLong( int row, int col, long value ); - virtual void SetValueAsDouble( int row, int col, double value ); - virtual void SetValueAsBool( int row, int col, bool value ); - - // For user defined types - virtual void* GetValueAsCustom( int row, int col, const wxString& typeName ); - virtual void SetValueAsCustom( int row, int col, const wxString& typeName, void* value ); - - - // Overriding these is optional - // - virtual void SetView( wxGrid *grid ) { m_view = grid; } - virtual wxGrid * GetView() const { return m_view; } - - virtual void Clear() {} - virtual bool InsertRows( size_t pos = 0, size_t numRows = 1 ); - virtual bool AppendRows( size_t numRows = 1 ); - virtual bool DeleteRows( size_t pos = 0, size_t numRows = 1 ); - virtual bool InsertCols( size_t pos = 0, size_t numCols = 1 ); - virtual bool AppendCols( size_t numCols = 1 ); - virtual bool DeleteCols( size_t pos = 0, size_t numCols = 1 ); - - virtual wxString GetRowLabelValue( int row ); - virtual wxString GetColLabelValue( int col ); - virtual void SetRowLabelValue( int WXUNUSED(row), const wxString& ) {} - virtual void SetColLabelValue( int WXUNUSED(col), const wxString& ) {} - - // Attribute handling - // - - // give us the attr provider to use - we take ownership of the pointer - void SetAttrProvider(wxGridCellAttrProvider *attrProvider); - - // get the currently used attr provider (may be NULL) - wxGridCellAttrProvider *GetAttrProvider() const { return m_attrProvider; } - - // Does this table allow attributes? Default implementation creates - // a wxGridCellAttrProvider if necessary. - virtual bool CanHaveAttributes(); - - // by default forwarded to wxGridCellAttrProvider if any. May be - // overridden to handle attributes directly in the table. - virtual wxGridCellAttr *GetAttr( int row, int col, - wxGridCellAttr::wxAttrKind kind ); - - - // these functions take ownership of the pointer - virtual void SetAttr(wxGridCellAttr* attr, int row, int col); - virtual void SetRowAttr(wxGridCellAttr *attr, int row); - virtual void SetColAttr(wxGridCellAttr *attr, int col); - -private: - wxGrid * m_view; - wxGridCellAttrProvider *m_attrProvider; - - wxDECLARE_ABSTRACT_CLASS(wxGridTableBase); - wxDECLARE_NO_COPY_CLASS(wxGridTableBase); -}; - - -// ---------------------------------------------------------------------------- -// wxGridTableMessage -// ---------------------------------------------------------------------------- - -// IDs for messages sent from grid table to view -// -enum wxGridTableRequest -{ - wxGRIDTABLE_REQUEST_VIEW_GET_VALUES = 2000, - wxGRIDTABLE_REQUEST_VIEW_SEND_VALUES, - wxGRIDTABLE_NOTIFY_ROWS_INSERTED, - wxGRIDTABLE_NOTIFY_ROWS_APPENDED, - wxGRIDTABLE_NOTIFY_ROWS_DELETED, - wxGRIDTABLE_NOTIFY_COLS_INSERTED, - wxGRIDTABLE_NOTIFY_COLS_APPENDED, - wxGRIDTABLE_NOTIFY_COLS_DELETED -}; - -class WXDLLIMPEXP_ADV wxGridTableMessage -{ -public: - wxGridTableMessage(); - wxGridTableMessage( wxGridTableBase *table, int id, - int comInt1 = -1, - int comInt2 = -1 ); - - void SetTableObject( wxGridTableBase *table ) { m_table = table; } - wxGridTableBase * GetTableObject() const { return m_table; } - void SetId( int id ) { m_id = id; } - int GetId() { return m_id; } - void SetCommandInt( int comInt1 ) { m_comInt1 = comInt1; } - int GetCommandInt() { return m_comInt1; } - void SetCommandInt2( int comInt2 ) { m_comInt2 = comInt2; } - int GetCommandInt2() { return m_comInt2; } - -private: - wxGridTableBase *m_table; - int m_id; - int m_comInt1; - int m_comInt2; - - wxDECLARE_NO_COPY_CLASS(wxGridTableMessage); -}; - - - -// ------ wxGridStringArray -// A 2-dimensional array of strings for data values -// - -WX_DECLARE_OBJARRAY_WITH_DECL(wxArrayString, wxGridStringArray, - class WXDLLIMPEXP_ADV); - - - -// ------ wxGridStringTable -// -// Simplest type of data table for a grid for small tables of strings -// that are stored in memory -// - -class WXDLLIMPEXP_ADV wxGridStringTable : public wxGridTableBase -{ -public: - wxGridStringTable(); - wxGridStringTable( int numRows, int numCols ); - - // these are pure virtual in wxGridTableBase - // - virtual int GetNumberRows() wxOVERRIDE { return static_cast(m_data.size()); } - virtual int GetNumberCols() wxOVERRIDE { return m_numCols; } - virtual wxString GetValue( int row, int col ) wxOVERRIDE; - virtual void SetValue( int row, int col, const wxString& s ) wxOVERRIDE; - - // overridden functions from wxGridTableBase - // - void Clear() wxOVERRIDE; - bool InsertRows( size_t pos = 0, size_t numRows = 1 ) wxOVERRIDE; - bool AppendRows( size_t numRows = 1 ) wxOVERRIDE; - bool DeleteRows( size_t pos = 0, size_t numRows = 1 ) wxOVERRIDE; - bool InsertCols( size_t pos = 0, size_t numCols = 1 ) wxOVERRIDE; - bool AppendCols( size_t numCols = 1 ) wxOVERRIDE; - bool DeleteCols( size_t pos = 0, size_t numCols = 1 ) wxOVERRIDE; - - void SetRowLabelValue( int row, const wxString& ) wxOVERRIDE; - void SetColLabelValue( int col, const wxString& ) wxOVERRIDE; - wxString GetRowLabelValue( int row ) wxOVERRIDE; - wxString GetColLabelValue( int col ) wxOVERRIDE; - -private: - wxGridStringArray m_data; - - // notice that while we don't need to store the number of our rows as it's - // always equal to the size of m_data array, we do need to store the number - // of our columns as we can't retrieve it from m_data when the number of - // rows is 0 (see #10818) - int m_numCols; - - // These only get used if you set your own labels, otherwise the - // GetRow/ColLabelValue functions return wxGridTableBase defaults - // - wxArrayString m_rowLabels; - wxArrayString m_colLabels; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxGridStringTable); -}; - - - -// ============================================================================ -// Grid view classes -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxGridSizesInfo stores information about sizes of the rows or columns. -// -// It assumes that most of the columns or rows have default size and so stores -// the default size separately and uses a hash to map column or row numbers to -// their non default size for those which don't have the default size. -// ---------------------------------------------------------------------------- - -// hash map to store positions as the keys and sizes as the values -WX_DECLARE_HASH_MAP_WITH_DECL( unsigned, int, wxIntegerHash, wxIntegerEqual, - wxUnsignedToIntHashMap, class WXDLLIMPEXP_ADV ); - -struct WXDLLIMPEXP_ADV wxGridSizesInfo -{ - // default ctor, initialize m_sizeDefault and m_customSizes later - wxGridSizesInfo() { } - - // ctor used by wxGrid::Get{Col,Row}Sizes() - wxGridSizesInfo(int defSize, const wxArrayInt& allSizes); - - // default copy ctor, assignment operator and dtor are ok - - // Get the size of the element with the given index - int GetSize(unsigned pos) const; - - - // default size - int m_sizeDefault; - - // position -> size map containing all elements with non-default size - wxUnsignedToIntHashMap m_customSizes; -}; - -// ---------------------------------------------------------------------------- -// wxGrid -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxGrid : public wxScrolledWindow -{ -public: - // possible selection modes - enum wxGridSelectionModes - { - wxGridSelectCells = 0, // allow selecting anything - wxGridSelectRows = 1, // allow selecting only entire rows - wxGridSelectColumns = 2, // allow selecting only entire columns - wxGridSelectRowsOrColumns = wxGridSelectRows | wxGridSelectColumns - }; - - // Different behaviour of the TAB key when the end (or the beginning, for - // Shift-TAB) of the current row is reached: - enum TabBehaviour - { - Tab_Stop, // Do nothing, this is default. - Tab_Wrap, // Move to the next (or previous) row. - Tab_Leave // Move to the next (or previous) control. - }; - - // creation and destruction - // ------------------------ - - // ctor and Create() create the grid window, as with the other controls - wxGrid() { Init(); } - - wxGrid(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxWANTS_CHARS, - const wxString& name = wxGridNameStr) - { - Init(); - - Create(parent, id, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxWANTS_CHARS, - const wxString& name = wxGridNameStr); - - virtual ~wxGrid(); - - // however to initialize grid data either CreateGrid() or SetTable() must - // be also called - - // this is basically equivalent to - // - // SetTable(new wxGridStringTable(numRows, numCols), true, selmode) - // - bool CreateGrid( int numRows, int numCols, - wxGridSelectionModes selmode = wxGridSelectCells ); - - bool SetTable( wxGridTableBase *table, - bool takeOwnership = false, - wxGridSelectionModes selmode = wxGridSelectCells ); - - bool ProcessTableMessage(wxGridTableMessage&); - - wxGridTableBase *GetTable() const { return m_table; } - - - void SetSelectionMode(wxGridSelectionModes selmode); - wxGridSelectionModes GetSelectionMode() const; - - // ------ grid dimensions - // - int GetNumberRows() const { return m_numRows; } - int GetNumberCols() const { return m_numCols; } - - - // ------ display update functions - // - wxArrayInt CalcRowLabelsExposed( const wxRegion& reg ) const; - - wxArrayInt CalcColLabelsExposed( const wxRegion& reg ) const; - wxGridCellCoordsArray CalcCellsExposed( const wxRegion& reg ) const; - - - void ClearGrid(); - bool InsertRows(int pos = 0, int numRows = 1, bool updateLabels = true) - { - return DoModifyLines(&wxGridTableBase::InsertRows, - pos, numRows, updateLabels); - } - bool InsertCols(int pos = 0, int numCols = 1, bool updateLabels = true) - { - return DoModifyLines(&wxGridTableBase::InsertCols, - pos, numCols, updateLabels); - } - - bool AppendRows(int numRows = 1, bool updateLabels = true) - { - return DoAppendLines(&wxGridTableBase::AppendRows, numRows, updateLabels); - } - bool AppendCols(int numCols = 1, bool updateLabels = true) - { - return DoAppendLines(&wxGridTableBase::AppendCols, numCols, updateLabels); - } - - bool DeleteRows(int pos = 0, int numRows = 1, bool updateLabels = true) - { - return DoModifyLines(&wxGridTableBase::DeleteRows, - pos, numRows, updateLabels); - } - bool DeleteCols(int pos = 0, int numCols = 1, bool updateLabels = true) - { - return DoModifyLines(&wxGridTableBase::DeleteCols, - pos, numCols, updateLabels); - } - - void DrawGridCellArea( wxDC& dc , const wxGridCellCoordsArray& cells ); - void DrawGridSpace( wxDC& dc ); - void DrawCellBorder( wxDC& dc, const wxGridCellCoords& ); - void DrawAllGridLines( wxDC& dc, const wxRegion & reg ); - void DrawCell( wxDC& dc, const wxGridCellCoords& ); - void DrawHighlight(wxDC& dc, const wxGridCellCoordsArray& cells); - - // this function is called when the current cell highlight must be redrawn - // and may be overridden by the user - virtual void DrawCellHighlight( wxDC& dc, const wxGridCellAttr *attr ); - - virtual void DrawRowLabels( wxDC& dc, const wxArrayInt& rows ); - virtual void DrawRowLabel( wxDC& dc, int row ); - - virtual void DrawColLabels( wxDC& dc, const wxArrayInt& cols ); - virtual void DrawColLabel( wxDC& dc, int col ); - - virtual void DrawCornerLabel(wxDC& dc); - - // ------ Cell text drawing functions - // - void DrawTextRectangle( wxDC& dc, const wxString&, const wxRect&, - int horizontalAlignment = wxALIGN_LEFT, - int verticalAlignment = wxALIGN_TOP, - int textOrientation = wxHORIZONTAL ) const; - - void DrawTextRectangle( wxDC& dc, const wxArrayString& lines, const wxRect&, - int horizontalAlignment = wxALIGN_LEFT, - int verticalAlignment = wxALIGN_TOP, - int textOrientation = wxHORIZONTAL ) const; - - // ------ grid render function for printing - // - void Render( wxDC& dc, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - const wxGridCellCoords& topLeft = wxGridCellCoords(-1, -1), - const wxGridCellCoords& bottomRight = wxGridCellCoords(-1, -1), - int style = wxGRID_DRAW_DEFAULT ); - - // Split a string containing newline characters into an array of - // strings and return the number of lines - // - void StringToLines( const wxString& value, wxArrayString& lines ) const; - - void GetTextBoxSize( const wxDC& dc, - const wxArrayString& lines, - long *width, long *height ) const; - - - // ------ - // Code that does a lot of grid modification can be enclosed - // between BeginBatch() and EndBatch() calls to avoid screen - // flicker - // - void BeginBatch() { m_batchCount++; } - void EndBatch(); - - int GetBatchCount() { return m_batchCount; } - - virtual void Refresh(bool eraseb = true, const wxRect* rect = NULL) wxOVERRIDE; - - // Use this, rather than wxWindow::Refresh(), to force an - // immediate repainting of the grid. Has no effect if you are - // already inside a BeginBatch / EndBatch block. - // - // This function is necessary because wxGrid has a minimal OnPaint() - // handler to reduce screen flicker. - // - void ForceRefresh(); - - - // ------ edit control functions - // - bool IsEditable() const { return m_editable; } - void EnableEditing( bool edit ); - - void EnableCellEditControl( bool enable = true ); - void DisableCellEditControl() { EnableCellEditControl(false); } - bool CanEnableCellControl() const; - bool IsCellEditControlEnabled() const; - bool IsCellEditControlShown() const; - - bool IsCurrentCellReadOnly() const; - - void ShowCellEditControl(); - void HideCellEditControl(); - void SaveEditControlValue(); - - - // ------ grid location functions - // Note that all of these functions work with the logical coordinates of - // grid cells and labels so you will need to convert from device - // coordinates for mouse events etc. - // - wxGridCellCoords XYToCell(int x, int y) const; - void XYToCell(int x, int y, wxGridCellCoords& coords) const - { coords = XYToCell(x, y); } - wxGridCellCoords XYToCell(const wxPoint& pos) const - { return XYToCell(pos.x, pos.y); } - - // these functions return the index of the row/columns corresponding to the - // given logical position in pixels - // - // if clipToMinMax is false (default, wxNOT_FOUND is returned if the - // position is outside any row/column, otherwise the first/last element is - // returned in this case - int YToRow( int y, bool clipToMinMax = false ) const; - int XToCol( int x, bool clipToMinMax = false ) const; - - int YToEdgeOfRow( int y ) const; - int XToEdgeOfCol( int x ) const; - - wxRect CellToRect( int row, int col ) const; - wxRect CellToRect( const wxGridCellCoords& coords ) const - { return CellToRect( coords.GetRow(), coords.GetCol() ); } - - int GetGridCursorRow() const { return m_currentCellCoords.GetRow(); } - int GetGridCursorCol() const { return m_currentCellCoords.GetCol(); } - - // check to see if a cell is either wholly visible (the default arg) or - // at least partially visible in the grid window - // - bool IsVisible( int row, int col, bool wholeCellVisible = true ) const; - bool IsVisible( const wxGridCellCoords& coords, bool wholeCellVisible = true ) const - { return IsVisible( coords.GetRow(), coords.GetCol(), wholeCellVisible ); } - void MakeCellVisible( int row, int col ); - void MakeCellVisible( const wxGridCellCoords& coords ) - { MakeCellVisible( coords.GetRow(), coords.GetCol() ); } - - - // ------ grid cursor movement functions - // - void SetGridCursor(int row, int col) { SetCurrentCell(row, col); } - void SetGridCursor(const wxGridCellCoords& c) { SetCurrentCell(c); } - - void GoToCell(int row, int col) - { - if ( SetCurrentCell(row, col) ) - MakeCellVisible(row, col); - } - - void GoToCell(const wxGridCellCoords& coords) - { - if ( SetCurrentCell(coords) ) - MakeCellVisible(coords); - } - - bool MoveCursorUp( bool expandSelection ); - bool MoveCursorDown( bool expandSelection ); - bool MoveCursorLeft( bool expandSelection ); - bool MoveCursorRight( bool expandSelection ); - bool MovePageDown(); - bool MovePageUp(); - bool MoveCursorUpBlock( bool expandSelection ); - bool MoveCursorDownBlock( bool expandSelection ); - bool MoveCursorLeftBlock( bool expandSelection ); - bool MoveCursorRightBlock( bool expandSelection ); - - void SetTabBehaviour(TabBehaviour behaviour) { m_tabBehaviour = behaviour; } - - - // ------ label and gridline formatting - // - int GetDefaultRowLabelSize() const { return WXGRID_DEFAULT_ROW_LABEL_WIDTH; } - int GetRowLabelSize() const { return m_rowLabelWidth; } - int GetDefaultColLabelSize() const { return WXGRID_DEFAULT_COL_LABEL_HEIGHT; } - int GetColLabelSize() const { return m_colLabelHeight; } - wxColour GetLabelBackgroundColour() const { return m_labelBackgroundColour; } - wxColour GetLabelTextColour() const { return m_labelTextColour; } - wxFont GetLabelFont() const { return m_labelFont; } - void GetRowLabelAlignment( int *horiz, int *vert ) const; - void GetColLabelAlignment( int *horiz, int *vert ) const; - int GetColLabelTextOrientation() const; - wxString GetRowLabelValue( int row ) const; - wxString GetColLabelValue( int col ) const; - - wxColour GetCellHighlightColour() const { return m_cellHighlightColour; } - int GetCellHighlightPenWidth() const { return m_cellHighlightPenWidth; } - int GetCellHighlightROPenWidth() const { return m_cellHighlightROPenWidth; } - - // this one will use wxHeaderCtrl for the column labels - void UseNativeColHeader(bool native = true); - - // this one will still draw them manually but using the native renderer - // instead of using the same appearance as for the row labels - void SetUseNativeColLabels( bool native = true ); - - void SetRowLabelSize( int width ); - void SetColLabelSize( int height ); - void HideRowLabels() { SetRowLabelSize( 0 ); } - void HideColLabels() { SetColLabelSize( 0 ); } - void SetLabelBackgroundColour( const wxColour& ); - void SetLabelTextColour( const wxColour& ); - void SetLabelFont( const wxFont& ); - void SetRowLabelAlignment( int horiz, int vert ); - void SetColLabelAlignment( int horiz, int vert ); - void SetColLabelTextOrientation( int textOrientation ); - void SetRowLabelValue( int row, const wxString& ); - void SetColLabelValue( int col, const wxString& ); - void SetCellHighlightColour( const wxColour& ); - void SetCellHighlightPenWidth(int width); - void SetCellHighlightROPenWidth(int width); - - - // interactive grid mouse operations control - // ----------------------------------------- - - // functions globally enabling row/column interactive resizing (enabled by - // default) - void EnableDragRowSize( bool enable = true ); - void DisableDragRowSize() { EnableDragRowSize( false ); } - - void EnableDragColSize( bool enable = true ); - void DisableDragColSize() { EnableDragColSize( false ); } - - // if interactive resizing is enabled, some rows/columns can still have - // fixed size - void DisableRowResize(int row) { DoDisableLineResize(row, m_setFixedRows); } - void DisableColResize(int col) { DoDisableLineResize(col, m_setFixedCols); } - - // these functions return whether the given row/column can be - // effectively resized: for this interactive resizing must be enabled - // and this index must not have been passed to DisableRow/ColResize() - bool CanDragRowSize(int row) const - { return m_canDragRowSize && DoCanResizeLine(row, m_setFixedRows); } - bool CanDragColSize(int col) const - { return m_canDragColSize && DoCanResizeLine(col, m_setFixedCols); } - - // interactive column reordering (disabled by default) - void EnableDragColMove( bool enable = true ); - void DisableDragColMove() { EnableDragColMove( false ); } - bool CanDragColMove() const { return m_canDragColMove; } - - // interactive resizing of grid cells (enabled by default) - void EnableDragGridSize(bool enable = true); - void DisableDragGridSize() { EnableDragGridSize(false); } - bool CanDragGridSize() const { return m_canDragGridSize; } - - // interactive dragging of cells (disabled by default) - void EnableDragCell( bool enable = true ); - void DisableDragCell() { EnableDragCell( false ); } - bool CanDragCell() const { return m_canDragCell; } - - - // grid lines - // ---------- - - // enable or disable drawing of the lines - void EnableGridLines(bool enable = true); - bool GridLinesEnabled() const { return m_gridLinesEnabled; } - - // by default grid lines stop at last column/row, but this may be changed - void ClipHorzGridLines(bool clip) - { DoClipGridLines(m_gridLinesClipHorz, clip); } - void ClipVertGridLines(bool clip) - { DoClipGridLines(m_gridLinesClipVert, clip); } - bool AreHorzGridLinesClipped() const { return m_gridLinesClipHorz; } - bool AreVertGridLinesClipped() const { return m_gridLinesClipVert; } - - // this can be used to change the global grid lines colour - void SetGridLineColour(const wxColour& col); - wxColour GetGridLineColour() const { return m_gridLineColour; } - - // these methods may be overridden to customize individual grid lines - // appearance - virtual wxPen GetDefaultGridLinePen(); - virtual wxPen GetRowGridLinePen(int row); - virtual wxPen GetColGridLinePen(int col); - - - // attributes - // ---------- - - // this sets the specified attribute for this cell or in this row/col - void SetAttr(int row, int col, wxGridCellAttr *attr); - void SetRowAttr(int row, wxGridCellAttr *attr); - void SetColAttr(int col, wxGridCellAttr *attr); - - // the grid can cache attributes for the recently used cells (currently it - // only caches one attribute for the most recently used one) and might - // notice that its value in the attribute provider has changed -- if this - // happens, call this function to force it - void RefreshAttr(int row, int col); - - // returns the attribute we may modify in place: a new one if this cell - // doesn't have any yet or the existing one if it does - // - // DecRef() must be called on the returned pointer, as usual - wxGridCellAttr *GetOrCreateCellAttr(int row, int col) const; - - - // shortcuts for setting the column parameters - - // set the format for the data in the column: default is string - void SetColFormatBool(int col); - void SetColFormatNumber(int col); - void SetColFormatFloat(int col, int width = -1, int precision = -1); - void SetColFormatCustom(int col, const wxString& typeName); - - // ------ row and col formatting - // - int GetDefaultRowSize() const; - int GetRowSize( int row ) const; - bool IsRowShown(int row) const { return GetRowSize(row) != 0; } - int GetDefaultColSize() const; - int GetColSize( int col ) const; - bool IsColShown(int col) const { return GetColSize(col) != 0; } - wxColour GetDefaultCellBackgroundColour() const; - wxColour GetCellBackgroundColour( int row, int col ) const; - wxColour GetDefaultCellTextColour() const; - wxColour GetCellTextColour( int row, int col ) const; - wxFont GetDefaultCellFont() const; - wxFont GetCellFont( int row, int col ) const; - void GetDefaultCellAlignment( int *horiz, int *vert ) const; - void GetCellAlignment( int row, int col, int *horiz, int *vert ) const; - bool GetDefaultCellOverflow() const; - bool GetCellOverflow( int row, int col ) const; - - // this function returns 1 in num_rows and num_cols for normal cells, - // positive numbers for a cell spanning multiple columns/rows (as set with - // SetCellSize()) and _negative_ numbers corresponding to the offset of the - // top left cell of the span from this one for the other cells covered by - // this cell - // - // the return value is CellSpan_None, CellSpan_Main or CellSpan_Inside for - // each of these cases respectively - enum CellSpan - { - CellSpan_Inside = -1, - CellSpan_None = 0, - CellSpan_Main - }; - - CellSpan GetCellSize( int row, int col, int *num_rows, int *num_cols ) const; - - wxSize GetCellSize(const wxGridCellCoords& coords) - { - wxSize s; - GetCellSize(coords.GetRow(), coords.GetCol(), &s.x, &s.y); - return s; - } - - // ------ row and col sizes - void SetDefaultRowSize( int height, bool resizeExistingRows = false ); - void SetRowSize( int row, int height ); - void HideRow(int row) { DoSetRowSize(row, 0); } - void ShowRow(int row) { DoSetRowSize(row, -1); } - - void SetDefaultColSize( int width, bool resizeExistingCols = false ); - void SetColSize( int col, int width ); - void HideCol(int col) { DoSetColSize(col, 0); } - void ShowCol(int col) { DoSetColSize(col, -1); } - - // the row and column sizes can be also set all at once using - // wxGridSizesInfo which holds all of them at once - - wxGridSizesInfo GetColSizes() const - { return wxGridSizesInfo(GetDefaultColSize(), m_colWidths); } - wxGridSizesInfo GetRowSizes() const - { return wxGridSizesInfo(GetDefaultRowSize(), m_rowHeights); } - - void SetColSizes(const wxGridSizesInfo& sizeInfo); - void SetRowSizes(const wxGridSizesInfo& sizeInfo); - - - // ------- columns (only, for now) reordering - - // columns index <-> positions mapping: by default, the position of the - // column is the same as its index, but the columns can also be reordered - // (either by calling SetColPos() explicitly or by the user dragging the - // columns around) in which case their indices don't correspond to their - // positions on display any longer - // - // internally we always work with indices except for the functions which - // have "Pos" in their names (and which work with columns, not pixels) and - // only the display and hit testing code really cares about display - // positions at all - - // set the positions of all columns at once (this method uses the same - // conventions as wxHeaderCtrl::SetColumnsOrder() for the order array) - void SetColumnsOrder(const wxArrayInt& order); - - // return the column index corresponding to the given (valid) position - int GetColAt(int pos) const - { - return m_colAt.empty() ? pos : m_colAt[pos]; - } - - // reorder the columns so that the column with the given index is now shown - // as the position pos - void SetColPos(int idx, int pos); - - // return the position at which the column with the given index is - // displayed: notice that this is a slow operation as we don't maintain the - // reverse mapping currently - int GetColPos(int idx) const - { - if ( m_colAt.IsEmpty() ) - return idx; - - int pos = m_colAt.Index(idx); - wxASSERT_MSG( pos != wxNOT_FOUND, "invalid column index" ); - - return pos; - } - - // reset the columns positions to the default order - void ResetColPos(); - - - // automatically size the column or row to fit to its contents, if - // setAsMin is true, this optimal width will also be set as minimal width - // for this column - void AutoSizeColumn( int col, bool setAsMin = true ) - { AutoSizeColOrRow(col, setAsMin, wxGRID_COLUMN); } - void AutoSizeRow( int row, bool setAsMin = true ) - { AutoSizeColOrRow(row, setAsMin, wxGRID_ROW); } - - // auto size all columns (very ineffective for big grids!) - void AutoSizeColumns( bool setAsMin = true ) - { (void)SetOrCalcColumnSizes(false, setAsMin); } - - void AutoSizeRows( bool setAsMin = true ) - { (void)SetOrCalcRowSizes(false, setAsMin); } - - // auto size the grid, that is make the columns/rows of the "right" size - // and also set the grid size to just fit its contents - void AutoSize(); - - // Note for both AutoSizeRowLabelSize and AutoSizeColLabelSize: - // If col equals to wxGRID_AUTOSIZE value then function autosizes labels column - // instead of data column. Note that this operation may be slow for large - // tables. - // autosize row height depending on label text - void AutoSizeRowLabelSize( int row ); - - // autosize column width depending on label text - void AutoSizeColLabelSize( int col ); - - // column won't be resized to be lesser width - this must be called during - // the grid creation because it won't resize the column if it's already - // narrower than the minimal width - void SetColMinimalWidth( int col, int width ); - void SetRowMinimalHeight( int row, int width ); - - /* These members can be used to query and modify the minimal - * acceptable size of grid rows and columns. Call this function in - * your code which creates the grid if you want to display cells - * with a size smaller than the default acceptable minimum size. - * Like the members SetColMinimalWidth and SetRowMinimalWidth, - * the existing rows or columns will not be checked/resized. - */ - void SetColMinimalAcceptableWidth( int width ); - void SetRowMinimalAcceptableHeight( int width ); - int GetColMinimalAcceptableWidth() const; - int GetRowMinimalAcceptableHeight() const; - - void SetDefaultCellBackgroundColour( const wxColour& ); - void SetCellBackgroundColour( int row, int col, const wxColour& ); - void SetDefaultCellTextColour( const wxColour& ); - - void SetCellTextColour( int row, int col, const wxColour& ); - void SetDefaultCellFont( const wxFont& ); - void SetCellFont( int row, int col, const wxFont& ); - void SetDefaultCellAlignment( int horiz, int vert ); - void SetCellAlignment( int row, int col, int horiz, int vert ); - void SetDefaultCellOverflow( bool allow ); - void SetCellOverflow( int row, int col, bool allow ); - void SetCellSize( int row, int col, int num_rows, int num_cols ); - - // takes ownership of the pointer - void SetDefaultRenderer(wxGridCellRenderer *renderer); - void SetCellRenderer(int row, int col, wxGridCellRenderer *renderer); - wxGridCellRenderer *GetDefaultRenderer() const; - wxGridCellRenderer* GetCellRenderer(int row, int col) const; - - // takes ownership of the pointer - void SetDefaultEditor(wxGridCellEditor *editor); - void SetCellEditor(int row, int col, wxGridCellEditor *editor); - wxGridCellEditor *GetDefaultEditor() const; - wxGridCellEditor* GetCellEditor(int row, int col) const; - - - - // ------ cell value accessors - // - wxString GetCellValue( int row, int col ) const - { - if ( m_table ) - { - return m_table->GetValue( row, col ); - } - else - { - return wxEmptyString; - } - } - - wxString GetCellValue( const wxGridCellCoords& coords ) const - { return GetCellValue( coords.GetRow(), coords.GetCol() ); } - - void SetCellValue( int row, int col, const wxString& s ); - void SetCellValue( const wxGridCellCoords& coords, const wxString& s ) - { SetCellValue( coords.GetRow(), coords.GetCol(), s ); } - - // returns true if the cell can't be edited - bool IsReadOnly(int row, int col) const; - - // make the cell editable/readonly - void SetReadOnly(int row, int col, bool isReadOnly = true); - - // ------ select blocks of cells - // - void SelectRow( int row, bool addToSelected = false ); - void SelectCol( int col, bool addToSelected = false ); - - void SelectBlock( int topRow, int leftCol, int bottomRow, int rightCol, - bool addToSelected = false ); - - void SelectBlock( const wxGridCellCoords& topLeft, - const wxGridCellCoords& bottomRight, - bool addToSelected = false ) - { SelectBlock( topLeft.GetRow(), topLeft.GetCol(), - bottomRight.GetRow(), bottomRight.GetCol(), - addToSelected ); } - - void SelectAll(); - - bool IsSelection() const; - - // ------ deselect blocks or cells - // - void DeselectRow( int row ); - void DeselectCol( int col ); - void DeselectCell( int row, int col ); - - void ClearSelection(); - - bool IsInSelection( int row, int col ) const; - - bool IsInSelection( const wxGridCellCoords& coords ) const - { return IsInSelection( coords.GetRow(), coords.GetCol() ); } - - wxGridCellCoordsArray GetSelectedCells() const; - wxGridCellCoordsArray GetSelectionBlockTopLeft() const; - wxGridCellCoordsArray GetSelectionBlockBottomRight() const; - wxArrayInt GetSelectedRows() const; - wxArrayInt GetSelectedCols() const; - - // This function returns the rectangle that encloses the block of cells - // limited by TopLeft and BottomRight cell in device coords and clipped - // to the client size of the grid window. - // - wxRect BlockToDeviceRect( const wxGridCellCoords & topLeft, - const wxGridCellCoords & bottomRight ) const; - - // Access or update the selection fore/back colours - wxColour GetSelectionBackground() const - { return m_selectionBackground; } - wxColour GetSelectionForeground() const - { return m_selectionForeground; } - - void SetSelectionBackground(const wxColour& c) { m_selectionBackground = c; } - void SetSelectionForeground(const wxColour& c) { m_selectionForeground = c; } - - - // Methods for a registry for mapping data types to Renderers/Editors - void RegisterDataType(const wxString& typeName, - wxGridCellRenderer* renderer, - wxGridCellEditor* editor); - // DJC MAPTEK - virtual wxGridCellEditor* GetDefaultEditorForCell(int row, int col) const; - wxGridCellEditor* GetDefaultEditorForCell(const wxGridCellCoords& c) const - { return GetDefaultEditorForCell(c.GetRow(), c.GetCol()); } - virtual wxGridCellRenderer* GetDefaultRendererForCell(int row, int col) const; - virtual wxGridCellEditor* GetDefaultEditorForType(const wxString& typeName) const; - virtual wxGridCellRenderer* GetDefaultRendererForType(const wxString& typeName) const; - - // grid may occupy more space than needed for its rows/columns, this - // function allows to set how big this extra space is - void SetMargins(int extraWidth, int extraHeight) - { - m_extraWidth = extraWidth; - m_extraHeight = extraHeight; - - CalcDimensions(); - } - - // Accessors for component windows - wxWindow* GetGridWindow() const { return (wxWindow*)m_gridWin; } - wxWindow* GetGridRowLabelWindow() const { return (wxWindow*)m_rowLabelWin; } - wxWindow* GetGridColLabelWindow() const { return m_colWindow; } - wxWindow* GetGridCornerLabelWindow() const { return (wxWindow*)m_cornerLabelWin; } - - // This one can only be called if we are using the native header window - wxHeaderCtrl *GetGridColHeader() const - { - wxASSERT_MSG( m_useNativeHeader, "no column header window" ); - - // static_cast<> doesn't work without the full class declaration in - // view and we prefer to avoid adding more compile-time dependencies - // even at the cost of using reinterpret_cast<> - return reinterpret_cast(m_colWindow); - } - - // Allow adjustment of scroll increment. The default is (15, 15). - void SetScrollLineX(int x) { m_xScrollPixelsPerLine = x; } - void SetScrollLineY(int y) { m_yScrollPixelsPerLine = y; } - int GetScrollLineX() const { return m_xScrollPixelsPerLine; } - int GetScrollLineY() const { return m_yScrollPixelsPerLine; } - - // ------- drag and drop -#if wxUSE_DRAG_AND_DROP - virtual void SetDropTarget(wxDropTarget *dropTarget) wxOVERRIDE; -#endif // wxUSE_DRAG_AND_DROP - - - // ------- sorting support - - // wxGrid doesn't support sorting on its own but it can indicate the sort - // order in the column header (currently only if native header control is - // used though) - - // return the column currently displaying the sort indicator or wxNOT_FOUND - // if none - int GetSortingColumn() const { return m_sortCol; } - - // return true if this column is currently used for sorting - bool IsSortingBy(int col) const { return GetSortingColumn() == col; } - - // return the current sorting order (on GetSortingColumn()): true for - // ascending sort and false for descending; it doesn't make sense to call - // it if GetSortingColumn() returns wxNOT_FOUND - bool IsSortOrderAscending() const { return m_sortIsAscending; } - - // set the sorting column (or unsets any existing one if wxNOT_FOUND) and - // the order in which to sort - void SetSortingColumn(int col, bool ascending = true); - - // unset any existing sorting column - void UnsetSortingColumn() { SetSortingColumn(wxNOT_FOUND); } - -#if WXWIN_COMPATIBILITY_2_8 - // ------ For compatibility with previous wxGrid only... - // - // ************************************************ - // ** Don't use these in new code because they ** - // ** are liable to disappear in a future ** - // ** revision ** - // ************************************************ - // - - wxGrid( wxWindow *parent, - int x, int y, int w = wxDefaultCoord, int h = wxDefaultCoord, - long style = wxWANTS_CHARS, - const wxString& name = wxPanelNameStr ) - { - Init(); - Create(parent, wxID_ANY, wxPoint(x, y), wxSize(w, h), style, name); - } - - void SetCellValue( const wxString& val, int row, int col ) - { SetCellValue( row, col, val ); } - - void UpdateDimensions() - { CalcDimensions(); } - - int GetRows() const { return GetNumberRows(); } - int GetCols() const { return GetNumberCols(); } - int GetCursorRow() const { return GetGridCursorRow(); } - int GetCursorColumn() const { return GetGridCursorCol(); } - - int GetScrollPosX() const { return 0; } - int GetScrollPosY() const { return 0; } - - void SetScrollX( int WXUNUSED(x) ) { } - void SetScrollY( int WXUNUSED(y) ) { } - - void SetColumnWidth( int col, int width ) - { SetColSize( col, width ); } - - int GetColumnWidth( int col ) const - { return GetColSize( col ); } - - void SetRowHeight( int row, int height ) - { SetRowSize( row, height ); } - - // GetRowHeight() is below - - int GetViewHeight() const // returned num whole rows visible - { return 0; } - - int GetViewWidth() const // returned num whole cols visible - { return 0; } - - void SetLabelSize( int orientation, int sz ) - { - if ( orientation == wxHORIZONTAL ) - SetColLabelSize( sz ); - else - SetRowLabelSize( sz ); - } - - int GetLabelSize( int orientation ) const - { - if ( orientation == wxHORIZONTAL ) - return GetColLabelSize(); - else - return GetRowLabelSize(); - } - - void SetLabelAlignment( int orientation, int align ) - { - if ( orientation == wxHORIZONTAL ) - SetColLabelAlignment( align, wxALIGN_INVALID ); - else - SetRowLabelAlignment( align, wxALIGN_INVALID ); - } - - int GetLabelAlignment( int orientation, int WXUNUSED(align) ) const - { - int h, v; - if ( orientation == wxHORIZONTAL ) - { - GetColLabelAlignment( &h, &v ); - return h; - } - else - { - GetRowLabelAlignment( &h, &v ); - return h; - } - } - - void SetLabelValue( int orientation, const wxString& val, int pos ) - { - if ( orientation == wxHORIZONTAL ) - SetColLabelValue( pos, val ); - else - SetRowLabelValue( pos, val ); - } - - wxString GetLabelValue( int orientation, int pos) const - { - if ( orientation == wxHORIZONTAL ) - return GetColLabelValue( pos ); - else - return GetRowLabelValue( pos ); - } - - wxFont GetCellTextFont() const - { return m_defaultCellAttr->GetFont(); } - - wxFont GetCellTextFont(int WXUNUSED(row), int WXUNUSED(col)) const - { return m_defaultCellAttr->GetFont(); } - - void SetCellTextFont(const wxFont& fnt) - { SetDefaultCellFont( fnt ); } - - void SetCellTextFont(const wxFont& fnt, int row, int col) - { SetCellFont( row, col, fnt ); } - - void SetCellTextColour(const wxColour& val, int row, int col) - { SetCellTextColour( row, col, val ); } - - void SetCellTextColour(const wxColour& col) - { SetDefaultCellTextColour( col ); } - - void SetCellBackgroundColour(const wxColour& col) - { SetDefaultCellBackgroundColour( col ); } - - void SetCellBackgroundColour(const wxColour& colour, int row, int col) - { SetCellBackgroundColour( row, col, colour ); } - - bool GetEditable() const { return IsEditable(); } - void SetEditable( bool edit = true ) { EnableEditing( edit ); } - bool GetEditInPlace() const { return IsCellEditControlEnabled(); } - - void SetEditInPlace(bool WXUNUSED(edit) = true) { } - - void SetCellAlignment( int align, int row, int col) - { SetCellAlignment(row, col, align, wxALIGN_CENTER); } - void SetCellAlignment( int WXUNUSED(align) ) {} - void SetCellBitmap(wxBitmap *WXUNUSED(bitmap), int WXUNUSED(row), int WXUNUSED(col)) - { } - void SetDividerPen(const wxPen& WXUNUSED(pen)) { } - wxPen& GetDividerPen() const; - void OnActivate(bool WXUNUSED(active)) {} - - // ******** End of compatibility functions ********** - - - - // ------ control IDs - enum { wxGRID_CELLCTRL = 2000, - wxGRID_TOPCTRL }; - - // ------ control types - enum { wxGRID_TEXTCTRL = 2100, - wxGRID_CHECKBOX, - wxGRID_CHOICE, - wxGRID_COMBOBOX }; - - wxDEPRECATED_INLINE(bool CanDragRowSize() const, return m_canDragRowSize; ) - wxDEPRECATED_INLINE(bool CanDragColSize() const, return m_canDragColSize; ) -#endif // WXWIN_COMPATIBILITY_2_8 - - - // override some base class functions - virtual bool Enable(bool enable = true) wxOVERRIDE; - virtual wxWindow *GetMainWindowOfCompositeControl() wxOVERRIDE - { return (wxWindow*)m_gridWin; } - virtual void Fit() wxOVERRIDE; - - // implementation only - void CancelMouseCapture(); - -protected: - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - bool m_created; - - wxGridWindow *m_gridWin; - wxGridCornerLabelWindow *m_cornerLabelWin; - wxGridRowLabelWindow *m_rowLabelWin; - - // the real type of the column window depends on m_useNativeHeader value: - // if it is true, its dynamic type is wxHeaderCtrl, otherwise it is - // wxGridColLabelWindow, use accessors below when the real type matters - wxWindow *m_colWindow; - - wxGridColLabelWindow *GetColLabelWindow() const - { - wxASSERT_MSG( !m_useNativeHeader, "no column label window" ); - - return reinterpret_cast(m_colWindow); - } - - wxGridTableBase *m_table; - bool m_ownTable; - - int m_numRows; - int m_numCols; - - wxGridCellCoords m_currentCellCoords; - - // the corners of the block being currently selected or wxGridNoCellCoords - wxGridCellCoords m_selectedBlockTopLeft; - wxGridCellCoords m_selectedBlockBottomRight; - - // when selecting blocks of cells (either from the keyboard using Shift - // with cursor keys, or by dragging the mouse), the selection is anchored - // at m_currentCellCoords which defines one of the corners of the rectangle - // being selected -- and this variable defines the other corner, i.e. it's - // either m_selectedBlockTopLeft or m_selectedBlockBottomRight depending on - // which of them is not m_currentCellCoords - // - // if no block selection is in process, it is set to wxGridNoCellCoords - wxGridCellCoords m_selectedBlockCorner; - - wxGridSelection *m_selection; - - wxColour m_selectionBackground; - wxColour m_selectionForeground; - - // NB: *never* access m_row/col arrays directly because they are created - // on demand, *always* use accessor functions instead! - - // init the m_rowHeights/Bottoms arrays with default values - void InitRowHeights(); - - int m_defaultRowHeight; - int m_minAcceptableRowHeight; - wxArrayInt m_rowHeights; - wxArrayInt m_rowBottoms; - - // init the m_colWidths/Rights arrays - void InitColWidths(); - - int m_defaultColWidth; - int m_minAcceptableColWidth; - wxArrayInt m_colWidths; - wxArrayInt m_colRights; - - int m_sortCol; - bool m_sortIsAscending; - - bool m_useNativeHeader, - m_nativeColumnLabels; - - // get the col/row coords - int GetColWidth(int col) const; - int GetColLeft(int col) const; - int GetColRight(int col) const; - - // this function must be public for compatibility... -public: - int GetRowHeight(int row) const; -protected: - - int GetRowTop(int row) const; - int GetRowBottom(int row) const; - - int m_rowLabelWidth; - int m_colLabelHeight; - - // the size of the margin left to the right and bottom of the cell area - int m_extraWidth, - m_extraHeight; - - wxColour m_labelBackgroundColour; - wxColour m_labelTextColour; - wxFont m_labelFont; - - int m_rowLabelHorizAlign; - int m_rowLabelVertAlign; - int m_colLabelHorizAlign; - int m_colLabelVertAlign; - int m_colLabelTextOrientation; - - bool m_defaultRowLabelValues; - bool m_defaultColLabelValues; - - wxColour m_gridLineColour; - bool m_gridLinesEnabled; - bool m_gridLinesClipHorz, - m_gridLinesClipVert; - wxColour m_cellHighlightColour; - int m_cellHighlightPenWidth; - int m_cellHighlightROPenWidth; - - - // common part of AutoSizeColumn/Row() and GetBestSize() - int SetOrCalcColumnSizes(bool calcOnly, bool setAsMin = true); - int SetOrCalcRowSizes(bool calcOnly, bool setAsMin = true); - - // common part of AutoSizeColumn/Row() - void AutoSizeColOrRow(int n, bool setAsMin, wxGridDirection direction); - - // Calculate the minimum acceptable size for labels area - wxCoord CalcColOrRowLabelAreaMinSize(wxGridDirection direction); - - // if a column has a minimal width, it will be the value for it in this - // hash table - wxLongToLongHashMap m_colMinWidths, - m_rowMinHeights; - - // get the minimal width of the given column/row - int GetColMinimalWidth(int col) const; - int GetRowMinimalHeight(int col) const; - - // do we have some place to store attributes in? - bool CanHaveAttributes() const; - - // cell attribute cache (currently we only cache 1, may be will do - // more/better later) - struct CachedAttr - { - int row, col; - wxGridCellAttr *attr; - } m_attrCache; - - // invalidates the attribute cache - void ClearAttrCache(); - - // adds an attribute to cache - void CacheAttr(int row, int col, wxGridCellAttr *attr) const; - - // looks for an attr in cache, returns true if found - bool LookupAttr(int row, int col, wxGridCellAttr **attr) const; - - // looks for the attr in cache, if not found asks the table and caches the - // result - wxGridCellAttr *GetCellAttr(int row, int col) const; - wxGridCellAttr *GetCellAttr(const wxGridCellCoords& coords ) const - { return GetCellAttr( coords.GetRow(), coords.GetCol() ); } - - // the default cell attr object for cells that don't have their own - wxGridCellAttr* m_defaultCellAttr; - - - bool m_inOnKeyDown; - int m_batchCount; - - - wxGridTypeRegistry* m_typeRegistry; - - enum CursorMode - { - WXGRID_CURSOR_SELECT_CELL, - WXGRID_CURSOR_RESIZE_ROW, - WXGRID_CURSOR_RESIZE_COL, - WXGRID_CURSOR_SELECT_ROW, - WXGRID_CURSOR_SELECT_COL, - WXGRID_CURSOR_MOVE_COL - }; - - // this method not only sets m_cursorMode but also sets the correct cursor - // for the given mode and, if captureMouse is not false releases the mouse - // if it was captured and captures it if it must be captured - // - // for this to work, you should always use it and not set m_cursorMode - // directly! - void ChangeCursorMode(CursorMode mode, - wxWindow *win = NULL, - bool captureMouse = true); - - wxWindow *m_winCapture; // the window which captured the mouse - - // this variable is used not for finding the correct current cursor but - // mainly for finding out what is going to happen if the mouse starts being - // dragged right now - // - // by default it is WXGRID_CURSOR_SELECT_CELL meaning that nothing else is - // going on, and it is set to one of RESIZE/SELECT/MOVE values while the - // corresponding operation will be started if the user starts dragging the - // mouse from the current position - CursorMode m_cursorMode; - - - //Column positions - wxArrayInt m_colAt; - - bool m_canDragRowSize; - bool m_canDragColSize; - bool m_canDragColMove; - bool m_canDragGridSize; - bool m_canDragCell; - - // the last position (horizontal or vertical depending on whether the user - // is resizing a column or a row) where a row or column separator line was - // dragged by the user or -1 of there is no drag operation in progress - int m_dragLastPos; - int m_dragRowOrCol; - - // true if a drag operation is in progress; when this is true, - // m_startDragPos is valid, i.e. not wxDefaultPosition - bool m_isDragging; - - // the position (in physical coordinates) where the user started dragging - // the mouse or wxDefaultPosition if mouse isn't being dragged - // - // notice that this can be != wxDefaultPosition while m_isDragging is still - // false because we wait until the mouse is moved some distance away before - // setting m_isDragging to true - wxPoint m_startDragPos; - - bool m_waitForSlowClick; - - wxGridCellCoords m_selectionStart; - - wxCursor m_rowResizeCursor; - wxCursor m_colResizeCursor; - - bool m_editable; // applies to whole grid - bool m_cellEditCtrlEnabled; // is in-place edit currently shown? - - TabBehaviour m_tabBehaviour; // determines how the TAB key behaves - - void Init(); // common part of all ctors - void Create(); - void CreateColumnWindow(); - void CalcDimensions(); - void CalcWindowSizes(); - bool Redimension( wxGridTableMessage& ); - - - // generate the appropriate grid event and return -1 if it was vetoed, 1 if - // it was processed (but not vetoed) and 0 if it wasn't processed - int SendEvent(wxEventType evtType, - int row, int col, - const wxMouseEvent& e); - int SendEvent(wxEventType evtType, - const wxGridCellCoords& coords, - const wxMouseEvent& e) - { return SendEvent(evtType, coords.GetRow(), coords.GetCol(), e); } - int SendEvent(wxEventType evtType, - int row, int col, - const wxString& s = wxString()); - int SendEvent(wxEventType evtType, - const wxGridCellCoords& coords, - const wxString& s = wxString()) - { return SendEvent(evtType, coords.GetRow(), coords.GetCol(), s); } - int SendEvent(wxEventType evtType, const wxString& s = wxString()) - { return SendEvent(evtType, m_currentCellCoords, s); } - - // send wxEVT_GRID_{ROW,COL}_SIZE or wxEVT_GRID_COL_AUTO_SIZE, return true - // if the event was processed, false otherwise - bool SendGridSizeEvent(wxEventType type, - int row, int col, - const wxMouseEvent& mouseEv); - - void OnPaint( wxPaintEvent& ); - void OnSize( wxSizeEvent& ); - void OnKeyDown( wxKeyEvent& ); - void OnKeyUp( wxKeyEvent& ); - void OnChar( wxKeyEvent& ); - void OnEraseBackground( wxEraseEvent& ); - void OnHideEditor( wxCommandEvent& ); - - - bool SetCurrentCell( const wxGridCellCoords& coords ); - bool SetCurrentCell( int row, int col ) - { return SetCurrentCell( wxGridCellCoords(row, col) ); } - - - // this function is called to extend the block being currently selected - // from mouse and keyboard event handlers - void UpdateBlockBeingSelected(int topRow, int leftCol, - int bottomRow, int rightCol); - - void UpdateBlockBeingSelected(const wxGridCellCoords& topLeft, - const wxGridCellCoords& bottomRight) - { UpdateBlockBeingSelected(topLeft.GetRow(), topLeft.GetCol(), - bottomRight.GetRow(), bottomRight.GetCol()); } - - // ------ functions to get/send data (see also public functions) - // - bool GetModelValues(); - bool SetModelValues(); - - friend class WXDLLIMPEXP_FWD_ADV wxGridSelection; - friend class wxGridRowOperations; - friend class wxGridColumnOperations; - - // they call our private Process{{Corner,Col,Row}Label,GridCell}MouseEvent() - friend class wxGridCornerLabelWindow; - friend class wxGridColLabelWindow; - friend class wxGridRowLabelWindow; - friend class wxGridWindow; - friend class wxGridHeaderRenderer; - - friend class wxGridHeaderCtrl; - -private: - - // implement wxScrolledWindow method to return m_gridWin size - virtual wxSize GetSizeAvailableForScrollTarget(const wxSize& size) wxOVERRIDE; - - // redraw the grid lines, should be called after changing their attributes - void RedrawGridLines(); - - // draw all grid lines in the given cell region (unlike the public - // DrawAllGridLines() which just draws all of them) - void DrawRangeGridLines(wxDC& dc, const wxRegion& reg, - const wxGridCellCoords& topLeft, - const wxGridCellCoords& bottomRight); - - // draw all lines from top to bottom row and left to right column in the - // rectangle determined by (top, left)-(bottom, right) -- but notice that - // the caller must have set up the clipping correctly, this rectangle is - // only used here for optimization - void DoDrawGridLines(wxDC& dc, - int top, int left, - int bottom, int right, - int topRow, int leftCol, - int bottomRight, int rightCol); - - // common part of Clip{Horz,Vert}GridLines - void DoClipGridLines(bool& var, bool clip); - - // update the sorting indicator shown in the specified column (whose index - // must be valid) - // - // this will use GetSortingColumn() and IsSortOrderAscending() to determine - // the sorting indicator to effectively show - void UpdateColumnSortingIndicator(int col); - - // update the grid after changing the columns order (common part of - // SetColPos() and ResetColPos()) - void RefreshAfterColPosChange(); - - - // return the position (not index) of the column at the given logical pixel - // position - // - // this always returns a valid position, even if the coordinate is out of - // bounds (in which case first/last column is returned) - int XToPos(int x) const; - - - // event handlers and their helpers - // -------------------------------- - - // process mouse drag event in WXGRID_CURSOR_SELECT_CELL mode - bool DoGridCellDrag(wxMouseEvent& event, - const wxGridCellCoords& coords, - bool isFirstDrag); - - // process row/column resizing drag event - void DoGridLineDrag(wxMouseEvent& event, const wxGridOperations& oper); - - // process mouse drag event in the grid window - void DoGridDragEvent(wxMouseEvent& event, const wxGridCellCoords& coords); - - // process different clicks on grid cells - void DoGridCellLeftDown(wxMouseEvent& event, - const wxGridCellCoords& coords, - const wxPoint& pos); - void DoGridCellLeftDClick(wxMouseEvent& event, - const wxGridCellCoords& coords, - const wxPoint& pos); - void DoGridCellLeftUp(wxMouseEvent& event, const wxGridCellCoords& coords); - - // process movement (but not dragging) event in the grid cell area - void DoGridMouseMoveEvent(wxMouseEvent& event, - const wxGridCellCoords& coords, - const wxPoint& pos); - - // process mouse events in the grid window - void ProcessGridCellMouseEvent(wxMouseEvent& event); - - // process mouse events in the row/column labels/corner windows - void ProcessRowLabelMouseEvent(wxMouseEvent& event); - void ProcessColLabelMouseEvent(wxMouseEvent& event); - void ProcessCornerLabelMouseEvent(wxMouseEvent& event); - - void DoColHeaderClick(int col); - - void DoStartResizeCol(int col); - void DoUpdateResizeCol(int x); - void DoUpdateResizeColWidth(int w); - void DoStartMoveCol(int col); - - void DoEndDragResizeRow(const wxMouseEvent& event); - void DoEndDragResizeCol(const wxMouseEvent& event); - void DoEndMoveCol(int pos); - - // process a TAB keypress - void DoGridProcessTab(wxKeyboardState& kbdState); - - // common implementations of methods defined for both rows and columns - void DeselectLine(int line, const wxGridOperations& oper); - bool DoEndDragResizeLine(const wxGridOperations& oper); - int PosToLinePos(int pos, bool clipToMinMax, - const wxGridOperations& oper) const; - int PosToLine(int pos, bool clipToMinMax, - const wxGridOperations& oper) const; - int PosToEdgeOfLine(int pos, const wxGridOperations& oper) const; - - bool DoMoveCursor(bool expandSelection, - const wxGridDirectionOperations& diroper); - bool DoMoveCursorByPage(const wxGridDirectionOperations& diroper); - bool DoMoveCursorByBlock(bool expandSelection, - const wxGridDirectionOperations& diroper); - void AdvanceToNextNonEmpty(wxGridCellCoords& coords, - const wxGridDirectionOperations& diroper); - - // common part of {Insert,Delete}{Rows,Cols} - bool DoModifyLines(bool (wxGridTableBase::*funcModify)(size_t, size_t), - int pos, int num, bool updateLabels); - // Append{Rows,Cols} is a bit different because of one less parameter - bool DoAppendLines(bool (wxGridTableBase::*funcAppend)(size_t), - int num, bool updateLabels); - - // common part of Set{Col,Row}Sizes - void DoSetSizes(const wxGridSizesInfo& sizeInfo, - const wxGridOperations& oper); - - // common part of Disable{Row,Col}Resize and CanDrag{Row,Col}Size - void DoDisableLineResize(int line, wxGridFixedIndicesSet *& setFixed); - bool DoCanResizeLine(int line, const wxGridFixedIndicesSet *setFixed) const; - - // Helper of Render(): get grid size, origin offset and fill cell arrays - void GetRenderSizes( const wxGridCellCoords& topLeft, - const wxGridCellCoords& bottomRight, - wxPoint& pointOffSet, wxSize& sizeGrid, - wxGridCellCoordsArray& renderCells, - wxArrayInt& arrayCols, wxArrayInt& arrayRows ); - - // Helper of Render(): set the scale to draw the cells at the right size. - void SetRenderScale( wxDC& dc, const wxPoint& pos, const wxSize& size, - const wxSize& sizeGrid ); - - // Helper of Render(): get render start position from passed parameter - wxPoint GetRenderPosition( wxDC& dc, const wxPoint& position ); - - // Helper of Render(): draws a box around the rendered area - void DoRenderBox( wxDC& dc, const int& style, - const wxPoint& pointOffSet, - const wxSize& sizeCellArea, - const wxGridCellCoords& topLeft, - const wxGridCellCoords& bottomRight ); - - // Implementation of public Set{Row,Col}Size() and {Hide,Show}{Row,Col}(). - // They interpret their height or width parameter slightly different from - // the public methods where -1 in it means "auto fit to the label" for the - // compatibility reasons. Here it means "show a previously hidden row or - // column" while 0 means "hide it" just as in the public methods. And any - // positive values are handled naturally, i.e. they just specify the size. - void DoSetRowSize( int row, int height ); - void DoSetColSize( int col, int width ); - - - // these sets contain the indices of fixed, i.e. non-resizable - // interactively, grid rows or columns and are NULL if there are no fixed - // elements (which is the default) - wxGridFixedIndicesSet *m_setFixedRows, - *m_setFixedCols; - - wxDECLARE_DYNAMIC_CLASS(wxGrid); - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxGrid); -}; - -// ---------------------------------------------------------------------------- -// wxGridUpdateLocker prevents updates to a grid during its lifetime -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxGridUpdateLocker -{ -public: - // if the pointer is NULL, Create() can be called later - wxGridUpdateLocker(wxGrid *grid = NULL) - { - Init(grid); - } - - // can be called if ctor was used with a NULL pointer, must not be called - // more than once - void Create(wxGrid *grid) - { - wxASSERT_MSG( !m_grid, wxT("shouldn't be called more than once") ); - - Init(grid); - } - - ~wxGridUpdateLocker() - { - if ( m_grid ) - m_grid->EndBatch(); - } - -private: - void Init(wxGrid *grid) - { - m_grid = grid; - if ( m_grid ) - m_grid->BeginBatch(); - } - - wxGrid *m_grid; - - wxDECLARE_NO_COPY_CLASS(wxGridUpdateLocker); -}; - -// ---------------------------------------------------------------------------- -// Grid event class and event types -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxGridEvent : public wxNotifyEvent, - public wxKeyboardState -{ -public: - wxGridEvent() - : wxNotifyEvent() - { - Init(-1, -1, -1, -1, false); - } - - wxGridEvent(int id, - wxEventType type, - wxObject* obj, - int row = -1, int col = -1, - int x = -1, int y = -1, - bool sel = true, - const wxKeyboardState& kbd = wxKeyboardState()) - : wxNotifyEvent(type, id), - wxKeyboardState(kbd) - { - Init(row, col, x, y, sel); - SetEventObject(obj); - } - - // explicitly specifying inline allows gcc < 3.4 to - // handle the deprecation attribute even in the constructor. - wxDEPRECATED_CONSTRUCTOR( - wxGridEvent(int id, - wxEventType type, - wxObject* obj, - int row, int col, - int x, int y, - bool sel, - bool control, - bool shift = false, bool alt = false, bool meta = false)); - - virtual int GetRow() { return m_row; } - virtual int GetCol() { return m_col; } - wxPoint GetPosition() { return wxPoint( m_x, m_y ); } - bool Selecting() { return m_selecting; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxGridEvent(*this); } - -protected: - int m_row; - int m_col; - int m_x; - int m_y; - bool m_selecting; - -private: - void Init(int row, int col, int x, int y, bool sel) - { - m_row = row; - m_col = col; - m_x = x; - m_y = y; - m_selecting = sel; - } - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxGridEvent); -}; - -class WXDLLIMPEXP_ADV wxGridSizeEvent : public wxNotifyEvent, - public wxKeyboardState -{ -public: - wxGridSizeEvent() - : wxNotifyEvent() - { - Init(-1, -1, -1); - } - - wxGridSizeEvent(int id, - wxEventType type, - wxObject* obj, - int rowOrCol = -1, - int x = -1, int y = -1, - const wxKeyboardState& kbd = wxKeyboardState()) - : wxNotifyEvent(type, id), - wxKeyboardState(kbd) - { - Init(rowOrCol, x, y); - - SetEventObject(obj); - } - - wxDEPRECATED_CONSTRUCTOR( - wxGridSizeEvent(int id, - wxEventType type, - wxObject* obj, - int rowOrCol, - int x, int y, - bool control, - bool shift = false, - bool alt = false, - bool meta = false) ); - - int GetRowOrCol() { return m_rowOrCol; } - wxPoint GetPosition() { return wxPoint( m_x, m_y ); } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxGridSizeEvent(*this); } - -protected: - int m_rowOrCol; - int m_x; - int m_y; - -private: - void Init(int rowOrCol, int x, int y) - { - m_rowOrCol = rowOrCol; - m_x = x; - m_y = y; - } - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxGridSizeEvent); -}; - - -class WXDLLIMPEXP_ADV wxGridRangeSelectEvent : public wxNotifyEvent, - public wxKeyboardState -{ -public: - wxGridRangeSelectEvent() - : wxNotifyEvent() - { - Init(wxGridNoCellCoords, wxGridNoCellCoords, false); - } - - wxGridRangeSelectEvent(int id, - wxEventType type, - wxObject* obj, - const wxGridCellCoords& topLeft, - const wxGridCellCoords& bottomRight, - bool sel = true, - const wxKeyboardState& kbd = wxKeyboardState()) - : wxNotifyEvent(type, id), - wxKeyboardState(kbd) - { - Init(topLeft, bottomRight, sel); - - SetEventObject(obj); - } - - wxDEPRECATED_CONSTRUCTOR( - wxGridRangeSelectEvent(int id, - wxEventType type, - wxObject* obj, - const wxGridCellCoords& topLeft, - const wxGridCellCoords& bottomRight, - bool sel, - bool control, - bool shift = false, - bool alt = false, - bool meta = false) ); - - wxGridCellCoords GetTopLeftCoords() { return m_topLeft; } - wxGridCellCoords GetBottomRightCoords() { return m_bottomRight; } - int GetTopRow() { return m_topLeft.GetRow(); } - int GetBottomRow() { return m_bottomRight.GetRow(); } - int GetLeftCol() { return m_topLeft.GetCol(); } - int GetRightCol() { return m_bottomRight.GetCol(); } - bool Selecting() { return m_selecting; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxGridRangeSelectEvent(*this); } - -protected: - void Init(const wxGridCellCoords& topLeft, - const wxGridCellCoords& bottomRight, - bool selecting) - { - m_topLeft = topLeft; - m_bottomRight = bottomRight; - m_selecting = selecting; - } - - wxGridCellCoords m_topLeft; - wxGridCellCoords m_bottomRight; - bool m_selecting; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxGridRangeSelectEvent); -}; - - -class WXDLLIMPEXP_ADV wxGridEditorCreatedEvent : public wxCommandEvent -{ -public: - wxGridEditorCreatedEvent() - : wxCommandEvent() - { - m_row = 0; - m_col = 0; - m_ctrl = NULL; - } - - wxGridEditorCreatedEvent(int id, wxEventType type, wxObject* obj, - int row, int col, wxControl* ctrl); - - int GetRow() { return m_row; } - int GetCol() { return m_col; } - wxControl* GetControl() { return m_ctrl; } - void SetRow(int row) { m_row = row; } - void SetCol(int col) { m_col = col; } - void SetControl(wxControl* ctrl) { m_ctrl = ctrl; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxGridEditorCreatedEvent(*this); } - -private: - int m_row; - int m_col; - wxControl* m_ctrl; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxGridEditorCreatedEvent); -}; - - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_CELL_LEFT_CLICK, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_CELL_RIGHT_CLICK, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_CELL_RIGHT_DCLICK, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_LABEL_LEFT_CLICK, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_LABEL_RIGHT_CLICK, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_LABEL_LEFT_DCLICK, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_LABEL_RIGHT_DCLICK, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_ROW_SIZE, wxGridSizeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_COL_SIZE, wxGridSizeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_COL_AUTO_SIZE, wxGridSizeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_RANGE_SELECT, wxGridRangeSelectEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_CELL_CHANGING, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_CELL_CHANGED, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_SELECT_CELL, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_EDITOR_SHOWN, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_EDITOR_HIDDEN, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_EDITOR_CREATED, wxGridEditorCreatedEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_CELL_BEGIN_DRAG, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_COL_MOVE, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_COL_SORT, wxGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_GRID_TABBING, wxGridEvent ); - -typedef void (wxEvtHandler::*wxGridEventFunction)(wxGridEvent&); -typedef void (wxEvtHandler::*wxGridSizeEventFunction)(wxGridSizeEvent&); -typedef void (wxEvtHandler::*wxGridRangeSelectEventFunction)(wxGridRangeSelectEvent&); -typedef void (wxEvtHandler::*wxGridEditorCreatedEventFunction)(wxGridEditorCreatedEvent&); - -#define wxGridEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxGridEventFunction, func) - -#define wxGridSizeEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxGridSizeEventFunction, func) - -#define wxGridRangeSelectEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxGridRangeSelectEventFunction, func) - -#define wxGridEditorCreatedEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxGridEditorCreatedEventFunction, func) - -#define wx__DECLARE_GRIDEVT(evt, id, fn) \ - wx__DECLARE_EVT1(wxEVT_GRID_ ## evt, id, wxGridEventHandler(fn)) - -#define wx__DECLARE_GRIDSIZEEVT(evt, id, fn) \ - wx__DECLARE_EVT1(wxEVT_GRID_ ## evt, id, wxGridSizeEventHandler(fn)) - -#define wx__DECLARE_GRIDRANGESELEVT(evt, id, fn) \ - wx__DECLARE_EVT1(wxEVT_GRID_ ## evt, id, wxGridRangeSelectEventHandler(fn)) - -#define wx__DECLARE_GRIDEDITOREVT(evt, id, fn) \ - wx__DECLARE_EVT1(wxEVT_GRID_ ## evt, id, wxGridEditorCreatedEventHandler(fn)) - -#define EVT_GRID_CMD_CELL_LEFT_CLICK(id, fn) wx__DECLARE_GRIDEVT(CELL_LEFT_CLICK, id, fn) -#define EVT_GRID_CMD_CELL_RIGHT_CLICK(id, fn) wx__DECLARE_GRIDEVT(CELL_RIGHT_CLICK, id, fn) -#define EVT_GRID_CMD_CELL_LEFT_DCLICK(id, fn) wx__DECLARE_GRIDEVT(CELL_LEFT_DCLICK, id, fn) -#define EVT_GRID_CMD_CELL_RIGHT_DCLICK(id, fn) wx__DECLARE_GRIDEVT(CELL_RIGHT_DCLICK, id, fn) -#define EVT_GRID_CMD_LABEL_LEFT_CLICK(id, fn) wx__DECLARE_GRIDEVT(LABEL_LEFT_CLICK, id, fn) -#define EVT_GRID_CMD_LABEL_RIGHT_CLICK(id, fn) wx__DECLARE_GRIDEVT(LABEL_RIGHT_CLICK, id, fn) -#define EVT_GRID_CMD_LABEL_LEFT_DCLICK(id, fn) wx__DECLARE_GRIDEVT(LABEL_LEFT_DCLICK, id, fn) -#define EVT_GRID_CMD_LABEL_RIGHT_DCLICK(id, fn) wx__DECLARE_GRIDEVT(LABEL_RIGHT_DCLICK, id, fn) -#define EVT_GRID_CMD_ROW_SIZE(id, fn) wx__DECLARE_GRIDSIZEEVT(ROW_SIZE, id, fn) -#define EVT_GRID_CMD_COL_SIZE(id, fn) wx__DECLARE_GRIDSIZEEVT(COL_SIZE, id, fn) -#define EVT_GRID_CMD_COL_AUTO_SIZE(id, fn) wx__DECLARE_GRIDSIZEEVT(COL_AUTO_SIZE, id, fn) -#define EVT_GRID_CMD_COL_MOVE(id, fn) wx__DECLARE_GRIDEVT(COL_MOVE, id, fn) -#define EVT_GRID_CMD_COL_SORT(id, fn) wx__DECLARE_GRIDEVT(COL_SORT, id, fn) -#define EVT_GRID_CMD_RANGE_SELECT(id, fn) wx__DECLARE_GRIDRANGESELEVT(RANGE_SELECT, id, fn) -#define EVT_GRID_CMD_CELL_CHANGING(id, fn) wx__DECLARE_GRIDEVT(CELL_CHANGING, id, fn) -#define EVT_GRID_CMD_CELL_CHANGED(id, fn) wx__DECLARE_GRIDEVT(CELL_CHANGED, id, fn) -#define EVT_GRID_CMD_SELECT_CELL(id, fn) wx__DECLARE_GRIDEVT(SELECT_CELL, id, fn) -#define EVT_GRID_CMD_EDITOR_SHOWN(id, fn) wx__DECLARE_GRIDEVT(EDITOR_SHOWN, id, fn) -#define EVT_GRID_CMD_EDITOR_HIDDEN(id, fn) wx__DECLARE_GRIDEVT(EDITOR_HIDDEN, id, fn) -#define EVT_GRID_CMD_EDITOR_CREATED(id, fn) wx__DECLARE_GRIDEDITOREVT(EDITOR_CREATED, id, fn) -#define EVT_GRID_CMD_CELL_BEGIN_DRAG(id, fn) wx__DECLARE_GRIDEVT(CELL_BEGIN_DRAG, id, fn) -#define EVT_GRID_CMD_TABBING(id, fn) wx__DECLARE_GRIDEVT(TABBING, id, fn) - -// same as above but for any id (exists mainly for backwards compatibility but -// then it's also true that you rarely have multiple grid in the same window) -#define EVT_GRID_CELL_LEFT_CLICK(fn) EVT_GRID_CMD_CELL_LEFT_CLICK(wxID_ANY, fn) -#define EVT_GRID_CELL_RIGHT_CLICK(fn) EVT_GRID_CMD_CELL_RIGHT_CLICK(wxID_ANY, fn) -#define EVT_GRID_CELL_LEFT_DCLICK(fn) EVT_GRID_CMD_CELL_LEFT_DCLICK(wxID_ANY, fn) -#define EVT_GRID_CELL_RIGHT_DCLICK(fn) EVT_GRID_CMD_CELL_RIGHT_DCLICK(wxID_ANY, fn) -#define EVT_GRID_LABEL_LEFT_CLICK(fn) EVT_GRID_CMD_LABEL_LEFT_CLICK(wxID_ANY, fn) -#define EVT_GRID_LABEL_RIGHT_CLICK(fn) EVT_GRID_CMD_LABEL_RIGHT_CLICK(wxID_ANY, fn) -#define EVT_GRID_LABEL_LEFT_DCLICK(fn) EVT_GRID_CMD_LABEL_LEFT_DCLICK(wxID_ANY, fn) -#define EVT_GRID_LABEL_RIGHT_DCLICK(fn) EVT_GRID_CMD_LABEL_RIGHT_DCLICK(wxID_ANY, fn) -#define EVT_GRID_ROW_SIZE(fn) EVT_GRID_CMD_ROW_SIZE(wxID_ANY, fn) -#define EVT_GRID_COL_SIZE(fn) EVT_GRID_CMD_COL_SIZE(wxID_ANY, fn) -#define EVT_GRID_COL_AUTO_SIZE(fn) EVT_GRID_CMD_COL_AUTO_SIZE(wxID_ANY, fn) -#define EVT_GRID_COL_MOVE(fn) EVT_GRID_CMD_COL_MOVE(wxID_ANY, fn) -#define EVT_GRID_COL_SORT(fn) EVT_GRID_CMD_COL_SORT(wxID_ANY, fn) -#define EVT_GRID_RANGE_SELECT(fn) EVT_GRID_CMD_RANGE_SELECT(wxID_ANY, fn) -#define EVT_GRID_CELL_CHANGING(fn) EVT_GRID_CMD_CELL_CHANGING(wxID_ANY, fn) -#define EVT_GRID_CELL_CHANGED(fn) EVT_GRID_CMD_CELL_CHANGED(wxID_ANY, fn) -#define EVT_GRID_SELECT_CELL(fn) EVT_GRID_CMD_SELECT_CELL(wxID_ANY, fn) -#define EVT_GRID_EDITOR_SHOWN(fn) EVT_GRID_CMD_EDITOR_SHOWN(wxID_ANY, fn) -#define EVT_GRID_EDITOR_HIDDEN(fn) EVT_GRID_CMD_EDITOR_HIDDEN(wxID_ANY, fn) -#define EVT_GRID_EDITOR_CREATED(fn) EVT_GRID_CMD_EDITOR_CREATED(wxID_ANY, fn) -#define EVT_GRID_CELL_BEGIN_DRAG(fn) EVT_GRID_CMD_CELL_BEGIN_DRAG(wxID_ANY, fn) -#define EVT_GRID_TABBING(fn) EVT_GRID_CMD_TABBING(wxID_ANY, fn) - -// we used to have a single wxEVT_GRID_CELL_CHANGE event but it was split into -// wxEVT_GRID_CELL_CHANGING and CHANGED ones in wx 2.9.0, however the CHANGED -// is basically the same as the old CHANGE event so we keep the name for -// compatibility -#if WXWIN_COMPATIBILITY_2_8 - #define wxEVT_GRID_CELL_CHANGE wxEVT_GRID_CELL_CHANGED - - #define EVT_GRID_CMD_CELL_CHANGE EVT_GRID_CMD_CELL_CHANGED - #define EVT_GRID_CELL_CHANGE EVT_GRID_CELL_CHANGED -#endif // WXWIN_COMPATIBILITY_2_8 - -#if 0 // TODO: implement these ? others ? - -extern const int wxEVT_GRID_CREATE_CELL; -extern const int wxEVT_GRID_CHANGE_LABELS; -extern const int wxEVT_GRID_CHANGE_SEL_LABEL; - -#define EVT_GRID_CREATE_CELL(fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_GRID_CREATE_CELL, wxID_ANY, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxGridEventFunction, &fn ), NULL ), -#define EVT_GRID_CHANGE_LABELS(fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_GRID_CHANGE_LABELS, wxID_ANY, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxGridEventFunction, &fn ), NULL ), -#define EVT_GRID_CHANGE_SEL_LABEL(fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_GRID_CHANGE_SEL_LABEL, wxID_ANY, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxGridEventFunction, &fn ), NULL ), - -#endif - -#endif // wxUSE_GRID -#endif // _WX_GENERIC_GRID_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/gridctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/gridctrl.h deleted file mode 100644 index 044f5653..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/gridctrl.h +++ /dev/null @@ -1,288 +0,0 @@ -/////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/gridctrl.h -// Purpose: wxGrid controls -// Author: Paul Gammans, Roger Gammans -// Modified by: -// Created: 11/04/2001 -// Copyright: (c) The Computer Surgery (paul@compsurg.co.uk) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_GRIDCTRL_H_ -#define _WX_GENERIC_GRIDCTRL_H_ - -#include "wx/grid.h" - -#if wxUSE_GRID - -#define wxGRID_VALUE_CHOICEINT wxT("choiceint") -#define wxGRID_VALUE_DATETIME wxT("datetime") - - -// the default renderer for the cells containing string data -class WXDLLIMPEXP_ADV wxGridCellStringRenderer : public wxGridCellRenderer -{ -public: - // draw the string - virtual void Draw(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - const wxRect& rect, - int row, int col, - bool isSelected) wxOVERRIDE; - - // return the string extent - virtual wxSize GetBestSize(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - int row, int col) wxOVERRIDE; - - virtual wxGridCellRenderer *Clone() const wxOVERRIDE - { return new wxGridCellStringRenderer; } - -protected: - // set the text colours before drawing - void SetTextColoursAndFont(const wxGrid& grid, - const wxGridCellAttr& attr, - wxDC& dc, - bool isSelected); - - // calc the string extent for given string/font - wxSize DoGetBestSize(const wxGridCellAttr& attr, - wxDC& dc, - const wxString& text); -}; - -// the default renderer for the cells containing numeric (long) data -class WXDLLIMPEXP_ADV wxGridCellNumberRenderer : public wxGridCellStringRenderer -{ -public: - // draw the string right aligned - virtual void Draw(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - const wxRect& rect, - int row, int col, - bool isSelected) wxOVERRIDE; - - virtual wxSize GetBestSize(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - int row, int col) wxOVERRIDE; - - virtual wxGridCellRenderer *Clone() const wxOVERRIDE - { return new wxGridCellNumberRenderer; } - -protected: - wxString GetString(const wxGrid& grid, int row, int col); -}; - -class WXDLLIMPEXP_ADV wxGridCellFloatRenderer : public wxGridCellStringRenderer -{ -public: - wxGridCellFloatRenderer(int width = -1, - int precision = -1, - int format = wxGRID_FLOAT_FORMAT_DEFAULT); - - // get/change formatting parameters - int GetWidth() const { return m_width; } - void SetWidth(int width) { m_width = width; m_format.clear(); } - int GetPrecision() const { return m_precision; } - void SetPrecision(int precision) { m_precision = precision; m_format.clear(); } - int GetFormat() const { return m_style; } - void SetFormat(int format) { m_style = format; m_format.clear(); } - - // draw the string right aligned with given width/precision - virtual void Draw(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - const wxRect& rect, - int row, int col, - bool isSelected) wxOVERRIDE; - - virtual wxSize GetBestSize(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - int row, int col) wxOVERRIDE; - - // parameters string format is "width[,precision[,format]]" - // with format being one of f|e|g|E|F|G - virtual void SetParameters(const wxString& params) wxOVERRIDE; - - virtual wxGridCellRenderer *Clone() const wxOVERRIDE; - -protected: - wxString GetString(const wxGrid& grid, int row, int col); - -private: - // formatting parameters - int m_width, - m_precision; - - int m_style; - wxString m_format; -}; - -// renderer for boolean fields -class WXDLLIMPEXP_ADV wxGridCellBoolRenderer : public wxGridCellRenderer -{ -public: - // draw a check mark or nothing - virtual void Draw(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - const wxRect& rect, - int row, int col, - bool isSelected) wxOVERRIDE; - - // return the checkmark size - virtual wxSize GetBestSize(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - int row, int col) wxOVERRIDE; - - virtual wxGridCellRenderer *Clone() const wxOVERRIDE - { return new wxGridCellBoolRenderer; } - -private: - static wxSize ms_sizeCheckMark; -}; - - -#if wxUSE_DATETIME - -#include "wx/datetime.h" - -// the default renderer for the cells containing times and dates -class WXDLLIMPEXP_ADV wxGridCellDateTimeRenderer : public wxGridCellStringRenderer -{ -public: - wxGridCellDateTimeRenderer(const wxString& outformat = wxDefaultDateTimeFormat, - const wxString& informat = wxDefaultDateTimeFormat); - - // draw the string right aligned - virtual void Draw(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - const wxRect& rect, - int row, int col, - bool isSelected) wxOVERRIDE; - - virtual wxSize GetBestSize(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - int row, int col) wxOVERRIDE; - - virtual wxGridCellRenderer *Clone() const wxOVERRIDE; - - // output strptime()-like format string - virtual void SetParameters(const wxString& params) wxOVERRIDE; - -protected: - wxString GetString(const wxGrid& grid, int row, int col); - - wxString m_iformat; - wxString m_oformat; - wxDateTime m_dateDef; - wxDateTime::TimeZone m_tz; -}; - -#endif // wxUSE_DATETIME - -// renders a number using the corresponding text string -class WXDLLIMPEXP_ADV wxGridCellEnumRenderer : public wxGridCellStringRenderer -{ -public: - wxGridCellEnumRenderer( const wxString& choices = wxEmptyString ); - - // draw the string right aligned - virtual void Draw(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - const wxRect& rect, - int row, int col, - bool isSelected) wxOVERRIDE; - - virtual wxSize GetBestSize(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - int row, int col) wxOVERRIDE; - - virtual wxGridCellRenderer *Clone() const wxOVERRIDE; - - // parameters string format is "item1[,item2[...,itemN]]" where itemN will - // be used if the cell value is N-1 - virtual void SetParameters(const wxString& params) wxOVERRIDE; - -protected: - wxString GetString(const wxGrid& grid, int row, int col); - - wxArrayString m_choices; -}; - - -class WXDLLIMPEXP_ADV wxGridCellAutoWrapStringRenderer : public wxGridCellStringRenderer -{ -public: - wxGridCellAutoWrapStringRenderer() : wxGridCellStringRenderer() { } - - virtual void Draw(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - const wxRect& rect, - int row, int col, - bool isSelected) wxOVERRIDE; - - virtual wxSize GetBestSize(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - int row, int col) wxOVERRIDE; - - virtual int GetBestHeight(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - int row, int col, - int width) wxOVERRIDE; - - virtual int GetBestWidth(wxGrid& grid, - wxGridCellAttr& attr, - wxDC& dc, - int row, int col, - int height) wxOVERRIDE; - - virtual wxGridCellRenderer *Clone() const wxOVERRIDE - { return new wxGridCellAutoWrapStringRenderer; } - -private: - wxArrayString GetTextLines( wxGrid& grid, - wxDC& dc, - const wxGridCellAttr& attr, - const wxRect& rect, - int row, int col); - - // Helper methods of GetTextLines() - - // Break a single logical line of text into several physical lines, all of - // which are added to the lines array. The lines are broken at maxWidth and - // the dc is used for measuring text extent only. - void BreakLine(wxDC& dc, - const wxString& logicalLine, - wxCoord maxWidth, - wxArrayString& lines); - - // Break a word, which is supposed to be wider than maxWidth, into several - // lines, which are added to lines array and the last, incomplete, of which - // is returned in line output parameter. - // - // Returns the width of the last line. - wxCoord BreakWord(wxDC& dc, - const wxString& word, - wxCoord maxWidth, - wxArrayString& lines, - wxString& line); - - -}; - -#endif // wxUSE_GRID -#endif // _WX_GENERIC_GRIDCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/grideditors.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/grideditors.h deleted file mode 100644 index faa1007c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/grideditors.h +++ /dev/null @@ -1,378 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/grideditors.h -// Purpose: wxGridCellEditorEvtHandler and wxGrid editors -// Author: Michael Bedward (based on code by Julian Smart, Robin Dunn) -// Modified by: Santiago Palacios -// Created: 1/08/1999 -// Copyright: (c) Michael Bedward -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_GRID_EDITORS_H_ -#define _WX_GENERIC_GRID_EDITORS_H_ - -#include "wx/defs.h" - -#if wxUSE_GRID - -#include "wx/scopedptr.h" - -class wxGridCellEditorEvtHandler : public wxEvtHandler -{ -public: - wxGridCellEditorEvtHandler(wxGrid* grid, wxGridCellEditor* editor) - : m_grid(grid), - m_editor(editor), - m_inSetFocus(false) - { - } - - void OnKillFocus(wxFocusEvent& event); - void OnKeyDown(wxKeyEvent& event); - void OnChar(wxKeyEvent& event); - - void SetInSetFocus(bool inSetFocus) { m_inSetFocus = inSetFocus; } - -private: - wxGrid *m_grid; - wxGridCellEditor *m_editor; - - // Work around the fact that a focus kill event can be sent to - // a combobox within a set focus event. - bool m_inSetFocus; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxGridCellEditorEvtHandler); - wxDECLARE_NO_COPY_CLASS(wxGridCellEditorEvtHandler); -}; - - -#if wxUSE_TEXTCTRL - -// the editor for string/text data -class WXDLLIMPEXP_ADV wxGridCellTextEditor : public wxGridCellEditor -{ -public: - wxEXPLICIT wxGridCellTextEditor(size_t maxChars = 0); - - virtual void Create(wxWindow* parent, - wxWindowID id, - wxEvtHandler* evtHandler) wxOVERRIDE; - virtual void SetSize(const wxRect& rect) wxOVERRIDE; - - virtual void PaintBackground(wxDC& dc, - const wxRect& rectCell, - const wxGridCellAttr& attr) wxOVERRIDE; - - virtual bool IsAcceptedKey(wxKeyEvent& event) wxOVERRIDE; - virtual void BeginEdit(int row, int col, wxGrid* grid) wxOVERRIDE; - virtual bool EndEdit(int row, int col, const wxGrid* grid, - const wxString& oldval, wxString *newval) wxOVERRIDE; - virtual void ApplyEdit(int row, int col, wxGrid* grid) wxOVERRIDE; - - virtual void Reset() wxOVERRIDE; - virtual void StartingKey(wxKeyEvent& event) wxOVERRIDE; - virtual void HandleReturn(wxKeyEvent& event) wxOVERRIDE; - - // parameters string format is "max_width" - virtual void SetParameters(const wxString& params) wxOVERRIDE; -#if wxUSE_VALIDATORS - virtual void SetValidator(const wxValidator& validator); -#endif - - virtual wxGridCellEditor *Clone() const wxOVERRIDE; - - // added GetValue so we can get the value which is in the control - virtual wxString GetValue() const wxOVERRIDE; - -protected: - wxTextCtrl *Text() const { return (wxTextCtrl *)m_control; } - - // parts of our virtual functions reused by the derived classes - void DoCreate(wxWindow* parent, wxWindowID id, wxEvtHandler* evtHandler, - long style = 0); - void DoBeginEdit(const wxString& startValue); - void DoReset(const wxString& startValue); - -private: - size_t m_maxChars; // max number of chars allowed -#if wxUSE_VALIDATORS - wxScopedPtr m_validator; -#endif - wxString m_value; - - wxDECLARE_NO_COPY_CLASS(wxGridCellTextEditor); -}; - -// the editor for numeric (long) data -class WXDLLIMPEXP_ADV wxGridCellNumberEditor : public wxGridCellTextEditor -{ -public: - // allows to specify the range - if min == max == -1, no range checking is - // done - wxGridCellNumberEditor(int min = -1, int max = -1); - - virtual void Create(wxWindow* parent, - wxWindowID id, - wxEvtHandler* evtHandler) wxOVERRIDE; - - virtual bool IsAcceptedKey(wxKeyEvent& event) wxOVERRIDE; - virtual void BeginEdit(int row, int col, wxGrid* grid) wxOVERRIDE; - virtual bool EndEdit(int row, int col, const wxGrid* grid, - const wxString& oldval, wxString *newval) wxOVERRIDE; - virtual void ApplyEdit(int row, int col, wxGrid* grid) wxOVERRIDE; - - virtual void Reset() wxOVERRIDE; - virtual void StartingKey(wxKeyEvent& event) wxOVERRIDE; - - // parameters string format is "min,max" - virtual void SetParameters(const wxString& params) wxOVERRIDE; - - virtual wxGridCellEditor *Clone() const wxOVERRIDE - { return new wxGridCellNumberEditor(m_min, m_max); } - - // added GetValue so we can get the value which is in the control - virtual wxString GetValue() const wxOVERRIDE; - -protected: -#if wxUSE_SPINCTRL - wxSpinCtrl *Spin() const { return (wxSpinCtrl *)m_control; } -#endif - - // if HasRange(), we use wxSpinCtrl - otherwise wxTextCtrl - bool HasRange() const - { -#if wxUSE_SPINCTRL - return m_min != m_max; -#else - return false; -#endif - } - - // string representation of our value - wxString GetString() const - { return wxString::Format(wxT("%ld"), m_value); } - -private: - int m_min, - m_max; - - long m_value; - - wxDECLARE_NO_COPY_CLASS(wxGridCellNumberEditor); -}; - - -enum wxGridCellFloatFormat -{ - // Decimal floating point (%f) - wxGRID_FLOAT_FORMAT_FIXED = 0x0010, - - // Scientific notation (mantise/exponent) using e character (%e) - wxGRID_FLOAT_FORMAT_SCIENTIFIC = 0x0020, - - // Use the shorter of %e or %f (%g) - wxGRID_FLOAT_FORMAT_COMPACT = 0x0040, - - // To use in combination with one of the above formats (%F/%E/%G) - wxGRID_FLOAT_FORMAT_UPPER = 0x0080, - - // Format used by default. - wxGRID_FLOAT_FORMAT_DEFAULT = wxGRID_FLOAT_FORMAT_FIXED, - - // A mask to extract format from the combination of flags. - wxGRID_FLOAT_FORMAT_MASK = wxGRID_FLOAT_FORMAT_FIXED | - wxGRID_FLOAT_FORMAT_SCIENTIFIC | - wxGRID_FLOAT_FORMAT_COMPACT | - wxGRID_FLOAT_FORMAT_UPPER -}; - -// the editor for floating point numbers (double) data -class WXDLLIMPEXP_ADV wxGridCellFloatEditor : public wxGridCellTextEditor -{ -public: - wxGridCellFloatEditor(int width = -1, - int precision = -1, - int format = wxGRID_FLOAT_FORMAT_DEFAULT); - - virtual void Create(wxWindow* parent, - wxWindowID id, - wxEvtHandler* evtHandler) wxOVERRIDE; - - virtual bool IsAcceptedKey(wxKeyEvent& event) wxOVERRIDE; - virtual void BeginEdit(int row, int col, wxGrid* grid) wxOVERRIDE; - virtual bool EndEdit(int row, int col, const wxGrid* grid, - const wxString& oldval, wxString *newval) wxOVERRIDE; - virtual void ApplyEdit(int row, int col, wxGrid* grid) wxOVERRIDE; - - virtual void Reset() wxOVERRIDE; - virtual void StartingKey(wxKeyEvent& event) wxOVERRIDE; - - virtual wxGridCellEditor *Clone() const wxOVERRIDE - { return new wxGridCellFloatEditor(m_width, m_precision); } - - // parameters string format is "width[,precision[,format]]" - // format to choose beween f|e|g|E|G (f is used by default) - virtual void SetParameters(const wxString& params) wxOVERRIDE; - -protected: - // string representation of our value - wxString GetString(); - -private: - int m_width, - m_precision; - double m_value; - - int m_style; - wxString m_format; - - wxDECLARE_NO_COPY_CLASS(wxGridCellFloatEditor); -}; - -#endif // wxUSE_TEXTCTRL - -#if wxUSE_CHECKBOX - -// the editor for boolean data -class WXDLLIMPEXP_ADV wxGridCellBoolEditor : public wxGridCellEditor -{ -public: - wxGridCellBoolEditor() { } - - virtual void Create(wxWindow* parent, - wxWindowID id, - wxEvtHandler* evtHandler) wxOVERRIDE; - - virtual void SetSize(const wxRect& rect) wxOVERRIDE; - virtual void Show(bool show, wxGridCellAttr *attr = NULL) wxOVERRIDE; - - virtual bool IsAcceptedKey(wxKeyEvent& event) wxOVERRIDE; - virtual void BeginEdit(int row, int col, wxGrid* grid) wxOVERRIDE; - virtual bool EndEdit(int row, int col, const wxGrid* grid, - const wxString& oldval, wxString *newval) wxOVERRIDE; - virtual void ApplyEdit(int row, int col, wxGrid* grid) wxOVERRIDE; - - virtual void Reset() wxOVERRIDE; - virtual void StartingClick() wxOVERRIDE; - virtual void StartingKey(wxKeyEvent& event) wxOVERRIDE; - - virtual wxGridCellEditor *Clone() const wxOVERRIDE - { return new wxGridCellBoolEditor; } - - // added GetValue so we can get the value which is in the control, see - // also UseStringValues() - virtual wxString GetValue() const wxOVERRIDE; - - // set the string values returned by GetValue() for the true and false - // states, respectively - static void UseStringValues(const wxString& valueTrue = wxT("1"), - const wxString& valueFalse = wxEmptyString); - - // return true if the given string is equal to the string representation of - // true value which we currently use - static bool IsTrueValue(const wxString& value); - -protected: - wxCheckBox *CBox() const { return (wxCheckBox *)m_control; } - -private: - bool m_value; - - static wxString ms_stringValues[2]; - - wxDECLARE_NO_COPY_CLASS(wxGridCellBoolEditor); -}; - -#endif // wxUSE_CHECKBOX - -#if wxUSE_COMBOBOX - -// the editor for string data allowing to choose from the list of strings -class WXDLLIMPEXP_ADV wxGridCellChoiceEditor : public wxGridCellEditor -{ -public: - // if !allowOthers, user can't type a string not in choices array - wxGridCellChoiceEditor(size_t count = 0, - const wxString choices[] = NULL, - bool allowOthers = false); - wxGridCellChoiceEditor(const wxArrayString& choices, - bool allowOthers = false); - - virtual void Create(wxWindow* parent, - wxWindowID id, - wxEvtHandler* evtHandler) wxOVERRIDE; - - virtual void SetSize(const wxRect& rect) wxOVERRIDE; - - virtual void PaintBackground(wxDC& dc, - const wxRect& rectCell, - const wxGridCellAttr& attr) wxOVERRIDE; - - virtual void BeginEdit(int row, int col, wxGrid* grid) wxOVERRIDE; - virtual bool EndEdit(int row, int col, const wxGrid* grid, - const wxString& oldval, wxString *newval) wxOVERRIDE; - virtual void ApplyEdit(int row, int col, wxGrid* grid) wxOVERRIDE; - - virtual void Reset() wxOVERRIDE; - - // parameters string format is "item1[,item2[...,itemN]]" - virtual void SetParameters(const wxString& params) wxOVERRIDE; - - virtual wxGridCellEditor *Clone() const wxOVERRIDE; - - // added GetValue so we can get the value which is in the control - virtual wxString GetValue() const wxOVERRIDE; - -protected: - wxComboBox *Combo() const { return (wxComboBox *)m_control; } - - wxString m_value; - wxArrayString m_choices; - bool m_allowOthers; - - wxDECLARE_NO_COPY_CLASS(wxGridCellChoiceEditor); -}; - -#endif // wxUSE_COMBOBOX - -#if wxUSE_COMBOBOX - -class WXDLLIMPEXP_ADV wxGridCellEnumEditor : public wxGridCellChoiceEditor -{ -public: - wxGridCellEnumEditor( const wxString& choices = wxEmptyString ); - virtual ~wxGridCellEnumEditor() {} - - virtual wxGridCellEditor* Clone() const wxOVERRIDE; - - virtual void BeginEdit(int row, int col, wxGrid* grid) wxOVERRIDE; - virtual bool EndEdit(int row, int col, const wxGrid* grid, - const wxString& oldval, wxString *newval) wxOVERRIDE; - virtual void ApplyEdit(int row, int col, wxGrid* grid) wxOVERRIDE; - -private: - long m_index; - - wxDECLARE_NO_COPY_CLASS(wxGridCellEnumEditor); -}; - -#endif // wxUSE_COMBOBOX - -class WXDLLIMPEXP_ADV wxGridCellAutoWrapStringEditor : public wxGridCellTextEditor -{ -public: - wxGridCellAutoWrapStringEditor() : wxGridCellTextEditor() { } - virtual void Create(wxWindow* parent, - wxWindowID id, - wxEvtHandler* evtHandler) wxOVERRIDE; - - virtual wxGridCellEditor *Clone() const wxOVERRIDE - { return new wxGridCellAutoWrapStringEditor; } - - wxDECLARE_NO_COPY_CLASS(wxGridCellAutoWrapStringEditor); -}; - -#endif // wxUSE_GRID - -#endif // _WX_GENERIC_GRID_EDITORS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/gridsel.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/gridsel.h deleted file mode 100644 index 76135532..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/gridsel.h +++ /dev/null @@ -1,115 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/gridsel.h -// Purpose: wxGridSelection -// Author: Stefan Neis -// Modified by: -// Created: 20/02/2000 -// Copyright: (c) Stefan Neis -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_GRIDSEL_H_ -#define _WX_GENERIC_GRIDSEL_H_ - -#include "wx/defs.h" - -#if wxUSE_GRID - -#include "wx/grid.h" - -class WXDLLIMPEXP_ADV wxGridSelection -{ -public: - wxGridSelection(wxGrid *grid, - wxGrid::wxGridSelectionModes sel = wxGrid::wxGridSelectCells); - - bool IsSelection(); - bool IsInSelection(int row, int col); - bool IsInSelection(const wxGridCellCoords& coords) - { - return IsInSelection(coords.GetRow(), coords.GetCol()); - } - - void SetSelectionMode(wxGrid::wxGridSelectionModes selmode); - wxGrid::wxGridSelectionModes GetSelectionMode() { return m_selectionMode; } - void SelectRow(int row, const wxKeyboardState& kbd = wxKeyboardState()); - void SelectCol(int col, const wxKeyboardState& kbd = wxKeyboardState()); - void SelectBlock(int topRow, int leftCol, - int bottomRow, int rightCol, - const wxKeyboardState& kbd = wxKeyboardState(), - bool sendEvent = true ); - void SelectBlock(const wxGridCellCoords& topLeft, - const wxGridCellCoords& bottomRight, - const wxKeyboardState& kbd = wxKeyboardState(), - bool sendEvent = true ) - { - SelectBlock(topLeft.GetRow(), topLeft.GetCol(), - bottomRight.GetRow(), bottomRight.GetCol(), - kbd, sendEvent); - } - - void SelectCell(int row, int col, - const wxKeyboardState& kbd = wxKeyboardState(), - bool sendEvent = true); - void SelectCell(const wxGridCellCoords& coords, - const wxKeyboardState& kbd = wxKeyboardState(), - bool sendEvent = true) - { - SelectCell(coords.GetRow(), coords.GetCol(), kbd, sendEvent); - } - - void ToggleCellSelection(int row, int col, - const wxKeyboardState& kbd = wxKeyboardState()); - void ToggleCellSelection(const wxGridCellCoords& coords, - const wxKeyboardState& kbd = wxKeyboardState()) - { - ToggleCellSelection(coords.GetRow(), coords.GetCol(), kbd); - } - - void ClearSelection(); - - void UpdateRows( size_t pos, int numRows ); - void UpdateCols( size_t pos, int numCols ); - -private: - int BlockContain( int topRow1, int leftCol1, - int bottomRow1, int rightCol1, - int topRow2, int leftCol2, - int bottomRow2, int rightCol2 ); - // returns 1, if Block1 contains Block2, - // -1, if Block2 contains Block1, - // 0, otherwise - - int BlockContainsCell( int topRow, int leftCol, - int bottomRow, int rightCol, - int row, int col ) - // returns 1, if Block contains Cell, - // 0, otherwise - { - return ( topRow <= row && row <= bottomRow && - leftCol <= col && col <= rightCol ); - } - - void SelectBlockNoEvent(int topRow, int leftCol, - int bottomRow, int rightCol) - { - SelectBlock(topRow, leftCol, bottomRow, rightCol, - wxKeyboardState(), false); - } - - wxGridCellCoordsArray m_cellSelection; - wxGridCellCoordsArray m_blockSelectionTopLeft; - wxGridCellCoordsArray m_blockSelectionBottomRight; - wxArrayInt m_rowSelection; - wxArrayInt m_colSelection; - - wxGrid *m_grid; - wxGrid::wxGridSelectionModes m_selectionMode; - - friend class WXDLLIMPEXP_FWD_ADV wxGrid; - - wxDECLARE_NO_COPY_CLASS(wxGridSelection); -}; - -#endif // wxUSE_GRID -#endif // _WX_GENERIC_GRIDSEL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/headerctrlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/headerctrlg.h deleted file mode 100644 index 8a2a84ca..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/headerctrlg.h +++ /dev/null @@ -1,181 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/headerctrlg.h -// Purpose: Generic wxHeaderCtrl implementation -// Author: Vadim Zeitlin -// Created: 2008-12-01 -// Copyright: (c) 2008 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_HEADERCTRLG_H_ -#define _WX_GENERIC_HEADERCTRLG_H_ - -#include "wx/event.h" -#include "wx/vector.h" -#include "wx/overlay.h" - -// ---------------------------------------------------------------------------- -// wxHeaderCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxHeaderCtrl : public wxHeaderCtrlBase -{ -public: - wxHeaderCtrl() - { - Init(); - } - - wxHeaderCtrl(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHD_DEFAULT_STYLE, - const wxString& name = wxHeaderCtrlNameStr) - { - Init(); - - Create(parent, id, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHD_DEFAULT_STYLE, - const wxString& name = wxHeaderCtrlNameStr); - - virtual ~wxHeaderCtrl(); - -protected: - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - -private: - // implement base class pure virtuals - virtual void DoSetCount(unsigned int count) wxOVERRIDE; - virtual unsigned int DoGetCount() const wxOVERRIDE; - virtual void DoUpdate(unsigned int idx) wxOVERRIDE; - - virtual void DoScrollHorz(int dx) wxOVERRIDE; - - virtual void DoSetColumnsOrder(const wxArrayInt& order) wxOVERRIDE; - virtual wxArrayInt DoGetColumnsOrder() const wxOVERRIDE; - - // common part of all ctors - void Init(); - - // event handlers - void OnPaint(wxPaintEvent& event); - void OnMouse(wxMouseEvent& event); - void OnKeyDown(wxKeyEvent& event); - void OnCaptureLost(wxMouseCaptureLostEvent& event); - - // move the column with given idx at given position (this doesn't generate - // any events but does refresh the display) - void DoMoveCol(unsigned int idx, unsigned int pos); - - // return the horizontal start position of the given column in physical - // coordinates - int GetColStart(unsigned int idx) const; - - // and the end position - int GetColEnd(unsigned int idx) const; - - // refresh the given column [only]; idx must be valid - void RefreshCol(unsigned int idx); - - // refresh the given column if idx is valid - void RefreshColIfNotNone(unsigned int idx); - - // refresh all the controls starting from (and including) the given one - void RefreshColsAfter(unsigned int idx); - - // return the column at the given position or -1 if it is beyond the - // rightmost column and put true into onSeparator output parameter if the - // position is near the divider at the right end of this column (notice - // that this means that we return column 0 even if the position is over - // column 1 but close enough to the divider separating it from column 0) - unsigned int FindColumnAtPoint(int x, bool *onSeparator = NULL) const; - - // return true if a drag resizing operation is currently in progress - bool IsResizing() const; - - // return true if a drag reordering operation is currently in progress - bool IsReordering() const; - - // return true if any drag operation is currently in progress - bool IsDragging() const { return IsResizing() || IsReordering(); } - - // end any drag operation currently in progress (resizing or reordering) - void EndDragging(); - - // cancel the drag operation currently in progress and generate an event - // about it - void CancelDragging(); - - // start (if m_colBeingResized is -1) or continue resizing the column - // - // this generates wxEVT_HEADER_BEGIN_RESIZE/RESIZING events and can - // cancel the operation if the user handler decides so - void StartOrContinueResizing(unsigned int col, int xPhysical); - - // end the resizing operation currently in progress and generate an event - // about it with its cancelled flag set if xPhysical is -1 - void EndResizing(int xPhysical); - - // same functions as above but for column moving/reordering instead of - // resizing - void StartReordering(unsigned int col, int xPhysical); - - // returns true if we did drag the column somewhere else or false if we - // didn't really move it -- in this case we consider that no reordering - // took place and that a normal column click event should be generated - bool EndReordering(int xPhysical); - - // constrain the given position to be larger than the start position of the - // given column plus its minimal width and return the effective width - int ConstrainByMinWidth(unsigned int col, int& xPhysical); - - // update the information displayed while a column is being moved around - void UpdateReorderingMarker(int xPhysical); - - // clear any overlaid markers - void ClearMarkers(); - - - // number of columns in the control currently - unsigned int m_numColumns; - - // index of the column under mouse or -1 if none - unsigned int m_hover; - - // the column being resized or -1 if there is no resizing operation in - // progress - unsigned int m_colBeingResized; - - // the column being moved or -1 if there is no reordering operation in - // progress - unsigned int m_colBeingReordered; - - // the distance from the start of m_colBeingReordered and the mouse - // position when the user started to drag it - int m_dragOffset; - - // the horizontal scroll offset - int m_scrollOffset; - - // the overlay display used during the dragging operations - wxOverlay m_overlay; - - // the indices of the column appearing at the given position on the display - // (its size is always m_numColumns) - wxArrayInt m_colIndices; - - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxHeaderCtrl); -}; - -#endif // _WX_GENERIC_HEADERCTRLG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/helpext.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/helpext.h deleted file mode 100644 index b713cd85..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/helpext.h +++ /dev/null @@ -1,105 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/helpext.h -// Purpose: an external help controller for wxWidgets -// Author: Karsten Ballueder (Ballueder@usa.net) -// Modified by: -// Copyright: (c) Karsten Ballueder 1998 -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __WX_HELPEXT_H_ -#define __WX_HELPEXT_H_ - -#if wxUSE_HELP - - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/helpbase.h" - - -// ---------------------------------------------------------------------------- -// wxExtHelpController -// ---------------------------------------------------------------------------- - -// This class implements help via an external browser. -class WXDLLIMPEXP_ADV wxExtHelpController : public wxHelpControllerBase -{ -public: - wxExtHelpController(wxWindow* parentWindow = NULL); - virtual ~wxExtHelpController(); - -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED(void SetBrowser(const wxString& browsername = wxEmptyString, bool isNetscape = false) ); -#endif - - // Set viewer: new name for SetBrowser - virtual void SetViewer(const wxString& viewer = wxEmptyString, - long flags = wxHELP_NETSCAPE) wxOVERRIDE; - - virtual bool Initialize(const wxString& dir, int WXUNUSED(server)) wxOVERRIDE - { return Initialize(dir); } - - virtual bool Initialize(const wxString& dir) wxOVERRIDE; - virtual bool LoadFile(const wxString& file = wxEmptyString) wxOVERRIDE; - virtual bool DisplayContents(void) wxOVERRIDE; - virtual bool DisplaySection(int sectionNo) wxOVERRIDE; - virtual bool DisplaySection(const wxString& section) wxOVERRIDE; - virtual bool DisplayBlock(long blockNo) wxOVERRIDE; - virtual bool KeywordSearch(const wxString& k, - wxHelpSearchMode mode = wxHELP_SEARCH_ALL) wxOVERRIDE; - - virtual bool Quit(void) wxOVERRIDE; - virtual void OnQuit(void) wxOVERRIDE; - - virtual bool DisplayHelp(const wxString &) ; - - virtual void SetFrameParameters(const wxString& WXUNUSED(title), - const wxSize& WXUNUSED(size), - const wxPoint& WXUNUSED(pos) = wxDefaultPosition, - bool WXUNUSED(newFrameEachTime) = false) wxOVERRIDE - { - // does nothing by default - } - - virtual wxFrame *GetFrameParameters(wxSize *WXUNUSED(size) = NULL, - wxPoint *WXUNUSED(pos) = NULL, - bool *WXUNUSED(newFrameEachTime) = NULL) wxOVERRIDE - { - return NULL; // does nothing by default - } - -protected: - // Filename of currently active map file. - wxString m_helpDir; - - // How many entries do we have in the map file? - int m_NumOfEntries; - - // A list containing all id,url,documentation triples. - wxList *m_MapList; - -private: - // parse a single line of the map file (called by LoadFile()) - // - // return true if the line was valid or false otherwise - bool ParseMapFileLine(const wxString& line); - - // Deletes the list and all objects. - void DeleteList(void); - - - // How to call the html viewer. - wxString m_BrowserName; - - // Is the viewer a variant of netscape? - bool m_BrowserIsNetscape; - - wxDECLARE_CLASS(wxExtHelpController); -}; - -#endif // wxUSE_HELP - -#endif // __WX_HELPEXT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/hyperlink.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/hyperlink.h deleted file mode 100644 index eb733888..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/hyperlink.h +++ /dev/null @@ -1,144 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/hyperlink.h -// Purpose: Hyperlink control -// Author: David Norris , Otto Wyss -// Modified by: Ryan Norton, Francesco Montorsi -// Created: 04/02/2005 -// Copyright: (c) 2005 David Norris -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERICHYPERLINKCTRL_H_ -#define _WX_GENERICHYPERLINKCTRL_H_ - -// ---------------------------------------------------------------------------- -// wxGenericHyperlinkCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxGenericHyperlinkCtrl : public wxHyperlinkCtrlBase -{ -public: - // Default constructor (for two-step construction). - wxGenericHyperlinkCtrl() { Init(); } - - // Constructor. - wxGenericHyperlinkCtrl(wxWindow *parent, - wxWindowID id, - const wxString& label, const wxString& url, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHL_DEFAULT_STYLE, - const wxString& name = wxHyperlinkCtrlNameStr) - { - Init(); - (void) Create(parent, id, label, url, pos, size, style, name); - } - - // Creation function (for two-step construction). - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label, const wxString& url, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHL_DEFAULT_STYLE, - const wxString& name = wxHyperlinkCtrlNameStr); - - - // get/set - wxColour GetHoverColour() const { return m_hoverColour; } - void SetHoverColour(const wxColour &colour) { m_hoverColour = colour; } - - wxColour GetNormalColour() const { return m_normalColour; } - void SetNormalColour(const wxColour &colour); - - wxColour GetVisitedColour() const { return m_visitedColour; } - void SetVisitedColour(const wxColour &colour); - - wxString GetURL() const { return m_url; } - void SetURL (const wxString &url) { m_url=url; } - - void SetVisited(bool visited = true) { m_visited=visited; } - bool GetVisited() const { return m_visited; } - - // NOTE: also wxWindow::Set/GetLabel, wxWindow::Set/GetBackgroundColour, - // wxWindow::Get/SetFont, wxWindow::Get/SetCursor are important ! - - -protected: - // Helper used by this class itself and native MSW implementation that - // connects OnRightUp() and OnPopUpCopy() handlers. - void ConnectMenuHandlers(); - - // event handlers - - // Renders the hyperlink. - void OnPaint(wxPaintEvent& event); - - // Handle set/kill focus events (invalidate for painting focus rect) - void OnFocus(wxFocusEvent& event); - - // Fire a HyperlinkEvent on space - void OnChar(wxKeyEvent& event); - - // Returns the wxRect of the label of this hyperlink. - // This is different from the clientsize's rectangle when - // clientsize != bestsize and this rectangle is influenced - // by the alignment of the label (wxHL_ALIGN_*). - wxRect GetLabelRect() const; - - // If the click originates inside the bounding box of the label, - // a flag is set so that an event will be fired when the left - // button is released. - void OnLeftDown(wxMouseEvent& event); - - // If the click both originated and finished inside the bounding box - // of the label, a HyperlinkEvent is fired. - void OnLeftUp(wxMouseEvent& event); - void OnRightUp(wxMouseEvent& event); - - // Changes the cursor to a hand, if the mouse is inside the label's - // bounding box. - void OnMotion(wxMouseEvent& event); - - // Changes the cursor back to the default, if necessary. - void OnLeaveWindow(wxMouseEvent& event); - - // handles "Copy URL" menuitem - void OnPopUpCopy(wxCommandEvent& event); - - // overridden base class virtuals - - // Returns the best size for the window, which is the size needed - // to display the text label. - virtual wxSize DoGetBestClientSize() const; - - // creates a context menu with "Copy URL" menuitem - virtual void DoContextMenu(const wxPoint &); - -private: - // Common part of all ctors. - void Init(); - - // URL associated with the link. This is transmitted inside - // the HyperlinkEvent fired when the user clicks on the label. - wxString m_url; - - // Foreground colours for various link types. - // NOTE: wxWindow::m_backgroundColour is used for background, - // wxWindow::m_foregroundColour is used to render non-visited links - wxColour m_hoverColour; - wxColour m_normalColour; - wxColour m_visitedColour; - - // True if the mouse cursor is inside the label's bounding box. - bool m_rollover; - - // True if the link has been clicked before. - bool m_visited; - - // True if a click is in progress (left button down) and the click - // originated inside the label's bounding box. - bool m_clicking; -}; - -#endif // _WX_GENERICHYPERLINKCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/icon.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/icon.h deleted file mode 100644 index 0b98032a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/icon.h +++ /dev/null @@ -1,62 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/icon.h -// Purpose: wxIcon implementation for ports where it's same as wxBitmap -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_ICON_H_ -#define _WX_GENERIC_ICON_H_ - -#include "wx/bitmap.h" - -//----------------------------------------------------------------------------- -// wxIcon -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxIcon: public wxBitmap -{ -public: - wxIcon(); - - wxIcon(const char* const* bits); -#ifdef wxNEEDS_CHARPP - wxIcon(char **bits); -#endif - - // For compatibility with wxMSW where desired size is sometimes required to - // distinguish between multiple icons in a resource. - wxIcon( const wxString& filename, - wxBitmapType type = wxICON_DEFAULT_TYPE, - int WXUNUSED(desiredWidth)=-1, int WXUNUSED(desiredHeight)=-1 ) : - wxBitmap(filename, type) - { - } - - wxIcon(const wxIconLocation& loc) - : wxBitmap(loc.GetFileName(), wxBITMAP_TYPE_ANY) - { - } - - bool LoadFile(const wxString& name, wxBitmapType flags, - int WXUNUSED(desiredWidth), int WXUNUSED(desiredHeight)) - { return wxBitmap::LoadFile(name, flags); } - - // unhide the base class version - virtual bool LoadFile(const wxString& name, - wxBitmapType flags = wxICON_DEFAULT_TYPE) wxOVERRIDE - { return wxBitmap::LoadFile(name, flags); } - - // create from bitmap (which should have a mask unless it's monochrome): - // there shouldn't be any implicit bitmap -> icon conversion (i.e. no - // ctors, assignment operators...), but it's ok to have such function - void CopyFromBitmap(const wxBitmap& bmp); - -private: - wxDECLARE_DYNAMIC_CLASS(wxIcon); -}; - -#endif // _WX_GENERIC_ICON_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/imaglist.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/imaglist.h deleted file mode 100644 index f87e19b4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/imaglist.h +++ /dev/null @@ -1,80 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/imaglist.h -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Copyright: (c) 1998 Robert Roebling and Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGLISTG_H_ -#define _WX_IMAGLISTG_H_ - -#include "wx/gdicmn.h" - -class WXDLLIMPEXP_FWD_CORE wxDC; -class WXDLLIMPEXP_FWD_CORE wxBitmap; -class WXDLLIMPEXP_FWD_CORE wxIcon; -class WXDLLIMPEXP_FWD_CORE wxColour; - - -class WXDLLIMPEXP_CORE wxGenericImageList: public wxObject -{ -public: - wxGenericImageList() { m_width = m_height = 0; } - wxGenericImageList( int width, int height, bool mask = true, int initialCount = 1 ); - virtual ~wxGenericImageList(); - bool Create( int width, int height, bool mask = true, int initialCount = 1 ); - bool Create(); - - virtual int GetImageCount() const; - virtual bool GetSize( int index, int &width, int &height ) const; - virtual wxSize GetSize() const { return wxSize(m_width, m_height); } - - int Add( const wxBitmap& bitmap ); - int Add( const wxBitmap& bitmap, const wxBitmap& mask ); - int Add( const wxBitmap& bitmap, const wxColour& maskColour ); - wxBitmap GetBitmap(int index) const; - wxIcon GetIcon(int index) const; - bool Replace( int index, const wxBitmap &bitmap ); - bool Replace( int index, const wxBitmap &bitmap, const wxBitmap& mask ); - bool Remove( int index ); - bool RemoveAll(); - - virtual bool Draw(int index, wxDC& dc, int x, int y, - int flags = wxIMAGELIST_DRAW_NORMAL, - bool solidBackground = false); - - // Internal use only - const wxBitmap *GetBitmapPtr(int index) const; -private: - wxObjectList m_images; - - int m_width; - int m_height; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxGenericImageList); -}; - -#ifndef wxHAS_NATIVE_IMAGELIST - -/* - * wxImageList has to be a real class or we have problems with - * the run-time information. - */ - -class WXDLLIMPEXP_CORE wxImageList: public wxGenericImageList -{ - wxDECLARE_DYNAMIC_CLASS(wxImageList); - -public: - wxImageList() {} - - wxImageList( int width, int height, bool mask = true, int initialCount = 1 ) - : wxGenericImageList(width, height, mask, initialCount) - { - } -}; -#endif // !wxHAS_NATIVE_IMAGELIST - -#endif // _WX_IMAGLISTG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/infobar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/infobar.h deleted file mode 100644 index 2fb2312d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/infobar.h +++ /dev/null @@ -1,139 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/infobar.h -// Purpose: generic wxInfoBar class declaration -// Author: Vadim Zeitlin -// Created: 2009-07-28 -// Copyright: (c) 2009 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_INFOBAR_H_ -#define _WX_GENERIC_INFOBAR_H_ - -class WXDLLIMPEXP_FWD_CORE wxBitmapButton; -class WXDLLIMPEXP_FWD_CORE wxStaticBitmap; -class WXDLLIMPEXP_FWD_CORE wxStaticText; - -// ---------------------------------------------------------------------------- -// wxInfoBar -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxInfoBarGeneric : public wxInfoBarBase -{ -public: - // the usual ctors and Create() but remember that info bar is created - // hidden - wxInfoBarGeneric() { Init(); } - - wxInfoBarGeneric(wxWindow *parent, wxWindowID winid = wxID_ANY) - { - Init(); - Create(parent, winid); - } - - bool Create(wxWindow *parent, wxWindowID winid = wxID_ANY); - - - // implement base class methods - // ---------------------------- - - virtual void ShowMessage(const wxString& msg, - int flags = wxICON_INFORMATION) wxOVERRIDE; - - virtual void Dismiss() wxOVERRIDE; - - virtual void AddButton(wxWindowID btnid, const wxString& label = wxString()) wxOVERRIDE; - - virtual void RemoveButton(wxWindowID btnid) wxOVERRIDE; - - virtual size_t GetButtonCount() const wxOVERRIDE; - virtual wxWindowID GetButtonId(size_t idx) const wxOVERRIDE; - virtual bool HasButtonId(wxWindowID btnid) const wxOVERRIDE; - - // methods specific to this version - // -------------------------------- - - // set the effect(s) to use when showing/hiding the bar, may be - // wxSHOW_EFFECT_NONE to disable any effects entirely - // - // by default, slide to bottom/top is used when it's positioned on the top - // of the window for showing/hiding it and top/bottom when it's positioned - // at the bottom - void SetShowHideEffects(wxShowEffect showEffect, wxShowEffect hideEffect) - { - m_showEffect = showEffect; - m_hideEffect = hideEffect; - } - - // get effect used when showing/hiding the window - wxShowEffect GetShowEffect() const; - wxShowEffect GetHideEffect() const; - - // set the duration of animation used when showing/hiding the bar, in ms - void SetEffectDuration(int duration) { m_effectDuration = duration; } - - // get the currently used effect animation duration - int GetEffectDuration() const { return m_effectDuration; } - - - // overridden base class methods - // ----------------------------- - - // setting the font of this window sets it for the text control inside it - // (default font is a larger and bold version of the normal one) - virtual bool SetFont(const wxFont& font) wxOVERRIDE; - - // same thing with the colour: this affects the text colour - virtual bool SetForegroundColour(const wxColor& colour) wxOVERRIDE; - -protected: - // info bar shouldn't have any border by default, the colour difference - // between it and the main window separates it well enough - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - - // update the parent to take our new or changed size into account (notably - // should be called when we're shown or hidden) - void UpdateParent(); - -private: - // common part of all ctors - void Init(); - - // handler for the close button - void OnButton(wxCommandEvent& event); - - // show/hide the bar - void DoShow(); - void DoHide(); - - // determine the placement of the bar from its position in the containing - // sizer - enum BarPlacement - { - BarPlacement_Top, - BarPlacement_Bottom, - BarPlacement_Unknown - }; - - BarPlacement GetBarPlacement() const; - - - // different controls making up the bar - wxStaticBitmap *m_icon; - wxStaticText *m_text; - wxBitmapButton *m_button; - - // the effects to use when showing/hiding and duration for them: by default - // the effect is determined by the info bar automatically depending on its - // position and the default duration is used - wxShowEffect m_showEffect, - m_hideEffect; - int m_effectDuration; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxInfoBarGeneric); -}; - -#endif // _WX_GENERIC_INFOBAR_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/laywin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/laywin.h deleted file mode 100644 index 1e56b5e1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/laywin.h +++ /dev/null @@ -1,227 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/laywin.h -// Purpose: Implements a simple layout algorithm, plus -// wxSashLayoutWindow which is an example of a window with -// layout-awareness (via event handlers). This is suited to -// IDE-style window layout. -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LAYWIN_H_G_ -#define _WX_LAYWIN_H_G_ - -#if wxUSE_SASH - #include "wx/sashwin.h" -#endif // wxUSE_SASH - -#include "wx/event.h" - -class WXDLLIMPEXP_FWD_ADV wxQueryLayoutInfoEvent; -class WXDLLIMPEXP_FWD_ADV wxCalculateLayoutEvent; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_QUERY_LAYOUT_INFO, wxQueryLayoutInfoEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_CALCULATE_LAYOUT, wxCalculateLayoutEvent ); - -enum wxLayoutOrientation -{ - wxLAYOUT_HORIZONTAL, - wxLAYOUT_VERTICAL -}; - -enum wxLayoutAlignment -{ - wxLAYOUT_NONE, - wxLAYOUT_TOP, - wxLAYOUT_LEFT, - wxLAYOUT_RIGHT, - wxLAYOUT_BOTTOM -}; - -// Not sure this is necessary -// Tell window which dimension we're sizing on -#define wxLAYOUT_LENGTH_Y 0x0008 -#define wxLAYOUT_LENGTH_X 0x0000 - -// Use most recently used length -#define wxLAYOUT_MRU_LENGTH 0x0010 - -// Only a query, so don't actually move it. -#define wxLAYOUT_QUERY 0x0100 - -/* - * This event is used to get information about window alignment, - * orientation and size. - */ - -class WXDLLIMPEXP_ADV wxQueryLayoutInfoEvent: public wxEvent -{ -public: - wxQueryLayoutInfoEvent(wxWindowID id = 0) - { - SetEventType(wxEVT_QUERY_LAYOUT_INFO); - m_requestedLength = 0; - m_flags = 0; - m_id = id; - m_alignment = wxLAYOUT_TOP; - m_orientation = wxLAYOUT_HORIZONTAL; - } - - // Read by the app - void SetRequestedLength(int length) { m_requestedLength = length; } - int GetRequestedLength() const { return m_requestedLength; } - - void SetFlags(int flags) { m_flags = flags; } - int GetFlags() const { return m_flags; } - - // Set by the app - void SetSize(const wxSize& size) { m_size = size; } - wxSize GetSize() const { return m_size; } - - void SetOrientation(wxLayoutOrientation orient) { m_orientation = orient; } - wxLayoutOrientation GetOrientation() const { return m_orientation; } - - void SetAlignment(wxLayoutAlignment align) { m_alignment = align; } - wxLayoutAlignment GetAlignment() const { return m_alignment; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxQueryLayoutInfoEvent(*this); } - -protected: - int m_flags; - int m_requestedLength; - wxSize m_size; - wxLayoutOrientation m_orientation; - wxLayoutAlignment m_alignment; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxQueryLayoutInfoEvent); -}; - -typedef void (wxEvtHandler::*wxQueryLayoutInfoEventFunction)(wxQueryLayoutInfoEvent&); - -#define wxQueryLayoutInfoEventHandler( func ) \ - wxEVENT_HANDLER_CAST( wxQueryLayoutInfoEventFunction, func ) - -#define EVT_QUERY_LAYOUT_INFO(func) \ - wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_QUERY_LAYOUT_INFO, wxID_ANY, wxID_ANY, wxQueryLayoutInfoEventHandler( func ), NULL ), - -/* - * This event is used to take a bite out of the available client area. - */ - -class WXDLLIMPEXP_ADV wxCalculateLayoutEvent: public wxEvent -{ -public: - wxCalculateLayoutEvent(wxWindowID id = 0) - { - SetEventType(wxEVT_CALCULATE_LAYOUT); - m_flags = 0; - m_id = id; - } - - // Read by the app - void SetFlags(int flags) { m_flags = flags; } - int GetFlags() const { return m_flags; } - - // Set by the app - void SetRect(const wxRect& rect) { m_rect = rect; } - wxRect GetRect() const { return m_rect; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxCalculateLayoutEvent(*this); } - -protected: - int m_flags; - wxRect m_rect; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxCalculateLayoutEvent); -}; - -typedef void (wxEvtHandler::*wxCalculateLayoutEventFunction)(wxCalculateLayoutEvent&); - -#define wxCalculateLayoutEventHandler( func ) wxEVENT_HANDLER_CAST(wxCalculateLayoutEventFunction, func) - -#define EVT_CALCULATE_LAYOUT(func) \ - wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_CALCULATE_LAYOUT, wxID_ANY, wxID_ANY, wxCalculateLayoutEventHandler( func ), NULL ), - -#if wxUSE_SASH - -// This is window that can remember alignment/orientation, does its own layout, -// and can provide sashes too. Useful for implementing docked windows with sashes in -// an IDE-style interface. -class WXDLLIMPEXP_ADV wxSashLayoutWindow: public wxSashWindow -{ -public: - wxSashLayoutWindow() - { - Init(); - } - - wxSashLayoutWindow(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = wxT("layoutWindow")) - { - Create(parent, id, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = wxT("layoutWindow")); - -// Accessors - inline wxLayoutAlignment GetAlignment() const { return m_alignment; } - inline wxLayoutOrientation GetOrientation() const { return m_orientation; } - - inline void SetAlignment(wxLayoutAlignment align) { m_alignment = align; } - inline void SetOrientation(wxLayoutOrientation orient) { m_orientation = orient; } - - // Give the window default dimensions - inline void SetDefaultSize(const wxSize& size) { m_defaultSize = size; } - -// Event handlers - // Called by layout algorithm to allow window to take a bit out of the - // client rectangle, and size itself if not in wxLAYOUT_QUERY mode. - void OnCalculateLayout(wxCalculateLayoutEvent& event); - - // Called by layout algorithm to retrieve information about the window. - void OnQueryLayoutInfo(wxQueryLayoutInfoEvent& event); - -private: - void Init(); - - wxLayoutAlignment m_alignment; - wxLayoutOrientation m_orientation; - wxSize m_defaultSize; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxSashLayoutWindow); - wxDECLARE_EVENT_TABLE(); -}; - -#endif // wxUSE_SASH - -class WXDLLIMPEXP_FWD_CORE wxMDIParentFrame; -class WXDLLIMPEXP_FWD_CORE wxFrame; - -// This class implements the layout algorithm -class WXDLLIMPEXP_ADV wxLayoutAlgorithm: public wxObject -{ -public: - wxLayoutAlgorithm() {} - -#if wxUSE_MDI_ARCHITECTURE - // The MDI client window is sized to whatever's left over. - bool LayoutMDIFrame(wxMDIParentFrame* frame, wxRect* rect = NULL); -#endif // wxUSE_MDI_ARCHITECTURE - - // mainWindow is sized to whatever's left over. This function for backward - // compatibility; use LayoutWindow. - bool LayoutFrame(wxFrame* frame, wxWindow* mainWindow = NULL); - - // mainWindow is sized to whatever's left over. - bool LayoutWindow(wxWindow* frame, wxWindow* mainWindow = NULL); -}; - -#endif - // _WX_LAYWIN_H_G_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/listctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/listctrl.h deleted file mode 100644 index d706cb81..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/listctrl.h +++ /dev/null @@ -1,280 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/listctrl.h -// Purpose: Generic list control -// Author: Robert Roebling -// Created: 01/02/97 -// Copyright: (c) 1998 Robert Roebling and Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_LISTCTRL_H_ -#define _WX_GENERIC_LISTCTRL_H_ - -#include "wx/containr.h" -#include "wx/scrolwin.h" -#include "wx/textctrl.h" - -#if wxUSE_DRAG_AND_DROP -class WXDLLIMPEXP_FWD_CORE wxDropTarget; -#endif - -//----------------------------------------------------------------------------- -// internal classes -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxListHeaderWindow; -class WXDLLIMPEXP_FWD_CORE wxListMainWindow; - -//----------------------------------------------------------------------------- -// wxListCtrl -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGenericListCtrl: public wxNavigationEnabled, - public wxScrollHelper -{ -public: - - wxGenericListCtrl() : wxScrollHelper(this) - { - Init(); - } - - wxGenericListCtrl( wxWindow *parent, - wxWindowID winid = wxID_ANY, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxLC_ICON, - const wxValidator& validator = wxDefaultValidator, - const wxString &name = wxListCtrlNameStr) - : wxScrollHelper(this) - { - Create(parent, winid, pos, size, style, validator, name); - } - - virtual ~wxGenericListCtrl(); - - void Init(); - - bool Create( wxWindow *parent, - wxWindowID winid = wxID_ANY, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxLC_ICON, - const wxValidator& validator = wxDefaultValidator, - const wxString &name = wxListCtrlNameStr); - - bool GetColumn( int col, wxListItem& item ) const wxOVERRIDE; - bool SetColumn( int col, const wxListItem& item ) wxOVERRIDE; - int GetColumnWidth( int col ) const wxOVERRIDE; - bool SetColumnWidth( int col, int width) wxOVERRIDE; - int GetCountPerPage() const; // not the same in wxGLC as in Windows, I think - wxRect GetViewRect() const; - - bool GetItem( wxListItem& info ) const; - bool SetItem( wxListItem& info ) ; - long SetItem( long index, int col, const wxString& label, int imageId = -1 ); - int GetItemState( long item, long stateMask ) const; - bool SetItemState( long item, long state, long stateMask); - bool SetItemImage( long item, int image, int selImage = -1 ); - bool SetItemColumnImage( long item, long column, int image ); - wxString GetItemText( long item, int col = 0 ) const; - void SetItemText( long item, const wxString& str ); - wxUIntPtr GetItemData( long item ) const; - bool SetItemPtrData(long item, wxUIntPtr data); - bool SetItemData(long item, long data) { return SetItemPtrData(item, data); } - bool GetItemRect( long item, wxRect& rect, int code = wxLIST_RECT_BOUNDS ) const; - bool GetSubItemRect( long item, long subItem, wxRect& rect, int code = wxLIST_RECT_BOUNDS ) const; - bool GetItemPosition( long item, wxPoint& pos ) const; - bool SetItemPosition( long item, const wxPoint& pos ); // not supported in wxGLC - int GetItemCount() const; - int GetColumnCount() const wxOVERRIDE; - void SetItemSpacing( int spacing, bool isSmall = false ); - wxSize GetItemSpacing() const; - void SetItemTextColour( long item, const wxColour& col); - wxColour GetItemTextColour( long item ) const; - void SetItemBackgroundColour( long item, const wxColour &col); - wxColour GetItemBackgroundColour( long item ) const; - void SetItemFont( long item, const wxFont &f); - wxFont GetItemFont( long item ) const; - int GetSelectedItemCount() const; - wxColour GetTextColour() const; - void SetTextColour(const wxColour& col); - long GetTopItem() const; - - virtual bool HasCheckboxes() const wxOVERRIDE; - virtual bool EnableCheckboxes(bool enable = true) wxOVERRIDE; - virtual bool IsItemChecked(long item) const wxOVERRIDE; - virtual void CheckItem(long item, bool check) wxOVERRIDE; - - void SetSingleStyle( long style, bool add = true ) ; - void SetWindowStyleFlag( long style ) wxOVERRIDE; - void RecreateWindow() {} - long GetNextItem( long item, int geometry = wxLIST_NEXT_ALL, int state = wxLIST_STATE_DONTCARE ) const; - wxImageList *GetImageList( int which ) const wxOVERRIDE; - void SetImageList( wxImageList *imageList, int which ) wxOVERRIDE; - void AssignImageList( wxImageList *imageList, int which ) wxOVERRIDE; - bool Arrange( int flag = wxLIST_ALIGN_DEFAULT ); // always wxLIST_ALIGN_LEFT in wxGLC - - void ClearAll(); - bool DeleteItem( long item ); - bool DeleteAllItems(); - bool DeleteAllColumns() wxOVERRIDE; - bool DeleteColumn( int col ) wxOVERRIDE; - - void SetItemCount(long count); - - wxTextCtrl *EditLabel(long item, - wxClassInfo* textControlClass = wxCLASSINFO(wxTextCtrl)); - - // End label editing, optionally cancelling the edit - bool EndEditLabel(bool cancel); - - wxTextCtrl* GetEditControl() const; - void Edit( long item ) { EditLabel(item); } - - bool EnsureVisible( long item ); - long FindItem( long start, const wxString& str, bool partial = false ); - long FindItem( long start, wxUIntPtr data ); - long FindItem( long start, const wxPoint& pt, int direction ); // not supported in wxGLC - long HitTest( const wxPoint& point, int& flags, long *pSubItem = NULL ) const; - long InsertItem(wxListItem& info); - long InsertItem( long index, const wxString& label ); - long InsertItem( long index, int imageIndex ); - long InsertItem( long index, const wxString& label, int imageIndex ); - bool ScrollList( int dx, int dy ); - bool SortItems( wxListCtrlCompare fn, wxIntPtr data ); - - // do we have a header window? - bool HasHeader() const - { return InReportView() && !HasFlag(wxLC_NO_HEADER); } - - // refresh items selectively (only useful for virtual list controls) - void RefreshItem(long item); - void RefreshItems(long itemFrom, long itemTo); - - virtual void EnableBellOnNoMatch(bool on = true) wxOVERRIDE; - - // overridden base class virtuals - // ------------------------------ - - virtual wxVisualAttributes GetDefaultAttributes() const wxOVERRIDE - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); - - virtual void Update() wxOVERRIDE; - - - // implementation only from now on - // ------------------------------- - - // generic version extension, don't use in portable code - bool Update( long item ); - - void OnInternalIdle( ) wxOVERRIDE; - - // We have to hand down a few functions - virtual void Refresh(bool eraseBackground = true, - const wxRect *rect = NULL) wxOVERRIDE; - - virtual bool SetBackgroundColour( const wxColour &colour ) wxOVERRIDE; - virtual bool SetForegroundColour( const wxColour &colour ) wxOVERRIDE; - virtual wxColour GetBackgroundColour() const; - virtual wxColour GetForegroundColour() const; - virtual bool SetFont( const wxFont &font ) wxOVERRIDE; - virtual bool SetCursor( const wxCursor &cursor ) wxOVERRIDE; - -#if wxUSE_DRAG_AND_DROP - virtual void SetDropTarget( wxDropTarget *dropTarget ) wxOVERRIDE; - virtual wxDropTarget *GetDropTarget() const wxOVERRIDE; -#endif - - virtual bool ShouldInheritColours() const wxOVERRIDE { return false; } - - // implementation - // -------------- - - wxImageList *m_imageListNormal; - wxImageList *m_imageListSmall; - wxImageList *m_imageListState; // what's that ? - bool m_ownsImageListNormal, - m_ownsImageListSmall, - m_ownsImageListState; - wxListHeaderWindow *m_headerWin; - wxListMainWindow *m_mainWin; - -protected: - // Implement base class pure virtual methods. - long DoInsertColumn(long col, const wxListItem& info) wxOVERRIDE; - - - virtual bool DoPopupMenu( wxMenu *menu, int x, int y ) wxOVERRIDE; - - virtual wxSize DoGetBestClientSize() const wxOVERRIDE; - - // return the text for the given column of the given item - virtual wxString OnGetItemText(long item, long column) const; - - // return the icon for the given item. In report view, OnGetItemImage will - // only be called for the first column. See OnGetItemColumnImage for - // details. - virtual int OnGetItemImage(long item) const; - - // return the icon for the given item and column. - virtual int OnGetItemColumnImage(long item, long column) const; - - // it calls our OnGetXXX() functions - friend class WXDLLIMPEXP_FWD_CORE wxListMainWindow; - - virtual wxBorder GetDefaultBorder() const wxOVERRIDE; - - virtual wxSize GetSizeAvailableForScrollTarget(const wxSize& size) wxOVERRIDE; - -private: - void CreateOrDestroyHeaderWindowAsNeeded(); - void OnScroll( wxScrollWinEvent& event ); - void OnSize( wxSizeEvent &event ); - - // we need to return a special WM_GETDLGCODE value to process just the - // arrows but let the other navigation characters through -#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) - virtual WXLRESULT - MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); -#endif // __WXMSW__ - - WX_FORWARD_TO_SCROLL_HELPER() - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxGenericListCtrl); -}; - -#if (!defined(__WXMSW__) || defined(__WXUNIVERSAL__)) && (!(defined(__WXMAC__) && wxOSX_USE_CARBON) || defined(__WXUNIVERSAL__ )) -/* - * wxListCtrl has to be a real class or we have problems with - * the run-time information. - */ - -class WXDLLIMPEXP_CORE wxListCtrl: public wxGenericListCtrl -{ - wxDECLARE_DYNAMIC_CLASS(wxListCtrl); - -public: - wxListCtrl() {} - - wxListCtrl(wxWindow *parent, wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxLC_ICON, - const wxValidator &validator = wxDefaultValidator, - const wxString &name = wxListCtrlNameStr) - : wxGenericListCtrl(parent, winid, pos, size, style, validator, name) - { - } - -}; -#endif // !__WXMSW__ || __WXUNIVERSAL__ - -#endif // _WX_GENERIC_LISTCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/logg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/logg.h deleted file mode 100644 index f45731d3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/logg.h +++ /dev/null @@ -1,152 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/logg.h -// Purpose: Assorted wxLogXXX functions, and wxLog (sink for logs) -// Author: Vadim Zeitlin -// Modified by: -// Created: 29/01/98 -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LOGG_H_ -#define _WX_LOGG_H_ - -#if wxUSE_GUI - -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; -class WXDLLIMPEXP_FWD_CORE wxLogFrame; -class WXDLLIMPEXP_FWD_CORE wxWindow; - -// ---------------------------------------------------------------------------- -// the following log targets are only compiled in if the we're compiling the -// GUI part (andnot just the base one) of the library, they're implemented in -// src/generic/logg.cpp *and not src/common/log.cpp unlike all the rest) -// ---------------------------------------------------------------------------- - -#if wxUSE_TEXTCTRL - -// log everything to a text window (GUI only of course) -class WXDLLIMPEXP_CORE wxLogTextCtrl : public wxLog -{ -public: - wxLogTextCtrl(wxTextCtrl *pTextCtrl); - -protected: - // implement sink function - virtual void DoLogText(const wxString& msg) wxOVERRIDE; - -private: - // the control we use - wxTextCtrl *m_pTextCtrl; - - wxDECLARE_NO_COPY_CLASS(wxLogTextCtrl); -}; - -#endif // wxUSE_TEXTCTRL - -// ---------------------------------------------------------------------------- -// GUI log target, the default one for wxWidgets programs -// ---------------------------------------------------------------------------- - -#if wxUSE_LOGGUI - -class WXDLLIMPEXP_CORE wxLogGui : public wxLog -{ -public: - // ctor - wxLogGui(); - - // show all messages that were logged since the last Flush() - virtual void Flush() wxOVERRIDE; - -protected: - virtual void DoLogRecord(wxLogLevel level, - const wxString& msg, - const wxLogRecordInfo& info) wxOVERRIDE; - - // return the title to be used for the log dialog, depending on m_bErrors - // and m_bWarnings values - wxString GetTitle() const; - - // return the icon (one of wxICON_XXX constants) to be used for the dialog - // depending on m_bErrors/m_bWarnings - int GetSeverityIcon() const; - - // empty everything - void Clear(); - - - wxArrayString m_aMessages; // the log message texts - wxArrayInt m_aSeverity; // one of wxLOG_XXX values - wxArrayLong m_aTimes; // the time of each message - bool m_bErrors, // do we have any errors? - m_bWarnings, // any warnings? - m_bHasMessages; // any messages at all? - -private: - // this method is called to show a single log message, it uses - // wxMessageBox() by default - virtual void DoShowSingleLogMessage(const wxString& message, - const wxString& title, - int style); - - // this method is called to show multiple log messages, it uses wxLogDialog - virtual void DoShowMultipleLogMessages(const wxArrayString& messages, - const wxArrayInt& severities, - const wxArrayLong& times, - const wxString& title, - int style); -}; - -#endif // wxUSE_LOGGUI - -// ---------------------------------------------------------------------------- -// (background) log window: this class forwards all log messages to the log -// target which was active when it was instantiated, but also collects them -// to the log window. This window has its own menu which allows the user to -// close it, clear the log contents or save it to the file. -// ---------------------------------------------------------------------------- - -#if wxUSE_LOGWINDOW - -class WXDLLIMPEXP_CORE wxLogWindow : public wxLogPassThrough -{ -public: - wxLogWindow(wxWindow *pParent, // the parent frame (can be NULL) - const wxString& szTitle, // the title of the frame - bool bShow = true, // show window immediately? - bool bPassToOld = true); // pass messages to the old target? - - virtual ~wxLogWindow(); - - // window operations - // show/hide the log window - void Show(bool bShow = true); - // retrieve the pointer to the frame - wxFrame *GetFrame() const; - - // overridables - // called if the user closes the window interactively, will not be - // called if it is destroyed for another reason (such as when program - // exits) - return true from here to allow the frame to close, false - // to prevent this from happening - virtual bool OnFrameClose(wxFrame *frame); - // called right before the log frame is going to be deleted: will - // always be called unlike OnFrameClose() - virtual void OnFrameDelete(wxFrame *frame); - -protected: - virtual void DoLogTextAtLevel(wxLogLevel level, const wxString& msg) wxOVERRIDE; - -private: - wxLogFrame *m_pLogFrame; // the log frame - - wxDECLARE_NO_COPY_CLASS(wxLogWindow); -}; - -#endif // wxUSE_LOGWINDOW - -#endif // wxUSE_GUI - -#endif // _WX_LOGG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/mask.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/mask.h deleted file mode 100644 index 454ba11c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/mask.h +++ /dev/null @@ -1,53 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/mask.h -// Purpose: generic implementation of wxMask -// Author: Vadim Zeitlin -// Created: 2006-09-28 -// Copyright: (c) 2006 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_MASKG_H_ -#define _WX_GENERIC_MASKG_H_ - -// ---------------------------------------------------------------------------- -// generic wxMask implementation -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMask : public wxMaskBase -{ -public: - wxMask() { } - wxMask(const wxBitmap& bitmap, const wxColour& colour) - { - InitFromColour(bitmap, colour); - } - -#if wxUSE_PALETTE - wxMask(const wxBitmap& bitmap, int paletteIndex) - { - Create(bitmap, paletteIndex); - } -#endif // wxUSE_PALETTE - - wxMask(const wxBitmap& bitmap) - { - InitFromMonoBitmap(bitmap); - } - - // implementation-only from now on - wxBitmap GetBitmap() const { return m_bitmap; } - -private: - // implement wxMaskBase pure virtuals - virtual void FreeData(); - virtual bool InitFromColour(const wxBitmap& bitmap, const wxColour& colour); - virtual bool InitFromMonoBitmap(const wxBitmap& bitmap); - - wxBitmap m_bitmap; - - wxDECLARE_DYNAMIC_CLASS(wxMask); -}; - -#endif // _WX_GENERIC_MASKG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/mdig.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/mdig.h deleted file mode 100644 index d3469069..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/mdig.h +++ /dev/null @@ -1,260 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/mdig.h -// Purpose: Generic MDI (Multiple Document Interface) classes -// Author: Hans Van Leemputten -// Modified by: 2008-10-31 Vadim Zeitlin: derive from the base classes -// Created: 29/07/2002 -// Copyright: (c) 2002 Hans Van Leemputten -// (c) 2008 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_MDIG_H_ -#define _WX_GENERIC_MDIG_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/panel.h" - -class WXDLLIMPEXP_FWD_CORE wxBookCtrlBase; -class WXDLLIMPEXP_FWD_CORE wxBookCtrlEvent; -class WXDLLIMPEXP_FWD_CORE wxIcon; -class WXDLLIMPEXP_FWD_CORE wxIconBundle; -class WXDLLIMPEXP_FWD_CORE wxNotebook; - -#if wxUSE_GENERIC_MDI_AS_NATIVE - #define wxGenericMDIParentFrame wxMDIParentFrame - #define wxGenericMDIChildFrame wxMDIChildFrame - #define wxGenericMDIClientWindow wxMDIClientWindow -#else // !wxUSE_GENERIC_MDI_AS_NATIVE - class WXDLLIMPEXP_FWD_CORE wxGenericMDIParentFrame; - class WXDLLIMPEXP_FWD_CORE wxGenericMDIChildFrame; - class WXDLLIMPEXP_FWD_CORE wxGenericMDIClientWindow; -#endif // wxUSE_GENERIC_MDI_AS_NATIVE/!wxUSE_GENERIC_MDI_AS_NATIVE - -// ---------------------------------------------------------------------------- -// wxGenericMDIParentFrame -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGenericMDIParentFrame : public wxMDIParentFrameBase -{ -public: - wxGenericMDIParentFrame() { Init(); } - wxGenericMDIParentFrame(wxWindow *parent, - wxWindowID winid, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr) - { - Init(); - - Create(parent, winid, title, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID winid, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr); - - virtual ~wxGenericMDIParentFrame(); - - // implement base class pure virtuals - static bool IsTDI() { return true; } - - virtual void ActivateNext() { AdvanceActive(true); } - virtual void ActivatePrevious() { AdvanceActive(false); } - -#if wxUSE_MENUS - virtual void SetWindowMenu(wxMenu* pMenu); - - virtual void SetMenuBar(wxMenuBar *pMenuBar); -#endif // wxUSE_MENUS - - virtual wxGenericMDIClientWindow *OnCreateGenericClient(); - - - // implementation only from now on - void WXSetChildMenuBar(wxGenericMDIChildFrame *child); - void WXUpdateChildTitle(wxGenericMDIChildFrame *child); - void WXActivateChild(wxGenericMDIChildFrame *child); - void WXRemoveChild(wxGenericMDIChildFrame *child); - bool WXIsActiveChild(wxGenericMDIChildFrame *child) const; - bool WXIsInsideChildHandler(wxGenericMDIChildFrame *child) const; - - // return the book control used by the client window to manage the pages - wxBookCtrlBase *GetBookCtrl() const; - -protected: -#if wxUSE_MENUS - wxMenuBar *m_pMyMenuBar; -#endif // wxUSE_MENUS - - // advance the activation forward or backwards - void AdvanceActive(bool forward); - -private: - void Init(); - -#if wxUSE_MENUS - void RemoveWindowMenu(wxMenuBar *pMenuBar); - void AddWindowMenu(wxMenuBar *pMenuBar); - - void OnWindowMenu(wxCommandEvent& event); -#endif // wxUSE_MENUS - - virtual bool ProcessEvent(wxEvent& event); - - void OnClose(wxCloseEvent& event); - - // return the client window, may be NULL if we hadn't been created yet - wxGenericMDIClientWindow *GetGenericClientWindow() const; - - // close all children, return false if any of them vetoed it - bool CloseAll(); - - - // this pointer is non-NULL if we're currently inside our ProcessEvent() - // and we forwarded the event to this child (as we do with menu events) - wxMDIChildFrameBase *m_childHandler; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxGenericMDIParentFrame); -}; - -// ---------------------------------------------------------------------------- -// wxGenericMDIChildFrame -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGenericMDIChildFrame : public wxTDIChildFrame -{ -public: - wxGenericMDIChildFrame() { Init(); } - wxGenericMDIChildFrame(wxGenericMDIParentFrame *parent, - wxWindowID winid, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Init(); - - Create(parent, winid, title, pos, size, style, name); - } - - bool Create(wxGenericMDIParentFrame *parent, - wxWindowID winid, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - virtual ~wxGenericMDIChildFrame(); - - // implement MDI operations - virtual void Activate(); - - -#if wxUSE_MENUS - virtual void SetMenuBar( wxMenuBar *menu_bar ); - virtual wxMenuBar *GetMenuBar() const; -#endif // wxUSE_MENUS - - virtual wxString GetTitle() const { return m_title; } - virtual void SetTitle(const wxString& title); - - virtual bool TryAfter(wxEvent& event); - - // implementation only from now on - - wxGenericMDIParentFrame* GetGenericMDIParent() const - { -#if wxUSE_GENERIC_MDI_AS_NATIVE - return GetMDIParent(); -#else // generic != native - return m_mdiParentGeneric; -#endif - } - -protected: - wxString m_title; - -#if wxUSE_MENUS - wxMenuBar *m_pMenuBar; -#endif // wxUSE_MENUS - -#if !wxUSE_GENERIC_MDI_AS_NATIVE - wxGenericMDIParentFrame *m_mdiParentGeneric; -#endif - -protected: - void Init(); - -private: - void OnMenuHighlight(wxMenuEvent& event); - void OnClose(wxCloseEvent& event); - - wxDECLARE_DYNAMIC_CLASS(wxGenericMDIChildFrame); - wxDECLARE_EVENT_TABLE(); - - friend class wxGenericMDIClientWindow; -}; - -// ---------------------------------------------------------------------------- -// wxGenericMDIClientWindow -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGenericMDIClientWindow : public wxMDIClientWindowBase -{ -public: - wxGenericMDIClientWindow() { } - - // unfortunately we need to provide our own version of CreateClient() - // because of the difference in the type of the first parameter and - // implement the base class pure virtual method in terms of it - // (CreateGenericClient() is virtual itself to allow customizing the client - // window creation by overriding it in the derived classes) - virtual bool CreateGenericClient(wxWindow *parent); - virtual bool CreateClient(wxMDIParentFrame *parent, - long WXUNUSED(style) = wxVSCROLL | wxHSCROLL) - { - return CreateGenericClient(parent); - } - - // implementation only - wxBookCtrlBase *GetBookCtrl() const; - wxGenericMDIChildFrame *GetChild(size_t pos) const; - int FindChild(wxGenericMDIChildFrame *child) const; - -private: - void PageChanged(int OldSelection, int newSelection); - - void OnPageChanged(wxBookCtrlEvent& event); - void OnSize(wxSizeEvent& event); - - // the notebook containing all MDI children as its pages - wxNotebook *m_notebook; - - wxDECLARE_DYNAMIC_CLASS(wxGenericMDIClientWindow); -}; - -// ---------------------------------------------------------------------------- -// inline functions implementation -// ---------------------------------------------------------------------------- - -inline bool -wxGenericMDIParentFrame:: -WXIsInsideChildHandler(wxGenericMDIChildFrame *child) const -{ - return child == m_childHandler; -} - -#endif // _WX_GENERIC_MDIG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/msgdlgg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/msgdlgg.h deleted file mode 100644 index a5c3c115..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/msgdlgg.h +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/msgdlgg.h -// Purpose: Generic wxMessageDialog -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_MSGDLGG_H_ -#define _WX_GENERIC_MSGDLGG_H_ - -class WXDLLIMPEXP_FWD_CORE wxSizer; - -class WXDLLIMPEXP_CORE wxGenericMessageDialog : public wxMessageDialogBase -{ -public: - wxGenericMessageDialog(wxWindow *parent, - const wxString& message, - const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, - const wxPoint& pos = wxDefaultPosition); - - virtual int ShowModal() wxOVERRIDE; - -protected: - // Creates a message dialog taking any options that have been set after - // object creation into account such as custom labels. - void DoCreateMsgdialog(); - - void OnYes(wxCommandEvent& event); - void OnNo(wxCommandEvent& event); - void OnHelp(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - - // can be overridden to provide more contents to the dialog - virtual void AddMessageDialogCheckBox(wxSizer *WXUNUSED(sizer)) { } - virtual void AddMessageDialogDetails(wxSizer *WXUNUSED(sizer)) { } - -private: - // Creates and returns a standard button sizer using the style of this - // dialog and the custom labels, if any. - // - // May return NULL on smart phone platforms not using buttons at all. - wxSizer *CreateMsgDlgButtonSizer(); - - wxPoint m_pos; - bool m_created; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxGenericMessageDialog); -}; - -#endif // _WX_GENERIC_MSGDLGG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/notebook.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/notebook.h deleted file mode 100644 index 807baebe..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/notebook.h +++ /dev/null @@ -1,155 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/notebook.h -// Purpose: wxNotebook class (a.k.a. property sheet, tabbed dialog) -// Author: Julian Smart -// Modified by: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_NOTEBOOK_H_ -#define _WX_NOTEBOOK_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#include "wx/event.h" -#include "wx/control.h" - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -// fwd declarations -class WXDLLIMPEXP_FWD_CORE wxImageList; -class WXDLLIMPEXP_FWD_CORE wxWindow; -class WXDLLIMPEXP_FWD_CORE wxTabView; - -// ---------------------------------------------------------------------------- -// wxNotebook -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxNotebook : public wxNotebookBase -{ -public: - // ctors - // ----- - // default for dynamic class - wxNotebook(); - // the same arguments as for wxControl (@@@ any special styles?) - wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxNotebookNameStr); - // Create() function - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxNotebookNameStr); - // dtor - virtual ~wxNotebook(); - - // accessors - // --------- - // Find the position of the wxNotebookPage, wxNOT_FOUND if not found. - int FindPagePosition(wxNotebookPage* page) const; - - // set the currently selected page, return the index of the previously - // selected one (or wxNOT_FOUND on error) - // NB: this function will _not_ generate wxEVT_NOTEBOOK_PAGE_xxx events - int SetSelection(size_t nPage); - // cycle thru the tabs - // void AdvanceSelection(bool bForward = true); - - // changes selected page without sending events - int ChangeSelection(size_t nPage); - - // set/get the title of a page - bool SetPageText(size_t nPage, const wxString& strText); - wxString GetPageText(size_t nPage) const; - - // get the number of rows for a control with wxNB_MULTILINE style (not all - // versions support it - they will always return 1 then) - virtual int GetRowCount() const ; - - // sets/returns item's image index in the current image list - int GetPageImage(size_t nPage) const; - bool SetPageImage(size_t nPage, int nImage); - - // control the appearance of the notebook pages - // set the size (the same for all pages) - void SetPageSize(const wxSize& size); - // set the padding between tabs (in pixels) - void SetPadding(const wxSize& padding); - - // Sets the size of the tabs (assumes all tabs are the same size) - void SetTabSize(const wxSize& sz); - - // operations - // ---------- - // remove one page from the notebook, and delete the page. - bool DeletePage(size_t nPage); - bool DeletePage(wxNotebookPage* page); - // remove one page from the notebook, without deleting the page. - bool RemovePage(size_t nPage); - bool RemovePage(wxNotebookPage* page); - virtual wxWindow* DoRemovePage(size_t nPage); - - // remove all pages - bool DeleteAllPages(); - // the same as AddPage(), but adds it at the specified position - bool InsertPage(size_t nPage, - wxNotebookPage *pPage, - const wxString& strText, - bool bSelect = false, - int imageId = NO_IMAGE); - - // callbacks - // --------- - void OnSize(wxSizeEvent& event); - void OnInternalIdle(); - void OnSelChange(wxBookCtrlEvent& event); - void OnSetFocus(wxFocusEvent& event); - void OnNavigationKey(wxNavigationKeyEvent& event); - - // base class virtuals - // ------------------- - virtual void Command(wxCommandEvent& event); - virtual void SetConstraintSizes(bool recurse = true); - virtual bool DoPhase(int nPhase); - - virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const; - - // Implementation - - // wxNotebook on Motif uses a generic wxTabView to implement itself. - wxTabView *GetTabView() const { return m_tabView; } - void SetTabView(wxTabView *v) { m_tabView = v; } - - void OnMouseEvent(wxMouseEvent& event); - void OnPaint(wxPaintEvent& event); - - virtual wxRect GetAvailableClientSize(); - - // Implementation: calculate the layout of the view rect - // and resize the children if required - bool RefreshLayout(bool force = true); - -protected: - // common part of all ctors - void Init(); - - // helper functions - void ChangePage(int nOldSel, int nSel); // change pages - - wxTabView* m_tabView; - - wxDECLARE_DYNAMIC_CLASS(wxNotebook); - wxDECLARE_EVENT_TABLE(); -}; - -#endif // _WX_NOTEBOOK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/notifmsg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/notifmsg.h deleted file mode 100644 index ccc55108..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/notifmsg.h +++ /dev/null @@ -1,47 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/notifmsg.h -// Purpose: generic implementation of wxGenericNotificationMessage -// Author: Vadim Zeitlin -// Created: 2007-11-24 -// Copyright: (c) 2007 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_NOTIFMSG_H_ -#define _WX_GENERIC_NOTIFMSG_H_ - -// ---------------------------------------------------------------------------- -// wxGenericNotificationMessage -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxGenericNotificationMessage : public wxNotificationMessageBase -{ -public: - wxGenericNotificationMessage() - { - Init(); - } - - wxGenericNotificationMessage(const wxString& title, - const wxString& message = wxString(), - wxWindow *parent = NULL, - int flags = wxICON_INFORMATION) - { - Init(); - Create(title, message, parent, flags); - } - - // generic implementation-specific methods - - // get/set the default timeout (used if Timeout_Auto is specified) - static int GetDefaultTimeout(); - static void SetDefaultTimeout(int timeout); - -private: - void Init(); - - wxDECLARE_NO_COPY_CLASS(wxGenericNotificationMessage); -}; - -#endif // _WX_GENERIC_NOTIFMSG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/numdlgg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/numdlgg.h deleted file mode 100644 index 905efee6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/numdlgg.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/numdlgg.h -// Purpose: wxNumberEntryDialog class -// Author: John Labenski -// Modified by: -// Created: 07.02.04 (extracted from textdlgg.cpp) -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __NUMDLGH_G__ -#define __NUMDLGH_G__ - -#include "wx/defs.h" - -#if wxUSE_NUMBERDLG - -#include "wx/dialog.h" - -#if wxUSE_SPINCTRL - class WXDLLIMPEXP_FWD_CORE wxSpinCtrl; -#else - class WXDLLIMPEXP_FWD_CORE wxTextCtrl; -#endif // wxUSE_SPINCTRL - -// ---------------------------------------------------------------------------- -// wxNumberEntryDialog: a dialog with spin control, [ok] and [cancel] buttons -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxNumberEntryDialog : public wxDialog -{ -public: - wxNumberEntryDialog() - { - m_value = m_min = m_max = 0; - } - - wxNumberEntryDialog(wxWindow *parent, - const wxString& message, - const wxString& prompt, - const wxString& caption, - long value, long min, long max, - const wxPoint& pos = wxDefaultPosition) - { - Create(parent, message, prompt, caption, value, min, max, pos); - } - - bool Create(wxWindow *parent, - const wxString& message, - const wxString& prompt, - const wxString& caption, - long value, long min, long max, - const wxPoint& pos = wxDefaultPosition); - - long GetValue() const { return m_value; } - - // implementation only - void OnOK(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - -protected: - -#if wxUSE_SPINCTRL - wxSpinCtrl *m_spinctrl; -#else - wxTextCtrl *m_spinctrl; -#endif // wxUSE_SPINCTRL - - long m_value, m_min, m_max; - -private: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxNumberEntryDialog); - wxDECLARE_NO_COPY_CLASS(wxNumberEntryDialog); -}; - -// ---------------------------------------------------------------------------- -// function to get a number from user -// ---------------------------------------------------------------------------- - -WXDLLIMPEXP_CORE long - wxGetNumberFromUser(const wxString& message, - const wxString& prompt, - const wxString& caption, - long value = 0, - long min = 0, - long max = 100, - wxWindow *parent = NULL, - const wxPoint& pos = wxDefaultPosition); - -#endif // wxUSE_NUMBERDLG - -#endif // __NUMDLGH_G__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/paletteg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/paletteg.h deleted file mode 100644 index a475c7d1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/paletteg.h +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/paletteg.h -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Copyright: (c) 1998 Robert Roebling and Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __WX_PALETTEG_H__ -#define __WX_PALETTEG_H__ - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxPalette; - -//----------------------------------------------------------------------------- -// wxPalette -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPalette: public wxPaletteBase -{ -public: - wxPalette(); - wxPalette( int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue ); - virtual ~wxPalette(); - - bool Create( int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); - int GetPixel( unsigned char red, unsigned char green, unsigned char blue ) const; - bool GetRGB( int pixel, unsigned char *red, unsigned char *green, unsigned char *blue ) const; - - virtual int GetColoursCount() const wxOVERRIDE; - -protected: - virtual wxGDIRefData *CreateGDIRefData() const wxOVERRIDE; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const wxOVERRIDE; - -private: - wxDECLARE_DYNAMIC_CLASS(wxPalette); -}; - -#endif // __WX_PALETTEG_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/panelg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/panelg.h deleted file mode 100644 index 5c02cb35..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/panelg.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/panelg.h -// Purpose: wxPanel: a container for child controls -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_PANELG_H_ -#define _WX_GENERIC_PANELG_H_ - -#include "wx/bitmap.h" - -class WXDLLIMPEXP_CORE wxPanel : public wxPanelBase -{ -public: - wxPanel() { } - - // Constructor - wxPanel(wxWindow *parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTAB_TRAVERSAL | wxNO_BORDER, - const wxString& name = wxPanelNameStr) - { - Create(parent, winid, pos, size, style, name); - } - -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED_CONSTRUCTOR( - wxPanel(wxWindow *parent, - int x, int y, int width, int height, - long style = wxTAB_TRAVERSAL | wxNO_BORDER, - const wxString& name = wxPanelNameStr) - { - Create(parent, wxID_ANY, wxPoint(x, y), wxSize(width, height), style, name); - } - ) -#endif // WXWIN_COMPATIBILITY_2_8 - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxPanel); -}; - -#endif // _WX_GENERIC_PANELG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/printps.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/printps.h deleted file mode 100644 index 7d837386..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/printps.h +++ /dev/null @@ -1,67 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/printps.h -// Purpose: wxPostScriptPrinter, wxPostScriptPrintPreview -// wxGenericPageSetupDialog -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __PRINTPSH__ -#define __PRINTPSH__ - -#include "wx/prntbase.h" - -#if wxUSE_PRINTING_ARCHITECTURE && wxUSE_POSTSCRIPT - -// ---------------------------------------------------------------------------- -// Represents the printer: manages printing a wxPrintout object -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPostScriptPrinter : public wxPrinterBase -{ -public: - wxPostScriptPrinter(wxPrintDialogData *data = NULL); - virtual ~wxPostScriptPrinter(); - - virtual bool Print(wxWindow *parent, wxPrintout *printout, bool prompt = true) wxOVERRIDE; - virtual wxDC* PrintDialog(wxWindow *parent) wxOVERRIDE; - virtual bool Setup(wxWindow *parent) wxOVERRIDE; - -private: - wxDECLARE_DYNAMIC_CLASS(wxPostScriptPrinter); -}; - -// ---------------------------------------------------------------------------- -// wxPrintPreview: programmer creates an object of this class to preview a -// wxPrintout. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPostScriptPrintPreview : public wxPrintPreviewBase -{ -public: - wxPostScriptPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting = NULL, - wxPrintDialogData *data = NULL); - wxPostScriptPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting, - wxPrintData *data); - - virtual ~wxPostScriptPrintPreview(); - - virtual bool Print(bool interactive) wxOVERRIDE; - virtual void DetermineScaling() wxOVERRIDE; - -private: - void Init(wxPrintout *printout, wxPrintout *printoutForPrinting); - -private: - wxDECLARE_CLASS(wxPostScriptPrintPreview); -}; - -#endif - -#endif -// __PRINTPSH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/addremovectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/addremovectrl.h deleted file mode 100644 index 2eea6fad..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/addremovectrl.h +++ /dev/null @@ -1,65 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/private/addremovectrl.h -// Purpose: Generic wxAddRemoveImpl implementation, also used in wxMSW -// Author: Vadim Zeitlin -// Created: 2015-02-05 -// Copyright: (c) 2015 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_PRIVATE_ADDREMOVECTRL_H_ -#define _WX_GENERIC_PRIVATE_ADDREMOVECTRL_H_ - -// ---------------------------------------------------------------------------- -// wxAddRemoveImpl -// ---------------------------------------------------------------------------- - -class wxAddRemoveImpl : public wxAddRemoveImplWithButtons -{ -public: - wxAddRemoveImpl(wxAddRemoveAdaptor* adaptor, - wxAddRemoveCtrl* parent, - wxWindow* ctrlItems) - : wxAddRemoveImplWithButtons(adaptor, parent, ctrlItems) - { - m_btnAdd = new wxButton(parent, wxID_ADD, GetAddButtonLabel(), - wxDefaultPosition, wxDefaultSize, - wxBU_EXACTFIT | wxBORDER_NONE); - m_btnRemove = new wxButton(parent, wxID_REMOVE, GetRemoveButtonLabel(), - wxDefaultPosition, wxDefaultSize, - wxBU_EXACTFIT | wxBORDER_NONE); - - wxSizer* const sizerBtns = new wxBoxSizer(wxVERTICAL); - sizerBtns->Add(m_btnAdd, wxSizerFlags().Expand()); - sizerBtns->Add(m_btnRemove, wxSizerFlags().Expand()); - - wxSizer* const sizerTop = new wxBoxSizer(wxHORIZONTAL); - sizerTop->Add(ctrlItems, wxSizerFlags(1).Expand()); - sizerTop->Add(sizerBtns, wxSizerFlags().Centre().Border(wxLEFT)); - parent->SetSizer(sizerTop); - - SetUpEvents(); - } - -private: - static wxString GetAddButtonLabel() - { -#if wxUSE_UNICODE - return wchar_t(0xFF0B); // FULLWIDTH PLUS SIGN -#else - return "+"; -#endif - } - - static wxString GetRemoveButtonLabel() - { -#if wxUSE_UNICODE - return wchar_t(0x2012); // FIGURE DASH -#else - return "-"; -#endif - } - -}; - -#endif // _WX_GENERIC_PRIVATE_ADDREMOVECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/grid.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/grid.h deleted file mode 100644 index 0fb81f91..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/grid.h +++ /dev/null @@ -1,948 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/private/grid.h -// Purpose: Private wxGrid structures -// Author: Michael Bedward (based on code by Julian Smart, Robin Dunn) -// Modified by: Santiago Palacios -// Created: 1/08/1999 -// Copyright: (c) Michael Bedward -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_GRID_PRIVATE_H_ -#define _WX_GENERIC_GRID_PRIVATE_H_ - -#include "wx/defs.h" - -#if wxUSE_GRID - -// Internally used (and hence intentionally not exported) event telling wxGrid -// to hide the currently shown editor. -wxDECLARE_EVENT( wxEVT_GRID_HIDE_EDITOR, wxCommandEvent ); - -// ---------------------------------------------------------------------------- -// array classes -// ---------------------------------------------------------------------------- - -WX_DEFINE_ARRAY_WITH_DECL_PTR(wxGridCellAttr *, wxArrayAttrs, - class WXDLLIMPEXP_ADV); - -struct wxGridCellWithAttr -{ - wxGridCellWithAttr(int row, int col, wxGridCellAttr *attr_) - : coords(row, col), attr(attr_) - { - wxASSERT( attr ); - } - - wxGridCellWithAttr(const wxGridCellWithAttr& other) - : coords(other.coords), - attr(other.attr) - { - attr->IncRef(); - } - - wxGridCellWithAttr& operator=(const wxGridCellWithAttr& other) - { - coords = other.coords; - if (attr != other.attr) - { - attr->DecRef(); - attr = other.attr; - attr->IncRef(); - } - return *this; - } - - void ChangeAttr(wxGridCellAttr* new_attr) - { - if (attr != new_attr) - { - // "Delete" (i.e. DecRef) the old attribute. - attr->DecRef(); - attr = new_attr; - // Take ownership of the new attribute, i.e. no IncRef. - } - } - - ~wxGridCellWithAttr() - { - attr->DecRef(); - } - - wxGridCellCoords coords; - wxGridCellAttr *attr; -}; - -WX_DECLARE_OBJARRAY_WITH_DECL(wxGridCellWithAttr, wxGridCellWithAttrArray, - class WXDLLIMPEXP_ADV); - - -// ---------------------------------------------------------------------------- -// private classes -// ---------------------------------------------------------------------------- - -// header column providing access to the column information stored in wxGrid -// via wxHeaderColumn interface -class wxGridHeaderColumn : public wxHeaderColumn -{ -public: - wxGridHeaderColumn(wxGrid *grid, int col) - : m_grid(grid), - m_col(col) - { - } - - virtual wxString GetTitle() const wxOVERRIDE { return m_grid->GetColLabelValue(m_col); } - virtual wxBitmap GetBitmap() const wxOVERRIDE { return wxNullBitmap; } - virtual int GetWidth() const wxOVERRIDE { return m_grid->GetColSize(m_col); } - virtual int GetMinWidth() const wxOVERRIDE { return 0; } - virtual wxAlignment GetAlignment() const wxOVERRIDE - { - int horz, - vert; - m_grid->GetColLabelAlignment(&horz, &vert); - - return static_cast(horz); - } - - virtual int GetFlags() const wxOVERRIDE - { - // we can't know in advance whether we can sort by this column or not - // with wxGrid API so suppose we can by default - int flags = wxCOL_SORTABLE; - if ( m_grid->CanDragColSize(m_col) ) - flags |= wxCOL_RESIZABLE; - if ( m_grid->CanDragColMove() ) - flags |= wxCOL_REORDERABLE; - if ( GetWidth() == 0 ) - flags |= wxCOL_HIDDEN; - - return flags; - } - - virtual bool IsSortKey() const wxOVERRIDE - { - return m_grid->IsSortingBy(m_col); - } - - virtual bool IsSortOrderAscending() const wxOVERRIDE - { - return m_grid->IsSortOrderAscending(); - } - -private: - // these really should be const but are not because the column needs to be - // assignable to be used in a wxVector (in STL build, in non-STL build we - // avoid the need for this) - wxGrid *m_grid; - int m_col; -}; - -// header control retreiving column information from the grid -class wxGridHeaderCtrl : public wxHeaderCtrl -{ -public: - wxGridHeaderCtrl(wxGrid *owner) - : wxHeaderCtrl(owner, - wxID_ANY, - wxDefaultPosition, - wxDefaultSize, - wxHD_ALLOW_HIDE | - (owner->CanDragColMove() ? wxHD_ALLOW_REORDER : 0)) - { - } - -protected: - virtual const wxHeaderColumn& GetColumn(unsigned int idx) const wxOVERRIDE - { - return m_columns[idx]; - } - -private: - wxGrid *GetOwner() const { return static_cast(GetParent()); } - - static wxMouseEvent GetDummyMouseEvent() - { - // make up a dummy event for the grid event to use -- unfortunately we - // can't do anything else here - wxMouseEvent e; - e.SetState(wxGetMouseState()); - return e; - } - - // override the base class method to update our m_columns array - virtual void OnColumnCountChanging(unsigned int count) wxOVERRIDE - { - const unsigned countOld = m_columns.size(); - if ( count < countOld ) - { - // just discard the columns which don't exist any more (notice that - // we can't use resize() here as it would require the vector - // value_type, i.e. wxGridHeaderColumn to be default constructible, - // which it is not) - m_columns.erase(m_columns.begin() + count, m_columns.end()); - } - else // new columns added - { - // add columns for the new elements - for ( unsigned n = countOld; n < count; n++ ) - m_columns.push_back(wxGridHeaderColumn(GetOwner(), n)); - } - } - - // override to implement column auto sizing - virtual bool UpdateColumnWidthToFit(unsigned int idx, int widthTitle) wxOVERRIDE - { - // TODO: currently grid doesn't support computing the column best width - // from its contents so we just use the best label width as is - GetOwner()->SetColSize(idx, widthTitle); - - return true; - } - - // overridden to react to the actions using the columns popup menu - virtual void UpdateColumnVisibility(unsigned int idx, bool show) wxOVERRIDE - { - GetOwner()->SetColSize(idx, show ? wxGRID_AUTOSIZE : 0); - - // as this is done by the user we should notify the main program about - // it - GetOwner()->SendGridSizeEvent(wxEVT_GRID_COL_SIZE, -1, idx, - GetDummyMouseEvent()); - } - - // overridden to react to the columns order changes in the customization - // dialog - virtual void UpdateColumnsOrder(const wxArrayInt& order) wxOVERRIDE - { - GetOwner()->SetColumnsOrder(order); - } - - - // event handlers forwarding wxHeaderCtrl events to wxGrid - void OnClick(wxHeaderCtrlEvent& event) - { - GetOwner()->SendEvent(wxEVT_GRID_LABEL_LEFT_CLICK, - -1, event.GetColumn(), - GetDummyMouseEvent()); - - GetOwner()->DoColHeaderClick(event.GetColumn()); - } - - void OnDoubleClick(wxHeaderCtrlEvent& event) - { - if ( !GetOwner()->SendEvent(wxEVT_GRID_LABEL_LEFT_DCLICK, - -1, event.GetColumn(), - GetDummyMouseEvent()) ) - { - event.Skip(); - } - } - - void OnRightClick(wxHeaderCtrlEvent& event) - { - if ( !GetOwner()->SendEvent(wxEVT_GRID_LABEL_RIGHT_CLICK, - -1, event.GetColumn(), - GetDummyMouseEvent()) ) - { - event.Skip(); - } - } - - void OnBeginResize(wxHeaderCtrlEvent& event) - { - GetOwner()->DoStartResizeCol(event.GetColumn()); - - event.Skip(); - } - - void OnResizing(wxHeaderCtrlEvent& event) - { - GetOwner()->DoUpdateResizeColWidth(event.GetWidth()); - } - - void OnEndResize(wxHeaderCtrlEvent& event) - { - // we again need to pass a mouse event to be used for the grid event - // generation but we don't have it here so use a dummy one as in - // UpdateColumnVisibility() - wxMouseEvent e; - e.SetState(wxGetMouseState()); - GetOwner()->DoEndDragResizeCol(e); - - event.Skip(); - } - - void OnBeginReorder(wxHeaderCtrlEvent& event) - { - GetOwner()->DoStartMoveCol(event.GetColumn()); - } - - void OnEndReorder(wxHeaderCtrlEvent& event) - { - GetOwner()->DoEndMoveCol(event.GetNewOrder()); - } - - wxVector m_columns; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxGridHeaderCtrl); -}; - -// common base class for various grid subwindows -class WXDLLIMPEXP_ADV wxGridSubwindow : public wxWindow -{ -public: - wxGridSubwindow(wxGrid *owner, - int additionalStyle = 0, - const wxString& name = wxPanelNameStr) - : wxWindow(owner, wxID_ANY, - wxDefaultPosition, wxDefaultSize, - wxBORDER_NONE | additionalStyle, - name) - { - m_owner = owner; - } - - virtual wxWindow *GetMainWindowOfCompositeControl() wxOVERRIDE { return m_owner; } - - virtual bool AcceptsFocus() const wxOVERRIDE { return false; } - - wxGrid *GetOwner() { return m_owner; } - -protected: - void OnMouseCaptureLost(wxMouseCaptureLostEvent& event); - - wxGrid *m_owner; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxGridSubwindow); -}; - -class WXDLLIMPEXP_ADV wxGridRowLabelWindow : public wxGridSubwindow -{ -public: - wxGridRowLabelWindow(wxGrid *parent) - : wxGridSubwindow(parent) - { - } - - -private: - void OnPaint( wxPaintEvent& event ); - void OnMouseEvent( wxMouseEvent& event ); - void OnMouseWheel( wxMouseEvent& event ); - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxGridRowLabelWindow); -}; - - -class WXDLLIMPEXP_ADV wxGridColLabelWindow : public wxGridSubwindow -{ -public: - wxGridColLabelWindow(wxGrid *parent) - : wxGridSubwindow(parent) - { - } - - -private: - void OnPaint( wxPaintEvent& event ); - void OnMouseEvent( wxMouseEvent& event ); - void OnMouseWheel( wxMouseEvent& event ); - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxGridColLabelWindow); -}; - - -class WXDLLIMPEXP_ADV wxGridCornerLabelWindow : public wxGridSubwindow -{ -public: - wxGridCornerLabelWindow(wxGrid *parent) - : wxGridSubwindow(parent) - { - } - -private: - void OnMouseEvent( wxMouseEvent& event ); - void OnMouseWheel( wxMouseEvent& event ); - void OnPaint( wxPaintEvent& event ); - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxGridCornerLabelWindow); -}; - -class WXDLLIMPEXP_ADV wxGridWindow : public wxGridSubwindow -{ -public: - wxGridWindow(wxGrid *parent) - : wxGridSubwindow(parent, - wxWANTS_CHARS | wxCLIP_CHILDREN, - "GridWindow") - { - } - - - virtual void ScrollWindow( int dx, int dy, const wxRect *rect ) wxOVERRIDE; - - virtual bool AcceptsFocus() const wxOVERRIDE { return true; } - -private: - void OnPaint( wxPaintEvent &event ); - void OnMouseWheel( wxMouseEvent& event ); - void OnMouseEvent( wxMouseEvent& event ); - void OnKeyDown( wxKeyEvent& ); - void OnKeyUp( wxKeyEvent& ); - void OnChar( wxKeyEvent& ); - void OnEraseBackground( wxEraseEvent& ); - void OnFocus( wxFocusEvent& ); - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxGridWindow); -}; - -// ---------------------------------------------------------------------------- -// the internal data representation used by wxGridCellAttrProvider -// ---------------------------------------------------------------------------- - -// this class stores attributes set for cells -class WXDLLIMPEXP_ADV wxGridCellAttrData -{ -public: - void SetAttr(wxGridCellAttr *attr, int row, int col); - wxGridCellAttr *GetAttr(int row, int col) const; - void UpdateAttrRows( size_t pos, int numRows ); - void UpdateAttrCols( size_t pos, int numCols ); - -private: - // searches for the attr for given cell, returns wxNOT_FOUND if not found - int FindIndex(int row, int col) const; - - wxGridCellWithAttrArray m_attrs; -}; - -// this class stores attributes set for rows or columns -class WXDLLIMPEXP_ADV wxGridRowOrColAttrData -{ -public: - // empty ctor to suppress warnings - wxGridRowOrColAttrData() {} - ~wxGridRowOrColAttrData(); - - void SetAttr(wxGridCellAttr *attr, int rowOrCol); - wxGridCellAttr *GetAttr(int rowOrCol) const; - void UpdateAttrRowsOrCols( size_t pos, int numRowsOrCols ); - -private: - wxArrayInt m_rowsOrCols; - wxArrayAttrs m_attrs; -}; - -// NB: this is just a wrapper around 3 objects: one which stores cell -// attributes, and 2 others for row/col ones -class WXDLLIMPEXP_ADV wxGridCellAttrProviderData -{ -public: - wxGridCellAttrData m_cellAttrs; - wxGridRowOrColAttrData m_rowAttrs, - m_colAttrs; -}; - -// ---------------------------------------------------------------------------- -// operations classes abstracting the difference between operating on rows and -// columns -// ---------------------------------------------------------------------------- - -// This class allows to write a function only once because by using its methods -// it will apply to both columns and rows. -// -// This is an abstract interface definition, the two concrete implementations -// below should be used when working with rows and columns respectively. -class wxGridOperations -{ -public: - // Returns the operations in the other direction, i.e. wxGridRowOperations - // if this object is a wxGridColumnOperations and vice versa. - virtual wxGridOperations& Dual() const = 0; - - // Return the number of rows or columns. - virtual int GetNumberOfLines(const wxGrid *grid) const = 0; - - // Return the selection mode which allows selecting rows or columns. - virtual wxGrid::wxGridSelectionModes GetSelectionMode() const = 0; - - // Make a wxGridCellCoords from the given components: thisDir is row or - // column and otherDir is column or row - virtual wxGridCellCoords MakeCoords(int thisDir, int otherDir) const = 0; - - // Calculate the scrolled position of the given abscissa or ordinate. - virtual int CalcScrolledPosition(wxGrid *grid, int pos) const = 0; - - // Selects the horizontal or vertical component from the given object. - virtual int Select(const wxGridCellCoords& coords) const = 0; - virtual int Select(const wxPoint& pt) const = 0; - virtual int Select(const wxSize& sz) const = 0; - virtual int Select(const wxRect& r) const = 0; - virtual int& Select(wxRect& r) const = 0; - - // Returns width or height of the rectangle - virtual int& SelectSize(wxRect& r) const = 0; - - // Make a wxSize such that Select() applied to it returns first component - virtual wxSize MakeSize(int first, int second) const = 0; - - // Sets the row or column component of the given cell coordinates - virtual void Set(wxGridCellCoords& coords, int line) const = 0; - - - // Draws a line parallel to the row or column, i.e. horizontal or vertical: - // pos is the horizontal or vertical position of the line and start and end - // are the coordinates of the line extremities in the other direction - virtual void - DrawParallelLine(wxDC& dc, int start, int end, int pos) const = 0; - - // Draw a horizontal or vertical line across the given rectangle - // (this is implemented in terms of above and uses Select() to extract - // start and end from the given rectangle) - void DrawParallelLineInRect(wxDC& dc, const wxRect& rect, int pos) const - { - const int posStart = Select(rect.GetPosition()); - DrawParallelLine(dc, posStart, posStart + Select(rect.GetSize()), pos); - } - - - // Return the index of the row or column at the given pixel coordinate. - virtual int - PosToLine(const wxGrid *grid, int pos, bool clip = false) const = 0; - - // Get the top/left position, in pixels, of the given row or column - virtual int GetLineStartPos(const wxGrid *grid, int line) const = 0; - - // Get the bottom/right position, in pixels, of the given row or column - virtual int GetLineEndPos(const wxGrid *grid, int line) const = 0; - - // Get the height/width of the given row/column - virtual int GetLineSize(const wxGrid *grid, int line) const = 0; - - // Get wxGrid::m_rowBottoms/m_colRights array - virtual const wxArrayInt& GetLineEnds(const wxGrid *grid) const = 0; - - // Get default height row height or column width - virtual int GetDefaultLineSize(const wxGrid *grid) const = 0; - - // Return the minimal acceptable row height or column width - virtual int GetMinimalAcceptableLineSize(const wxGrid *grid) const = 0; - - // Return the minimal row height or column width - virtual int GetMinimalLineSize(const wxGrid *grid, int line) const = 0; - - // Set the row height or column width - virtual void SetLineSize(wxGrid *grid, int line, int size) const = 0; - - // Set the row default height or column default width - virtual void SetDefaultLineSize(wxGrid *grid, int size, bool resizeExisting) const = 0; - - - // Return the index of the line at the given position - // - // NB: currently this is always identity for the rows as reordering is only - // implemented for the lines - virtual int GetLineAt(const wxGrid *grid, int pos) const = 0; - - // Return the display position of the line with the given index. - // - // NB: As GetLineAt(), currently this is always identity for rows. - virtual int GetLinePos(const wxGrid *grid, int line) const = 0; - - // Return the index of the line just before the given one or wxNOT_FOUND. - virtual int GetLineBefore(const wxGrid* grid, int line) const = 0; - - // Get the row or column label window - virtual wxWindow *GetHeaderWindow(wxGrid *grid) const = 0; - - // Get the width or height of the row or column label window - virtual int GetHeaderWindowSize(wxGrid *grid) const = 0; - - - // This class is never used polymorphically but give it a virtual dtor - // anyhow to suppress g++ complaints about it - virtual ~wxGridOperations() { } -}; - -class wxGridRowOperations : public wxGridOperations -{ -public: - virtual wxGridOperations& Dual() const wxOVERRIDE; - - virtual int GetNumberOfLines(const wxGrid *grid) const wxOVERRIDE - { return grid->GetNumberRows(); } - - virtual wxGrid::wxGridSelectionModes GetSelectionMode() const wxOVERRIDE - { return wxGrid::wxGridSelectRows; } - - virtual wxGridCellCoords MakeCoords(int thisDir, int otherDir) const wxOVERRIDE - { return wxGridCellCoords(thisDir, otherDir); } - - virtual int CalcScrolledPosition(wxGrid *grid, int pos) const wxOVERRIDE - { return grid->CalcScrolledPosition(wxPoint(pos, 0)).x; } - - virtual int Select(const wxGridCellCoords& c) const wxOVERRIDE { return c.GetRow(); } - virtual int Select(const wxPoint& pt) const wxOVERRIDE { return pt.x; } - virtual int Select(const wxSize& sz) const wxOVERRIDE { return sz.x; } - virtual int Select(const wxRect& r) const wxOVERRIDE { return r.x; } - virtual int& Select(wxRect& r) const wxOVERRIDE { return r.x; } - virtual int& SelectSize(wxRect& r) const wxOVERRIDE { return r.width; } - virtual wxSize MakeSize(int first, int second) const wxOVERRIDE - { return wxSize(first, second); } - virtual void Set(wxGridCellCoords& coords, int line) const wxOVERRIDE - { coords.SetRow(line); } - - virtual void DrawParallelLine(wxDC& dc, int start, int end, int pos) const wxOVERRIDE - { dc.DrawLine(start, pos, end, pos); } - - virtual int PosToLine(const wxGrid *grid, int pos, bool clip = false) const wxOVERRIDE - { return grid->YToRow(pos, clip); } - virtual int GetLineStartPos(const wxGrid *grid, int line) const wxOVERRIDE - { return grid->GetRowTop(line); } - virtual int GetLineEndPos(const wxGrid *grid, int line) const wxOVERRIDE - { return grid->GetRowBottom(line); } - virtual int GetLineSize(const wxGrid *grid, int line) const wxOVERRIDE - { return grid->GetRowHeight(line); } - virtual const wxArrayInt& GetLineEnds(const wxGrid *grid) const wxOVERRIDE - { return grid->m_rowBottoms; } - virtual int GetDefaultLineSize(const wxGrid *grid) const wxOVERRIDE - { return grid->GetDefaultRowSize(); } - virtual int GetMinimalAcceptableLineSize(const wxGrid *grid) const wxOVERRIDE - { return grid->GetRowMinimalAcceptableHeight(); } - virtual int GetMinimalLineSize(const wxGrid *grid, int line) const wxOVERRIDE - { return grid->GetRowMinimalHeight(line); } - virtual void SetLineSize(wxGrid *grid, int line, int size) const wxOVERRIDE - { grid->SetRowSize(line, size); } - virtual void SetDefaultLineSize(wxGrid *grid, int size, bool resizeExisting) const wxOVERRIDE - { grid->SetDefaultRowSize(size, resizeExisting); } - - virtual int GetLineAt(const wxGrid * WXUNUSED(grid), int pos) const wxOVERRIDE - { return pos; } // TODO: implement row reordering - virtual int GetLinePos(const wxGrid * WXUNUSED(grid), int line) const wxOVERRIDE - { return line; } // TODO: implement row reordering - - virtual int GetLineBefore(const wxGrid* WXUNUSED(grid), int line) const wxOVERRIDE - { return line - 1; } - - virtual wxWindow *GetHeaderWindow(wxGrid *grid) const wxOVERRIDE - { return grid->GetGridRowLabelWindow(); } - virtual int GetHeaderWindowSize(wxGrid *grid) const wxOVERRIDE - { return grid->GetRowLabelSize(); } -}; - -class wxGridColumnOperations : public wxGridOperations -{ -public: - virtual wxGridOperations& Dual() const wxOVERRIDE; - - virtual int GetNumberOfLines(const wxGrid *grid) const wxOVERRIDE - { return grid->GetNumberCols(); } - - virtual wxGrid::wxGridSelectionModes GetSelectionMode() const wxOVERRIDE - { return wxGrid::wxGridSelectColumns; } - - virtual wxGridCellCoords MakeCoords(int thisDir, int otherDir) const wxOVERRIDE - { return wxGridCellCoords(otherDir, thisDir); } - - virtual int CalcScrolledPosition(wxGrid *grid, int pos) const wxOVERRIDE - { return grid->CalcScrolledPosition(wxPoint(0, pos)).y; } - - virtual int Select(const wxGridCellCoords& c) const wxOVERRIDE { return c.GetCol(); } - virtual int Select(const wxPoint& pt) const wxOVERRIDE { return pt.y; } - virtual int Select(const wxSize& sz) const wxOVERRIDE { return sz.y; } - virtual int Select(const wxRect& r) const wxOVERRIDE { return r.y; } - virtual int& Select(wxRect& r) const wxOVERRIDE { return r.y; } - virtual int& SelectSize(wxRect& r) const wxOVERRIDE { return r.height; } - virtual wxSize MakeSize(int first, int second) const wxOVERRIDE - { return wxSize(second, first); } - virtual void Set(wxGridCellCoords& coords, int line) const wxOVERRIDE - { coords.SetCol(line); } - - virtual void DrawParallelLine(wxDC& dc, int start, int end, int pos) const wxOVERRIDE - { dc.DrawLine(pos, start, pos, end); } - - virtual int PosToLine(const wxGrid *grid, int pos, bool clip = false) const wxOVERRIDE - { return grid->XToCol(pos, clip); } - virtual int GetLineStartPos(const wxGrid *grid, int line) const wxOVERRIDE - { return grid->GetColLeft(line); } - virtual int GetLineEndPos(const wxGrid *grid, int line) const wxOVERRIDE - { return grid->GetColRight(line); } - virtual int GetLineSize(const wxGrid *grid, int line) const wxOVERRIDE - { return grid->GetColWidth(line); } - virtual const wxArrayInt& GetLineEnds(const wxGrid *grid) const wxOVERRIDE - { return grid->m_colRights; } - virtual int GetDefaultLineSize(const wxGrid *grid) const wxOVERRIDE - { return grid->GetDefaultColSize(); } - virtual int GetMinimalAcceptableLineSize(const wxGrid *grid) const wxOVERRIDE - { return grid->GetColMinimalAcceptableWidth(); } - virtual int GetMinimalLineSize(const wxGrid *grid, int line) const wxOVERRIDE - { return grid->GetColMinimalWidth(line); } - virtual void SetLineSize(wxGrid *grid, int line, int size) const wxOVERRIDE - { grid->SetColSize(line, size); } - virtual void SetDefaultLineSize(wxGrid *grid, int size, bool resizeExisting) const wxOVERRIDE - { grid->SetDefaultColSize(size, resizeExisting); } - - virtual int GetLineAt(const wxGrid *grid, int pos) const wxOVERRIDE - { return grid->GetColAt(pos); } - virtual int GetLinePos(const wxGrid *grid, int line) const wxOVERRIDE - { return grid->GetColPos(line); } - - virtual int GetLineBefore(const wxGrid* grid, int line) const wxOVERRIDE - { - int posBefore = grid->GetColPos(line) - 1; - return posBefore >= 0 ? grid->GetColAt(posBefore) : wxNOT_FOUND; - } - - virtual wxWindow *GetHeaderWindow(wxGrid *grid) const wxOVERRIDE - { return grid->GetGridColLabelWindow(); } - virtual int GetHeaderWindowSize(wxGrid *grid) const wxOVERRIDE - { return grid->GetColLabelSize(); } -}; - -// This class abstracts the difference between operations going forward -// (down/right) and backward (up/left) and allows to use the same code for -// functions which differ only in the direction of grid traversal. -// -// Notice that all operations in this class work with display positions and not -// internal indices which can be different if the columns were reordered. -// -// Like wxGridOperations it's an ABC with two concrete subclasses below. Unlike -// it, this is a normal object and not just a function dispatch table and has a -// non-default ctor. -// -// Note: the explanation of this discrepancy is the existence of (very useful) -// Dual() method in wxGridOperations which forces us to make wxGridOperations a -// function dispatcher only. -class wxGridDirectionOperations -{ -public: - // The oper parameter to ctor selects whether we work with rows or columns - wxGridDirectionOperations(wxGrid *grid, const wxGridOperations& oper) - : m_grid(grid), - m_oper(oper) - { - } - - // Check if the component of this point in our direction is at the - // boundary, i.e. is the first/last row/column - virtual bool IsAtBoundary(const wxGridCellCoords& coords) const = 0; - - // Increment the component of this point in our direction - virtual void Advance(wxGridCellCoords& coords) const = 0; - - // Find the line at the given distance, in pixels, away from this one - // (this uses clipping, i.e. anything after the last line is counted as the - // last one and anything before the first one as 0) - // - // TODO: Implementation of this method currently doesn't support column - // reordering as it mixes up indices and positions. But this doesn't - // really matter as it's only called for rows (Page Up/Down only work - // vertically) and row reordering is not currently supported. We'd - // need to fix it if this ever changes however. - virtual int MoveByPixelDistance(int line, int distance) const = 0; - - // This class is never used polymorphically but give it a virtual dtor - // anyhow to suppress g++ complaints about it - virtual ~wxGridDirectionOperations() { } - -protected: - // Get the position of the row or column from the given coordinates pair. - // - // This is just a shortcut to avoid repeating m_oper and m_grid multiple - // times in the derived classes code. - int GetLinePos(const wxGridCellCoords& coords) const - { - return m_oper.GetLinePos(m_grid, m_oper.Select(coords)); - } - - // Get the index of the row or column from the position. - int GetLineAt(int pos) const - { - return m_oper.GetLineAt(m_grid, pos); - } - - // Check if the given line is visible, i.e. has non 0 size. - bool IsLineVisible(int line) const - { - return m_oper.GetLineSize(m_grid, line) != 0; - } - - - wxGrid * const m_grid; - const wxGridOperations& m_oper; -}; - -class wxGridBackwardOperations : public wxGridDirectionOperations -{ -public: - wxGridBackwardOperations(wxGrid *grid, const wxGridOperations& oper) - : wxGridDirectionOperations(grid, oper) - { - } - - virtual bool IsAtBoundary(const wxGridCellCoords& coords) const wxOVERRIDE - { - wxASSERT_MSG( m_oper.Select(coords) >= 0, "invalid row/column" ); - - int pos = GetLinePos(coords); - while ( pos ) - { - // Check the previous line. - int line = GetLineAt(--pos); - if ( IsLineVisible(line) ) - { - // There is another visible line before this one, hence it's - // not at boundary. - return false; - } - } - - // We reached the boundary without finding any visible lines. - return true; - } - - virtual void Advance(wxGridCellCoords& coords) const wxOVERRIDE - { - int pos = GetLinePos(coords); - for ( ;; ) - { - // This is not supposed to happen if IsAtBoundary() returned false. - wxCHECK_RET( pos, "can't advance when already at boundary" ); - - int line = GetLineAt(--pos); - if ( IsLineVisible(line) ) - { - m_oper.Set(coords, line); - break; - } - } - } - - virtual int MoveByPixelDistance(int line, int distance) const wxOVERRIDE - { - int pos = m_oper.GetLineStartPos(m_grid, line); - return m_oper.PosToLine(m_grid, pos - distance + 1, true); - } -}; - -// Please refer to the comments above when reading this class code, it's -// absolutely symmetrical to wxGridBackwardOperations. -class wxGridForwardOperations : public wxGridDirectionOperations -{ -public: - wxGridForwardOperations(wxGrid *grid, const wxGridOperations& oper) - : wxGridDirectionOperations(grid, oper), - m_numLines(oper.GetNumberOfLines(grid)) - { - } - - virtual bool IsAtBoundary(const wxGridCellCoords& coords) const wxOVERRIDE - { - wxASSERT_MSG( m_oper.Select(coords) < m_numLines, "invalid row/column" ); - - int pos = GetLinePos(coords); - while ( pos < m_numLines - 1 ) - { - int line = GetLineAt(++pos); - if ( IsLineVisible(line) ) - return false; - } - - return true; - } - - virtual void Advance(wxGridCellCoords& coords) const wxOVERRIDE - { - int pos = GetLinePos(coords); - for ( ;; ) - { - wxCHECK_RET( pos < m_numLines - 1, - "can't advance when already at boundary" ); - - int line = GetLineAt(++pos); - if ( IsLineVisible(line) ) - { - m_oper.Set(coords, line); - break; - } - } - } - - virtual int MoveByPixelDistance(int line, int distance) const wxOVERRIDE - { - int pos = m_oper.GetLineStartPos(m_grid, line); - return m_oper.PosToLine(m_grid, pos + distance, true); - } - -private: - const int m_numLines; -}; - -// ---------------------------------------------------------------------------- -// data structures used for the data type registry -// ---------------------------------------------------------------------------- - -struct wxGridDataTypeInfo -{ - wxGridDataTypeInfo(const wxString& typeName, - wxGridCellRenderer* renderer, - wxGridCellEditor* editor) - : m_typeName(typeName), m_renderer(renderer), m_editor(editor) - {} - - ~wxGridDataTypeInfo() - { - wxSafeDecRef(m_renderer); - wxSafeDecRef(m_editor); - } - - wxString m_typeName; - wxGridCellRenderer* m_renderer; - wxGridCellEditor* m_editor; - - wxDECLARE_NO_COPY_CLASS(wxGridDataTypeInfo); -}; - - -WX_DEFINE_ARRAY_WITH_DECL_PTR(wxGridDataTypeInfo*, wxGridDataTypeInfoArray, - class WXDLLIMPEXP_ADV); - - -class WXDLLIMPEXP_ADV wxGridTypeRegistry -{ -public: - wxGridTypeRegistry() {} - ~wxGridTypeRegistry(); - - void RegisterDataType(const wxString& typeName, - wxGridCellRenderer* renderer, - wxGridCellEditor* editor); - - // find one of already registered data types - int FindRegisteredDataType(const wxString& typeName); - - // try to FindRegisteredDataType(), if this fails and typeName is one of - // standard typenames, register it and return its index - int FindDataType(const wxString& typeName); - - // try to FindDataType(), if it fails see if it is not one of already - // registered data types with some params in which case clone the - // registered data type and set params for it - int FindOrCloneDataType(const wxString& typeName); - - wxGridCellRenderer* GetRenderer(int index); - wxGridCellEditor* GetEditor(int index); - -private: - wxGridDataTypeInfoArray m_typeinfo; -}; - -#endif // wxUSE_GRID -#endif // _WX_GENERIC_GRID_PRIVATE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/listctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/listctrl.h deleted file mode 100644 index 9cd50707..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/listctrl.h +++ /dev/null @@ -1,886 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/private/listctrl.h -// Purpose: private definitions of wxListCtrl helpers -// Author: Robert Roebling -// Vadim Zeitlin (virtual list control support) -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_LISTCTRL_PRIVATE_H_ -#define _WX_GENERIC_LISTCTRL_PRIVATE_H_ - -#include "wx/defs.h" - -#if wxUSE_LISTCTRL - -#include "wx/listctrl.h" -#include "wx/selstore.h" -#include "wx/timer.h" -#include "wx/settings.h" - -// ============================================================================ -// private classes -// ============================================================================ - -//----------------------------------------------------------------------------- -// wxColWidthInfo (internal) -//----------------------------------------------------------------------------- - -struct wxColWidthInfo -{ - int nMaxWidth; - bool bNeedsUpdate; // only set to true when an item whose - // width == nMaxWidth is removed - - wxColWidthInfo(int w = 0, bool needsUpdate = false) - { - nMaxWidth = w; - bNeedsUpdate = needsUpdate; - } -}; - -WX_DEFINE_ARRAY_PTR(wxColWidthInfo *, ColWidthArray); - -//----------------------------------------------------------------------------- -// wxListItemData (internal) -//----------------------------------------------------------------------------- - -class wxListItemData -{ -public: - wxListItemData(wxListMainWindow *owner); - ~wxListItemData(); - - void SetItem( const wxListItem &info ); - void SetImage( int image ) { m_image = image; } - void SetData( wxUIntPtr data ) { m_data = data; } - void SetPosition( int x, int y ); - void SetSize( int width, int height ); - - bool HasText() const { return !m_text.empty(); } - const wxString& GetText() const { return m_text; } - void SetText(const wxString& text) { m_text = text; } - - // we can't use empty string for measuring the string width/height, so - // always return something - wxString GetTextForMeasuring() const - { - wxString s = GetText(); - if ( s.empty() ) - s = wxT('H'); - - return s; - } - - bool IsHit( int x, int y ) const; - - int GetX() const; - int GetY() const; - int GetWidth() const; - int GetHeight() const; - - int GetImage() const { return m_image; } - bool HasImage() const { return GetImage() != -1; } - - void GetItem( wxListItem &info ) const; - - void SetAttr(wxListItemAttr *attr) { m_attr = attr; } - wxListItemAttr *GetAttr() const { return m_attr; } - -public: - // the item image or -1 - int m_image; - - // user data associated with the item - wxUIntPtr m_data; - - // the item coordinates are not used in report mode; instead this pointer is - // NULL and the owner window is used to retrieve the item position and size - wxRect *m_rect; - - // the list ctrl we are in - wxListMainWindow *m_owner; - - // custom attributes or NULL - wxListItemAttr *m_attr; - -protected: - // common part of all ctors - void Init(); - - wxString m_text; -}; - -//----------------------------------------------------------------------------- -// wxListHeaderData (internal) -//----------------------------------------------------------------------------- - -class wxListHeaderData : public wxObject -{ -public: - wxListHeaderData(); - wxListHeaderData( const wxListItem &info ); - void SetItem( const wxListItem &item ); - void SetPosition( int x, int y ); - void SetWidth( int w ); - void SetState( int state ); - void SetFormat( int format ); - void SetHeight( int h ); - bool HasImage() const; - - bool HasText() const { return !m_text.empty(); } - const wxString& GetText() const { return m_text; } - void SetText(const wxString& text) { m_text = text; } - - void GetItem( wxListItem &item ); - - bool IsHit( int x, int y ) const; - int GetImage() const; - int GetWidth() const; - int GetFormat() const; - int GetState() const; - -protected: - long m_mask; - int m_image; - wxString m_text; - int m_format; - int m_width; - int m_xpos, - m_ypos; - int m_height; - int m_state; - -private: - void Init(); -}; - -//----------------------------------------------------------------------------- -// wxListLineData (internal) -//----------------------------------------------------------------------------- - -WX_DECLARE_LIST(wxListItemData, wxListItemDataList); - -class wxListLineData -{ -public: - // the list of subitems: only may have more than one item in report mode - wxListItemDataList m_items; - - // this is not used in report view - struct GeometryInfo - { - // total item rect - wxRect m_rectAll; - - // label only - wxRect m_rectLabel; - - // icon only - wxRect m_rectIcon; - - // the part to be highlighted - wxRect m_rectHighlight; - - // extend all our rects to be centered inside the one of given width - void ExtendWidth(wxCoord w) - { - wxASSERT_MSG( m_rectAll.width <= w, - wxT("width can only be increased") ); - - m_rectAll.width = w; - m_rectLabel.x = m_rectAll.x + (w - m_rectLabel.width) / 2; - m_rectIcon.x = m_rectAll.x + (w - m_rectIcon.width) / 2; - m_rectHighlight.x = m_rectAll.x + (w - m_rectHighlight.width) / 2; - } - } - *m_gi; - - // is this item selected? [NB: not used in virtual mode] - bool m_highlighted; - - bool m_checked; - - // back pointer to the list ctrl - wxListMainWindow *m_owner; - -public: - wxListLineData(wxListMainWindow *owner); - - ~wxListLineData() - { - WX_CLEAR_LIST(wxListItemDataList, m_items); - delete m_gi; - } - - // called by the owner when it toggles report view - void SetReportView(bool inReportView) - { - // we only need m_gi when we're not in report view so update as needed - if ( inReportView ) - { - delete m_gi; - m_gi = NULL; - } - else - { - m_gi = new GeometryInfo; - } - } - - // are we in report mode? - inline bool InReportView() const; - - // are we in virtual report mode? - inline bool IsVirtual() const; - - // these 2 methods shouldn't be called for report view controls, in that - // case we determine our position/size ourselves - - // calculate the size of the line - void CalculateSize( wxDC *dc, int spacing ); - - // remember the position this line appears at - void SetPosition( int x, int y, int spacing ); - - // wxListCtrl API - - void SetImage( int image ) { SetImage(0, image); } - int GetImage() const { return GetImage(0); } - void SetImage( int index, int image ); - int GetImage( int index ) const; - - void Check(bool check) { m_checked = check; } - bool IsChecked() { return m_checked; } - - bool HasImage() const { return GetImage() != -1; } - bool HasText() const { return !GetText(0).empty(); } - - void SetItem( int index, const wxListItem &info ); - void GetItem( int index, wxListItem &info ); - - wxString GetText(int index) const; - void SetText( int index, const wxString& s ); - - wxListItemAttr *GetAttr() const; - void SetAttr(wxListItemAttr *attr); - - // return true if the highlighting really changed - bool Highlight( bool on ); - - void ReverseHighlight(); - - bool IsHighlighted() const - { - wxASSERT_MSG( !IsVirtual(), wxT("unexpected call to IsHighlighted") ); - - return m_highlighted; - } - - // draw the line on the given DC in icon/list mode - void Draw( wxDC *dc, bool current ); - - // the same in report mode: it needs more parameters as we don't store - // everything in the item in report mode - void DrawInReportMode( wxDC *dc, - const wxRect& rect, - const wxRect& rectHL, - bool highlighted, - bool current ); - -private: - // set the line to contain num items (only can be > 1 in report mode) - void InitItems( int num ); - - // get the mode (i.e. style) of the list control - inline int GetMode() const; - - // Apply this item attributes to the given DC: set the text font and colour - // and also erase the background appropriately. - void ApplyAttributes(wxDC *dc, - const wxRect& rectHL, - bool highlighted, - bool current); - - // draw the text on the DC with the correct justification; also add an - // ellipsis if the text is too large to fit in the current width - void DrawTextFormatted(wxDC *dc, - const wxString &text, - int col, - int x, - int yMid, // this is middle, not top, of the text - int width); -}; - -WX_DECLARE_OBJARRAY(wxListLineData, wxListLineDataArray); - -//----------------------------------------------------------------------------- -// wxListHeaderWindow (internal) -//----------------------------------------------------------------------------- - -class wxListHeaderWindow : public wxWindow -{ -protected: - wxListMainWindow *m_owner; - const wxCursor *m_currentCursor; - wxCursor *m_resizeCursor; - bool m_isDragging; - - // column being resized or -1 - int m_column; - - // divider line position in logical (unscrolled) coords - int m_currentX; - - // minimal position beyond which the divider line - // can't be dragged in logical coords - int m_minX; - -public: - wxListHeaderWindow(); - - // We provide only Create(), not the ctor, because we need to create the - // C++ object before creating the window, see the explanations in - // CreateOrDestroyHeaderWindowAsNeeded() - bool Create( wxWindow *win, - wxWindowID id, - wxListMainWindow *owner, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = 0, - const wxString &name = wxT("wxlistctrlcolumntitles") ); - - virtual ~wxListHeaderWindow(); - - // We never need focus as we don't have any keyboard interface. - virtual bool AcceptsFocus() const wxOVERRIDE { return false; } - - void DrawCurrent(); - void AdjustDC( wxDC& dc ); - - void OnPaint( wxPaintEvent &event ); - void OnMouse( wxMouseEvent &event ); - - // needs refresh - bool m_dirty; - - // Update main window's column later - bool m_sendSetColumnWidth; - int m_colToSend; - int m_widthToSend; - - virtual void OnInternalIdle() wxOVERRIDE; - -private: - // common part of all ctors - void Init(); - - // generate and process the list event of the given type, return true if - // it wasn't vetoed, i.e. if we should proceed - bool SendListEvent(wxEventType type, const wxPoint& pos); - - wxDECLARE_EVENT_TABLE(); -}; - -//----------------------------------------------------------------------------- -// wxListRenameTimer (internal) -//----------------------------------------------------------------------------- - -class wxListRenameTimer: public wxTimer -{ -private: - wxListMainWindow *m_owner; - -public: - wxListRenameTimer( wxListMainWindow *owner ); - void Notify() wxOVERRIDE; -}; - -//----------------------------------------------------------------------------- -// wxListFindTimer (internal) -//----------------------------------------------------------------------------- - -class wxListFindTimer: public wxTimer -{ -public: - // reset the current prefix after half a second of inactivity - enum { DELAY = 500 }; - - wxListFindTimer( wxListMainWindow *owner ) - : m_owner(owner) - { - } - - virtual void Notify() wxOVERRIDE; - -private: - wxListMainWindow *m_owner; -}; - -//----------------------------------------------------------------------------- -// wxListTextCtrlWrapper: wraps a wxTextCtrl to make it work for inline editing -//----------------------------------------------------------------------------- - -class wxListTextCtrlWrapper : public wxEvtHandler -{ -public: - // NB: text must be a valid object but not Create()d yet - wxListTextCtrlWrapper(wxListMainWindow *owner, - wxTextCtrl *text, - size_t itemEdit); - - wxTextCtrl *GetText() const { return m_text; } - - // Check if the given key event should stop editing and return true if it - // does or false otherwise. - bool CheckForEndEditKey(const wxKeyEvent& event); - - // Different reasons for calling EndEdit(): - // - // It was called because: - enum EndReason - { - End_Accept, // user has accepted the changes. - End_Discard, // user has cancelled editing. - End_Destroy // the entire control is being destroyed. - }; - - void EndEdit(EndReason reason); - -protected: - void OnChar( wxKeyEvent &event ); - void OnKeyUp( wxKeyEvent &event ); - void OnKillFocus( wxFocusEvent &event ); - - bool AcceptChanges(); - void Finish( bool setfocus ); - -private: - wxListMainWindow *m_owner; - wxTextCtrl *m_text; - wxString m_startValue; - size_t m_itemEdited; - bool m_aboutToFinish; - - wxDECLARE_EVENT_TABLE(); -}; - -//----------------------------------------------------------------------------- -// wxListMainWindow (internal) -//----------------------------------------------------------------------------- - -WX_DECLARE_LIST(wxListHeaderData, wxListHeaderDataList); - -class wxListMainWindow : public wxWindow -{ -public: - wxListMainWindow(); - wxListMainWindow( wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size ); - - virtual ~wxListMainWindow(); - - // called by the main control when its mode changes - void SetReportView(bool inReportView); - - // helper to simplify testing for wxLC_XXX flags - bool HasFlag(int flag) const { return m_parent->HasFlag(flag); } - - // return true if this is a virtual list control - bool IsVirtual() const { return HasFlag(wxLC_VIRTUAL); } - - // return true if the control is in report mode - bool InReportView() const { return HasFlag(wxLC_REPORT); } - - // return true if we are in single selection mode, false if multi sel - bool IsSingleSel() const { return HasFlag(wxLC_SINGLE_SEL); } - - // do we have a header window? - bool HasHeader() const - { return InReportView() && !HasFlag(wxLC_NO_HEADER); } - - void HighlightAll( bool on ); - - // all these functions only do something if the line is currently visible - - // change the line "selected" state, return true if it really changed - bool HighlightLine( size_t line, bool highlight = true); - - // as HighlightLine() but do it for the range of lines: this is incredibly - // more efficient for virtual list controls! - // - // NB: unlike HighlightLine() this one does refresh the lines on screen - void HighlightLines( size_t lineFrom, size_t lineTo, bool on = true ); - - // toggle the line state and refresh it - void ReverseHighlight( size_t line ) - { HighlightLine(line, !IsHighlighted(line)); RefreshLine(line); } - - // return true if the line is highlighted - bool IsHighlighted(size_t line) const; - - // refresh one or several lines at once - void RefreshLine( size_t line ); - void RefreshLines( size_t lineFrom, size_t lineTo ); - - // refresh all selected items - void RefreshSelected(); - - // refresh all lines below the given one: the difference with - // RefreshLines() is that the index here might not be a valid one (happens - // when the last line is deleted) - void RefreshAfter( size_t lineFrom ); - - // the methods which are forwarded to wxListLineData itself in list/icon - // modes but are here because the lines don't store their positions in the - // report mode - - // get the bound rect for the entire line - wxRect GetLineRect(size_t line) const; - - // get the bound rect of the label - wxRect GetLineLabelRect(size_t line) const; - - // get the bound rect of the items icon (only may be called if we do have - // an icon!) - wxRect GetLineIconRect(size_t line) const; - - // get the rect to be highlighted when the item has focus - wxRect GetLineHighlightRect(size_t line) const; - - // get the size of the total line rect - wxSize GetLineSize(size_t line) const - { return GetLineRect(line).GetSize(); } - - // return the hit code for the corresponding position (in this line) - long HitTestLine(size_t line, int x, int y) const; - - // bring the selected item into view, scrolling to it if necessary - void MoveToItem(size_t item); - - bool ScrollList( int WXUNUSED(dx), int dy ); - - // bring the current item into view - void MoveToFocus() { MoveToItem(m_current); } - - // start editing the label of the given item - wxTextCtrl *EditLabel(long item, - wxClassInfo* textControlClass = wxCLASSINFO(wxTextCtrl)); - - bool EndEditLabel(bool cancel); - - wxTextCtrl *GetEditControl() const - { - return m_textctrlWrapper ? m_textctrlWrapper->GetText() : NULL; - } - - void ResetTextControl(wxTextCtrl *text) - { - delete text; - m_textctrlWrapper = NULL; - } - - void OnRenameTimer(); - bool OnRenameAccept(size_t itemEdit, const wxString& value); - void OnRenameCancelled(size_t itemEdit); - - void OnFindTimer(); - // set whether or not to ring the find bell - // (does nothing on MSW - bell is always rung) - void EnableBellOnNoMatch( bool on ); - - void OnMouse( wxMouseEvent &event ); - - // called to switch the selection from the current item to newCurrent, - void OnArrowChar( size_t newCurrent, const wxKeyEvent& event ); - - void OnCharHook( wxKeyEvent &event ); - void OnChar( wxKeyEvent &event ); - void OnKeyDown( wxKeyEvent &event ); - void OnKeyUp( wxKeyEvent &event ); - void OnSetFocus( wxFocusEvent &event ); - void OnKillFocus( wxFocusEvent &event ); - void OnScroll( wxScrollWinEvent& event ); - - void OnPaint( wxPaintEvent &event ); - - void OnChildFocus(wxChildFocusEvent& event); - - void DrawImage( int index, wxDC *dc, int x, int y ); - void GetImageSize( int index, int &width, int &height ) const; - - void SetImageList( wxImageList *imageList, int which ); - void SetItemSpacing( int spacing, bool isSmall = false ); - int GetItemSpacing( bool isSmall = false ); - - void SetColumn( int col, const wxListItem &item ); - void SetColumnWidth( int col, int width ); - void GetColumn( int col, wxListItem &item ) const; - int GetColumnWidth( int col ) const; - int GetColumnCount() const { return m_columns.GetCount(); } - - // returns the sum of the heights of all columns - int GetHeaderWidth() const; - - int GetCountPerPage() const; - - void SetItem( wxListItem &item ); - void GetItem( wxListItem &item ) const; - void SetItemState( long item, long state, long stateMask ); - void SetItemStateAll( long state, long stateMask ); - int GetItemState( long item, long stateMask ) const; - bool GetItemRect( long item, wxRect &rect ) const - { - return GetSubItemRect(item, wxLIST_GETSUBITEMRECT_WHOLEITEM, rect); - } - bool GetSubItemRect( long item, long subItem, wxRect& rect ) const; - wxRect GetViewRect() const; - bool GetItemPosition( long item, wxPoint& pos ) const; - int GetSelectedItemCount() const; - - bool HasCheckboxes() const; - bool EnableCheckboxes(bool enable = true); - bool IsItemChecked(long item) const; - void CheckItem(long item, bool check); - - wxString GetItemText(long item, int col = 0) const - { - wxListItem info; - info.m_mask = wxLIST_MASK_TEXT; - info.m_itemId = item; - info.m_col = col; - GetItem( info ); - return info.m_text; - } - - void SetItemText(long item, const wxString& value) - { - wxListItem info; - info.m_mask = wxLIST_MASK_TEXT; - info.m_itemId = item; - info.m_text = value; - SetItem( info ); - } - - wxImageList* GetSmallImageList() const - { return m_small_image_list; } - - // set the scrollbars and update the positions of the items - void RecalculatePositions(bool noRefresh = false); - - // refresh the window and the header - void RefreshAll(); - - long GetNextItem( long item, int geometry, int state ) const; - void DeleteItem( long index ); - void DeleteAllItems(); - void DeleteColumn( int col ); - void DeleteEverything(); - void EnsureVisible( long index ); - long FindItem( long start, const wxString& str, bool partial = false ); - long FindItem( long start, wxUIntPtr data); - long FindItem( const wxPoint& pt ); - long HitTest( int x, int y, int &flags ) const; - void InsertItem( wxListItem &item ); - long InsertColumn( long col, const wxListItem &item ); - int GetItemWidthWithImage(wxListItem * item); - void SortItems( wxListCtrlCompare fn, wxIntPtr data ); - - size_t GetItemCount() const; - bool IsEmpty() const { return GetItemCount() == 0; } - void SetItemCount(long count); - - // change the current (== focused) item, send a notification event - void ChangeCurrent(size_t current); - void ResetCurrent() { ChangeCurrent((size_t)-1); } - bool HasCurrent() const { return m_current != (size_t)-1; } - - // send out a wxListEvent - void SendNotify( size_t line, - wxEventType command, - const wxPoint& point = wxDefaultPosition ); - - // override base class virtual to reset m_lineHeight when the font changes - virtual bool SetFont(const wxFont& font) wxOVERRIDE - { - if ( !wxWindow::SetFont(font) ) - return false; - - m_lineHeight = 0; - - return true; - } - - // these are for wxListLineData usage only - - // get the backpointer to the list ctrl - wxGenericListCtrl *GetListCtrl() const - { - return wxStaticCast(GetParent(), wxGenericListCtrl); - } - - // get the height of all lines (assuming they all do have the same height) - wxCoord GetLineHeight() const; - - // get the y position of the given line (only for report view) - wxCoord GetLineY(size_t line) const; - - // get the brush to use for the item highlighting - wxBrush *GetHighlightBrush() const - { - return m_hasFocus ? m_highlightBrush : m_highlightUnfocusedBrush; - } - - bool HasFocus() const wxOVERRIDE - { - return m_hasFocus; - } - -protected: - // the array of all line objects for a non virtual list control (for the - // virtual list control we only ever use m_lines[0]) - wxListLineDataArray m_lines; - - // the list of column objects - wxListHeaderDataList m_columns; - - // currently focused item or -1 - size_t m_current; - - // the number of lines per page - int m_linesPerPage; - - // this flag is set when something which should result in the window - // redrawing happens (i.e. an item was added or deleted, or its appearance - // changed) and OnPaint() doesn't redraw the window while it is set which - // allows to minimize the number of repaintings when a lot of items are - // being added. The real repainting occurs only after the next OnIdle() - // call - bool m_dirty; - - wxColour *m_highlightColour; - wxImageList *m_small_image_list; - wxImageList *m_normal_image_list; - int m_small_spacing; - int m_normal_spacing; - bool m_hasFocus; - - bool m_lastOnSame; - wxTimer *m_renameTimer; - - // incremental search data - wxString m_findPrefix; - wxTimer *m_findTimer; - // This flag is set to 0 if the bell is disabled, 1 if it is enabled and -1 - // if it is globally enabled but has been temporarily disabled because we - // had already beeped for this particular search. - int m_findBell; - - bool m_isCreated; - int m_dragCount; - wxPoint m_dragStart; - ColWidthArray m_aColWidths; - - // for double click logic - size_t m_lineLastClicked, - m_lineBeforeLastClicked, - m_lineSelectSingleOnUp; - - bool m_hasCheckboxes; - -protected: - wxWindow *GetMainWindowOfCompositeControl() wxOVERRIDE { return GetParent(); } - - // the total count of items in a virtual list control - size_t m_countVirt; - - // the object maintaining the items selection state, only used in virtual - // controls - wxSelectionStore m_selStore; - - // common part of all ctors - void Init(); - - // get the line data for the given index - wxListLineData *GetLine(size_t n) const - { - wxASSERT_MSG( n != (size_t)-1, wxT("invalid line index") ); - - if ( IsVirtual() ) - { - wxConstCast(this, wxListMainWindow)->CacheLineData(n); - n = 0; - } - - return &m_lines[n]; - } - - // get a dummy line which can be used for geometry calculations and such: - // you must use GetLine() if you want to really draw the line - wxListLineData *GetDummyLine() const; - - // cache the line data of the n-th line in m_lines[0] - void CacheLineData(size_t line); - - // get the range of visible lines - void GetVisibleLinesRange(size_t *from, size_t *to); - - // force us to recalculate the range of visible lines - void ResetVisibleLinesRange() { m_lineFrom = (size_t)-1; } - - // find the first item starting with the given prefix after the given item - size_t PrefixFindItem(size_t item, const wxString& prefix) const; - - // get the colour to be used for drawing the rules - wxColour GetRuleColour() const - { - return wxSystemSettings::GetColour(wxSYS_COLOUR_3DLIGHT); - } - -private: - // initialize the current item if needed - void UpdateCurrent(); - - // delete all items but don't refresh: called from dtor - void DoDeleteAllItems(); - - // Compute the minimal width needed to fully display the column header. - int ComputeMinHeaderWidth(const wxListHeaderData* header) const; - - // Check if the given point is inside the checkbox of this item. - // - // Always returns false if there are no checkboxes. - bool IsInsideCheckbox(long item, int x, int y); - - // the height of one line using the current font - wxCoord m_lineHeight; - - // the total header width or 0 if not calculated yet - wxCoord m_headerWidth; - - // the first and last lines being shown on screen right now (inclusive), - // both may be -1 if they must be calculated so never access them directly: - // use GetVisibleLinesRange() above instead - size_t m_lineFrom, - m_lineTo; - - // the brushes to use for item highlighting when we do/don't have focus - wxBrush *m_highlightBrush, - *m_highlightUnfocusedBrush; - - // wrapper around the text control currently used for in place editing or - // NULL if no item is being edited - wxListTextCtrlWrapper *m_textctrlWrapper; - - - wxDECLARE_EVENT_TABLE(); - - friend class wxGenericListCtrl; - friend class wxListCtrlMaxWidthCalculator; -}; - -#endif // wxUSE_LISTCTRL -#endif // _WX_GENERIC_LISTCTRL_PRIVATE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/markuptext.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/markuptext.h deleted file mode 100644 index 1d956922..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/markuptext.h +++ /dev/null @@ -1,77 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/private/markuptext.h -// Purpose: Generic wxMarkupText class for managing text with markup. -// Author: Vadim Zeitlin -// Created: 2011-02-21 -// Copyright: (c) 2011 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_PRIVATE_MARKUPTEXT_H_ -#define _WX_GENERIC_PRIVATE_MARKUPTEXT_H_ - -#include "wx/defs.h" - -class WXDLLIMPEXP_FWD_CORE wxDC; -class WXDLLIMPEXP_FWD_CORE wxRect; - -// ---------------------------------------------------------------------------- -// wxMarkupText: allows to measure and draw the text containing markup. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMarkupText -{ -public: - // Constants for Render() flags. - enum - { - Render_Default = 0, // Don't show mnemonics visually. - Render_ShowAccels = 1 // Underline mnemonics. - }; - - - // Initialize with the given string containing markup (which is supposed to - // be valid, the caller must check for it before constructing this object). - // - // Notice that the usual rules for mnemonics apply to the markup text: if - // it contains any '&' characters they must be escaped by doubling them, - // otherwise they indicate that the next character is the mnemonic for this - // field. - // - // TODO-MULTILINE-MARKUP: Currently only single line labels are supported, - // search for other occurrences of this comment to find the places which - // need to be updated to support multiline labels with markup. - wxMarkupText(const wxString& markup) - : m_markup(markup) - { - } - - // Default copy ctor, assignment operator and dtor are ok. - - // Update the markup string. - // - // The same rules for mnemonics as in the ctor apply to this string. - void SetMarkup(const wxString& markup) { m_markup = markup; } - - - // Return the width and height required by the given string and optionally - // the height of the visible part above the baseline (i.e. ascent minus - // internal leading). - // - // The font currently selected into the DC is used for measuring (notice - // that it is changed by this function but normally -- i.e. if markup is - // valid -- restored to its original value when it returns). - wxSize Measure(wxDC& dc, int *visibleHeight = NULL) const; - - // Render the markup string into the given DC in the specified rectangle. - // - // Notice that while the function uses the provided rectangle for alignment - // (it centers the text in it), no clipping is done by it so use Measure() - // and set the clipping region before rendering if necessary. - void Render(wxDC& dc, const wxRect& rect, int flags); - -private: - wxString m_markup; -}; - -#endif // _WX_GENERIC_PRIVATE_MARKUPTEXT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/notifmsg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/notifmsg.h deleted file mode 100644 index 6c5fd908..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/notifmsg.h +++ /dev/null @@ -1,52 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/private/notifmsg.h -// Purpose: wxGenericNotificationMessage declarations -// Author: Tobias Taschner -// Created: 2015-08-04 -// Copyright: (c) 2015 wxWidgets development team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_PRIVATE_NOTIFMSG_H_ -#define _WX_GENERIC_PRIVATE_NOTIFMSG_H_ - -#include "wx/private/notifmsg.h" - -class wxGenericNotificationMessageImpl : public wxNotificationMessageImpl -{ -public: - wxGenericNotificationMessageImpl(wxNotificationMessageBase* notification); - - virtual ~wxGenericNotificationMessageImpl(); - - virtual bool Show(int timeout) wxOVERRIDE; - - virtual bool Close() wxOVERRIDE; - - virtual void SetTitle(const wxString& title) wxOVERRIDE; - - virtual void SetMessage(const wxString& message) wxOVERRIDE; - - virtual void SetParent(wxWindow *parent) wxOVERRIDE; - - virtual void SetFlags(int flags) wxOVERRIDE; - - virtual void SetIcon(const wxIcon& icon) wxOVERRIDE; - - virtual bool AddAction(wxWindowID actionid, const wxString &label) wxOVERRIDE; - - // get/set the default timeout (used if Timeout_Auto is specified) - static int GetDefaultTimeout() { return ms_timeout; } - static void SetDefaultTimeout(int timeout); - -private: - // default timeout - static int ms_timeout; - - // notification message is represented by a frame in this implementation - class wxNotificationMessageWindow *m_window; - - wxDECLARE_NO_COPY_CLASS(wxGenericNotificationMessageImpl); -}; - -#endif // _WX_GENERIC_PRIVATE_NOTIFMSG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/richtooltip.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/richtooltip.h deleted file mode 100644 index ad356f51..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/richtooltip.h +++ /dev/null @@ -1,64 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/private/richtooltip.h -// Purpose: wxRichToolTipGenericImpl declaration. -// Author: Vadim Zeitlin -// Created: 2011-10-18 -// Copyright: (c) 2011 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_PRIVATE_RICHTOOLTIP_H_ -#define _WX_GENERIC_PRIVATE_RICHTOOLTIP_H_ - -#include "wx/icon.h" -#include "wx/colour.h" - -// ---------------------------------------------------------------------------- -// wxRichToolTipGenericImpl: defines generic wxRichToolTip implementation. -// ---------------------------------------------------------------------------- - -class wxRichToolTipGenericImpl : public wxRichToolTipImpl -{ -public: - wxRichToolTipGenericImpl(const wxString& title, const wxString& message) : - m_title(title), - m_message(message) - { - m_tipKind = wxTipKind_Auto; - - // This is pretty arbitrary, we could follow MSW and use some multiple - // of double-click time here. - m_timeout = 5000; - m_delay = 0; - } - - virtual void SetBackgroundColour(const wxColour& col, - const wxColour& colEnd); - virtual void SetCustomIcon(const wxIcon& icon); - virtual void SetStandardIcon(int icon); - virtual void SetTimeout(unsigned milliseconds, - unsigned millisecondsDelay = 0); - virtual void SetTipKind(wxTipKind tipKind); - virtual void SetTitleFont(const wxFont& font); - - virtual void ShowFor(wxWindow* win, const wxRect* rect = NULL); - -protected: - wxString m_title, - m_message; - -private: - wxIcon m_icon; - - wxColour m_colStart, - m_colEnd; - - unsigned m_timeout, - m_delay; - - wxTipKind m_tipKind; - - wxFont m_titleFont; -}; - -#endif // _WX_GENERIC_PRIVATE_RICHTOOLTIP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/textmeasure.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/textmeasure.h deleted file mode 100644 index 2b31d028..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/textmeasure.h +++ /dev/null @@ -1,39 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/private/textmeasure.h -// Purpose: Generic wxTextMeasure declaration. -// Author: Vadim Zeitlin -// Created: 2012-10-17 -// Copyright: (c) 1997-2012 wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_PRIVATE_TEXTMEASURE_H_ -#define _WX_GENERIC_PRIVATE_TEXTMEASURE_H_ - -// ---------------------------------------------------------------------------- -// wxTextMeasure for the platforms without native support. -// ---------------------------------------------------------------------------- - -class wxTextMeasure : public wxTextMeasureBase -{ -public: - wxEXPLICIT wxTextMeasure(const wxDC *dc, const wxFont *font = NULL) - : wxTextMeasureBase(dc, font) {} - wxEXPLICIT wxTextMeasure(const wxWindow *win, const wxFont *font = NULL) - : wxTextMeasureBase(win, font) {} - -protected: - virtual void DoGetTextExtent(const wxString& string, - wxCoord *width, - wxCoord *height, - wxCoord *descent = NULL, - wxCoord *externalLeading = NULL); - - virtual bool DoGetPartialTextExtents(const wxString& text, - wxArrayInt& widths, - double scaleX); - - wxDECLARE_NO_COPY_CLASS(wxTextMeasure); -}; - -#endif // _WX_GENERIC_PRIVATE_TEXTMEASURE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/timer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/timer.h deleted file mode 100644 index 6d96389c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/timer.h +++ /dev/null @@ -1,45 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/private/timer.h -// Purpose: Generic implementation of wxTimer class -// Author: Vaclav Slavik -// Copyright: (c) Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_PRIVATE_TIMER_H_ -#define _WX_GENERIC_PRIVATE_TIMER_H_ - -#if wxUSE_TIMER - -#include "wx/private/timer.h" - -//----------------------------------------------------------------------------- -// wxTimer -//----------------------------------------------------------------------------- - -class wxTimerDesc; - -class WXDLLIMPEXP_BASE wxGenericTimerImpl : public wxTimerImpl -{ -public: - wxGenericTimerImpl(wxTimer* timer) : wxTimerImpl(timer) { Init(); } - virtual ~wxGenericTimerImpl(); - - virtual bool Start(int millisecs = -1, bool oneShot = false); - virtual void Stop(); - - virtual bool IsRunning() const; - - // implementation - static void NotifyTimers(); - -protected: - void Init(); - -private: - wxTimerDesc *m_desc; -}; - -#endif // wxUSE_TIMER - -#endif // _WX_GENERIC_PRIVATE_TIMER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/widthcalc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/widthcalc.h deleted file mode 100644 index cacfbf85..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/private/widthcalc.h +++ /dev/null @@ -1,123 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/private/widthcalc.h -// Purpose: wxMaxWidthCalculatorBase helper class. -// Author: Václav Slavík, Kinaou Hervé -// Copyright: (c) 2015 wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_PRIVATE_WIDTHCALC_H_ -#define _WX_GENERIC_PRIVATE_WIDTHCALC_H_ - -#include "wx/defs.h" - -#if wxUSE_DATAVIEWCTRL || wxUSE_LISTCTRL - -#include "wx/log.h" -#include "wx/timer.h" - -// ---------------------------------------------------------------------------- -// wxMaxWidthCalculatorBase: base class for calculating max column width -// ---------------------------------------------------------------------------- - -class wxMaxWidthCalculatorBase -{ -public: - // column of which calculate the width - explicit wxMaxWidthCalculatorBase(size_t column) - : m_column(column), - m_width(0) - { - } - - void UpdateWithWidth(int width) - { - m_width = wxMax(m_width, width); - } - - // Update the max with for the expected row - virtual void UpdateWithRow(int row) = 0; - - int GetMaxWidth() const { return m_width; } - size_t GetColumn() const { return m_column; } - - void - ComputeBestColumnWidth(size_t count, - size_t first_visible, - size_t last_visible) - { - // The code below deserves some explanation. For very large controls, we - // simply can't afford to calculate sizes for all items, it takes too - // long. So the best we can do is to check the first and the last N/2 - // items in the control for some sufficiently large N and calculate best - // sizes from that. That can result in the calculated best width being too - // small for some outliers, but it's better to get slightly imperfect - // result than to wait several seconds after every update. To avoid highly - // visible miscalculations, we also include all currently visible items - // no matter what. Finally, the value of N is determined dynamically by - // measuring how much time we spent on the determining item widths so far. - -#if wxUSE_STOPWATCH - size_t top_part_end = count; - static const long CALC_TIMEOUT = 20/*ms*/; - // don't call wxStopWatch::Time() too often - static const unsigned CALC_CHECK_FREQ = 100; - wxStopWatch timer; -#else - // use some hard-coded limit, that's the best we can do without timer - size_t top_part_end = wxMin(500, count); -#endif // wxUSE_STOPWATCH/!wxUSE_STOPWATCH - - size_t row = 0; - - for ( row = 0; row < top_part_end; row++ ) - { -#if wxUSE_STOPWATCH - if ( row % CALC_CHECK_FREQ == CALC_CHECK_FREQ-1 && - timer.Time() > CALC_TIMEOUT ) - break; -#endif // wxUSE_STOPWATCH - UpdateWithRow(row); - } - - // row is the first unmeasured item now; that's our value of N/2 - if ( row < count ) - { - top_part_end = row; - - // add bottom N/2 items now: - const size_t bottom_part_start = wxMax(row, count - row); - for ( row = bottom_part_start; row < count; row++ ) - { - UpdateWithRow(row); - } - - // finally, include currently visible items in the calculation: - first_visible = wxMax(first_visible, top_part_end); - last_visible = wxMin(bottom_part_start, last_visible); - - for ( row = first_visible; row < last_visible; row++ ) - { - UpdateWithRow(row); - } - - wxLogTrace("items container", - "determined best size from %zu top, %zu bottom " - "plus %zu more visible items out of %zu total", - top_part_end, - count - bottom_part_start, - last_visible - first_visible, - count); - } - } - -private: - const size_t m_column; - int m_width; - - wxDECLARE_NO_COPY_CLASS(wxMaxWidthCalculatorBase); -}; - -#endif // wxUSE_DATAVIEWCTRL || wxUSE_LISTCTRL - -#endif // _WX_GENERIC_PRIVATE_WIDTHCALC_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/prntdlgg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/prntdlgg.h deleted file mode 100644 index 7c4cd1b7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/prntdlgg.h +++ /dev/null @@ -1,256 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/prntdlgg.h -// Purpose: wxGenericPrintDialog, wxGenericPrintSetupDialog, -// wxGenericPageSetupDialog -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __PRINTDLGH_G_ -#define __PRINTDLGH_G_ - -#include "wx/defs.h" - -#if wxUSE_PRINTING_ARCHITECTURE - -#include "wx/dialog.h" -#include "wx/cmndata.h" -#include "wx/prntbase.h" -#include "wx/printdlg.h" -#include "wx/listctrl.h" - -#include "wx/dc.h" -#if wxUSE_POSTSCRIPT - #include "wx/dcps.h" -#endif - -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; -class WXDLLIMPEXP_FWD_CORE wxButton; -class WXDLLIMPEXP_FWD_CORE wxCheckBox; -class WXDLLIMPEXP_FWD_CORE wxComboBox; -class WXDLLIMPEXP_FWD_CORE wxStaticText; -class WXDLLIMPEXP_FWD_CORE wxRadioBox; -class WXDLLIMPEXP_FWD_CORE wxPageSetupDialogData; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// This is not clear why all these enums start with 10 or 30 but do not change it -// without good reason to avoid some subtle backwards compatibility breakage - -enum -{ - wxPRINTID_STATIC = 10, - wxPRINTID_RANGE, - wxPRINTID_FROM, - wxPRINTID_TO, - wxPRINTID_COPIES, - wxPRINTID_PRINTTOFILE, - wxPRINTID_SETUP -}; - -enum -{ - wxPRINTID_LEFTMARGIN = 30, - wxPRINTID_RIGHTMARGIN, - wxPRINTID_TOPMARGIN, - wxPRINTID_BOTTOMMARGIN -}; - -enum -{ - wxPRINTID_PRINTCOLOUR = 10, - wxPRINTID_ORIENTATION, - wxPRINTID_COMMAND, - wxPRINTID_OPTIONS, - wxPRINTID_PAPERSIZE, - wxPRINTID_PRINTER -}; - -#if wxUSE_POSTSCRIPT - -//---------------------------------------------------------------------------- -// wxPostScriptNativeData -//---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPostScriptPrintNativeData: public wxPrintNativeDataBase -{ -public: - wxPostScriptPrintNativeData(); - virtual ~wxPostScriptPrintNativeData(); - - virtual bool TransferTo( wxPrintData &data ) wxOVERRIDE; - virtual bool TransferFrom( const wxPrintData &data ) wxOVERRIDE; - - virtual bool Ok() const wxOVERRIDE { return IsOk(); } - virtual bool IsOk() const wxOVERRIDE { return true; } - - const wxString& GetPrinterCommand() const { return m_printerCommand; } - const wxString& GetPrinterOptions() const { return m_printerOptions; } - const wxString& GetPreviewCommand() const { return m_previewCommand; } - const wxString& GetFontMetricPath() const { return m_afmPath; } - double GetPrinterScaleX() const { return m_printerScaleX; } - double GetPrinterScaleY() const { return m_printerScaleY; } - long GetPrinterTranslateX() const { return m_printerTranslateX; } - long GetPrinterTranslateY() const { return m_printerTranslateY; } - - void SetPrinterCommand(const wxString& command) { m_printerCommand = command; } - void SetPrinterOptions(const wxString& options) { m_printerOptions = options; } - void SetPreviewCommand(const wxString& command) { m_previewCommand = command; } - void SetFontMetricPath(const wxString& path) { m_afmPath = path; } - void SetPrinterScaleX(double x) { m_printerScaleX = x; } - void SetPrinterScaleY(double y) { m_printerScaleY = y; } - void SetPrinterScaling(double x, double y) { m_printerScaleX = x; m_printerScaleY = y; } - void SetPrinterTranslateX(long x) { m_printerTranslateX = x; } - void SetPrinterTranslateY(long y) { m_printerTranslateY = y; } - void SetPrinterTranslation(long x, long y) { m_printerTranslateX = x; m_printerTranslateY = y; } - -#if wxUSE_STREAMS - wxOutputStream *GetOutputStream() { return m_outputStream; } - void SetOutputStream( wxOutputStream *output ) { m_outputStream = output; } -#endif - -private: - wxString m_printerCommand; - wxString m_previewCommand; - wxString m_printerOptions; - wxString m_afmPath; - double m_printerScaleX; - double m_printerScaleY; - long m_printerTranslateX; - long m_printerTranslateY; -#if wxUSE_STREAMS - wxOutputStream *m_outputStream; -#endif - -private: - wxDECLARE_DYNAMIC_CLASS(wxPostScriptPrintNativeData); -}; - -// ---------------------------------------------------------------------------- -// Simulated Print and Print Setup dialogs for non-Windows platforms (and -// Windows using PostScript print/preview) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGenericPrintDialog : public wxPrintDialogBase -{ -public: - wxGenericPrintDialog(wxWindow *parent, - wxPrintDialogData* data = NULL); - wxGenericPrintDialog(wxWindow *parent, wxPrintData* data); - - virtual ~wxGenericPrintDialog(); - - void OnSetup(wxCommandEvent& event); - void OnRange(wxCommandEvent& event); - void OnOK(wxCommandEvent& event); - - virtual bool TransferDataFromWindow() wxOVERRIDE; - virtual bool TransferDataToWindow() wxOVERRIDE; - - virtual int ShowModal() wxOVERRIDE; - - wxPrintData& GetPrintData() wxOVERRIDE - { return m_printDialogData.GetPrintData(); } - - wxPrintDialogData& GetPrintDialogData() wxOVERRIDE { return m_printDialogData; } - wxDC *GetPrintDC() wxOVERRIDE; - -public: -// wxStaticText* m_printerMessage; - wxButton* m_setupButton; -// wxButton* m_helpButton; - wxRadioBox* m_rangeRadioBox; - wxTextCtrl* m_fromText; - wxTextCtrl* m_toText; - wxTextCtrl* m_noCopiesText; - wxCheckBox* m_printToFileCheckBox; -// wxCheckBox* m_collateCopiesCheckBox; - - wxPrintDialogData m_printDialogData; - -protected: - void Init(wxWindow *parent); - -private: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxGenericPrintDialog); -}; - -class WXDLLIMPEXP_CORE wxGenericPrintSetupDialog : public wxDialog -{ -public: - // There are no configuration options for the dialog, so we - // just pass the wxPrintData object (no wxPrintSetupDialogData class needed) - wxGenericPrintSetupDialog(wxWindow *parent, wxPrintData* data); - virtual ~wxGenericPrintSetupDialog(); - - void Init(wxPrintData* data); - - void OnPrinter(wxListEvent& event); - - virtual bool TransferDataFromWindow() wxOVERRIDE; - virtual bool TransferDataToWindow() wxOVERRIDE; - - virtual wxComboBox *CreatePaperTypeChoice(); - -public: - wxListCtrl* m_printerListCtrl; - wxRadioBox* m_orientationRadioBox; - wxTextCtrl* m_printerCommandText; - wxTextCtrl* m_printerOptionsText; - wxCheckBox* m_colourCheckBox; - wxComboBox* m_paperTypeChoice; - - wxPrintData m_printData; - wxPrintData& GetPrintData() { return m_printData; } - - // After pressing OK, write data here. - wxPrintData* m_targetData; - -private: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_CLASS(wxGenericPrintSetupDialog); -}; -#endif - // wxUSE_POSTSCRIPT - -class WXDLLIMPEXP_CORE wxGenericPageSetupDialog : public wxPageSetupDialogBase -{ -public: - wxGenericPageSetupDialog(wxWindow *parent = NULL, - wxPageSetupDialogData* data = NULL); - virtual ~wxGenericPageSetupDialog(); - - virtual bool TransferDataFromWindow() wxOVERRIDE; - virtual bool TransferDataToWindow() wxOVERRIDE; - - virtual wxPageSetupDialogData& GetPageSetupDialogData() wxOVERRIDE; - - void OnPrinter(wxCommandEvent& event); - wxComboBox *CreatePaperTypeChoice(int* x, int* y); - -public: - wxButton* m_printerButton; - wxRadioBox* m_orientationRadioBox; - wxTextCtrl* m_marginLeftText; - wxTextCtrl* m_marginTopText; - wxTextCtrl* m_marginRightText; - wxTextCtrl* m_marginBottomText; - wxComboBox* m_paperTypeChoice; - - wxPageSetupDialogData m_pageData; - -private: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxGenericPageSetupDialog); -}; - -#endif - -#endif -// __PRINTDLGH_G_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/progdlgg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/progdlgg.h deleted file mode 100644 index 77b90f76..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/progdlgg.h +++ /dev/null @@ -1,227 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/progdlgg.h -// Purpose: wxGenericProgressDialog class -// Author: Karsten Ballueder -// Modified by: Francesco Montorsi -// Created: 09.05.1999 -// Copyright: (c) Karsten Ballueder -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef __PROGDLGH_G__ -#define __PROGDLGH_G__ - -#include "wx/dialog.h" - -class WXDLLIMPEXP_FWD_CORE wxButton; -class WXDLLIMPEXP_FWD_CORE wxEventLoop; -class WXDLLIMPEXP_FWD_CORE wxGauge; -class WXDLLIMPEXP_FWD_CORE wxStaticText; -class WXDLLIMPEXP_FWD_CORE wxWindowDisabler; - -/* - Progress dialog which shows a moving progress bar. - Taken from the Mahogany project. -*/ -class WXDLLIMPEXP_CORE wxGenericProgressDialog : public wxDialog -{ -public: - wxGenericProgressDialog(); - wxGenericProgressDialog(const wxString& title, const wxString& message, - int maximum = 100, - wxWindow *parent = NULL, - int style = wxPD_APP_MODAL | wxPD_AUTO_HIDE); - - virtual ~wxGenericProgressDialog(); - - bool Create(const wxString& title, - const wxString& message, - int maximum = 100, - wxWindow *parent = NULL, - int style = wxPD_APP_MODAL | wxPD_AUTO_HIDE); - - virtual bool Update(int value, const wxString& newmsg = wxEmptyString, bool *skip = NULL); - virtual bool Pulse(const wxString& newmsg = wxEmptyString, bool *skip = NULL); - - void Resume(); - - int GetValue() const; - int GetRange() const; - wxString GetMessage() const; - - void SetRange(int maximum); - - // Return whether "Cancel" or "Skip" button was pressed, always return - // false if the corresponding button is not shown. - bool WasCancelled() const; - bool WasSkipped() const; - - // Must provide overload to avoid hiding it (and warnings about it) - virtual void Update() wxOVERRIDE { wxDialog::Update(); } - - virtual bool Show( bool show = true ) wxOVERRIDE; - - // This enum is an implementation detail and should not be used - // by user code. - enum State - { - Uncancelable = -1, // dialog can't be canceled - Canceled, // can be cancelled and, in fact, was - Continue, // can be cancelled but wasn't - Finished, // finished, waiting to be removed from screen - Dismissed // was closed by user after finishing - }; - -protected: - // Update just the m_maximum field, this is used by public SetRange() but, - // unlike it, doesn't update the controls state. This makes it useful for - // both this class and its derived classes that don't use m_gauge to - // display progress. - void SetMaximum(int maximum); - - // Return the labels to use for showing the elapsed/estimated/remaining - // times respectively. - static wxString GetElapsedLabel() { return wxGetTranslation("Elapsed time:"); } - static wxString GetEstimatedLabel() { return wxGetTranslation("Estimated time:"); } - static wxString GetRemainingLabel() { return wxGetTranslation("Remaining time:"); } - - - // Similar to wxWindow::HasFlag() but tests for a presence of a wxPD_XXX - // flag in our (separate) flags instead of using m_windowStyle. - bool HasPDFlag(int flag) const { return (m_pdStyle & flag) != 0; } - - // Return the progress dialog style. Prefer to use HasPDFlag() if possible. - int GetPDStyle() const { return m_pdStyle; } - void SetPDStyle(int pdStyle) { m_pdStyle = pdStyle; } - - // Updates estimated times from a given progress bar value and stores the - // results in provided arguments. - void UpdateTimeEstimates(int value, - unsigned long &elapsedTime, - unsigned long &estimatedTime, - unsigned long &remainingTime); - - // Converts seconds to HH:mm:ss format. - static wxString GetFormattedTime(unsigned long timeInSec); - - // callback for optional abort button - void OnCancel(wxCommandEvent&); - - // callback for optional skip button - void OnSkip(wxCommandEvent&); - - // callback to disable "hard" window closing - void OnClose(wxCloseEvent&); - - // called to disable the other windows while this dialog is shown - void DisableOtherWindows(); - - // must be called to reenable the other windows temporarily disabled while - // the dialog was shown - void ReenableOtherWindows(); - - // Set the top level parent we store from the parent window provided when - // creating the dialog. - void SetTopParent(wxWindow* parent); - - // return the top level parent window of this dialog (may be NULL) - wxWindow *GetTopParent() const { return m_parentTop; } - - - // continue processing or not (return value for Update()) - State m_state; - - // the maximum value - int m_maximum; - -#if defined(__WXMSW__) - // the factor we use to always keep the value in 16 bit range as the native - // control only supports ranges from 0 to 65,535 - size_t m_factor; -#endif // __WXMSW__ - - // time when the dialog was created - unsigned long m_timeStart; - // time when the dialog was closed or cancelled - unsigned long m_timeStop; - // time between the moment the dialog was closed/cancelled and resume - unsigned long m_break; - -private: - // update the label to show the given time (in seconds) - static void SetTimeLabel(unsigned long val, wxStaticText *label); - - // common part of all ctors - void Init(); - - // create the label with given text and another one to show the time nearby - // as the next windows in the sizer, returns the created control - wxStaticText *CreateLabel(const wxString& text, wxSizer *sizer); - - // updates the label message - void UpdateMessage(const wxString &newmsg); - - // common part of Update() and Pulse(), returns true if not cancelled - bool DoBeforeUpdate(bool *skip); - - // common part of Update() and Pulse() - void DoAfterUpdate(); - - // shortcuts for enabling buttons - void EnableClose(); - void EnableSkip(bool enable = true); - void EnableAbort(bool enable = true); - void DisableSkip() { EnableSkip(false); } - void DisableAbort() { EnableAbort(false); } - - // the widget displaying current status (may be NULL) - wxGauge *m_gauge; - // the message displayed - wxStaticText *m_msg; - // displayed elapsed, estimated, remaining time - wxStaticText *m_elapsed, - *m_estimated, - *m_remaining; - - // parent top level window (may be NULL) - wxWindow *m_parentTop; - - // Progress dialog styles: this is not the same as m_windowStyle because - // wxPD_XXX constants clash with the existing TLW styles so to be sure we - // don't have any conflicts we just use a separate variable for storing - // them. - int m_pdStyle; - - // skip some portion - bool m_skip; - - // the abort and skip buttons (or NULL if none) - wxButton *m_btnAbort; - wxButton *m_btnSkip; - - // saves the time when elapsed time was updated so there is only one - // update per second - unsigned long m_last_timeupdate; - - // tells how often a change of the estimated time has to be confirmed - // before it is actually displayed - this reduces the frequency of updates - // of estimated and remaining time - int m_delay; - - // counts the confirmations - int m_ctdelay; - unsigned long m_display_estimated; - - // for wxPD_APP_MODAL case - wxWindowDisabler *m_winDisabler; - - // Temporary event loop created by the dialog itself if there is no - // currently active loop when it is created. - wxEventLoop *m_tempEventLoop; - - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxGenericProgressDialog); -}; - -#endif // __PROGDLGH_G__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/propdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/propdlg.h deleted file mode 100644 index 5072dfdf..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/propdlg.h +++ /dev/null @@ -1,162 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/propdlg.h -// Purpose: wxPropertySheetDialog -// Author: Julian Smart -// Modified by: -// Created: 2005-03-12 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROPDLG_H_ -#define _WX_PROPDLG_H_ - -#include "wx/defs.h" - -#if wxUSE_BOOKCTRL - -#include "wx/dialog.h" - -class WXDLLIMPEXP_FWD_CORE wxBookCtrlBase; - -//----------------------------------------------------------------------------- -// wxPropertySheetDialog -// A platform-independent properties dialog with a notebook and standard -// buttons. -// -// To use this class, call Create from your derived class. -// Then create pages and add to the book control. Finally call CreateButtons and -// LayoutDialog. -// -// For example: -// -// MyPropertySheetDialog::Create(...) -// { -// wxPropertySheetDialog::Create(...); -// -// // Add page -// wxPanel* panel = new wxPanel(GetBookCtrl(), ...); -// GetBookCtrl()->AddPage(panel, wxT("General")); -// -// CreateButtons(); -// LayoutDialog(); -// } -// -// Override CreateBookCtrl and AddBookCtrl to create and add a different -// kind of book control. -//----------------------------------------------------------------------------- - -enum wxPropertySheetDialogFlags -{ - // Use the platform default - wxPROPSHEET_DEFAULT = 0x0001, - - // Use a notebook - wxPROPSHEET_NOTEBOOK = 0x0002, - - // Use a toolbook - wxPROPSHEET_TOOLBOOK = 0x0004, - - // Use a choicebook - wxPROPSHEET_CHOICEBOOK = 0x0008, - - // Use a listbook - wxPROPSHEET_LISTBOOK = 0x0010, - - // Use a wxButtonToolBar toolbook - wxPROPSHEET_BUTTONTOOLBOOK = 0x0020, - - // Use a treebook - wxPROPSHEET_TREEBOOK = 0x0040, - - // Shrink dialog to fit current page - wxPROPSHEET_SHRINKTOFIT = 0x0100 -}; - -class WXDLLIMPEXP_ADV wxPropertySheetDialog : public wxDialog -{ -public: - wxPropertySheetDialog() : wxDialog() { Init(); } - - wxPropertySheetDialog(wxWindow* parent, wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr) - { - Init(); - Create(parent, id, title, pos, sz, style, name); - } - - bool Create(wxWindow* parent, wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr); - -//// Accessors - - // Set and get the notebook - void SetBookCtrl(wxBookCtrlBase* book) { m_bookCtrl = book; } - wxBookCtrlBase* GetBookCtrl() const { return m_bookCtrl; } - - // Override function in base - virtual wxWindow* GetContentWindow() const wxOVERRIDE; - - // Set and get the inner sizer - void SetInnerSize(wxSizer* sizer) { m_innerSizer = sizer; } - wxSizer* GetInnerSizer() const { return m_innerSizer ; } - - // Set and get the book style - void SetSheetStyle(long sheetStyle) { m_sheetStyle = sheetStyle; } - long GetSheetStyle() const { return m_sheetStyle ; } - - // Set and get the border around the whole dialog - void SetSheetOuterBorder(int border) { m_sheetOuterBorder = border; } - int GetSheetOuterBorder() const { return m_sheetOuterBorder ; } - - // Set and get the border around the book control only - void SetSheetInnerBorder(int border) { m_sheetInnerBorder = border; } - int GetSheetInnerBorder() const { return m_sheetInnerBorder ; } - -/// Operations - - // Creates the buttons - virtual void CreateButtons(int flags = wxOK|wxCANCEL); - - // Lay out the dialog, to be called after pages have been created - virtual void LayoutDialog(int centreFlags = wxBOTH); - -/// Implementation - - // Creates the book control. If you want to use a different kind of - // control, override. - virtual wxBookCtrlBase* CreateBookCtrl(); - - // Adds the book control to the inner sizer. - virtual void AddBookCtrl(wxSizer* sizer); - - // Resize dialog if necessary - void OnIdle(wxIdleEvent& event); - -private: - void Init(); - -protected: - wxBookCtrlBase* m_bookCtrl; - wxSizer* m_innerSizer; // sizer for extra space - long m_sheetStyle; - int m_sheetOuterBorder; - int m_sheetInnerBorder; - int m_selectedPage; - - wxDECLARE_DYNAMIC_CLASS(wxPropertySheetDialog); - wxDECLARE_EVENT_TABLE(); -}; - -#endif // wxUSE_BOOKCTRL - -#endif // _WX_PROPDLG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/region.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/region.h deleted file mode 100644 index 1c5048db..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/region.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/region.h -// Purpose: generic wxRegion class -// Author: David Elliott -// Modified by: -// Created: 2004/04/12 -// Copyright: (c) 2004 David Elliott -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_REGION_H__ -#define _WX_GENERIC_REGION_H__ - -class WXDLLIMPEXP_CORE wxRegionGeneric : public wxRegionBase -{ -public: - wxRegionGeneric(wxCoord x, wxCoord y, wxCoord w, wxCoord h); - wxRegionGeneric(const wxPoint& topLeft, const wxPoint& bottomRight); - wxRegionGeneric(const wxRect& rect); - wxRegionGeneric(size_t n, const wxPoint *points, wxPolygonFillMode fillStyle = wxODDEVEN_RULE); - wxRegionGeneric(const wxBitmap& bmp); - wxRegionGeneric(const wxBitmap& bmp, const wxColour& transp, int tolerance = 0); - wxRegionGeneric(); - virtual ~wxRegionGeneric(); - - // wxRegionBase pure virtuals - virtual void Clear(); - virtual bool IsEmpty() const; - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - - // wxRegionBase pure virtuals - virtual bool DoIsEqual(const wxRegion& region) const; - virtual bool DoGetBox(wxCoord& x, wxCoord& y, wxCoord& w, wxCoord& h) const; - virtual wxRegionContain DoContainsPoint(wxCoord x, wxCoord y) const; - virtual wxRegionContain DoContainsRect(const wxRect& rect) const; - - virtual bool DoOffset(wxCoord x, wxCoord y); - virtual bool DoUnionWithRect(const wxRect& rect); - virtual bool DoUnionWithRegion(const wxRegion& region); - virtual bool DoIntersect(const wxRegion& region); - virtual bool DoSubtract(const wxRegion& region); - virtual bool DoXor(const wxRegion& region); - - friend class WXDLLIMPEXP_FWD_CORE wxRegionIteratorGeneric; -}; - -class WXDLLIMPEXP_CORE wxRegionIteratorGeneric : public wxObject -{ -public: - wxRegionIteratorGeneric(); - wxRegionIteratorGeneric(const wxRegionGeneric& region); - wxRegionIteratorGeneric(const wxRegionIteratorGeneric& iterator); - virtual ~wxRegionIteratorGeneric(); - - wxRegionIteratorGeneric& operator=(const wxRegionIteratorGeneric& iterator); - - void Reset() { m_current = 0; } - void Reset(const wxRegionGeneric& region); - - operator bool () const { return HaveRects(); } - bool HaveRects() const; - - wxRegionIteratorGeneric& operator++(); - wxRegionIteratorGeneric operator++(int); - - long GetX() const; - long GetY() const; - long GetW() const; - long GetWidth() const { return GetW(); } - long GetH() const; - long GetHeight() const { return GetH(); } - wxRect GetRect() const; -private: - long m_current; - wxRegionGeneric m_region; -}; - -#endif // _WX_GENERIC_REGION_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/richmsgdlgg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/richmsgdlgg.h deleted file mode 100644 index ae955d0a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/richmsgdlgg.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/richmsgdlgg.h -// Purpose: wxGenericRichMessageDialog -// Author: Rickard Westerlund -// Created: 2010-07-04 -// Copyright: (c) 2010 wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_RICHMSGDLGG_H_ -#define _WX_GENERIC_RICHMSGDLGG_H_ - -class WXDLLIMPEXP_FWD_CORE wxCheckBox; -class WXDLLIMPEXP_FWD_CORE wxCollapsiblePane; -class WXDLLIMPEXP_FWD_CORE wxCollapsiblePaneEvent; - -class WXDLLIMPEXP_CORE wxGenericRichMessageDialog - : public wxRichMessageDialogBase -{ -public: - wxGenericRichMessageDialog(wxWindow *parent, - const wxString& message, - const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK | wxCENTRE) - : wxRichMessageDialogBase( parent, message, caption, style ), - m_checkBox(NULL), - m_detailsPane(NULL) - { } - - virtual bool IsCheckBoxChecked() const wxOVERRIDE; - -protected: - wxCheckBox *m_checkBox; - wxCollapsiblePane *m_detailsPane; - - // overrides methods in the base class - virtual void AddMessageDialogCheckBox(wxSizer *sizer) wxOVERRIDE; - virtual void AddMessageDialogDetails(wxSizer *sizer) wxOVERRIDE; - -private: - void OnPaneChanged(wxCollapsiblePaneEvent& event); - - wxDECLARE_EVENT_TABLE(); - - wxDECLARE_NO_COPY_CLASS(wxGenericRichMessageDialog); -}; - -#endif // _WX_GENERIC_RICHMSGDLGG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/sashwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/sashwin.h deleted file mode 100644 index 44cf8861..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/sashwin.h +++ /dev/null @@ -1,251 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/sashwin.h -// Purpose: wxSashWindow implementation. A sash window has an optional -// sash on each edge, allowing it to be dragged. An event -// is generated when the sash is released. -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SASHWIN_H_G_ -#define _WX_SASHWIN_H_G_ - -#if wxUSE_SASH - -#include "wx/defs.h" -#include "wx/window.h" -#include "wx/string.h" - -#define wxSASH_DRAG_NONE 0 -#define wxSASH_DRAG_DRAGGING 1 -#define wxSASH_DRAG_LEFT_DOWN 2 - -enum wxSashEdgePosition { - wxSASH_TOP = 0, - wxSASH_RIGHT, - wxSASH_BOTTOM, - wxSASH_LEFT, - wxSASH_NONE = 100 -}; - -/* - * wxSashEdge represents one of the four edges of a window. - */ - -class WXDLLIMPEXP_ADV wxSashEdge -{ -public: - wxSashEdge() - { m_show = false; - m_margin = 0; } - - bool m_show; // Is the sash showing? - int m_margin; // The margin size -}; - -/* - * wxSashWindow flags - */ - -#define wxSW_NOBORDER 0x0000 -//#define wxSW_3D 0x0010 -#define wxSW_BORDER 0x0020 -#define wxSW_3DSASH 0x0040 -#define wxSW_3DBORDER 0x0080 -#define wxSW_3D (wxSW_3DSASH | wxSW_3DBORDER) - -/* - * wxSashWindow allows any of its edges to have a sash which can be dragged - * to resize the window. The actual content window will be created as a child - * of wxSashWindow. - */ - -class WXDLLIMPEXP_ADV wxSashWindow: public wxWindow -{ -public: - // Default constructor - wxSashWindow() - { - Init(); - } - - // Normal constructor - wxSashWindow(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = wxT("sashWindow")) - { - Init(); - Create(parent, id, pos, size, style, name); - } - - virtual ~wxSashWindow(); - - bool Create(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = wxT("sashWindow")); - - // Set whether there's a sash in this position - void SetSashVisible(wxSashEdgePosition edge, bool sash); - - // Get whether there's a sash in this position - bool GetSashVisible(wxSashEdgePosition edge) const { return m_sashes[edge].m_show; } - - // Get border size - int GetEdgeMargin(wxSashEdgePosition edge) const { return m_sashes[edge].m_margin; } - - // Sets the default sash border size - void SetDefaultBorderSize(int width) { m_borderSize = width; } - - // Gets the default sash border size - int GetDefaultBorderSize() const { return m_borderSize; } - - // Sets the addition border size between child and sash window - void SetExtraBorderSize(int width) { m_extraBorderSize = width; } - - // Gets the addition border size between child and sash window - int GetExtraBorderSize() const { return m_extraBorderSize; } - - virtual void SetMinimumSizeX(int min) { m_minimumPaneSizeX = min; } - virtual void SetMinimumSizeY(int min) { m_minimumPaneSizeY = min; } - virtual int GetMinimumSizeX() const { return m_minimumPaneSizeX; } - virtual int GetMinimumSizeY() const { return m_minimumPaneSizeY; } - - virtual void SetMaximumSizeX(int max) { m_maximumPaneSizeX = max; } - virtual void SetMaximumSizeY(int max) { m_maximumPaneSizeY = max; } - virtual int GetMaximumSizeX() const { return m_maximumPaneSizeX; } - virtual int GetMaximumSizeY() const { return m_maximumPaneSizeY; } - -//////////////////////////////////////////////////////////////////////////// -// Implementation - - // Paints the border and sash - void OnPaint(wxPaintEvent& event); - - // Handles mouse events - void OnMouseEvent(wxMouseEvent& ev); - - // Adjusts the panes - void OnSize(wxSizeEvent& event); - -#if defined(__WXMSW__) || defined(__WXMAC__) - // Handle cursor correctly - void OnSetCursor(wxSetCursorEvent& event); -#endif // wxMSW - - // Draws borders - void DrawBorders(wxDC& dc); - - // Draws the sashes - void DrawSash(wxSashEdgePosition edge, wxDC& dc); - - // Draws the sashes - void DrawSashes(wxDC& dc); - - // Draws the sash tracker (for whilst moving the sash) - void DrawSashTracker(wxSashEdgePosition edge, int x, int y); - - // Tests for x, y over sash - wxSashEdgePosition SashHitTest(int x, int y, int tolerance = 2); - - // Resizes subwindows - void SizeWindows(); - - // Initialize colours - void InitColours(); - -private: - void Init(); - - wxSashEdge m_sashes[4]; - int m_dragMode; - wxSashEdgePosition m_draggingEdge; - int m_oldX; - int m_oldY; - int m_borderSize; - int m_extraBorderSize; - int m_firstX; - int m_firstY; - int m_minimumPaneSizeX; - int m_minimumPaneSizeY; - int m_maximumPaneSizeX; - int m_maximumPaneSizeY; - wxCursor* m_sashCursorWE; - wxCursor* m_sashCursorNS; - wxColour m_lightShadowColour; - wxColour m_mediumShadowColour; - wxColour m_darkShadowColour; - wxColour m_hilightColour; - wxColour m_faceColour; - bool m_mouseCaptured; - wxCursor* m_currentCursor; - -private: - wxDECLARE_DYNAMIC_CLASS(wxSashWindow); - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxSashWindow); -}; - -class WXDLLIMPEXP_FWD_ADV wxSashEvent; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_SASH_DRAGGED, wxSashEvent ); - -enum wxSashDragStatus -{ - wxSASH_STATUS_OK, - wxSASH_STATUS_OUT_OF_RANGE -}; - -class WXDLLIMPEXP_ADV wxSashEvent: public wxCommandEvent -{ -public: - wxSashEvent(int id = 0, wxSashEdgePosition edge = wxSASH_NONE) - { - m_eventType = (wxEventType) wxEVT_SASH_DRAGGED; - m_id = id; - m_edge = edge; - } - - wxSashEvent(const wxSashEvent& event) - : wxCommandEvent(event), - m_edge(event.m_edge), - m_dragRect(event.m_dragRect), - m_dragStatus(event.m_dragStatus) { } - - void SetEdge(wxSashEdgePosition edge) { m_edge = edge; } - wxSashEdgePosition GetEdge() const { return m_edge; } - - //// The rectangle formed by the drag operation - void SetDragRect(const wxRect& rect) { m_dragRect = rect; } - wxRect GetDragRect() const { return m_dragRect; } - - //// Whether the drag caused the rectangle to be reversed (e.g. - //// dragging the top below the bottom) - void SetDragStatus(wxSashDragStatus status) { m_dragStatus = status; } - wxSashDragStatus GetDragStatus() const { return m_dragStatus; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxSashEvent(*this); } - -private: - wxSashEdgePosition m_edge; - wxRect m_dragRect; - wxSashDragStatus m_dragStatus; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxSashEvent); -}; - -typedef void (wxEvtHandler::*wxSashEventFunction)(wxSashEvent&); - -#define wxSashEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxSashEventFunction, func) - -#define EVT_SASH_DRAGGED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_SASH_DRAGGED, id, wxSashEventHandler(fn)) -#define EVT_SASH_DRAGGED_RANGE(id1, id2, fn) \ - wx__DECLARE_EVT2(wxEVT_SASH_DRAGGED, id1, id2, wxSashEventHandler(fn)) - -#endif // wxUSE_SASH - -#endif - // _WX_SASHWIN_H_G_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/scrolwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/scrolwin.h deleted file mode 100644 index efcbd044..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/scrolwin.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/scrolwin.h -// Purpose: generic wxScrollHelper -// Author: Vadim Zeitlin -// Created: 2008-12-24 (replacing old file with the same name) -// Copyright: (c) 2008 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_SCROLLWIN_H_ -#define _WX_GENERIC_SCROLLWIN_H_ - -#include "wx/recguard.h" - -// ---------------------------------------------------------------------------- -// generic wxScrollHelper implementation -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxScrollHelper : public wxScrollHelperBase -{ -public: - wxScrollHelper(wxWindow *winToScroll); - - // implement base class pure virtuals - virtual void AdjustScrollbars(); - virtual bool IsScrollbarShown(int orient) const; - -protected: - virtual void DoScroll(int x, int y); - virtual void DoShowScrollbars(wxScrollbarVisibility horz, - wxScrollbarVisibility vert); - -private: - // helper of AdjustScrollbars(): does the work for the single scrollbar - // - // notice that the parameters passed by non-const references are modified - // by this function - void DoAdjustScrollbar(int orient, - int clientSize, - int virtSize, - int pixelsPerUnit, - int& scrollUnits, - int& scrollPosition, - int& scrollLinesPerPage, - wxScrollbarVisibility visibility); - - - wxScrollbarVisibility m_xVisibility, - m_yVisibility; - wxRecursionGuardFlag m_adjustScrollFlagReentrancy; - - wxDECLARE_NO_COPY_CLASS(wxScrollHelper); -}; - -#endif // _WX_GENERIC_SCROLLWIN_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/spinctlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/spinctlg.h deleted file mode 100644 index b8c1c73a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/spinctlg.h +++ /dev/null @@ -1,429 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/spinctlg.h -// Purpose: generic wxSpinCtrl class -// Author: Vadim Zeitlin -// Modified by: -// Created: 28.10.99 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_SPINCTRL_H_ -#define _WX_GENERIC_SPINCTRL_H_ - -// ---------------------------------------------------------------------------- -// wxSpinCtrl is a combination of wxSpinButton and wxTextCtrl, so if -// wxSpinButton is available, this is what we do - but if it isn't, we still -// define wxSpinCtrl class which then has the same appearance as wxTextCtrl but -// the different interface. This allows to write programs using wxSpinCtrl -// without tons of #ifdefs. -// ---------------------------------------------------------------------------- - -#if wxUSE_SPINBTN - -#include "wx/compositewin.h" - -class WXDLLIMPEXP_FWD_CORE wxSpinButton; -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; - -class wxSpinCtrlTextGeneric; // wxTextCtrl used for the wxSpinCtrlGenericBase - -// The !wxUSE_SPINBTN version's GetValue() function conflicts with the -// wxTextCtrl's GetValue() and so you have to input a dummy int value. -#define wxSPINCTRL_GETVALUE_FIX - -// ---------------------------------------------------------------------------- -// wxSpinCtrlGeneric is a combination of wxTextCtrl and wxSpinButton -// -// This class manages a double valued generic spinctrl through the DoGet/SetXXX -// functions that are made public as Get/SetXXX functions for int or double -// for the wxSpinCtrl and wxSpinCtrlDouble classes respectively to avoid -// function ambiguity. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSpinCtrlGenericBase - : public wxNavigationEnabled > -{ -public: - wxSpinCtrlGenericBase() { Init(); } - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, - double min = 0, double max = 100, double initial = 0, - double inc = 1, - const wxString& name = wxT("wxSpinCtrl")); - - virtual ~wxSpinCtrlGenericBase(); - - // accessors - // T GetValue() const - // T GetMin() const - // T GetMax() const - // T GetIncrement() const - virtual bool GetSnapToTicks() const wxOVERRIDE { return m_snap_to_ticks; } - // unsigned GetDigits() const - wxSpinCtrlDouble only - - // operations - virtual void SetValue(const wxString& text) wxOVERRIDE; - // void SetValue(T val) - // void SetRange(T minVal, T maxVal) - // void SetIncrement(T inc) - virtual void SetSnapToTicks(bool snap_to_ticks) wxOVERRIDE; - // void SetDigits(unsigned digits) - wxSpinCtrlDouble only - - // Select text in the textctrl - void SetSelection(long from, long to) wxOVERRIDE; - - // implementation from now on - - // forward these functions to all subcontrols - virtual bool Enable(bool enable = true) wxOVERRIDE; - virtual bool Show(bool show = true) wxOVERRIDE; - - virtual bool SetBackgroundColour(const wxColour& colour) wxOVERRIDE; - - // get the subcontrols - wxTextCtrl *GetText() const { return m_textCtrl; } - wxSpinButton *GetSpinButton() const { return m_spinButton; } - - // forwarded events from children windows - void OnSpinButton(wxSpinEvent& event); - void OnTextLostFocus(wxFocusEvent& event); - void OnTextChar(wxKeyEvent& event); - - // this window itself is used only as a container for its sub windows so it - // shouldn't accept the focus at all and any attempts to explicitly set - // focus to it should give focus to its text constol part - virtual bool AcceptsFocus() const wxOVERRIDE { return false; } - virtual void SetFocus() wxOVERRIDE; - - friend class wxSpinCtrlTextGeneric; - -protected: - // override the base class virtuals involved into geometry calculations - virtual wxSize DoGetBestSize() const wxOVERRIDE; - virtual wxSize DoGetSizeFromTextSize(int xlen, int ylen = -1) const wxOVERRIDE; - virtual void DoMoveWindow(int x, int y, int width, int height) wxOVERRIDE; - -#ifdef __WXMSW__ - // and, for MSW, enabling this window itself - virtual void DoEnable(bool enable); -#endif // __WXMSW__ - - enum SendEvent - { - SendEvent_None, - SendEvent_Text - }; - - // generic double valued functions - double DoGetValue() const { return m_value; } - bool DoSetValue(double val, SendEvent sendEvent); - void DoSetRange(double min_val, double max_val); - void DoSetIncrement(double inc); - - // update our value to reflect the text control contents (if it has been - // modified by user, do nothing otherwise) - // - // can also change the text control if its value is invalid - // - // return true if our value has changed - bool SyncSpinToText(SendEvent sendEvent); - - // Send the correct event type - virtual void DoSendEvent() = 0; - - // Convert the text to/from the corresponding value. - virtual bool DoTextToValue(const wxString& text, double *val) = 0; - virtual wxString DoValueToText(double val) = 0; - - // check if the value is in range - bool InRange(double n) const { return (n >= m_min) && (n <= m_max); } - - // ensure that the value is in range wrapping it round if necessary - double AdjustToFitInRange(double value) const; - - - double m_value; - double m_min; - double m_max; - double m_increment; - bool m_snap_to_ticks; - - int m_spin_value; - - // the subcontrols - wxTextCtrl *m_textCtrl; - wxSpinButton *m_spinButton; - -private: - // common part of all ctors - void Init(); - - // Implement pure virtual function inherited from wxCompositeWindow. - virtual wxWindowList GetCompositeWindowParts() const wxOVERRIDE; - - wxDECLARE_EVENT_TABLE(); -}; - -#else // !wxUSE_SPINBTN - -#define wxSPINCTRL_GETVALUE_FIX int = 1 - -// ---------------------------------------------------------------------------- -// wxSpinCtrl is just a text control -// ---------------------------------------------------------------------------- - -#include "wx/textctrl.h" - -class WXDLLIMPEXP_CORE wxSpinCtrlGenericBase : public wxTextCtrl -{ -public: - wxSpinCtrlGenericBase() : m_value(0), m_min(0), m_max(100), - m_increment(1), m_snap_to_ticks(false), - m_format(wxT("%g")) { } - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, - double min = 0, double max = 100, double initial = 0, - double inc = 1, - const wxString& name = wxT("wxSpinCtrl")) - { - m_min = min; - m_max = max; - m_value = initial; - m_increment = inc; - - bool ok = wxTextCtrl::Create(parent, id, value, pos, size, style, - wxDefaultValidator, name); - DoSetValue(initial, SendEvent_None); - - return ok; - } - - // accessors - // T GetValue() const - // T GetMin() const - // T GetMax() const - // T GetIncrement() const - virtual bool GetSnapToTicks() const { return m_snap_to_ticks; } - // unsigned GetDigits() const - wxSpinCtrlDouble only - - // operations - virtual void SetValue(const wxString& text) { wxTextCtrl::SetValue(text); } - // void SetValue(T val) - // void SetRange(T minVal, T maxVal) - // void SetIncrement(T inc) - virtual void SetSnapToTicks(bool snap_to_ticks) - { m_snap_to_ticks = snap_to_ticks; } - // void SetDigits(unsigned digits) - wxSpinCtrlDouble only - - // Select text in the textctrl - //void SetSelection(long from, long to); - -protected: - // generic double valued - double DoGetValue() const - { - double n; - if ( (wxSscanf(wxTextCtrl::GetValue(), wxT("%lf"), &n) != 1) ) - n = INT_MIN; - - return n; - } - - bool DoSetValue(double val, SendEvent sendEvent) - { - wxString str(wxString::Format(m_format, val)); - switch ( sendEvent ) - { - case SendEvent_None: - wxTextCtrl::ChangeValue(str); - break; - - case SendEvent_Text: - wxTextCtrl::SetValue(str); - break; - } - - return true; - } - void DoSetRange(double min_val, double max_val) - { - m_min = min_val; - m_max = max_val; - } - void DoSetIncrement(double inc) { m_increment = inc; } // Note: unused - - double m_value; - double m_min; - double m_max; - double m_increment; - bool m_snap_to_ticks; - wxString m_format; -}; - -#endif // wxUSE_SPINBTN/!wxUSE_SPINBTN - -#if !defined(wxHAS_NATIVE_SPINCTRL) - -//----------------------------------------------------------------------------- -// wxSpinCtrl -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSpinCtrl : public wxSpinCtrlGenericBase -{ -public: - wxSpinCtrl() { Init(); } - wxSpinCtrl(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, - int min = 0, int max = 100, int initial = 0, - const wxString& name = wxT("wxSpinCtrl")) - { - Init(); - - Create(parent, id, value, pos, size, style, min, max, initial, name); - } - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, - int min = 0, int max = 100, int initial = 0, - const wxString& name = wxT("wxSpinCtrl")) - { - return wxSpinCtrlGenericBase::Create(parent, id, value, pos, size, - style, min, max, initial, 1, name); - } - - // accessors - int GetValue(wxSPINCTRL_GETVALUE_FIX) const { return int(DoGetValue()); } - int GetMin() const { return int(m_min); } - int GetMax() const { return int(m_max); } - int GetIncrement() const { return int(m_increment); } - - // operations - void SetValue(const wxString& value) - { wxSpinCtrlGenericBase::SetValue(value); } - void SetValue( int value ) { DoSetValue(value, SendEvent_None); } - void SetRange( int minVal, int maxVal ) { DoSetRange(minVal, maxVal); } - void SetIncrement(int inc) { DoSetIncrement(inc); } - - virtual int GetBase() const { return m_base; } - virtual bool SetBase(int base); - -protected: - virtual void DoSendEvent(); - - virtual bool DoTextToValue(const wxString& text, double *val); - virtual wxString DoValueToText(double val); - -private: - // Common part of all ctors. - void Init() - { - m_base = 10; - } - - int m_base; - - wxDECLARE_DYNAMIC_CLASS(wxSpinCtrl); -}; - -#endif // wxHAS_NATIVE_SPINCTRL - -//----------------------------------------------------------------------------- -// wxSpinCtrlDouble -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSpinCtrlDouble : public wxSpinCtrlGenericBase -{ -public: - wxSpinCtrlDouble() { Init(); } - wxSpinCtrlDouble(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, - double min = 0, double max = 100, double initial = 0, - double inc = 1, - const wxString& name = wxT("wxSpinCtrlDouble")) - { - Init(); - - Create(parent, id, value, pos, size, style, - min, max, initial, inc, name); - } - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, - double min = 0, double max = 100, double initial = 0, - double inc = 1, - const wxString& name = wxT("wxSpinCtrlDouble")) - { - return wxSpinCtrlGenericBase::Create(parent, id, value, pos, size, - style, min, max, initial, - inc, name); - } - - // accessors - double GetValue(wxSPINCTRL_GETVALUE_FIX) const { return DoGetValue(); } - double GetMin() const { return m_min; } - double GetMax() const { return m_max; } - double GetIncrement() const { return m_increment; } - unsigned GetDigits() const { return m_digits; } - - // operations - void SetValue(const wxString& value) - { wxSpinCtrlGenericBase::SetValue(value); } - void SetValue(double value) { DoSetValue(value, SendEvent_None); } - void SetRange(double minVal, double maxVal) { DoSetRange(minVal, maxVal); } - void SetIncrement(double inc) { DoSetIncrement(inc); } - void SetDigits(unsigned digits); - - // We don't implement bases support for floating point numbers, this is not - // very useful in practice. - virtual int GetBase() const { return 10; } - virtual bool SetBase(int WXUNUSED(base)) { return 0; } - -protected: - virtual void DoSendEvent(); - - virtual bool DoTextToValue(const wxString& text, double *val); - virtual wxString DoValueToText(double val); - - unsigned m_digits; - -private: - // Common part of all ctors. - void Init() - { - m_digits = 0; - m_format = wxS("%g"); - } - - wxString m_format; - - wxDECLARE_DYNAMIC_CLASS(wxSpinCtrlDouble); -}; - -#endif // _WX_GENERIC_SPINCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/splash.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/splash.h deleted file mode 100644 index 48417bb9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/splash.h +++ /dev/null @@ -1,97 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/splash.h -// Purpose: Splash screen class -// Author: Julian Smart -// Modified by: -// Created: 28/6/2000 -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SPLASH_H_ -#define _WX_SPLASH_H_ - -#include "wx/bitmap.h" -#include "wx/eventfilter.h" -#include "wx/frame.h" -#include "wx/timer.h" - - -/* - * A window for displaying a splash screen - */ - -#define wxSPLASH_CENTRE_ON_PARENT 0x01 -#define wxSPLASH_CENTRE_ON_SCREEN 0x02 -#define wxSPLASH_NO_CENTRE 0x00 -#define wxSPLASH_TIMEOUT 0x04 -#define wxSPLASH_NO_TIMEOUT 0x00 - -class WXDLLIMPEXP_FWD_ADV wxSplashScreenWindow; - -/* - * wxSplashScreen - */ - -class WXDLLIMPEXP_ADV wxSplashScreen: public wxFrame, - public wxEventFilter -{ -public: - // for RTTI macros only - wxSplashScreen() { Init(); } - wxSplashScreen(const wxBitmap& bitmap, long splashStyle, int milliseconds, - wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSIMPLE_BORDER|wxFRAME_NO_TASKBAR|wxSTAY_ON_TOP); - virtual ~wxSplashScreen(); - - void OnCloseWindow(wxCloseEvent& event); - void OnNotify(wxTimerEvent& event); - - long GetSplashStyle() const { return m_splashStyle; } - wxSplashScreenWindow* GetSplashWindow() const { return m_window; } - int GetTimeout() const { return m_milliseconds; } - - // Override wxEventFilter method to hide splash screen on any user input. - virtual int FilterEvent(wxEvent& event) wxOVERRIDE; - -protected: - // Common part of all ctors. - void Init(); - - wxSplashScreenWindow* m_window; - long m_splashStyle; - int m_milliseconds; - wxTimer m_timer; - - wxDECLARE_DYNAMIC_CLASS(wxSplashScreen); - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxSplashScreen); -}; - -/* - * wxSplashScreenWindow - */ - -class WXDLLIMPEXP_ADV wxSplashScreenWindow: public wxWindow -{ -public: - wxSplashScreenWindow(const wxBitmap& bitmap, wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxNO_BORDER); - - void OnPaint(wxPaintEvent& event); - void OnEraseBackground(wxEraseEvent& event); - - void SetBitmap(const wxBitmap& bitmap) { m_bitmap = bitmap; } - wxBitmap& GetBitmap() { return m_bitmap; } - -protected: - wxBitmap m_bitmap; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxSplashScreenWindow); -}; - - -#endif - // _WX_SPLASH_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/splitter.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/splitter.h deleted file mode 100644 index d45cf54e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/splitter.h +++ /dev/null @@ -1,419 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/splitter.h -// Purpose: wxSplitterWindow class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_SPLITTER_H_ -#define _WX_GENERIC_SPLITTER_H_ - -#include "wx/window.h" // base class declaration -#include "wx/containr.h" // wxControlContainer - -class WXDLLIMPEXP_FWD_CORE wxSplitterEvent; - -// --------------------------------------------------------------------------- -// splitter constants -// --------------------------------------------------------------------------- - -enum wxSplitMode -{ - wxSPLIT_HORIZONTAL = 1, - wxSPLIT_VERTICAL -}; - -enum -{ - wxSPLIT_DRAG_NONE, - wxSPLIT_DRAG_DRAGGING, - wxSPLIT_DRAG_LEFT_DOWN -}; - -// --------------------------------------------------------------------------- -// wxSplitterWindow maintains one or two panes, with -// an optional vertical or horizontal split which -// can be used with the mouse or programmatically. -// --------------------------------------------------------------------------- - -// TODO: -// 1) Perhaps make the borders sensitive to dragging in order to create a split. -// The MFC splitter window manages scrollbars as well so is able to -// put sash buttons on the scrollbars, but we probably don't want to go down -// this path. -// 2) for wxWidgets 2.0, we must find a way to set the WS_CLIPCHILDREN style -// to prevent flickering. (WS_CLIPCHILDREN doesn't work in all cases so can't be -// standard). - -class WXDLLIMPEXP_CORE wxSplitterWindow: public wxNavigationEnabled -{ -public: - -//////////////////////////////////////////////////////////////////////////// -// Public API - - // Default constructor - wxSplitterWindow() - { - Init(); - } - - // Normal constructor - wxSplitterWindow(wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_3D, - const wxString& name = wxT("splitter")) - { - Init(); - Create(parent, id, pos, size, style, name); - } - - virtual ~wxSplitterWindow(); - - bool Create(wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_3D, - const wxString& name = wxT("splitter")); - - // Gets the only or left/top pane - wxWindow *GetWindow1() const { return m_windowOne; } - - // Gets the right/bottom pane - wxWindow *GetWindow2() const { return m_windowTwo; } - - // Sets the split mode - void SetSplitMode(int mode) - { - wxASSERT_MSG( mode == wxSPLIT_VERTICAL || mode == wxSPLIT_HORIZONTAL, - wxT("invalid split mode") ); - - m_splitMode = (wxSplitMode)mode; - } - - // Gets the split mode - wxSplitMode GetSplitMode() const { return m_splitMode; } - - // Initialize with one window - void Initialize(wxWindow *window); - - // Associates the given window with window 2, drawing the appropriate sash - // and changing the split mode. - // Does nothing and returns false if the window is already split. - // A sashPosition of 0 means choose a default sash position, - // negative sashPosition specifies the size of right/lower pane as its - // absolute value rather than the size of left/upper pane. - virtual bool SplitVertically(wxWindow *window1, - wxWindow *window2, - int sashPosition = 0) - { return DoSplit(wxSPLIT_VERTICAL, window1, window2, sashPosition); } - virtual bool SplitHorizontally(wxWindow *window1, - wxWindow *window2, - int sashPosition = 0) - { return DoSplit(wxSPLIT_HORIZONTAL, window1, window2, sashPosition); } - - // Removes the specified (or second) window from the view - // Doesn't actually delete the window. - bool Unsplit(wxWindow *toRemove = NULL); - - // Replaces one of the windows with another one (neither old nor new - // parameter should be NULL) - bool ReplaceWindow(wxWindow *winOld, wxWindow *winNew); - - // Make sure the child window sizes are updated. This is useful - // for reducing flicker by updating the sizes before a - // window is shown, if you know the overall size is correct. - void UpdateSize(); - - // Is the window split? - bool IsSplit() const { return (m_windowTwo != NULL); } - - // Sets the border size - void SetBorderSize(int WXUNUSED(width)) { } - - // Hide or show the sash and test whether it's currently hidden. - void SetSashInvisible(bool invisible = true); - bool IsSashInvisible() const { return HasFlag(wxSP_NOSASH); } - - // Gets the current sash size which may be 0 if it's hidden and the default - // sash size. - int GetSashSize() const; - int GetDefaultSashSize() const; - - // Gets the border size - int GetBorderSize() const; - - // Set the sash position - void SetSashPosition(int position, bool redraw = true); - - // Gets the sash position - int GetSashPosition() const { return m_sashPosition; } - - // Set the sash gravity - void SetSashGravity(double gravity); - - // Gets the sash gravity - double GetSashGravity() const { return m_sashGravity; } - - // If this is zero, we can remove panes by dragging the sash. - void SetMinimumPaneSize(int min); - int GetMinimumPaneSize() const { return m_minimumPaneSize; } - - // NB: the OnXXX() functions below are for backwards compatibility only, - // don't use them in new code but handle the events instead! - - // called when the sash position is about to change, may return a new value - // for the sash or -1 to prevent the change from happening at all - virtual int OnSashPositionChanging(int newSashPosition); - - // Called when the sash position is about to be changed, return - // false from here to prevent the change from taking place. - // Repositions sash to minimum position if pane would be too small. - // newSashPosition here is always positive or zero. - virtual bool OnSashPositionChange(int newSashPosition); - - // If the sash is moved to an extreme position, a subwindow - // is removed from the splitter window, and the app is - // notified. The app should delete or hide the window. - virtual void OnUnsplit(wxWindow *removed); - - // Called when the sash is double-clicked. - // The default behaviour is to remove the sash if the - // minimum pane size is zero. - virtual void OnDoubleClickSash(int x, int y); - -//////////////////////////////////////////////////////////////////////////// -// Implementation - - // Paints the border and sash - void OnPaint(wxPaintEvent& event); - - // Handles mouse events - void OnMouseEvent(wxMouseEvent& ev); - - // Aborts dragging mode - void OnMouseCaptureLost(wxMouseCaptureLostEvent& event); - - // Adjusts the panes - void OnSize(wxSizeEvent& event); - - // In live mode, resize child windows in idle time - void OnInternalIdle() wxOVERRIDE; - - // Draws the sash - virtual void DrawSash(wxDC& dc); - - // Draws the sash tracker (for whilst moving the sash) - virtual void DrawSashTracker(int x, int y); - - // Tests for x, y over sash - virtual bool SashHitTest(int x, int y); - - // Resizes subwindows - virtual void SizeWindows(); - -#ifdef __WXMAC__ - virtual bool MacClipGrandChildren() const wxOVERRIDE { return true ; } -#endif - - // Sets the sash size: this doesn't do anything and shouldn't be used at - // all any more. - wxDEPRECATED_INLINE( void SetSashSize(int WXUNUSED(width)), return; ) - -protected: - // event handlers -#if defined(__WXMSW__) || defined(__WXMAC__) - void OnSetCursor(wxSetCursorEvent& event); -#endif // wxMSW - - // send the given event, return false if the event was processed and vetoed - // by the user code - bool DoSendEvent(wxSplitterEvent& event); - - // common part of all ctors - void Init(); - - // common part of SplitVertically() and SplitHorizontally() - bool DoSplit(wxSplitMode mode, - wxWindow *window1, wxWindow *window2, - int sashPosition); - - // adjusts sash position with respect to min. pane and window sizes - int AdjustSashPosition(int sashPos) const; - - // get either width or height depending on the split mode - int GetWindowSize() const; - - // convert the user specified sash position which may be > 0 (as is), < 0 - // (specifying the size of the right pane) or 0 (use default) to the real - // position to be passed to DoSetSashPosition() - int ConvertSashPosition(int sashPos) const; - - // set the real sash position, sashPos here must be positive - // - // returns true if the sash position has been changed, false otherwise - bool DoSetSashPosition(int sashPos); - - // set the sash position and send an event about it having been changed - void SetSashPositionAndNotify(int sashPos); - - // callbacks executed when we detect that the mouse has entered or left - // the sash - virtual void OnEnterSash(); - virtual void OnLeaveSash(); - - // set the cursor appropriate for the current split mode - void SetResizeCursor(); - - // redraw the splitter if its "hotness" changed if necessary - void RedrawIfHotSensitive(bool isHot); - - // return the best size of the splitter equal to best sizes of its - // subwindows - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - - wxSplitMode m_splitMode; - wxWindow* m_windowOne; - wxWindow* m_windowTwo; - int m_dragMode; - int m_oldX; // current tracker position if not live mode - int m_oldY; // current tracker position if not live mode - int m_sashPosition; // Number of pixels from left or top - double m_sashGravity; - wxSize m_lastSize; - int m_requestedSashPosition; - int m_sashPositionCurrent; // while dragging - wxPoint m_ptStart; // mouse position when dragging started - int m_sashStart; // sash position when dragging started - int m_minimumPaneSize; - wxCursor m_sashCursorWE; - wxCursor m_sashCursorNS; - wxPen *m_sashTrackerPen; - - // when in live mode, set this to true to resize children in idle - bool m_needUpdating:1; - bool m_permitUnsplitAlways:1; - bool m_isHot:1; - -private: - wxDECLARE_DYNAMIC_CLASS(wxSplitterWindow); - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxSplitterWindow); -}; - -// ---------------------------------------------------------------------------- -// event class and macros -// ---------------------------------------------------------------------------- - -// we reuse the same class for all splitter event types because this is the -// usual wxWin convention, but the three event types have different kind of -// data associated with them, so the accessors can be only used if the real -// event type matches with the one for which the accessors make sense -class WXDLLIMPEXP_CORE wxSplitterEvent : public wxNotifyEvent -{ -public: - wxSplitterEvent(wxEventType type = wxEVT_NULL, - wxSplitterWindow *splitter = NULL) - : wxNotifyEvent(type) - { - SetEventObject(splitter); - if (splitter) m_id = splitter->GetId(); - } - wxSplitterEvent(const wxSplitterEvent& event) - : wxNotifyEvent(event), m_data(event.m_data) { } - - // SASH_POS_CHANGED methods - - // setting the sash position to -1 prevents the change from taking place at - // all - void SetSashPosition(int pos) - { - wxASSERT( GetEventType() == wxEVT_SPLITTER_SASH_POS_CHANGED - || GetEventType() == wxEVT_SPLITTER_SASH_POS_CHANGING); - - m_data.pos = pos; - } - - int GetSashPosition() const - { - wxASSERT( GetEventType() == wxEVT_SPLITTER_SASH_POS_CHANGED - || GetEventType() == wxEVT_SPLITTER_SASH_POS_CHANGING); - - return m_data.pos; - } - - // UNSPLIT event methods - wxWindow *GetWindowBeingRemoved() const - { - wxASSERT( GetEventType() == wxEVT_SPLITTER_UNSPLIT ); - - return m_data.win; - } - - // DCLICK event methods - int GetX() const - { - wxASSERT( GetEventType() == wxEVT_SPLITTER_DOUBLECLICKED ); - - return m_data.pt.x; - } - - int GetY() const - { - wxASSERT( GetEventType() == wxEVT_SPLITTER_DOUBLECLICKED ); - - return m_data.pt.y; - } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxSplitterEvent(*this); } - -private: - friend class WXDLLIMPEXP_FWD_CORE wxSplitterWindow; - - // data for the different types of event - union - { - int pos; // position for SASH_POS_CHANGED event - wxWindow *win; // window being removed for UNSPLIT event - struct - { - int x, y; - } pt; // position of double click for DCLICK event - } m_data; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxSplitterEvent); -}; - -typedef void (wxEvtHandler::*wxSplitterEventFunction)(wxSplitterEvent&); - -#define wxSplitterEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxSplitterEventFunction, func) - -#define wx__DECLARE_SPLITTEREVT(evt, id, fn) \ - wx__DECLARE_EVT1(wxEVT_SPLITTER_ ## evt, id, wxSplitterEventHandler(fn)) - -#define EVT_SPLITTER_SASH_POS_CHANGED(id, fn) \ - wx__DECLARE_SPLITTEREVT(SASH_POS_CHANGED, id, fn) - -#define EVT_SPLITTER_SASH_POS_CHANGING(id, fn) \ - wx__DECLARE_SPLITTEREVT(SASH_POS_CHANGING, id, fn) - -#define EVT_SPLITTER_DCLICK(id, fn) \ - wx__DECLARE_SPLITTEREVT(DOUBLECLICKED, id, fn) - -#define EVT_SPLITTER_UNSPLIT(id, fn) \ - wx__DECLARE_SPLITTEREVT(UNSPLIT, id, fn) - - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED wxEVT_SPLITTER_SASH_POS_CHANGED -#define wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING wxEVT_SPLITTER_SASH_POS_CHANGING -#define wxEVT_COMMAND_SPLITTER_DOUBLECLICKED wxEVT_SPLITTER_DOUBLECLICKED -#define wxEVT_COMMAND_SPLITTER_UNSPLIT wxEVT_SPLITTER_UNSPLIT - -#endif // _WX_GENERIC_SPLITTER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/srchctlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/srchctlg.h deleted file mode 100644 index 3eb8d21c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/srchctlg.h +++ /dev/null @@ -1,279 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/srchctlg.h -// Purpose: generic wxSearchCtrl class -// Author: Vince Harron -// Created: 2006-02-19 -// Copyright: Vince Harron -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_SEARCHCTRL_H_ -#define _WX_GENERIC_SEARCHCTRL_H_ - -#if wxUSE_SEARCHCTRL - -#include "wx/bitmap.h" - -class WXDLLIMPEXP_FWD_CORE wxSearchButton; -class WXDLLIMPEXP_FWD_CORE wxSearchTextCtrl; - -// ---------------------------------------------------------------------------- -// wxSearchCtrl is a combination of wxTextCtrl and wxSearchButton -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSearchCtrl : public wxSearchCtrlBase -{ -public: - // creation - // -------- - - wxSearchCtrl(); - wxSearchCtrl(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSearchCtrlNameStr); - - virtual ~wxSearchCtrl(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSearchCtrlNameStr); - -#if wxUSE_MENUS - // get/set search button menu - // -------------------------- - virtual void SetMenu( wxMenu* menu ) wxOVERRIDE; - virtual wxMenu* GetMenu() wxOVERRIDE; -#endif // wxUSE_MENUS - - // get/set search options - // ---------------------- - virtual void ShowSearchButton( bool show ) wxOVERRIDE; - virtual bool IsSearchButtonVisible() const wxOVERRIDE; - - virtual void ShowCancelButton( bool show ) wxOVERRIDE; - virtual bool IsCancelButtonVisible() const wxOVERRIDE; - - // TODO: In 2.9 these should probably be virtual, and declared in the base class... - void SetDescriptiveText(const wxString& text); - wxString GetDescriptiveText() const; - - // accessors - // --------- - - virtual wxString GetRange(long from, long to) const wxOVERRIDE; - - virtual int GetLineLength(long lineNo) const wxOVERRIDE; - virtual wxString GetLineText(long lineNo) const wxOVERRIDE; - virtual int GetNumberOfLines() const wxOVERRIDE; - - virtual bool IsModified() const wxOVERRIDE; - virtual bool IsEditable() const wxOVERRIDE; - - // more readable flag testing methods - virtual bool IsSingleLine() const; - virtual bool IsMultiLine() const; - - // If the return values from and to are the same, there is no selection. - virtual void GetSelection(long* from, long* to) const wxOVERRIDE; - - virtual wxString GetStringSelection() const wxOVERRIDE; - - // operations - // ---------- - - // editing - virtual void Clear() wxOVERRIDE; - virtual void Replace(long from, long to, const wxString& value) wxOVERRIDE; - virtual void Remove(long from, long to) wxOVERRIDE; - - // load/save the controls contents from/to the file - virtual bool LoadFile(const wxString& file); - virtual bool SaveFile(const wxString& file = wxEmptyString); - - // sets/clears the dirty flag - virtual void MarkDirty() wxOVERRIDE; - virtual void DiscardEdits() wxOVERRIDE; - - // set the max number of characters which may be entered in a single line - // text control - virtual void SetMaxLength(unsigned long WXUNUSED(len)) wxOVERRIDE; - - // writing text inserts it at the current position, appending always - // inserts it at the end - virtual void WriteText(const wxString& text) wxOVERRIDE; - virtual void AppendText(const wxString& text) wxOVERRIDE; - - // insert the character which would have resulted from this key event, - // return true if anything has been inserted - virtual bool EmulateKeyPress(const wxKeyEvent& event); - - // text control under some platforms supports the text styles: these - // methods allow to apply the given text style to the given selection or to - // set/get the style which will be used for all appended text - virtual bool SetStyle(long start, long end, const wxTextAttr& style) wxOVERRIDE; - virtual bool GetStyle(long position, wxTextAttr& style) wxOVERRIDE; - virtual bool SetDefaultStyle(const wxTextAttr& style) wxOVERRIDE; - virtual const wxTextAttr& GetDefaultStyle() const wxOVERRIDE; - - // translate between the position (which is just an index in the text ctrl - // considering all its contents as a single strings) and (x, y) coordinates - // which represent column and line. - virtual long XYToPosition(long x, long y) const wxOVERRIDE; - virtual bool PositionToXY(long pos, long *x, long *y) const wxOVERRIDE; - - virtual void ShowPosition(long pos) wxOVERRIDE; - - // find the character at position given in pixels - // - // NB: pt is in device coords (not adjusted for the client area origin nor - // scrolling) - virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, long *pos) const wxOVERRIDE; - virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, - wxTextCoord *col, - wxTextCoord *row) const wxOVERRIDE; - - // Clipboard operations - virtual void Copy() wxOVERRIDE; - virtual void Cut() wxOVERRIDE; - virtual void Paste() wxOVERRIDE; - - virtual bool CanCopy() const wxOVERRIDE; - virtual bool CanCut() const wxOVERRIDE; - virtual bool CanPaste() const wxOVERRIDE; - - // Undo/redo - virtual void Undo() wxOVERRIDE; - virtual void Redo() wxOVERRIDE; - - virtual bool CanUndo() const wxOVERRIDE; - virtual bool CanRedo() const wxOVERRIDE; - - // Insertion point - virtual void SetInsertionPoint(long pos) wxOVERRIDE; - virtual void SetInsertionPointEnd() wxOVERRIDE; - virtual long GetInsertionPoint() const wxOVERRIDE; - virtual wxTextPos GetLastPosition() const wxOVERRIDE; - - virtual void SetSelection(long from, long to) wxOVERRIDE; - virtual void SelectAll() wxOVERRIDE; - virtual void SetEditable(bool editable) wxOVERRIDE; - -#if 0 - - // override streambuf method -#if wxHAS_TEXT_WINDOW_STREAM - int overflow(int i); -#endif // wxHAS_TEXT_WINDOW_STREAM - - // stream-like insertion operators: these are always available, whether we - // were, or not, compiled with streambuf support - wxTextCtrl& operator<<(const wxString& s); - wxTextCtrl& operator<<(int i); - wxTextCtrl& operator<<(long i); - wxTextCtrl& operator<<(float f); - wxTextCtrl& operator<<(double d); - wxTextCtrl& operator<<(wxChar c); -#endif - - // do the window-specific processing after processing the update event - virtual void DoUpdateWindowUI(wxUpdateUIEvent& event) wxOVERRIDE; - - virtual bool ShouldInheritColours() const wxOVERRIDE; - - // wxWindow overrides - virtual bool SetFont(const wxFont& font) wxOVERRIDE; - virtual bool SetBackgroundColour(const wxColour& colour) wxOVERRIDE; - - // search control generic only - void SetSearchBitmap( const wxBitmap& bitmap ); - void SetCancelBitmap( const wxBitmap& bitmap ); -#if wxUSE_MENUS - void SetSearchMenuBitmap( const wxBitmap& bitmap ); -#endif // wxUSE_MENUS - -protected: - virtual void DoSetValue(const wxString& value, int flags) wxOVERRIDE; - virtual wxString DoGetValue() const wxOVERRIDE; - - virtual bool DoLoadFile(const wxString& file, int fileType) wxOVERRIDE; - virtual bool DoSaveFile(const wxString& file, int fileType) wxOVERRIDE; - - // override the base class virtuals involved into geometry calculations - virtual wxSize DoGetBestClientSize() const wxOVERRIDE; - virtual void DoMoveWindow(int x, int y, int width, int height) wxOVERRIDE; - - virtual void RecalcBitmaps(); - - void Init(); - - virtual wxBitmap RenderSearchBitmap( int x, int y, bool renderDrop ); - virtual wxBitmap RenderCancelBitmap( int x, int y ); - - void OnCancelButton( wxCommandEvent& event ); - - void OnSetFocus( wxFocusEvent& event ); - void OnSize( wxSizeEvent& event ); - - bool HasMenu() const - { -#if wxUSE_MENUS - return m_menu != NULL; -#else // !wxUSE_MENUS - return false; -#endif // wxUSE_MENUS/!wxUSE_MENUS - } - -private: - friend class wxSearchButton; - - // Implement pure virtual function inherited from wxCompositeWindow. - virtual wxWindowList GetCompositeWindowParts() const wxOVERRIDE; - - // Position the child controls using the current window size. - void LayoutControls(); - -#if wxUSE_MENUS - void PopupSearchMenu(); -#endif // wxUSE_MENUS - - // the subcontrols - wxSearchTextCtrl *m_text; - wxSearchButton *m_searchButton; - wxSearchButton *m_cancelButton; -#if wxUSE_MENUS - wxMenu *m_menu; -#endif // wxUSE_MENUS - - bool m_searchButtonVisible; - bool m_cancelButtonVisible; - - bool m_searchBitmapUser; - bool m_cancelBitmapUser; -#if wxUSE_MENUS - bool m_searchMenuBitmapUser; -#endif // wxUSE_MENUS - - wxBitmap m_searchBitmap; - wxBitmap m_cancelBitmap; -#if wxUSE_MENUS - wxBitmap m_searchMenuBitmap; -#endif // wxUSE_MENUS - -private: - wxDECLARE_DYNAMIC_CLASS(wxSearchCtrl); - - wxDECLARE_EVENT_TABLE(); -}; - -#endif // wxUSE_SEARCHCTRL - -#endif // _WX_GENERIC_SEARCHCTRL_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/statbmpg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/statbmpg.h deleted file mode 100644 index e9154734..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/statbmpg.h +++ /dev/null @@ -1,83 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/statbmpg.h -// Purpose: wxGenericStaticBitmap header -// Author: Marcin Wojdyr, Stefan Csomor -// Created: 2008-06-16 -// Copyright: wxWidgets developers -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_STATBMP_H_ -#define _WX_GENERIC_STATBMP_H_ - -#include "wx/statbmp.h" - -class WXDLLIMPEXP_CORE wxGenericStaticBitmap : public wxStaticBitmapBase -{ -public: - wxGenericStaticBitmap() {} - wxGenericStaticBitmap(wxWindow *parent, - wxWindowID id, - const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr) - { - Create(parent, id, bitmap, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr); - - virtual void SetBitmap(const wxBitmap& bitmap) wxOVERRIDE - { - m_bitmap = bitmap; - SetInitialSize(GetBitmapSize()); - Refresh(); - } - - virtual wxBitmap GetBitmap() const wxOVERRIDE { return m_bitmap; } - - virtual void SetIcon(const wxIcon& icon) wxOVERRIDE - { - m_bitmap.CopyFromIcon(icon); - SetInitialSize(GetBitmapSize()); - Refresh(); - } - -#if defined(__WXGTK20__) || defined(__WXMAC__) - // icons and bitmaps are really the same thing in wxGTK and wxMac - wxIcon GetIcon() const wxOVERRIDE { return (const wxIcon &)m_bitmap; } -#endif - - virtual void SetScaleMode(ScaleMode scaleMode) wxOVERRIDE - { - m_scaleMode = scaleMode; - Refresh(); - } - - virtual ScaleMode GetScaleMode() const wxOVERRIDE { return m_scaleMode; } - -private: - wxSize GetBitmapSize() - { - return m_bitmap.IsOk() ? m_bitmap.GetScaledSize() - : wxSize(16, 16); // this is completely arbitrary - } - - void OnPaint(wxPaintEvent& event); - - wxBitmap m_bitmap; - ScaleMode m_scaleMode; - - wxDECLARE_DYNAMIC_CLASS(wxGenericStaticBitmap); -}; - - -#endif //_WX_GENERIC_STATBMP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/statline.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/statline.h deleted file mode 100644 index 5cd06f37..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/statline.h +++ /dev/null @@ -1,61 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/statline.h -// Purpose: a generic wxStaticLine class -// Author: Vadim Zeitlin -// Created: 28.06.99 -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_STATLINE_H_ -#define _WX_GENERIC_STATLINE_H_ - -class wxStaticBox; - -// ---------------------------------------------------------------------------- -// wxStaticLine -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxStaticLine : public wxStaticLineBase -{ - wxDECLARE_DYNAMIC_CLASS(wxStaticLine); - -public: - // constructors and pseudo-constructors - wxStaticLine() { m_statbox = NULL; } - - wxStaticLine( wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxLI_HORIZONTAL, - const wxString &name = wxStaticLineNameStr ) - { - Create(parent, id, pos, size, style, name); - } - - virtual ~wxStaticLine(); - - bool Create( wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxLI_HORIZONTAL, - const wxString &name = wxStaticLineNameStr ); - - // it's necessary to override this wxWindow function because we - // will want to return the main widget for m_statbox - // - WXWidget GetMainWidget() const; - - // override wxWindow methods to make things work - virtual void DoSetSize(int x, int y, int width, int height, - int sizeFlags = wxSIZE_AUTO); - virtual void DoMoveWindow(int x, int y, int width, int height); -protected: - // we implement the static line using a static box - wxStaticBox *m_statbox; -}; - -#endif // _WX_GENERIC_STATLINE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/stattextg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/stattextg.h deleted file mode 100644 index 2a85d99c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/stattextg.h +++ /dev/null @@ -1,90 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/stattextg.h -// Purpose: wxGenericStaticText header -// Author: Marcin Wojdyr -// Created: 2008-06-26 -// Copyright: Marcin Wojdyr -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_STATTEXTG_H_ -#define _WX_GENERIC_STATTEXTG_H_ - -// prevent it from including the platform-specific wxStaticText declaration as -// this is not going to compile if it derives from wxGenericStaticText defined -// below (currently this is only the case in wxUniv but it could also happen -// with other ports) -#define wxNO_PORT_STATTEXT_INCLUDE -#include "wx/stattext.h" -#undef wxNO_PORT_STATTEXT_INCLUDE - -class WXDLLIMPEXP_CORE wxGenericStaticText : public wxStaticTextBase -{ -public: - wxGenericStaticText() { Init(); } - - wxGenericStaticText(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr) - { - Init(); - - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr); - - virtual ~wxGenericStaticText(); - - - // overridden base class virtual methods - virtual void SetLabel(const wxString& label) wxOVERRIDE; - virtual bool SetFont(const wxFont &font) wxOVERRIDE; - -protected: - virtual wxSize DoGetBestClientSize() const wxOVERRIDE; - - virtual wxString DoGetLabel() const wxOVERRIDE { return m_label; } - virtual void DoSetLabel(const wxString& label) wxOVERRIDE; - - void DoSetSize(int x, int y, int width, int height, int sizeFlags) wxOVERRIDE; - -#if wxUSE_MARKUP - virtual bool DoSetLabelMarkup(const wxString& markup) wxOVERRIDE; -#endif // wxUSE_MARKUP - -private: - void Init() - { -#if wxUSE_MARKUP - m_markupText = NULL; -#endif // wxUSE_MARKUP - } - - void OnPaint(wxPaintEvent& event); - - void DoDrawLabel(wxDC& dc, const wxRect& rect); - - // These fields are only used if m_markupText == NULL. - wxString m_label; - int m_mnemonic; - -#if wxUSE_MARKUP - class wxMarkupText *m_markupText; -#endif // wxUSE_MARKUP - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxGenericStaticText); -}; - -#endif // _WX_GENERIC_STATTEXTG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/statusbr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/statusbr.h deleted file mode 100644 index 6d0edd6e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/statusbr.h +++ /dev/null @@ -1,119 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/statusbr.h -// Purpose: wxStatusBarGeneric class -// Author: Julian Smart -// Modified by: VZ at 05.02.00 to derive from wxStatusBarBase -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_STATUSBR_H_ -#define _WX_GENERIC_STATUSBR_H_ - -#include "wx/defs.h" - -#if wxUSE_STATUSBAR - -#include "wx/pen.h" -#include "wx/arrstr.h" - - -// ---------------------------------------------------------------------------- -// wxStatusBarGeneric -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxStatusBarGeneric : public wxStatusBarBase -{ -public: - wxStatusBarGeneric() { Init(); } - wxStatusBarGeneric(wxWindow *parent, - wxWindowID winid = wxID_ANY, - long style = wxSTB_DEFAULT_STYLE, - const wxString& name = wxStatusBarNameStr) - { - Init(); - - Create(parent, winid, style, name); - } - - virtual ~wxStatusBarGeneric(); - - bool Create(wxWindow *parent, wxWindowID winid = wxID_ANY, - long style = wxSTB_DEFAULT_STYLE, - const wxString& name = wxStatusBarNameStr); - - // implement base class methods - virtual void SetStatusWidths(int n, const int widths_field[]) wxOVERRIDE; - virtual bool GetFieldRect(int i, wxRect& rect) const wxOVERRIDE; - virtual void SetMinHeight(int height) wxOVERRIDE; - - virtual int GetBorderX() const wxOVERRIDE { return m_borderX; } - virtual int GetBorderY() const wxOVERRIDE { return m_borderY; } - - - // implementation only (not part of wxStatusBar public API): - - int GetFieldFromPoint(const wxPoint& point) const; - -protected: - virtual void DoUpdateStatusText(int number) wxOVERRIDE; - - // event handlers - void OnPaint(wxPaintEvent& event); - void OnSize(wxSizeEvent& event); - - void OnLeftDown(wxMouseEvent& event); - void OnRightDown(wxMouseEvent& event); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - -protected: - - virtual void DrawFieldText(wxDC& dc, const wxRect& rc, int i, int textHeight); - virtual void DrawField(wxDC& dc, int i, int textHeight); - - void SetBorderX(int x); - void SetBorderY(int y); - - virtual void InitColours(); - - // true if the status bar shows the size grip: for this it must have - // wxSTB_SIZEGRIP style and the window it is attached to must be resizable - // and not maximized - bool ShowsSizeGrip() const; - - // returns the position and the size of the size grip - wxRect GetSizeGripRect() const; - - // common part of all ctors - void Init(); - - // the last known size, fields widths must be updated whenever it's out of - // date - wxSize m_lastClientSize; - - // the absolute widths of the status bar panes in pixels - wxArrayInt m_widthsAbs; - - int m_borderX; - int m_borderY; - - wxPen m_mediumShadowPen; - wxPen m_hilightPen; - - virtual wxSize DoGetBestSize() const wxOVERRIDE; - -private: - // Update m_lastClientSize and m_widthsAbs from the current size. - void DoUpdateFieldWidths(); - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxStatusBarGeneric); -}; - -#endif // wxUSE_STATUSBAR - -#endif - // _WX_GENERIC_STATUSBR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/tabg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/tabg.h deleted file mode 100644 index c9c4fe60..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/tabg.h +++ /dev/null @@ -1,358 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/tabg.h -// Purpose: Generic tabbed dialogs; used by wxMotif's wxNotebook -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __TABGH_G__ -#define __TABGH_G__ - -#define WXTAB_VERSION 1.1 - -#include "wx/hashmap.h" -#include "wx/string.h" -#include "wx/dialog.h" -#include "wx/panel.h" -#include "wx/list.h" - -class WXDLLIMPEXP_FWD_CORE wxTabView; - -/* - * A wxTabControl is the internal and visual representation - * of the tab. - */ - -class WXDLLIMPEXP_CORE wxTabControl: public wxObject -{ - wxDECLARE_DYNAMIC_CLASS(wxTabControl); -public: - wxTabControl(wxTabView *v = NULL); - virtual ~wxTabControl(void); - - virtual void OnDraw(wxDC& dc, bool lastInRow); - void SetLabel(const wxString& str) { m_controlLabel = str; } - wxString GetLabel(void) const { return m_controlLabel; } - - void SetFont(const wxFont& f) { m_labelFont = f; } - wxFont *GetFont(void) const { return (wxFont*) & m_labelFont; } - - void SetSelected(bool sel) { m_isSelected = sel; } - bool IsSelected(void) const { return m_isSelected; } - - void SetPosition(int x, int y) { m_offsetX = x; m_offsetY = y; } - void SetSize(int x, int y) { m_width = x; m_height = y; } - - void SetRowPosition(int r) { m_rowPosition = r; } - int GetRowPosition() const { return m_rowPosition; } - void SetColPosition(int c) { m_colPosition = c; } - int GetColPosition() const { return m_colPosition; } - - int GetX(void) const { return m_offsetX; } - int GetY(void) const { return m_offsetY; } - int GetWidth(void) const { return m_width; } - int GetHeight(void) const { return m_height; } - - int GetId(void) const { return m_id; } - void SetId(int i) { m_id = i; } - - virtual bool HitTest(int x, int y) const ; - -protected: - wxTabView* m_view; - wxString m_controlLabel; - bool m_isSelected; - wxFont m_labelFont; - int m_offsetX; // Offsets from top-left of tab view area (the area below the tabs) - int m_offsetY; - int m_width; - int m_height; - int m_id; - int m_rowPosition; // Position in row from 0 - int m_colPosition; // Position in col from 0 -}; - -/* - * Each wxTabLayer is a list of tabs. E.g. there - * are 3 layers in the MS Word Options dialog. - */ - -class WXDLLIMPEXP_CORE wxTabLayer: public wxList -{ -}; - -/* - * The wxTabView controls and draws the tabbed object - */ - -WX_DECLARE_LIST(wxTabLayer, wxTabLayerList); - -#define wxTAB_STYLE_DRAW_BOX 1 // Draws 3D boxes round tab layers -#define wxTAB_STYLE_COLOUR_INTERIOR 2 // Colours interior of tabs, otherwise draws outline - -class WXDLLIMPEXP_CORE wxTabView: public wxObject -{ - wxDECLARE_DYNAMIC_CLASS(wxTabView); -public: - wxTabView(long style = wxTAB_STYLE_DRAW_BOX | wxTAB_STYLE_COLOUR_INTERIOR); - virtual ~wxTabView(); - - inline int GetNumberOfLayers() const { return m_layers.GetCount(); } - inline wxTabLayerList& GetLayers() { return m_layers; } - - inline void SetWindow(wxWindow* wnd) { m_window = wnd; } - inline wxWindow* GetWindow(void) const { return m_window; } - - // Automatically positions tabs - wxTabControl *AddTab(int id, const wxString& label, wxTabControl *existingTab = NULL); - - // Remove the tab without deleting the window - bool RemoveTab(int id); - - void ClearTabs(bool deleteTabs = true); - - bool SetTabText(int id, const wxString& label); - wxString GetTabText(int id) const; - - // Layout tabs (optional, e.g. if resizing window) - void LayoutTabs(); - - // Draw all tabs - virtual void Draw(wxDC& dc); - - // Process mouse event, return false if we didn't process it - virtual bool OnEvent(wxMouseEvent& event); - - // Called when a tab is activated - virtual void OnTabActivate(int activateId, int deactivateId); - // Allows vetoing - virtual bool OnTabPreActivate(int WXUNUSED(activateId), int WXUNUSED(deactivateId) ) { return true; } - - // Allows use of application-supplied wxTabControl classes. - virtual wxTabControl *OnCreateTabControl(void) { return new wxTabControl(this); } - - void SetHighlightColour(const wxColour& col); - void SetShadowColour(const wxColour& col); - void SetBackgroundColour(const wxColour& col); - inline void SetTextColour(const wxColour& col) { m_textColour = col; } - - inline wxColour GetHighlightColour(void) const { return m_highlightColour; } - inline wxColour GetShadowColour(void) const { return m_shadowColour; } - inline wxColour GetBackgroundColour(void) const { return m_backgroundColour; } - inline wxColour GetTextColour(void) const { return m_textColour; } - inline const wxPen *GetHighlightPen(void) const { return m_highlightPen; } - inline const wxPen *GetShadowPen(void) const { return m_shadowPen; } - inline const wxPen *GetBackgroundPen(void) const { return m_backgroundPen; } - inline const wxBrush *GetBackgroundBrush(void) const { return m_backgroundBrush; } - - inline void SetViewRect(const wxRect& rect) { m_tabViewRect = rect; } - inline wxRect GetViewRect(void) const { return m_tabViewRect; } - - // Calculate tab width to fit to view, and optionally adjust the view - // to fit the tabs exactly. - int CalculateTabWidth(int noTabs, bool adjustView = false); - - inline void SetTabStyle(long style) { m_tabStyle = style; } - inline long GetTabStyle(void) const { return m_tabStyle; } - - inline void SetTabSize(int w, int h) { m_tabWidth = w; m_tabHeight = h; } - inline int GetTabWidth(void) const { return m_tabWidth; } - inline int GetTabHeight(void) const { return m_tabHeight; } - inline void SetTabSelectionHeight(int h) { m_tabSelectionHeight = h; } - inline int GetTabSelectionHeight(void) const { return m_tabSelectionHeight; } - - // Returns the total height of the tabs component -- this may be several - // times the height of a tab, if there are several tab layers (rows). - int GetTotalTabHeight(); - - inline int GetTopMargin(void) const { return m_topMargin; } - inline void SetTopMargin(int margin) { m_topMargin = margin; } - - void SetTabSelection(int sel, bool activateTool = true); - inline int GetTabSelection() const { return m_tabSelection; } - - // Find tab control for id - wxTabControl *FindTabControlForId(int id) const ; - - // Find tab control for layer, position (starting from zero) - wxTabControl *FindTabControlForPosition(int layer, int position) const ; - - inline int GetHorizontalTabOffset() const { return m_tabHorizontalOffset; } - inline int GetHorizontalTabSpacing() const { return m_tabHorizontalSpacing; } - inline void SetHorizontalTabOffset(int sp) { m_tabHorizontalOffset = sp; } - inline void SetHorizontalTabSpacing(int sp) { m_tabHorizontalSpacing = sp; } - - inline void SetVerticalTabTextSpacing(int s) { m_tabVerticalTextSpacing = s; } - inline int GetVerticalTabTextSpacing() const { return m_tabVerticalTextSpacing; } - - inline wxFont *GetTabFont() const { return (wxFont*) & m_tabFont; } - inline void SetTabFont(const wxFont& f) { m_tabFont = f; } - - inline wxFont *GetSelectedTabFont() const { return (wxFont*) & m_tabSelectedFont; } - inline void SetSelectedTabFont(const wxFont& f) { m_tabSelectedFont = f; } - // Find the node and the column at which this control is positioned. - wxList::compatibility_iterator FindTabNodeAndColumn(wxTabControl *control, int *col) const ; - - // Do the necessary to change to this tab - virtual bool ChangeTab(wxTabControl *control); - - // Move the selected tab to the bottom layer, if necessary, - // without calling app activation code - bool MoveSelectionTab(wxTabControl *control); - - inline int GetNumberOfTabs() const { return m_noTabs; } - -protected: - // List of layers, from front to back. - wxTabLayerList m_layers; - - // Selected tab - int m_tabSelection; - - // Usual tab height - int m_tabHeight; - - // The height of the selected tab - int m_tabSelectionHeight; - - // Usual tab width - int m_tabWidth; - - // Space between tabs - int m_tabHorizontalSpacing; - - // Space between top of normal tab and text - int m_tabVerticalTextSpacing; - - // Horizontal offset of each tab row above the first - int m_tabHorizontalOffset; - - // The distance between the bottom of the first tab row - // and the top of the client area (i.e. the margin) - int m_topMargin; - - // The position and size of the view above which the tabs are placed. - // I.e., the internal client area of the sheet. - wxRect m_tabViewRect; - - // Bitlist of styles - long m_tabStyle; - - // Colours - wxColour m_highlightColour; - wxColour m_shadowColour; - wxColour m_backgroundColour; - wxColour m_textColour; - - // Pen and brush cache - const wxPen* m_highlightPen; - const wxPen* m_shadowPen; - const wxPen* m_backgroundPen; - const wxBrush* m_backgroundBrush; - - wxFont m_tabFont; - wxFont m_tabSelectedFont; - - int m_noTabs; - - wxWindow* m_window; -}; - -/* - * A dialog box class that is tab-friendly - */ - -class WXDLLIMPEXP_CORE wxTabbedDialog : public wxDialog -{ - wxDECLARE_DYNAMIC_CLASS(wxTabbedDialog); - -public: - wxTabbedDialog(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long windowStyle = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr); - virtual ~wxTabbedDialog(); - - wxTabView *GetTabView() const { return m_tabView; } - void SetTabView(wxTabView *v) { m_tabView = v; } - - void OnCloseWindow(wxCloseEvent& event); - void OnMouseEvent(wxMouseEvent& event); - void OnPaint(wxPaintEvent& event); - -protected: - wxTabView* m_tabView; - -private: - wxDECLARE_EVENT_TABLE(); -}; - -/* - * A panel class that is tab-friendly - */ - -class WXDLLIMPEXP_CORE wxTabbedPanel : public wxPanel -{ - wxDECLARE_DYNAMIC_CLASS(wxTabbedPanel); - -public: - wxTabbedPanel(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long windowStyle = 0, - const wxString& name = wxPanelNameStr); - virtual ~wxTabbedPanel(); - - wxTabView *GetTabView() const { return m_tabView; } - void SetTabView(wxTabView *v) { m_tabView = v; } - - void OnMouseEvent(wxMouseEvent& event); - void OnPaint(wxPaintEvent& event); - -protected: - wxTabView* m_tabView; - -private: - wxDECLARE_EVENT_TABLE(); -}; - -WX_DECLARE_HASH_MAP(int, wxWindow*, wxIntegerHash, wxIntegerEqual, - wxIntToWindowHashMap); - -class WXDLLIMPEXP_CORE wxPanelTabView : public wxTabView -{ - wxDECLARE_DYNAMIC_CLASS(wxPanelTabView); - -public: - wxPanelTabView(wxPanel *pan, long style = wxTAB_STYLE_DRAW_BOX | wxTAB_STYLE_COLOUR_INTERIOR); - virtual ~wxPanelTabView(void); - - // Called when a tab is activated - virtual void OnTabActivate(int activateId, int deactivateId); - - // Specific to this class - void AddTabWindow(int id, wxWindow *window); - wxWindow *GetTabWindow(int id) const ; - void ClearWindows(bool deleteWindows = true); - wxWindow *GetCurrentWindow() const { return m_currentWindow; } - - void ShowWindowForTab(int id); - // wxList& GetWindows() const { return (wxList&) m_tabWindows; } - -protected: - // List of panels, one for each tab. Indexed - // by tab ID. - wxIntToWindowHashMap m_tabWindows; - wxWindow* m_currentWindow; - wxPanel* m_panel; -}; - -#endif - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/textdlgg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/textdlgg.h deleted file mode 100644 index a3749844..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/textdlgg.h +++ /dev/null @@ -1,149 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/textdlgg.h -// Purpose: wxTextEntryDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTDLGG_H_ -#define _WX_TEXTDLGG_H_ - -#include "wx/defs.h" - -#if wxUSE_TEXTDLG - -#include "wx/dialog.h" - -#if wxUSE_VALIDATORS -#include "wx/valtext.h" -#include "wx/textctrl.h" -#endif - -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; - -extern WXDLLIMPEXP_DATA_CORE(const char) wxGetTextFromUserPromptStr[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxGetPasswordFromUserPromptStr[]; - -#define wxTextEntryDialogStyle (wxOK | wxCANCEL | wxCENTRE) - -// ---------------------------------------------------------------------------- -// wxTextEntryDialog: a dialog with text control, [ok] and [cancel] buttons -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTextEntryDialog : public wxDialog -{ -public: - wxTextEntryDialog() - { - m_textctrl = NULL; - } - - wxTextEntryDialog(wxWindow *parent, - const wxString& message, - const wxString& caption = wxGetTextFromUserPromptStr, - const wxString& value = wxEmptyString, - long style = wxTextEntryDialogStyle, - const wxPoint& pos = wxDefaultPosition) - { - Create(parent, message, caption, value, style, pos); - } - - bool Create(wxWindow *parent, - const wxString& message, - const wxString& caption = wxGetTextFromUserPromptStr, - const wxString& value = wxEmptyString, - long style = wxTextEntryDialogStyle, - const wxPoint& pos = wxDefaultPosition); - - void SetValue(const wxString& val); - wxString GetValue() const { return m_value; } - - void SetMaxLength(unsigned long len); - - void ForceUpper(); - -#if wxUSE_VALIDATORS - void SetTextValidator( const wxTextValidator& validator ); -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED( void SetTextValidator( long style ) ); -#endif - void SetTextValidator( wxTextValidatorStyle style = wxFILTER_NONE ); - wxTextValidator* GetTextValidator() { return (wxTextValidator*)m_textctrl->GetValidator(); } -#endif // wxUSE_VALIDATORS - - virtual bool TransferDataToWindow() wxOVERRIDE; - virtual bool TransferDataFromWindow() wxOVERRIDE; - - // implementation only - void OnOK(wxCommandEvent& event); - -protected: - wxTextCtrl *m_textctrl; - wxString m_value; - long m_dialogStyle; - -private: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxTextEntryDialog); - wxDECLARE_NO_COPY_CLASS(wxTextEntryDialog); -}; - -// ---------------------------------------------------------------------------- -// wxPasswordEntryDialog: dialog with password control, [ok] and [cancel] -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPasswordEntryDialog : public wxTextEntryDialog -{ -public: - wxPasswordEntryDialog() { } - wxPasswordEntryDialog(wxWindow *parent, - const wxString& message, - const wxString& caption = wxGetPasswordFromUserPromptStr, - const wxString& value = wxEmptyString, - long style = wxTextEntryDialogStyle, - const wxPoint& pos = wxDefaultPosition) - { - Create(parent, message, caption, value, style, pos); - } - - bool Create(wxWindow *parent, - const wxString& message, - const wxString& caption = wxGetPasswordFromUserPromptStr, - const wxString& value = wxEmptyString, - long style = wxTextEntryDialogStyle, - const wxPoint& pos = wxDefaultPosition); - - -private: - wxDECLARE_DYNAMIC_CLASS(wxPasswordEntryDialog); - wxDECLARE_NO_COPY_CLASS(wxPasswordEntryDialog); -}; - -// ---------------------------------------------------------------------------- -// function to get a string from user -// ---------------------------------------------------------------------------- - -WXDLLIMPEXP_CORE wxString - wxGetTextFromUser(const wxString& message, - const wxString& caption = wxGetTextFromUserPromptStr, - const wxString& default_value = wxEmptyString, - wxWindow *parent = NULL, - wxCoord x = wxDefaultCoord, - wxCoord y = wxDefaultCoord, - bool centre = true); - -WXDLLIMPEXP_CORE wxString - wxGetPasswordFromUser(const wxString& message, - const wxString& caption = wxGetPasswordFromUserPromptStr, - const wxString& default_value = wxEmptyString, - wxWindow *parent = NULL, - wxCoord x = wxDefaultCoord, - wxCoord y = wxDefaultCoord, - bool centre = true); - -#endif - // wxUSE_TEXTDLG -#endif // _WX_TEXTDLGG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/timectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/timectrl.h deleted file mode 100644 index 20b02498..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/timectrl.h +++ /dev/null @@ -1,69 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/timectrl.h -// Purpose: Generic implementation of wxTimePickerCtrl. -// Author: Paul Breen, Vadim Zeitlin -// Created: 2011-09-22 -// Copyright: (c) 2011 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_TIMECTRL_H_ -#define _WX_GENERIC_TIMECTRL_H_ - -#include "wx/containr.h" -#include "wx/compositewin.h" - -class WXDLLIMPEXP_ADV wxTimePickerCtrlGeneric - : public wxCompositeWindow< wxNavigationEnabled > -{ -public: - typedef wxCompositeWindow< wxNavigationEnabled > Base; - - // Creating the control. - wxTimePickerCtrlGeneric() { Init(); } - virtual ~wxTimePickerCtrlGeneric(); - wxTimePickerCtrlGeneric(wxWindow *parent, - wxWindowID id, - const wxDateTime& date = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTP_DEFAULT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTimePickerCtrlNameStr) - { - Init(); - - (void)Create(parent, id, date, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxDateTime& date = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTP_DEFAULT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTimePickerCtrlNameStr); - - // Implement pure virtual wxTimePickerCtrlBase methods. - virtual void SetValue(const wxDateTime& date); - virtual wxDateTime GetValue() const; - -protected: - virtual wxSize DoGetBestSize() const; - - virtual void DoMoveWindow(int x, int y, int width, int height); - -private: - void Init(); - - // Return the list of the windows composing this one. - virtual wxWindowList GetCompositeWindowParts() const; - - // Implementation data. - class wxTimePickerGenericImpl* m_impl; - - wxDECLARE_NO_COPY_CLASS(wxTimePickerCtrlGeneric); -}; - -#endif // _WX_GENERIC_TIMECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/treectlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/treectlg.h deleted file mode 100644 index 4fec7000..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/treectlg.h +++ /dev/null @@ -1,390 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/treectlg.h -// Purpose: wxTreeCtrl class -// Author: Robert Roebling -// Modified by: -// Created: 01/02/97 -// Copyright: (c) 1997,1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _GENERIC_TREECTRL_H_ -#define _GENERIC_TREECTRL_H_ - -#if wxUSE_TREECTRL - -#include "wx/scrolwin.h" -#include "wx/pen.h" - -// ----------------------------------------------------------------------------- -// forward declaration -// ----------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxGenericTreeItem; - -class WXDLLIMPEXP_FWD_CORE wxTreeItemData; - -class WXDLLIMPEXP_FWD_CORE wxTreeRenameTimer; -class WXDLLIMPEXP_FWD_CORE wxTreeFindTimer; -class WXDLLIMPEXP_FWD_CORE wxTreeTextCtrl; -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; - -// ----------------------------------------------------------------------------- -// wxGenericTreeCtrl - the tree control -// ----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGenericTreeCtrl : public wxTreeCtrlBase, - public wxScrollHelper -{ -public: - // creation - // -------- - - wxGenericTreeCtrl() : wxTreeCtrlBase(), wxScrollHelper(this) { Init(); } - - wxGenericTreeCtrl(wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_DEFAULT_STYLE, - const wxValidator &validator = wxDefaultValidator, - const wxString& name = wxTreeCtrlNameStr) - : wxTreeCtrlBase(), - wxScrollHelper(this) - { - Init(); - Create(parent, id, pos, size, style, validator, name); - } - - virtual ~wxGenericTreeCtrl(); - - bool Create(wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_DEFAULT_STYLE, - const wxValidator &validator = wxDefaultValidator, - const wxString& name = wxTreeCtrlNameStr); - - // implement base class pure virtuals - // ---------------------------------- - - virtual unsigned int GetCount() const wxOVERRIDE; - - virtual unsigned int GetIndent() const wxOVERRIDE { return m_indent; } - virtual void SetIndent(unsigned int indent) wxOVERRIDE; - - - virtual void SetImageList(wxImageList *imageList) wxOVERRIDE; - virtual void SetStateImageList(wxImageList *imageList) wxOVERRIDE; - - virtual wxString GetItemText(const wxTreeItemId& item) const wxOVERRIDE; - virtual int GetItemImage(const wxTreeItemId& item, - wxTreeItemIcon which = wxTreeItemIcon_Normal) const wxOVERRIDE; - virtual wxTreeItemData *GetItemData(const wxTreeItemId& item) const wxOVERRIDE; - virtual wxColour GetItemTextColour(const wxTreeItemId& item) const wxOVERRIDE; - virtual wxColour GetItemBackgroundColour(const wxTreeItemId& item) const wxOVERRIDE; - virtual wxFont GetItemFont(const wxTreeItemId& item) const wxOVERRIDE; - - virtual void SetItemText(const wxTreeItemId& item, const wxString& text) wxOVERRIDE; - virtual void SetItemImage(const wxTreeItemId& item, - int image, - wxTreeItemIcon which = wxTreeItemIcon_Normal) wxOVERRIDE; - virtual void SetItemData(const wxTreeItemId& item, wxTreeItemData *data) wxOVERRIDE; - - virtual void SetItemHasChildren(const wxTreeItemId& item, bool has = true) wxOVERRIDE; - virtual void SetItemBold(const wxTreeItemId& item, bool bold = true) wxOVERRIDE; - virtual void SetItemDropHighlight(const wxTreeItemId& item, bool highlight = true) wxOVERRIDE; - virtual void SetItemTextColour(const wxTreeItemId& item, const wxColour& col) wxOVERRIDE; - virtual void SetItemBackgroundColour(const wxTreeItemId& item, const wxColour& col) wxOVERRIDE; - virtual void SetItemFont(const wxTreeItemId& item, const wxFont& font) wxOVERRIDE; - - virtual bool IsVisible(const wxTreeItemId& item) const wxOVERRIDE; - virtual bool ItemHasChildren(const wxTreeItemId& item) const wxOVERRIDE; - virtual bool IsExpanded(const wxTreeItemId& item) const wxOVERRIDE; - virtual bool IsSelected(const wxTreeItemId& item) const wxOVERRIDE; - virtual bool IsBold(const wxTreeItemId& item) const wxOVERRIDE; - - virtual size_t GetChildrenCount(const wxTreeItemId& item, - bool recursively = true) const wxOVERRIDE; - - // navigation - // ---------- - - virtual wxTreeItemId GetRootItem() const wxOVERRIDE { return m_anchor; } - virtual wxTreeItemId GetSelection() const wxOVERRIDE - { - wxASSERT_MSG( !HasFlag(wxTR_MULTIPLE), - wxT("must use GetSelections() with this control") ); - - return m_current; - } - virtual size_t GetSelections(wxArrayTreeItemIds&) const wxOVERRIDE; - virtual wxTreeItemId GetFocusedItem() const wxOVERRIDE { return m_current; } - - virtual void ClearFocusedItem() wxOVERRIDE; - virtual void SetFocusedItem(const wxTreeItemId& item) wxOVERRIDE; - - virtual wxTreeItemId GetItemParent(const wxTreeItemId& item) const wxOVERRIDE; - virtual wxTreeItemId GetFirstChild(const wxTreeItemId& item, - wxTreeItemIdValue& cookie) const wxOVERRIDE; - virtual wxTreeItemId GetNextChild(const wxTreeItemId& item, - wxTreeItemIdValue& cookie) const wxOVERRIDE; - virtual wxTreeItemId GetLastChild(const wxTreeItemId& item) const wxOVERRIDE; - virtual wxTreeItemId GetNextSibling(const wxTreeItemId& item) const wxOVERRIDE; - virtual wxTreeItemId GetPrevSibling(const wxTreeItemId& item) const wxOVERRIDE; - - virtual wxTreeItemId GetFirstVisibleItem() const wxOVERRIDE; - virtual wxTreeItemId GetNextVisible(const wxTreeItemId& item) const wxOVERRIDE; - virtual wxTreeItemId GetPrevVisible(const wxTreeItemId& item) const wxOVERRIDE; - - - // operations - // ---------- - - virtual wxTreeItemId AddRoot(const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL) wxOVERRIDE; - - virtual void Delete(const wxTreeItemId& item) wxOVERRIDE; - virtual void DeleteChildren(const wxTreeItemId& item) wxOVERRIDE; - virtual void DeleteAllItems() wxOVERRIDE; - - virtual void Expand(const wxTreeItemId& item) wxOVERRIDE; - virtual void Collapse(const wxTreeItemId& item) wxOVERRIDE; - virtual void CollapseAndReset(const wxTreeItemId& item) wxOVERRIDE; - virtual void Toggle(const wxTreeItemId& item) wxOVERRIDE; - - virtual void Unselect() wxOVERRIDE; - virtual void UnselectAll() wxOVERRIDE; - virtual void SelectItem(const wxTreeItemId& item, bool select = true) wxOVERRIDE; - virtual void SelectChildren(const wxTreeItemId& parent) wxOVERRIDE; - - virtual void EnsureVisible(const wxTreeItemId& item) wxOVERRIDE; - virtual void ScrollTo(const wxTreeItemId& item) wxOVERRIDE; - - virtual wxTextCtrl *EditLabel(const wxTreeItemId& item, - wxClassInfo* textCtrlClass = wxCLASSINFO(wxTextCtrl)) wxOVERRIDE; - virtual wxTextCtrl *GetEditControl() const wxOVERRIDE; - virtual void EndEditLabel(const wxTreeItemId& item, - bool discardChanges = false) wxOVERRIDE; - - virtual void EnableBellOnNoMatch(bool on = true) wxOVERRIDE; - - virtual void SortChildren(const wxTreeItemId& item) wxOVERRIDE; - - // items geometry - // -------------- - - virtual bool GetBoundingRect(const wxTreeItemId& item, - wxRect& rect, - bool textOnly = false) const wxOVERRIDE; - - - // this version specific methods - // ----------------------------- - - wxImageList *GetButtonsImageList() const { return m_imageListButtons; } - void SetButtonsImageList(wxImageList *imageList); - void AssignButtonsImageList(wxImageList *imageList); - - void SetDropEffectAboveItem( bool above = false ) { m_dropEffectAboveItem = above; } - bool GetDropEffectAboveItem() const { return m_dropEffectAboveItem; } - - wxTreeItemId GetNext(const wxTreeItemId& item) const; - - // implementation only from now on - - // overridden base class virtuals - virtual bool SetBackgroundColour(const wxColour& colour) wxOVERRIDE; - virtual bool SetForegroundColour(const wxColour& colour) wxOVERRIDE; - - virtual void Refresh(bool eraseBackground = true, const wxRect *rect = NULL) wxOVERRIDE; - - virtual bool SetFont( const wxFont &font ) wxOVERRIDE; - virtual void SetWindowStyleFlag(long styles) wxOVERRIDE; - - // callbacks - void OnPaint( wxPaintEvent &event ); - void OnSetFocus( wxFocusEvent &event ); - void OnKillFocus( wxFocusEvent &event ); - void OnKeyDown( wxKeyEvent &event ); - void OnChar( wxKeyEvent &event ); - void OnMouse( wxMouseEvent &event ); - void OnGetToolTip( wxTreeEvent &event ); - void OnSize( wxSizeEvent &event ); - void OnInternalIdle( ) wxOVERRIDE; - - virtual wxVisualAttributes GetDefaultAttributes() const wxOVERRIDE - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); - - // implementation helpers - void AdjustMyScrollbars(); - - WX_FORWARD_TO_SCROLL_HELPER() - -protected: - friend class wxGenericTreeItem; - friend class wxTreeRenameTimer; - friend class wxTreeFindTimer; - friend class wxTreeTextCtrl; - - wxFont m_normalFont; - wxFont m_boldFont; - - wxGenericTreeItem *m_anchor; - wxGenericTreeItem *m_current, - *m_key_current, - // A hint to select a parent item after deleting a child - *m_select_me; - unsigned short m_indent; - int m_lineHeight; - wxPen m_dottedPen; - wxBrush *m_hilightBrush, - *m_hilightUnfocusedBrush; - bool m_hasFocus; - bool m_dirty; - bool m_ownsImageListButtons; - bool m_isDragging; // true between BEGIN/END drag events - bool m_lastOnSame; // last click on the same item as prev - wxImageList *m_imageListButtons; - - int m_dragCount; - wxPoint m_dragStart; - wxGenericTreeItem *m_dropTarget; - wxCursor m_oldCursor; // cursor is changed while dragging - wxGenericTreeItem *m_oldSelection; - wxGenericTreeItem *m_underMouse; // for visual effects - - enum { NoEffect, BorderEffect, AboveEffect, BelowEffect } m_dndEffect; - wxGenericTreeItem *m_dndEffectItem; - - wxTreeTextCtrl *m_textCtrl; - - - wxTimer *m_renameTimer; - - // incremental search data - wxString m_findPrefix; - wxTimer *m_findTimer; - // This flag is set to 0 if the bell is disabled, 1 if it is enabled and -1 - // if it is globally enabled but has been temporarily disabled because we - // had already beeped for this particular search. - int m_findBell; - - bool m_dropEffectAboveItem; - - // the common part of all ctors - void Init(); - - // overridden wxWindow methods - virtual void DoThaw() wxOVERRIDE; - - // misc helpers - void SendDeleteEvent(wxGenericTreeItem *itemBeingDeleted); - - void DrawBorder(const wxTreeItemId& item); - void DrawLine(const wxTreeItemId& item, bool below); - void DrawDropEffect(wxGenericTreeItem *item); - - void DoSelectItem(const wxTreeItemId& id, - bool unselect_others = true, - bool extended_select = false); - - virtual int DoGetItemState(const wxTreeItemId& item) const wxOVERRIDE; - virtual void DoSetItemState(const wxTreeItemId& item, int state) wxOVERRIDE; - - virtual wxTreeItemId DoInsertItem(const wxTreeItemId& parent, - size_t previous, - const wxString& text, - int image, - int selectedImage, - wxTreeItemData *data) wxOVERRIDE; - virtual wxTreeItemId DoInsertAfter(const wxTreeItemId& parent, - const wxTreeItemId& idPrevious, - const wxString& text, - int image = -1, int selImage = -1, - wxTreeItemData *data = NULL) wxOVERRIDE; - virtual wxTreeItemId DoTreeHitTest(const wxPoint& point, int& flags) const wxOVERRIDE; - - // called by wxTextTreeCtrl when it marks itself for deletion - void ResetTextControl(); - - // find the first item starting with the given prefix after the given item - wxTreeItemId FindItem(const wxTreeItemId& id, const wxString& prefix) const; - - bool HasButtons() const { return HasFlag(wxTR_HAS_BUTTONS); } - - void CalculateLineHeight(); - int GetLineHeight(wxGenericTreeItem *item) const; - void PaintLevel( wxGenericTreeItem *item, wxDC& dc, int level, int &y ); - void PaintItem( wxGenericTreeItem *item, wxDC& dc); - - void CalculateLevel( wxGenericTreeItem *item, wxDC &dc, int level, int &y ); - void CalculatePositions(); - - void RefreshSubtree( wxGenericTreeItem *item ); - void RefreshLine( wxGenericTreeItem *item ); - - // redraw all selected items - void RefreshSelected(); - - // RefreshSelected() recursive helper - void RefreshSelectedUnder(wxGenericTreeItem *item); - - void OnRenameTimer(); - bool OnRenameAccept(wxGenericTreeItem *item, const wxString& value); - void OnRenameCancelled(wxGenericTreeItem *item); - - void FillArray(wxGenericTreeItem*, wxArrayTreeItemIds&) const; - void SelectItemRange( wxGenericTreeItem *item1, wxGenericTreeItem *item2 ); - bool TagAllChildrenUntilLast(wxGenericTreeItem *crt_item, wxGenericTreeItem *last_item, bool select); - bool TagNextChildren(wxGenericTreeItem *crt_item, wxGenericTreeItem *last_item, bool select); - void UnselectAllChildren( wxGenericTreeItem *item ); - void ChildrenClosing(wxGenericTreeItem* item); - - void DoDirtyProcessing(); - - virtual wxSize DoGetBestSize() const wxOVERRIDE; - -private: - // Reset the state of the last find (i.e. keyboard incremental search) - // operation. - void ResetFindState(); - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxGenericTreeCtrl); - wxDECLARE_NO_COPY_CLASS(wxGenericTreeCtrl); -}; - -#if !defined(__WXMSW__) || defined(__WXUNIVERSAL__) -/* - * wxTreeCtrl has to be a real class or we have problems with - * the run-time information. - */ - -class WXDLLIMPEXP_CORE wxTreeCtrl: public wxGenericTreeCtrl -{ - wxDECLARE_DYNAMIC_CLASS(wxTreeCtrl); - -public: - wxTreeCtrl() {} - - wxTreeCtrl(wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_DEFAULT_STYLE, - const wxValidator &validator = wxDefaultValidator, - const wxString& name = wxTreeCtrlNameStr) - : wxGenericTreeCtrl(parent, id, pos, size, style, validator, name) - { - } -}; -#endif // !__WXMSW__ || __WXUNIVERSAL__ - -#endif // wxUSE_TREECTRL - -#endif // _GENERIC_TREECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/wizard.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/wizard.h deleted file mode 100644 index 3fbe31a4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/generic/wizard.h +++ /dev/null @@ -1,169 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/generic/wizard.h -// Purpose: declaration of generic wxWizard class -// Author: Vadim Zeitlin -// Modified by: Robert Vazan (sizers) -// Created: 28.09.99 -// Copyright: (c) 1999 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_WIZARD_H_ -#define _WX_GENERIC_WIZARD_H_ - -// ---------------------------------------------------------------------------- -// wxWizard -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxButton; -class WXDLLIMPEXP_FWD_CORE wxStaticBitmap; -class WXDLLIMPEXP_FWD_ADV wxWizardEvent; -class WXDLLIMPEXP_FWD_CORE wxBoxSizer; -class WXDLLIMPEXP_FWD_ADV wxWizardSizer; - -class WXDLLIMPEXP_ADV wxWizard : public wxWizardBase -{ -public: - // ctor - wxWizard() { Init(); } - wxWizard(wxWindow *parent, - int id = wxID_ANY, - const wxString& title = wxEmptyString, - const wxBitmap& bitmap = wxNullBitmap, - const wxPoint& pos = wxDefaultPosition, - long style = wxDEFAULT_DIALOG_STYLE) - { - Init(); - Create(parent, id, title, bitmap, pos, style); - } - bool Create(wxWindow *parent, - int id = wxID_ANY, - const wxString& title = wxEmptyString, - const wxBitmap& bitmap = wxNullBitmap, - const wxPoint& pos = wxDefaultPosition, - long style = wxDEFAULT_DIALOG_STYLE); - void Init(); - virtual ~wxWizard(); - - // implement base class pure virtuals - virtual bool RunWizard(wxWizardPage *firstPage) wxOVERRIDE; - virtual wxWizardPage *GetCurrentPage() const wxOVERRIDE; - virtual void SetPageSize(const wxSize& size) wxOVERRIDE; - virtual wxSize GetPageSize() const wxOVERRIDE; - virtual void FitToPage(const wxWizardPage *firstPage) wxOVERRIDE; - virtual wxSizer *GetPageAreaSizer() const wxOVERRIDE; - virtual void SetBorder(int border) wxOVERRIDE; - - /// set/get bitmap - const wxBitmap& GetBitmap() const { return m_bitmap; } - void SetBitmap(const wxBitmap& bitmap); - - // implementation only from now on - // ------------------------------- - - // is the wizard running? - bool IsRunning() const { return m_page != NULL; } - - // show the prev/next page, but call TransferDataFromWindow on the current - // page first and return false without changing the page if - // TransferDataFromWindow() returns false - otherwise, returns true - virtual bool ShowPage(wxWizardPage *page, bool goingForward = true); - - // do fill the dialog with controls - // this is app-overridable to, for example, set help and tooltip text - virtual void DoCreateControls(); - - // Do the adaptation - virtual bool DoLayoutAdaptation() wxOVERRIDE; - - // Set/get bitmap background colour - void SetBitmapBackgroundColour(const wxColour& colour) { m_bitmapBackgroundColour = colour; } - const wxColour& GetBitmapBackgroundColour() const { return m_bitmapBackgroundColour; } - - // Set/get bitmap placement (centred, tiled etc.) - void SetBitmapPlacement(int placement) { m_bitmapPlacement = placement; } - int GetBitmapPlacement() const { return m_bitmapPlacement; } - - // Set/get minimum bitmap width - void SetMinimumBitmapWidth(int w) { m_bitmapMinimumWidth = w; } - int GetMinimumBitmapWidth() const { return m_bitmapMinimumWidth; } - - // Tile bitmap - static bool TileBitmap(const wxRect& rect, wxDC& dc, const wxBitmap& bitmap); - -protected: - // for compatibility only, doesn't do anything any more - void FinishLayout() { } - - // Do fit, and adjust to screen size if necessary - virtual void DoWizardLayout(); - - // Resize bitmap if necessary - virtual bool ResizeBitmap(wxBitmap& bmp); - - // was the dialog really created? - bool WasCreated() const { return m_btnPrev != NULL; } - - // event handlers - void OnCancel(wxCommandEvent& event); - void OnBackOrNext(wxCommandEvent& event); - void OnHelp(wxCommandEvent& event); - - void OnWizEvent(wxWizardEvent& event); - - void AddBitmapRow(wxBoxSizer *mainColumn); - void AddStaticLine(wxBoxSizer *mainColumn); - void AddBackNextPair(wxBoxSizer *buttonRow); - void AddButtonRow(wxBoxSizer *mainColumn); - - // the page size requested by user - wxSize m_sizePage; - - // the dialog position from the ctor - wxPoint m_posWizard; - - // wizard state - wxWizardPage *m_page; // the current page or NULL - wxWizardPage *m_firstpage; // the page RunWizard started on or NULL - wxBitmap m_bitmap; // the default bitmap to show - - // wizard controls - wxButton *m_btnPrev, // the "" or "Finish" button - wxStaticBitmap *m_statbmp; // the control for the bitmap - - // Border around page area sizer requested using SetBorder() - int m_border; - - // Whether RunWizard() was called - bool m_started; - - // Whether was modal (modeless has to be destroyed on finish or cancel) - bool m_wasModal; - - // True if pages are laid out using the sizer - bool m_usingSizer; - - // Page area sizer will be inserted here with padding - wxBoxSizer *m_sizerBmpAndPage; - - // Actual position and size of pages - wxWizardSizer *m_sizerPage; - - // Bitmap background colour if resizing bitmap - wxColour m_bitmapBackgroundColour; - - // Bitmap placement flags - int m_bitmapPlacement; - - // Minimum bitmap width - int m_bitmapMinimumWidth; - - friend class wxWizardSizer; - - wxDECLARE_DYNAMIC_CLASS(wxWizard); - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxWizard); -}; - -#endif // _WX_GENERIC_WIZARD_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/geometry.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/geometry.h deleted file mode 100644 index 0d9e4551..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/geometry.h +++ /dev/null @@ -1,802 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/geometry.h -// Purpose: Common Geometry Classes -// Author: Stefan Csomor -// Modified by: -// Created: 08/05/99 -// Copyright: (c) 1999 Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GEOMETRY_H_ -#define _WX_GEOMETRY_H_ - -#include "wx/defs.h" - -#if wxUSE_GEOMETRY - -#include "wx/utils.h" -#include "wx/gdicmn.h" -#include "wx/math.h" - -class WXDLLIMPEXP_FWD_BASE wxDataInputStream; -class WXDLLIMPEXP_FWD_BASE wxDataOutputStream; - -// clipping from Cohen-Sutherland - -enum wxOutCode -{ - wxInside = 0x00 , - wxOutLeft = 0x01 , - wxOutRight = 0x02 , - wxOutTop = 0x08 , - wxOutBottom = 0x04 -}; - -class WXDLLIMPEXP_CORE wxPoint2DInt -{ -public : - inline wxPoint2DInt(); - inline wxPoint2DInt( wxInt32 x , wxInt32 y ); - inline wxPoint2DInt( const wxPoint2DInt &pt ); - inline wxPoint2DInt( const wxPoint &pt ); - - // noops for this class, just return the coords - inline void GetFloor( wxInt32 *x , wxInt32 *y ) const; - inline void GetRounded( wxInt32 *x , wxInt32 *y ) const; - - inline wxDouble GetVectorLength() const; - wxDouble GetVectorAngle() const; - inline void SetVectorLength( wxDouble length ); - void SetVectorAngle( wxDouble degrees ); - // set the vector length to 1.0, preserving the angle - inline void Normalize(); - - inline wxDouble GetDistance( const wxPoint2DInt &pt ) const; - inline wxDouble GetDistanceSquare( const wxPoint2DInt &pt ) const; - inline wxInt32 GetDotProduct( const wxPoint2DInt &vec ) const; - inline wxInt32 GetCrossProduct( const wxPoint2DInt &vec ) const; - - // the reflection of this point - inline wxPoint2DInt operator-(); - - inline wxPoint2DInt& operator=(const wxPoint2DInt& pt); - inline wxPoint2DInt& operator+=(const wxPoint2DInt& pt); - inline wxPoint2DInt& operator-=(const wxPoint2DInt& pt); - inline wxPoint2DInt& operator*=(const wxPoint2DInt& pt); - inline wxPoint2DInt& operator*=(wxDouble n); - inline wxPoint2DInt& operator*=(wxInt32 n); - inline wxPoint2DInt& operator/=(const wxPoint2DInt& pt); - inline wxPoint2DInt& operator/=(wxDouble n); - inline wxPoint2DInt& operator/=(wxInt32 n); - inline operator wxPoint() const; - inline bool operator==(const wxPoint2DInt& pt) const; - inline bool operator!=(const wxPoint2DInt& pt) const; - -#if wxUSE_STREAMS - void WriteTo( wxDataOutputStream &stream ) const; - void ReadFrom( wxDataInputStream &stream ); -#endif // wxUSE_STREAMS - - wxInt32 m_x; - wxInt32 m_y; -}; - -inline wxPoint2DInt operator+(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2); -inline wxPoint2DInt operator-(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2); -inline wxPoint2DInt operator*(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2); -inline wxPoint2DInt operator*(wxInt32 n , const wxPoint2DInt& pt); -inline wxPoint2DInt operator*(wxDouble n , const wxPoint2DInt& pt); -inline wxPoint2DInt operator*(const wxPoint2DInt& pt , wxInt32 n); -inline wxPoint2DInt operator*(const wxPoint2DInt& pt , wxDouble n); -inline wxPoint2DInt operator/(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2); -inline wxPoint2DInt operator/(const wxPoint2DInt& pt , wxInt32 n); -inline wxPoint2DInt operator/(const wxPoint2DInt& pt , wxDouble n); - -inline wxPoint2DInt::wxPoint2DInt() -{ - m_x = 0; - m_y = 0; -} - -inline wxPoint2DInt::wxPoint2DInt( wxInt32 x , wxInt32 y ) -{ - m_x = x; - m_y = y; -} - -inline wxPoint2DInt::wxPoint2DInt( const wxPoint2DInt &pt ) -{ - m_x = pt.m_x; - m_y = pt.m_y; -} - -inline wxPoint2DInt::wxPoint2DInt( const wxPoint &pt ) -{ - m_x = pt.x; - m_y = pt.y; -} - -inline void wxPoint2DInt::GetFloor( wxInt32 *x , wxInt32 *y ) const -{ - if ( x ) - *x = m_x; - if ( y ) - *y = m_y; -} - -inline void wxPoint2DInt::GetRounded( wxInt32 *x , wxInt32 *y ) const -{ - GetFloor(x, y); -} - -inline wxDouble wxPoint2DInt::GetVectorLength() const -{ - // cast needed MIPSpro compiler under SGI - return sqrt( (double)(m_x)*(m_x) + (m_y)*(m_y) ); -} - -inline void wxPoint2DInt::SetVectorLength( wxDouble length ) -{ - wxDouble before = GetVectorLength(); - m_x = (wxInt32)(m_x * length / before); - m_y = (wxInt32)(m_y * length / before); -} - -inline void wxPoint2DInt::Normalize() -{ - SetVectorLength( 1 ); -} - -inline wxDouble wxPoint2DInt::GetDistance( const wxPoint2DInt &pt ) const -{ - return sqrt( GetDistanceSquare( pt ) ); -} - -inline wxDouble wxPoint2DInt::GetDistanceSquare( const wxPoint2DInt &pt ) const -{ - return ( (pt.m_x-m_x)*(pt.m_x-m_x) + (pt.m_y-m_y)*(pt.m_y-m_y) ); -} - -inline wxInt32 wxPoint2DInt::GetDotProduct( const wxPoint2DInt &vec ) const -{ - return ( m_x * vec.m_x + m_y * vec.m_y ); -} - -inline wxInt32 wxPoint2DInt::GetCrossProduct( const wxPoint2DInt &vec ) const -{ - return ( m_x * vec.m_y - vec.m_x * m_y ); -} - -inline wxPoint2DInt::operator wxPoint() const -{ - return wxPoint( m_x, m_y); -} - -inline wxPoint2DInt wxPoint2DInt::operator-() -{ - return wxPoint2DInt( -m_x, -m_y); -} - -inline wxPoint2DInt& wxPoint2DInt::operator=(const wxPoint2DInt& pt) -{ - if (this != &pt) - { - m_x = pt.m_x; - m_y = pt.m_y; - } - return *this; -} - -inline wxPoint2DInt& wxPoint2DInt::operator+=(const wxPoint2DInt& pt) -{ - m_x = m_x + pt.m_x; - m_y = m_y + pt.m_y; - return *this; -} - -inline wxPoint2DInt& wxPoint2DInt::operator-=(const wxPoint2DInt& pt) -{ - m_x = m_x - pt.m_x; - m_y = m_y - pt.m_y; - return *this; -} - -inline wxPoint2DInt& wxPoint2DInt::operator*=(const wxPoint2DInt& pt) -{ - m_x = m_x * pt.m_x; - m_y = m_y * pt.m_y; - return *this; -} - -inline wxPoint2DInt& wxPoint2DInt::operator/=(const wxPoint2DInt& pt) -{ - m_x = m_x / pt.m_x; - m_y = m_y / pt.m_y; - return *this; -} - -inline bool wxPoint2DInt::operator==(const wxPoint2DInt& pt) const -{ - return m_x == pt.m_x && m_y == pt.m_y; -} - -inline bool wxPoint2DInt::operator!=(const wxPoint2DInt& pt) const -{ - return m_x != pt.m_x || m_y != pt.m_y; -} - -inline wxPoint2DInt operator+(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2) -{ - return wxPoint2DInt( pt1.m_x + pt2.m_x , pt1.m_y + pt2.m_y ); -} - -inline wxPoint2DInt operator-(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2) -{ - return wxPoint2DInt( pt1.m_x - pt2.m_x , pt1.m_y - pt2.m_y ); -} - - -inline wxPoint2DInt operator*(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2) -{ - return wxPoint2DInt( pt1.m_x * pt2.m_x , pt1.m_y * pt2.m_y ); -} - -inline wxPoint2DInt operator*(wxInt32 n , const wxPoint2DInt& pt) -{ - return wxPoint2DInt( pt.m_x * n , pt.m_y * n ); -} - -inline wxPoint2DInt operator*(wxDouble n , const wxPoint2DInt& pt) -{ - return wxPoint2DInt( static_cast(pt.m_x * n) , - static_cast(pt.m_y * n) ); -} - -inline wxPoint2DInt operator*(const wxPoint2DInt& pt , wxInt32 n) -{ - return wxPoint2DInt( pt.m_x * n , pt.m_y * n ); -} - -inline wxPoint2DInt operator*(const wxPoint2DInt& pt , wxDouble n) -{ - return wxPoint2DInt( static_cast(pt.m_x * n) , - static_cast(pt.m_y * n) ); -} - -inline wxPoint2DInt operator/(const wxPoint2DInt& pt1 , const wxPoint2DInt& pt2) -{ - return wxPoint2DInt( pt1.m_x / pt2.m_x , pt1.m_y / pt2.m_y ); -} - -inline wxPoint2DInt operator/(const wxPoint2DInt& pt , wxInt32 n) -{ - return wxPoint2DInt( pt.m_x / n , pt.m_y / n ); -} - -inline wxPoint2DInt operator/(const wxPoint2DInt& pt , wxDouble n) -{ - return wxPoint2DInt( static_cast(pt.m_x / n) , - static_cast(pt.m_y / n) ); -} - -// wxPoint2Ds represent a point or a vector in a 2d coordinate system - -class WXDLLIMPEXP_CORE wxPoint2DDouble -{ -public : - inline wxPoint2DDouble(); - inline wxPoint2DDouble( wxDouble x , wxDouble y ); - inline wxPoint2DDouble( const wxPoint2DDouble &pt ); - wxPoint2DDouble( const wxPoint2DInt &pt ) - { m_x = (wxDouble) pt.m_x ; m_y = (wxDouble) pt.m_y ; } - wxPoint2DDouble( const wxPoint &pt ) - { m_x = (wxDouble) pt.x ; m_y = (wxDouble) pt.y ; } - - // two different conversions to integers, floor and rounding - inline void GetFloor( wxInt32 *x , wxInt32 *y ) const; - inline void GetRounded( wxInt32 *x , wxInt32 *y ) const; - - inline wxDouble GetVectorLength() const; - wxDouble GetVectorAngle() const ; - void SetVectorLength( wxDouble length ); - void SetVectorAngle( wxDouble degrees ); - // set the vector length to 1.0, preserving the angle - void Normalize(); - - inline wxDouble GetDistance( const wxPoint2DDouble &pt ) const; - inline wxDouble GetDistanceSquare( const wxPoint2DDouble &pt ) const; - inline wxDouble GetDotProduct( const wxPoint2DDouble &vec ) const; - inline wxDouble GetCrossProduct( const wxPoint2DDouble &vec ) const; - - // the reflection of this point - inline wxPoint2DDouble operator-(); - - inline wxPoint2DDouble& operator=(const wxPoint2DDouble& pt); - inline wxPoint2DDouble& operator+=(const wxPoint2DDouble& pt); - inline wxPoint2DDouble& operator-=(const wxPoint2DDouble& pt); - inline wxPoint2DDouble& operator*=(const wxPoint2DDouble& pt); - inline wxPoint2DDouble& operator*=(wxDouble n); - inline wxPoint2DDouble& operator*=(wxInt32 n); - inline wxPoint2DDouble& operator/=(const wxPoint2DDouble& pt); - inline wxPoint2DDouble& operator/=(wxDouble n); - inline wxPoint2DDouble& operator/=(wxInt32 n); - - inline bool operator==(const wxPoint2DDouble& pt) const; - inline bool operator!=(const wxPoint2DDouble& pt) const; - - wxDouble m_x; - wxDouble m_y; -}; - -inline wxPoint2DDouble operator+(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2); -inline wxPoint2DDouble operator-(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2); -inline wxPoint2DDouble operator*(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2); -inline wxPoint2DDouble operator*(wxDouble n , const wxPoint2DDouble& pt); -inline wxPoint2DDouble operator*(wxInt32 n , const wxPoint2DDouble& pt); -inline wxPoint2DDouble operator*(const wxPoint2DDouble& pt , wxDouble n); -inline wxPoint2DDouble operator*(const wxPoint2DDouble& pt , wxInt32 n); -inline wxPoint2DDouble operator/(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2); -inline wxPoint2DDouble operator/(const wxPoint2DDouble& pt , wxDouble n); -inline wxPoint2DDouble operator/(const wxPoint2DDouble& pt , wxInt32 n); - -inline wxPoint2DDouble::wxPoint2DDouble() -{ - m_x = 0.0; - m_y = 0.0; -} - -inline wxPoint2DDouble::wxPoint2DDouble( wxDouble x , wxDouble y ) -{ - m_x = x; - m_y = y; -} - -inline wxPoint2DDouble::wxPoint2DDouble( const wxPoint2DDouble &pt ) -{ - m_x = pt.m_x; - m_y = pt.m_y; -} - -inline void wxPoint2DDouble::GetFloor( wxInt32 *x , wxInt32 *y ) const -{ - *x = (wxInt32) floor( m_x ); - *y = (wxInt32) floor( m_y ); -} - -inline void wxPoint2DDouble::GetRounded( wxInt32 *x , wxInt32 *y ) const -{ - *x = (wxInt32) floor( m_x + 0.5 ); - *y = (wxInt32) floor( m_y + 0.5); -} - -inline wxDouble wxPoint2DDouble::GetVectorLength() const -{ - return sqrt( (m_x)*(m_x) + (m_y)*(m_y) ) ; -} - -inline void wxPoint2DDouble::SetVectorLength( wxDouble length ) -{ - wxDouble before = GetVectorLength() ; - m_x = (m_x * length / before) ; - m_y = (m_y * length / before) ; -} - -inline void wxPoint2DDouble::Normalize() -{ - SetVectorLength( 1 ); -} - -inline wxDouble wxPoint2DDouble::GetDistance( const wxPoint2DDouble &pt ) const -{ - return sqrt( GetDistanceSquare( pt ) ); -} - -inline wxDouble wxPoint2DDouble::GetDistanceSquare( const wxPoint2DDouble &pt ) const -{ - return ( (pt.m_x-m_x)*(pt.m_x-m_x) + (pt.m_y-m_y)*(pt.m_y-m_y) ); -} - -inline wxDouble wxPoint2DDouble::GetDotProduct( const wxPoint2DDouble &vec ) const -{ - return ( m_x * vec.m_x + m_y * vec.m_y ); -} - -inline wxDouble wxPoint2DDouble::GetCrossProduct( const wxPoint2DDouble &vec ) const -{ - return ( m_x * vec.m_y - vec.m_x * m_y ); -} - -inline wxPoint2DDouble wxPoint2DDouble::operator-() -{ - return wxPoint2DDouble( -m_x, -m_y); -} - -inline wxPoint2DDouble& wxPoint2DDouble::operator=(const wxPoint2DDouble& pt) -{ - if (this != &pt) - { - m_x = pt.m_x; - m_y = pt.m_y; - } - return *this; -} - -inline wxPoint2DDouble& wxPoint2DDouble::operator+=(const wxPoint2DDouble& pt) -{ - m_x = m_x + pt.m_x; - m_y = m_y + pt.m_y; - return *this; -} - -inline wxPoint2DDouble& wxPoint2DDouble::operator-=(const wxPoint2DDouble& pt) -{ - m_x = m_x - pt.m_x; - m_y = m_y - pt.m_y; - return *this; -} - -inline wxPoint2DDouble& wxPoint2DDouble::operator*=(const wxPoint2DDouble& pt) -{ - m_x = m_x * pt.m_x; - m_y = m_y * pt.m_y; - return *this; -} - -inline wxPoint2DDouble& wxPoint2DDouble::operator/=(const wxPoint2DDouble& pt) -{ - m_x = m_x / pt.m_x; - m_y = m_y / pt.m_y; - return *this; -} - -inline bool wxPoint2DDouble::operator==(const wxPoint2DDouble& pt) const -{ - return wxIsSameDouble(m_x, pt.m_x) && wxIsSameDouble(m_y, pt.m_y); -} - -inline bool wxPoint2DDouble::operator!=(const wxPoint2DDouble& pt) const -{ - return !(*this == pt); -} - -inline wxPoint2DDouble operator+(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2) -{ - return wxPoint2DDouble( pt1.m_x + pt2.m_x , pt1.m_y + pt2.m_y ); -} - -inline wxPoint2DDouble operator-(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2) -{ - return wxPoint2DDouble( pt1.m_x - pt2.m_x , pt1.m_y - pt2.m_y ); -} - - -inline wxPoint2DDouble operator*(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2) -{ - return wxPoint2DDouble( pt1.m_x * pt2.m_x , pt1.m_y * pt2.m_y ); -} - -inline wxPoint2DDouble operator*(wxDouble n , const wxPoint2DDouble& pt) -{ - return wxPoint2DDouble( pt.m_x * n , pt.m_y * n ); -} - -inline wxPoint2DDouble operator*(wxInt32 n , const wxPoint2DDouble& pt) -{ - return wxPoint2DDouble( pt.m_x * n , pt.m_y * n ); -} - -inline wxPoint2DDouble operator*(const wxPoint2DDouble& pt , wxDouble n) -{ - return wxPoint2DDouble( pt.m_x * n , pt.m_y * n ); -} - -inline wxPoint2DDouble operator*(const wxPoint2DDouble& pt , wxInt32 n) -{ - return wxPoint2DDouble( pt.m_x * n , pt.m_y * n ); -} - -inline wxPoint2DDouble operator/(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2) -{ - return wxPoint2DDouble( pt1.m_x / pt2.m_x , pt1.m_y / pt2.m_y ); -} - -inline wxPoint2DDouble operator/(const wxPoint2DDouble& pt , wxDouble n) -{ - return wxPoint2DDouble( pt.m_x / n , pt.m_y / n ); -} - -inline wxPoint2DDouble operator/(const wxPoint2DDouble& pt , wxInt32 n) -{ - return wxPoint2DDouble( pt.m_x / n , pt.m_y / n ); -} - -// wxRect2Ds are a axis-aligned rectangles, each side of the rect is parallel to the x- or m_y- axis. The rectangle is either defined by the -// top left and bottom right corner, or by the top left corner and size. A point is contained within the rectangle if -// left <= x < right and top <= m_y < bottom , thus it is a half open interval. - -class WXDLLIMPEXP_CORE wxRect2DDouble -{ -public: - wxRect2DDouble() - { m_x = m_y = m_width = m_height = 0; } - wxRect2DDouble(wxDouble x, wxDouble y, wxDouble w, wxDouble h) - { m_x = x; m_y = y; m_width = w; m_height = h; } -/* - wxRect2DDouble(const wxPoint2DDouble& topLeft, const wxPoint2DDouble& bottomRight); - wxRect2DDouble(const wxPoint2DDouble& pos, const wxSize& size); - wxRect2DDouble(const wxRect2DDouble& rect); -*/ - // single attribute accessors - - wxPoint2DDouble GetPosition() const - { return wxPoint2DDouble(m_x, m_y); } - wxSize GetSize() const - { return wxSize((int) m_width, (int) m_height); } - - // for the edge and corner accessors there are two setters counterparts, the Set.. functions keep the other corners at their - // position whenever sensible, the Move.. functions keep the size of the rect and move the other corners appropriately - - inline wxDouble GetLeft() const { return m_x; } - inline void SetLeft( wxDouble n ) { m_width += m_x - n; m_x = n; } - inline void MoveLeftTo( wxDouble n ) { m_x = n; } - inline wxDouble GetTop() const { return m_y; } - inline void SetTop( wxDouble n ) { m_height += m_y - n; m_y = n; } - inline void MoveTopTo( wxDouble n ) { m_y = n; } - inline wxDouble GetBottom() const { return m_y + m_height; } - inline void SetBottom( wxDouble n ) { m_height += n - (m_y+m_height);} - inline void MoveBottomTo( wxDouble n ) { m_y = n - m_height; } - inline wxDouble GetRight() const { return m_x + m_width; } - inline void SetRight( wxDouble n ) { m_width += n - (m_x+m_width) ; } - inline void MoveRightTo( wxDouble n ) { m_x = n - m_width; } - - inline wxPoint2DDouble GetLeftTop() const - { return wxPoint2DDouble( m_x , m_y ); } - inline void SetLeftTop( const wxPoint2DDouble &pt ) - { m_width += m_x - pt.m_x; m_height += m_y - pt.m_y; m_x = pt.m_x; m_y = pt.m_y; } - inline void MoveLeftTopTo( const wxPoint2DDouble &pt ) - { m_x = pt.m_x; m_y = pt.m_y; } - inline wxPoint2DDouble GetLeftBottom() const - { return wxPoint2DDouble( m_x , m_y + m_height ); } - inline void SetLeftBottom( const wxPoint2DDouble &pt ) - { m_width += m_x - pt.m_x; m_height += pt.m_y - (m_y+m_height) ; m_x = pt.m_x; } - inline void MoveLeftBottomTo( const wxPoint2DDouble &pt ) - { m_x = pt.m_x; m_y = pt.m_y - m_height; } - inline wxPoint2DDouble GetRightTop() const - { return wxPoint2DDouble( m_x+m_width , m_y ); } - inline void SetRightTop( const wxPoint2DDouble &pt ) - { m_width += pt.m_x - ( m_x + m_width ); m_height += m_y - pt.m_y; m_y = pt.m_y; } - inline void MoveRightTopTo( const wxPoint2DDouble &pt ) - { m_x = pt.m_x - m_width; m_y = pt.m_y; } - inline wxPoint2DDouble GetRightBottom() const - { return wxPoint2DDouble( m_x+m_width , m_y + m_height ); } - inline void SetRightBottom( const wxPoint2DDouble &pt ) - { m_width += pt.m_x - ( m_x + m_width ); m_height += pt.m_y - (m_y+m_height);} - inline void MoveRightBottomTo( const wxPoint2DDouble &pt ) - { m_x = pt.m_x - m_width; m_y = pt.m_y - m_height; } - inline wxPoint2DDouble GetCentre() const - { return wxPoint2DDouble( m_x+m_width/2 , m_y+m_height/2 ); } - inline void SetCentre( const wxPoint2DDouble &pt ) - { MoveCentreTo( pt ); } // since this is impossible without moving... - inline void MoveCentreTo( const wxPoint2DDouble &pt ) - { m_x += pt.m_x - (m_x+m_width/2) , m_y += pt.m_y -(m_y+m_height/2); } - inline wxOutCode GetOutCode( const wxPoint2DDouble &pt ) const - { return (wxOutCode) (( ( pt.m_x < m_x ) ? wxOutLeft : 0 ) + - ( ( pt.m_x > m_x + m_width ) ? wxOutRight : 0 ) + - ( ( pt.m_y < m_y ) ? wxOutTop : 0 ) + - ( ( pt.m_y > m_y + m_height ) ? wxOutBottom : 0 )); } - inline wxOutCode GetOutcode(const wxPoint2DDouble &pt) const - { return GetOutCode(pt) ; } - inline bool Contains( const wxPoint2DDouble &pt ) const - { return GetOutCode( pt ) == wxInside; } - inline bool Contains( const wxRect2DDouble &rect ) const - { return ( ( ( m_x <= rect.m_x ) && ( rect.m_x + rect.m_width <= m_x + m_width ) ) && - ( ( m_y <= rect.m_y ) && ( rect.m_y + rect.m_height <= m_y + m_height ) ) ); } - inline bool IsEmpty() const - { return m_width <= 0 || m_height <= 0; } - inline bool HaveEqualSize( const wxRect2DDouble &rect ) const - { return wxIsSameDouble(rect.m_width, m_width) && wxIsSameDouble(rect.m_height, m_height); } - - inline void Inset( wxDouble x , wxDouble y ) - { m_x += x; m_y += y; m_width -= 2 * x; m_height -= 2 * y; } - inline void Inset( wxDouble left , wxDouble top ,wxDouble right , wxDouble bottom ) - { m_x += left; m_y += top; m_width -= left + right; m_height -= top + bottom;} - inline void Offset( const wxPoint2DDouble &pt ) - { m_x += pt.m_x; m_y += pt.m_y; } - - void ConstrainTo( const wxRect2DDouble &rect ); - - inline wxPoint2DDouble Interpolate( wxInt32 widthfactor , wxInt32 heightfactor ) - { return wxPoint2DDouble( m_x + m_width * widthfactor , m_y + m_height * heightfactor ); } - - static void Intersect( const wxRect2DDouble &src1 , const wxRect2DDouble &src2 , wxRect2DDouble *dest ); - inline void Intersect( const wxRect2DDouble &otherRect ) - { Intersect( *this , otherRect , this ); } - inline wxRect2DDouble CreateIntersection( const wxRect2DDouble &otherRect ) const - { wxRect2DDouble result; Intersect( *this , otherRect , &result); return result; } - bool Intersects( const wxRect2DDouble &rect ) const; - - static void Union( const wxRect2DDouble &src1 , const wxRect2DDouble &src2 , wxRect2DDouble *dest ); - void Union( const wxRect2DDouble &otherRect ) - { Union( *this , otherRect , this ); } - void Union( const wxPoint2DDouble &pt ); - inline wxRect2DDouble CreateUnion( const wxRect2DDouble &otherRect ) const - { wxRect2DDouble result; Union( *this , otherRect , &result); return result; } - - inline void Scale( wxDouble f ) - { m_x *= f; m_y *= f; m_width *= f; m_height *= f;} - inline void Scale( wxInt32 num , wxInt32 denum ) - { m_x *= ((wxDouble)num)/((wxDouble)denum); m_y *= ((wxDouble)num)/((wxDouble)denum); - m_width *= ((wxDouble)num)/((wxDouble)denum); m_height *= ((wxDouble)num)/((wxDouble)denum);} - - wxRect2DDouble& operator = (const wxRect2DDouble& rect); - inline bool operator == (const wxRect2DDouble& rect) const - { return wxIsSameDouble(m_x, rect.m_x) && wxIsSameDouble(m_y, rect.m_y) && HaveEqualSize(rect); } - inline bool operator != (const wxRect2DDouble& rect) const - { return !(*this == rect); } - - wxDouble m_x; - wxDouble m_y; - wxDouble m_width; - wxDouble m_height; -}; - - -// wxRect2Ds are a axis-aligned rectangles, each side of the rect is parallel to the x- or m_y- axis. The rectangle is either defined by the -// top left and bottom right corner, or by the top left corner and size. A point is contained within the rectangle if -// left <= x < right and top <= m_y < bottom , thus it is a half open interval. - -class WXDLLIMPEXP_CORE wxRect2DInt -{ -public: - wxRect2DInt() { m_x = m_y = m_width = m_height = 0; } - wxRect2DInt( const wxRect& r ) { m_x = r.x ; m_y = r.y ; m_width = r.width ; m_height = r.height ; } - wxRect2DInt(wxInt32 x, wxInt32 y, wxInt32 w, wxInt32 h) { m_x = x; m_y = y; m_width = w; m_height = h; } - wxRect2DInt(const wxPoint2DInt& topLeft, const wxPoint2DInt& bottomRight); - inline wxRect2DInt(const wxPoint2DInt& pos, const wxSize& size); - inline wxRect2DInt(const wxRect2DInt& rect); - - // single attribute accessors - - wxPoint2DInt GetPosition() const { return wxPoint2DInt(m_x, m_y); } - wxSize GetSize() const { return wxSize(m_width, m_height); } - - // for the edge and corner accessors there are two setters counterparts, the Set.. functions keep the other corners at their - // position whenever sensible, the Move.. functions keep the size of the rect and move the other corners appropriately - - inline wxInt32 GetLeft() const { return m_x; } - inline void SetLeft( wxInt32 n ) { m_width += m_x - n; m_x = n; } - inline void MoveLeftTo( wxInt32 n ) { m_x = n; } - inline wxInt32 GetTop() const { return m_y; } - inline void SetTop( wxInt32 n ) { m_height += m_y - n; m_y = n; } - inline void MoveTopTo( wxInt32 n ) { m_y = n; } - inline wxInt32 GetBottom() const { return m_y + m_height; } - inline void SetBottom( wxInt32 n ) { m_height += n - (m_y+m_height);} - inline void MoveBottomTo( wxInt32 n ) { m_y = n - m_height; } - inline wxInt32 GetRight() const { return m_x + m_width; } - inline void SetRight( wxInt32 n ) { m_width += n - (m_x+m_width) ; } - inline void MoveRightTo( wxInt32 n ) { m_x = n - m_width; } - - inline wxPoint2DInt GetLeftTop() const { return wxPoint2DInt( m_x , m_y ); } - inline void SetLeftTop( const wxPoint2DInt &pt ) { m_width += m_x - pt.m_x; m_height += m_y - pt.m_y; m_x = pt.m_x; m_y = pt.m_y; } - inline void MoveLeftTopTo( const wxPoint2DInt &pt ) { m_x = pt.m_x; m_y = pt.m_y; } - inline wxPoint2DInt GetLeftBottom() const { return wxPoint2DInt( m_x , m_y + m_height ); } - inline void SetLeftBottom( const wxPoint2DInt &pt ) { m_width += m_x - pt.m_x; m_height += pt.m_y - (m_y+m_height) ; m_x = pt.m_x; } - inline void MoveLeftBottomTo( const wxPoint2DInt &pt ) { m_x = pt.m_x; m_y = pt.m_y - m_height; } - inline wxPoint2DInt GetRightTop() const { return wxPoint2DInt( m_x+m_width , m_y ); } - inline void SetRightTop( const wxPoint2DInt &pt ) { m_width += pt.m_x - ( m_x + m_width ); m_height += m_y - pt.m_y; m_y = pt.m_y; } - inline void MoveRightTopTo( const wxPoint2DInt &pt ) { m_x = pt.m_x - m_width; m_y = pt.m_y; } - inline wxPoint2DInt GetRightBottom() const { return wxPoint2DInt( m_x+m_width , m_y + m_height ); } - inline void SetRightBottom( const wxPoint2DInt &pt ) { m_width += pt.m_x - ( m_x + m_width ); m_height += pt.m_y - (m_y+m_height);} - inline void MoveRightBottomTo( const wxPoint2DInt &pt ) { m_x = pt.m_x - m_width; m_y = pt.m_y - m_height; } - inline wxPoint2DInt GetCentre() const { return wxPoint2DInt( m_x+m_width/2 , m_y+m_height/2 ); } - inline void SetCentre( const wxPoint2DInt &pt ) { MoveCentreTo( pt ); } // since this is impossible without moving... - inline void MoveCentreTo( const wxPoint2DInt &pt ) { m_x += pt.m_x - (m_x+m_width/2) , m_y += pt.m_y -(m_y+m_height/2); } - inline wxOutCode GetOutCode( const wxPoint2DInt &pt ) const - { return (wxOutCode) (( ( pt.m_x < m_x ) ? wxOutLeft : 0 ) + - ( ( pt.m_x >= m_x + m_width ) ? wxOutRight : 0 ) + - ( ( pt.m_y < m_y ) ? wxOutTop : 0 ) + - ( ( pt.m_y >= m_y + m_height ) ? wxOutBottom : 0 )); } - inline wxOutCode GetOutcode( const wxPoint2DInt &pt ) const - { return GetOutCode( pt ) ; } - inline bool Contains( const wxPoint2DInt &pt ) const - { return GetOutCode( pt ) == wxInside; } - inline bool Contains( const wxRect2DInt &rect ) const - { return ( ( ( m_x <= rect.m_x ) && ( rect.m_x + rect.m_width <= m_x + m_width ) ) && - ( ( m_y <= rect.m_y ) && ( rect.m_y + rect.m_height <= m_y + m_height ) ) ); } - inline bool IsEmpty() const - { return ( m_width <= 0 || m_height <= 0 ); } - inline bool HaveEqualSize( const wxRect2DInt &rect ) const - { return ( rect.m_width == m_width && rect.m_height == m_height ); } - - inline void Inset( wxInt32 x , wxInt32 y ) { m_x += x; m_y += y; m_width -= 2 * x; m_height -= 2 * y; } - inline void Inset( wxInt32 left , wxInt32 top ,wxInt32 right , wxInt32 bottom ) - { m_x += left; m_y += top; m_width -= left + right; m_height -= top + bottom;} - inline void Offset( const wxPoint2DInt &pt ) { m_x += pt.m_x; m_y += pt.m_y; } - void ConstrainTo( const wxRect2DInt &rect ); - inline wxPoint2DInt Interpolate( wxInt32 widthfactor , wxInt32 heightfactor ) { return wxPoint2DInt( m_x + m_width * widthfactor , m_y + m_height * heightfactor ); } - - static void Intersect( const wxRect2DInt &src1 , const wxRect2DInt &src2 , wxRect2DInt *dest ); - inline void Intersect( const wxRect2DInt &otherRect ) { Intersect( *this , otherRect , this ); } - inline wxRect2DInt CreateIntersection( const wxRect2DInt &otherRect ) const { wxRect2DInt result; Intersect( *this , otherRect , &result); return result; } - bool Intersects( const wxRect2DInt &rect ) const; - - static void Union( const wxRect2DInt &src1 , const wxRect2DInt &src2 , wxRect2DInt *dest ); - void Union( const wxRect2DInt &otherRect ) { Union( *this , otherRect , this ); } - void Union( const wxPoint2DInt &pt ); - inline wxRect2DInt CreateUnion( const wxRect2DInt &otherRect ) const { wxRect2DInt result; Union( *this , otherRect , &result); return result; } - - inline void Scale( wxInt32 f ) { m_x *= f; m_y *= f; m_width *= f; m_height *= f;} - inline void Scale( wxInt32 num , wxInt32 denum ) - { m_x *= ((wxInt32)num)/((wxInt32)denum); m_y *= ((wxInt32)num)/((wxInt32)denum); - m_width *= ((wxInt32)num)/((wxInt32)denum); m_height *= ((wxInt32)num)/((wxInt32)denum);} - - wxRect2DInt& operator = (const wxRect2DInt& rect); - bool operator == (const wxRect2DInt& rect) const; - bool operator != (const wxRect2DInt& rect) const; - -#if wxUSE_STREAMS - void WriteTo( wxDataOutputStream &stream ) const; - void ReadFrom( wxDataInputStream &stream ); -#endif // wxUSE_STREAMS - - wxInt32 m_x; - wxInt32 m_y; - wxInt32 m_width; - wxInt32 m_height; -}; - -inline wxRect2DInt::wxRect2DInt( const wxRect2DInt &r ) -{ - m_x = r.m_x; - m_y = r.m_y; - m_width = r.m_width; - m_height = r.m_height; -} - -inline wxRect2DInt::wxRect2DInt( const wxPoint2DInt &a , const wxPoint2DInt &b) -{ - m_x = wxMin( a.m_x , b.m_x ); - m_y = wxMin( a.m_y , b.m_y ); - m_width = abs( a.m_x - b.m_x ); - m_height = abs( a.m_y - b.m_y ); -} - -inline wxRect2DInt::wxRect2DInt( const wxPoint2DInt& pos, const wxSize& size) -{ - m_x = pos.m_x; - m_y = pos.m_y; - m_width = size.x; - m_height = size.y; -} - -inline bool wxRect2DInt::operator == (const wxRect2DInt& rect) const -{ - return (m_x==rect.m_x && m_y==rect.m_y && - m_width==rect.m_width && m_height==rect.m_height); -} - -inline bool wxRect2DInt::operator != (const wxRect2DInt& rect) const -{ - return !(*this == rect); -} - -class WXDLLIMPEXP_CORE wxTransform2D -{ -public : - virtual ~wxTransform2D() { } - virtual void Transform( wxPoint2DInt* pt )const = 0; - virtual void Transform( wxRect2DInt* r ) const; - virtual wxPoint2DInt Transform( const wxPoint2DInt &pt ) const; - virtual wxRect2DInt Transform( const wxRect2DInt &r ) const ; - - virtual void InverseTransform( wxPoint2DInt* pt ) const = 0; - virtual void InverseTransform( wxRect2DInt* r ) const ; - virtual wxPoint2DInt InverseTransform( const wxPoint2DInt &pt ) const ; - virtual wxRect2DInt InverseTransform( const wxRect2DInt &r ) const ; -}; - - -#endif // wxUSE_GEOMETRY - -#endif // _WX_GEOMETRY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gifdecod.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gifdecod.h deleted file mode 100644 index b0de4669..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/gifdecod.h +++ /dev/null @@ -1,113 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/gifdecod.h -// Purpose: wxGIFDecoder, GIF reader for wxImage and wxAnimation -// Author: Guillermo Rodriguez Garcia -// Version: 3.02 -// Copyright: (c) 1999 Guillermo Rodriguez Garcia -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GIFDECOD_H_ -#define _WX_GIFDECOD_H_ - -#include "wx/defs.h" - -#if wxUSE_STREAMS && wxUSE_GIF - -#include "wx/stream.h" -#include "wx/image.h" -#include "wx/animdecod.h" -#include "wx/dynarray.h" - -// internal utility used to store a frame in 8bit-per-pixel format -class GIFImage; - - -// -------------------------------------------------------------------------- -// Constants -// -------------------------------------------------------------------------- - -// Error codes: -// Note that the error code wxGIF_TRUNCATED means that the image itself -// is most probably OK, but the decoder didn't reach the end of the data -// stream; this means that if it was not reading directly from file, -// the stream will not be correctly positioned. -// -enum wxGIFErrorCode -{ - wxGIF_OK = 0, // everything was OK - wxGIF_INVFORMAT, // error in GIF header - wxGIF_MEMERR, // error allocating memory - wxGIF_TRUNCATED // file appears to be truncated -}; - -// -------------------------------------------------------------------------- -// wxGIFDecoder class -// -------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGIFDecoder : public wxAnimationDecoder -{ -public: - // constructor, destructor, etc. - wxGIFDecoder(); - ~wxGIFDecoder(); - - // get data of current frame - unsigned char* GetData(unsigned int frame) const; - unsigned char* GetPalette(unsigned int frame) const; - unsigned int GetNcolours(unsigned int frame) const; - int GetTransparentColourIndex(unsigned int frame) const; - wxColour GetTransparentColour(unsigned int frame) const wxOVERRIDE; - - virtual wxSize GetFrameSize(unsigned int frame) const wxOVERRIDE; - virtual wxPoint GetFramePosition(unsigned int frame) const wxOVERRIDE; - virtual wxAnimationDisposal GetDisposalMethod(unsigned int frame) const wxOVERRIDE; - virtual long GetDelay(unsigned int frame) const wxOVERRIDE; - - // GIFs can contain both static images and animations - bool IsAnimation() const - { return m_nFrames > 1; } - - // load function which returns more info than just Load(): - wxGIFErrorCode LoadGIF( wxInputStream& stream ); - - // free all internal frames - void Destroy(); - - // implementation of wxAnimationDecoder's pure virtuals - virtual bool Load( wxInputStream& stream ) wxOVERRIDE - { return LoadGIF(stream) == wxGIF_OK; } - - bool ConvertToImage(unsigned int frame, wxImage *image) const wxOVERRIDE; - - wxAnimationDecoder *Clone() const wxOVERRIDE - { return new wxGIFDecoder; } - wxAnimationType GetType() const wxOVERRIDE - { return wxANIMATION_TYPE_GIF; } - -private: - // wxAnimationDecoder pure virtual - virtual bool DoCanRead( wxInputStream& stream ) const wxOVERRIDE; - // modifies current stream position (see wxAnimationDecoder::CanRead) - - int getcode(wxInputStream& stream, int bits, int abfin); - wxGIFErrorCode dgif(wxInputStream& stream, - GIFImage *img, int interl, int bits); - - - // array of all frames - wxArrayPtrVoid m_frames; - - // decoder state vars - int m_restbits; // remaining valid bits - unsigned int m_restbyte; // remaining bytes in this block - unsigned int m_lastbyte; // last byte read - unsigned char m_buffer[256]; // buffer for reading - unsigned char *m_bufp; // pointer to next byte in buffer - - wxDECLARE_NO_COPY_CLASS(wxGIFDecoder); -}; - -#endif // wxUSE_STREAMS && wxUSE_GIF - -#endif // _WX_GIFDECOD_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/glcanvas.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/glcanvas.h deleted file mode 100644 index 545040d4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/glcanvas.h +++ /dev/null @@ -1,379 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/glcanvas.h -// Purpose: wxGLCanvas base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GLCANVAS_H_BASE_ -#define _WX_GLCANVAS_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_GLCANVAS - -#include "wx/app.h" -#include "wx/palette.h" -#include "wx/window.h" - -class WXDLLIMPEXP_FWD_GL wxGLCanvas; -class WXDLLIMPEXP_FWD_GL wxGLContext; - -// ---------------------------------------------------------------------------- -// Constants for attributes list -// ---------------------------------------------------------------------------- - -// Notice that not all implementation support options such as stereo, auxiliary -// buffers, alpha channel, and accumulator buffer, use IsDisplaySupported() to -// check for individual attributes support. -enum -{ - WX_GL_RGBA = 1, // use true color palette (on if no attrs specified) - WX_GL_BUFFER_SIZE, // bits for buffer if not WX_GL_RGBA - WX_GL_LEVEL, // 0 for main buffer, >0 for overlay, <0 for underlay - WX_GL_DOUBLEBUFFER, // use double buffering (on if no attrs specified) - WX_GL_STEREO, // use stereoscopic display - WX_GL_AUX_BUFFERS, // number of auxiliary buffers - WX_GL_MIN_RED, // use red buffer with most bits (> MIN_RED bits) - WX_GL_MIN_GREEN, // use green buffer with most bits (> MIN_GREEN bits) - WX_GL_MIN_BLUE, // use blue buffer with most bits (> MIN_BLUE bits) - WX_GL_MIN_ALPHA, // use alpha buffer with most bits (> MIN_ALPHA bits) - WX_GL_DEPTH_SIZE, // bits for Z-buffer (0,16,32) - WX_GL_STENCIL_SIZE, // bits for stencil buffer - WX_GL_MIN_ACCUM_RED, // use red accum buffer with most bits (> MIN_ACCUM_RED bits) - WX_GL_MIN_ACCUM_GREEN, // use green buffer with most bits (> MIN_ACCUM_GREEN bits) - WX_GL_MIN_ACCUM_BLUE, // use blue buffer with most bits (> MIN_ACCUM_BLUE bits) - WX_GL_MIN_ACCUM_ALPHA, // use alpha buffer with most bits (> MIN_ACCUM_ALPHA bits) - WX_GL_SAMPLE_BUFFERS, // 1 for multisampling support (antialiasing) - WX_GL_SAMPLES, // 4 for 2x2 antialiasing supersampling on most graphics cards - WX_GL_FRAMEBUFFER_SRGB,// capability for sRGB framebuffer - // Context attributes - WX_GL_CORE_PROFILE, // use an OpenGL core profile - WX_GL_MAJOR_VERSION, // major OpenGL version of the core profile - WX_GL_MINOR_VERSION, // minor OpenGL version of the core profile - wx_GL_COMPAT_PROFILE, // use compatible profile (use all versions features) - WX_GL_FORWARD_COMPAT, // forward compatible context. OpenGL >= 3.0 - WX_GL_ES2, // ES or ES2 context. - WX_GL_DEBUG, // create a debug context - WX_GL_ROBUST_ACCESS, // robustness. - WX_GL_NO_RESET_NOTIFY, // never deliver notification of reset events - WX_GL_LOSE_ON_RESET, // if graphics reset, all context state is lost - WX_GL_RESET_ISOLATION, // protect other apps or share contexts from reset side-effects - WX_GL_RELEASE_FLUSH, // on context release, flush pending commands - WX_GL_RELEASE_NONE // on context release, pending commands are not flushed -}; - -#define wxGLCanvasName wxT("GLCanvas") - -// ---------------------------------------------------------------------------- -// wxGLAttribsBase: OpenGL rendering attributes -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_GL wxGLAttribsBase -{ -public: - wxGLAttribsBase() { Reset(); } - - // Setters - void AddAttribute(int attribute) { m_GLValues.push_back(attribute); } - // Search for searchVal and combine the next value with combineVal - void AddAttribBits(int searchVal, int combineVal); - // ARB functions necessity - void SetNeedsARB(bool needsARB = true) { m_needsARB = needsARB; } - - // Delete contents - void Reset() - { - m_GLValues.clear(); - m_needsARB = false; - } - - // Accessors - const int* GetGLAttrs() const - { - return (m_GLValues.empty() || !m_GLValues[0]) ? NULL : &*m_GLValues.begin(); - } - - int GetSize() const { return (int)(m_GLValues.size()); } - - // ARB function (e.g. wglCreateContextAttribsARB) is needed - bool NeedsARB() const { return m_needsARB; } - -private: - wxVector m_GLValues; - bool m_needsARB; -}; - -// ---------------------------------------------------------------------------- -// wxGLContextAttrs: OpenGL rendering context attributes -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_GL wxGLContextAttrs : public wxGLAttribsBase -{ -public: - // Setters, allowing chained calls - wxGLContextAttrs& CoreProfile(); - wxGLContextAttrs& MajorVersion(int val); - wxGLContextAttrs& MinorVersion(int val); - wxGLContextAttrs& OGLVersion(int vmayor, int vminor) - { return MajorVersion(vmayor).MinorVersion(vminor); } - wxGLContextAttrs& CompatibilityProfile(); - wxGLContextAttrs& ForwardCompatible(); - wxGLContextAttrs& ES2(); - wxGLContextAttrs& DebugCtx(); - wxGLContextAttrs& Robust(); - wxGLContextAttrs& NoResetNotify(); - wxGLContextAttrs& LoseOnReset(); - wxGLContextAttrs& ResetIsolation(); - wxGLContextAttrs& ReleaseFlush(int val = 1); //'int' allows future values - wxGLContextAttrs& PlatformDefaults(); - void EndList(); // No more values can be chained - - // Currently only used for X11 context creation - bool x11Direct; // X11 direct render - bool renderTypeRGBA; -}; - -// ---------------------------------------------------------------------------- -// wxGLAttributes: canvas configuration -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_GL wxGLAttributes : public wxGLAttribsBase -{ -public: - // Setters, allowing chained calls - wxGLAttributes& RGBA(); - wxGLAttributes& BufferSize(int val); - wxGLAttributes& Level(int val); - wxGLAttributes& DoubleBuffer(); - wxGLAttributes& Stereo(); - wxGLAttributes& AuxBuffers(int val); - wxGLAttributes& MinRGBA(int mRed, int mGreen, int mBlue, int mAlpha); - wxGLAttributes& Depth(int val); - wxGLAttributes& Stencil(int val); - wxGLAttributes& MinAcumRGBA(int mRed, int mGreen, int mBlue, int mAlpha); - wxGLAttributes& PlatformDefaults(); - wxGLAttributes& Defaults(); - wxGLAttributes& SampleBuffers(int val); - wxGLAttributes& Samplers(int val); - wxGLAttributes& FrameBuffersRGB(); - void EndList(); // No more values can be chained -}; - -// ---------------------------------------------------------------------------- -// wxGLContextBase: OpenGL rendering context -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_GL wxGLContextBase : public wxObject -{ -public: - -// The derived class should provide a ctor with this signature: -// -// wxGLContext(wxGLCanvas *win, -// const wxGLContext *other = NULL, -// const wxGLContextAttrs *ctxAttrs = NULL); - - // set this context as the current one - virtual bool SetCurrent(const wxGLCanvas& win) const = 0; - - bool IsOK() { return m_isOk; } - -protected: - bool m_isOk; -}; - -// ---------------------------------------------------------------------------- -// wxGLCanvasBase: window which can be used for OpenGL rendering -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_GL wxGLCanvasBase : public wxWindow -{ -public: - // default ctor doesn't initialize the window, use Create() later - wxGLCanvasBase(); - - virtual ~wxGLCanvasBase(); - - - /* - The derived class should provide a ctor with this signature: - - wxGLCanvas(wxWindow *parent, - const wxGLAttributes& dispAttrs, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const wxPalette& palette = wxNullPalette); - */ - - // operations - // ---------- - - // set the given context associated with this window as the current one - bool SetCurrent(const wxGLContext& context) const; - - // flush the back buffer (if we have it) - virtual bool SwapBuffers() = 0; - - - // accessors - // --------- - - // check if the given attributes are supported without creating a canvas - static bool IsDisplaySupported(const wxGLAttributes& dispAttrs); - static bool IsDisplaySupported(const int *attribList); - -#if wxUSE_PALETTE - const wxPalette *GetPalette() const { return &m_palette; } -#endif // wxUSE_PALETTE - - // miscellaneous helper functions - // ------------------------------ - - // call glcolor() for the colour with the given name, return false if - // colour not found - bool SetColour(const wxString& colour); - - // return true if the extension with given name is supported - // - // notice that while this function is implemented for all of GLX, WGL and - // AGL the extensions names are usually not the same for different - // platforms and so the code using it still usually uses conditional - // compilation - static bool IsExtensionSupported(const char *extension); - - // Get the wxGLContextAttrs object filled with the context-related values - // of the list of attributes passed at ctor when no wxGLAttributes is used - // as a parameter - wxGLContextAttrs& GetGLCTXAttrs() { return m_GLCTXAttrs; } - - // deprecated methods using the implicit wxGLContext -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED( wxGLContext* GetContext() const ); - - wxDEPRECATED( void SetCurrent() ); - - wxDEPRECATED( void OnSize(wxSizeEvent& event) ); -#endif // WXWIN_COMPATIBILITY_2_8 - -#ifdef __WXUNIVERSAL__ - // resolve the conflict with wxWindowUniv::SetCurrent() - virtual bool SetCurrent(bool doit) { return wxWindow::SetCurrent(doit); } -#endif - -protected: - // override this to implement SetColour() in GL_INDEX_MODE - // (currently only implemented in wxX11 and wxMotif ports) - virtual int GetColourIndex(const wxColour& WXUNUSED(col)) { return -1; } - - // check if the given extension name is present in the space-separated list - // of extensions supported by the current implementation such as returned - // by glXQueryExtensionsString() or glGetString(GL_EXTENSIONS) - static bool IsExtensionInList(const char *list, const char *extension); - - // For the case of "int* attribList" at ctor is != 0 - wxGLContextAttrs m_GLCTXAttrs; - - // Extract pixel format and context attributes. - // Return false if an unknown attribute is found. - static bool ParseAttribList(const int* attribList, - wxGLAttributes& dispAttrs, - wxGLContextAttrs* ctxAttrs = NULL); - -#if wxUSE_PALETTE - // create default palette if we're not using RGBA mode - // (not supported in most ports) - virtual wxPalette CreateDefaultPalette() { return wxNullPalette; } - - wxPalette m_palette; -#endif // wxUSE_PALETTE - -#if WXWIN_COMPATIBILITY_2_8 - wxGLContext *m_glContext; -#endif // WXWIN_COMPATIBILITY_2_8 -}; - -// ---------------------------------------------------------------------------- -// wxGLApp: a special wxApp subclass for OpenGL applications which must be used -// to select a visual compatible with the given attributes -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_GL wxGLAppBase : public wxApp -{ -public: - wxGLAppBase() : wxApp() { } - - // use this in the constructor of the user-derived wxGLApp class to - // determine if an OpenGL rendering context with these attributes - // is available - returns true if so, false if not. - virtual bool InitGLVisual(const int *attribList) = 0; -}; - -#if defined(__WXMSW__) - #include "wx/msw/glcanvas.h" -#elif defined(__WXMOTIF__) || defined(__WXX11__) - #include "wx/x11/glcanvas.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/glcanvas.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/glcanvas.h" -#elif defined(__WXMAC__) - #include "wx/osx/glcanvas.h" -#elif defined(__WXQT__) - #include "wx/qt/glcanvas.h" -#else - #error "wxGLCanvas not supported in this wxWidgets port" -#endif - -// wxMac and wxMSW don't need anything extra in wxGLAppBase, so declare it here -#ifndef wxGL_APP_DEFINED - -class WXDLLIMPEXP_GL wxGLApp : public wxGLAppBase -{ -public: - wxGLApp() : wxGLAppBase() { } - - virtual bool InitGLVisual(const int *attribList); - -private: - wxDECLARE_DYNAMIC_CLASS(wxGLApp); -}; - -#endif // !wxGL_APP_DEFINED - -// ---------------------------------------------------------------------------- -// wxGLAPI: an API wrapper that allows the use of 'old' APIs even on OpenGL -// platforms that don't support it natively anymore, if the APIs are available -// it's a mere redirect -// ---------------------------------------------------------------------------- - -#ifndef wxUSE_OPENGL_EMULATION - #define wxUSE_OPENGL_EMULATION 0 -#endif - -class WXDLLIMPEXP_GL wxGLAPI : public wxObject -{ -public: - wxGLAPI(); - ~wxGLAPI(); - - static void glFrustum(GLfloat left, GLfloat right, GLfloat bottom, - GLfloat top, GLfloat zNear, GLfloat zFar); - static void glBegin(GLenum mode); - static void glTexCoord2f(GLfloat s, GLfloat t); - static void glVertex3f(GLfloat x, GLfloat y, GLfloat z); - static void glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz); - static void glColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a); - static void glColor3f(GLfloat r, GLfloat g, GLfloat b); - static void glEnd(); -}; - -#endif // wxUSE_GLCANVAS - -#endif // _WX_GLCANVAS_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/graphics.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/graphics.h deleted file mode 100644 index f8d016f2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/graphics.h +++ /dev/null @@ -1,905 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/graphics.h -// Purpose: graphics context header -// Author: Stefan Csomor -// Modified by: -// Created: -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GRAPHICS_H_ -#define _WX_GRAPHICS_H_ - -#include "wx/defs.h" - -#if wxUSE_GRAPHICS_CONTEXT - -#include "wx/affinematrix2d.h" -#include "wx/geometry.h" -#include "wx/colour.h" -#include "wx/dynarray.h" -#include "wx/font.h" -#include "wx/image.h" -#include "wx/vector.h" - -enum wxAntialiasMode -{ - wxANTIALIAS_NONE, // should be 0 - wxANTIALIAS_DEFAULT -}; - -enum wxInterpolationQuality -{ - // default interpolation - wxINTERPOLATION_DEFAULT, - // no interpolation - wxINTERPOLATION_NONE, - // fast interpolation, suited for interactivity - wxINTERPOLATION_FAST, - // better quality - wxINTERPOLATION_GOOD, - // best quality, not suited for interactivity - wxINTERPOLATION_BEST -}; - -enum wxCompositionMode -{ - // R = Result, S = Source, D = Destination, premultiplied with alpha - // Ra, Sa, Da their alpha components - - // classic Porter-Duff compositions - // http://keithp.com/~keithp/porterduff/p253-porter.pdf - - wxCOMPOSITION_INVALID = -1, /* indicates invalid/unsupported mode */ - wxCOMPOSITION_CLEAR, /* R = 0 */ - wxCOMPOSITION_SOURCE, /* R = S */ - wxCOMPOSITION_OVER, /* R = S + D*(1 - Sa) */ - wxCOMPOSITION_IN, /* R = S*Da */ - wxCOMPOSITION_OUT, /* R = S*(1 - Da) */ - wxCOMPOSITION_ATOP, /* R = S*Da + D*(1 - Sa) */ - - wxCOMPOSITION_DEST, /* R = D, essentially a noop */ - wxCOMPOSITION_DEST_OVER, /* R = S*(1 - Da) + D */ - wxCOMPOSITION_DEST_IN, /* R = D*Sa */ - wxCOMPOSITION_DEST_OUT, /* R = D*(1 - Sa) */ - wxCOMPOSITION_DEST_ATOP, /* R = S*(1 - Da) + D*Sa */ - wxCOMPOSITION_XOR, /* R = S*(1 - Da) + D*(1 - Sa) */ - - // mathematical compositions - wxCOMPOSITION_ADD /* R = S + D */ -}; - -class WXDLLIMPEXP_FWD_CORE wxWindowDC; -class WXDLLIMPEXP_FWD_CORE wxMemoryDC; -#if wxUSE_PRINTING_ARCHITECTURE -class WXDLLIMPEXP_FWD_CORE wxPrinterDC; -#endif -#ifdef __WXMSW__ -#if wxUSE_ENH_METAFILE -class WXDLLIMPEXP_FWD_CORE wxEnhMetaFileDC; -#endif -#endif -class WXDLLIMPEXP_FWD_CORE wxGraphicsContext; -class WXDLLIMPEXP_FWD_CORE wxGraphicsPath; -class WXDLLIMPEXP_FWD_CORE wxGraphicsMatrix; -class WXDLLIMPEXP_FWD_CORE wxGraphicsFigure; -class WXDLLIMPEXP_FWD_CORE wxGraphicsRenderer; -class WXDLLIMPEXP_FWD_CORE wxGraphicsPen; -class WXDLLIMPEXP_FWD_CORE wxGraphicsBrush; -class WXDLLIMPEXP_FWD_CORE wxGraphicsFont; -class WXDLLIMPEXP_FWD_CORE wxGraphicsBitmap; - -/* - * notes about the graphics context apis - * - * angles : are measured in radians, 0.0 being in direction of positiv x axis, PI/2 being - * in direction of positive y axis. - */ - -// Base class of all objects used for drawing in the new graphics API, the always point back to their -// originating rendering engine, there is no dynamic unloading of a renderer currently allowed, -// these references are not counted - -// -// The data used by objects like graphics pens etc is ref counted, in order to avoid unnecessary expensive -// duplication. Any operation on a shared instance that results in a modified state, uncouples this -// instance from the other instances that were shared - using copy on write semantics -// - -class WXDLLIMPEXP_FWD_CORE wxGraphicsObjectRefData; -class WXDLLIMPEXP_FWD_CORE wxGraphicsBitmapData; -class WXDLLIMPEXP_FWD_CORE wxGraphicsMatrixData; -class WXDLLIMPEXP_FWD_CORE wxGraphicsPathData; - -class WXDLLIMPEXP_CORE wxGraphicsObject : public wxObject -{ -public: - wxGraphicsObject(); - wxGraphicsObject( wxGraphicsRenderer* renderer ); - virtual ~wxGraphicsObject(); - - bool IsNull() const; - - // returns the renderer that was used to create this instance, or NULL if it has not been initialized yet - wxGraphicsRenderer* GetRenderer() const; - wxGraphicsObjectRefData* GetGraphicsData() const; -protected: - virtual wxObjectRefData* CreateRefData() const wxOVERRIDE; - virtual wxObjectRefData* CloneRefData(const wxObjectRefData* data) const wxOVERRIDE; - - wxDECLARE_DYNAMIC_CLASS(wxGraphicsObject); -}; - -class WXDLLIMPEXP_CORE wxGraphicsPen : public wxGraphicsObject -{ -public: - wxGraphicsPen() {} - virtual ~wxGraphicsPen() {} -private: - wxDECLARE_DYNAMIC_CLASS(wxGraphicsPen); -}; - -extern WXDLLIMPEXP_DATA_CORE(wxGraphicsPen) wxNullGraphicsPen; - -class WXDLLIMPEXP_CORE wxGraphicsBrush : public wxGraphicsObject -{ -public: - wxGraphicsBrush() {} - virtual ~wxGraphicsBrush() {} -private: - wxDECLARE_DYNAMIC_CLASS(wxGraphicsBrush); -}; - -extern WXDLLIMPEXP_DATA_CORE(wxGraphicsBrush) wxNullGraphicsBrush; - -class WXDLLIMPEXP_CORE wxGraphicsFont : public wxGraphicsObject -{ -public: - wxGraphicsFont() {} - virtual ~wxGraphicsFont() {} -private: - wxDECLARE_DYNAMIC_CLASS(wxGraphicsFont); -}; - -extern WXDLLIMPEXP_DATA_CORE(wxGraphicsFont) wxNullGraphicsFont; - -class WXDLLIMPEXP_CORE wxGraphicsBitmap : public wxGraphicsObject -{ -public: - wxGraphicsBitmap() {} - virtual ~wxGraphicsBitmap() {} - - // Convert bitmap to wxImage: this is more efficient than converting to - // wxBitmap first and then to wxImage and also works without X server - // connection under Unix that wxBitmap requires. -#if wxUSE_IMAGE - wxImage ConvertToImage() const; -#endif // wxUSE_IMAGE - - void* GetNativeBitmap() const; - - const wxGraphicsBitmapData* GetBitmapData() const - { return (const wxGraphicsBitmapData*) GetRefData(); } - wxGraphicsBitmapData* GetBitmapData() - { return (wxGraphicsBitmapData*) GetRefData(); } - -private: - wxDECLARE_DYNAMIC_CLASS(wxGraphicsBitmap); -}; - -extern WXDLLIMPEXP_DATA_CORE(wxGraphicsBitmap) wxNullGraphicsBitmap; - -class WXDLLIMPEXP_CORE wxGraphicsMatrix : public wxGraphicsObject -{ -public: - wxGraphicsMatrix() {} - - virtual ~wxGraphicsMatrix() {} - - // concatenates the matrix - virtual void Concat( const wxGraphicsMatrix *t ); - void Concat( const wxGraphicsMatrix &t ) { Concat( &t ); } - - // sets the matrix to the respective values - virtual void Set(wxDouble a=1.0, wxDouble b=0.0, wxDouble c=0.0, wxDouble d=1.0, - wxDouble tx=0.0, wxDouble ty=0.0); - - // gets the component valuess of the matrix - virtual void Get(wxDouble* a=NULL, wxDouble* b=NULL, wxDouble* c=NULL, - wxDouble* d=NULL, wxDouble* tx=NULL, wxDouble* ty=NULL) const; - - // makes this the inverse matrix - virtual void Invert(); - - // returns true if the elements of the transformation matrix are equal ? - virtual bool IsEqual( const wxGraphicsMatrix* t) const; - bool IsEqual( const wxGraphicsMatrix& t) const { return IsEqual( &t ); } - - // return true if this is the identity matrix - virtual bool IsIdentity() const; - - // - // transformation - // - - // add the translation to this matrix - virtual void Translate( wxDouble dx , wxDouble dy ); - - // add the scale to this matrix - virtual void Scale( wxDouble xScale , wxDouble yScale ); - - // add the rotation to this matrix (radians) - virtual void Rotate( wxDouble angle ); - - // - // apply the transforms - // - - // applies that matrix to the point - virtual void TransformPoint( wxDouble *x, wxDouble *y ) const; - - // applies the matrix except for translations - virtual void TransformDistance( wxDouble *dx, wxDouble *dy ) const; - - // returns the native representation - virtual void * GetNativeMatrix() const; - - const wxGraphicsMatrixData* GetMatrixData() const - { return (const wxGraphicsMatrixData*) GetRefData(); } - wxGraphicsMatrixData* GetMatrixData() - { return (wxGraphicsMatrixData*) GetRefData(); } - -private: - wxDECLARE_DYNAMIC_CLASS(wxGraphicsMatrix); -}; - -extern WXDLLIMPEXP_DATA_CORE(wxGraphicsMatrix) wxNullGraphicsMatrix; - -class WXDLLIMPEXP_CORE wxGraphicsPath : public wxGraphicsObject -{ -public: - wxGraphicsPath() {} - virtual ~wxGraphicsPath() {} - - // - // These are the path primitives from which everything else can be constructed - // - - // begins a new subpath at (x,y) - virtual void MoveToPoint( wxDouble x, wxDouble y ); - void MoveToPoint( const wxPoint2DDouble& p); - - // adds a straight line from the current point to (x,y) - virtual void AddLineToPoint( wxDouble x, wxDouble y ); - void AddLineToPoint( const wxPoint2DDouble& p); - - // adds a cubic Bezier curve from the current point, using two control points and an end point - virtual void AddCurveToPoint( wxDouble cx1, wxDouble cy1, wxDouble cx2, wxDouble cy2, wxDouble x, wxDouble y ); - void AddCurveToPoint( const wxPoint2DDouble& c1, const wxPoint2DDouble& c2, const wxPoint2DDouble& e); - - // adds another path - virtual void AddPath( const wxGraphicsPath& path ); - - // closes the current sub-path - virtual void CloseSubpath(); - - // gets the last point of the current path, (0,0) if not yet set - virtual void GetCurrentPoint( wxDouble* x, wxDouble* y) const; - wxPoint2DDouble GetCurrentPoint() const; - - // adds an arc of a circle centering at (x,y) with radius (r) from startAngle to endAngle - virtual void AddArc( wxDouble x, wxDouble y, wxDouble r, wxDouble startAngle, wxDouble endAngle, bool clockwise ); - void AddArc( const wxPoint2DDouble& c, wxDouble r, wxDouble startAngle, wxDouble endAngle, bool clockwise); - - // - // These are convenience functions which - if not available natively will be assembled - // using the primitives from above - // - - // adds a quadratic Bezier curve from the current point, using a control point and an end point - virtual void AddQuadCurveToPoint( wxDouble cx, wxDouble cy, wxDouble x, wxDouble y ); - - // appends a rectangle as a new closed subpath - virtual void AddRectangle( wxDouble x, wxDouble y, wxDouble w, wxDouble h ); - - // appends an ellipsis as a new closed subpath fitting the passed rectangle - virtual void AddCircle( wxDouble x, wxDouble y, wxDouble r ); - - // appends a an arc to two tangents connecting (current) to (x1,y1) and (x1,y1) to (x2,y2), also a straight line from (current) to (x1,y1) - virtual void AddArcToPoint( wxDouble x1, wxDouble y1 , wxDouble x2, wxDouble y2, wxDouble r ); - - // appends an ellipse - virtual void AddEllipse( wxDouble x, wxDouble y, wxDouble w, wxDouble h); - - // appends a rounded rectangle - virtual void AddRoundedRectangle( wxDouble x, wxDouble y, wxDouble w, wxDouble h, wxDouble radius); - - // returns the native path - virtual void * GetNativePath() const; - - // give the native path returned by GetNativePath() back (there might be some deallocations necessary) - virtual void UnGetNativePath(void *p)const; - - // transforms each point of this path by the matrix - virtual void Transform( const wxGraphicsMatrix& matrix ); - - // gets the bounding box enclosing all points (possibly including control points) - virtual void GetBox(wxDouble *x, wxDouble *y, wxDouble *w, wxDouble *h)const; - wxRect2DDouble GetBox()const; - - virtual bool Contains( wxDouble x, wxDouble y, wxPolygonFillMode fillStyle = wxODDEVEN_RULE)const; - bool Contains( const wxPoint2DDouble& c, wxPolygonFillMode fillStyle = wxODDEVEN_RULE)const; - - const wxGraphicsPathData* GetPathData() const - { return (const wxGraphicsPathData*) GetRefData(); } - wxGraphicsPathData* GetPathData() - { return (wxGraphicsPathData*) GetRefData(); } - -private: - wxDECLARE_DYNAMIC_CLASS(wxGraphicsPath); -}; - -extern WXDLLIMPEXP_DATA_CORE(wxGraphicsPath) wxNullGraphicsPath; - - -// Describes a single gradient stop. -class wxGraphicsGradientStop -{ -public: - wxGraphicsGradientStop(wxColour col = wxTransparentColour, - float pos = 0.) - : m_col(col), - m_pos(pos) - { - } - - // default copy ctor, assignment operator and dtor are ok - - const wxColour& GetColour() const { return m_col; } - void SetColour(const wxColour& col) { m_col = col; } - - float GetPosition() const { return m_pos; } - void SetPosition(float pos) - { - wxASSERT_MSG( pos >= 0 && pos <= 1, "invalid gradient stop position" ); - - m_pos = pos; - } - -private: - // The colour of this gradient band. - wxColour m_col; - - // Its starting position: 0 is the beginning and 1 is the end. - float m_pos; -}; - -// A collection of gradient stops ordered by their positions (from lowest to -// highest). The first stop (index 0, position 0.0) is always the starting -// colour and the last one (index GetCount() - 1, position 1.0) is the end -// colour. -class WXDLLIMPEXP_CORE wxGraphicsGradientStops -{ -public: - wxGraphicsGradientStops(wxColour startCol = wxTransparentColour, - wxColour endCol = wxTransparentColour) - { - // we can't use Add() here as it relies on having start/end stops as - // first/last array elements so do it manually - m_stops.push_back(wxGraphicsGradientStop(startCol, 0.f)); - m_stops.push_back(wxGraphicsGradientStop(endCol, 1.f)); - } - - // default copy ctor, assignment operator and dtor are ok for this class - - - // Add a stop in correct order. - void Add(const wxGraphicsGradientStop& stop); - void Add(wxColour col, float pos) { Add(wxGraphicsGradientStop(col, pos)); } - - // Get the number of stops. - size_t GetCount() const { return m_stops.size(); } - - // Return the stop at the given index (which must be valid). - wxGraphicsGradientStop Item(unsigned n) const { return m_stops.at(n); } - - // Get/set start and end colours. - void SetStartColour(wxColour col) - { m_stops[0].SetColour(col); } - wxColour GetStartColour() const - { return m_stops[0].GetColour(); } - void SetEndColour(wxColour col) - { m_stops[m_stops.size() - 1].SetColour(col); } - wxColour GetEndColour() const - { return m_stops[m_stops.size() - 1].GetColour(); } - -private: - // All the stops stored in ascending order of positions. - wxVector m_stops; -}; - -class WXDLLIMPEXP_CORE wxGraphicsContext : public wxGraphicsObject -{ -public: - wxGraphicsContext(wxGraphicsRenderer* renderer); - - virtual ~wxGraphicsContext(); - - static wxGraphicsContext* Create( const wxWindowDC& dc); - static wxGraphicsContext * Create( const wxMemoryDC& dc); -#if wxUSE_PRINTING_ARCHITECTURE - static wxGraphicsContext * Create( const wxPrinterDC& dc); -#endif -#ifdef __WXMSW__ -#if wxUSE_ENH_METAFILE - static wxGraphicsContext * Create( const wxEnhMetaFileDC& dc); -#endif -#endif - - static wxGraphicsContext* CreateFromNative( void * context ); - - static wxGraphicsContext* CreateFromNativeWindow( void * window ); - - static wxGraphicsContext* Create( wxWindow* window ); - -#if wxUSE_IMAGE - // Create a context for drawing onto a wxImage. The image life time must be - // greater than that of the context itself as when the context is destroyed - // it will copy its contents to the specified image. - static wxGraphicsContext* Create(wxImage& image); -#endif // wxUSE_IMAGE - - // create a context that can be used for measuring texts only, no drawing allowed - static wxGraphicsContext * Create(); - - // begin a new document (relevant only for printing / pdf etc) if there is a progress dialog, message will be shown - virtual bool StartDoc( const wxString& message ); - - // done with that document (relevant only for printing / pdf etc) - virtual void EndDoc(); - - // opens a new page (relevant only for printing / pdf etc) with the given size in points - // (if both are null the default page size will be used) - virtual void StartPage( wxDouble width = 0, wxDouble height = 0 ); - - // ends the current page (relevant only for printing / pdf etc) - virtual void EndPage(); - - // make sure that the current content of this context is immediately visible - virtual void Flush(); - - wxGraphicsPath CreatePath() const; - - virtual wxGraphicsPen CreatePen(const wxPen& pen) const; - - virtual wxGraphicsBrush CreateBrush(const wxBrush& brush ) const; - - // sets the brush to a linear gradient, starting at (x1,y1) and ending at - // (x2,y2) with the given boundary colours or the specified stops - wxGraphicsBrush - CreateLinearGradientBrush(wxDouble x1, wxDouble y1, - wxDouble x2, wxDouble y2, - const wxColour& c1, const wxColour& c2) const; - wxGraphicsBrush - CreateLinearGradientBrush(wxDouble x1, wxDouble y1, - wxDouble x2, wxDouble y2, - const wxGraphicsGradientStops& stops) const; - - // sets the brush to a radial gradient originating at (xo,yc) and ending - // on a circle around (xc,yc) with the given radius; the colours may be - // specified by just the two extremes or the full array of gradient stops - wxGraphicsBrush - CreateRadialGradientBrush(wxDouble xo, wxDouble yo, - wxDouble xc, wxDouble yc, wxDouble radius, - const wxColour& oColor, const wxColour& cColor) const; - - wxGraphicsBrush - CreateRadialGradientBrush(wxDouble xo, wxDouble yo, - wxDouble xc, wxDouble yc, wxDouble radius, - const wxGraphicsGradientStops& stops) const; - - // creates a font - virtual wxGraphicsFont CreateFont( const wxFont &font , const wxColour &col = *wxBLACK ) const; - virtual wxGraphicsFont CreateFont(double sizeInPixels, - const wxString& facename, - int flags = wxFONTFLAG_DEFAULT, - const wxColour& col = *wxBLACK) const; - - // create a native bitmap representation - virtual wxGraphicsBitmap CreateBitmap( const wxBitmap &bitmap ) const; -#if wxUSE_IMAGE - wxGraphicsBitmap CreateBitmapFromImage(const wxImage& image) const; -#endif // wxUSE_IMAGE - - // create a native bitmap representation - virtual wxGraphicsBitmap CreateSubBitmap( const wxGraphicsBitmap &bitmap, wxDouble x, wxDouble y, wxDouble w, wxDouble h ) const; - - // create a 'native' matrix corresponding to these values - virtual wxGraphicsMatrix CreateMatrix( wxDouble a=1.0, wxDouble b=0.0, wxDouble c=0.0, wxDouble d=1.0, - wxDouble tx=0.0, wxDouble ty=0.0) const; - - wxGraphicsMatrix CreateMatrix( const wxAffineMatrix2DBase& mat ) const - { - wxMatrix2D mat2D; - wxPoint2DDouble tr; - mat.Get(&mat2D, &tr); - - return CreateMatrix(mat2D.m_11, mat2D.m_12, mat2D.m_21, mat2D.m_22, - tr.m_x, tr.m_y); - } - - // push the current state of the context, ie the transformation matrix on a stack - virtual void PushState() = 0; - - // pops a stored state from the stack - virtual void PopState() = 0; - - // clips drawings to the region intersected with the current clipping region - virtual void Clip( const wxRegion ®ion ) = 0; - - // clips drawings to the rect intersected with the current clipping region - virtual void Clip( wxDouble x, wxDouble y, wxDouble w, wxDouble h ) = 0; - - // resets the clipping to original extent - virtual void ResetClip() = 0; - - // returns the native context - virtual void * GetNativeContext() = 0; - - // returns the current shape antialiasing mode - virtual wxAntialiasMode GetAntialiasMode() const { return m_antialias; } - - // sets the antialiasing mode, returns true if it supported - virtual bool SetAntialiasMode(wxAntialiasMode antialias) = 0; - - // returns the current interpolation quality - virtual wxInterpolationQuality GetInterpolationQuality() const { return m_interpolation; } - - // sets the interpolation quality, returns true if it supported - virtual bool SetInterpolationQuality(wxInterpolationQuality interpolation) = 0; - - // returns the current compositing operator - virtual wxCompositionMode GetCompositionMode() const { return m_composition; } - - // sets the compositing operator, returns true if it supported - virtual bool SetCompositionMode(wxCompositionMode op) = 0; - - // returns the size of the graphics context in device coordinates - void GetSize(wxDouble* width, wxDouble* height) const - { - if ( width ) - *width = m_width; - if ( height ) - *height = m_height; - } - - // returns the resolution of the graphics context in device points per inch - virtual void GetDPI( wxDouble* dpiX, wxDouble* dpiY); - -#if 0 - // sets the current alpha on this context - virtual void SetAlpha( wxDouble alpha ); - - // returns the alpha on this context - virtual wxDouble GetAlpha() const; -#endif - - // all rendering is done into a fully transparent temporary context - virtual void BeginLayer(wxDouble opacity) = 0; - - // composites back the drawings into the context with the opacity given at - // the BeginLayer call - virtual void EndLayer() = 0; - - // - // transformation : changes the current transformation matrix CTM of the context - // - - // translate - virtual void Translate( wxDouble dx , wxDouble dy ) = 0; - - // scale - virtual void Scale( wxDouble xScale , wxDouble yScale ) = 0; - - // rotate (radians) - virtual void Rotate( wxDouble angle ) = 0; - - // concatenates this transform with the current transform of this context - virtual void ConcatTransform( const wxGraphicsMatrix& matrix ) = 0; - - // sets the transform of this context - virtual void SetTransform( const wxGraphicsMatrix& matrix ) = 0; - - // gets the matrix of this context - virtual wxGraphicsMatrix GetTransform() const = 0; - // - // setting the paint - // - - // sets the pen - virtual void SetPen( const wxGraphicsPen& pen ); - - void SetPen( const wxPen& pen ); - - // sets the brush for filling - virtual void SetBrush( const wxGraphicsBrush& brush ); - - void SetBrush( const wxBrush& brush ); - - // sets the font - virtual void SetFont( const wxGraphicsFont& font ); - - void SetFont( const wxFont& font, const wxColour& colour ); - - - // strokes along a path with the current pen - virtual void StrokePath( const wxGraphicsPath& path ) = 0; - - // fills a path with the current brush - virtual void FillPath( const wxGraphicsPath& path, wxPolygonFillMode fillStyle = wxODDEVEN_RULE ) = 0; - - // draws a path by first filling and then stroking - virtual void DrawPath( const wxGraphicsPath& path, wxPolygonFillMode fillStyle = wxODDEVEN_RULE ); - - // - // text - // - - void DrawText( const wxString &str, wxDouble x, wxDouble y ) - { DoDrawText(str, x, y); } - - void DrawText( const wxString &str, wxDouble x, wxDouble y, wxDouble angle ) - { DoDrawRotatedText(str, x, y, angle); } - - void DrawText( const wxString &str, wxDouble x, wxDouble y, - const wxGraphicsBrush& backgroundBrush ) - { DoDrawFilledText(str, x, y, backgroundBrush); } - - void DrawText( const wxString &str, wxDouble x, wxDouble y, - wxDouble angle, const wxGraphicsBrush& backgroundBrush ) - { DoDrawRotatedFilledText(str, x, y, angle, backgroundBrush); } - - - virtual void GetTextExtent( const wxString &text, wxDouble *width, wxDouble *height, - wxDouble *descent = NULL, wxDouble *externalLeading = NULL ) const = 0; - - virtual void GetPartialTextExtents(const wxString& text, wxArrayDouble& widths) const = 0; - - // - // image support - // - - virtual void DrawBitmap( const wxGraphicsBitmap &bmp, wxDouble x, wxDouble y, wxDouble w, wxDouble h ) = 0; - - virtual void DrawBitmap( const wxBitmap &bmp, wxDouble x, wxDouble y, wxDouble w, wxDouble h ) = 0; - - virtual void DrawIcon( const wxIcon &icon, wxDouble x, wxDouble y, wxDouble w, wxDouble h ) = 0; - - // - // convenience methods - // - - // strokes a single line - virtual void StrokeLine( wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2); - - // stroke lines connecting each of the points - virtual void StrokeLines( size_t n, const wxPoint2DDouble *points); - - // stroke disconnected lines from begin to end points - virtual void StrokeLines( size_t n, const wxPoint2DDouble *beginPoints, const wxPoint2DDouble *endPoints); - - // draws a polygon - virtual void DrawLines( size_t n, const wxPoint2DDouble *points, wxPolygonFillMode fillStyle = wxODDEVEN_RULE ); - - // draws a rectangle - virtual void DrawRectangle( wxDouble x, wxDouble y, wxDouble w, wxDouble h); - - // draws an ellipse - virtual void DrawEllipse( wxDouble x, wxDouble y, wxDouble w, wxDouble h); - - // draws a rounded rectangle - virtual void DrawRoundedRectangle( wxDouble x, wxDouble y, wxDouble w, wxDouble h, wxDouble radius); - - // wrappers using wxPoint2DDouble TODO - - // helper to determine if a 0.5 offset should be applied for the drawing operation - virtual bool ShouldOffset() const { return false; } - - // indicates whether the context should try to offset for pixel boundaries, this only makes sense on - // bitmap devices like screen, by default this is turned off - virtual void EnableOffset(bool enable = true); - - void DisableOffset() { EnableOffset(false); } - bool OffsetEnabled() { return m_enableOffset; } - -protected: - // These fields must be initialized in the derived class ctors. - wxDouble m_width, - m_height; - - wxGraphicsPen m_pen; - wxGraphicsBrush m_brush; - wxGraphicsFont m_font; - wxAntialiasMode m_antialias; - wxCompositionMode m_composition; - wxInterpolationQuality m_interpolation; - bool m_enableOffset; - -protected: - // implementations of overloaded public functions: we use different names - // for them to avoid the virtual function hiding problems in the derived - // classes - virtual void DoDrawText(const wxString& str, wxDouble x, wxDouble y) = 0; - virtual void DoDrawRotatedText(const wxString& str, wxDouble x, wxDouble y, - wxDouble angle); - virtual void DoDrawFilledText(const wxString& str, wxDouble x, wxDouble y, - const wxGraphicsBrush& backgroundBrush); - virtual void DoDrawRotatedFilledText(const wxString& str, - wxDouble x, wxDouble y, - wxDouble angle, - const wxGraphicsBrush& backgroundBrush); - - wxDECLARE_NO_COPY_CLASS(wxGraphicsContext); - wxDECLARE_ABSTRACT_CLASS(wxGraphicsContext); -}; - -#if 0 - -// -// A graphics figure allows to cache path, pen etc creations, also will be a basis for layering/grouping elements -// - -class WXDLLIMPEXP_CORE wxGraphicsFigure : public wxGraphicsObject -{ -public: - wxGraphicsFigure(wxGraphicsRenderer* renderer); - - virtual ~wxGraphicsFigure(); - - void SetPath( wxGraphicsMatrix* matrix ); - - void SetMatrix( wxGraphicsPath* path); - - // draws this object on the context - virtual void Draw( wxGraphicsContext* cg ); - - // returns the path of this object - wxGraphicsPath* GetPath() { return m_path; } - - // returns the transformation matrix of this object, may be null if there is no transformation necessary - wxGraphicsMatrix* GetMatrix() { return m_matrix; } - -private: - wxGraphicsMatrix* m_matrix; - wxGraphicsPath* m_path; - - wxDECLARE_DYNAMIC_CLASS(wxGraphicsFigure); -}; - -#endif - -// -// The graphics renderer is the instance corresponding to the rendering engine used, eg there is ONE core graphics renderer -// instance on OSX. This instance is pointed back to by all objects created by it. Therefore you can create eg additional -// paths at any point from a given matrix etc. -// - -class WXDLLIMPEXP_CORE wxGraphicsRenderer : public wxObject -{ -public: - wxGraphicsRenderer() {} - - virtual ~wxGraphicsRenderer() {} - - static wxGraphicsRenderer* GetDefaultRenderer(); - - static wxGraphicsRenderer* GetCairoRenderer(); - -#ifdef __WXMSW__ -#if wxUSE_GRAPHICS_GDIPLUS - static wxGraphicsRenderer* GetGDIPlusRenderer(); -#endif - -#if wxUSE_GRAPHICS_DIRECT2D - static wxGraphicsRenderer* GetDirect2DRenderer(); -#endif -#endif - - // Context - - virtual wxGraphicsContext * CreateContext( const wxWindowDC& dc) = 0; - virtual wxGraphicsContext * CreateContext( const wxMemoryDC& dc) = 0; -#if wxUSE_PRINTING_ARCHITECTURE - virtual wxGraphicsContext * CreateContext( const wxPrinterDC& dc) = 0; -#endif -#ifdef __WXMSW__ -#if wxUSE_ENH_METAFILE - virtual wxGraphicsContext * CreateContext( const wxEnhMetaFileDC& dc) = 0; -#endif -#endif - - virtual wxGraphicsContext * CreateContextFromNativeContext( void * context ) = 0; - - virtual wxGraphicsContext * CreateContextFromNativeWindow( void * window ) = 0; - - virtual wxGraphicsContext * CreateContext( wxWindow* window ) = 0; - -#if wxUSE_IMAGE - virtual wxGraphicsContext * CreateContextFromImage(wxImage& image) = 0; -#endif // wxUSE_IMAGE - - // create a context that can be used for measuring texts only, no drawing allowed - virtual wxGraphicsContext * CreateMeasuringContext() = 0; - - // Path - - virtual wxGraphicsPath CreatePath() = 0; - - // Matrix - - virtual wxGraphicsMatrix CreateMatrix( wxDouble a=1.0, wxDouble b=0.0, wxDouble c=0.0, wxDouble d=1.0, - wxDouble tx=0.0, wxDouble ty=0.0) = 0; - - // Paints - - virtual wxGraphicsPen CreatePen(const wxPen& pen) = 0; - - virtual wxGraphicsBrush CreateBrush(const wxBrush& brush ) = 0; - - // Gradient brush creation functions may not honour all the stops specified - // stops and use just its boundary colours (this is currently the case - // under OS X) - virtual wxGraphicsBrush - CreateLinearGradientBrush(wxDouble x1, wxDouble y1, - wxDouble x2, wxDouble y2, - const wxGraphicsGradientStops& stops) = 0; - - virtual wxGraphicsBrush - CreateRadialGradientBrush(wxDouble xo, wxDouble yo, - wxDouble xc, wxDouble yc, - wxDouble radius, - const wxGraphicsGradientStops& stops) = 0; - - // sets the font - virtual wxGraphicsFont CreateFont( const wxFont &font , const wxColour &col = *wxBLACK ) = 0; - virtual wxGraphicsFont CreateFont(double sizeInPixels, - const wxString& facename, - int flags = wxFONTFLAG_DEFAULT, - const wxColour& col = *wxBLACK) = 0; - - // create a native bitmap representation - virtual wxGraphicsBitmap CreateBitmap( const wxBitmap &bitmap ) = 0; -#if wxUSE_IMAGE - virtual wxGraphicsBitmap CreateBitmapFromImage(const wxImage& image) = 0; - virtual wxImage CreateImageFromBitmap(const wxGraphicsBitmap& bmp) = 0; -#endif // wxUSE_IMAGE - - // create a graphics bitmap from a native bitmap - virtual wxGraphicsBitmap CreateBitmapFromNativeBitmap( void* bitmap ) = 0; - - // create a subimage from a native image representation - virtual wxGraphicsBitmap CreateSubBitmap( const wxGraphicsBitmap &bitmap, wxDouble x, wxDouble y, wxDouble w, wxDouble h ) = 0; - - virtual wxString GetName() const = 0; - virtual void - GetVersion(int* major, int* minor = NULL, int* micro = NULL) const = 0; - -private: - wxDECLARE_NO_COPY_CLASS(wxGraphicsRenderer); - wxDECLARE_ABSTRACT_CLASS(wxGraphicsRenderer); -}; - - -#if wxUSE_IMAGE -inline -wxImage wxGraphicsBitmap::ConvertToImage() const -{ - wxGraphicsRenderer* renderer = GetRenderer(); - return renderer ? renderer->CreateImageFromBitmap(*this) : wxNullImage; -} -#endif // wxUSE_IMAGE - -#endif // wxUSE_GRAPHICS_CONTEXT - -#endif // _WX_GRAPHICS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/grid.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/grid.h deleted file mode 100644 index 02055658..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/grid.h +++ /dev/null @@ -1,21 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/grid.h -// Purpose: wxGrid base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GRID_H_BASE_ -#define _WX_GRID_H_BASE_ - -#include "wx/generic/grid.h" - -// these headers used to be included from the above header but isn't any more, -// still do it from here for compatibility -#include "wx/generic/grideditors.h" -#include "wx/generic/gridctrl.h" - -#endif // _WX_GRID_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hash.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hash.h deleted file mode 100644 index ea4e3021..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hash.h +++ /dev/null @@ -1,312 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/hash.h -// Purpose: wxHashTable class -// Author: Julian Smart -// Modified by: VZ at 25.02.00: type safe hashes with WX_DECLARE_HASH() -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HASH_H__ -#define _WX_HASH_H__ - -#include "wx/defs.h" -#include "wx/string.h" - -#if !wxUSE_STD_CONTAINERS - #include "wx/object.h" -#else - class WXDLLIMPEXP_FWD_BASE wxObject; -#endif - -// the default size of the hash -#define wxHASH_SIZE_DEFAULT (1000) - -/* - * A hash table is an array of user-definable size with lists - * of data items hanging off the array positions. Usually there'll - * be a hit, so no search is required; otherwise we'll have to run down - * the list to find the desired item. -*/ - -union wxHashKeyValue -{ - long integer; - wxString *string; -}; - -// for some compilers (AIX xlC), defining it as friend inside the class is not -// enough, so provide a real forward declaration -class WXDLLIMPEXP_FWD_BASE wxHashTableBase; - -class WXDLLIMPEXP_BASE wxHashTableBase_Node -{ - friend class WXDLLIMPEXP_FWD_BASE wxHashTableBase; - typedef class WXDLLIMPEXP_FWD_BASE wxHashTableBase_Node _Node; -public: - wxHashTableBase_Node( long key, void* value, - wxHashTableBase* table ); - wxHashTableBase_Node( const wxString& key, void* value, - wxHashTableBase* table ); - ~wxHashTableBase_Node(); - - long GetKeyInteger() const { return m_key.integer; } - const wxString& GetKeyString() const { return *m_key.string; } - - void* GetData() const { return m_value; } - void SetData( void* data ) { m_value = data; } - -protected: - _Node* GetNext() const { return m_next; } - -protected: - // next node in the chain - wxHashTableBase_Node* m_next; - - // key - wxHashKeyValue m_key; - - // value - void* m_value; - - // pointer to the hash containing the node, used to remove the - // node from the hash when the user deletes the node iterating - // through it - // TODO: move it to wxHashTable_Node (only wxHashTable supports - // iteration) - wxHashTableBase* m_hashPtr; -}; - -class WXDLLIMPEXP_BASE wxHashTableBase -#if !wxUSE_STD_CONTAINERS - : public wxObject -#endif -{ - friend class WXDLLIMPEXP_FWD_BASE wxHashTableBase_Node; -public: - typedef wxHashTableBase_Node Node; - - wxHashTableBase(); - virtual ~wxHashTableBase() { } - - void Create( wxKeyType keyType = wxKEY_INTEGER, - size_t size = wxHASH_SIZE_DEFAULT ); - void Clear(); - void Destroy(); - - size_t GetSize() const { return m_size; } - size_t GetCount() const { return m_count; } - - void DeleteContents( bool flag ) { m_deleteContents = flag; } - - static long MakeKey(const wxString& string); - -protected: - void DoPut( long key, long hash, void* data ); - void DoPut( const wxString& key, long hash, void* data ); - void* DoGet( long key, long hash ) const; - void* DoGet( const wxString& key, long hash ) const; - void* DoDelete( long key, long hash ); - void* DoDelete( const wxString& key, long hash ); - -private: - // Remove the node from the hash, *only called from - // ~wxHashTable*_Node destructor - void DoRemoveNode( wxHashTableBase_Node* node ); - - // destroys data contained in the node if appropriate: - // deletes the key if it is a string and destrys - // the value if m_deleteContents is true - void DoDestroyNode( wxHashTableBase_Node* node ); - - // inserts a node in the table (at the end of the chain) - void DoInsertNode( size_t bucket, wxHashTableBase_Node* node ); - - // removes a node from the table (fiven a pointer to the previous - // but does not delete it (only deletes its contents) - void DoUnlinkNode( size_t bucket, wxHashTableBase_Node* node, - wxHashTableBase_Node* prev ); - - // unconditionally deletes node value (invoking the - // correct destructor) - virtual void DoDeleteContents( wxHashTableBase_Node* node ) = 0; - -protected: - // number of buckets - size_t m_size; - - // number of nodes (key/value pairs) - size_t m_count; - - // table - Node** m_table; - - // key typ (INTEGER/STRING) - wxKeyType m_keyType; - - // delete contents when hash is cleared - bool m_deleteContents; - -private: - wxDECLARE_NO_COPY_CLASS(wxHashTableBase); -}; - -// ---------------------------------------------------------------------------- -// for compatibility only -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxHashTable_Node : public wxHashTableBase_Node -{ - friend class WXDLLIMPEXP_FWD_BASE wxHashTable; -public: - wxHashTable_Node( long key, void* value, - wxHashTableBase* table ) - : wxHashTableBase_Node( key, value, table ) { } - wxHashTable_Node( const wxString& key, void* value, - wxHashTableBase* table ) - : wxHashTableBase_Node( key, value, table ) { } - - wxObject* GetData() const - { return (wxObject*)wxHashTableBase_Node::GetData(); } - void SetData( wxObject* data ) - { wxHashTableBase_Node::SetData( data ); } - - wxHashTable_Node* GetNext() const - { return (wxHashTable_Node*)wxHashTableBase_Node::GetNext(); } -}; - -// should inherit protectedly, but it is public for compatibility in -// order to publicly inherit from wxObject -class WXDLLIMPEXP_BASE wxHashTable : public wxHashTableBase -{ - typedef wxHashTableBase hash; -public: - typedef wxHashTable_Node Node; - typedef wxHashTable_Node* compatibility_iterator; -public: - wxHashTable( wxKeyType keyType = wxKEY_INTEGER, - size_t size = wxHASH_SIZE_DEFAULT ) - : wxHashTableBase() { Create( keyType, size ); BeginFind(); } - wxHashTable( const wxHashTable& table ); - - virtual ~wxHashTable() { Destroy(); } - - const wxHashTable& operator=( const wxHashTable& ); - - // key and value are the same - void Put(long value, wxObject *object) - { DoPut( value, value, object ); } - void Put(long lhash, long value, wxObject *object) - { DoPut( value, lhash, object ); } - void Put(const wxString& value, wxObject *object) - { DoPut( value, MakeKey( value ), object ); } - void Put(long lhash, const wxString& value, wxObject *object) - { DoPut( value, lhash, object ); } - - // key and value are the same - wxObject *Get(long value) const - { return (wxObject*)DoGet( value, value ); } - wxObject *Get(long lhash, long value) const - { return (wxObject*)DoGet( value, lhash ); } - wxObject *Get(const wxString& value) const - { return (wxObject*)DoGet( value, MakeKey( value ) ); } - wxObject *Get(long lhash, const wxString& value) const - { return (wxObject*)DoGet( value, lhash ); } - - // Deletes entry and returns data if found - wxObject *Delete(long key) - { return (wxObject*)DoDelete( key, key ); } - wxObject *Delete(long lhash, long key) - { return (wxObject*)DoDelete( key, lhash ); } - wxObject *Delete(const wxString& key) - { return (wxObject*)DoDelete( key, MakeKey( key ) ); } - wxObject *Delete(long lhash, const wxString& key) - { return (wxObject*)DoDelete( key, lhash ); } - - // Way of iterating through whole hash table (e.g. to delete everything) - // Not necessary, of course, if you're only storing pointers to - // objects maintained separately - void BeginFind() { m_curr = NULL; m_currBucket = 0; } - Node* Next(); - - void Clear() { wxHashTableBase::Clear(); } - - size_t GetCount() const { return wxHashTableBase::GetCount(); } -protected: - // copy helper - void DoCopy( const wxHashTable& copy ); - - // searches the next node starting from bucket bucketStart and sets - // m_curr to it and m_currBucket to its bucket - void GetNextNode( size_t bucketStart ); -private: - virtual void DoDeleteContents( wxHashTableBase_Node* node ) wxOVERRIDE; - - // current node - Node* m_curr; - - // bucket the current node belongs to - size_t m_currBucket; -}; - -// defines a new type safe hash table which stores the elements of type eltype -// in lists of class listclass -#define _WX_DECLARE_HASH(eltype, dummy, hashclass, classexp) \ - classexp hashclass : public wxHashTableBase \ - { \ - public: \ - hashclass(wxKeyType keyType = wxKEY_INTEGER, \ - size_t size = wxHASH_SIZE_DEFAULT) \ - : wxHashTableBase() { Create(keyType, size); } \ - \ - virtual ~hashclass() { Destroy(); } \ - \ - void Put(long key, eltype *data) { DoPut(key, key, (void*)data); } \ - void Put(long lhash, long key, eltype *data) \ - { DoPut(key, lhash, (void*)data); } \ - eltype *Get(long key) const { return (eltype*)DoGet(key, key); } \ - eltype *Get(long lhash, long key) const \ - { return (eltype*)DoGet(key, lhash); } \ - eltype *Delete(long key) { return (eltype*)DoDelete(key, key); } \ - eltype *Delete(long lhash, long key) \ - { return (eltype*)DoDelete(key, lhash); } \ - private: \ - virtual void DoDeleteContents( wxHashTableBase_Node* node ) \ - { delete (eltype*)node->GetData(); } \ - \ - wxDECLARE_NO_COPY_CLASS(hashclass); \ - } - - -// this macro is to be used in the user code -#define WX_DECLARE_HASH(el, list, hash) \ - _WX_DECLARE_HASH(el, list, hash, class) - -// and this one does exactly the same thing but should be used inside the -// library -#define WX_DECLARE_EXPORTED_HASH(el, list, hash) \ - _WX_DECLARE_HASH(el, list, hash, class WXDLLIMPEXP_CORE) - -#define WX_DECLARE_USER_EXPORTED_HASH(el, list, hash, usergoo) \ - _WX_DECLARE_HASH(el, list, hash, class usergoo) - -// delete all hash elements -// -// NB: the class declaration of the hash elements must be visible from the -// place where you use this macro, otherwise the proper destructor may not -// be called (a decent compiler should give a warning about it, but don't -// count on it)! -#define WX_CLEAR_HASH_TABLE(hash) \ - { \ - (hash).BeginFind(); \ - wxHashTable::compatibility_iterator it = (hash).Next(); \ - while( it ) \ - { \ - delete it->GetData(); \ - it = (hash).Next(); \ - } \ - (hash).Clear(); \ - } - -#endif // _WX_HASH_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hashmap.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hashmap.h deleted file mode 100644 index 121a1feb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hashmap.h +++ /dev/null @@ -1,752 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/hashmap.h -// Purpose: wxHashMap class -// Author: Mattia Barbon -// Modified by: -// Created: 29/01/2002 -// Copyright: (c) Mattia Barbon -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HASHMAP_H_ -#define _WX_HASHMAP_H_ - -#include "wx/string.h" -#include "wx/wxcrt.h" - -// In wxUSE_STD_CONTAINERS build we prefer to use the standard hash map class -// but it can be either in non-standard hash_map header (old g++ and some other -// STL implementations) or in C++0x standard unordered_map which can in turn be -// available either in std::tr1 or std namespace itself -// -// To summarize: if std::unordered_map is available use it, otherwise use tr1 -// and finally fall back to non-standard hash_map - -#if (defined(HAVE_EXT_HASH_MAP) || defined(HAVE_HASH_MAP)) \ - && (defined(HAVE_GNU_CXX_HASH_MAP) || defined(HAVE_STD_HASH_MAP)) - #define HAVE_STL_HASH_MAP -#endif - -#if wxUSE_STD_CONTAINERS && \ - (defined(HAVE_STD_UNORDERED_MAP) || defined(HAVE_TR1_UNORDERED_MAP)) - -#if defined(HAVE_STD_UNORDERED_MAP) - #include - #define WX_HASH_MAP_NAMESPACE std -#elif defined(HAVE_TR1_UNORDERED_MAP) - #include - #define WX_HASH_MAP_NAMESPACE std::tr1 -#endif - -#define _WX_DECLARE_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, CLASSEXP ) \ - typedef WX_HASH_MAP_NAMESPACE::unordered_map< KEY_T, VALUE_T, HASH_T, KEY_EQ_T > CLASSNAME - -#elif wxUSE_STD_CONTAINERS && defined(HAVE_STL_HASH_MAP) - -#if defined(HAVE_EXT_HASH_MAP) - #include -#elif defined(HAVE_HASH_MAP) - #include -#endif - -#if defined(HAVE_GNU_CXX_HASH_MAP) - #define WX_HASH_MAP_NAMESPACE __gnu_cxx -#elif defined(HAVE_STD_HASH_MAP) - #define WX_HASH_MAP_NAMESPACE std -#endif - -#define _WX_DECLARE_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, CLASSEXP ) \ - typedef WX_HASH_MAP_NAMESPACE::hash_map< KEY_T, VALUE_T, HASH_T, KEY_EQ_T > CLASSNAME - -#else // !wxUSE_STD_CONTAINERS || no std::{hash,unordered}_map class available - -#define wxNEEDS_WX_HASH_MAP - -#include // for ptrdiff_t - -// private -struct WXDLLIMPEXP_BASE _wxHashTable_NodeBase -{ - _wxHashTable_NodeBase() : m_next(NULL) {} - - _wxHashTable_NodeBase* m_next; - -// Cannot do this: -// wxDECLARE_NO_COPY_CLASS(_wxHashTable_NodeBase); -// without rewriting the macros, which require a public copy constructor. -}; - -// private -class WXDLLIMPEXP_BASE _wxHashTableBase2 -{ -public: - typedef void (*NodeDtor)(_wxHashTable_NodeBase*); - typedef unsigned long (*BucketFromNode)(_wxHashTableBase2*,_wxHashTable_NodeBase*); - typedef _wxHashTable_NodeBase* (*ProcessNode)(_wxHashTable_NodeBase*); -protected: - static _wxHashTable_NodeBase* DummyProcessNode(_wxHashTable_NodeBase* node); - static void DeleteNodes( size_t buckets, _wxHashTable_NodeBase** table, - NodeDtor dtor ); - static _wxHashTable_NodeBase* GetFirstNode( size_t buckets, - _wxHashTable_NodeBase** table ) - { - for( size_t i = 0; i < buckets; ++i ) - if( table[i] ) - return table[i]; - return NULL; - } - - // as static const unsigned prime_count = 31 but works with all compilers - enum { prime_count = 31 }; - static const unsigned long ms_primes[prime_count]; - - // returns the first prime in ms_primes greater than n - static unsigned long GetNextPrime( unsigned long n ); - - // returns the first prime in ms_primes smaller than n - // ( or ms_primes[0] if n is very small ) - static unsigned long GetPreviousPrime( unsigned long n ); - - static void CopyHashTable( _wxHashTable_NodeBase** srcTable, - size_t srcBuckets, _wxHashTableBase2* dst, - _wxHashTable_NodeBase** dstTable, - BucketFromNode func, ProcessNode proc ); - - static void** AllocTable( size_t sz ) - { - return (void **)calloc(sz, sizeof(void*)); - } - static void FreeTable(void *table) - { - free(table); - } -}; - -#define _WX_DECLARE_HASHTABLE( VALUE_T, KEY_T, HASH_T, KEY_EX_T, KEY_EQ_T,\ - PTROPERATOR, CLASSNAME, CLASSEXP, \ - SHOULD_GROW, SHOULD_SHRINK ) \ -CLASSEXP CLASSNAME : protected _wxHashTableBase2 \ -{ \ -public: \ - typedef KEY_T key_type; \ - typedef VALUE_T value_type; \ - typedef HASH_T hasher; \ - typedef KEY_EQ_T key_equal; \ - \ - typedef size_t size_type; \ - typedef ptrdiff_t difference_type; \ - typedef value_type* pointer; \ - typedef const value_type* const_pointer; \ - typedef value_type& reference; \ - typedef const value_type& const_reference; \ - /* should these be protected? */ \ - typedef const KEY_T const_key_type; \ - typedef const VALUE_T const_mapped_type; \ -public: \ - typedef KEY_EX_T key_extractor; \ - typedef CLASSNAME Self; \ -protected: \ - _wxHashTable_NodeBase** m_table; \ - size_t m_tableBuckets; \ - size_t m_items; \ - hasher m_hasher; \ - key_equal m_equals; \ - key_extractor m_getKey; \ -public: \ - struct Node:public _wxHashTable_NodeBase \ - { \ - public: \ - Node( const value_type& value ) \ - : m_value( value ) {} \ - Node* next() { return static_cast(m_next); } \ - \ - value_type m_value; \ - }; \ - \ -protected: \ - static void DeleteNode( _wxHashTable_NodeBase* node ) \ - { \ - delete static_cast(node); \ - } \ -public: \ - /* */ \ - /* forward iterator */ \ - /* */ \ - CLASSEXP Iterator \ - { \ - public: \ - Node* m_node; \ - Self* m_ht; \ - \ - Iterator() : m_node(NULL), m_ht(NULL) {} \ - Iterator( Node* node, const Self* ht ) \ - : m_node(node), m_ht(const_cast(ht)) {} \ - bool operator ==( const Iterator& it ) const \ - { return m_node == it.m_node; } \ - bool operator !=( const Iterator& it ) const \ - { return m_node != it.m_node; } \ - protected: \ - Node* GetNextNode() \ - { \ - size_type bucket = GetBucketForNode(m_ht,m_node); \ - for( size_type i = bucket + 1; i < m_ht->m_tableBuckets; ++i ) \ - { \ - if( m_ht->m_table[i] ) \ - return static_cast(m_ht->m_table[i]); \ - } \ - return NULL; \ - } \ - \ - void PlusPlus() \ - { \ - Node* next = m_node->next(); \ - m_node = next ? next : GetNextNode(); \ - } \ - }; \ - friend class Iterator; \ - \ -public: \ - CLASSEXP iterator : public Iterator \ - { \ - public: \ - iterator() : Iterator() {} \ - iterator( Node* node, Self* ht ) : Iterator( node, ht ) {} \ - iterator& operator++() { PlusPlus(); return *this; } \ - iterator operator++(int) { iterator it=*this;PlusPlus();return it; } \ - reference operator *() const { return m_node->m_value; } \ - PTROPERATOR(pointer) \ - }; \ - \ - CLASSEXP const_iterator : public Iterator \ - { \ - public: \ - const_iterator() : Iterator() {} \ - const_iterator(iterator i) : Iterator(i) {} \ - const_iterator( Node* node, const Self* ht ) \ - : Iterator(node, const_cast(ht)) {} \ - const_iterator& operator++() { PlusPlus();return *this; } \ - const_iterator operator++(int) { const_iterator it=*this;PlusPlus();return it; } \ - const_reference operator *() const { return m_node->m_value; } \ - PTROPERATOR(const_pointer) \ - }; \ - \ - CLASSNAME( size_type sz = 10, const hasher& hfun = hasher(), \ - const key_equal& k_eq = key_equal(), \ - const key_extractor& k_ex = key_extractor() ) \ - : m_tableBuckets( GetNextPrime( (unsigned long) sz ) ), \ - m_items( 0 ), \ - m_hasher( hfun ), \ - m_equals( k_eq ), \ - m_getKey( k_ex ) \ - { \ - m_table = (_wxHashTable_NodeBase**)AllocTable(m_tableBuckets); \ - } \ - \ - CLASSNAME( const Self& ht ) \ - : m_table(NULL), \ - m_tableBuckets( 0 ), \ - m_items( ht.m_items ), \ - m_hasher( ht.m_hasher ), \ - m_equals( ht.m_equals ), \ - m_getKey( ht.m_getKey ) \ - { \ - HashCopy( ht ); \ - } \ - \ - const Self& operator=( const Self& ht ) \ - { \ - if (&ht != this) \ - { \ - clear(); \ - m_hasher = ht.m_hasher; \ - m_equals = ht.m_equals; \ - m_getKey = ht.m_getKey; \ - m_items = ht.m_items; \ - HashCopy( ht ); \ - } \ - return *this; \ - } \ - \ - ~CLASSNAME() \ - { \ - clear(); \ - \ - FreeTable(m_table); \ - } \ - \ - hasher hash_funct() { return m_hasher; } \ - key_equal key_eq() { return m_equals; } \ - \ - /* removes all elements from the hash table, but does not */ \ - /* shrink it ( perhaps it should ) */ \ - void clear() \ - { \ - DeleteNodes(m_tableBuckets, m_table, DeleteNode); \ - m_items = 0; \ - } \ - \ - size_type size() const { return m_items; } \ - size_type max_size() const { return size_type(-1); } \ - bool empty() const { return size() == 0; } \ - \ - const_iterator end() const { return const_iterator(NULL, this); } \ - iterator end() { return iterator(NULL, this); } \ - const_iterator begin() const \ - { return const_iterator(static_cast(GetFirstNode(m_tableBuckets, m_table)), this); } \ - iterator begin() \ - { return iterator(static_cast(GetFirstNode(m_tableBuckets, m_table)), this); } \ - \ - size_type erase( const const_key_type& key ) \ - { \ - _wxHashTable_NodeBase** node = GetNodePtr(key); \ - \ - if( !node ) \ - return 0; \ - \ - --m_items; \ - _wxHashTable_NodeBase* temp = (*node)->m_next; \ - delete static_cast(*node); \ - (*node) = temp; \ - if( SHOULD_SHRINK( m_tableBuckets, m_items ) ) \ - ResizeTable( GetPreviousPrime( (unsigned long) m_tableBuckets ) - 1 ); \ - return 1; \ - } \ - \ -protected: \ - static size_type GetBucketForNode( Self* ht, Node* node ) \ - { \ - return ht->m_hasher( ht->m_getKey( node->m_value ) ) \ - % ht->m_tableBuckets; \ - } \ - static Node* CopyNode( Node* node ) { return new Node( *node ); } \ - \ - Node* GetOrCreateNode( const value_type& value, bool& created ) \ - { \ - const const_key_type& key = m_getKey( value ); \ - size_t bucket = m_hasher( key ) % m_tableBuckets; \ - Node* node = static_cast(m_table[bucket]); \ - \ - while( node ) \ - { \ - if( m_equals( m_getKey( node->m_value ), key ) ) \ - { \ - created = false; \ - return node; \ - } \ - node = node->next(); \ - } \ - created = true; \ - return CreateNode( value, bucket); \ - }\ - Node * CreateNode( const value_type& value, size_t bucket ) \ - {\ - Node* node = new Node( value ); \ - node->m_next = m_table[bucket]; \ - m_table[bucket] = node; \ - \ - /* must be after the node is inserted */ \ - ++m_items; \ - if( SHOULD_GROW( m_tableBuckets, m_items ) ) \ - ResizeTable( m_tableBuckets ); \ - \ - return node; \ - } \ - void CreateNode( const value_type& value ) \ - {\ - CreateNode(value, m_hasher( m_getKey(value) ) % m_tableBuckets ); \ - }\ - \ - /* returns NULL if not found */ \ - _wxHashTable_NodeBase** GetNodePtr(const const_key_type& key) const \ - { \ - size_t bucket = m_hasher( key ) % m_tableBuckets; \ - _wxHashTable_NodeBase** node = &m_table[bucket]; \ - \ - while( *node ) \ - { \ - if (m_equals(m_getKey(static_cast(*node)->m_value), key)) \ - return node; \ - node = &(*node)->m_next; \ - } \ - \ - return NULL; \ - } \ - \ - /* returns NULL if not found */ \ - /* expressing it in terms of GetNodePtr is 5-8% slower :-( */ \ - Node* GetNode( const const_key_type& key ) const \ - { \ - size_t bucket = m_hasher( key ) % m_tableBuckets; \ - Node* node = static_cast(m_table[bucket]); \ - \ - while( node ) \ - { \ - if( m_equals( m_getKey( node->m_value ), key ) ) \ - return node; \ - node = node->next(); \ - } \ - \ - return NULL; \ - } \ - \ - void ResizeTable( size_t newSize ) \ - { \ - newSize = GetNextPrime( (unsigned long)newSize ); \ - _wxHashTable_NodeBase** srcTable = m_table; \ - size_t srcBuckets = m_tableBuckets; \ - m_table = (_wxHashTable_NodeBase**)AllocTable( newSize ); \ - m_tableBuckets = newSize; \ - \ - CopyHashTable( srcTable, srcBuckets, \ - this, m_table, \ - (BucketFromNode)GetBucketForNode,\ - (ProcessNode)&DummyProcessNode ); \ - FreeTable(srcTable); \ - } \ - \ - /* this must be called _after_ m_table has been cleaned */ \ - void HashCopy( const Self& ht ) \ - { \ - ResizeTable( ht.size() ); \ - CopyHashTable( ht.m_table, ht.m_tableBuckets, \ - (_wxHashTableBase2*)this, \ - m_table, \ - (BucketFromNode)GetBucketForNode, \ - (ProcessNode)CopyNode ); \ - } \ -}; - -// defines an STL-like pair class CLASSNAME storing two fields: first of type -// KEY_T and second of type VALUE_T -#define _WX_DECLARE_PAIR( KEY_T, VALUE_T, CLASSNAME, CLASSEXP ) \ -CLASSEXP CLASSNAME \ -{ \ -public: \ - typedef KEY_T first_type; \ - typedef VALUE_T second_type; \ - typedef KEY_T t1; \ - typedef VALUE_T t2; \ - typedef const KEY_T const_t1; \ - typedef const VALUE_T const_t2; \ - \ - CLASSNAME(const const_t1& f, const const_t2& s) \ - : first(const_cast(f)), second(const_cast(s)) {} \ - \ - t1 first; \ - t2 second; \ -}; - -// defines the class CLASSNAME returning the key part (of type KEY_T) from a -// pair of type PAIR_T -#define _WX_DECLARE_HASH_MAP_KEY_EX( KEY_T, PAIR_T, CLASSNAME, CLASSEXP ) \ -CLASSEXP CLASSNAME \ -{ \ - typedef KEY_T key_type; \ - typedef PAIR_T pair_type; \ - typedef const key_type const_key_type; \ - typedef const pair_type const_pair_type; \ - typedef const_key_type& const_key_reference; \ - typedef const_pair_type& const_pair_reference; \ -public: \ - CLASSNAME() { } \ - const_key_reference operator()( const_pair_reference pair ) const { return pair.first; }\ - \ - /* the dummy assignment operator is needed to suppress compiler */ \ - /* warnings from hash table class' operator=(): gcc complains about */ \ - /* "statement with no effect" without it */ \ - CLASSNAME& operator=(const CLASSNAME&) { return *this; } \ -}; - -// grow/shrink predicates -inline bool never_grow( size_t, size_t ) { return false; } -inline bool never_shrink( size_t, size_t ) { return false; } -inline bool grow_lf70( size_t buckets, size_t items ) -{ - return float(items)/float(buckets) >= 0.85f; -} - -#endif // various hash map implementations - -// ---------------------------------------------------------------------------- -// hashing and comparison functors -// ---------------------------------------------------------------------------- - -// NB: implementation detail: all of these classes must have dummy assignment -// operators to suppress warnings about "statement with no effect" from gcc -// in the hash table class assignment operator (where they're assigned) - -#ifndef wxNEEDS_WX_HASH_MAP - -// integer types -struct WXDLLIMPEXP_BASE wxIntegerHash -{ -private: - WX_HASH_MAP_NAMESPACE::hash longHash; - WX_HASH_MAP_NAMESPACE::hash ulongHash; - WX_HASH_MAP_NAMESPACE::hash intHash; - WX_HASH_MAP_NAMESPACE::hash uintHash; - WX_HASH_MAP_NAMESPACE::hash shortHash; - WX_HASH_MAP_NAMESPACE::hash ushortHash; - -#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - // hash ought to work but doesn't on some compilers - #if (!defined SIZEOF_LONG_LONG && SIZEOF_LONG == 4) \ - || (defined SIZEOF_LONG_LONG && SIZEOF_LONG_LONG == SIZEOF_LONG * 2) - size_t longlongHash( wxLongLong_t x ) const - { - return longHash( wx_truncate_cast(long, x) ) ^ - longHash( wx_truncate_cast(long, x >> (sizeof(long) * 8)) ); - } - #elif defined SIZEOF_LONG_LONG && SIZEOF_LONG_LONG == SIZEOF_LONG - WX_HASH_MAP_NAMESPACE::hash longlongHash; - #else - WX_HASH_MAP_NAMESPACE::hash longlongHash; - #endif -#endif // wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - -public: - wxIntegerHash() { } - size_t operator()( long x ) const { return longHash( x ); } - size_t operator()( unsigned long x ) const { return ulongHash( x ); } - size_t operator()( int x ) const { return intHash( x ); } - size_t operator()( unsigned int x ) const { return uintHash( x ); } - size_t operator()( short x ) const { return shortHash( x ); } - size_t operator()( unsigned short x ) const { return ushortHash( x ); } -#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - size_t operator()( wxLongLong_t x ) const { return longlongHash(x); } - size_t operator()( wxULongLong_t x ) const { return longlongHash(x); } -#endif // wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - - wxIntegerHash& operator=(const wxIntegerHash&) { return *this; } -}; - -#else // wxNEEDS_WX_HASH_MAP - -// integer types -struct WXDLLIMPEXP_BASE wxIntegerHash -{ - wxIntegerHash() { } - unsigned long operator()( long x ) const { return (unsigned long)x; } - unsigned long operator()( unsigned long x ) const { return x; } - unsigned long operator()( int x ) const { return (unsigned long)x; } - unsigned long operator()( unsigned int x ) const { return x; } - unsigned long operator()( short x ) const { return (unsigned long)x; } - unsigned long operator()( unsigned short x ) const { return x; } -#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - wxULongLong_t operator()( wxLongLong_t x ) const { return static_cast(x); } - wxULongLong_t operator()( wxULongLong_t x ) const { return x; } -#endif // wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - - wxIntegerHash& operator=(const wxIntegerHash&) { return *this; } -}; - -#endif // !wxNEEDS_WX_HASH_MAP/wxNEEDS_WX_HASH_MAP - -struct WXDLLIMPEXP_BASE wxIntegerEqual -{ - wxIntegerEqual() { } - bool operator()( long a, long b ) const { return a == b; } - bool operator()( unsigned long a, unsigned long b ) const { return a == b; } - bool operator()( int a, int b ) const { return a == b; } - bool operator()( unsigned int a, unsigned int b ) const { return a == b; } - bool operator()( short a, short b ) const { return a == b; } - bool operator()( unsigned short a, unsigned short b ) const { return a == b; } -#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - bool operator()( wxLongLong_t a, wxLongLong_t b ) const { return a == b; } - bool operator()( wxULongLong_t a, wxULongLong_t b ) const { return a == b; } -#endif // wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - - wxIntegerEqual& operator=(const wxIntegerEqual&) { return *this; } -}; - -// pointers -struct WXDLLIMPEXP_BASE wxPointerHash -{ - wxPointerHash() { } - -#ifdef wxNEEDS_WX_HASH_MAP - wxUIntPtr operator()( const void* k ) const { return wxPtrToUInt(k); } -#else - size_t operator()( const void* k ) const { return (size_t)k; } -#endif - - wxPointerHash& operator=(const wxPointerHash&) { return *this; } -}; - -struct WXDLLIMPEXP_BASE wxPointerEqual -{ - wxPointerEqual() { } - bool operator()( const void* a, const void* b ) const { return a == b; } - - wxPointerEqual& operator=(const wxPointerEqual&) { return *this; } -}; - -// wxString, char*, wchar_t* -struct WXDLLIMPEXP_BASE wxStringHash -{ - wxStringHash() {} - unsigned long operator()( const wxString& x ) const - { return stringHash( x.wx_str() ); } - unsigned long operator()( const wchar_t* x ) const - { return stringHash( x ); } - unsigned long operator()( const char* x ) const - { return stringHash( x ); } - -#if WXWIN_COMPATIBILITY_2_8 - static unsigned long wxCharStringHash( const wxChar* x ) - { return stringHash(x); } - #if wxUSE_UNICODE - static unsigned long charStringHash( const char* x ) - { return stringHash(x); } - #endif -#endif // WXWIN_COMPATIBILITY_2_8 - - static unsigned long stringHash( const wchar_t* ); - static unsigned long stringHash( const char* ); - - wxStringHash& operator=(const wxStringHash&) { return *this; } -}; - -struct WXDLLIMPEXP_BASE wxStringEqual -{ - wxStringEqual() {} - bool operator()( const wxString& a, const wxString& b ) const - { return a == b; } - bool operator()( const wxChar* a, const wxChar* b ) const - { return wxStrcmp( a, b ) == 0; } -#if wxUSE_UNICODE - bool operator()( const char* a, const char* b ) const - { return strcmp( a, b ) == 0; } -#endif // wxUSE_UNICODE - - wxStringEqual& operator=(const wxStringEqual&) { return *this; } -}; - -#ifdef wxNEEDS_WX_HASH_MAP - -#define wxPTROP_NORMAL(pointer) \ - pointer operator ->() const { return &(m_node->m_value); } -#define wxPTROP_NOP(pointer) - -#define _WX_DECLARE_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, CLASSEXP ) \ -_WX_DECLARE_PAIR( KEY_T, VALUE_T, CLASSNAME##_wxImplementation_Pair, CLASSEXP ) \ -_WX_DECLARE_HASH_MAP_KEY_EX( KEY_T, CLASSNAME##_wxImplementation_Pair, CLASSNAME##_wxImplementation_KeyEx, CLASSEXP ) \ -_WX_DECLARE_HASHTABLE( CLASSNAME##_wxImplementation_Pair, KEY_T, HASH_T, \ - CLASSNAME##_wxImplementation_KeyEx, KEY_EQ_T, wxPTROP_NORMAL, \ - CLASSNAME##_wxImplementation_HashTable, CLASSEXP, grow_lf70, never_shrink ) \ -CLASSEXP CLASSNAME:public CLASSNAME##_wxImplementation_HashTable \ -{ \ -public: \ - typedef VALUE_T mapped_type; \ - _WX_DECLARE_PAIR( iterator, bool, Insert_Result, CLASSEXP ) \ - \ - wxEXPLICIT CLASSNAME( size_type hint = 100, hasher hf = hasher(), \ - key_equal eq = key_equal() ) \ - : CLASSNAME##_wxImplementation_HashTable( hint, hf, eq, \ - CLASSNAME##_wxImplementation_KeyEx() ) {} \ - \ - mapped_type& operator[]( const const_key_type& key ) \ - { \ - bool created; \ - return GetOrCreateNode( \ - CLASSNAME##_wxImplementation_Pair( key, mapped_type() ), \ - created)->m_value.second; \ - } \ - \ - const_iterator find( const const_key_type& key ) const \ - { \ - return const_iterator( GetNode( key ), this ); \ - } \ - \ - iterator find( const const_key_type& key ) \ - { \ - return iterator( GetNode( key ), this ); \ - } \ - \ - Insert_Result insert( const value_type& v ) \ - { \ - bool created; \ - Node *node = GetOrCreateNode( \ - CLASSNAME##_wxImplementation_Pair( v.first, v.second ), \ - created); \ - return Insert_Result(iterator(node, this), created); \ - } \ - \ - size_type erase( const key_type& k ) \ - { return CLASSNAME##_wxImplementation_HashTable::erase( k ); } \ - void erase( const iterator& it ) { erase( (*it).first ); } \ - \ - /* count() == 0 | 1 */ \ - size_type count( const const_key_type& key ) \ - { \ - return GetNode( key ) ? 1u : 0u; \ - } \ -} - -#endif // wxNEEDS_WX_HASH_MAP - -// these macros are to be used in the user code -#define WX_DECLARE_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME) \ - _WX_DECLARE_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, class ) - -#define WX_DECLARE_STRING_HASH_MAP( VALUE_T, CLASSNAME ) \ - _WX_DECLARE_HASH_MAP( wxString, VALUE_T, wxStringHash, wxStringEqual, \ - CLASSNAME, class ) - -#define WX_DECLARE_VOIDPTR_HASH_MAP( VALUE_T, CLASSNAME ) \ - _WX_DECLARE_HASH_MAP( void*, VALUE_T, wxPointerHash, wxPointerEqual, \ - CLASSNAME, class ) - -// and these do exactly the same thing but should be used inside the -// library -#define WX_DECLARE_HASH_MAP_WITH_DECL( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, DECL) \ - _WX_DECLARE_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME, DECL ) - -#define WX_DECLARE_EXPORTED_HASH_MAP( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, CLASSNAME) \ - WX_DECLARE_HASH_MAP_WITH_DECL( KEY_T, VALUE_T, HASH_T, KEY_EQ_T, \ - CLASSNAME, class WXDLLIMPEXP_CORE ) - -#define WX_DECLARE_STRING_HASH_MAP_WITH_DECL( VALUE_T, CLASSNAME, DECL ) \ - _WX_DECLARE_HASH_MAP( wxString, VALUE_T, wxStringHash, wxStringEqual, \ - CLASSNAME, DECL ) - -#define WX_DECLARE_EXPORTED_STRING_HASH_MAP( VALUE_T, CLASSNAME ) \ - WX_DECLARE_STRING_HASH_MAP_WITH_DECL( VALUE_T, CLASSNAME, \ - class WXDLLIMPEXP_CORE ) - -#define WX_DECLARE_VOIDPTR_HASH_MAP_WITH_DECL( VALUE_T, CLASSNAME, DECL ) \ - _WX_DECLARE_HASH_MAP( void*, VALUE_T, wxPointerHash, wxPointerEqual, \ - CLASSNAME, DECL ) - -#define WX_DECLARE_EXPORTED_VOIDPTR_HASH_MAP( VALUE_T, CLASSNAME ) \ - WX_DECLARE_VOIDPTR_HASH_MAP_WITH_DECL( VALUE_T, CLASSNAME, \ - class WXDLLIMPEXP_CORE ) - -// delete all hash elements -// -// NB: the class declaration of the hash elements must be visible from the -// place where you use this macro, otherwise the proper destructor may not -// be called (a decent compiler should give a warning about it, but don't -// count on it)! -#define WX_CLEAR_HASH_MAP(type, hashmap) \ - { \ - type::iterator it, en; \ - for( it = (hashmap).begin(), en = (hashmap).end(); it != en; ++it ) \ - delete it->second; \ - (hashmap).clear(); \ - } - -//--------------------------------------------------------------------------- -// Declarations of common hashmap classes - -WX_DECLARE_HASH_MAP_WITH_DECL( long, long, wxIntegerHash, wxIntegerEqual, - wxLongToLongHashMap, class WXDLLIMPEXP_BASE ); - -WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxString, wxStringToStringHashMap, - class WXDLLIMPEXP_BASE ); - -WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxUIntPtr, wxStringToNumHashMap, - class WXDLLIMPEXP_BASE ); - - -#endif // _WX_HASHMAP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hashset.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hashset.h deleted file mode 100644 index 8cd1becf..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hashset.h +++ /dev/null @@ -1,198 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/hashset.h -// Purpose: wxHashSet class -// Author: Mattia Barbon -// Modified by: -// Created: 11/08/2003 -// Copyright: (c) Mattia Barbon -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HASHSET_H_ -#define _WX_HASHSET_H_ - -#include "wx/hashmap.h" - -// see comment in wx/hashmap.h which also applies to different standard hash -// set classes - -#if wxUSE_STD_CONTAINERS && \ - (defined(HAVE_STD_UNORDERED_SET) || defined(HAVE_TR1_UNORDERED_SET)) - -#if defined(HAVE_STD_UNORDERED_SET) - #include - #define WX_HASH_SET_BASE_TEMPLATE std::unordered_set -#elif defined(HAVE_TR1_UNORDERED_SET) - #include - #define WX_HASH_SET_BASE_TEMPLATE std::tr1::unordered_set -#else - #error Update this code: unordered_set is available, but I do not know where. -#endif - -#elif wxUSE_STD_CONTAINERS && defined(HAVE_STL_HASH_MAP) - -#if defined(HAVE_EXT_HASH_MAP) - #include -#elif defined(HAVE_HASH_MAP) - #include -#endif - -#define WX_HASH_SET_BASE_TEMPLATE WX_HASH_MAP_NAMESPACE::hash_set - -#endif // different hash_set/unordered_set possibilities - -#ifdef WX_HASH_SET_BASE_TEMPLATE - -// we need to define the class declared by _WX_DECLARE_HASH_SET as a class and -// not a typedef to allow forward declaring it -#define _WX_DECLARE_HASH_SET_IMPL( KEY_T, HASH_T, KEY_EQ_T, PTROP, CLASSNAME, CLASSEXP ) \ -CLASSEXP CLASSNAME \ - : public WX_HASH_SET_BASE_TEMPLATE< KEY_T, HASH_T, KEY_EQ_T > \ -{ \ -public: \ - explicit CLASSNAME(size_type n = 3, \ - const hasher& h = hasher(), \ - const key_equal& ke = key_equal(), \ - const allocator_type& a = allocator_type()) \ - : WX_HASH_SET_BASE_TEMPLATE< KEY_T, HASH_T, KEY_EQ_T >(n, h, ke, a) \ - {} \ - template \ - CLASSNAME(InputIterator f, InputIterator l, \ - const hasher& h = hasher(), \ - const key_equal& ke = key_equal(), \ - const allocator_type& a = allocator_type()) \ - : WX_HASH_SET_BASE_TEMPLATE< KEY_T, HASH_T, KEY_EQ_T >(f, l, h, ke, a)\ - {} \ - CLASSNAME(const WX_HASH_SET_BASE_TEMPLATE< KEY_T, HASH_T, KEY_EQ_T >& s) \ - : WX_HASH_SET_BASE_TEMPLATE< KEY_T, HASH_T, KEY_EQ_T >(s) \ - {} \ -} - -// In some standard library implementations (in particular, the libstdc++ that -// ships with g++ 4.7), std::unordered_set inherits privately from its hasher -// and comparator template arguments for purposes of empty base optimization. -// As a result, in the declaration of a class deriving from std::unordered_set -// the names of the hasher and comparator classes are interpreted as naming -// the base class which is inaccessible. -// The workaround is to prefix the class names with 'struct'; however, don't -// do this on MSVC because it causes a warning there if the class was -// declared as a 'class' rather than a 'struct' (and MSVC's std::unordered_set -// implementation does not suffer from the access problem). -#ifdef _MSC_VER -#define WX_MAYBE_PREFIX_WITH_STRUCT(STRUCTNAME) STRUCTNAME -#else -#define WX_MAYBE_PREFIX_WITH_STRUCT(STRUCTNAME) struct STRUCTNAME -#endif - -#define _WX_DECLARE_HASH_SET( KEY_T, HASH_T, KEY_EQ_T, PTROP, CLASSNAME, CLASSEXP ) \ - _WX_DECLARE_HASH_SET_IMPL( \ - KEY_T, \ - WX_MAYBE_PREFIX_WITH_STRUCT(HASH_T), \ - WX_MAYBE_PREFIX_WITH_STRUCT(KEY_EQ_T), \ - PTROP, \ - CLASSNAME, \ - CLASSEXP) - -#else // no appropriate STL class, use our own implementation - -// this is a complex way of defining an easily inlineable identity function... -#define _WX_DECLARE_HASH_SET_KEY_EX( KEY_T, CLASSNAME, CLASSEXP ) \ -CLASSEXP CLASSNAME \ -{ \ - typedef KEY_T key_type; \ - typedef const key_type const_key_type; \ - typedef const_key_type& const_key_reference; \ -public: \ - CLASSNAME() { } \ - const_key_reference operator()( const_key_reference key ) const \ - { return key; } \ - \ - /* the dummy assignment operator is needed to suppress compiler */ \ - /* warnings from hash table class' operator=(): gcc complains about */ \ - /* "statement with no effect" without it */ \ - CLASSNAME& operator=(const CLASSNAME&) { return *this; } \ -}; - -#define _WX_DECLARE_HASH_SET( KEY_T, HASH_T, KEY_EQ_T, PTROP, CLASSNAME, CLASSEXP )\ -_WX_DECLARE_HASH_SET_KEY_EX( KEY_T, CLASSNAME##_wxImplementation_KeyEx, CLASSEXP ) \ -_WX_DECLARE_HASHTABLE( KEY_T, KEY_T, HASH_T, \ - CLASSNAME##_wxImplementation_KeyEx, KEY_EQ_T, PTROP, \ - CLASSNAME##_wxImplementation_HashTable, CLASSEXP, grow_lf70, never_shrink ) \ -CLASSEXP CLASSNAME:public CLASSNAME##_wxImplementation_HashTable \ -{ \ -public: \ - _WX_DECLARE_PAIR( iterator, bool, Insert_Result, CLASSEXP ) \ - \ - wxEXPLICIT CLASSNAME( size_type hint = 100, hasher hf = hasher(), \ - key_equal eq = key_equal() ) \ - : CLASSNAME##_wxImplementation_HashTable( hint, hf, eq, \ - CLASSNAME##_wxImplementation_KeyEx() ) {} \ - \ - Insert_Result insert( const key_type& key ) \ - { \ - bool created; \ - Node *node = GetOrCreateNode( key, created ); \ - return Insert_Result( iterator( node, this ), created ); \ - } \ - \ - const_iterator find( const const_key_type& key ) const \ - { \ - return const_iterator( GetNode( key ), this ); \ - } \ - \ - iterator find( const const_key_type& key ) \ - { \ - return iterator( GetNode( key ), this ); \ - } \ - \ - size_type erase( const key_type& k ) \ - { return CLASSNAME##_wxImplementation_HashTable::erase( k ); } \ - void erase( const iterator& it ) { erase( *it ); } \ - void erase( const const_iterator& it ) { erase( *it ); } \ - \ - /* count() == 0 | 1 */ \ - size_type count( const const_key_type& key ) const \ - { return GetNode( key ) ? 1 : 0; } \ -} - -#endif // STL/wx implementations - - -// these macros are to be used in the user code -#define WX_DECLARE_HASH_SET( KEY_T, HASH_T, KEY_EQ_T, CLASSNAME) \ - _WX_DECLARE_HASH_SET( KEY_T, HASH_T, KEY_EQ_T, wxPTROP_NORMAL, CLASSNAME, class ) - -// and these do exactly the same thing but should be used inside the -// library -#define WX_DECLARE_HASH_SET_WITH_DECL( KEY_T, HASH_T, KEY_EQ_T, CLASSNAME, DECL) \ - _WX_DECLARE_HASH_SET( KEY_T, HASH_T, KEY_EQ_T, wxPTROP_NORMAL, CLASSNAME, DECL ) - -#define WX_DECLARE_EXPORTED_HASH_SET( KEY_T, HASH_T, KEY_EQ_T, CLASSNAME) \ - WX_DECLARE_HASH_SET_WITH_DECL( KEY_T, HASH_T, KEY_EQ_T, \ - CLASSNAME, class WXDLLIMPEXP_CORE ) - -// Finally these versions allow to define hash sets of non-objects (including -// pointers, hence the confusing but wxArray-compatible name) without -// operator->() which can't be used for them. This is mostly used inside the -// library itself to avoid warnings when using such hash sets with some less -// common compilers (notably Sun CC). -#define WX_DECLARE_HASH_SET_PTR( KEY_T, HASH_T, KEY_EQ_T, CLASSNAME) \ - _WX_DECLARE_HASH_SET( KEY_T, HASH_T, KEY_EQ_T, wxPTROP_NOP, CLASSNAME, class ) -#define WX_DECLARE_HASH_SET_WITH_DECL_PTR( KEY_T, HASH_T, KEY_EQ_T, CLASSNAME, DECL) \ - _WX_DECLARE_HASH_SET( KEY_T, HASH_T, KEY_EQ_T, wxPTROP_NOP, CLASSNAME, DECL ) - -// delete all hash elements -// -// NB: the class declaration of the hash elements must be visible from the -// place where you use this macro, otherwise the proper destructor may not -// be called (a decent compiler should give a warning about it, but don't -// count on it)! -#define WX_CLEAR_HASH_SET(type, hashset) \ - { \ - type::iterator it, en; \ - for( it = (hashset).begin(), en = (hashset).end(); it != en; ++it ) \ - delete *it; \ - (hashset).clear(); \ - } - -#endif // _WX_HASHSET_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/headercol.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/headercol.h deleted file mode 100644 index 1b2fa3d4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/headercol.h +++ /dev/null @@ -1,288 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/headercol.h -// Purpose: declaration of wxHeaderColumn class -// Author: Vadim Zeitlin -// Created: 2008-12-02 -// Copyright: (c) 2008 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HEADERCOL_H_ -#define _WX_HEADERCOL_H_ - -#include "wx/bitmap.h" - -#if wxUSE_HEADERCTRL - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -enum -{ - // special value for column width meaning unspecified/default - wxCOL_WIDTH_DEFAULT = -1, - - // size the column automatically to fit all values - wxCOL_WIDTH_AUTOSIZE = -2 -}; - -// bit masks for the various column attributes -enum -{ - // column can be resized (included in default flags) - wxCOL_RESIZABLE = 1, - - // column can be clicked to toggle the sort order by its contents - wxCOL_SORTABLE = 2, - - // column can be dragged to change its order (included in default) - wxCOL_REORDERABLE = 4, - - // column is not shown at all - wxCOL_HIDDEN = 8, - - // default flags for wxHeaderColumn ctor - wxCOL_DEFAULT_FLAGS = wxCOL_RESIZABLE | wxCOL_REORDERABLE -}; - -// ---------------------------------------------------------------------------- -// wxHeaderColumn: interface for a column in a header of controls such as -// wxListCtrl, wxDataViewCtrl or wxGrid -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxHeaderColumn -{ -public: - // ctors and dtor - // -------------- - - /* - Derived classes must provide ctors with the following signatures - (notice that they shouldn't be explicit to allow passing strings/bitmaps - directly to methods such wxHeaderCtrl::AppendColumn()): - wxHeaderColumn(const wxString& title, - int width = wxCOL_WIDTH_DEFAULT, - wxAlignment align = wxALIGN_NOT, - int flags = wxCOL_DEFAULT_FLAGS); - wxHeaderColumn(const wxBitmap &bitmap, - int width = wxDVC_DEFAULT_WIDTH, - wxAlignment align = wxALIGN_CENTER, - int flags = wxCOL_DEFAULT_FLAGS); - */ - - // virtual dtor for the base class to avoid gcc warnings even though we - // don't normally delete the objects of this class via a pointer to - // wxHeaderColumn so it's not necessary, strictly speaking - virtual ~wxHeaderColumn() { } - - // getters for various attributes - // ------------------------------ - - // notice that wxHeaderColumn only provides getters as this is all the - // wxHeaderCtrl needs, various derived class must also provide some way to - // change these attributes but this can be done either at the column level - // (in which case they should inherit from wxSettableHeaderColumn) or via - // the methods of the main control in which case you don't need setters in - // the column class at all - - // title is the string shown for this column - virtual wxString GetTitle() const = 0; - - // bitmap shown (instead of text) in the column header - virtual wxBitmap GetBitmap() const = 0; \ - - // width of the column in pixels, can be set to wxCOL_WIDTH_DEFAULT meaning - // unspecified/default - virtual int GetWidth() const = 0; - - // minimal width can be set for resizable columns to forbid resizing them - // below the specified size (set to 0 to remove) - virtual int GetMinWidth() const = 0; - - // alignment of the text: wxALIGN_CENTRE, wxALIGN_LEFT or wxALIGN_RIGHT - virtual wxAlignment GetAlignment() const = 0; - - - // flags manipulations: - // -------------------- - - // notice that while we make GetFlags() pure virtual here and implement the - // individual flags access in terms of it, for some derived classes it is - // more natural to implement access to each flag individually, in which - // case they can use our GetFromIndividualFlags() helper below to implement - // GetFlags() - - // retrieve all column flags at once: combination of wxCOL_XXX values above - virtual int GetFlags() const = 0; - - bool HasFlag(int flag) const { return (GetFlags() & flag) != 0; } - - - // wxCOL_RESIZABLE - virtual bool IsResizeable() const - { return HasFlag(wxCOL_RESIZABLE); } - - // wxCOL_SORTABLE - virtual bool IsSortable() const - { return HasFlag(wxCOL_SORTABLE); } - - // wxCOL_REORDERABLE - virtual bool IsReorderable() const - { return HasFlag(wxCOL_REORDERABLE); } - - // wxCOL_HIDDEN - virtual bool IsHidden() const - { return HasFlag(wxCOL_HIDDEN); } - bool IsShown() const - { return !IsHidden(); } - - - // sorting - // ------- - - // return true if the column is the one currently used for sorting - virtual bool IsSortKey() const = 0; - - // for sortable columns indicate whether we should sort in ascending or - // descending order (this should only be taken into account if IsSortKey()) - virtual bool IsSortOrderAscending() const = 0; - -protected: - // helper for the class overriding IsXXX() - int GetFromIndividualFlags() const; -}; - -// ---------------------------------------------------------------------------- -// wxSettableHeaderColumn: column which allows to change its fields too -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSettableHeaderColumn : public wxHeaderColumn -{ -public: - virtual void SetTitle(const wxString& title) = 0; - virtual void SetBitmap(const wxBitmap& bitmap) = 0; - virtual void SetWidth(int width) = 0; - virtual void SetMinWidth(int minWidth) = 0; - virtual void SetAlignment(wxAlignment align) = 0; - - // see comment for wxHeaderColumn::GetFlags() about the relationship - // between SetFlags() and Set{Sortable,Reorderable,...} - - // change, set, clear, toggle or test for any individual flag - virtual void SetFlags(int flags) = 0; - void ChangeFlag(int flag, bool set); - void SetFlag(int flag); - void ClearFlag(int flag); - void ToggleFlag(int flag); - - virtual void SetResizeable(bool resizable) - { ChangeFlag(wxCOL_RESIZABLE, resizable); } - virtual void SetSortable(bool sortable) - { ChangeFlag(wxCOL_SORTABLE, sortable); } - virtual void SetReorderable(bool reorderable) - { ChangeFlag(wxCOL_REORDERABLE, reorderable); } - virtual void SetHidden(bool hidden) - { ChangeFlag(wxCOL_HIDDEN, hidden); } - - // This function can be called to indicate that this column is not used for - // sorting any more. Under some platforms it's not necessary to do anything - // in this case as just setting another column as a sort key takes care of - // everything but under MSW we currently need to call this explicitly to - // reset the sort indicator displayed on the column. - virtual void UnsetAsSortKey() { } - - virtual void SetSortOrder(bool ascending) = 0; - void ToggleSortOrder() { SetSortOrder(!IsSortOrderAscending()); } - -protected: - // helper for the class overriding individual SetXXX() methods instead of - // overriding SetFlags() - void SetIndividualFlags(int flags); -}; - -// ---------------------------------------------------------------------------- -// wxHeaderColumnSimple: trivial generic implementation of wxHeaderColumn -// ---------------------------------------------------------------------------- - -class wxHeaderColumnSimple : public wxSettableHeaderColumn -{ -public: - // ctors and dtor - wxHeaderColumnSimple(const wxString& title, - int width = wxCOL_WIDTH_DEFAULT, - wxAlignment align = wxALIGN_NOT, - int flags = wxCOL_DEFAULT_FLAGS) - : m_title(title), - m_width(width), - m_align(align), - m_flags(flags) - { - Init(); - } - - wxHeaderColumnSimple(const wxBitmap& bitmap, - int width = wxCOL_WIDTH_DEFAULT, - wxAlignment align = wxALIGN_CENTER, - int flags = wxCOL_DEFAULT_FLAGS) - : m_bitmap(bitmap), - m_width(width), - m_align(align), - m_flags(flags) - { - Init(); - } - - // implement base class pure virtuals - virtual void SetTitle(const wxString& title) wxOVERRIDE { m_title = title; } - virtual wxString GetTitle() const wxOVERRIDE { return m_title; } - - virtual void SetBitmap(const wxBitmap& bitmap) wxOVERRIDE { m_bitmap = bitmap; } - wxBitmap GetBitmap() const wxOVERRIDE { return m_bitmap; } - - virtual void SetWidth(int width) wxOVERRIDE { m_width = width; } - virtual int GetWidth() const wxOVERRIDE { return m_width; } - - virtual void SetMinWidth(int minWidth) wxOVERRIDE { m_minWidth = minWidth; } - virtual int GetMinWidth() const wxOVERRIDE { return m_minWidth; } - - virtual void SetAlignment(wxAlignment align) wxOVERRIDE { m_align = align; } - virtual wxAlignment GetAlignment() const wxOVERRIDE { return m_align; } - - virtual void SetFlags(int flags) wxOVERRIDE { m_flags = flags; } - virtual int GetFlags() const wxOVERRIDE { return m_flags; } - - virtual bool IsSortKey() const wxOVERRIDE { return m_sort; } - virtual void UnsetAsSortKey() wxOVERRIDE { m_sort = false; } - - virtual void SetSortOrder(bool ascending) wxOVERRIDE - { - m_sort = true; - m_sortAscending = ascending; - } - - virtual bool IsSortOrderAscending() const wxOVERRIDE { return m_sortAscending; } - -private: - // common part of all ctors - void Init() - { - m_minWidth = 0; - m_sort = false; - m_sortAscending = true; - } - - wxString m_title; - wxBitmap m_bitmap; - int m_width, - m_minWidth; - wxAlignment m_align; - int m_flags; - bool m_sort, - m_sortAscending; -}; - -#endif // wxUSE_HEADERCTRL - -#endif // _WX_HEADERCOL_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/headerctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/headerctrl.h deleted file mode 100644 index 928ed7aa..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/headerctrl.h +++ /dev/null @@ -1,488 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/headerctrl.h -// Purpose: wxHeaderCtrlBase class: interface of wxHeaderCtrl -// Author: Vadim Zeitlin -// Created: 2008-12-01 -// Copyright: (c) 2008 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HEADERCTRL_H_ -#define _WX_HEADERCTRL_H_ - -#include "wx/control.h" - -#if wxUSE_HEADERCTRL - -#include "wx/dynarray.h" -#include "wx/vector.h" - -#include "wx/headercol.h" - -// notice that the classes in this header are defined in the core library even -// although currently they're only used by wxGrid which is in wxAdv because we -// plan to use it in wxListCtrl which is in core too in the future -class WXDLLIMPEXP_FWD_CORE wxHeaderCtrlEvent; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -enum -{ - // allow column drag and drop - wxHD_ALLOW_REORDER = 0x0001, - - // allow hiding (and showing back) the columns using the menu shown by - // right clicking the header - wxHD_ALLOW_HIDE = 0x0002, - - // style used by default when creating the control - wxHD_DEFAULT_STYLE = wxHD_ALLOW_REORDER -}; - -extern WXDLLIMPEXP_DATA_CORE(const char) wxHeaderCtrlNameStr[]; - -// ---------------------------------------------------------------------------- -// wxHeaderCtrlBase defines the interface of a header control -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxHeaderCtrlBase : public wxControl -{ -public: - /* - Derived classes must provide default ctor as well as a ctor and - Create() function with the following signatures: - - wxHeaderCtrl(wxWindow *parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHD_DEFAULT_STYLE, - const wxString& name = wxHeaderCtrlNameStr); - - bool Create(wxWindow *parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHD_DEFAULT_STYLE, - const wxString& name = wxHeaderCtrlNameStr); - */ - - // column-related methods - // ---------------------- - - // set the number of columns in the control - // - // this also calls UpdateColumn() for all columns - void SetColumnCount(unsigned int count); - - // return the number of columns in the control as set by SetColumnCount() - unsigned int GetColumnCount() const { return DoGetCount(); } - - // return whether the control has any columns - bool IsEmpty() const { return DoGetCount() == 0; } - - // update the column with the given index - void UpdateColumn(unsigned int idx) - { - wxCHECK_RET( idx < GetColumnCount(), "invalid column index" ); - - DoUpdate(idx); - } - - - // columns order - // ------------- - - // set the columns order: the array defines the column index which appears - // the given position, it must have GetColumnCount() elements and contain - // all indices exactly once - void SetColumnsOrder(const wxArrayInt& order); - wxArrayInt GetColumnsOrder() const; - - // get the index of the column at the given display position - unsigned int GetColumnAt(unsigned int pos) const; - - // get the position at which this column is currently displayed - unsigned int GetColumnPos(unsigned int idx) const; - - // reset the columns order to the natural one - void ResetColumnsOrder(); - - // helper function used by the generic version of this control and also - // wxGrid: reshuffles the array of column indices indexed by positions - // (i.e. using the same convention as for SetColumnsOrder()) so that the - // column with the given index is found at the specified position - static void MoveColumnInOrderArray(wxArrayInt& order, - unsigned int idx, - unsigned int pos); - - - // UI helpers - // ---------- - -#if wxUSE_MENUS - // show the popup menu containing all columns with check marks for the ones - // which are currently shown and return true if something was done using it - // (in this case UpdateColumnVisibility() will have been called) or false - // if the menu was cancelled - // - // this is called from the default right click handler for the controls - // with wxHD_ALLOW_HIDE style - bool ShowColumnsMenu(const wxPoint& pt, const wxString& title = wxString()); - - // append the entries for all our columns to the given menu, with the - // currently visible columns being checked - // - // this is used by ShowColumnsMenu() but can also be used if you use your - // own custom columns menu but nevertheless want to show all the columns in - // it - // - // the ids of the items corresponding to the columns are consecutive and - // start from idColumnsBase - void AddColumnsItems(wxMenu& menu, int idColumnsBase = 0); -#endif // wxUSE_MENUS - - // show the columns customization dialog and return true if something was - // changed using it (in which case UpdateColumnVisibility() and/or - // UpdateColumnsOrder() will have been called) - // - // this is called by the control itself from ShowColumnsMenu() (which in - // turn is only called by the control if wxHD_ALLOW_HIDE style was - // specified) and if the control has wxHD_ALLOW_REORDER style as well - bool ShowCustomizeDialog(); - - // compute column title width - int GetColumnTitleWidth(const wxHeaderColumn& col); - - // implementation only from now on - // ------------------------------- - - // the user doesn't need to TAB to this control - virtual bool AcceptsFocusFromKeyboard() const wxOVERRIDE { return false; } - - // this method is only overridden in order to synchronize the control with - // the main window when it is scrolled, the derived class must implement - // DoScrollHorz() - virtual void ScrollWindow(int dx, int dy, const wxRect *rect = NULL) wxOVERRIDE; - -protected: - // this method must be implemented by the derived classes to return the - // information for the given column - virtual const wxHeaderColumn& GetColumn(unsigned int idx) const = 0; - - // this method is called from the default EVT_HEADER_SEPARATOR_DCLICK - // handler to update the fitting column width of the given column, it - // should return true if the width was really updated - virtual bool UpdateColumnWidthToFit(unsigned int WXUNUSED(idx), - int WXUNUSED(widthTitle)) - { - return false; - } - - // this method is called from ShowColumnsMenu() and must be overridden to - // update the internal column visibility (there is no need to call - // UpdateColumn() from here, this will be done internally) - virtual void UpdateColumnVisibility(unsigned int WXUNUSED(idx), - bool WXUNUSED(show)) - { - wxFAIL_MSG( "must be overridden if called" ); - } - - // this method is called from ShowCustomizeDialog() to reorder all columns - // at once and should be implemented for controls using wxHD_ALLOW_REORDER - // style (there is no need to call SetColumnsOrder() from here, this is - // done by the control itself) - virtual void UpdateColumnsOrder(const wxArrayInt& WXUNUSED(order)) - { - wxFAIL_MSG( "must be overridden if called" ); - } - - // this method can be overridden in the derived classes to do something - // (e.g. update/resize some internal data structures) before the number of - // columns in the control changes - virtual void OnColumnCountChanging(unsigned int WXUNUSED(count)) { } - - - // helper function for the derived classes: update the array of column - // indices after the number of columns changed - void DoResizeColumnIndices(wxArrayInt& colIndices, unsigned int count); - -protected: - // this window doesn't look nice with the border so don't use it by default - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - -private: - // methods implementing our public API and defined in platform-specific - // implementations - virtual void DoSetCount(unsigned int count) = 0; - virtual unsigned int DoGetCount() const = 0; - virtual void DoUpdate(unsigned int idx) = 0; - - virtual void DoScrollHorz(int dx) = 0; - - virtual void DoSetColumnsOrder(const wxArrayInt& order) = 0; - virtual wxArrayInt DoGetColumnsOrder() const = 0; - - - // event handlers - void OnSeparatorDClick(wxHeaderCtrlEvent& event); -#if wxUSE_MENUS - void OnRClick(wxHeaderCtrlEvent& event); -#endif // wxUSE_MENUS - - wxDECLARE_EVENT_TABLE(); -}; - -// ---------------------------------------------------------------------------- -// wxHeaderCtrl: port-specific header control implementation, notice that this -// is still an ABC which is meant to be used as part of another -// control, see wxHeaderCtrlSimple for a standalone version -// ---------------------------------------------------------------------------- - -#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) - #include "wx/msw/headerctrl.h" -#else - #define wxHAS_GENERIC_HEADERCTRL - #include "wx/generic/headerctrlg.h" -#endif // platform - -// ---------------------------------------------------------------------------- -// wxHeaderCtrlSimple: concrete header control which can be used standalone -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxHeaderCtrlSimple : public wxHeaderCtrl -{ -public: - // control creation - // ---------------- - - wxHeaderCtrlSimple() { Init(); } - wxHeaderCtrlSimple(wxWindow *parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHD_DEFAULT_STYLE, - const wxString& name = wxHeaderCtrlNameStr) - { - Init(); - - Create(parent, winid, pos, size, style, name); - } - - // managing the columns - // -------------------- - - // insert the column at the given position, using GetColumnCount() as - // position appends it at the end - void InsertColumn(const wxHeaderColumnSimple& col, unsigned int idx) - { - wxCHECK_RET( idx <= GetColumnCount(), "invalid column index" ); - - DoInsert(col, idx); - } - - // append the column to the end of the control - void AppendColumn(const wxHeaderColumnSimple& col) - { - DoInsert(col, GetColumnCount()); - } - - // delete the column at the given index - void DeleteColumn(unsigned int idx) - { - wxCHECK_RET( idx < GetColumnCount(), "invalid column index" ); - - DoDelete(idx); - } - - // delete all the existing columns - void DeleteAllColumns(); - - - // modifying columns - // ----------------- - - // show or hide the column, notice that even when a column is hidden we - // still account for it when using indices - void ShowColumn(unsigned int idx, bool show = true) - { - wxCHECK_RET( idx < GetColumnCount(), "invalid column index" ); - - DoShowColumn(idx, show); - } - - void HideColumn(unsigned int idx) - { - ShowColumn(idx, false); - } - - // indicate that the column is used for sorting - void ShowSortIndicator(unsigned int idx, bool ascending = true) - { - wxCHECK_RET( idx < GetColumnCount(), "invalid column index" ); - - DoShowSortIndicator(idx, ascending); - } - - // remove the sort indicator completely - void RemoveSortIndicator(); - -protected: - // implement/override base class methods - virtual const wxHeaderColumn& GetColumn(unsigned int idx) const wxOVERRIDE; - virtual bool UpdateColumnWidthToFit(unsigned int idx, int widthTitle) wxOVERRIDE; - - // and define another one to be overridden in the derived classes: it - // should return the best width for the given column contents or -1 if not - // implemented, we use it to implement UpdateColumnWidthToFit() - virtual int GetBestFittingWidth(unsigned int WXUNUSED(idx)) const - { - return -1; - } - -private: - // functions implementing our public API - void DoInsert(const wxHeaderColumnSimple& col, unsigned int idx); - void DoDelete(unsigned int idx); - void DoShowColumn(unsigned int idx, bool show); - void DoShowSortIndicator(unsigned int idx, bool ascending); - - // common part of all ctors - void Init(); - - // bring the column count in sync with the number of columns we store - void UpdateColumnCount() - { - SetColumnCount(static_cast(m_cols.size())); - } - - - // all our current columns - typedef wxVector Columns; - Columns m_cols; - - // the column currently used for sorting or -1 if none - unsigned int m_sortKey; - - - wxDECLARE_NO_COPY_CLASS(wxHeaderCtrlSimple); -}; - -// ---------------------------------------------------------------------------- -// wxHeaderCtrl events -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxHeaderCtrlEvent : public wxNotifyEvent -{ -public: - wxHeaderCtrlEvent(wxEventType commandType = wxEVT_NULL, int winid = 0) - : wxNotifyEvent(commandType, winid), - m_col(-1), - m_width(0), - m_order(static_cast(-1)) - { - } - - wxHeaderCtrlEvent(const wxHeaderCtrlEvent& event) - : wxNotifyEvent(event), - m_col(event.m_col), - m_width(event.m_width), - m_order(event.m_order) - { - } - - // the column which this event pertains to: valid for all header events - int GetColumn() const { return m_col; } - void SetColumn(int col) { m_col = col; } - - // the width of the column: valid for column resizing/dragging events only - int GetWidth() const { return m_width; } - void SetWidth(int width) { m_width = width; } - - // the new position of the column: for end reorder events only - unsigned int GetNewOrder() const { return m_order; } - void SetNewOrder(unsigned int order) { m_order = order; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxHeaderCtrlEvent(*this); } - -protected: - // the column affected by the event - int m_col; - - // the current width for the dragging events - int m_width; - - // the new column position for end reorder event - unsigned int m_order; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxHeaderCtrlEvent); -}; - - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_HEADER_CLICK, wxHeaderCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_HEADER_RIGHT_CLICK, wxHeaderCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_HEADER_MIDDLE_CLICK, wxHeaderCtrlEvent ); - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_HEADER_DCLICK, wxHeaderCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_HEADER_RIGHT_DCLICK, wxHeaderCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_HEADER_MIDDLE_DCLICK, wxHeaderCtrlEvent ); - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_HEADER_SEPARATOR_DCLICK, wxHeaderCtrlEvent ); - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_HEADER_BEGIN_RESIZE, wxHeaderCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_HEADER_RESIZING, wxHeaderCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_HEADER_END_RESIZE, wxHeaderCtrlEvent ); - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_HEADER_BEGIN_REORDER, wxHeaderCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_HEADER_END_REORDER, wxHeaderCtrlEvent ); - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_HEADER_DRAGGING_CANCELLED, wxHeaderCtrlEvent ); - -typedef void (wxEvtHandler::*wxHeaderCtrlEventFunction)(wxHeaderCtrlEvent&); - -#define wxHeaderCtrlEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxHeaderCtrlEventFunction, func) - -#define wx__DECLARE_HEADER_EVT(evt, id, fn) \ - wx__DECLARE_EVT1(wxEVT_HEADER_ ## evt, id, wxHeaderCtrlEventHandler(fn)) - -#define EVT_HEADER_CLICK(id, fn) wx__DECLARE_HEADER_EVT(CLICK, id, fn) -#define EVT_HEADER_RIGHT_CLICK(id, fn) wx__DECLARE_HEADER_EVT(RIGHT_CLICK, id, fn) -#define EVT_HEADER_MIDDLE_CLICK(id, fn) wx__DECLARE_HEADER_EVT(MIDDLE_CLICK, id, fn) - -#define EVT_HEADER_DCLICK(id, fn) wx__DECLARE_HEADER_EVT(DCLICK, id, fn) -#define EVT_HEADER_RIGHT_DCLICK(id, fn) wx__DECLARE_HEADER_EVT(RIGHT_DCLICK, id, fn) -#define EVT_HEADER_MIDDLE_DCLICK(id, fn) wx__DECLARE_HEADER_EVT(MIDDLE_DCLICK, id, fn) - -#define EVT_HEADER_SEPARATOR_DCLICK(id, fn) wx__DECLARE_HEADER_EVT(SEPARATOR_DCLICK, id, fn) - -#define EVT_HEADER_BEGIN_RESIZE(id, fn) wx__DECLARE_HEADER_EVT(BEGIN_RESIZE, id, fn) -#define EVT_HEADER_RESIZING(id, fn) wx__DECLARE_HEADER_EVT(RESIZING, id, fn) -#define EVT_HEADER_END_RESIZE(id, fn) wx__DECLARE_HEADER_EVT(END_RESIZE, id, fn) - -#define EVT_HEADER_BEGIN_REORDER(id, fn) wx__DECLARE_HEADER_EVT(BEGIN_REORDER, id, fn) -#define EVT_HEADER_END_REORDER(id, fn) wx__DECLARE_HEADER_EVT(END_REORDER, id, fn) - -#define EVT_HEADER_DRAGGING_CANCELLED(id, fn) wx__DECLARE_HEADER_EVT(DRAGGING_CANCELLED, id, fn) - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_HEADER_CLICK wxEVT_HEADER_CLICK -#define wxEVT_COMMAND_HEADER_RIGHT_CLICK wxEVT_HEADER_RIGHT_CLICK -#define wxEVT_COMMAND_HEADER_MIDDLE_CLICK wxEVT_HEADER_MIDDLE_CLICK -#define wxEVT_COMMAND_HEADER_DCLICK wxEVT_HEADER_DCLICK -#define wxEVT_COMMAND_HEADER_RIGHT_DCLICK wxEVT_HEADER_RIGHT_DCLICK -#define wxEVT_COMMAND_HEADER_MIDDLE_DCLICK wxEVT_HEADER_MIDDLE_DCLICK -#define wxEVT_COMMAND_HEADER_SEPARATOR_DCLICK wxEVT_HEADER_SEPARATOR_DCLICK -#define wxEVT_COMMAND_HEADER_BEGIN_RESIZE wxEVT_HEADER_BEGIN_RESIZE -#define wxEVT_COMMAND_HEADER_RESIZING wxEVT_HEADER_RESIZING -#define wxEVT_COMMAND_HEADER_END_RESIZE wxEVT_HEADER_END_RESIZE -#define wxEVT_COMMAND_HEADER_BEGIN_REORDER wxEVT_HEADER_BEGIN_REORDER -#define wxEVT_COMMAND_HEADER_END_REORDER wxEVT_HEADER_END_REORDER -#define wxEVT_COMMAND_HEADER_DRAGGING_CANCELLED wxEVT_HEADER_DRAGGING_CANCELLED - -#endif // wxUSE_HEADERCTRL - -#endif // _WX_HEADERCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/help.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/help.h deleted file mode 100644 index e38bc870..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/help.h +++ /dev/null @@ -1,39 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/help.h -// Purpose: wxHelpController base header -// Author: wxWidgets Team -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HELP_H_BASE_ -#define _WX_HELP_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_HELP - -#include "wx/helpbase.h" - -#if defined(__WXMSW__) - #include "wx/msw/helpchm.h" - - #define wxHelpController wxCHMHelpController -#else // !MSW - -#if wxUSE_WXHTML_HELP - #include "wx/html/helpctrl.h" - #define wxHelpController wxHtmlHelpController -#else - #include "wx/generic/helpext.h" - #define wxHelpController wxExtHelpController -#endif - -#endif // MSW/!MSW - -#endif // wxUSE_HELP - -#endif - // _WX_HELP_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/helpbase.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/helpbase.h deleted file mode 100644 index f3cb199d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/helpbase.h +++ /dev/null @@ -1,105 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/helpbase.h -// Purpose: Help system base classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HELPBASEH__ -#define _WX_HELPBASEH__ - -#include "wx/defs.h" - -#if wxUSE_HELP - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/gdicmn.h" -#include "wx/frame.h" - -// Flags for SetViewer -#define wxHELP_NETSCAPE 1 - -// Search modes: -enum wxHelpSearchMode -{ - wxHELP_SEARCH_INDEX, - wxHELP_SEARCH_ALL -}; - -// Defines the API for help controllers -class WXDLLIMPEXP_CORE wxHelpControllerBase: public wxObject -{ -public: - inline wxHelpControllerBase(wxWindow* parentWindow = NULL) { m_parentWindow = parentWindow; } - inline ~wxHelpControllerBase() {} - - // Must call this to set the filename and server name. - // server is only required when implementing TCP/IP-based - // help controllers. - virtual bool Initialize(const wxString& WXUNUSED(file), int WXUNUSED(server) ) { return false; } - virtual bool Initialize(const wxString& WXUNUSED(file)) { return false; } - - // Set viewer: only relevant to some kinds of controller - virtual void SetViewer(const wxString& WXUNUSED(viewer), long WXUNUSED(flags) = 0) {} - - // If file is "", reloads file given in Initialize - virtual bool LoadFile(const wxString& file = wxEmptyString) = 0; - - // Displays the contents - virtual bool DisplayContents(void) = 0; - - // Display the given section - virtual bool DisplaySection(int sectionNo) = 0; - - // Display the section using a context id - virtual bool DisplayContextPopup(int WXUNUSED(contextId)) { return false; } - - // Display the text in a popup, if possible - virtual bool DisplayTextPopup(const wxString& WXUNUSED(text), const wxPoint& WXUNUSED(pos)) { return false; } - - // By default, uses KeywordSection to display a topic. Implementations - // may override this for more specific behaviour. - virtual bool DisplaySection(const wxString& section) { return KeywordSearch(section); } - virtual bool DisplayBlock(long blockNo) = 0; - virtual bool KeywordSearch(const wxString& k, - wxHelpSearchMode mode = wxHELP_SEARCH_ALL) = 0; - /// Allows one to override the default settings for the help frame. - virtual void SetFrameParameters(const wxString& WXUNUSED(title), - const wxSize& WXUNUSED(size), - const wxPoint& WXUNUSED(pos) = wxDefaultPosition, - bool WXUNUSED(newFrameEachTime) = false) - { - // does nothing by default - } - /// Obtains the latest settings used by the help frame and the help - /// frame. - virtual wxFrame *GetFrameParameters(wxSize *WXUNUSED(size) = NULL, - wxPoint *WXUNUSED(pos) = NULL, - bool *WXUNUSED(newFrameEachTime) = NULL) - { - return NULL; // does nothing by default - } - - virtual bool Quit() = 0; - virtual void OnQuit() {} - - /// Set the window that can optionally be used for the help window's parent. - virtual void SetParentWindow(wxWindow* win) { m_parentWindow = win; } - - /// Get the window that can optionally be used for the help window's parent. - virtual wxWindow* GetParentWindow() const { return m_parentWindow; } - -protected: - wxWindow* m_parentWindow; -private: - wxDECLARE_CLASS(wxHelpControllerBase); -}; - -#endif // wxUSE_HELP - -#endif -// _WX_HELPBASEH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/helphtml.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/helphtml.h deleted file mode 100644 index 87bc81df..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/helphtml.h +++ /dev/null @@ -1,19 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/helphtml.h -// Purpose: Includes wx/html/helpctrl.h, for wxHtmlHelpController. -// Author: Julian Smart -// Modified by: -// Created: 2003-05-24 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __WX_HELPHTML_H_ -#define __WX_HELPHTML_H_ - -#if wxUSE_WXHTML_HELP -#include "wx/html/helpctrl.h" -#endif - -#endif // __WX_HELPHTML_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/helpwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/helpwin.h deleted file mode 100644 index 599d62a4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/helpwin.h +++ /dev/null @@ -1,19 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/helpwin.h -// Purpose: Includes Windows or OS/2 help -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HELPWIN_H_BASE_ -#define _WX_HELPWIN_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/helpwin.h" -#endif - -#endif - // _WX_HELPWIN_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/forcelnk.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/forcelnk.h deleted file mode 100644 index 8d3631c9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/forcelnk.h +++ /dev/null @@ -1,62 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/forcelnk.h -// Purpose: macros which force the linker to link apparently unused code -// Author: Vaclav Slavik -// Copyright: (c) Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* - -DESCRPITON: - -mod_*.cpp files contain handlers for tags. These files are modules - they contain -one wxTagModule class and it's OnInit() method is called from wxApp's init method. -The module is called even if you only link it into the executable, so everything -seems wonderful. - -The problem is that we have these modules in LIBRARY and mod_*.cpp files contain -no method nor class which is known out of the module. So the linker won't -link these .o/.obj files into executable because it detected that it is not used -by the program. - -To workaround this I introduced set of macros FORCE_LINK_ME and FORCE_LINK. These -macros are generic and are not limited to mod_*.cpp files. You may find them quite -useful somewhere else... - -How to use them: -let's suppose you want to always link file foo.cpp and that you have module -always.cpp that is certainly always linked (e.g. the one with main() function -or htmlwin.cpp in wxHtml library). - -Place FORCE_LINK_ME(foo) somewhere in foo.cpp and FORCE_LINK(foo) somewhere -in always.cpp -See mod_*.cpp and htmlwin.cpp for example :-) - -*/ - - -#ifndef _WX_FORCELNK_H_ -#define _WX_FORCELNK_H_ - -#include "wx/link.h" - -// compatibility defines -#define FORCE_LINK wxFORCE_LINK_MODULE -#define FORCE_LINK_ME wxFORCE_LINK_THIS_MODULE - -#define FORCE_WXHTML_MODULES() \ - FORCE_LINK(m_layout) \ - FORCE_LINK(m_fonts) \ - FORCE_LINK(m_image) \ - FORCE_LINK(m_list) \ - FORCE_LINK(m_dflist) \ - FORCE_LINK(m_pre) \ - FORCE_LINK(m_hline) \ - FORCE_LINK(m_links) \ - FORCE_LINK(m_tables) \ - FORCE_LINK(m_span) \ - FORCE_LINK(m_style) - - -#endif // _WX_FORCELNK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpctrl.h deleted file mode 100644 index 54c27afb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpctrl.h +++ /dev/null @@ -1,164 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/helpctrl.h -// Purpose: wxHtmlHelpController -// Notes: Based on htmlhelp.cpp, implementing a monolithic -// HTML Help controller class, by Vaclav Slavik -// Author: Harm van der Heijden and Vaclav Slavik -// Copyright: (c) Harm van der Heijden and Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HELPCTRL_H_ -#define _WX_HELPCTRL_H_ - -#include "wx/defs.h" - -#if wxUSE_WXHTML_HELP - -#include "wx/helpbase.h" -#include "wx/html/helpfrm.h" - -#define wxID_HTML_HELPFRAME (wxID_HIGHEST + 1) - -// This style indicates that the window is -// embedded in the application and must not be -// destroyed by the help controller. -#define wxHF_EMBEDDED 0x00008000 - -// Create a dialog for the help window. -#define wxHF_DIALOG 0x00010000 - -// Create a frame for the help window. -#define wxHF_FRAME 0x00020000 - -// Make the dialog modal when displaying help. -#define wxHF_MODAL 0x00040000 - -class WXDLLIMPEXP_FWD_HTML wxHtmlHelpDialog; -class WXDLLIMPEXP_FWD_HTML wxHtmlHelpWindow; -class WXDLLIMPEXP_FWD_HTML wxHtmlHelpFrame; -class WXDLLIMPEXP_FWD_HTML wxHtmlHelpDialog; - -class WXDLLIMPEXP_HTML wxHtmlHelpController : public wxHelpControllerBase // wxEvtHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxHtmlHelpController); - -public: - wxHtmlHelpController(int style = wxHF_DEFAULT_STYLE, wxWindow* parentWindow = NULL); - wxHtmlHelpController(wxWindow* parentWindow, int style = wxHF_DEFAULT_STYLE); - - virtual ~wxHtmlHelpController(); - - void SetShouldPreventAppExit(bool enable); - - void SetTitleFormat(const wxString& format); - void SetTempDir(const wxString& path) { m_helpData.SetTempDir(path); } - bool AddBook(const wxString& book_url, bool show_wait_msg = false); - bool AddBook(const wxFileName& book_file, bool show_wait_msg = false); - - bool Display(const wxString& x); - bool Display(int id); - bool DisplayContents() wxOVERRIDE; - bool DisplayIndex(); - bool KeywordSearch(const wxString& keyword, - wxHelpSearchMode mode = wxHELP_SEARCH_ALL) wxOVERRIDE; - - wxHtmlHelpWindow* GetHelpWindow() { return m_helpWindow; } - void SetHelpWindow(wxHtmlHelpWindow* helpWindow); - - wxHtmlHelpFrame* GetFrame() { return m_helpFrame; } - wxHtmlHelpDialog* GetDialog() { return m_helpDialog; } - -#if wxUSE_CONFIG - void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString); - - // Assigns config object to the Ctrl. This config is then - // used in subsequent calls to Read/WriteCustomization of both help - // Ctrl and it's wxHtmlWindow - virtual void ReadCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString); - virtual void WriteCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString); -#endif // wxUSE_CONFIG - - //// Backward compatibility with wxHelpController API - - virtual bool Initialize(const wxString& file, int WXUNUSED(server) ) wxOVERRIDE { return Initialize(file); } - virtual bool Initialize(const wxString& file) wxOVERRIDE; - virtual void SetViewer(const wxString& WXUNUSED(viewer), long WXUNUSED(flags) = 0) wxOVERRIDE {} - virtual bool LoadFile(const wxString& file = wxT("")) wxOVERRIDE; - virtual bool DisplaySection(int sectionNo) wxOVERRIDE; - virtual bool DisplaySection(const wxString& section) wxOVERRIDE { return Display(section); } - virtual bool DisplayBlock(long blockNo) wxOVERRIDE { return DisplaySection(blockNo); } - virtual bool DisplayTextPopup(const wxString& text, const wxPoint& pos) wxOVERRIDE; - - virtual void SetFrameParameters(const wxString& titleFormat, - const wxSize& size, - const wxPoint& pos = wxDefaultPosition, - bool newFrameEachTime = false) wxOVERRIDE; - /// Obtains the latest settings used by the help frame and the help - /// frame. - virtual wxFrame *GetFrameParameters(wxSize *size = NULL, - wxPoint *pos = NULL, - bool *newFrameEachTime = NULL) wxOVERRIDE; - - // Get direct access to help data: - wxHtmlHelpData *GetHelpData() { return &m_helpData; } - - virtual bool Quit() wxOVERRIDE ; - virtual void OnQuit() wxOVERRIDE {} - - void OnCloseFrame(wxCloseEvent& evt); - - // Make the help controller's frame 'modal' if - // needed - void MakeModalIfNeeded(); - - // Find the top-most parent window - wxWindow* FindTopLevelWindow(); - -protected: - void Init(int style); - - virtual wxWindow* CreateHelpWindow(); - virtual wxHtmlHelpFrame* CreateHelpFrame(wxHtmlHelpData *data); - virtual wxHtmlHelpDialog* CreateHelpDialog(wxHtmlHelpData *data); - virtual void DestroyHelpWindow(); - - wxHtmlHelpData m_helpData; - wxHtmlHelpWindow* m_helpWindow; -#if wxUSE_CONFIG - wxConfigBase * m_Config; - wxString m_ConfigRoot; -#endif // wxUSE_CONFIG - wxString m_titleFormat; - int m_FrameStyle; - wxHtmlHelpFrame* m_helpFrame; - wxHtmlHelpDialog* m_helpDialog; - - bool m_shouldPreventAppExit; - - wxDECLARE_NO_COPY_CLASS(wxHtmlHelpController); -}; - -/* - * wxHtmlModalHelp - * A convenience class particularly for use on wxMac, - * where you can only show modal dialogs from a modal - * dialog. - * - * Use like this: - * - * wxHtmlModalHelp help(parent, filename, topic); - * - * If topic is empty, the help contents is displayed. - */ - -class WXDLLIMPEXP_HTML wxHtmlModalHelp -{ -public: - wxHtmlModalHelp(wxWindow* parent, const wxString& helpFile, const wxString& topic = wxEmptyString, - int style = wxHF_DEFAULT_STYLE | wxHF_DIALOG | wxHF_MODAL); -}; - -#endif // wxUSE_WXHTML_HELP - -#endif // _WX_HELPCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpdata.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpdata.h deleted file mode 100644 index 8c4aad92..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpdata.h +++ /dev/null @@ -1,222 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/helpdata.h -// Purpose: wxHtmlHelpData -// Notes: Based on htmlhelp.cpp, implementing a monolithic -// HTML Help controller class, by Vaclav Slavik -// Author: Harm van der Heijden and Vaclav Slavik -// Copyright: (c) Harm van der Heijden and Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HELPDATA_H_ -#define _WX_HELPDATA_H_ - -#include "wx/defs.h" - -#if wxUSE_HTML - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/filesys.h" -#include "wx/dynarray.h" -#include "wx/font.h" - -class WXDLLIMPEXP_FWD_HTML wxHtmlHelpData; - -//-------------------------------------------------------------------------------- -// helper classes & structs -//-------------------------------------------------------------------------------- - -class WXDLLIMPEXP_HTML wxHtmlBookRecord -{ -public: - wxHtmlBookRecord(const wxString& bookfile, const wxString& basepath, - const wxString& title, const wxString& start) - { - m_BookFile = bookfile; - m_BasePath = basepath; - m_Title = title; - m_Start = start; - // for debugging, give the contents index obvious default values - m_ContentsStart = m_ContentsEnd = -1; - } - wxString GetBookFile() const { return m_BookFile; } - wxString GetTitle() const { return m_Title; } - wxString GetStart() const { return m_Start; } - wxString GetBasePath() const { return m_BasePath; } - /* SetContentsRange: store in the bookrecord where in the index/contents lists the - * book's records are stored. This to facilitate searching in a specific book. - * This code will have to be revised when loading/removing books becomes dynamic. - * (as opposed to appending only) - * Note that storing index range is pointless, because the index is alphab. sorted. */ - void SetContentsRange(int start, int end) { m_ContentsStart = start; m_ContentsEnd = end; } - int GetContentsStart() const { return m_ContentsStart; } - int GetContentsEnd() const { return m_ContentsEnd; } - - void SetTitle(const wxString& title) { m_Title = title; } - void SetBasePath(const wxString& path) { m_BasePath = path; } - void SetStart(const wxString& start) { m_Start = start; } - - // returns full filename of page (which is part of the book), - // i.e. with book's basePath prepended. If page is already absolute - // path, basePath is _not_ prepended. - wxString GetFullPath(const wxString &page) const; - -protected: - wxString m_BookFile; - wxString m_BasePath; - wxString m_Title; - wxString m_Start; - int m_ContentsStart; - int m_ContentsEnd; -}; - - -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxHtmlBookRecord, wxHtmlBookRecArray, - WXDLLIMPEXP_HTML); - -struct WXDLLIMPEXP_HTML wxHtmlHelpDataItem -{ - wxHtmlHelpDataItem() : level(0), parent(NULL), id(wxID_ANY), book(NULL) {} - - int level; - wxHtmlHelpDataItem *parent; - int id; - wxString name; - wxString page; - wxHtmlBookRecord *book; - - // returns full filename of m_Page, i.e. with book's basePath prepended - wxString GetFullPath() const { return book->GetFullPath(page); } - - // returns item indented with spaces if it has level>1: - wxString GetIndentedName() const; -}; - -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxHtmlHelpDataItem, wxHtmlHelpDataItems, - WXDLLIMPEXP_HTML); - - -//------------------------------------------------------------------------------ -// wxHtmlSearchEngine -// This class takes input streams and scans them for occurrence -// of keyword(s) -//------------------------------------------------------------------------------ - -class WXDLLIMPEXP_HTML wxHtmlSearchEngine : public wxObject -{ -public: - wxHtmlSearchEngine() : wxObject() {} - virtual ~wxHtmlSearchEngine() {} - - // Sets the keyword we will be searching for - virtual void LookFor(const wxString& keyword, bool case_sensitive, bool whole_words_only); - - // Scans the stream for the keyword. - // Returns true if the stream contains keyword, fALSE otherwise - virtual bool Scan(const wxFSFile& file); - -private: - wxString m_Keyword; - bool m_CaseSensitive; - bool m_WholeWords; - - wxDECLARE_NO_COPY_CLASS(wxHtmlSearchEngine); -}; - - -// State information of a search action. I'd have preferred to make this a -// nested class inside wxHtmlHelpData, but that's against coding standards :-( -// Never construct this class yourself, obtain a copy from -// wxHtmlHelpData::PrepareKeywordSearch(const wxString& key) -class WXDLLIMPEXP_HTML wxHtmlSearchStatus -{ -public: - // constructor; supply wxHtmlHelpData ptr, the keyword and (optionally) the - // title of the book to search. By default, all books are searched. - wxHtmlSearchStatus(wxHtmlHelpData* base, const wxString& keyword, - bool case_sensitive, bool whole_words_only, - const wxString& book = wxEmptyString); - bool Search(); // do the next iteration - bool IsActive() { return m_Active; } - int GetCurIndex() { return m_CurIndex; } - int GetMaxIndex() { return m_MaxIndex; } - const wxString& GetName() { return m_Name; } - - const wxHtmlHelpDataItem *GetCurItem() const { return m_CurItem; } - -private: - wxHtmlHelpData* m_Data; - wxHtmlSearchEngine m_Engine; - wxString m_Keyword, m_Name; - wxString m_LastPage; - wxHtmlHelpDataItem* m_CurItem; - bool m_Active; // search is not finished - int m_CurIndex; // where we are now - int m_MaxIndex; // number of files we search - // For progress bar: 100*curindex/maxindex = % complete - - wxDECLARE_NO_COPY_CLASS(wxHtmlSearchStatus); -}; - -class WXDLLIMPEXP_HTML wxHtmlHelpData : public wxObject -{ - wxDECLARE_DYNAMIC_CLASS(wxHtmlHelpData); - friend class wxHtmlSearchStatus; - -public: - wxHtmlHelpData(); - virtual ~wxHtmlHelpData(); - - // Sets directory where temporary files are stored. - // These temp files are index & contents file in binary (much faster to read) - // form. These files are NOT deleted on program's exit. - void SetTempDir(const wxString& path); - - // Adds new book. 'book' is location of .htb file (stands for "html book"). - // See documentation for details on its format. - // Returns success. - bool AddBook(const wxString& book); - bool AddBookParam(const wxFSFile& bookfile, - wxFontEncoding encoding, - const wxString& title, const wxString& contfile, - const wxString& indexfile = wxEmptyString, - const wxString& deftopic = wxEmptyString, - const wxString& path = wxEmptyString); - - // Some accessing stuff: - - // returns URL of page on basis of (file)name - wxString FindPageByName(const wxString& page); - // returns URL of page on basis of MS id - wxString FindPageById(int id); - - const wxHtmlBookRecArray& GetBookRecArray() const { return m_bookRecords; } - - const wxHtmlHelpDataItems& GetContentsArray() const { return m_contents; } - const wxHtmlHelpDataItems& GetIndexArray() const { return m_index; } - -protected: - wxString m_tempPath; - - // each book has one record in this array: - wxHtmlBookRecArray m_bookRecords; - - wxHtmlHelpDataItems m_contents; // list of all available books and pages - wxHtmlHelpDataItems m_index; // list of index itesm - -protected: - // Imports .hhp files (MS HTML Help Workshop) - bool LoadMSProject(wxHtmlBookRecord *book, wxFileSystem& fsys, - const wxString& indexfile, const wxString& contentsfile); - // Reads binary book - bool LoadCachedBook(wxHtmlBookRecord *book, wxInputStream *f); - // Writes binary book - bool SaveCachedBook(wxHtmlBookRecord *book, wxOutputStream *f); - - wxDECLARE_NO_COPY_CLASS(wxHtmlHelpData); -}; - -#endif - -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpdlg.h deleted file mode 100644 index 0f1f0eb8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpdlg.h +++ /dev/null @@ -1,89 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/helpdlg.h -// Purpose: wxHtmlHelpDialog -// Notes: Based on htmlhelp.cpp, implementing a monolithic -// HTML Help controller class, by Vaclav Slavik -// Author: Harm van der Heijden, Vaclav Slavik, Julian Smart -// Copyright: (c) Harm van der Heijden, Vaclav Slavik, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HELPDLG_H_ -#define _WX_HELPDLG_H_ - -#include "wx/defs.h" - -#if wxUSE_WXHTML_HELP - -#include "wx/html/helpdata.h" -#include "wx/window.h" -#include "wx/dialog.h" -#include "wx/frame.h" -#include "wx/config.h" -#include "wx/splitter.h" -#include "wx/notebook.h" -#include "wx/listbox.h" -#include "wx/choice.h" -#include "wx/combobox.h" -#include "wx/checkbox.h" -#include "wx/stattext.h" -#include "wx/html/htmlwin.h" -#include "wx/html/helpwnd.h" -#include "wx/html/htmprint.h" - -class WXDLLIMPEXP_FWD_HTML wxHtmlHelpController; -class WXDLLIMPEXP_FWD_HTML wxHtmlHelpWindow; - -class WXDLLIMPEXP_HTML wxHtmlHelpDialog : public wxDialog -{ - wxDECLARE_DYNAMIC_CLASS(wxHtmlHelpDialog); - -public: - wxHtmlHelpDialog(wxHtmlHelpData* data = NULL) { Init(data); } - wxHtmlHelpDialog(wxWindow* parent, wxWindowID wxWindowID, - const wxString& title = wxEmptyString, - int style = wxHF_DEFAULT_STYLE, wxHtmlHelpData* data = NULL); - virtual ~wxHtmlHelpDialog(); - - bool Create(wxWindow* parent, wxWindowID id, const wxString& title = wxEmptyString, - int style = wxHF_DEFAULT_STYLE); - - /// Returns the data associated with this dialog. - wxHtmlHelpData* GetData() { return m_Data; } - - /// Returns the controller that created this dialog. - wxHtmlHelpController* GetController() const { return m_helpController; } - - /// Sets the controller associated with this dialog. - void SetController(wxHtmlHelpController* controller) { m_helpController = controller; } - - /// Returns the help window. - wxHtmlHelpWindow* GetHelpWindow() const { return m_HtmlHelpWin; } - - // Sets format of title of the frame. Must contain exactly one "%s" - // (for title of displayed HTML page) - void SetTitleFormat(const wxString& format); - - // Override to add custom buttons to the toolbar - virtual void AddToolbarButtons(wxToolBar* WXUNUSED(toolBar), int WXUNUSED(style)) {} - -protected: - void Init(wxHtmlHelpData* data = NULL); - - void OnCloseWindow(wxCloseEvent& event); - -protected: - // Temporary pointer to pass to window - wxHtmlHelpData* m_Data; - wxString m_TitleFormat; // title of the help frame - wxHtmlHelpWindow *m_HtmlHelpWin; - wxHtmlHelpController* m_helpController; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxHtmlHelpDialog); -}; - -#endif - // wxUSE_WXHTML_HELP - -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpfrm.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpfrm.h deleted file mode 100644 index 6bd31534..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpfrm.h +++ /dev/null @@ -1,157 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/helpfrm.h -// Purpose: wxHtmlHelpFrame -// Notes: Based on htmlhelp.cpp, implementing a monolithic -// HTML Help controller class, by Vaclav Slavik -// Author: Harm van der Heijden and Vaclav Slavik -// Copyright: (c) Harm van der Heijden and Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HELPFRM_H_ -#define _WX_HELPFRM_H_ - -#include "wx/defs.h" - -#if wxUSE_WXHTML_HELP - -#include "wx/helpbase.h" -#include "wx/html/helpdata.h" -#include "wx/window.h" -#include "wx/frame.h" -#include "wx/config.h" -#include "wx/splitter.h" -#include "wx/notebook.h" -#include "wx/listbox.h" -#include "wx/choice.h" -#include "wx/combobox.h" -#include "wx/checkbox.h" -#include "wx/stattext.h" -#include "wx/html/htmlwin.h" -#include "wx/html/helpwnd.h" -#include "wx/html/htmprint.h" - -class WXDLLIMPEXP_FWD_CORE wxButton; -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; -class WXDLLIMPEXP_FWD_CORE wxTreeEvent; -class WXDLLIMPEXP_FWD_CORE wxTreeCtrl; - - -// style flags for the Help Frame -#define wxHF_TOOLBAR 0x0001 -#define wxHF_CONTENTS 0x0002 -#define wxHF_INDEX 0x0004 -#define wxHF_SEARCH 0x0008 -#define wxHF_BOOKMARKS 0x0010 -#define wxHF_OPEN_FILES 0x0020 -#define wxHF_PRINT 0x0040 -#define wxHF_FLAT_TOOLBAR 0x0080 -#define wxHF_MERGE_BOOKS 0x0100 -#define wxHF_ICONS_BOOK 0x0200 -#define wxHF_ICONS_BOOK_CHAPTER 0x0400 -#define wxHF_ICONS_FOLDER 0x0000 // this is 0 since it is default -#define wxHF_DEFAULT_STYLE (wxHF_TOOLBAR | wxHF_CONTENTS | \ - wxHF_INDEX | wxHF_SEARCH | \ - wxHF_BOOKMARKS | wxHF_PRINT) -//compatibility: -#define wxHF_OPENFILES wxHF_OPEN_FILES -#define wxHF_FLATTOOLBAR wxHF_FLAT_TOOLBAR -#define wxHF_DEFAULTSTYLE wxHF_DEFAULT_STYLE - -struct wxHtmlHelpMergedIndexItem; -class wxHtmlHelpMergedIndex; - -class WXDLLIMPEXP_FWD_CORE wxHelpControllerBase; -class WXDLLIMPEXP_FWD_HTML wxHtmlHelpController; -class WXDLLIMPEXP_FWD_HTML wxHtmlHelpWindow; - -class WXDLLIMPEXP_HTML wxHtmlHelpFrame : public wxFrame -{ - wxDECLARE_DYNAMIC_CLASS(wxHtmlHelpFrame); - -public: - wxHtmlHelpFrame(wxHtmlHelpData* data = NULL) { Init(data); } - wxHtmlHelpFrame(wxWindow* parent, wxWindowID wxWindowID, - const wxString& title = wxEmptyString, - int style = wxHF_DEFAULT_STYLE, wxHtmlHelpData* data = NULL -#if wxUSE_CONFIG - , wxConfigBase *config=NULL, const wxString& rootpath = wxEmptyString -#endif // wxUSE_CONFIG - ); - bool Create(wxWindow* parent, wxWindowID id, const wxString& title = wxEmptyString, - int style = wxHF_DEFAULT_STYLE -#if wxUSE_CONFIG - , wxConfigBase *config=NULL, const wxString& rootpath = wxEmptyString -#endif // wxUSE_CONFIG - ); - virtual ~wxHtmlHelpFrame(); - - /// Returns the data associated with the window. - wxHtmlHelpData* GetData() { return m_Data; } - - /// Returns the help controller associated with the window. - wxHtmlHelpController* GetController() const { return m_helpController; } - - /// Sets the help controller associated with the window. - void SetController(wxHtmlHelpController* controller); - - /// Returns the help window. - wxHtmlHelpWindow* GetHelpWindow() const { return m_HtmlHelpWin; } - - // Sets format of title of the frame. Must contain exactly one "%s" - // (for title of displayed HTML page) - void SetTitleFormat(const wxString& format); - -#if wxUSE_CONFIG - // For compatibility - void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString); -#endif // wxUSE_CONFIG - - // Make the help controller's frame 'modal' if - // needed - void AddGrabIfNeeded(); - - // Override to add custom buttons to the toolbar - virtual void AddToolbarButtons(wxToolBar* WXUNUSED(toolBar), int WXUNUSED(style)) {} - - void SetShouldPreventAppExit(bool enable); - - // we don't want to prevent the app from closing just because a help window - // remains opened - virtual bool ShouldPreventAppExit() const wxOVERRIDE { return m_shouldPreventAppExit; } - -protected: - void Init(wxHtmlHelpData* data = NULL); - - void OnCloseWindow(wxCloseEvent& event); - void OnActivate(wxActivateEvent& event); - -#ifdef __WXMAC__ - void OnClose(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); -#endif - - // Images: - enum { - IMG_Book = 0, - IMG_Folder, - IMG_Page - }; - -protected: - wxHtmlHelpData* m_Data; - bool m_DataCreated; // m_Data created by frame, or supplied? - wxString m_TitleFormat; // title of the help frame - wxHtmlHelpWindow *m_HtmlHelpWin; - wxHtmlHelpController* m_helpController; - bool m_shouldPreventAppExit; - -private: - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxHtmlHelpFrame); -}; - -#endif // wxUSE_WXHTML_HELP - -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpwnd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpwnd.h deleted file mode 100644 index 54639ad8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/helpwnd.h +++ /dev/null @@ -1,304 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/helpwnd.h -// Purpose: wxHtmlHelpWindow -// Notes: Based on htmlhelp.cpp, implementing a monolithic -// HTML Help controller class, by Vaclav Slavik -// Author: Harm van der Heijden and Vaclav Slavik -// Copyright: (c) Harm van der Heijden and Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HELPWND_H_ -#define _WX_HELPWND_H_ - -#include "wx/defs.h" - -#if wxUSE_WXHTML_HELP - -#include "wx/helpbase.h" -#include "wx/html/helpdata.h" -#include "wx/window.h" -#include "wx/frame.h" -#include "wx/config.h" -#include "wx/splitter.h" -#include "wx/notebook.h" -#include "wx/listbox.h" -#include "wx/choice.h" -#include "wx/combobox.h" -#include "wx/checkbox.h" -#include "wx/stattext.h" -#include "wx/hash.h" -#include "wx/html/htmlwin.h" -#include "wx/html/htmprint.h" - -class WXDLLIMPEXP_FWD_CORE wxButton; -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; -class WXDLLIMPEXP_FWD_CORE wxTreeEvent; -class WXDLLIMPEXP_FWD_CORE wxTreeCtrl; - -// style flags for the Help Frame -#define wxHF_TOOLBAR 0x0001 -#define wxHF_CONTENTS 0x0002 -#define wxHF_INDEX 0x0004 -#define wxHF_SEARCH 0x0008 -#define wxHF_BOOKMARKS 0x0010 -#define wxHF_OPEN_FILES 0x0020 -#define wxHF_PRINT 0x0040 -#define wxHF_FLAT_TOOLBAR 0x0080 -#define wxHF_MERGE_BOOKS 0x0100 -#define wxHF_ICONS_BOOK 0x0200 -#define wxHF_ICONS_BOOK_CHAPTER 0x0400 -#define wxHF_ICONS_FOLDER 0x0000 // this is 0 since it is default -#define wxHF_DEFAULT_STYLE (wxHF_TOOLBAR | wxHF_CONTENTS | \ - wxHF_INDEX | wxHF_SEARCH | \ - wxHF_BOOKMARKS | wxHF_PRINT) -//compatibility: -#define wxHF_OPENFILES wxHF_OPEN_FILES -#define wxHF_FLATTOOLBAR wxHF_FLAT_TOOLBAR -#define wxHF_DEFAULTSTYLE wxHF_DEFAULT_STYLE - -struct wxHtmlHelpFrameCfg -{ - int x, y, w, h; - long sashpos; - bool navig_on; -}; - -struct wxHtmlHelpMergedIndexItem; -class wxHtmlHelpMergedIndex; - -class WXDLLIMPEXP_FWD_CORE wxHelpControllerBase; -class WXDLLIMPEXP_FWD_HTML wxHtmlHelpController; - -/*! - * Help window - */ - -class WXDLLIMPEXP_HTML wxHtmlHelpWindow : public wxWindow -{ - wxDECLARE_DYNAMIC_CLASS(wxHtmlHelpWindow); - -public: - wxHtmlHelpWindow(wxHtmlHelpData* data = NULL) { Init(data); } - wxHtmlHelpWindow(wxWindow* parent, wxWindowID wxWindowID, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int style = wxTAB_TRAVERSAL|wxNO_BORDER, - int helpStyle = wxHF_DEFAULT_STYLE, - wxHtmlHelpData* data = NULL); - bool Create(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int style = wxTAB_TRAVERSAL|wxNO_BORDER, - int helpStyle = wxHF_DEFAULT_STYLE); - virtual ~wxHtmlHelpWindow(); - - wxHtmlHelpData* GetData() { return m_Data; } - wxHtmlHelpController* GetController() const { return m_helpController; } - void SetController(wxHtmlHelpController* controller); - - // Displays page x. If not found it will offect the user a choice of - // searching books. - // Looking for the page runs in these steps: - // 1. try to locate file named x (if x is for example "doc/howto.htm") - // 2. try to open starting page of book x - // 3. try to find x in contents (if x is for example "How To ...") - // 4. try to find x in index (if x is for example "How To ...") - bool Display(const wxString& x); - - // Alternative version that works with numeric ID. - // (uses extension to MS format, , see docs) - bool Display(int id); - - // Displays help window and focuses contents. - bool DisplayContents(); - - // Displays help window and focuses index. - bool DisplayIndex(); - - // Searches for keyword. Returns true and display page if found, return - // false otherwise - // Syntax of keyword is Altavista-like: - // * words are separated by spaces - // (but "\"hello world\"" is only one world "hello world") - // * word may be pretended by + or - - // (+ : page must contain the word ; - : page can't contain the word) - // * if there is no + or - before the word, + is default - bool KeywordSearch(const wxString& keyword, - wxHelpSearchMode mode = wxHELP_SEARCH_ALL); - -#if wxUSE_CONFIG - void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString) - { - m_Config = config; - m_ConfigRoot = rootpath; - ReadCustomization(config, rootpath); - } - - // Saves custom settings into cfg config. it will use the path 'path' - // if given, otherwise it will save info into currently selected path. - // saved values : things set by SetFonts, SetBorders. - void ReadCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString); - void WriteCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString); -#endif // wxUSE_CONFIG - - // call this to let wxHtmlHelpWindow know page changed - void NotifyPageChanged(); - - // Refreshes Contents and Index tabs - void RefreshLists(); - - // Gets the HTML window - wxHtmlWindow* GetHtmlWindow() const { return m_HtmlWin; } - - // Gets the splitter window - wxSplitterWindow* GetSplitterWindow() const { return m_Splitter; } - - // Gets the toolbar - wxToolBar* GetToolBar() const { return m_toolBar; } - - // Gets the configuration data - wxHtmlHelpFrameCfg& GetCfgData() { return m_Cfg; } - - // Gets the tree control - wxTreeCtrl *GetTreeCtrl() const { return m_ContentsBox; } - -protected: - void Init(wxHtmlHelpData* data = NULL); - - // Adds items to m_Contents tree control - void CreateContents(); - - // Adds items to m_IndexList - void CreateIndex(); - - // Add books to search choice panel - void CreateSearch(); - - // Updates "merged index" structure that combines indexes of all books - // into better searchable structure - void UpdateMergedIndex(); - - // Add custom buttons to toolbar - virtual void AddToolbarButtons(wxToolBar *toolBar, int style); - - // Displays options dialog (fonts etc.) - virtual void OptionsDialog(); - - void OnToolbar(wxCommandEvent& event); - void OnContentsSel(wxTreeEvent& event); - void OnIndexSel(wxCommandEvent& event); - void OnIndexFind(wxCommandEvent& event); - void OnIndexAll(wxCommandEvent& event); - void OnSearchSel(wxCommandEvent& event); - void OnSearch(wxCommandEvent& event); - void OnBookmarksSel(wxCommandEvent& event); - void OnSize(wxSizeEvent& event); - - // Images: - enum { - IMG_Book = 0, - IMG_Folder, - IMG_Page - }; - -protected: - wxHtmlHelpData* m_Data; - bool m_DataCreated; // m_Data created by frame, or supplied? - wxString m_TitleFormat; // title of the help frame - // below are various pointers to GUI components - wxHtmlWindow *m_HtmlWin; - wxSplitterWindow *m_Splitter; - wxPanel *m_NavigPan; - wxNotebook *m_NavigNotebook; - wxTreeCtrl *m_ContentsBox; - wxTextCtrl *m_IndexText; - wxButton *m_IndexButton; - wxButton *m_IndexButtonAll; - wxListBox *m_IndexList; - wxTextCtrl *m_SearchText; - wxButton *m_SearchButton; - wxListBox *m_SearchList; - wxChoice *m_SearchChoice; - wxStaticText *m_IndexCountInfo; - wxCheckBox *m_SearchCaseSensitive; - wxCheckBox *m_SearchWholeWords; - wxToolBar* m_toolBar; - - wxComboBox *m_Bookmarks; - wxArrayString m_BookmarksNames, m_BookmarksPages; - - wxHtmlHelpFrameCfg m_Cfg; - -#if wxUSE_CONFIG - wxConfigBase *m_Config; - wxString m_ConfigRoot; -#endif // wxUSE_CONFIG - - // pagenumbers of controls in notebook (usually 0,1,2) - int m_ContentsPage; - int m_IndexPage; - int m_SearchPage; - - // lists of available fonts (used in options dialog) - wxArrayString *m_NormalFonts, *m_FixedFonts; - int m_FontSize; // 0,1,2 = small,medium,big - wxString m_NormalFace, m_FixedFace; - - bool m_UpdateContents; - -#if wxUSE_PRINTING_ARCHITECTURE - wxHtmlEasyPrinting *m_Printer; -#endif - wxHashTable *m_PagesHash; - wxHtmlHelpController* m_helpController; - - int m_hfStyle; - -private: - void DoIndexFind(); - void DoIndexAll(); - void DisplayIndexItem(const wxHtmlHelpMergedIndexItem *it); - wxHtmlHelpMergedIndex *m_mergedIndex; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxHtmlHelpWindow); -}; - -/*! - * Command IDs - */ - -enum -{ - //wxID_HTML_HELPFRAME = wxID_HIGHEST + 1, - wxID_HTML_PANEL = wxID_HIGHEST + 10, - wxID_HTML_BACK, - wxID_HTML_FORWARD, - wxID_HTML_UPNODE, - wxID_HTML_UP, - wxID_HTML_DOWN, - wxID_HTML_PRINT, - wxID_HTML_OPENFILE, - wxID_HTML_OPTIONS, - wxID_HTML_BOOKMARKSLIST, - wxID_HTML_BOOKMARKSADD, - wxID_HTML_BOOKMARKSREMOVE, - wxID_HTML_TREECTRL, - wxID_HTML_INDEXPAGE, - wxID_HTML_INDEXLIST, - wxID_HTML_INDEXTEXT, - wxID_HTML_INDEXBUTTON, - wxID_HTML_INDEXBUTTONALL, - wxID_HTML_NOTEBOOK, - wxID_HTML_SEARCHPAGE, - wxID_HTML_SEARCHTEXT, - wxID_HTML_SEARCHLIST, - wxID_HTML_SEARCHBUTTON, - wxID_HTML_SEARCHCHOICE, - wxID_HTML_COUNTINFO -}; - -#endif // wxUSE_WXHTML_HELP - -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlcell.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlcell.h deleted file mode 100644 index f4190de4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlcell.h +++ /dev/null @@ -1,702 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/htmlcell.h -// Purpose: wxHtmlCell class is used by wxHtmlWindow/wxHtmlWinParser -// as a basic visual element of HTML page -// Author: Vaclav Slavik -// Copyright: (c) 1999-2003 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HTMLCELL_H_ -#define _WX_HTMLCELL_H_ - -#include "wx/defs.h" - -#if wxUSE_HTML - -#include "wx/html/htmltag.h" -#include "wx/html/htmldefs.h" -#include "wx/window.h" - - -class WXDLLIMPEXP_FWD_HTML wxHtmlWindowInterface; -class WXDLLIMPEXP_FWD_HTML wxHtmlLinkInfo; -class WXDLLIMPEXP_FWD_HTML wxHtmlCell; -class WXDLLIMPEXP_FWD_HTML wxHtmlContainerCell; - - -// wxHtmlSelection is data holder with information about text selection. -// Selection is defined by two positions (beginning and end of the selection) -// and two leaf(!) cells at these positions. -class WXDLLIMPEXP_HTML wxHtmlSelection -{ -public: - wxHtmlSelection() - : m_fromPos(wxDefaultPosition), m_toPos(wxDefaultPosition), - m_fromCharacterPos(-1), m_toCharacterPos(-1), - m_fromCell(NULL), m_toCell(NULL) {} - - // this version is used for the user selection defined with the mouse - void Set(const wxPoint& fromPos, const wxHtmlCell *fromCell, - const wxPoint& toPos, const wxHtmlCell *toCell); - void Set(const wxHtmlCell *fromCell, const wxHtmlCell *toCell); - - const wxHtmlCell *GetFromCell() const { return m_fromCell; } - const wxHtmlCell *GetToCell() const { return m_toCell; } - - // these values are in absolute coordinates: - const wxPoint& GetFromPos() const { return m_fromPos; } - const wxPoint& GetToPos() const { return m_toPos; } - - // these are From/ToCell's private data - void ClearFromToCharacterPos() { m_toCharacterPos = m_fromCharacterPos = -1; } - bool AreFromToCharacterPosSet() const { return m_toCharacterPos != -1 && m_fromCharacterPos != -1; } - - void SetFromCharacterPos (wxCoord pos) { m_fromCharacterPos = pos; } - void SetToCharacterPos (wxCoord pos) { m_toCharacterPos = pos; } - wxCoord GetFromCharacterPos () const { return m_fromCharacterPos; } - wxCoord GetToCharacterPos () const { return m_toCharacterPos; } - - bool IsEmpty() const - { return m_fromPos == wxDefaultPosition && - m_toPos == wxDefaultPosition; } - -private: - wxPoint m_fromPos, m_toPos; - wxCoord m_fromCharacterPos, m_toCharacterPos; - const wxHtmlCell *m_fromCell, *m_toCell; -}; - - - -enum wxHtmlSelectionState -{ - wxHTML_SEL_OUT, // currently rendered cell is outside the selection - wxHTML_SEL_IN, // ... is inside selection - wxHTML_SEL_CHANGING // ... is the cell on which selection state changes -}; - -// Selection state is passed to wxHtmlCell::Draw so that it can render itself -// differently e.g. when inside text selection or outside it. -class WXDLLIMPEXP_HTML wxHtmlRenderingState -{ -public: - wxHtmlRenderingState() : m_selState(wxHTML_SEL_OUT) { m_bgMode = wxSOLID; } - - void SetSelectionState(wxHtmlSelectionState s) { m_selState = s; } - wxHtmlSelectionState GetSelectionState() const { return m_selState; } - - void SetFgColour(const wxColour& c) { m_fgColour = c; } - const wxColour& GetFgColour() const { return m_fgColour; } - void SetBgColour(const wxColour& c) { m_bgColour = c; } - const wxColour& GetBgColour() const { return m_bgColour; } - void SetBgMode(int m) { m_bgMode = m; } - int GetBgMode() const { return m_bgMode; } - -private: - wxHtmlSelectionState m_selState; - wxColour m_fgColour, m_bgColour; - int m_bgMode; -}; - - -// HTML rendering customization. This class is used when rendering wxHtmlCells -// as a callback: -class WXDLLIMPEXP_HTML wxHtmlRenderingStyle -{ -public: - virtual ~wxHtmlRenderingStyle() {} - virtual wxColour GetSelectedTextColour(const wxColour& clr) = 0; - virtual wxColour GetSelectedTextBgColour(const wxColour& clr) = 0; -}; - -// Standard style: -class WXDLLIMPEXP_HTML wxDefaultHtmlRenderingStyle : public wxHtmlRenderingStyle -{ -public: - virtual wxColour GetSelectedTextColour(const wxColour& clr) wxOVERRIDE; - virtual wxColour GetSelectedTextBgColour(const wxColour& clr) wxOVERRIDE; -}; - - -// Information given to cells when drawing them. Contains rendering state, -// selection information and rendering style object that can be used to -// customize the output. -class WXDLLIMPEXP_HTML wxHtmlRenderingInfo -{ -public: - wxHtmlRenderingInfo() - : m_selection(NULL), - m_style(NULL), - m_prevUnderlined(false) - { - } - - void SetSelection(wxHtmlSelection *s) { m_selection = s; } - wxHtmlSelection *GetSelection() const { return m_selection; } - - void SetStyle(wxHtmlRenderingStyle *style) { m_style = style; } - wxHtmlRenderingStyle& GetStyle() { return *m_style; } - - void SetCurrentUnderlined(bool u) { m_prevUnderlined = u; } - bool WasPreviousUnderlined() const { return m_prevUnderlined; } - - wxHtmlRenderingState& GetState() { return m_state; } - -protected: - wxHtmlSelection *m_selection; - wxHtmlRenderingStyle *m_style; - wxHtmlRenderingState m_state; - bool m_prevUnderlined; -}; - - -// Flags for wxHtmlCell::FindCellByPos -enum -{ - wxHTML_FIND_EXACT = 1, - wxHTML_FIND_NEAREST_BEFORE = 2, - wxHTML_FIND_NEAREST_AFTER = 4 -}; - - -// Superscript/subscript/normal script mode of a cell -enum wxHtmlScriptMode -{ - wxHTML_SCRIPT_NORMAL, - wxHTML_SCRIPT_SUB, - wxHTML_SCRIPT_SUP -}; - - -// --------------------------------------------------------------------------- -// wxHtmlCell -// Internal data structure. It represents fragments of parsed -// HTML page - a word, picture, table, horizontal line and so -// on. It is used by wxHtmlWindow to represent HTML page in -// memory. -// --------------------------------------------------------------------------- - - -class WXDLLIMPEXP_HTML wxHtmlCell : public wxObject -{ -public: - wxHtmlCell(); - virtual ~wxHtmlCell(); - - void SetParent(wxHtmlContainerCell *p) {m_Parent = p;} - wxHtmlContainerCell *GetParent() const {return m_Parent;} - - int GetPosX() const {return m_PosX;} - int GetPosY() const {return m_PosY;} - int GetWidth() const {return m_Width;} - - // Returns the maximum possible length of the cell. - // Call Layout at least once before using GetMaxTotalWidth() - virtual int GetMaxTotalWidth() const { return m_Width; } - - int GetHeight() const {return m_Height;} - int GetDescent() const {return m_Descent;} - - void SetScriptMode(wxHtmlScriptMode mode, long previousBase); - wxHtmlScriptMode GetScriptMode() const { return m_ScriptMode; } - long GetScriptBaseline() { return m_ScriptBaseline; } - - // Formatting cells are not visible on the screen, they only alter - // renderer's state. - bool IsFormattingCell() const { return m_Width == 0 && m_Height == 0; } - - const wxString& GetId() const { return m_id; } - void SetId(const wxString& id) { m_id = id; } - - // returns the link associated with this cell. The position is position - // within the cell so it varies from 0 to m_Width, from 0 to m_Height - virtual wxHtmlLinkInfo* GetLink(int WXUNUSED(x) = 0, - int WXUNUSED(y) = 0) const - { return m_Link; } - - // Returns cursor to be used when mouse is over the cell, can be - // overridden by the derived classes to use a different cursor whenever the - // mouse is over this cell. - virtual wxCursor GetMouseCursor(wxHtmlWindowInterface *window) const; - - // Returns cursor to be used when mouse is over the given point, can be - // overridden if the cursor should change depending on where exactly inside - // the cell the mouse is. - virtual wxCursor GetMouseCursorAt(wxHtmlWindowInterface *window, - const wxPoint& relPos) const; - - // return next cell among parent's cells - wxHtmlCell *GetNext() const {return m_Next;} - // returns first child cell (if there are any, i.e. if this is container): - virtual wxHtmlCell* GetFirstChild() const { return NULL; } - - // members writing methods - virtual void SetPos(int x, int y) {m_PosX = x, m_PosY = y;} - void SetLink(const wxHtmlLinkInfo& link); - void SetNext(wxHtmlCell *cell) {m_Next = cell;} - - // 1. adjust cell's width according to the fact that maximal possible width - // is w. (this has sense when working with horizontal lines, tables - // etc.) - // 2. prepare layout (=fill-in m_PosX, m_PosY (and sometime m_Height) - // members) = place items to fit window, according to the width w - virtual void Layout(int w); - - // renders the cell - virtual void Draw(wxDC& WXUNUSED(dc), - int WXUNUSED(x), int WXUNUSED(y), - int WXUNUSED(view_y1), int WXUNUSED(view_y2), - wxHtmlRenderingInfo& WXUNUSED(info)) {} - - // proceed drawing actions in case the cell is not visible (scrolled out of - // screen). This is needed to change fonts, colors and so on. - virtual void DrawInvisible(wxDC& WXUNUSED(dc), - int WXUNUSED(x), int WXUNUSED(y), - wxHtmlRenderingInfo& WXUNUSED(info)) {} - - // This method returns pointer to the FIRST cell for that - // the condition - // is true. It first checks if the condition is true for this - // cell and then calls m_Next->Find(). (Note: it checks - // all subcells if the cell is container) - // Condition is unique condition identifier (see htmldefs.h) - // (user-defined condition IDs should start from 10000) - // and param is optional parameter - // Example : m_Cell->Find(wxHTML_COND_ISANCHOR, "news"); - // returns pointer to anchor news - virtual const wxHtmlCell* Find(int condition, const void* param) const; - - - // This function is called when mouse button is clicked over the cell. - // Returns true if a link is clicked, false otherwise. - // - // 'window' is pointer to wxHtmlWindowInterface of the window which - // generated the event. - // HINT: if this handling is not enough for you you should use - // wxHtmlWidgetCell - virtual bool ProcessMouseClick(wxHtmlWindowInterface *window, - const wxPoint& pos, - const wxMouseEvent& event); - - // This method used to adjust pagebreak position. The parameter is variable - // that contains y-coordinate of page break (= horizontal line that should - // not be crossed by words, images etc.). If this cell cannot be divided - // into two pieces (each one on another page) then it moves the pagebreak - // few pixels up. - // - // Returned value : true if pagebreak was modified, false otherwise - // Usage : while (container->AdjustPagebreak(&p)) {} - virtual bool AdjustPagebreak(int *pagebreak, - const wxArrayInt& known_pagebreaks, - int pageHeight) const; - - // Sets cell's behaviour on pagebreaks (see AdjustPagebreak). Default - // is true - the cell can be split on two pages - // If there is no way to fit a cell in the current page size, the cell - // is always split, ignoring this setting. - void SetCanLiveOnPagebreak(bool can) { m_CanLiveOnPagebreak = can; } - - // Can the line be broken before this cell? - virtual bool IsLinebreakAllowed() const - { return !IsFormattingCell(); } - - // Returns true for simple == terminal cells, i.e. not composite ones. - // This if for internal usage only and may disappear in future versions! - virtual bool IsTerminalCell() const { return true; } - - // Find a cell inside this cell positioned at the given coordinates - // (relative to this's positions). Returns NULL if no such cell exists. - // The flag can be used to specify whether to look for terminal or - // nonterminal cells or both. In either case, returned cell is deepest - // cell in cells tree that contains [x,y]. - virtual wxHtmlCell *FindCellByPos(wxCoord x, wxCoord y, - unsigned flags = wxHTML_FIND_EXACT) const; - - // Returns absolute position of the cell on HTML canvas. - // If rootCell is provided, then it's considered to be the root of the - // hierarchy and the returned value is relative to it. - wxPoint GetAbsPos(wxHtmlCell *rootCell = NULL) const; - - // Returns root cell of the hierarchy (i.e. grand-grand-...-parent that - // doesn't have a parent itself) - wxHtmlCell *GetRootCell() const; - - // Returns first (last) terminal cell inside this cell. It may return NULL, - // but it is rare -- only if there are no terminals in the tree. - virtual wxHtmlCell *GetFirstTerminal() const - { return wxConstCast(this, wxHtmlCell); } - virtual wxHtmlCell *GetLastTerminal() const - { return wxConstCast(this, wxHtmlCell); } - - // Returns cell's depth, i.e. how far under the root cell it is - // (if it is the root, depth is 0) - unsigned GetDepth() const; - - // Returns true if the cell appears before 'cell' in natural order of - // cells (= as they are read). If cell A is (grand)parent of cell B, - // then both A.IsBefore(B) and B.IsBefore(A) always return true. - bool IsBefore(wxHtmlCell *cell) const; - - // Converts the cell into text representation. If sel != NULL then - // only part of the cell inside the selection is converted. - virtual wxString ConvertToText(wxHtmlSelection *WXUNUSED(sel)) const - { return wxEmptyString; } - -protected: - // pointer to the next cell - wxHtmlCell *m_Next; - // pointer to parent cell - wxHtmlContainerCell *m_Parent; - - // dimensions of fragment (m_Descent is used to position text & images) - int m_Width, m_Height, m_Descent; - // position where the fragment is drawn: - int m_PosX, m_PosY; - - // superscript/subscript/normal: - wxHtmlScriptMode m_ScriptMode; - long m_ScriptBaseline; - - // destination address if this fragment is hypertext link, NULL otherwise - wxHtmlLinkInfo *m_Link; - // true if this cell can be placed on pagebreak, false otherwise - bool m_CanLiveOnPagebreak; - // unique identifier of the cell, generated from "id" property of tags - wxString m_id; - - wxDECLARE_ABSTRACT_CLASS(wxHtmlCell); - wxDECLARE_NO_COPY_CLASS(wxHtmlCell); -}; - - - - -// ---------------------------------------------------------------------------- -// Inherited cells: -// ---------------------------------------------------------------------------- - - -// ---------------------------------------------------------------------------- -// wxHtmlWordCell -// Single word in input stream. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_HTML wxHtmlWordCell : public wxHtmlCell -{ -public: - wxHtmlWordCell(const wxString& word, const wxDC& dc); - void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2, - wxHtmlRenderingInfo& info) wxOVERRIDE; - virtual wxCursor GetMouseCursor(wxHtmlWindowInterface *window) const wxOVERRIDE; - virtual wxString ConvertToText(wxHtmlSelection *sel) const wxOVERRIDE; - bool IsLinebreakAllowed() const wxOVERRIDE { return m_allowLinebreak; } - - void SetPreviousWord(wxHtmlWordCell *cell); - -protected: - virtual wxString GetAllAsText() const - { return m_Word; } - virtual wxString GetPartAsText(int begin, int end) const - { return m_Word.Mid(begin, end - begin); } - - void SetSelectionPrivPos(const wxDC& dc, wxHtmlSelection *s) const; - void Split(const wxDC& dc, - const wxPoint& selFrom, const wxPoint& selTo, - unsigned& pos1, unsigned& pos2) const; - - wxString m_Word; - bool m_allowLinebreak; - - wxDECLARE_ABSTRACT_CLASS(wxHtmlWordCell); - wxDECLARE_NO_COPY_CLASS(wxHtmlWordCell); -}; - - -// wxHtmlWordCell specialization for storing text fragments with embedded -// '\t's; these differ from normal words in that the displayed text is -// different from the text copied to clipboard -class WXDLLIMPEXP_HTML wxHtmlWordWithTabsCell : public wxHtmlWordCell -{ -public: - wxHtmlWordWithTabsCell(const wxString& word, - const wxString& wordOrig, - size_t linepos, - const wxDC& dc) - : wxHtmlWordCell(word, dc), - m_wordOrig(wordOrig), - m_linepos(linepos) - {} - -protected: - virtual wxString GetAllAsText() const wxOVERRIDE; - virtual wxString GetPartAsText(int begin, int end) const wxOVERRIDE; - - wxString m_wordOrig; - size_t m_linepos; -}; - - -// Container contains other cells, thus forming tree structure of rendering -// elements. Basic code of layout algorithm is contained in this class. -class WXDLLIMPEXP_HTML wxHtmlContainerCell : public wxHtmlCell -{ -public: - wxHtmlContainerCell(wxHtmlContainerCell *parent); - virtual ~wxHtmlContainerCell(); - - virtual void Layout(int w) wxOVERRIDE; - virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2, - wxHtmlRenderingInfo& info) wxOVERRIDE; - virtual void DrawInvisible(wxDC& dc, int x, int y, - wxHtmlRenderingInfo& info) wxOVERRIDE; - - virtual bool AdjustPagebreak(int *pagebreak, - const wxArrayInt& known_pagebreaks, - int pageHeight) const wxOVERRIDE; - - // insert cell at the end of m_Cells list - void InsertCell(wxHtmlCell *cell); - - // sets horizontal/vertical alignment - void SetAlignHor(int al) {m_AlignHor = al; m_LastLayout = -1;} - int GetAlignHor() const {return m_AlignHor;} - void SetAlignVer(int al) {m_AlignVer = al; m_LastLayout = -1;} - int GetAlignVer() const {return m_AlignVer;} - - // sets left-border indentation. units is one of wxHTML_UNITS_* constants - // what is combination of wxHTML_INDENT_* - void SetIndent(int i, int what, int units = wxHTML_UNITS_PIXELS); - // returns the indentation. ind is one of wxHTML_INDENT_* constants - int GetIndent(int ind) const; - // returns type of value returned by GetIndent(ind) - int GetIndentUnits(int ind) const; - - // sets alignment info based on given tag's params - void SetAlign(const wxHtmlTag& tag); - // sets floating width adjustment - // (examples : 32 percent of parent container, - // -15 pixels percent (this means 100 % - 15 pixels) - void SetWidthFloat(int w, int units) {m_WidthFloat = w; m_WidthFloatUnits = units; m_LastLayout = -1;} - void SetWidthFloat(const wxHtmlTag& tag, double pixel_scale = 1.0); - // sets minimal height of this container. - void SetMinHeight(int h, int align = wxHTML_ALIGN_TOP) {m_MinHeight = h; m_MinHeightAlign = align; m_LastLayout = -1;} - - void SetBackgroundColour(const wxColour& clr) {m_BkColour = clr;} - // returns background colour (of wxNullColour if none set), so that widgets can - // adapt to it: - wxColour GetBackgroundColour(); - void SetBorder(const wxColour& clr1, const wxColour& clr2, int border = 1) {m_Border = border; m_BorderColour1 = clr1, m_BorderColour2 = clr2;} - virtual wxHtmlLinkInfo* GetLink(int x = 0, int y = 0) const wxOVERRIDE; - virtual const wxHtmlCell* Find(int condition, const void* param) const wxOVERRIDE; - - virtual bool ProcessMouseClick(wxHtmlWindowInterface *window, - const wxPoint& pos, - const wxMouseEvent& event) wxOVERRIDE; - - virtual wxHtmlCell* GetFirstChild() const wxOVERRIDE { return m_Cells; } - - // returns last child cell: - wxHtmlCell* GetLastChild() const { return m_LastCell; } - - // see comment in wxHtmlCell about this method - virtual bool IsTerminalCell() const wxOVERRIDE { return false; } - - virtual wxHtmlCell *FindCellByPos(wxCoord x, wxCoord y, - unsigned flags = wxHTML_FIND_EXACT) const wxOVERRIDE; - - virtual wxHtmlCell *GetFirstTerminal() const wxOVERRIDE; - virtual wxHtmlCell *GetLastTerminal() const wxOVERRIDE; - - - // Removes indentation on top or bottom of the container (i.e. above or - // below first/last terminal cell). For internal use only. - virtual void RemoveExtraSpacing(bool top, bool bottom); - - // Returns the maximum possible length of the container. - // Call Layout at least once before using GetMaxTotalWidth() - virtual int GetMaxTotalWidth() const wxOVERRIDE { return m_MaxTotalWidth; } - -protected: - void UpdateRenderingStatePre(wxHtmlRenderingInfo& info, - wxHtmlCell *cell) const; - void UpdateRenderingStatePost(wxHtmlRenderingInfo& info, - wxHtmlCell *cell) const; - -protected: - int m_IndentLeft, m_IndentRight, m_IndentTop, m_IndentBottom; - // indentation of subcells. There is always m_Indent pixels - // big space between given border of the container and the subcells - // it m_Indent < 0 it is in PERCENTS, otherwise it is in pixels - int m_MinHeight, m_MinHeightAlign; - // minimal height. - wxHtmlCell *m_Cells, *m_LastCell; - // internal cells, m_Cells points to the first of them, m_LastCell to the last one. - // (LastCell is needed only to speed-up InsertCell) - int m_AlignHor, m_AlignVer; - // alignment horizontal and vertical (left, center, right) - int m_WidthFloat, m_WidthFloatUnits; - // width float is used in adjustWidth - wxColour m_BkColour; - // background color of this container - int m_Border; - // border size. Draw only if m_Border > 0 - wxColour m_BorderColour1, m_BorderColour2; - // borders color of this container - int m_LastLayout; - // if != -1 then call to Layout may be no-op - // if previous call to Layout has same argument - int m_MaxTotalWidth; - // Maximum possible length if ignoring line wrap - - - wxDECLARE_ABSTRACT_CLASS(wxHtmlContainerCell); - wxDECLARE_NO_COPY_CLASS(wxHtmlContainerCell); -}; - - - -// --------------------------------------------------------------------------- -// wxHtmlColourCell -// Color changer. -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_HTML wxHtmlColourCell : public wxHtmlCell -{ -public: - wxHtmlColourCell(const wxColour& clr, int flags = wxHTML_CLR_FOREGROUND) : wxHtmlCell() {m_Colour = clr; m_Flags = flags;} - virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2, - wxHtmlRenderingInfo& info) wxOVERRIDE; - virtual void DrawInvisible(wxDC& dc, int x, int y, - wxHtmlRenderingInfo& info) wxOVERRIDE; - -protected: - wxColour m_Colour; - unsigned m_Flags; - - wxDECLARE_ABSTRACT_CLASS(wxHtmlColourCell); - wxDECLARE_NO_COPY_CLASS(wxHtmlColourCell); -}; - - - - -//-------------------------------------------------------------------------------- -// wxHtmlFontCell -// Sets actual font used for text rendering -//-------------------------------------------------------------------------------- - -class WXDLLIMPEXP_HTML wxHtmlFontCell : public wxHtmlCell -{ -public: - wxHtmlFontCell(wxFont *font) : wxHtmlCell() { m_Font = (*font); } - virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2, - wxHtmlRenderingInfo& info) wxOVERRIDE; - virtual void DrawInvisible(wxDC& dc, int x, int y, - wxHtmlRenderingInfo& info) wxOVERRIDE; - -protected: - wxFont m_Font; - - wxDECLARE_ABSTRACT_CLASS(wxHtmlFontCell); - wxDECLARE_NO_COPY_CLASS(wxHtmlFontCell); -}; - - - - - - -//-------------------------------------------------------------------------------- -// wxHtmlwidgetCell -// This cell is connected with wxWindow object -// You can use it to insert windows into HTML page -// (buttons, input boxes etc.) -//-------------------------------------------------------------------------------- - -class WXDLLIMPEXP_HTML wxHtmlWidgetCell : public wxHtmlCell -{ -public: - // !!! wnd must have correct parent! - // if w != 0 then the m_Wnd has 'floating' width - it adjust - // it's width according to parent container's width - // (w is percent of parent's width) - wxHtmlWidgetCell(wxWindow *wnd, int w = 0); - virtual ~wxHtmlWidgetCell() { m_Wnd->Destroy(); } - virtual void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2, - wxHtmlRenderingInfo& info) wxOVERRIDE; - virtual void DrawInvisible(wxDC& dc, int x, int y, - wxHtmlRenderingInfo& info) wxOVERRIDE; - virtual void Layout(int w) wxOVERRIDE; - -protected: - wxWindow* m_Wnd; - int m_WidthFloat; - // width float is used in adjustWidth (it is in percents) - - wxDECLARE_ABSTRACT_CLASS(wxHtmlWidgetCell); - wxDECLARE_NO_COPY_CLASS(wxHtmlWidgetCell); -}; - - - -//-------------------------------------------------------------------------------- -// wxHtmlLinkInfo -// Internal data structure. It represents hypertext link -//-------------------------------------------------------------------------------- - -class WXDLLIMPEXP_HTML wxHtmlLinkInfo : public wxObject -{ -public: - wxHtmlLinkInfo() : wxObject() - { m_Href = m_Target = wxEmptyString; m_Event = NULL, m_Cell = NULL; } - wxHtmlLinkInfo(const wxString& href, const wxString& target = wxEmptyString) : wxObject() - { m_Href = href; m_Target = target; m_Event = NULL, m_Cell = NULL; } - wxHtmlLinkInfo(const wxHtmlLinkInfo& l) : wxObject() - { m_Href = l.m_Href, m_Target = l.m_Target, m_Event = l.m_Event; - m_Cell = l.m_Cell; } - wxHtmlLinkInfo& operator=(const wxHtmlLinkInfo& l) - { m_Href = l.m_Href, m_Target = l.m_Target, m_Event = l.m_Event; - m_Cell = l.m_Cell; return *this; } - - void SetEvent(const wxMouseEvent *e) { m_Event = e; } - void SetHtmlCell(const wxHtmlCell *e) { m_Cell = e; } - - wxString GetHref() const { return m_Href; } - wxString GetTarget() const { return m_Target; } - const wxMouseEvent* GetEvent() const { return m_Event; } - const wxHtmlCell* GetHtmlCell() const { return m_Cell; } - -private: - wxString m_Href, m_Target; - const wxMouseEvent *m_Event; - const wxHtmlCell *m_Cell; -}; - - - -// ---------------------------------------------------------------------------- -// wxHtmlTerminalCellsInterator -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_HTML wxHtmlTerminalCellsInterator -{ -public: - wxHtmlTerminalCellsInterator(const wxHtmlCell *from, const wxHtmlCell *to) - : m_to(to), m_pos(from) {} - - operator bool() const { return m_pos != NULL; } - const wxHtmlCell* operator++(); - const wxHtmlCell* operator->() const { return m_pos; } - const wxHtmlCell* operator*() const { return m_pos; } - -private: - const wxHtmlCell *m_to, *m_pos; -}; - - - -#endif // wxUSE_HTML - -#endif // _WX_HTMLCELL_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmldefs.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmldefs.h deleted file mode 100644 index 9de190ca..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmldefs.h +++ /dev/null @@ -1,101 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/htmldefs.h -// Purpose: constants for wxhtml library -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef _WX_HTMLDEFS_H_ -#define _WX_HTMLDEFS_H_ - -#include "wx/defs.h" - -#if wxUSE_HTML - -//-------------------------------------------------------------------------------- -// ALIGNMENTS -// Describes alignment of text etc. in containers -//-------------------------------------------------------------------------------- - -#define wxHTML_ALIGN_LEFT 0x0000 -#define wxHTML_ALIGN_RIGHT 0x0002 -#define wxHTML_ALIGN_JUSTIFY 0x0010 - -#define wxHTML_ALIGN_TOP 0x0004 -#define wxHTML_ALIGN_BOTTOM 0x0008 - -#define wxHTML_ALIGN_CENTER 0x0001 - - - -//-------------------------------------------------------------------------------- -// COLOR MODES -// Used by wxHtmlColourCell to determine clr of what is changing -//-------------------------------------------------------------------------------- - -#define wxHTML_CLR_FOREGROUND 0x0001 -#define wxHTML_CLR_BACKGROUND 0x0002 -#define wxHTML_CLR_TRANSPARENT_BACKGROUND 0x0004 - - - -//-------------------------------------------------------------------------------- -// UNITS -// Used to specify units -//-------------------------------------------------------------------------------- - -#define wxHTML_UNITS_PIXELS 0x0001 -#define wxHTML_UNITS_PERCENT 0x0002 - - - -//-------------------------------------------------------------------------------- -// INDENTS -// Used to specify indetation relatives -//-------------------------------------------------------------------------------- - -#define wxHTML_INDENT_LEFT 0x0010 -#define wxHTML_INDENT_RIGHT 0x0020 -#define wxHTML_INDENT_TOP 0x0040 -#define wxHTML_INDENT_BOTTOM 0x0080 - -#define wxHTML_INDENT_HORIZONTAL (wxHTML_INDENT_LEFT | wxHTML_INDENT_RIGHT) -#define wxHTML_INDENT_VERTICAL (wxHTML_INDENT_TOP | wxHTML_INDENT_BOTTOM) -#define wxHTML_INDENT_ALL (wxHTML_INDENT_VERTICAL | wxHTML_INDENT_HORIZONTAL) - - - - -//-------------------------------------------------------------------------------- -// FIND CONDITIONS -// Identifiers of wxHtmlCell's Find() conditions -//-------------------------------------------------------------------------------- - -#define wxHTML_COND_ISANCHOR 1 - // Finds the anchor of 'param' name (pointer to wxString). - -#define wxHTML_COND_ISIMAGEMAP 2 - // Finds imagemap of 'param' name (pointer to wxString). - // (used exclusively by m_image.cpp) - -#define wxHTML_COND_USER 10000 - // User-defined conditions should start from this number - - -//-------------------------------------------------------------------------------- -// INTERNALS -// wxHTML internal constants -//-------------------------------------------------------------------------------- - - /* size of one scroll step of wxHtmlWindow in pixels */ -#define wxHTML_SCROLL_STEP 16 - - /* size of temporary buffer used during parsing */ -#define wxHTML_BUFLEN 1024 - -#endif // wxUSE_HTML - -#endif // _WX_HTMLDEFS_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlfilt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlfilt.h deleted file mode 100644 index a4a03442..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlfilt.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/htmlfilt.h -// Purpose: filters -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HTMLFILT_H_ -#define _WX_HTMLFILT_H_ - -#include "wx/defs.h" - -#if wxUSE_HTML - -#include "wx/filesys.h" - - -//-------------------------------------------------------------------------------- -// wxHtmlFilter -// This class is input filter. It can "translate" files -// in non-HTML format to HTML format -// interface to access certain -// kinds of files (HTPP, FTP, local, tar.gz etc..) -//-------------------------------------------------------------------------------- - -class WXDLLIMPEXP_HTML wxHtmlFilter : public wxObject -{ - wxDECLARE_ABSTRACT_CLASS(wxHtmlFilter); - -public: - wxHtmlFilter() : wxObject() {} - virtual ~wxHtmlFilter() {} - - // returns true if this filter is able to open&read given file - virtual bool CanRead(const wxFSFile& file) const = 0; - - // Reads given file and returns HTML document. - // Returns empty string if opening failed - virtual wxString ReadFile(const wxFSFile& file) const = 0; -}; - - - -//-------------------------------------------------------------------------------- -// wxHtmlFilterPlainText -// This filter is used as default filter if no other can -// be used (= uknown type of file). It is used by -// wxHtmlWindow itself. -//-------------------------------------------------------------------------------- - - -class WXDLLIMPEXP_HTML wxHtmlFilterPlainText : public wxHtmlFilter -{ - wxDECLARE_DYNAMIC_CLASS(wxHtmlFilterPlainText); - -public: - virtual bool CanRead(const wxFSFile& file) const wxOVERRIDE; - virtual wxString ReadFile(const wxFSFile& file) const wxOVERRIDE; -}; - -//-------------------------------------------------------------------------------- -// wxHtmlFilterHTML -// filter for text/html -//-------------------------------------------------------------------------------- - -class wxHtmlFilterHTML : public wxHtmlFilter -{ - wxDECLARE_DYNAMIC_CLASS(wxHtmlFilterHTML); - - public: - virtual bool CanRead(const wxFSFile& file) const wxOVERRIDE; - virtual wxString ReadFile(const wxFSFile& file) const wxOVERRIDE; -}; - - - -#endif // wxUSE_HTML - -#endif // _WX_HTMLFILT_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlpars.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlpars.h deleted file mode 100644 index 976ed93a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlpars.h +++ /dev/null @@ -1,307 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/htmlpars.h -// Purpose: wxHtmlParser class (generic parser) -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HTMLPARS_H_ -#define _WX_HTMLPARS_H_ - -#include "wx/defs.h" -#if wxUSE_HTML - -#include "wx/html/htmltag.h" -#include "wx/filesys.h" -#include "wx/hashmap.h" -#include "wx/hashset.h" -#include "wx/vector.h" -#include "wx/fontenc.h" - -class WXDLLIMPEXP_FWD_BASE wxMBConv; -class WXDLLIMPEXP_FWD_HTML wxHtmlParser; -class WXDLLIMPEXP_FWD_HTML wxHtmlTagHandler; -class WXDLLIMPEXP_FWD_HTML wxHtmlEntitiesParser; - -class wxHtmlTextPieces; -class wxHtmlParserState; - -WX_DECLARE_HASH_SET_WITH_DECL_PTR(wxHtmlTagHandler*, - wxPointerHash, wxPointerEqual, - wxHtmlTagHandlersSet, - class WXDLLIMPEXP_HTML); -WX_DECLARE_STRING_HASH_MAP_WITH_DECL(wxHtmlTagHandler*, - wxHtmlTagHandlersHash, - class WXDLLIMPEXP_HTML); - - -enum wxHtmlURLType -{ - wxHTML_URL_PAGE, - wxHTML_URL_IMAGE, - wxHTML_URL_OTHER -}; - -// This class handles generic parsing of HTML document : it scans -// the document and divides it into blocks of tags (where one block -// consists of starting and ending tag and of text between these -// 2 tags. -class WXDLLIMPEXP_HTML wxHtmlParser : public wxObject -{ - wxDECLARE_ABSTRACT_CLASS(wxHtmlParser); - -public: - wxHtmlParser(); - virtual ~wxHtmlParser(); - - // Sets the class which will be used for opening files - void SetFS(wxFileSystem *fs) { m_FS = fs; } - - wxFileSystem* GetFS() const { return m_FS; } - - // Opens file if the parser is allowed to open given URL (may be forbidden - // for security reasons) - virtual wxFSFile *OpenURL(wxHtmlURLType type, const wxString& url) const; - - // You can simply call this method when you need parsed output. - // This method does these things: - // 1. call InitParser(source); - // 2. call DoParsing(); - // 3. call GetProduct(); (its return value is then returned) - // 4. call DoneParser(); - wxObject* Parse(const wxString& source); - - // Sets the source. This must be called before running Parse() method. - virtual void InitParser(const wxString& source); - // This must be called after Parse(). - virtual void DoneParser(); - - // May be called during parsing to immediately return from Parse(). - virtual void StopParsing() { m_stopParsing = true; } - - // Parses the m_Source from begin_pos to end_pos-1. - // (in noparams version it parses whole m_Source) - void DoParsing(const wxString::const_iterator& begin_pos, - const wxString::const_iterator& end_pos); - void DoParsing(); - - // Returns pointer to the tag at parser's current position - wxHtmlTag *GetCurrentTag() const { return m_CurTag; } - - // Returns product of parsing - // Returned value is result of parsing of the part. The type of this result - // depends on internal representation in derived parser - // (see wxHtmlWinParser for details). - virtual wxObject* GetProduct() = 0; - - // adds handler to the list & hash table of handlers. - virtual void AddTagHandler(wxHtmlTagHandler *handler); - - // Forces the handler to handle additional tags (not returned by GetSupportedTags). - // The handler should already be in use by this parser. - // Example: you want to parse following pseudo-html structure: - // - // - // - // - // This last it has different meaning, we don't want it to be parsed by myitems handler! - // handler can handle only 'myitems' (e.g. its GetSupportedTags returns "MYITEMS") - // you can call PushTagHandler(handler, "IT") when you find - // and call PopTagHandler() when you find - void PushTagHandler(wxHtmlTagHandler *handler, const wxString& tags); - - // Restores state before last call to PushTagHandler - void PopTagHandler(); - - const wxString* GetSource() {return m_Source;} - void SetSource(const wxString& src); - - // Sets HTML source and remembers current parser's state so that it can - // later be restored. This is useful for on-line modifications of - // HTML source (for example,
 handler replaces spaces with  
-    // and newlines with 
) - virtual void SetSourceAndSaveState(const wxString& src); - // Restores parser's state from stack or returns false if the stack is - // empty - virtual bool RestoreState(); - - // Returns HTML source inside the element (i.e. between the starting - // and ending tag) - wxString GetInnerSource(const wxHtmlTag& tag); - - // Parses HTML string 'markup' and extracts charset info from tag - // if present. Returns empty string if the tag is missing. - // For wxHTML's internal use. - static wxString ExtractCharsetInformation(const wxString& markup); - - // Returns entity parser object, used to substitute HTML &entities; - wxHtmlEntitiesParser *GetEntitiesParser() const { return m_entitiesParser; } - - // Returns true if the tag starting at the given position is a comment tag - // - // p should point to '<' character and is modified to point to the closing - // '>' of the end comment tag if this is indeed a comment - static bool - SkipCommentTag(wxString::const_iterator& p, wxString::const_iterator end); - -protected: - // DOM structure - void CreateDOMTree(); - void DestroyDOMTree(); - void CreateDOMSubTree(wxHtmlTag *cur, - const wxString::const_iterator& begin_pos, - const wxString::const_iterator& end_pos, - wxHtmlTagsCache *cache); - - // Adds text to the output. - // This is called from Parse() and must be overridden in derived classes. - // txt is not guaranteed to be only one word. It is largest continuous part - // of text (= not broken by tags) - virtual void AddText(const wxString& txt) = 0; - - // Adds tag and proceeds it. Parse() may (and usually is) called from this method. - // This is called from Parse() and may be overridden. - // Default behaviour is that it looks for proper handler in m_Handlers. The tag is - // ignored if no hander is found. - // Derived class is *responsible* for filling in m_Handlers table. - virtual void AddTag(const wxHtmlTag& tag); - -protected: - // DOM tree: - wxHtmlTag *m_CurTag; - wxHtmlTag *m_Tags; - wxHtmlTextPieces *m_TextPieces; - size_t m_CurTextPiece; - - const wxString *m_Source; - - wxHtmlParserState *m_SavedStates; - - // handlers that handle particular tags. The table is accessed by - // key = tag's name. - // This attribute MUST be filled by derived class otherwise it would - // be empty and no tags would be recognized - // (see wxHtmlWinParser for details about filling it) - // m_HandlersHash is for random access based on knowledge of tag name (BR, P, etc.) - // it may (and often does) contain more references to one object - // m_HandlersList is list of all handlers and it is guaranteed to contain - // only one reference to each handler instance. - wxHtmlTagHandlersSet m_HandlersSet; - wxHtmlTagHandlersHash m_HandlersHash; - - wxDECLARE_NO_COPY_CLASS(wxHtmlParser); - - // class for opening files (file system) - wxFileSystem *m_FS; - // handlers stack used by PushTagHandler and PopTagHandler - wxVector m_HandlersStack; - - // entity parse - wxHtmlEntitiesParser *m_entitiesParser; - - // flag indicating that the parser should stop - bool m_stopParsing; -}; - - - -// This class (and derived classes) cooperates with wxHtmlParser. -// Each recognized tag is passed to handler which is capable -// of handling it. Each tag is handled in 3 steps: -// 1. Handler will modifies state of parser -// (using its public methods) -// 2. Parser parses source between starting and ending tag -// 3. Handler restores original state of the parser -class WXDLLIMPEXP_HTML wxHtmlTagHandler : public wxObject -{ - wxDECLARE_ABSTRACT_CLASS(wxHtmlTagHandler); - -public: - wxHtmlTagHandler() : wxObject () { m_Parser = NULL; } - - // Sets the parser. - // NOTE : each _instance_ of handler is guaranteed to be called - // only by one parser. This means you don't have to care about - // reentrancy. - virtual void SetParser(wxHtmlParser *parser) - { m_Parser = parser; } - - // Get the parser associated with this tag handler. - wxHtmlParser* GetParser() const { return m_Parser; } - - // Returns list of supported tags. The list is in uppercase and - // tags are delimited by ','. - // Example : "I,B,FONT,P" - // is capable of handling italic, bold, font and paragraph tags - virtual wxString GetSupportedTags() = 0; - - // This is hadling core method. It does all the Steps 1-3. - // To process step 2, you can call ParseInner() - // returned value : true if it called ParseInner(), - // false etherwise - virtual bool HandleTag(const wxHtmlTag& tag) = 0; - -protected: - // parses input between beginning and ending tag. - // m_Parser must be set. - void ParseInner(const wxHtmlTag& tag) - { m_Parser->DoParsing(tag.GetBeginIter(), tag.GetEndIter1()); } - - // Parses given source as if it was tag's inner code (see - // wxHtmlParser::GetInnerSource). Unlike ParseInner(), this method lets - // you specify the source code to parse. This is useful when you need to - // modify the inner text before parsing. - void ParseInnerSource(const wxString& source); - - wxHtmlParser *m_Parser; - - wxDECLARE_NO_COPY_CLASS(wxHtmlTagHandler); -}; - - -// This class is used to parse HTML entities in strings. It can handle -// both named entities and &#xxxx entries where xxxx is Unicode code. -class WXDLLIMPEXP_HTML wxHtmlEntitiesParser : public wxObject -{ - wxDECLARE_DYNAMIC_CLASS(wxHtmlEntitiesParser); - -public: - wxHtmlEntitiesParser(); - virtual ~wxHtmlEntitiesParser(); - - // Sets encoding of output string. - // Has no effect if wxUSE_UNICODE==1 -#if wxUSE_UNICODE - void SetEncoding(wxFontEncoding WXUNUSED(encoding)) {} -#else - void SetEncoding(wxFontEncoding encoding); -#endif - - // Parses entities in input and replaces them with respective characters - // (with respect to output encoding) - wxString Parse(const wxString& input) const; - - // Returns character for given entity or 0 if the enity is unknown - wxChar GetEntityChar(const wxString& entity) const; - - // Returns character that represents given Unicode code -#if wxUSE_UNICODE - wxChar GetCharForCode(unsigned code) const { return (wxChar)code; } -#else - wxChar GetCharForCode(unsigned code) const; -#endif - -protected: -#if !wxUSE_UNICODE - wxMBConv *m_conv; - wxFontEncoding m_encoding; -#endif - - wxDECLARE_NO_COPY_CLASS(wxHtmlEntitiesParser); -}; - - -#endif - -#endif // _WX_HTMLPARS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlproc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlproc.h deleted file mode 100644 index 73e22459..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlproc.h +++ /dev/null @@ -1,57 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/htmlprep.h -// Purpose: HTML processor -// Author: Vaclav Slavik -// Copyright: (c) 2001 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HTMLPREP_H_ -#define _WX_HTMLPREP_H_ - -#include "wx/defs.h" - -#if wxUSE_HTML - -#include "wx/string.h" - -// Priority of preprocessor in the chain. The higher, the earlier it is used -enum -{ - wxHTML_PRIORITY_DONTCARE = 128, // if the order doesn't matter, use this - // priority - wxHTML_PRIORITY_SYSTEM = 256 // >=256 is only for wxHTML's internals -}; - -// Classes derived from this class serve as simple text processors for -// wxHtmlWindow. wxHtmlWindow runs HTML markup through all registered -// processors before displaying it, thus allowing for on-the-fly -// modifications of the markup. - -class WXDLLIMPEXP_HTML wxHtmlProcessor : public wxObject -{ - wxDECLARE_ABSTRACT_CLASS(wxHtmlProcessor); - -public: - wxHtmlProcessor() : wxObject(), m_enabled(true) {} - virtual ~wxHtmlProcessor() {} - - // Process input text and return processed result - virtual wxString Process(const wxString& text) const = 0; - - // Return priority value of this processor. The higher, the sooner - // is the processor applied to the text. - virtual int GetPriority() const { return wxHTML_PRIORITY_DONTCARE; } - - // Enable/disable the processor. wxHtmlWindow won't use a disabled - // processor even if it is in its processors queue. - virtual void Enable(bool enable = true) { m_enabled = enable; } - bool IsEnabled() const { return m_enabled; } - -protected: - bool m_enabled; -}; - -#endif // wxUSE_HTML - -#endif // _WX_HTMLPROC_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmltag.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmltag.h deleted file mode 100644 index f7b4f9b5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmltag.h +++ /dev/null @@ -1,179 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/htmltag.h -// Purpose: wxHtmlTag class (represents single tag) -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HTMLTAG_H_ -#define _WX_HTMLTAG_H_ - -#include "wx/defs.h" - -#if wxUSE_HTML - -#include "wx/object.h" -#include "wx/arrstr.h" - -class WXDLLIMPEXP_FWD_CORE wxColour; -class WXDLLIMPEXP_FWD_HTML wxHtmlEntitiesParser; - -//----------------------------------------------------------------------------- -// wxHtmlTagsCache -// - internal wxHTML class, do not use! -//----------------------------------------------------------------------------- - -class wxHtmlTagsCacheData; - -class WXDLLIMPEXP_HTML wxHtmlTagsCache -{ -private: - wxHtmlTagsCacheData *m_Cache; - int m_CachePos; - - wxHtmlTagsCacheData& Cache() { return *m_Cache; } - -public: - wxHtmlTagsCache() {m_Cache = NULL;} - wxHtmlTagsCache(const wxString& source); - virtual ~wxHtmlTagsCache(); - - // Finds parameters for tag starting at at and fills the variables - void QueryTag(const wxString::const_iterator& at, - const wxString::const_iterator& inputEnd, - wxString::const_iterator *end1, - wxString::const_iterator *end2, - bool *hasEnding); - - wxDECLARE_NO_COPY_CLASS(wxHtmlTagsCache); -}; - - -//-------------------------------------------------------------------------------- -// wxHtmlTag -// This represents single tag. It is used as internal structure -// by wxHtmlParser. -//-------------------------------------------------------------------------------- - -class WXDLLIMPEXP_HTML wxHtmlTag -{ -protected: - // constructs wxHtmlTag object based on HTML tag. - // The tag begins (with '<' character) at position pos in source - // end_pos is position where parsing ends (usually end of document) - wxHtmlTag(wxHtmlTag *parent, - const wxString *source, - const wxString::const_iterator& pos, - const wxString::const_iterator& end_pos, - wxHtmlTagsCache *cache, - wxHtmlEntitiesParser *entParser); - friend class wxHtmlParser; -public: - ~wxHtmlTag(); - - wxHtmlTag *GetParent() const {return m_Parent;} - wxHtmlTag *GetFirstSibling() const; - wxHtmlTag *GetLastSibling() const; - wxHtmlTag *GetChildren() const { return m_FirstChild; } - wxHtmlTag *GetPreviousSibling() const { return m_Prev; } - wxHtmlTag *GetNextSibling() const {return m_Next; } - // Return next tag, as if tree had been flattened - wxHtmlTag *GetNextTag() const; - - // Returns tag's name in uppercase. - inline wxString GetName() const {return m_Name;} - - // Returns true if the tag has given parameter. Parameter - // should always be in uppercase. - // Example : HasParam("SRC") returns true - bool HasParam(const wxString& par) const; - - // Returns value of the param. Value is in uppercase unless it is - // enclosed with " - // Example :

GetParam("ALIGN") returns (RIGHT) - //

GetParam("SRC") returns (WhaT.jpg) - // (or ("WhaT.jpg") if with_quotes == true) - wxString GetParam(const wxString& par, bool with_quotes = false) const; - - // Return true if the string could be parsed as an HTML colour and false - // otherwise. - static bool ParseAsColour(const wxString& str, wxColour *clr); - - // Convenience functions: - bool GetParamAsString(const wxString& par, wxString *str) const; - bool GetParamAsColour(const wxString& par, wxColour *clr) const; - bool GetParamAsInt(const wxString& par, int *clr) const; - bool GetParamAsIntOrPercent(const wxString& param, - int* value, bool& isPercent) const; - - // Scans param like scanf() functions family does. - // Example : ScanParam("COLOR", "\"#%X\"", &clr); - // This is always with with_quotes=false - // Returns number of scanned values - // (like sscanf() does) - // NOTE: unlike scanf family, this function only accepts - // *one* parameter ! - int ScanParam(const wxString& par, const char *format, void *param) const; - int ScanParam(const wxString& par, const wchar_t *format, void *param) const; - - // Returns string containing all params. - wxString GetAllParams() const; - - // return true if there is matching ending tag - inline bool HasEnding() const {return m_hasEnding;} - - // returns beginning position of _internal_ block of text as iterator - // into parser's source string (see wxHtmlParser::GetSource()) - // See explanation (returned value is marked with *): - // bla bla bla * bla bla intenal text bla bla - wxString::const_iterator GetBeginIter() const - { return m_Begin; } - // returns ending position of _internal_ block of text as iterator - // into parser's source string (see wxHtmlParser::GetSource()): - // bla bla bla bla bla intenal text* bla bla - wxString::const_iterator GetEndIter1() const { return m_End1; } - // returns end position 2 as iterator - // into parser's source string (see wxHtmlParser::GetSource()): - // bla bla bla bla bla internal text* bla bla - wxString::const_iterator GetEndIter2() const { return m_End2; } - -#if WXWIN_COMPATIBILITY_2_8 - // use GetBeginIter(), GetEndIter1() and GetEndIter2() instead - wxDEPRECATED( inline int GetBeginPos() const ); - wxDEPRECATED( inline int GetEndPos1() const ); - wxDEPRECATED( inline int GetEndPos2() const ); -#endif // WXWIN_COMPATIBILITY_2_8 - -private: - wxString m_Name; - bool m_hasEnding; - wxString::const_iterator m_Begin, m_End1, m_End2; - wxArrayString m_ParamNames, m_ParamValues; -#if WXWIN_COMPATIBILITY_2_8 - wxString::const_iterator m_sourceStart; -#endif - - // DOM tree relations: - wxHtmlTag *m_Next; - wxHtmlTag *m_Prev; - wxHtmlTag *m_FirstChild, *m_LastChild; - wxHtmlTag *m_Parent; - - wxDECLARE_NO_COPY_CLASS(wxHtmlTag); -}; - - -#if WXWIN_COMPATIBILITY_2_8 -inline int wxHtmlTag::GetBeginPos() const { return int(m_Begin - m_sourceStart); } -inline int wxHtmlTag::GetEndPos1() const { return int(m_End1 - m_sourceStart); } -inline int wxHtmlTag::GetEndPos2() const { return int(m_End2 - m_sourceStart); } -#endif // WXWIN_COMPATIBILITY_2_8 - - - - -#endif // wxUSE_HTML - -#endif // _WX_HTMLTAG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlwin.h deleted file mode 100644 index 82ef6132..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmlwin.h +++ /dev/null @@ -1,660 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/htmlwin.h -// Purpose: wxHtmlWindow class for parsing & displaying HTML -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HTMLWIN_H_ -#define _WX_HTMLWIN_H_ - -#include "wx/defs.h" -#if wxUSE_HTML - -#include "wx/window.h" -#include "wx/scrolwin.h" -#include "wx/config.h" -#include "wx/stopwatch.h" -#include "wx/html/winpars.h" -#include "wx/html/htmlcell.h" -#include "wx/filesys.h" -#include "wx/html/htmlfilt.h" -#include "wx/filename.h" -#include "wx/bitmap.h" - -class wxHtmlProcessor; -class wxHtmlWinModule; -class wxHtmlHistoryArray; -class wxHtmlProcessorList; -class WXDLLIMPEXP_FWD_HTML wxHtmlWinAutoScrollTimer; -class WXDLLIMPEXP_FWD_HTML wxHtmlCellEvent; -class WXDLLIMPEXP_FWD_HTML wxHtmlLinkEvent; -class WXDLLIMPEXP_FWD_CORE wxStatusBar; - -// wxHtmlWindow flags: -#define wxHW_SCROLLBAR_NEVER 0x0002 -#define wxHW_SCROLLBAR_AUTO 0x0004 -#define wxHW_NO_SELECTION 0x0008 - -#define wxHW_DEFAULT_STYLE wxHW_SCROLLBAR_AUTO - -/// Enum for wxHtmlWindow::OnOpeningURL and wxHtmlWindowInterface::OnOpeningURL -enum wxHtmlOpeningStatus -{ - /// Open the requested URL - wxHTML_OPEN, - /// Do not open the URL - wxHTML_BLOCK, - /// Redirect to another URL (returned from OnOpeningURL) - wxHTML_REDIRECT -}; - -/** - Abstract interface to a HTML rendering window (such as wxHtmlWindow or - wxHtmlListBox) that is passed to wxHtmlWinParser. It encapsulates all - communication from the parser to the window. - */ -class WXDLLIMPEXP_HTML wxHtmlWindowInterface -{ -public: - /// Ctor - wxHtmlWindowInterface() {} - virtual ~wxHtmlWindowInterface() {} - - /** - Called by the parser to set window's title to given text. - */ - virtual void SetHTMLWindowTitle(const wxString& title) = 0; - - /** - Called when a link is clicked. - - @param link information about the clicked link - */ - virtual void OnHTMLLinkClicked(const wxHtmlLinkInfo& link) = 0; - - /** - Called when the parser needs to open another URL (e.g. an image). - - @param type Type of the URL request (e.g. image) - @param url URL the parser wants to open - @param redirect If the return value is wxHTML_REDIRECT, then the - URL to redirect to will be stored in this variable - (the pointer must never be NULL) - - @return indicator of how to treat the request - */ - virtual wxHtmlOpeningStatus OnHTMLOpeningURL(wxHtmlURLType type, - const wxString& url, - wxString *redirect) const = 0; - - /** - Converts coordinates @a pos relative to given @a cell to - physical coordinates in the window. - */ - virtual wxPoint HTMLCoordsToWindow(wxHtmlCell *cell, - const wxPoint& pos) const = 0; - - /// Returns the window used for rendering (may be NULL). - virtual wxWindow* GetHTMLWindow() = 0; - - /// Returns background colour to use by default. - virtual wxColour GetHTMLBackgroundColour() const = 0; - - /// Sets window's background to colour @a clr. - virtual void SetHTMLBackgroundColour(const wxColour& clr) = 0; - - /// Sets window's background to given bitmap. - virtual void SetHTMLBackgroundImage(const wxBitmap& bmpBg) = 0; - - /// Sets status bar text. - virtual void SetHTMLStatusText(const wxString& text) = 0; - - /// Type of mouse cursor - enum HTMLCursor - { - /// Standard mouse cursor (typically an arrow) - HTMLCursor_Default, - /// Cursor shown over links - HTMLCursor_Link, - /// Cursor shown over selectable text - HTMLCursor_Text - }; - - /** - Returns mouse cursor of given @a type. - */ - virtual wxCursor GetHTMLCursor(HTMLCursor type) const = 0; -}; - -/** - Helper class that implements part of mouse handling for wxHtmlWindow and - wxHtmlListBox. Cursor changes and clicking on links are handled, text - selection is not. - */ -class WXDLLIMPEXP_HTML wxHtmlWindowMouseHelper -{ -protected: - /** - Ctor. - - @param iface Interface to the owner window. - */ - wxHtmlWindowMouseHelper(wxHtmlWindowInterface *iface); - - /** - Virtual dtor. - - It is not really needed in this case but at leats it prevents gcc from - complaining about its absence. - */ - virtual ~wxHtmlWindowMouseHelper() { } - - /// Returns true if the mouse moved since the last call to HandleIdle - bool DidMouseMove() const { return m_tmpMouseMoved; } - - /// Call this from EVT_MOTION event handler - void HandleMouseMoved(); - - /** - Call this from EVT_LEFT_UP handler (or, alternatively, EVT_LEFT_DOWN). - - @param rootCell HTML cell inside which the click occurred. This doesn't - have to be the leaf cell, it can be e.g. toplevel - container, but the mouse must be inside the container's - area, otherwise the event would be ignored. - @param pos Mouse position in coordinates relative to @a cell - @param event The event that triggered the call - */ - bool HandleMouseClick(wxHtmlCell *rootCell, - const wxPoint& pos, const wxMouseEvent& event); - - /** - Call this from OnInternalIdle of the HTML displaying window. Handles - mouse movements and must be used together with HandleMouseMoved. - - @param rootCell HTML cell inside which the click occurred. This doesn't - have to be the leaf cell, it can be e.g. toplevel - container, but the mouse must be inside the container's - area, otherwise the event would be ignored. - @param pos Current mouse position in coordinates relative to - @a cell - */ - void HandleIdle(wxHtmlCell *rootCell, const wxPoint& pos); - - /** - Called by HandleIdle when the mouse hovers over a cell. Default - behaviour is to do nothing. - - @param cell the cell the mouse is over - @param x, y coordinates of mouse relative to the cell - */ - virtual void OnCellMouseHover(wxHtmlCell *cell, wxCoord x, wxCoord y); - - /** - Called by HandleMouseClick when the user clicks on a cell. - Default behaviour is to call wxHtmlWindowInterface::OnLinkClicked() - if this cell corresponds to a hypertext link. - - @param cell the cell the mouse is over - @param x, y coordinates of mouse relative to the cell - @param event The event that triggered the call - - - @return true if a link was clicked, false otherwise. - */ - virtual bool OnCellClicked(wxHtmlCell *cell, - wxCoord x, wxCoord y, - const wxMouseEvent& event); - -protected: - // this flag indicates if the mouse moved (used by HandleIdle) - bool m_tmpMouseMoved; - // contains last link name - wxHtmlLinkInfo *m_tmpLastLink; - // contains the last (terminal) cell which contained the mouse - wxHtmlCell *m_tmpLastCell; - -private: - wxHtmlWindowInterface *m_interface; -}; - -// ---------------------------------------------------------------------------- -// wxHtmlWindow -// (This is probably the only class you will directly use.) -// Purpose of this class is to display HTML page (either local -// file or downloaded via HTTP protocol) in a window. Width of -// window is constant - given in constructor - virtual height -// is changed dynamically depending on page size. Once the -// window is created you can set its content by calling -// SetPage(text) or LoadPage(filename). -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_HTML wxHtmlWindow : public wxScrolledWindow, - public wxHtmlWindowInterface, - public wxHtmlWindowMouseHelper -{ - wxDECLARE_DYNAMIC_CLASS(wxHtmlWindow); - friend class wxHtmlWinModule; - -public: - wxHtmlWindow() : wxHtmlWindowMouseHelper(this) { Init(); } - wxHtmlWindow(wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHW_DEFAULT_STYLE, - const wxString& name = wxT("htmlWindow")) - : wxHtmlWindowMouseHelper(this) - { - Init(); - Create(parent, id, pos, size, style, name); - } - virtual ~wxHtmlWindow(); - - bool Create(wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHW_SCROLLBAR_AUTO, - const wxString& name = wxT("htmlWindow")); - - // Set HTML page and display it. !! source is HTML document itself, - // it is NOT address/filename of HTML document. If you want to - // specify document location, use LoadPage() istead - // Return value : false if an error occurred, true otherwise - virtual bool SetPage(const wxString& source); - - // Append to current page - bool AppendToPage(const wxString& source); - - // Load HTML page from given location. Location can be either - // a) /usr/wxGTK2/docs/html/wx.htm - // b) http://www.somewhere.uk/document.htm - // c) ftp://ftp.somesite.cz/pub/something.htm - // In case there is no prefix (http:,ftp:), the method - // will try to find it itself (1. local file, then http or ftp) - // After the page is loaded, the method calls SetPage() to display it. - // Note : you can also use path relative to previously loaded page - // Return value : same as SetPage - virtual bool LoadPage(const wxString& location); - - // Loads HTML page from file - bool LoadFile(const wxFileName& filename); - - // Returns full location of opened page - wxString GetOpenedPage() const {return m_OpenedPage;} - // Returns anchor within opened page - wxString GetOpenedAnchor() const {return m_OpenedAnchor;} - // Returns of opened page or empty string otherwise - wxString GetOpenedPageTitle() const {return m_OpenedPageTitle;} - - // Sets frame in which page title will be displayed. Format is format of - // frame title, e.g. "HtmlHelp : %s". It must contain exactly one %s - void SetRelatedFrame(wxFrame* frame, const wxString& format); - wxFrame* GetRelatedFrame() const {return m_RelatedFrame;} - -#if wxUSE_STATUSBAR - // After(!) calling SetRelatedFrame, this sets statusbar slot where messages - // will be displayed. Default is -1 = no messages. - void SetRelatedStatusBar(int index); - void SetRelatedStatusBar(wxStatusBar*, int index = 0); -#endif // wxUSE_STATUSBAR - - // Sets fonts to be used when displaying HTML page. - void SetFonts(const wxString& normal_face, const wxString& fixed_face, - const int *sizes = NULL); - - // Sets font sizes to be relative to the given size or the system - // default size; use either specified or default font - void SetStandardFonts(int size = -1, - const wxString& normal_face = wxEmptyString, - const wxString& fixed_face = wxEmptyString); - - // Sets space between text and window borders. - void SetBorders(int b) {m_Borders = b;} - - // Sets the bitmap to use for background (currnetly it will be tiled, - // when/if we have CSS support we could add other possibilities...) - void SetBackgroundImage(const wxBitmap& bmpBg) { m_bmpBg = bmpBg; } - -#if wxUSE_CONFIG - // Saves custom settings into cfg config. it will use the path 'path' - // if given, otherwise it will save info into currently selected path. - // saved values : things set by SetFonts, SetBorders. - virtual void ReadCustomization(wxConfigBase *cfg, wxString path = wxEmptyString); - // ... - virtual void WriteCustomization(wxConfigBase *cfg, wxString path = wxEmptyString); -#endif // wxUSE_CONFIG - - // Goes to previous/next page (in browsing history) - // Returns true if successful, false otherwise - bool HistoryBack(); - bool HistoryForward(); - bool HistoryCanBack(); - bool HistoryCanForward(); - // Resets history - void HistoryClear(); - - // Returns pointer to conteiners/cells structure. - // It should be used ONLY when printing - wxHtmlContainerCell* GetInternalRepresentation() const {return m_Cell;} - - // Adds input filter - static void AddFilter(wxHtmlFilter *filter); - - // Returns a pointer to the parser. - wxHtmlWinParser *GetParser() const { return m_Parser; } - - // Adds HTML processor to this instance of wxHtmlWindow: - void AddProcessor(wxHtmlProcessor *processor); - // Adds HTML processor to wxHtmlWindow class as whole: - static void AddGlobalProcessor(wxHtmlProcessor *processor); - - - // -- Callbacks -- - - // Sets the title of the window - // (depending on the information passed to SetRelatedFrame() method) - virtual void OnSetTitle(const wxString& title); - - // Called when user clicked on hypertext link. Default behaviour is to - // call LoadPage(loc) - virtual void OnLinkClicked(const wxHtmlLinkInfo& link); - - // Called when wxHtmlWindow wants to fetch data from an URL (e.g. when - // loading a page or loading an image). The data are downloaded if and only if - // OnOpeningURL returns true. If OnOpeningURL returns wxHTML_REDIRECT, - // it must set *redirect to the new URL - virtual wxHtmlOpeningStatus OnOpeningURL(wxHtmlURLType WXUNUSED(type), - const wxString& WXUNUSED(url), - wxString *WXUNUSED(redirect)) const - { return wxHTML_OPEN; } - -#if wxUSE_CLIPBOARD - // Helper functions to select parts of page: - void SelectWord(const wxPoint& pos); - void SelectLine(const wxPoint& pos); - void SelectAll(); - - // Convert selection to text: - wxString SelectionToText() { return DoSelectionToText(m_selection); } - - // Converts current page to text: - wxString ToText(); -#endif // wxUSE_CLIPBOARD - - virtual void OnInternalIdle() wxOVERRIDE; - - /// Returns standard HTML cursor as used by wxHtmlWindow - static wxCursor GetDefaultHTMLCursor(HTMLCursor type); - static void SetDefaultHTMLCursor(HTMLCursor type, const wxCursor& cursor); - -protected: - void Init(); - - // Scrolls to anchor of this name. (Anchor is #news - // or #features etc. it is part of address sometimes: - // http://www.ms.mff.cuni.cz/~vsla8348/wxhtml/index.html#news) - // Return value : true if anchor exists, false otherwise - bool ScrollToAnchor(const wxString& anchor); - - // Prepares layout (= fill m_PosX, m_PosY for fragments) based on - // actual size of window. This method also setup scrollbars - void CreateLayout(); - - void OnPaint(wxPaintEvent& event); - void OnEraseBackground(wxEraseEvent& event); - void OnSize(wxSizeEvent& event); - void OnMouseMove(wxMouseEvent& event); - void OnMouseDown(wxMouseEvent& event); - void OnMouseUp(wxMouseEvent& event); -#if wxUSE_CLIPBOARD - void OnKeyUp(wxKeyEvent& event); - void OnDoubleClick(wxMouseEvent& event); - void OnCopy(wxCommandEvent& event); - void OnClipboardEvent(wxClipboardTextEvent& event); - void OnMouseEnter(wxMouseEvent& event); - void OnMouseLeave(wxMouseEvent& event); - void OnMouseCaptureLost(wxMouseCaptureLostEvent& event); -#endif // wxUSE_CLIPBOARD - - // Returns new filter (will be stored into m_DefaultFilter variable) - virtual wxHtmlFilter *GetDefaultFilter() {return new wxHtmlFilterPlainText;} - - // cleans static variables - static void CleanUpStatics(); - - // Returns true if text selection is enabled (wxClipboard must be available - // and wxHW_NO_SELECTION not used) - bool IsSelectionEnabled() const; - - enum ClipboardType - { - Primary, - Secondary - }; - - // Copies selection to clipboard if the clipboard support is available - // - // returns true if anything was copied to clipboard, false otherwise - bool CopySelection(ClipboardType t = Secondary); - -#if wxUSE_CLIPBOARD - // Automatic scrolling during selection: - void StopAutoScrolling(); -#endif // wxUSE_CLIPBOARD - - wxString DoSelectionToText(wxHtmlSelection *sel); - -public: - // wxHtmlWindowInterface methods: - virtual void SetHTMLWindowTitle(const wxString& title) wxOVERRIDE; - virtual void OnHTMLLinkClicked(const wxHtmlLinkInfo& link) wxOVERRIDE; - virtual wxHtmlOpeningStatus OnHTMLOpeningURL(wxHtmlURLType type, - const wxString& url, - wxString *redirect) const wxOVERRIDE; - virtual wxPoint HTMLCoordsToWindow(wxHtmlCell *cell, - const wxPoint& pos) const wxOVERRIDE; - virtual wxWindow* GetHTMLWindow() wxOVERRIDE; - virtual wxColour GetHTMLBackgroundColour() const wxOVERRIDE; - virtual void SetHTMLBackgroundColour(const wxColour& clr) wxOVERRIDE; - virtual void SetHTMLBackgroundImage(const wxBitmap& bmpBg) wxOVERRIDE; - virtual void SetHTMLStatusText(const wxString& text) wxOVERRIDE; - virtual wxCursor GetHTMLCursor(HTMLCursor type) const wxOVERRIDE; - - // implementation of SetPage() - bool DoSetPage(const wxString& source); - -protected: - // This is pointer to the first cell in parsed data. (Note: the first cell - // is usually top one = all other cells are sub-cells of this one) - wxHtmlContainerCell *m_Cell; - // parser which is used to parse HTML input. - // Each wxHtmlWindow has its own parser because sharing one global - // parser would be problematic (because of reentrancy) - wxHtmlWinParser *m_Parser; - // contains name of actually opened page or empty string if no page opened - wxString m_OpenedPage; - // contains name of current anchor within m_OpenedPage - wxString m_OpenedAnchor; - // contains title of actually opened page or empty string if no <TITLE> tag - wxString m_OpenedPageTitle; - // class for opening files (file system) - wxFileSystem* m_FS; - - // frame in which page title should be displayed & number of its statusbar - // reserved for usage with this html window - wxFrame *m_RelatedFrame; -#if wxUSE_STATUSBAR - int m_RelatedStatusBarIndex; - wxStatusBar* m_RelatedStatusBar; -#endif // wxUSE_STATUSBAR - wxString m_TitleFormat; - - // borders (free space between text and window borders) - // defaults to 10 pixels. - int m_Borders; - - // current text selection or NULL - wxHtmlSelection *m_selection; - - // true if the user is dragging mouse to select text - bool m_makingSelection; - -#if wxUSE_CLIPBOARD - // time of the last doubleclick event, used to detect tripleclicks - // (tripleclicks are used to select whole line): - wxMilliClock_t m_lastDoubleClick; - - // helper class to automatically scroll the window if the user is selecting - // text and the mouse leaves wxHtmlWindow: - wxHtmlWinAutoScrollTimer *m_timerAutoScroll; -#endif // wxUSE_CLIPBOARD - -private: - // erase the window background using m_bmpBg or just solid colour if we - // don't have any background image - void DoEraseBackground(wxDC& dc); - - // window content for double buffered rendering, may be invalid until it is - // really initialized in OnPaint() - wxBitmap m_backBuffer; - - // background image, may be invalid - wxBitmap m_bmpBg; - - // variables used when user is selecting text - wxPoint m_tmpSelFromPos; - wxHtmlCell *m_tmpSelFromCell; - - // if >0 contents of the window is not redrawn - // (in order to avoid ugly blinking) - int m_tmpCanDrawLocks; - - // list of HTML filters - static wxList m_Filters; - // this filter is used when no filter is able to read some file - static wxHtmlFilter *m_DefaultFilter; - - // html processors array: - wxHtmlProcessorList *m_Processors; - static wxHtmlProcessorList *m_GlobalProcessors; - - // browser history - wxHtmlHistoryArray *m_History; - int m_HistoryPos; - // if this FLAG is false, items are not added to history - bool m_HistoryOn; - - // Flag used to communicate between OnPaint() and OnEraseBackground(), see - // the comments near its use. - bool m_isBgReallyErased; - - // standard mouse cursors - static wxCursor *ms_cursorLink; - static wxCursor *ms_cursorText; - static wxCursor *ms_cursorDefault; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxHtmlWindow); -}; - -class WXDLLIMPEXP_FWD_HTML wxHtmlCellEvent; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_HTML, wxEVT_HTML_CELL_CLICKED, wxHtmlCellEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_HTML, wxEVT_HTML_CELL_HOVER, wxHtmlCellEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_HTML, wxEVT_HTML_LINK_CLICKED, wxHtmlLinkEvent ); - - -/*! - * Html cell window event - */ - -class WXDLLIMPEXP_HTML wxHtmlCellEvent : public wxCommandEvent -{ -public: - wxHtmlCellEvent() {} - wxHtmlCellEvent(wxEventType commandType, int id, - wxHtmlCell *cell, const wxPoint &pt, - const wxMouseEvent &ev) - : wxCommandEvent(commandType, id) - { - m_cell = cell; - m_pt = pt; - m_mouseEvent = ev; - m_bLinkWasClicked = false; - } - - wxHtmlCell* GetCell() const { return m_cell; } - wxPoint GetPoint() const { return m_pt; } - wxMouseEvent GetMouseEvent() const { return m_mouseEvent; } - - void SetLinkClicked(bool linkclicked) { m_bLinkWasClicked=linkclicked; } - bool GetLinkClicked() const { return m_bLinkWasClicked; } - - // default copy ctor, assignment operator and dtor are ok - virtual wxEvent *Clone() const wxOVERRIDE { return new wxHtmlCellEvent(*this); } - -private: - wxHtmlCell *m_cell; - wxMouseEvent m_mouseEvent; - wxPoint m_pt; - - bool m_bLinkWasClicked; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxHtmlCellEvent); -}; - - - -/*! - * Html link event - */ - -class WXDLLIMPEXP_HTML wxHtmlLinkEvent : public wxCommandEvent -{ -public: - wxHtmlLinkEvent() {} - wxHtmlLinkEvent(int id, const wxHtmlLinkInfo &linkinfo) - : wxCommandEvent(wxEVT_HTML_LINK_CLICKED, id) - { - m_linkInfo = linkinfo; - } - - const wxHtmlLinkInfo &GetLinkInfo() const { return m_linkInfo; } - - // default copy ctor, assignment operator and dtor are ok - virtual wxEvent *Clone() const wxOVERRIDE { return new wxHtmlLinkEvent(*this); } - -private: - wxHtmlLinkInfo m_linkInfo; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxHtmlLinkEvent); -}; - - -typedef void (wxEvtHandler::*wxHtmlCellEventFunction)(wxHtmlCellEvent&); -typedef void (wxEvtHandler::*wxHtmlLinkEventFunction)(wxHtmlLinkEvent&); - -#define wxHtmlCellEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxHtmlCellEventFunction, func) -#define wxHtmlLinkEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxHtmlLinkEventFunction, func) - -#define EVT_HTML_CELL_CLICKED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_HTML_CELL_CLICKED, id, wxHtmlCellEventHandler(fn)) -#define EVT_HTML_CELL_HOVER(id, fn) \ - wx__DECLARE_EVT1(wxEVT_HTML_CELL_HOVER, id, wxHtmlCellEventHandler(fn)) -#define EVT_HTML_LINK_CLICKED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_HTML_LINK_CLICKED, id, wxHtmlLinkEventHandler(fn)) - - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_HTML_CELL_CLICKED wxEVT_HTML_CELL_CLICKED -#define wxEVT_COMMAND_HTML_CELL_HOVER wxEVT_HTML_CELL_HOVER -#define wxEVT_COMMAND_HTML_LINK_CLICKED wxEVT_HTML_LINK_CLICKED - -#endif // wxUSE_HTML - -#endif // _WX_HTMLWIN_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmprint.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmprint.h deleted file mode 100644 index 77a34fcd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/htmprint.h +++ /dev/null @@ -1,318 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/htmprint.h -// Purpose: html printing classes -// Author: Vaclav Slavik -// Created: 25/09/99 -// Copyright: (c) Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HTMPRINT_H_ -#define _WX_HTMPRINT_H_ - -#include "wx/defs.h" - -#if wxUSE_HTML & wxUSE_PRINTING_ARCHITECTURE - -#include "wx/html/htmlcell.h" -#include "wx/html/winpars.h" -#include "wx/html/htmlfilt.h" - -#include "wx/print.h" -#include "wx/printdlg.h" - -#include <limits.h> // INT_MAX - -//-------------------------------------------------------------------------------- -// wxHtmlDCRenderer -// This class is capable of rendering HTML into specified -// portion of DC -//-------------------------------------------------------------------------------- - -class WXDLLIMPEXP_HTML wxHtmlDCRenderer : public wxObject -{ -public: - wxHtmlDCRenderer(); - virtual ~wxHtmlDCRenderer(); - - // Following 3 methods *must* be called before any call to Render: - - // Assign DC to this render - void SetDC(wxDC *dc, double pixel_scale = 1.0) - { SetDC(dc, pixel_scale, pixel_scale); } - void SetDC(wxDC *dc, double pixel_scale, double font_scale); - - // Sets size of output rectangle, in pixels. Note that you *can't* change - // width of the rectangle between calls to Render! (You can freely change height.) - void SetSize(int width, int height); - - // Sets the text to be displayed. - // Basepath is base directory (html string would be stored there if it was in - // file). It is used to determine path for loading images, for example. - // isdir is false if basepath is filename, true if it is directory name - // (see wxFileSystem for detailed explanation) - void SetHtmlText(const wxString& html, const wxString& basepath = wxEmptyString, bool isdir = true); - - // Sets fonts to be used when displaying HTML page. (if size null then default sizes used). - void SetFonts(const wxString& normal_face, const wxString& fixed_face, const int *sizes = NULL); - - // Sets font sizes to be relative to the given size or the system - // default size; use either specified or default font - void SetStandardFonts(int size = -1, - const wxString& normal_face = wxEmptyString, - const wxString& fixed_face = wxEmptyString); - - // [x,y] is position of upper-left corner of printing rectangle (see SetSize) - // from is y-coordinate of the very first visible cell - // to is y-coordinate of the next following page break, if any - // Returned value is y coordinate of first cell than didn't fit onto page. - // Use this value as 'from' in next call to Render in order to print multiple pages - // document - // If dont_render is TRUE then nothing is rendered into DC and it only counts - // pixels and return y coord of the next page - // - // known_pagebreaks and number_of_pages are used only when counting pages; - // otherwise, their default values should be used. Their purpose is to - // support pagebreaks using a subset of CSS2's <DIV>. The <DIV> handler - // needs to know what pagebreaks have already been set so that it doesn't - // set the same pagebreak twice. - // - // CAUTION! Render() changes DC's user scale and does NOT restore it! - int Render(int x, int y, wxArrayInt& known_pagebreaks, int from = 0, - int dont_render = false, int to = INT_MAX); - - // returns total width of the html document - int GetTotalWidth() const; - - // returns total height of the html document - // (compare Render's return value with this) - int GetTotalHeight() const; - -private: - wxDC *m_DC; - wxHtmlWinParser *m_Parser; - wxFileSystem *m_FS; - wxHtmlContainerCell *m_Cells; - int m_Width, m_Height; - - wxDECLARE_NO_COPY_CLASS(wxHtmlDCRenderer); -}; - - - - - -enum { - wxPAGE_ODD, - wxPAGE_EVEN, - wxPAGE_ALL -}; - - - -//-------------------------------------------------------------------------------- -// wxHtmlPrintout -// This class is derived from standard wxWidgets printout class -// and is used to print HTML documents. -//-------------------------------------------------------------------------------- - - -class WXDLLIMPEXP_HTML wxHtmlPrintout : public wxPrintout -{ -public: - wxHtmlPrintout(const wxString& title = wxT("Printout")); - virtual ~wxHtmlPrintout(); - - void SetHtmlText(const wxString& html, const wxString &basepath = wxEmptyString, bool isdir = true); - // prepares the class for printing this html document. - // Must be called before using the class, in fact just after constructor - // - // basepath is base directory (html string would be stored there if it was in - // file). It is used to determine path for loading images, for example. - // isdir is false if basepath is filename, true if it is directory name - // (see wxFileSystem for detailed explanation) - - void SetHtmlFile(const wxString &htmlfile); - // same as SetHtmlText except that it takes regular file as the parameter - - void SetHeader(const wxString& header, int pg = wxPAGE_ALL); - void SetFooter(const wxString& footer, int pg = wxPAGE_ALL); - // sets header/footer for the document. The argument is interpreted as HTML document. - // You can use macros in it: - // @PAGENUM@ is replaced by page number - // @PAGESCNT@ is replaced by total number of pages - // - // pg is one of wxPAGE_ODD, wxPAGE_EVEN and wx_PAGE_ALL constants. - // You can set different header/footer for odd and even pages - - // Sets fonts to be used when displaying HTML page. (if size null then default sizes used). - void SetFonts(const wxString& normal_face, const wxString& fixed_face, const int *sizes = NULL); - - // Sets font sizes to be relative to the given size or the system - // default size; use either specified or default font - void SetStandardFonts(int size = -1, - const wxString& normal_face = wxEmptyString, - const wxString& fixed_face = wxEmptyString); - - void SetMargins(float top = 25.2f, float bottom = 25.2f, float left = 25.2f, float right = 25.2f, - float spaces = 5); - // sets margins in milimeters. Defaults to 1 inch for margins and 0.5cm for space - // between text and header and/or footer - - // wxPrintout stuff: - bool OnPrintPage(int page) wxOVERRIDE; - bool HasPage(int page) wxOVERRIDE; - void GetPageInfo(int *minPage, int *maxPage, int *selPageFrom, int *selPageTo) wxOVERRIDE; - bool OnBeginDocument(int startPage, int endPage) wxOVERRIDE; - void OnPreparePrinting() wxOVERRIDE; - - // Adds input filter - static void AddFilter(wxHtmlFilter *filter); - - // Cleanup - static void CleanUpStatics(); - -private: - // this function is called by the base class OnPreparePrinting() - // implementation and by default checks whether the document fits into - // pageArea horizontally and warns the user if it does not and, if we're - // going to print and not just to preview the document, giving him the - // possibility to cancel printing - // - // you may override it to either suppress this check if truncation of the - // HTML being printed is acceptable or, on the contrary, add more checks to - // it, e.g. for the fit in the vertical direction if the document should - // always appear on a single page - // - // return true if printing should go ahead or false to cancel it (the - // return value is ignored when previewing) - virtual bool CheckFit(const wxSize& pageArea, const wxSize& docArea) const; - - void RenderPage(wxDC *dc, int page); - // renders one page into dc - wxString TranslateHeader(const wxString& instr, int page); - // substitute @PAGENUM@ and @PAGESCNT@ by real values - void CountPages(); - // counts pages and fills m_NumPages and m_PageBreaks - - -private: - int m_NumPages; - wxArrayInt m_PageBreaks; - - wxString m_Document, m_BasePath; - bool m_BasePathIsDir; - wxString m_Headers[2], m_Footers[2]; - - int m_HeaderHeight, m_FooterHeight; - wxHtmlDCRenderer *m_Renderer, *m_RendererHdr; - float m_MarginTop, m_MarginBottom, m_MarginLeft, m_MarginRight, m_MarginSpace; - - // list of HTML filters - static wxList m_Filters; - - wxDECLARE_NO_COPY_CLASS(wxHtmlPrintout); -}; - - - - - -//-------------------------------------------------------------------------------- -// wxHtmlEasyPrinting -// This class provides very simple interface to printing -// architecture. It allows you to print HTML documents only -// with very few commands. -// -// Note : do not create this class on stack only. -// You should create an instance on app startup and -// use this instance for all printing. Why? The class -// stores page&printer settings in it. -//-------------------------------------------------------------------------------- - -class WXDLLIMPEXP_HTML wxHtmlEasyPrinting : public wxObject -{ -public: - wxHtmlEasyPrinting(const wxString& name = wxT("Printing"), wxWindow *parentWindow = NULL); - virtual ~wxHtmlEasyPrinting(); - - bool PreviewFile(const wxString &htmlfile); - bool PreviewText(const wxString &htmltext, const wxString& basepath = wxEmptyString); - // Preview file / html-text for printing - // (and offers printing) - // basepath is base directory for opening subsequent files (e.g. from <img> tag) - - bool PrintFile(const wxString &htmlfile); - bool PrintText(const wxString &htmltext, const wxString& basepath = wxEmptyString); - // Print file / html-text w/o preview - - void PageSetup(); - // pop up printer or page setup dialog - - void SetHeader(const wxString& header, int pg = wxPAGE_ALL); - void SetFooter(const wxString& footer, int pg = wxPAGE_ALL); - // sets header/footer for the document. The argument is interpreted as HTML document. - // You can use macros in it: - // @PAGENUM@ is replaced by page number - // @PAGESCNT@ is replaced by total number of pages - // - // pg is one of wxPAGE_ODD, wxPAGE_EVEN and wx_PAGE_ALL constants. - // You can set different header/footer for odd and even pages - - void SetFonts(const wxString& normal_face, const wxString& fixed_face, const int *sizes = 0); - // Sets fonts to be used when displaying HTML page. (if size null then default sizes used) - - // Sets font sizes to be relative to the given size or the system - // default size; use either specified or default font - void SetStandardFonts(int size = -1, - const wxString& normal_face = wxEmptyString, - const wxString& fixed_face = wxEmptyString); - - wxPrintData *GetPrintData(); - wxPageSetupDialogData *GetPageSetupData() {return m_PageSetupData;} - // return page setting data objects. - // (You can set their parameters.) - - wxWindow* GetParentWindow() const { return m_ParentWindow; } - // get the parent window - void SetParentWindow(wxWindow* window) { m_ParentWindow = window; } - // set the parent window - - const wxString& GetName() const { return m_Name; } - // get the printout name - void SetName(const wxString& name) { m_Name = name; } - // set the printout name - -protected: - virtual wxHtmlPrintout *CreatePrintout(); - virtual bool DoPreview(wxHtmlPrintout *printout1, wxHtmlPrintout *printout2); - virtual bool DoPrint(wxHtmlPrintout *printout); - -private: - wxPrintData *m_PrintData; - wxPageSetupDialogData *m_PageSetupData; - wxString m_Name; - int m_FontsSizesArr[7]; - int *m_FontsSizes; - wxString m_FontFaceFixed, m_FontFaceNormal; - - enum FontMode - { - FontMode_Explicit, - FontMode_Standard - }; - FontMode m_fontMode; - - wxString m_Headers[2], m_Footers[2]; - wxWindow *m_ParentWindow; - - wxDECLARE_NO_COPY_CLASS(wxHtmlEasyPrinting); -}; - - - - -#endif // wxUSE_HTML & wxUSE_PRINTING_ARCHITECTURE - -#endif // _WX_HTMPRINT_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/m_templ.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/m_templ.h deleted file mode 100644 index 41d0416d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/m_templ.h +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/m_templ.h -// Purpose: Modules template file -// Author: Vaclav Slavik -// Copyright: (c) Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* - -DESCRIPTION: -This is set of macros for easier writing of tag handlers. How to use it? -See mod_fonts.cpp for example... - -Attention! This is quite strange C++ bastard. Before using it, -I STRONGLY recommend reading and understanding these macros!! - -*/ - - -#ifndef _WX_M_TEMPL_H_ -#define _WX_M_TEMPL_H_ - -#include "wx/defs.h" - -#if wxUSE_HTML - -#include "wx/html/winpars.h" - -#define TAG_HANDLER_BEGIN(name,tags) \ - class wxHTML_Handler_##name : public wxHtmlWinTagHandler \ - { \ - public: \ - wxString GetSupportedTags() {return wxT(tags);} - - - -#define TAG_HANDLER_VARS \ - private: - -#define TAG_HANDLER_CONSTR(name) \ - public: \ - wxHTML_Handler_##name () : wxHtmlWinTagHandler() - - -#define TAG_HANDLER_PROC(varib) \ - public: \ - bool HandleTag(const wxHtmlTag& varib) - - - -#define TAG_HANDLER_END(name) \ - }; - - - - -#define TAGS_MODULE_BEGIN(name) \ - class wxHTML_Module##name : public wxHtmlTagsModule \ - { \ - wxDECLARE_DYNAMIC_CLASS(wxHTML_Module##name ); \ - public: \ - void FillHandlersTable(wxHtmlWinParser *parser) wxOVERRIDE \ - { - - - - -#define TAGS_MODULE_ADD(handler) \ - parser->AddTagHandler(new wxHTML_Handler_##handler); - - - - -#define TAGS_MODULE_END(name) \ - } \ - }; \ - wxIMPLEMENT_DYNAMIC_CLASS(wxHTML_Module##name , wxHtmlTagsModule); - - - -#endif -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/styleparams.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/styleparams.h deleted file mode 100644 index 8269c124..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/styleparams.h +++ /dev/null @@ -1,52 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/styleparams.h -// Purpose: wxHtml helper code for extracting style parameters -// Author: Nigel Paton -// Copyright: wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HTML_STYLEPARAMS_H_ -#define _WX_HTML_STYLEPARAMS_H_ - -#include "wx/defs.h" - -#if wxUSE_HTML - -#include "wx/arrstr.h" - -class WXDLLIMPEXP_FWD_HTML wxHtmlTag; - -// This is a private class used by wxHTML to parse "style" attributes of HTML -// elements. Currently both parsing and support for the parsed values is pretty -// trivial. -class WXDLLIMPEXP_HTML wxHtmlStyleParams -{ -public: - // Construct a style parameters object corresponding to the style attribute - // of the given HTML tag. - wxHtmlStyleParams(const wxHtmlTag& tag); - - // Check whether the named parameter is present or not. - bool HasParam(const wxString& par) const - { - return m_names.Index(par, false /* ignore case */) != wxNOT_FOUND; - } - - // Get the value of the named parameter, return empty string if none. - wxString GetParam(const wxString& par) const - { - int index = m_names.Index(par, false); - return index == wxNOT_FOUND ? wxString() : m_values[index]; - } - -private: - // Arrays if names and values of the parameters - wxArrayString - m_names, - m_values; -}; - -#endif // wxUSE_HTML - -#endif // _WX_HTML_STYLEPARAMS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/webkit.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/webkit.h deleted file mode 100644 index 08981826..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/webkit.h +++ /dev/null @@ -1,238 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/webkit.h -// Purpose: wxWebKitCtrl - embeddable web kit control -// Author: Jethro Grassie / Kevin Ollivier -// Modified by: -// Created: 2004-4-16 -// Copyright: (c) Jethro Grassie / Kevin Ollivier -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WEBKIT_H -#define _WX_WEBKIT_H - -#if wxUSE_WEBKIT - -#if !defined(__WXMAC__) -#error "wxWebKitCtrl not implemented for this platform" -#endif - -#include "wx/control.h" - -// ---------------------------------------------------------------------------- -// Web Kit Control -// ---------------------------------------------------------------------------- - -extern WXDLLIMPEXP_DATA_CORE(const char) wxWebKitCtrlNameStr[]; - -class WXDLLIMPEXP_CORE wxWebKitCtrl : public wxControl -{ -public: - wxDECLARE_DYNAMIC_CLASS(wxWebKitCtrl); - - wxWebKitCtrl() {} - wxWebKitCtrl(wxWindow *parent, - wxWindowID winID, - const wxString& strURL, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxWebKitCtrlNameStr) - { - Create(parent, winID, strURL, pos, size, style, validator, name); - } - bool Create(wxWindow *parent, - wxWindowID winID, - const wxString& strURL, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxWebKitCtrlNameStr); - virtual ~wxWebKitCtrl(); - - void LoadURL(const wxString &url); - - bool CanGoBack(); - bool CanGoForward(); - bool GoBack(); - bool GoForward(); - void Reload(); - void Stop(); - bool CanGetPageSource(); - wxString GetPageSource(); - void SetPageSource(const wxString& source, const wxString& baseUrl = wxEmptyString); - wxString GetPageURL(){ return m_currentURL; } - void SetPageTitle(const wxString& title) { m_pageTitle = title; } - wxString GetPageTitle(){ return m_pageTitle; } - - // since these worked in 2.6, add wrappers - void SetTitle(const wxString& title) { SetPageTitle(title); } - wxString GetTitle() { return GetPageTitle(); } - - wxString GetSelection(); - - bool CanIncreaseTextSize(); - void IncreaseTextSize(); - bool CanDecreaseTextSize(); - void DecreaseTextSize(); - - void Print(bool showPrompt = false); - - void MakeEditable(bool enable = true); - bool IsEditable(); - - wxString RunScript(const wxString& javascript); - - void SetScrollPos(int pos); - int GetScrollPos(); - - // don't hide base class virtuals - virtual void SetScrollPos( int orient, int pos, bool refresh = true ) wxOVERRIDE - { return wxControl::SetScrollPos(orient, pos, refresh); } - virtual int GetScrollPos( int orient ) const wxOVERRIDE - { return wxControl::GetScrollPos(orient); } - - //we need to resize the webview when the control size changes - void OnSize(wxSizeEvent &event); - void OnMove(wxMoveEvent &event); - void OnMouseEvents(wxMouseEvent &event); -protected: - wxDECLARE_EVENT_TABLE(); - void MacVisibilityChanged() wxOVERRIDE; - -private: - wxWindow *m_parent; - wxWindowID m_windowID; - wxString m_currentURL; - wxString m_pageTitle; - - OSXWebViewPtr m_webView; - - // we may use this later to setup our own mouse events, - // so leave it in for now. - void* m_webKitCtrlEventHandler; -}; - -// ---------------------------------------------------------------------------- -// Web Kit Events -// ---------------------------------------------------------------------------- - -enum { - wxWEBKIT_STATE_START = 1, - wxWEBKIT_STATE_NEGOTIATING = 2, - wxWEBKIT_STATE_REDIRECTING = 4, - wxWEBKIT_STATE_TRANSFERRING = 8, - wxWEBKIT_STATE_STOP = 16, - wxWEBKIT_STATE_FAILED = 32 -}; - -enum { - wxWEBKIT_NAV_LINK_CLICKED = 1, - wxWEBKIT_NAV_BACK_NEXT = 2, - wxWEBKIT_NAV_FORM_SUBMITTED = 4, - wxWEBKIT_NAV_RELOAD = 8, - wxWEBKIT_NAV_FORM_RESUBMITTED = 16, - wxWEBKIT_NAV_OTHER = 32 - -}; - - - -class WXDLLIMPEXP_CORE wxWebKitBeforeLoadEvent : public wxCommandEvent -{ - wxDECLARE_DYNAMIC_CLASS(wxWebKitBeforeLoadEvent); - -public: - bool IsCancelled() { return m_cancelled; } - void Cancel(bool cancel = true) { m_cancelled = cancel; } - wxString GetURL() { return m_url; } - void SetURL(const wxString& url) { m_url = url; } - void SetNavigationType(int navType) { m_navType = navType; } - int GetNavigationType() { return m_navType; } - - wxWebKitBeforeLoadEvent( wxWindow* win = NULL ); - wxEvent *Clone(void) const { return new wxWebKitBeforeLoadEvent(*this); } - -protected: - bool m_cancelled; - wxString m_url; - int m_navType; -}; - -class WXDLLIMPEXP_CORE wxWebKitStateChangedEvent : public wxCommandEvent -{ - wxDECLARE_DYNAMIC_CLASS(wxWebKitStateChangedEvent); - -public: - int GetState() { return m_state; } - void SetState(int state) { m_state = state; } - wxString GetURL() { return m_url; } - void SetURL(const wxString& url) { m_url = url; } - - wxWebKitStateChangedEvent( wxWindow* win = NULL ); - wxEvent *Clone(void) const { return new wxWebKitStateChangedEvent(*this); } - -protected: - int m_state; - wxString m_url; -}; - - -class WXDLLIMPEXP_CORE wxWebKitNewWindowEvent : public wxCommandEvent -{ - wxDECLARE_DYNAMIC_CLASS(wxWebKitNewWindowEvent); -public: - wxString GetURL() const { return m_url; } - void SetURL(const wxString& url) { m_url = url; } - wxString GetTargetName() const { return m_targetName; } - void SetTargetName(const wxString& name) { m_targetName = name; } - - wxWebKitNewWindowEvent( wxWindow* win = (wxWindow*)(NULL)); - wxEvent *Clone(void) const { return new wxWebKitNewWindowEvent(*this); } - -private: - wxString m_url; - wxString m_targetName; -}; - -typedef void (wxEvtHandler::*wxWebKitStateChangedEventFunction)(wxWebKitStateChangedEvent&); -typedef void (wxEvtHandler::*wxWebKitBeforeLoadEventFunction)(wxWebKitBeforeLoadEvent&); -typedef void (wxEvtHandler::*wxWebKitNewWindowEventFunction)(wxWebKitNewWindowEvent&); - -#define wxWebKitStateChangedEventHandler( func ) \ - wxEVENT_HANDLER_CAST( wxWebKitStateChangedEventFunction, func ) - -#define wxWebKitBeforeLoadEventHandler( func ) \ - wxEVENT_HANDLER_CAST( wxWebKitBeforeLoadEventFunction, func ) - -#define wxWebKitNewWindowEventHandler( func ) \ - wxEVENT_HANDLER_CAST( wxWebKitNewWindowEventFunction, func ) - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_WEBKIT_STATE_CHANGED, wxWebKitStateChangedEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_WEBKIT_BEFORE_LOAD, wxWebKitBeforeLoadEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_WEBKIT_NEW_WINDOW, wxWebKitNewWindowEvent ); - -#define EVT_WEBKIT_STATE_CHANGED(func) \ - wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBKIT_STATE_CHANGED, \ - wxID_ANY, \ - wxID_ANY, \ - wxWebKitStateChangedEventHandler( func ), \ - NULL ), - -#define EVT_WEBKIT_BEFORE_LOAD(func) \ - wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBKIT_BEFORE_LOAD, \ - wxID_ANY, \ - wxID_ANY, \ - wxWebKitBeforeLoadEventHandler( func ), \ - NULL ), - -#define EVT_WEBKIT_NEW_WINDOW(func) \ - wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_WEBKIT_NEW_WINDOW, \ - wxID_ANY, \ - wxID_ANY, \ - wxWebKitNewWindowEventHandler( func ), \ - NULL ), -#endif // wxUSE_WEBKIT - -#endif - // _WX_WEBKIT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/winpars.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/winpars.h deleted file mode 100644 index 7a74de83..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/html/winpars.h +++ /dev/null @@ -1,308 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/html/winpars.h -// Purpose: wxHtmlWinParser class (parser to be used with wxHtmlWindow) -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WINPARS_H_ -#define _WX_WINPARS_H_ - -#include "wx/defs.h" -#if wxUSE_HTML - -#include "wx/module.h" -#include "wx/font.h" -#include "wx/html/htmlpars.h" -#include "wx/html/htmlcell.h" -#include "wx/encconv.h" - -class WXDLLIMPEXP_FWD_HTML wxHtmlWindow; -class WXDLLIMPEXP_FWD_HTML wxHtmlWindowInterface; -class WXDLLIMPEXP_FWD_HTML wxHtmlWinParser; -class WXDLLIMPEXP_FWD_HTML wxHtmlWinTagHandler; -class WXDLLIMPEXP_FWD_HTML wxHtmlTagsModule; - - -//-------------------------------------------------------------------------------- -// wxHtmlWinParser -// This class is derived from wxHtmlParser and its mail goal -// is to parse HTML input so that it can be displayed in -// wxHtmlWindow. It uses special wxHtmlWinTagHandler. -//-------------------------------------------------------------------------------- - -class WXDLLIMPEXP_HTML wxHtmlWinParser : public wxHtmlParser -{ - wxDECLARE_ABSTRACT_CLASS(wxHtmlWinParser); - friend class wxHtmlWindow; - -public: - wxHtmlWinParser(wxHtmlWindowInterface *wndIface = NULL); - - virtual ~wxHtmlWinParser(); - - virtual void InitParser(const wxString& source) wxOVERRIDE; - virtual void DoneParser() wxOVERRIDE; - virtual wxObject* GetProduct() wxOVERRIDE; - - virtual wxFSFile *OpenURL(wxHtmlURLType type, const wxString& url) const wxOVERRIDE; - - // Set's the DC used for parsing. If SetDC() is not called, - // parsing won't proceed - virtual void SetDC(wxDC *dc, double pixel_scale = 1.0) - { SetDC(dc, pixel_scale, pixel_scale); } - void SetDC(wxDC *dc, double pixel_scale, double font_scale); - - wxDC *GetDC() {return m_DC;} - double GetPixelScale() {return m_PixelScale;} - int GetCharHeight() const {return m_CharHeight;} - int GetCharWidth() const {return m_CharWidth;} - - // NOTE : these functions do _not_ return _actual_ - // height/width. They return h/w of default font - // for this DC. If you want actual values, call - // GetDC()->GetChar...() - - // returns interface to the rendering window - wxHtmlWindowInterface *GetWindowInterface() {return m_windowInterface;} - - // Sets fonts to be used when displaying HTML page. (if size null then default sizes used). - void SetFonts(const wxString& normal_face, const wxString& fixed_face, const int *sizes = NULL); - - // Sets font sizes to be relative to the given size or the system - // default size; use either specified or default font - void SetStandardFonts(int size = -1, - const wxString& normal_face = wxEmptyString, - const wxString& fixed_face = wxEmptyString); - - // Adds tags module. see wxHtmlTagsModule for details. - static void AddModule(wxHtmlTagsModule *module); - - static void RemoveModule(wxHtmlTagsModule *module); - - // parsing-related methods. These methods are called by tag handlers: - - // Returns pointer to actual container. Common use in tag handler is : - // m_WParser->GetContainer()->InsertCell(new ...); - wxHtmlContainerCell *GetContainer() const {return m_Container;} - - // opens new container. This container is sub-container of opened - // container. Sets GetContainer to newly created container - // and returns it. - wxHtmlContainerCell *OpenContainer(); - - // works like OpenContainer except that new container is not created - // but c is used. You can use this to directly set actual container - wxHtmlContainerCell *SetContainer(wxHtmlContainerCell *c); - - // closes the container and sets actual Container to upper-level - // container - wxHtmlContainerCell *CloseContainer(); - - int GetFontSize() const {return m_FontSize;} - void SetFontSize(int s); - // Try to map a font size in points to the HTML 1-7 font size range. - void SetFontPointSize(int pt); - int GetFontBold() const {return m_FontBold;} - void SetFontBold(int x) {m_FontBold = x;} - int GetFontItalic() const {return m_FontItalic;} - void SetFontItalic(int x) {m_FontItalic = x;} - int GetFontUnderlined() const {return m_FontUnderlined;} - void SetFontUnderlined(int x) {m_FontUnderlined = x;} - int GetFontFixed() const {return m_FontFixed;} - void SetFontFixed(int x) {m_FontFixed = x;} - wxString GetFontFace() const {return GetFontFixed() ? m_FontFaceFixed : m_FontFaceNormal;} - void SetFontFace(const wxString& face); - - int GetAlign() const {return m_Align;} - void SetAlign(int a) {m_Align = a;} - - wxHtmlScriptMode GetScriptMode() const { return m_ScriptMode; } - void SetScriptMode(wxHtmlScriptMode mode) { m_ScriptMode = mode; } - long GetScriptBaseline() const { return m_ScriptBaseline; } - void SetScriptBaseline(long base) { m_ScriptBaseline = base; } - - const wxColour& GetLinkColor() const { return m_LinkColor; } - void SetLinkColor(const wxColour& clr) { m_LinkColor = clr; } - const wxColour& GetActualColor() const { return m_ActualColor; } - void SetActualColor(const wxColour& clr) { m_ActualColor = clr ;} - const wxColour& GetActualBackgroundColor() const { return m_ActualBackgroundColor; } - void SetActualBackgroundColor(const wxColour& clr) { m_ActualBackgroundColor = clr;} - int GetActualBackgroundMode() const { return m_ActualBackgroundMode; } - void SetActualBackgroundMode(int mode) { m_ActualBackgroundMode = mode;} - const wxHtmlLinkInfo& GetLink() const { return m_Link; } - void SetLink(const wxHtmlLinkInfo& link); - - // applies current parser state (link, sub/supscript, ...) to given cell - void ApplyStateToCell(wxHtmlCell *cell); - - // Needs to be called after inserting a cell that interrupts the flow of - // the text like e.g. <img> and tells us to not consider any of the - // following space as being part of the same space run as before. - void StopCollapsingSpaces() { m_tmpLastWasSpace = false; } - -#if !wxUSE_UNICODE - void SetInputEncoding(wxFontEncoding enc); - wxFontEncoding GetInputEncoding() const { return m_InputEnc; } - wxFontEncoding GetOutputEncoding() const { return m_OutputEnc; } - wxEncodingConverter *GetEncodingConverter() const { return m_EncConv; } -#endif - - // creates font depending on m_Font* members. - virtual wxFont* CreateCurrentFont(); - - enum WhitespaceMode - { - Whitespace_Normal, // normal mode, collapse whitespace - Whitespace_Pre // inside <pre>, keep whitespace as-is - }; - - // change the current whitespace handling mode - void SetWhitespaceMode(WhitespaceMode mode) { m_whitespaceMode = mode; } - WhitespaceMode GetWhitespaceMode() const { return m_whitespaceMode; } - -protected: - virtual void AddText(const wxString& txt) wxOVERRIDE; - -private: - void FlushWordBuf(wxChar *temp, int& len); - void AddWord(wxHtmlWordCell *word); - void AddWord(const wxString& word) - { AddWord(new wxHtmlWordCell(word, *(GetDC()))); } - void AddPreBlock(const wxString& text); - - bool m_tmpLastWasSpace; - wxChar *m_tmpStrBuf; - size_t m_tmpStrBufSize; - // temporary variables used by AddText - wxHtmlWindowInterface *m_windowInterface; - // window we're parsing for - double m_PixelScale, m_FontScale; - wxDC *m_DC; - // Device Context we're parsing for - static wxList m_Modules; - // list of tags modules (see wxHtmlTagsModule for details) - // This list is used to initialize m_Handlers member. - - wxHtmlContainerCell *m_Container; - // current container. See Open/CloseContainer for details. - - int m_FontBold, m_FontItalic, m_FontUnderlined, m_FontFixed; // this is not true,false but 1,0, we need it for indexing - int m_FontSize; // From 1 (smallest) to 7, default is 3. - wxColour m_LinkColor; - wxColour m_ActualColor; - wxColour m_ActualBackgroundColor; - int m_ActualBackgroundMode; - // basic font parameters. - wxHtmlLinkInfo m_Link; - // actual hypertext link or empty string - bool m_UseLink; - // true if m_Link is not empty - int m_CharHeight, m_CharWidth; - // average height of normal-sized text - int m_Align; - // actual alignment - wxHtmlScriptMode m_ScriptMode; - // current script mode (sub/sup/normal) - long m_ScriptBaseline; - // current sub/supscript base - - wxFont* m_FontsTable[2][2][2][2][7]; - wxString m_FontsFacesTable[2][2][2][2][7]; -#if !wxUSE_UNICODE - wxFontEncoding m_FontsEncTable[2][2][2][2][7]; -#endif - // table of loaded fonts. 1st four indexes are 0 or 1, depending on on/off - // state of these flags (from left to right): - // [bold][italic][underlined][fixed_size] - // last index is font size : from 0 to 6 (remapped from html sizes 1 to 7) - // Note : this table covers all possible combinations of fonts, but not - // all of them are used, so many items in table are usually NULL. - int m_FontsSizes[7]; - wxString m_FontFaceFixed, m_FontFaceNormal; - // html font sizes and faces of fixed and proportional fonts - -#if !wxUSE_UNICODE - wxChar m_nbsp; - wxFontEncoding m_InputEnc, m_OutputEnc; - // I/O font encodings - wxEncodingConverter *m_EncConv; -#endif - - // current whitespace handling mode - WhitespaceMode m_whitespaceMode; - - wxHtmlWordCell *m_lastWordCell; - - // current position on line, in num. of characters; used to properly - // expand TABs; only updated while inside <pre> - int m_posColumn; - - wxDECLARE_NO_COPY_CLASS(wxHtmlWinParser); -}; - - - - - - -//----------------------------------------------------------------------------- -// wxHtmlWinTagHandler -// This is basicly wxHtmlTagHandler except -// it is extended with protected member m_Parser pointing to -// the wxHtmlWinParser object -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_HTML wxHtmlStyleParams; - -class WXDLLIMPEXP_HTML wxHtmlWinTagHandler : public wxHtmlTagHandler -{ - wxDECLARE_ABSTRACT_CLASS(wxHtmlWinTagHandler); - -public: - wxHtmlWinTagHandler() : wxHtmlTagHandler() {} - - virtual void SetParser(wxHtmlParser *parser) wxOVERRIDE {wxHtmlTagHandler::SetParser(parser); m_WParser = (wxHtmlWinParser*) parser;} - -protected: - wxHtmlWinParser *m_WParser; // same as m_Parser, but overcasted - - void ApplyStyle(const wxHtmlStyleParams &styleParams); - - wxDECLARE_NO_COPY_CLASS(wxHtmlWinTagHandler); -}; - - - - - - -//---------------------------------------------------------------------------- -// wxHtmlTagsModule -// This is basic of dynamic tag handlers binding. -// The class provides methods for filling parser's handlers -// hash table. -// (See documentation for details) -//---------------------------------------------------------------------------- - -class WXDLLIMPEXP_HTML wxHtmlTagsModule : public wxModule -{ - wxDECLARE_DYNAMIC_CLASS(wxHtmlTagsModule); - -public: - wxHtmlTagsModule() : wxModule() {} - - virtual bool OnInit() wxOVERRIDE; - virtual void OnExit() wxOVERRIDE; - - // This is called by wxHtmlWinParser. - // The method must simply call parser->AddTagHandler(new - // <handler_class_name>); for each handler - virtual void FillHandlersTable(wxHtmlWinParser * WXUNUSED(parser)) { } -}; - - -#endif - -#endif // _WX_WINPARS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/htmllbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/htmllbox.h deleted file mode 100644 index e936699b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/htmllbox.h +++ /dev/null @@ -1,324 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/htmllbox.h -// Purpose: wxHtmlListBox is a listbox whose items are wxHtmlCells -// Author: Vadim Zeitlin -// Modified by: -// Created: 31.05.03 -// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HTMLLBOX_H_ -#define _WX_HTMLLBOX_H_ - -#include "wx/vlbox.h" // base class -#include "wx/html/htmlwin.h" -#include "wx/ctrlsub.h" - -#if wxUSE_FILESYSTEM - #include "wx/filesys.h" -#endif // wxUSE_FILESYSTEM - -class WXDLLIMPEXP_FWD_HTML wxHtmlCell; -class WXDLLIMPEXP_FWD_HTML wxHtmlWinParser; -class WXDLLIMPEXP_FWD_HTML wxHtmlListBoxCache; -class WXDLLIMPEXP_FWD_HTML wxHtmlListBoxStyle; - -extern WXDLLIMPEXP_DATA_HTML(const char) wxHtmlListBoxNameStr[]; -extern WXDLLIMPEXP_DATA_HTML(const char) wxSimpleHtmlListBoxNameStr[]; - -// ---------------------------------------------------------------------------- -// wxHtmlListBox -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_HTML wxHtmlListBox : public wxVListBox, - public wxHtmlWindowInterface, - public wxHtmlWindowMouseHelper -{ - wxDECLARE_ABSTRACT_CLASS(wxHtmlListBox); -public: - // constructors and such - // --------------------- - - // default constructor, you must call Create() later - wxHtmlListBox(); - - // normal constructor which calls Create() internally - wxHtmlListBox(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxHtmlListBoxNameStr); - - // really creates the control and sets the initial number of items in it - // (which may be changed later with SetItemCount()) - // - // the only special style which may be specified here is wxLB_MULTIPLE - // - // returns true on success or false if the control couldn't be created - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxHtmlListBoxNameStr); - - // destructor cleans up whatever resources we use - virtual ~wxHtmlListBox(); - - // override some base class virtuals - virtual void RefreshRow(size_t line) wxOVERRIDE; - virtual void RefreshRows(size_t from, size_t to) wxOVERRIDE; - virtual void RefreshAll() wxOVERRIDE; - virtual void SetItemCount(size_t count) wxOVERRIDE; - -#if wxUSE_FILESYSTEM - // retrieve the file system used by the wxHtmlWinParser: if you use - // relative paths in your HTML, you should use its ChangePathTo() method - wxFileSystem& GetFileSystem() { return m_filesystem; } - const wxFileSystem& GetFileSystem() const { return m_filesystem; } -#endif // wxUSE_FILESYSTEM - - virtual void OnInternalIdle() wxOVERRIDE; - -protected: - // this method must be implemented in the derived class and should return - // the body (i.e. without <html>) of the HTML for the given item - virtual wxString OnGetItem(size_t n) const = 0; - - // this function may be overridden to decorate HTML returned by OnGetItem() - virtual wxString OnGetItemMarkup(size_t n) const; - - - // this method allows to customize the selection appearance: it may be used - // to specify the colour of the text which normally has the given colour - // colFg when it is inside the selection - // - // by default, the original colour is not used at all and all text has the - // same (default for this system) colour inside selection - virtual wxColour GetSelectedTextColour(const wxColour& colFg) const; - - // this is the same as GetSelectedTextColour() but allows to customize the - // background colour -- this is even more rarely used as you can change it - // globally using SetSelectionBackground() - virtual wxColour GetSelectedTextBgColour(const wxColour& colBg) const; - - - // we implement both of these functions in terms of OnGetItem(), they are - // not supposed to be overridden by our descendants - virtual void OnDrawItem(wxDC& dc, const wxRect& rect, size_t n) const wxOVERRIDE; - virtual wxCoord OnMeasureItem(size_t n) const wxOVERRIDE; - - // override this one to draw custom background for selected items correctly - virtual void OnDrawBackground(wxDC& dc, const wxRect& rect, size_t n) const wxOVERRIDE; - - // this method may be overridden to handle clicking on a link in the - // listbox (by default, clicks on links are simply ignored) - virtual void OnLinkClicked(size_t n, const wxHtmlLinkInfo& link); - - // event handlers - void OnSize(wxSizeEvent& event); - void OnMouseMove(wxMouseEvent& event); - void OnLeftDown(wxMouseEvent& event); - - - // common part of all ctors - void Init(); - - // ensure that the given item is cached - void CacheItem(size_t n) const; - -private: - // wxHtmlWindowInterface methods: - virtual void SetHTMLWindowTitle(const wxString& title) wxOVERRIDE; - virtual void OnHTMLLinkClicked(const wxHtmlLinkInfo& link) wxOVERRIDE; - virtual wxHtmlOpeningStatus OnHTMLOpeningURL(wxHtmlURLType type, - const wxString& url, - wxString *redirect) const wxOVERRIDE; - virtual wxPoint HTMLCoordsToWindow(wxHtmlCell *cell, - const wxPoint& pos) const wxOVERRIDE; - virtual wxWindow* GetHTMLWindow() wxOVERRIDE; - virtual wxColour GetHTMLBackgroundColour() const wxOVERRIDE; - virtual void SetHTMLBackgroundColour(const wxColour& clr) wxOVERRIDE; - virtual void SetHTMLBackgroundImage(const wxBitmap& bmpBg) wxOVERRIDE; - virtual void SetHTMLStatusText(const wxString& text) wxOVERRIDE; - virtual wxCursor GetHTMLCursor(HTMLCursor type) const wxOVERRIDE; - - // returns index of item that contains given HTML cell - size_t GetItemForCell(const wxHtmlCell *cell) const; - - // Create the cell for the given item, caller is responsible for freeing it. - wxHtmlCell* CreateCellForItem(size_t n) const; - - // return physical coordinates of root wxHtmlCell of n-th item - wxPoint GetRootCellCoords(size_t n) const; - - // Converts physical coordinates stored in @a pos into coordinates - // relative to the root cell of the item under mouse cursor, if any. If no - // cell is found under the cursor, returns false. Otherwise stores the new - // coordinates back into @a pos and pointer to the cell under cursor into - // @a cell and returns true. - bool PhysicalCoordsToCell(wxPoint& pos, wxHtmlCell*& cell) const; - - // The opposite of PhysicalCoordsToCell: converts coordinates relative to - // given cell to physical coordinates in the window - wxPoint CellCoordsToPhysical(const wxPoint& pos, wxHtmlCell *cell) const; - -private: - // this class caches the pre-parsed HTML to speed up display - wxHtmlListBoxCache *m_cache; - - // HTML parser we use - wxHtmlWinParser *m_htmlParser; - -#if wxUSE_FILESYSTEM - // file system used by m_htmlParser - wxFileSystem m_filesystem; -#endif // wxUSE_FILESYSTEM - - // rendering style for the parser which allows us to customize our colours - wxHtmlListBoxStyle *m_htmlRendStyle; - - - // it calls our GetSelectedTextColour() and GetSelectedTextBgColour() - friend class wxHtmlListBoxStyle; - friend class wxHtmlListBoxWinInterface; - - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxHtmlListBox); -}; - - -// ---------------------------------------------------------------------------- -// wxSimpleHtmlListBox -// ---------------------------------------------------------------------------- - -#define wxHLB_DEFAULT_STYLE wxBORDER_SUNKEN -#define wxHLB_MULTIPLE wxLB_MULTIPLE - -class WXDLLIMPEXP_HTML wxSimpleHtmlListBox : - public wxWindowWithItems<wxHtmlListBox, wxItemContainer> -{ - wxDECLARE_ABSTRACT_CLASS(wxSimpleHtmlListBox); -public: - // wxListbox-compatible constructors - // --------------------------------- - - wxSimpleHtmlListBox() { } - - wxSimpleHtmlListBox(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = wxHLB_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSimpleHtmlListBoxNameStr) - { - Create(parent, id, pos, size, n, choices, style, validator, name); - } - - wxSimpleHtmlListBox(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = wxHLB_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSimpleHtmlListBoxNameStr) - { - Create(parent, id, pos, size, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = wxHLB_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSimpleHtmlListBoxNameStr); - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = wxHLB_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSimpleHtmlListBoxNameStr); - - virtual ~wxSimpleHtmlListBox(); - - // these must be overloaded otherwise the compiler will complain - // about wxItemContainerImmutable::[G|S]etSelection being pure virtuals... - void SetSelection(int n) wxOVERRIDE - { wxVListBox::SetSelection(n); } - int GetSelection() const wxOVERRIDE - { return wxVListBox::GetSelection(); } - - - // accessing strings - // ----------------- - - virtual unsigned int GetCount() const wxOVERRIDE - { return m_items.GetCount(); } - - virtual wxString GetString(unsigned int n) const wxOVERRIDE; - - // override default unoptimized wxItemContainer::GetStrings() function - wxArrayString GetStrings() const - { return m_items; } - - virtual void SetString(unsigned int n, const wxString& s) wxOVERRIDE; - - // resolve ambiguity between wxItemContainer and wxVListBox versions - void Clear() wxOVERRIDE; - -protected: - virtual int DoInsertItems(const wxArrayStringsAdapter & items, - unsigned int pos, - void **clientData, wxClientDataType type) wxOVERRIDE; - - virtual void DoSetItemClientData(unsigned int n, void *clientData) wxOVERRIDE - { m_HTMLclientData[n] = clientData; } - - virtual void *DoGetItemClientData(unsigned int n) const wxOVERRIDE - { return m_HTMLclientData[n]; } - - // wxItemContainer methods - virtual void DoClear() wxOVERRIDE; - virtual void DoDeleteOneItem(unsigned int n) wxOVERRIDE; - - // calls wxHtmlListBox::SetItemCount() and RefreshAll() - void UpdateCount(); - - // override these functions just to change their visibility: users of - // wxSimpleHtmlListBox shouldn't be allowed to call them directly! - virtual void SetItemCount(size_t count) wxOVERRIDE - { wxHtmlListBox::SetItemCount(count); } - virtual void SetRowCount(size_t count) - { wxHtmlListBox::SetRowCount(count); } - - virtual wxString OnGetItem(size_t n) const wxOVERRIDE - { return m_items[n]; } - - virtual void InitEvent(wxCommandEvent& event, int n) wxOVERRIDE - { - // we're not a virtual control and we can include the string - // of the item which was clicked: - event.SetString(m_items[n]); - wxVListBox::InitEvent(event, n); - } - - wxArrayString m_items; - wxArrayPtrVoid m_HTMLclientData; - - // Note: For the benefit of old compilers (like gcc-2.8) this should - // not be named m_clientdata as that clashes with the name of an - // anonymous struct member in wxEvtHandler, which we derive from. - - wxDECLARE_NO_COPY_CLASS(wxSimpleHtmlListBox); -}; - -#endif // _WX_HTMLLBOX_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hyperlink.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hyperlink.h deleted file mode 100644 index b74bcf14..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/hyperlink.h +++ /dev/null @@ -1,173 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/hyperlink.h -// Purpose: Hyperlink control -// Author: David Norris <danorris@gmail.com>, Otto Wyss -// Modified by: Ryan Norton, Francesco Montorsi -// Created: 04/02/2005 -// Copyright: (c) 2005 David Norris -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HYPERLINK_H_ -#define _WX_HYPERLINK_H_ - -#include "wx/defs.h" - -#if wxUSE_HYPERLINKCTRL - -#include "wx/control.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -#define wxHL_CONTEXTMENU 0x0001 -#define wxHL_ALIGN_LEFT 0x0002 -#define wxHL_ALIGN_RIGHT 0x0004 -#define wxHL_ALIGN_CENTRE 0x0008 -#define wxHL_DEFAULT_STYLE (wxHL_CONTEXTMENU|wxNO_BORDER|wxHL_ALIGN_CENTRE) - -extern WXDLLIMPEXP_DATA_ADV(const char) wxHyperlinkCtrlNameStr[]; - - -// ---------------------------------------------------------------------------- -// wxHyperlinkCtrl -// ---------------------------------------------------------------------------- - -// A static text control that emulates a hyperlink. The link is displayed -// in an appropriate text style, derived from the control's normal font. -// When the mouse rolls over the link, the cursor changes to a hand and the -// link's color changes to the active color. -// -// Clicking on the link does not launch a web browser; instead, a -// HyperlinkEvent is fired. The event propagates upward until it is caught, -// just like a wxCommandEvent. -// -// Use the EVT_HYPERLINK() to catch link events. -class WXDLLIMPEXP_ADV wxHyperlinkCtrlBase : public wxControl -{ -public: - - // get/set - virtual wxColour GetHoverColour() const = 0; - virtual void SetHoverColour(const wxColour &colour) = 0; - - virtual wxColour GetNormalColour() const = 0; - virtual void SetNormalColour(const wxColour &colour) = 0; - - virtual wxColour GetVisitedColour() const = 0; - virtual void SetVisitedColour(const wxColour &colour) = 0; - - virtual wxString GetURL() const = 0; - virtual void SetURL (const wxString &url) = 0; - - virtual void SetVisited(bool visited = true) = 0; - virtual bool GetVisited() const = 0; - - // NOTE: also wxWindow::Set/GetLabel, wxWindow::Set/GetBackgroundColour, - // wxWindow::Get/SetFont, wxWindow::Get/SetCursor are important ! - - virtual bool HasTransparentBackground() wxOVERRIDE { return true; } - -protected: - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - // checks for validity some of the ctor/Create() function parameters - void CheckParams(const wxString& label, const wxString& url, long style); - -public: - // not part of the public API but needs to be public as used by - // GTK+ callbacks: - void SendEvent(); -}; - -// ---------------------------------------------------------------------------- -// wxHyperlinkEvent -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_ADV wxHyperlinkEvent; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_HYPERLINK, wxHyperlinkEvent ); - -// -// An event fired when the user clicks on the label in a hyperlink control. -// See HyperlinkControl for details. -// -class WXDLLIMPEXP_ADV wxHyperlinkEvent : public wxCommandEvent -{ -public: - wxHyperlinkEvent() {} - wxHyperlinkEvent(wxObject *generator, wxWindowID id, const wxString& url) - : wxCommandEvent(wxEVT_HYPERLINK, id), - m_url(url) - { - SetEventObject(generator); - } - - // Returns the URL associated with the hyperlink control - // that the user clicked on. - wxString GetURL() const { return m_url; } - void SetURL(const wxString &url) { m_url=url; } - - // default copy ctor, assignment operator and dtor are ok - virtual wxEvent *Clone() const wxOVERRIDE { return new wxHyperlinkEvent(*this); } - -private: - - // URL associated with the hyperlink control that the used clicked on. - wxString m_url; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxHyperlinkEvent); -}; - - -// ---------------------------------------------------------------------------- -// event types and macros -// ---------------------------------------------------------------------------- - -typedef void (wxEvtHandler::*wxHyperlinkEventFunction)(wxHyperlinkEvent&); - -#define wxHyperlinkEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxHyperlinkEventFunction, func) - -#define EVT_HYPERLINK(id, fn) \ - wx__DECLARE_EVT1(wxEVT_HYPERLINK, id, wxHyperlinkEventHandler(fn)) - - -#if defined(__WXGTK210__) && !defined(__WXUNIVERSAL__) - #include "wx/gtk/hyperlink.h" -// Note that the native control is only available in Unicode version under MSW. -#elif defined(__WXMSW__) && wxUSE_UNICODE && !defined(__WXUNIVERSAL__) - #include "wx/msw/hyperlink.h" -#else - #include "wx/generic/hyperlink.h" - - class WXDLLIMPEXP_ADV wxHyperlinkCtrl : public wxGenericHyperlinkCtrl - { - public: - wxHyperlinkCtrl() { } - - wxHyperlinkCtrl(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxString& url, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHL_DEFAULT_STYLE, - const wxString& name = wxHyperlinkCtrlNameStr) - : wxGenericHyperlinkCtrl(parent, id, label, url, pos, size, - style, name) - { - } - - private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY( wxHyperlinkCtrl ); - }; -#endif - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_HYPERLINK wxEVT_HYPERLINK - -#endif // wxUSE_HYPERLINKCTRL - -#endif // _WX_HYPERLINK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/icon.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/icon.h deleted file mode 100644 index 0f7c45e9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/icon.h +++ /dev/null @@ -1,71 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/icon.h -// Purpose: wxIcon base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ICON_H_BASE_ -#define _WX_ICON_H_BASE_ - -#include "wx/iconloc.h" - - -// a more readable way to tell -#define wxICON_SCREEN_DEPTH (-1) - - -// the wxICON_DEFAULT_TYPE (the wxIcon equivalent of wxBITMAP_DEFAULT_TYPE) -// constant defines the default argument value for wxIcon ctor and wxIcon::LoadFile() -// functions. - -#if defined(__WXMSW__) - #define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_ICO_RESOURCE - #include "wx/msw/icon.h" -#elif defined(__WXMOTIF__) - #define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_XPM - #include "wx/motif/icon.h" -#elif defined(__WXGTK20__) - #ifdef __WINDOWS__ - #define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_ICO_RESOURCE - #else - #define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_XPM - #endif - #include "wx/generic/icon.h" -#elif defined(__WXGTK__) - #define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_XPM - #include "wx/generic/icon.h" -#elif defined(__WXX11__) - #define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_XPM - #include "wx/generic/icon.h" -#elif defined(__WXDFB__) - #define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_XPM - #include "wx/generic/icon.h" -#elif defined(__WXMAC__) -#if wxOSX_USE_COCOA_OR_CARBON - #define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_ICON_RESOURCE - #include "wx/osx/icon.h" -#else - #define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_PNG_RESOURCE - #include "wx/generic/icon.h" -#endif -#elif defined(__WXQT__) - #define wxICON_DEFAULT_TYPE wxBITMAP_TYPE_XPM - #include "wx/generic/icon.h" -#endif - -//----------------------------------------------------------------------------- -// wxVariant support -//----------------------------------------------------------------------------- - -#if wxUSE_VARIANT -#include "wx/variant.h" -DECLARE_VARIANT_OBJECT_EXPORTED(wxIcon,WXDLLIMPEXP_CORE) -#endif - - -#endif - // _WX_ICON_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/iconbndl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/iconbndl.h deleted file mode 100644 index 704c58f2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/iconbndl.h +++ /dev/null @@ -1,132 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/iconbndl.h -// Purpose: wxIconBundle -// Author: Mattia barbon -// Modified by: -// Created: 23.03.02 -// Copyright: (c) Mattia Barbon -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ICONBNDL_H_ -#define _WX_ICONBNDL_H_ - -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" // for wxSize -#include "wx/icon.h" - -#include "wx/dynarray.h" - -class WXDLLIMPEXP_FWD_BASE wxInputStream; - -WX_DECLARE_EXPORTED_OBJARRAY(wxIcon, wxIconArray); - -// this class can't load bitmaps of type wxBITMAP_TYPE_ICO_RESOURCE, -// if you need them, you have to load them manually and call -// wxIconCollection::AddIcon -class WXDLLIMPEXP_CORE wxIconBundle : public wxGDIObject -{ -public: - // Flags that determine what happens if GetIcon() doesn't find the icon of - // exactly the requested size. - enum - { - // Return invalid icon if exact size is not found. - FALLBACK_NONE = 0, - - // Return the icon of the system icon size if exact size is not found. - // May be combined with other non-NONE enum elements to determine what - // happens if the system icon size is not found neither. - FALLBACK_SYSTEM = 1, - - // Return the icon of closest larger size or, if there is no icon of - // larger size in the bundle, the closest icon of smaller size. - FALLBACK_NEAREST_LARGER = 2 - }; - - // default constructor - wxIconBundle(); - - // initializes the bundle with the icon(s) found in the file -#if wxUSE_STREAMS && wxUSE_IMAGE -#if wxUSE_FFILE || wxUSE_FILE - wxIconBundle(const wxString& file, wxBitmapType type = wxBITMAP_TYPE_ANY); -#endif // wxUSE_FFILE || wxUSE_FILE - wxIconBundle(wxInputStream& stream, wxBitmapType type = wxBITMAP_TYPE_ANY); -#endif // wxUSE_STREAMS && wxUSE_IMAGE - - // initializes the bundle with a single icon - wxIconBundle(const wxIcon& icon); - - // default copy ctor and assignment operator are OK - - // adds all the icons contained in the file to the collection, - // if the collection already contains icons with the same - // width and height, they are replaced -#if wxUSE_STREAMS && wxUSE_IMAGE -#if wxUSE_FFILE || wxUSE_FILE - void AddIcon(const wxString& file, wxBitmapType type = wxBITMAP_TYPE_ANY); -#endif // wxUSE_FFILE || wxUSE_FILE - void AddIcon(wxInputStream& stream, wxBitmapType type = wxBITMAP_TYPE_ANY); -#endif // wxUSE_STREAMS && wxUSE_IMAGE - - // adds the icon to the collection, if the collection already - // contains an icon with the same width and height, it is - // replaced - void AddIcon(const wxIcon& icon); - - // returns the icon with the given size; if no such icon exists, - // behavior is specified by the flags. - wxIcon GetIcon(const wxSize& size, int flags = FALLBACK_SYSTEM) const; - - // equivalent to GetIcon(wxSize(size, size)) - wxIcon GetIcon(wxCoord size = wxDefaultCoord, - int flags = FALLBACK_SYSTEM) const - { return GetIcon(wxSize(size, size), flags); } - - // returns the icon exactly of the specified size or wxNullIcon if no icon - // of exactly given size are available - wxIcon GetIconOfExactSize(const wxSize& size) const; - wxIcon GetIconOfExactSize(wxCoord size) const - { return GetIconOfExactSize(wxSize(size, size)); } - - // enumerate all icons in the bundle: don't use these functions if ti can - // be avoided, using GetIcon() directly is better - - // return the number of available icons - size_t GetIconCount() const; - - // return the icon at index (must be < GetIconCount()) - wxIcon GetIconByIndex(size_t n) const; - - // check if we have any icons at all - bool IsEmpty() const { return GetIconCount() == 0; } - -#if WXWIN_COMPATIBILITY_2_8 -#if wxUSE_STREAMS && wxUSE_IMAGE && (wxUSE_FFILE || wxUSE_FILE) - wxDEPRECATED( void AddIcon(const wxString& file, long type) - { - AddIcon(file, (wxBitmapType)type); - } - ) - - wxDEPRECATED_CONSTRUCTOR( wxIconBundle (const wxString& file, long type) - { - AddIcon(file, (wxBitmapType)type); - } - ) -#endif // wxUSE_STREAMS && wxUSE_IMAGE && (wxUSE_FFILE || wxUSE_FILE) -#endif // WXWIN_COMPATIBILITY_2_8 - -protected: - virtual wxGDIRefData *CreateGDIRefData() const wxOVERRIDE; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const wxOVERRIDE; - -private: - // delete all icons - void DeleteIcons(); - - wxDECLARE_DYNAMIC_CLASS(wxIconBundle); -}; - -#endif // _WX_ICONBNDL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/iconloc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/iconloc.h deleted file mode 100644 index 9baaaa52..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/iconloc.h +++ /dev/null @@ -1,80 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/iconloc.h -// Purpose: declaration of wxIconLocation class -// Author: Vadim Zeitlin -// Modified by: -// Created: 21.06.2003 -// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ICONLOC_H_ -#define _WX_ICONLOC_H_ - -#include "wx/string.h" - -// ---------------------------------------------------------------------------- -// wxIconLocation: describes the location of an icon -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxIconLocationBase -{ -public: - // ctor takes the name of the file where the icon is - wxEXPLICIT wxIconLocationBase(const wxString& filename = wxEmptyString) - : m_filename(filename) { } - - // default copy ctor, assignment operator and dtor are ok - - - // returns true if this object is valid/initialized - bool IsOk() const { return !m_filename.empty(); } - - // set/get the icon file name - void SetFileName(const wxString& filename) { m_filename = filename; } - const wxString& GetFileName() const { return m_filename; } - -private: - wxString m_filename; -}; - -// under Windows the same file may contain several icons so we also store the -// index of the icon -#if defined(__WINDOWS__) - -class WXDLLIMPEXP_BASE wxIconLocation : public wxIconLocationBase -{ -public: - // ctor takes the name of the file where the icon is and the icons index in - // the file - wxEXPLICIT wxIconLocation(const wxString& file = wxEmptyString, int num = 0); - - // set/get the icon index - void SetIndex(int num) { m_index = num; } - int GetIndex() const { return m_index; } - -private: - int m_index; -}; - -inline -wxIconLocation::wxIconLocation(const wxString& file, int num) - : wxIconLocationBase(file) -{ - SetIndex(num); -} - -#else // !__WINDOWS__ - -// must be a class because we forward declare it as class -class WXDLLIMPEXP_BASE wxIconLocation : public wxIconLocationBase -{ -public: - wxEXPLICIT wxIconLocation(const wxString& filename = wxEmptyString) - : wxIconLocationBase(filename) { } -}; - -#endif // platform - -#endif // _WX_ICONLOC_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagbmp.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagbmp.h deleted file mode 100644 index a4a6527e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagbmp.h +++ /dev/null @@ -1,159 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/imagbmp.h -// Purpose: wxImage BMP, ICO, CUR and ANI handlers -// Author: Robert Roebling, Chris Elliott -// Copyright: (c) Robert Roebling, Chris Elliott -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGBMP_H_ -#define _WX_IMAGBMP_H_ - -#include "wx/image.h" - -// defines for saving the BMP file in different formats, Bits Per Pixel -// USE: wximage.SetOption( wxIMAGE_OPTION_BMP_FORMAT, wxBMP_xBPP ); -#define wxIMAGE_OPTION_BMP_FORMAT wxString(wxT("wxBMP_FORMAT")) - -// These two options are filled in upon reading CUR file and can (should) be -// specified when saving a CUR file - they define the hotspot of the cursor: -#define wxIMAGE_OPTION_CUR_HOTSPOT_X wxT("HotSpotX") -#define wxIMAGE_OPTION_CUR_HOTSPOT_Y wxT("HotSpotY") - - -enum -{ - wxBMP_24BPP = 24, // default, do not need to set - //wxBMP_16BPP = 16, // wxQuantize can only do 236 colors? - wxBMP_8BPP = 8, // 8bpp, quantized colors - wxBMP_8BPP_GREY = 9, // 8bpp, rgb averaged to greys - wxBMP_8BPP_GRAY = wxBMP_8BPP_GREY, - wxBMP_8BPP_RED = 10, // 8bpp, red used as greyscale - wxBMP_8BPP_PALETTE = 11, // 8bpp, use the wxImage's palette - wxBMP_4BPP = 4, // 4bpp, quantized colors - wxBMP_1BPP = 1, // 1bpp, quantized "colors" - wxBMP_1BPP_BW = 2 // 1bpp, black & white from red -}; - -// ---------------------------------------------------------------------------- -// wxBMPHandler -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxBMPHandler : public wxImageHandler -{ -public: - wxBMPHandler() - { - m_name = wxT("Windows bitmap file"); - m_extension = wxT("bmp"); - m_type = wxBITMAP_TYPE_BMP; - m_mime = wxT("image/x-bmp"); - } - -#if wxUSE_STREAMS - virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=true ) wxOVERRIDE; - virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=true, int index=-1 ) wxOVERRIDE; - -protected: - virtual bool DoCanRead( wxInputStream& stream ) wxOVERRIDE; - bool SaveDib(wxImage *image, wxOutputStream& stream, bool verbose, - bool IsBmp, bool IsMask); - bool DoLoadDib(wxImage *image, int width, int height, int bpp, int ncolors, - int comp, wxFileOffset bmpOffset, wxInputStream& stream, - bool verbose, bool IsBmp, bool hasPalette, int colEntrySize = 4); - bool LoadDib(wxImage *image, wxInputStream& stream, bool verbose, bool IsBmp); -#endif // wxUSE_STREAMS - -private: - wxDECLARE_DYNAMIC_CLASS(wxBMPHandler); -}; - -#if wxUSE_ICO_CUR -// ---------------------------------------------------------------------------- -// wxICOHandler -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxICOHandler : public wxBMPHandler -{ -public: - wxICOHandler() - { - m_name = wxT("Windows icon file"); - m_extension = wxT("ico"); - m_type = wxBITMAP_TYPE_ICO; - m_mime = wxT("image/x-ico"); - } - -#if wxUSE_STREAMS - virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=true ) wxOVERRIDE; - virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=true, int index=-1 ) wxOVERRIDE; - virtual bool DoLoadFile( wxImage *image, wxInputStream& stream, bool verbose, int index ); - -protected: - virtual int DoGetImageCount( wxInputStream& stream ) wxOVERRIDE; - virtual bool DoCanRead( wxInputStream& stream ) wxOVERRIDE; -#endif // wxUSE_STREAMS - -private: - wxDECLARE_DYNAMIC_CLASS(wxICOHandler); -}; - - -// ---------------------------------------------------------------------------- -// wxCURHandler -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxCURHandler : public wxICOHandler -{ -public: - wxCURHandler() - { - m_name = wxT("Windows cursor file"); - m_extension = wxT("cur"); - m_type = wxBITMAP_TYPE_CUR; - m_mime = wxT("image/x-cur"); - } - - // VS: This handler's meat is implemented inside wxICOHandler (the two - // formats are almost identical), but we hide this fact at - // the API level, since it is a mere implementation detail. - -protected: -#if wxUSE_STREAMS - virtual bool DoCanRead( wxInputStream& stream ) wxOVERRIDE; -#endif // wxUSE_STREAMS - -private: - wxDECLARE_DYNAMIC_CLASS(wxCURHandler); -}; -// ---------------------------------------------------------------------------- -// wxANIHandler -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxANIHandler : public wxCURHandler -{ -public: - wxANIHandler() - { - m_name = wxT("Windows animated cursor file"); - m_extension = wxT("ani"); - m_type = wxBITMAP_TYPE_ANI; - m_mime = wxT("image/x-ani"); - } - - -#if wxUSE_STREAMS - virtual bool SaveFile( wxImage *WXUNUSED(image), wxOutputStream& WXUNUSED(stream), bool WXUNUSED(verbose=true) ) wxOVERRIDE{return false ;} - virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=true, int index=-1 ) wxOVERRIDE; - -protected: - virtual int DoGetImageCount( wxInputStream& stream ) wxOVERRIDE; - virtual bool DoCanRead( wxInputStream& stream ) wxOVERRIDE; -#endif // wxUSE_STREAMS - -private: - wxDECLARE_DYNAMIC_CLASS(wxANIHandler); -}; - -#endif // wxUSE_ICO_CUR -#endif // _WX_IMAGBMP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/image.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/image.h deleted file mode 100644 index c7e7a87e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/image.h +++ /dev/null @@ -1,667 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/image.h -// Purpose: wxImage class -// Author: Robert Roebling -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGE_H_ -#define _WX_IMAGE_H_ - -#include "wx/defs.h" - -#if wxUSE_IMAGE - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/gdicmn.h" -#include "wx/hashmap.h" -#include "wx/arrstr.h" - -#if wxUSE_STREAMS -# include "wx/stream.h" -#endif - -// on some systems (Unixware 7.x) index is defined as a macro in the headers -// which breaks the compilation below -#undef index - -#define wxIMAGE_OPTION_QUALITY wxString(wxS("quality")) -#define wxIMAGE_OPTION_FILENAME wxString(wxS("FileName")) - -#define wxIMAGE_OPTION_RESOLUTION wxString(wxS("Resolution")) -#define wxIMAGE_OPTION_RESOLUTIONX wxString(wxS("ResolutionX")) -#define wxIMAGE_OPTION_RESOLUTIONY wxString(wxS("ResolutionY")) - -#define wxIMAGE_OPTION_RESOLUTIONUNIT wxString(wxS("ResolutionUnit")) - -#define wxIMAGE_OPTION_MAX_WIDTH wxString(wxS("MaxWidth")) -#define wxIMAGE_OPTION_MAX_HEIGHT wxString(wxS("MaxHeight")) - -#define wxIMAGE_OPTION_ORIGINAL_WIDTH wxString(wxS("OriginalWidth")) -#define wxIMAGE_OPTION_ORIGINAL_HEIGHT wxString(wxS("OriginalHeight")) - -// constants used with wxIMAGE_OPTION_RESOLUTIONUNIT -// -// NB: don't change these values, they correspond to libjpeg constants -enum wxImageResolution -{ - // Resolution not specified - wxIMAGE_RESOLUTION_NONE = 0, - - // Resolution specified in inches - wxIMAGE_RESOLUTION_INCHES = 1, - - // Resolution specified in centimeters - wxIMAGE_RESOLUTION_CM = 2 -}; - -// Constants for wxImage::Scale() for determining the level of quality -enum wxImageResizeQuality -{ - // different image resizing algorithms used by Scale() and Rescale() - wxIMAGE_QUALITY_NEAREST = 0, - wxIMAGE_QUALITY_BILINEAR = 1, - wxIMAGE_QUALITY_BICUBIC = 2, - wxIMAGE_QUALITY_BOX_AVERAGE = 3, - - // default quality is low (but fast) - wxIMAGE_QUALITY_NORMAL = wxIMAGE_QUALITY_NEAREST, - - // highest (but best) quality - wxIMAGE_QUALITY_HIGH = 4 -}; - -// alpha channel values: fully transparent, default threshold separating -// transparent pixels from opaque for a few functions dealing with alpha and -// fully opaque -const unsigned char wxIMAGE_ALPHA_TRANSPARENT = 0; -const unsigned char wxIMAGE_ALPHA_THRESHOLD = 0x80; -const unsigned char wxIMAGE_ALPHA_OPAQUE = 0xff; - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxImageHandler; -class WXDLLIMPEXP_FWD_CORE wxImage; -class WXDLLIMPEXP_FWD_CORE wxPalette; - -//----------------------------------------------------------------------------- -// wxVariant support -//----------------------------------------------------------------------------- - -#if wxUSE_VARIANT -#include "wx/variant.h" -DECLARE_VARIANT_OBJECT_EXPORTED(wxImage,WXDLLIMPEXP_CORE) -#endif - -//----------------------------------------------------------------------------- -// wxImageHandler -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxImageHandler: public wxObject -{ -public: - wxImageHandler() - : m_name(wxEmptyString), m_extension(wxEmptyString), m_mime(), m_type(wxBITMAP_TYPE_INVALID) - { } - -#if wxUSE_STREAMS - // NOTE: LoadFile and SaveFile are not pure virtuals to allow derived classes - // to implement only one of the two - virtual bool LoadFile( wxImage *WXUNUSED(image), wxInputStream& WXUNUSED(stream), - bool WXUNUSED(verbose)=true, int WXUNUSED(index)=-1 ) - { return false; } - virtual bool SaveFile( wxImage *WXUNUSED(image), wxOutputStream& WXUNUSED(stream), - bool WXUNUSED(verbose)=true ) - { return false; } - - int GetImageCount( wxInputStream& stream ); - // save the stream position, call DoGetImageCount() and restore the position - - bool CanRead( wxInputStream& stream ) { return CallDoCanRead(stream); } - bool CanRead( const wxString& name ); -#endif // wxUSE_STREAMS - - void SetName(const wxString& name) { m_name = name; } - void SetExtension(const wxString& ext) { m_extension = ext; } - void SetAltExtensions(const wxArrayString& exts) { m_altExtensions = exts; } - void SetType(wxBitmapType type) { m_type = type; } - void SetMimeType(const wxString& type) { m_mime = type; } - const wxString& GetName() const { return m_name; } - const wxString& GetExtension() const { return m_extension; } - const wxArrayString& GetAltExtensions() const { return m_altExtensions; } - wxBitmapType GetType() const { return m_type; } - const wxString& GetMimeType() const { return m_mime; } - -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED( - void SetType(long type) { SetType((wxBitmapType)type); } - ) -#endif // WXWIN_COMPATIBILITY_2_8 - -protected: -#if wxUSE_STREAMS - // NOTE: this function is allowed to change the current stream position - // since GetImageCount() will take care of restoring it later - virtual int DoGetImageCount( wxInputStream& WXUNUSED(stream) ) - { return 1; } // default return value is 1 image - - // NOTE: this function is allowed to change the current stream position - // since CallDoCanRead() will take care of restoring it later - virtual bool DoCanRead( wxInputStream& stream ) = 0; - - // save the stream position, call DoCanRead() and restore the position - bool CallDoCanRead(wxInputStream& stream); -#endif // wxUSE_STREAMS - - // helper for the derived classes SaveFile() implementations: returns the - // values of x- and y-resolution options specified as the image options if - // any - static wxImageResolution - GetResolutionFromOptions(const wxImage& image, int *x, int *y); - - - wxString m_name; - wxString m_extension; - wxArrayString m_altExtensions; - wxString m_mime; - wxBitmapType m_type; - -private: - wxDECLARE_CLASS(wxImageHandler); -}; - -//----------------------------------------------------------------------------- -// wxImageHistogram -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxImageHistogramEntry -{ -public: - wxImageHistogramEntry() { index = value = 0; } - unsigned long index; - unsigned long value; -}; - -WX_DECLARE_EXPORTED_HASH_MAP(unsigned long, wxImageHistogramEntry, - wxIntegerHash, wxIntegerEqual, - wxImageHistogramBase); - -class WXDLLIMPEXP_CORE wxImageHistogram : public wxImageHistogramBase -{ -public: - wxImageHistogram() : wxImageHistogramBase(256) { } - - // get the key in the histogram for the given RGB values - static unsigned long MakeKey(unsigned char r, - unsigned char g, - unsigned char b) - { - return (r << 16) | (g << 8) | b; - } - - // find first colour that is not used in the image and has higher - // RGB values than RGB(startR, startG, startB) - // - // returns true and puts this colour in r, g, b (each of which may be NULL) - // on success or returns false if there are no more free colours - bool FindFirstUnusedColour(unsigned char *r, - unsigned char *g, - unsigned char *b, - unsigned char startR = 1, - unsigned char startG = 0, - unsigned char startB = 0 ) const; -}; - -//----------------------------------------------------------------------------- -// wxImage -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxImage: public wxObject -{ -public: - // red, green and blue are 8 bit unsigned integers in the range of 0..255 - // We use the identifier RGBValue instead of RGB, since RGB is #defined - class RGBValue - { - public: - RGBValue(unsigned char r=0, unsigned char g=0, unsigned char b=0) - : red(r), green(g), blue(b) {} - unsigned char red; - unsigned char green; - unsigned char blue; - }; - - // hue, saturation and value are doubles in the range 0.0..1.0 - class HSVValue - { - public: - HSVValue(double h=0.0, double s=0.0, double v=0.0) - : hue(h), saturation(s), value(v) {} - double hue; - double saturation; - double value; - }; - - wxImage() {} - wxImage( int width, int height, bool clear = true ) - { Create( width, height, clear ); } - wxImage( int width, int height, unsigned char* data, bool static_data = false ) - { Create( width, height, data, static_data ); } - wxImage( int width, int height, unsigned char* data, unsigned char* alpha, bool static_data = false ) - { Create( width, height, data, alpha, static_data ); } - - // ctor variants using wxSize: - wxImage( const wxSize& sz, bool clear = true ) - { Create( sz, clear ); } - wxImage( const wxSize& sz, unsigned char* data, bool static_data = false ) - { Create( sz, data, static_data ); } - wxImage( const wxSize& sz, unsigned char* data, unsigned char* alpha, bool static_data = false ) - { Create( sz, data, alpha, static_data ); } - - wxImage( const wxString& name, wxBitmapType type = wxBITMAP_TYPE_ANY, int index = -1 ) - { LoadFile( name, type, index ); } - wxImage( const wxString& name, const wxString& mimetype, int index = -1 ) - { LoadFile( name, mimetype, index ); } - wxImage( const char* const* xpmData ) - { Create(xpmData); } - -#if wxUSE_STREAMS - wxImage( wxInputStream& stream, wxBitmapType type = wxBITMAP_TYPE_ANY, int index = -1 ) - { LoadFile( stream, type, index ); } - wxImage( wxInputStream& stream, const wxString& mimetype, int index = -1 ) - { LoadFile( stream, mimetype, index ); } -#endif // wxUSE_STREAMS - - bool Create( const char* const* xpmData ); -#ifdef __BORLANDC__ - // needed for Borland 5.5 - wxImage( char** xpmData ) { Create(const_cast<const char* const*>(xpmData)); } - bool Create( char** xpmData ) { return Create(const_cast<const char* const*>(xpmData)); } -#endif - - bool Create( int width, int height, bool clear = true ); - bool Create( int width, int height, unsigned char* data, bool static_data = false ); - bool Create( int width, int height, unsigned char* data, unsigned char* alpha, bool static_data = false ); - - // Create() variants using wxSize: - bool Create( const wxSize& sz, bool clear = true ) - { return Create(sz.GetWidth(), sz.GetHeight(), clear); } - bool Create( const wxSize& sz, unsigned char* data, bool static_data = false ) - { return Create(sz.GetWidth(), sz.GetHeight(), data, static_data); } - bool Create( const wxSize& sz, unsigned char* data, unsigned char* alpha, bool static_data = false ) - { return Create(sz.GetWidth(), sz.GetHeight(), data, alpha, static_data); } - - void Destroy(); - - // initialize the image data with zeroes - void Clear(unsigned char value = 0); - - // creates an identical copy of the image (the = operator - // just raises the ref count) - wxImage Copy() const; - - // return the new image with size width*height - wxImage GetSubImage( const wxRect& rect) const; - - // Paste the image or part of this image into an image of the given size at the pos - // any newly exposed areas will be filled with the rgb colour - // by default if r = g = b = -1 then fill with this image's mask colour or find and - // set a suitable mask colour - wxImage Size( const wxSize& size, const wxPoint& pos, - int r = -1, int g = -1, int b = -1 ) const; - - // pastes image into this instance and takes care of - // the mask colour and out of bounds problems - void Paste( const wxImage &image, int x, int y ); - - // return the new image with size width*height - wxImage Scale( int width, int height, - wxImageResizeQuality quality = wxIMAGE_QUALITY_NORMAL ) const; - - // box averager and bicubic filters for up/down sampling - wxImage ResampleNearest(int width, int height) const; - wxImage ResampleBox(int width, int height) const; - wxImage ResampleBilinear(int width, int height) const; - wxImage ResampleBicubic(int width, int height) const; - - // blur the image according to the specified pixel radius - wxImage Blur(int radius) const; - wxImage BlurHorizontal(int radius) const; - wxImage BlurVertical(int radius) const; - - wxImage ShrinkBy( int xFactor , int yFactor ) const ; - - // rescales the image in place - wxImage& Rescale( int width, int height, - wxImageResizeQuality quality = wxIMAGE_QUALITY_NORMAL ) - { return *this = Scale(width, height, quality); } - - // resizes the image in place - wxImage& Resize( const wxSize& size, const wxPoint& pos, - int r = -1, int g = -1, int b = -1 ) { return *this = Size(size, pos, r, g, b); } - - // Rotates the image about the given point, 'angle' radians. - // Returns the rotated image, leaving this image intact. - wxImage Rotate(double angle, const wxPoint & centre_of_rotation, - bool interpolating = true, wxPoint * offset_after_rotation = NULL) const; - - wxImage Rotate90( bool clockwise = true ) const; - wxImage Rotate180() const; - wxImage Mirror( bool horizontally = true ) const; - - // replace one colour with another - void Replace( unsigned char r1, unsigned char g1, unsigned char b1, - unsigned char r2, unsigned char g2, unsigned char b2 ); - - // Convert to greyscale image. Uses the luminance component (Y) of the image. - // The luma value (YUV) is calculated using (R * weight_r) + (G * weight_g) + (B * weight_b), defaults to ITU-T BT.601 - wxImage ConvertToGreyscale(double weight_r, double weight_g, double weight_b) const; - wxImage ConvertToGreyscale(void) const; - - // convert to monochrome image (<r,g,b> will be replaced by white, - // everything else by black) - wxImage ConvertToMono( unsigned char r, unsigned char g, unsigned char b ) const; - - // Convert to disabled (dimmed) image. - wxImage ConvertToDisabled(unsigned char brightness = 255) const; - - // these routines are slow but safe - void SetRGB( int x, int y, unsigned char r, unsigned char g, unsigned char b ); - void SetRGB( const wxRect& rect, unsigned char r, unsigned char g, unsigned char b ); - unsigned char GetRed( int x, int y ) const; - unsigned char GetGreen( int x, int y ) const; - unsigned char GetBlue( int x, int y ) const; - - void SetAlpha(int x, int y, unsigned char alpha); - unsigned char GetAlpha(int x, int y) const; - - // find first colour that is not used in the image and has higher - // RGB values than <startR,startG,startB> - bool FindFirstUnusedColour( unsigned char *r, unsigned char *g, unsigned char *b, - unsigned char startR = 1, unsigned char startG = 0, - unsigned char startB = 0 ) const; - // Set image's mask to the area of 'mask' that has <r,g,b> colour - bool SetMaskFromImage(const wxImage & mask, - unsigned char mr, unsigned char mg, unsigned char mb); - - // converts image's alpha channel to mask (choosing mask colour - // automatically or using the specified colour for the mask), if it has - // any, does nothing otherwise: - bool ConvertAlphaToMask(unsigned char threshold = wxIMAGE_ALPHA_THRESHOLD); - bool ConvertAlphaToMask(unsigned char mr, unsigned char mg, unsigned char mb, - unsigned char threshold = wxIMAGE_ALPHA_THRESHOLD); - - - // This method converts an image where the original alpha - // information is only available as a shades of a colour - // (actually shades of grey) typically when you draw anti- - // aliased text into a bitmap. The DC drawinf routines - // draw grey values on the black background although they - // actually mean to draw white with differnt alpha values. - // This method reverses it, assuming a black (!) background - // and white text (actually only the red channel is read). - // The method will then fill up the whole image with the - // colour given. - bool ConvertColourToAlpha( unsigned char r, unsigned char g, unsigned char b ); - - // Methods for controlling LoadFile() behaviour. Currently they allow to - // specify whether the function should log warnings if there are any - // problems with the image file not completely preventing it from being - // loaded. By default the warnings are logged, but this can be disabled - // either globally or for a particular image object. - enum - { - Load_Verbose = 1 - }; - - static void SetDefaultLoadFlags(int flags); - static int GetDefaultLoadFlags(); - - void SetLoadFlags(int flags); - int GetLoadFlags() const; - - static bool CanRead( const wxString& name ); - static int GetImageCount( const wxString& name, wxBitmapType type = wxBITMAP_TYPE_ANY ); - virtual bool LoadFile( const wxString& name, wxBitmapType type = wxBITMAP_TYPE_ANY, int index = -1 ); - virtual bool LoadFile( const wxString& name, const wxString& mimetype, int index = -1 ); - -#if wxUSE_STREAMS - static bool CanRead( wxInputStream& stream ); - static int GetImageCount( wxInputStream& stream, wxBitmapType type = wxBITMAP_TYPE_ANY ); - virtual bool LoadFile( wxInputStream& stream, wxBitmapType type = wxBITMAP_TYPE_ANY, int index = -1 ); - virtual bool LoadFile( wxInputStream& stream, const wxString& mimetype, int index = -1 ); -#endif - - virtual bool SaveFile( const wxString& name ) const; - virtual bool SaveFile( const wxString& name, wxBitmapType type ) const; - virtual bool SaveFile( const wxString& name, const wxString& mimetype ) const; - -#if wxUSE_STREAMS - virtual bool SaveFile( wxOutputStream& stream, wxBitmapType type ) const; - virtual bool SaveFile( wxOutputStream& stream, const wxString& mimetype ) const; -#endif - - bool Ok() const { return IsOk(); } - bool IsOk() const; - int GetWidth() const; - int GetHeight() const; - - wxSize GetSize() const - { return wxSize(GetWidth(), GetHeight()); } - - // Gets the type of image found by LoadFile or specified with SaveFile - wxBitmapType GetType() const; - - // Set the image type, this is normally only called if the image is being - // created from data in the given format but not using LoadFile() (e.g. - // wxGIFDecoder uses this) - void SetType(wxBitmapType type); - - // these functions provide fastest access to wxImage data but should be - // used carefully as no checks are done - unsigned char *GetData() const; - void SetData( unsigned char *data, bool static_data=false ); - void SetData( unsigned char *data, int new_width, int new_height, bool static_data=false ); - - unsigned char *GetAlpha() const; // may return NULL! - bool HasAlpha() const { return GetAlpha() != NULL; } - void SetAlpha(unsigned char *alpha = NULL, bool static_data=false); - void InitAlpha(); - void ClearAlpha(); - - // return true if this pixel is masked or has alpha less than specified - // threshold - bool IsTransparent(int x, int y, - unsigned char threshold = wxIMAGE_ALPHA_THRESHOLD) const; - - // Mask functions - void SetMaskColour( unsigned char r, unsigned char g, unsigned char b ); - // Get the current mask colour or find a suitable colour - // returns true if using current mask colour - bool GetOrFindMaskColour( unsigned char *r, unsigned char *g, unsigned char *b ) const; - unsigned char GetMaskRed() const; - unsigned char GetMaskGreen() const; - unsigned char GetMaskBlue() const; - void SetMask( bool mask = true ); - bool HasMask() const; - -#if wxUSE_PALETTE - // Palette functions - bool HasPalette() const; - const wxPalette& GetPalette() const; - void SetPalette(const wxPalette& palette); -#endif // wxUSE_PALETTE - - // Option functions (arbitrary name/value mapping) - void SetOption(const wxString& name, const wxString& value); - void SetOption(const wxString& name, int value); - wxString GetOption(const wxString& name) const; - int GetOptionInt(const wxString& name) const; - bool HasOption(const wxString& name) const; - - unsigned long CountColours( unsigned long stopafter = (unsigned long) -1 ) const; - - // Computes the histogram of the image and fills a hash table, indexed - // with integer keys built as 0xRRGGBB, containing wxImageHistogramEntry - // objects. Each of them contains an 'index' (useful to build a palette - // with the image colours) and a 'value', which is the number of pixels - // in the image with that colour. - // Returned value: # of entries in the histogram - unsigned long ComputeHistogram( wxImageHistogram &h ) const; - - // Rotates the hue of each pixel of the image. angle is a double in the range - // -1.0..1.0 where -1.0 is -360 degrees and 1.0 is 360 degrees - void RotateHue(double angle); - - static wxList& GetHandlers() { return sm_handlers; } - static void AddHandler( wxImageHandler *handler ); - static void InsertHandler( wxImageHandler *handler ); - static bool RemoveHandler( const wxString& name ); - static wxImageHandler *FindHandler( const wxString& name ); - static wxImageHandler *FindHandler( const wxString& extension, wxBitmapType imageType ); - static wxImageHandler *FindHandler( wxBitmapType imageType ); - - static wxImageHandler *FindHandlerMime( const wxString& mimetype ); - - static wxString GetImageExtWildcard(); - - static void CleanUpHandlers(); - static void InitStandardHandlers(); - - static HSVValue RGBtoHSV(const RGBValue& rgb); - static RGBValue HSVtoRGB(const HSVValue& hsv); - -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED_CONSTRUCTOR( - wxImage(const wxString& name, long type, int index = -1) - { - LoadFile(name, (wxBitmapType)type, index); - } - ) - -#if wxUSE_STREAMS - wxDEPRECATED_CONSTRUCTOR( - wxImage(wxInputStream& stream, long type, int index = -1) - { - LoadFile(stream, (wxBitmapType)type, index); - } - ) - - wxDEPRECATED( - bool LoadFile(wxInputStream& stream, long type, int index = -1) - { - return LoadFile(stream, (wxBitmapType)type, index); - } - ) - - wxDEPRECATED( - bool SaveFile(wxOutputStream& stream, long type) const - { - return SaveFile(stream, (wxBitmapType)type); - } - ) -#endif // wxUSE_STREAMS - - wxDEPRECATED( - bool LoadFile(const wxString& name, long type, int index = -1) - { - return LoadFile(name, (wxBitmapType)type, index); - } - ) - - wxDEPRECATED( - bool SaveFile(const wxString& name, long type) const - { - return SaveFile(name, (wxBitmapType)type); - } - ) - - static wxDEPRECATED( - wxImageHandler *FindHandler(const wxString& ext, long type) - { - return FindHandler(ext, (wxBitmapType)type); - } - ) - - static wxDEPRECATED( - wxImageHandler *FindHandler(long imageType) - { - return FindHandler((wxBitmapType)imageType); - } - ) -#endif // WXWIN_COMPATIBILITY_2_8 - -protected: - static wxList sm_handlers; - - // return the index of the point with the given coordinates or -1 if the - // image is invalid of the coordinates are out of range - // - // note that index must be multiplied by 3 when using it with RGB array - long XYToIndex(int x, int y) const; - - virtual wxObjectRefData* CreateRefData() const wxOVERRIDE; - virtual wxObjectRefData* CloneRefData(const wxObjectRefData* data) const wxOVERRIDE; - -private: - friend class WXDLLIMPEXP_FWD_CORE wxImageHandler; - - // Possible values for MakeEmptyClone() flags. - enum - { - // Create an image with the same orientation as this one. This is the - // default and only exists for symmetry with SwapOrientation. - Clone_SameOrientation = 0, - - // Create an image with the same height as this image width and the - // same width as this image height. - Clone_SwapOrientation = 1 - }; - - // Returns a new blank image with the same dimensions (or with width and - // height swapped if Clone_SwapOrientation flag is given), alpha, and mask - // as this image itself. This is used by several functions creating - // modified versions of this image. - wxImage MakeEmptyClone(int flags = Clone_SameOrientation) const; - -#if wxUSE_STREAMS - // read the image from the specified stream updating image type if - // successful - bool DoLoad(wxImageHandler& handler, wxInputStream& stream, int index); - - // write the image to the specified stream and also update the image type - // if successful - bool DoSave(wxImageHandler& handler, wxOutputStream& stream) const; -#endif // wxUSE_STREAMS - - wxDECLARE_DYNAMIC_CLASS(wxImage); -}; - - -extern void WXDLLIMPEXP_CORE wxInitAllImageHandlers(); - -extern WXDLLIMPEXP_DATA_CORE(wxImage) wxNullImage; - -//----------------------------------------------------------------------------- -// wxImage handlers -//----------------------------------------------------------------------------- - -#include "wx/imagbmp.h" -#include "wx/imagpng.h" -#include "wx/imaggif.h" -#include "wx/imagpcx.h" -#include "wx/imagjpeg.h" -#include "wx/imagtga.h" -#include "wx/imagtiff.h" -#include "wx/imagpnm.h" -#include "wx/imagxpm.h" -#include "wx/imagiff.h" - -#endif // wxUSE_IMAGE - -#endif - // _WX_IMAGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imaggif.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imaggif.h deleted file mode 100644 index b59744c0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imaggif.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/imaggif.h -// Purpose: wxImage GIF handler -// Author: Vaclav Slavik, Guillermo Rodriguez Garcia, Gershon Elber, Troels K -// Copyright: (c) 1999-2011 Vaclav Slavik, Guillermo Rodriguez Garcia, Gershon Elber, Troels K -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGGIF_H_ -#define _WX_IMAGGIF_H_ - -#include "wx/image.h" - - -//----------------------------------------------------------------------------- -// wxGIFHandler -//----------------------------------------------------------------------------- - -#if wxUSE_GIF - -#define wxIMAGE_OPTION_GIF_COMMENT wxT("GifComment") - -struct wxRGB; -struct GifHashTableType; -class WXDLLIMPEXP_FWD_CORE wxImageArray; // anidecod.h - -class WXDLLIMPEXP_CORE wxGIFHandler : public wxImageHandler -{ -public: - inline wxGIFHandler() - { - m_name = wxT("GIF file"); - m_extension = wxT("gif"); - m_type = wxBITMAP_TYPE_GIF; - m_mime = wxT("image/gif"); - m_hashTable = NULL; - } - -#if wxUSE_STREAMS - virtual bool LoadFile(wxImage *image, wxInputStream& stream, - bool verbose = true, int index = -1) wxOVERRIDE; - virtual bool SaveFile(wxImage *image, wxOutputStream& stream, - bool verbose=true) wxOVERRIDE; - - // Save animated gif - bool SaveAnimation(const wxImageArray& images, wxOutputStream *stream, - bool verbose = true, int delayMilliSecs = 1000); - -protected: - virtual int DoGetImageCount(wxInputStream& stream) wxOVERRIDE; - virtual bool DoCanRead(wxInputStream& stream) wxOVERRIDE; - - bool DoSaveFile(const wxImage&, wxOutputStream *, bool verbose, - bool first, int delayMilliSecs, bool loop, - const wxRGB *pal, int palCount, - int mask_index); -#endif // wxUSE_STREAMS -protected: - - // Declarations for saving - - unsigned long m_crntShiftDWord; /* For bytes decomposition into codes. */ - int m_pixelCount; - struct GifHashTableType *m_hashTable; - wxInt16 - m_EOFCode, /* The EOF LZ code. */ - m_clearCode, /* The CLEAR LZ code. */ - m_runningCode, /* The next code algorithm can generate. */ - m_runningBits, /* The number of bits required to represent RunningCode. */ - m_maxCode1, /* 1 bigger than max. possible code, in RunningBits bits. */ - m_crntCode, /* Current algorithm code. */ - m_crntShiftState; /* Number of bits in CrntShiftDWord. */ - wxUint8 m_LZBuf[256]; /* Compressed input is buffered here. */ - - bool InitHashTable(); - void ClearHashTable(); - void InsertHashTable(unsigned long key, int code); - int ExistsHashTable(unsigned long key); - -#if wxUSE_STREAMS - bool CompressOutput(wxOutputStream *, int code); - bool SetupCompress(wxOutputStream *, int bpp); - bool CompressLine(wxOutputStream *, const wxUint8 *line, int lineLen); -#endif - -private: - wxDECLARE_DYNAMIC_CLASS(wxGIFHandler); -}; - -#endif // wxUSE_GIF - -#endif // _WX_IMAGGIF_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagiff.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagiff.h deleted file mode 100644 index 78c65610..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagiff.h +++ /dev/null @@ -1,43 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/imagiff.h -// Purpose: wxImage handler for Amiga IFF images -// Author: Steffen Gutmann -// Copyright: (c) Steffen Gutmann, 2002 -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGE_IFF_H_ -#define _WX_IMAGE_IFF_H_ - -#include "wx/image.h" - -//----------------------------------------------------------------------------- -// wxIFFHandler -//----------------------------------------------------------------------------- - -#if wxUSE_IMAGE && wxUSE_IFF - -class WXDLLIMPEXP_CORE wxIFFHandler : public wxImageHandler -{ -public: - wxIFFHandler() - { - m_name = wxT("IFF file"); - m_extension = wxT("iff"); - m_type = wxBITMAP_TYPE_IFF; - m_mime = wxT("image/x-iff"); - } - -#if wxUSE_STREAMS - virtual bool LoadFile(wxImage *image, wxInputStream& stream, bool verbose=true, int index=-1) wxOVERRIDE; - virtual bool SaveFile(wxImage *image, wxOutputStream& stream, bool verbose=true) wxOVERRIDE; -protected: - virtual bool DoCanRead(wxInputStream& stream) wxOVERRIDE; -#endif - - wxDECLARE_DYNAMIC_CLASS(wxIFFHandler); -}; - -#endif // wxUSE_IMAGE && wxUSE_IFF - -#endif // _WX_IMAGE_IFF_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagjpeg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagjpeg.h deleted file mode 100644 index 342aa7e9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagjpeg.h +++ /dev/null @@ -1,52 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/imagjpeg.h -// Purpose: wxImage JPEG handler -// Author: Vaclav Slavik -// Copyright: (c) Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGJPEG_H_ -#define _WX_IMAGJPEG_H_ - -#include "wx/defs.h" - -//----------------------------------------------------------------------------- -// wxJPEGHandler -//----------------------------------------------------------------------------- - -#if wxUSE_LIBJPEG - -#include "wx/image.h" -#include "wx/versioninfo.h" - -class WXDLLIMPEXP_CORE wxJPEGHandler: public wxImageHandler -{ -public: - inline wxJPEGHandler() - { - m_name = wxT("JPEG file"); - m_extension = wxT("jpg"); - m_altExtensions.Add(wxT("jpeg")); - m_altExtensions.Add(wxT("jpe")); - m_type = wxBITMAP_TYPE_JPEG; - m_mime = wxT("image/jpeg"); - } - - static wxVersionInfo GetLibraryVersionInfo(); - -#if wxUSE_STREAMS - virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=true, int index=-1 ) wxOVERRIDE; - virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=true ) wxOVERRIDE; -protected: - virtual bool DoCanRead( wxInputStream& stream ) wxOVERRIDE; -#endif - -private: - wxDECLARE_DYNAMIC_CLASS(wxJPEGHandler); -}; - -#endif // wxUSE_LIBJPEG - -#endif // _WX_IMAGJPEG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imaglist.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imaglist.h deleted file mode 100644 index 72255ac7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imaglist.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/imaglist.h -// Purpose: wxImageList base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGLIST_H_BASE_ -#define _WX_IMAGLIST_H_BASE_ - -#include "wx/defs.h" - -/* - * wxImageList is used for wxListCtrl, wxTreeCtrl. These controls refer to - * images for their items by an index into an image list. - * A wxImageList is capable of creating images with optional masks from - * a variety of sources - a single bitmap plus a colour to indicate the mask, - * two bitmaps, or an icon. - * - * Image lists can also create and draw images used for drag and drop functionality. - * This is not yet implemented in wxImageList. We need to discuss a generic API - * for doing drag and drop and see whether it ties in with the Win95 view of it. - * See below for candidate functions and an explanation of how they might be - * used. - */ - -// Flag values for Set/GetImageList -enum -{ - wxIMAGE_LIST_NORMAL, // Normal icons - wxIMAGE_LIST_SMALL, // Small icons - wxIMAGE_LIST_STATE // State icons: unimplemented (see WIN32 documentation) -}; - -// Flags for Draw -#define wxIMAGELIST_DRAW_NORMAL 0x0001 -#define wxIMAGELIST_DRAW_TRANSPARENT 0x0002 -#define wxIMAGELIST_DRAW_SELECTED 0x0004 -#define wxIMAGELIST_DRAW_FOCUSED 0x0008 - -#if defined(__WXMSW__) || defined(__WXMAC__) - #define wxHAS_NATIVE_IMAGELIST -#endif - -#if !defined(wxHAS_NATIVE_IMAGELIST) - #include "wx/generic/imaglist.h" -#elif defined(__WXMSW__) - #include "wx/msw/imaglist.h" -#elif defined(__WXMAC__) - #include "wx/osx/imaglist.h" -#endif - -#endif // _WX_IMAGLIST_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagpcx.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagpcx.h deleted file mode 100644 index 210bbb32..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagpcx.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/imagpcx.h -// Purpose: wxImage PCX handler -// Author: Guillermo Rodriguez Garcia <guille@iies.es> -// Copyright: (c) 1999 Guillermo Rodriguez Garcia -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGPCX_H_ -#define _WX_IMAGPCX_H_ - -#include "wx/image.h" - - -//----------------------------------------------------------------------------- -// wxPCXHandler -//----------------------------------------------------------------------------- - -#if wxUSE_PCX -class WXDLLIMPEXP_CORE wxPCXHandler : public wxImageHandler -{ -public: - inline wxPCXHandler() - { - m_name = wxT("PCX file"); - m_extension = wxT("pcx"); - m_type = wxBITMAP_TYPE_PCX; - m_mime = wxT("image/pcx"); - } - -#if wxUSE_STREAMS - virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=true, int index=-1 ) wxOVERRIDE; - virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=true ) wxOVERRIDE; -protected: - virtual bool DoCanRead( wxInputStream& stream ) wxOVERRIDE; -#endif // wxUSE_STREAMS - -private: - wxDECLARE_DYNAMIC_CLASS(wxPCXHandler); -}; -#endif // wxUSE_PCX - - -#endif - // _WX_IMAGPCX_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagpng.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagpng.h deleted file mode 100644 index e30cf738..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagpng.h +++ /dev/null @@ -1,68 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/imagpng.h -// Purpose: wxImage PNG handler -// Author: Robert Roebling -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGPNG_H_ -#define _WX_IMAGPNG_H_ - -#include "wx/defs.h" - -//----------------------------------------------------------------------------- -// wxPNGHandler -//----------------------------------------------------------------------------- - -#if wxUSE_LIBPNG - -#include "wx/image.h" -#include "wx/versioninfo.h" - -#define wxIMAGE_OPTION_PNG_FORMAT wxT("PngFormat") -#define wxIMAGE_OPTION_PNG_BITDEPTH wxT("PngBitDepth") -#define wxIMAGE_OPTION_PNG_FILTER wxT("PngF") -#define wxIMAGE_OPTION_PNG_COMPRESSION_LEVEL wxT("PngZL") -#define wxIMAGE_OPTION_PNG_COMPRESSION_MEM_LEVEL wxT("PngZM") -#define wxIMAGE_OPTION_PNG_COMPRESSION_STRATEGY wxT("PngZS") -#define wxIMAGE_OPTION_PNG_COMPRESSION_BUFFER_SIZE wxT("PngZB") - -enum -{ - wxPNG_TYPE_COLOUR = 0, - wxPNG_TYPE_GREY = 2, - wxPNG_TYPE_GREY_RED = 3, - wxPNG_TYPE_PALETTE = 4 -}; - -class WXDLLIMPEXP_CORE wxPNGHandler: public wxImageHandler -{ -public: - inline wxPNGHandler() - { - m_name = wxT("PNG file"); - m_extension = wxT("png"); - m_type = wxBITMAP_TYPE_PNG; - m_mime = wxT("image/png"); - } - - static wxVersionInfo GetLibraryVersionInfo(); - -#if wxUSE_STREAMS - virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=true, int index=-1 ) wxOVERRIDE; - virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=true ) wxOVERRIDE; -protected: - virtual bool DoCanRead( wxInputStream& stream ) wxOVERRIDE; -#endif - -private: - wxDECLARE_DYNAMIC_CLASS(wxPNGHandler); -}; - -#endif - // wxUSE_LIBPNG - -#endif - // _WX_IMAGPNG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagpnm.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagpnm.h deleted file mode 100644 index 0f3f460a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagpnm.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/imagpnm.h -// Purpose: wxImage PNM handler -// Author: Sylvain Bougnoux -// Copyright: (c) Sylvain Bougnoux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGPNM_H_ -#define _WX_IMAGPNM_H_ - -#include "wx/image.h" - -//----------------------------------------------------------------------------- -// wxPNMHandler -//----------------------------------------------------------------------------- - -#if wxUSE_PNM -class WXDLLIMPEXP_CORE wxPNMHandler : public wxImageHandler -{ -public: - inline wxPNMHandler() - { - m_name = wxT("PNM file"); - m_extension = wxT("pnm"); - m_altExtensions.Add(wxT("ppm")); - m_altExtensions.Add(wxT("pgm")); - m_altExtensions.Add(wxT("pbm")); - m_type = wxBITMAP_TYPE_PNM; - m_mime = wxT("image/pnm"); - } - -#if wxUSE_STREAMS - virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=true, int index=-1 ) wxOVERRIDE; - virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=true ) wxOVERRIDE; -protected: - virtual bool DoCanRead( wxInputStream& stream ) wxOVERRIDE; -#endif - -private: - wxDECLARE_DYNAMIC_CLASS(wxPNMHandler); -}; -#endif - - -#endif - // _WX_IMAGPNM_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagtga.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagtga.h deleted file mode 100644 index 0c2c7d0a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagtga.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/imagtga.h -// Purpose: wxImage TGA handler -// Author: Seth Jackson -// Copyright: (c) 2005 Seth Jackson -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGTGA_H_ -#define _WX_IMAGTGA_H_ - -#include "wx/image.h" - -//----------------------------------------------------------------------------- -// wxTGAHandler -//----------------------------------------------------------------------------- - -#if wxUSE_TGA - -class WXDLLIMPEXP_CORE wxTGAHandler : public wxImageHandler -{ -public: - wxTGAHandler() - { - m_name = wxT("TGA file"); - m_extension = wxT("tga"); - m_altExtensions.Add(wxT("tpic")); - m_type = wxBITMAP_TYPE_TGA; - m_mime = wxT("image/tga"); - } - -#if wxUSE_STREAMS - virtual bool LoadFile(wxImage* image, wxInputStream& stream, - bool verbose = true, int index = -1) wxOVERRIDE; - virtual bool SaveFile(wxImage* image, wxOutputStream& stream, - bool verbose = true) wxOVERRIDE; -protected: - virtual bool DoCanRead(wxInputStream& stream) wxOVERRIDE; -#endif // wxUSE_STREAMS - - wxDECLARE_DYNAMIC_CLASS(wxTGAHandler); -}; - -#endif // wxUSE_TGA - -#endif // _WX_IMAGTGA_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagtiff.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagtiff.h deleted file mode 100644 index 0c7be888..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagtiff.h +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/imagtiff.h -// Purpose: wxImage TIFF handler -// Author: Robert Roebling -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGTIFF_H_ -#define _WX_IMAGTIFF_H_ - -#include "wx/defs.h" - -//----------------------------------------------------------------------------- -// wxTIFFHandler -//----------------------------------------------------------------------------- - -#if wxUSE_LIBTIFF - -#include "wx/image.h" -#include "wx/versioninfo.h" - -// defines for wxImage::SetOption -#define wxIMAGE_OPTION_TIFF_BITSPERSAMPLE wxString(wxT("BitsPerSample")) -#define wxIMAGE_OPTION_TIFF_SAMPLESPERPIXEL wxString(wxT("SamplesPerPixel")) -#define wxIMAGE_OPTION_TIFF_COMPRESSION wxString(wxT("Compression")) -#define wxIMAGE_OPTION_TIFF_PHOTOMETRIC wxString(wxT("Photometric")) -#define wxIMAGE_OPTION_TIFF_IMAGEDESCRIPTOR wxString(wxT("ImageDescriptor")) - -// for backwards compatibility -#define wxIMAGE_OPTION_BITSPERSAMPLE wxIMAGE_OPTION_TIFF_BITSPERSAMPLE -#define wxIMAGE_OPTION_SAMPLESPERPIXEL wxIMAGE_OPTION_TIFF_SAMPLESPERPIXEL -#define wxIMAGE_OPTION_COMPRESSION wxIMAGE_OPTION_TIFF_COMPRESSION -#define wxIMAGE_OPTION_IMAGEDESCRIPTOR wxIMAGE_OPTION_TIFF_IMAGEDESCRIPTOR - -class WXDLLIMPEXP_CORE wxTIFFHandler: public wxImageHandler -{ -public: - wxTIFFHandler(); - - static wxVersionInfo GetLibraryVersionInfo(); - -#if wxUSE_STREAMS - virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=true, int index=-1 ) wxOVERRIDE; - virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=true ) wxOVERRIDE; - -protected: - virtual int DoGetImageCount( wxInputStream& stream ) wxOVERRIDE; - virtual bool DoCanRead( wxInputStream& stream ) wxOVERRIDE; -#endif - -private: - wxDECLARE_DYNAMIC_CLASS(wxTIFFHandler); -}; - -#endif // wxUSE_LIBTIFF - -#endif // _WX_IMAGTIFF_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagxpm.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagxpm.h deleted file mode 100644 index 1af34875..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/imagxpm.h +++ /dev/null @@ -1,44 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/imagxpm.h -// Purpose: wxImage XPM handler -// Author: Vaclav Slavik -// Copyright: (c) 2001 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGXPM_H_ -#define _WX_IMAGXPM_H_ - -#include "wx/image.h" - -#if wxUSE_XPM - -//----------------------------------------------------------------------------- -// wxXPMHandler -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxXPMHandler : public wxImageHandler -{ -public: - inline wxXPMHandler() - { - m_name = wxT("XPM file"); - m_extension = wxT("xpm"); - m_type = wxBITMAP_TYPE_XPM; - m_mime = wxT("image/xpm"); - } - -#if wxUSE_STREAMS - virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=true, int index=-1 ) wxOVERRIDE; - virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=true ) wxOVERRIDE; -protected: - virtual bool DoCanRead( wxInputStream& stream ) wxOVERRIDE; -#endif - -private: - wxDECLARE_DYNAMIC_CLASS(wxXPMHandler); -}; - -#endif // wxUSE_XPM - -#endif // _WX_IMAGXPM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/infobar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/infobar.h deleted file mode 100644 index ebda4f69..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/infobar.h +++ /dev/null @@ -1,72 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/infobar.h -// Purpose: declaration of wxInfoBarBase defining common API of wxInfoBar -// Author: Vadim Zeitlin -// Created: 2009-07-28 -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_INFOBAR_H_ -#define _WX_INFOBAR_H_ - -#include "wx/defs.h" - -#if wxUSE_INFOBAR - -#include "wx/control.h" - -// ---------------------------------------------------------------------------- -// wxInfoBar shows non-critical but important information to the user -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxInfoBarBase : public wxControl -{ -public: - // real ctors are provided by the derived classes, just notice that unlike - // most of the other windows, info bar is created hidden and must be - // explicitly shown when it is needed (this is done because it is supposed - // to be shown only intermittently and hiding it after creating it from the - // user code would result in flicker) - wxInfoBarBase() { } - - - // show the info bar with the given message and optionally an icon - virtual void ShowMessage(const wxString& msg, - int flags = wxICON_INFORMATION) = 0; - - // hide the info bar - virtual void Dismiss() = 0; - - // add an extra button to the bar, near the message (replacing the default - // close button which is only shown if no extra buttons are used) - virtual void AddButton(wxWindowID btnid, - const wxString& label = wxString()) = 0; - - // remove a button previously added by AddButton() - virtual void RemoveButton(wxWindowID btnid) = 0; - - // get information about the currently shown buttons - virtual size_t GetButtonCount() const = 0; - virtual wxWindowID GetButtonId(size_t idx) const = 0; - virtual bool HasButtonId(wxWindowID btnid) const = 0; - -private: - wxDECLARE_NO_COPY_CLASS(wxInfoBarBase); -}; - -// currently only GTK+ has a native implementation -#if defined(__WXGTK218__) && !defined(__WXUNIVERSAL__) - #include "wx/gtk/infobar.h" - #define wxHAS_NATIVE_INFOBAR -#endif // wxGTK2 - -// if the generic version is the only one we have, use it -#ifndef wxHAS_NATIVE_INFOBAR - #include "wx/generic/infobar.h" - #define wxInfoBar wxInfoBarGeneric -#endif - -#endif // wxUSE_INFOBAR - -#endif // _WX_INFOBAR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/init.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/init.h deleted file mode 100644 index 0810cceb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/init.h +++ /dev/null @@ -1,116 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/init.h -// Purpose: wxWidgets initialization and finalization functions -// Author: Vadim Zeitlin -// Modified by: -// Created: 29.06.2003 -// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_INIT_H_ -#define _WX_INIT_H_ - -#include "wx/defs.h" -#include "wx/chartype.h" - -// ---------------------------------------------------------------------------- -// wxEntry helper functions which allow to have more fine grained control -// ---------------------------------------------------------------------------- - -// do common initialization, return true if ok (in this case wxEntryCleanup -// must be called later), otherwise the program can't use wxWidgets at all -// -// this function also creates wxTheApp as a side effect, if wxIMPLEMENT_APP -// hadn't been used a dummy default application object is created -// -// note that the parameters may be modified, this is why we pass them by -// reference! -extern bool WXDLLIMPEXP_BASE wxEntryStart(int& argc, wxChar **argv); - -// free the resources allocated by the library in wxEntryStart() and shut it -// down (wxEntryStart() may be called again afterwards if necessary) -extern void WXDLLIMPEXP_BASE wxEntryCleanup(); - - -// ---------------------------------------------------------------------------- -// wxEntry: this function initializes the library, runs the main event loop -// and cleans it up -// ---------------------------------------------------------------------------- - -// note that other, platform-specific, overloads of wxEntry may exist as well -// but this one always exists under all platforms -// -// returns the program exit code -extern int WXDLLIMPEXP_BASE wxEntry(int& argc, wxChar **argv); - -// we overload wxEntry[Start]() to take "char **" pointers too -#if wxUSE_UNICODE - -extern bool WXDLLIMPEXP_BASE wxEntryStart(int& argc, char **argv); -extern int WXDLLIMPEXP_BASE wxEntry(int& argc, char **argv); - -#endif// wxUSE_UNICODE - -// Under Windows we define additional wxEntry() overloads with signature -// compatible with WinMain() and not the traditional main(). -#if wxUSE_GUI && defined(__WINDOWS__) - #include "wx/msw/init.h" -#endif - -// ---------------------------------------------------------------------------- -// Using the library without (explicit) application object: you may avoid using -// wxDECLARE_APP and wxIMPLEMENT_APP macros and call the functions below instead at -// the program startup and termination -// ---------------------------------------------------------------------------- - -// initialize the library (may be called as many times as needed, but each -// call to wxInitialize() must be matched by wxUninitialize()) -extern bool WXDLLIMPEXP_BASE wxInitialize(); -extern bool WXDLLIMPEXP_BASE wxInitialize(int& argc, wxChar **argv); -#if wxUSE_UNICODE -extern bool WXDLLIMPEXP_BASE wxInitialize(int& argc, char **argv); -#endif - -// clean up -- the library can't be used any more after the last call to -// wxUninitialize() -extern void WXDLLIMPEXP_BASE wxUninitialize(); - -// create an object of this class on stack to initialize/cleanup the library -// automatically -class WXDLLIMPEXP_BASE wxInitializer -{ -public: - // initialize the library - wxInitializer() - { - m_ok = wxInitialize(); - } - - wxInitializer(int& argc, wxChar **argv) - { - m_ok = wxInitialize(argc, argv); - } - -#if wxUSE_UNICODE - wxInitializer(int& argc, char **argv) - { - m_ok = wxInitialize(argc, argv); - } -#endif // wxUSE_UNICODE - - // has the initialization been successful? (explicit test) - bool IsOk() const { return m_ok; } - - // has the initialization been successful? (implicit test) - operator bool() const { return m_ok; } - - // dtor only does clean up if we initialized the library properly - ~wxInitializer() { if ( m_ok ) wxUninitialize(); } - -private: - bool m_ok; -}; - -#endif // _WX_INIT_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/intl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/intl.h deleted file mode 100644 index c2020ddb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/intl.h +++ /dev/null @@ -1,371 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/intl.h -// Purpose: Internationalization and localisation for wxWidgets -// Author: Vadim Zeitlin -// Modified by: Michael N. Filippov <michael@idisys.iae.nsk.su> -// (2003/09/30 - plural forms support) -// Created: 29/01/98 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_INTL_H_ -#define _WX_INTL_H_ - -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/translation.h" - -// Make wxLayoutDirection enum available without need for wxUSE_INTL so wxWindow, wxApp -// and other classes are not distrubed by wxUSE_INTL - -enum wxLayoutDirection -{ - wxLayout_Default, - wxLayout_LeftToRight, - wxLayout_RightToLeft -}; - -#if wxUSE_INTL - -#include "wx/fontenc.h" -#include "wx/language.h" - -// ============================================================================ -// global decls -// ============================================================================ - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -// forward decls -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_BASE wxLocale; -class WXDLLIMPEXP_FWD_BASE wxLanguageInfoArray; - -// ============================================================================ -// locale support -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxLanguageInfo: encapsulates wxLanguage to OS native lang.desc. -// translation information -// ---------------------------------------------------------------------------- - -struct WXDLLIMPEXP_BASE wxLanguageInfo -{ - int Language; // wxLanguage id - wxString CanonicalName; // Canonical name, e.g. fr_FR -#ifdef __WINDOWS__ - wxUint32 WinLang, // Win32 language identifiers - WinSublang; -#endif // __WINDOWS__ - wxString Description; // human-readable name of the language - wxLayoutDirection LayoutDirection; - -#ifdef __WINDOWS__ - // return the LCID corresponding to this language - wxUint32 GetLCID() const; -#endif // __WINDOWS__ - - // return the locale name corresponding to this language usable with - // setlocale() on the current system - wxString GetLocaleName() const; -}; - -// for Unix systems GetLocaleName() is trivial so implement it inline here, for -// MSW it's implemented in intl.cpp -#ifndef __WINDOWS__ -inline wxString wxLanguageInfo::GetLocaleName() const { return CanonicalName; } -#endif // !__WINDOWS__ - - -// ---------------------------------------------------------------------------- -// wxLocaleCategory: the category of locale settings -// ---------------------------------------------------------------------------- - -enum wxLocaleCategory -{ - // (any) numbers - wxLOCALE_CAT_NUMBER, - - // date/time - wxLOCALE_CAT_DATE, - - // monetary value - wxLOCALE_CAT_MONEY, - - // default category for wxLocaleInfo values which only apply to a single - // category (e.g. wxLOCALE_SHORT_DATE_FMT) - wxLOCALE_CAT_DEFAULT, - - wxLOCALE_CAT_MAX -}; - -// ---------------------------------------------------------------------------- -// wxLocaleInfo: the items understood by wxLocale::GetInfo() -// ---------------------------------------------------------------------------- - -enum wxLocaleInfo -{ - // the thousands separator (for wxLOCALE_CAT_NUMBER or MONEY) - wxLOCALE_THOUSANDS_SEP, - - // the character used as decimal point (for wxLOCALE_CAT_NUMBER or MONEY) - wxLOCALE_DECIMAL_POINT, - - // the stftime()-formats used for short/long date and time representations - // (under some platforms short and long date formats are the same) - // - // NB: these elements should appear in this order, code in GetInfo() relies - // on it - wxLOCALE_SHORT_DATE_FMT, - wxLOCALE_LONG_DATE_FMT, - wxLOCALE_DATE_TIME_FMT, - wxLOCALE_TIME_FMT - -}; - -// ---------------------------------------------------------------------------- -// wxLocale: encapsulates all language dependent settings, including current -// message catalogs, date, time and currency formats (TODO) &c -// ---------------------------------------------------------------------------- - -enum wxLocaleInitFlags -{ - wxLOCALE_DONT_LOAD_DEFAULT = 0x0000, // don't load wxwin.mo - wxLOCALE_LOAD_DEFAULT = 0x0001 // load wxwin.mo? -#if WXWIN_COMPATIBILITY_2_8 - ,wxLOCALE_CONV_ENCODING = 0x0002 // no longer used, simply remove - // it from the existing code -#endif -}; - -class WXDLLIMPEXP_BASE wxLocale -{ -public: - // ctor & dtor - // ----------- - - // call Init() if you use this ctor - wxLocale() { DoCommonInit(); } - - // the ctor has a side effect of changing current locale - wxLocale(const wxString& name, // name (for messages) - const wxString& shortName = wxEmptyString, // dir prefix (for msg files) - const wxString& locale = wxEmptyString, // locale (for setlocale) - bool bLoadDefault = true // preload wxstd.mo? -#if WXWIN_COMPATIBILITY_2_8 - ,bool bConvertEncoding = true // convert Win<->Unix if necessary? -#endif - ) - { - DoCommonInit(); - -#if WXWIN_COMPATIBILITY_2_8 - Init(name, shortName, locale, bLoadDefault, bConvertEncoding); -#else - Init(name, shortName, locale, bLoadDefault); -#endif - } - - wxLocale(int language, // wxLanguage id or custom language - int flags = wxLOCALE_LOAD_DEFAULT) - { - DoCommonInit(); - - Init(language, flags); - } - - // the same as a function (returns true on success) - bool Init(const wxString& name, - const wxString& shortName = wxEmptyString, - const wxString& locale = wxEmptyString, - bool bLoadDefault = true -#if WXWIN_COMPATIBILITY_2_8 - ,bool bConvertEncoding = true -#endif - ); - - // same as second ctor (returns true on success) - bool Init(int language = wxLANGUAGE_DEFAULT, - int flags = wxLOCALE_LOAD_DEFAULT); - - // restores old locale - virtual ~wxLocale(); - - // Try to get user's (or OS's) preferred language setting. - // Return wxLANGUAGE_UNKNOWN if language-guessing algorithm failed - static int GetSystemLanguage(); - - // get the encoding used by default for text on this system, returns - // wxFONTENCODING_SYSTEM if it couldn't be determined - static wxFontEncoding GetSystemEncoding(); - - // get the string describing the system encoding, return empty string if - // couldn't be determined - static wxString GetSystemEncodingName(); - - // get the values of the given locale-dependent datum: the current locale - // is used, the US default value is returned if everything else fails - static wxString GetInfo(wxLocaleInfo index, - wxLocaleCategory cat = wxLOCALE_CAT_DEFAULT); - - // Same as GetInfo() but uses current locale at the OS level to retrieve - // the information. Normally it should be the same as the one used by - // GetInfo() but there are two exceptions: the most important one is that - // if no locale had been set, GetInfo() would fall back to "C" locale, - // while this one uses the default OS locale. Another, more rare, one is - // that some locales might not supported by the OS. - // - // Currently this is the same as GetInfo() under non-MSW platforms. - static wxString GetOSInfo(wxLocaleInfo index, - wxLocaleCategory cat = wxLOCALE_CAT_DEFAULT); - - // return true if the locale was set successfully - bool IsOk() const { return m_pszOldLocale != NULL; } - - // returns locale name - const wxString& GetLocale() const { return m_strLocale; } - - // return current locale wxLanguage value - int GetLanguage() const { return m_language; } - - // return locale name to be passed to setlocale() - wxString GetSysName() const; - - // return 'canonical' name, i.e. in the form of xx[_YY], where xx is - // language code according to ISO 639 and YY is country name - // as specified by ISO 3166. - wxString GetCanonicalName() const { return m_strShort; } - - // add a prefix to the catalog lookup path: the message catalog files will be - // looked up under prefix/<lang>/LC_MESSAGES, prefix/LC_MESSAGES and prefix - // (in this order). - // - // This only applies to subsequent invocations of AddCatalog()! - static void AddCatalogLookupPathPrefix(const wxString& prefix) - { wxFileTranslationsLoader::AddCatalogLookupPathPrefix(prefix); } - - // add a catalog: it's searched for in standard places (current directory - // first, system one after), but the you may prepend additional directories to - // the search path with AddCatalogLookupPathPrefix(). - // - // The loaded catalog will be used for message lookup by GetString(). - // - // Returns 'true' if it was successfully loaded - bool AddCatalog(const wxString& domain); - bool AddCatalog(const wxString& domain, wxLanguage msgIdLanguage); - bool AddCatalog(const wxString& domain, - wxLanguage msgIdLanguage, const wxString& msgIdCharset); - - // check if the given locale is provided by OS and C run time - static bool IsAvailable(int lang); - - // check if the given catalog is loaded - bool IsLoaded(const wxString& domain) const; - - // Retrieve the language info struct for the given language - // - // Returns NULL if no info found, pointer must *not* be deleted by caller - static const wxLanguageInfo *GetLanguageInfo(int lang); - - // Returns language name in English or empty string if the language - // is not in database - static wxString GetLanguageName(int lang); - - // Returns ISO code ("canonical name") of language or empty string if the - // language is not in database - static wxString GetLanguageCanonicalName(int lang); - - // Find the language for the given locale string which may be either a - // canonical ISO 2 letter language code ("xx"), a language code followed by - // the country code ("xx_XX") or a Windows full language name ("Xxxxx...") - // - // Returns NULL if no info found, pointer must *not* be deleted by caller - static const wxLanguageInfo *FindLanguageInfo(const wxString& locale); - - // Add custom language to the list of known languages. - // Notes: 1) wxLanguageInfo contains platform-specific data - // 2) must be called before Init to have effect - static void AddLanguage(const wxLanguageInfo& info); - - // retrieve the translation for a string in all loaded domains unless - // the szDomain parameter is specified (and then only this domain is - // searched) - // n - additional parameter for PluralFormsParser - // - // return original string if translation is not available - // (in this case an error message is generated the first time - // a string is not found; use wxLogNull to suppress it) - // - // domains are searched in the last to first order, i.e. catalogs - // added later override those added before. - const wxString& GetString(const wxString& origString, - const wxString& domain = wxEmptyString) const - { - return wxGetTranslation(origString, domain); - } - // plural form version of the same: - const wxString& GetString(const wxString& origString, - const wxString& origString2, - unsigned n, - const wxString& domain = wxEmptyString) const - { - return wxGetTranslation(origString, origString2, n, domain); - } - - // Returns the current short name for the locale - const wxString& GetName() const { return m_strShort; } - - // return the contents of .po file header - wxString GetHeaderValue(const wxString& header, - const wxString& domain = wxEmptyString) const; - - // These two methods are for internal use only. First one creates - // ms_languagesDB if it doesn't already exist, second one destroys - // it. - static void CreateLanguagesDB(); - static void DestroyLanguagesDB(); - -private: - bool DoInit(const wxString& name, - const wxString& shortName, - const wxString& locale); - - // copy default table of languages from global static array to - // m_langugagesInfo, called by InitLanguagesDB - static void InitLanguagesDB(); - - // initialize the member fields to default values - void DoCommonInit(); - - wxString m_strLocale, // this locale name - m_strShort; // short name for the locale - int m_language; // this locale wxLanguage value - - const char *m_pszOldLocale; // previous locale from setlocale() - wxLocale *m_pOldLocale; // previous wxLocale - - bool m_initialized; - - wxTranslations m_translations; - - static wxLanguageInfoArray *ms_languagesDB; - - wxDECLARE_NO_COPY_CLASS(wxLocale); -}; - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -// get the current locale object (note that it may be NULL!) -extern WXDLLIMPEXP_BASE wxLocale* wxGetLocale(); - -#endif // wxUSE_INTL - -#endif // _WX_INTL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/iosfwrap.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/iosfwrap.h deleted file mode 100644 index 13fb1f7f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/iosfwrap.h +++ /dev/null @@ -1,25 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/iosfwrap.h -// Purpose: includes the correct stream-related forward declarations -// Author: Jan van Dijk <jan@etpmod.phys.tue.nl> -// Modified by: -// Created: 18.12.2002 -// Copyright: wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#if wxUSE_STD_IOSTREAM - -#if wxUSE_IOSTREAMH - // There is no pre-ANSI iosfwd header so we include the full declarations. -# include <iostream.h> -#else -# include <iosfwd> -#endif - -#ifdef __WINDOWS__ -# include "wx/msw/winundef.h" -#endif - -#endif // wxUSE_STD_IOSTREAM - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ioswrap.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ioswrap.h deleted file mode 100644 index 5805588e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ioswrap.h +++ /dev/null @@ -1,29 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/ioswrap.h -// Purpose: includes the correct iostream headers for current compiler -// Author: Vadim Zeitlin -// Modified by: -// Created: 03.02.99 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#if wxUSE_STD_IOSTREAM - -#include "wx/beforestd.h" - -#if wxUSE_IOSTREAMH -# include <iostream.h> -#else -# include <iostream> -#endif - -#include "wx/afterstd.h" - -#ifdef __WINDOWS__ -# include "wx/msw/winundef.h" -#endif - -#endif - // wxUSE_STD_IOSTREAM - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ipc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ipc.h deleted file mode 100644 index 36542e5f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ipc.h +++ /dev/null @@ -1,44 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/ipc.h -// Purpose: wrapper around different wxIPC classes implementations -// Author: Vadim Zeitlin -// Modified by: -// Created: 15.04.02 -// Copyright: (c) 2002 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IPC_H_ -#define _WX_IPC_H_ - -// Set wxUSE_DDE_FOR_IPC to 1 to use DDE for IPC under Windows. If it is set to -// 0, or if the platform is not Windows, use TCP/IP for IPC implementation - -#if !defined(wxUSE_DDE_FOR_IPC) - #ifdef __WINDOWS__ - #define wxUSE_DDE_FOR_IPC 1 - #else - #define wxUSE_DDE_FOR_IPC 0 - #endif -#endif // !defined(wxUSE_DDE_FOR_IPC) - -#if !defined(__WINDOWS__) - #undef wxUSE_DDE_FOR_IPC - #define wxUSE_DDE_FOR_IPC 0 -#endif - -#if wxUSE_DDE_FOR_IPC - #define wxConnection wxDDEConnection - #define wxServer wxDDEServer - #define wxClient wxDDEClient - - #include "wx/dde.h" -#else // !wxUSE_DDE_FOR_IPC - #define wxConnection wxTCPConnection - #define wxServer wxTCPServer - #define wxClient wxTCPClient - - #include "wx/sckipc.h" -#endif // wxUSE_DDE_FOR_IPC/!wxUSE_DDE_FOR_IPC - -#endif // _WX_IPC_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ipcbase.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ipcbase.h deleted file mode 100644 index 864a2ec3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ipcbase.h +++ /dev/null @@ -1,263 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/ipcbase.h -// Purpose: Base classes for IPC -// Author: Julian Smart -// Modified by: -// Created: 4/1/98 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IPCBASEH__ -#define _WX_IPCBASEH__ - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" - -enum wxIPCFormat -{ - wxIPC_INVALID = 0, - wxIPC_TEXT = 1, /* CF_TEXT */ - wxIPC_BITMAP = 2, /* CF_BITMAP */ - wxIPC_METAFILE = 3, /* CF_METAFILEPICT */ - wxIPC_SYLK = 4, - wxIPC_DIF = 5, - wxIPC_TIFF = 6, - wxIPC_OEMTEXT = 7, /* CF_OEMTEXT */ - wxIPC_DIB = 8, /* CF_DIB */ - wxIPC_PALETTE = 9, - wxIPC_PENDATA = 10, - wxIPC_RIFF = 11, - wxIPC_WAVE = 12, - wxIPC_UTF16TEXT = 13, /* CF_UNICODE */ - wxIPC_ENHMETAFILE = 14, - wxIPC_FILENAME = 15, /* CF_HDROP */ - wxIPC_LOCALE = 16, - wxIPC_UTF8TEXT = 17, - wxIPC_UTF32TEXT = 18, -#if SIZEOF_WCHAR_T == 2 - wxIPC_UNICODETEXT = wxIPC_UTF16TEXT, -#elif SIZEOF_WCHAR_T == 4 - wxIPC_UNICODETEXT = wxIPC_UTF32TEXT, -#else -# error "Unknown wchar_t size" -#endif - wxIPC_PRIVATE = 20 -}; - -class WXDLLIMPEXP_FWD_BASE wxServerBase; -class WXDLLIMPEXP_FWD_BASE wxClientBase; - -class WXDLLIMPEXP_BASE wxConnectionBase: public wxObject -{ -public: - wxConnectionBase(void *buffer, size_t size); // use external buffer - wxConnectionBase(); // use internal, adaptive buffer - wxConnectionBase(const wxConnectionBase& copy); - virtual ~wxConnectionBase(); - - void SetConnected( bool c ) { m_connected = c; } - bool GetConnected() { return m_connected; } - - // Calls that CLIENT can make - bool Execute(const void *data, size_t size, wxIPCFormat fmt = wxIPC_PRIVATE) - { return DoExecute(data, size, fmt); } - bool Execute(const char *s, size_t size = wxNO_LEN) - { return DoExecute(s, size == wxNO_LEN ? strlen(s) + 1 - : size, wxIPC_TEXT); } - bool Execute(const wchar_t *ws, size_t size = wxNO_LEN) - { return DoExecute(ws, size == wxNO_LEN ? (wcslen(ws) + 1)*sizeof(wchar_t) - : size, wxIPC_UNICODETEXT); } - bool Execute(const wxString& s) - { - const wxScopedCharBuffer buf = s.utf8_str(); - return DoExecute(buf, strlen(buf) + 1, wxIPC_UTF8TEXT); - } - bool Execute(const wxCStrData& cs) - { return Execute(cs.AsString()); } - - virtual const void *Request(const wxString& item, - size_t *size = NULL, - wxIPCFormat format = wxIPC_TEXT) = 0; - - bool Poke(const wxString& item, const void *data, size_t size, - wxIPCFormat fmt = wxIPC_PRIVATE) - { return DoPoke(item, data, size, fmt); } - bool Poke(const wxString& item, const char *s, size_t size = wxNO_LEN) - { return DoPoke(item, s, size == wxNO_LEN ? strlen(s) + 1 - : size, wxIPC_TEXT); } - bool Poke(const wxString& item, const wchar_t *ws, size_t size = wxNO_LEN) - { return DoPoke(item, ws, - size == wxNO_LEN ? (wcslen(ws) + 1)*sizeof(wchar_t) - : size, wxIPC_UNICODETEXT); } - bool Poke(const wxString& item, const wxString& s) - { - const wxScopedCharBuffer buf = s.utf8_str(); - return DoPoke(item, buf, strlen(buf) + 1, wxIPC_UTF8TEXT); - } - bool Poke(const wxString& item, const wxCStrData& cs) - { return Poke(item, cs.AsString()); } - - virtual bool StartAdvise(const wxString& item) = 0; - virtual bool StopAdvise(const wxString& item) = 0; - - // Calls that SERVER can make - bool Advise(const wxString& item, const void *data, size_t size, - wxIPCFormat fmt = wxIPC_PRIVATE) - { return DoAdvise(item, data, size, fmt); } - bool Advise(const wxString& item, const char *s, size_t size = wxNO_LEN) - { return DoAdvise(item, s, size == wxNO_LEN ? strlen(s) + 1 - : size, wxIPC_TEXT); } - bool Advise(const wxString& item, const wchar_t *ws, size_t size = wxNO_LEN) - { return DoAdvise(item, ws, - size == wxNO_LEN ? (wcslen(ws) + 1)*sizeof(wchar_t) - : size, wxIPC_UNICODETEXT); } - bool Advise(const wxString& item, const wxString& s) - { - const wxScopedCharBuffer buf = s.utf8_str(); - return DoAdvise(item, buf, strlen(buf) + 1, wxIPC_UTF8TEXT); - } - bool Advise(const wxString& item, const wxCStrData& cs) - { return Advise(item, cs.AsString()); } - - // Calls that both can make - virtual bool Disconnect() = 0; - - - // Callbacks to SERVER - override at will - virtual bool OnExec(const wxString& WXUNUSED(topic), - const wxString& WXUNUSED(data)) - { - wxFAIL_MSG( "This method shouldn't be called, if it is, it probably " - "means that you didn't update your old code overriding " - "OnExecute() to use the new parameter types (\"const void *\" " - "instead of \"wxChar *\" and \"size_t\" instead of \"int\"), " - "you must do it or your code wouldn't be executed at all!" ); - return false; - } - - // deprecated function kept for backwards compatibility: usually you will - // want to override OnExec() above instead which receives its data in a more - // convenient format - virtual bool OnExecute(const wxString& topic, - const void *data, - size_t size, - wxIPCFormat format) - { return OnExec(topic, GetTextFromData(data, size, format)); } - - virtual const void *OnRequest(const wxString& WXUNUSED(topic), - const wxString& WXUNUSED(item), - size_t *size, - wxIPCFormat WXUNUSED(format)) - { *size = 0; return NULL; } - - virtual bool OnPoke(const wxString& WXUNUSED(topic), - const wxString& WXUNUSED(item), - const void *WXUNUSED(data), - size_t WXUNUSED(size), - wxIPCFormat WXUNUSED(format)) - { return false; } - - virtual bool OnStartAdvise(const wxString& WXUNUSED(topic), - const wxString& WXUNUSED(item)) - { return false; } - - virtual bool OnStopAdvise(const wxString& WXUNUSED(topic), - const wxString& WXUNUSED(item)) - { return false; } - - // Callbacks to CLIENT - override at will - virtual bool OnAdvise(const wxString& WXUNUSED(topic), - const wxString& WXUNUSED(item), - const void *WXUNUSED(data), - size_t WXUNUSED(size), - wxIPCFormat WXUNUSED(format)) - { return false; } - - // Callbacks to BOTH - virtual bool OnDisconnect() { delete this; return true; } - - - // return true if this is one of the formats used for textual data - // transmission - static bool IsTextFormat(wxIPCFormat format) - { - return format == wxIPC_TEXT || - format == wxIPC_UTF8TEXT || - format == wxIPC_UTF16TEXT || - format == wxIPC_UTF32TEXT; - } - - // converts from the data and format into a wxString automatically - // - // this function accepts data in all of wxIPC_TEXT, wxIPC_UNICODETEXT, and - // wxIPC_UTF8TEXT formats but asserts if the format is anything else (i.e. - // such that IsTextFormat(format) doesn't return true) - // - // notice that the size parameter here contains the total size of the data, - // including the terminating '\0' or L'\0' - static - wxString GetTextFromData(const void *data, size_t size, wxIPCFormat format); - - - // return a buffer at least this size, reallocating buffer if needed - // returns NULL if using an inadequate user buffer which can't be resized - void *GetBufferAtLeast(size_t bytes); - -protected: - virtual bool DoExecute(const void *data, size_t size, wxIPCFormat format) = 0; - virtual bool DoPoke(const wxString& item, const void *data, size_t size, - wxIPCFormat format) = 0; - virtual bool DoAdvise(const wxString& item, const void *data, size_t size, - wxIPCFormat format) = 0; - - -private: - char *m_buffer; - size_t m_buffersize; - bool m_deletebufferwhendone; - -protected: - bool m_connected; - - wxDECLARE_NO_ASSIGN_CLASS(wxConnectionBase); - wxDECLARE_CLASS(wxConnectionBase); -}; - - -class WXDLLIMPEXP_BASE wxServerBase : public wxObject -{ -public: - wxServerBase() { } - virtual ~wxServerBase() { } - - // Returns false on error (e.g. port number is already in use) - virtual bool Create(const wxString& serverName) = 0; - - // Callbacks to SERVER - override at will - virtual wxConnectionBase *OnAcceptConnection(const wxString& topic) = 0; - - wxDECLARE_CLASS(wxServerBase); -}; - -class WXDLLIMPEXP_BASE wxClientBase : public wxObject -{ -public: - wxClientBase() { } - virtual ~wxClientBase() { } - - virtual bool ValidHost(const wxString& host) = 0; - - // Call this to make a connection. Returns NULL if cannot. - virtual wxConnectionBase *MakeConnection(const wxString& host, - const wxString& server, - const wxString& topic) = 0; - - // Callbacks to CLIENT - override at will - virtual wxConnectionBase *OnMakeConnection() = 0; - - wxDECLARE_CLASS(wxClientBase); -}; - -#endif // _WX_IPCBASEH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/itemid.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/itemid.h deleted file mode 100644 index 99897e9c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/itemid.h +++ /dev/null @@ -1,61 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/itemid.h -// Purpose: wxItemId class declaration. -// Author: Vadim Zeitlin -// Created: 2011-08-17 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ITEMID_H_ -#define _WX_ITEMID_H_ - -// ---------------------------------------------------------------------------- -// wxItemId: an opaque item identifier used with wx{Tree,TreeList,DataView}Ctrl. -// ---------------------------------------------------------------------------- - -// The template argument T is typically a pointer to some opaque type. While -// wxTreeItemId and wxDataViewItem use a pointer to void, this is dangerous and -// not recommended for the new item id classes. -template <typename T> -class wxItemId -{ -public: - typedef T Type; - - // This ctor is implicit which is fine for non-void* types, but if you use - // this class with void* you're strongly advised to make the derived class - // ctor explicit as implicitly converting from any pointer is simply too - // dangerous. - wxItemId(Type item = NULL) : m_pItem(item) { } - - // Default copy ctor, assignment operator and dtor are ok. - - bool IsOk() const { return m_pItem != NULL; } - Type GetID() const { return m_pItem; } - operator const Type() const { return m_pItem; } - - // This is used for implementation purposes only. - Type operator->() const { return m_pItem; } - - void Unset() { m_pItem = NULL; } - - // This field is public *only* for compatibility with the old wxTreeItemId - // implementation and must not be used in any new code. -//private: - Type m_pItem; -}; - -template <typename T> -bool operator==(const wxItemId<T>& left, const wxItemId<T>& right) -{ - return left.GetID() == right.GetID(); -} - -template <typename T> -bool operator!=(const wxItemId<T>& left, const wxItemId<T>& right) -{ - return !(left == right); -} - -#endif // _WX_ITEMID_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/joystick.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/joystick.h deleted file mode 100644 index 4a93a251..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/joystick.h +++ /dev/null @@ -1,37 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/joystick.h -// Purpose: wxJoystick base header -// Author: wxWidgets Team -// Modified by: -// Created: -// Copyright: (c) wxWidgets Team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_JOYSTICK_H_BASE_ -#define _WX_JOYSTICK_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_JOYSTICK - -#if defined(__WINDOWS__) -#include "wx/msw/joystick.h" -#elif defined(__WXMOTIF__) -#include "wx/unix/joystick.h" -#elif defined(__WXGTK__) -#include "wx/unix/joystick.h" -#elif defined(__WXX11__) -#include "wx/unix/joystick.h" -#elif defined(__DARWIN__) -#include "wx/osx/core/joystick.h" -#elif defined(__WXMAC__) -#include "wx/osx/joystick.h" -#elif defined(__WXQT__) -#include "wx/unix/joystick.h" -#endif - -#endif // wxUSE_JOYSTICK - -#endif - // _WX_JOYSTICK_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/kbdstate.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/kbdstate.h deleted file mode 100644 index ab0df32d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/kbdstate.h +++ /dev/null @@ -1,121 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/kbdstate.h -// Purpose: Declaration of wxKeyboardState class -// Author: Vadim Zeitlin -// Created: 2008-09-19 -// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_KBDSTATE_H_ -#define _WX_KBDSTATE_H_ - -#include "wx/defs.h" - -// ---------------------------------------------------------------------------- -// wxKeyboardState stores the state of the keyboard modifier keys -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxKeyboardState -{ -public: - wxKeyboardState(bool controlDown = false, - bool shiftDown = false, - bool altDown = false, - bool metaDown = false) - : m_controlDown(controlDown), - m_shiftDown(shiftDown), - m_altDown(altDown), - m_metaDown(metaDown) -#ifdef __WXOSX__ - ,m_rawControlDown(false) -#endif - { - } - - // default copy ctor, assignment operator and dtor are ok - - - // accessors for the various modifier keys - // --------------------------------------- - - // should be used check if the key event has exactly the given modifiers: - // "GetModifiers() = wxMOD_CONTROL" is easier to write than "ControlDown() - // && !MetaDown() && !AltDown() && !ShiftDown()" - int GetModifiers() const - { - return (m_controlDown ? wxMOD_CONTROL : 0) | - (m_shiftDown ? wxMOD_SHIFT : 0) | - (m_metaDown ? wxMOD_META : 0) | -#ifdef __WXOSX__ - (m_rawControlDown ? wxMOD_RAW_CONTROL : 0) | -#endif - (m_altDown ? wxMOD_ALT : 0); - } - - // returns true if any modifiers at all are pressed - bool HasAnyModifiers() const { return GetModifiers() != wxMOD_NONE; } - - // returns true if any modifiers changing the usual key interpretation are - // pressed, notably excluding Shift - bool HasModifiers() const - { - return ControlDown() || RawControlDown() || AltDown(); - } - - // accessors for individual modifier keys - bool ControlDown() const { return m_controlDown; } - bool RawControlDown() const - { -#ifdef __WXOSX__ - return m_rawControlDown; -#else - return m_controlDown; -#endif - } - bool ShiftDown() const { return m_shiftDown; } - bool MetaDown() const { return m_metaDown; } - bool AltDown() const { return m_altDown; } - - // "Cmd" is a pseudo key which is Control for PC and Unix platforms but - // Apple ("Command") key under Macs: it makes often sense to use it instead - // of, say, ControlDown() because Cmd key is used for the same thing under - // Mac as Ctrl elsewhere (but Ctrl still exists, just not used for this - // purpose under Mac) - bool CmdDown() const - { - return ControlDown(); - } - - // these functions are mostly used by wxWidgets itself - // --------------------------------------------------- - - void SetControlDown(bool down) { m_controlDown = down; } - void SetRawControlDown(bool down) - { -#ifdef __WXOSX__ - m_rawControlDown = down; -#else - m_controlDown = down; -#endif - } - void SetShiftDown(bool down) { m_shiftDown = down; } - void SetAltDown(bool down) { m_altDown = down; } - void SetMetaDown(bool down) { m_metaDown = down; } - - - // for backwards compatibility with the existing code accessing these - // members of wxKeyEvent directly, these variables are public, however you - // should not use them in any new code, please use the accessors instead -public: - bool m_controlDown : 1; - bool m_shiftDown : 1; - bool m_altDown : 1; - bool m_metaDown : 1; -#ifdef __WXOSX__ - bool m_rawControlDown : 1; -#endif -}; - -#endif // _WX_KBDSTATE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/language.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/language.h deleted file mode 100644 index 5d788abc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/language.h +++ /dev/null @@ -1,286 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/language.h -// Purpose: wxLanguage enum -// Author: Vadim Zeitlin -// Created: 2010-04-23 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// WARNING: Parts of this file are generated. See misc/languages/README for -// details. - -#ifndef _WX_LANGUAGE_H_ -#define _WX_LANGUAGE_H_ - -#include "wx/defs.h" - -#if wxUSE_INTL - -// ---------------------------------------------------------------------------- -// wxLanguage: defines all supported languages -// ---------------------------------------------------------------------------- - -// --- --- --- generated code begins here --- --- --- - -/** - The languages supported by wxLocale. - - This enum is generated by misc/languages/genlang.py - When making changes, please put them into misc/languages/langtabl.txt -*/ -enum wxLanguage -{ - /// User's default/preferred language as got from OS. - wxLANGUAGE_DEFAULT, - - /// Unknown language, returned if wxLocale::GetSystemLanguage fails. - wxLANGUAGE_UNKNOWN, - - wxLANGUAGE_ABKHAZIAN, - wxLANGUAGE_AFAR, - wxLANGUAGE_AFRIKAANS, - wxLANGUAGE_ALBANIAN, - wxLANGUAGE_AMHARIC, - wxLANGUAGE_ARABIC, - wxLANGUAGE_ARABIC_ALGERIA, - wxLANGUAGE_ARABIC_BAHRAIN, - wxLANGUAGE_ARABIC_EGYPT, - wxLANGUAGE_ARABIC_IRAQ, - wxLANGUAGE_ARABIC_JORDAN, - wxLANGUAGE_ARABIC_KUWAIT, - wxLANGUAGE_ARABIC_LEBANON, - wxLANGUAGE_ARABIC_LIBYA, - wxLANGUAGE_ARABIC_MOROCCO, - wxLANGUAGE_ARABIC_OMAN, - wxLANGUAGE_ARABIC_QATAR, - wxLANGUAGE_ARABIC_SAUDI_ARABIA, - wxLANGUAGE_ARABIC_SUDAN, - wxLANGUAGE_ARABIC_SYRIA, - wxLANGUAGE_ARABIC_TUNISIA, - wxLANGUAGE_ARABIC_UAE, - wxLANGUAGE_ARABIC_YEMEN, - wxLANGUAGE_ARMENIAN, - wxLANGUAGE_ASSAMESE, - wxLANGUAGE_ASTURIAN, - wxLANGUAGE_AYMARA, - wxLANGUAGE_AZERI, - wxLANGUAGE_AZERI_CYRILLIC, - wxLANGUAGE_AZERI_LATIN, - wxLANGUAGE_BASHKIR, - wxLANGUAGE_BASQUE, - wxLANGUAGE_BELARUSIAN, - wxLANGUAGE_BENGALI, - wxLANGUAGE_BHUTANI, - wxLANGUAGE_BIHARI, - wxLANGUAGE_BISLAMA, - wxLANGUAGE_BOSNIAN, - wxLANGUAGE_BRETON, - wxLANGUAGE_BULGARIAN, - wxLANGUAGE_BURMESE, - wxLANGUAGE_CATALAN, - wxLANGUAGE_CHINESE, - wxLANGUAGE_CHINESE_SIMPLIFIED, - wxLANGUAGE_CHINESE_TRADITIONAL, - wxLANGUAGE_CHINESE_HONGKONG, - wxLANGUAGE_CHINESE_MACAU, - wxLANGUAGE_CHINESE_SINGAPORE, - wxLANGUAGE_CHINESE_TAIWAN, - wxLANGUAGE_CORSICAN, - wxLANGUAGE_CROATIAN, - wxLANGUAGE_CZECH, - wxLANGUAGE_DANISH, - wxLANGUAGE_DUTCH, - wxLANGUAGE_DUTCH_BELGIAN, - wxLANGUAGE_ENGLISH, - wxLANGUAGE_ENGLISH_UK, - wxLANGUAGE_ENGLISH_US, - wxLANGUAGE_ENGLISH_AUSTRALIA, - wxLANGUAGE_ENGLISH_BELIZE, - wxLANGUAGE_ENGLISH_BOTSWANA, - wxLANGUAGE_ENGLISH_CANADA, - wxLANGUAGE_ENGLISH_CARIBBEAN, - wxLANGUAGE_ENGLISH_DENMARK, - wxLANGUAGE_ENGLISH_EIRE, - wxLANGUAGE_ENGLISH_JAMAICA, - wxLANGUAGE_ENGLISH_NEW_ZEALAND, - wxLANGUAGE_ENGLISH_PHILIPPINES, - wxLANGUAGE_ENGLISH_SOUTH_AFRICA, - wxLANGUAGE_ENGLISH_TRINIDAD, - wxLANGUAGE_ENGLISH_ZIMBABWE, - wxLANGUAGE_ESPERANTO, - wxLANGUAGE_ESTONIAN, - wxLANGUAGE_FAEROESE, - wxLANGUAGE_FARSI, - wxLANGUAGE_FIJI, - wxLANGUAGE_FINNISH, - wxLANGUAGE_FRENCH, - wxLANGUAGE_FRENCH_BELGIAN, - wxLANGUAGE_FRENCH_CANADIAN, - wxLANGUAGE_FRENCH_LUXEMBOURG, - wxLANGUAGE_FRENCH_MONACO, - wxLANGUAGE_FRENCH_SWISS, - wxLANGUAGE_FRISIAN, - wxLANGUAGE_GALICIAN, - wxLANGUAGE_GEORGIAN, - wxLANGUAGE_GERMAN, - wxLANGUAGE_GERMAN_AUSTRIAN, - wxLANGUAGE_GERMAN_BELGIUM, - wxLANGUAGE_GERMAN_LIECHTENSTEIN, - wxLANGUAGE_GERMAN_LUXEMBOURG, - wxLANGUAGE_GERMAN_SWISS, - wxLANGUAGE_GREEK, - wxLANGUAGE_GREENLANDIC, - wxLANGUAGE_GUARANI, - wxLANGUAGE_GUJARATI, - wxLANGUAGE_HAUSA, - wxLANGUAGE_HEBREW, - wxLANGUAGE_HINDI, - wxLANGUAGE_HUNGARIAN, - wxLANGUAGE_ICELANDIC, - wxLANGUAGE_INDONESIAN, - wxLANGUAGE_INTERLINGUA, - wxLANGUAGE_INTERLINGUE, - wxLANGUAGE_INUKTITUT, - wxLANGUAGE_INUPIAK, - wxLANGUAGE_IRISH, - wxLANGUAGE_ITALIAN, - wxLANGUAGE_ITALIAN_SWISS, - wxLANGUAGE_JAPANESE, - wxLANGUAGE_JAVANESE, - wxLANGUAGE_KABYLE, - wxLANGUAGE_KANNADA, - wxLANGUAGE_KASHMIRI, - wxLANGUAGE_KASHMIRI_INDIA, - wxLANGUAGE_KAZAKH, - wxLANGUAGE_KERNEWEK, - wxLANGUAGE_KHMER, - wxLANGUAGE_KINYARWANDA, - wxLANGUAGE_KIRGHIZ, - wxLANGUAGE_KIRUNDI, - wxLANGUAGE_KONKANI, - wxLANGUAGE_KOREAN, - wxLANGUAGE_KURDISH, - wxLANGUAGE_LAOTHIAN, - wxLANGUAGE_LATIN, - wxLANGUAGE_LATVIAN, - wxLANGUAGE_LINGALA, - wxLANGUAGE_LITHUANIAN, - wxLANGUAGE_MACEDONIAN, - wxLANGUAGE_MALAGASY, - wxLANGUAGE_MALAY, - wxLANGUAGE_MALAYALAM, - wxLANGUAGE_MALAY_BRUNEI_DARUSSALAM, - wxLANGUAGE_MALAY_MALAYSIA, - wxLANGUAGE_MALTESE, - wxLANGUAGE_MANIPURI, - wxLANGUAGE_MAORI, - wxLANGUAGE_MARATHI, - wxLANGUAGE_MOLDAVIAN, - wxLANGUAGE_MONGOLIAN, - wxLANGUAGE_NAURU, - wxLANGUAGE_NEPALI, - wxLANGUAGE_NEPALI_INDIA, - wxLANGUAGE_NORWEGIAN_BOKMAL, - wxLANGUAGE_NORWEGIAN_NYNORSK, - wxLANGUAGE_OCCITAN, - wxLANGUAGE_ORIYA, - wxLANGUAGE_OROMO, - wxLANGUAGE_PASHTO, - wxLANGUAGE_POLISH, - wxLANGUAGE_PORTUGUESE, - wxLANGUAGE_PORTUGUESE_BRAZILIAN, - wxLANGUAGE_PUNJABI, - wxLANGUAGE_QUECHUA, - wxLANGUAGE_RHAETO_ROMANCE, - wxLANGUAGE_ROMANIAN, - wxLANGUAGE_RUSSIAN, - wxLANGUAGE_RUSSIAN_UKRAINE, - wxLANGUAGE_SAMI, - wxLANGUAGE_SAMOAN, - wxLANGUAGE_SANGHO, - wxLANGUAGE_SANSKRIT, - wxLANGUAGE_SCOTS_GAELIC, - wxLANGUAGE_SERBIAN, - wxLANGUAGE_SERBIAN_CYRILLIC, - wxLANGUAGE_SERBIAN_LATIN, - wxLANGUAGE_SERBO_CROATIAN, - wxLANGUAGE_SESOTHO, - wxLANGUAGE_SETSWANA, - wxLANGUAGE_SHONA, - wxLANGUAGE_SINDHI, - wxLANGUAGE_SINHALESE, - wxLANGUAGE_SISWATI, - wxLANGUAGE_SLOVAK, - wxLANGUAGE_SLOVENIAN, - wxLANGUAGE_SOMALI, - wxLANGUAGE_SPANISH, - wxLANGUAGE_SPANISH_ARGENTINA, - wxLANGUAGE_SPANISH_BOLIVIA, - wxLANGUAGE_SPANISH_CHILE, - wxLANGUAGE_SPANISH_COLOMBIA, - wxLANGUAGE_SPANISH_COSTA_RICA, - wxLANGUAGE_SPANISH_DOMINICAN_REPUBLIC, - wxLANGUAGE_SPANISH_ECUADOR, - wxLANGUAGE_SPANISH_EL_SALVADOR, - wxLANGUAGE_SPANISH_GUATEMALA, - wxLANGUAGE_SPANISH_HONDURAS, - wxLANGUAGE_SPANISH_MEXICAN, - wxLANGUAGE_SPANISH_MODERN, - wxLANGUAGE_SPANISH_NICARAGUA, - wxLANGUAGE_SPANISH_PANAMA, - wxLANGUAGE_SPANISH_PARAGUAY, - wxLANGUAGE_SPANISH_PERU, - wxLANGUAGE_SPANISH_PUERTO_RICO, - wxLANGUAGE_SPANISH_URUGUAY, - wxLANGUAGE_SPANISH_US, - wxLANGUAGE_SPANISH_VENEZUELA, - wxLANGUAGE_SUNDANESE, - wxLANGUAGE_SWAHILI, - wxLANGUAGE_SWEDISH, - wxLANGUAGE_SWEDISH_FINLAND, - wxLANGUAGE_TAGALOG, - wxLANGUAGE_TAJIK, - wxLANGUAGE_TAMIL, - wxLANGUAGE_TATAR, - wxLANGUAGE_TELUGU, - wxLANGUAGE_THAI, - wxLANGUAGE_TIBETAN, - wxLANGUAGE_TIGRINYA, - wxLANGUAGE_TONGA, - wxLANGUAGE_TSONGA, - wxLANGUAGE_TURKISH, - wxLANGUAGE_TURKMEN, - wxLANGUAGE_TWI, - wxLANGUAGE_UIGHUR, - wxLANGUAGE_UKRAINIAN, - wxLANGUAGE_URDU, - wxLANGUAGE_URDU_INDIA, - wxLANGUAGE_URDU_PAKISTAN, - wxLANGUAGE_UZBEK, - wxLANGUAGE_UZBEK_CYRILLIC, - wxLANGUAGE_UZBEK_LATIN, - wxLANGUAGE_VALENCIAN, - wxLANGUAGE_VIETNAMESE, - wxLANGUAGE_VOLAPUK, - wxLANGUAGE_WELSH, - wxLANGUAGE_WOLOF, - wxLANGUAGE_XHOSA, - wxLANGUAGE_YIDDISH, - wxLANGUAGE_YORUBA, - wxLANGUAGE_ZHUANG, - wxLANGUAGE_ZULU, - - /// For custom, user-defined languages. - wxLANGUAGE_USER_DEFINED, - - - /// Obsolete synonym. - wxLANGUAGE_CAMBODIAN = wxLANGUAGE_KHMER -}; - -// --- --- --- generated code ends here --- --- --- - -#endif // wxUSE_INTL - -#endif // _WX_LANGUAGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/layout.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/layout.h deleted file mode 100644 index 829fa9d8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/layout.h +++ /dev/null @@ -1,190 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/layout.h -// Purpose: OBSOLETE layout constraint classes, use sizers instead -// Author: Julian Smart -// Modified by: -// Created: 29/01/98 -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LAYOUT_H_ -#define _WX_LAYOUT_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/object.h" - -// X stupidly defines these in X.h -#ifdef Above - #undef Above -#endif -#ifdef Below - #undef Below -#endif - -#if wxUSE_CONSTRAINTS - -// ---------------------------------------------------------------------------- -// forward declrations -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxWindowBase; -class WXDLLIMPEXP_FWD_CORE wxLayoutConstraints; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -#define wxLAYOUT_DEFAULT_MARGIN 0 - -enum wxEdge -{ - wxLeft, wxTop, wxRight, wxBottom, wxWidth, wxHeight, - wxCentre, wxCenter = wxCentre, wxCentreX, wxCentreY -}; - -enum wxRelationship -{ - wxUnconstrained = 0, - wxAsIs, - wxPercentOf, - wxAbove, - wxBelow, - wxLeftOf, - wxRightOf, - wxSameAs, - wxAbsolute -}; - -// ---------------------------------------------------------------------------- -// wxIndividualLayoutConstraint: a constraint on window position -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxIndividualLayoutConstraint : public wxObject -{ -public: - wxIndividualLayoutConstraint(); - - // note that default copy ctor and assignment operators are ok - - virtual ~wxIndividualLayoutConstraint(){} - - void Set(wxRelationship rel, wxWindowBase *otherW, wxEdge otherE, int val = 0, int marg = wxLAYOUT_DEFAULT_MARGIN); - - // - // Sibling relationships - // - void LeftOf(wxWindowBase *sibling, int marg = wxLAYOUT_DEFAULT_MARGIN); - void RightOf(wxWindowBase *sibling, int marg = wxLAYOUT_DEFAULT_MARGIN); - void Above(wxWindowBase *sibling, int marg = wxLAYOUT_DEFAULT_MARGIN); - void Below(wxWindowBase *sibling, int marg = wxLAYOUT_DEFAULT_MARGIN); - - // - // 'Same edge' alignment - // - void SameAs(wxWindowBase *otherW, wxEdge edge, int marg = wxLAYOUT_DEFAULT_MARGIN); - - // The edge is a percentage of the other window's edge - void PercentOf(wxWindowBase *otherW, wxEdge wh, int per); - - // - // Edge has absolute value - // - void Absolute(int val); - - // - // Dimension is unconstrained - // - void Unconstrained() { relationship = wxUnconstrained; } - - // - // Dimension is 'as is' (use current size settings) - // - void AsIs() { relationship = wxAsIs; } - - // - // Accessors - // - wxWindowBase *GetOtherWindow() { return otherWin; } - wxEdge GetMyEdge() const { return myEdge; } - void SetEdge(wxEdge which) { myEdge = which; } - void SetValue(int v) { value = v; } - int GetMargin() { return margin; } - void SetMargin(int m) { margin = m; } - int GetValue() const { return value; } - int GetPercent() const { return percent; } - int GetOtherEdge() const { return otherEdge; } - bool GetDone() const { return done; } - void SetDone(bool d) { done = d; } - wxRelationship GetRelationship() { return relationship; } - void SetRelationship(wxRelationship r) { relationship = r; } - - // Reset constraint if it mentions otherWin - bool ResetIfWin(wxWindowBase *otherW); - - // Try to satisfy constraint - bool SatisfyConstraint(wxLayoutConstraints *constraints, wxWindowBase *win); - - // Get the value of this edge or dimension, or if this - // is not determinable, -1. - int GetEdge(wxEdge which, wxWindowBase *thisWin, wxWindowBase *other) const; - -protected: - // To be allowed to modify the internal variables - friend class wxIndividualLayoutConstraint_Serialize; - - // 'This' window is the parent or sibling of otherWin - wxWindowBase *otherWin; - - wxEdge myEdge; - wxRelationship relationship; - int margin; - int value; - int percent; - wxEdge otherEdge; - bool done; - - wxDECLARE_DYNAMIC_CLASS(wxIndividualLayoutConstraint); -}; - -// ---------------------------------------------------------------------------- -// wxLayoutConstraints: the complete set of constraints for a window -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxLayoutConstraints : public wxObject -{ -public: - // Edge constraints - wxIndividualLayoutConstraint left; - wxIndividualLayoutConstraint top; - wxIndividualLayoutConstraint right; - wxIndividualLayoutConstraint bottom; - // Size constraints - wxIndividualLayoutConstraint width; - wxIndividualLayoutConstraint height; - // Centre constraints - wxIndividualLayoutConstraint centreX; - wxIndividualLayoutConstraint centreY; - - wxLayoutConstraints(); - - // note that default copy ctor and assignment operators are ok - - virtual ~wxLayoutConstraints(){} - - bool SatisfyConstraints(wxWindowBase *win, int *noChanges); - bool AreSatisfied() const - { - return left.GetDone() && top.GetDone() && - width.GetDone() && height.GetDone(); - } - - wxDECLARE_DYNAMIC_CLASS(wxLayoutConstraints); -}; - -#endif // wxUSE_CONSTRAINTS - -#endif // _WX_LAYOUT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/laywin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/laywin.h deleted file mode 100644 index e3f6b6ee..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/laywin.h +++ /dev/null @@ -1,17 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/laywin.h -// Purpose: wxSashLayoutWindow base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LAYWIN_H_BASE_ -#define _WX_LAYWIN_H_BASE_ - -#include "wx/generic/laywin.h" - -#endif - // _WX_LAYWIN_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/link.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/link.h deleted file mode 100644 index c422fc17..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/link.h +++ /dev/null @@ -1,31 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/link.h -// Purpose: macros to force linking modules which might otherwise be -// discarded by the linker -// Author: Vaclav Slavik -// Copyright: (c) Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LINK_H_ -#define _WX_LINK_H_ - -// This must be part of the module you want to force: -#define wxFORCE_LINK_THIS_MODULE(module_name) \ - extern void _wx_link_dummy_func_##module_name (); \ - void _wx_link_dummy_func_##module_name () { } - - -// And this must be somewhere where it certainly will be linked: -#define wxFORCE_LINK_MODULE(module_name) \ - extern void _wx_link_dummy_func_##module_name (); \ - static struct wxForceLink##module_name \ - { \ - wxForceLink##module_name() \ - { \ - _wx_link_dummy_func_##module_name (); \ - } \ - } _wx_link_dummy_var_##module_name; - - -#endif // _WX_LINK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/list.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/list.h deleted file mode 100644 index 9278a4f1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/list.h +++ /dev/null @@ -1,1298 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/list.h -// Purpose: wxList, wxStringList classes -// Author: Julian Smart -// Modified by: VZ at 16/11/98: WX_DECLARE_LIST() and typesafe lists added -// Created: 29/01/98 -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* - All this is quite ugly but serves two purposes: - 1. Be almost 100% compatible with old, untyped, wxList class - 2. Ensure compile-time type checking for the linked lists - - The idea is to have one base class (wxListBase) working with "void *" data, - but to hide these untyped functions - i.e. make them protected, so they - can only be used from derived classes which have inline member functions - working with right types. This achieves the 2nd goal. As for the first one, - we provide a special derivation of wxListBase called wxList which looks just - like the old class. -*/ - -#ifndef _WX_LIST_H_ -#define _WX_LIST_H_ - -// ----------------------------------------------------------------------------- -// headers -// ----------------------------------------------------------------------------- - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/vector.h" - -#if wxUSE_STD_CONTAINERS - #include "wx/beforestd.h" - #include <algorithm> - #include <iterator> - #include <list> - #include "wx/afterstd.h" -#endif - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_BASE wxObjectListNode; -typedef wxObjectListNode wxNode; - -#if wxUSE_STD_CONTAINERS - -#define wxLIST_COMPATIBILITY - -#define WX_DECLARE_LIST_3(elT, dummy1, liT, dummy2, decl) \ - WX_DECLARE_LIST_WITH_DECL(elT, liT, decl) -#define WX_DECLARE_LIST_PTR_3(elT, dummy1, liT, dummy2, decl) \ - WX_DECLARE_LIST_3(elT, dummy1, liT, dummy2, decl) - -#define WX_DECLARE_LIST_2(elT, liT, dummy, decl) \ - WX_DECLARE_LIST_WITH_DECL(elT, liT, decl) -#define WX_DECLARE_LIST_PTR_2(elT, liT, dummy, decl) \ - WX_DECLARE_LIST_2(elT, liT, dummy, decl) \ - -#define WX_DECLARE_LIST_WITH_DECL(elT, liT, decl) \ - WX_DECLARE_LIST_XO(elT*, liT, decl) - -template<class T> -class wxList_SortFunction -{ -public: - wxList_SortFunction(wxSortCompareFunction f) : m_f(f) { } - bool operator()(const T& i1, const T& i2) - { return m_f((T*)&i1, (T*)&i2) < 0; } -private: - wxSortCompareFunction m_f; -}; - -/* - Note 1: the outer helper class _WX_LIST_HELPER_##liT below is a workaround - for mingw 3.2.3 compiler bug that prevents a static function of liT class - from being exported into dll. A minimal code snippet reproducing the bug: - - struct WXDLLIMPEXP_CORE Foo - { - static void Bar(); - struct SomeInnerClass - { - friend class Foo; // comment this out to make it link - }; - ~Foo() - { - Bar(); - } - }; - - The program does not link under mingw_gcc 3.2.3 producing undefined - reference to Foo::Bar() function - - - Note 2: the EmptyList is needed to allow having a NULL pointer-like - invalid iterator. We used to use just an uninitialized iterator object - instead but this fails with some debug/checked versions of STL, notably the - glibc version activated with _GLIBCXX_DEBUG, so we need to have a separate - invalid iterator. - */ - -// the real wxList-class declaration -#define WX_DECLARE_LIST_XO(elT, liT, decl) \ - decl _WX_LIST_HELPER_##liT \ - { \ - typedef elT _WX_LIST_ITEM_TYPE_##liT; \ - typedef std::list<elT> BaseListType; \ - public: \ - static BaseListType EmptyList; \ - static void DeleteFunction( _WX_LIST_ITEM_TYPE_##liT X ); \ - }; \ - \ - class liT : public std::list<elT> \ - { \ - private: \ - typedef std::list<elT> BaseListType; \ - \ - bool m_destroy; \ - \ - public: \ - class compatibility_iterator \ - { \ - private: \ - friend class liT; \ - \ - iterator m_iter; \ - liT * m_list; \ - \ - public: \ - compatibility_iterator() \ - : m_iter(_WX_LIST_HELPER_##liT::EmptyList.end()), m_list( NULL ) {} \ - compatibility_iterator( liT* li, iterator i ) \ - : m_iter( i ), m_list( li ) {} \ - compatibility_iterator( const liT* li, iterator i ) \ - : m_iter( i ), m_list( const_cast< liT* >( li ) ) {} \ - \ - compatibility_iterator* operator->() { return this; } \ - const compatibility_iterator* operator->() const { return this; } \ - \ - bool operator==(const compatibility_iterator& i) const \ - { \ - wxASSERT_MSG( m_list && i.m_list, \ - wxT("comparing invalid iterators is illegal") ); \ - return (m_list == i.m_list) && (m_iter == i.m_iter); \ - } \ - bool operator!=(const compatibility_iterator& i) const \ - { return !( operator==( i ) ); } \ - operator bool() const \ - { return m_list ? m_iter != m_list->end() : false; } \ - bool operator !() const \ - { return !( operator bool() ); } \ - \ - elT GetData() const \ - { return *m_iter; } \ - void SetData( elT e ) \ - { *m_iter = e; } \ - \ - compatibility_iterator GetNext() const \ - { \ - iterator i = m_iter; \ - return compatibility_iterator( m_list, ++i ); \ - } \ - compatibility_iterator GetPrevious() const \ - { \ - if ( m_iter == m_list->begin() ) \ - return compatibility_iterator(); \ - \ - iterator i = m_iter; \ - return compatibility_iterator( m_list, --i ); \ - } \ - int IndexOf() const \ - { \ - return *this ? (int)std::distance( m_list->begin(), m_iter ) \ - : wxNOT_FOUND; \ - } \ - }; \ - public: \ - liT() : m_destroy( false ) {} \ - \ - compatibility_iterator Find( const elT e ) const \ - { \ - liT* _this = const_cast< liT* >( this ); \ - return compatibility_iterator( _this, \ - std::find( _this->begin(), _this->end(), e ) ); \ - } \ - \ - bool IsEmpty() const \ - { return empty(); } \ - size_t GetCount() const \ - { return size(); } \ - int Number() const \ - { return static_cast< int >( GetCount() ); } \ - \ - compatibility_iterator Item( size_t idx ) const \ - { \ - iterator i = const_cast< liT* >(this)->begin(); \ - std::advance( i, idx ); \ - return compatibility_iterator( this, i ); \ - } \ - elT operator[](size_t idx) const \ - { \ - return Item(idx).GetData(); \ - } \ - \ - compatibility_iterator GetFirst() const \ - { \ - return compatibility_iterator( this, \ - const_cast< liT* >(this)->begin() ); \ - } \ - compatibility_iterator GetLast() const \ - { \ - iterator i = const_cast< liT* >(this)->end(); \ - return compatibility_iterator( this, !empty() ? --i : i ); \ - } \ - bool Member( elT e ) const \ - { return Find( e ); } \ - compatibility_iterator Nth( int n ) const \ - { return Item( n ); } \ - int IndexOf( elT e ) const \ - { return Find( e ).IndexOf(); } \ - \ - compatibility_iterator Append( elT e ) \ - { \ - push_back( e ); \ - return GetLast(); \ - } \ - compatibility_iterator Insert( elT e ) \ - { \ - push_front( e ); \ - return compatibility_iterator( this, begin() ); \ - } \ - compatibility_iterator Insert(const compatibility_iterator & i, elT e)\ - { \ - return compatibility_iterator( this, insert( i.m_iter, e ) ); \ - } \ - compatibility_iterator Insert( size_t idx, elT e ) \ - { \ - return compatibility_iterator( this, \ - insert( Item( idx ).m_iter, e ) ); \ - } \ - \ - void DeleteContents( bool destroy ) \ - { m_destroy = destroy; } \ - bool GetDeleteContents() const \ - { return m_destroy; } \ - void Erase( const compatibility_iterator& i ) \ - { \ - if ( m_destroy ) \ - _WX_LIST_HELPER_##liT::DeleteFunction( i->GetData() ); \ - erase( i.m_iter ); \ - } \ - bool DeleteNode( const compatibility_iterator& i ) \ - { \ - if( i ) \ - { \ - Erase( i ); \ - return true; \ - } \ - return false; \ - } \ - bool DeleteObject( elT e ) \ - { \ - return DeleteNode( Find( e ) ); \ - } \ - void Clear() \ - { \ - if ( m_destroy ) \ - std::for_each( begin(), end(), \ - _WX_LIST_HELPER_##liT::DeleteFunction ); \ - clear(); \ - } \ - /* Workaround for broken VC6 std::list::sort() see above */ \ - void Sort( wxSortCompareFunction compfunc ) \ - { sort( wxList_SortFunction<elT>(compfunc ) ); } \ - ~liT() { Clear(); } \ - \ - /* It needs access to our EmptyList */ \ - friend class compatibility_iterator; \ - } - -#define WX_DECLARE_LIST(elementtype, listname) \ - WX_DECLARE_LIST_WITH_DECL(elementtype, listname, class) -#define WX_DECLARE_LIST_PTR(elementtype, listname) \ - WX_DECLARE_LIST(elementtype, listname) - -#define WX_DECLARE_EXPORTED_LIST(elementtype, listname) \ - WX_DECLARE_LIST_WITH_DECL(elementtype, listname, class WXDLLIMPEXP_CORE) -#define WX_DECLARE_EXPORTED_LIST_PTR(elementtype, listname) \ - WX_DECLARE_EXPORTED_LIST(elementtype, listname) - -#define WX_DECLARE_USER_EXPORTED_LIST(elementtype, listname, usergoo) \ - WX_DECLARE_LIST_WITH_DECL(elementtype, listname, class usergoo) -#define WX_DECLARE_USER_EXPORTED_LIST_PTR(elementtype, listname, usergoo) \ - WX_DECLARE_USER_EXPORTED_LIST(elementtype, listname, usergoo) - -// this macro must be inserted in your program after -// #include "wx/listimpl.cpp" -#define WX_DEFINE_LIST(name) "don't forget to include listimpl.cpp!" - -#define WX_DEFINE_EXPORTED_LIST(name) WX_DEFINE_LIST(name) -#define WX_DEFINE_USER_EXPORTED_LIST(name) WX_DEFINE_LIST(name) - -#else // if !wxUSE_STD_CONTAINERS - - -// undef it to get rid of old, deprecated functions -#define wxLIST_COMPATIBILITY - -// ----------------------------------------------------------------------------- -// key stuff: a list may be optionally keyed on integer or string key -// ----------------------------------------------------------------------------- - -union wxListKeyValue -{ - long integer; - wxString *string; -}; - -// a struct which may contain both types of keys -// -// implementation note: on one hand, this class allows to have only one function -// for any keyed operation instead of 2 almost equivalent. OTOH, it's needed to -// resolve ambiguity which we would otherwise have with wxStringList::Find() and -// wxList::Find(const char *). -class WXDLLIMPEXP_BASE wxListKey -{ -public: - // implicit ctors - wxListKey() : m_keyType(wxKEY_NONE) - { } - wxListKey(long i) : m_keyType(wxKEY_INTEGER) - { m_key.integer = i; } - wxListKey(const wxString& s) : m_keyType(wxKEY_STRING) - { m_key.string = new wxString(s); } - wxListKey(const char *s) : m_keyType(wxKEY_STRING) - { m_key.string = new wxString(s); } - wxListKey(const wchar_t *s) : m_keyType(wxKEY_STRING) - { m_key.string = new wxString(s); } - - // accessors - wxKeyType GetKeyType() const { return m_keyType; } - const wxString GetString() const - { wxASSERT( m_keyType == wxKEY_STRING ); return *m_key.string; } - long GetNumber() const - { wxASSERT( m_keyType == wxKEY_INTEGER ); return m_key.integer; } - - // comparison - // Note: implementation moved to list.cpp to prevent BC++ inline - // expansion warning. - bool operator==(wxListKeyValue value) const ; - - // dtor - ~wxListKey() - { - if ( m_keyType == wxKEY_STRING ) - delete m_key.string; - } - -private: - wxKeyType m_keyType; - wxListKeyValue m_key; -}; - -// ----------------------------------------------------------------------------- -// wxNodeBase class is a (base for) node in a double linked list -// ----------------------------------------------------------------------------- - -extern WXDLLIMPEXP_DATA_BASE(wxListKey) wxDefaultListKey; - -class WXDLLIMPEXP_FWD_BASE wxListBase; - -class WXDLLIMPEXP_BASE wxNodeBase -{ -friend class wxListBase; -public: - // ctor - wxNodeBase(wxListBase *list = NULL, - wxNodeBase *previous = NULL, - wxNodeBase *next = NULL, - void *data = NULL, - const wxListKey& key = wxDefaultListKey); - - virtual ~wxNodeBase(); - - // FIXME no check is done that the list is really keyed on strings - wxString GetKeyString() const { return *m_key.string; } - long GetKeyInteger() const { return m_key.integer; } - - // Necessary for some existing code - void SetKeyString(const wxString& s) { m_key.string = new wxString(s); } - void SetKeyInteger(long i) { m_key.integer = i; } - -#ifdef wxLIST_COMPATIBILITY - // compatibility methods, use Get* instead. - wxDEPRECATED( wxNode *Next() const ); - wxDEPRECATED( wxNode *Previous() const ); - wxDEPRECATED( wxObject *Data() const ); -#endif // wxLIST_COMPATIBILITY - -protected: - // all these are going to be "overloaded" in the derived classes - wxNodeBase *GetNext() const { return m_next; } - wxNodeBase *GetPrevious() const { return m_previous; } - - void *GetData() const { return m_data; } - void SetData(void *data) { m_data = data; } - - // get 0-based index of this node within the list or wxNOT_FOUND - int IndexOf() const; - - virtual void DeleteData() { } -public: - // for wxList::iterator - void** GetDataPtr() const { return &(const_cast<wxNodeBase*>(this)->m_data); } -private: - // optional key stuff - wxListKeyValue m_key; - - void *m_data; // user data - wxNodeBase *m_next, // next and previous nodes in the list - *m_previous; - - wxListBase *m_list; // list we belong to - - wxDECLARE_NO_COPY_CLASS(wxNodeBase); -}; - -// ----------------------------------------------------------------------------- -// a double-linked list class -// ----------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_BASE wxList; - -class WXDLLIMPEXP_BASE wxListBase -{ -friend class wxNodeBase; // should be able to call DetachNode() -friend class wxHashTableBase; // should be able to call untyped Find() - -public: - // default ctor & dtor - wxListBase(wxKeyType keyType = wxKEY_NONE) - { Init(keyType); } - virtual ~wxListBase(); - - // accessors - // count of items in the list - size_t GetCount() const { return m_count; } - - // return true if this list is empty - bool IsEmpty() const { return m_count == 0; } - - // operations - - // delete all nodes - void Clear(); - - // instruct it to destroy user data when deleting nodes - void DeleteContents(bool destroy) { m_destroy = destroy; } - - // query if to delete - bool GetDeleteContents() const - { return m_destroy; } - - // get the keytype - wxKeyType GetKeyType() const - { return m_keyType; } - - // set the keytype (required by the serial code) - void SetKeyType(wxKeyType keyType) - { wxASSERT( m_count==0 ); m_keyType = keyType; } - -#ifdef wxLIST_COMPATIBILITY - // compatibility methods from old wxList - wxDEPRECATED( int Number() const ); // use GetCount instead. - wxDEPRECATED( wxNode *First() const ); // use GetFirst - wxDEPRECATED( wxNode *Last() const ); // use GetLast - wxDEPRECATED( wxNode *Nth(size_t n) const ); // use Item - - // kludge for typesafe list migration in core classes. - wxDEPRECATED( operator wxList&() const ); -#endif // wxLIST_COMPATIBILITY - -protected: - - // all methods here are "overloaded" in derived classes to provide compile - // time type checking - - // create a node for the list of this type - virtual wxNodeBase *CreateNode(wxNodeBase *prev, wxNodeBase *next, - void *data, - const wxListKey& key = wxDefaultListKey) = 0; - - - // ctors - // from an array - wxListBase(size_t count, void *elements[]); - // from a sequence of objects - wxListBase(void *object, ... /* terminate with NULL */); - -protected: - void Assign(const wxListBase& list) - { Clear(); DoCopy(list); } - - // get list head/tail - wxNodeBase *GetFirst() const { return m_nodeFirst; } - wxNodeBase *GetLast() const { return m_nodeLast; } - - // by (0-based) index - wxNodeBase *Item(size_t index) const; - - // get the list item's data - void *operator[](size_t n) const - { - wxNodeBase *node = Item(n); - - return node ? node->GetData() : NULL; - } - - // operations - // append to end of list - wxNodeBase *Prepend(void *object) - { return (wxNodeBase *)wxListBase::Insert(object); } - // append to beginning of list - wxNodeBase *Append(void *object); - // insert a new item at the beginning of the list - wxNodeBase *Insert(void *object) - { return Insert(static_cast<wxNodeBase *>(NULL), object); } - // insert a new item at the given position - wxNodeBase *Insert(size_t pos, void *object) - { return pos == GetCount() ? Append(object) - : Insert(Item(pos), object); } - // insert before given node or at front of list if prev == NULL - wxNodeBase *Insert(wxNodeBase *prev, void *object); - - // keyed append - wxNodeBase *Append(long key, void *object); - wxNodeBase *Append(const wxString& key, void *object); - - // removes node from the list but doesn't delete it (returns pointer - // to the node or NULL if it wasn't found in the list) - wxNodeBase *DetachNode(wxNodeBase *node); - // delete element from list, returns false if node not found - bool DeleteNode(wxNodeBase *node); - // finds object pointer and deletes node (and object if DeleteContents - // is on), returns false if object not found - bool DeleteObject(void *object); - - // search (all return NULL if item not found) - // by data - wxNodeBase *Find(const void *object) const; - - // by key - wxNodeBase *Find(const wxListKey& key) const; - - // get 0-based index of object or wxNOT_FOUND - int IndexOf( void *object ) const; - - // this function allows the sorting of arbitrary lists by giving - // a function to compare two list elements. The list is sorted in place. - void Sort(const wxSortCompareFunction compfunc); - - // functions for iterating over the list - void *FirstThat(wxListIterateFunction func); - void ForEach(wxListIterateFunction func); - void *LastThat(wxListIterateFunction func); - - // for STL interface, "last" points to one after the last node - // of the controlled sequence (NULL for the end of the list) - void Reverse(); - void DeleteNodes(wxNodeBase* first, wxNodeBase* last); -private: - - // common part of all ctors - void Init(wxKeyType keyType = wxKEY_NONE); - - // helpers - // common part of copy ctor and assignment operator - void DoCopy(const wxListBase& list); - // common part of all Append()s - wxNodeBase *AppendCommon(wxNodeBase *node); - // free node's data and node itself - void DoDeleteNode(wxNodeBase *node); - - size_t m_count; // number of elements in the list - bool m_destroy; // destroy user data when deleting list items? - wxNodeBase *m_nodeFirst, // pointers to the head and tail of the list - *m_nodeLast; - - wxKeyType m_keyType; // type of our keys (may be wxKEY_NONE) -}; - -// ----------------------------------------------------------------------------- -// macros for definition of "template" list type -// ----------------------------------------------------------------------------- - -// and now some heavy magic... - -// declare a list type named 'name' and containing elements of type 'T *' -// (as a by product of macro expansion you also get wx##name##Node -// wxNode-derived type) -// -// implementation details: -// 1. We define _WX_LIST_ITEM_TYPE_##name typedef to save in it the item type -// for the list of given type - this allows us to pass only the list name -// to WX_DEFINE_LIST() even if it needs both the name and the type -// -// 2. We redefine all non-type-safe wxList functions with type-safe versions -// which don't take any space (everything is inline), but bring compile -// time error checking. -// -// 3. The macro which is usually used (WX_DECLARE_LIST) is defined in terms of -// a more generic WX_DECLARE_LIST_2 macro which, in turn, uses the most -// generic WX_DECLARE_LIST_3 one. The last macro adds a sometimes -// interesting capability to store polymorphic objects in the list and is -// particularly useful with, for example, "wxWindow *" list where the -// wxWindowBase pointers are put into the list, but wxWindow pointers are -// retrieved from it. -// -// 4. final hack is that WX_DECLARE_LIST_3 is defined in terms of -// WX_DECLARE_LIST_4 to allow defining classes without operator->() as -// it results in compiler warnings when this operator doesn't make sense -// (i.e. stored elements are not pointers) - -// common part of WX_DECLARE_LIST_3 and WX_DECLARE_LIST_PTR_3 -#define WX_DECLARE_LIST_4(T, Tbase, name, nodetype, classexp, ptrop) \ - typedef int (*wxSortFuncFor_##name)(const T **, const T **); \ - \ - classexp nodetype : public wxNodeBase \ - { \ - public: \ - nodetype(wxListBase *list = NULL, \ - nodetype *previous = NULL, \ - nodetype *next = NULL, \ - T *data = NULL, \ - const wxListKey& key = wxDefaultListKey) \ - : wxNodeBase(list, previous, next, data, key) { } \ - \ - nodetype *GetNext() const \ - { return (nodetype *)wxNodeBase::GetNext(); } \ - nodetype *GetPrevious() const \ - { return (nodetype *)wxNodeBase::GetPrevious(); } \ - \ - T *GetData() const \ - { return (T *)wxNodeBase::GetData(); } \ - void SetData(T *data) \ - { wxNodeBase::SetData(data); } \ - \ - protected: \ - virtual void DeleteData(); \ - \ - wxDECLARE_NO_COPY_CLASS(nodetype); \ - }; \ - \ - classexp name : public wxListBase \ - { \ - public: \ - typedef nodetype Node; \ - classexp compatibility_iterator \ - { \ - public: \ - compatibility_iterator(Node *ptr = NULL) : m_ptr(ptr) { } \ - \ - Node *operator->() const { return m_ptr; } \ - operator Node *() const { return m_ptr; } \ - \ - private: \ - Node *m_ptr; \ - }; \ - \ - name(wxKeyType keyType = wxKEY_NONE) : wxListBase(keyType) \ - { } \ - name(const name& list) : wxListBase(list.GetKeyType()) \ - { Assign(list); } \ - name(size_t count, T *elements[]) \ - : wxListBase(count, (void **)elements) { } \ - \ - name& operator=(const name& list) \ - { if (&list != this) Assign(list); return *this; } \ - \ - nodetype *GetFirst() const \ - { return (nodetype *)wxListBase::GetFirst(); } \ - nodetype *GetLast() const \ - { return (nodetype *)wxListBase::GetLast(); } \ - \ - nodetype *Item(size_t index) const \ - { return (nodetype *)wxListBase::Item(index); } \ - \ - T *operator[](size_t index) const \ - { \ - nodetype *node = Item(index); \ - return node ? (T*)(node->GetData()) : NULL; \ - } \ - \ - nodetype *Append(Tbase *object) \ - { return (nodetype *)wxListBase::Append(object); } \ - nodetype *Insert(Tbase *object) \ - { return (nodetype *)Insert(static_cast<nodetype *>(NULL), \ - object); } \ - nodetype *Insert(size_t pos, Tbase *object) \ - { return (nodetype *)wxListBase::Insert(pos, object); } \ - nodetype *Insert(nodetype *prev, Tbase *object) \ - { return (nodetype *)wxListBase::Insert(prev, object); } \ - \ - nodetype *Append(long key, void *object) \ - { return (nodetype *)wxListBase::Append(key, object); } \ - nodetype *Append(const wxChar *key, void *object) \ - { return (nodetype *)wxListBase::Append(key, object); } \ - \ - nodetype *DetachNode(nodetype *node) \ - { return (nodetype *)wxListBase::DetachNode(node); } \ - bool DeleteNode(nodetype *node) \ - { return wxListBase::DeleteNode(node); } \ - bool DeleteObject(Tbase *object) \ - { return wxListBase::DeleteObject(object); } \ - void Erase(nodetype *it) \ - { DeleteNode(it); } \ - \ - nodetype *Find(const Tbase *object) const \ - { return (nodetype *)wxListBase::Find(object); } \ - \ - virtual nodetype *Find(const wxListKey& key) const \ - { return (nodetype *)wxListBase::Find(key); } \ - \ - bool Member(const Tbase *object) const \ - { return Find(object) != NULL; } \ - \ - int IndexOf(Tbase *object) const \ - { return wxListBase::IndexOf(object); } \ - \ - void Sort(wxSortCompareFunction func) \ - { wxListBase::Sort(func); } \ - void Sort(wxSortFuncFor_##name func) \ - { Sort((wxSortCompareFunction)func); } \ - \ - protected: \ - virtual wxNodeBase *CreateNode(wxNodeBase *prev, wxNodeBase *next, \ - void *data, \ - const wxListKey& key = wxDefaultListKey) \ - { \ - return new nodetype(this, \ - (nodetype *)prev, (nodetype *)next, \ - (T *)data, key); \ - } \ - /* STL interface */ \ - public: \ - typedef size_t size_type; \ - typedef int difference_type; \ - typedef T* value_type; \ - typedef Tbase* base_value_type; \ - typedef value_type& reference; \ - typedef const value_type& const_reference; \ - typedef base_value_type& base_reference; \ - typedef const base_value_type& const_base_reference; \ - \ - classexp iterator \ - { \ - typedef name list; \ - public: \ - typedef nodetype Node; \ - typedef iterator itor; \ - typedef T* value_type; \ - typedef value_type* ptr_type; \ - typedef value_type& reference; \ - \ - Node* m_node; \ - Node* m_init; \ - public: \ - typedef reference reference_type; \ - typedef ptr_type pointer_type; \ - \ - iterator(Node* node, Node* init) : m_node(node), m_init(init) {}\ - iterator() : m_node(NULL), m_init(NULL) { } \ - reference_type operator*() const \ - { return *(pointer_type)m_node->GetDataPtr(); } \ - ptrop \ - itor& operator++() \ - { \ - wxASSERT_MSG( m_node, wxT("uninitialized iterator") ); \ - m_node = m_node->GetNext(); \ - return *this; \ - } \ - const itor operator++(int) \ - { \ - itor tmp = *this; \ - wxASSERT_MSG( m_node, wxT("uninitialized iterator") ); \ - m_node = m_node->GetNext(); \ - return tmp; \ - } \ - itor& operator--() \ - { \ - m_node = m_node ? m_node->GetPrevious() : m_init; \ - return *this; \ - } \ - const itor operator--(int) \ - { \ - itor tmp = *this; \ - m_node = m_node ? m_node->GetPrevious() : m_init; \ - return tmp; \ - } \ - bool operator!=(const itor& it) const \ - { return it.m_node != m_node; } \ - bool operator==(const itor& it) const \ - { return it.m_node == m_node; } \ - }; \ - classexp const_iterator \ - { \ - typedef name list; \ - public: \ - typedef nodetype Node; \ - typedef T* value_type; \ - typedef const value_type& const_reference; \ - typedef const_iterator itor; \ - typedef value_type* ptr_type; \ - \ - Node* m_node; \ - Node* m_init; \ - public: \ - typedef const_reference reference_type; \ - typedef const ptr_type pointer_type; \ - \ - const_iterator(Node* node, Node* init) \ - : m_node(node), m_init(init) { } \ - const_iterator() : m_node(NULL), m_init(NULL) { } \ - const_iterator(const iterator& it) \ - : m_node(it.m_node), m_init(it.m_init) { } \ - reference_type operator*() const \ - { return *(pointer_type)m_node->GetDataPtr(); } \ - ptrop \ - itor& operator++() \ - { \ - wxASSERT_MSG( m_node, wxT("uninitialized iterator") ); \ - m_node = m_node->GetNext(); \ - return *this; \ - } \ - const itor operator++(int) \ - { \ - itor tmp = *this; \ - wxASSERT_MSG( m_node, wxT("uninitialized iterator") ); \ - m_node = m_node->GetNext(); \ - return tmp; \ - } \ - itor& operator--() \ - { \ - m_node = m_node ? m_node->GetPrevious() : m_init; \ - return *this; \ - } \ - const itor operator--(int) \ - { \ - itor tmp = *this; \ - m_node = m_node ? m_node->GetPrevious() : m_init; \ - return tmp; \ - } \ - bool operator!=(const itor& it) const \ - { return it.m_node != m_node; } \ - bool operator==(const itor& it) const \ - { return it.m_node == m_node; } \ - }; \ - classexp reverse_iterator \ - { \ - typedef name list; \ - public: \ - typedef nodetype Node; \ - typedef T* value_type; \ - typedef reverse_iterator itor; \ - typedef value_type* ptr_type; \ - typedef value_type& reference; \ - \ - Node* m_node; \ - Node* m_init; \ - public: \ - typedef reference reference_type; \ - typedef ptr_type pointer_type; \ - \ - reverse_iterator(Node* node, Node* init) \ - : m_node(node), m_init(init) { } \ - reverse_iterator() : m_node(NULL), m_init(NULL) { } \ - reference_type operator*() const \ - { return *(pointer_type)m_node->GetDataPtr(); } \ - ptrop \ - itor& operator++() \ - { m_node = m_node->GetPrevious(); return *this; } \ - const itor operator++(int) \ - { itor tmp = *this; m_node = m_node->GetPrevious(); return tmp; }\ - itor& operator--() \ - { m_node = m_node ? m_node->GetNext() : m_init; return *this; } \ - const itor operator--(int) \ - { \ - itor tmp = *this; \ - m_node = m_node ? m_node->GetNext() : m_init; \ - return tmp; \ - } \ - bool operator!=(const itor& it) const \ - { return it.m_node != m_node; } \ - bool operator==(const itor& it) const \ - { return it.m_node == m_node; } \ - }; \ - classexp const_reverse_iterator \ - { \ - typedef name list; \ - public: \ - typedef nodetype Node; \ - typedef T* value_type; \ - typedef const_reverse_iterator itor; \ - typedef value_type* ptr_type; \ - typedef const value_type& const_reference; \ - \ - Node* m_node; \ - Node* m_init; \ - public: \ - typedef const_reference reference_type; \ - typedef const ptr_type pointer_type; \ - \ - const_reverse_iterator(Node* node, Node* init) \ - : m_node(node), m_init(init) { } \ - const_reverse_iterator() : m_node(NULL), m_init(NULL) { } \ - const_reverse_iterator(const reverse_iterator& it) \ - : m_node(it.m_node), m_init(it.m_init) { } \ - reference_type operator*() const \ - { return *(pointer_type)m_node->GetDataPtr(); } \ - ptrop \ - itor& operator++() \ - { m_node = m_node->GetPrevious(); return *this; } \ - const itor operator++(int) \ - { itor tmp = *this; m_node = m_node->GetPrevious(); return tmp; }\ - itor& operator--() \ - { m_node = m_node ? m_node->GetNext() : m_init; return *this;}\ - const itor operator--(int) \ - { \ - itor tmp = *this; \ - m_node = m_node ? m_node->GetNext() : m_init; \ - return tmp; \ - } \ - bool operator!=(const itor& it) const \ - { return it.m_node != m_node; } \ - bool operator==(const itor& it) const \ - { return it.m_node == m_node; } \ - }; \ - \ - wxEXPLICIT name(size_type n, const_reference v = value_type()) \ - { assign(n, v); } \ - name(const const_iterator& first, const const_iterator& last) \ - { assign(first, last); } \ - iterator begin() { return iterator(GetFirst(), GetLast()); } \ - const_iterator begin() const \ - { return const_iterator(GetFirst(), GetLast()); } \ - iterator end() { return iterator(NULL, GetLast()); } \ - const_iterator end() const { return const_iterator(NULL, GetLast()); }\ - reverse_iterator rbegin() \ - { return reverse_iterator(GetLast(), GetFirst()); } \ - const_reverse_iterator rbegin() const \ - { return const_reverse_iterator(GetLast(), GetFirst()); } \ - reverse_iterator rend() { return reverse_iterator(NULL, GetFirst()); }\ - const_reverse_iterator rend() const \ - { return const_reverse_iterator(NULL, GetFirst()); } \ - void resize(size_type n, value_type v = value_type()) \ - { \ - while (n < size()) \ - pop_back(); \ - while (n > size()) \ - push_back(v); \ - } \ - size_type size() const { return GetCount(); } \ - size_type max_size() const { return INT_MAX; } \ - bool empty() const { return IsEmpty(); } \ - reference front() { return *begin(); } \ - const_reference front() const { return *begin(); } \ - reference back() { iterator tmp = end(); return *--tmp; } \ - const_reference back() const { const_iterator tmp = end(); return *--tmp; }\ - void push_front(const_reference v = value_type()) \ - { Insert(GetFirst(), (const_base_reference)v); } \ - void pop_front() { DeleteNode(GetFirst()); } \ - void push_back(const_reference v = value_type()) \ - { Append((const_base_reference)v); } \ - void pop_back() { DeleteNode(GetLast()); } \ - void assign(const_iterator first, const const_iterator& last) \ - { \ - clear(); \ - for(; first != last; ++first) \ - Append((const_base_reference)*first); \ - } \ - void assign(size_type n, const_reference v = value_type()) \ - { \ - clear(); \ - for(size_type i = 0; i < n; ++i) \ - Append((const_base_reference)v); \ - } \ - iterator insert(const iterator& it, const_reference v) \ - { \ - if ( it == end() ) \ - { \ - Append((const_base_reference)v); \ - /* \ - note that this is the new end(), the old one was \ - invalidated by the Append() call, and this is why we \ - can't use the same code as in the normal case below \ - */ \ - iterator itins(end()); \ - return --itins; \ - } \ - else \ - { \ - Insert(it.m_node, (const_base_reference)v); \ - iterator itins(it); \ - return --itins; \ - } \ - } \ - void insert(const iterator& it, size_type n, const_reference v) \ - { \ - for(size_type i = 0; i < n; ++i) \ - insert(it, v); \ - } \ - void insert(const iterator& it, \ - const_iterator first, const const_iterator& last) \ - { \ - for(; first != last; ++first) \ - insert(it, *first); \ - } \ - iterator erase(const iterator& it) \ - { \ - iterator next = iterator(it.m_node->GetNext(), GetLast()); \ - DeleteNode(it.m_node); return next; \ - } \ - iterator erase(const iterator& first, const iterator& last) \ - { \ - iterator next = last; \ - if ( next != end() ) \ - ++next; \ - DeleteNodes(first.m_node, last.m_node); \ - return next; \ - } \ - void clear() { Clear(); } \ - void splice(const iterator& it, name& l, const iterator& first, const iterator& last)\ - { insert(it, first, last); l.erase(first, last); } \ - void splice(const iterator& it, name& l) \ - { splice(it, l, l.begin(), l.end() ); } \ - void splice(const iterator& it, name& l, const iterator& first) \ - { \ - if ( it != first ) \ - { \ - insert(it, *first); \ - l.erase(first); \ - } \ - } \ - void remove(const_reference v) \ - { DeleteObject((const_base_reference)v); } \ - void reverse() \ - { Reverse(); } \ - /* void swap(name& l) \ - { \ - { size_t t = m_count; m_count = l.m_count; l.m_count = t; } \ - { bool t = m_destroy; m_destroy = l.m_destroy; l.m_destroy = t; }\ - { wxNodeBase* t = m_nodeFirst; m_nodeFirst = l.m_nodeFirst; l.m_nodeFirst = t; }\ - { wxNodeBase* t = m_nodeLast; m_nodeLast = l.m_nodeLast; l.m_nodeLast = t; }\ - { wxKeyType t = m_keyType; m_keyType = l.m_keyType; l.m_keyType = t; }\ - } */ \ - } - -#define WX_LIST_PTROP \ - pointer_type operator->() const \ - { return (pointer_type)m_node->GetDataPtr(); } -#define WX_LIST_PTROP_NONE - -#define WX_DECLARE_LIST_3(T, Tbase, name, nodetype, classexp) \ - WX_DECLARE_LIST_4(T, Tbase, name, nodetype, classexp, WX_LIST_PTROP_NONE) -#define WX_DECLARE_LIST_PTR_3(T, Tbase, name, nodetype, classexp) \ - WX_DECLARE_LIST_4(T, Tbase, name, nodetype, classexp, WX_LIST_PTROP) - -#define WX_DECLARE_LIST_2(elementtype, listname, nodename, classexp) \ - WX_DECLARE_LIST_3(elementtype, elementtype, listname, nodename, classexp) -#define WX_DECLARE_LIST_PTR_2(elementtype, listname, nodename, classexp) \ - WX_DECLARE_LIST_PTR_3(elementtype, elementtype, listname, nodename, classexp) - -#define WX_DECLARE_LIST(elementtype, listname) \ - typedef elementtype _WX_LIST_ITEM_TYPE_##listname; \ - WX_DECLARE_LIST_2(elementtype, listname, wx##listname##Node, class) -#define WX_DECLARE_LIST_PTR(elementtype, listname) \ - typedef elementtype _WX_LIST_ITEM_TYPE_##listname; \ - WX_DECLARE_LIST_PTR_2(elementtype, listname, wx##listname##Node, class) - -#define WX_DECLARE_LIST_WITH_DECL(elementtype, listname, decl) \ - typedef elementtype _WX_LIST_ITEM_TYPE_##listname; \ - WX_DECLARE_LIST_2(elementtype, listname, wx##listname##Node, decl) - -#define WX_DECLARE_EXPORTED_LIST(elementtype, listname) \ - WX_DECLARE_LIST_WITH_DECL(elementtype, listname, class WXDLLIMPEXP_CORE) - -#define WX_DECLARE_EXPORTED_LIST_PTR(elementtype, listname) \ - typedef elementtype _WX_LIST_ITEM_TYPE_##listname; \ - WX_DECLARE_LIST_PTR_2(elementtype, listname, wx##listname##Node, class WXDLLIMPEXP_CORE) - -#define WX_DECLARE_USER_EXPORTED_LIST(elementtype, listname, usergoo) \ - typedef elementtype _WX_LIST_ITEM_TYPE_##listname; \ - WX_DECLARE_LIST_2(elementtype, listname, wx##listname##Node, class usergoo) -#define WX_DECLARE_USER_EXPORTED_LIST_PTR(elementtype, listname, usergoo) \ - typedef elementtype _WX_LIST_ITEM_TYPE_##listname; \ - WX_DECLARE_LIST_PTR_2(elementtype, listname, wx##listname##Node, class usergoo) - -// this macro must be inserted in your program after -// #include "wx/listimpl.cpp" -#define WX_DEFINE_LIST(name) "don't forget to include listimpl.cpp!" - -#define WX_DEFINE_EXPORTED_LIST(name) WX_DEFINE_LIST(name) -#define WX_DEFINE_USER_EXPORTED_LIST(name) WX_DEFINE_LIST(name) - -#endif // !wxUSE_STD_CONTAINERS - -// ============================================================================ -// now we can define classes 100% compatible with the old ones -// ============================================================================ - -// ---------------------------------------------------------------------------- -// commonly used list classes -// ---------------------------------------------------------------------------- - -#if defined(wxLIST_COMPATIBILITY) - -// inline compatibility functions - -#if !wxUSE_STD_CONTAINERS - -// ---------------------------------------------------------------------------- -// wxNodeBase deprecated methods -// ---------------------------------------------------------------------------- - -inline wxNode *wxNodeBase::Next() const { return (wxNode *)GetNext(); } -inline wxNode *wxNodeBase::Previous() const { return (wxNode *)GetPrevious(); } -inline wxObject *wxNodeBase::Data() const { return (wxObject *)GetData(); } - -// ---------------------------------------------------------------------------- -// wxListBase deprecated methods -// ---------------------------------------------------------------------------- - -inline int wxListBase::Number() const { return (int)GetCount(); } -inline wxNode *wxListBase::First() const { return (wxNode *)GetFirst(); } -inline wxNode *wxListBase::Last() const { return (wxNode *)GetLast(); } -inline wxNode *wxListBase::Nth(size_t n) const { return (wxNode *)Item(n); } -inline wxListBase::operator wxList&() const { return *(wxList*)this; } - -#endif - -// define this to make a lot of noise about use of the old wxList classes. -//#define wxWARN_COMPAT_LIST_USE - -// ---------------------------------------------------------------------------- -// wxList compatibility class: in fact, it's a list of wxObjects -// ---------------------------------------------------------------------------- - -WX_DECLARE_LIST_2(wxObject, wxObjectList, wxObjectListNode, - class WXDLLIMPEXP_BASE); - -class WXDLLIMPEXP_BASE wxList : public wxObjectList -{ -public: -#if defined(wxWARN_COMPAT_LIST_USE) && !wxUSE_STD_CONTAINERS - wxList() { } - wxDEPRECATED( wxList(int key_type) ); -#elif !wxUSE_STD_CONTAINERS - wxList(int key_type = wxKEY_NONE); -#endif - - // this destructor is required for Darwin - ~wxList() { } - -#if !wxUSE_STD_CONTAINERS - wxList& operator=(const wxList& list) - { if (&list != this) Assign(list); return *this; } - - // compatibility methods - void Sort(wxSortCompareFunction compfunc) { wxListBase::Sort(compfunc); } -#endif // !wxUSE_STD_CONTAINERS - - template<typename T> - wxVector<T> AsVector() const - { - wxVector<T> vector(size()); - size_t i = 0; - - for ( const_iterator it = begin(); it != end(); ++it ) - { - vector[i++] = static_cast<T>(*it); - } - - return vector; - } - -}; - -#if !wxUSE_STD_CONTAINERS - -// ----------------------------------------------------------------------------- -// wxStringList class for compatibility with the old code -// ----------------------------------------------------------------------------- -WX_DECLARE_LIST_2(wxChar, wxStringListBase, wxStringListNode, class WXDLLIMPEXP_BASE); - -class WXDLLIMPEXP_BASE wxStringList : public wxStringListBase -{ -public: - // ctors and such - // default -#ifdef wxWARN_COMPAT_LIST_USE - wxStringList(); - wxDEPRECATED( wxStringList(const wxChar *first ...) ); // FIXME-UTF8 -#else - wxStringList(); - wxStringList(const wxChar *first ...); // FIXME-UTF8 -#endif - - // copying the string list: the strings are copied, too (extremely - // inefficient!) - wxStringList(const wxStringList& other) : wxStringListBase() { DeleteContents(true); DoCopy(other); } - wxStringList& operator=(const wxStringList& other) - { - if (&other != this) - { - Clear(); - DoCopy(other); - } - return *this; - } - - // operations - // makes a copy of the string - wxNode *Add(const wxChar *s); - - // Append to beginning of list - wxNode *Prepend(const wxChar *s); - - bool Delete(const wxChar *s); - - wxChar **ListToArray(bool new_copies = false) const; - bool Member(const wxChar *s) const; - - // alphabetic sort - void Sort(); - -private: - void DoCopy(const wxStringList&); // common part of copy ctor and operator= -}; - -#else // if wxUSE_STD_CONTAINERS - -WX_DECLARE_LIST_XO(wxString, wxStringListBase, class WXDLLIMPEXP_BASE); - -class WXDLLIMPEXP_BASE wxStringList : public wxStringListBase -{ -public: - compatibility_iterator Append(wxChar* s) - { wxString tmp = s; delete[] s; return wxStringListBase::Append(tmp); } - compatibility_iterator Insert(wxChar* s) - { wxString tmp = s; delete[] s; return wxStringListBase::Insert(tmp); } - compatibility_iterator Insert(size_t pos, wxChar* s) - { - wxString tmp = s; - delete[] s; - return wxStringListBase::Insert(pos, tmp); - } - compatibility_iterator Add(const wxChar* s) - { push_back(s); return GetLast(); } - compatibility_iterator Prepend(const wxChar* s) - { push_front(s); return GetFirst(); } -}; - -#endif // wxUSE_STD_CONTAINERS - -#endif // wxLIST_COMPATIBILITY - -// delete all list elements -// -// NB: the class declaration of the list elements must be visible from the -// place where you use this macro, otherwise the proper destructor may not -// be called (a decent compiler should give a warning about it, but don't -// count on it)! -#define WX_CLEAR_LIST(type, list) \ - { \ - type::iterator it, en; \ - for( it = (list).begin(), en = (list).end(); it != en; ++it ) \ - delete *it; \ - (list).clear(); \ - } - -// append all element of one list to another one -#define WX_APPEND_LIST(list, other) \ - { \ - wxList::compatibility_iterator node = other->GetFirst(); \ - while ( node ) \ - { \ - (list)->push_back(node->GetData()); \ - node = node->GetNext(); \ - } \ - } - -#endif // _WX_LISTH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listbase.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listbase.h deleted file mode 100644 index 1c79de00..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listbase.h +++ /dev/null @@ -1,633 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/listbase.h -// Purpose: wxListCtrl class -// Author: Vadim Zeitlin -// Modified by: -// Created: 04.12.99 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LISTBASE_H_BASE_ -#define _WX_LISTBASE_H_BASE_ - -#include "wx/colour.h" -#include "wx/font.h" -#include "wx/gdicmn.h" -#include "wx/event.h" -#include "wx/control.h" -#include "wx/systhemectrl.h" - -class WXDLLIMPEXP_FWD_CORE wxImageList; - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -// type of compare function for wxListCtrl sort operation -typedef -int (wxCALLBACK *wxListCtrlCompare)(wxIntPtr item1, wxIntPtr item2, wxIntPtr sortData); - -// ---------------------------------------------------------------------------- -// wxListCtrl constants -// ---------------------------------------------------------------------------- - -// style flags -#define wxLC_VRULES 0x0001 -#define wxLC_HRULES 0x0002 - -#define wxLC_ICON 0x0004 -#define wxLC_SMALL_ICON 0x0008 -#define wxLC_LIST 0x0010 -#define wxLC_REPORT 0x0020 - -#define wxLC_ALIGN_TOP 0x0040 -#define wxLC_ALIGN_LEFT 0x0080 -#define wxLC_AUTOARRANGE 0x0100 -#define wxLC_VIRTUAL 0x0200 -#define wxLC_EDIT_LABELS 0x0400 -#define wxLC_NO_HEADER 0x0800 -#define wxLC_NO_SORT_HEADER 0x1000 -#define wxLC_SINGLE_SEL 0x2000 -#define wxLC_SORT_ASCENDING 0x4000 -#define wxLC_SORT_DESCENDING 0x8000 - -#define wxLC_MASK_TYPE (wxLC_ICON | wxLC_SMALL_ICON | wxLC_LIST | wxLC_REPORT) -#define wxLC_MASK_ALIGN (wxLC_ALIGN_TOP | wxLC_ALIGN_LEFT) -#define wxLC_MASK_SORT (wxLC_SORT_ASCENDING | wxLC_SORT_DESCENDING) - -// for compatibility only -#define wxLC_USER_TEXT wxLC_VIRTUAL - -// Omitted because -// (a) too much detail -// (b) not enough style flags -// (c) not implemented anyhow in the generic version -// -// #define wxLC_NO_SCROLL -// #define wxLC_NO_LABEL_WRAP -// #define wxLC_OWNERDRAW_FIXED -// #define wxLC_SHOW_SEL_ALWAYS - -// Mask flags to tell app/GUI what fields of wxListItem are valid -#define wxLIST_MASK_STATE 0x0001 -#define wxLIST_MASK_TEXT 0x0002 -#define wxLIST_MASK_IMAGE 0x0004 -#define wxLIST_MASK_DATA 0x0008 -#define wxLIST_SET_ITEM 0x0010 -#define wxLIST_MASK_WIDTH 0x0020 -#define wxLIST_MASK_FORMAT 0x0040 - -// State flags for indicating the state of an item -#define wxLIST_STATE_DONTCARE 0x0000 -#define wxLIST_STATE_DROPHILITED 0x0001 // MSW only -#define wxLIST_STATE_FOCUSED 0x0002 -#define wxLIST_STATE_SELECTED 0x0004 -#define wxLIST_STATE_CUT 0x0008 // MSW only -#define wxLIST_STATE_DISABLED 0x0010 // Not used -#define wxLIST_STATE_FILTERED 0x0020 // Not used -#define wxLIST_STATE_INUSE 0x0040 // Not used -#define wxLIST_STATE_PICKED 0x0080 // Not used -#define wxLIST_STATE_SOURCE 0x0100 // Not used - -// Hit test flags, used in HitTest -#define wxLIST_HITTEST_ABOVE 0x0001 // Above the client area. -#define wxLIST_HITTEST_BELOW 0x0002 // Below the client area. -#define wxLIST_HITTEST_NOWHERE 0x0004 // In the client area but below the last item. -#define wxLIST_HITTEST_ONITEMICON 0x0020 // On the bitmap associated with an item. -#define wxLIST_HITTEST_ONITEMLABEL 0x0080 // On the label (string) associated with an item. -#define wxLIST_HITTEST_ONITEMRIGHT 0x0100 // In the area to the right of an item. -#define wxLIST_HITTEST_ONITEMSTATEICON 0x0200 // On the state icon for a tree view item that is in a user-defined state. -#define wxLIST_HITTEST_TOLEFT 0x0400 // To the left of the client area. -#define wxLIST_HITTEST_TORIGHT 0x0800 // To the right of the client area. - -#define wxLIST_HITTEST_ONITEM (wxLIST_HITTEST_ONITEMICON | wxLIST_HITTEST_ONITEMLABEL | wxLIST_HITTEST_ONITEMSTATEICON) - -// GetSubItemRect constants -#define wxLIST_GETSUBITEMRECT_WHOLEITEM -1l - -// Flags for GetNextItem (MSW only except wxLIST_NEXT_ALL) -enum -{ - wxLIST_NEXT_ABOVE, // Searches for an item above the specified item - wxLIST_NEXT_ALL, // Searches for subsequent item by index - wxLIST_NEXT_BELOW, // Searches for an item below the specified item - wxLIST_NEXT_LEFT, // Searches for an item to the left of the specified item - wxLIST_NEXT_RIGHT // Searches for an item to the right of the specified item -}; - -// Alignment flags for Arrange (MSW only except wxLIST_ALIGN_LEFT) -enum -{ - wxLIST_ALIGN_DEFAULT, - wxLIST_ALIGN_LEFT, - wxLIST_ALIGN_TOP, - wxLIST_ALIGN_SNAP_TO_GRID -}; - -// Column format (MSW only except wxLIST_FORMAT_LEFT) -enum wxListColumnFormat -{ - wxLIST_FORMAT_LEFT, - wxLIST_FORMAT_RIGHT, - wxLIST_FORMAT_CENTRE, - wxLIST_FORMAT_CENTER = wxLIST_FORMAT_CENTRE -}; - -// Autosize values for SetColumnWidth -enum -{ - wxLIST_AUTOSIZE = -1, - wxLIST_AUTOSIZE_USEHEADER = -2 // partly supported by generic version -}; - -// Flag values for GetItemRect -enum -{ - wxLIST_RECT_BOUNDS, - wxLIST_RECT_ICON, - wxLIST_RECT_LABEL -}; - -// Flag values for FindItem (MSW only) -enum -{ - wxLIST_FIND_UP, - wxLIST_FIND_DOWN, - wxLIST_FIND_LEFT, - wxLIST_FIND_RIGHT -}; - -// ---------------------------------------------------------------------------- -// wxListItemAttr: a structure containing the visual attributes of an item -// ---------------------------------------------------------------------------- - -// TODO: this should be renamed to wxItemAttr or something general like this -// and used as base class for wxTextAttr which duplicates this class -// entirely currently -class WXDLLIMPEXP_CORE wxListItemAttr -{ -public: - // ctors - wxListItemAttr() { } - wxListItemAttr(const wxColour& colText, - const wxColour& colBack, - const wxFont& font) - : m_colText(colText), m_colBack(colBack), m_font(font) - { - } - - // default copy ctor, assignment operator and dtor are ok - - - // setters - void SetTextColour(const wxColour& colText) { m_colText = colText; } - void SetBackgroundColour(const wxColour& colBack) { m_colBack = colBack; } - void SetFont(const wxFont& font) { m_font = font; } - - // accessors - bool HasTextColour() const { return m_colText.IsOk(); } - bool HasBackgroundColour() const { return m_colBack.IsOk(); } - bool HasFont() const { return m_font.IsOk(); } - - const wxColour& GetTextColour() const { return m_colText; } - const wxColour& GetBackgroundColour() const { return m_colBack; } - const wxFont& GetFont() const { return m_font; } - - - // this is almost like assignment operator except it doesn't overwrite the - // fields unset in the source attribute - void AssignFrom(const wxListItemAttr& source) - { - if ( source.HasTextColour() ) - SetTextColour(source.GetTextColour()); - if ( source.HasBackgroundColour() ) - SetBackgroundColour(source.GetBackgroundColour()); - if ( source.HasFont() ) - SetFont(source.GetFont()); - } - -private: - wxColour m_colText, - m_colBack; - wxFont m_font; -}; - -// ---------------------------------------------------------------------------- -// wxListItem: the item or column info, used to exchange data with wxListCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxListItem : public wxObject -{ -public: - wxListItem() { Init(); m_attr = NULL; } - wxListItem(const wxListItem& item) - : wxObject(), - m_mask(item.m_mask), - m_itemId(item.m_itemId), - m_col(item.m_col), - m_state(item.m_state), - m_stateMask(item.m_stateMask), - m_text(item.m_text), - m_image(item.m_image), - m_data(item.m_data), - m_format(item.m_format), - m_width(item.m_width), - m_attr(NULL) - { - // copy list item attributes - if ( item.HasAttributes() ) - m_attr = new wxListItemAttr(*item.GetAttributes()); - } - - wxListItem& operator=(const wxListItem& item) - { - if ( &item != this ) - { - m_mask = item.m_mask; - m_itemId = item.m_itemId; - m_col = item.m_col; - m_state = item.m_state; - m_stateMask = item.m_stateMask; - m_text = item.m_text; - m_image = item.m_image; - m_data = item.m_data; - m_format = item.m_format; - m_width = item.m_width; - m_attr = item.m_attr ? new wxListItemAttr(*item.m_attr) : NULL; - } - - return *this; - } - - virtual ~wxListItem() { delete m_attr; } - - // resetting - void Clear() { Init(); m_text.clear(); ClearAttributes(); } - void ClearAttributes() { if ( m_attr ) { delete m_attr; m_attr = NULL; } } - - // setters - void SetMask(long mask) - { m_mask = mask; } - void SetId(long id) - { m_itemId = id; } - void SetColumn(int col) - { m_col = col; } - void SetState(long state) - { m_mask |= wxLIST_MASK_STATE; m_state = state; m_stateMask |= state; } - void SetStateMask(long stateMask) - { m_stateMask = stateMask; } - void SetText(const wxString& text) - { m_mask |= wxLIST_MASK_TEXT; m_text = text; } - void SetImage(int image) - { m_mask |= wxLIST_MASK_IMAGE; m_image = image; } - void SetData(long data) - { m_mask |= wxLIST_MASK_DATA; m_data = data; } - void SetData(void *data) - { m_mask |= wxLIST_MASK_DATA; m_data = wxPtrToUInt(data); } - - void SetWidth(int width) - { m_mask |= wxLIST_MASK_WIDTH; m_width = width; } - void SetAlign(wxListColumnFormat align) - { m_mask |= wxLIST_MASK_FORMAT; m_format = align; } - - void SetTextColour(const wxColour& colText) - { Attributes().SetTextColour(colText); } - void SetBackgroundColour(const wxColour& colBack) - { Attributes().SetBackgroundColour(colBack); } - void SetFont(const wxFont& font) - { Attributes().SetFont(font); } - - // accessors - long GetMask() const { return m_mask; } - long GetId() const { return m_itemId; } - int GetColumn() const { return m_col; } - long GetState() const { return m_state & m_stateMask; } - const wxString& GetText() const { return m_text; } - int GetImage() const { return m_image; } - wxUIntPtr GetData() const { return m_data; } - - int GetWidth() const { return m_width; } - wxListColumnFormat GetAlign() const { return (wxListColumnFormat)m_format; } - - wxListItemAttr *GetAttributes() const { return m_attr; } - bool HasAttributes() const { return m_attr != NULL; } - - wxColour GetTextColour() const - { return HasAttributes() ? m_attr->GetTextColour() : wxNullColour; } - wxColour GetBackgroundColour() const - { return HasAttributes() ? m_attr->GetBackgroundColour() - : wxNullColour; } - wxFont GetFont() const - { return HasAttributes() ? m_attr->GetFont() : wxNullFont; } - - // this conversion is necessary to make old code using GetItem() to - // compile - operator long() const { return m_itemId; } - - // these members are public for compatibility - - long m_mask; // Indicates what fields are valid - long m_itemId; // The zero-based item position - int m_col; // Zero-based column, if in report mode - long m_state; // The state of the item - long m_stateMask;// Which flags of m_state are valid (uses same flags) - wxString m_text; // The label/header text - int m_image; // The zero-based index into an image list - wxUIntPtr m_data; // App-defined data - - // For columns only - int m_format; // left, right, centre - int m_width; // width of column - -protected: - // creates m_attr if we don't have it yet - wxListItemAttr& Attributes() - { - if ( !m_attr ) - m_attr = new wxListItemAttr; - - return *m_attr; - } - - void Init() - { - m_mask = 0; - m_itemId = -1; - m_col = 0; - m_state = 0; - m_stateMask = 0; - m_image = -1; - m_data = 0; - - m_format = wxLIST_FORMAT_CENTRE; - m_width = 0; - } - - wxListItemAttr *m_attr; // optional pointer to the items style - -private: - wxDECLARE_DYNAMIC_CLASS(wxListItem); -}; - -// ---------------------------------------------------------------------------- -// wxListCtrlBase: the base class for the main control itself. -// ---------------------------------------------------------------------------- - -// Unlike other base classes, this class doesn't currently define the API of -// the real control class but is just used for implementation convenience. We -// should define the public class functions as pure virtual here in the future -// however. -class WXDLLIMPEXP_CORE wxListCtrlBase : public wxSystemThemedControl<wxControl> -{ -public: - wxListCtrlBase() { } - - // Image list methods. - // ------------------- - - // Associate the given (possibly NULL to indicate that no images will be - // used) image list with the control. The ownership of the image list - // passes to the control, i.e. it will be deleted when the control itself - // is destroyed. - // - // The value of "which" must be one of wxIMAGE_LIST_{NORMAL,SMALL,STATE}. - virtual void AssignImageList(wxImageList* imageList, int which) = 0; - - // Same as AssignImageList() but the control does not delete the image list - // so it can be shared among several controls. - virtual void SetImageList(wxImageList* imageList, int which) = 0; - - // Return the currently used image list, may be NULL. - virtual wxImageList* GetImageList(int which) const = 0; - - - // Column-related methods. - // ----------------------- - - // All these methods can only be used in report view mode. - - // Appends a new column. - // - // Returns the index of the newly inserted column or -1 on error. - long AppendColumn(const wxString& heading, - wxListColumnFormat format = wxLIST_FORMAT_LEFT, - int width = -1); - - // Add a new column to the control at the position "col". - // - // Returns the index of the newly inserted column or -1 on error. - long InsertColumn(long col, const wxListItem& info); - long InsertColumn(long col, - const wxString& heading, - int format = wxLIST_FORMAT_LEFT, - int width = wxLIST_AUTOSIZE); - - // Delete the given or all columns. - virtual bool DeleteColumn(int col) = 0; - virtual bool DeleteAllColumns() = 0; - - // Return the current number of columns. - virtual int GetColumnCount() const = 0; - - // Get or update information about the given column. Set item mask to - // indicate the fields to retrieve or change. - // - // Returns false on error, e.g. if the column index is invalid. - virtual bool GetColumn(int col, wxListItem& item) const = 0; - virtual bool SetColumn(int col, const wxListItem& item) = 0; - - // Convenient wrappers for the above methods which get or update just the - // column width. - virtual int GetColumnWidth(int col) const = 0; - virtual bool SetColumnWidth(int col, int width) = 0; - - // return the attribute for the item (may return NULL if none) - virtual wxListItemAttr *OnGetItemAttr(long item) const; - - // Other miscellaneous accessors. - // ------------------------------ - - // Convenient functions for testing the list control mode: - bool InReportView() const { return HasFlag(wxLC_REPORT); } - bool IsVirtual() const { return HasFlag(wxLC_VIRTUAL); } - - // Enable or disable beep when incremental match doesn't find any item. - // Only implemented in the generic version currently. - virtual void EnableBellOnNoMatch(bool WXUNUSED(on) = true) { } - - void EnableAlternateRowColours(bool enable = true); - void SetAlternateRowColour(const wxColour& colour); - wxColour GetAlternateRowColour() const { return m_alternateRowColour.GetBackgroundColour(); } - - // Checkboxes support: only implemented in wxMSW currently. - virtual bool HasCheckboxes() const { return false; } - virtual bool EnableCheckboxes(bool WXUNUSED(enable) = true) { return false; } - virtual bool IsItemChecked(long WXUNUSED(item)) const { return false; } - virtual void CheckItem(long WXUNUSED(item), bool WXUNUSED(check)) { } - -protected: - // Real implementations methods to which our public forwards. - virtual long DoInsertColumn(long col, const wxListItem& info) = 0; - - // Overridden methods of the base class. - virtual wxSize DoGetBestClientSize() const wxOVERRIDE; - -private: - // user defined color to draw row lines, may be invalid - wxListItemAttr m_alternateRowColour; -}; - -// ---------------------------------------------------------------------------- -// wxListEvent - the event class for the wxListCtrl notifications -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxListEvent : public wxNotifyEvent -{ -public: - wxListEvent(wxEventType commandType = wxEVT_NULL, int winid = 0) - : wxNotifyEvent(commandType, winid) - , m_code(-1) - , m_oldItemIndex(-1) - , m_itemIndex(-1) - , m_col(-1) - , m_pointDrag() - , m_item() - , m_editCancelled(false) - { } - - wxListEvent(const wxListEvent& event) - : wxNotifyEvent(event) - , m_code(event.m_code) - , m_oldItemIndex(event.m_oldItemIndex) - , m_itemIndex(event.m_itemIndex) - , m_col(event.m_col) - , m_pointDrag(event.m_pointDrag) - , m_item(event.m_item) - , m_editCancelled(event.m_editCancelled) - { } - - int GetKeyCode() const { return m_code; } - long GetIndex() const { return m_itemIndex; } - int GetColumn() const { return m_col; } - wxPoint GetPoint() const { return m_pointDrag; } - const wxString& GetLabel() const { return m_item.m_text; } - const wxString& GetText() const { return m_item.m_text; } - int GetImage() const { return m_item.m_image; } - wxUIntPtr GetData() const { return m_item.m_data; } - long GetMask() const { return m_item.m_mask; } - const wxListItem& GetItem() const { return m_item; } - - // for wxEVT_LIST_CACHE_HINT only - long GetCacheFrom() const { return m_oldItemIndex; } - long GetCacheTo() const { return m_itemIndex; } - - // was label editing canceled? (for wxEVT_LIST_END_LABEL_EDIT only) - bool IsEditCancelled() const { return m_editCancelled; } - void SetEditCanceled(bool editCancelled) { m_editCancelled = editCancelled; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxListEvent(*this); } - -//protected: -- not for backwards compatibility - int m_code; - long m_oldItemIndex; // only for wxEVT_LIST_CACHE_HINT - long m_itemIndex; - int m_col; - wxPoint m_pointDrag; - - wxListItem m_item; - -protected: - bool m_editCancelled; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxListEvent); -}; - -// ---------------------------------------------------------------------------- -// wxListCtrl event macros -// ---------------------------------------------------------------------------- - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_BEGIN_DRAG, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_BEGIN_RDRAG, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_BEGIN_LABEL_EDIT, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_END_LABEL_EDIT, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_DELETE_ITEM, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_DELETE_ALL_ITEMS, wxListEvent ); - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_ITEM_SELECTED, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_ITEM_DESELECTED, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_KEY_DOWN, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_INSERT_ITEM, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_COL_CLICK, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_ITEM_RIGHT_CLICK, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_ITEM_MIDDLE_CLICK, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_ITEM_ACTIVATED, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_CACHE_HINT, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_COL_RIGHT_CLICK, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_COL_BEGIN_DRAG, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_COL_DRAGGING, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_COL_END_DRAG, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_ITEM_FOCUSED, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_ITEM_CHECKED, wxListEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LIST_ITEM_UNCHECKED, wxListEvent ); - -typedef void (wxEvtHandler::*wxListEventFunction)(wxListEvent&); - -#define wxListEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxListEventFunction, func) - -#define wx__DECLARE_LISTEVT(evt, id, fn) \ - wx__DECLARE_EVT1(wxEVT_LIST_ ## evt, id, wxListEventHandler(fn)) - -#define EVT_LIST_BEGIN_DRAG(id, fn) wx__DECLARE_LISTEVT(BEGIN_DRAG, id, fn) -#define EVT_LIST_BEGIN_RDRAG(id, fn) wx__DECLARE_LISTEVT(BEGIN_RDRAG, id, fn) -#define EVT_LIST_BEGIN_LABEL_EDIT(id, fn) wx__DECLARE_LISTEVT(BEGIN_LABEL_EDIT, id, fn) -#define EVT_LIST_END_LABEL_EDIT(id, fn) wx__DECLARE_LISTEVT(END_LABEL_EDIT, id, fn) -#define EVT_LIST_DELETE_ITEM(id, fn) wx__DECLARE_LISTEVT(DELETE_ITEM, id, fn) -#define EVT_LIST_DELETE_ALL_ITEMS(id, fn) wx__DECLARE_LISTEVT(DELETE_ALL_ITEMS, id, fn) -#define EVT_LIST_KEY_DOWN(id, fn) wx__DECLARE_LISTEVT(KEY_DOWN, id, fn) -#define EVT_LIST_INSERT_ITEM(id, fn) wx__DECLARE_LISTEVT(INSERT_ITEM, id, fn) - -#define EVT_LIST_COL_CLICK(id, fn) wx__DECLARE_LISTEVT(COL_CLICK, id, fn) -#define EVT_LIST_COL_RIGHT_CLICK(id, fn) wx__DECLARE_LISTEVT(COL_RIGHT_CLICK, id, fn) -#define EVT_LIST_COL_BEGIN_DRAG(id, fn) wx__DECLARE_LISTEVT(COL_BEGIN_DRAG, id, fn) -#define EVT_LIST_COL_DRAGGING(id, fn) wx__DECLARE_LISTEVT(COL_DRAGGING, id, fn) -#define EVT_LIST_COL_END_DRAG(id, fn) wx__DECLARE_LISTEVT(COL_END_DRAG, id, fn) - -#define EVT_LIST_ITEM_SELECTED(id, fn) wx__DECLARE_LISTEVT(ITEM_SELECTED, id, fn) -#define EVT_LIST_ITEM_DESELECTED(id, fn) wx__DECLARE_LISTEVT(ITEM_DESELECTED, id, fn) -#define EVT_LIST_ITEM_RIGHT_CLICK(id, fn) wx__DECLARE_LISTEVT(ITEM_RIGHT_CLICK, id, fn) -#define EVT_LIST_ITEM_MIDDLE_CLICK(id, fn) wx__DECLARE_LISTEVT(ITEM_MIDDLE_CLICK, id, fn) -#define EVT_LIST_ITEM_ACTIVATED(id, fn) wx__DECLARE_LISTEVT(ITEM_ACTIVATED, id, fn) -#define EVT_LIST_ITEM_FOCUSED(id, fn) wx__DECLARE_LISTEVT(ITEM_FOCUSED, id, fn) -#define EVT_LIST_ITEM_CHECKED(id, fn) wx__DECLARE_LISTEVT(ITEM_CHECKED, id, fn) -#define EVT_LIST_ITEM_UNCHECKED(id, fn) wx__DECLARE_LISTEVT(ITEM_UNCHECKED, id, fn) - -#define EVT_LIST_CACHE_HINT(id, fn) wx__DECLARE_LISTEVT(CACHE_HINT, id, fn) - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_LIST_BEGIN_DRAG wxEVT_LIST_BEGIN_DRAG -#define wxEVT_COMMAND_LIST_BEGIN_RDRAG wxEVT_LIST_BEGIN_RDRAG -#define wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT wxEVT_LIST_BEGIN_LABEL_EDIT -#define wxEVT_COMMAND_LIST_END_LABEL_EDIT wxEVT_LIST_END_LABEL_EDIT -#define wxEVT_COMMAND_LIST_DELETE_ITEM wxEVT_LIST_DELETE_ITEM -#define wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS wxEVT_LIST_DELETE_ALL_ITEMS -#define wxEVT_COMMAND_LIST_ITEM_SELECTED wxEVT_LIST_ITEM_SELECTED -#define wxEVT_COMMAND_LIST_ITEM_DESELECTED wxEVT_LIST_ITEM_DESELECTED -#define wxEVT_COMMAND_LIST_KEY_DOWN wxEVT_LIST_KEY_DOWN -#define wxEVT_COMMAND_LIST_INSERT_ITEM wxEVT_LIST_INSERT_ITEM -#define wxEVT_COMMAND_LIST_COL_CLICK wxEVT_LIST_COL_CLICK -#define wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK wxEVT_LIST_ITEM_RIGHT_CLICK -#define wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK wxEVT_LIST_ITEM_MIDDLE_CLICK -#define wxEVT_COMMAND_LIST_ITEM_ACTIVATED wxEVT_LIST_ITEM_ACTIVATED -#define wxEVT_COMMAND_LIST_CACHE_HINT wxEVT_LIST_CACHE_HINT -#define wxEVT_COMMAND_LIST_COL_RIGHT_CLICK wxEVT_LIST_COL_RIGHT_CLICK -#define wxEVT_COMMAND_LIST_COL_BEGIN_DRAG wxEVT_LIST_COL_BEGIN_DRAG -#define wxEVT_COMMAND_LIST_COL_DRAGGING wxEVT_LIST_COL_DRAGGING -#define wxEVT_COMMAND_LIST_COL_END_DRAG wxEVT_LIST_COL_END_DRAG -#define wxEVT_COMMAND_LIST_ITEM_FOCUSED wxEVT_LIST_ITEM_FOCUSED - - -#endif - // _WX_LISTCTRL_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listbook.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listbook.h deleted file mode 100644 index 5edfc0c6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listbook.h +++ /dev/null @@ -1,129 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/listbook.h -// Purpose: wxListbook: wxListCtrl and wxNotebook combination -// Author: Vadim Zeitlin -// Modified by: -// Created: 19.08.03 -// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LISTBOOK_H_ -#define _WX_LISTBOOK_H_ - -#include "wx/defs.h" - -#if wxUSE_LISTBOOK - -#include "wx/bookctrl.h" -#include "wx/containr.h" - -class WXDLLIMPEXP_FWD_CORE wxListView; -class WXDLLIMPEXP_FWD_CORE wxListEvent; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LISTBOOK_PAGE_CHANGED, wxBookCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_LISTBOOK_PAGE_CHANGING, wxBookCtrlEvent ); - -// wxListbook flags -#define wxLB_DEFAULT wxBK_DEFAULT -#define wxLB_TOP wxBK_TOP -#define wxLB_BOTTOM wxBK_BOTTOM -#define wxLB_LEFT wxBK_LEFT -#define wxLB_RIGHT wxBK_RIGHT -#define wxLB_ALIGN_MASK wxBK_ALIGN_MASK - -// ---------------------------------------------------------------------------- -// wxListbook -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxListbook : public wxNavigationEnabled<wxBookCtrlBase> -{ -public: - wxListbook() { } - - wxListbook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxEmptyString) - { - (void)Create(parent, id, pos, size, style, name); - } - - // quasi ctor - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxEmptyString); - - - // overridden base class methods - virtual bool SetPageText(size_t n, const wxString& strText) wxOVERRIDE; - virtual wxString GetPageText(size_t n) const wxOVERRIDE; - virtual int GetPageImage(size_t n) const wxOVERRIDE; - virtual bool SetPageImage(size_t n, int imageId) wxOVERRIDE; - virtual bool InsertPage(size_t n, - wxWindow *page, - const wxString& text, - bool bSelect = false, - int imageId = NO_IMAGE) wxOVERRIDE; - virtual int SetSelection(size_t n) wxOVERRIDE { return DoSetSelection(n, SetSelection_SendEvent); } - virtual int ChangeSelection(size_t n) wxOVERRIDE { return DoSetSelection(n); } - virtual int HitTest(const wxPoint& pt, long *flags = NULL) const wxOVERRIDE; - virtual void SetImageList(wxImageList *imageList) wxOVERRIDE; - - virtual bool DeleteAllPages() wxOVERRIDE; - - wxListView* GetListView() const { return (wxListView*)m_bookctrl; } - -protected: - virtual wxWindow *DoRemovePage(size_t page) wxOVERRIDE; - - void UpdateSelectedPage(size_t newsel) wxOVERRIDE; - - wxBookCtrlEvent* CreatePageChangingEvent() const wxOVERRIDE; - void MakeChangedEvent(wxBookCtrlEvent &event) wxOVERRIDE; - - // Get the correct wxListCtrl flags to use depending on our own flags. - long GetListCtrlFlags() const; - - // event handlers - void OnListSelected(wxListEvent& event); - void OnSize(wxSizeEvent& event); - -private: - // this should be called when we need to be relaid out - void UpdateSize(); - - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxListbook); -}; - -// ---------------------------------------------------------------------------- -// listbook event class and related stuff -// ---------------------------------------------------------------------------- - -// wxListbookEvent is obsolete and defined for compatibility only (notice that -// we use #define and not typedef to also keep compatibility with the existing -// code which forward declares it) -#define wxListbookEvent wxBookCtrlEvent -typedef wxBookCtrlEventFunction wxListbookEventFunction; -#define wxListbookEventHandler(func) wxBookCtrlEventHandler(func) - -#define EVT_LISTBOOK_PAGE_CHANGED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_LISTBOOK_PAGE_CHANGED, winid, wxBookCtrlEventHandler(fn)) - -#define EVT_LISTBOOK_PAGE_CHANGING(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_LISTBOOK_PAGE_CHANGING, winid, wxBookCtrlEventHandler(fn)) - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED wxEVT_LISTBOOK_PAGE_CHANGED -#define wxEVT_COMMAND_LISTBOOK_PAGE_CHANGING wxEVT_LISTBOOK_PAGE_CHANGING - -#endif // wxUSE_LISTBOOK - -#endif // _WX_LISTBOOK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listbox.h deleted file mode 100644 index 8f649e75..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listbox.h +++ /dev/null @@ -1,168 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/listbox.h -// Purpose: wxListBox class interface -// Author: Vadim Zeitlin -// Modified by: -// Created: 22.10.99 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LISTBOX_H_BASE_ -#define _WX_LISTBOX_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_LISTBOX - -#include "wx/ctrlsub.h" // base class - -// forward declarations are enough here -class WXDLLIMPEXP_FWD_BASE wxArrayInt; -class WXDLLIMPEXP_FWD_BASE wxArrayString; - -// ---------------------------------------------------------------------------- -// global data -// ---------------------------------------------------------------------------- - -extern WXDLLIMPEXP_DATA_CORE(const char) wxListBoxNameStr[]; - -// ---------------------------------------------------------------------------- -// wxListBox interface is defined by the class wxListBoxBase -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxListBoxBase : public wxControlWithItems -{ -public: - wxListBoxBase() { } - virtual ~wxListBoxBase(); - - void InsertItems(unsigned int nItems, const wxString *items, unsigned int pos) - { Insert(nItems, items, pos); } - void InsertItems(const wxArrayString& items, unsigned int pos) - { Insert(items, pos); } - - // multiple selection logic - virtual bool IsSelected(int n) const = 0; - virtual void SetSelection(int n) wxOVERRIDE; - void SetSelection(int n, bool select) { DoSetSelection(n, select); } - void Deselect(int n) { DoSetSelection(n, false); } - void DeselectAll(int itemToLeaveSelected = -1); - - virtual bool SetStringSelection(const wxString& s, bool select); - virtual bool SetStringSelection(const wxString& s) - { - return SetStringSelection(s, true); - } - - // works for single as well as multiple selection listboxes (unlike - // GetSelection which only works for listboxes with single selection) - virtual int GetSelections(wxArrayInt& aSelections) const = 0; - - // set the specified item at the first visible item or scroll to max - // range. - void SetFirstItem(int n) { DoSetFirstItem(n); } - void SetFirstItem(const wxString& s); - - // ensures that the given item is visible scrolling the listbox if - // necessary - virtual void EnsureVisible(int n); - - virtual int GetTopItem() const { return wxNOT_FOUND; } - virtual int GetCountPerPage() const; - - // a combination of Append() and EnsureVisible(): appends the item to the - // listbox and ensures that it is visible i.e. not scrolled out of view - void AppendAndEnsureVisible(const wxString& s); - - // return true if the listbox allows multiple selection - bool HasMultipleSelection() const - { - return (m_windowStyle & wxLB_MULTIPLE) || - (m_windowStyle & wxLB_EXTENDED); - } - - // override wxItemContainer::IsSorted - virtual bool IsSorted() const wxOVERRIDE { return HasFlag( wxLB_SORT ); } - - // emulate selecting or deselecting the item event.GetInt() (depending on - // event.GetExtraLong()) - void Command(wxCommandEvent& event) wxOVERRIDE; - - // return the index of the item at this position or wxNOT_FOUND - int HitTest(const wxPoint& point) const { return DoListHitTest(point); } - int HitTest(int x, int y) const { return DoListHitTest(wxPoint(x, y)); } - - -protected: - virtual void DoSetFirstItem(int n) = 0; - - virtual void DoSetSelection(int n, bool select) = 0; - - // there is already wxWindow::DoHitTest() so call this one differently - virtual int DoListHitTest(const wxPoint& WXUNUSED(point)) const - { return wxNOT_FOUND; } - - // Helper for the code generating events in single selection mode: updates - // m_oldSelections and return true if the selection really changed. - // Otherwise just returns false. - bool DoChangeSingleSelection(int item); - - // Helper for generating events in multiple and extended mode: compare the - // current selections with the previously recorded ones (in - // m_oldSelections) and send the appropriate event if they differ, - // otherwise just return false. - bool CalcAndSendEvent(); - - // Send a listbox (de)selection or double click event. - // - // Returns true if the event was processed. - bool SendEvent(wxEventType evtType, int item, bool selected); - - // Array storing the indices of all selected items that we already notified - // the user code about for multi selection list boxes. - // - // For single selection list boxes, we reuse this array to store the single - // currently selected item, this is used by DoChangeSingleSelection(). - // - // TODO-OPT: wxSelectionStore would be more efficient for big list boxes. - wxArrayInt m_oldSelections; - - // Update m_oldSelections with currently selected items (does nothing in - // single selection mode on platforms other than MSW). - void UpdateOldSelections(); - - wxCoord GetLineHeight() const; - -private: - wxDECLARE_NO_COPY_CLASS(wxListBoxBase); -}; - -// ---------------------------------------------------------------------------- -// include the platform-specific class declaration -// ---------------------------------------------------------------------------- - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/listbox.h" -#elif defined(__WXMSW__) - #include "wx/msw/listbox.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/listbox.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/listbox.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/listbox.h" -#elif defined(__WXMAC__) - #include "wx/osx/listbox.h" -#elif defined(__WXQT__) - #include "wx/qt/listbox.h" -#endif - -#endif // wxUSE_LISTBOX - -#endif - // _WX_LISTBOX_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listctrl.h deleted file mode 100644 index dfb87816..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listctrl.h +++ /dev/null @@ -1,109 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/listctrl.h -// Purpose: wxListCtrl class -// Author: Vadim Zeitlin -// Modified by: -// Created: 04.12.99 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LISTCTRL_H_BASE_ -#define _WX_LISTCTRL_H_BASE_ - -#include "wx/defs.h" // headers should include this before first wxUSE_XXX check - -#if wxUSE_LISTCTRL - -#include "wx/listbase.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -extern WXDLLIMPEXP_DATA_CORE(const char) wxListCtrlNameStr[]; - -// ---------------------------------------------------------------------------- -// include the wxListCtrl class declaration -// ---------------------------------------------------------------------------- - -#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) - #include "wx/msw/listctrl.h" -#elif defined(__WXQT__) && !defined(__WXUNIVERSAL__) - #include "wx/qt/listctrl.h" -#else - #include "wx/generic/listctrl.h" -#endif - -// ---------------------------------------------------------------------------- -// wxListView: a class which provides a better API for list control -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxListView : public wxListCtrl -{ -public: - wxListView() { } - wxListView( wxWindow *parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxLC_REPORT, - const wxValidator& validator = wxDefaultValidator, - const wxString &name = wxListCtrlNameStr) - { - Create(parent, winid, pos, size, style, validator, name); - } - - // focus/selection stuff - // --------------------- - - // [de]select an item - void Select(long n, bool on = true) - { - SetItemState(n, on ? wxLIST_STATE_SELECTED : 0, wxLIST_STATE_SELECTED); - } - - // focus and show the given item - void Focus(long index) - { - SetItemState(index, wxLIST_STATE_FOCUSED, wxLIST_STATE_FOCUSED); - EnsureVisible(index); - } - - // get the currently focused item or -1 if none - long GetFocusedItem() const - { - return GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_FOCUSED); - } - - // get first and subsequent selected items, return -1 when no more - long GetNextSelected(long item) const - { return GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); } - long GetFirstSelected() const - { return GetNextSelected(-1); } - - // return true if the item is selected - bool IsSelected(long index) const - { return GetItemState(index, wxLIST_STATE_SELECTED) != 0; } - - // columns - // ------- - - void SetColumnImage(int col, int image) - { - wxListItem item; - item.SetMask(wxLIST_MASK_IMAGE); - item.SetImage(image); - SetColumn(col, item); - } - - void ClearColumnImage(int col) { SetColumnImage(col, -1); } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxListView); -}; - -#endif // wxUSE_LISTCTRL - -#endif - // _WX_LISTCTRL_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listimpl.cpp b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listimpl.cpp deleted file mode 100644 index f3a4a1bd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/listimpl.cpp +++ /dev/null @@ -1,35 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/listimpl.cpp -// Purpose: second-part of macro based implementation of template lists -// Author: Vadim Zeitlin -// Modified by: -// Created: 16/11/98 -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#if wxUSE_STD_CONTAINERS - -#undef WX_DEFINE_LIST -#define WX_DEFINE_LIST(name) \ - void _WX_LIST_HELPER_##name::DeleteFunction( _WX_LIST_ITEM_TYPE_##name X )\ - { \ - delete X; \ - } \ - _WX_LIST_HELPER_##name::BaseListType _WX_LIST_HELPER_##name::EmptyList; - -#else // !wxUSE_STD_CONTAINERS - #undef WX_DEFINE_LIST_2 - #define WX_DEFINE_LIST_2(T, name) \ - void wx##name##Node::DeleteData() \ - { \ - delete (T *)GetData(); \ - } - - // redefine the macro so that now it will generate the class implementation - // old value would provoke a compile-time error if this file is not included - #undef WX_DEFINE_LIST - #define WX_DEFINE_LIST(name) WX_DEFINE_LIST_2(_WX_LIST_ITEM_TYPE_##name, name) - -#endif // wxUSE_STD_CONTAINERS/!wxUSE_STD_CONTAINERS - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/log.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/log.h deleted file mode 100644 index 5775c14d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/log.h +++ /dev/null @@ -1,1505 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/log.h -// Purpose: Assorted wxLogXXX functions, and wxLog (sink for logs) -// Author: Vadim Zeitlin -// Modified by: -// Created: 29/01/98 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LOG_H_ -#define _WX_LOG_H_ - -#include "wx/defs.h" -#include "wx/cpp.h" - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -// NB: this is needed even if wxUSE_LOG == 0 -typedef unsigned long wxLogLevel; - -// the trace masks have been superseded by symbolic trace constants, they're -// for compatibility only and will be removed soon - do NOT use them -#if WXWIN_COMPATIBILITY_2_8 - #define wxTraceMemAlloc 0x0001 // trace memory allocation (new/delete) - #define wxTraceMessages 0x0002 // trace window messages/X callbacks - #define wxTraceResAlloc 0x0004 // trace GDI resource allocation - #define wxTraceRefCount 0x0008 // trace various ref counting operations - - #ifdef __WINDOWS__ - #define wxTraceOleCalls 0x0100 // OLE interface calls - #endif - - typedef unsigned long wxTraceMask; -#endif // WXWIN_COMPATIBILITY_2_8 - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/string.h" -#include "wx/strvararg.h" - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_BASE wxObject; - -#if wxUSE_GUI - class WXDLLIMPEXP_FWD_CORE wxFrame; -#endif // wxUSE_GUI - -#if wxUSE_LOG - -#include "wx/arrstr.h" - -#include <time.h> // for time_t - -#include "wx/dynarray.h" -#include "wx/hashmap.h" - -#if wxUSE_THREADS - #include "wx/thread.h" -#endif // wxUSE_THREADS - -// wxUSE_LOG_DEBUG enables the debug log messages -#ifndef wxUSE_LOG_DEBUG - #if wxDEBUG_LEVEL - #define wxUSE_LOG_DEBUG 1 - #else // !wxDEBUG_LEVEL - #define wxUSE_LOG_DEBUG 0 - #endif -#endif - -// wxUSE_LOG_TRACE enables the trace messages, they are disabled by default -#ifndef wxUSE_LOG_TRACE - #if wxDEBUG_LEVEL - #define wxUSE_LOG_TRACE 1 - #else // !wxDEBUG_LEVEL - #define wxUSE_LOG_TRACE 0 - #endif -#endif // wxUSE_LOG_TRACE - -// wxLOG_COMPONENT identifies the component which generated the log record and -// can be #define'd to a user-defined value when compiling the user code to use -// component-based filtering (see wxLog::SetComponentLevel()) -#ifndef wxLOG_COMPONENT - // this is a variable and not a macro in order to allow the user code to - // just #define wxLOG_COMPONENT without #undef'ining it first - extern WXDLLIMPEXP_DATA_BASE(const char *) wxLOG_COMPONENT; - - #ifdef WXBUILDING - #define wxLOG_COMPONENT "wx" - #endif -#endif - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// different standard log levels (you may also define your own) -enum wxLogLevelValues -{ - wxLOG_FatalError, // program can't continue, abort immediately - wxLOG_Error, // a serious error, user must be informed about it - wxLOG_Warning, // user is normally informed about it but may be ignored - wxLOG_Message, // normal message (i.e. normal output of a non GUI app) - wxLOG_Status, // informational: might go to the status line of GUI app - wxLOG_Info, // informational message (a.k.a. 'Verbose') - wxLOG_Debug, // never shown to the user, disabled in release mode - wxLOG_Trace, // trace messages are also only enabled in debug mode - wxLOG_Progress, // used for progress indicator (not yet) - wxLOG_User = 100, // user defined levels start here - wxLOG_Max = 10000 -}; - -// symbolic trace masks - wxLogTrace("foo", "some trace message...") will be -// discarded unless the string "foo" has been added to the list of allowed -// ones with AddTraceMask() - -#define wxTRACE_MemAlloc wxT("memalloc") // trace memory allocation (new/delete) -#define wxTRACE_Messages wxT("messages") // trace window messages/X callbacks -#define wxTRACE_ResAlloc wxT("resalloc") // trace GDI resource allocation -#define wxTRACE_RefCount wxT("refcount") // trace various ref counting operations - -#ifdef __WINDOWS__ - #define wxTRACE_OleCalls wxT("ole") // OLE interface calls -#endif - -#include "wx/iosfwrap.h" - -// ---------------------------------------------------------------------------- -// information about a log record, i.e. unit of log output -// ---------------------------------------------------------------------------- - -class wxLogRecordInfo -{ -public: - // default ctor creates an uninitialized object - wxLogRecordInfo() - { - memset(this, 0, sizeof(*this)); - } - - // normal ctor, used by wxLogger specifies the location of the log - // statement; its time stamp and thread id are set up here - wxLogRecordInfo(const char *filename_, - int line_, - const char *func_, - const char *component_) - { - filename = filename_; - func = func_; - line = line_; - component = component_; - - timestamp = time(NULL); - -#if wxUSE_THREADS - threadId = wxThread::GetCurrentId(); -#endif // wxUSE_THREADS - - m_data = NULL; - } - - // we need to define copy ctor and assignment operator because of m_data - wxLogRecordInfo(const wxLogRecordInfo& other) - { - Copy(other); - } - - wxLogRecordInfo& operator=(const wxLogRecordInfo& other) - { - if ( &other != this ) - { - delete m_data; - Copy(other); - } - - return *this; - } - - // dtor is non-virtual, this class is not meant to be derived from - ~wxLogRecordInfo() - { - delete m_data; - } - - - // the file name and line number of the file where the log record was - // generated, if available or NULL and 0 otherwise - const char *filename; - int line; - - // the name of the function where the log record was generated (may be NULL - // if the compiler doesn't support __FUNCTION__) - const char *func; - - // the name of the component which generated this message, may be NULL if - // not set (i.e. wxLOG_COMPONENT not defined) - const char *component; - - // time of record generation - time_t timestamp; - -#if wxUSE_THREADS - // id of the thread which logged this record - wxThreadIdType threadId; -#endif // wxUSE_THREADS - - - // store an arbitrary value in this record context - // - // wxWidgets always uses keys starting with "wx.", e.g. "wx.sys_error" - void StoreValue(const wxString& key, wxUIntPtr val) - { - if ( !m_data ) - m_data = new ExtraData; - - m_data->numValues[key] = val; - } - - void StoreValue(const wxString& key, const wxString& val) - { - if ( !m_data ) - m_data = new ExtraData; - - m_data->strValues[key] = val; - } - - - // these functions retrieve the value of either numeric or string key, - // return false if not found - bool GetNumValue(const wxString& key, wxUIntPtr *val) const - { - if ( !m_data ) - return false; - - wxStringToNumHashMap::const_iterator it = m_data->numValues.find(key); - if ( it == m_data->numValues.end() ) - return false; - - *val = it->second; - - return true; - } - - bool GetStrValue(const wxString& key, wxString *val) const - { - if ( !m_data ) - return false; - - wxStringToStringHashMap::const_iterator it = m_data->strValues.find(key); - if ( it == m_data->strValues.end() ) - return false; - - *val = it->second; - - return true; - } - -private: - void Copy(const wxLogRecordInfo& other) - { - memcpy(this, &other, sizeof(*this)); - if ( other.m_data ) - m_data = new ExtraData(*other.m_data); - } - - // extra data associated with the log record: this is completely optional - // and can be used to pass information from the log function to the log - // sink (e.g. wxLogSysError() uses this to pass the error code) - struct ExtraData - { - wxStringToNumHashMap numValues; - wxStringToStringHashMap strValues; - }; - - // NULL if not used - ExtraData *m_data; -}; - -#define wxLOG_KEY_TRACE_MASK "wx.trace_mask" - -// ---------------------------------------------------------------------------- -// log record: a unit of log output -// ---------------------------------------------------------------------------- - -struct wxLogRecord -{ - wxLogRecord(wxLogLevel level_, - const wxString& msg_, - const wxLogRecordInfo& info_) - : level(level_), - msg(msg_), - info(info_) - { - } - - wxLogLevel level; - wxString msg; - wxLogRecordInfo info; -}; - -// ---------------------------------------------------------------------------- -// Derive from this class to customize format of log messages. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxLogFormatter -{ -public: - // Default constructor. - wxLogFormatter() { } - - // Trivial but virtual destructor for the base class. - virtual ~wxLogFormatter() { } - - - // Override this method to implement custom formatting of the given log - // record. The default implementation simply prepends a level-dependent - // prefix to the message and optionally adds a time stamp. - virtual wxString Format(wxLogLevel level, - const wxString& msg, - const wxLogRecordInfo& info) const; - -protected: - // Override this method to change just the time stamp formatting. It is - // called by default Format() implementation. - virtual wxString FormatTime(time_t t) const; -}; - - -// ---------------------------------------------------------------------------- -// derive from this class to redirect (or suppress, or ...) log messages -// normally, only a single instance of this class exists but it's not enforced -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxLog -{ -public: - // ctor - wxLog() : m_formatter(new wxLogFormatter) { } - - // make dtor virtual for all derived classes - virtual ~wxLog(); - - - // log messages selection - // ---------------------- - - // these functions allow to completely disable all log messages or disable - // log messages at level less important than specified for the current - // thread - - // is logging enabled at all now? - static bool IsEnabled() - { -#if wxUSE_THREADS - if ( !wxThread::IsMain() ) - return IsThreadLoggingEnabled(); -#endif // wxUSE_THREADS - - return ms_doLog; - } - - // change the flag state, return the previous one - static bool EnableLogging(bool enable = true) - { -#if wxUSE_THREADS - if ( !wxThread::IsMain() ) - return EnableThreadLogging(enable); -#endif // wxUSE_THREADS - - bool doLogOld = ms_doLog; - ms_doLog = enable; - return doLogOld; - } - - // return the current global log level - static wxLogLevel GetLogLevel() { return ms_logLevel; } - - // set global log level: messages with level > logLevel will not be logged - static void SetLogLevel(wxLogLevel logLevel) { ms_logLevel = logLevel; } - - // set the log level for the given component - static void SetComponentLevel(const wxString& component, wxLogLevel level); - - // return the effective log level for this component, falling back to - // parent component and to the default global log level if necessary - // - // NB: component argument is passed by value and not const reference in an - // attempt to encourage compiler to avoid an extra copy: as we modify - // the component internally, we'd create one anyhow and like this it - // can be avoided if the string is a temporary anyhow - static wxLogLevel GetComponentLevel(wxString component); - - - // is logging of messages from this component enabled at this level? - // - // usually always called with wxLOG_COMPONENT as second argument - static bool IsLevelEnabled(wxLogLevel level, wxString component) - { - return IsEnabled() && level <= GetComponentLevel(component); - } - - - // enable/disable messages at wxLOG_Verbose level (only relevant if the - // current log level is greater or equal to it) - // - // notice that verbose mode can be activated by the standard command-line - // '--verbose' option - static void SetVerbose(bool bVerbose = true) { ms_bVerbose = bVerbose; } - - // check if verbose messages are enabled - static bool GetVerbose() { return ms_bVerbose; } - - - // message buffering - // ----------------- - - // flush shows all messages if they're not logged immediately (FILE - // and iostream logs don't need it, but wxLogGui does to avoid showing - // 17 modal dialogs one after another) - virtual void Flush(); - - // flush the active target if any and also output any pending messages from - // background threads - static void FlushActive(); - - // only one sink is active at each moment get current log target, will call - // wxAppTraits::CreateLogTarget() to create one if none exists - static wxLog *GetActiveTarget(); - - // change log target, logger may be NULL - static wxLog *SetActiveTarget(wxLog *logger); - -#if wxUSE_THREADS - // change log target for the current thread only, shouldn't be called from - // the main thread as it doesn't use thread-specific log target - static wxLog *SetThreadActiveTarget(wxLog *logger); -#endif // wxUSE_THREADS - - // suspend the message flushing of the main target until the next call - // to Resume() - this is mainly for internal use (to prevent wxYield() - // from flashing the messages) - static void Suspend() { ms_suspendCount++; } - - // must be called for each Suspend()! - static void Resume() { ms_suspendCount--; } - - // should GetActiveTarget() try to create a new log object if the - // current is NULL? - static void DontCreateOnDemand(); - - // Make GetActiveTarget() create a new log object again. - static void DoCreateOnDemand(); - - // log the count of repeating messages instead of logging the messages - // multiple times - static void SetRepetitionCounting(bool bRepetCounting = true) - { ms_bRepetCounting = bRepetCounting; } - - // gets duplicate counting status - static bool GetRepetitionCounting() { return ms_bRepetCounting; } - - // add string trace mask - static void AddTraceMask(const wxString& str); - - // add string trace mask - static void RemoveTraceMask(const wxString& str); - - // remove all string trace masks - static void ClearTraceMasks(); - - // get string trace masks: note that this is MT-unsafe if other threads can - // call AddTraceMask() concurrently - static const wxArrayString& GetTraceMasks(); - - // is this trace mask in the list? - static bool IsAllowedTraceMask(const wxString& mask); - - - // log formatting - // ----------------- - - // Change wxLogFormatter object used by wxLog to format the log messages. - // - // wxLog takes ownership of the pointer passed in but the caller is - // responsible for deleting the returned pointer. - wxLogFormatter* SetFormatter(wxLogFormatter* formatter); - - - // All the time stamp related functions below only work when the default - // wxLogFormatter is being used. Defining a custom formatter overrides them - // as it could use its own time stamp format or format messages without - // using time stamp at all. - - - // sets the time stamp string format: this is used as strftime() format - // string for the log targets which add time stamps to the messages; set - // it to empty string to disable time stamping completely. - static void SetTimestamp(const wxString& ts) { ms_timestamp = ts; } - - // disable time stamping of log messages - static void DisableTimestamp() { SetTimestamp(wxEmptyString); } - - - // get the current timestamp format string (maybe empty) - static const wxString& GetTimestamp() { return ms_timestamp; } - - - - // helpers: all functions in this section are mostly for internal use only, - // don't call them from your code even if they are not formally deprecated - - // put the time stamp into the string if ms_timestamp is not empty (don't - // change it otherwise); the first overload uses the current time. - static void TimeStamp(wxString *str); - static void TimeStamp(wxString *str, time_t t); - - // these methods should only be called from derived classes DoLogRecord(), - // DoLogTextAtLevel() and DoLogText() implementations respectively and - // shouldn't be called directly, use logging functions instead - void LogRecord(wxLogLevel level, - const wxString& msg, - const wxLogRecordInfo& info) - { - DoLogRecord(level, msg, info); - } - - void LogTextAtLevel(wxLogLevel level, const wxString& msg) - { - DoLogTextAtLevel(level, msg); - } - - void LogText(const wxString& msg) - { - DoLogText(msg); - } - - // this is a helper used by wxLogXXX() functions, don't call it directly - // and see DoLog() for function to overload in the derived classes - static void OnLog(wxLogLevel level, - const wxString& msg, - const wxLogRecordInfo& info); - - // version called when no information about the location of the log record - // generation is available (but the time stamp is), it mainly exists for - // backwards compatibility, don't use it in new code - static void OnLog(wxLogLevel level, const wxString& msg, time_t t); - - // a helper calling the above overload with current time - static void OnLog(wxLogLevel level, const wxString& msg) - { - OnLog(level, msg, time(NULL)); - } - - - // this method exists for backwards compatibility only, don't use - bool HasPendingMessages() const { return true; } - - // don't use integer masks any more, use string trace masks instead -#if WXWIN_COMPATIBILITY_2_8 - static wxDEPRECATED_INLINE( void SetTraceMask(wxTraceMask ulMask), - ms_ulTraceMask = ulMask; ) - - // this one can't be marked deprecated as it's used in our own wxLogger - // below but it still is deprecated and shouldn't be used - static wxTraceMask GetTraceMask() { return ms_ulTraceMask; } -#endif // WXWIN_COMPATIBILITY_2_8 - -protected: - // the logging functions that can be overridden: DoLogRecord() is called - // for every "record", i.e. a unit of log output, to be logged and by - // default formats the message and passes it to DoLogTextAtLevel() which in - // turn passes it to DoLogText() by default - - // override this method if you want to change message formatting or do - // dynamic filtering - virtual void DoLogRecord(wxLogLevel level, - const wxString& msg, - const wxLogRecordInfo& info); - - // override this method to redirect output to different channels depending - // on its level only; if even the level doesn't matter, override - // DoLogText() instead - virtual void DoLogTextAtLevel(wxLogLevel level, const wxString& msg); - - // this function is not pure virtual as it might not be needed if you do - // the logging in overridden DoLogRecord() or DoLogTextAtLevel() directly - // but if you do not override them in your derived class you must override - // this one as the default implementation of it simply asserts - virtual void DoLogText(const wxString& msg); - - - // the rest of the functions are for backwards compatibility only, don't - // use them in new code; if you're updating your existing code you need to - // switch to overriding DoLogRecord/Text() above (although as long as these - // functions exist, log classes using them will continue to work) -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED_BUT_USED_INTERNALLY( - virtual void DoLog(wxLogLevel level, const char *szString, time_t t) - ); - - wxDEPRECATED_BUT_USED_INTERNALLY( - virtual void DoLog(wxLogLevel level, const wchar_t *wzString, time_t t) - ); - - // these shouldn't be used by new code - wxDEPRECATED_BUT_USED_INTERNALLY_INLINE( - virtual void DoLogString(const char *WXUNUSED(szString), - time_t WXUNUSED(t)), - wxEMPTY_PARAMETER_VALUE - ) - - wxDEPRECATED_BUT_USED_INTERNALLY_INLINE( - virtual void DoLogString(const wchar_t *WXUNUSED(wzString), - time_t WXUNUSED(t)), - wxEMPTY_PARAMETER_VALUE - ) -#endif // WXWIN_COMPATIBILITY_2_8 - - - // log a message indicating the number of times the previous message was - // repeated if previous repetition counter is strictly positive, does - // nothing otherwise; return the old value of repetition counter - unsigned LogLastRepeatIfNeeded(); - -private: -#if wxUSE_THREADS - // called from FlushActive() to really log any buffered messages logged - // from the other threads - void FlushThreadMessages(); - - // these functions are called for non-main thread only by IsEnabled() and - // EnableLogging() respectively - static bool IsThreadLoggingEnabled(); - static bool EnableThreadLogging(bool enable = true); -#endif // wxUSE_THREADS - - // get the active log target for the main thread, auto-creating it if - // necessary - // - // this is called from GetActiveTarget() and OnLog() when they're called - // from the main thread - static wxLog *GetMainThreadActiveTarget(); - - // called from OnLog() if it's called from the main thread or if we have a - // (presumably MT-safe) thread-specific logger and by FlushThreadMessages() - // when it plays back the buffered messages logged from the other threads - void CallDoLogNow(wxLogLevel level, - const wxString& msg, - const wxLogRecordInfo& info); - - - // variables - // ---------------- - - wxLogFormatter *m_formatter; // We own this pointer. - - - // static variables - // ---------------- - - // if true, don't log the same message multiple times, only log it once - // with the number of times it was repeated - static bool ms_bRepetCounting; - - static wxLog *ms_pLogger; // currently active log sink - static bool ms_doLog; // false => all logging disabled - static bool ms_bAutoCreate; // create new log targets on demand? - static bool ms_bVerbose; // false => ignore LogInfo messages - - static wxLogLevel ms_logLevel; // limit logging to levels <= ms_logLevel - - static size_t ms_suspendCount; // if positive, logs are not flushed - - // format string for strftime(), if empty, time stamping log messages is - // disabled - static wxString ms_timestamp; - -#if WXWIN_COMPATIBILITY_2_8 - static wxTraceMask ms_ulTraceMask; // controls wxLogTrace behaviour -#endif // WXWIN_COMPATIBILITY_2_8 -}; - -// ---------------------------------------------------------------------------- -// "trivial" derivations of wxLog -// ---------------------------------------------------------------------------- - -// log everything except for the debug/trace messages (which are passed to -// wxMessageOutputDebug) to a buffer -class WXDLLIMPEXP_BASE wxLogBuffer : public wxLog -{ -public: - wxLogBuffer() { } - - // get the string contents with all messages logged - const wxString& GetBuffer() const { return m_str; } - - // show the buffer contents to the user in the best possible way (this uses - // wxMessageOutputMessageBox) and clear it - virtual void Flush() wxOVERRIDE; - -protected: - virtual void DoLogTextAtLevel(wxLogLevel level, const wxString& msg) wxOVERRIDE; - -private: - wxString m_str; - - wxDECLARE_NO_COPY_CLASS(wxLogBuffer); -}; - - -// log everything to a "FILE *", stderr by default -class WXDLLIMPEXP_BASE wxLogStderr : public wxLog -{ -public: - // redirect log output to a FILE - wxLogStderr(FILE *fp = NULL); - -protected: - // implement sink function - virtual void DoLogText(const wxString& msg) wxOVERRIDE; - - FILE *m_fp; - - wxDECLARE_NO_COPY_CLASS(wxLogStderr); -}; - -#if wxUSE_STD_IOSTREAM - -// log everything to an "ostream", cerr by default -class WXDLLIMPEXP_BASE wxLogStream : public wxLog -{ -public: - // redirect log output to an ostream - wxLogStream(wxSTD ostream *ostr = (wxSTD ostream *) NULL); - -protected: - // implement sink function - virtual void DoLogText(const wxString& msg) wxOVERRIDE; - - // using ptr here to avoid including <iostream.h> from this file - wxSTD ostream *m_ostr; -}; - -#endif // wxUSE_STD_IOSTREAM - -// ---------------------------------------------------------------------------- -// /dev/null log target: suppress logging until this object goes out of scope -// ---------------------------------------------------------------------------- - -// example of usage: -/* - void Foo() - { - wxFile file; - - // wxFile.Open() normally complains if file can't be opened, we don't - // want it - wxLogNull logNo; - - if ( !file.Open("bar") ) - ... process error ourselves ... - - // ~wxLogNull called, old log sink restored - } - */ -class WXDLLIMPEXP_BASE wxLogNull -{ -public: - wxLogNull() : m_flagOld(wxLog::EnableLogging(false)) { } - ~wxLogNull() { (void)wxLog::EnableLogging(m_flagOld); } - -private: - bool m_flagOld; // the previous value of the wxLog::ms_doLog -}; - -// ---------------------------------------------------------------------------- -// chaining log target: installs itself as a log target and passes all -// messages to the real log target given to it in the ctor but also forwards -// them to the previously active one -// -// note that you don't have to call SetActiveTarget() with this class, it -// does it itself in its ctor -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxLogChain : public wxLog -{ -public: - wxLogChain(wxLog *logger); - virtual ~wxLogChain(); - - // change the new log target - void SetLog(wxLog *logger); - - // this can be used to temporarily disable (and then reenable) passing - // messages to the old logger (by default we do pass them) - void PassMessages(bool bDoPass) { m_bPassMessages = bDoPass; } - - // are we passing the messages to the previous log target? - bool IsPassingMessages() const { return m_bPassMessages; } - - // return the previous log target (may be NULL) - wxLog *GetOldLog() const { return m_logOld; } - - // override base class version to flush the old logger as well - virtual void Flush() wxOVERRIDE; - - // call to avoid destroying the old log target - void DetachOldLog() { m_logOld = NULL; } - -protected: - // pass the record to the old logger if needed - virtual void DoLogRecord(wxLogLevel level, - const wxString& msg, - const wxLogRecordInfo& info) wxOVERRIDE; - -private: - // the current log target - wxLog *m_logNew; - - // the previous log target - wxLog *m_logOld; - - // do we pass the messages to the old logger? - bool m_bPassMessages; - - wxDECLARE_NO_COPY_CLASS(wxLogChain); -}; - -// a chain log target which uses itself as the new logger - -#define wxLogPassThrough wxLogInterposer - -class WXDLLIMPEXP_BASE wxLogInterposer : public wxLogChain -{ -public: - wxLogInterposer(); - -private: - wxDECLARE_NO_COPY_CLASS(wxLogInterposer); -}; - -// a temporary interposer which doesn't destroy the old log target -// (calls DetachOldLog) - -class WXDLLIMPEXP_BASE wxLogInterposerTemp : public wxLogChain -{ -public: - wxLogInterposerTemp(); - -private: - wxDECLARE_NO_COPY_CLASS(wxLogInterposerTemp); -}; - -#if wxUSE_GUI - // include GUI log targets: - #include "wx/generic/logg.h" -#endif // wxUSE_GUI - -// ---------------------------------------------------------------------------- -// wxLogger -// ---------------------------------------------------------------------------- - -// wxLogger is a helper class used by wxLogXXX() functions implementation, -// don't use it directly as it's experimental and subject to change (OTOH it -// might become public in the future if it's deemed to be useful enough) - -// contains information about the context from which a log message originates -// and provides Log() vararg method which forwards to wxLog::OnLog() and passes -// this context to it -class wxLogger -{ -public: - // ctor takes the basic information about the log record - wxLogger(wxLogLevel level, - const char *filename, - int line, - const char *func, - const char *component) - : m_level(level), - m_info(filename, line, func, component) - { - } - - // store extra data in our log record and return this object itself (so - // that further calls to its functions could be chained) - template <typename T> - wxLogger& Store(const wxString& key, T val) - { - m_info.StoreValue(key, val); - return *this; - } - - // hack for "overloaded" wxLogXXX() functions: calling this method - // indicates that we may have an extra first argument preceding the format - // string and that if we do have it, we should store it in m_info using the - // given key (while by default 0 value will be used) - wxLogger& MaybeStore(const wxString& key, wxUIntPtr value = 0) - { - wxASSERT_MSG( m_optKey.empty(), "can only have one optional value" ); - m_optKey = key; - - m_info.StoreValue(key, value); - return *this; - } - - - // non-vararg function used by wxVLogXXX(): - - // log the message at the level specified in the ctor if this log message - // is enabled - void LogV(const wxString& format, va_list argptr) - { - // remember that fatal errors can't be disabled - if ( m_level == wxLOG_FatalError || - wxLog::IsLevelEnabled(m_level, m_info.component) ) - DoCallOnLog(format, argptr); - } - - // overloads used by functions with optional leading arguments (whose - // values are stored in the key passed to MaybeStore()) - void LogV(long num, const wxString& format, va_list argptr) - { - Store(m_optKey, num); - - LogV(format, argptr); - } - - void LogV(void *ptr, const wxString& format, va_list argptr) - { - Store(m_optKey, wxPtrToUInt(ptr)); - - LogV(format, argptr); - } - - void LogVTrace(const wxString& mask, const wxString& format, va_list argptr) - { - if ( !wxLog::IsAllowedTraceMask(mask) ) - return; - - Store(wxLOG_KEY_TRACE_MASK, mask); - - LogV(format, argptr); - } - - - // vararg functions used by wxLogXXX(): - - // will log the message at the level specified in the ctor - // - // notice that this function supposes that the caller already checked that - // the level was enabled and does no checks itself - WX_DEFINE_VARARG_FUNC_VOID - ( - Log, - 1, (const wxFormatString&), - DoLog, DoLogUtf8 - ) - - // same as Log() but with an extra numeric or pointer parameters: this is - // used to pass an optional value by storing it in m_info under the name - // passed to MaybeStore() and is required to support "overloaded" versions - // of wxLogStatus() and wxLogSysError() - WX_DEFINE_VARARG_FUNC_VOID - ( - Log, - 2, (long, const wxFormatString&), - DoLogWithNum, DoLogWithNumUtf8 - ) - - // unfortunately we can't use "void *" here as we get overload ambiguities - // with Log(wxFormatString, ...) when the first argument is a "char *" or - // "wchar_t *" then -- so we only allow passing wxObject here, which is - // ugly but fine in practice as this overload is only used by wxLogStatus() - // whose first argument is a wxFrame - WX_DEFINE_VARARG_FUNC_VOID - ( - Log, - 2, (wxObject *, const wxFormatString&), - DoLogWithPtr, DoLogWithPtrUtf8 - ) - - // log the message at the level specified as its first argument - // - // as the macros don't have access to the level argument in this case, this - // function does check that the level is enabled itself - WX_DEFINE_VARARG_FUNC_VOID - ( - LogAtLevel, - 2, (wxLogLevel, const wxFormatString&), - DoLogAtLevel, DoLogAtLevelUtf8 - ) - - // special versions for wxLogTrace() which is passed either string or - // integer mask as first argument determining whether the message should be - // logged or not - WX_DEFINE_VARARG_FUNC_VOID - ( - LogTrace, - 2, (const wxString&, const wxFormatString&), - DoLogTrace, DoLogTraceUtf8 - ) - -#if WXWIN_COMPATIBILITY_2_8 - WX_DEFINE_VARARG_FUNC_VOID - ( - LogTrace, - 2, (wxTraceMask, const wxFormatString&), - DoLogTraceMask, DoLogTraceMaskUtf8 - ) -#endif // WXWIN_COMPATIBILITY_2_8 - -private: -#if !wxUSE_UTF8_LOCALE_ONLY - void DoLog(const wxChar *format, ...) - { - va_list argptr; - va_start(argptr, format); - DoCallOnLog(format, argptr); - va_end(argptr); - } - - void DoLogWithNum(long num, const wxChar *format, ...) - { - Store(m_optKey, num); - - va_list argptr; - va_start(argptr, format); - DoCallOnLog(format, argptr); - va_end(argptr); - } - - void DoLogWithPtr(void *ptr, const wxChar *format, ...) - { - Store(m_optKey, wxPtrToUInt(ptr)); - - va_list argptr; - va_start(argptr, format); - DoCallOnLog(format, argptr); - va_end(argptr); - } - - void DoLogAtLevel(wxLogLevel level, const wxChar *format, ...) - { - if ( !wxLog::IsLevelEnabled(level, m_info.component) ) - return; - - va_list argptr; - va_start(argptr, format); - DoCallOnLog(level, format, argptr); - va_end(argptr); - } - - void DoLogTrace(const wxString& mask, const wxChar *format, ...) - { - if ( !wxLog::IsAllowedTraceMask(mask) ) - return; - - Store(wxLOG_KEY_TRACE_MASK, mask); - - va_list argptr; - va_start(argptr, format); - DoCallOnLog(format, argptr); - va_end(argptr); - } - -#if WXWIN_COMPATIBILITY_2_8 - void DoLogTraceMask(wxTraceMask mask, const wxChar *format, ...) - { - if ( (wxLog::GetTraceMask() & mask) != mask ) - return; - - Store(wxLOG_KEY_TRACE_MASK, mask); - - va_list argptr; - va_start(argptr, format); - DoCallOnLog(format, argptr); - va_end(argptr); - } -#endif // WXWIN_COMPATIBILITY_2_8 -#endif // !wxUSE_UTF8_LOCALE_ONLY - -#if wxUSE_UNICODE_UTF8 - void DoLogUtf8(const char *format, ...) - { - va_list argptr; - va_start(argptr, format); - DoCallOnLog(format, argptr); - va_end(argptr); - } - - void DoLogWithNumUtf8(long num, const char *format, ...) - { - Store(m_optKey, num); - - va_list argptr; - va_start(argptr, format); - DoCallOnLog(format, argptr); - va_end(argptr); - } - - void DoLogWithPtrUtf8(void *ptr, const char *format, ...) - { - Store(m_optKey, wxPtrToUInt(ptr)); - - va_list argptr; - va_start(argptr, format); - DoCallOnLog(format, argptr); - va_end(argptr); - } - - void DoLogAtLevelUtf8(wxLogLevel level, const char *format, ...) - { - if ( !wxLog::IsLevelEnabled(level, m_info.component) ) - return; - - va_list argptr; - va_start(argptr, format); - DoCallOnLog(level, format, argptr); - va_end(argptr); - } - - void DoLogTraceUtf8(const wxString& mask, const char *format, ...) - { - if ( !wxLog::IsAllowedTraceMask(mask) ) - return; - - Store(wxLOG_KEY_TRACE_MASK, mask); - - va_list argptr; - va_start(argptr, format); - DoCallOnLog(format, argptr); - va_end(argptr); - } - -#if WXWIN_COMPATIBILITY_2_8 - void DoLogTraceMaskUtf8(wxTraceMask mask, const char *format, ...) - { - if ( (wxLog::GetTraceMask() & mask) != mask ) - return; - - Store(wxLOG_KEY_TRACE_MASK, mask); - - va_list argptr; - va_start(argptr, format); - DoCallOnLog(format, argptr); - va_end(argptr); - } -#endif // WXWIN_COMPATIBILITY_2_8 -#endif // wxUSE_UNICODE_UTF8 - - void DoCallOnLog(wxLogLevel level, const wxString& format, va_list argptr) - { - wxLog::OnLog(level, wxString::FormatV(format, argptr), m_info); - } - - void DoCallOnLog(const wxString& format, va_list argptr) - { - DoCallOnLog(m_level, format, argptr); - } - - - const wxLogLevel m_level; - wxLogRecordInfo m_info; - - wxString m_optKey; - - wxDECLARE_NO_COPY_CLASS(wxLogger); -}; - -// ============================================================================ -// global functions -// ============================================================================ - -// ---------------------------------------------------------------------------- -// get error code/error message from system in a portable way -// ---------------------------------------------------------------------------- - -// return the last system error code -WXDLLIMPEXP_BASE unsigned long wxSysErrorCode(); - -// return the error message for given (or last if 0) error code -WXDLLIMPEXP_BASE const wxChar* wxSysErrorMsg(unsigned long nErrCode = 0); - -// ---------------------------------------------------------------------------- -// define wxLog<level>() functions which can be used by application instead of -// stdio, iostream &c for log messages for easy redirection -// ---------------------------------------------------------------------------- - -/* - The code below is unreadable because it (unfortunately unavoidably) - contains a lot of macro magic but all it does is to define wxLogXXX() such - that you can call them as vararg functions to log a message at the - corresponding level. - - More precisely, it defines: - - - wxLog{FatalError,Error,Warning,Message,Verbose,Debug}() functions - taking the format string and additional vararg arguments if needed. - - wxLogGeneric(wxLogLevel level, const wxString& format, ...) which - takes the log level explicitly. - - wxLogSysError(const wxString& format, ...) and wxLogSysError(long - err, const wxString& format, ...) which log a wxLOG_Error severity - message with the error message corresponding to the system error code - err or the last error. - - wxLogStatus(const wxString& format, ...) which logs the message into - the status bar of the main application window and its overload - wxLogStatus(wxFrame *frame, const wxString& format, ...) which logs it - into the status bar of the specified frame. - - wxLogTrace(Mask mask, const wxString& format, ...) which only logs - the message is the specified mask is enabled. This comes in two kinds: - Mask can be a wxString or a long. Both are deprecated. - - In addition, wxVLogXXX() versions of all the functions above are also - defined. They take a va_list argument instead of "...". - */ - -// creates wxLogger object for the current location -#define wxMAKE_LOGGER(level) \ - wxLogger(wxLOG_##level, __FILE__, __LINE__, __WXFUNCTION__, wxLOG_COMPONENT) - -// this macro generates the expression which logs whatever follows it in -// parentheses at the level specified as argument -#define wxDO_LOG(level) wxMAKE_LOGGER(level).Log - -// this is the non-vararg equivalent -#define wxDO_LOGV(level, format, argptr) \ - wxMAKE_LOGGER(level).LogV(format, argptr) - -// this macro declares wxLog<level>() macro which logs whatever follows it if -// logging at specified level is enabled (notice that if it is false, the -// following arguments are not even evaluated which is good as it avoids -// unnecessary overhead) -// -// Note: the strange (because executing at most once) for() loop because we -// must arrange for wxDO_LOG() to be at the end of the macro and using a -// more natural "if (IsLevelEnabled()) wxDO_LOG()" would result in wrong -// behaviour for the following code ("else" would bind to the wrong "if"): -// -// if ( cond ) -// wxLogError("!!!"); -// else -// ... -// -// See also #11829 for the problems with other simpler approaches, -// notably the need for two macros due to buggy __LINE__ in MSVC. -#define wxDO_LOG_IF_ENABLED_HELPER(level, loopvar) \ - for ( bool loopvar = false; \ - !loopvar && wxLog::IsLevelEnabled(wxLOG_##level, wxLOG_COMPONENT); \ - loopvar = true ) \ - wxDO_LOG(level) - -#define wxDO_LOG_IF_ENABLED(level) \ - wxDO_LOG_IF_ENABLED_HELPER(level, wxMAKE_UNIQUE_NAME(wxlogcheck)) - -// wxLogFatalError() is special as it can't be disabled -#define wxLogFatalError wxDO_LOG(FatalError) -#define wxVLogFatalError(format, argptr) wxDO_LOGV(FatalError, format, argptr) - -#define wxLogError wxDO_LOG_IF_ENABLED(Error) -#define wxVLogError(format, argptr) wxDO_LOGV(Error, format, argptr) - -#define wxLogWarning wxDO_LOG_IF_ENABLED(Warning) -#define wxVLogWarning(format, argptr) wxDO_LOGV(Warning, format, argptr) - -#define wxLogMessage wxDO_LOG_IF_ENABLED(Message) -#define wxVLogMessage(format, argptr) wxDO_LOGV(Message, format, argptr) - -// this one is special as it only logs if we're in verbose mode -#define wxLogVerbose \ - if ( !(wxLog::IsLevelEnabled(wxLOG_Info, wxLOG_COMPONENT) && \ - wxLog::GetVerbose()) ) \ - {} \ - else \ - wxDO_LOG(Info) -#define wxVLogVerbose(format, argptr) \ - if ( !(wxLog::IsLevelEnabled(wxLOG_Info, wxLOG_COMPONENT) && \ - wxLog::GetVerbose()) ) \ - {} \ - else \ - wxDO_LOGV(Info, format, argptr) - -// deprecated synonyms for wxLogVerbose() and wxVLogVerbose() -#define wxLogInfo wxLogVerbose -#define wxVLogInfo wxVLogVerbose - - -// another special case: the level is passed as first argument of the function -// and so is not available to the macro -// -// notice that because of this, arguments of wxLogGeneric() are currently -// always evaluated, unlike for the other log functions -#define wxLogGeneric wxMAKE_LOGGER(Max).LogAtLevel -#define wxVLogGeneric(level, format, argptr) \ - if ( !wxLog::IsLevelEnabled(wxLOG_##level, wxLOG_COMPONENT) ) \ - {} \ - else \ - wxDO_LOGV(level, format, argptr) - - -// wxLogSysError() needs to stash the error code value in the log record info -// so it needs special handling too; additional complications arise because the -// error code may or not be present as the first argument -// -// notice that we unfortunately can't avoid the call to wxSysErrorCode() even -// though it may be unneeded if an explicit error code is passed to us because -// the message might not be logged immediately (e.g. it could be queued for -// logging from the main thread later) and so we can't to wait until it is -// logged to determine whether we have last error or not as it will be too late -// and it will have changed already by then (in fact it even changes when -// wxString::Format() is called because of vsnprintf() inside it so it can -// change even much sooner) -#define wxLOG_KEY_SYS_ERROR_CODE "wx.sys_error" - -#define wxLogSysError \ - if ( !wxLog::IsLevelEnabled(wxLOG_Error, wxLOG_COMPONENT) ) \ - {} \ - else \ - wxMAKE_LOGGER(Error).MaybeStore(wxLOG_KEY_SYS_ERROR_CODE, \ - wxSysErrorCode()).Log - -// unfortunately we can't have overloaded macros so we can't define versions -// both with and without error code argument and have to rely on LogV() -// overloads in wxLogger to select between them -#define wxVLogSysError \ - wxMAKE_LOGGER(Error).MaybeStore(wxLOG_KEY_SYS_ERROR_CODE, \ - wxSysErrorCode()).LogV - -#if wxUSE_GUI - // wxLogStatus() is similar to wxLogSysError() as it allows to optionally - // specify the frame to which the message should go - #define wxLOG_KEY_FRAME "wx.frame" - - #define wxLogStatus \ - if ( !wxLog::IsLevelEnabled(wxLOG_Status, wxLOG_COMPONENT) ) \ - {} \ - else \ - wxMAKE_LOGGER(Status).MaybeStore(wxLOG_KEY_FRAME).Log - - #define wxVLogStatus \ - wxMAKE_LOGGER(Status).MaybeStore(wxLOG_KEY_FRAME).LogV -#endif // wxUSE_GUI - - -#else // !wxUSE_LOG - -#undef wxUSE_LOG_DEBUG -#define wxUSE_LOG_DEBUG 0 - -#undef wxUSE_LOG_TRACE -#define wxUSE_LOG_TRACE 0 - -// define macros for defining log functions which do nothing at all -#define wxDEFINE_EMPTY_LOG_FUNCTION(level) \ - WX_DEFINE_VARARG_FUNC_NOP(wxLog##level, 1, (const wxFormatString&)) \ - inline void wxVLog##level(const wxFormatString& WXUNUSED(format), \ - va_list WXUNUSED(argptr)) { } \ - -#define wxDEFINE_EMPTY_LOG_FUNCTION2(level, argclass) \ - WX_DEFINE_VARARG_FUNC_NOP(wxLog##level, 2, (argclass, const wxFormatString&)) \ - inline void wxVLog##level(argclass WXUNUSED(arg), \ - const wxFormatString& WXUNUSED(format), \ - va_list WXUNUSED(argptr)) {} - -wxDEFINE_EMPTY_LOG_FUNCTION(FatalError); -wxDEFINE_EMPTY_LOG_FUNCTION(Error); -wxDEFINE_EMPTY_LOG_FUNCTION(SysError); -wxDEFINE_EMPTY_LOG_FUNCTION2(SysError, long); -wxDEFINE_EMPTY_LOG_FUNCTION(Warning); -wxDEFINE_EMPTY_LOG_FUNCTION(Message); -wxDEFINE_EMPTY_LOG_FUNCTION(Info); -wxDEFINE_EMPTY_LOG_FUNCTION(Verbose); - -wxDEFINE_EMPTY_LOG_FUNCTION2(Generic, wxLogLevel); - -#if wxUSE_GUI - wxDEFINE_EMPTY_LOG_FUNCTION(Status); - wxDEFINE_EMPTY_LOG_FUNCTION2(Status, wxFrame *); -#endif // wxUSE_GUI - -// Empty Class to fake wxLogNull -class WXDLLIMPEXP_BASE wxLogNull -{ -public: - wxLogNull() { } -}; - -// Dummy macros to replace some functions. -#define wxSysErrorCode() (unsigned long)0 -#define wxSysErrorMsg( X ) (const wxChar*)NULL - -// Fake symbolic trace masks... for those that are used frequently -#define wxTRACE_OleCalls wxEmptyString // OLE interface calls - -#endif // wxUSE_LOG/!wxUSE_LOG - - -// debug functions can be completely disabled in optimized builds - -// if these log functions are disabled, we prefer to define them as (empty) -// variadic macros as this completely removes them and their argument -// evaluation from the object code but if this is not supported by compiler we -// use empty inline functions instead (defining them as nothing would result in -// compiler warnings) -// -// note that making wxVLogDebug/Trace() themselves (empty inline) functions is -// a bad idea as some compilers are stupid enough to not inline even empty -// functions if their parameters are complicated enough, but by defining them -// as an empty inline function we ensure that even dumbest compilers optimise -// them away -#ifdef __BORLANDC__ - // but Borland gives "W8019: Code has no effect" for wxLogNop() so we need - // to define it differently for it to avoid these warnings (same problem as - // with wxUnusedVar()) - #define wxLogNop() { } -#else - inline void wxLogNop() { } -#endif - -#if wxUSE_LOG_DEBUG - #define wxLogDebug wxDO_LOG_IF_ENABLED(Debug) - #define wxVLogDebug(format, argptr) wxDO_LOGV(Debug, format, argptr) -#else // !wxUSE_LOG_DEBUG - #define wxVLogDebug(fmt, valist) wxLogNop() - - #ifdef HAVE_VARIADIC_MACROS - #define wxLogDebug(fmt, ...) wxLogNop() - #else // !HAVE_VARIADIC_MACROS - WX_DEFINE_VARARG_FUNC_NOP(wxLogDebug, 1, (const wxFormatString&)) - #endif -#endif // wxUSE_LOG_DEBUG/!wxUSE_LOG_DEBUG - -#if wxUSE_LOG_TRACE - #define wxLogTrace \ - if ( !wxLog::IsLevelEnabled(wxLOG_Trace, wxLOG_COMPONENT) ) \ - {} \ - else \ - wxMAKE_LOGGER(Trace).LogTrace - #define wxVLogTrace \ - if ( !wxLog::IsLevelEnabled(wxLOG_Trace, wxLOG_COMPONENT) ) \ - {} \ - else \ - wxMAKE_LOGGER(Trace).LogVTrace -#else // !wxUSE_LOG_TRACE - #define wxVLogTrace(mask, fmt, valist) wxLogNop() - - #ifdef HAVE_VARIADIC_MACROS - #define wxLogTrace(mask, fmt, ...) wxLogNop() - #else // !HAVE_VARIADIC_MACROS - #if WXWIN_COMPATIBILITY_2_8 - WX_DEFINE_VARARG_FUNC_NOP(wxLogTrace, 2, (wxTraceMask, const wxFormatString&)) - #endif - WX_DEFINE_VARARG_FUNC_NOP(wxLogTrace, 2, (const wxString&, const wxFormatString&)) - #endif // HAVE_VARIADIC_MACROS/!HAVE_VARIADIC_MACROS -#endif // wxUSE_LOG_TRACE/!wxUSE_LOG_TRACE - -// wxLogFatalError helper: show the (fatal) error to the user in a safe way, -// i.e. without using wxMessageBox() for example because it could crash -void WXDLLIMPEXP_BASE -wxSafeShowMessage(const wxString& title, const wxString& text); - -// ---------------------------------------------------------------------------- -// debug only logging functions: use them with API name and error code -// ---------------------------------------------------------------------------- - -#if wxUSE_LOG_DEBUG - // make life easier for people using VC++ IDE: clicking on the message - // will take us immediately to the place of the failed API -#ifdef __VISUALC__ - #define wxLogApiError(api, rc) \ - wxLogDebug(wxT("%s(%d): '%s' failed with error 0x%08lx (%s)."), \ - __FILE__, __LINE__, api, \ - (long)rc, wxSysErrorMsg(rc)) -#else // !VC++ - #define wxLogApiError(api, rc) \ - wxLogDebug(wxT("In file %s at line %d: '%s' failed with ") \ - wxT("error 0x%08lx (%s)."), \ - __FILE__, __LINE__, api, \ - (long)rc, wxSysErrorMsg(rc)) -#endif // VC++/!VC++ - - #define wxLogLastError(api) wxLogApiError(api, wxSysErrorCode()) - -#else // !wxUSE_LOG_DEBUG - #define wxLogApiError(api, err) wxLogNop() - #define wxLogLastError(api) wxLogNop() -#endif // wxUSE_LOG_DEBUG/!wxUSE_LOG_DEBUG - -// macro which disables debug logging in release builds: this is done by -// default by wxIMPLEMENT_APP() so usually it doesn't need to be used explicitly -#if defined(NDEBUG) && wxUSE_LOG_DEBUG - #define wxDISABLE_DEBUG_LOGGING_IN_RELEASE_BUILD() \ - wxLog::SetLogLevel(wxLOG_Info) -#else // !NDEBUG - #define wxDISABLE_DEBUG_LOGGING_IN_RELEASE_BUILD() -#endif // NDEBUG/!NDEBUG - -#endif // _WX_LOG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/longlong.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/longlong.h deleted file mode 100644 index f28a3635..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/longlong.h +++ /dev/null @@ -1,1131 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/longlong.h -// Purpose: declaration of wxLongLong class - best implementation of a 64 -// bit integer for the current platform. -// Author: Jeffrey C. Ollie <jeff@ollie.clive.ia.us>, Vadim Zeitlin -// Modified by: -// Created: 10.02.99 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LONGLONG_H -#define _WX_LONGLONG_H - -#include "wx/defs.h" - -#if wxUSE_LONGLONG - -#include "wx/string.h" - -#include <limits.h> // for LONG_MAX - -// define this to compile wxLongLongWx in "test" mode: the results of all -// calculations will be compared with the real results taken from -// wxLongLongNative -- this is extremely useful to find the bugs in -// wxLongLongWx class! - -// #define wxLONGLONG_TEST_MODE - -#ifdef wxLONGLONG_TEST_MODE - #define wxUSE_LONGLONG_WX 1 - #define wxUSE_LONGLONG_NATIVE 1 -#endif // wxLONGLONG_TEST_MODE - -// ---------------------------------------------------------------------------- -// decide upon which class we will use -// ---------------------------------------------------------------------------- - -#ifndef wxLongLong_t - // both warning and pragma warning are not portable, but at least an - // unknown pragma should never be an error -- except that, actually, some - // broken compilers don't like it, so we have to disable it in this case - // <sigh> - #ifdef __GNUC__ - #warning "Your compiler does not appear to support 64 bit "\ - "integers, using emulation class instead.\n" \ - "Please report your compiler version to " \ - "wx-dev@googlegroups.com!" - #else - #pragma warning "Your compiler does not appear to support 64 bit "\ - "integers, using emulation class instead.\n" \ - "Please report your compiler version to " \ - "wx-dev@googlegroups.com!" - #endif - - #define wxUSE_LONGLONG_WX 1 -#endif // compiler - -// the user may predefine wxUSE_LONGLONG_NATIVE and/or wxUSE_LONGLONG_NATIVE -// to disable automatic testing (useful for the test program which defines -// both classes) but by default we only use one class -#if (defined(wxUSE_LONGLONG_WX) && wxUSE_LONGLONG_WX) || !defined(wxLongLong_t) - // don't use both classes unless wxUSE_LONGLONG_NATIVE was explicitly set: - // this is useful in test programs and only there - #ifndef wxUSE_LONGLONG_NATIVE - #define wxUSE_LONGLONG_NATIVE 0 - #endif - - class WXDLLIMPEXP_FWD_BASE wxLongLongWx; - class WXDLLIMPEXP_FWD_BASE wxULongLongWx; -#if defined(__VISUALC__) && !defined(__WIN32__) - #define wxLongLong wxLongLongWx - #define wxULongLong wxULongLongWx -#else - typedef wxLongLongWx wxLongLong; - typedef wxULongLongWx wxULongLong; -#endif - -#else - // if nothing is defined, use native implementation by default, of course - #ifndef wxUSE_LONGLONG_NATIVE - #define wxUSE_LONGLONG_NATIVE 1 - #endif -#endif - -#ifndef wxUSE_LONGLONG_WX - #define wxUSE_LONGLONG_WX 0 - class WXDLLIMPEXP_FWD_BASE wxLongLongNative; - class WXDLLIMPEXP_FWD_BASE wxULongLongNative; - typedef wxLongLongNative wxLongLong; - typedef wxULongLongNative wxULongLong; -#endif - -// NB: if both wxUSE_LONGLONG_WX and NATIVE are defined, the user code should -// typedef wxLongLong as it wants, we don't do it - -// ---------------------------------------------------------------------------- -// choose the appropriate class -// ---------------------------------------------------------------------------- - -// we use iostream for wxLongLong output -#include "wx/iosfwrap.h" - -#if wxUSE_LONGLONG_NATIVE - -class WXDLLIMPEXP_BASE wxLongLongNative -{ -public: - // ctors - // default ctor initializes to 0 - wxLongLongNative() : m_ll(0) { } - // from long long - wxLongLongNative(wxLongLong_t ll) : m_ll(ll) { } - // from 2 longs - wxLongLongNative(wxInt32 hi, wxUint32 lo) - { - // cast to wxLongLong_t first to avoid precision loss! - m_ll = ((wxLongLong_t) hi) << 32; - m_ll |= (wxLongLong_t) lo; - } -#if wxUSE_LONGLONG_WX - wxLongLongNative(wxLongLongWx ll); -#endif - - // default copy ctor is ok - - // no dtor - - // assignment operators - // from native 64 bit integer -#ifndef wxLongLongIsLong - wxLongLongNative& operator=(wxLongLong_t ll) - { m_ll = ll; return *this; } - wxLongLongNative& operator=(wxULongLong_t ll) - { m_ll = ll; return *this; } -#endif // !wxLongLongNative - wxLongLongNative& operator=(const wxULongLongNative &ll); - wxLongLongNative& operator=(int l) - { m_ll = l; return *this; } - wxLongLongNative& operator=(long l) - { m_ll = l; return *this; } - wxLongLongNative& operator=(unsigned int l) - { m_ll = l; return *this; } - wxLongLongNative& operator=(unsigned long l) - { m_ll = l; return *this; } -#if wxUSE_LONGLONG_WX - wxLongLongNative& operator=(wxLongLongWx ll); - wxLongLongNative& operator=(const class wxULongLongWx &ll); -#endif - - - // from double: this one has an explicit name because otherwise we - // would have ambiguity with "ll = int" and also because we don't want - // to have implicit conversions between doubles and wxLongLongs - wxLongLongNative& Assign(double d) - { m_ll = (wxLongLong_t)d; return *this; } - - // assignment operators from wxLongLongNative is ok - - // accessors - // get high part - wxInt32 GetHi() const - { return wx_truncate_cast(wxInt32, m_ll >> 32); } - // get low part - wxUint32 GetLo() const - { return wx_truncate_cast(wxUint32, m_ll); } - - // get absolute value - wxLongLongNative Abs() const { return wxLongLongNative(*this).Abs(); } - wxLongLongNative& Abs() { if ( m_ll < 0 ) m_ll = -m_ll; return *this; } - - // convert to native long long - wxLongLong_t GetValue() const { return m_ll; } - - // convert to long with range checking in debug mode (only!) - long ToLong() const - { - // This assert is useless if long long is the same as long (which is - // the case under the standard Unix LP64 model). -#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - wxASSERT_MSG( (m_ll >= LONG_MIN) && (m_ll <= LONG_MAX), - wxT("wxLongLong to long conversion loss of precision") ); -#endif - - return wx_truncate_cast(long, m_ll); - } - - // convert to double - double ToDouble() const { return wx_truncate_cast(double, m_ll); } - - // don't provide implicit conversion to wxLongLong_t or we will have an - // ambiguity for all arithmetic operations - //operator wxLongLong_t() const { return m_ll; } - - // operations - // addition - wxLongLongNative operator+(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll + ll.m_ll); } - wxLongLongNative& operator+=(const wxLongLongNative& ll) - { m_ll += ll.m_ll; return *this; } - - wxLongLongNative operator+(const wxLongLong_t ll) const - { return wxLongLongNative(m_ll + ll); } - wxLongLongNative& operator+=(const wxLongLong_t ll) - { m_ll += ll; return *this; } - - // pre increment - wxLongLongNative& operator++() - { m_ll++; return *this; } - - // post increment - wxLongLongNative operator++(int) - { wxLongLongNative value(*this); m_ll++; return value; } - - // negation operator - wxLongLongNative operator-() const - { return wxLongLongNative(-m_ll); } - wxLongLongNative& Negate() { m_ll = -m_ll; return *this; } - - // subtraction - wxLongLongNative operator-(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll - ll.m_ll); } - wxLongLongNative& operator-=(const wxLongLongNative& ll) - { m_ll -= ll.m_ll; return *this; } - - wxLongLongNative operator-(const wxLongLong_t ll) const - { return wxLongLongNative(m_ll - ll); } - wxLongLongNative& operator-=(const wxLongLong_t ll) - { m_ll -= ll; return *this; } - - // pre decrement - wxLongLongNative& operator--() - { m_ll--; return *this; } - - // post decrement - wxLongLongNative operator--(int) - { wxLongLongNative value(*this); m_ll--; return value; } - - // shifts - // left shift - wxLongLongNative operator<<(int shift) const - { return wxLongLongNative(m_ll << shift); } - wxLongLongNative& operator<<=(int shift) - { m_ll <<= shift; return *this; } - - // right shift - wxLongLongNative operator>>(int shift) const - { return wxLongLongNative(m_ll >> shift); } - wxLongLongNative& operator>>=(int shift) - { m_ll >>= shift; return *this; } - - // bitwise operators - wxLongLongNative operator&(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll & ll.m_ll); } - wxLongLongNative& operator&=(const wxLongLongNative& ll) - { m_ll &= ll.m_ll; return *this; } - - wxLongLongNative operator|(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll | ll.m_ll); } - wxLongLongNative& operator|=(const wxLongLongNative& ll) - { m_ll |= ll.m_ll; return *this; } - - wxLongLongNative operator^(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll ^ ll.m_ll); } - wxLongLongNative& operator^=(const wxLongLongNative& ll) - { m_ll ^= ll.m_ll; return *this; } - - // multiplication/division - wxLongLongNative operator*(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll * ll.m_ll); } - wxLongLongNative operator*(long l) const - { return wxLongLongNative(m_ll * l); } - wxLongLongNative& operator*=(const wxLongLongNative& ll) - { m_ll *= ll.m_ll; return *this; } - wxLongLongNative& operator*=(long l) - { m_ll *= l; return *this; } - - wxLongLongNative operator/(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll / ll.m_ll); } - wxLongLongNative operator/(long l) const - { return wxLongLongNative(m_ll / l); } - wxLongLongNative& operator/=(const wxLongLongNative& ll) - { m_ll /= ll.m_ll; return *this; } - wxLongLongNative& operator/=(long l) - { m_ll /= l; return *this; } - - wxLongLongNative operator%(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll % ll.m_ll); } - wxLongLongNative operator%(long l) const - { return wxLongLongNative(m_ll % l); } - - // comparison - bool operator==(const wxLongLongNative& ll) const - { return m_ll == ll.m_ll; } - bool operator==(long l) const - { return m_ll == l; } - bool operator!=(const wxLongLongNative& ll) const - { return m_ll != ll.m_ll; } - bool operator!=(long l) const - { return m_ll != l; } - bool operator<(const wxLongLongNative& ll) const - { return m_ll < ll.m_ll; } - bool operator<(long l) const - { return m_ll < l; } - bool operator>(const wxLongLongNative& ll) const - { return m_ll > ll.m_ll; } - bool operator>(long l) const - { return m_ll > l; } - bool operator<=(const wxLongLongNative& ll) const - { return m_ll <= ll.m_ll; } - bool operator<=(long l) const - { return m_ll <= l; } - bool operator>=(const wxLongLongNative& ll) const - { return m_ll >= ll.m_ll; } - bool operator>=(long l) const - { return m_ll >= l; } - - // miscellaneous - - // return the string representation of this number - wxString ToString() const; - - // conversion to byte array: returns a pointer to static buffer! - void *asArray() const; - -#if wxUSE_STD_IOSTREAM - // input/output - friend WXDLLIMPEXP_BASE - wxSTD ostream& operator<<(wxSTD ostream&, const wxLongLongNative&); -#endif - - friend WXDLLIMPEXP_BASE - wxString& operator<<(wxString&, const wxLongLongNative&); - -#if wxUSE_STREAMS - friend WXDLLIMPEXP_BASE - class wxTextOutputStream& operator<<(class wxTextOutputStream&, const wxLongLongNative&); - friend WXDLLIMPEXP_BASE - class wxTextInputStream& operator>>(class wxTextInputStream&, wxLongLongNative&); -#endif - -private: - wxLongLong_t m_ll; -}; - - -class WXDLLIMPEXP_BASE wxULongLongNative -{ -public: - // ctors - // default ctor initializes to 0 - wxULongLongNative() : m_ll(0) { } - // from long long - wxULongLongNative(wxULongLong_t ll) : m_ll(ll) { } - // from 2 longs - wxULongLongNative(wxUint32 hi, wxUint32 lo) : m_ll(0) - { - // cast to wxLongLong_t first to avoid precision loss! - m_ll = ((wxULongLong_t) hi) << 32; - m_ll |= (wxULongLong_t) lo; - } - -#if wxUSE_LONGLONG_WX - wxULongLongNative(const class wxULongLongWx &ll); -#endif - - // default copy ctor is ok - - // no dtor - - // assignment operators - // from native 64 bit integer -#ifndef wxLongLongIsLong - wxULongLongNative& operator=(wxULongLong_t ll) - { m_ll = ll; return *this; } - wxULongLongNative& operator=(wxLongLong_t ll) - { m_ll = ll; return *this; } -#endif // !wxLongLongNative - wxULongLongNative& operator=(int l) - { m_ll = l; return *this; } - wxULongLongNative& operator=(long l) - { m_ll = l; return *this; } - wxULongLongNative& operator=(unsigned int l) - { m_ll = l; return *this; } - wxULongLongNative& operator=(unsigned long l) - { m_ll = l; return *this; } - wxULongLongNative& operator=(const wxLongLongNative &ll) - { m_ll = ll.GetValue(); return *this; } -#if wxUSE_LONGLONG_WX - wxULongLongNative& operator=(wxLongLongWx ll); - wxULongLongNative& operator=(const class wxULongLongWx &ll); -#endif - - // assignment operators from wxULongLongNative is ok - - // accessors - // get high part - wxUint32 GetHi() const - { return wx_truncate_cast(wxUint32, m_ll >> 32); } - // get low part - wxUint32 GetLo() const - { return wx_truncate_cast(wxUint32, m_ll); } - - // convert to native ulong long - wxULongLong_t GetValue() const { return m_ll; } - - // convert to ulong with range checking in debug mode (only!) - unsigned long ToULong() const - { - wxASSERT_MSG( m_ll <= ULONG_MAX, - wxT("wxULongLong to long conversion loss of precision") ); - - return wx_truncate_cast(unsigned long, m_ll); - } - - // convert to double - double ToDouble() const { return wx_truncate_cast(double, m_ll); } - - // operations - // addition - wxULongLongNative operator+(const wxULongLongNative& ll) const - { return wxULongLongNative(m_ll + ll.m_ll); } - wxULongLongNative& operator+=(const wxULongLongNative& ll) - { m_ll += ll.m_ll; return *this; } - - wxULongLongNative operator+(const wxULongLong_t ll) const - { return wxULongLongNative(m_ll + ll); } - wxULongLongNative& operator+=(const wxULongLong_t ll) - { m_ll += ll; return *this; } - - // pre increment - wxULongLongNative& operator++() - { m_ll++; return *this; } - - // post increment - wxULongLongNative operator++(int) - { wxULongLongNative value(*this); m_ll++; return value; } - - // subtraction - wxULongLongNative operator-(const wxULongLongNative& ll) const - { return wxULongLongNative(m_ll - ll.m_ll); } - wxULongLongNative& operator-=(const wxULongLongNative& ll) - { m_ll -= ll.m_ll; return *this; } - - wxULongLongNative operator-(const wxULongLong_t ll) const - { return wxULongLongNative(m_ll - ll); } - wxULongLongNative& operator-=(const wxULongLong_t ll) - { m_ll -= ll; return *this; } - - // pre decrement - wxULongLongNative& operator--() - { m_ll--; return *this; } - - // post decrement - wxULongLongNative operator--(int) - { wxULongLongNative value(*this); m_ll--; return value; } - - // shifts - // left shift - wxULongLongNative operator<<(int shift) const - { return wxULongLongNative(m_ll << shift); } - wxULongLongNative& operator<<=(int shift) - { m_ll <<= shift; return *this; } - - // right shift - wxULongLongNative operator>>(int shift) const - { return wxULongLongNative(m_ll >> shift); } - wxULongLongNative& operator>>=(int shift) - { m_ll >>= shift; return *this; } - - // bitwise operators - wxULongLongNative operator&(const wxULongLongNative& ll) const - { return wxULongLongNative(m_ll & ll.m_ll); } - wxULongLongNative& operator&=(const wxULongLongNative& ll) - { m_ll &= ll.m_ll; return *this; } - - wxULongLongNative operator|(const wxULongLongNative& ll) const - { return wxULongLongNative(m_ll | ll.m_ll); } - wxULongLongNative& operator|=(const wxULongLongNative& ll) - { m_ll |= ll.m_ll; return *this; } - - wxULongLongNative operator^(const wxULongLongNative& ll) const - { return wxULongLongNative(m_ll ^ ll.m_ll); } - wxULongLongNative& operator^=(const wxULongLongNative& ll) - { m_ll ^= ll.m_ll; return *this; } - - // multiplication/division - wxULongLongNative operator*(const wxULongLongNative& ll) const - { return wxULongLongNative(m_ll * ll.m_ll); } - wxULongLongNative operator*(unsigned long l) const - { return wxULongLongNative(m_ll * l); } - wxULongLongNative& operator*=(const wxULongLongNative& ll) - { m_ll *= ll.m_ll; return *this; } - wxULongLongNative& operator*=(unsigned long l) - { m_ll *= l; return *this; } - - wxULongLongNative operator/(const wxULongLongNative& ll) const - { return wxULongLongNative(m_ll / ll.m_ll); } - wxULongLongNative operator/(unsigned long l) const - { return wxULongLongNative(m_ll / l); } - wxULongLongNative& operator/=(const wxULongLongNative& ll) - { m_ll /= ll.m_ll; return *this; } - wxULongLongNative& operator/=(unsigned long l) - { m_ll /= l; return *this; } - - wxULongLongNative operator%(const wxULongLongNative& ll) const - { return wxULongLongNative(m_ll % ll.m_ll); } - wxULongLongNative operator%(unsigned long l) const - { return wxULongLongNative(m_ll % l); } - - // comparison - bool operator==(const wxULongLongNative& ll) const - { return m_ll == ll.m_ll; } - bool operator==(unsigned long l) const - { return m_ll == l; } - bool operator!=(const wxULongLongNative& ll) const - { return m_ll != ll.m_ll; } - bool operator!=(unsigned long l) const - { return m_ll != l; } - bool operator<(const wxULongLongNative& ll) const - { return m_ll < ll.m_ll; } - bool operator<(unsigned long l) const - { return m_ll < l; } - bool operator>(const wxULongLongNative& ll) const - { return m_ll > ll.m_ll; } - bool operator>(unsigned long l) const - { return m_ll > l; } - bool operator<=(const wxULongLongNative& ll) const - { return m_ll <= ll.m_ll; } - bool operator<=(unsigned long l) const - { return m_ll <= l; } - bool operator>=(const wxULongLongNative& ll) const - { return m_ll >= ll.m_ll; } - bool operator>=(unsigned long l) const - { return m_ll >= l; } - - // miscellaneous - - // return the string representation of this number - wxString ToString() const; - - // conversion to byte array: returns a pointer to static buffer! - void *asArray() const; - -#if wxUSE_STD_IOSTREAM - // input/output - friend WXDLLIMPEXP_BASE - wxSTD ostream& operator<<(wxSTD ostream&, const wxULongLongNative&); -#endif - - friend WXDLLIMPEXP_BASE - wxString& operator<<(wxString&, const wxULongLongNative&); - -#if wxUSE_STREAMS - friend WXDLLIMPEXP_BASE - class wxTextOutputStream& operator<<(class wxTextOutputStream&, const wxULongLongNative&); - friend WXDLLIMPEXP_BASE - class wxTextInputStream& operator>>(class wxTextInputStream&, wxULongLongNative&); -#endif - -private: - wxULongLong_t m_ll; -}; - -inline -wxLongLongNative& wxLongLongNative::operator=(const wxULongLongNative &ll) -{ - m_ll = ll.GetValue(); - return *this; -} - -#endif // wxUSE_LONGLONG_NATIVE - -#if wxUSE_LONGLONG_WX - -class WXDLLIMPEXP_BASE wxLongLongWx -{ -public: - // ctors - // default ctor initializes to 0 - wxLongLongWx() - { - m_lo = m_hi = 0; - -#ifdef wxLONGLONG_TEST_MODE - m_ll = 0; - - Check(); -#endif // wxLONGLONG_TEST_MODE - } - // from long - wxLongLongWx(long l) { *this = l; } - // from 2 longs - wxLongLongWx(long hi, unsigned long lo) - { - m_hi = hi; - m_lo = lo; - -#ifdef wxLONGLONG_TEST_MODE - m_ll = hi; - m_ll <<= 32; - m_ll |= lo; - - Check(); -#endif // wxLONGLONG_TEST_MODE - } - - // default copy ctor is ok in both cases - - // no dtor - - // assignment operators - // from long - wxLongLongWx& operator=(long l) - { - m_lo = l; - m_hi = (l < 0 ? -1l : 0l); - -#ifdef wxLONGLONG_TEST_MODE - m_ll = l; - - Check(); -#endif // wxLONGLONG_TEST_MODE - - return *this; - } - // from int - wxLongLongWx& operator=(int l) - { - return operator=((long)l); - } - - wxLongLongWx& operator=(unsigned long l) - { - m_lo = l; - m_hi = 0; - -#ifdef wxLONGLONG_TEST_MODE - m_ll = l; - - Check(); -#endif // wxLONGLONG_TEST_MODE - - return *this; - } - - wxLongLongWx& operator=(unsigned int l) - { - return operator=((unsigned long)l); - } - - wxLongLongWx& operator=(const class wxULongLongWx &ll); - - // from double - wxLongLongWx& Assign(double d); - // can't have assignment operator from 2 longs - - // accessors - // get high part - long GetHi() const { return m_hi; } - // get low part - unsigned long GetLo() const { return m_lo; } - - // get absolute value - wxLongLongWx Abs() const { return wxLongLongWx(*this).Abs(); } - wxLongLongWx& Abs() - { - if ( m_hi < 0 ) - m_hi = -m_hi; - -#ifdef wxLONGLONG_TEST_MODE - if ( m_ll < 0 ) - m_ll = -m_ll; - - Check(); -#endif // wxLONGLONG_TEST_MODE - - return *this; - } - - // convert to long with range checking in debug mode (only!) - long ToLong() const - { - wxASSERT_MSG( (m_hi == 0l) || (m_hi == -1l), - wxT("wxLongLong to long conversion loss of precision") ); - - return (long)m_lo; - } - - // convert to double - double ToDouble() const; - - // operations - // addition - wxLongLongWx operator+(const wxLongLongWx& ll) const; - wxLongLongWx& operator+=(const wxLongLongWx& ll); - wxLongLongWx operator+(long l) const; - wxLongLongWx& operator+=(long l); - - // pre increment operator - wxLongLongWx& operator++(); - - // post increment operator - wxLongLongWx& operator++(int) { return ++(*this); } - - // negation operator - wxLongLongWx operator-() const; - wxLongLongWx& Negate(); - - // subraction - wxLongLongWx operator-(const wxLongLongWx& ll) const; - wxLongLongWx& operator-=(const wxLongLongWx& ll); - - // pre decrement operator - wxLongLongWx& operator--(); - - // post decrement operator - wxLongLongWx& operator--(int) { return --(*this); } - - // shifts - // left shift - wxLongLongWx operator<<(int shift) const; - wxLongLongWx& operator<<=(int shift); - - // right shift - wxLongLongWx operator>>(int shift) const; - wxLongLongWx& operator>>=(int shift); - - // bitwise operators - wxLongLongWx operator&(const wxLongLongWx& ll) const; - wxLongLongWx& operator&=(const wxLongLongWx& ll); - wxLongLongWx operator|(const wxLongLongWx& ll) const; - wxLongLongWx& operator|=(const wxLongLongWx& ll); - wxLongLongWx operator^(const wxLongLongWx& ll) const; - wxLongLongWx& operator^=(const wxLongLongWx& ll); - wxLongLongWx operator~() const; - - // comparison - bool operator==(const wxLongLongWx& ll) const - { return m_lo == ll.m_lo && m_hi == ll.m_hi; } -#if wxUSE_LONGLONG_NATIVE - bool operator==(const wxLongLongNative& ll) const - { return m_lo == ll.GetLo() && m_hi == ll.GetHi(); } -#endif - bool operator!=(const wxLongLongWx& ll) const - { return !(*this == ll); } - bool operator<(const wxLongLongWx& ll) const; - bool operator>(const wxLongLongWx& ll) const; - bool operator<=(const wxLongLongWx& ll) const - { return *this < ll || *this == ll; } - bool operator>=(const wxLongLongWx& ll) const - { return *this > ll || *this == ll; } - - bool operator<(long l) const { return *this < wxLongLongWx(l); } - bool operator>(long l) const { return *this > wxLongLongWx(l); } - bool operator==(long l) const - { - return l >= 0 ? (m_hi == 0 && m_lo == (unsigned long)l) - : (m_hi == -1 && m_lo == (unsigned long)l); - } - - bool operator<=(long l) const { return *this < l || *this == l; } - bool operator>=(long l) const { return *this > l || *this == l; } - - // multiplication - wxLongLongWx operator*(const wxLongLongWx& ll) const; - wxLongLongWx& operator*=(const wxLongLongWx& ll); - - // division - wxLongLongWx operator/(const wxLongLongWx& ll) const; - wxLongLongWx& operator/=(const wxLongLongWx& ll); - - wxLongLongWx operator%(const wxLongLongWx& ll) const; - - void Divide(const wxLongLongWx& divisor, - wxLongLongWx& quotient, - wxLongLongWx& remainder) const; - - // input/output - - // return the string representation of this number - wxString ToString() const; - - void *asArray() const; - -#if wxUSE_STD_IOSTREAM - friend WXDLLIMPEXP_BASE - wxSTD ostream& operator<<(wxSTD ostream&, const wxLongLongWx&); -#endif // wxUSE_STD_IOSTREAM - - friend WXDLLIMPEXP_BASE - wxString& operator<<(wxString&, const wxLongLongWx&); - -#if wxUSE_STREAMS - friend WXDLLIMPEXP_BASE - class wxTextOutputStream& operator<<(class wxTextOutputStream&, const wxLongLongWx&); - friend WXDLLIMPEXP_BASE - class wxTextInputStream& operator>>(class wxTextInputStream&, wxLongLongWx&); -#endif - -private: - // long is at least 32 bits, so represent our 64bit number as 2 longs - - long m_hi; // signed bit is in the high part - unsigned long m_lo; - -#ifdef wxLONGLONG_TEST_MODE - void Check() - { - wxASSERT( (m_ll >> 32) == m_hi && (unsigned long)m_ll == m_lo ); - } - - wxLongLong_t m_ll; -#endif // wxLONGLONG_TEST_MODE -}; - - -class WXDLLIMPEXP_BASE wxULongLongWx -{ -public: - // ctors - // default ctor initializes to 0 - wxULongLongWx() - { - m_lo = m_hi = 0; - -#ifdef wxLONGLONG_TEST_MODE - m_ll = 0; - - Check(); -#endif // wxLONGLONG_TEST_MODE - } - // from ulong - wxULongLongWx(unsigned long l) { *this = l; } - // from 2 ulongs - wxULongLongWx(unsigned long hi, unsigned long lo) - { - m_hi = hi; - m_lo = lo; - -#ifdef wxLONGLONG_TEST_MODE - m_ll = hi; - m_ll <<= 32; - m_ll |= lo; - - Check(); -#endif // wxLONGLONG_TEST_MODE - } - - // from signed to unsigned - wxULongLongWx(wxLongLongWx ll) - { - wxASSERT(ll.GetHi() >= 0); - m_hi = (unsigned long)ll.GetHi(); - m_lo = ll.GetLo(); - } - - // default copy ctor is ok in both cases - - // no dtor - - // assignment operators - // from long - wxULongLongWx& operator=(unsigned long l) - { - m_lo = l; - m_hi = 0; - -#ifdef wxLONGLONG_TEST_MODE - m_ll = l; - - Check(); -#endif // wxLONGLONG_TEST_MODE - - return *this; - } - wxULongLongWx& operator=(long l) - { - m_lo = l; - m_hi = (unsigned long) ((l<0) ? -1l : 0); - -#ifdef wxLONGLONG_TEST_MODE - m_ll = (wxULongLong_t) (wxLongLong_t) l; - - Check(); -#endif // wxLONGLONG_TEST_MODE - - return *this; - } - wxULongLongWx& operator=(const class wxLongLongWx &ll) { - // Should we use an assert like it was before in the constructor? - // wxASSERT(ll.GetHi() >= 0); - m_hi = (unsigned long)ll.GetHi(); - m_lo = ll.GetLo(); - return *this; - } - - // can't have assignment operator from 2 longs - - // accessors - // get high part - unsigned long GetHi() const { return m_hi; } - // get low part - unsigned long GetLo() const { return m_lo; } - - // convert to long with range checking in debug mode (only!) - unsigned long ToULong() const - { - wxASSERT_MSG( m_hi == 0ul, - wxT("wxULongLong to long conversion loss of precision") ); - - return (unsigned long)m_lo; - } - - // convert to double - double ToDouble() const; - - // operations - // addition - wxULongLongWx operator+(const wxULongLongWx& ll) const; - wxULongLongWx& operator+=(const wxULongLongWx& ll); - wxULongLongWx operator+(unsigned long l) const; - wxULongLongWx& operator+=(unsigned long l); - - // pre increment operator - wxULongLongWx& operator++(); - - // post increment operator - wxULongLongWx& operator++(int) { return ++(*this); } - - // subtraction - wxLongLongWx operator-(const wxULongLongWx& ll) const; - wxULongLongWx& operator-=(const wxULongLongWx& ll); - - // pre decrement operator - wxULongLongWx& operator--(); - - // post decrement operator - wxULongLongWx& operator--(int) { return --(*this); } - - // shifts - // left shift - wxULongLongWx operator<<(int shift) const; - wxULongLongWx& operator<<=(int shift); - - // right shift - wxULongLongWx operator>>(int shift) const; - wxULongLongWx& operator>>=(int shift); - - // bitwise operators - wxULongLongWx operator&(const wxULongLongWx& ll) const; - wxULongLongWx& operator&=(const wxULongLongWx& ll); - wxULongLongWx operator|(const wxULongLongWx& ll) const; - wxULongLongWx& operator|=(const wxULongLongWx& ll); - wxULongLongWx operator^(const wxULongLongWx& ll) const; - wxULongLongWx& operator^=(const wxULongLongWx& ll); - wxULongLongWx operator~() const; - - // comparison - bool operator==(const wxULongLongWx& ll) const - { return m_lo == ll.m_lo && m_hi == ll.m_hi; } - bool operator!=(const wxULongLongWx& ll) const - { return !(*this == ll); } - bool operator<(const wxULongLongWx& ll) const; - bool operator>(const wxULongLongWx& ll) const; - bool operator<=(const wxULongLongWx& ll) const - { return *this < ll || *this == ll; } - bool operator>=(const wxULongLongWx& ll) const - { return *this > ll || *this == ll; } - - bool operator<(unsigned long l) const { return *this < wxULongLongWx(l); } - bool operator>(unsigned long l) const { return *this > wxULongLongWx(l); } - bool operator==(unsigned long l) const - { - return (m_hi == 0 && m_lo == (unsigned long)l); - } - - bool operator<=(unsigned long l) const { return *this < l || *this == l; } - bool operator>=(unsigned long l) const { return *this > l || *this == l; } - - // multiplication - wxULongLongWx operator*(const wxULongLongWx& ll) const; - wxULongLongWx& operator*=(const wxULongLongWx& ll); - - // division - wxULongLongWx operator/(const wxULongLongWx& ll) const; - wxULongLongWx& operator/=(const wxULongLongWx& ll); - - wxULongLongWx operator%(const wxULongLongWx& ll) const; - - void Divide(const wxULongLongWx& divisor, - wxULongLongWx& quotient, - wxULongLongWx& remainder) const; - - // input/output - - // return the string representation of this number - wxString ToString() const; - - void *asArray() const; - -#if wxUSE_STD_IOSTREAM - friend WXDLLIMPEXP_BASE - wxSTD ostream& operator<<(wxSTD ostream&, const wxULongLongWx&); -#endif // wxUSE_STD_IOSTREAM - - friend WXDLLIMPEXP_BASE - wxString& operator<<(wxString&, const wxULongLongWx&); - -#if wxUSE_STREAMS - friend WXDLLIMPEXP_BASE - class wxTextOutputStream& operator<<(class wxTextOutputStream&, const wxULongLongWx&); - friend WXDLLIMPEXP_BASE - class wxTextInputStream& operator>>(class wxTextInputStream&, wxULongLongWx&); -#endif - -private: - // long is at least 32 bits, so represent our 64bit number as 2 longs - - unsigned long m_hi; - unsigned long m_lo; - -#ifdef wxLONGLONG_TEST_MODE - void Check() - { - wxASSERT( (m_ll >> 32) == m_hi && (unsigned long)m_ll == m_lo ); - } - - wxULongLong_t m_ll; -#endif // wxLONGLONG_TEST_MODE -}; - -#endif // wxUSE_LONGLONG_WX - -// ---------------------------------------------------------------------------- -// binary operators -// ---------------------------------------------------------------------------- - -inline bool operator<(long l, const wxLongLong& ll) { return ll > l; } -inline bool operator>(long l, const wxLongLong& ll) { return ll < l; } -inline bool operator<=(long l, const wxLongLong& ll) { return ll >= l; } -inline bool operator>=(long l, const wxLongLong& ll) { return ll <= l; } -inline bool operator==(long l, const wxLongLong& ll) { return ll == l; } -inline bool operator!=(long l, const wxLongLong& ll) { return ll != l; } - -inline wxLongLong operator+(long l, const wxLongLong& ll) { return ll + l; } -inline wxLongLong operator-(long l, const wxLongLong& ll) -{ - return wxLongLong(l) - ll; -} - -inline bool operator<(unsigned long l, const wxULongLong& ull) { return ull > l; } -inline bool operator>(unsigned long l, const wxULongLong& ull) { return ull < l; } -inline bool operator<=(unsigned long l, const wxULongLong& ull) { return ull >= l; } -inline bool operator>=(unsigned long l, const wxULongLong& ull) { return ull <= l; } -inline bool operator==(unsigned long l, const wxULongLong& ull) { return ull == l; } -inline bool operator!=(unsigned long l, const wxULongLong& ull) { return ull != l; } - -inline wxULongLong operator+(unsigned long l, const wxULongLong& ull) { return ull + l; } - -inline wxLongLong operator-(unsigned long l, const wxULongLong& ull) -{ - wxULongLong ret = wxULongLong(l) - ull; - return wxLongLong((wxInt32)ret.GetHi(),ret.GetLo()); -} - -#if wxUSE_LONGLONG_NATIVE && wxUSE_STREAMS - -WXDLLIMPEXP_BASE class wxTextOutputStream &operator<<(class wxTextOutputStream &stream, wxULongLong_t value); -WXDLLIMPEXP_BASE class wxTextOutputStream &operator<<(class wxTextOutputStream &stream, wxLongLong_t value); - -WXDLLIMPEXP_BASE class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxULongLong_t &value); -WXDLLIMPEXP_BASE class wxTextInputStream &operator>>(class wxTextInputStream &stream, wxLongLong_t &value); - -#endif - -// ---------------------------------------------------------------------------- -// Specialize numeric_limits<> for our long long wrapper classes. -// ---------------------------------------------------------------------------- - -#if wxUSE_LONGLONG_NATIVE - -#include <limits> - -namespace std -{ - -#ifdef __clang__ - // libstdc++ (used by Clang) uses struct for numeric_limits; unlike gcc, clang - // warns about this - template<> struct numeric_limits<wxLongLong> : public numeric_limits<wxLongLong_t> {}; - template<> struct numeric_limits<wxULongLong> : public numeric_limits<wxULongLong_t> {}; -#else - template<> class numeric_limits<wxLongLong> : public numeric_limits<wxLongLong_t> {}; - template<> class numeric_limits<wxULongLong> : public numeric_limits<wxULongLong_t> {}; -#endif - -} // namespace std - -#endif // wxUSE_LONGLONG_NATIVE - -// ---------------------------------------------------------------------------- -// Specialize wxArgNormalizer to allow using wxLongLong directly with wx pseudo -// vararg functions. -// ---------------------------------------------------------------------------- - -// Notice that this must be done here and not in wx/strvararg.h itself because -// we can't include wx/longlong.h from there as this header itself includes -// wx/string.h which includes wx/strvararg.h too, so to avoid the circular -// dependencies we can only do it here (or add another header just for this but -// it doesn't seem necessary). -#include "wx/strvararg.h" - -template<> -struct WXDLLIMPEXP_BASE wxArgNormalizer<wxLongLong> -{ - wxArgNormalizer(wxLongLong value, - const wxFormatString *fmt, unsigned index) - : m_value(value) - { - wxASSERT_ARG_TYPE( fmt, index, wxFormatString::Arg_LongLongInt ); - } - - wxLongLong_t get() const { return m_value.GetValue(); } - - wxLongLong m_value; -}; - -#endif // wxUSE_LONGLONG - -#endif // _WX_LONGLONG_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/math.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/math.h deleted file mode 100644 index 23ff2f03..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/math.h +++ /dev/null @@ -1,175 +0,0 @@ -/** -* Name: wx/math.h -* Purpose: Declarations/definitions of common math functions -* Author: John Labenski and others -* Modified by: -* Created: 02/02/03 -* Copyright: (c) John Labenski -* Licence: wxWindows licence -*/ - -/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ - -#ifndef _WX_MATH_H_ -#define _WX_MATH_H_ - -#include "wx/defs.h" - -#include <math.h> - -#ifndef M_PI - #define M_PI 3.1415926535897932384626433832795 -#endif - -/* Scaling factors for various unit conversions: 1 inch = 2.54 cm */ -#ifndef METRIC_CONVERSION_CONSTANT - #define METRIC_CONVERSION_CONSTANT (1/25.4) -#endif - -#ifndef mm2inches - #define mm2inches (METRIC_CONVERSION_CONSTANT) -#endif - -#ifndef inches2mm - #define inches2mm (1/(mm2inches)) -#endif - -#ifndef mm2twips - #define mm2twips (METRIC_CONVERSION_CONSTANT*1440) -#endif - -#ifndef twips2mm - #define twips2mm (1/(mm2twips)) -#endif - -#ifndef mm2pt - #define mm2pt (METRIC_CONVERSION_CONSTANT*72) -#endif - -#ifndef pt2mm - #define pt2mm (1/(mm2pt)) -#endif - - -#ifdef __cplusplus - -/* Any C++11 compiler should provide isfinite() */ -#if __cplusplus >= 201103 - #include <cmath> - #define wxFinite(x) std::isfinite(x) -#elif defined(__VISUALC__) || defined(__BORLANDC__) - #include <float.h> - #define wxFinite(x) _finite(x) -#elif defined(__MINGW64_TOOLCHAIN__) || defined(__clang__) - /* - add more compilers with C99 support here: using C99 isfinite() is - preferable to using BSD-ish finite() - */ - #if defined(_GLIBCXX_CMATH) || defined(_LIBCPP_CMATH) - // these <cmath> headers #undef isfinite - #define wxFinite(x) std::isfinite(x) - #else - #define wxFinite(x) isfinite(x) - #endif -#elif defined(wxNEEDS_STRICT_ANSI_WORKAROUNDS) - wxDECL_FOR_STRICT_MINGW32(int, _finite, (double)) - - #define wxFinite(x) _finite(x) -#elif ( defined(__GNUG__)||defined(__GNUWIN32__)|| \ - defined(__SGI_CC__)||defined(__SUNCC__)||defined(__XLC__)|| \ - defined(__HPUX__) ) && ( !defined(wxOSX_USE_IPHONE) || wxOSX_USE_IPHONE == 0 ) -#ifdef __SOLARIS__ -#include <ieeefp.h> -#endif - #define wxFinite(x) finite(x) -#else - #define wxFinite(x) ((x) == (x)) -#endif - - -#if defined(__VISUALC__)||defined(__BORLAND__) - #define wxIsNaN(x) _isnan(x) -#elif defined(__GNUG__)||defined(__GNUWIN32__)|| \ - defined(__SGI_CC__)||defined(__SUNCC__)||defined(__XLC__)|| \ - defined(__HPUX__) - #define wxIsNaN(x) isnan(x) -#else - #define wxIsNaN(x) ((x) != (x)) -#endif - -#ifdef __INTELC__ - - inline bool wxIsSameDouble(double x, double y) - { - // VZ: this warning, given for operators==() and !=() is not wrong, as == - // shouldn't be used with doubles, but we get too many of them and - // removing these operators is probably not a good idea - // - // Maybe we should always compare doubles up to some "epsilon" precision - #pragma warning(push) - - // floating-point equality and inequality comparisons are unreliable - #pragma warning(disable: 1572) - - return x == y; - - #pragma warning(pop) - } - -#else /* !__INTELC__ */ - wxGCC_WARNING_SUPPRESS(float-equal) - inline bool wxIsSameDouble(double x, double y) { return x == y; } - wxGCC_WARNING_RESTORE(float-equal) - -#endif /* __INTELC__/!__INTELC__ */ - -inline bool wxIsNullDouble(double x) { return wxIsSameDouble(x, 0.); } - -inline int wxRound(double x) -{ - wxASSERT_MSG( x > INT_MIN - 0.5 && x < INT_MAX + 0.5, - wxT("argument out of supported range") ); - - #if defined(HAVE_ROUND) - return int(round(x)); - #else - return (int)(x < 0 ? x - 0.5 : x + 0.5); - #endif -} - -// Convert between degrees and radians. -inline double wxDegToRad(double deg) { return (deg * M_PI) / 180.0; } -inline double wxRadToDeg(double rad) { return (rad * 180.0) / M_PI; } - -#endif /* __cplusplus */ - - -#if defined(__WINDOWS__) - #define wxMulDivInt32( a , b , c ) ::MulDiv( a , b , c ) -#else - #define wxMulDivInt32( a , b , c ) (wxRound((a)*(((wxDouble)b)/((wxDouble)c)))) -#endif - -#if wxUSE_APPLE_IEEE -#ifdef __cplusplus - extern "C" { -#endif - /* functions from common/extended.c */ - WXDLLIMPEXP_BASE wxFloat64 wxConvertFromIeeeExtended(const wxInt8 *bytes); - WXDLLIMPEXP_BASE void wxConvertToIeeeExtended(wxFloat64 num, wxInt8 *bytes); - - /* use wxConvertFromIeeeExtended() and wxConvertToIeeeExtended() instead */ -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED( WXDLLIMPEXP_BASE wxFloat64 ConvertFromIeeeExtended(const wxInt8 *bytes) ); - wxDEPRECATED( WXDLLIMPEXP_BASE void ConvertToIeeeExtended(wxFloat64 num, wxInt8 *bytes) ); -#endif - -#ifdef __cplusplus - } -#endif -#endif /* wxUSE_APPLE_IEEE */ - -/* Compute the greatest common divisor of two positive integers */ -WXDLLIMPEXP_BASE unsigned int wxGCD(unsigned int u, unsigned int v); - -#endif /* _WX_MATH_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/matrix.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/matrix.h deleted file mode 100644 index 859c2a28..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/matrix.h +++ /dev/null @@ -1,234 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/matrix.h -// Purpose: wxTransformMatrix class. NOT YET USED -// Author: Chris Breeze, Julian Smart -// Modified by: Klaas Holwerda -// Created: 01/02/97 -// Copyright: (c) Julian Smart, Chris Breeze -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MATRIXH__ -#define _WX_MATRIXH__ - -//! headerfiles="matrix.h wx/object.h" -#include "wx/object.h" -#include "wx/math.h" - -//! codefiles="matrix.cpp" - -// A simple 3x3 matrix. This may be replaced by a more general matrix -// class some day. -// -// Note: this is intended to be used in wxDC at some point to replace -// the current system of scaling/translation. It is not yet used. - -//:definition -// A 3x3 matrix to do 2D transformations. -// It can be used to map data to window coordinates, -// and also for manipulating your own data. -// For example drawing a picture (composed of several primitives) -// at a certain coordinate and angle within another parent picture. -// At all times m_isIdentity is set if the matrix itself is an Identity matrix. -// It is used where possible to optimize calculations. -class WXDLLIMPEXP_CORE wxTransformMatrix: public wxObject -{ -public: - wxTransformMatrix(void); - wxTransformMatrix(const wxTransformMatrix& mat); - - //get the value in the matrix at col,row - //rows are horizontal (second index of m_matrix member) - //columns are vertical (first index of m_matrix member) - double GetValue(int col, int row) const; - - //set the value in the matrix at col,row - //rows are horizontal (second index of m_matrix member) - //columns are vertical (first index of m_matrix member) - void SetValue(int col, int row, double value); - - void operator = (const wxTransformMatrix& mat); - bool operator == (const wxTransformMatrix& mat) const; - bool operator != (const wxTransformMatrix& mat) const; - - //multiply every element by t - wxTransformMatrix& operator*=(const double& t); - //divide every element by t - wxTransformMatrix& operator/=(const double& t); - //add matrix m to this t - wxTransformMatrix& operator+=(const wxTransformMatrix& m); - //subtract matrix m from this - wxTransformMatrix& operator-=(const wxTransformMatrix& m); - //multiply matrix m with this - wxTransformMatrix& operator*=(const wxTransformMatrix& m); - - // constant operators - - //multiply every element by t and return result - wxTransformMatrix operator*(const double& t) const; - //divide this matrix by t and return result - wxTransformMatrix operator/(const double& t) const; - //add matrix m to this and return result - wxTransformMatrix operator+(const wxTransformMatrix& m) const; - //subtract matrix m from this and return result - wxTransformMatrix operator-(const wxTransformMatrix& m) const; - //multiply this by matrix m and return result - wxTransformMatrix operator*(const wxTransformMatrix& m) const; - wxTransformMatrix operator-() const; - - //rows are horizontal (second index of m_matrix member) - //columns are vertical (first index of m_matrix member) - double& operator()(int col, int row); - - //rows are horizontal (second index of m_matrix member) - //columns are vertical (first index of m_matrix member) - double operator()(int col, int row) const; - - // Invert matrix - bool Invert(void); - - // Make into identity matrix - bool Identity(void); - - // Is the matrix the identity matrix? - // Only returns a flag, which is set whenever an operation - // is done. - inline bool IsIdentity(void) const { return m_isIdentity; } - - // This does an actual check. - inline bool IsIdentity1(void) const ; - - //Scale by scale (isotropic scaling i.e. the same in x and y): - //!ex: - //!code: | scale 0 0 | - //!code: matrix' = | 0 scale 0 | x matrix - //!code: | 0 0 scale | - bool Scale(double scale); - - //Scale with center point and x/y scale - // - //!ex: - //!code: | xs 0 xc(1-xs) | - //!code: matrix' = | 0 ys yc(1-ys) | x matrix - //!code: | 0 0 1 | - wxTransformMatrix& Scale(const double &xs, const double &ys,const double &xc, const double &yc); - - // mirror a matrix in x, y - //!ex: - //!code: | -1 0 0 | - //!code: matrix' = | 0 -1 0 | x matrix - //!code: | 0 0 1 | - wxTransformMatrix& Mirror(bool x=true, bool y=false); - // Translate by dx, dy: - //!ex: - //!code: | 1 0 dx | - //!code: matrix' = | 0 1 dy | x matrix - //!code: | 0 0 1 | - bool Translate(double x, double y); - - // Rotate clockwise by the given number of degrees: - //!ex: - //!code: | cos sin 0 | - //!code: matrix' = | -sin cos 0 | x matrix - //!code: | 0 0 1 | - bool Rotate(double angle); - - //Rotate counter clockwise with point of rotation - // - //!ex: - //!code: | cos(r) -sin(r) x(1-cos(r))+y(sin(r)| - //!code: matrix' = | sin(r) cos(r) y(1-cos(r))-x(sin(r)| x matrix - //!code: | 0 0 1 | - wxTransformMatrix& Rotate(const double &r, const double &x, const double &y); - - // Transform X value from logical to device - inline double TransformX(double x) const; - - // Transform Y value from logical to device - inline double TransformY(double y) const; - - // Transform a point from logical to device coordinates - bool TransformPoint(double x, double y, double& tx, double& ty) const; - - // Transform a point from device to logical coordinates. - // Example of use: - // wxTransformMatrix mat = dc.GetTransformation(); - // mat.Invert(); - // mat.InverseTransformPoint(x, y, x1, y1); - // OR (shorthand:) - // dc.LogicalToDevice(x, y, x1, y1); - // The latter is slightly less efficient if we're doing several - // conversions, since the matrix is inverted several times. - // N.B. 'this' matrix is the inverse at this point - bool InverseTransformPoint(double x, double y, double& tx, double& ty) const; - - double Get_scaleX(); - double Get_scaleY(); - double GetRotation(); - void SetRotation(double rotation); - - -public: - double m_matrix[3][3]; - bool m_isIdentity; -}; - - -/* -Chris Breeze reported, that -some functions of wxTransformMatrix cannot work because it is not -known if he matrix has been inverted. Be careful when using it. -*/ - -// Transform X value from logical to device -// warning: this function can only be used for this purpose -// because no rotation is involved when mapping logical to device coordinates -// mirror and scaling for x and y will be part of the matrix -// if you have a matrix that is rotated, eg a shape containing a matrix to place -// it in the logical coordinate system, use TransformPoint -inline double wxTransformMatrix::TransformX(double x) const -{ - //normally like this, but since no rotation is involved (only mirror and scale) - //we can do without Y -> m_matrix[1]{0] is -sin(rotation angle) and therefore zero - //(x * m_matrix[0][0] + y * m_matrix[1][0] + m_matrix[2][0])) - return (m_isIdentity ? x : (x * m_matrix[0][0] + m_matrix[2][0])); -} - -// Transform Y value from logical to device -// warning: this function can only be used for this purpose -// because no rotation is involved when mapping logical to device coordinates -// mirror and scaling for x and y will be part of the matrix -// if you have a matrix that is rotated, eg a shape containing a matrix to place -// it in the logical coordinate system, use TransformPoint -inline double wxTransformMatrix::TransformY(double y) const -{ - //normally like this, but since no rotation is involved (only mirror and scale) - //we can do without X -> m_matrix[0]{1] is sin(rotation angle) and therefore zero - //(x * m_matrix[0][1] + y * m_matrix[1][1] + m_matrix[2][1])) - return (m_isIdentity ? y : (y * m_matrix[1][1] + m_matrix[2][1])); -} - - -// Is the matrix the identity matrix? -// Each operation checks whether the result is still the identity matrix and sets a flag. -inline bool wxTransformMatrix::IsIdentity1(void) const -{ - return - ( wxIsSameDouble(m_matrix[0][0], 1.0) && - wxIsSameDouble(m_matrix[1][1], 1.0) && - wxIsSameDouble(m_matrix[2][2], 1.0) && - wxIsSameDouble(m_matrix[1][0], 0.0) && - wxIsSameDouble(m_matrix[2][0], 0.0) && - wxIsSameDouble(m_matrix[0][1], 0.0) && - wxIsSameDouble(m_matrix[2][1], 0.0) && - wxIsSameDouble(m_matrix[0][2], 0.0) && - wxIsSameDouble(m_matrix[1][2], 0.0) ); -} - -// Calculates the determinant of a 2 x 2 matrix -inline double wxCalculateDet(double a11, double a21, double a12, double a22) -{ - return a11 * a22 - a12 * a21; -} - -#endif // _WX_MATRIXH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mdi.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mdi.h deleted file mode 100644 index 4be67abd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mdi.h +++ /dev/null @@ -1,419 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/mdi.h -// Purpose: wxMDI base header -// Author: Julian Smart (original) -// Vadim Zeitlin (base MDI classes refactoring) -// Copyright: (c) 1998 Julian Smart -// (c) 2008 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MDI_H_BASE_ -#define _WX_MDI_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_MDI - -#include "wx/frame.h" -#include "wx/menu.h" - -// forward declarations -class WXDLLIMPEXP_FWD_CORE wxMDIParentFrame; -class WXDLLIMPEXP_FWD_CORE wxMDIChildFrame; -class WXDLLIMPEXP_FWD_CORE wxMDIClientWindowBase; -class WXDLLIMPEXP_FWD_CORE wxMDIClientWindow; - -// ---------------------------------------------------------------------------- -// wxMDIParentFrameBase: base class for parent frame for MDI children -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMDIParentFrameBase : public wxFrame -{ -public: - wxMDIParentFrameBase() - { - m_clientWindow = NULL; - m_currentChild = NULL; -#if wxUSE_MENUS - m_windowMenu = NULL; -#endif // wxUSE_MENUS - } - - /* - Derived classes should provide ctor and Create() with the following - declaration: - - bool Create(wxWindow *parent, - wxWindowID winid, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr); - */ - -#if wxUSE_MENUS - virtual ~wxMDIParentFrameBase() - { - delete m_windowMenu; - } -#endif // wxUSE_MENUS - - // accessors - // --------- - - // Get or change the active MDI child window - virtual wxMDIChildFrame *GetActiveChild() const - { return m_currentChild; } - virtual void SetActiveChild(wxMDIChildFrame *child) - { m_currentChild = child; } - - - // Get the client window - wxMDIClientWindowBase *GetClientWindow() const { return m_clientWindow; } - - - // MDI windows menu functions - // -------------------------- - -#if wxUSE_MENUS - // return the pointer to the current window menu or NULL if we don't have - // because of wxFRAME_NO_WINDOW_MENU style - wxMenu* GetWindowMenu() const { return m_windowMenu; } - - // use the given menu instead of the default window menu - // - // menu can be NULL to disable the window menu completely - virtual void SetWindowMenu(wxMenu *menu) - { - if ( menu != m_windowMenu ) - { - delete m_windowMenu; - m_windowMenu = menu; - } - } -#endif // wxUSE_MENUS - - - // standard MDI window management functions - // ---------------------------------------- - - virtual void Cascade() { } - virtual void Tile(wxOrientation WXUNUSED(orient) = wxHORIZONTAL) { } - virtual void ArrangeIcons() { } - virtual void ActivateNext() = 0; - virtual void ActivatePrevious() = 0; - - /* - Derived classes must provide the following function: - - static bool IsTDI(); - */ - - // Create the client window class (don't Create() the window here, just - // return a new object of a wxMDIClientWindow-derived class) - // - // Notice that if you override this method you should use the default - // constructor and Create() and not the constructor creating the window - // when creating the frame or your overridden version is not going to be - // called (as the call to a virtual function from ctor will be dispatched - // to this class version) - virtual wxMDIClientWindow *OnCreateClient(); - -protected: - // Override to pass menu/toolbar events to the active child first. - virtual bool TryBefore(wxEvent& event) wxOVERRIDE; - - - // This is wxMDIClientWindow for all the native implementations but not for - // the generic MDI version which has its own wxGenericMDIClientWindow and - // so we store it as just a base class pointer because we don't need its - // exact type anyhow - wxMDIClientWindowBase *m_clientWindow; - wxMDIChildFrame *m_currentChild; - -#if wxUSE_MENUS - // the current window menu or NULL if we are not using it - wxMenu *m_windowMenu; -#endif // wxUSE_MENUS -}; - -// ---------------------------------------------------------------------------- -// wxMDIChildFrameBase: child frame managed by wxMDIParentFrame -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMDIChildFrameBase : public wxFrame -{ -public: - wxMDIChildFrameBase() { m_mdiParent = NULL; } - - /* - Derived classes should provide Create() with the following signature: - - bool Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - And setting m_mdiParent to parent parameter. - */ - - // MDI children specific methods - virtual void Activate() = 0; - - // Return the MDI parent frame: notice that it may not be the same as - // GetParent() (our parent may be the client window or even its subwindow - // in some implementations) - wxMDIParentFrame *GetMDIParent() const { return m_mdiParent; } - - // Synonym for GetMDIParent(), was used in some other ports - wxMDIParentFrame *GetMDIParentFrame() const { return GetMDIParent(); } - - - // in most ports MDI children frames are not really top-level, the only - // exception are the Mac ports in which MDI children are just normal top - // level windows too - virtual bool IsTopLevel() const wxOVERRIDE { return false; } - - // In all ports keyboard navigation must stop at MDI child frame level and - // can't cross its boundary. Indicate this by overriding this function to - // return true. - virtual bool IsTopNavigationDomain(NavigationKind kind) const wxOVERRIDE - { - switch ( kind ) - { - case Navigation_Tab: - return true; - - case Navigation_Accel: - // Parent frame accelerators should work inside MDI child, so - // don't block their processing by returning true for them. - break; - } - - return false; - } - - // Raising any frame is supposed to show it but wxFrame Raise() - // implementation doesn't work for MDI child frames in most forms so - // forward this to Activate() which serves the same purpose by default. - virtual void Raise() wxOVERRIDE { Activate(); } - -protected: - wxMDIParentFrame *m_mdiParent; -}; - -// ---------------------------------------------------------------------------- -// wxTDIChildFrame: child frame used by TDI implementations -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTDIChildFrame : public wxMDIChildFrameBase -{ -public: - // override wxFrame methods for this non top-level window - -#if wxUSE_STATUSBAR - // no status bars - // - // TODO: MDI children should have their own status bars, why not? - virtual wxStatusBar* CreateStatusBar(int WXUNUSED(number) = 1, - long WXUNUSED(style) = 1, - wxWindowID WXUNUSED(id) = 1, - const wxString& WXUNUSED(name) - = wxEmptyString) wxOVERRIDE - { return NULL; } - - virtual wxStatusBar *GetStatusBar() const wxOVERRIDE - { return NULL; } - virtual void SetStatusText(const wxString &WXUNUSED(text), - int WXUNUSED(number)=0) wxOVERRIDE - { } - virtual void SetStatusWidths(int WXUNUSED(n), - const int WXUNUSED(widths)[]) wxOVERRIDE - { } -#endif // wxUSE_STATUSBAR - -#if wxUSE_TOOLBAR - // no toolbar - // - // TODO: again, it should be possible to have tool bars - virtual wxToolBar *CreateToolBar(long WXUNUSED(style), - wxWindowID WXUNUSED(id), - const wxString& WXUNUSED(name)) wxOVERRIDE - { return NULL; } - virtual wxToolBar *GetToolBar() const wxOVERRIDE { return NULL; } -#endif // wxUSE_TOOLBAR - - // no icon - virtual void SetIcons(const wxIconBundle& WXUNUSED(icons)) wxOVERRIDE { } - - // title is used as the tab label - virtual wxString GetTitle() const wxOVERRIDE { return m_title; } - virtual void SetTitle(const wxString& title) wxOVERRIDE = 0; - - // no maximize etc - virtual void Maximize(bool WXUNUSED(maximize) = true) wxOVERRIDE { } - virtual bool IsMaximized() const wxOVERRIDE { return true; } - virtual bool IsAlwaysMaximized() const wxOVERRIDE { return true; } - virtual void Iconize(bool WXUNUSED(iconize) = true) wxOVERRIDE { } - virtual bool IsIconized() const wxOVERRIDE { return false; } - virtual void Restore() wxOVERRIDE { } - - virtual bool ShowFullScreen(bool WXUNUSED(show), - long WXUNUSED(style)) wxOVERRIDE { return false; } - virtual bool IsFullScreen() const wxOVERRIDE { return false; } - - - // we need to override these functions to ensure that a child window is - // created even though we derive from wxFrame -- basically we make it - // behave as just a wxWindow by short-circuiting wxTLW changes to the base - // class behaviour - - virtual void AddChild(wxWindowBase *child) wxOVERRIDE { wxWindow::AddChild(child); } - - virtual bool Destroy() wxOVERRIDE { return wxWindow::Destroy(); } - - // extra platform-specific hacks -#ifdef __WXMSW__ - virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const - { - return wxWindow::MSWGetStyle(flags, exstyle); - } - - virtual WXHWND MSWGetParent() const - { - return wxWindow::MSWGetParent(); - } - - WXLRESULT MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) - { - return wxWindow::MSWWindowProc(message, wParam, lParam); - } -#endif // __WXMSW__ - -protected: - virtual void DoGetSize(int *width, int *height) const wxOVERRIDE - { - wxWindow::DoGetSize(width, height); - } - - virtual void DoSetSize(int x, int y, int width, int height, int sizeFlags) wxOVERRIDE - { - wxWindow::DoSetSize(x, y, width, height, sizeFlags); - } - - virtual void DoGetClientSize(int *width, int *height) const wxOVERRIDE - { - wxWindow::DoGetClientSize(width, height); - } - - virtual void DoSetClientSize(int width, int height) wxOVERRIDE - { - wxWindow::DoSetClientSize(width, height); - } - - virtual void DoMoveWindow(int x, int y, int width, int height) wxOVERRIDE - { - wxWindow::DoMoveWindow(x, y, width, height); - } - - // no size hints - virtual void DoSetSizeHints(int WXUNUSED(minW), int WXUNUSED(minH), - int WXUNUSED(maxW), int WXUNUSED(maxH), - int WXUNUSED(incW), int WXUNUSED(incH)) wxOVERRIDE { } - - wxString m_title; -}; - -// ---------------------------------------------------------------------------- -// wxMDIClientWindowBase: child of parent frame, parent of children frames -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMDIClientWindowBase : public wxWindow -{ -public: - /* - The derived class must provide the default ctor only (CreateClient() - will be called later). - */ - - // Can be overridden in the derived classes but the base class version must - // be usually called first to really create the client window. - virtual bool CreateClient(wxMDIParentFrame *parent, - long style = wxVSCROLL | wxHSCROLL) = 0; -}; - -// ---------------------------------------------------------------------------- -// Include the port-specific implementation of the base classes defined above -// ---------------------------------------------------------------------------- - -// wxUSE_GENERIC_MDI_AS_NATIVE may be predefined to force the generic MDI -// implementation use even on the platforms which usually don't use it -// -// notice that generic MDI can still be used without this, but you would need -// to explicitly use wxGenericMDIXXX classes in your code (and currently also -// add src/generic/mdig.cpp to your build as it's not compiled in if generic -// MDI is not used by default -- but this may change later...) -#ifndef wxUSE_GENERIC_MDI_AS_NATIVE - // wxUniv always uses the generic MDI implementation and so do the ports - // without native version (although wxCocoa seems to have one -- but it's - // probably not functional?) - #if defined(__WXMOTIF__) || \ - defined(__WXUNIVERSAL__) - #define wxUSE_GENERIC_MDI_AS_NATIVE 1 - #else - #define wxUSE_GENERIC_MDI_AS_NATIVE 0 - #endif -#endif // wxUSE_GENERIC_MDI_AS_NATIVE - -#if wxUSE_GENERIC_MDI_AS_NATIVE - #include "wx/generic/mdig.h" -#elif defined(__WXMSW__) - #include "wx/msw/mdi.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/mdi.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/mdi.h" -#elif defined(__WXMAC__) - #include "wx/osx/mdi.h" -#elif defined(__WXQT__) - #include "wx/qt/mdi.h" -#endif - -inline wxMDIClientWindow *wxMDIParentFrameBase::OnCreateClient() -{ - return new wxMDIClientWindow; -} - -inline bool wxMDIParentFrameBase::TryBefore(wxEvent& event) -{ - // Menu (and toolbar) events should be sent to the active child frame - // first, if any. - if ( event.GetEventType() == wxEVT_MENU || - event.GetEventType() == wxEVT_UPDATE_UI ) - { - wxMDIChildFrame * const child = GetActiveChild(); - if ( child ) - { - // However avoid sending the event back to the child if it's - // currently being propagated to us from it. - wxWindow* const - from = static_cast<wxWindow*>(event.GetPropagatedFrom()); - if ( !from || !from->IsDescendant(child) ) - { - if ( child->ProcessWindowEventLocally(event) ) - return true; - } - } - } - - return wxFrame::TryBefore(event); -} - -#endif // wxUSE_MDI - -#endif // _WX_MDI_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mediactrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mediactrl.h deleted file mode 100644 index 17b359dc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mediactrl.h +++ /dev/null @@ -1,395 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/mediactrl.h -// Purpose: wxMediaCtrl class -// Author: Ryan Norton <wxprojects@comcast.net> -// Modified by: -// Created: 11/07/04 -// Copyright: (c) Ryan Norton -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// Definitions -// ============================================================================ - -// ---------------------------------------------------------------------------- -// Header guard -// ---------------------------------------------------------------------------- -#ifndef _WX_MEDIACTRL_H_ -#define _WX_MEDIACTRL_H_ - -// ---------------------------------------------------------------------------- -// Pre-compiled header stuff -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -// ---------------------------------------------------------------------------- -// Compilation guard -// ---------------------------------------------------------------------------- - -#if wxUSE_MEDIACTRL - -// ---------------------------------------------------------------------------- -// Includes -// ---------------------------------------------------------------------------- - -#include "wx/control.h" -#include "wx/uri.h" - -// ============================================================================ -// Declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// -// Enumerations -// -// ---------------------------------------------------------------------------- - -enum wxMediaState -{ - wxMEDIASTATE_STOPPED, - wxMEDIASTATE_PAUSED, - wxMEDIASTATE_PLAYING -}; - -enum wxMediaCtrlPlayerControls -{ - wxMEDIACTRLPLAYERCONTROLS_NONE = 0, - //Step controls like fastforward, step one frame etc. - wxMEDIACTRLPLAYERCONTROLS_STEP = 1 << 0, - //Volume controls like the speaker icon, volume slider, etc. - wxMEDIACTRLPLAYERCONTROLS_VOLUME = 1 << 1, - wxMEDIACTRLPLAYERCONTROLS_DEFAULT = - wxMEDIACTRLPLAYERCONTROLS_STEP | - wxMEDIACTRLPLAYERCONTROLS_VOLUME -}; - -#define wxMEDIABACKEND_DIRECTSHOW wxT("wxAMMediaBackend") -#define wxMEDIABACKEND_MCI wxT("wxMCIMediaBackend") -#define wxMEDIABACKEND_QUICKTIME wxT("wxQTMediaBackend") -#define wxMEDIABACKEND_GSTREAMER wxT("wxGStreamerMediaBackend") -#define wxMEDIABACKEND_REALPLAYER wxT("wxRealPlayerMediaBackend") -#define wxMEDIABACKEND_WMP10 wxT("wxWMP10MediaBackend") - -// ---------------------------------------------------------------------------- -// -// wxMediaEvent -// -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_MEDIA wxMediaEvent : public wxNotifyEvent -{ -public: - // ------------------------------------------------------------------------ - // wxMediaEvent Constructor - // - // Normal constructor, much the same as wxNotifyEvent - // ------------------------------------------------------------------------ - wxMediaEvent(wxEventType commandType = wxEVT_NULL, int winid = 0) - : wxNotifyEvent(commandType, winid) - { } - - // ------------------------------------------------------------------------ - // wxMediaEvent Copy Constructor - // - // Normal copy constructor, much the same as wxNotifyEvent - // ------------------------------------------------------------------------ - wxMediaEvent(const wxMediaEvent &clone) - : wxNotifyEvent(clone) - { } - - // ------------------------------------------------------------------------ - // wxMediaEvent::Clone - // - // Allocates a copy of this object. - // Required for wxEvtHandler::AddPendingEvent - // ------------------------------------------------------------------------ - virtual wxEvent *Clone() const wxOVERRIDE - { return new wxMediaEvent(*this); } - - - // Put this class on wxWidget's RTTI table - wxDECLARE_DYNAMIC_CLASS(wxMediaEvent); -}; - -// ---------------------------------------------------------------------------- -// -// wxMediaCtrl -// -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_MEDIA wxMediaCtrl : public wxControl -{ -public: - wxMediaCtrl() : m_imp(NULL), m_bLoaded(false) - { } - - wxMediaCtrl(wxWindow* parent, wxWindowID winid, - const wxString& fileName = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& szBackend = wxEmptyString, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxT("mediaCtrl")) - : m_imp(NULL), m_bLoaded(false) - { Create(parent, winid, fileName, pos, size, style, - szBackend, validator, name); } - - wxMediaCtrl(wxWindow* parent, wxWindowID winid, - const wxURI& location, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& szBackend = wxEmptyString, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxT("mediaCtrl")) - : m_imp(NULL), m_bLoaded(false) - { Create(parent, winid, location, pos, size, style, - szBackend, validator, name); } - - virtual ~wxMediaCtrl(); - - bool Create(wxWindow* parent, wxWindowID winid, - const wxString& fileName = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& szBackend = wxEmptyString, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxT("mediaCtrl")); - - bool Create(wxWindow* parent, wxWindowID winid, - const wxURI& location, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& szBackend = wxEmptyString, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxT("mediaCtrl")); - - bool DoCreate(const wxClassInfo* instance, - wxWindow* parent, wxWindowID winid, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxT("mediaCtrl")); - - bool Play(); - bool Pause(); - bool Stop(); - - bool Load(const wxString& fileName); - - wxMediaState GetState(); - - wxFileOffset Seek(wxFileOffset where, wxSeekMode mode = wxFromStart); - wxFileOffset Tell(); //FIXME: This should be const - wxFileOffset Length(); //FIXME: This should be const - - double GetPlaybackRate(); //All but MCI & GStreamer - bool SetPlaybackRate(double dRate); //All but MCI & GStreamer - - bool Load(const wxURI& location); - bool Load(const wxURI& location, const wxURI& proxy); - - wxFileOffset GetDownloadProgress(); // DirectShow only - wxFileOffset GetDownloadTotal(); // DirectShow only - - double GetVolume(); - bool SetVolume(double dVolume); - - bool ShowPlayerControls( - wxMediaCtrlPlayerControls flags = wxMEDIACTRLPLAYERCONTROLS_DEFAULT); - - //helpers for the wxPython people - bool LoadURI(const wxString& fileName) - { return Load(wxURI(fileName)); } - bool LoadURIWithProxy(const wxString& fileName, const wxString& proxy) - { return Load(wxURI(fileName), wxURI(proxy)); } - -protected: - static const wxClassInfo* NextBackend(wxClassInfo::const_iterator* it); - - void OnMediaFinished(wxMediaEvent& evt); - virtual void DoMoveWindow(int x, int y, int w, int h) wxOVERRIDE; - wxSize DoGetBestSize() const wxOVERRIDE; - - class wxMediaBackend* m_imp; - bool m_bLoaded; - - wxDECLARE_DYNAMIC_CLASS(wxMediaCtrl); -}; - -// ---------------------------------------------------------------------------- -// -// wxMediaBackend -// -// Derive from this and use standard wxWidgets RTTI -// (wxDECLARE_DYNAMIC_CLASS and wxIMPLEMENT_CLASS) to make a backend -// for wxMediaCtrl. Backends are searched alphabetically - -// the one with the earliest letter is tried first. -// -// Note that this is currently not API or ABI compatible - -// so statically link or make the client compile on-site. -// -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_MEDIA wxMediaBackend : public wxObject -{ -public: - wxMediaBackend() - { } - - virtual ~wxMediaBackend(); - - virtual bool CreateControl(wxControl* WXUNUSED(ctrl), - wxWindow* WXUNUSED(parent), - wxWindowID WXUNUSED(winid), - const wxPoint& WXUNUSED(pos), - const wxSize& WXUNUSED(size), - long WXUNUSED(style), - const wxValidator& WXUNUSED(validator), - const wxString& WXUNUSED(name)) - { return false; } - - virtual bool Play() - { return false; } - virtual bool Pause() - { return false; } - virtual bool Stop() - { return false; } - - virtual bool Load(const wxString& WXUNUSED(fileName)) - { return false; } - virtual bool Load(const wxURI& WXUNUSED(location)) - { return false; } - - virtual bool SetPosition(wxLongLong WXUNUSED(where)) - { return 0; } - virtual wxLongLong GetPosition() - { return 0; } - virtual wxLongLong GetDuration() - { return 0; } - - virtual void Move(int WXUNUSED(x), int WXUNUSED(y), - int WXUNUSED(w), int WXUNUSED(h)) - { } - virtual wxSize GetVideoSize() const - { return wxSize(0,0); } - - virtual double GetPlaybackRate() - { return 0.0; } - virtual bool SetPlaybackRate(double WXUNUSED(dRate)) - { return false; } - - virtual wxMediaState GetState() - { return wxMEDIASTATE_STOPPED; } - - virtual double GetVolume() - { return 0.0; } - virtual bool SetVolume(double WXUNUSED(dVolume)) - { return false; } - - virtual bool Load(const wxURI& WXUNUSED(location), - const wxURI& WXUNUSED(proxy)) - { return false; } - - virtual bool ShowPlayerControls( - wxMediaCtrlPlayerControls WXUNUSED(flags)) - { return false; } - virtual bool IsInterfaceShown() - { return false; } - - virtual wxLongLong GetDownloadProgress() - { return 0; } - virtual wxLongLong GetDownloadTotal() - { return 0; } - - virtual void MacVisibilityChanged() - { } - virtual void RESERVED9() {} - - wxDECLARE_DYNAMIC_CLASS(wxMediaBackend); -}; - - -//Our events -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_MEDIA, wxEVT_MEDIA_FINISHED, wxMediaEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_MEDIA, wxEVT_MEDIA_STOP, wxMediaEvent ); - -//Function type(s) our events need -typedef void (wxEvtHandler::*wxMediaEventFunction)(wxMediaEvent&); - -#define wxMediaEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxMediaEventFunction, func) - -//Macro for usage with message maps -#define EVT_MEDIA_FINISHED(winid, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_FINISHED, winid, wxID_ANY, wxMediaEventHandler(fn), NULL ), -#define EVT_MEDIA_STOP(winid, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_STOP, winid, wxID_ANY, wxMediaEventHandler(fn), NULL ), - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_MEDIA, wxEVT_MEDIA_LOADED, wxMediaEvent ); -#define EVT_MEDIA_LOADED(winid, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_LOADED, winid, wxID_ANY, wxMediaEventHandler(fn), NULL ), - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_MEDIA, wxEVT_MEDIA_STATECHANGED, wxMediaEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_MEDIA, wxEVT_MEDIA_PLAY, wxMediaEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_MEDIA, wxEVT_MEDIA_PAUSE, wxMediaEvent ); -#define EVT_MEDIA_STATECHANGED(winid, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_STATECHANGED, winid, wxID_ANY, wxMediaEventHandler(fn), NULL ), -#define EVT_MEDIA_PLAY(winid, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_PLAY, winid, wxID_ANY, wxMediaEventHandler(fn), NULL ), -#define EVT_MEDIA_PAUSE(winid, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_PAUSE, winid, wxID_ANY, wxMediaEventHandler(fn), NULL ), - -// ---------------------------------------------------------------------------- -// common backend base class used by many other backends -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_MEDIA wxMediaBackendCommonBase : public wxMediaBackend -{ -public: - // add a pending wxMediaEvent of the given type - void QueueEvent(wxEventType evtType); - - // notify that the movie playback is finished - void QueueFinishEvent() - { - QueueEvent(wxEVT_MEDIA_STATECHANGED); - QueueEvent(wxEVT_MEDIA_FINISHED); - } - - // send the stop event and return true if it hasn't been vetoed - bool SendStopEvent(); - - // Queue pause event - void QueuePlayEvent(); - - // Queue pause event - void QueuePauseEvent(); - - // Queue stop event (no veto) - void QueueStopEvent(); - -protected: - // call this when the movie size has changed but not because it has just - // been loaded (in this case, call NotifyMovieLoaded() below) - void NotifyMovieSizeChanged(); - - // call this when the movie is fully loaded - void NotifyMovieLoaded(); - - - wxMediaCtrl *m_ctrl; // parent control -}; - -// ---------------------------------------------------------------------------- -// End compilation guard -// ---------------------------------------------------------------------------- -#endif // wxUSE_MEDIACTRL - -// ---------------------------------------------------------------------------- -// End header guard and header itself -// ---------------------------------------------------------------------------- -#endif // _WX_MEDIACTRL_H_ - - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/memconf.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/memconf.h deleted file mode 100644 index 3dbec634..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/memconf.h +++ /dev/null @@ -1,53 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/memconf.h -// Purpose: wxMemoryConfig class: a wxConfigBase implementation which only -// stores the settings in memory (thus they are lost when the -// program terminates) -// Author: Vadim Zeitlin -// Modified by: -// Created: 22.01.00 -// Copyright: (c) 2000 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -/* - * NB: I don't see how this class may possibly be useful to the application - * program (as the settings are lost on program termination), but it is - * handy to have it inside wxWidgets. So for now let's say that this class - * is private and should only be used by wxWidgets itself - this might - * change in the future. - */ - -#ifndef _WX_MEMCONF_H_ -#define _WX_MEMCONF_H_ - -#if wxUSE_CONFIG - -#include "wx/fileconf.h" // the base class - -// ---------------------------------------------------------------------------- -// wxMemoryConfig: a config class which stores settings in non-persistent way -// ---------------------------------------------------------------------------- - -// notice that we inherit from wxFileConfig which already stores its data in -// memory and just disable file reading/writing - this is probably not optimal -// and might be changed in future as well (this class will always deriev from -// wxConfigBase though) -class wxMemoryConfig : public wxFileConfig -{ -public: - // default (and only) ctor - wxMemoryConfig() : wxFileConfig(wxEmptyString, // default app name - wxEmptyString, // default vendor name - wxEmptyString, // no local config file - wxEmptyString, // no system config file - 0) // don't use any files - { - } - - wxDECLARE_NO_COPY_CLASS(wxMemoryConfig); -}; - -#endif // wxUSE_CONFIG - -#endif // _WX_MEMCONF_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/memory.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/memory.h deleted file mode 100644 index d6cc1830..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/memory.h +++ /dev/null @@ -1,364 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/memory.h -// Purpose: Memory operations -// Author: Arthur Seaton, Julian Smart -// Modified by: -// Created: 29/01/98 -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MEMORY_H_ -#define _WX_MEMORY_H_ - -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/msgout.h" - -#if wxUSE_MEMORY_TRACING || wxUSE_DEBUG_CONTEXT - -#include <stddef.h> - -WXDLLIMPEXP_BASE void * wxDebugAlloc(size_t size, wxChar * fileName, int lineNum, bool isObject, bool isVect = false); -WXDLLIMPEXP_BASE void wxDebugFree(void * buf, bool isVect = false); - -//********************************************************************************** -/* - The global operator new used for everything apart from getting - dynamic storage within this function itself. -*/ - -// We'll only do malloc and free for the moment: leave the interesting -// stuff for the wxObject versions. - - -#if wxUSE_GLOBAL_MEMORY_OPERATORS - -// Undefine temporarily (new is #defined in object.h) because we want to -// declare some new operators. -#ifdef new - #undef new -#endif - -#if defined(__SUNCC__) - #define wxUSE_ARRAY_MEMORY_OPERATORS 0 -#elif defined (__SGI_CC_) - // only supported by -n32 compilers - #ifndef __EDG_ABI_COMPATIBILITY_VERSION - #define wxUSE_ARRAY_MEMORY_OPERATORS 0 - #endif -#else - #define wxUSE_ARRAY_MEMORY_OPERATORS 1 -#endif - -// devik 2000-8-29: All new/delete ops are now inline because they can't -// be marked as dllexport/dllimport. It then leads to weird bugs when -// used on MSW as DLL -#if defined(__WINDOWS__) && (defined(WXUSINGDLL) || defined(WXMAKINGDLL_BASE)) -inline void * operator new (size_t size, wxChar * fileName, int lineNum) -{ - return wxDebugAlloc(size, fileName, lineNum, false, false); -} - -inline void * operator new (size_t size) -{ - return wxDebugAlloc(size, NULL, 0, false); -} - -inline void operator delete (void * buf) -{ - wxDebugFree(buf, false); -} - -#if wxUSE_ARRAY_MEMORY_OPERATORS -inline void * operator new[] (size_t size) -{ - return wxDebugAlloc(size, NULL, 0, false, true); -} - -inline void * operator new[] (size_t size, wxChar * fileName, int lineNum) -{ - return wxDebugAlloc(size, fileName, lineNum, false, true); -} - -inline void operator delete[] (void * buf) -{ - wxDebugFree(buf, true); -} -#endif // wxUSE_ARRAY_MEMORY_OPERATORS - -#else - -void * operator new (size_t size, wxChar * fileName, int lineNum); - -void * operator new (size_t size); - -void operator delete (void * buf); - -#if wxUSE_ARRAY_MEMORY_OPERATORS -void * operator new[] (size_t size); - -void * operator new[] (size_t size, wxChar * fileName, int lineNum); - -void operator delete[] (void * buf); -#endif // wxUSE_ARRAY_MEMORY_OPERATORS -#endif // defined(__WINDOWS__) && (defined(WXUSINGDLL) || defined(WXMAKINGDLL_BASE)) - -#if defined(__VISUALC__) -inline void operator delete(void* pData, wxChar* /* fileName */, int /* lineNum */) -{ - wxDebugFree(pData, false); -} -inline void operator delete[](void* pData, wxChar* /* fileName */, int /* lineNum */) -{ - wxDebugFree(pData, true); -} -#endif // __VISUALC__ -#endif // wxUSE_GLOBAL_MEMORY_OPERATORS - -//********************************************************************************** - -typedef unsigned int wxMarkerType; - -/* - Define the struct which will be placed at the start of all dynamically - allocated memory. -*/ - -class WXDLLIMPEXP_BASE wxMemStruct { - -friend class WXDLLIMPEXP_FWD_BASE wxDebugContext; // access to the m_next pointer for list traversal. - -public: -public: - int AssertList (); - - size_t RequestSize () { return m_reqSize; } - wxMarkerType Marker () { return m_firstMarker; } - - // When an object is deleted we set the id slot to a specific value. - inline void SetDeleted (); - inline int IsDeleted (); - - int Append (); - int Unlink (); - - // Used to determine if the object is really a wxMemStruct. - // Not a foolproof test by any means, but better than none I hope! - int AssertIt (); - - // Do all validation on a node. - int ValidateNode (); - - // Check the integrity of a node and of the list, node by node. - int CheckBlock (); - int CheckAllPrevious (); - - // Print a single node. - void PrintNode (); - - // Called when the memory linking functions get an error. - void ErrorMsg (const char *); - void ErrorMsg (); - - inline void *GetActualData(void) const { return m_actualData; } - - void Dump(void); - -public: - // Check for underwriting. There are 2 of these checks. This one - // inside the struct and another right after the struct. - wxMarkerType m_firstMarker; - - // File name and line number are from cpp. - wxChar* m_fileName; - int m_lineNum; - - // The amount of memory requested by the caller. - size_t m_reqSize; - - // Used to try to verify that we really are dealing with an object - // of the required class. Can be 1 of 2 values these indicating a valid - // wxMemStruct object, or a deleted wxMemStruct object. - wxMarkerType m_id; - - wxMemStruct * m_prev; - wxMemStruct * m_next; - - void * m_actualData; - bool m_isObject; -}; - - -typedef void (wxMemStruct::*PmSFV) (); - -// Type of the app function that can be installed and called at wxWidgets shutdown -// (after all other registered files with global destructors have been closed down). -typedef void (*wxShutdownNotifyFunction)(); - -/* - Debugging class. This will only have a single instance, but it's - a reasonable way to keep everything together and to make this - available for change if needed by someone else. - A lot of this stuff would be better off within the wxMemStruct class, but - it's stuff which we need to access at times when there is no wxMemStruct - object so we use this class instead. Think of it as a collection of - globals which have to do with the wxMemStruct class. -*/ - -class WXDLLIMPEXP_BASE wxDebugContext { - -protected: - // Used to set alignment for markers. - static size_t CalcAlignment (); - - // Returns the amount of padding needed after something of the given - // size. This is so that when we cast pointers backwards and forwards - // the pointer value will be valid for a wxMarkerType. - static size_t GetPadding (size_t size) ; - - // Traverse the list. - static void TraverseList (PmSFV, wxMemStruct *from = NULL); - - static int debugLevel; - static bool debugOn; - - static int m_balign; // byte alignment - static int m_balignmask; // mask for performing byte alignment -public: - // Set a checkpoint to dump only the memory from - // a given point - static wxMemStruct *checkPoint; - - wxDebugContext(void); - ~wxDebugContext(void); - - static int GetLevel(void) { return debugLevel; } - static void SetLevel(int level) { debugLevel = level; } - - static bool GetDebugMode(void) { return debugOn; } - static void SetDebugMode(bool flag) { debugOn = flag; } - - static void SetCheckpoint(bool all = false); - static wxMemStruct *GetCheckpoint(void) { return checkPoint; } - - // Calculated from the request size and any padding needed - // before the final marker. - static size_t PaddedSize (size_t reqSize); - - // Calc the total amount of space we need from the system - // to satisfy a caller request. This includes all padding. - static size_t TotSize (size_t reqSize); - - // Return valid pointers to offsets within the allocated memory. - static char * StructPos (const char * buf); - static char * MidMarkerPos (const char * buf); - static char * CallerMemPos (const char * buf); - static char * EndMarkerPos (const char * buf, size_t size); - - // Given a pointer to the start of the caller requested area - // return a pointer to the start of the entire alloc\'d buffer. - static char * StartPos (const char * caller); - - // Access to the list. - static wxMemStruct * GetHead () { return m_head; } - static wxMemStruct * GetTail () { return m_tail; } - - // Set the list sentinals. - static wxMemStruct * SetHead (wxMemStruct * st) { return (m_head = st); } - static wxMemStruct * SetTail (wxMemStruct * st) { return (m_tail = st); } - - // If this is set then every new operation checks the validity - // of the all previous nodes in the list. - static bool GetCheckPrevious () { return m_checkPrevious; } - static void SetCheckPrevious (bool value) { m_checkPrevious = value; } - - // Checks all nodes, or all nodes if checkAll is true - static int Check(bool checkAll = false); - - // Print out the list of wxMemStruct nodes. - static bool PrintList(void); - - // Dump objects - static bool Dump(void); - - // Print statistics - static bool PrintStatistics(bool detailed = true); - - // Print out the classes in the application. - static bool PrintClasses(void); - - // Count the number of non-wxDebugContext-related objects - // that are outstanding - static int CountObjectsLeft(bool sinceCheckpoint = false); - - // This function is used to output the dump - static void OutputDumpLine(const wxChar *szFormat, ...); - - static void SetShutdownNotifyFunction(wxShutdownNotifyFunction shutdownFn); - -private: - // Store these here to allow access to the list without - // needing to have a wxMemStruct object. - static wxMemStruct* m_head; - static wxMemStruct* m_tail; - - // Set to false if we're not checking all previous nodes when - // we do a new. Set to true when we are. - static bool m_checkPrevious; - - // Holds a pointer to an optional application function to call at shutdown. - static wxShutdownNotifyFunction sm_shutdownFn; - - // Have to access our shutdown hook - friend class wxDebugContextDumpDelayCounter; -}; - -// Final cleanup (e.g. deleting the log object and doing memory leak checking) -// will be delayed until all wxDebugContextDumpDelayCounter objects have been -// destructed. Adding one wxDebugContextDumpDelayCounter per file will delay -// memory leak checking until after destructing all global objects. - -class WXDLLIMPEXP_BASE wxDebugContextDumpDelayCounter -{ -public: - wxDebugContextDumpDelayCounter(); - ~wxDebugContextDumpDelayCounter(); - -private: - void DoDump(); - static int sm_count; -}; - -// make leak dump after all globals have been destructed -static wxDebugContextDumpDelayCounter wxDebugContextDumpDelayCounter_File; -#define WXDEBUG_DUMPDELAYCOUNTER \ - static wxDebugContextDumpDelayCounter wxDebugContextDumpDelayCounter_Extra; - -// Output a debug message, in a system dependent fashion. -void WXDLLIMPEXP_BASE wxTrace(const wxChar *fmt ...) WX_ATTRIBUTE_PRINTF_1; -void WXDLLIMPEXP_BASE wxTraceLevel(int level, const wxChar *fmt ...) WX_ATTRIBUTE_PRINTF_2; - -#define WXTRACE wxTrace -#define WXTRACELEVEL wxTraceLevel - -#else // wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - -#define WXDEBUG_DUMPDELAYCOUNTER - -// Borland C++ Builder 6 seems to have troubles with inline functions (see bug -// 819700) -#if 0 - inline void wxTrace(const wxChar *WXUNUSED(fmt)) {} - inline void wxTraceLevel(int WXUNUSED(level), const wxChar *WXUNUSED(fmt)) {} -#else - #define wxTrace(fmt) - #define wxTraceLevel(l, fmt) -#endif - -#define WXTRACE true ? (void)0 : wxTrace -#define WXTRACELEVEL true ? (void)0 : wxTraceLevel - -#endif // wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - -#endif // _WX_MEMORY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/memtext.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/memtext.h deleted file mode 100644 index 475e8fdc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/memtext.h +++ /dev/null @@ -1,54 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/memtext.h -// Purpose: wxMemoryText allows to use wxTextBuffer without a file -// Created: 14.11.01 -// Author: Morten Hanssen -// Copyright: (c) 2001 Morten Hanssen -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MEMTEXT_H -#define _WX_MEMTEXT_H - -#include "wx/defs.h" - -// there is no separate setting for wxMemoryText, it's smallish anyhow -#if wxUSE_TEXTBUFFER - -// ---------------------------------------------------------------------------- -// wxMemoryText -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMemoryText : public wxTextBuffer -{ -public: - // Constructors. - wxMemoryText() { } - wxMemoryText(const wxString& name) : wxTextBuffer(name) { } - -protected: - virtual bool OnExists() const - { return false; } - - virtual bool OnOpen(const wxString & WXUNUSED(strBufferName), - wxTextBufferOpenMode WXUNUSED(OpenMode)) - { return true; } - - virtual bool OnClose() - { return true; } - - virtual bool OnRead(const wxMBConv& WXUNUSED(conv)) - { return true; } - - virtual bool OnWrite(wxTextFileType WXUNUSED(typeNew), - const wxMBConv& WXUNUSED(conv) = wxMBConvUTF8()) - { return true; } - -private: - wxDECLARE_NO_COPY_CLASS(wxMemoryText); -}; - -#endif // wxUSE_TEXTBUFFER - -#endif // _WX_MEMTEXT_H - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/menu.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/menu.h deleted file mode 100644 index b7334676..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/menu.h +++ /dev/null @@ -1,643 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/menu.h -// Purpose: wxMenu and wxMenuBar classes -// Author: Vadim Zeitlin -// Modified by: -// Created: 26.10.99 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MENU_H_BASE_ -#define _WX_MENU_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_MENUS - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/list.h" // for "template" list classes -#include "wx/window.h" // base class for wxMenuBar - -// also include this one to ensure compatibility with old code which only -// included wx/menu.h -#include "wx/menuitem.h" - -class WXDLLIMPEXP_FWD_CORE wxFrame; -class WXDLLIMPEXP_FWD_CORE wxMenu; -class WXDLLIMPEXP_FWD_CORE wxMenuBarBase; -class WXDLLIMPEXP_FWD_CORE wxMenuBar; -class WXDLLIMPEXP_FWD_CORE wxMenuItem; - -// pseudo template list classes -WX_DECLARE_EXPORTED_LIST(wxMenu, wxMenuList); -WX_DECLARE_EXPORTED_LIST(wxMenuItem, wxMenuItemList); - -// ---------------------------------------------------------------------------- -// wxMenu -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMenuBase : public wxEvtHandler -{ -public: - // create a menu - static wxMenu *New(const wxString& title = wxEmptyString, long style = 0); - - // ctors - wxMenuBase(const wxString& title, long style = 0) : m_title(title) - { Init(style); } - wxMenuBase(long style = 0) - { Init(style); } - - // dtor deletes all the menu items we own - virtual ~wxMenuBase(); - - // menu construction - // ----------------- - - // append any kind of item (normal/check/radio/separator) - wxMenuItem* Append(int itemid, - const wxString& text = wxEmptyString, - const wxString& help = wxEmptyString, - wxItemKind kind = wxITEM_NORMAL) - { - return DoAppend(wxMenuItem::New((wxMenu *)this, itemid, text, help, kind)); - } - - // append a separator to the menu - wxMenuItem* AppendSeparator() { return Append(wxID_SEPARATOR); } - - // append a check item - wxMenuItem* AppendCheckItem(int itemid, - const wxString& text, - const wxString& help = wxEmptyString) - { - return Append(itemid, text, help, wxITEM_CHECK); - } - - // append a radio item - wxMenuItem* AppendRadioItem(int itemid, - const wxString& text, - const wxString& help = wxEmptyString) - { - return Append(itemid, text, help, wxITEM_RADIO); - } - - // append a submenu - wxMenuItem* AppendSubMenu(wxMenu *submenu, - const wxString& text, - const wxString& help = wxEmptyString) - { - return DoAppend(wxMenuItem::New((wxMenu *)this, wxID_ANY, text, help, - wxITEM_NORMAL, submenu)); - } - - // the most generic form of Append() - append anything - wxMenuItem* Append(wxMenuItem *item) { return DoAppend(item); } - - // insert a break in the menu (only works when appending the items, not - // inserting them) - virtual void Break() { } - - // insert an item before given position - wxMenuItem* Insert(size_t pos, wxMenuItem *item); - - // insert an item before given position - wxMenuItem* Insert(size_t pos, - int itemid, - const wxString& text = wxEmptyString, - const wxString& help = wxEmptyString, - wxItemKind kind = wxITEM_NORMAL) - { - return Insert(pos, wxMenuItem::New((wxMenu *)this, itemid, text, help, kind)); - } - - // insert a separator - wxMenuItem* InsertSeparator(size_t pos) - { - return Insert(pos, wxMenuItem::New((wxMenu *)this, wxID_SEPARATOR)); - } - - // insert a check item - wxMenuItem* InsertCheckItem(size_t pos, - int itemid, - const wxString& text, - const wxString& help = wxEmptyString) - { - return Insert(pos, itemid, text, help, wxITEM_CHECK); - } - - // insert a radio item - wxMenuItem* InsertRadioItem(size_t pos, - int itemid, - const wxString& text, - const wxString& help = wxEmptyString) - { - return Insert(pos, itemid, text, help, wxITEM_RADIO); - } - - // insert a submenu - wxMenuItem* Insert(size_t pos, - int itemid, - const wxString& text, - wxMenu *submenu, - const wxString& help = wxEmptyString) - { - return Insert(pos, wxMenuItem::New((wxMenu *)this, itemid, text, help, - wxITEM_NORMAL, submenu)); - } - - // prepend an item to the menu - wxMenuItem* Prepend(wxMenuItem *item) - { - return Insert(0u, item); - } - - // prepend any item to the menu - wxMenuItem* Prepend(int itemid, - const wxString& text = wxEmptyString, - const wxString& help = wxEmptyString, - wxItemKind kind = wxITEM_NORMAL) - { - return Insert(0u, itemid, text, help, kind); - } - - // prepend a separator - wxMenuItem* PrependSeparator() - { - return InsertSeparator(0u); - } - - // prepend a check item - wxMenuItem* PrependCheckItem(int itemid, - const wxString& text, - const wxString& help = wxEmptyString) - { - return InsertCheckItem(0u, itemid, text, help); - } - - // prepend a radio item - wxMenuItem* PrependRadioItem(int itemid, - const wxString& text, - const wxString& help = wxEmptyString) - { - return InsertRadioItem(0u, itemid, text, help); - } - - // prepend a submenu - wxMenuItem* Prepend(int itemid, - const wxString& text, - wxMenu *submenu, - const wxString& help = wxEmptyString) - { - return Insert(0u, itemid, text, submenu, help); - } - - // detach an item from the menu, but don't delete it so that it can be - // added back later (but if it's not, the caller is responsible for - // deleting it!) - wxMenuItem *Remove(int itemid) { return Remove(FindChildItem(itemid)); } - wxMenuItem *Remove(wxMenuItem *item); - - // delete an item from the menu (submenus are not destroyed by this - // function, see Destroy) - bool Delete(int itemid) { return Delete(FindChildItem(itemid)); } - bool Delete(wxMenuItem *item); - - // delete the item from menu and destroy it (if it's a submenu) - bool Destroy(int itemid) { return Destroy(FindChildItem(itemid)); } - bool Destroy(wxMenuItem *item); - - // menu items access - // ----------------- - - // get the items - size_t GetMenuItemCount() const { return m_items.GetCount(); } - - const wxMenuItemList& GetMenuItems() const { return m_items; } - wxMenuItemList& GetMenuItems() { return m_items; } - - // search - virtual int FindItem(const wxString& item) const; - wxMenuItem* FindItem(int itemid, wxMenu **menu = NULL) const; - - // find by position - wxMenuItem* FindItemByPosition(size_t position) const; - - // get/set items attributes - void Enable(int itemid, bool enable); - bool IsEnabled(int itemid) const; - - void Check(int itemid, bool check); - bool IsChecked(int itemid) const; - - void SetLabel(int itemid, const wxString& label); - wxString GetLabel(int itemid) const; - - // Returns the stripped label - wxString GetLabelText(int itemid) const { return wxMenuItem::GetLabelText(GetLabel(itemid)); } - - virtual void SetHelpString(int itemid, const wxString& helpString); - virtual wxString GetHelpString(int itemid) const; - - // misc accessors - // -------------- - - // the title - virtual void SetTitle(const wxString& title) { m_title = title; } - const wxString& GetTitle() const { return m_title; } - - // event handler - void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - wxEvtHandler *GetEventHandler() const { return m_eventHandler; } - - // Invoking window: this is set by wxWindow::PopupMenu() before showing a - // popup menu and reset after it's hidden. Notice that you probably want to - // use GetWindow() below instead of GetInvokingWindow() as the latter only - // returns non-NULL for the top level menus - // - // NB: avoid calling SetInvokingWindow() directly if possible, use - // wxMenuInvokingWindowSetter class below instead - void SetInvokingWindow(wxWindow *win); - wxWindow *GetInvokingWindow() const { return m_invokingWindow; } - - // the window associated with this menu: this is the invoking window for - // popup menus or the top level window to which the menu bar is attached - // for menus which are part of a menu bar - wxWindow *GetWindow() const; - - // style - long GetStyle() const { return m_style; } - - // implementation helpers - // ---------------------- - - // Updates the UI for a menu and all submenus recursively by generating - // wxEVT_UPDATE_UI for all the items. - // - // Do not use the "source" argument, it allows to override the event - // handler to use for these events, but this should never be needed. - void UpdateUI(wxEvtHandler* source = NULL); - - // get the menu bar this menu is attached to (may be NULL, always NULL for - // popup menus). Traverse up the menu hierarchy to find it. - wxMenuBar *GetMenuBar() const; - - // called when the menu is attached/detached to/from a menu bar - virtual void Attach(wxMenuBarBase *menubar); - virtual void Detach(); - - // is the menu attached to a menu bar (or is it a popup one)? - bool IsAttached() const { return GetMenuBar() != NULL; } - - // set/get the parent of this menu - void SetParent(wxMenu *parent) { m_menuParent = parent; } - wxMenu *GetParent() const { return m_menuParent; } - - // implementation only from now on - // ------------------------------- - - // unlike FindItem(), this function doesn't recurse but only looks through - // our direct children and also may return the index of the found child if - // pos != NULL - wxMenuItem *FindChildItem(int itemid, size_t *pos = NULL) const; - - // called to generate a wxCommandEvent, return true if it was processed, - // false otherwise - // - // the checked parameter may have boolean value or -1 for uncheckable items - bool SendEvent(int itemid, int checked = -1); - - // called to dispatch a wxMenuEvent to the right recipients, menu pointer - // can be NULL if we failed to find the associated menu (this happens at - // least in wxMSW for the events from the system menus) - static - bool ProcessMenuEvent(wxMenu* menu, wxMenuEvent& event, wxWindow* win); - - - // compatibility: these functions are deprecated, use the new ones instead - // ----------------------------------------------------------------------- - - // use the versions taking wxItem_XXX now instead, they're more readable - // and allow adding the radio items as well - void Append(int itemid, - const wxString& text, - const wxString& help, - bool isCheckable) - { - Append(itemid, text, help, isCheckable ? wxITEM_CHECK : wxITEM_NORMAL); - } - - // use more readable and not requiring unused itemid AppendSubMenu() instead - wxMenuItem* Append(int itemid, - const wxString& text, - wxMenu *submenu, - const wxString& help = wxEmptyString) - { - return DoAppend(wxMenuItem::New((wxMenu *)this, itemid, text, help, - wxITEM_NORMAL, submenu)); - } - - void Insert(size_t pos, - int itemid, - const wxString& text, - const wxString& help, - bool isCheckable) - { - Insert(pos, itemid, text, help, isCheckable ? wxITEM_CHECK : wxITEM_NORMAL); - } - - void Prepend(int itemid, - const wxString& text, - const wxString& help, - bool isCheckable) - { - Insert(0u, itemid, text, help, isCheckable); - } - - static void LockAccels(bool locked) - { - ms_locked = locked; - } - -protected: - // virtuals to override in derived classes - // --------------------------------------- - - virtual wxMenuItem* DoAppend(wxMenuItem *item); - virtual wxMenuItem* DoInsert(size_t pos, wxMenuItem *item); - - virtual wxMenuItem *DoRemove(wxMenuItem *item); - virtual bool DoDelete(wxMenuItem *item); - virtual bool DoDestroy(wxMenuItem *item); - - // helpers - // ------- - - // common part of all ctors - void Init(long style); - - // associate the submenu with this menu - void AddSubMenu(wxMenu *submenu); - - wxMenuBar *m_menuBar; // menubar we belong to or NULL - wxMenu *m_menuParent; // parent menu or NULL - - wxString m_title; // the menu title or label - wxMenuItemList m_items; // the list of menu items - - wxWindow *m_invokingWindow; // for popup menus - - long m_style; // combination of wxMENU_XXX flags - - wxEvtHandler *m_eventHandler; // a pluggable in event handler - - static bool ms_locked; - - -private: - // Common part of SendEvent() and ProcessMenuEvent(): sends the event to - // its intended recipients, returns true if it was processed. - static bool DoProcessEvent(wxMenuBase* menu, wxEvent& event, wxWindow* win); - - wxDECLARE_NO_COPY_CLASS(wxMenuBase); -}; - -#if wxUSE_EXTENDED_RTTI - -// ---------------------------------------------------------------------------- -// XTI accessor -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxMenuInfoHelper : public wxObject -{ -public: - wxMenuInfoHelper() { m_menu = NULL; } - virtual ~wxMenuInfoHelper() { } - - bool Create( wxMenu *menu, const wxString &title ) - { - m_menu = menu; - m_title = title; - return true; - } - - wxMenu* GetMenu() const { return m_menu; } - wxString GetTitle() const { return m_title; } - -private: - wxMenu *m_menu; - wxString m_title; - - wxDECLARE_DYNAMIC_CLASS(wxMenuInfoHelper); -}; - -WX_DECLARE_EXPORTED_LIST(wxMenuInfoHelper, wxMenuInfoHelperList ); - -#endif - -// ---------------------------------------------------------------------------- -// wxMenuBar -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMenuBarBase : public wxWindow -{ -public: - // default ctor - wxMenuBarBase(); - - // dtor will delete all menus we own - virtual ~wxMenuBarBase(); - - // menu bar construction - // --------------------- - - // append a menu to the end of menubar, return true if ok - virtual bool Append(wxMenu *menu, const wxString& title); - - // insert a menu before the given position into the menubar, return true - // if inserted ok - virtual bool Insert(size_t pos, wxMenu *menu, const wxString& title); - - // menu bar items access - // --------------------- - - // get the number of menus in the menu bar - size_t GetMenuCount() const { return m_menus.GetCount(); } - - // get the menu at given position - wxMenu *GetMenu(size_t pos) const; - - // replace the menu at given position with another one, returns the - // previous menu (which should be deleted by the caller) - virtual wxMenu *Replace(size_t pos, wxMenu *menu, const wxString& title); - - // delete the menu at given position from the menu bar, return the pointer - // to the menu (which should be deleted by the caller) - virtual wxMenu *Remove(size_t pos); - - // enable or disable a submenu - virtual void EnableTop(size_t pos, bool enable) = 0; - - // is the menu enabled? - virtual bool IsEnabledTop(size_t WXUNUSED(pos)) const { return true; } - - // get or change the label of the menu at given position - virtual void SetMenuLabel(size_t pos, const wxString& label) = 0; - virtual wxString GetMenuLabel(size_t pos) const = 0; - - // get the stripped label of the menu at given position - virtual wxString GetMenuLabelText(size_t pos) const { return wxMenuItem::GetLabelText(GetMenuLabel(pos)); } - - // item search - // ----------- - - // by menu and item names, returns wxNOT_FOUND if not found or id of the - // found item - virtual int FindMenuItem(const wxString& menu, const wxString& item) const; - - // find item by id (in any menu), returns NULL if not found - // - // if menu is !NULL, it will be filled with wxMenu this item belongs to - virtual wxMenuItem* FindItem(int itemid, wxMenu **menu = NULL) const; - - // find menu by its caption, return wxNOT_FOUND on failure - int FindMenu(const wxString& title) const; - - // item access - // ----------- - - // all these functions just use FindItem() and then call an appropriate - // method on it - // - // NB: under MSW, these methods can only be used after the menubar had - // been attached to the frame - - void Enable(int itemid, bool enable); - void Check(int itemid, bool check); - bool IsChecked(int itemid) const; - bool IsEnabled(int itemid) const; - virtual bool IsEnabled() const { return wxWindow::IsEnabled(); } - - void SetLabel(int itemid, const wxString &label); - wxString GetLabel(int itemid) const; - - void SetHelpString(int itemid, const wxString& helpString); - wxString GetHelpString(int itemid) const; - - // implementation helpers - - // get the frame we are attached to (may return NULL) - wxFrame *GetFrame() const { return m_menuBarFrame; } - - // returns true if we're attached to a frame - bool IsAttached() const { return GetFrame() != NULL; } - - // associate the menubar with the frame - virtual void Attach(wxFrame *frame); - - // called before deleting the menubar normally - virtual void Detach(); - - // need to override these ones to avoid virtual function hiding - virtual bool Enable(bool enable = true) wxOVERRIDE { return wxWindow::Enable(enable); } - virtual void SetLabel(const wxString& s) wxOVERRIDE { wxWindow::SetLabel(s); } - virtual wxString GetLabel() const wxOVERRIDE { return wxWindow::GetLabel(); } - - // don't want menu bars to accept the focus by tabbing to them - virtual bool AcceptsFocusFromKeyboard() const wxOVERRIDE { return false; } - - // update all menu item states in all menus - virtual void UpdateMenus(); - - virtual bool CanBeOutsideClientArea() const wxOVERRIDE { return true; } - -#if wxUSE_EXTENDED_RTTI - // XTI helpers: - bool AppendMenuInfo( const wxMenuInfoHelper *info ) - { return Append( info->GetMenu(), info->GetTitle() ); } - const wxMenuInfoHelperList& GetMenuInfos() const; -#endif - -#if WXWIN_COMPATIBILITY_2_8 - // get or change the label of the menu at given position - // Deprecated in favour of SetMenuLabel - wxDEPRECATED( void SetLabelTop(size_t pos, const wxString& label) ); - // Deprecated in favour of GetMenuLabelText - wxDEPRECATED( wxString GetLabelTop(size_t pos) const ); -#endif - -protected: - // the list of all our menus - wxMenuList m_menus; - -#if wxUSE_EXTENDED_RTTI - // used by XTI - wxMenuInfoHelperList m_menuInfos; -#endif - - // the frame we are attached to (may be NULL) - wxFrame *m_menuBarFrame; - - wxDECLARE_NO_COPY_CLASS(wxMenuBarBase); -}; - -// ---------------------------------------------------------------------------- -// include the real class declaration -// ---------------------------------------------------------------------------- - -#ifdef wxUSE_BASE_CLASSES_ONLY - #define wxMenuItem wxMenuItemBase -#else // !wxUSE_BASE_CLASSES_ONLY -#if defined(__WXUNIVERSAL__) - #include "wx/univ/menu.h" -#elif defined(__WXMSW__) - #include "wx/msw/menu.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/menu.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/menu.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/menu.h" -#elif defined(__WXMAC__) - #include "wx/osx/menu.h" -#elif defined(__WXQT__) - #include "wx/qt/menu.h" -#endif -#endif // wxUSE_BASE_CLASSES_ONLY/!wxUSE_BASE_CLASSES_ONLY - -// ---------------------------------------------------------------------------- -// Helper class used in the implementation only: sets the invoking window of -// the given menu in its ctor and resets it in dtor. -// ---------------------------------------------------------------------------- - -class wxMenuInvokingWindowSetter -{ -public: - // Ctor sets the invoking window for the given menu. - // - // The menu lifetime must be greater than that of this class. - wxMenuInvokingWindowSetter(wxMenu& menu, wxWindow *win) - : m_menu(menu) - { - menu.SetInvokingWindow(win); - } - - // Dtor resets the invoking window. - ~wxMenuInvokingWindowSetter() - { - m_menu.SetInvokingWindow(NULL); - } - -private: - wxMenu& m_menu; - - wxDECLARE_NO_COPY_CLASS(wxMenuInvokingWindowSetter); -}; - -#endif // wxUSE_MENUS - -#endif // _WX_MENU_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/menuitem.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/menuitem.h deleted file mode 100644 index 826086d1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/menuitem.h +++ /dev/null @@ -1,215 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/menuitem.h -// Purpose: wxMenuItem class -// Author: Vadim Zeitlin -// Modified by: -// Created: 25.10.99 -// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MENUITEM_H_BASE_ -#define _WX_MENUITEM_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_MENUS - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/object.h" // base class - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxAcceleratorEntry; -class WXDLLIMPEXP_FWD_CORE wxMenuItem; -class WXDLLIMPEXP_FWD_CORE wxMenu; - -// ---------------------------------------------------------------------------- -// wxMenuItem is an item in the menu which may be either a normal item, a sub -// menu or a separator -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMenuItemBase : public wxObject -{ -public: - // creation - static wxMenuItem *New(wxMenu *parentMenu = NULL, - int itemid = wxID_SEPARATOR, - const wxString& text = wxEmptyString, - const wxString& help = wxEmptyString, - wxItemKind kind = wxITEM_NORMAL, - wxMenu *subMenu = NULL); - - // destruction: wxMenuItem will delete its submenu - virtual ~wxMenuItemBase(); - - // the menu we're in - wxMenu *GetMenu() const { return m_parentMenu; } - void SetMenu(wxMenu* menu) { m_parentMenu = menu; } - - // get/set id - void SetId(int itemid) { m_id = itemid; } - int GetId() const { return m_id; } - - // the item's text (or name) - // - // NB: the item's label includes the accelerators and mnemonics info (if - // any), i.e. it may contain '&' or '_' or "\t..." and thus is - // different from the item's text which only contains the text shown - // in the menu. This used to be called SetText. - virtual void SetItemLabel(const wxString& str); - - // return the item label including any mnemonics and accelerators. - // This used to be called GetText. - virtual wxString GetItemLabel() const { return m_text; } - - // return just the text of the item label, without any mnemonics - // This used to be called GetLabel. - virtual wxString GetItemLabelText() const { return GetLabelText(m_text); } - - // return just the text part of the given label (implemented in platform-specific code) - // This used to be called GetLabelFromText. - static wxString GetLabelText(const wxString& label); - - // what kind of menu item we are - wxItemKind GetKind() const { return m_kind; } - void SetKind(wxItemKind kind) { m_kind = kind; } - bool IsSeparator() const { return m_kind == wxITEM_SEPARATOR; } - - bool IsCheck() const { return m_kind == wxITEM_CHECK; } - bool IsRadio() const { return m_kind == wxITEM_RADIO; } - - virtual void SetCheckable(bool checkable) - { m_kind = checkable ? wxITEM_CHECK : wxITEM_NORMAL; } - - // Notice that this doesn't quite match SetCheckable(). - bool IsCheckable() const - { return m_kind == wxITEM_CHECK || m_kind == wxITEM_RADIO; } - - bool IsSubMenu() const { return m_subMenu != NULL; } - void SetSubMenu(wxMenu *menu) { m_subMenu = menu; } - wxMenu *GetSubMenu() const { return m_subMenu; } - - // state - virtual void Enable(bool enable = true) { m_isEnabled = enable; } - virtual bool IsEnabled() const { return m_isEnabled; } - - virtual void Check(bool check = true) { m_isChecked = check; } - virtual bool IsChecked() const { return m_isChecked; } - void Toggle() { Check(!m_isChecked); } - - // help string (displayed in the status bar by default) - void SetHelp(const wxString& str); - const wxString& GetHelp() const { return m_help; } - -#if wxUSE_ACCEL - // extract the accelerator from the given menu string, return NULL if none - // found - static wxAcceleratorEntry *GetAccelFromString(const wxString& label); - - // get our accelerator or NULL (caller must delete the pointer) - virtual wxAcceleratorEntry *GetAccel() const; - - // set the accel for this item - this may also be done indirectly with - // SetText() - virtual void SetAccel(wxAcceleratorEntry *accel); -#endif // wxUSE_ACCEL - -#if WXWIN_COMPATIBILITY_2_8 - // compatibility only, use new functions in the new code - wxDEPRECATED( void SetName(const wxString& str) ); - wxDEPRECATED( wxString GetName() const ); - - // Now use GetItemLabelText - wxDEPRECATED( wxString GetLabel() const ) ; - - // Now use GetItemLabel - wxDEPRECATED( const wxString& GetText() const ); - - // Now use GetLabelText to strip the accelerators - static wxDEPRECATED( wxString GetLabelFromText(const wxString& text) ); - - // Now use SetItemLabel - wxDEPRECATED( virtual void SetText(const wxString& str) ); -#endif // WXWIN_COMPATIBILITY_2_8 - - static wxMenuItem *New(wxMenu *parentMenu, - int itemid, - const wxString& text, - const wxString& help, - bool isCheckable, - wxMenu *subMenu = NULL) - { - return New(parentMenu, itemid, text, help, - isCheckable ? wxITEM_CHECK : wxITEM_NORMAL, subMenu); - } - -protected: - wxWindowIDRef m_id; // numeric id of the item >= 0 or wxID_ANY or wxID_SEPARATOR - wxMenu *m_parentMenu, // the menu we belong to - *m_subMenu; // our sub menu or NULL - wxString m_text, // label of the item - m_help; // the help string for the item - wxItemKind m_kind; // separator/normal/check/radio item? - bool m_isChecked; // is checked? - bool m_isEnabled; // is enabled? - - // this ctor is for the derived classes only, we're never created directly - wxMenuItemBase(wxMenu *parentMenu = NULL, - int itemid = wxID_SEPARATOR, - const wxString& text = wxEmptyString, - const wxString& help = wxEmptyString, - wxItemKind kind = wxITEM_NORMAL, - wxMenu *subMenu = NULL); - -private: - // and, if we have one ctor, compiler won't generate a default copy one, so - // declare them ourselves - but don't implement as they shouldn't be used - wxMenuItemBase(const wxMenuItemBase& item); - wxMenuItemBase& operator=(const wxMenuItemBase& item); -}; - -#if WXWIN_COMPATIBILITY_2_8 -inline void wxMenuItemBase::SetName(const wxString &str) - { SetItemLabel(str); } -inline wxString wxMenuItemBase::GetName() const - { return GetItemLabel(); } -inline wxString wxMenuItemBase::GetLabel() const - { return GetLabelText(m_text); } -inline const wxString& wxMenuItemBase::GetText() const { return m_text; } -inline void wxMenuItemBase::SetText(const wxString& text) { SetItemLabel(text); } -#endif // WXWIN_COMPATIBILITY_2_8 - -// ---------------------------------------------------------------------------- -// include the real class declaration -// ---------------------------------------------------------------------------- - -#ifdef wxUSE_BASE_CLASSES_ONLY - #define wxMenuItem wxMenuItemBase -#else // !wxUSE_BASE_CLASSES_ONLY -#if defined(__WXUNIVERSAL__) - #include "wx/univ/menuitem.h" -#elif defined(__WXMSW__) - #include "wx/msw/menuitem.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/menuitem.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/menuitem.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/menuitem.h" -#elif defined(__WXMAC__) - #include "wx/osx/menuitem.h" -#elif defined(__WXQT__) - #include "wx/qt/menuitem.h" -#endif -#endif // wxUSE_BASE_CLASSES_ONLY/!wxUSE_BASE_CLASSES_ONLY - -#endif // wxUSE_MENUS - -#endif - // _WX_MENUITEM_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/convertible.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/convertible.h deleted file mode 100644 index 45999378..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/convertible.h +++ /dev/null @@ -1,38 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/meta/convertible.h -// Purpose: Test if types are convertible -// Author: Arne Steinarson -// Created: 2008-01-10 -// Copyright: (c) 2008 Arne Steinarson -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_META_CONVERTIBLE_H_ -#define _WX_META_CONVERTIBLE_H_ - -// -// Introduce an extra class to make this header compilable with g++3.2 -// -template <class D, class B> -struct wxConvertibleTo_SizeHelper -{ - static char Match(B* pb); - static int Match(...); -}; - -// Helper to decide if an object of type D is convertible to type B (the test -// succeeds in particular when D derives from B) -template <class D, class B> -struct wxConvertibleTo -{ - enum - { - value = - sizeof(wxConvertibleTo_SizeHelper<D,B>::Match(static_cast<D*>(NULL))) - == - sizeof(char) - }; -}; - -#endif // _WX_META_CONVERTIBLE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/if.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/if.h deleted file mode 100644 index 0d93e818..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/if.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/meta/if.h -// Purpose: declares wxIf<> metaprogramming construct -// Author: Vaclav Slavik -// Created: 2008-01-22 -// Copyright: (c) 2008 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_META_IF_H_ -#define _WX_META_IF_H_ - -#include "wx/defs.h" - -namespace wxPrivate -{ - -template <bool Cond> -struct wxIfImpl; - -// specialization for true: -template <> -struct wxIfImpl<true> -{ - template<typename TTrue, typename TFalse> struct Result - { - typedef TTrue value; - }; -}; - -// specialization for false: -template<> -struct wxIfImpl<false> -{ - template<typename TTrue, typename TFalse> struct Result - { - typedef TFalse value; - }; -}; - -} // namespace wxPrivate - -// wxIf<> template defines nested type "value" which is the same as -// TTrue if the condition Cond (boolean compile-time constant) was met and -// TFalse if it wasn't. -// -// See wxVector<T> in vector.h for usage example -template<bool Cond, typename TTrue, typename TFalse> -struct wxIf -{ - typedef typename wxPrivate::wxIfImpl<Cond> - ::template Result<TTrue, TFalse>::value - value; -}; - -#endif // _WX_META_IF_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/implicitconversion.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/implicitconversion.h deleted file mode 100644 index 2207cb19..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/implicitconversion.h +++ /dev/null @@ -1,102 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/meta/implicitconversion.h -// Purpose: Determine resulting type from implicit conversion -// Author: Vaclav Slavik -// Created: 2010-10-22 -// Copyright: (c) 2010 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_META_IMPLICITCONVERSION_H_ -#define _WX_META_IMPLICITCONVERSION_H_ - -#include "wx/defs.h" -#include "wx/meta/if.h" - -// C++ hierarchy of data types is: -// -// Long double (highest) -// Double -// Float -// Unsigned long int -// Long int -// Unsigned int -// Int (lowest) -// -// Types lower in the hierarchy are converted into ones higher up if both are -// involved e.g. in arithmetic expressions. - -namespace wxPrivate -{ - -template<typename T> -struct TypeHierarchy -{ - // consider unknown types (e.g. objects, pointers) to be of highest - // level, always convert to them if they occur - static const int level = 9999; -}; - -#define WX_TYPE_HIERARCHY_LEVEL(level_num, type) \ - template<> struct TypeHierarchy<type> \ - { \ - static const int level = level_num; \ - } - -WX_TYPE_HIERARCHY_LEVEL( 1, char); -WX_TYPE_HIERARCHY_LEVEL( 2, unsigned char); -WX_TYPE_HIERARCHY_LEVEL( 3, short); -WX_TYPE_HIERARCHY_LEVEL( 4, unsigned short); -WX_TYPE_HIERARCHY_LEVEL( 5, int); -WX_TYPE_HIERARCHY_LEVEL( 6, unsigned int); -WX_TYPE_HIERARCHY_LEVEL( 7, long); -WX_TYPE_HIERARCHY_LEVEL( 8, unsigned long); -#ifdef wxLongLong_t -WX_TYPE_HIERARCHY_LEVEL( 9, wxLongLong_t); -WX_TYPE_HIERARCHY_LEVEL(10, wxULongLong_t); -#endif -WX_TYPE_HIERARCHY_LEVEL(11, float); -WX_TYPE_HIERARCHY_LEVEL(12, double); -WX_TYPE_HIERARCHY_LEVEL(13, long double); - -#if wxWCHAR_T_IS_REAL_TYPE - #if SIZEOF_WCHAR_T == SIZEOF_SHORT - template<> struct TypeHierarchy<wchar_t> : public TypeHierarchy<short> {}; - #elif SIZEOF_WCHAR_T == SIZEOF_INT - template<> struct TypeHierarchy<wchar_t> : public TypeHierarchy<int> {}; - #elif SIZEOF_WCHAR_T == SIZEOF_LONG - template<> struct TypeHierarchy<wchar_t> : public TypeHierarchy<long> {}; - #else - #error "weird wchar_t size, please update this code" - #endif -#endif - -#undef WX_TYPE_HIERARCHY_LEVEL - -} // namespace wxPrivate - -// Helper to determine resulting type of implicit conversion in -// an expression with two arithmetic types. -template<typename T1, typename T2> -struct wxImplicitConversionType -{ - typedef typename wxIf - < - // if T2 is "higher" type, convert to it - (int)(wxPrivate::TypeHierarchy<T1>::level) < (int)(wxPrivate::TypeHierarchy<T2>::level), - T2, - // otherwise use T1 - T1 - >::value - value; -}; - - -template<typename T1, typename T2, typename T3> -struct wxImplicitConversionType3 : public wxImplicitConversionType< - T1, - typename wxImplicitConversionType<T2,T3>::value> -{ -}; - -#endif // _WX_META_IMPLICITCONVERSION_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/int2type.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/int2type.h deleted file mode 100644 index 7b8d5dc0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/int2type.h +++ /dev/null @@ -1,16 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/meta/int2type.h -// Purpose: Generate a unique type from a constant integer -// Author: Arne Steinarson -// Created: 2008-01-10 -// Copyright: (c) 2008 Arne Steinarson -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_META_INT2TYPE_H_ -#define _WX_META_INT2TYPE_H_ - -template <int N> -struct wxInt2Type { enum { value=N }; }; - -#endif // _WX_META_INT2TYPE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/movable.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/movable.h deleted file mode 100644 index 6e6aac97..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/movable.h +++ /dev/null @@ -1,44 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/meta/movable.h -// Purpose: Test if a type is movable using memmove() etc. -// Author: Vaclav Slavik -// Created: 2008-01-21 -// Copyright: (c) 2008 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_META_MOVABLE_H_ -#define _WX_META_MOVABLE_H_ - -#include "wx/meta/pod.h" -#include "wx/string.h" // for wxIsMovable<wxString> specialization - -// Helper to decide if an object of type T is "movable", i.e. if it can be -// copied to another memory location using memmove() or realloc() C functions. -// C++ only gurantees that POD types (including primitive types) are -// movable. -template<typename T> -struct wxIsMovable -{ - static const bool value = wxIsPod<T>::value; -}; - -// Macro to add wxIsMovable<T> specialization for given type that marks it -// as movable: -#define WX_DECLARE_TYPE_MOVABLE(type) \ - template<> struct wxIsMovable<type> \ - { \ - static const bool value = true; \ - }; - -// Our implementation of wxString is written in such way that it's safe to move -// it around (unless position cache is used which unfortunately breaks this). -// OTOH, we don't know anything about std::string. -// (NB: we don't put this into string.h and choose to include wx/string.h from -// here instead so that rarely-used wxIsMovable<T> code isn't included by -// everything) -#if !wxUSE_STD_STRING && !wxUSE_STRING_POS_CACHE -WX_DECLARE_TYPE_MOVABLE(wxString) -#endif - -#endif // _WX_META_MOVABLE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/pod.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/pod.h deleted file mode 100644 index fa4395c6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/pod.h +++ /dev/null @@ -1,69 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/meta/pod.h -// Purpose: Test if a type is POD -// Author: Vaclav Slavik, Jaakko Salli -// Created: 2010-06-14 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_META_POD_H_ -#define _WX_META_POD_H_ - -#include "wx/defs.h" - -// -// TODO: Use TR1 is_pod<> implementation where available. VC9 SP1 has it -// in tr1 namespace, VC10 has it in std namespace. GCC 4.2 has it in -// <tr1/type_traits>, while GCC 4.3 and later have it in <type_traits>. -// - -// Helper to decide if an object of type T is POD (Plain Old Data) -template<typename T> -struct wxIsPod -{ - static const bool value = false; -}; - -// Macro to add wxIsPod<T> specialization for given type that marks it -// as Plain Old Data: -#define WX_DECLARE_TYPE_POD(type) \ - template<> struct wxIsPod<type> \ - { \ - static const bool value = true; \ - }; - -WX_DECLARE_TYPE_POD(bool) -WX_DECLARE_TYPE_POD(unsigned char) -WX_DECLARE_TYPE_POD(signed char) -WX_DECLARE_TYPE_POD(unsigned int) -WX_DECLARE_TYPE_POD(signed int) -WX_DECLARE_TYPE_POD(unsigned short int) -WX_DECLARE_TYPE_POD(signed short int) -WX_DECLARE_TYPE_POD(signed long int) -WX_DECLARE_TYPE_POD(unsigned long int) -WX_DECLARE_TYPE_POD(float) -WX_DECLARE_TYPE_POD(double) -WX_DECLARE_TYPE_POD(long double) -#if wxWCHAR_T_IS_REAL_TYPE -WX_DECLARE_TYPE_POD(wchar_t) -#endif -#ifdef wxLongLong_t -WX_DECLARE_TYPE_POD(wxLongLong_t) -WX_DECLARE_TYPE_POD(wxULongLong_t) -#endif - -// pointers are Plain Old Data: -template<typename T> -struct wxIsPod<T*> -{ - static const bool value = true; -}; - -template<typename T> -struct wxIsPod<const T*> -{ - static const bool value = true; -}; - -#endif // _WX_META_POD_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/removeref.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/removeref.h deleted file mode 100644 index efef170f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/meta/removeref.h +++ /dev/null @@ -1,33 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/meta/removeref.h -// Purpose: Allows to remove a reference from a type. -// Author: Vadim Zeitlin -// Created: 2012-10-21 -// Copyright: (c) 2012 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_META_REMOVEREF_H_ -#define _WX_META_REMOVEREF_H_ - -// wxRemoveRef<> is similar to C++11 std::remove_reference<> but works with all -// compilers (but, to compensate for this, doesn't work with rvalue references). - -template <typename T> -struct wxRemoveRef -{ - typedef T type; -}; - -template <typename T> -struct wxRemoveRef<T&> -{ - typedef T type; -}; - -// Define this for compatibility with the previous versions in which -// wxRemoveRef() wasn't always defined as we supported MSVC6 for which it -// couldn't be implemented. -#define wxHAS_REMOVEREF - -#endif // _WX_META_REMOVEREF_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/metafile.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/metafile.h deleted file mode 100644 index e5e6dd03..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/metafile.h +++ /dev/null @@ -1,51 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/metafile.h -// Purpose: wxMetaFile class declaration -// Author: wxWidgets team -// Modified by: -// Created: 13.01.00 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_METAFILE_H_BASE_ -#define _WX_METAFILE_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_METAFILE - -// provide synonyms for all metafile classes -#define wxMetaFile wxMetafile -#define wxMetaFileDC wxMetafileDC -#define wxMetaFileDataObject wxMetafileDataObject - -#define wxMakeMetaFilePlaceable wxMakeMetafilePlaceable - -#if defined(__WXMSW__) - #if wxUSE_ENH_METAFILE - #include "wx/msw/enhmeta.h" - - #if wxUSE_WIN_METAFILES_ALWAYS - // use normal metafiles as well - #include "wx/msw/metafile.h" - #else // also map all metafile classes to enh metafile - typedef wxEnhMetaFile wxMetafile; - typedef wxEnhMetaFileDC wxMetafileDC; - #if wxUSE_DRAG_AND_DROP - typedef wxEnhMetaFileDataObject wxMetafileDataObject; - #endif - - // this flag will be set if wxMetafile class is wxEnhMetaFile - #define wxMETAFILE_IS_ENH - #endif // wxUSE_WIN_METAFILES_ALWAYS - #else // !wxUSE_ENH_METAFILE - #include "wx/msw/metafile.h" - #endif -#elif defined(__WXMAC__) - #include "wx/osx/metafile.h" -#endif - -#endif // wxUSE_METAFILE - -#endif // _WX_METAFILE_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mimetype.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mimetype.h deleted file mode 100644 index 07c38809..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mimetype.h +++ /dev/null @@ -1,493 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/mimetype.h -// Purpose: classes and functions to manage MIME types -// Author: Vadim Zeitlin -// Modified by: -// Chris Elliott (biol75@york.ac.uk) 5 Dec 00: write support for Win32 -// Created: 23.09.98 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence (part of wxExtra library) -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MIMETYPE_H_ -#define _WX_MIMETYPE_H_ - -// ---------------------------------------------------------------------------- -// headers and such -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_MIMETYPE - -// the things we really need -#include "wx/string.h" -#include "wx/dynarray.h" -#include "wx/arrstr.h" - -#include <stdarg.h> - -// fwd decls -class WXDLLIMPEXP_FWD_BASE wxIconLocation; -class WXDLLIMPEXP_FWD_BASE wxFileTypeImpl; -class WXDLLIMPEXP_FWD_BASE wxMimeTypesManagerImpl; - -// these constants define the MIME informations source under UNIX and are used -// by wxMimeTypesManager::Initialize() -enum wxMailcapStyle -{ - wxMAILCAP_STANDARD = 1, - wxMAILCAP_NETSCAPE = 2, - wxMAILCAP_KDE = 4, - wxMAILCAP_GNOME = 8, - - wxMAILCAP_ALL = 15 -}; - -/* - TODO: would it be more convenient to have this class? - -class WXDLLIMPEXP_BASE wxMimeType : public wxString -{ -public: - // all string ctors here - - wxString GetType() const { return BeforeFirst(wxT('/')); } - wxString GetSubType() const { return AfterFirst(wxT('/')); } - - void SetSubType(const wxString& subtype) - { - *this = GetType() + wxT('/') + subtype; - } - - bool Matches(const wxMimeType& wildcard) - { - // implement using wxMimeTypesManager::IsOfType() - } -}; - -*/ - -// wxMimeTypeCommands stores the verbs defined for the given MIME type with -// their values -class WXDLLIMPEXP_BASE wxMimeTypeCommands -{ -public: - wxMimeTypeCommands() {} - - wxMimeTypeCommands(const wxArrayString& verbs, - const wxArrayString& commands) - : m_verbs(verbs), - m_commands(commands) - { - } - - // add a new verb with the command or replace the old value - void AddOrReplaceVerb(const wxString& verb, const wxString& cmd); - void Add(const wxString& s) - { - m_verbs.Add(s.BeforeFirst(wxT('='))); - m_commands.Add(s.AfterFirst(wxT('='))); - } - - // access the commands - size_t GetCount() const { return m_verbs.GetCount(); } - const wxString& GetVerb(size_t n) const { return m_verbs[n]; } - const wxString& GetCmd(size_t n) const { return m_commands[n]; } - - bool HasVerb(const wxString& verb) const - { return m_verbs.Index(verb) != wxNOT_FOUND; } - - // returns empty string and wxNOT_FOUND in idx if no such verb - wxString GetCommandForVerb(const wxString& verb, size_t *idx = NULL) const; - - // get a "verb=command" string - wxString GetVerbCmd(size_t n) const; - -private: - wxArrayString m_verbs; - wxArrayString m_commands; -}; - -// ---------------------------------------------------------------------------- -// wxFileTypeInfo: static container of information accessed via wxFileType. -// -// This class is used with wxMimeTypesManager::AddFallbacks() and Associate() -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxFileTypeInfo -{ -private: - void DoVarArgInit(const wxString& mimeType, - const wxString& openCmd, - const wxString& printCmd, - const wxString& desc, - va_list argptr); - - void VarArgInit(const wxString *mimeType, - const wxString *openCmd, - const wxString *printCmd, - const wxString *desc, - // the other parameters form a NULL terminated list of - // extensions - ...); - -public: - // NB: This is a helper to get implicit conversion of variadic ctor's - // fixed arguments into something that can be passed to VarArgInit(). - // Do not use, it's used by the ctor only. - struct CtorString - { - CtorString(const char *str) : m_str(str) {} - CtorString(const wchar_t *str) : m_str(str) {} - CtorString(const wxString& str) : m_str(str) {} - CtorString(const wxCStrData& str) : m_str(str) {} - CtorString(const wxScopedCharBuffer& str) : m_str(str) {} - CtorString(const wxScopedWCharBuffer& str) : m_str(str) {} - - operator const wxString*() const { return &m_str; } - - wxString m_str; - }; - - // ctors - - // Ctor specifying just the MIME type (which is mandatory), the other - // fields can be set later if needed. - wxFileTypeInfo(const wxString& mimeType) - : m_mimeType(mimeType) - { - } - - // Ctor allowing to specify the values of all fields at once: - // - // wxFileTypeInfo(const wxString& mimeType, - // const wxString& openCmd, - // const wxString& printCmd, - // const wxString& desc, - // // the other parameters form a list of extensions for this - // // file type and should be terminated with wxNullPtr (not - // // just NULL!) - // ...); - WX_DEFINE_VARARG_FUNC_CTOR(wxFileTypeInfo, - 4, (const CtorString&, - const CtorString&, - const CtorString&, - const CtorString&), - VarArgInit, VarArgInit) - - // the array elements correspond to the parameters of the ctor above in - // the same order - wxFileTypeInfo(const wxArrayString& sArray); - - // invalid item - use this to terminate the array passed to - // wxMimeTypesManager::AddFallbacks - wxFileTypeInfo() { } - - // test if this object can be used - bool IsValid() const { return !m_mimeType.empty(); } - - // setters - // set the open/print commands - void SetOpenCommand(const wxString& command) { m_openCmd = command; } - void SetPrintCommand(const wxString& command) { m_printCmd = command; } - - // set the description - void SetDescription(const wxString& desc) { m_desc = desc; } - - // add another extension corresponding to this file type - void AddExtension(const wxString& ext) { m_exts.push_back(ext); } - - // set the icon info - void SetIcon(const wxString& iconFile, int iconIndex = 0) - { - m_iconFile = iconFile; - m_iconIndex = iconIndex; - } - // set the short desc - void SetShortDesc(const wxString& shortDesc) { m_shortDesc = shortDesc; } - - // accessors - // get the MIME type - const wxString& GetMimeType() const { return m_mimeType; } - // get the open command - const wxString& GetOpenCommand() const { return m_openCmd; } - // get the print command - const wxString& GetPrintCommand() const { return m_printCmd; } - // get the short description (only used under Win32 so far) - const wxString& GetShortDesc() const { return m_shortDesc; } - // get the long, user visible description - const wxString& GetDescription() const { return m_desc; } - // get the array of all extensions - const wxArrayString& GetExtensions() const { return m_exts; } - size_t GetExtensionsCount() const {return m_exts.GetCount(); } - // get the icon info - const wxString& GetIconFile() const { return m_iconFile; } - int GetIconIndex() const { return m_iconIndex; } - -private: - wxString m_mimeType, // the MIME type in "type/subtype" form - m_openCmd, // command to use for opening the file (%s allowed) - m_printCmd, // command to use for printing the file (%s allowed) - m_shortDesc, // a short string used in the registry - m_desc; // a free form description of this file type - - // icon stuff - wxString m_iconFile; // the file containing the icon - int m_iconIndex; // icon index in this file - - wxArrayString m_exts; // the extensions which are mapped on this filetype - - -#if 0 // TODO - // the additional (except "open" and "print") command names and values - wxArrayString m_commandNames, - m_commandValues; -#endif // 0 -}; - -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxFileTypeInfo, wxArrayFileTypeInfo, - WXDLLIMPEXP_BASE); - -// ---------------------------------------------------------------------------- -// wxFileType: gives access to all information about the files of given type. -// -// This class holds information about a given "file type". File type is the -// same as MIME type under Unix, but under Windows it corresponds more to an -// extension than to MIME type (in fact, several extensions may correspond to a -// file type). This object may be created in many different ways and depending -// on how it was created some fields may be unknown so the return value of all -// the accessors *must* be checked! -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxFileType -{ -friend class WXDLLIMPEXP_FWD_BASE wxMimeTypesManagerImpl; // it has access to m_impl - -public: - // An object of this class must be passed to Get{Open|Print}Command. The - // default implementation is trivial and doesn't know anything at all about - // parameters, only filename and MIME type are used (so it's probably ok for - // Windows where %{param} is not used anyhow) - class MessageParameters - { - public: - // ctors - MessageParameters() { } - MessageParameters(const wxString& filename, - const wxString& mimetype = wxEmptyString) - : m_filename(filename), m_mimetype(mimetype) { } - - // accessors (called by GetOpenCommand) - // filename - const wxString& GetFileName() const { return m_filename; } - // mime type - const wxString& GetMimeType() const { return m_mimetype; } - - // override this function in derived class - virtual wxString GetParamValue(const wxString& WXUNUSED(name)) const - { return wxEmptyString; } - - // virtual dtor as in any base class - virtual ~MessageParameters() { } - - protected: - wxString m_filename, m_mimetype; - }; - - // ctor from static data - wxFileType(const wxFileTypeInfo& ftInfo); - - // accessors: all of them return true if the corresponding information - // could be retrieved/found, false otherwise (and in this case all [out] - // parameters are unchanged) - // return the MIME type for this file type - bool GetMimeType(wxString *mimeType) const; - bool GetMimeTypes(wxArrayString& mimeTypes) const; - // fill passed in array with all extensions associated with this file - // type - bool GetExtensions(wxArrayString& extensions); - // get the icon corresponding to this file type and of the given size - bool GetIcon(wxIconLocation *iconloc) const; - bool GetIcon(wxIconLocation *iconloc, - const MessageParameters& params) const; - // get a brief file type description ("*.txt" => "text document") - bool GetDescription(wxString *desc) const; - - // get the command to be used to open/print the given file. - // get the command to execute the file of given type - bool GetOpenCommand(wxString *openCmd, - const MessageParameters& params) const; - // a simpler to use version of GetOpenCommand() -- it only takes the - // filename and returns an empty string on failure - wxString GetOpenCommand(const wxString& filename) const; - // get the command to print the file of given type - bool GetPrintCommand(wxString *printCmd, - const MessageParameters& params) const; - - - // return the number of commands defined for this file type, 0 if none - size_t GetAllCommands(wxArrayString *verbs, wxArrayString *commands, - const wxFileType::MessageParameters& params) const; - - // set an arbitrary command, ask confirmation if it already exists and - // overwriteprompt is true - bool SetCommand(const wxString& cmd, const wxString& verb, - bool overwriteprompt = true); - - bool SetDefaultIcon(const wxString& cmd = wxEmptyString, int index = 0); - - - // remove the association for this filetype from the system MIME database: - // notice that it will only work if the association is defined in the user - // file/registry part, we will never modify the system-wide settings - bool Unassociate(); - - // operations - // expand a string in the format of GetOpenCommand (which may contain - // '%s' and '%t' format specifiers for the file name and mime type - // and %{param} constructions). - static wxString ExpandCommand(const wxString& command, - const MessageParameters& params); - - // dtor (not virtual, shouldn't be derived from) - ~wxFileType(); - -private: - // default ctor is private because the user code never creates us - wxFileType(); - - // no copy ctor/assignment operator - wxFileType(const wxFileType&); - wxFileType& operator=(const wxFileType&); - - // the static container of wxFileType data: if it's not NULL, it means that - // this object is used as fallback only - const wxFileTypeInfo *m_info; - - // the object which implements the real stuff like reading and writing - // to/from system MIME database - wxFileTypeImpl *m_impl; -}; - -//---------------------------------------------------------------------------- -// wxMimeTypesManagerFactory -//---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMimeTypesManagerFactory -{ -public: - wxMimeTypesManagerFactory() {} - virtual ~wxMimeTypesManagerFactory() {} - - virtual wxMimeTypesManagerImpl *CreateMimeTypesManagerImpl(); - - static void Set( wxMimeTypesManagerFactory *factory ); - static wxMimeTypesManagerFactory *Get(); - -private: - static wxMimeTypesManagerFactory *m_factory; -}; - -// ---------------------------------------------------------------------------- -// wxMimeTypesManager: interface to system MIME database. -// -// This class accesses the information about all known MIME types and allows -// the application to retrieve information (including how to handle data of -// given type) about them. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMimeTypesManager -{ -public: - // static helper functions - // ----------------------- - - // check if the given MIME type is the same as the other one: the - // second argument may contain wildcards ('*'), but not the first. If - // the types are equal or if the mimeType matches wildcard the function - // returns true, otherwise it returns false - static bool IsOfType(const wxString& mimeType, const wxString& wildcard); - - // ctor - wxMimeTypesManager(); - - // NB: the following 2 functions are for Unix only and don't do anything - // elsewhere - - // loads data from standard files according to the mailcap styles - // specified: this is a bitwise OR of wxMailcapStyle values - // - // use the extraDir parameter if you want to look for files in another - // directory - void Initialize(int mailcapStyle = wxMAILCAP_ALL, - const wxString& extraDir = wxEmptyString); - - // and this function clears all the data from the manager - void ClearData(); - - // Database lookup: all functions return a pointer to wxFileType object - // whose methods may be used to query it for the information you're - // interested in. If the return value is !NULL, caller is responsible for - // deleting it. - // get file type from file extension - wxFileType *GetFileTypeFromExtension(const wxString& ext); - // get file type from MIME type (in format <category>/<format>) - wxFileType *GetFileTypeFromMimeType(const wxString& mimeType); - - // enumerate all known MIME types - // - // returns the number of retrieved file types - size_t EnumAllFileTypes(wxArrayString& mimetypes); - - // these functions can be used to provide default values for some of the - // MIME types inside the program itself - // - // The filetypes array should be terminated by either NULL entry or an - // invalid wxFileTypeInfo (i.e. the one created with default ctor) - void AddFallbacks(const wxFileTypeInfo *filetypes); - void AddFallback(const wxFileTypeInfo& ft) { m_fallbacks.Add(ft); } - - // create or remove associations - - // create a new association using the fields of wxFileTypeInfo (at least - // the MIME type and the extension should be set) - // if the other fields are empty, the existing values should be left alone - wxFileType *Associate(const wxFileTypeInfo& ftInfo); - - // undo Associate() - bool Unassociate(wxFileType *ft) ; - - // dtor (not virtual, shouldn't be derived from) - ~wxMimeTypesManager(); - -private: - // no copy ctor/assignment operator - wxMimeTypesManager(const wxMimeTypesManager&); - wxMimeTypesManager& operator=(const wxMimeTypesManager&); - - // the fallback info which is used if the information is not found in the - // real system database - wxArrayFileTypeInfo m_fallbacks; - - // the object working with the system MIME database - wxMimeTypesManagerImpl *m_impl; - - // if m_impl is NULL, create one - void EnsureImpl(); - - friend class wxMimeTypeCmnModule; -}; - - -// ---------------------------------------------------------------------------- -// global variables -// ---------------------------------------------------------------------------- - -// the default mime manager for wxWidgets programs -extern WXDLLIMPEXP_DATA_BASE(wxMimeTypesManager *) wxTheMimeTypesManager; - -#endif // wxUSE_MIMETYPE - -#endif - //_WX_MIMETYPE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/minifram.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/minifram.h deleted file mode 100644 index bd03bbc9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/minifram.h +++ /dev/null @@ -1,40 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/minifram.h -// Purpose: wxMiniFrame base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Copyright: (c) 2014 wxWidgets dev team -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MINIFRAM_H_BASE_ -#define _WX_MINIFRAM_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_MINIFRAME - -#if defined(__WXMSW__) -#include "wx/msw/minifram.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/minifram.h" -#elif defined(__WXGTK20__) -#include "wx/gtk/minifram.h" -#elif defined(__WXGTK__) -#include "wx/gtk1/minifram.h" -#elif defined(__WXX11__) -#include "wx/x11/minifram.h" -#elif defined(__WXMAC__) -#include "wx/osx/minifram.h" -#elif defined(__WXQT__) -#include "wx/qt/minifram.h" -#else -// TODO: it seems that wxMiniFrame could be just defined here generically -// instead of having all the above port-specific headers -#include "wx/frame.h" -typedef wxFrame wxMiniFrame; -#endif - -#endif // wxUSE_MINIFRAME -#endif // _WX_MINIFRAM_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/modalhook.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/modalhook.h deleted file mode 100644 index 55341f9b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/modalhook.h +++ /dev/null @@ -1,104 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/modalhook.h -// Purpose: Allows to hook into showing modal dialogs. -// Author: Vadim Zeitlin -// Created: 2013-05-19 -// Copyright: (c) 2013 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MODALHOOK_H_ -#define _WX_MODALHOOK_H_ - -#include "wx/vector.h" - -class WXDLLIMPEXP_FWD_CORE wxDialog; - -// ---------------------------------------------------------------------------- -// Class allowing to be notified about any modal dialog calls. -// ---------------------------------------------------------------------------- - -// To be notified about entering and exiting modal dialogs and possibly to -// replace them with something else (e.g. just return a predefined value for -// testing), define an object of this class, override its Enter() and -// possibly Exit() methods and call Register() on it. -class WXDLLIMPEXP_CORE wxModalDialogHook -{ -public: - // Default ctor doesn't do anything, call Register() to activate the hook. - wxModalDialogHook() { } - - // Dtor unregisters the hook if it had been registered. - virtual ~wxModalDialogHook() { DoUnregister(); } - - // Register this hook as being active, i.e. its Enter() and Exit() methods - // will be called. - // - // Notice that the order of registration matters: the last hook registered - // is called first, and if its Enter() returns something != wxID_NONE, the - // subsequent hooks are skipped. - void Register(); - - // Unregister this hook. Notice that is done automatically from the dtor. - void Unregister(); - - // Called from wxWidgets code before showing any modal dialogs and calls - // Enter() for every registered hook. - static int CallEnter(wxDialog* dialog); - - // Called from wxWidgets code after dismissing the dialog and calls Exit() - // for every registered hook. - static void CallExit(wxDialog* dialog); - -protected: - // Called by wxWidgets before showing any modal dialogs, override this to - // be notified about this and return anything but wxID_NONE to skip showing - // the modal dialog entirely and just return the specified result. - virtual int Enter(wxDialog* dialog) = 0; - - // Called by wxWidgets after dismissing the modal dialog. Notice that it - // won't be called if Enter() hadn't been. - virtual void Exit(wxDialog* WXUNUSED(dialog)) { } - -private: - // Unregister the given hook, return true if it was done or false if the - // hook wasn't found. - bool DoUnregister(); - - // All the hooks in reverse registration order (i.e. in call order). - typedef wxVector<wxModalDialogHook*> Hooks; - static Hooks ms_hooks; - - wxDECLARE_NO_COPY_CLASS(wxModalDialogHook); -}; - -// Helper object used by WX_MODAL_DIALOG_HOOK below to ensure that CallExit() -// is called on scope exit. -class wxModalDialogHookExitGuard -{ -public: - wxEXPLICIT wxModalDialogHookExitGuard(wxDialog* dialog) - : m_dialog(dialog) - { - } - - ~wxModalDialogHookExitGuard() - { - wxModalDialogHook::CallExit(m_dialog); - } - -private: - wxDialog* const m_dialog; - - wxDECLARE_NO_COPY_CLASS(wxModalDialogHookExitGuard); -}; - -// This macro needs to be used at the top of every implementation of -// ShowModal() in order for wxModalDialogHook to work. -#define WX_HOOK_MODAL_DIALOG() \ - const int modalDialogHookRC = wxModalDialogHook::CallEnter(this); \ - if ( modalDialogHookRC != wxID_NONE ) \ - return modalDialogHookRC; \ - wxModalDialogHookExitGuard modalDialogHookExit(this) - -#endif // _WX_MODALHOOK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/module.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/module.h deleted file mode 100644 index 2fc8559d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/module.h +++ /dev/null @@ -1,119 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/module.h -// Purpose: Modules handling -// Author: Wolfram Gloger/adapted by Guilhem Lavaux -// Modified by: -// Created: 04/11/98 -// Copyright: (c) Wolfram Gloger and Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MODULE_H_ -#define _WX_MODULE_H_ - -#include "wx/object.h" -#include "wx/list.h" -#include "wx/arrstr.h" -#include "wx/dynarray.h" - -// declare a linked list of modules -class WXDLLIMPEXP_FWD_BASE wxModule; -WX_DECLARE_USER_EXPORTED_LIST(wxModule, wxModuleList, WXDLLIMPEXP_BASE); - -// and an array of class info objects -WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxClassInfo *, wxArrayClassInfo, - class WXDLLIMPEXP_BASE); - - -// declaring a class derived from wxModule will automatically create an -// instance of this class on program startup, call its OnInit() method and call -// OnExit() on program termination (but only if OnInit() succeeded) -class WXDLLIMPEXP_BASE wxModule : public wxObject -{ -public: - wxModule() {} - virtual ~wxModule() {} - - // if module init routine returns false the application - // will fail to startup - - bool Init() { return OnInit(); } - void Exit() { OnExit(); } - - // Override both of these - - // called on program startup - - virtual bool OnInit() = 0; - - // called just before program termination, but only if OnInit() - // succeeded - - virtual void OnExit() = 0; - - static void RegisterModule(wxModule *module); - static void RegisterModules(); - static bool InitializeModules(); - static void CleanUpModules() { DoCleanUpModules(m_modules); } - - // used by wxObjectLoader when unloading shared libs's - - static void UnregisterModule(wxModule *module); - -protected: - static wxModuleList m_modules; - - // the function to call from constructor of a deriving class add module - // dependency which will be initialized before the module and unloaded - // after that - void AddDependency(wxClassInfo *dep) - { - wxCHECK_RET( dep, wxT("NULL module dependency") ); - - m_dependencies.Add(dep); - } - - // same as the version above except it will look up wxClassInfo by name on - // its own - void AddDependency(const char *className) - { - m_namedDependencies.Add(className); - } - - -private: - // initialize module and Append it to initializedModules list recursively - // calling itself to satisfy module dependencies if needed - static bool - DoInitializeModule(wxModule *module, wxModuleList &initializedModules); - - // cleanup the modules in the specified list (which may not contain all - // modules if we're called during initialization because not all modules - // could be initialized) and also empty m_modules itself - static void DoCleanUpModules(const wxModuleList& modules); - - // resolve all named dependencies and add them to the normal m_dependencies - bool ResolveNamedDependencies(); - - - // module dependencies: contains wxClassInfo pointers for all modules which - // must be initialized before this one - wxArrayClassInfo m_dependencies; - - // and the named dependencies: those will be resolved during run-time and - // added to m_dependencies - wxArrayString m_namedDependencies; - - // used internally while initializing/cleaning up modules - enum - { - State_Registered, // module registered but not initialized yet - State_Initializing, // we're initializing this module but not done yet - State_Initialized // module initialized successfully - } m_state; - - - wxDECLARE_CLASS(wxModule); -}; - -#endif // _WX_MODULE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mousemanager.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mousemanager.h deleted file mode 100644 index 997bee01..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mousemanager.h +++ /dev/null @@ -1,153 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/mousemanager.h -// Purpose: wxMouseEventsManager class declaration -// Author: Vadim Zeitlin -// Created: 2009-04-20 -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MOUSEMANAGER_H_ -#define _WX_MOUSEMANAGER_H_ - -#include "wx/event.h" - -// ---------------------------------------------------------------------------- -// wxMouseEventsManager -// ---------------------------------------------------------------------------- - -/* - This class handles mouse events and synthesizes high-level notifications - such as clicks and drag events from low level mouse button presses and - mouse movement events. It is useful because handling the mouse events is - less obvious than might seem at a first glance: for example, clicks on an - object should only be generated if the mouse was both pressed and released - over it and not just released (so it requires storing the previous state) - and dragging shouldn't start before the mouse moves away far enough. - - This class encapsulates all these dull details for controls containing - multiple items which can be identified by a positive integer index and you - just need to implement its pure virtual functions to use it. - */ -class WXDLLIMPEXP_CORE wxMouseEventsManager : public wxEvtHandler -{ -public: - // a mouse event manager is always associated with a window and must be - // deleted by the window when it is destroyed so if it is created using the - // default ctor Create() must be called later - wxMouseEventsManager() { Init(); } - wxMouseEventsManager(wxWindow *win) { Init(); Create(win); } - bool Create(wxWindow *win); - - virtual ~wxMouseEventsManager(); - -protected: - // called to find the item at the given position: return wxNOT_FOUND (-1) - // if there is no item here - virtual int MouseHitTest(const wxPoint& pos) = 0; - - // called when the user clicked (i.e. pressed and released mouse over the - // same item), should normally generate a notification about this click and - // return true if it was handled or false otherwise, determining whether - // the original mouse event is skipped or not - virtual bool MouseClicked(int item) = 0; - - // called to start dragging the given item, should generate the appropriate - // BEGIN_DRAG event and return false if dragging this item was forbidden - virtual bool MouseDragBegin(int item, const wxPoint& pos) = 0; - - // called while the item is being dragged, should normally update the - // feedback on screen (usually using wxOverlay) - virtual void MouseDragging(int item, const wxPoint& pos) = 0; - - // called when the mouse is released after dragging the item - virtual void MouseDragEnd(int item, const wxPoint& pos) = 0; - - // called when mouse capture is lost while dragging the item, should remove - // the visual feedback drawn by MouseDragging() - virtual void MouseDragCancelled(int item) = 0; - - - // you don't need to override those but you will want to do if it your - // control renders pressed items differently - - // called when the item is becomes pressed, can be used to change its - // appearance - virtual void MouseClickBegin(int WXUNUSED(item)) { } - - // called if the mouse capture was lost while the item was pressed, can be - // used to restore the default item appearance if it was changed in - // MouseClickBegin() - virtual void MouseClickCancelled(int WXUNUSED(item)) { } - -private: - /* - Here is a small diagram explaining the switches between different - states: - - - /---------->NORMAL<--------------- Drag end - / / / | event - / / | | ^ - / / | | | - Click / N | | mouse | mouse up - event / | | down | - | / | | DRAGGING - | / | | ^ - Y|/ N \ v |Y - +-------------+ +--------+ N +-----------+ - |On same item?| |On item?| -----------|Begin drag?| - +-------------+ +--------+ / +-----------+ - ^ | / ^ - | | / | - \ mouse | / mouse moved | - \ up v v far enough / - \--------PRESSED-------------------/ - - - There are also transitions from PRESSED and DRAGGING to NORMAL in case - the mouse capture is lost or Escape key is pressed which are not shown. - */ - enum State - { - State_Normal, // initial, default state - State_Pressed, // mouse was pressed over an item - State_Dragging // the item is being dragged - }; - - // common part of both ctors - void Init(); - - // various event handlers - void OnCaptureLost(wxMouseCaptureLostEvent& event); - void OnLeftDown(wxMouseEvent& event); - void OnLeftUp(wxMouseEvent& event); - void OnMove(wxMouseEvent& event); - - - // the associated window, never NULL except between the calls to the - // default ctor and Create() - wxWindow *m_win; - - // the current state - State m_state; - - // the details of the operation currently in progress, only valid if - // m_state is not normal - - // the item being pressed or dragged (always valid, i.e. != wxNOT_FOUND if - // m_state != State_Normal) - int m_item; - - // the position of the last mouse event of interest: either mouse press in - // State_Pressed or last movement event in State_Dragging - wxPoint m_posLast; - - - wxDECLARE_EVENT_TABLE(); - - wxDECLARE_NO_COPY_CLASS(wxMouseEventsManager); -}; - -#endif // _WX_MOUSEMANAGER_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mousestate.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mousestate.h deleted file mode 100644 index 2ea1cc5b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mousestate.h +++ /dev/null @@ -1,149 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/mousestate.h -// Purpose: Declaration of wxMouseState class -// Author: Vadim Zeitlin -// Created: 2008-09-19 (extracted from wx/utils.h) -// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MOUSESTATE_H_ -#define _WX_MOUSESTATE_H_ - -#include "wx/gdicmn.h" // for wxPoint -#include "wx/kbdstate.h" - -// the symbolic names for the mouse buttons -enum wxMouseButton -{ - wxMOUSE_BTN_ANY = -1, - wxMOUSE_BTN_NONE = 0, - wxMOUSE_BTN_LEFT = 1, - wxMOUSE_BTN_MIDDLE = 2, - wxMOUSE_BTN_RIGHT = 3, - wxMOUSE_BTN_AUX1 = 4, - wxMOUSE_BTN_AUX2 = 5, - wxMOUSE_BTN_MAX -}; - -// ---------------------------------------------------------------------------- -// wxMouseState contains the information about mouse position, buttons and also -// key modifiers -// ---------------------------------------------------------------------------- - -// wxMouseState is used to hold information about button and modifier state -// and is what is returned from wxGetMouseState. -class WXDLLIMPEXP_CORE wxMouseState : public wxKeyboardState -{ -public: - wxMouseState() - : m_leftDown(false), m_middleDown(false), m_rightDown(false), - m_aux1Down(false), m_aux2Down(false), - m_x(0), m_y(0) - { - } - - // default copy ctor, assignment operator and dtor are ok - - - // accessors for the mouse position - wxCoord GetX() const { return m_x; } - wxCoord GetY() const { return m_y; } - wxPoint GetPosition() const { return wxPoint(m_x, m_y); } - void GetPosition(wxCoord *x, wxCoord *y) const - { - if ( x ) - *x = m_x; - if ( y ) - *y = m_y; - } - - // this overload is for compatibility only - void GetPosition(long *x, long *y) const - { - if ( x ) - *x = m_x; - if ( y ) - *y = m_y; - } - - // accessors for the pressed buttons - bool LeftIsDown() const { return m_leftDown; } - bool MiddleIsDown() const { return m_middleDown; } - bool RightIsDown() const { return m_rightDown; } - bool Aux1IsDown() const { return m_aux1Down; } - bool Aux2IsDown() const { return m_aux2Down; } - - bool ButtonIsDown(wxMouseButton but) const - { - switch ( but ) - { - case wxMOUSE_BTN_ANY: - return LeftIsDown() || MiddleIsDown() || RightIsDown() || - Aux1IsDown() || Aux2IsDown(); - - case wxMOUSE_BTN_LEFT: - return LeftIsDown(); - - case wxMOUSE_BTN_MIDDLE: - return MiddleIsDown(); - - case wxMOUSE_BTN_RIGHT: - return RightIsDown(); - - case wxMOUSE_BTN_AUX1: - return Aux1IsDown(); - - case wxMOUSE_BTN_AUX2: - return Aux2IsDown(); - - case wxMOUSE_BTN_NONE: - case wxMOUSE_BTN_MAX: - break; - } - - wxFAIL_MSG(wxS("invalid parameter")); - return false; - } - - - // these functions are mostly used by wxWidgets itself - void SetX(wxCoord x) { m_x = x; } - void SetY(wxCoord y) { m_y = y; } - void SetPosition(wxPoint pos) { m_x = pos.x, m_y = pos.y; } - - void SetLeftDown(bool down) { m_leftDown = down; } - void SetMiddleDown(bool down) { m_middleDown = down; } - void SetRightDown(bool down) { m_rightDown = down; } - void SetAux1Down(bool down) { m_aux1Down = down; } - void SetAux2Down(bool down) { m_aux2Down = down; } - - // this mostly makes sense in the derived classes such as wxMouseEvent - void SetState(const wxMouseState& state) { *this = state; } - - // these functions are for compatibility only, they were used in 2.8 - // version of wxMouseState but their names are confusing as wxMouseEvent - // has methods with the same names which do something quite different so - // don't use them any more -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED_INLINE(bool LeftDown() const, return LeftIsDown(); ) - wxDEPRECATED_INLINE(bool MiddleDown() const, return MiddleIsDown(); ) - wxDEPRECATED_INLINE(bool RightDown() const, return RightIsDown(); ) -#endif // WXWIN_COMPATIBILITY_2_8 - - // for compatibility reasons these variables are public as the code using - // wxMouseEvent often uses them directly -- however they should not be - // accessed directly in this class, use the accessors above instead -// private: - bool m_leftDown : 1; - bool m_middleDown : 1; - bool m_rightDown : 1; - bool m_aux1Down : 1; - bool m_aux2Down : 1; - - wxCoord m_x, - m_y; -}; - -#endif // _WX_MOUSESTATE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msgdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msgdlg.h deleted file mode 100644 index 28e53d32..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msgdlg.h +++ /dev/null @@ -1,324 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msgdlg.h -// Purpose: common header and base class for wxMessageDialog -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSGDLG_H_BASE_ -#define _WX_MSGDLG_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_MSGDLG - -#include "wx/dialog.h" -#include "wx/stockitem.h" - -extern WXDLLIMPEXP_DATA_CORE(const char) wxMessageBoxCaptionStr[]; - -// ---------------------------------------------------------------------------- -// wxMessageDialogBase: base class defining wxMessageDialog interface -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMessageDialogBase : public wxDialog -{ -public: - // helper class for SetXXXLabels() methods: it makes it possible to pass - // either a stock id (wxID_CLOSE) or a string ("&Close") to them - class ButtonLabel - { - public: - // ctors are not explicit, objects of this class can be implicitly - // constructed from either stock ids or strings - ButtonLabel(int stockId) - : m_stockId(stockId) - { - wxASSERT_MSG( wxIsStockID(stockId), "invalid stock id" ); - } - - ButtonLabel(const wxString& label) - : m_label(label), m_stockId(wxID_NONE) - { - } - - ButtonLabel(const char *label) - : m_label(label), m_stockId(wxID_NONE) - { - } - - ButtonLabel(const wchar_t *label) - : m_label(label), m_stockId(wxID_NONE) - { - } - - ButtonLabel(const wxCStrData& label) - : m_label(label), m_stockId(wxID_NONE) - { - } - - // default copy ctor and dtor are ok - - // get the string label, whether it was originally specified directly - // or as a stock id -- this is only useful for platforms without native - // stock items id support - wxString GetAsString() const - { - return m_stockId == wxID_NONE - ? m_label - : wxGetStockLabel(m_stockId, wxSTOCK_FOR_BUTTON); - } - - // return the stock id or wxID_NONE if this is not a stock label - int GetStockId() const { return m_stockId; } - - private: - // the label if explicitly given or empty if this is a stock item - const wxString m_label; - - // the stock item id or wxID_NONE if m_label should be used - const int m_stockId; - }; - - // ctors - wxMessageDialogBase() { m_dialogStyle = 0; } - wxMessageDialogBase(wxWindow *parent, - const wxString& message, - const wxString& caption, - long style) - : m_message(message), - m_caption(caption) - { - m_parent = GetParentForModalDialog(parent, style); - SetMessageDialogStyle(style); - } - - // virtual dtor for the base class - virtual ~wxMessageDialogBase() { } - - wxString GetCaption() const { return m_caption; } - - // Title and caption are the same thing, GetCaption() mostly exists just - // for compatibility. - virtual void SetTitle(const wxString& title) wxOVERRIDE { m_caption = title; } - virtual wxString GetTitle() const wxOVERRIDE { return m_caption; } - - - virtual void SetMessage(const wxString& message) - { - m_message = message; - } - - wxString GetMessage() const { return m_message; } - - void SetExtendedMessage(const wxString& extendedMessage) - { - m_extendedMessage = extendedMessage; - } - - wxString GetExtendedMessage() const { return m_extendedMessage; } - - // change the dialog style flag - void SetMessageDialogStyle(long style) - { - wxASSERT_MSG( ((style & wxYES_NO) == wxYES_NO) || !(style & wxYES_NO), - "wxYES and wxNO may only be used together" ); - - wxASSERT_MSG( !(style & wxYES) || !(style & wxOK), - "wxOK and wxYES/wxNO can't be used together" ); - - // It is common to specify just the icon, without wxOK, in the existing - // code, especially one written by Windows programmers as MB_OK is 0 - // and so they're used to omitting wxOK. Don't complain about it but - // just add wxOK implicitly for compatibility. - if ( !(style & wxYES) && !(style & wxOK) ) - style |= wxOK; - - wxASSERT_MSG( (style & wxID_OK) != wxID_OK, - "wxMessageBox: Did you mean wxOK (and not wxID_OK)?" ); - - wxASSERT_MSG( !(style & wxNO_DEFAULT) || (style & wxNO), - "wxNO_DEFAULT is invalid without wxNO" ); - - wxASSERT_MSG( !(style & wxCANCEL_DEFAULT) || (style & wxCANCEL), - "wxCANCEL_DEFAULT is invalid without wxCANCEL" ); - - wxASSERT_MSG( !(style & wxCANCEL_DEFAULT) || !(style & wxNO_DEFAULT), - "only one default button can be specified" ); - - m_dialogStyle = style; - } - - long GetMessageDialogStyle() const { return m_dialogStyle; } - - // customization of the message box buttons - virtual bool SetYesNoLabels(const ButtonLabel& yes,const ButtonLabel& no) - { - DoSetCustomLabel(m_yes, yes); - DoSetCustomLabel(m_no, no); - return true; - } - - virtual bool SetYesNoCancelLabels(const ButtonLabel& yes, - const ButtonLabel& no, - const ButtonLabel& cancel) - { - DoSetCustomLabel(m_yes, yes); - DoSetCustomLabel(m_no, no); - DoSetCustomLabel(m_cancel, cancel); - return true; - } - - virtual bool SetOKLabel(const ButtonLabel& ok) - { - DoSetCustomLabel(m_ok, ok); - return true; - } - - virtual bool SetOKCancelLabels(const ButtonLabel& ok, - const ButtonLabel& cancel) - { - DoSetCustomLabel(m_ok, ok); - DoSetCustomLabel(m_cancel, cancel); - return true; - } - - virtual bool SetHelpLabel(const ButtonLabel& help) - { - DoSetCustomLabel(m_help, help); - return true; - } - // test if any custom labels were set - bool HasCustomLabels() const - { - return !(m_ok.empty() && m_cancel.empty() && m_help.empty() && - m_yes.empty() && m_no.empty()); - } - - // these functions return the label to be used for the button which is - // either a custom label explicitly set by the user or the default label, - // i.e. they always return a valid string - wxString GetYesLabel() const - { return m_yes.empty() ? GetDefaultYesLabel() : m_yes; } - wxString GetNoLabel() const - { return m_no.empty() ? GetDefaultNoLabel() : m_no; } - wxString GetOKLabel() const - { return m_ok.empty() ? GetDefaultOKLabel() : m_ok; } - wxString GetCancelLabel() const - { return m_cancel.empty() ? GetDefaultCancelLabel() : m_cancel; } - wxString GetHelpLabel() const - { return m_help.empty() ? GetDefaultHelpLabel() : m_help; } - - // based on message dialog style, returns exactly one of: wxICON_NONE, - // wxICON_ERROR, wxICON_WARNING, wxICON_QUESTION, wxICON_INFORMATION, - // wxICON_AUTH_NEEDED - virtual long GetEffectiveIcon() const - { - if ( m_dialogStyle & wxICON_NONE ) - return wxICON_NONE; - else if ( m_dialogStyle & wxICON_ERROR ) - return wxICON_ERROR; - else if ( m_dialogStyle & wxICON_WARNING ) - return wxICON_WARNING; - else if ( m_dialogStyle & wxICON_QUESTION ) - return wxICON_QUESTION; - else if ( m_dialogStyle & wxICON_INFORMATION ) - return wxICON_INFORMATION; - else if ( m_dialogStyle & wxYES ) - return wxICON_QUESTION; - else - return wxICON_INFORMATION; - } - -protected: - // for the platforms not supporting separate main and extended messages - // this function should be used to combine both of them in a single string - wxString GetFullMessage() const - { - wxString msg = m_message; - if ( !m_extendedMessage.empty() ) - msg << "\n\n" << m_extendedMessage; - - return msg; - } - - wxString m_message, - m_extendedMessage, - m_caption; - long m_dialogStyle; - - // this function is called by our public SetXXXLabels() and should assign - // the value to var with possibly some transformation (e.g. Cocoa version - // currently uses this to remove any accelerators from the button strings - // while GTK+ one handles stock items specifically here) - virtual void DoSetCustomLabel(wxString& var, const ButtonLabel& label) - { - var = label.GetAsString(); - } - - // these functions return the custom label or empty string and should be - // used only in specific circumstances such as creating the buttons with - // these labels (in which case it makes sense to only use a custom label if - // it was really given and fall back on stock label otherwise), use the - // Get{Yes,No,OK,Cancel}Label() methods above otherwise - const wxString& GetCustomYesLabel() const { return m_yes; } - const wxString& GetCustomNoLabel() const { return m_no; } - const wxString& GetCustomOKLabel() const { return m_ok; } - const wxString& GetCustomHelpLabel() const { return m_help; } - const wxString& GetCustomCancelLabel() const { return m_cancel; } - -private: - // these functions may be overridden to provide different defaults for the - // default button labels (this is used by wxGTK) - virtual wxString GetDefaultYesLabel() const { return wxGetTranslation("Yes"); } - virtual wxString GetDefaultNoLabel() const { return wxGetTranslation("No"); } - virtual wxString GetDefaultOKLabel() const { return wxGetTranslation("OK"); } - virtual wxString GetDefaultCancelLabel() const { return wxGetTranslation("Cancel"); } - virtual wxString GetDefaultHelpLabel() const { return wxGetTranslation("Help"); } - - // labels for the buttons, initially empty meaning that the defaults should - // be used, use GetYes/No/OK/CancelLabel() to access them - wxString m_yes, - m_no, - m_ok, - m_cancel, - m_help; - - wxDECLARE_NO_COPY_CLASS(wxMessageDialogBase); -}; - -#include "wx/generic/msgdlgg.h" - -#if defined(__WX_COMPILING_MSGDLGG_CPP__) || \ - defined(__WXUNIVERSAL__) || defined(__WXGPE__) || \ - (defined(__WXGTK__) && !defined(__WXGTK20__)) - - #define wxMessageDialog wxGenericMessageDialog -#elif defined(__WXMSW__) - #include "wx/msw/msgdlg.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/msgdlg.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/msgdlg.h" -#elif defined(__WXMAC__) - #include "wx/osx/msgdlg.h" -#elif defined(__WXQT__) - #include "wx/qt/msgdlg.h" -#endif - -// ---------------------------------------------------------------------------- -// wxMessageBox: the simplest way to use wxMessageDialog -// ---------------------------------------------------------------------------- - -int WXDLLIMPEXP_CORE wxMessageBox(const wxString& message, - const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK | wxCENTRE, - wxWindow *parent = NULL, - int x = wxDefaultCoord, int y = wxDefaultCoord); - -#endif // wxUSE_MSGDLG - -#endif // _WX_MSGDLG_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msgout.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msgout.h deleted file mode 100644 index 006e0651..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msgout.h +++ /dev/null @@ -1,142 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msgout.h -// Purpose: wxMessageOutput class. Shows a message to the user -// Author: Mattia Barbon -// Modified by: -// Created: 17.07.02 -// Copyright: (c) Mattia Barbon -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSGOUT_H_ -#define _WX_MSGOUT_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" -#include "wx/chartype.h" -#include "wx/strvararg.h" - -// ---------------------------------------------------------------------------- -// wxMessageOutput is a class abstracting formatted output target, i.e. -// something you can printf() to -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMessageOutput -{ -public: - virtual ~wxMessageOutput() { } - - // gets the current wxMessageOutput object (may be NULL during - // initialization or shutdown) - static wxMessageOutput* Get(); - - // sets the global wxMessageOutput instance; returns the previous one - static wxMessageOutput* Set(wxMessageOutput* msgout); - - // show a message to the user - // void Printf(const wxString& format, ...) = 0; - WX_DEFINE_VARARG_FUNC_VOID(Printf, 1, (const wxFormatString&), - DoPrintfWchar, DoPrintfUtf8) - - // called by DoPrintf() to output formatted string but can also be called - // directly if no formatting is needed - virtual void Output(const wxString& str) = 0; - -protected: -#if !wxUSE_UTF8_LOCALE_ONLY - void DoPrintfWchar(const wxChar *format, ...); -#endif -#if wxUSE_UNICODE_UTF8 - void DoPrintfUtf8(const char *format, ...); -#endif - -private: - static wxMessageOutput* ms_msgOut; -}; - -// ---------------------------------------------------------------------------- -// implementation which sends output to stderr or specified file -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMessageOutputStderr : public wxMessageOutput -{ -public: - wxMessageOutputStderr(FILE *fp = stderr) : m_fp(fp) { } - - virtual void Output(const wxString& str) wxOVERRIDE; - -protected: - // return the string with "\n" appended if it doesn't already terminate - // with it (in which case it's returned unchanged) - wxString AppendLineFeedIfNeeded(const wxString& str); - - FILE *m_fp; -}; - -// ---------------------------------------------------------------------------- -// implementation showing the message to the user in "best" possible way: -// uses stderr or message box if available according to the flag given to ctor. -// ---------------------------------------------------------------------------- - -enum wxMessageOutputFlags -{ - wxMSGOUT_PREFER_STDERR = 0, // use stderr if available (this is the default) - wxMSGOUT_PREFER_MSGBOX = 1 // always use message box if available -}; - -class WXDLLIMPEXP_BASE wxMessageOutputBest : public wxMessageOutputStderr -{ -public: - wxMessageOutputBest(wxMessageOutputFlags flags = wxMSGOUT_PREFER_STDERR) - : m_flags(flags) { } - - virtual void Output(const wxString& str) wxOVERRIDE; - -private: - wxMessageOutputFlags m_flags; -}; - -// ---------------------------------------------------------------------------- -// implementation which shows output in a message box -// ---------------------------------------------------------------------------- - -#if wxUSE_GUI && wxUSE_MSGDLG - -class WXDLLIMPEXP_CORE wxMessageOutputMessageBox : public wxMessageOutput -{ -public: - wxMessageOutputMessageBox() { } - - virtual void Output(const wxString& str) wxOVERRIDE; -}; - -#endif // wxUSE_GUI && wxUSE_MSGDLG - -// ---------------------------------------------------------------------------- -// implementation using the native way of outputting debug messages -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMessageOutputDebug : public wxMessageOutputStderr -{ -public: - wxMessageOutputDebug() { } - - virtual void Output(const wxString& str) wxOVERRIDE; -}; - -// ---------------------------------------------------------------------------- -// implementation using wxLog (mainly for backwards compatibility) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMessageOutputLog : public wxMessageOutput -{ -public: - wxMessageOutputLog() { } - - virtual void Output(const wxString& str) wxOVERRIDE; -}; - -#endif // _WX_MSGOUT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msgqueue.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msgqueue.h deleted file mode 100644 index 8b8da87d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msgqueue.h +++ /dev/null @@ -1,168 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msqqueue.h -// Purpose: Message queues for inter-thread communication -// Author: Evgeniy Tarassov -// Created: 2007-10-31 -// Copyright: (C) 2007 TT-Solutions SARL -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSGQUEUE_H_ -#define _WX_MSGQUEUE_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/thread.h" - -#if wxUSE_THREADS - -#include "wx/stopwatch.h" - -#include "wx/beforestd.h" -#include <queue> -#include "wx/afterstd.h" - -enum wxMessageQueueError -{ - wxMSGQUEUE_NO_ERROR = 0, // operation completed successfully - wxMSGQUEUE_TIMEOUT, // no messages received before timeout expired - wxMSGQUEUE_MISC_ERROR // some unexpected (and fatal) error has occurred -}; - -// --------------------------------------------------------------------------- -// Message queue allows passing message between threads. -// -// This class is typically used for communicating between the main and worker -// threads. The main thread calls Post() and the worker thread calls Receive(). -// -// For this class a message is an object of arbitrary type T. Notice that -// typically there must be some special message indicating that the thread -// should terminate as there is no other way to gracefully shutdown a thread -// waiting on the message queue. -// --------------------------------------------------------------------------- -template <typename T> -class wxMessageQueue -{ -public: - // The type of the messages transported by this queue - typedef T Message; - - // Default ctor creates an initially empty queue - wxMessageQueue() - : m_conditionNotEmpty(m_mutex) - { - } - - // Add a message to this queue and signal the threads waiting for messages. - // - // This method is safe to call from multiple threads in parallel. - wxMessageQueueError Post(const Message& msg) - { - wxMutexLocker locker(m_mutex); - - wxCHECK( locker.IsOk(), wxMSGQUEUE_MISC_ERROR ); - - m_messages.push(msg); - - m_conditionNotEmpty.Signal(); - - return wxMSGQUEUE_NO_ERROR; - } - - // Remove all messages from the queue. - // - // This method is meant to be called from the same thread(s) that call - // Post() to discard any still pending requests if they became unnecessary. - wxMessageQueueError Clear() - { - wxCHECK( IsOk(), wxMSGQUEUE_MISC_ERROR ); - - wxMutexLocker locker(m_mutex); - - std::queue<T> empty; - std::swap(m_messages, empty); - - return wxMSGQUEUE_NO_ERROR; - } - - // Wait no more than timeout milliseconds until a message becomes available. - // - // Setting timeout to 0 is equivalent to an infinite timeout. See Receive(). - wxMessageQueueError ReceiveTimeout(long timeout, T& msg) - { - wxCHECK( IsOk(), wxMSGQUEUE_MISC_ERROR ); - - wxMutexLocker locker(m_mutex); - - wxCHECK( locker.IsOk(), wxMSGQUEUE_MISC_ERROR ); - - const wxMilliClock_t waitUntil = wxGetLocalTimeMillis() + timeout; - while ( m_messages.empty() ) - { - wxCondError result = m_conditionNotEmpty.WaitTimeout(timeout); - - if ( result == wxCOND_NO_ERROR ) - continue; - - wxCHECK( result == wxCOND_TIMEOUT, wxMSGQUEUE_MISC_ERROR ); - - const wxMilliClock_t now = wxGetLocalTimeMillis(); - - if ( now >= waitUntil ) - return wxMSGQUEUE_TIMEOUT; - - timeout = (waitUntil - now).ToLong(); - wxASSERT(timeout > 0); - } - - msg = m_messages.front(); - m_messages.pop(); - - return wxMSGQUEUE_NO_ERROR; - } - - // Same as ReceiveTimeout() but waits for as long as it takes for a message - // to become available (so it can't return wxMSGQUEUE_TIMEOUT) - wxMessageQueueError Receive(T& msg) - { - wxCHECK( IsOk(), wxMSGQUEUE_MISC_ERROR ); - - wxMutexLocker locker(m_mutex); - - wxCHECK( locker.IsOk(), wxMSGQUEUE_MISC_ERROR ); - - while ( m_messages.empty() ) - { - wxCondError result = m_conditionNotEmpty.Wait(); - - wxCHECK( result == wxCOND_NO_ERROR, wxMSGQUEUE_MISC_ERROR ); - } - - msg = m_messages.front(); - m_messages.pop(); - - return wxMSGQUEUE_NO_ERROR; - } - - // Return false only if there was a fatal error in ctor - bool IsOk() const - { - return m_conditionNotEmpty.IsOk(); - } - -private: - // Disable copy ctor and assignment operator - wxMessageQueue(const wxMessageQueue<T>& rhs); - wxMessageQueue<T>& operator=(const wxMessageQueue<T>& rhs); - - mutable wxMutex m_mutex; - wxCondition m_conditionNotEmpty; - - std::queue<T> m_messages; -}; - -#endif // wxUSE_THREADS - -#endif // _WX_MSGQUEUE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mstream.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mstream.h deleted file mode 100644 index b4e7303e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/mstream.h +++ /dev/null @@ -1,94 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/mstream.h -// Purpose: Memory stream classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 11/07/98 -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXMMSTREAM_H__ -#define _WX_WXMMSTREAM_H__ - -#include "wx/defs.h" - -#if wxUSE_STREAMS - -#include "wx/stream.h" - -class WXDLLIMPEXP_FWD_BASE wxMemoryOutputStream; - -class WXDLLIMPEXP_BASE wxMemoryInputStream : public wxInputStream -{ -public: - wxMemoryInputStream(const void *data, size_t length); - wxMemoryInputStream(const wxMemoryOutputStream& stream); - wxMemoryInputStream(wxInputStream& stream, - wxFileOffset lenFile = wxInvalidOffset) - { - InitFromStream(stream, lenFile); - } - wxMemoryInputStream(wxMemoryInputStream& stream) - : wxInputStream() - { - InitFromStream(stream, wxInvalidOffset); - } - - virtual ~wxMemoryInputStream(); - virtual wxFileOffset GetLength() const wxOVERRIDE { return m_length; } - virtual bool IsSeekable() const wxOVERRIDE { return true; } - - virtual char Peek() wxOVERRIDE; - virtual bool CanRead() const wxOVERRIDE; - - wxStreamBuffer *GetInputStreamBuffer() const { return m_i_streambuf; } - -protected: - wxStreamBuffer *m_i_streambuf; - - size_t OnSysRead(void *buffer, size_t nbytes) wxOVERRIDE; - wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) wxOVERRIDE; - wxFileOffset OnSysTell() const wxOVERRIDE; - -private: - // common part of ctors taking wxInputStream - void InitFromStream(wxInputStream& stream, wxFileOffset lenFile); - - size_t m_length; - - // copy ctor is implemented above: it copies the other stream in this one - wxDECLARE_ABSTRACT_CLASS(wxMemoryInputStream); - wxDECLARE_NO_ASSIGN_CLASS(wxMemoryInputStream); -}; - -class WXDLLIMPEXP_BASE wxMemoryOutputStream : public wxOutputStream -{ -public: - // if data is !NULL it must be allocated with malloc() - wxMemoryOutputStream(void *data = NULL, size_t length = 0); - virtual ~wxMemoryOutputStream(); - virtual wxFileOffset GetLength() const wxOVERRIDE { return m_o_streambuf->GetLastAccess(); } - virtual bool IsSeekable() const wxOVERRIDE { return true; } - - size_t CopyTo(void *buffer, size_t len) const; - - wxStreamBuffer *GetOutputStreamBuffer() const { return m_o_streambuf; } - -protected: - wxStreamBuffer *m_o_streambuf; - -protected: - size_t OnSysWrite(const void *buffer, size_t nbytes) wxOVERRIDE; - wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) wxOVERRIDE; - wxFileOffset OnSysTell() const wxOVERRIDE; - - wxDECLARE_DYNAMIC_CLASS(wxMemoryOutputStream); - wxDECLARE_NO_COPY_CLASS(wxMemoryOutputStream); -}; - -#endif - // wxUSE_STREAMS - -#endif - // _WX_WXMMSTREAM_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/accel.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/accel.h deleted file mode 100644 index 32575578..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/accel.h +++ /dev/null @@ -1,45 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/accel.h -// Purpose: wxAcceleratorTable class -// Author: Julian Smart -// Modified by: -// Created: 31/7/98 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ACCEL_H_ -#define _WX_ACCEL_H_ - -class WXDLLIMPEXP_FWD_CORE wxWindow; - -// ---------------------------------------------------------------------------- -// the accel table has all accelerators for a given window or menu -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxAcceleratorTable : public wxObject -{ -public: - // default ctor - wxAcceleratorTable() { } - - // load from .rc resource (Windows specific) - wxAcceleratorTable(const wxString& resource); - - // initialize from array - wxAcceleratorTable(int n, const wxAcceleratorEntry entries[]); - - bool Ok() const { return IsOk(); } - bool IsOk() const; - void SetHACCEL(WXHACCEL hAccel); - WXHACCEL GetHACCEL() const; - - // translate the accelerator, return true if done - bool Translate(wxWindow *window, WXMSG *msg) const; - -private: - wxDECLARE_DYNAMIC_CLASS(wxAcceleratorTable); -}; - -#endif - // _WX_ACCEL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/amd64.manifest b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/amd64.manifest deleted file mode 100644 index 60db9e31..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/amd64.manifest +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> -<assemblyIdentity - version="0.64.1.0" - processorArchitecture="amd64" - name="Controls" - type="win32" -/> -<description>wxWindows application</description> -<dependency> - <dependentAssembly> - <assemblyIdentity - type="win32" - name="Microsoft.Windows.Common-Controls" - version="6.0.0.0" - processorArchitecture="amd64" - publicKeyToken="6595b64144ccf1df" - language="*" - /> - </dependentAssembly> -</dependency> -</assembly> diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/anybutton.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/anybutton.h deleted file mode 100644 index 3c876aeb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/anybutton.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/anybutton.h -// Purpose: wxAnyButton class -// Author: Julian Smart -// Created: 1997-02-01 (extracted from button.h) -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_ANYBUTTON_H_ -#define _WX_MSW_ANYBUTTON_H_ - -// ---------------------------------------------------------------------------- -// Common button functionality -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxAnyButton : public wxAnyButtonBase -{ -public: - wxAnyButton() - { - m_imageData = NULL; -#if wxUSE_MARKUP - m_markupText = NULL; -#endif // wxUSE_MARKUP - } - - virtual ~wxAnyButton(); - - // overridden base class methods - virtual void SetLabel(const wxString& label); - virtual bool SetBackgroundColour(const wxColour &colour); - virtual bool SetForegroundColour(const wxColour &colour); - - // implementation from now on - virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - - virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item); - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - -protected: - // usually overridden base class virtuals - virtual wxSize DoGetBestSize() const; - - virtual wxBitmap DoGetBitmap(State which) const; - virtual void DoSetBitmap(const wxBitmap& bitmap, State which); - virtual wxSize DoGetBitmapMargins() const; - virtual void DoSetBitmapMargins(wxCoord x, wxCoord y); - virtual void DoSetBitmapPosition(wxDirection dir); - -#if wxUSE_MARKUP - virtual bool DoSetLabelMarkup(const wxString& markup); -#endif // wxUSE_MARKUP - - // Increases the passed in size to account for the button image. - // - // Should only be called if we do have a button, i.e. if m_imageData is - // non-NULL. - void AdjustForBitmapSize(wxSize& size) const; - - class wxButtonImageData *m_imageData; - -#if wxUSE_MARKUP - class wxMarkupText *m_markupText; -#endif // wxUSE_MARKUP - - // Switches button into owner-drawn mode: this is used if we need to draw - // something not supported by the native control, such as using non default - // colours or a bitmap on pre-XP systems. - void MakeOwnerDrawn(); - bool IsOwnerDrawn() const; - - virtual bool MSWIsPushed() const; - -private: - wxDECLARE_NO_COPY_CLASS(wxAnyButton); -}; - -#endif // _WX_MSW_ANYBUTTON_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/app.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/app.h deleted file mode 100644 index 29285ade..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/app.h +++ /dev/null @@ -1,116 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/app.h -// Purpose: wxApp class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_APP_H_ -#define _WX_APP_H_ - -#include "wx/event.h" -#include "wx/icon.h" - -class WXDLLIMPEXP_FWD_CORE wxFrame; -class WXDLLIMPEXP_FWD_CORE wxWindow; -class WXDLLIMPEXP_FWD_CORE wxApp; -class WXDLLIMPEXP_FWD_CORE wxKeyEvent; -class WXDLLIMPEXP_FWD_BASE wxLog; - -// Represents the application. Derive OnInit and declare -// a new App object to start application -class WXDLLIMPEXP_CORE wxApp : public wxAppBase -{ -public: - wxApp(); - virtual ~wxApp(); - - // override base class (pure) virtuals - virtual bool Initialize(int& argc, wxChar **argv); - virtual void CleanUp(); - - virtual void WakeUpIdle(); - - virtual void SetPrintMode(int mode) { m_printMode = mode; } - virtual int GetPrintMode() const { return m_printMode; } - - // implementation only - void OnIdle(wxIdleEvent& event); - void OnEndSession(wxCloseEvent& event); - void OnQueryEndSession(wxCloseEvent& event); - -#if wxUSE_EXCEPTIONS - virtual bool OnExceptionInMainLoop(); -#endif // wxUSE_EXCEPTIONS - - // MSW-specific from now on - // ------------------------ - - // this suffix should be appended to all our Win32 class names to obtain a - // variant registered without CS_[HV]REDRAW styles - static const wxChar *GetNoRedrawClassSuffix() { return wxT("NR"); } - - // get the name of the registered Win32 class with the given (unique) base - // name: this function constructs the unique class name using this name as - // prefix, checks if the class is already registered and registers it if it - // isn't and returns the name it was registered under (or NULL if it failed) - // - // the registered class will always have CS_[HV]REDRAW and CS_DBLCLKS - // styles as well as any additional styles specified as arguments here; and - // there will be also a companion registered class identical to this one - // but without CS_[HV]REDRAW whose name will be the same one but with - // GetNoRedrawClassSuffix() - // - // the background brush argument must be either a COLOR_XXX standard value - // or (default) -1 meaning that the class paints its background itself - static const wxChar *GetRegisteredClassName(const wxChar *name, - int bgBrushCol = -1, - int extraStyles = 0); - - // return true if this name corresponds to one of the classes we registered - // in the previous GetRegisteredClassName() calls - static bool IsRegisteredClassName(const wxString& name); - - // Return the layout direction to use for a window by default. - // - // If the parent is specified, use the same layout direction as it uses. - // Otherwise use the default global layout, either from wxTheApp, if it - // exists, or Windows itself. - // - // Notice that this normally should not be used for the child windows as - // they already inherit, just dialogs such as wxMessageDialog may want to - // use it. - static wxLayoutDirection MSWGetDefaultLayout(wxWindow* parent = NULL); - -protected: - int m_printMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT - -public: - // unregister any window classes registered by GetRegisteredClassName() - static void UnregisterWindowClasses(); - -#if wxUSE_RICHEDIT - // initialize the richedit DLL of (at least) given version, return true if - // ok (Win95 has version 1, Win98/NT4 has 1 and 2, W2K has 3) - static bool InitRichEdit(int version = 2); -#endif // wxUSE_RICHEDIT - - // returns 400, 470, 471 for comctl32.dll 4.00, 4.70, 4.71 or 0 if it - // wasn't found at all - static int GetComCtl32Version(); - - // the SW_XXX value to be used for the frames opened by the application - // (currently seems unused which is a bug -- TODO) - static int m_nCmdShow; - -protected: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxApp); - wxDECLARE_DYNAMIC_CLASS(wxApp); -}; - -#endif // _WX_APP_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/appprogress.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/appprogress.h deleted file mode 100644 index 0840c075..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/appprogress.h +++ /dev/null @@ -1,39 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/appprogress.h -// Purpose: wxAppProgressIndicator interface. -// Author: Chaobin Zhang <zhchbin@gmail.com> -// Created: 2014-09-05 -// Copyright: (c) 2014 wxWidgets development team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_APPPROG_H_ -#define _WX_MSW_APPPROG_H_ - -#include "wx/vector.h" - -class WXDLLIMPEXP_FWD_CORE wxTaskBarButton; - -class WXDLLIMPEXP_CORE wxAppProgressIndicator - : public wxAppProgressIndicatorBase -{ -public: - wxAppProgressIndicator(wxWindow* parent = NULL, int maxValue = 100); - virtual ~wxAppProgressIndicator(); - - virtual bool IsAvailable() const wxOVERRIDE; - - virtual void SetValue(int value) wxOVERRIDE; - virtual void SetRange(int range) wxOVERRIDE; - virtual void Pulse() wxOVERRIDE; - virtual void Reset() wxOVERRIDE; - -private: - int m_maxValue; - - wxVector<wxTaskBarButton*> m_taskBarButtons; - - wxDECLARE_NO_COPY_CLASS(wxAppProgressIndicator); -}; - -#endif // _WX_MSW_APPPROG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/apptbase.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/apptbase.h deleted file mode 100644 index 2442bf3b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/apptbase.h +++ /dev/null @@ -1,70 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/apptbase.h -// Purpose: declaration of wxAppTraits for MSW -// Author: Vadim Zeitlin -// Modified by: -// Created: 22.06.2003 -// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_APPTBASE_H_ -#define _WX_MSW_APPTBASE_H_ - -// ---------------------------------------------------------------------------- -// wxAppTraits: the MSW version adds extra hooks needed by MSW-only code -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxAppTraits : public wxAppTraitsBase -{ -public: - // wxExecute() support methods - // --------------------------- - - // called before starting to wait for the child termination, may return - // some opaque data which will be passed later to AfterChildWaitLoop() - virtual void *BeforeChildWaitLoop() = 0; - - // called after starting to wait for the child termination, the parameter - // is the return value of BeforeChildWaitLoop() - virtual void AfterChildWaitLoop(void *data) = 0; - - -#if wxUSE_THREADS - // wxThread helpers - // ---------------- - - // process a message while waiting for a(nother) thread, should return - // false if and only if we have to exit the application - virtual bool DoMessageFromThreadWait() = 0; - - // wait for the handle to be signaled, return WAIT_OBJECT_0 if it is or, in - // the GUI code, WAIT_OBJECT_0 + 1 if a Windows message arrived - virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags) = 0; -#endif // wxUSE_THREADS - - - // console helpers - // --------------- - - // this method can be overridden by a derived class to always return true - // or false to force [not] using the console for output to stderr - // - // by default console applications always return true from here while the - // GUI ones only return true if they're being run from console and there is - // no other activity happening in this console - virtual bool CanUseStderr() = 0; - - // write text to the console, return true if ok or false on error - virtual bool WriteToStderr(const wxString& text) = 0; - -protected: -#if wxUSE_THREADS - // implementation of WaitForThread() for the console applications which is - // also used by the GUI code if it doesn't [yet|already] dispatch events - WXDWORD DoSimpleWaitForThread(WXHANDLE hThread); -#endif // wxUSE_THREADS -}; - -#endif // _WX_MSW_APPTBASE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/apptrait.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/apptrait.h deleted file mode 100644 index 6a968fe1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/apptrait.h +++ /dev/null @@ -1,90 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/apptrait.h -// Purpose: class implementing wxAppTraits for MSW -// Author: Vadim Zeitlin -// Modified by: -// Created: 21.06.2003 -// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_APPTRAIT_H_ -#define _WX_MSW_APPTRAIT_H_ - -// ---------------------------------------------------------------------------- -// wxGUI/ConsoleAppTraits: must derive from wxAppTraits, not wxAppTraitsBase -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxConsoleAppTraits : public wxConsoleAppTraitsBase -{ -public: - virtual wxEventLoopBase *CreateEventLoop(); - virtual void *BeforeChildWaitLoop(); - virtual void AfterChildWaitLoop(void *data); -#if wxUSE_TIMER - virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer); -#endif // wxUSE_TIMER -#if wxUSE_THREADS - virtual bool DoMessageFromThreadWait(); - virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags); -#endif // wxUSE_THREADS - virtual bool CanUseStderr() { return true; } - virtual bool WriteToStderr(const wxString& text); -}; - -#if wxUSE_GUI - -#if defined(__WXMSW__) - -class WXDLLIMPEXP_CORE wxGUIAppTraits : public wxGUIAppTraitsBase -{ -public: - virtual wxEventLoopBase *CreateEventLoop(); - virtual void *BeforeChildWaitLoop(); - virtual void AfterChildWaitLoop(void *data); -#if wxUSE_TIMER - virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer); -#endif // wxUSE_TIMER -#if wxUSE_THREADS - virtual bool DoMessageFromThreadWait(); - virtual WXDWORD WaitForThread(WXHANDLE hThread, int flags); -#endif // wxUSE_THREADS - virtual wxPortId GetToolkitVersion(int *majVer = NULL, int *minVer = NULL) const; - - virtual bool CanUseStderr(); - virtual bool WriteToStderr(const wxString& text); -}; - -#elif defined(__WXGTK__) - -class WXDLLIMPEXP_CORE wxGUIAppTraits : public wxGUIAppTraitsBase -{ -public: - virtual wxEventLoopBase *CreateEventLoop(); - virtual void *BeforeChildWaitLoop() { return NULL; } - virtual void AfterChildWaitLoop(void *WXUNUSED(data)) { } -#if wxUSE_TIMER - virtual wxTimerImpl *CreateTimerImpl(wxTimer *timer); -#endif - -#if wxUSE_THREADS && defined(__WXGTK20__) - virtual void MutexGuiEnter(); - virtual void MutexGuiLeave(); -#endif - -#if wxUSE_THREADS - virtual bool DoMessageFromThreadWait() { return true; } - virtual WXDWORD WaitForThread(WXHANDLE hThread, int WXUNUSED(flags)) - { return DoSimpleWaitForThread(hThread); } -#endif // wxUSE_THREADS - virtual wxPortId GetToolkitVersion(int *majVer = NULL, int *minVer = NULL) const; - - virtual bool CanUseStderr() { return false; } - virtual bool WriteToStderr(const wxString& WXUNUSED(text)) { return false; } -}; - -#endif - -#endif // wxUSE_GUI - -#endif // _WX_MSW_APPTRAIT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bitmap.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bitmap.h deleted file mode 100644 index 4ebc1088..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bitmap.h +++ /dev/null @@ -1,329 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/bitmap.h -// Purpose: wxBitmap class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BITMAP_H_ -#define _WX_BITMAP_H_ - -#include "wx/msw/gdiimage.h" -#include "wx/math.h" -#include "wx/palette.h" - -class WXDLLIMPEXP_FWD_CORE wxBitmap; -class WXDLLIMPEXP_FWD_CORE wxBitmapHandler; -class WXDLLIMPEXP_FWD_CORE wxBitmapRefData; -class WXDLLIMPEXP_FWD_CORE wxControl; -class WXDLLIMPEXP_FWD_CORE wxCursor; -class WXDLLIMPEXP_FWD_CORE wxDC; -#if wxUSE_WXDIB -class WXDLLIMPEXP_FWD_CORE wxDIB; -#endif -class WXDLLIMPEXP_FWD_CORE wxIcon; -class WXDLLIMPEXP_FWD_CORE wxMask; -class WXDLLIMPEXP_FWD_CORE wxPalette; -class WXDLLIMPEXP_FWD_CORE wxPixelDataBase; - -// What kind of transparency should a bitmap copied from an icon or cursor -// have? -enum wxBitmapTransparency -{ - wxBitmapTransparency_Auto, // default: copy alpha if the source has it - wxBitmapTransparency_None, // never create alpha - wxBitmapTransparency_Always // always use alpha -}; - -// ---------------------------------------------------------------------------- -// wxBitmap: a mono or colour bitmap -// NOTE: for wxMSW we don't use the wxBitmapBase base class declared in bitmap.h! -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxBitmap : public wxGDIImage, - public wxBitmapHelpers -{ -public: - // default ctor creates an invalid bitmap, you must Create() it later - wxBitmap() { } - - // Initialize with raw data - wxBitmap(const char bits[], int width, int height, int depth = 1); - - // Initialize with XPM data - wxBitmap(const char* const* data); -#ifdef wxNEEDS_CHARPP - wxBitmap(char** data) - { - *this = wxBitmap(const_cast<const char* const*>(data)); - } -#endif - - // Load a file or resource - wxBitmap(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); - - // New constructor for generalised creation from data - wxBitmap(const void* data, wxBitmapType type, int width, int height, int depth = 1); - - // Create a new, uninitialized bitmap of the given size and depth (if it - // is omitted, will create a bitmap compatible with the display) - // - // NB: this ctor will create a DIB for 24 and 32bpp bitmaps, use ctor - // taking a DC argument if you want to force using DDB in this case - wxBitmap(int width, int height, int depth = -1) { (void)Create(width, height, depth); } - wxBitmap(const wxSize& sz, int depth = -1) { (void)Create(sz, depth); } - - // Create a bitmap compatible with the given DC - wxBitmap(int width, int height, const wxDC& dc); - -#if wxUSE_IMAGE - // Convert from wxImage - wxBitmap(const wxImage& image, int depth = -1, double WXUNUSED(scale) = 1.0) - { (void)CreateFromImage(image, depth); } - - // Create a DDB compatible with the given DC from wxImage - wxBitmap(const wxImage& image, const wxDC& dc) - { (void)CreateFromImage(image, dc); } -#endif // wxUSE_IMAGE - - // we must have this, otherwise icons are silently copied into bitmaps using - // the copy ctor but the resulting bitmap is invalid! - wxBitmap(const wxIcon& icon, - wxBitmapTransparency transp = wxBitmapTransparency_Auto) - { - CopyFromIcon(icon, transp); - } - - // Convert from wxCursor - wxEXPLICIT wxBitmap(const wxCursor& cursor) - { - (void)CopyFromCursor(cursor, wxBitmapTransparency_Auto); - } - - wxBitmap& operator=(const wxIcon& icon) - { - (void)CopyFromIcon(icon); - - return *this; - } - -#if WXWIN_COMPATIBILITY_3_0 - // This assignment operator is not portable as it is not implemented in any - // other ports. - wxDEPRECATED_MSG("Don't assign wxCursor to an existing wxBitmap, create a new wxBitmap from wxCursor instead.") - wxBitmap& operator=(const wxCursor& cursor) - { - (void)CopyFromCursor(cursor); - - return *this; - } -#endif // WXWIN_COMPATIBILITY_3_0 - - virtual ~wxBitmap(); - -#if wxUSE_IMAGE - wxImage ConvertToImage() const; - wxBitmap ConvertToDisabled(unsigned char brightness = 255) const; -#endif // wxUSE_IMAGE - - // get the given part of bitmap - wxBitmap GetSubBitmap( const wxRect& rect ) const; - - // NB: This should not be called from user code. It is for wx internal - // use only. - wxBitmap GetSubBitmapOfHDC( const wxRect& rect, WXHDC hdc ) const; - - // copies the contents and mask of the given (colour) icon to the bitmap - bool CopyFromIcon(const wxIcon& icon, - wxBitmapTransparency transp = wxBitmapTransparency_Auto); - - // copies the contents and mask of the given cursor to the bitmap - bool CopyFromCursor(const wxCursor& cursor, - wxBitmapTransparency transp = wxBitmapTransparency_Auto); - -#if wxUSE_WXDIB - // copies from a device independent bitmap - bool CopyFromDIB(const wxDIB& dib); - bool IsDIB() const; - bool ConvertToDIB(); -#endif - - virtual bool Create(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH); - virtual bool Create(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH) - { return Create(sz.GetWidth(), sz.GetHeight(), depth); } - - virtual bool Create(int width, int height, const wxDC& dc); - virtual bool Create(const void* data, wxBitmapType type, int width, int height, int depth = 1); - virtual bool CreateScaled(int w, int h, int d, double logicalScale) - { return Create(wxRound(w*logicalScale), wxRound(h*logicalScale), d); } - - virtual bool LoadFile(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); - virtual bool SaveFile(const wxString& name, wxBitmapType type, const wxPalette *cmap = NULL) const; - - wxBitmapRefData *GetBitmapData() const - { return (wxBitmapRefData *)m_refData; } - - // raw bitmap access support functions - void *GetRawData(wxPixelDataBase& data, int bpp); - void UngetRawData(wxPixelDataBase& data); - -#if wxUSE_PALETTE - wxPalette* GetPalette() const; - void SetPalette(const wxPalette& palette); -#endif // wxUSE_PALETTE - - wxMask *GetMask() const; - void SetMask(wxMask *mask); - - // these functions are internal and shouldn't be used, they risk to - // disappear in the future - bool HasAlpha() const; - void UseAlpha(bool use = true); - void ResetAlpha() { UseAlpha(false); } - - // support for scaled bitmaps - virtual double GetScaleFactor() const { return 1.0; } - virtual double GetScaledWidth() const { return GetWidth() / GetScaleFactor(); } - virtual double GetScaledHeight() const { return GetHeight() / GetScaleFactor(); } - virtual wxSize GetScaledSize() const - { return wxSize(wxRound(GetScaledWidth()), wxRound(GetScaledHeight())); } - - // implementation only from now on - // ------------------------------- - - // Set alpha flag to true if this is a 32bpp bitmap which has any non-0 - // values in its alpha channel. - void MSWUpdateAlpha(); - -public: - void SetHBITMAP(WXHBITMAP bmp) { SetHandle((WXHANDLE)bmp); } - WXHBITMAP GetHBITMAP() const { return (WXHBITMAP)GetHandle(); } - - void SetSelectedInto(wxDC *dc); - wxDC *GetSelectedInto() const; - -protected: - virtual wxGDIImageRefData *CreateData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - - // creates an uninitialized bitmap, called from Create()s above - bool DoCreate(int w, int h, int depth, WXHDC hdc); - -#if wxUSE_IMAGE - // creates the bitmap from wxImage, supposed to be called from ctor - bool CreateFromImage(const wxImage& image, int depth); - - // creates a DDB from wxImage, supposed to be called from ctor - bool CreateFromImage(const wxImage& image, const wxDC& dc); - - // common part of the 2 methods above (hdc may be 0) - bool CreateFromImage(const wxImage& image, int depth, WXHDC hdc); -#endif // wxUSE_IMAGE - -private: - // common part of CopyFromIcon/CopyFromCursor for Win32 - bool - CopyFromIconOrCursor(const wxGDIImage& icon, - wxBitmapTransparency transp = wxBitmapTransparency_Auto); - - - wxDECLARE_DYNAMIC_CLASS(wxBitmap); -}; - -// ---------------------------------------------------------------------------- -// wxMask: a mono bitmap used for drawing bitmaps transparently. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMask : public wxObject -{ -public: - wxMask(); - - // Copy constructor - wxMask(const wxMask &mask); - - // Construct a mask from a bitmap and a colour indicating the transparent - // area - wxMask(const wxBitmap& bitmap, const wxColour& colour); - - // Construct a mask from a bitmap and a palette index indicating the - // transparent area - wxMask(const wxBitmap& bitmap, int paletteIndex); - - // Construct a mask from a mono bitmap (copies the bitmap). - wxMask(const wxBitmap& bitmap); - - // construct a mask from the givne bitmap handle - wxMask(WXHBITMAP hbmp) { m_maskBitmap = hbmp; } - - virtual ~wxMask(); - - bool Create(const wxBitmap& bitmap, const wxColour& colour); - bool Create(const wxBitmap& bitmap, int paletteIndex); - bool Create(const wxBitmap& bitmap); - - wxBitmap GetBitmap() const; - - // Implementation - WXHBITMAP GetMaskBitmap() const { return m_maskBitmap; } - void SetMaskBitmap(WXHBITMAP bmp) { m_maskBitmap = bmp; } - -protected: - WXHBITMAP m_maskBitmap; - - wxDECLARE_DYNAMIC_CLASS(wxMask); -}; - - -// ---------------------------------------------------------------------------- -// wxBitmapHandler is a class which knows how to load/save bitmaps to/from file -// NOTE: for wxMSW we don't use the wxBitmapHandler class declared in bitmap.h! -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxBitmapHandler : public wxGDIImageHandler -{ -public: - wxBitmapHandler() { } - wxBitmapHandler(const wxString& name, const wxString& ext, wxBitmapType type) - : wxGDIImageHandler(name, ext, type) { } - - // implement wxGDIImageHandler's pure virtuals: - - virtual bool Create(wxGDIImage *image, - const void* data, - wxBitmapType type, - int width, int height, int depth = 1); - virtual bool Load(wxGDIImage *image, - const wxString& name, - wxBitmapType type, - int desiredWidth, int desiredHeight); - virtual bool Save(const wxGDIImage *image, - const wxString& name, - wxBitmapType type) const; - - - // make wxBitmapHandler compatible with the wxBitmapHandler interface - // declared in bitmap.h, even if it's derived from wxGDIImageHandler: - - virtual bool Create(wxBitmap *bitmap, - const void* data, - wxBitmapType type, - int width, int height, int depth = 1); - virtual bool LoadFile(wxBitmap *bitmap, - const wxString& name, - wxBitmapType type, - int desiredWidth, int desiredHeight); - virtual bool SaveFile(const wxBitmap *bitmap, - const wxString& name, - wxBitmapType type, - const wxPalette *palette = NULL) const; - -private: - wxDECLARE_DYNAMIC_CLASS(wxBitmapHandler); -}; - -#endif - // _WX_BITMAP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/blank.cur b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/blank.cur deleted file mode 100644 index 048f06b4..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/blank.cur and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bmpbuttn.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bmpbuttn.h deleted file mode 100644 index 066c0f4f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bmpbuttn.h +++ /dev/null @@ -1,49 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/bmpbuttn.h -// Purpose: wxBitmapButton class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BMPBUTTN_H_ -#define _WX_BMPBUTTN_H_ - -#include "wx/button.h" -#include "wx/bitmap.h" -#include "wx/brush.h" - -class WXDLLIMPEXP_CORE wxBitmapButton : public wxBitmapButtonBase -{ -public: - wxBitmapButton() {} - - wxBitmapButton(wxWindow *parent, - wxWindowID id, - const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - { - Create(parent, id, bitmap, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - -protected: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxBitmapButton); -}; - -#endif // _WX_BMPBUTTN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bmpcbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bmpcbox.h deleted file mode 100644 index 3530c1b5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bmpcbox.h +++ /dev/null @@ -1,135 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/bmpcbox.h -// Purpose: wxBitmapComboBox -// Author: Jaakko Salli -// Created: 2008-04-06 -// Copyright: (c) 2008 Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_BMPCBOX_H_ -#define _WX_MSW_BMPCBOX_H_ - - -#include "wx/combobox.h" - - -// ---------------------------------------------------------------------------- -// wxBitmapComboBox: a wxComboBox that allows images to be shown -// in front of string items. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxBitmapComboBox : public wxComboBox, - public wxBitmapComboBoxBase -{ -public: - // ctors and such - wxBitmapComboBox() : wxComboBox(), wxBitmapComboBoxBase() - { - Init(); - } - - wxBitmapComboBox(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, - const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapComboBoxNameStr) - : wxComboBox(), - wxBitmapComboBoxBase() - { - Init(); - - (void)Create(parent, id, value, pos, size, n, - choices, style, validator, name); - } - - wxBitmapComboBox(wxWindow *parent, - wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapComboBoxNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - int n, - const wxString choices[], - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapComboBoxNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapComboBoxNameStr); - - virtual ~wxBitmapComboBox(); - - // Sets the image for the given item. - virtual void SetItemBitmap(unsigned int n, const wxBitmap& bitmap); - - virtual bool SetFont(const wxFont& font); - - // Adds item with image to the end of the combo box. - int Append(const wxString& item, const wxBitmap& bitmap = wxNullBitmap); - int Append(const wxString& item, const wxBitmap& bitmap, void *clientData); - int Append(const wxString& item, const wxBitmap& bitmap, wxClientData *clientData); - - // Inserts item with image into the list before pos. Not valid for wxCB_SORT - // styles, use Append instead. - int Insert(const wxString& item, const wxBitmap& bitmap, unsigned int pos); - int Insert(const wxString& item, const wxBitmap& bitmap, - unsigned int pos, void *clientData); - int Insert(const wxString& item, const wxBitmap& bitmap, - unsigned int pos, wxClientData *clientData); - -protected: - - WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item); - virtual bool MSWOnMeasure(WXMEASUREITEMSTRUCT *item); - - // Event handlers - void OnSize(wxSizeEvent& event); - - virtual wxItemContainer* GetItemContainer() { return this; } - virtual wxWindow* GetControl() { return this; } - - // wxItemContainer implementation - virtual int DoInsertItems(const wxArrayStringsAdapter & items, - unsigned int pos, - void **clientData, wxClientDataType type); - virtual void DoClear(); - virtual void DoDeleteOneItem(unsigned int n); - - virtual bool OnAddBitmap(const wxBitmap& bitmap); - virtual wxSize DoGetBestSize() const; - void RecreateControl(); - -private: - void Init(); - - bool m_inResize; - - wxDECLARE_EVENT_TABLE(); - - wxDECLARE_DYNAMIC_CLASS(wxBitmapComboBox); -}; - -#endif // _WX_MSW_BMPCBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/brush.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/brush.h deleted file mode 100644 index 3de73c57..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/brush.h +++ /dev/null @@ -1,60 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/brush.h -// Purpose: wxBrush class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BRUSH_H_ -#define _WX_BRUSH_H_ - -class WXDLLIMPEXP_FWD_CORE wxBrush; -class WXDLLIMPEXP_FWD_CORE wxColour; -class WXDLLIMPEXP_FWD_CORE wxBitmap; - -// ---------------------------------------------------------------------------- -// wxBrush -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxBrush : public wxBrushBase -{ -public: - wxBrush(); - wxBrush(const wxColour& col, wxBrushStyle style = wxBRUSHSTYLE_SOLID); - wxBrush(const wxBitmap& stipple); - virtual ~wxBrush(); - - virtual void SetColour(const wxColour& col); - virtual void SetColour(unsigned char r, unsigned char g, unsigned char b); - virtual void SetStyle(wxBrushStyle style); - virtual void SetStipple(const wxBitmap& stipple); - - bool operator==(const wxBrush& brush) const; - bool operator!=(const wxBrush& brush) const { return !(*this == brush); } - - wxColour GetColour() const; - wxBrushStyle GetStyle() const; - wxBitmap *GetStipple() const; - - - wxDEPRECATED_MSG("use wxBRUSHSTYLE_XXX constants") - wxBrush(const wxColour& col, int style); - - wxDEPRECATED_MSG("use wxBRUSHSTYLE_XXX constants") - void SetStyle(int style) { SetStyle((wxBrushStyle)style); } - - // return the HBRUSH for this brush - virtual WXHANDLE GetResourceHandle() const; - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - -private: - wxDECLARE_DYNAMIC_CLASS(wxBrush); -}; - -#endif // _WX_BRUSH_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bullseye.cur b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bullseye.cur deleted file mode 100644 index 359f6e09..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/bullseye.cur and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/button.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/button.h deleted file mode 100644 index 26979a89..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/button.h +++ /dev/null @@ -1,85 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/button.h -// Purpose: wxButton class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_BUTTON_H_ -#define _WX_MSW_BUTTON_H_ - -// ---------------------------------------------------------------------------- -// Pushbutton -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxButton : public wxButtonBase -{ -public: - wxButton() { Init(); } - wxButton(wxWindow *parent, - wxWindowID id, - const wxString& label = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - { - Init(); - - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - virtual ~wxButton(); - - virtual wxWindow *SetDefault(); - - // implementation from now on - virtual void Command(wxCommandEvent& event); - virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - virtual bool MSWCommand(WXUINT param, WXWORD id); - - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - -protected: - // send a notification event, return true if processed - bool SendClickEvent(); - - // default button handling - void SetTmpDefault(); - void UnsetTmpDefault(); - - // set or unset BS_DEFPUSHBUTTON style - static void SetDefaultStyle(wxButton *btn, bool on); - - virtual bool DoGetAuthNeeded() const; - virtual void DoSetAuthNeeded(bool show); - - // true if the UAC symbol is shown - bool m_authNeeded; - -private: - void Init() - { - m_authNeeded = false; - } - - void OnCharHook(wxKeyEvent& event); - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxButton); -}; - -#endif // _WX_MSW_BUTTON_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/calctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/calctrl.h deleted file mode 100644 index 8fe57f77..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/calctrl.h +++ /dev/null @@ -1,98 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/calctrl.h -// Purpose: wxCalendarCtrl control implementation for MSW -// Author: Vadim Zeitlin -// Copyright: (C) 2008 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_CALCTRL_H_ -#define _WX_MSW_CALCTRL_H_ - -class WXDLLIMPEXP_ADV wxCalendarCtrl : public wxCalendarCtrlBase -{ -public: - wxCalendarCtrl() { Init(); } - wxCalendarCtrl(wxWindow *parent, - wxWindowID id, - const wxDateTime& date = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCAL_SHOW_HOLIDAYS, - const wxString& name = wxCalendarNameStr) - { - Init(); - - Create(parent, id, date, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxDateTime& date = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCAL_SHOW_HOLIDAYS, - const wxString& name = wxCalendarNameStr); - - virtual bool SetDate(const wxDateTime& date); - virtual wxDateTime GetDate() const; - - virtual bool SetDateRange(const wxDateTime& lowerdate = wxDefaultDateTime, - const wxDateTime& upperdate = wxDefaultDateTime); - virtual bool GetDateRange(wxDateTime *lowerdate, wxDateTime *upperdate) const; - - virtual bool EnableMonthChange(bool enable = true); - - virtual void Mark(size_t day, bool mark); - virtual void SetHoliday(size_t day); - - virtual wxCalendarHitTestResult HitTest(const wxPoint& pos, - wxDateTime *date = NULL, - wxDateTime::WeekDay *wd = NULL); - - virtual void SetWindowStyleFlag(long style); - -protected: - virtual wxSize DoGetBestSize() const; - - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - - void MSWOnClick(wxMouseEvent& event); - void MSWOnDoubleClick(wxMouseEvent& event); - -private: - void Init(); - - // bring the control in sync with m_marks - void UpdateMarks(); - - // set first day of week in the control to correspond to our - // wxCAL_MONDAY_FIRST flag - void UpdateFirstDayOfWeek(); - - // reset holiday information - virtual void ResetHolidayAttrs() { m_holidays = 0; } - - // redisplay holidays - virtual void RefreshHolidays() { UpdateMarks(); } - - - // current date, we need to store it instead of simply retrieving it from - // the control as needed in order to be able to generate the correct events - // from MSWOnNotify() - wxDateTime m_date; - - // bit field containing the state (marked or not) of all days in the month - wxUint32 m_marks; - - // the same but indicating whether a day is a holiday or not - wxUint32 m_holidays; - - - wxDECLARE_DYNAMIC_CLASS(wxCalendarCtrl); - wxDECLARE_NO_COPY_CLASS(wxCalendarCtrl); -}; - -#endif // _WX_MSW_CALCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/caret.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/caret.h deleted file mode 100644 index c179032d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/caret.h +++ /dev/null @@ -1,63 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/caret.h -// Purpose: wxCaret class - the MSW implementation of wxCaret -// Author: Vadim Zeitlin -// Modified by: -// Created: 23.05.99 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CARET_H_ -#define _WX_CARET_H_ - -class WXDLLIMPEXP_CORE wxCaret : public wxCaretBase -{ -public: - wxCaret() { Init(); } - // create the caret of given (in pixels) width and height and associate - // with the given window - wxCaret(wxWindow *window, int width, int height) - { - Init(); - - (void)Create(window, width, height); - } - // same as above - wxCaret(wxWindowBase *window, const wxSize& size) - { - Init(); - - (void)Create(window, size); - } - - // process wxWindow notifications - virtual void OnSetFocus(); - virtual void OnKillFocus(); - -protected: - void Init() - { - wxCaretBase::Init(); - - m_hasCaret = false; - } - - // override base class virtuals - virtual void DoMove(); - virtual void DoShow(); - virtual void DoHide(); - virtual void DoSize(); - - // helper function which creates the system caret - bool MSWCreateCaret(); - -private: - bool m_hasCaret; - - wxDECLARE_NO_COPY_CLASS(wxCaret); -}; - -#endif // _WX_CARET_H_ - - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/cdrom.ico b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/cdrom.ico deleted file mode 100644 index f3fa3a95..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/cdrom.ico and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/checkbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/checkbox.h deleted file mode 100644 index a79a21da..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/checkbox.h +++ /dev/null @@ -1,80 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/checkbox.h -// Purpose: wxCheckBox class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHECKBOX_H_ -#define _WX_CHECKBOX_H_ - -#include "wx/msw/ownerdrawnbutton.h" - -// Checkbox item (single checkbox) -class WXDLLIMPEXP_CORE wxCheckBox : public wxMSWOwnerDrawnButton<wxCheckBoxBase> -{ -public: - wxCheckBox() { } - wxCheckBox(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - - virtual void SetValue(bool value); - virtual bool GetValue() const; - - // override some base class virtuals - virtual void SetLabel(const wxString& label); - - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual void Command(wxCommandEvent& event); - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - - // implementation only from now on - virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const; - -protected: - virtual wxSize DoGetBestClientSize() const; - - virtual void DoSet3StateValue(wxCheckBoxState value); - virtual wxCheckBoxState DoGet3StateValue() const; - - // Implement wxMSWOwnerDrawnButtonBase methods. - virtual int MSWGetButtonStyle() const wxOVERRIDE; - virtual void MSWOnButtonResetOwnerDrawn() wxOVERRIDE; - virtual int MSWGetButtonCheckedFlag() const wxOVERRIDE; - virtual void - MSWDrawButtonBitmap(wxDC& dc, const wxRect& rect, int flags) wxOVERRIDE; - -private: - // common part of all ctors - void Init(); - - // current state of the checkbox - wxCheckBoxState m_state; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxCheckBox); -}; - -#endif // _WX_CHECKBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/checklst.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/checklst.h deleted file mode 100644 index 9392f3e3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/checklst.h +++ /dev/null @@ -1,88 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/checklst.h -// Purpose: wxCheckListBox class - a listbox with checkable items -// Author: Vadim Zeitlin -// Modified by: -// Created: 16.11.97 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef __CHECKLST__H_ -#define __CHECKLST__H_ - -#if !wxUSE_OWNER_DRAWN - #error "wxCheckListBox class requires owner-drawn functionality." -#endif - -class WXDLLIMPEXP_FWD_CORE wxOwnerDrawn; -class WXDLLIMPEXP_FWD_CORE wxCheckListBoxItem; // fwd decl, defined in checklst.cpp - -class WXDLLIMPEXP_CORE wxCheckListBox : public wxCheckListBoxBase -{ -public: - // ctors - wxCheckListBox(); - wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int nStrings = 0, - const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - // items may be checked - virtual bool IsChecked(unsigned int uiIndex) const; - virtual void Check(unsigned int uiIndex, bool bCheck = true); - virtual void Toggle(unsigned int uiIndex); - - // we create our items ourselves and they have non-standard size, - // so we need to override these functions - virtual wxOwnerDrawn *CreateLboxItem(size_t n); - virtual bool MSWOnMeasure(WXMEASUREITEMSTRUCT *item); - -protected: - // pressing space or clicking the check box toggles the item - void OnKeyDown(wxKeyEvent& event); - void OnLeftClick(wxMouseEvent& event); - - // send an "item checked" event - void SendEvent(unsigned int uiIndex) - { - wxCommandEvent event(wxEVT_CHECKLISTBOX, GetId()); - event.SetInt(uiIndex); - event.SetEventObject(this); - event.SetString(GetString(uiIndex)); - ProcessCommand(event); - } - - wxSize DoGetBestClientSize() const; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxCheckListBox); -}; - -#endif //_CHECKLST_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/child.ico b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/child.ico deleted file mode 100644 index 435cca24..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/child.ico and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/chkconf.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/chkconf.h deleted file mode 100644 index 656ef980..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/chkconf.h +++ /dev/null @@ -1,414 +0,0 @@ -/* - * Name: wx/msw/chkconf.h - * Purpose: Compiler-specific configuration checking - * Author: Julian Smart - * Modified by: - * Created: 01/02/97 - * Copyright: (c) Julian Smart - * Licence: wxWindows licence - */ - -/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ - -#ifndef _WX_MSW_CHKCONF_H_ -#define _WX_MSW_CHKCONF_H_ - -/* ensure that MSW-specific settings are defined */ -#ifndef wxUSE_ACTIVEX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ACTIVEX must be defined." -# else -# define wxUSE_ACTIVEX 0 -# endif -#endif /* !defined(wxUSE_ACTIVEX) */ - -#ifndef wxUSE_WINRT -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_WINRT must be defined." -# else -# define wxUSE_WINRT 0 -# endif -#endif /* !defined(wxUSE_ACTIVEX) */ - -#ifndef wxUSE_CRASHREPORT -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_CRASHREPORT must be defined." -# else -# define wxUSE_CRASHREPORT 0 -# endif -#endif /* !defined(wxUSE_CRASHREPORT) */ - -#ifndef wxUSE_DC_CACHEING -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DC_CACHEING must be defined" -# else -# define wxUSE_DC_CACHEING 1 -# endif -#endif /* wxUSE_DC_CACHEING */ - -#ifndef wxUSE_DIALUP_MANAGER -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DIALUP_MANAGER must be defined." -# else -# define wxUSE_DIALUP_MANAGER 0 -# endif -#endif /* !defined(wxUSE_DIALUP_MANAGER) */ - -#ifndef wxUSE_MS_HTML_HELP -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_MS_HTML_HELP must be defined." -# else -# define wxUSE_MS_HTML_HELP 0 -# endif -#endif /* !defined(wxUSE_MS_HTML_HELP) */ - -#ifndef wxUSE_INICONF -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_INICONF must be defined." -# else -# define wxUSE_INICONF 0 -# endif -#endif /* !defined(wxUSE_INICONF) */ - -#ifndef wxUSE_OLE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_OLE must be defined." -# else -# define wxUSE_OLE 0 -# endif -#endif /* !defined(wxUSE_OLE) */ - -#ifndef wxUSE_OLE_AUTOMATION -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_OLE_AUTOMATION must be defined." -# else -# define wxUSE_OLE_AUTOMATION 0 -# endif -#endif /* !defined(wxUSE_OLE_AUTOMATION) */ - -#ifndef wxUSE_TASKBARICON_BALLOONS -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TASKBARICON_BALLOONS must be defined." -# else -# define wxUSE_TASKBARICON_BALLOONS 0 -# endif -#endif /* wxUSE_TASKBARICON_BALLOONS */ - -#ifndef wxUSE_TASKBARBUTTON -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_TASKBARBUTTON must be defined." -# else -# define wxUSE_TASKBARBUTTON 0 -# endif -#endif /* wxUSE_TASKBARBUTTON */ - -#ifndef wxUSE_UXTHEME -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_UXTHEME must be defined." -# else -# define wxUSE_UXTHEME 0 -# endif -#endif /* wxUSE_UXTHEME */ - -/* - * Unfortunately we can't use compiler TLS support if the library can be used - * inside a dynamically loaded DLL under Windows XP, as this can result in hard - * to diagnose crashes due to the bugs in Windows TLS support, see #13116. - * - * So we disable it unless we can be certain that the code will never run under - * XP, as is the case if we're using a compiler which doesn't support XP such - * as MSVC 11+, unless it's used with the special "_xp" toolset, in which case - * _USING_V110_SDK71_ is defined. - * - * However defining wxUSE_COMPILER_TLS as 2 overrides this safety check, see - * the comments in wx/setup.h. - */ -#if wxUSE_COMPILER_TLS == 1 - #if !wxCHECK_VISUALC_VERSION(11) || defined(_USING_V110_SDK71_) - #undef wxUSE_COMPILER_TLS - #define wxUSE_COMPILER_TLS 0 - #endif -#endif - - -/* - * disable the settings which don't work for some compilers - */ - -/* - * All of the settings below require SEH support (__try/__catch) and can't work - * without it. - */ -#if !defined(_MSC_VER) && \ - (!defined(__BORLANDC__) || __BORLANDC__ < 0x0550) -# undef wxUSE_ON_FATAL_EXCEPTION -# define wxUSE_ON_FATAL_EXCEPTION 0 - -# undef wxUSE_CRASHREPORT -# define wxUSE_CRASHREPORT 0 - -# undef wxUSE_STACKWALKER -# define wxUSE_STACKWALKER 0 -#endif /* compiler doesn't support SEH */ - -#if defined(__GNUWIN32__) - /* These don't work as expected for mingw32 and cygwin32 */ -# undef wxUSE_MEMORY_TRACING -# define wxUSE_MEMORY_TRACING 0 - -# undef wxUSE_GLOBAL_MEMORY_OPERATORS -# define wxUSE_GLOBAL_MEMORY_OPERATORS 0 - -# undef wxUSE_DEBUG_NEW_ALWAYS -# define wxUSE_DEBUG_NEW_ALWAYS 0 - -/* some Cygwin versions don't have wcslen */ -# if defined(__CYGWIN__) || defined(__CYGWIN32__) -# if ! ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95))) -# undef wxUSE_WCHAR_T -# define wxUSE_WCHAR_T 0 -# endif -#endif - -#endif /* __GNUWIN32__ */ - -#if !wxUSE_OWNER_DRAWN && !defined(__WXUNIVERSAL__) -# undef wxUSE_CHECKLISTBOX -# define wxUSE_CHECKLISTBOX 0 -#endif - -#if wxUSE_SPINCTRL -# if !wxUSE_SPINBTN -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxSpinCtrl requires wxSpinButton on MSW" -# else -# undef wxUSE_SPINBTN -# define wxUSE_SPINBTN 1 -# endif -# endif -#endif - -/* - Compiler-specific checks. - */ - -/* Borland */ -#ifdef __BORLANDC__ - -#if __BORLANDC__ < 0x500 - /* BC++ 4.0 can't compile JPEG library */ -# undef wxUSE_LIBJPEG -# define wxUSE_LIBJPEG 0 -#endif - -/* wxUSE_DEBUG_NEW_ALWAYS = 1 not compatible with BC++ in DLL mode */ -#if defined(WXMAKINGDLL) || defined(WXUSINGDLL) -# undef wxUSE_DEBUG_NEW_ALWAYS -# define wxUSE_DEBUG_NEW_ALWAYS 0 -#endif - -#endif /* __BORLANDC__ */ - -/* - un/redefine the options which we can't compile (after checking that they're - defined - */ -#ifdef __WINE__ -# if wxUSE_ACTIVEX -# undef wxUSE_ACTIVEX -# define wxUSE_ACTIVEX 0 -# endif /* wxUSE_ACTIVEX */ -#endif /* __WINE__ */ - -/* - Currently wxUSE_GRAPHICS_CONTEXT is only enabled with MSVC by default, so - only check for wxUSE_ACTIVITYINDICATOR dependency on it if it can be - enabled, otherwise turn the latter off to allow the library to compile. - */ -#if !wxUSE_GRAPHICS_CONTEXT && !defined(_MSC_VER) -# undef wxUSE_ACTIVITYINDICATOR -# define wxUSE_ACTIVITYINDICATOR 0 -#endif /* !wxUSE_ACTIVITYINDICATOR && !_MSC_VER */ - - -/* check settings consistency for MSW-specific ones */ -#if wxUSE_CRASHREPORT && !wxUSE_ON_FATAL_EXCEPTION -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_CRASHREPORT requires wxUSE_ON_FATAL_EXCEPTION" -# else -# undef wxUSE_CRASHREPORT -# define wxUSE_CRASHREPORT 0 -# endif -#endif /* wxUSE_CRASHREPORT */ - -#if !wxUSE_VARIANT -# if wxUSE_ACTIVEX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxActiveXContainer requires wxVariant" -# else -# undef wxUSE_ACTIVEX -# define wxUSE_ACTIVEX 0 -# endif -# endif - -# if wxUSE_OLE_AUTOMATION -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxAutomationObject requires wxVariant" -# else -# undef wxUSE_OLE_AUTOMATION -# define wxUSE_OLE_AUTOMATION 0 -# endif -# endif -#endif /* !wxUSE_VARIANT */ - -#if !wxUSE_DATAOBJ -# if wxUSE_OLE -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_OLE requires wxDataObject" -# else -# undef wxUSE_OLE -# define wxUSE_OLE 0 -# endif -# endif -#endif /* !wxUSE_DATAOBJ */ - -#if !wxUSE_DYNAMIC_LOADER -# if wxUSE_MS_HTML_HELP -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_MS_HTML_HELP requires wxUSE_DYNAMIC_LOADER." -# else -# undef wxUSE_MS_HTML_HELP -# define wxUSE_MS_HTML_HELP 0 -# endif -# endif -# if wxUSE_DIALUP_MANAGER -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DIALUP_MANAGER requires wxUSE_DYNAMIC_LOADER." -# else -# undef wxUSE_DIALUP_MANAGER -# define wxUSE_DIALUP_MANAGER 0 -# endif -# endif -#endif /* !wxUSE_DYNAMIC_LOADER */ - -#if !wxUSE_DYNLIB_CLASS -# if wxUSE_DC_TRANSFORM_MATRIX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DC_TRANSFORM_MATRIX requires wxUSE_DYNLIB_CLASS" -# else -# undef wxUSE_DC_TRANSFORM_MATRIX -# define wxUSE_DC_TRANSFORM_MATRIX 0 -# endif -# endif -# if wxUSE_UXTHEME -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_UXTHEME requires wxUSE_DYNLIB_CLASS" -# else -# undef wxUSE_UXTHEME -# define wxUSE_UXTHEME 0 -# endif -# endif -# if wxUSE_MEDIACTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_MEDIACTRL requires wxUSE_DYNLIB_CLASS" -# else -# undef wxUSE_MEDIACTRL -# define wxUSE_MEDIACTRL 0 -# endif -# endif -# if wxUSE_INKEDIT -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_INKEDIT requires wxUSE_DYNLIB_CLASS" -# else -# undef wxUSE_INKEDIT -# define wxUSE_INKEDIT 0 -# endif -# endif -#endif /* !wxUSE_DYNLIB_CLASS */ - -#if !wxUSE_OLE -# if wxUSE_ACTIVEX -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxActiveXContainer requires wxUSE_OLE" -# else -# undef wxUSE_ACTIVEX -# define wxUSE_ACTIVEX 0 -# endif -# endif - -# if wxUSE_DATAOBJ -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_DATAOBJ requires wxUSE_OLE" -# else -# undef wxUSE_DATAOBJ -# define wxUSE_DATAOBJ 0 -# endif -# endif - -# if wxUSE_OLE_AUTOMATION -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxAutomationObject requires wxUSE_OLE" -# else -# undef wxUSE_OLE_AUTOMATION -# define wxUSE_OLE_AUTOMATION 0 -# endif -# endif -#endif /* !wxUSE_OLE */ - -#if !wxUSE_ACTIVEX -# if wxUSE_MEDIACTRL -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxMediaCtl requires wxActiveXContainer" -# else -# undef wxUSE_MEDIACTRL -# define wxUSE_MEDIACTRL 0 -# endif -# endif -# if wxUSE_WEB -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxWebView requires wxActiveXContainer under MSW" -# else -# undef wxUSE_WEB -# define wxUSE_WEB 0 -# endif -# endif -#endif /* !wxUSE_ACTIVEX */ - -#if wxUSE_ACTIVITYINDICATOR && !wxUSE_GRAPHICS_CONTEXT -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxUSE_ACTIVITYINDICATOR requires wxGraphicsContext" -# else -# undef wxUSE_ACTIVITYINDICATOR -# define wxUSE_ACTIVITYINDICATOR 0 -# endif -#endif /* wxUSE_ACTIVITYINDICATOR */ - -#if !wxUSE_THREADS -# if wxUSE_FSWATCHER -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxFileSystemWatcher requires wxThread under MSW" -# else -# undef wxUSE_FSWATCHER -# define wxUSE_FSWATCHER 0 -# endif -# endif -#endif /* !wxUSE_THREADS */ - - -#if !wxUSE_OLE_AUTOMATION -# if wxUSE_WEB -# ifdef wxABORT_ON_CONFIG_ERROR -# error "wxWebView requires wxUSE_OLE_AUTOMATION under MSW" -# else -# undef wxUSE_WEB -# define wxUSE_WEB 0 -# endif -# endif -#endif /* !wxUSE_OLE_AUTOMATION */ - -#if defined(__WXUNIVERSAL__) && wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW && !wxUSE_POSTSCRIPT -# undef wxUSE_POSTSCRIPT -# define wxUSE_POSTSCRIPT 1 -#endif - -#endif /* _WX_MSW_CHKCONF_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/choice.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/choice.h deleted file mode 100644 index 2758409c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/choice.h +++ /dev/null @@ -1,176 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/choice.h -// Purpose: wxChoice class -// Author: Julian Smart -// Modified by: Vadim Zeitlin to derive from wxChoiceBase -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHOICE_H_ -#define _WX_CHOICE_H_ - -struct tagCOMBOBOXINFO; - -// ---------------------------------------------------------------------------- -// Choice item -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxChoice : public wxChoiceBase -{ -public: - // ctors - wxChoice() { Init(); } - virtual ~wxChoice(); - - wxChoice(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr) - { - Init(); - Create(parent, id, pos, size, n, choices, style, validator, name); - } - - wxChoice(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr) - { - Init(); - Create(parent, id, pos, size, choices, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr); - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr); - - virtual bool Show(bool show = true); - - virtual void SetLabel(const wxString& label); - - virtual unsigned int GetCount() const; - virtual int GetSelection() const; - virtual int GetCurrentSelection() const; - virtual void SetSelection(int n); - - virtual int FindString(const wxString& s, bool bCase = false) const; - virtual wxString GetString(unsigned int n) const; - virtual void SetString(unsigned int n, const wxString& s); - - virtual wxVisualAttributes GetDefaultAttributes() const - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); - - // MSW only - virtual bool MSWCommand(WXUINT param, WXWORD id); - WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - virtual WXHBRUSH MSWControlColor(WXHDC hDC, WXHWND hWnd); - virtual bool MSWShouldPreProcessMessage(WXMSG *pMsg); - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - -protected: - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; } - - // common part of all ctors - void Init() - { - m_lastAcceptedSelection = - m_pendingSelection = wxID_NONE; - m_heightOwn = wxDefaultCoord; - } - - virtual void DoDeleteOneItem(unsigned int n); - virtual void DoClear(); - - virtual int DoInsertItems(const wxArrayStringsAdapter& items, - unsigned int pos, - void **clientData, wxClientDataType type); - - virtual void DoMoveWindow(int x, int y, int width, int height); - virtual void DoSetItemClientData(unsigned int n, void* clientData); - virtual void* DoGetItemClientData(unsigned int n) const; - - // MSW implementation - virtual wxSize DoGetBestSize() const; - virtual void DoGetSize(int *w, int *h) const; - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - virtual wxSize DoGetSizeFromTextSize(int xlen, int ylen = -1) const; - - // Show or hide the popup part of the control. - void MSWDoPopupOrDismiss(bool show); - - // update the height of the drop down list to fit the number of items we - // have (without changing the visible height) - void MSWUpdateDropDownHeight(); - - // set the height of the visible part of the control to m_heightOwn - void MSWUpdateVisibleHeight(); - - // create and initialize the control - bool CreateAndInit(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name); - - // free all memory we have (used by Clear() and dtor) - void Free(); - - // set the height for simple combo box - int SetHeightSimpleComboBox(int nItems) const; - -#if wxUSE_DEFERRED_SIZING - virtual void MSWEndDeferWindowPos(); -#endif // wxUSE_DEFERRED_SIZING - - // These variables are only used while the drop down is opened. - // - // The first one contains the item that had been originally selected before - // the drop down was opened and the second one the item we should select - // when the drop down is closed again. - int m_lastAcceptedSelection, - m_pendingSelection; - - // the height of the control itself if it was set explicitly or - // wxDefaultCoord if it hadn't - int m_heightOwn; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxChoice); -}; - -#endif // _WX_CHOICE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/clipbrd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/clipbrd.h deleted file mode 100644 index 51c94afe..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/clipbrd.h +++ /dev/null @@ -1,89 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/clipbrd.h -// Purpose: wxClipboad class and clipboard functions for MSW -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CLIPBRD_H_ -#define _WX_CLIPBRD_H_ - -#if wxUSE_CLIPBOARD - -// These functions superceded by wxClipboard, but retained in order to -// implement wxClipboard, and for compatibility. - -// open/close the clipboard -WXDLLIMPEXP_CORE bool wxOpenClipboard(); -WXDLLIMPEXP_CORE bool wxIsClipboardOpened(); -#define wxClipboardOpen wxIsClipboardOpened -WXDLLIMPEXP_CORE bool wxCloseClipboard(); - -// get/set data -WXDLLIMPEXP_CORE bool wxEmptyClipboard(); -WXDLLIMPEXP_CORE bool wxSetClipboardData(wxDataFormat dataFormat, - const void *data, - int width = 0, int height = 0); -WXDLLIMPEXP_CORE void* wxGetClipboardData(wxDataFormat dataFormat, - long *len = NULL); - -// clipboard formats -WXDLLIMPEXP_CORE bool wxIsClipboardFormatAvailable(wxDataFormat dataFormat); -WXDLLIMPEXP_CORE wxDataFormat wxEnumClipboardFormats(wxDataFormat dataFormat); -WXDLLIMPEXP_CORE int wxRegisterClipboardFormat(wxChar *formatName); -WXDLLIMPEXP_CORE bool wxGetClipboardFormatName(wxDataFormat dataFormat, - wxChar *formatName, - int maxCount); - -//----------------------------------------------------------------------------- -// wxClipboard -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxClipboard : public wxClipboardBase -{ -public: - wxClipboard(); - virtual ~wxClipboard(); - - // open the clipboard before SetData() and GetData() - virtual bool Open(); - - // close the clipboard after SetData() and GetData() - virtual void Close(); - - // query whether the clipboard is opened - virtual bool IsOpened() const; - - // set the clipboard data. all other formats will be deleted. - virtual bool SetData( wxDataObject *data ); - - // add to the clipboard data. - virtual bool AddData( wxDataObject *data ); - - // ask if data in correct format is available - virtual bool IsSupported( const wxDataFormat& format ); - - // fill data with data on the clipboard (if available) - virtual bool GetData( wxDataObject& data ); - - // clears wxTheClipboard and the system's clipboard if possible - virtual void Clear(); - - // flushes the clipboard: this means that the data which is currently on - // clipboard will stay available even after the application exits (possibly - // eating memory), otherwise the clipboard will be emptied on exit - virtual bool Flush(); - -private: - IDataObject *m_lastDataObject; - bool m_isOpened; - - wxDECLARE_DYNAMIC_CLASS(wxClipboard); -}; - -#endif // wxUSE_CLIPBOARD - -#endif // _WX_CLIPBRD_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/colordlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/colordlg.h deleted file mode 100644 index c59bf4f4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/colordlg.h +++ /dev/null @@ -1,71 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/colordlg.h -// Purpose: wxColourDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLORDLG_H_ -#define _WX_COLORDLG_H_ - -#include "wx/dialog.h" - -// ---------------------------------------------------------------------------- -// wxColourDialog: dialog for choosing a colours -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxColourDialog : public wxDialog -{ -public: - wxColourDialog() { Init(); } - wxColourDialog(wxWindow *parent, wxColourData *data = NULL) - { - Init(); - - Create(parent, data); - } - - bool Create(wxWindow *parent, wxColourData *data = NULL); - - wxColourData& GetColourData() { return m_colourData; } - - // override some base class virtuals - virtual void SetTitle(const wxString& title); - virtual wxString GetTitle() const; - - virtual int ShowModal(); - - // wxMSW-specific implementation from now on - // ----------------------------------------- - - // called from the hook procedure on WM_INITDIALOG reception - virtual void MSWOnInitDone(WXHWND hDlg); - -protected: - // common part of all ctors - void Init(); - - virtual void DoGetPosition( int *x, int *y ) const; - virtual void DoGetSize(int *width, int *height) const; - virtual void DoGetClientSize(int *width, int *height) const; - virtual void DoMoveWindow(int x, int y, int width, int height); - virtual void DoCentre(int dir); - - wxColourData m_colourData; - wxString m_title; - - // indicates that the dialog should be centered in this direction if non 0 - // (set by DoCentre(), used by MSWOnInitDone()) - int m_centreDir; - - // true if DoMoveWindow() had been called - bool m_movedWindow; - - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxColourDialog); -}; - -#endif // _WX_COLORDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/colour.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/colour.h deleted file mode 100644 index 07d72dc6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/colour.h +++ /dev/null @@ -1,72 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/colour.h -// Purpose: wxColour class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLOUR_H_ -#define _WX_COLOUR_H_ - -#include "wx/object.h" - -// ---------------------------------------------------------------------------- -// Colour -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxColour : public wxColourBase -{ -public: - // constructors - // ------------ - DEFINE_STD_WXCOLOUR_CONSTRUCTORS - - // accessors - // --------- - - virtual bool IsOk() const { return m_isInit; } - - unsigned char Red() const { return m_red; } - unsigned char Green() const { return m_green; } - unsigned char Blue() const { return m_blue; } - unsigned char Alpha() const { return m_alpha ; } - - // comparison - bool operator==(const wxColour& colour) const - { - return m_isInit == colour.m_isInit - && m_red == colour.m_red - && m_green == colour.m_green - && m_blue == colour.m_blue - && m_alpha == colour.m_alpha; - } - - bool operator!=(const wxColour& colour) const { return !(*this == colour); } - - WXCOLORREF GetPixel() const { return m_pixel; } - -public: - WXCOLORREF m_pixel; - -protected: - // Helper function - void Init(); - - virtual void - InitRGBA(unsigned char r, unsigned char g, unsigned char b, unsigned char a); - -private: - bool m_isInit; - unsigned char m_red; - unsigned char m_blue; - unsigned char m_green; - unsigned char m_alpha; - -private: - wxDECLARE_DYNAMIC_CLASS(wxColour); -}; - -#endif // _WX_COLOUR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/colours.bmp b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/colours.bmp deleted file mode 100644 index 7d391ad1..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/colours.bmp and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/combo.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/combo.h deleted file mode 100644 index 17053c15..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/combo.h +++ /dev/null @@ -1,115 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/combo.h -// Purpose: wxComboCtrl class -// Author: Jaakko Salli -// Modified by: -// Created: Apr-30-2006 -// Copyright: (c) Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COMBOCONTROL_H_ -#define _WX_COMBOCONTROL_H_ - -// NB: Definition of _WX_COMBOCONTROL_H_ is used in wx/generic/combo.h to -// determine whether there is native wxComboCtrl, so make sure you -// use it in all native wxComboCtrls. - -#if wxUSE_COMBOCTRL - -#if wxUSE_TIMER - #include "wx/timer.h" - #define wxUSE_COMBOCTRL_POPUP_ANIMATION 1 -#endif - - -// ---------------------------------------------------------------------------- -// Native wxComboCtrl -// ---------------------------------------------------------------------------- - -// Define this only if native implementation includes all features -#define wxCOMBOCONTROL_FULLY_FEATURED - -extern WXDLLIMPEXP_DATA_CORE(const char) wxComboBoxNameStr[]; - -class WXDLLIMPEXP_CORE wxComboCtrl : public wxComboCtrlBase -{ -public: - // ctors and such - wxComboCtrl() : wxComboCtrlBase() { Init(); } - - wxComboCtrl(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - : wxComboCtrlBase() - { - Init(); - - (void)Create(parent, id, value, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - virtual ~wxComboCtrl(); - - virtual void PrepareBackground( wxDC& dc, const wxRect& rect, int flags ) const; - virtual bool IsKeyPopupToggle(const wxKeyEvent& event) const; - - static int GetFeatures() { return wxComboCtrlFeatures::All; } - -#if wxUSE_COMBOCTRL_POPUP_ANIMATION - void OnTimerEvent(wxTimerEvent& WXUNUSED(event)) { DoTimerEvent(); } - -protected: - void DoTimerEvent(); - - virtual bool AnimateShow( const wxRect& rect, int flags ); -#endif // wxUSE_COMBOCTRL_POPUP_ANIMATION - -protected: - - // Dummy method - we override all functions that call this - virtual WXHWND GetEditHWND() const { return NULL; } - - // customization - virtual void OnResize(); - virtual wxCoord GetNativeTextIndent() const; - - // event handlers - void OnPaintEvent( wxPaintEvent& event ); - void OnMouseEvent( wxMouseEvent& event ); - - virtual bool HasTransparentBackground() { return IsDoubleBuffered(); } - -private: - void Init(); - -#if wxUSE_COMBOCTRL_POPUP_ANIMATION - // Popup animation related - wxMilliClock_t m_animStart; - wxTimer m_animTimer; - wxRect m_animRect; - int m_animFlags; -#endif - - wxDECLARE_EVENT_TABLE(); - - wxDECLARE_DYNAMIC_CLASS(wxComboCtrl); -}; - - -#endif // wxUSE_COMBOCTRL -#endif - // _WX_COMBOCONTROL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/combobox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/combobox.h deleted file mode 100644 index c016fd3e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/combobox.h +++ /dev/null @@ -1,176 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/combobox.h -// Purpose: wxComboBox class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COMBOBOX_H_ -#define _WX_COMBOBOX_H_ - -#include "wx/choice.h" -#include "wx/textentry.h" - -#if wxUSE_COMBOBOX - -// ---------------------------------------------------------------------------- -// Combobox control -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxComboBox : public wxChoice, - public wxTextEntry -{ -public: - wxComboBox() { Init(); } - - wxComboBox(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - { - Init(); - Create(parent, id, value, pos, size, n, choices, style, validator, name); - - } - - wxComboBox(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - { - Init(); - - Create(parent, id, value, pos, size, choices, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, - const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - // See wxComboBoxBase discussion of IsEmpty(). - bool IsListEmpty() const { return wxItemContainer::IsEmpty(); } - bool IsTextEmpty() const { return wxTextEntry::IsEmpty(); } - - // resolve ambiguities among virtual functions inherited from both base - // classes - virtual void Clear(); - virtual wxString GetValue() const; - virtual void SetValue(const wxString& value); - virtual wxString GetStringSelection() const - { return wxChoice::GetStringSelection(); } - virtual void Popup() { MSWDoPopupOrDismiss(true); } - virtual void Dismiss() { MSWDoPopupOrDismiss(false); } - virtual void SetSelection(int n) { wxChoice::SetSelection(n); } - virtual void SetSelection(long from, long to) - { wxTextEntry::SetSelection(from, to); } - virtual int GetSelection() const { return wxChoice::GetSelection(); } - virtual bool ContainsHWND(WXHWND hWnd) const; - virtual void GetSelection(long *from, long *to) const; - - virtual bool IsEditable() const; - - // implementation only from now on - virtual bool MSWCommand(WXUINT param, WXWORD id); - bool MSWProcessEditMsg(WXUINT msg, WXWPARAM wParam, WXLPARAM lParam); - virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - bool MSWShouldPreProcessMessage(WXMSG *pMsg); - - // Standard event handling - void OnCut(wxCommandEvent& event); - void OnCopy(wxCommandEvent& event); - void OnPaste(wxCommandEvent& event); - void OnUndo(wxCommandEvent& event); - void OnRedo(wxCommandEvent& event); - void OnDelete(wxCommandEvent& event); - void OnSelectAll(wxCommandEvent& event); - - void OnUpdateCut(wxUpdateUIEvent& event); - void OnUpdateCopy(wxUpdateUIEvent& event); - void OnUpdatePaste(wxUpdateUIEvent& event); - void OnUpdateUndo(wxUpdateUIEvent& event); - void OnUpdateRedo(wxUpdateUIEvent& event); - void OnUpdateDelete(wxUpdateUIEvent& event); - void OnUpdateSelectAll(wxUpdateUIEvent& event); - - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - -#if wxUSE_UXTHEME - // override wxTextEntry method to work around Windows bug - virtual bool SetHint(const wxString& hint); -#endif // wxUSE_UXTHEME - - virtual void SetLayoutDirection(wxLayoutDirection dir) wxOVERRIDE; - -protected: -#if wxUSE_TOOLTIPS - virtual void DoSetToolTip(wxToolTip *tip); -#endif - - virtual wxSize DoGetSizeFromTextSize(int xlen, int ylen = -1) const; - - // Override this one to avoid eating events from our popup listbox. - virtual wxWindow *MSWFindItem(long id, WXHWND hWnd) const; - - // this is the implementation of GetEditHWND() which can also be used when - // we don't have the edit control, it simply returns NULL then - // - // try not to use this function unless absolutely necessary (as in the - // message handling code where the edit control might not be created yet - // for the messages we receive during the control creation) as normally - // just testing for IsEditable() and using GetEditHWND() should be enough - WXHWND GetEditHWNDIfAvailable() const; - - virtual void EnableTextChangedEvents(bool enable) - { - m_allowTextEvents = enable; - } - -private: - // there are the overridden wxTextEntry methods which should only be called - // when we do have an edit control so they assert if this is not the case - virtual wxWindow *GetEditableWindow(); - virtual WXHWND GetEditHWND() const; - - // common part of all ctors - void Init() - { - m_allowTextEvents = true; - } - - // normally true, false if text events are currently disabled - bool m_allowTextEvents; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxComboBox); - wxDECLARE_EVENT_TABLE(); -}; - -#endif // wxUSE_COMBOBOX - -#endif // _WX_COMBOBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/commandlinkbutton.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/commandlinkbutton.h deleted file mode 100644 index bc4d4804..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/commandlinkbutton.h +++ /dev/null @@ -1,73 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/commandlinkbutton.h -// Purpose: wxCommandLinkButton class -// Author: Rickard Westerlund -// Created: 2010-06-11 -// Copyright: (c) 2010 wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_COMMANDLINKBUTTON_H_ -#define _WX_MSW_COMMANDLINKBUTTON_H_ - -// ---------------------------------------------------------------------------- -// Command link button for wxMSW -// ---------------------------------------------------------------------------- - -// Derive from the generic version to be able to fall back to it during -// run-time if the command link buttons are not supported by the system we're -// running under. - -class WXDLLIMPEXP_ADV wxCommandLinkButton : public wxGenericCommandLinkButton -{ -public: - wxCommandLinkButton () : wxGenericCommandLinkButton() { } - - wxCommandLinkButton(wxWindow *parent, - wxWindowID id, - const wxString& mainLabel = wxEmptyString, - const wxString& note = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - : wxGenericCommandLinkButton() - { - Create(parent, id, mainLabel, note, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& mainLabel = wxEmptyString, - const wxString& note = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - // overridden base class methods - // ----------------------------- - - // do the same thing as in the generic case here - virtual void SetLabel(const wxString& label) - { - SetMainLabelAndNote(label.BeforeFirst('\n'), label.AfterFirst('\n')); - } - - virtual void SetMainLabelAndNote(const wxString& mainLabel, - const wxString& note); - - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - -protected: - virtual wxSize DoGetBestSize() const; - - virtual bool HasNativeBitmap() const; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxCommandLinkButton); -}; - -#endif // _WX_MSW_COMMANDLINKBUTTON_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/computer.ico b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/computer.ico deleted file mode 100644 index f36237bd..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/computer.ico and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/control.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/control.h deleted file mode 100644 index aeaccf98..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/control.h +++ /dev/null @@ -1,130 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/control.h -// Purpose: wxControl class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CONTROL_H_ -#define _WX_CONTROL_H_ - -#include "wx/dynarray.h" - -// General item class -class WXDLLIMPEXP_CORE wxControl : public wxControlBase -{ -public: - wxControl() { } - - wxControl(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxControlNameStr) - { - Create(parent, id, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxControlNameStr); - - - // Simulates an event - virtual void Command(wxCommandEvent& event) { ProcessCommand(event); } - - - // implementation from now on - // -------------------------- - - virtual wxVisualAttributes GetDefaultAttributes() const - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); - - // Calls the callback and appropriate event handlers - bool ProcessCommand(wxCommandEvent& event); - - // MSW-specific - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - - // For ownerdraw items - virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *WXUNUSED(item)) { return false; } - virtual bool MSWOnMeasure(WXMEASUREITEMSTRUCT *WXUNUSED(item)) { return false; } - - const wxArrayLong& GetSubcontrols() const { return m_subControls; } - - // default handling of WM_CTLCOLORxxx: this is public so that wxWindow - // could call it - virtual WXHBRUSH MSWControlColor(WXHDC pDC, WXHWND hWnd); - - // default style for the control include WS_TABSTOP if it AcceptsFocus() - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - -protected: - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const; - - // return default best size (doesn't really make any sense, override this) - virtual wxSize DoGetBestSize() const; - - // create the control of the given Windows class: this is typically called - // from Create() method of the derived class passing its label, pos and - // size parameter (style parameter is not needed because m_windowStyle is - // supposed to had been already set and so is used instead when this - // function is called) - bool MSWCreateControl(const wxChar *classname, - const wxString& label, - const wxPoint& pos, - const wxSize& size); - - // NB: the method below is deprecated now, with MSWGetStyle() the method - // above should be used instead! Once all the controls are updated to - // implement MSWGetStyle() this version will disappear. - // - // create the control of the given class with the given style (combination - // of WS_XXX flags, i.e. Windows style, not wxWidgets one), returns - // false if creation failed - // - // All parameters except classname and style are optional, if the - // size/position are not given, they should be set later with SetSize() - // and, label (the title of the window), of course, is left empty. The - // extended style is determined from the style and the app 3D settings - // automatically if it's not specified explicitly. - bool MSWCreateControl(const wxChar *classname, - WXDWORD style, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - const wxString& label = wxEmptyString, - WXDWORD exstyle = (WXDWORD)-1); - - // call this from the derived class MSWControlColor() if you want to show - // the control greyed out (and opaque) - WXHBRUSH MSWControlColorDisabled(WXHDC pDC); - - // common part of the 3 functions above: pass wxNullColour to use the - // appropriate background colour (meaning ours or our parents) or a fixed - // one - virtual WXHBRUSH DoMSWControlColor(WXHDC pDC, wxColour colBg, WXHWND hWnd); - - // Look in our GetSubcontrols() for the windows with the given ID. - virtual wxWindow *MSWFindItem(long id, WXHWND hWnd) const; - - - // for controls like radiobuttons which are really composite this array - // holds the ids (not HWNDs!) of the sub controls - wxArrayLong m_subControls; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxControl); -}; - -#endif // _WX_CONTROL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/crashrpt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/crashrpt.h deleted file mode 100644 index f354b482..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/crashrpt.h +++ /dev/null @@ -1,119 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/crashrpt.h -// Purpose: helpers for the structured exception handling (SEH) under Win32 -// Author: Vadim Zeitlin -// Modified by: -// Created: 13.07.2003 -// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_CRASHRPT_H_ -#define _WX_MSW_CRASHRPT_H_ - -#include "wx/defs.h" - -#if wxUSE_CRASHREPORT - -struct _EXCEPTION_POINTERS; - -// ---------------------------------------------------------------------------- -// crash report generation flags -// ---------------------------------------------------------------------------- - -enum -{ - // we always report where the crash occurred - wxCRASH_REPORT_LOCATION = 0, - - // if this flag is given, the call stack is dumped - // - // this results in dump/crash report as small as possible, this is the - // default flag - wxCRASH_REPORT_STACK = 1, - - // if this flag is given, the values of the local variables are dumped - // - // note that with the current implementation it requires dumping the full - // process address space and so this will result in huge dump file and will - // take some time to generate - // - // it's probably not a good idea to use this by default, start with default - // mini dump and ask your users to set WX_CRASH_FLAGS environment variable - // to 2 or 4 if you need more information in the dump - wxCRASH_REPORT_LOCALS = 2, - - // if this flag is given, the values of all global variables are dumped - // - // this creates a much larger mini dump than just wxCRASH_REPORT_STACK but - // still much smaller than wxCRASH_REPORT_LOCALS one - wxCRASH_REPORT_GLOBALS = 4, - - // default is to create the smallest possible crash report - wxCRASH_REPORT_DEFAULT = wxCRASH_REPORT_LOCATION | wxCRASH_REPORT_STACK -}; - -// ---------------------------------------------------------------------------- -// wxCrashContext: information about the crash context -// ---------------------------------------------------------------------------- - -struct WXDLLIMPEXP_BASE wxCrashContext -{ - // initialize this object with the given information or from the current - // global exception info which is only valid inside wxApp::OnFatalException - wxCrashContext(_EXCEPTION_POINTERS *ep = NULL); - - // get the name for this exception code - wxString GetExceptionString() const; - - - // exception code - size_t code; - - // exception address - void *addr; - - // machine-specific registers vaues - struct - { -#ifdef __INTEL__ - wxInt32 eax, ebx, ecx, edx, esi, edi, - ebp, esp, eip, - cs, ds, es, fs, gs, ss, - flags; -#endif // __INTEL__ - } regs; -}; - -// ---------------------------------------------------------------------------- -// wxCrashReport: this class is used to create crash reports -// ---------------------------------------------------------------------------- - -struct WXDLLIMPEXP_BASE wxCrashReport -{ - // set the name of the file to which the report is written, it is - // constructed from the .exe name by default - static void SetFileName(const wxString& filename); - - // return the current file name - static wxString GetFileName(); - - // write the exception report to the file, return true if it could be done - // or false otherwise - // - // if ep pointer is NULL, the global exception info which is valid only - // inside wxApp::OnFatalException() is used - static bool Generate(int flags = wxCRASH_REPORT_DEFAULT, - _EXCEPTION_POINTERS *ep = NULL); - - - // generate a crash report from outside of wxApp::OnFatalException(), this - // can be used to take "snapshots" of the program in wxApp::OnAssert() for - // example - static bool GenerateNow(int flags = wxCRASH_REPORT_DEFAULT); -}; - -#endif // wxUSE_CRASHREPORT - -#endif // _WX_MSW_CRASHRPT_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/cross.cur b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/cross.cur deleted file mode 100644 index 5b8f4632..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/cross.cur and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/csquery.bmp b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/csquery.bmp deleted file mode 100644 index 4e7bcdc3..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/csquery.bmp and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ctrlsub.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ctrlsub.h deleted file mode 100644 index e3d9d6e6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ctrlsub.h +++ /dev/null @@ -1,42 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/ctrlsub.h -// Purpose: common functionality of wxItemContainer-derived controls -// Author: Vadim Zeitlin -// Created: 2007-07-25 -// Copyright: (c) 2007 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_CTRLSUB_H_ -#define _WX_MSW_CTRLSUB_H_ - -// ---------------------------------------------------------------------------- -// wxControlWithItems -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxControlWithItems : public wxControlWithItemsBase -{ -public: - wxControlWithItems() { } - -protected: - // preallocate memory for inserting the given new items into the control - // using the wm message (normally either LB_INITSTORAGE or CB_INITSTORAGE) - void MSWAllocStorage(const wxArrayStringsAdapter& items, unsigned wm); - - // insert or append a string to the controls using the given message - // (one of {CB,LB}_{ADD,INSERT}STRING, pos must be 0 when appending) - int MSWInsertOrAppendItem(unsigned pos, const wxString& item, unsigned wm); - - // normally the control containing the items is this window itself but if - // the derived control is composed of several windows, this method can be - // overridden to return the real list/combobox control - virtual WXHWND MSWGetItemsHWND() const { return GetHWND(); } - -private: - wxDECLARE_ABSTRACT_CLASS(wxControlWithItems); - wxDECLARE_NO_COPY_CLASS(wxControlWithItems); -}; - -#endif // _WX_MSW_CTRLSUB_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/cursor.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/cursor.h deleted file mode 100644 index 7ff2d45d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/cursor.h +++ /dev/null @@ -1,49 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/cursor.h -// Purpose: wxCursor class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CURSOR_H_ -#define _WX_CURSOR_H_ - -class WXDLLIMPEXP_FWD_CORE wxImage; - -// Cursor -class WXDLLIMPEXP_CORE wxCursor : public wxCursorBase -{ -public: - // constructors - wxCursor(); - wxCursor(const wxImage& image); - wxCursor(const wxString& name, - wxBitmapType type = wxCURSOR_DEFAULT_TYPE, - int hotSpotX = 0, int hotSpotY = 0); - wxCursor(wxStockCursor id) { InitFromStock(id); } -#if WXWIN_COMPATIBILITY_2_8 - wxCursor(int id) { InitFromStock((wxStockCursor)id); } -#endif - - virtual wxPoint GetHotSpot() const wxOVERRIDE; - - virtual ~wxCursor(); - - // implementation only - void SetHCURSOR(WXHCURSOR cursor) { SetHandle((WXHANDLE)cursor); } - WXHCURSOR GetHCURSOR() const { return (WXHCURSOR)GetHandle(); } - -protected: - void InitFromStock(wxStockCursor); - - virtual wxGDIImageRefData *CreateData() const; - -private: - wxDECLARE_DYNAMIC_CLASS(wxCursor); -}; - -#endif - // _WX_CURSOR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/custombgwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/custombgwin.h deleted file mode 100644 index ca8d8bfc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/custombgwin.h +++ /dev/null @@ -1,57 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/custombgwin.h -// Purpose: wxMSW implementation of wxCustomBackgroundWindow -// Author: Vadim Zeitlin -// Created: 2011-10-10 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_CUSTOMBGWIN_H_ -#define _WX_MSW_CUSTOMBGWIN_H_ - -#include "wx/bitmap.h" -#include "wx/brush.h" - -// ---------------------------------------------------------------------------- -// wxCustomBackgroundWindow -// ---------------------------------------------------------------------------- - -template <class W> -class wxCustomBackgroundWindow : public W, - public wxCustomBackgroundWindowBase -{ -public: - typedef W BaseWindowClass; - - wxCustomBackgroundWindow() { m_backgroundBrush = NULL; } - - virtual ~wxCustomBackgroundWindow() { delete m_backgroundBrush; } - -protected: - virtual void DoSetBackgroundBitmap(const wxBitmap& bmp) - { - delete m_backgroundBrush; - m_backgroundBrush = bmp.IsOk() ? new wxBrush(bmp) : NULL; - - // Our transparent children should use our background if we have it, - // otherwise try to restore m_inheritBgCol to some reasonable value: true - // if we also have non-default background colour or false otherwise. - BaseWindowClass::m_inheritBgCol = bmp.IsOk() - || BaseWindowClass::UseBgCol(); - } - - virtual WXHBRUSH MSWGetCustomBgBrush() - { - if ( m_backgroundBrush ) - return (WXHBRUSH)m_backgroundBrush->GetResourceHandle(); - - return BaseWindowClass::MSWGetCustomBgBrush(); - } - - wxBrush *m_backgroundBrush; - - wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxCustomBackgroundWindow, W); -}; - -#endif // _WX_MSW_CUSTOMBGWIN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/datectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/datectrl.h deleted file mode 100644 index aeb3d308..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/datectrl.h +++ /dev/null @@ -1,69 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/datectrl.h -// Purpose: wxDatePickerCtrl for Windows -// Author: Vadim Zeitlin -// Modified by: -// Created: 2005-01-09 -// Copyright: (c) 2005 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_DATECTRL_H_ -#define _WX_MSW_DATECTRL_H_ - -// ---------------------------------------------------------------------------- -// wxDatePickerCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDatePickerCtrl : public wxDatePickerCtrlBase -{ -public: - // ctors - wxDatePickerCtrl() { } - - wxDatePickerCtrl(wxWindow *parent, - wxWindowID id, - const wxDateTime& dt = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDatePickerCtrlNameStr) - { - Create(parent, id, dt, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxDateTime& dt = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDatePickerCtrlNameStr); - - // Override this one to add date-specific (and time-ignoring) checks. - virtual void SetValue(const wxDateTime& dt); - virtual wxDateTime GetValue() const; - - // Implement the base class pure virtuals. - virtual void SetRange(const wxDateTime& dt1, const wxDateTime& dt2); - virtual bool GetRange(wxDateTime *dt1, wxDateTime *dt2) const; - - // Override MSW-specific functions used during control creation. - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - -protected: -#if wxUSE_INTL - virtual wxLocaleInfo MSWGetFormat() const; -#endif // wxUSE_INTL - virtual bool MSWAllowsNone() const { return HasFlag(wxDP_ALLOWNONE); } - virtual bool MSWOnDateTimeChange(const tagNMDATETIMECHANGE& dtch); - -private: - wxDateTime MSWGetControlValue() const; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDatePickerCtrl); -}; - -#endif // _WX_MSW_DATECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/datetimectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/datetimectrl.h deleted file mode 100644 index dcb4d4ee..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/datetimectrl.h +++ /dev/null @@ -1,88 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/datetimectrl.h -// Purpose: wxDateTimePickerCtrl for Windows. -// Author: Vadim Zeitlin -// Created: 2011-09-22 (extracted from wx/msw/datectrl.h). -// Copyright: (c) 2005-2011 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_DATETIMECTRL_H_ -#define _WX_MSW_DATETIMECTRL_H_ - -#include "wx/intl.h" - -// Forward declare a struct from Platform SDK. -struct tagNMDATETIMECHANGE; - -// ---------------------------------------------------------------------------- -// wxDateTimePickerCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDateTimePickerCtrl : public wxDateTimePickerCtrlBase -{ -public: - // set/get the date - virtual void SetValue(const wxDateTime& dt); - virtual wxDateTime GetValue() const; - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - -protected: - virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; } - virtual wxSize DoGetBestSize() const; - - // Helper for the derived classes Create(): creates a native control with - // the specified attributes. - bool MSWCreateDateTimePicker(wxWindow *parent, - wxWindowID id, - const wxDateTime& dt, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name); - - // Notice that the methods below must be overridden in all native MSW - // classes inheriting from this one but they can't be pure virtual because - // the generic implementations, not needing nor able to implement them, is - // also derived from this class currently. The real problem is, of course, - // this wrong class structure because the generic classes also inherit the - // wrong implementations of Set/GetValue() and DoGetBestSize() but as they - // override these methods anyhow, it does work -- but is definitely ugly - // and need to be changed (but how?) in the future. - -#if wxUSE_INTL - // Override to return the date/time format used by this control. - virtual wxLocaleInfo MSWGetFormat() const /* = 0 */ - { - wxFAIL_MSG( "Unreachable" ); - return wxLOCALE_TIME_FMT; - } -#endif // wxUSE_INTL - - // Override to indicate whether we can have no date at all. - virtual bool MSWAllowsNone() const /* = 0 */ - { - wxFAIL_MSG( "Unreachable" ); - return false; - } - - // Override to update m_date and send the event when the control contents - // changes, return true if the event was handled. - virtual bool MSWOnDateTimeChange(const tagNMDATETIMECHANGE& dtch) /* = 0 */ - { - wxUnusedVar(dtch); - wxFAIL_MSG( "Unreachable" ); - return false; - } - - - // the date currently shown by the control, may be invalid - wxDateTime m_date; -}; - -#endif // _WX_MSW_DATETIMECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dc.h deleted file mode 100644 index b4f60302..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dc.h +++ /dev/null @@ -1,381 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/dc.h -// Purpose: wxDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_DC_H_ -#define _WX_MSW_DC_H_ - -#include "wx/defs.h" -#include "wx/dc.h" - -// --------------------------------------------------------------------------- -// macros -// --------------------------------------------------------------------------- - -#if wxUSE_DC_CACHEING -/* - * Cached blitting, maintaining a cache - * of bitmaps required for transparent blitting - * instead of constant creation/deletion - */ - -class wxDCCacheEntry: public wxObject -{ -public: - wxDCCacheEntry(WXHBITMAP hBitmap, int w, int h, int depth); - wxDCCacheEntry(WXHDC hDC, int depth); - virtual ~wxDCCacheEntry(); - - WXHBITMAP m_bitmap; - WXHDC m_dc; - int m_width; - int m_height; - int m_depth; -}; -#endif - -// this is an ABC: use one of the derived classes to create a DC associated -// with a window, screen, printer and so on -class WXDLLIMPEXP_CORE wxMSWDCImpl: public wxDCImpl -{ -public: - wxMSWDCImpl(wxDC *owner, WXHDC hDC); - virtual ~wxMSWDCImpl(); - - // implement base class pure virtuals - // ---------------------------------- - - virtual void Clear(); - - virtual bool StartDoc(const wxString& message); - virtual void EndDoc(); - - virtual void StartPage(); - virtual void EndPage(); - - virtual void SetFont(const wxFont& font); - virtual void SetPen(const wxPen& pen); - virtual void SetBrush(const wxBrush& brush); - virtual void SetBackground(const wxBrush& brush); - virtual void SetBackgroundMode(int mode); -#if wxUSE_PALETTE - virtual void SetPalette(const wxPalette& palette); -#endif // wxUSE_PALETTE - - virtual void DestroyClippingRegion(); - - virtual wxCoord GetCharHeight() const; - virtual wxCoord GetCharWidth() const; - - virtual bool CanDrawBitmap() const; - virtual bool CanGetTextExtent() const; - virtual int GetDepth() const; - virtual wxSize GetPPI() const; - - - virtual void SetMapMode(wxMappingMode mode); - virtual void SetUserScale(double x, double y); - virtual void SetLogicalScale(double x, double y); - virtual void SetLogicalOrigin(wxCoord x, wxCoord y); - virtual void SetDeviceOrigin(wxCoord x, wxCoord y); - virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp); - -#if wxUSE_DC_TRANSFORM_MATRIX - virtual bool CanUseTransformMatrix() const; - virtual bool SetTransformMatrix(const wxAffineMatrix2D& matrix); - virtual wxAffineMatrix2D GetTransformMatrix() const; - virtual void ResetTransformMatrix(); -#endif // wxUSE_DC_TRANSFORM_MATRIX - - virtual void SetLogicalFunction(wxRasterOperationMode function); - - // implementation from now on - // -------------------------- - - virtual void SetRop(WXHDC cdc); - virtual void SelectOldObjects(WXHDC dc); - - void SetWindow(wxWindow *win) - { - m_window = win; - -#if wxUSE_PALETTE - // if we have palettes use the correct one for this window - InitializePalette(); -#endif // wxUSE_PALETTE - } - - WXHDC GetHDC() const { return m_hDC; } - void SetHDC(WXHDC dc, bool bOwnsDC = false) - { - m_hDC = dc; - m_bOwnsDC = bOwnsDC; - - // we might have a pre existing clipping region, make sure that we - // return it if asked -- but avoid calling ::GetClipBox() right now as - // it could be unnecessary wasteful - m_clipping = true; - m_clipX1 = - m_clipX2 = 0; - } - - void* GetHandle() const { return (void*)GetHDC(); } - - const wxBitmap& GetSelectedBitmap() const { return m_selectedBitmap; } - wxBitmap& GetSelectedBitmap() { return m_selectedBitmap; } - - // update the internal clip box variables - void UpdateClipBox(); - -#if wxUSE_DC_CACHEING - static wxDCCacheEntry* FindBitmapInCache(WXHDC hDC, int w, int h); - static wxDCCacheEntry* FindDCInCache(wxDCCacheEntry* notThis, WXHDC hDC); - - static void AddToBitmapCache(wxDCCacheEntry* entry); - static void AddToDCCache(wxDCCacheEntry* entry); - static void ClearCache(); -#endif - - // RTL related functions - // --------------------- - - // get or change the layout direction (LTR or RTL) for this dc, - // wxLayout_Default is returned if layout direction is not supported - virtual wxLayoutDirection GetLayoutDirection() const; - virtual void SetLayoutDirection(wxLayoutDirection dir); - -protected: - void Init() - { - m_bOwnsDC = false; - m_hDC = NULL; - - m_oldBitmap = NULL; - m_oldPen = NULL; - m_oldBrush = NULL; - m_oldFont = NULL; - -#if wxUSE_PALETTE - m_oldPalette = NULL; -#endif // wxUSE_PALETTE - } - - // create an uninitialized DC: this should be only used by the derived - // classes - wxMSWDCImpl( wxDC *owner ) : wxDCImpl( owner ) { Init(); } - - void RealizeScaleAndOrigin(); - -public: - virtual void DoGetFontMetrics(int *height, - int *ascent, - int *descent, - int *internalLeading, - int *externalLeading, - int *averageWidth) const; - virtual void DoGetTextExtent(const wxString& string, - wxCoord *x, wxCoord *y, - wxCoord *descent = NULL, - wxCoord *externalLeading = NULL, - const wxFont *theFont = NULL) const; - virtual bool DoGetPartialTextExtents(const wxString& text, wxArrayInt& widths) const; - - virtual bool DoFloodFill(wxCoord x, wxCoord y, const wxColour& col, - wxFloodFillStyle style = wxFLOOD_SURFACE); - - virtual void DoGradientFillLinear(const wxRect& rect, - const wxColour& initialColour, - const wxColour& destColour, - wxDirection nDirection = wxEAST); - - virtual bool DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const; - - virtual void DoDrawPoint(wxCoord x, wxCoord y); - virtual void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2); - - virtual void DoDrawArc(wxCoord x1, wxCoord y1, - wxCoord x2, wxCoord y2, - wxCoord xc, wxCoord yc); - virtual void DoDrawCheckMark(wxCoord x, wxCoord y, - wxCoord width, wxCoord height); - virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h, - double sa, double ea); - - virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height); - virtual void DoDrawRoundedRectangle(wxCoord x, wxCoord y, - wxCoord width, wxCoord height, - double radius); - virtual void DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height); - -#if wxUSE_SPLINES - virtual void DoDrawSpline(const wxPointList *points); -#endif - - virtual void DoCrossHair(wxCoord x, wxCoord y); - - virtual void DoDrawIcon(const wxIcon& icon, wxCoord x, wxCoord y); - virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y, - bool useMask = false); - - virtual void DoDrawText(const wxString& text, wxCoord x, wxCoord y); - virtual void DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord y, - double angle); - - virtual bool DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height, - wxDC *source, wxCoord xsrc, wxCoord ysrc, - wxRasterOperationMode rop = wxCOPY, bool useMask = false, - wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord); - - virtual bool DoStretchBlit(wxCoord xdest, wxCoord ydest, - wxCoord dstWidth, wxCoord dstHeight, - wxDC *source, - wxCoord xsrc, wxCoord ysrc, - wxCoord srcWidth, wxCoord srcHeight, - wxRasterOperationMode rop = wxCOPY, bool useMask = false, - wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord); - - virtual void DoSetClippingRegion(wxCoord x, wxCoord y, - wxCoord width, wxCoord height); - virtual void DoSetDeviceClippingRegion(const wxRegion& region); - virtual void DoGetClippingBox(wxCoord *x, wxCoord *y, - wxCoord *w, wxCoord *h) const; - - virtual void DoGetSizeMM(int* width, int* height) const; - - virtual void DoDrawLines(int n, const wxPoint points[], - wxCoord xoffset, wxCoord yoffset); - virtual void DoDrawPolygon(int n, const wxPoint points[], - wxCoord xoffset, wxCoord yoffset, - wxPolygonFillMode fillStyle = wxODDEVEN_RULE); - virtual void DoDrawPolyPolygon(int n, const int count[], const wxPoint points[], - wxCoord xoffset, wxCoord yoffset, - wxPolygonFillMode fillStyle = wxODDEVEN_RULE); - virtual wxBitmap DoGetAsBitmap(const wxRect *subrect) const - { - return subrect == NULL ? GetSelectedBitmap() - : GetSelectedBitmap().GetSubBitmap(*subrect); - } - - -#if wxUSE_PALETTE - // MSW specific, select a logical palette into the HDC - // (tell windows to translate pixel from other palettes to our custom one - // and vice versa) - // Realize tells it to also reset the system palette to this one. - void DoSelectPalette(bool realize = false); - - // Find out what palette our parent window has, then select it into the dc - void InitializePalette(); -#endif // wxUSE_PALETTE - -protected: - // common part of DoDrawText() and DoDrawRotatedText() - void DrawAnyText(const wxString& text, wxCoord x, wxCoord y); - - // common part of DoSetClippingRegion() and DoSetDeviceClippingRegion() - void SetClippingHrgn(WXHRGN hrgn); - - // implementation of DoGetSize() for wxScreen/PrinterDC: this simply - // returns the size of the entire device this DC is associated with - // - // notice that we intentionally put it in a separate function instead of - // DoGetSize() itself because we want it to remain pure virtual both - // because each derived class should take care to define it as needed (this - // implementation is not at all always appropriate) and because we want - // wxDC to be an ABC to prevent it from being created directly - void GetDeviceSize(int *width, int *height) const; - - - // MSW-specific member variables - // ----------------------------- - - // the window associated with this DC (may be NULL) - wxWindow *m_canvas; - - wxBitmap m_selectedBitmap; - - // TRUE => DeleteDC() in dtor, FALSE => only ReleaseDC() it - bool m_bOwnsDC:1; - - // our HDC - WXHDC m_hDC; - - // Store all old GDI objects when do a SelectObject, so we can select them - // back in (this unselecting user's objects) so we can safely delete the - // DC. - WXHBITMAP m_oldBitmap; - WXHPEN m_oldPen; - WXHBRUSH m_oldBrush; - WXHFONT m_oldFont; - -#if wxUSE_PALETTE - WXHPALETTE m_oldPalette; -#endif // wxUSE_PALETTE - -#if wxUSE_DC_CACHEING - static wxObjectList sm_bitmapCache; - static wxObjectList sm_dcCache; -#endif - - wxDECLARE_CLASS(wxMSWDCImpl); - wxDECLARE_NO_COPY_CLASS(wxMSWDCImpl); -}; - -// ---------------------------------------------------------------------------- -// wxDCTemp: a wxDC which doesn't free the given HDC (used by wxWidgets -// only/mainly) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDCTempImpl : public wxMSWDCImpl -{ -public: - // construct a temporary DC with the specified HDC and size (it should be - // specified whenever we know it for this HDC) - wxDCTempImpl(wxDC *owner, WXHDC hdc, const wxSize& size ) - : wxMSWDCImpl( owner, hdc ), - m_size(size) - { - } - - virtual ~wxDCTempImpl() - { - // prevent base class dtor from freeing it - SetHDC((WXHDC)NULL); - } - - virtual void DoGetSize(int *w, int *h) const - { - wxASSERT_MSG( m_size.IsFullySpecified(), - wxT("size of this DC hadn't been set and is unknown") ); - - if ( w ) - *w = m_size.x; - if ( h ) - *h = m_size.y; - } - -private: - // size of this DC must be explicitly set by SetSize() as we have no way to - // find it ourselves - const wxSize m_size; - - wxDECLARE_NO_COPY_CLASS(wxDCTempImpl); -}; - -class WXDLLIMPEXP_CORE wxDCTemp : public wxDC -{ -public: - wxDCTemp(WXHDC hdc, const wxSize& size = wxDefaultSize) - : wxDC(new wxDCTempImpl(this, hdc, size)) - { - } -}; - -#endif // _WX_MSW_DC_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcclient.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcclient.h deleted file mode 100644 index 10ac3ab5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcclient.h +++ /dev/null @@ -1,108 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/dcclient.h -// Purpose: wxClientDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCCLIENT_H_ -#define _WX_DCCLIENT_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/dc.h" -#include "wx/msw/dc.h" -#include "wx/dcclient.h" - -class wxPaintDCInfo; - -// ---------------------------------------------------------------------------- -// DC classes -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxWindowDCImpl : public wxMSWDCImpl -{ -public: - // default ctor - wxWindowDCImpl( wxDC *owner ); - - // Create a DC corresponding to the whole window - wxWindowDCImpl( wxDC *owner, wxWindow *win ); - - virtual void DoGetSize(int *width, int *height) const; - -protected: - // initialize the newly created DC - void InitDC(); - - wxDECLARE_CLASS(wxWindowDCImpl); - wxDECLARE_NO_COPY_CLASS(wxWindowDCImpl); -}; - -class WXDLLIMPEXP_CORE wxClientDCImpl : public wxWindowDCImpl -{ -public: - // default ctor - wxClientDCImpl( wxDC *owner ); - - // Create a DC corresponding to the client area of the window - wxClientDCImpl( wxDC *owner, wxWindow *win ); - - virtual ~wxClientDCImpl(); - - virtual void DoGetSize(int *width, int *height) const; - -protected: - void InitDC(); - - wxDECLARE_CLASS(wxClientDCImpl); - wxDECLARE_NO_COPY_CLASS(wxClientDCImpl); -}; - -class WXDLLIMPEXP_CORE wxPaintDCImpl : public wxClientDCImpl -{ -public: - wxPaintDCImpl( wxDC *owner ); - - // Create a DC corresponding for painting the window in OnPaint() - wxPaintDCImpl( wxDC *owner, wxWindow *win ); - - virtual ~wxPaintDCImpl(); - - // find the entry for this DC in the cache (keyed by the window) - static WXHDC FindDCInCache(wxWindow* win); - - // This must be called by the code handling WM_PAINT to remove the DC - // cached for this window for the duration of this message processing. - static void EndPaint(wxWindow *win); - -protected: - // Find the DC for this window in the cache, return NULL if not found. - static wxPaintDCInfo *FindInCache(wxWindow* win); - - wxDECLARE_CLASS(wxPaintDCImpl); - wxDECLARE_NO_COPY_CLASS(wxPaintDCImpl); -}; - -/* - * wxPaintDCEx - * This class is used when an application sends an HDC with the WM_PAINT - * message. It is used in HandlePaint and need not be used by an application. - */ - -class WXDLLIMPEXP_CORE wxPaintDCEx : public wxPaintDC -{ -public: - wxPaintDCEx(wxWindow *canvas, WXHDC dc); - - wxDECLARE_CLASS(wxPaintDCEx); - wxDECLARE_NO_COPY_CLASS(wxPaintDCEx); -}; - -#endif - // _WX_DCCLIENT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcmemory.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcmemory.h deleted file mode 100644 index 8c571739..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcmemory.h +++ /dev/null @@ -1,44 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/dcmemory.h -// Purpose: wxMemoryDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCMEMORY_H_ -#define _WX_DCMEMORY_H_ - -#include "wx/dcmemory.h" -#include "wx/msw/dc.h" - -class WXDLLIMPEXP_CORE wxMemoryDCImpl: public wxMSWDCImpl -{ -public: - wxMemoryDCImpl( wxMemoryDC *owner ); - wxMemoryDCImpl( wxMemoryDC *owner, wxBitmap& bitmap ); - wxMemoryDCImpl( wxMemoryDC *owner, wxDC *dc ); // Create compatible DC - - // override some base class virtuals - virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height); - virtual void DoGetSize(int* width, int* height) const; - virtual void DoSelect(const wxBitmap& bitmap); - - virtual wxBitmap DoGetAsBitmap(const wxRect* subrect) const - { return subrect == NULL ? GetSelectedBitmap() : GetSelectedBitmap().GetSubBitmapOfHDC(*subrect, GetHDC() );} - -protected: - // create DC compatible with the given one or screen if dc == NULL - bool CreateCompatible(wxDC *dc); - - // initialize the newly created DC - void Init(); - - wxDECLARE_CLASS(wxMemoryDCImpl); - wxDECLARE_NO_COPY_CLASS(wxMemoryDCImpl); -}; - -#endif - // _WX_DCMEMORY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcprint.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcprint.h deleted file mode 100644 index c3f223b5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcprint.h +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/dcprint.h -// Purpose: wxPrinterDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_DCPRINT_H_ -#define _WX_MSW_DCPRINT_H_ - -#if wxUSE_PRINTING_ARCHITECTURE - -#include "wx/dcprint.h" -#include "wx/cmndata.h" -#include "wx/msw/dc.h" - -// ------------------------------------------------------------------------ -// wxPrinterDCImpl -// - -class WXDLLIMPEXP_CORE wxPrinterDCImpl : public wxMSWDCImpl -{ -public: - // Create from print data - wxPrinterDCImpl( wxPrinterDC *owner, const wxPrintData& data ); - wxPrinterDCImpl( wxPrinterDC *owner, WXHDC theDC ); - - // override some base class virtuals - virtual bool StartDoc(const wxString& message); - virtual void EndDoc(); - virtual void StartPage(); - virtual void EndPage(); - - virtual wxRect GetPaperRect() const; - -protected: - virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y, - bool useMask = false); - virtual bool DoBlit(wxCoord xdest, wxCoord ydest, - wxCoord width, wxCoord height, - wxDC *source, wxCoord xsrc, wxCoord ysrc, - wxRasterOperationMode rop = wxCOPY, bool useMask = false, - wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord); - virtual void DoGetSize(int *w, int *h) const - { - GetDeviceSize(w, h); - } - - - // init the dc - void Init(); - - wxPrintData m_printData; - -private: - wxDECLARE_CLASS(wxPrinterDCImpl); - wxDECLARE_NO_COPY_CLASS(wxPrinterDCImpl); -}; - -// Gets an HDC for the specified printer configuration -WXHDC WXDLLIMPEXP_CORE wxGetPrinterDC(const wxPrintData& data); - -// ------------------------------------------------------------------------ -// wxPrinterDCromHDC -// - -class WXDLLIMPEXP_CORE wxPrinterDCFromHDC: public wxPrinterDC -{ -public: - wxPrinterDCFromHDC( WXHDC theDC ) - : wxPrinterDC(new wxPrinterDCImpl(this, theDC)) - { - } -}; - -#endif // wxUSE_PRINTING_ARCHITECTURE - -#endif // _WX_MSW_DCPRINT_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcscreen.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcscreen.h deleted file mode 100644 index 839b585a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dcscreen.h +++ /dev/null @@ -1,33 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/dcscreen.h -// Purpose: wxScreenDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_DCSCREEN_H_ -#define _WX_MSW_DCSCREEN_H_ - -#include "wx/dcscreen.h" -#include "wx/msw/dc.h" - -class WXDLLIMPEXP_CORE wxScreenDCImpl : public wxMSWDCImpl -{ -public: - // Create a DC representing the whole screen - wxScreenDCImpl( wxScreenDC *owner ); - - virtual void DoGetSize(int *w, int *h) const - { - GetDeviceSize(w, h); - } - - wxDECLARE_CLASS(wxScreenDCImpl); - wxDECLARE_NO_COPY_CLASS(wxScreenDCImpl); -}; - -#endif // _WX_MSW_DCSCREEN_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dde.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dde.h deleted file mode 100644 index cc3da0a1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dde.h +++ /dev/null @@ -1,137 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/dde.h -// Purpose: DDE class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DDE_H_ -#define _WX_DDE_H_ - -#include "wx/ipcbase.h" - -/* - * Mini-DDE implementation - - Most transactions involve a topic name and an item name (choose these - as befits your application). - - A client can: - - - ask the server to execute commands (data) associated with a topic - - request data from server by topic and item - - poke data into the server - - ask the server to start an advice loop on topic/item - - ask the server to stop an advice loop - - A server can: - - - respond to execute, request, poke and advice start/stop - - send advise data to client - - Note that this limits the server in the ways it can send data to the - client, i.e. it can't send unsolicited information. - * - */ - -class WXDLLIMPEXP_FWD_BASE wxDDEServer; -class WXDLLIMPEXP_FWD_BASE wxDDEClient; - -class WXDLLIMPEXP_BASE wxDDEConnection : public wxConnectionBase -{ -public: - wxDDEConnection(void *buffer, size_t size); // use external buffer - wxDDEConnection(); // use internal buffer - virtual ~wxDDEConnection(); - - // implement base class pure virtual methods - virtual const void *Request(const wxString& item, - size_t *size = NULL, - wxIPCFormat format = wxIPC_TEXT); - virtual bool StartAdvise(const wxString& item); - virtual bool StopAdvise(const wxString& item); - virtual bool Disconnect(); - -protected: - virtual bool DoExecute(const void *data, size_t size, wxIPCFormat format); - virtual bool DoPoke(const wxString& item, const void *data, size_t size, - wxIPCFormat format); - virtual bool DoAdvise(const wxString& item, const void *data, size_t size, - wxIPCFormat format); - -public: - wxString m_topicName; - wxDDEServer* m_server; - wxDDEClient* m_client; - - WXHCONV m_hConv; - const void* m_sendingData; - int m_dataSize; - wxIPCFormat m_dataType; - - wxDECLARE_NO_COPY_CLASS(wxDDEConnection); - wxDECLARE_DYNAMIC_CLASS(wxDDEConnection); -}; - -class WXDLLIMPEXP_BASE wxDDEServer : public wxServerBase -{ -public: - wxDDEServer(); - bool Create(const wxString& server_name); - virtual ~wxDDEServer(); - - virtual wxConnectionBase *OnAcceptConnection(const wxString& topic); - - // Find/delete wxDDEConnection corresponding to the HCONV - wxDDEConnection *FindConnection(WXHCONV conv); - bool DeleteConnection(WXHCONV conv); - wxString& GetServiceName() const { return (wxString&) m_serviceName; } - - wxDDEConnectionList& GetConnections() const - { return (wxDDEConnectionList&) m_connections; } - -protected: - int m_lastError; - wxString m_serviceName; - wxDDEConnectionList m_connections; - - wxDECLARE_DYNAMIC_CLASS(wxDDEServer); -}; - -class WXDLLIMPEXP_BASE wxDDEClient: public wxClientBase -{ -public: - wxDDEClient(); - virtual ~wxDDEClient(); - - bool ValidHost(const wxString& host); - - // Call this to make a connection. Returns NULL if cannot. - virtual wxConnectionBase *MakeConnection(const wxString& host, - const wxString& server, - const wxString& topic); - - // Tailor this to return own connection. - virtual wxConnectionBase *OnMakeConnection(); - - // Find/delete wxDDEConnection corresponding to the HCONV - wxDDEConnection *FindConnection(WXHCONV conv); - bool DeleteConnection(WXHCONV conv); - - wxDDEConnectionList& GetConnections() const - { return (wxDDEConnectionList&) m_connections; } - -protected: - int m_lastError; - wxDDEConnectionList m_connections; - - wxDECLARE_DYNAMIC_CLASS(wxDDEClient); -}; - -void WXDLLIMPEXP_BASE wxDDEInitialize(); -void WXDLLIMPEXP_BASE wxDDECleanUp(); - -#endif // _WX_DDE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/debughlp.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/debughlp.h deleted file mode 100644 index b224c19a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/debughlp.h +++ /dev/null @@ -1,434 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/debughlp.h -// Purpose: wraps dbghelp.h standard file -// Author: Vadim Zeitlin, Suzumizaki-kimitaka -// Created: 2005-01-08 (extracted from msw/crashrpt.cpp) -// Copyright: (c) 2003-2005 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_DEBUGHLPH_H_ -#define _WX_MSW_DEBUGHLPH_H_ - -#include "wx/dynlib.h" - -#include "wx/msw/wrapwin.h" - -#ifdef __VISUALC__ - // Disable a warning that we can do nothing about: we get it at least for - // imagehlp.h from 8.1 Windows kit when using VC14. - #pragma warning(push) - - // 'typedef ': ignored on left of '' when no variable is declared - #pragma warning(disable:4091) -#endif - -#include <imagehlp.h> - -#ifdef __VISUALC__ - #pragma warning(pop) -#endif - -#include "wx/msw/private.h" - -// wxUSE_DBGHELP can be predefined on the compiler command line to force using -// dbghelp.dll even if it's not detected or, on the contrary, avoid using even -// if it's available. -#ifndef wxUSE_DBGHELP - // The only compiler which is known to have the necessary headers is MSVC. - #ifdef __VISUALC__ - // MSVC7.1 shipped with API v9 and we don't support anything earlier - // anyhow. - #if API_VERSION_NUMBER >= 9 - #define wxUSE_DBGHELP 1 - #else - #define wxUSE_DBGHELP 0 - #endif - #else - #define wxUSE_DBGHELP 0 - #endif -#endif - -#if wxUSE_DBGHELP - -/* - -The table below shows which functions are exported by dbghelp.dll. - -On 64 bit Windows, there seems to be no difference between 32bit dll and 64bit -one. Vista-64 and Win8-64 look the same, but "Ex" and "ExW" versions exist only -in Windows 8. - -Note that SymGetLineFromAddrW and EnumerateLoadedModulesW DON'T exist at all. - -function | Windows | XP-32 Vista-64 Win8-64 -SymEnumSymbolsW n/a v v -SymFromAddrW n/a v v -SymInitializeW n/a v v - -SymEnumSymbols v v v -SymFromAddr v v v -SymInitialize v v v - -SymGetLineFromAddrW64 n/a v v -SymGetLineFromAddr64 v v v -SymGetLineFromAddrW n/a n/a n/a -SymGetLineFromAddr v v v - -EnumerateLoadedModulesW64 n/a v v -EnumerateLoadedModules64 v v v -EnumerateLoadedModulesW n/a n/a n/a -EnumerateLoadedModules v v v - -*/ - -// It's not really clear whether API v10 is used by anything as VC8 still used -// v9, just as MSVC7.1, while VC9 already used v11, but provide support for it -// just in case. -#if API_VERSION_NUMBER < 10/*{{{*/ - -typedef BOOL -(CALLBACK *PENUMLOADED_MODULES_CALLBACKW64)(PWSTR ModuleName, - DWORD64 ModuleBase, - ULONG ModuleSize, - PVOID UserContext); - -typedef struct _IMAGEHLP_LINEW64 -{ - DWORD SizeOfStruct; - PVOID Key; - DWORD LineNumber; - PWSTR FileName; - DWORD64 Address; -} IMAGEHLP_LINEW64, *PIMAGEHLP_LINEW64; - -typedef struct _SYMBOL_INFOW -{ - ULONG SizeOfStruct; - ULONG TypeIndex; - ULONG64 Reserved[2]; - ULONG Index; - ULONG Size; - ULONG64 ModBase; - ULONG Flags; - ULONG64 Value; - ULONG64 Address; - ULONG Register; - ULONG Scope; - ULONG Tag; - ULONG NameLen; - ULONG MaxNameLen; - WCHAR Name[1]; -} SYMBOL_INFOW, *PSYMBOL_INFOW; - -typedef BOOL -(CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACKW)(PSYMBOL_INFOW pSymInfo, - ULONG SymbolSize, - PVOID UserContext); - -typedef BOOL -(CALLBACK *PSYM_ENUMERATESYMBOLS_CALLBACK)(PSYMBOL_INFO pSymInfo, - ULONG SymbolSize, - PVOID UserContext); - -#endif // API_VERSION_NUMBER < 10/*}}}*/ - -// wx-prefixed types map to either the ANSI or Unicode ("W") version depending -// on the build of wx itself. -#ifdef UNICODE - #define wxPSYM_ENUMERATESYMBOLS_CALLBACK PSYM_ENUMERATESYMBOLS_CALLBACKW -#else // !UNICODE - #define wxPSYM_ENUMERATESYMBOLS_CALLBACK PSYM_ENUMERATESYMBOLS_CALLBACK -#endif // UNICODE/!UNICODE - -// This one could be already defined by wx/msw/stackwalk.h -#ifndef wxSYMBOL_INFO - #ifdef UNICODE - #define wxSYMBOL_INFO SYMBOL_INFOW - #else // !UNICODE - #define wxSYMBOL_INFO SYMBOL_INFO - #endif // UNICODE/!UNICODE -#endif // !defined(wxSYMBOL_INFO) - -typedef wxSYMBOL_INFO* wxPSYMBOL_INFO; - -// This differs from PENUMLOADED_MODULES_CALLBACK[W]64 in that it always uses -// "const" for its first argument when the SDK used to pass a non-const string -// here until API_VERSION_NUMBER==11, so we can't just define it as an existing -// typedef. -typedef BOOL -(CALLBACK *wxPENUMLOADED_MODULES_CALLBACK)(const wxChar* moduleName, - DWORD64 moduleBase, - ULONG moduleSize, - void *userContext); - -// ---------------------------------------------------------------------------- -// wxDbgHelpDLL: dynamically load dbghelp.dll functions -// ---------------------------------------------------------------------------- - -// wrapper for some functions from dbghelp.dll -// -// MT note: this class is not MT safe and should be only used from a single -// thread at a time (this is so because dbghelp.dll is not MT-safe -// itself anyhow) -class wxDbgHelpDLL -{ -public: - // some useful constants not present in debughlp.h (stolen from DIA SDK) - enum BasicType - { - BASICTYPE_NOTYPE = 0, - BASICTYPE_VOID = 1, - BASICTYPE_CHAR = 2, - BASICTYPE_WCHAR = 3, - BASICTYPE_INT = 6, - BASICTYPE_UINT = 7, - BASICTYPE_FLOAT = 8, - BASICTYPE_BCD = 9, - BASICTYPE_BOOL = 10, - BASICTYPE_LONG = 13, - BASICTYPE_ULONG = 14, - BASICTYPE_CURRENCY = 25, - BASICTYPE_DATE = 26, - BASICTYPE_VARIANT = 27, - BASICTYPE_COMPLEX = 28, - BASICTYPE_BIT = 29, - BASICTYPE_BSTR = 30, - BASICTYPE_HRESULT = 31, - BASICTYPE_MAX - }; - - enum SymbolTag - { - SYMBOL_TAG_NULL, - SYMBOL_TAG_EXE, - SYMBOL_TAG_COMPILAND, - SYMBOL_TAG_COMPILAND_DETAILS, - SYMBOL_TAG_COMPILAND_ENV, - SYMBOL_TAG_FUNCTION, - SYMBOL_TAG_BLOCK, - SYMBOL_TAG_DATA, - SYMBOL_TAG_ANNOTATION, - SYMBOL_TAG_LABEL, - SYMBOL_TAG_PUBLIC_SYMBOL, - SYMBOL_TAG_UDT, - SYMBOL_TAG_ENUM, - SYMBOL_TAG_FUNCTION_TYPE, - SYMBOL_TAG_POINTER_TYPE, - SYMBOL_TAG_ARRAY_TYPE, - SYMBOL_TAG_BASE_TYPE, - SYMBOL_TAG_TYPEDEF, - SYMBOL_TAG_BASE_CLASS, - SYMBOL_TAG_FRIEND, - SYMBOL_TAG_FUNCTION_ARG_TYPE, - SYMBOL_TAG_FUNC_DEBUG_START, - SYMBOL_TAG_FUNC_DEBUG_END, - SYMBOL_TAG_USING_NAMESPACE, - SYMBOL_TAG_VTABLE_SHAPE, - SYMBOL_TAG_VTABLE, - SYMBOL_TAG_CUSTOM, - SYMBOL_TAG_THUNK, - SYMBOL_TAG_CUSTOM_TYPE, - SYMBOL_TAG_MANAGED_TYPE, - SYMBOL_TAG_DIMENSION, - SYMBOL_TAG_MAX - }; - - enum DataKind - { - DATA_UNKNOWN, - DATA_LOCAL, - DATA_STATIC_LOCAL, - DATA_PARAM, - DATA_OBJECT_PTR, // "this" pointer - DATA_FILE_STATIC, - DATA_GLOBAL, - DATA_MEMBER, - DATA_STATIC_MEMBER, - DATA_CONSTANT, - DATA_MAX - }; - - enum UdtKind - { - UDT_STRUCT, - UDT_CLASS, - UDT_UNION, - UDT_MAX - }; - - - // function types - typedef DWORD (WINAPI *SymGetOptions_t)(); - typedef DWORD (WINAPI *SymSetOptions_t)(DWORD); - typedef BOOL (WINAPI *SymInitialize_t)(HANDLE, LPCSTR, BOOL); - typedef BOOL (WINAPI *SymInitializeW_t)(HANDLE, LPCWSTR, BOOL); - typedef BOOL (WINAPI *StackWalk_t)(DWORD, HANDLE, HANDLE, LPSTACKFRAME, - LPVOID, PREAD_PROCESS_MEMORY_ROUTINE, - PFUNCTION_TABLE_ACCESS_ROUTINE, - PGET_MODULE_BASE_ROUTINE, - PTRANSLATE_ADDRESS_ROUTINE); - typedef BOOL (WINAPI *SymFromAddr_t)(HANDLE, DWORD64, PDWORD64, PSYMBOL_INFO); - typedef BOOL (WINAPI *SymFromAddrW_t)(HANDLE, DWORD64, PDWORD64, PSYMBOL_INFOW); - typedef LPVOID (WINAPI *SymFunctionTableAccess_t)(HANDLE, DWORD_PTR); - typedef DWORD_PTR (WINAPI *SymGetModuleBase_t)(HANDLE, DWORD_PTR); - typedef BOOL (WINAPI *SymGetLineFromAddr_t)(HANDLE, DWORD, - PDWORD, PIMAGEHLP_LINE); - typedef BOOL (WINAPI *SymGetLineFromAddr64_t)(HANDLE, DWORD64, - PDWORD, PIMAGEHLP_LINE64); - typedef BOOL (WINAPI *SymGetLineFromAddrW64_t)(HANDLE, DWORD64, - PDWORD, PIMAGEHLP_LINEW64); - typedef BOOL (WINAPI *SymSetContext_t)(HANDLE, PIMAGEHLP_STACK_FRAME, - PIMAGEHLP_CONTEXT); - typedef BOOL (WINAPI *SymEnumSymbols_t)(HANDLE, ULONG64, PCSTR, - PSYM_ENUMERATESYMBOLS_CALLBACK, - const PVOID); - typedef BOOL (WINAPI *SymEnumSymbolsW_t)(HANDLE, ULONG64, PCWSTR, - PSYM_ENUMERATESYMBOLS_CALLBACKW, - const PVOID); - typedef BOOL (WINAPI *SymGetTypeInfo_t)(HANDLE, DWORD64, ULONG, - IMAGEHLP_SYMBOL_TYPE_INFO, PVOID); - typedef BOOL (WINAPI *SymCleanup_t)(HANDLE); - typedef BOOL (WINAPI *EnumerateLoadedModules_t)(HANDLE, PENUMLOADED_MODULES_CALLBACK, PVOID); - typedef BOOL (WINAPI *EnumerateLoadedModules64_t)(HANDLE, PENUMLOADED_MODULES_CALLBACK64, PVOID); - typedef BOOL (WINAPI *EnumerateLoadedModulesW64_t)(HANDLE, PENUMLOADED_MODULES_CALLBACKW64, PVOID); - typedef BOOL (WINAPI *MiniDumpWriteDump_t)(HANDLE, DWORD, HANDLE, - MINIDUMP_TYPE, - CONST PMINIDUMP_EXCEPTION_INFORMATION, - CONST PMINIDUMP_USER_STREAM_INFORMATION, - CONST PMINIDUMP_CALLBACK_INFORMATION); - - // Higher level functions selecting the right debug help library function - // to call: for CallFoo(), it can be Foo(), Foo64(), FooW() or FooW64() - // depending on the build options and function availability. - // - // They also provide more convenient to use wx-specific API, e.g. work with - // wxString instead of char/wchar_t pointers and omit the arguments we - // don't need. - static BOOL CallSymInitialize(HANDLE, BOOL); - static BOOL CallEnumerateLoadedModules(HANDLE, wxPENUMLOADED_MODULES_CALLBACK, PVOID); - static BOOL CallSymFromAddr(HANDLE, DWORD64, - size_t* offset, wxString* name); - static BOOL CallSymGetLineFromAddr(HANDLE, DWORD64, - wxString* fileName, size_t* line); - static BOOL CallSymEnumSymbols(HANDLE hProcess, - ULONG64 baseOfDll, - wxPSYM_ENUMERATESYMBOLS_CALLBACK callback, - const PVOID callbackParam); - - // The macro called by wxDO_FOR_ALL_SYM_FUNCS() below takes 2 arguments: - // the name of the function in the program code, which never has "64" - // suffix, and the name of the function in the DLL which can have "64" - // suffix in some cases. These 2 helper macros call the macro with the - // correct arguments in both cases. - #define wxSYM_CALL(what, name) what(name, name) -#if defined(_M_AMD64) - #define wxSYM_CALL_64(what, name) what(name, name ## 64) - - // Also undo all the "helpful" definitions done by imagehlp.h that map 32 - // bit functions to 64 bit ones, we don't need this as we do it ourselves. - #undef StackWalk - #undef SymFunctionTableAccess - #undef SymGetModuleBase - #undef SymGetLineFromAddr - #undef EnumerateLoadedModules -#else - #define wxSYM_CALL_64(what, name) what(name, name) -#endif - - #define wxSYM_CALL_ALWAYS_W(what, name) what(name ## W, name ## W) - - #define wxSYM_CALL_ALTERNATIVES(what, name) \ - what(name, name); \ - what(name ## 64, name ## 64); \ - what(name ## W64, name ## W64) - - #define wxDO_FOR_ALL_SYM_FUNCS_REQUIRED_PUBLIC(what) \ - wxSYM_CALL_64(what, StackWalk); \ - wxSYM_CALL_64(what, SymFunctionTableAccess); \ - wxSYM_CALL_64(what, SymGetModuleBase); \ - \ - wxSYM_CALL(what, SymGetOptions); \ - wxSYM_CALL(what, SymSetOptions); \ - wxSYM_CALL(what, SymSetContext); \ - wxSYM_CALL(what, SymGetTypeInfo); \ - wxSYM_CALL(what, SymCleanup); \ - wxSYM_CALL(what, MiniDumpWriteDump) - - #define wxDO_FOR_ALL_SYM_FUNCS_REQUIRED_PRIVATE(what) \ - wxSYM_CALL(what, SymInitialize); \ - wxSYM_CALL(what, SymFromAddr); \ - wxSYM_CALL(what, SymEnumSymbols) - - #define wxDO_FOR_ALL_SYM_FUNCS_REQUIRED(what) \ - wxDO_FOR_ALL_SYM_FUNCS_REQUIRED_PRIVATE(what); \ - wxDO_FOR_ALL_SYM_FUNCS_REQUIRED_PUBLIC(what) - - // Alternation will work when the following functions are not found, - // therefore they are not included in REQUIRED version. - #define wxDO_FOR_ALL_SYM_FUNCS_OPTIONAL(what) \ - wxSYM_CALL_ALTERNATIVES(what, SymGetLineFromAddr); \ - wxSYM_CALL_ALTERNATIVES(what, EnumerateLoadedModules); \ - wxSYM_CALL_ALWAYS_W(what, SymInitialize); \ - wxSYM_CALL_ALWAYS_W(what, SymFromAddr); \ - wxSYM_CALL_ALWAYS_W(what, SymEnumSymbols) - - #define wxDO_FOR_ALL_SYM_FUNCS(what) \ - wxDO_FOR_ALL_SYM_FUNCS_REQUIRED(what); \ - wxDO_FOR_ALL_SYM_FUNCS_OPTIONAL(what) - - #define wxDECLARE_SYM_FUNCTION(func, name) static func ## _t func - - wxDO_FOR_ALL_SYM_FUNCS_REQUIRED_PUBLIC(wxDECLARE_SYM_FUNCTION); - -private: - wxDO_FOR_ALL_SYM_FUNCS_REQUIRED_PRIVATE(wxDECLARE_SYM_FUNCTION); - wxDO_FOR_ALL_SYM_FUNCS_OPTIONAL(wxDECLARE_SYM_FUNCTION); - -public: - - #undef wxDECLARE_SYM_FUNCTION - - // load all functions from DLL, return true if ok - static bool Init(); - - // return the string with the error message explaining why Init() failed - static const wxString& GetErrorMessage(); - - // log error returned by the given function to debug output - static void LogError(const wxChar *func); - - // return textual representation of the value of given symbol - static wxString DumpSymbol(wxPSYMBOL_INFO pSymInfo, void *pVariable); - - // return the name of the symbol with given type index - static wxString GetSymbolName(wxPSYMBOL_INFO pSymInfo); - -private: - // dereference the given symbol, i.e. return symbol which is not a - // pointer/reference any more - // - // if ppData != NULL, dereference the pointer as many times as we - // dereferenced the symbol - // - // return the tag of the dereferenced symbol - static SymbolTag DereferenceSymbol(wxPSYMBOL_INFO pSymInfo, void **ppData); - - static wxString DumpField(wxPSYMBOL_INFO pSymInfo, - void *pVariable, - unsigned level); - - static wxString DumpBaseType(BasicType bt, DWORD64 length, void *pVariable); - - static wxString DumpUDT(wxPSYMBOL_INFO pSymInfo, - void *pVariable, - unsigned level = 0); - - static bool BindDbgHelpFunctions(const wxDynamicLibrary& dllDbgHelp); - static bool DoInit(); -}; - -#endif // wxUSE_DBGHELP - -#endif // _WX_MSW_DEBUGHLPH_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dialog.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dialog.h deleted file mode 100644 index 03f2ebad..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dialog.h +++ /dev/null @@ -1,95 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/dialog.h -// Purpose: wxDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIALOG_H_ -#define _WX_DIALOG_H_ - -#include "wx/panel.h" - -extern WXDLLIMPEXP_DATA_CORE(const char) wxDialogNameStr[]; - -class WXDLLIMPEXP_FWD_CORE wxDialogModalData; - -// Dialog boxes -class WXDLLIMPEXP_CORE wxDialog : public wxDialogBase -{ -public: - wxDialog() { Init(); } - - // full ctor - wxDialog(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr) - { - Init(); - - (void)Create(parent, id, title, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr); - - virtual ~wxDialog(); - - // return true if we're showing the dialog modally - virtual bool IsModal() const { return m_modalData != NULL; } - - // show the dialog modally and return the value passed to EndModal() - virtual int ShowModal(); - - // may be called to terminate the dialog with the given return code - virtual void EndModal(int retCode); - - - // implementation only from now on - // ------------------------------- - - // override some base class virtuals - virtual bool Show(bool show = true); - virtual void SetWindowStyleFlag(long style); - - // Windows callbacks - WXLRESULT MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - -protected: - // common part of all ctors - void Init(); - -private: - // these functions deal with the gripper window shown in the corner of - // resizable dialogs - void CreateGripper(); - void DestroyGripper(); - void ShowGripper(bool show); - void ResizeGripper(); - - // this function is used to adjust Z-order of new children relative to the - // gripper if we have one - void OnWindowCreate(wxWindowCreateEvent& event); - - // gripper window for a resizable dialog, NULL if we're not resizable - WXHWND m_hGripper; - - // this pointer is non-NULL only while the modal event loop is running - wxDialogModalData *m_modalData; - - wxDECLARE_DYNAMIC_CLASS(wxDialog); - wxDECLARE_NO_COPY_CLASS(wxDialog); -}; - -#endif - // _WX_DIALOG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dib.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dib.h deleted file mode 100644 index b7488031..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dib.h +++ /dev/null @@ -1,278 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/dib.h -// Purpose: wxDIB class representing Win32 device independent bitmaps -// Author: Vadim Zeitlin -// Modified by: -// Created: 03.03.03 (replaces the old file with the same name) -// Copyright: (c) 1997-2003 wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_DIB_H_ -#define _WX_MSW_DIB_H_ - -class WXDLLIMPEXP_FWD_CORE wxPalette; - -#include "wx/msw/private.h" - -#if wxUSE_WXDIB - -#ifdef __WXMSW__ - #include "wx/bitmap.h" -#endif // __WXMSW__ - -// ---------------------------------------------------------------------------- -// wxDIB: represents a DIB section -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDIB -{ -public: - // ctors and such - // -------------- - - // create an uninitialized DIB with the given width, height and depth (only - // 24 and 32 bpp DIBs are currently supported) - // - // after using this ctor, GetData() and GetHandle() may be used if IsOk() - // returns true - wxDIB(int width, int height, int depth) - { Init(); (void)Create(width, height, depth); } - -#ifdef __WXMSW__ - // create a DIB from the DDB - wxDIB(const wxBitmap& bmp) - { Init(); (void)Create(bmp); } -#endif // __WXMSW__ - - // create a DIB from the Windows DDB - wxDIB(HBITMAP hbmp) - { Init(); (void)Create(hbmp); } - - // load a DIB from file (any depth is supoprted here unlike above) - // - // as above, use IsOk() to see if the bitmap was loaded successfully - wxDIB(const wxString& filename) - { Init(); (void)Load(filename); } - - // same as the corresponding ctors but with return value - bool Create(int width, int height, int depth); -#ifdef __WXMSW__ - bool Create(const wxBitmap& bmp) { return Create(GetHbitmapOf(bmp)); } -#endif - bool Create(HBITMAP hbmp); - bool Load(const wxString& filename); - - // dtor is not virtual, this class is not meant to be used polymorphically - ~wxDIB(); - - - // operations - // ---------- - - // create a bitmap compatible with the given HDC (or screen by default) and - // return its handle, the caller is responsible for freeing it (using - // DeleteObject()) - HBITMAP CreateDDB(HDC hdc = 0) const; - - // get the handle from the DIB and reset it, i.e. this object won't destroy - // the DIB after this (but the caller should do it) - HBITMAP Detach() { HBITMAP hbmp = m_handle; m_handle = 0; return hbmp; } - -#if wxUSE_PALETTE - // create a palette for this DIB (always a trivial/default one for 24bpp) - wxPalette *CreatePalette() const; -#endif // wxUSE_PALETTE - - // save the DIB as a .BMP file to the file with the given name - bool Save(const wxString& filename); - - - // accessors - // --------- - - // return true if DIB was successfully created, false otherwise - bool IsOk() const { return m_handle != 0; } - - // get the bitmap size - wxSize GetSize() const { DoGetObject(); return wxSize(m_width, m_height); } - int GetWidth() const { DoGetObject(); return m_width; } - int GetHeight() const { DoGetObject(); return m_height; } - - // get the number of bits per pixel, or depth - int GetDepth() const { DoGetObject(); return m_depth; } - - // get the DIB handle - HBITMAP GetHandle() const { return m_handle; } - - // get raw pointer to bitmap bits, you should know what you do if you - // decide to use it - unsigned char *GetData() const - { DoGetObject(); return (unsigned char *)m_data; } - - - // HBITMAP conversion - // ------------------ - - // these functions are only used by wxWidgets internally right now, please - // don't use them directly if possible as they're subject to change - - // creates a DDB compatible with the given (or screen) DC from either - // a plain DIB or a DIB section (in which case the last parameter must be - // non NULL) - static HBITMAP ConvertToBitmap(const BITMAPINFO *pbi, - HDC hdc = 0, - void *bits = NULL); - - // create a plain DIB (not a DIB section) from a DDB, the caller is - // responsable for freeing it using ::GlobalFree() - static HGLOBAL ConvertFromBitmap(HBITMAP hbmp); - - // creates a DIB from the given DDB or calculates the space needed by it: - // if pbi is NULL, only the space is calculated, otherwise pbi is supposed - // to point at BITMAPINFO of the correct size which is filled by this - // function (this overload is needed for wxBitmapDataObject code in - // src/msw/ole/dataobj.cpp) - static size_t ConvertFromBitmap(BITMAPINFO *pbi, HBITMAP hbmp); - - - // wxImage conversion - // ------------------ - -#if wxUSE_IMAGE - // Possible formats for DIBs created by the functions below. - enum PixelFormat - { - PixelFormat_PreMultiplied = 0, - PixelFormat_NotPreMultiplied = 1 - }; - - // Create a DIB from the given image, the DIB will be either 24 or 32 (if - // the image has alpha channel) bpp. - // - // By default the DIB stores pixel data in pre-multiplied format so that it - // can be used with ::AlphaBlend() but it is also possible to disable - // pre-multiplication for the DIB to be usable with ImageList_Draw() which - // does pre-multiplication internally. - wxDIB(const wxImage& image, PixelFormat pf = PixelFormat_PreMultiplied) - { - Init(); - (void)Create(image, pf); - } - - // same as the above ctor but with the return code - bool Create(const wxImage& image, PixelFormat pf = PixelFormat_PreMultiplied); - - // create wxImage having the same data as this DIB - - // Possible options of conversion to wxImage - enum ConversionFlags - { - // Determine whether 32bpp DIB contains real alpha channel - // and return wxImage with or without alpha channel values. - Convert_AlphaAuto, - // Assume that 32bpp DIB contains valid alpha channel and always - // return wxImage with alpha channel values in this case. - Convert_AlphaAlwaysIf32bpp - }; - wxImage ConvertToImage(ConversionFlags flags = Convert_AlphaAuto) const; -#endif // wxUSE_IMAGE - - - // helper functions - // ---------------- - - // return the size of one line in a DIB with given width and depth: the - // point here is that as the scan lines need to be DWORD aligned so we may - // need to add some padding - static unsigned long GetLineSize(int width, int depth) - { - return ((width*depth + 31) & ~31) >> 3; - } - -private: - // common part of all ctors - void Init(); - - // free resources - void Free(); - - // initialize the contents from the provided DDB (Create() must have been - // already called) - bool CopyFromDDB(HBITMAP hbmp); - - - // the DIB section handle, 0 if invalid - HBITMAP m_handle; - - // NB: we could store only m_handle and not any of the other fields as - // we may always retrieve them from it using ::GetObject(), but we - // decide to still store them for efficiency concerns -- however if we - // don't have them from the very beginning (e.g. DIB constructed from a - // bitmap), we only retrieve them when necessary and so these fields - // should *never* be accessed directly, even from inside wxDIB code - - // function which must be called before accessing any members and which - // gets their values from m_handle, if not done yet - void DoGetObject() const; - - // pointer to DIB bits, may be NULL - void *m_data; - - // size and depth of the image - int m_width, - m_height, - m_depth; - - // in some cases we could be using a handle which we didn't create and in - // this case we shouldn't free it neither -- this flag tell us if this is - // the case - bool m_ownsHandle; - - - // DIBs can't be copied - wxDIB(const wxDIB&); - wxDIB& operator=(const wxDIB&); -}; - -// ---------------------------------------------------------------------------- -// inline functions implementation -// ---------------------------------------------------------------------------- - -inline -void wxDIB::Init() -{ - m_handle = 0; - m_ownsHandle = true; - - m_data = NULL; - - m_width = - m_height = - m_depth = 0; -} - -inline -void wxDIB::Free() -{ - if ( m_handle && m_ownsHandle ) - { - if ( !::DeleteObject(m_handle) ) - { - wxLogLastError(wxT("DeleteObject(hDIB)")); - } - - Init(); - } -} - -inline wxDIB::~wxDIB() -{ - Free(); -} - -#endif - // wxUSE_WXDIB - -#endif // _WX_MSW_DIB_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dirdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dirdlg.h deleted file mode 100644 index 365d97fe..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dirdlg.h +++ /dev/null @@ -1,39 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/dirdlg.h -// Purpose: wxDirDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIRDLG_H_ -#define _WX_DIRDLG_H_ - -class WXDLLIMPEXP_CORE wxDirDialog : public wxDirDialogBase -{ -public: - wxDirDialog(wxWindow *parent, - const wxString& message = wxDirSelectorPromptStr, - const wxString& defaultPath = wxEmptyString, - long style = wxDD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - const wxString& name = wxDirDialogNameStr); - - void SetPath(const wxString& path); - - virtual int ShowModal(); - -private: - // The real implementations of ShowModal(), used for Windows versions - // before and since Vista. - int ShowSHBrowseForFolder(WXHWND owner); - int ShowIFileDialog(WXHWND owner); - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDirDialog); -}; - -#endif - // _WX_DIRDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dragimag.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dragimag.h deleted file mode 100644 index 28671c07..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/dragimag.h +++ /dev/null @@ -1,244 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/dragimag.h -// Purpose: wxDragImage class: a kind of a cursor, that can cope -// with more sophisticated images -// Author: Julian Smart -// Modified by: -// Created: 08/04/99 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DRAGIMAG_H_ -#define _WX_DRAGIMAG_H_ - -#if wxUSE_DRAGIMAGE - -#include "wx/bitmap.h" -#include "wx/icon.h" -#include "wx/cursor.h" -#include "wx/treectrl.h" -#include "wx/listctrl.h" - -// If 1, use a simple wxCursor instead of ImageList_SetDragCursorImage -#define wxUSE_SIMPLER_DRAGIMAGE 0 - -/* - To use this class, create a wxDragImage when you start dragging, for example: - - void MyTreeCtrl::OnBeginDrag(wxTreeEvent& event) - { -#ifdef __WXMSW__ - ::UpdateWindow((HWND) GetHWND()); // We need to implement this in wxWidgets -#endif - - CaptureMouse(); - - m_dragImage = new wxDragImage(* this, itemId); - m_dragImage->BeginDrag(wxPoint(0, 0), this); - m_dragImage->Move(pt, this); - m_dragImage->Show(this); - ... - } - - In your OnMouseMove function, hide the image, do any display updating required, - then move and show the image again: - - void MyTreeCtrl::OnMouseMove(wxMouseEvent& event) - { - if (m_dragMode == MY_TREE_DRAG_NONE) - { - event.Skip(); - return; - } - - // Prevent screen corruption by hiding the image - if (m_dragImage) - m_dragImage->Hide(this); - - // Do some updating of the window, such as highlighting the drop target - ... - -#ifdef __WXMSW__ - if (updateWindow) - ::UpdateWindow((HWND) GetHWND()); -#endif - - // Move and show the image again - m_dragImage->Move(event.GetPosition(), this); - m_dragImage->Show(this); - } - - Eventually we end the drag and delete the drag image. - - void MyTreeCtrl::OnLeftUp(wxMouseEvent& event) - { - ... - - // End the drag and delete the drag image - if (m_dragImage) - { - m_dragImage->EndDrag(this); - delete m_dragImage; - m_dragImage = NULL; - } - ReleaseMouse(); - } -*/ - -/* - Notes for Unix version: - Can we simply use cursors instead, creating a cursor dynamically, setting it into the window - in BeginDrag, and restoring the old cursor in EndDrag? - For a really bog-standard implementation, we could simply use a normal dragging cursor - and ignore the image. -*/ - -/* - * wxDragImage - */ - -class WXDLLIMPEXP_CORE wxDragImage: public wxObject -{ -public: - - // Ctors & dtor - //////////////////////////////////////////////////////////////////////////// - - wxDragImage(); - wxDragImage(const wxBitmap& image, const wxCursor& cursor = wxNullCursor) - { - Init(); - - Create(image, cursor); - } - - wxDragImage(const wxIcon& image, const wxCursor& cursor = wxNullCursor) - { - Init(); - - Create(image, cursor); - } - - wxDragImage(const wxString& str, const wxCursor& cursor = wxNullCursor) - { - Init(); - - Create(str, cursor); - } - -#if wxUSE_TREECTRL - wxDragImage(const wxTreeCtrl& treeCtrl, wxTreeItemId& id) - { - Init(); - - Create(treeCtrl, id); - } -#endif - -#if wxUSE_LISTCTRL - wxDragImage(const wxListCtrl& listCtrl, long id) - { - Init(); - - Create(listCtrl, id); - } -#endif - - virtual ~wxDragImage(); - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // Create a drag image from a bitmap and optional cursor - bool Create(const wxBitmap& image, const wxCursor& cursor = wxNullCursor); - - // Create a drag image from an icon and optional cursor - bool Create(const wxIcon& image, const wxCursor& cursor = wxNullCursor); - - // Create a drag image from a string and optional cursor - bool Create(const wxString& str, const wxCursor& cursor = wxNullCursor); - -#if wxUSE_TREECTRL - // Create a drag image for the given tree control item - bool Create(const wxTreeCtrl& treeCtrl, wxTreeItemId& id); -#endif - -#if wxUSE_LISTCTRL - // Create a drag image for the given list control item - bool Create(const wxListCtrl& listCtrl, long id); -#endif - - // Begin drag. hotspot is the location of the drag position relative to the upper-left - // corner of the image. - bool BeginDrag(const wxPoint& hotspot, wxWindow* window, bool fullScreen = false, wxRect* rect = NULL); - - // Begin drag. hotspot is the location of the drag position relative to the upper-left - // corner of the image. This is full screen only. fullScreenRect gives the - // position of the window on the screen, to restrict the drag to. - bool BeginDrag(const wxPoint& hotspot, wxWindow* window, wxWindow* fullScreenRect); - - // End drag - bool EndDrag(); - - // Move the image: call from OnMouseMove. Pt is in window client coordinates if window - // is non-NULL, or in screen coordinates if NULL. - bool Move(const wxPoint& pt); - - // Show the image - bool Show(); - - // Hide the image - bool Hide(); - - // Implementation - //////////////////////////////////////////////////////////////////////////// - - // Initialize variables - void Init(); - - // Returns the native image list handle - WXHIMAGELIST GetHIMAGELIST() const { return m_hImageList; } - -#if !wxUSE_SIMPLER_DRAGIMAGE - // Returns the native image list handle for the cursor - WXHIMAGELIST GetCursorHIMAGELIST() const { return m_hCursorImageList; } -#endif - - // don't use in new code, use versions without hot spot parameter -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED_CONSTRUCTOR( wxDragImage(const wxBitmap& image, const wxCursor& cursor, const wxPoint& cursorHotspot) ); - wxDEPRECATED_CONSTRUCTOR( wxDragImage(const wxString& str, const wxCursor& cursor, const wxPoint& cursorHotspot) ); - wxDEPRECATED_CONSTRUCTOR( wxDragImage(const wxIcon& image, const wxCursor& cursor, const wxPoint& cursorHotspot) ); - wxDEPRECATED( bool Create(const wxBitmap& image, const wxCursor& cursor, const wxPoint& cursorHotspot) ); - wxDEPRECATED( bool Create(const wxIcon& image, const wxCursor& cursor, const wxPoint& cursorHotspot) ); - wxDEPRECATED( bool Create(const wxString& str, const wxCursor& cursor, const wxPoint& cursorHotspot) ); -#endif // WXWIN_COMPATIBILITY_2_8 - -protected: - WXHIMAGELIST m_hImageList; - -#if wxUSE_SIMPLER_DRAGIMAGE - wxCursor m_oldCursor; -#else - WXHIMAGELIST m_hCursorImageList; -#endif - - wxCursor m_cursor; -// wxPoint m_cursorHotspot; // Obsolete - wxPoint m_position; - wxWindow* m_window; - wxRect m_boundingRect; - bool m_fullScreen; - -private: - wxDECLARE_DYNAMIC_CLASS(wxDragImage); - wxDECLARE_NO_COPY_CLASS(wxDragImage); -}; - -#endif // wxUSE_DRAGIMAGE -#endif - // _WX_DRAGIMAG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/drive.ico b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/drive.ico deleted file mode 100644 index cac90115..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/drive.ico and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/enhmeta.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/enhmeta.h deleted file mode 100644 index b3ae3bb4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/enhmeta.h +++ /dev/null @@ -1,195 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/enhmeta.h -// Purpose: wxEnhMetaFile class for Win32 -// Author: Vadim Zeitlin -// Modified by: -// Created: 13.01.00 -// Copyright: (c) 2000 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_ENHMETA_H_ -#define _WX_MSW_ENHMETA_H_ - -#include "wx/dc.h" -#include "wx/gdiobj.h" - -#if wxUSE_DRAG_AND_DROP - #include "wx/dataobj.h" -#endif - -// ---------------------------------------------------------------------------- -// wxEnhMetaFile: encapsulation of Win32 HENHMETAFILE -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxEnhMetaFile : public wxGDIObject -{ -public: - wxEnhMetaFile(const wxString& file = wxEmptyString) : m_filename(file) - { Init(); } - wxEnhMetaFile(const wxEnhMetaFile& metafile) : wxGDIObject() - { Init(); Assign(metafile); } - wxEnhMetaFile& operator=(const wxEnhMetaFile& metafile) - { Free(); Assign(metafile); return *this; } - - virtual ~wxEnhMetaFile() - { Free(); } - - // display the picture stored in the metafile on the given DC - bool Play(wxDC *dc, wxRect *rectBound = NULL); - - // accessors - virtual bool IsOk() const { return m_hMF != 0; } - - wxSize GetSize() const; - int GetWidth() const { return GetSize().x; } - int GetHeight() const { return GetSize().y; } - - const wxString& GetFileName() const { return m_filename; } - - // copy the metafile to the clipboard: the width and height parameters are - // for backwards compatibility (with wxMetaFile) only, they are ignored by - // this method - bool SetClipboard(int width = 0, int height = 0); - - // Detach the HENHMETAFILE from this object, i.e. don't delete the handle - // in the dtor -- the caller is now responsible for doing this, e.g. using - // Free() method below. - WXHANDLE Detach() { WXHANDLE h = m_hMF; m_hMF = 0; return h; } - - // Destroy the given HENHMETAFILE object. - static void Free(WXHANDLE handle); - - // implementation - WXHANDLE GetHENHMETAFILE() const { return m_hMF; } - void SetHENHMETAFILE(WXHANDLE hMF) { Free(); m_hMF = hMF; } - -protected: - void Init(); - void Free() { Free(m_hMF); } - void Assign(const wxEnhMetaFile& mf); - - // we don't use these functions (but probably should) but have to implement - // them as they're pure virtual in the base class - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - -private: - wxString m_filename; - WXHANDLE m_hMF; - - wxDECLARE_DYNAMIC_CLASS(wxEnhMetaFile); -}; - -// ---------------------------------------------------------------------------- -// wxEnhMetaFileDC: allows to create a wxEnhMetaFile -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxEnhMetaFileDC : public wxDC -{ -public: - // the ctor parameters specify the filename (empty for memory metafiles), - // the metafile picture size and the optional description/comment - wxEnhMetaFileDC(const wxString& filename = wxEmptyString, - int width = 0, int height = 0, - const wxString& description = wxEmptyString); - - // as above, but takes reference DC as first argument to take resolution, - // size, font metrics etc. from - wxEXPLICIT - wxEnhMetaFileDC(const wxDC& referenceDC, - const wxString& filename = wxEmptyString, - int width = 0, int height = 0, - const wxString& description = wxEmptyString); - - // obtain a pointer to the new metafile (caller should delete it) - wxEnhMetaFile *Close(); - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxEnhMetaFileDC); -}; - -#if wxUSE_DRAG_AND_DROP - -// ---------------------------------------------------------------------------- -// wxEnhMetaFileDataObject is a specialization of wxDataObject for enh metafile -// ---------------------------------------------------------------------------- - -// notice that we want to support both CF_METAFILEPICT and CF_ENHMETAFILE and -// so we derive from wxDataObject and not from wxDataObjectSimple -class WXDLLIMPEXP_CORE wxEnhMetaFileDataObject : public wxDataObject -{ -public: - // ctors - wxEnhMetaFileDataObject() { } - wxEnhMetaFileDataObject(const wxEnhMetaFile& metafile) - : m_metafile(metafile) { } - - // virtual functions which you may override if you want to provide data on - // demand only - otherwise, the trivial default versions will be used - virtual void SetMetafile(const wxEnhMetaFile& metafile) - { m_metafile = metafile; } - virtual wxEnhMetaFile GetMetafile() const - { return m_metafile; } - - // implement base class pure virtuals - virtual wxDataFormat GetPreferredFormat(Direction dir) const; - virtual size_t GetFormatCount(Direction dir) const; - virtual void GetAllFormats(wxDataFormat *formats, Direction dir) const; - virtual size_t GetDataSize(const wxDataFormat& format) const; - virtual bool GetDataHere(const wxDataFormat& format, void *buf) const; - virtual bool SetData(const wxDataFormat& format, size_t len, - const void *buf); - -protected: - wxEnhMetaFile m_metafile; - - wxDECLARE_NO_COPY_CLASS(wxEnhMetaFileDataObject); -}; - - -// ---------------------------------------------------------------------------- -// wxEnhMetaFileSimpleDataObject does derive from wxDataObjectSimple which -// makes it more convenient to use (it can be used with wxDataObjectComposite) -// at the price of not supoprting any more CF_METAFILEPICT but only -// CF_ENHMETAFILE -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxEnhMetaFileSimpleDataObject : public wxDataObjectSimple -{ -public: - // ctors - wxEnhMetaFileSimpleDataObject() : wxDataObjectSimple(wxDF_ENHMETAFILE) { } - wxEnhMetaFileSimpleDataObject(const wxEnhMetaFile& metafile) - : wxDataObjectSimple(wxDF_ENHMETAFILE), m_metafile(metafile) { } - - // virtual functions which you may override if you want to provide data on - // demand only - otherwise, the trivial default versions will be used - virtual void SetEnhMetafile(const wxEnhMetaFile& metafile) - { m_metafile = metafile; } - virtual wxEnhMetaFile GetEnhMetafile() const - { return m_metafile; } - - // implement base class pure virtuals - virtual size_t GetDataSize() const; - virtual bool GetDataHere(void *buf) const; - virtual bool SetData(size_t len, const void *buf); - - virtual size_t GetDataSize(const wxDataFormat& WXUNUSED(format)) const - { return GetDataSize(); } - virtual bool GetDataHere(const wxDataFormat& WXUNUSED(format), - void *buf) const - { return GetDataHere(buf); } - virtual bool SetData(const wxDataFormat& WXUNUSED(format), - size_t len, const void *buf) - { return SetData(len, buf); } - -protected: - wxEnhMetaFile m_metafile; - - wxDECLARE_NO_COPY_CLASS(wxEnhMetaFileSimpleDataObject); -}; - -#endif // wxUSE_DRAG_AND_DROP - -#endif // _WX_MSW_ENHMETA_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/evtloop.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/evtloop.h deleted file mode 100644 index be8f5977..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/evtloop.h +++ /dev/null @@ -1,73 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/evtloop.h -// Purpose: wxEventLoop class for wxMSW port -// Author: Vadim Zeitlin -// Modified by: -// Created: 2004-07-31 -// Copyright: (c) 2003-2004 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_EVTLOOP_H_ -#define _WX_MSW_EVTLOOP_H_ - -#include "wx/dynarray.h" -#include "wx/msw/wrapwin.h" -#include "wx/window.h" -#include "wx/msw/evtloopconsole.h" // for wxMSWEventLoopBase - -// ---------------------------------------------------------------------------- -// wxEventLoop -// ---------------------------------------------------------------------------- - -WX_DECLARE_EXPORTED_OBJARRAY(MSG, wxMSGArray); - -class WXDLLIMPEXP_CORE wxGUIEventLoop : public wxMSWEventLoopBase -{ -public: - wxGUIEventLoop() { } - - // process a single message: calls PreProcessMessage() before dispatching - // it - virtual void ProcessMessage(WXMSG *msg); - - // preprocess a message, return true if processed (i.e. no further - // dispatching required) - virtual bool PreProcessMessage(WXMSG *msg); - - // set the critical window: this is the window such that all the events - // except those to this window (and its children) stop to be processed - // (typical examples: assert or crash report dialog) - // - // calling this function with NULL argument restores the normal event - // handling - static void SetCriticalWindow(wxWindowMSW *win) { ms_winCritical = win; } - - // return true if there is no critical window or if this window is [a child - // of] the critical one - static bool AllowProcessing(wxWindowMSW *win) - { - return !ms_winCritical || IsChildOfCriticalWindow(win); - } - - // override/implement base class virtuals - virtual bool Dispatch(); - virtual int DispatchTimeout(unsigned long timeout); - -protected: - virtual void OnNextIteration(); - virtual void DoYieldFor(long eventsToProcess); - -private: - // check if the given window is a child of ms_winCritical (which must be - // non NULL) - static bool IsChildOfCriticalWindow(wxWindowMSW *win); - - // array of messages used for temporary storage by YieldFor() - wxMSGArray m_arrMSG; - - // critical window or NULL - static wxWindowMSW *ms_winCritical; -}; - -#endif // _WX_MSW_EVTLOOP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/evtloopconsole.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/evtloopconsole.h deleted file mode 100644 index a4eb6d54..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/evtloopconsole.h +++ /dev/null @@ -1,68 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/evtloopconsole.h -// Purpose: wxConsoleEventLoop class for Windows -// Author: Vadim Zeitlin -// Modified by: -// Created: 2004-07-31 -// Copyright: (c) 2003-2004 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_EVTLOOPCONSOLE_H_ -#define _WX_MSW_EVTLOOPCONSOLE_H_ - -class WXDLLIMPEXP_BASE wxMSWEventLoopBase : public wxEventLoopManual -{ -public: - wxMSWEventLoopBase(); - virtual ~wxMSWEventLoopBase(); - - // implement base class pure virtuals - virtual bool Pending() const; - virtual void WakeUp(); - -#if wxUSE_THREADS - // MSW-specific method to wait for the termination of the specified (by its - // native handle) thread or any input message arriving (in GUI case). - // - // Return value is WAIT_OBJECT_0 if the thread terminated, WAIT_OBJECT_0+1 - // if a message arrived with anything else indicating an error. - WXDWORD MSWWaitForThread(WXHANDLE hThread); -#endif // wxUSE_THREADS - -protected: - // get the next message from queue and return true or return false if we - // got WM_QUIT or an error occurred - bool GetNextMessage(WXMSG *msg); - - // same as above but with a timeout and return value can be -1 meaning that - // time out expired in addition to true/false - int GetNextMessageTimeout(WXMSG *msg, unsigned long timeout); - -private: - // An auto-reset Win32 event which is signalled when we need to wake up the - // main thread waiting in GetNextMessage[Timeout](). - WXHANDLE m_heventWake; -}; - -#if wxUSE_CONSOLE_EVENTLOOP - -class WXDLLIMPEXP_BASE wxConsoleEventLoop : public wxMSWEventLoopBase -{ -public: - wxConsoleEventLoop() { } - - // override/implement base class virtuals - virtual bool Dispatch(); - virtual int DispatchTimeout(unsigned long timeout); - - // Windows-specific function to process a single message - virtual void ProcessMessage(WXMSG *msg); - -protected: - virtual void DoYieldFor(long eventsToProcess); -}; - -#endif // wxUSE_CONSOLE_EVENTLOOP - -#endif // _WX_MSW_EVTLOOPCONSOLE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/fdrepdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/fdrepdlg.h deleted file mode 100644 index ac7ba488..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/fdrepdlg.h +++ /dev/null @@ -1,61 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/fdrepdlg.h -// Purpose: wxFindReplaceDialog class -// Author: Markus Greither -// Modified by: 31.07.01: VZ: integrated into wxWidgets -// Created: 23/03/2001 -// Copyright: (c) Markus Greither -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_FDREPDLG_H_ -#define _WX_MSW_FDREPDLG_H_ - -// ---------------------------------------------------------------------------- -// wxFindReplaceDialog: dialog for searching / replacing text -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFindReplaceDialog : public wxFindReplaceDialogBase -{ -public: - // ctors and such - wxFindReplaceDialog() { Init(); } - wxFindReplaceDialog(wxWindow *parent, - wxFindReplaceData *data, - const wxString &title, - int style = 0); - - bool Create(wxWindow *parent, - wxFindReplaceData *data, - const wxString &title, - int style = 0); - - virtual ~wxFindReplaceDialog(); - - // implementation only from now on - - wxFindReplaceDialogImpl *GetImpl() const { return m_impl; } - - // override some base class virtuals - virtual bool Show(bool show = true); - virtual void SetTitle( const wxString& title); - virtual wxString GetTitle() const; - -protected: - virtual void DoGetSize(int *width, int *height) const; - virtual void DoGetClientSize(int *width, int *height) const; - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - - void Init(); - - wxString m_title; - - wxFindReplaceDialogImpl *m_impl; - - wxDECLARE_DYNAMIC_CLASS(wxFindReplaceDialog); - wxDECLARE_NO_COPY_CLASS(wxFindReplaceDialog); -}; - -#endif // _WX_MSW_FDREPDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/file1.ico b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/file1.ico deleted file mode 100644 index f0a80d32..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/file1.ico and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/filedlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/filedlg.h deleted file mode 100644 index c3259f7f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/filedlg.h +++ /dev/null @@ -1,67 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/filedlg.h -// Purpose: wxFileDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILEDLG_H_ -#define _WX_FILEDLG_H_ - -//------------------------------------------------------------------------- -// wxFileDialog -//------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFileDialog: public wxFileDialogBase -{ -public: - wxFileDialog(wxWindow *parent, - const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = wxEmptyString, - const wxString& defaultFile = wxEmptyString, - const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = wxFD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize, - const wxString& name = wxFileDialogNameStr); - - virtual void GetPaths(wxArrayString& paths) const; - virtual void GetFilenames(wxArrayString& files) const; - virtual bool SupportsExtraControl() const { return true; } - void MSWOnInitDialogHook(WXHWND hwnd); - - virtual int ShowModal(); - - // wxMSW-specific implementation from now on - // ----------------------------------------- - - // called from the hook procedure on CDN_INITDONE reception - virtual void MSWOnInitDone(WXHWND hDlg); - - // called from the hook procedure on CDN_SELCHANGE. - void MSWOnSelChange(WXHWND hDlg); - -protected: - - virtual void DoMoveWindow(int x, int y, int width, int height); - virtual void DoCentre(int dir); - virtual void DoGetSize( int *width, int *height ) const; - virtual void DoGetPosition( int *x, int *y ) const; - -private: - wxArrayString m_fileNames; - - // remember if our SetPosition() or Centre() (which requires special - // treatment) was called - bool m_bMovedWindow; - int m_centreDir; // nothing to do if 0 - - wxDECLARE_DYNAMIC_CLASS(wxFileDialog); - wxDECLARE_NO_COPY_CLASS(wxFileDialog); -}; - -#endif // _WX_FILEDLG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/floppy.ico b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/floppy.ico deleted file mode 100644 index 4453a751..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/floppy.ico and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/folder1.ico b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/folder1.ico deleted file mode 100644 index 2994019d..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/folder1.ico and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/folder2.ico b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/folder2.ico deleted file mode 100644 index 9a595b9f..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/folder2.ico and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/font.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/font.h deleted file mode 100644 index e46a62ca..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/font.h +++ /dev/null @@ -1,172 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/font.h -// Purpose: wxFont class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONT_H_ -#define _WX_FONT_H_ - -#include "wx/gdicmn.h" - -// ---------------------------------------------------------------------------- -// wxFont -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFont : public wxFontBase -{ -public: - // ctors and such - wxFont() { } - - wxFont(const wxFontInfo& info); - - wxFont(int size, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT) - { - Create(size, family, style, weight, underlined, face, encoding); - } - - bool Create(int size, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT) - { - return DoCreate(size, wxDefaultSize, false, family, style, - weight, underlined, face, encoding); - } - - wxFont(const wxSize& pixelSize, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT) - { - (void)Create(pixelSize, family, style, weight, - underlined, face, encoding); - } - - wxFont(const wxNativeFontInfo& info, WXHFONT hFont = 0) - { - Create(info, hFont); - } - - wxFont(const wxString& fontDesc); - - - bool Create(const wxSize& pixelSize, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT) - { - return DoCreate(-1, pixelSize, true, family, style, - weight, underlined, face, encoding); - } - - bool Create(const wxNativeFontInfo& info, WXHFONT hFont = 0); - - virtual ~wxFont(); - - // implement base class pure virtuals - virtual int GetPointSize() const; - virtual wxSize GetPixelSize() const; - virtual bool IsUsingSizeInPixels() const; - virtual wxFontStyle GetStyle() const; - virtual wxFontWeight GetWeight() const; - virtual bool GetUnderlined() const; - virtual bool GetStrikethrough() const; - virtual wxString GetFaceName() const; - virtual wxFontEncoding GetEncoding() const; - virtual const wxNativeFontInfo *GetNativeFontInfo() const; - - virtual void SetPointSize(int pointSize); - virtual void SetPixelSize(const wxSize& pixelSize); - virtual void SetFamily(wxFontFamily family); - virtual void SetStyle(wxFontStyle style); - virtual void SetWeight(wxFontWeight weight); - virtual bool SetFaceName(const wxString& faceName); - virtual void SetUnderlined(bool underlined); - virtual void SetStrikethrough(bool strikethrough); - virtual void SetEncoding(wxFontEncoding encoding); - - wxDECLARE_COMMON_FONT_METHODS(); - - virtual bool IsFixedWidth() const; - - wxDEPRECATED_MSG("use wxFONT{FAMILY,STYLE,WEIGHT}_XXX constants ie: wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD") - wxFont(int size, - int family, - int style, - int weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT) - { - (void)Create(size, (wxFontFamily)family, (wxFontStyle)style, (wxFontWeight)weight, underlined, face, encoding); - } - - wxDEPRECATED_MSG("use wxFONT{FAMILY,STYLE,WEIGHT}_XXX constants ie: wxFONTFAMILY_SWISS, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD") - wxFont(const wxSize& pixelSize, - int family, - int style, - int weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT) - { - (void)Create(pixelSize, (wxFontFamily)family, (wxFontStyle)style, (wxFontWeight)weight, - underlined, face, encoding); - } - - // implementation only from now on - // ------------------------------- - - virtual bool IsFree() const; - virtual bool RealizeResource(); - virtual WXHANDLE GetResourceHandle() const; - virtual bool FreeResource(bool force = false); - - // for consistency with other wxMSW classes - WXHFONT GetHFONT() const; - -protected: - // real font creation function, used in all cases - bool DoCreate(int size, - const wxSize& pixelSize, - bool sizeUsingPixels, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); - - virtual void DoSetNativeFontInfo(const wxNativeFontInfo& info); - virtual wxFontFamily DoGetFamily() const; - - // implement wxObject virtuals which are used by AllocExclusive() - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - -private: - wxDECLARE_DYNAMIC_CLASS(wxFont); -}; - -#endif // _WX_FONT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/fontdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/fontdlg.h deleted file mode 100644 index 9e5d1f66..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/fontdlg.h +++ /dev/null @@ -1,34 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/fontdlg.h -// Purpose: wxFontDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_FONTDLG_H_ -#define _WX_MSW_FONTDLG_H_ - -// ---------------------------------------------------------------------------- -// wxFontDialog -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFontDialog : public wxFontDialogBase -{ -public: - wxFontDialog() : wxFontDialogBase() { /* must be Create()d later */ } - wxFontDialog(wxWindow *parent) - : wxFontDialogBase(parent) { Create(parent); } - wxFontDialog(wxWindow *parent, const wxFontData& data) - : wxFontDialogBase(parent, data) { Create(parent, data); } - - virtual int ShowModal(); - -protected: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxFontDialog); -}; - -#endif - // _WX_MSW_FONTDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/frame.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/frame.h deleted file mode 100644 index 6cc4ae12..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/frame.h +++ /dev/null @@ -1,191 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/frame.h -// Purpose: wxFrame class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FRAME_H_ -#define _WX_FRAME_H_ - -#if wxUSE_TASKBARBUTTON -class WXDLLIMPEXP_FWD_CORE wxTaskBarButton; -#endif - -class WXDLLIMPEXP_CORE wxFrame : public wxFrameBase -{ -public: - // construction - wxFrame() { Init(); } - wxFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Init(); - - Create(parent, id, title, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - virtual ~wxFrame(); - - // implement base class pure virtuals - virtual bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL); - - // implementation only from now on - // ------------------------------- - - // event handlers - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // Toolbar -#if wxUSE_TOOLBAR - virtual wxToolBar* CreateToolBar(long style = -1, - wxWindowID id = wxID_ANY, - const wxString& name = wxToolBarNameStr); -#endif // wxUSE_TOOLBAR - - // Status bar -#if wxUSE_STATUSBAR - virtual wxStatusBar* OnCreateStatusBar(int number = 1, - long style = wxSTB_DEFAULT_STYLE, - wxWindowID id = 0, - const wxString& name = wxStatusLineNameStr); - - // Hint to tell framework which status bar to use: the default is to use - // native one for the platforms which support it (Win32), the generic one - // otherwise - - // TODO: should this go into a wxFrameworkSettings class perhaps? - static void UseNativeStatusBar(bool useNative) - { m_useNativeStatusBar = useNative; } - static bool UsesNativeStatusBar() - { return m_useNativeStatusBar; } -#endif // wxUSE_STATUSBAR - - // event handlers - bool HandleSize(int x, int y, WXUINT flag); - bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control); - - // tooltip management -#if wxUSE_TOOLTIPS - WXHWND GetToolTipCtrl() const { return m_hwndToolTip; } - void SetToolTipCtrl(WXHWND hwndTT) { m_hwndToolTip = hwndTT; } -#endif // tooltips - - // override the base class function to handle iconized/maximized frames - virtual void SendSizeEvent(int flags = 0); - - virtual wxPoint GetClientAreaOrigin() const; - - // override base class version to add menu bar accel processing - virtual bool MSWTranslateMessage(WXMSG *msg) - { - return MSWDoTranslateMessage(this, msg); - } - - // window proc for the frames - virtual WXLRESULT MSWWindowProc(WXUINT message, - WXWPARAM wParam, - WXLPARAM lParam); - -#if wxUSE_MENUS - // get the currently active menu: this is the same as the frame menu for - // normal frames but is overridden by wxMDIParentFrame - virtual WXHMENU MSWGetActiveMenu() const { return m_hMenu; } - - virtual bool HandleMenuSelect(WXWORD nItem, WXWORD nFlags, WXHMENU hMenu); - virtual bool DoSendMenuOpenCloseEvent(wxEventType evtType, wxMenu* menu); - - // Look up the menu in the menu bar. - virtual wxMenu* MSWFindMenuFromHMENU(WXHMENU hMenu); -#endif // wxUSE_MENUS - -#if wxUSE_TASKBARBUTTON - // Return the taskbar button of the window. - // - // The pointer returned by this method belongs to the window and will be - // deleted when the window itself is, do not delete it yourself. May return - // NULL if the initialization of taskbar button failed. - wxTaskBarButton* MSWGetTaskBarButton(); -#endif // wxUSE_TASKBARBUTTON - -protected: - // common part of all ctors - void Init(); - - // override base class virtuals - virtual void DoGetClientSize(int *width, int *height) const; - virtual void DoSetClientSize(int width, int height); - -#if wxUSE_MENUS_NATIVE - // perform MSW-specific action when menubar is changed - virtual void AttachMenuBar(wxMenuBar *menubar); - - // a plug in for MDI frame classes which need to do something special when - // the menubar is set - virtual void InternalSetMenuBar(); -#endif // wxUSE_MENUS_NATIVE - - // propagate our state change to all child frames - void IconizeChildFrames(bool bIconize); - - // the real implementation of MSWTranslateMessage(), also used by - // wxMDIChildFrame - bool MSWDoTranslateMessage(wxFrame *frame, WXMSG *msg); - - virtual bool IsMDIChild() const { return false; } - - // get default (wxWidgets) icon for the frame - virtual WXHICON GetDefaultIcon() const; - -#if wxUSE_TOOLBAR - virtual void PositionToolBar(); -#endif // wxUSE_TOOLBAR - -#if wxUSE_STATUSBAR - virtual void PositionStatusBar(); - - static bool m_useNativeStatusBar; -#endif // wxUSE_STATUSBAR - -#if wxUSE_MENUS - // frame menu, NULL if none - WXHMENU m_hMenu; - - // The number of currently opened menus: 0 initially, 1 when a top level - // menu is opened, 2 when its submenu is opened and so on. - int m_menuDepth; -#endif // wxUSE_MENUS - -private: -#if wxUSE_TOOLTIPS - WXHWND m_hwndToolTip; -#endif // tooltips - - // used by IconizeChildFrames(), see comments there - bool m_wasMinimized; - -#if wxUSE_TASKBARBUTTON - wxTaskBarButton* m_taskBarButton; -#endif - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxFrame); -}; - -#endif - // _WX_FRAME_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/fswatcher.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/fswatcher.h deleted file mode 100644 index b73ee661..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/fswatcher.h +++ /dev/null @@ -1,37 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/fswatcher.h -// Purpose: wxMSWFileSystemWatcher -// Author: Bartosz Bekier -// Created: 2009-05-26 -// Copyright: (c) 2009 Bartosz Bekier <bartosz.bekier@gmail.com> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FSWATCHER_MSW_H_ -#define _WX_FSWATCHER_MSW_H_ - -#include "wx/defs.h" - -#if wxUSE_FSWATCHER - -class WXDLLIMPEXP_BASE wxMSWFileSystemWatcher : public wxFileSystemWatcherBase -{ -public: - wxMSWFileSystemWatcher(); - - wxMSWFileSystemWatcher(const wxFileName& path, - int events = wxFSW_EVENT_ALL); - - // Override the base class function to provide a much more efficient - // implementation for it using the platform native support for watching the - // entire directory trees. - virtual bool AddTree(const wxFileName& path, int events = wxFSW_EVENT_ALL, - const wxString& filter = wxEmptyString); - -protected: - bool Init(); -}; - -#endif // wxUSE_FSWATCHER - -#endif /* _WX_FSWATCHER_MSW_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/gauge.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/gauge.h deleted file mode 100644 index 4f54f34e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/gauge.h +++ /dev/null @@ -1,79 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/gauge.h -// Purpose: wxGauge implementation for MSW -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_GAUGE_H_ -#define _WX_MSW_GAUGE_H_ - -#if wxUSE_GAUGE - -extern WXDLLIMPEXP_DATA_CORE(const char) wxGaugeNameStr[]; - -// Group box -class WXDLLIMPEXP_CORE wxGauge : public wxGaugeBase -{ -public: - wxGauge() { } - - wxGauge(wxWindow *parent, - wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr) - { - (void)Create(parent, id, range, pos, size, style, validator, name); - } - - virtual ~wxGauge(); - - bool Create(wxWindow *parent, - wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr); - - // set gauge range/value - virtual void SetRange(int range); - virtual void SetValue(int pos); - - // overridden base class virtuals - virtual bool SetForegroundColour(const wxColour& col); - virtual bool SetBackgroundColour(const wxColour& col); - - virtual void Pulse(); - - WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - -protected: - virtual wxSize DoGetBestSize() const; - -private: - // returns true if the control is currently in indeterminate (a.k.a. - // "marquee") mode - bool IsInIndeterminateMode() const; - - // switch to/from indeterminate mode - void SetIndeterminateMode(); - void SetDeterminateMode(); - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxGauge); -}; - -#endif // wxUSE_GAUGE - -#endif // _WX_MSW_GAUGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/gccpriv.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/gccpriv.h deleted file mode 100644 index b12efa9b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/gccpriv.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - Name: wx/msw/gccpriv.h - Purpose: MinGW/Cygwin definitions - Author: Vadim Zeitlin - Modified by: - Created: - Copyright: (c) Vadim Zeitlin - Licence: wxWindows Licence -*/ - -/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ - -#ifndef _WX_MSW_GCCPRIV_H_ -#define _WX_MSW_GCCPRIV_H_ - -#if defined(__MINGW32__) && !defined(__GNUWIN32__) - #define __GNUWIN32__ -#endif - -#if defined(__MINGW32__) - /* - Include the header defining __MINGW32_{MAJ,MIN}OR_VERSION but check - that UNICODE or _UNICODE is already defined, as _mingw.h relies on them - being set and we'd get weird compilation errors later if it is included - without them being defined, better give a clearer error right now. - */ - #if !defined(UNICODE) - #ifndef wxUSE_UNICODE - #error "wxUSE_UNICODE must be defined before including this header." - #endif - #if wxUSE_UNICODE - #error "UNICODE must be defined before including this header." - #endif - #endif - - #include <_mingw.h> - - /* - MinGW-w64 project provides compilers for both Win32 and Win64 but only - defines the same __MINGW32__ symbol for the former as MinGW32 toolchain - which is quite different (notably doesn't provide many SDK headers that - MinGW-w64 does include). So we define a separate symbol which, unlike - the predefined __MINGW64__, can be used to detect this toolchain in - both 32 and 64 bit builds. - - And define __MINGW32_TOOLCHAIN__ for consistency and also because it's - convenient as we often want to have some workarounds only for the (old) - MinGW32 but not (newer) MinGW-w64, which still predefines __MINGW32__. - */ - #ifdef __MINGW64_VERSION_MAJOR - #ifndef __MINGW64_TOOLCHAIN__ - #define __MINGW64_TOOLCHAIN__ - #endif - #else - #ifndef __MINGW32_TOOLCHAIN__ - #define __MINGW32_TOOLCHAIN__ - #endif - #endif - - #define wxCHECK_MINGW32_VERSION( major, minor ) \ - ( ( ( __MINGW32_MAJOR_VERSION > (major) ) \ - || ( __MINGW32_MAJOR_VERSION == (major) && __MINGW32_MINOR_VERSION >= (minor) ) ) ) -#else - #define wxCHECK_MINGW32_VERSION( major, minor ) (0) -#endif - -#if defined( __MINGW32__ ) && !defined(__WINE__) && !defined( HAVE_W32API_H ) - #if __MINGW32_MAJOR_VERSION >= 1 - #define HAVE_W32API_H - #endif -#elif defined( __CYGWIN__ ) && !defined( HAVE_W32API_H ) - #if ( __GNUC__ > 2 ) - #define HAVE_W32API_H - #endif -#endif - -/* check for MinGW/Cygwin w32api version ( releases >= 0.5, only ) */ -#if defined( HAVE_W32API_H ) -#include <w32api.h> -#endif - -#if defined(__W32API_MAJOR_VERSION) && defined(__W32API_MINOR_VERSION) - #define wxCHECK_W32API_VERSION( major, minor ) \ - ( ( ( __W32API_MAJOR_VERSION > (major) ) \ - || ( __W32API_MAJOR_VERSION == (major) && __W32API_MINOR_VERSION >= (minor) ) ) ) -#else - #define wxCHECK_W32API_VERSION( major, minor ) (0) -#endif - -/* Cygwin 1.0 */ -#if defined(__CYGWIN__) && ((__GNUC__==2) && (__GNUC_MINOR__==9)) - #define __CYGWIN10__ -#endif - -/* Mingw runtime 1.0-20010604 has some missing _tXXXX functions, - so let's define them ourselves: */ -#if defined(__GNUWIN32__) && wxCHECK_W32API_VERSION( 1, 0 ) \ - && !wxCHECK_W32API_VERSION( 1, 1 ) - #ifndef _tsetlocale - #if wxUSE_UNICODE - #define _tsetlocale _wsetlocale - #else - #define _tsetlocale setlocale - #endif - #endif - #ifndef _tgetenv - #if wxUSE_UNICODE - #define _tgetenv _wgetenv - #else - #define _tgetenv getenv - #endif - #endif - #ifndef _tfopen - #if wxUSE_UNICODE - #define _tfopen _wfopen - #else - #define _tfopen fopen - #endif - #endif -#endif - -/* current (= before mingw-runtime 3.3) mingw32 headers forget to - define _puttchar, this will probably be fixed in the next versions but - for now do it ourselves - */ -#if defined( __MINGW32__ ) && \ - !wxCHECK_MINGW32_VERSION(3,3) && !defined( _puttchar ) - #ifdef wxUSE_UNICODE - #define _puttchar putwchar - #else - #define _puttchar puttchar - #endif -#endif - -/* - Traditional MinGW (but not MinGW-w64 nor TDM-GCC) omits many POSIX - functions from their headers when compiled with __STRICT_ANSI__ defined. - Unfortunately this means that they are not available when using -std=c++98 - (not very common) or -std=c++11 (much more so), but we still need them even - in this case. As the intention behind using -std=c++11 is probably to get - the new C++11 features and not disable the use of POSIX functions, we just - manually declare the functions we need in this case if necessary. - */ -#if defined(__MINGW32_TOOLCHAIN__) && defined(__STRICT_ANSI__) - #define wxNEEDS_STRICT_ANSI_WORKAROUNDS - - /* - This macro is somewhat unusual as it takes the list of parameters - inside parentheses and includes semicolon inside it as putting the - semicolon outside wouldn't do the right thing when this macro is empty. - */ - #define wxDECL_FOR_STRICT_MINGW32(rettype, func, params) \ - extern "C" _CRTIMP rettype __cdecl __MINGW_NOTHROW func params ; - - /* - There is a bug resulting in a compilation error in MinGW standard - math.h header, see https://sourceforge.net/p/mingw/bugs/2250/, work - around it here because math.h is also included from several other - standard headers (e.g. <algorithm>) and we don't want to duplicate this - hack everywhere this happens. - */ - wxDECL_FOR_STRICT_MINGW32(double, _hypot, (double, double)) -#else - #define wxDECL_FOR_STRICT_MINGW32(rettype, func, params) -#endif - -#endif - /* _WX_MSW_GCCPRIV_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/gdiimage.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/gdiimage.h deleted file mode 100644 index 18ebbb8f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/gdiimage.h +++ /dev/null @@ -1,197 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/gdiimage.h -// Purpose: wxGDIImage class: base class for wxBitmap, wxIcon, wxCursor -// under MSW -// Author: Vadim Zeitlin -// Modified by: -// Created: 20.11.99 -// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// NB: this is a private header, it is not intended to be directly included by -// user code (but may be included from other, public, wxWin headers - -#ifndef _WX_MSW_GDIIMAGE_H_ -#define _WX_MSW_GDIIMAGE_H_ - -#include "wx/gdiobj.h" // base class -#include "wx/gdicmn.h" // wxBITMAP_TYPE_INVALID -#include "wx/list.h" - -class WXDLLIMPEXP_FWD_CORE wxGDIImageRefData; -class WXDLLIMPEXP_FWD_CORE wxGDIImageHandler; -class WXDLLIMPEXP_FWD_CORE wxGDIImage; - -WX_DECLARE_EXPORTED_LIST(wxGDIImageHandler, wxGDIImageHandlerList); - -// ---------------------------------------------------------------------------- -// wxGDIImageRefData: common data fields for all derived classes -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGDIImageRefData : public wxGDIRefData -{ -public: - wxGDIImageRefData() - { - m_width = m_height = m_depth = 0; - - m_handle = 0; - } - - wxGDIImageRefData(const wxGDIImageRefData& data) : wxGDIRefData() - { - m_width = data.m_width; - m_height = data.m_height; - m_depth = data.m_depth; - - // can't copy handles like this, derived class copy ctor must do it! - m_handle = NULL; - } - - // accessors - virtual bool IsOk() const { return m_handle != 0; } - - void SetSize(int w, int h) { m_width = w; m_height = h; } - - // free the resources we allocated - virtual void Free() = 0; - - // for compatibility, the member fields are public - - // the size of the image - int m_width, m_height; - - // the depth of the image - int m_depth; - - // the handle to it - union - { - WXHANDLE m_handle; // for untyped access - WXHBITMAP m_hBitmap; - WXHICON m_hIcon; - WXHCURSOR m_hCursor; - }; -}; - -// ---------------------------------------------------------------------------- -// wxGDIImage: this class supports GDI image handlers which may be registered -// dynamically and will be used for loading/saving the images in the specified -// format. It also falls back to wxImage if no appropriate image is found. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGDIImage : public wxGDIObject -{ -public: - // handlers list interface - static wxGDIImageHandlerList& GetHandlers() { return ms_handlers; } - - static void AddHandler(wxGDIImageHandler *handler); - static void InsertHandler(wxGDIImageHandler *handler); - static bool RemoveHandler(const wxString& name); - - static wxGDIImageHandler *FindHandler(const wxString& name); - static wxGDIImageHandler *FindHandler(const wxString& extension, long type); - static wxGDIImageHandler *FindHandler(long type); - - static void InitStandardHandlers(); - static void CleanUpHandlers(); - - // access to the ref data casted to the right type - wxGDIImageRefData *GetGDIImageData() const - { return (wxGDIImageRefData *)m_refData; } - - // accessors - WXHANDLE GetHandle() const - { return IsNull() ? 0 : GetGDIImageData()->m_handle; } - void SetHandle(WXHANDLE handle) - { AllocExclusive(); GetGDIImageData()->m_handle = handle; } - - int GetWidth() const { return IsNull() ? 0 : GetGDIImageData()->m_width; } - int GetHeight() const { return IsNull() ? 0 : GetGDIImageData()->m_height; } - int GetDepth() const { return IsNull() ? 0 : GetGDIImageData()->m_depth; } - - wxSize GetSize() const - { - return IsNull() ? wxSize(0,0) : - wxSize(GetGDIImageData()->m_width, GetGDIImageData()->m_height); - } - - void SetWidth(int w) { AllocExclusive(); GetGDIImageData()->m_width = w; } - void SetHeight(int h) { AllocExclusive(); GetGDIImageData()->m_height = h; } - void SetDepth(int d) { AllocExclusive(); GetGDIImageData()->m_depth = d; } - - void SetSize(int w, int h) - { - AllocExclusive(); - GetGDIImageData()->SetSize(w, h); - } - void SetSize(const wxSize& size) { SetSize(size.x, size.y); } - - // forward some of base class virtuals to wxGDIImageRefData - bool FreeResource(bool force = false); - virtual WXHANDLE GetResourceHandle() const; - -protected: - // create the data for the derived class here - virtual wxGDIImageRefData *CreateData() const = 0; - - // implement the wxGDIObject method in terms of our, more specific, one - virtual wxGDIRefData *CreateGDIRefData() const { return CreateData(); } - - // we can't [efficiently] clone objects of this class - virtual wxGDIRefData * - CloneGDIRefData(const wxGDIRefData *WXUNUSED(data)) const - { - wxFAIL_MSG( wxT("must be implemented if used") ); - - return NULL; - } - - static wxGDIImageHandlerList ms_handlers; -}; - -// ---------------------------------------------------------------------------- -// wxGDIImageHandler: a class which knows how to load/save wxGDIImages. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGDIImageHandler : public wxObject -{ -public: - // ctor - wxGDIImageHandler() { m_type = wxBITMAP_TYPE_INVALID; } - wxGDIImageHandler(const wxString& name, - const wxString& ext, - wxBitmapType type) - : m_name(name), m_extension(ext), m_type(type) { } - - // accessors - void SetName(const wxString& name) { m_name = name; } - void SetExtension(const wxString& ext) { m_extension = ext; } - void SetType(wxBitmapType type) { m_type = type; } - - const wxString& GetName() const { return m_name; } - const wxString& GetExtension() const { return m_extension; } - wxBitmapType GetType() const { return m_type; } - - // real handler operations: to implement in derived classes - virtual bool Create(wxGDIImage *image, - const void* data, - wxBitmapType flags, - int width, int height, int depth = 1) = 0; - virtual bool Load(wxGDIImage *image, - const wxString& name, - wxBitmapType flags, - int desiredWidth, int desiredHeight) = 0; - virtual bool Save(const wxGDIImage *image, - const wxString& name, - wxBitmapType type) const = 0; - -protected: - wxString m_name; - wxString m_extension; - wxBitmapType m_type; -}; - -#endif // _WX_MSW_GDIIMAGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/genrcdefs.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/genrcdefs.h deleted file mode 100644 index 809419b3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/genrcdefs.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Name: wx/msw/genrcdefs.h - * Purpose: Emit preprocessor symbols into rcdefs.h for resource compiler - * Author: Mike Wetherell - * Copyright: (c) 2005 Mike Wetherell - * Licence: wxWindows licence - */ - -#define EMIT(line) line - -EMIT(#ifndef _WX_RCDEFS_H) -EMIT(#define _WX_RCDEFS_H) - -#ifdef _MSC_FULL_VER -#if _MSC_FULL_VER < 140040130 -EMIT(#define wxUSE_RC_MANIFEST 1) -#endif -#else -EMIT(#define wxUSE_RC_MANIFEST 1) -#endif - -#if defined _M_AMD64 || defined __x86_64__ -EMIT(#define WX_CPU_AMD64) -#endif - -#ifdef _M_ARM -EMIT(#define WX_CPU_ARM) -#endif - -#if defined _M_IA64 || defined __ia64__ -EMIT(#define WX_CPU_IA64) -#endif - -#if defined _M_IX86 || defined _X86_ -EMIT(#define WX_CPU_X86) -#endif - -#ifdef _M_PPC -EMIT(#define WX_CPU_PPC) -#endif - -#ifdef _M_SH -EMIT(#define WX_CPU_SH) -#endif - -EMIT(#endif) diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/glcanvas.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/glcanvas.h deleted file mode 100644 index fdcdd1fa..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/glcanvas.h +++ /dev/null @@ -1,182 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/glcanvas.h -// Purpose: wxGLCanvas, for using OpenGL with wxWidgets under Windows -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GLCANVAS_H_ -#define _WX_GLCANVAS_H_ - -#include "wx/palette.h" - -#include "wx/msw/wrapwin.h" - -#include <GL/gl.h> - -// ---------------------------------------------------------------------------- -// wxGLContext: OpenGL rendering context -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_GL wxGLContext : public wxGLContextBase -{ -public: - wxGLContext(wxGLCanvas *win, - const wxGLContext *other = NULL, - const wxGLContextAttrs *ctxAttrs = NULL); - virtual ~wxGLContext(); - - virtual bool SetCurrent(const wxGLCanvas& win) const; - - HGLRC GetGLRC() const { return m_glContext; } - -protected: - HGLRC m_glContext; - -private: - wxDECLARE_CLASS(wxGLContext); -}; - -// ---------------------------------------------------------------------------- -// wxGLCanvas: OpenGL output window -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_GL wxGLCanvas : public wxGLCanvasBase -{ -public: - wxEXPLICIT // avoid implicitly converting a wxWindow* to wxGLCanvas - wxGLCanvas(wxWindow *parent, - const wxGLAttributes& dispAttrs, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const wxPalette& palette = wxNullPalette); - - wxEXPLICIT - wxGLCanvas(wxWindow *parent, - wxWindowID id = wxID_ANY, - const int *attribList = NULL, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const wxPalette& palette = wxNullPalette); - - bool Create(wxWindow *parent, - const wxGLAttributes& dispAttrs, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const wxPalette& palette = wxNullPalette); - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const int *attribList = NULL, - const wxPalette& palette = wxNullPalette); - - virtual ~wxGLCanvas(); - - // implement wxGLCanvasBase methods - virtual bool SwapBuffers(); - - - // MSW-specific helpers - // -------------------- - - // get the HDC used for OpenGL rendering - HDC GetHDC() const { return m_hDC; } - - // Try to find pixel format matching the given attributes list for the - // specified HDC, return 0 on error, otherwise ppfd is filled in with the - // information from dispAttrs - static int FindMatchingPixelFormat(const wxGLAttributes& dispAttrs, - PIXELFORMATDESCRIPTOR* ppfd = NULL); - // Same as FindMatchingPixelFormat - static int ChooseMatchingPixelFormat(HDC hdc, const int *attribList, - PIXELFORMATDESCRIPTOR *pfd = NULL); - -#if wxUSE_PALETTE - // palette stuff - bool SetupPalette(const wxPalette& palette); - virtual wxPalette CreateDefaultPalette(); - void OnQueryNewPalette(wxQueryNewPaletteEvent& event); - void OnPaletteChanged(wxPaletteChangedEvent& event); -#endif // wxUSE_PALETTE - - // deprecated methods using the implicit wxGLContext, associate the context - // explicitly with the window instead -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED( - wxGLCanvas(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const int *attribList = NULL, - const wxPalette& palette = wxNullPalette) - ); - - wxDEPRECATED( - wxGLCanvas(wxWindow *parent, - const wxGLContext *shared, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const int *attribList = NULL, - const wxPalette& palette = wxNullPalette) - ); - - wxDEPRECATED( - wxGLCanvas(wxWindow *parent, - const wxGLCanvas *shared, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const int *attribList = NULL, - const wxPalette& palette = wxNullPalette) - ); -#endif // WXWIN_COMPATIBILITY_2_8 - -protected: - // common part of all ctors - void Init(); - - // the real window creation function, Create() may reuse it twice as we may - // need to create an OpenGL window to query the available extensions and - // then potentially delete and recreate it with another pixel format - bool CreateWindow(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName); - - // set up the pixel format using the given attributes and palette - int DoSetup(PIXELFORMATDESCRIPTOR &pfd, const int *attribList); - - - // HDC for this window, we keep it all the time - HDC m_hDC; - -private: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_CLASS(wxGLCanvas); -}; - -#endif // _WX_GLCANVAS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/hand.cur b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/hand.cur deleted file mode 100644 index e5a1fe7c..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/hand.cur and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/headerctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/headerctrl.h deleted file mode 100644 index db702c5a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/headerctrl.h +++ /dev/null @@ -1,136 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/headerctrl.h -// Purpose: wxMSW native wxHeaderCtrl -// Author: Vadim Zeitlin -// Created: 2008-12-01 -// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_HEADERCTRL_H_ -#define _WX_MSW_HEADERCTRL_H_ - -class WXDLLIMPEXP_FWD_CORE wxImageList; - -// ---------------------------------------------------------------------------- -// wxHeaderCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxHeaderCtrl : public wxHeaderCtrlBase -{ -public: - wxHeaderCtrl() - { - Init(); - } - - wxHeaderCtrl(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHD_DEFAULT_STYLE, - const wxString& name = wxHeaderCtrlNameStr) - { - Init(); - - Create(parent, id, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHD_DEFAULT_STYLE, - const wxString& name = wxHeaderCtrlNameStr); - - virtual ~wxHeaderCtrl(); - - -protected: - // override wxWindow methods which must be implemented by a new control - virtual wxSize DoGetBestSize() const; - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - -private: - // implement base class pure virtuals - virtual void DoSetCount(unsigned int count); - virtual unsigned int DoGetCount() const; - virtual void DoUpdate(unsigned int idx); - - virtual void DoScrollHorz(int dx); - - virtual void DoSetColumnsOrder(const wxArrayInt& order); - virtual wxArrayInt DoGetColumnsOrder() const; - - // override MSW-specific methods needed for new control - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - - // common part of all ctors - void Init(); - - // wrapper around Header_InsertItem(): insert the item using information - // from the given column at the given index - void DoInsertItem(const wxHeaderColumn& col, unsigned int idx); - - // get the number of currently visible items: this is also the total number - // of items contained in the native control - int GetShownColumnsCount() const; - - // due to the discrepancy for the hidden columns which we know about but - // the native control does not, there can be a difference between the - // column indices we use and the ones used by the native control; these - // functions translate between them - // - // notice that MSWToNativeIdx() shouldn't be called for hidden columns and - // MSWFromNativeIdx() always returns an index of a visible column - int MSWToNativeIdx(int idx); - int MSWFromNativeIdx(int item); - - // this is the same as above but for order, not index - int MSWToNativeOrder(int order); - int MSWFromNativeOrder(int order); - - // get the event type corresponding to a click or double click event - // (depending on dblclk value) with the specified (using MSW convention) - // mouse button - wxEventType GetClickEventType(bool dblclk, int button); - - - // the number of columns in the control, including the hidden ones (not - // taken into account by the native control, see comment in DoGetCount()) - unsigned int m_numColumns; - - // this is a lookup table allowing us to check whether the column with the - // given index is currently shown in the native control, in which case the - // value of this array element with this index is 0, or hidden - // - // notice that this may be different from GetColumn(idx).IsHidden() and in - // fact we need this array precisely because it will be different from it - // in DoUpdate() when the column hidden flag gets toggled and we need it to - // handle this transition correctly - wxArrayInt m_isHidden; - - // the order of our columns: this array contains the index of the column - // shown at the position n as the n-th element - // - // this is necessary only to handle the hidden columns: the native control - // doesn't know about them and so we can't use Header_GetOrderArray() - wxArrayInt m_colIndices; - - // the image list: initially NULL, created on demand - wxImageList *m_imageList; - - // the offset of the window used to emulate scrolling it - int m_scrollOffset; - - // actual column we are dragging or -1 if not dragging anything - int m_colBeingDragged; - - wxDECLARE_NO_COPY_CLASS(wxHeaderCtrl); -}; - -#endif // _WX_MSW_HEADERCTRL_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/helpbest.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/helpbest.h deleted file mode 100644 index a6f1b2cb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/helpbest.h +++ /dev/null @@ -1,128 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/helpbest.h -// Purpose: Tries to load MS HTML Help, falls back to wxHTML upon failure -// Author: Mattia Barbon -// Modified by: -// Created: 02/04/2001 -// Copyright: (c) Mattia Barbon -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HELPBEST_H_ -#define _WX_HELPBEST_H_ - -#if wxUSE_HELP && wxUSE_MS_HTML_HELP \ - && wxUSE_WXHTML_HELP && !defined(__WXUNIVERSAL__) - -#include "wx/helpbase.h" -#include "wx/html/helpfrm.h" // for wxHF_DEFAULT_STYLE - -class WXDLLIMPEXP_HTML wxBestHelpController: public wxHelpControllerBase -{ -public: - wxBestHelpController(wxWindow* parentWindow = NULL, - int style = wxHF_DEFAULT_STYLE) - : wxHelpControllerBase(parentWindow), - m_helpControllerType(wxUseNone), - m_helpController(NULL), - m_style(style) - { - } - - virtual ~wxBestHelpController() { delete m_helpController; } - - // Must call this to set the filename - virtual bool Initialize(const wxString& file); - virtual bool Initialize(const wxString& file, int WXUNUSED(server) ) { return Initialize( file ); } - - // If file is "", reloads file given in Initialize - virtual bool LoadFile(const wxString& file = wxEmptyString) - { - return m_helpController->LoadFile( GetValidFilename( file ) ); - } - - virtual bool DisplayContents() - { - return m_helpController->DisplayContents(); - } - - virtual bool DisplaySection(int sectionNo) - { - return m_helpController->DisplaySection( sectionNo ); - } - - virtual bool DisplaySection(const wxString& section) - { - return m_helpController->DisplaySection( section ); - } - - virtual bool DisplayBlock(long blockNo) - { - return m_helpController->DisplayBlock( blockNo ); - } - - virtual bool DisplayContextPopup(int contextId) - { - return m_helpController->DisplayContextPopup( contextId ); - } - - virtual bool DisplayTextPopup(const wxString& text, const wxPoint& pos) - { - return m_helpController->DisplayTextPopup( text, pos ); - } - - virtual bool KeywordSearch(const wxString& k, - wxHelpSearchMode mode = wxHELP_SEARCH_ALL) - { - return m_helpController->KeywordSearch( k, mode ); - } - - virtual bool Quit() - { - return m_helpController->Quit(); - } - - // Allows one to override the default settings for the help frame. - virtual void SetFrameParameters(const wxString& title, - const wxSize& size, - const wxPoint& pos = wxDefaultPosition, - bool newFrameEachTime = false) - { - m_helpController->SetFrameParameters( title, size, pos, - newFrameEachTime ); - } - - // Obtains the latest settings used by the help frame and the help frame. - virtual wxFrame *GetFrameParameters(wxSize *size = NULL, - wxPoint *pos = NULL, - bool *newFrameEachTime = NULL) - { - return m_helpController->GetFrameParameters( size, pos, - newFrameEachTime ); - } - - /// Set the window that can optionally be used for the help window's parent. - virtual void SetParentWindow(wxWindow* win) { m_helpController->SetParentWindow(win); } - - /// Get the window that can optionally be used for the help window's parent. - virtual wxWindow* GetParentWindow() const { return m_helpController->GetParentWindow(); } - -protected: - // Append/change extension if necessary. - wxString GetValidFilename(const wxString& file) const; - -protected: - enum HelpControllerType { wxUseNone, wxUseHtmlHelp, wxUseChmHelp }; - - HelpControllerType m_helpControllerType; - wxHelpControllerBase* m_helpController; - int m_style; - - wxDECLARE_DYNAMIC_CLASS(wxBestHelpController); - wxDECLARE_NO_COPY_CLASS(wxBestHelpController); -}; - -#endif // wxUSE_HELP && wxUSE_MS_HTML_HELP && wxUSE_WXHTML_HELP - -#endif - // _WX_HELPBEST_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/helpchm.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/helpchm.h deleted file mode 100644 index 1aadac3b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/helpchm.h +++ /dev/null @@ -1,89 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/helpchm.h -// Purpose: Help system: MS HTML Help implementation -// Author: Julian Smart -// Modified by: -// Created: 16/04/2000 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_HELPCHM_H_ -#define _WX_MSW_HELPCHM_H_ - -#if wxUSE_MS_HTML_HELP - -#include "wx/helpbase.h" - -class WXDLLIMPEXP_CORE wxCHMHelpController : public wxHelpControllerBase -{ -public: - wxCHMHelpController(wxWindow* parentWindow = NULL): wxHelpControllerBase(parentWindow) { } - - // Must call this to set the filename - virtual bool Initialize(const wxString& file); - virtual bool Initialize(const wxString& file, int WXUNUSED(server) ) { return Initialize( file ); } - - // If file is "", reloads file given in Initialize - virtual bool LoadFile(const wxString& file = wxEmptyString); - virtual bool DisplayContents(); - virtual bool DisplaySection(int sectionNo); - virtual bool DisplaySection(const wxString& section); - virtual bool DisplayBlock(long blockNo); - virtual bool DisplayContextPopup(int contextId); - virtual bool DisplayTextPopup(const wxString& text, const wxPoint& pos); - virtual bool KeywordSearch(const wxString& k, - wxHelpSearchMode mode = wxHELP_SEARCH_ALL); - virtual bool Quit(); - - wxString GetHelpFile() const { return m_helpFile; } - - // helper of DisplayTextPopup(), also used in wxSimpleHelpProvider::ShowHelp - static bool ShowContextHelpPopup(const wxString& text, - const wxPoint& pos, - wxWindow *window); - -protected: - // get the name of the CHM file we use from our m_helpFile - wxString GetValidFilename() const; - - // Call HtmlHelp() with the provided parameters (both overloads do the same - // thing but allow to avoid casts in the calling code) and return false - // (but don't crash) if HTML help is unavailable - static bool CallHtmlHelp(wxWindow *win, const wxChar *str, - unsigned cmd, WXWPARAM param); - static bool CallHtmlHelp(wxWindow *win, const wxChar *str, - unsigned cmd, const void *param = NULL) - { - return CallHtmlHelp(win, str, cmd, reinterpret_cast<WXWPARAM>(param)); - } - - // even simpler wrappers using GetParentWindow() and GetValidFilename() as - // the first 2 HtmlHelp() parameters - bool CallHtmlHelp(unsigned cmd, WXWPARAM param) - { - return CallHtmlHelp(GetParentWindow(), GetValidFilename().t_str(), - cmd, param); - } - - bool CallHtmlHelp(unsigned cmd, const void *param = NULL) - { - return CallHtmlHelp(cmd, reinterpret_cast<WXWPARAM>(param)); - } - - // wrapper around CallHtmlHelp(HH_DISPLAY_TEXT_POPUP): only one of text and - // contextId parameters can be non-NULL/non-zero - static bool DoDisplayTextPopup(const wxChar *text, - const wxPoint& pos, - int contextId, - wxWindow *window); - - - wxString m_helpFile; - - wxDECLARE_DYNAMIC_CLASS(wxCHMHelpController); -}; - -#endif // wxUSE_MS_HTML_HELP - -#endif // _WX_MSW_HELPCHM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/helpwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/helpwin.h deleted file mode 100644 index e0f797a6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/helpwin.h +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/helpwin.h -// Purpose: Help system: WinHelp implementation -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HELPWIN_H_ -#define _WX_HELPWIN_H_ - -#include "wx/wx.h" - -#if wxUSE_HELP - -#include "wx/helpbase.h" - -class WXDLLIMPEXP_CORE wxWinHelpController: public wxHelpControllerBase -{ - wxDECLARE_DYNAMIC_CLASS(wxWinHelpController); - -public: - wxWinHelpController(wxWindow* parentWindow = NULL): wxHelpControllerBase(parentWindow) {} - virtual ~wxWinHelpController() {} - - // Must call this to set the filename - virtual bool Initialize(const wxString& file); - virtual bool Initialize(const wxString& file, int WXUNUSED(server) ) { return Initialize( file ); } - - // If file is "", reloads file given in Initialize - virtual bool LoadFile(const wxString& file = wxEmptyString); - virtual bool DisplayContents(); - virtual bool DisplaySection(int sectionNo); - virtual bool DisplaySection(const wxString& section) { return KeywordSearch(section); } - virtual bool DisplayBlock(long blockNo); - virtual bool DisplayContextPopup(int contextId); - virtual bool KeywordSearch(const wxString& k, - wxHelpSearchMode mode = wxHELP_SEARCH_ALL); - virtual bool Quit(); - - inline wxString GetHelpFile() const { return m_helpFile; } - -protected: - // Append extension if necessary. - wxString GetValidFilename(const wxString& file) const; - -private: - wxString m_helpFile; -}; - -#endif // wxUSE_HELP -#endif -// _WX_HELPWIN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/htmlhelp.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/htmlhelp.h deleted file mode 100644 index 3e8a7caf..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/htmlhelp.h +++ /dev/null @@ -1,465 +0,0 @@ -/* - * wx/msw/htmlhelp.h - * Copyright 2004 Jacek Caban - * - * Originally written for the Wine project, and issued under - * the wxWindows licence by kind permission of the author. - * - * Licence: wxWindows licence - */ - -#ifndef __HTMLHELP_H__ -#define __HTMLHELP_H__ - -#define HH_DISPLAY_TOPIC 0x00 -#define HH_HELP_FINDER 0x00 -#define HH_DISPLAY_TOC 0x01 -#define HH_DISPLAY_INDEX 0x02 -#define HH_DISPLAY_SEARCH 0x03 -#define HH_SET_WIN_TYPE 0x04 -#define HH_GET_WIN_TYPE 0x05 -#define HH_GET_WIN_HANDLE 0x06 -#define HH_ENUM_INFO_TYPE 0x07 -#define HH_SET_INFO_TYPE 0x08 -#define HH_SYNC 0x09 -#define HH_RESERVED1 0x0A -#define HH_RESERVED2 0x0B -#define HH_RESERVED3 0x0C -#define HH_KEYWORD_LOOKUP 0x0D -#define HH_DISPLAY_TEXT_POPUP 0x0E -#define HH_HELP_CONTEXT 0x0F -#define HH_TP_HELP_CONTEXTMENU 0x10 -#define HH_TP_HELP_WM_HELP 0x11 -#define HH_CLOSE_ALL 0x12 -#define HH_ALINK_LOOKUP 0x13 -#define HH_GET_LAST_ERROR 0x14 -#define HH_ENUM_CATEGORY 0x15 -#define HH_ENUM_CATEGORY_IT 0x16 -#define HH_RESET_IT_FILTER 0x17 -#define HH_SET_INCLUSIVE_FILTER 0x18 -#define HH_SET_EXCLUSIVE_FILTER 0x19 -#define HH_INITIALIZE 0x1C -#define HH_UNINITIALIZE 0x1D -#define HH_PRETRANSLATEMESSAGE 0xFD -#define HH_SET_GLOBAL_PROPERTY 0xFC - -#define HHWIN_PROP_TAB_AUTOHIDESHOW 0x00000001 -#define HHWIN_PROP_ONTOP 0x00000002 -#define HHWIN_PROP_NOTITLEBAR 0x00000004 -#define HHWIN_PROP_NODEF_STYLES 0x00000008 -#define HHWIN_PROP_NODEF_EXSTYLES 0x00000010 -#define HHWIN_PROP_TRI_PANE 0x00000020 -#define HHWIN_PROP_NOTB_TEXT 0x00000040 -#define HHWIN_PROP_POST_QUIT 0x00000080 -#define HHWIN_PROP_AUTO_SYNC 0x00000100 -#define HHWIN_PROP_TRACKING 0x00000200 -#define HHWIN_PROP_TAB_SEARCH 0x00000400 -#define HHWIN_PROP_TAB_HISTORY 0x00000800 -#define HHWIN_PROP_TAB_FAVORITES 0x00001000 -#define HHWIN_PROP_CHANGE_TITLE 0x00002000 -#define HHWIN_PROP_NAV_ONLY_WIN 0x00004000 -#define HHWIN_PROP_NO_TOOLBAR 0x00008000 -#define HHWIN_PROP_MENU 0x00010000 -#define HHWIN_PROP_TAB_ADVSEARCH 0x00020000 -#define HHWIN_PROP_USER_POS 0x00040000 -#define HHWIN_PROP_TAB_CUSTOM1 0x00080000 -#define HHWIN_PROP_TAB_CUSTOM2 0x00100000 -#define HHWIN_PROP_TAB_CUSTOM3 0x00200000 -#define HHWIN_PROP_TAB_CUSTOM4 0x00400000 -#define HHWIN_PROP_TAB_CUSTOM5 0x00800000 -#define HHWIN_PROP_TAB_CUSTOM6 0x01000000 -#define HHWIN_PROP_TAB_CUSTOM7 0x02000000 -#define HHWIN_PROP_TAB_CUSTOM8 0x04000000 -#define HHWIN_PROP_TAB_CUSTOM9 0x08000000 -#define HHWIN_TB_MARGIN 0x10000000 - -#define HHWIN_PARAM_PROPERTIES 0x00000002 -#define HHWIN_PARAM_STYLES 0x00000004 -#define HHWIN_PARAM_EXSTYLES 0x00000008 -#define HHWIN_PARAM_RECT 0x00000010 -#define HHWIN_PARAM_NAV_WIDTH 0x00000020 -#define HHWIN_PARAM_SHOWSTATE 0x00000040 -#define HHWIN_PARAM_INFOTYPES 0x00000080 -#define HHWIN_PARAM_TB_FLAGS 0x00000100 -#define HHWIN_PARAM_EXPANSION 0x00000200 -#define HHWIN_PARAM_TABPOS 0x00000400 -#define HHWIN_PARAM_TABORDER 0x00000800 -#define HHWIN_PARAM_HISTORY_COUNT 0x00001000 -#define HHWIN_PARAM_CUR_TAB 0x00002000 - -#define HHWIN_BUTTON_EXPAND 0x00000002 -#define HHWIN_BUTTON_BACK 0x00000004 -#define HHWIN_BUTTON_FORWARD 0x00000008 -#define HHWIN_BUTTON_STOP 0x00000010 -#define HHWIN_BUTTON_REFRESH 0x00000020 -#define HHWIN_BUTTON_HOME 0x00000040 -#define HHWIN_BUTTON_BROWSE_FWD 0x00000080 -#define HHWIN_BUTTON_BROWSE_BCK 0x00000100 -#define HHWIN_BUTTON_NOTES 0x00000200 -#define HHWIN_BUTTON_CONTENTS 0x00000400 -#define HHWIN_BUTTON_SYNC 0x00000800 -#define HHWIN_BUTTON_OPTIONS 0x00001000 -#define HHWIN_BUTTON_PRINT 0x00002000 -#define HHWIN_BUTTON_INDEX 0x00004000 -#define HHWIN_BUTTON_SEARCH 0x00008000 -#define HHWIN_BUTTON_HISTORY 0x00010000 -#define HHWIN_BUTTON_FAVORITES 0x00020000 -#define HHWIN_BUTTON_JUMP1 0x00040000 -#define HHWIN_BUTTON_JUMP2 0x00080000 -#define HHWIN_BUTTON_ZOOM 0x00100000 -#define HHWIN_BUTTON_TOC_NEXT 0x00200000 -#define HHWIN_BUTTON_TOC_PREV 0x00400000 - -#define HHWIN_DEF_BUTTONS \ - (HHWIN_BUTTON_EXPAND | HHWIN_BUTTON_BACK | HHWIN_BUTTON_OPTIONS | HHWIN_BUTTON_PRINT) - -#define IDTB_EXPAND 200 -#define IDTB_CONTRACT 201 -#define IDTB_STOP 202 -#define IDTB_REFRESH 203 -#define IDTB_BACK 204 -#define IDTB_HOME 205 -#define IDTB_SYNC 206 -#define IDTB_PRINT 207 -#define IDTB_OPTIONS 208 -#define IDTB_FORWARD 209 -#define IDTB_NOTES 210 -#define IDTB_BROWSE_FWD 211 -#define IDTB_BROWSE_BACK 212 -#define IDTB_CONTENTS 213 -#define IDTB_INDEX 214 -#define IDTB_SEARCH 215 -#define IDTB_HISTORY 216 -#define IDTB_FAVORITES 217 -#define IDTB_JUMP1 218 -#define IDTB_JUMP2 219 -#define IDTB_CUSTOMIZE 221 -#define IDTB_ZOOM 222 -#define IDTB_TOC_NEXT 223 -#define IDTB_TOC_PREV 224 - -#define HHN_FIRST (0U-860U) -#define HHN_LAST (0U-879U) -#define HHN_NAVCOMPLETE HHN_FIRST -#define HHN_TRACK (HHN_FIRST-1) -#define HHN_WINDOW_CREATE (HHN_FIRST-2) - - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct tagHH_NOTIFY { - NMHDR hdr; - PCSTR pszurl; -} HH_NOTIFY; - -typedef struct tagHH_POPUPA { - int cbStruct; - HINSTANCE hinst; - UINT idString; - LPCSTR pszText; - POINT pt; - COLORREF clrForeground; - COLORREF clrBackground; - RECT rcMargins; - LPCSTR pszFont; -} HH_POPUPA; - -typedef struct tagHH_POPUPW { - int cbStruct; - HINSTANCE hinst; - UINT idString; - LPCWSTR pszText; - POINT pt; - COLORREF clrForeground; - COLORREF clrBackground; - RECT rcMargins; - LPCWSTR pszFont; -} HH_POPUPW; - -#ifdef _UNICODE -typedef HH_POPUPW HH_POPUP; -#else -typedef HH_POPUPA HH_POPUP; -#endif - -typedef struct tagHH_ALINKA { - int cbStruct; - BOOL fReserved; - LPCSTR pszKeywords; - LPCSTR pszUrl; - LPCSTR pszMsgText; - LPCSTR pszMsgTitle; - LPCSTR pszWindow; - BOOL fIndexOnFail; -} HH_ALINKA; - -typedef struct tagHH_ALINKW { - int cbStruct; - BOOL fReserved; - LPCWSTR pszKeywords; - LPCWSTR pszUrl; - LPCWSTR pszMsgText; - LPCWSTR pszMsgTitle; - LPCWSTR pszWindow; - BOOL fIndexOnFail; -} HH_ALINKW; - -#ifdef _UNICODE -typedef HH_ALINKW HH_ALINK; -typedef HH_ALINKW HH_AKLINK; -#else -typedef HH_ALINKA HH_ALINK; -typedef HH_ALINKA HH_AKLINK; -#endif - -enum { - HHWIN_NAVTYPE_TOC, - HHWIN_NAVTYPE_INDEX, - HHWIN_NAVTYPE_SEARCH, - HHWIN_NAVTYPE_FAVORITES, - HHWIN_NAVTYPE_HISTORY, - HHWIN_NAVTYPE_AUTHOR, - HHWIN_NAVTYPE_CUSTOM_FIRST = 11 -}; - -enum { - IT_INCLUSIVE, - IT_EXCLUSIVE, - IT_HIDDEN -}; - -typedef struct tagHH_ENUM_IT { - int cbStruct; - int iType; - LPCSTR pszCatName; - LPCSTR pszITName; - LPCSTR pszITDescription; -} HH_ENUM_IT, *PHH_ENUM_IT; - -typedef struct tagHH_ENUM_CAT { - int cbStruct; - LPCSTR pszCatName; - LPCSTR pszCatDescription; -} HH_ENUM_CAT, *PHH_ENUM_CAT; - -typedef struct tagHH_SET_INFOTYPE { - int cbStruct; - LPCSTR pszCatName; - LPCSTR pszInfoTypeName; -} HH_SET_INFOTYPE; - -typedef DWORD HH_INFOTYPE, *PHH_INFOTYPE; - -enum { - HHWIN_NAVTAB_TOP, - HHWIN_NAVTAB_LEFT, - HHWIN_NAVTAB_BOTTOM -}; - -#define HH_MAX_TABS 19 - -enum { - HH_TAB_CONTENTS, - HH_TAB_INDEX, - HH_TAB_SEARCH, - HH_TAB_FAVORITES, - HH_TAB_HISTORY, - HH_TAB_AUTHOR, - HH_TAB_CUSTOM_FIRST = 11, - HH_TAB_CUSTOM_LAST = HH_MAX_TABS -}; - -#define HH_MAX_TABS_CUSTOM (HH_TAB_CUSTOM_LAST-HH_TAB_CUSTOM_FIRST+1) -#define HH_FTS_DEFAULT_PROXIMITY -1 - -typedef struct tagHH_FTS_QUERYA { - int cbStruct; - BOOL fUniCodeStrings; - LPCSTR pszSearchQuery; - LONG iProximity; - BOOL fStemmedSearch; - BOOL fTitleOnly; - BOOL fExecute; - LPCSTR pszWindow; -} HH_FTS_QUERYA; - -typedef struct tagHH_FTS_QUERYW { - int cbStruct; - BOOL fUniCodeStrings; - LPCWSTR pszSearchQuery; - LONG iProximity; - BOOL fStemmedSearch; - BOOL fTitleOnly; - BOOL fExecute; - LPCWSTR pszWindow; -} HH_FTS_QUERYW; - -#ifdef _UNICODE -typedef HH_FTS_QUERYW HH_FTS_QUERY; -#else -typedef HH_FTS_QUERYA HH_FTS_QUERY; -#endif - -typedef struct tagHH_WINTYPEA { - int cbStruct; - BOOL fUniCodeStrings; - LPCSTR pszType; - DWORD fsValidMembers; - DWORD fsWinProperties; - LPCSTR pszCaption; - DWORD dwStyles; - DWORD dwExStyles; - RECT rcWindowPos; - int nShowState; - HWND hwndHelp; - HWND hwndCaller; - PHH_INFOTYPE paInfoTypes; - HWND hwndToolBar; - HWND hwndNavigation; - HWND hwndHTML; - int iNavWidth; - RECT rcHTML; - LPCSTR pszToc; - LPCSTR pszIndex; - LPCSTR pszFile; - LPCSTR pszHome; - DWORD fsToolBarFlags; - BOOL fNotExpanded; - int curNavType; - int tabpos; - int idNotify; - BYTE tabOrder[HH_MAX_TABS+1]; - int cHistory; - LPCSTR pszJump1; - LPCSTR pszJump2; - LPCSTR pszUrlJump1; - LPCSTR pszUrlJump2; - RECT rcMinSize; - int cbInfoTypes; - LPCSTR pszCustomTabs; -} HH_WINTYPEA, *PHH_WINTYPEA; - -typedef struct tagHH_WINTYPEW { - int cbStruct; - BOOL fUniCodeStrings; - LPCWSTR pszType; - DWORD fsValidMembers; - DWORD fsWinProperties; - LPCWSTR pszCaption; - DWORD dwStyles; - DWORD dwExStyles; - RECT rcWindowPos; - int nShowState; - HWND hwndHelp; - HWND hwndCaller; - PHH_INFOTYPE paInfoTypes; - HWND hwndToolBar; - HWND hwndNavigation; - HWND hwndHTML; - int iNavWidth; - RECT rcHTML; - LPCWSTR pszToc; - LPCWSTR pszIndex; - LPCWSTR pszFile; - LPCWSTR pszHome; - DWORD fsToolBarFlags; - BOOL fNotExpanded; - int curNavType; - int tabpos; - int idNotify; - BYTE tabOrder[HH_MAX_TABS+1]; - int cHistory; - LPCWSTR pszJump1; - LPCWSTR pszJump2; - LPCWSTR pszUrlJump1; - LPCWSTR pszUrlJump2; - RECT rcMinSize; - int cbInfoTypes; - LPCWSTR pszCustomTabs; -} HH_WINTYPEW, *PHH_WINTYPEW; - -#ifdef _UNICODE -typedef HH_WINTYPEW HH_WINTYPE; -#else -typedef HH_WINTYPEA HH_WINTYPE; -#endif - -enum { - HHACT_TAB_CONTENTS, - HHACT_TAB_INDEX, - HHACT_TAB_SEARCH, - HHACT_TAB_HISTORY, - HHACT_TAB_FAVORITES, - HHACT_EXPAND, - HHACT_CONTRACT, - HHACT_BACK, - HHACT_FORWARD, - HHACT_STOP, - HHACT_REFRESH, - HHACT_HOME, - HHACT_SYNC, - HHACT_OPTIONS, - HHACT_PRINT, - HHACT_HIGHLIGHT, - HHACT_CUSTOMIZE, - HHACT_JUMP1, - HHACT_JUMP2, - HHACT_ZOOM, - HHACT_TOC_NEXT, - HHACT_TOC_PREV, - HHACT_NOTES, - HHACT_LAST_ENUM -}; - -typedef struct tagHH_NTRACKA { - NMHDR hdr; - PCSTR pszCurUrl; - int idAction; - PHH_WINTYPEA phhWinType; -} HH_NTRACKA; - -typedef struct tagHH_NTRACKW { - NMHDR hdr; - PCSTR pszCurUrl; - int idAction; - PHH_WINTYPEW phhWinType; -} HH_NTRACKW; - -#ifdef _UNICODE -typedef HH_NTRACKW HH_NTRACK; -#else -typedef HH_NTRACKA HH_NTRACK; -#endif - -HWND WINAPI HtmlHelpA(HWND,LPCSTR,UINT,DWORD); -HWND WINAPI HtmlHelpA(HWND,LPCSTR,UINT,DWORD); -#define HtmlHelp WINELIB_NAME_AW(HtmlHelp) - -#define ATOM_HTMLHELP_API_ANSI (LPTSTR)14 -#define ATOM_HTMLHELP_API_UNICODE (LPTSTR)15 - -typedef enum tagHH_GPROPID { - HH_GPROPID_SINGLETHREAD = 1, - HH_GPROPID_TOOLBAR_MARGIN = 2, - HH_GPROPID_UI_LANGUAGE = 3, - HH_GPROPID_CURRENT_SUBSET = 4, - HH_GPROPID_CONTENT_LANGUAGE = 5 -} HH_GPROPID; - -#ifdef __WIDL_OAIDL_H - -typedef struct tagHH_GLOBAL_PROPERTY -{ - HH_GPROPID id; - VARIANT var; -} HH_GLOBAL_PROPERTY ; - -#endif /* __WIDL_OAIDL_H */ - -#ifdef __cplusplus -} -#endif - -#endif /* __HTMLHELP_H__ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/hyperlink.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/hyperlink.h deleted file mode 100644 index 847695b2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/hyperlink.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/hyperlink.h -// Purpose: Hyperlink control -// Author: Rickard Westerlund -// Created: 2010-08-04 -// Copyright: (c) 2010 wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_HYPERLINK_H_ -#define _WX_MSW_HYPERLINK_H_ - -#include "wx/generic/hyperlink.h" - -// ---------------------------------------------------------------------------- -// wxHyperlinkCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxHyperlinkCtrl : public wxGenericHyperlinkCtrl -{ -public: - // Default constructor (for two-step construction). - wxHyperlinkCtrl() { } - - // Constructor. - wxHyperlinkCtrl(wxWindow *parent, - wxWindowID id, - const wxString& label, const wxString& url, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHL_DEFAULT_STYLE, - const wxString& name = wxHyperlinkCtrlNameStr) - { - (void)Create(parent, id, label, url, pos, size, style, name); - } - - // Creation function (for two-step construction). - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label, const wxString& url, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHL_DEFAULT_STYLE, - const wxString& name = wxHyperlinkCtrlNameStr); - - - // overridden base class methods - // ----------------------------- - - virtual void SetURL(const wxString &url); - - virtual void SetLabel(const wxString &label); - -protected: - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - virtual wxSize DoGetBestClientSize() const; - -private: - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - - wxDECLARE_DYNAMIC_CLASS( wxHyperlinkCtrl ); -}; - -#endif // _WX_MSW_HYPERLINK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ia64.manifest b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ia64.manifest deleted file mode 100644 index 242ea4b6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ia64.manifest +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> -<assemblyIdentity - version="0.64.1.0" - processorArchitecture="IA64" - name="Controls" - type="win32" -/> -<description>wxWindows application</description> -<dependency> - <dependentAssembly> - <assemblyIdentity - type="win32" - name="Microsoft.Windows.Common-Controls" - version="6.0.0.0" - processorArchitecture="IA64" - publicKeyToken="6595b64144ccf1df" - language="*" - /> - </dependentAssembly> -</dependency> -</assembly> diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/icon.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/icon.h deleted file mode 100644 index 6bf5acb8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/icon.h +++ /dev/null @@ -1,96 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/icon.h -// Purpose: wxIcon class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ICON_H_ -#define _WX_ICON_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/msw/gdiimage.h" - -// --------------------------------------------------------------------------- -// icon data -// --------------------------------------------------------------------------- - -// notice that although wxIconRefData inherits from wxBitmapRefData, it is not -// a valid wxBitmapRefData -class WXDLLIMPEXP_CORE wxIconRefData : public wxGDIImageRefData -{ -public: - wxIconRefData() { } - virtual ~wxIconRefData() { Free(); } - - virtual void Free(); -}; - -// --------------------------------------------------------------------------- -// Icon -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxIcon : public wxGDIImage -{ -public: - // ctors - // default - wxIcon() { } - - // from raw data - wxIcon(const char bits[], int width, int height); - - // from XPM data - wxIcon(const char* const* data) { CreateIconFromXpm(data); } -#ifdef wxNEEDS_CHARPP - wxIcon(char **data) { CreateIconFromXpm(const_cast<const char* const*>(data)); } -#endif - // from resource/file - wxIcon(const wxString& name, - wxBitmapType type = wxICON_DEFAULT_TYPE, - int desiredWidth = -1, int desiredHeight = -1); - - wxIcon(const wxIconLocation& loc); - - virtual ~wxIcon(); - - virtual bool LoadFile(const wxString& name, - wxBitmapType type = wxICON_DEFAULT_TYPE, - int desiredWidth = -1, int desiredHeight = -1); - - bool CreateFromHICON(WXHICON icon); - - // implementation only from now on - wxIconRefData *GetIconData() const { return (wxIconRefData *)m_refData; } - - void SetHICON(WXHICON icon) { SetHandle((WXHANDLE)icon); } - WXHICON GetHICON() const { return (WXHICON)GetHandle(); } - - // create from bitmap (which should have a mask unless it's monochrome): - // there shouldn't be any implicit bitmap -> icon conversion (i.e. no - // ctors, assignment operators...), but it's ok to have such function - void CopyFromBitmap(const wxBitmap& bmp); - -protected: - virtual wxGDIImageRefData *CreateData() const - { - return new wxIconRefData; - } - - virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const; - - // create from XPM data - void CreateIconFromXpm(const char* const* data); - -private: - wxDECLARE_DYNAMIC_CLASS(wxIcon); -}; - -#endif - // _WX_ICON_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/imaglist.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/imaglist.h deleted file mode 100644 index daedc318..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/imaglist.h +++ /dev/null @@ -1,209 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/imaglist.h -// Purpose: wxImageList class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGLIST_H_ -#define _WX_IMAGLIST_H_ - -#include "wx/bitmap.h" - -// Eventually we'll make this a reference-counted wxGDIObject. For -// now, the app must take care of ownership issues. That is, the -// image lists must be explicitly deleted after the control(s) that uses them -// is (are) deleted, or when the app exits. -class WXDLLIMPEXP_CORE wxImageList : public wxObject -{ -public: - /* - * Public interface - */ - - wxImageList(); - - // Creates an image list. - // Specify the width and height of the images in the list, - // whether there are masks associated with them (e.g. if creating images - // from icons), and the initial size of the list. - wxImageList(int width, int height, bool mask = true, int initialCount = 1) - { - Create(width, height, mask, initialCount); - } - virtual ~wxImageList(); - - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - // Returns the number of images in the image list. - int GetImageCount() const; - - // Returns the size (same for all images) of the images in the list - bool GetSize(int index, int &width, int &height) const; - - // Returns the overall size - wxSize GetSize() const { return m_size; } - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // Creates an image list - // width, height specify the size of the images in the list (all the same). - // mask specifies whether the images have masks or not. - // initialNumber is the initial number of images to reserve. - bool Create(int width, int height, bool mask = true, int initialNumber = 1); - - // Adds a bitmap, and optionally a mask bitmap. - // Note that wxImageList creates *new* bitmaps, so you may delete - // 'bitmap' and 'mask' after calling Add. - int Add(const wxBitmap& bitmap, const wxBitmap& mask = wxNullBitmap); - - // Adds a bitmap, using the specified colour to create the mask bitmap - // Note that wxImageList creates *new* bitmaps, so you may delete - // 'bitmap' after calling Add. - int Add(const wxBitmap& bitmap, const wxColour& maskColour); - - // Adds a bitmap and mask from an icon. - int Add(const wxIcon& icon); - - // Replaces a bitmap, optionally passing a mask bitmap. - // Note that wxImageList creates new bitmaps, so you may delete - // 'bitmap' and 'mask' after calling Replace. - bool Replace(int index, const wxBitmap& bitmap, const wxBitmap& mask = wxNullBitmap); - -/* Not supported by Win95 - // Replacing a bitmap, using the specified colour to create the mask bitmap - // Note that wxImageList creates new bitmaps, so you may delete - // 'bitmap'. - bool Replace(int index, const wxBitmap& bitmap, const wxColour& maskColour); -*/ - - // Replaces a bitmap and mask from an icon. - // You can delete 'icon' after calling Replace. - bool Replace(int index, const wxIcon& icon); - - // Removes the image at the given index. - bool Remove(int index); - - // Remove all images - bool RemoveAll(); - - // Draws the given image on a dc at the specified position. - // If 'solidBackground' is true, Draw sets the image list background - // colour to the background colour of the wxDC, to speed up - // drawing by eliminating masked drawing where possible. - bool Draw(int index, wxDC& dc, int x, int y, - int flags = wxIMAGELIST_DRAW_NORMAL, - bool solidBackground = false); - - // Get a bitmap - wxBitmap GetBitmap(int index) const; - - // Get an icon - wxIcon GetIcon(int index) const; - - // TODO: miscellaneous functionality -/* - wxIcon *MakeIcon(int index); - bool SetOverlayImage(int index, int overlayMask); - -*/ - - // TODO: Drag-and-drop related functionality. - -#if 0 - // Creates a new drag image by combining the given image (typically a mouse cursor image) - // with the current drag image. - bool SetDragCursorImage(int index, const wxPoint& hotSpot); - - // If successful, returns a pointer to the temporary image list that is used for dragging; - // otherwise, NULL. - // dragPos: receives the current drag position. - // hotSpot: receives the offset of the drag image relative to the drag position. - static wxImageList *GetDragImageList(wxPoint& dragPos, wxPoint& hotSpot); - - // Call this function to begin dragging an image. This function creates a temporary image list - // that is used for dragging. The image combines the specified image and its mask with the - // current cursor. In response to subsequent mouse move messages, you can move the drag image - // by using the DragMove member function. To end the drag operation, you can use the EndDrag - // member function. - bool BeginDrag(int index, const wxPoint& hotSpot); - - // Ends a drag operation. - bool EndDrag(); - - // Call this function to move the image that is being dragged during a drag-and-drop operation. - // This function is typically called in response to a mouse move message. To begin a drag - // operation, use the BeginDrag member function. - static bool DragMove(const wxPoint& point); - - // During a drag operation, locks updates to the window specified by lockWindow and displays - // the drag image at the position specified by point. - // The coordinates are relative to the window's upper left corner, so you must compensate - // for the widths of window elements, such as the border, title bar, and menu bar, when - // specifying the coordinates. - // If lockWindow is NULL, this function draws the image in the display context associated - // with the desktop window, and coordinates are relative to the upper left corner of the screen. - // This function locks all other updates to the given window during the drag operation. - // If you need to do any drawing during a drag operation, such as highlighting the target - // of a drag-and-drop operation, you can temporarily hide the dragged image by using the - // wxImageList::DragLeave function. - - // lockWindow: pointer to the window that owns the drag image. - // point: position at which to display the drag image. Coordinates are relative to the - // upper left corner of the window (not the client area). - - static bool DragEnter( wxWindow *lockWindow, const wxPoint& point ); - - // Unlocks the window specified by pWndLock and hides the drag image, allowing the - // window to be updated. - static bool DragLeave( wxWindow *lockWindow ); - - /* Here's roughly how you'd use these functions if implemented in this Win95-like way: - - 1) Starting to drag: - - wxImageList *dragImageList = new wxImageList(16, 16, true); - dragImageList->Add(myDragImage); // Provide an image to combine with the current cursor - dragImageList->BeginDrag(0, wxPoint(0, 0)); - wxShowCursor(false); // wxShowCursor not yet implemented in wxWin - myWindow->CaptureMouse(); - - 2) Dragging: - - // Called within mouse move event. Could also use dragImageList instead of assuming - // these are static functions. - // These two functions could possibly be combined into one, since DragEnter is - // a bit obscure. - wxImageList::DragMove(wxPoint(x, y)); // x, y are current cursor position - wxImageList::DragEnter(NULL, wxPoint(x, y)); // NULL assumes dragging across whole screen - - 3) Finishing dragging: - - dragImageList->EndDrag(); - myWindow->ReleaseMouse(); - wxShowCursor(true); -*/ - -#endif - - // Implementation - //////////////////////////////////////////////////////////////////////////// - - // Returns the native image list handle - WXHIMAGELIST GetHIMAGELIST() const { return m_hImageList; } - -protected: - WXHIMAGELIST m_hImageList; - wxSize m_size; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxImageList); -}; - -#endif - // _WX_IMAGLIST_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/iniconf.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/iniconf.h deleted file mode 100644 index b08c52c8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/iniconf.h +++ /dev/null @@ -1,105 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/iniconf.h -// Purpose: INI-file based wxConfigBase implementation -// Author: Vadim Zeitlin -// Modified by: -// Created: 27.07.98 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_INICONF_H_ -#define _WX_MSW_INICONF_H_ - -#include "wx/defs.h" - -#if wxUSE_CONFIG && wxUSE_INICONF - -// ---------------------------------------------------------------------------- -// wxIniConfig is a wxConfig implementation which uses MS Windows INI files to -// store the data. Because INI files don't really support arbitrary nesting of -// groups, we do the following: -// (1) in win.ini file we store all entries in the [vendor] section and -// the value group1/group2/key is mapped to the value group1_group2_key -// in this section, i.e. all path separators are replaced with underscore -// (2) in appname.ini file we map group1/group2/group3/key to the entry -// group2_group3_key in [group1] -// -// Of course, it might lead to indesirable results if '_' is also used in key -// names (i.e. group/key is the same as group_key) and also GetPath() result -// may be not what you would expect it to be. -// -// Another limitation: the keys and section names are never case-sensitive -// which might differ from wxFileConfig it it was compiled with -// wxCONFIG_CASE_SENSITIVE option. -// ---------------------------------------------------------------------------- - -// for this class, "local" file is the file appname.ini and the global file -// is the [vendor] subsection of win.ini (default for "vendor" is to be the -// same as appname). The file name (strAppName parameter) may, in fact, -// contain the full path to the file. If it doesn't, the file is searched for -// in the Windows directory. -class WXDLLIMPEXP_CORE wxIniConfig : public wxConfigBase -{ -public: - // ctor & dtor - // if strAppName doesn't contain the extension and is not an absolute path, - // ".ini" is appended to it. if strVendor is empty, it's taken to be the - // same as strAppName. - wxIniConfig(const wxString& strAppName = wxEmptyString, const wxString& strVendor = wxEmptyString, - const wxString& localFilename = wxEmptyString, const wxString& globalFilename = wxEmptyString, long style = wxCONFIG_USE_LOCAL_FILE); - virtual ~wxIniConfig(); - - // implement inherited pure virtual functions - virtual void SetPath(const wxString& strPath); - virtual const wxString& GetPath() const; - - virtual bool GetFirstGroup(wxString& str, long& lIndex) const; - virtual bool GetNextGroup (wxString& str, long& lIndex) const; - virtual bool GetFirstEntry(wxString& str, long& lIndex) const; - virtual bool GetNextEntry (wxString& str, long& lIndex) const; - - virtual size_t GetNumberOfEntries(bool bRecursive = false) const; - virtual size_t GetNumberOfGroups(bool bRecursive = false) const; - - virtual bool HasGroup(const wxString& strName) const; - virtual bool HasEntry(const wxString& strName) const; - - // return true if the current group is empty - bool IsEmpty() const; - - virtual bool Flush(bool bCurrentOnly = false); - - virtual bool RenameEntry(const wxString& oldName, const wxString& newName); - virtual bool RenameGroup(const wxString& oldName, const wxString& newName); - - virtual bool DeleteEntry(const wxString& Key, bool bGroupIfEmptyAlso = true); - virtual bool DeleteGroup(const wxString& szKey); - virtual bool DeleteAll(); - -protected: - // read/write - bool DoReadString(const wxString& key, wxString *pStr) const; - bool DoReadLong(const wxString& key, long *plResult) const; - bool DoReadBinary(const wxString& key, wxMemoryBuffer *buf) const; - - bool DoWriteString(const wxString& key, const wxString& szValue); - bool DoWriteLong(const wxString& key, long lValue); - bool DoWriteBinary(const wxString& key, const wxMemoryBuffer& buf); - -private: - // helpers - wxString GetPrivateKeyName(const wxString& szKey) const; - wxString GetKeyName(const wxString& szKey) const; - - wxString m_strLocalFilename; // name of the private INI file - wxString m_strGroup, // current group in appname.ini file - m_strPath; // the rest of the path (no trailing '_'!) - - wxDECLARE_NO_COPY_CLASS(wxIniConfig); - wxDECLARE_ABSTRACT_CLASS(wxIniConfig); -}; - -#endif // wxUSE_CONFIG && wxUSE_INICONF - -#endif // _WX_MSW_INICONF_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/init.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/init.h deleted file mode 100644 index 847fb088..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/init.h +++ /dev/null @@ -1,85 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/init.h -// Purpose: Windows-specific wxEntry() overload -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_INIT_H_ -#define _WX_MSW_INIT_H_ - -// ---------------------------------------------------------------------------- -// Windows-specific wxEntry() overload and wxIMPLEMENT_WXWIN_MAIN definition -// ---------------------------------------------------------------------------- - -// we need HINSTANCE declaration to define WinMain() -#include "wx/msw/wrapwin.h" - -#ifndef SW_SHOWNORMAL - #define SW_SHOWNORMAL 1 -#endif - -// WinMain() is always ANSI, even in Unicode build. -typedef char *wxCmdLineArgType; - -// Windows-only overloads of wxEntry() and wxEntryStart() which take the -// parameters passed to WinMain() instead of those passed to main() -extern WXDLLIMPEXP_CORE bool - wxEntryStart(HINSTANCE hInstance, - HINSTANCE hPrevInstance = NULL, - wxCmdLineArgType pCmdLine = NULL, - int nCmdShow = SW_SHOWNORMAL); - -extern WXDLLIMPEXP_CORE int - wxEntry(HINSTANCE hInstance, - HINSTANCE hPrevInstance = NULL, - wxCmdLineArgType pCmdLine = NULL, - int nCmdShow = SW_SHOWNORMAL); - -#if defined(__BORLANDC__) && wxUSE_UNICODE - // Borland C++ has the following nonstandard behaviour: when the -WU - // command line flag is used, the linker expects to find wWinMain instead - // of WinMain. This flag causes the compiler to define _UNICODE and - // UNICODE symbols and there's no way to detect its use, so we have to - // define both WinMain and wWinMain so that wxIMPLEMENT_WXWIN_MAIN works - // for both code compiled with and without -WU. - // See http://sourceforge.net/tracker/?func=detail&atid=309863&aid=1935997&group_id=9863 - // for more details. - #define wxIMPLEMENT_WXWIN_MAIN_BORLAND_NONSTANDARD \ - extern "C" int WINAPI wWinMain(HINSTANCE hInstance, \ - HINSTANCE hPrevInstance, \ - wchar_t * WXUNUSED(lpCmdLine), \ - int nCmdShow) \ - { \ - wxDISABLE_DEBUG_SUPPORT(); \ - \ - /* NB: wxEntry expects lpCmdLine argument to be char*, not */ \ - /* wchar_t*, but fortunately it's not used anywhere */ \ - /* and we can simply pass NULL in: */ \ - return wxEntry(hInstance, hPrevInstance, NULL, nCmdShow); \ - } -#else - #define wxIMPLEMENT_WXWIN_MAIN_BORLAND_NONSTANDARD -#endif // defined(__BORLANDC__) && wxUSE_UNICODE - -#define wxIMPLEMENT_WXWIN_MAIN \ - extern "C" int WINAPI WinMain(HINSTANCE hInstance, \ - HINSTANCE hPrevInstance, \ - wxCmdLineArgType WXUNUSED(lpCmdLine), \ - int nCmdShow) \ - { \ - wxDISABLE_DEBUG_SUPPORT(); \ - \ - /* NB: We pass NULL in place of lpCmdLine to behave the same as */ \ - /* Borland-specific wWinMain() above. If it becomes needed */ \ - /* to pass lpCmdLine to wxEntry() here, you'll have to fix */ \ - /* wWinMain() above too. */ \ - return wxEntry(hInstance, hPrevInstance, NULL, nCmdShow); \ - } \ - wxIMPLEMENT_WXWIN_MAIN_BORLAND_NONSTANDARD - - -#endif // _WX_MSW_INIT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/joystick.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/joystick.h deleted file mode 100644 index 09c8bcb7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/joystick.h +++ /dev/null @@ -1,91 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/joystick.h -// Purpose: wxJoystick class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_JOYSTICK_H_ -#define _WX_JOYSTICK_H_ - -#include "wx/event.h" - -class WXDLLIMPEXP_ADV wxJoystick: public wxObject -{ - wxDECLARE_DYNAMIC_CLASS(wxJoystick); -public: - /* - * Public interface - */ - - wxJoystick(int joystick = wxJOYSTICK1); - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - wxPoint GetPosition(void) const; - int GetPosition(unsigned axis) const; - bool GetButtonState(unsigned button) const; - int GetZPosition(void) const; - int GetButtonState(void) const; - int GetPOVPosition(void) const; - int GetPOVCTSPosition(void) const; - int GetRudderPosition(void) const; - int GetUPosition(void) const; - int GetVPosition(void) const; - int GetMovementThreshold(void) const; - void SetMovementThreshold(int threshold) ; - - // Capabilities - //////////////////////////////////////////////////////////////////////////// - - static int GetNumberJoysticks(void); - - bool IsOk(void) const; // Checks that the joystick is functioning - int GetManufacturerId(void) const ; - int GetProductId(void) const ; - wxString GetProductName(void) const ; - int GetXMin(void) const; - int GetYMin(void) const; - int GetZMin(void) const; - int GetXMax(void) const; - int GetYMax(void) const; - int GetZMax(void) const; - int GetNumberButtons(void) const; - int GetNumberAxes(void) const; - int GetMaxButtons(void) const; - int GetMaxAxes(void) const; - int GetPollingMin(void) const; - int GetPollingMax(void) const; - int GetRudderMin(void) const; - int GetRudderMax(void) const; - int GetUMin(void) const; - int GetUMax(void) const; - int GetVMin(void) const; - int GetVMax(void) const; - - bool HasRudder(void) const; - bool HasZ(void) const; - bool HasU(void) const; - bool HasV(void) const; - bool HasPOV(void) const; - bool HasPOV4Dir(void) const; - bool HasPOVCTS(void) const; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // pollingFreq = 0 means that movement events are sent when above the threshold. - // If pollingFreq > 0, events are received every this many milliseconds. - bool SetCapture(wxWindow* win, int pollingFreq = 0); - bool ReleaseCapture(void); - -protected: - int m_joystick; -}; - -#endif - // _WX_JOYSTICK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/libraries.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/libraries.h deleted file mode 100644 index abd0046a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/libraries.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Name: wx/msw/libraries.h - * Purpose: Pragmas for linking libs conditionally - * Author: Michael Wetherell - * Modified by: - * Copyright: (c) 2005 Michael Wetherell - * Licence: wxWindows licence - */ - -#ifndef _WX_MSW_LIBRARIES_H_ -#define _WX_MSW_LIBRARIES_H_ - -/* - * Notes: - * - * In general the preferred place to add libs is in the bakefiles. This file - * can be used where libs must be added conditionally, for those compilers that - * support a way to do that. - */ - -#if defined __VISUALC__ && wxUSE_ACCESSIBILITY -#pragma comment(lib, "oleacc") -#endif - -#endif /* _WX_MSW_LIBRARIES_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/listbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/listbox.h deleted file mode 100644 index ffd8b687..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/listbox.h +++ /dev/null @@ -1,206 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/listbox.h -// Purpose: wxListBox class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LISTBOX_H_ -#define _WX_LISTBOX_H_ - -#if wxUSE_LISTBOX - -// ---------------------------------------------------------------------------- -// simple types -// ---------------------------------------------------------------------------- - -#if wxUSE_OWNER_DRAWN - class WXDLLIMPEXP_FWD_CORE wxOwnerDrawn; - - // define the array of list box items - #include "wx/dynarray.h" - - WX_DEFINE_EXPORTED_ARRAY_PTR(wxOwnerDrawn *, wxListBoxItemsArray); -#endif // wxUSE_OWNER_DRAWN - -// forward declaration for GetSelections() -class WXDLLIMPEXP_FWD_BASE wxArrayInt; - -// ---------------------------------------------------------------------------- -// List box control -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxListBox : public wxListBoxBase -{ -public: - // ctors and such - wxListBox() { Init(); } - wxListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr) - { - Init(); - - Create(parent, id, pos, size, n, choices, style, validator, name); - } - wxListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr) - { - Init(); - - Create(parent, id, pos, size, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - virtual ~wxListBox(); - - virtual unsigned int GetCount() const; - virtual wxString GetString(unsigned int n) const; - virtual void SetString(unsigned int n, const wxString& s); - virtual int FindString(const wxString& s, bool bCase = false) const; - - virtual bool IsSelected(int n) const; - virtual int GetSelection() const; - virtual int GetSelections(wxArrayInt& aSelections) const; - - // return the index of the item at this position or wxNOT_FOUND - int HitTest(const wxPoint& pt) const { return DoHitTestList(pt); } - int HitTest(wxCoord x, wxCoord y) const { return DoHitTestList(wxPoint(x, y)); } - - virtual void EnsureVisible(int n); - - virtual int GetTopItem() const; - virtual int GetCountPerPage() const; - - // ownerdrawn wxListBox and wxCheckListBox support -#if wxUSE_OWNER_DRAWN - // override base class virtuals - virtual bool SetFont(const wxFont &font); - - bool MSWOnMeasure(WXMEASUREITEMSTRUCT *item); - bool MSWOnDraw(WXDRAWITEMSTRUCT *item); - - // plug-in for derived classes - virtual wxOwnerDrawn *CreateLboxItem(size_t n); - - // allows to get the item and use SetXXX functions to set it's appearance - wxOwnerDrawn *GetItem(size_t n) const { return m_aItems[n]; } - - // get the index of the given item - int GetItemIndex(wxOwnerDrawn *item) const { return m_aItems.Index(item); } - - // get rect of the given item index - bool GetItemRect(size_t n, wxRect& rect) const; - - // redraw the given item - bool RefreshItem(size_t n); -#endif // wxUSE_OWNER_DRAWN - - // Windows-specific code to update the horizontal extent of the listbox, if - // necessary. If s is non-empty, the horizontal extent is increased to the - // length of this string if it's currently too short, otherwise the maximum - // extent of all strings is used. In any case calls InvalidateBestSize() - virtual void SetHorizontalExtent(const wxString& s = wxEmptyString); - - // Windows callbacks - bool MSWCommand(WXUINT param, WXWORD id); - WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - - // under XP when using "transition effect for menus and tooltips" if we - // return true for WM_PRINTCLIENT here then it causes noticeable slowdown - virtual bool MSWShouldPropagatePrintChild() - { - return false; - } - - virtual wxVisualAttributes GetDefaultAttributes() const - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL) - { - return GetCompositeControlsDefaultAttributes(variant); - } - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - - virtual void OnInternalIdle(); - -protected: - virtual wxSize DoGetBestClientSize() const; - - virtual void DoClear(); - virtual void DoDeleteOneItem(unsigned int n); - - virtual void DoSetSelection(int n, bool select); - - virtual int DoInsertItems(const wxArrayStringsAdapter& items, - unsigned int pos, - void **clientData, wxClientDataType type); - - virtual void DoSetFirstItem(int n); - virtual void DoSetItemClientData(unsigned int n, void* clientData); - virtual void* DoGetItemClientData(unsigned int n) const; - - // this can't be called DoHitTest() because wxWindow already has this method - virtual int DoHitTestList(const wxPoint& point) const; - - // free memory (common part of Clear() and dtor) - void Free(); - - unsigned int m_noItems; - -#if wxUSE_OWNER_DRAWN - // control items - wxListBoxItemsArray m_aItems; -#endif - -private: - // common part of all ctors - void Init(); - - // call this when items are added to or deleted from the listbox or an - // items text changes - void MSWOnItemsChanged(); - - // flag indicating whether the max horizontal extent should be updated, - // i.e. if we need to call SetHorizontalExtent() from OnInternalIdle() - bool m_updateHorizontalExtent; - - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxListBox); -}; - -#endif // wxUSE_LISTBOX - -#endif - // _WX_LISTBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/listctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/listctrl.h deleted file mode 100644 index 1b8beaed..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/listctrl.h +++ /dev/null @@ -1,469 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/listctrl.h -// Purpose: wxListCtrl class -// Author: Julian Smart -// Modified by: Agron Selimaj -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LISTCTRL_H_ -#define _WX_LISTCTRL_H_ - -#include "wx/textctrl.h" -#include "wx/dynarray.h" -#include "wx/vector.h" - -class wxMSWListItemData; - -// define this symbol to indicate the availability of SetColumnsOrder() and -// related functions -#define wxHAS_LISTCTRL_COLUMN_ORDER - -/* - The wxListCtrl can show lists of items in four different modes: - wxLC_LIST: multicolumn list view, with optional small icons (icons could be - optional for some platforms). Columns are computed automatically, - i.e. you don't set columns as in wxLC_REPORT. In other words, - the list wraps, unlike a wxListBox. - wxLC_REPORT: single or multicolumn report view (with optional header) - wxLC_ICON: large icon view, with optional labels - wxLC_SMALL_ICON: small icon view, with optional labels - - You can change the style dynamically, either with SetSingleStyle or - SetWindowStyleFlag. - - Further window styles: - - wxLC_ALIGN_TOP icons align to the top (default) - wxLC_ALIGN_LEFT icons align to the left - wxLC_AUTOARRANGE icons arrange themselves - wxLC_USER_TEXT the app provides label text on demand, except for column headers - wxLC_EDIT_LABELS labels are editable: app will be notified. - wxLC_NO_HEADER no header in report mode - wxLC_NO_SORT_HEADER can't click on header - wxLC_SINGLE_SEL single selection - wxLC_SORT_ASCENDING sort ascending (must still supply a comparison callback in SortItems) - wxLC_SORT_DESCENDING sort descending (ditto) - - Items are referred to by their index (position in the list starting from zero). - - Label text is supplied via insertion/setting functions and is stored by the - control, unless the wxLC_USER_TEXT style has been specified, in which case - the app will be notified when text is required (see sample). - - Images are dealt with by (optionally) associating 3 image lists with the control. - Zero-based indexes into these image lists indicate which image is to be used for - which item. Each image in an image list can contain a mask, and can be made out - of either a bitmap, two bitmaps or an icon. See ImagList.h for more details. - - Notifications are passed via the wxWidgets 2.0 event system, or using virtual - functions in wxWidgets 1.66. - - See the sample wxListCtrl app for API usage. - - TODO: - - addition of further convenience functions - to avoid use of wxListItem in some functions - - state/overlay images: probably not needed. - - in Win95, you can be called back to supply other information - besides text, such as state information. This saves no memory - and is probably superfluous to requirements. - - testing of whole API, extending current sample. - - - */ - -class WXDLLIMPEXP_CORE wxListCtrl: public wxListCtrlBase -{ -public: - /* - * Public interface - */ - - wxListCtrl() { Init(); } - - wxListCtrl(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxLC_ICON, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListCtrlNameStr) - { - Init(); - - Create(parent, id, pos, size, style, validator, name); - } - - virtual ~wxListCtrl(); - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxLC_ICON, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListCtrlNameStr); - - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - // Set the control colours - bool SetForegroundColour(const wxColour& col); - bool SetBackgroundColour(const wxColour& col); - - // Gets information about this column - bool GetColumn(int col, wxListItem& item) const; - - // Sets information about this column - bool SetColumn(int col, const wxListItem& item); - - // Gets the column width - int GetColumnWidth(int col) const; - - // Sets the column width - bool SetColumnWidth(int col, int width); - - - // Gets the column order from its index or index from its order - int GetColumnOrder(int col) const; - int GetColumnIndexFromOrder(int order) const; - - // Gets the column order for all columns - wxArrayInt GetColumnsOrder() const; - - // Sets the column order for all columns - bool SetColumnsOrder(const wxArrayInt& orders); - - - // Gets the number of items that can fit vertically in the - // visible area of the list control (list or report view) - // or the total number of items in the list control (icon - // or small icon view) - int GetCountPerPage() const; - - // return the total area occupied by all the items (icon/small icon only) - wxRect GetViewRect() const; - - // Gets the edit control for editing labels. - wxTextCtrl* GetEditControl() const; - - // Gets information about the item - bool GetItem(wxListItem& info) const; - - // Sets information about the item - bool SetItem(wxListItem& info); - - // Sets a string field at a particular column - long SetItem(long index, int col, const wxString& label, int imageId = -1); - - // Gets the item state - int GetItemState(long item, long stateMask) const; - - // Sets the item state - bool SetItemState(long item, long state, long stateMask); - - // Sets the item image - bool SetItemImage(long item, int image, int selImage = -1); - bool SetItemColumnImage(long item, long column, int image); - - // Gets the item text - wxString GetItemText(long item, int col = 0) const; - - // Sets the item text - void SetItemText(long item, const wxString& str); - - // Gets the item data - wxUIntPtr GetItemData(long item) const; - - // Sets the item data - bool SetItemPtrData(long item, wxUIntPtr data); - bool SetItemData(long item, long data) { return SetItemPtrData(item, data); } - - // Gets the item rectangle - bool GetItemRect(long item, wxRect& rect, int code = wxLIST_RECT_BOUNDS) const; - - // Gets the subitem rectangle in report mode - bool GetSubItemRect(long item, long subItem, wxRect& rect, int code = wxLIST_RECT_BOUNDS) const; - - // Gets the item position - bool GetItemPosition(long item, wxPoint& pos) const; - - // Sets the item position - bool SetItemPosition(long item, const wxPoint& pos); - - // Gets the number of items in the list control - int GetItemCount() const; - - // Gets the number of columns in the list control - int GetColumnCount() const { return m_colCount; } - - // get the horizontal and vertical components of the item spacing - wxSize GetItemSpacing() const; - - // Foreground colour of an item. - void SetItemTextColour( long item, const wxColour& col); - wxColour GetItemTextColour( long item ) const; - - // Background colour of an item. - void SetItemBackgroundColour( long item, const wxColour &col); - wxColour GetItemBackgroundColour( long item ) const; - - // Font of an item. - void SetItemFont( long item, const wxFont &f); - wxFont GetItemFont( long item ) const; - - // Checkbox state of an item - virtual bool HasCheckboxes() const wxOVERRIDE; - virtual bool EnableCheckboxes(bool enable = true) wxOVERRIDE; - virtual bool IsItemChecked(long item) const wxOVERRIDE; - virtual void CheckItem(long item, bool check) wxOVERRIDE; - - // Gets the number of selected items in the list control - int GetSelectedItemCount() const; - - // Gets the text colour of the listview - wxColour GetTextColour() const; - - // Sets the text colour of the listview - void SetTextColour(const wxColour& col); - - // Gets the index of the topmost visible item when in - // list or report view - long GetTopItem() const; - - // Add or remove a single window style - void SetSingleStyle(long style, bool add = true); - - // Set the whole window style - void SetWindowStyleFlag(long style); - - // Searches for an item, starting from 'item'. - // item can be -1 to find the first item that matches the - // specified flags. - // Returns the item or -1 if unsuccessful. - long GetNextItem(long item, int geometry = wxLIST_NEXT_ALL, int state = wxLIST_STATE_DONTCARE) const; - - // Gets one of the three image lists - wxImageList *GetImageList(int which) const; - - // Sets the image list - // N.B. There's a quirk in the Win95 list view implementation. - // If in wxLC_LIST mode, it'll *still* display images by the labels if - // there's a small-icon image list set for the control - even though you - // haven't specified wxLIST_MASK_IMAGE when inserting. - // So you have to set a NULL small-icon image list to be sure that - // the wxLC_LIST mode works without icons. Of course, you may want icons... - void SetImageList(wxImageList *imageList, int which); - void AssignImageList(wxImageList *imageList, int which); - - // refresh items selectively (only useful for virtual list controls) - void RefreshItem(long item); - void RefreshItems(long itemFrom, long itemTo); - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // Arranges the items - bool Arrange(int flag = wxLIST_ALIGN_DEFAULT); - - // Deletes an item - bool DeleteItem(long item); - - // Deletes all items - bool DeleteAllItems(); - - // Deletes a column - bool DeleteColumn(int col); - - // Deletes all columns - bool DeleteAllColumns(); - - // Clears items, and columns if there are any. - void ClearAll(); - - // Edit the label - wxTextCtrl* EditLabel(long item, wxClassInfo* textControlClass = wxCLASSINFO(wxTextCtrl)); - - // End label editing, optionally cancelling the edit - bool EndEditLabel(bool cancel); - - // Ensures this item is visible - bool EnsureVisible(long item); - - // Find an item whose label matches this string, starting from the item after 'start' - // or the beginning if 'start' is -1. - long FindItem(long start, const wxString& str, bool partial = false); - - // Find an item whose data matches this data, starting from the item after 'start' - // or the beginning if 'start' is -1. - long FindItem(long start, wxUIntPtr data); - - // Find an item nearest this position in the specified direction, starting from - // the item after 'start' or the beginning if 'start' is -1. - long FindItem(long start, const wxPoint& pt, int direction); - - // Determines which item (if any) is at the specified point, - // giving details in 'flags' (see wxLIST_HITTEST_... flags above) - // Request the subitem number as well at the given coordinate. - long HitTest(const wxPoint& point, int& flags, long* ptrSubItem = NULL) const; - - // Inserts an item, returning the index of the new item if successful, - // -1 otherwise. - long InsertItem(const wxListItem& info); - - // Insert a string item - long InsertItem(long index, const wxString& label); - - // Insert an image item - long InsertItem(long index, int imageIndex); - - // Insert an image/string item - long InsertItem(long index, const wxString& label, int imageIndex); - - // set the number of items in a virtual list control - void SetItemCount(long count); - - // Scrolls the list control. If in icon, small icon or report view mode, - // x specifies the number of pixels to scroll. If in list view mode, x - // specifies the number of columns to scroll. - // If in icon, small icon or list view mode, y specifies the number of pixels - // to scroll. If in report view mode, y specifies the number of lines to scroll. - bool ScrollList(int dx, int dy); - - // Sort items. - - // fn is a function which takes 3 long arguments: item1, item2, data. - // item1 is the long data associated with a first item (NOT the index). - // item2 is the long data associated with a second item (NOT the index). - // data is the same value as passed to SortItems. - // The return value is a negative number if the first item should precede the second - // item, a positive number of the second item should precede the first, - // or zero if the two items are equivalent. - - // data is arbitrary data to be passed to the sort function. - bool SortItems(wxListCtrlCompare fn, wxIntPtr data); - - // IMPLEMENTATION - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - virtual bool MSWShouldPreProcessMessage(WXMSG* msg); - - // bring the control in sync with current m_windowStyle value - void UpdateStyle(); - - // Event handlers - //////////////////////////////////////////////////////////////////////////// - // Necessary for drawing hrules and vrules, if specified - void OnPaint(wxPaintEvent& event); - - - virtual bool ShouldInheritColours() const { return false; } - - virtual wxVisualAttributes GetDefaultAttributes() const - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); - - // convert our styles to Windows - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - - // special Windows message handling - virtual WXLRESULT MSWWindowProc(WXUINT nMsg, - WXWPARAM wParam, - WXLPARAM lParam); - -protected: - // common part of all ctors - void Init(); - - // Implement constrained best size calculation. - virtual int DoGetBestClientHeight(int width) const - { return MSWGetBestViewRect(width, -1).y; } - virtual int DoGetBestClientWidth(int height) const - { return MSWGetBestViewRect(-1, height).x; } - - wxSize MSWGetBestViewRect(int x, int y) const; - - // Implement base class pure virtual methods. - long DoInsertColumn(long col, const wxListItem& info); - - // free memory taken by all internal data - void FreeAllInternalData(); - - // get the internal data object for this item (may return NULL) - wxMSWListItemData *MSWGetItemData(long item) const; - - // get the item attribute, either by quering it for virtual control, or by - // returning the one previously set using setter methods for a normal one - wxListItemAttr *DoGetItemColumnAttr(long item, long column) const; - - - wxTextCtrl* m_textCtrl; // The control used for editing a label - wxImageList * m_imageListNormal; // The image list for normal icons - wxImageList * m_imageListSmall; // The image list for small icons - wxImageList * m_imageListState; // The image list state icons (not implemented yet) - bool m_ownsImageListNormal, - m_ownsImageListSmall, - m_ownsImageListState; - - int m_colCount; // Windows doesn't have GetColumnCount so must - // keep track of inserted/deleted columns - - // all wxMSWListItemData objects we use - wxVector<wxMSWListItemData *> m_internalData; - - // true if we have any items with custom attributes - bool m_hasAnyAttr; - - // these functions are only used for virtual list view controls, i.e. the - // ones with wxLC_VIRTUAL style - - // return the text for the given column of the given item - virtual wxString OnGetItemText(long item, long column) const; - - // return the icon for the given item. In report view, OnGetItemImage will - // only be called for the first column. See OnGetItemColumnImage for - // details. - virtual int OnGetItemImage(long item) const; - - // return the icon for the given item and column. - virtual int OnGetItemColumnImage(long item, long column) const; - - // return the attribute for the given item and column (may return NULL if none) - virtual wxListItemAttr *OnGetItemColumnAttr(long item, long WXUNUSED(column)) const - { - return OnGetItemAttr(item); - } - -private: - // process NM_CUSTOMDRAW notification message - WXLPARAM OnCustomDraw(WXLPARAM lParam); - - // set the extended styles for the control (used by Create() and - // UpdateStyle()), only should be called if InReportView() - void MSWSetExListStyles(); - - // initialize the (already created) m_textCtrl with the associated HWND - void InitEditControl(WXHWND hWnd); - - // destroy m_textCtrl if it's currently valid and reset it to NULL - void DeleteEditControl(); - - // Intercept Escape and Enter keys to avoid them being stolen from our - // in-place editor control. - void OnCharHook(wxKeyEvent& event); - - - wxDECLARE_DYNAMIC_CLASS(wxListCtrl); - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxListCtrl); -}; - -#endif // _WX_LISTCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/magnif1.cur b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/magnif1.cur deleted file mode 100644 index 15d1a77a..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/magnif1.cur and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/mdi.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/mdi.h deleted file mode 100644 index 125c5a65..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/mdi.h +++ /dev/null @@ -1,270 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/mdi.h -// Purpose: MDI (Multiple Document Interface) classes -// Author: Julian Smart -// Modified by: 2008-10-31 Vadim Zeitlin: derive from the base classes -// Created: 01/02/97 -// Copyright: (c) 1997 Julian Smart -// (c) 2008 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_MDI_H_ -#define _WX_MSW_MDI_H_ - -#include "wx/frame.h" - -class WXDLLIMPEXP_FWD_CORE wxAcceleratorTable; - -// --------------------------------------------------------------------------- -// wxMDIParentFrame -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMDIParentFrame : public wxMDIParentFrameBase -{ -public: - wxMDIParentFrame() { Init(); } - wxMDIParentFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr) - { - Init(); - - Create(parent, id, title, pos, size, style, name); - } - - virtual ~wxMDIParentFrame(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr); - - // override/implement base class [pure] virtual methods - // ---------------------------------------------------- - - static bool IsTDI() { return false; } - - // we don't store the active child in m_currentChild so override this - // function to find it dynamically - virtual wxMDIChildFrame *GetActiveChild() const; - - virtual void Cascade(); - virtual void Tile(wxOrientation orient = wxHORIZONTAL); - virtual void ArrangeIcons(); - virtual void ActivateNext(); - virtual void ActivatePrevious(); - -#if wxUSE_MENUS - virtual void SetWindowMenu(wxMenu* menu); - - virtual void DoMenuUpdates(wxMenu* menu = NULL); - - // return the active child menu, if any - virtual WXHMENU MSWGetActiveMenu() const; -#endif // wxUSE_MENUS - - - // implementation only from now on - - // MDI helpers - // ----------- - -#if wxUSE_MENUS - // called by wxMDIChildFrame after it was successfully created - virtual void AddMDIChild(wxMDIChildFrame *child); - - // called by wxMDIChildFrame just before it is destroyed - virtual void RemoveMDIChild(wxMDIChildFrame *child); -#endif // wxUSE_MENUS - - // handlers - // -------- - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - - void OnActivate(wxActivateEvent& event); - void OnSize(wxSizeEvent& event); - void OnIconized(wxIconizeEvent& event); - - bool HandleActivate(int state, bool minimized, WXHWND activate); - - // override window proc for MDI-specific message processing - virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - - virtual WXLRESULT MSWDefWindowProc(WXUINT, WXWPARAM, WXLPARAM); - virtual bool MSWTranslateMessage(WXMSG* msg); - -#if wxUSE_MENUS - // override the menu-relayed methods to also look in the active child menu - // bar and the "Window" menu - virtual wxMenuItem *FindItemInMenuBar(int menuId) const; - virtual wxMenu* MSWFindMenuFromHMENU(WXHMENU hMenu); -#endif // wxUSE_MENUS - -protected: -#if wxUSE_MENUS_NATIVE - virtual void InternalSetMenuBar(); -#endif // wxUSE_MENUS_NATIVE - - virtual WXHICON GetDefaultIcon() const; - - // set the size of the MDI client window to match the frame size - void UpdateClientSize(); - -private: - // common part of all ctors - void Init(); - -#if wxUSE_MENUS - // "Window" menu commands event handlers - void OnMDICommand(wxCommandEvent& event); - void OnMDIChild(wxCommandEvent& event); - - - // add/remove window menu if we have it (i.e. m_windowMenu != NULL) - void AddWindowMenu(); - void RemoveWindowMenu(); - - // update the window menu (if we have it) to enable or disable the commands - // which only make sense when we have more than one child - void UpdateWindowMenu(bool enable); - -#if wxUSE_ACCEL - wxAcceleratorTable *m_accelWindowMenu; -#endif // wxUSE_ACCEL -#endif // wxUSE_MENUS - - // return the number of child frames we currently have (maybe 0) - int GetChildFramesCount() const; - - // if true, indicates whether the event wasn't really processed even though - // it was "handled", see OnActivate() and HandleActivate() - bool m_activationNotHandled; - - - friend class WXDLLIMPEXP_FWD_CORE wxMDIChildFrame; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxMDIParentFrame); - wxDECLARE_NO_COPY_CLASS(wxMDIParentFrame); -}; - -// --------------------------------------------------------------------------- -// wxMDIChildFrame -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMDIChildFrame : public wxMDIChildFrameBase -{ -public: - wxMDIChildFrame() { Init(); } - wxMDIChildFrame(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Init(); - - Create(parent, id, title, pos, size, style, name); - } - - bool Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - virtual ~wxMDIChildFrame(); - - // implement MDI operations - virtual void Activate(); - - // Override some frame operations too - virtual void Maximize(bool maximize = true); - virtual void Restore(); - - virtual bool Show(bool show = true); - - // Implementation only from now on - // ------------------------------- - - // Handlers - bool HandleMDIActivate(long bActivate, WXHWND, WXHWND); - bool HandleWindowPosChanging(void *lpPos); - bool HandleGetMinMaxInfo(void *mmInfo); - - virtual WXLRESULT MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - virtual WXLRESULT MSWDefWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - virtual bool MSWTranslateMessage(WXMSG *msg); - - virtual void MSWDestroyWindow(); - - bool ResetWindowStyle(void *vrect); - - void OnIdle(wxIdleEvent& event); - -protected: - virtual void DoGetScreenPosition(int *x, int *y) const; - virtual void DoGetPosition(int *x, int *y) const; - virtual void DoSetSize(int x, int y, int width, int height, int sizeFlags); - virtual void DoSetClientSize(int width, int height); - virtual void InternalSetMenuBar(); - virtual bool IsMDIChild() const { return true; } - virtual void DetachMenuBar(); - - virtual WXHICON GetDefaultIcon() const; - - // common part of all ctors - void Init(); - -private: - bool m_needsResize; // flag which tells us to artificially resize the frame - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxMDIChildFrame); -}; - -// --------------------------------------------------------------------------- -// wxMDIClientWindow -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMDIClientWindow : public wxMDIClientWindowBase -{ -public: - wxMDIClientWindow() { Init(); } - - // Note: this is virtual, to allow overridden behaviour. - virtual bool CreateClient(wxMDIParentFrame *parent, - long style = wxVSCROLL | wxHSCROLL); - - // Explicitly call default scroll behaviour - void OnScroll(wxScrollEvent& event); - -protected: - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - - void Init() { m_scrollX = m_scrollY = 0; } - - int m_scrollX, m_scrollY; - -private: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxMDIClientWindow); -}; - -#endif // _WX_MSW_MDI_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/mdi.ico b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/mdi.ico deleted file mode 100644 index 435cca24..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/mdi.ico and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/menu.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/menu.h deleted file mode 100644 index 2260c6b4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/menu.h +++ /dev/null @@ -1,231 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/menu.h -// Purpose: wxMenu, wxMenuBar classes -// Author: Julian Smart -// Modified by: Vadim Zeitlin (wxMenuItem is now in separate file) -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MENU_H_ -#define _WX_MENU_H_ - -#if wxUSE_ACCEL - #include "wx/accel.h" - #include "wx/dynarray.h" - - WX_DEFINE_EXPORTED_ARRAY_PTR(wxAcceleratorEntry *, wxAcceleratorArray); -#endif // wxUSE_ACCEL - -class WXDLLIMPEXP_FWD_CORE wxFrame; - -class wxMenuRadioItemsData; - - -#include "wx/arrstr.h" - -// ---------------------------------------------------------------------------- -// Menu -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMenu : public wxMenuBase -{ -public: - // ctors & dtor - wxMenu(const wxString& title, long style = 0) - : wxMenuBase(title, style) { Init(); } - - wxMenu(long style = 0) : wxMenuBase(style) { Init(); } - - virtual ~wxMenu(); - - virtual void Break(); - - virtual void SetTitle(const wxString& title); - - // MSW-only methods - // ---------------- - - // Create a new menu from the given native HMENU. Takes ownership of the - // menu handle and will delete it when this object is destroyed. - static wxMenu *MSWNewFromHMENU(WXHMENU hMenu) { return new wxMenu(hMenu); } - - // Detaches HMENU so that it isn't deleted when this object is destroyed. - // Don't use this object after calling this method. - WXHMENU MSWDetachHMENU() { WXHMENU m = m_hMenu; m_hMenu = NULL; return m; } - - // implementation only from now on - // ------------------------------- - - bool MSWCommand(WXUINT param, WXWORD id); - - // get the native menu handle - WXHMENU GetHMenu() const { return m_hMenu; } - - // Return the start and end position of the radio group to which the item - // at the given position belongs. Returns false if there is no radio group - // containing this position. - bool MSWGetRadioGroupRange(int pos, int *start, int *end) const; - -#if wxUSE_ACCEL - // called by wxMenuBar to build its accel table from the accels of all menus - bool HasAccels() const { return !m_accels.empty(); } - size_t GetAccelCount() const { return m_accels.size(); } - size_t CopyAccels(wxAcceleratorEntry *accels) const; - - // called by wxMenuItem when its accels changes - void UpdateAccel(wxMenuItem *item); - - // helper used by wxMenu itself (returns the index in m_accels) - int FindAccel(int id) const; - - // used only by wxMDIParentFrame currently but could be useful elsewhere: - // returns a new accelerator table with accelerators for just this menu - // (shouldn't be called if we don't have any accelerators) - wxAcceleratorTable *CreateAccelTable() const; -#endif // wxUSE_ACCEL - - // get the menu with given handle (recursively) - wxMenu* MSWGetMenu(WXHMENU hMenu); - -#if wxUSE_OWNER_DRAWN - - int GetMaxAccelWidth() - { - if (m_maxAccelWidth == -1) - CalculateMaxAccelWidth(); - return m_maxAccelWidth; - } - - void ResetMaxAccelWidth() - { - m_maxAccelWidth = -1; - } - -private: - void CalculateMaxAccelWidth(); - -#endif // wxUSE_OWNER_DRAWN - -protected: - virtual wxMenuItem* DoAppend(wxMenuItem *item); - virtual wxMenuItem* DoInsert(size_t pos, wxMenuItem *item); - virtual wxMenuItem* DoRemove(wxMenuItem *item); - -private: - // This constructor is private, use MSWNewFromHMENU() to use it. - wxMenu(WXHMENU hMenu); - - // Common part of all ctors, it doesn't create a new HMENU. - void InitNoCreate(); - - // Common part of all ctors except of the one above taking a native menu - // handler: calls InitNoCreate() and also creates a new menu. - void Init(); - - // common part of Append/Insert (behaves as Append is pos == (size_t)-1) - bool DoInsertOrAppend(wxMenuItem *item, size_t pos = (size_t)-1); - - - // This variable contains the description of the radio item groups and - // allows to find whether an item at the given position is part of the - // group and also where its group starts and ends. - // - // It is initially NULL and only allocated if we have any radio items. - wxMenuRadioItemsData *m_radioData; - - // if true, insert a breal before appending the next item - bool m_doBreak; - - // the menu handle of this menu - WXHMENU m_hMenu; - -#if wxUSE_ACCEL - // the accelerators for our menu items - wxAcceleratorArray m_accels; -#endif // wxUSE_ACCEL - -#if wxUSE_OWNER_DRAWN - // true if the menu has any ownerdrawn items - bool m_ownerDrawn; - - // the max width of menu items bitmaps - int m_maxBitmapWidth; - - // the max width of menu items accels - int m_maxAccelWidth; -#endif // wxUSE_OWNER_DRAWN - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxMenu); -}; - -// ---------------------------------------------------------------------------- -// Menu Bar (a la Windows) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMenuBar : public wxMenuBarBase -{ -public: - // ctors & dtor - // default constructor - wxMenuBar(); - // unused under MSW - wxMenuBar(long style); - // menubar takes ownership of the menus arrays but copies the titles - wxMenuBar(size_t n, wxMenu *menus[], const wxString titles[], long style = 0); - virtual ~wxMenuBar(); - - // menubar construction - virtual bool Append( wxMenu *menu, const wxString &title ); - virtual bool Insert(size_t pos, wxMenu *menu, const wxString& title); - virtual wxMenu *Replace(size_t pos, wxMenu *menu, const wxString& title); - virtual wxMenu *Remove(size_t pos); - - virtual void EnableTop( size_t pos, bool flag ); - virtual bool IsEnabledTop(size_t pos) const; - virtual void SetMenuLabel( size_t pos, const wxString& label ); - virtual wxString GetMenuLabel( size_t pos ) const; - - // implementation from now on - WXHMENU Create(); - virtual void Detach(); - virtual void Attach(wxFrame *frame); - -#if wxUSE_ACCEL - // update the accel table (must be called after adding/deleting a menu) - void RebuildAccelTable(); -#endif // wxUSE_ACCEL - - // get the menu handle - WXHMENU GetHMenu() const { return m_hMenu; } - - // if the menubar is modified, the display is not updated automatically, - // call this function to update it (m_menuBarFrame should be !NULL) - void Refresh(); - - // To avoid compile warning - void Refresh( bool eraseBackground, - const wxRect *rect = (const wxRect *) NULL ) { wxWindow::Refresh(eraseBackground, rect); } - - // Get a top level menu position or wxNOT_FOUND from its handle. - int MSWGetTopMenuPos(WXHMENU hMenu) const; - - // Get a top level or sub menu with given handle (recursively). - wxMenu* MSWGetMenu(WXHMENU hMenu) const; - -protected: - // common part of all ctors - void Init(); - - WXHMENU m_hMenu; - - // Return the MSW position for a wxMenu which is sometimes different from - // the wxWidgets position. - int MSWPositionForWxMenu(wxMenu *menu, int wxpos); - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxMenuBar); -}; - -#endif // _WX_MENU_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/menuitem.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/menuitem.h deleted file mode 100644 index 5847295f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/menuitem.h +++ /dev/null @@ -1,156 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/menuitem.h -// Purpose: wxMenuItem class -// Author: Vadim Zeitlin -// Modified by: -// Created: 11.11.97 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _MENUITEM_H -#define _MENUITEM_H - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/bitmap.h" - -#if wxUSE_OWNER_DRAWN - #include "wx/ownerdrw.h" - - struct tagRECT; -#endif - -// ---------------------------------------------------------------------------- -// wxMenuItem: an item in the menu, optionally implements owner-drawn behaviour -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMenuItem : public wxMenuItemBase -#if wxUSE_OWNER_DRAWN - , public wxOwnerDrawn -#endif -{ -public: - // ctor & dtor - wxMenuItem(wxMenu *parentMenu = NULL, - int id = wxID_SEPARATOR, - const wxString& name = wxEmptyString, - const wxString& help = wxEmptyString, - wxItemKind kind = wxITEM_NORMAL, - wxMenu *subMenu = NULL); - virtual ~wxMenuItem(); - - // override base class virtuals - virtual void SetItemLabel(const wxString& strName); - - virtual void Enable(bool bDoEnable = true); - virtual void Check(bool bDoCheck = true); - virtual bool IsChecked() const; - - // unfortunately needed to resolve ambiguity between - // wxMenuItemBase::IsCheckable() and wxOwnerDrawn::IsCheckable() - bool IsCheckable() const { return wxMenuItemBase::IsCheckable(); } - - // the id for a popup menu is really its menu handle (as required by - // ::AppendMenu() API), so this function will return either the id or the - // menu handle depending on what we are - // - // notice that it also returns the id as an unsigned int, as required by - // Win32 API - WXWPARAM GetMSWId() const; - -#if WXWIN_COMPATIBILITY_2_8 - // compatibility only, don't use in new code - wxDEPRECATED( - wxMenuItem(wxMenu *parentMenu, - int id, - const wxString& text, - const wxString& help, - bool isCheckable, - wxMenu *subMenu = NULL) - ); -#endif - - void SetBitmaps(const wxBitmap& bmpChecked, - const wxBitmap& bmpUnchecked = wxNullBitmap) - { - DoSetBitmap(bmpChecked, true); - DoSetBitmap(bmpUnchecked, false); - } - - void SetBitmap(const wxBitmap& bmp, bool bChecked = true) - { - DoSetBitmap(bmp, bChecked); - } - - const wxBitmap& GetBitmap(bool bChecked = true) const - { return (bChecked ? m_bmpChecked : m_bmpUnchecked); } - -#if wxUSE_OWNER_DRAWN - void SetDisabledBitmap(const wxBitmap& bmpDisabled) - { - m_bmpDisabled = bmpDisabled; - SetOwnerDrawn(true); - } - - const wxBitmap& GetDisabledBitmap() const - { return m_bmpDisabled; } - - int MeasureAccelWidth() const; - - // override wxOwnerDrawn base class virtuals - virtual wxString GetName() const; - virtual bool OnMeasureItem(size_t *pwidth, size_t *pheight); - virtual bool OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODStatus stat); - -protected: - virtual void GetFontToUse(wxFont& font) const; - virtual void GetColourToUse(wxODStatus stat, wxColour& colText, wxColour& colBack) const; - -private: - // helper function for draw std menu check mark - void DrawStdCheckMark(WXHDC hdc, const tagRECT* rc, wxODStatus stat); - - // helper function to determine if the item must be owner-drawn - bool MSWMustUseOwnerDrawn(); -#endif // wxUSE_OWNER_DRAWN - - enum BitmapKind - { - Normal, - Checked, - Unchecked - }; - - // helper function to get a handle for bitmap associated with item - WXHBITMAP GetHBitmapForMenu(BitmapKind kind) const; - - // helper function to set/change the bitmap - void DoSetBitmap(const wxBitmap& bmp, bool bChecked); - -private: - // common part of all ctors - void Init(); - - // Return the item position in the menu containing it. - // - // Returns -1 if the item is not attached to a menu or if we can't find its - // position (which is not really supposed to ever happen). - int MSGetMenuItemPos() const; - - // item bitmaps - wxBitmap m_bmpChecked, // bitmap to put near the item - m_bmpUnchecked; // (checked is used also for 'uncheckable' items) -#if wxUSE_OWNER_DRAWN - wxBitmap m_bmpDisabled; -#endif // wxUSE_OWNER_DRAWN - - // Give wxMenu access to our MSWMustUseOwnerDrawn() and GetHBitmapForMenu(). - friend class wxMenu; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxMenuItem); -}; - -#endif //_MENUITEM_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/metafile.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/metafile.h deleted file mode 100644 index 8a7c6ce6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/metafile.h +++ /dev/null @@ -1,189 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/metafile.h -// Purpose: wxMetaFile, wxMetaFileDC and wxMetaFileDataObject classes -// Author: Julian Smart -// Modified by: VZ 07.01.00: implemented wxMetaFileDataObject -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_METAFIILE_H_ -#define _WX_METAFIILE_H_ - -#include "wx/dc.h" -#include "wx/gdiobj.h" - -#if wxUSE_DRAG_AND_DROP - #include "wx/dataobj.h" -#endif - -// ---------------------------------------------------------------------------- -// Metafile and metafile device context classes -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxMetafile; - -class WXDLLIMPEXP_CORE wxMetafileRefData: public wxGDIRefData -{ -public: - wxMetafileRefData(); - virtual ~wxMetafileRefData(); - - virtual bool IsOk() const { return m_metafile != 0; } - -public: - WXHANDLE m_metafile; - int m_windowsMappingMode; - int m_width, m_height; - - friend class WXDLLIMPEXP_FWD_CORE wxMetafile; -}; - -#define M_METAFILEDATA ((wxMetafileRefData *)m_refData) - -class WXDLLIMPEXP_CORE wxMetafile: public wxGDIObject -{ -public: - wxMetafile(const wxString& file = wxEmptyString); - virtual ~wxMetafile(); - - // After this is called, the metafile cannot be used for anything - // since it is now owned by the clipboard. - virtual bool SetClipboard(int width = 0, int height = 0); - - virtual bool Play(wxDC *dc); - - // set/get the size of metafile for clipboard operations - wxSize GetSize() const { return wxSize(GetWidth(), GetHeight()); } - int GetWidth() const { return M_METAFILEDATA->m_width; } - int GetHeight() const { return M_METAFILEDATA->m_height; } - - void SetWidth(int width) { M_METAFILEDATA->m_width = width; } - void SetHeight(int height) { M_METAFILEDATA->m_height = height; } - - // Implementation - WXHANDLE GetHMETAFILE() const { return M_METAFILEDATA->m_metafile; } - void SetHMETAFILE(WXHANDLE mf) ; - int GetWindowsMappingMode() const { return M_METAFILEDATA->m_windowsMappingMode; } - void SetWindowsMappingMode(int mm); - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - -private: - wxDECLARE_DYNAMIC_CLASS(wxMetafile); -}; - -class WXDLLIMPEXP_CORE wxMetafileDCImpl: public wxMSWDCImpl -{ -public: - wxMetafileDCImpl(wxDC *owner, const wxString& file = wxEmptyString); - wxMetafileDCImpl(wxDC *owner, const wxString& file, - int xext, int yext, int xorg, int yorg); - virtual ~wxMetafileDCImpl(); - - virtual wxMetafile *Close(); - virtual void SetMapMode(wxMappingMode mode); - virtual void DoGetTextExtent(const wxString& string, - wxCoord *x, wxCoord *y, - wxCoord *descent = NULL, - wxCoord *externalLeading = NULL, - const wxFont *theFont = NULL) const; - - // Implementation - wxMetafile *GetMetaFile() const { return m_metaFile; } - void SetMetaFile(wxMetafile *mf) { m_metaFile = mf; } - int GetWindowsMappingMode() const { return m_windowsMappingMode; } - void SetWindowsMappingMode(int mm) { m_windowsMappingMode = mm; } - -protected: - virtual void DoGetSize(int *width, int *height) const; - - int m_windowsMappingMode; - wxMetafile* m_metaFile; - -private: - wxDECLARE_CLASS(wxMetafileDCImpl); - wxDECLARE_NO_COPY_CLASS(wxMetafileDCImpl); -}; - -class WXDLLIMPEXP_CORE wxMetafileDC: public wxDC -{ -public: - // Don't supply origin and extent - // Supply them to wxMakeMetaFilePlaceable instead. - wxMetafileDC(const wxString& file) - : wxDC(new wxMetafileDCImpl( this, file )) - { } - - // Supply origin and extent (recommended). - // Then don't need to supply them to wxMakeMetaFilePlaceable. - wxMetafileDC(const wxString& file, int xext, int yext, int xorg, int yorg) - : wxDC(new wxMetafileDCImpl( this, file, xext, yext, xorg, yorg )) - { } - - wxMetafile *GetMetafile() const - { return ((wxMetafileDCImpl*)m_pimpl)->GetMetaFile(); } - - wxMetafile *Close() - { return ((wxMetafileDCImpl*)m_pimpl)->Close(); } - -private: - wxDECLARE_CLASS(wxMetafileDC); - wxDECLARE_NO_COPY_CLASS(wxMetafileDC); -}; - - - - -/* - * Pass filename of existing non-placeable metafile, and bounding box. - * Adds a placeable metafile header, sets the mapping mode to anisotropic, - * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode. - * - */ - -// No origin or extent -bool WXDLLIMPEXP_CORE wxMakeMetafilePlaceable(const wxString& filename, float scale = 1.0); - -// Optional origin and extent -bool WXDLLIMPEXP_CORE wxMakeMetaFilePlaceable(const wxString& filename, int x1, int y1, int x2, int y2, float scale = 1.0, bool useOriginAndExtent = true); - -// ---------------------------------------------------------------------------- -// wxMetafileDataObject is a specialization of wxDataObject for metafile data -// ---------------------------------------------------------------------------- - -#if wxUSE_DRAG_AND_DROP - -class WXDLLIMPEXP_CORE wxMetafileDataObject : public wxDataObjectSimple -{ -public: - // ctors - wxMetafileDataObject() : wxDataObjectSimple(wxDF_METAFILE) - { } - wxMetafileDataObject(const wxMetafile& metafile) - : wxDataObjectSimple(wxDF_METAFILE), m_metafile(metafile) { } - - // virtual functions which you may override if you want to provide data on - // demand only - otherwise, the trivial default versions will be used - virtual void SetMetafile(const wxMetafile& metafile) - { m_metafile = metafile; } - virtual wxMetafile GetMetafile() const - { return m_metafile; } - - // implement base class pure virtuals - virtual size_t GetDataSize() const; - virtual bool GetDataHere(void *buf) const; - virtual bool SetData(size_t len, const void *buf); - -protected: - wxMetafile m_metafile; -}; - -#endif // wxUSE_DRAG_AND_DROP - -#endif - // _WX_METAFIILE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/mimetype.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/mimetype.h deleted file mode 100644 index aa3880f2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/mimetype.h +++ /dev/null @@ -1,130 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/mimetype.h -// Purpose: classes and functions to manage MIME types -// Author: Vadim Zeitlin -// Modified by: -// Created: 23.09.98 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWidgets licence (part of base library) -///////////////////////////////////////////////////////////////////////////// - -#ifndef _MIMETYPE_IMPL_H -#define _MIMETYPE_IMPL_H - -#include "wx/defs.h" - -#if wxUSE_MIMETYPE - -#include "wx/mimetype.h" - -// ---------------------------------------------------------------------------- -// wxFileTypeImpl is the MSW version of wxFileType, this is a private class -// and is never used directly by the application -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxFileTypeImpl -{ -public: - // ctor - wxFileTypeImpl() { } - - // one of these Init() function must be called (ctor can't take any - // arguments because it's common) - - // initialize us with our file type name and extension - in this case - // we will read all other data from the registry - void Init(const wxString& strFileType, const wxString& ext); - - // implement accessor functions - bool GetExtensions(wxArrayString& extensions); - bool GetMimeType(wxString *mimeType) const; - bool GetMimeTypes(wxArrayString& mimeTypes) const; - bool GetIcon(wxIconLocation *iconLoc) const; - bool GetDescription(wxString *desc) const; - bool GetOpenCommand(wxString *openCmd, - const wxFileType::MessageParameters& params) const; - bool GetPrintCommand(wxString *printCmd, - const wxFileType::MessageParameters& params) const; - - size_t GetAllCommands(wxArrayString * verbs, wxArrayString * commands, - const wxFileType::MessageParameters& params) const; - - bool Unassociate(); - - // set an arbitrary command, ask confirmation if it already exists and - // overwriteprompt is true - bool SetCommand(const wxString& cmd, - const wxString& verb, - bool overwriteprompt = true); - - bool SetDefaultIcon(const wxString& cmd = wxEmptyString, int index = 0); - - // this is called by Associate - bool SetDescription (const wxString& desc); - - // This is called by all our own methods modifying the registry to let the - // Windows Shell know about the changes. - // - // It is also called from Associate() and Unassociate() which suppress the - // internally generated notifications using the method below, which is why - // it has to be public. - void MSWNotifyShell(); - - // Call before/after performing several registry changes in a row to - // temporarily suppress multiple notifications that would be generated for - // them and generate a single one at the end using MSWNotifyShell() - // explicitly. - void MSWSuppressNotifications(bool supress); - -private: - // helper function: reads the command corresponding to the specified verb - // from the registry (returns an empty string if not found) - wxString GetCommand(const wxString& verb) const; - - // get the registry path for the given verb - wxString GetVerbPath(const wxString& verb) const; - - // check that the registry key for our extension exists, create it if it - // doesn't, return false if this failed - bool EnsureExtKeyExists(); - - wxString m_strFileType, // may be empty - m_ext; - bool m_suppressNotify; - - // these methods are not publicly accessible (as wxMimeTypesManager - // doesn't know about them), and should only be called by Unassociate - - bool RemoveOpenCommand(); - bool RemoveCommand(const wxString& verb); - bool RemoveMimeType(); - bool RemoveDefaultIcon(); - bool RemoveDescription(); -}; - -class WXDLLIMPEXP_BASE wxMimeTypesManagerImpl -{ -public: - // nothing to do here, we don't load any data but just go and fetch it from - // the registry when asked for - wxMimeTypesManagerImpl() { } - - // implement containing class functions - wxFileType *GetFileTypeFromExtension(const wxString& ext); - wxFileType *GetOrAllocateFileTypeFromExtension(const wxString& ext); - wxFileType *GetFileTypeFromMimeType(const wxString& mimeType); - - size_t EnumAllFileTypes(wxArrayString& mimetypes); - - // create a new filetype association - wxFileType *Associate(const wxFileTypeInfo& ftInfo); - - // create a new filetype with the given name and extension - wxFileType *CreateFileType(const wxString& filetype, const wxString& ext); -}; - -#endif // wxUSE_MIMETYPE - -#endif - //_MIMETYPE_IMPL_H - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/minifram.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/minifram.h deleted file mode 100644 index c6d86c99..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/minifram.h +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/minifram.h -// Purpose: wxMiniFrame class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MINIFRAM_H_ -#define _WX_MINIFRAM_H_ - -#include "wx/frame.h" - -class WXDLLIMPEXP_CORE wxMiniFrame : public wxFrame -{ -public: - wxMiniFrame() { } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCAPTION | wxCLIP_CHILDREN | wxRESIZE_BORDER, - const wxString& name = wxFrameNameStr) - { - return wxFrame::Create(parent, id, title, pos, size, - style | - wxFRAME_TOOL_WINDOW | - (parent ? wxFRAME_FLOAT_ON_PARENT : 0), name); - } - - wxMiniFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCAPTION | wxCLIP_CHILDREN | wxRESIZE_BORDER, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - -protected: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxMiniFrame); -}; - -#endif - // _WX_MINIFRAM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/missing.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/missing.h deleted file mode 100644 index 44d55716..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/missing.h +++ /dev/null @@ -1,425 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/missing.h -// Purpose: Declarations for parts of the Win32 SDK that are missing in -// the versions that come with some compilers -// Created: 2002/04/23 -// Copyright: (c) 2002 Mattia Barbon -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MISSING_H_ -#define _WX_MISSING_H_ - -#ifndef WM_CHANGEUISTATE - #define WM_CHANGEUISTATE 0x0127 -#endif - -#ifndef WM_UPDATEUISTATE - #define WM_UPDATEUISTATE 0x0128 -#endif - -#ifndef WM_QUERYUISTATE - #define WM_QUERYUISTATE 0x0129 -#endif - -#ifndef WM_PRINTCLIENT - #define WM_PRINTCLIENT 0x318 -#endif - -#ifndef DT_HIDEPREFIX - #define DT_HIDEPREFIX 0x00100000 -#endif - -#ifndef DSS_HIDEPREFIX - #define DSS_HIDEPREFIX 0x0200 -#endif - -// Needed by toplevel.cpp -#ifndef UIS_SET - #define UIS_SET 1 - #define UIS_CLEAR 2 - #define UIS_INITIALIZE 3 -#endif - -#ifndef UISF_HIDEFOCUS - #define UISF_HIDEFOCUS 1 -#endif - -#ifndef UISF_HIDEACCEL - #define UISF_HIDEACCEL 2 -#endif - -#ifndef OFN_EXPLORER - #define OFN_EXPLORER 0x00080000 -#endif - -#ifndef OFN_ENABLESIZING - #define OFN_ENABLESIZING 0x00800000 -#endif - -// Needed by window.cpp -#if wxUSE_MOUSEWHEEL - #ifndef WM_MOUSEWHEEL - #define WM_MOUSEWHEEL 0x020A - #endif - #ifndef WM_MOUSEHWHEEL - #define WM_MOUSEHWHEEL 0x020E - #endif - #ifndef WHEEL_DELTA - #define WHEEL_DELTA 120 - #endif - #ifndef SPI_GETWHEELSCROLLLINES - #define SPI_GETWHEELSCROLLLINES 104 - #endif - #ifndef SPI_GETWHEELSCROLLCHARS - #define SPI_GETWHEELSCROLLCHARS 108 - #endif -#endif // wxUSE_MOUSEWHEEL - -// Needed by window.cpp -#ifndef VK_OEM_1 - #define VK_OEM_1 0xBA - #define VK_OEM_2 0xBF - #define VK_OEM_3 0xC0 - #define VK_OEM_4 0xDB - #define VK_OEM_5 0xDC - #define VK_OEM_6 0xDD - #define VK_OEM_7 0xDE - #define VK_OEM_102 0xE2 -#endif - -#ifndef VK_OEM_COMMA - #define VK_OEM_PLUS 0xBB - #define VK_OEM_COMMA 0xBC - #define VK_OEM_MINUS 0xBD - #define VK_OEM_PERIOD 0xBE -#endif - -#ifndef SM_TABLETPC - #define SM_TABLETPC 86 -#endif - -#ifndef INKEDIT_CLASS -# define INKEDIT_CLASSW L"INKEDIT" -# ifdef UNICODE -# define INKEDIT_CLASS INKEDIT_CLASSW -# else -# define INKEDIT_CLASS "INKEDIT" -# endif -#endif - -#ifndef EM_SETINKINSERTMODE -# define EM_SETINKINSERTMODE (WM_USER + 0x0204) -#endif - -#ifndef EM_SETUSEMOUSEFORINPUT -#define EM_SETUSEMOUSEFORINPUT (WM_USER + 0x224) -#endif - -#ifndef TPM_RECURSE -#define TPM_RECURSE 1 -#endif - - -#ifndef WS_EX_LAYOUTRTL -#define WS_EX_LAYOUTRTL 0x00400000 -#endif - -#ifndef WS_EX_COMPOSITED -#define WS_EX_COMPOSITED 0x02000000L -#endif - -#ifndef WS_EX_LAYERED -#define WS_EX_LAYERED 0x00080000 -#endif - -#ifndef LWA_ALPHA -#define LWA_ALPHA 2 -#endif - -#ifndef QS_ALLPOSTMESSAGE -#define QS_ALLPOSTMESSAGE 0 -#endif - -// ---------------------------------------------------------------------------- -// menu stuff -// ---------------------------------------------------------------------------- - -#ifndef MIIM_BITMAP - #define MIIM_STRING 0x00000040 - #define MIIM_BITMAP 0x00000080 - #define MIIM_FTYPE 0x00000100 - #define HBMMENU_CALLBACK ((HBITMAP) -1) - - typedef struct tagMENUINFO - { - DWORD cbSize; - DWORD fMask; - DWORD dwStyle; - UINT cyMax; - HBRUSH hbrBack; - DWORD dwContextHelpID; - DWORD dwMenuData; - } MENUINFO, FAR *LPMENUINFO; -#endif // MIIM_BITMAP &c - -// ---------------------------------------------------------------------------- -// definitions related to ListView and Header common controls, needed by -// msw/listctrl.cpp and msw/headerctrl.cpp -// ---------------------------------------------------------------------------- - -#ifndef I_IMAGENONE - #define I_IMAGENONE (-2) -#endif - -#ifndef LVS_EX_FULLROWSELECT - #define LVS_EX_FULLROWSELECT 0x00000020 -#endif - -#if !defined(LVS_EX_LABELTIP) - #define LVS_EX_LABELTIP 0x00004000 -#endif - -#ifndef LVS_EX_SUBITEMIMAGES - #define LVS_EX_SUBITEMIMAGES 0x00000002 -#endif - -#ifndef LVS_EX_DOUBLEBUFFER - #define LVS_EX_DOUBLEBUFFER 0x00010000 -#endif - -#ifndef HDN_GETDISPINFOW - #define HDN_GETDISPINFOW (HDN_FIRST-29) -#endif - -#ifndef HDS_HOTTRACK - #define HDS_HOTTRACK 4 -#endif -#ifndef HDS_FLAT - #define HDS_FLAT 0x0200 -#endif - -#ifndef HDF_SORTUP - #define HDF_SORTUP 0x0400 - #define HDF_SORTDOWN 0x0200 -#endif - - /* - * In addition to the above, the following are required for several compilers. - */ - -#if !defined(CCS_VERT) -#define CCS_VERT 0x00000080L -#endif - -#if !defined(CCS_RIGHT) -#define CCS_RIGHT (CCS_VERT|CCS_BOTTOM) -#endif - -#if !defined(TB_SETDISABLEDIMAGELIST) - #define TB_SETDISABLEDIMAGELIST (WM_USER + 54) -#endif // !defined(TB_SETDISABLEDIMAGELIST) - -#ifndef CFM_BACKCOLOR - #define CFM_BACKCOLOR 0x04000000 -#endif - -#ifndef HANGUL_CHARSET - #define HANGUL_CHARSET 129 -#endif - -#ifndef CCM_SETUNICODEFORMAT - #define CCM_SETUNICODEFORMAT 8197 -#endif - -// ---------------------------------------------------------------------------- -// Tree control -// ---------------------------------------------------------------------------- - -#ifndef TV_FIRST - #define TV_FIRST 0x1100 -#endif - -#ifndef TVS_FULLROWSELECT - #define TVS_FULLROWSELECT 0x1000 -#endif - -#ifndef TVM_SETBKCOLOR - #define TVM_SETBKCOLOR (TV_FIRST + 29) - #define TVM_SETTEXTCOLOR (TV_FIRST + 30) -#endif - - /* - * The following are specifically required for MinGW. - */ - -#if defined (__MINGW32__) - -#if !wxCHECK_W32API_VERSION(3,1) - -#include <windows.h> -#include "wx/msw/winundef.h" - -typedef struct -{ - RECT rgrc[3]; - WINDOWPOS *lppos; -} NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS; - -#endif - -#endif - -// Various defines used by the webview library that are needed by mingw - -#ifndef DISPID_COMMANDSTATECHANGE -#define DISPID_COMMANDSTATECHANGE 105 -#endif - -#ifndef DISPID_NAVIGATECOMPLETE2 -#define DISPID_NAVIGATECOMPLETE2 252 -#endif - -#ifndef DISPID_NAVIGATEERROR -#define DISPID_NAVIGATEERROR 271 -#endif - -#ifndef DISPID_NEWWINDOW3 -#define DISPID_NEWWINDOW3 273 -#endif - -#ifndef INET_E_ERROR_FIRST -#define INET_E_ERROR_FIRST 0x800C0002L -#endif - -#ifndef INET_E_INVALID_URL -#define INET_E_INVALID_URL 0x800C0002L -#endif - -#ifndef INET_E_NO_SESSION -#define INET_E_NO_SESSION 0x800C0003L -#endif - -#ifndef INET_E_CANNOT_CONNECT -#define INET_E_CANNOT_CONNECT 0x800C0004L -#endif - -#ifndef INET_E_RESOURCE_NOT_FOUND -#define INET_E_RESOURCE_NOT_FOUND 0x800C0005L -#endif - -#ifndef INET_E_OBJECT_NOT_FOUND -#define INET_E_OBJECT_NOT_FOUND 0x800C0006L -#endif - -#ifndef INET_E_DATA_NOT_AVAILABLE -#define INET_E_DATA_NOT_AVAILABLE 0x800C0007L -#endif - -#ifndef INET_E_DOWNLOAD_FAILURE -#define INET_E_DOWNLOAD_FAILURE 0x800C0008L -#endif - -#ifndef INET_E_AUTHENTICATION_REQUIRED -#define INET_E_AUTHENTICATION_REQUIRED 0x800C0009L -#endif - -#ifndef INET_E_NO_VALID_MEDIA -#define INET_E_NO_VALID_MEDIA 0x800C000AL -#endif - -#ifndef INET_E_CONNECTION_TIMEOUT -#define INET_E_CONNECTION_TIMEOUT 0x800C000BL -#endif - -#ifndef INET_E_INVALID_REQUEST -#define INET_E_INVALID_REQUEST 0x800C000CL -#endif - -#ifndef INET_E_UNKNOWN_PROTOCOL -#define INET_E_UNKNOWN_PROTOCOL 0x800C000DL -#endif - -#ifndef INET_E_SECURITY_PROBLEM -#define INET_E_SECURITY_PROBLEM 0x800C000EL -#endif - -#ifndef INET_E_CANNOT_LOAD_DATA -#define INET_E_CANNOT_LOAD_DATA 0x800C000FL -#endif - -#ifndef INET_E_CANNOT_INSTANTIATE_OBJECT -#define INET_E_CANNOT_INSTANTIATE_OBJECT 0x800C0010L -#endif - -#ifndef INET_E_QUERYOPTION_UNKNOWN -#define INET_E_QUERYOPTION_UNKNOWN 0x800C0013L -#endif - -#ifndef INET_E_REDIRECT_FAILED -#define INET_E_REDIRECT_FAILED 0x800C0014L -#endif - -#ifndef INET_E_REDIRECT_TO_DIR -#define INET_E_REDIRECT_TO_DIR 0x800C0015L -#endif - -#ifndef INET_E_CANNOT_LOCK_REQUEST -#define INET_E_CANNOT_LOCK_REQUEST 0x800C0016L -#endif - -#ifndef INET_E_USE_EXTEND_BINDING -#define INET_E_USE_EXTEND_BINDING 0x800C0017L -#endif - -#ifndef INET_E_TERMINATED_BIND -#define INET_E_TERMINATED_BIND 0x800C0018L -#endif - -#ifndef INET_E_INVALID_CERTIFICATE -#define INET_E_INVALID_CERTIFICATE 0x800C0019L -#endif - -#ifndef INET_E_CODE_DOWNLOAD_DECLINED -#define INET_E_CODE_DOWNLOAD_DECLINED 0x800C0100L -#endif - -#ifndef INET_E_RESULT_DISPATCHED -#define INET_E_RESULT_DISPATCHED 0x800C0200L -#endif - -#ifndef INET_E_CANNOT_REPLACE_SFP_FILE -#define INET_E_CANNOT_REPLACE_SFP_FILE 0x800C0300L -#endif - -#ifndef INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY -#define INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY 0x800C0500L -#endif - -#ifndef INET_E_CODE_INSTALL_SUPPRESSED -#define INET_E_CODE_INSTALL_SUPPRESSED 0x800C0400L -#endif - -#ifndef MUI_LANGUAGE_NAME -#define MUI_LANGUAGE_NAME 0x8 -#endif - - /* - * The following are specifically required for Wine - */ - -#ifdef __WINE__ - #ifndef ENUM_CURRENT_SETTINGS - #define ENUM_CURRENT_SETTINGS ((DWORD)-1) - #endif - #ifndef BROADCAST_QUERY_DENY - #define BROADCAST_QUERY_DENY 1112363332 - #endif -#endif // defined __WINE__ - -#ifndef INVALID_FILE_ATTRIBUTES - #define INVALID_FILE_ATTRIBUTES ((DWORD)-1) -#endif - -#endif - // _WX_MISSING_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/msgdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/msgdlg.h deleted file mode 100644 index 3562a362..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/msgdlg.h +++ /dev/null @@ -1,74 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/msgdlg.h -// Purpose: wxMessageDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSGBOXDLG_H_ -#define _WX_MSGBOXDLG_H_ - -class WXDLLIMPEXP_CORE wxMessageDialog : public wxMessageDialogBase -{ -public: - wxMessageDialog(wxWindow *parent, - const wxString& message, - const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, - const wxPoint& WXUNUSED(pos) = wxDefaultPosition) - : wxMessageDialogBase(parent, message, caption, style) - { - m_hook = NULL; - } - - virtual int ShowModal(); - - virtual long GetEffectiveIcon() const; - - // implementation-specific - - // return the font used for the text in the message box - static wxFont GetMessageFont(); - -protected: - // Override this as task dialogs are always centered on parent. - virtual void DoCentre(int dir); - -private: - // hook procedure used to adjust the message box beyond what the standard - // MessageBox() function can do for us - static WXLRESULT wxCALLBACK HookFunction(int code, WXWPARAM, WXLPARAM); - - static const struct ButtonAccessors - { - int id; - wxString (wxMessageDialog::*getter)() const; - } ms_buttons[]; - - // replace the static text control with a text control in order to show - // scrollbar (and also, incidentally, allow text selection) - void ReplaceStaticWithEdit(); - - // adjust the button labels - // - // this is called from HookFunction() and our HWND is valid at this moment - void AdjustButtonLabels(); - - // offset all buttons starting from the first one given by dx to the right - void OffsetButtonsStartingFrom(int first, int dx); - - // used by ShowModal() to display a message box when task dialogs - // aren't available. - int ShowMessageBox(); - - - WXHANDLE m_hook; // HHOOK used to position the message box - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxMessageDialog); -}; - - -#endif // _WX_MSGBOXDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/msvcrt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/msvcrt.h deleted file mode 100644 index 38a4582e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/msvcrt.h +++ /dev/null @@ -1,69 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/msvcrt.h -// Purpose: macros to use some non-standard features of MS Visual C++ -// C run-time library -// Author: Vadim Zeitlin -// Modified by: -// Created: 31.01.1999 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// the goal of this file is to define wxCrtSetDbgFlag() macro which may be -// used like this: -// wxCrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF); -// to turn on memory leak checks for programs compiled with Microsoft Visual -// C++ (5.0+). The macro will not be defined under other compilers or if it -// can't be used with MSVC for whatever reason. - -#ifndef _MSW_MSVCRT_H_ -#define _MSW_MSVCRT_H_ - -// use debug CRT functions for memory leak detections in VC++ 5.0+ in debug -// builds -#undef wxUSE_VC_CRTDBG -#if defined(_DEBUG) && defined(__VISUALC__) \ - && !defined(UNDER_CE) - // it doesn't combine well with wxWin own memory debugging methods - #if !wxUSE_GLOBAL_MEMORY_OPERATORS && !wxUSE_MEMORY_TRACING && !defined(__NO_VC_CRTDBG__) - #define wxUSE_VC_CRTDBG - #endif -#endif - -#ifdef wxUSE_VC_CRTDBG - // Need to undef new if including crtdbg.h which may redefine new itself - #ifdef new - #undef new - #endif - - #include <stdlib.h> - - // Defining _CRTBLD should never be necessary at all, but keep it for now - // as there is no time to retest all the compilers before 3.0 release. - // Definitely do not use it with MSVS 2013 as defining it results in errors - // if the standard <assert.h> is included afterwards. - #if !defined(_CRTBLD) && !wxCHECK_VISUALC_VERSION(12) - // Needed when building with pure MS SDK - #define _CRTBLD - #endif - - #include <crtdbg.h> - - #undef WXDEBUG_NEW - #define WXDEBUG_NEW new(_NORMAL_BLOCK, __FILE__, __LINE__) - - // this define works around a bug with inline declarations of new, see - // - // http://support.microsoft.com/kb/q140858/ - // - // for the details - #define new WXDEBUG_NEW - - #define wxCrtSetDbgFlag(flag) \ - _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | (flag)) -#else // !using VC CRT - #define wxCrtSetDbgFlag(flag) -#endif // wxUSE_VC_CRTDBG - -#endif // _MSW_MSVCRT_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/nonownedwnd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/nonownedwnd.h deleted file mode 100644 index 72e3e6b0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/nonownedwnd.h +++ /dev/null @@ -1,38 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/nonownedwnd.h -// Purpose: wxNonOwnedWindow declaration for wxMSW. -// Author: Vadim Zeitlin -// Created: 2011-10-09 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_NONOWNEDWND_H_ -#define _WX_MSW_NONOWNEDWND_H_ - -class wxNonOwnedWindowShapeImpl; - -// ---------------------------------------------------------------------------- -// wxNonOwnedWindow -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxNonOwnedWindow : public wxNonOwnedWindowBase -{ -public: - wxNonOwnedWindow(); - virtual ~wxNonOwnedWindow(); - -protected: - virtual bool DoClearShape(); - virtual bool DoSetRegionShape(const wxRegion& region); -#if wxUSE_GRAPHICS_CONTEXT - virtual bool DoSetPathShape(const wxGraphicsPath& path); - -private: - wxNonOwnedWindowShapeImpl* m_shapeImpl; -#endif // wxUSE_GRAPHICS_CONTEXT - - wxDECLARE_NO_COPY_CLASS(wxNonOwnedWindow); -}; - -#endif // _WX_MSW_NONOWNEDWND_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/notebook.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/notebook.h deleted file mode 100644 index 64d6bfc5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/notebook.h +++ /dev/null @@ -1,207 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/notebook.h -// Purpose: MSW/GTK compatible notebook (a.k.a. property sheet) -// Author: Robert Roebling -// Modified by: Vadim Zeitlin for Windows version -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _NOTEBOOK_H -#define _NOTEBOOK_H - -#if wxUSE_NOTEBOOK - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/control.h" - -// ---------------------------------------------------------------------------- -// wxNotebook -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxNotebook : public wxNotebookBase -{ -public: - // ctors - // ----- - // default for dynamic class - wxNotebook(); - // the same arguments as for wxControl (@@@ any special styles?) - wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxNotebookNameStr); - // Create() function - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxNotebookNameStr); - virtual ~wxNotebook(); - - // accessors - // --------- - // get number of pages in the dialog - virtual size_t GetPageCount() const; - - // set the currently selected page, return the index of the previously - // selected one (or wxNOT_FOUND on error) - // NB: this function will _not_ generate wxEVT_NOTEBOOK_PAGE_xxx events - int SetSelection(size_t nPage); - - // changes selected page without sending events - int ChangeSelection(size_t nPage); - - // set/get the title of a page - bool SetPageText(size_t nPage, const wxString& strText); - wxString GetPageText(size_t nPage) const; - - // image list stuff: each page may have an image associated with it. All - // the images belong to an image list, so you have to - // 1) create an image list - // 2) associate it with the notebook - // 3) set for each page it's image - // associate image list with a control - void SetImageList(wxImageList* imageList); - - // sets/returns item's image index in the current image list - int GetPageImage(size_t nPage) const; - bool SetPageImage(size_t nPage, int nImage); - - // currently it's always 1 because wxGTK doesn't support multi-row - // tab controls - int GetRowCount() const; - - // control the appearance of the notebook pages - // set the size (the same for all pages) - void SetPageSize(const wxSize& size); - // set the padding between tabs (in pixels) - void SetPadding(const wxSize& padding); - - // operations - // ---------- - // remove all pages - bool DeleteAllPages(); - - // inserts a new page to the notebook (it will be deleted ny the notebook, - // don't delete it yourself). If bSelect, this page becomes active. - bool InsertPage(size_t nPage, - wxNotebookPage *pPage, - const wxString& strText, - bool bSelect = false, - int imageId = NO_IMAGE); - - // Windows-only at present. Also, you must use the wxNB_FIXEDWIDTH - // style. - void SetTabSize(const wxSize& sz); - - // hit test - virtual int HitTest(const wxPoint& pt, long *flags = NULL) const; - - // calculate the size of the notebook from the size of its page - virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const; - - // callbacks - // --------- - void OnSize(wxSizeEvent& event); - void OnNavigationKey(wxNavigationKeyEvent& event); - - // base class virtuals - // ------------------- - - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - virtual bool MSWOnScroll(int orientation, WXWORD nSBCode, - WXWORD pos, WXHWND control); - -#if wxUSE_CONSTRAINTS - virtual void SetConstraintSizes(bool recurse = true); - virtual bool DoPhase(int nPhase); -#endif // wxUSE_CONSTRAINTS - - // Attempts to get colour for UX theme page background - wxColour GetThemeBackgroundColour() const; - - // implementation only - // ------------------- - -#if wxUSE_UXTHEME - virtual bool SetBackgroundColour(const wxColour& colour) - { - if ( !wxNotebookBase::SetBackgroundColour(colour) ) - return false; - - UpdateBgBrush(); - - return true; - } - - // draw child background - virtual bool MSWPrintChild(WXHDC hDC, wxWindow *win); - - virtual bool MSWHasInheritableBackground() const { return true; } -#endif // wxUSE_UXTHEME - - // translate wxWin styles to the Windows ones - virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const; - -protected: - // common part of all ctors - void Init(); - - // hides the currently shown page and shows the given one (if not -1) and - // updates m_selection accordingly - void UpdateSelection(int selNew); - - // remove one page from the notebook, without deleting - virtual wxNotebookPage *DoRemovePage(size_t nPage); - - // get the page rectangle for the current notebook size - // - // returns empty rectangle if an error occurs, do test for it - wxRect GetPageSize() const; - - // set the size of the given page to fit in the notebook - void AdjustPageSize(wxNotebookPage *page); - -#if wxUSE_UXTHEME - // return the themed brush for painting our children - virtual WXHBRUSH MSWGetCustomBgBrush() { return m_hbrBackground; } - - // gets the bitmap of notebook background and returns a brush from it - WXHBRUSH QueryBgBitmap(); - - // creates the brush to be used for drawing the tab control background - void UpdateBgBrush(); - - // common part of QueryBgBitmap() and MSWPrintChild() - // - // if child == NULL, draw background for the entire notebook itself - bool DoDrawBackground(WXHDC hDC, wxWindow *child = NULL); -#endif // wxUSE_UXTHEME - - // these function are used for reducing flicker on notebook resize - void OnEraseBackground(wxEraseEvent& event); - void OnPaint(wxPaintEvent& event); - - // true if we have already subclassed our updown control - bool m_hasSubclassedUpdown; - -#if wxUSE_UXTHEME - // background brush used to paint the tab control - WXHBRUSH m_hbrBackground; -#endif // wxUSE_UXTHEME - - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxNotebook); - wxDECLARE_EVENT_TABLE(); -}; - -#endif // wxUSE_NOTEBOOK - -#endif // _NOTEBOOK_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/access.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/access.h deleted file mode 100644 index 980943ed..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/access.h +++ /dev/null @@ -1,67 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/ole/access.h -// Purpose: declaration of the wxAccessible class -// Author: Julian Smart -// Modified by: -// Created: 2003-02-12 -// Copyright: (c) 2003 Julian Smart -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ACCESS_H_ -#define _WX_ACCESS_H_ - -#if wxUSE_ACCESSIBILITY - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- - -class wxIAccessible; -class WXDLLIMPEXP_FWD_CORE wxWindow; - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -// wxAccessible implements accessibility behaviour. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxAccessible : public wxAccessibleBase -{ -public: - wxAccessible(wxWindow *win = NULL); - virtual ~wxAccessible(); - -// Overridables - -// Accessors - - // Returns the wxIAccessible pointer - wxIAccessible* GetIAccessible() { return m_pIAccessible; } - - // Returns the IAccessible standard interface pointer - void* GetIAccessibleStd() ; - -// Operations - - // Sends an event when something changes in an accessible object. - static void NotifyEvent(int eventType, wxWindow* window, wxAccObject objectType, - int objectId); - -protected: - void Init(); - -private: - wxIAccessible * m_pIAccessible; // the pointer to COM interface - void* m_pIAccessibleStd; // the pointer to the standard COM interface, - // for default processing - - wxDECLARE_NO_COPY_CLASS(wxAccessible); -}; - -#endif //wxUSE_ACCESSIBILITY - -#endif //_WX_ACCESS_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/activex.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/activex.h deleted file mode 100644 index 1679d8df..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/activex.h +++ /dev/null @@ -1,261 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/ole/activex.h -// Purpose: wxActiveXContainer class -// Author: Ryan Norton <wxprojects@comcast.net> -// Modified by: -// Created: 8/18/05 -// Copyright: (c) Ryan Norton -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// Definitions -// ============================================================================ - -#ifndef _WX_MSW_OLE_ACTIVEXCONTAINER_H_ -#define _WX_MSW_OLE_ACTIVEXCONTAINER_H_ - -#if wxUSE_ACTIVEX - -//--------------------------------------------------------------------------- -// wx includes -//--------------------------------------------------------------------------- - -#include "wx/msw/ole/oleutils.h" // wxBasicString &c -#include "wx/msw/ole/uuid.h" -#include "wx/window.h" -#include "wx/variant.h" - -class FrameSite; - -//--------------------------------------------------------------------------- -// MSW COM includes -//--------------------------------------------------------------------------- -#include <oleidl.h> -#include <olectl.h> - -#include <exdisp.h> - -#include <docobj.h> - -#ifndef STDMETHOD - #define STDMETHOD(funcname) virtual HRESULT wxSTDCALL funcname -#endif - -// -// These defines are from another ole header - but its not in the -// latest sdk. Also the ifndef DISPID_READYSTATE is here because at -// least on my machine with the latest sdk olectl.h defines these 3 -// -#ifndef DISPID_READYSTATE - #define DISPID_READYSTATE (-525) - #define DISPID_READYSTATECHANGE (-609) - #define DISPID_AMBIENT_TRANSFERPRIORITY (-728) -#endif - -#define DISPID_AMBIENT_OFFLINEIFNOTCONNECTED (-5501) -#define DISPID_AMBIENT_SILENT (-5502) - -#ifndef DISPID_AMBIENT_CODEPAGE - #define DISPID_AMBIENT_CODEPAGE (-725) - #define DISPID_AMBIENT_CHARSET (-727) -#endif - - -//--------------------------------------------------------------------------- -// -// wxActiveXContainer -// -//--------------------------------------------------------------------------- - -template<typename I> -class wxAutoOleInterface -{ -public: - typedef I Interface; - - explicit wxAutoOleInterface(I *pInterface = NULL) : m_interface(pInterface) - {} - wxAutoOleInterface(REFIID riid, IUnknown *pUnk) : m_interface(NULL) - { QueryInterface(riid, pUnk); } - wxAutoOleInterface(REFIID riid, IDispatch *pDispatch) : m_interface(NULL) - { QueryInterface(riid, pDispatch); } - wxAutoOleInterface(REFCLSID clsid, REFIID riid) : m_interface(NULL) - { CreateInstance(clsid, riid); } - wxAutoOleInterface(const wxAutoOleInterface& ti) : m_interface(NULL) - { operator=(ti); } - - wxAutoOleInterface& operator=(const wxAutoOleInterface& ti) - { - if ( ti.m_interface ) - ti.m_interface->AddRef(); - Free(); - m_interface = ti.m_interface; - return *this; - } - - wxAutoOleInterface& operator=(I*& ti) - { - Free(); - m_interface = ti; - return *this; - } - - ~wxAutoOleInterface() { Free(); } - - void Free() - { - if ( m_interface ) - m_interface->Release(); - m_interface = NULL; - } - - HRESULT QueryInterface(REFIID riid, IUnknown *pUnk) - { - Free(); - wxASSERT(pUnk != NULL); - return pUnk->QueryInterface(riid, (void **)&m_interface); - } - - HRESULT CreateInstance(REFCLSID clsid, REFIID riid) - { - Free(); - return CoCreateInstance - ( - clsid, - NULL, - CLSCTX_ALL, - riid, - (void **)&m_interface - ); - } - - operator I*() const {return m_interface; } - I* operator->() {return m_interface; } - I** GetRef() {return &m_interface; } - bool Ok() const { return IsOk(); } - bool IsOk() const { return m_interface != NULL; } - -protected: - I *m_interface; -}; - -#if WXWIN_COMPATIBILITY_2_8 -// this macro is kept for compatibility with older wx versions -#define WX_DECLARE_AUTOOLE(wxAutoOleInterfaceType, I) \ - typedef wxAutoOleInterface<I> wxAutoOleInterfaceType; -#endif // WXWIN_COMPATIBILITY_2_8 - -typedef wxAutoOleInterface<IDispatch> wxAutoIDispatch; -typedef wxAutoOleInterface<IOleClientSite> wxAutoIOleClientSite; -typedef wxAutoOleInterface<IUnknown> wxAutoIUnknown; -typedef wxAutoOleInterface<IOleObject> wxAutoIOleObject; -typedef wxAutoOleInterface<IOleInPlaceObject> wxAutoIOleInPlaceObject; -typedef wxAutoOleInterface<IOleInPlaceActiveObject> wxAutoIOleInPlaceActiveObject; -typedef wxAutoOleInterface<IOleDocumentView> wxAutoIOleDocumentView; -typedef wxAutoOleInterface<IViewObject> wxAutoIViewObject; - -class WXDLLIMPEXP_CORE wxActiveXContainer : public wxWindow -{ -public: - wxActiveXContainer(wxWindow * parent, REFIID iid, IUnknown* pUnk); - virtual ~wxActiveXContainer(); - - void OnSize(wxSizeEvent&); - void OnPaint(wxPaintEvent&); - void OnSetFocus(wxFocusEvent&); - void OnKillFocus(wxFocusEvent&); - virtual bool MSWTranslateMessage(WXMSG* pMsg); - virtual bool QueryClientSiteInterface(REFIID iid, void **_interface, const char *&desc); - -protected: - friend class FrameSite; - friend class wxActiveXEvents; - - FrameSite *m_frameSite; - wxAutoIDispatch m_Dispatch; - wxAutoIOleClientSite m_clientSite; - wxAutoIUnknown m_ActiveX; - wxAutoIOleObject m_oleObject; - wxAutoIOleInPlaceObject m_oleInPlaceObject; - wxAutoIOleInPlaceActiveObject m_oleInPlaceActiveObject; - wxAutoIOleDocumentView m_docView; - wxAutoIViewObject m_viewObject; - HWND m_oleObjectHWND; - bool m_bAmbientUserMode; - DWORD m_docAdviseCookie; - wxWindow* m_realparent; - - void CreateActiveX(REFIID, IUnknown*); -}; - -///\brief Store native event parameters. -///\detail Store OLE 'Invoke' parameters for event handlers that need to access them. -/// These are the exact values for the event as they are passed to the wxActiveXContainer. -struct wxActiveXEventNativeMSW -{ - DISPID dispIdMember; - REFIID riid; - LCID lcid; - WORD wFlags; - DISPPARAMS *pDispParams; - VARIANT *pVarResult; - EXCEPINFO *pExcepInfo; - unsigned int *puArgErr; - - wxActiveXEventNativeMSW - (DISPID a_dispIdMember, REFIID a_riid, LCID a_lcid, WORD a_wFlags, DISPPARAMS *a_pDispParams, - VARIANT *a_pVarResult, EXCEPINFO *a_pExcepInfo, unsigned int *a_puArgErr) - :dispIdMember(a_dispIdMember), riid(a_riid), lcid(a_lcid), wFlags(a_wFlags), pDispParams(a_pDispParams), - pVarResult(a_pVarResult), pExcepInfo(a_pExcepInfo), puArgErr(a_puArgErr) - { } -}; - -// Events -class WXDLLIMPEXP_CORE wxActiveXEvent : public wxCommandEvent -{ -private: - friend class wxActiveXEvents; - wxVariant m_params; - DISPID m_dispid; - -public: - virtual wxEvent *Clone() const - { return new wxActiveXEvent(*this); } - - size_t ParamCount() const; - - wxString ParamType(size_t idx) const - { - wxASSERT(idx < ParamCount()); - return m_params[idx].GetType(); - } - - wxString ParamName(size_t idx) const - { - wxASSERT(idx < ParamCount()); - return m_params[idx].GetName(); - } - - wxVariant& operator[] (size_t idx); - - DISPID GetDispatchId() const - { return m_dispid; } - - wxActiveXEventNativeMSW *GetNativeParameters() const - { return (wxActiveXEventNativeMSW*)GetClientData(); } -}; - -// #define wxACTIVEX_ID 14001 -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_ACTIVEX, wxActiveXEvent ); - -typedef void (wxEvtHandler::*wxActiveXEventFunction)(wxActiveXEvent&); - -#define wxActiveXEventHandler(func) \ - wxEVENT_HANDLER_CAST( wxActiveXEventFunction, func ) - -#define EVT_ACTIVEX(id, fn) wxDECLARE_EVENT_TABLE_ENTRY(wxEVT_ACTIVEX, id, -1, wxActiveXEventHandler( fn ), NULL ), - -#endif // wxUSE_ACTIVEX - -#endif // _WX_MSW_OLE_ACTIVEXCONTAINER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/automtn.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/automtn.h deleted file mode 100644 index 1d1eb33a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/automtn.h +++ /dev/null @@ -1,140 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/ole/automtn.h -// Purpose: OLE automation utilities -// Author: Julian Smart -// Modified by: -// Created: 11/6/98 -// Copyright: (c) 1998, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_AUTOMTN_H_ -#define _WX_AUTOMTN_H_ - -#include "wx/defs.h" - -#if wxUSE_OLE_AUTOMATION - -#include "wx/object.h" -#include "wx/variant.h" - -typedef void WXIDISPATCH; -typedef unsigned short* WXBSTR; -typedef unsigned long WXLCID; - -#ifdef GetObject -#undef GetObject -#endif - -// Flags used with wxAutomationObject::GetInstance() -enum wxAutomationInstanceFlags -{ - // Only use the existing instance, never create a new one. - wxAutomationInstance_UseExistingOnly = 0, - - // Create a new instance if there are no existing ones. - wxAutomationInstance_CreateIfNeeded = 1, - - // Do not log errors if we failed to get the existing instance because none - // is available. - wxAutomationInstance_SilentIfNone = 2 -}; - -/* - * wxAutomationObject - * Wraps up an IDispatch pointer and invocation; does variant conversion. - */ - -class WXDLLIMPEXP_CORE wxAutomationObject: public wxObject -{ -public: - wxAutomationObject(WXIDISPATCH* dispatchPtr = NULL); - virtual ~wxAutomationObject(); - - // Set/get dispatch pointer - void SetDispatchPtr(WXIDISPATCH* dispatchPtr) { m_dispatchPtr = dispatchPtr; } - WXIDISPATCH* GetDispatchPtr() const { return m_dispatchPtr; } - bool IsOk() const { return m_dispatchPtr != NULL; } - - // Get a dispatch pointer from the current object associated - // with a ProgID, such as "Excel.Application" - bool GetInstance(const wxString& progId, - int flags = wxAutomationInstance_CreateIfNeeded) const; - - // Get a dispatch pointer from a new instance of the class - bool CreateInstance(const wxString& progId) const; - - // Low-level invocation function. Pass either an array of variants, - // or an array of pointers to variants. - bool Invoke(const wxString& member, int action, - wxVariant& retValue, int noArgs, wxVariant args[], const wxVariant* ptrArgs[] = 0) const; - - // Invoke a member function - wxVariant CallMethod(const wxString& method, int noArgs, wxVariant args[]); - wxVariant CallMethodArray(const wxString& method, int noArgs, const wxVariant **args); - - // Convenience function - wxVariant CallMethod(const wxString& method, - const wxVariant& arg1 = wxNullVariant, const wxVariant& arg2 = wxNullVariant, - const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, - const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); - - // Get/Put property - wxVariant GetProperty(const wxString& property, int noArgs = 0, wxVariant args[] = NULL) const; - wxVariant GetPropertyArray(const wxString& property, int noArgs, const wxVariant **args) const; - wxVariant GetProperty(const wxString& property, - const wxVariant& arg1, const wxVariant& arg2 = wxNullVariant, - const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, - const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); - - bool PutPropertyArray(const wxString& property, int noArgs, const wxVariant **args); - bool PutProperty(const wxString& property, int noArgs, wxVariant args[]) ; - bool PutProperty(const wxString& property, - const wxVariant& arg1, const wxVariant& arg2 = wxNullVariant, - const wxVariant& arg3 = wxNullVariant, const wxVariant& arg4 = wxNullVariant, - const wxVariant& arg5 = wxNullVariant, const wxVariant& arg6 = wxNullVariant); - - // Uses DISPATCH_PROPERTYGET - // and returns a dispatch pointer. The calling code should call Release - // on the pointer, though this could be implicit by constructing an wxAutomationObject - // with it and letting the destructor call Release. - WXIDISPATCH* GetDispatchProperty(const wxString& property, int noArgs, wxVariant args[]) const; - WXIDISPATCH* GetDispatchProperty(const wxString& property, int noArgs, const wxVariant **args) const; - - // A way of initialising another wxAutomationObject with a dispatch object, - // without having to deal with nasty IDispatch pointers. - bool GetObject(wxAutomationObject& obj, const wxString& property, int noArgs = 0, wxVariant args[] = NULL) const; - bool GetObject(wxAutomationObject& obj, const wxString& property, int noArgs, const wxVariant **args) const; - - // Returns the locale identifier used in automation calls. The default is - // LOCALE_SYSTEM_DEFAULT. Objects obtained by GetObject() inherit the - // locale identifier from the one that created them. - WXLCID GetLCID() const; - - // Sets the locale identifier to be used in automation calls performed by - // this object. The default is LOCALE_SYSTEM_DEFAULT. - void SetLCID(WXLCID lcid); - - // Returns the flags used for conversions between wxVariant and OLE - // VARIANT, see wxOleConvertVariantFlags. The default value is - // wxOleConvertVariant_Default but all the objects obtained by GetObject() - // inherit the flags from the one that created them. - long GetConvertVariantFlags() const; - - // Sets the flags used for conversions between wxVariant and OLE VARIANT, - // see wxOleConvertVariantFlags (default is wxOleConvertVariant_Default. - void SetConvertVariantFlags(long flags); - -public: // public for compatibility only, don't use m_dispatchPtr directly. - WXIDISPATCH* m_dispatchPtr; - -private: - WXLCID m_lcid; - long m_convertVariantFlags; - - wxDECLARE_NO_COPY_CLASS(wxAutomationObject); -}; - -#endif // wxUSE_OLE_AUTOMATION - -#endif // _WX_AUTOMTN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dataform.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dataform.h deleted file mode 100644 index 26959099..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dataform.h +++ /dev/null @@ -1,70 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/ole/dataform.h -// Purpose: declaration of the wxDataFormat class -// Author: Vadim Zeitlin -// Modified by: -// Created: 19.10.99 (extracted from msw/ole/dataobj.h) -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_OLE_DATAFORM_H -#define _WX_MSW_OLE_DATAFORM_H - -// ---------------------------------------------------------------------------- -// wxDataFormat identifies the single format of data -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDataFormat -{ -public: - // the clipboard formats under Win32 are WORD's - typedef unsigned short NativeFormat; - - wxDataFormat(NativeFormat format = wxDF_INVALID) { m_format = format; } - - // we need constructors from all string types as implicit conversions to - // wxString don't apply when we already rely on implicit conversion of a, - // for example, "char *" string to wxDataFormat, and existing code does it - wxDataFormat(const wxString& format) { SetId(format); } - wxDataFormat(const char *format) { SetId(format); } - wxDataFormat(const wchar_t *format) { SetId(format); } - wxDataFormat(const wxCStrData& format) { SetId(format); } - - wxDataFormat& operator=(NativeFormat format) - { m_format = format; return *this; } - wxDataFormat& operator=(const wxDataFormat& format) - { m_format = format.m_format; return *this; } - - // default copy ctor/assignment operators ok - - // comparison (must have both versions) - bool operator==(wxDataFormatId format) const; - bool operator!=(wxDataFormatId format) const; - bool operator==(const wxDataFormat& format) const; - bool operator!=(const wxDataFormat& format) const; - - // explicit and implicit conversions to NativeFormat which is one of - // standard data types (implicit conversion is useful for preserving the - // compatibility with old code) - NativeFormat GetFormatId() const { return m_format; } - operator NativeFormat() const { return m_format; } - - // this works with standard as well as custom ids - void SetType(NativeFormat format) { m_format = format; } - NativeFormat GetType() const { return m_format; } - - // string ids are used for custom types - this SetId() must be used for - // application-specific formats - wxString GetId() const; - void SetId(const wxString& format); - - // returns true if the format is one of those defined in wxDataFormatId - bool IsStandard() const { return m_format > 0 && m_format < wxDF_PRIVATE; } - -private: - NativeFormat m_format; -}; - -#endif // _WX_MSW_OLE_DATAFORM_H - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dataobj.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dataobj.h deleted file mode 100644 index cc100276..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dataobj.h +++ /dev/null @@ -1,78 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/ole/dataobj.h -// Purpose: declaration of the wxDataObject class -// Author: Vadim Zeitlin -// Modified by: -// Created: 10.05.98 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_OLE_DATAOBJ_H -#define _WX_MSW_OLE_DATAOBJ_H - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- - -struct IDataObject; - -// ---------------------------------------------------------------------------- -// wxDataObject is a "smart" and polymorphic piece of data. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDataObject : public wxDataObjectBase -{ -public: - // ctor & dtor - wxDataObject(); - virtual ~wxDataObject(); - - // retrieve IDataObject interface (for other OLE related classes) - IDataObject *GetInterface() const { return m_pIDataObject; } - - // tell the object that it should be now owned by IDataObject - i.e. when - // it is deleted, it should delete us as well - void SetAutoDelete(); - - // return true if we support this format in "Get" direction - bool IsSupportedFormat(const wxDataFormat& format) const - { return wxDataObjectBase::IsSupported(format, Get); } - - // if this method returns false, this wxDataObject will be copied to - // the clipboard with its size prepended to it, which is compatible with - // older wx versions - // - // if returns true, then this wxDataObject will be copied to the clipboard - // without any additional information and ::HeapSize() function will be used - // to get the size of that data - virtual bool NeedsVerbatimData(const wxDataFormat& WXUNUSED(format)) const - { - // return false from here only for compatibility with earlier wx versions - return true; - } - - // function to return symbolic name of clipboard format (for debug messages) -#ifdef __WXDEBUG__ - static const wxChar *GetFormatName(wxDataFormat format); - - #define wxGetFormatName(format) wxDataObject::GetFormatName(format) -#else // !Debug - #define wxGetFormatName(format) wxT("") -#endif // Debug/!Debug - // they need to be accessed from wxIDataObject, so made them public, - // or wxIDataObject friend -public: - virtual const void* GetSizeFromBuffer( const void* buffer, size_t* size, - const wxDataFormat& format ); - virtual void* SetSizeInBuffer( void* buffer, size_t size, - const wxDataFormat& format ); - virtual size_t GetBufferOffset( const wxDataFormat& format ); - -private: - IDataObject *m_pIDataObject; // pointer to the COM interface - - wxDECLARE_NO_COPY_CLASS(wxDataObject); -}; - -#endif //_WX_MSW_OLE_DATAOBJ_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dataobj2.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dataobj2.h deleted file mode 100644 index 9b97e9fb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dataobj2.h +++ /dev/null @@ -1,145 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/ole/dataobj2.h -// Purpose: second part of platform specific wxDataObject header - -// declarations of predefined wxDataObjectSimple-derived classes -// Author: Vadim Zeitlin -// Modified by: -// Created: 21.10.99 -// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_OLE_DATAOBJ2_H -#define _WX_MSW_OLE_DATAOBJ2_H - -// ---------------------------------------------------------------------------- -// wxBitmapDataObject is a specialization of wxDataObject for bitmap data -// -// NB: in fact, under MSW we support CF_DIB (and not CF_BITMAP) clipboard -// format and we also provide wxBitmapDataObject2 for CF_BITMAP (which is -// rarely used). This is ugly, but I haven't found a solution for it yet. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxBitmapDataObject : public wxBitmapDataObjectBase -{ -public: - // ctors - wxBitmapDataObject(const wxBitmap& bitmap = wxNullBitmap) - : wxBitmapDataObjectBase(bitmap) - { - SetFormat(wxDF_DIB); - - m_data = NULL; - } - - // implement base class pure virtuals - virtual size_t GetDataSize() const; - virtual bool GetDataHere(void *buf) const; - virtual bool SetData(size_t len, const void *buf); - - virtual size_t GetDataSize(const wxDataFormat& WXUNUSED(format)) const - { return GetDataSize(); } - virtual bool GetDataHere(const wxDataFormat& WXUNUSED(format), - void *buf) const - { return GetDataHere(buf); } - virtual bool SetData(const wxDataFormat& WXUNUSED(format), - size_t len, const void *buf) - { return SetData(len, buf); } - -private: - // the DIB data - void /* BITMAPINFO */ *m_data; - - wxDECLARE_NO_COPY_CLASS(wxBitmapDataObject); -}; - -// ---------------------------------------------------------------------------- -// wxBitmapDataObject2 - a data object for CF_BITMAP -// -// FIXME did I already mention it was ugly? -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxBitmapDataObject2 : public wxBitmapDataObjectBase -{ -public: - // ctors - wxBitmapDataObject2(const wxBitmap& bitmap = wxNullBitmap) - : wxBitmapDataObjectBase(bitmap) - { - } - - // implement base class pure virtuals - virtual size_t GetDataSize() const; - virtual bool GetDataHere(void *buf) const; - virtual bool SetData(size_t len, const void *buf); - - virtual size_t GetDataSize(const wxDataFormat& WXUNUSED(format)) const - { return GetDataSize(); } - virtual bool GetDataHere(const wxDataFormat& WXUNUSED(format), - void *buf) const - { return GetDataHere(buf); } - virtual bool SetData(const wxDataFormat& WXUNUSED(format), - size_t len, const void *buf) - { return SetData(len, buf); } - -private: - wxDECLARE_NO_COPY_CLASS(wxBitmapDataObject2); -}; - -// ---------------------------------------------------------------------------- -// wxFileDataObject - data object for CF_HDROP -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFileDataObject : public wxFileDataObjectBase -{ -public: - wxFileDataObject() { } - - // implement base class pure virtuals - virtual bool SetData(size_t len, const void *buf); - virtual size_t GetDataSize() const; - virtual bool GetDataHere(void *pData) const; - virtual void AddFile(const wxString& file); - - virtual size_t GetDataSize(const wxDataFormat& WXUNUSED(format)) const - { return GetDataSize(); } - virtual bool GetDataHere(const wxDataFormat& WXUNUSED(format), - void *buf) const - { return GetDataHere(buf); } - virtual bool SetData(const wxDataFormat& WXUNUSED(format), - size_t len, const void *buf) - { return SetData(len, buf); } - -private: - wxDECLARE_NO_COPY_CLASS(wxFileDataObject); -}; - -// ---------------------------------------------------------------------------- -// wxURLDataObject: data object for URLs -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxURLDataObject : public wxDataObjectComposite -{ -public: - // initialize with URL in ctor or use SetURL later - wxURLDataObject(const wxString& url = wxEmptyString); - - // return the URL as string - wxString GetURL() const; - - // Set a string as the URL in the data object - void SetURL(const wxString& url); - - // override to set m_textFormat - virtual bool SetData(const wxDataFormat& format, - size_t len, - const void *buf); - -private: - // last data object we got data in - wxDataObjectSimple *m_dataObjectLast; - - wxDECLARE_NO_COPY_CLASS(wxURLDataObject); -}; - -#endif // _WX_MSW_OLE_DATAOBJ2_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dropsrc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dropsrc.h deleted file mode 100644 index 1c5f6927..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/dropsrc.h +++ /dev/null @@ -1,78 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/ole/dropsrc.h -// Purpose: declaration of the wxDropSource class -// Author: Vadim Zeitlin -// Modified by: -// Created: 06.03.98 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OLEDROPSRC_H -#define _WX_OLEDROPSRC_H - -#if wxUSE_DRAG_AND_DROP - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- - -class wxIDropSource; -class WXDLLIMPEXP_FWD_CORE wxDataObject; -class WXDLLIMPEXP_FWD_CORE wxWindow; - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -// this macro may be used instead for wxDropSource ctor arguments: it will use -// the cursor 'name' from the resources under MSW, but will expand to -// something else under GTK. If you don't use it, you will have to use #ifdef -// in the application code. -#define wxDROP_ICON(name) wxCursor(wxT(#name)) - -// ---------------------------------------------------------------------------- -// wxDropSource is used to start the drag-&-drop operation on associated -// wxDataObject object. It's responsible for giving UI feedback while dragging. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDropSource : public wxDropSourceBase -{ -public: - // ctors: if you use default ctor you must call SetData() later! - // - // NB: the "wxWindow *win" parameter is unused and is here only for wxGTK - // compatibility, as well as both icon parameters - wxDropSource(wxWindow *win = NULL, - const wxCursor &cursorCopy = wxNullCursor, - const wxCursor &cursorMove = wxNullCursor, - const wxCursor &cursorStop = wxNullCursor); - wxDropSource(wxDataObject& data, - wxWindow *win = NULL, - const wxCursor &cursorCopy = wxNullCursor, - const wxCursor &cursorMove = wxNullCursor, - const wxCursor &cursorStop = wxNullCursor); - - virtual ~wxDropSource(); - - // do it (call this in response to a mouse button press, for example) - // params: if bAllowMove is false, data can be only copied - virtual wxDragResult DoDragDrop(int flags = wxDrag_CopyOnly); - - // overridable: you may give some custom UI feedback during d&d operation - // in this function (it's called on each mouse move, so it shouldn't be - // too slow). Just return false if you want default feedback. - virtual bool GiveFeedback(wxDragResult effect); - -protected: - void Init(); - -private: - wxIDropSource *m_pIDropSource; // the pointer to COM interface - - wxDECLARE_NO_COPY_CLASS(wxDropSource); -}; - -#endif //wxUSE_DRAG_AND_DROP - -#endif //_WX_OLEDROPSRC_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/droptgt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/droptgt.h deleted file mode 100644 index 4cb9d390..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/droptgt.h +++ /dev/null @@ -1,89 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/ole/droptgt.h -// Purpose: declaration of the wxDropTarget class -// Author: Vadim Zeitlin -// Modified by: -// Created: 06.03.98 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OLEDROPTGT_H -#define _WX_OLEDROPTGT_H - -#if wxUSE_DRAG_AND_DROP - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- - -class wxIDropTarget; -struct wxIDropTargetHelper; -struct IDataObject; - -// ---------------------------------------------------------------------------- -// An instance of the class wxDropTarget may be associated with any wxWindow -// derived object via SetDropTarget() function. If this is done, the virtual -// methods of wxDropTarget are called when something is dropped on the window. -// -// Note that wxDropTarget is an abstract base class (ABC) and you should derive -// your own class from it implementing pure virtual function in order to use it -// (all of them, including protected ones which are called by the class itself) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDropTarget : public wxDropTargetBase -{ -public: - // ctor & dtor - wxDropTarget(wxDataObject *dataObject = NULL); - virtual ~wxDropTarget(); - - // normally called by wxWindow on window creation/destruction, but might be - // called `manually' as well. Register() returns true on success. - bool Register(WXHWND hwnd); - void Revoke(WXHWND hwnd); - - // provide default implementation for base class pure virtuals - virtual bool OnDrop(wxCoord x, wxCoord y); - virtual bool GetData(); - - // Can only be called during OnXXX methods. - wxDataFormat GetMatchingPair(); - - // implementation only from now on - // ------------------------------- - - // do we accept this kind of data? - bool MSWIsAcceptedData(IDataObject *pIDataSource) const; - - // give us the data source from IDropTarget::Drop() - this is later used by - // GetData() when it's called from inside OnData() - void MSWSetDataSource(IDataObject *pIDataSource); - - // These functions take care of all things necessary to support native drag - // images. - // - // {Init,End}DragImageSupport() are called during Register/Revoke, - // UpdateDragImageOnXXX() functions are called on the corresponding drop - // target events. - void MSWInitDragImageSupport(); - void MSWEndDragImageSupport(); - void MSWUpdateDragImageOnData(wxCoord x, wxCoord y, wxDragResult res); - void MSWUpdateDragImageOnDragOver(wxCoord x, wxCoord y, wxDragResult res); - void MSWUpdateDragImageOnEnter(wxCoord x, wxCoord y, wxDragResult res); - void MSWUpdateDragImageOnLeave(); - -private: - // helper used by IsAcceptedData() and GetData() - wxDataFormat MSWGetSupportedFormat(IDataObject *pIDataSource) const; - - wxIDropTarget *m_pIDropTarget; // the pointer to our COM interface - IDataObject *m_pIDataSource; // the pointer to the source data object - wxIDropTargetHelper *m_dropTargetHelper; // the drop target helper - - wxDECLARE_NO_COPY_CLASS(wxDropTarget); -}; - -#endif //wxUSE_DRAG_AND_DROP - -#endif //_WX_OLEDROPTGT_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/oleutils.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/oleutils.h deleted file mode 100644 index 57a99fb4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/oleutils.h +++ /dev/null @@ -1,376 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/ole/oleutils.h -// Purpose: OLE helper routines, OLE debugging support &c -// Author: Vadim Zeitlin -// Modified by: -// Created: 19.02.1998 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OLEUTILS_H -#define _WX_OLEUTILS_H - -#include "wx/defs.h" - -#if wxUSE_OLE - -// ole2.h includes windows.h, so include wrapwin.h first -#include "wx/msw/wrapwin.h" -// get IUnknown, REFIID &c -#include <ole2.h> -#include "wx/intl.h" -#include "wx/log.h" -#include "wx/variant.h" - -// ============================================================================ -// General purpose functions and macros -// ============================================================================ - -// ---------------------------------------------------------------------------- -// initialize/cleanup OLE -// ---------------------------------------------------------------------------- - -// call OleInitialize() or CoInitialize[Ex]() depending on the platform -// -// return true if ok, false otherwise -inline bool wxOleInitialize() -{ - HRESULT - hr = ::OleInitialize(NULL); - - // RPC_E_CHANGED_MODE indicates that OLE had been already initialized - // before, albeit with different mode. Don't consider it to be an error as - // we don't actually care ourselves about the mode used so this allows the - // main application to call OleInitialize() on its own before we do if it - // needs non-default mode. - if ( hr != RPC_E_CHANGED_MODE && FAILED(hr) ) - { - wxLogError(wxGetTranslation("Cannot initialize OLE")); - - return false; - } - - return true; -} - -inline void wxOleUninitialize() -{ - ::OleUninitialize(); -} - -// ---------------------------------------------------------------------------- -// misc helper functions/macros -// ---------------------------------------------------------------------------- - -// release the interface pointer (if !NULL) -inline void ReleaseInterface(IUnknown *pIUnk) -{ - if ( pIUnk != NULL ) - pIUnk->Release(); -} - -// release the interface pointer (if !NULL) and make it NULL -#define RELEASE_AND_NULL(p) if ( (p) != NULL ) { p->Release(); p = NULL; }; - -// return true if the iid is in the array -extern WXDLLIMPEXP_CORE bool IsIidFromList(REFIID riid, const IID *aIids[], size_t nCount); - -// ============================================================================ -// IUnknown implementation helpers -// ============================================================================ - -/* - The most dumb implementation of IUnknown methods. We don't support - aggregation nor containment, but for 99% of cases this simple - implementation is quite enough. - - Usage is trivial: here is all you should have - 1) DECLARE_IUNKNOWN_METHODS in your (IUnknown derived!) class declaration - 2) BEGIN/END_IID_TABLE with ADD_IID in between for all interfaces you - support (at least all for which you intent to return 'this' from QI, - i.e. you should derive from IFoo if you have ADD_IID(Foo)) somewhere else - 3) IMPLEMENT_IUNKNOWN_METHODS somewhere also - - These macros are quite simple: AddRef and Release are trivial and QI does - lookup in a static member array of IIDs and returns 'this' if it founds - the requested interface in it or E_NOINTERFACE if not. - */ - -/* - wxAutoULong: this class is used for automatically initalising m_cRef to 0 -*/ -class wxAutoULong -{ -public: - wxAutoULong(ULONG value = 0) : m_Value(value) { } - - operator ULONG&() { return m_Value; } - ULONG& operator=(ULONG value) { m_Value = value; return m_Value; } - - wxAutoULong& operator++() { ++m_Value; return *this; } - const wxAutoULong operator++( int ) { wxAutoULong temp = *this; ++m_Value; return temp; } - - wxAutoULong& operator--() { --m_Value; return *this; } - const wxAutoULong operator--( int ) { wxAutoULong temp = *this; --m_Value; return temp; } - -private: - ULONG m_Value; -}; - -// declare the methods and the member variable containing reference count -// you must also define the ms_aIids array somewhere with BEGIN_IID_TABLE -// and friends (see below) - -#define DECLARE_IUNKNOWN_METHODS \ - public: \ - STDMETHODIMP QueryInterface(REFIID, void **); \ - STDMETHODIMP_(ULONG) AddRef(); \ - STDMETHODIMP_(ULONG) Release(); \ - private: \ - static const IID *ms_aIids[]; \ - wxAutoULong m_cRef - -// macros for declaring supported interfaces -// NB: ADD_IID prepends IID_I whereas ADD_RAW_IID does not -#define BEGIN_IID_TABLE(cname) const IID *cname::ms_aIids[] = { -#define ADD_IID(iid) &IID_I##iid, -#define ADD_RAW_IID(iid) &iid, -#define END_IID_TABLE } - -// implementation is as straightforward as possible -// Parameter: classname - the name of the class -#define IMPLEMENT_IUNKNOWN_METHODS(classname) \ - STDMETHODIMP classname::QueryInterface(REFIID riid, void **ppv) \ - { \ - wxLogQueryInterface(wxT(#classname), riid); \ - \ - if ( IsIidFromList(riid, ms_aIids, WXSIZEOF(ms_aIids)) ) { \ - *ppv = this; \ - AddRef(); \ - \ - return S_OK; \ - } \ - else { \ - *ppv = NULL; \ - \ - return (HRESULT) E_NOINTERFACE; \ - } \ - } \ - \ - STDMETHODIMP_(ULONG) classname::AddRef() \ - { \ - wxLogAddRef(wxT(#classname), m_cRef); \ - \ - return ++m_cRef; \ - } \ - \ - STDMETHODIMP_(ULONG) classname::Release() \ - { \ - wxLogRelease(wxT(#classname), m_cRef); \ - \ - if ( --m_cRef == wxAutoULong(0) ) { \ - delete this; \ - return 0; \ - } \ - else \ - return m_cRef; \ - } - -// ============================================================================ -// Debugging support -// ============================================================================ - -// VZ: I don't know it's not done for compilers other than VC++ but I leave it -// as is. Please note, though, that tracing OLE interface calls may be -// incredibly useful when debugging OLE programs. -#if defined(__WXDEBUG__) && defined(__VISUALC__) -// ---------------------------------------------------------------------------- -// All OLE specific log functions have DebugTrace level (as LogTrace) -// ---------------------------------------------------------------------------- - -// tries to translate riid into a symbolic name, if possible -WXDLLIMPEXP_CORE void wxLogQueryInterface(const wxChar *szInterface, REFIID riid); - -// these functions print out the new value of reference counter -WXDLLIMPEXP_CORE void wxLogAddRef (const wxChar *szInterface, ULONG cRef); -WXDLLIMPEXP_CORE void wxLogRelease(const wxChar *szInterface, ULONG cRef); - -#else //!__WXDEBUG__ - #define wxLogQueryInterface(szInterface, riid) - #define wxLogAddRef(szInterface, cRef) - #define wxLogRelease(szInterface, cRef) -#endif //__WXDEBUG__ - -// wrapper around BSTR type (by Vadim Zeitlin) - -class WXDLLIMPEXP_CORE wxBasicString -{ -public: - // ctors & dtor - wxBasicString(const wxString& str); - wxBasicString(const wxBasicString& bstr); - ~wxBasicString(); - - wxBasicString& operator=(const wxBasicString& bstr); - - // accessors - // just get the string - operator BSTR() const { return m_bstrBuf; } - // retrieve a copy of our string - caller must SysFreeString() it later! - BSTR Get() const { return SysAllocString(m_bstrBuf); } - -private: - // actual string - BSTR m_bstrBuf; -}; - -#if wxUSE_VARIANT -// Convert variants -class WXDLLIMPEXP_FWD_BASE wxVariant; - -// wrapper for CURRENCY type used in VARIANT (VARIANT.vt == VT_CY) -class WXDLLIMPEXP_CORE wxVariantDataCurrency : public wxVariantData -{ -public: - wxVariantDataCurrency() { VarCyFromR8(0.0, &m_value); } - wxVariantDataCurrency(CURRENCY value) { m_value = value; } - - CURRENCY GetValue() const { return m_value; } - void SetValue(CURRENCY value) { m_value = value; } - - virtual bool Eq(wxVariantData& data) const; - -#if wxUSE_STD_IOSTREAM - virtual bool Write(wxSTD ostream& str) const; -#endif - virtual bool Write(wxString& str) const; - - wxVariantData* Clone() const { return new wxVariantDataCurrency(m_value); } - virtual wxString GetType() const { return wxS("currency"); } - - DECLARE_WXANY_CONVERSION() - -private: - CURRENCY m_value; -}; - - -// wrapper for SCODE type used in VARIANT (VARIANT.vt == VT_ERROR) -class WXDLLIMPEXP_CORE wxVariantDataErrorCode : public wxVariantData -{ -public: - wxVariantDataErrorCode(SCODE value = S_OK) { m_value = value; } - - SCODE GetValue() const { return m_value; } - void SetValue(SCODE value) { m_value = value; } - - virtual bool Eq(wxVariantData& data) const; - -#if wxUSE_STD_IOSTREAM - virtual bool Write(wxSTD ostream& str) const; -#endif - virtual bool Write(wxString& str) const; - - wxVariantData* Clone() const { return new wxVariantDataErrorCode(m_value); } - virtual wxString GetType() const { return wxS("errorcode"); } - - DECLARE_WXANY_CONVERSION() - -private: - SCODE m_value; -}; - -// wrapper for SAFEARRAY, used for passing multidimensional arrays in wxVariant -class WXDLLIMPEXP_CORE wxVariantDataSafeArray : public wxVariantData -{ -public: - wxEXPLICIT wxVariantDataSafeArray(SAFEARRAY* value = NULL) - { - m_value = value; - } - - SAFEARRAY* GetValue() const { return m_value; } - void SetValue(SAFEARRAY* value) { m_value = value; } - - virtual bool Eq(wxVariantData& data) const; - -#if wxUSE_STD_IOSTREAM - virtual bool Write(wxSTD ostream& str) const; -#endif - virtual bool Write(wxString& str) const; - - wxVariantData* Clone() const { return new wxVariantDataSafeArray(m_value); } - virtual wxString GetType() const { return wxS("safearray"); } - - DECLARE_WXANY_CONVERSION() - -private: - SAFEARRAY* m_value; -}; - -// Used by wxAutomationObject for its wxConvertOleToVariant() calls. -enum wxOleConvertVariantFlags -{ - wxOleConvertVariant_Default = 0, - - // If wxOleConvertVariant_ReturnSafeArrays flag is set, SAFEARRAYs - // contained in OLE VARIANTs will be returned as wxVariants - // with wxVariantDataSafeArray type instead of wxVariants - // with the list type containing the (flattened) SAFEARRAY's elements. - wxOleConvertVariant_ReturnSafeArrays = 1 -}; - -WXDLLIMPEXP_CORE -bool wxConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant); - -WXDLLIMPEXP_CORE -bool wxConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant, - long flags = wxOleConvertVariant_Default); - -#endif // wxUSE_VARIANT - -// Convert string to Unicode -WXDLLIMPEXP_CORE BSTR wxConvertStringToOle(const wxString& str); - -// Convert string from BSTR to wxString -WXDLLIMPEXP_CORE wxString wxConvertStringFromOle(BSTR bStr); - -#else // !wxUSE_OLE - -// ---------------------------------------------------------------------------- -// stub functions to avoid #if wxUSE_OLE in the main code -// ---------------------------------------------------------------------------- - -inline bool wxOleInitialize() { return false; } -inline void wxOleUninitialize() { } - -#endif // wxUSE_OLE/!wxUSE_OLE - -// RAII class initializing OLE in its ctor and undoing it in its dtor. -class wxOleInitializer -{ -public: - wxOleInitializer() - : m_ok(wxOleInitialize()) - { - } - - bool IsOk() const - { - return m_ok; - } - - ~wxOleInitializer() - { - if ( m_ok ) - wxOleUninitialize(); - } - -private: - const bool m_ok; - - wxDECLARE_NO_COPY_CLASS(wxOleInitializer); -}; - -#endif //_WX_OLEUTILS_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/safearray.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/safearray.h deleted file mode 100644 index fb5c70a3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/safearray.h +++ /dev/null @@ -1,394 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/ole/safearray.h -// Purpose: Helpers for working with OLE SAFEARRAYs. -// Author: PB -// Created: 2012-09-23 -// Copyright: (c) 2012 wxWidgets development team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _MSW_OLE_SAFEARRAY_H_ -#define _MSW_OLE_SAFEARRAY_H_ - -#include "wx/msw/ole/oleutils.h" - -#if wxUSE_OLE && wxUSE_VARIANT - -/* - wxSafeArray is wxWidgets wrapper for working with MS Windows SAFEARRAYs. - It also has convenience functions for converting between SAFEARRAY - and wxVariant with list type or wxArrayString. -*/ - -// The base class with type-independent methods. It exists solely in order to -// reduce the template bloat. -class WXDLLIMPEXP_CORE wxSafeArrayBase -{ -public: - // If owns a SAFEARRAY, it's unlocked and destroyed. - virtual ~wxSafeArrayBase() { Destroy(); } - - // Unlocks and destroys the owned SAFEARRAY. - void Destroy(); - - // Unlocks the owned SAFEARRAY, returns it and gives up its ownership. - SAFEARRAY* Detach(); - - // Returns true if has a valid SAFEARRAY. - bool HasArray() const { return m_array != NULL; } - - // Returns the number of dimensions. - size_t GetDim() const; - - // Returns lower bound for dimension dim in bound. Dimensions start at 1. - bool GetLBound(size_t dim, long& bound) const; - - // Returns upper bound for dimension dim in bound. Dimensions start at 1. - bool GetUBound(size_t dim, long& bound) const; - - // Returns element count for dimension dim. Dimensions start at 1. - size_t GetCount(size_t dim) const; - -protected: - // Default constructor, protected so the class can't be used on its own, - // it's only used as a base class of wxSafeArray<>. - wxSafeArrayBase() - { - m_array = NULL; - } - - bool Lock(); - bool Unlock(); - - SAFEARRAY* m_array; -}; - -// wxSafeArrayConvertor<> must be specialized for the type in order to allow -// using it with wxSafeArray<>. -// -// We specialize it below for the standard types. -template <VARTYPE varType> -struct wxSafeArrayConvertor {}; - -/** - Macro for specializing wxSafeArrayConvertor for simple types. - - The template parameters are: - - externType: basic C data type, e.g. wxFloat64 or wxInt32 - - varType: corresponding VARIANT type constant, e.g. VT_R8 or VT_I4. -*/ -#define wxSPECIALIZE_WXSAFEARRAY_CONVERTOR_SIMPLE(externType, varType) \ -template <> \ -struct wxSafeArrayConvertor<varType> \ -{ \ - typedef externType externT; \ - typedef externT internT; \ - static bool ToArray(const externT& from, internT& to) \ - { \ - to = from; \ - return true; \ - } \ - static bool FromArray(const internT& from, externT& to) \ - { \ - to = from; \ - return true; \ - } \ -} - -wxSPECIALIZE_WXSAFEARRAY_CONVERTOR_SIMPLE(wxInt16, VT_I2); -wxSPECIALIZE_WXSAFEARRAY_CONVERTOR_SIMPLE(wxInt32, VT_I4); -wxSPECIALIZE_WXSAFEARRAY_CONVERTOR_SIMPLE(wxFloat32, VT_R4); -wxSPECIALIZE_WXSAFEARRAY_CONVERTOR_SIMPLE(wxFloat64, VT_R8); - -// Specialization for VT_BSTR using wxString. -template <> -struct wxSafeArrayConvertor<VT_BSTR> -{ - typedef wxString externT; - typedef BSTR internT; - - static bool ToArray(const wxString& from, BSTR& to) - { - BSTR bstr = wxConvertStringToOle(from); - - if ( !bstr && !from.empty() ) - { - // BSTR can be NULL for empty strings but if the string was - // not empty, it means we failed to allocate memory for it. - return false; - } - to = bstr; - return true; - } - - static bool FromArray(const BSTR from, wxString& to) - { - to = wxConvertStringFromOle(from); - return true; - } -}; - -// Specialization for VT_VARIANT using wxVariant. -template <> -struct wxSafeArrayConvertor<VT_VARIANT> -{ - typedef wxVariant externT; - typedef VARIANT internT; - - static bool ToArray(const wxVariant& from, VARIANT& to) - { - return wxConvertVariantToOle(from, to); - } - - static bool FromArray(const VARIANT& from, wxVariant& to) - { - return wxConvertOleToVariant(from, to); - } -}; - - -template <VARTYPE varType> -class wxSafeArray : public wxSafeArrayBase -{ -public: - typedef wxSafeArrayConvertor<varType> Convertor; - typedef typename Convertor::internT internT; - typedef typename Convertor::externT externT; - - // Default constructor. - wxSafeArray() - { - m_array = NULL; - } - - // Creates and locks a zero-based one-dimensional SAFEARRAY with the given - // number of elements. - bool Create(size_t count) - { - SAFEARRAYBOUND bound; - - bound.lLbound = 0; - bound.cElements = count; - return Create(&bound, 1); - } - - // Creates and locks a SAFEARRAY. See SafeArrayCreate() in MSDN - // documentation for more information. - bool Create(SAFEARRAYBOUND* bound, size_t dimensions) - { - wxCHECK_MSG( !m_array, false, wxS("Can't be created twice") ); - - m_array = SafeArrayCreate(varType, dimensions, bound); - if ( !m_array ) - return false; - - return Lock(); - } - - /** - Creates a 0-based one-dimensional SAFEARRAY from wxVariant with the - list type. - - Can be called only for wxSafeArray<VT_VARIANT>. - */ - bool CreateFromListVariant(const wxVariant& variant) - { - wxCHECK(varType == VT_VARIANT, false); - wxCHECK(variant.GetType() == wxS("list"), false); - - if ( !Create(variant.GetCount()) ) - return false; - - VARIANT* data = static_cast<VARIANT*>(m_array->pvData); - - for ( size_t i = 0; i < variant.GetCount(); i++) - { - if ( !Convertor::ToArray(variant[i], data[i]) ) - return false; - } - return true; - } - - /** - Creates a 0-based one-dimensional SAFEARRAY from wxArrayString. - - Can be called only for wxSafeArray<VT_BSTR>. - */ - bool CreateFromArrayString(const wxArrayString& strings) - { - wxCHECK(varType == VT_BSTR, false); - - if ( !Create(strings.size()) ) - return false; - - BSTR* data = static_cast<BSTR*>(m_array->pvData); - - for ( size_t i = 0; i < strings.size(); i++ ) - { - if ( !Convertor::ToArray(strings[i], data[i]) ) - return false; - } - return true; - } - - /** - Attaches and locks an existing SAFEARRAY. - The array must have the same VARTYPE as this wxSafeArray was - instantiated with. - */ - bool Attach(SAFEARRAY* array) - { - wxCHECK_MSG(!m_array && array, false, - wxS("Can only attach a valid array to an uninitialized one") ); - - VARTYPE vt; - HRESULT hr = SafeArrayGetVartype(array, &vt); - if ( FAILED(hr) ) - { - wxLogApiError(wxS("SafeArrayGetVarType()"), hr); - return false; - } - - wxCHECK_MSG(vt == varType, false, - wxS("Attaching array of invalid type")); - - m_array = array; - return Lock(); - } - - /** - Indices have the same row-column order as rgIndices in - SafeArrayPutElement(), i.e. they follow BASIC rules, NOT C ones. - */ - bool SetElement(long* indices, const externT& element) - { - wxCHECK_MSG( m_array, false, wxS("Uninitialized array") ); - wxCHECK_MSG( indices, false, wxS("Invalid index") ); - - internT* data; - - if ( FAILED( SafeArrayPtrOfIndex(m_array, (LONG *)indices, (void**)&data) ) ) - return false; - - return Convertor::ToArray(element, *data); - } - - /** - Indices have the same row-column order as rgIndices in - SafeArrayPutElement(), i.e. they follow BASIC rules, NOT C ones. - */ - bool GetElement(long* indices, externT& element) const - { - wxCHECK_MSG( m_array, false, wxS("Uninitialized array") ); - wxCHECK_MSG( indices, false, wxS("Invalid index") ); - - internT* data; - - if ( FAILED( SafeArrayPtrOfIndex(m_array, (LONG *)indices, (void**)&data) ) ) - return false; - - return Convertor::FromArray(*data, element); - } - - /** - Converts the array to a wxVariant with the list type, regardless of the - underlying SAFEARRAY type. - - If the array is multidimensional, it is flattened using the alghoritm - originally employed in wxConvertOleToVariant(). - */ - bool ConvertToVariant(wxVariant& variant) const - { - wxCHECK_MSG( m_array, false, wxS("Uninitialized array") ); - - size_t dims = m_array->cDims; - size_t count = 1; - - for ( size_t i = 0; i < dims; i++ ) - count *= m_array->rgsabound[i].cElements; - - const internT* data = static_cast<const internT*>(m_array->pvData); - externT element; - - variant.ClearList(); - for ( size_t i1 = 0; i1 < count; i1++ ) - { - if ( !Convertor::FromArray(data[i1], element) ) - { - variant.ClearList(); - return false; - } - variant.Append(element); - } - return true; - } - - /** - Converts an array to an ArrayString. - - Can be called only for wxSafeArray<VT_BSTR>. If the array is - multidimensional, it is flattened using the alghoritm originally - employed in wxConvertOleToVariant(). - */ - bool ConvertToArrayString(wxArrayString& strings) const - { - wxCHECK_MSG( m_array, false, wxS("Uninitialized array") ); - wxCHECK(varType == VT_BSTR, false); - - size_t dims = m_array->cDims; - size_t count = 1; - - for ( size_t i = 0; i < dims; i++ ) - count *= m_array->rgsabound[i].cElements; - - const BSTR* data = static_cast<const BSTR*>(m_array->pvData); - wxString element; - - strings.clear(); - strings.reserve(count); - for ( size_t i1 = 0; i1 < count; i1++ ) - { - if ( !Convertor::FromArray(data[i1], element) ) - { - strings.clear(); - return false; - } - strings.push_back(element); - } - return true; - } - - static bool ConvertToVariant(SAFEARRAY* psa, wxVariant& variant) - { - wxSafeArray<varType> sa; - bool result = false; - - if ( sa.Attach(psa) ) - result = sa.ConvertToVariant(variant); - - if ( sa.HasArray() ) - sa.Detach(); - - return result; - } - - static bool ConvertToArrayString(SAFEARRAY* psa, wxArrayString& strings) - { - wxSafeArray<varType> sa; - bool result = false; - - if ( sa.Attach(psa) ) - result = sa.ConvertToArrayString(strings); - - if ( sa.HasArray() ) - sa.Detach(); - - return result; - } - - wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxSafeArray, varType); -}; - -#endif // wxUSE_OLE && wxUSE_VARIANT - -#endif // _MSW_OLE_SAFEARRAY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/uuid.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/uuid.h deleted file mode 100644 index c712b79d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ole/uuid.h +++ /dev/null @@ -1,87 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/ole/uuid.h -// Purpose: encapsulates an UUID with some added helper functions -// Author: Vadim Zeitlin -// Modified by: -// Created: 11.07.97 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -// -// Notes: you should link your project with RPCRT4.LIB! -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OLEUUID_H -#define _WX_OLEUUID_H - -#include "wx/chartype.h" -// ------------------------------------------------------------------ -// UUID (Universally Unique IDentifier) definition -// ------------------------------------------------------------------ - -// ----- taken from RPC.H -#ifndef UUID_DEFINED // in some cases RPC.H will be already - typedef struct - { - unsigned long Data1; - unsigned short Data2; - unsigned short Data3; - unsigned char Data4[8]; - } UUID; // UUID = GUID = CLSID = LIBID = IID -#endif // UUID_DEFINED - -#ifndef GUID_DEFINED - typedef UUID GUID; - #define UUID_DEFINED // prevent redefinition -#endif // GUID_DEFINED - -typedef unsigned char uchar; - -// ------------------------------------------------------------------ -// a class to store UUID and it's string representation -// ------------------------------------------------------------------ - -// uses RPC functions to create/convert Universally Unique Identifiers -class WXDLLIMPEXP_CORE Uuid -{ -private: - UUID m_uuid; - wxUChar *m_pszUuid; // this string is alloc'd and freed by RPC - wxChar *m_pszCForm; // this string is allocated in Set/Create - - void UuidToCForm(); - - // function used to set initial state by all ctors - void Init() { m_pszUuid = NULL; m_pszCForm = NULL; } - -public: - // ctors & dtor - Uuid() { Init(); } - Uuid(const wxChar *pc) { Init(); Set(pc); } - Uuid(const UUID &uuid) { Init(); Set(uuid); } - ~Uuid(); - - // copy ctor and assignment operator needed for this class - Uuid(const Uuid& uuid); - Uuid& operator=(const Uuid& uuid); - - // create a brand new UUID - void Create(); - - // set value of UUID - bool Set(const wxChar *pc); // from a string, returns true if ok - void Set(const UUID& uuid); // from another UUID (never fails) - - // comparison operators - bool operator==(const Uuid& uuid) const; - bool operator!=(const Uuid& uuid) const { return !(*this == uuid); } - - // accessors - operator const UUID*() const { return &m_uuid; } - operator const wxChar*() const { return (wxChar *)(m_pszUuid); } - - // return string representation of the UUID in the C form - // (as in DEFINE_GUID macro) - const wxChar *CForm() const { return m_pszCForm; } -}; - -#endif //_WX_OLEUUID_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ownerdrawnbutton.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ownerdrawnbutton.h deleted file mode 100644 index 2cb6c785..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ownerdrawnbutton.h +++ /dev/null @@ -1,139 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/ownerdrawnbutton.h -// Purpose: Common base class for wxCheckBox and wxRadioButton -// Author: Vadim Zeitlin -// Created: 2014-05-04 -// Copyright: (c) 2014 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_OWNERDRAWNBUTTON_H_ -#define _WX_MSW_OWNERDRAWNBUTTON_H_ - -// ---------------------------------------------------------------------------- -// wxMSWOwnerDrawnButton: base class for any kind of Windows buttons -// ---------------------------------------------------------------------------- - -// This class contains the type-independent part of wxMSWOwnerDrawnButton and -// is implemented in src/msw/control.cpp. -// -// Notice that this class is internal implementation detail only and is -// intentionally not documented. Ideally it wouldn't be even exported from the -// DLL but this somehow breaks building of applications using wxWidgets with -// Intel compiler using LTCG, so we do export it. -class WXDLLIMPEXP_CORE wxMSWOwnerDrawnButtonBase -{ -protected: - // Ctor takes the back pointer to the real window, must be non-NULL. - wxMSWOwnerDrawnButtonBase(wxWindow* win) : - m_win(win) - { - m_isPressed = - m_isHot = false; - } - - // Explicitly define the destructor even if it's trivial to make it - // protected. This avoids compiler warnings about the fact that this class - // has virtual functions, but no virtual destructor without making the dtor - // virtual which is not needed here as objects are never deleted via - // pointers to this class (and protected dtor enforces this). - // - // Unfortunately g++ 3.4.5 still complains about the dtor being non virtual - // even if it is protected, but actually does not give any warnings if the - // dtor is not defined at all, so work around this 3.4.5 bug inside our - // general g++ workaround. -#if wxCHECK_GCC_VERSION(4, 0) - ~wxMSWOwnerDrawnButtonBase() { } -#endif // g++ 4.0+ - - // Make the control owner drawn if necessary to implement support for the - // given foreground colour. - void MSWMakeOwnerDrawnIfNecessary(const wxColour& colFg); - - // Return true if the control is currently owner drawn. - bool MSWIsOwnerDrawn() const; - - // Draw the button if the message information about which is provided in - // the given DRAWITEMSTRUCT asks us to do it, otherwise just return false. - bool MSWDrawButton(WXDRAWITEMSTRUCT *item); - - - // Methods which must be overridden in the derived concrete class. - - // Return the style to use for the non-owner-drawn button. - virtual int MSWGetButtonStyle() const = 0; - - // Called after reverting button to non-owner drawn state, provides a hook - // for wxCheckBox-specific hack. - virtual void MSWOnButtonResetOwnerDrawn() { } - - // Return the flags (such as wxCONTROL_CHECKED) to use for the control when - // drawing it. Notice that this class already takes care of the common - // logic and sets the other wxCONTROL_XXX flags on its own, this method - // really only needs to return the flags depending on the checked state. - virtual int MSWGetButtonCheckedFlag() const = 0; - - // Actually draw the check or radio bitmap, typically just by using the - // appropriate wxRendererNative method. - virtual void - MSWDrawButtonBitmap(wxDC& dc, const wxRect& rect, int flags) = 0; - - -private: - // Make the control owner drawn or reset it to normal style. - void MSWMakeOwnerDrawn(bool ownerDrawn); - - // Event handlers used to update the appearance of owner drawn button. - void OnMouseEnterOrLeave(wxMouseEvent& event); - void OnMouseLeft(wxMouseEvent& event); - void OnFocus(wxFocusEvent& event); - - - // The real window. - wxWindow* const m_win; - - // true if the checkbox is currently pressed - bool m_isPressed; - - // true if mouse is currently over the control - bool m_isHot; - - - wxDECLARE_NO_COPY_CLASS(wxMSWOwnerDrawnButtonBase); -}; - -// This class uses a weak version of CRTP, i.e. it's a template class taking -// the base class that the class deriving from it would normally derive from. -template <class T> -class wxMSWOwnerDrawnButton - : public T, - private wxMSWOwnerDrawnButtonBase -{ -private: - typedef T Base; - -public: - wxMSWOwnerDrawnButton() : wxMSWOwnerDrawnButtonBase(this) - { - } - - virtual bool SetForegroundColour(const wxColour& colour) wxOVERRIDE - { - if ( !Base::SetForegroundColour(colour) ) - return false; - - MSWMakeOwnerDrawnIfNecessary(colour); - - return true; - } - - virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item) wxOVERRIDE - { - return MSWDrawButton(item) || Base::MSWOnDraw(item); - } - -protected: - bool IsOwnerDrawn() const { return MSWIsOwnerDrawn(); } -}; - -#endif // _WX_MSW_OWNERDRAWNBUTTON_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ownerdrw.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ownerdrw.h deleted file mode 100644 index 789a7f2d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/ownerdrw.h +++ /dev/null @@ -1,28 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/ownerdrw.h -// Purpose: wxOwnerDrawn class -// Author: Marcin Malich -// Modified by: -// Created: 2009-09-22 -// Copyright: (c) 2009 Marcin Malich <me@malcom.pl> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OWNERDRW_H_ -#define _WX_OWNERDRW_H_ - -#if wxUSE_OWNER_DRAWN - -class WXDLLIMPEXP_CORE wxOwnerDrawn : public wxOwnerDrawnBase -{ -public: - wxOwnerDrawn() {} - virtual ~wxOwnerDrawn() {} - - virtual bool OnDrawItem(wxDC& dc, const wxRect& rc, - wxODAction act, wxODStatus stat); -}; - -#endif // wxUSE_OWNER_DRAWN - -#endif // _WX_OWNERDRW_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/palette.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/palette.h deleted file mode 100644 index 1f1d1573..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/palette.h +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/palette.h -// Purpose: wxPalette class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PALETTE_H_ -#define _WX_PALETTE_H_ - -#include "wx/gdiobj.h" - -class WXDLLIMPEXP_CORE wxPalette : public wxPaletteBase -{ -public: - wxPalette() { } - wxPalette(int n, - const unsigned char *red, const unsigned char *green, const unsigned char *blue) - { - Create(n, red, green, blue); - } - - bool Create(int n, - const unsigned char *red, const unsigned char *green, const unsigned char *blue); - - virtual int GetColoursCount() const; - - int - GetPixel(unsigned char red, unsigned char green, unsigned char blue) const; - - bool - GetRGB(int pixel, - unsigned char *red, unsigned char *green, unsigned char *blue) const; - - // implementation - WXHPALETTE GetHPALETTE() const; - void SetHPALETTE(WXHPALETTE pal); - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - -private: - wxDECLARE_DYNAMIC_CLASS(wxPalette); -}; - -#endif // _WX_PALETTE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/panel.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/panel.h deleted file mode 100644 index 4762bef1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/panel.h +++ /dev/null @@ -1,56 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/panel.h -// Purpose: wxMSW-specific wxPanel class. -// Author: Vadim Zeitlin -// Created: 2011-03-18 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_PANEL_H_ -#define _WX_MSW_PANEL_H_ - -class WXDLLIMPEXP_FWD_CORE wxBrush; - -// ---------------------------------------------------------------------------- -// wxPanel -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPanel : public wxPanelBase -{ -public: - wxPanel() { } - - wxPanel(wxWindow *parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTAB_TRAVERSAL | wxNO_BORDER, - const wxString& name = wxPanelNameStr) - { - Create(parent, winid, pos, size, style, name); - } - - // This is overridden for MSW to return true for all panels that are child - // of a window with themed background (such as wxNotebook) which should - // show through the child panels. - virtual bool HasTransparentBackground(); - - -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED_CONSTRUCTOR( - wxPanel(wxWindow *parent, - int x, int y, int width, int height, - long style = wxTAB_TRAVERSAL | wxNO_BORDER, - const wxString& name = wxPanelNameStr) - { - Create(parent, wxID_ANY, wxPoint(x, y), wxSize(width, height), style, name); - } - ) -#endif // WXWIN_COMPATIBILITY_2_8 - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxPanel); -}; - -#endif // _WX_MSW_PANEL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pbrush.cur b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pbrush.cur deleted file mode 100644 index 299016a3..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pbrush.cur and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pen.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pen.h deleted file mode 100644 index 7641cd42..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pen.h +++ /dev/null @@ -1,78 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/pen.h -// Purpose: wxPen class -// Author: Julian Smart -// Modified by: Vadim Zeitlin: fixed operator=(), ==(), !=() -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PEN_H_ -#define _WX_PEN_H_ - -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" - -// ---------------------------------------------------------------------------- -// Pen -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPen : public wxPenBase -{ -public: - wxPen() { } - wxPen(const wxColour& col, int width = 1, wxPenStyle style = wxPENSTYLE_SOLID); - - wxPen(const wxBitmap& stipple, int width); - virtual ~wxPen() { } - - bool operator==(const wxPen& pen) const; - bool operator!=(const wxPen& pen) const { return !(*this == pen); } - - // Override in order to recreate the pen - void SetColour(const wxColour& col); - void SetColour(unsigned char r, unsigned char g, unsigned char b); - - void SetWidth(int width); - void SetStyle(wxPenStyle style); - void SetStipple(const wxBitmap& stipple); - void SetDashes(int nb_dashes, const wxDash *dash); - void SetJoin(wxPenJoin join); - void SetCap(wxPenCap cap); - - wxColour GetColour() const; - int GetWidth() const; - wxPenStyle GetStyle() const; - wxPenJoin GetJoin() const; - wxPenCap GetCap() const; - int GetDashes(wxDash** ptr) const; - wxDash* GetDash() const; - int GetDashCount() const; - wxBitmap* GetStipple() const; - - - wxDEPRECATED_MSG("use wxPENSTYLE_XXX constants") - wxPen(const wxColour& col, int width, int style); - - wxDEPRECATED_MSG("use wxPENSTYLE_XXX constants") - void SetStyle(int style) { SetStyle((wxPenStyle)style); } - - - // internal: wxGDIObject methods - virtual bool RealizeResource(); - virtual bool FreeResource(bool force = false); - virtual WXHANDLE GetResourceHandle() const; - virtual bool IsFree() const; - -protected: - virtual wxGDIRefData* CreateGDIRefData() const; - virtual wxGDIRefData* CloneGDIRefData(const wxGDIRefData* data) const; - - // same as FreeResource() + RealizeResource() - bool Recreate(); - - wxDECLARE_DYNAMIC_CLASS(wxPen); -}; - -#endif // _WX_PEN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pencil.cur b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pencil.cur deleted file mode 100644 index afa76025..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pencil.cur and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pntleft.cur b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pntleft.cur deleted file mode 100644 index e7192aab..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pntleft.cur and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pntright.cur b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pntright.cur deleted file mode 100644 index 565447b0..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/pntright.cur and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/popupwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/popupwin.h deleted file mode 100644 index 3fbd2d4d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/popupwin.h +++ /dev/null @@ -1,42 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/popupwin.h -// Purpose: wxPopupWindow class for wxMSW -// Author: Vadim Zeitlin -// Modified by: -// Created: 06.01.01 -// Copyright: (c) 2001 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_POPUPWIN_H_ -#define _WX_MSW_POPUPWIN_H_ - -// ---------------------------------------------------------------------------- -// wxPopupWindow -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPopupWindow : public wxPopupWindowBase -{ -public: - wxPopupWindow() { } - - wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE) - { (void)Create(parent, flags); } - - bool Create(wxWindow *parent, int flags = wxBORDER_NONE); - - virtual void SetFocus(); - virtual bool Show(bool show = true); - - // return the style to be used for the popup windows - virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle) const; - - // get the HWND to be used as parent of this window with CreateWindow() - virtual WXHWND MSWGetParent() const; - -protected: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxPopupWindow); -}; - -#endif // _WX_MSW_POPUPWIN_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/printdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/printdlg.h deleted file mode 100644 index b3419cbd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/printdlg.h +++ /dev/null @@ -1,125 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/printdlg.h -// Purpose: wxPrintDialog, wxPageSetupDialog classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRINTDLG_H_ -#define _WX_PRINTDLG_H_ - -#if wxUSE_PRINTING_ARCHITECTURE - -#include "wx/dialog.h" -#include "wx/cmndata.h" -#include "wx/prntbase.h" -#include "wx/printdlg.h" - -class WXDLLIMPEXP_FWD_CORE wxDC; -class WinPrinter; - -//---------------------------------------------------------------------------- -// wxWindowsPrintNativeData -//---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxWindowsPrintNativeData: public wxPrintNativeDataBase -{ -public: - wxWindowsPrintNativeData(); - virtual ~wxWindowsPrintNativeData(); - - virtual bool TransferTo( wxPrintData &data ); - virtual bool TransferFrom( const wxPrintData &data ); - - virtual bool Ok() const { return IsOk(); } - virtual bool IsOk() const; - - void InitializeDevMode(const wxString &printerName = wxEmptyString, WinPrinter* printer = NULL); - void* GetDevMode() const { return m_devMode; } - void SetDevMode(void* data) { m_devMode = data; } - void* GetDevNames() const { return m_devNames; } - void SetDevNames(void* data) { m_devNames = data; } - -private: - void* m_devMode; - void* m_devNames; - - short m_customWindowsPaperId; - -private: - wxDECLARE_DYNAMIC_CLASS(wxWindowsPrintNativeData); -}; - -// --------------------------------------------------------------------------- -// wxWindowsPrintDialog: the MSW dialog for printing -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxWindowsPrintDialog : public wxPrintDialogBase -{ -public: - wxWindowsPrintDialog(wxWindow *parent, wxPrintDialogData* data = NULL); - wxWindowsPrintDialog(wxWindow *parent, wxPrintData* data); - virtual ~wxWindowsPrintDialog(); - - bool Create(wxWindow *parent, wxPrintDialogData* data = NULL); - virtual int ShowModal(); - - wxPrintDialogData& GetPrintDialogData() { return m_printDialogData; } - wxPrintData& GetPrintData() { return m_printDialogData.GetPrintData(); } - - virtual wxDC *GetPrintDC(); - -private: - wxPrintDialogData m_printDialogData; - wxPrinterDC* m_printerDC; - bool m_destroyDC; - wxWindow* m_dialogParent; - -private: - bool ConvertToNative( wxPrintDialogData &data ); - bool ConvertFromNative( wxPrintDialogData &data ); - - // holds MSW handle - void* m_printDlg; - -private: - wxDECLARE_CLASS(wxWindowsPrintDialog); - wxDECLARE_NO_COPY_CLASS(wxWindowsPrintDialog); -}; - -// --------------------------------------------------------------------------- -// wxWindowsPageSetupDialog: the MSW page setup dialog -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxWindowsPageSetupDialog: public wxPageSetupDialogBase -{ -public: - wxWindowsPageSetupDialog(); - wxWindowsPageSetupDialog(wxWindow *parent, wxPageSetupDialogData *data = NULL); - virtual ~wxWindowsPageSetupDialog(); - - bool Create(wxWindow *parent, wxPageSetupDialogData *data = NULL); - virtual int ShowModal(); - bool ConvertToNative( wxPageSetupDialogData &data ); - bool ConvertFromNative( wxPageSetupDialogData &data ); - - virtual wxPageSetupDialogData& GetPageSetupDialogData() { return m_pageSetupData; } - -private: - wxPageSetupDialogData m_pageSetupData; - wxWindow* m_dialogParent; - - // holds MSW handle - void* m_pageDlg; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxWindowsPageSetupDialog); -}; - -#endif // wxUSE_PRINTING_ARCHITECTURE - -#endif - // _WX_PRINTDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/printwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/printwin.h deleted file mode 100644 index b6fceef7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/printwin.h +++ /dev/null @@ -1,66 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/printwin.h -// Purpose: wxWindowsPrinter, wxWindowsPrintPreview classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRINTWIN_H_ -#define _WX_PRINTWIN_H_ - -#include "wx/prntbase.h" - -// --------------------------------------------------------------------------- -// Represents the printer: manages printing a wxPrintout object -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxWindowsPrinter : public wxPrinterBase -{ - wxDECLARE_DYNAMIC_CLASS(wxWindowsPrinter); - -public: - wxWindowsPrinter(wxPrintDialogData *data = NULL); - - virtual bool Print(wxWindow *parent, - wxPrintout *printout, - bool prompt = true); - - virtual wxDC *PrintDialog(wxWindow *parent); - virtual bool Setup(wxWindow *parent); - -private: - wxDECLARE_NO_COPY_CLASS(wxWindowsPrinter); -}; - -// --------------------------------------------------------------------------- -// wxPrintPreview: programmer creates an object of this class to preview a -// wxPrintout. -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxWindowsPrintPreview : public wxPrintPreviewBase -{ -public: - wxWindowsPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting = NULL, - wxPrintDialogData *data = NULL); - wxWindowsPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting, - wxPrintData *data); - virtual ~wxWindowsPrintPreview(); - - virtual bool Print(bool interactive); - virtual void DetermineScaling(); - -protected: -#if wxUSE_ENH_METAFILE - virtual bool RenderPageIntoBitmap(wxBitmap& bmp, int pageNum); -#endif - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxWindowsPrintPreview); -}; - -#endif -// _WX_PRINTWIN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private.h deleted file mode 100644 index 6af753ff..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private.h +++ /dev/null @@ -1,1163 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/private.h -// Purpose: Private declarations: as this header is only included by -// wxWidgets itself, it may contain identifiers which don't start -// with "wx". -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_H_ -#define _WX_PRIVATE_H_ - -#include "wx/msw/wrapwin.h" - -#include "wx/log.h" - -#if wxUSE_GUI - #include "wx/window.h" -#endif // wxUSE_GUI - -class WXDLLIMPEXP_FWD_CORE wxFont; -class WXDLLIMPEXP_FWD_CORE wxWindow; -class WXDLLIMPEXP_FWD_CORE wxWindowBase; - -// --------------------------------------------------------------------------- -// private constants -// --------------------------------------------------------------------------- - -// 260 was taken from windef.h -#ifndef MAX_PATH - #define MAX_PATH 260 -#endif - -// --------------------------------------------------------------------------- -// standard icons from the resources -// --------------------------------------------------------------------------- - -#if wxUSE_GUI - -extern WXDLLIMPEXP_DATA_CORE(HICON) wxSTD_FRAME_ICON; -extern WXDLLIMPEXP_DATA_CORE(HICON) wxSTD_MDIPARENTFRAME_ICON; -extern WXDLLIMPEXP_DATA_CORE(HICON) wxSTD_MDICHILDFRAME_ICON; -extern WXDLLIMPEXP_DATA_CORE(HICON) wxDEFAULT_FRAME_ICON; -extern WXDLLIMPEXP_DATA_CORE(HICON) wxDEFAULT_MDIPARENTFRAME_ICON; -extern WXDLLIMPEXP_DATA_CORE(HICON) wxDEFAULT_MDICHILDFRAME_ICON; -extern WXDLLIMPEXP_DATA_CORE(HFONT) wxSTATUS_LINE_FONT; - -#endif // wxUSE_GUI - -// --------------------------------------------------------------------------- -// global data -// --------------------------------------------------------------------------- - -extern WXDLLIMPEXP_DATA_BASE(HINSTANCE) wxhInstance; - -extern "C" -{ - WXDLLIMPEXP_BASE HINSTANCE wxGetInstance(); -} - -WXDLLIMPEXP_BASE void wxSetInstance(HINSTANCE hInst); - -// --------------------------------------------------------------------------- -// define things missing from some compilers' headers -// --------------------------------------------------------------------------- - -// this defines a CASTWNDPROC macro which casts a pointer to the type of a -// window proc -#if defined(STRICT) || defined(__GNUC__) - typedef WNDPROC WndProcCast; -#else - typedef FARPROC WndProcCast; -#endif - - -#define CASTWNDPROC (WndProcCast) - - - -// --------------------------------------------------------------------------- -// some stuff for old Windows versions (FIXME: what does it do here??) -// --------------------------------------------------------------------------- - -#if !defined(APIENTRY) // NT defines APIENTRY, 3.x not - #define APIENTRY FAR PASCAL -#endif - -/* - * Decide what window classes we're going to use - * for this combination of CTl3D/FAFA settings - */ - -#define STATIC_CLASS wxT("STATIC") -#define STATIC_FLAGS (SS_LEFT|WS_CHILD|WS_VISIBLE) -#define CHECK_CLASS wxT("BUTTON") -#define CHECK_FLAGS (BS_AUTOCHECKBOX|WS_TABSTOP|WS_CHILD) -#define CHECK_IS_FAFA FALSE -#define RADIO_CLASS wxT("BUTTON") -#define RADIO_FLAGS (BS_AUTORADIOBUTTON|WS_CHILD|WS_VISIBLE) -#define RADIO_SIZE 20 -#define RADIO_IS_FAFA FALSE -#define PURE_WINDOWS -#define GROUP_CLASS wxT("BUTTON") -#define GROUP_FLAGS (BS_GROUPBOX|WS_CHILD|WS_VISIBLE) - -/* -#define BITCHECK_FLAGS (FB_BITMAP|FC_BUTTONDRAW|FC_DEFAULT|WS_VISIBLE) -#define BITRADIO_FLAGS (FC_BUTTONDRAW|FB_BITMAP|FC_RADIO|WS_CHILD|WS_VISIBLE) -*/ - -// --------------------------------------------------------------------------- -// misc macros -// --------------------------------------------------------------------------- - -#define MEANING_CHARACTER '0' -#define DEFAULT_ITEM_WIDTH 100 -#define DEFAULT_ITEM_HEIGHT 80 - -// Scale font to get edit control height -//#define EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy) (3*(cy)/2) -#define EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy) (cy+8) - -// Generic subclass proc, for panel item moving/sizing and intercept -// EDIT control VK_RETURN messages -extern LONG APIENTRY - wxSubclassedGenericControlProc(WXHWND hWnd, WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - -// --------------------------------------------------------------------------- -// useful macros and functions -// --------------------------------------------------------------------------- - -// a wrapper macro for ZeroMemory() -#define wxZeroMemory(obj) ::ZeroMemory(&obj, sizeof(obj)) - -// This one is a macro so that it can be tested with #ifdef, it will be -// undefined if it cannot be implemented for a given compiler. -// Vc++, bcc, dmc, ow, mingw akk have _get_osfhandle() and Cygwin has -// get_osfhandle. Others are currently unknown, e.g. Salford, Intel, Visual -// Age. -#if defined(__CYGWIN__) - #define wxGetOSFHandle(fd) ((HANDLE)get_osfhandle(fd)) -#elif defined(__VISUALC__) \ - || defined(__BORLANDC__) \ - || defined(__MINGW32__) - #define wxGetOSFHandle(fd) ((HANDLE)_get_osfhandle(fd)) - #define wxOpenOSFHandle(h, flags) (_open_osfhandle(wxPtrToUInt(h), flags)) - - wxDECL_FOR_STRICT_MINGW32(FILE*, _fdopen, (int, const char*)) - #define wx_fdopen _fdopen -#endif - -// close the handle in the class dtor -template <wxUIntPtr INVALID_VALUE = (wxUIntPtr)INVALID_HANDLE_VALUE> -class AutoHANDLE -{ -public: - wxEXPLICIT AutoHANDLE(HANDLE handle = InvalidHandle()) : m_handle(handle) { } - - bool IsOk() const { return m_handle != InvalidHandle(); } - operator HANDLE() const { return m_handle; } - - ~AutoHANDLE() { if ( IsOk() ) DoClose(); } - - void Close() - { - wxCHECK_RET(IsOk(), wxT("Handle must be valid")); - - DoClose(); - - m_handle = InvalidHandle(); - } - -protected: - // We need this helper function because integer INVALID_VALUE is not - // implicitly convertible to HANDLE, which is a pointer. - static HANDLE InvalidHandle() - { - return static_cast<HANDLE>(INVALID_VALUE); - } - - void DoClose() - { - if ( !::CloseHandle(m_handle) ) - wxLogLastError(wxT("CloseHandle")); - } - - WXHANDLE m_handle; -}; - -// a template to make initializing Windows structs less painful: it zeros all -// the struct fields and also sets cbSize member to the correct value (and so -// can be only used with structures which have this member...) -template <class T> -struct WinStruct : public T -{ - WinStruct() - { - ::ZeroMemory(this, sizeof(T)); - - // explicit qualification is required here for this to be valid C++ - this->cbSize = sizeof(T); - } -}; - - -// Macros for converting wxString to the type expected by API functions. -// -// Normally it is enough to just use wxString::t_str() which is implicitly -// convertible to LPCTSTR, but in some cases an explicit conversion is required. -// -// In such cases wxMSW_CONV_LPCTSTR() should be used. But if an API function -// takes a non-const pointer, wxMSW_CONV_LPTSTR() which casts away the -// constness (but doesn't make it possible to really modify the returned -// pointer, of course) should be used. And if a string is passed as LPARAM, use -// wxMSW_CONV_LPARAM() which does the required ugly reinterpret_cast<> too. -#define wxMSW_CONV_LPCTSTR(s) static_cast<const wxChar *>((s).t_str()) -#define wxMSW_CONV_LPTSTR(s) const_cast<wxChar *>(wxMSW_CONV_LPCTSTR(s)) -#define wxMSW_CONV_LPARAM(s) reinterpret_cast<LPARAM>(wxMSW_CONV_LPCTSTR(s)) - - -#if wxUSE_GUI - -#include "wx/gdicmn.h" -#include "wx/colour.h" - -// make conversion from wxColour and COLORREF a bit less painful -inline COLORREF wxColourToRGB(const wxColour& c) -{ - return RGB(c.Red(), c.Green(), c.Blue()); -} - -inline COLORREF wxColourToPalRGB(const wxColour& c) -{ - return PALETTERGB(c.Red(), c.Green(), c.Blue()); -} - -inline wxColour wxRGBToColour(COLORREF rgb) -{ - return wxColour(GetRValue(rgb), GetGValue(rgb), GetBValue(rgb)); -} - -inline void wxRGBToColour(wxColour& c, COLORREF rgb) -{ - c.Set(GetRValue(rgb), GetGValue(rgb), GetBValue(rgb)); -} - -// get the standard colour map for some standard colours - see comment in this -// function to understand why is it needed and when should it be used -// -// it returns a wxCOLORMAP (can't use COLORMAP itself here as comctl32.dll -// might be not included/available) array of size wxSTD_COLOUR_MAX -// -// NB: if you change these colours, update wxBITMAP_STD_COLOURS in the -// resources as well: it must have the same number of pixels! -enum wxSTD_COLOUR -{ - wxSTD_COL_BTNTEXT, - wxSTD_COL_BTNSHADOW, - wxSTD_COL_BTNFACE, - wxSTD_COL_BTNHIGHLIGHT, - wxSTD_COL_MAX -}; - -struct WXDLLIMPEXP_CORE wxCOLORMAP -{ - COLORREF from, to; -}; - -// this function is implemented in src/msw/window.cpp -extern wxCOLORMAP *wxGetStdColourMap(); - -// create a wxRect from Windows RECT -inline wxRect wxRectFromRECT(const RECT& rc) -{ - return wxRect(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top); -} - -// copy Windows RECT to our wxRect -inline void wxCopyRECTToRect(const RECT& rc, wxRect& rect) -{ - rect = wxRectFromRECT(rc); -} - -// and vice versa -inline void wxCopyRectToRECT(const wxRect& rect, RECT& rc) -{ - // note that we don't use wxRect::GetRight() as it is one of compared to - // wxRectFromRECT() above - rc.top = rect.y; - rc.left = rect.x; - rc.right = rect.x + rect.width; - rc.bottom = rect.y + rect.height; -} - -// translations between HIMETRIC units (which OLE likes) and pixels (which are -// liked by all the others) - implemented in msw/utilsexc.cpp -extern void HIMETRICToPixel(LONG *x, LONG *y); -extern void HIMETRICToPixel(LONG *x, LONG *y, HDC hdcRef); -extern void PixelToHIMETRIC(LONG *x, LONG *y); -extern void PixelToHIMETRIC(LONG *x, LONG *y, HDC hdcRef); - -// Windows convention of the mask is opposed to the wxWidgets one, so we need -// to invert the mask each time we pass one/get one to/from Windows -extern HBITMAP wxInvertMask(HBITMAP hbmpMask, int w = 0, int h = 0); - -// Creates an icon or cursor depending from a bitmap -// -// The bitmap must be valid and it should have a mask. If it doesn't, a default -// mask is created using light grey as the transparent colour. -extern HICON wxBitmapToHICON(const wxBitmap& bmp); - -// Same requirements as above apply and the bitmap must also have the correct -// size. -extern -HCURSOR wxBitmapToHCURSOR(const wxBitmap& bmp, int hotSpotX, int hotSpotY); - - -#if wxUSE_OWNER_DRAWN - -// Draw the bitmap in specified state (this is used by owner drawn controls) -enum wxDSBStates -{ - wxDSB_NORMAL = 0, - wxDSB_SELECTED, - wxDSB_DISABLED -}; - -extern -BOOL wxDrawStateBitmap(HDC hDC, HBITMAP hBitmap, int x, int y, UINT uState); - -#endif // wxUSE_OWNER_DRAWN - -// get (x, y) from DWORD - notice that HI/LOWORD can *not* be used because they -// will fail on system with multiple monitors where the coords may be negative -// -// these macros are standard now (Win98) but some older headers don't have them -#ifndef GET_X_LPARAM - #define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp)) - #define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp)) -#endif // GET_X_LPARAM - -// get the current state of SHIFT/CTRL/ALT keys -inline bool wxIsModifierDown(int vk) -{ - // GetKeyState() returns different negative values on WinME and WinNT, - // so simply test for negative value. - return ::GetKeyState(vk) < 0; -} - -inline bool wxIsShiftDown() -{ - return wxIsModifierDown(VK_SHIFT); -} - -inline bool wxIsCtrlDown() -{ - return wxIsModifierDown(VK_CONTROL); -} - -inline bool wxIsAltDown() -{ - return wxIsModifierDown(VK_MENU); -} - -inline bool wxIsAnyModifierDown() -{ - return wxIsShiftDown() || wxIsCtrlDown() || wxIsAltDown(); -} - -// wrapper around GetWindowRect() and GetClientRect() APIs doing error checking -// for Win32 -inline RECT wxGetWindowRect(HWND hwnd) -{ - RECT rect; - - if ( !::GetWindowRect(hwnd, &rect) ) - { - wxLogLastError(wxT("GetWindowRect")); - } - - return rect; -} - -inline RECT wxGetClientRect(HWND hwnd) -{ - RECT rect; - - if ( !::GetClientRect(hwnd, &rect) ) - { - wxLogLastError(wxT("GetClientRect")); - } - - return rect; -} - -// --------------------------------------------------------------------------- -// small helper classes -// --------------------------------------------------------------------------- - -// create an instance of this class and use it as the HDC for screen, will -// automatically release the DC going out of scope -class ScreenHDC -{ -public: - ScreenHDC() { m_hdc = ::GetDC(NULL); } - ~ScreenHDC() { ::ReleaseDC(NULL, m_hdc); } - - operator HDC() const { return m_hdc; } - -private: - HDC m_hdc; - - wxDECLARE_NO_COPY_CLASS(ScreenHDC); -}; - -// the same as ScreenHDC but for window DCs -class WindowHDC -{ -public: - WindowHDC() : m_hwnd(NULL), m_hdc(NULL) { } - WindowHDC(HWND hwnd) { m_hdc = ::GetDC(m_hwnd = hwnd); } - ~WindowHDC() { if ( m_hwnd && m_hdc ) { ::ReleaseDC(m_hwnd, m_hdc); } } - - operator HDC() const { return m_hdc; } - -private: - HWND m_hwnd; - HDC m_hdc; - - wxDECLARE_NO_COPY_CLASS(WindowHDC); -}; - -// the same as ScreenHDC but for memory DCs: creates the HDC compatible with -// the given one (screen by default) in ctor and destroys it in dtor -class MemoryHDC -{ -public: - MemoryHDC(HDC hdc = 0) { m_hdc = ::CreateCompatibleDC(hdc); } - ~MemoryHDC() { ::DeleteDC(m_hdc); } - - operator HDC() const { return m_hdc; } - -private: - HDC m_hdc; - - wxDECLARE_NO_COPY_CLASS(MemoryHDC); -}; - -// a class which selects a GDI object into a DC in its ctor and deselects in -// dtor -class SelectInHDC -{ -private: - void DoInit(HGDIOBJ hgdiobj) { m_hgdiobj = ::SelectObject(m_hdc, hgdiobj); } - -public: - SelectInHDC() : m_hdc(NULL), m_hgdiobj(NULL) { } - SelectInHDC(HDC hdc, HGDIOBJ hgdiobj) : m_hdc(hdc) { DoInit(hgdiobj); } - - void Init(HDC hdc, HGDIOBJ hgdiobj) - { - wxASSERT_MSG( !m_hdc, wxT("initializing twice?") ); - - m_hdc = hdc; - - DoInit(hgdiobj); - } - - ~SelectInHDC() { if ( m_hdc ) ::SelectObject(m_hdc, m_hgdiobj); } - - // return true if the object was successfully selected - operator bool() const { return m_hgdiobj != 0; } - -private: - HDC m_hdc; - HGDIOBJ m_hgdiobj; - - wxDECLARE_NO_COPY_CLASS(SelectInHDC); -}; - -// a class which cleans up any GDI object -class AutoGDIObject -{ -protected: - AutoGDIObject() { m_gdiobj = NULL; } - AutoGDIObject(HGDIOBJ gdiobj) : m_gdiobj(gdiobj) { } - ~AutoGDIObject() { if ( m_gdiobj ) ::DeleteObject(m_gdiobj); } - - void InitGdiobj(HGDIOBJ gdiobj) - { - wxASSERT_MSG( !m_gdiobj, wxT("initializing twice?") ); - - m_gdiobj = gdiobj; - } - - HGDIOBJ GetObject() const { return m_gdiobj; } - -private: - HGDIOBJ m_gdiobj; -}; - -// TODO: all this asks for using a AutoHandler<T, CreateFunc> template... - -// a class for temporary brushes -class AutoHBRUSH : private AutoGDIObject -{ -public: - AutoHBRUSH(COLORREF col) - : AutoGDIObject(::CreateSolidBrush(col)) { } - - operator HBRUSH() const { return (HBRUSH)GetObject(); } -}; - -// a class for temporary fonts -class AutoHFONT : private AutoGDIObject -{ -private: -public: - AutoHFONT() - : AutoGDIObject() { } - - AutoHFONT(const LOGFONT& lf) - : AutoGDIObject(::CreateFontIndirect(&lf)) { } - - void Init(const LOGFONT& lf) { InitGdiobj(::CreateFontIndirect(&lf)); } - - operator HFONT() const { return (HFONT)GetObject(); } -}; - -// a class for temporary pens -class AutoHPEN : private AutoGDIObject -{ -public: - AutoHPEN(COLORREF col) - : AutoGDIObject(::CreatePen(PS_SOLID, 0, col)) { } - - operator HPEN() const { return (HPEN)GetObject(); } -}; - -// classes for temporary bitmaps -class AutoHBITMAP : private AutoGDIObject -{ -public: - AutoHBITMAP() - : AutoGDIObject() { } - - AutoHBITMAP(HBITMAP hbmp) : AutoGDIObject(hbmp) { } - - void Init(HBITMAP hbmp) { InitGdiobj(hbmp); } - - operator HBITMAP() const { return (HBITMAP)GetObject(); } -}; - -class CompatibleBitmap : public AutoHBITMAP -{ -public: - CompatibleBitmap(HDC hdc, int w, int h) - : AutoHBITMAP(::CreateCompatibleBitmap(hdc, w, h)) - { - } -}; - -class MonoBitmap : public AutoHBITMAP -{ -public: - MonoBitmap(int w, int h) - : AutoHBITMAP(::CreateBitmap(w, h, 1, 1, 0)) - { - } -}; - -// class automatically destroys the region object -class AutoHRGN : private AutoGDIObject -{ -public: - AutoHRGN(HRGN hrgn) : AutoGDIObject(hrgn) { } - - operator HRGN() const { return (HRGN)GetObject(); } -}; - -// Class automatically freeing ICONINFO struct fields after retrieving it using -// GetIconInfo(). -class AutoIconInfo : public ICONINFO -{ -public: - AutoIconInfo() { wxZeroMemory(*this); } - - bool GetFrom(HICON hIcon) - { - if ( !::GetIconInfo(hIcon, this) ) - { - wxLogLastError(wxT("GetIconInfo")); - return false; - } - - return true; - } - - ~AutoIconInfo() - { - if ( hbmColor ) - ::DeleteObject(hbmColor); - if ( hbmMask ) - ::DeleteObject(hbmMask); - } -}; - -// class sets the specified clipping region during its life time -class HDCClipper -{ -public: - HDCClipper(HDC hdc, HRGN hrgn) - : m_hdc(hdc) - { - if ( !::SelectClipRgn(hdc, hrgn) ) - { - wxLogLastError(wxT("SelectClipRgn")); - } - } - - ~HDCClipper() - { - ::SelectClipRgn(m_hdc, NULL); - } - -private: - HDC m_hdc; - - wxDECLARE_NO_COPY_CLASS(HDCClipper); -}; - -// set the given map mode for the life time of this object - class HDCMapModeChanger - { - public: - HDCMapModeChanger(HDC hdc, int mm) - : m_hdc(hdc) - { - m_modeOld = ::SetMapMode(hdc, mm); - if ( !m_modeOld ) - { - wxLogLastError(wxT("SelectClipRgn")); - } - } - - ~HDCMapModeChanger() - { - if ( m_modeOld ) - ::SetMapMode(m_hdc, m_modeOld); - } - - private: - HDC m_hdc; - int m_modeOld; - - wxDECLARE_NO_COPY_CLASS(HDCMapModeChanger); - }; - - #define wxCHANGE_HDC_MAP_MODE(hdc, mm) \ - HDCMapModeChanger wxMAKE_UNIQUE_NAME(wxHDCMapModeChanger)(hdc, mm) - -// smart pointer using GlobalAlloc/GlobalFree() -class GlobalPtr -{ -public: - // default ctor, call Init() later - GlobalPtr() - { - m_hGlobal = NULL; - } - - // allocates a block of given size - void Init(size_t size, unsigned flags = GMEM_MOVEABLE) - { - m_hGlobal = ::GlobalAlloc(flags, size); - if ( !m_hGlobal ) - { - wxLogLastError(wxT("GlobalAlloc")); - } - } - - GlobalPtr(size_t size, unsigned flags = GMEM_MOVEABLE) - { - Init(size, flags); - } - - ~GlobalPtr() - { - if ( m_hGlobal && ::GlobalFree(m_hGlobal) ) - { - wxLogLastError(wxT("GlobalFree")); - } - } - - // implicit conversion - operator HGLOBAL() const { return m_hGlobal; } - -private: - HGLOBAL m_hGlobal; - - wxDECLARE_NO_COPY_CLASS(GlobalPtr); -}; - -// when working with global pointers (which is unfortunately still necessary -// sometimes, e.g. for clipboard) it is important to unlock them exactly as -// many times as we lock them which just asks for using a "smart lock" class -class GlobalPtrLock -{ -public: - // default ctor, use Init() later -- should only be used if the HGLOBAL can - // be NULL (in which case Init() shouldn't be called) - GlobalPtrLock() - { - m_hGlobal = NULL; - m_ptr = NULL; - } - - // initialize the object, may be only called if we were created using the - // default ctor; HGLOBAL must not be NULL - void Init(HGLOBAL hGlobal) - { - m_hGlobal = hGlobal; - - // NB: GlobalLock() is a macro, not a function, hence don't use the - // global scope operator with it (and neither with GlobalUnlock()) - m_ptr = GlobalLock(hGlobal); - if ( !m_ptr ) - { - wxLogLastError(wxT("GlobalLock")); - } - } - - // initialize the object, HGLOBAL must not be NULL - GlobalPtrLock(HGLOBAL hGlobal) - { - Init(hGlobal); - } - - ~GlobalPtrLock() - { - if ( m_hGlobal && !GlobalUnlock(m_hGlobal) ) - { - // this might happen simply because the block became unlocked - DWORD dwLastError = ::GetLastError(); - if ( dwLastError != NO_ERROR ) - { - wxLogApiError(wxT("GlobalUnlock"), dwLastError); - } - } - } - - void *Get() const { return m_ptr; } - operator void *() const { return m_ptr; } - -private: - HGLOBAL m_hGlobal; - void *m_ptr; - - wxDECLARE_NO_COPY_CLASS(GlobalPtrLock); -}; - -// register the class when it is first needed and unregister it in dtor -class ClassRegistrar -{ -public: - // ctor doesn't register the class, call Initialize() for this - ClassRegistrar() { m_registered = -1; } - - // return true if the class is already registered - bool IsInitialized() const { return m_registered != -1; } - - // return true if the class had been already registered - bool IsRegistered() const { return m_registered == 1; } - - // try to register the class if not done yet, return true on success - bool Register(const WNDCLASS& wc) - { - // we should only be called if we hadn't been initialized yet - wxASSERT_MSG( m_registered == -1, - wxT("calling ClassRegistrar::Register() twice?") ); - - m_registered = ::RegisterClass(&wc) ? 1 : 0; - if ( !IsRegistered() ) - { - wxLogLastError(wxT("RegisterClassEx()")); - } - else - { - m_clsname = wc.lpszClassName; - } - - return m_registered == 1; - } - - // get the name of the registered class (returns empty string if not - // registered) - const wxString& GetName() const { return m_clsname; } - - // unregister the class if it had been registered - ~ClassRegistrar() - { - if ( IsRegistered() ) - { - if ( !::UnregisterClass(m_clsname.t_str(), wxGetInstance()) ) - { - wxLogLastError(wxT("UnregisterClass")); - } - } - } - -private: - // initial value is -1 which means that we hadn't tried registering the - // class yet, it becomes true or false (1 or 0) when Initialize() is called - int m_registered; - - // the name of the class, only non empty if it had been registered - wxString m_clsname; -}; - -// --------------------------------------------------------------------------- -// macros to make casting between WXFOO and FOO a bit easier: the GetFoo() -// returns Foo cast to the Windows type for ourselves, while GetFooOf() takes -// an argument which should be a pointer or reference to the object of the -// corresponding class (this depends on the macro) -// --------------------------------------------------------------------------- - -#define GetHwnd() ((HWND)GetHWND()) -#define GetHwndOf(win) ((HWND)((win)->GetHWND())) -// old name -#define GetWinHwnd GetHwndOf - -#define GetHdc() ((HDC)GetHDC()) -#define GetHdcOf(dc) ((HDC)(dc).GetHDC()) - -#define GetHbitmap() ((HBITMAP)GetHBITMAP()) -#define GetHbitmapOf(bmp) ((HBITMAP)(bmp).GetHBITMAP()) - -#define GetHicon() ((HICON)GetHICON()) -#define GetHiconOf(icon) ((HICON)(icon).GetHICON()) - -#define GetHaccel() ((HACCEL)GetHACCEL()) -#define GetHaccelOf(table) ((HACCEL)((table).GetHACCEL())) - -#define GetHbrush() ((HBRUSH)GetResourceHandle()) -#define GetHbrushOf(brush) ((HBRUSH)(brush).GetResourceHandle()) - -#define GetHmenu() ((HMENU)GetHMenu()) -#define GetHmenuOf(menu) ((HMENU)(menu)->GetHMenu()) - -#define GetHcursor() ((HCURSOR)GetHCURSOR()) -#define GetHcursorOf(cursor) ((HCURSOR)(cursor).GetHCURSOR()) - -#define GetHfont() ((HFONT)GetHFONT()) -#define GetHfontOf(font) ((HFONT)(font).GetHFONT()) - -#define GetHimagelist() ((HIMAGELIST)GetHIMAGELIST()) -#define GetHimagelistOf(imgl) ((HIMAGELIST)(imgl)->GetHIMAGELIST()) - -#define GetHpalette() ((HPALETTE)GetHPALETTE()) -#define GetHpaletteOf(pal) ((HPALETTE)(pal).GetHPALETTE()) - -#define GetHpen() ((HPEN)GetResourceHandle()) -#define GetHpenOf(pen) ((HPEN)(pen).GetResourceHandle()) - -#define GetHrgn() ((HRGN)GetHRGN()) -#define GetHrgnOf(rgn) ((HRGN)(rgn).GetHRGN()) - -#endif // wxUSE_GUI - -// --------------------------------------------------------------------------- -// global functions -// --------------------------------------------------------------------------- - -// return the full path of the given module -inline wxString wxGetFullModuleName(HMODULE hmod) -{ - wxString fullname; - if ( !::GetModuleFileName - ( - hmod, - wxStringBuffer(fullname, MAX_PATH), - MAX_PATH - ) ) - { - wxLogLastError(wxT("GetModuleFileName")); - } - - return fullname; -} - -// return the full path of the program file -inline wxString wxGetFullModuleName() -{ - return wxGetFullModuleName((HMODULE)wxGetInstance()); -} - -// return the run-time version of the OS in a format similar to -// WINVER/_WIN32_WINNT compile-time macros: -// -// 0x0300 Windows NT 3.51 -// 0x0400 Windows 95, NT4 -// 0x0410 Windows 98 -// 0x0500 Windows ME, 2000 -// 0x0501 Windows XP, 2003 -// 0x0502 Windows XP SP2, 2003 SP1 -// 0x0600 Windows Vista, 2008 -// 0x0601 Windows 7 -// 0x0602 Windows 8 (currently also returned for 8.1 if program does not have a manifest indicating 8.1 support) -// 0x0603 Windows 8.1 (currently only returned for 8.1 if program has a manifest indicating 8.1 support) -// 0x1000 Windows 10 (currently only returned for 10 if program has a manifest indicating 10 support) -// -// for the other Windows versions 0 is currently returned -enum wxWinVersion -{ - wxWinVersion_Unknown = 0, - - wxWinVersion_3 = 0x0300, - wxWinVersion_NT3 = wxWinVersion_3, - - wxWinVersion_4 = 0x0400, - wxWinVersion_95 = wxWinVersion_4, - wxWinVersion_NT4 = wxWinVersion_4, - wxWinVersion_98 = 0x0410, - - wxWinVersion_5 = 0x0500, - wxWinVersion_ME = wxWinVersion_5, - wxWinVersion_NT5 = wxWinVersion_5, - wxWinVersion_2000 = wxWinVersion_5, - wxWinVersion_XP = 0x0501, - wxWinVersion_2003 = 0x0501, - wxWinVersion_XP_SP2 = 0x0502, - wxWinVersion_2003_SP1 = 0x0502, - - wxWinVersion_6 = 0x0600, - wxWinVersion_Vista = wxWinVersion_6, - wxWinVersion_NT6 = wxWinVersion_6, - - wxWinVersion_7 = 0x601, - - wxWinVersion_8 = 0x602, - wxWinVersion_8_1 = 0x603, - - wxWinVersion_10 = 0x1000 -}; - -WXDLLIMPEXP_BASE wxWinVersion wxGetWinVersion(); - -#if wxUSE_GUI && defined(__WXMSW__) - -// cursor stuff -extern HCURSOR wxGetCurrentBusyCursor(); // from msw/utils.cpp -extern const wxCursor *wxGetGlobalCursor(); // from msw/cursor.cpp - -// GetCursorPos can fail without populating the POINT. This falls back to GetMessagePos. -WXDLLIMPEXP_CORE void wxGetCursorPosMSW(POINT* pt); - -WXDLLIMPEXP_CORE void wxGetCharSize(WXHWND wnd, int *x, int *y, const wxFont& the_font); -WXDLLIMPEXP_CORE void wxFillLogFont(LOGFONT *logFont, const wxFont *font); -WXDLLIMPEXP_CORE wxFont wxCreateFontFromLogFont(const LOGFONT *logFont); -WXDLLIMPEXP_CORE wxFontEncoding wxGetFontEncFromCharSet(int charset); - -WXDLLIMPEXP_CORE void wxSliderEvent(WXHWND control, WXWORD wParam, WXWORD pos); -WXDLLIMPEXP_CORE void wxScrollBarEvent(WXHWND hbar, WXWORD wParam, WXWORD pos); - -// Find maximum size of window/rectangle -extern WXDLLIMPEXP_CORE void wxFindMaxSize(WXHWND hwnd, RECT *rect); - -// Safely get the window text (i.e. without using fixed size buffer) -extern WXDLLIMPEXP_CORE wxString wxGetWindowText(WXHWND hWnd); - -// get the window class name -extern WXDLLIMPEXP_CORE wxString wxGetWindowClass(WXHWND hWnd); - -// get the window id (should be unsigned, hence this is not wxWindowID which -// is, for mainly historical reasons, signed) -extern WXDLLIMPEXP_CORE int wxGetWindowId(WXHWND hWnd); - -// check if hWnd's WNDPROC is wndProc. Return true if yes, false if they are -// different -extern WXDLLIMPEXP_CORE bool wxCheckWindowWndProc(WXHWND hWnd, WXFARPROC wndProc); - -// Does this window style specify any border? -inline bool wxStyleHasBorder(long style) -{ - return (style & (wxSIMPLE_BORDER | wxRAISED_BORDER | - wxSUNKEN_BORDER | wxDOUBLE_BORDER)) != 0; -} - -inline long wxGetWindowExStyle(const wxWindowMSW *win) -{ - return ::GetWindowLong(GetHwndOf(win), GWL_EXSTYLE); -} - -inline bool wxHasWindowExStyle(const wxWindowMSW *win, long style) -{ - return (wxGetWindowExStyle(win) & style) != 0; -} - -inline long wxSetWindowExStyle(const wxWindowMSW *win, long style) -{ - return ::SetWindowLong(GetHwndOf(win), GWL_EXSTYLE, style); -} - -// Common helper of wxUpdate{,Edit}LayoutDirection() below: sets or clears the -// given flag(s) depending on wxLayoutDirection and returns true if the flags -// really changed. -inline bool -wxUpdateExStyleForLayoutDirection(WXHWND hWnd, - wxLayoutDirection dir, - LONG_PTR flagsForRTL) -{ - wxCHECK_MSG( hWnd, false, - wxS("Can't set layout direction for invalid window") ); - - const LONG_PTR styleOld = ::GetWindowLongPtr(hWnd, GWL_EXSTYLE); - - LONG_PTR styleNew = styleOld; - switch ( dir ) - { - case wxLayout_LeftToRight: - styleNew &= ~flagsForRTL; - break; - - case wxLayout_RightToLeft: - styleNew |= flagsForRTL; - break; - - case wxLayout_Default: - wxFAIL_MSG(wxS("Invalid layout direction")); - } - - if ( styleNew == styleOld ) - return false; - - ::SetWindowLongPtr(hWnd, GWL_EXSTYLE, styleNew); - - return true; -} - -// Update layout direction flag for a generic window. -// -// See below for the special version that must be used with EDIT controls. -// -// Returns true if the layout direction did change. -inline bool wxUpdateLayoutDirection(WXHWND hWnd, wxLayoutDirection dir) -{ - return wxUpdateExStyleForLayoutDirection(hWnd, dir, WS_EX_LAYOUTRTL); -} - -// Update layout direction flag for an EDIT control. -// -// Returns true if anything changed or false if the direction flag was already -// set to the desired direction (which can't be wxLayout_Default). -inline bool wxUpdateEditLayoutDirection(WXHWND hWnd, wxLayoutDirection dir) -{ - return wxUpdateExStyleForLayoutDirection(hWnd, dir, - WS_EX_RIGHT | - WS_EX_RTLREADING | - WS_EX_LEFTSCROLLBAR); -} - -// Companion of the above function checking if an EDIT control uses RTL. -inline wxLayoutDirection wxGetEditLayoutDirection(WXHWND hWnd) -{ - wxCHECK_MSG( hWnd, wxLayout_Default, wxS("invalid window") ); - - // While we set 3 style bits above, we're only really interested in one of - // them here. In particularly, don't check for WS_EX_RIGHT as it can be set - // for a right-aligned control even if it doesn't use RTL. And while we - // could test WS_EX_LEFTSCROLLBAR, this doesn't really seem useful. - const LONG_PTR style = ::GetWindowLongPtr(hWnd, GWL_EXSTYLE); - - return style & WS_EX_RTLREADING ? wxLayout_RightToLeft - : wxLayout_LeftToRight; -} - -// ---------------------------------------------------------------------------- -// functions mapping HWND to wxWindow -// ---------------------------------------------------------------------------- - -// this function simply checks whether the given hwnd corresponds to a wxWindow -// and returns either that window if it does or NULL otherwise -extern WXDLLIMPEXP_CORE wxWindow* wxFindWinFromHandle(HWND hwnd); - -// find the window for HWND which is part of some wxWindow, i.e. unlike -// wxFindWinFromHandle() above it will also work for "sub controls" of a -// wxWindow. -// -// returns the wxWindow corresponding to the given HWND or NULL. -extern WXDLLIMPEXP_CORE wxWindow *wxGetWindowFromHWND(WXHWND hwnd); - -// Get the size of an icon -extern WXDLLIMPEXP_CORE wxSize wxGetHiconSize(HICON hicon); - -// Lines are drawn differently for WinCE and regular WIN32 -WXDLLIMPEXP_CORE void wxDrawLine(HDC hdc, int x1, int y1, int x2, int y2); - -// fill the client rect of the given window on the provided dc using this brush -inline void wxFillRect(HWND hwnd, HDC hdc, HBRUSH hbr) -{ - RECT rc; - ::GetClientRect(hwnd, &rc); - ::FillRect(hdc, &rc, hbr); -} - -// ---------------------------------------------------------------------------- -// 32/64 bit helpers -// ---------------------------------------------------------------------------- - -#ifdef __WIN64__ - -inline void *wxGetWindowProc(HWND hwnd) -{ - return (void *)::GetWindowLongPtr(hwnd, GWLP_WNDPROC); -} - -inline void *wxGetWindowUserData(HWND hwnd) -{ - return (void *)::GetWindowLongPtr(hwnd, GWLP_USERDATA); -} - -inline WNDPROC wxSetWindowProc(HWND hwnd, WNDPROC func) -{ - return (WNDPROC)::SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)func); -} - -inline void *wxSetWindowUserData(HWND hwnd, void *data) -{ - return (void *)::SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)data); -} - -#else // __WIN32__ - -// note that the casts to LONG_PTR here are required even on 32-bit machines -// for the 64-bit warning mode of later versions of MSVC (C4311/4312) -inline WNDPROC wxGetWindowProc(HWND hwnd) -{ - return (WNDPROC)(LONG_PTR)::GetWindowLong(hwnd, GWL_WNDPROC); -} - -inline void *wxGetWindowUserData(HWND hwnd) -{ - return (void *)(LONG_PTR)::GetWindowLong(hwnd, GWL_USERDATA); -} - -inline WNDPROC wxSetWindowProc(HWND hwnd, WNDPROC func) -{ - return (WNDPROC)(LONG_PTR)::SetWindowLong(hwnd, GWL_WNDPROC, (LONG_PTR)func); -} - -inline void *wxSetWindowUserData(HWND hwnd, void *data) -{ - return (void *)(LONG_PTR)::SetWindowLong(hwnd, GWL_USERDATA, (LONG_PTR)data); -} - -#endif // __WIN64__/__WIN32__ - -#endif // wxUSE_GUI && __WXMSW__ - -#endif // _WX_PRIVATE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/button.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/button.h deleted file mode 100644 index 9f605c66..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/button.h +++ /dev/null @@ -1,76 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/private/button.h -// Purpose: helper functions used with native BUTTON control -// Author: Vadim Zeitlin -// Created: 2008-06-07 -// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_PRIVATE_BUTTON_H_ -#define _WX_MSW_PRIVATE_BUTTON_H_ - -// define some standard button constants which may be missing in the headers -#ifndef BS_PUSHLIKE - #define BS_PUSHLIKE 0x00001000L -#endif - -#ifndef BST_UNCHECKED - #define BST_UNCHECKED 0x0000 -#endif - -#ifndef BST_CHECKED - #define BST_CHECKED 0x0001 -#endif - -#ifndef BST_INDETERMINATE - #define BST_INDETERMINATE 0x0002 -#endif - -namespace wxMSWButton -{ - -// returns BS_MULTILINE if the label contains new lines or 0 otherwise -inline int GetMultilineStyle(const wxString& label) -{ - return label.find(wxT('\n')) == wxString::npos ? 0 : BS_MULTILINE; -} - -// update the style of the specified HWND to include or exclude BS_MULTILINE -// depending on whether the label contains the new lines -void UpdateMultilineStyle(HWND hwnd, const wxString& label); - -// flags for ComputeBestSize() and GetFittingSize() -enum -{ - Size_AuthNeeded = 1, - Size_ExactFit = 2 -}; - -// NB: All the functions below are implemented in src/msw/button.cpp - -// Compute the button size (as if wxBU_EXACTFIT were specified, i.e. without -// adjusting it to be of default size if it's smaller) for the given label size -WXDLLIMPEXP_CORE wxSize -GetFittingSize(wxWindow *win, const wxSize& sizeLabel, int flags = 0); - -// Compute the button size (as if wxBU_EXACTFIT were specified) by computing -// its label size and then calling GetFittingSize(). -wxSize ComputeBestFittingSize(wxControl *btn, int flags = 0); - -// Increase the size passed as parameter to be at least the standard button -// size if the control doesn't have wxBU_EXACTFIT style and also cache it as -// the best size and return its value -- this is used in DoGetBestSize() -// implementation. -wxSize IncreaseToStdSizeAndCache(wxControl *btn, const wxSize& size); - -// helper of wxToggleButton::DoGetBestSize() -inline wxSize ComputeBestSize(wxControl *btn, int flags = 0) -{ - return IncreaseToStdSizeAndCache(btn, ComputeBestFittingSize(btn, flags)); -} - -} // namespace wxMSWButton - -#endif // _WX_MSW_PRIVATE_BUTTON_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/comptr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/comptr.h deleted file mode 100644 index 194cf54f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/comptr.h +++ /dev/null @@ -1,129 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/private/comptr.h -// Purpose: Smart pointer for COM interfaces. -// Author: PB -// Created: 2012-04-16 -// Copyright: (c) 2012 wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_PRIVATE_COMPTR_H_ -#define _WX_MSW_PRIVATE_COMPTR_H_ - -// ---------------------------------------------------------------------------- -// wxCOMPtr: A minimalistic smart pointer for use with COM interfaces. -// ---------------------------------------------------------------------------- - -template <class T> -class wxCOMPtr -{ -public: - typedef T element_type; - - wxCOMPtr() - : m_ptr(NULL) - { - } - - wxEXPLICIT wxCOMPtr(T* ptr) - : m_ptr(ptr) - { - if ( m_ptr ) - m_ptr->AddRef(); - } - - wxCOMPtr(const wxCOMPtr& ptr) - : m_ptr(ptr.get()) - { - if ( m_ptr ) - m_ptr->AddRef(); - } - - ~wxCOMPtr() - { - if ( m_ptr ) - m_ptr->Release(); - } - - void reset(T* ptr = NULL) - { - if ( m_ptr != ptr) - { - if ( ptr ) - ptr->AddRef(); - if ( m_ptr ) - m_ptr->Release(); - m_ptr = ptr; - } - } - - wxCOMPtr& operator=(const wxCOMPtr& ptr) - { - reset(ptr.get()); - return *this; - } - - wxCOMPtr& operator=(T* ptr) - { - reset(ptr); - return *this; - } - - operator T*() const - { - return m_ptr; - } - - T& operator*() const - { - return *m_ptr; - } - - T* operator->() const - { - return m_ptr; - } - - // It would be better to forbid direct access completely but we do need - // for QueryInterface() and similar functions, so provide it but it can - // only be used to initialize the pointer, not to modify an existing one. - T** operator&() - { - wxASSERT_MSG(!m_ptr, - wxS("Can't get direct access to initialized pointer")); - - return &m_ptr; - } - - T* get() const - { - return m_ptr; - } - - bool operator<(T* ptr) const - { - return get() < ptr; - } - -private: - T* m_ptr; -}; - -// Define a helper for the macro below: we just need a function taking a -// pointer and not returning anything to avoid warnings about unused return -// value of the cast in the macro itself. -namespace wxPrivate { inline void PPV_ARGS_CHECK(void*) { } } - -// Takes the interface name and a pointer to a pointer of the interface type -// and expands into the IID of this interface and the same pointer but after a -// type-safety check. -// -// This is similar to the standard IID_PPV_ARGS macro but takes the pointer -// type instead of relying on the non-standard Microsoft __uuidof(). -#define wxIID_PPV_ARGS(IType, pType) \ - IID_##IType, \ - (wxPrivate::PPV_ARGS_CHECK(static_cast<IType*>(*pType)), \ - reinterpret_cast<void**>(pType)) - -#endif // _WX_MSW_PRIVATE_COMPTR_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/datecontrols.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/datecontrols.h deleted file mode 100644 index 9794cfae..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/datecontrols.h +++ /dev/null @@ -1,30 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/private/datecontrols.h -// Purpose: implementation helpers for wxDatePickerCtrl and wxCalendarCtrl -// Author: Vadim Zeitlin -// Created: 2008-04-04 -// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _MSW_PRIVATE_DATECONTROLS_H_ -#define _MSW_PRIVATE_DATECONTROLS_H_ - -#include "wx/datetime.h" - -#include "wx/msw/wrapwin.h" - -// namespace for the helper functions related to the date controls -namespace wxMSWDateControls -{ - -// do the one time only initialization of date classes of comctl32.dll, return -// true if ok or log an error and return false if we failed (this can only -// happen with a very old version of common controls DLL, i.e. before 4.70) -extern bool CheckInitialization(); - -} // namespace wxMSWDateControls - -#endif // _MSW_PRIVATE_DATECONTROLS_H_ - - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/dc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/dc.h deleted file mode 100644 index 303cd19d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/dc.h +++ /dev/null @@ -1,147 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/private/dc.h -// Purpose: private wxMSW helpers for working with HDCs -// Author: Vadim Zeitlin -// Created: 2009-06-16 (extracted from src/msw/dc.cpp) -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _MSW_PRIVATE_DC_H_ -#define _MSW_PRIVATE_DC_H_ - -#include "wx/msw/dc.h" -#include "wx/msw/wrapwin.h" - -namespace wxMSWImpl -{ - -// various classes to change some DC property temporarily - -// text background and foreground colours -class wxTextColoursChanger -{ -public: - wxTextColoursChanger(HDC hdc, const wxMSWDCImpl& dc) - : m_hdc(hdc) - { - Change(dc.GetTextForeground(), dc.GetTextBackground()); - } - - wxTextColoursChanger(HDC hdc, const wxColour& colFg, const wxColour& colBg) - : m_hdc(hdc) - { - Change(colFg, colBg); - } - - wxTextColoursChanger(HDC hdc, COLORREF colFg, COLORREF colBg) - : m_hdc(hdc) - { - Change(colFg, colBg); - } - - ~wxTextColoursChanger() - { - if ( m_oldColFg != CLR_INVALID ) - ::SetTextColor(m_hdc, m_oldColFg); - if ( m_oldColBg != CLR_INVALID ) - ::SetBkColor(m_hdc, m_oldColBg); - } - -protected: - // this ctor doesn't change mode immediately, call Change() later to do it - // only if needed - wxTextColoursChanger(HDC hdc) - : m_hdc(hdc) - { - m_oldColFg = - m_oldColBg = CLR_INVALID; - } - - void Change(const wxColour& colFg, const wxColour& colBg) - { - Change(colFg.IsOk() ? colFg.GetPixel() : CLR_INVALID, - colBg.IsOk() ? colBg.GetPixel() : CLR_INVALID); - } - - void Change(COLORREF colFg, COLORREF colBg) - { - if ( colFg != CLR_INVALID ) - { - m_oldColFg = ::SetTextColor(m_hdc, colFg); - if ( m_oldColFg == CLR_INVALID ) - { - wxLogLastError(wxT("SetTextColor")); - } - } - else - { - m_oldColFg = CLR_INVALID; - } - - if ( colBg != CLR_INVALID ) - { - m_oldColBg = ::SetBkColor(m_hdc, colBg); - if ( m_oldColBg == CLR_INVALID ) - { - wxLogLastError(wxT("SetBkColor")); - } - } - else - { - m_oldColBg = CLR_INVALID; - } - } - -private: - const HDC m_hdc; - COLORREF m_oldColFg, - m_oldColBg; - - wxDECLARE_NO_COPY_CLASS(wxTextColoursChanger); -}; - -// background mode -class wxBkModeChanger -{ -public: - // set background mode to opaque if mode != wxBRUSHSTYLE_TRANSPARENT - wxBkModeChanger(HDC hdc, int mode) - : m_hdc(hdc) - { - Change(mode); - } - - ~wxBkModeChanger() - { - if ( m_oldMode ) - ::SetBkMode(m_hdc, m_oldMode); - } - -protected: - // this ctor doesn't change mode immediately, call Change() later to do it - // only if needed - wxBkModeChanger(HDC hdc) : m_hdc(hdc) { m_oldMode = 0; } - - void Change(int mode) - { - m_oldMode = ::SetBkMode(m_hdc, mode == wxBRUSHSTYLE_TRANSPARENT - ? TRANSPARENT - : OPAQUE); - if ( !m_oldMode ) - { - wxLogLastError(wxT("SetBkMode")); - } - } - -private: - const HDC m_hdc; - int m_oldMode; - - wxDECLARE_NO_COPY_CLASS(wxBkModeChanger); -}; - -} // namespace wxMSWImpl - -#endif // _MSW_PRIVATE_DC_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/event.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/event.h deleted file mode 100644 index 27825e49..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/event.h +++ /dev/null @@ -1,104 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/private/event.h -// Purpose: Simple Windows 'event object' wrapper. -// Author: Troelsk, Vadim Zeitlin -// Created: 2014-05-07 -// Copyright: (c) 2014 wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_PRIVATE_EVENT_H_ -#define _WX_MSW_PRIVATE_EVENT_H_ - -#include "wx/msw/private.h" - -namespace wxWinAPI -{ - -class Event : public AutoHANDLE<0> -{ -public: - enum Kind - { - ManualReset, - AutomaticReset - }; - - enum InitialState - { - Signaled, - Nonsignaled - }; - - Event() - { - } - - // Wrappers around {Create,Set,Reset}Event() Windows API functions, with - // the same semantics. - bool Create(Kind kind = AutomaticReset, - InitialState initialState = Nonsignaled, - const wxChar* name = NULL); - bool Set(); - bool Reset(); - -private: - wxDECLARE_NO_COPY_CLASS(Event); -}; - -} // namespace wxWinAPI - -// ---------------------------------------------------------------------------- -// Implementations requiring windows.h; these are to moved out-of-line if -// this class is moved to a public header, or if [parts of] msw/private.h is -// changed to not depend on windows.h being included. -// ---------------------------------------------------------------------------- - -inline bool -wxWinAPI::Event::Create(wxWinAPI::Event::Kind kind, - wxWinAPI::Event::InitialState initialState, - const wxChar* name) -{ - wxCHECK_MSG( !IsOk(), false, wxS("Event can't be created twice") ); - - WXHANDLE handle = ::CreateEvent(NULL, - kind == ManualReset, - initialState == Signaled, - name); - if ( !handle ) - { - wxLogLastError(wxS("CreateEvent")); - return false; - } - - m_handle = handle; - return true; -} - -inline bool wxWinAPI::Event::Set() -{ - wxCHECK_MSG( m_handle, false, wxS("Event must be valid") ); - - if ( !::SetEvent(m_handle) ) - { - wxLogLastError(wxS("SetEvent")); - return false; - } - - return true; -} - -inline bool wxWinAPI::Event::Reset() -{ - wxCHECK_MSG( m_handle, false, wxS("Event must be valid") ); - - if ( !::ResetEvent(m_handle) ) - { - wxLogLastError(wxS("ResetEvent")); - return false; - } - - return true; -} - -#endif // _WX_MSW_PRIVATE_EVENT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/fswatcher.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/fswatcher.h deleted file mode 100644 index 055617b7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/fswatcher.h +++ /dev/null @@ -1,335 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/private/fswatcher.h -// Purpose: File system watcher impl classes -// Author: Bartosz Bekier -// Created: 2009-05-26 -// Copyright: (c) 2009 Bartosz Bekier <bartosz.bekier@gmail.com> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef WX_MSW_PRIVATE_FSWATCHER_H_ -#define WX_MSW_PRIVATE_FSWATCHER_H_ - -#include "wx/filename.h" -#include "wx/vector.h" -#include "wx/msw/private.h" - -// ============================================================================ -// wxFSWatcherEntry implementation & helper declarations -// ============================================================================ - -class wxFSWatcherImplMSW; - -class wxFSWatchEntryMSW : public wxFSWatchInfo -{ -public: - enum - { - BUFFER_SIZE = 4096 // TODO parametrize - }; - - wxFSWatchEntryMSW(const wxFSWatchInfo& winfo) : - wxFSWatchInfo(winfo) - { - // get handle for this path - m_handle = OpenDir(m_path); - m_overlapped = (OVERLAPPED*)calloc(1, sizeof(OVERLAPPED)); - wxZeroMemory(m_buffer); - } - - virtual ~wxFSWatchEntryMSW() - { - wxLogTrace(wxTRACE_FSWATCHER, "Deleting entry '%s'", m_path); - - if (m_handle != INVALID_HANDLE_VALUE) - { - if (!CloseHandle(m_handle)) - { - wxLogSysError(_("Unable to close the handle for '%s'"), - m_path); - } - } - free(m_overlapped); - } - - bool IsOk() const - { - return m_handle != INVALID_HANDLE_VALUE; - } - - HANDLE GetHandle() const - { - return m_handle; - } - - void* GetBuffer() - { - return m_buffer; - } - - OVERLAPPED* GetOverlapped() const - { - return m_overlapped; - } - -private: - // opens dir with all flags, attributes etc. necessary to be later - // asynchronous watched with ReadDirectoryChangesW - static HANDLE OpenDir(const wxString& path) - { - HANDLE handle = CreateFile(path.t_str(), - FILE_LIST_DIRECTORY, - FILE_SHARE_READ | - FILE_SHARE_WRITE | - FILE_SHARE_DELETE, - NULL, - OPEN_EXISTING, - FILE_FLAG_BACKUP_SEMANTICS | - FILE_FLAG_OVERLAPPED, - NULL); - if (handle == INVALID_HANDLE_VALUE) - { - wxLogSysError(_("Failed to open directory \"%s\" for monitoring."), - path); - } - - return handle; - } - - HANDLE m_handle; // handle to opened directory - char m_buffer[BUFFER_SIZE]; // buffer for fs events - OVERLAPPED* m_overlapped; - - wxDECLARE_NO_COPY_CLASS(wxFSWatchEntryMSW); -}; - -// ============================================================================ -// wxFSWatcherImplMSW helper classes implementations -// ============================================================================ - -class wxIOCPService -{ -public: - wxIOCPService() : - m_iocp(INVALID_HANDLE_VALUE) - { - Init(); - } - - ~wxIOCPService() - { - if (m_iocp != INVALID_HANDLE_VALUE) - { - if (!CloseHandle(m_iocp)) - { - wxLogSysError(_("Unable to close I/O completion port handle")); - } - } - m_watches.clear(); - } - - // associates a wxFSWatchEntryMSW with completion port - bool Add(wxSharedPtr<wxFSWatchEntryMSW> watch) - { - wxCHECK_MSG( m_iocp != INVALID_HANDLE_VALUE, false, "IOCP not init" ); - wxCHECK_MSG( watch->IsOk(), false, "Invalid watch" ); - - // associate with IOCP - HANDLE ret = CreateIoCompletionPort(watch->GetHandle(), m_iocp, - (ULONG_PTR)watch.get(), 0); - if (ret == NULL) - { - wxLogSysError(_("Unable to associate handle with " - "I/O completion port")); - return false; - } - else if (ret != m_iocp) - { - wxFAIL_MSG(_("Unexpectedly new I/O completion port was created")); - return false; - } - - // add to watch map - wxFSWatchEntries::value_type val(watch->GetPath(), watch); - return m_watches.insert(val).second; - } - - // Removes a watch we're currently using. Notice that this doesn't happen - // immediately, CompleteRemoval() must be called later when it's really - // safe to delete the watch, i.e. after completion of the IO operation - // using it. - bool ScheduleForRemoval(const wxSharedPtr<wxFSWatchEntryMSW>& watch) - { - wxCHECK_MSG( m_iocp != INVALID_HANDLE_VALUE, false, "IOCP not init" ); - wxCHECK_MSG( watch->IsOk(), false, "Invalid watch" ); - - const wxString path = watch->GetPath(); - wxFSWatchEntries::iterator it = m_watches.find(path); - wxCHECK_MSG( it != m_watches.end(), false, - "Can't remove a watch we don't use" ); - - // We can't just delete the watch here as we can have pending events - // for it and if we destroyed it now, we could get a dangling (or, - // worse, reused to point to another object) pointer in ReadEvents() so - // just remember that this one should be removed when CompleteRemoval() - // is called later. - m_removedWatches.push_back(watch); - m_watches.erase(it); - - return true; - } - - // Really remove the watch previously passed to ScheduleForRemoval(). - // - // It's ok to call this for a watch that hadn't been removed before, in - // this case we'll just return false and do nothing. - bool CompleteRemoval(wxFSWatchEntryMSW* watch) - { - for ( Watches::iterator it = m_removedWatches.begin(); - it != m_removedWatches.end(); - ++it ) - { - if ( (*it).get() == watch ) - { - // Removing the object from here will result in deleting the - // watch itself as it's not referenced from anywhere else now. - m_removedWatches.erase(it); - return true; - } - } - - return false; - } - - // post completion packet - bool PostEmptyStatus() - { - wxCHECK_MSG( m_iocp != INVALID_HANDLE_VALUE, false, "IOCP not init" ); - - // The special values of 0 will make GetStatus() return Status_Exit. - int ret = PostQueuedCompletionStatus(m_iocp, 0, 0, NULL); - if (!ret) - { - wxLogSysError(_("Unable to post completion status")); - } - - return ret != 0; - } - - // Possible return values of GetStatus() - enum Status - { - // Status successfully retrieved into the provided arguments. - Status_OK, - - // Special status indicating that we should exit retrieved. - Status_Exit, - - // An error occurred because the watched directory was deleted. - Status_Deleted, - - // Some other error occurred. - Status_Error - }; - - // Wait for completion status to arrive. - // This function can block forever in it's wait for completion status. - // Use PostEmptyStatus() to wake it up (and end the worker thread) - Status - GetStatus(DWORD* count, wxFSWatchEntryMSW** watch, - OVERLAPPED** overlapped) - { - wxCHECK_MSG( m_iocp != INVALID_HANDLE_VALUE, Status_Error, - "Invalid IOCP object" ); - wxCHECK_MSG( count && watch && overlapped, Status_Error, - "Output parameters can't be NULL" ); - - int ret = GetQueuedCompletionStatus(m_iocp, count, (ULONG_PTR *)watch, - overlapped, INFINITE); - if ( ret != 0 ) - { - return *count || *watch || *overlapped ? Status_OK : Status_Exit; - } - - // An error is returned if the underlying directory has been deleted, - // but this is not really an unexpected failure, so handle it - // specially. - if ( wxSysErrorCode() == ERROR_ACCESS_DENIED && - *watch && !wxFileName::DirExists((*watch)->GetPath()) ) - return Status_Deleted; - - // Some other error, at least log it. - wxLogSysError(_("Unable to dequeue completion packet")); - - return Status_Error; - } - -protected: - bool Init() - { - m_iocp = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0); - if (m_iocp == NULL) - { - wxLogSysError(_("Unable to create I/O completion port")); - } - return m_iocp != NULL; - } - - HANDLE m_iocp; - - // The hash containing all the wxFSWatchEntryMSW objects currently being - // watched keyed by their paths. - wxFSWatchEntries m_watches; - - // Contains the watches which had been removed but are still pending. - typedef wxVector< wxSharedPtr<wxFSWatchEntryMSW> > Watches; - Watches m_removedWatches; -}; - - -class wxIOCPThread : public wxThread -{ -public: - wxIOCPThread(wxFSWatcherImplMSW* service, wxIOCPService* iocp); - - // finishes this thread - bool Finish(); - -protected: - // structure to hold information needed to process one native event - // this is just a dummy holder, so it doesn't take ownership of it's data - struct wxEventProcessingData - { - wxEventProcessingData(const FILE_NOTIFY_INFORMATION* ne, - const wxFSWatchEntryMSW* watch_) : - nativeEvent(ne), watch(watch_) - {} - - const FILE_NOTIFY_INFORMATION* nativeEvent; - const wxFSWatchEntryMSW* watch; - }; - - virtual ExitCode Entry(); - - // wait for events to occur, read them and send to interested parties - // returns false it empty status was read, which means we would exit - // true otherwise - bool ReadEvents(); - - void ProcessNativeEvents(wxVector<wxEventProcessingData>& events); - - void SendEvent(wxFileSystemWatcherEvent& evt); - - static int Native2WatcherFlags(int flags); - - static wxString FileNotifyInformationToString( - const FILE_NOTIFY_INFORMATION& e); - - static wxFileName GetEventPath(const wxFSWatchEntryMSW& watch, - const FILE_NOTIFY_INFORMATION& e); - - wxFSWatcherImplMSW* m_service; - wxIOCPService* m_iocp; -}; - -#endif /* WX_MSW_PRIVATE_FSWATCHER_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/hiddenwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/hiddenwin.h deleted file mode 100644 index 3b52b609..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/hiddenwin.h +++ /dev/null @@ -1,30 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/private/hiddenwin.h -// Purpose: Helper for creating a hidden window used by wxMSW internally. -// Author: Vadim Zeitlin -// Created: 2011-09-16 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_PRIVATE_HIDDENWIN_H_ -#define _WX_MSW_PRIVATE_HIDDENWIN_H_ - -#include "wx/msw/private.h" - -/* - Creates a hidden window with supplied window proc registering the class for - it if necessary (i.e. the first time only). Caller is responsible for - destroying the window and unregistering the class (note that this must be - done because wxWidgets may be used as a DLL and so may be loaded/unloaded - multiple times into/from the same process so we can't rely on automatic - Windows class unregistration). - - pclassname is a pointer to a caller stored classname, which must initially be - NULL. classname is the desired wndclass classname. If function successfully - registers the class, pclassname will be set to classname. - */ -extern "C" WXDLLIMPEXP_BASE HWND -wxCreateHiddenWindow(LPCTSTR *pclassname, LPCTSTR classname, WNDPROC wndproc); - -#endif // _WX_MSW_PRIVATE_HIDDENWIN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/keyboard.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/keyboard.h deleted file mode 100644 index 002303e9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/keyboard.h +++ /dev/null @@ -1,41 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/private/keyboard.h -// Purpose: Helper keyboard-related functions. -// Author: Vadim Zeitlin -// Created: 2010-09-09 -// Copyright: (c) 2010 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_PRIVATE_KEYBOARD_H_ -#define _WX_MSW_PRIVATE_KEYBOARD_H_ - -#include "wx/defs.h" - -namespace wxMSWKeyboard -{ - -// ---------------------------------------------------------------------------- -// Functions for translating between MSW virtual keys codes and wx key codes -// -// These functions are currently implemented in src/msw/window.cpp. -// ---------------------------------------------------------------------------- - -// Translate MSW virtual key code to wx key code. lParam is used to distinguish -// between numpad and extended version of the keys, extended is assumed by -// default if lParam == 0. -// -// Returns WXK_NONE if translation couldn't be done at all (this happens e.g. -// for dead keys and in this case uc will be WXK_NONE too) or if the key -// corresponds to a non-Latin-1 character in which case uc is filled with its -// Unicode value. -WXDLLIMPEXP_CORE int VKToWX(WXWORD vk, WXLPARAM lParam = 0, wchar_t *uc = NULL); - -// Translate wxKeyCode enum element (passed as int for compatibility reasons) -// to MSW virtual key code. isExtended is set to true if the key corresponds to -// a non-numpad version of a key that exists both on numpad and outside it. -WXDLLIMPEXP_CORE WXWORD WXToVK(int id, bool *isExtended = NULL); - -} // namespace wxMSWKeyboard - -#endif // _WX_MSW_PRIVATE_KEYBOARD_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/metrics.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/metrics.h deleted file mode 100644 index 0e1b41de..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/metrics.h +++ /dev/null @@ -1,48 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/private/metrics.h -// Purpose: various helper functions to retrieve system metrics -// Author: Vadim Zeitlin -// Created: 2008-09-05 -// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_PRIVATE_METRICS_H_ -#define _WX_MSW_PRIVATE_METRICS_H_ - -namespace wxMSWImpl -{ - -// return NONCLIENTMETRICS as retrieved by SystemParametersInfo() -// -// currently this is not cached as the values may change when system settings -// do and we don't react to this to invalidate the cache but it could be done -// in the future -// -// MT-safety: this function is only meant to be called from the main thread -inline const NONCLIENTMETRICS& GetNonClientMetrics() -{ - static WinStruct<NONCLIENTMETRICS> nm; - if ( !::SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &nm, 0) ) - { -#if WINVER >= 0x0600 - // a new field has been added to NONCLIENTMETRICS under Vista, so - // the call to SystemParametersInfo() fails if we use the struct - // size incorporating this new value on an older system -- retry - // without it - nm.cbSize -= sizeof(int); - if ( !::SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &nm, 0) ) -#endif // WINVER >= 0x0600 - { - // maybe we should initialize the struct with some defaults? - wxLogLastError(wxT("SystemParametersInfo(SPI_GETNONCLIENTMETRICS)")); - } - } - - return nm; -} - -} // namespace wxMSWImpl - -#endif // _WX_MSW_PRIVATE_METRICS_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/msgdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/msgdlg.h deleted file mode 100644 index cb56df48..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/msgdlg.h +++ /dev/null @@ -1,93 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/private/msgdlg.h -// Purpose: helper functions used with native message dialog -// Author: Rickard Westerlund -// Created: 2010-07-12 -// Copyright: (c) 2010 wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_PRIVATE_MSGDLG_H_ -#define _WX_MSW_PRIVATE_MSGDLG_H_ - -#include "wx/msw/wrapcctl.h" -#include "wx/scopedarray.h" - -// Macro to help identify if task dialogs are available: we rely on -// TD_WARNING_ICON being defined in the headers for this as this symbol is used -// by the task dialogs only. Also notice that task dialogs are available for -// Unicode applications only. -#if defined(TD_WARNING_ICON) && wxUSE_UNICODE - #define wxHAS_MSW_TASKDIALOG -#endif - -// Provides methods for creating a task dialog. -namespace wxMSWMessageDialog -{ - -#ifdef wxHAS_MSW_TASKDIALOG - class wxMSWTaskDialogConfig - { - public: - enum { MAX_BUTTONS = 4 }; - - wxMSWTaskDialogConfig() - : buttons(new TASKDIALOG_BUTTON[MAX_BUTTONS]), - parent(NULL), - iconId(0), - style(0), - useCustomLabels(false) - { } - - // initializes the object from a message dialog. - wxMSWTaskDialogConfig(const wxMessageDialogBase& dlg); - - wxScopedArray<TASKDIALOG_BUTTON> buttons; - wxWindow *parent; - wxString caption; - wxString message; - wxString extendedMessage; - long iconId; - long style; - bool useCustomLabels; - wxString btnYesLabel; - wxString btnNoLabel; - wxString btnOKLabel; - wxString btnCancelLabel; - wxString btnHelpLabel; - - // Will create a task dialog with it's parameters for it's creation - // stored in the provided TASKDIALOGCONFIG parameter. - // NOTE: The wxMSWTaskDialogConfig object needs to remain accessible - // during the subsequent call to TaskDialogIndirect(). - void MSWCommonTaskDialogInit(TASKDIALOGCONFIG &tdc); - - // Used by MSWCommonTaskDialogInit() to add a regular button or a - // button with a custom label if used. - void AddTaskDialogButton(TASKDIALOGCONFIG &tdc, - int btnCustomId, - int btnCommonId, - const wxString& customLabel); - }; // class wxMSWTaskDialogConfig - - - typedef HRESULT (WINAPI *TaskDialogIndirect_t)(const TASKDIALOGCONFIG *, - int *, int *, BOOL *); - - // Return the pointer to TaskDialogIndirect(). This should only be called - // if HasNativeTaskDialog() returned true and is normally guaranteed to - // succeed in this case. - TaskDialogIndirect_t GetTaskDialogIndirectFunc(); -#endif // wxHAS_MSW_TASKDIALOG - - - // Check if the task dialog is available: this simply checks the OS version - // as we know that it's only present in Vista and later. - bool HasNativeTaskDialog(); - - // Translates standard MSW button IDs like IDCANCEL into an equivalent - // wx constant such as wxCANCEL. - int MSWTranslateReturnCode(int msAns); -}; // namespace wxMSWMessageDialog - -#endif // _WX_MSW_PRIVATE_MSGDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/pipestream.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/pipestream.h deleted file mode 100644 index ba6d032b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/pipestream.h +++ /dev/null @@ -1,50 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/private/pipestream.h -// Purpose: MSW wxPipeInputStream and wxPipeOutputStream declarations -// Author: Vadim Zeitlin -// Created: 2013-06-08 (extracted from src/msw/utilsexc.cpp) -// Copyright: (c) 2013 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_PRIVATE_PIPESTREAM_H_ -#define _WX_MSW_PRIVATE_PIPESTREAM_H_ - -class wxPipeInputStream : public wxInputStream -{ -public: - wxEXPLICIT wxPipeInputStream(HANDLE hInput); - virtual ~wxPipeInputStream(); - - // returns true if the pipe is still opened - bool IsOpened() const { return m_hInput != INVALID_HANDLE_VALUE; } - - // returns true if there is any data to be read from the pipe - virtual bool CanRead() const; - -protected: - virtual size_t OnSysRead(void *buffer, size_t len); - -protected: - HANDLE m_hInput; - - wxDECLARE_NO_COPY_CLASS(wxPipeInputStream); -}; - -class wxPipeOutputStream: public wxOutputStream -{ -public: - wxEXPLICIT wxPipeOutputStream(HANDLE hOutput); - virtual ~wxPipeOutputStream() { Close(); } - bool Close(); - -protected: - size_t OnSysWrite(const void *buffer, size_t len); - -protected: - HANDLE m_hOutput; - - wxDECLARE_NO_COPY_CLASS(wxPipeOutputStream); -}; - -#endif // _WX_MSW_PRIVATE_PIPESTREAM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/sockmsw.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/sockmsw.h deleted file mode 100644 index fdde2f70..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/sockmsw.h +++ /dev/null @@ -1,66 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/private/gsockmsw.h -// Purpose: MSW-specific socket implementation -// Authors: Guilhem Lavaux, Guillermo Rodriguez Garcia, Vadim Zeitlin -// Created: April 1997 -// Copyright: (C) 1999-1997, Guilhem Lavaux -// (C) 1999-2000, Guillermo Rodriguez Garcia -// (C) 2008 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef _WX_MSW_GSOCKMSW_H_ -#define _WX_MSW_GSOCKMSW_H_ - -#include "wx/msw/wrapwin.h" - -#if defined(__CYGWIN__) - //CYGWIN gives annoying warning about runtime stuff if we don't do this -# define USE_SYS_TYPES_FD_SET -# include <sys/types.h> -#endif - -#if defined(__CYGWIN__) - #include <winsock.h> -#endif - -// ---------------------------------------------------------------------------- -// MSW-specific socket implementation -// ---------------------------------------------------------------------------- - -class wxSocketImplMSW : public wxSocketImpl -{ -public: - wxSocketImplMSW(wxSocketBase& wxsocket); - - virtual ~wxSocketImplMSW(); - - virtual wxSocketError GetLastError() const; - - virtual void ReenableEvents(wxSocketEventFlags WXUNUSED(flags)) - { - // notifications are never disabled in this implementation, there is no - // need for this as WSAAsyncSelect() only sends notification once when - // the new data becomes available anyhow, so there is no need to do - // anything here - } - -private: - virtual void DoClose(); - - virtual void UnblockAndRegisterWithEventLoop() - { - // no need to make the socket non-blocking, Install_Callback() will do - // it - wxSocketManager::Get()->Install_Callback(this); - } - - int m_msgnumber; - - friend class wxSocketMSWManager; - - wxDECLARE_NO_COPY_CLASS(wxSocketImplMSW); -}; - -#endif /* _WX_MSW_GSOCKMSW_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/textmeasure.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/textmeasure.h deleted file mode 100644 index ee14751a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/textmeasure.h +++ /dev/null @@ -1,63 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/private/textmeasure.h -// Purpose: wxMSW-specific declaration of wxTextMeasure class -// Author: Manuel Martin -// Created: 2012-10-05 -// Copyright: (c) 1997-2012 wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_PRIVATE_TEXTMEASURE_H_ -#define _WX_MSW_PRIVATE_TEXTMEASURE_H_ - -#include "wx/msw/wrapwin.h" - -// ---------------------------------------------------------------------------- -// wxTextMeasure for MSW. -// ---------------------------------------------------------------------------- - -class wxTextMeasure : public wxTextMeasureBase -{ -public: - wxEXPLICIT wxTextMeasure(const wxDC *dc, const wxFont *font = NULL) - : wxTextMeasureBase(dc, font) - { - Init(); - } - - wxEXPLICIT wxTextMeasure(const wxWindow *win, const wxFont *font = NULL) - : wxTextMeasureBase(win, font) - { - Init(); - } - -protected: - void Init(); - - virtual void BeginMeasuring(); - virtual void EndMeasuring(); - - virtual void DoGetTextExtent(const wxString& string, - wxCoord *width, - wxCoord *height, - wxCoord *descent = NULL, - wxCoord *externalLeading = NULL); - - virtual bool DoGetPartialTextExtents(const wxString& text, - wxArrayInt& widths, - double scaleX); - - - - // We use either the HDC of the provided wxDC or an HDC created for our - // window. - HDC m_hdc; - - // If we change the font in BeginMeasuring(), we restore it to the old one - // in EndMeasuring(). - HFONT m_hfontOld; - - wxDECLARE_NO_COPY_CLASS(wxTextMeasure); -}; - -#endif // _WX_MSW_PRIVATE_TEXTMEASURE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/timer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/timer.h deleted file mode 100644 index 71ce2cee..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/private/timer.h +++ /dev/null @@ -1,36 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/private/timer.h -// Purpose: wxTimer class -// Author: Julian Smart -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_PRIVATE_TIMER_H_ -#define _WX_MSW_PRIVATE_TIMER_H_ - -#if wxUSE_TIMER - -#include "wx/private/timer.h" -#include "wx/msw/wrapwin.h" // for WPARAM - -class WXDLLIMPEXP_BASE wxMSWTimerImpl : public wxTimerImpl -{ -public: - wxMSWTimerImpl(wxTimer *timer) : wxTimerImpl(timer) { m_id = 0; } - - virtual bool Start(int milliseconds = -1, bool oneShot = false); - virtual void Stop(); - - virtual bool IsRunning() const { return m_id != 0; } - -protected: - // this must be 64 bit under Win64 as WPARAM (storing timer ids) is 64 bit - // there and so the ids may possibly not fit in 32 bits - WPARAM m_id; -}; - -#endif // wxUSE_TIMER - -#endif // _WX_TIMERH_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/progdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/progdlg.h deleted file mode 100644 index c63a0b66..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/progdlg.h +++ /dev/null @@ -1,73 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/progdlg.h -// Purpose: wxProgressDialog -// Author: Rickard Westerlund -// Created: 2010-07-22 -// Copyright: (c) 2010 wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROGDLG_H_ -#define _WX_PROGDLG_H_ - -class wxProgressDialogTaskRunner; -class wxProgressDialogSharedData; - -class WXDLLIMPEXP_CORE wxProgressDialog : public wxGenericProgressDialog -{ -public: - wxProgressDialog(const wxString& title, const wxString& message, - int maximum = 100, - wxWindow *parent = NULL, - int style = wxPD_APP_MODAL | wxPD_AUTO_HIDE); - - virtual ~wxProgressDialog(); - - virtual bool Update(int value, const wxString& newmsg = wxEmptyString, bool *skip = NULL); - virtual bool Pulse(const wxString& newmsg = wxEmptyString, bool *skip = NULL); - - void Resume(); - - int GetValue() const; - wxString GetMessage() const; - - void SetRange(int maximum); - - // Return whether "Cancel" or "Skip" button was pressed, always return - // false if the corresponding button is not shown. - bool WasSkipped() const; - bool WasCancelled() const; - - virtual void SetTitle(const wxString& title); - virtual wxString GetTitle() const; - - virtual bool Show( bool show = true ); - - // Must provide overload to avoid hiding it (and warnings about it) - virtual void Update() { wxGenericProgressDialog::Update(); } - - virtual WXWidget GetHandle() const; - -private: - // Performs common routines to Update() and Pulse(). Requires the - // shared object to have been entered. - bool DoNativeBeforeUpdate(bool *skip); - - // Updates the various timing informations for both determinate - // and indeterminate modes. Requires the shared object to have - // been entered. - void UpdateExpandedInformation(int value); - - wxProgressDialogTaskRunner *m_taskDialogRunner; - - wxProgressDialogSharedData *m_sharedData; - - // Store the message and title we currently use to be able to return it - // from Get{Message,Title}() - wxString m_message, - m_title; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxProgressDialog); -}; - -#endif // _WX_PROGDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/question.ico b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/question.ico deleted file mode 100644 index b34c3b81..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/question.ico and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/radiobox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/radiobox.h deleted file mode 100644 index 270337f3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/radiobox.h +++ /dev/null @@ -1,189 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/radiobox.h -// Purpose: wxRadioBox class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBOX_H_ -#define _WX_RADIOBOX_H_ - -#include "wx/statbox.h" - -class WXDLLIMPEXP_FWD_CORE wxSubwindows; - -// ---------------------------------------------------------------------------- -// wxRadioBox -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxRadioBox : public wxStaticBox, public wxRadioBoxBase -{ -public: - wxRadioBox() { Init(); } - - wxRadioBox(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, - long style = wxRA_SPECIFY_COLS, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxRadioBoxNameStr) - { - Init(); - - (void)Create(parent, id, title, pos, size, n, choices, majorDim, - style, val, name); - } - - wxRadioBox(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - int majorDim = 0, - long style = wxRA_SPECIFY_COLS, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxRadioBoxNameStr) - { - Init(); - - (void)Create(parent, id, title, pos, size, choices, majorDim, - style, val, name); - } - - virtual ~wxRadioBox(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, - long style = wxRA_SPECIFY_COLS, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxRadioBoxNameStr); - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - int majorDim = 0, - long style = wxRA_SPECIFY_COLS, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxRadioBoxNameStr); - - // implement the radiobox interface - virtual void SetSelection(int n); - virtual int GetSelection() const { return m_selectedButton; } - virtual unsigned int GetCount() const; - virtual wxString GetString(unsigned int n) const; - virtual void SetString(unsigned int n, const wxString& label); - virtual bool Enable(unsigned int n, bool enable = true); - virtual bool Show(unsigned int n, bool show = true); - virtual bool IsItemEnabled(unsigned int n) const; - virtual bool IsItemShown(unsigned int n) const; - virtual int GetItemFromPoint(const wxPoint& pt) const; - - // override some base class methods - virtual bool Show(bool show = true); - virtual bool Enable(bool enable = true); - virtual bool CanBeFocused() const; - virtual void SetFocus(); - virtual bool SetFont(const wxFont& font); - virtual bool ContainsHWND(WXHWND hWnd) const; - virtual bool SetForegroundColour(const wxColour& colour); - virtual bool SetBackgroundColour(const wxColour& colour); -#if wxUSE_TOOLTIPS - virtual bool HasToolTips() const; -#endif // wxUSE_TOOLTIPS -#if wxUSE_HELP - // override virtual function with a platform-independent implementation - virtual wxString GetHelpTextAtPoint(const wxPoint & pt, wxHelpEvent::Origin origin) const - { - return wxRadioBoxBase::DoGetHelpTextAtPoint( this, pt, origin ); - } -#endif // wxUSE_HELP - - virtual bool Reparent(wxWindowBase *newParent); - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - - void SetLabelFont(const wxFont& WXUNUSED(font)) {} - void SetButtonFont(const wxFont& font) { SetFont(font); } - - - // implementation only from now on - // ------------------------------- - - // This function can be used to check if the given radio button HWND - // belongs to one of our radio boxes. If it doesn't, NULL is returned. - static wxRadioBox *GetFromRadioButtonHWND(WXHWND hwnd); - - virtual bool MSWCommand(WXUINT param, WXWORD id); - void Command(wxCommandEvent& event); - - void SendNotificationEvent(); - -protected: - // common part of all ctors - void Init(); - - // subclass one radio button - void SubclassRadioButton(WXHWND hWndBtn); - - // get the max size of radio buttons - wxSize GetMaxButtonSize() const; - - // get the total size occupied by the radio box buttons - wxSize GetTotalButtonSize(const wxSize& sizeBtn) const; - - // Adjust all the buttons to the new window size. - void PositionAllButtons(int x, int y, int width, int height); - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - virtual void DoMoveWindow(int x, int y, int width, int height); - virtual wxSize DoGetBestSize() const; - -#if wxUSE_TOOLTIPS - virtual void DoSetItemToolTip(unsigned int n, wxToolTip * tooltip); -#endif - - virtual WXHRGN MSWGetRegionWithoutChildren(); - - // resolve ambiguity in base classes - virtual wxBorder GetDefaultBorder() const { return wxRadioBoxBase::GetDefaultBorder(); } - - // the buttons we contain - wxSubwindows *m_radioButtons; - - // and the special dummy button used only as a tab group boundary - WXHWND m_dummyHwnd; - wxWindowIDRef m_dummyId; - - // array of widths and heights of the buttons, may be wxDefaultCoord if the - // corresponding quantity should be computed - int *m_radioWidth; - int *m_radioHeight; - - // currently selected button or wxNOT_FOUND if none - int m_selectedButton; - -private: - wxDECLARE_DYNAMIC_CLASS(wxRadioBox); - wxDECLARE_NO_COPY_CLASS(wxRadioBox); -}; - -#endif - // _WX_RADIOBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/radiobut.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/radiobut.h deleted file mode 100644 index f5708fb6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/radiobut.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/radiobut.h -// Purpose: wxRadioButton class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBUT_H_ -#define _WX_RADIOBUT_H_ - -#include "wx/msw/ownerdrawnbutton.h" - -class WXDLLIMPEXP_CORE wxRadioButton : public wxMSWOwnerDrawnButton<wxControl> -{ -public: - // ctors and creation functions - wxRadioButton() { Init(); } - - wxRadioButton(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr) - { - Init(); - - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr); - - // implement the radio button interface - virtual void SetValue(bool value); - virtual bool GetValue() const; - - // implementation only from now on - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual void Command(wxCommandEvent& event); - - virtual bool HasTransparentBackground() { return true; } - - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - -protected: - virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; } - virtual wxSize DoGetBestSize() const; - - // Implement wxMSWOwnerDrawnButtonBase methods. - virtual int MSWGetButtonStyle() const wxOVERRIDE; - virtual void MSWOnButtonResetOwnerDrawn() wxOVERRIDE; - virtual int MSWGetButtonCheckedFlag() const wxOVERRIDE; - virtual void - MSWDrawButtonBitmap(wxDC& dc, const wxRect& rect, int flags) wxOVERRIDE; - - -private: - // common part of all ctors - void Init(); - - - // we need to store the state internally as the result of GetValue() - // sometimes gets out of sync in WM_COMMAND handler - bool m_isChecked; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxRadioButton); -}; - -#endif // _WX_RADIOBUT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/rcdefs.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/rcdefs.h deleted file mode 100644 index 8b9ac716..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/rcdefs.h +++ /dev/null @@ -1,41 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/rcdefs.h -// Purpose: Fallback for the generated rcdefs.h under the lib directory -// Author: Mike Wetherell -// Copyright: (c) 2005 Mike Wetherell -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RCDEFS_H -#define _WX_RCDEFS_H - -#ifdef __GNUC__ - // We must be using windres which uses gcc as its preprocessor. We do need - // to generate the manifest then as gcc doesn't do it automatically and we - // can define the architecture macro on our own as all the usual symbols - // are available (unlike with Microsoft RC.EXE which doesn't predefine - // anything useful at all). - #ifndef wxUSE_RC_MANIFEST - #define wxUSE_RC_MANIFEST 1 - #endif - - #if defined __i386__ - #ifndef WX_CPU_X86 - #define WX_CPU_X86 - #endif - #elif defined __x86_64__ - #ifndef WX_CPU_AMD64 - #define WX_CPU_AMD64 - #endif - #elif defined __ia64__ - #ifndef WX_CPU_IA64 - #define WX_CPU_IA64 - #endif - #endif -#endif - -// Don't do anything here for the other compilers, in particular don't define -// WX_CPU_X86 here as we used to do. If people define wxUSE_RC_MANIFEST, they -// must also define the architecture constant correctly. - -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/regconf.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/regconf.h deleted file mode 100644 index 312d1ba5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/regconf.h +++ /dev/null @@ -1,114 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/regconf.h -// Purpose: Registry based implementation of wxConfigBase -// Author: Vadim Zeitlin -// Modified by: -// Created: 27.04.98 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_REGCONF_H_ -#define _WX_MSW_REGCONF_H_ - -#include "wx/defs.h" - -#if wxUSE_CONFIG && wxUSE_REGKEY - -#include "wx/msw/registry.h" -#include "wx/object.h" -#include "wx/confbase.h" -#include "wx/buffer.h" - -// ---------------------------------------------------------------------------- -// wxRegConfig -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxRegConfig : public wxConfigBase -{ -public: - // ctor & dtor - // will store data in HKLM\appName and HKCU\appName - wxRegConfig(const wxString& appName = wxEmptyString, - const wxString& vendorName = wxEmptyString, - const wxString& localFilename = wxEmptyString, - const wxString& globalFilename = wxEmptyString, - long style = wxCONFIG_USE_GLOBAL_FILE); - - // dtor will save unsaved data - virtual ~wxRegConfig(){} - - // implement inherited pure virtual functions - // ------------------------------------------ - - // path management - virtual void SetPath(const wxString& strPath); - virtual const wxString& GetPath() const { return m_strPath; } - - // entry/subgroup info - // enumerate all of them - virtual bool GetFirstGroup(wxString& str, long& lIndex) const; - virtual bool GetNextGroup (wxString& str, long& lIndex) const; - virtual bool GetFirstEntry(wxString& str, long& lIndex) const; - virtual bool GetNextEntry (wxString& str, long& lIndex) const; - - // tests for existence - virtual bool HasGroup(const wxString& strName) const; - virtual bool HasEntry(const wxString& strName) const; - virtual EntryType GetEntryType(const wxString& name) const; - - // get number of entries/subgroups in the current group, with or without - // it's subgroups - virtual size_t GetNumberOfEntries(bool bRecursive = false) const; - virtual size_t GetNumberOfGroups(bool bRecursive = false) const; - - virtual bool Flush(bool WXUNUSED(bCurrentOnly) = false) { return true; } - - // rename - virtual bool RenameEntry(const wxString& oldName, const wxString& newName); - virtual bool RenameGroup(const wxString& oldName, const wxString& newName); - - // delete - virtual bool DeleteEntry(const wxString& key, bool bGroupIfEmptyAlso = true); - virtual bool DeleteGroup(const wxString& key); - virtual bool DeleteAll(); - -protected: - // opens the local key creating it if necessary and returns it - wxRegKey& LocalKey() const // must be const to be callable from const funcs - { - wxRegConfig* self = wxConstCast(this, wxRegConfig); - - if ( !m_keyLocal.IsOpened() ) - { - // create on demand - self->m_keyLocal.Create(); - } - - return self->m_keyLocal; - } - - // implement read/write methods - virtual bool DoReadString(const wxString& key, wxString *pStr) const; - virtual bool DoReadLong(const wxString& key, long *plResult) const; - virtual bool DoReadBinary(const wxString& key, wxMemoryBuffer* buf) const; - - virtual bool DoWriteString(const wxString& key, const wxString& szValue); - virtual bool DoWriteLong(const wxString& key, long lValue); - virtual bool DoWriteBinary(const wxString& key, const wxMemoryBuffer& buf); - -private: - // these keys are opened during all lifetime of wxRegConfig object - wxRegKey m_keyLocalRoot, m_keyLocal, - m_keyGlobalRoot, m_keyGlobal; - - // current path (not '/' terminated) - wxString m_strPath; - - wxDECLARE_NO_COPY_CLASS(wxRegConfig); - wxDECLARE_ABSTRACT_CLASS(wxRegConfig); -}; - -#endif // wxUSE_CONFIG && wxUSE_REGKEY - -#endif // _WX_MSW_REGCONF_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/region.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/region.h deleted file mode 100644 index 54b4935b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/region.h +++ /dev/null @@ -1,103 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/region.h -// Purpose: wxRegion class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) 1997-2002 wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_REGION_H_ -#define _WX_MSW_REGION_H_ - -class WXDLLIMPEXP_CORE wxRegion : public wxRegionWithCombine -{ -public: - wxRegion(); - wxRegion(wxCoord x, wxCoord y, wxCoord w, wxCoord h); - wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight); - wxRegion(const wxRect& rect); - wxRegion(WXHRGN hRegion); // Hangs on to this region - wxRegion(size_t n, const wxPoint *points, wxPolygonFillMode fillStyle = wxODDEVEN_RULE ); -#if wxUSE_IMAGE - wxRegion( const wxBitmap& bmp) - { - Union(bmp); - } - wxRegion( const wxBitmap& bmp, - const wxColour& transColour, int tolerance = 0) - { - Union(bmp, transColour, tolerance); - } -#endif // wxUSE_IMAGE - - virtual ~wxRegion(); - - // wxRegionBase methods - virtual void Clear(); - virtual bool IsEmpty() const; - - // Get internal region handle - WXHRGN GetHRGN() const; - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - - virtual bool DoIsEqual(const wxRegion& region) const; - virtual bool DoGetBox(wxCoord& x, wxCoord& y, wxCoord& w, wxCoord& h) const; - virtual wxRegionContain DoContainsPoint(wxCoord x, wxCoord y) const; - virtual wxRegionContain DoContainsRect(const wxRect& rect) const; - - virtual bool DoOffset(wxCoord x, wxCoord y); - virtual bool DoCombine(const wxRegion& region, wxRegionOp op); - - friend class WXDLLIMPEXP_FWD_CORE wxRegionIterator; - - wxDECLARE_DYNAMIC_CLASS(wxRegion); -}; - -class WXDLLIMPEXP_CORE wxRegionIterator : public wxObject -{ -public: - wxRegionIterator() { Init(); } - wxRegionIterator(const wxRegion& region); - wxRegionIterator(const wxRegionIterator& ri) : wxObject(ri) { Init(); *this = ri; } - - wxRegionIterator& operator=(const wxRegionIterator& ri); - - virtual ~wxRegionIterator(); - - void Reset() { m_current = 0; } - void Reset(const wxRegion& region); - - bool HaveRects() const { return (m_current < m_numRects); } - - operator bool () const { return HaveRects(); } - - wxRegionIterator& operator++(); - wxRegionIterator operator++(int); - - wxCoord GetX() const; - wxCoord GetY() const; - wxCoord GetW() const; - wxCoord GetWidth() const { return GetW(); } - wxCoord GetH() const; - wxCoord GetHeight() const { return GetH(); } - - wxRect GetRect() const { return wxRect(GetX(), GetY(), GetW(), GetH()); } - -private: - // common part of all ctors - void Init(); - - long m_current; - long m_numRects; - wxRegion m_region; - wxRect* m_rects; - - wxDECLARE_DYNAMIC_CLASS(wxRegionIterator); -}; - -#endif // _WX_MSW_REGION_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/registry.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/registry.h deleted file mode 100644 index 2c17d361..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/registry.h +++ /dev/null @@ -1,275 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/registry.h -// Purpose: Registry classes and functions -// Author: Vadim Zeitlin -// Modified by: -// Created: 03.04.1998 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_REGISTRY_H_ -#define _WX_MSW_REGISTRY_H_ - -#include "wx/defs.h" - -#if wxUSE_REGKEY - -class WXDLLIMPEXP_FWD_BASE wxOutputStream; - -// ---------------------------------------------------------------------------- -// class wxRegKey encapsulates window HKEY handle -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxRegKey -{ -public: - // NB: do _not_ change the values of elements in these enumerations! - - // registry value types (with comments from winnt.h) - enum ValueType - { - Type_None, // No value type - Type_String, // Unicode nul terminated string - Type_Expand_String, // Unicode nul terminated string - // (with environment variable references) - Type_Binary, // Free form binary - Type_Dword, // 32-bit number - Type_Dword_little_endian // 32-bit number - = Type_Dword, // (same as Type_DWORD) - Type_Dword_big_endian, // 32-bit number - Type_Link, // Symbolic Link (unicode) - Type_Multi_String, // Multiple Unicode strings - Type_Resource_list, // Resource list in the resource map - Type_Full_resource_descriptor, // Resource list in the hardware description - Type_Resource_requirements_list // ??? - }; - - // predefined registry keys - enum StdKey - { - HKCR, // classes root - HKCU, // current user - HKLM, // local machine - HKUSR, // users - HKPD, // performance data (WinNT/2K only) - HKCC, // current config - HKDD, // dynamic data (Win95/98 only) - HKMAX - }; - - // access mode for the key - enum AccessMode - { - Read, // read-only - Write // read and write - }; - - // Different registry views supported under WOW64. - enum WOW64ViewMode - { - // 32 bit registry for 32 bit applications, 64 bit registry - // for 64 bit ones. - WOW64ViewMode_Default, - - // Can be used in 64 bit apps to access 32 bit registry, - // has no effect (i.e. treated as default) in 32 bit apps. - WOW64ViewMode_32, - - // Can be used in 32 bit apps to access 64 bit registry, - // has no effect (i.e. treated as default) in 64 bit apps. - WOW64ViewMode_64 - }; - - // information about standard (predefined) registry keys - // number of standard keys - static const size_t nStdKeys; - // get the name of a standard key - static const wxChar *GetStdKeyName(size_t key); - // get the short name of a standard key - static const wxChar *GetStdKeyShortName(size_t key); - // get StdKey from root HKEY - static StdKey GetStdKeyFromHkey(WXHKEY hkey); - - // extracts the std key prefix from the string (return value) and - // leaves only the part after it (i.e. modifies the string passed!) - static StdKey ExtractKeyName(wxString& str); - - // ctors - // root key is set to HKCR (the only root key under Win16) - wxRegKey(WOW64ViewMode viewMode = WOW64ViewMode_Default); - - // strKey is the full name of the key (i.e. starting with HKEY_xxx...) - wxRegKey(const wxString& strKey, - WOW64ViewMode viewMode = WOW64ViewMode_Default); - - // strKey is the name of key under (standard key) keyParent - wxRegKey(StdKey keyParent, - const wxString& strKey, - WOW64ViewMode viewMode = WOW64ViewMode_Default); - - // strKey is the name of key under (previously created) keyParent - wxRegKey(const wxRegKey& keyParent, const wxString& strKey); - // dtor closes the key - ~wxRegKey(); - - // change key (closes the previously opened key if any) - // the name is absolute, i.e. should start with HKEY_xxx - void SetName(const wxString& strKey); - // the name is relative to the parent key - void SetName(StdKey keyParent, const wxString& strKey); - // the name is relative to the parent key - void SetName(const wxRegKey& keyParent, const wxString& strKey); - // hKey should be opened and will be closed in wxRegKey dtor - void SetHkey(WXHKEY hKey); - - // get information about the key - // get the (full) key name. Abbreviate std root keys if bShortPrefix. - wxString GetName(bool bShortPrefix = true) const; - // Retrieves the registry view used by this key. - WOW64ViewMode GetView() const { return m_viewMode; } - // return true if the key exists - bool Exists() const; - // get the info about key (any number of these pointers may be NULL) - bool GetKeyInfo(size_t *pnSubKeys, // number of subkeys - size_t *pnMaxKeyLen, // max length of subkey name - size_t *pnValues, // number of values - size_t *pnMaxValueLen) const; - // return true if the key is opened - bool IsOpened() const { return m_hKey != 0; } - // for "if ( !key ) wxLogError(...)" kind of expressions - operator bool() const { return m_dwLastError == 0; } - - // operations on the key itself - // explicitly open the key (will be automatically done by all functions - // which need the key to be opened if the key is not opened yet) - bool Open(AccessMode mode = Write); - // create the key: will fail if the key already exists and !bOkIfExists - bool Create(bool bOkIfExists = true); - // rename a value from old name to new one - bool RenameValue(const wxString& szValueOld, const wxString& szValueNew); - // rename the key - bool Rename(const wxString& szNewName); - // copy value to another key possibly changing its name (by default it will - // remain the same) - bool CopyValue(const wxString& szValue, wxRegKey& keyDst, - const wxString& szNewName = wxEmptyString); - - // copy the entire contents of the key recursively to another location - bool Copy(const wxString& szNewName); - // same as Copy() but using a key and not the name - bool Copy(wxRegKey& keyDst); - // close the key (will be automatically done in dtor) - bool Close(); - - // deleting keys/values - // deletes this key and all of it's subkeys/values - bool DeleteSelf(); - // deletes the subkey with all of it's subkeys/values recursively - bool DeleteKey(const wxString& szKey); - // deletes the named value (may be empty string to remove the default value) - bool DeleteValue(const wxString& szValue); - - // access to values and subkeys - // get value type - ValueType GetValueType(const wxString& szValue) const; - // returns true if the value contains a number (else it's some string) - bool IsNumericValue(const wxString& szValue) const; - - // assignment operators set the default value of the key - wxRegKey& operator=(const wxString& strValue) - { SetValue(wxEmptyString, strValue); return *this; } - - // query the default value of the key: implicitly or explicitly - wxString QueryDefaultValue() const; - operator wxString() const { return QueryDefaultValue(); } - - // named values - - // set the string value - bool SetValue(const wxString& szValue, const wxString& strValue); - // retrieve the string value - bool QueryValue(const wxString& szValue, wxString& strValue) const - { return QueryValue(szValue, strValue, false); } - // retrieve raw string value - bool QueryRawValue(const wxString& szValue, wxString& strValue) const - { return QueryValue(szValue, strValue, true); } - // retrieve either raw or expanded string value - bool QueryValue(const wxString& szValue, wxString& strValue, bool raw) const; - - // set the numeric value - bool SetValue(const wxString& szValue, long lValue); - // return the numeric value - bool QueryValue(const wxString& szValue, long *plValue) const; - // set the binary value - bool SetValue(const wxString& szValue, const wxMemoryBuffer& buf); - // return the binary value - bool QueryValue(const wxString& szValue, wxMemoryBuffer& buf) const; - - // query existence of a key/value - // return true if value exists - bool HasValue(const wxString& szKey) const; - // return true if given subkey exists - bool HasSubKey(const wxString& szKey) const; - // return true if any subkeys exist - bool HasSubkeys() const; - // return true if any values exist - bool HasValues() const; - // return true if the key is empty (nothing under this key) - bool IsEmpty() const { return !HasSubkeys() && !HasValues(); } - - // enumerate values and subkeys - bool GetFirstValue(wxString& strValueName, long& lIndex); - bool GetNextValue (wxString& strValueName, long& lIndex) const; - - bool GetFirstKey (wxString& strKeyName , long& lIndex); - bool GetNextKey (wxString& strKeyName , long& lIndex) const; - - // export the contents of this key and all its subkeys to the given file - // (which won't be overwritten, it's an error if it already exists) - // - // note that we export the key in REGEDIT4 format, not RegSaveKey() binary - // format nor newer REGEDIT5 one - bool Export(const wxString& filename) const; - - // same as above but write to the given (opened) stream - bool Export(wxOutputStream& ostr) const; - - - // for wxRegConfig usage only: preallocate some memory for the name - void ReserveMemoryForName(size_t bytes) { m_strKey.reserve(bytes); } - -private: - // common part of all ctors - void Init() - { - m_hKey = (WXHKEY) NULL; - m_dwLastError = 0; - } - - // recursive helper for Export() - bool DoExport(wxOutputStream& ostr) const; - - // export a single value - bool DoExportValue(wxOutputStream& ostr, const wxString& name) const; - - // return the text representation (in REGEDIT4 format) of the value with the - // given name - wxString FormatValue(const wxString& name) const; - - - WXHKEY m_hKey, // our handle - m_hRootKey; // handle of the top key (i.e. StdKey) - wxString m_strKey; // key name (relative to m_hRootKey) - WOW64ViewMode m_viewMode; // which view to select under WOW64 - AccessMode m_mode; // valid only if key is opened - long m_dwLastError; // last error (0 if none) - - - wxDECLARE_NO_COPY_CLASS(wxRegKey); -}; - -#endif // wxUSE_REGKEY - -#endif // _WX_MSW_REGISTRY_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/removble.ico b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/removble.ico deleted file mode 100644 index f218a894..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/removble.ico and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/richmsgdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/richmsgdlg.h deleted file mode 100644 index 51cdc632..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/richmsgdlg.h +++ /dev/null @@ -1,30 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/richmsgdlg.h -// Purpose: wxRichMessageDialog -// Author: Rickard Westerlund -// Created: 2010-07-04 -// Copyright: (c) 2010 wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_RICHMSGDLG_H_ -#define _WX_MSW_RICHMSGDLG_H_ - -class WXDLLIMPEXP_CORE wxRichMessageDialog : public wxGenericRichMessageDialog -{ -public: - wxRichMessageDialog(wxWindow *parent, - const wxString& message, - const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK | wxCENTRE) - : wxGenericRichMessageDialog(parent, message, caption, style) - { } - - // overridden base class method showing the native task dialog if possible - virtual int ShowModal(); - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxRichMessageDialog); -}; - -#endif // _WX_MSW_RICHMSGDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/roller.cur b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/roller.cur deleted file mode 100644 index 118c37fa..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/roller.cur and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/rt/private/notifmsg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/rt/private/notifmsg.h deleted file mode 100644 index 018218e9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/rt/private/notifmsg.h +++ /dev/null @@ -1,26 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/rt/private/notifmsg.h -// Purpose: WinRT implementation of wxNotificationMessageImpl -// Author: Tobias Taschner -// Created: 2015-09-13 -// Copyright: (c) 2015 wxWidgets development team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_MSW_RT_PRIVATE_NOTIFMSG_H_ -#define _WX_MSW_RT_PRIVATE_NOTIFMSG_H_ - -#include "wx/notifmsg.h" -#include "wx/private/notifmsg.h" - -class wxToastNotificationHelper -{ -public: - static bool UseToasts(const wxString& shortcutPath, - const wxString& appId); - - static bool IsEnabled(); - - static wxNotificationMessageImpl* CreateInstance(wxNotificationMessageBase* notification); -}; - -#endif // _WX_MSW_RT_PRIVATE_NOTIFMSG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/rt/utils.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/rt/utils.h deleted file mode 100644 index b3155310..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/rt/utils.h +++ /dev/null @@ -1,84 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/rt/utils.h -// Purpose: Windows Runtime Objects helper functions and objects -// Author: Tobias Taschner -// Created: 2015-09-05 -// Copyright: (c) 2015 wxWidgets development team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_RTUTILS_H -#define _WX_MSW_RTUTILS_H - -#include "wx/defs.h" - -#if wxUSE_WINRT - -#include "wx/string.h" -#include "wx/msw/wrapwin.h" - -#include <winstring.h> - -namespace wxWinRT -{ - -bool WXDLLIMPEXP_CORE IsAvailable(); - -bool WXDLLIMPEXP_CORE Initialize(); - -void WXDLLIMPEXP_CORE Uninitialize(); - -bool WXDLLIMPEXP_CORE GetActivationFactory(const wxString& activatableClassId, REFIID iid, void ** factory); - -// RAII class initializing WinRT in its ctor and undoing it in its dtor. -class WXDLLIMPEXP_CORE Initializer -{ -public: - Initializer() - : m_ok(Initialize()) - { - } - - bool IsOk() const - { - return m_ok; - } - - ~Initializer() - { - if (m_ok) - Uninitialize(); - } - -private: - const bool m_ok; - - wxDECLARE_NO_COPY_CLASS(Initializer); -}; - -// Simple class to convert wxString to HSTRING -// This just wraps a reference to the wxString object, -// which needs a life time greater than the TempStringRef object -class WXDLLIMPEXP_CORE TempStringRef -{ -public: - HSTRING Get() const { return m_hstring; } - - operator HSTRING() const { return m_hstring; }; - - static const TempStringRef Make(const wxString &str); - -private: - TempStringRef(const wxString &str); - - HSTRING m_hstring; - HSTRING_HEADER m_header; - - wxDECLARE_NO_COPY_CLASS(TempStringRef); -}; - -} // namespace wxWinRT - -#endif // wxUSE_WINRT - -#endif // _WX_MSW_RTUTILS_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/scrolbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/scrolbar.h deleted file mode 100644 index 1e302320..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/scrolbar.h +++ /dev/null @@ -1,74 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/scrolbar.h -// Purpose: wxScrollBar class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SCROLBAR_H_ -#define _WX_SCROLBAR_H_ - -// Scrollbar item -class WXDLLIMPEXP_CORE wxScrollBar: public wxScrollBarBase -{ -public: - wxScrollBar() { m_pageSize = 0; m_viewSize = 0; m_objectSize = 0; } - virtual ~wxScrollBar(); - - wxScrollBar(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr) - { - Create(parent, id, pos, size, style, validator, name); - } - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr); - - int GetThumbPosition() const ; - int GetThumbSize() const { return m_pageSize; } - int GetPageSize() const { return m_viewSize; } - int GetRange() const { return m_objectSize; } - - virtual void SetThumbPosition(int viewStart); - virtual void SetScrollbar(int position, int thumbSize, int range, int pageSize, - bool refresh = true); - - // needed for RTTI - void SetThumbSize( int s ) { SetScrollbar( GetThumbPosition() , s , GetRange() , GetPageSize() , true ) ; } - void SetPageSize( int s ) { SetScrollbar( GetThumbPosition() , GetThumbSize() , GetRange() , s , true ) ; } - void SetRange( int s ) { SetScrollbar( GetThumbPosition() , GetThumbSize() , s , GetPageSize() , true ) ; } - - void Command(wxCommandEvent& event); - virtual bool MSWOnScroll(int orientation, WXWORD wParam, - WXWORD pos, WXHWND control); - - // override wxControl version to not use solid background here - virtual WXHBRUSH MSWControlColor(WXHDC pDC, WXHWND hWnd); - - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - -protected: - virtual wxSize DoGetBestSize() const; - - int m_pageSize; - int m_viewSize; - int m_objectSize; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxScrollBar); -}; - -#endif - // _WX_SCROLBAR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/seh.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/seh.h deleted file mode 100644 index cf27714f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/seh.h +++ /dev/null @@ -1,72 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/seh.h -// Purpose: declarations for SEH (structured exceptions handling) support -// Author: Vadim Zeitlin -// Created: 2006-04-26 -// Copyright: (c) 2006 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_SEH_H_ -#define _WX_MSW_SEH_H_ - -#if wxUSE_ON_FATAL_EXCEPTION - - // the exception handler which should be called from the exception filter - // - // it calls wxApp::OnFatalException() if wxTheApp object exists - WXDLLIMPEXP_BASE unsigned long wxGlobalSEHandler(EXCEPTION_POINTERS *pExcPtrs); - - // helper macro for wxSEH_HANDLE -#if defined(__BORLANDC__) - // some compilers don't understand that this code is unreachable and warn - // about no value being returned from the function without it, so calm them - // down - #define wxSEH_DUMMY_RETURN(rc) return rc; -#else - #define wxSEH_DUMMY_RETURN(rc) -#endif - - // macros which allow to avoid many #if wxUSE_ON_FATAL_EXCEPTION in the code - // which uses them - #define wxSEH_TRY __try - #define wxSEH_IGNORE __except ( EXCEPTION_EXECUTE_HANDLER ) { } - #define wxSEH_HANDLE(rc) \ - __except ( wxGlobalSEHandler(GetExceptionInformation()) ) \ - { \ - /* use the same exit code as abort() */ \ - ::ExitProcess(3); \ - \ - wxSEH_DUMMY_RETURN(rc) \ - } - -#else // wxUSE_ON_FATAL_EXCEPTION - #define wxSEH_TRY - #define wxSEH_IGNORE - #define wxSEH_HANDLE(rc) -#endif // wxUSE_ON_FATAL_EXCEPTION - -#if wxUSE_ON_FATAL_EXCEPTION && defined(__VISUALC__) - #include <eh.h> - - // C++ exception to structured exceptions translator: we need it in order - // to prevent VC++ from "helpfully" translating structured exceptions (such - // as division by 0 or access violation) to C++ pseudo-exceptions - extern void wxSETranslator(unsigned int code, EXCEPTION_POINTERS *ep); - - // up to VC 12 this warning ("calling _set_se_translator() requires /EHa") - // is harmless and it's easier to suppress it than deal with it as make/ - // project file level as it seems to be harmless - #if __VISUALC__ < 1900 - #pragma warning(disable: 4535) - #endif - - // note that the SE translator must be called wxSETranslator! - #define DisableAutomaticSETranslator() _set_se_translator(wxSETranslator) -#else // !__VISUALC__ - // the other compilers do nothing as stupid by default so nothing to do for - // them - #define DisableAutomaticSETranslator() -#endif // __VISUALC__/!__VISUALC__ - -#endif // _WX_MSW_SEH_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/setup.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/setup.h deleted file mode 100644 index d005bc35..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/setup.h +++ /dev/null @@ -1,1681 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/setup.h -// Purpose: Configuration for the library -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SETUP_H_ -#define _WX_SETUP_H_ - -/* --- start common options --- */ -// ---------------------------------------------------------------------------- -// global settings -// ---------------------------------------------------------------------------- - -// define this to 0 when building wxBase library - this can also be done from -// makefile/project file overriding the value here -#ifndef wxUSE_GUI - #define wxUSE_GUI 1 -#endif // wxUSE_GUI - -// ---------------------------------------------------------------------------- -// compatibility settings -// ---------------------------------------------------------------------------- - -// This setting determines the compatibility with 2.8 API: set it to 0 to -// flag all cases of using deprecated functions. -// -// Default is 1 but please try building your code with 0 as the default will -// change to 0 in the next version and the deprecated functions will disappear -// in the version after it completely. -// -// Recommended setting: 0 (please update your code) -#define WXWIN_COMPATIBILITY_2_8 0 - -// This setting determines the compatibility with 3.0 API: set it to 0 to -// flag all cases of using deprecated functions. -// -// Default is 1 but please try building your code with 0 as the default will -// change to 0 in the next version and the deprecated functions will disappear -// in the version after it completely. -// -// Recommended setting: 0 (please update your code) -#define WXWIN_COMPATIBILITY_3_0 1 - -// MSW-only: Set to 0 for accurate dialog units, else 1 for old behaviour when -// default system font is used for wxWindow::GetCharWidth/Height() instead of -// the current font. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxDIALOG_UNIT_COMPATIBILITY 0 - -// ---------------------------------------------------------------------------- -// debugging settings -// ---------------------------------------------------------------------------- - -// wxDEBUG_LEVEL will be defined as 1 in wx/debug.h so normally there is no -// need to define it here. You may do it for two reasons: either completely -// disable/compile out the asserts in release version (then do it inside #ifdef -// NDEBUG) or, on the contrary, enable more asserts, including the usually -// disabled ones, in the debug build (then do it inside #ifndef NDEBUG) -// -// #ifdef NDEBUG -// #define wxDEBUG_LEVEL 0 -// #else -// #define wxDEBUG_LEVEL 2 -// #endif - -// wxHandleFatalExceptions() may be used to catch the program faults at run -// time and, instead of terminating the program with a usual GPF message box, -// call the user-defined wxApp::OnFatalException() function. If you set -// wxUSE_ON_FATAL_EXCEPTION to 0, wxHandleFatalExceptions() will not work. -// -// This setting is for Win32 only and can only be enabled if your compiler -// supports Win32 structured exception handling (currently only VC++ does) -// -// Default is 1 -// -// Recommended setting: 1 if your compiler supports it. -#define wxUSE_ON_FATAL_EXCEPTION 1 - -// Set this to 1 to be able to generate a human-readable (unlike -// machine-readable minidump created by wxCrashReport::Generate()) stack back -// trace when your program crashes using wxStackWalker -// -// Default is 1 if supported by the compiler. -// -// Recommended setting: 1, set to 0 if your programs never crash -#define wxUSE_STACKWALKER 1 - -// Set this to 1 to compile in wxDebugReport class which allows you to create -// and optionally upload to your web site a debug report consisting of back -// trace of the crash (if wxUSE_STACKWALKER == 1) and other information. -// -// Default is 1 if supported by the compiler. -// -// Recommended setting: 1, it is compiled into a separate library so there -// is no overhead if you don't use it -#define wxUSE_DEBUGREPORT 1 - -// Generic comment about debugging settings: they are very useful if you don't -// use any other memory leak detection tools such as Purify/BoundsChecker, but -// are probably redundant otherwise. Also, Visual C++ CRT has the same features -// as wxWidgets memory debugging subsystem built in since version 5.0 and you -// may prefer to use it instead of built in memory debugging code because it is -// faster and more fool proof. -// -// Using VC++ CRT memory debugging is enabled by default in debug build (_DEBUG -// is defined) if wxUSE_GLOBAL_MEMORY_OPERATORS is *not* enabled (i.e. is 0) -// and if __NO_VC_CRTDBG__ is not defined. - -// The rest of the options in this section are obsolete and not supported, -// enable them at your own risk. - -// If 1, enables wxDebugContext, for writing error messages to file, etc. If -// __WXDEBUG__ is not defined, will still use the normal memory operators. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_DEBUG_CONTEXT 0 - -// If 1, enables debugging versions of wxObject::new and wxObject::delete *IF* -// __WXDEBUG__ is also defined. -// -// WARNING: this code may not work with all architectures, especially if -// alignment is an issue. This switch is currently ignored for mingw / cygwin -// -// Default is 0 -// -// Recommended setting: 1 if you are not using a memory debugging tool, else 0 -#define wxUSE_MEMORY_TRACING 0 - -// In debug mode, cause new and delete to be redefined globally. -// If this causes problems (e.g. link errors which is a common problem -// especially if you use another library which also redefines the global new -// and delete), set this to 0. -// This switch is currently ignored for mingw / cygwin -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_GLOBAL_MEMORY_OPERATORS 0 - -// In debug mode, causes new to be defined to be WXDEBUG_NEW (see object.h). If -// this causes problems (e.g. link errors), set this to 0. You may need to set -// this to 0 if using templates (at least for VC++). This switch is currently -// ignored for MinGW/Cygwin. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_DEBUG_NEW_ALWAYS 0 - - -// ---------------------------------------------------------------------------- -// Unicode support -// ---------------------------------------------------------------------------- - -// These settings are obsolete: the library is always built in Unicode mode -// now, only set wxUSE_UNICODE to 0 to compile legacy code in ANSI mode if -// absolutely necessary -- updating it is strongly recommended as the ANSI mode -// will disappear completely in future wxWidgets releases. -#ifndef wxUSE_UNICODE - #define wxUSE_UNICODE 1 -#endif - -// wxUSE_WCHAR_T is required by wxWidgets now, don't change. -#define wxUSE_WCHAR_T 1 - -// ---------------------------------------------------------------------------- -// global features -// ---------------------------------------------------------------------------- - -// Compile library in exception-safe mode? If set to 1, the library will try to -// behave correctly in presence of exceptions (even though it still will not -// use the exceptions itself) and notify the user code about any unhandled -// exceptions. If set to 0, propagation of the exceptions through the library -// code will lead to undefined behaviour -- but the code itself will be -// slightly smaller and faster. -// -// Note that like wxUSE_THREADS this option is automatically set to 0 if -// wxNO_EXCEPTIONS is defined. -// -// Default is 1 -// -// Recommended setting: depends on whether you intend to use C++ exceptions -// in your own code (1 if you do, 0 if you don't) -#define wxUSE_EXCEPTIONS 1 - -// Set wxUSE_EXTENDED_RTTI to 1 to use extended RTTI -// -// Default is 0 -// -// Recommended setting: 0 (this is still work in progress...) -#define wxUSE_EXTENDED_RTTI 0 - -// Support for message/error logging. This includes wxLogXXX() functions and -// wxLog and derived classes. Don't set this to 0 unless you really know what -// you are doing. -// -// Default is 1 -// -// Recommended setting: 1 (always) -#define wxUSE_LOG 1 - -// Recommended setting: 1 -#define wxUSE_LOGWINDOW 1 - -// Recommended setting: 1 -#define wxUSE_LOGGUI 1 - -// Recommended setting: 1 -#define wxUSE_LOG_DIALOG 1 - -// Support for command line parsing using wxCmdLineParser class. -// -// Default is 1 -// -// Recommended setting: 1 (can be set to 0 if you don't use the cmd line) -#define wxUSE_CMDLINE_PARSER 1 - -// Support for multithreaded applications: if 1, compile in thread classes -// (thread.h) and make the library a bit more thread safe. Although thread -// support is quite stable by now, you may still consider recompiling the -// library without it if you have no use for it - this will result in a -// somewhat smaller and faster operation. -// -// Notice that if wxNO_THREADS is defined, wxUSE_THREADS is automatically reset -// to 0 in wx/chkconf.h, so, for example, if you set USE_THREADS to 0 in -// build/msw/config.* file this value will have no effect. -// -// Default is 1 -// -// Recommended setting: 0 unless you do plan to develop MT applications -#define wxUSE_THREADS 1 - -// If enabled, compiles wxWidgets streams classes -// -// wx stream classes are used for image IO, process IO redirection, network -// protocols implementation and much more and so disabling this results in a -// lot of other functionality being lost. -// -// Default is 1 -// -// Recommended setting: 1 as setting it to 0 disables many other things -#define wxUSE_STREAMS 1 - -// Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf. -// Note that if the system's implementation does not support positional -// parameters, setting this to 1 forces the use of the wxWidgets implementation -// of wxVsnprintf. The standard vsnprintf() supports positional parameters on -// many Unix systems but usually doesn't under Windows. -// -// Positional parameters are very useful when translating a program since using -// them in formatting strings allow translators to correctly reorder the -// translated sentences. -// -// Default is 1 -// -// Recommended setting: 1 if you want to support multiple languages -#define wxUSE_PRINTF_POS_PARAMS 1 - -// Enable the use of compiler-specific thread local storage keyword, if any. -// This is used for wxTLS_XXX() macros implementation and normally should use -// the compiler-provided support as it's simpler and more efficient, but is -// disabled under Windows in wx/msw/chkconf.h as it can't be used if wxWidgets -// is used in a dynamically loaded Win32 DLL (i.e. using LoadLibrary()) under -// XP as this triggers a bug in compiler TLS support that results in crashes -// when any TLS variables are used. -// -// If you're absolutely sure that your build of wxWidgets is never going to be -// used in such situation, either because it's not going to be linked from any -// kind of plugin or because you only target Vista or later systems, you can -// set this to 2 to force the use of compiler TLS even under MSW. -// -// Default is 1 meaning that compiler TLS is used only if it's 100% safe. -// -// Recommended setting: 2 if you want to have maximal performance and don't -// care about the scenario described above. -#define wxUSE_COMPILER_TLS 1 - -// ---------------------------------------------------------------------------- -// Interoperability with the standard library. -// ---------------------------------------------------------------------------- - -// Set wxUSE_STL to 1 to enable maximal interoperability with the standard -// library, even at the cost of backwards compatibility. -// -// Default is 0 -// -// Recommended setting: 0 as the options below already provide a relatively -// good level of interoperability and changing this option arguably isn't worth -// diverging from the official builds of the library. -#define wxUSE_STL 0 - -// This is not a real option but is used as the default value for -// wxUSE_STD_IOSTREAM, wxUSE_STD_STRING and wxUSE_STD_CONTAINERS_COMPATIBLY. -// -// Set it to 0 if you want to disable the use of all standard classes -// completely for some reason. -#define wxUSE_STD_DEFAULT 1 - -// Use standard C++ containers where it can be done without breaking backwards -// compatibility. -// -// This provides better interoperability with the standard library, e.g. with -// this option on it's possible to insert std::vector<> into many wxWidgets -// containers directly. -// -// Default is 1. -// -// Recommended setting is 1 unless you want to avoid all dependencies on the -// standard library. -#define wxUSE_STD_CONTAINERS_COMPATIBLY wxUSE_STD_DEFAULT - -// Use standard C++ containers to implement wxVector<>, wxStack<>, wxDList<> -// and wxHashXXX<> classes. If disabled, wxWidgets own (mostly compatible but -// usually more limited) implementations are used which allows to avoid the -// dependency on the C++ run-time library. -// -// Default is 0 for compatibility reasons. -// -// Recommended setting: 1 unless compatibility with the official wxWidgets -// build and/or the existing code is a concern. -#define wxUSE_STD_CONTAINERS 0 - -// Use standard C++ streams if 1 instead of wx streams in some places. If -// disabled, wx streams are used everywhere and wxWidgets doesn't depend on the -// standard streams library. -// -// Notice that enabling this does not replace wx streams with std streams -// everywhere, in a lot of places wx streams are used no matter what. -// -// Default is 1 if compiler supports it. -// -// Recommended setting: 1 if you use the standard streams anyhow and so -// dependency on the standard streams library is not a -// problem -#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT - -// Enable minimal interoperability with the standard C++ string class if 1. -// "Minimal" means that wxString can be constructed from std::string or -// std::wstring but can't be implicitly converted to them. You need to enable -// the option below for the latter. -// -// Default is 1 for most compilers. -// -// Recommended setting: 1 unless you want to ensure your program doesn't use -// the standard C++ library at all. -#define wxUSE_STD_STRING wxUSE_STD_DEFAULT - -// Make wxString as much interchangeable with std::[w]string as possible, in -// particular allow implicit conversion of wxString to either of these classes. -// This comes at a price (or a benefit, depending on your point of view) of not -// allowing implicit conversion to "const char *" and "const wchar_t *". -// -// Because a lot of existing code relies on these conversions, this option is -// disabled by default but can be enabled for your build if you don't care -// about compatibility. -// -// Default is 0 if wxUSE_STL has its default value or 1 if it is enabled. -// -// Recommended setting: 0 to remain compatible with the official builds of -// wxWidgets. -#define wxUSE_STD_STRING_CONV_IN_WXSTRING wxUSE_STL - -// VC++ 4.2 and above allows <iostream> and <iostream.h> but you can't mix -// them. Set this option to 1 to use <iostream.h>, 0 to use <iostream>. -// -// Note that newer compilers (including VC++ 7.1 and later) don't support -// wxUSE_IOSTREAMH == 1 and so <iostream> will be used anyhow. -// -// Default is 0. -// -// Recommended setting: 0, only set to 1 if you use a really old compiler -#define wxUSE_IOSTREAMH 0 - - -// ---------------------------------------------------------------------------- -// non GUI features selection -// ---------------------------------------------------------------------------- - -// Set wxUSE_LONGLONG to 1 to compile the wxLongLong class. This is a 64 bit -// integer which is implemented in terms of native 64 bit integers if any or -// uses emulation otherwise. -// -// This class is required by wxDateTime and so you should enable it if you want -// to use wxDateTime. For most modern platforms, it will use the native 64 bit -// integers in which case (almost) all of its functions are inline and it -// almost does not take any space, so there should be no reason to switch it -// off. -// -// Recommended setting: 1 -#define wxUSE_LONGLONG 1 - -// Set wxUSE_BASE64 to 1, to compile in Base64 support. This is required for -// storing binary data in wxConfig on most platforms. -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely disabled if you don't use it) -#define wxUSE_BASE64 1 - -// Set this to 1 to be able to use wxEventLoop even in console applications -// (i.e. using base library only, without GUI). This is mostly useful for -// processing socket events but is also necessary to use timers in console -// applications -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely disabled if you don't use it) -#define wxUSE_CONSOLE_EVENTLOOP 1 - -// Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level -// POSIX functions for file access, wxFFile uses ANSI C stdio.h functions. -// -// Default is 1 -// -// Recommended setting: 1 (wxFile is highly recommended as it is required by -// i18n code, wxFileConfig and others) -#define wxUSE_FILE 1 -#define wxUSE_FFILE 1 - -// Use wxFSVolume class providing access to the configured/active mount points -// -// Default is 1 -// -// Recommended setting: 1 (but may be safely disabled if you don't use it) -#define wxUSE_FSVOLUME 1 - -// Use wxStandardPaths class which allows to retrieve some standard locations -// in the file system -// -// Default is 1 -// -// Recommended setting: 1 (may be disabled to save space, but not much) -#define wxUSE_STDPATHS 1 - -// use wxTextBuffer class: required by wxTextFile -#define wxUSE_TEXTBUFFER 1 - -// use wxTextFile class: requires wxFile and wxTextBuffer, required by -// wxFileConfig -#define wxUSE_TEXTFILE 1 - -// i18n support: _() macro, wxLocale class. Requires wxTextFile. -#define wxUSE_INTL 1 - -// Provide wxFoo_l() functions similar to standard foo() functions but taking -// an extra locale parameter. -// -// Notice that this is fully implemented only for the systems providing POSIX -// xlocale support or Microsoft Visual C++ >= 8 (which provides proprietary -// almost-equivalent of xlocale functions), otherwise wxFoo_l() functions will -// only work for the current user locale and "C" locale. You can use -// wxHAS_XLOCALE_SUPPORT to test whether the full support is available. -// -// Default is 1 -// -// Recommended setting: 1 but may be disabled if you are writing programs -// running only in C locale anyhow -#define wxUSE_XLOCALE 1 - -// Set wxUSE_DATETIME to 1 to compile the wxDateTime and related classes which -// allow to manipulate dates, times and time intervals. -// -// Requires: wxUSE_LONGLONG -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_DATETIME 1 - -// Set wxUSE_TIMER to 1 to compile wxTimer class -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_TIMER 1 - -// Use wxStopWatch clas. -// -// Default is 1 -// -// Recommended setting: 1 (needed by wxSocket) -#define wxUSE_STOPWATCH 1 - -// Set wxUSE_FSWATCHER to 1 if you want to enable wxFileSystemWatcher -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_FSWATCHER 1 - -// Setting wxUSE_CONFIG to 1 enables the use of wxConfig and related classes -// which allow the application to store its settings in the persistent -// storage. Setting this to 1 will also enable on-demand creation of the -// global config object in wxApp. -// -// See also wxUSE_CONFIG_NATIVE below. -// -// Recommended setting: 1 -#define wxUSE_CONFIG 1 - -// If wxUSE_CONFIG is 1, you may choose to use either the native config -// classes under Windows (using .INI files under Win16 and the registry under -// Win32) or the portable text file format used by the config classes under -// Unix. -// -// Default is 1 to use native classes. Note that you may still use -// wxFileConfig even if you set this to 1 - just the config object created by -// default for the applications needs will be a wxRegConfig or wxIniConfig and -// not wxFileConfig. -// -// Recommended setting: 1 -#define wxUSE_CONFIG_NATIVE 1 - -// If wxUSE_DIALUP_MANAGER is 1, compile in wxDialUpManager class which allows -// to connect/disconnect from the network and be notified whenever the dial-up -// network connection is established/terminated. Requires wxUSE_DYNAMIC_LOADER. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DIALUP_MANAGER 1 - -// Compile in classes for run-time DLL loading and function calling. -// Required by wxUSE_DIALUP_MANAGER. -// -// This setting is for Win32 only -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DYNLIB_CLASS 1 - -// experimental, don't use for now -#define wxUSE_DYNAMIC_LOADER 1 - -// Set to 1 to use socket classes -#define wxUSE_SOCKETS 1 - -// Set to 1 to use ipv6 socket classes (requires wxUSE_SOCKETS) -// -// Notice that currently setting this option under Windows will result in -// programs which can only run on recent OS versions (with ws2_32.dll -// installed) which is why it is disabled by default. -// -// Default is 1. -// -// Recommended setting: 1 if you need IPv6 support -#define wxUSE_IPV6 0 - -// Set to 1 to enable virtual file systems (required by wxHTML) -#define wxUSE_FILESYSTEM 1 - -// Set to 1 to enable virtual ZIP filesystem (requires wxUSE_FILESYSTEM) -#define wxUSE_FS_ZIP 1 - -// Set to 1 to enable virtual archive filesystem (requires wxUSE_FILESYSTEM) -#define wxUSE_FS_ARCHIVE 1 - -// Set to 1 to enable virtual Internet filesystem (requires wxUSE_FILESYSTEM) -#define wxUSE_FS_INET 1 - -// wxArchive classes for accessing archives such as zip and tar -#define wxUSE_ARCHIVE_STREAMS 1 - -// Set to 1 to compile wxZipInput/OutputStream classes. -#define wxUSE_ZIPSTREAM 1 - -// Set to 1 to compile wxTarInput/OutputStream classes. -#define wxUSE_TARSTREAM 1 - -// Set to 1 to compile wxZlibInput/OutputStream classes. Also required by -// wxUSE_LIBPNG -#define wxUSE_ZLIB 1 - -// If enabled, the code written by Apple will be used to write, in a portable -// way, float on the disk. See extended.c for the license which is different -// from wxWidgets one. -// -// Default is 1. -// -// Recommended setting: 1 unless you don't like the license terms (unlikely) -#define wxUSE_APPLE_IEEE 1 - -// Joystick support class -#define wxUSE_JOYSTICK 1 - -// wxFontEnumerator class -#define wxUSE_FONTENUM 1 - -// wxFontMapper class -#define wxUSE_FONTMAP 1 - -// wxMimeTypesManager class -#define wxUSE_MIMETYPE 1 - -// wxProtocol and related classes: if you want to use either of wxFTP, wxHTTP -// or wxURL you need to set this to 1. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_PROTOCOL 1 - -// The settings for the individual URL schemes -#define wxUSE_PROTOCOL_FILE 1 -#define wxUSE_PROTOCOL_FTP 1 -#define wxUSE_PROTOCOL_HTTP 1 - -// Define this to use wxURL class. -#define wxUSE_URL 1 - -// Define this to use native platform url and protocol support. -// Currently valid only for MS-Windows. -// Note: if you set this to 1, you can open ftp/http/gopher sites -// and obtain a valid input stream for these sites -// even when you set wxUSE_PROTOCOL_FTP/HTTP to 0. -// Doing so reduces the code size. -// -// This code is experimental and subject to change. -#define wxUSE_URL_NATIVE 0 - -// Support for wxVariant class used in several places throughout the library, -// notably in wxDataViewCtrl API. -// -// Default is 1. -// -// Recommended setting: 1 unless you want to reduce the library size as much as -// possible in which case setting this to 0 can gain up to 100KB. -#define wxUSE_VARIANT 1 - -// Support for wxAny class, the successor for wxVariant. -// -// Default is 1. -// -// Recommended setting: 1 unless you want to reduce the library size by a small amount, -// or your compiler cannot for some reason cope with complexity of templates used. -#define wxUSE_ANY 1 - -// Support for regular expression matching via wxRegEx class: enable this to -// use POSIX regular expressions in your code. You need to compile regex -// library from src/regex to use it under Windows. -// -// Default is 0 -// -// Recommended setting: 1 if your compiler supports it, if it doesn't please -// contribute us a makefile for src/regex for it -#define wxUSE_REGEX 1 - -// wxSystemOptions class -#define wxUSE_SYSTEM_OPTIONS 1 - -// wxSound class -#define wxUSE_SOUND 1 - -// Use wxMediaCtrl -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_MEDIACTRL 1 - -// Use wxWidget's XRC XML-based resource system. Recommended. -// -// Default is 1 -// -// Recommended setting: 1 (requires wxUSE_XML) -#define wxUSE_XRC 1 - -// XML parsing classes. Note that their API will change in the future, so -// using wxXmlDocument and wxXmlNode in your app is not recommended. -// -// Default is the same as wxUSE_XRC, i.e. 1 by default. -// -// Recommended setting: 1 (required by XRC) -#define wxUSE_XML wxUSE_XRC - -// Use wxWidget's AUI docking system -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_AUI 1 - -// Use wxWidget's Ribbon classes for interfaces -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_RIBBON 1 - -// Use wxPropertyGrid. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_PROPGRID 1 - -// Use wxStyledTextCtrl, a wxWidgets implementation of Scintilla. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_STC 1 - -// Use wxWidget's web viewing classes -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_WEBVIEW 1 - -// Use the IE wxWebView backend -// -// Default is 1 on MSW -// -// Recommended setting: 1 -#ifdef __WXMSW__ -#define wxUSE_WEBVIEW_IE 1 -#else -#define wxUSE_WEBVIEW_IE 0 -#endif - -// Use the WebKit wxWebView backend -// -// Default is 1 on GTK and OSX -// -// Recommended setting: 1 -#if defined(__WXGTK__) || defined(__WXOSX__) -#define wxUSE_WEBVIEW_WEBKIT 1 -#else -#define wxUSE_WEBVIEW_WEBKIT 0 -#endif - -// Enable wxGraphicsContext and related classes for a modern 2D drawing API. -// -// Default is 1 except if you're using a non-Microsoft compiler under Windows -// as only MSVC is known to ship with at least gdiplus.h which is required to -// compile GDI+-based implementation of wxGraphicsContext (MSVC10 and later -// versions also include d2d1.h required for Direct2D-based implementation). -// For other compilers (e.g. mingw32) you may need to install the headers (and -// just the headers) yourself. If you do, change the setting below manually. -// -// Recommended setting: 1 if supported by the compilation environment - -// notice that we can't use wxCHECK_VISUALC_VERSION() here as this file is -// included from wx/platform.h before wxCHECK_VISUALC_VERSION() is defined -#ifdef _MSC_VER -# define wxUSE_GRAPHICS_CONTEXT 1 -#else - // Disable support for other Windows compilers, enable it if your compiler - // comes with new enough SDK or you installed the headers manually. - // - // Notice that this will be set by configure under non-Windows platforms - // anyhow so the value there is not important. -# define wxUSE_GRAPHICS_CONTEXT 0 -#endif - -// Enable wxGraphicsContext implementation using Cairo library. -// -// This is not needed under Windows and detected automatically by configure -// under other systems, however you may set this to 1 manually if you installed -// Cairo under Windows yourself and prefer to use it instead the native GDI+ -// implementation. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_CAIRO 0 - - -// ---------------------------------------------------------------------------- -// Individual GUI controls -// ---------------------------------------------------------------------------- - -// You must set wxUSE_CONTROLS to 1 if you are using any controls at all -// (without it, wxControl class is not compiled) -// -// Default is 1 -// -// Recommended setting: 1 (don't change except for very special programs) -#define wxUSE_CONTROLS 1 - -// Support markup in control labels, i.e. provide wxControl::SetLabelMarkup(). -// Currently markup is supported only by a few controls and only some ports but -// their number will increase with time. -// -// Default is 1 -// -// Recommended setting: 1 (may be set to 0 if you want to save on code size) -#define wxUSE_MARKUP 1 - -// wxPopupWindow class is a top level transient window. It is currently used -// to implement wxTipWindow -// -// Default is 1 -// -// Recommended setting: 1 (may be set to 0 if you don't wxUSE_TIPWINDOW) -#define wxUSE_POPUPWIN 1 - -// wxTipWindow allows to implement the custom tooltips, it is used by the -// context help classes. Requires wxUSE_POPUPWIN. -// -// Default is 1 -// -// Recommended setting: 1 (may be set to 0) -#define wxUSE_TIPWINDOW 1 - -// Each of the settings below corresponds to one wxWidgets control. They are -// all switched on by default but may be disabled if you are sure that your -// program (including any standard dialogs it can show!) doesn't need them and -// if you desperately want to save some space. If you use any of these you must -// set wxUSE_CONTROLS as well. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_ACTIVITYINDICATOR 1 // wxActivityIndicator -#define wxUSE_ANIMATIONCTRL 1 // wxAnimationCtrl -#define wxUSE_BANNERWINDOW 1 // wxBannerWindow -#define wxUSE_BUTTON 1 // wxButton -#define wxUSE_BMPBUTTON 1 // wxBitmapButton -#define wxUSE_CALENDARCTRL 1 // wxCalendarCtrl -#define wxUSE_CHECKBOX 1 // wxCheckBox -#define wxUSE_CHECKLISTBOX 1 // wxCheckListBox (requires wxUSE_OWNER_DRAWN) -#define wxUSE_CHOICE 1 // wxChoice -#define wxUSE_COLLPANE 1 // wxCollapsiblePane -#define wxUSE_COLOURPICKERCTRL 1 // wxColourPickerCtrl -#define wxUSE_COMBOBOX 1 // wxComboBox -#define wxUSE_COMMANDLINKBUTTON 1 // wxCommandLinkButton -#define wxUSE_DATAVIEWCTRL 1 // wxDataViewCtrl -#define wxUSE_DATEPICKCTRL 1 // wxDatePickerCtrl -#define wxUSE_DIRPICKERCTRL 1 // wxDirPickerCtrl -#define wxUSE_EDITABLELISTBOX 1 // wxEditableListBox -#define wxUSE_FILECTRL 1 // wxFileCtrl -#define wxUSE_FILEPICKERCTRL 1 // wxFilePickerCtrl -#define wxUSE_FONTPICKERCTRL 1 // wxFontPickerCtrl -#define wxUSE_GAUGE 1 // wxGauge -#define wxUSE_HEADERCTRL 1 // wxHeaderCtrl -#define wxUSE_HYPERLINKCTRL 1 // wxHyperlinkCtrl -#define wxUSE_LISTBOX 1 // wxListBox -#define wxUSE_LISTCTRL 1 // wxListCtrl -#define wxUSE_RADIOBOX 1 // wxRadioBox -#define wxUSE_RADIOBTN 1 // wxRadioButton -#define wxUSE_RICHMSGDLG 1 // wxRichMessageDialog -#define wxUSE_SCROLLBAR 1 // wxScrollBar -#define wxUSE_SEARCHCTRL 1 // wxSearchCtrl -#define wxUSE_SLIDER 1 // wxSlider -#define wxUSE_SPINBTN 1 // wxSpinButton -#define wxUSE_SPINCTRL 1 // wxSpinCtrl -#define wxUSE_STATBOX 1 // wxStaticBox -#define wxUSE_STATLINE 1 // wxStaticLine -#define wxUSE_STATTEXT 1 // wxStaticText -#define wxUSE_STATBMP 1 // wxStaticBitmap -#define wxUSE_TEXTCTRL 1 // wxTextCtrl -#define wxUSE_TIMEPICKCTRL 1 // wxTimePickerCtrl -#define wxUSE_TOGGLEBTN 1 // requires wxButton -#define wxUSE_TREECTRL 1 // wxTreeCtrl -#define wxUSE_TREELISTCTRL 1 // wxTreeListCtrl - -// Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR -// below either wxStatusBar95 or a generic wxStatusBar will be used. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_STATUSBAR 1 - -// Two status bar implementations are available under Win32: the generic one -// or the wrapper around native control. For native look and feel the native -// version should be used. -// -// Default is 1 for the platforms where native status bar is supported. -// -// Recommended setting: 1 (there is no advantage in using the generic one) -#define wxUSE_NATIVE_STATUSBAR 1 - -// wxToolBar related settings: if wxUSE_TOOLBAR is 0, don't compile any toolbar -// classes at all. Otherwise, use the native toolbar class unless -// wxUSE_TOOLBAR_NATIVE is 0. -// -// Default is 1 for all settings. -// -// Recommended setting: 1 for wxUSE_TOOLBAR and wxUSE_TOOLBAR_NATIVE. -#define wxUSE_TOOLBAR 1 -#define wxUSE_TOOLBAR_NATIVE 1 - -// wxNotebook is a control with several "tabs" located on one of its sides. It -// may be used to logically organise the data presented to the user instead of -// putting everything in one huge dialog. It replaces wxTabControl and related -// classes of wxWin 1.6x. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_NOTEBOOK 1 - -// wxListbook control is similar to wxNotebook but uses wxListCtrl instead of -// the tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_LISTBOOK 1 - -// wxChoicebook control is similar to wxNotebook but uses wxChoice instead of -// the tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_CHOICEBOOK 1 - -// wxTreebook control is similar to wxNotebook but uses wxTreeCtrl instead of -// the tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_TREEBOOK 1 - -// wxToolbook control is similar to wxNotebook but uses wxToolBar instead of -// tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_TOOLBOOK 1 - -// wxTaskBarIcon is a small notification icon shown in the system toolbar or -// dock. -// -// Default is 1. -// -// Recommended setting: 1 (but can be set to 0 if you don't need it) -#define wxUSE_TASKBARICON 1 - -// wxGrid class -// -// Default is 1, set to 0 to cut down compilation time and binaries size if you -// don't use it. -// -// Recommended setting: 1 -// -#define wxUSE_GRID 1 - -// wxMiniFrame class: a frame with narrow title bar -// -// Default is 1. -// -// Recommended setting: 1 (it doesn't cost almost anything) -#define wxUSE_MINIFRAME 1 - -// wxComboCtrl and related classes: combobox with custom popup window and -// not necessarily a listbox. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 except for wxUniv where it -// it used by wxComboBox -#define wxUSE_COMBOCTRL 1 - -// wxOwnerDrawnComboBox is a custom combobox allowing to paint the combobox -// items. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0, except where it is -// needed as a base class for generic wxBitmapComboBox. -#define wxUSE_ODCOMBOBOX 1 - -// wxBitmapComboBox is a combobox that can have images in front of text items. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 -#define wxUSE_BITMAPCOMBOBOX 1 - -// wxRearrangeCtrl is a wxCheckListBox with two buttons allowing to move items -// up and down in it. It is also used as part of wxRearrangeDialog. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 (currently used only by -// wxHeaderCtrl) -#define wxUSE_REARRANGECTRL 1 - -// wxAddRemoveCtrl is a composite control containing a control showing some -// items (e.g. wxListBox, wxListCtrl, wxTreeCtrl, wxDataViewCtrl, ...) and "+"/ -// "-" buttons allowing to add and remove items to/from the control. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 if you don't need it (not -// used by the library itself). -#define wxUSE_ADDREMOVECTRL 1 - -// ---------------------------------------------------------------------------- -// Miscellaneous GUI stuff -// ---------------------------------------------------------------------------- - -// wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar) -#define wxUSE_ACCEL 1 - -// Use the standard art provider. The icons returned by this provider are -// embedded into the library as XPMs so disabling it reduces the library size -// somewhat but this should only be done if you use your own custom art -// provider returning the icons or never use any icons not provided by the -// native art provider (which might not be implemented at all for some -// platforms) or by the Tango icons provider (if it's not itself disabled -// below). -// -// Default is 1. -// -// Recommended setting: 1 unless you use your own custom art provider. -#define wxUSE_ARTPROVIDER_STD 1 - -// Use art provider providing Tango icons: this art provider has higher quality -// icons than the default ones using smaller size XPM icons without -// transparency but the embedded PNG icons add to the library size. -// -// Default is 1 under non-GTK ports. Under wxGTK the native art provider using -// the GTK+ stock icons replaces it so it is normally not necessary. -// -// Recommended setting: 1 but can be turned off to reduce the library size. -#define wxUSE_ARTPROVIDER_TANGO 1 - -// Hotkey support (currently Windows only) -#define wxUSE_HOTKEY 1 - -// Use wxCaret: a class implementing a "cursor" in a text control (called caret -// under Windows). -// -// Default is 1. -// -// Recommended setting: 1 (can be safely set to 0, not used by the library) -#define wxUSE_CARET 1 - -// Use wxDisplay class: it allows enumerating all displays on a system and -// their geometries as well as finding the display on which the given point or -// window lies. -// -// Default is 1. -// -// Recommended setting: 1 if you need it, can be safely set to 0 otherwise -#define wxUSE_DISPLAY 1 - -// Miscellaneous geometry code: needed for Canvas library -#define wxUSE_GEOMETRY 1 - -// Use wxImageList. This class is needed by wxNotebook, wxTreeCtrl and -// wxListCtrl. -// -// Default is 1. -// -// Recommended setting: 1 (set it to 0 if you don't use any of the controls -// enumerated above, then this class is mostly useless too) -#define wxUSE_IMAGLIST 1 - -// Use wxInfoBar class. -// -// Default is 1. -// -// Recommended setting: 1 (but can be disabled without problems as nothing -// depends on it) -#define wxUSE_INFOBAR 1 - -// Use wxMenu, wxMenuBar, wxMenuItem. -// -// Default is 1. -// -// Recommended setting: 1 (can't be disabled under MSW) -#define wxUSE_MENUS 1 - -// Use wxNotificationMessage. -// -// wxNotificationMessage allows to show non-intrusive messages to the user -// using balloons, banners, popups or whatever is the appropriate method for -// the current platform. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_NOTIFICATION_MESSAGE 1 - -// wxPreferencesEditor provides a common API for different ways of presenting -// the standard "Preferences" or "Properties" dialog under different platforms -// (e.g. some use modal dialogs, some use modeless ones; some apply the changes -// immediately while others require an explicit "Apply" button). -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely disabled if you don't use it) -#define wxUSE_PREFERENCES_EDITOR 1 - -// wxRichToolTip is a customizable tooltip class which has more functionality -// than the stock (but native, unlike this class) wxToolTip. -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely set to 0 if you don't need it) -#define wxUSE_RICHTOOLTIP 1 - -// Use wxSashWindow class. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_SASH 1 - -// Use wxSplitterWindow class. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_SPLITTER 1 - -// Use wxToolTip and wxWindow::Set/GetToolTip() methods. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_TOOLTIPS 1 - -// wxValidator class and related methods -#define wxUSE_VALIDATORS 1 - -// Use reference counted ID management: this means that wxWidgets will track -// the automatically allocated ids (those used when you use wxID_ANY when -// creating a window, menu or toolbar item &c) instead of just supposing that -// the program never runs out of them. This is mostly useful only under wxMSW -// where the total ids range is limited to SHRT_MIN..SHRT_MAX and where -// long-running programs can run into problems with ids reuse without this. On -// the other platforms, where the ids have the full int range, this shouldn't -// be necessary. -#ifdef __WXMSW__ -#define wxUSE_AUTOID_MANAGEMENT 1 -#else -#define wxUSE_AUTOID_MANAGEMENT 0 -#endif - -// ---------------------------------------------------------------------------- -// common dialogs -// ---------------------------------------------------------------------------- - -// On rare occasions (e.g. using DJGPP) may want to omit common dialogs (e.g. -// file selector, printer dialog). Switching this off also switches off the -// printing architecture and interactive wxPrinterDC. -// -// Default is 1 -// -// Recommended setting: 1 (unless it really doesn't work) -#define wxUSE_COMMON_DIALOGS 1 - -// wxBusyInfo displays window with message when app is busy. Works in same way -// as wxBusyCursor -#define wxUSE_BUSYINFO 1 - -// Use single/multiple choice dialogs. -// -// Default is 1 -// -// Recommended setting: 1 (used in the library itself) -#define wxUSE_CHOICEDLG 1 - -// Use colour picker dialog -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_COLOURDLG 1 - -// wxDirDlg class for getting a directory name from user -#define wxUSE_DIRDLG 1 - -// TODO: setting to choose the generic or native one - -// Use file open/save dialogs. -// -// Default is 1 -// -// Recommended setting: 1 (used in many places in the library itself) -#define wxUSE_FILEDLG 1 - -// Use find/replace dialogs. -// -// Default is 1 -// -// Recommended setting: 1 (but may be safely set to 0) -#define wxUSE_FINDREPLDLG 1 - -// Use font picker dialog -// -// Default is 1 -// -// Recommended setting: 1 (used in the library itself) -#define wxUSE_FONTDLG 1 - -// Use wxMessageDialog and wxMessageBox. -// -// Default is 1 -// -// Recommended setting: 1 (used in the library itself) -#define wxUSE_MSGDLG 1 - -// progress dialog class for lengthy operations -#define wxUSE_PROGRESSDLG 1 - -// Set to 0 to disable the use of the native progress dialog (currently only -// available under MSW and suffering from some bugs there, hence this option). -#define wxUSE_NATIVE_PROGRESSDLG 1 - -// support for startup tips (wxShowTip &c) -#define wxUSE_STARTUP_TIPS 1 - -// text entry dialog and wxGetTextFromUser function -#define wxUSE_TEXTDLG 1 - -// number entry dialog -#define wxUSE_NUMBERDLG 1 - -// splash screen class -#define wxUSE_SPLASH 1 - -// wizards -#define wxUSE_WIZARDDLG 1 - -// Compile in wxAboutBox() function showing the standard "About" dialog. -// -// Default is 1 -// -// Recommended setting: 1 but can be set to 0 to save some space if you don't -// use this function -#define wxUSE_ABOUTDLG 1 - -// wxFileHistory class -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_FILE_HISTORY 1 - -// ---------------------------------------------------------------------------- -// Metafiles support -// ---------------------------------------------------------------------------- - -// Windows supports the graphics format known as metafile which is, though not -// portable, is widely used under Windows and so is supported by wxWin (under -// Windows only, of course). Win16 (Win3.1) used the so-called "Window -// MetaFiles" or WMFs which were replaced with "Enhanced MetaFiles" or EMFs in -// Win32 (Win9x, NT, 2000). Both of these are supported in wxWin and, by -// default, WMFs will be used under Win16 and EMFs under Win32. This may be -// changed by setting wxUSE_WIN_METAFILES_ALWAYS to 1 and/or setting -// wxUSE_ENH_METAFILE to 0. You may also set wxUSE_METAFILE to 0 to not compile -// in any metafile related classes at all. -// -// Default is 1 for wxUSE_ENH_METAFILE and 0 for wxUSE_WIN_METAFILES_ALWAYS. -// -// Recommended setting: default or 0 for everything for portable programs. -#define wxUSE_METAFILE 1 -#define wxUSE_ENH_METAFILE 1 -#define wxUSE_WIN_METAFILES_ALWAYS 0 - -// ---------------------------------------------------------------------------- -// Big GUI components -// ---------------------------------------------------------------------------- - -// Set to 0 to disable MDI support. -// -// Requires wxUSE_NOTEBOOK under platforms other than MSW. -// -// Default is 1. -// -// Recommended setting: 1, can be safely set to 0. -#define wxUSE_MDI 1 - -// Set to 0 to disable document/view architecture -#define wxUSE_DOC_VIEW_ARCHITECTURE 1 - -// Set to 0 to disable MDI document/view architecture -// -// Requires wxUSE_MDI && wxUSE_DOC_VIEW_ARCHITECTURE -#define wxUSE_MDI_ARCHITECTURE 1 - -// Set to 0 to disable print/preview architecture code -#define wxUSE_PRINTING_ARCHITECTURE 1 - -// wxHTML sublibrary allows to display HTML in wxWindow programs and much, -// much more. -// -// Default is 1. -// -// Recommended setting: 1 (wxHTML is great!), set to 0 if you want compile a -// smaller library. -#define wxUSE_HTML 1 - -// Setting wxUSE_GLCANVAS to 1 enables OpenGL support. You need to have OpenGL -// headers and libraries to be able to compile the library with wxUSE_GLCANVAS -// set to 1 and, under Windows, also to add opengl32.lib and glu32.lib to the -// list of libraries used to link your application (although this is done -// implicitly for Microsoft Visual C++ users). -// -// Default is 1. -// -// Recommended setting: 1 if you intend to use OpenGL, can be safely set to 0 -// otherwise. -#define wxUSE_GLCANVAS 1 - -// wxRichTextCtrl allows editing of styled text. -// -// Default is 1. -// -// Recommended setting: 1, set to 0 if you want compile a -// smaller library. -#define wxUSE_RICHTEXT 1 - -// ---------------------------------------------------------------------------- -// Data transfer -// ---------------------------------------------------------------------------- - -// Use wxClipboard class for clipboard copy/paste. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_CLIPBOARD 1 - -// Use wxDataObject and related classes. Needed for clipboard and OLE drag and -// drop -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DATAOBJ 1 - -// Use wxDropTarget and wxDropSource classes for drag and drop (this is -// different from "built in" drag and drop in wxTreeCtrl which is always -// available). Requires wxUSE_DATAOBJ. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DRAG_AND_DROP 1 - -// Use wxAccessible for enhanced and customisable accessibility. -// Depends on wxUSE_OLE. -// -// Default is 0. -// -// Recommended setting (at present): 0 -#define wxUSE_ACCESSIBILITY 0 - -// ---------------------------------------------------------------------------- -// miscellaneous settings -// ---------------------------------------------------------------------------- - -// wxSingleInstanceChecker class allows to verify at startup if another program -// instance is running. -// -// Default is 1 -// -// Recommended setting: 1 (the class is tiny, disabling it won't save much -// space) -#define wxUSE_SNGLINST_CHECKER 1 - -#define wxUSE_DRAGIMAGE 1 - -#define wxUSE_IPC 1 - // 0 for no interprocess comms -#define wxUSE_HELP 1 - // 0 for no help facility - -// Should we use MS HTML help for wxHelpController? If disabled, neither -// wxCHMHelpController nor wxBestHelpController are available. -// -// Default is 1 under MSW, 0 is always used for the other platforms. -// -// Recommended setting: 1, only set to 0 if you have trouble compiling -// wxCHMHelpController (could be a problem with really ancient compilers) -#define wxUSE_MS_HTML_HELP 1 - - -// Use wxHTML-based help controller? -#define wxUSE_WXHTML_HELP 1 - -#define wxUSE_CONSTRAINTS 1 - // 0 for no window layout constraint system - -#define wxUSE_SPLINES 1 - // 0 for no splines - -#define wxUSE_MOUSEWHEEL 1 - // Include mouse wheel support - -// Compile wxUIActionSimulator class? -#define wxUSE_UIACTIONSIMULATOR 1 - -// ---------------------------------------------------------------------------- -// wxDC classes for various output formats -// ---------------------------------------------------------------------------- - -// Set to 1 for PostScript device context. -#define wxUSE_POSTSCRIPT 0 - -// Set to 1 to use font metric files in GetTextExtent -#define wxUSE_AFM_FOR_POSTSCRIPT 1 - -// Set to 1 to compile in support for wxSVGFileDC, a wxDC subclass which allows -// to create files in SVG (Scalable Vector Graphics) format. -#define wxUSE_SVG 1 - -// Should wxDC provide SetTransformMatrix() and related methods? -// -// Default is 1 but can be set to 0 if this functionality is not used. Notice -// that currently only wxMSW supports this so setting this to 0 doesn't change -// much for non-MSW platforms (although it will still save a few bytes -// probably). -// -// Recommended setting: 1. -#define wxUSE_DC_TRANSFORM_MATRIX 1 - -// ---------------------------------------------------------------------------- -// image format support -// ---------------------------------------------------------------------------- - -// wxImage supports many different image formats which can be configured at -// compile-time. BMP is always supported, others are optional and can be safely -// disabled if you don't plan to use images in such format sometimes saving -// substantial amount of code in the final library. -// -// Some formats require an extra library which is included in wxWin sources -// which is mentioned if it is the case. - -// Set to 1 for wxImage support (recommended). -#define wxUSE_IMAGE 1 - -// Set to 1 for PNG format support (requires libpng). Also requires wxUSE_ZLIB. -#define wxUSE_LIBPNG 1 - -// Set to 1 for JPEG format support (requires libjpeg) -#define wxUSE_LIBJPEG 1 - -// Set to 1 for TIFF format support (requires libtiff) -#define wxUSE_LIBTIFF 1 - -// Set to 1 for TGA format support (loading only) -#define wxUSE_TGA 1 - -// Set to 1 for GIF format support -#define wxUSE_GIF 1 - -// Set to 1 for PNM format support -#define wxUSE_PNM 1 - -// Set to 1 for PCX format support -#define wxUSE_PCX 1 - -// Set to 1 for IFF format support (Amiga format) -#define wxUSE_IFF 0 - -// Set to 1 for XPM format support -#define wxUSE_XPM 1 - -// Set to 1 for MS Icons and Cursors format support -#define wxUSE_ICO_CUR 1 - -// Set to 1 to compile in wxPalette class -#define wxUSE_PALETTE 1 - -// ---------------------------------------------------------------------------- -// wxUniversal-only options -// ---------------------------------------------------------------------------- - -// Set to 1 to enable compilation of all themes, this is the default -#define wxUSE_ALL_THEMES 1 - -// Set to 1 to enable the compilation of individual theme if wxUSE_ALL_THEMES -// is unset, if it is set these options are not used; notice that metal theme -// uses Win32 one -#define wxUSE_THEME_GTK 0 -#define wxUSE_THEME_METAL 0 -#define wxUSE_THEME_MONO 0 -#define wxUSE_THEME_WIN32 0 - - -/* --- end common options --- */ - -/* --- start MSW options --- */ -// ---------------------------------------------------------------------------- -// Graphics backends choices for Windows -// ---------------------------------------------------------------------------- - -// The options here are only taken into account if wxUSE_GRAPHICS_CONTEXT is 1. - -// Enable support for GDI+-based implementation of wxGraphicsContext. -// -// Default is 1. -// -// Recommended setting: 1 if you need to support XP, as Direct2D is not -// available there. -#define wxUSE_GRAPHICS_GDIPLUS wxUSE_GRAPHICS_CONTEXT - -// Enable support for Direct2D-based implementation of wxGraphicsContext. -// -// Default is 1 for compilers which support it, i.e. VC10+ currently. If you -// use an earlier MSVC version or another compiler and installed the necessary -// SDK components manually, you need to change this setting. -// -// Recommended setting: 1 for faster and better quality graphics under Windows -// 7 and later systems (if wxUSE_GRAPHICS_GDIPLUS is also enabled, earlier -// systems will fall back on using GDI+). -#if defined(_MSC_VER) && _MSC_VER >= 1600 - #define wxUSE_GRAPHICS_DIRECT2D wxUSE_GRAPHICS_CONTEXT -#else - #define wxUSE_GRAPHICS_DIRECT2D 0 -#endif - -// ---------------------------------------------------------------------------- -// Windows-only settings -// ---------------------------------------------------------------------------- - -// Set this to 1 for generic OLE support: this is required for drag-and-drop, -// clipboard, OLE Automation. Only set it to 0 if your compiler is very old and -// can't compile/doesn't have the OLE headers. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_OLE 1 - -// Set this to 1 to enable wxAutomationObject class. -// -// Default is 1. -// -// Recommended setting: 1 if you need to control other applications via OLE -// Automation, can be safely set to 0 otherwise -#define wxUSE_OLE_AUTOMATION 1 - -// Set this to 1 to enable wxActiveXContainer class allowing to embed OLE -// controls in wx. -// -// Default is 1. -// -// Recommended setting: 1, required by wxMediaCtrl -#define wxUSE_ACTIVEX 1 - -// Enable WinRT support -// -// Default is 1 for compilers which support it, i.e. VS2012+ currently. If you -// use an earlier MSVC version or another compiler and installed the necessary -// SDK components manually, you need to change this setting. -// -// Recommended setting: 1 -#if defined(_MSC_VER) && _MSC_VER >= 1700 - #define wxUSE_WINRT 1 -#else - #define wxUSE_WINRT 0 -#endif - -// wxDC caching implementation -#define wxUSE_DC_CACHEING 1 - -// Set this to 1 to enable wxDIB class used internally for manipulating -// wxBitmap data. -// -// Default is 1, set it to 0 only if you don't use wxImage neither -// -// Recommended setting: 1 (without it conversion to/from wxImage won't work) -#define wxUSE_WXDIB 1 - -// Set to 0 to disable PostScript print/preview architecture code under Windows -// (just use Windows printing). -#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 1 - -// Set this to 1 to compile in wxRegKey class. -// -// Default is 1 -// -// Recommended setting: 1, this is used internally by wx in a few places -#define wxUSE_REGKEY 1 - -// Set this to 1 to use RICHEDIT controls for wxTextCtrl with style wxTE_RICH -// which allows to put more than ~32Kb of text in it even under Win9x (NT -// doesn't have such limitation). -// -// Default is 1 for compilers which support it -// -// Recommended setting: 1, only set it to 0 if your compiler doesn't have -// or can't compile <richedit.h> -#define wxUSE_RICHEDIT 1 - -// Set this to 1 to use extra features of richedit v2 and later controls -// -// Default is 1 for compilers which support it -// -// Recommended setting: 1 -#define wxUSE_RICHEDIT2 1 - -// Set this to 1 to enable support for the owner-drawn menu and listboxes. This -// is required by wxUSE_CHECKLISTBOX. -// -// Default is 1. -// -// Recommended setting: 1, set to 0 for a small library size reduction -#define wxUSE_OWNER_DRAWN 1 - -// Set this to 1 to enable MSW-specific wxTaskBarIcon::ShowBalloon() method. It -// is required by native wxNotificationMessage implementation. -// -// Default is 1 but disabled in wx/msw/chkconf.h if SDK is too old to contain -// the necessary declarations. -// -// Recommended setting: 1, set to 0 for a tiny library size reduction -#define wxUSE_TASKBARICON_BALLOONS 1 - -// Set this to 1 to enable following functionality added in Windows 7: thumbnail -// representations, thumbnail toolbars, notification and status overlays, -// progress indicators and jump lists. -// -// Default is 1. -// -// Recommended setting: 1, set to 0 for a tiny library size reduction -#define wxUSE_TASKBARBUTTON 1 - -// Set to 1 to compile MS Windows XP theme engine support -#define wxUSE_UXTHEME 1 - -// Set to 1 to use InkEdit control (Tablet PC), if available -#define wxUSE_INKEDIT 0 - -// Set to 1 to enable .INI files based wxConfig implementation (wxIniConfig) -// -// Default is 0. -// -// Recommended setting: 0, nobody uses .INI files any more -#define wxUSE_INICONF 0 - -// ---------------------------------------------------------------------------- -// Generic versions of native controls -// ---------------------------------------------------------------------------- - -// Set this to 1 to be able to use wxDatePickerCtrlGeneric in addition to the -// native wxDatePickerCtrl -// -// Default is 0. -// -// Recommended setting: 0, this is mainly used for testing -#define wxUSE_DATEPICKCTRL_GENERIC 0 - -// Set this to 1 to be able to use wxTimePickerCtrlGeneric in addition to the -// native wxTimePickerCtrl for the platforms that have the latter (MSW). -// -// Default is 0. -// -// Recommended setting: 0, this is mainly used for testing -#define wxUSE_TIMEPICKCTRL_GENERIC 0 - -// ---------------------------------------------------------------------------- -// Crash debugging helpers -// ---------------------------------------------------------------------------- - -// Set this to 1 to be able to use wxCrashReport::Generate() to create mini -// dumps of your program when it crashes (or at any other moment) -// -// Default is 1 if supported by the compiler (VC++ and recent BC++ only). -// -// Recommended setting: 1, set to 0 if your programs never crash -#define wxUSE_CRASHREPORT 1 -/* --- end MSW options --- */ - -#endif // _WX_SETUP_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/setup_inc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/setup_inc.h deleted file mode 100644 index eb01cbd5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/setup_inc.h +++ /dev/null @@ -1,189 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/setup_inc.h -// Purpose: MSW-specific setup.h options -// Author: Vadim Zeitlin -// Created: 2007-07-21 (extracted from wx/msw/setup0.h) -// Copyright: (c) 2007 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ---------------------------------------------------------------------------- -// Graphics backends choices for Windows -// ---------------------------------------------------------------------------- - -// The options here are only taken into account if wxUSE_GRAPHICS_CONTEXT is 1. - -// Enable support for GDI+-based implementation of wxGraphicsContext. -// -// Default is 1. -// -// Recommended setting: 1 if you need to support XP, as Direct2D is not -// available there. -#define wxUSE_GRAPHICS_GDIPLUS wxUSE_GRAPHICS_CONTEXT - -// Enable support for Direct2D-based implementation of wxGraphicsContext. -// -// Default is 1 for compilers which support it, i.e. VC10+ currently. If you -// use an earlier MSVC version or another compiler and installed the necessary -// SDK components manually, you need to change this setting. -// -// Recommended setting: 1 for faster and better quality graphics under Windows -// 7 and later systems (if wxUSE_GRAPHICS_GDIPLUS is also enabled, earlier -// systems will fall back on using GDI+). -#if defined(_MSC_VER) && _MSC_VER >= 1600 - #define wxUSE_GRAPHICS_DIRECT2D wxUSE_GRAPHICS_CONTEXT -#else - #define wxUSE_GRAPHICS_DIRECT2D 0 -#endif - -// ---------------------------------------------------------------------------- -// Windows-only settings -// ---------------------------------------------------------------------------- - -// Set this to 1 for generic OLE support: this is required for drag-and-drop, -// clipboard, OLE Automation. Only set it to 0 if your compiler is very old and -// can't compile/doesn't have the OLE headers. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_OLE 1 - -// Set this to 1 to enable wxAutomationObject class. -// -// Default is 1. -// -// Recommended setting: 1 if you need to control other applications via OLE -// Automation, can be safely set to 0 otherwise -#define wxUSE_OLE_AUTOMATION 1 - -// Set this to 1 to enable wxActiveXContainer class allowing to embed OLE -// controls in wx. -// -// Default is 1. -// -// Recommended setting: 1, required by wxMediaCtrl -#define wxUSE_ACTIVEX 1 - -// Enable WinRT support -// -// Default is 1 for compilers which support it, i.e. VS2012+ currently. If you -// use an earlier MSVC version or another compiler and installed the necessary -// SDK components manually, you need to change this setting. -// -// Recommended setting: 1 -#if defined(_MSC_VER) && _MSC_VER >= 1700 - #define wxUSE_WINRT 1 -#else - #define wxUSE_WINRT 0 -#endif - -// wxDC caching implementation -#define wxUSE_DC_CACHEING 1 - -// Set this to 1 to enable wxDIB class used internally for manipulating -// wxBitmap data. -// -// Default is 1, set it to 0 only if you don't use wxImage neither -// -// Recommended setting: 1 (without it conversion to/from wxImage won't work) -#define wxUSE_WXDIB 1 - -// Set to 0 to disable PostScript print/preview architecture code under Windows -// (just use Windows printing). -#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 1 - -// Set this to 1 to compile in wxRegKey class. -// -// Default is 1 -// -// Recommended setting: 1, this is used internally by wx in a few places -#define wxUSE_REGKEY 1 - -// Set this to 1 to use RICHEDIT controls for wxTextCtrl with style wxTE_RICH -// which allows to put more than ~32Kb of text in it even under Win9x (NT -// doesn't have such limitation). -// -// Default is 1 for compilers which support it -// -// Recommended setting: 1, only set it to 0 if your compiler doesn't have -// or can't compile <richedit.h> -#define wxUSE_RICHEDIT 1 - -// Set this to 1 to use extra features of richedit v2 and later controls -// -// Default is 1 for compilers which support it -// -// Recommended setting: 1 -#define wxUSE_RICHEDIT2 1 - -// Set this to 1 to enable support for the owner-drawn menu and listboxes. This -// is required by wxUSE_CHECKLISTBOX. -// -// Default is 1. -// -// Recommended setting: 1, set to 0 for a small library size reduction -#define wxUSE_OWNER_DRAWN 1 - -// Set this to 1 to enable MSW-specific wxTaskBarIcon::ShowBalloon() method. It -// is required by native wxNotificationMessage implementation. -// -// Default is 1 but disabled in wx/msw/chkconf.h if SDK is too old to contain -// the necessary declarations. -// -// Recommended setting: 1, set to 0 for a tiny library size reduction -#define wxUSE_TASKBARICON_BALLOONS 1 - -// Set this to 1 to enable following functionality added in Windows 7: thumbnail -// representations, thumbnail toolbars, notification and status overlays, -// progress indicators and jump lists. -// -// Default is 1. -// -// Recommended setting: 1, set to 0 for a tiny library size reduction -#define wxUSE_TASKBARBUTTON 1 - -// Set to 1 to compile MS Windows XP theme engine support -#define wxUSE_UXTHEME 1 - -// Set to 1 to use InkEdit control (Tablet PC), if available -#define wxUSE_INKEDIT 0 - -// Set to 1 to enable .INI files based wxConfig implementation (wxIniConfig) -// -// Default is 0. -// -// Recommended setting: 0, nobody uses .INI files any more -#define wxUSE_INICONF 0 - -// ---------------------------------------------------------------------------- -// Generic versions of native controls -// ---------------------------------------------------------------------------- - -// Set this to 1 to be able to use wxDatePickerCtrlGeneric in addition to the -// native wxDatePickerCtrl -// -// Default is 0. -// -// Recommended setting: 0, this is mainly used for testing -#define wxUSE_DATEPICKCTRL_GENERIC 0 - -// Set this to 1 to be able to use wxTimePickerCtrlGeneric in addition to the -// native wxTimePickerCtrl for the platforms that have the latter (MSW). -// -// Default is 0. -// -// Recommended setting: 0, this is mainly used for testing -#define wxUSE_TIMEPICKCTRL_GENERIC 0 - -// ---------------------------------------------------------------------------- -// Crash debugging helpers -// ---------------------------------------------------------------------------- - -// Set this to 1 to be able to use wxCrashReport::Generate() to create mini -// dumps of your program when it crashes (or at any other moment) -// -// Default is 1 if supported by the compiler (VC++ and recent BC++ only). -// -// Recommended setting: 1, set to 0 if your programs never crash -#define wxUSE_CRASHREPORT 1 diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/slider.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/slider.h deleted file mode 100644 index 7579e834..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/slider.h +++ /dev/null @@ -1,149 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/slider.h -// Purpose: wxSlider class implementation using trackbar control -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SLIDER_H_ -#define _WX_SLIDER_H_ - -class WXDLLIMPEXP_FWD_CORE wxSubwindows; - -// Slider -class WXDLLIMPEXP_CORE wxSlider : public wxSliderBase -{ -public: - wxSlider() { Init(); } - - wxSlider(wxWindow *parent, - wxWindowID id, - int value, - int minValue, - int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr) - { - Init(); - - (void)Create(parent, id, value, minValue, maxValue, - pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - int value, - int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr); - - virtual ~wxSlider(); - - // slider methods - virtual int GetValue() const; - virtual void SetValue(int); - - void SetRange(int minValue, int maxValue); - - int GetMin() const { return m_rangeMin; } - int GetMax() const { return m_rangeMax; } - - // Win32-specific slider methods - int GetTickFreq() const { return m_tickFreq; } - void SetPageSize(int pageSize); - int GetPageSize() const; - void ClearSel(); - void ClearTicks(); - void SetLineSize(int lineSize); - int GetLineSize() const; - int GetSelEnd() const; - int GetSelStart() const; - void SetSelection(int minPos, int maxPos); - void SetThumbLength(int len); - int GetThumbLength() const; - void SetTick(int tickPos); - - // implementation only from now on - WXHWND GetStaticMin() const; - WXHWND GetStaticMax() const; - WXHWND GetEditValue() const; - virtual bool ContainsHWND(WXHWND hWnd) const; - - // we should let background show through the slider (and its labels) - virtual bool HasTransparentBackground() { return true; } - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - - void Command(wxCommandEvent& event); - virtual bool MSWOnScroll(int orientation, WXWORD wParam, - WXWORD pos, WXHWND control); - - virtual bool Show(bool show = true); - virtual bool Enable(bool show = true); - virtual bool SetFont(const wxFont& font); - virtual bool SetForegroundColour(const wxColour& colour); - virtual bool SetBackgroundColour(const wxColour& colour); - - virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const; - -protected: - // common part of all ctors - void Init(); - - // format an integer value as string - static wxString Format(int n) { return wxString::Format(wxT("%d"), n); } - - // get the boundig box for the slider and possible labels - wxRect GetBoundingBox() const; - - // Get the height and, if the pointers are non NULL, widths of both labels. - // - // Notice that the return value will be 0 if we don't have wxSL_LABELS - // style but we do fill widthMin and widthMax even if we don't have - // wxSL_MIN_MAX_LABELS style set so the caller should account for it. - int GetLabelsSize(int *widthMin = NULL, int *widthMax = NULL) const; - - - // overridden base class virtuals - virtual void DoGetPosition(int *x, int *y) const; - virtual void DoGetSize(int *width, int *height) const; - virtual void DoMoveWindow(int x, int y, int width, int height); - virtual wxSize DoGetBestSize() const; - - WXHBRUSH DoMSWControlColor(WXHDC pDC, wxColour colBg, WXHWND hWnd) wxOVERRIDE; - - - // the labels windows, if any - wxSubwindows *m_labels; - - // Last background brush we returned from DoMSWControlColor(), see there. - WXHBRUSH m_hBrushBg; - - int m_rangeMin; - int m_rangeMax; - int m_pageSize; - int m_lineSize; - int m_tickFreq; - - // flag needed to detect whether we're getting THUMBRELEASE event because - // of dragging the thumb or scrolling the mouse wheel - bool m_isDragging; - - // Platform-specific implementation of SetTickFreq - virtual void DoSetTickFreq(int freq); - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxSlider); -}; - -#endif // _WX_SLIDER_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/sound.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/sound.h deleted file mode 100644 index 9e7cc496..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/sound.h +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/sound.h -// Purpose: wxSound class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SOUND_H_ -#define _WX_SOUND_H_ - -#if wxUSE_SOUND - -class WXDLLIMPEXP_ADV wxSound : public wxSoundBase -{ -public: - wxSound(); - wxSound(const wxString& fileName, bool isResource = false); - wxSound(size_t size, const void* data); - virtual ~wxSound(); - - // Create from resource or file - bool Create(const wxString& fileName, bool isResource = false); - - // Create from data - bool Create(size_t size, const void* data); - - bool IsOk() const { return m_data != NULL; } - - static void Stop(); - -protected: - void Init() { m_data = NULL; } - bool CheckCreatedOk(); - void Free(); - - virtual bool DoPlay(unsigned flags) const; - -private: - // data of this object - class wxSoundData *m_data; - - wxDECLARE_NO_COPY_CLASS(wxSound); -}; - -#endif // wxUSE_SOUND - -#endif // _WX_SOUND_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/spinbutt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/spinbutt.h deleted file mode 100644 index 051cadf4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/spinbutt.h +++ /dev/null @@ -1,74 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/spinbutt.h -// Purpose: wxSpinButton class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SPINBUTT_H_ -#define _WX_SPINBUTT_H_ - -#include "wx/control.h" -#include "wx/event.h" - -#if wxUSE_SPINBTN - -class WXDLLIMPEXP_CORE wxSpinButton : public wxSpinButtonBase -{ -public: - // construction - wxSpinButton() { } - - wxSpinButton(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL | wxSP_ARROW_KEYS, - const wxString& name = wxSPIN_BUTTON_NAME) - { - Create(parent, id, pos, size, style, name); - } - - virtual ~wxSpinButton(); - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL | wxSP_ARROW_KEYS, - const wxString& name = wxSPIN_BUTTON_NAME); - - - // accessors - virtual int GetValue() const; - virtual void SetValue(int val); - virtual void SetRange(int minVal, int maxVal); - - // implementation - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - virtual bool MSWOnScroll(int orientation, WXWORD wParam, - WXWORD pos, WXHWND control); - - // a wxSpinButton can't do anything useful with focus, only wxSpinCtrl can - virtual bool AcceptsFocus() const { return false; } - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - -protected: - virtual wxSize DoGetBestSize() const; - - // ensure that the control displays a value in the current range - virtual void NormalizeValue(); - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxSpinButton); -}; - -#endif // wxUSE_SPINBTN - -#endif // _WX_SPINBUTT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/spinctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/spinctrl.h deleted file mode 100644 index 28c16f54..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/spinctrl.h +++ /dev/null @@ -1,172 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/spinctrl.h -// Purpose: wxSpinCtrl class declaration for Win32 -// Author: Vadim Zeitlin -// Modified by: -// Created: 22.07.99 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_SPINCTRL_H_ -#define _WX_MSW_SPINCTRL_H_ - -#include "wx/spinbutt.h" // the base class - -#if wxUSE_SPINCTRL - -#include "wx/dynarray.h" - -class WXDLLIMPEXP_FWD_CORE wxSpinCtrl; -WX_DEFINE_EXPORTED_ARRAY_PTR(wxSpinCtrl *, wxArraySpins); - -// ---------------------------------------------------------------------------- -// Under Win32, wxSpinCtrl is a wxSpinButton with a buddy (as MSDN docs call -// it) text window whose contents is automatically updated when the spin -// control is clicked. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSpinCtrl : public wxSpinButton -{ -public: - wxSpinCtrl() { Init(); } - - wxSpinCtrl(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, - int min = 0, int max = 100, int initial = 0, - const wxString& name = wxT("wxSpinCtrl")) - { - Init(); - - Create(parent, id, value, pos, size, style, min, max, initial, name); - } - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, - int min = 0, int max = 100, int initial = 0, - const wxString& name = wxT("wxSpinCtrl")); - - // a wxTextCtrl-like method (but we can't have GetValue returning wxString - // because the base class already has one returning int!) - void SetValue(const wxString& text); - - // another wxTextCtrl-like method - void SetSelection(long from, long to); - - // wxSpinCtrlBase methods - virtual int GetBase() const; - virtual bool SetBase(int base); - - - // implementation only from now on - // ------------------------------- - - virtual ~wxSpinCtrl(); - - virtual void SetValue(int val); - virtual int GetValue() const; - virtual void SetRange(int minVal, int maxVal); - virtual bool SetFont(const wxFont &font); - virtual void SetFocus(); - - virtual bool Enable(bool enable = true); - virtual bool Show(bool show = true); - - virtual bool Reparent(wxWindowBase *newParent); - - // wxSpinButton doesn't accept focus, but we do - virtual bool AcceptsFocus() const { return wxWindow::AcceptsFocus(); } - - // we're like wxTextCtrl and not (default) wxButton - virtual wxVisualAttributes GetDefaultAttributes() const - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL) - { - return GetCompositeControlsDefaultAttributes(variant); - } - - // for internal use only - - // get the subclassed window proc of the buddy text - WXFARPROC GetBuddyWndProc() const { return m_wndProcBuddy; } - - // return the spinctrl object whose buddy is the given window or NULL - static wxSpinCtrl *GetSpinForTextCtrl(WXHWND hwndBuddy); - - // process a WM_COMMAND generated by the buddy text control - bool ProcessTextCommand(WXWORD cmd, WXWORD id); - - // recognize buddy window as part of this control at wx level - virtual bool ContainsHWND(WXHWND hWnd) const { return hWnd == m_hwndBuddy; } - - virtual void SetLayoutDirection(wxLayoutDirection dir) wxOVERRIDE; - -protected: - virtual void DoGetPosition(int *x, int *y) const; - virtual void DoMoveWindow(int x, int y, int width, int height); - virtual wxSize DoGetBestSize() const; - virtual wxSize DoGetSizeFromTextSize(int xlen, int ylen = -1) const; - virtual void DoGetSize(int *width, int *height) const; - virtual void DoGetClientSize(int *x, int *y) const; -#if wxUSE_TOOLTIPS - virtual void DoSetToolTip( wxToolTip *tip ); -#endif // wxUSE_TOOLTIPS - - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - virtual bool MSWOnScroll(int orientation, WXWORD wParam, - WXWORD pos, WXHWND control); - - // handle processing of special keys - void OnChar(wxKeyEvent& event); - void OnSetFocus(wxFocusEvent& event); - void OnKillFocus(wxFocusEvent& event); - - // generate spin control update event with the given value - void SendSpinUpdate(int value); - - // called to ensure that the value is in the correct range - virtual void NormalizeValue(); - - // the value of the control before the latest change (which might not have - // changed anything in fact -- this is why we need this field) - int m_oldValue; - - // the data for the "buddy" text ctrl - WXHWND m_hwndBuddy; - WXFARPROC m_wndProcBuddy; - - // Block text update event after SetValue() - bool m_blockEvent; - -private: - // Common part of all ctors. - void Init(); - - // Adjust the text control style depending on whether we need to enter only - // digits or may need to enter something else (e.g. "-" sign, "x" - // hexadecimal prefix, ...) in it. - void UpdateBuddyStyle(); - - - wxDECLARE_DYNAMIC_CLASS(wxSpinCtrl); - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxSpinCtrl); -}; - -#endif // wxUSE_SPINCTRL - -#endif // _WX_MSW_SPINCTRL_H_ - - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/stackwalk.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/stackwalk.h deleted file mode 100644 index e068ea2d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/stackwalk.h +++ /dev/null @@ -1,111 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/stackwalk.h -// Purpose: wxStackWalker for MSW -// Author: Vadim Zeitlin -// Modified by: -// Created: 2005-01-08 -// Copyright: (c) 2005 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_STACKWALK_H_ -#define _WX_MSW_STACKWALK_H_ - -#include "wx/arrstr.h" - -// these structs are declared in windows headers -struct _CONTEXT; -struct _EXCEPTION_POINTERS; - -// and these in dbghelp.h -struct _SYMBOL_INFO; -struct _SYMBOL_INFOW; - -#if wxUSE_UNICODE - #define wxSYMBOL_INFO _SYMBOL_INFOW -#else // !wxUSE_UNICODE - #define wxSYMBOL_INFO _SYMBOL_INFO -#endif // wxUSE_UNICODE/!wxUSE_UNICODE - -// ---------------------------------------------------------------------------- -// wxStackFrame -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxStackFrame : public wxStackFrameBase -{ -private: - wxStackFrame *ConstCast() const - { return const_cast<wxStackFrame *>(this); } - - size_t DoGetParamCount() const { return m_paramTypes.GetCount(); } - -public: - wxStackFrame(size_t level, void *address, size_t addrFrame) - : wxStackFrameBase(level, address) - { - m_hasName = - m_hasLocation = false; - - m_addrFrame = addrFrame; - } - - virtual size_t GetParamCount() const - { - ConstCast()->OnGetParam(); - return DoGetParamCount(); - } - - virtual bool - GetParam(size_t n, wxString *type, wxString *name, wxString *value) const; - - // callback used by OnGetParam(), don't call directly - void OnParam(wxSYMBOL_INFO *pSymInfo); - -protected: - virtual void OnGetName(); - virtual void OnGetLocation(); - - void OnGetParam(); - - - // helper for debug API: it wants to have addresses as DWORDs - size_t GetSymAddr() const - { - return reinterpret_cast<size_t>(m_address); - } - -private: - bool m_hasName, - m_hasLocation; - - size_t m_addrFrame; - - wxArrayString m_paramTypes, - m_paramNames, - m_paramValues; -}; - -// ---------------------------------------------------------------------------- -// wxStackWalker -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxStackWalker : public wxStackWalkerBase -{ -public: - // we don't use ctor argument, it is for compatibility with Unix version - // only - wxStackWalker(const char * WXUNUSED(argv0) = NULL) { } - - virtual void Walk(size_t skip = 1, size_t maxDepth = wxSTACKWALKER_MAX_DEPTH); -#if wxUSE_ON_FATAL_EXCEPTION - virtual void WalkFromException(size_t maxDepth = wxSTACKWALKER_MAX_DEPTH); -#endif // wxUSE_ON_FATAL_EXCEPTION - - - // enumerate stack frames from the given context - void WalkFrom(const _CONTEXT *ctx, size_t skip = 1, size_t maxDepth = wxSTACKWALKER_MAX_DEPTH); - void WalkFrom(const _EXCEPTION_POINTERS *ep, size_t skip = 1, size_t maxDepth = wxSTACKWALKER_MAX_DEPTH); -}; - -#endif // _WX_MSW_STACKWALK_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statbmp.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statbmp.h deleted file mode 100644 index 443440f1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statbmp.h +++ /dev/null @@ -1,103 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/statbmp.h -// Purpose: wxStaticBitmap class for wxMSW -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBMP_H_ -#define _WX_STATBMP_H_ - -#include "wx/control.h" -#include "wx/icon.h" -#include "wx/bitmap.h" - -extern WXDLLIMPEXP_DATA_CORE(const char) wxStaticBitmapNameStr[]; - -// a control showing an icon or a bitmap -class WXDLLIMPEXP_CORE wxStaticBitmap : public wxStaticBitmapBase -{ -public: - wxStaticBitmap() { Init(); } - - wxStaticBitmap(wxWindow *parent, - wxWindowID id, - const wxGDIImage& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr) - { - Init(); - - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxGDIImage& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr); - - virtual ~wxStaticBitmap() { Free(); } - - virtual void SetIcon(const wxIcon& icon) { SetImage(&icon); } - virtual void SetBitmap(const wxBitmap& bitmap) { SetImage(&bitmap); } - virtual wxBitmap GetBitmap() const; - virtual wxIcon GetIcon() const; - - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - -protected: - virtual wxSize DoGetBestClientSize() const; - - // ctor/dtor helpers - void Init(); - void Free(); - - // true if icon/bitmap is valid - bool ImageIsOk() const; - - void SetImage(const wxGDIImage* image); - void SetImageNoCopy( wxGDIImage* image ); - - // draw the bitmap ourselves here if the OS can't do it correctly (if it - // can we leave it to it) - void DoPaintManually(wxPaintEvent& event); - - void WXHandleSize(wxSizeEvent& event); - - // we can have either an icon or a bitmap - bool m_isIcon; - wxGDIImage *m_image; - - // handle used in last call to STM_SETIMAGE - WXHANDLE m_currentHandle; - -private: - // Flag indicating whether we own m_currentHandle, i.e. should delete it. - bool m_ownsCurrentHandle; - - // Replace the image at the native control level with the given HBITMAP or - // HICON (which can be 0) and destroy the previous image if necessary. - void MSWReplaceImageHandle(WXLPARAM handle); - - // Delete the current handle only if we own it. - void DeleteCurrentHandleIfNeeded(); - - - wxDECLARE_DYNAMIC_CLASS(wxStaticBitmap); - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxStaticBitmap); -}; - -#endif - // _WX_STATBMP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statbox.h deleted file mode 100644 index 6ce58086..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statbox.h +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/statbox.h -// Purpose: wxStaticBox class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_STATBOX_H_ -#define _WX_MSW_STATBOX_H_ - -// Group box -class WXDLLIMPEXP_CORE wxStaticBox : public wxStaticBoxBase -{ -public: - wxStaticBox() { } - - wxStaticBox(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr); - - /// Implementation only - virtual void GetBordersForSizer(int *borderTop, int *borderOther) const; - - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - -protected: - virtual wxSize DoGetBestSize() const; - -public: - virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - -protected: - // return the region with all the windows inside this static box excluded - virtual WXHRGN MSWGetRegionWithoutChildren(); - - // remove the parts which are painted by static box itself from the given - // region which is embedded in a rectangle (0, 0)-(w, h) - virtual void MSWGetRegionWithoutSelf(WXHRGN hrgn, int w, int h); - - // paint the given rectangle with our background brush/colour - virtual void PaintBackground(wxDC& dc, const struct tagRECT& rc); - // paint the foreground of the static box - virtual void PaintForeground(wxDC& dc, const struct tagRECT& rc); - - void OnPaint(wxPaintEvent& event); - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticBox); -}; - -#endif // _WX_MSW_STATBOX_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statline.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statline.h deleted file mode 100644 index ce456944..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statline.h +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/statline.h -// Purpose: MSW version of wxStaticLine class -// Author: Vadim Zeitlin -// Created: 28.06.99 -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_STATLINE_H_ -#define _WX_MSW_STATLINE_H_ - -// ---------------------------------------------------------------------------- -// wxStaticLine -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxStaticLine : public wxStaticLineBase -{ -public: - // constructors and pseudo-constructors - wxStaticLine() { } - - wxStaticLine( wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxLI_HORIZONTAL, - const wxString &name = wxStaticLineNameStr ) - { - Create(parent, id, pos, size, style, name); - } - - bool Create( wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxLI_HORIZONTAL, - const wxString &name = wxStaticLineNameStr ); - - // overridden base class virtuals - virtual bool AcceptsFocus() const { return false; } - - // usually overridden base class virtuals - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticLine); -}; - -#endif // _WX_MSW_STATLINE_H_ - - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/stattext.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/stattext.h deleted file mode 100644 index 5a478c35..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/stattext.h +++ /dev/null @@ -1,57 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/stattext.h -// Purpose: wxStaticText class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATTEXT_H_ -#define _WX_STATTEXT_H_ - -class WXDLLIMPEXP_CORE wxStaticText : public wxStaticTextBase -{ -public: - wxStaticText() { } - - wxStaticText(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr); - - // override some methods to resize the window properly - virtual void SetLabel(const wxString& label); - virtual bool SetFont( const wxFont &font ); - - virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const; - -protected: - // implement/override some base class virtuals - virtual void DoSetSize(int x, int y, int w, int h, - int sizeFlags = wxSIZE_AUTO); - virtual wxSize DoGetBestClientSize() const; - - virtual wxString DoGetLabel() const; - virtual void DoSetLabel(const wxString& str); - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticText); -}; - -#endif - // _WX_STATTEXT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statusbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statusbar.h deleted file mode 100644 index 4aa43499..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/statusbar.h +++ /dev/null @@ -1,111 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/statusbar.h -// Purpose: native implementation of wxStatusBar -// Author: Vadim Zeitlin -// Modified by: -// Created: 04.04.98 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_STATUSBAR_H_ -#define _WX_MSW_STATUSBAR_H_ - -#if wxUSE_NATIVE_STATUSBAR - -#include "wx/vector.h" -#include "wx/tooltip.h" - -class WXDLLIMPEXP_FWD_CORE wxClientDC; - -class WXDLLIMPEXP_CORE wxStatusBar : public wxStatusBarBase -{ -public: - // ctors and such - wxStatusBar(); - wxStatusBar(wxWindow *parent, - wxWindowID id = wxID_ANY, - long style = wxSTB_DEFAULT_STYLE, - const wxString& name = wxStatusBarNameStr) - { - m_pDC = NULL; - (void)Create(parent, id, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - long style = wxSTB_DEFAULT_STYLE, - const wxString& name = wxStatusBarNameStr); - - virtual ~wxStatusBar(); - - // implement base class methods - virtual void SetFieldsCount(int number = 1, const int *widths = NULL); - virtual void SetStatusWidths(int n, const int widths_field[]); - virtual void SetStatusStyles(int n, const int styles[]); - virtual void SetMinHeight(int height); - virtual bool GetFieldRect(int i, wxRect& rect) const; - - virtual int GetBorderX() const; - virtual int GetBorderY() const; - - // override some wxWindow virtual methods too - virtual bool SetFont(const wxFont& font); - - virtual WXLRESULT MSWWindowProc(WXUINT nMsg, - WXWPARAM wParam, - WXLPARAM lParam); - -protected: - // implement base class pure virtual method - virtual void DoUpdateStatusText(int number); - - // override some base class virtuals - virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const; - virtual wxSize DoGetBestSize() const; - virtual void DoMoveWindow(int x, int y, int width, int height); -#if wxUSE_TOOLTIPS - virtual bool MSWProcessMessage(WXMSG* pMsg); - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM* result); -#endif - - // implementation of the public SetStatusWidths() - void MSWUpdateFieldsWidths(); - - // used by DoUpdateStatusText() - wxClientDC *m_pDC; - -#if wxUSE_TOOLTIPS - // the tooltips used when wxSTB_SHOW_TIPS is given - wxVector<wxToolTip*> m_tooltips; -#endif - -private: - struct MSWBorders - { - int horz, - vert, - between; - }; - - // retrieve all status bar borders using SB_GETBORDERS - MSWBorders MSWGetBorders() const; - - // return the size of the border between the fields - int MSWGetBorderWidth() const; - - struct MSWMetrics - { - int gripWidth, - textMargin; - }; - - // return the various status bar metrics - static const MSWMetrics& MSWGetMetrics(); - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxStatusBar); -}; - -#endif // wxUSE_NATIVE_STATUSBAR - -#endif // _WX_MSW_STATUSBAR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/std.ico b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/std.ico deleted file mode 100644 index 435cca24..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/std.ico and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/stdpaths.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/stdpaths.h deleted file mode 100644 index 965c0792..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/stdpaths.h +++ /dev/null @@ -1,99 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/stdpaths.h -// Purpose: wxStandardPaths for Win32 -// Author: Vadim Zeitlin -// Modified by: -// Created: 2004-10-19 -// Copyright: (c) 2004 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_STDPATHS_H_ -#define _WX_MSW_STDPATHS_H_ - -struct _GUID; - -// ---------------------------------------------------------------------------- -// wxStandardPaths -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxStandardPaths : public wxStandardPathsBase -{ -public: - // implement base class pure virtuals - virtual wxString GetExecutablePath() const; - virtual wxString GetConfigDir() const; - virtual wxString GetUserConfigDir() const; - virtual wxString GetDataDir() const; - virtual wxString GetUserDataDir() const; - virtual wxString GetUserLocalDataDir() const; - virtual wxString GetPluginsDir() const; - virtual wxString GetUserDir(Dir userDir) const wxOVERRIDE; - - - // MSW-specific methods - - // This class supposes that data, plugins &c files are located under the - // program directory which is the directory containing the application - // binary itself. But sometimes this binary may be in a subdirectory of the - // main program directory, e.g. this happens in at least the following - // common cases: - // 1. The program is in "bin" subdirectory of the installation directory. - // 2. The program is in "debug" subdirectory of the directory containing - // sources and data files during development - // - // By calling this function you instruct the class to remove the last - // component of the path if it matches its argument. Notice that it may be - // called more than once, e.g. you can call both IgnoreAppSubDir("bin") and - // IgnoreAppSubDir("debug") to take care of both production and development - // cases above but that each call will only remove the last path component. - // Finally note that the argument can contain wild cards so you can also - // call IgnoreAppSubDir("vc*msw*") to ignore all build directories at once - // when using wxWidgets-inspired output directories names. - void IgnoreAppSubDir(const wxString& subdirPattern); - - // This function is used to ignore all common build directories and is - // called from the ctor -- use DontIgnoreAppSubDir() to undo this. - void IgnoreAppBuildSubDirs(); - - // Undo the effects of all preceding IgnoreAppSubDir() calls. - void DontIgnoreAppSubDir(); - - - // Returns the directory corresponding to the specified Windows shell CSIDL - static wxString MSWGetShellDir(int csidl); - -protected: - // Ctor is protected, use wxStandardPaths::Get() instead of instantiating - // objects of this class directly. - // - // It calls IgnoreAppBuildSubDirs() and also sets up the object to use - // both vendor and application name by default. - wxStandardPaths(); - - // get the path corresponding to the given standard CSIDL_XXX constant - static wxString DoGetDirectory(int csidl); - - static wxString DoGetKnownFolder(const _GUID& rfid); - - // return the directory of the application itself - wxString GetAppDir() const; - - // directory returned by GetAppDir() - mutable wxString m_appDir; -}; - -// ---------------------------------------------------------------------------- -// wxStandardPathsWin16: this class is for internal use only -// ---------------------------------------------------------------------------- - -// override config file locations to be compatible with the values used by -// wxFileConfig (dating from Win16 days which explains the class name) -class WXDLLIMPEXP_BASE wxStandardPathsWin16 : public wxStandardPaths -{ -public: - virtual wxString GetConfigDir() const; - virtual wxString GetUserConfigDir() const; -}; - -#endif // _WX_MSW_STDPATHS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/subwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/subwin.h deleted file mode 100644 index b38d2037..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/subwin.h +++ /dev/null @@ -1,253 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/subwin.h -// Purpose: helper for implementing the controls with subwindows -// Author: Vadim Zeitlin -// Modified by: -// Created: 2004-12-11 -// Copyright: (c) 2004 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_SUBWIN_H_ -#define _WX_MSW_SUBWIN_H_ - -#include "wx/msw/private.h" - -// ---------------------------------------------------------------------------- -// wxSubwindows contains all HWNDs making part of a single wx control -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSubwindows -{ -public: - // the number of subwindows can be specified either as parameter to ctor or - // later in Create() - wxSubwindows(size_t n = 0) { Init(); if ( n ) Create(n); } - - // allocate enough space for the given number of windows - void Create(size_t n) - { - wxASSERT_MSG( !m_hwnds, wxT("Create() called twice?") ); - - m_count = n; - m_hwnds = (HWND *)calloc(n, sizeof(HWND)); - m_ids = new wxWindowIDRef[n]; - } - - // non-virtual dtor, this class is not supposed to be used polymorphically - ~wxSubwindows() - { - for ( size_t n = 0; n < m_count; n++ ) - { - if ( m_hwnds[n] ) - ::DestroyWindow(m_hwnds[n]); - } - - free(m_hwnds); - delete [] m_ids; - } - - // get the number of subwindows - size_t GetCount() const { return m_count; } - - // access a given window - HWND& Get(size_t n) - { - wxASSERT_MSG( n < m_count, wxT("subwindow index out of range") ); - - return m_hwnds[n]; - } - - HWND operator[](size_t n) const - { - return const_cast<wxSubwindows *>(this)->Get(n); - } - - // initialize the given window: id will be stored in wxWindowIDRef ensuring - // that it is not reused while this object exists - void Set(size_t n, HWND hwnd, wxWindowID id) - { - wxASSERT_MSG( n < m_count, wxT("subwindow index out of range") ); - - m_hwnds[n] = hwnd; - m_ids[n] = id; - } - - // check if we have this window - bool HasWindow(HWND hwnd) - { - for ( size_t n = 0; n < m_count; n++ ) - { - if ( m_hwnds[n] == hwnd ) - return true; - } - - return false; - } - - - // methods which are forwarded to all subwindows - // --------------------------------------------- - - // show/hide everything - void Show(bool show) - { - int sw = show ? SW_SHOW : SW_HIDE; - for ( size_t n = 0; n < m_count; n++ ) - { - if ( m_hwnds[n] ) - ::ShowWindow(m_hwnds[n], sw); - } - } - - // enable/disable everything - void Enable(bool enable) - { - for ( size_t n = 0; n < m_count; n++ ) - { - if ( m_hwnds[n] ) - ::EnableWindow(m_hwnds[n], enable); - } - } - - // set font for all windows - void SetFont(const wxFont& font) - { - HFONT hfont = GetHfontOf(font); - wxCHECK_RET( hfont, wxT("invalid font") ); - - for ( size_t n = 0; n < m_count; n++ ) - { - if ( m_hwnds[n] ) - { - ::SendMessage(m_hwnds[n], WM_SETFONT, (WPARAM)hfont, 0); - - // otherwise the window might not be redrawn correctly - ::InvalidateRect(m_hwnds[n], NULL, FALSE /* don't erase bg */); - } - } - } - - // add all windows to update region to force redraw - void Refresh() - { - for ( size_t n = 0; n < m_count; n++ ) - { - if ( m_hwnds[n] ) - { - ::InvalidateRect(m_hwnds[n], NULL, FALSE /* don't erase bg */); - } - } - } - - // find the bounding box for all windows - wxRect GetBoundingBox() const - { - wxRect r; - for ( size_t n = 0; n < m_count; n++ ) - { - if ( m_hwnds[n] ) - { - RECT rc; - - ::GetWindowRect(m_hwnds[n], &rc); - - r.Union(wxRectFromRECT(rc)); - } - } - - return r; - } - -private: - void Init() - { - m_count = 0; - m_hwnds = NULL; - m_ids = NULL; - } - - // number of elements in m_hwnds array - size_t m_count; - - // the HWNDs we contain - HWND *m_hwnds; - - // the IDs of the windows - wxWindowIDRef *m_ids; - - - wxDECLARE_NO_COPY_CLASS(wxSubwindows); -}; - -// convenient macro to forward a few methods which are usually propagated to -// subwindows to a wxSubwindows object -// -// parameters should be: -// - cname the name of the class implementing these methods -// - base the name of its base class -// - subwins the name of the member variable of type wxSubwindows * -#define WX_FORWARD_STD_METHODS_TO_SUBWINDOWS(cname, base, subwins) \ - bool cname::ContainsHWND(WXHWND hWnd) const \ - { \ - return subwins && subwins->HasWindow((HWND)hWnd); \ - } \ - \ - bool cname::Show(bool show) \ - { \ - if ( !base::Show(show) ) \ - return false; \ - \ - if ( subwins ) \ - subwins->Show(show); \ - \ - return true; \ - } \ - \ - bool cname::Enable(bool enable) \ - { \ - if ( !base::Enable(enable) ) \ - return false; \ - \ - if ( subwins ) \ - subwins->Enable(enable); \ - \ - return true; \ - } \ - \ - bool cname::SetFont(const wxFont& font) \ - { \ - if ( !base::SetFont(font) ) \ - return false; \ - \ - if ( subwins ) \ - subwins->SetFont(font); \ - \ - return true; \ - } \ - \ - bool cname::SetForegroundColour(const wxColour& colour) \ - { \ - if ( !base::SetForegroundColour(colour) ) \ - return false; \ - \ - if ( subwins ) \ - subwins->Refresh(); \ - \ - return true; \ - } \ - \ - bool cname::SetBackgroundColour(const wxColour& colour) \ - { \ - if ( !base::SetBackgroundColour(colour) ) \ - return false; \ - \ - if ( subwins ) \ - subwins->Refresh(); \ - \ - return true; \ - } \ - - -#endif // _WX_MSW_SUBWIN_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/taskbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/taskbar.h deleted file mode 100644 index 3fe5c9b6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/taskbar.h +++ /dev/null @@ -1,71 +0,0 @@ -///////////////////////////////////////////////////////////////////////// -// File: wx/msw/taskbar.h -// Purpose: Defines wxTaskBarIcon class for manipulating icons on the -// Windows task bar. -// Author: Julian Smart -// Modified by: Vaclav Slavik -// Created: 24/3/98 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TASKBAR_H_ -#define _WX_TASKBAR_H_ - -#include "wx/icon.h" - -// private helper class: -class WXDLLIMPEXP_FWD_ADV wxTaskBarIconWindow; - -class WXDLLIMPEXP_ADV wxTaskBarIcon : public wxTaskBarIconBase -{ -public: - wxTaskBarIcon(wxTaskBarIconType iconType = wxTBI_DEFAULT_TYPE); - virtual ~wxTaskBarIcon(); - - // Accessors - bool IsOk() const { return true; } - bool IsIconInstalled() const { return m_iconAdded; } - - // Operations - bool SetIcon(const wxIcon& icon, const wxString& tooltip = wxEmptyString); - bool RemoveIcon(void); - bool PopupMenu(wxMenu *menu); - - // MSW-specific class methods - -#if wxUSE_TASKBARICON_BALLOONS - // show a balloon notification (the icon must have been already initialized - // using SetIcon) - // - // title and text are limited to 63 and 255 characters respectively, msec - // is the timeout, in milliseconds, before the balloon disappears (will be - // clamped down to the allowed 10-30s range by Windows if it's outside it) - // and flags can include wxICON_ERROR/INFO/WARNING to show a corresponding - // icon - // - // return true if balloon was shown, false on error (incorrect parameters - // or function unsupported by OS) - bool ShowBalloon(const wxString& title, - const wxString& text, - unsigned msec = 0, - int flags = 0, - const wxIcon& icon = wxNullIcon); -#endif // wxUSE_TASKBARICON_BALLOONS - -protected: - friend class wxTaskBarIconWindow; - - long WindowProc(unsigned int msg, unsigned int wParam, long lParam); - void RegisterWindowMessages(); - - - wxTaskBarIconWindow *m_win; - bool m_iconAdded; - wxIcon m_icon; - wxString m_strTooltip; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxTaskBarIcon); -}; - -#endif // _WX_TASKBAR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/taskbarbutton.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/taskbarbutton.h deleted file mode 100644 index ed24df01..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/taskbarbutton.h +++ /dev/null @@ -1,75 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: include/wx/msw/taskbarbutton.h -// Purpose: Defines wxTaskBarButtonImpl class. -// Author: Chaobin Zhang <zhchbin@gmail.com> -// Created: 2014-06-01 -// Copyright: (c) 2014 wxWidgets development team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_TASKBARBUTTON_H_ -#define _WX_MSW_TASKBARBUTTON_H_ - -#include "wx/defs.h" - -#if wxUSE_TASKBARBUTTON - -#include "wx/vector.h" -#include "wx/taskbarbutton.h" - -class WXDLLIMPEXP_FWD_CORE wxITaskbarList3; - -class WXDLLIMPEXP_CORE wxTaskBarButtonImpl : public wxTaskBarButton -{ -public: - virtual ~wxTaskBarButtonImpl(); - - virtual void SetProgressRange(int range) wxOVERRIDE; - virtual void SetProgressValue(int value) wxOVERRIDE; - virtual void PulseProgress() wxOVERRIDE; - virtual void Show(bool show = true) wxOVERRIDE; - virtual void Hide() wxOVERRIDE; - virtual void SetThumbnailTooltip(const wxString& tooltip) wxOVERRIDE; - virtual void SetProgressState(wxTaskBarButtonState state) wxOVERRIDE; - virtual void SetOverlayIcon(const wxIcon& icon, - const wxString& description = wxString()) wxOVERRIDE; - virtual void SetThumbnailClip(const wxRect& rect) wxOVERRIDE; - virtual void SetThumbnailContents(const wxWindow *child) wxOVERRIDE; - virtual bool InsertThumbBarButton(size_t pos, - wxThumbBarButton *button) wxOVERRIDE; - virtual bool AppendThumbBarButton(wxThumbBarButton *button) wxOVERRIDE; - virtual bool AppendSeparatorInThumbBar() wxOVERRIDE; - virtual wxThumbBarButton* RemoveThumbBarButton( - wxThumbBarButton *button) wxOVERRIDE; - virtual wxThumbBarButton* RemoveThumbBarButton(int id) wxOVERRIDE; - wxThumbBarButton* GetThumbBarButtonByIndex(size_t index); - bool InitOrUpdateThumbBarButtons(); - virtual void Realize() wxOVERRIDE; - -private: - // This ctor is only used by wxTaskBarButton::New() - wxTaskBarButtonImpl(wxITaskbarList3* taskbarList, wxWindow* parent); - - wxWindow* m_parent; - wxITaskbarList3 *m_taskbarList; - - typedef wxVector<wxThumbBarButton*> wxThumbBarButtons; - wxThumbBarButtons m_thumbBarButtons; - - int m_progressRange; - int m_progressValue; - wxTaskBarButtonState m_progressState; - wxString m_thumbnailTooltip; - wxIcon m_overlayIcon; - wxString m_overlayIconDescription; - wxRect m_thumbnailClipRect; - bool m_hasInitThumbnailToolbar; - - friend wxTaskBarButton* wxTaskBarButton::New(wxWindow*); - - wxDECLARE_NO_COPY_CLASS(wxTaskBarButtonImpl); -}; - -#endif // wxUSE_TASKBARBUTTON - -#endif // _WX_MSW_TASKBARBUTTON_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/textctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/textctrl.h deleted file mode 100644 index a2027003..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/textctrl.h +++ /dev/null @@ -1,300 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/textctrl.h -// Purpose: wxTextCtrl class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTCTRL_H_ -#define _WX_TEXTCTRL_H_ - -class WXDLLIMPEXP_CORE wxTextCtrl : public wxTextCtrlBase -{ -public: - // creation - // -------- - - wxTextCtrl() { Init(); } - wxTextCtrl(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTextCtrlNameStr) - { - Init(); - - Create(parent, id, value, pos, size, style, validator, name); - } - virtual ~wxTextCtrl(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTextCtrlNameStr); - - // overridden wxTextEntry methods - // ------------------------------ - - virtual wxString GetValue() const; - virtual wxString GetRange(long from, long to) const; - - virtual bool IsEmpty() const; - - virtual void WriteText(const wxString& text); - virtual void AppendText(const wxString& text); - virtual void Clear(); - - virtual int GetLineLength(long lineNo) const; - virtual wxString GetLineText(long lineNo) const; - virtual int GetNumberOfLines() const; - - virtual void SetMaxLength(unsigned long len); - - virtual void GetSelection(long *from, long *to) const; - - virtual void Redo(); - virtual bool CanRedo() const; - - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const; - virtual wxTextPos GetLastPosition() const; - - // implement base class pure virtuals - // ---------------------------------- - - virtual bool IsModified() const; - virtual void MarkDirty(); - virtual void DiscardEdits(); - - virtual bool EmulateKeyPress(const wxKeyEvent& event); - -#if wxUSE_RICHEDIT - // apply text attribute to the range of text (only works with richedit - // controls) - virtual bool SetStyle(long start, long end, const wxTextAttr& style); - virtual bool SetDefaultStyle(const wxTextAttr& style); - virtual bool GetStyle(long position, wxTextAttr& style); -#endif // wxUSE_RICHEDIT - - // translate between the position (which is just an index in the text ctrl - // considering all its contents as a single strings) and (x, y) coordinates - // which represent column and line. - virtual long XYToPosition(long x, long y) const; - virtual bool PositionToXY(long pos, long *x, long *y) const; - - virtual void ShowPosition(long pos); - virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, long *pos) const; - virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, - wxTextCoord *col, - wxTextCoord *row) const - { - return wxTextCtrlBase::HitTest(pt, col, row); - } - - virtual void SetLayoutDirection(wxLayoutDirection dir) wxOVERRIDE; - virtual wxLayoutDirection GetLayoutDirection() const wxOVERRIDE; - - // Caret handling (Windows only) - bool ShowNativeCaret(bool show = true); - bool HideNativeCaret() { return ShowNativeCaret(false); } - - // Implementation from now on - // -------------------------- - -#if wxUSE_DRAG_AND_DROP && wxUSE_RICHEDIT - virtual void SetDropTarget(wxDropTarget *dropTarget); -#endif // wxUSE_DRAG_AND_DROP && wxUSE_RICHEDIT - - virtual void SetWindowStyleFlag(long style); - - virtual void Command(wxCommandEvent& event); - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual WXHBRUSH MSWControlColor(WXHDC hDC, WXHWND hWnd); - -#if wxUSE_RICHEDIT - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - - int GetRichVersion() const { return m_verRichEdit; } - bool IsRich() const { return m_verRichEdit != 0; } - - // rich edit controls are not compatible with normal ones and we must set - // the colours and font for them otherwise - virtual bool SetBackgroundColour(const wxColour& colour); - virtual bool SetForegroundColour(const wxColour& colour); - virtual bool SetFont(const wxFont& font); -#else - bool IsRich() const { return false; } -#endif // wxUSE_RICHEDIT - -#if wxUSE_INKEDIT && wxUSE_RICHEDIT - bool IsInkEdit() const { return m_isInkEdit != 0; } -#else - bool IsInkEdit() const { return false; } -#endif - - virtual void AdoptAttributesFromHWND(); - - virtual bool AcceptsFocusFromKeyboard() const; - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const; - - // callbacks - void OnDropFiles(wxDropFilesEvent& event); - void OnChar(wxKeyEvent& event); // Process 'enter' if required - - void OnCut(wxCommandEvent& event); - void OnCopy(wxCommandEvent& event); - void OnPaste(wxCommandEvent& event); - void OnUndo(wxCommandEvent& event); - void OnRedo(wxCommandEvent& event); - void OnDelete(wxCommandEvent& event); - void OnSelectAll(wxCommandEvent& event); - - void OnUpdateCut(wxUpdateUIEvent& event); - void OnUpdateCopy(wxUpdateUIEvent& event); - void OnUpdatePaste(wxUpdateUIEvent& event); - void OnUpdateUndo(wxUpdateUIEvent& event); - void OnUpdateRedo(wxUpdateUIEvent& event); - void OnUpdateDelete(wxUpdateUIEvent& event); - void OnUpdateSelectAll(wxUpdateUIEvent& event); - - // Show a context menu for Rich Edit controls (the standard - // EDIT control has one already) - void OnContextMenu(wxContextMenuEvent& event); - - // Create context menu for RICHEDIT controls. This may be called once during - // the control's lifetime or every time the menu is shown, depending on - // implementation. - virtual wxMenu *MSWCreateContextMenu(); - - // be sure the caret remains invisible if the user - // called HideNativeCaret() before - void OnSetFocus(wxFocusEvent& event); - - // intercept WM_GETDLGCODE - virtual bool MSWHandleMessage(WXLRESULT *result, - WXUINT message, - WXWPARAM wParam, - WXLPARAM lParam); - - virtual bool MSWShouldPreProcessMessage(WXMSG* pMsg); - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - -protected: - // common part of all ctors - void Init(); - - // creates the control of appropriate class (plain or rich edit) with the - // styles corresponding to m_windowStyle - // - // this is used by ctor/Create() and when we need to recreate the control - // later - bool MSWCreateText(const wxString& value, - const wxPoint& pos, - const wxSize& size); - - virtual void DoSetValue(const wxString &value, int flags = 0); - - virtual wxPoint DoPositionToCoords(long pos) const; - - // return true if this control has a user-set limit on amount of text (i.e. - // the limit is due to a previous call to SetMaxLength() and not built in) - bool HasSpaceLimit(unsigned int *len) const; - -#if wxUSE_RICHEDIT && !wxUSE_UNICODE - // replace the selection or the entire control contents with the given text - // in the specified encoding - bool StreamIn(const wxString& value, wxFontEncoding encoding, bool selOnly); - - // get the contents of the control out as text in the given encoding - wxString StreamOut(wxFontEncoding encoding, bool selOnly = false) const; -#endif // wxUSE_RICHEDIT - - // replace the contents of the selection or of the entire control with the - // given text - void DoWriteText(const wxString& text, - int flags = SetValue_SendEvent | SetValue_SelectionOnly); - - // set the selection (possibly without scrolling the caret into view) - void DoSetSelection(long from, long to, int flags); - - // get the length of the line containing the character at the given - // position - long GetLengthOfLineContainingPos(long pos) const; - - // send TEXT_UPDATED event, return true if it was handled, false otherwise - bool SendUpdateEvent(); - - virtual wxSize DoGetBestSize() const; - virtual wxSize DoGetSizeFromTextSize(int xlen, int ylen = -1) const; - -#if wxUSE_RICHEDIT - // Apply the character-related parts of wxTextAttr to the given selection - // or the entire control if start == end == -1. - // - // This function is private and should only be called for rich edit - // controls and with (from, to) already in correct order, i.e. from <= to. - bool MSWSetCharFormat(const wxTextAttr& attr, long from = -1, long to = -1); - - // Same as above for paragraph-related parts of wxTextAttr. Note that this - // can only be applied to the selection as RichEdit doesn't support setting - // the paragraph styles globally. - bool MSWSetParaFormat(const wxTextAttr& attr, long from, long to); - - // Send wxEVT_CONTEXT_MENU event from here if the control doesn't do it on - // its own. - void OnRightUp(wxMouseEvent& event); - - // we're using RICHEDIT (and not simple EDIT) control if this field is not - // 0, it also gives the version of the RICHEDIT control being used - // (although not directly: 1 is for 1.0, 2 is for either 2.0 or 3.0 as we - // can't nor really need to distinguish between them and 4 is for 4.1) - int m_verRichEdit; -#endif // wxUSE_RICHEDIT - - // number of EN_UPDATE events sent by Windows when we change the controls - // text ourselves: we want this to be exactly 1 - int m_updatesCount; - -private: - virtual void EnableTextChangedEvents(bool enable) - { - m_updatesCount = enable ? -1 : -2; - } - - // implement wxTextEntry pure virtual: it implements all the operations for - // the simple EDIT controls - virtual WXHWND GetEditHWND() const { return m_hWnd; } - - void OnKeyDown(wxKeyEvent& event); - - // Used by EN_MAXTEXT handler to increase the size limit (will do nothing - // if the current limit is big enough). Should never be called directly. - // - // Returns true if we increased the limit to allow entering more text, - // false if we hit the limit set by SetMaxLength() and so didn't change it. - bool AdjustSpaceLimit(); - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxTextCtrl); - - wxMenu* m_privateContextMenu; - - bool m_isNativeCaretShown; - -#if wxUSE_INKEDIT && wxUSE_RICHEDIT - int m_isInkEdit; -#endif - -}; - -#endif // _WX_TEXTCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/textentry.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/textentry.h deleted file mode 100644 index 2590b831..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/textentry.h +++ /dev/null @@ -1,106 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/textentry.h -// Purpose: wxMSW-specific wxTextEntry implementation -// Author: Vadim Zeitlin -// Created: 2007-09-26 -// Copyright: (c) 2007 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_TEXTENTRY_H_ -#define _WX_MSW_TEXTENTRY_H_ - -class wxTextAutoCompleteData; // private class used only by wxTextEntry itself - -// ---------------------------------------------------------------------------- -// wxTextEntry: common part of wxComboBox and (single line) wxTextCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTextEntry : public wxTextEntryBase -{ -public: - wxTextEntry(); - virtual ~wxTextEntry(); - - // implement wxTextEntryBase pure virtual methods - virtual void WriteText(const wxString& text); - virtual void Remove(long from, long to); - - virtual void Copy(); - virtual void Cut(); - virtual void Paste(); - - virtual void Undo(); - virtual void Redo(); - virtual bool CanUndo() const; - virtual bool CanRedo() const; - - virtual void SetInsertionPoint(long pos); - virtual long GetInsertionPoint() const; - virtual long GetLastPosition() const; - - virtual void SetSelection(long from, long to) - { DoSetSelection(from, to); } - virtual void GetSelection(long *from, long *to) const; - - virtual bool IsEditable() const; - virtual void SetEditable(bool editable); - - virtual void SetMaxLength(unsigned long len); - virtual void ForceUpper(); - -#if wxUSE_UXTHEME - virtual bool SetHint(const wxString& hint); - virtual wxString GetHint() const; -#endif // wxUSE_UXTHEME - -protected: - virtual wxString DoGetValue() const; - - // this is really a hook for multiline text controls as the single line - // ones don't need to ever scroll to show the selection but having it here - // allows us to put Remove() in the base class - enum - { - SetSel_NoScroll = 0, // don't do anything special - SetSel_Scroll = 1 // default: scroll to make the selection visible - }; - virtual void DoSetSelection(long from, long to, int flags = SetSel_Scroll); - - // margins functions - virtual bool DoSetMargins(const wxPoint& pt); - virtual wxPoint DoGetMargins() const; - - // auto-completion uses COM under Windows so they won't work without - // wxUSE_OLE as OleInitialize() is not called then -#if wxUSE_OLE - virtual bool DoAutoCompleteStrings(const wxArrayString& choices); -#if wxUSE_DYNLIB_CLASS - virtual bool DoAutoCompleteFileNames(int flags); -#endif // wxUSE_DYNLIB_CLASS - virtual bool DoAutoCompleteCustom(wxTextCompleter *completer); -#endif // wxUSE_OLE - -private: - // implement this to return the HWND of the EDIT control - virtual WXHWND GetEditHWND() const = 0; - -#if wxUSE_OLE - // Get the auto-complete object creating it if necessary. Returns NULL if - // creating it failed. - wxTextAutoCompleteData *GetOrCreateCompleter(); - - // Various auto-completion-related stuff, only used if any of AutoComplete() - // methods are called. Use the function above to access it. - wxTextAutoCompleteData *m_autoCompleteData; - - // It needs to call our GetEditableWindow() and GetEditHWND() methods. - friend class wxTextAutoCompleteData; -#endif // wxUSE_OLE -}; - -// We don't need the generic version. -#define wxHAS_NATIVE_TEXT_FORCEUPPER - -#endif // _WX_MSW_TEXTENTRY_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/tglbtn.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/tglbtn.h deleted file mode 100644 index 0dec96fa..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/tglbtn.h +++ /dev/null @@ -1,110 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/tglbtn.h -// Purpose: Declaration of the wxToggleButton class, which implements a -// toggle button under wxMSW. -// Author: John Norris, minor changes by Axel Schlueter -// Modified by: -// Created: 08.02.01 -// Copyright: (c) 2000 Johnny C. Norris II -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TOGGLEBUTTON_H_ -#define _WX_TOGGLEBUTTON_H_ - -#include "wx/bitmap.h" - -// Checkbox item (single checkbox) -class WXDLLIMPEXP_CORE wxToggleButton : public wxToggleButtonBase -{ -public: - wxToggleButton() { Init(); } - wxToggleButton(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - - virtual void SetValue(bool value); - virtual bool GetValue() const ; - - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual void Command(wxCommandEvent& event); - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - -protected: - virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; } - - virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const; - - virtual bool MSWIsPushed() const; - - void Init(); - - // current state of the button (when owner-drawn) - bool m_state; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxToggleButton); -}; - -//----------------------------------------------------------------------------- -// wxBitmapToggleButton -//----------------------------------------------------------------------------- - - -class WXDLLIMPEXP_CORE wxBitmapToggleButton: public wxToggleButton -{ -public: - // construction/destruction - wxBitmapToggleButton() {} - wxBitmapToggleButton(wxWindow *parent, - wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - // Create the control - bool Create(wxWindow *parent, - wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - - // deprecated synonym for SetBitmapLabel() - wxDEPRECATED_INLINE( void SetLabel(const wxBitmap& bitmap), - SetBitmapLabel(bitmap); ) - // prevent virtual function hiding - virtual void SetLabel(const wxString& label) { wxToggleButton::SetLabel(label); } - -private: - wxDECLARE_DYNAMIC_CLASS(wxBitmapToggleButton); -}; - -#endif // _WX_TOGGLEBUTTON_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/timectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/timectrl.h deleted file mode 100644 index c5bc83ae..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/timectrl.h +++ /dev/null @@ -1,62 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/timectrl.h -// Purpose: wxTimePickerCtrl for Windows. -// Author: Vadim Zeitlin -// Created: 2011-09-22 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_TIMECTRL_H_ -#define _WX_MSW_TIMECTRL_H_ - -// ---------------------------------------------------------------------------- -// wxTimePickerCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxTimePickerCtrl : public wxTimePickerCtrlBase -{ -public: - // ctors - wxTimePickerCtrl() { } - - wxTimePickerCtrl(wxWindow *parent, - wxWindowID id, - const wxDateTime& dt = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTP_DEFAULT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTimePickerCtrlNameStr) - { - Create(parent, id, dt, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxDateTime& dt = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTP_DEFAULT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTimePickerCtrlNameStr) - { - return MSWCreateDateTimePicker(parent, id, dt, - pos, size, style, - validator, name); - } - - // Override MSW-specific functions used during control creation. - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - -protected: -#if wxUSE_INTL - virtual wxLocaleInfo MSWGetFormat() const; -#endif // wxUSE_INTL - virtual bool MSWAllowsNone() const { return false; } - virtual bool MSWOnDateTimeChange(const tagNMDATETIMECHANGE& dtch); - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxTimePickerCtrl); -}; - -#endif // _WX_MSW_TIMECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/tls.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/tls.h deleted file mode 100644 index e14fd541..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/tls.h +++ /dev/null @@ -1,123 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/tls.h -// Purpose: Win32 implementation of wxTlsValue<> -// Author: Vadim Zeitlin -// Created: 2008-08-08 -// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_TLS_H_ -#define _WX_MSW_TLS_H_ - -#include "wx/msw/wrapwin.h" -#include "wx/thread.h" -#include "wx/vector.h" - -// ---------------------------------------------------------------------------- -// wxTlsKey is a helper class encapsulating a TLS slot -// ---------------------------------------------------------------------------- - -class wxTlsKey -{ -public: - // ctor allocates a new key - wxTlsKey(wxTlsDestructorFunction destructor) - { - m_destructor = destructor; - m_slot = ::TlsAlloc(); - } - - // return true if the key was successfully allocated - bool IsOk() const { return m_slot != TLS_OUT_OF_INDEXES; } - - // get the key value, there is no error return - void *Get() const - { - // Exceptionally, TlsGetValue() calls SetLastError() even on success - // which means it overwrites the previous value. This is undesirable - // here, so explicitly preserve the last error here. - const DWORD dwLastError = ::GetLastError(); - void* const value = ::TlsGetValue(m_slot); - if ( dwLastError ) - ::SetLastError(dwLastError); - return value; - } - - // change the key value, return true if ok - bool Set(void *value) - { - void *old = Get(); - - if ( ::TlsSetValue(m_slot, value) == 0 ) - return false; - - if ( old ) - m_destructor(old); - - // update m_allValues list of all values - remove old, add new - wxCriticalSectionLocker lock(m_csAllValues); - if ( old ) - { - for ( wxVector<void*>::iterator i = m_allValues.begin(); - i != m_allValues.end(); - ++i ) - { - if ( *i == old ) - { - if ( value ) - *i = value; - else - m_allValues.erase(i); - return true; - } - } - wxFAIL_MSG( "previous wxTlsKey value not recorded in m_allValues" ); - } - - if ( value ) - m_allValues.push_back(value); - - return true; - } - - // free the key - ~wxTlsKey() - { - if ( !IsOk() ) - return; - - // Win32 API doesn't have the equivalent of pthread's destructor, so we - // have to keep track of all allocated values and destroy them manually; - // ideally we'd do that at thread exit time, but since we could only - // do that with wxThread and not otherwise created threads, we do it - // here. - // - // TODO: We should still call destructors for wxTlsKey used in the - // thread from wxThread's thread shutdown code, *in addition* - // to doing it in ~wxTlsKey. - // - // NB: No need to lock m_csAllValues, by the time this code is called, - // no other thread can be using this key. - for ( wxVector<void*>::iterator i = m_allValues.begin(); - i != m_allValues.end(); - ++i ) - { - m_destructor(*i); - } - - ::TlsFree(m_slot); - } - -private: - wxTlsDestructorFunction m_destructor; - DWORD m_slot; - - wxVector<void*> m_allValues; - wxCriticalSection m_csAllValues; - - wxDECLARE_NO_COPY_CLASS(wxTlsKey); -}; - -#endif // _WX_MSW_TLS_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/toolbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/toolbar.h deleted file mode 100644 index 772e99aa..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/toolbar.h +++ /dev/null @@ -1,185 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/toolbar.h -// Purpose: wxToolBar (Windows 95 toolbar) class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_TBAR95_H_ -#define _WX_MSW_TBAR95_H_ - -#if wxUSE_TOOLBAR - -#include "wx/dynarray.h" -#include "wx/imaglist.h" - -class WXDLLIMPEXP_CORE wxToolBar : public wxToolBarBase -{ -public: - // ctors and dtor - wxToolBar() { Init(); } - - wxToolBar(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTB_DEFAULT_STYLE, - const wxString& name = wxToolBarNameStr) - { - Init(); - - Create(parent, id, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTB_DEFAULT_STYLE, - const wxString& name = wxToolBarNameStr); - - virtual ~wxToolBar(); - - // override/implement base class virtuals - virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const; - - virtual bool Realize(); - - virtual void SetToolBitmapSize(const wxSize& size); - virtual wxSize GetToolSize() const; - - virtual void SetRows(int nRows); - - virtual void SetToolNormalBitmap(int id, const wxBitmap& bitmap); - virtual void SetToolDisabledBitmap(int id, const wxBitmap& bitmap); - - virtual void SetToolPacking(int packing); - - // implementation only from now on - // ------------------------------- - - virtual void SetWindowStyleFlag(long style); - - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - - void OnMouseEvent(wxMouseEvent& event); - void OnSysColourChanged(wxSysColourChangedEvent& event); - void OnEraseBackground(wxEraseEvent& event); - - void SetFocus() {} - - static WXHBITMAP MapBitmap(WXHBITMAP bitmap, int width, int height); - - // override WndProc mainly to process WM_SIZE - virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - - virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - -#ifdef wxHAS_MSW_BACKGROUND_ERASE_HOOK - virtual bool MSWEraseBgHook(WXHDC hDC); - virtual WXHBRUSH MSWGetBgBrushForChild(WXHDC hDC, wxWindowMSW *child); -#endif // wxHAS_MSW_BACKGROUND_ERASE_HOOK - - virtual wxToolBarToolBase *CreateTool(int id, - const wxString& label, - const wxBitmap& bmpNormal, - const wxBitmap& bmpDisabled = wxNullBitmap, - wxItemKind kind = wxITEM_NORMAL, - wxObject *clientData = NULL, - const wxString& shortHelp = wxEmptyString, - const wxString& longHelp = wxEmptyString); - - virtual wxToolBarToolBase *CreateTool(wxControl *control, - const wxString& label); -protected: - // common part of all ctors - void Init(); - - // create the native toolbar control - bool MSWCreateToolbar(const wxPoint& pos, const wxSize& size); - - // recreate the control completely - void Recreate(); - - // implement base class pure virtuals - virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool); - virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool); - - virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable); - virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle); - virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle); - - // return the appropriate size and flags for the toolbar control - virtual wxSize DoGetBestSize() const; - - // handlers for various events - bool HandleSize(WXWPARAM wParam, WXLPARAM lParam); -#ifdef wxHAS_MSW_BACKGROUND_ERASE_HOOK - bool HandlePaint(WXWPARAM wParam, WXLPARAM lParam); -#endif // wxHAS_MSW_BACKGROUND_ERASE_HOOK - void HandleMouseMove(WXWPARAM wParam, WXLPARAM lParam); - - // should be called whenever the toolbar size changes - void UpdateSize(); - - // create m_disabledImgList (but doesn't fill it), set it to NULL if it is - // unneeded - void CreateDisabledImageList(); - - // get the Windows toolbar style of this control - long GetMSWToolbarStyle() const; - - // set native toolbar padding - void MSWSetPadding(WXWORD padding); - - // the big bitmap containing all bitmaps of the toolbar buttons - WXHBITMAP m_hBitmap; - - // the image list with disabled images, may be NULL if we use - // system-provided versions of them - wxImageList *m_disabledImgList; - - // the total number of toolbar elements - size_t m_nButtons; - - // the sum of the sizes of the fixed items (i.e. excluding stretchable - // spaces) in the toolbar direction - int m_totalFixedSize; - - // the tool the cursor is in - wxToolBarToolBase *m_pInTool; - -private: - // makes sure tool bitmap size is sufficient for all tools - void AdjustToolBitmapSize(); - - // update the sizes of stretchable spacers to consume all extra space we - // have - void UpdateStretchableSpacersSize(); - -#ifdef wxHAS_MSW_BACKGROUND_ERASE_HOOK - // do erase the toolbar background, always do it for the entire control as - // the caller sets the clipping region correctly to exclude parts which - // should not be erased - void MSWDoEraseBackground(WXHDC hDC); - - // return the brush to use for erasing the toolbar background - WXHBRUSH MSWGetToolbarBgBrush(); -#endif // wxHAS_MSW_BACKGROUND_ERASE_HOOK - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxToolBar); - wxDECLARE_NO_COPY_CLASS(wxToolBar); -}; - -#endif // wxUSE_TOOLBAR - -#endif // _WX_MSW_TBAR95_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/tooltip.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/tooltip.h deleted file mode 100644 index 4c3be08c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/tooltip.h +++ /dev/null @@ -1,121 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/tooltip.h -// Purpose: wxToolTip class - tooltip control -// Author: Vadim Zeitlin -// Modified by: -// Created: 31.01.99 -// Copyright: (c) 1999 Robert Roebling, Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_TOOLTIP_H_ -#define _WX_MSW_TOOLTIP_H_ - -#include "wx/object.h" -#include "wx/gdicmn.h" - -class WXDLLIMPEXP_FWD_CORE wxWindow; -class wxToolTipOtherWindows; - -class WXDLLIMPEXP_CORE wxToolTip : public wxObject -{ -public: - // ctor & dtor - wxToolTip(const wxString &tip); - virtual ~wxToolTip(); - - // ctor used by wxStatusBar to associate a tooltip to a portion of - // the status bar window: - wxToolTip(wxWindow* win, unsigned int id, - const wxString &tip, const wxRect& rc); - - // accessors - // tip text - void SetTip(const wxString& tip); - const wxString& GetTip() const { return m_text; } - - // the window we're associated with - void SetWindow(wxWindow *win); - wxWindow *GetWindow() const { return m_window; } - - // controlling tooltip behaviour: globally change tooltip parameters - // enable or disable the tooltips globally - static void Enable(bool flag); - // set the delay after which the tooltip appears - static void SetDelay(long milliseconds); - // set the delay after which the tooltip disappears or how long the - // tooltip remains visible - static void SetAutoPop(long milliseconds); - // set the delay between subsequent tooltips to appear - static void SetReshow(long milliseconds); - // set maximum width for the new tooltips: -1 disables wrapping - // entirely, 0 restores the default behaviour - static void SetMaxWidth(int width); - - // implementation only from now on - // ------------------------------- - - // should be called in response to WM_MOUSEMOVE - static void RelayEvent(WXMSG *msg); - - // add a window to the tooltip control - void AddOtherWindow(WXHWND hwnd); - - // remove any tooltip from the window - static void Remove(WXHWND hwnd, unsigned int id, const wxRect& rc); - - // Set the rectangle we're associated with. This rectangle is only used for - // the main window, not any sub-windows added with Add() so in general it - // makes sense to use it for tooltips associated with a single window only. - void SetRect(const wxRect& rc); - - // Called when TLW shown state is changed and hides the tooltip itself if - // the window it's associated with is hidden. - static void UpdateVisibility(); - -private: - // This module calls our DeleteToolTipCtrl(). - friend class wxToolTipModule; - - // Adds a window other than our main m_window to this tooltip. - void DoAddHWND(WXHWND hWnd); - - // Perform the specified operation for the given window only. - void DoSetTip(WXHWND hWnd); - void DoRemove(WXHWND hWnd); - - // Call the given function for all windows we're associated with. - void DoForAllWindows(void (wxToolTip::*func)(WXHWND)); - - - // the one and only one tooltip control we use - never access it directly - // but use GetToolTipCtrl() which will create it when needed - static WXHWND ms_hwndTT; - - // create the tooltip ctrl if it doesn't exist yet and return its HWND - static WXHWND GetToolTipCtrl(); - - // to be used in wxModule for deleting tooltip ctrl window when exiting mainloop - static void DeleteToolTipCtrl(); - - // new tooltip maximum width, defaults to min(display width, 400) - static int ms_maxWidth; - - // remove this tooltip from the tooltip control - void Remove(); - - // adjust tooltip max width based on current tooltip text - bool AdjustMaxWidth(); - - wxString m_text; // tooltip text - wxWindow* m_window; // main window we're associated with - wxToolTipOtherWindows *m_others; // other windows associated with it or NULL - wxRect m_rect; // the rect of the window for which this tooltip is shown - // (or a rect with width/height == 0 to show it for the entire window) - unsigned int m_id; // the id of this tooltip (ignored when m_rect width/height is 0) - - wxDECLARE_ABSTRACT_CLASS(wxToolTip); - wxDECLARE_NO_COPY_CLASS(wxToolTip); -}; - -#endif // _WX_MSW_TOOLTIP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/toplevel.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/toplevel.h deleted file mode 100644 index 3a847e2f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/toplevel.h +++ /dev/null @@ -1,191 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/toplevel.h -// Purpose: wxTopLevelWindowMSW is the MSW implementation of wxTLW -// Author: Vadim Zeitlin -// Modified by: -// Created: 20.09.01 -// Copyright: (c) 2001 SciTech Software, Inc. (www.scitechsoft.com) -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_TOPLEVEL_H_ -#define _WX_MSW_TOPLEVEL_H_ - -// ---------------------------------------------------------------------------- -// wxTopLevelWindowMSW -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTopLevelWindowMSW : public wxTopLevelWindowBase -{ -public: - // constructors and such - wxTopLevelWindowMSW() { Init(); } - - wxTopLevelWindowMSW(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Init(); - - (void)Create(parent, id, title, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - virtual ~wxTopLevelWindowMSW(); - - // implement base class pure virtuals - virtual void SetTitle( const wxString& title); - virtual wxString GetTitle() const; - virtual void Maximize(bool maximize = true); - virtual bool IsMaximized() const; - virtual void Iconize(bool iconize = true); - virtual bool IsIconized() const; - virtual void SetIcons(const wxIconBundle& icons ); - virtual void Restore(); - - virtual void SetLayoutDirection(wxLayoutDirection dir); - - virtual void RequestUserAttention(int flags = wxUSER_ATTENTION_INFO); - - virtual bool Show(bool show = true); - virtual void Raise(); - - virtual void ShowWithoutActivating(); - virtual bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL); - virtual bool IsFullScreen() const { return m_fsIsShowing; } - - // wxMSW only: EnableCloseButton(false) may be used to remove the "Close" - // button from the title bar - virtual bool EnableCloseButton(bool enable = true); - virtual bool EnableMaximizeButton(bool enable = true) wxOVERRIDE; - virtual bool EnableMinimizeButton(bool enable = true) wxOVERRIDE; - - // Set window transparency if the platform supports it - virtual bool SetTransparent(wxByte alpha); - virtual bool CanSetTransparent(); - - - // MSW-specific methods - // -------------------- - - // Return the menu representing the "system" menu of the window. You can - // call wxMenu::AppendWhatever() methods on it but removing items from it - // is in general not a good idea. - // - // The pointer returned by this method belongs to the window and will be - // deleted when the window itself is, do not delete it yourself. May return - // NULL if getting the system menu failed. - wxMenu *MSWGetSystemMenu() const; - - - // implementation from now on - // -------------------------- - - // event handlers - void OnActivate(wxActivateEvent& event); - - // called by wxWindow whenever it gets focus - void SetLastFocus(wxWindow *win) { m_winLastFocused = win; } - wxWindow *GetLastFocus() const { return m_winLastFocused; } - - // translate wxWidgets flags to Windows ones - virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle) const; - - // choose the right parent to use with CreateWindow() - virtual WXHWND MSWGetParent() const; - - // window proc for the frames - WXLRESULT MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - -protected: - // common part of all ctors - void Init(); - - // create a new frame, return false if it couldn't be created - bool CreateFrame(const wxString& title, - const wxPoint& pos, - const wxSize& size); - - // create a new dialog using the given dialog template from resources, - // return false if it couldn't be created - bool CreateDialog(const void *dlgTemplate, - const wxString& title, - const wxPoint& pos, - const wxSize& size); - - // common part of Iconize(), Maximize() and Restore() - void DoShowWindow(int nShowCmd); - - // override those to return the normal window coordinates even when the - // window is minimized - virtual void DoGetPosition(int *x, int *y) const; - virtual void DoGetSize(int *width, int *height) const; - - // Top level windows have different freeze semantics on Windows - virtual void DoFreeze(); - virtual void DoThaw(); - - // helper of SetIcons(): calls gets the icon with the size specified by the - // given system metrics (SM_C{X|Y}[SM]ICON) from the bundle and sets it - // using WM_SETICON with the specified wParam (ICOM_SMALL or ICON_BIG); - // returns true if the icon was set - bool DoSelectAndSetIcon(const wxIconBundle& icons, int smX, int smY, int i); - - // override wxWindow virtual method to use CW_USEDEFAULT if necessary - virtual void MSWGetCreateWindowCoords(const wxPoint& pos, - const wxSize& size, - int& x, int& y, - int& w, int& h) const; - - - // is the window currently iconized? - bool m_iconized; - - // should the frame be maximized when it will be shown? set by Maximize() - // when it is called while the frame is hidden - bool m_maximizeOnShow; - - // Data to save/restore when calling ShowFullScreen - long m_fsStyle; // Passed to ShowFullScreen - wxRect m_fsOldSize; - long m_fsOldWindowStyle; - bool m_fsIsMaximized; - bool m_fsIsShowing; - - // Save the current focus to m_winLastFocused if we're not iconized (the - // focus is always NULL when we're iconized). - void DoSaveLastFocus(); - - // Restore focus to m_winLastFocused if possible and needed. - void DoRestoreLastFocus(); - - // The last focused child: we remember it when we're deactivated and - // restore focus to it when we're activated (this is done here) or restored - // from iconic state (done by wxFrame). - wxWindow *m_winLastFocused; - -private: - - // The system menu: initially NULL but can be set (once) by - // MSWGetSystemMenu(). Owned by this window. - wxMenu *m_menuSystem; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxTopLevelWindowMSW); -}; - -#endif // _WX_MSW_TOPLEVEL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/treectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/treectrl.h deleted file mode 100644 index 914cddc3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/treectrl.h +++ /dev/null @@ -1,348 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/treectrl.h -// Purpose: wxTreeCtrl class -// Author: Julian Smart -// Modified by: Vadim Zeitlin to be less MSW-specific on 10/10/98 -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_TREECTRL_H_ -#define _WX_MSW_TREECTRL_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#if wxUSE_TREECTRL - -#include "wx/textctrl.h" -#include "wx/dynarray.h" -#include "wx/treebase.h" -#include "wx/hashmap.h" - -#ifdef __GNUWIN32__ - // Cygwin windows.h defines these identifiers - #undef GetFirstChild - #undef GetNextSibling -#endif // Cygwin - -// fwd decl -class WXDLLIMPEXP_FWD_CORE wxImageList; -class WXDLLIMPEXP_FWD_CORE wxDragImage; -struct WXDLLIMPEXP_FWD_CORE wxTreeViewItem; - -// hash storing attributes for our items -WX_DECLARE_EXPORTED_VOIDPTR_HASH_MAP(wxTreeItemAttr *, wxMapTreeAttr); - -// ---------------------------------------------------------------------------- -// wxTreeCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTreeCtrl : public wxTreeCtrlBase -{ -public: - // creation - // -------- - wxTreeCtrl() { Init(); } - - wxTreeCtrl(wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTreeCtrlNameStr) - { - Create(parent, id, pos, size, style, validator, name); - } - - virtual ~wxTreeCtrl(); - - bool Create(wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTreeCtrlNameStr); - - // implement base class pure virtuals - // ---------------------------------- - - virtual unsigned int GetCount() const; - - virtual unsigned int GetIndent() const; - virtual void SetIndent(unsigned int indent); - - virtual void SetImageList(wxImageList *imageList); - virtual void SetStateImageList(wxImageList *imageList); - - virtual wxString GetItemText(const wxTreeItemId& item) const; - virtual int GetItemImage(const wxTreeItemId& item, - wxTreeItemIcon which = wxTreeItemIcon_Normal) const; - virtual wxTreeItemData *GetItemData(const wxTreeItemId& item) const; - virtual wxColour GetItemTextColour(const wxTreeItemId& item) const; - virtual wxColour GetItemBackgroundColour(const wxTreeItemId& item) const; - virtual wxFont GetItemFont(const wxTreeItemId& item) const; - - virtual void SetItemText(const wxTreeItemId& item, const wxString& text); - virtual void SetItemImage(const wxTreeItemId& item, int image, - wxTreeItemIcon which = wxTreeItemIcon_Normal); - virtual void SetItemData(const wxTreeItemId& item, wxTreeItemData *data); - virtual void SetItemHasChildren(const wxTreeItemId& item, bool has = true); - virtual void SetItemBold(const wxTreeItemId& item, bool bold = true); - virtual void SetItemDropHighlight(const wxTreeItemId& item, - bool highlight = true); - virtual void SetItemTextColour(const wxTreeItemId& item, - const wxColour& col); - virtual void SetItemBackgroundColour(const wxTreeItemId& item, - const wxColour& col); - virtual void SetItemFont(const wxTreeItemId& item, const wxFont& font); - - // item status inquiries - // --------------------- - - virtual bool IsVisible(const wxTreeItemId& item) const; - virtual bool ItemHasChildren(const wxTreeItemId& item) const; - virtual bool IsExpanded(const wxTreeItemId& item) const; - virtual bool IsSelected(const wxTreeItemId& item) const; - virtual bool IsBold(const wxTreeItemId& item) const; - - virtual size_t GetChildrenCount(const wxTreeItemId& item, - bool recursively = true) const; - - // navigation - // ---------- - - virtual wxTreeItemId GetRootItem() const; - virtual wxTreeItemId GetSelection() const; - virtual size_t GetSelections(wxArrayTreeItemIds& selections) const; - virtual wxTreeItemId GetFocusedItem() const; - - virtual void ClearFocusedItem(); - virtual void SetFocusedItem(const wxTreeItemId& item); - - - virtual wxTreeItemId GetItemParent(const wxTreeItemId& item) const; - virtual wxTreeItemId GetFirstChild(const wxTreeItemId& item, - wxTreeItemIdValue& cookie) const; - virtual wxTreeItemId GetNextChild(const wxTreeItemId& item, - wxTreeItemIdValue& cookie) const; - virtual wxTreeItemId GetLastChild(const wxTreeItemId& item) const; - - virtual wxTreeItemId GetNextSibling(const wxTreeItemId& item) const; - virtual wxTreeItemId GetPrevSibling(const wxTreeItemId& item) const; - - virtual wxTreeItemId GetFirstVisibleItem() const; - virtual wxTreeItemId GetNextVisible(const wxTreeItemId& item) const; - virtual wxTreeItemId GetPrevVisible(const wxTreeItemId& item) const; - - // operations - // ---------- - - virtual wxTreeItemId AddRoot(const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - virtual void Delete(const wxTreeItemId& item); - virtual void DeleteChildren(const wxTreeItemId& item); - virtual void DeleteAllItems(); - - virtual void Expand(const wxTreeItemId& item); - virtual void Collapse(const wxTreeItemId& item); - virtual void CollapseAndReset(const wxTreeItemId& item); - virtual void Toggle(const wxTreeItemId& item); - - virtual void Unselect(); - virtual void UnselectAll(); - virtual void SelectItem(const wxTreeItemId& item, bool select = true); - virtual void SelectChildren(const wxTreeItemId& parent); - - virtual void EnsureVisible(const wxTreeItemId& item); - virtual void ScrollTo(const wxTreeItemId& item); - - virtual wxTextCtrl *EditLabel(const wxTreeItemId& item, - wxClassInfo* textCtrlClass = wxCLASSINFO(wxTextCtrl)); - virtual wxTextCtrl *GetEditControl() const; - virtual void EndEditLabel(const wxTreeItemId& WXUNUSED(item), - bool discardChanges = false) - { - DoEndEditLabel(discardChanges); - } - - virtual void SortChildren(const wxTreeItemId& item); - - virtual bool GetBoundingRect(const wxTreeItemId& item, - wxRect& rect, - bool textOnly = false) const; - - // implementation - // -------------- - - virtual wxVisualAttributes GetDefaultAttributes() const - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); - - - virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - virtual WXLRESULT MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - virtual bool MSWShouldPreProcessMessage(WXMSG* msg); - - // override some base class virtuals - virtual bool SetBackgroundColour(const wxColour &colour); - virtual bool SetForegroundColour(const wxColour &colour); - - // returns true if the platform should explicitly apply a theme border - virtual bool CanApplyThemeBorder() const { return false; } - -protected: - // Implement "update locking" in a custom way for this control. - virtual void DoFreeze(); - virtual void DoThaw(); - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - - // SetImageList helper - void SetAnyImageList(wxImageList *imageList, int which); - - // refresh a single item - void RefreshItem(const wxTreeItemId& item); - - // end edit label - void DoEndEditLabel(bool discardChanges = false); - - virtual int DoGetItemState(const wxTreeItemId& item) const; - virtual void DoSetItemState(const wxTreeItemId& item, int state); - - virtual wxTreeItemId DoInsertItem(const wxTreeItemId& parent, - size_t pos, - const wxString& text, - int image, int selectedImage, - wxTreeItemData *data); - virtual wxTreeItemId DoInsertAfter(const wxTreeItemId& parent, - const wxTreeItemId& idPrevious, - const wxString& text, - int image = -1, int selImage = -1, - wxTreeItemData *data = NULL); - virtual wxTreeItemId DoTreeHitTest(const wxPoint& point, int& flags) const; - - // obtain the user data for the lParam member of TV_ITEM - class wxTreeItemParam *GetItemParam(const wxTreeItemId& item) const; - - // update the event to include the items client data and pass it to - // HandleWindowEvent(), return true if it processed it - bool HandleTreeEvent(wxTreeEvent& event) const; - - // pass the event to HandleTreeEvent() and return true if the event was - // either unprocessed or not vetoed - bool IsTreeEventAllowed(wxTreeEvent& event) const - { - return !HandleTreeEvent(event) || event.IsAllowed(); - } - - // generate a wxEVT_KEY_DOWN event from the specified WPARAM/LPARAM values - // having the same meaning as for WM_KEYDOWN, return true if it was - // processed - bool MSWHandleTreeKeyDownEvent(WXWPARAM wParam, WXLPARAM lParam); - - // handle a key event in a multi-selection control, should be only called - // for keys which can be used to change the selection - // - // return true if the key was processed, false otherwise - bool MSWHandleSelectionKey(unsigned vkey); - - - // data used only while editing the item label: - wxTextCtrl *m_textCtrl; // text control in which it is edited - wxTreeItemId m_idEdited; // the item being edited - -private: - // the common part of all ctors - void Init(); - - // helper functions - bool DoGetItem(wxTreeViewItem *tvItem) const; - void DoSetItem(wxTreeViewItem *tvItem); - - void DoExpand(const wxTreeItemId& item, int flag); - - void DoSelectItem(const wxTreeItemId& item, bool select = true); - void DoUnselectItem(const wxTreeItemId& item); - void DoToggleItemSelection(const wxTreeItemId& item); - - void DoUnselectAll(); - void DoSelectChildren(const wxTreeItemId& parent); - - void DeleteTextCtrl(); - - // return true if the item is the hidden root one (i.e. it's the root item - // and the tree has wxTR_HIDE_ROOT style) - bool IsHiddenRoot(const wxTreeItemId& item) const; - - - // check if the given flags (taken from TV_HITTESTINFO structure) - // indicate a position "on item": this is less trivial than just checking - // for TVHT_ONITEM because we consider that points to the left and right of - // item text are also "on item" when wxTR_FULL_ROW_HIGHLIGHT is used as the - // item visually spans the entire breadth of the window then - bool MSWIsOnItem(unsigned flags) const; - - // Delete the given item from the native control. - bool MSWDeleteItem(const wxTreeItemId& item); - - - // the hash storing the items attributes (indexed by item ids) - wxMapTreeAttr m_attrs; - - // true if the hash above is not empty - bool m_hasAnyAttr; - -#if wxUSE_DRAGIMAGE - // used for dragging - wxDragImage *m_dragImage; -#endif - - // Virtual root item, if wxTR_HIDE_ROOT is set. - void* m_pVirtualRoot; - - // the starting item for selection with Shift - wxTreeItemId m_htSelStart, m_htClickedItem; - wxPoint m_ptClick; - - // whether dragging has started - bool m_dragStarted; - - // whether focus was lost between subsequent clicks of a single item - bool m_focusLost; - - // set when we are changing selection ourselves (only used in multi - // selection mode) - bool m_changingSelection; - - // whether we need to trigger a state image click event - bool m_triggerStateImageClick; - - // whether we need to deselect other items on mouse up - bool m_mouseUpDeselect; - - // The size to restore the control to when it is thawed, see DoThaw(). - wxSize m_thawnSize; - - friend class wxTreeItemIndirectData; - friend class wxTreeSortHelper; - - wxDECLARE_DYNAMIC_CLASS(wxTreeCtrl); - wxDECLARE_NO_COPY_CLASS(wxTreeCtrl); -}; - -#endif // wxUSE_TREECTRL - -#endif // _WX_MSW_TREECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/uxtheme.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/uxtheme.h deleted file mode 100644 index f15973e3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/uxtheme.h +++ /dev/null @@ -1,320 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/uxtheme.h -// Purpose: wxUxThemeEngine class: support for XP themes -// Author: John Platts, Vadim Zeitlin -// Modified by: -// Created: 2003 -// Copyright: (c) 2003 John Platts, Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_UXTHEME_H_ -#define _WX_UXTHEME_H_ - -#include "wx/defs.h" - -#include "wx/msw/private.h" // we use GetHwndOf() -#include "wx/msw/uxthemep.h" - -// Amazingly, GetThemeFont() and GetThemeSysFont() functions use LOGFONTA under -// XP but LOGFONTW (even in non-Unicode build) under later versions of Windows. -// If we declare them as taking LOGFONT below, the code would be able to -// silently pass LOGFONTA to them in ANSI build and would crash at run-time -// under Windows Vista/7 because of a buffer overrun (LOGFONTA being smaller -// than LOGFONTW expected by these functions). If we we declare them as taking -// LOGFONTW, the code wouldn't work correctly under XP. So we use a special -// wxUxThemeFont class to encapsulate this and intentionally change the LOGFONT -// output parameters of the theme functions to take it instead. - -class wxUxThemeFont -{ -public: - // Trivial default ctor. - wxUxThemeFont() { } - - // Just some unique type. - struct Ptr { }; - -#if wxUSE_UNICODE - // In Unicode build we always use LOGFONT anyhow so this class is - // completely trivial. - Ptr *GetPtr() { return reinterpret_cast<Ptr *>(&m_lfW); } - const LOGFONTW& GetLOGFONT() { return m_lfW; } -#else // !wxUSE_UNICODE - // Return either LOGFONTA or LOGFONTW pointer as required by the current - // Windows version. - Ptr *GetPtr() - { - return UseLOGFONTW() ? reinterpret_cast<Ptr *>(&m_lfW) - : reinterpret_cast<Ptr *>(&m_lfA); - } - - // This method returns LOGFONT (i.e. LOGFONTA in ANSI build and LOGFONTW in - // Unicode one) which can be used with other, normal, Windows or wx - // functions. Internally it may need to transform LOGFONTW to LOGFONTA. - const LOGFONTA& GetLOGFONT() - { - if ( UseLOGFONTW() ) - { - // Most of the fields are the same in LOGFONTA and LOGFONTW so just - // copy everything by default. - memcpy(&m_lfA, &m_lfW, sizeof(m_lfA)); - - // But the face name must be converted from Unicode. - WideCharToMultiByte(CP_ACP, 0, m_lfW.lfFaceName, -1, - m_lfA.lfFaceName, sizeof(m_lfA.lfFaceName), - NULL, NULL); - } - - return m_lfA; - } - -private: - static bool UseLOGFONTW() - { - return wxGetWinVersion() >= wxWinVersion_Vista; - } - - LOGFONTA m_lfA; -#endif // wxUSE_UNICODE/!wxUSE_UNICODE - -private: - LOGFONTW m_lfW; - - wxDECLARE_NO_COPY_CLASS(wxUxThemeFont); -}; - -typedef int(__stdcall *DTT_CALLBACK_PROC)(HDC hdc, const wchar_t * pszText, int cchText, RECT * prc, unsigned int dwFlags, WXLPARAM lParam); - -typedef struct _DTTOPTS -{ - DWORD dwSize; - DWORD dwFlags; - COLORREF crText; - COLORREF crBorder; - COLORREF crShadow; - int iTextShadowType; - POINT ptShadowOffset; - int iBorderSize; - int iFontPropId; - int iColorPropId; - int iStateId; - BOOL fApplyOverlay; - int iGlowSize; - DTT_CALLBACK_PROC pfnDrawTextCallback; - WXLPARAM lParam; -} DTTOPTS, *PDTTOPTS; - -typedef HTHEME (__stdcall *PFNWXUOPENTHEMEDATA)(HWND, const wchar_t *); -typedef HRESULT (__stdcall *PFNWXUCLOSETHEMEDATA)(HTHEME); -typedef HRESULT (__stdcall *PFNWXUDRAWTHEMEBACKGROUND)(HTHEME, HDC, int, int, const RECT *, const RECT *); -typedef HRESULT (__stdcall *PFNWXUDRAWTHEMETEXT)(HTHEME, HDC, int, int, const wchar_t *, int, DWORD, DWORD, const RECT *); -typedef HRESULT (__stdcall *PFNWXUDRAWTHEMETEXTEX)(HTHEME, HDC, int, int, const wchar_t *, int, DWORD, RECT *, const DTTOPTS *); -typedef HRESULT (__stdcall *PFNWXUGETTHEMEBACKGROUNDCONTENTRECT)(HTHEME, HDC, int, int, const RECT *, RECT *); -typedef HRESULT (__stdcall *PFNWXUGETTHEMEBACKGROUNDEXTENT)(HTHEME, HDC, int, int, const RECT *, RECT *); -typedef HRESULT (__stdcall *PFNWXUGETTHEMEPARTSIZE)(HTHEME, HDC, int, int, const RECT *, /* enum */ THEMESIZE, SIZE *); -typedef HRESULT (__stdcall *PFNWXUGETTHEMETEXTEXTENT)(HTHEME, HDC, int, int, const wchar_t *, int, DWORD, const RECT *, RECT *); -typedef HRESULT (__stdcall *PFNWXUGETTHEMETEXTMETRICS)(HTHEME, HDC, int, int, TEXTMETRIC*); -typedef HRESULT (__stdcall *PFNWXUGETTHEMEBACKGROUNDREGION)(HTHEME, HDC, int, int, const RECT *, HRGN *); -typedef HRESULT (__stdcall *PFNWXUHITTESTTHEMEBACKGROUND)(HTHEME, HDC, int, int, DWORD, const RECT *, HRGN, POINT, unsigned short *); -typedef HRESULT (__stdcall *PFNWXUDRAWTHEMEEDGE)(HTHEME, HDC, int, int, const RECT *, unsigned int, unsigned int, RECT *); -typedef HRESULT (__stdcall *PFNWXUDRAWTHEMEICON)(HTHEME, HDC, int, int, const RECT *, HIMAGELIST, int); -typedef BOOL (__stdcall *PFNWXUISTHEMEPARTDEFINED)(HTHEME, int, int); -typedef BOOL (__stdcall *PFNWXUISTHEMEBACKGROUNDPARTIALLYTRANSPARENT)(HTHEME, int, int); -typedef HRESULT (__stdcall *PFNWXUGETTHEMECOLOR)(HTHEME, int, int, int, COLORREF*); -typedef HRESULT (__stdcall *PFNWXUGETTHEMEMETRIC)(HTHEME, HDC, int, int, int, int *); -typedef HRESULT (__stdcall *PFNWXUGETTHEMESTRING)(HTHEME, int, int, int, wchar_t *, int); -typedef HRESULT (__stdcall *PFNWXUGETTHEMEBOOL)(HTHEME, int, int, int, BOOL *); -typedef HRESULT (__stdcall *PFNWXUGETTHEMEINT)(HTHEME, int, int, int, int *); -typedef HRESULT (__stdcall *PFNWXUGETTHEMEENUMVALUE)(HTHEME, int, int, int, int *); -typedef HRESULT (__stdcall *PFNWXUGETTHEMEPOSITION)(HTHEME, int, int, int, POINT *); -typedef HRESULT (__stdcall *PFNWXUGETTHEMEFONT)(HTHEME, HDC, int, int, int, wxUxThemeFont::Ptr *); -typedef HRESULT (__stdcall *PFNWXUGETTHEMERECT)(HTHEME, int, int, int, RECT *); -typedef HRESULT (__stdcall *PFNWXUGETTHEMEMARGINS)(HTHEME, HDC, int, int, int, RECT *, MARGINS *); -typedef HRESULT (__stdcall *PFNWXUGETTHEMEINTLIST)(HTHEME, int, int, int, INTLIST*); -typedef HRESULT (__stdcall *PFNWXUGETTHEMEPROPERTYORIGIN)(HTHEME, int, int, int, /* enum */ PROPERTYORIGIN *); -typedef HRESULT (__stdcall *PFNWXUSETWINDOWTHEME)(HWND, const wchar_t*, const wchar_t *); -typedef HRESULT (__stdcall *PFNWXUGETTHEMEFILENAME)(HTHEME, int, int, int, wchar_t *, int); -typedef COLORREF(__stdcall *PFNWXUGETTHEMESYSCOLOR)(HTHEME, int); -typedef HBRUSH (__stdcall *PFNWXUGETTHEMESYSCOLORBRUSH)(HTHEME, int); -typedef BOOL (__stdcall *PFNWXUGETTHEMESYSBOOL)(HTHEME, int); -typedef int (__stdcall *PFNWXUGETTHEMESYSSIZE)(HTHEME, int); -typedef HRESULT (__stdcall *PFNWXUGETTHEMESYSFONT)(HTHEME, int, wxUxThemeFont::Ptr *); -typedef HRESULT (__stdcall *PFNWXUGETTHEMESYSSTRING)(HTHEME, int, wchar_t *, int); -typedef HRESULT (__stdcall *PFNWXUGETTHEMESYSINT)(HTHEME, int, int *); -typedef BOOL (__stdcall *PFNWXUISTHEMEACTIVE)(); -typedef BOOL (__stdcall *PFNWXUISAPPTHEMED)(); -typedef HTHEME (__stdcall *PFNWXUGETWINDOWTHEME)(HWND); -typedef HRESULT (__stdcall *PFNWXUENABLETHEMEDIALOGTEXTURE)(HWND, DWORD); -typedef BOOL (__stdcall *PFNWXUISTHEMEDIALOGTEXTUREENABLED)(HWND); -typedef DWORD (__stdcall *PFNWXUGETTHEMEAPPPROPERTIES)(); -typedef void (__stdcall *PFNWXUSETTHEMEAPPPROPERTIES)(DWORD); -typedef HRESULT (__stdcall *PFNWXUGETCURRENTTHEMENAME)(wchar_t *, int, wchar_t *, int, wchar_t *, int); -typedef HRESULT (__stdcall *PFNWXUGETTHEMEDOCUMENTATIONPROPERTY)(const wchar_t *, const wchar_t *, wchar_t *, int); -typedef HRESULT (__stdcall *PFNWXUDRAWTHEMEPARENTBACKGROUND)(HWND, HDC, RECT *); -typedef HRESULT (__stdcall *PFNWXUENABLETHEMING)(BOOL); - -// ---------------------------------------------------------------------------- -// wxUxThemeEngine: provides all theme functions from uxtheme.dll -// ---------------------------------------------------------------------------- - -// we always define this class, even if wxUSE_UXTHEME == 0, but we just make it -// empty in this case -- this allows to use it elsewhere without any #ifdefs -#if wxUSE_UXTHEME - #include "wx/dynlib.h" - - #define wxUX_THEME_DECLARE(type, func) type func; -#else - #define wxUX_THEME_DECLARE(type, func) type func(...) { return 0; } -#endif - -class WXDLLIMPEXP_CORE wxUxThemeEngine -{ -public: - // get the theme engine or NULL if themes are not available - static wxUxThemeEngine *Get(); - - // get the theme enging or NULL if themes are not available or not used for - // this application - static wxUxThemeEngine *GetIfActive(); - - // all uxtheme.dll functions - wxUX_THEME_DECLARE(PFNWXUOPENTHEMEDATA, OpenThemeData) - wxUX_THEME_DECLARE(PFNWXUCLOSETHEMEDATA, CloseThemeData) - wxUX_THEME_DECLARE(PFNWXUDRAWTHEMEBACKGROUND, DrawThemeBackground) - wxUX_THEME_DECLARE(PFNWXUDRAWTHEMETEXT, DrawThemeText) - wxUX_THEME_DECLARE(PFNWXUDRAWTHEMETEXTEX, DrawThemeTextEx) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEBACKGROUNDCONTENTRECT, GetThemeBackgroundContentRect) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEBACKGROUNDEXTENT, GetThemeBackgroundExtent) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEPARTSIZE, GetThemePartSize) - wxUX_THEME_DECLARE(PFNWXUGETTHEMETEXTEXTENT, GetThemeTextExtent) - wxUX_THEME_DECLARE(PFNWXUGETTHEMETEXTMETRICS, GetThemeTextMetrics) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEBACKGROUNDREGION, GetThemeBackgroundRegion) - wxUX_THEME_DECLARE(PFNWXUHITTESTTHEMEBACKGROUND, HitTestThemeBackground) - wxUX_THEME_DECLARE(PFNWXUDRAWTHEMEEDGE, DrawThemeEdge) - wxUX_THEME_DECLARE(PFNWXUDRAWTHEMEICON, DrawThemeIcon) - wxUX_THEME_DECLARE(PFNWXUISTHEMEPARTDEFINED, IsThemePartDefined) - wxUX_THEME_DECLARE(PFNWXUISTHEMEBACKGROUNDPARTIALLYTRANSPARENT, IsThemeBackgroundPartiallyTransparent) - wxUX_THEME_DECLARE(PFNWXUGETTHEMECOLOR, GetThemeColor) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEMETRIC, GetThemeMetric) - wxUX_THEME_DECLARE(PFNWXUGETTHEMESTRING, GetThemeString) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEBOOL, GetThemeBool) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEINT, GetThemeInt) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEENUMVALUE, GetThemeEnumValue) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEPOSITION, GetThemePosition) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEFONT, GetThemeFont) - wxUX_THEME_DECLARE(PFNWXUGETTHEMERECT, GetThemeRect) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEMARGINS, GetThemeMargins) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEINTLIST, GetThemeIntList) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEPROPERTYORIGIN, GetThemePropertyOrigin) - wxUX_THEME_DECLARE(PFNWXUSETWINDOWTHEME, SetWindowTheme) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEFILENAME, GetThemeFilename) - wxUX_THEME_DECLARE(PFNWXUGETTHEMESYSCOLOR, GetThemeSysColor) - wxUX_THEME_DECLARE(PFNWXUGETTHEMESYSCOLORBRUSH, GetThemeSysColorBrush) - wxUX_THEME_DECLARE(PFNWXUGETTHEMESYSBOOL, GetThemeSysBool) - wxUX_THEME_DECLARE(PFNWXUGETTHEMESYSSIZE, GetThemeSysSize) - wxUX_THEME_DECLARE(PFNWXUGETTHEMESYSFONT, GetThemeSysFont) - wxUX_THEME_DECLARE(PFNWXUGETTHEMESYSSTRING, GetThemeSysString) - wxUX_THEME_DECLARE(PFNWXUGETTHEMESYSINT, GetThemeSysInt) - wxUX_THEME_DECLARE(PFNWXUISTHEMEACTIVE, IsThemeActive) - wxUX_THEME_DECLARE(PFNWXUISAPPTHEMED, IsAppThemed) - wxUX_THEME_DECLARE(PFNWXUGETWINDOWTHEME, GetWindowTheme) - wxUX_THEME_DECLARE(PFNWXUENABLETHEMEDIALOGTEXTURE, EnableThemeDialogTexture) - wxUX_THEME_DECLARE(PFNWXUISTHEMEDIALOGTEXTUREENABLED, IsThemeDialogTextureEnabled) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEAPPPROPERTIES, GetThemeAppProperties) - wxUX_THEME_DECLARE(PFNWXUSETTHEMEAPPPROPERTIES, SetThemeAppProperties) - wxUX_THEME_DECLARE(PFNWXUGETCURRENTTHEMENAME, GetCurrentThemeName) - wxUX_THEME_DECLARE(PFNWXUGETTHEMEDOCUMENTATIONPROPERTY, GetThemeDocumentationProperty) - wxUX_THEME_DECLARE(PFNWXUDRAWTHEMEPARENTBACKGROUND, DrawThemeParentBackground) - wxUX_THEME_DECLARE(PFNWXUENABLETHEMING, EnableTheming) - -private: - // construcor is private as only Get() can create us and is also trivial as - // everything really happens in Initialize() - wxUxThemeEngine() { } - - // destructor is private as only Get() and wxUxThemeModule delete us, it is - // not virtual as we're not supposed to be derived from - ~wxUxThemeEngine() { } - -#if wxUSE_UXTHEME - // initialize the theme engine: load the DLL, resolve the functions - // - // return true if we can be used, false if themes are not available - bool Initialize(); - - - // uxtheme.dll - wxDynamicLibrary m_dllUxTheme; - - - // the one and only theme engine, initially NULL - static wxUxThemeEngine *ms_themeEngine; - - // this is a bool which initially has the value -1 meaning "unknown" - static int ms_isThemeEngineAvailable; - - // it must be able to delete us - friend class wxUxThemeModule; -#endif // wxUSE_UXTHEME - - wxDECLARE_NO_COPY_CLASS(wxUxThemeEngine); -}; - -#if wxUSE_UXTHEME - -/* static */ inline wxUxThemeEngine *wxUxThemeEngine::GetIfActive() -{ - wxUxThemeEngine *engine = Get(); - return engine && engine->IsAppThemed() && engine->IsThemeActive() - ? engine - : NULL; -} - -#else // !wxUSE_UXTHEME - -/* static */ inline wxUxThemeEngine *wxUxThemeEngine::Get() -{ - return NULL; -} - -/* static */ inline wxUxThemeEngine *wxUxThemeEngine::GetIfActive() -{ - return NULL; -} - -#endif // wxUSE_UXTHEME/!wxUSE_UXTHEME - -// ---------------------------------------------------------------------------- -// wxUxThemeHandle: encapsulates ::Open/CloseThemeData() -// ---------------------------------------------------------------------------- - -class wxUxThemeHandle -{ -public: - wxUxThemeHandle(const wxWindow *win, const wchar_t *classes) - { - wxUxThemeEngine *engine = wxUxThemeEngine::Get(); - - m_hTheme = engine ? (HTHEME)engine->OpenThemeData(GetHwndOf(win), classes) - : NULL; - } - - operator HTHEME() const { return m_hTheme; } - - ~wxUxThemeHandle() - { - if ( m_hTheme ) - { - wxUxThemeEngine::Get()->CloseThemeData(m_hTheme); - } - } - -private: - HTHEME m_hTheme; - - wxDECLARE_NO_COPY_CLASS(wxUxThemeHandle); -}; - -#endif // _WX_UXTHEME_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/uxthemep.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/uxthemep.h deleted file mode 100644 index 3d5123b9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/uxthemep.h +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Win32 5.1 theme definitions - * - * Copyright (C) 2003 Kevin Koltzau - * - * Originally written for the Wine project, and issued under - * the wxWindows licence by kind permission of the author. - * - * Licence: wxWindows licence - */ - -#ifndef __WINE_UXTHEME_H -#define __WINE_UXTHEME_H - -#include "wx/msw/wrapcctl.h" - -typedef HANDLE HTHEME; - -HRESULT WINAPI CloseThemeData(HTHEME hTheme); -HRESULT WINAPI DrawThemeBackground(HTHEME,HDC,int,int,const RECT*,const RECT*); - -#define DTBG_CLIPRECT 0x00000001 -#define DTBG_DRAWSOLID 0x00000002 -#define DTBG_OMITBORDER 0x00000004 -#define DTBG_OMITCONTENT 0x00000008 -#define DTBG_COMPUTINGREGION 0x00000010 -#define DTBG_MIRRORDC 0x00000020 - -typedef struct _DTBGOPTS { - DWORD dwSize; - DWORD dwFlags; - RECT rcClip; -} DTBGOPTS, *PDTBGOPTS; - -HRESULT WINAPI DrawThemeBackgroundEx(HTHEME,HDC,int,int,const RECT*, - const DTBGOPTS*); -HRESULT WINAPI DrawThemeEdge(HTHEME,HDC,int,int,const RECT*,UINT,UINT, - RECT*); -HRESULT WINAPI DrawThemeIcon(HTHEME,HDC,int,int,const RECT*,HIMAGELIST,int); -HRESULT WINAPI DrawThemeParentBackground(HWND,HDC,RECT*); - -#define DTT_GRAYED 0x1 - -HRESULT WINAPI DrawThemeText(HTHEME,HDC,int,int,LPCWSTR,int,DWORD,DWORD, - const RECT*); - -#define ETDT_DISABLE 0x00000001 -#define ETDT_ENABLE 0x00000002 -#define ETDT_USETABTEXTURE 0x00000004 -#define ETDT_ENABLETAB (ETDT_ENABLE|ETDT_USETABTEXTURE) - -HRESULT WINAPI EnableThemeDialogTexture(HWND,DWORD); -HRESULT WINAPI EnableTheming(BOOL); -HRESULT WINAPI GetCurrentThemeName(LPWSTR,int,LPWSTR,int,LPWSTR,int); - -#define STAP_ALLOW_NONCLIENT (1<<0) -#define STAP_ALLOW_CONTROLS (1<<1) -#define STAP_ALLOW_WEBCONTENT (1<<2) - -DWORD WINAPI GetThemeAppProperties(void); -HRESULT WINAPI GetThemeBackgroundContentRect(HTHEME,HDC,int,int, - const RECT*,RECT*); -HRESULT WINAPI GetThemeBackgroundExtent(HTHEME,HDC,int,int,const RECT*,RECT*); -HRESULT WINAPI GetThemeBackgroundRegion(HTHEME,HDC,int,int,const RECT*,HRGN*); -HRESULT WINAPI GetThemeBool(HTHEME,int,int,int,BOOL*); -HRESULT WINAPI GetThemeColor(HTHEME,int,int,int,COLORREF*); - -#if defined(__GNUC__) -# define SZ_THDOCPROP_DISPLAYNAME (const WCHAR []){ 'D','i','s','p','l','a','y','N','a','m','e',0 } -# define SZ_THDOCPROP_CANONICALNAME (const WCHAR []){ 'T','h','e','m','e','N','a','m','e',0 } -# define SZ_THDOCPROP_TOOLTIP (const WCHAR []){ 'T','o','o','l','T','i','p',0 } -# define SZ_THDOCPROP_AUTHOR (const WCHAR []){ 'a','u','t','h','o','r',0 } -#else /* lif defined(_MSC_VER) */ -# define SZ_THDOCPROP_DISPLAYNAME L"DisplayName" -# define SZ_THDOCPROP_CANONICALNAME L"ThemeName" -# define SZ_THDOCPROP_TOOLTIP L"ToolTip" -# define SZ_THDOCPROP_AUTHOR L"author" -/* -#else -static const WCHAR SZ_THDOCPROP_DISPLAYNAME[] = { 'D','i','s','p','l','a','y','N','a','m','e',0 }; -static const WCHAR SZ_THDOCPROP_CANONICALNAME[] = { 'T','h','e','m','e','N','a','m','e',0 }; -static const WCHAR SZ_THDOCPROP_TOOLTIP[] = { 'T','o','o','l','T','i','p',0 }; -static const WCHAR SZ_THDOCPROP_AUTHOR[] = { 'a','u','t','h','o','r',0 }; -*/ -#endif - -HRESULT WINAPI GetThemeDocumentationProperty(LPCWSTR,LPCWSTR,LPWSTR,int); -HRESULT WINAPI GetThemeEnumValue(HTHEME,int,int,int,int*); -HRESULT WINAPI GetThemeFilename(HTHEME,int,int,int,LPWSTR,int); -HRESULT WINAPI GetThemeFont(HTHEME,HDC,int,int,int,LOGFONTW*); -HRESULT WINAPI GetThemeInt(HTHEME,int,int,int,int*); - -#define MAX_INTLIST_COUNT 10 -typedef struct _INTLIST { - int iValueCount; - int iValues[MAX_INTLIST_COUNT]; -} INTLIST, *PINTLIST; - -HRESULT WINAPI GetThemeIntList(HTHEME,int,int,int,INTLIST*); - -typedef struct _MARGINS { - int cxLeftWidth; - int cxRightWidth; - int cyTopHeight; - int cyBottomHeight; -} MARGINS, *PMARGINS; - -HRESULT WINAPI GetThemeMargins(HTHEME,HDC,int,int,int,RECT*,MARGINS*); -HRESULT WINAPI GetThemeMetric(HTHEME,HDC,int,int,int,int*); - -typedef enum { - TS_MIN, - TS_TRUE, - TS_DRAW -} THEMESIZE; - -HRESULT WINAPI GetThemePartSize(HTHEME,HDC,int,int,RECT*,THEMESIZE,SIZE*); -HRESULT WINAPI GetThemePosition(HTHEME,int,int,int,POINT*); - -typedef enum { - PO_STATE, - PO_PART, - PO_CLASS, - PO_GLOBAL, - PO_NOTFOUND -} PROPERTYORIGIN; - -HRESULT WINAPI GetThemePropertyOrigin(HTHEME,int,int,int,PROPERTYORIGIN*); -HRESULT WINAPI GetThemeRect(HTHEME,int,int,int,RECT*); -HRESULT WINAPI GetThemeString(HTHEME,int,int,int,LPWSTR,int); -BOOL WINAPI GetThemeSysBool(HTHEME,int); -COLORREF WINAPI GetThemeSysColor(HTHEME,int); -HBRUSH WINAPI GetThemeSysColorBrush(HTHEME,int); -HRESULT WINAPI GetThemeSysFont(HTHEME,int,LOGFONTW*); -HRESULT WINAPI GetThemeSysInt(HTHEME,int,int*); -int WINAPI GetThemeSysSize(HTHEME,int); -HRESULT WINAPI GetThemeSysString(HTHEME,int,LPWSTR,int); -HRESULT WINAPI GetThemeTextExtent(HTHEME,HDC,int,int,LPCWSTR,int,DWORD, - const RECT*,RECT*); -HRESULT WINAPI GetThemeTextMetrics(HTHEME,HDC,int,int,TEXTMETRICW*); -HTHEME WINAPI GetWindowTheme(HWND); - -#define HTTB_BACKGROUNDSEG 0x0000 -#define HTTB_FIXEDBORDER 0x0002 -#define HTTB_CAPTION 0x0004 -#define HTTB_RESIZINGBORDER_LEFT 0x0010 -#define HTTB_RESIZINGBORDER_TOP 0x0020 -#define HTTB_RESIZINGBORDER_RIGHT 0x0040 -#define HTTB_RESIZINGBORDER_BOTTOM 0x0080 -#define HTTB_RESIZINGBORDER \ - (HTTB_RESIZINGBORDER_LEFT|HTTB_RESIZINGBORDER_TOP|\ - HTTB_RESIZINGBORDER_RIGHT|HTTB_RESIZINGBORDER_BOTTOM) -#define HTTB_SIZINGTEMPLATE 0x0100 -#define HTTB_SYSTEMSIZINGMARGINS 0x0200 - -HRESULT WINAPI HitTestThemeBackground(HTHEME,HDC,int,int,DWORD,const RECT*, - HRGN,POINT,WORD*); -BOOL WINAPI IsAppThemed(void); -BOOL WINAPI IsThemeActive(void); -BOOL WINAPI IsThemeBackgroundPartiallyTransparent(HTHEME,int,int); -BOOL WINAPI IsThemeDialogTextureEnabled(void); -BOOL WINAPI IsThemePartDefined(HTHEME,int,int); -HTHEME WINAPI OpenThemeData(HWND,LPCWSTR); -void WINAPI SetThemeAppProperties(DWORD); -HRESULT WINAPI SetWindowTheme(HWND,LPCWSTR,LPCWSTR); - - -#endif - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/webview_ie.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/webview_ie.h deleted file mode 100644 index 07f7cc67..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/webview_ie.h +++ /dev/null @@ -1,356 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: include/wx/msw/webview_ie.h -// Purpose: wxMSW IE wxWebView backend -// Author: Marianne Gagnon -// Copyright: (c) 2010 Marianne Gagnon, 2011 Steven Lamerton -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef wxWebViewIE_H -#define wxWebViewIE_H - -#include "wx/setup.h" - -#if wxUSE_WEBVIEW && wxUSE_WEBVIEW_IE && defined(__WXMSW__) - -#include "wx/control.h" -#include "wx/webview.h" -#include "wx/msw/ole/automtn.h" -#include "wx/msw/ole/activex.h" -#include "wx/msw/ole/oleutils.h" -#include "wx/msw/private/comptr.h" -#include "wx/msw/wrapwin.h" -#include "wx/msw/missing.h" -#include "wx/msw/webview_missing.h" -#include "wx/sharedptr.h" -#include "wx/vector.h" - -struct IHTMLDocument2; -struct IHTMLElement; -struct IMarkupPointer; -class wxFSFile; -class ClassFactory; -class wxIEContainer; -class DocHostUIHandler; -class wxFindPointers; -class wxIInternetProtocol; - -class WXDLLIMPEXP_WEBVIEW wxWebViewIE : public wxWebView -{ -public: - - wxWebViewIE() {} - - wxWebViewIE(wxWindow* parent, - wxWindowID id, - const wxString& url = wxWebViewDefaultURLStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxWebViewNameStr) - { - Create(parent, id, url, pos, size, style, name); - } - - ~wxWebViewIE(); - - bool Create(wxWindow* parent, - wxWindowID id, - const wxString& url = wxWebViewDefaultURLStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxWebViewNameStr); - - virtual void LoadURL(const wxString& url); - virtual void LoadHistoryItem(wxSharedPtr<wxWebViewHistoryItem> item); - virtual wxVector<wxSharedPtr<wxWebViewHistoryItem> > GetBackwardHistory(); - virtual wxVector<wxSharedPtr<wxWebViewHistoryItem> > GetForwardHistory(); - - virtual bool CanGoForward() const; - virtual bool CanGoBack() const; - virtual void GoBack(); - virtual void GoForward(); - virtual void ClearHistory(); - virtual void EnableHistory(bool enable = true); - virtual void Stop(); - virtual void Reload(wxWebViewReloadFlags flags = wxWEBVIEW_RELOAD_DEFAULT); - - virtual wxString GetPageSource() const; - virtual wxString GetPageText() const; - - virtual bool IsBusy() const; - virtual wxString GetCurrentURL() const; - virtual wxString GetCurrentTitle() const; - - virtual void SetZoomType(wxWebViewZoomType); - virtual wxWebViewZoomType GetZoomType() const; - virtual bool CanSetZoomType(wxWebViewZoomType) const; - - virtual void Print(); - - virtual wxWebViewZoom GetZoom() const; - virtual void SetZoom(wxWebViewZoom zoom); - - //Clipboard functions - virtual bool CanCut() const; - virtual bool CanCopy() const; - virtual bool CanPaste() const; - virtual void Cut(); - virtual void Copy(); - virtual void Paste(); - - //Undo / redo functionality - virtual bool CanUndo() const; - virtual bool CanRedo() const; - virtual void Undo(); - virtual void Redo(); - - //Find function - virtual long Find(const wxString& text, int flags = wxWEBVIEW_FIND_DEFAULT); - - //Editing functions - virtual void SetEditable(bool enable = true); - virtual bool IsEditable() const; - - //Selection - virtual void SelectAll(); - virtual bool HasSelection() const; - virtual void DeleteSelection(); - virtual wxString GetSelectedText() const; - virtual wxString GetSelectedSource() const; - virtual void ClearSelection(); - - virtual void RunScript(const wxString& javascript); - - //Virtual Filesystem Support - virtual void RegisterHandler(wxSharedPtr<wxWebViewHandler> handler); - - virtual void* GetNativeBackend() const { return m_webBrowser; } - - // ---- IE-specific methods - - // FIXME: I seem to be able to access remote webpages even in offline mode... - bool IsOfflineMode(); - void SetOfflineMode(bool offline); - - wxWebViewZoom GetIETextZoom() const; - void SetIETextZoom(wxWebViewZoom level); - - wxWebViewZoom GetIEOpticalZoom() const; - void SetIEOpticalZoom(wxWebViewZoom level); - - void onActiveXEvent(wxActiveXEvent& evt); - void onEraseBg(wxEraseEvent&) {} - - wxDECLARE_EVENT_TABLE(); - -protected: - virtual void DoSetPage(const wxString& html, const wxString& baseUrl); - -private: - wxIEContainer* m_container; - wxAutomationObject m_ie; - IWebBrowser2* m_webBrowser; - DWORD m_dwCookie; - wxCOMPtr<DocHostUIHandler> m_uiHandler; - - //We store the current zoom type; - wxWebViewZoomType m_zoomType; - - /** The "Busy" property of IWebBrowser2 does not always return busy when - * we'd want it to; this variable may be set to true in cases where the - * Busy property is false but should be true. - */ - bool m_isBusy; - //We manage our own history, the history list contains the history items - //which are added as documentcomplete events arrive, unless we are loading - //an item from the history. The position is stored as an int, and reflects - //where we are in the history list. - wxVector<wxSharedPtr<wxWebViewHistoryItem> > m_historyList; - wxVector<ClassFactory*> m_factories; - int m_historyPosition; - bool m_historyLoadingFromList; - bool m_historyEnabled; - - //We store find flag, results and position. - wxVector<wxFindPointers> m_findPointers; - int m_findFlags; - wxString m_findText; - int m_findPosition; - - //Generic helper functions - bool CanExecCommand(wxString command) const; - void ExecCommand(wxString command); - wxCOMPtr<IHTMLDocument2> GetDocument() const; - bool IsElementVisible(wxCOMPtr<IHTMLElement> elm); - //Find helper functions. - void FindInternal(const wxString& text, int flags, int internal_flag); - long FindNext(int direction = 1); - void FindClear(); - //Toggles control features see INTERNETFEATURELIST for values. - bool EnableControlFeature(long flag, bool enable = true); - - wxDECLARE_DYNAMIC_CLASS(wxWebViewIE); -}; - -class WXDLLIMPEXP_WEBVIEW wxWebViewFactoryIE : public wxWebViewFactory -{ -public: - virtual wxWebView* Create() { return new wxWebViewIE; } - virtual wxWebView* Create(wxWindow* parent, - wxWindowID id, - const wxString& url = wxWebViewDefaultURLStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxWebViewNameStr) - { return new wxWebViewIE(parent, id, url, pos, size, style, name); } -}; - -class VirtualProtocol : public wxIInternetProtocol -{ -protected: - wxIInternetProtocolSink* m_protocolSink; - wxString m_html; - VOID * fileP; - - wxFSFile* m_file; - wxSharedPtr<wxWebViewHandler> m_handler; - -public: - VirtualProtocol(wxSharedPtr<wxWebViewHandler> handler); - virtual ~VirtualProtocol() {} - - //IUnknown - DECLARE_IUNKNOWN_METHODS; - - //IInternetProtocolRoot - HRESULT STDMETHODCALLTYPE Abort(HRESULT WXUNUSED(hrReason), - DWORD WXUNUSED(dwOptions)) - { return E_NOTIMPL; } - HRESULT STDMETHODCALLTYPE Continue(wxPROTOCOLDATA *WXUNUSED(pProtocolData)) - { return S_OK; } - HRESULT STDMETHODCALLTYPE Resume() { return S_OK; } - HRESULT STDMETHODCALLTYPE Start(LPCWSTR szUrl, - wxIInternetProtocolSink *pOIProtSink, - wxIInternetBindInfo *pOIBindInfo, - DWORD grfPI, - HANDLE_PTR dwReserved); - HRESULT STDMETHODCALLTYPE Suspend() { return S_OK; } - HRESULT STDMETHODCALLTYPE Terminate(DWORD WXUNUSED(dwOptions)) { return S_OK; } - - //IInternetProtocol - HRESULT STDMETHODCALLTYPE LockRequest(DWORD WXUNUSED(dwOptions)) - { return S_OK; } - HRESULT STDMETHODCALLTYPE Read(void *pv, ULONG cb, ULONG *pcbRead); - HRESULT STDMETHODCALLTYPE Seek(LARGE_INTEGER WXUNUSED(dlibMove), - DWORD WXUNUSED(dwOrigin), - ULARGE_INTEGER* WXUNUSED(plibNewPosition)) - { return E_FAIL; } - HRESULT STDMETHODCALLTYPE UnlockRequest() { return S_OK; } -}; - -class ClassFactory : public IClassFactory -{ -public: - ClassFactory(wxSharedPtr<wxWebViewHandler> handler) : m_handler(handler) - { AddRef(); } - virtual ~ClassFactory() {} - - wxString GetName() { return m_handler->GetName(); } - - //IClassFactory - HRESULT STDMETHODCALLTYPE CreateInstance(IUnknown* pUnkOuter, - REFIID riid, void** ppvObject); - HRESULT STDMETHODCALLTYPE LockServer(BOOL fLock); - - //IUnknown - DECLARE_IUNKNOWN_METHODS; - -private: - wxSharedPtr<wxWebViewHandler> m_handler; -}; - -class wxIEContainer : public wxActiveXContainer -{ -public: - wxIEContainer(wxWindow *parent, REFIID iid, IUnknown *pUnk, DocHostUIHandler* uiHandler = NULL); - virtual ~wxIEContainer(); - virtual bool QueryClientSiteInterface(REFIID iid, void **_interface, const char *&desc); -private: - DocHostUIHandler* m_uiHandler; -}; - -class DocHostUIHandler : public wxIDocHostUIHandler -{ -public: - DocHostUIHandler(wxWebView* browser) { m_browser = browser; } - virtual ~DocHostUIHandler() {} - - virtual HRESULT wxSTDCALL ShowContextMenu(DWORD dwID, POINT *ppt, - IUnknown *pcmdtReserved, - IDispatch *pdispReserved); - - virtual HRESULT wxSTDCALL GetHostInfo(DOCHOSTUIINFO *pInfo); - - virtual HRESULT wxSTDCALL ShowUI(DWORD dwID, - IOleInPlaceActiveObject *pActiveObject, - IOleCommandTarget *pCommandTarget, - IOleInPlaceFrame *pFrame, - IOleInPlaceUIWindow *pDoc); - - virtual HRESULT wxSTDCALL HideUI(void); - - virtual HRESULT wxSTDCALL UpdateUI(void); - - virtual HRESULT wxSTDCALL EnableModeless(BOOL fEnable); - - virtual HRESULT wxSTDCALL OnDocWindowActivate(BOOL fActivate); - - virtual HRESULT wxSTDCALL OnFrameWindowActivate(BOOL fActivate); - - virtual HRESULT wxSTDCALL ResizeBorder(LPCRECT prcBorder, - IOleInPlaceUIWindow *pUIWindow, - BOOL fRameWindow); - - virtual HRESULT wxSTDCALL TranslateAccelerator(LPMSG lpMsg, - const GUID *pguidCmdGroup, - DWORD nCmdID); - - virtual HRESULT wxSTDCALL GetOptionKeyPath(LPOLESTR *pchKey, - DWORD dw); - - virtual HRESULT wxSTDCALL GetDropTarget(IDropTarget *pDropTarget, - IDropTarget **ppDropTarget); - - virtual HRESULT wxSTDCALL GetExternal(IDispatch **ppDispatch); - - virtual HRESULT wxSTDCALL TranslateUrl(DWORD dwTranslate, - OLECHAR *pchURLIn, - OLECHAR **ppchURLOut); - - virtual HRESULT wxSTDCALL FilterDataObject(IDataObject *pDO, - IDataObject **ppDORet); - //IUnknown - DECLARE_IUNKNOWN_METHODS; - -private: - wxWebView* m_browser; -}; - -class wxFindPointers -{ -public: - wxFindPointers(wxIMarkupPointer *ptrBegin, wxIMarkupPointer *ptrEnd) - { - begin = ptrBegin; - end = ptrEnd; - } - //The two markup pointers. - wxIMarkupPointer *begin, *end; -}; - -#endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_IE && defined(__WXMSW__) - -#endif // wxWebViewIE_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/webview_missing.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/webview_missing.h deleted file mode 100644 index 514ae1e5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/webview_missing.h +++ /dev/null @@ -1,947 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: include/wx/msw/webview_missing.h -// Purpose: Definitions / classes commonly missing used by wxWebViewIE -// Author: Steven Lamerton -// Copyright: (c) 2012 Steven Lamerton -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* - * Classes and definitions used by wxWebViewIE vary in their - * completeness between compilers and versions of compilers. - * We implement our own versions here which should work - * for all compilers. The definitions are taken from the - * mingw-w64 headers which are public domain. -*/ - -/* urlmon.h */ - -struct IHTMLElement; -struct IHTMLDocument2; - -#ifndef REFRESH_NORMAL -#define REFRESH_NORMAL 0 -#endif - -#ifndef REFRESH_COMPLETELY -#define REFRESH_COMPLETELY 3 -#endif - -typedef enum __wxMIDL_IBindStatusCallback_0006 -{ - wxBSCF_FIRSTDATANOTIFICATION = 0x1, - wxBSCF_INTERMEDIATEDATANOTIFICATION = 0x2, - wxBSCF_LASTDATANOTIFICATION = 0x4, - wxBSCF_DATAFULLYAVAILABLE = 0x8, - wxBSCF_AVAILABLEDATASIZEUNKNOWN = 0x10 -} wxBSCF; - -EXTERN_C const IID CLSID_FileProtocol; - -typedef struct _tagwxBINDINFO -{ - ULONG cbSize; - LPWSTR szExtraInfo; - STGMEDIUM stgmedData; - DWORD grfBindInfoF; - DWORD dwBindVerb; - LPWSTR szCustomVerb; - DWORD cbstgmedData; - DWORD dwOptions; - DWORD dwOptionsFlags; - DWORD dwCodePage; - SECURITY_ATTRIBUTES securityAttributes; - IID iid; - IUnknown *pUnk; - DWORD dwReserved; -} wxBINDINFO; - -typedef struct _tagwxPROTOCOLDATA -{ - DWORD grfFlags; - DWORD dwState; - LPVOID pData; - ULONG cbData; -} wxPROTOCOLDATA; - -class wxIInternetBindInfo : public IUnknown -{ -public: - virtual HRESULT wxSTDCALL GetBindInfo(DWORD *grfBINDF, wxBINDINFO *pbindinfo) = 0; - virtual HRESULT wxSTDCALL GetBindString(ULONG ulStringType, LPOLESTR *ppwzStr, - ULONG cEl, ULONG *pcElFetched) = 0; -}; - -class wxIInternetProtocolSink : public IUnknown -{ -public: - virtual HRESULT wxSTDCALL Switch(wxPROTOCOLDATA *pProtocolData) = 0; - virtual HRESULT wxSTDCALL ReportProgress(ULONG ulStatusCode, - LPCWSTR szStatusText) = 0; - virtual HRESULT wxSTDCALL ReportData(DWORD grfBSCF, ULONG ulProgress, - ULONG ulProgressMax) = 0; - virtual HRESULT wxSTDCALL ReportResult(HRESULT hrResult, DWORD dwError, - LPCWSTR szResult) = 0; -}; - -class wxIInternetProtocolRoot : public IUnknown -{ -public: - virtual HRESULT wxSTDCALL Start(LPCWSTR szUrl, wxIInternetProtocolSink *pOIProtSink, - wxIInternetBindInfo *pOIBindInfo, DWORD grfPI, - HANDLE_PTR dwReserved) = 0; - virtual HRESULT wxSTDCALL Continue(wxPROTOCOLDATA *pProtocolData) = 0; - virtual HRESULT wxSTDCALL Abort(HRESULT hrReason, DWORD dwOptions) = 0; - virtual HRESULT wxSTDCALL Terminate(DWORD dwOptions) = 0; - virtual HRESULT wxSTDCALL Suspend(void) = 0; - virtual HRESULT wxSTDCALL Resume(void) = 0; -}; - - -class wxIInternetProtocol : public wxIInternetProtocolRoot -{ -public: - virtual HRESULT wxSTDCALL Read(void *pv, ULONG cb, ULONG *pcbRead) = 0; - virtual HRESULT wxSTDCALL Seek(LARGE_INTEGER dlibMove, DWORD dwOrigin, - ULARGE_INTEGER *plibNewPosition) = 0; - virtual HRESULT wxSTDCALL LockRequest(DWORD dwOptions) = 0; - virtual HRESULT wxSTDCALL UnlockRequest(void) = 0; -}; - - -class wxIInternetSession : public IUnknown -{ -public: - virtual HRESULT wxSTDCALL RegisterNameSpace(IClassFactory *pCF, REFCLSID rclsid, - LPCWSTR pwzProtocol, - ULONG cPatterns, - const LPCWSTR *ppwzPatterns, - DWORD dwReserved) = 0; - virtual HRESULT wxSTDCALL UnregisterNameSpace(IClassFactory *pCF, - LPCWSTR pszProtocol) = 0; - virtual HRESULT wxSTDCALL RegisterMimeFilter(IClassFactory *pCF, - REFCLSID rclsid, - LPCWSTR pwzType) = 0; - virtual HRESULT wxSTDCALL UnregisterMimeFilter(IClassFactory *pCF, - LPCWSTR pwzType) = 0; - virtual HRESULT wxSTDCALL CreateBinding(LPBC pBC, LPCWSTR szUrl, - IUnknown *pUnkOuter, IUnknown **ppUnk, - wxIInternetProtocol **ppOInetProt, - DWORD dwOption) = 0; - virtual HRESULT wxSTDCALL SetSessionOption(DWORD dwOption, LPVOID pBuffer, - DWORD dwBufferLength, - DWORD dwReserved) = 0; - virtual HRESULT wxSTDCALL GetSessionOption(DWORD dwOption, LPVOID pBuffer, - DWORD *pdwBufferLength, - DWORD dwReserved) = 0; -}; - -/* end of urlmon.h */ - -/* mshtmhst.h */ - -typedef enum _tagwxDOCHOSTUIFLAG -{ - DOCHOSTUIFLAG_DIALOG = 0x1, - DOCHOSTUIFLAG_DISABLE_HELP_MENU = 0x2, - DOCHOSTUIFLAG_NO3DBORDER = 0x4, - DOCHOSTUIFLAG_SCROLL_NO = 0x8, - DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE = 0x10, - DOCHOSTUIFLAG_OPENNEWWIN = 0x20, - DOCHOSTUIFLAG_DISABLE_OFFSCREEN = 0x40, - DOCHOSTUIFLAG_FLAT_SCROLLBAR = 0x80, - DOCHOSTUIFLAG_DIV_BLOCKDEFAULT = 0x100, - DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY = 0x200, - DOCHOSTUIFLAG_OVERRIDEBEHAVIORFACTORY = 0x400, - DOCHOSTUIFLAG_CODEPAGELINKEDFONTS = 0x800, - DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8 = 0x1000, - DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8 = 0x2000, - DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE = 0x4000, - DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION = 0x10000, - DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION = 0x20000, - DOCHOSTUIFLAG_THEME = 0x40000, - DOCHOSTUIFLAG_NOTHEME = 0x80000, - DOCHOSTUIFLAG_NOPICS = 0x100000, - DOCHOSTUIFLAG_NO3DOUTERBORDER = 0x200000, - DOCHOSTUIFLAG_DISABLE_EDIT_NS_FIXUP = 0x400000, - DOCHOSTUIFLAG_LOCAL_MACHINE_ACCESS_CHECK = 0x800000, - DOCHOSTUIFLAG_DISABLE_UNTRUSTEDPROTOCOL = 0x1000000 -} DOCHOSTUIFLAG; - -typedef struct _tagwxDOCHOSTUIINFO -{ - ULONG cbSize; - DWORD dwFlags; - DWORD dwDoubleClick; - OLECHAR *pchHostCss; - OLECHAR *pchHostNS; -} DOCHOSTUIINFO; - -class wxIDocHostUIHandler : public IUnknown -{ -public: - virtual HRESULT wxSTDCALL ShowContextMenu(DWORD dwID, POINT *ppt, - IUnknown *pcmdtReserved, - IDispatch *pdispReserved) = 0; - - virtual HRESULT wxSTDCALL GetHostInfo(DOCHOSTUIINFO *pInfo) = 0; - - virtual HRESULT wxSTDCALL ShowUI(DWORD dwID, - IOleInPlaceActiveObject *pActiveObject, - IOleCommandTarget *pCommandTarget, - IOleInPlaceFrame *pFrame, - IOleInPlaceUIWindow *pDoc) = 0; - - virtual HRESULT wxSTDCALL HideUI(void) = 0; - - virtual HRESULT wxSTDCALL UpdateUI(void) = 0; - - virtual HRESULT wxSTDCALL EnableModeless(BOOL fEnable) = 0; - - virtual HRESULT wxSTDCALL OnDocWindowActivate(BOOL fActivate) = 0; - - virtual HRESULT wxSTDCALL OnFrameWindowActivate(BOOL fActivate) = 0; - - virtual HRESULT wxSTDCALL ResizeBorder(LPCRECT prcBorder, - IOleInPlaceUIWindow *pUIWindow, - BOOL fRameWindow) = 0; - - virtual HRESULT wxSTDCALL TranslateAccelerator(LPMSG lpMsg, - const GUID *pguidCmdGroup, - DWORD nCmdID) = 0; - - virtual HRESULT wxSTDCALL GetOptionKeyPath(LPOLESTR *pchKey, - DWORD dw) = 0; - - virtual HRESULT wxSTDCALL GetDropTarget(IDropTarget *pDropTarget, - IDropTarget **ppDropTarget) = 0; - - virtual HRESULT wxSTDCALL GetExternal(IDispatch **ppDispatch) = 0; - - virtual HRESULT wxSTDCALL TranslateUrl(DWORD dwTranslate, - OLECHAR *pchURLIn, - OLECHAR **ppchURLOut) = 0; - - virtual HRESULT wxSTDCALL FilterDataObject(IDataObject *pDO, - IDataObject **ppDORet) = 0; -}; - -/* end of mshtmhst.h */ - -/* mshtml.h */ - -typedef enum _tagwxPOINTER_GRAVITY -{ - wxPOINTER_GRAVITY_Left = 0, - wxPOINTER_GRAVITY_Right = 1, - wxPOINTER_GRAVITY_Max = 2147483647 -} wxPOINTER_GRAVITY; - -typedef enum _tagwxELEMENT_ADJACENCY -{ - wxELEM_ADJ_BeforeBegin = 0, - wxELEM_ADJ_AfterBegin = 1, - wxELEM_ADJ_BeforeEnd = 2, - wxELEM_ADJ_AfterEnd = 3, - wxELEMENT_ADJACENCY_Max = 2147483647 -} wxELEMENT_ADJACENCY; - -typedef enum _tagwxMARKUP_CONTEXT_TYPE -{ - wxCONTEXT_TYPE_None = 0, - wxCONTEXT_TYPE_Text = 1, - wxCONTEXT_TYPE_EnterScope = 2, - wxCONTEXT_TYPE_ExitScope = 3, - wxCONTEXT_TYPE_NoScope = 4, - wxMARKUP_CONTEXT_TYPE_Max = 2147483647 -} wxMARKUP_CONTEXT_TYPE; - -typedef enum _tagwxFINDTEXT_FLAGS -{ - wxFINDTEXT_BACKWARDS = 0x1, - wxFINDTEXT_WHOLEWORD = 0x2, - wxFINDTEXT_MATCHCASE = 0x4, - wxFINDTEXT_RAW = 0x20000, - wxFINDTEXT_MATCHDIAC = 0x20000000, - wxFINDTEXT_MATCHKASHIDA = 0x40000000, - wxFINDTEXT_MATCHALEFHAMZA = 0x80000000, - wxFINDTEXT_FLAGS_Max = 2147483647 -} wxFINDTEXT_FLAGS; - -typedef enum _tagwxMOVEUNIT_ACTION -{ - wxMOVEUNIT_PREVCHAR = 0, - wxMOVEUNIT_NEXTCHAR = 1, - wxMOVEUNIT_PREVCLUSTERBEGIN = 2, - wxMOVEUNIT_NEXTCLUSTERBEGIN = 3, - wxMOVEUNIT_PREVCLUSTEREND = 4, - wxMOVEUNIT_NEXTCLUSTEREND = 5, - wxMOVEUNIT_PREVWORDBEGIN = 6, - wxMOVEUNIT_NEXTWORDBEGIN = 7, - wxMOVEUNIT_PREVWORDEND = 8, - wxMOVEUNIT_NEXTWORDEND = 9, - wxMOVEUNIT_PREVPROOFWORD = 10, - wxMOVEUNIT_NEXTPROOFWORD = 11, - wxMOVEUNIT_NEXTURLBEGIN = 12, - wxMOVEUNIT_PREVURLBEGIN = 13, - wxMOVEUNIT_NEXTURLEND = 14, - wxMOVEUNIT_PREVURLEND = 15, - wxMOVEUNIT_PREVSENTENCE = 16, - wxMOVEUNIT_NEXTSENTENCE = 17, - wxMOVEUNIT_PREVBLOCK = 18, - wxMOVEUNIT_NEXTBLOCK = 19, - wxMOVEUNIT_ACTION_Max = 2147483647 -} wxMOVEUNIT_ACTION; - -typedef enum _tagwxELEMENT_TAG_ID -{ - wxTAGID_NULL = 0, wxTAGID_UNKNOWN = 1, wxTAGID_A = 2, wxTAGID_ACRONYM = 3, - wxTAGID_ADDRESS = 4, wxTAGID_APPLET = 5, wxTAGID_AREA = 6, wxTAGID_B = 7, - wxTAGID_BASE = 8, wxTAGID_BASEFONT = 9, wxTAGID_BDO = 10, - wxTAGID_BGSOUND = 11, wxTAGID_BIG = 12, wxTAGID_BLINK = 13, - wxTAGID_BLOCKQUOTE = 14, wxTAGID_BODY = 15, wxTAGID_BR = 16, - wxTAGID_BUTTON = 17, wxTAGID_CAPTION = 18, wxTAGID_CENTER = 19, - wxTAGID_CITE = 20, wxTAGID_CODE = 21, wxTAGID_COL = 22, - wxTAGID_COLGROUP = 23, wxTAGID_COMMENT = 24, wxTAGID_COMMENT_RAW = 25, - wxTAGID_DD = 26, wxTAGID_DEL = 27, wxTAGID_DFN = 28, wxTAGID_DIR = 29, - wxTAGID_DIV = 30, wxTAGID_DL = 31, wxTAGID_DT = 32, wxTAGID_EM = 33, - wxTAGID_EMBED = 34, wxTAGID_FIELDSET = 35, wxTAGID_FONT = 36, - wxTAGID_FORM = 37, wxTAGID_FRAME = 38, wxTAGID_FRAMESET = 39, - wxTAGID_GENERIC = 40, wxTAGID_H1 = 41, wxTAGID_H2 = 42, wxTAGID_H3 = 43, - wxTAGID_H4 = 44, wxTAGID_H5 = 45, wxTAGID_H6 = 46, wxTAGID_HEAD = 47, - wxTAGID_HR = 48, wxTAGID_HTML = 49, wxTAGID_I = 50, wxTAGID_IFRAME = 51, - wxTAGID_IMG = 52, wxTAGID_INPUT = 53, wxTAGID_INS = 54, wxTAGID_KBD = 55, - wxTAGID_LABEL = 56, wxTAGID_LEGEND = 57, wxTAGID_LI = 58, wxTAGID_LINK = 59, - wxTAGID_LISTING = 60, wxTAGID_MAP = 61, wxTAGID_MARQUEE = 62, - wxTAGID_MENU = 63, wxTAGID_META = 64, wxTAGID_NEXTID = 65, - wxTAGID_NOBR = 66, wxTAGID_NOEMBED = 67, wxTAGID_NOFRAMES = 68, - wxTAGID_NOSCRIPT = 69, wxTAGID_OBJECT = 70, wxTAGID_OL = 71, - wxTAGID_OPTION = 72, wxTAGID_P = 73, wxTAGID_PARAM = 74, - wxTAGID_PLAINTEXT = 75, wxTAGID_PRE = 76, wxTAGID_Q = 77, wxTAGID_RP = 78, - wxTAGID_RT = 79, wxTAGID_RUBY = 80, wxTAGID_S = 81, wxTAGID_SAMP = 82, - wxTAGID_SCRIPT = 83, wxTAGID_SELECT = 84, wxTAGID_SMALL = 85, - wxTAGID_SPAN = 86, wxTAGID_STRIKE = 87, wxTAGID_STRONG = 88, - wxTAGID_STYLE = 89, wxTAGID_SUB = 90, wxTAGID_SUP = 91, wxTAGID_TABLE = 92, - wxTAGID_TBODY = 93, wxTAGID_TC = 94, wxTAGID_TD = 95, wxTAGID_TEXTAREA = 96, - wxTAGID_TFOOT = 97, wxTAGID_TH = 98, wxTAGID_THEAD = 99, - wxTAGID_TITLE = 100, wxTAGID_TR = 101, wxTAGID_TT = 102, wxTAGID_U = 103, - wxTAGID_UL = 104, wxTAGID_VAR = 105, wxTAGID_WBR = 106, wxTAGID_XMP = 107, - wxTAGID_ROOT = 108, wxTAGID_OPTGROUP = 109, wxTAGID_COUNT = 110, - wxTAGID_LAST_PREDEFINED = 10000, wxELEMENT_TAG_ID_Max = 2147483647 -} wxELEMENT_TAG_ID; - -struct wxIHTMLStyle : public IDispatch -{ -public: - virtual HRESULT wxSTDCALL put_fontFamily(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_fontFamily(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_fontStyle(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_fontStyle(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_fontVariant(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_fontVariant(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_fontWeight(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_fontWeight(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_fontSize(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_fontSize(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_font(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_font(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_color(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_color(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_background(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_background(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_backgroundColor(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_backgroundColor(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_backgroundImage(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_backgroundImage(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_backgroundRepeat(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_backgroundRepeat(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_backgroundAttachment(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_backgroundAttachment(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_backgroundPosition(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_backgroundPosition(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_backgroundPositionX(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_backgroundPositionX(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_backgroundPositionY(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_backgroundPositionY(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_wordSpacing(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_wordSpacing(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_letterSpacing(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_letterSpacing(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_textDecoration(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_textDecoration(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_textDecorationNone(VARIANT_BOOL v) = 0; - virtual HRESULT wxSTDCALL get_textDecorationNone(VARIANT_BOOL *p) = 0; - virtual HRESULT wxSTDCALL put_textDecorationUnderline(VARIANT_BOOL v) = 0; - virtual HRESULT wxSTDCALL get_textDecorationUnderline(VARIANT_BOOL *p) = 0; - virtual HRESULT wxSTDCALL put_textDecorationOverline(VARIANT_BOOL v) = 0; - virtual HRESULT wxSTDCALL get_textDecorationOverline(VARIANT_BOOL *p) = 0; - virtual HRESULT wxSTDCALL put_textDecorationLineThrough(VARIANT_BOOL v) = 0; - virtual HRESULT wxSTDCALL get_textDecorationLineThrough(VARIANT_BOOL *p) = 0; - virtual HRESULT wxSTDCALL put_textDecorationBlink(VARIANT_BOOL v) = 0; - virtual HRESULT wxSTDCALL get_textDecorationBlink(VARIANT_BOOL *p) = 0; - virtual HRESULT wxSTDCALL put_verticalAlign(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_verticalAlign(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_textTransform(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_textTransform(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_textAlign(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_textAlign(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_textIndent(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_textIndent(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_lineHeight(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_lineHeight(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_marginTop(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_marginTop(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_marginRight(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_marginRight(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_marginBottom(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_marginBottom(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_marginLeft(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_marginLeft(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_margin(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_margin(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_paddingTop(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_paddingTop(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_paddingRight(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_paddingRight(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_paddingBottom(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_paddingBottom(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_paddingLeft(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_paddingLeft(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_padding(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_padding(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_border(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_border(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_borderTop(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_borderTop(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_borderRight(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_borderRight(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_borderBottom(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_borderBottom(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_borderLeft(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_borderLeft(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_borderColor(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_borderColor(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_borderTopColor(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_borderTopColor(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_borderRightColor(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_borderRightColor(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_borderBottomColor(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_borderBottomColor(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_borderLeftColor(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_borderLeftColor(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_borderWidth(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_borderWidth(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_borderTopWidth(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_borderTopWidth(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_borderRightWidth(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_borderRightWidth(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_borderBottomWidth(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_borderBottomWidth(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_borderLeftWidth(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_borderLeftWidth(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_borderStyle(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_borderStyle(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_borderTopStyle(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_borderTopStyle(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_borderRightStyle(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_borderRightStyle(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_borderBottomStyle(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_borderBottomStyle(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_borderLeftStyle(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_borderLeftStyle(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_width(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_width(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_height(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_height(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_styleFloat(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_styleFloat(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_clear(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_clear(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_display(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_display(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_visibility(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_visibility(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_listStyleType(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_listStyleType(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_listStylePosition(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_listStylePosition(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_listStyleImage(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_listStyleImage(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_listStyle(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_listStyle(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_whiteSpace(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_whiteSpace(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_top(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_top(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_left(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_left(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_position(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_zIndex(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_zIndex(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_overflow(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_overflow(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_pageBreakBefore(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_pageBreakBefore(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_pageBreakAfter(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_pageBreakAfter(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_cssText(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_cssText(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_pixelTop(long v) = 0; - virtual HRESULT wxSTDCALL get_pixelTop(long *p) = 0; - virtual HRESULT wxSTDCALL put_pixelLeft(long v) = 0; - virtual HRESULT wxSTDCALL get_pixelLeft(long *p) = 0; - virtual HRESULT wxSTDCALL put_pixelWidth(long v) = 0; - virtual HRESULT wxSTDCALL get_pixelWidth(long *p) = 0; - virtual HRESULT wxSTDCALL put_pixelHeight(long v) = 0; - virtual HRESULT wxSTDCALL get_pixelHeight(long *p) = 0; - virtual HRESULT wxSTDCALL put_posTop(float v) = 0; - virtual HRESULT wxSTDCALL get_posTop(float *p) = 0; - virtual HRESULT wxSTDCALL put_posLeft(float v) = 0; - virtual HRESULT wxSTDCALL get_posLeft(float *p) = 0; - virtual HRESULT wxSTDCALL put_posWidth(float v) = 0; - virtual HRESULT wxSTDCALL get_posWidth(float *p) = 0; - virtual HRESULT wxSTDCALL put_posHeight(float v) = 0; - virtual HRESULT wxSTDCALL get_posHeight(float *p) = 0; - virtual HRESULT wxSTDCALL put_cursor(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_cursor(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_clip(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_clip(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_filter(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_filter(BSTR *p) = 0; - virtual HRESULT wxSTDCALL setAttribute(BSTR strAttributeName, VARIANT AttributeValue, LONG lFlags = 1) = 0; - virtual HRESULT wxSTDCALL getAttribute(BSTR strAttributeName, LONG lFlags, VARIANT *AttributeValue) = 0; - virtual HRESULT wxSTDCALL removeAttribute(BSTR strAttributeName, LONG lFlags, VARIANT_BOOL *pfSuccess) = 0; - virtual HRESULT wxSTDCALL toString(BSTR *String) = 0; -}; - -struct wxIHTMLCurrentStyle : public IDispatch -{ -public: - virtual HRESULT wxSTDCALL get_position(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_styleFloat(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_color(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_backgroundColor(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_fontFamily(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_fontStyle(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_fontVariant(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_fontWeight(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_fontSize(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_backgroundImage(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_backgroundPositionX(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_backgroundPositionY(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_backgroundRepeat(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_borderLeftColor(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_borderTopColor(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_borderRightColor(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_borderBottomColor(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_borderTopStyle(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_borderRightStyle(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_borderBottomStyle(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_borderLeftStyle(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_borderTopWidth(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_borderRightWidth(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_borderBottomWidth(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_borderLeftWidth(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_left(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_top(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_width(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_height(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_paddingLeft(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_paddingTop(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_paddingRight(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_paddingBottom(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_textAlign(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_textDecoration(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_display(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_visibility(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_zIndex(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_letterSpacing(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_lineHeight(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_textIndent(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_verticalAlign(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_backgroundAttachment(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_marginTop(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_marginRight(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_marginBottom(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_marginLeft(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_clear(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_listStyleType(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_listStylePosition(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_listStyleImage(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_clipTop(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_clipRight(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_clipBottom(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_clipLeft(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_overflow(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_pageBreakBefore(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_pageBreakAfter(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_cursor(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_tableLayout(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_borderCollapse(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_direction(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_behavior(BSTR *p) = 0; - virtual HRESULT wxSTDCALL getAttribute(BSTR strAttributeName, LONG lFlags, VARIANT *AttributeValue) = 0; - virtual HRESULT wxSTDCALL get_unicodeBidi(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_right(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_bottom(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_imeMode(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_rubyAlign(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_rubyPosition(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_rubyOverhang(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_textAutospace(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_lineBreak(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_wordBreak(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_textJustify(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_textJustifyTrim(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_textKashida(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_blockDirection(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_layoutGridChar(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_layoutGridLine(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_layoutGridMode(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_layoutGridType(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_borderStyle(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_borderColor(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_borderWidth(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_padding(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_margin(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_accelerator(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_overflowX(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_overflowY(BSTR *p) = 0; - virtual HRESULT wxSTDCALL get_textTransform(BSTR *p) = 0; -}; - - -struct wxIHTMLRect : public IDispatch -{ -public: - virtual HRESULT wxSTDCALL put_left(long v) = 0; - virtual HRESULT wxSTDCALL get_left(long *p) = 0; - virtual HRESULT wxSTDCALL put_top(long v) = 0; - virtual HRESULT wxSTDCALL get_top(long *p) = 0; - virtual HRESULT wxSTDCALL put_right(long v) = 0; - virtual HRESULT wxSTDCALL get_right(long *p) = 0; - virtual HRESULT wxSTDCALL put_bottom(long v) = 0; - virtual HRESULT wxSTDCALL get_bottom(long *p) = 0; -}; - -struct wxIHTMLRectCollection : public IDispatch -{ -public: - virtual HRESULT wxSTDCALL get_length(long *p) = 0; - virtual HRESULT wxSTDCALL get__newEnum(IUnknown **p) = 0; - virtual HRESULT wxSTDCALL item(VARIANT *pvarIndex, VARIANT *pvarResult) = 0; -}; - -struct wxIHTMLFiltersCollection : public IDispatch -{ -public: - virtual HRESULT wxSTDCALL get_length(long *p) = 0; - virtual HRESULT wxSTDCALL get__newEnum(IUnknown **p) = 0; - virtual HRESULT wxSTDCALL item(VARIANT *pvarIndex, VARIANT *pvarResult) = 0; -}; - -struct wxIHTMLElementCollection : public IDispatch -{ -public: - virtual HRESULT wxSTDCALL toString(BSTR *String) = 0; - virtual HRESULT wxSTDCALL put_length(long v) = 0; - virtual HRESULT wxSTDCALL get_length(long *p) = 0; - virtual HRESULT wxSTDCALL get__newEnum(IUnknown **p) = 0; - virtual HRESULT wxSTDCALL item(VARIANT name, VARIANT index, IDispatch **pdisp) = 0; - virtual HRESULT wxSTDCALL tags(VARIANT tagName, IDispatch **pdisp) = 0; -}; - -struct wxIHTMLElement2 : public IDispatch -{ -public: - virtual HRESULT wxSTDCALL get_scopeName(BSTR *p) = 0; - virtual HRESULT wxSTDCALL setCapture(VARIANT_BOOL containerCapture = -1) = 0; - virtual HRESULT wxSTDCALL releaseCapture(void) = 0; - virtual HRESULT wxSTDCALL put_onlosecapture(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_onlosecapture(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL componentFromPoint(long x, long y, BSTR *component) = 0; - virtual HRESULT wxSTDCALL doScroll(VARIANT component) = 0; - virtual HRESULT wxSTDCALL put_onscroll(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_onscroll(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_ondrag(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_ondrag(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_ondragend(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_ondragend(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_ondragenter(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_ondragenter(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_ondragover(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_ondragover(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_ondragleave(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_ondragleave(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_ondrop(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_ondrop(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_onbeforecut(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_onbeforecut(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_oncut(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_oncut(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_onbeforecopy(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_onbeforecopy(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_oncopy(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_oncopy(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_onbeforepaste(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_onbeforepaste(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_onpaste(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_onpaste(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_currentStyle(wxIHTMLCurrentStyle **p) = 0; - virtual HRESULT wxSTDCALL put_onpropertychange(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_onpropertychange(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL getClientRects(wxIHTMLRectCollection **pRectCol) = 0; - virtual HRESULT wxSTDCALL getBoundingClientRect(wxIHTMLRect **pRect) = 0; - virtual HRESULT wxSTDCALL setExpression(BSTR propname, BSTR expression, BSTR language) = 0; - virtual HRESULT wxSTDCALL getExpression(BSTR propname, VARIANT *expression) = 0; - virtual HRESULT wxSTDCALL removeExpression(BSTR propname, VARIANT_BOOL *pfSuccess) = 0; - virtual HRESULT wxSTDCALL put_tabIndex(short v) = 0; - virtual HRESULT wxSTDCALL get_tabIndex(short *p) = 0; - virtual HRESULT wxSTDCALL focus(void) = 0; - virtual HRESULT wxSTDCALL put_accessKey(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_accessKey(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_onblur(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_onblur(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_onfocus(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_onfocus(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_onresize(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_onresize(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL blur(void) = 0; - virtual HRESULT wxSTDCALL addFilter(IUnknown *pUnk) = 0; - virtual HRESULT wxSTDCALL removeFilter(IUnknown *pUnk) = 0; - virtual HRESULT wxSTDCALL get_clientHeight(long *p) = 0; - virtual HRESULT wxSTDCALL get_clientWidth(long *p) = 0; - virtual HRESULT wxSTDCALL get_clientTop(long *p) = 0; - virtual HRESULT wxSTDCALL get_clientLeft(long *p) = 0; - virtual HRESULT wxSTDCALL attachEvent(BSTR event, IDispatch *pDisp, VARIANT_BOOL *pfResult) = 0; - virtual HRESULT wxSTDCALL detachEvent(BSTR event, IDispatch *pDisp) = 0; - virtual HRESULT wxSTDCALL get_readyState(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_onreadystatechange(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_onreadystatechange(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_onrowsdelete(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_onrowsdelete(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_onrowsinserted(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_onrowsinserted(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_oncellchange(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_oncellchange(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL put_dir(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_dir(BSTR *p) = 0; - virtual HRESULT wxSTDCALL createControlRange(IDispatch **range) = 0; - virtual HRESULT wxSTDCALL get_scrollHeight(long *p) = 0; - virtual HRESULT wxSTDCALL get_scrollWidth(long *p) = 0; - virtual HRESULT wxSTDCALL put_scrollTop(long v) = 0; - virtual HRESULT wxSTDCALL get_scrollTop(long *p) = 0; - virtual HRESULT wxSTDCALL put_scrollLeft(long v) = 0; - virtual HRESULT wxSTDCALL get_scrollLeft(long *p) = 0; - virtual HRESULT wxSTDCALL clearAttributes(void) = 0; - virtual HRESULT wxSTDCALL mergeAttributes(IHTMLElement *mergeThis) = 0; - virtual HRESULT wxSTDCALL put_oncontextmenu(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_oncontextmenu(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL insertAdjacentElement(BSTR where, IHTMLElement *insertedElement, IHTMLElement **inserted) = 0; - virtual HRESULT wxSTDCALL applyElement(IHTMLElement *apply, BSTR where, IHTMLElement **applied) = 0; - virtual HRESULT wxSTDCALL getAdjacentText(BSTR where, BSTR *text) = 0; - virtual HRESULT wxSTDCALL replaceAdjacentText(BSTR where, BSTR newText, BSTR *oldText) = 0; - virtual HRESULT wxSTDCALL get_canHaveChildren(VARIANT_BOOL *p) = 0; - virtual HRESULT wxSTDCALL addBehavior(BSTR bstrUrl, VARIANT *pvarFactory, long *pCookie) = 0; - virtual HRESULT wxSTDCALL removeBehavior(long cookie, VARIANT_BOOL *pfResult) = 0; - virtual HRESULT wxSTDCALL get_runtimeStyle(wxIHTMLStyle **p) = 0; - virtual HRESULT wxSTDCALL get_behaviorUrns(IDispatch **p) = 0; - virtual HRESULT wxSTDCALL put_tagUrn(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_tagUrn(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_onbeforeeditfocus(VARIANT v) = 0; - virtual HRESULT wxSTDCALL get_onbeforeeditfocus(VARIANT *p) = 0; - virtual HRESULT wxSTDCALL get_readyStateValue(long *p) = 0; - virtual HRESULT wxSTDCALL getElementsByTagName(BSTR v, - wxIHTMLElementCollection **pelColl) = 0; -}; - -struct wxIHTMLTxtRange : public IDispatch -{ -public: - virtual HRESULT wxSTDCALL get_htmlText(BSTR *p) = 0; - virtual HRESULT wxSTDCALL put_text(BSTR v) = 0; - virtual HRESULT wxSTDCALL get_text(BSTR *p) = 0; - virtual HRESULT wxSTDCALL parentElement(IHTMLElement **parent) = 0; - virtual HRESULT wxSTDCALL duplicate(wxIHTMLTxtRange **Duplicate) = 0; - virtual HRESULT wxSTDCALL inRange(wxIHTMLTxtRange *Range, VARIANT_BOOL *InRange) = 0; - virtual HRESULT wxSTDCALL isEqual(wxIHTMLTxtRange *Range, VARIANT_BOOL *IsEqual) = 0; - virtual HRESULT wxSTDCALL scrollIntoView(VARIANT_BOOL fStart = -1) = 0; - virtual HRESULT wxSTDCALL collapse(VARIANT_BOOL Start = -1) = 0; - virtual HRESULT wxSTDCALL expand(BSTR Unit, VARIANT_BOOL *Success) = 0; - virtual HRESULT wxSTDCALL move(BSTR Unit, long Count, long *ActualCount) = 0; - virtual HRESULT wxSTDCALL moveStart(BSTR Unit, long Count, long *ActualCount) = 0; - virtual HRESULT wxSTDCALL moveEnd(BSTR Unit, long Count, long *ActualCount) = 0; - virtual HRESULT wxSTDCALL select(void) = 0; - virtual HRESULT wxSTDCALL pasteHTML(BSTR html) = 0; - virtual HRESULT wxSTDCALL moveToElementText(IHTMLElement *element) = 0; - virtual HRESULT wxSTDCALL setEndPoint(BSTR how, wxIHTMLTxtRange *SourceRange) = 0; - virtual HRESULT wxSTDCALL compareEndPoints(BSTR how, wxIHTMLTxtRange *SourceRange, long *ret) = 0; - virtual HRESULT wxSTDCALL findText(BSTR String, long count, long Flags, VARIANT_BOOL *Success) = 0; - virtual HRESULT wxSTDCALL moveToPoint(long x, long y) = 0; - virtual HRESULT wxSTDCALL getBookmark(BSTR *Boolmark) = 0; - virtual HRESULT wxSTDCALL moveToBookmark(BSTR Bookmark, VARIANT_BOOL *Success) = 0; - virtual HRESULT wxSTDCALL queryCommandSupported(BSTR cmdID, VARIANT_BOOL *pfRet) = 0; - virtual HRESULT wxSTDCALL queryCommandEnabled(BSTR cmdID, VARIANT_BOOL *pfRet) = 0; - virtual HRESULT wxSTDCALL queryCommandState(BSTR cmdID, VARIANT_BOOL *pfRet) = 0; - virtual HRESULT wxSTDCALL queryCommandIndeterm(BSTR cmdID, VARIANT_BOOL *pfRet) = 0; - virtual HRESULT wxSTDCALL queryCommandText(BSTR cmdID, BSTR *pcmdText) = 0; - virtual HRESULT wxSTDCALL queryCommandValue(BSTR cmdID, VARIANT *pcmdValue) = 0; - virtual HRESULT wxSTDCALL execCommand(BSTR cmdID, VARIANT_BOOL showUI, VARIANT value, VARIANT_BOOL *pfRet) = 0; - virtual HRESULT wxSTDCALL execCommandShowHelp(BSTR cmdID, VARIANT_BOOL *pfRet) = 0; -}; - -struct wxIMarkupContainer : public IUnknown -{ -public: - virtual HRESULT wxSTDCALL OwningDoc(IHTMLDocument2 **ppDoc) = 0; -}; - -struct wxIMarkupPointer : public IUnknown -{ -public: - virtual HRESULT wxSTDCALL OwningDoc(IHTMLDocument2 **ppDoc) = 0; - virtual HRESULT wxSTDCALL Gravity(wxPOINTER_GRAVITY *pGravity) = 0; - virtual HRESULT wxSTDCALL SetGravity(wxPOINTER_GRAVITY Gravity) = 0; - virtual HRESULT wxSTDCALL Cling(BOOL *pfCling) = 0; - virtual HRESULT wxSTDCALL SetCling(BOOL fCLing) = 0; - virtual HRESULT wxSTDCALL Unposition(void) = 0; - virtual HRESULT wxSTDCALL IsPositioned(BOOL *pfPositioned) = 0; - virtual HRESULT wxSTDCALL GetContainer(wxIMarkupContainer **ppContainer) = 0; - virtual HRESULT wxSTDCALL MoveAdjacentToElement(IHTMLElement *pElement, wxELEMENT_ADJACENCY eAdj) = 0; - virtual HRESULT wxSTDCALL MoveToPointer(wxIMarkupPointer *pPointer) = 0; - virtual HRESULT wxSTDCALL MoveToContainer(wxIMarkupContainer *pContainer, BOOL fAtStart) = 0; - virtual HRESULT wxSTDCALL Left(BOOL fMove, wxMARKUP_CONTEXT_TYPE *pContext, IHTMLElement **ppElement, long *pcch, OLECHAR *pchText) = 0; - virtual HRESULT wxSTDCALL Right(BOOL fMove, wxMARKUP_CONTEXT_TYPE *pContext, IHTMLElement **ppElement, long *pcch, OLECHAR *pchText) = 0; - virtual HRESULT wxSTDCALL CurrentScope(IHTMLElement **ppElemCurrent) = 0; - virtual HRESULT wxSTDCALL IsLeftOf(wxIMarkupPointer *pPointerThat, BOOL *pfResult) = 0; - virtual HRESULT wxSTDCALL IsLeftOfOrEqualTo(wxIMarkupPointer *pPointerThat, BOOL *pfResult) = 0; - virtual HRESULT wxSTDCALL IsRightOf(wxIMarkupPointer *pPointerThat, BOOL *pfResult) = 0; - virtual HRESULT wxSTDCALL IsRightOfOrEqualTo(wxIMarkupPointer *pPointerThat, BOOL *pfResult) = 0; - virtual HRESULT wxSTDCALL IsEqualTo(wxIMarkupPointer *pPointerThat, BOOL *pfAreEqual) = 0; - virtual HRESULT wxSTDCALL MoveUnit(wxMOVEUNIT_ACTION muAction) = 0; - virtual HRESULT wxSTDCALL FindText(OLECHAR *pchFindText, DWORD dwFlags, wxIMarkupPointer *pIEndMatch, wxIMarkupPointer *pIEndSearch) = 0; -}; - -struct wxIMarkupServices : public IUnknown -{ -public: - virtual HRESULT wxSTDCALL CreateMarkupPointer(wxIMarkupPointer **ppPointer) = 0; - virtual HRESULT wxSTDCALL CreateMarkupContainer(wxIMarkupContainer **ppMarkupContainer) = 0; - virtual HRESULT wxSTDCALL CreateElement(wxELEMENT_TAG_ID tagID, OLECHAR *pchAttributes, IHTMLElement **ppElement) = 0; - virtual HRESULT wxSTDCALL CloneElement(IHTMLElement *pElemCloneThis, IHTMLElement **ppElementTheClone) = 0; - virtual HRESULT wxSTDCALL InsertElement(IHTMLElement *pElementInsert, wxIMarkupPointer *pPointerStart, wxIMarkupPointer *pPointerFinish) = 0; - virtual HRESULT wxSTDCALL RemoveElement(IHTMLElement *pElementRemove) = 0; - virtual HRESULT wxSTDCALL Remove(wxIMarkupPointer *pPointerStart, wxIMarkupPointer *pPointerFinish) = 0; - virtual HRESULT wxSTDCALL Copy(wxIMarkupPointer *pPointerSourceStart, wxIMarkupPointer *pPointerSourceFinish, wxIMarkupPointer *pPointerTarget) = 0; - virtual HRESULT wxSTDCALL Move(wxIMarkupPointer *pPointerSourceStart, wxIMarkupPointer *pPointerSourceFinish, wxIMarkupPointer *pPointerTarget) = 0; - virtual HRESULT wxSTDCALL InsertText(OLECHAR *pchText, long cch, wxIMarkupPointer *pPointerTarget) = 0; - virtual HRESULT wxSTDCALL ParseString(OLECHAR *pchHTML, DWORD dwFlags, wxIMarkupContainer **ppContainerResult, wxIMarkupPointer *ppPointerStart, wxIMarkupPointer *ppPointerFinish) = 0; - virtual HRESULT wxSTDCALL ParseGlobal(HGLOBAL hglobalHTML, DWORD dwFlags, wxIMarkupContainer **ppContainerResult, wxIMarkupPointer *pPointerStart, wxIMarkupPointer *pPointerFinish) = 0; - virtual HRESULT wxSTDCALL IsScopedElement(IHTMLElement *pElement, BOOL *pfScoped) = 0; - virtual HRESULT wxSTDCALL GetElementTagId(IHTMLElement *pElement, wxELEMENT_TAG_ID *ptagId) = 0; - virtual HRESULT wxSTDCALL GetTagIDForName(BSTR bstrName, wxELEMENT_TAG_ID *ptagId) = 0; - virtual HRESULT wxSTDCALL GetNameForTagID(wxELEMENT_TAG_ID tagId, BSTR *pbstrName) = 0; - virtual HRESULT wxSTDCALL MovePointersToRange(wxIHTMLTxtRange *pIRange, wxIMarkupPointer *pPointerStart, wxIMarkupPointer *pPointerFinish) = 0; - virtual HRESULT wxSTDCALL MoveRangeToPointers(wxIMarkupPointer *pPointerStart, wxIMarkupPointer *pPointerFinish, wxIHTMLTxtRange *pIRange) = 0; - virtual HRESULT wxSTDCALL BeginUndoUnit(OLECHAR *pchTitle) = 0; - virtual HRESULT wxSTDCALL EndUndoUnit(void) = 0; -}; - -/* end of mshtml.h */ - -/* WinInet.h */ - -#ifndef HTTP_STATUS_BAD_REQUEST -#define HTTP_STATUS_BAD_REQUEST 400 -#endif - -#ifndef HTTP_STATUS_DENIED -#define HTTP_STATUS_DENIED 401 -#endif - -#ifndef HTTP_STATUS_PAYMENT_REQ -#define HTTP_STATUS_PAYMENT_REQ 402 -#endif - -#ifndef HTTP_STATUS_FORBIDDEN -#define HTTP_STATUS_FORBIDDEN 403 -#endif - -#ifndef HTTP_STATUS_NOT_FOUND -#define HTTP_STATUS_NOT_FOUND 404 -#endif - -#ifndef HTTP_STATUS_BAD_METHOD -#define HTTP_STATUS_BAD_METHOD 405 -#endif - -#ifndef HTTP_STATUS_NONE_ACCEPTABLE -#define HTTP_STATUS_NONE_ACCEPTABLE 406 -#endif - -#ifndef HTTP_STATUS_PROXY_AUTH_REQ -#define HTTP_STATUS_PROXY_AUTH_REQ 407 -#endif - -#ifndef HTTP_STATUS_REQUEST_TIMEOUT -#define HTTP_STATUS_REQUEST_TIMEOUT 408 -#endif - -#ifndef HTTP_STATUS_CONFLICT -#define HTTP_STATUS_CONFLICT 409 -#endif - -#ifndef HTTP_STATUS_GONE -#define HTTP_STATUS_GONE 410 -#endif - -#ifndef HTTP_STATUS_LENGTH_REQUIRED -#define HTTP_STATUS_LENGTH_REQUIRED 411 -#endif - -#ifndef HTTP_STATUS_PRECOND_FAILED -#define HTTP_STATUS_PRECOND_FAILED 412 -#endif - -#ifndef HTTP_STATUS_REQUEST_TOO_LARGE -#define HTTP_STATUS_REQUEST_TOO_LARGE 413 -#endif - -#ifndef HTTP_STATUS_URI_TOO_LONG -#define HTTP_STATUS_URI_TOO_LONG 414 -#endif - -#ifndef HTTP_STATUS_UNSUPPORTED_MEDIA -#define HTTP_STATUS_UNSUPPORTED_MEDIA 415 -#endif - -#ifndef HTTP_STATUS_RETRY_WITH -#define HTTP_STATUS_RETRY_WITH 449 -#endif - -#ifndef HTTP_STATUS_SERVER_ERROR -#define HTTP_STATUS_SERVER_ERROR 500 -#endif - -#ifndef HTTP_STATUS_NOT_SUPPORTED -#define HTTP_STATUS_NOT_SUPPORTED 501 -#endif - -#ifndef HTTP_STATUS_BAD_GATEWAY -#define HTTP_STATUS_BAD_GATEWAY 502 -#endif - -#ifndef HTTP_STATUS_SERVICE_UNAVAIL -#define HTTP_STATUS_SERVICE_UNAVAIL 503 -#endif - -#ifndef HTTP_STATUS_GATEWAY_TIMEOUT -#define HTTP_STATUS_GATEWAY_TIMEOUT 504 -#endif - -#ifndef HTTP_STATUS_VERSION_NOT_SUP -#define HTTP_STATUS_VERSION_NOT_SUP 505 -#endif - -/* end of WinInet.h */ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/webviewhistoryitem_ie.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/webviewhistoryitem_ie.h deleted file mode 100644 index 6edfbb39..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/webviewhistoryitem_ie.h +++ /dev/null @@ -1,30 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: include/wx/msw/webviewhistoryitem.h -// Purpose: wxWebViewHistoryItem header for MSW -// Author: Steven Lamerton -// Copyright: (c) 2011 Steven Lamerton -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_WEBVIEWHISTORYITEM_H_ -#define _WX_MSW_WEBVIEWHISTORYITEM_H_ - -#include "wx/setup.h" - -#if wxUSE_WEBVIEW && wxUSE_WEBVIEW_IE && defined(__WXMSW__) - -class WXDLLIMPEXP_WEBVIEW wxWebViewHistoryItem -{ -public: - wxWebViewHistoryItem(const wxString& url, const wxString& title) : - m_url(url), m_title(title) {} - wxString GetUrl() { return m_url; } - wxString GetTitle() { return m_title; } - -private: - wxString m_url, m_title; -}; - -#endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_IE && defined(__WXMSW__) - -#endif // _WX_MSW_WEBVIEWHISTORYITEM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/window.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/window.h deleted file mode 100644 index 9647e080..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/window.h +++ /dev/null @@ -1,737 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/window.h -// Purpose: wxWindowMSW class -// Author: Julian Smart -// Modified by: Vadim Zeitlin on 13.05.99: complete refont of message handling, -// elimination of Default(), ... -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WINDOW_H_ -#define _WX_WINDOW_H_ - -#include "wx/settings.h" // solely for wxSystemColour - -class WXDLLIMPEXP_FWD_CORE wxButton; - -// if this is set to 1, we use deferred window sizing to reduce flicker when -// resizing complicated window hierarchies, but this can in theory result in -// different behaviour than the old code so we keep the possibility to use it -// by setting this to 0 (in the future this should be removed completely) -#define wxUSE_DEFERRED_SIZING 1 - -// --------------------------------------------------------------------------- -// wxWindow declaration for MSW -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxWindowMSW : public wxWindowBase -{ - friend class wxSpinCtrl; - friend class wxSlider; - friend class wxRadioBox; -public: - wxWindowMSW() { Init(); } - - wxWindowMSW(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - { - Init(); - Create(parent, id, pos, size, style, name); - } - - virtual ~wxWindowMSW(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - - // implement base class pure virtuals - virtual void SetLabel(const wxString& label); - virtual wxString GetLabel() const; - - virtual void Raise(); - virtual void Lower(); - - virtual bool BeginRepositioningChildren(); - virtual void EndRepositioningChildren(); - - virtual bool Show(bool show = true); - virtual bool ShowWithEffect(wxShowEffect effect, - unsigned timeout = 0) - { - return MSWShowWithEffect(true, effect, timeout); - } - virtual bool HideWithEffect(wxShowEffect effect, - unsigned timeout = 0) - { - return MSWShowWithEffect(false, effect, timeout); - } - - virtual void SetFocus(); - virtual void SetFocusFromKbd(); - - virtual bool Reparent(wxWindowBase *newParent); - - virtual void WarpPointer(int x, int y); - - virtual void Refresh( bool eraseBackground = true, - const wxRect *rect = (const wxRect *) NULL ); - virtual void Update(); - - virtual void SetWindowStyleFlag(long style); - virtual void SetExtraStyle(long exStyle); - virtual bool SetCursor( const wxCursor &cursor ); - virtual bool SetFont( const wxFont &font ); - - virtual int GetCharHeight() const; - virtual int GetCharWidth() const; - - virtual void SetScrollbar( int orient, int pos, int thumbVisible, - int range, bool refresh = true ); - virtual void SetScrollPos( int orient, int pos, bool refresh = true ); - virtual int GetScrollPos( int orient ) const; - virtual int GetScrollThumb( int orient ) const; - virtual int GetScrollRange( int orient ) const; - virtual void ScrollWindow( int dx, int dy, - const wxRect* rect = NULL ); - - virtual bool ScrollLines(int lines); - virtual bool ScrollPages(int pages); - - virtual void SetLayoutDirection(wxLayoutDirection dir); - virtual wxLayoutDirection GetLayoutDirection() const; - virtual wxCoord AdjustForLayoutDirection(wxCoord x, - wxCoord width, - wxCoord widthTotal) const; - - virtual void SetId(wxWindowID winid); - -#if wxUSE_DRAG_AND_DROP - virtual void SetDropTarget( wxDropTarget *dropTarget ); -#endif // wxUSE_DRAG_AND_DROP - - // Accept files for dragging - virtual void DragAcceptFiles(bool accept); - -#ifndef __WXUNIVERSAL__ - // Native resource loading (implemented in src/msw/nativdlg.cpp) - // FIXME: should they really be all virtual? - virtual bool LoadNativeDialog(wxWindow* parent, wxWindowID id); - virtual bool LoadNativeDialog(wxWindow* parent, const wxString& name); - wxWindow* GetWindowChild1(wxWindowID id); - wxWindow* GetWindowChild(wxWindowID id); -#endif // __WXUNIVERSAL__ - -#if wxUSE_HOTKEY - // install and deinstall a system wide hotkey - virtual bool RegisterHotKey(int hotkeyId, int modifiers, int keycode); - virtual bool UnregisterHotKey(int hotkeyId); -#endif // wxUSE_HOTKEY - - // window handle stuff - // ------------------- - - WXHWND GetHWND() const { return m_hWnd; } - void SetHWND(WXHWND hWnd) { m_hWnd = hWnd; } - virtual WXWidget GetHandle() const { return GetHWND(); } - - void AssociateHandle(WXWidget handle); - void DissociateHandle(); - - // does this window have deferred position and/or size? - bool IsSizeDeferred() const; - - // these functions allow to register a global handler for the given Windows - // message: it will be called from MSWWindowProc() of any window which gets - // this event if it's not processed before (i.e. unlike a hook procedure it - // does not override the normal processing) - // - // notice that if you want to process a message for a given window only you - // should override its MSWWindowProc() instead - - // type of the handler: it is called with the message parameters (except - // that the window object is passed instead of window handle) and should - // return true if it handled the message or false if it should be passed to - // DefWindowProc() - typedef bool (*MSWMessageHandler)(wxWindowMSW *win, - WXUINT nMsg, - WXWPARAM wParam, - WXLPARAM lParam); - - // install a handler, shouldn't be called more than one for the same message - static bool MSWRegisterMessageHandler(int msg, MSWMessageHandler handler); - - // unregister a previously registered handler - static void MSWUnregisterMessageHandler(int msg, MSWMessageHandler handler); - - - // implementation from now on - // ========================== - - // event handlers - // -------------- - - void OnPaint(wxPaintEvent& event); - -public: - // Windows subclassing - void SubclassWin(WXHWND hWnd); - void UnsubclassWin(); - - WXFARPROC MSWGetOldWndProc() const { return m_oldWndProc; } - void MSWSetOldWndProc(WXFARPROC proc) { m_oldWndProc = proc; } - - // return true if the window is of a standard (i.e. not wxWidgets') class - // - // to understand why does it work, look at SubclassWin() code and comments - bool IsOfStandardClass() const { return m_oldWndProc != NULL; } - - wxWindow *FindItem(long id, WXHWND hWnd = NULL) const; - wxWindow *FindItemByHWND(WXHWND hWnd, bool controlOnly = false) const; - - // MSW only: true if this control is part of the main control - virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return false; } - -#if wxUSE_TOOLTIPS - // MSW only: true if this window or any of its children have a tooltip - virtual bool HasToolTips() const { return GetToolTip() != NULL; } -#endif // wxUSE_TOOLTIPS - - // translate wxWidgets style flags for this control into the Windows style - // and optional extended style for the corresponding native control - // - // this is the function that should be overridden in the derived classes, - // but you will mostly use MSWGetCreateWindowFlags() below - virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const ; - - // get the MSW window flags corresponding to wxWidgets ones - // - // the functions returns the flags (WS_XXX) directly and puts the ext - // (WS_EX_XXX) flags into the provided pointer if not NULL - WXDWORD MSWGetCreateWindowFlags(WXDWORD *exflags = NULL) const - { return MSWGetStyle(GetWindowStyle(), exflags); } - - // update the real underlying window style flags to correspond to the - // current wxWindow object style (safe to call even if window isn't fully - // created yet) - void MSWUpdateStyle(long flagsOld, long exflagsOld); - - // get the HWND to be used as parent of this window with CreateWindow() - virtual WXHWND MSWGetParent() const; - - // get the Win32 window class name used by all wxWindow objects by default - static const wxChar *MSWGetRegisteredClassName(); - - // creates the window of specified Windows class with given style, extended - // style, title and geometry (default values - // - // returns true if the window has been created, false if creation failed - bool MSWCreate(const wxChar *wclass, - const wxChar *title = NULL, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - WXDWORD style = 0, - WXDWORD exendedStyle = 0); - - virtual bool MSWCommand(WXUINT param, WXWORD id); - -#ifndef __WXUNIVERSAL__ - // Create an appropriate wxWindow from a HWND - virtual wxWindow* CreateWindowFromHWND(wxWindow* parent, WXHWND hWnd); - - // Make sure the window style reflects the HWND style (roughly) - virtual void AdoptAttributesFromHWND(); -#endif // __WXUNIVERSAL__ - - // Setup background and foreground colours correctly - virtual void SetupColours(); - - // ------------------------------------------------------------------------ - // helpers for message handlers: these perform the same function as the - // message crackers from <windowsx.h> - they unpack WPARAM and LPARAM into - // the correct parameters - // ------------------------------------------------------------------------ - - void UnpackCommand(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *id, WXHWND *hwnd, WXWORD *cmd); - void UnpackActivate(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *state, WXWORD *minimized, WXHWND *hwnd); - void UnpackScroll(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *code, WXWORD *pos, WXHWND *hwnd); - void UnpackCtlColor(WXWPARAM wParam, WXLPARAM lParam, - WXHDC *hdc, WXHWND *hwnd); - void UnpackMenuSelect(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *item, WXWORD *flags, WXHMENU *hmenu); - - // ------------------------------------------------------------------------ - // internal handlers for MSW messages: all handlers return a boolean value: - // true means that the handler processed the event and false that it didn't - // ------------------------------------------------------------------------ - - // there are several cases where we have virtual functions for Windows - // message processing: this is because these messages often require to be - // processed in a different manner in the derived classes. For all other - // messages, however, we do *not* have corresponding MSWOnXXX() function - // and if the derived class wants to process them, it should override - // MSWWindowProc() directly. - - // scroll event (both horizontal and vertical) - virtual bool MSWOnScroll(int orientation, WXWORD nSBCode, - WXWORD pos, WXHWND control); - - // child control notifications - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - - // owner-drawn controls need to process these messages - virtual bool MSWOnDrawItem(int id, WXDRAWITEMSTRUCT *item); - virtual bool MSWOnMeasureItem(int id, WXMEASUREITEMSTRUCT *item); - - // the rest are not virtual - bool HandleCreate(WXLPCREATESTRUCT cs, bool *mayCreate); - bool HandleInitDialog(WXHWND hWndFocus); - bool HandleDestroy(); - - bool HandlePaint(); - bool HandlePrintClient(WXHDC hDC); - bool HandleEraseBkgnd(WXHDC hDC); - - bool HandleMinimize(); - bool HandleMaximize(); - bool HandleSize(int x, int y, WXUINT flag); - bool HandleSizing(wxRect& rect); - bool HandleGetMinMaxInfo(void *mmInfo); - bool HandleEnterSizeMove(); - bool HandleExitSizeMove(); - - bool HandleShow(bool show, int status); - bool HandleActivate(int flag, bool minimized, WXHWND activate); - - bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control); - - bool HandleCtlColor(WXHBRUSH *hBrush, WXHDC hdc, WXHWND hWnd); - - bool HandlePaletteChanged(WXHWND hWndPalChange); - bool HandleQueryNewPalette(); - bool HandleSysColorChange(); - bool HandleDisplayChange(); - bool HandleCaptureChanged(WXHWND gainedCapture); - virtual bool HandleSettingChange(WXWPARAM wParam, WXLPARAM lParam); - - bool HandleQueryEndSession(long logOff, bool *mayEnd); - bool HandleEndSession(bool endSession, long logOff); - - bool HandleSetFocus(WXHWND wnd); - bool HandleKillFocus(WXHWND wnd); - - bool HandleDropFiles(WXWPARAM wParam); - - bool HandleMouseEvent(WXUINT msg, int x, int y, WXUINT flags); - bool HandleMouseMove(int x, int y, WXUINT flags); - bool HandleMouseWheel(wxMouseWheelAxis axis, - WXWPARAM wParam, WXLPARAM lParam); - - bool HandleChar(WXWPARAM wParam, WXLPARAM lParam); - bool HandleKeyDown(WXWPARAM wParam, WXLPARAM lParam); - bool HandleKeyUp(WXWPARAM wParam, WXLPARAM lParam); -#if wxUSE_HOTKEY - bool HandleHotKey(WXWPARAM wParam, WXLPARAM lParam); -#endif - int HandleMenuChar(int chAccel, WXLPARAM lParam); - // Create and process a clipboard event specified by type. - bool HandleClipboardEvent( WXUINT nMsg ); - - bool HandleQueryDragIcon(WXHICON *hIcon); - - bool HandleSetCursor(WXHWND hWnd, short nHitTest, int mouseMsg); - - bool HandlePower(WXWPARAM wParam, WXLPARAM lParam, bool *vetoed); - - - // The main body of common window proc for all wxWindow objects. It tries - // to handle the given message and returns true if it was handled (the - // appropriate return value is then put in result, which must be non-NULL) - // or false if it wasn't. - // - // This function should be overridden in any new code instead of - // MSWWindowProc() even if currently most of the code overrides - // MSWWindowProc() as it had been written before this function was added. - virtual bool MSWHandleMessage(WXLRESULT *result, - WXUINT message, - WXWPARAM wParam, - WXLPARAM lParam); - - // Common Window procedure for all wxWindow objects: forwards to - // MSWHandleMessage() and MSWDefWindowProc() if the message wasn't handled. - virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - - // Calls an appropriate default window procedure - virtual WXLRESULT MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - - // message processing helpers - - // return false if the message shouldn't be translated/preprocessed but - // dispatched normally - virtual bool MSWShouldPreProcessMessage(WXMSG* pMsg); - - // return true if the message was preprocessed and shouldn't be dispatched - virtual bool MSWProcessMessage(WXMSG* pMsg); - - // return true if the message was translated and shouldn't be dispatched - virtual bool MSWTranslateMessage(WXMSG* pMsg); - - // called when the window is about to be destroyed - virtual void MSWDestroyWindow(); - - - // Functions dealing with painting the window background. The derived - // classes should normally only need to reimplement MSWGetBgBrush() if they - // need to use a non-solid brush for erasing their background. This - // function is called by MSWGetBgBrushForChild() which only exists for the - // weird wxToolBar case and MSWGetBgBrushForChild() itself is used by - // MSWGetBgBrush() to actually find the right brush to use. - - // Adjust the origin for the brush returned by MSWGetBgBrushForChild(). - // - // This needs to be overridden for scrolled windows to ensure that the - // scrolling of their associated DC is taken into account. - // - // Both parameters must be non-NULL. - virtual void MSWAdjustBrushOrg(int* WXUNUSED(xOrg), - int* WXUNUSED(yOrg)) const - { - } - - // The brush returned from here must remain valid at least until the next - // event loop iteration. Returning 0, as is done by default, indicates - // there is no custom background brush. - virtual WXHBRUSH MSWGetCustomBgBrush() { return 0; } - - // this function should return the brush to paint the children controls - // background or 0 if this window doesn't impose any particular background - // on its children - // - // the hDC parameter is the DC background will be drawn on, it can be used - // to call SetBrushOrgEx() on it if the returned brush is a bitmap one - // - // child parameter is never NULL, it can be this window itself or one of - // its (grand)children - // - // the base class version returns a solid brush if we have a non default - // background colour or 0 otherwise - virtual WXHBRUSH MSWGetBgBrushForChild(WXHDC hDC, wxWindowMSW *child); - - // return the background brush to use for painting the given window by - // querying the parent windows via MSWGetBgBrushForChild() recursively - WXHBRUSH MSWGetBgBrush(WXHDC hDC); - - enum MSWThemeColour - { - ThemeColourText = 0, - ThemeColourBackground, - ThemeColourBorder - }; - - // returns a specific theme colour, or if that is not possible then - // wxSystemSettings::GetColour(fallback) - wxColour MSWGetThemeColour(const wchar_t *themeName, - int themePart, - int themeState, - MSWThemeColour themeColour, - wxSystemColour fallback) const; - - // gives the parent the possibility to draw its children background, e.g. - // this is used by wxNotebook to do it using DrawThemeBackground() - // - // return true if background was drawn, false otherwise - virtual bool MSWPrintChild(WXHDC WXUNUSED(hDC), wxWindow * WXUNUSED(child)) - { - return false; - } - - // some controls (e.g. wxListBox) need to set the return value themselves - // - // return true to let parent handle it if we don't, false otherwise - virtual bool MSWShouldPropagatePrintChild() - { - return true; - } - - // This should be overridden to return true for the controls which have - // themed background that should through their children. Currently only - // wxNotebook uses this. - // - // The base class version already returns true if we have a solid - // background colour that should be propagated to our children. - virtual bool MSWHasInheritableBackground() const - { - return InheritsBackgroundColour(); - } - -#if !defined(__WXUNIVERSAL__) - #define wxHAS_MSW_BACKGROUND_ERASE_HOOK -#endif - -#ifdef wxHAS_MSW_BACKGROUND_ERASE_HOOK - // allows the child to hook into its parent WM_ERASEBKGND processing: call - // MSWSetEraseBgHook() with a non-NULL window to make parent call - // MSWEraseBgHook() on this window (don't forget to reset it to NULL - // afterwards) - // - // this hack is used by wxToolBar, see comments there - void MSWSetEraseBgHook(wxWindow *child); - - // return true if WM_ERASEBKGND is currently hooked - bool MSWHasEraseBgHook() const; - - // called when the window on which MSWSetEraseBgHook() had been called - // receives WM_ERASEBKGND - virtual bool MSWEraseBgHook(WXHDC WXUNUSED(hDC)) { return false; } -#endif // wxHAS_MSW_BACKGROUND_ERASE_HOOK - - // common part of Show/HideWithEffect() - bool MSWShowWithEffect(bool show, - wxShowEffect effect, - unsigned timeout); - - // Responds to colour changes: passes event on to children. - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // initialize various fields of wxMouseEvent (common part of MSWOnMouseXXX) - void InitMouseEvent(wxMouseEvent& event, int x, int y, WXUINT flags); - - // check if mouse is in the window - bool IsMouseInWindow() const; - - // check if a native double-buffering applies for this window - virtual bool IsDoubleBuffered() const; - - void SetDoubleBuffered(bool on); - - // synthesize a wxEVT_LEAVE_WINDOW event and set m_mouseInWindow to false - void GenerateMouseLeave(); - - // virtual function for implementing internal idle - // behaviour - virtual void OnInternalIdle(); - -#if wxUSE_MENUS && !defined(__WXUNIVERSAL__) - virtual bool HandleMenuSelect(WXWORD nItem, WXWORD nFlags, WXHMENU hMenu); - - // handle WM_(UN)INITMENUPOPUP message to generate wxEVT_MENU_OPEN/CLOSE - bool HandleMenuPopup(wxEventType evtType, WXHMENU hMenu); - - // Command part of HandleMenuPopup() and HandleExitMenuLoop(). - virtual bool DoSendMenuOpenCloseEvent(wxEventType evtType, wxMenu* menu); - - // Find the menu corresponding to the given handle. - virtual wxMenu* MSWFindMenuFromHMENU(WXHMENU hMenu); -#endif // wxUSE_MENUS && !__WXUNIVERSAL__ - - // Return the default button for the TLW containing this window or NULL if - // none. - static wxButton* MSWGetDefaultButtonFor(wxWindow* win); - - // Simulate a click on the given button if it is non-null, enabled and - // shown. - // - // Return true if the button was clicked, false otherwise. - static bool MSWClickButtonIfPossible(wxButton* btn); - -protected: - // this allows you to implement standard control borders without - // repeating the code in different classes that are not derived from - // wxControl - virtual wxBorder GetDefaultBorderForControl() const; - - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const; - - // Translate wxBORDER_THEME (and other border styles if necessary to the value - // that makes most sense for this Windows environment - virtual wxBorder TranslateBorder(wxBorder border) const; - -#if wxUSE_MENUS_NATIVE - virtual bool DoPopupMenu( wxMenu *menu, int x, int y ); -#endif // wxUSE_MENUS_NATIVE - - // the window handle - WXHWND m_hWnd; - - // the old window proc (we subclass all windows) - WXFARPROC m_oldWndProc; - - // additional (MSW specific) flags - bool m_mouseInWindow:1; - bool m_lastKeydownProcessed:1; - - // the size of one page for scrolling - int m_xThumbSize; - int m_yThumbSize; - - // implement the base class pure virtuals - virtual void DoGetTextExtent(const wxString& string, - int *x, int *y, - int *descent = NULL, - int *externalLeading = NULL, - const wxFont *font = NULL) const; - virtual void DoClientToScreen( int *x, int *y ) const; - virtual void DoScreenToClient( int *x, int *y ) const; - virtual void DoGetPosition( int *x, int *y ) const; - virtual void DoGetSize( int *width, int *height ) const; - virtual void DoGetClientSize( int *width, int *height ) const; - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - virtual void DoSetClientSize(int width, int height); - - virtual wxSize DoGetBorderSize() const; - - virtual void DoCaptureMouse(); - virtual void DoReleaseMouse(); - - virtual void DoEnable(bool enable); - - virtual void DoFreeze(); - virtual void DoThaw(); - - // this simply moves/resizes the given HWND which is supposed to be our - // sibling (this is useful for controls which are composite at MSW level - // and for which DoMoveWindow() is not enough) - // - // returns true if the window move was deferred, false if it was moved - // immediately (no error return) - bool DoMoveSibling(WXHWND hwnd, int x, int y, int width, int height); - - // move the window to the specified location and resize it: this is called - // from both DoSetSize() and DoSetClientSize() and would usually just call - // ::MoveWindow() except for composite controls which will want to arrange - // themselves inside the given rectangle - virtual void DoMoveWindow(int x, int y, int width, int height); - -#if wxUSE_TOOLTIPS - virtual void DoSetToolTip( wxToolTip *tip ); - - // process TTN_NEEDTEXT message properly (i.e. fixing the bugs in - // comctl32.dll in our code -- see the function body for more info) - bool HandleTooltipNotify(WXUINT code, - WXLPARAM lParam, - const wxString& ttip); -#endif // wxUSE_TOOLTIPS - - // This is used by CreateKeyEvent() and also for wxEVT_CHAR[_HOOK] event - // creation. Notice that this method doesn't initialize wxKeyEvent - // m_keyCode and m_uniChar fields. - void InitAnyKeyEvent(wxKeyEvent& event, - WXWPARAM wParam, - WXLPARAM lParam) const; - - // Helper functions used by HandleKeyXXX() methods and some derived - // classes, wParam and lParam have the same meaning as in WM_KEY{DOWN,UP}. - // - // NB: evType here must be wxEVT_KEY_{DOWN,UP} as wParam here contains the - // virtual key code, not character! - wxKeyEvent CreateKeyEvent(wxEventType evType, - WXWPARAM wParam, - WXLPARAM lParam = 0) const; - - // Another helper for creating wxKeyEvent for wxEVT_CHAR and related types. - // - // The wParam and lParam here must come from WM_CHAR event parameters, i.e. - // wParam must be a character and not a virtual code. - wxKeyEvent CreateCharEvent(wxEventType evType, - WXWPARAM wParam, - WXLPARAM lParam) const; - - - // default OnEraseBackground() implementation, return true if we did erase - // the background, false otherwise (i.e. the system should erase it) - bool DoEraseBackground(WXHDC hDC); - - // generate WM_CHANGEUISTATE if it's needed for the OS we're running under - // - // action should be one of the UIS_XXX constants - // state should be one or more of the UISF_XXX constants - // if action == UIS_INITIALIZE then it doesn't seem to matter what we use - // for state as the system will decide for us what needs to be set - void MSWUpdateUIState(int action, int state = 0); - - // translate wxWidgets coords into Windows ones suitable to be passed to - // ::CreateWindow(), called from MSWCreate() - virtual void MSWGetCreateWindowCoords(const wxPoint& pos, - const wxSize& size, - int& x, int& y, - int& w, int& h) const; - - bool MSWEnableHWND(WXHWND hWnd, bool enable); - - // Return the pointer to this window or one of its sub-controls if this ID - // and HWND combination belongs to one of them. - // - // This is used by FindItem() and is overridden in wxControl, see there. - virtual wxWindow* MSWFindItem(long WXUNUSED(id), WXHWND WXUNUSED(hWnd)) const - { - return NULL; - } - -private: - // common part of all ctors - void Init(); - - // the (non-virtual) handlers for the events - bool HandleMove(int x, int y); - bool HandleMoving(wxRect& rect); - bool HandleJoystickEvent(WXUINT msg, int x, int y, WXUINT flags); - bool HandleNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - -#ifndef __WXUNIVERSAL__ - // Call ::IsDialogMessage() if it is safe to do it (i.e. if it's not going - // to hang or do something else stupid) with the given message, return true - // if the message was handled by it. - bool MSWSafeIsDialogMessage(WXMSG* msg); -#endif // __WXUNIVERSAL__ - -#if wxUSE_DEFERRED_SIZING -protected: - // this function is called after the window was resized to its new size - virtual void MSWEndDeferWindowPos() - { - m_pendingPosition = wxDefaultPosition; - m_pendingSize = wxDefaultSize; - } - - // current defer window position operation handle (may be NULL) - WXHANDLE m_hDWP; - - // When deferred positioning is done these hold the pending changes, and - // are used for the default values if another size/pos changes is done on - // this window before the group of deferred changes is completed. - wxPoint m_pendingPosition; - wxSize m_pendingSize; -#endif // wxUSE_DEFERRED_SIZING - -private: - wxDECLARE_DYNAMIC_CLASS(wxWindowMSW); - wxDECLARE_NO_COPY_CLASS(wxWindowMSW); - wxDECLARE_EVENT_TABLE(); -}; - -// window creation helper class: before creating a new HWND, instantiate an -// object of this class on stack - this allows to process the messages sent to -// the window even before CreateWindow() returns -class wxWindowCreationHook -{ -public: - wxWindowCreationHook(wxWindowMSW *winBeingCreated); - ~wxWindowCreationHook(); -}; - -#endif // _WX_WINDOW_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/winundef.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/winundef.h deleted file mode 100644 index 8d86f0cc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/winundef.h +++ /dev/null @@ -1,466 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: winundef.h -// Purpose: undefine the common symbols #define'd by <windows.h> -// Author: Vadim Zeitlin -// Modified by: -// Created: 16.05.99 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* THIS SHOULD NOT BE USED since you might include it once e.g. in window.h, - * then again _AFTER_ you've included windows.h, in which case it won't work - * a 2nd time -- JACS -#ifndef _WX_WINUNDEF_H_ -#define _WX_WINUNDEF_H_ - */ - -// ---------------------------------------------------------------------------- -// windows.h #defines the following identifiers which are also used in wxWin so -// we replace these symbols with the corresponding inline functions and -// undefine the macro. -// -// This looks quite ugly here but allows us to write clear (and correct!) code -// elsewhere because the functions, unlike the macros, respect the scope. -// ---------------------------------------------------------------------------- - -// CreateDialog - -#if defined(CreateDialog) - #undef CreateDialog - - inline HWND CreateDialog(HINSTANCE hInstance, - LPCTSTR pTemplate, - HWND hwndParent, - DLGPROC pDlgProc) - { - #ifdef _UNICODE - return CreateDialogW(hInstance, pTemplate, hwndParent, pDlgProc); - #else - return CreateDialogA(hInstance, pTemplate, hwndParent, pDlgProc); - #endif - } -#endif - -// CreateFont - -#ifdef CreateFont - #undef CreateFont - - inline HFONT CreateFont(int height, - int width, - int escapement, - int orientation, - int weight, - DWORD italic, - DWORD underline, - DWORD strikeout, - DWORD charset, - DWORD outprecision, - DWORD clipprecision, - DWORD quality, - DWORD family, - LPCTSTR facename) - { - #ifdef _UNICODE - return CreateFontW(height, width, escapement, orientation, - weight, italic, underline, strikeout, charset, - outprecision, clipprecision, quality, - family, facename); - #else - return CreateFontA(height, width, escapement, orientation, - weight, italic, underline, strikeout, charset, - outprecision, clipprecision, quality, - family, facename); - #endif - } -#endif // CreateFont - -// CreateWindow - -#if defined(CreateWindow) - #undef CreateWindow - - inline HWND CreateWindow(LPCTSTR lpClassName, - LPCTSTR lpWndClass, - DWORD dwStyle, - int x, int y, int w, int h, - HWND hWndParent, - HMENU hMenu, - HINSTANCE hInstance, - LPVOID lpParam) - { - #ifdef _UNICODE - return CreateWindowW(lpClassName, lpWndClass, dwStyle, x, y, w, h, - hWndParent, hMenu, hInstance, lpParam); - #else - return CreateWindowA(lpClassName, lpWndClass, dwStyle, x, y, w, h, - hWndParent, hMenu, hInstance, lpParam); - #endif - } -#endif - -// LoadMenu - -#ifdef LoadMenu - #undef LoadMenu - - inline HMENU LoadMenu(HINSTANCE instance, LPCTSTR name) - { - #ifdef _UNICODE - return LoadMenuW(instance, name); - #else - return LoadMenuA(instance, name); - #endif - } -#endif - -// FindText - -#ifdef FindText - #undef FindText - - inline HWND APIENTRY FindText(LPFINDREPLACE lpfindreplace) - { - #ifdef _UNICODE - return FindTextW(lpfindreplace); - #else - return FindTextA(lpfindreplace); - #endif - } -#endif - -// GetCharWidth - -#ifdef GetCharWidth - #undef GetCharWidth - inline BOOL GetCharWidth(HDC dc, UINT first, UINT last, LPINT buffer) - { - #ifdef _UNICODE - return GetCharWidthW(dc, first, last, buffer); - #else - return GetCharWidthA(dc, first, last, buffer); - #endif - } -#endif - -// FindWindow - -#ifdef FindWindow - #undef FindWindow - #ifdef _UNICODE - inline HWND FindWindow(LPCWSTR classname, LPCWSTR windowname) - { - return FindWindowW(classname, windowname); - } - #else - inline HWND FindWindow(LPCSTR classname, LPCSTR windowname) - { - return FindWindowA(classname, windowname); - } - #endif -#endif - -// PlaySound - -#ifdef PlaySound - #undef PlaySound - #ifdef _UNICODE - inline BOOL PlaySound(LPCWSTR pszSound, HMODULE hMod, DWORD fdwSound) - { - return PlaySoundW(pszSound, hMod, fdwSound); - } - #else - inline BOOL PlaySound(LPCSTR pszSound, HMODULE hMod, DWORD fdwSound) - { - return PlaySoundA(pszSound, hMod, fdwSound); - } - #endif -#endif - -// GetClassName - -#ifdef GetClassName - #undef GetClassName - #ifdef _UNICODE - inline int GetClassName(HWND h, LPWSTR classname, int maxcount) - { - return GetClassNameW(h, classname, maxcount); - } - #else - inline int GetClassName(HWND h, LPSTR classname, int maxcount) - { - return GetClassNameA(h, classname, maxcount); - } - #endif -#endif - -// GetClassInfo - -#ifdef GetClassInfo - #undef GetClassInfo - #ifdef _UNICODE - inline BOOL GetClassInfo(HINSTANCE h, LPCWSTR name, LPWNDCLASSW winclass) - { - return GetClassInfoW(h, name, winclass); - } - #else - inline BOOL GetClassInfo(HINSTANCE h, LPCSTR name, LPWNDCLASSA winclass) - { - return GetClassInfoA(h, name, winclass); - } - #endif -#endif - -// LoadAccelerators - -#ifdef LoadAccelerators - #undef LoadAccelerators - #ifdef _UNICODE - inline HACCEL LoadAccelerators(HINSTANCE h, LPCWSTR name) - { - return LoadAcceleratorsW(h, name); - } - #else - inline HACCEL LoadAccelerators(HINSTANCE h, LPCSTR name) - { - return LoadAcceleratorsA(h, name); - } - #endif -#endif - -// DrawText - -#ifdef DrawText - #undef DrawText - #ifdef _UNICODE - inline int DrawText(HDC h, LPCWSTR str, int count, LPRECT rect, UINT format) - { - return DrawTextW(h, str, count, rect, format); - } - #else - inline int DrawText(HDC h, LPCSTR str, int count, LPRECT rect, UINT format) - { - return DrawTextA(h, str, count, rect, format); - } - #endif -#endif - - -// StartDoc - -#ifdef StartDoc - #undef StartDoc - - // Work around a bug in very old MinGW headers that didn't define DOCINFOW - // and DOCINFOA but only DOCINFO in both ANSI and Unicode. - #if defined( __GNUG__ ) - #if !wxCHECK_W32API_VERSION( 0, 5 ) - #define DOCINFOW DOCINFO - #define DOCINFOA DOCINFO - #endif - #endif - - #ifdef _UNICODE - inline int StartDoc(HDC h, CONST DOCINFOW* info) - { - return StartDocW(h, (DOCINFOW*) info); - } - #else - inline int StartDoc(HDC h, CONST DOCINFOA* info) - { - return StartDocA(h, (DOCINFOA*) info); - } - #endif -#endif - -// GetObject - -#ifdef GetObject - #undef GetObject - inline int GetObject(HGDIOBJ h, int i, LPVOID buffer) - { - #ifdef _UNICODE - return GetObjectW(h, i, buffer); - #else - return GetObjectA(h, i, buffer); - #endif - } -#endif - -// GetMessage - -#ifdef GetMessage - #undef GetMessage - inline int GetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax) - { - #ifdef _UNICODE - return GetMessageW(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax); - #else - return GetMessageA(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax); - #endif - } -#endif - -// LoadIcon -#ifdef LoadIcon - #undef LoadIcon - inline HICON LoadIcon(HINSTANCE hInstance, LPCTSTR lpIconName) - { - #ifdef _UNICODE - return LoadIconW(hInstance, lpIconName); - #else // ANSI - return LoadIconA(hInstance, lpIconName); - #endif // Unicode/ANSI - } -#endif // LoadIcon - -// LoadBitmap -#ifdef LoadBitmap - #undef LoadBitmap - inline HBITMAP LoadBitmap(HINSTANCE hInstance, LPCTSTR lpBitmapName) - { - #ifdef _UNICODE - return LoadBitmapW(hInstance, lpBitmapName); - #else // ANSI - return LoadBitmapA(hInstance, lpBitmapName); - #endif // Unicode/ANSI - } -#endif // LoadBitmap - -// LoadLibrary - -#ifdef LoadLibrary - #undef LoadLibrary - #ifdef _UNICODE - inline HINSTANCE LoadLibrary(LPCWSTR lpLibFileName) - { - return LoadLibraryW(lpLibFileName); - } - #else - inline HINSTANCE LoadLibrary(LPCSTR lpLibFileName) - { - return LoadLibraryA(lpLibFileName); - } - #endif -#endif - -// FindResource -#ifdef FindResource - #undef FindResource - #ifdef _UNICODE - inline HRSRC FindResource(HMODULE hModule, LPCWSTR lpName, LPCWSTR lpType) - { - return FindResourceW(hModule, lpName, lpType); - } - #else - inline HRSRC FindResource(HMODULE hModule, LPCSTR lpName, LPCSTR lpType) - { - return FindResourceA(hModule, lpName, lpType); - } - #endif -#endif - -// IsMaximized - -#ifdef IsMaximized - #undef IsMaximized - inline BOOL IsMaximized(HWND hwnd) - { - return IsZoomed(hwnd); - } -#endif - -// GetFirstChild - -#ifdef GetFirstChild - #undef GetFirstChild - inline HWND GetFirstChild(HWND hwnd) - { - return GetTopWindow(hwnd); - } -#endif - -// GetFirstSibling - -#ifdef GetFirstSibling - #undef GetFirstSibling - inline HWND GetFirstSibling(HWND hwnd) - { - return GetWindow(hwnd,GW_HWNDFIRST); - } -#endif - -// GetLastSibling - -#ifdef GetLastSibling - #undef GetLastSibling - inline HWND GetLastSibling(HWND hwnd) - { - return GetWindow(hwnd,GW_HWNDLAST); - } -#endif - -// GetPrevSibling - -#ifdef GetPrevSibling - #undef GetPrevSibling - inline HWND GetPrevSibling(HWND hwnd) - { - return GetWindow(hwnd,GW_HWNDPREV); - } -#endif - -// GetNextSibling - -#ifdef GetNextSibling - #undef GetNextSibling - inline HWND GetNextSibling(HWND hwnd) - { - return GetWindow(hwnd,GW_HWNDNEXT); - } -#endif - -// For WINE - -#if defined(GetWindowStyle) - #undef GetWindowStyle -#endif - -// For ming and cygwin - -// GetFirstChild -#ifdef GetFirstChild - #undef GetFirstChild - inline HWND GetFirstChild(HWND h) - { - return GetTopWindow(h); - } -#endif - - -// GetNextSibling -#ifdef GetNextSibling - #undef GetNextSibling - inline HWND GetNextSibling(HWND h) - { - return GetWindow(h, GW_HWNDNEXT); - } -#endif - - -#ifdef Yield - #undef Yield -#endif - - -// GetWindowProc -//ifdef GetWindowProc -// #undef GetWindowProc -//endif -//ifdef GetNextChild -// #undef GetNextChild -//endif - -// #endif // _WX_WINUNDEF_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapcctl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapcctl.h deleted file mode 100644 index e19111ad..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapcctl.h +++ /dev/null @@ -1,46 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/wrapcctl.h -// Purpose: Wrapper for the standard <commctrl.h> header -// Author: Vadim Zeitlin -// Modified by: -// Created: 03.08.2003 -// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_WRAPCCTL_H_ -#define _WX_MSW_WRAPCCTL_H_ - -#include "wx/msw/wrapwin.h" - -#include <commctrl.h> - -// define things which might be missing from our commctrl.h -#include "wx/msw/missing.h" - -// Set Unicode format for a common control -inline void wxSetCCUnicodeFormat(HWND hwnd) -{ - ::SendMessage(hwnd, CCM_SETUNICODEFORMAT, wxUSE_UNICODE, 0); -} - -#if wxUSE_GUI -// Return the default font for the common controls -// -// this is implemented in msw/settings.cpp -class wxFont; -extern wxFont wxGetCCDefaultFont(); - -// this is just a wrapper for HDITEM which we can't use in the public header -// because we don't want to include commctrl.h (and hence windows.h) from there -struct wxHDITEM : public HDITEM -{ - wxHDITEM() - { - ::ZeroMemory(this, sizeof(*this)); - } -}; - -#endif // wxUSE_GUI - -#endif // _WX_MSW_WRAPCCTL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapcdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapcdlg.h deleted file mode 100644 index 038a9bc6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapcdlg.h +++ /dev/null @@ -1,27 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/wrapcdlg.h -// Purpose: Wrapper for the standard <commdlg.h> header -// Author: Wlodzimierz ABX Skiba -// Modified by: -// Created: 22.03.2005 -// Copyright: (c) 2005 Wlodzimierz Skiba -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_WRAPCDLG_H_ -#define _WX_MSW_WRAPCDLG_H_ - -#include "wx/defs.h" - -#include "wx/msw/wrapwin.h" -#include "wx/msw/private.h" -#include "wx/msw/missing.h" - -#if wxUSE_COMMON_DIALOGS - #include <commdlg.h> -#endif - -#include "wx/msw/winundef.h" - -#endif // _WX_MSW_WRAPCDLG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapgdip.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapgdip.h deleted file mode 100644 index 7b12ea51..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapgdip.h +++ /dev/null @@ -1,44 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/wrapgdip.h -// Purpose: wrapper around <gdiplus.h> header -// Author: Vadim Zeitlin -// Created: 2007-03-15 -// Copyright: (c) 2007 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_WRAPGDIP_H_ -#define _WX_MSW_WRAPGDIP_H_ - -#include "wx/msw/wrapwin.h" - -// these macros must be defined before gdiplus.h is included but we explicitly -// prevent windows.h from defining them in wx/msw/wrapwin.h as they conflict -// with standard functions of the same name elsewhere, so we have to pay for it -// by manually redefining them ourselves here -#ifndef max - #define max(a,b) (((a) > (b)) ? (a) : (b)) -#endif - -#ifndef min - #define min(a,b) (((a) < (b)) ? (a) : (b)) -#endif - -// There are many clashes between the names of the member fields and parameters -// in the standard gdiplus.h header and each of them results in C4458 with -// VC14, so disable this warning for this file as there is no other way to -// avoid it. -#ifdef __VISUALC__ - #pragma warning(push) - #pragma warning(disable:4458) // declaration of 'xxx' hides class member -#endif - -#include <gdiplus.h> -using namespace Gdiplus; - -#ifdef __VISUALC__ - #pragma warning(pop) -#endif - -#endif // _WX_MSW_WRAPGDIP_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapshl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapshl.h deleted file mode 100644 index aa32ca99..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapshl.h +++ /dev/null @@ -1,87 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/wrapshl.h -// Purpose: wrapper class for stuff from shell32.dll -// Author: Vadim Zeitlin -// Modified by: -// Created: 2004-10-19 -// Copyright: (c) 2004 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_WRAPSHL_H_ -#define _WX_MSW_WRAPSHL_H_ - -#include "wx/msw/wrapwin.h" - -#include <shlobj.h> - -#include "wx/msw/winundef.h" - -#include "wx/log.h" - -// ---------------------------------------------------------------------------- -// wxItemIdList implements RAII on top of ITEMIDLIST -// ---------------------------------------------------------------------------- - -class wxItemIdList -{ -public: - // ctor takes ownership of the item and will free it - wxItemIdList(LPITEMIDLIST pidl) - { - m_pidl = pidl; - } - - static void Free(LPITEMIDLIST pidl) - { - if ( pidl ) - { - LPMALLOC pMalloc; - SHGetMalloc(&pMalloc); - if ( pMalloc ) - { - pMalloc->Free(pidl); - pMalloc->Release(); - } - else - { - wxLogLastError(wxT("SHGetMalloc")); - } - } - } - - ~wxItemIdList() - { - Free(m_pidl); - } - - // implicit conversion to LPITEMIDLIST - operator LPITEMIDLIST() const { return m_pidl; } - - // get the corresponding path, returns empty string on error - wxString GetPath() const - { - wxString path; - if ( !SHGetPathFromIDList(m_pidl, wxStringBuffer(path, MAX_PATH)) ) - { - wxLogLastError(wxT("SHGetPathFromIDList")); - } - - return path; - } - -private: - LPITEMIDLIST m_pidl; - - wxDECLARE_NO_COPY_CLASS(wxItemIdList); -}; - -// enable autocompleting filenames in the text control with given HWND -// -// this only works on systems with shlwapi.dll 5.0 or later -// -// implemented in src/msw/utilsgui.cpp -extern bool wxEnableFileNameAutoComplete(HWND hwnd); - -#endif // _WX_MSW_WRAPSHL_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapwin.h deleted file mode 100644 index eb942260..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wrapwin.h +++ /dev/null @@ -1,57 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/wrapwin.h -// Purpose: Wrapper around <windows.h>, to be included instead of it -// Author: Vaclav Slavik -// Created: 2003/07/22 -// Copyright: (c) 2003 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WRAPWIN_H_ -#define _WX_WRAPWIN_H_ - -#include "wx/platform.h" - -// strict type checking to detect conversion from HFOO to HBAR at compile-time -#ifndef STRICT - #define STRICT 1 -#endif - -// this macro tells windows.h to not define min() and max() as macros: we need -// this as otherwise they conflict with standard C++ functions -#ifndef NOMINMAX - #define NOMINMAX -#endif // NOMINMAX - - -// before including windows.h, define version macros at (currently) maximal -// values because we do all our checks at run-time anyhow -#ifndef WINVER - #define WINVER 0x0603 -#endif - -// define _WIN32_WINNT and _WIN32_IE to the highest possible values because we -// always check for the version of installed DLLs at runtime anyway (see -// wxGetWinVersion() and wxApp::GetComCtl32Version()) unless the user really -// doesn't want to use APIs only available on later OS versions and had defined -// them to (presumably lower) values -#ifndef _WIN32_WINNT - #define _WIN32_WINNT 0x0603 -#endif - -#ifndef _WIN32_IE - #define _WIN32_IE 0x0700 -#endif - -// For IPv6 support, we must include winsock2.h before winsock.h, and -// windows.h include winsock.h so do it before including it -#if wxUSE_IPV6 - #include <winsock2.h> -#endif - -#include <windows.h> - -// #undef the macros defined in winsows.h which conflict with code elsewhere -#include "wx/msw/winundef.h" - -#endif // _WX_WRAPWIN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wx.manifest b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wx.manifest deleted file mode 100644 index ecce6f5c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wx.manifest +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> -<assemblyIdentity - version="0.64.1.0" - processorArchitecture="x86" - name="Controls" - type="win32" -/> -<description>wxWindows application</description> -<dependency> - <dependentAssembly> - <assemblyIdentity - type="win32" - name="Microsoft.Windows.Common-Controls" - version="6.0.0.0" - processorArchitecture="X86" - publicKeyToken="6595b64144ccf1df" - language="*" - /> - </dependentAssembly> -</dependency> -</assembly> diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wx.rc b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wx.rc deleted file mode 100644 index 84c6be07..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/msw/wx.rc +++ /dev/null @@ -1,126 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// File: wx.rc -// Purpose: wxWindows resource definitions. ALWAYS include -// this in your application resource file. -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#include <windows.h> - -#include "wx/msw/rcdefs.h" - -////////////////////////////////////////////////////////////////////////////// -// -// This is the MDI Window menu -// - -wxWindowMenu MENU DISCARDABLE -BEGIN - POPUP "&Window" - BEGIN - MENUITEM "&Cascade", 4002 - MENUITEM "Tile &Horizontally", 4001 - MENUITEM "Tile &Vertically", 4005 - MENUITEM "", -1 - MENUITEM "&Arrange Icons", 4003 - MENUITEM "&Next", 4004 - END -END - -////////////////////////////////////////////////////////////////////////////// -// -// Standard wxWindows Cursors -// - -WXCURSOR_HAND CURSOR DISCARDABLE "wx/msw/hand.cur" -WXCURSOR_BULLSEYE CURSOR DISCARDABLE "wx/msw/bullseye.cur" -WXCURSOR_PENCIL CURSOR DISCARDABLE "wx/msw/pencil.cur" -WXCURSOR_MAGNIFIER CURSOR DISCARDABLE "wx/msw/magnif1.cur" -WXCURSOR_ROLLER CURSOR DISCARDABLE "wx/msw/roller.cur" -WXCURSOR_PBRUSH CURSOR DISCARDABLE "wx/msw/pbrush.cur" -WXCURSOR_PLEFT CURSOR DISCARDABLE "wx/msw/pntleft.cur" -WXCURSOR_PRIGHT CURSOR DISCARDABLE "wx/msw/pntright.cur" -WXCURSOR_BLANK CURSOR DISCARDABLE "wx/msw/blank.cur" -WXCURSOR_CROSS CURSOR DISCARDABLE "wx/msw/cross.cur" - - -////////////////////////////////////////////////////////////////////////////// -// -// Default Icons -// - -// First wx icon in alphabetical order. -// -// Notice that it also may be used by Explorer as the application icon if the -// main program doesn't define any icons preceding this one in alphabetical -// order (i.e. any icons defined by it start with "wy", "x", "y" or "z") in -// 16*16 or 32*32 sizes. -wxICON_AAA ICON "wx/msw/std.ico" - -//wxDEFAULT_FRAME ICON "wx/msw/std.ico" -//wxDEFAULT_MDIPARENTFRAME ICON "wx/msw/mdi.ico" -//wxDEFAULT_MDICHILDFRAME ICON "wx/msw/child.ico" - -// Standard small icons -wxICON_SMALL_CLOSED_FOLDER ICON "wx/msw/folder1.ico" -wxICON_SMALL_OPEN_FOLDER ICON "wx/msw/folder2.ico" -wxICON_SMALL_FILE ICON "wx/msw/file1.ico" -wxICON_SMALL_COMPUTER ICON "wx/msw/computer.ico" -wxICON_SMALL_DRIVE ICON "wx/msw/drive.ico" -wxICON_SMALL_CDROM ICON "wx/msw/cdrom.ico" -wxICON_SMALL_FLOPPY ICON "wx/msw/floppy.ico" -wxICON_SMALL_REMOVEABLE ICON "wx/msw/removble.ico" - -////////////////////////////////////////////////////////////////////////////// -// -// Bitmaps -// - -// For wxContextHelpButton -csquery BITMAP "wx/msw/csquery.bmp" - -// For obtaining the RGB values of standard colours -wxBITMAP_STD_COLOURS BITMAP "wx/msw/colours.bmp" - -////////////////////////////////////////////////////////////////////////////// -// -// Include manifest file for common controls library v6 required to use themes. -// -// Predefining wxUSE_NO_MANIFEST as 1 always disables the use of the manifest. -// Otherwise we include it only if wxUSE_RC_MANIFEST is defined as 1. -// - -#if !defined(wxUSE_NO_MANIFEST) || (wxUSE_NO_MANIFEST == 0) - -#if defined(wxUSE_RC_MANIFEST) && wxUSE_RC_MANIFEST - -// see "about isolated applications" topic in MSDN -#ifdef ISOLATION_AWARE_ENABLED -#define wxMANIFEST_ID 2 -#else -#define wxMANIFEST_ID 1 -#endif - -#if defined(WX_CPU_AMD64) -wxMANIFEST_ID 24 "wx/msw/amd64.manifest" -#elif defined(WX_CPU_IA64) -wxMANIFEST_ID 24 "wx/msw/ia64.manifest" -#elif defined(WX_CPU_X86) -wxMANIFEST_ID 24 "wx/msw/wx.manifest" -#else -// Notice that if the manifest is included, WX_CPU_XXX constant corresponding -// to the architecture we're compiling for must be defined. This can be done -// either manually in your make/project file or by configuring the resource -// compiler paths to search in $(WXWIN)/lib/$(COMPILER_PREFIX)_lib/mswu[d] -// directory for its include files, as wx/msw/rcdefs.h file in this directory -// is generated during wxWidgets build and contains the correct definition. -#error "One of WX_CPU_XXX constants must be defined. See comment above." -#endif - -#endif // wxUSE_RC_MANIFEST - -#endif // !defined(wxUSE_NO_MANIFEST) || (wxUSE_NO_MANIFEST == 0) diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/nativewin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/nativewin.h deleted file mode 100644 index b2ebad06..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/nativewin.h +++ /dev/null @@ -1,251 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/nativewin.h -// Purpose: classes allowing to wrap a native window handle -// Author: Vadim Zeitlin -// Created: 2008-03-05 -// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_NATIVEWIN_H_ -#define _WX_NATIVEWIN_H_ - -#include "wx/toplevel.h" - -// These symbols can be tested in the user code to see if the current wx port -// has support for creating wxNativeContainerWindow and wxNativeWindow from -// native windows. -// -// Be optimistic by default, we undefine them below if necessary. -#define wxHAS_NATIVE_CONTAINER_WINDOW -#define wxHAS_NATIVE_WINDOW - -// we define the following typedefs for each of the platform supporting native -// windows wrapping: -// -// - wxNativeContainerWindowHandle is the toolkit-level handle of the native -// window, i.e. HWND/GdkWindow*/NSWindow -// -// - wxNativeContainerWindowId is the lowest level identifier of the native -// window, i.e. HWND/GdkNativeWindow/NSWindow (so it's the same as above for -// all platforms except GTK where we also can work with Window/XID) -// -// - wxNativeWindowHandle for child windows, i.e. HWND/GtkWidget*/NSControl -#if defined(__WXMSW__) - #include "wx/msw/wrapwin.h" - - typedef HWND wxNativeContainerWindowId; - typedef HWND wxNativeContainerWindowHandle; - typedef HWND wxNativeWindowHandle; -#elif defined(__WXGTK__) - #include <gtk/gtk.h> - - // GdkNativeWindow is guint32 under GDK/X11 and gpointer under GDK/WIN32 - #ifdef __UNIX__ - typedef unsigned long wxNativeContainerWindowId; - #else - typedef void *wxNativeContainerWindowId; - #endif - typedef GdkWindow *wxNativeContainerWindowHandle; - typedef GtkWidget *wxNativeWindowHandle; -#elif defined(__WXOSX_COCOA__) - typedef NSView *wxNativeWindowHandle; - - // no support for using native TLWs yet - #undef wxHAS_NATIVE_CONTAINER_WINDOW -#else - // no support for using native windows under this platform yet - #undef wxHAS_NATIVE_CONTAINER_WINDOW - #undef wxHAS_NATIVE_WINDOW -#endif - -#ifdef wxHAS_NATIVE_WINDOW - -// ---------------------------------------------------------------------------- -// wxNativeWindow: for using native windows inside wxWidgets windows -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxNativeWindow : public wxWindow -{ -public: - // Default ctor, Create() must be called later to really create the window. - wxNativeWindow() - { - Init(); - } - - // Create a window from an existing native window handle. - // - // Notice that this ctor doesn't take the usual pos and size parameters, - // they're taken from the window handle itself. - // - // Use GetHandle() to check if the creation was successful, it will return - // 0 if the handle was invalid. - wxNativeWindow(wxWindow* parent, wxWindowID winid, wxNativeWindowHandle handle) - { - Init(); - - Create(parent, winid, handle); - } - - // Same as non-default ctor, but with a return code. - bool Create(wxWindow* parent, wxWindowID winid, wxNativeWindowHandle handle); - - // By default the native window with which this wxWindow is associated is - // owned by the user code and needs to be destroyed by it in a platform - // specific way, however this function can be called to let wxNativeWindow - // dtor take care of destroying the native window instead of having to do - // it from the user code. - void Disown() - { - wxCHECK_RET( m_ownedByUser, wxS("Can't disown more than once") ); - - m_ownedByUser = false; - - DoDisown(); - } - -#ifdef __WXMSW__ - // Prevent the native window, not owned by us, from being destroyed by the - // base class dtor, unless Disown() had been called. - virtual ~wxNativeWindow(); -#endif // __WXMSW__ - -private: - void Init() - { - m_ownedByUser = true; - } - - // This is implemented in platform-specific code. - void DoDisown(); - - // If the native widget owned by the user code. - bool m_ownedByUser; - - wxDECLARE_NO_COPY_CLASS(wxNativeWindow); -}; - -#endif // wxHAS_NATIVE_WINDOW - -#ifdef wxHAS_NATIVE_CONTAINER_WINDOW - -// ---------------------------------------------------------------------------- -// wxNativeContainerWindow: can be used for creating other wxWindows inside it -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxNativeContainerWindow : public wxTopLevelWindow -{ -public: - // default ctor, call Create() later - wxNativeContainerWindow() { } - - // create a window from an existing native window handle - // - // use GetHandle() to check if the creation was successful, it will return - // 0 if the handle was invalid - wxNativeContainerWindow(wxNativeContainerWindowHandle handle) - { - Create(handle); - } - - // same as ctor above but with a return code - bool Create(wxNativeContainerWindowHandle handle); - -#if defined(__WXGTK__) - // this is a convenient ctor for wxGTK applications which can also create - // the objects of this class from the really native window handles and not - // only the GdkWindow objects - // - // wxNativeContainerWindowId is Window (i.e. an XID, i.e. an int) under X11 - // (when GDK_WINDOWING_X11 is defined) or HWND under Win32 - wxNativeContainerWindow(wxNativeContainerWindowId winid) { Create(winid); } - - bool Create(wxNativeContainerWindowId winid); -#endif // wxGTK - - // unlike for the normal windows, dtor will not destroy the native window - // as it normally doesn't belong to us - virtual ~wxNativeContainerWindow(); - - - // provide (trivial) implementation of the base class pure virtuals - virtual void SetTitle(const wxString& WXUNUSED(title)) wxOVERRIDE - { - wxFAIL_MSG( "not implemented for native windows" ); - } - - virtual wxString GetTitle() const wxOVERRIDE - { - wxFAIL_MSG( "not implemented for native windows" ); - - return wxString(); - } - - virtual void Maximize(bool WXUNUSED(maximize) = true) wxOVERRIDE - { - wxFAIL_MSG( "not implemented for native windows" ); - } - - virtual bool IsMaximized() const wxOVERRIDE - { - wxFAIL_MSG( "not implemented for native windows" ); - - return false; - } - - virtual void Iconize(bool WXUNUSED(iconize) = true) wxOVERRIDE - { - wxFAIL_MSG( "not implemented for native windows" ); - } - - virtual bool IsIconized() const wxOVERRIDE - { - // this is called by wxGTK implementation so don't assert - return false; - } - - virtual void Restore() wxOVERRIDE - { - wxFAIL_MSG( "not implemented for native windows" ); - } - - virtual bool ShowFullScreen(bool WXUNUSED(show), - long WXUNUSED(style) = wxFULLSCREEN_ALL) wxOVERRIDE - { - wxFAIL_MSG( "not implemented for native windows" ); - - return false; - } - - virtual bool IsFullScreen() const wxOVERRIDE - { - wxFAIL_MSG( "not implemented for native windows" ); - - return false; - } - -#ifdef __WXMSW__ - virtual bool IsShown() const wxOVERRIDE; -#endif // __WXMSW__ - - // this is an implementation detail: called when the native window is - // destroyed by an outside agency; deletes the C++ object too but can in - // principle be overridden to something else (knowing that the window - // handle of this object and all of its children is invalid any more) - virtual void OnNativeDestroyed(); - -protected: -#ifdef __WXMSW__ - virtual WXLRESULT - MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); -#endif // __WXMSW__ - -private: - wxDECLARE_NO_COPY_CLASS(wxNativeContainerWindow); -}; - -#endif // wxHAS_NATIVE_CONTAINER_WINDOW - -#endif // _WX_NATIVEWIN_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/nonownedwnd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/nonownedwnd.h deleted file mode 100644 index 9beb00da..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/nonownedwnd.h +++ /dev/null @@ -1,113 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/nonownedwnd.h -// Purpose: declares wxNonTopLevelWindow class -// Author: Vaclav Slavik -// Modified by: -// Created: 2006-12-24 -// Copyright: (c) 2006 TT-Solutions -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_NONOWNEDWND_H_ -#define _WX_NONOWNEDWND_H_ - -#include "wx/window.h" - -// Styles that can be used with any wxNonOwnedWindow: -#define wxFRAME_SHAPED 0x0010 // Create a window that is able to be shaped - -class WXDLLIMPEXP_FWD_CORE wxGraphicsPath; - -// ---------------------------------------------------------------------------- -// wxNonOwnedWindow: a window that is not a child window of another one. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxNonOwnedWindowBase : public wxWindow -{ -public: - // Set the shape of the window to the given region. - // Returns true if the platform supports this feature (and the - // operation is successful.) - bool SetShape(const wxRegion& region) - { - // This style is in fact only needed by wxOSX/Carbon so once we don't - // use this port any more, we could get rid of this requirement, but - // for now you must specify wxFRAME_SHAPED for SetShape() to work on - // all platforms. - wxCHECK_MSG - ( - HasFlag(wxFRAME_SHAPED), false, - wxS("Shaped windows must be created with the wxFRAME_SHAPED style.") - ); - - return region.IsEmpty() ? DoClearShape() : DoSetRegionShape(region); - } - -#if wxUSE_GRAPHICS_CONTEXT - // Set the shape using the specified path. - bool SetShape(const wxGraphicsPath& path) - { - wxCHECK_MSG - ( - HasFlag(wxFRAME_SHAPED), false, - wxS("Shaped windows must be created with the wxFRAME_SHAPED style.") - ); - - return DoSetPathShape(path); - } -#endif // wxUSE_GRAPHICS_CONTEXT - - - // Overridden base class methods. - // ------------------------------ - - virtual void AdjustForParentClientOrigin(int& WXUNUSED(x), int& WXUNUSED(y), - int WXUNUSED(sizeFlags) = 0) const wxOVERRIDE - { - // Non owned windows positions don't need to be adjusted for parent - // client area origin so simply do nothing here. - } - - virtual void InheritAttributes() wxOVERRIDE - { - // Non owned windows don't inherit attributes from their parent window - // (if the parent frame is red, it doesn't mean that all dialogs shown - // by it should be red as well), so don't do anything here neither. - } - -protected: - virtual bool DoClearShape() - { - return false; - } - - virtual bool DoSetRegionShape(const wxRegion& WXUNUSED(region)) - { - return false; - } - -#if wxUSE_GRAPHICS_CONTEXT - virtual bool DoSetPathShape(const wxGraphicsPath& WXUNUSED(path)) - { - return false; - } -#endif // wxUSE_GRAPHICS_CONTEXT -}; - -#if defined(__WXDFB__) - #include "wx/dfb/nonownedwnd.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/nonownedwnd.h" -#elif defined(__WXMAC__) - #include "wx/osx/nonownedwnd.h" -#elif defined(__WXMSW__) - #include "wx/msw/nonownedwnd.h" -#else - // No special class needed in other ports, they can derive both wxTLW and - // wxPopupWindow directly from wxWindow and don't implement SetShape(). - class wxNonOwnedWindow : public wxNonOwnedWindowBase - { - }; -#endif - -#endif // _WX_NONOWNEDWND_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/notebook.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/notebook.h deleted file mode 100644 index 2d5de605..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/notebook.h +++ /dev/null @@ -1,207 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/notebook.h -// Purpose: wxNotebook interface -// Author: Vadim Zeitlin -// Modified by: -// Created: 01.02.01 -// Copyright: (c) 1996-2000 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_NOTEBOOK_H_BASE_ -#define _WX_NOTEBOOK_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_NOTEBOOK - -#include "wx/bookctrl.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// wxNotebook hit results, use wxBK_HITTEST so other book controls can share them -// if wxUSE_NOTEBOOK is disabled -enum -{ - wxNB_HITTEST_NOWHERE = wxBK_HITTEST_NOWHERE, - wxNB_HITTEST_ONICON = wxBK_HITTEST_ONICON, - wxNB_HITTEST_ONLABEL = wxBK_HITTEST_ONLABEL, - wxNB_HITTEST_ONITEM = wxBK_HITTEST_ONITEM, - wxNB_HITTEST_ONPAGE = wxBK_HITTEST_ONPAGE -}; - -// wxNotebook flags - -// use common book wxBK_* flags for describing alignment -#define wxNB_DEFAULT wxBK_DEFAULT -#define wxNB_TOP wxBK_TOP -#define wxNB_BOTTOM wxBK_BOTTOM -#define wxNB_LEFT wxBK_LEFT -#define wxNB_RIGHT wxBK_RIGHT - -#define wxNB_FIXEDWIDTH 0x0100 -#define wxNB_MULTILINE 0x0200 -#define wxNB_NOPAGETHEME 0x0400 -#define wxNB_FLAT 0x0800 - - -typedef wxWindow wxNotebookPage; // so far, any window can be a page - -extern WXDLLIMPEXP_DATA_CORE(const char) wxNotebookNameStr[]; - -#if wxUSE_EXTENDED_RTTI - -// ---------------------------------------------------------------------------- -// XTI accessor -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxNotebookPageInfo : public wxObject -{ -public: - wxNotebookPageInfo() { m_page = NULL; m_imageId = -1; m_selected = false; } - virtual ~wxNotebookPageInfo() { } - - bool Create(wxNotebookPage *page, - const wxString& text, - bool selected, - int imageId) - { - m_page = page; - m_text = text; - m_selected = selected; - m_imageId = imageId; - return true; - } - - wxNotebookPage* GetPage() const { return m_page; } - wxString GetText() const { return m_text; } - bool GetSelected() const { return m_selected; } - int GetImageId() const { return m_imageId; } - -private: - wxNotebookPage *m_page; - wxString m_text; - bool m_selected; - int m_imageId; - - wxDECLARE_DYNAMIC_CLASS(wxNotebookPageInfo); -}; - -WX_DECLARE_EXPORTED_LIST(wxNotebookPageInfo, wxNotebookPageInfoList ); - -#endif - -// ---------------------------------------------------------------------------- -// wxNotebookBase: define wxNotebook interface -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxNotebookBase : public wxBookCtrlBase -{ -public: - // ctors - // ----- - - wxNotebookBase() { } - - // wxNotebook-specific additions to wxBookCtrlBase interface - // --------------------------------------------------------- - - // get the number of rows for a control with wxNB_MULTILINE style (not all - // versions support it - they will always return 1 then) - virtual int GetRowCount() const { return 1; } - - // set the padding between tabs (in pixels) - virtual void SetPadding(const wxSize& padding) = 0; - - // set the size of the tabs for wxNB_FIXEDWIDTH controls - virtual void SetTabSize(const wxSize& sz) = 0; - - - - // implement some base class functions - virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const wxOVERRIDE; - - // On platforms that support it, get the theme page background colour, else invalid colour - virtual wxColour GetThemeBackgroundColour() const { return wxNullColour; } - - - // send wxEVT_NOTEBOOK_PAGE_CHANGING/ED events - - // returns false if the change to nPage is vetoed by the program - bool SendPageChangingEvent(int nPage); - - // sends the event about page change from old to new (or GetSelection() if - // new is wxNOT_FOUND) - void SendPageChangedEvent(int nPageOld, int nPageNew = wxNOT_FOUND); - - // wxBookCtrlBase overrides this method to return false but we do need - // focus because we have tabs - virtual bool AcceptsFocus() const wxOVERRIDE { return wxControl::AcceptsFocus(); } - -#if wxUSE_EXTENDED_RTTI - // XTI accessors - virtual void AddPageInfo( wxNotebookPageInfo* info ); - virtual const wxNotebookPageInfoList& GetPageInfos() const; -#endif - -protected: -#if wxUSE_EXTENDED_RTTI - wxNotebookPageInfoList m_pageInfos; -#endif - wxDECLARE_NO_COPY_CLASS(wxNotebookBase); -}; - -// ---------------------------------------------------------------------------- -// notebook event class and related stuff -// ---------------------------------------------------------------------------- - -// wxNotebookEvent is obsolete and defined for compatibility only (notice that -// we use #define and not typedef to also keep compatibility with the existing -// code which forward declares it) -#define wxNotebookEvent wxBookCtrlEvent -typedef wxBookCtrlEventFunction wxNotebookEventFunction; -#define wxNotebookEventHandler(func) wxBookCtrlEventHandler(func) - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_NOTEBOOK_PAGE_CHANGED, wxBookCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_NOTEBOOK_PAGE_CHANGING, wxBookCtrlEvent ); - -#define EVT_NOTEBOOK_PAGE_CHANGED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_NOTEBOOK_PAGE_CHANGED, winid, wxBookCtrlEventHandler(fn)) - -#define EVT_NOTEBOOK_PAGE_CHANGING(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_NOTEBOOK_PAGE_CHANGING, winid, wxBookCtrlEventHandler(fn)) - -// ---------------------------------------------------------------------------- -// wxNotebook class itself -// ---------------------------------------------------------------------------- - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/notebook.h" -#elif defined(__WXMSW__) - #include "wx/msw/notebook.h" -#elif defined(__WXMOTIF__) - #include "wx/generic/notebook.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/notebook.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/notebook.h" -#elif defined(__WXMAC__) - #include "wx/osx/notebook.h" -#elif defined(__WXQT__) - #include "wx/qt/notebook.h" -#endif - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED wxEVT_NOTEBOOK_PAGE_CHANGED -#define wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING wxEVT_NOTEBOOK_PAGE_CHANGING - -#endif // wxUSE_NOTEBOOK - -#endif - // _WX_NOTEBOOK_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/notifmsg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/notifmsg.h deleted file mode 100644 index 82dc2ad8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/notifmsg.h +++ /dev/null @@ -1,182 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/notifmsg.h -// Purpose: class allowing to show notification messages to the user -// Author: Vadim Zeitlin -// Created: 2007-11-19 -// Copyright: (c) 2007 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_NOTIFMSG_H_ -#define _WX_NOTIFMSG_H_ - -#include "wx/event.h" - -#if wxUSE_NOTIFICATION_MESSAGE - -// ---------------------------------------------------------------------------- -// wxNotificationMessage: allows to show the user a message non intrusively -// ---------------------------------------------------------------------------- - -// notice that this class is not a window and so doesn't derive from wxWindow - -class WXDLLIMPEXP_ADV wxNotificationMessageBase : public wxEvtHandler -{ -public: - // ctors and initializers - // ---------------------- - - // default ctor, use setters below to initialize it later - wxNotificationMessageBase() - { - Init(); - } - - // create a notification object with the given title and message (the - // latter may be empty in which case only the title will be shown) - wxNotificationMessageBase(const wxString& title, - const wxString& message = wxEmptyString, - wxWindow *parent = NULL, - int flags = wxICON_INFORMATION) - { - Init(); - Create(title, message, parent, flags); - } - - virtual ~wxNotificationMessageBase(); - - // note that the setters must be called before Show() - - // set the title: short string, markup not allowed - void SetTitle(const wxString& title); - - // set the text of the message: this is a longer string than the title and - // some platforms allow simple HTML-like markup in it - void SetMessage(const wxString& message); - - // set the parent for this notification: we'll be associated with the top - // level parent of this window or, if this method is not called, with the - // main application window by default - void SetParent(wxWindow *parent); - - // this method can currently be used to choose a standard icon to use: the - // parameter may be one of wxICON_INFORMATION, wxICON_WARNING or - // wxICON_ERROR only (but not wxICON_QUESTION) - void SetFlags(int flags); - - // set a custom icon to use instead of the system provided specified via SetFlags - virtual void SetIcon(const wxIcon& icon); - - // Add a button to the notification, returns false if the platform does not support - // actions in notifications - virtual bool AddAction(wxWindowID actionid, const wxString &label = wxString()); - - // showing and hiding - // ------------------ - - // possible values for Show() timeout - enum - { - Timeout_Auto = -1, // notification will be hidden automatically - Timeout_Never = 0 // notification will never time out - }; - - // show the notification to the user and hides it after timeout seconds - // pass (special values Timeout_Auto and Timeout_Never can be used) - // - // returns false if an error occurred - bool Show(int timeout = Timeout_Auto); - - // hide the notification, returns true if it was hidden or false if it - // couldn't be done (e.g. on some systems automatically hidden - // notifications can't be hidden manually) - bool Close(); - -protected: - // Common part of all ctors. - void Create(const wxString& title = wxEmptyString, - const wxString& message = wxEmptyString, - wxWindow *parent = NULL, - int flags = wxICON_INFORMATION) - { - SetTitle(title); - SetMessage(message); - SetParent(parent); - SetFlags(flags); - } - - class wxNotificationMessageImpl* m_impl; - -private: - - void Init() - { - m_impl = NULL; - } - - wxDECLARE_NO_COPY_CLASS(wxNotificationMessageBase); -}; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_NOTIFICATION_MESSAGE_CLICK, wxCommandEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_NOTIFICATION_MESSAGE_DISMISSED, wxCommandEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_NOTIFICATION_MESSAGE_ACTION, wxCommandEvent ); - -#if (defined(__WXGTK__) && wxUSE_LIBNOTIFY) || \ - (defined(__WXMSW__) && wxUSE_TASKBARICON && wxUSE_TASKBARICON_BALLOONS) || \ - (defined(__WXOSX_COCOA__) && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_8)) - #define wxHAS_NATIVE_NOTIFICATION_MESSAGE -#endif - -// ---------------------------------------------------------------------------- -// wxNotificationMessage -// ---------------------------------------------------------------------------- - -#ifdef wxHAS_NATIVE_NOTIFICATION_MESSAGE - -#if defined(__WXMSW__) -class WXDLLIMPEXP_FWD_ADV wxTaskBarIcon; -#endif // defined(__WXMSW__) - -#else -#include "wx/generic/notifmsg.h" -#endif // wxHAS_NATIVE_NOTIFICATION_MESSAGE - -class WXDLLIMPEXP_ADV wxNotificationMessage : public -#ifdef wxHAS_NATIVE_NOTIFICATION_MESSAGE - wxNotificationMessageBase -#else - wxGenericNotificationMessage -#endif -{ -public: - wxNotificationMessage() { Init(); } - wxNotificationMessage(const wxString& title, - const wxString& message = wxString(), - wxWindow *parent = NULL, - int flags = wxICON_INFORMATION) - { - Init(); - Create(title, message, parent, flags); - } - -#if defined(__WXMSW__) && defined(wxHAS_NATIVE_NOTIFICATION_MESSAGE) - static bool MSWUseToasts( - const wxString& shortcutPath = wxString(), - const wxString& appId = wxString()); - - // returns the task bar icon which was used previously (may be NULL) - static wxTaskBarIcon *UseTaskBarIcon(wxTaskBarIcon *icon); - -#endif // defined(__WXMSW__) && defined(wxHAS_NATIVE_NOTIFICATION_MESSAGE) - -private: - // common part of all ctors - void Init(); - - wxDECLARE_NO_COPY_CLASS(wxNotificationMessage); -}; - -#endif // wxUSE_NOTIFICATION_MESSAGE - -#endif // _WX_NOTIFMSG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/numdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/numdlg.h deleted file mode 100644 index c1c39742..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/numdlg.h +++ /dev/null @@ -1,22 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/numdlg.h -// Purpose: wxNumberEntryDialog class -// Author: John Labenski -// Modified by: -// Created: 07.02.04 (extracted from wx/textdlg.h) -// Copyright: (c) John Labenski -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_NUMDLGDLG_H_BASE_ -#define _WX_NUMDLGDLG_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_NUMBERDLG - -#include "wx/generic/numdlgg.h" - -#endif // wxUSE_NUMBERDLG - -#endif // _WX_NUMDLGDLG_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/numformatter.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/numformatter.h deleted file mode 100644 index 13b47b21..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/numformatter.h +++ /dev/null @@ -1,78 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/numformatter.h -// Purpose: wxNumberFormatter class -// Author: Fulvio Senore, Vadim Zeitlin -// Created: 2010-11-06 -// Copyright: (c) 2010 wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_NUMFORMATTER_H_ -#define _WX_NUMFORMATTER_H_ - -#include "wx/string.h" - -// Helper class for formatting numbers with thousands separators which also -// supports parsing the numbers formatted by it. -class WXDLLIMPEXP_BASE wxNumberFormatter -{ -public: - // Bit masks for ToString() - enum Style - { - Style_None = 0x00, - Style_WithThousandsSep = 0x01, - Style_NoTrailingZeroes = 0x02 // Only for floating point numbers - }; - - // Format a number as a string. By default, the thousands separator is - // used, specify Style_None to prevent this. For floating point numbers, - // precision can also be specified. - static wxString ToString(long val, - int style = Style_WithThousandsSep); -#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - static wxString ToString(wxLongLong_t val, - int style = Style_WithThousandsSep); -#endif // wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - static wxString ToString(double val, - int precision, - int style = Style_WithThousandsSep); - - // Parse a string representing a number, possibly with thousands separator. - // - // Return true on success and stores the result in the provided location - // which must be a valid non-NULL pointer. - static bool FromString(wxString s, long *val); -#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - static bool FromString(wxString s, wxLongLong_t *val); -#endif // wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - static bool FromString(wxString s, double *val); - - - // Get the decimal separator for the current locale. It is always defined - // and we fall back to returning '.' in case of an error. - static wxChar GetDecimalSeparator(); - - // Get the thousands separator if grouping of the digits is used by the - // current locale. The value returned in sep should be only used if the - // function returns true. - static bool GetThousandsSeparatorIfUsed(wxChar *sep); - -private: - // Post-process the string representing an integer. - static wxString PostProcessIntString(wxString s, int style); - - // Add the thousands separators to a string representing a number without - // the separators. This is used by ToString(Style_WithThousandsSep). - static void AddThousandsSeparators(wxString& s); - - // Remove trailing zeroes and, if there is nothing left after it, the - // decimal separator itself from a string representing a floating point - // number. Also used by ToString(). - static void RemoveTrailingZeroes(wxString& s); - - // Remove all thousands separators from a string representing a number. - static void RemoveThousandsSeparators(wxString& s); -}; - -#endif // _WX_NUMFORMATTER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/object.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/object.h deleted file mode 100644 index 6a014073..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/object.h +++ /dev/null @@ -1,480 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/object.h -// Purpose: wxObject class, plus run-time type information macros -// Author: Julian Smart -// Modified by: Ron Lee -// Created: 01/02/97 -// Copyright: (c) 1997 Julian Smart -// (c) 2001 Ron Lee <ron@debian.org> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OBJECTH__ -#define _WX_OBJECTH__ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/memory.h" - -#define wxDECLARE_CLASS_INFO_ITERATORS() \ -class WXDLLIMPEXP_BASE const_iterator \ - { \ - typedef wxHashTable_Node Node; \ - public: \ - typedef const wxClassInfo* value_type; \ - typedef const value_type& const_reference; \ - typedef const_iterator itor; \ - typedef value_type* ptr_type; \ - \ - Node* m_node; \ - wxHashTable* m_table; \ - public: \ - typedef const_reference reference_type; \ - typedef ptr_type pointer_type; \ - \ - const_iterator(Node* node, wxHashTable* table) \ - : m_node(node), m_table(table) { } \ - const_iterator() : m_node(NULL), m_table(NULL) { } \ - value_type operator*() const; \ - itor& operator++(); \ - const itor operator++(int); \ - bool operator!=(const itor& it) const \ - { return it.m_node != m_node; } \ - bool operator==(const itor& it) const \ - { return it.m_node == m_node; } \ - }; \ - \ - static const_iterator begin_classinfo(); \ - static const_iterator end_classinfo() - -// based on the value of wxUSE_EXTENDED_RTTI symbol, -// only one of the RTTI system will be compiled: -// - the "old" one (defined by rtti.h) or -// - the "new" one (defined by xti.h) -#include "wx/xti.h" -#include "wx/rtti.h" - -#define wxIMPLEMENT_CLASS(name, basename) \ - wxIMPLEMENT_ABSTRACT_CLASS(name, basename) - -#define wxIMPLEMENT_CLASS2(name, basename1, basename2) \ - wxIMPLEMENT_ABSTRACT_CLASS2(name, basename1, basename2) - -// ----------------------------------- -// for pluggable classes -// ----------------------------------- - - // NOTE: this should probably be the very first statement - // in the class declaration so wxPluginSentinel is - // the first member initialised and the last destroyed. - -// _DECLARE_DL_SENTINEL(name) wxPluginSentinel m_pluginsentinel; - -#if wxUSE_NESTED_CLASSES - -#define _DECLARE_DL_SENTINEL(name, exportdecl) \ -class exportdecl name##PluginSentinel { \ -private: \ - static const wxString sm_className; \ -public: \ - name##PluginSentinel(); \ - ~name##PluginSentinel(); \ -}; \ -name##PluginSentinel m_pluginsentinel - -#define _IMPLEMENT_DL_SENTINEL(name) \ - const wxString name::name##PluginSentinel::sm_className(#name); \ - name::name##PluginSentinel::name##PluginSentinel() { \ - wxPluginLibrary *e = (wxPluginLibrary*) wxPluginLibrary::ms_classes.Get(#name); \ - if( e != 0 ) { e->RefObj(); } \ - } \ - name::name##PluginSentinel::~name##PluginSentinel() { \ - wxPluginLibrary *e = (wxPluginLibrary*) wxPluginLibrary::ms_classes.Get(#name); \ - if( e != 0 ) { e->UnrefObj(); } \ - } -#else - -#define _DECLARE_DL_SENTINEL(name) -#define _IMPLEMENT_DL_SENTINEL(name) - -#endif // wxUSE_NESTED_CLASSES - -#define wxDECLARE_PLUGGABLE_CLASS(name) \ - wxDECLARE_DYNAMIC_CLASS(name); _DECLARE_DL_SENTINEL(name, WXDLLIMPEXP_CORE) -#define wxDECLARE_ABSTRACT_PLUGGABLE_CLASS(name) \ - wxDECLARE_ABSTRACT_CLASS(name); _DECLARE_DL_SENTINEL(name, WXDLLIMPEXP_CORE) - -#define wxDECLARE_USER_EXPORTED_PLUGGABLE_CLASS(name, usergoo) \ - wxDECLARE_DYNAMIC_CLASS(name); _DECLARE_DL_SENTINEL(name, usergoo) -#define wxDECLARE_USER_EXPORTED_ABSTRACT_PLUGGABLE_CLASS(name, usergoo) \ - wxDECLARE_ABSTRACT_CLASS(name); _DECLARE_DL_SENTINEL(name, usergoo) - -#define wxIMPLEMENT_PLUGGABLE_CLASS(name, basename) \ - wxIMPLEMENT_DYNAMIC_CLASS(name, basename) _IMPLEMENT_DL_SENTINEL(name) -#define wxIMPLEMENT_PLUGGABLE_CLASS2(name, basename1, basename2) \ - wxIMPLEMENT_DYNAMIC_CLASS2(name, basename1, basename2) _IMPLEMENT_DL_SENTINEL(name) -#define wxIMPLEMENT_ABSTRACT_PLUGGABLE_CLASS(name, basename) \ - wxIMPLEMENT_ABSTRACT_CLASS(name, basename) _IMPLEMENT_DL_SENTINEL(name) -#define wxIMPLEMENT_ABSTRACT_PLUGGABLE_CLASS2(name, basename1, basename2) \ - wxIMPLEMENT_ABSTRACT_CLASS2(name, basename1, basename2) _IMPLEMENT_DL_SENTINEL(name) - -#define wxIMPLEMENT_USER_EXPORTED_PLUGGABLE_CLASS(name, basename) \ - wxIMPLEMENT_PLUGGABLE_CLASS(name, basename) -#define wxIMPLEMENT_USER_EXPORTED_PLUGGABLE_CLASS2(name, basename1, basename2) \ - wxIMPLEMENT_PLUGGABLE_CLASS2(name, basename1, basename2) -#define wxIMPLEMENT_USER_EXPORTED_ABSTRACT_PLUGGABLE_CLASS(name, basename) \ - wxIMPLEMENT_ABSTRACT_PLUGGABLE_CLASS(name, basename) -#define wxIMPLEMENT_USER_EXPORTED_ABSTRACT_PLUGGABLE_CLASS2(name, basename1, basename2) \ - wxIMPLEMENT_ABSTRACT_PLUGGABLE_CLASS2(name, basename1, basename2) - -#define wxCLASSINFO(name) (&name::ms_classInfo) - -#define wxIS_KIND_OF(obj, className) obj->IsKindOf(&className::ms_classInfo) - -// Just seems a bit nicer-looking (pretend it's not a macro) -#define wxIsKindOf(obj, className) obj->IsKindOf(&className::ms_classInfo) - -// this cast does some more checks at compile time as it uses static_cast -// internally -// -// note that it still has different semantics from dynamic_cast<> and so can't -// be replaced by it as long as there are any compilers not supporting it -#define wxDynamicCast(obj, className) \ - ((className *) wxCheckDynamicCast( \ - const_cast<wxObject *>(static_cast<const wxObject *>(\ - const_cast<className *>(static_cast<const className *>(obj)))), \ - &className::ms_classInfo)) - -// The 'this' pointer is always true, so use this version -// to cast the this pointer and avoid compiler warnings. -#define wxDynamicCastThis(className) \ - (IsKindOf(&className::ms_classInfo) ? (className *)(this) : (className *)0) - -template <class T> -inline T *wxCheckCast(const void *ptr) -{ - wxASSERT_MSG( wxDynamicCast(ptr, T), "wxStaticCast() used incorrectly" ); - return const_cast<T *>(static_cast<const T *>(ptr)); -} - -#define wxStaticCast(obj, className) wxCheckCast<className>(obj) - -// ---------------------------------------------------------------------------- -// set up memory debugging macros -// ---------------------------------------------------------------------------- - -/* - Which new/delete operator variants do we want? - - _WX_WANT_NEW_SIZET_WXCHAR_INT = void *operator new (size_t size, wxChar *fileName = 0, int lineNum = 0) - _WX_WANT_DELETE_VOID = void operator delete (void * buf) - _WX_WANT_DELETE_VOID_WXCHAR_INT = void operator delete(void *buf, wxChar*, int) - _WX_WANT_ARRAY_NEW_SIZET_WXCHAR_INT = void *operator new[] (size_t size, wxChar *fileName , int lineNum = 0) - _WX_WANT_ARRAY_DELETE_VOID = void operator delete[] (void *buf) - _WX_WANT_ARRAY_DELETE_VOID_WXCHAR_INT = void operator delete[] (void* buf, wxChar*, int ) -*/ - -#if wxUSE_MEMORY_TRACING - -// All compilers get these ones -#define _WX_WANT_NEW_SIZET_WXCHAR_INT -#define _WX_WANT_DELETE_VOID - -#if defined(__VISUALC__) - #define _WX_WANT_DELETE_VOID_WXCHAR_INT -#endif - -// Now see who (if anyone) gets the array memory operators -#if wxUSE_ARRAY_MEMORY_OPERATORS - - // Everyone except Visual C++ (cause problems for VC++ - crashes) - #if !defined(__VISUALC__) - #define _WX_WANT_ARRAY_NEW_SIZET_WXCHAR_INT - #endif - - // Everyone except Visual C++ (cause problems for VC++ - crashes) - #if !defined(__VISUALC__) - #define _WX_WANT_ARRAY_DELETE_VOID - #endif -#endif // wxUSE_ARRAY_MEMORY_OPERATORS - -#endif // wxUSE_MEMORY_TRACING - -// ---------------------------------------------------------------------------- -// Compatibility macro aliases DECLARE group -// ---------------------------------------------------------------------------- -// deprecated variants _not_ requiring a semicolon after them and without wx prefix. -// (note that also some wx-prefixed macro do _not_ require a semicolon because -// it's not always possible to force the compiler to require it) - -#define DECLARE_CLASS_INFO_ITERATORS() wxDECLARE_CLASS_INFO_ITERATORS(); -#define DECLARE_ABSTRACT_CLASS(n) wxDECLARE_ABSTRACT_CLASS(n); -#define DECLARE_DYNAMIC_CLASS_NO_ASSIGN(n) wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(n); -#define DECLARE_DYNAMIC_CLASS_NO_COPY(n) wxDECLARE_DYNAMIC_CLASS_NO_COPY(n); -#define DECLARE_DYNAMIC_CLASS(n) wxDECLARE_DYNAMIC_CLASS(n); -#define DECLARE_CLASS(n) wxDECLARE_CLASS(n); - -#define DECLARE_PLUGGABLE_CLASS(n) wxDECLARE_PLUGGABLE_CLASS(n); -#define DECLARE_ABSTRACT_PLUGGABLE_CLASS(n) wxDECLARE_ABSTRACT_PLUGGABLE_CLASS(n); -#define DECLARE_USER_EXPORTED_PLUGGABLE_CLASS(n,u) wxDECLARE_USER_EXPORTED_PLUGGABLE_CLASS(n,u); -#define DECLARE_USER_EXPORTED_ABSTRACT_PLUGGABLE_CLASS(n,u) wxDECLARE_USER_EXPORTED_ABSTRACT_PLUGGABLE_CLASS(n,u); - -// ---------------------------------------------------------------------------- -// wxRefCounter: ref counted data "manager" -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxRefCounter -{ -public: - wxRefCounter() { m_count = 1; } - - int GetRefCount() const { return m_count; } - - void IncRef() { m_count++; } - void DecRef(); - -protected: - // this object should never be destroyed directly but only as a - // result of a DecRef() call: - virtual ~wxRefCounter() { } - -private: - // our refcount: - int m_count; - - // It doesn't make sense to copy the reference counted objects, a new ref - // counter should be created for a new object instead and compilation - // errors in the code using wxRefCounter due to the lack of copy ctor often - // indicate a problem, e.g. a forgotten copy ctor implementation somewhere. - wxDECLARE_NO_COPY_CLASS(wxRefCounter); -}; - -// ---------------------------------------------------------------------------- -// wxObjectRefData: ref counted data meant to be stored in wxObject -// ---------------------------------------------------------------------------- - -typedef wxRefCounter wxObjectRefData; - -// ---------------------------------------------------------------------------- -// wxObjectDataPtr: helper class to avoid memleaks because of missing calls -// to wxObjectRefData::DecRef -// ---------------------------------------------------------------------------- - -template <class T> -class wxObjectDataPtr -{ -public: - typedef T element_type; - - wxEXPLICIT wxObjectDataPtr(T *ptr = NULL) : m_ptr(ptr) {} - - // copy ctor - wxObjectDataPtr(const wxObjectDataPtr<T> &tocopy) - : m_ptr(tocopy.m_ptr) - { - if (m_ptr) - m_ptr->IncRef(); - } - - ~wxObjectDataPtr() - { - if (m_ptr) - m_ptr->DecRef(); - } - - T *get() const { return m_ptr; } - - // test for pointer validity: defining conversion to unspecified_bool_type - // and not more obvious bool to avoid implicit conversions to integer types - typedef T *(wxObjectDataPtr<T>::*unspecified_bool_type)() const; - operator unspecified_bool_type() const - { - return m_ptr ? &wxObjectDataPtr<T>::get : NULL; - } - - T& operator*() const - { - wxASSERT(m_ptr != NULL); - return *(m_ptr); - } - - T *operator->() const - { - wxASSERT(m_ptr != NULL); - return get(); - } - - void reset(T *ptr) - { - if (m_ptr) - m_ptr->DecRef(); - m_ptr = ptr; - } - - wxObjectDataPtr& operator=(const wxObjectDataPtr &tocopy) - { - if (m_ptr) - m_ptr->DecRef(); - m_ptr = tocopy.m_ptr; - if (m_ptr) - m_ptr->IncRef(); - return *this; - } - - wxObjectDataPtr& operator=(T *ptr) - { - if (m_ptr) - m_ptr->DecRef(); - m_ptr = ptr; - return *this; - } - -private: - T *m_ptr; -}; - -// ---------------------------------------------------------------------------- -// wxObject: the root class of wxWidgets object hierarchy -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxObject -{ - wxDECLARE_ABSTRACT_CLASS(wxObject); - -public: - wxObject() { m_refData = NULL; } - virtual ~wxObject() { UnRef(); } - - wxObject(const wxObject& other) - { - m_refData = other.m_refData; - if (m_refData) - m_refData->IncRef(); - } - - wxObject& operator=(const wxObject& other) - { - if ( this != &other ) - { - Ref(other); - } - return *this; - } - - bool IsKindOf(const wxClassInfo *info) const; - - - // Turn on the correct set of new and delete operators - -#ifdef _WX_WANT_NEW_SIZET_WXCHAR_INT - void *operator new ( size_t size, const wxChar *fileName = NULL, int lineNum = 0 ); -#endif - -#ifdef _WX_WANT_DELETE_VOID - void operator delete ( void * buf ); -#endif - -#ifdef _WX_WANT_DELETE_VOID_WXCHAR_INT - void operator delete ( void *buf, const wxChar*, int ); -#endif - -#ifdef _WX_WANT_ARRAY_NEW_SIZET_WXCHAR_INT - void *operator new[] ( size_t size, const wxChar *fileName = NULL, int lineNum = 0 ); -#endif - -#ifdef _WX_WANT_ARRAY_DELETE_VOID - void operator delete[] ( void *buf ); -#endif - -#ifdef _WX_WANT_ARRAY_DELETE_VOID_WXCHAR_INT - void operator delete[] (void* buf, const wxChar*, int ); -#endif - - // ref counted data handling methods - - // get/set - wxObjectRefData *GetRefData() const { return m_refData; } - void SetRefData(wxObjectRefData *data) { m_refData = data; } - - // make a 'clone' of the object - void Ref(const wxObject& clone); - - // destroy a reference - void UnRef(); - - // Make sure this object has only one reference - void UnShare() { AllocExclusive(); } - - // check if this object references the same data as the other one - bool IsSameAs(const wxObject& o) const { return m_refData == o.m_refData; } - -protected: - // ensure that our data is not shared with anybody else: if we have no - // data, it is created using CreateRefData() below, if we have shared data - // it is copied using CloneRefData(), otherwise nothing is done - void AllocExclusive(); - - // both methods must be implemented if AllocExclusive() is used, not pure - // virtual only because of the backwards compatibility reasons - - // create a new m_refData - virtual wxObjectRefData *CreateRefData() const; - - // create a new m_refData initialized with the given one - virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const; - - wxObjectRefData *m_refData; -}; - -inline wxObject *wxCheckDynamicCast(wxObject *obj, wxClassInfo *classInfo) -{ - return obj && obj->GetClassInfo()->IsKindOf(classInfo) ? obj : NULL; -} - -#include "wx/xti2.h" - -// ---------------------------------------------------------------------------- -// more debugging macros -// ---------------------------------------------------------------------------- - -#if wxUSE_DEBUG_NEW_ALWAYS - #define WXDEBUG_NEW new(__TFILE__,__LINE__) - - #if wxUSE_GLOBAL_MEMORY_OPERATORS - #define new WXDEBUG_NEW - #elif defined(__VISUALC__) - // Including this file redefines new and allows leak reports to - // contain line numbers - #include "wx/msw/msvcrt.h" - #endif -#endif // wxUSE_DEBUG_NEW_ALWAYS - -// ---------------------------------------------------------------------------- -// Compatibility macro aliases IMPLEMENT group -// ---------------------------------------------------------------------------- - -// deprecated variants _not_ requiring a semicolon after them and without wx prefix. -// (note that also some wx-prefixed macro do _not_ require a semicolon because -// it's not always possible to force the compiler to require it) - -#define IMPLEMENT_DYNAMIC_CLASS(n,b) wxIMPLEMENT_DYNAMIC_CLASS(n,b) -#define IMPLEMENT_DYNAMIC_CLASS2(n,b1,b2) wxIMPLEMENT_DYNAMIC_CLASS2(n,b1,b2) -#define IMPLEMENT_ABSTRACT_CLASS(n,b) wxIMPLEMENT_ABSTRACT_CLASS(n,b) -#define IMPLEMENT_ABSTRACT_CLASS2(n,b1,b2) wxIMPLEMENT_ABSTRACT_CLASS2(n,b1,b2) -#define IMPLEMENT_CLASS(n,b) wxIMPLEMENT_CLASS(n,b) -#define IMPLEMENT_CLASS2(n,b1,b2) wxIMPLEMENT_CLASS2(n,b1,b2) - -#define IMPLEMENT_PLUGGABLE_CLASS(n,b) wxIMPLEMENT_PLUGGABLE_CLASS(n,b) -#define IMPLEMENT_PLUGGABLE_CLASS2(n,b,b2) wxIMPLEMENT_PLUGGABLE_CLASS2(n,b,b2) -#define IMPLEMENT_ABSTRACT_PLUGGABLE_CLASS(n,b) wxIMPLEMENT_ABSTRACT_PLUGGABLE_CLASS(n,b) -#define IMPLEMENT_ABSTRACT_PLUGGABLE_CLASS2(n,b,b2) wxIMPLEMENT_ABSTRACT_PLUGGABLE_CLASS2(n,b,b2) -#define IMPLEMENT_USER_EXPORTED_PLUGGABLE_CLASS(n,b) wxIMPLEMENT_USER_EXPORTED_PLUGGABLE_CLASS(n,b) -#define IMPLEMENT_USER_EXPORTED_PLUGGABLE_CLASS2(n,b,b2) wxIMPLEMENT_USER_EXPORTED_PLUGGABLE_CLASS2(n,b,b2) -#define IMPLEMENT_USER_EXPORTED_ABSTRACT_PLUGGABLE_CLASS(n,b) wxIMPLEMENT_USER_EXPORTED_ABSTRACT_PLUGGABLE_CLASS(n,b) -#define IMPLEMENT_USER_EXPORTED_ABSTRACT_PLUGGABLE_CLASS2(n,b,b2) wxIMPLEMENT_USER_EXPORTED_ABSTRACT_PLUGGABLE_CLASS2(n,b,b2) - -#define CLASSINFO(n) wxCLASSINFO(n) - -#endif // _WX_OBJECTH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/odcombo.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/odcombo.h deleted file mode 100644 index 64cfc64f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/odcombo.h +++ /dev/null @@ -1,403 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/odcombo.h -// Purpose: wxOwnerDrawnComboBox and wxVListBoxPopup -// Author: Jaakko Salli -// Modified by: -// Created: Apr-30-2006 -// Copyright: (c) Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ODCOMBO_H_ -#define _WX_ODCOMBO_H_ - -#include "wx/defs.h" - -#if wxUSE_ODCOMBOBOX - -#include "wx/combo.h" -#include "wx/ctrlsub.h" -#include "wx/vlbox.h" -#include "wx/timer.h" - - -// -// New window styles for wxOwnerDrawnComboBox -// -enum -{ - // Double-clicking cycles item if wxCB_READONLY is also used. - wxODCB_DCLICK_CYCLES = wxCC_SPECIAL_DCLICK, - - // If used, control itself is not custom paint using callback. - // Even if this is not used, writable combo is never custom paint - // until SetCustomPaintWidth is called - wxODCB_STD_CONTROL_PAINT = 0x1000 -}; - - -// -// Callback flags (see wxOwnerDrawnComboBox::OnDrawItem) -// -enum wxOwnerDrawnComboBoxPaintingFlags -{ - // when set, we are painting the selected item in control, - // not in the popup - wxODCB_PAINTING_CONTROL = 0x0001, - - - // when set, we are painting an item which should have - // focus rectangle painted in the background. Text colour - // and clipping region are then appropriately set in - // the default OnDrawBackground implementation. - wxODCB_PAINTING_SELECTED = 0x0002 -}; - - -// ---------------------------------------------------------------------------- -// wxVListBoxComboPopup is a wxVListBox customized to act as a popup control. -// -// Notes: -// wxOwnerDrawnComboBox uses this as its popup. However, it always derives -// from native wxComboCtrl. If you need to use this popup with -// wxGenericComboControl, then remember that vast majority of item manipulation -// functionality is implemented in the wxVListBoxComboPopup class itself. -// -// ---------------------------------------------------------------------------- - - -class WXDLLIMPEXP_ADV wxVListBoxComboPopup : public wxVListBox, - public wxComboPopup -{ - friend class wxOwnerDrawnComboBox; -public: - - // init and dtor - wxVListBoxComboPopup() : wxVListBox(), wxComboPopup() { } - virtual ~wxVListBoxComboPopup(); - - // required virtuals - virtual void Init() wxOVERRIDE; - virtual bool Create(wxWindow* parent) wxOVERRIDE; - virtual void SetFocus() wxOVERRIDE; - virtual wxWindow *GetControl() wxOVERRIDE { return this; } - virtual void SetStringValue( const wxString& value ) wxOVERRIDE; - virtual wxString GetStringValue() const wxOVERRIDE; - - // more customization - virtual void OnPopup() wxOVERRIDE; - virtual wxSize GetAdjustedSize( int minWidth, int prefHeight, int maxHeight ) wxOVERRIDE; - virtual void PaintComboControl( wxDC& dc, const wxRect& rect ) wxOVERRIDE; - virtual void OnComboKeyEvent( wxKeyEvent& event ) wxOVERRIDE; - virtual void OnComboCharEvent( wxKeyEvent& event ) wxOVERRIDE; - virtual void OnComboDoubleClick() wxOVERRIDE; - virtual bool LazyCreate() wxOVERRIDE; - virtual bool FindItem(const wxString& item, wxString* trueItem) wxOVERRIDE; - - // Item management - void SetSelection( int item ); - void Insert( const wxString& item, int pos ); - int Append(const wxString& item); - void Clear(); - void Delete( unsigned int item ); - void SetItemClientData(unsigned int n, void* clientData, wxClientDataType clientDataItemsType); - void *GetItemClientData(unsigned int n) const; - void SetString( int item, const wxString& str ); - wxString GetString( int item ) const; - unsigned int GetCount() const; - int FindString(const wxString& s, bool bCase = false) const; - int GetSelection() const; - - //void Populate( int n, const wxString choices[] ); - void Populate( const wxArrayString& choices ); - void ClearClientDatas(); - - // helpers - int GetItemAtPosition( const wxPoint& pos ) { return HitTest(pos); } - wxCoord GetTotalHeight() const { return EstimateTotalHeight(); } - wxCoord GetLineHeight(int line) const { return OnGetRowHeight(line); } - -protected: - - // Called by OnComboDoubleClick and OnCombo{Key,Char}Event - bool HandleKey( int keycode, bool saturate, wxChar keychar = 0 ); - - // sends combobox select event from the parent combo control - void SendComboBoxEvent( int selection ); - - // gets value, sends event and dismisses - void DismissWithEvent(); - - // OnMeasureItemWidth will be called on next GetAdjustedSize. - void ItemWidthChanged(unsigned int item) - { - m_widths[item] = -1; - m_widthsDirty = true; - } - - // Callbacks for drawing and measuring items. Override in a derived class for - // owner-drawnness. Font, background and text colour have been prepared according - // to selection, focus and such. - // - // item: item index to be drawn, may be wxNOT_FOUND when painting combo control itself - // and there is no valid selection - // flags: wxODCB_PAINTING_CONTROL is set if painting to combo control instead of list - // - // NOTE: If wxVListBoxComboPopup is used with a wxComboCtrl class not derived from - // wxOwnerDrawnComboBox, this method must be overridden. - virtual void OnDrawItem( wxDC& dc, const wxRect& rect, int item, int flags) const; - - // This is same as in wxVListBox - virtual wxCoord OnMeasureItem( size_t item ) const wxOVERRIDE; - - // Return item width, or -1 for calculating from text extent (default) - virtual wxCoord OnMeasureItemWidth( size_t item ) const; - - // Draw item and combo control background. Flags are same as with OnDrawItem. - // NB: Can't use name OnDrawBackground because of virtual function hiding warnings. - virtual void OnDrawBg(wxDC& dc, const wxRect& rect, int item, int flags) const; - - // Additional wxVListBox implementation (no need to override in derived classes) - virtual void OnDrawItem(wxDC& dc, const wxRect& rect, size_t n) const wxOVERRIDE; - void OnDrawBackground(wxDC& dc, const wxRect& rect, size_t n) const wxOVERRIDE; - - // filter mouse move events happening outside the list box - // move selection with cursor - void OnMouseMove(wxMouseEvent& event); - void OnKey(wxKeyEvent& event); - void OnChar(wxKeyEvent& event); - void OnLeftClick(wxMouseEvent& event); - - // Return the widest item width (recalculating it if necessary) - int GetWidestItemWidth() { CalcWidths(); return m_widestWidth; } - - // Return the index of the widest item (recalculating it if necessary) - int GetWidestItem() { CalcWidths(); return m_widestItem; } - - // Stop partial completion (when some other event occurs) - void StopPartialCompletion(); - - wxArrayString m_strings; - wxArrayPtrVoid m_clientDatas; - - wxFont m_useFont; - - //wxString m_stringValue; // displayed text (may be different than m_strings[m_value]) - int m_value; // selection - int m_itemHover; // on which item the cursor is - int m_itemHeight; // default item height (calculate from font size - // and used in the absence of callback) - wxClientDataType m_clientDataItemsType; - -private: - - // Cached item widths (in pixels). - wxArrayInt m_widths; - - // Width of currently widest item. - int m_widestWidth; - - // Index of currently widest item. - int m_widestItem; - - // Measure some items in next GetAdjustedSize? - bool m_widthsDirty; - - // Find widest item in next GetAdjustedSize? - bool m_findWidest; - - // has the mouse been released on this control? - bool m_clicked; - - // Recalculate widths if they are dirty - void CalcWidths(); - - // Partial completion string - wxString m_partialCompletionString; - - wxString m_stringValue; - -#if wxUSE_TIMER - // Partial completion timer - wxTimer m_partialCompletionTimer; -#endif // wxUSE_TIMER - - wxDECLARE_EVENT_TABLE(); -}; - - -// ---------------------------------------------------------------------------- -// wxOwnerDrawnComboBox: a generic wxComboBox that allows custom paint items -// in addition to many other types of customization already allowed by -// the wxComboCtrl. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxOwnerDrawnComboBox : - public wxWindowWithItems<wxComboCtrl, wxItemContainer> -{ - //friend class wxComboPopupWindow; - friend class wxVListBoxComboPopup; -public: - - // ctors and such - wxOwnerDrawnComboBox() { Init(); } - - wxOwnerDrawnComboBox(wxWindow *parent, - wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - int n, - const wxString choices[], - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - { - Init(); - - (void)Create(parent, id, value, pos, size, n, - choices, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - wxOwnerDrawnComboBox(wxWindow *parent, - wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - const wxArrayString& choices = wxArrayString(), - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - int n, - const wxString choices[], - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - virtual ~wxOwnerDrawnComboBox(); - - // Prevent app from using wxComboPopup - void SetPopupControl(wxVListBoxComboPopup* popup) - { - DoSetPopupControl(popup); - } - - // wxControlWithItems methods - virtual unsigned int GetCount() const wxOVERRIDE; - virtual wxString GetString(unsigned int n) const wxOVERRIDE; - virtual void SetString(unsigned int n, const wxString& s) wxOVERRIDE; - virtual int FindString(const wxString& s, bool bCase = false) const wxOVERRIDE; - virtual void Select(int n); - virtual int GetSelection() const wxOVERRIDE; - - // See wxComboBoxBase discussion of IsEmpty(). - bool IsListEmpty() const { return wxItemContainer::IsEmpty(); } - bool IsTextEmpty() const { return wxTextEntry::IsEmpty(); } - - // Override these just to maintain consistency with virtual methods - // between classes. - virtual void Clear() wxOVERRIDE; - virtual void GetSelection(long *from, long *to) const wxOVERRIDE; - - virtual void SetSelection(int n) wxOVERRIDE { Select(n); } - - - // Prevent a method from being hidden - virtual void SetSelection(long from, long to) wxOVERRIDE - { - wxComboCtrl::SetSelection(from,to); - } - - // Return the widest item width (recalculating it if necessary) - virtual int GetWidestItemWidth() { EnsurePopupControl(); return GetVListBoxComboPopup()->GetWidestItemWidth(); } - - // Return the index of the widest item (recalculating it if necessary) - virtual int GetWidestItem() { EnsurePopupControl(); return GetVListBoxComboPopup()->GetWidestItem(); } - - virtual bool IsSorted() const wxOVERRIDE { return HasFlag(wxCB_SORT); } - -protected: - virtual void DoClear() wxOVERRIDE; - virtual void DoDeleteOneItem(unsigned int n) wxOVERRIDE; - - // Callback for drawing. Font, background and text colour have been - // prepared according to selection, focus and such. - // item: item index to be drawn, may be wxNOT_FOUND when painting combo control itself - // and there is no valid selection - // flags: wxODCB_PAINTING_CONTROL is set if painting to combo control instead of list - virtual void OnDrawItem( wxDC& dc, const wxRect& rect, int item, int flags ) const; - - // Callback for item height, or -1 for default - virtual wxCoord OnMeasureItem( size_t item ) const; - - // Callback for item width, or -1 for default/undetermined - virtual wxCoord OnMeasureItemWidth( size_t item ) const; - - // override base implementation so we can return the size for the - // largest item - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - // Callback for background drawing. Flags are same as with - // OnDrawItem. - virtual void OnDrawBackground( wxDC& dc, const wxRect& rect, int item, int flags ) const; - - // NULL popup can be used to indicate default interface - virtual void DoSetPopupControl(wxComboPopup* popup) wxOVERRIDE; - - // clears all allocated client datas - void ClearClientDatas(); - - wxVListBoxComboPopup* GetVListBoxComboPopup() const - { - return (wxVListBoxComboPopup*) m_popupInterface; - } - - virtual int DoInsertItems(const wxArrayStringsAdapter& items, - unsigned int pos, - void **clientData, wxClientDataType type) wxOVERRIDE; - virtual void DoSetItemClientData(unsigned int n, void* clientData) wxOVERRIDE; - virtual void* DoGetItemClientData(unsigned int n) const wxOVERRIDE; - - // temporary storage for the initial choices - //const wxString* m_baseChoices; - //int m_baseChoicesCount; - wxArrayString m_initChs; - -private: - void Init(); - - wxDECLARE_EVENT_TABLE(); - - wxDECLARE_DYNAMIC_CLASS(wxOwnerDrawnComboBox); -}; - - -#endif // wxUSE_ODCOMBOBOX - -#endif - // _WX_ODCOMBO_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/accel.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/accel.h deleted file mode 100644 index 70ba837e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/accel.h +++ /dev/null @@ -1,33 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/accel.h -// Purpose: wxAcceleratorTable class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ACCEL_H_ -#define _WX_ACCEL_H_ - -#include "wx/string.h" -#include "wx/event.h" - -class WXDLLIMPEXP_CORE wxAcceleratorTable: public wxObject -{ - wxDECLARE_DYNAMIC_CLASS(wxAcceleratorTable); -public: - wxAcceleratorTable(); - wxAcceleratorTable(int n, const wxAcceleratorEntry entries[]); // Load from array - - virtual ~wxAcceleratorTable(); - - bool Ok() const { return IsOk(); } - bool IsOk() const; - - int GetCommand( wxKeyEvent &event ); -}; - -#endif - // _WX_ACCEL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/activityindicator.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/activityindicator.h deleted file mode 100644 index a6f78231..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/activityindicator.h +++ /dev/null @@ -1,59 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/activityindicator.h -// Purpose: Declaration of wxActivityIndicator for wxOSX (Cocoa only). -// Author: Vadim Zeitlin -// Created: 2015-03-08 -// Copyright: (c) 2015 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_ACTIVITYINDICATOR_H_ -#define _WX_OSX_ACTIVITYINDICATOR_H_ - -// ---------------------------------------------------------------------------- -// wxActivityIndicator: implementation using GtkSpinner. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxActivityIndicator : public wxActivityIndicatorBase -{ -public: - wxActivityIndicator() - { - Init(); - } - - explicit - wxActivityIndicator(wxWindow* parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxActivityIndicatorNameStr) - { - Init(); - - Create(parent, winid, pos, size, style, name); - } - - bool Create(wxWindow* parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxActivityIndicatorNameStr); - - virtual void Start() wxOVERRIDE; - virtual void Stop() wxOVERRIDE; - virtual bool IsRunning() const wxOVERRIDE; - -private: - // Common part of all ctors. - void Init() { m_isRunning = false; } - - bool m_isRunning; - - wxDECLARE_DYNAMIC_CLASS(wxActivityIndicator); - wxDECLARE_NO_COPY_CLASS(wxActivityIndicator); -}; - -#endif // _WX_OSX_ACTIVITYINDICATOR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/anybutton.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/anybutton.h deleted file mode 100644 index 31b579a4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/anybutton.h +++ /dev/null @@ -1,58 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: anybutton.h -// Purpose: wxAnyButton class -// Author: Stefan Csomor -// Created: 1998-01-01 (extracted from button.h) -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_ANYBUTTON_H_ -#define _WX_OSX_ANYBUTTON_H_ - -// Any button -class WXDLLIMPEXP_CORE wxAnyButton : public wxAnyButtonBase -{ -public: - wxAnyButton() {} - - static wxSize GetDefaultSize(); - - virtual void SetLabel(const wxString& label) wxOVERRIDE; - -protected: - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - void OnEnterWindow( wxMouseEvent& event); - void OnLeaveWindow( wxMouseEvent& event); - - virtual wxBitmap DoGetBitmap(State which) const wxOVERRIDE; - virtual void DoSetBitmap(const wxBitmap& bitmap, State which) wxOVERRIDE; - virtual void DoSetBitmapPosition(wxDirection dir) wxOVERRIDE; - - virtual void DoSetBitmapMargins(int x, int y) wxOVERRIDE - { - m_marginX = x; - m_marginY = y; - InvalidateBestSize(); - } - -#if wxUSE_MARKUP && wxOSX_USE_COCOA - virtual bool DoSetLabelMarkup(const wxString& markup) wxOVERRIDE; -#endif // wxUSE_MARKUP && wxOSX_USE_COCOA - - - // the margins around the bitmap - int m_marginX; - int m_marginY; - - // the bitmaps for the different state of the buttons, all of them may be - // invalid and the button only shows a bitmap at all if State_Normal bitmap - // is valid - wxBitmap m_bitmaps[State_Max]; - - wxDECLARE_NO_COPY_CLASS(wxAnyButton); - wxDECLARE_EVENT_TABLE(); -}; - -#endif // _WX_OSX_ANYBUTTON_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/app.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/app.h deleted file mode 100644 index cbd13b41..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/app.h +++ /dev/null @@ -1,173 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/app.h -// Purpose: wxApp class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_APP_H_ -#define _WX_APP_H_ - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/gdicmn.h" -#include "wx/event.h" - -class WXDLLIMPEXP_FWD_CORE wxFrame; -class WXDLLIMPEXP_FWD_CORE wxWindowMac; -class WXDLLIMPEXP_FWD_CORE wxApp ; -class WXDLLIMPEXP_FWD_CORE wxKeyEvent; -class WXDLLIMPEXP_FWD_BASE wxLog; -class WXDLLIMPEXP_FWD_CORE wxMacAutoreleasePool; - -// Force an exit from main loop -void WXDLLIMPEXP_CORE wxExit(); - -// Yield to other apps/messages -bool WXDLLIMPEXP_CORE wxYield(); - -// Represents the application. Derive OnInit and declare -// a new App object to start application -class WXDLLIMPEXP_CORE wxApp: public wxAppBase -{ - wxDECLARE_DYNAMIC_CLASS(wxApp); - - wxApp(); - virtual ~wxApp(); - - virtual void WakeUpIdle() wxOVERRIDE; - - virtual void SetPrintMode(int mode) wxOVERRIDE { m_printMode = mode; } - virtual int GetPrintMode() const { return m_printMode; } - - // calling OnInit with an auto-release pool ready ... - virtual bool CallOnInit() wxOVERRIDE; -#if wxUSE_GUI - // setting up all MacOS Specific Event-Handlers etc - virtual bool OnInitGui() wxOVERRIDE; -#endif // wxUSE_GUI - - virtual int OnRun() wxOVERRIDE; - - virtual bool ProcessIdle() wxOVERRIDE; - - // implementation only - void OnIdle(wxIdleEvent& event); - void OnEndSession(wxCloseEvent& event); - void OnQueryEndSession(wxCloseEvent& event); - -protected: - int m_printMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT - wxMacAutoreleasePool* m_macPool; - -public: - - static bool sm_isEmbedded; - // Implementation - virtual bool Initialize(int& argc, wxChar **argv) wxOVERRIDE; - virtual void CleanUp() wxOVERRIDE; - - // the installed application event handler - WXEVENTHANDLERREF MacGetEventHandler() { return m_macEventHandler ; } - WXEVENTHANDLERREF MacGetCurrentEventHandlerCallRef() { return m_macCurrentEventHandlerCallRef ; } - void MacSetCurrentEvent( WXEVENTREF event , WXEVENTHANDLERCALLREF handler ) - { m_macCurrentEvent = event ; m_macCurrentEventHandlerCallRef = handler ; } - - // adding a CFType object to be released only at the end of the current event cycle (increases the - // refcount of the object passed), needed in case we are in the middle of an event concering an object - // we want to delete and cannot do it immediately - // TODO change semantics to be in line with cocoa (make autrelease NOT increase the count) - void MacAddToAutorelease( void* cfrefobj ); - void MacReleaseAutoreleasePool(); - -public: - static wxWindow* s_captureWindow ; - static long s_lastModifiers ; - - int m_nCmdShow; - - // mac specifics -protected: -#if wxOSX_USE_COCOA - // override for support of custom app controllers - virtual WX_NSObject OSXCreateAppController(); -#endif - -private: - virtual bool DoInitGui(); - virtual void DoCleanUp(); - - WXEVENTHANDLERREF m_macEventHandler ; - WXEVENTHANDLERCALLREF m_macCurrentEventHandlerCallRef ; - WXEVENTREF m_macCurrentEvent ; - -public: - static long s_macAboutMenuItemId ; - static long s_macPreferencesMenuItemId ; - static long s_macExitMenuItemId ; - static wxString s_macHelpMenuTitleName ; - - WXEVENTREF MacGetCurrentEvent() { return m_macCurrentEvent ; } - - // For embedded use. By default does nothing. - virtual void MacHandleUnhandledEvent( WXEVENTREF ev ); - - bool MacSendKeyDownEvent( wxWindow* focus , long keyval , long modifiers , long when , wxChar uniChar ) ; - bool MacSendKeyUpEvent( wxWindow* focus , long keyval , long modifiers , long when , wxChar uniChar ) ; - bool MacSendCharEvent( wxWindow* focus , long keymessage , long modifiers , long when , wxChar uniChar ) ; - void MacCreateKeyEvent( wxKeyEvent& event, wxWindow* focus , long keymessage , long modifiers , long when , wxChar uniChar ) ; - // in response of an openFiles message with Cocoa and an - // open-document apple event - virtual void MacOpenFiles(const wxArrayString &fileNames) ; - // called by MacOpenFiles for each file. - virtual void MacOpenFile(const wxString &fileName) ; - // in response of a get-url apple event - virtual void MacOpenURL(const wxString &url) ; - // in response of a print-document apple event - virtual void MacPrintFiles(const wxArrayString &fileNames) ; - // called by MacPrintFiles for each file - virtual void MacPrintFile(const wxString &fileName) ; - // in response of a open-application apple event - virtual void MacNewFile() ; - // in response of a reopen-application apple event - virtual void MacReopenApp() ; - - // override this to return false from a non-bundled console app in order to stay in background ... - virtual bool OSXIsGUIApplication() { return true; } - -#if wxOSX_USE_COCOA_OR_IPHONE - // immediately before the native event loop launches - virtual void OSXOnWillFinishLaunching(); - // immediately when the native event loop starts, no events have been served yet - virtual void OSXOnDidFinishLaunching(); - // OS asks to terminate app, return no to stay running - virtual bool OSXOnShouldTerminate(); - // before application terminates - virtual void OSXOnWillTerminate(); - -private: - bool m_onInitResult; - bool m_inited; - wxArrayString m_openFiles; - wxArrayString m_printFiles; - wxString m_getURL; - -public: - bool OSXInitWasCalled() { return m_inited; } - void OSXStoreOpenFiles(const wxArrayString &files ) { m_openFiles = files ; } - void OSXStorePrintFiles(const wxArrayString &files ) { m_printFiles = files ; } - void OSXStoreOpenURL(const wxString &url ) { m_getURL = url ; } -#endif - - // Hide the application windows the same as the system hide command would do it. - void MacHideApp(); - - wxDECLARE_EVENT_TABLE(); -}; - -#endif - // _WX_APP_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/appprogress.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/appprogress.h deleted file mode 100644 index a64b2cc6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/appprogress.h +++ /dev/null @@ -1,36 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/appprogress.h -// Purpose: wxAppProgressIndicator OS X implementation -// Author: Tobias Taschner -// Created: 2014-10-22 -// Copyright: (c) 2014 wxWidgets development team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_APPPROG_H_ -#define _WX_OSX_APPPROG_H_ - -#include "wx/window.h" - -class WXDLLIMPEXP_CORE wxAppProgressIndicator - : public wxAppProgressIndicatorBase -{ -public: - wxAppProgressIndicator(wxWindow* parent = NULL, int maxValue = 100); - virtual ~wxAppProgressIndicator(); - - virtual bool IsAvailable() const wxOVERRIDE; - - virtual void SetValue(int value) wxOVERRIDE; - virtual void SetRange(int range) wxOVERRIDE; - virtual void Pulse() wxOVERRIDE; - virtual void Reset() wxOVERRIDE; - -private: - int m_maxValue; - void *m_dockIcon; - - wxDECLARE_NO_COPY_CLASS(wxAppProgressIndicator); -}; - -#endif // _WX_OSX_APPPROG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/bitmap.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/bitmap.h deleted file mode 100644 index 200d5a26..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/bitmap.h +++ /dev/null @@ -1,213 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/bitmap.h -// Purpose: wxBitmap class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BITMAP_H_ -#define _WX_BITMAP_H_ - -#include "wx/palette.h" - -// Bitmap -class WXDLLIMPEXP_FWD_CORE wxBitmap; -class wxBitmapRefData ; -class WXDLLIMPEXP_FWD_CORE wxBitmapHandler; -class WXDLLIMPEXP_FWD_CORE wxControl; -class WXDLLIMPEXP_FWD_CORE wxCursor; -class WXDLLIMPEXP_FWD_CORE wxDC; -class WXDLLIMPEXP_FWD_CORE wxIcon; -class WXDLLIMPEXP_FWD_CORE wxImage; -class WXDLLIMPEXP_FWD_CORE wxPixelDataBase; - -// A mask is a bitmap used for drawing bitmaps -// Internally it is stored as a 8 bit deep memory chunk, 0 = black means the source will be drawn -// 255 = white means the source will not be drawn, no other values will be present -// 8 bit is chosen only for performance reasons, note also that this is the inverse value range -// from alpha, where 0 = invisible , 255 = fully drawn - -class WXDLLIMPEXP_CORE wxMask: public wxObject -{ - wxDECLARE_DYNAMIC_CLASS(wxMask); - -public: - wxMask(); - - // Copy constructor - wxMask(const wxMask& mask); - - // Construct a mask from a bitmap and a colour indicating - // the transparent area - wxMask(const wxBitmap& bitmap, const wxColour& colour); - - // Construct a mask from a mono bitmap (black meaning show pixels, white meaning transparent) - wxMask(const wxBitmap& bitmap); - - // implementation helper only : construct a mask from a 32 bit memory buffer - wxMask(const wxMemoryBuffer& buf, int width , int height , int bytesPerRow ) ; - - virtual ~wxMask(); - - bool Create(const wxBitmap& bitmap, const wxColour& colour); - bool Create(const wxBitmap& bitmap); - bool Create(const wxMemoryBuffer& buf, int width , int height , int bytesPerRow ) ; - - wxBitmap GetBitmap() const; - - // Implementation below - - void Init() ; - - // a 8 bit depth mask - void* GetRawAccess() const; - int GetBytesPerRow() const { return m_bytesPerRow ; } - // renders/updates native representation when necessary - void RealizeNative() ; - - WXHBITMAP GetHBITMAP() const ; - - -private: - wxMemoryBuffer m_memBuf ; - int m_bytesPerRow ; - int m_width ; - int m_height ; - - WXHBITMAP m_maskBitmap ; - -}; - -class WXDLLIMPEXP_CORE wxBitmap: public wxBitmapBase -{ - wxDECLARE_DYNAMIC_CLASS(wxBitmap); - - friend class WXDLLIMPEXP_FWD_CORE wxBitmapHandler; - -public: - wxBitmap() {} // Platform-specific - - // Initialize with raw data. - wxBitmap(const char bits[], int width, int height, int depth = 1); - - // Initialize with XPM data - wxBitmap(const char* const* bits); - - // Load a file or resource - wxBitmap(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); - - // Constructor for generalised creation from data - wxBitmap(const void* data, wxBitmapType type, int width, int height, int depth = 1); - - // creates an bitmap from the native image format - wxBitmap(CGImageRef image, double scale = 1.0); - wxBitmap(WX_NSImage image); - wxBitmap(CGContextRef bitmapcontext); - - // Create a bitmap compatible with the given DC - wxBitmap(int width, int height, const wxDC& dc); - - // If depth is omitted, will create a bitmap compatible with the display - wxBitmap(int width, int height, int depth = -1) { (void)Create(width, height, depth); } - wxBitmap(const wxSize& sz, int depth = -1) { (void)Create(sz, depth); } - - // Convert from wxImage: - wxBitmap(const wxImage& image, int depth = -1, double scale = 1.0); - - // Convert from wxIcon - wxBitmap(const wxIcon& icon) { CopyFromIcon(icon); } - - virtual ~wxBitmap() {} - - wxImage ConvertToImage() const; - - // get the given part of bitmap - wxBitmap GetSubBitmap( const wxRect& rect ) const; - - virtual bool Create(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH); - virtual bool Create(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH) - { return Create(sz.GetWidth(), sz.GetHeight(), depth); } - - virtual bool Create(const void* data, wxBitmapType type, int width, int height, int depth = 1); - bool Create( CGImageRef image, double scale = 1.0 ); - bool Create( WX_NSImage image ); - bool Create( CGContextRef bitmapcontext); - - // Create a bitmap compatible with the given DC, inheriting its magnification factor - bool Create(int width, int height, const wxDC& dc); - - // Create a bitmap with a scale factor, width and height are multiplied with that factor - bool CreateScaled(int logwidth, int logheight, int depth, double logicalScale); - - // virtual bool Create( WXHICON icon) ; - virtual bool LoadFile(const wxString& name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); - virtual bool SaveFile(const wxString& name, wxBitmapType type, const wxPalette *cmap = NULL) const; - - wxBitmapRefData *GetBitmapData() const - { return (wxBitmapRefData *)m_refData; } - - // copies the contents and mask of the given (colour) icon to the bitmap - virtual bool CopyFromIcon(const wxIcon& icon); - - int GetWidth() const; - int GetHeight() const; - int GetDepth() const; - void SetWidth(int w); - void SetHeight(int h); - void SetDepth(int d); - void SetOk(bool isOk); - -#if wxUSE_PALETTE - wxPalette* GetPalette() const; - void SetPalette(const wxPalette& palette); -#endif // wxUSE_PALETTE - - wxMask *GetMask() const; - void SetMask(wxMask *mask) ; - - static void InitStandardHandlers(); - - // raw bitmap access support functions, for internal use only - void *GetRawData(wxPixelDataBase& data, int bpp); - void UngetRawData(wxPixelDataBase& data); - - // these functions are internal and shouldn't be used, they risk to - // disappear in the future - bool HasAlpha() const; - void UseAlpha(); - - // returns the 'native' implementation, a GWorldPtr for the content and one for the mask - WXHBITMAP GetHBITMAP( WXHBITMAP * mask = NULL ) const; - - // returns a CGImageRef which must released after usage with CGImageRelease - CGImageRef CreateCGImage() const ; - -#if wxOSX_USE_COCOA - // returns an autoreleased version of the image - WX_NSImage GetNSImage() const; -#endif -#if wxOSX_USE_IPHONE - // returns an autoreleased version of the image - WX_UIImage GetUIImage() const; -#endif - // returns a IconRef which must be retained before and released after usage - IconRef GetIconRef() const; - // returns a IconRef which must be released after usage - IconRef CreateIconRef() const; - // get read only access to the underlying buffer - void *GetRawAccess() const ; - // brackets to the underlying OS structure for read/write access - // makes sure that no cached images will be constructed until terminated - void *BeginRawAccess() ; - void EndRawAccess() ; - - double GetScaleFactor() const; -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; -}; - -#endif // _WX_BITMAP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/bmpbuttn.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/bmpbuttn.h deleted file mode 100644 index 813a6dcb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/bmpbuttn.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/bmpbuttn.h -// Purpose: wxBitmapButton class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_BMPBUTTN_H_ -#define _WX_OSX_BMPBUTTN_H_ - -#include "wx/button.h" - -#define wxDEFAULT_BUTTON_MARGIN 4 - -class WXDLLIMPEXP_CORE wxBitmapButton : public wxBitmapButtonBase -{ -public: - wxBitmapButton() - { - SetMargins(wxDEFAULT_BUTTON_MARGIN, wxDEFAULT_BUTTON_MARGIN); - } - - wxBitmapButton(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - { - Create(parent, id, bitmap, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - -protected: - - virtual wxSize DoGetBestSize() const; - - wxDECLARE_DYNAMIC_CLASS(wxBitmapButton); -}; - -#endif // _WX_OSX_BMPBUTTN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/brush.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/brush.h deleted file mode 100644 index 072cfa4d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/brush.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/brush.h -// Purpose: wxBrush class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BRUSH_H_ -#define _WX_BRUSH_H_ - -#include "wx/gdicmn.h" -#include "wx/gdiobj.h" -#include "wx/bitmap.h" - -class WXDLLIMPEXP_FWD_CORE wxBrush; - -// Brush -class WXDLLIMPEXP_CORE wxBrush: public wxBrushBase -{ -public: - wxBrush(); - wxBrush(const wxColour& col, wxBrushStyle style = wxBRUSHSTYLE_SOLID); - wxBrush(const wxBitmap& stipple); - virtual ~wxBrush(); - - virtual void SetColour(const wxColour& col) ; - virtual void SetColour(unsigned char r, unsigned char g, unsigned char b) ; - virtual void SetStyle(wxBrushStyle style) ; - virtual void SetStipple(const wxBitmap& stipple) ; - - bool operator==(const wxBrush& brush) const; - bool operator!=(const wxBrush& brush) const { return !(*this == brush); } - - wxColour GetColour() const; - wxBrushStyle GetStyle() const ; - wxBitmap *GetStipple() const ; - - - wxDEPRECATED_MSG("use wxBRUSHSTYLE_XXX constants") - wxBrush(const wxColour& col, int style); - - wxDEPRECATED_MSG("use wxBRUSHSTYLE_XXX constants") - void SetStyle(int style) { SetStyle((wxBrushStyle)style); } - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - -private: - wxDECLARE_DYNAMIC_CLASS(wxBrush); -}; - -#endif // _WX_BRUSH_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/button.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/button.h deleted file mode 100644 index 5726b211..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/button.h +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/button.h -// Purpose: wxButton class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_BUTTON_H_ -#define _WX_OSX_BUTTON_H_ - -#include "wx/control.h" -#include "wx/gdicmn.h" - -// Pushbutton -class WXDLLIMPEXP_CORE wxButton : public wxButtonBase -{ -public: - wxButton() {} - wxButton(wxWindow *parent, - wxWindowID id, - const wxString& label = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - virtual void SetLabel(const wxString& label); - virtual wxWindow *SetDefault(); - virtual void Command(wxCommandEvent& event); - - // osx specific event handling common for all osx-ports - - virtual bool OSXHandleClicked( double timestampsec ); - -#if wxOSX_USE_COCOA - void OSXUpdateAfterLabelChange(const wxString& label); -#endif - -protected: - wxDECLARE_DYNAMIC_CLASS(wxButton); -}; - -#endif // _WX_OSX_BUTTON_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/carbon/private/overlay.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/carbon/private/overlay.h deleted file mode 100644 index f5ebe1d8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/carbon/private/overlay.h +++ /dev/null @@ -1,57 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/carbon/private/overlay.h -// Purpose: wxOverlayImpl declaration -// Author: Stefan Csomor -// Modified by: -// Created: 2006-10-20 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MAC_CARBON_PRIVATE_OVERLAY_H_ -#define _WX_MAC_CARBON_PRIVATE_OVERLAY_H_ - -#include "wx/osx/private.h" -#include "wx/toplevel.h" -#include "wx/graphics.h" - -class wxOverlayImpl -{ -public: - wxOverlayImpl() ; - ~wxOverlayImpl() ; - - - // clears the overlay without restoring the former state - // to be done eg when the window content has been changed and repainted - void Reset(); - - // returns true if it has been setup - bool IsOk(); - - void Init( wxDC* dc, int x , int y , int width , int height ); - - void BeginDrawing( wxDC* dc); - - void EndDrawing( wxDC* dc); - - void Clear( wxDC* dc); - -private: - OSStatus CreateOverlayWindow(); - - void MacGetBounds( Rect *bounds ); - - WindowRef m_overlayWindow; - WindowRef m_overlayParentWindow; - CGContextRef m_overlayContext ; - // we store the window in case we would have to issue a Refresh() - wxWindow* m_window ; - - int m_x ; - int m_y ; - int m_width ; - int m_height ; -} ; - -#endif // _WX_MAC_CARBON_PRIVATE_OVERLAY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/carbon/private/print.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/carbon/private/print.h deleted file mode 100644 index eeda2bef..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/carbon/private/print.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/carbon/private/print.h -// Purpose: private implementation for printing on OS X -// Author: Stefan Csomor -// Modified by: -// Created: 03/02/99 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MAC_PRIVATE_PRINT_H_ -#define _WX_MAC_PRIVATE_PRINT_H_ - -#include "wx/cmndata.h" -#include "wx/print.h" - -// for PrintingManager -#include "ApplicationServices/ApplicationServices.h" - -class WXDLLIMPEXP_CORE wxOSXPrintData : public wxPrintNativeDataBase -{ -public: - wxOSXPrintData(); - virtual ~wxOSXPrintData(); - - virtual bool TransferTo( wxPrintData &data ); - virtual bool TransferFrom( const wxPrintData &data ); - - virtual bool IsOk() const ; - - virtual void TransferFrom( const wxPageSetupDialogData * ); - virtual void TransferTo( wxPageSetupDialogData * ); - - virtual void TransferFrom( const wxPrintDialogData * ); - virtual void TransferTo( wxPrintDialogData * ); - - PMPrintSession GetPrintSession() { return m_macPrintSession; } - PMPageFormat GetPageFormat() { return m_macPageFormat; } - PMPrintSettings GetPrintSettings() { return m_macPrintSettings; } -protected : - virtual void TransferPrinterNameFrom( const wxPrintData &data ); - virtual void TransferPaperInfoFrom( const wxPrintData &data ); - virtual void TransferResolutionFrom( const wxPrintData &data ); - - virtual void TransferPrinterNameTo( wxPrintData &data ); - virtual void TransferPaperInfoTo( wxPrintData &data ); - virtual void TransferResolutionTo( wxPrintData &data ); - - - virtual void UpdateFromPMState(); - virtual void UpdateToPMState(); - - PMPrintSession m_macPrintSession ; - PMPageFormat m_macPageFormat ; - PMPrintSettings m_macPrintSettings ; - PMPaper m_macPaper; -private: - wxDECLARE_DYNAMIC_CLASS(wxOSXPrintData); -} ; - -WXDLLIMPEXP_CORE wxPrintNativeDataBase* wxOSXCreatePrintData(); - -#if wxOSX_USE_COCOA -class WXDLLIMPEXP_CORE wxOSXCocoaPrintData : public wxOSXPrintData -{ -public: - wxOSXCocoaPrintData(); - virtual ~wxOSXCocoaPrintData(); - - WX_NSPrintInfo GetNSPrintInfo() { return m_macPrintInfo; } -protected: - virtual void UpdateFromPMState(); - virtual void UpdateToPMState(); - - WX_NSPrintInfo m_macPrintInfo; -private: - wxDECLARE_DYNAMIC_CLASS(wxOSXCocoaPrintData); -} ; -#endif - -#endif // _WX_MAC_PRIVATE_PRINT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/carbon/region.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/carbon/region.h deleted file mode 100644 index 1aa40e46..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/carbon/region.h +++ /dev/null @@ -1,102 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/carbon/region.h -// Purpose: wxRegion class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MAC_CARBON_REGION_H_ -#define _WX_MAC_CARBON_REGION_H_ - -#include "wx/list.h" - -class WXDLLIMPEXP_CORE wxRegion : public wxRegionWithCombine -{ -public: - wxRegion() { } - wxRegion(long x, long y, long w, long h); - wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight); - wxRegion(const wxRect& rect); - wxRegion( WXHRGN hRegion ); - wxRegion(size_t n, const wxPoint *points, wxPolygonFillMode fillStyle = wxODDEVEN_RULE ); -#if wxUSE_IMAGE - wxRegion(const wxBitmap& bmp) - { - Union(bmp); - } - wxRegion(const wxBitmap& bmp, - const wxColour& transColour, int tolerance = 0) - { - Union(bmp, transColour, tolerance); - } -#endif - - virtual ~wxRegion(); - - // wxRegionBase methods - virtual void Clear(); - virtual bool IsEmpty() const; - - // Internal - WXHRGN GetWXHRGN() const ; - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - - virtual bool DoIsEqual(const wxRegion& region) const; - virtual bool DoGetBox(wxCoord& x, wxCoord& y, wxCoord& w, wxCoord& h) const; - virtual wxRegionContain DoContainsPoint(wxCoord x, wxCoord y) const; - virtual wxRegionContain DoContainsRect(const wxRect& rect) const; - - virtual bool DoOffset(wxCoord x, wxCoord y); - virtual bool DoCombine(const wxRegion& region, wxRegionOp op); - virtual bool DoUnionWithRect(const wxRect& rect); - -private: - wxDECLARE_DYNAMIC_CLASS(wxRegion); - friend class WXDLLIMPEXP_FWD_CORE wxRegionIterator; -}; - -class WXDLLIMPEXP_CORE wxRegionIterator : public wxObject -{ -public: - wxRegionIterator(); - wxRegionIterator(const wxRegion& region); - wxRegionIterator(const wxRegionIterator& iterator); - virtual ~wxRegionIterator(); - - wxRegionIterator& operator=(const wxRegionIterator& iterator); - - void Reset() { m_current = 0; } - void Reset(const wxRegion& region); - - operator bool () const { return m_current < m_numRects; } - bool HaveRects() const { return m_current < m_numRects; } - - wxRegionIterator& operator++(); - wxRegionIterator operator++(int); - - long GetX() const; - long GetY() const; - long GetW() const; - long GetWidth() const { return GetW(); } - long GetH() const; - long GetHeight() const { return GetH(); } - wxRect GetRect() const { return wxRect((int)GetX(), (int)GetY(), (int)GetWidth(), (int)GetHeight()); } - -private: - void SetRects(long numRects, wxRect *rects); - - long m_current; - long m_numRects; - wxRegion m_region; - wxRect* m_rects; - - wxDECLARE_DYNAMIC_CLASS(wxRegionIterator); -}; - -#endif // _WX_MAC_CARBON_REGION_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/checkbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/checkbox.h deleted file mode 100644 index c81865fb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/checkbox.h +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/checkbox.h -// Purpose: wxCheckBox class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHECKBOX_H_ -#define _WX_CHECKBOX_H_ - -// Checkbox item (single checkbox) -class WXDLLIMPEXP_CORE wxCheckBox : public wxCheckBoxBase -{ -public: - wxCheckBox() { } - wxCheckBox(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - virtual void SetValue(bool); - virtual bool GetValue() const; - - virtual void Command(wxCommandEvent& event); - - // osx specific event handling common for all osx-ports - - virtual bool OSXHandleClicked( double timestampsec ); -protected: - void DoSet3StateValue(wxCheckBoxState val); - virtual wxCheckBoxState DoGet3StateValue() const; - - wxDECLARE_DYNAMIC_CLASS(wxCheckBox); -}; - -class WXDLLIMPEXP_FWD_CORE wxBitmap; -class WXDLLIMPEXP_CORE wxBitmapCheckBox: public wxCheckBox -{ -public: - int checkWidth; - int checkHeight; - - wxBitmapCheckBox() - : checkWidth(-1), checkHeight(-1) - { } - - wxBitmapCheckBox(wxWindow *parent, wxWindowID id, const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxBitmap *bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - virtual void SetValue(bool); - virtual bool GetValue() const; - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - virtual void SetLabel(const wxBitmap *bitmap); - virtual void SetLabel( const wxString & WXUNUSED(name) ) {} - - wxDECLARE_DYNAMIC_CLASS(wxBitmapCheckBox); -}; -#endif - // _WX_CHECKBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/checklst.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/checklst.h deleted file mode 100644 index 3039639a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/checklst.h +++ /dev/null @@ -1,93 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/checklst.h -// Purpose: wxCheckListBox class - a listbox with checkable items -// Note: this is an optional class. -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MAC_CHECKLST_H_ -#define _WX_MAC_CHECKLST_H_ - -class WXDLLIMPEXP_CORE wxCheckListBox : public wxCheckListBoxBase -{ -public: - // ctors - wxCheckListBox() { Init(); } - wxCheckListBox(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int nStrings = 0, - const wxString *choices = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr) - { - Init(); - - Create(parent, id, pos, size, nStrings, choices, style, validator, name); - } - wxCheckListBox(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr) - { - Init(); - - Create(parent, id, pos, size, choices, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int nStrings = 0, - const wxString *choices = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - // items may be checked - bool IsChecked(unsigned int uiIndex) const wxOVERRIDE; - void Check(unsigned int uiIndex, bool bCheck = true) wxOVERRIDE; - - // data callbacks - virtual void GetValueCallback( unsigned int n, wxListWidgetColumn* col , wxListWidgetCellValue& value ) wxOVERRIDE; - virtual void SetValueCallback( unsigned int n, wxListWidgetColumn* col , wxListWidgetCellValue& value ) wxOVERRIDE; - -protected: - // override all methods which add/delete items to update m_checks array as - // well - virtual void OnItemInserted(unsigned int pos) wxOVERRIDE; - virtual void DoDeleteOneItem(unsigned int n) wxOVERRIDE; - virtual void DoClear() wxOVERRIDE; - - // the array containing the checked status of the items - wxArrayInt m_checks; - - wxListWidgetColumn* m_checkColumn ; - - void Init(); - -private: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxCheckListBox); -}; - -#endif // _WX_MAC_CHECKLST_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/chkconf.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/chkconf.h deleted file mode 100644 index 113f8052..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/chkconf.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Name: wx/osx/chkconf.h - * Purpose: Mac-specific config settings checks - * Author: Vadim Zeitlin - * Modified by: - * Created: 2005-04-05 (extracted from wx/chkconf.h) - * Copyright: (c) 2005 Vadim Zeitlin <vadim@wxwidgets.org> - * Licence: wxWindows licence - */ - -/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ - -#ifndef _WX_OSX_CHKCONF_H_ -#define _WX_OSX_CHKCONF_H_ - -/* - * check graphics context option, must be on for every os x platform - * we only use core graphics now on all builds, try to catch attempts - * to configure the build otherwise and give error messages - */ - -#if wxUSE_GUI && (!wxUSE_GRAPHICS_CONTEXT || \ - ( defined( wxMAC_USE_CORE_GRAPHICS ) && !wxMAC_USE_CORE_GRAPHICS )) -# error "OS X builds use CoreGraphics in this wx version, you cannot turn back to QuickDraw completely" -#endif - -/* - * using mixins of cocoa functionality - */ - -#ifdef __WXOSX_COCOA__ - #define wxOSX_USE_COCOA 1 -#else - #define wxOSX_USE_COCOA 0 -#endif - -#ifdef __WXOSX_CARBON__ - #define wxOSX_USE_CARBON 1 -#else - #define wxOSX_USE_CARBON 0 -#endif - -#ifdef __WXOSX_IPHONE__ - #define wxOSX_USE_IPHONE 1 -#else - #define wxOSX_USE_IPHONE 0 -#endif - -/* - * setting flags according to the platform - */ - -#ifdef __LP64__ - #if wxOSX_USE_CARBON - #error "Carbon does not support 64bit" - #endif -#endif - -/* - * combination flags - */ - -#if wxOSX_USE_COCOA || wxOSX_USE_CARBON - #define wxOSX_USE_COCOA_OR_CARBON 1 -#else - #define wxOSX_USE_COCOA_OR_CARBON 0 -#endif - -#if wxOSX_USE_COCOA || wxOSX_USE_IPHONE - #define wxOSX_USE_COCOA_OR_IPHONE 1 -#else - #define wxOSX_USE_COCOA_OR_IPHONE 0 -#endif - -#if wxOSX_USE_IPHONE - #include "wx/osx/iphone/chkconf.h" -#elif wxOSX_USE_COCOA - #include "wx/osx/cocoa/chkconf.h" -#endif - -#endif /* _WX_OSX_CHKCONF_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/choice.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/choice.h deleted file mode 100644 index e261782e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/choice.h +++ /dev/null @@ -1,102 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/choice.h -// Purpose: wxChoice class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHOICE_H_ -#define _WX_CHOICE_H_ - -#include "wx/control.h" - -#include "wx/dynarray.h" -#include "wx/arrstr.h" - -WX_DEFINE_ARRAY( char * , wxChoiceDataArray ) ; - -// Choice item -class WXDLLIMPEXP_CORE wxChoice: public wxChoiceBase -{ - wxDECLARE_DYNAMIC_CLASS(wxChoice); - -public: - wxChoice() - : m_strings(), m_datas() - {} - - virtual ~wxChoice() ; - - wxChoice(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr) - { - Create(parent, id, pos, size, n, choices, style, validator, name); - } - wxChoice(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr) - { - Create(parent, id, pos, size, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr); - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr); - - virtual unsigned int GetCount() const ; - virtual int GetSelection() const ; - virtual void SetSelection(int n); - - virtual int FindString(const wxString& s, bool bCase = false) const; - virtual wxString GetString(unsigned int n) const ; - virtual void SetString(unsigned int pos, const wxString& s); - // osx specific event handling common for all osx-ports - - virtual bool OSXHandleClicked( double timestampsec ); - -protected: - virtual void DoDeleteOneItem(unsigned int n); - virtual void DoClear(); - - virtual wxSize DoGetBestSize() const ; - virtual int DoInsertItems(const wxArrayStringsAdapter& items, - unsigned int pos, - void **clientData, wxClientDataType type); - - virtual void DoSetItemClientData(unsigned int n, void* clientData); - virtual void* DoGetItemClientData(unsigned int n) const; - - wxArrayString m_strings; - wxChoiceDataArray m_datas ; - wxMenu* m_popUpMenu ; - -private: - // This should be called when the number of items in the control changes. - void DoAfterItemCountChange(); -}; - -#endif - // _WX_CHOICE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/clipbrd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/clipbrd.h deleted file mode 100644 index 2c45068e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/clipbrd.h +++ /dev/null @@ -1,67 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/clipbrd.h -// Purpose: Clipboard functionality. -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CLIPBRD_H_ -#define _WX_CLIPBRD_H_ - -#if wxUSE_CLIPBOARD - -#include "wx/osx/core/cfref.h" - -//----------------------------------------------------------------------------- -// wxClipboard -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxClipboard : public wxClipboardBase -{ -public: - wxClipboard(); - virtual ~wxClipboard(); - - // open the clipboard before SetData() and GetData() - virtual bool Open(); - - // close the clipboard after SetData() and GetData() - virtual void Close(); - - // query whether the clipboard is opened - virtual bool IsOpened() const; - - // set the clipboard data. all other formats will be deleted. - virtual bool SetData( wxDataObject *data ); - - // add to the clipboard data. - virtual bool AddData( wxDataObject *data ); - - // ask if data in correct format is available - virtual bool IsSupported( const wxDataFormat& format ); - - // fill data with data on the clipboard (if available) - virtual bool GetData( wxDataObject& data ); - - // clears wxTheClipboard and the system's clipboard if possible - virtual void Clear(); - - // flushes the clipboard: this means that the data which is currently on - // clipboard will stay available even after the application exits (possibly - // eating memory), otherwise the clipboard will be emptied on exit - virtual bool Flush(); - -private: - wxDataObject *m_data; - bool m_open; - wxCFRef<PasteboardRef> m_pasteboard; - - wxDECLARE_DYNAMIC_CLASS(wxClipboard); -}; - -#endif // wxUSE_CLIPBOARD - -#endif // _WX_CLIPBRD_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/chkconf.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/chkconf.h deleted file mode 100644 index 4cb5623b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/chkconf.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Name: wx/osx/cocoa/chkconf.h - * Purpose: Compiler-specific configuration checking - * Author: Stefan Csomor - * Modified by: - * Created: 2008-07-30 - * Copyright: (c) Stefan Csomor - * Licence: wxWindows licence - */ - -#ifndef _WX_OSX_COCOA_CHKCONF_H_ -#define _WX_OSX_COCOA_CHKCONF_H_ - -/* Many wchar functions (and also strnlen(), for some reason) are only - available since 10.7 so don't use them if we want to build the applications - that would run under 10.6 and earlier. */ -#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7 -#define HAVE_STRNLEN 1 -#define HAVE_WCSDUP 1 -#define HAVE_WCSNLEN 1 -#define HAVE_WCSCASECMP 1 -#define HAVE_WCSNCASECMP 1 -#endif - -/* - * native (1) or emulated (0) toolbar - */ - -#ifndef wxOSX_USE_NATIVE_TOOLBAR - #define wxOSX_USE_NATIVE_TOOLBAR 1 -#endif - -/* - * leave is isFlipped and don't override - */ -#ifndef wxOSX_USE_NATIVE_FLIPPED - #define wxOSX_USE_NATIVE_FLIPPED 1 -#endif - -/* - * text rendering system - */ - -#define wxOSX_USE_ATSU_TEXT 0 - -/* - * Audio System - */ - -#define wxOSX_USE_QUICKTIME 0 -#define wxOSX_USE_AUDIOTOOLBOX 1 - -/* - Use the more efficient FSEvents API instead of kqueue - events for file system watcher, but only on OS X >= 10.7 since - that version introduced a flag that allows watching files as - well as sub directories. - */ -#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7 - #define wxHAVE_FSEVENTS_FILE_NOTIFICATIONS 1 -#endif - -/* - * turning off capabilities that don't work under cocoa yet - */ - -#endif - /* _WX_MAC_CHKCONF_H_ */ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/dataview.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/dataview.h deleted file mode 100644 index 65fc99c2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/dataview.h +++ /dev/null @@ -1,516 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/cocoa/dataview.h -// Purpose: wxDataViewCtrl native implementation header for carbon -// Author: -// Copyright: (c) 2009 -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DATAVIEWCTRL_COCOOA_H_ -#define _WX_DATAVIEWCTRL_COCOOA_H_ - -#include "wx/defs.h" - -#import <Cocoa/Cocoa.h> - -#include "wx/osx/core/dataview.h" -#include "wx/osx/private.h" - -// Forward declaration -class wxCocoaDataViewControl; - -/* - Dramatis personae: - - [vertical arrows indicate inheritance, horizontal -- aggregation] - - - wxWindow ---> wxWidgetCocoaImpl wxDataViewWidgetImpl NSOutlineView - | \ / | - | \ / | - | \ / | - v \/ \/ v - wxDataViewCtrl -------> wxCocoaDataViewControl <-------> wxCocoaOutlineView - - - The right most classes are Objective-C only and can't be used from (pure) - C++ code. - */ - -// ============================================================================ -// wxPointerObject: simply stores a pointer, without taking its ownership -// ============================================================================ - -// Two pointer objects are equal if the containing pointers are equal. This -// means also that the hash value of a pointer object depends only on the -// stored pointer. - -@interface wxPointerObject : NSObject -{ - void* pointer; -} - - -(id) initWithPointer:(void*)initPointer; - - -(void*) pointer; - -(void) setPointer:(void*)newPointer; -@end - -// ============================================================================ -// wxSortDescriptorObject: helper class to use native sorting facilities -// ============================================================================ - -@interface wxSortDescriptorObject : NSSortDescriptor<NSCopying> -{ - wxDataViewColumn* columnPtr; // pointer to the sorting column - - wxDataViewModel* modelPtr; // pointer to model -} - - -(id) - initWithModelPtr:(wxDataViewModel*)initModelPtr - sortingColumnPtr:(wxDataViewColumn*)initColumnPtr - ascending:(BOOL)sortAscending; - - -(wxDataViewColumn*) columnPtr; - -(wxDataViewModel*) modelPtr; - - -(void) setColumnPtr:(wxDataViewColumn*)newColumnPtr; - -(void) setModelPtr:(wxDataViewModel*)newModelPtr; -@end - -// ============================================================================ -// wxDataViewColumnNativeData: extra data for wxDataViewColumn -// ============================================================================ - -class wxDataViewColumnNativeData -{ -public: - wxDataViewColumnNativeData() : m_NativeColumnPtr(NULL) - { - } - - wxDataViewColumnNativeData(NSTableColumn* initNativeColumnPtr) - : m_NativeColumnPtr(initNativeColumnPtr) - { - } - - NSTableColumn* GetNativeColumnPtr() const - { - return m_NativeColumnPtr; - } - - void SetNativeColumnPtr(NSTableColumn* newNativeColumnPtr) - { - m_NativeColumnPtr = newNativeColumnPtr; - } - -private: - // not owned by us - NSTableColumn* m_NativeColumnPtr; -}; - -// ============================================================================ -// wxDataViewRendererNativeData: extra data for wxDataViewRenderer -// ============================================================================ - -class wxDataViewRendererNativeData -{ -public: - wxDataViewRendererNativeData() - : m_Object(NULL), m_ColumnCell(NULL) - { - Init(); - } - - wxDataViewRendererNativeData(NSCell* initColumnCell) - : m_Object(NULL), m_ColumnCell([initColumnCell retain]) - { - Init(); - } - - wxDataViewRendererNativeData(NSCell* initColumnCell, id initObject) - : m_Object([initObject retain]), m_ColumnCell([initColumnCell retain]) - { - Init(); - } - - ~wxDataViewRendererNativeData() - { - [m_ColumnCell release]; - [m_Object release]; - - [m_origFont release]; - [m_origTextColour release]; - } - - NSCell* GetColumnCell() const { return m_ColumnCell; } - NSTableColumn* GetColumnPtr() const { return m_TableColumnPtr; } - id GetItem() const { return m_Item; } - NSCell* GetItemCell() const { return m_ItemCell; } - id GetObject() const { return m_Object; } - - void SetColumnCell(NSCell* newCell) - { - [newCell retain]; - [m_ColumnCell release]; - m_ColumnCell = newCell; - } - void SetColumnPtr(NSTableColumn* newColumnPtr) - { - m_TableColumnPtr = newColumnPtr; - } - void SetItem(id newItem) - { - m_Item = newItem; - } - void SetItemCell(NSCell* newCell) - { - m_ItemCell = newCell; - } - void SetObject(id newObject) - { - [newObject retain]; - [m_Object release]; - m_Object = newObject; - } - - // The original cell font and text colour stored here are NULL by default - // and are only initialized to the values retrieved from the cell when we - // change them from wxCocoaOutlineView:willDisplayCell:forTableColumn:item: - // which calls our SaveOriginalXXX() methods before changing the cell - // attributes. - // - // This allows us to avoid doing anything for the columns without any - // attributes but still be able to restore the correct attributes for the - // ones that do. - NSFont *GetOriginalFont() const { return m_origFont; } - NSColor *GetOriginalTextColour() const { return m_origTextColour; } - - void SaveOriginalFont(NSFont *font) - { - m_origFont = [font retain]; - } - - void SaveOriginalTextColour(NSColor *textColour) - { - m_origTextColour = [textColour retain]; - } - - // The ellipsization mode which we need to set for each cell being rendered. - void SetEllipsizeMode(wxEllipsizeMode mode) { m_ellipsizeMode = mode; } - wxEllipsizeMode GetEllipsizeMode() const { return m_ellipsizeMode; } - - // Set the line break mode for the given cell using our m_ellipsizeMode - void ApplyLineBreakMode(NSCell *cell); - -private: - // common part of all ctors - void Init(); - - id m_Item; // item NOT owned by renderer - - // object that can be used by renderer for storing special data (owned by - // renderer) - id m_Object; - - NSCell* m_ColumnCell; // column's cell is owned by renderer - NSCell* m_ItemCell; // item's cell is NOT owned by renderer - - NSTableColumn* m_TableColumnPtr; // column NOT owned by renderer - - // we own those if they're non-NULL - NSFont *m_origFont; - NSColor *m_origTextColour; - - wxEllipsizeMode m_ellipsizeMode; -}; - -// ============================================================================ -// wxCocoaOutlineDataSource -// ============================================================================ - -// This class implements the data source delegate for the outline view. -// As only an informal protocol exists this class inherits from NSObject only. -// -// As mentioned in the documentation for NSOutlineView the native control does -// not own any data. Therefore, it has to be done by the data source. -// Unfortunately, wxWidget's data source is a C++ data source but -// NSOutlineDataSource requires objects as data. Therefore, the data (or better -// the native item objects) have to be stored additionally in the native data -// source. -// NSOutlineView requires quick access to the item objects and quick linear -// access to an item's children. This requires normally a hash type of storage -// for the item object itself and an array structure for each item's children. -// This means that basically two times the whole structure of wxWidget's model -// class has to be stored. -// This implementation is using a compromise: all items that are in use by the -// control are stored in a set (from there they can be easily retrieved) and -// owned by the set. Furthermore, children of the last parent are stored -// in a linear list. -// -@interface wxCocoaOutlineDataSource : NSObject <NSOutlineViewDataSource> -{ - // descriptors specifying the sorting (currently the array only holds one - // object only) - NSArray* sortDescriptors; - - NSMutableArray* children; // buffered children - - NSMutableSet* items; // stores all items that are in use by the control - - wxCocoaDataViewControl* implementation; - - wxDataViewModel* model; - - // parent of the buffered children; the object is owned - wxPointerObject* currentParentItem; -} - - // methods of informal protocol: - -(BOOL) - outlineView:(NSOutlineView*)outlineView - acceptDrop:(id<NSDraggingInfo>)info - item:(id)item - childIndex:(NSInteger)index; - - -(id) - outlineView:(NSOutlineView*)outlineView - child:(NSInteger)index - ofItem:(id)item; - - -(id) - outlineView:(NSOutlineView*)outlineView - objectValueForTableColumn:(NSTableColumn*)tableColumn - byItem:(id)item; - - -(BOOL) - outlineView:(NSOutlineView*)outlineView - isItemExpandable:(id)item; - - -(NSInteger) - outlineView:(NSOutlineView*)outlineView - numberOfChildrenOfItem:(id)item; - - -(NSDragOperation) - outlineView:(NSOutlineView*)outlineView - validateDrop:(id<NSDraggingInfo>)info - proposedItem:(id)item - proposedChildIndex:(NSInteger)index; - - -(BOOL) - outlineView:(NSOutlineView*)outlineView - writeItems:(NSArray*)items - toPasteboard:(NSPasteboard*)pasteboard; - - // buffer for items handling - -(void) addToBuffer:(wxPointerObject*)item; - -(void) clearBuffer; - // returns the item in the buffer that has got the same pointer as "item", - // if such an item does not exist nil is returned - -(wxPointerObject*) getDataViewItemFromBuffer:(const wxDataViewItem&)item; - -(wxPointerObject*) getItemFromBuffer:(wxPointerObject*)item; - -(BOOL) isInBuffer:(wxPointerObject*)item; - -(void) removeFromBuffer:(wxPointerObject*)item; - - // buffered children handling - -(void) clearChildren; - -(wxPointerObject*) getChild:(NSUInteger)index; - -(NSUInteger) getChildCount; - - // buffer handling - -(void) clearBuffers; - - // sorting - -(NSArray*) sortDescriptors; - -(void) setSortDescriptors:(NSArray*)newSortDescriptors; - - // access to wxWidgets variables - -(wxPointerObject*) currentParentItem; - -(wxCocoaDataViewControl*) implementation; - -(wxDataViewModel*) model; - -(void) setCurrentParentItem:(wxPointerObject*)newCurrentParentItem; - -(void) setImplementation:(wxCocoaDataViewControl*)newImplementation; - -(void) setModel:(wxDataViewModel*)newModel; - - // other methods - -(void) - bufferItem:(wxPointerObject*)parentItem - withChildren:(wxDataViewItemArray*)dataViewChildrenPtr; -@end - -// ============================================================================ -// wxCustomCell: used for custom renderers -// ============================================================================ - -@interface wxCustomCell : NSTextFieldCell -{ -} - - -(NSSize) cellSize; -@end - -// ============================================================================ -// wxImageTextCell -// ============================================================================ -// -// As the native cocoa environment does not have a cell displaying an icon/ -// image and text at the same time, it has to be implemented by the user. -// This implementation follows the implementation of Chuck Pisula in Apple's -// DragNDropOutline sample application. -// Although in wxDataViewCtrl icons are used on OSX icons do not exist for -// display. Therefore, the cell is also called wxImageTextCell. -// Instead of displaying images of any size (which is possible) this cell uses -// a fixed size for displaying the image. Larger images are scaled to fit -// into their reserved space. Smaller or not existing images use the fixed -// reserved size and are scaled if necessary. -// -@interface wxImageTextCell : NSTextFieldCell -{ -@private - CGFloat xImageShift; // shift for the image in x-direction from border - CGFloat spaceImageText; // space between image and text - - NSImage* image; // the image itself - - NSSize imageSize; // largest size of the image; default size is (16, 16) - - // the text alignment is used to align the whole cell (image and text) - NSTextAlignment cellAlignment; -} - - -(NSTextAlignment) alignment; - -(void) setAlignment:(NSTextAlignment)newAlignment; - - -(NSImage*) image; - -(void) setImage:(NSImage*)newImage; - - -(NSSize) imageSize; - -(void) setImageSize:(NSSize) newImageSize; - - -(NSSize) cellSize; -@end - -// ============================================================================ -// wxCocoaOutlineView -// ============================================================================ - -@interface wxCocoaOutlineView : NSOutlineView <NSOutlineViewDelegate> -{ -@private - // column and row of the cell being edited or -1 if none - int currentlyEditedColumn, - currentlyEditedRow; - - wxCocoaDataViewControl* implementation; -} - - -(wxCocoaDataViewControl*) implementation; - -(void) setImplementation:(wxCocoaDataViewControl*) newImplementation; -@end - -// ============================================================================ -// wxCocoaDataViewControl -// ============================================================================ - -// This is the internal interface class between wxDataViewCtrl (wxWidget) and -// the native source view (Mac OS X cocoa). -class wxCocoaDataViewControl : public wxWidgetCocoaImpl, - public wxDataViewWidgetImpl -{ -public: - // constructors / destructor - wxCocoaDataViewControl(wxWindow* peer, - const wxPoint& pos, - const wxSize& size, - long style); - virtual ~wxCocoaDataViewControl(); - - wxDataViewCtrl* GetDataViewCtrl() const - { - return static_cast<wxDataViewCtrl*>(GetWXPeer()); - } - - // column related methods (inherited from wxDataViewWidgetImpl) - virtual bool ClearColumns(); - virtual bool DeleteColumn(wxDataViewColumn* columnPtr); - virtual void DoSetExpanderColumn(wxDataViewColumn const* columnPtr); - virtual wxDataViewColumn* GetColumn(unsigned int pos) const; - virtual int GetColumnPosition(wxDataViewColumn const* columnPtr) const; - virtual bool InsertColumn(unsigned int pos, wxDataViewColumn* columnPtr); - virtual void FitColumnWidthToContent(unsigned int pos); - - // item related methods (inherited from wxDataViewWidgetImpl) - virtual bool Add(const wxDataViewItem& parent, const wxDataViewItem& item); - virtual bool Add(const wxDataViewItem& parent, - const wxDataViewItemArray& items); - virtual void Collapse(const wxDataViewItem& item); - virtual void EnsureVisible(const wxDataViewItem& item, - wxDataViewColumn const* columnPtr); - virtual void Expand(const wxDataViewItem& item); - virtual unsigned int GetCount() const; - virtual wxRect GetRectangle(const wxDataViewItem& item, - wxDataViewColumn const* columnPtr); - virtual bool IsExpanded(const wxDataViewItem& item) const; - virtual bool Reload(); - virtual bool Remove(const wxDataViewItem& parent, - const wxDataViewItem& item); - virtual bool Remove(const wxDataViewItem& parent, - const wxDataViewItemArray& item); - virtual bool Update(const wxDataViewColumn* columnPtr); - virtual bool Update(const wxDataViewItem& parent, - const wxDataViewItem& item); - virtual bool Update(const wxDataViewItem& parent, - const wxDataViewItemArray& items); - - // model related methods - virtual bool AssociateModel(wxDataViewModel* model); - - // - // selection related methods (inherited from wxDataViewWidgetImpl) - // - virtual wxDataViewItem GetCurrentItem() const; - virtual void SetCurrentItem(const wxDataViewItem& item); - virtual wxDataViewColumn *GetCurrentColumn() const; - virtual int GetSelectedItemsCount() const; - virtual int GetSelections(wxDataViewItemArray& sel) const; - virtual bool IsSelected(const wxDataViewItem& item) const; - virtual void Select(const wxDataViewItem& item); - virtual void SelectAll(); - virtual void Unselect(const wxDataViewItem& item); - virtual void UnselectAll(); - - // - // sorting related methods - // - virtual wxDataViewColumn* GetSortingColumn () const; - virtual void Resort(); - - // - // other methods (inherited from wxDataViewWidgetImpl) - // - virtual void DoSetIndent(int indent); - virtual void HitTest(const wxPoint& point, - wxDataViewItem& item, - wxDataViewColumn*& columnPtr) const; - virtual void SetRowHeight(const wxDataViewItem& item, unsigned int height); - virtual void OnSize(); - - virtual void StartEditor( const wxDataViewItem & item, unsigned int column ); - - // drag & drop helper methods - wxDataFormat GetDnDDataFormat(wxDataObjectComposite* dataObjects); - wxDataObjectComposite* GetDnDDataObjects(NSData* dataObject) const; - - // Cocoa-specific helpers - id GetItemAtRow(int row) const; - -private: - void InitOutlineView(long style); - - wxCocoaOutlineDataSource* m_DataSource; - - wxCocoaOutlineView* m_OutlineView; -}; - -#endif // _WX_DATAVIEWCTRL_COCOOA_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/evtloop.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/evtloop.h deleted file mode 100644 index ab15dd94..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/evtloop.h +++ /dev/null @@ -1,48 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/cocoa/evtloop.h -// Purpose: declaration of wxGUIEventLoop for wxOSX/Cocoa -// Author: Vadim Zeitlin -// Created: 2008-12-28 -// Copyright: (c) 2006 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_COCOA_EVTLOOP_H_ -#define _WX_OSX_COCOA_EVTLOOP_H_ - -class WXDLLIMPEXP_BASE wxGUIEventLoop : public wxCFEventLoop -{ -public: - wxGUIEventLoop(); - ~wxGUIEventLoop(); - - void BeginModalSession( wxWindow* modalWindow ); - - void EndModalSession(); - - virtual void WakeUp(); - - void OSXUseLowLevelWakeup(bool useIt) - { m_osxLowLevelWakeUp = useIt ; } - -protected: - virtual int DoDispatchTimeout(unsigned long timeout); - - virtual void OSXDoRun(); - virtual void OSXDoStop(); - - virtual CFRunLoopRef CFGetCurrentRunLoop() const; - - void* m_modalSession; - - wxWindow* m_modalWindow; - - WXWindow m_dummyWindow; - - int m_modalNestedLevel; - - bool m_osxLowLevelWakeUp; -}; - -#endif // _WX_OSX_COCOA_EVTLOOP_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private.h deleted file mode 100644 index 8c6553e5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private.h +++ /dev/null @@ -1,490 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/cocoa/private.h -// Purpose: Private declarations: as this header is only included by -// wxWidgets itself, it may contain identifiers which don't start -// with "wx". -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_COCOA_H_ -#define _WX_PRIVATE_COCOA_H_ - -#include <ApplicationServices/ApplicationServices.h> - -#ifdef __OBJC__ - #import <Cocoa/Cocoa.h> -#endif - -// -// shared between Cocoa and Carbon -// - -// bring in theming types without pulling in the headers - -#if wxUSE_GUI -typedef SInt16 ThemeBrush; -CGColorRef WXDLLIMPEXP_CORE wxMacCreateCGColorFromHITheme( ThemeBrush brush ) ; -OSStatus WXDLLIMPEXP_CORE wxMacDrawCGImage( - CGContextRef inContext, - const CGRect * inBounds, - CGImageRef inImage) ; -WX_NSImage WXDLLIMPEXP_CORE wxOSXGetNSImageFromCGImage( CGImageRef image, double scale = 1.0, bool isTemplate = false); -WX_NSImage WXDLLIMPEXP_CORE wxOSXGetNSImageFromIconRef( WXHICON iconref ); -CGImageRef WXDLLIMPEXP_CORE wxOSXCreateCGImageFromNSImage( WX_NSImage nsimage, double *scale = NULL ); -CGImageRef WXDLLIMPEXP_CORE wxOSXGetCGImageFromNSImage( WX_NSImage nsimage, CGRect* r, CGContextRef cg); -CGContextRef WXDLLIMPEXP_CORE wxOSXCreateBitmapContextFromNSImage( WX_NSImage nsimage, bool *isTemplate = NULL); - -wxBitmap WXDLLIMPEXP_CORE wxOSXCreateSystemBitmap(const wxString& id, const wxString &client, const wxSize& size); -WXWindow WXDLLIMPEXP_CORE wxOSXGetMainWindow(); - -class WXDLLIMPEXP_FWD_CORE wxDialog; - -class WXDLLIMPEXP_CORE wxWidgetCocoaImpl : public wxWidgetImpl -{ -public : - wxWidgetCocoaImpl( wxWindowMac* peer , WXWidget w, bool isRootControl = false, bool isUserPane = false ) ; - wxWidgetCocoaImpl() ; - ~wxWidgetCocoaImpl(); - - void Init(); - - virtual bool IsVisible() const ; - virtual void SetVisibility(bool); - - // we provide a static function which can be reused from - // wxNonOwnedWindowCocoaImpl too - static bool ShowViewOrWindowWithEffect(wxWindow *win, - bool show, - wxShowEffect effect, - unsigned timeout); - - virtual bool ShowWithEffect(bool show, - wxShowEffect effect, - unsigned timeout); - - virtual void Raise(); - - virtual void Lower(); - - virtual void ScrollRect( const wxRect *rect, int dx, int dy ); - - virtual WXWidget GetWXWidget() const { return m_osxView; } - - virtual void SetBackgroundColour(const wxColour&); - virtual bool SetBackgroundStyle(wxBackgroundStyle style); - - virtual void GetContentArea( int &left , int &top , int &width , int &height ) const; - virtual void Move(int x, int y, int width, int height); - virtual void GetPosition( int &x, int &y ) const; - virtual void GetSize( int &width, int &height ) const; - virtual void SetControlSize( wxWindowVariant variant ); - - virtual void SetNeedsDisplay( const wxRect* where = NULL ); - virtual bool GetNeedsDisplay() const; - - virtual void SetDrawingEnabled(bool enabled); - - virtual bool CanFocus() const; - // return true if successful - virtual bool SetFocus(); - virtual bool HasFocus() const; - - void RemoveFromParent(); - void Embed( wxWidgetImpl *parent ); - - void SetDefaultButton( bool isDefault ); - void PerformClick(); - virtual void SetLabel(const wxString& title, wxFontEncoding encoding); - - void SetCursor( const wxCursor & cursor ); - void CaptureMouse(); - void ReleaseMouse(); -#if wxUSE_DRAG_AND_DROP - void SetDropTarget(wxDropTarget* target); -#endif - wxInt32 GetValue() const; - void SetValue( wxInt32 v ); - wxBitmap GetBitmap() const; - void SetBitmap( const wxBitmap& bitmap ); - void SetBitmapPosition( wxDirection dir ); - void SetupTabs( const wxNotebook ¬ebook ); - void GetBestRect( wxRect *r ) const; - bool IsEnabled() const; - void Enable( bool enable ); - bool ButtonClickDidStateChange() { return true ;} - void SetMinimum( wxInt32 v ); - void SetMaximum( wxInt32 v ); - wxInt32 GetMinimum() const; - wxInt32 GetMaximum() const; - void PulseGauge(); - void SetScrollThumb( wxInt32 value, wxInt32 thumbSize ); - - void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle, bool ignoreBlack = true ); - void SetToolTip( wxToolTip* tooltip ); - - void InstallEventHandler( WXWidget control = NULL ); - - virtual bool DoHandleMouseEvent(NSEvent *event); - virtual bool DoHandleKeyEvent(NSEvent *event); - virtual bool DoHandleCharEvent(NSEvent *event, NSString *text); - virtual void DoNotifyFocusSet(); - virtual void DoNotifyFocusLost(); - virtual void DoNotifyFocusEvent(bool receivedFocus, wxWidgetImpl* otherWindow); - - virtual void SetupKeyEvent(wxKeyEvent &wxevent, NSEvent * nsEvent, NSString* charString = NULL); - virtual void SetupMouseEvent(wxMouseEvent &wxevent, NSEvent * nsEvent); - void SetupCoordinates(wxCoord &x, wxCoord &y, NSEvent *nsEvent); - virtual bool SetupCursor(NSEvent* event); - - -#if !wxOSX_USE_NATIVE_FLIPPED - void SetFlipped(bool flipped); - virtual bool IsFlipped() const { return m_isFlipped; } -#endif - - virtual double GetContentScaleFactor() const; - - // cocoa thunk connected calls - -#if wxUSE_DRAG_AND_DROP - virtual unsigned int draggingEntered(void* sender, WXWidget slf, void* _cmd); - virtual void draggingExited(void* sender, WXWidget slf, void* _cmd); - virtual unsigned int draggingUpdated(void* sender, WXWidget slf, void* _cmd); - virtual bool performDragOperation(void* sender, WXWidget slf, void* _cmd); -#endif - virtual void mouseEvent(WX_NSEvent event, WXWidget slf, void* _cmd); - virtual void cursorUpdate(WX_NSEvent event, WXWidget slf, void* _cmd); - virtual void keyEvent(WX_NSEvent event, WXWidget slf, void* _cmd); - virtual void insertText(NSString* text, WXWidget slf, void* _cmd); - virtual void doCommandBySelector(void* sel, WXWidget slf, void* _cmd); - virtual bool performKeyEquivalent(WX_NSEvent event, WXWidget slf, void* _cmd); - virtual bool acceptsFirstResponder(WXWidget slf, void* _cmd); - virtual bool becomeFirstResponder(WXWidget slf, void* _cmd); - virtual bool resignFirstResponder(WXWidget slf, void* _cmd); -#if !wxOSX_USE_NATIVE_FLIPPED - virtual bool isFlipped(WXWidget slf, void* _cmd); -#endif - virtual void drawRect(void* rect, WXWidget slf, void* _cmd); - - virtual void controlAction(WXWidget slf, void* _cmd, void* sender); - virtual void controlDoubleAction(WXWidget slf, void* _cmd, void *sender); - - // for wxTextCtrl-derived classes, put here since they don't all derive - // from the same pimpl class. - virtual void controlTextDidChange(); - -protected: - WXWidget m_osxView; - NSEvent* m_lastKeyDownEvent; -#if !wxOSX_USE_NATIVE_FLIPPED - bool m_isFlipped; -#endif - // if it the control has an editor, that editor will already send some - // events, don't resend them - bool m_hasEditor; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxWidgetCocoaImpl); -}; - -DECLARE_WXCOCOA_OBJC_CLASS( wxNSWindow ); - -class wxNonOwnedWindowCocoaImpl : public wxNonOwnedWindowImpl -{ -public : - wxNonOwnedWindowCocoaImpl( wxNonOwnedWindow* nonownedwnd) ; - wxNonOwnedWindowCocoaImpl(); - - virtual ~wxNonOwnedWindowCocoaImpl(); - - virtual void WillBeDestroyed() wxOVERRIDE; - void Create( wxWindow* parent, const wxPoint& pos, const wxSize& size, - long style, long extraStyle, const wxString& name ) wxOVERRIDE; - void Create( wxWindow* parent, WXWindow nativeWindow ); - - WXWindow GetWXWindow() const wxOVERRIDE; - void Raise() wxOVERRIDE; - void Lower() wxOVERRIDE; - bool Show(bool show) wxOVERRIDE; - - virtual bool ShowWithEffect(bool show, - wxShowEffect effect, - unsigned timeout) wxOVERRIDE; - - void Update() wxOVERRIDE; - bool SetTransparent(wxByte alpha) wxOVERRIDE; - bool SetBackgroundColour(const wxColour& col ) wxOVERRIDE; - void SetExtraStyle( long exStyle ) wxOVERRIDE; - void SetWindowStyleFlag( long style ) wxOVERRIDE; - bool SetBackgroundStyle(wxBackgroundStyle style) wxOVERRIDE; - bool CanSetTransparent() wxOVERRIDE; - - void MoveWindow(int x, int y, int width, int height) wxOVERRIDE; - void GetPosition( int &x, int &y ) const wxOVERRIDE; - void GetSize( int &width, int &height ) const wxOVERRIDE; - - void GetContentArea( int &left , int &top , int &width , int &height ) const wxOVERRIDE; - bool SetShape(const wxRegion& region) wxOVERRIDE; - - virtual void SetTitle( const wxString& title, wxFontEncoding encoding ) wxOVERRIDE; - - virtual bool EnableCloseButton(bool enable) wxOVERRIDE; - virtual bool EnableMaximizeButton(bool enable) wxOVERRIDE; - virtual bool EnableMinimizeButton(bool enable) wxOVERRIDE; - - virtual bool IsMaximized() const wxOVERRIDE; - - virtual bool IsIconized() const wxOVERRIDE; - - virtual void Iconize( bool iconize ) wxOVERRIDE; - - virtual void Maximize(bool maximize) wxOVERRIDE; - - virtual bool IsFullScreen() const wxOVERRIDE; - - bool EnableFullScreenView(bool enable) wxOVERRIDE; - - virtual bool ShowFullScreen(bool show, long style) wxOVERRIDE; - - virtual void ShowWithoutActivating() wxOVERRIDE; - - virtual void RequestUserAttention(int flags) wxOVERRIDE; - - virtual void ScreenToWindow( int *x, int *y ) wxOVERRIDE; - - virtual void WindowToScreen( int *x, int *y ) wxOVERRIDE; - - virtual bool IsActive() wxOVERRIDE; - - virtual void SetModified(bool modified) wxOVERRIDE; - virtual bool IsModified() const wxOVERRIDE; - - virtual void SetRepresentedFilename(const wxString& filename) wxOVERRIDE; - - wxNonOwnedWindow* GetWXPeer() { return m_wxPeer; } - - CGWindowLevel GetWindowLevel() const wxOVERRIDE { return m_macWindowLevel; } - void RestoreWindowLevel() wxOVERRIDE; - - static WX_NSResponder GetNextFirstResponder() ; - static WX_NSResponder GetFormerFirstResponder() ; -protected : - CGWindowLevel m_macWindowLevel; - WXWindow m_macWindow; - void * m_macFullScreenData ; - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxNonOwnedWindowCocoaImpl); -}; - -DECLARE_WXCOCOA_OBJC_CLASS( wxNSButton ); - -class wxButtonCocoaImpl : public wxWidgetCocoaImpl, public wxButtonImpl -{ -public: - wxButtonCocoaImpl(wxWindowMac *wxpeer, wxNSButton *v); - virtual void SetBitmap(const wxBitmap& bitmap); -#if wxUSE_MARKUP - virtual void SetLabelMarkup(const wxString& markup); -#endif // wxUSE_MARKUP - - void SetPressedBitmap( const wxBitmap& bitmap ); - void GetLayoutInset(int &left , int &top , int &right, int &bottom) const; - void SetAcceleratorFromLabel(const wxString& label); - - NSButton *GetNSButton() const; -}; - -#ifdef __OBJC__ - - typedef NSRect WXRect; - typedef void (*wxOSX_TextEventHandlerPtr)(NSView* self, SEL _cmd, NSString *event); - typedef void (*wxOSX_EventHandlerPtr)(NSView* self, SEL _cmd, NSEvent *event); - typedef BOOL (*wxOSX_PerformKeyEventHandlerPtr)(NSView* self, SEL _cmd, NSEvent *event); - typedef BOOL (*wxOSX_FocusHandlerPtr)(NSView* self, SEL _cmd); - - - WXDLLIMPEXP_CORE NSScreen* wxOSXGetMenuScreen(); - WXDLLIMPEXP_CORE NSRect wxToNSRect( NSView* parent, const wxRect& r ); - WXDLLIMPEXP_CORE wxRect wxFromNSRect( NSView* parent, const NSRect& rect ); - WXDLLIMPEXP_CORE NSPoint wxToNSPoint( NSView* parent, const wxPoint& p ); - WXDLLIMPEXP_CORE wxPoint wxFromNSPoint( NSView* parent, const NSPoint& p ); - - NSRect WXDLLIMPEXP_CORE wxOSXGetFrameForControl( wxWindowMac* window , const wxPoint& pos , const wxSize &size , - bool adjustForOrigin = true ); - - WXDLLIMPEXP_CORE NSView* wxOSXGetViewFromResponder( NSResponder* responder ); - - // used for many wxControls - - @interface wxNSButton : NSButton - { - NSTrackingRectTag rectTag; - } - - @end - - @interface wxNSBox : NSBox - { - } - - @end - - @interface wxNSTextFieldEditor : NSTextView - { - NSEvent* lastKeyDownEvent; - NSTextField* textField; - } - - - (void) setTextField:(NSTextField*) field; - @end - - @interface wxNSTextField : NSTextField <NSTextFieldDelegate> - { - wxNSTextFieldEditor* fieldEditor; - } - - - (wxNSTextFieldEditor*) fieldEditor; - - (void) setFieldEditor:(wxNSTextFieldEditor*) fieldEditor; - - @end - - @interface wxNSSecureTextField : NSSecureTextField <NSTextFieldDelegate> - { - } - - @end - - - @interface wxNSTextView : NSTextView <NSTextViewDelegate> - { - } - - - (void)textDidChange:(NSNotification *)aNotification; - - @end - - @interface wxNSComboBox : NSComboBox - { - wxNSTextFieldEditor* fieldEditor; - } - - - (wxNSTextFieldEditor*) fieldEditor; - - (void) setFieldEditor:(wxNSTextFieldEditor*) fieldEditor; - - @end - - - - @interface wxNSMenu : NSMenu - { - wxMenuImpl* impl; - } - - - (void) setImplementation:(wxMenuImpl*) item; - - (wxMenuImpl*) implementation; - - @end - - @interface wxNSMenuItem : NSMenuItem - { - wxMenuItemImpl* impl; - } - - - (void) setImplementation:(wxMenuItemImpl*) item; - - (wxMenuItemImpl*) implementation; - - - (void)clickedAction:(id)sender; - - (BOOL)validateMenuItem:(NSMenuItem *)menuItem; - - @end - - void WXDLLIMPEXP_CORE wxOSXCocoaClassAddWXMethods(Class c); - - /* - We need this for ShowModal, as the sheet just disables the parent window and - returns control to the app, whereas we don't want to return from ShowModal - until the sheet has been dismissed. - */ - @interface ModalDialogDelegate : NSObject - { - BOOL sheetFinished; - int resultCode; - wxDialog* impl; - } - - - (void)setImplementation: (wxDialog *)dialog; - - (BOOL)finished; - - (int)code; - - (void)waitForSheetToFinish; - - (void)sheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo; - @end - - // This interface must be exported in shared 64 bit multilib build but - // using WXEXPORT with Objective C interfaces doesn't work with old (4.0.1) - // gcc when using 10.4 SDK. It does work with newer gcc even in 32 bit - // builds but seems to be unnecessary there so to avoid the expense of a - // configure check verifying if this does work or not with the current - // compiler we just only use it for 64 bit builds where this is always - // supported. - // - // NB: Currently this is the only place where we need to export an - // interface but if we need to do it elsewhere we should define a - // WXEXPORT_OBJC macro once and reuse it in all places it's needed - // instead of duplicating this preprocessor check. -#ifdef __LP64__ - WXEXPORT -#endif // 64 bit builds - @interface wxNSAppController : NSObject <NSApplicationDelegate> - { - } - - @end - -#endif // __OBJC__ - -// NSCursor - -WX_NSCursor wxMacCocoaCreateStockCursor( int cursor_type ); -WX_NSCursor wxMacCocoaCreateCursorFromCGImage( CGImageRef cgImageRef, float hotSpotX, float hotSpotY ); -void wxMacCocoaSetCursor( WX_NSCursor cursor ); -void wxMacCocoaHideCursor(); -void wxMacCocoaShowCursor(); - -typedef struct tagClassicCursor -{ - wxUint16 bits[16]; - wxUint16 mask[16]; - wxInt16 hotspot[2]; -}ClassicCursor; - -const short kwxCursorBullseye = 0; -const short kwxCursorBlank = 1; -const short kwxCursorPencil = 2; -const short kwxCursorMagnifier = 3; -const short kwxCursorNoEntry = 4; -const short kwxCursorPaintBrush = 5; -const short kwxCursorPointRight = 6; -const short kwxCursorPointLeft = 7; -const short kwxCursorQuestionArrow = 8; -const short kwxCursorRightArrow = 9; -const short kwxCursorSizeNS = 10; -const short kwxCursorSize = 11; -const short kwxCursorSizeNESW = 12; -const short kwxCursorSizeNWSE = 13; -const short kwxCursorRoller = 14; -const short kwxCursorWatch = 15; -const short kwxCursorLast = kwxCursorWatch; - -// exposing our fallback cursor map - -extern ClassicCursor gMacCursors[]; - -extern NSLayoutManager* gNSLayoutManager; - -#endif // wxUSE_GUI - -#endif - // _WX_PRIVATE_COCOA_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/date.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/date.h deleted file mode 100644 index e7d9d40b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/date.h +++ /dev/null @@ -1,50 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/cocoa/private/date.h -// Purpose: NSDate-related helpers -// Author: Vadim Zeitlin -// Created: 2011-12-19 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_COCOA_PRIVATE_DATE_H_ -#define _WX_OSX_COCOA_PRIVATE_DATE_H_ - -#include "wx/datetime.h" - -namespace wxOSXImpl -{ - -// Functions to convert between NSDate and wxDateTime. - -// Returns an NSDate corresponding to the given wxDateTime which can be invalid -// (in which case nil is returned). -inline NSDate* NSDateFromWX(const wxDateTime& dt) -{ - if ( !dt.IsValid() ) - return nil; - - // Get the internal representation as a double used by NSDate. - double ticks = dt.GetValue().ToDouble(); - - // wxDateTime uses milliseconds while NSDate uses (fractional) seconds. - return [NSDate dateWithTimeIntervalSince1970:ticks/1000.]; -} - - -// Returns wxDateTime corresponding to the given NSDate (which may be nil). -inline wxDateTime NSDateToWX(const NSDate* d) -{ - if ( !d ) - return wxDefaultDateTime; - - // Reverse everything done above. - wxLongLong ll; - ll.Assign([d timeIntervalSince1970]*1000); - wxDateTime dt(ll); - return dt; -} - -} // namespace wxOSXImpl - -#endif // _WX_OSX_COCOA_PRIVATE_DATE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/markuptoattr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/markuptoattr.h deleted file mode 100644 index 1d23d8e3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/markuptoattr.h +++ /dev/null @@ -1,119 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/cocoa/private/markuptoattr.h -// Purpose: Class to convert markup to Cocoa attributed strings. -// Author: Vadim Zeitlin -// Created: 2011-02-22 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_COCOA_PRIVATE_MARKUPTOATTR_H_ -#define _WX_OSX_COCOA_PRIVATE_MARKUPTOATTR_H_ - -#include "wx/private/markupparserattr.h" - -// ---------------------------------------------------------------------------- -// wxMarkupToAttrString: create NSAttributedString from markup. -// ---------------------------------------------------------------------------- - -class wxMarkupToAttrString : public wxMarkupParserAttrOutput -{ -public: - // We don't care about the original colours because we never use them but - // we do need the correct initial font as we apply modifiers (e.g. create a - // font larger than it) to it and so it must be valid. - wxMarkupToAttrString(wxWindow *win, const wxString& markup) - : wxMarkupParserAttrOutput(win->GetFont(), wxColour(), wxColour()) - { - const wxCFStringRef - label(wxControl::RemoveMnemonics(wxMarkupParser::Strip(markup))); - m_attrString = [[NSMutableAttributedString alloc] - initWithString: label.AsNSString()]; - - m_pos = 0; - - [m_attrString beginEditing]; - - // First thing we do is change the default string font: as mentioned in - // Apple documentation, attributed strings use "Helvetica 12" font by - // default which is different from the system "Lucida Grande" font. So - // we need to explicitly change the font for the entire string. - [m_attrString addAttribute:NSFontAttributeName - value:win->GetFont().OSXGetNSFont() - range:NSMakeRange(0, [m_attrString length])]; - - // Now translate the markup tags to corresponding attributes. - wxMarkupParser parser(*this); - parser.Parse(markup); - - [m_attrString endEditing]; - } - - ~wxMarkupToAttrString() - { - [m_attrString release]; - } - - // Accessor for the users of this class. - // - // We keep ownership of the returned string. - NSMutableAttributedString *GetNSAttributedString() const - { - return m_attrString; - } - - - // Implement base class pure virtual methods to process markup tags. - virtual void OnText(const wxString& text) - { - m_pos += wxControl::RemoveMnemonics(text).length(); - } - - virtual void OnAttrStart(const Attr& WXUNUSED(attr)) - { - // Just remember the starting position of the range, we can't really - // set the attribute until we find the end of it. - m_rangeStarts.push(m_pos); - } - - virtual void OnAttrEnd(const Attr& attr) - { - unsigned start = m_rangeStarts.top(); - m_rangeStarts.pop(); - - const NSRange range = NSMakeRange(start, m_pos - start); - - [m_attrString addAttribute:NSFontAttributeName - value:attr.font.OSXGetNSFont() - range:range]; - - if ( attr.foreground.IsOk() ) - { - [m_attrString addAttribute:NSForegroundColorAttributeName - value:attr.foreground.OSXGetNSColor() - range:range]; - } - - if ( attr.background.IsOk() ) - { - [m_attrString addAttribute:NSBackgroundColorAttributeName - value:attr.background.OSXGetNSColor() - range:range]; - } - } - -private: - // The attributed string we're building. - NSMutableAttributedString *m_attrString; - - // The current position in the output string. - unsigned m_pos; - - // The positions of starting ranges. - wxStack<unsigned> m_rangeStarts; - - - wxDECLARE_NO_COPY_CLASS(wxMarkupToAttrString); -}; - -#endif // _WX_OSX_COCOA_PRIVATE_MARKUPTOATTR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/overlay.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/overlay.h deleted file mode 100644 index 5a49e810..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/overlay.h +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/cocoa/private/overlay.h -// Purpose: wxOverlayImpl declaration -// Author: Stefan Csomor -// Modified by: -// Created: 2006-10-20 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_COCOA_PRIVATE_OVERLAY_H_ -#define _WX_OSX_COCOA_PRIVATE_OVERLAY_H_ - -#include "wx/osx/private.h" -#include "wx/toplevel.h" -#include "wx/graphics.h" - -class wxOverlayImpl -{ -public: - wxOverlayImpl() ; - ~wxOverlayImpl() ; - - - // clears the overlay without restoring the former state - // to be done eg when the window content has been changed and repainted - void Reset(); - - // returns true if it has been setup - bool IsOk(); - - void Init( wxDC* dc, int x , int y , int width , int height ); - - void BeginDrawing( wxDC* dc); - - void EndDrawing( wxDC* dc); - - void Clear( wxDC* dc); - -private: - void CreateOverlayWindow(); - - WXWindow m_overlayWindow; - WXWindow m_overlayParentWindow; - CGContextRef m_overlayContext ; - // we store the window in case we would have to issue a Refresh() - wxWindow* m_window ; - - int m_x ; - int m_y ; - int m_width ; - int m_height ; -} ; - -#endif // _WX_MAC_CARBON_PRIVATE_OVERLAY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/textimpl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/textimpl.h deleted file mode 100644 index 24b4f8cf..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/private/textimpl.h +++ /dev/null @@ -1,135 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/cocoa/private/textimpl.h -// Purpose: textcontrol implementation classes that have to be exposed -// Author: Stefan Csomor -// Modified by: -// Created: 03/02/99 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_COCOA_PRIVATE_TEXTIMPL_H_ -#define _WX_OSX_COCOA_PRIVATE_TEXTIMPL_H_ - -#include "wx/combobox.h" -#include "wx/osx/private.h" - -@class wxTextEntryFormatter; - -// implementation exposed, so that search control can pull it - -class wxNSTextFieldControl : public wxWidgetCocoaImpl, public wxTextWidgetImpl -{ -public : - // wxNSTextFieldControl must always be associated with a wxTextEntry. If - // it's associated with a wxTextCtrl then we can get the associated entry - // from it but otherwise the second ctor should be used to explicitly pass - // us the entry. - wxNSTextFieldControl( wxTextCtrl *text, WXWidget w ); - wxNSTextFieldControl( wxWindow *wxPeer, wxTextEntry *entry, WXWidget w ); - virtual ~wxNSTextFieldControl(); - - virtual bool CanClipMaxLength() const { return true; } - virtual void SetMaxLength(unsigned long len); - - virtual bool CanForceUpper() { return true; } - virtual void ForceUpper(); - - virtual wxString GetStringValue() const ; - virtual void SetStringValue( const wxString &str) ; - virtual void Copy() ; - virtual void Cut() ; - virtual void Paste() ; - virtual bool CanPaste() const ; - virtual void SetEditable(bool editable) ; - virtual void GetSelection( long* from, long* to) const ; - virtual void SetSelection( long from , long to ); - virtual void WriteText(const wxString& str) ; - virtual bool HasOwnContextMenu() const { return true; } - virtual bool SetHint(const wxString& hint); - - virtual void controlAction(WXWidget slf, void* _cmd, void *sender); - virtual bool becomeFirstResponder(WXWidget slf, void *_cmd); - virtual bool resignFirstResponder(WXWidget slf, void *_cmd); - - virtual void SetInternalSelection( long from , long to ); - virtual void UpdateInternalSelectionFromEditor( wxNSTextFieldEditor* editor); -protected : - NSTextField* m_textField; - long m_selStart; - long m_selEnd; - -private: - // Common part of both ctors. - void Init(WXWidget w); - - // Get our formatter, creating it if necessary. - wxTextEntryFormatter* GetFormatter(); -}; - -class wxNSTextViewControl : public wxWidgetCocoaImpl, public wxTextWidgetImpl -{ -public: - wxNSTextViewControl( wxTextCtrl *wxPeer, WXWidget w, long style ); - virtual ~wxNSTextViewControl(); - - virtual void insertText(NSString* text, WXWidget slf, void *_cmd); - - virtual wxString GetStringValue() const ; - virtual void SetStringValue( const wxString &str) ; - virtual void Copy() ; - virtual void Cut() ; - virtual void Paste() ; - virtual bool CanPaste() const ; - virtual void SetEditable(bool editable) ; - virtual void GetSelection( long* from, long* to) const ; - virtual void SetSelection( long from , long to ); - virtual void WriteText(const wxString& str) ; - virtual void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle, bool ignoreBlack = true ); - - virtual bool GetStyle(long position, wxTextAttr& style); - virtual void SetStyle(long start, long end, const wxTextAttr& style); - - virtual bool CanFocus() const; - - virtual bool HasOwnContextMenu() const { return true; } - - virtual void CheckSpelling(bool check); - virtual wxSize GetBestSize() const; - -protected: - NSScrollView* m_scrollView; - NSTextView* m_textView; -}; - -class wxNSComboBoxControl : public wxNSTextFieldControl, public wxComboWidgetImpl -{ -public : - wxNSComboBoxControl( wxComboBox *wxPeer, WXWidget w ); - virtual ~wxNSComboBoxControl(); - - virtual int GetSelectedItem() const; - virtual void SetSelectedItem(int item); - - virtual int GetNumberOfItems() const; - - virtual void InsertItem(int pos, const wxString& item); - virtual void RemoveItem(int pos); - - virtual void Clear(); - - virtual wxString GetStringAtIndex(int pos) const; - - virtual int FindString(const wxString& text) const; - virtual void Popup(); - virtual void Dismiss(); - - virtual void SetEditable(bool editable); - - virtual void mouseEvent(WX_NSEvent event, WXWidget slf, void *_cmd); - -private: - NSComboBox* m_comboBox; -}; - -#endif // _WX_OSX_COCOA_PRIVATE_TEXTIMPL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/stdpaths.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/stdpaths.h deleted file mode 100644 index 59c33f20..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cocoa/stdpaths.h +++ /dev/null @@ -1,43 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/cocoa/stdpaths.h -// Purpose: wxStandardPaths for Cocoa -// Author: Tobias Taschner -// Created: 2015-09-09 -// Copyright: (c) 2015 wxWidgets development team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COCOA_STDPATHS_H_ -#define _WX_COCOA_STDPATHS_H_ - -// ---------------------------------------------------------------------------- -// wxStandardPaths -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxStandardPaths : public wxStandardPathsBase -{ -public: - virtual ~wxStandardPaths(); - - // implement base class pure virtuals - virtual wxString GetExecutablePath() const wxOVERRIDE; - virtual wxString GetConfigDir() const wxOVERRIDE; - virtual wxString GetUserConfigDir() const wxOVERRIDE; - virtual wxString GetDataDir() const wxOVERRIDE; - virtual wxString GetLocalDataDir() const wxOVERRIDE; - virtual wxString GetUserDataDir() const wxOVERRIDE; - virtual wxString GetPluginsDir() const wxOVERRIDE; - virtual wxString GetResourcesDir() const wxOVERRIDE; - virtual wxString - GetLocalizedResourcesDir(const wxString& lang, - ResourceCat category = ResourceCat_None) const wxOVERRIDE; - virtual wxString GetUserDir(Dir userDir) const wxOVERRIDE; - -protected: - // Ctor is protected, use wxStandardPaths::Get() instead of instantiating - // objects of this class directly. - wxStandardPaths(); -}; - - -#endif // _WX_COCOA_STDPATHS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/colordlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/colordlg.h deleted file mode 100644 index c46f2f5d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/colordlg.h +++ /dev/null @@ -1,39 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/colordlg.h -// Purpose: wxColourDialog class. Use generic version if no -// platform-specific implementation. -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLORDLG_H_ -#define _WX_COLORDLG_H_ - -#include "wx/dialog.h" - -/* - * Platform-specific colour dialog implementation - */ - -class WXDLLIMPEXP_CORE wxColourDialog: public wxDialog -{ - wxDECLARE_DYNAMIC_CLASS(wxColourDialog); -public: - wxColourDialog(); - wxColourDialog(wxWindow *parent, wxColourData *data = NULL); - - bool Create(wxWindow *parent, wxColourData *data = NULL); - - int ShowModal(); - wxColourData& GetColourData() { return m_colourData; } - -protected: - wxColourData m_colourData; - wxWindow* m_dialogParent; -}; - -#endif - // _WX_COLORDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/colour.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/colour.h deleted file mode 100644 index 40862547..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/colour.h +++ /dev/null @@ -1 +0,0 @@ -#include "wx/osx/core/colour.h" diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/combobox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/combobox.h deleted file mode 100644 index 95de0449..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/combobox.h +++ /dev/null @@ -1,140 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/combobox.h -// Purpose: wxComboBox class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COMBOBOX_H_ -#define _WX_COMBOBOX_H_ - -#include "wx/containr.h" -#include "wx/choice.h" -#include "wx/textctrl.h" - -WX_DEFINE_ARRAY( char * , wxComboBoxDataArray ) ; - -// forward declaration of private implementation classes - -class wxComboBoxText; -class wxComboBoxChoice; -class wxComboWidgetImpl; - -// Combobox item -class WXDLLIMPEXP_CORE wxComboBox : - public wxWindowWithItems< - wxControl, - wxComboBoxBase> -{ - wxDECLARE_DYNAMIC_CLASS(wxComboBox); - - public: - virtual ~wxComboBox(); - - // callback functions - virtual void DelegateTextChanged( const wxString& value ); - virtual void DelegateChoice( const wxString& value ); - - wxComboBox() { } - - wxComboBox(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - { - Create(parent, id, value, pos, size, n, choices, style, validator, name); - } - - wxComboBox(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - { - Create(parent, id, value, pos, size, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - virtual int GetSelection() const; - virtual void GetSelection(long *from, long *to) const; - virtual void SetSelection(int n); - virtual void SetSelection(long from, long to); - virtual int FindString(const wxString& s, bool bCase = false) const; - virtual wxString GetString(unsigned int n) const; - virtual wxString GetStringSelection() const; - virtual void SetString(unsigned int n, const wxString& s); - - virtual unsigned int GetCount() const; - - virtual void SetValue(const wxString& value); -// these methods are provided by wxTextEntry for the native impl. - -#if wxOSX_USE_COCOA - virtual void Popup(); - virtual void Dismiss(); -#endif // wxOSX_USE_COCOA - - - // osx specific event handling common for all osx-ports - - virtual bool OSXHandleClicked( double timestampsec ); - -#if wxOSX_USE_COCOA - wxComboWidgetImpl* GetComboPeer() const; -#endif -protected: - // List functions - virtual void DoDeleteOneItem(unsigned int n); - virtual void DoClear(); - - // wxTextEntry functions - virtual wxWindow *GetEditableWindow() { return this; } - - // override the base class virtuals involved in geometry calculations - virtual wxSize DoGetBestSize() const; - - virtual int DoInsertItems(const wxArrayStringsAdapter& items, - unsigned int pos, - void **clientData, wxClientDataType type); - - virtual void DoSetItemClientData(unsigned int n, void* clientData); - virtual void * DoGetItemClientData(unsigned int n) const; - - - virtual void EnableTextChangedEvents(bool enable); - - // the subcontrols - wxComboBoxText* m_text; - wxComboBoxChoice* m_choice; - - wxComboBoxDataArray m_datas; -}; - -#endif // _WX_COMBOBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/config_xcode.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/config_xcode.h deleted file mode 100644 index 2f38214f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/config_xcode.h +++ /dev/null @@ -1,151 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/config_xcode.h -// Purpose: configurations for xcode builds -// Author: Stefan Csomor -// Modified by: -// Created: 29.04.04 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// from config.log confdefs - -#define HAVE_SSIZE_T 1 -#define STDC_HEADERS 1 -#ifdef __BIG_ENDIAN__ -#define WORDS_BIGENDIAN 1 -#endif -#define wxUSE_UNIX 1 -#define __UNIX__ 1 -#define __BSD__ 1 -#define __DARWIN__ 1 -#define wx_USE_NANOX 0 - -#define HAVE_EXPLICIT 1 -#define HAVE_VA_COPY 1 -#define HAVE_VARIADIC_MACROS 1 -#define HAVE_STD_WSTRING 1 -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 -#if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 2 ) - #if !defined(__has_include) - #define HAVE_TR1_UNORDERED_MAP 1 - #define HAVE_TR1_UNORDERED_SET 1 - #define HAVE_TR1_TYPE_TRAITS 1 - #endif - #define HAVE_GCC_ATOMIC_BUILTINS 1 -#endif -#endif -#define HAVE_VISIBILITY 1 -#define wxHAVE_PTHREAD_CLEANUP 1 -#define CONST_COMPATIBILITY 0 -#define WX_TIMEZONE timezone -#define WX_SOCKLEN_T socklen_t -#define SOCKOPTLEN_T socklen_t -#define WX_STATFS_T struct statfs -#define wxTYPE_SA_HANDLER int -#define WX_GMTOFF_IN_TM 1 -#define HAVE_PW_GECOS 1 -#define HAVE_DLOPEN 1 -#define HAVE_CXA_DEMANGLE 1 -#define HAVE_GETTIMEOFDAY 1 -#define HAVE_FSYNC 1 -#define HAVE_ROUND 1 -#define HAVE_SCHED_YIELD 1 -#define HAVE_PTHREAD_MUTEXATTR_T 1 -#define HAVE_PTHREAD_MUTEXATTR_SETTYPE_DECL 1 -#define HAVE_PTHREAD_CANCEL 1 -#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1 -#define HAVE_SNPRINTF 1 -#define HAVE_SNPRINTF_DECL 1 -#define HAVE_UNIX98_PRINTF 1 -#define HAVE_STATFS 1 -#define HAVE_STATFS_DECL 1 -#define HAVE_STRPTIME 1 -#define HAVE_STRPTIME_DECL 1 -#define HAVE_STRTOULL 1 -#define HAVE_THREAD_PRIORITY_FUNCTIONS 1 -#define HAVE_VSNPRINTF 1 -#define HAVE_VSNPRINTF_DECL 1 -#define HAVE_VSSCANF 1 -#define HAVE_VSSCANF_DECL 1 -#define HAVE_USLEEP 1 -#define HAVE_WCSLEN 1 -#define SIZEOF_WCHAR_T 4 -#define SIZEOF_SHORT 2 -#define SIZEOF_INT 4 -#ifdef __LP64__ -#define SIZEOF_VOID_P 8 -#define SIZEOF_LONG 8 -#define SIZEOF_SIZE_T 8 -#else -#define SIZEOF_VOID_P 4 -#define SIZEOF_LONG 4 -#define SIZEOF_SIZE_T 4 -#endif -#define SIZEOF_LONG_LONG 8 -#define wxSIZE_T_IS_ULONG 1 -#define wxWCHAR_T_IS_REAL_TYPE 1 -#define HAVE_DLERROR 1 -#define HAVE_FCNTL 1 -#define HAVE_GETHOSTBYNAME 1 -#define HAVE_GETSERVBYNAME 1 -#define HAVE_GMTIME_R 1 -#define HAVE_INET_ADDR 1 -#define HAVE_INET_ATON 1 -#define HAVE_LOCALTIME_R 1 -#define HAVE_MKSTEMP 1 -#define HAVE_SETENV 1 -/* #define HAVE_PUTENV 1 */ -#define HAVE_STRTOK_R 1 -#define HAVE_UNAME 1 -#define HAVE_USLEEP 1 -#define HAVE_X11_XKBLIB_H 1 -#define HAVE_SCHED_H 1 -#define HAVE_UNISTD_H 1 -#define HAVE_WCHAR_H 1 -/* better to use the built-in CF conversions, also avoid iconv versioning problems */ -/* #undef HAVE_ICONV */ -#define ICONV_CONST -#define HAVE_LANGINFO_H 1 -#define HAVE_WCSRTOMBS 1 -#define HAVE_FPUTWS 1 -#define HAVE_WPRINTF 1 -#define HAVE_VSWPRINTF 1 -#define HAVE_VSWSCANF 1 -#define HAVE_FSEEKO 1 -#define HAVE_SYS_SELECT_H 1 -#define HAVE_FDOPEN 1 -#define HAVE_SYSCONF 1 -#define HAVE_GETPWUID_R 1 -#define HAVE_GETGRGID_R 1 -#define HAVE_LOCALE_T 1 -#define wxHAS_KQUEUE 1 - -#define PACKAGE_BUGREPORT "wx-dev@googlegroups.com" -#define PACKAGE_NAME "wxWidgets" -#define PACKAGE_STRING "wxWidgets 3.1.0" -#define PACKAGE_TARNAME "wxwidgets" -#define PACKAGE_VERSION "3.1.0" - -// for regex -#define WX_NO_REGEX_ADVANCED 1 - -// for jpeg - -#define HAVE_STDLIB_H 1 - -// OBSOLETE ? - -#define HAVE_COS 1 -#define HAVE_FLOOR 1 -#define HAVE_INTTYPES_H 1 -#define HAVE_MEMORY_H 1 - -#define HAVE_REGCOMP 1 -#define HAVE_STRINGS_H 1 -#define HAVE_STRING_H 1 -#define HAVE_SYS_STAT_H 1 -#define HAVE_SYS_TYPES_H 1 -#define HAVE_X11_XLIB_H 1 -#define SOCKLEN_T socklen_t -#define _FILE_OFFSET_BITS 64 diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/control.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/control.h deleted file mode 100644 index 6e667fdd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/control.h +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/control.h -// Purpose: wxControl class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CONTROL_H_ -#define _WX_CONTROL_H_ - -WXDLLIMPEXP_DATA_CORE(extern const char) wxControlNameStr[]; - -// General item class -class WXDLLIMPEXP_CORE wxControl : public wxControlBase -{ - wxDECLARE_ABSTRACT_CLASS(wxControl); - -public: - wxControl(); - wxControl(wxWindow *parent, wxWindowID winid, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxControlNameStr) - { - Create(parent, winid, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID winid, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxControlNameStr); - - // Simulates an event - virtual void Command(wxCommandEvent& event) { ProcessCommand(event); } - - // implementation from now on - // -------------------------- - - // Calls the callback and appropriate event handlers - bool ProcessCommand(wxCommandEvent& event); - - void OnKeyDown( wxKeyEvent &event ) ; -}; - -#endif - // _WX_CONTROL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/cfdataref.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/cfdataref.h deleted file mode 100644 index 6c604cd0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/cfdataref.h +++ /dev/null @@ -1,96 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/core/cfdataref.h -// Purpose: wxCFDataRef class -// Author: Stefan Csomor -// Modified by: -// Created: 2007/05/10 -// Copyright: (c) 2007 Stefan Csomor -// Licence: wxWindows licence -// Notes: See http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFBinaryData/index.html -///////////////////////////////////////////////////////////////////////////// -/*! @header wx/osx/core/cfdataref.h - @abstract wxCFDataRef template class -*/ - -#ifndef _WX_MAC_COREFOUNDATION_CFDATAREF_H__ -#define _WX_MAC_COREFOUNDATION_CFDATAREF_H__ - -#include "wx/osx/core/cfref.h" - -#include <CoreFoundation/CFData.h> - -/*! @class wxCFDataRef - @discussion Properly retains/releases reference to CoreFoundation data objects -*/ -class wxCFDataRef : public wxCFRef< CFDataRef > -{ -public: - /*! @method wxCFDataRef - @abstract Creates a NULL data ref - */ - wxCFDataRef() - {} - - typedef wxCFRef<CFDataRef> super_type; - - /*! @method wxCFDataRef - @abstract Assumes ownership of p and creates a reference to it. - @templatefield otherType Any type. - @param p The raw pointer to assume ownership of. May be NULL. - @discussion Like shared_ptr, it is assumed that the caller has a strong reference to p and intends - to transfer ownership of that reference to this ref holder. If the object comes from - a Create or Copy method then this is the correct behaviour. If the object comes from - a Get method then you must CFRetain it yourself before passing it to this constructor. - A handy way to do this is to use the non-member wxCFRefFromGet factory funcion. - This method is templated and takes an otherType *p. This prevents implicit conversion - using an operator refType() in a different ref-holding class type. - */ - explicit wxCFDataRef(CFDataRef r) - : super_type(r) - {} - - /*! @method wxCFDataRef - @abstract Copies a ref holder of the same type - @param otherRef The other ref holder to copy. - @discussion Ownership will be shared by the original ref and the newly created ref. That is, - the object will be explicitly retained by this new ref. - */ - wxCFDataRef(const wxCFDataRef& otherRef) - : super_type( otherRef ) - {} - - /*! @method wxCFDataRef - @abstract Copies raw data into a data ref - @param data The raw data. - @param length The data length. - */ - wxCFDataRef(const UInt8* data, CFIndex length) - : super_type(CFDataCreate(kCFAllocatorDefault, data, length)) - { - } - - /*! @method GetLength - @abstract returns the length in bytes of the data stored - */ - CFIndex GetLength() const - { - if ( m_ptr ) - return CFDataGetLength( *this ); - else - return 0; - } - - /*! @method GetBytes - @abstract Copies the data into an external buffer - @param range The desired range. - @param buffer The target buffer. - */ - void GetBytes( CFRange range, UInt8 *buffer ) const - { - if ( m_ptr ) - CFDataGetBytes(m_ptr, range, buffer); - } -}; - -#endif //ifndef _WX_MAC_COREFOUNDATION_CFDATAREF_H__ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/cfref.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/cfref.h deleted file mode 100644 index c4a6b3c1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/cfref.h +++ /dev/null @@ -1,400 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/core/cfref.h -// Purpose: wxCFRef template class -// Author: David Elliott <dfe@cox.net> -// Modified by: Stefan Csomor -// Created: 2007/05/10 -// Copyright: (c) 2007 David Elliott <dfe@cox.net>, Stefan Csomor -// Licence: wxWindows licence -// Notes: See http://developer.apple.com/documentation/CoreFoundation/Conceptual/CFMemoryMgmt/index.html -///////////////////////////////////////////////////////////////////////////// -/*! @header wx/osx/core/cfref.h - @abstract wxCFRef template class - @discussion FIXME: Convert doc tags to something less buggy with C++ -*/ - -#ifndef _WX_MAC_COREFOUNDATION_CFREF_H__ -#define _WX_MAC_COREFOUNDATION_CFREF_H__ - -// Include unistd to ensure that NULL is defined -#include <unistd.h> -// Include AvailabilityMacros for DEPRECATED_ATTRIBUTE -#include <AvailabilityMacros.h> - -// #include <CoreFoundation/CFBase.h> -/* Don't include CFBase.h such that this header can be included from public - * headers with minimal namespace pollution. - * Note that Darwin CF uses extern for CF_EXPORT. If we need this on Win32 - * or non-Darwin Mac OS we'll need to define the appropriate __declspec. - */ -typedef const void *CFTypeRef; -extern "C" { -extern /* CF_EXPORT */ -CFTypeRef CFRetain(CFTypeRef cf); -extern /* CF_EXPORT */ -void CFRelease(CFTypeRef cf); -} // extern "C" - - -/*! @function wxCFRelease - @abstract A CFRelease variant that checks for NULL before releasing. - @discussion The parameter is template not for type safety but to ensure the argument - is a raw pointer and not a ref holder of any type. -*/ -template <class Type> -inline void wxCFRelease(Type *r) -{ - if ( r != NULL ) - ::CFRelease((CFTypeRef)r); -} - -/*! @function wxCFRetain - @abstract A typesafe CFRetain variant that checks for NULL. -*/ -template <class Type> -inline Type* wxCFRetain(Type *r) -{ - // NOTE(DE): Setting r to the result of CFRetain improves efficiency on both x86 and PPC - // Casting r to CFTypeRef ensures we are calling the real C version defined in CFBase.h - // and not any possibly templated/overloaded CFRetain. - if ( r != NULL ) - r = (Type*)::CFRetain((CFTypeRef)r); - return r; -} - -template <class refType> -class wxCFRef; - -/*! @class wxCFWeakRef - @templatefield refType The CF reference type (e.g. CFStringRef, CFRunLoopRef, etc.) - It should already be a pointer. This is different from - shared_ptr where the template parameter is the pointee type. - @discussion Wraps a raw pointer without any retain or release. - Provides a way to get what amounts to a raw pointer from a wxCFRef without - using a raw pointer. Unlike a raw pointer, constructing a wxCFRef from this - class will cause it to be retained because it is assumed that a wxCFWeakRef - does not own its pointer. -*/ -template <class refType> -class wxCFWeakRef -{ - template <class refTypeA, class otherRefType> - friend wxCFWeakRef<refTypeA> static_cfref_cast(const wxCFRef<otherRefType> &otherRef); -public: - /*! @method wxCFWeakRef - @abstract Creates a NULL reference - */ - wxCFWeakRef() - : m_ptr(NULL) - {} - - // Default copy constructor is fine. - // Default destructor is fine but we'll set NULL to avoid bugs - ~wxCFWeakRef() - { m_ptr = NULL; } - - // Do not implement a raw-pointer constructor. - - /*! @method wxCFWeakRef - @abstract Copies another ref holder where its type can be converted to ours - @templatefield otherRefType Any type held by another wxCFWeakRef. - @param otherRef The other weak ref holder to copy. - @discussion This is merely a copy or implicit cast. - */ - template <class otherRefType> - wxCFWeakRef(const wxCFWeakRef<otherRefType>& otherRef) - : m_ptr(otherRef.get()) // Implicit conversion from otherRefType to refType should occur - {} - - /*! @method wxCFWeakRef - @abstract Copies a strong ref holder where its type can be converted to ours - @templatefield otherRefType Any type held by a wxCFRef. - @param otherRef The strong ref holder to copy. - @discussion This ref is merely a pointer copy, the strong ref still holds the pointer. - */ - template <class otherRefType> - wxCFWeakRef(const wxCFRef<otherRefType>& otherRef) - : m_ptr(otherRef.get()) // Implicit conversion from otherRefType to refType should occur - {} - - /*! @method get - @abstract Explicit conversion to the underlying pointer type - @discussion Allows the caller to explicitly get the underlying pointer. - */ - refType get() const - { return m_ptr; } - - /*! @method operator refType - @abstract Implicit conversion to the underlying pointer type - @discussion Allows the ref to be used in CF function calls. - */ - operator refType() const - { return m_ptr; } - -protected: - /*! @method wxCFWeakRef - @abstract Constructs a weak reference to the raw pointer - @templatefield otherType Any type. - @param p The raw pointer to assume ownership of. May be NULL. - @discussion This method is private so that the friend static_cfref_cast can use it - */ - template <class otherType> - explicit wxCFWeakRef(otherType *p) - : m_ptr(p) // Implicit conversion from otherType* to refType should occur. - {} - - /*! @var m_ptr The raw pointer. - */ - refType m_ptr; -}; - -/*! @class wxCFRef - @templatefield refType The CF reference type (e.g. CFStringRef, CFRunLoopRef, etc.) - It should already be a pointer. This is different from - shared_ptr where the template parameter is the pointee type. - @discussion Properly retains/releases reference to CoreFoundation objects -*/ -template <class refType> -class wxCFRef -{ -public: - /*! @method wxCFRef - @abstract Creates a NULL reference - */ - wxCFRef() - : m_ptr(NULL) - {} - - /*! @method wxCFRef - @abstract Assumes ownership of p and creates a reference to it. - @templatefield otherType Any type. - @param p The raw pointer to assume ownership of. May be NULL. - @discussion Like shared_ptr, it is assumed that the caller has a strong reference to p and intends - to transfer ownership of that reference to this ref holder. If the object comes from - a Create or Copy method then this is the correct behaviour. If the object comes from - a Get method then you must CFRetain it yourself before passing it to this constructor. - A handy way to do this is to use the non-member wxCFRefFromGet factory funcion. - This method is templated and takes an otherType *p. This prevents implicit conversion - using an operator refType() in a different ref-holding class type. - */ - template <class otherType> - explicit wxCFRef(otherType *p) - : m_ptr(p) // Implicit conversion from otherType* to refType should occur. - {} - - /*! @method wxCFRef - @abstract Copies a ref holder of the same type - @param otherRef The other ref holder to copy. - @discussion Ownership will be shared by the original ref and the newly created ref. That is, - the object will be explicitly retained by this new ref. - */ - wxCFRef(const wxCFRef& otherRef) - : m_ptr(wxCFRetain(otherRef.m_ptr)) - {} - - /*! @method wxCFRef - @abstract Copies a ref holder where its type can be converted to ours - @templatefield otherRefType Any type held by another wxCFRef. - @param otherRef The other ref holder to copy. - @discussion Ownership will be shared by the original ref and the newly created ref. That is, - the object will be explicitly retained by this new ref. - */ - template <class otherRefType> - wxCFRef(const wxCFRef<otherRefType>& otherRef) - : m_ptr(wxCFRetain(otherRef.get())) // Implicit conversion from otherRefType to refType should occur - {} - - /*! @method wxCFRef - @abstract Copies a weak ref holder where its type can be converted to ours - @templatefield otherRefType Any type held by a wxCFWeakRef. - @param otherRef The weak ref holder to copy. - @discussion Ownership will be taken by this newly created ref. That is, - the object will be explicitly retained by this new ref. - Ownership is most likely shared with some other ref as well. - */ - template <class otherRefType> - wxCFRef(const wxCFWeakRef<otherRefType>& otherRef) - : m_ptr(wxCFRetain(otherRef.get())) // Implicit conversion from otherRefType to refType should occur - {} - - /*! @method ~wxCFRef - @abstract Releases (potentially shared) ownership of the ref. - @discussion A ref holder instance is always assumed to have ownership so ownership is always - released (CFRelease called) upon destruction. - */ - ~wxCFRef() - { reset(); } - - /*! @method operator= - @abstract Assigns the other ref's pointer to us when the otherRef is the same type. - @param otherRef The other ref holder to copy. - @discussion The incoming pointer is retained, the original pointer is released, and this object - is made to point to the new pointer. - */ - wxCFRef& operator=(const wxCFRef& otherRef) - { - if (this != &otherRef) - { - wxCFRetain(otherRef.m_ptr); - wxCFRelease(m_ptr); - m_ptr = otherRef.m_ptr; - } - return *this; - } - - /*! @method operator= - @abstract Assigns the other ref's pointer to us when the other ref can be converted to our type. - @templatefield otherRefType Any type held by another wxCFRef - @param otherRef The other ref holder to copy. - @discussion The incoming pointer is retained, the original pointer is released, and this object - is made to point to the new pointer. - */ - template <class otherRefType> - wxCFRef& operator=(const wxCFRef<otherRefType>& otherRef) - { - wxCFRetain(otherRef.get()); - wxCFRelease(m_ptr); - m_ptr = otherRef.get(); // Implicit conversion from otherRefType to refType should occur - return *this; - } - - /*! @method get - @abstract Explicit conversion to the underlying pointer type - @discussion Allows the caller to explicitly get the underlying pointer. - */ - refType get() const - { return m_ptr; } - - /*! @method operator refType - @abstract Implicit conversion to the underlying pointer type - @discussion Allows the ref to be used in CF function calls. - */ - operator refType() const - { return m_ptr; } - -#if 0 - < // HeaderDoc is retarded and thinks the GT from operator-> is part of a template param. - // So give it that < outside of a comment to fake it out. (if 0 is not a comment to HeaderDoc) -#endif - - /*! @method operator-> - @abstract Implicit conversion to the underlying pointer type - @discussion This is nearly useless for CF types which are nearly always opaque - */ - refType operator-> () const - { return m_ptr; } - - /*! @method reset - @abstract Nullifies the reference - @discussion Releases ownership (calls CFRelease) before nullifying the pointer. - */ - void reset() - { - wxCFRelease(m_ptr); - m_ptr = NULL; - } - - /*! @method reset - @abstract Sets this to a new reference - @templatefield otherType Any type. - @param p The raw pointer to assume ownership of - @discussion The existing reference is released (like destruction). It is assumed that the caller - has a strong reference to the new p and intends to transfer ownership of that reference - to this ref holder. Take care to call CFRetain if you received the object from a Get method. - This method is templated and takes an otherType *p. This prevents implicit conversion - using an operator refType() in a different ref-holding class type. - */ - template <class otherType> - void reset(otherType* p) - { - wxCFRelease(m_ptr); - m_ptr = p; // Automatic conversion should occur - } - - // Release the pointer, i.e. give up its ownership. - refType release() - { - refType p = m_ptr; - m_ptr = NULL; - return p; - } - -protected: - /*! @var m_ptr The raw pointer. - */ - refType m_ptr; -}; - -/*! @function wxCFRefFromGet - @abstract Factory function to create wxCFRef from a raw pointer obtained from a Get-rule function - @param p The pointer to retain and create a wxCFRef from. May be NULL. - @discussion Unlike the wxCFRef raw pointer constructor, this function explicitly retains its - argument. This can be used for functions such as CFDictionaryGetValue() or - CFAttributedStringGetString() which return a temporary reference (Get-rule functions). - FIXME: Anybody got a better name? -*/ -template <typename Type> -inline wxCFRef<Type*> wxCFRefFromGet(Type *p) -{ - return wxCFRef<Type*>(wxCFRetain(p)); -} - -/*! @function static_cfref_cast - @abstract Works like static_cast but with a wxCFRef as the argument. - @param refType Template parameter. The destination raw pointer type - @param otherRef Normal parameter. The source wxCFRef<> object. - @discussion This is intended to be a clever way to make static_cast work while allowing - the return value to be converted to either a strong ref or a raw pointer - while ensuring that the retain count is updated appropriately. - - This is modeled after shared_ptr's static_pointer_cast. Just as wxCFRef is - parameterized on a pointer to an opaque type so is this class. Note that - this differs from shared_ptr which is parameterized on the pointee type. - - FIXME: Anybody got a better name? -*/ -template <class refType, class otherRefType> -inline wxCFWeakRef<refType> static_cfref_cast(const wxCFRef<otherRefType> &otherRef); - -template <class refType, class otherRefType> -inline wxCFWeakRef<refType> static_cfref_cast(const wxCFRef<otherRefType> &otherRef) -{ - return wxCFWeakRef<refType>(static_cast<refType>(otherRef.get())); -} - -/*! @function CFRelease - @abstract Overloads CFRelease so that the user is warned of bad behaviour. - @discussion It is rarely appropriate to retain or release a wxCFRef. If one absolutely - must do it he can explicitly get() the raw pointer - Normally, this function is unimplemented resulting in a linker error if used. -*/ -template <class T> -inline void CFRelease(const wxCFRef<T*> & cfref) DEPRECATED_ATTRIBUTE; - -/*! @function CFRetain - @abstract Overloads CFRetain so that the user is warned of bad behaviour. - @discussion It is rarely appropriate to retain or release a wxCFRef. If one absolutely - must do it he can explicitly get() the raw pointer - Normally, this function is unimplemented resulting in a linker error if used. -*/ -template <class T> -inline void CFRetain(const wxCFRef<T*>& cfref) DEPRECATED_ATTRIBUTE; - -// Change the 0 to a 1 if you want the functions to work (no link errors) -// Neither function will cause retain/release side-effects if implemented. -#if 0 -template <class T> -void CFRelease(const wxCFRef<T*> & cfref) -{ - CFRelease(cfref.get()); -} - -template <class T> -void CFRetain(const wxCFRef<T*> & cfref) -{ - CFRetain(cfref.get()); -} -#endif - -#endif //ndef _WX_MAC_COREFOUNDATION_CFREF_H__ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/cfstring.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/cfstring.h deleted file mode 100644 index 8b939a29..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/cfstring.h +++ /dev/null @@ -1,100 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/core/cfstring.h -// Purpose: wxCFStringRef and other string functions -// Author: Stefan Csomor -// Modified by: -// Created: 2004-10-29 (from code in wx/mac/carbon/private.h) -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -// Usage: Darwin (base library) -///////////////////////////////////////////////////////////////////////////// - -#ifndef __WX_CFSTRINGHOLDER_H__ -#define __WX_CFSTRINGHOLDER_H__ - -#include <CoreFoundation/CFString.h> - -#include "wx/dlimpexp.h" -#include "wx/fontenc.h" -#include "wx/osx/core/cfref.h" - -#ifdef WORDS_BIGENDIAN - #define kCFStringEncodingUTF32Native kCFStringEncodingUTF32BE -#else - #define kCFStringEncodingUTF32Native kCFStringEncodingUTF32LE -#endif - -class WXDLLIMPEXP_FWD_BASE wxString; - -WXDLLIMPEXP_BASE void wxMacConvertNewlines13To10( wxString *data ) ; -WXDLLIMPEXP_BASE void wxMacConvertNewlines10To13( wxString *data ) ; - -WXDLLIMPEXP_BASE void wxMacConvertNewlines13To10( char * data ) ; -WXDLLIMPEXP_BASE void wxMacConvertNewlines10To13( char * data ) ; - -WXDLLIMPEXP_BASE wxUint32 wxMacGetSystemEncFromFontEnc(wxFontEncoding encoding) ; -WXDLLIMPEXP_BASE wxFontEncoding wxMacGetFontEncFromSystemEnc(wxUint32 encoding) ; -WXDLLIMPEXP_BASE void wxMacWakeUp() ; - -class WXDLLIMPEXP_BASE wxCFStringRef : public wxCFRef< CFStringRef > -{ -public: - wxCFStringRef() - { - } - - wxCFStringRef(const wxString &str, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT) ; - -#ifdef __WXMAC__ - wxCFStringRef(NSString* ref) - : wxCFRef< CFStringRef >((CFStringRef) ref) - { - } -#endif - - wxCFStringRef(CFStringRef ref) - : wxCFRef< CFStringRef >(ref) - { - } - - wxCFStringRef(const wxCFStringRef& otherRef ) - : wxCFRef< CFStringRef >(otherRef) - { - } - - ~wxCFStringRef() - { - } - - wxString AsString( wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) const; - - static wxString AsString( CFStringRef ref, wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ; - static wxString AsStringWithNormalizationFormC( CFStringRef ref, wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ; -#ifdef __WXMAC__ - static wxString AsString( NSString* ref, wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ; - static wxString AsStringWithNormalizationFormC( NSString* ref, wxFontEncoding encoding = wxFONTENCODING_DEFAULT ) ; - - NSString* AsNSString() const { return (NSString*)(CFStringRef) *this; } -#endif -private: -} ; - -// corresponding class for holding UniChars (native unicode characters) - -class WXDLLIMPEXP_BASE wxMacUniCharBuffer -{ -public : - wxMacUniCharBuffer( const wxString &str ) ; - - ~wxMacUniCharBuffer() ; - - UniCharPtr GetBuffer() ; - - UniCharCount GetChars() ; - -private : - UniCharPtr m_ubuf ; - UniCharCount m_chars ; -}; -#endif //__WXCFSTRINGHOLDER_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/colour.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/colour.h deleted file mode 100644 index ff41bcb5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/colour.h +++ /dev/null @@ -1,88 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/core/colour.h -// Purpose: wxColour class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLOUR_H_ -#define _WX_COLOUR_H_ - -#include "wx/object.h" -#include "wx/string.h" - -#include "wx/osx/core/cfref.h" - -struct RGBColor; - -// Colour -class WXDLLIMPEXP_CORE wxColour: public wxColourBase -{ -public: - // constructors - // ------------ - DEFINE_STD_WXCOLOUR_CONSTRUCTORS - - // default copy ctor and dtor are ok - - // accessors - virtual bool IsOk() const { return m_cgColour != NULL; } - - virtual WXDLLIMPEXP_INLINE_CORE ChannelType Red() const { return m_red; } - virtual WXDLLIMPEXP_INLINE_CORE ChannelType Green() const { return m_green; } - virtual WXDLLIMPEXP_INLINE_CORE ChannelType Blue() const { return m_blue; } - virtual WXDLLIMPEXP_INLINE_CORE ChannelType Alpha() const { return m_alpha; } - - // comparison - bool operator == (const wxColour& colour) const; - - bool operator != (const wxColour& colour) const { return !(*this == colour); } - - CGColorRef GetPixel() const { return m_cgColour; } - - CGColorRef GetCGColor() const { return m_cgColour; } - CGColorRef CreateCGColor() const { return wxCFRetain( (CGColorRef)m_cgColour ); } - -#if wxOSX_USE_COCOA_OR_CARBON - void GetRGBColor( RGBColor *col ) const; -#endif - - // Mac-specific ctor and assignment operator from the native colour - // assumes ownership of CGColorRef - wxColour( CGColorRef col ); -#if wxOSX_USE_COCOA_OR_CARBON - wxColour(const RGBColor& col); - wxColour& operator=(const RGBColor& col); -#endif -#if wxOSX_USE_COCOA - // This ctor does not take ownership of the color. - explicit wxColour(WX_NSColor color); - WX_NSColor OSXGetNSColor() const; -#endif - wxColour& operator=(CGColorRef col); - wxColour& operator=(const wxColour& col); - -protected : - virtual void - InitRGBA(ChannelType r, ChannelType g, ChannelType b, ChannelType a); -#if wxOSX_USE_COCOA_OR_CARBON - void InitRGBColor( const RGBColor& col ); -#endif - void InitCGColorRef( CGColorRef col ); - -private: - wxCFRef<CGColorRef> m_cgColour; - - ChannelType m_red; - ChannelType m_blue; - ChannelType m_green; - ChannelType m_alpha; - - wxDECLARE_DYNAMIC_CLASS(wxColour); -}; - -#endif - // _WX_COLOUR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/dataview.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/dataview.h deleted file mode 100644 index 440be5e8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/dataview.h +++ /dev/null @@ -1,113 +0,0 @@ - -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/core/dataview.h -// Purpose: wxDataViewCtrl native implementation header for OSX -// Author: -// Copyright: (c) 2009 -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DATAVIEWCTRL_CORE_H_ -#define _WX_DATAVIEWCTRL_CORE_H_ - -#include "wx/dataview.h" - -typedef wxWidgetImpl wxWidgetImplType; - -// --------------------------------------------------------- -// Helper functions for dataview implementation on OSX -// --------------------------------------------------------- -wxWidgetImplType* CreateDataView(wxWindowMac* wxpeer, wxWindowMac* parent, wxWindowID id, - wxPoint const& pos, wxSize const& size, - long style, long extraStyle); -wxString ConcatenateDataViewItemValues(wxDataViewCtrl const* dataViewCtrlPtr, wxDataViewItem const& dataViewItem); // concatenates all data of the visible columns of the passed control - // and item TAB separated into a string and returns it - -// --------------------------------------------------------- -// wxDataViewWidgetImpl -// Common interface of the native dataview implementation -// for the carbon and cocoa environment. -// ATTENTION -// All methods assume that the passed column pointers are -// valid (unless a NULL pointer is explicitly allowed -// to be passed)! -// ATTENTION -// --------------------------------------------------------- -class WXDLLIMPEXP_CORE wxDataViewWidgetImpl -{ -public: - // - // constructors / destructor - // - virtual ~wxDataViewWidgetImpl(void) - { - } - - // - // column related methods - // - virtual bool ClearColumns (void) = 0; // deletes all columns in the native control - virtual bool DeleteColumn (wxDataViewColumn* columnPtr) = 0; // deletes the column in the native control - virtual void DoSetExpanderColumn(wxDataViewColumn const* columnPtr) = 0; // sets the disclosure column in the native control - virtual wxDataViewColumn* GetColumn (unsigned int pos) const = 0; // returns the column belonging to 'pos' in the native control - virtual int GetColumnPosition (wxDataViewColumn const* columnPtr) const = 0; // returns the position of the passed column in the native control - virtual bool InsertColumn (unsigned int pos, wxDataViewColumn* columnPtr) = 0; // inserts a column at pos in the native control; - // the method can assume that the column's owner is already set - virtual void FitColumnWidthToContent(unsigned int pos) = 0; // resizes column to fit its content - - // - // item related methods - // - virtual bool Add (wxDataViewItem const& parent, wxDataViewItem const& item) = 0; // adds an item to the native control - virtual bool Add (wxDataViewItem const& parent, wxDataViewItemArray const& itesm) = 0; // adds a items to the native control - virtual void Collapse (wxDataViewItem const& item) = 0; // collapses the passed item in the native control - virtual void EnsureVisible(wxDataViewItem const& item, wxDataViewColumn const* columnPtr) = 0; // ensures that the passed item's value in the passed column is visible (column pointer can be NULL) - virtual void Expand (wxDataViewItem const& item) = 0; // expands the passed item in the native control - virtual unsigned int GetCount (void) const = 0; // returns the number of items in the native control - virtual wxRect GetRectangle (wxDataViewItem const& item, wxDataViewColumn const* columnPtr) = 0; // returns the rectangle that is used by the passed item and column in the native control - virtual bool IsExpanded (wxDataViewItem const& item) const = 0; // checks if the passed item is expanded in the native control - virtual bool Reload (void) = 0; // clears the native control and reloads all data - virtual bool Remove (wxDataViewItem const& parent, wxDataViewItem const& item) = 0; // removes an item from the native control - virtual bool Remove (wxDataViewItem const& parent, wxDataViewItemArray const& item) = 0; // removes items from the native control - virtual bool Update (wxDataViewColumn const* columnPtr) = 0; // updates the items in the passed column of the native control - virtual bool Update (wxDataViewItem const& parent, wxDataViewItem const& item) = 0; // updates the passed item in the native control - virtual bool Update (wxDataViewItem const& parent, wxDataViewItemArray const& items) = 0; // updates the passed items in the native control - - // - // model related methods - // - virtual bool AssociateModel(wxDataViewModel* model) = 0; // informs the native control that a model is present - - // - // selection related methods - // - virtual wxDataViewItem GetCurrentItem() const = 0; - virtual void SetCurrentItem(const wxDataViewItem& item) = 0; - - virtual wxDataViewColumn *GetCurrentColumn() const = 0; - - virtual int GetSelectedItemsCount() const = 0; - virtual int GetSelections(wxDataViewItemArray& sel) const = 0; // returns all selected items in the native control - virtual bool IsSelected (wxDataViewItem const& item) const = 0; // checks if the passed item is selected in the native control - virtual void Select (wxDataViewItem const& item) = 0; // selects the passed item in the native control - virtual void SelectAll (void) = 0; // selects all items in the native control - virtual void Unselect (wxDataViewItem const& item) = 0; // unselects the passed item in the native control - virtual void UnselectAll (void) = 0; // unselects all items in the native control - - // - // sorting related methods - // - virtual wxDataViewColumn* GetSortingColumn (void) const = 0; // returns the column that is primarily responsible for sorting in the native control - virtual void Resort (void) = 0; // asks the native control to start a resorting process - - // - // other methods - // - virtual void DoSetIndent (int indent) = 0; // sets the indention in the native control - virtual void HitTest (wxPoint const& point, wxDataViewItem& item, wxDataViewColumn*& columnPtr) const = 0; // return the item and column pointer that contains with the passed point - virtual void SetRowHeight(wxDataViewItem const& item, unsigned int height) = 0; // sets the height of the row containg the passed item in the native control - virtual void OnSize (void) = 0; // updates the layout of the native control after a size event - virtual void StartEditor( const wxDataViewItem & item, unsigned int column ) = 0; // starts editing the passed in item and column -}; - -#endif // _WX_DATAVIEWCTRL_CORE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/evtloop.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/evtloop.h deleted file mode 100644 index 7c4f189f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/evtloop.h +++ /dev/null @@ -1,118 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/core/evtloop.h -// Purpose: CoreFoundation-based event loop -// Author: Vadim Zeitlin -// Modified by: -// Created: 2006-01-12 -// Copyright: (c) 2006 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_CORE_EVTLOOP_H_ -#define _WX_OSX_CORE_EVTLOOP_H_ - -DECLARE_WXOSX_OPAQUE_CFREF( CFRunLoop ) -DECLARE_WXOSX_OPAQUE_CFREF( CFRunLoopObserver ) - -class WXDLLIMPEXP_FWD_BASE wxCFEventLoopPauseIdleEvents; - -class WXDLLIMPEXP_BASE wxCFEventLoop : public wxEventLoopBase -{ - friend class wxCFEventLoopPauseIdleEvents; -public: - wxCFEventLoop(); - virtual ~wxCFEventLoop(); - - // sets the "should exit" flag and wakes up the loop so that it terminates - // soon - virtual void ScheduleExit(int rc = 0); - - // return true if any events are available - virtual bool Pending() const; - - // dispatch a single event, return false if we should exit from the loop - virtual bool Dispatch(); - - // same as Dispatch() but doesn't wait for longer than the specified (in - // ms) timeout, return true if an event was processed, false if we should - // exit the loop or -1 if timeout expired - virtual int DispatchTimeout(unsigned long timeout); - - // implement this to wake up the loop: usually done by posting a dummy event - // to it (can be called from non main thread) - virtual void WakeUp(); - - bool ShouldProcessIdleEvents() const { return m_processIdleEvents ; } - -#if wxUSE_UIACTIONSIMULATOR - // notifies Yield and Dispatch to wait for at least one event before - // returning, this is necessary, because the synthesized events need to be - // converted by the OS before being available on the native event queue - void SetShouldWaitForEvent(bool should) { m_shouldWaitForEvent = should; } -#endif -protected: - // enters a loop calling OnNextIteration(), Pending() and Dispatch() and - // terminating when Exit() is called - virtual int DoRun(); - - // may be overridden to perform some action at the start of each new event - // loop iteration - virtual void OnNextIteration() {} - - virtual void DoYieldFor(long eventsToProcess); - - void CommonModeObserverCallBack(CFRunLoopObserverRef observer, int activity); - void DefaultModeObserverCallBack(CFRunLoopObserverRef observer, int activity); - - // set to false to avoid idling at unexpected moments - eg when having native message boxes - void SetProcessIdleEvents(bool process) { m_processIdleEvents = process; } - - static void OSXCommonModeObserverCallBack(CFRunLoopObserverRef observer, int activity, void *info); - static void OSXDefaultModeObserverCallBack(CFRunLoopObserverRef observer, int activity, void *info); - - // get the currently executing CFRunLoop - virtual CFRunLoopRef CFGetCurrentRunLoop() const; - - virtual int DoDispatchTimeout(unsigned long timeout); - - virtual void OSXDoRun(); - virtual void OSXDoStop(); - - // the loop exit code - int m_exitcode; - - // cfrunloop - CFRunLoopRef m_runLoop; - - // common modes runloop observer - CFRunLoopObserverRef m_commonModeRunLoopObserver; - - // default mode runloop observer - CFRunLoopObserverRef m_defaultModeRunLoopObserver; - - // set to false to avoid idling at unexpected moments - eg when having native message boxes - bool m_processIdleEvents; - -#if wxUSE_UIACTIONSIMULATOR - bool m_shouldWaitForEvent; -#endif -private: - // process all already pending events and dispatch a new one (blocking - // until it appears in the event queue if necessary) - // - // returns the return value of DoDispatchTimeout() - int DoProcessEvents(); - - wxDECLARE_NO_COPY_CLASS(wxCFEventLoop); -}; - -class WXDLLIMPEXP_BASE wxCFEventLoopPauseIdleEvents : public wxObject -{ -public: - wxCFEventLoopPauseIdleEvents(); - virtual ~wxCFEventLoopPauseIdleEvents(); -private: - bool m_formerState; -}; - -#endif // _WX_OSX_EVTLOOP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/hid.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/hid.h deleted file mode 100644 index 20c1a7ba..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/hid.h +++ /dev/null @@ -1,114 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/core/hid.h -// Purpose: DARWIN HID layer for WX -// Author: Ryan Norton -// Modified by: -// Created: 11/11/2003 -// Copyright: (c) Ryan Norton -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// =========================================================================== -// declarations -// =========================================================================== - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#ifndef _WX_MACCARBONHID_H_ -#define _WX_MACCARBONHID_H_ - -#include "wx/defs.h" -#include "wx/string.h" - -//Mac OSX only -#ifdef __DARWIN__ - -#include <IOKit/IOKitLib.h> -#include <IOKit/IOCFPlugIn.h> -#include <IOKit/hid/IOHIDLib.h> -#include <IOKit/hid/IOHIDKeys.h> -#include <Kernel/IOKit/hidsystem/IOHIDUsageTables.h> - -//Darn apple - doesn't properly wrap their headers in extern "C"! -//http://www.macosx.com/forums/archive/index.php/t-68069.html -extern "C" { -#include <mach/mach_port.h> -} - -#include <mach/mach.h> //this actually includes mach_port.h (see above) - -// =========================================================================== -// definitions -// =========================================================================== - - -// --------------------------------------------------------------------------- -// wxHIDDevice -// -// A wrapper around OS X HID Manager procedures. -// The tutorial "Working With HID Class Device Interfaces" Is -// Quite good, as is the sample program associated with it -// (Depite the author's protests!). -// --------------------------------------------------------------------------- -class WXDLLIMPEXP_CORE wxHIDDevice -{ -public: - wxHIDDevice() : m_ppDevice(NULL), m_ppQueue(NULL), m_pCookies(NULL) {} - - bool Create (int nClass = -1, int nType = -1, int nDev = 1); - - static size_t GetCount(int nClass = -1, int nType = -1); - - void AddCookie(CFTypeRef Data, int i); - void AddCookieInQueue(CFTypeRef Data, int i); - void InitCookies(size_t dwSize, bool bQueue = false); - - //Must be implemented by derived classes - //builds the cookie array - - //first call InitCookies to initialize the cookie - //array, then AddCookie to add a cookie at a certain point in an array - virtual void BuildCookies(CFArrayRef Array) = 0; - - //checks to see whether the cookie at nIndex is active (element value != 0) - bool IsActive(int nIndex); - - //checks to see whether an element in the internal cookie array - //exists - bool HasElement(int nIndex); - - //closes the device and cleans the queue and cookies - virtual ~wxHIDDevice(); - -protected: - IOHIDDeviceInterface** m_ppDevice; //this, essentially - IOHIDQueueInterface** m_ppQueue; //queue (if we want one) - IOHIDElementCookie* m_pCookies; //cookies - - wxString m_szProductName; //product name - int m_nProductId; //product id - int m_nManufacturerId; //manufacturer id - mach_port_t m_pPort; //mach port to use -}; - -// --------------------------------------------------------------------------- -// wxHIDKeyboard -// -// Semi-simple implementation that opens a connection to the first -// keyboard of the machine. Used in wxGetKeyState. -// --------------------------------------------------------------------------- -class WXDLLIMPEXP_CORE wxHIDKeyboard : public wxHIDDevice -{ -public: - static int GetCount(); - bool Create(int nDev = 1); - void AddCookie(CFTypeRef Data, int i); - virtual void BuildCookies(CFArrayRef Array); - void DoBuildCookies(CFArrayRef Array); -}; - -#endif //__DARWIN__ - -#endif - // _WX_MACCARBONHID_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/joystick.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/joystick.h deleted file mode 100644 index 51e37382..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/joystick.h +++ /dev/null @@ -1,92 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/core/joystick.h -// Purpose: wxJoystick class -// Author: Ryan Norton -// Modified by: -// Created: 2/13/2005 -// Copyright: (c) Ryan Norton -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_JOYSTICK_H_ -#define _WX_JOYSTICK_H_ - -#include "wx/event.h" - -class WXDLLIMPEXP_FWD_CORE wxJoystickThread; - -class WXDLLIMPEXP_ADV wxJoystick: public wxObject -{ - wxDECLARE_DYNAMIC_CLASS(wxJoystick); - public: - - wxJoystick(int joystick = wxJOYSTICK1); - virtual ~wxJoystick(); - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - wxPoint GetPosition() const; - int GetPosition(unsigned axis) const; - bool GetButtonState(unsigned button) const; - int GetZPosition() const; - int GetButtonState() const; - int GetPOVPosition() const; - int GetPOVCTSPosition() const; - int GetRudderPosition() const; - int GetUPosition() const; - int GetVPosition() const; - int GetMovementThreshold() const; - void SetMovementThreshold(int threshold) ; - - // Capabilities - //////////////////////////////////////////////////////////////////////////// - - bool IsOk() const; // Checks that the joystick is functioning - static int GetNumberJoysticks() ; - int GetManufacturerId() const ; - int GetProductId() const ; - wxString GetProductName() const ; - int GetXMin() const; - int GetYMin() const; - int GetZMin() const; - int GetXMax() const; - int GetYMax() const; - int GetZMax() const; - int GetNumberButtons() const; - int GetNumberAxes() const; - int GetMaxButtons() const; - int GetMaxAxes() const; - int GetPollingMin() const; - int GetPollingMax() const; - int GetRudderMin() const; - int GetRudderMax() const; - int GetUMin() const; - int GetUMax() const; - int GetVMin() const; - int GetVMax() const; - - bool HasRudder() const; - bool HasZ() const; - bool HasU() const; - bool HasV() const; - bool HasPOV() const; - bool HasPOV4Dir() const; - bool HasPOVCTS() const; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // pollingFreq = 0 means that movement events are sent when above the threshold. - // If pollingFreq > 0, events are received every this many milliseconds. - bool SetCapture(wxWindow* win, int pollingFreq = 0); - bool ReleaseCapture(); - -protected: - int m_joystick; - wxJoystickThread* m_thread; - class wxHIDJoystick* m_hid; -}; - -#endif - // _WX_JOYSTICK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/mimetype.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/mimetype.h deleted file mode 100644 index 7f92a990..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/mimetype.h +++ /dev/null @@ -1,120 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/core/mimetype.h -// Purpose: Mac implementation for wx mime-related classes -// Author: Neil Perkins -// Modified by: -// Created: 2010-05-15 -// Copyright: (C) 2010 Neil Perkins -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _MIMETYPE_IMPL_H -#define _MIMETYPE_IMPL_H - -#include "wx/defs.h" - -#if wxUSE_MIMETYPE - -#include "wx/mimetype.h" -#include "wx/hashmap.h" -#include "wx/iconloc.h" - - -// This class implements mime type functionality for Mac OS X using UTIs and Launch Services -// Currently only the GetFileTypeFromXXXX public functions have been implemented -class WXDLLIMPEXP_BASE wxMimeTypesManagerImpl -{ -public: - - wxMimeTypesManagerImpl(); - virtual ~wxMimeTypesManagerImpl(); - - // These functions are not needed on Mac OS X and have no-op implementations - void Initialize(int mailcapStyles = wxMAILCAP_STANDARD, const wxString& extraDir = wxEmptyString); - void ClearData(); - - // Functions to look up types by ext, mime or UTI - wxFileType *GetFileTypeFromExtension(const wxString& ext); - wxFileType *GetFileTypeFromMimeType(const wxString& mimeType); - wxFileType *GetFileTypeFromUti(const wxString& uti); - - // These functions are only stubs on Mac OS X - size_t EnumAllFileTypes(wxArrayString& mimetypes); - wxFileType *Associate(const wxFileTypeInfo& ftInfo); - bool Unassociate(wxFileType *ft); - -private: - - // The work of querying the OS for type data is done in these two functions - void LoadTypeDataForUti(const wxString& uti); - void LoadDisplayDataForUti(const wxString& uti); - - // These functions are pass-throughs from wxFileTypeImpl - bool GetExtensions(const wxString& uti, wxArrayString& extensions); - bool GetMimeType(const wxString& uti, wxString *mimeType); - bool GetMimeTypes(const wxString& uti, wxArrayString& mimeTypes); - bool GetIcon(const wxString& uti, wxIconLocation *iconLoc); - bool GetDescription(const wxString& uti, wxString *desc); - bool GetApplication(const wxString& uti, wxString *command); - - // Structure to represent file types - typedef struct FileTypeData - { - wxArrayString extensions; - wxArrayString mimeTypes; - wxIconLocation iconLoc; - wxString application; - wxString description; - } - FileTypeInfo; - - // Map types - WX_DECLARE_STRING_HASH_MAP( wxString, TagMap ); - WX_DECLARE_STRING_HASH_MAP( FileTypeData, UtiMap ); - - // Data store - TagMap m_extMap; - TagMap m_mimeMap; - UtiMap m_utiMap; - - friend class wxFileTypeImpl; -}; - - -// This class provides the interface between wxFileType and wxMimeTypesManagerImple for Mac OS X -// Currently only extension, mimetype, description and icon information is available -// All other methods have no-op implementation -class WXDLLIMPEXP_BASE wxFileTypeImpl -{ -public: - - wxFileTypeImpl(); - virtual ~wxFileTypeImpl(); - - bool GetExtensions(wxArrayString& extensions) const ; - bool GetMimeType(wxString *mimeType) const ; - bool GetMimeTypes(wxArrayString& mimeTypes) const ; - bool GetIcon(wxIconLocation *iconLoc) const ; - bool GetDescription(wxString *desc) const ; - bool GetOpenCommand(wxString *openCmd, const wxFileType::MessageParameters& params) const; - - // These functions are only stubs on Mac OS X - bool GetPrintCommand(wxString *printCmd, const wxFileType::MessageParameters& params) const; - size_t GetAllCommands(wxArrayString *verbs, wxArrayString *commands, const wxFileType::MessageParameters& params) const; - bool SetCommand(const wxString& cmd, const wxString& verb, bool overwriteprompt = TRUE); - bool SetDefaultIcon(const wxString& strIcon = wxEmptyString, int index = 0); - bool Unassociate(wxFileType *ft); - -private: - - // All that is needed to query type info - UTI and pointer to the manager - wxString m_uti; - wxMimeTypesManagerImpl* m_manager; - - friend class wxMimeTypesManagerImpl; -}; - -#endif // wxUSE_MIMETYPE -#endif //_MIMETYPE_IMPL_H - - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/objcid.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/objcid.h deleted file mode 100644 index 35238bb8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/objcid.h +++ /dev/null @@ -1,23 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/core/objcid.h -// Purpose: Define wxObjCID working in both C++ and Objective-C. -// Author: Vadim Zeitlin -// Created: 2012-05-20 -// Copyright: (c) 2012 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_CORE_OBJCID_H_ -#define _WX_OSX_CORE_OBJCID_H_ - -// ---------------------------------------------------------------------------- -// wxObjCID: Equivalent of Objective-C "id" that works in C++ code. -// ---------------------------------------------------------------------------- - -#ifdef __OBJC__ - #define wxObjCID id -#else - typedef struct objc_object* wxObjCID; -#endif - -#endif // _WX_OSX_CORE_OBJCID_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private.h deleted file mode 100644 index 5d914134..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private.h +++ /dev/null @@ -1,935 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/core/private.h -// Purpose: Private declarations: as this header is only included by -// wxWidgets itself, it may contain identifiers which don't start -// with "wx". -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_CORE_H_ -#define _WX_PRIVATE_CORE_H_ - -#include "wx/defs.h" - -#include <CoreFoundation/CoreFoundation.h> - -#include "wx/osx/core/cfstring.h" -#include "wx/osx/core/cfdataref.h" - -// platform specific Clang analyzer support -#ifndef NS_RETURNS_RETAINED -# if WX_HAS_CLANG_FEATURE(attribute_ns_returns_retained) -# define NS_RETURNS_RETAINED __attribute__((ns_returns_retained)) -# else -# define NS_RETURNS_RETAINED -# endif -#endif - -#ifndef CF_RETURNS_RETAINED -# if WX_HAS_CLANG_FEATURE(attribute_cf_returns_retained) -# define CF_RETURNS_RETAINED __attribute__((cf_returns_retained)) -# else -# define CF_RETURNS_RETAINED -# endif -#endif - -#if ( !wxUSE_GUI && !wxOSX_USE_IPHONE ) || wxOSX_USE_COCOA_OR_CARBON - -// Carbon functions are currently still used in wxOSX/Cocoa too (including -// wxBase part of it). -#include <Carbon/Carbon.h> - -void WXDLLIMPEXP_CORE wxMacStringToPascal( const wxString&from , unsigned char * to ); -wxString WXDLLIMPEXP_CORE wxMacMakeStringFromPascal( const unsigned char * from ); - -WXDLLIMPEXP_BASE wxString wxMacFSRefToPath( const FSRef *fsRef , CFStringRef additionalPathComponent = NULL ); -WXDLLIMPEXP_BASE OSStatus wxMacPathToFSRef( const wxString&path , FSRef *fsRef ); -WXDLLIMPEXP_BASE wxString wxMacHFSUniStrToString( ConstHFSUniStr255Param uniname ); - -// keycode utils from app.cpp - -WXDLLIMPEXP_BASE CGKeyCode wxCharCodeWXToOSX(wxKeyCode code); -WXDLLIMPEXP_BASE long wxMacTranslateKey(unsigned char key, unsigned char code); - -#endif - -#if wxUSE_GUI - -#if wxOSX_USE_IPHONE -#include <CoreGraphics/CoreGraphics.h> -#else -#include <ApplicationServices/ApplicationServices.h> -#endif - -#include "wx/bitmap.h" -#include "wx/window.h" - -class WXDLLIMPEXP_CORE wxMacCGContextStateSaver -{ - wxDECLARE_NO_COPY_CLASS(wxMacCGContextStateSaver); - -public: - wxMacCGContextStateSaver( CGContextRef cg ) - { - m_cg = cg; - CGContextSaveGState( cg ); - } - ~wxMacCGContextStateSaver() - { - CGContextRestoreGState( m_cg ); - } -private: - CGContextRef m_cg; -}; - -class WXDLLIMPEXP_CORE wxDeferredObjectDeleter : public wxObject -{ -public : - wxDeferredObjectDeleter( wxObject* obj ) : m_obj(obj) - { - } - virtual ~wxDeferredObjectDeleter() - { - delete m_obj; - } -protected : - wxObject* m_obj ; -} ; - -// Quartz - -WXDLLIMPEXP_CORE CGImageRef wxMacCreateCGImageFromBitmap( const wxBitmap& bitmap ); - -WXDLLIMPEXP_CORE CGDataProviderRef wxMacCGDataProviderCreateWithCFData( CFDataRef data ); -WXDLLIMPEXP_CORE CGDataConsumerRef wxMacCGDataConsumerCreateWithCFData( CFMutableDataRef data ); -WXDLLIMPEXP_CORE CGDataProviderRef wxMacCGDataProviderCreateWithMemoryBuffer( const wxMemoryBuffer& buf ); - -WXDLLIMPEXP_CORE CGColorSpaceRef wxMacGetGenericRGBColorSpace(void); - -WXDLLIMPEXP_CORE double wxOSXGetMainScreenContentScaleFactor(); - -class wxWindowMac; -// to -extern wxWindow* g_MacLastWindow; -class wxNonOwnedWindow; - -// temporary typedef so that no additional casts are necessary within carbon code at the moment - -class wxMacControl; -class wxWidgetImpl; -class wxComboBox; -class wxNotebook; -class wxTextCtrl; -class wxSearchCtrl; - -WXDLLIMPEXP_CORE wxWindowMac * wxFindWindowFromWXWidget(WXWidget inControl ); - -typedef wxWidgetImpl wxWidgetImplType; - -#if wxUSE_MENUS -class wxMenuItemImpl : public wxObject -{ -public : - wxMenuItemImpl( wxMenuItem* peer ) : m_peer(peer) - { - } - - virtual ~wxMenuItemImpl() ; - virtual void SetBitmap( const wxBitmap& bitmap ) = 0; - virtual void Enable( bool enable ) = 0; - virtual void Check( bool check ) = 0; - virtual void SetLabel( const wxString& text, wxAcceleratorEntry *entry ) = 0; - virtual void Hide( bool hide = true ) = 0; - - virtual void * GetHMenuItem() = 0; - - wxMenuItem* GetWXPeer() { return m_peer ; } - - static wxMenuItemImpl* Create( wxMenuItem* peer, wxMenu *pParentMenu, - int id, - const wxString& text, - wxAcceleratorEntry *entry, - const wxString& strHelp, - wxItemKind kind, - wxMenu *pSubMenu ); - - // handle OS specific menu items if they weren't handled during normal processing - virtual bool DoDefault() { return false; } -protected : - wxMenuItem* m_peer; - - wxDECLARE_ABSTRACT_CLASS(wxMenuItemImpl); -} ; - -class wxMenuImpl : public wxObject -{ -public : - wxMenuImpl( wxMenu* peer ) : m_peer(peer) - { - } - - virtual ~wxMenuImpl() ; - virtual void InsertOrAppend(wxMenuItem *pItem, size_t pos) = 0; - virtual void Remove( wxMenuItem *pItem ) = 0; - - virtual void MakeRoot() = 0; - - virtual void SetTitle( const wxString& text ) = 0; - - virtual WXHMENU GetHMenu() = 0; - - wxMenu* GetWXPeer() { return m_peer ; } - - virtual void PopUp( wxWindow *win, int x, int y ) = 0; - - virtual void GetMenuBarDimensions(int &x, int &y, int &width, int &height) const - { - x = y = width = height = -1; - } - - static wxMenuImpl* Create( wxMenu* peer, const wxString& title ); - static wxMenuImpl* CreateRootMenu( wxMenu* peer ); -protected : - wxMenu* m_peer; - - wxDECLARE_ABSTRACT_CLASS(wxMenuItemImpl); -} ; -#endif - - -class WXDLLIMPEXP_CORE wxWidgetImpl : public wxObject -{ -public : - wxWidgetImpl( wxWindowMac* peer , bool isRootControl = false, bool isUserPane = false ); - wxWidgetImpl(); - virtual ~wxWidgetImpl(); - - void Init(); - - bool IsRootControl() const { return m_isRootControl; } - - bool IsUserPane() const { return m_isUserPane; } - - wxWindowMac* GetWXPeer() const { return m_wxPeer; } - - bool IsOk() const { return GetWXWidget() != NULL; } - - // not only the control itself, but also all its parents must be visible - // in order for this function to return true - virtual bool IsVisible() const = 0; - // set the visibility of this widget (maybe latent) - virtual void SetVisibility( bool visible ) = 0; - - virtual bool ShowWithEffect(bool WXUNUSED(show), - wxShowEffect WXUNUSED(effect), - unsigned WXUNUSED(timeout)) - { - return false; - } - - virtual void Raise() = 0; - - virtual void Lower() = 0; - - virtual void ScrollRect( const wxRect *rect, int dx, int dy ) = 0; - - virtual WXWidget GetWXWidget() const = 0; - - virtual void SetBackgroundColour( const wxColour& col ) = 0; - virtual bool SetBackgroundStyle(wxBackgroundStyle style) = 0; - - // all coordinates in native parent widget relative coordinates - virtual void GetContentArea( int &left , int &top , int &width , int &height ) const = 0; - virtual void Move(int x, int y, int width, int height) = 0; - virtual void GetPosition( int &x, int &y ) const = 0; - virtual void GetSize( int &width, int &height ) const = 0; - virtual void SetControlSize( wxWindowVariant variant ) = 0; - virtual double GetContentScaleFactor() const - { - return 1.0; - } - - // the native coordinates may have an 'aura' for shadows etc, if this is the case the layout - // inset indicates on which insets the real control is drawn - virtual void GetLayoutInset(int &left , int &top , int &right, int &bottom) const - { - left = top = right = bottom = 0; - } - - // native view coordinates are topleft to bottom right (flipped regarding CoreGraphics origin) - virtual bool IsFlipped() const { return true; } - - virtual void SetNeedsDisplay( const wxRect* where = NULL ) = 0; - virtual bool GetNeedsDisplay() const = 0; - - virtual bool NeedsFocusRect() const; - virtual void SetNeedsFocusRect( bool needs ); - - virtual bool NeedsFrame() const; - virtual void SetNeedsFrame( bool needs ); - - virtual void SetDrawingEnabled(bool enabled); - - virtual bool CanFocus() const = 0; - // return true if successful - virtual bool SetFocus() = 0; - virtual bool HasFocus() const = 0; - - virtual void RemoveFromParent() = 0; - virtual void Embed( wxWidgetImpl *parent ) = 0; - - virtual void SetDefaultButton( bool isDefault ) = 0; - virtual void PerformClick() = 0; - virtual void SetLabel( const wxString& title, wxFontEncoding encoding ) = 0; -#if wxUSE_MARKUP && wxOSX_USE_COCOA - virtual void SetLabelMarkup( const wxString& WXUNUSED(markup) ) { } -#endif - - virtual void SetCursor( const wxCursor & cursor ) = 0; - virtual void CaptureMouse() = 0; - virtual void ReleaseMouse() = 0; - - virtual void SetDropTarget( wxDropTarget * WXUNUSED(dropTarget) ) {} - - virtual wxInt32 GetValue() const = 0; - virtual void SetValue( wxInt32 v ) = 0; - virtual wxBitmap GetBitmap() const = 0; - virtual void SetBitmap( const wxBitmap& bitmap ) = 0; - virtual void SetBitmapPosition( wxDirection dir ) = 0; - virtual void SetupTabs( const wxNotebook& WXUNUSED(notebook) ) {} - virtual int TabHitTest( const wxPoint & WXUNUSED(pt), long *flags ) {*flags=1; return -1;} - virtual void GetBestRect( wxRect *r ) const = 0; - virtual bool IsEnabled() const = 0; - virtual void Enable( bool enable ) = 0; - virtual void SetMinimum( wxInt32 v ) = 0; - virtual void SetMaximum( wxInt32 v ) = 0; - virtual wxInt32 GetMinimum() const = 0; - virtual wxInt32 GetMaximum() const = 0; - virtual void PulseGauge() = 0; - virtual void SetScrollThumb( wxInt32 value, wxInt32 thumbSize ) = 0; - - virtual void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle, bool ignoreBlack = true ) = 0; - - virtual void SetToolTip(wxToolTip* WXUNUSED(tooltip)) { } - - // is the clicked event sent AFTER the state already changed, so no additional - // state changing logic is required from the outside - virtual bool ButtonClickDidStateChange() = 0; - - virtual void InstallEventHandler( WXWidget control = NULL ) = 0; - - // Mechanism used to keep track of whether a change should send an event - // Do SendEvents(false) when starting actions that would trigger programmatic events - // and SendEvents(true) at the end of the block. - virtual void SendEvents(bool shouldSendEvents) { m_shouldSendEvents = shouldSendEvents; } - virtual bool ShouldSendEvents() { return m_shouldSendEvents; } - - // static methods for associating native controls and their implementations - - // finds the impl associated with this native control - static wxWidgetImpl* - FindFromWXWidget(WXWidget control); - - // finds the impl associated with this native control, if the native control itself is not known - // also checks whether its parent is eg a registered scrollview, ie whether the control is a native subpart - // of a known control - static wxWidgetImpl* - FindBestFromWXWidget(WXWidget control); - - static void RemoveAssociations( wxWidgetImpl* impl); - - static void Associate( WXWidget control, wxWidgetImpl *impl ); - - static WXWidget FindFocus(); - - // static creation methods, must be implemented by all toolkits - - static wxWidgetImplType* CreateUserPane( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle) ; - static wxWidgetImplType* CreateContentView( wxNonOwnedWindow* now ) ; - - static wxWidgetImplType* CreateButton( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle) ; - - static wxWidgetImplType* CreateDisclosureTriangle( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle) ; - - static wxWidgetImplType* CreateStaticLine( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle) ; - - static wxWidgetImplType* CreateGroupBox( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle) ; - - static wxWidgetImplType* CreateStaticText( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle) ; - - static wxWidgetImplType* CreateTextControl( wxTextCtrl* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxString& content, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle) ; - - static wxWidgetImplType* CreateSearchControl( wxSearchCtrl* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxString& content, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle) ; - - static wxWidgetImplType* CreateCheckBox( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle); - - static wxWidgetImplType* CreateRadioButton( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle); - - static wxWidgetImplType* CreateToggleButton( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle); - - static wxWidgetImplType* CreateBitmapToggleButton( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle); - - static wxWidgetImplType* CreateBitmapButton( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle); - - static wxWidgetImplType* CreateTabView( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle); - - static wxWidgetImplType* CreateGauge( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - wxInt32 value, - wxInt32 minimum, - wxInt32 maximum, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle); - - static wxWidgetImplType* CreateSlider( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - wxInt32 value, - wxInt32 minimum, - wxInt32 maximum, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle); - - static wxWidgetImplType* CreateSpinButton( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - wxInt32 value, - wxInt32 minimum, - wxInt32 maximum, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle); - - static wxWidgetImplType* CreateScrollBar( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle); - - static wxWidgetImplType* CreateChoice( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - wxMenu* menu, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle); - - static wxWidgetImplType* CreateListBox( wxWindowMac* wxpeer, - wxWindowMac* parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle); - -#if wxOSX_USE_COCOA - static wxWidgetImplType* CreateComboBox( wxComboBox* wxpeer, - wxWindowMac* parent, - wxWindowID id, - wxMenu* menu, - const wxPoint& pos, - const wxSize& size, - long style, - long extraStyle); -#endif - - // converts from Toplevel-Content relative to local - static void Convert( wxPoint *pt , wxWidgetImpl *from , wxWidgetImpl *to ); -protected : - bool m_isRootControl; - bool m_isUserPane; - wxWindowMac* m_wxPeer; - bool m_needsFocusRect; - bool m_needsFrame; - bool m_shouldSendEvents; - - wxDECLARE_ABSTRACT_CLASS(wxWidgetImpl); -}; - -// -// the interface to be implemented eg by a listbox -// - -class WXDLLIMPEXP_CORE wxListWidgetColumn -{ -public : - virtual ~wxListWidgetColumn() {} -} ; - -class WXDLLIMPEXP_CORE wxListWidgetCellValue -{ -public : - wxListWidgetCellValue() {} - virtual ~wxListWidgetCellValue() {} - - virtual void Set( CFStringRef value ) = 0; - virtual void Set( const wxString& value ) = 0; - virtual void Set( int value ) = 0; - virtual void Check( bool check ); - - virtual bool IsChecked() const; - virtual int GetIntValue() const = 0; - virtual wxString GetStringValue() const = 0; -} ; - -class WXDLLIMPEXP_CORE wxListWidgetImpl -{ -public: - wxListWidgetImpl() {} - virtual ~wxListWidgetImpl() { } - - virtual wxListWidgetColumn* InsertTextColumn( unsigned pos, const wxString& title, bool editable = false, - wxAlignment just = wxALIGN_LEFT , int defaultWidth = -1) = 0 ; - virtual wxListWidgetColumn* InsertCheckColumn( unsigned pos , const wxString& title, bool editable = false, - wxAlignment just = wxALIGN_LEFT , int defaultWidth = -1) = 0 ; - - // add and remove - - // TODO will be replaced - virtual void ListDelete( unsigned int n ) = 0; - virtual void ListInsert( unsigned int n ) = 0; - virtual void ListClear() = 0; - - // selecting - - virtual void ListDeselectAll() = 0; - virtual void ListSetSelection( unsigned int n, bool select, bool multi ) = 0; - virtual int ListGetSelection() const = 0; - virtual int ListGetSelections( wxArrayInt& aSelections ) const = 0; - virtual bool ListIsSelected( unsigned int n ) const = 0; - - // display - - virtual void ListScrollTo( unsigned int n ) = 0; - virtual int ListGetTopItem() const = 0; - virtual void UpdateLine( unsigned int n, wxListWidgetColumn* col = NULL ) = 0; - virtual void UpdateLineToEnd( unsigned int n) = 0; - - // accessing content - - virtual unsigned int ListGetCount() const = 0; - - virtual int DoListHitTest( const wxPoint& inpoint ) const = 0; -}; - -// -// interface to be implemented by a textcontrol -// - -class WXDLLIMPEXP_FWD_CORE wxTextAttr; -class WXDLLIMPEXP_FWD_CORE wxTextEntry; - -// common interface for all implementations -class WXDLLIMPEXP_CORE wxTextWidgetImpl - -{ -public : - // Any widgets implementing this interface must be associated with a - // wxTextEntry so instead of requiring the derived classes to implement - // another (pure) virtual function, just take the pointer to this entry in - // our ctor and implement GetTextEntry() ourselves. - wxTextWidgetImpl(wxTextEntry *entry) : m_entry(entry) {} - - virtual ~wxTextWidgetImpl() {} - - wxTextEntry *GetTextEntry() const { return m_entry; } - - virtual bool CanFocus() const { return true; } - - virtual wxString GetStringValue() const = 0 ; - virtual void SetStringValue( const wxString &val ) = 0 ; - virtual void SetSelection( long from, long to ) = 0 ; - virtual void GetSelection( long* from, long* to ) const = 0 ; - virtual void WriteText( const wxString& str ) = 0 ; - - virtual bool CanClipMaxLength() const { return false; } - virtual void SetMaxLength(unsigned long WXUNUSED(len)) {} - - virtual bool CanForceUpper() { return false; } - virtual void ForceUpper() {} - - virtual bool GetStyle( long position, wxTextAttr& style); - virtual void SetStyle( long start, long end, const wxTextAttr& style ) ; - virtual void Copy() ; - virtual void Cut() ; - virtual void Paste() ; - virtual bool CanPaste() const ; - virtual void SetEditable( bool editable ) ; - virtual long GetLastPosition() const ; - virtual void Replace( long from, long to, const wxString &str ) ; - virtual void Remove( long from, long to ) ; - - - virtual bool HasOwnContextMenu() const - { return false ; } - - virtual bool SetupCursor( const wxPoint& WXUNUSED(pt) ) - { return false ; } - - virtual void Clear() ; - virtual bool CanUndo() const; - virtual void Undo() ; - virtual bool CanRedo() const; - virtual void Redo() ; - virtual int GetNumberOfLines() const ; - virtual long XYToPosition(long x, long y) const; - virtual bool PositionToXY(long pos, long *x, long *y) const ; - virtual void ShowPosition(long WXUNUSED(pos)) ; - virtual int GetLineLength(long lineNo) const ; - virtual wxString GetLineText(long lineNo) const ; - virtual void CheckSpelling(bool WXUNUSED(check)) { } - - virtual wxSize GetBestSize() const { return wxDefaultSize; } - - virtual bool SetHint(const wxString& WXUNUSED(hint)) { return false; } -private: - wxTextEntry * const m_entry; - - wxDECLARE_NO_COPY_CLASS(wxTextWidgetImpl); -}; - -// common interface for all implementations -class WXDLLIMPEXP_CORE wxComboWidgetImpl - -{ -public : - wxComboWidgetImpl() {} - - virtual ~wxComboWidgetImpl() {} - - virtual int GetSelectedItem() const { return -1; } - virtual void SetSelectedItem(int WXUNUSED(item)) {} - - virtual int GetNumberOfItems() const { return -1; } - - virtual void InsertItem(int WXUNUSED(pos), const wxString& WXUNUSED(item)) {} - - virtual void RemoveItem(int WXUNUSED(pos)) {} - - virtual void Clear() {} - virtual void Popup() {} - virtual void Dismiss() {} - - virtual wxString GetStringAtIndex(int WXUNUSED(pos)) const { return wxEmptyString; } - - virtual int FindString(const wxString& WXUNUSED(text)) const { return -1; } -}; - -// -// common interface for buttons -// - -class wxButtonImpl -{ - public : - wxButtonImpl(){} - virtual ~wxButtonImpl(){} - - virtual void SetPressedBitmap( const wxBitmap& bitmap ) = 0; -} ; - -// -// common interface for search controls -// - -class wxSearchWidgetImpl -{ -public : - wxSearchWidgetImpl(){} - virtual ~wxSearchWidgetImpl(){} - - // search field options - virtual void ShowSearchButton( bool show ) = 0; - virtual bool IsSearchButtonVisible() const = 0; - - virtual void ShowCancelButton( bool show ) = 0; - virtual bool IsCancelButtonVisible() const = 0; - - virtual void SetSearchMenu( wxMenu* menu ) = 0; - - virtual void SetDescriptiveText(const wxString& text) = 0; -} ; - -// -// toplevel window implementation class -// - -class wxNonOwnedWindowImpl : public wxObject -{ -public : - wxNonOwnedWindowImpl( wxNonOwnedWindow* nonownedwnd) : m_wxPeer(nonownedwnd) - { - } - wxNonOwnedWindowImpl() - { - } - virtual ~wxNonOwnedWindowImpl() - { - } - - virtual void WillBeDestroyed() - { - } - - virtual void Create( wxWindow* parent, const wxPoint& pos, const wxSize& size, - long style, long extraStyle, const wxString& name ) = 0; - - - virtual WXWindow GetWXWindow() const = 0; - - virtual void Raise() - { - } - - virtual void Lower() - { - } - - virtual bool Show(bool WXUNUSED(show)) - { - return false; - } - - virtual bool ShowWithEffect(bool show, wxShowEffect WXUNUSED(effect), unsigned WXUNUSED(timeout)) - { - return Show(show); - } - - virtual void Update() - { - } - - virtual bool SetTransparent(wxByte WXUNUSED(alpha)) - { - return false; - } - - virtual bool SetBackgroundColour(const wxColour& WXUNUSED(col) ) - { - return false; - } - - virtual void SetExtraStyle( long WXUNUSED(exStyle) ) - { - } - - virtual void SetWindowStyleFlag( long WXUNUSED(style) ) - { - } - - virtual bool SetBackgroundStyle(wxBackgroundStyle WXUNUSED(style)) - { - return false ; - } - - virtual bool CanSetTransparent() - { - return false; - } - - virtual void GetContentArea( int &left , int &top , int &width , int &height ) const = 0; - virtual void MoveWindow(int x, int y, int width, int height) = 0; - virtual void GetPosition( int &x, int &y ) const = 0; - virtual void GetSize( int &width, int &height ) const = 0; - - virtual bool SetShape(const wxRegion& WXUNUSED(region)) - { - return false; - } - - virtual void SetTitle( const wxString& title, wxFontEncoding encoding ) = 0; - - virtual bool EnableCloseButton(bool enable) = 0; - virtual bool EnableMaximizeButton(bool enable) = 0; - virtual bool EnableMinimizeButton(bool enable) = 0; - - virtual bool IsMaximized() const = 0; - - virtual bool IsIconized() const= 0; - - virtual void Iconize( bool iconize )= 0; - - virtual void Maximize(bool maximize) = 0; - - virtual bool IsFullScreen() const= 0; - - virtual void ShowWithoutActivating() { Show(true); } - - virtual bool EnableFullScreenView(bool enable) = 0; - - virtual bool ShowFullScreen(bool show, long style)= 0; - - virtual void RequestUserAttention(int flags) = 0; - - virtual void ScreenToWindow( int *x, int *y ) = 0; - - virtual void WindowToScreen( int *x, int *y ) = 0; - - virtual bool IsActive() = 0; - - wxNonOwnedWindow* GetWXPeer() { return m_wxPeer; } - - static wxNonOwnedWindowImpl* - FindFromWXWindow(WXWindow window); - - static void RemoveAssociations( wxNonOwnedWindowImpl* impl); - - static void Associate( WXWindow window, wxNonOwnedWindowImpl *impl ); - - // static creation methods, must be implemented by all toolkits - - static wxNonOwnedWindowImpl* CreateNonOwnedWindow( wxNonOwnedWindow* wxpeer, wxWindow* parent, WXWindow native) ; - - static wxNonOwnedWindowImpl* CreateNonOwnedWindow( wxNonOwnedWindow* wxpeer, wxWindow* parent, const wxPoint& pos, const wxSize& size, - long style, long extraStyle, const wxString& name ) ; - - virtual void SetModified(bool WXUNUSED(modified)) { } - virtual bool IsModified() const { return false; } - - virtual void SetRepresentedFilename(const wxString& WXUNUSED(filename)) { } - -#if wxOSX_USE_IPHONE - virtual CGFloat GetWindowLevel() const { return 0.0; } -#else - virtual CGWindowLevel GetWindowLevel() const { return kCGNormalWindowLevel; } -#endif - virtual void RestoreWindowLevel() {} -protected : - wxNonOwnedWindow* m_wxPeer; - wxDECLARE_ABSTRACT_CLASS(wxNonOwnedWindowImpl); -}; - -#endif // wxUSE_GUI - -//--------------------------------------------------------------------------- -// cocoa bridging utilities -//--------------------------------------------------------------------------- - -bool wxMacInitCocoa(); - -class WXDLLIMPEXP_CORE wxMacAutoreleasePool -{ -public : - wxMacAutoreleasePool(); - ~wxMacAutoreleasePool(); -private : - void* m_pool; -}; - -// NSObject - -void wxMacCocoaRelease( void* obj ); -void wxMacCocoaAutorelease( void* obj ); -void* wxMacCocoaRetain( void* obj ); - - -#endif - // _WX_PRIVATE_CORE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private/datetimectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private/datetimectrl.h deleted file mode 100644 index 213e047c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private/datetimectrl.h +++ /dev/null @@ -1,64 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/core/private/datetime.h -// Purpose: -// Author: Vadim Zeitlin -// Created: 2011-12-19 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_CORE_PRIVATE_DATETIMECTRL_H_ -#define _WX_OSX_CORE_PRIVATE_DATETIMECTRL_H_ - -#if wxUSE_DATEPICKCTRL - -#include "wx/osx/private.h" - -#include "wx/datetime.h" - -enum wxDateTimeWidgetKind -{ - wxDateTimeWidget_YearMonthDay, - wxDateTimeWidget_HourMinuteSecond -}; - -// ---------------------------------------------------------------------------- -// wxDateTimeWidgetImpl: peer class for wxDateTimePickerCtrl. -// ---------------------------------------------------------------------------- - -class wxDateTimeWidgetImpl -#if wxOSX_USE_COCOA - : public wxWidgetCocoaImpl -#else - #error "Unsupported platform" -#endif -{ -public: - static wxDateTimeWidgetImpl* - CreateDateTimePicker(wxDateTimePickerCtrl* wxpeer, - const wxDateTime& dt, - const wxPoint& pos, - const wxSize& size, - long style, - wxDateTimeWidgetKind kind); - - virtual void SetDateTime(const wxDateTime& dt) = 0; - virtual wxDateTime GetDateTime() const = 0; - - virtual void SetDateRange(const wxDateTime& dt1, const wxDateTime& dt2) = 0; - virtual bool GetDateRange(wxDateTime* dt1, wxDateTime* dt2) = 0; - - virtual ~wxDateTimeWidgetImpl() { } - -protected: -#if wxOSX_USE_COCOA - wxDateTimeWidgetImpl(wxDateTimePickerCtrl* wxpeer, WXWidget view) - : wxWidgetCocoaImpl(wxpeer, view) - { - } -#endif -}; - -#endif // wxUSE_DATEPICKCTRL - -#endif // _WX_OSX_CORE_PRIVATE_DATETIMECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private/strconv_cf.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private/strconv_cf.h deleted file mode 100644 index d22c73f7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private/strconv_cf.h +++ /dev/null @@ -1,337 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/core/private/strconv_cf.h -// Purpose: Unicode conversion classes -// Author: David Elliott, Ryan Norton -// Modified by: -// Created: 2007-07-06 -// Copyright: (c) 2004 Ryan Norton -// (c) 2007 David Elliott -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include "wx/strconv.h" - -#include <CoreFoundation/CFString.h> -#include <CoreFoundation/CFStringEncodingExt.h> - -// ============================================================================ -// CoreFoundation conversion classes -// ============================================================================ - -inline CFStringEncoding wxCFStringEncFromFontEnc(wxFontEncoding encoding) -{ - CFStringEncoding enc = kCFStringEncodingInvalidId ; - - switch (encoding) - { - case wxFONTENCODING_DEFAULT : - enc = CFStringGetSystemEncoding(); - break ; - - case wxFONTENCODING_ISO8859_1 : - enc = kCFStringEncodingISOLatin1 ; - break ; - case wxFONTENCODING_ISO8859_2 : - enc = kCFStringEncodingISOLatin2; - break ; - case wxFONTENCODING_ISO8859_3 : - enc = kCFStringEncodingISOLatin3 ; - break ; - case wxFONTENCODING_ISO8859_4 : - enc = kCFStringEncodingISOLatin4; - break ; - case wxFONTENCODING_ISO8859_5 : - enc = kCFStringEncodingISOLatinCyrillic; - break ; - case wxFONTENCODING_ISO8859_6 : - enc = kCFStringEncodingISOLatinArabic; - break ; - case wxFONTENCODING_ISO8859_7 : - enc = kCFStringEncodingISOLatinGreek; - break ; - case wxFONTENCODING_ISO8859_8 : - enc = kCFStringEncodingISOLatinHebrew; - break ; - case wxFONTENCODING_ISO8859_9 : - enc = kCFStringEncodingISOLatin5; - break ; - case wxFONTENCODING_ISO8859_10 : - enc = kCFStringEncodingISOLatin6; - break ; - case wxFONTENCODING_ISO8859_11 : - enc = kCFStringEncodingISOLatinThai; - break ; - case wxFONTENCODING_ISO8859_13 : - enc = kCFStringEncodingISOLatin7; - break ; - case wxFONTENCODING_ISO8859_14 : - enc = kCFStringEncodingISOLatin8; - break ; - case wxFONTENCODING_ISO8859_15 : - enc = kCFStringEncodingISOLatin9; - break ; - - case wxFONTENCODING_KOI8 : - enc = kCFStringEncodingKOI8_R; - break ; - case wxFONTENCODING_ALTERNATIVE : // MS-DOS CP866 - enc = kCFStringEncodingDOSRussian; - break ; - -// case wxFONTENCODING_BULGARIAN : -// enc = ; -// break ; - - case wxFONTENCODING_CP437 : - enc = kCFStringEncodingDOSLatinUS ; - break ; - case wxFONTENCODING_CP850 : - enc = kCFStringEncodingDOSLatin1; - break ; - case wxFONTENCODING_CP852 : - enc = kCFStringEncodingDOSLatin2; - break ; - case wxFONTENCODING_CP855 : - enc = kCFStringEncodingDOSCyrillic; - break ; - case wxFONTENCODING_CP866 : - enc = kCFStringEncodingDOSRussian ; - break ; - case wxFONTENCODING_CP874 : - enc = kCFStringEncodingDOSThai; - break ; - case wxFONTENCODING_CP932 : - enc = kCFStringEncodingDOSJapanese; - break ; - case wxFONTENCODING_CP936 : - enc = kCFStringEncodingDOSChineseSimplif ; - break ; - case wxFONTENCODING_CP949 : - enc = kCFStringEncodingDOSKorean; - break ; - case wxFONTENCODING_CP950 : - enc = kCFStringEncodingDOSChineseTrad; - break ; - case wxFONTENCODING_CP1250 : - enc = kCFStringEncodingWindowsLatin2; - break ; - case wxFONTENCODING_CP1251 : - enc = kCFStringEncodingWindowsCyrillic ; - break ; - case wxFONTENCODING_CP1252 : - enc = kCFStringEncodingWindowsLatin1 ; - break ; - case wxFONTENCODING_CP1253 : - enc = kCFStringEncodingWindowsGreek; - break ; - case wxFONTENCODING_CP1254 : - enc = kCFStringEncodingWindowsLatin5; - break ; - case wxFONTENCODING_CP1255 : - enc = kCFStringEncodingWindowsHebrew ; - break ; - case wxFONTENCODING_CP1256 : - enc = kCFStringEncodingWindowsArabic ; - break ; - case wxFONTENCODING_CP1257 : - enc = kCFStringEncodingWindowsBalticRim; - break ; -// This only really encodes to UTF7 (if that) evidently -// case wxFONTENCODING_UTF7 : -// enc = kCFStringEncodingNonLossyASCII ; -// break ; - case wxFONTENCODING_UTF8 : - enc = kCFStringEncodingUTF8 ; - break ; - case wxFONTENCODING_EUC_JP : - enc = kCFStringEncodingEUC_JP; - break ; -/* Don't support conversion to/from UTF16 as wxWidgets can do this better. - * In particular, ToWChar would fail miserably using strlen on an input UTF16. - case wxFONTENCODING_UTF16 : - enc = kCFStringEncodingUnicode ; - break ; -*/ - case wxFONTENCODING_MACROMAN : - enc = kCFStringEncodingMacRoman ; - break ; - case wxFONTENCODING_MACJAPANESE : - enc = kCFStringEncodingMacJapanese ; - break ; - case wxFONTENCODING_MACCHINESETRAD : - enc = kCFStringEncodingMacChineseTrad ; - break ; - case wxFONTENCODING_MACKOREAN : - enc = kCFStringEncodingMacKorean ; - break ; - case wxFONTENCODING_MACARABIC : - enc = kCFStringEncodingMacArabic ; - break ; - case wxFONTENCODING_MACHEBREW : - enc = kCFStringEncodingMacHebrew ; - break ; - case wxFONTENCODING_MACGREEK : - enc = kCFStringEncodingMacGreek ; - break ; - case wxFONTENCODING_MACCYRILLIC : - enc = kCFStringEncodingMacCyrillic ; - break ; - case wxFONTENCODING_MACDEVANAGARI : - enc = kCFStringEncodingMacDevanagari ; - break ; - case wxFONTENCODING_MACGURMUKHI : - enc = kCFStringEncodingMacGurmukhi ; - break ; - case wxFONTENCODING_MACGUJARATI : - enc = kCFStringEncodingMacGujarati ; - break ; - case wxFONTENCODING_MACORIYA : - enc = kCFStringEncodingMacOriya ; - break ; - case wxFONTENCODING_MACBENGALI : - enc = kCFStringEncodingMacBengali ; - break ; - case wxFONTENCODING_MACTAMIL : - enc = kCFStringEncodingMacTamil ; - break ; - case wxFONTENCODING_MACTELUGU : - enc = kCFStringEncodingMacTelugu ; - break ; - case wxFONTENCODING_MACKANNADA : - enc = kCFStringEncodingMacKannada ; - break ; - case wxFONTENCODING_MACMALAJALAM : - enc = kCFStringEncodingMacMalayalam ; - break ; - case wxFONTENCODING_MACSINHALESE : - enc = kCFStringEncodingMacSinhalese ; - break ; - case wxFONTENCODING_MACBURMESE : - enc = kCFStringEncodingMacBurmese ; - break ; - case wxFONTENCODING_MACKHMER : - enc = kCFStringEncodingMacKhmer ; - break ; - case wxFONTENCODING_MACTHAI : - enc = kCFStringEncodingMacThai ; - break ; - case wxFONTENCODING_MACLAOTIAN : - enc = kCFStringEncodingMacLaotian ; - break ; - case wxFONTENCODING_MACGEORGIAN : - enc = kCFStringEncodingMacGeorgian ; - break ; - case wxFONTENCODING_MACARMENIAN : - enc = kCFStringEncodingMacArmenian ; - break ; - case wxFONTENCODING_MACCHINESESIMP : - enc = kCFStringEncodingMacChineseSimp ; - break ; - case wxFONTENCODING_MACTIBETAN : - enc = kCFStringEncodingMacTibetan ; - break ; - case wxFONTENCODING_MACMONGOLIAN : - enc = kCFStringEncodingMacMongolian ; - break ; - case wxFONTENCODING_MACETHIOPIC : - enc = kCFStringEncodingMacEthiopic ; - break ; - case wxFONTENCODING_MACCENTRALEUR : - enc = kCFStringEncodingMacCentralEurRoman ; - break ; - case wxFONTENCODING_MACVIATNAMESE : - enc = kCFStringEncodingMacVietnamese ; - break ; - case wxFONTENCODING_MACARABICEXT : - enc = kCFStringEncodingMacExtArabic ; - break ; - case wxFONTENCODING_MACSYMBOL : - enc = kCFStringEncodingMacSymbol ; - break ; - case wxFONTENCODING_MACDINGBATS : - enc = kCFStringEncodingMacDingbats ; - break ; - case wxFONTENCODING_MACTURKISH : - enc = kCFStringEncodingMacTurkish ; - break ; - case wxFONTENCODING_MACCROATIAN : - enc = kCFStringEncodingMacCroatian ; - break ; - case wxFONTENCODING_MACICELANDIC : - enc = kCFStringEncodingMacIcelandic ; - break ; - case wxFONTENCODING_MACROMANIAN : - enc = kCFStringEncodingMacRomanian ; - break ; - case wxFONTENCODING_MACCELTIC : - enc = kCFStringEncodingMacCeltic ; - break ; - case wxFONTENCODING_MACGAELIC : - enc = kCFStringEncodingMacGaelic ; - break ; - /* CFString is known to support this back to the original CarbonLib */ - /* http://developer.apple.com/samplecode/CarbonMDEF/listing2.html */ - case wxFONTENCODING_MACKEYBOARD : - /* We don't wish to pollute the namespace too much, even though we're a private header. */ - /* The constant is well-defined as 41 and is not expected to change. */ - enc = 41 /*kTextEncodingMacKeyboardGlyphs*/ ; - break ; - - default : - // because gcc is picky - break ; - } - - return enc ; -} - - -class wxMBConv_cf : public wxMBConv -{ -public: - wxMBConv_cf() - { - Init(CFStringGetSystemEncoding()) ; - } - - wxMBConv_cf(const wxMBConv_cf& conv) : wxMBConv() - { - m_encoding = conv.m_encoding; - } - -#if wxUSE_FONTMAP - wxMBConv_cf(const char* name) - { - Init( wxCFStringEncFromFontEnc(wxFontMapperBase::Get()->CharsetToEncoding(name, false) ) ) ; - } -#endif - - wxMBConv_cf(wxFontEncoding encoding) - { - Init( wxCFStringEncFromFontEnc(encoding) ); - } - - virtual ~wxMBConv_cf() - { - } - - void Init( CFStringEncoding encoding) - { - m_encoding = encoding ; - } - - virtual size_t ToWChar(wchar_t * dst, size_t dstSize, const char * src, size_t srcSize = wxNO_LEN) const; - virtual size_t FromWChar(char *dst, size_t dstSize, const wchar_t *src, size_t srcSize = wxNO_LEN) const; - - virtual wxMBConv *Clone() const { return new wxMBConv_cf(*this); } - - bool IsOk() const - { - return m_encoding != kCFStringEncodingInvalidId && - CFStringIsEncodingAvailable(m_encoding); - } - -private: - CFStringEncoding m_encoding ; -}; - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private/timer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private/timer.h deleted file mode 100644 index 2f191797..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/core/private/timer.h +++ /dev/null @@ -1,32 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/core/private/timer.h -// Purpose: wxTimer class based on core foundation -// Author: Stefan Csomor -// Created: 2008-07-16 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_CORE_PRIVATE_TIMER_H_ -#define _WX_OSX_CORE_PRIVATE_TIMER_H_ - -#include "wx/private/timer.h" - -struct wxOSXTimerInfo; - -class WXDLLIMPEXP_CORE wxOSXTimerImpl : public wxTimerImpl -{ -public: - wxOSXTimerImpl(wxTimer *timer); - virtual ~wxOSXTimerImpl(); - - virtual bool Start(int milliseconds = -1, bool one_shot = false); - virtual void Stop(); - - virtual bool IsRunning() const; - -private: - wxOSXTimerInfo *m_info; -}; - -#endif // _WX_OSX_CORE_PRIVATE_TIMER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cursor.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cursor.h deleted file mode 100644 index 7af9a417..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/cursor.h +++ /dev/null @@ -1,52 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/cursor.h -// Purpose: wxCursor class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CURSOR_H_ -#define _WX_CURSOR_H_ - -#include "wx/bitmap.h" - -// Cursor -class WXDLLIMPEXP_CORE wxCursor : public wxCursorBase -{ -public: - wxCursor(); - - wxCursor(const wxImage & image) ; - wxCursor(const wxString& name, - wxBitmapType type = wxCURSOR_DEFAULT_TYPE, - int hotSpotX = 0, int hotSpotY = 0); - - wxCursor(wxStockCursor id) { InitFromStock(id); } -#if WXWIN_COMPATIBILITY_2_8 - wxCursor(int id) { InitFromStock((wxStockCursor)id); } -#endif - virtual ~wxCursor(); - - void MacInstall() const ; - - void SetHCURSOR(WXHCURSOR cursor); - WXHCURSOR GetHCURSOR() const; - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - -private: - void InitFromStock(wxStockCursor); - - void CreateFromImage(const wxImage & image) ; - - wxDECLARE_DYNAMIC_CLASS(wxCursor); -}; - -extern WXDLLIMPEXP_CORE void wxSetCursor(const wxCursor& cursor); - -#endif // _WX_CURSOR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataform.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataform.h deleted file mode 100644 index a9c7ba9e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataform.h +++ /dev/null @@ -1,68 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/dataform.h -// Purpose: declaration of the wxDataFormat class -// Author: Stefan Csomor (lifted from dnd.h) -// Modified by: -// Created: 10/21/99 -// Copyright: (c) 1999 Stefan Csomor -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MAC_DATAFORM_H -#define _WX_MAC_DATAFORM_H - -class WXDLLIMPEXP_CORE wxDataFormat -{ -public: - typedef unsigned long NativeFormat; - - wxDataFormat(); - wxDataFormat(wxDataFormatId vType); - wxDataFormat(const wxDataFormat& rFormat); - wxDataFormat(const wxString& rId); - wxDataFormat(const wxChar* pId); - wxDataFormat(NativeFormat vFormat); - ~wxDataFormat(); - - wxDataFormat& operator=(NativeFormat vFormat) - { SetId(vFormat); return *this; } - - // comparison (must have both versions) - bool operator==(const wxDataFormat& format) const ; - bool operator!=(const wxDataFormat& format) const - { return ! ( *this == format ); } - bool operator==(wxDataFormatId format) const - { return m_type == (wxDataFormatId)format; } - bool operator!=(wxDataFormatId format) const - { return m_type != (wxDataFormatId)format; } - - wxDataFormat& operator=(const wxDataFormat& format); - - // explicit and implicit conversions to NativeFormat which is one of - // standard data types (implicit conversion is useful for preserving the - // compatibility with old code) - NativeFormat GetFormatId() const { return m_format; } - operator NativeFormat() const { return m_format; } - - void SetId(NativeFormat format); - - // string ids are used for custom types - this SetId() must be used for - // application-specific formats - wxString GetId() const; - void SetId(const wxString& pId); - - // implementation - wxDataFormatId GetType() const { return m_type; } - void SetType( wxDataFormatId type ); - - // returns true if the format is one of those defined in wxDataFormatId - bool IsStandard() const { return m_type > 0 && m_type < wxDF_PRIVATE; } - -private: - wxDataFormatId m_type; - NativeFormat m_format; - // indicates the type in case of wxDF_PRIVATE : - wxString m_id ; -}; - -#endif // _WX_MAC_DATAFORM_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataobj.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataobj.h deleted file mode 100644 index 45a73f28..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataobj.h +++ /dev/null @@ -1,40 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/dataobj.h -// Purpose: declaration of the wxDataObject -// Author: Stefan Csomor (adapted from Robert Roebling's gtk port) -// Modified by: -// Created: 10/21/99 -// Copyright: (c) 1998, 1999 Vadim Zeitlin, Robert Roebling -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MAC_DATAOBJ_H_ -#define _WX_MAC_DATAOBJ_H_ - -// ---------------------------------------------------------------------------- -// wxDataObject is the same as wxDataObjectBase under wxGTK -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDataObject : public wxDataObjectBase -{ -public: - wxDataObject(); -#ifdef __DARWIN__ - virtual ~wxDataObject() { } -#endif - - virtual bool IsSupportedFormat( const wxDataFormat& format, Direction dir = Get ) const; - void AddToPasteboard( void * pasteboardRef , wxIntPtr itemID ); - // returns true if the passed in format is present in the pasteboard - static bool IsFormatInPasteboard( void * pasteboardRef, const wxDataFormat &dataFormat ); - // returns true if any of the accepted formats of this dataobj is in the pasteboard - bool HasDataInPasteboard( void * pasteboardRef ); - bool GetFromPasteboard( void * pasteboardRef ); - -#if wxOSX_USE_COCOA - virtual void AddSupportedTypes( void* cfarray); -#endif -}; - -#endif // _WX_MAC_DATAOBJ_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataobj2.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataobj2.h deleted file mode 100644 index dec7fe50..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataobj2.h +++ /dev/null @@ -1,93 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/dataobj2.h -// Purpose: declaration of standard wxDataObjectSimple-derived classes -// Author: David Webster (adapted from Robert Roebling's gtk port -// Modified by: -// Created: 10/21/99 -// Copyright: (c) 1998, 1999 Vadim Zeitlin, Robert Roebling -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MAC_DATAOBJ2_H_ -#define _WX_MAC_DATAOBJ2_H_ - -// ---------------------------------------------------------------------------- -// wxBitmapDataObject is a specialization of wxDataObject for bitmaps -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxBitmapDataObject : public wxBitmapDataObjectBase -{ -public: - // ctors - wxBitmapDataObject(); - wxBitmapDataObject(const wxBitmap& bitmap); - - // destr - virtual ~wxBitmapDataObject(); - - // override base class virtual to update PNG data too - virtual void SetBitmap(const wxBitmap& bitmap); - - // implement base class pure virtuals - // ---------------------------------- - - virtual size_t GetDataSize() const ; - virtual bool GetDataHere(void *buf) const ; - virtual bool SetData(size_t len, const void *buf); - // Must provide overloads to avoid hiding them (and warnings about it) - virtual size_t GetDataSize(const wxDataFormat&) const - { - return GetDataSize(); - } - virtual bool GetDataHere(const wxDataFormat&, void *buf) const - { - return GetDataHere(buf); - } - virtual bool SetData(const wxDataFormat&, size_t len, const void *buf) - { - return SetData(len, buf); - } - -protected : - void Init() ; - void Clear() ; - - void* m_pictHandle ; - bool m_pictCreated ; -}; - -// ---------------------------------------------------------------------------- -// wxFileDataObject is a specialization of wxDataObject for file names -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxFileDataObject : public wxFileDataObjectBase -{ -public: - // implement base class pure virtuals - // ---------------------------------- - - void AddFile( const wxString &filename ); - - virtual size_t GetDataSize() const; - virtual bool GetDataHere(void *buf) const; - virtual bool SetData(size_t len, const void *buf); - // Must provide overloads to avoid hiding them (and warnings about it) - virtual size_t GetDataSize(const wxDataFormat&) const - { - return GetDataSize(); - } - virtual bool GetDataHere(const wxDataFormat&, void *buf) const - { - return GetDataHere(buf); - } - virtual bool SetData(const wxDataFormat&, size_t len, const void *buf) - { - return SetData(len, buf); - } -protected: - // translates the filenames stored into a utf8 encoded char stream - void GetFileNames(wxCharBuffer &buf) const ; -}; - -#endif // _WX_MAC_DATAOBJ2_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataview.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataview.h deleted file mode 100644 index 2f7261cc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dataview.h +++ /dev/null @@ -1,311 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/dataview.h -// Purpose: wxDataViewCtrl native implementation header for OSX -// Author: -// Copyright: (c) 2009 -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DATAVIEWCTRL_OSX_H_ -#define _WX_DATAVIEWCTRL_OSX_H_ - -#ifdef __WXMAC_CLASSIC__ -# error "Native wxDataViewCtrl for classic environment not defined. Please use generic control." -#endif - -// -------------------------------------------------------- -// Class declarations to mask native types -// -------------------------------------------------------- -class wxDataViewColumnNativeData; // class storing environment dependent data for the native implementation -class wxDataViewWidgetImpl; // class used as a common interface for carbon and cocoa implementation - -// --------------------------------------------------------- -// wxDataViewColumn -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewColumn: public wxDataViewColumnBase -{ -public: - // constructors / destructor - wxDataViewColumn(const wxString& title, - wxDataViewRenderer* renderer, - unsigned int model_column, - int width = wxDVC_DEFAULT_WIDTH, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE); - wxDataViewColumn(const wxBitmap& bitmap, - wxDataViewRenderer* renderer, - unsigned int model_column, - int width = wxDVC_DEFAULT_WIDTH, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE); - virtual ~wxDataViewColumn(); - - // implement wxHeaderColumnBase pure virtual methods - virtual wxAlignment GetAlignment() const { return m_alignment; } - virtual int GetFlags() const { return m_flags; } - virtual int GetMaxWidth() const { return m_maxWidth; } - virtual int GetMinWidth() const { return m_minWidth; } - virtual wxString GetTitle() const { return m_title; } - virtual int GetWidth() const; - virtual bool IsSortOrderAscending() const { return m_ascending; } - virtual bool IsSortKey() const; - virtual bool IsHidden() const; - - virtual void SetAlignment (wxAlignment align); - virtual void SetBitmap (wxBitmap const& bitmap); - virtual void SetFlags (int flags) { m_flags = flags; /*SetIndividualFlags(flags); */ } - virtual void SetHidden (bool hidden); - virtual void SetMaxWidth (int maxWidth); - virtual void SetMinWidth (int minWidth); - virtual void SetReorderable(bool reorderable); - virtual void SetResizeable (bool resizable); - virtual void SetSortable (bool sortable); - virtual void SetSortOrder (bool ascending); - virtual void SetTitle (wxString const& title); - virtual void SetWidth (int width); - - // implementation only - wxDataViewColumnNativeData* GetNativeData() const - { - return m_NativeDataPtr; - } - - void SetNativeData(wxDataViewColumnNativeData* newNativeDataPtr); // class takes ownership of pointer - int GetWidthVariable() const - { - return m_width; - } - void SetWidthVariable(int NewWidth) - { - m_width = NewWidth; - } - void SetSortOrderVariable(bool NewOrder) - { - m_ascending = NewOrder; - } - -private: - // common part of all ctors - void InitCommon(int width, wxAlignment align, int flags) - { - m_ascending = true; - m_flags = flags & ~wxDATAVIEW_COL_HIDDEN; // TODO - m_maxWidth = 30000; - m_minWidth = 0; - m_alignment = align; - SetWidth(width); - } - - bool m_ascending; // sorting order - - int m_flags; // flags for the column - int m_maxWidth; // maximum width for the column - int m_minWidth; // minimum width for the column - int m_width; // column width - - wxAlignment m_alignment; // column header alignment - - wxDataViewColumnNativeData* m_NativeDataPtr; // storing environment dependent data for the native implementation - - wxString m_title; // column title -}; - -// -// type definitions related to wxDataViewColumn -// -WX_DEFINE_ARRAY(wxDataViewColumn*,wxDataViewColumnPtrArrayType); - -// --------------------------------------------------------- -// wxDataViewCtrl -// --------------------------------------------------------- -class WXDLLIMPEXP_ADV wxDataViewCtrl: public wxDataViewCtrlBase -{ -public: - // Constructors / destructor: - wxDataViewCtrl() - { - Init(); - } - wxDataViewCtrl(wxWindow *parent, - wxWindowID winid, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDataViewCtrlNameStr ) - { - Init(); - Create(parent, winid, pos, size, style, validator, name); - } - - ~wxDataViewCtrl(); - - bool Create(wxWindow *parent, - wxWindowID winid, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDataViewCtrlNameStr); - - virtual wxWindow* GetMainWindow() // not used for the native implementation - { - return this; - } - - // inherited methods from wxDataViewCtrlBase: - virtual bool AssociateModel(wxDataViewModel* model) wxOVERRIDE; - - virtual bool AppendColumn (wxDataViewColumn* columnPtr) wxOVERRIDE; - virtual bool ClearColumns () wxOVERRIDE; - virtual bool DeleteColumn (wxDataViewColumn* columnPtr) wxOVERRIDE; - virtual wxDataViewColumn* GetColumn (unsigned int pos) const wxOVERRIDE; - virtual unsigned int GetColumnCount () const wxOVERRIDE; - virtual int GetColumnPosition(const wxDataViewColumn* columnPtr) const wxOVERRIDE; - virtual wxDataViewColumn* GetSortingColumn () const wxOVERRIDE; - virtual bool InsertColumn (unsigned int pos, wxDataViewColumn *col) wxOVERRIDE; - virtual bool PrependColumn (wxDataViewColumn* columnPtr) wxOVERRIDE; - - virtual void Collapse( const wxDataViewItem& item) wxOVERRIDE; - virtual void EnsureVisible(const wxDataViewItem& item, const wxDataViewColumn* columnPtr=NULL) wxOVERRIDE; - virtual void Expand(const wxDataViewItem& item) wxOVERRIDE; - virtual bool IsExpanded(const wxDataViewItem & item) const wxOVERRIDE; - - virtual unsigned int GetCount() const; - virtual wxRect GetItemRect(const wxDataViewItem& item, - const wxDataViewColumn* columnPtr = NULL) const wxOVERRIDE; - virtual int GetSelectedItemsCount() const wxOVERRIDE; - virtual int GetSelections(wxDataViewItemArray& sel) const wxOVERRIDE; - - virtual void HitTest(const wxPoint& point, wxDataViewItem& item, wxDataViewColumn*& columnPtr) const wxOVERRIDE; - - virtual bool IsSelected(const wxDataViewItem& item) const wxOVERRIDE; - - virtual void SelectAll() wxOVERRIDE; - virtual void Select(const wxDataViewItem& item) wxOVERRIDE; - virtual void SetSelections(const wxDataViewItemArray& sel) wxOVERRIDE; - - virtual void Unselect(const wxDataViewItem& item) wxOVERRIDE; - virtual void UnselectAll() wxOVERRIDE; - -// -// implementation -// - // returns a pointer to the native implementation - wxDataViewWidgetImpl* GetDataViewPeer() const; - - // adds all children of the passed parent to the control; if 'parentItem' is invalid the root(s) is/are added: - void AddChildren(wxDataViewItem const& parentItem); - - // finishes editing of custom items; if no custom item is currently edited the method does nothing - void FinishCustomItemEditing(); - - virtual void EditItem(const wxDataViewItem& item, const wxDataViewColumn *column) wxOVERRIDE; - - // returns the n-th pointer to a column; - // this method is different from GetColumn(unsigned int pos) because here 'n' is not a position in the control but the n-th - // position in the internal list/array of column pointers - wxDataViewColumn* GetColumnPtr(size_t n) const - { - return m_ColumnPtrs[n]; - } - // returns the current being rendered item of the customized renderer (this item is only valid during editing) - wxDataViewItem const& GetCustomRendererItem() const - { - return m_CustomRendererItem; - } - // returns a pointer to a customized renderer (this pointer is only valid during editing) - wxDataViewCustomRenderer* GetCustomRendererPtr() const - { - return m_CustomRendererPtr; - } - - // checks if currently a delete process is running - bool IsDeleting() const - { - return m_Deleting; - } - - // with CG, we need to get the context from an kEventControlDraw event - // unfortunately, the DataBrowser callbacks don't provide the context - // and we need it, so we need to set/remove it before and after draw - // events so we can access it in the callbacks. - void MacSetDrawingContext(void* context) - { - m_cgContext = context; - } - void* MacGetDrawingContext() const - { - return m_cgContext; - } - - // sets the currently being edited item of the custom renderer - void SetCustomRendererItem(wxDataViewItem const& NewItem) - { - m_CustomRendererItem = NewItem; - } - // sets the custom renderer - void SetCustomRendererPtr(wxDataViewCustomRenderer* NewCustomRendererPtr) - { - m_CustomRendererPtr = NewCustomRendererPtr; - } - // sets the flag indicating a deletion process: - void SetDeleting(bool deleting) - { - m_Deleting = deleting; - } - - virtual wxDataViewColumn *GetCurrentColumn() const wxOVERRIDE; - - virtual wxVisualAttributes GetDefaultAttributes() const wxOVERRIDE - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); - -protected: - // inherited methods from wxDataViewCtrlBase - virtual void DoSetExpanderColumn() wxOVERRIDE; - virtual void DoSetIndent() wxOVERRIDE; - - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - // event handling - void OnSize(wxSizeEvent &event); - void OnMouse(wxMouseEvent &event); - -private: - // initializing of local variables: - void Init(); - - virtual wxDataViewItem DoGetCurrentItem() const wxOVERRIDE; - virtual void DoSetCurrentItem(const wxDataViewItem& item) wxOVERRIDE; - - // - // variables - // - bool m_Deleting; // flag indicating if a delete process is running; this flag is necessary because the notifier indicating an item deletion in the model may be called - // after the actual deletion of the item; then, native callback functions/delegates may try to update data of variables that are already deleted; - // if this flag is set all native variable update requests will be ignored - - void* m_cgContext; // pointer to core graphics context - - wxDataViewCustomRenderer* m_CustomRendererPtr; // pointer to a valid custom renderer while editing; this class does NOT own the pointer - - wxDataViewItem m_CustomRendererItem; // currently edited item by the customrenderer; it is invalid while not editing a custom item - - wxDataViewColumnPtrArrayType m_ColumnPtrs; // all column pointers are stored in an array - - wxDataViewModelNotifier* m_ModelNotifier; // stores the model notifier for the control (does not own the notifier) - - // wxWidget internal stuff: - wxDECLARE_DYNAMIC_CLASS(wxDataViewCtrl); - wxDECLARE_NO_COPY_CLASS(wxDataViewCtrl); - wxDECLARE_EVENT_TABLE(); -}; - -#endif // _WX_DATAVIEWCTRL_OSX_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/datectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/datectrl.h deleted file mode 100644 index 555ba68e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/datectrl.h +++ /dev/null @@ -1,54 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/datectrl.h -// Purpose: Declaration of wxOSX-specific wxDatePickerCtrl class. -// Author: Vadim Zeitlin -// Created: 2011-12-18 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_DATECTRL_H_ -#define _WX_OSX_DATECTRL_H_ - -// ---------------------------------------------------------------------------- -// wxDatePickerCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDatePickerCtrl : public wxDatePickerCtrlBase -{ -public: - // Constructors. - wxDatePickerCtrl() { } - - wxDatePickerCtrl(wxWindow *parent, - wxWindowID id, - const wxDateTime& dt = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDatePickerCtrlNameStr) - { - Create(parent, id, dt, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxDateTime& dt = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDP_DEFAULT | wxDP_SHOWCENTURY, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxDatePickerCtrlNameStr); - - // Implement the base class pure virtuals. - virtual void SetRange(const wxDateTime& dt1, const wxDateTime& dt2); - virtual bool GetRange(wxDateTime *dt1, wxDateTime *dt2) const; - - virtual void OSXGenerateEvent(const wxDateTime& dt); - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDatePickerCtrl); -}; - -#endif // _WX_OSX_DATECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/datetimectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/datetimectrl.h deleted file mode 100644 index 99939701..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/datetimectrl.h +++ /dev/null @@ -1,33 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/datetimectrl.h -// Purpose: Declaration of wxOSX-specific wxDateTimePickerCtrl class. -// Author: Vadim Zeitlin -// Created: 2011-12-18 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_DATETIMECTRL_H_ -#define _WX_OSX_DATETIMECTRL_H_ - -class wxDateTimeWidgetImpl; - -// ---------------------------------------------------------------------------- -// wxDateTimePickerCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDateTimePickerCtrl : public wxDateTimePickerCtrlBase -{ -public: - // Implement the base class pure virtuals. - virtual void SetValue(const wxDateTime& dt); - virtual wxDateTime GetValue() const; - - // Implementation only. - virtual void OSXGenerateEvent(const wxDateTime& dt) = 0; - -protected: - wxDateTimeWidgetImpl* GetDateTimePeer() const; -}; - -#endif // _WX_OSX_DATETIMECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dc.h deleted file mode 100644 index 84bb59c0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dc.h +++ /dev/null @@ -1,14 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/dc.h -// Purpose: wxDC class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DC_H_ -#define _WX_DC_H_ - -#endif // _WX_DC_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcclient.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcclient.h deleted file mode 100644 index 4c88220d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcclient.h +++ /dev/null @@ -1,71 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/dcclient.h -// Purpose: wxClientDC, wxPaintDC and wxWindowDC classes -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCCLIENT_H_ -#define _WX_DCCLIENT_H_ - -#include "wx/dc.h" -#include "wx/dcgraph.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxPaintDC; -class WXDLLIMPEXP_FWD_CORE wxWindow; - -class WXDLLIMPEXP_CORE wxWindowDCImpl: public wxGCDCImpl -{ -public: - wxWindowDCImpl( wxDC *owner ); - wxWindowDCImpl( wxDC *owner, wxWindow *window ); - virtual ~wxWindowDCImpl(); - - virtual void DoGetSize( int *width, int *height ) const; - virtual wxBitmap DoGetAsBitmap(const wxRect *subrect) const; - -protected: - bool m_release; - int m_width; - int m_height; - - wxDECLARE_CLASS(wxWindowDCImpl); - wxDECLARE_NO_COPY_CLASS(wxWindowDCImpl); -}; - - -class WXDLLIMPEXP_CORE wxClientDCImpl: public wxWindowDCImpl -{ -public: - wxClientDCImpl( wxDC *owner ); - wxClientDCImpl( wxDC *owner, wxWindow *window ); - virtual ~wxClientDCImpl(); - -private: - wxDECLARE_CLASS(wxClientDCImpl); - wxDECLARE_NO_COPY_CLASS(wxClientDCImpl); -}; - - -class WXDLLIMPEXP_CORE wxPaintDCImpl: public wxWindowDCImpl -{ -public: - wxPaintDCImpl( wxDC *owner ); - wxPaintDCImpl( wxDC *owner, wxWindow *win ); - virtual ~wxPaintDCImpl(); - -protected: - wxDECLARE_CLASS(wxPaintDCImpl); - wxDECLARE_NO_COPY_CLASS(wxPaintDCImpl); -}; - - -#endif - // _WX_DCCLIENT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcmemory.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcmemory.h deleted file mode 100644 index 05fccf50..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcmemory.h +++ /dev/null @@ -1,45 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/dcmemory.h -// Purpose: wxMemoryDC class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCMEMORY_H_ -#define _WX_DCMEMORY_H_ - -#include "wx/osx/dcclient.h" - -class WXDLLIMPEXP_CORE wxMemoryDCImpl: public wxPaintDCImpl -{ -public: - wxMemoryDCImpl( wxMemoryDC *owner ); - wxMemoryDCImpl( wxMemoryDC *owner, wxBitmap& bitmap ); - wxMemoryDCImpl( wxMemoryDC *owner, wxDC *dc ); - - virtual ~wxMemoryDCImpl(); - - virtual void DoGetSize( int *width, int *height ) const; - virtual wxBitmap DoGetAsBitmap(const wxRect *subrect) const - { return subrect == NULL ? GetSelectedBitmap() : GetSelectedBitmap().GetSubBitmap(*subrect); } - virtual void DoSelect(const wxBitmap& bitmap); - - virtual const wxBitmap& GetSelectedBitmap() const - { return m_selected; } - virtual wxBitmap& GetSelectedBitmap() - { return m_selected; } - -private: - void Init(); - - wxBitmap m_selected; - - wxDECLARE_CLASS(wxMemoryDCImpl); - wxDECLARE_NO_COPY_CLASS(wxMemoryDCImpl); -}; - -#endif - // _WX_DCMEMORY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcprint.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcprint.h deleted file mode 100644 index 7bebfbc3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcprint.h +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/dcprint.h -// Purpose: wxPrinterDC class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCPRINT_H_ -#define _WX_DCPRINT_H_ - -#include "wx/dc.h" -#include "wx/dcgraph.h" -#include "wx/cmndata.h" - -class wxNativePrinterDC ; - -class WXDLLIMPEXP_CORE wxPrinterDCImpl: public wxGCDCImpl -{ -public: -#if wxUSE_PRINTING_ARCHITECTURE - - wxPrinterDCImpl( wxPrinterDC *owner, const wxPrintData& printdata ); - virtual ~wxPrinterDCImpl(); - - virtual bool StartDoc( const wxString& WXUNUSED(message) ) ; - virtual void EndDoc(void) ; - virtual void StartPage(void) ; - virtual void EndPage(void) ; - - wxRect GetPaperRect() const; - - wxPrintData& GetPrintData() { return m_printData; } - virtual wxSize GetPPI() const; - -protected: - virtual void DoGetSize( int *width, int *height ) const; - - wxPrintData m_printData ; - wxNativePrinterDC* m_nativePrinterDC ; - -private: - wxDECLARE_CLASS(wxPrinterDC); -#endif // wxUSE_PRINTING_ARCHITECTURE -}; - -#endif - // _WX_DCPRINT_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcscreen.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcscreen.h deleted file mode 100644 index c6fdd335..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dcscreen.h +++ /dev/null @@ -1,34 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/dcscreen.h -// Purpose: wxScreenDC class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCSCREEN_H_ -#define _WX_DCSCREEN_H_ - -#include "wx/dcclient.h" -#include "wx/osx/dcclient.h" - -class WXDLLIMPEXP_CORE wxScreenDCImpl: public wxWindowDCImpl -{ -public: - wxScreenDCImpl( wxDC *owner ); - virtual ~wxScreenDCImpl(); - - virtual wxBitmap DoGetAsBitmap(const wxRect *subrect) const; -private: - void* m_overlayWindow; - -private: - wxDECLARE_CLASS(wxScreenDCImpl); - wxDECLARE_NO_COPY_CLASS(wxScreenDCImpl); -}; - -#endif - // _WX_DCSCREEN_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dialog.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dialog.h deleted file mode 100644 index 88d5462f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dialog.h +++ /dev/null @@ -1,95 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/dialog.h -// Purpose: wxDialog class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIALOG_H_ -#define _WX_DIALOG_H_ - -#include "wx/panel.h" - -class WXDLLIMPEXP_FWD_CORE wxMacToolTip ; -class WXDLLIMPEXP_FWD_CORE wxModalEventLoop ; - -// Dialog boxes -class WXDLLIMPEXP_CORE wxDialog : public wxDialogBase -{ - wxDECLARE_DYNAMIC_CLASS(wxDialog); - -public: - wxDialog() { Init(); } - - // Constructor with no modal flag - the new convention. - wxDialog(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr) - { - Init(); - Create(parent, id, title, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr); - - virtual ~wxDialog(); - -// virtual bool Destroy(); - virtual bool Show(bool show = true); - - // return true if we're showing the dialog modally - virtual bool IsModal() const; - - // show the dialog modally and return the value passed to EndModal() - virtual int ShowModal(); - - virtual void ShowWindowModal(); - - // may be called to terminate the dialog with the given return code - virtual void EndModal(int retCode); - - static bool OSXHasModalDialogsOpen(); - static void OSXBeginModalDialog(); - static void OSXEndModalDialog(); - - // implementation - // -------------- - - wxDialogModality GetModality() const; - -#if wxOSX_USE_COCOA - virtual void ModalFinishedCallback(void* WXUNUSED(panel), int WXUNUSED(returnCode)) {} -#endif - -protected: - // show window modal dialog - void DoShowWindowModal(); - - // end window modal dialog. - void EndWindowModal(); - - // mac also takes command-period as cancel - virtual bool IsEscapeKey(const wxKeyEvent& event); - - - wxDialogModality m_modality; - - wxModalEventLoop* m_eventLoop; - -private: - void Init(); -}; - -#endif - // _WX_DIALOG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dirdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dirdlg.h deleted file mode 100644 index c23cf71b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dirdlg.h +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/dirdlg.h -// Purpose: wxDirDialog class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIRDLG_H_ -#define _WX_DIRDLG_H_ - -#if wxOSX_USE_COCOA - DECLARE_WXCOCOA_OBJC_CLASS(NSOpenPanel); -#endif - -class WXDLLIMPEXP_CORE wxDirDialog : public wxDirDialogBase -{ -public: - wxDirDialog() { Init(); } - - wxDirDialog(wxWindow *parent, - const wxString& message = wxDirSelectorPromptStr, - const wxString& defaultPath = wxT(""), - long style = wxDD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - const wxString& name = wxDirDialogNameStr) - { - Init(); - - Create(parent,message,defaultPath,style,pos,size,name); - } - - void Create(wxWindow *parent, - const wxString& message = wxDirSelectorPromptStr, - const wxString& defaultPath = wxT(""), - long style = wxDD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - const wxString& name = wxDirDialogNameStr); - -#if wxOSX_USE_COCOA - ~wxDirDialog(); -#endif - - virtual int ShowModal(); - -#if wxOSX_USE_COCOA - virtual void ShowWindowModal(); - virtual void ModalFinishedCallback(void* panel, int returnCode); -#endif - -private: -#if wxOSX_USE_COCOA - // Create and initialize NSOpenPanel that we use in both ShowModal() and - // ShowWindowModal(). - WX_NSOpenPanel OSXCreatePanel() const; - - WX_NSObject m_sheetDelegate; -#endif - - // Common part of all ctors. - void Init(); - - wxDECLARE_DYNAMIC_CLASS(wxDirDialog); -}; - -#endif // _WX_DIRDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dnd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dnd.h deleted file mode 100644 index 7cd8ed22..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dnd.h +++ /dev/null @@ -1,108 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/dnd.h -// Purpose: Declaration of the wxDropTarget, wxDropSource class etc. -// Author: Stefan Csomor -// Copyright: (c) 1998 Stefan Csomor -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DND_H_ -#define _WX_DND_H_ - -#if wxUSE_DRAG_AND_DROP - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/string.h" -#include "wx/dataobj.h" -#include "wx/cursor.h" - -//------------------------------------------------------------------------- -// classes -//------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxWindow; - -class WXDLLIMPEXP_FWD_CORE wxDropTarget; -class WXDLLIMPEXP_FWD_CORE wxTextDropTarget; -class WXDLLIMPEXP_FWD_CORE wxFileDropTarget; - -class WXDLLIMPEXP_FWD_CORE wxDropSource; - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -// this macro may be used instead for wxDropSource ctor arguments: it will use -// the icon 'name' from an XPM file under GTK, but will expand to something -// else under MSW. If you don't use it, you will have to use #ifdef in the -// application code. -#define wxDROP_ICON(X) wxCursor(X##_xpm) - -//------------------------------------------------------------------------- -// wxDropTarget -//------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDropTarget: public wxDropTargetBase -{ - public: - - wxDropTarget(wxDataObject *dataObject = NULL ); - - virtual wxDragResult OnDragOver(wxCoord x, wxCoord y, wxDragResult def); - virtual bool OnDrop(wxCoord x, wxCoord y); - virtual wxDragResult OnData(wxCoord x, wxCoord y, wxDragResult def); - virtual bool GetData(); - // NOTE: This is needed by the generic wxDataViewCtrl, not sure how to implement. - virtual wxDataFormat GetMatchingPair(); - - bool CurrentDragHasSupportedFormat() ; - void SetCurrentDragPasteboard( void* dragpasteboard ) { m_currentDragPasteboard = dragpasteboard ; } - protected : - void* m_currentDragPasteboard ; -}; - -//------------------------------------------------------------------------- -// wxDropSource -//------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDropSource: public wxDropSourceBase -{ -public: - // ctors: if you use default ctor you must call SetData() later! - // - // NB: the "wxWindow *win" parameter is unused and is here only for wxGTK - // compatibility, as well as both icon parameters - wxDropSource( wxWindow *win = NULL, - const wxCursor &cursorCopy = wxNullCursor, - const wxCursor &cursorMove = wxNullCursor, - const wxCursor &cursorStop = wxNullCursor); - - /* constructor for setting one data object */ - wxDropSource( wxDataObject& data, - wxWindow *win, - const wxCursor &cursorCopy = wxNullCursor, - const wxCursor &cursorMove = wxNullCursor, - const wxCursor &cursorStop = wxNullCursor); - - virtual ~wxDropSource(); - - // do it (call this in response to a mouse button press, for example) - // params: if bAllowMove is false, data can be only copied - virtual wxDragResult DoDragDrop(int flags = wxDrag_CopyOnly); - - wxWindow* GetWindow() { return m_window ; } - void SetCurrentDragPasteboard( void* dragpasteboard ) { m_currentDragPasteboard = dragpasteboard ; } - bool MacInstallDefaultCursor(wxDragResult effect) ; - static wxDropSource* GetCurrentDropSource(); - protected : - - wxWindow *m_window; - void* m_currentDragPasteboard ; -}; - -#endif // wxUSE_DRAG_AND_DROP - -#endif - //_WX_DND_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dvrenderer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dvrenderer.h deleted file mode 100644 index 6ef28ed3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dvrenderer.h +++ /dev/null @@ -1,112 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/dvrenderer.h -// Purpose: wxDataViewRenderer for OS X wxDataViewCtrl implementations -// Author: Vadim Zeitlin -// Created: 2009-11-07 (extracted from wx/osx/dataview.h) -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_DVRENDERER_H_ -#define _WX_OSX_DVRENDERER_H_ - -class wxDataViewRendererNativeData; - -// ---------------------------------------------------------------------------- -// wxDataViewRenderer -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewRenderer : public wxDataViewRendererBase -{ -public: - // constructors / destructor - // ------------------------- - - wxDataViewRenderer(const wxString& varianttype, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT); - - virtual ~wxDataViewRenderer(); - - // inherited methods from wxDataViewRendererBase - // --------------------------------------------- - - virtual int GetAlignment() const wxOVERRIDE - { - return m_alignment; - } - virtual wxDataViewCellMode GetMode() const wxOVERRIDE - { - return m_mode; - } - virtual bool GetValue(wxVariant& value) const wxOVERRIDE - { - value = m_value; - return true; - } - - // NB: in Carbon this is always identical to the header alignment - virtual void SetAlignment(int align) wxOVERRIDE; - virtual void SetMode(wxDataViewCellMode mode) wxOVERRIDE; - virtual bool SetValue(const wxVariant& newValue) wxOVERRIDE - { - m_value = newValue; - return true; - } - - virtual void EnableEllipsize(wxEllipsizeMode mode = wxELLIPSIZE_MIDDLE) wxOVERRIDE; - virtual wxEllipsizeMode GetEllipsizeMode() const wxOVERRIDE; - - // implementation - // -------------- - - const wxVariant& GetValue() const - { - return m_value; - } - - wxDataViewRendererNativeData* GetNativeData() const - { - return m_NativeDataPtr; - } - - // a call to the native data browser function to render the data; - // returns true if the data value could be rendered, false otherwise - virtual bool MacRender() = 0; - - void SetNativeData(wxDataViewRendererNativeData* newNativeDataPtr); - - -#if wxOSX_USE_COCOA - // called when a value was edited by user - virtual void OSXOnCellChanged(NSObject *value, - const wxDataViewItem& item, - unsigned col); - -protected: - virtual void SetAttr(const wxDataViewItemAttr& attr) wxOVERRIDE; - virtual void SetEnabled(bool enabled) wxOVERRIDE; -#else -protected: - void SetAttr(const wxDataViewItemAttr& WXUNUSED(attr)) wxOVERRIDE { }; - void SetEnabled(bool WXUNUSED(enabled)) wxOVERRIDE { }; -#endif - -private: - // contains the alignment flags - int m_alignment; - - // storing the mode that determines how the cell is going to be shown - wxDataViewCellMode m_mode; - - // data used by implementation of the native renderer - wxDataViewRendererNativeData* m_NativeDataPtr; - - // value that is going to be rendered - wxVariant m_value; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer); -}; - -#endif // _WX_OSX_DVRENDERER_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dvrenderers.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dvrenderers.h deleted file mode 100644 index 2e432512..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/dvrenderers.h +++ /dev/null @@ -1,222 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/dvrenderers.h -// Purpose: All OS X wxDataViewCtrl renderer classes -// Author: Vadim Zeitlin -// Created: 2009-11-07 (extracted from wx/osx/dataview.h) -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_DVRENDERERS_H_ -#define _WX_OSX_DVRENDERERS_H_ - -// --------------------------------------------------------- -// wxDataViewCustomRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewCustomRenderer : public wxDataViewCustomRendererBase -{ -public: - static wxString GetDefaultType() { return wxS("string"); } - - wxDataViewCustomRenderer(const wxString& varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT); - - virtual ~wxDataViewCustomRenderer(); - - - // implementation only - // ------------------- - - virtual bool MacRender(); - - virtual wxDC* GetDC(); // creates a device context and keeps it - void SetDC(wxDC* newDCPtr); // this method takes ownership of the pointer - -private: - wxControl* m_editorCtrlPtr; // pointer to an in-place editor control - - wxDC* m_DCPtr; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomRenderer); -}; - -// --------------------------------------------------------- -// wxDataViewTextRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewTextRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("string"); } - - wxDataViewTextRenderer(const wxString& varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT); - - virtual bool MacRender(); - -#if wxOSX_USE_COCOA - virtual void OSXOnCellChanged(NSObject *value, - const wxDataViewItem& item, - unsigned col); -#endif // Cocoa - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRenderer); -}; - -// --------------------------------------------------------- -// wxDataViewBitmapRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewBitmapRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("wxBitmap"); } - - wxDataViewBitmapRenderer(const wxString& varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT); - - virtual bool MacRender(); - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewBitmapRenderer); -}; - -#if wxOSX_USE_COCOA - -// ------------------------------------- -// wxDataViewChoiceRenderer -// ------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewChoiceRenderer: public wxDataViewRenderer -{ -public: - wxDataViewChoiceRenderer(const wxArrayString& choices, - wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE, - int alignment = wxDVR_DEFAULT_ALIGNMENT ); - - virtual bool MacRender(); - - wxString GetChoice(size_t index) const { return m_choices[index]; } - const wxArrayString& GetChoices() const { return m_choices; } - -#if wxOSX_USE_COCOA - virtual void OSXOnCellChanged(NSObject *value, - const wxDataViewItem& item, - unsigned col); -#endif // Cocoa - -private: - wxArrayString m_choices; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewChoiceRenderer); -}; - -#endif // wxOSX_USE_COCOA - -// --------------------------------------------------------- -// wxDataViewIconTextRenderer -// --------------------------------------------------------- -class WXDLLIMPEXP_ADV wxDataViewIconTextRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("wxDataViewIconText"); } - - wxDataViewIconTextRenderer(const wxString& varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT); - - virtual bool MacRender(); - -#if wxOSX_USE_COCOA - virtual void OSXOnCellChanged(NSObject *value, - const wxDataViewItem& item, - unsigned col); -#endif // Cocoa - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewIconTextRenderer); -}; - -// --------------------------------------------------------- -// wxDataViewToggleRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewToggleRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("bool"); } - - wxDataViewToggleRenderer(const wxString& varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT); - - virtual bool MacRender(); - -#if wxOSX_USE_COCOA - virtual void OSXOnCellChanged(NSObject *value, - const wxDataViewItem& item, - unsigned col); -#endif // Cocoa - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewToggleRenderer); -}; - -// --------------------------------------------------------- -// wxDataViewProgressRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewProgressRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("long"); } - - wxDataViewProgressRenderer(const wxString& label = wxEmptyString, - const wxString& varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT); - - virtual bool MacRender(); - -#if wxOSX_USE_COCOA - virtual void OSXOnCellChanged(NSObject *value, - const wxDataViewItem& item, - unsigned col); -#endif // Cocoa - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressRenderer); -}; - -// --------------------------------------------------------- -// wxDataViewDateRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewDateRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("datetime"); } - - wxDataViewDateRenderer(const wxString& varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, - int align = wxDVR_DEFAULT_ALIGNMENT); - - virtual bool MacRender(); - -#if wxOSX_USE_COCOA - virtual void OSXOnCellChanged(NSObject *value, - const wxDataViewItem& item, - unsigned col); -#endif // Cocoa - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewDateRenderer); -}; - -#endif // _WX_OSX_DVRENDERERS_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/evtloop.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/evtloop.h deleted file mode 100644 index cbbab016..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/evtloop.h +++ /dev/null @@ -1,40 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/evtloop.h -// Purpose: simply forwards to wx/osx/carbon/evtloop.h or -// wx/osx/cocoa/evtloop.h for consistency with the other Mac -// headers -// Author: Vadim Zeitlin -// Modified by: -// Created: 2006-01-12 -// Copyright: (c) 2006 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_EVTLOOP_H_ -#define _WX_OSX_EVTLOOP_H_ - -#include "wx/osx/cocoa/evtloop.h" - -class WXDLLIMPEXP_FWD_CORE wxWindow; -class WXDLLIMPEXP_FWD_CORE wxNonOwnedWindow; - -class WXDLLIMPEXP_CORE wxModalEventLoop : public wxGUIEventLoop -{ -public: - wxModalEventLoop(wxWindow *modalWindow); - wxModalEventLoop(WXWindow modalNativeWindow); - -#ifdef __WXOSX_COCOA__ - // skip wxGUIEventLoop to avoid missing Enter/Exit notifications - virtual int Run() { return wxCFEventLoop::Run(); } -#endif -protected: - virtual void OSXDoRun(); - virtual void OSXDoStop(); - - // (in case) the modal window for this event loop - wxNonOwnedWindow* m_modalWindow; - WXWindow m_modalNativeWindow; -}; - -#endif // _WX_OSX_EVTLOOP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/evtloopsrc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/evtloopsrc.h deleted file mode 100644 index 291ce0f1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/evtloopsrc.h +++ /dev/null @@ -1,44 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/evtloopsrc.h -// Purpose: wxCFEventLoopSource class -// Author: Vadim Zeitlin -// Created: 2009-10-21 -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_EVTLOOPSRC_H_ -#define _WX_OSX_EVTLOOPSRC_H_ - -typedef struct __CFSocket* CFSocketRef; - -// ---------------------------------------------------------------------------- -// wxCFEventLoopSource: CoreFoundation-based wxEventLoopSource for OS X -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxCFEventLoopSource : public wxEventLoopSource -{ -public: - // Create a new source in uninitialized state, call InitSocketRef() later - // to associate it with the socket it is going to use. - wxCFEventLoopSource(wxEventLoopSourceHandler *handler, int flags) - : wxEventLoopSource(handler, flags) - { - m_cfSocket = NULL; - } - - // Finish initialization of the event loop source by providing the - // associated socket. This object takes ownership of it and will release it. - void InitSourceSocket(CFSocketRef cfSocket); - - // Destructor deletes the associated socket. - virtual ~wxCFEventLoopSource(); - -private: - CFSocketRef m_cfSocket; - - wxDECLARE_NO_COPY_CLASS(wxCFEventLoopSource); -}; - -#endif // _WX_OSX_EVTLOOPSRC_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/filedlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/filedlg.h deleted file mode 100644 index d8e8a862..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/filedlg.h +++ /dev/null @@ -1,111 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/filedlg.h -// Purpose: wxFileDialog class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILEDLG_H_ -#define _WX_FILEDLG_H_ - -class WXDLLIMPEXP_FWD_CORE wxChoice; - -//------------------------------------------------------------------------- -// wxFileDialog -//------------------------------------------------------------------------- - -// set this system option to 1 in order to always show the filetypes popup in -// file open dialogs if possible - -#define wxOSX_FILEDIALOG_ALWAYS_SHOW_TYPES wxT("osx.openfiledialog.always-show-types") - -class WXDLLIMPEXP_CORE wxFileDialog: public wxFileDialogBase -{ - wxDECLARE_DYNAMIC_CLASS(wxFileDialog); -protected: - wxArrayString m_fileNames; - wxArrayString m_paths; - -public: - wxFileDialog() { Init(); } - wxFileDialog(wxWindow *parent, - const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = wxEmptyString, - const wxString& defaultFile = wxEmptyString, - const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = wxFD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize, - const wxString& name = wxFileDialogNameStr) - { - Init(); - - Create(parent,message,defaultDir,defaultFile,wildCard,style,pos,sz,name); - } - - void Create(wxWindow *parent, - const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = wxEmptyString, - const wxString& defaultFile = wxEmptyString, - const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = wxFD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize, - const wxString& name = wxFileDialogNameStr); - -#if wxOSX_USE_COCOA - ~wxFileDialog(); -#endif - - virtual void GetPaths(wxArrayString& paths) const { paths = m_paths; } - virtual void GetFilenames(wxArrayString& files) const { files = m_fileNames ; } - - virtual int ShowModal(); - -#if wxOSX_USE_COCOA - virtual void ShowWindowModal(); - virtual void ModalFinishedCallback(void* panel, int resultCode); -#endif - - virtual bool SupportsExtraControl() const; - - // implementation only - -#if wxOSX_USE_COCOA - // returns true if the file can be shown as active - bool CheckFile( const wxString& filename ); -#endif - -protected: - // not supported for file dialog, RR - virtual void DoSetSize(int WXUNUSED(x), int WXUNUSED(y), - int WXUNUSED(width), int WXUNUSED(height), - int WXUNUSED(sizeFlags) = wxSIZE_AUTO) {} - - void SetupExtraControls(WXWindow nativeWindow); - -#if wxOSX_USE_COCOA - virtual wxWindow* CreateFilterPanel(wxWindow *extracontrol); - void DoOnFilterSelected(int index); - virtual void OnFilterSelected(wxCommandEvent &event); - - wxArrayString m_filterExtensions; - wxArrayString m_filterNames; - wxChoice* m_filterChoice; - wxWindow* m_filterPanel; - bool m_useFileTypeFilter; - int m_firstFileTypeFilter; - wxArrayString m_currentExtensions; - WX_NSObject m_delegate; - WX_NSObject m_sheetDelegate; -#endif - -private: - // Common part of all ctors. - void Init(); -}; - -#endif // _WX_FILEDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/font.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/font.h deleted file mode 100644 index 93950f47..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/font.h +++ /dev/null @@ -1,182 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/font.h -// Purpose: wxFont class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONT_H_ -#define _WX_FONT_H_ - -// ---------------------------------------------------------------------------- -// wxFont -// ---------------------------------------------------------------------------- - -// font styles -enum wxOSXSystemFont -{ - wxOSX_SYSTEM_FONT_NONE = 0, - wxOSX_SYSTEM_FONT_NORMAL, - wxOSX_SYSTEM_FONT_BOLD, - wxOSX_SYSTEM_FONT_SMALL, - wxOSX_SYSTEM_FONT_SMALL_BOLD, - wxOSX_SYSTEM_FONT_MINI, - wxOSX_SYSTEM_FONT_MINI_BOLD, - wxOSX_SYSTEM_FONT_LABELS, - wxOSX_SYSTEM_FONT_VIEWS -}; - - -class WXDLLIMPEXP_CORE wxFont : public wxFontBase -{ -public: - // ctors and such - wxFont() { } - - wxFont(const wxFontInfo& info) - { - Create(info.GetPointSize(), - info.GetFamily(), - info.GetStyle(), - info.GetWeight(), - info.IsUnderlined(), - info.GetFaceName(), - info.GetEncoding()); - - if ( info.IsUsingSizeInPixels() ) - SetPixelSize(info.GetPixelSize()); - } - - wxFont( wxOSXSystemFont systemFont ); - -#if wxOSX_USE_COCOA - wxFont(WX_NSFont nsfont); -#endif - - wxFont(int size, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT) - { - Create(size, family, style, weight, underlined, face, encoding); - } - - wxFont(const wxSize& pixelSize, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT) - { - Create(10, family, style, weight, underlined, face, encoding); - SetPixelSize(pixelSize); - } - - bool Create(int size, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); - - wxFont(const wxNativeFontInfo& info) - { - (void)Create(info); - } - - wxFont(const wxString& fontDesc); - - bool Create(const wxNativeFontInfo& info); - - virtual ~wxFont(); - - // implement base class pure virtuals - virtual int GetPointSize() const; - virtual wxSize GetPixelSize() const; - virtual wxFontStyle GetStyle() const; - virtual wxFontWeight GetWeight() const; - virtual bool GetUnderlined() const; - virtual bool GetStrikethrough() const; - virtual wxString GetFaceName() const; - virtual wxFontEncoding GetEncoding() const; - virtual const wxNativeFontInfo *GetNativeFontInfo() const; - - virtual bool IsFixedWidth() const; - - virtual void SetPointSize(int pointSize); - virtual void SetFamily(wxFontFamily family); - virtual void SetStyle(wxFontStyle style); - virtual void SetWeight(wxFontWeight weight); - virtual bool SetFaceName(const wxString& faceName); - virtual void SetUnderlined(bool underlined); - virtual void SetStrikethrough(bool strikethrough); - virtual void SetEncoding(wxFontEncoding encoding); - - wxDECLARE_COMMON_FONT_METHODS(); - - wxDEPRECATED_MSG("use wxFONT{FAMILY,STYLE,WEIGHT}_XXX constants") - wxFont(int size, - int family, - int style, - int weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); - - - // implementation only from now on - // ------------------------------- - - virtual bool RealizeResource(); - - // Mac-specific, risks to change, don't use in portable code - -#if wxOSX_USE_COCOA_OR_CARBON - CGFontRef OSXGetCGFont() const; -#endif - - CTFontRef OSXGetCTFont() const; - -#if wxOSX_USE_ATSU_TEXT - // Returns an ATSUStyle not ATSUStyle* - void* MacGetATSUStyle() const ; - void* OSXGetATSUStyle() const { return MacGetATSUStyle() ; } - - wxDEPRECATED( wxUint32 MacGetATSUFontID() const ); - wxDEPRECATED( wxUint32 MacGetATSUAdditionalQDStyles() const ); -#endif - -#if wxOSX_USE_COCOA - WX_NSFont OSXGetNSFont() const; - static WX_NSFont OSXCreateNSFont(wxOSXSystemFont font, wxNativeFontInfo* info); - static WX_NSFont OSXCreateNSFont(const wxNativeFontInfo* info); - static void SetNativeInfoFromNSFont(WX_NSFont nsfont, wxNativeFontInfo* info); -#endif - -#if wxOSX_USE_IPHONE - WX_UIFont OSXGetUIFont() const; - static WX_UIFont OSXCreateUIFont(wxOSXSystemFont font, wxNativeFontInfo* info); - static WX_UIFont OSXCreateUIFont(const wxNativeFontInfo* info); -#endif - -protected: - virtual void DoSetNativeFontInfo(const wxNativeFontInfo& info); - virtual wxFontFamily DoGetFamily() const; - - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - -private: - - wxDECLARE_DYNAMIC_CLASS(wxFont); -}; - -#endif // _WX_FONT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/fontdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/fontdlg.h deleted file mode 100644 index 817501e3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/fontdlg.h +++ /dev/null @@ -1,173 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/fontdlg.h -// Purpose: wxFontDialog class using fonts window services (10.2+). -// Author: Ryan Norton -// Modified by: -// Created: 2004-09-25 -// Copyright: (c) Ryan Norton -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONTDLG_H_ -#define _WX_FONTDLG_H_ - -#include "wx/dialog.h" - -/* - * Font dialog - */ - -/* - * support old notation - */ -#ifdef wxMAC_USE_EXPERIMENTAL_FONTDIALOG -#define wxOSX_USE_EXPERIMENTAL_FONTDIALOG wxMAC_USE_EXPERIMENTAL_FONTDIALOG -#endif - -#ifndef wxOSX_USE_EXPERIMENTAL_FONTDIALOG -#define wxOSX_USE_EXPERIMENTAL_FONTDIALOG 1 -#endif - -#if wxOSX_USE_EXPERIMENTAL_FONTDIALOG - -class WXDLLIMPEXP_CORE wxFontDialog : public wxDialog -{ -public: - wxFontDialog(); - wxFontDialog(wxWindow *parent); - wxFontDialog(wxWindow *parent, const wxFontData& data); - virtual ~wxFontDialog(); - - bool Create(wxWindow *parent); - bool Create(wxWindow *parent, const wxFontData& data); - - int ShowModal(); - wxFontData& GetFontData() { return m_fontData; } - -protected: - wxFontData m_fontData; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxFontDialog); -}; - -extern "C" int RunMixedFontDialog(wxFontDialog* dialog) ; - -#else // wxOSX_USE_EXPERIMENTAL_FONTDIALOG - -#if !USE_NATIVE_FONT_DIALOG_FOR_MACOSX - -/*! - * Forward declarations - */ - -class wxFontColourSwatchCtrl; -class wxFontPreviewCtrl; -class WXDLLIMPEXP_FWD_CORE wxSpinCtrl; -class WXDLLIMPEXP_FWD_CORE wxSpinEvent; -class WXDLLIMPEXP_FWD_CORE wxListBox; -class WXDLLIMPEXP_FWD_CORE wxChoice; -class WXDLLIMPEXP_FWD_CORE wxButton; -class WXDLLIMPEXP_FWD_CORE wxStaticText; -class WXDLLIMPEXP_FWD_CORE wxCheckBox; - -/*! - * Control identifiers - */ - -#define wxID_FONTDIALOG_FACENAME 20001 -#define wxID_FONTDIALOG_FONTSIZE 20002 -#define wxID_FONTDIALOG_BOLD 20003 -#define wxID_FONTDIALOG_ITALIC 20004 -#define wxID_FONTDIALOG_UNDERLINED 20005 -#define wxID_FONTDIALOG_COLOUR 20006 -#define wxID_FONTDIALOG_PREVIEW 20007 - -#endif - // !USE_NATIVE_FONT_DIALOG_FOR_MACOSX - -class WXDLLIMPEXP_CORE wxFontDialog: public wxDialog -{ - wxDECLARE_DYNAMIC_CLASS(wxFontDialog); - -#if !USE_NATIVE_FONT_DIALOG_FOR_MACOSX - wxDECLARE_EVENT_TABLE(); -#endif - -public: - wxFontDialog(); - wxFontDialog(wxWindow *parent, const wxFontData& data); - virtual ~wxFontDialog(); - - bool Create(wxWindow *parent, const wxFontData& data); - - int ShowModal(); - wxFontData& GetFontData() { return m_fontData; } - bool IsShown() const; - void OnPanelClose(); - void SetData(const wxFontData& data); - -#if !USE_NATIVE_FONT_DIALOG_FOR_MACOSX - - /// Creates the controls and sizers - void CreateControls(); - - /// Initialize font - void InitializeFont(); - - /// Set controls according to current font - void InitializeControls(); - - /// Respond to font change - void ChangeFont(); - - /// Respond to colour change - void OnColourChanged(wxCommandEvent& event); - - /// wxEVT_LISTBOX event handler for wxID_FONTDIALOG_FACENAME - void OnFontdialogFacenameSelected( wxCommandEvent& event ); - - /// wxEVT_SPINCTRL event handler for wxID_FONTDIALOG_FONTSIZE - void OnFontdialogFontsizeUpdated( wxSpinEvent& event ); - - /// wxEVT_TEXT event handler for wxID_FONTDIALOG_FONTSIZE - void OnFontdialogFontsizeTextUpdated( wxCommandEvent& event ); - - /// wxEVT_CHECKBOX event handler for wxID_FONTDIALOG_BOLD - void OnFontdialogBoldClick( wxCommandEvent& event ); - - /// wxEVT_CHECKBOX event handler for wxID_FONTDIALOG_ITALIC - void OnFontdialogItalicClick( wxCommandEvent& event ); - - /// wxEVT_CHECKBOX event handler for wxID_FONTDIALOG_UNDERLINED - void OnFontdialogUnderlinedClick( wxCommandEvent& event ); - - /// wxEVT_BUTTON event handler for wxID_OK - void OnOkClick( wxCommandEvent& event ); - - /// Should we show tooltips? - static bool ShowToolTips(); - - wxListBox* m_facenameCtrl; - wxSpinCtrl* m_sizeCtrl; - wxCheckBox* m_boldCtrl; - wxCheckBox* m_italicCtrl; - wxCheckBox* m_underlinedCtrl; - wxFontColourSwatchCtrl* m_colourCtrl; - wxFontPreviewCtrl* m_previewCtrl; - - wxFont m_dialogFont; - bool m_suppressUpdates; - -#endif - // !USE_NATIVE_FONT_DIALOG_FOR_MACOSX - -protected: - wxWindow* m_dialogParent; - wxFontData m_fontData; - void* m_pEventHandlerRef; -}; - -#endif - -#endif - // _WX_FONTDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/frame.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/frame.h deleted file mode 100644 index 19514528..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/frame.h +++ /dev/null @@ -1,117 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/frame.h -// Purpose: wxFrame class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FRAME_H_ -#define _WX_FRAME_H_ - -#include "wx/toolbar.h" -#include "wx/accel.h" -#include "wx/icon.h" - -class WXDLLIMPEXP_FWD_CORE wxMacToolTip ; - -class WXDLLIMPEXP_CORE wxFrame: public wxFrameBase -{ -public: - // construction - wxFrame() { Init(); } - wxFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Init(); - - Create(parent, id, title, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - // implementation only from now on - // ------------------------------- - - // get the origin of the client area (which may be different from (0, 0) - // if the frame has a toolbar) in client coordinates - virtual wxPoint GetClientAreaOrigin() const wxOVERRIDE; - - // override some more virtuals - virtual bool Show(bool show = true) wxOVERRIDE; - virtual bool Enable(bool enable = true) wxOVERRIDE; - - // event handlers - void OnActivate(wxActivateEvent& event); - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // Toolbar -#if wxUSE_TOOLBAR - virtual wxToolBar* CreateToolBar(long style = -1, - wxWindowID id = -1, - const wxString& name = wxToolBarNameStr) wxOVERRIDE; - - virtual void SetToolBar(wxToolBar *toolbar) wxOVERRIDE; -#endif // wxUSE_TOOLBAR - - // Status bar -#if wxUSE_STATUSBAR - virtual wxStatusBar* OnCreateStatusBar(int number = 1, - long style = wxSTB_DEFAULT_STYLE, - wxWindowID id = 0, - const wxString& name = wxStatusLineNameStr) wxOVERRIDE; -#endif // wxUSE_STATUSBAR - - // called by wxWindow whenever it gets focus - void SetLastFocus(wxWindow *win) { m_winLastFocused = win; } - wxWindow *GetLastFocus() const { return m_winLastFocused; } - - void PositionBars(); - - // internal response to size events - virtual void MacOnInternalSize() wxOVERRIDE { PositionBars(); } - -protected: - // common part of all ctors - void Init(); - -#if wxUSE_TOOLBAR - virtual void PositionToolBar() wxOVERRIDE; -#endif -#if wxUSE_STATUSBAR - virtual void PositionStatusBar() wxOVERRIDE; -#endif - - // override base class virtuals - virtual void DoGetClientSize(int *width, int *height) const wxOVERRIDE; - virtual void DoSetClientSize(int width, int height) wxOVERRIDE; - -#if wxUSE_MENUS - virtual void DetachMenuBar() wxOVERRIDE; - virtual void AttachMenuBar(wxMenuBar *menubar) wxOVERRIDE; -#endif - - // the last focused child: we restore focus to it on activation - wxWindow *m_winLastFocused; - - virtual bool MacIsChildOfClientArea( const wxWindow* child ) const wxOVERRIDE; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxFrame); -}; - -#endif - // _WX_FRAME_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/fswatcher_fsevents.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/fswatcher_fsevents.h deleted file mode 100644 index bbaa95d9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/fswatcher_fsevents.h +++ /dev/null @@ -1,88 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/fswatcher_fsevents.h -// Purpose: File System watcher that uses the FSEvents API -// of OS X to efficiently watch trees -// Author: Roberto Perpuly -// Created: 2015-04-24 -// Copyright: (c) 2015 Roberto Perpuly <robertop2004@gmail.com> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FSWATCHER_FSEVENTS_H_ -#define _WX_FSWATCHER_FSEVENTS_H_ - -#include "wx/defs.h" - -#if wxUSE_FSWATCHER - -#include <CoreServices/CoreServices.h> -#include "wx/unix/fswatcher_kqueue.h" - -WX_DECLARE_STRING_HASH_MAP(FSEventStreamRef, FSEventStreamRefMap); - -/* - The FSEvents watcher uses the newer FSEvents service - that is available in OS X, the service allows for - efficient watching of entire directory hierarchies. - Note that adding a single file watch (or directory - watch) still use kqueue events. - - We take care to only use this on OS X >= 10.7, as that - version introduced the ability to get file-level notifications. - - See the following docs that outline the FSEvents API - - https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/FSEvents_ProgGuide/UsingtheFSEventsFramework/UsingtheFSEventsFramework.html - - https://developer.apple.com/library/mac/documentation/Darwin/Reference/FSEvents_Ref/index.html -*/ -class WXDLLIMPEXP_BASE wxFsEventsFileSystemWatcher : - public wxKqueueFileSystemWatcher -{ -public: - wxFsEventsFileSystemWatcher(); - - wxFsEventsFileSystemWatcher(const wxFileName& path, - int events = wxFSW_EVENT_ALL); - - ~wxFsEventsFileSystemWatcher(); - - // reimplement adding a tree so that it does not use - // kqueue at all - bool AddTree(const wxFileName& path, int events = wxFSW_EVENT_ALL, - const wxString& filespec = wxEmptyString) wxOVERRIDE; - - // reimplement removing a tree so that we - // cleanup the opened fs streams - bool RemoveTree(const wxFileName& path) wxOVERRIDE; - - // reimplement remove all so that we cleanup - // watches from kqeueue and from FSEvents - bool RemoveAll() wxOVERRIDE; - - // post an file change event to the owner - void PostChange(const wxFileName& oldFileName, - const wxFileName& newFileName, int event); - - // post a warning event to the owner - void PostWarning(wxFSWWarningType warning, const wxString& msg); - - // post an error event to the owner - void PostError(const wxString& msg); - - // reimplement count to include the FS stream watches - int GetWatchedPathsCount() const; - - // reimplement to include paths from FS stream watches - int GetWatchedPaths(wxArrayString* paths) const; - -private: - - // map of path => FSEventStreamRef - FSEventStreamRefMap m_streams; - -}; - -#endif /* wxUSE_FSWATCHER */ - -#endif /* _WX_FSWATCHER_FSEVENTS_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/gauge.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/gauge.h deleted file mode 100644 index cfd9ff5c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/gauge.h +++ /dev/null @@ -1,53 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/gauge.h -// Purpose: wxGauge class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GAUGE_H_ -#define _WX_GAUGE_H_ - -#include "wx/control.h" - -// Group box -class WXDLLIMPEXP_CORE wxGauge: public wxGaugeBase -{ - public: - wxGauge() { } - - wxGauge(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr) - { - Create(parent, id, range, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr); - - // set gauge range/value - virtual void SetRange(int range); - virtual void SetValue(int pos); - virtual int GetValue() const ; - - void Pulse(); - - protected: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxGauge); -}; - -#endif - // _WX_GAUGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/glcanvas.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/glcanvas.h deleted file mode 100644 index 268b5d43..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/glcanvas.h +++ /dev/null @@ -1,175 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/glcanvas.h -// Purpose: wxGLCanvas, for using OpenGL with wxWidgets under Macintosh -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GLCANVAS_H_ -#define _WX_GLCANVAS_H_ - -#ifdef __WXOSX_IPHONE__ -#import <OpenGLES/ES1/gl.h> -#import <OpenGLES/ES1/glext.h> -#define wxUSE_OPENGL_EMULATION 1 -#else -#include <OpenGL/gl.h> -#endif - -#include "wx/vector.h" - -// low level calls - -WXDLLIMPEXP_GL WXGLContext WXGLCreateContext( WXGLPixelFormat pixelFormat, WXGLContext shareContext ); -WXDLLIMPEXP_GL void WXGLDestroyContext( WXGLContext context ); - -WXDLLIMPEXP_GL WXGLContext WXGLGetCurrentContext(); -WXDLLIMPEXP_GL bool WXGLSetCurrentContext(WXGLContext context); - -WXDLLIMPEXP_GL WXGLPixelFormat WXGLChoosePixelFormat(const int *GLAttrs = NULL, - int n1 = 0, - const int *ctxAttrs = NULL, - int n2 = 0); -WXDLLIMPEXP_GL void WXGLDestroyPixelFormat( WXGLPixelFormat pixelFormat ); - -class WXDLLIMPEXP_GL wxGLContext : public wxGLContextBase -{ -public: - wxGLContext(wxGLCanvas *win, - const wxGLContext *other = NULL, - const wxGLContextAttrs *ctxAttrs = NULL); - virtual ~wxGLContext(); - - virtual bool SetCurrent(const wxGLCanvas& win) const; - - // Mac-specific - WXGLContext GetWXGLContext() const { return m_glContext; } - -private: - WXGLContext m_glContext; - - wxDECLARE_NO_COPY_CLASS(wxGLContext); -}; - -class WXDLLIMPEXP_GL wxGLCanvas : public wxGLCanvasBase -{ -public: - wxGLCanvas(wxWindow *parent, - const wxGLAttributes& dispAttrs, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const wxPalette& palette = wxNullPalette); - - wxGLCanvas(wxWindow *parent, - wxWindowID id = wxID_ANY, - const int *attribList = NULL, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const wxPalette& palette = wxNullPalette); - - bool Create(wxWindow *parent, - const wxGLAttributes& dispAttrs, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const wxPalette& palette = wxNullPalette); - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const int *attribList = NULL, - const wxPalette& palette = wxNullPalette); - - virtual ~wxGLCanvas(); - - // implement wxGLCanvasBase methods - virtual bool SwapBuffers() wxOVERRIDE; - - - // Mac-specific functions - // ---------------------- - - // return true if multisample extension is supported - static bool IsAGLMultiSampleAvailable(); - - // return the pixel format used by this window - WXGLPixelFormat GetWXGLPixelFormat() const { return m_glFormat; } - - // Return the copy of attributes passed at ctor - wxGLAttributes& GetGLDispAttrs() { return m_GLAttrs; } - - // update the view port of the current context to match this window - void SetViewport(); - - - // deprecated methods - // ------------------ - -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED( - wxGLCanvas(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const int *attribList = NULL, - const wxPalette& palette = wxNullPalette) - ); - - wxDEPRECATED( - wxGLCanvas(wxWindow *parent, - const wxGLContext *shared, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const int *attribList = NULL, - const wxPalette& palette = wxNullPalette) - ); - - wxDEPRECATED( - wxGLCanvas(wxWindow *parent, - const wxGLCanvas *shared, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const int *attribList = NULL, - const wxPalette& palette = wxNullPalette) - ); -#endif // WXWIN_COMPATIBILITY_2_8 - - // implementation-only from now on - -protected: - WXGLPixelFormat m_glFormat; - wxGLAttributes m_GLAttrs; - -#if wxOSX_USE_CARBON - bool m_macCanvasIsShown, - m_needsUpdate; - WXGLContext m_dummyContext; - GLint m_bufferName; -#endif - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_CLASS(wxGLCanvas); -}; - -#endif // _WX_GLCANVAS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/icon.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/icon.h deleted file mode 100644 index 2540a346..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/icon.h +++ /dev/null @@ -1,100 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/icon.h -// Purpose: wxIcon class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ICON_H_ -#define _WX_ICON_H_ - -#include "wx/bitmap.h" - -// Icon -class WXDLLIMPEXP_CORE wxIcon : public wxGDIObject -{ -public: - wxIcon(); - - wxIcon(const char* const* data); - wxIcon(const char bits[], int width , int height ); - wxIcon(const wxString& name, wxBitmapType flags = wxICON_DEFAULT_TYPE, - int desiredWidth = -1, int desiredHeight = -1); - wxIcon(const wxIconLocation& loc) - { - LoadFile(loc.GetFileName(), wxBITMAP_TYPE_ICON); - } - - wxIcon(WXHICON icon, const wxSize& size); - - virtual ~wxIcon(); - - bool LoadFile(const wxString& name, wxBitmapType flags = wxICON_DEFAULT_TYPE, - int desiredWidth = -1, int desiredHeight = -1); - - - // create from bitmap (which should have a mask unless it's monochrome): - // there shouldn't be any implicit bitmap -> icon conversion (i.e. no - // ctors, assignment operators...), but it's ok to have such function - void CopyFromBitmap(const wxBitmap& bmp); - - int GetWidth() const; - int GetHeight() const; - int GetDepth() const; - void SetWidth(int w); - void SetHeight(int h); - void SetDepth(int d); - void SetOk(bool isOk); - - wxSize GetSize() const { return wxSize(GetWidth(), GetHeight()); } - - WXHICON GetHICON() const; - -#if wxOSX_USE_COCOA - WX_NSImage GetNSImage() const ; -#endif - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - -private: - wxDECLARE_DYNAMIC_CLASS(wxIcon); - - bool LoadIconFromSystemResource(const wxString& resourceName, int desiredWidth, int desiredHeight); - bool LoadIconFromBundleResource(const wxString& resourceName, int desiredWidth, int desiredHeight); - bool LoadIconFromFile(const wxString& filename, int desiredWidth, int desiredHeight); - bool LoadIconAsBitmap(const wxString& filename, wxBitmapType flags = wxICON_DEFAULT_TYPE, int desiredWidth = -1, int desiredHeight = -1); -}; - -class WXDLLIMPEXP_CORE wxICONResourceHandler: public wxBitmapHandler -{ -public: - wxICONResourceHandler() - { - SetName(wxT("ICON resource")); - SetExtension(wxEmptyString); - SetType(wxBITMAP_TYPE_ICON_RESOURCE); - } - - virtual bool LoadFile(wxBitmap *bitmap, - const wxString& name, - wxBitmapType flags, - int desiredWidth = -1, - int desiredHeight = -1); - - // unhide the base class virtual - virtual bool LoadFile(wxBitmap *bitmap, - const wxString& name, - wxBitmapType flags) - { return LoadFile(bitmap, name, flags, -1, -1); } - -private: - wxDECLARE_DYNAMIC_CLASS(wxICONResourceHandler); -}; - -#endif - // _WX_ICON_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/imaglist.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/imaglist.h deleted file mode 100644 index 0173832e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/imaglist.h +++ /dev/null @@ -1,61 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/imaglist.h -// Purpose: -// Author: Robert Roebling, Stefan Csomor -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling and Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGLIST_H_ -#define _WX_IMAGLIST_H_ - -#include "wx/defs.h" -#include "wx/list.h" -#include "wx/icon.h" - -class WXDLLIMPEXP_FWD_CORE wxDC; -class WXDLLIMPEXP_FWD_CORE wxBitmap; -class WXDLLIMPEXP_FWD_CORE wxColour; - -class WXDLLIMPEXP_CORE wxImageList: public wxObject -{ -public: - wxImageList() { m_width = m_height = 0; } - wxImageList( int width, int height, bool mask = true, int initialCount = 1 ); - virtual ~wxImageList(); - bool Create( int width, int height, bool mask = true, int initialCount = 1 ); - bool Create(); - - virtual int GetImageCount() const; - virtual bool GetSize( int index, int &width, int &height ) const; - virtual wxSize GetSize() const { return wxSize(m_width, m_height); } - - int Add( const wxIcon& bitmap ); - int Add( const wxBitmap& bitmap ); - int Add( const wxBitmap& bitmap, const wxBitmap& mask ); - int Add( const wxBitmap& bitmap, const wxColour& maskColour ); - wxBitmap GetBitmap(int index) const; - wxIcon GetIcon(int index) const; - bool Replace( int index, const wxIcon &bitmap ); - bool Replace( int index, const wxBitmap &bitmap ); - bool Replace( int index, const wxBitmap &bitmap, const wxBitmap &mask ); - bool Remove( int index ); - bool RemoveAll(); - - virtual bool Draw(int index, wxDC& dc, int x, int y, - int flags = wxIMAGELIST_DRAW_NORMAL, - bool solidBackground = false); - -private: - wxList m_images; - - int m_width; - int m_height; - - wxDECLARE_DYNAMIC_CLASS(wxImageList); -}; - -#endif // _WX_IMAGLIST_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/iphone/chkconf.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/iphone/chkconf.h deleted file mode 100644 index 7b3dad1b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/iphone/chkconf.h +++ /dev/null @@ -1,378 +0,0 @@ -/* - * Name: wx/osx/iphone/chkconf.h - * Purpose: Compiler-specific configuration checking - * Author: Stefan Csomor - * Modified by: - * Created: 2008-07-30 - * Copyright: (c) Stefan Csomor - * Licence: wxWindows licence - */ - -#ifndef _WX_OSX_IPHONE_CHKCONF_H_ -#define _WX_OSX_IPHONE_CHKCONF_H_ - -/* - * text rendering system - */ - -/* we have different options and we turn on all that make sense - * under a certain platform - */ - -#define wxOSX_USE_ATSU_TEXT 0 -#define wxHAS_OPENGL_ES - -#define wxOSX_USE_QUICKTIME 0 -#define wxOSX_USE_AUDIOTOOLBOX 1 - -/* - * turning off capabilities that don't work under iphone yet - */ - -#if wxUSE_MIMETYPE -#undef wxUSE_MIMETYPE -#define wxUSE_MIMETYPE 0 -#endif - -#if wxUSE_MDI -#undef wxUSE_MDI -#define wxUSE_MDI 0 -#endif - -#if wxUSE_MDI_ARCHITECTURE -#undef wxUSE_MDI_ARCHITECTURE -#define wxUSE_MDI_ARCHITECTURE 0 -#endif - -#if wxUSE_DRAG_AND_DROP -#undef wxUSE_DRAG_AND_DROP -#define wxUSE_DRAG_AND_DROP 0 -#endif - -#if wxUSE_TASKBARICON -#undef wxUSE_TASKBARICON -#define wxUSE_TASKBARICON 0 -#endif - -#if wxUSE_TOOLTIPS -#undef wxUSE_TOOLTIPS -#define wxUSE_TOOLTIPS 0 -#endif - -#if wxUSE_DATAVIEWCTRL -#undef wxUSE_DATAVIEWCTRL -#define wxUSE_DATAVIEWCTRL 0 -#endif - -#if wxUSE_TREELISTCTRL -#undef wxUSE_TREELISTCTRL -#define wxUSE_TREELISTCTRL 0 -#endif - -#if wxUSE_DRAG_AND_DROP -#undef wxUSE_DRAG_AND_DROP -#define wxUSE_DRAG_AND_DROP 0 -#endif - -#if wxUSE_TASKBARICON -#undef wxUSE_TASKBARICON -#define wxUSE_TASKBARICON 0 -#endif - -#define wxUSE_BUTTON 1 - -#if wxUSE_CARET -#undef wxUSE_CARET -#define wxUSE_CARET 0 -#endif - -#if wxUSE_CHOICE -#undef wxUSE_CHOICE -#define wxUSE_CHOICE 0 -#endif - -#if wxUSE_COMBOBOX -#undef wxUSE_COMBOBOX -#define wxUSE_COMBOBOX 0 -#endif - -#ifndef __WXUNIVERSAL__ -#undef wxUSE_SCROLLBAR -#define wxUSE_SCROLLBAR 0 -#endif - -#undef wxUSE_STATUSBAR -#undef wxUSE_NATIVE_STATUSBAR -#undef wxUSE_ABOUTDLG -#undef wxUSE_STATLINE -#undef wxUSE_COLLPANE -#undef wxUSE_STATBMP -#undef wxUSE_STATBOX -#undef wxUSE_RADIOBTN -#undef wxUSE_RADIOBOX -#undef wxUSE_TOGGLEBTN - - -#define wxUSE_STATUSBAR 0 -#define wxUSE_NATIVE_STATUSBAR 0 -#define wxUSE_ABOUTDLG 0 -#define wxUSE_STATLINE 0 -#define wxUSE_COLLPANE 0 -#define wxUSE_STATBMP 0 -#define wxUSE_STATBOX 0 -#define wxUSE_RADIOBTN 0 -#define wxUSE_RADIOBOX 0 -#define wxUSE_TOGGLEBTN 0 - -#undef wxUSE_HTML - -#define wxUSE_HTML 0 - -#undef wxUSE_RICHTEXT -#define wxUSE_RICHTEXT 0 - -#undef wxUSE_ACTIVITYINDICATOR -#undef wxUSE_ADDREMOVECTRL -#undef wxUSE_ANIMATIONCTRL -#undef wxUSE_CALENDARCTRL -#undef wxUSE_COMBOCTRL -#undef wxUSE_ODCOMBOBOX -#undef wxUSE_BITMAPCOMBOBOX -#undef wxUSE_BMPBUTTON -#undef wxUSE_CHECKLISTBOX -#undef wxUSE_GRID -#undef wxUSE_LISTBOX -#undef wxUSE_LISTCTRL -#undef wxUSE_NOTEBOOK -#undef wxUSE_SPINBTN -#undef wxUSE_SPINCTRL -#undef wxUSE_TREECTRL -#undef wxUSE_DATEPICKCTRL -#undef wxUSE_DATAVIEWCTRL -#undef wxUSE_EDITABLELISTBOX -#undef wxUSE_FILEPICKERCTRL -#undef wxUSE_DIRPICKERCTRL -#undef wxUSE_FILECTRL -#undef wxUSE_COLOURPICKERCTRL -#undef wxUSE_FONTPICKERCTRL -#undef wxUSE_DEBUGREPORT -#undef wxUSE_HYPERLINKCTRL -#undef wxUSE_STC -#undef wxUSE_AUI -#undef wxUSE_BUSYINFO -#undef wxUSE_SEARCHCTRL - -#define wxUSE_ACTIVITYINDICATOR 0 -#define wxUSE_ADDREMOVECTRL 0 -#define wxUSE_ANIMATIONCTRL 0 -#define wxUSE_CALENDARCTRL 0 -#define wxUSE_COMBOCTRL 0 -#define wxUSE_ODCOMBOBOX 0 -#define wxUSE_BITMAPCOMBOBOX 0 -#define wxUSE_BMPBUTTON 0 -#define wxUSE_CHECKLISTBOX 0 -#define wxUSE_GRID 0 -#define wxUSE_LISTBOX 0 -#define wxUSE_LISTCTRL 0 -#define wxUSE_NOTEBOOK 0 -#define wxUSE_SPINBTN 0 -#define wxUSE_SPINCTRL 0 -#define wxUSE_TREECTRL 0 -#define wxUSE_DATEPICKCTRL 0 -#define wxUSE_DATAVIEWCTRL 0 -#define wxUSE_EDITABLELISTBOX 0 -#define wxUSE_FILEPICKERCTRL 0 -#define wxUSE_DIRPICKERCTRL 0 -#define wxUSE_FILECTRL 0 -#define wxUSE_COLOURPICKERCTRL 0 -#define wxUSE_FONTPICKERCTRL 0 -#define wxUSE_DEBUGREPORT 0 -#define wxUSE_HYPERLINKCTRL 0 -#define wxUSE_STC 0 -#define wxUSE_AUI 0 -#define wxUSE_BUSYINFO 0 -#define wxUSE_SEARCHCTRL 0 - -#undef wxUSE_LOGWINDOW -#undef wxUSE_LOG_DIALOG -#undef wxUSE_LISTBOOK -#undef wxUSE_CHOICEBOOK -#undef wxUSE_TREEBOOK -#undef wxUSE_TOOLBOOK -#undef wxUSE_CHOICEDLG -#undef wxUSE_HELP -#undef wxUSE_PROGRESSDLG -#undef wxUSE_FONTDLG -#undef wxUSE_FILEDLG -#undef wxUSE_CHOICEDLG -#undef wxUSE_NUMBERDLG -#undef wxUSE_TEXTDLG -#undef wxUSE_DIRDLG -#undef wxUSE_STARTUP_TIPS -#undef wxUSE_WIZARDDLG -#undef wxUSE_TOOLBAR_NATIVE -#undef wxUSE_FINDREPLDLG -#undef wxUSE_TASKBARICON -#undef wxUSE_REARRANGECTRL - -#define wxUSE_LOGWINDOW 0 -#define wxUSE_LOG_DIALOG 0 -#define wxUSE_LISTBOOK 0 -#define wxUSE_CHOICEBOOK 0 -#define wxUSE_TREEBOOK 0 -#define wxUSE_TOOLBOOK 0 -#define wxUSE_CHOICEDLG 0 -#define wxUSE_HELP 0 -#define wxUSE_PROGRESSDLG 0 -#define wxUSE_FONTDLG 0 -#define wxUSE_FILEDLG 0 -#define wxUSE_CHOICEDLG 0 -#define wxUSE_NUMBERDLG 0 -#define wxUSE_TEXTDLG 0 -#define wxUSE_DIRDLG 0 -#define wxUSE_STARTUP_TIPS 0 -#define wxUSE_WIZARDDLG 0 -#define wxUSE_TOOLBAR_NATIVE 0 -#define wxUSE_FINDREPLDLG 0 -#define wxUSE_TASKBARICON 0 -#define wxUSE_REARRANGECTRL 0 - -#if wxUSE_WXHTML_HELP -#undef wxUSE_WXHTML_HELP -#define wxUSE_WXHTML_HELP 0 -#endif - -#if wxUSE_DOC_VIEW_ARCHITECTURE -#undef wxUSE_DOC_VIEW_ARCHITECTURE -#define wxUSE_DOC_VIEW_ARCHITECTURE 0 -#endif - -#if wxUSE_PRINTING_ARCHITECTURE -#undef wxUSE_PRINTING_ARCHITECTURE -#define wxUSE_PRINTING_ARCHITECTURE 0 -#endif - -#if wxUSE_MENUS -#undef wxUSE_MENUS -#define wxUSE_MENUS 0 -#endif - -/* -#if wxUSE_POPUPWIN -#undef wxUSE_POPUPWIN -#define wxUSE_POPUPWIN 0 -#endif - -#if wxUSE_COMBOBOX -#undef wxUSE_COMBOBOX -#define wxUSE_COMBOBOX 0 -#endif - - - -#if wxUSE_CALENDARCTRL -#undef wxUSE_CALENDARCTRL -#define wxUSE_CALENDARCTRL 0 -#endif - -*/ - -#if wxUSE_CLIPBOARD -#undef wxUSE_CLIPBOARD -#define wxUSE_CLIPBOARD 0 -#endif // wxUSE_CLIPBOARD - -/* -#if wxUSE_GLCANVAS -#undef wxUSE_GLCANVAS -#define wxUSE_GLCANVAS 0 -#endif // wxUSE_GLCANVAS -*/ - -#if wxUSE_COLOURDLG -#undef wxUSE_COLOURDLG -#define wxUSE_COLOURDLG 0 -#endif // wxUSE_COLOURDLG - -// iphone has a toolbar that is a regular UIView - -#ifdef wxOSX_USE_NATIVE_TOOLBAR -#if wxOSX_USE_NATIVE_TOOLBAR -#undef wxOSX_USE_NATIVE_TOOLBAR -#define wxOSX_USE_NATIVE_TOOLBAR 0 -#endif -#else -#define wxOSX_USE_NATIVE_TOOLBAR 0 -#endif - -#if wxUSE_RIBBON -#undef wxUSE_RIBBON -#define wxUSE_RIBBON 0 -#endif - -#if wxUSE_INFOBAR -#undef wxUSE_INFOBAR -#define wxUSE_INFOBAR 0 -#endif - -#if wxUSE_FILE_HISTORY -#undef wxUSE_FILE_HISTORY -#define wxUSE_FILE_HISTORY 0 -#endif - -#if wxUSE_NOTIFICATION_MESSAGE -#undef wxUSE_NOTIFICATION_MESSAGE -#define wxUSE_NOTIFICATION_MESSAGE 0 -#endif - -#undef wxUSE_PREFERENCES_EDITOR -#define wxUSE_PREFERENCES_EDITOR 0 - -#if wxUSE_PROPGRID -#undef wxUSE_PROPGRID -#define wxUSE_PROPGRID 0 -#endif - -#if wxUSE_WEBKIT -#undef wxUSE_WEBKIT -#define wxUSE_WEBKIT 0 -#endif - -#if wxUSE_DATAOBJ -#undef wxUSE_DATAOBJ -#define wxUSE_DATAOBJ 0 -#endif - -#if wxUSE_UIACTIONSIMULATOR -#undef wxUSE_UIACTIONSIMULATOR -#define wxUSE_UIACTIONSIMULATOR 0 -#endif - -#if wxUSE_RICHMSGDLG -#undef wxUSE_RICHMSGDLG -#define wxUSE_RICHMSGDLG 0 -#endif - -#if wxUSE_RICHTEXT -#undef wxUSE_RICHTEXT -#define wxUSE_RICHTEXT 0 -#endif - -#if wxUSE_TIMEPICKCTRL -#undef wxUSE_TIMEPICKCTRL -#define wxUSE_TIMEPICKCTRL 0 -#endif - -#if wxUSE_RICHTOOLTIP -#undef wxUSE_RICHTOOLTIP -#define wxUSE_RICHTOOLTIP 0 -#endif - -#if wxUSE_WEBVIEW -#undef wxUSE_WEBVIEW -#define wxUSE_WEBVIEW 0 -#endif - -#endif - /* _WX_OSX_IPHONE_CHKCONF_H_ */ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/iphone/private.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/iphone/private.h deleted file mode 100644 index b88a863a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/iphone/private.h +++ /dev/null @@ -1,230 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/iphone/private.h -// Purpose: Private declarations: as this header is only included by -// wxWidgets itself, it may contain identifiers which don't start -// with "wx". -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_IPHONE_H_ -#define _WX_PRIVATE_IPHONE_H_ - -#ifdef __OBJC__ - #import <UIKit/UIKit.h> -#endif - -#include <CoreText/CTFont.h> -#include <CoreText/CTStringAttributes.h> -#include <CoreText/CTLine.h> - - -#if wxUSE_GUI - -typedef CGRect WXRect; - -OSStatus WXDLLIMPEXP_CORE wxMacDrawCGImage( - CGContextRef inContext, - const CGRect * inBounds, - CGImageRef inImage) ; - -WX_UIImage WXDLLIMPEXP_CORE wxOSXGetUIImageFromCGImage( CGImageRef image ); -wxBitmap WXDLLIMPEXP_CORE wxOSXCreateSystemBitmap(const wxString& id, const wxString &client, const wxSize& size); - -class WXDLLIMPEXP_CORE wxWidgetIPhoneImpl : public wxWidgetImpl -{ -public : - wxWidgetIPhoneImpl( wxWindowMac* peer , WXWidget w, bool isRootControl = false, bool isUserPane = false ) ; - wxWidgetIPhoneImpl() ; - ~wxWidgetIPhoneImpl(); - - void Init(); - - virtual bool IsVisible() const ; - virtual void SetVisibility( bool visible ); - - virtual void Raise(); - - virtual void Lower(); - - virtual void ScrollRect( const wxRect *rect, int dx, int dy ); - - virtual WXWidget GetWXWidget() const { return m_osxView; } - - virtual void SetBackgroundColour( const wxColour& col ) ; - virtual bool SetBackgroundStyle(wxBackgroundStyle style) ; - - virtual void GetContentArea( int &left , int &top , int &width , int &height ) const; - virtual void Move(int x, int y, int width, int height); - virtual void GetPosition( int &x, int &y ) const; - virtual void GetSize( int &width, int &height ) const; - virtual void SetControlSize( wxWindowVariant variant ); - virtual double GetContentScaleFactor() const ; - - virtual void SetNeedsDisplay( const wxRect* where = NULL ); - virtual bool GetNeedsDisplay() const; - - virtual bool CanFocus() const; - // return true if successful - virtual bool SetFocus(); - virtual bool HasFocus() const; - - void RemoveFromParent(); - void Embed( wxWidgetImpl *parent ); - - void SetDefaultButton( bool isDefault ); - void PerformClick(); - virtual void SetLabel(const wxString& title, wxFontEncoding encoding); - - void SetCursor( const wxCursor & cursor ); - void CaptureMouse(); - void ReleaseMouse(); - - wxInt32 GetValue() const; - void SetValue( wxInt32 v ); - - virtual wxBitmap GetBitmap() const; - virtual void SetBitmap( const wxBitmap& bitmap ); - virtual void SetBitmapPosition( wxDirection dir ); - - void SetupTabs( const wxNotebook ¬ebook ); - void GetBestRect( wxRect *r ) const; - bool IsEnabled() const; - void Enable( bool enable ); - bool ButtonClickDidStateChange() { return true ;} - void SetMinimum( wxInt32 v ); - void SetMaximum( wxInt32 v ); - wxInt32 GetMinimum() const; - wxInt32 GetMaximum() const; - void PulseGauge(); - void SetScrollThumb( wxInt32 value, wxInt32 thumbSize ); - - void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle, bool ignoreBlack = true ); - - void InstallEventHandler( WXWidget control = NULL ); - - virtual void DoNotifyFocusEvent(bool receivedFocus, wxWidgetImpl* otherWindow); - - // thunk connected calls - - virtual void drawRect(CGRect* rect, WXWidget slf, void* _cmd); - virtual void touchEvent(WX_NSSet touches, WX_UIEvent event, WXWidget slf, void* _cmd); - virtual bool becomeFirstResponder(WXWidget slf, void* _cmd); - virtual bool resignFirstResponder(WXWidget slf, void* _cmd); - - // action - - virtual void controlAction(void* sender, wxUint32 controlEvent, WX_UIEvent rawEvent); - virtual void controlTextDidChange(); -protected: - WXWidget m_osxView; - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxWidgetIPhoneImpl); -}; - -class wxNonOwnedWindowIPhoneImpl : public wxNonOwnedWindowImpl -{ -public : - wxNonOwnedWindowIPhoneImpl( wxNonOwnedWindow* nonownedwnd) ; - wxNonOwnedWindowIPhoneImpl(); - - virtual ~wxNonOwnedWindowIPhoneImpl(); - - virtual void WillBeDestroyed() ; - void Create( wxWindow* parent, const wxPoint& pos, const wxSize& size, - long style, long extraStyle, const wxString& name ) ; - void Create( wxWindow* parent, WXWindow nativeWindow ); - - WXWindow GetWXWindow() const; - void Raise(); - void Lower(); - bool Show(bool show); - bool ShowWithEffect(bool show, wxShowEffect effect, unsigned timeout); - - void Update(); - bool SetTransparent(wxByte alpha); - bool SetBackgroundColour(const wxColour& col ); - void SetExtraStyle( long exStyle ); - bool SetBackgroundStyle(wxBackgroundStyle style); - bool CanSetTransparent(); - - void MoveWindow(int x, int y, int width, int height); - void GetPosition( int &x, int &y ) const; - void GetSize( int &width, int &height ) const; - - void GetContentArea( int &left , int &top , int &width , int &height ) const; - bool SetShape(const wxRegion& region); - - virtual void SetTitle( const wxString& title, wxFontEncoding encoding ) ; - - // Title bar buttons don't exist in iOS. - virtual bool EnableCloseButton(bool WXUNUSED(enable)) { return false; } - virtual bool EnableMaximizeButton(bool WXUNUSED(enable)) { return false; } - virtual bool EnableMinimizeButton(bool WXUNUSED(enable)) { return false; } - - virtual bool IsMaximized() const; - - virtual bool IsIconized() const; - - virtual void Iconize( bool iconize ); - - virtual void Maximize(bool maximize); - - virtual bool IsFullScreen() const; - - virtual bool EnableFullScreenView(bool enable); - - virtual bool ShowFullScreen(bool show, long style); - - virtual void RequestUserAttention(int flags); - - virtual void ScreenToWindow( int *x, int *y ); - - virtual void WindowToScreen( int *x, int *y ); - - // FIXME: Does iPhone have a concept of inactive windows? - virtual bool IsActive() { return true; } - - wxNonOwnedWindow* GetWXPeer() { return m_wxPeer; } - - virtual bool InitialShowEventSent() { return m_initialShowSent; } -protected : - WX_UIWindow m_macWindow; - void * m_macFullScreenData ; - bool m_initialShowSent; - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxNonOwnedWindowIPhoneImpl); -}; - -#ifdef __OBJC__ - - WXDLLIMPEXP_CORE CGRect wxToNSRect( UIView* parent, const wxRect& r ); - WXDLLIMPEXP_CORE wxRect wxFromNSRect( UIView* parent, const CGRect& rect ); - WXDLLIMPEXP_CORE CGPoint wxToNSPoint( UIView* parent, const wxPoint& p ); - WXDLLIMPEXP_CORE wxPoint wxFromNSPoint( UIView* parent, const CGPoint& p ); - - CGRect WXDLLIMPEXP_CORE wxOSXGetFrameForControl( wxWindowMac* window , const wxPoint& pos , const wxSize &size , - bool adjustForOrigin = true ); - - @interface wxUIButton : UIButton - { - } - - @end - - @interface wxUIView : UIView - { - } - - @end // wxUIView - - - void WXDLLIMPEXP_CORE wxOSXIPhoneClassAddWXMethods(Class c); - -#endif - -#endif // wxUSE_GUI - -#endif - // _WX_PRIVATE_IPHONE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/iphone/private/textimpl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/iphone/private/textimpl.h deleted file mode 100644 index 7c9e5fd1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/iphone/private/textimpl.h +++ /dev/null @@ -1,107 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/iphone/private/textimpl.h -// Purpose: textcontrol implementation classes that have to be exposed -// Author: Stefan Csomor -// Modified by: -// Created: 03/02/99 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_COCOA_PRIVATE_TEXTIMPL_H_ -#define _WX_OSX_COCOA_PRIVATE_TEXTIMPL_H_ - -#include "wx/combobox.h" -#include "wx/osx/private.h" - -// implementation exposed, so that search control can pull it - -class wxUITextFieldControl : public wxWidgetIPhoneImpl, public wxTextWidgetImpl -{ -public : - wxUITextFieldControl( wxTextCtrl *wxPeer, UITextField* w ); - virtual ~wxUITextFieldControl(); - - virtual wxString GetStringValue() const ; - virtual void SetStringValue( const wxString &str) ; - virtual void Copy() ; - virtual void Cut() ; - virtual void Paste() ; - virtual bool CanPaste() const ; - virtual void SetEditable(bool editable) ; - virtual void GetSelection( long* from, long* to) const ; - virtual void SetSelection( long from , long to ); - virtual void WriteText(const wxString& str) ; - virtual bool HasOwnContextMenu() const { return true; } - - virtual wxSize GetBestSize() const; - - virtual bool SetHint(const wxString& hint); - - virtual void controlAction(WXWidget slf, void* _cmd, void *sender); -protected : - UITextField* m_textField; - NSObject<UITextFieldDelegate>* m_delegate; - long m_selStart; - long m_selEnd; -}; - -class wxUITextViewControl : public wxWidgetIPhoneImpl, public wxTextWidgetImpl -{ -public: - wxUITextViewControl( wxTextCtrl *wxPeer, UITextView* w ); - virtual ~wxUITextViewControl(); - - virtual wxString GetStringValue() const ; - virtual void SetStringValue( const wxString &str) ; - virtual void Copy() ; - virtual void Cut() ; - virtual void Paste() ; - virtual bool CanPaste() const ; - virtual void SetEditable(bool editable) ; - virtual void GetSelection( long* from, long* to) const ; - virtual void SetSelection( long from , long to ); - virtual void WriteText(const wxString& str) ; - virtual void SetFont( const wxFont & font , const wxColour& foreground , long windowStyle, bool ignoreBlack = true ); - - virtual bool GetStyle(long position, wxTextAttr& style); - virtual void SetStyle(long start, long end, const wxTextAttr& style); - - virtual bool CanFocus() const; - - virtual bool HasOwnContextMenu() const { return true; } - - virtual void CheckSpelling(bool check); - virtual wxSize GetBestSize() const; - -protected: - NSObject<UITextViewDelegate>* m_delegate; - UITextView* m_textView; -}; - -#if 0 -class wxNSComboBoxControl : public wxUITextFieldControl, public wxComboWidgetImpl -{ -public : - wxNSComboBoxControl( wxWindow *wxPeer, WXWidget w ); - virtual ~wxNSComboBoxControl(); - - virtual int GetSelectedItem() const; - virtual void SetSelectedItem(int item); - - virtual int GetNumberOfItems() const; - - virtual void InsertItem(int pos, const wxString& item); - virtual void RemoveItem(int pos); - - virtual void Clear(); - - virtual wxString GetStringAtIndex(int pos) const; - - virtual int FindString(const wxString& text) const; -private: - NSComboBox* m_comboBox; -}; -#endif - -#endif // _WX_OSX_COCOA_PRIVATE_TEXTIMPL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/joystick.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/joystick.h deleted file mode 100644 index 310cb6dd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/joystick.h +++ /dev/null @@ -1,90 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/joystick.h -// Purpose: wxJoystick class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_JOYSTICK_H_ -#define _WX_JOYSTICK_H_ - -#include "wx/event.h" - -class WXDLLIMPEXP_ADV wxJoystick: public wxObject -{ - wxDECLARE_DYNAMIC_CLASS(wxJoystick); -public: - /* - * Public interface - */ - - wxJoystick(int joystick = wxJOYSTICK1) { m_joystick = joystick; } - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - wxPoint GetPosition() const; - int GetPosition(unsigned axis) const; - bool GetButtonState(unsigned button) const; - int GetZPosition() const; - int GetButtonState() const; - int GetPOVPosition() const; - int GetPOVCTSPosition() const; - int GetRudderPosition() const; - int GetUPosition() const; - int GetVPosition() const; - int GetMovementThreshold() const; - void SetMovementThreshold(int threshold) ; - - // Capabilities - //////////////////////////////////////////////////////////////////////////// - - bool IsOk() const; // Checks that the joystick is functioning - static int GetNumberJoysticks() ; - int GetManufacturerId() const ; - int GetProductId() const ; - wxString GetProductName() const ; - int GetXMin() const; - int GetYMin() const; - int GetZMin() const; - int GetXMax() const; - int GetYMax() const; - int GetZMax() const; - int GetNumberButtons() const; - int GetNumberAxes() const; - int GetMaxButtons() const; - int GetMaxAxes() const; - int GetPollingMin() const; - int GetPollingMax() const; - int GetRudderMin() const; - int GetRudderMax() const; - int GetUMin() const; - int GetUMax() const; - int GetVMin() const; - int GetVMax() const; - - bool HasRudder() const; - bool HasZ() const; - bool HasU() const; - bool HasV() const; - bool HasPOV() const; - bool HasPOV4Dir() const; - bool HasPOVCTS() const; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // pollingFreq = 0 means that movement events are sent when above the threshold. - // If pollingFreq > 0, events are received every this many milliseconds. - bool SetCapture(wxWindow* win, int pollingFreq = 0); - bool ReleaseCapture(); - -protected: - int m_joystick; -}; - -#endif - // _WX_JOYSTICK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/listbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/listbox.h deleted file mode 100644 index 53fd434d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/listbox.h +++ /dev/null @@ -1,177 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/listbox.h -// Purpose: wxListBox class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LISTBOX_H_ -#define _WX_LISTBOX_H_ - -// ---------------------------------------------------------------------------- -// simple types -// ---------------------------------------------------------------------------- -#include "wx/dynarray.h" -#include "wx/arrstr.h" - -// forward decl for GetSelections() -class wxArrayInt; - -// forward decl for wxListWidgetImpl implementation type. -class wxListWidgetImpl; - -// List box item - -WX_DEFINE_ARRAY( char* , wxListDataArray ); - -// ---------------------------------------------------------------------------- -// List box control -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxListWidgetColumn; - -class WXDLLIMPEXP_FWD_CORE wxListWidgetCellValue; - -class WXDLLIMPEXP_CORE wxListBox : public wxListBoxBase -{ -public: - // ctors and such - wxListBox(); - - wxListBox( - wxWindow *parent, - wxWindowID winid, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr) - { - Create(parent, winid, pos, size, n, choices, style, validator, name); - } - - wxListBox( - wxWindow *parent, - wxWindowID winid, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr) - { - Create(parent, winid, pos, size, choices, style, validator, name); - } - - bool Create( - wxWindow *parent, - wxWindowID winid, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, - const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - bool Create( - wxWindow *parent, - wxWindowID winid, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - virtual ~wxListBox(); - - // implement base class pure virtuals - virtual void Refresh(bool eraseBack = true, const wxRect *rect = NULL) wxOVERRIDE; - - virtual unsigned int GetCount() const wxOVERRIDE; - virtual wxString GetString(unsigned int n) const wxOVERRIDE; - virtual void SetString(unsigned int n, const wxString& s) wxOVERRIDE; - virtual int FindString(const wxString& s, bool bCase = false) const wxOVERRIDE; - - // data callbacks - virtual void GetValueCallback( unsigned int n, wxListWidgetColumn* col , wxListWidgetCellValue& value ); - virtual void SetValueCallback( unsigned int n, wxListWidgetColumn* col , wxListWidgetCellValue& value ); - - virtual bool IsSelected(int n) const wxOVERRIDE; - virtual int GetSelection() const wxOVERRIDE; - virtual int GetSelections(wxArrayInt& aSelections) const wxOVERRIDE; - - virtual void EnsureVisible(int n) wxOVERRIDE; - - virtual int GetTopItem() const wxOVERRIDE; - - virtual wxVisualAttributes GetDefaultAttributes() const wxOVERRIDE - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - // wxCheckListBox support - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); - - wxListWidgetImpl* GetListPeer() const; - - bool MacGetBlockEvents() const { return m_blockEvents; } - - virtual void HandleLineEvent( unsigned int n, bool doubleClick ); -protected: - // callback for derived classes which may have to insert additional data - // at a certain line - which cannot be predetermined for sorted list data - virtual void OnItemInserted(unsigned int pos); - - virtual void DoClear() wxOVERRIDE; - virtual void DoDeleteOneItem(unsigned int n) wxOVERRIDE; - - // from wxItemContainer - virtual int DoInsertItems(const wxArrayStringsAdapter& items, - unsigned int pos, - void **clientData, wxClientDataType type) wxOVERRIDE; - - virtual void DoSetItemClientData(unsigned int n, void* clientData) wxOVERRIDE; - virtual void* DoGetItemClientData(unsigned int n) const wxOVERRIDE; - - // from wxListBoxBase - virtual void DoSetSelection(int n, bool select) wxOVERRIDE; - virtual void DoSetFirstItem(int n) wxOVERRIDE; - virtual int DoListHitTest(const wxPoint& point) const wxOVERRIDE; - - // free memory (common part of Clear() and dtor) - // prevent collision with some BSD definitions of macro Free() - void FreeData(); - - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - bool m_blockEvents; - - wxListWidgetColumn* m_textColumn; - - // data storage (copied from univ) - - // the array containing all items (it is sorted if the listbox has - // wxLB_SORT style) - union - { - wxArrayString *unsorted; - wxSortedArrayString *sorted; - } m_strings; - - // and this one the client data (either void or wxClientData) - wxArrayPtrVoid m_itemsClientData; - -private: - - wxDECLARE_DYNAMIC_CLASS(wxListBox); - wxDECLARE_EVENT_TABLE(); -}; - -#endif // _WX_LISTBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/listctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/listctrl.h deleted file mode 100644 index 652af605..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/listctrl.h +++ /dev/null @@ -1,398 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/listctrl.h -// Purpose: wxListCtrl class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LISTCTRL_H_ -#define _WX_LISTCTRL_H_ - -#include "wx/defs.h" -#include "wx/generic/listctrl.h" - -#define wxMAC_ALWAYS_USE_GENERIC_LISTCTRL wxT("mac.listctrl.always_use_generic") - -class wxMacDataBrowserListCtrlControl; -class wxListCtrlTextCtrlWrapper; -class wxListCtrlRenameTimer; - -WX_DECLARE_EXPORTED_LIST(wxListItem, wxColumnList); - -class WXDLLIMPEXP_CORE wxListCtrl: public wxListCtrlBase -{ - wxDECLARE_DYNAMIC_CLASS(wxListCtrl); -public: - /* - * Public interface - */ - - wxListCtrl() { Init(); } - - wxListCtrl(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxLC_ICON, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListCtrlNameStr) - { - Init(); - - Create(parent, id, pos, size, style, validator, name); - } - - virtual ~wxListCtrl(); - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxLC_ICON, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListCtrlNameStr); - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - // Gets information about this column - bool GetColumn(int col, wxListItem& item) const; - - // Sets information about this column - bool SetColumn(int col, const wxListItem& item) ; - - // Gets the column width - int GetColumnWidth(int col) const; - - // Sets the column width - bool SetColumnWidth(int col, int width) ; - - // Gets the number of items that can fit vertically in the - // visible area of the list control (list or report view) - // or the total number of items in the list control (icon - // or small icon view) - int GetCountPerPage() const; - - // Gets the edit control for editing labels. - wxTextCtrl* GetEditControl() const; - - // Gets information about the item - bool GetItem(wxListItem& info) const ; - - // Sets information about the item - bool SetItem(wxListItem& info) ; - - // Sets a string field at a particular column - long SetItem(long index, int col, const wxString& label, int imageId = -1); - - // Gets the item state - int GetItemState(long item, long stateMask) const ; - - // Sets the item state - bool SetItemState(long item, long state, long stateMask) ; - - void AssignImageList(wxImageList *imageList, int which); - - // Sets the item image - bool SetItemImage(long item, int image, int selImage = -1) ; - bool SetItemColumnImage(long item, long column, int image); - - // Gets the item text - wxString GetItemText(long item, int col = 0) const ; - - // Sets the item text - void SetItemText(long item, const wxString& str) ; - - void SetItemTextColour(long item, const wxColour& colour) ; - wxColour GetItemTextColour(long item) const; - - void SetItemBackgroundColour(long item, const wxColour& colour) ; - wxColour GetItemBackgroundColour(long item) const; - - void SetItemFont( long item, const wxFont &f); - wxFont GetItemFont( long item ) const; - - // Gets the item data - long GetItemData(long item) const ; - - // Sets the item data - bool SetItemPtrData(long item, wxUIntPtr data); - bool SetItemData(long item, long data) { return SetItemPtrData(item, data); } - - // Gets the item rectangle - bool GetItemRect(long item, wxRect& rect, int code = wxLIST_RECT_BOUNDS) const ; - - // Gets the item rectangle of a subitem - bool GetSubItemRect( long item, long subItem, wxRect& rect, int code = wxLIST_RECT_BOUNDS ) const; - - // Gets the item position - bool GetItemPosition(long item, wxPoint& pos) const ; - - // Sets the item position - bool SetItemPosition(long item, const wxPoint& pos) ; - - // Gets the number of items in the list control - int GetItemCount() const; - - // Gets the number of columns in the list control - int GetColumnCount() const; - - void SetItemSpacing( int spacing, bool isSmall = false ); - wxSize GetItemSpacing() const; - - // Gets the number of selected items in the list control - int GetSelectedItemCount() const; - - wxRect GetViewRect() const; - - // Gets the text colour of the listview - wxColour GetTextColour() const; - - // Sets the text colour of the listview - void SetTextColour(const wxColour& col); - - // Gets the index of the topmost visible item when in - // list or report view - long GetTopItem() const ; - - // Add or remove a single window style - void SetSingleStyle(long style, bool add = true) ; - - // Set the whole window style - void SetWindowStyleFlag(long style) ; - - // Searches for an item, starting from 'item'. - // item can be -1 to find the first item that matches the - // specified flags. - // Returns the item or -1 if unsuccessful. - long GetNextItem(long item, int geometry = wxLIST_NEXT_ALL, int state = wxLIST_STATE_DONTCARE) const ; - - // Gets one of the three image lists - wxImageList *GetImageList(int which) const ; - - // Sets the image list - void SetImageList(wxImageList *imageList, int which) ; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // Arranges the items - bool Arrange(int flag = wxLIST_ALIGN_DEFAULT); - - // Deletes an item - bool DeleteItem(long item); - - // Deletes all items - bool DeleteAllItems() ; - - // Deletes a column - bool DeleteColumn(int col); - - // Deletes all columns - bool DeleteAllColumns(); - - // Clears items, and columns if there are any. - void ClearAll(); - - // Edit the label - wxTextCtrl* EditLabel(long item, wxClassInfo* textControlClass = wxCLASSINFO(wxTextCtrl)); - - // End label editing, optionally cancelling the edit - bool EndEditLabel(bool cancel); - - // Ensures this item is visible - bool EnsureVisible(long item) ; - - // Find an item whose label matches this string, starting from the item after 'start' - // or the beginning if 'start' is -1. - long FindItem(long start, const wxString& str, bool partial = false); - - // Find an item whose data matches this data, starting from the item after 'start' - // or the beginning if 'start' is -1. - long FindItem(long start, long data); - - // Find an item nearest this position in the specified direction, starting from - // the item after 'start' or the beginning if 'start' is -1. - long FindItem(long start, const wxPoint& pt, int direction); - - // Determines which item (if any) is at the specified point, - // giving details in 'flags' (see wxLIST_HITTEST_... flags above) - // Request the subitem number as well at the given coordinate. - long HitTest(const wxPoint& point, int& flags, long* ptrSubItem = NULL) const; - - // Inserts an item, returning the index of the new item if successful, - // -1 otherwise. - // TOD: Should also have some further convenience functions - // which don't require setting a wxListItem object - long InsertItem(wxListItem& info); - - // Insert a string item - long InsertItem(long index, const wxString& label); - - // Insert an image item - long InsertItem(long index, int imageIndex); - - // Insert an image/string item - long InsertItem(long index, const wxString& label, int imageIndex); - - // Scrolls the list control. If in icon, small icon or report view mode, - // x specifies the number of pixels to scroll. If in list view mode, x - // specifies the number of columns to scroll. - // If in icon, small icon or list view mode, y specifies the number of pixels - // to scroll. If in report view mode, y specifies the number of lines to scroll. - bool ScrollList(int dx, int dy); - - // Sort items. - - // fn is a function which takes 3 long arguments: item1, item2, data. - // item1 is the long data associated with a first item (NOT the index). - // item2 is the long data associated with a second item (NOT the index). - // data is the same value as passed to SortItems. - // The return value is a negative number if the first item should precede the second - // item, a positive number of the second item should precede the first, - // or zero if the two items are equivalent. - - // data is arbitrary data to be passed to the sort function. - bool SortItems(wxListCtrlCompare fn, wxIntPtr data); - - wxMacDataBrowserListCtrlControl* GetListPeer() const; - - // these functions are only used for virtual list view controls, i.e. the - // ones with wxLC_VIRTUAL style - - void SetItemCount(long count); - void RefreshItem(long item); - void RefreshItems(long itemFrom, long itemTo); - - // return the text for the given column of the given item - virtual wxString OnGetItemText(long item, long column) const; - - // return the icon for the given item. In report view, OnGetItemImage will - // only be called for the first column. See OnGetItemColumnImage for - // details. - virtual int OnGetItemImage(long item) const; - - // return the icon for the given item and column. - virtual int OnGetItemColumnImage(long item, long column) const; - -/* Why should we need this function? Leave for now. - * We might need it because item data may have changed, - * but the display needs refreshing (in string callback mode) - // Updates an item. If the list control has the wxLI_AUTO_ARRANGE style, - // the items will be rearranged. - bool Update(long item); -*/ - - void Command(wxCommandEvent& event) { ProcessCommand(event); } - - wxListCtrlCompare GetCompareFunc() { return m_compareFunc; } - wxIntPtr GetCompareFuncData() { return m_compareFuncData; } - - - // public overrides needed for pimpl approach - virtual bool SetFont(const wxFont& font); - virtual bool SetForegroundColour(const wxColour& colour); - virtual bool SetBackgroundColour(const wxColour& colour); - virtual wxColour GetBackgroundColour() const; - - virtual void Freeze (); - virtual void Thaw (); - virtual void Update (); - - // functions for editing/timer - void OnRenameTimer(); - bool OnRenameAccept(long itemEdit, const wxString& value); - void OnRenameCancelled(long itemEdit); - - void ChangeCurrent(long current); - void ResetCurrent() { ChangeCurrent((long)-1); } - bool HasCurrent() const { return m_current != (long)-1; } - - void OnLeftDown(wxMouseEvent& event); - void OnDblClick(wxMouseEvent& event); - - void FinishEditing(wxTextCtrl *text) - { - delete text; - m_textctrlWrapper = NULL; - SetFocus(); - } - - virtual int GetScrollPos(int orient) const; - - void OnRightDown(wxMouseEvent& event); - void OnMiddleDown(wxMouseEvent& event); - void OnChar(wxKeyEvent& event); - virtual void SetFocus(); - void FireMouseEvent(wxEventType eventType, wxPoint position); - - virtual void SetDropTarget( wxDropTarget *dropTarget ); - virtual wxDropTarget* GetDropTarget() const; - - // with CG, we need to get the context from an kEventControlDraw event - // unfortunately, the DataBrowser callbacks don't provide the context - // and we need it, so we need to set/remove it before and after draw - // events so we can access it in the callbacks. - void MacSetDrawingContext(void* context) { m_cgContext = context; } - void* MacGetDrawingContext() { return m_cgContext; } - - virtual wxVisualAttributes GetDefaultAttributes() const - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); - -protected: - // Implement base class pure virtual methods. - long DoInsertColumn(long col, const wxListItem& info); - - // protected overrides needed for pimpl approach - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - - long m_current; - wxListCtrlTextCtrlWrapper *m_textctrlWrapper; - wxListCtrlRenameTimer *m_renameTimer; - // common part of all ctors - void Init(); - - wxGenericListCtrl* m_genericImpl; // allow use of the generic impl. - wxMacDataBrowserListCtrlControl* m_dbImpl; - void* m_macListCtrlEventHandler; - void* m_cgContext; - wxListCtrlCompare m_compareFunc; - wxIntPtr m_compareFuncData; - - wxTextCtrl* m_textCtrl; // The control used for editing a label - wxImageList * m_imageListNormal; // The image list for normal icons - wxImageList * m_imageListSmall; // The image list for small icons - wxImageList * m_imageListState; // The image list state icons (not implemented yet) - - wxColumnList m_colsInfo; // for storing info about each column - wxColour m_textColor; - wxColour m_bgColor; - - // keep track of whether or not we should delete the image list ourselves. - bool m_ownsImageListNormal, - m_ownsImageListSmall, - m_ownsImageListState; - - long m_baseStyle; // Basic Windows style flags, for recreation purposes - int m_colCount; // Windows doesn't have GetColumnCount so must - // keep track of inserted/deleted columns - - int m_count; // for virtual lists, store item count - -private: - int CalcColumnAutoWidth(int col) const; - -}; - -#endif - // _WX_LISTCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/mdi.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/mdi.h deleted file mode 100644 index 2bca0638..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/mdi.h +++ /dev/null @@ -1,153 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/mdi.h -// Purpose: MDI (Multiple Document Interface) classes. -// Author: Stefan Csomor -// Modified by: 2008-10-31 Vadim Zeitlin: derive from the base classes -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// (c) 2008 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_CARBON_MDI_H_ -#define _WX_OSX_CARBON_MDI_H_ - -class WXDLLIMPEXP_CORE wxMDIParentFrame : public wxMDIParentFrameBase -{ -public: - wxMDIParentFrame() { Init(); } - wxMDIParentFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr) - { - Init(); - Create(parent, id, title, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr); - - virtual ~wxMDIParentFrame(); - - // implement/override base class [pure] virtuals - // --------------------------------------------- - - static bool IsTDI() { return false; } - - virtual void AddChild(wxWindowBase *child) wxOVERRIDE; - virtual void RemoveChild(wxWindowBase *child) wxOVERRIDE; - - virtual void ActivateNext() wxOVERRIDE { /* TODO */ } - virtual void ActivatePrevious() wxOVERRIDE { /* TODO */ } - - virtual bool Show(bool show = true) wxOVERRIDE; - - - // Mac-specific implementation from now on - // --------------------------------------- - - // Mac OS activate event - virtual void MacActivate(long timestamp, bool activating) wxOVERRIDE; - - // wxWidgets activate event - void OnActivate(wxActivateEvent& event); - void OnSysColourChanged(wxSysColourChangedEvent& event); - - void SetMenuBar(wxMenuBar *menu_bar) wxOVERRIDE; - - // Get rect to be used to center top-level children - virtual void GetRectForTopLevelChildren(int *x, int *y, int *w, int *h) wxOVERRIDE; - -protected: - // common part of all ctors - void Init(); - - // returns true if this frame has some contents and so should be visible, - // false if it's used solely as container for its children - bool ShouldBeVisible() const; - - - wxMenu *m_windowMenu; - - // true if MDI Frame is intercepting commands, not child - bool m_parentFrameActive; - - // true if the frame should be shown but is not because it is empty and - // useless otherwise than a container for its children - bool m_shouldBeShown; - -private: - friend class WXDLLIMPEXP_FWD_CORE wxMDIChildFrame; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxMDIParentFrame); -}; - -class WXDLLIMPEXP_CORE wxMDIChildFrame : public wxMDIChildFrameBase -{ -public: - wxMDIChildFrame() { Init(); } - wxMDIChildFrame(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Init() ; - Create(parent, id, title, pos, size, style, name); - } - - bool Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - virtual ~wxMDIChildFrame(); - - // un-override the base class override - virtual bool IsTopLevel() const { return true; } - - // implement MDI operations - virtual void Activate(); - - - // Mac OS activate event - virtual void MacActivate(long timestamp, bool activating); - -protected: - // common part of all ctors - void Init(); - - wxDECLARE_DYNAMIC_CLASS(wxMDIChildFrame); -}; - -class WXDLLIMPEXP_CORE wxMDIClientWindow : public wxMDIClientWindowBase -{ -public: - wxMDIClientWindow() { } - virtual ~wxMDIClientWindow(); - - virtual bool CreateClient(wxMDIParentFrame *parent, - long style = wxVSCROLL | wxHSCROLL); - -protected: - virtual void DoGetClientSize(int *width, int *height) const; - - wxDECLARE_DYNAMIC_CLASS(wxMDIClientWindow); -}; - -#endif // _WX_OSX_CARBON_MDI_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/menu.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/menu.h deleted file mode 100644 index 19886d2b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/menu.h +++ /dev/null @@ -1,187 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/menu.h -// Purpose: wxMenu, wxMenuBar classes -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MENU_H_ -#define _WX_MENU_H_ - -class WXDLLIMPEXP_FWD_CORE wxFrame; - -#include "wx/arrstr.h" - -// ---------------------------------------------------------------------------- -// Menu -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxMenuImpl ; - -class WXDLLIMPEXP_CORE wxMenu : public wxMenuBase -{ -public: - // ctors & dtor - wxMenu(const wxString& title, long style = 0) - : wxMenuBase(title, style) { Init(); } - - wxMenu(long style = 0) : wxMenuBase(style) { Init(); } - - virtual ~wxMenu(); - - virtual void Break(); - - virtual void SetTitle(const wxString& title); - - bool ProcessCommand(wxCommandEvent& event); - - // get the menu handle - WXHMENU GetHMenu() const ; - - // implementation only from now on - // ------------------------------- - - bool HandleCommandUpdateStatus( wxMenuItem* menuItem, wxWindow* senderWindow = NULL); - bool HandleCommandProcess( wxMenuItem* menuItem, wxWindow* senderWindow = NULL); - void HandleMenuItemHighlighted( wxMenuItem* menuItem ); - void HandleMenuOpened(); - void HandleMenuClosed(); - - wxMenuImpl* GetPeer() { return m_peer; } - - // make sure we can veto - void SetAllowRearrange( bool allow ); - bool AllowRearrange() const { return m_allowRearrange; } - - // if a menu is used purely for internal implementation reasons (eg wxChoice) - // we don't want native menu events being triggered - void SetNoEventsMode( bool noEvents ); - bool GetNoEventsMode() const { return m_noEventsMode; } -protected: - // hide special menu items like exit, preferences etc - // that are expected in the app menu - void DoRearrange() ; - - virtual wxMenuItem* DoAppend(wxMenuItem *item); - virtual wxMenuItem* DoInsert(size_t pos, wxMenuItem *item); - virtual wxMenuItem* DoRemove(wxMenuItem *item); - -private: - // common part of all ctors - void Init(); - - // common part of Do{Append,Insert}(): behaves as Append if pos == -1 - bool DoInsertOrAppend(wxMenuItem *item, size_t pos = (size_t)-1); - - // Common part of HandleMenu{Opened,Closed}(). - void DoHandleMenuOpenedOrClosed(wxEventType evtType); - - - // if TRUE, insert a break before appending the next item - bool m_doBreak; - - // in this menu rearranging of menu items (esp hiding) is allowed - bool m_allowRearrange; - - // don't trigger native events - bool m_noEventsMode; - - wxMenuImpl* m_peer; - - wxDECLARE_DYNAMIC_CLASS(wxMenu); -}; - -#if wxOSX_USE_COCOA_OR_CARBON - -// the iphone only has popup-menus - -// ---------------------------------------------------------------------------- -// Menu Bar (a la Windows) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMenuBar : public wxMenuBarBase -{ -public: - // ctors & dtor - // default constructor - wxMenuBar(); - // unused under MSW - wxMenuBar(long style); - // menubar takes ownership of the menus arrays but copies the titles - wxMenuBar(size_t n, wxMenu *menus[], const wxString titles[], long style = 0); - virtual ~wxMenuBar(); - - // menubar construction - virtual bool Append( wxMenu *menu, const wxString &title ); - virtual bool Insert(size_t pos, wxMenu *menu, const wxString& title); - virtual wxMenu *Replace(size_t pos, wxMenu *menu, const wxString& title); - virtual wxMenu *Remove(size_t pos); - - virtual void EnableTop( size_t pos, bool flag ); - virtual bool IsEnabledTop(size_t pos) const; - virtual void SetMenuLabel( size_t pos, const wxString& label ); - virtual wxString GetMenuLabel( size_t pos ) const; - virtual bool Enable( bool enable = true ); - // for virtual function hiding - virtual void Enable( int itemid, bool enable ) - { - wxMenuBarBase::Enable( itemid, enable ); - } - - // implementation from now on - void Detach(); - - // returns TRUE if we're attached to a frame - bool IsAttached() const { return m_menuBarFrame != NULL; } - // get the frame we live in - wxFrame *GetFrame() const { return m_menuBarFrame; } - // attach to a frame - void Attach(wxFrame *frame); - - // if the menubar is modified, the display is not updated automatically, - // call this function to update it (m_menuBarFrame should be !NULL) - void Refresh(bool eraseBackground = true, const wxRect *rect = NULL); - -#if wxABI_VERSION >= 30001 - wxMenu *OSXGetAppleMenu() const { return m_appleMenu; } -#endif - - static void SetAutoWindowMenu( bool enable ) { s_macAutoWindowMenu = enable ; } - static bool GetAutoWindowMenu() { return s_macAutoWindowMenu ; } - - void MacUninstallMenuBar() ; - void MacInstallMenuBar() ; - static wxMenuBar* MacGetInstalledMenuBar() { return s_macInstalledMenuBar ; } - static void MacSetCommonMenuBar(wxMenuBar* menubar) { s_macCommonMenuBar=menubar; } - static wxMenuBar* MacGetCommonMenuBar() { return s_macCommonMenuBar; } - - - static WXHMENU MacGetWindowMenuHMenu() { return s_macWindowMenuHandle ; } - - virtual void DoGetPosition(int *x, int *y) const; - virtual void DoGetSize(int *width, int *height) const; - virtual void DoGetClientSize(int *width, int *height) const; - -protected: - // common part of all ctors - void Init(); - - static bool s_macAutoWindowMenu ; - static WXHMENU s_macWindowMenuHandle ; - -private: - static wxMenuBar* s_macInstalledMenuBar ; - static wxMenuBar* s_macCommonMenuBar ; - - wxMenu* m_rootMenu; - wxMenu* m_appleMenu; - - wxDECLARE_DYNAMIC_CLASS(wxMenuBar); -}; - -#endif - -#endif // _WX_MENU_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/menuitem.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/menuitem.h deleted file mode 100644 index b5e00008..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/menuitem.h +++ /dev/null @@ -1,98 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/menuitem.h -// Purpose: wxMenuItem class -// Author: Vadim Zeitlin -// Modified by: -// Created: 11.11.97 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _MENUITEM_H -#define _MENUITEM_H - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" -#include "wx/bitmap.h" - -// ---------------------------------------------------------------------------- -// wxMenuItem: an item in the menu, optionally implements owner-drawn behaviour -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxMenuItemImpl ; - -class WXDLLIMPEXP_CORE wxMenuItem: public wxMenuItemBase -{ -public: - // ctor & dtor - wxMenuItem(wxMenu *parentMenu = NULL, - int id = wxID_SEPARATOR, - const wxString& name = wxEmptyString, - const wxString& help = wxEmptyString, - wxItemKind kind = wxITEM_NORMAL, - wxMenu *subMenu = NULL); - virtual ~wxMenuItem(); - - // override base class virtuals - virtual void SetItemLabel(const wxString& strName); - - virtual void Enable(bool bDoEnable = true); - virtual void Check(bool bDoCheck = true); - - virtual void SetBitmap(const wxBitmap& bitmap) ; - virtual const wxBitmap& GetBitmap() const { return m_bitmap; } - - - // Implementation only from now on. - - // update the os specific representation - void UpdateItemBitmap() ; - void UpdateItemText() ; - void UpdateItemStatus() ; - - // mark item as belonging to the given radio group - void SetAsRadioGroupStart(bool start = true); - void SetRadioGroupStart(int start); - void SetRadioGroupEnd(int end); - - // return true if this is the starting item of a radio group - bool IsRadioGroupStart() const; - - // get the start of the radio group this item belongs to: should not be - // called for the starting radio group item itself because it doesn't have - // this information - int GetRadioGroupStart() const; - - // get the end of the radio group this item belongs to: should be only - // called for the starting radio group item, i.e. if IsRadioGroupStart() is - // true - int GetRadioGroupEnd() const; - - wxMenuItemImpl* GetPeer() { return m_peer; } -private: - void UncheckRadio() ; - - // the positions of the first and last items of the radio group this item - // belongs to or -1: start is the radio group start and is valid for all - // but first radio group items (m_isRadioGroupStart == FALSE), end is valid - // only for the first one - union - { - int start; - int end; - } m_radioGroup; - - // does this item start a radio group? - bool m_isRadioGroupStart; - - wxBitmap m_bitmap; // Bitmap for menuitem, if any - - wxMenuItemImpl* m_peer; - - wxDECLARE_DYNAMIC_CLASS(wxMenuItem); -}; - -#endif //_MENUITEM_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/metafile.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/metafile.h deleted file mode 100644 index 1851a08c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/metafile.h +++ /dev/null @@ -1,170 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/metafile.h -// Purpose: wxMetaFile, wxMetaFileDC classes. -// This probably should be restricted to Windows platforms, -// but if there is an equivalent on your platform, great. -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef _WX_METAFIILE_H_ -#define _WX_METAFIILE_H_ - -#include "wx/dc.h" -#include "wx/gdiobj.h" - -#if wxUSE_DATAOBJ -#include "wx/dataobj.h" -#endif - -#include "wx/osx/dcclient.h" - -/* - * Metafile and metafile device context classes - * - */ - -#define wxMetaFile wxMetafile -#define wxMetaFileDC wxMetafileDC - -class WXDLLIMPEXP_FWD_CORE wxMetafile; -class wxMetafileRefData ; - -#define M_METAFILEDATA ((wxMetafileRefData *)m_refData) - -class WXDLLIMPEXP_CORE wxMetafile : public wxGDIObject -{ -public: - wxMetafile(const wxString& file = wxEmptyString); - virtual ~wxMetafile(void); - - // After this is called, the metafile cannot be used for anything - // since it is now owned by the clipboard. - virtual bool SetClipboard(int width = 0, int height = 0); - - virtual bool Play(wxDC *dc); - - wxSize GetSize() const; - int GetWidth() const { return GetSize().x; } - int GetHeight() const { return GetSize().y; } - - // Implementation - WXHMETAFILE GetHMETAFILE() const ; - void SetHMETAFILE(WXHMETAFILE mf) ; -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - - wxDECLARE_DYNAMIC_CLASS(wxMetafile); -}; - - -class WXDLLIMPEXP_CORE wxMetafileDCImpl: public wxGCDCImpl -{ -public: - wxMetafileDCImpl( wxDC *owner, - const wxString& filename, - int width, int height, - const wxString& description ); - - virtual ~wxMetafileDCImpl(); - - // Should be called at end of drawing - virtual wxMetafile *Close(); - - // Implementation - wxMetafile *GetMetaFile(void) const { return m_metaFile; } - void SetMetaFile(wxMetafile *mf) { m_metaFile = mf; } - -protected: - virtual void DoGetSize(int *width, int *height) const; - - wxMetafile* m_metaFile; - -private: - wxDECLARE_CLASS(wxMetafileDCImpl); - wxDECLARE_NO_COPY_CLASS(wxMetafileDCImpl); -}; - -class WXDLLIMPEXP_CORE wxMetafileDC: public wxDC -{ - public: - // the ctor parameters specify the filename (empty for memory metafiles), - // the metafile picture size and the optional description/comment - wxMetafileDC( const wxString& filename = wxEmptyString, - int width = 0, int height = 0, - const wxString& description = wxEmptyString ) : - wxDC( new wxMetafileDCImpl( this, filename, width, height, description) ) - { } - - wxMetafile *GetMetafile() const - { return ((wxMetafileDCImpl*)m_pimpl)->GetMetaFile(); } - - wxMetafile *Close() - { return ((wxMetafileDCImpl*)m_pimpl)->Close(); } - -private: - wxDECLARE_CLASS(wxMetafileDC); - wxDECLARE_NO_COPY_CLASS(wxMetafileDC); -}; - - -/* - * Pass filename of existing non-placeable metafile, and bounding box. - * Adds a placeable metafile header, sets the mapping mode to anisotropic, - * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode. - * - */ - -// No origin or extent -#define wxMakeMetaFilePlaceable wxMakeMetafilePlaceable -bool WXDLLIMPEXP_CORE wxMakeMetafilePlaceable(const wxString& filename, float scale = 1.0); - -// Optional origin and extent -bool WXDLLIMPEXP_CORE wxMakeMetaFilePlaceable(const wxString& filename, int x1, int y1, int x2, int y2, float scale = 1.0, bool useOriginAndExtent = true); - -// ---------------------------------------------------------------------------- -// wxMetafileDataObject is a specialization of wxDataObject for metafile data -// ---------------------------------------------------------------------------- - -#if wxUSE_DATAOBJ -class WXDLLIMPEXP_CORE wxMetafileDataObject : public wxDataObjectSimple -{ -public: - // ctors - wxMetafileDataObject() - : wxDataObjectSimple(wxDF_METAFILE) { } - wxMetafileDataObject(const wxMetafile& metafile) - : wxDataObjectSimple(wxDF_METAFILE), m_metafile(metafile) { } - - // virtual functions which you may override if you want to provide data on - // demand only - otherwise, the trivial default versions will be used - virtual void SetMetafile(const wxMetafile& metafile) - { m_metafile = metafile; } - virtual wxMetafile GetMetafile() const - { return m_metafile; } - - // implement base class pure virtuals - virtual size_t GetDataSize() const; - virtual bool GetDataHere(void *buf) const; - virtual bool SetData(size_t len, const void *buf); - - virtual size_t GetDataSize(const wxDataFormat& WXUNUSED(format)) const - { return GetDataSize(); } - virtual bool GetDataHere(const wxDataFormat& WXUNUSED(format), - void *buf) const - { return GetDataHere(buf); } - virtual bool SetData(const wxDataFormat& WXUNUSED(format), - size_t len, const void *buf) - { return SetData(len, buf); } -protected: - wxMetafile m_metafile; -}; -#endif - -#endif - // _WX_METAFIILE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/mimetype.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/mimetype.h deleted file mode 100644 index e6e6eb0c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/mimetype.h +++ /dev/null @@ -1 +0,0 @@ -#include "wx/osx/core/mimetype.h" diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/minifram.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/minifram.h deleted file mode 100644 index a4180f97..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/minifram.h +++ /dev/null @@ -1,41 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/minifram.h -// Purpose: wxMiniFrame class. A small frame for e.g. floating toolbars. -// If there is no equivalent on your platform, just make it a -// normal frame. -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MINIFRAM_H_ -#define _WX_MINIFRAM_H_ - -#include "wx/frame.h" - -class WXDLLIMPEXP_CORE wxMiniFrame: public wxFrame { - - wxDECLARE_DYNAMIC_CLASS(wxMiniFrame); - -public: - wxMiniFrame() {} - wxMiniFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCAPTION | wxRESIZE_BORDER | wxTINY_CAPTION, - const wxString& name = wxFrameNameStr) - { - // Use wxFrame constructor in absence of more specific code. - Create(parent, id, title, pos, size, style | wxFRAME_TOOL_WINDOW | wxFRAME_FLOAT_ON_PARENT , name); - } - - virtual ~wxMiniFrame() {} -protected: -}; - -#endif - // _WX_MINIFRAM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/msgdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/msgdlg.h deleted file mode 100644 index c4257aff..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/msgdlg.h +++ /dev/null @@ -1,54 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/msgdlg.h -// Purpose: wxMessageDialog class. Use generic version if no -// platform-specific implementation. -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSGBOXDLG_H_ -#define _WX_MSGBOXDLG_H_ - -class WXDLLIMPEXP_CORE wxMessageDialog : public wxMessageDialogBase -{ -public: - wxMessageDialog(wxWindow *parent, - const wxString& message, - const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, - const wxPoint& pos = wxDefaultPosition); - -#if wxOSX_USE_COCOA - ~wxMessageDialog(); -#endif - - virtual int ShowModal(); - -#if wxOSX_USE_COCOA - virtual void ShowWindowModal(); - virtual void ModalFinishedCallback(void* panel, int resultCode); -#endif - -protected: - // not supported for message dialog - virtual void DoSetSize(int WXUNUSED(x), int WXUNUSED(y), - int WXUNUSED(width), int WXUNUSED(height), - int WXUNUSED(sizeFlags) = wxSIZE_AUTO) {} - -#if wxOSX_USE_COCOA - void* ConstructNSAlert(); -#endif - - int m_buttonId[4]; - int m_buttonCount; - -#if wxOSX_USE_COCOA - WX_NSObject m_sheetDelegate; -#endif - wxDECLARE_DYNAMIC_CLASS(wxMessageDialog); -}; - -#endif // _WX_MSGBOXDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/nonownedwnd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/nonownedwnd.h deleted file mode 100644 index 9b0d3bea..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/nonownedwnd.h +++ /dev/null @@ -1,163 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/nonownedwnd.h -// Purpose: declares wxNonOwnedWindow class -// Author: Stefan Csomor -// Modified by: -// Created: 2008-03-24 -// Copyright: (c) 2008 Stefan Csomor -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MAC_NONOWNEDWND_H_ -#define _WX_MAC_NONOWNEDWND_H_ - -#include "wx/window.h" - -#include "wx/graphics.h" - -#if wxUSE_SYSTEM_OPTIONS - #define wxMAC_WINDOW_PLAIN_TRANSITION wxT("mac.window-plain-transition") -#endif - -//----------------------------------------------------------------------------- -// wxNonOwnedWindow -//----------------------------------------------------------------------------- - -// This class represents "non-owned" window. A window is owned by another -// window if it has a parent and is positioned within the parent. For example, -// wxFrame is non-owned, because even though it can have a parent, it's -// location is independent of it. This class is for internal use only, it's -// the base class for wxTopLevelWindow and wxPopupWindow. - -class wxNonOwnedWindowImpl; - -class WXDLLIMPEXP_CORE wxNonOwnedWindow : public wxNonOwnedWindowBase -{ -public: - // constructors and such - wxNonOwnedWindow() { Init(); } - - wxNonOwnedWindow(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - { - Init(); - - (void)Create(parent, id, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - - bool Create(wxWindow *parent, WXWindow nativeWindow); - - virtual ~wxNonOwnedWindow(); - - virtual void SubclassWin(WXWindow nativeWindow); - virtual void UnsubclassWin(); - - virtual wxPoint GetClientAreaOrigin() const; - - // implement base class pure virtuals - - virtual bool SetTransparent(wxByte alpha); - virtual bool CanSetTransparent(); - - virtual bool SetBackgroundStyle(wxBackgroundStyle style); - - virtual void Update(); - - WXWindow GetWXWindow() const ; - static wxNonOwnedWindow* GetFromWXWindow( WXWindow win ); - - // implementation from now on - // -------------------------- - - // These accessors are Mac-specific and don't exist in other ports. - const wxRegion& GetShape() const { return m_shape; } -#if wxUSE_GRAPHICS_CONTEXT - const wxGraphicsPath& GetShapePath() { return m_shapePath; } -#endif // wxUSE_GRAPHICS_CONTEXT - - // activation hooks only necessary for MDI Implementation - static void MacDelayedDeactivation(long timestamp); - virtual void MacActivate( long timestamp , bool inIsActivating ) ; - - virtual void SetWindowStyleFlag(long flags); - - virtual void Raise(); - virtual void Lower(); - virtual bool Show( bool show = true ); - - virtual void SetExtraStyle(long exStyle) ; - - virtual bool SetBackgroundColour( const wxColour &colour ); - - wxNonOwnedWindowImpl* GetNonOwnedPeer() const { return m_nowpeer; } - -#if wxOSX_USE_COCOA_OR_IPHONE - // override the base class method to return an NSWindow instead of NSView - virtual void *OSXGetViewOrWindow() const; -#endif // Cocoa - - // osx specific event handling common for all osx-ports - - virtual void HandleActivated( double timestampsec, bool didActivate ); - virtual void HandleResized( double timestampsec ); - virtual void HandleMoved( double timestampsec ); - virtual void HandleResizing( double timestampsec, wxRect* rect ); - - void OSXHandleMiniaturize(double WXUNUSED(timestampsec), bool miniaturized); - - void WindowWasPainted(); - - virtual bool Destroy(); - -protected: - // common part of all ctors - void Init(); - - virtual void DoGetPosition( int *x, int *y ) const; - virtual void DoGetSize( int *width, int *height ) const; - virtual void DoMoveWindow(int x, int y, int width, int height); - virtual void DoGetClientSize(int *width, int *height) const; - - virtual bool OSXShowWithEffect(bool show, - wxShowEffect effect, - unsigned timeout); - - virtual bool DoClearShape(); - virtual bool DoSetRegionShape(const wxRegion& region); -#if wxUSE_GRAPHICS_CONTEXT - virtual bool DoSetPathShape(const wxGraphicsPath& path); -#endif // wxUSE_GRAPHICS_CONTEXT - - virtual void WillBeDestroyed(); - - wxNonOwnedWindowImpl* m_nowpeer ; - -// wxWindowMac* m_macFocus ; - - static wxNonOwnedWindow *s_macDeactivateWindow; - -private : - static clock_t s_lastFlush; - - wxRegion m_shape; -#if wxUSE_GRAPHICS_CONTEXT - wxGraphicsPath m_shapePath; -#endif // wxUSE_GRAPHICS_CONTEXT -}; - -// list of all frames and modeless dialogs -extern WXDLLIMPEXP_DATA_CORE(wxWindowList) wxModelessWindows; - - -#endif // _WX_MAC_NONOWNEDWND_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/notebook.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/notebook.h deleted file mode 100644 index c8e706f0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/notebook.h +++ /dev/null @@ -1,140 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/notebook.h -// Purpose: MSW/GTK compatible notebook (a.k.a. property sheet) -// Author: Stefan Csomor -// Modified by: -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_NOTEBOOK_H_ -#define _WX_NOTEBOOK_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#include "wx/event.h" - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -// fwd declarations -class WXDLLIMPEXP_FWD_CORE wxImageList; -class WXDLLIMPEXP_FWD_CORE wxWindow; - -// ---------------------------------------------------------------------------- -// wxNotebook -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxNotebook : public wxNotebookBase -{ -public: - // ctors - // ----- - // default for dynamic class - wxNotebook() { } - // the same arguments as for wxControl (@@@ any special styles?) - wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxNotebookNameStr) - { Create( parent, id, pos, size, style, name ); } - // Create() function - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxNotebookNameStr); - // dtor - virtual ~wxNotebook(); - - // accessors - // --------- - // set the currently selected page, return the index of the previously - // selected one (or wxNOT_FOUND on error) - // NB: this function will _not_ generate wxEVT_NOTEBOOK_PAGE_xxx events - int SetSelection(size_t nPage) wxOVERRIDE { return DoSetSelection(nPage, SetSelection_SendEvent); } - - // changes selected page without sending events - int ChangeSelection(size_t nPage) wxOVERRIDE { return DoSetSelection(nPage); } - - // set/get the title of a page - bool SetPageText(size_t nPage, const wxString& strText) wxOVERRIDE; - wxString GetPageText(size_t nPage) const wxOVERRIDE; - - // sets/returns item's image index in the current image list - int GetPageImage(size_t nPage) const wxOVERRIDE; - bool SetPageImage(size_t nPage, int nImage) wxOVERRIDE; - - // control the appearance of the notebook pages - // set the size (the same for all pages) - virtual void SetPageSize(const wxSize& size) wxOVERRIDE; - // set the padding between tabs (in pixels) - virtual void SetPadding(const wxSize& padding) wxOVERRIDE; - // sets the size of the tabs (assumes all tabs are the same size) - virtual void SetTabSize(const wxSize& sz) wxOVERRIDE; - - // hit test - virtual int HitTest(const wxPoint& pt, long *flags = NULL) const wxOVERRIDE; - - // calculate size for wxNotebookSizer - wxSize CalcSizeFromPage(const wxSize& sizePage) const wxOVERRIDE; - wxRect GetPageRect() const wxOVERRIDE; - - // operations - // ---------- - // remove all pages - bool DeleteAllPages() wxOVERRIDE; - // the same as AddPage(), but adds it at the specified position - bool InsertPage(size_t nPage, - wxNotebookPage *pPage, - const wxString& strText, - bool bSelect = false, - int imageId = NO_IMAGE) wxOVERRIDE; - - // callbacks - // --------- - void OnSize(wxSizeEvent& event); - void OnSetFocus(wxFocusEvent& event); - void OnNavigationKey(wxNavigationKeyEvent& event); - - // implementation - // -------------- - -#if wxUSE_CONSTRAINTS - virtual void SetConstraintSizes(bool recurse = true) wxOVERRIDE; - virtual bool DoPhase(int nPhase) wxOVERRIDE; - -#endif - - // base class virtuals - // ------------------- - virtual void Command(wxCommandEvent& event) wxOVERRIDE; - // osx specific event handling common for all osx-ports - - virtual bool OSXHandleClicked( double timestampsec ) wxOVERRIDE; - -protected: - virtual wxNotebookPage *DoRemovePage(size_t page) wxOVERRIDE; - // common part of all ctors - void Init(); - - // helper functions - void ChangePage(int nOldSel, int nSel); // change pages - void MacSetupTabs(); - - int DoSetSelection(size_t nPage, int flags = 0) wxOVERRIDE; - - // the icon indices - wxArrayInt m_images; - - wxDECLARE_DYNAMIC_CLASS(wxNotebook); - wxDECLARE_EVENT_TABLE(); -}; - - -#endif // _WX_NOTEBOOK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/palette.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/palette.h deleted file mode 100644 index 7c695ec1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/palette.h +++ /dev/null @@ -1,40 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/palette.h -// Purpose: wxPalette class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PALETTE_H_ -#define _WX_PALETTE_H_ - -#include "wx/gdiobj.h" - -#define M_PALETTEDATA ((wxPaletteRefData *)m_refData) - -class WXDLLIMPEXP_CORE wxPalette : public wxPaletteBase -{ -public: - wxPalette(); - - wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); - virtual ~wxPalette(); - bool Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); - - int GetPixel(unsigned char red, unsigned char green, unsigned char blue) const; - bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const; - - virtual int GetColoursCount() const; - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - -private: - wxDECLARE_DYNAMIC_CLASS(wxPalette); -}; - -#endif // _WX_PALETTE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/pen.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/pen.h deleted file mode 100644 index c203e2fa..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/pen.h +++ /dev/null @@ -1,75 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/pen.h -// Purpose: wxPen class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PEN_H_ -#define _WX_PEN_H_ - -#include "wx/gdiobj.h" -#include "wx/colour.h" -#include "wx/bitmap.h" - -// Pen -class WXDLLIMPEXP_CORE wxPen : public wxPenBase -{ -public: - wxPen(); - wxPen(const wxColour& col, int width = 1, wxPenStyle style = wxPENSTYLE_SOLID); - - wxPen(const wxBitmap& stipple, int width); - virtual ~wxPen(); - - bool operator==(const wxPen& pen) const; - bool operator!=(const wxPen& pen) const { return !(*this == pen); } - - // Override in order to recreate the pen - void SetColour(const wxColour& col) ; - void SetColour(unsigned char r, unsigned char g, unsigned char b) ; - - void SetWidth(int width) ; - void SetStyle(wxPenStyle style) ; - void SetStipple(const wxBitmap& stipple) ; - void SetDashes(int nb_dashes, const wxDash *dash) ; - void SetJoin(wxPenJoin join) ; - void SetCap(wxPenCap cap) ; - - wxColour GetColour() const ; - int GetWidth() const; - wxPenStyle GetStyle() const; - wxPenJoin GetJoin() const; - wxPenCap GetCap() const; - int GetDashes(wxDash **ptr) const; - int GetDashCount() const; - - wxBitmap *GetStipple() const ; - - - wxDEPRECATED_MSG("use wxPENSTYLE_XXX constants") - wxPen(const wxColour& col, int width, int style); - - wxDEPRECATED_MSG("use wxPENSTYLE_XXX constants") - void SetStyle(int style) { SetStyle((wxPenStyle)style); } - - // Implementation - - // Useful helper: create the brush resource - bool RealizeResource(); - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - -private: - void Unshare(); - - wxDECLARE_DYNAMIC_CLASS(wxPen); -}; - -#endif - // _WX_PEN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/popupwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/popupwin.h deleted file mode 100644 index 21065feb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/popupwin.h +++ /dev/null @@ -1,35 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/popupwin.h -// Purpose: wxPopupWindow class for wxMac -// Author: Stefan Csomor -// Modified by: -// Created: -// Copyright: (c) 2006 Stefan Csomor -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MAC_POPUPWIN_H_ -#define _WX_MAC_POPUPWIN_H_ - -// ---------------------------------------------------------------------------- -// wxPopupWindow -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPopupWindow : public wxPopupWindowBase -{ -public: - wxPopupWindow() { } - ~wxPopupWindow(); - - wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE) - { (void)Create(parent, flags); } - - bool Create(wxWindow *parent, int flags = wxBORDER_NONE); - - virtual bool Show(bool show = true); - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxPopupWindow); -}; - -#endif // _WX_MAC_POPUPWIN_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/printdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/printdlg.h deleted file mode 100644 index 83fbd58d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/printdlg.h +++ /dev/null @@ -1,111 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/printdlg.h -// Purpose: wxPrintDialog, wxPageSetupDialog classes. -// Use generic, PostScript version if no -// platform-specific implementation. -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRINTDLG_H_ -#define _WX_PRINTDLG_H_ - -#include "wx/dialog.h" -#include "wx/cmndata.h" -#include "wx/printdlg.h" -#include "wx/prntbase.h" - -/* - * wxMacPrintDialog - * The Mac dialog for printing - */ - -class WXDLLIMPEXP_FWD_CORE wxDC; -class WXDLLIMPEXP_CORE wxMacPrintDialog: public wxPrintDialogBase -{ -public: - wxMacPrintDialog(); - wxMacPrintDialog(wxWindow *parent, wxPrintDialogData* data = NULL); - wxMacPrintDialog(wxWindow *parent, wxPrintData* data ); - virtual ~wxMacPrintDialog(); - - bool Create(wxWindow *parent, wxPrintDialogData* data = NULL); - virtual int ShowModal(); - - virtual wxPrintDialogData& GetPrintDialogData() { return m_printDialogData; } - virtual wxPrintData& GetPrintData() { return m_printDialogData.GetPrintData(); } - virtual wxDC *GetPrintDC(); - -private: - wxPrintDialogData m_printDialogData; - wxDC* m_printerDC; - bool m_destroyDC; - wxWindow* m_dialogParent; - -private: - wxDECLARE_DYNAMIC_CLASS(wxPrintDialog); -}; - -/* - * wxMacPageSetupDialog - * The Mac page setup dialog - */ - -class WXDLLIMPEXP_CORE wxMacPageSetupDialog: public wxPageSetupDialogBase -{ -public: - wxMacPageSetupDialog(wxWindow *parent, wxPageSetupDialogData *data = NULL); - virtual ~wxMacPageSetupDialog(); - - virtual wxPageSetupDialogData& GetPageSetupDialogData(); - - bool Create(wxWindow *parent, wxPageSetupDialogData *data = NULL); - virtual int ShowModal(); - -private: - wxPageSetupDialogData m_pageSetupData; - wxWindow* m_dialogParent; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxMacPageSetupDialog); -}; - -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; - -/* -* wxMacPageMarginsDialog -* A Mac dialog for setting the page margins separately from page setup since -* (native) wxMacPageSetupDialog doesn't let you set margins. -*/ - -class WXDLLIMPEXP_CORE wxMacPageMarginsDialog : public wxDialog -{ -public: - wxMacPageMarginsDialog(wxFrame* parent, wxPageSetupDialogData* data); - bool TransferToWindow(); - bool TransferDataFromWindow(); - - virtual wxPageSetupDialogData& GetPageSetupDialogData() { return *m_pageSetupDialogData; } - -private: - wxPageSetupDialogData* m_pageSetupDialogData; - - wxPoint m_MinMarginTopLeft; - wxPoint m_MinMarginBottomRight; - wxTextCtrl *m_LeftMargin; - wxTextCtrl *m_TopMargin; - wxTextCtrl *m_RightMargin; - wxTextCtrl *m_BottomMargin; - - void GetMinMargins(); - bool CheckValue(wxTextCtrl* textCtrl, int *value, int minValue, const wxString& name); - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxMacPageMarginsDialog); -}; - - -#endif // _WX_PRINTDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/printmac.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/printmac.h deleted file mode 100644 index caf4aca6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/printmac.h +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/printmac.h -// Purpose: wxWindowsPrinter, wxWindowsPrintPreview classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRINTWIN_H_ -#define _WX_PRINTWIN_H_ - -#include "wx/prntbase.h" - -/* - * Represents the printer: manages printing a wxPrintout object - */ - -class WXDLLIMPEXP_CORE wxMacPrinter: public wxPrinterBase -{ - wxDECLARE_DYNAMIC_CLASS(wxMacPrinter); - -public: - wxMacPrinter(wxPrintDialogData *data = NULL); - virtual ~wxMacPrinter(); - - virtual bool Print(wxWindow *parent, - wxPrintout *printout, - bool prompt = true); - virtual wxDC* PrintDialog(wxWindow *parent); - virtual bool Setup(wxWindow *parent); - -}; - -/* - * wxPrintPreview - * Programmer creates an object of this class to preview a wxPrintout. - */ - -class WXDLLIMPEXP_CORE wxMacPrintPreview: public wxPrintPreviewBase -{ - wxDECLARE_CLASS(wxMacPrintPreview); - -public: - wxMacPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting = NULL, - wxPrintDialogData *data = NULL); - wxMacPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting, - wxPrintData *data); - virtual ~wxMacPrintPreview(); - - virtual bool Print(bool interactive); - virtual void DetermineScaling(); -}; - -#endif - // _WX_PRINTWIN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private.h deleted file mode 100644 index 23fd0025..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef _WX_PRIVATE_OSX_H_ -#define _WX_PRIVATE_OSX_H_ - -#include "wx/osx/core/private.h" - -#if wxOSX_USE_IPHONE - #include "wx/osx/iphone/private.h" -#elif wxOSX_USE_COCOA - #include "wx/osx/cocoa/private.h" -#elif wxUSE_GUI - #error "Must include wx/defs.h first" -#endif - -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private/addremovectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private/addremovectrl.h deleted file mode 100644 index a5b342a8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private/addremovectrl.h +++ /dev/null @@ -1,117 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/private/addremovectrl.h -// Purpose: OS X specific wxAddRemoveImpl implementation -// Author: Vadim Zeitlin -// Created: 2015-02-05 -// Copyright: (c) 2015 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_PRIVATE_ADDREMOVECTRL_H_ -#define _WX_OSX_PRIVATE_ADDREMOVECTRL_H_ - -#include "wx/artprov.h" -#include "wx/bmpbuttn.h" -#include "wx/panel.h" - -#include "wx/osx/private.h" - -// ---------------------------------------------------------------------------- -// wxAddRemoveImpl itself -// ---------------------------------------------------------------------------- - -class wxAddRemoveImpl : public wxAddRemoveImplWithButtons -{ -public: - wxAddRemoveImpl(wxAddRemoveAdaptor* adaptor, - wxAddRemoveCtrl* parent, - wxWindow* ctrlItems) - : wxAddRemoveImplWithButtons(adaptor, parent, ctrlItems), - m_ctrlItems(ctrlItems) - { - // This size is hard coded for now as this is what the system dialogs - // themselves (e.g. the buttons under the lists in the "Users" or - // "Network" panes of the "System Preferences") use under OS X 10.8. - const wxSize sizeBtn(25, 23); - - m_btnAdd = new wxBitmapButton(parent, wxID_ADD, - wxArtProvider::GetBitmap("NSAddTemplate"), - wxDefaultPosition, - sizeBtn, - wxBORDER_SIMPLE); - - m_btnRemove = new wxBitmapButton(parent, wxID_REMOVE, - wxArtProvider::GetBitmap("NSRemoveTemplate"), - wxDefaultPosition, - sizeBtn, - wxBORDER_SIMPLE); - - // Under OS X the space to the right of the buttons is actually - // occupied by an inactive gradient button, so create one. - m_btnPlaceholder = new wxButton(parent, wxID_ANY, "", - wxDefaultPosition, - sizeBtn, - wxBORDER_SIMPLE); - m_btnPlaceholder->Disable(); - - - // We need to lay out our windows manually under OS X as it is the only - // way to achieve the required, for the correct look, overlap between - // their borders -- sizers would never allow this. - parent->Bind(wxEVT_SIZE, &wxAddRemoveImpl::OnSize, this); - - // We also have to ensure that the window with the items doesn't have - // any border as it wouldn't look correctly if it did. - long style = ctrlItems->GetWindowStyle(); - style &= ~wxBORDER_MASK; - style |= wxBORDER_SIMPLE; - ctrlItems->SetWindowStyle(style); - - - SetUpEvents(); - } - - // As we don't use sizers, we also need to compute our best size ourselves. - virtual wxSize GetBestClientSize() const wxOVERRIDE - { - wxSize size = m_ctrlItems->GetBestSize(); - - const wxSize sizeBtn = m_btnAdd->GetSize(); - - size.y += sizeBtn.y; - size.IncTo(wxSize(3*sizeBtn.x, -1)); - - return size; - } - -private: - void OnSize(wxSizeEvent& event) - { - const wxSize size = event.GetSize(); - - const wxSize sizeBtn = m_btnAdd->GetSize(); - - const int yBtn = size.y - sizeBtn.y; - - // There is a vertical overlap which hides the items control bottom - // border. - m_ctrlItems->SetSize(0, 0, size.x, yBtn + 2); - - // And there is also a horizontal 1px overlap between the buttons - // themselves, so subtract 1 from the next button position. - int x = 0; - m_btnAdd->Move(x, yBtn); - x += sizeBtn.x - 1; - - m_btnRemove->Move(x, yBtn); - x += sizeBtn.x - 1; - - // The last one needs to be resized to take up all the remaining space. - m_btnPlaceholder->SetSize(x, yBtn, size.x - x, sizeBtn.y); - } - - wxWindow* m_ctrlItems; - wxButton* /* const */ m_btnPlaceholder; -}; - -#endif // _WX_OSX_PRIVATE_ADDREMOVECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private/print.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private/print.h deleted file mode 100644 index 13c3d5cd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private/print.h +++ /dev/null @@ -1 +0,0 @@ -#include "wx/osx/carbon/private/print.h" diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private/timer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private/timer.h deleted file mode 100644 index 1eb8dd80..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/private/timer.h +++ /dev/null @@ -1,3 +0,0 @@ -#if 1 // revert to wxOSX_USE_COCOA_OR_IPHONE in case of problems - #include "wx/osx/core/private/timer.h" -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/radiobox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/radiobox.h deleted file mode 100644 index bbf61a7b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/radiobox.h +++ /dev/null @@ -1,109 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/radiobox.h -// Purpose: wxRadioBox class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBOX_H_ -#define _WX_RADIOBOX_H_ - -// List box item -class WXDLLIMPEXP_FWD_CORE wxBitmap ; - -class WXDLLIMPEXP_FWD_CORE wxRadioButton ; - -class WXDLLIMPEXP_CORE wxRadioBox: public wxControl, public wxRadioBoxBase -{ - wxDECLARE_DYNAMIC_CLASS(wxRadioBox); -public: -// Constructors & destructor - wxRadioBox(); - wxRadioBox(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, long style = wxRA_SPECIFY_COLS, - const wxValidator& val = wxDefaultValidator, const wxString& name = wxRadioBoxNameStr) - { - Create(parent, id, title, pos, size, n, choices, majorDim, style, val, name); - } - wxRadioBox(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - const wxArrayString& choices, - int majorDim = 0, long style = wxRA_SPECIFY_COLS, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxRadioBoxNameStr) - { - Create(parent, id, title, pos, size, choices, - majorDim, style, val, name); - } - virtual ~wxRadioBox(); - bool Create(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, long style = wxRA_SPECIFY_COLS, - const wxValidator& val = wxDefaultValidator, const wxString& name = wxRadioBoxNameStr); - bool Create(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - const wxArrayString& choices, - int majorDim = 0, long style = wxRA_SPECIFY_COLS, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxRadioBoxNameStr); - - // Enabling - virtual bool Enable(bool enable = true) wxOVERRIDE; - virtual bool Enable(unsigned int item, bool enable = true) wxOVERRIDE; - virtual bool IsItemEnabled(unsigned int item) const wxOVERRIDE; - - // Showing - virtual bool Show(bool show = true) wxOVERRIDE; - virtual bool Show(unsigned int item, bool show = true) wxOVERRIDE; - virtual bool IsItemShown(unsigned int item) const wxOVERRIDE; - - // Specific functions (in wxWidgets2 reference) - virtual void SetSelection(int item) wxOVERRIDE; - virtual int GetSelection() const wxOVERRIDE; - - virtual unsigned int GetCount() const wxOVERRIDE { return m_noItems; } - - virtual wxString GetString(unsigned int item) const wxOVERRIDE; - virtual void SetString(unsigned int item, const wxString& label) wxOVERRIDE; - - virtual wxString GetLabel() const wxOVERRIDE; - virtual void SetLabel(const wxString& label) wxOVERRIDE; - - // protect native font of box - virtual bool SetFont( const wxFont &font ) wxOVERRIDE; -// Other external functions - void Command(wxCommandEvent& event) wxOVERRIDE; - void SetFocus() wxOVERRIDE; - -// Other variable access functions - int GetNumberOfRowsOrCols() const { return m_noRowsOrCols; } - void SetNumberOfRowsOrCols(int n) { m_noRowsOrCols = n; } - - void OnRadioButton( wxCommandEvent& event ) ; - -protected: - // resolve ambiguity in base classes - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxRadioBoxBase::GetDefaultBorder(); } - - wxRadioButton *m_radioButtonCycle; - - unsigned int m_noItems; - int m_noRowsOrCols; - -// Internal functions - virtual wxSize DoGetBestSize() const wxOVERRIDE; - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO) wxOVERRIDE; - - wxDECLARE_EVENT_TABLE(); -}; - -#endif - // _WX_RADIOBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/radiobut.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/radiobut.h deleted file mode 100644 index 714d1984..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/radiobut.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/radiobut.h -// Purpose: wxRadioButton class -// Author: Stefan Csomor -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBUT_H_ -#define _WX_RADIOBUT_H_ - -class WXDLLIMPEXP_CORE wxRadioButton: public wxControl -{ - wxDECLARE_DYNAMIC_CLASS(wxRadioButton); - -public: - wxRadioButton() {} - wxRadioButton(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - virtual ~wxRadioButton(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr); - - virtual void SetValue(bool val); - virtual bool GetValue() const ; - - // implementation - - void Command(wxCommandEvent& event); - wxRadioButton *AddInCycle(wxRadioButton *cycle); - void RemoveFromCycle(); - wxRadioButton *NextInCycle() {return m_cycle;} - - // osx specific event handling common for all osx-ports - - virtual bool OSXHandleClicked( double timestampsec ); - protected: - - wxRadioButton *m_cycle; -}; - -// Not implemented -#if 0 -class WXDLLIMPEXP_FWD_CORE wxBitmap ; - -WXDLLIMPEXP_DATA_CORE(extern const wxChar) wxBitmapRadioButtonNameStr[]; - -class WXDLLIMPEXP_CORE wxBitmapRadioButton: public wxRadioButton -{ - wxDECLARE_DYNAMIC_CLASS(wxBitmapRadioButton); -protected: - wxBitmap *theButtonBitmap; -public: - wxBitmapRadioButton() { theButtonBitmap = NULL; } - wxBitmapRadioButton(wxWindow *parent, wxWindowID id, - const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapRadioButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapRadioButtonNameStr); - - virtual void SetLabel(const wxBitmap *label); - virtual void SetValue(bool val) ; - virtual bool GetValue() const ; -}; -#endif - -#endif - // _WX_RADIOBUT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/region.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/region.h deleted file mode 100644 index e0852820..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/region.h +++ /dev/null @@ -1,8 +0,0 @@ -#if wxOSX_USE_COCOA_OR_CARBON -#include "wx/osx/carbon/region.h" -#else -#define wxRegionGeneric wxRegion -#define wxRegionIteratorGeneric wxRegionIterator - -#include "wx/generic/region.h" -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/scrolbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/scrolbar.h deleted file mode 100644 index fdfc105d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/scrolbar.h +++ /dev/null @@ -1,68 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/scrolbar.h -// Purpose: wxScrollBar class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SCROLBAR_H_ -#define _WX_SCROLBAR_H_ - -// Scrollbar item -class WXDLLIMPEXP_CORE wxScrollBar : public wxScrollBarBase -{ -public: - wxScrollBar() { m_pageSize = 0; m_viewSize = 0; m_objectSize = 0; } - virtual ~wxScrollBar(); - - wxScrollBar(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr) - { - Create(parent, id, pos, size, style, validator, name); - } - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr); - - virtual int GetThumbPosition() const wxOVERRIDE; - virtual int GetThumbSize() const wxOVERRIDE { return m_viewSize; } - virtual int GetPageSize() const wxOVERRIDE { return m_pageSize; } - virtual int GetRange() const wxOVERRIDE { return m_objectSize; } - - virtual void SetThumbPosition(int viewStart) wxOVERRIDE; - virtual void SetScrollbar(int position, int thumbSize, int range, - int pageSize, bool refresh = true) wxOVERRIDE; - - // needed for RTTI - void SetThumbSize( int s ) { SetScrollbar( GetThumbPosition() , s , GetRange() , GetPageSize() , true ) ; } - void SetPageSize( int s ) { SetScrollbar( GetThumbPosition() , GetThumbSize() , GetRange() , s , true ) ; } - void SetRange( int s ) { SetScrollbar( GetThumbPosition() , GetThumbSize() , s , GetPageSize() , true ) ; } - - // implementation only from now on - void Command(wxCommandEvent& event) wxOVERRIDE; - virtual void TriggerScrollEvent( wxEventType scrollEvent ) wxOVERRIDE; - virtual bool OSXHandleClicked( double timestampsec ) wxOVERRIDE; -protected: - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - int m_pageSize; - int m_viewSize; - int m_objectSize; - - wxDECLARE_DYNAMIC_CLASS(wxScrollBar); - wxDECLARE_EVENT_TABLE(); -}; - -#endif // _WX_SCROLBAR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/setup.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/setup.h deleted file mode 100644 index 47046eb9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/setup.h +++ /dev/null @@ -1,1549 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/setup.h -// Purpose: Configuration for the library -// Author: Stefan Csomor -// Modified by: Stefan Csomor -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SETUP_H_ -#define _WX_SETUP_H_ - - -/* --- start common options --- */ -// ---------------------------------------------------------------------------- -// global settings -// ---------------------------------------------------------------------------- - -// define this to 0 when building wxBase library - this can also be done from -// makefile/project file overriding the value here -#ifndef wxUSE_GUI - #define wxUSE_GUI 1 -#endif // wxUSE_GUI - -// ---------------------------------------------------------------------------- -// compatibility settings -// ---------------------------------------------------------------------------- - -// This setting determines the compatibility with 2.8 API: set it to 0 to -// flag all cases of using deprecated functions. -// -// Default is 1 but please try building your code with 0 as the default will -// change to 0 in the next version and the deprecated functions will disappear -// in the version after it completely. -// -// Recommended setting: 0 (please update your code) -#define WXWIN_COMPATIBILITY_2_8 0 - -// This setting determines the compatibility with 3.0 API: set it to 0 to -// flag all cases of using deprecated functions. -// -// Default is 1 but please try building your code with 0 as the default will -// change to 0 in the next version and the deprecated functions will disappear -// in the version after it completely. -// -// Recommended setting: 0 (please update your code) -#define WXWIN_COMPATIBILITY_3_0 1 - -// MSW-only: Set to 0 for accurate dialog units, else 1 for old behaviour when -// default system font is used for wxWindow::GetCharWidth/Height() instead of -// the current font. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxDIALOG_UNIT_COMPATIBILITY 0 - -// ---------------------------------------------------------------------------- -// debugging settings -// ---------------------------------------------------------------------------- - -// wxDEBUG_LEVEL will be defined as 1 in wx/debug.h so normally there is no -// need to define it here. You may do it for two reasons: either completely -// disable/compile out the asserts in release version (then do it inside #ifdef -// NDEBUG) or, on the contrary, enable more asserts, including the usually -// disabled ones, in the debug build (then do it inside #ifndef NDEBUG) -// -// #ifdef NDEBUG -// #define wxDEBUG_LEVEL 0 -// #else -// #define wxDEBUG_LEVEL 2 -// #endif - -// wxHandleFatalExceptions() may be used to catch the program faults at run -// time and, instead of terminating the program with a usual GPF message box, -// call the user-defined wxApp::OnFatalException() function. If you set -// wxUSE_ON_FATAL_EXCEPTION to 0, wxHandleFatalExceptions() will not work. -// -// This setting is for Win32 only and can only be enabled if your compiler -// supports Win32 structured exception handling (currently only VC++ does) -// -// Default is 1 -// -// Recommended setting: 1 if your compiler supports it. -#define wxUSE_ON_FATAL_EXCEPTION 1 - -// Set this to 1 to be able to generate a human-readable (unlike -// machine-readable minidump created by wxCrashReport::Generate()) stack back -// trace when your program crashes using wxStackWalker -// -// Default is 1 if supported by the compiler. -// -// Recommended setting: 1, set to 0 if your programs never crash -#define wxUSE_STACKWALKER 1 - -// Set this to 1 to compile in wxDebugReport class which allows you to create -// and optionally upload to your web site a debug report consisting of back -// trace of the crash (if wxUSE_STACKWALKER == 1) and other information. -// -// Default is 1 if supported by the compiler. -// -// Recommended setting: 1, it is compiled into a separate library so there -// is no overhead if you don't use it -#define wxUSE_DEBUGREPORT 1 - -// Generic comment about debugging settings: they are very useful if you don't -// use any other memory leak detection tools such as Purify/BoundsChecker, but -// are probably redundant otherwise. Also, Visual C++ CRT has the same features -// as wxWidgets memory debugging subsystem built in since version 5.0 and you -// may prefer to use it instead of built in memory debugging code because it is -// faster and more fool proof. -// -// Using VC++ CRT memory debugging is enabled by default in debug build (_DEBUG -// is defined) if wxUSE_GLOBAL_MEMORY_OPERATORS is *not* enabled (i.e. is 0) -// and if __NO_VC_CRTDBG__ is not defined. - -// The rest of the options in this section are obsolete and not supported, -// enable them at your own risk. - -// If 1, enables wxDebugContext, for writing error messages to file, etc. If -// __WXDEBUG__ is not defined, will still use the normal memory operators. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_DEBUG_CONTEXT 0 - -// If 1, enables debugging versions of wxObject::new and wxObject::delete *IF* -// __WXDEBUG__ is also defined. -// -// WARNING: this code may not work with all architectures, especially if -// alignment is an issue. This switch is currently ignored for mingw / cygwin -// -// Default is 0 -// -// Recommended setting: 1 if you are not using a memory debugging tool, else 0 -#define wxUSE_MEMORY_TRACING 0 - -// In debug mode, cause new and delete to be redefined globally. -// If this causes problems (e.g. link errors which is a common problem -// especially if you use another library which also redefines the global new -// and delete), set this to 0. -// This switch is currently ignored for mingw / cygwin -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_GLOBAL_MEMORY_OPERATORS 0 - -// In debug mode, causes new to be defined to be WXDEBUG_NEW (see object.h). If -// this causes problems (e.g. link errors), set this to 0. You may need to set -// this to 0 if using templates (at least for VC++). This switch is currently -// ignored for MinGW/Cygwin. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_DEBUG_NEW_ALWAYS 0 - - -// ---------------------------------------------------------------------------- -// Unicode support -// ---------------------------------------------------------------------------- - -// These settings are obsolete: the library is always built in Unicode mode -// now, only set wxUSE_UNICODE to 0 to compile legacy code in ANSI mode if -// absolutely necessary -- updating it is strongly recommended as the ANSI mode -// will disappear completely in future wxWidgets releases. -#ifndef wxUSE_UNICODE - #define wxUSE_UNICODE 1 -#endif - -// wxUSE_WCHAR_T is required by wxWidgets now, don't change. -#define wxUSE_WCHAR_T 1 - -// ---------------------------------------------------------------------------- -// global features -// ---------------------------------------------------------------------------- - -// Compile library in exception-safe mode? If set to 1, the library will try to -// behave correctly in presence of exceptions (even though it still will not -// use the exceptions itself) and notify the user code about any unhandled -// exceptions. If set to 0, propagation of the exceptions through the library -// code will lead to undefined behaviour -- but the code itself will be -// slightly smaller and faster. -// -// Note that like wxUSE_THREADS this option is automatically set to 0 if -// wxNO_EXCEPTIONS is defined. -// -// Default is 1 -// -// Recommended setting: depends on whether you intend to use C++ exceptions -// in your own code (1 if you do, 0 if you don't) -#define wxUSE_EXCEPTIONS 1 - -// Set wxUSE_EXTENDED_RTTI to 1 to use extended RTTI -// -// Default is 0 -// -// Recommended setting: 0 (this is still work in progress...) -#define wxUSE_EXTENDED_RTTI 0 - -// Support for message/error logging. This includes wxLogXXX() functions and -// wxLog and derived classes. Don't set this to 0 unless you really know what -// you are doing. -// -// Default is 1 -// -// Recommended setting: 1 (always) -#define wxUSE_LOG 1 - -// Recommended setting: 1 -#define wxUSE_LOGWINDOW 1 - -// Recommended setting: 1 -#define wxUSE_LOGGUI 1 - -// Recommended setting: 1 -#define wxUSE_LOG_DIALOG 1 - -// Support for command line parsing using wxCmdLineParser class. -// -// Default is 1 -// -// Recommended setting: 1 (can be set to 0 if you don't use the cmd line) -#define wxUSE_CMDLINE_PARSER 1 - -// Support for multithreaded applications: if 1, compile in thread classes -// (thread.h) and make the library a bit more thread safe. Although thread -// support is quite stable by now, you may still consider recompiling the -// library without it if you have no use for it - this will result in a -// somewhat smaller and faster operation. -// -// Notice that if wxNO_THREADS is defined, wxUSE_THREADS is automatically reset -// to 0 in wx/chkconf.h, so, for example, if you set USE_THREADS to 0 in -// build/msw/config.* file this value will have no effect. -// -// Default is 1 -// -// Recommended setting: 0 unless you do plan to develop MT applications -#define wxUSE_THREADS 1 - -// If enabled, compiles wxWidgets streams classes -// -// wx stream classes are used for image IO, process IO redirection, network -// protocols implementation and much more and so disabling this results in a -// lot of other functionality being lost. -// -// Default is 1 -// -// Recommended setting: 1 as setting it to 0 disables many other things -#define wxUSE_STREAMS 1 - -// Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf. -// Note that if the system's implementation does not support positional -// parameters, setting this to 1 forces the use of the wxWidgets implementation -// of wxVsnprintf. The standard vsnprintf() supports positional parameters on -// many Unix systems but usually doesn't under Windows. -// -// Positional parameters are very useful when translating a program since using -// them in formatting strings allow translators to correctly reorder the -// translated sentences. -// -// Default is 1 -// -// Recommended setting: 1 if you want to support multiple languages -#define wxUSE_PRINTF_POS_PARAMS 1 - -// Enable the use of compiler-specific thread local storage keyword, if any. -// This is used for wxTLS_XXX() macros implementation and normally should use -// the compiler-provided support as it's simpler and more efficient, but is -// disabled under Windows in wx/msw/chkconf.h as it can't be used if wxWidgets -// is used in a dynamically loaded Win32 DLL (i.e. using LoadLibrary()) under -// XP as this triggers a bug in compiler TLS support that results in crashes -// when any TLS variables are used. -// -// If you're absolutely sure that your build of wxWidgets is never going to be -// used in such situation, either because it's not going to be linked from any -// kind of plugin or because you only target Vista or later systems, you can -// set this to 2 to force the use of compiler TLS even under MSW. -// -// Default is 1 meaning that compiler TLS is used only if it's 100% safe. -// -// Recommended setting: 2 if you want to have maximal performance and don't -// care about the scenario described above. -#define wxUSE_COMPILER_TLS 1 - -// ---------------------------------------------------------------------------- -// Interoperability with the standard library. -// ---------------------------------------------------------------------------- - -// Set wxUSE_STL to 1 to enable maximal interoperability with the standard -// library, even at the cost of backwards compatibility. -// -// Default is 0 -// -// Recommended setting: 0 as the options below already provide a relatively -// good level of interoperability and changing this option arguably isn't worth -// diverging from the official builds of the library. -#define wxUSE_STL 0 - -// This is not a real option but is used as the default value for -// wxUSE_STD_IOSTREAM, wxUSE_STD_STRING and wxUSE_STD_CONTAINERS_COMPATIBLY. -// -// Set it to 0 if you want to disable the use of all standard classes -// completely for some reason. -#define wxUSE_STD_DEFAULT 1 - -// Use standard C++ containers where it can be done without breaking backwards -// compatibility. -// -// This provides better interoperability with the standard library, e.g. with -// this option on it's possible to insert std::vector<> into many wxWidgets -// containers directly. -// -// Default is 1. -// -// Recommended setting is 1 unless you want to avoid all dependencies on the -// standard library. -#define wxUSE_STD_CONTAINERS_COMPATIBLY wxUSE_STD_DEFAULT - -// Use standard C++ containers to implement wxVector<>, wxStack<>, wxDList<> -// and wxHashXXX<> classes. If disabled, wxWidgets own (mostly compatible but -// usually more limited) implementations are used which allows to avoid the -// dependency on the C++ run-time library. -// -// Default is 0 for compatibility reasons. -// -// Recommended setting: 1 unless compatibility with the official wxWidgets -// build and/or the existing code is a concern. -#define wxUSE_STD_CONTAINERS 0 - -// Use standard C++ streams if 1 instead of wx streams in some places. If -// disabled, wx streams are used everywhere and wxWidgets doesn't depend on the -// standard streams library. -// -// Notice that enabling this does not replace wx streams with std streams -// everywhere, in a lot of places wx streams are used no matter what. -// -// Default is 1 if compiler supports it. -// -// Recommended setting: 1 if you use the standard streams anyhow and so -// dependency on the standard streams library is not a -// problem -#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT - -// Enable minimal interoperability with the standard C++ string class if 1. -// "Minimal" means that wxString can be constructed from std::string or -// std::wstring but can't be implicitly converted to them. You need to enable -// the option below for the latter. -// -// Default is 1 for most compilers. -// -// Recommended setting: 1 unless you want to ensure your program doesn't use -// the standard C++ library at all. -#define wxUSE_STD_STRING wxUSE_STD_DEFAULT - -// Make wxString as much interchangeable with std::[w]string as possible, in -// particular allow implicit conversion of wxString to either of these classes. -// This comes at a price (or a benefit, depending on your point of view) of not -// allowing implicit conversion to "const char *" and "const wchar_t *". -// -// Because a lot of existing code relies on these conversions, this option is -// disabled by default but can be enabled for your build if you don't care -// about compatibility. -// -// Default is 0 if wxUSE_STL has its default value or 1 if it is enabled. -// -// Recommended setting: 0 to remain compatible with the official builds of -// wxWidgets. -#define wxUSE_STD_STRING_CONV_IN_WXSTRING wxUSE_STL - -// VC++ 4.2 and above allows <iostream> and <iostream.h> but you can't mix -// them. Set this option to 1 to use <iostream.h>, 0 to use <iostream>. -// -// Note that newer compilers (including VC++ 7.1 and later) don't support -// wxUSE_IOSTREAMH == 1 and so <iostream> will be used anyhow. -// -// Default is 0. -// -// Recommended setting: 0, only set to 1 if you use a really old compiler -#define wxUSE_IOSTREAMH 0 - - -// ---------------------------------------------------------------------------- -// non GUI features selection -// ---------------------------------------------------------------------------- - -// Set wxUSE_LONGLONG to 1 to compile the wxLongLong class. This is a 64 bit -// integer which is implemented in terms of native 64 bit integers if any or -// uses emulation otherwise. -// -// This class is required by wxDateTime and so you should enable it if you want -// to use wxDateTime. For most modern platforms, it will use the native 64 bit -// integers in which case (almost) all of its functions are inline and it -// almost does not take any space, so there should be no reason to switch it -// off. -// -// Recommended setting: 1 -#define wxUSE_LONGLONG 1 - -// Set wxUSE_BASE64 to 1, to compile in Base64 support. This is required for -// storing binary data in wxConfig on most platforms. -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely disabled if you don't use it) -#define wxUSE_BASE64 1 - -// Set this to 1 to be able to use wxEventLoop even in console applications -// (i.e. using base library only, without GUI). This is mostly useful for -// processing socket events but is also necessary to use timers in console -// applications -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely disabled if you don't use it) -#define wxUSE_CONSOLE_EVENTLOOP 1 - -// Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level -// POSIX functions for file access, wxFFile uses ANSI C stdio.h functions. -// -// Default is 1 -// -// Recommended setting: 1 (wxFile is highly recommended as it is required by -// i18n code, wxFileConfig and others) -#define wxUSE_FILE 1 -#define wxUSE_FFILE 1 - -// Use wxFSVolume class providing access to the configured/active mount points -// -// Default is 1 -// -// Recommended setting: 1 (but may be safely disabled if you don't use it) -#define wxUSE_FSVOLUME 1 - -// Use wxStandardPaths class which allows to retrieve some standard locations -// in the file system -// -// Default is 1 -// -// Recommended setting: 1 (may be disabled to save space, but not much) -#define wxUSE_STDPATHS 1 - -// use wxTextBuffer class: required by wxTextFile -#define wxUSE_TEXTBUFFER 1 - -// use wxTextFile class: requires wxFile and wxTextBuffer, required by -// wxFileConfig -#define wxUSE_TEXTFILE 1 - -// i18n support: _() macro, wxLocale class. Requires wxTextFile. -#define wxUSE_INTL 1 - -// Provide wxFoo_l() functions similar to standard foo() functions but taking -// an extra locale parameter. -// -// Notice that this is fully implemented only for the systems providing POSIX -// xlocale support or Microsoft Visual C++ >= 8 (which provides proprietary -// almost-equivalent of xlocale functions), otherwise wxFoo_l() functions will -// only work for the current user locale and "C" locale. You can use -// wxHAS_XLOCALE_SUPPORT to test whether the full support is available. -// -// Default is 1 -// -// Recommended setting: 1 but may be disabled if you are writing programs -// running only in C locale anyhow -#define wxUSE_XLOCALE 1 - -// Set wxUSE_DATETIME to 1 to compile the wxDateTime and related classes which -// allow to manipulate dates, times and time intervals. -// -// Requires: wxUSE_LONGLONG -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_DATETIME 1 - -// Set wxUSE_TIMER to 1 to compile wxTimer class -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_TIMER 1 - -// Use wxStopWatch clas. -// -// Default is 1 -// -// Recommended setting: 1 (needed by wxSocket) -#define wxUSE_STOPWATCH 1 - -// Set wxUSE_FSWATCHER to 1 if you want to enable wxFileSystemWatcher -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_FSWATCHER 1 - -// Setting wxUSE_CONFIG to 1 enables the use of wxConfig and related classes -// which allow the application to store its settings in the persistent -// storage. Setting this to 1 will also enable on-demand creation of the -// global config object in wxApp. -// -// See also wxUSE_CONFIG_NATIVE below. -// -// Recommended setting: 1 -#define wxUSE_CONFIG 1 - -// If wxUSE_CONFIG is 1, you may choose to use either the native config -// classes under Windows (using .INI files under Win16 and the registry under -// Win32) or the portable text file format used by the config classes under -// Unix. -// -// Default is 1 to use native classes. Note that you may still use -// wxFileConfig even if you set this to 1 - just the config object created by -// default for the applications needs will be a wxRegConfig or wxIniConfig and -// not wxFileConfig. -// -// Recommended setting: 1 -#define wxUSE_CONFIG_NATIVE 1 - -// If wxUSE_DIALUP_MANAGER is 1, compile in wxDialUpManager class which allows -// to connect/disconnect from the network and be notified whenever the dial-up -// network connection is established/terminated. Requires wxUSE_DYNAMIC_LOADER. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DIALUP_MANAGER 1 - -// Compile in classes for run-time DLL loading and function calling. -// Required by wxUSE_DIALUP_MANAGER. -// -// This setting is for Win32 only -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DYNLIB_CLASS 1 - -// experimental, don't use for now -#define wxUSE_DYNAMIC_LOADER 1 - -// Set to 1 to use socket classes -#define wxUSE_SOCKETS 1 - -// Set to 1 to use ipv6 socket classes (requires wxUSE_SOCKETS) -// -// Notice that currently setting this option under Windows will result in -// programs which can only run on recent OS versions (with ws2_32.dll -// installed) which is why it is disabled by default. -// -// Default is 1. -// -// Recommended setting: 1 if you need IPv6 support -#define wxUSE_IPV6 0 - -// Set to 1 to enable virtual file systems (required by wxHTML) -#define wxUSE_FILESYSTEM 1 - -// Set to 1 to enable virtual ZIP filesystem (requires wxUSE_FILESYSTEM) -#define wxUSE_FS_ZIP 1 - -// Set to 1 to enable virtual archive filesystem (requires wxUSE_FILESYSTEM) -#define wxUSE_FS_ARCHIVE 1 - -// Set to 1 to enable virtual Internet filesystem (requires wxUSE_FILESYSTEM) -#define wxUSE_FS_INET 1 - -// wxArchive classes for accessing archives such as zip and tar -#define wxUSE_ARCHIVE_STREAMS 1 - -// Set to 1 to compile wxZipInput/OutputStream classes. -#define wxUSE_ZIPSTREAM 1 - -// Set to 1 to compile wxTarInput/OutputStream classes. -#define wxUSE_TARSTREAM 1 - -// Set to 1 to compile wxZlibInput/OutputStream classes. Also required by -// wxUSE_LIBPNG -#define wxUSE_ZLIB 1 - -// If enabled, the code written by Apple will be used to write, in a portable -// way, float on the disk. See extended.c for the license which is different -// from wxWidgets one. -// -// Default is 1. -// -// Recommended setting: 1 unless you don't like the license terms (unlikely) -#define wxUSE_APPLE_IEEE 1 - -// Joystick support class -#define wxUSE_JOYSTICK 1 - -// wxFontEnumerator class -#define wxUSE_FONTENUM 1 - -// wxFontMapper class -#define wxUSE_FONTMAP 1 - -// wxMimeTypesManager class -#define wxUSE_MIMETYPE 1 - -// wxProtocol and related classes: if you want to use either of wxFTP, wxHTTP -// or wxURL you need to set this to 1. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_PROTOCOL 1 - -// The settings for the individual URL schemes -#define wxUSE_PROTOCOL_FILE 1 -#define wxUSE_PROTOCOL_FTP 1 -#define wxUSE_PROTOCOL_HTTP 1 - -// Define this to use wxURL class. -#define wxUSE_URL 1 - -// Define this to use native platform url and protocol support. -// Currently valid only for MS-Windows. -// Note: if you set this to 1, you can open ftp/http/gopher sites -// and obtain a valid input stream for these sites -// even when you set wxUSE_PROTOCOL_FTP/HTTP to 0. -// Doing so reduces the code size. -// -// This code is experimental and subject to change. -#define wxUSE_URL_NATIVE 0 - -// Support for wxVariant class used in several places throughout the library, -// notably in wxDataViewCtrl API. -// -// Default is 1. -// -// Recommended setting: 1 unless you want to reduce the library size as much as -// possible in which case setting this to 0 can gain up to 100KB. -#define wxUSE_VARIANT 1 - -// Support for wxAny class, the successor for wxVariant. -// -// Default is 1. -// -// Recommended setting: 1 unless you want to reduce the library size by a small amount, -// or your compiler cannot for some reason cope with complexity of templates used. -#define wxUSE_ANY 1 - -// Support for regular expression matching via wxRegEx class: enable this to -// use POSIX regular expressions in your code. You need to compile regex -// library from src/regex to use it under Windows. -// -// Default is 0 -// -// Recommended setting: 1 if your compiler supports it, if it doesn't please -// contribute us a makefile for src/regex for it -#define wxUSE_REGEX 1 - -// wxSystemOptions class -#define wxUSE_SYSTEM_OPTIONS 1 - -// wxSound class -#define wxUSE_SOUND 1 - -// Use wxMediaCtrl -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_MEDIACTRL 1 - -// Use wxWidget's XRC XML-based resource system. Recommended. -// -// Default is 1 -// -// Recommended setting: 1 (requires wxUSE_XML) -#define wxUSE_XRC 1 - -// XML parsing classes. Note that their API will change in the future, so -// using wxXmlDocument and wxXmlNode in your app is not recommended. -// -// Default is the same as wxUSE_XRC, i.e. 1 by default. -// -// Recommended setting: 1 (required by XRC) -#define wxUSE_XML wxUSE_XRC - -// Use wxWidget's AUI docking system -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_AUI 1 - -// Use wxWidget's Ribbon classes for interfaces -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_RIBBON 1 - -// Use wxPropertyGrid. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_PROPGRID 1 - -// Use wxStyledTextCtrl, a wxWidgets implementation of Scintilla. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_STC 1 - -// Use wxWidget's web viewing classes -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_WEBVIEW 1 - -// Use the IE wxWebView backend -// -// Default is 1 on MSW -// -// Recommended setting: 1 -#ifdef __WXMSW__ -#define wxUSE_WEBVIEW_IE 1 -#else -#define wxUSE_WEBVIEW_IE 0 -#endif - -// Use the WebKit wxWebView backend -// -// Default is 1 on GTK and OSX -// -// Recommended setting: 1 -#if defined(__WXGTK__) || defined(__WXOSX__) -#define wxUSE_WEBVIEW_WEBKIT 1 -#else -#define wxUSE_WEBVIEW_WEBKIT 0 -#endif - -// Enable wxGraphicsContext and related classes for a modern 2D drawing API. -// -// Default is 1 except if you're using a non-Microsoft compiler under Windows -// as only MSVC is known to ship with at least gdiplus.h which is required to -// compile GDI+-based implementation of wxGraphicsContext (MSVC10 and later -// versions also include d2d1.h required for Direct2D-based implementation). -// For other compilers (e.g. mingw32) you may need to install the headers (and -// just the headers) yourself. If you do, change the setting below manually. -// -// Recommended setting: 1 if supported by the compilation environment - -// notice that we can't use wxCHECK_VISUALC_VERSION() here as this file is -// included from wx/platform.h before wxCHECK_VISUALC_VERSION() is defined -#ifdef _MSC_VER -# define wxUSE_GRAPHICS_CONTEXT 1 -#else - // Disable support for other Windows compilers, enable it if your compiler - // comes with new enough SDK or you installed the headers manually. - // - // Notice that this will be set by configure under non-Windows platforms - // anyhow so the value there is not important. -# define wxUSE_GRAPHICS_CONTEXT 0 -#endif - -// Enable wxGraphicsContext implementation using Cairo library. -// -// This is not needed under Windows and detected automatically by configure -// under other systems, however you may set this to 1 manually if you installed -// Cairo under Windows yourself and prefer to use it instead the native GDI+ -// implementation. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_CAIRO 0 - - -// ---------------------------------------------------------------------------- -// Individual GUI controls -// ---------------------------------------------------------------------------- - -// You must set wxUSE_CONTROLS to 1 if you are using any controls at all -// (without it, wxControl class is not compiled) -// -// Default is 1 -// -// Recommended setting: 1 (don't change except for very special programs) -#define wxUSE_CONTROLS 1 - -// Support markup in control labels, i.e. provide wxControl::SetLabelMarkup(). -// Currently markup is supported only by a few controls and only some ports but -// their number will increase with time. -// -// Default is 1 -// -// Recommended setting: 1 (may be set to 0 if you want to save on code size) -#define wxUSE_MARKUP 1 - -// wxPopupWindow class is a top level transient window. It is currently used -// to implement wxTipWindow -// -// Default is 1 -// -// Recommended setting: 1 (may be set to 0 if you don't wxUSE_TIPWINDOW) -#define wxUSE_POPUPWIN 1 - -// wxTipWindow allows to implement the custom tooltips, it is used by the -// context help classes. Requires wxUSE_POPUPWIN. -// -// Default is 1 -// -// Recommended setting: 1 (may be set to 0) -#define wxUSE_TIPWINDOW 1 - -// Each of the settings below corresponds to one wxWidgets control. They are -// all switched on by default but may be disabled if you are sure that your -// program (including any standard dialogs it can show!) doesn't need them and -// if you desperately want to save some space. If you use any of these you must -// set wxUSE_CONTROLS as well. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_ACTIVITYINDICATOR 1 // wxActivityIndicator -#define wxUSE_ANIMATIONCTRL 1 // wxAnimationCtrl -#define wxUSE_BANNERWINDOW 1 // wxBannerWindow -#define wxUSE_BUTTON 1 // wxButton -#define wxUSE_BMPBUTTON 1 // wxBitmapButton -#define wxUSE_CALENDARCTRL 1 // wxCalendarCtrl -#define wxUSE_CHECKBOX 1 // wxCheckBox -#define wxUSE_CHECKLISTBOX 1 // wxCheckListBox (requires wxUSE_OWNER_DRAWN) -#define wxUSE_CHOICE 1 // wxChoice -#define wxUSE_COLLPANE 1 // wxCollapsiblePane -#define wxUSE_COLOURPICKERCTRL 1 // wxColourPickerCtrl -#define wxUSE_COMBOBOX 1 // wxComboBox -#define wxUSE_COMMANDLINKBUTTON 1 // wxCommandLinkButton -#define wxUSE_DATAVIEWCTRL 1 // wxDataViewCtrl -#define wxUSE_DATEPICKCTRL 1 // wxDatePickerCtrl -#define wxUSE_DIRPICKERCTRL 1 // wxDirPickerCtrl -#define wxUSE_EDITABLELISTBOX 1 // wxEditableListBox -#define wxUSE_FILECTRL 1 // wxFileCtrl -#define wxUSE_FILEPICKERCTRL 1 // wxFilePickerCtrl -#define wxUSE_FONTPICKERCTRL 1 // wxFontPickerCtrl -#define wxUSE_GAUGE 1 // wxGauge -#define wxUSE_HEADERCTRL 1 // wxHeaderCtrl -#define wxUSE_HYPERLINKCTRL 1 // wxHyperlinkCtrl -#define wxUSE_LISTBOX 1 // wxListBox -#define wxUSE_LISTCTRL 1 // wxListCtrl -#define wxUSE_RADIOBOX 1 // wxRadioBox -#define wxUSE_RADIOBTN 1 // wxRadioButton -#define wxUSE_RICHMSGDLG 1 // wxRichMessageDialog -#define wxUSE_SCROLLBAR 1 // wxScrollBar -#define wxUSE_SEARCHCTRL 1 // wxSearchCtrl -#define wxUSE_SLIDER 1 // wxSlider -#define wxUSE_SPINBTN 1 // wxSpinButton -#define wxUSE_SPINCTRL 1 // wxSpinCtrl -#define wxUSE_STATBOX 1 // wxStaticBox -#define wxUSE_STATLINE 1 // wxStaticLine -#define wxUSE_STATTEXT 1 // wxStaticText -#define wxUSE_STATBMP 1 // wxStaticBitmap -#define wxUSE_TEXTCTRL 1 // wxTextCtrl -#define wxUSE_TIMEPICKCTRL 1 // wxTimePickerCtrl -#define wxUSE_TOGGLEBTN 1 // requires wxButton -#define wxUSE_TREECTRL 1 // wxTreeCtrl -#define wxUSE_TREELISTCTRL 1 // wxTreeListCtrl - -// Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR -// below either wxStatusBar95 or a generic wxStatusBar will be used. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_STATUSBAR 1 - -// Two status bar implementations are available under Win32: the generic one -// or the wrapper around native control. For native look and feel the native -// version should be used. -// -// Default is 1 for the platforms where native status bar is supported. -// -// Recommended setting: 1 (there is no advantage in using the generic one) -#define wxUSE_NATIVE_STATUSBAR 1 - -// wxToolBar related settings: if wxUSE_TOOLBAR is 0, don't compile any toolbar -// classes at all. Otherwise, use the native toolbar class unless -// wxUSE_TOOLBAR_NATIVE is 0. -// -// Default is 1 for all settings. -// -// Recommended setting: 1 for wxUSE_TOOLBAR and wxUSE_TOOLBAR_NATIVE. -#define wxUSE_TOOLBAR 1 -#define wxUSE_TOOLBAR_NATIVE 1 - -// wxNotebook is a control with several "tabs" located on one of its sides. It -// may be used to logically organise the data presented to the user instead of -// putting everything in one huge dialog. It replaces wxTabControl and related -// classes of wxWin 1.6x. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_NOTEBOOK 1 - -// wxListbook control is similar to wxNotebook but uses wxListCtrl instead of -// the tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_LISTBOOK 1 - -// wxChoicebook control is similar to wxNotebook but uses wxChoice instead of -// the tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_CHOICEBOOK 1 - -// wxTreebook control is similar to wxNotebook but uses wxTreeCtrl instead of -// the tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_TREEBOOK 1 - -// wxToolbook control is similar to wxNotebook but uses wxToolBar instead of -// tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_TOOLBOOK 1 - -// wxTaskBarIcon is a small notification icon shown in the system toolbar or -// dock. -// -// Default is 1. -// -// Recommended setting: 1 (but can be set to 0 if you don't need it) -#define wxUSE_TASKBARICON 1 - -// wxGrid class -// -// Default is 1, set to 0 to cut down compilation time and binaries size if you -// don't use it. -// -// Recommended setting: 1 -// -#define wxUSE_GRID 1 - -// wxMiniFrame class: a frame with narrow title bar -// -// Default is 1. -// -// Recommended setting: 1 (it doesn't cost almost anything) -#define wxUSE_MINIFRAME 1 - -// wxComboCtrl and related classes: combobox with custom popup window and -// not necessarily a listbox. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 except for wxUniv where it -// it used by wxComboBox -#define wxUSE_COMBOCTRL 1 - -// wxOwnerDrawnComboBox is a custom combobox allowing to paint the combobox -// items. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0, except where it is -// needed as a base class for generic wxBitmapComboBox. -#define wxUSE_ODCOMBOBOX 1 - -// wxBitmapComboBox is a combobox that can have images in front of text items. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 -#define wxUSE_BITMAPCOMBOBOX 1 - -// wxRearrangeCtrl is a wxCheckListBox with two buttons allowing to move items -// up and down in it. It is also used as part of wxRearrangeDialog. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 (currently used only by -// wxHeaderCtrl) -#define wxUSE_REARRANGECTRL 1 - -// wxAddRemoveCtrl is a composite control containing a control showing some -// items (e.g. wxListBox, wxListCtrl, wxTreeCtrl, wxDataViewCtrl, ...) and "+"/ -// "-" buttons allowing to add and remove items to/from the control. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 if you don't need it (not -// used by the library itself). -#define wxUSE_ADDREMOVECTRL 1 - -// ---------------------------------------------------------------------------- -// Miscellaneous GUI stuff -// ---------------------------------------------------------------------------- - -// wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar) -#define wxUSE_ACCEL 1 - -// Use the standard art provider. The icons returned by this provider are -// embedded into the library as XPMs so disabling it reduces the library size -// somewhat but this should only be done if you use your own custom art -// provider returning the icons or never use any icons not provided by the -// native art provider (which might not be implemented at all for some -// platforms) or by the Tango icons provider (if it's not itself disabled -// below). -// -// Default is 1. -// -// Recommended setting: 1 unless you use your own custom art provider. -#define wxUSE_ARTPROVIDER_STD 1 - -// Use art provider providing Tango icons: this art provider has higher quality -// icons than the default ones using smaller size XPM icons without -// transparency but the embedded PNG icons add to the library size. -// -// Default is 1 under non-GTK ports. Under wxGTK the native art provider using -// the GTK+ stock icons replaces it so it is normally not necessary. -// -// Recommended setting: 1 but can be turned off to reduce the library size. -#define wxUSE_ARTPROVIDER_TANGO 1 - -// Hotkey support (currently Windows only) -#define wxUSE_HOTKEY 1 - -// Use wxCaret: a class implementing a "cursor" in a text control (called caret -// under Windows). -// -// Default is 1. -// -// Recommended setting: 1 (can be safely set to 0, not used by the library) -#define wxUSE_CARET 1 - -// Use wxDisplay class: it allows enumerating all displays on a system and -// their geometries as well as finding the display on which the given point or -// window lies. -// -// Default is 1. -// -// Recommended setting: 1 if you need it, can be safely set to 0 otherwise -#define wxUSE_DISPLAY 1 - -// Miscellaneous geometry code: needed for Canvas library -#define wxUSE_GEOMETRY 1 - -// Use wxImageList. This class is needed by wxNotebook, wxTreeCtrl and -// wxListCtrl. -// -// Default is 1. -// -// Recommended setting: 1 (set it to 0 if you don't use any of the controls -// enumerated above, then this class is mostly useless too) -#define wxUSE_IMAGLIST 1 - -// Use wxInfoBar class. -// -// Default is 1. -// -// Recommended setting: 1 (but can be disabled without problems as nothing -// depends on it) -#define wxUSE_INFOBAR 1 - -// Use wxMenu, wxMenuBar, wxMenuItem. -// -// Default is 1. -// -// Recommended setting: 1 (can't be disabled under MSW) -#define wxUSE_MENUS 1 - -// Use wxNotificationMessage. -// -// wxNotificationMessage allows to show non-intrusive messages to the user -// using balloons, banners, popups or whatever is the appropriate method for -// the current platform. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_NOTIFICATION_MESSAGE 1 - -// wxPreferencesEditor provides a common API for different ways of presenting -// the standard "Preferences" or "Properties" dialog under different platforms -// (e.g. some use modal dialogs, some use modeless ones; some apply the changes -// immediately while others require an explicit "Apply" button). -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely disabled if you don't use it) -#define wxUSE_PREFERENCES_EDITOR 1 - -// wxRichToolTip is a customizable tooltip class which has more functionality -// than the stock (but native, unlike this class) wxToolTip. -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely set to 0 if you don't need it) -#define wxUSE_RICHTOOLTIP 1 - -// Use wxSashWindow class. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_SASH 1 - -// Use wxSplitterWindow class. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_SPLITTER 1 - -// Use wxToolTip and wxWindow::Set/GetToolTip() methods. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_TOOLTIPS 1 - -// wxValidator class and related methods -#define wxUSE_VALIDATORS 1 - -// Use reference counted ID management: this means that wxWidgets will track -// the automatically allocated ids (those used when you use wxID_ANY when -// creating a window, menu or toolbar item &c) instead of just supposing that -// the program never runs out of them. This is mostly useful only under wxMSW -// where the total ids range is limited to SHRT_MIN..SHRT_MAX and where -// long-running programs can run into problems with ids reuse without this. On -// the other platforms, where the ids have the full int range, this shouldn't -// be necessary. -#ifdef __WXMSW__ -#define wxUSE_AUTOID_MANAGEMENT 1 -#else -#define wxUSE_AUTOID_MANAGEMENT 0 -#endif - -// ---------------------------------------------------------------------------- -// common dialogs -// ---------------------------------------------------------------------------- - -// On rare occasions (e.g. using DJGPP) may want to omit common dialogs (e.g. -// file selector, printer dialog). Switching this off also switches off the -// printing architecture and interactive wxPrinterDC. -// -// Default is 1 -// -// Recommended setting: 1 (unless it really doesn't work) -#define wxUSE_COMMON_DIALOGS 1 - -// wxBusyInfo displays window with message when app is busy. Works in same way -// as wxBusyCursor -#define wxUSE_BUSYINFO 1 - -// Use single/multiple choice dialogs. -// -// Default is 1 -// -// Recommended setting: 1 (used in the library itself) -#define wxUSE_CHOICEDLG 1 - -// Use colour picker dialog -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_COLOURDLG 1 - -// wxDirDlg class for getting a directory name from user -#define wxUSE_DIRDLG 1 - -// TODO: setting to choose the generic or native one - -// Use file open/save dialogs. -// -// Default is 1 -// -// Recommended setting: 1 (used in many places in the library itself) -#define wxUSE_FILEDLG 1 - -// Use find/replace dialogs. -// -// Default is 1 -// -// Recommended setting: 1 (but may be safely set to 0) -#define wxUSE_FINDREPLDLG 1 - -// Use font picker dialog -// -// Default is 1 -// -// Recommended setting: 1 (used in the library itself) -#define wxUSE_FONTDLG 1 - -// Use wxMessageDialog and wxMessageBox. -// -// Default is 1 -// -// Recommended setting: 1 (used in the library itself) -#define wxUSE_MSGDLG 1 - -// progress dialog class for lengthy operations -#define wxUSE_PROGRESSDLG 1 - -// Set to 0 to disable the use of the native progress dialog (currently only -// available under MSW and suffering from some bugs there, hence this option). -#define wxUSE_NATIVE_PROGRESSDLG 1 - -// support for startup tips (wxShowTip &c) -#define wxUSE_STARTUP_TIPS 1 - -// text entry dialog and wxGetTextFromUser function -#define wxUSE_TEXTDLG 1 - -// number entry dialog -#define wxUSE_NUMBERDLG 1 - -// splash screen class -#define wxUSE_SPLASH 1 - -// wizards -#define wxUSE_WIZARDDLG 1 - -// Compile in wxAboutBox() function showing the standard "About" dialog. -// -// Default is 1 -// -// Recommended setting: 1 but can be set to 0 to save some space if you don't -// use this function -#define wxUSE_ABOUTDLG 1 - -// wxFileHistory class -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_FILE_HISTORY 1 - -// ---------------------------------------------------------------------------- -// Metafiles support -// ---------------------------------------------------------------------------- - -// Windows supports the graphics format known as metafile which is, though not -// portable, is widely used under Windows and so is supported by wxWin (under -// Windows only, of course). Win16 (Win3.1) used the so-called "Window -// MetaFiles" or WMFs which were replaced with "Enhanced MetaFiles" or EMFs in -// Win32 (Win9x, NT, 2000). Both of these are supported in wxWin and, by -// default, WMFs will be used under Win16 and EMFs under Win32. This may be -// changed by setting wxUSE_WIN_METAFILES_ALWAYS to 1 and/or setting -// wxUSE_ENH_METAFILE to 0. You may also set wxUSE_METAFILE to 0 to not compile -// in any metafile related classes at all. -// -// Default is 1 for wxUSE_ENH_METAFILE and 0 for wxUSE_WIN_METAFILES_ALWAYS. -// -// Recommended setting: default or 0 for everything for portable programs. -#define wxUSE_METAFILE 1 -#define wxUSE_ENH_METAFILE 1 -#define wxUSE_WIN_METAFILES_ALWAYS 0 - -// ---------------------------------------------------------------------------- -// Big GUI components -// ---------------------------------------------------------------------------- - -// Set to 0 to disable MDI support. -// -// Requires wxUSE_NOTEBOOK under platforms other than MSW. -// -// Default is 1. -// -// Recommended setting: 1, can be safely set to 0. -#define wxUSE_MDI 1 - -// Set to 0 to disable document/view architecture -#define wxUSE_DOC_VIEW_ARCHITECTURE 1 - -// Set to 0 to disable MDI document/view architecture -// -// Requires wxUSE_MDI && wxUSE_DOC_VIEW_ARCHITECTURE -#define wxUSE_MDI_ARCHITECTURE 1 - -// Set to 0 to disable print/preview architecture code -#define wxUSE_PRINTING_ARCHITECTURE 1 - -// wxHTML sublibrary allows to display HTML in wxWindow programs and much, -// much more. -// -// Default is 1. -// -// Recommended setting: 1 (wxHTML is great!), set to 0 if you want compile a -// smaller library. -#define wxUSE_HTML 1 - -// Setting wxUSE_GLCANVAS to 1 enables OpenGL support. You need to have OpenGL -// headers and libraries to be able to compile the library with wxUSE_GLCANVAS -// set to 1 and, under Windows, also to add opengl32.lib and glu32.lib to the -// list of libraries used to link your application (although this is done -// implicitly for Microsoft Visual C++ users). -// -// Default is 1. -// -// Recommended setting: 1 if you intend to use OpenGL, can be safely set to 0 -// otherwise. -#define wxUSE_GLCANVAS 1 - -// wxRichTextCtrl allows editing of styled text. -// -// Default is 1. -// -// Recommended setting: 1, set to 0 if you want compile a -// smaller library. -#define wxUSE_RICHTEXT 1 - -// ---------------------------------------------------------------------------- -// Data transfer -// ---------------------------------------------------------------------------- - -// Use wxClipboard class for clipboard copy/paste. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_CLIPBOARD 1 - -// Use wxDataObject and related classes. Needed for clipboard and OLE drag and -// drop -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DATAOBJ 1 - -// Use wxDropTarget and wxDropSource classes for drag and drop (this is -// different from "built in" drag and drop in wxTreeCtrl which is always -// available). Requires wxUSE_DATAOBJ. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DRAG_AND_DROP 1 - -// Use wxAccessible for enhanced and customisable accessibility. -// Depends on wxUSE_OLE. -// -// Default is 0. -// -// Recommended setting (at present): 0 -#define wxUSE_ACCESSIBILITY 0 - -// ---------------------------------------------------------------------------- -// miscellaneous settings -// ---------------------------------------------------------------------------- - -// wxSingleInstanceChecker class allows to verify at startup if another program -// instance is running. -// -// Default is 1 -// -// Recommended setting: 1 (the class is tiny, disabling it won't save much -// space) -#define wxUSE_SNGLINST_CHECKER 1 - -#define wxUSE_DRAGIMAGE 1 - -#define wxUSE_IPC 1 - // 0 for no interprocess comms -#define wxUSE_HELP 1 - // 0 for no help facility - -// Should we use MS HTML help for wxHelpController? If disabled, neither -// wxCHMHelpController nor wxBestHelpController are available. -// -// Default is 1 under MSW, 0 is always used for the other platforms. -// -// Recommended setting: 1, only set to 0 if you have trouble compiling -// wxCHMHelpController (could be a problem with really ancient compilers) -#define wxUSE_MS_HTML_HELP 1 - - -// Use wxHTML-based help controller? -#define wxUSE_WXHTML_HELP 1 - -#define wxUSE_CONSTRAINTS 1 - // 0 for no window layout constraint system - -#define wxUSE_SPLINES 1 - // 0 for no splines - -#define wxUSE_MOUSEWHEEL 1 - // Include mouse wheel support - -// Compile wxUIActionSimulator class? -#define wxUSE_UIACTIONSIMULATOR 1 - -// ---------------------------------------------------------------------------- -// wxDC classes for various output formats -// ---------------------------------------------------------------------------- - -// Set to 1 for PostScript device context. -#define wxUSE_POSTSCRIPT 0 - -// Set to 1 to use font metric files in GetTextExtent -#define wxUSE_AFM_FOR_POSTSCRIPT 1 - -// Set to 1 to compile in support for wxSVGFileDC, a wxDC subclass which allows -// to create files in SVG (Scalable Vector Graphics) format. -#define wxUSE_SVG 1 - -// Should wxDC provide SetTransformMatrix() and related methods? -// -// Default is 1 but can be set to 0 if this functionality is not used. Notice -// that currently only wxMSW supports this so setting this to 0 doesn't change -// much for non-MSW platforms (although it will still save a few bytes -// probably). -// -// Recommended setting: 1. -#define wxUSE_DC_TRANSFORM_MATRIX 1 - -// ---------------------------------------------------------------------------- -// image format support -// ---------------------------------------------------------------------------- - -// wxImage supports many different image formats which can be configured at -// compile-time. BMP is always supported, others are optional and can be safely -// disabled if you don't plan to use images in such format sometimes saving -// substantial amount of code in the final library. -// -// Some formats require an extra library which is included in wxWin sources -// which is mentioned if it is the case. - -// Set to 1 for wxImage support (recommended). -#define wxUSE_IMAGE 1 - -// Set to 1 for PNG format support (requires libpng). Also requires wxUSE_ZLIB. -#define wxUSE_LIBPNG 1 - -// Set to 1 for JPEG format support (requires libjpeg) -#define wxUSE_LIBJPEG 1 - -// Set to 1 for TIFF format support (requires libtiff) -#define wxUSE_LIBTIFF 1 - -// Set to 1 for TGA format support (loading only) -#define wxUSE_TGA 1 - -// Set to 1 for GIF format support -#define wxUSE_GIF 1 - -// Set to 1 for PNM format support -#define wxUSE_PNM 1 - -// Set to 1 for PCX format support -#define wxUSE_PCX 1 - -// Set to 1 for IFF format support (Amiga format) -#define wxUSE_IFF 0 - -// Set to 1 for XPM format support -#define wxUSE_XPM 1 - -// Set to 1 for MS Icons and Cursors format support -#define wxUSE_ICO_CUR 1 - -// Set to 1 to compile in wxPalette class -#define wxUSE_PALETTE 1 - -// ---------------------------------------------------------------------------- -// wxUniversal-only options -// ---------------------------------------------------------------------------- - -// Set to 1 to enable compilation of all themes, this is the default -#define wxUSE_ALL_THEMES 1 - -// Set to 1 to enable the compilation of individual theme if wxUSE_ALL_THEMES -// is unset, if it is set these options are not used; notice that metal theme -// uses Win32 one -#define wxUSE_THEME_GTK 0 -#define wxUSE_THEME_METAL 0 -#define wxUSE_THEME_MONO 0 -#define wxUSE_THEME_WIN32 0 - - -/* --- end common options --- */ - -// ---------------------------------------------------------------------------- -// Unix-specific options settings -// ---------------------------------------------------------------------------- - -// use wxSelectDispatcher class -#define wxUSE_SELECT_DISPATCHER 1 - -// use wxEpollDispatcher class (Linux only) -#define wxUSE_EPOLL_DISPATCHER 0 - -/* - Use GStreamer for Unix. - - Default is 0 as this requires a lot of dependencies which might not be - available. - - Recommended setting: 1 (wxMediaCtrl won't work by default without it). - */ -#define wxUSE_GSTREAMER 0 - -// ---------------------------------------------------------------------------- -// Mac-specific settings -// ---------------------------------------------------------------------------- - -#undef wxUSE_GRAPHICS_CONTEXT -#define wxUSE_GRAPHICS_CONTEXT 1 - - -// things not implemented under Mac - -#undef wxUSE_STACKWALKER -#define wxUSE_STACKWALKER 0 - -// wxWebKit is a wrapper for Apple's WebKit framework, use it if you want to -// embed the Safari browser control -// 0 by default because of Jaguar compatibility problems -#define wxUSE_WEBKIT 1 - - -// Set to 0 for no libmspack -#define wxUSE_LIBMSPACK 0 - -// native toolbar does support embedding controls, but not complex panels, please test -#define wxOSX_USE_NATIVE_TOOLBAR 1 - -// make sure we have the proper dispatcher for the console event loop -#define wxUSE_SELECT_DISPATCHER 1 -#define wxUSE_EPOLL_DISPATCHER 0 - - -#endif - // _WX_SETUP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/slider.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/slider.h deleted file mode 100644 index fffde4d3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/slider.h +++ /dev/null @@ -1,117 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/slider.h -// Purpose: wxSlider class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SLIDER_H_ -#define _WX_SLIDER_H_ - -#include "wx/compositewin.h" -#include "wx/stattext.h" - -// Slider -class WXDLLIMPEXP_CORE wxSlider: public wxCompositeWindow<wxSliderBase> -{ - wxDECLARE_DYNAMIC_CLASS(wxSlider); - -public: - wxSlider(); - - wxSlider(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr) - { - Create(parent, id, value, minValue, maxValue, pos, size, style, validator, name); - } - - virtual ~wxSlider(); - - bool Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr); - - virtual int GetValue() const wxOVERRIDE; - virtual void SetValue(int) wxOVERRIDE; - - void SetRange(int minValue, int maxValue) wxOVERRIDE; - - int GetMin() const wxOVERRIDE { return m_rangeMin; } - int GetMax() const wxOVERRIDE { return m_rangeMax; } - - void SetMin(int minValue) { SetRange(minValue, m_rangeMax); } - void SetMax(int maxValue) { SetRange(m_rangeMin, maxValue); } - - // For trackbars only - int GetTickFreq() const wxOVERRIDE { return m_tickFreq; } - void SetPageSize(int pageSize) wxOVERRIDE; - int GetPageSize() const wxOVERRIDE; - void ClearSel() wxOVERRIDE; - void ClearTicks() wxOVERRIDE; - void SetLineSize(int lineSize) wxOVERRIDE; - int GetLineSize() const wxOVERRIDE; - int GetSelEnd() const wxOVERRIDE; - int GetSelStart() const wxOVERRIDE; - void SetSelection(int minPos, int maxPos) wxOVERRIDE; - void SetThumbLength(int len) wxOVERRIDE; - int GetThumbLength() const wxOVERRIDE; - void SetTick(int tickPos) wxOVERRIDE; - - void Command(wxCommandEvent& event) wxOVERRIDE; - // osx specific event handling common for all osx-ports - - virtual bool OSXHandleClicked( double timestampsec ) wxOVERRIDE; - virtual void TriggerScrollEvent( wxEventType scrollEvent ) wxOVERRIDE; - -protected: - // Platform-specific implementation of SetTickFreq - virtual void DoSetTickFreq(int freq) wxOVERRIDE; - - virtual wxSize DoGetBestSize() const wxOVERRIDE; - virtual void DoSetSize(int x, int y, int w, int h, int sizeFlags) wxOVERRIDE; - virtual void DoMoveWindow(int x, int y, int w, int h) wxOVERRIDE; - - // set min/max size of the slider - virtual void DoSetSizeHints( int minW, int minH, - int maxW, int maxH, - int incW, int incH) wxOVERRIDE; - - // Common processing to invert slider values based on wxSL_INVERSE - virtual int ValueInvertOrNot(int value) const wxOVERRIDE; - - wxStaticText* m_macMinimumStatic ; - wxStaticText* m_macMaximumStatic ; - wxStaticText* m_macValueStatic ; - - int m_rangeMin; - int m_rangeMax; - int m_pageSize; - int m_lineSize; - int m_tickFreq; -private : - virtual wxWindowList GetCompositeWindowParts() const wxOVERRIDE - { - wxWindowList parts; - parts.push_back(m_macMinimumStatic); - parts.push_back(m_macMaximumStatic); - parts.push_back(m_macValueStatic); - return parts; - } - - wxDECLARE_EVENT_TABLE(); -}; - -#endif - // _WX_SLIDER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/sound.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/sound.h deleted file mode 100644 index e35d0908..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/sound.h +++ /dev/null @@ -1,79 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/sound.h -// Purpose: wxSound class (loads and plays short Windows .wav files). -// Optional on non-Windows platforms. -// Author: Ryan Norton, Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Ryan Norton, Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SOUND_H_ -#define _WX_SOUND_H_ - -#if wxUSE_SOUND - -#include "wx/object.h" - -class WXDLLIMPEXP_FWD_ADV wxSoundTimer; - -class WXDLLIMPEXP_ADV wxSoundData -{ -public : - wxSoundData(); - virtual ~wxSoundData(); - - virtual bool Play(unsigned int flags) = 0; - // stops the sound and deletes the optional timer - virtual void Stop(); - // mark this to be deleted - virtual void MarkForDeletion(); - virtual bool IsMarkedForDeletion() const { return m_markedForDeletion; } - - // does the true work of stopping and cleaning up - virtual void DoStop() = 0; - -protected: - unsigned int m_flags; - bool m_markedForDeletion; -} ; - -class WXDLLIMPEXP_ADV wxSound : public wxSoundBase -{ -public: - wxSound(); - wxSound(const wxString& fileName, bool isResource = false); - wxSound(size_t size, const void* data); - virtual ~wxSound(); - - // Create from resource or file - bool Create(const wxString& fileName, bool isResource = false); - // Create from data - bool Create(size_t size, const void* data); - - bool IsOk() const { return m_data != NULL; } - - // Stop playing any sound - static void Stop(); - - // Returns true if a sound is being played - static bool IsPlaying(); - - // Notification when a sound has stopped - static void SoundStopped(const wxSoundData* data); - -protected: - bool DoPlay(unsigned flags) const; - void Init(); - -private: - // data of this object - class wxSoundData *m_data; - - wxDECLARE_NO_COPY_CLASS(wxSound); -}; - -#endif -#endif - // _WX_SOUND_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/spinbutt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/spinbutt.h deleted file mode 100644 index e8b48f3f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/spinbutt.h +++ /dev/null @@ -1,76 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/spinbutt.h -// Purpose: wxSpinButton class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SPINBUTT_H_ -#define _WX_SPINBUTT_H_ - -#include "wx/control.h" -#include "wx/event.h" - -/* - The wxSpinButton is like a small scrollbar than is often placed next - to a text control. - - wxSP_HORIZONTAL: horizontal spin button - wxSP_VERTICAL: vertical spin button (the default) - wxSP_ARROW_KEYS: arrow keys increment/decrement value - wxSP_WRAP: value wraps at either end - */ - -class WXDLLIMPEXP_CORE wxSpinButton : public wxSpinButtonBase -{ -public: - // construction - wxSpinButton(); - - wxSpinButton(wxWindow *parent, - wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL | wxSP_ARROW_KEYS, - const wxString& name = wxT("wxSpinButton")) - { - Create(parent, id, pos, size, style, name); - } - - virtual ~wxSpinButton(); - - bool Create(wxWindow *parent, - wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL | wxSP_ARROW_KEYS, - const wxString& name = wxT("wxSpinButton")); - - - // accessors - virtual void SetRange(int minVal, int maxVal); - virtual int GetValue() const ; - virtual void SetValue(int val); - - // implementation - - virtual void TriggerScrollEvent( wxEventType scrollEvent ) ; - - // osx specific event handling common for all osx-ports - - virtual bool OSXHandleClicked( double timestampsec ); - -protected: - void SendThumbTrackEvent() ; - - virtual wxSize DoGetBestSize() const; - -private: - wxDECLARE_DYNAMIC_CLASS(wxSpinButton); -}; - -#endif - // _WX_SPINBUTT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/srchctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/srchctrl.h deleted file mode 100644 index 4a4d88af..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/srchctrl.h +++ /dev/null @@ -1,87 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/srchctrl.h -// Purpose: mac carbon wxSearchCtrl class -// Author: Vince Harron -// Created: 2006-02-19 -// Copyright: Vince Harron -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SEARCHCTRL_H_ -#define _WX_SEARCHCTRL_H_ - -#if wxUSE_SEARCHCTRL - -class wxSearchWidgetImpl; - -class WXDLLIMPEXP_CORE wxSearchCtrl : public wxSearchCtrlBase -{ -public: - // creation - // -------- - - wxSearchCtrl(); - wxSearchCtrl(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSearchCtrlNameStr); - - virtual ~wxSearchCtrl(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSearchCtrlNameStr); - -#if wxUSE_MENUS - // get/set search button menu - // -------------------------- - virtual void SetMenu( wxMenu* menu ) wxOVERRIDE; - virtual wxMenu* GetMenu() wxOVERRIDE; -#endif // wxUSE_MENUS - - // get/set search options - // ---------------------- - virtual void ShowSearchButton( bool show ) wxOVERRIDE; - virtual bool IsSearchButtonVisible() const wxOVERRIDE; - - virtual void ShowCancelButton( bool show ) wxOVERRIDE; - virtual bool IsCancelButtonVisible() const wxOVERRIDE; - - // TODO: In 2.9 these should probably be virtual, and declared in the base class... - void SetDescriptiveText(const wxString& text); - wxString GetDescriptiveText() const; - - virtual bool HandleSearchFieldSearchHit() ; - virtual bool HandleSearchFieldCancelHit() ; - - wxSearchWidgetImpl * GetSearchPeer() const; - -protected: - - wxSize DoGetBestSize() const wxOVERRIDE; - - void Init(); - -#if wxUSE_MENUS - wxMenu *m_menu; -#endif // wxUSE_MENUS - - wxString m_descriptiveText; - -private: - wxDECLARE_DYNAMIC_CLASS(wxSearchCtrl); - - wxDECLARE_EVENT_TABLE(); -}; - -#endif // wxUSE_SEARCHCTRL - -#endif // _WX_SEARCHCTRL_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statbmp.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statbmp.h deleted file mode 100644 index 45d1f3c9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statbmp.h +++ /dev/null @@ -1,2 +0,0 @@ -#define wxGenericStaticBitmap wxStaticBitmap -#include "wx/generic/statbmpg.h" diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statbox.h deleted file mode 100644 index 981d2c3f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statbox.h +++ /dev/null @@ -1,49 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/statbox.h -// Purpose: wxStaticBox class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBOX_H_ -#define _WX_STATBOX_H_ - -class WXDLLIMPEXP_CORE wxStaticBox : public wxStaticBoxBase -{ - wxDECLARE_DYNAMIC_CLASS(wxStaticBox); - -public: - wxStaticBox() {} - wxStaticBox(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {} - virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {} - - virtual void GetBordersForSizer(int *borderTop, int *borderOther) const; - - virtual bool AcceptsFocus() const { return false; } - - // protect native font of box - virtual bool SetFont( const wxFont &font ); -}; - -#endif - // _WX_STATBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statline.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statline.h deleted file mode 100644 index 204c8759..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statline.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/statline.h -// Purpose: a generic wxStaticLine class used for mac before adaptation -// Author: Vadim Zeitlin -// Created: 28.06.99 -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GENERIC_STATLINE_H_ -#define _WX_GENERIC_STATLINE_H_ - -class wxStaticBox; - -// ---------------------------------------------------------------------------- -// wxStaticLine -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxStaticLine : public wxStaticLineBase -{ -public: - // constructors and pseudo-constructors - wxStaticLine() : m_statbox(NULL) { } - - wxStaticLine( wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxLI_HORIZONTAL, - const wxString &name = wxStaticLineNameStr ) - : m_statbox(NULL) - { - Create(parent, id, pos, size, style, name); - } - - bool Create( wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxLI_HORIZONTAL, - const wxString &name = wxStaticLineNameStr ); - - // it's necessary to override this wxWindow function because we - // will want to return the main widget for m_statbox - // - WXWidget GetMainWidget() const; - -protected: - // we implement the static line using a static box - wxStaticBox *m_statbox; - - wxDECLARE_DYNAMIC_CLASS(wxStaticLine); -}; - -#endif // _WX_GENERIC_STATLINE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/stattext.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/stattext.h deleted file mode 100644 index 28c89a05..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/stattext.h +++ /dev/null @@ -1,57 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/stattext.h -// Purpose: wxStaticText class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATTEXT_H_ -#define _WX_STATTEXT_H_ - -class WXDLLIMPEXP_CORE wxStaticText: public wxStaticTextBase -{ -public: - wxStaticText() { } - - wxStaticText(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr); - - // accessors - void SetLabel( const wxString &str ) ; - bool SetFont( const wxFont &font ); - - virtual bool AcceptsFocus() const { return false; } - -protected : - - virtual wxString DoGetLabel() const; - virtual void DoSetLabel(const wxString& str); - - virtual wxSize DoGetBestSize() const ; - -#if wxUSE_MARKUP && wxOSX_USE_COCOA - virtual bool DoSetLabelMarkup(const wxString& markup); -#endif // wxUSE_MARKUP && wxOSX_USE_COCOA - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticText); -}; - -#endif - // _WX_STATTEXT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statusbr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statusbr.h deleted file mode 100644 index 76d6bbae..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/statusbr.h +++ /dev/null @@ -1,42 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/statusbr.h -// Purpose: native implementation of wxStatusBar. -// Optional: can use generic version instead. -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBAR_H_ -#define _WX_STATBAR_H_ - -class WXDLLIMPEXP_CORE wxStatusBarMac : public wxStatusBarGeneric -{ -public: - wxStatusBarMac(); - wxStatusBarMac(wxWindow *parent, wxWindowID id = wxID_ANY, - long style = wxSTB_DEFAULT_STYLE, - const wxString& name = wxStatusBarNameStr); - - virtual ~wxStatusBarMac(); - - bool Create(wxWindow *parent, wxWindowID id = wxID_ANY, - long style = wxSTB_DEFAULT_STYLE, - const wxString& name = wxStatusBarNameStr); - - // Implementation - virtual void MacHiliteChanged() wxOVERRIDE; - void OnPaint(wxPaintEvent& event); - -protected: - virtual void DrawFieldText(wxDC& dc, const wxRect& rc, int i, int textHeight) wxOVERRIDE; - virtual void DrawField(wxDC& dc, int i, int textHeight) wxOVERRIDE; - virtual void DoUpdateStatusText(int number = 0) wxOVERRIDE; - - wxDECLARE_DYNAMIC_CLASS(wxStatusBarMac); - wxDECLARE_EVENT_TABLE(); -}; - -#endif // _WX_STATBAR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/taskbarosx.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/taskbarosx.h deleted file mode 100644 index cf7056a2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/taskbarosx.h +++ /dev/null @@ -1,43 +0,0 @@ -///////////////////////////////////////////////////////////////////////// -// File: wx/mac/taskbarosx.h -// Purpose: Defines wxTaskBarIcon class for OSX -// Author: Ryan Norton -// Modified by: -// Created: 04/04/2003 -// Copyright: (c) Ryan Norton, 2003 -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////// - -#ifndef _TASKBAR_H_ -#define _TASKBAR_H_ - -class WXDLLIMPEXP_FWD_CORE wxIcon; -class WXDLLIMPEXP_FWD_CORE wxMenu; - -class WXDLLIMPEXP_ADV wxTaskBarIcon : public wxTaskBarIconBase -{ - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxTaskBarIcon); -public: - wxTaskBarIcon(wxTaskBarIconType iconType = wxTBI_DEFAULT_TYPE); - virtual ~wxTaskBarIcon(); - - // returns true if the taskbaricon is in the global menubar -#if wxOSX_USE_COCOA - bool OSXIsStatusItem(); -#else - bool OSXIsStatusItem() { return false; } -#endif - bool IsOk() const { return true; } - - bool IsIconInstalled() const; - bool SetIcon(const wxIcon& icon, const wxString& tooltip = wxEmptyString); - bool RemoveIcon(); - bool PopupMenu(wxMenu *menu); - -protected: - wxTaskBarIconType m_type; - class wxTaskBarIconImpl* m_impl; - friend class wxTaskBarIconImpl; -}; -#endif - // _TASKBAR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/textctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/textctrl.h deleted file mode 100644 index 31892a77..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/textctrl.h +++ /dev/null @@ -1,154 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/textctrl.h -// Purpose: wxTextCtrl class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTCTRL_H_ -#define _WX_TEXTCTRL_H_ - -#if wxUSE_SYSTEM_OPTIONS - // set this to 'true' if you want to use the 'classic' MLTE-based implementation - // instead of the HIView-based implementation in 10.3 and upwards, the former - // has more features (backgrounds etc.), but may show redraw artefacts and other - // problems depending on your usage; hence, the default is 'false'. - #define wxMAC_TEXTCONTROL_USE_MLTE wxT("mac.textcontrol-use-mlte") - // set this to 'true' if you want editable text controls to have spell checking turned - // on by default, you can change this setting individually on a control using MacCheckSpelling - #define wxMAC_TEXTCONTROL_USE_SPELL_CHECKER wxT("mac.textcontrol-use-spell-checker") -#endif - -#include "wx/control.h" -#include "wx/textctrl.h" - -class WXDLLIMPEXP_CORE wxTextCtrl: public wxTextCtrlBase -{ - wxDECLARE_DYNAMIC_CLASS(wxTextCtrl); - -public: - wxTextCtrl() - { Init(); } - - wxTextCtrl(wxWindow *parent, - wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTextCtrlNameStr) - { - Init(); - Create(parent, id, value, pos, size, style, validator, name); - } - - virtual ~wxTextCtrl(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTextCtrlNameStr); - - // accessors - // --------- - - virtual int GetLineLength(long lineNo) const wxOVERRIDE; - virtual wxString GetLineText(long lineNo) const wxOVERRIDE; - virtual int GetNumberOfLines() const wxOVERRIDE; - - virtual bool IsModified() const wxOVERRIDE; - - // operations - // ---------- - - - // sets/clears the dirty flag - virtual void MarkDirty() wxOVERRIDE; - virtual void DiscardEdits() wxOVERRIDE; - - // text control under some platforms supports the text styles: these - // methods apply the given text style to the given selection or to - // set/get the style which will be used for all appended text - virtual bool SetFont( const wxFont &font ) wxOVERRIDE; - virtual bool GetStyle(long position, wxTextAttr& style) wxOVERRIDE; - virtual bool SetStyle(long start, long end, const wxTextAttr& style) wxOVERRIDE; - virtual bool SetDefaultStyle(const wxTextAttr& style) wxOVERRIDE; - - // translate between the position (which is just an index into the textctrl - // considering all its contents as a single strings) and (x, y) coordinates - // which represent column and line. - virtual long XYToPosition(long x, long y) const wxOVERRIDE; - virtual bool PositionToXY(long pos, long *x, long *y) const wxOVERRIDE; - - virtual void ShowPosition(long pos) wxOVERRIDE; - - // overrides so that we can send text updated events - virtual void Copy() wxOVERRIDE; - virtual void Cut() wxOVERRIDE; - virtual void Paste() wxOVERRIDE; - - // Implementation - // -------------- - virtual void Command(wxCommandEvent& event) wxOVERRIDE; - - virtual bool AcceptsFocus() const wxOVERRIDE; - - // callbacks - void OnDropFiles(wxDropFilesEvent& event); - void OnChar(wxKeyEvent& event); // Process 'enter' if required - void OnKeyDown(wxKeyEvent& event); // Process clipboard shortcuts - - void OnCut(wxCommandEvent& event); - void OnCopy(wxCommandEvent& event); - void OnPaste(wxCommandEvent& event); - void OnUndo(wxCommandEvent& event); - void OnRedo(wxCommandEvent& event); - void OnDelete(wxCommandEvent& event); - void OnSelectAll(wxCommandEvent& event); - - void OnUpdateCut(wxUpdateUIEvent& event); - void OnUpdateCopy(wxUpdateUIEvent& event); - void OnUpdatePaste(wxUpdateUIEvent& event); - void OnUpdateUndo(wxUpdateUIEvent& event); - void OnUpdateRedo(wxUpdateUIEvent& event); - void OnUpdateDelete(wxUpdateUIEvent& event); - void OnUpdateSelectAll(wxUpdateUIEvent& event); - - void OnContextMenu(wxContextMenuEvent& event); - - virtual bool MacSetupCursor( const wxPoint& pt ) wxOVERRIDE; - - virtual void MacVisibilityChanged() wxOVERRIDE; - virtual void MacSuperChangedPosition() wxOVERRIDE; - virtual void MacCheckSpelling(bool check); - -protected: - // common part of all ctors - void Init(); - - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - // flag is set to true when the user edits the controls contents - bool m_dirty; - - virtual void EnableTextChangedEvents(bool WXUNUSED(enable)) wxOVERRIDE - { - // nothing to do here as the events are never generated when we change - // the controls value programmatically anyhow - } - -private : - wxMenu *m_privateContextMenu; - - wxDECLARE_EVENT_TABLE(); -}; - -#endif // _WX_TEXTCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/textentry.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/textentry.h deleted file mode 100644 index 29939d83..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/textentry.h +++ /dev/null @@ -1,115 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/textentry.h -// Purpose: wxTextEntry class -// Author: Stefan Csomor -// Modified by: Kevin Ollivier -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_TEXTENTRY_H_ -#define _WX_OSX_TEXTENTRY_H_ - -#if wxUSE_SYSTEM_OPTIONS - // set this to 'true' if you want to use the 'classic' MLTE-based implementation - // instead of the HIView-based implementation in 10.3 and upwards, the former - // has more features (backgrounds etc.), but may show redraw artefacts and other - // problems depending on your usage; hence, the default is 'false'. - #define wxMAC_TEXTCONTROL_USE_MLTE wxT("mac.textcontrol-use-mlte") - // set this to 'true' if you want editable text controls to have spell checking turned - // on by default, you can change this setting individually on a control using MacCheckSpelling - #define wxMAC_TEXTCONTROL_USE_SPELL_CHECKER wxT("mac.textcontrol-use-spell-checker") -#endif - -#include "wx/control.h" - -// forward decl for wxListWidgetImpl implementation type. -class WXDLLIMPEXP_FWD_CORE wxTextWidgetImpl; - -class WXDLLIMPEXP_CORE wxTextEntry: public wxTextEntryBase -{ - -public: - wxTextEntry(); - virtual ~wxTextEntry(); - - virtual bool IsEditable() const; - - // If the return values from and to are the same, there is no selection. - virtual void GetSelection(long* from, long* to) const; - - // operations - // ---------- - - // editing - virtual void Clear(); - virtual void Remove(long from, long to); - - // set the max number of characters which may be entered - // in a single line text control - virtual void SetMaxLength(unsigned long len); - - virtual void ForceUpper(); - - // writing text inserts it at the current position; - // appending always inserts it at the end - virtual void WriteText(const wxString& text); - - // Clipboard operations - virtual void Copy(); - virtual void Cut(); - virtual void Paste(); - - virtual bool CanCopy() const; - virtual bool CanCut() const; - virtual bool CanPaste() const; - - // Undo/redo - virtual void Undo(); - virtual void Redo(); - - virtual bool CanUndo() const; - virtual bool CanRedo() const; - - // Insertion point - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const; - virtual wxTextPos GetLastPosition() const; - - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); - - virtual bool SendMaxLenEvent(); - - // set the grayed out hint text - virtual bool SetHint(const wxString& hint); - virtual wxString GetHint() const; - - // Implementation - // -------------- - - virtual wxTextWidgetImpl * GetTextPeer() const; - wxTextCompleter *OSXGetCompleter() const { return m_completer; } - -protected: - - virtual wxString DoGetValue() const; - - virtual bool DoAutoCompleteStrings(const wxArrayString& choices); - virtual bool DoAutoCompleteCustom(wxTextCompleter *completer); - - // The object providing auto-completions or NULL if none. - wxTextCompleter *m_completer; - - bool m_editable; - - // need to make this public because of the current implementation via callbacks - unsigned long m_maxLength; - -private: - wxString m_hintString; -}; - -#endif // _WX_OSX_TEXTENTRY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/tglbtn.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/tglbtn.h deleted file mode 100644 index 1283d33f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/tglbtn.h +++ /dev/null @@ -1,85 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/tglbtn.h -// Purpose: Declaration of the wxToggleButton class, which implements a -// toggle button under wxMac. -// Author: Stefan Csomor -// Modified by: -// Created: 08.02.01 -// Copyright: (c) 2004 Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TOGGLEBUTTON_H_ -#define _WX_TOGGLEBUTTON_H_ - -class WXDLLIMPEXP_CORE wxToggleButton : public wxToggleButtonBase -{ -public: - wxToggleButton() {} - wxToggleButton(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - - virtual void SetValue(bool value); - virtual bool GetValue() const ; - - virtual bool OSXHandleClicked( double timestampsec ); - - virtual void Command(wxCommandEvent& event); - -protected: - virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxToggleButton); -}; - - -class WXDLLIMPEXP_CORE wxBitmapToggleButton : public wxToggleButton -{ -public: - wxBitmapToggleButton() {} - wxBitmapToggleButton(wxWindow *parent, - wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxBitmapToggleButton); -}; - -#endif // _WX_TOGGLEBUTTON_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/timectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/timectrl.h deleted file mode 100644 index 6673fcce..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/timectrl.h +++ /dev/null @@ -1,50 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/timectrl.h -// Purpose: Declaration of wxOSX-specific wxTimePickerCtrl class. -// Author: Vadim Zeitlin -// Created: 2011-12-18 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_TIMECTRL_H_ -#define _WX_OSX_TIMECTRL_H_ - -// ---------------------------------------------------------------------------- -// wxTimePickerCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxTimePickerCtrl : public wxTimePickerCtrlBase -{ -public: - // Constructors. - wxTimePickerCtrl() { } - - wxTimePickerCtrl(wxWindow *parent, - wxWindowID id, - const wxDateTime& dt = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTP_DEFAULT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTimePickerCtrlNameStr) - { - Create(parent, id, dt, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxDateTime& dt = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTP_DEFAULT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTimePickerCtrlNameStr); - - virtual void OSXGenerateEvent(const wxDateTime& dt); - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxTimePickerCtrl); -}; - -#endif // _WX_OSX_TIMECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/toolbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/toolbar.h deleted file mode 100644 index 70a33f77..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/toolbar.h +++ /dev/null @@ -1,130 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/toolbar.h -// Purpose: wxToolBar class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TOOLBAR_H_ -#define _WX_TOOLBAR_H_ - -#if wxUSE_TOOLBAR - -#include "wx/tbarbase.h" -#include "wx/dynarray.h" - -class WXDLLIMPEXP_CORE wxToolBar: public wxToolBarBase -{ - wxDECLARE_DYNAMIC_CLASS(wxToolBar); -public: - /* - * Public interface - */ - - wxToolBar() { Init(); } - - wxToolBar(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxTB_DEFAULT_STYLE, - const wxString& name = wxToolBarNameStr) - { - Init(); - Create(parent, id, pos, size, style, name); - } - virtual ~wxToolBar(); - - bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxTB_DEFAULT_STYLE, - const wxString& name = wxToolBarNameStr); - - virtual void SetWindowStyleFlag(long style) wxOVERRIDE; - - virtual bool Destroy() wxOVERRIDE; - - // override/implement base class virtuals - virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const wxOVERRIDE; - -#ifndef __WXOSX_IPHONE__ - virtual bool Show(bool show = true) wxOVERRIDE; - virtual bool IsShown() const wxOVERRIDE; -#endif - virtual bool Realize() wxOVERRIDE; - - virtual void SetToolBitmapSize(const wxSize& size) wxOVERRIDE; - virtual wxSize GetToolSize() const wxOVERRIDE; - - virtual void SetRows(int nRows) wxOVERRIDE; - - virtual void SetToolNormalBitmap(int id, const wxBitmap& bitmap) wxOVERRIDE; - virtual void SetToolDisabledBitmap(int id, const wxBitmap& bitmap) wxOVERRIDE; - -#ifndef __WXOSX_IPHONE__ - // Add all the buttons - - virtual wxString MacGetToolTipString( wxPoint &where ) wxOVERRIDE; - void OnPaint(wxPaintEvent& event) ; - void OnMouse(wxMouseEvent& event) ; - virtual void MacSuperChangedPosition() wxOVERRIDE; -#endif - -#if wxOSX_USE_NATIVE_TOOLBAR - // make all tools selectable - void OSXSetSelectableTools(bool set); - void OSXSelectTool(int toolId); - - bool MacInstallNativeToolbar(bool usesNative); - void MacUninstallNativeToolbar(); - bool MacWantsNativeToolbar(); - bool MacTopLevelHasNativeToolbar(bool *ownToolbarInstalled) const; -#endif - - virtual wxToolBarToolBase *CreateTool(int id, - const wxString& label, - const wxBitmap& bmpNormal, - const wxBitmap& bmpDisabled = wxNullBitmap, - wxItemKind kind = wxITEM_NORMAL, - wxObject *clientData = NULL, - const wxString& shortHelp = wxEmptyString, - const wxString& longHelp = wxEmptyString) wxOVERRIDE; - virtual wxToolBarToolBase *CreateTool(wxControl *control, - const wxString& label) wxOVERRIDE; - -protected: - // common part of all ctors - void Init(); - - void DoLayout(); - - void DoSetSize(int x, int y, int width, int height, int sizeFlags) wxOVERRIDE; - -#ifndef __WXOSX_IPHONE__ - virtual void DoGetSize(int *width, int *height) const wxOVERRIDE; - virtual wxSize DoGetBestSize() const wxOVERRIDE; -#endif -#ifdef __WXOSX_COCOA__ - virtual void DoGetPosition(int*x, int *y) const wxOVERRIDE; -#endif - virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool) wxOVERRIDE; - virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool) wxOVERRIDE; - - virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable) wxOVERRIDE; - virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle) wxOVERRIDE; - virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle) wxOVERRIDE; - - wxDECLARE_EVENT_TABLE(); -#if wxOSX_USE_NATIVE_TOOLBAR - bool m_macUsesNativeToolbar ; - void* m_macToolbar ; -#endif -#ifdef __WXOSX_IPHONE__ - WX_UIView m_macToolbar; -#endif -}; - -#endif // wxUSE_TOOLBAR - -#endif - // _WX_TOOLBAR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/tooltip.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/tooltip.h deleted file mode 100644 index c2295550..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/tooltip.h +++ /dev/null @@ -1,57 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/tooltip.h -// Purpose: wxToolTip class - tooltip control -// Author: Stefan Csomor -// Modified by: -// Created: 31.01.99 -// Copyright: (c) 1999 Robert Roebling, Vadim Zeitlin, Stefan Csomor -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MAC_TOOLTIP_H_ -#define _WX_MAC_TOOLTIP_H_ - -#include "wx/string.h" -#include "wx/event.h" - -class WXDLLIMPEXP_CORE wxToolTip : public wxObject -{ -public: - // ctor & dtor - wxToolTip(const wxString &tip); - virtual ~wxToolTip(); - - // accessors - // tip text - void SetTip(const wxString& tip); - const wxString& GetTip() const { return m_text; } - - // the window we're associated with - void SetWindow(wxWindow *win); - wxWindow *GetWindow() const { return m_window; } - - // controlling tooltip behaviour: globally change tooltip parameters - // enable or disable the tooltips globally - static void Enable(bool flag); - // set the delay after which the tooltip appears - static void SetDelay(long milliseconds); - // set the delay after which the tooltip disappears or how long the tooltip remains visible - static void SetAutoPop(long milliseconds); - // set the delay between subsequent tooltips to appear - static void SetReshow(long milliseconds); - static void NotifyWindowDelete( WXHWND win ) ; - - // implementation only from now on - // ------------------------------- - - // should be called in response to mouse events - static void RelayEvent(wxWindow *win , wxMouseEvent &event); - static void RemoveToolTips(); - -private: - wxString m_text; // tooltip text - wxWindow *m_window; // window we're associated with - wxDECLARE_ABSTRACT_CLASS(wxToolTip); -}; - -#endif // _WX_MAC_TOOLTIP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/toplevel.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/toplevel.h deleted file mode 100644 index 72f58c98..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/toplevel.h +++ /dev/null @@ -1,109 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/toplevel.h -// Purpose: wxTopLevelWindowMac is the Mac implementation of wxTLW -// Author: Stefan Csomor -// Modified by: -// Created: 20.09.01 -// Copyright: (c) 2001 Stefan Csomor -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSW_TOPLEVEL_H_ -#define _WX_MSW_TOPLEVEL_H_ - -// ---------------------------------------------------------------------------- -// wxTopLevelWindowMac -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTopLevelWindowMac : public wxTopLevelWindowBase -{ -public: - // constructors and such - wxTopLevelWindowMac() { Init(); } - - wxTopLevelWindowMac(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Init(); - - (void)Create(parent, id, title, pos, size, style, name); - } - - virtual ~wxTopLevelWindowMac(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - bool Create(wxWindow *parent, WXWindow nativeWindow); - - virtual bool Destroy() wxOVERRIDE; - - virtual wxPoint GetClientAreaOrigin() const wxOVERRIDE; - - // Attracts the users attention to this window if the application is - // inactive (should be called when a background event occurs) - virtual void RequestUserAttention(int flags = wxUSER_ATTENTION_INFO) wxOVERRIDE; - - // implement base class pure virtuals - virtual void Maximize(bool maximize = true) wxOVERRIDE; - virtual bool IsMaximized() const wxOVERRIDE; - virtual void Iconize(bool iconize = true) wxOVERRIDE; - virtual bool IsIconized() const wxOVERRIDE; - virtual void Restore() wxOVERRIDE; - - virtual bool IsActive() wxOVERRIDE; - - virtual void ShowWithoutActivating() wxOVERRIDE; - bool EnableFullScreenView(bool enable = true) wxOVERRIDE; - virtual bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL) wxOVERRIDE; - virtual bool IsFullScreen() const wxOVERRIDE; - - // implementation from now on - // -------------------------- - - virtual void SetTitle( const wxString& title) wxOVERRIDE; - virtual wxString GetTitle() const wxOVERRIDE; - - // EnableCloseButton(false) used to disable the "Close" - // button on the title bar - virtual bool EnableCloseButton(bool enable = true) wxOVERRIDE; - virtual bool EnableMaximizeButton(bool enable = true) wxOVERRIDE; - virtual bool EnableMinimizeButton(bool enable = true) wxOVERRIDE; - - virtual void SetLabel(const wxString& label) wxOVERRIDE { SetTitle( label ); } - virtual wxString GetLabel() const wxOVERRIDE { return GetTitle(); } - - virtual void OSXSetModified(bool modified) wxOVERRIDE; - virtual bool OSXIsModified() const wxOVERRIDE; - - virtual void SetRepresentedFilename(const wxString& filename) wxOVERRIDE; - - // do *not* call this to iconize the frame, this is a private function! - void OSXSetIconizeState(bool iconic); - -protected: - // common part of all ctors - void Init(); - - // is the frame currently iconized? - bool m_iconized; - - // should the frame be maximized when it will be shown? set by Maximize() - // when it is called while the frame is hidden - bool m_maximizeOnShow; - -private : - wxDECLARE_EVENT_TABLE(); -}; - -#endif // _WX_MSW_TOPLEVEL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/uma.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/uma.h deleted file mode 100644 index e69de29b..00000000 diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/webview_webkit.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/webview_webkit.h deleted file mode 100644 index 14b56696..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/webview_webkit.h +++ /dev/null @@ -1,186 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: include/wx/osx/webkit.h -// Purpose: wxWebViewWebKit - embeddable web kit control, -// OS X implementation of web view component -// Author: Jethro Grassie / Kevin Ollivier / Marianne Gagnon -// Modified by: -// Created: 2004-4-16 -// Copyright: (c) Jethro Grassie / Kevin Ollivier / Marianne Gagnon -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WEBKIT_H -#define _WX_WEBKIT_H - -#include "wx/defs.h" - -#if wxUSE_WEBVIEW && wxUSE_WEBVIEW_WEBKIT && defined(__WXOSX__) - -#include "wx/control.h" -#include "wx/webview.h" - -#include "wx/osx/core/objcid.h" - -// ---------------------------------------------------------------------------- -// Web Kit Control -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_WEBVIEW wxWebViewWebKit : public wxWebView -{ -public: - wxDECLARE_DYNAMIC_CLASS(wxWebViewWebKit); - - wxWebViewWebKit() {} - wxWebViewWebKit(wxWindow *parent, - wxWindowID winID = wxID_ANY, - const wxString& strURL = wxWebViewDefaultURLStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxString& name = wxWebViewNameStr) - { - Create(parent, winID, strURL, pos, size, style, name); - } - bool Create(wxWindow *parent, - wxWindowID winID = wxID_ANY, - const wxString& strURL = wxWebViewDefaultURLStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxString& name = wxWebViewNameStr) wxOVERRIDE; - virtual ~wxWebViewWebKit(); - - virtual bool CanGoBack() const wxOVERRIDE; - virtual bool CanGoForward() const wxOVERRIDE; - virtual void GoBack() wxOVERRIDE; - virtual void GoForward() wxOVERRIDE; - virtual void Reload(wxWebViewReloadFlags flags = wxWEBVIEW_RELOAD_DEFAULT) wxOVERRIDE; - virtual void Stop() wxOVERRIDE; - virtual wxString GetPageSource() const wxOVERRIDE; - virtual wxString GetPageText() const wxOVERRIDE; - - virtual void Print() wxOVERRIDE; - - virtual void LoadURL(const wxString& url) wxOVERRIDE; - virtual wxString GetCurrentURL() const wxOVERRIDE; - virtual wxString GetCurrentTitle() const wxOVERRIDE; - virtual wxWebViewZoom GetZoom() const wxOVERRIDE; - virtual void SetZoom(wxWebViewZoom zoom) wxOVERRIDE; - - virtual void SetZoomType(wxWebViewZoomType zoomType) wxOVERRIDE; - virtual wxWebViewZoomType GetZoomType() const wxOVERRIDE; - virtual bool CanSetZoomType(wxWebViewZoomType type) const wxOVERRIDE; - - virtual bool IsBusy() const wxOVERRIDE { return m_busy; } - - //History functions - virtual void ClearHistory() wxOVERRIDE; - virtual void EnableHistory(bool enable = true) wxOVERRIDE; - virtual wxVector<wxSharedPtr<wxWebViewHistoryItem> > GetBackwardHistory() wxOVERRIDE; - virtual wxVector<wxSharedPtr<wxWebViewHistoryItem> > GetForwardHistory() wxOVERRIDE; - virtual void LoadHistoryItem(wxSharedPtr<wxWebViewHistoryItem> item) wxOVERRIDE; - - //Undo / redo functionality - virtual bool CanUndo() const wxOVERRIDE; - virtual bool CanRedo() const wxOVERRIDE; - virtual void Undo() wxOVERRIDE; - virtual void Redo() wxOVERRIDE; - - //Find function - virtual long Find(const wxString& text, int flags = wxWEBVIEW_FIND_DEFAULT) wxOVERRIDE - { - wxUnusedVar(text); - wxUnusedVar(flags); - return wxNOT_FOUND; - } - - //Clipboard functions - virtual bool CanCut() const wxOVERRIDE { return true; } - virtual bool CanCopy() const wxOVERRIDE { return true; } - virtual bool CanPaste() const wxOVERRIDE { return true; } - virtual void Cut() wxOVERRIDE; - virtual void Copy() wxOVERRIDE; - virtual void Paste() wxOVERRIDE; - - //Editing functions - virtual void SetEditable(bool enable = true) wxOVERRIDE; - virtual bool IsEditable() const wxOVERRIDE; - - //Selection - virtual void DeleteSelection() wxOVERRIDE; - virtual bool HasSelection() const wxOVERRIDE; - virtual void SelectAll() wxOVERRIDE; - virtual wxString GetSelectedText() const wxOVERRIDE; - virtual wxString GetSelectedSource() const wxOVERRIDE; - virtual void ClearSelection() wxOVERRIDE; - - void RunScript(const wxString& javascript) wxOVERRIDE; - - //Virtual Filesystem Support - virtual void RegisterHandler(wxSharedPtr<wxWebViewHandler> handler) wxOVERRIDE; - - virtual void* GetNativeBackend() const wxOVERRIDE { return m_webView; } - - // ---- methods not from the parent (common) interface - bool CanGetPageSource() const; - - void SetScrollPos(int pos); - int GetScrollPos(); - - bool CanIncreaseTextSize() const; - void IncreaseTextSize(); - bool CanDecreaseTextSize() const; - void DecreaseTextSize(); - - float GetWebkitZoom() const; - void SetWebkitZoom(float zoom); - - // don't hide base class virtuals - virtual void SetScrollPos( int orient, int pos, bool refresh = true ) wxOVERRIDE - { return wxControl::SetScrollPos(orient, pos, refresh); } - virtual int GetScrollPos( int orient ) const wxOVERRIDE - { return wxControl::GetScrollPos(orient); } - - //we need to resize the webview when the control size changes - void OnSize(wxSizeEvent &event); - void OnMove(wxMoveEvent &event); - void OnMouseEvents(wxMouseEvent &event); - - bool m_busy; - bool m_nextNavigationIsNewWindow; - -protected: - virtual void DoSetPage(const wxString& html, const wxString& baseUrl) wxOVERRIDE; - - wxDECLARE_EVENT_TABLE(); - void MacVisibilityChanged() wxOVERRIDE; - -private: - wxWindow *m_parent; - wxWindowID m_windowID; - wxString m_pageTitle; - - OSXWebViewPtr m_webView; - - // we may use this later to setup our own mouse events, - // so leave it in for now. - void* m_webKitCtrlEventHandler; - //It should be WebView*, but WebView is an Objective-C class - //TODO: look into using DECLARE_WXCOCOA_OBJC_CLASS rather than this. -}; - -class WXDLLIMPEXP_WEBVIEW wxWebViewFactoryWebKit : public wxWebViewFactory -{ -public: - virtual wxWebView* Create() { return new wxWebViewWebKit; } - virtual wxWebView* Create(wxWindow* parent, - wxWindowID id, - const wxString& url = wxWebViewDefaultURLStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxWebViewNameStr) - { return new wxWebViewWebKit(parent, id, url, pos, size, style, name); } -}; - -#endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_WEBKIT - -#endif // _WX_WEBKIT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/webviewhistoryitem_webkit.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/webviewhistoryitem_webkit.h deleted file mode 100644 index 6a15e465..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/webviewhistoryitem_webkit.h +++ /dev/null @@ -1,35 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: include/wx/osx/webviewhistoryitem.h -// Purpose: wxWebViewHistoryItem header for OSX -// Author: Steven Lamerton -// Copyright: (c) 2011 Steven Lamerton -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OSX_WEBVIEWHISTORYITEM_H_ -#define _WX_OSX_WEBVIEWHISTORYITEM_H_ - -#include "wx/defs.h" - -#if wxUSE_WEBVIEW && wxUSE_WEBVIEW_WEBKIT && defined(__WXOSX__) - -#include "wx/osx/core/objcid.h" - -class WXDLLIMPEXP_WEBVIEW wxWebViewHistoryItem -{ -public: - wxWebViewHistoryItem(const wxString& url, const wxString& title) : - m_url(url), m_title(title) {} - wxString GetUrl() { return m_url; } - wxString GetTitle() { return m_title; } - - friend class wxWebViewWebKit; - -private: - wxString m_url, m_title; - wxObjCID m_histItem; -}; - -#endif // wxUSE_WEBVIEW && wxUSE_WEBVIEW_WEBKIT - -#endif // _WX_OSX_WEBVIEWHISTORYITEM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/window.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/window.h deleted file mode 100644 index 192c420e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/osx/window.h +++ /dev/null @@ -1,400 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/osx/window.h -// Purpose: wxWindowMac class -// Author: Stefan Csomor -// Modified by: -// Created: 1998-01-01 -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WINDOW_H_ -#define _WX_WINDOW_H_ - -#include "wx/brush.h" -#include "wx/dc.h" - -class WXDLLIMPEXP_FWD_CORE wxButton; -class WXDLLIMPEXP_FWD_CORE wxScrollBar; -class WXDLLIMPEXP_FWD_CORE wxPanel; -class WXDLLIMPEXP_FWD_CORE wxNonOwnedWindow; - -#if wxOSX_USE_COCOA_OR_IPHONE - class WXDLLIMPEXP_FWD_CORE wxWidgetImpl ; - typedef wxWidgetImpl wxOSXWidgetImpl; -#endif - - -class WXDLLIMPEXP_CORE wxWindowMac: public wxWindowBase -{ - wxDECLARE_DYNAMIC_CLASS(wxWindowMac); - - friend class wxDC; - friend class wxPaintDC; - -public: - wxWindowMac(); - - wxWindowMac( wxWindowMac *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr ); - - virtual ~wxWindowMac(); - - bool Create( wxWindowMac *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr ); - - virtual void SendSizeEvent(int flags = 0) wxOVERRIDE; - - // implement base class pure virtuals - virtual void SetLabel( const wxString& label ) wxOVERRIDE; - virtual wxString GetLabel() const wxOVERRIDE; - - virtual void Raise() wxOVERRIDE; - virtual void Lower() wxOVERRIDE; - - virtual bool Show( bool show = true ) wxOVERRIDE; - virtual bool ShowWithEffect(wxShowEffect effect, - unsigned timeout = 0) wxOVERRIDE - { - return OSXShowWithEffect(true, effect, timeout); - } - virtual bool HideWithEffect(wxShowEffect effect, - unsigned timeout = 0) wxOVERRIDE - { - return OSXShowWithEffect(false, effect, timeout); - } - - virtual bool IsShownOnScreen() const wxOVERRIDE; - - virtual void SetFocus() wxOVERRIDE; - - virtual void WarpPointer( int x, int y ) wxOVERRIDE; - - virtual void Refresh( bool eraseBackground = true, - const wxRect *rect = NULL ) wxOVERRIDE; - - virtual void Update() wxOVERRIDE; - virtual void ClearBackground() wxOVERRIDE; - - virtual bool SetCursor( const wxCursor &cursor ) wxOVERRIDE; - virtual bool SetFont( const wxFont &font ) wxOVERRIDE; - virtual bool SetBackgroundColour( const wxColour &colour ) wxOVERRIDE; - virtual bool SetForegroundColour( const wxColour &colour ) wxOVERRIDE; - - virtual bool SetBackgroundStyle(wxBackgroundStyle style) wxOVERRIDE; - - virtual int GetCharHeight() const wxOVERRIDE; - virtual int GetCharWidth() const wxOVERRIDE; - -public: - virtual void SetScrollbar( int orient, int pos, int thumbVisible, - int range, bool refresh = true ) wxOVERRIDE; - virtual void SetScrollPos( int orient, int pos, bool refresh = true ) wxOVERRIDE; - virtual int GetScrollPos( int orient ) const wxOVERRIDE; - virtual int GetScrollThumb( int orient ) const wxOVERRIDE; - virtual int GetScrollRange( int orient ) const wxOVERRIDE; - virtual void ScrollWindow( int dx, int dy, - const wxRect* rect = NULL ) wxOVERRIDE; - virtual void AlwaysShowScrollbars(bool horz = true, bool vert = true) wxOVERRIDE; - virtual bool IsScrollbarAlwaysShown(int orient) const wxOVERRIDE - { - return orient == wxHORIZONTAL ? m_hScrollBarAlwaysShown - : m_vScrollBarAlwaysShown; - } - - virtual bool Reparent( wxWindowBase *newParent ) wxOVERRIDE; - -#if wxUSE_HOTKEY && wxOSX_USE_COCOA_OR_CARBON - // hot keys (system wide accelerators) - // ----------------------------------- - - virtual bool RegisterHotKey(int hotkeyId, int modifiers, int keycode) wxOVERRIDE; - virtual bool UnregisterHotKey(int hotkeyId) wxOVERRIDE; -#endif // wxUSE_HOTKEY - -#if wxUSE_DRAG_AND_DROP - virtual void SetDropTarget( wxDropTarget *dropTarget ) wxOVERRIDE; -#endif - - // Accept files for dragging - virtual void DragAcceptFiles( bool accept ) wxOVERRIDE; - - // implementation from now on - // -------------------------- - - void MacClientToRootWindow( int *x , int *y ) const; - - void MacWindowToRootWindow( int *x , int *y ) const; - - void MacRootWindowToWindow( int *x , int *y ) const; - - virtual wxString MacGetToolTipString( wxPoint &where ); - - // simple accessors - // ---------------- - - virtual WXWidget GetHandle() const wxOVERRIDE; - - virtual bool SetTransparent(wxByte alpha) wxOVERRIDE; - virtual bool CanSetTransparent() wxOVERRIDE; - virtual wxByte GetTransparent() const; - - // event handlers - // -------------- - - void OnMouseEvent( wxMouseEvent &event ); - - void MacOnScroll( wxScrollEvent&event ); - - virtual bool AcceptsFocus() const wxOVERRIDE; - - virtual bool IsDoubleBuffered() const wxOVERRIDE { return true; } - -public: - static long MacRemoveBordersFromStyle( long style ); - -public: - // For implementation purposes: - // sometimes decorations make the client area smaller - virtual wxPoint GetClientAreaOrigin() const wxOVERRIDE; - - wxWindowMac *FindItem(long id) const; - wxWindowMac *FindItemByHWND(WXHWND hWnd, bool controlOnly = false) const; - - virtual void TriggerScrollEvent( wxEventType scrollEvent ) ; - // this should not be overridden in classes above wxWindowMac - // because it is called from its destructor via DeleteChildren - virtual void RemoveChild( wxWindowBase *child ) wxOVERRIDE; - - virtual bool MacDoRedraw( long time ) ; - virtual void MacPaintChildrenBorders(); - virtual void MacPaintBorders( int left , int top ) ; - void MacPaintGrowBox(); - - // invalidates the borders and focus area around the control; - // must not be virtual as it will be called during destruction - void MacInvalidateBorders() ; - - WXWindow MacGetTopLevelWindowRef() const ; - wxNonOwnedWindow* MacGetTopLevelWindow() const ; - - virtual long MacGetWXBorderSize() const; - virtual long MacGetLeftBorderSize() const ; - virtual long MacGetRightBorderSize() const ; - virtual long MacGetTopBorderSize() const ; - virtual long MacGetBottomBorderSize() const ; - - virtual void MacSuperChangedPosition() ; - - // absolute coordinates of this window's root have changed - virtual void MacTopLevelWindowChangedPosition() ; - - virtual void MacChildAdded() ; - virtual void MacVisibilityChanged() ; - virtual void MacEnabledStateChanged() ; - virtual void MacHiliteChanged() ; - virtual wxInt32 MacControlHit( WXEVENTHANDLERREF handler , WXEVENTREF event ) ; - - bool MacIsReallyEnabled() ; - bool MacIsReallyHilited() ; - -#if WXWIN_COMPATIBILITY_2_8 - bool MacIsUserPane(); -#endif - bool MacIsUserPane() const; - - virtual bool MacSetupCursor( const wxPoint& pt ) ; - - // return the rectangle that would be visible of this control, - // regardless whether controls are hidden - // only taking into account clipping by parent windows - const wxRect& MacGetClippedClientRect() const ; - const wxRect& MacGetClippedRect() const ; - const wxRect& MacGetClippedRectWithOuterStructure() const ; - - // returns the visible region of this control in window ie non-client coordinates - const wxRegion& MacGetVisibleRegion( bool includeOuterStructures = false ) ; - - // returns true if children have to clipped to the content area - // (e.g., scrolled windows) - bool MacClipChildren() const { return m_clipChildren ; } - void MacSetClipChildren( bool clip ) { m_clipChildren = clip ; } - - // returns true if the grandchildren need to be clipped to the children's content area - // (e.g., splitter windows) - virtual bool MacClipGrandChildren() const { return false ; } - bool MacIsWindowScrollbar( const wxWindow* sb ) const - { return ((wxWindow*)m_hScrollBar == sb || (wxWindow*)m_vScrollBar == sb) ; } - virtual bool IsClientAreaChild(const wxWindow *child) const wxOVERRIDE - { - return !MacIsWindowScrollbar(child) && !((wxWindow*)m_growBox==child) && - wxWindowBase::IsClientAreaChild(child); - } - - void MacPostControlCreate(const wxPoint& pos, const wxSize& size) ; - wxList& GetSubcontrols() { return m_subControls; } - - // translate wxWidgets coords into ones suitable - // to be passed to CreateControl calls - // - // returns true if non-default coords are returned, false otherwise - bool MacGetBoundsForControl(const wxPoint& pos, - const wxSize& size, - int& x, int& y, - int& w, int& h , bool adjustForOrigin ) const ; - - // the 'true' OS level control for this wxWindow - wxOSXWidgetImpl* GetPeer() const; - - // optimization to avoid creating a user pane in wxWindow::Create if we already know - // we will replace it with our own peer - void DontCreatePeer(); - - // return true unless DontCreatePeer() had been called - bool ShouldCreatePeer() const; - - // sets the native implementation wrapper, can replace an existing peer, use peer = NULL to - // release existing peer - void SetPeer(wxOSXWidgetImpl* peer); - - // wraps the already existing peer with the wrapper - void SetWrappingPeer(wxOSXWidgetImpl* wrapper); - -#if wxOSX_USE_COCOA_OR_IPHONE - // the NSView or NSWindow of this window: can be used for both child and - // non-owned windows - // - // this is useful for a few Cocoa function which can work with either views - // or windows indiscriminately, e.g. for setting NSViewAnimationTargetKey - virtual void *OSXGetViewOrWindow() const; -#endif // Cocoa - - void * MacGetCGContextRef() { return m_cgContextRef ; } - void MacSetCGContextRef(void * cg) { m_cgContextRef = cg ; } - - // osx specific event handling common for all osx-ports - - virtual bool OSXHandleClicked( double timestampsec ); - virtual bool OSXHandleKeyEvent( wxKeyEvent& event ); - virtual void OSXSimulateFocusEvents(); - - bool IsNativeWindowWrapper() const { return m_isNativeWindowWrapper; } - - double GetContentScaleFactor() const wxOVERRIDE; - - // internal response to size events - virtual void MacOnInternalSize() {} - -protected: - // For controls like radio buttons which are genuinely composite - wxList m_subControls; - - // the peer object, allowing for cleaner API support - - void * m_cgContextRef ; - - // cache the clipped rectangles within the window hierarchy - void MacUpdateClippedRects() const ; - - mutable bool m_cachedClippedRectValid ; - mutable wxRect m_cachedClippedRectWithOuterStructure ; - mutable wxRect m_cachedClippedRect ; - mutable wxRect m_cachedClippedClientRect ; - mutable wxRegion m_cachedClippedRegionWithOuterStructure ; - mutable wxRegion m_cachedClippedRegion ; - mutable wxRegion m_cachedClippedClientRegion ; - - // insets of the mac control from the wx top left corner - wxPoint m_macTopLeftInset ; - wxPoint m_macBottomRightInset ; - wxByte m_macAlpha ; - - wxScrollBar* m_hScrollBar ; - wxScrollBar* m_vScrollBar ; - bool m_hScrollBarAlwaysShown; - bool m_vScrollBarAlwaysShown; - wxWindow* m_growBox ; - wxString m_label ; - - bool m_isNativeWindowWrapper; - - // set to true if we do a sharp clip at the content area of this window - // must be dynamic as eg a panel normally is not clipping precisely, but if - // it becomes the target window of a scrolled window it has to... - bool m_clipChildren ; - - virtual bool MacIsChildOfClientArea( const wxWindow* child ) const ; - - bool MacHasScrollBarCorner() const; - void MacCreateScrollBars( long style ) ; - void MacRepositionScrollBars() ; - void MacUpdateControlFont() ; - - // implement the base class pure virtuals - virtual void DoGetTextExtent(const wxString& string, - int *x, int *y, - int *descent = NULL, - int *externalLeading = NULL, - const wxFont *theFont = NULL ) const wxOVERRIDE; - - virtual void DoEnable( bool enable ) wxOVERRIDE; -#if wxUSE_MENUS - virtual bool DoPopupMenu( wxMenu *menu, int x, int y ) wxOVERRIDE; -#endif - - virtual void DoFreeze() wxOVERRIDE; - virtual void DoThaw() wxOVERRIDE; - - virtual wxSize DoGetBestSize() const wxOVERRIDE; - virtual wxSize DoGetSizeFromClientSize( const wxSize & size ) const; - virtual void DoClientToScreen( int *x, int *y ) const wxOVERRIDE; - virtual void DoScreenToClient( int *x, int *y ) const wxOVERRIDE; - virtual void DoGetPosition( int *x, int *y ) const wxOVERRIDE; - virtual void DoGetSize( int *width, int *height ) const wxOVERRIDE; - virtual void DoGetClientSize( int *width, int *height ) const wxOVERRIDE; - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO) wxOVERRIDE; - virtual void DoSetClientSize(int width, int height) wxOVERRIDE; - - virtual void DoCaptureMouse() wxOVERRIDE; - virtual void DoReleaseMouse() wxOVERRIDE; - - // move the window to the specified location and resize it: this is called - // from both DoSetSize() and DoSetClientSize() and would usually just call - // ::MoveWindow() except for composite controls which will want to arrange - // themselves inside the given rectangle - virtual void DoMoveWindow( int x, int y, int width, int height ) wxOVERRIDE; - virtual void DoSetWindowVariant( wxWindowVariant variant ) wxOVERRIDE; - -#if wxUSE_TOOLTIPS - virtual void DoSetToolTip( wxToolTip *tip ) wxOVERRIDE; -#endif - - // common part of Show/HideWithEffect() - virtual bool OSXShowWithEffect(bool show, - wxShowEffect effect, - unsigned timeout); - -private: - wxOSXWidgetImpl * m_peer ; - // common part of all ctors - void Init(); - - // show/hide scrollbars as needed, common part of SetScrollbar() and - // AlwaysShowScrollbars() - void DoUpdateScrollbarVisibility(); - - wxDECLARE_NO_COPY_CLASS(wxWindowMac); - wxDECLARE_EVENT_TABLE(); -}; - -#endif // _WX_WINDOW_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/overlay.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/overlay.h deleted file mode 100644 index 57b87b48..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/overlay.h +++ /dev/null @@ -1,94 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/overlay.h -// Purpose: wxOverlay class -// Author: Stefan Csomor -// Modified by: -// Created: 2006-10-20 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OVERLAY_H_ -#define _WX_OVERLAY_H_ - -#include "wx/defs.h" - -#if defined(__WXDFB__) - #define wxHAS_NATIVE_OVERLAY 1 -#else - // don't define wxHAS_NATIVE_OVERLAY -#endif - -// ---------------------------------------------------------------------------- -// creates an overlay over an existing window, allowing for manipulations like -// rubberbanding etc. This API is not stable yet, not to be used outside wx -// internal code -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxOverlayImpl; -class WXDLLIMPEXP_FWD_CORE wxDC; - -class WXDLLIMPEXP_CORE wxOverlay -{ -public: - wxOverlay(); - ~wxOverlay(); - - // clears the overlay without restoring the former state - // to be done eg when the window content has been changed and repainted - void Reset(); - - // returns (port-specific) implementation of the overlay - wxOverlayImpl *GetImpl() { return m_impl; } - -private: - friend class WXDLLIMPEXP_FWD_CORE wxDCOverlay; - - // returns true if it has been setup - bool IsOk(); - - void Init(wxDC* dc, int x , int y , int width , int height); - - void BeginDrawing(wxDC* dc); - - void EndDrawing(wxDC* dc); - - void Clear(wxDC* dc); - - wxOverlayImpl* m_impl; - - bool m_inDrawing; - - - wxDECLARE_NO_COPY_CLASS(wxOverlay); -}; - - -class WXDLLIMPEXP_CORE wxDCOverlay -{ -public: - // connects this overlay to the corresponding drawing dc, if the overlay is - // not initialized yet this call will do so - wxDCOverlay(wxOverlay &overlay, wxDC *dc, int x , int y , int width , int height); - - // convenience wrapper that behaves the same using the entire area of the dc - wxDCOverlay(wxOverlay &overlay, wxDC *dc); - - // removes the connection between the overlay and the dc - virtual ~wxDCOverlay(); - - // clears the layer, restoring the state at the last init - void Clear(); - -private: - void Init(wxDC *dc, int x , int y , int width , int height); - - wxOverlay& m_overlay; - - wxDC* m_dc; - - - wxDECLARE_NO_COPY_CLASS(wxDCOverlay); -}; - -#endif // _WX_OVERLAY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ownerdrw.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ownerdrw.h deleted file mode 100644 index 7ae3b71c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ownerdrw.h +++ /dev/null @@ -1,142 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/ownerdrw.h -// Purpose: interface for owner-drawn GUI elements -// Author: Vadim Zeitlin -// Modified by: Marcin Malich -// Created: 11.11.97 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OWNERDRW_H_BASE -#define _WX_OWNERDRW_H_BASE - -#include "wx/defs.h" - -#if wxUSE_OWNER_DRAWN - -#include "wx/font.h" -#include "wx/colour.h" - -class WXDLLIMPEXP_FWD_CORE wxDC; - -// ---------------------------------------------------------------------------- -// wxOwnerDrawn - a mix-in base class, derive from it to implement owner-drawn -// behaviour -// -// wxOwnerDrawn supports drawing of an item with non standard font, color and -// also supports 3 bitmaps: either a checked/unchecked bitmap for a checkable -// element or one unchangeable bitmap otherwise. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxOwnerDrawnBase -{ -public: - wxOwnerDrawnBase() - { - m_ownerDrawn = false; - m_margin = ms_defaultMargin; - } - - virtual ~wxOwnerDrawnBase() {} - - void SetFont(const wxFont& font) - { m_font = font; m_ownerDrawn = true; } - - wxFont& GetFont() const - { return (wxFont&) m_font; } - - - void SetTextColour(const wxColour& colText) - { m_colText = colText; m_ownerDrawn = true; } - - wxColour& GetTextColour() const - { return (wxColour&) m_colText; } - - void SetBackgroundColour(const wxColour& colBack) - { m_colBack = colBack; m_ownerDrawn = true; } - - wxColour& GetBackgroundColour() const - { return (wxColour&) m_colBack ; } - - - void SetMarginWidth(int width) - { m_margin = width; } - - int GetMarginWidth() const - { return m_margin; } - - static int GetDefaultMarginWidth() - { return ms_defaultMargin; } - - - // get item name (with mnemonics if exist) - virtual wxString GetName() const = 0; - - - // this function might seem strange, but if it returns false it means that - // no non-standard attribute are set, so there is no need for this control - // to be owner-drawn. Moreover, you can force owner-drawn to false if you - // want to change, say, the color for the item but only if it is owner-drawn - // (see wxMenuItem::wxMenuItem for example) - bool IsOwnerDrawn() const - { return m_ownerDrawn; } - - // switch on/off owner-drawing the item - void SetOwnerDrawn(bool ownerDrawn = true) - { m_ownerDrawn = ownerDrawn; } - - - // constants used in OnDrawItem - // (they have the same values as corresponding Win32 constants) - enum wxODAction - { - wxODDrawAll = 0x0001, // redraw entire control - wxODSelectChanged = 0x0002, // selection changed (see Status.Select) - wxODFocusChanged = 0x0004 // keyboard focus changed (see Status.Focus) - }; - - enum wxODStatus - { - wxODSelected = 0x0001, // control is currently selected - wxODGrayed = 0x0002, // item is to be grayed - wxODDisabled = 0x0004, // item is to be drawn as disabled - wxODChecked = 0x0008, // item is to be checked - wxODHasFocus = 0x0010, // item has the keyboard focus - wxODDefault = 0x0020, // item is the default item - wxODHidePrefix= 0x0100 // hide keyboard cues (w2k and xp only) - }; - - // virtual functions to implement drawing (return true if processed) - virtual bool OnMeasureItem(size_t *width, size_t *height); - virtual bool OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODStatus stat) = 0; - -protected: - - // get the font and colour to use, whether it is set or not - virtual void GetFontToUse(wxFont& font) const; - virtual void GetColourToUse(wxODStatus stat, wxColour& colText, wxColour& colBack) const; - -private: - bool m_ownerDrawn; // true if something is non standard - - wxFont m_font; // font to use for drawing - wxColour m_colText, // color ----"---"---"---- - m_colBack; // background color - - int m_margin; // space occupied by bitmap to the left of the item - - static int ms_defaultMargin; -}; - -// ---------------------------------------------------------------------------- -// include the platform-specific class declaration -// ---------------------------------------------------------------------------- - -#if defined(__WXMSW__) - #include "wx/msw/ownerdrw.h" -#endif - -#endif // wxUSE_OWNER_DRAWN - -#endif // _WX_OWNERDRW_H_BASE diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/palette.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/palette.h deleted file mode 100644 index 00aa9601..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/palette.h +++ /dev/null @@ -1,44 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/palette.h -// Purpose: Common header and base class for wxPalette -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PALETTE_H_BASE_ -#define _WX_PALETTE_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_PALETTE - -#include "wx/object.h" -#include "wx/gdiobj.h" - -// wxPaletteBase -class WXDLLIMPEXP_CORE wxPaletteBase: public wxGDIObject -{ -public: - virtual ~wxPaletteBase() { } - - virtual int GetColoursCount() const { wxFAIL_MSG( wxT("not implemented") ); return 0; } -}; - -#if defined(__WXMSW__) - #include "wx/msw/palette.h" -#elif defined(__WXX11__) || defined(__WXMOTIF__) - #include "wx/x11/palette.h" -#elif defined(__WXGTK__) - #include "wx/generic/paletteg.h" -#elif defined(__WXMAC__) - #include "wx/osx/palette.h" -#elif defined(__WXQT__) - #include "wx/qt/palette.h" -#endif - -#endif // wxUSE_PALETTE - -#endif // _WX_PALETTE_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/panel.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/panel.h deleted file mode 100644 index e11db672..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/panel.h +++ /dev/null @@ -1,72 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/panel.h -// Purpose: Base header for wxPanel -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PANEL_H_BASE_ -#define _WX_PANEL_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers and forward declarations -// ---------------------------------------------------------------------------- - -#include "wx/window.h" -#include "wx/containr.h" - -class WXDLLIMPEXP_FWD_CORE wxControlContainer; - -extern WXDLLIMPEXP_DATA_CORE(const char) wxPanelNameStr[]; - -// ---------------------------------------------------------------------------- -// wxPanel contains other controls and implements TAB traversal between them -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPanelBase : public wxNavigationEnabled<wxWindow> -{ -public: - wxPanelBase() { } - - // Derived classes should also provide this constructor: - /* - wxPanelBase(wxWindow *parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTAB_TRAVERSAL | wxNO_BORDER, - const wxString& name = wxPanelNameStr); - */ - - // Pseudo ctor - bool Create(wxWindow *parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTAB_TRAVERSAL | wxNO_BORDER, - const wxString& name = wxPanelNameStr); - - - // implementation from now on - // -------------------------- - - virtual void InitDialog() wxOVERRIDE; - -private: - wxDECLARE_NO_COPY_CLASS(wxPanelBase); -}; - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/panel.h" -#elif defined(__WXMSW__) - #include "wx/msw/panel.h" -#else - #define wxHAS_GENERIC_PANEL - #include "wx/generic/panelg.h" -#endif - -#endif // _WX_PANELH_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/paper.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/paper.h deleted file mode 100644 index 19e6d26a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/paper.h +++ /dev/null @@ -1,121 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/paper.h -// Purpose: Paper database types and classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PAPERH__ -#define _WX_PAPERH__ - -#include "wx/defs.h" -#include "wx/event.h" -#include "wx/cmndata.h" -#include "wx/intl.h" -#include "wx/hashmap.h" - -/* - * Paper type: see defs.h for wxPaperSize enum. - * A wxPrintPaperType can have an id and a name, or just a name and wxPAPER_NONE, - * so you can add further paper types without needing new ids. - */ - -#ifdef __WXMSW__ -#define WXADDPAPER(paperId, platformId, name, w, h) AddPaperType(paperId, platformId, name, w, h) -#else -#define WXADDPAPER(paperId, platformId, name, w, h) AddPaperType(paperId, 0, name, w, h) -#endif - -class WXDLLIMPEXP_CORE wxPrintPaperType: public wxObject -{ -public: - wxPrintPaperType(); - - // platformId is a platform-specific id, such as in Windows, DMPAPER_... - wxPrintPaperType(wxPaperSize paperId, int platformId, const wxString& name, int w, int h); - - inline wxString GetName() const { return wxGetTranslation(m_paperName); } - inline wxPaperSize GetId() const { return m_paperId; } - inline int GetPlatformId() const { return m_platformId; } - - // Get width and height in tenths of a millimetre - inline int GetWidth() const { return m_width; } - inline int GetHeight() const { return m_height; } - - // Get size in tenths of a millimetre - inline wxSize GetSize() const { return wxSize(m_width, m_height); } - - // Get size in a millimetres - inline wxSize GetSizeMM() const { return wxSize(m_width/10, m_height/10); } - - // Get width and height in device units (1/72th of an inch) - wxSize GetSizeDeviceUnits() const ; - -public: - wxPaperSize m_paperId; - int m_platformId; - int m_width; // In tenths of a millimetre - int m_height; // In tenths of a millimetre - wxString m_paperName; - -private: - wxDECLARE_DYNAMIC_CLASS(wxPrintPaperType); -}; - -WX_DECLARE_STRING_HASH_MAP(wxPrintPaperType*, wxStringToPrintPaperTypeHashMap); - -class WXDLLIMPEXP_FWD_CORE wxPrintPaperTypeList; - -class WXDLLIMPEXP_CORE wxPrintPaperDatabase -{ -public: - wxPrintPaperDatabase(); - ~wxPrintPaperDatabase(); - - void CreateDatabase(); - void ClearDatabase(); - - void AddPaperType(wxPaperSize paperId, const wxString& name, int w, int h); - void AddPaperType(wxPaperSize paperId, int platformId, const wxString& name, int w, int h); - - // Find by name - wxPrintPaperType *FindPaperType(const wxString& name); - - // Find by size id - wxPrintPaperType *FindPaperType(wxPaperSize id); - - // Find by platform id - wxPrintPaperType *FindPaperTypeByPlatformId(int id); - - // Find by size - wxPrintPaperType *FindPaperType(const wxSize& size); - - // Convert name to size id - wxPaperSize ConvertNameToId(const wxString& name); - - // Convert size id to name - wxString ConvertIdToName(wxPaperSize paperId); - - // Get the paper size - wxSize GetSize(wxPaperSize paperId); - - // Get the paper size - wxPaperSize GetSize(const wxSize& size); - - // - wxPrintPaperType* Item(size_t index) const; - size_t GetCount() const; -private: - wxStringToPrintPaperTypeHashMap* m_map; - wxPrintPaperTypeList* m_list; - //wxDECLARE_DYNAMIC_CLASS(wxPrintPaperDatabase); -}; - -extern WXDLLIMPEXP_DATA_CORE(wxPrintPaperDatabase*) wxThePrintPaperDatabase; - - -#endif - // _WX_PAPERH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/pen.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/pen.h deleted file mode 100644 index e7eb2ff4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/pen.h +++ /dev/null @@ -1,156 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/pen.h -// Purpose: Base header for wxPen -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PEN_H_BASE_ -#define _WX_PEN_H_BASE_ - -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" - -enum wxPenStyle -{ - wxPENSTYLE_INVALID = -1, - - wxPENSTYLE_SOLID = wxSOLID, - wxPENSTYLE_DOT = wxDOT, - wxPENSTYLE_LONG_DASH = wxLONG_DASH, - wxPENSTYLE_SHORT_DASH = wxSHORT_DASH, - wxPENSTYLE_DOT_DASH = wxDOT_DASH, - wxPENSTYLE_USER_DASH = wxUSER_DASH, - - wxPENSTYLE_TRANSPARENT = wxTRANSPARENT, - - wxPENSTYLE_STIPPLE_MASK_OPAQUE = wxSTIPPLE_MASK_OPAQUE, - wxPENSTYLE_STIPPLE_MASK = wxSTIPPLE_MASK, - wxPENSTYLE_STIPPLE = wxSTIPPLE, - - wxPENSTYLE_BDIAGONAL_HATCH = wxHATCHSTYLE_BDIAGONAL, - wxPENSTYLE_CROSSDIAG_HATCH = wxHATCHSTYLE_CROSSDIAG, - wxPENSTYLE_FDIAGONAL_HATCH = wxHATCHSTYLE_FDIAGONAL, - wxPENSTYLE_CROSS_HATCH = wxHATCHSTYLE_CROSS, - wxPENSTYLE_HORIZONTAL_HATCH = wxHATCHSTYLE_HORIZONTAL, - wxPENSTYLE_VERTICAL_HATCH = wxHATCHSTYLE_VERTICAL, - wxPENSTYLE_FIRST_HATCH = wxHATCHSTYLE_FIRST, - wxPENSTYLE_LAST_HATCH = wxHATCHSTYLE_LAST -}; - -enum wxPenJoin -{ - wxJOIN_INVALID = -1, - - wxJOIN_BEVEL = 120, - wxJOIN_MITER, - wxJOIN_ROUND -}; - -enum wxPenCap -{ - wxCAP_INVALID = -1, - - wxCAP_ROUND = 130, - wxCAP_PROJECTING, - wxCAP_BUTT -}; - - -class WXDLLIMPEXP_CORE wxPenBase : public wxGDIObject -{ -public: - virtual ~wxPenBase() { } - - virtual void SetColour(const wxColour& col) = 0; - virtual void SetColour(unsigned char r, unsigned char g, unsigned char b) = 0; - - virtual void SetWidth(int width) = 0; - virtual void SetStyle(wxPenStyle style) = 0; - virtual void SetStipple(const wxBitmap& stipple) = 0; - virtual void SetDashes(int nb_dashes, const wxDash *dash) = 0; - virtual void SetJoin(wxPenJoin join) = 0; - virtual void SetCap(wxPenCap cap) = 0; - - virtual wxColour GetColour() const = 0; - virtual wxBitmap *GetStipple() const = 0; - virtual wxPenStyle GetStyle() const = 0; - virtual wxPenJoin GetJoin() const = 0; - virtual wxPenCap GetCap() const = 0; - virtual int GetWidth() const = 0; - virtual int GetDashes(wxDash **ptr) const = 0; - - // Convenient helpers for testing whether the pen is a transparent one: - // unlike GetStyle() == wxPENSTYLE_TRANSPARENT, they work correctly even if - // the pen is invalid (they both return false in this case). - bool IsTransparent() const - { - return IsOk() && GetStyle() == wxPENSTYLE_TRANSPARENT; - } - - bool IsNonTransparent() const - { - return IsOk() && GetStyle() != wxPENSTYLE_TRANSPARENT; - } -}; - -#if defined(__WXMSW__) - #include "wx/msw/pen.h" -#elif defined(__WXMOTIF__) || defined(__WXX11__) - #include "wx/x11/pen.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/pen.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/pen.h" -#elif defined(__WXDFB__) - #include "wx/dfb/pen.h" -#elif defined(__WXMAC__) - #include "wx/osx/pen.h" -#elif defined(__WXQT__) - #include "wx/qt/pen.h" -#endif - -class WXDLLIMPEXP_CORE wxPenList: public wxGDIObjListBase -{ -public: - wxPen *FindOrCreatePen(const wxColour& colour, - int width = 1, - wxPenStyle style = wxPENSTYLE_SOLID); - - wxDEPRECATED_MSG("use wxPENSTYLE_XXX constants") - wxPen *FindOrCreatePen(const wxColour& colour, int width, int style) - { return FindOrCreatePen(colour, width, (wxPenStyle)style); } -}; - -extern WXDLLIMPEXP_DATA_CORE(wxPenList*) wxThePenList; - -// provide comparison operators to allow code such as -// -// if ( pen.GetStyle() == wxTRANSPARENT ) -// -// to compile without warnings which it would otherwise provoke from some -// compilers as it compares elements of different enums - -// Unfortunately some compilers have ambiguity issues when enum comparisons are -// overloaded so we have to disable the overloads in this case, see -// wxCOMPILER_NO_OVERLOAD_ON_ENUM definition in wx/platform.h for more details. -#ifndef wxCOMPILER_NO_OVERLOAD_ON_ENUM - -wxDEPRECATED_MSG("use wxPENSTYLE_XXX constants") -inline bool operator==(wxPenStyle s, wxDeprecatedGUIConstants t) -{ - return static_cast<int>(s) == static_cast<int>(t); -} - -wxDEPRECATED_MSG("use wxPENSTYLE_XXX constants") -inline bool operator!=(wxPenStyle s, wxDeprecatedGUIConstants t) -{ - return static_cast<int>(s) != static_cast<int>(t); -} - -#endif // wxCOMPILER_NO_OVERLOAD_ON_ENUM - -#endif // _WX_PEN_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist.h deleted file mode 100644 index 757fad03..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist.h +++ /dev/null @@ -1,254 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/persist.h -// Purpose: common classes for persistence support -// Author: Vadim Zeitlin -// Created: 2009-01-18 -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PERSIST_H_ -#define _WX_PERSIST_H_ - -#include "wx/string.h" -#include "wx/hashmap.h" -#include "wx/confbase.h" - -class wxPersistentObject; - -WX_DECLARE_VOIDPTR_HASH_MAP(wxPersistentObject *, wxPersistentObjectsMap); - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -/* - We do _not_ declare this function as doing this would force us to specialize - it for the user classes deriving from the standard persistent classes. - However we do define overloads of wxCreatePersistentObject() for all the wx - classes which means that template wxPersistentObject::Restore() picks up the - right overload to use provided that the header defining the correct overload - is included before calling it. And a compilation error happens if this is - not done. - -template <class T> -wxPersistentObject *wxCreatePersistentObject(T *obj); - - */ - -// ---------------------------------------------------------------------------- -// wxPersistenceManager: global aspects of persistent windows -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPersistenceManager -{ -public: - // Call this method to specify a non-default persistence manager to use. - // This function should usually be called very early to affect creation of - // all persistent controls and the object passed to it must have a lifetime - // long enough to be still alive when the persistent controls are destroyed - // and need it to save their state so typically this would be a global or a - // wxApp member. - static void Set(wxPersistenceManager& manager); - - // accessor to the unique persistence manager object - static wxPersistenceManager& Get(); - - // trivial but virtual dtor - virtual ~wxPersistenceManager(); - - - // globally disable restoring or saving the persistent properties (both are - // enabled by default) - void DisableSaving() { m_doSave = false; } - void DisableRestoring() { m_doRestore = false; } - - - // register an object with the manager: when using the first overload, - // wxCreatePersistentObject() must be specialized for this object class; - // with the second one the persistent adapter is created by the caller - // - // the object shouldn't be already registered with us - template <class T> - wxPersistentObject *Register(T *obj) - { - return Register(obj, wxCreatePersistentObject(obj)); - } - - wxPersistentObject *Register(void *obj, wxPersistentObject *po); - - // check if the object is registered and return the associated - // wxPersistentObject if it is or NULL otherwise - wxPersistentObject *Find(void *obj) const; - - // unregister the object, this is called by wxPersistentObject itself so - // there is usually no need to do it explicitly - // - // deletes the associated wxPersistentObject - void Unregister(void *obj); - - - // save/restore the state of an object - // - // these methods do nothing if DisableSaving/Restoring() was called - // - // Restore() returns true if the object state was really restored - void Save(void *obj); - bool Restore(void *obj); - - // combines both Save() and Unregister() calls - void SaveAndUnregister(void *obj) - { - Save(obj); - Unregister(obj); - } - - // combines both Register() and Restore() calls - template <class T> - bool RegisterAndRestore(T *obj) - { - return Register(obj) && Restore(obj); - } - - bool RegisterAndRestore(void *obj, wxPersistentObject *po) - { - return Register(obj, po) && Restore(obj); - } - - - // methods used by the persistent objects to save and restore the data - // - // currently these methods simply use wxConfig::Get() but they may be - // overridden in the derived class (once we allow creating custom - // persistent managers) -#define wxPERSIST_DECLARE_SAVE_RESTORE_FOR(Type) \ - virtual bool SaveValue(const wxPersistentObject& who, \ - const wxString& name, \ - Type value); \ - \ - virtual bool \ - RestoreValue(const wxPersistentObject& who, \ - const wxString& name, \ - Type *value) - - wxPERSIST_DECLARE_SAVE_RESTORE_FOR(bool); - wxPERSIST_DECLARE_SAVE_RESTORE_FOR(int); - wxPERSIST_DECLARE_SAVE_RESTORE_FOR(long); - wxPERSIST_DECLARE_SAVE_RESTORE_FOR(wxString); - -#undef wxPERSIST_DECLARE_SAVE_RESTORE_FOR - -protected: - // ctor is private, use Get() - wxPersistenceManager() - { - m_doSave = - m_doRestore = true; - } - - - // Return the config object to use, by default just the global one but a - // different one could be used by the derived class if needed. - virtual wxConfigBase *GetConfig() const { return wxConfigBase::Get(); } - - // Return the path to use for saving the setting with the given name for - // the specified object (notice that the name is the name of the setting, - // not the name of the object itself which can be retrieved with GetName()). - virtual wxString GetKey(const wxPersistentObject& who, - const wxString& name) const; - - -private: - // map with the registered objects as keys and associated - // wxPersistentObjects as values - wxPersistentObjectsMap m_persistentObjects; - - // true if we should restore/save the settings (it doesn't make much sense - // to use this class when both of them are false but setting one of them to - // false may make sense in some situations) - bool m_doSave, - m_doRestore; - - wxDECLARE_NO_COPY_CLASS(wxPersistenceManager); -}; - -// ---------------------------------------------------------------------------- -// wxPersistentObject: ABC for anything persistent -// ---------------------------------------------------------------------------- - -class wxPersistentObject -{ -public: - // ctor associates us with the object whose options we save/restore - wxPersistentObject(void *obj) : m_obj(obj) { } - - // trivial but virtual dtor - virtual ~wxPersistentObject() { } - - - // methods used by wxPersistenceManager - // ------------------------------------ - - // save/restore the corresponding objects settings - // - // these methods shouldn't be used directly as they don't respect the - // global wxPersistenceManager::DisableSaving/Restoring() settings, use - // wxPersistenceManager methods with the same name instead - virtual void Save() const = 0; - virtual bool Restore() = 0; - - - // get the kind of the objects we correspond to, e.g. "Frame" - virtual wxString GetKind() const = 0; - - // get the name of the object we correspond to, e.g. "Main" - virtual wxString GetName() const = 0; - - - // return the associated object - void *GetObject() const { return m_obj; } - -protected: - // wrappers for wxPersistenceManager methods which don't require passing - // "this" as the first parameter all the time - template <typename T> - bool SaveValue(const wxString& name, T value) const - { - return wxPersistenceManager::Get().SaveValue(*this, name, value); - } - - template <typename T> - bool RestoreValue(const wxString& name, T *value) - { - return wxPersistenceManager::Get().RestoreValue(*this, name, value); - } - -private: - void * const m_obj; - - wxDECLARE_NO_COPY_CLASS(wxPersistentObject); -}; - -// Helper function calling RegisterAndRestore() on the global persistence -// manager object. -template <typename T> -inline bool wxPersistentRegisterAndRestore(T *obj) -{ - wxPersistentObject * const pers = wxCreatePersistentObject(obj); - - return wxPersistenceManager::Get().RegisterAndRestore(obj, pers); - -} - -// A helper function which also sets the name for the (wxWindow-derived) object -// before registering and restoring it. -template <typename T> -inline bool wxPersistentRegisterAndRestore(T *obj, const wxString& name) -{ - obj->SetName(name); - - return wxPersistentRegisterAndRestore(obj); -} - -#endif // _WX_PERSIST_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/bookctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/bookctrl.h deleted file mode 100644 index 6b48ebe0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/bookctrl.h +++ /dev/null @@ -1,66 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/persist/bookctrl.h -// Purpose: persistence support for wxBookCtrl -// Author: Vadim Zeitlin -// Created: 2009-01-19 -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PERSIST_BOOKCTRL_H_ -#define _WX_PERSIST_BOOKCTRL_H_ - -#include "wx/persist/window.h" - -#include "wx/bookctrl.h" - -// ---------------------------------------------------------------------------- -// string constants used by wxPersistentBookCtrl -// ---------------------------------------------------------------------------- - -#define wxPERSIST_BOOK_KIND "Book" - -#define wxPERSIST_BOOK_SELECTION "Selection" - -// ---------------------------------------------------------------------------- -// wxPersistentBookCtrl: supports saving/restoring book control selection -// ---------------------------------------------------------------------------- - -class wxPersistentBookCtrl : public wxPersistentWindow<wxBookCtrlBase> -{ -public: - wxPersistentBookCtrl(wxBookCtrlBase *book) - : wxPersistentWindow<wxBookCtrlBase>(book) - { - } - - virtual void Save() const wxOVERRIDE - { - SaveValue(wxPERSIST_BOOK_SELECTION, Get()->GetSelection()); - } - - virtual bool Restore() wxOVERRIDE - { - long sel; - if ( RestoreValue(wxPERSIST_BOOK_SELECTION, &sel) ) - { - wxBookCtrlBase * const book = Get(); - if ( sel >= 0 && (unsigned)sel < book->GetPageCount() ) - { - book->SetSelection(sel); - return true; - } - } - - return false; - } - - virtual wxString GetKind() const wxOVERRIDE { return wxPERSIST_BOOK_KIND; } -}; - -inline wxPersistentObject *wxCreatePersistentObject(wxBookCtrlBase *book) -{ - return new wxPersistentBookCtrl(book); -} - -#endif // _WX_PERSIST_BOOKCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/splitter.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/splitter.h deleted file mode 100644 index 46979d67..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/splitter.h +++ /dev/null @@ -1,68 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/persist/splitter.h -// Purpose: Persistence support for wxSplitterWindow. -// Author: Vadim Zeitlin -// Created: 2011-08-31 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PERSIST_SPLITTER_H_ -#define _WX_PERSIST_SPLITTER_H_ - -#include "wx/persist/window.h" - -#include "wx/splitter.h" - -// ---------------------------------------------------------------------------- -// string constants used by wxPersistentSplitter -// ---------------------------------------------------------------------------- - -#define wxPERSIST_SPLITTER_KIND "Splitter" - -// Special position value of -1 means the splitter is not split at all. -#define wxPERSIST_SPLITTER_POSITION "Position" - -// ---------------------------------------------------------------------------- -// wxPersistentSplitter: supports saving/restoring splitter position -// ---------------------------------------------------------------------------- - -class wxPersistentSplitter : public wxPersistentWindow<wxSplitterWindow> -{ -public: - wxPersistentSplitter(wxSplitterWindow* splitter) - : wxPersistentWindow<wxSplitterWindow>(splitter) - { - } - - virtual void Save() const wxOVERRIDE - { - wxSplitterWindow* const splitter = Get(); - - int pos = splitter->IsSplit() ? splitter->GetSashPosition() : -1; - SaveValue(wxPERSIST_SPLITTER_POSITION, pos); - } - - virtual bool Restore() wxOVERRIDE - { - int pos; - if ( !RestoreValue(wxPERSIST_SPLITTER_POSITION, &pos) ) - return false; - - if ( pos == -1 ) - Get()->Unsplit(); - else - Get()->SetSashPosition(pos); - - return true; - } - - virtual wxString GetKind() const wxOVERRIDE { return wxPERSIST_SPLITTER_KIND; } -}; - -inline wxPersistentObject *wxCreatePersistentObject(wxSplitterWindow* splitter) -{ - return new wxPersistentSplitter(splitter); -} - -#endif // _WX_PERSIST_SPLITTER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/toplevel.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/toplevel.h deleted file mode 100644 index 722a66af..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/toplevel.h +++ /dev/null @@ -1,145 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/persist/toplevel.h -// Purpose: persistence support for wxTLW -// Author: Vadim Zeitlin -// Created: 2009-01-19 -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PERSIST_TOPLEVEL_H_ -#define _WX_PERSIST_TOPLEVEL_H_ - -#include "wx/persist/window.h" - -#include "wx/toplevel.h" -#include "wx/display.h" - -// ---------------------------------------------------------------------------- -// string constants used by wxPersistentTLW -// ---------------------------------------------------------------------------- - -// we use just "Window" to keep configuration files and such short, there -// should be no confusion with wxWindow itself as we don't have persistent -// windows, just persistent controls which have their own specific kind strings -#define wxPERSIST_TLW_KIND "Window" - -// names for various persistent options -#define wxPERSIST_TLW_X "x" -#define wxPERSIST_TLW_Y "y" -#define wxPERSIST_TLW_W "w" -#define wxPERSIST_TLW_H "h" - -#define wxPERSIST_TLW_MAXIMIZED "Maximized" -#define wxPERSIST_TLW_ICONIZED "Iconized" - -// ---------------------------------------------------------------------------- -// wxPersistentTLW: supports saving/restoring window position and size as well -// as maximized/iconized/restore state -// ---------------------------------------------------------------------------- - -class wxPersistentTLW : public wxPersistentWindow<wxTopLevelWindow> -{ -public: - wxPersistentTLW(wxTopLevelWindow *tlw) - : wxPersistentWindow<wxTopLevelWindow>(tlw) - { - } - - virtual void Save() const wxOVERRIDE - { - const wxTopLevelWindow * const tlw = Get(); - - const wxPoint pos = tlw->GetScreenPosition(); - SaveValue(wxPERSIST_TLW_X, pos.x); - SaveValue(wxPERSIST_TLW_Y, pos.y); - - // notice that we use GetSize() here and not GetClientSize() because - // the latter doesn't return correct results for the minimized windows - // (at least not under Windows) - // - // of course, it shouldn't matter anyhow usually, the client size - // should be preserved as well unless the size of the decorations - // changed between the runs - const wxSize size = tlw->GetSize(); - SaveValue(wxPERSIST_TLW_W, size.x); - SaveValue(wxPERSIST_TLW_H, size.y); - - SaveValue(wxPERSIST_TLW_MAXIMIZED, tlw->IsMaximized()); - SaveValue(wxPERSIST_TLW_ICONIZED, tlw->IsIconized()); -#ifdef __WXGTK20__ - SaveValue("decor_l", tlw->m_decorSize.left); - SaveValue("decor_r", tlw->m_decorSize.right); - SaveValue("decor_t", tlw->m_decorSize.top); - SaveValue("decor_b", tlw->m_decorSize.bottom); -#endif - } - - virtual bool Restore() wxOVERRIDE - { - wxTopLevelWindow * const tlw = Get(); - - long x wxDUMMY_INITIALIZE(-1), - y wxDUMMY_INITIALIZE(-1), - w wxDUMMY_INITIALIZE(-1), - h wxDUMMY_INITIALIZE(-1); - const bool hasPos = RestoreValue(wxPERSIST_TLW_X, &x) && - RestoreValue(wxPERSIST_TLW_Y, &y); - const bool hasSize = RestoreValue(wxPERSIST_TLW_W, &w) && - RestoreValue(wxPERSIST_TLW_H, &h); -#ifdef __WXGTK20__ - wxTopLevelWindowGTK::DecorSize decorSize; - if (tlw->m_decorSize.top == 0 && - RestoreValue("decor_l", &decorSize.left) && - RestoreValue("decor_r", &decorSize.right) && - RestoreValue("decor_t", &decorSize.top) && - RestoreValue("decor_b", &decorSize.bottom)) - { - tlw->m_decorSize = decorSize; - } -#endif - - if ( hasPos ) - { - // to avoid making the window completely invisible if it had been - // shown on a monitor which was disconnected since the last run - // (this is pretty common for notebook with external displays) - // - // NB: we should allow window position to be (slightly) off screen, - // it's not uncommon to position the window so that its upper - // left corner has slightly negative coordinate - if ( wxDisplay::GetFromPoint(wxPoint(x, y)) != wxNOT_FOUND || - (hasSize && wxDisplay::GetFromPoint( - wxPoint(x + w, y + h)) != wxNOT_FOUND) ) - { - tlw->Move(x, y, wxSIZE_ALLOW_MINUS_ONE); - } - //else: should we try to adjust position/size somehow? - } - - if ( hasSize ) - tlw->SetSize(w, h); - - // note that the window can be both maximized and iconized - bool maximized; - if ( RestoreValue(wxPERSIST_TLW_MAXIMIZED, &maximized) && maximized ) - tlw->Maximize(); - - bool iconized; - if ( RestoreValue(wxPERSIST_TLW_ICONIZED, &iconized) && iconized ) - tlw->Iconize(); - - // the most important property of the window that we restore is its - // size, so disregard the value of hasPos here - return hasSize; - } - - virtual wxString GetKind() const wxOVERRIDE { return wxPERSIST_TLW_KIND; } -}; - -inline wxPersistentObject *wxCreatePersistentObject(wxTopLevelWindow *tlw) -{ - return new wxPersistentTLW(tlw); -} - -#endif // _WX_PERSIST_TOPLEVEL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/treebook.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/treebook.h deleted file mode 100644 index 9a382968..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/treebook.h +++ /dev/null @@ -1,96 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/persist/treebook.h -// Purpose: persistence support for wxBookCtrl -// Author: Vadim Zeitlin -// Created: 2009-01-19 -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PERSIST_TREEBOOK_H_ -#define _WX_PERSIST_TREEBOOK_H_ - -#include "wx/persist/bookctrl.h" - -#include "wx/arrstr.h" -#include "wx/treebook.h" - -// ---------------------------------------------------------------------------- -// string constants used by wxPersistentTreeBookCtrl -// ---------------------------------------------------------------------------- - -#define wxPERSIST_TREEBOOK_KIND "TreeBook" - -// this key contains the indices of all expanded nodes in the tree book -// separated by wxPERSIST_TREEBOOK_EXPANDED_SEP -#define wxPERSIST_TREEBOOK_EXPANDED_BRANCHES "Expanded" -#define wxPERSIST_TREEBOOK_EXPANDED_SEP ',' - -// ---------------------------------------------------------------------------- -// wxPersistentTreeBookCtrl: supports saving/restoring open tree branches -// ---------------------------------------------------------------------------- - -class wxPersistentTreeBookCtrl : public wxPersistentBookCtrl -{ -public: - wxPersistentTreeBookCtrl(wxTreebook *book) - : wxPersistentBookCtrl(book) - { - } - - virtual void Save() const wxOVERRIDE - { - const wxTreebook * const book = GetTreeBook(); - - wxString expanded; - const size_t count = book->GetPageCount(); - for ( size_t n = 0; n < count; n++ ) - { - if ( book->IsNodeExpanded(n) ) - { - if ( !expanded.empty() ) - expanded += wxPERSIST_TREEBOOK_EXPANDED_SEP; - - expanded += wxString::Format("%u", static_cast<unsigned>(n)); - } - } - - SaveValue(wxPERSIST_TREEBOOK_EXPANDED_BRANCHES, expanded); - - wxPersistentBookCtrl::Save(); - } - - virtual bool Restore() wxOVERRIDE - { - wxTreebook * const book = GetTreeBook(); - - wxString expanded; - if ( RestoreValue(wxPERSIST_TREEBOOK_EXPANDED_BRANCHES, &expanded) ) - { - const wxArrayString - indices(wxSplit(expanded, wxPERSIST_TREEBOOK_EXPANDED_SEP)); - - const size_t pageCount = book->GetPageCount(); - const size_t count = indices.size(); - for ( size_t n = 0; n < count; n++ ) - { - unsigned long idx; - if ( indices[n].ToULong(&idx) && idx < pageCount ) - book->ExpandNode(idx); - } - } - - return wxPersistentBookCtrl::Restore(); - } - - virtual wxString GetKind() const wxOVERRIDE { return wxPERSIST_TREEBOOK_KIND; } - - wxTreebook *GetTreeBook() const { return static_cast<wxTreebook *>(Get()); } -}; - -inline wxPersistentObject *wxCreatePersistentObject(wxTreebook *book) -{ - return new wxPersistentTreeBookCtrl(book); -} - -#endif // _WX_PERSIST_TREEBOOK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/window.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/window.h deleted file mode 100644 index db163a2f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/persist/window.h +++ /dev/null @@ -1,76 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/persist/window.h -// Purpose: wxPersistentWindow declaration -// Author: Vadim Zeitlin -// Created: 2009-01-23 -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PERSIST_WINDOW_H_ -#define _WX_PERSIST_WINDOW_H_ - -#include "wx/persist.h" - -#include "wx/window.h" - -// ---------------------------------------------------------------------------- -// wxPersistentWindow: base class for persistent windows, uses the window name -// as persistent name by default and automatically reacts -// to the window destruction -// ---------------------------------------------------------------------------- - -// type-independent part of wxPersistentWindow -class wxPersistentWindowBase : public wxPersistentObject -{ -public: - wxPersistentWindowBase(wxWindow *win) - : wxPersistentObject(win) - { - win->Bind(wxEVT_DESTROY, &wxPersistentWindowBase::HandleDestroy, this); - } - - virtual wxString GetName() const wxOVERRIDE - { - const wxString name = GetWindow()->GetName(); - wxASSERT_MSG( !name.empty(), "persistent windows should be named!" ); - - return name; - } - -protected: - wxWindow *GetWindow() const { return static_cast<wxWindow *>(GetObject()); } - -private: - void HandleDestroy(wxWindowDestroyEvent& event) - { - event.Skip(); - - // only react to the destruction of this object itself, not of any of - // its children - if ( event.GetEventObject() == GetObject() ) - { - // this will delete this object itself - wxPersistenceManager::Get().SaveAndUnregister(GetWindow()); - } - } - - wxDECLARE_NO_COPY_CLASS(wxPersistentWindowBase); -}; - -template <class T> -class wxPersistentWindow : public wxPersistentWindowBase -{ -public: - typedef T WindowType; - - wxPersistentWindow(WindowType *win) - : wxPersistentWindowBase(win) - { - } - - WindowType *Get() const { return static_cast<WindowType *>(GetWindow()); } -}; - -#endif // _WX_PERSIST_WINDOW_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/pickerbase.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/pickerbase.h deleted file mode 100644 index 6c1f1cb0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/pickerbase.h +++ /dev/null @@ -1,189 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/pickerbase.h -// Purpose: wxPickerBase definition -// Author: Francesco Montorsi (based on Vadim Zeitlin's code) -// Modified by: -// Created: 14/4/2006 -// Copyright: (c) Vadim Zeitlin, Francesco Montorsi -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PICKERBASE_H_BASE_ -#define _WX_PICKERBASE_H_BASE_ - -#include "wx/control.h" -#include "wx/sizer.h" -#include "wx/containr.h" - -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; -class WXDLLIMPEXP_FWD_CORE wxToolTip; - -extern WXDLLIMPEXP_DATA_CORE(const char) wxButtonNameStr[]; - -// ---------------------------------------------------------------------------- -// wxPickerBase is the base class for the picker controls which support -// a wxPB_USE_TEXTCTRL style; i.e. for those pickers which can use an auxiliary -// text control next to the 'real' picker. -// -// The wxTextPickerHelper class manages enabled/disabled state of the text control, -// its sizing and positioning. -// ---------------------------------------------------------------------------- - -#define wxPB_USE_TEXTCTRL 0x0002 -#define wxPB_SMALL 0x8000 - -class WXDLLIMPEXP_CORE wxPickerBase : public wxNavigationEnabled<wxControl> -{ -public: - // ctor: text is the associated text control - wxPickerBase() : m_text(NULL), m_picker(NULL), m_sizer(NULL) - { } - virtual ~wxPickerBase() {} - - - // if present, intercepts wxPB_USE_TEXTCTRL style and creates the text control - // The 3rd argument is the initial wxString to display in the text control - bool CreateBase(wxWindow *parent, - wxWindowID id, - const wxString& text = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - -public: // public API - - // margin between the text control and the picker - void SetInternalMargin(int newmargin) - { GetTextCtrlItem()->SetBorder(newmargin); m_sizer->Layout(); } - int GetInternalMargin() const - { return GetTextCtrlItem()->GetBorder(); } - - // proportion of the text control - void SetTextCtrlProportion(int prop) - { GetTextCtrlItem()->SetProportion(prop); m_sizer->Layout(); } - int GetTextCtrlProportion() const - { return GetTextCtrlItem()->GetProportion(); } - - // proportion of the picker control - void SetPickerCtrlProportion(int prop) - { GetPickerCtrlItem()->SetProportion(prop); m_sizer->Layout(); } - int GetPickerCtrlProportion() const - { return GetPickerCtrlItem()->GetProportion(); } - - bool IsTextCtrlGrowable() const - { return (GetTextCtrlItem()->GetFlag() & wxGROW) != 0; } - void SetTextCtrlGrowable(bool grow = true) - { - int f = GetDefaultTextCtrlFlag(); - if ( grow ) - f |= wxGROW; - else - f &= ~wxGROW; - - GetTextCtrlItem()->SetFlag(f); - } - - bool IsPickerCtrlGrowable() const - { return (GetPickerCtrlItem()->GetFlag() & wxGROW) != 0; } - void SetPickerCtrlGrowable(bool grow = true) - { - int f = GetDefaultPickerCtrlFlag(); - if ( grow ) - { - f &= ~wxALIGN_MASK; - f |= wxGROW; - } - - GetPickerCtrlItem()->SetFlag(f); - } - - bool HasTextCtrl() const - { return m_text != NULL; } - wxTextCtrl *GetTextCtrl() - { return m_text; } - wxControl *GetPickerCtrl() - { return m_picker; } - - void SetTextCtrl(wxTextCtrl* text) - { m_text = text; } - void SetPickerCtrl(wxControl* picker) - { m_picker = picker; } - - // methods that derived class must/may override - virtual void UpdatePickerFromTextCtrl() = 0; - virtual void UpdateTextCtrlFromPicker() = 0; - -protected: - // overridden base class methods -#if wxUSE_TOOLTIPS - virtual void DoSetToolTip(wxToolTip *tip) wxOVERRIDE; -#endif // wxUSE_TOOLTIPS - - - // event handlers - void OnTextCtrlDelete(wxWindowDestroyEvent &); - void OnTextCtrlUpdate(wxCommandEvent &); - void OnTextCtrlKillFocus(wxFocusEvent &); - - // returns the set of styles for the attached wxTextCtrl - // from given wxPickerBase's styles - virtual long GetTextCtrlStyle(long style) const - { return (style & wxWINDOW_STYLE_MASK); } - - // returns the set of styles for the m_picker - virtual long GetPickerStyle(long style) const - { return (style & wxWINDOW_STYLE_MASK); } - - - wxSizerItem *GetPickerCtrlItem() const - { - if (this->HasTextCtrl()) - return m_sizer->GetItem((size_t)1); - return m_sizer->GetItem((size_t)0); - } - - wxSizerItem *GetTextCtrlItem() const - { - wxASSERT(this->HasTextCtrl()); - return m_sizer->GetItem((size_t)0); - } - - int GetDefaultPickerCtrlFlag() const - { - // on macintosh, without additional borders - // there's not enough space for focus rect - return wxALIGN_CENTER_VERTICAL -#ifdef __WXMAC__ - | wxTOP | wxRIGHT | wxBOTTOM -#endif - ; - } - - int GetDefaultTextCtrlFlag() const - { - // on macintosh, without wxALL there's not enough space for focus rect - return wxALIGN_CENTER_VERTICAL -#ifdef __WXMAC__ - | wxALL -#else - | wxRIGHT -#endif - ; - } - - void PostCreation(); - -protected: - wxTextCtrl *m_text; // can be NULL - wxControl *m_picker; - wxBoxSizer *m_sizer; - -private: - wxDECLARE_ABSTRACT_CLASS(wxPickerBase); -}; - - -#endif - // _WX_PICKERBASE_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/platform.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/platform.h deleted file mode 100644 index b490d52a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/platform.h +++ /dev/null @@ -1,592 +0,0 @@ -/** -* Name: wx/platform.h -* Purpose: define the OS and compiler identification macros -* Author: Vadim Zeitlin -* Modified by: -* Created: 29.10.01 (extracted from wx/defs.h) -* Copyright: (c) 1997-2001 Vadim Zeitlin -* Licence: wxWindows licence -*/ - -/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ - -#ifndef _WX_PLATFORM_H_ -#define _WX_PLATFORM_H_ - -#ifdef __WXMAC_XCODE__ -# include <unistd.h> -# include <TargetConditionals.h> -# include <AvailabilityMacros.h> -# ifndef MAC_OS_X_VERSION_10_4 -# define MAC_OS_X_VERSION_10_4 1040 -# endif -# ifndef MAC_OS_X_VERSION_10_5 -# define MAC_OS_X_VERSION_10_5 1050 -# endif -# ifndef MAC_OS_X_VERSION_10_6 -# define MAC_OS_X_VERSION_10_6 1060 -# endif -# ifndef MAC_OS_X_VERSION_10_7 -# define MAC_OS_X_VERSION_10_7 1070 -# endif -# ifndef MAC_OS_X_VERSION_10_8 -# define MAC_OS_X_VERSION_10_8 1080 -# endif -# ifndef MAC_OS_X_VERSION_10_9 -# define MAC_OS_X_VERSION_10_9 1090 -# endif -# ifndef MAC_OS_X_VERSION_10_10 -# define MAC_OS_X_VERSION_10_10 101000 -# endif -# include "wx/osx/config_xcode.h" -# ifndef __WXOSX__ -# define __WXOSX__ 1 -# endif -# ifndef __WXMAC__ -# define __WXMAC__ 1 -# endif -#endif - -/* - We use __WINDOWS__ as our main identification symbol for Microsoft Windows - but it's actually not predefined directly by any commonly used compilers - (only Watcom defines it itself and it's not supported any longer), so we - define it ourselves if any of the following macros is defined: - - - MSVC _WIN32 (notice that this is also defined under Win64) - - Borland __WIN32__ - - Our __WXMSW__ which selects Windows as platform automatically - */ -#if defined(_WIN32) || defined(__WIN32__) || defined(__WXMSW__) -# ifndef __WINDOWS__ -# define __WINDOWS__ -# endif /* !__WINDOWS__ */ -#endif /* Any standard symbol indicating Windows */ - -#if defined(__WINDOWS__) - /* Select wxMSW under Windows if no other port is specified. */ -# if !defined(__WXMSW__) && !defined(__WXMOTIF__) && !defined(__WXGTK__) && !defined(__WXX11__) -# define __WXMSW__ -# endif - -# if !defined(__WINDOWS__) -# define __WINDOWS__ -# endif - -# ifndef _WIN32 -# define _WIN32 -# endif - -# ifndef WIN32 -# define WIN32 -# endif - -# ifndef __WIN32__ -# define __WIN32__ -# endif - - /* MSVC predefines _WIN64 for 64 bit builds, for gcc we use generic - architecture definitions. */ -# if defined(_WIN64) || defined(__x86_64__) -# ifndef __WIN64__ -# define __WIN64__ -# endif /* !__WIN64__ */ -# endif /* _WIN64 */ - -#endif /* __WINDOWS__ */ - -/* - Don't use widget toolkit specific code in non-GUI code in the library - itself to ensure that the same base library is used for both MSW and GTK - ports. But keep __WXMSW__ defined for (console) applications using - wxWidgets for compatibility. - */ -#if defined(WXBUILDING) && defined(wxUSE_GUI) && !wxUSE_GUI -# ifdef __WXMSW__ -# undef __WXMSW__ -# endif -# ifdef __WXGTK__ -# undef __WXGTK__ -# endif -#endif - -#if defined(__WXGTK__) && defined(__WINDOWS__) - -# ifdef __WXMSW__ -# undef __WXMSW__ -# endif - -#endif /* __WXGTK__ && __WINDOWS__ */ - -#ifdef __ANDROID__ -# define __WXANDROID__ -# include "wx/android/config_android.h" -#endif - -#include "wx/compiler.h" - -/* - Include wx/setup.h for the Unix platform defines generated by configure and - the library compilation options - - Note that it must be included before defining hardware symbols below as they - could be already defined by configure but it must be included after defining - the compiler macros above as msvc/wx/setup.h relies on them under Windows. - */ -#include "wx/setup.h" - -/* - Convenience for any optional classes that use the wxAnyButton base class. - */ -#if wxUSE_TOGGLEBTN || wxUSE_BUTTON - #define wxHAS_ANY_BUTTON -#endif - - -/* - Hardware platform detection. - - VC++ defines _M_xxx symbols. - */ -#if defined(_M_IX86) || defined(i386) || defined(__i386) || defined(__i386__) - #ifndef __INTEL__ - #define __INTEL__ - #endif -#endif /* x86 */ - -#if defined(_M_IA64) - #ifndef __IA64__ - #define __IA64__ - #endif -#endif /* ia64 */ - -#if defined(_M_MPPC) || defined(__PPC__) || defined(__ppc__) - #ifndef __POWERPC__ - #define __POWERPC__ - #endif -#endif /* alpha */ - -#if defined(_M_ALPHA) || defined(__AXP__) - #ifndef __ALPHA__ - #define __ALPHA__ - #endif -#endif /* alpha */ - - -/* - adjust the Unicode setting: wxUSE_UNICODE should be defined as 0 or 1 - and is used by wxWidgets, _UNICODE and/or UNICODE may be defined or used by - the system headers so bring these settings in sync - */ - -/* set wxUSE_UNICODE to 1 if UNICODE or _UNICODE is defined */ -#if defined(_UNICODE) || defined(UNICODE) -# undef wxUSE_UNICODE -# define wxUSE_UNICODE 1 -#else /* !UNICODE */ -# ifndef wxUSE_UNICODE -# define wxUSE_UNICODE 0 -# endif -#endif /* UNICODE/!UNICODE */ - -/* and vice versa: define UNICODE and _UNICODE if wxUSE_UNICODE is 1 */ -#if wxUSE_UNICODE -# ifndef _UNICODE -# define _UNICODE -# endif -# ifndef UNICODE -# define UNICODE -# endif -#endif /* wxUSE_UNICODE */ - - -/* - test for old versions of Borland C, normally need at least 5.82, Turbo - explorer, available for free at http://www.turboexplorer.com/downloads -*/ - - -/* - Older versions of Borland C have some compiler bugs that need - workarounds. Mostly pertains to the free command line compiler 5.5.1. -*/ -#if defined(__BORLANDC__) && (__BORLANDC__ <= 0x551) - /* - The Borland free compiler is unable to handle overloaded enum - comparisons under certain conditions e.g. when any class has a - conversion ctor for an integral type and there's an overload to - compare between an integral type and that class type. - */ -# define wxCOMPILER_NO_OVERLOAD_ON_ENUM - - /* - This is needed to overcome bugs in 5.5.1 STL, linking errors will - result if it is not defined. - */ -# define _RWSTD_COMPILE_INSTANTIATE - - /* - Preprocessor in older Borland compilers have major problems - concatenating with ##. Specifically, if the string operands being - concatenated have special meaning (e.g. L"str", 123i64 etc) - then ## will not concatenate the operands correctly. - - As a workaround, define wxPREPEND* and wxAPPEND* without using - wxCONCAT_HELPER. - */ -# define wxCOMPILER_BROKEN_CONCAT_OPER -#endif /* __BORLANDC__ */ - -/* - OS: then test for generic Unix defines, then for particular flavours and - finally for Unix-like systems - Mac OS X matches this case (__MACH__), prior Mac OS do not. - */ -#if defined(__UNIX__) || defined(__unix) || defined(__unix__) || \ - defined(____SVR4____) || defined(__LINUX__) || defined(__sgi) || \ - defined(__hpux) || defined(__sun) || defined(__SUN__) || defined(_AIX) || \ - defined(__VMS) || defined(__BEOS__) || defined(__MACH__) - -# define __UNIX_LIKE__ - -# ifdef __SGI__ -# ifdef __GNUG__ -# else /* !gcc */ - /* - Note I use the term __SGI_CC__ for both cc and CC, its not a good - idea to mix gcc and cc/CC, the name mangling is different - */ -# define __SGI_CC__ -# endif /* gcc/!gcc */ - - /* system headers use this symbol and not __cplusplus in some places */ -# ifndef _LANGUAGE_C_PLUS_PLUS -# define _LANGUAGE_C_PLUS_PLUS -# endif -# endif /* SGI */ - -# if defined(__INNOTEK_LIBC__) - /* Ensure visibility of strnlen declaration */ -# define _GNU_SOURCE -# endif - - /* define __HPUX__ for HP-UX where standard macro is __hpux */ -# if defined(__hpux) && !defined(__HPUX__) -# define __HPUX__ -# endif /* HP-UX */ - - /* All of these should already be defined by including configure- - generated setup.h but we wish to support Xcode compilation without - requiring the user to define these himself. - */ -# if defined(__APPLE__) && defined(__MACH__) -# ifndef __UNIX__ -# define __UNIX__ 1 -# endif -# ifndef __BSD__ -# define __BSD__ 1 -# endif - /* __DARWIN__ is our own define to mean OS X or pure Darwin */ -# ifndef __DARWIN__ -# define __DARWIN__ 1 -# endif - /* OS X uses unsigned long size_t for both ILP32 and LP64 modes. */ -# if !defined(wxSIZE_T_IS_UINT) && !defined(wxSIZE_T_IS_ULONG) -# define wxSIZE_T_IS_ULONG -# endif -# endif - -/* - OS: Windows - */ -#elif defined(__WINDOWS__) - - /* to be changed for Win64! */ -# ifndef __WIN32__ -# error "__WIN32__ should be defined for Win32 and Win64, Win16 is not supported" -# endif - - /* size_t is the same as unsigned int for all Windows compilers we know, */ - /* so define it if it hadn't been done by configure yet */ -# if !defined(wxSIZE_T_IS_UINT) && !defined(wxSIZE_T_IS_ULONG) && !defined(__WIN64__) -# define wxSIZE_T_IS_UINT -# endif -#else -# error "Unknown platform." -#endif /* OS */ - -/* - if we're on a Unix system but didn't use configure (so that setup.h didn't - define __UNIX__), do define __UNIX__ now - */ -#if !defined(__UNIX__) && defined(__UNIX_LIKE__) -# define __UNIX__ -#endif /* Unix */ - -#if defined(__WXMOTIF__) || defined(__WXX11__) -# define __X__ -#endif - -/* - We get "Large Files (ILP32) not supported in strict ANSI mode." #error - from HP-UX standard headers when compiling with g++ without this: - */ -#if defined(__HPUX__) && !defined(__STDC_EXT__) -# define __STDC_EXT__ 1 -#endif - -/* Force linking against required libraries under Windows: */ -#if defined __WINDOWS__ -# include "wx/msw/libraries.h" -#endif - -#if defined(__BORLANDC__) || (defined(__GNUC__) && __GNUC__ < 3) -#define wxNEEDS_CHARPP -#endif - -/* - Note that wx/msw/gccpriv.h must be included after defining UNICODE and - _UNICODE macros as it includes _mingw.h which relies on them being set. - */ -#if ( defined( __GNUWIN32__ ) || defined( __MINGW32__ ) || \ - ( defined( __CYGWIN__ ) && defined( __WINDOWS__ ) ) ) && \ - !defined(__WXMOTIF__) && \ - !defined(__WXX11__) -# include "wx/msw/gccpriv.h" -#else -# undef wxCHECK_W32API_VERSION -# define wxCHECK_W32API_VERSION(maj, min) (0) -# undef wxCHECK_MINGW32_VERSION -# define wxCHECK_MINGW32_VERSION( major, minor ) (0) -# define wxDECL_FOR_STRICT_MINGW32(rettype, func, params) -#endif - - -/* - Handle Darwin gcc universal compilation. Don't do this in an Apple- - specific case since no sane compiler should be defining either - __BIG_ENDIAN__ or __LITTLE_ENDIAN__ unless it really is generating - code that will be hosted on a machine with the appropriate endianness. - If a compiler defines neither, assume the user or configure set - WORDS_BIGENDIAN appropriately. - */ -#if defined(__BIG_ENDIAN__) -# undef WORDS_BIGENDIAN -# define WORDS_BIGENDIAN 1 -#elif defined(__LITTLE_ENDIAN__) -# undef WORDS_BIGENDIAN -#elif defined(__WXMAC__) && !defined(WORDS_BIGENDIAN) -/* According to Stefan even ancient Mac compilers defined __BIG_ENDIAN__ */ -# warning "Compiling wxMac with probably wrong endianness" -#endif -/* also the 32/64 bit universal builds must be handled accordingly */ -#ifdef __DARWIN__ -# ifdef __LP64__ -# undef SIZEOF_VOID_P -# undef SIZEOF_LONG -# undef SIZEOF_SIZE_T -# define SIZEOF_VOID_P 8 -# define SIZEOF_LONG 8 -# define SIZEOF_SIZE_T 8 -# else -# undef SIZEOF_VOID_P -# undef SIZEOF_LONG -# undef SIZEOF_SIZE_T -# define SIZEOF_VOID_P 4 -# define SIZEOF_LONG 4 -# define SIZEOF_SIZE_T 4 -# endif -#endif - -/* - Define various OS X symbols before including wx/chkconf.h which uses them. - - __WXOSX_MAC__ means Mac OS X, non embedded - __WXOSX_IPHONE__ means OS X iPhone - */ - -/* - Normally all of __WXOSX_XXX__, __WXOSX__ and __WXMAC__ are defined by - configure but ensure that we also define them if configure was not used for - whatever reason. - - The primary symbol remains __WXOSX_XXX__ one, __WXOSX__ exists to allow - checking for any OS X port (Cocoa) and __WXMAC__ is an old name - for it. - */ -#if defined(__WXOSX_COCOA__) || defined(__WXOSX_IPHONE__) -# ifndef __WXOSX__ -# define __WXOSX__ 1 -# endif -# ifndef __WXMAC__ -# define __WXMAC__ 1 -# endif -#endif - -#ifdef __WXOSX__ -/* setup precise defines according to sdk used */ -# include <TargetConditionals.h> -# if defined(__WXOSX_IPHONE__) -# if !( defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE ) -# error "incorrect SDK for an iPhone build" -# endif -# else -# if wxUSE_GUI && !defined(__WXOSX_COCOA__) -# error "one of __WXOSX_IPHONE__ or __WXOSX_COCOA__ must be defined for the GUI build" -# endif -# if !( defined(TARGET_OS_MAC) && TARGET_OS_MAC ) -# error "incorrect SDK for a Mac OS X build" -# endif -# define __WXOSX_MAC__ 1 -# endif -#endif - -#ifdef __WXOSX_MAC__ -# if defined(__MACH__) -# include <AvailabilityMacros.h> -# ifndef MAC_OS_X_VERSION_10_4 -# define MAC_OS_X_VERSION_10_4 1040 -# endif -# ifndef MAC_OS_X_VERSION_10_5 -# define MAC_OS_X_VERSION_10_5 1050 -# endif -# ifndef MAC_OS_X_VERSION_10_6 -# define MAC_OS_X_VERSION_10_6 1060 -# endif -# ifndef MAC_OS_X_VERSION_10_7 -# define MAC_OS_X_VERSION_10_7 1070 -# endif -# ifndef MAC_OS_X_VERSION_10_8 -# define MAC_OS_X_VERSION_10_8 1080 -# endif -# ifndef MAC_OS_X_VERSION_10_9 -# define MAC_OS_X_VERSION_10_9 1090 -# endif -# ifndef MAC_OS_X_VERSION_10_10 -# define MAC_OS_X_VERSION_10_10 101000 -# endif -# else -# error "only mach-o configurations are supported" -# endif -#endif - -/* - This is obsolete and kept for backwards compatibility only. - */ -#if defined(__WXOSX__) -# define __WXOSX_OR_COCOA__ 1 -#endif - -/* - check the consistency of the settings in setup.h: note that this must be - done after setting wxUSE_UNICODE correctly as it is used in wx/chkconf.h - and after defining the compiler macros which are used in it too - */ -#include "wx/chkconf.h" - - -/* - some compilers don't support iostream.h any longer, while some of theme - are not updated with <iostream> yet, so override the users setting here - in such case. - */ -#if defined(_MSC_VER) && (_MSC_VER >= 1310) -# undef wxUSE_IOSTREAMH -# define wxUSE_IOSTREAMH 0 -#elif defined(__MINGW32__) -# undef wxUSE_IOSTREAMH -# define wxUSE_IOSTREAMH 0 -#endif /* compilers with/without iostream.h */ - -/* - old C++ headers (like <iostream.h>) declare classes in the global namespace - while the new, standard ones (like <iostream>) do it in std:: namespace, - unless it's an old gcc version. - - using this macro allows constuctions like "wxSTD iostream" to work in - either case - */ -#if !wxUSE_IOSTREAMH && (!defined(__GNUC__) || ( __GNUC__ > 2 ) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)) -# define wxSTD std:: -#else -# define wxSTD -#endif - -/* On OpenVMS with the most recent HP C++ compiler some function (i.e. wscanf) - * are only available in the std-namespace. (BUG???) - */ -#if defined( __VMS ) && (__DECCXX_VER >= 70100000) && !defined(__STD_CFRONT) && !defined( __NONAMESPACE_STD ) -# define wxVMS_USE_STD std:: -#else -# define wxVMS_USE_STD -#endif - -#ifdef __VMS -#define XtDisplay XTDISPLAY -#ifdef __WXMOTIF__ -#define XtParent XTPARENT -#define XtScreen XTSCREEN -#define XtWindow XTWINDOW -#endif -#endif - -/* Choose which method we will use for updating menus - * - in OnIdle, or when we receive a wxEVT_MENU_OPEN event. - * Presently, only Windows, OS X and GTK+ support wxEVT_MENU_OPEN. - */ -#ifndef wxUSE_IDLEMENUUPDATES -# if (defined(__WXMSW__) || defined(__WXGTK__) || defined(__WXOSX__)) && !defined(__WXUNIVERSAL__) -# define wxUSE_IDLEMENUUPDATES 0 -# else -# define wxUSE_IDLEMENUUPDATES 1 -# endif -#endif - -/* - * Define symbols that are not yet in - * configure or possibly some setup.h files. - * They will need to be added. - */ - -#ifndef wxUSE_FILECONFIG -# if wxUSE_CONFIG && wxUSE_TEXTFILE -# define wxUSE_FILECONFIG 1 -# else -# define wxUSE_FILECONFIG 0 -# endif -#endif - -#ifndef wxUSE_HOTKEY -# define wxUSE_HOTKEY 0 -#endif - -#if !defined(wxUSE_WXDIB) && defined(__WXMSW__) -# define wxUSE_WXDIB 1 -#endif - -/* - Optionally supported C++ features. - */ - -/* - RTTI: if it is disabled in build/msw/makefile.* then this symbol will - already be defined but it's also possible to do it from configure (with - g++) or by editing project files with MSVC so test for it here too. - */ -#ifndef wxNO_RTTI - /* - Only 4.3 defines __GXX_RTTI by default so its absence is not an - indication of disabled RTTI with the previous versions. - */ -# if wxCHECK_GCC_VERSION(4, 3) -# ifndef __GXX_RTTI -# define wxNO_RTTI -# endif -# elif defined(_MSC_VER) -# ifndef _CPPRTTI -# define wxNO_RTTI -# endif -# endif -#endif /* wxNO_RTTI */ - -#endif /* _WX_PLATFORM_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/platinfo.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/platinfo.h deleted file mode 100644 index 9802f190..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/platinfo.h +++ /dev/null @@ -1,350 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/platinfo.h -// Purpose: declaration of the wxPlatformInfo class -// Author: Francesco Montorsi -// Modified by: -// Created: 07.07.2006 (based on wxToolkitInfo) -// Copyright: (c) 2006 Francesco Montorsi -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PLATINFO_H_ -#define _WX_PLATINFO_H_ - -#include "wx/string.h" - -// ---------------------------------------------------------------------------- -// wxPlatformInfo enums & structs -// ---------------------------------------------------------------------------- - -// VERY IMPORTANT: when changing these enum values, also change the relative -// string tables in src/common/platinfo.cpp - - -// families & sub-families of operating systems -enum wxOperatingSystemId -{ - wxOS_UNKNOWN = 0, // returned on error - - wxOS_MAC_OS = 1 << 0, // Apple Mac OS 8/9/X with Mac paths - wxOS_MAC_OSX_DARWIN = 1 << 1, // Apple Mac OS X with Unix paths - wxOS_MAC = wxOS_MAC_OS|wxOS_MAC_OSX_DARWIN, - - wxOS_WINDOWS_9X = 1 << 2, // Windows 9x family (95/98/ME) - wxOS_WINDOWS_NT = 1 << 3, // Windows NT family (NT/2000/XP) - wxOS_WINDOWS_MICRO = 1 << 4, // MicroWindows - wxOS_WINDOWS_CE = 1 << 5, // Windows CE (Window Mobile) - wxOS_WINDOWS = wxOS_WINDOWS_9X | - wxOS_WINDOWS_NT | - wxOS_WINDOWS_MICRO | - wxOS_WINDOWS_CE, - - wxOS_UNIX_LINUX = 1 << 6, // Linux - wxOS_UNIX_FREEBSD = 1 << 7, // FreeBSD - wxOS_UNIX_OPENBSD = 1 << 8, // OpenBSD - wxOS_UNIX_NETBSD = 1 << 9, // NetBSD - wxOS_UNIX_SOLARIS = 1 << 10, // SunOS - wxOS_UNIX_AIX = 1 << 11, // AIX - wxOS_UNIX_HPUX = 1 << 12, // HP/UX - wxOS_UNIX = wxOS_UNIX_LINUX | - wxOS_UNIX_FREEBSD | - wxOS_UNIX_OPENBSD | - wxOS_UNIX_NETBSD | - wxOS_UNIX_SOLARIS | - wxOS_UNIX_AIX | - wxOS_UNIX_HPUX, - - // 1<<13 and 1<<14 available for other Unix flavours - - wxOS_DOS = 1 << 15, // Microsoft DOS - wxOS_OS2 = 1 << 16 // OS/2 -}; - -// list of wxWidgets ports - some of them can be used with more than -// a single toolkit. -enum wxPortId -{ - wxPORT_UNKNOWN = 0, // returned on error - - wxPORT_BASE = 1 << 0, // wxBase, no native toolkit used - - wxPORT_MSW = 1 << 1, // wxMSW, native toolkit is Windows API - wxPORT_MOTIF = 1 << 2, // wxMotif, using [Open]Motif or Lesstif - wxPORT_GTK = 1 << 3, // wxGTK, using GTK+ 1.x, 2.x, GPE or Maemo - wxPORT_DFB = 1 << 4, // wxDFB, using wxUniversal - wxPORT_X11 = 1 << 5, // wxX11, using wxUniversal - wxPORT_PM = 1 << 6, // wxOS2, using OS/2 Presentation Manager - wxPORT_OS2 = wxPORT_PM, // wxOS2, using OS/2 Presentation Manager - wxPORT_MAC = 1 << 7, // wxOSX (former wxMac), using Cocoa or iPhone API - wxPORT_OSX = wxPORT_MAC, // wxOSX, using Cocoa or iPhone API - wxPORT_COCOA = 1 << 8, // wxCocoa, using Cocoa NextStep/Mac API - wxPORT_WINCE = 1 << 9, // wxWinCE, toolkit is WinCE SDK API - wxPORT_QT = 1 << 10 // wxQT, using QT4 -}; - -// architecture of the operating system -// (regardless of the build environment of wxWidgets library - see -// wxIsPlatform64bit documentation for more info) -enum wxArchitecture -{ - wxARCH_INVALID = -1, // returned on error - - wxARCH_32, // 32 bit - wxARCH_64, - - wxARCH_MAX -}; - - -// endian-ness of the machine -enum wxEndianness -{ - wxENDIAN_INVALID = -1, // returned on error - - wxENDIAN_BIG, // 4321 - wxENDIAN_LITTLE, // 1234 - wxENDIAN_PDP, // 3412 - - wxENDIAN_MAX -}; - -// informations about a linux distro returned by the lsb_release utility -struct wxLinuxDistributionInfo -{ - wxString Id; - wxString Release; - wxString CodeName; - wxString Description; - - bool operator==(const wxLinuxDistributionInfo& ldi) const - { - return Id == ldi.Id && - Release == ldi.Release && - CodeName == ldi.CodeName && - Description == ldi.Description; - } - - bool operator!=(const wxLinuxDistributionInfo& ldi) const - { return !(*this == ldi); } -}; - - -// ---------------------------------------------------------------------------- -// wxPlatformInfo -// ---------------------------------------------------------------------------- - -// Information about the toolkit that the app is running under and some basic -// platform and architecture info -class WXDLLIMPEXP_BASE wxPlatformInfo -{ -public: - wxPlatformInfo(); - wxPlatformInfo(wxPortId pid, - int tkMajor = -1, int tkMinor = -1, - wxOperatingSystemId id = wxOS_UNKNOWN, - int osMajor = -1, int osMinor = -1, - wxArchitecture arch = wxARCH_INVALID, - wxEndianness endian = wxENDIAN_INVALID, - bool usingUniversal = false); - - // default copy ctor, assignment operator and dtor are ok - - bool operator==(const wxPlatformInfo &t) const; - - bool operator!=(const wxPlatformInfo &t) const - { return !(*this == t); } - - // Gets a wxPlatformInfo already initialized with the values for - // the currently running platform. - static const wxPlatformInfo& Get(); - - - - // string -> enum conversions - // --------------------------------- - - static wxOperatingSystemId GetOperatingSystemId(const wxString &name); - static wxPortId GetPortId(const wxString &portname); - - static wxArchitecture GetArch(const wxString &arch); - static wxEndianness GetEndianness(const wxString &end); - - // enum -> string conversions - // --------------------------------- - - static wxString GetOperatingSystemFamilyName(wxOperatingSystemId os); - static wxString GetOperatingSystemIdName(wxOperatingSystemId os); - static wxString GetPortIdName(wxPortId port, bool usingUniversal); - static wxString GetPortIdShortName(wxPortId port, bool usingUniversal); - - static wxString GetArchName(wxArchitecture arch); - static wxString GetEndiannessName(wxEndianness end); - - - // getters - // ----------------- - - int GetOSMajorVersion() const - { return m_osVersionMajor; } - int GetOSMinorVersion() const - { return m_osVersionMinor; } - - // return true if the OS version >= major.minor - bool CheckOSVersion(int major, int minor) const; - - int GetToolkitMajorVersion() const - { return m_tkVersionMajor; } - int GetToolkitMinorVersion() const - { return m_tkVersionMinor; } - - bool CheckToolkitVersion(int major, int minor) const - { - return DoCheckVersion(GetToolkitMajorVersion(), - GetToolkitMinorVersion(), - major, - minor); - } - - bool IsUsingUniversalWidgets() const - { return m_usingUniversal; } - - wxOperatingSystemId GetOperatingSystemId() const - { return m_os; } - wxLinuxDistributionInfo GetLinuxDistributionInfo() const - { return m_ldi; } - wxPortId GetPortId() const - { return m_port; } - wxArchitecture GetArchitecture() const - { return m_arch; } - wxEndianness GetEndianness() const - { return m_endian; } - - - // string getters - // ----------------- - - wxString GetOperatingSystemFamilyName() const - { return GetOperatingSystemFamilyName(m_os); } - wxString GetOperatingSystemIdName() const - { return GetOperatingSystemIdName(m_os); } - wxString GetPortIdName() const - { return GetPortIdName(m_port, m_usingUniversal); } - wxString GetPortIdShortName() const - { return GetPortIdShortName(m_port, m_usingUniversal); } - wxString GetArchName() const - { return GetArchName(m_arch); } - wxString GetEndiannessName() const - { return GetEndiannessName(m_endian); } - wxString GetOperatingSystemDescription() const - { return m_osDesc; } - wxString GetDesktopEnvironment() const - { return m_desktopEnv; } - - static wxString GetOperatingSystemDirectory(); - // doesn't make sense to store inside wxPlatformInfo the OS directory, - // thus this function is static; note that this function simply calls - // wxGetOSDirectory() and is here just to make it easier for the user to - // find it that feature (global functions can be difficult to find in the docs) - - // setters - // ----------------- - - void SetOSVersion(int major, int minor) - { m_osVersionMajor=major; m_osVersionMinor=minor; } - void SetToolkitVersion(int major, int minor) - { m_tkVersionMajor=major; m_tkVersionMinor=minor; } - - void SetOperatingSystemId(wxOperatingSystemId n) - { m_os = n; } - void SetOperatingSystemDescription(const wxString& desc) - { m_osDesc = desc; } - void SetPortId(wxPortId n) - { m_port = n; } - void SetArchitecture(wxArchitecture n) - { m_arch = n; } - void SetEndianness(wxEndianness n) - { m_endian = n; } - - void SetDesktopEnvironment(const wxString& de) - { m_desktopEnv = de; } - void SetLinuxDistributionInfo(const wxLinuxDistributionInfo& di) - { m_ldi = di; } - - - // miscellaneous - // ----------------- - - bool IsOk() const - { - return m_osVersionMajor != -1 && m_osVersionMinor != -1 && - m_os != wxOS_UNKNOWN && - !m_osDesc.IsEmpty() && - m_tkVersionMajor != -1 && m_tkVersionMinor != -1 && - m_port != wxPORT_UNKNOWN && - m_arch != wxARCH_INVALID && - m_endian != wxENDIAN_INVALID; - - // do not check linux-specific info; it's ok to have them empty - } - - -protected: - static bool DoCheckVersion(int majorCur, int minorCur, int major, int minor) - { - return majorCur > major || (majorCur == major && minorCur >= minor); - } - - bool m_initializedForCurrentPlatform; - - void InitForCurrentPlatform(); - - - // OS stuff - // ----------------- - - // Version of the OS; valid if m_os != wxOS_UNKNOWN - // (-1 means not initialized yet). - int m_osVersionMajor, - m_osVersionMinor; - - // Operating system ID. - wxOperatingSystemId m_os; - - // Operating system description. - wxString m_osDesc; - - - // linux-specific - // ----------------- - - wxString m_desktopEnv; - wxLinuxDistributionInfo m_ldi; - - - // toolkit - // ----------------- - - // Version of the underlying toolkit - // (-1 means not initialized yet; zero means no toolkit). - int m_tkVersionMajor, m_tkVersionMinor; - - // name of the wxWidgets port - wxPortId m_port; - - // is using wxUniversal widgets? - bool m_usingUniversal; - - - // others - // ----------------- - - // architecture of the OS/machine - wxArchitecture m_arch; - - // endianness of the machine - wxEndianness m_endian; -}; - - - -#endif // _WX_PLATINFO_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/popupwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/popupwin.h deleted file mode 100644 index ea6a4427..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/popupwin.h +++ /dev/null @@ -1,195 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/popupwin.h -// Purpose: wxPopupWindow interface declaration -// Author: Vadim Zeitlin -// Modified by: -// Created: 06.01.01 -// Copyright: (c) 2001 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_POPUPWIN_H_BASE_ -#define _WX_POPUPWIN_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_POPUPWIN - -#include "wx/nonownedwnd.h" - -// ---------------------------------------------------------------------------- -// wxPopupWindow: a special kind of top level window used for popup menus, -// combobox popups and such. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPopupWindowBase : public wxNonOwnedWindow -{ -public: - wxPopupWindowBase() { } - virtual ~wxPopupWindowBase(); - - // create the popup window - // - // style may only contain border flags - bool Create(wxWindow *parent, int style = wxBORDER_NONE); - - // move the popup window to the right position, i.e. such that it is - // entirely visible - // - // the popup is positioned at ptOrigin + size if it opens below and to the - // right (default), at ptOrigin - sizePopup if it opens above and to the - // left &c - // - // the point must be given in screen coordinates! - virtual void Position(const wxPoint& ptOrigin, - const wxSize& size); - - virtual bool IsTopLevel() const wxOVERRIDE { return true; } - - wxDECLARE_NO_COPY_CLASS(wxPopupWindowBase); -}; - - -// include the real class declaration -#if defined(__WXMSW__) - #include "wx/msw/popupwin.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/popupwin.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/popupwin.h" -#elif defined(__WXX11__) - #include "wx/x11/popupwin.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/popupwin.h" -#elif defined(__WXDFB__) - #include "wx/dfb/popupwin.h" -#elif defined(__WXMAC__) - #include "wx/osx/popupwin.h" -#elif defined(__WXQT__) - #include "wx/qt/popupwin.h" -#else - #error "wxPopupWindow is not supported under this platform." -#endif - -// ---------------------------------------------------------------------------- -// wxPopupTransientWindow: a wxPopupWindow which disappears automatically -// when the user clicks mouse outside it or if it loses focus in any other way -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxPopupWindowHandler; -class WXDLLIMPEXP_FWD_CORE wxPopupFocusHandler; - -class WXDLLIMPEXP_CORE wxPopupTransientWindow : public wxPopupWindow -{ -public: - // ctors - wxPopupTransientWindow() { Init(); } - wxPopupTransientWindow(wxWindow *parent, int style = wxBORDER_NONE); - - virtual ~wxPopupTransientWindow(); - - // popup the window (this will show it too) and keep focus at winFocus - // (or itself if it's NULL), dismiss the popup if we lose focus - virtual void Popup(wxWindow *focus = NULL); - - // hide the window - virtual void Dismiss(); - - // can the window be dismissed now? - // - // VZ: where is this used?? - virtual bool CanDismiss() - { return true; } - - // called when a mouse is pressed while the popup is shown: return true - // from here to prevent its normal processing by the popup (which consists - // in dismissing it if the mouse is clicked outside it) - virtual bool ProcessLeftDown(wxMouseEvent& event); - - // Overridden to grab the input on some plaforms - virtual bool Show( bool show = true ) wxOVERRIDE; - - // Override to implement delayed destruction of this window. - virtual bool Destroy() wxOVERRIDE; - -protected: - // common part of all ctors - void Init(); - - // this is called when the popup is disappeared because of anything - // else but direct call to Dismiss() - virtual void OnDismiss(); - - // dismiss and notify the derived class - void DismissAndNotify(); - - // remove our event handlers - void PopHandlers(); - - // get alerted when child gets deleted from under us - void OnDestroy(wxWindowDestroyEvent& event); - -#if defined(__WXMSW__) ||(defined(__WXMAC__) && wxOSX_USE_COCOA_OR_CARBON) - // Check if the mouse needs to be captured or released: we must release - // when it's inside our window if we want the embedded controls to work. - void OnIdle(wxIdleEvent& event); -#endif - - // the child of this popup if any - wxWindow *m_child; - - // the window which has the focus while we're shown - wxWindow *m_focus; - - // these classes may call our DismissAndNotify() - friend class wxPopupWindowHandler; - friend class wxPopupFocusHandler; - - // the handlers we created, may be NULL (if not, must be deleted) - wxPopupWindowHandler *m_handlerPopup; - wxPopupFocusHandler *m_handlerFocus; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxPopupTransientWindow); - wxDECLARE_NO_COPY_CLASS(wxPopupTransientWindow); -}; - -#if wxUSE_COMBOBOX && defined(__WXUNIVERSAL__) - -// ---------------------------------------------------------------------------- -// wxPopupComboWindow: wxPopupTransientWindow used by wxComboBox -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxComboBox; -class WXDLLIMPEXP_FWD_CORE wxComboCtrl; - -class WXDLLIMPEXP_CORE wxPopupComboWindow : public wxPopupTransientWindow -{ -public: - wxPopupComboWindow() { m_combo = NULL; } - wxPopupComboWindow(wxComboCtrl *parent); - - bool Create(wxComboCtrl *parent); - - // position the window correctly relatively to the combo - void PositionNearCombo(); - -protected: - // notify the combo here - virtual void OnDismiss(); - - // forward the key presses to the combobox - void OnKeyDown(wxKeyEvent& event); - - // the parent combobox - wxComboCtrl *m_combo; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxPopupComboWindow); -}; - -#endif // wxUSE_COMBOBOX && defined(__WXUNIVERSAL__) - -#endif // wxUSE_POPUPWIN - -#endif // _WX_POPUPWIN_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/position.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/position.h deleted file mode 100644 index bd324e23..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/position.h +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/position.h -// Purpose: Common structure and methods for positional information. -// Author: Vadim Zeitlin, Robin Dunn, Brad Anderson, Bryan Petty -// Created: 2007-03-13 -// Copyright: (c) 2007 The wxWidgets Team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_POSITION_H_ -#define _WX_POSITION_H_ - -#include "wx/gdicmn.h" - -class WXDLLIMPEXP_CORE wxPosition -{ -public: - wxPosition() : m_row(0), m_column(0) {} - wxPosition(int row, int col) : m_row(row), m_column(col) {} - - // default copy ctor and assignment operator are okay. - - int GetRow() const { return m_row; } - int GetColumn() const { return m_column; } - int GetCol() const { return GetColumn(); } - void SetRow(int row) { m_row = row; } - void SetColumn(int column) { m_column = column; } - void SetCol(int column) { SetColumn(column); } - - bool operator==(const wxPosition& p) const - { return m_row == p.m_row && m_column == p.m_column; } - bool operator!=(const wxPosition& p) const - { return !(*this == p); } - - wxPosition& operator+=(const wxPosition& p) - { m_row += p.m_row; m_column += p.m_column; return *this; } - wxPosition& operator-=(const wxPosition& p) - { m_row -= p.m_row; m_column -= p.m_column; return *this; } - wxPosition& operator+=(const wxSize& s) - { m_row += s.y; m_column += s.x; return *this; } - wxPosition& operator-=(const wxSize& s) - { m_row -= s.y; m_column -= s.x; return *this; } - - wxPosition operator+(const wxPosition& p) const - { return wxPosition(m_row + p.m_row, m_column + p.m_column); } - wxPosition operator-(const wxPosition& p) const - { return wxPosition(m_row - p.m_row, m_column - p.m_column); } - wxPosition operator+(const wxSize& s) const - { return wxPosition(m_row + s.y, m_column + s.x); } - wxPosition operator-(const wxSize& s) const - { return wxPosition(m_row - s.y, m_column - s.x); } - -private: - int m_row; - int m_column; -}; - -#endif // _WX_POSITION_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/power.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/power.h deleted file mode 100644 index 7c45abaf..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/power.h +++ /dev/null @@ -1,151 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/power.h -// Purpose: functions and classes for system power management -// Author: Vadim Zeitlin -// Modified by: -// Created: 2006-05-27 -// Copyright: (c) 2006 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_POWER_H_ -#define _WX_POWER_H_ - -#include "wx/event.h" - -// ---------------------------------------------------------------------------- -// power management constants -// ---------------------------------------------------------------------------- - -enum wxPowerType -{ - wxPOWER_SOCKET, - wxPOWER_BATTERY, - wxPOWER_UNKNOWN -}; - -enum wxBatteryState -{ - wxBATTERY_NORMAL_STATE, // system is fully usable - wxBATTERY_LOW_STATE, // start to worry - wxBATTERY_CRITICAL_STATE, // save quickly - wxBATTERY_SHUTDOWN_STATE, // too late - wxBATTERY_UNKNOWN_STATE -}; - -// ---------------------------------------------------------------------------- -// wxPowerEvent is generated when the system online status changes -// ---------------------------------------------------------------------------- - -// currently the power events are only available under Windows, to avoid -// compiling in the code for handling them which is never going to be invoked -// under the other platforms, we define wxHAS_POWER_EVENTS symbol if this event -// is available, it should be used to guard all code using wxPowerEvent -#ifdef __WINDOWS__ - -#define wxHAS_POWER_EVENTS - -class WXDLLIMPEXP_BASE wxPowerEvent : public wxEvent -{ -public: - wxPowerEvent() // just for use by wxRTTI - : m_veto(false) { } - - wxPowerEvent(wxEventType evtType) : wxEvent(wxID_NONE, evtType) - { - m_veto = false; - } - - // Veto the operation (only makes sense with EVT_POWER_SUSPENDING) - void Veto() { m_veto = true; } - - bool IsVetoed() const { return m_veto; } - - - // default copy ctor, assignment operator and dtor are ok - - virtual wxEvent *Clone() const { return new wxPowerEvent(*this); } - -private: - bool m_veto; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxPowerEvent); -}; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_BASE, wxEVT_POWER_SUSPENDING, wxPowerEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_BASE, wxEVT_POWER_SUSPENDED, wxPowerEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_BASE, wxEVT_POWER_SUSPEND_CANCEL, wxPowerEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_BASE, wxEVT_POWER_RESUME, wxPowerEvent ); - -typedef void (wxEvtHandler::*wxPowerEventFunction)(wxPowerEvent&); - -#define wxPowerEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxPowerEventFunction, func) - -#define EVT_POWER_SUSPENDING(func) \ - wx__DECLARE_EVT0(wxEVT_POWER_SUSPENDING, wxPowerEventHandler(func)) -#define EVT_POWER_SUSPENDED(func) \ - wx__DECLARE_EVT0(wxEVT_POWER_SUSPENDED, wxPowerEventHandler(func)) -#define EVT_POWER_SUSPEND_CANCEL(func) \ - wx__DECLARE_EVT0(wxEVT_POWER_SUSPEND_CANCEL, wxPowerEventHandler(func)) -#define EVT_POWER_RESUME(func) \ - wx__DECLARE_EVT0(wxEVT_POWER_RESUME, wxPowerEventHandler(func)) - -#else // no support for power events - #undef wxHAS_POWER_EVENTS -#endif // support for power events/no support - -// ---------------------------------------------------------------------------- -// wxPowerResourceBlocker -// ---------------------------------------------------------------------------- - -enum wxPowerResourceKind -{ - wxPOWER_RESOURCE_SCREEN, - wxPOWER_RESOURCE_SYSTEM -}; - -class WXDLLIMPEXP_BASE wxPowerResource -{ -public: - static bool Acquire(wxPowerResourceKind kind, - const wxString& reason = wxString()); - static void Release(wxPowerResourceKind kind); -}; - -class wxPowerResourceBlocker -{ -public: - explicit wxPowerResourceBlocker(wxPowerResourceKind kind, - const wxString& reason = wxString()) - : m_kind(kind), - m_acquired(wxPowerResource::Acquire(kind, reason)) - { - } - - bool IsInEffect() const { return m_acquired; } - - ~wxPowerResourceBlocker() - { - if ( m_acquired ) - wxPowerResource::Release(m_kind); - } - -private: - const wxPowerResourceKind m_kind; - const bool m_acquired; - - wxDECLARE_NO_COPY_CLASS(wxPowerResourceBlocker); -}; - -// ---------------------------------------------------------------------------- -// power management functions -// ---------------------------------------------------------------------------- - -// return the current system power state: online or offline -WXDLLIMPEXP_BASE wxPowerType wxGetPowerType(); - -// return approximate battery state -WXDLLIMPEXP_BASE wxBatteryState wxGetBatteryState(); - -#endif // _WX_POWER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/preferences.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/preferences.h deleted file mode 100644 index 40dac7a0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/preferences.h +++ /dev/null @@ -1,145 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/preferences.h -// Purpose: Declaration of wxPreferencesEditor class. -// Author: Vaclav Slavik -// Created: 2013-02-19 -// Copyright: (c) 2013 Vaclav Slavik <vslavik@fastmail.fm> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PREFERENCES_H_ -#define _WX_PREFERENCES_H_ - -#include "wx/defs.h" - -#if wxUSE_PREFERENCES_EDITOR - -#include "wx/bitmap.h" -#include "wx/vector.h" - -class WXDLLIMPEXP_FWD_CORE wxWindow; - -class wxPreferencesEditorImpl; - -#if defined(__WXOSX_COCOA__) - // GetLargeIcon() is used - #define wxHAS_PREF_EDITOR_ICONS - // Changes should be applied immediately - #define wxHAS_PREF_EDITOR_APPLY_IMMEDIATELY - // The dialog is shown non-modally. - #define wxHAS_PREF_EDITOR_MODELESS -#elif defined(__WXGTK__) - // Changes should be applied immediately - #define wxHAS_PREF_EDITOR_APPLY_IMMEDIATELY - // The dialog is shown non-modally. - #define wxHAS_PREF_EDITOR_MODELESS -#endif - -// ---------------------------------------------------------------------------- -// wxPreferencesEditor: Native preferences editing -// ---------------------------------------------------------------------------- - -// One page of a preferences window -class WXDLLIMPEXP_CORE wxPreferencesPage -{ -public: - wxPreferencesPage() {} - virtual ~wxPreferencesPage() {} - - // Name of the page, used e.g. for tabs - virtual wxString GetName() const = 0; - - // Return 32x32 icon used for the page. Currently only used on OS X, where - // implementation is required; unused on other platforms. Because of this, - // the method is only pure virtual on platforms that use it. -#ifdef wxHAS_PREF_EDITOR_ICONS - virtual wxBitmap GetLargeIcon() const = 0; -#else - virtual wxBitmap GetLargeIcon() const { return wxBitmap(); } -#endif - - // Create a window (usually a wxPanel) for this page. The caller takes - // ownership of the returned window. - virtual wxWindow *CreateWindow(wxWindow *parent) = 0; - - wxDECLARE_NO_COPY_CLASS(wxPreferencesPage); -}; - - -// Helper for implementing some common pages (General, Advanced) -class WXDLLIMPEXP_CORE wxStockPreferencesPage : public wxPreferencesPage -{ -public: - enum Kind - { - Kind_General, - Kind_Advanced - }; - - wxStockPreferencesPage(Kind kind) : m_kind(kind) {} - Kind GetKind() const { return m_kind; } - - virtual wxString GetName() const wxOVERRIDE; -#ifdef __WXOSX_COCOA__ - virtual wxBitmap GetLargeIcon() const wxOVERRIDE; -#endif - -private: - Kind m_kind; -}; - - -// Notice that this class does not inherit from wxWindow. -class WXDLLIMPEXP_CORE wxPreferencesEditor -{ -public: - // Ctor creates an empty editor, use AddPage() to add controls to it. - wxPreferencesEditor(const wxString& title = wxString()); - - // Dtor destroys the dialog if still shown. - virtual ~wxPreferencesEditor(); - - // Add a new page to the editor. The editor takes ownership of the page - // and won't delete it until it is destroyed itself. - void AddPage(wxPreferencesPage *page); - - // Show the preferences dialog or bring it to the top if it's already - // shown. Notice that this method may or may not block depending on the - // platform, i.e. depending on whether the dialog is modal or not. - virtual void Show(wxWindow* parent); - - // Hide the currently shown dialog, if any. This is typically used to - // dismiss the dialog if the object whose preferences it is editing was - // closed. - void Dismiss(); - - // Whether changes to values in the pages should be applied immediately - // (OS X, GTK+) or only when the user clicks OK/Apply (Windows) - static bool ShouldApplyChangesImmediately() - { -#ifdef wxHAS_PREF_EDITOR_APPLY_IMMEDIATELY - return true; -#else - return false; -#endif - } - - // Whether the dialog is shown modally, i.e. Show() blocks, or not. - static bool ShownModally() - { -#ifdef wxHAS_PREF_EDITOR_MODELESS - return false; -#else - return true; -#endif - } - -private: - wxPreferencesEditorImpl* m_impl; - - wxDECLARE_NO_COPY_CLASS(wxPreferencesEditor); -}; - -#endif // wxUSE_PREFERENCES_EDITOR - -#endif // _WX_PREFERENCES_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/print.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/print.h deleted file mode 100644 index 269f55cb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/print.h +++ /dev/null @@ -1,38 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/print.h -// Purpose: Base header for printer classes -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRINT_H_BASE_ -#define _WX_PRINT_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_PRINTING_ARCHITECTURE - -#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) - -#include "wx/msw/printwin.h" - -#elif defined(__WXMAC__) - -#include "wx/osx/printmac.h" - - -#elif defined(__WXQT__) - -#include "wx/qt/printqt.h" -#else - -#include "wx/generic/printps.h" - -#endif - -#endif // wxUSE_PRINTING_ARCHITECTURE -#endif - // _WX_PRINT_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/printdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/printdlg.h deleted file mode 100644 index ecb2ce88..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/printdlg.h +++ /dev/null @@ -1,121 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/printdlg.h -// Purpose: Base header and class for print dialogs -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRINTDLG_H_BASE_ -#define _WX_PRINTDLG_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_PRINTING_ARCHITECTURE - -#include "wx/event.h" -#include "wx/dialog.h" -#include "wx/intl.h" -#include "wx/cmndata.h" - - -// --------------------------------------------------------------------------- -// wxPrintDialogBase: interface for the dialog for printing -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPrintDialogBase : public wxDialog -{ -public: - wxPrintDialogBase() { } - wxPrintDialogBase(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString &title = wxEmptyString, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE); - - virtual wxPrintDialogData& GetPrintDialogData() = 0; - virtual wxPrintData& GetPrintData() = 0; - virtual wxDC *GetPrintDC() = 0; - -private: - wxDECLARE_ABSTRACT_CLASS(wxPrintDialogBase); - wxDECLARE_NO_COPY_CLASS(wxPrintDialogBase); -}; - -// --------------------------------------------------------------------------- -// wxPrintDialog: the dialog for printing. -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPrintDialog : public wxObject -{ -public: - wxPrintDialog(wxWindow *parent, wxPrintDialogData* data = NULL); - wxPrintDialog(wxWindow *parent, wxPrintData* data); - virtual ~wxPrintDialog(); - - virtual int ShowModal(); - - virtual wxPrintDialogData& GetPrintDialogData(); - virtual wxPrintData& GetPrintData(); - virtual wxDC *GetPrintDC(); - -private: - wxPrintDialogBase *m_pimpl; - -private: - wxDECLARE_DYNAMIC_CLASS(wxPrintDialog); - wxDECLARE_NO_COPY_CLASS(wxPrintDialog); -}; - -// --------------------------------------------------------------------------- -// wxPageSetupDialogBase: interface for the page setup dialog -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPageSetupDialogBase: public wxDialog -{ -public: - wxPageSetupDialogBase() { } - wxPageSetupDialogBase(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString &title = wxEmptyString, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE); - - virtual wxPageSetupDialogData& GetPageSetupDialogData() = 0; - -private: - wxDECLARE_ABSTRACT_CLASS(wxPageSetupDialogBase); - wxDECLARE_NO_COPY_CLASS(wxPageSetupDialogBase); -}; - -// --------------------------------------------------------------------------- -// wxPageSetupDialog: the page setup dialog -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPageSetupDialog: public wxObject -{ -public: - wxPageSetupDialog(wxWindow *parent, wxPageSetupDialogData *data = NULL); - virtual ~wxPageSetupDialog(); - - int ShowModal(); - wxPageSetupDialogData& GetPageSetupDialogData(); - // old name - wxPageSetupDialogData& GetPageSetupData(); - -private: - wxPageSetupDialogBase *m_pimpl; - -private: - wxDECLARE_DYNAMIC_CLASS(wxPageSetupDialog); - wxDECLARE_NO_COPY_CLASS(wxPageSetupDialog); -}; - -#endif - -#endif - // _WX_PRINTDLG_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/addremovectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/addremovectrl.h deleted file mode 100644 index adb349f6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/addremovectrl.h +++ /dev/null @@ -1,154 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/addremovectrl.h -// Purpose: wxAddRemoveImpl helper class declaration -// Author: Vadim Zeitlin -// Created: 2015-02-04 -// Copyright: (c) 2015 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_ADDREMOVECTRL_H_ -#define _WX_PRIVATE_ADDREMOVECTRL_H_ - -#include "wx/button.h" -#include "wx/sizer.h" - -// ---------------------------------------------------------------------------- -// wxAddRemoveImplBase: implementation-only part of wxAddRemoveCtrl, base part -// ---------------------------------------------------------------------------- - -class wxAddRemoveImplBase -{ -public: - // Base class ctor just initializes the associated adaptor, the derived - // class is supposed to create the buttons and layout everything. - // - // Takes ownership of the adaptor pointer. - wxEXPLICIT wxAddRemoveImplBase(wxAddRemoveAdaptor* adaptor, - wxAddRemoveCtrl* WXUNUSED(parent), - wxWindow* ctrlItems) - : m_adaptor(adaptor) - { - ctrlItems->Bind(wxEVT_CHAR, &wxAddRemoveImplBase::OnChar, this); - } - - // wxOSX implementation needs to override this as it doesn't use sizers, - // for the others it is not necessary. - virtual wxSize GetBestClientSize() const { return wxDefaultSize; } - - virtual void SetButtonsToolTips(const wxString& addtip, - const wxString& removetip) = 0; - - virtual ~wxAddRemoveImplBase() - { - delete m_adaptor; - } - - // Event handlers which must be connected to the appropriate sources by the - // derived classes. - - void OnUpdateUIAdd(wxUpdateUIEvent& event) - { - event.Enable( m_adaptor->CanAdd() ); - } - - void OnUpdateUIRemove(wxUpdateUIEvent& event) - { - event.Enable( m_adaptor->CanRemove() ); - } - - void OnAdd(wxCommandEvent& WXUNUSED(event)) - { - m_adaptor->OnAdd(); - } - - void OnRemove(wxCommandEvent& WXUNUSED(event)) - { - m_adaptor->OnRemove(); - } - -private: - // This event handler is connected by this class itself and doesn't need to - // be accessible to the derived classes. - - void OnChar(wxKeyEvent& event) - { - switch ( event.GetKeyCode() ) - { - case '+': - case WXK_INSERT: - case WXK_NUMPAD_INSERT: - if ( m_adaptor->CanAdd() ) - m_adaptor->OnAdd(); - return; - - case '-': - case WXK_DELETE: - case WXK_NUMPAD_DELETE: - if ( m_adaptor->CanRemove() ) - m_adaptor->OnRemove(); - return; - } - - event.Skip(); - } - - wxAddRemoveAdaptor* const m_adaptor; - - wxDECLARE_NO_COPY_CLASS(wxAddRemoveImplBase); -}; - -// GTK+ uses a wxToolBar-based implementation and so doesn't need this class. -#ifndef __WXGTK__ - -// Base class for the ports using actual wxButtons for the "+"/"-" buttons. -class wxAddRemoveImplWithButtons : public wxAddRemoveImplBase -{ -public: - wxEXPLICIT wxAddRemoveImplWithButtons(wxAddRemoveAdaptor* adaptor, - wxAddRemoveCtrl* parent, - wxWindow* ctrlItems) - : wxAddRemoveImplBase(adaptor, parent, ctrlItems) - { - m_btnAdd = - m_btnRemove = NULL; - } - - virtual void SetButtonsToolTips(const wxString& addtip, - const wxString& removetip) wxOVERRIDE - { - m_btnAdd->SetToolTip(addtip); - m_btnRemove->SetToolTip(removetip); - } - -protected: - // Must be called by the derived class ctor after creating the buttons to - // set up the event handlers. - void SetUpEvents() - { - m_btnAdd->Bind(wxEVT_UPDATE_UI, - &wxAddRemoveImplBase::OnUpdateUIAdd, this); - m_btnRemove->Bind(wxEVT_UPDATE_UI, - &wxAddRemoveImplBase::OnUpdateUIRemove, this); - - m_btnAdd->Bind(wxEVT_BUTTON, &wxAddRemoveImplBase::OnAdd, this); - m_btnRemove->Bind(wxEVT_BUTTON, &wxAddRemoveImplBase::OnRemove, this); - } - - wxButton *m_btnAdd, - *m_btnRemove; - - wxDECLARE_NO_COPY_CLASS(wxAddRemoveImplWithButtons); -}; - -#endif // !wxGTK - -#ifdef __WXOSX__ - #include "wx/osx/private/addremovectrl.h" -#elif defined(__WXGTK__) - #include "wx/gtk/private/addremovectrl.h" -#else - #include "wx/generic/private/addremovectrl.h" -#endif - -#endif // _WX_PRIVATE_ADDREMOVECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/eventloopsourcesmanager.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/eventloopsourcesmanager.h deleted file mode 100644 index 430a2f7f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/eventloopsourcesmanager.h +++ /dev/null @@ -1,29 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/eventloopsourcesmanager.h -// Purpose: declares wxEventLoopSourcesManagerBase class -// Author: Rob Bresalier -// Created: 2013-06-19 -// Copyright: (c) 2013 Rob Bresalier -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_EVENTLOOPSOURCESMANAGER_H_ -#define _WX_PRIVATE_EVENTLOOPSOURCESMANAGER_H_ - -// For pulling in the value of wxUSE_EVENTLOOP_SOURCE -#include "wx/evtloop.h" - -#if wxUSE_EVENTLOOP_SOURCE - -class WXDLLIMPEXP_BASE wxEventLoopSourcesManagerBase -{ -public: - virtual wxEventLoopSource* - AddSourceForFD(int fd, wxEventLoopSourceHandler *handler, int flags) = 0; - - virtual ~wxEventLoopSourcesManagerBase() { } -}; - -#endif // wxUSE_EVENTLOOP_SOURCE - -#endif // _WX_PRIVATE_EVENTLOOPSOURCESMANAGER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fd.h deleted file mode 100644 index 3f4a604c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fd.h +++ /dev/null @@ -1,53 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/fd.h -// Purpose: private stuff for working with file descriptors -// Author: Vadim Zeitlin -// Created: 2008-11-23 (moved from wx/unix/private.h) -// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_FD_H_ -#define _WX_PRIVATE_FD_H_ - -// standard Linux headers produce many warnings when used with icc so define -// our own replacements for FD_XXX macros -#if defined(__INTELC__) && defined(__LINUX__) - inline void wxFD_ZERO(fd_set *fds) - { - #pragma warning(push) - #pragma warning(disable:593) - FD_ZERO(fds); - #pragma warning(pop) - } - - inline void wxFD_SET(int fd, fd_set *fds) - { - #pragma warning(push, 1) - #pragma warning(disable:1469) - FD_SET(fd, fds); - #pragma warning(pop) - } - - inline bool wxFD_ISSET(int fd, fd_set *fds) - { - #pragma warning(push, 1) - #pragma warning(disable:1469) - return FD_ISSET(fd, fds); - #pragma warning(pop) - } - inline void wxFD_CLR(int fd, fd_set *fds) - { - #pragma warning(push, 1) - #pragma warning(disable:1469) - FD_CLR(fd, fds); - #pragma warning(pop) - } -#else // !__INTELC__ - #define wxFD_ZERO(fds) FD_ZERO(fds) - #define wxFD_SET(fd, fds) FD_SET(fd, fds) - #define wxFD_ISSET(fd, fds) FD_ISSET(fd, fds) - #define wxFD_CLR(fd, fds) FD_CLR(fd, fds) -#endif // __INTELC__/!__INTELC__ - -#endif // _WX_PRIVATE_FD_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdiodispatcher.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdiodispatcher.h deleted file mode 100644 index 704bd463..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdiodispatcher.h +++ /dev/null @@ -1,118 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/private/fdiodispatcher.h -// Purpose: classes for dispatching IO notifications for file descriptors -// Authors: Lukasz Michalski -// Created: December 2006 -// Copyright: (c) Lukasz Michalski -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_FDIODISPATCHER_H_ -#define _WX_PRIVATE_FDIODISPATCHER_H_ - -#include "wx/hashmap.h" -#include "wx/private/fdiohandler.h" - -// those flags describes sets where descriptor should be added -enum wxFDIODispatcherEntryFlags -{ - wxFDIO_INPUT = 1, - wxFDIO_OUTPUT = 2, - wxFDIO_EXCEPTION = 4, - wxFDIO_ALL = wxFDIO_INPUT | wxFDIO_OUTPUT | wxFDIO_EXCEPTION -}; - -// base class for wxSelectDispatcher and wxEpollDispatcher -class WXDLLIMPEXP_BASE wxFDIODispatcher -{ -public: - enum { TIMEOUT_INFINITE = -1 }; - - // return the global dispatcher to be used for IO events, can be NULL only - // if wxSelectDispatcher wasn't compiled into the library at all as - // creating it never fails - // - // don't delete the returned pointer - static wxFDIODispatcher *Get(); - - // if we have any registered handlers, check for any pending events to them - // and dispatch them -- this is used from wxX11 and wxDFB event loops - // implementation - static void DispatchPending(); - - // register handler for the given descriptor with the dispatcher, return - // true on success or false on error - virtual bool RegisterFD(int fd, wxFDIOHandler *handler, int flags) = 0; - - // modify descriptor flags or handler, return true on success - virtual bool ModifyFD(int fd, wxFDIOHandler *handler, int flags) = 0; - - // unregister descriptor previously registered with RegisterFD() - virtual bool UnregisterFD(int fd) = 0; - - // check if any events are currently available without dispatching them - virtual bool HasPending() const = 0; - - // wait for an event for at most timeout milliseconds and process it; - // return the number of events processed (possibly 0 if timeout expired) or - // -1 if an error occurred - virtual int Dispatch(int timeout = TIMEOUT_INFINITE) = 0; - - virtual ~wxFDIODispatcher() { } -}; - -//entry for wxFDIOHandlerMap -struct wxFDIOHandlerEntry -{ - wxFDIOHandlerEntry() - { - } - - wxFDIOHandlerEntry(wxFDIOHandler *handler_, int flags_) - : handler(handler_), - flags(flags_) - { - } - - wxFDIOHandler *handler; - int flags; -}; - -// this hash is used to map file descriptors to their handlers -WX_DECLARE_HASH_MAP( - int, - wxFDIOHandlerEntry, - wxIntegerHash, - wxIntegerEqual, - wxFDIOHandlerMap -); - -// FDIODispatcher that holds map fd <-> FDIOHandler, this should be used if -// this map isn't maintained elsewhere already as it is usually needed anyhow -// -// notice that all functions for FD management have implementation -// in the base class and should be called from the derived classes -class WXDLLIMPEXP_BASE wxMappedFDIODispatcher : public wxFDIODispatcher -{ -public: - // find the handler for the given fd, return NULL if none - wxFDIOHandler *FindHandler(int fd) const; - - // register handler for the given descriptor with the dispatcher, return - // true on success or false on error - virtual bool RegisterFD(int fd, wxFDIOHandler *handler, int flags) wxOVERRIDE; - - // modify descriptor flags or handler, return true on success - virtual bool ModifyFD(int fd, wxFDIOHandler *handler, int flags) wxOVERRIDE; - - // unregister descriptor previously registered with RegisterFD() - virtual bool UnregisterFD(int fd) wxOVERRIDE; - - virtual ~wxMappedFDIODispatcher() { } - -protected: - // the fd -> handler map containing all the registered handlers - wxFDIOHandlerMap m_handlers; -}; - -#endif // _WX_PRIVATE_FDIODISPATCHER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdioeventloopsourcehandler.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdioeventloopsourcehandler.h deleted file mode 100644 index 5ac17de2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdioeventloopsourcehandler.h +++ /dev/null @@ -1,38 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/fdioeventloopsourcehandler.h -// Purpose: declares wxFDIOEventLoopSourceHandler class -// Author: Rob Bresalier, Vadim Zeitlin -// Created: 2013-06-13 (extracted from src/unix/evtloopunix.cpp) -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// (c) 2013 Rob Bresalier -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_FDIO_EVENT_LOOP_SOURCE_HANDLER_H -#define _WX_PRIVATE_FDIO_EVENT_LOOP_SOURCE_HANDLER_H - -#include "wx/evtloopsrc.h" - -// This class is a temporary bridge between event loop sources and -// FDIODispatcher. It is going to be removed soon, when all subject interfaces -// are modified -class wxFDIOEventLoopSourceHandler : public wxFDIOHandler -{ -public: - wxEXPLICIT wxFDIOEventLoopSourceHandler(wxEventLoopSourceHandler* handler) - : m_handler(handler) - { - } - - // Just forward to the real handler. - virtual void OnReadWaiting() wxOVERRIDE { m_handler->OnReadWaiting(); } - virtual void OnWriteWaiting() wxOVERRIDE { m_handler->OnWriteWaiting(); } - virtual void OnExceptionWaiting() wxOVERRIDE { m_handler->OnExceptionWaiting(); } - -protected: - wxEventLoopSourceHandler* const m_handler; - - wxDECLARE_NO_COPY_CLASS(wxFDIOEventLoopSourceHandler); -}; - -#endif // _WX_PRIVATE_FDIO_EVENT_LOOP_SOURCE_HANDLER_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdiohandler.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdiohandler.h deleted file mode 100644 index 94e36490..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdiohandler.h +++ /dev/null @@ -1,53 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/fdiohandler.h -// Purpose: declares wxFDIOHandler class -// Author: Vadim Zeitlin -// Created: 2009-08-17 -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_FDIOHANDLER_H_ -#define _WX_PRIVATE_FDIOHANDLER_H_ - -// ---------------------------------------------------------------------------- -// wxFDIOHandler: interface used to process events on file descriptors -// ---------------------------------------------------------------------------- - -class wxFDIOHandler -{ -public: - wxFDIOHandler() { m_regmask = 0; } - - // called when descriptor is available for non-blocking read - virtual void OnReadWaiting() = 0; - - // called when descriptor is available for non-blocking write - virtual void OnWriteWaiting() = 0; - - // called when there is exception on descriptor - virtual void OnExceptionWaiting() = 0; - - // called to check if the handler is still valid, only used by - // wxSocketImplUnix currently - virtual bool IsOk() const { return true; } - - - // get/set the mask of events for which we're currently registered for: - // it's a combination of wxFDIO_{INPUT,OUTPUT,EXCEPTION} - int GetRegisteredEvents() const { return m_regmask; } - void SetRegisteredEvent(int flag) { m_regmask |= flag; } - void ClearRegisteredEvent(int flag) { m_regmask &= ~flag; } - - - // virtual dtor for the base class - virtual ~wxFDIOHandler() { } - -private: - int m_regmask; - - wxDECLARE_NO_COPY_CLASS(wxFDIOHandler); -}; - -#endif // _WX_PRIVATE_FDIOHANDLER_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdiomanager.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdiomanager.h deleted file mode 100644 index 0721886f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fdiomanager.h +++ /dev/null @@ -1,42 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/fdiomanager.h -// Purpose: declaration of wxFDIOManager -// Author: Vadim Zeitlin -// Created: 2009-08-17 -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_FDIOMANAGER_H_ -#define _WX_PRIVATE_FDIOMANAGER_H_ - -#include "wx/private/fdiohandler.h" - -// ---------------------------------------------------------------------------- -// wxFDIOManager: register or unregister wxFDIOHandlers -// ---------------------------------------------------------------------------- - -// currently only used in wxGTK and wxMotif, see wx/unix/apptrait.h - -class wxFDIOManager -{ -public: - // identifies either input or output direction - // - // NB: the values of this enum shouldn't change - enum Direction - { - INPUT, - OUTPUT - }; - - // start or stop monitoring the events on the given file descriptor - virtual int AddInput(wxFDIOHandler *handler, int fd, Direction d) = 0; - virtual void RemoveInput(wxFDIOHandler *handler, int fd, Direction d) = 0; - - // empty but virtual dtor for the base class - virtual ~wxFDIOManager() { } -}; - -#endif // _WX_PRIVATE_FDIOMANAGER_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fileback.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fileback.h deleted file mode 100644 index a4ca08ae..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fileback.h +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/private/fileback.h -// Purpose: Back an input stream with memory or a file -// Author: Mike Wetherell -// Copyright: (c) 2006 Mike Wetherell -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILEBACK_H__ -#define _WX_FILEBACK_H__ - -#include "wx/defs.h" - -#if wxUSE_FILESYSTEM - -#include "wx/stream.h" - -// ---------------------------------------------------------------------------- -// Backs an input stream with memory or a file to make it seekable. -// -// One or more wxBackedInputStreams can be used to read it's data. The data is -// reference counted, so stays alive until the last wxBackingFile or -// wxBackedInputStream using it is destroyed. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxBackingFile -{ -public: - enum { DefaultBufSize = 16384 }; - - // Takes ownership of stream. If the stream is smaller than bufsize, the - // backing file is never created and the backing is done with memory. - wxBackingFile(wxInputStream *stream, - size_t bufsize = DefaultBufSize, - const wxString& prefix = wxT("wxbf")); - - wxBackingFile() : m_impl(NULL) { } - ~wxBackingFile(); - - wxBackingFile(const wxBackingFile& backer); - wxBackingFile& operator=(const wxBackingFile& backer); - - operator bool() const { return m_impl != NULL; } - -private: - class wxBackingFileImpl *m_impl; - friend class wxBackedInputStream; -}; - -// ---------------------------------------------------------------------------- -// An input stream to read from a wxBackingFile. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxBackedInputStream : public wxInputStream -{ -public: - wxBackedInputStream(const wxBackingFile& backer); - - // If the length of the backer's parent stream is unknown then GetLength() - // returns wxInvalidOffset until the parent has been read to the end. - wxFileOffset GetLength() const wxOVERRIDE; - - // Returns the length, reading the parent stream to the end if necessary. - wxFileOffset FindLength() const; - - bool IsSeekable() const wxOVERRIDE { return true; } - -protected: - size_t OnSysRead(void *buffer, size_t size) wxOVERRIDE; - wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) wxOVERRIDE; - wxFileOffset OnSysTell() const wxOVERRIDE; - -private: - wxBackingFile m_backer; - wxFileOffset m_pos; - - wxDECLARE_NO_COPY_CLASS(wxBackedInputStream); -}; - -#endif // wxUSE_FILESYSTEM - -#endif // _WX_FILEBACK_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/filename.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/filename.h deleted file mode 100644 index a4ed4810..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/filename.h +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/private/filename.h -// Purpose: Internal declarations for src/common/filename.cpp -// Author: Mike Wetherell -// Modified by: -// Created: 2006-10-22 -// Copyright: (c) 2006 Mike Wetherell -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_FILENAME_H_ -#define _WX_PRIVATE_FILENAME_H_ - -#include "wx/file.h" -#include "wx/ffile.h" - -// Self deleting temp files aren't supported on all platforms. Therefore -// rather than let these be in the API, they can be used internally to -// implement classes (e.g. wxTempFileStream), that will do the clean up when -// the OS doesn't support it. - -// Same usage as wxFileName::CreateTempFileName() with the extra parameter -// deleteOnClose. *deleteOnClose true on entry requests a file created with a -// delete on close flag, on exit the value of *deleteOnClose indicates whether -// available. - -#if wxUSE_FILE -wxString wxCreateTempFileName(const wxString& prefix, - wxFile *fileTemp, - bool *deleteOnClose = NULL); -#endif - -#if wxUSE_FFILE -wxString wxCreateTempFileName(const wxString& prefix, - wxFFile *fileTemp, - bool *deleteOnClose = NULL); -#endif - -// Returns an open temp file, if possible either an unlinked open file or one -// that will delete on close. Only returns the filename if neither was -// possible, so that the caller can delete the file when done. - -#if wxUSE_FILE -bool wxCreateTempFile(const wxString& prefix, - wxFile *fileTemp, - wxString *name); -#endif - -#if wxUSE_FFILE -bool wxCreateTempFile(const wxString& prefix, - wxFFile *fileTemp, - wxString *name); -#endif - -#endif // _WX_PRIVATE_FILENAME_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/flagscheck.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/flagscheck.h deleted file mode 100644 index 3e3d9fba..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/flagscheck.h +++ /dev/null @@ -1,116 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/private/flagscheck.h -// Purpose: helpers for checking that (bit)flags don't overlap -// Author: Vaclav Slavik -// Created: 2008-02-21 -// Copyright: (c) 2008 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_FLAGSCHECK_H_ -#define _WX_PRIVATE_FLAGSCHECK_H_ - -#include "wx/debug.h" - -// IBM xlC 8 can't parse the template syntax -#if !defined(__IBMCPP__) - -#include "wx/meta/if.h" - -namespace wxPrivate -{ - -// These templates are used to implement wxADD_FLAG macro below. -// -// The idea is that we want to trigger *compilation* error if the flags -// overlap, not just runtime assert failure. We can't implement the check -// using just a simple logical operation, we need checks equivalent to this -// code: -// -// mask = wxFLAG_1; -// assert( (mask & wxFLAG_2) == 0 ); // no overlap -// mask |= wxFLAG_3; -// assert( (mask & wxFLAG_3) == 0 ); // no overlap -// mask |= wxFLAG_3; -// ... -// -// This can be done at compilation time by using templates metaprogramming -// technique that makes the compiler carry on the computation. -// -// NB: If any of this doesn't compile with your compiler and would be too -// hard to make work, it's probably best to disable this code and replace -// the macros below with empty stubs, this isn't anything critical. - -template<int val> struct FlagsHaveConflictingValues -{ - // no value here - triggers compilation error -}; - -template<int val> struct FlagValue -{ - enum { value = val }; -}; - -// This template adds its template parameter integer 'add' to another integer -// 'all' and produces their OR-combination (all | add). The result is "stored" -// as constant SafelyAddToMask<>::value. Combination of many flags is achieved -// by chaining parameter lists: the 'add' parameter is value member of -// another (different) SafelyAddToMask<> instantiation. -template<int all, int add> struct SafelyAddToMask -{ - // This typedefs ensures that no flags in the list conflict. If there's - // any overlap between the already constructed part of the mask ('all') - // and the value being added to it ('add'), the test that is wxIf<>'s - // first parameter will be non-zero and so Added value will be - // FlagsHaveConflictingValues<add>. The next statement will try to use - // AddedValue::value, but there's no such thing in - // FlagsHaveConflictingValues<> and so compilation will fail. - typedef typename wxIf<(all & add) == 0, - FlagValue<add>, - FlagsHaveConflictingValues<add> >::value - AddedValue; - - enum { value = all | AddedValue::value }; -}; - -} // wxPrivate namespace - - - -// This macro is used to ensure that no two flags that can be combined in -// the same integer value have overlapping bits. This is sometimes not entirely -// trivial to ensure, for example in wxWindow styles or flags for wxSizerItem -// that span several enums, some of them used for multiple purposes. -// -// By constructing allowed flags mask using wxADD_FLAG macro and then using -// this mask to check flags passed as arguments, you can ensure that -// -// a) if any of the allowed flags overlap, you will get compilation error -// b) if invalid flag is used, there will be an assert at runtime -// -// Example usage: -// -// static const int SIZER_FLAGS_MASK = -// wxADD_FLAG(wxCENTRE, -// wxADD_FLAG(wxHORIZONTAL, -// wxADD_FLAG(wxVERTICAL, -// ... -// 0))...); -// -// And wherever flags are used: -// -// wxASSERT_VALID_FLAG( m_flag, SIZER_FLAGS_MASK ); - -#define wxADD_FLAG(f, others) \ - ::wxPrivate::SafelyAddToMask<f, others>::value - -#else - #define wxADD_FLAG(f, others) (f | others) -#endif - -// Checks if flags value 'f' is within the mask of allowed values -#define wxASSERT_VALID_FLAGS(f, mask) \ - wxASSERT_MSG( (f & mask) == f, \ - "invalid flag: not within " #mask ) - -#endif // _WX_PRIVATE_FLAGSCHECK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fontmgr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fontmgr.h deleted file mode 100644 index c00270a6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fontmgr.h +++ /dev/null @@ -1,247 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/private/fontmgr.h -// Purpose: font management for ports that don't have their own -// Author: Vaclav Slavik -// Created: 2006-11-18 -// Copyright: (c) 2001-2002 SciTech Software, Inc. (www.scitechsoft.com) -// (c) 2006 REA Elektronik GmbH -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_FONTMGR_H_ -#define _WX_PRIVATE_FONTMGR_H_ - -#include "wx/list.h" -#include "wx/fontutil.h" - -class wxFontsManager; -class wxFontInstance; -class wxFontInstanceList; -class wxFontFace; -class wxFontBundle; -class wxFontBundleHash; -class wxFontMgrFontRefData; - -WX_DECLARE_LIST(wxFontBundle, wxFontBundleList); - -/** - This class represents single font face with set parameters (point size, - antialiasing). - */ -class wxFontInstanceBase -{ -protected: - wxFontInstanceBase(float ptSize, bool aa) : m_ptSize(ptSize), m_aa(aa) {} - virtual ~wxFontInstanceBase() {} - -public: - float GetPointSize() const { return m_ptSize; } - bool IsAntiAliased() const { return m_aa; } - -protected: - float m_ptSize; - bool m_aa; -}; - - -/// This class represents loaded font face (bundle+weight+italics). -class wxFontFaceBase -{ -protected: - /// Ctor. Creates object with reference count = 0, Acquire() must be - /// called after the object is created. - wxFontFaceBase(); - virtual ~wxFontFaceBase(); - -public: - /// Increases reference count of the face - virtual void Acquire(); - - /** - Decreases reference count of the face. Call this when you no longer - use the object returned by wxFontBundle. Note that this doesn't destroy - the object, but only optionally shuts it down, so it's possible to - call Acquire() and Release() more than once. - */ - virtual void Release(); - - /** - Returns instance of the font at given size. - - @param ptSize point size of the font to create; note that this is - a float and not integer, it should be wxFont's point - size multipled by wxDC's scale factor - @param aa should the font be antialiased? - */ - virtual wxFontInstance *GetFontInstance(float ptSize, bool aa); - -protected: - /// Called to create a new instance of the font by GetFontInstance() if - /// it wasn't found it cache. - virtual wxFontInstance *CreateFontInstance(float ptSize, bool aa) = 0; - -protected: - unsigned m_refCnt; - wxFontInstanceList *m_instances; -}; - -/** - This class represents font bundle. Font bundle is set of faces that have - the same name, but differ in weight and italics. - */ -class wxFontBundleBase -{ -public: - wxFontBundleBase(); - virtual ~wxFontBundleBase(); - - /// Returns name of the bundle - virtual wxString GetName() const = 0; - - /// Returns true if the font is fixe-width - virtual bool IsFixed() const = 0; - - /// Type of faces in the bundle - enum FaceType - { - // NB: values of these constants are set so that it's possible to - // make OR-combinations of them and still get valid enum element - FaceType_Regular = 0, - FaceType_Italic = 1, - FaceType_Bold = 2, - FaceType_BoldItalic = FaceType_Italic | FaceType_Bold, - - FaceType_Max - }; - - /// Returns true if the given face is available - bool HasFace(FaceType type) const { return m_faces[type] != NULL; } - - /** - Returns font face object that can be used to render font of given type. - - Note that this method can only be called if HasFace(type) returns true. - - Acquire() was called on the returned object, you must call Release() - when you stop using it. - */ - wxFontFace *GetFace(FaceType type) const; - - /** - Returns font face object that can be used to render given font. - - Acquire() was called on the returned object, you must call Release() - when you stop using it. - */ - wxFontFace *GetFaceForFont(const wxFontMgrFontRefData& font) const; - -protected: - wxFontFace *m_faces[FaceType_Max]; -}; - - -/** - Base class for wxFontsManager class, which manages the list of all - available fonts and their loaded instances. - */ -class wxFontsManagerBase -{ -protected: - wxFontsManagerBase(); - virtual ~wxFontsManagerBase(); - -public: - /// Returns the font manager singleton, creating it if it doesn't exist - static wxFontsManager *Get(); - - /// Called by wxApp to shut down the manager - static void CleanUp(); - - /// Returns list of all available font bundles - const wxFontBundleList& GetBundles() const { return *m_list; } - - /** - Returns object representing font bundle with the given name. - - The returned object is owned by wxFontsManager, you must not delete it. - */ - wxFontBundle *GetBundle(const wxString& name) const; - - /** - Returns object representing font bundle that can be used to render - given font. - - The returned object is owned by wxFontsManager, you must not delete it. - */ - wxFontBundle *GetBundleForFont(const wxFontMgrFontRefData& font) const; - - /// This method must be called by derived - void AddBundle(wxFontBundle *bundle); - - /// Returns default facename for given wxFont family - virtual wxString GetDefaultFacename(wxFontFamily family) const = 0; - -private: - wxFontBundleHash *m_hash; - wxFontBundleList *m_list; - -protected: - static wxFontsManager *ms_instance; -}; - - - -#if defined(__WXDFB__) - #include "wx/dfb/private/fontmgr.h" -#endif - - - -/// wxFontMgrFontRefData implementation using wxFontsManager classes -class wxFontMgrFontRefData : public wxGDIRefData -{ -public: - wxFontMgrFontRefData(int size = wxDEFAULT, - wxFontFamily family = wxFONTFAMILY_DEFAULT, - wxFontStyle style = wxFONTSTYLE_NORMAL, - wxFontWeight weight = wxFONTWEIGHT_NORMAL, - bool underlined = false, - const wxString& faceName = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); - wxFontMgrFontRefData(const wxFontMgrFontRefData& data); - ~wxFontMgrFontRefData(); - - wxFontBundle *GetFontBundle() const; - wxFontInstance *GetFontInstance(float scale, bool antialiased) const; - - bool IsFixedWidth() const { return GetFontBundle()->IsFixed(); } - - const wxNativeFontInfo *GetNativeFontInfo() const { return &m_info; } - - int GetPointSize() const { return m_info.pointSize; } - wxString GetFaceName() const { return m_info.faceName; } - wxFontFamily GetFamily() const { return m_info.family; } - wxFontStyle GetStyle() const { return m_info.style; } - wxFontWeight GetWeight() const { return m_info.weight; } - bool GetUnderlined() const { return m_info.underlined; } - wxFontEncoding GetEncoding() const { return m_info.encoding; } - - void SetPointSize(int pointSize); - void SetFamily(wxFontFamily family); - void SetStyle(wxFontStyle style); - void SetWeight(wxFontWeight weight); - void SetFaceName(const wxString& faceName); - void SetUnderlined(bool underlined); - void SetEncoding(wxFontEncoding encoding); - -private: - void EnsureValidFont(); - - wxNativeFontInfo m_info; - - wxFontFace *m_fontFace; - wxFontBundle *m_fontBundle; - bool m_fontValid; -}; - -#endif // _WX_PRIVATE_FONTMGR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fswatcher.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fswatcher.h deleted file mode 100644 index e2bf55a8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/fswatcher.h +++ /dev/null @@ -1,115 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/private/fswatcher.h -// Purpose: File system watcher impl classes -// Author: Bartosz Bekier -// Created: 2009-05-26 -// Copyright: (c) 2009 Bartosz Bekier <bartosz.bekier@gmail.com> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef WX_PRIVATE_FSWATCHER_H_ -#define WX_PRIVATE_FSWATCHER_H_ - -#include "wx/sharedptr.h" - -#ifdef wxHAS_INOTIFY - class wxFSWatchEntryUnix; - #define wxFSWatchEntry wxFSWatchEntryUnix - WX_DECLARE_STRING_HASH_MAP(wxSharedPtr<wxFSWatchEntry>,wxFSWatchEntries); - #include "wx/unix/private/fswatcher_inotify.h" -#elif defined(wxHAS_KQUEUE) - class wxFSWatchEntryKq; - #define wxFSWatchEntry wxFSWatchEntryKq - WX_DECLARE_STRING_HASH_MAP(wxSharedPtr<wxFSWatchEntry>,wxFSWatchEntries); - #include "wx/unix/private/fswatcher_kqueue.h" -#elif defined(__WINDOWS__) - class wxFSWatchEntryMSW; - #define wxFSWatchEntry wxFSWatchEntryMSW - WX_DECLARE_STRING_HASH_MAP(wxSharedPtr<wxFSWatchEntry>,wxFSWatchEntries); - #include "wx/msw/private/fswatcher.h" -#else - #define wxFSWatchEntry wxFSWatchEntryPolling -#endif - -class wxFSWatcherImpl -{ -public: - wxFSWatcherImpl(wxFileSystemWatcherBase* watcher) : - m_watcher(watcher) - { - } - - virtual ~wxFSWatcherImpl() - { - (void) RemoveAll(); - } - - virtual bool Init() = 0; - - virtual bool Add(const wxFSWatchInfo& winfo) - { - if ( m_watches.find(winfo.GetPath()) != m_watches.end() ) - { - wxLogTrace(wxTRACE_FSWATCHER, - "Path '%s' is already watched", winfo.GetPath()); - // This can happen if a dir is watched, then a parent tree added - return true; - } - - // construct watch entry - wxSharedPtr<wxFSWatchEntry> watch(new wxFSWatchEntry(winfo)); - - if (!DoAdd(watch)) - return false; - - // add watch to our map (always succeedes, checked above) - wxFSWatchEntries::value_type val(watch->GetPath(), watch); - return m_watches.insert(val).second; - } - - virtual bool Remove(const wxFSWatchInfo& winfo) - { - wxFSWatchEntries::iterator it = m_watches.find(winfo.GetPath()); - if ( it == m_watches.end() ) - { - wxLogTrace(wxTRACE_FSWATCHER, - "Path '%s' is not watched", winfo.GetPath()); - // This can happen if a dir is watched, then a parent tree added - return true; - } - wxSharedPtr<wxFSWatchEntry> watch = it->second; - m_watches.erase(it); - return DoRemove(watch); - } - - virtual bool RemoveAll() - { - bool ret = true; - for ( wxFSWatchEntries::iterator it = m_watches.begin(); - it != m_watches.end(); - ++it ) - { - if ( !DoRemove(it->second) ) - ret = false; - } - m_watches.clear(); - return ret; - } - - // Check whether any filespec matches the file's ext (if present) - bool MatchesFilespec(const wxFileName& fn, const wxString& filespec) const - { - return filespec.empty() || wxMatchWild(filespec, fn.GetFullName()); - } - -protected: - virtual bool DoAdd(wxSharedPtr<wxFSWatchEntry> watch) = 0; - - virtual bool DoRemove(wxSharedPtr<wxFSWatchEntry> watch) = 0; - - wxFSWatchEntries m_watches; - wxFileSystemWatcherBase* m_watcher; -}; - - -#endif /* WX_PRIVATE_FSWATCHER_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/graphics.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/graphics.h deleted file mode 100644 index a5f303dd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/graphics.h +++ /dev/null @@ -1,168 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/private/graphics.h -// Purpose: private graphics context header -// Author: Stefan Csomor -// Modified by: -// Created: -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GRAPHICS_PRIVATE_H_ -#define _WX_GRAPHICS_PRIVATE_H_ - -#if wxUSE_GRAPHICS_CONTEXT - -#include "wx/graphics.h" - -class WXDLLIMPEXP_CORE wxGraphicsObjectRefData : public wxObjectRefData -{ - public : - wxGraphicsObjectRefData( wxGraphicsRenderer* renderer ); - wxGraphicsObjectRefData( const wxGraphicsObjectRefData* data ); - wxGraphicsRenderer* GetRenderer() const ; - virtual wxGraphicsObjectRefData* Clone() const ; - - protected : - wxGraphicsRenderer* m_renderer; -} ; - -class WXDLLIMPEXP_CORE wxGraphicsBitmapData : public wxGraphicsObjectRefData -{ -public : - wxGraphicsBitmapData( wxGraphicsRenderer* renderer) : - wxGraphicsObjectRefData(renderer) {} - - virtual ~wxGraphicsBitmapData() {} - - // returns the native representation - virtual void * GetNativeBitmap() const = 0; -} ; - -class WXDLLIMPEXP_CORE wxGraphicsMatrixData : public wxGraphicsObjectRefData -{ -public : - wxGraphicsMatrixData( wxGraphicsRenderer* renderer) : - wxGraphicsObjectRefData(renderer) {} - - virtual ~wxGraphicsMatrixData() {} - - // concatenates the matrix - virtual void Concat( const wxGraphicsMatrixData *t ) = 0; - - // sets the matrix to the respective values - virtual void Set(wxDouble a=1.0, wxDouble b=0.0, wxDouble c=0.0, wxDouble d=1.0, - wxDouble tx=0.0, wxDouble ty=0.0) = 0; - - // gets the component valuess of the matrix - virtual void Get(wxDouble* a=NULL, wxDouble* b=NULL, wxDouble* c=NULL, - wxDouble* d=NULL, wxDouble* tx=NULL, wxDouble* ty=NULL) const = 0; - - // makes this the inverse matrix - virtual void Invert() = 0; - - // returns true if the elements of the transformation matrix are equal ? - virtual bool IsEqual( const wxGraphicsMatrixData* t) const = 0; - - // return true if this is the identity matrix - virtual bool IsIdentity() const = 0; - - // - // transformation - // - - // add the translation to this matrix - virtual void Translate( wxDouble dx , wxDouble dy ) = 0; - - // add the scale to this matrix - virtual void Scale( wxDouble xScale , wxDouble yScale ) = 0; - - // add the rotation to this matrix (radians) - virtual void Rotate( wxDouble angle ) = 0; - - // - // apply the transforms - // - - // applies that matrix to the point - virtual void TransformPoint( wxDouble *x, wxDouble *y ) const = 0; - - // applies the matrix except for translations - virtual void TransformDistance( wxDouble *dx, wxDouble *dy ) const =0; - - // returns the native representation - virtual void * GetNativeMatrix() const = 0; -} ; - -class WXDLLIMPEXP_CORE wxGraphicsPathData : public wxGraphicsObjectRefData -{ -public : - wxGraphicsPathData(wxGraphicsRenderer* renderer) : wxGraphicsObjectRefData(renderer) {} - virtual ~wxGraphicsPathData() {} - - // - // These are the path primitives from which everything else can be constructed - // - - // begins a new subpath at (x,y) - virtual void MoveToPoint( wxDouble x, wxDouble y ) = 0; - - // adds a straight line from the current point to (x,y) - virtual void AddLineToPoint( wxDouble x, wxDouble y ) = 0; - - // adds a cubic Bezier curve from the current point, using two control points and an end point - virtual void AddCurveToPoint( wxDouble cx1, wxDouble cy1, wxDouble cx2, wxDouble cy2, wxDouble x, wxDouble y ) = 0; - - // adds another path - virtual void AddPath( const wxGraphicsPathData* path ) =0; - - // closes the current sub-path - virtual void CloseSubpath() = 0; - - // gets the last point of the current path, (0,0) if not yet set - virtual void GetCurrentPoint( wxDouble* x, wxDouble* y) const = 0; - - // adds an arc of a circle centering at (x,y) with radius (r) from startAngle to endAngle - virtual void AddArc( wxDouble x, wxDouble y, wxDouble r, wxDouble startAngle, wxDouble endAngle, bool clockwise ) = 0; - - // - // These are convenience functions which - if not available natively will be assembled - // using the primitives from above - // - - // adds a quadratic Bezier curve from the current point, using a control point and an end point - virtual void AddQuadCurveToPoint( wxDouble cx, wxDouble cy, wxDouble x, wxDouble y ); - - // appends a rectangle as a new closed subpath - virtual void AddRectangle( wxDouble x, wxDouble y, wxDouble w, wxDouble h ); - - // appends an ellipsis as a new closed subpath fitting the passed rectangle - virtual void AddCircle( wxDouble x, wxDouble y, wxDouble r ); - - // appends a an arc to two tangents connecting (current) to (x1,y1) and (x1,y1) to (x2,y2), also a straight line from (current) to (x1,y1) - virtual void AddArcToPoint( wxDouble x1, wxDouble y1 , wxDouble x2, wxDouble y2, wxDouble r ) ; - - // appends an ellipse - virtual void AddEllipse( wxDouble x, wxDouble y, wxDouble w, wxDouble h); - - // appends a rounded rectangle - virtual void AddRoundedRectangle( wxDouble x, wxDouble y, wxDouble w, wxDouble h, wxDouble radius); - - // returns the native path - virtual void * GetNativePath() const = 0; - - // give the native path returned by GetNativePath() back (there might be some deallocations necessary) - virtual void UnGetNativePath(void *p) const= 0; - - // transforms each point of this path by the matrix - virtual void Transform( const wxGraphicsMatrixData* matrix ) =0; - - // gets the bounding box enclosing all points (possibly including control points) - virtual void GetBox(wxDouble *x, wxDouble *y, wxDouble *w, wxDouble *h) const=0; - - virtual bool Contains( wxDouble x, wxDouble y, wxPolygonFillMode fillStyle = wxODDEVEN_RULE) const=0; -}; - -#endif - -#endif // _WX_GRAPHICS_PRIVATE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/launchbrowser.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/launchbrowser.h deleted file mode 100644 index 984df897..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/launchbrowser.h +++ /dev/null @@ -1,43 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/launchbrowser.h -// Purpose: Helpers for wxLaunchDefaultBrowser() implementation. -// Author: Vadim Zeitlin -// Created: 2016-02-07 -// Copyright: (c) 2016 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_LAUNCHBROWSER_H_ -#define _WX_PRIVATE_LAUNCHBROWSER_H_ - -// ---------------------------------------------------------------------------- -// wxLaunchBrowserParams: passed to wxDoLaunchDefaultBrowser() -// ---------------------------------------------------------------------------- - -struct wxLaunchBrowserParams -{ - explicit wxLaunchBrowserParams(int f) : flags(f) { } - - // Return either the URL or the file depending on our scheme. - const wxString& GetPathOrURL() const - { - return scheme == wxS("file") ? path : url; - } - - - // The URL is always specified and is the real URL, always with the scheme - // part, which can be "file://". - wxString url; - - // The path is a local path which is only non-empty if the URL uses the - // "file://" scheme. - wxString path; - - // The scheme of the URL, e.g. "file" or "http". - wxString scheme; - - // The flags passed to wxLaunchDefaultBrowser(). - int flags; -}; - -#endif // _WX_PRIVATE_LAUNCHBROWSER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/markupparser.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/markupparser.h deleted file mode 100644 index 855d92ad..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/markupparser.h +++ /dev/null @@ -1,176 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/markupparser.h -// Purpose: Classes for parsing simple markup. -// Author: Vadim Zeitlin -// Created: 2011-02-16 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_MARKUPPARSER_H_ -#define _WX_PRIVATE_MARKUPPARSER_H_ - -#include "wx/string.h" - -// ---------------------------------------------------------------------------- -// wxMarkupSpanAttributes: information about attributes for a markup span. -// ---------------------------------------------------------------------------- - -struct wxMarkupSpanAttributes -{ - enum OptionalBool - { - Unspecified = -1, - No, - Yes - }; - - wxMarkupSpanAttributes() - { - m_sizeKind = Size_Unspecified; - - m_isBold = - m_isItalic = - m_isUnderlined = - m_isStrikethrough = Unspecified; - } - - // If a string is empty, it means that the corresponding attribute is not - // set. - wxString m_fgCol, - m_bgCol, - m_fontFace; - - // There are many ways of specifying the size. First of all, the size may - // be relative in which case m_fontSize is either -1 or +1 meaning that - // it's one step smaller or larger than the current font. Second, it may be - // absolute in which case m_fontSize contains either the size in 1024th of - // a point (Pango convention) or its values are in [-3, 3] interval and map - // to [xx-small, xx-large] CSS-like font size specification. And finally it - // may be not specified at all, of course, in which case the value of - // m_fontSize doesn't matter and it shouldn't be used. - enum - { - Size_Unspecified, - Size_Relative, - Size_Symbolic, - Size_PointParts - } m_sizeKind; - int m_fontSize; - - // If the value is Unspecified, the attribute wasn't given. - OptionalBool m_isBold, - m_isItalic, - m_isUnderlined, - m_isStrikethrough; -}; - -// ---------------------------------------------------------------------------- -// wxMarkupParserOutput: gathers the results of parsing markup. -// ---------------------------------------------------------------------------- - -// A class deriving directly from this one needs to implement all the pure -// virtual functions below but as the handling of all simple tags (bold, italic -// &c) is often very similar, it is usually more convenient to inherit from -// wxMarkupParserFontOutput defined in wx/private/markupparserfont.h instead. -class wxMarkupParserOutput -{ -public: - wxMarkupParserOutput() { } - virtual ~wxMarkupParserOutput() { } - - // Virtual functions called by wxMarkupParser while parsing the markup. - - // Called for a run of normal text. - virtual void OnText(const wxString& text) = 0; - - // These functions correspond to the simple tags without parameters. - virtual void OnBoldStart() = 0; - virtual void OnBoldEnd() = 0; - - virtual void OnItalicStart() = 0; - virtual void OnItalicEnd() = 0; - - virtual void OnUnderlinedStart() = 0; - virtual void OnUnderlinedEnd() = 0; - - virtual void OnStrikethroughStart() = 0; - virtual void OnStrikethroughEnd() = 0; - - virtual void OnBigStart() = 0; - virtual void OnBigEnd() = 0; - - virtual void OnSmallStart() = 0; - virtual void OnSmallEnd() = 0; - - virtual void OnTeletypeStart() = 0; - virtual void OnTeletypeEnd() = 0; - - // The generic span start and end functions. - virtual void OnSpanStart(const wxMarkupSpanAttributes& attrs) = 0; - virtual void OnSpanEnd(const wxMarkupSpanAttributes& attrs) = 0; - -private: - wxDECLARE_NO_COPY_CLASS(wxMarkupParserOutput); -}; - -// ---------------------------------------------------------------------------- -// wxMarkupParser: parses the given markup text into wxMarkupParserOutput. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMarkupParser -{ -public: - // Initialize the parser with the object that will receive parsing results. - // This object lifetime must be greater than ours. - explicit wxMarkupParser(wxMarkupParserOutput& output) - : m_output(output) - { - } - - // Parse the entire string and call wxMarkupParserOutput methods. - // - // Return true if the string was successfully parsed or false if it failed - // (presumably because of syntax errors in the markup). - bool Parse(const wxString& text); - - // Quote a normal string, not meant to be interpreted as markup, so that it - // produces the same string when parsed as markup. This means, for example, - // replacing '<' in the input string with "<" to prevent them from being - // interpreted as tag opening characters. - static wxString Quote(const wxString& text); - - // Strip markup from a string, i.e. simply remove all tags and replace - // XML entities with their values (or with "&&" in case of "&" to - // prevent it from being interpreted as mnemonic marker). - static wxString Strip(const wxString& text); - -private: - // Simple struct combining the name of a tag and its attributes. - struct TagAndAttrs - { - TagAndAttrs(const wxString& name_) : name(name_) { } - - wxString name; - wxMarkupSpanAttributes attrs; - }; - - // Call the wxMarkupParserOutput method corresponding to the given tag. - // - // Return false if the tag doesn't match any of the known ones. - bool OutputTag(const TagAndAttrs& tagAndAttrs, bool start); - - // Parse the attributes and fill the provided TagAndAttrs object with the - // information about them. Does nothing if attrs string is empty. - // - // Returns empty string on success of a [fragment of an] error message if - // we failed to parse the attributes. - wxString ParseAttrs(wxString attrs, TagAndAttrs& tagAndAttrs); - - - wxMarkupParserOutput& m_output; - - wxDECLARE_NO_COPY_CLASS(wxMarkupParser); -}; - -#endif // _WX_PRIVATE_MARKUPPARSER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/markupparserattr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/markupparserattr.h deleted file mode 100644 index 998a0414..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/markupparserattr.h +++ /dev/null @@ -1,231 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/markupparserattr.h -// Purpose: Classes mapping markup attributes to wxFont/wxColour. -// Author: Vadim Zeitlin -// Created: 2011-02-18 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_MARKUPPARSERATTR_H_ -#define _WX_PRIVATE_MARKUPPARSERATTR_H_ - -#include "wx/private/markupparser.h" - -#include "wx/stack.h" - -#include "wx/colour.h" -#include "wx/font.h" - -// ---------------------------------------------------------------------------- -// wxMarkupParserAttrOutput: simplified wxFont-using version of the above. -// ---------------------------------------------------------------------------- - -// This class assumes that wxFont and wxColour are used to perform all the -// markup tags and implements the base class virtual functions in terms of -// OnAttr{Start,End}() only. -// -// Notice that you still must implement OnText() inherited from the base class -// when deriving from this one. -class wxMarkupParserAttrOutput : public wxMarkupParserOutput -{ -public: - // A simple container of font and colours. - struct Attr - { - Attr(const wxFont& font_, - const wxColour& foreground_ = wxColour(), - const wxColour& background_ = wxColour()) - : font(font_), foreground(foreground_), background(background_) - { - } - - wxFont font; - wxColour foreground, - background; - }; - - - // This object must be initialized with the font and colours to use - // initially, i.e. the ones used before any tags in the string. - wxMarkupParserAttrOutput(const wxFont& font, - const wxColour& foreground, - const wxColour& background) - { - m_attrs.push(Attr(font, foreground, background)); - } - - // Indicates the change of the font and/or colours used. Any of the - // fields of the argument may be invalid indicating that the corresponding - // attribute didn't actually change. - virtual void OnAttrStart(const Attr& attr) = 0; - - // Indicates the end of the region affected by the given attributes - // (the same ones that were passed to the matching OnAttrStart(), use - // GetAttr() to get the ones that will be used from now on). - virtual void OnAttrEnd(const Attr& attr) = 0; - - - // Implement all pure virtual methods inherited from the base class in - // terms of our own ones. - virtual void OnBoldStart() wxOVERRIDE { DoChangeFont(&wxFont::Bold); } - virtual void OnBoldEnd() wxOVERRIDE { DoEndAttr(); } - - virtual void OnItalicStart() wxOVERRIDE { DoChangeFont(&wxFont::Italic); } - virtual void OnItalicEnd() wxOVERRIDE { DoEndAttr(); } - - virtual void OnUnderlinedStart() wxOVERRIDE { DoChangeFont(&wxFont::Underlined); } - virtual void OnUnderlinedEnd() wxOVERRIDE { DoEndAttr(); } - - virtual void OnStrikethroughStart() wxOVERRIDE { DoChangeFont(&wxFont::Strikethrough); } - virtual void OnStrikethroughEnd() wxOVERRIDE { DoEndAttr(); } - - virtual void OnBigStart() wxOVERRIDE { DoChangeFont(&wxFont::Larger); } - virtual void OnBigEnd() wxOVERRIDE { DoEndAttr(); } - - virtual void OnSmallStart() wxOVERRIDE { DoChangeFont(&wxFont::Smaller); } - virtual void OnSmallEnd() wxOVERRIDE { DoEndAttr(); } - - virtual void OnTeletypeStart() wxOVERRIDE - { - wxFont font(GetFont()); - font.SetFamily(wxFONTFAMILY_TELETYPE); - DoSetFont(font); - } - virtual void OnTeletypeEnd() wxOVERRIDE { DoEndAttr(); } - - virtual void OnSpanStart(const wxMarkupSpanAttributes& spanAttr) wxOVERRIDE - { - wxFont font(GetFont()); - if ( !spanAttr.m_fontFace.empty() ) - font.SetFaceName(spanAttr.m_fontFace); - - FontModifier<wxFontWeight>()(spanAttr.m_isBold, - font, &wxFont::SetWeight, - wxFONTWEIGHT_NORMAL, wxFONTWEIGHT_BOLD); - - FontModifier<wxFontStyle>()(spanAttr.m_isItalic, - font, &wxFont::SetStyle, - wxFONTSTYLE_NORMAL, wxFONTSTYLE_ITALIC); - - FontModifier<bool>()(spanAttr.m_isUnderlined, - font, &wxFont::SetUnderlined, - false, true); - - // TODO: No support for strike-through yet. - - switch ( spanAttr.m_sizeKind ) - { - case wxMarkupSpanAttributes::Size_Unspecified: - break; - - case wxMarkupSpanAttributes::Size_Relative: - if ( spanAttr.m_fontSize > 0 ) - font.MakeLarger(); - else - font.MakeSmaller(); - break; - - case wxMarkupSpanAttributes::Size_Symbolic: - // The values of font size intentionally coincide with the - // values of wxFontSymbolicSize enum elements so simply cast - // one to the other. - font.SetSymbolicSize( - static_cast<wxFontSymbolicSize>(spanAttr.m_fontSize) - ); - break; - - case wxMarkupSpanAttributes::Size_PointParts: - font.SetPointSize((spanAttr.m_fontSize + 1023)/1024); - break; - } - - - const Attr attr(font, spanAttr.m_fgCol, spanAttr.m_bgCol); - OnAttrStart(attr); - - m_attrs.push(attr); - } - - virtual void OnSpanEnd(const wxMarkupSpanAttributes& WXUNUSED(spanAttr)) wxOVERRIDE - { - DoEndAttr(); - } - -protected: - // Get the current attributes, i.e. the ones that should be used for - // rendering (or measuring or whatever) the text at the current position in - // the string. - // - // It may be called from OnAttrStart() to get the old attributes used - // before and from OnAttrEnd() to get the new attributes that will be used - // from now on but is mostly meant to be used from overridden OnText() - // implementations. - const Attr& GetAttr() const { return m_attrs.top(); } - - // A shortcut for accessing the font of the current attribute. - const wxFont& GetFont() const { return GetAttr().font; } - -private: - // Change only the font to the given one. Call OnAttrStart() to notify - // about the change and update the attributes stack. - void DoSetFont(const wxFont& font) - { - const Attr attr(font); - - OnAttrStart(attr); - - m_attrs.push(attr); - } - - // Apply the given function to the font currently on top of the font stack, - // push the new font on the stack and call OnAttrStart() with it. - void DoChangeFont(wxFont (wxFont::*func)() const) - { - DoSetFont((GetFont().*func)()); - } - - void DoEndAttr() - { - const Attr attr(m_attrs.top()); - m_attrs.pop(); - - OnAttrEnd(attr); - } - - // A helper class used to apply the given function to a wxFont object - // depending on the value of an OptionalBool. - template <typename T> - struct FontModifier - { - FontModifier() { } - - void operator()(wxMarkupSpanAttributes::OptionalBool isIt, - wxFont& font, - void (wxFont::*func)(T), - T noValue, - T yesValue) - { - switch ( isIt ) - { - case wxMarkupSpanAttributes::Unspecified: - break; - - case wxMarkupSpanAttributes::No: - (font.*func)(noValue); - break; - - case wxMarkupSpanAttributes::Yes: - (font.*func)(yesValue); - break; - } - } - }; - - - wxStack<Attr> m_attrs; - - wxDECLARE_NO_COPY_CLASS(wxMarkupParserAttrOutput); -}; - -#endif // _WX_PRIVATE_MARKUPPARSERATTR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/notifmsg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/notifmsg.h deleted file mode 100644 index 772a9c30..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/notifmsg.h +++ /dev/null @@ -1,76 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/notifmsg.h -// Purpose: wxNotificationMessage declarations -// Author: Tobias Taschner -// Created: 2015-08-04 -// Copyright: (c) 2015 wxWidgets development team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_NOTIFMSG_H_ -#define _WX_PRIVATE_NOTIFMSG_H_ - -class wxNotificationMessageImpl -{ -public: - wxNotificationMessageImpl(wxNotificationMessageBase* notification): - m_notification(notification), - m_active(false) - { - - } - - virtual ~wxNotificationMessageImpl() { } - - virtual bool Show(int timeout) = 0; - - virtual bool Close() = 0; - - virtual void SetTitle(const wxString& title) = 0; - - virtual void SetMessage(const wxString& message) = 0; - - virtual void SetParent(wxWindow *parent) = 0; - - virtual void SetFlags(int flags) = 0; - - virtual void SetIcon(const wxIcon& icon) = 0; - - virtual bool AddAction(wxWindowID actionid, const wxString &label) = 0; - - virtual void Detach() - { - if (m_active) - m_notification = NULL; - else - delete this; - } - - bool ProcessNotificationEvent(wxEvent& event) - { - if (m_notification) - return m_notification->ProcessEvent(event); - else - return false; - } - - wxNotificationMessageBase* GetNotification() const - { - return m_notification; - } - -protected: - wxNotificationMessageBase* m_notification; - bool m_active; - - void SetActive(bool active) - { - m_active = active; - - // Delete the implementation if the notification is detached - if (!m_notification && !active) - delete this; - } -}; - -#endif // _WX_PRIVATE_NOTIFMSG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/overlay.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/overlay.h deleted file mode 100644 index 1149701f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/overlay.h +++ /dev/null @@ -1,66 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/private/overlay.h -// Purpose: wxOverlayImpl declaration -// Author: Stefan Csomor -// Modified by: -// Created: 2006-10-20 -// Copyright: (c) wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_OVERLAY_H_ -#define _WX_PRIVATE_OVERLAY_H_ - -#include "wx/overlay.h" - -#ifdef wxHAS_NATIVE_OVERLAY - -#if defined(__WXMAC__) - #include "wx/osx/carbon/private/overlay.h" -#elif defined(__WXDFB__) - #include "wx/dfb/private/overlay.h" -#else - #error "unknown native wxOverlay implementation" -#endif - -#else // !wxHAS_NATIVE_OVERLAY - -#include "wx/bitmap.h" - -class WXDLLIMPEXP_FWD_CORE wxWindow; - -// generic implementation of wxOverlay -class wxOverlayImpl -{ -public: - wxOverlayImpl(); - ~wxOverlayImpl(); - - - // clears the overlay without restoring the former state - // to be done eg when the window content has been changed and repainted - void Reset(); - - // returns true if it has been setup - bool IsOk(); - - void Init(wxDC* dc, int x , int y , int width , int height); - - void BeginDrawing(wxDC* dc); - - void EndDrawing(wxDC* dc); - - void Clear(wxDC* dc); - -private: - wxBitmap m_bmpSaved ; - int m_x ; - int m_y ; - int m_width ; - int m_height ; - wxWindow* m_window ; -}; - -#endif // wxHAS_NATIVE_OVERLAY/!wxHAS_NATIVE_OVERLAY - -#endif // _WX_PRIVATE_OVERLAY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/pipestream.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/pipestream.h deleted file mode 100644 index d4020b3e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/pipestream.h +++ /dev/null @@ -1,29 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/pipestream.h -// Purpose: Declares wxPipeInputStream and wxPipeOutputStream. -// Author: Vadim Zeitlin -// Modified by: Rob Bresalier -// Created: 2013-04-27 -// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org> -// (c) 2013 Rob Bresalier -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_PIPESTREAM_H_ -#define _WX_PRIVATE_PIPESTREAM_H_ - -#include "wx/platform.h" - -// wxPipeInputStream is a platform-dependent input stream class (i.e. deriving, -// possible indirectly, from wxInputStream) for reading from a pipe, i.e. a -// pipe FD under Unix or a pipe HANDLE under MSW. It provides a single extra -// IsOpened() method. -// -// wxPipeOutputStream is similar but has no additional methods at all. -#if defined(__UNIX__) && !defined(__WINDOWS__) - #include "wx/unix/private/pipestream.h" -#elif defined(__WINDOWS__) - #include "wx/msw/private/pipestream.h" -#endif - -#endif // _WX_PRIVATE_PIPESTREAM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/preferences.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/preferences.h deleted file mode 100644 index 8b926450..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/preferences.h +++ /dev/null @@ -1,40 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/preferences.h -// Purpose: wxPreferencesEditorImpl declaration. -// Author: Vaclav Slavik -// Created: 2013-02-19 -// Copyright: (c) 2013 Vaclav Slavik <vslavik@fastmail.fm> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_PREFERENCES_H_ -#define _WX_PRIVATE_PREFERENCES_H_ - -#include "wx/preferences.h" - -#if wxUSE_TOOLBAR && defined(__WXOSX_COCOA__) && wxOSX_USE_NATIVE_TOOLBAR - #define wxHAS_PREF_EDITOR_NATIVE -#endif - -// ---------------------------------------------------------------------------- -// wxPreferencesEditorImpl: defines wxPreferencesEditor implementation. -// ---------------------------------------------------------------------------- - -class wxPreferencesEditorImpl -{ -public: - // This is implemented in a platform-specific way. - static wxPreferencesEditorImpl* Create(const wxString& title); - - // These methods simply mirror the public wxPreferencesEditor ones. - virtual void AddPage(wxPreferencesPage* page) = 0; - virtual void Show(wxWindow* parent) = 0; - virtual void Dismiss() = 0; - - virtual ~wxPreferencesEditorImpl() {} - -protected: - wxPreferencesEditorImpl() {} -}; - -#endif // _WX_PRIVATE_PREFERENCES_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/richtooltip.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/richtooltip.h deleted file mode 100644 index 89ce193f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/richtooltip.h +++ /dev/null @@ -1,44 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/richtooltip.h -// Purpose: wxRichToolTipImpl declaration. -// Author: Vadim Zeitlin -// Created: 2011-10-18 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_RICHTOOLTIP_H_ -#define _WX_PRIVATE_RICHTOOLTIP_H_ - -#include "wx/richtooltip.h" - -// ---------------------------------------------------------------------------- -// wxRichToolTipImpl: defines wxRichToolTip implementation. -// ---------------------------------------------------------------------------- - -class wxRichToolTipImpl -{ -public: - // This is implemented in a platform-specific way. - static wxRichToolTipImpl* Create(const wxString& title, - const wxString& message); - - // These methods simply mirror the public wxRichToolTip ones. - virtual void SetBackgroundColour(const wxColour& col, - const wxColour& colEnd) = 0; - virtual void SetCustomIcon(const wxIcon& icon) = 0; - virtual void SetStandardIcon(int icon) = 0; - virtual void SetTimeout(unsigned milliseconds, - unsigned millisecondsShowdelay = 0) = 0; - virtual void SetTipKind(wxTipKind tipKind) = 0; - virtual void SetTitleFont(const wxFont& font) = 0; - - virtual void ShowFor(wxWindow* win, const wxRect* rect = NULL) = 0; - - virtual ~wxRichToolTipImpl() { } - -protected: - wxRichToolTipImpl() { } -}; - -#endif // _WX_PRIVATE_RICHTOOLTIP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/sckaddr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/sckaddr.h deleted file mode 100644 index 376812d6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/sckaddr.h +++ /dev/null @@ -1,316 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/sckaddr.h -// Purpose: wxSockAddressImpl -// Author: Vadim Zeitlin -// Created: 2008-12-28 -// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_SOCKADDR_H_ -#define _WX_PRIVATE_SOCKADDR_H_ - -#ifdef __WINDOWS__ - #include "wx/msw/wrapwin.h" - - #if wxUSE_IPV6 - #include <ws2tcpip.h> - #endif -#elif defined(__VMS__) - #include <socket.h> - - struct sockaddr_un - { - u_char sun_len; /* sockaddr len including null */ - u_char sun_family; /* AF_UNIX */ - char sun_path[108]; /* path name (gag) */ - }; - #include <in.h> -#else // generic Unix - #include <sys/types.h> - #include <sys/socket.h> - #include <netinet/in.h> - #include <sys/un.h> -#endif // platform - -#include <stdlib.h> // for calloc() - -// this is a wrapper for sockaddr_storage if it's available or just sockaddr -// otherwise -union wxSockAddressStorage -{ -#if wxUSE_IPV6 - sockaddr_storage addr_storage; -#endif - sockaddr addr; -}; - -// ---------------------------------------------------------------------------- -// helpers for wxSockAddressImpl -// ---------------------------------------------------------------------------- - -// helper class mapping sockaddr_xxx types to corresponding AF_XXX values -template <class T> struct AddressFamily; - -template <> struct AddressFamily<sockaddr_in> { enum { value = AF_INET }; }; - -#if wxUSE_IPV6 -template <> struct AddressFamily<sockaddr_in6> { enum { value = AF_INET6 }; }; -#endif // wxUSE_IPV6 - -#ifdef wxHAS_UNIX_DOMAIN_SOCKETS -template <> struct AddressFamily<sockaddr_un> { enum { value = AF_UNIX }; }; -#endif // wxHAS_UNIX_DOMAIN_SOCKETS - -// ---------------------------------------------------------------------------- -// wxSockAddressImpl -// ---------------------------------------------------------------------------- - -// Represents a socket endpoint, e.g. an (address, port) pair for PF_INET -// sockets. It can be initialized from an existing sockaddr struct and also -// provides access to sockaddr stored internally so that it can be easily used -// with e.g. connect(2). -// -// This class also performs (synchronous, hence potentially long) name lookups -// if necessary, i.e. if the host name strings don't contain addresses in -// numerical form (quad dotted for IPv4 or standard hexadecimal for IPv6). -// Notice that internally the potentially Unicode host names are encoded as -// UTF-8 before being passed to the lookup function but the host names should -// really be ASCII anyhow. -class wxSockAddressImpl -{ -public: - // as this is passed to socket() it should be a PF_XXX and not AF_XXX (even - // though they're the same in practice) - enum Family - { - FAMILY_INET = PF_INET, -#if wxUSE_IPV6 - FAMILY_INET6 = PF_INET6, -#endif -#ifdef wxHAS_UNIX_DOMAIN_SOCKETS - FAMILY_UNIX = PF_UNIX, -#endif - FAMILY_UNSPEC = PF_UNSPEC - }; - - // default ctor creates uninitialized object, use one of CreateXXX() below - wxSockAddressImpl() - { - InitUnspec(); - } - - // ctor from an existing sockaddr - wxSockAddressImpl(const sockaddr& addr, int len) - { - switch ( addr.sa_family ) - { - case PF_INET: -#if wxUSE_IPV6 - case PF_INET6: -#endif -#ifdef wxHAS_UNIX_DOMAIN_SOCKETS - case PF_UNIX: -#endif - m_family = static_cast<Family>(addr.sa_family); - break; - - default: - wxFAIL_MSG( "unsupported socket address family" ); - InitUnspec(); - return; - } - - InitFromSockaddr(addr, len); - } - - // copy ctor and assignment operators - wxSockAddressImpl(const wxSockAddressImpl& other) - { - InitFromOther(other); - } - - wxSockAddressImpl& operator=(const wxSockAddressImpl& other) - { - if (this != &other) - { - free(m_addr); - InitFromOther(other); - } - return *this; - } - - // dtor frees the memory used by m_addr - ~wxSockAddressImpl() - { - free(m_addr); - } - - - // reset the address to the initial uninitialized state - void Clear() - { - free(m_addr); - - InitUnspec(); - } - - // initialize the address to be of specific address family, it must be - // currently uninitialized (you may call Clear() to achieve this) - void CreateINET(); - void CreateINET6(); -#ifdef wxHAS_UNIX_DOMAIN_SOCKETS - void CreateUnix(); -#endif // wxHAS_UNIX_DOMAIN_SOCKETS - void Create(Family family) - { - switch ( family ) - { - case FAMILY_INET: - CreateINET(); - break; - -#if wxUSE_IPV6 - case FAMILY_INET6: - CreateINET6(); - break; -#endif // wxUSE_IPV6 - -#ifdef wxHAS_UNIX_DOMAIN_SOCKETS - case FAMILY_UNIX: - CreateUnix(); - break; -#endif // wxHAS_UNIX_DOMAIN_SOCKETS - - default: - wxFAIL_MSG( "unsupported socket address family" ); - } - } - - // simple accessors - Family GetFamily() const { return m_family; } - bool Is(Family family) const { return m_family == family; } - bool IsOk() const { return m_family != FAMILY_UNSPEC; } - const sockaddr *GetAddr() const { return m_addr; } - sockaddr *GetWritableAddr() { return m_addr; } - int GetLen() const { return m_len; } - - // accessors for INET or INET6 address families -#if wxUSE_IPV6 - #define CALL_IPV4_OR_6(func, args) \ - Is(FAMILY_INET6) ? func##6(args) : func##4(args) - #define CALL_IPV4_OR_6_VOID(func) \ - Is(FAMILY_INET6) ? func##6() : func##4() -#else - #define CALL_IPV4_OR_6(func, args) func##4(args) - #define CALL_IPV4_OR_6_VOID(func) func##4() -#endif // IPv6 support on/off - - wxString GetHostName() const; - bool SetHostName(const wxString& name) - { - return CALL_IPV4_OR_6(SetHostName, (name)); - } - - wxUint16 GetPort() const { return CALL_IPV4_OR_6_VOID(GetPort); } - bool SetPort(wxUint16 port) { return CALL_IPV4_OR_6(SetPort, (port)); } - bool SetPortName(const wxString& name, const char *protocol); - - bool SetToAnyAddress() { return CALL_IPV4_OR_6_VOID(SetToAnyAddress); } - -#undef CALL_IPV4_OR_6 - - // accessors for INET addresses only - bool GetHostAddress(wxUint32 *address) const; - bool SetHostAddress(wxUint32 address); - - bool SetToBroadcastAddress() { return SetHostAddress(INADDR_BROADCAST); } - - // accessors for INET6 addresses only -#if wxUSE_IPV6 - bool GetHostAddress(in6_addr *address) const; - bool SetHostAddress(const in6_addr& address); -#endif // wxUSE_IPV6 - -#ifdef wxHAS_UNIX_DOMAIN_SOCKETS - // methods valid for Unix address family addresses only - bool SetPath(const wxString& path); - wxString GetPath() const; -#endif // wxHAS_UNIX_DOMAIN_SOCKETS - -private: - void DoAlloc(int len) - { - m_addr = static_cast<sockaddr *>(calloc(1, len)); - m_len = len; - } - - template <class T> - T *Alloc() - { - DoAlloc(sizeof(T)); - - return reinterpret_cast<T *>(m_addr); - } - - template <class T> - T *Get() const - { - wxCHECK_MSG( static_cast<int>(m_family) == AddressFamily<T>::value, - NULL, - "socket address family mismatch" ); - - return reinterpret_cast<T *>(m_addr); - } - - void InitUnspec() - { - m_family = FAMILY_UNSPEC; - m_addr = NULL; - m_len = 0; - } - - void InitFromSockaddr(const sockaddr& addr, int len) - { - DoAlloc(len); - memcpy(m_addr, &addr, len); - } - - void InitFromOther(const wxSockAddressImpl& other) - { - m_family = other.m_family; - - if ( other.m_addr ) - { - InitFromSockaddr(*other.m_addr, other.m_len); - } - else // no address to copy - { - m_addr = NULL; - m_len = 0; - } - } - - // IPv4/6 implementations of public functions - bool SetHostName4(const wxString& name); - - bool SetPort4(wxUint16 port); - wxUint16 GetPort4() const; - - bool SetToAnyAddress4() { return SetHostAddress(INADDR_ANY); } - -#if wxUSE_IPV6 - bool SetHostName6(const wxString& name); - - bool SetPort6(wxUint16 port); - wxUint16 GetPort6() const; - - bool SetToAnyAddress6(); -#endif // wxUSE_IPV6 - - Family m_family; - sockaddr *m_addr; - int m_len; -}; - -#endif // _WX_PRIVATE_SOCKADDR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/selectdispatcher.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/selectdispatcher.h deleted file mode 100644 index ba7a59a5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/selectdispatcher.h +++ /dev/null @@ -1,125 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/private/selectdispatcher.h -// Purpose: wxSelectDispatcher class -// Authors: Lukasz Michalski and Vadim Zeitlin -// Created: December 2006 -// Copyright: (c) Lukasz Michalski -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_SELECTDISPATCHER_H_ -#define _WX_PRIVATE_SELECTDISPATCHER_H_ - -#include "wx/defs.h" - -#if wxUSE_SELECT_DISPATCHER - -#if defined(HAVE_SYS_SELECT_H) - #include <sys/time.h> - #include <sys/select.h> -#endif - -#include <sys/types.h> - -#include "wx/thread.h" -#include "wx/private/fdiodispatcher.h" - -// helper class storing all the select() fd sets -class WXDLLIMPEXP_BASE wxSelectSets -{ -public: - // ctor zeroes out all fd_sets - wxSelectSets(); - - // default copy ctor, assignment operator and dtor are ok - - - // return true if fd appears in any of the sets - bool HasFD(int fd) const; - - // add or remove FD to our sets depending on whether flags contains - // wxFDIO_INPUT/OUTPUT/EXCEPTION bits - bool SetFD(int fd, int flags); - - // same as SetFD() except it unsets the bits set in the flags for the given - // fd - bool ClearFD(int fd) - { - return SetFD(fd, 0); - } - - - // call select() with our sets: the other parameters are the same as for - // select() itself - int Select(int nfds, struct timeval *tv); - - // call the handler methods corresponding to the sets having this fd if it - // is present in any set and return true if it is - bool Handle(int fd, wxFDIOHandler& handler) const; - -private: - typedef void (wxFDIOHandler::*Callback)(); - - // the FD sets indices - enum - { - Read, - Write, - Except, - Max - }; - - // the sets used with select() - fd_set m_fds[Max]; - - // the wxFDIO_XXX flags, functions and names (used for debug messages only) - // corresponding to the FD sets above - static int ms_flags[Max]; - static const char *ms_names[Max]; - static Callback ms_handlers[Max]; -}; - -class WXDLLIMPEXP_BASE wxSelectDispatcher : public wxMappedFDIODispatcher -{ -public: - // default ctor - wxSelectDispatcher() { m_maxFD = -1; } - - // implement pure virtual methods of the base class - virtual bool RegisterFD(int fd, wxFDIOHandler *handler, int flags = wxFDIO_ALL) wxOVERRIDE; - virtual bool ModifyFD(int fd, wxFDIOHandler *handler, int flags = wxFDIO_ALL) wxOVERRIDE; - virtual bool UnregisterFD(int fd) wxOVERRIDE; - virtual bool HasPending() const wxOVERRIDE; - virtual int Dispatch(int timeout = TIMEOUT_INFINITE) wxOVERRIDE; - -private: - // common part of RegisterFD() and ModifyFD() - bool DoUpdateFDAndHandler(int fd, wxFDIOHandler *handler, int flags); - - // call the handlers for the fds present in the given sets, return the - // number of handlers we called - int ProcessSets(const wxSelectSets& sets); - - // helper of ProcessSets(): call the handler if its fd is in the set - void DoProcessFD(int fd, const fd_set& fds, wxFDIOHandler *handler, - const char *name); - - // common part of HasPending() and Dispatch(): calls select() with the - // specified timeout - int DoSelect(wxSelectSets& sets, int timeout) const; - - -#if wxUSE_THREADS - wxCriticalSection m_cs; -#endif // wxUSE_THREADS - - // the select sets containing all the registered fds - wxSelectSets m_sets; - - // the highest registered fd value or -1 if none - int m_maxFD; -}; - -#endif // wxUSE_SELECT_DISPATCHER - -#endif // _WX_PRIVATE_SOCKETEVTDISPATCH_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/socket.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/socket.h deleted file mode 100644 index 906c20c6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/socket.h +++ /dev/null @@ -1,372 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/private/socket.h -// Purpose: wxSocketImpl and related declarations -// Authors: Guilhem Lavaux, Vadim Zeitlin -// Created: April 1997 -// Copyright: (c) 1997 Guilhem Lavaux -// (c) 2008 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* - Brief overview of different socket classes: - - - wxSocketBase is the public class representing a socket ("Base" here - refers to the fact that wxSocketClient and wxSocketServer are derived - from it and predates the convention of using "Base" for common base - classes for platform-specific classes in wxWidgets) with implementation - common to all platforms and forwarding methods whose implementation - differs between platforms to wxSocketImpl which it contains. - - - wxSocketImpl is actually just an abstract base class having only code - common to all platforms, the concrete implementation classes derive from - it and are created by wxSocketImpl::Create(). - - - Some socket operations have different implementations in console-mode and - GUI applications. wxSocketManager class exists to abstract this in such - way that console applications (using wxBase) don't depend on wxNet. An - object of this class is made available via wxApp and GUI applications set - up a different kind of global socket manager from console ones. - - TODO: it looks like wxSocketManager could be eliminated by providing - methods for registering/unregistering sockets directly in - wxEventLoop. - */ - -#ifndef _WX_PRIVATE_SOCKET_H_ -#define _WX_PRIVATE_SOCKET_H_ - -#include "wx/defs.h" - -#if wxUSE_SOCKETS - -#include "wx/socket.h" -#include "wx/private/sckaddr.h" - -#include <stddef.h> - -/* - Including sys/types.h under Cygwin results in the warnings about "fd_set - having been defined in sys/types.h" when winsock.h is included later and - doesn't seem to be necessary anyhow. It's not needed under Mac neither. - */ -#if !defined(__WXMAC__) && !defined(__WXMSW__) -#include <sys/types.h> -#endif - -// include the header defining timeval: under Windows this struct is used only -// with sockets so we need to include winsock.h which we do via windows.h -#ifdef __WINDOWS__ - #include "wx/msw/wrapwin.h" -#else - #include <sys/time.h> // for timeval -#endif - -// these definitions are for MSW when we don't use configure, otherwise these -// symbols are defined by configure -#ifndef WX_SOCKLEN_T - #define WX_SOCKLEN_T int -#endif - -#ifndef SOCKOPTLEN_T - #define SOCKOPTLEN_T int -#endif - -// define some symbols which winsock.h defines but traditional BSD headers -// don't -#ifndef INVALID_SOCKET - #define INVALID_SOCKET (-1) -#endif - -#ifndef SOCKET_ERROR - #define SOCKET_ERROR (-1) -#endif - -typedef int wxSocketEventFlags; - -class wxSocketImpl; - -/* - Class providing hooks abstracting the differences between console and GUI - applications for socket code. - - We also have different implementations of this class for different platforms - allowing us to keep more things in the common code but the main reason for - its existence is that we want the same socket code work differently - depending on whether it's used from a console or a GUI program. This is - achieved by implementing the virtual methods of this class differently in - the objects returned by wxConsoleAppTraits::GetSocketManager() and the same - method in wxGUIAppTraits. - */ -class wxSocketManager -{ -public: - // set the manager to use, we don't take ownership of it - // - // this should be called before creating the first wxSocket object, - // otherwise the manager returned by wxAppTraits::GetSocketManager() will - // be used - static void Set(wxSocketManager *manager); - - // return the manager to use - // - // this initializes the manager at first use - static wxSocketManager *Get() - { - if ( !ms_manager ) - Init(); - - return ms_manager; - } - - // called before the first wxSocket is created and should do the - // initializations needed in order to use the network - // - // return true if initialized successfully; if this returns false sockets - // can't be used at all - virtual bool OnInit() = 0; - - // undo the initializations of OnInit() - virtual void OnExit() = 0; - - - // create the socket implementation object matching this manager - virtual wxSocketImpl *CreateSocket(wxSocketBase& wxsocket) = 0; - - // these functions enable or disable monitoring of the given socket for the - // specified events inside the currently running event loop (but notice - // that both BSD and Winsock implementations actually use socket->m_server - // value to determine what exactly should be monitored so it needs to be - // set before calling these functions) - // - // the default event value is used just for the convenience of wxMSW - // implementation which doesn't use this parameter anyhow, it doesn't make - // sense to pass wxSOCKET_LOST for the Unix implementation which does use - // this parameter - virtual void Install_Callback(wxSocketImpl *socket, - wxSocketNotify event = wxSOCKET_LOST) = 0; - virtual void Uninstall_Callback(wxSocketImpl *socket, - wxSocketNotify event = wxSOCKET_LOST) = 0; - - virtual ~wxSocketManager() { } - -private: - // get the manager to use if we don't have it yet - static void Init(); - - static wxSocketManager *ms_manager; -}; - -/* - Base class for all socket implementations providing functionality common to - BSD and Winsock sockets. - - Objects of this class are not created directly but only via the factory - function wxSocketManager::CreateSocket(). - */ -class wxSocketImpl -{ -public: - virtual ~wxSocketImpl(); - - // set various socket properties: all of those can only be called before - // creating the socket - void SetTimeout(unsigned long millisec); - void SetReusable() { m_reusable = true; } - void SetBroadcast() { m_broadcast = true; } - void DontDoBind() { m_dobind = false; } - void SetInitialSocketBuffers(int recv, int send) - { - m_initialRecvBufferSize = recv; - m_initialSendBufferSize = send; - } - - wxSocketError SetLocal(const wxSockAddressImpl& address); - wxSocketError SetPeer(const wxSockAddressImpl& address); - - // accessors - // --------- - - bool IsServer() const { return m_server; } - - const wxSockAddressImpl& GetLocal(); // non const as may update m_local - const wxSockAddressImpl& GetPeer() const { return m_peer; } - - wxSocketError GetError() const { return m_error; } - bool IsOk() const { return m_error == wxSOCKET_NOERROR; } - - // get the error code corresponding to the last operation - virtual wxSocketError GetLastError() const = 0; - - - // creating/closing the socket - // -------------------------- - - // notice that SetLocal() must be called before creating the socket using - // any of the functions below - // - // all of Create() functions return wxSOCKET_NOERROR if the operation - // completed successfully or one of: - // wxSOCKET_INVSOCK - the socket is in use. - // wxSOCKET_INVADDR - the local (server) or peer (client) address has not - // been set. - // wxSOCKET_IOERR - any other error. - - // create a socket listening on the local address specified by SetLocal() - // (notice that DontDoBind() is ignored by this function) - wxSocketError CreateServer(); - - // create a socket connected to the peer address specified by SetPeer() - // (notice that DontDoBind() is ignored by this function) - // - // this function may return wxSOCKET_WOULDBLOCK in addition to the return - // values listed above if wait is false - wxSocketError CreateClient(bool wait); - - // create (and bind unless DontDoBind() had been called) an UDP socket - // associated with the given local address - wxSocketError CreateUDP(); - - // may be called whether the socket was created or not, calls DoClose() if - // it was indeed created - void Close(); - - // shuts down the writing end of the socket and closes it, this is a more - // graceful way to close - // - // does nothing if the socket wasn't created - void Shutdown(); - - - // IO operations - // ------------- - - // basic IO, work for both TCP and UDP sockets - // - // return the number of bytes read/written (possibly 0) or -1 on error - int Read(void *buffer, int size); - int Write(const void *buffer, int size); - - // basically a wrapper for select(): returns the condition of the socket, - // blocking for not longer than timeout if it is specified (otherwise just - // poll without blocking at all) - // - // flags defines what kind of conditions we're interested in, the return - // value is composed of a (possibly empty) subset of the bits set in flags - wxSocketEventFlags Select(wxSocketEventFlags flags, - const timeval *timeout = NULL); - - // convenient wrapper calling Select() with our default timeout - wxSocketEventFlags SelectWithTimeout(wxSocketEventFlags flags) - { - return Select(flags, &m_timeout); - } - - // just a wrapper for accept(): it is called to create a new wxSocketImpl - // corresponding to a new server connection represented by the given - // wxSocketBase, returns NULL on error (including immediately if there are - // no pending connections as our sockets are non-blocking) - wxSocketImpl *Accept(wxSocketBase& wxsocket); - - - // notifications - // ------------- - - // notify m_wxsocket about the given socket event by calling its (inaptly - // named) OnRequest() method - void NotifyOnStateChange(wxSocketNotify event); - - // called after reading/writing the data from/to the socket and should - // enable back the wxSOCKET_INPUT/OUTPUT_FLAG notifications if they were - // turned off when this data was first detected - virtual void ReenableEvents(wxSocketEventFlags flags) = 0; - - // TODO: make these fields protected and provide accessors for those of - // them that wxSocketBase really needs -//protected: - wxSOCKET_T m_fd; - - int m_initialRecvBufferSize; - int m_initialSendBufferSize; - - wxSockAddressImpl m_local, - m_peer; - wxSocketError m_error; - - bool m_stream; - bool m_establishing; - bool m_reusable; - bool m_broadcast; - bool m_dobind; - - struct timeval m_timeout; - -protected: - wxSocketImpl(wxSocketBase& wxsocket); - - // get the associated socket flags - wxSocketFlags GetSocketFlags() const { return m_wxsocket->GetFlags(); } - - // true if we're a listening stream socket - bool m_server; - -private: - // called by Close() if we have a valid m_fd - virtual void DoClose() = 0; - - // put this socket into non-blocking mode and enable monitoring this socket - // as part of the event loop - virtual void UnblockAndRegisterWithEventLoop() = 0; - - // check that the socket wasn't created yet and that the given address - // (either m_local or m_peer depending on the socket kind) is valid and - // set m_error and return false if this is not the case - bool PreCreateCheck(const wxSockAddressImpl& addr); - - // set the given socket option: this just wraps setsockopt(SOL_SOCKET) - int SetSocketOption(int optname, int optval) - { - // although modern Unix systems use "const void *" for the 4th - // parameter here, old systems and Winsock still use "const char *" - return setsockopt(m_fd, SOL_SOCKET, optname, - reinterpret_cast<const char *>(&optval), - sizeof(optval)); - } - - // set the given socket option to true value: this is an even simpler - // wrapper for setsockopt(SOL_SOCKET) for boolean options - int EnableSocketOption(int optname) - { - return SetSocketOption(optname, 1); - } - - // apply the options to the (just created) socket and register it with the - // event loop by calling UnblockAndRegisterWithEventLoop() - void PostCreation(); - - // update local address after binding/connecting - wxSocketError UpdateLocalAddress(); - - // functions used to implement Read/Write() - int RecvStream(void *buffer, int size); - int RecvDgram(void *buffer, int size); - int SendStream(const void *buffer, int size); - int SendDgram(const void *buffer, int size); - - - // set in ctor and never changed except that it's reset to NULL when the - // socket is shut down - wxSocketBase *m_wxsocket; - - wxDECLARE_NO_COPY_CLASS(wxSocketImpl); -}; - -#if defined(__WINDOWS__) - #include "wx/msw/private/sockmsw.h" -#else - #include "wx/unix/private/sockunix.h" -#endif - -#endif /* wxUSE_SOCKETS */ - -#endif /* _WX_PRIVATE_SOCKET_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/streamtempinput.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/streamtempinput.h deleted file mode 100644 index df937cf5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/streamtempinput.h +++ /dev/null @@ -1,134 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/streamtempinput.h -// Purpose: defines wxStreamTempInputBuffer which is used by Unix and MSW -// implementations of wxExecute; this file is only used by the -// library and never by the user code -// Author: Vadim Zeitlin -// Modified by: Rob Bresalier -// Created: 2013-05-04 -// Copyright: (c) 2002 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_STREAMTEMPINPUT_H -#define _WX_PRIVATE_STREAMTEMPINPUT_H - -#include "wx/private/pipestream.h" - -// ---------------------------------------------------------------------------- -// wxStreamTempInputBuffer -// ---------------------------------------------------------------------------- - -/* - wxStreamTempInputBuffer is a hack which we need to solve the problem of - executing a child process synchronously with IO redirecting: when we do - this, the child writes to a pipe we open to it but when the pipe buffer - (which has finite capacity, e.g. commonly just 4Kb) becomes full we have to - read data from it because the child blocks in its write() until then and if - it blocks we are never going to return from wxExecute() so we dead lock. - - So here is the fix: we now read the output as soon as it appears into a temp - buffer (wxStreamTempInputBuffer object) and later just stuff it back into - the stream when the process terminates. See supporting code in wxExecute() - itself as well. - - Note that this is horribly inefficient for large amounts of output (count - the number of times we copy the data around) and so a better API is badly - needed! However it's not easy to devise a way to do this keeping backwards - compatibility with the existing wxExecute(wxEXEC_SYNC)... -*/ -class wxStreamTempInputBuffer -{ -public: - wxStreamTempInputBuffer() - { - m_stream = NULL; - m_buffer = NULL; - m_size = 0; - } - - // call to associate a stream with this buffer, otherwise nothing happens - // at all - void Init(wxPipeInputStream *stream) - { - wxASSERT_MSG( !m_stream, wxS("Can only initialize once") ); - - m_stream = stream; - } - - // check for input on our stream and cache it in our buffer if any - // - // return true if anything was done - bool Update() - { - if ( !m_stream || !m_stream->CanRead() ) - return false; - - // realloc in blocks of 4Kb: this is the default (and minimal) buffer - // size of the Unix pipes so it should be the optimal step - // - // NB: don't use "static int" in this inline function, some compilers - // (e.g. IBM xlC) don't like it - enum { incSize = 4096 }; - - void *buf = realloc(m_buffer, m_size + incSize); - if ( !buf ) - return false; - - m_buffer = buf; - m_stream->Read((char *)m_buffer + m_size, incSize); - m_size += m_stream->LastRead(); - - return true; - } - - // check if can continue reading from the stream, this is used to disable - // the callback once we can't read anything more - bool Eof() const - { - // If we have no stream, always return true as we can't read any more. - return !m_stream || m_stream->Eof(); - } - - // read everything remaining until the EOF, this should only be called once - // the child process terminates and we know that no more data is coming - bool ReadAll() - { - while ( !Eof() ) - { - if ( !Update() ) - return false; - } - - return true; - } - - // dtor puts the data buffered during this object lifetime into the - // associated stream - ~wxStreamTempInputBuffer() - { - if ( m_buffer ) - { - m_stream->Ungetch(m_buffer, m_size); - free(m_buffer); - } - } - - const void *GetBuffer() const { return m_buffer; } - - size_t GetSize() const { return m_size; } - -private: - // the stream we're buffering, if NULL we don't do anything at all - wxPipeInputStream *m_stream; - - // the buffer of size m_size (NULL if m_size == 0) - void *m_buffer; - - // the size of the buffer - size_t m_size; - - wxDECLARE_NO_COPY_CLASS(wxStreamTempInputBuffer); -}; - -#endif // _WX_PRIVATE_STREAMTEMPINPUT_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/textmeasure.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/textmeasure.h deleted file mode 100644 index db96dcd3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/textmeasure.h +++ /dev/null @@ -1,172 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/textmeasure.h -// Purpose: declaration of wxTextMeasure class -// Author: Manuel Martin -// Created: 2012-10-05 -// Copyright: (c) 1997-2012 wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_TEXTMEASURE_H_ -#define _WX_PRIVATE_TEXTMEASURE_H_ - -class WXDLLIMPEXP_FWD_CORE wxDC; -class WXDLLIMPEXP_FWD_CORE wxFont; -class WXDLLIMPEXP_FWD_CORE wxWindow; - -// ---------------------------------------------------------------------------- -// wxTextMeasure: class used to measure text extent. -// ---------------------------------------------------------------------------- - -class wxTextMeasureBase -{ -public: - // The first ctor argument must be non-NULL, i.e. each object of this class - // is associated with either a valid wxDC or a valid wxWindow. The font can - // be NULL to use the current DC/window font or can be specified explicitly. - wxTextMeasureBase(const wxDC *dc, const wxFont *theFont); - wxTextMeasureBase(const wxWindow *win, const wxFont *theFont); - - // Even though this class is not supposed to be used polymorphically, give - // it a virtual dtor to avoid compiler warnings. - virtual ~wxTextMeasureBase() { } - - - // Return the extent of a single line string. - void GetTextExtent(const wxString& string, - wxCoord *width, - wxCoord *height, - wxCoord *descent = NULL, - wxCoord *externalLeading = NULL); - - // The same for a multiline (with '\n') string. - void GetMultiLineTextExtent(const wxString& text, - wxCoord *width, - wxCoord *height, - wxCoord *heightOneLine = NULL); - - // Find the dimensions of the largest string. - wxSize GetLargestStringExtent(size_t n, const wxString* strings); - wxSize GetLargestStringExtent(const wxArrayString& strings) - { - return GetLargestStringExtent(strings.size(), &strings[0]); - } - - // Fill the array with the widths for each "0..N" substrings for N from 1 - // to text.length(). - // - // The scaleX argument is the horizontal scale used by wxDC and is only - // used in the generic implementation. - bool GetPartialTextExtents(const wxString& text, - wxArrayInt& widths, - double scaleX); - - - // This is another method which is only used by MeasuringGuard. - bool IsUsingDCImpl() const { return m_useDCImpl; } - -protected: - // RAII wrapper for the two methods above. - class MeasuringGuard - { - public: - MeasuringGuard(wxTextMeasureBase& tm) : m_tm(tm) - { - // BeginMeasuring() should only be called if we have a native DC, - // so don't call it if we delegate to a DC of unknown type. - if ( !m_tm.IsUsingDCImpl() ) - m_tm.BeginMeasuring(); - } - - ~MeasuringGuard() - { - if ( !m_tm.IsUsingDCImpl() ) - m_tm.EndMeasuring(); - } - - private: - wxTextMeasureBase& m_tm; - }; - - - // These functions are called by our public methods before and after each - // call to DoGetTextExtent(). Derived classes may override them to prepare - // for -- possibly several -- subsequent calls to DoGetTextExtent(). - // - // As these calls must be always paired, they're never called directly but - // only by our friend MeasuringGuard class. - virtual void BeginMeasuring() { } - virtual void EndMeasuring() { } - - - // The main function of this class, to be implemented in platform-specific - // way used by all our public methods. - // - // The width and height pointers here are never NULL and the input string - // is not empty. - virtual void DoGetTextExtent(const wxString& string, - wxCoord *width, - wxCoord *height, - wxCoord *descent = NULL, - wxCoord *externalLeading = NULL) = 0; - - // The real implementation of GetPartialTextExtents(). - // - // On input, widths array contains text.length() zero elements and the text - // is guaranteed to be non-empty. - virtual bool DoGetPartialTextExtents(const wxString& text, - wxArrayInt& widths, - double scaleX) = 0; - - // Call either DoGetTextExtent() or wxDC::GetTextExtent() depending on the - // value of m_useDCImpl. - // - // This must be always used instead of calling DoGetTextExtent() directly! - void CallGetTextExtent(const wxString& string, - wxCoord *width, - wxCoord *height, - wxCoord *descent = NULL, - wxCoord *externalLeading = NULL); - - // Return a valid font: if one was given to us in the ctor, use this one, - // otherwise use the current font of the associated wxDC or wxWindow. - wxFont GetFont() const; - - - // Exactly one of m_dc and m_win is non-NULL for any given object of this - // class. - const wxDC* const m_dc; - const wxWindow* const m_win; - - // If this is true, simply forward to wxDC::GetTextExtent() from our - // CallGetTextExtent() instead of calling our own DoGetTextExtent(). - // - // We need this because our DoGetTextExtent() typically only works with - // native DCs, i.e. those having an HDC under Windows or using Pango under - // GTK+. However wxTextMeasure object can be constructed for any wxDC, not - // necessarily a native one and in this case we must call back into the DC - // implementation of text measuring itself. - bool m_useDCImpl; - - // This one can be NULL or not. - const wxFont* const m_font; - - wxDECLARE_NO_COPY_CLASS(wxTextMeasureBase); -}; - -// Include the platform dependent class declaration, if any. -#if defined(__WXGTK20__) - #include "wx/gtk/private/textmeasure.h" -#elif defined(__WXMSW__) - #include "wx/msw/private/textmeasure.h" -#else // no platform-specific implementation of wxTextMeasure yet - #include "wx/generic/private/textmeasure.h" - - #define wxUSE_GENERIC_TEXTMEASURE 1 -#endif - -#ifndef wxUSE_GENERIC_TEXTMEASURE - #define wxUSE_GENERIC_TEXTMEASURE 0 -#endif - -#endif // _WX_PRIVATE_TEXTMEASURE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/threadinfo.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/threadinfo.h deleted file mode 100644 index 27a71674..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/threadinfo.h +++ /dev/null @@ -1,69 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/private/threadinfo.h -// Purpose: declaration of wxThreadSpecificInfo: thread-specific information -// Author: Vadim Zeitlin -// Created: 2009-07-13 -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_THREADINFO_H_ -#define _WX_PRIVATE_THREADINFO_H_ - -#include "wx/defs.h" - -class WXDLLIMPEXP_FWD_BASE wxLog; - -#if wxUSE_INTL -#include "wx/hashset.h" -WX_DECLARE_HASH_SET(wxString, wxStringHash, wxStringEqual, - wxLocaleUntranslatedStrings); -#endif - - -// ---------------------------------------------------------------------------- -// wxThreadSpecificInfo: contains all thread-specific information used by wx -// ---------------------------------------------------------------------------- - -// Group all thread-specific information we use (e.g. the active wxLog target) -// a in this class to avoid consuming more TLS slots than necessary as there is -// only a limited number of them. -class wxThreadSpecificInfo -{ -public: - // Return this thread's instance. - static wxThreadSpecificInfo& Get(); - - // the thread-specific logger or NULL if the thread is using the global one - // (this is not used for the main thread which always uses the global - // logger) - wxLog *logger; - - // true if logging is currently disabled for this thread (this is also not - // used for the main thread which uses wxLog::ms_doLog) - // - // NB: we use a counter-intuitive "disabled" flag instead of "enabled" one - // because the default, for 0-initialized struct, should be to enable - // logging - bool loggingDisabled; - -#if wxUSE_INTL - // Storage for wxTranslations::GetUntranslatedString() - wxLocaleUntranslatedStrings untranslatedStrings; -#endif - -#if wxUSE_THREADS - // Cleans up storage for the current thread. Should be called when a thread - // is being destroyed. If it's not called, the only bad thing that happens - // is that the memory is deallocated later, on process termination. - static void ThreadCleanUp(); -#endif - -private: - wxThreadSpecificInfo() : logger(NULL), loggingDisabled(false) {} -}; - -#define wxThreadInfo wxThreadSpecificInfo::Get() - -#endif // _WX_PRIVATE_THREADINFO_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/timer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/timer.h deleted file mode 100644 index 5f4ce0d5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/timer.h +++ /dev/null @@ -1,72 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/private/timer.h -// Purpose: Base class for wxTimer implementations -// Author: Lukasz Michalski <lmichalski@sf.net> -// Created: 31.10.2006 -// Copyright: (c) 2006-2007 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TIMERIMPL_H_BASE_ -#define _WX_TIMERIMPL_H_BASE_ - -#include "wx/defs.h" -#include "wx/event.h" -#include "wx/timer.h" - -// ---------------------------------------------------------------------------- -// wxTimerImpl: abstract base class for wxTimer implementations -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxTimerImpl -{ -public: - // default ctor, SetOwner() must be called after it (wxTimer does it) - wxTimerImpl(wxTimer *owner); - - // this must be called initially but may be also called later - void SetOwner(wxEvtHandler *owner, int timerid); - - // empty but virtual base class dtor, the caller is responsible for - // stopping the timer before it's destroyed (it can't be done from here as - // it's too late) - virtual ~wxTimerImpl() { } - - - // start the timer. When overriding call base version first. - virtual bool Start(int milliseconds = -1, bool oneShot = false); - - // stop the timer, only called if the timer is really running (unlike - // wxTimer::Stop()) - virtual void Stop() = 0; - - // return true if the timer is running - virtual bool IsRunning() const = 0; - - // this should be called by the port-specific code when the timer expires - virtual void Notify() { m_timer->Notify(); } - - // the default implementation of wxTimer::Notify(): generate a wxEVT_TIMER - void SendEvent(); - - - // accessors for wxTimer: - wxEvtHandler *GetOwner() const { return m_owner; } - int GetId() const { return m_idTimer; } - int GetInterval() const { return m_milli; } - bool IsOneShot() const { return m_oneShot; } - -protected: - wxTimer *m_timer; - - wxEvtHandler *m_owner; - - int m_idTimer; // id passed to wxTimerEvent - int m_milli; // the timer interval - bool m_oneShot; // true if one shot - - - wxDECLARE_NO_COPY_CLASS(wxTimerImpl); -}; - -#endif // _WX_TIMERIMPL_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/window.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/window.h deleted file mode 100644 index 1192fb97..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/window.h +++ /dev/null @@ -1,38 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/private/window.h -// Purpose: misc wxWindow helpers -// Author: Vaclav Slavik -// Created: 2010-01-21 -// Copyright: (c) 2010 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_WINDOW_H_ -#define _WX_PRIVATE_WINDOW_H_ - -#include "wx/gdicmn.h" - -namespace wxPrivate -{ - -// Windows' computes dialog units using average character width over upper- -// and lower-case ASCII alphabet and not using the average character width -// metadata stored in the font; see -// http://support.microsoft.com/default.aspx/kb/145994 for detailed discussion. -// -// This helper function computes font dimensions in the same way. It works with -// either wxDC or wxWindow argument. -template<typename T> -inline wxSize GetAverageASCIILetterSize(const T& of_what) -{ - const wxStringCharType *TEXT_TO_MEASURE = - wxS("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"); - - wxSize s = of_what.GetTextExtent(TEXT_TO_MEASURE); - s.x = (s.x / 26 + 1) / 2; - return s; -} - -} // namespace wxPrivate - -#endif // _WX_PRIVATE_WINDOW_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/wxprintf.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/wxprintf.h deleted file mode 100644 index e16b9f4e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/private/wxprintf.h +++ /dev/null @@ -1,939 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/private/wxprintf.h -// Purpose: wxWidgets wxPrintf() implementation -// Author: Ove Kaven -// Modified by: Ron Lee, Francesco Montorsi -// Created: 09/04/99 -// Copyright: (c) wxWidgets copyright -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_WXPRINTF_H_ -#define _WX_PRIVATE_WXPRINTF_H_ - -// --------------------------------------------------------------------------- -// headers and macros -// --------------------------------------------------------------------------- - -#include "wx/crt.h" -#include "wx/log.h" -#include "wx/utils.h" - -#include <string.h> - -// prefer snprintf over sprintf -#if defined(__VISUALC__) || \ - (defined(__BORLANDC__) && __BORLANDC__ >= 0x540) - #define system_sprintf(buff, max, flags, data) \ - ::_snprintf(buff, max, flags, data) -#elif defined(HAVE_SNPRINTF) - #define system_sprintf(buff, max, flags, data) \ - ::snprintf(buff, max, flags, data) -#else // NB: at least sprintf() should always be available - // since 'max' is not used in this case, wxVsnprintf() should always - // ensure that 'buff' is big enough for all common needs - // (see wxMAX_SVNPRINTF_FLAGBUFFER_LEN and wxMAX_SVNPRINTF_SCRATCHBUFFER_LEN) - #define system_sprintf(buff, max, flags, data) \ - ::sprintf(buff, flags, data) - - #define SYSTEM_SPRINTF_IS_UNSAFE -#endif - -// --------------------------------------------------------------------------- -// printf format string parsing -// --------------------------------------------------------------------------- - -// some limits of our implementation -#define wxMAX_SVNPRINTF_ARGUMENTS 64 -#define wxMAX_SVNPRINTF_FLAGBUFFER_LEN 32 -#define wxMAX_SVNPRINTF_SCRATCHBUFFER_LEN 512 - - -// the conversion specifiers accepted by wxCRT_VsnprintfW -enum wxPrintfArgType -{ - wxPAT_INVALID = -1, - - wxPAT_INT, // %d, %i, %o, %u, %x, %X - wxPAT_LONGINT, // %ld, etc -#ifdef wxLongLong_t - wxPAT_LONGLONGINT, // %Ld, etc -#endif - wxPAT_SIZET, // %zd, etc - - wxPAT_DOUBLE, // %e, %E, %f, %g, %G - wxPAT_LONGDOUBLE, // %le, etc - - wxPAT_POINTER, // %p - - wxPAT_CHAR, // %hc (in ANSI mode: %c, too) - wxPAT_WCHAR, // %lc (in Unicode mode: %c, too) - - wxPAT_PCHAR, // %s (related to a char *) - wxPAT_PWCHAR, // %s (related to a wchar_t *) - - wxPAT_NINT, // %n - wxPAT_NSHORTINT, // %hn - wxPAT_NLONGINT, // %ln - - wxPAT_STAR // '*' used for width or precision -}; - -// an argument passed to wxCRT_VsnprintfW -union wxPrintfArg -{ - int pad_int; // %d, %i, %o, %u, %x, %X - long int pad_longint; // %ld, etc -#ifdef wxLongLong_t - wxLongLong_t pad_longlongint; // %Ld, etc -#endif - size_t pad_sizet; // %zd, etc - - double pad_double; // %e, %E, %f, %g, %G - long double pad_longdouble; // %le, etc - - void *pad_pointer; // %p - - char pad_char; // %hc (in ANSI mode: %c, too) - wchar_t pad_wchar; // %lc (in Unicode mode: %c, too) - - void *pad_str; // %s - - int *pad_nint; // %n - short int *pad_nshortint; // %hn - long int *pad_nlongint; // %ln -}; - -// helper for converting string into either char* or wchar_t* depending -// on the type of wxPrintfConvSpec<T> instantiation: -template<typename CharType> struct wxPrintfStringHelper {}; - -template<> struct wxPrintfStringHelper<char> -{ - typedef const wxWX2MBbuf ConvertedType; - static ConvertedType Convert(const wxString& s) { return s.mb_str(); } -}; - -template<> struct wxPrintfStringHelper<wchar_t> -{ - typedef const wxWX2WCbuf ConvertedType; - static ConvertedType Convert(const wxString& s) { return s.wc_str(); } -}; - - -// Contains parsed data relative to a conversion specifier given to -// wxCRT_VsnprintfW and parsed from the format string -// NOTE: in C++ there is almost no difference between struct & classes thus -// there is no performance gain by using a struct here... -template<typename CharType> -class wxPrintfConvSpec -{ -public: - - // the position of the argument relative to this conversion specifier - size_t m_pos; - - // the type of this conversion specifier - wxPrintfArgType m_type; - - // the minimum and maximum width - // when one of this var is set to -1 it means: use the following argument - // in the stack as minimum/maximum width for this conversion specifier - int m_nMinWidth, m_nMaxWidth; - - // does the argument need to the be aligned to left ? - bool m_bAlignLeft; - - // pointer to the '%' of this conversion specifier in the format string - // NOTE: this points somewhere in the string given to the Parse() function - - // it's task of the caller ensure that memory is still valid ! - const CharType *m_pArgPos; - - // pointer to the last character of this conversion specifier in the - // format string - // NOTE: this points somewhere in the string given to the Parse() function - - // it's task of the caller ensure that memory is still valid ! - const CharType *m_pArgEnd; - - // a little buffer where formatting flags like #+\.hlqLz are stored by Parse() - // for use in Process() - char m_szFlags[wxMAX_SVNPRINTF_FLAGBUFFER_LEN]; - - -public: - - // we don't declare this as a constructor otherwise it would be called - // automatically and we don't want this: to be optimized, wxCRT_VsnprintfW - // calls this function only on really-used instances of this class. - void Init(); - - // Parses the first conversion specifier in the given string, which must - // begin with a '%'. Returns false if the first '%' does not introduce a - // (valid) conversion specifier and thus should be ignored. - bool Parse(const CharType *format); - - // Process this conversion specifier and puts the result in the given - // buffer. Returns the number of characters written in 'buf' or -1 if - // there's not enough space. - int Process(CharType *buf, size_t lenMax, wxPrintfArg *p, size_t written); - - // Loads the argument of this conversion specifier from given va_list. - bool LoadArg(wxPrintfArg *p, va_list &argptr); - -private: - // An helper function of LoadArg() which is used to handle the '*' flag - void ReplaceAsteriskWith(int w); -}; - -template<typename CharType> -void wxPrintfConvSpec<CharType>::Init() -{ - m_nMinWidth = 0; - m_nMaxWidth = 0xFFFF; - m_pos = 0; - m_bAlignLeft = false; - m_pArgPos = m_pArgEnd = NULL; - m_type = wxPAT_INVALID; - - memset(m_szFlags, 0, sizeof(m_szFlags)); - // this character will never be removed from m_szFlags array and - // is important when calling sprintf() in wxPrintfConvSpec::Process() ! - m_szFlags[0] = '%'; -} - -template<typename CharType> -bool wxPrintfConvSpec<CharType>::Parse(const CharType *format) -{ - bool done = false; - - // temporary parse data - size_t flagofs = 1; - bool in_prec, // true if we found the dot in some previous iteration - prec_dot; // true if the dot has been already added to m_szFlags - int ilen = 0; - - m_bAlignLeft = in_prec = prec_dot = false; - m_pArgPos = m_pArgEnd = format; - do - { -#define CHECK_PREC \ - if (in_prec && !prec_dot) \ - { \ - m_szFlags[flagofs++] = '.'; \ - prec_dot = true; \ - } - - // what follows '%'? - const CharType ch = *(++m_pArgEnd); - switch ( ch ) - { - case wxT('\0'): - return false; // not really an argument - - case wxT('%'): - return false; // not really an argument - - case wxT('#'): - case wxT('0'): - case wxT(' '): - case wxT('+'): - case wxT('\''): - CHECK_PREC - m_szFlags[flagofs++] = char(ch); - break; - - case wxT('-'): - CHECK_PREC - m_bAlignLeft = true; - m_szFlags[flagofs++] = char(ch); - break; - - case wxT('.'): - // don't use CHECK_PREC here to avoid warning about the value - // assigned to prec_dot inside it being never used (because - // overwritten just below) from Borland in release build - if (in_prec && !prec_dot) - m_szFlags[flagofs++] = '.'; - in_prec = true; - prec_dot = false; - m_nMaxWidth = 0; - // dot will be auto-added to m_szFlags if non-negative - // number follows - break; - - case wxT('h'): - ilen = -1; - CHECK_PREC - m_szFlags[flagofs++] = char(ch); - break; - - case wxT('l'): - // NB: it's safe to use flagofs-1 as flagofs always start from 1 - if (m_szFlags[flagofs-1] == 'l') // 'll' modifier is the same as 'L' or 'q' - ilen = 2; - else - ilen = 1; - CHECK_PREC - m_szFlags[flagofs++] = char(ch); - break; - - case wxT('q'): - case wxT('L'): - ilen = 2; - CHECK_PREC - m_szFlags[flagofs++] = char(ch); - break; -#ifdef __WINDOWS__ - // under Windows we support the special '%I64' notation as longlong - // integer conversion specifier for MSVC compatibility - // (it behaves exactly as '%lli' or '%Li' or '%qi') - case wxT('I'): - if (*(m_pArgEnd+1) == wxT('6') && - *(m_pArgEnd+2) == wxT('4')) - { - m_pArgEnd++; - m_pArgEnd++; - - ilen = 2; - CHECK_PREC - m_szFlags[flagofs++] = char(ch); - m_szFlags[flagofs++] = '6'; - m_szFlags[flagofs++] = '4'; - break; - } - // else: fall-through, 'I' is MSVC equivalent of C99 'z' -#endif // __WINDOWS__ - - case wxT('z'): - case wxT('Z'): - // 'z' is C99 standard for size_t and ptrdiff_t, 'Z' was used - // for this purpose in libc5 and by wx <= 2.8 - ilen = 3; - CHECK_PREC - m_szFlags[flagofs++] = char(ch); - break; - - case wxT('*'): - if (in_prec) - { - CHECK_PREC - - // tell Process() to use the next argument - // in the stack as maxwidth... - m_nMaxWidth = -1; - } - else - { - // tell Process() to use the next argument - // in the stack as minwidth... - m_nMinWidth = -1; - } - - // save the * in our formatting buffer... - // will be replaced later by Process() - m_szFlags[flagofs++] = char(ch); - break; - - case wxT('1'): case wxT('2'): case wxT('3'): - case wxT('4'): case wxT('5'): case wxT('6'): - case wxT('7'): case wxT('8'): case wxT('9'): - { - int len = 0; - CHECK_PREC - while ( (*m_pArgEnd >= CharType('0')) && - (*m_pArgEnd <= CharType('9')) ) - { - m_szFlags[flagofs++] = char(*m_pArgEnd); - len = len*10 + (*m_pArgEnd - wxT('0')); - m_pArgEnd++; - } - - if (in_prec) - m_nMaxWidth = len; - else - m_nMinWidth = len; - - m_pArgEnd--; // the main loop pre-increments n again - } - break; - - case wxT('$'): // a positional parameter (e.g. %2$s) ? - { - if (m_nMinWidth <= 0) - break; // ignore this formatting flag as no - // numbers are preceding it - - // remove from m_szFlags all digits previously added - do { - flagofs--; - } while (m_szFlags[flagofs] >= '1' && - m_szFlags[flagofs] <= '9'); - - // re-adjust the offset making it point to the - // next free char of m_szFlags - flagofs++; - - m_pos = m_nMinWidth; - m_nMinWidth = 0; - } - break; - - case wxT('d'): - case wxT('i'): - case wxT('o'): - case wxT('u'): - case wxT('x'): - case wxT('X'): - CHECK_PREC - m_szFlags[flagofs++] = char(ch); - if (ilen == 0) - m_type = wxPAT_INT; - else if (ilen == -1) - // NB: 'short int' value passed through '...' - // is promoted to 'int', so we have to get - // an int from stack even if we need a short - m_type = wxPAT_INT; - else if (ilen == 1) - m_type = wxPAT_LONGINT; - else if (ilen == 2) -#ifdef wxLongLong_t - m_type = wxPAT_LONGLONGINT; -#else // !wxLongLong_t - m_type = wxPAT_LONGINT; -#endif // wxLongLong_t/!wxLongLong_t - else if (ilen == 3) - m_type = wxPAT_SIZET; - done = true; - break; - - case wxT('e'): - case wxT('E'): - case wxT('f'): - case wxT('g'): - case wxT('G'): - CHECK_PREC - m_szFlags[flagofs++] = char(ch); - if (ilen == 2) - m_type = wxPAT_LONGDOUBLE; - else - m_type = wxPAT_DOUBLE; - done = true; - break; - - case wxT('p'): - m_type = wxPAT_POINTER; - m_szFlags[flagofs++] = char(ch); - done = true; - break; - - case wxT('c'): - if (ilen == -1) - { - // in Unicode mode %hc == ANSI character - // and in ANSI mode, %hc == %c == ANSI... - m_type = wxPAT_CHAR; - } - else if (ilen == 1) - { - // in ANSI mode %lc == Unicode character - // and in Unicode mode, %lc == %c == Unicode... - m_type = wxPAT_WCHAR; - } - else - { -#if wxUSE_UNICODE - // in Unicode mode, %c == Unicode character - m_type = wxPAT_WCHAR; -#else - // in ANSI mode, %c == ANSI character - m_type = wxPAT_CHAR; -#endif - } - done = true; - break; - - case wxT('s'): - if (ilen == -1) - { - // Unicode mode wx extension: we'll let %hs mean non-Unicode - // strings (when in ANSI mode, %s == %hs == ANSI string) - m_type = wxPAT_PCHAR; - } - else if (ilen == 1) - { - // in Unicode mode, %ls == %s == Unicode string - // in ANSI mode, %ls == Unicode string - m_type = wxPAT_PWCHAR; - } - else - { -#if wxUSE_UNICODE - m_type = wxPAT_PWCHAR; -#else - m_type = wxPAT_PCHAR; -#endif - } - done = true; - break; - - case wxT('n'): - if (ilen == 0) - m_type = wxPAT_NINT; - else if (ilen == -1) - m_type = wxPAT_NSHORTINT; - else if (ilen >= 1) - m_type = wxPAT_NLONGINT; - done = true; - break; - - default: - // bad format, don't consider this an argument; - // leave it unchanged - return false; - } - - if (flagofs == wxMAX_SVNPRINTF_FLAGBUFFER_LEN) - { - wxLogDebug(wxT("Too many flags specified for a single conversion specifier!")); - return false; - } - } - while (!done); - - return true; // parsing was successful -} - -template<typename CharType> -void wxPrintfConvSpec<CharType>::ReplaceAsteriskWith(int width) -{ - char temp[wxMAX_SVNPRINTF_FLAGBUFFER_LEN]; - - // find the first * in our flag buffer - char *pwidth = strchr(m_szFlags, '*'); - wxCHECK_RET(pwidth, wxT("field width must be specified")); - - // save what follows the * (the +1 is to skip the asterisk itself!) - strcpy(temp, pwidth+1); - if (width < 0) - { - pwidth[0] = wxT('-'); - pwidth++; - } - - // replace * with the actual integer given as width -#ifndef SYSTEM_SPRINTF_IS_UNSAFE - int maxlen = (m_szFlags + wxMAX_SVNPRINTF_FLAGBUFFER_LEN - pwidth) / - sizeof(*m_szFlags); -#endif - int offset = system_sprintf(pwidth, maxlen, "%d", abs(width)); - - // restore after the expanded * what was following it - strcpy(pwidth+offset, temp); -} - -template<typename CharType> -bool wxPrintfConvSpec<CharType>::LoadArg(wxPrintfArg *p, va_list &argptr) -{ - // did the '*' width/precision specifier was used ? - if (m_nMaxWidth == -1) - { - // take the maxwidth specifier from the stack - m_nMaxWidth = va_arg(argptr, int); - if (m_nMaxWidth < 0) - m_nMaxWidth = 0; - else - ReplaceAsteriskWith(m_nMaxWidth); - } - - if (m_nMinWidth == -1) - { - // take the minwidth specifier from the stack - m_nMinWidth = va_arg(argptr, int); - - ReplaceAsteriskWith(m_nMinWidth); - if (m_nMinWidth < 0) - { - m_bAlignLeft = !m_bAlignLeft; - m_nMinWidth = -m_nMinWidth; - } - } - - switch (m_type) { - case wxPAT_INT: - p->pad_int = va_arg(argptr, int); - break; - case wxPAT_LONGINT: - p->pad_longint = va_arg(argptr, long int); - break; -#ifdef wxLongLong_t - case wxPAT_LONGLONGINT: - p->pad_longlongint = va_arg(argptr, wxLongLong_t); - break; -#endif // wxLongLong_t - case wxPAT_SIZET: - p->pad_sizet = va_arg(argptr, size_t); - break; - case wxPAT_DOUBLE: - p->pad_double = va_arg(argptr, double); - break; - case wxPAT_LONGDOUBLE: - p->pad_longdouble = va_arg(argptr, long double); - break; - case wxPAT_POINTER: - p->pad_pointer = va_arg(argptr, void *); - break; - - case wxPAT_CHAR: - p->pad_char = (char)va_arg(argptr, int); // char is promoted to int when passed through '...' - break; - case wxPAT_WCHAR: - p->pad_wchar = (wchar_t)va_arg(argptr, int); // char is promoted to int when passed through '...' - break; - - case wxPAT_PCHAR: - case wxPAT_PWCHAR: - p->pad_str = va_arg(argptr, void *); - break; - - case wxPAT_NINT: - p->pad_nint = va_arg(argptr, int *); - break; - case wxPAT_NSHORTINT: - p->pad_nshortint = va_arg(argptr, short int *); - break; - case wxPAT_NLONGINT: - p->pad_nlongint = va_arg(argptr, long int *); - break; - - case wxPAT_STAR: - // this will be handled as part of the next argument - return true; - - case wxPAT_INVALID: - default: - return false; - } - - return true; // loading was successful -} - -template<typename CharType> -int wxPrintfConvSpec<CharType>::Process(CharType *buf, size_t lenMax, wxPrintfArg *p, size_t written) -{ - // buffer to avoid dynamic memory allocation each time for small strings; - // note that this buffer is used only to hold results of number formatting, - // %s directly writes user's string in buf, without using szScratch - char szScratch[wxMAX_SVNPRINTF_SCRATCHBUFFER_LEN]; - size_t lenScratch = 0, lenCur = 0; - -#define APPEND_CH(ch) \ - { \ - if ( lenCur == lenMax ) \ - return -1; \ - \ - buf[lenCur++] = ch; \ - } - - switch ( m_type ) - { - case wxPAT_INT: - lenScratch = system_sprintf(szScratch, wxMAX_SVNPRINTF_SCRATCHBUFFER_LEN, m_szFlags, p->pad_int); - break; - - case wxPAT_LONGINT: - lenScratch = system_sprintf(szScratch, wxMAX_SVNPRINTF_SCRATCHBUFFER_LEN, m_szFlags, p->pad_longint); - break; - -#ifdef wxLongLong_t - case wxPAT_LONGLONGINT: - lenScratch = system_sprintf(szScratch, wxMAX_SVNPRINTF_SCRATCHBUFFER_LEN, m_szFlags, p->pad_longlongint); - break; -#endif // SIZEOF_LONG_LONG - - case wxPAT_SIZET: - lenScratch = system_sprintf(szScratch, wxMAX_SVNPRINTF_SCRATCHBUFFER_LEN, m_szFlags, p->pad_sizet); - break; - - case wxPAT_LONGDOUBLE: - lenScratch = system_sprintf(szScratch, wxMAX_SVNPRINTF_SCRATCHBUFFER_LEN, m_szFlags, p->pad_longdouble); - break; - - case wxPAT_DOUBLE: - lenScratch = system_sprintf(szScratch, wxMAX_SVNPRINTF_SCRATCHBUFFER_LEN, m_szFlags, p->pad_double); - break; - - case wxPAT_POINTER: - lenScratch = system_sprintf(szScratch, wxMAX_SVNPRINTF_SCRATCHBUFFER_LEN, m_szFlags, p->pad_pointer); - break; - - case wxPAT_CHAR: - case wxPAT_WCHAR: - { - wxUniChar ch; - if (m_type == wxPAT_CHAR) - ch = p->pad_char; - else // m_type == wxPAT_WCHAR - ch = p->pad_wchar; - - CharType val = ch; - - size_t i; - - if (!m_bAlignLeft) - for (i = 1; i < (size_t)m_nMinWidth; i++) - APPEND_CH(wxT(' ')); - - APPEND_CH(val); - - if (m_bAlignLeft) - for (i = 1; i < (size_t)m_nMinWidth; i++) - APPEND_CH(wxT(' ')); - } - break; - - case wxPAT_PCHAR: - case wxPAT_PWCHAR: - { - wxString s; - if ( !p->pad_str ) - { - if ( m_nMaxWidth >= 6 ) - s = wxT("(null)"); - } - else if (m_type == wxPAT_PCHAR) - s.assign(static_cast<const char *>(p->pad_str)); - else // m_type == wxPAT_PWCHAR - s.assign(static_cast<const wchar_t *>(p->pad_str)); - - typename wxPrintfStringHelper<CharType>::ConvertedType strbuf( - wxPrintfStringHelper<CharType>::Convert(s)); - - // at this point we are sure that m_nMaxWidth is positive or - // null (see top of wxPrintfConvSpec::LoadArg) - int len = wxMin((unsigned int)m_nMaxWidth, wxStrlen(strbuf)); - - int i; - - if (!m_bAlignLeft) - { - for (i = len; i < m_nMinWidth; i++) - APPEND_CH(wxT(' ')); - } - - len = wxMin((unsigned int)len, lenMax-lenCur); - wxStrncpy(buf+lenCur, strbuf, len); - lenCur += len; - - if (m_bAlignLeft) - { - for (i = len; i < m_nMinWidth; i++) - APPEND_CH(wxT(' ')); - } - } - break; - - case wxPAT_NINT: - *p->pad_nint = written; - break; - - case wxPAT_NSHORTINT: - *p->pad_nshortint = (short int)written; - break; - - case wxPAT_NLONGINT: - *p->pad_nlongint = written; - break; - - case wxPAT_INVALID: - default: - return -1; - } - - // if we used system's sprintf() then we now need to append the s_szScratch - // buffer to the given one... - switch (m_type) - { - case wxPAT_INT: - case wxPAT_LONGINT: -#ifdef wxLongLong_t - case wxPAT_LONGLONGINT: -#endif - case wxPAT_SIZET: - case wxPAT_LONGDOUBLE: - case wxPAT_DOUBLE: - case wxPAT_POINTER: - wxASSERT(lenScratch < wxMAX_SVNPRINTF_SCRATCHBUFFER_LEN); - // NB: 1) we can compare lenMax (for CharType*, i.e. possibly - // wchar_t*) with lenScratch (char*) because this code is - // formatting integers and that will have the same length - // even in UTF-8 (the only case when char* length may be - // more than wchar_t* length of the same string) - // 2) wxStrncpy converts the 2nd argument to 1st argument's - // type transparently if their types differ, so this code - // works for both instantiations - if (lenMax < lenScratch) - { - // fill output buffer and then return -1 - wxStrncpy(buf, szScratch, lenMax); - return -1; - } - wxStrncpy(buf, szScratch, lenScratch); - lenCur += lenScratch; - break; - - default: - break; // all other cases were completed previously - } - - return lenCur; -} - - -// helper that parses format string -template<typename CharType> -struct wxPrintfConvSpecParser -{ - typedef wxPrintfConvSpec<CharType> ConvSpec; - - wxPrintfConvSpecParser(const CharType *fmt) - { - nargs = 0; - posarg_present = - nonposarg_present = false; - - memset(pspec, 0, sizeof(pspec)); - - // parse the format string - for ( const CharType *toparse = fmt; *toparse != wxT('\0'); toparse++ ) - { - // skip everything except format specifications - if ( *toparse != '%' ) - continue; - - // also skip escaped percent signs - if ( toparse[1] == '%' ) - { - toparse++; - continue; - } - - ConvSpec *spec = &specs[nargs]; - spec->Init(); - - // attempt to parse this format specification - if ( !spec->Parse(toparse) ) - continue; - - // advance to the end of this specifier - toparse = spec->m_pArgEnd; - - // special handling for specifications including asterisks: we need - // to reserve an extra slot (or two if asterisks were used for both - // width and precision) in specs array in this case - if ( const char *f = strchr(spec->m_szFlags, '*') ) - { - unsigned numAsterisks = 1; - if ( strchr(++f, '*') ) - numAsterisks++; - - for ( unsigned n = 0; n < numAsterisks; n++ ) - { - if ( ++nargs == wxMAX_SVNPRINTF_ARGUMENTS ) - break; - - // TODO: we need to support specifiers of the form "%2$*1$s" - // (this is the same as "%*s") as if any positional arguments - // are used all asterisks must be positional as well but this - // requires a lot of changes in this code (basically we'd need - // to rewrite Parse() to return "*" and conversion itself as - // separate entries) - if ( posarg_present ) - { - wxFAIL_MSG - ( - wxString::Format - ( - "Format string \"%s\" uses both positional " - "parameters and '*' but this is not currently " - "supported by this implementation, sorry.", - fmt - ) - ); - } - - specs[nargs] = *spec; - - // make an entry for '*' and point to it from pspec - spec->Init(); - spec->m_type = wxPAT_STAR; - pspec[nargs - 1] = spec; - - spec = &specs[nargs]; - } - - // If we hit the maximal number of arguments inside the inner - // loop, break out of the outer one as well. - if ( nargs == wxMAX_SVNPRINTF_ARGUMENTS ) - break; - } - - - // check if this is a positional or normal argument - if ( spec->m_pos > 0 ) - { - // the positional arguments start from number 1 so we need - // to adjust the index - spec->m_pos--; - posarg_present = true; - } - else // not a positional argument... - { - spec->m_pos = nargs; - nonposarg_present = true; - } - - // this conversion specifier is tied to the pos-th argument... - pspec[spec->m_pos] = spec; - - if ( ++nargs == wxMAX_SVNPRINTF_ARGUMENTS ) - break; - } - - - // warn if we lost any arguments (the program probably will crash - // anyhow because of stack corruption...) - if ( nargs == wxMAX_SVNPRINTF_ARGUMENTS ) - { - wxFAIL_MSG - ( - wxString::Format - ( - "wxVsnprintf() currently supports only %d arguments, " - "but format string \"%s\" defines more of them.\n" - "You need to change wxMAX_SVNPRINTF_ARGUMENTS and " - "recompile if more are really needed.", - fmt, wxMAX_SVNPRINTF_ARGUMENTS - ) - ); - } - } - - // total number of valid elements in specs - unsigned nargs; - - // all format specifications in this format string in order of their - // appearance (which may be different from arguments order) - ConvSpec specs[wxMAX_SVNPRINTF_ARGUMENTS]; - - // pointer to specs array element for the N-th argument - ConvSpec *pspec[wxMAX_SVNPRINTF_ARGUMENTS]; - - // true if any positional/non-positional parameters are used - bool posarg_present, - nonposarg_present; -}; - -#undef APPEND_CH -#undef CHECK_PREC - -#endif // _WX_PRIVATE_WXPRINTF_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/prntbase.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/prntbase.h deleted file mode 100644 index 18987fff..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/prntbase.h +++ /dev/null @@ -1,762 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/prntbase.h -// Purpose: Base classes for printing framework -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRNTBASEH__ -#define _WX_PRNTBASEH__ - -#include "wx/defs.h" - -#if wxUSE_PRINTING_ARCHITECTURE - -#include "wx/event.h" -#include "wx/cmndata.h" -#include "wx/panel.h" -#include "wx/scrolwin.h" -#include "wx/dialog.h" -#include "wx/frame.h" -#include "wx/dc.h" - -class WXDLLIMPEXP_FWD_CORE wxDC; -class WXDLLIMPEXP_FWD_CORE wxButton; -class WXDLLIMPEXP_FWD_CORE wxChoice; -class WXDLLIMPEXP_FWD_CORE wxPrintout; -class WXDLLIMPEXP_FWD_CORE wxPrinterBase; -class WXDLLIMPEXP_FWD_CORE wxPrintDialogBase; -class WXDLLIMPEXP_FWD_CORE wxPrintDialog; -class WXDLLIMPEXP_FWD_CORE wxPageSetupDialogBase; -class WXDLLIMPEXP_FWD_CORE wxPageSetupDialog; -class WXDLLIMPEXP_FWD_CORE wxPrintPreviewBase; -class WXDLLIMPEXP_FWD_CORE wxPreviewCanvas; -class WXDLLIMPEXP_FWD_CORE wxPreviewControlBar; -class WXDLLIMPEXP_FWD_CORE wxPreviewFrame; -class WXDLLIMPEXP_FWD_CORE wxPrintFactory; -class WXDLLIMPEXP_FWD_CORE wxPrintNativeDataBase; -class WXDLLIMPEXP_FWD_CORE wxPrintPreview; -class WXDLLIMPEXP_FWD_CORE wxPrintAbortDialog; -class WXDLLIMPEXP_FWD_CORE wxStaticText; -class wxPrintPageMaxCtrl; -class wxPrintPageTextCtrl; - -//---------------------------------------------------------------------------- -// error consts -//---------------------------------------------------------------------------- - -enum wxPrinterError -{ - wxPRINTER_NO_ERROR = 0, - wxPRINTER_CANCELLED, - wxPRINTER_ERROR -}; - -// Preview frame modality kind used with wxPreviewFrame::Initialize() -enum wxPreviewFrameModalityKind -{ - // Disable all the other top level windows while the preview is shown. - wxPreviewFrame_AppModal, - - // Disable only the parent window while the preview is shown. - wxPreviewFrame_WindowModal, - - // Don't disable any windows. - wxPreviewFrame_NonModal -}; - -//---------------------------------------------------------------------------- -// wxPrintFactory -//---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPrintFactory -{ -public: - wxPrintFactory() {} - virtual ~wxPrintFactory() {} - - virtual wxPrinterBase *CreatePrinter( wxPrintDialogData* data ) = 0; - - virtual wxPrintPreviewBase *CreatePrintPreview( wxPrintout *preview, - wxPrintout *printout = NULL, - wxPrintDialogData *data = NULL ) = 0; - virtual wxPrintPreviewBase *CreatePrintPreview( wxPrintout *preview, - wxPrintout *printout, - wxPrintData *data ) = 0; - - virtual wxPrintDialogBase *CreatePrintDialog( wxWindow *parent, - wxPrintDialogData *data = NULL ) = 0; - virtual wxPrintDialogBase *CreatePrintDialog( wxWindow *parent, - wxPrintData *data ) = 0; - - virtual wxPageSetupDialogBase *CreatePageSetupDialog( wxWindow *parent, - wxPageSetupDialogData * data = NULL ) = 0; - - virtual wxDCImpl* CreatePrinterDCImpl( wxPrinterDC *owner, const wxPrintData& data ) = 0; - - // What to do and what to show in the wxPrintDialog - // a) Use the generic print setup dialog or a native one? - virtual bool HasPrintSetupDialog() = 0; - virtual wxDialog *CreatePrintSetupDialog( wxWindow *parent, wxPrintData *data ) = 0; - // b) Provide the "print to file" option ourselves or via print setup? - virtual bool HasOwnPrintToFile() = 0; - // c) Show current printer - virtual bool HasPrinterLine() = 0; - virtual wxString CreatePrinterLine() = 0; - // d) Show Status line for current printer? - virtual bool HasStatusLine() = 0; - virtual wxString CreateStatusLine() = 0; - - - virtual wxPrintNativeDataBase *CreatePrintNativeData() = 0; - - static void SetPrintFactory( wxPrintFactory *factory ); - static wxPrintFactory *GetFactory(); -private: - static wxPrintFactory *m_factory; -}; - -class WXDLLIMPEXP_CORE wxNativePrintFactory: public wxPrintFactory -{ -public: - virtual wxPrinterBase *CreatePrinter( wxPrintDialogData *data ) wxOVERRIDE; - - virtual wxPrintPreviewBase *CreatePrintPreview( wxPrintout *preview, - wxPrintout *printout = NULL, - wxPrintDialogData *data = NULL ) wxOVERRIDE; - virtual wxPrintPreviewBase *CreatePrintPreview( wxPrintout *preview, - wxPrintout *printout, - wxPrintData *data ) wxOVERRIDE; - - virtual wxPrintDialogBase *CreatePrintDialog( wxWindow *parent, - wxPrintDialogData *data = NULL ) wxOVERRIDE; - virtual wxPrintDialogBase *CreatePrintDialog( wxWindow *parent, - wxPrintData *data ) wxOVERRIDE; - - virtual wxPageSetupDialogBase *CreatePageSetupDialog( wxWindow *parent, - wxPageSetupDialogData * data = NULL ) wxOVERRIDE; - - virtual wxDCImpl* CreatePrinterDCImpl( wxPrinterDC *owner, const wxPrintData& data ) wxOVERRIDE; - - virtual bool HasPrintSetupDialog() wxOVERRIDE; - virtual wxDialog *CreatePrintSetupDialog( wxWindow *parent, wxPrintData *data ) wxOVERRIDE; - virtual bool HasOwnPrintToFile() wxOVERRIDE; - virtual bool HasPrinterLine() wxOVERRIDE; - virtual wxString CreatePrinterLine() wxOVERRIDE; - virtual bool HasStatusLine() wxOVERRIDE; - virtual wxString CreateStatusLine() wxOVERRIDE; - - virtual wxPrintNativeDataBase *CreatePrintNativeData() wxOVERRIDE; -}; - -//---------------------------------------------------------------------------- -// wxPrintNativeDataBase -//---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPrintNativeDataBase: public wxObject -{ -public: - wxPrintNativeDataBase(); - virtual ~wxPrintNativeDataBase() {} - - virtual bool TransferTo( wxPrintData &data ) = 0; - virtual bool TransferFrom( const wxPrintData &data ) = 0; -#ifdef __WXOSX__ - // in order to expose functionality already to the result type of the ..PrintData->GetNativeData() - virtual void TransferFrom( const wxPageSetupDialogData * ) = 0; - virtual void TransferTo( wxPageSetupDialogData * ) = 0; -#endif - virtual bool Ok() const { return IsOk(); } - virtual bool IsOk() const = 0; - - int m_ref; - -private: - wxDECLARE_CLASS(wxPrintNativeDataBase); - wxDECLARE_NO_COPY_CLASS(wxPrintNativeDataBase); -}; - -//---------------------------------------------------------------------------- -// wxPrinterBase -//---------------------------------------------------------------------------- - -/* - * Represents the printer: manages printing a wxPrintout object - */ - -class WXDLLIMPEXP_CORE wxPrinterBase: public wxObject -{ -public: - wxPrinterBase(wxPrintDialogData *data = NULL); - virtual ~wxPrinterBase(); - - virtual wxPrintAbortDialog *CreateAbortWindow(wxWindow *parent, wxPrintout *printout); - virtual void ReportError(wxWindow *parent, wxPrintout *printout, const wxString& message); - - virtual wxPrintDialogData& GetPrintDialogData() const; - bool GetAbort() const { return sm_abortIt; } - - static wxPrinterError GetLastError() { return sm_lastError; } - - /////////////////////////////////////////////////////////////////////////// - // OVERRIDES - - virtual bool Setup(wxWindow *parent) = 0; - virtual bool Print(wxWindow *parent, wxPrintout *printout, bool prompt = true) = 0; - virtual wxDC* PrintDialog(wxWindow *parent) = 0; - -protected: - wxPrintDialogData m_printDialogData; - wxPrintout* m_currentPrintout; - - static wxPrinterError sm_lastError; - -public: - static wxWindow* sm_abortWindow; - static bool sm_abortIt; - -private: - wxDECLARE_CLASS(wxPrinterBase); - wxDECLARE_NO_COPY_CLASS(wxPrinterBase); -}; - -//---------------------------------------------------------------------------- -// wxPrinter -//---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPrinter: public wxPrinterBase -{ -public: - wxPrinter(wxPrintDialogData *data = NULL); - virtual ~wxPrinter(); - - virtual wxPrintAbortDialog *CreateAbortWindow(wxWindow *parent, wxPrintout *printout) wxOVERRIDE; - virtual void ReportError(wxWindow *parent, wxPrintout *printout, const wxString& message) wxOVERRIDE; - - virtual bool Setup(wxWindow *parent) wxOVERRIDE; - virtual bool Print(wxWindow *parent, wxPrintout *printout, bool prompt = true) wxOVERRIDE; - virtual wxDC* PrintDialog(wxWindow *parent) wxOVERRIDE; - - virtual wxPrintDialogData& GetPrintDialogData() const wxOVERRIDE; - -protected: - wxPrinterBase *m_pimpl; - -private: - wxDECLARE_CLASS(wxPrinter); - wxDECLARE_NO_COPY_CLASS(wxPrinter); -}; - -//---------------------------------------------------------------------------- -// wxPrintout -//---------------------------------------------------------------------------- - -/* - * Represents an object via which a document may be printed. - * The programmer derives from this, overrides (at least) OnPrintPage, - * and passes it to a wxPrinter object for printing, or a wxPrintPreview - * object for previewing. - */ - -class WXDLLIMPEXP_CORE wxPrintout: public wxObject -{ -public: - wxPrintout(const wxString& title = wxGetTranslation("Printout")); - virtual ~wxPrintout(); - - virtual bool OnBeginDocument(int startPage, int endPage); - virtual void OnEndDocument(); - virtual void OnBeginPrinting(); - virtual void OnEndPrinting(); - - // Guaranteed to be before any other functions are called - virtual void OnPreparePrinting() { } - - virtual bool HasPage(int page); - virtual bool OnPrintPage(int page) = 0; - virtual void GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo); - - virtual wxString GetTitle() const { return m_printoutTitle; } - - wxDC *GetDC() const { return m_printoutDC; } - void SetDC(wxDC *dc) { m_printoutDC = dc; } - - void FitThisSizeToPaper(const wxSize& imageSize); - void FitThisSizeToPage(const wxSize& imageSize); - void FitThisSizeToPageMargins(const wxSize& imageSize, const wxPageSetupDialogData& pageSetupData); - void MapScreenSizeToPaper(); - void MapScreenSizeToPage(); - void MapScreenSizeToPageMargins(const wxPageSetupDialogData& pageSetupData); - void MapScreenSizeToDevice(); - - wxRect GetLogicalPaperRect() const; - wxRect GetLogicalPageRect() const; - wxRect GetLogicalPageMarginsRect(const wxPageSetupDialogData& pageSetupData) const; - - void SetLogicalOrigin(wxCoord x, wxCoord y); - void OffsetLogicalOrigin(wxCoord xoff, wxCoord yoff); - - void SetPageSizePixels(int w, int h) { m_pageWidthPixels = w; m_pageHeightPixels = h; } - void GetPageSizePixels(int *w, int *h) const { *w = m_pageWidthPixels; *h = m_pageHeightPixels; } - void SetPageSizeMM(int w, int h) { m_pageWidthMM = w; m_pageHeightMM = h; } - void GetPageSizeMM(int *w, int *h) const { *w = m_pageWidthMM; *h = m_pageHeightMM; } - - void SetPPIScreen(int x, int y) { m_PPIScreenX = x; m_PPIScreenY = y; } - void SetPPIScreen(const wxSize& ppi) { SetPPIScreen(ppi.x, ppi.y); } - void GetPPIScreen(int *x, int *y) const { *x = m_PPIScreenX; *y = m_PPIScreenY; } - void SetPPIPrinter(int x, int y) { m_PPIPrinterX = x; m_PPIPrinterY = y; } - void SetPPIPrinter(const wxSize& ppi) { SetPPIPrinter(ppi.x, ppi.y); } - void GetPPIPrinter(int *x, int *y) const { *x = m_PPIPrinterX; *y = m_PPIPrinterY; } - - void SetPaperRectPixels(const wxRect& paperRectPixels) { m_paperRectPixels = paperRectPixels; } - wxRect GetPaperRectPixels() const { return m_paperRectPixels; } - - // This must be called by wxPrintPreview to associate itself with the - // printout it uses. - virtual void SetPreview(wxPrintPreview *preview) { m_preview = preview; } - - wxPrintPreview *GetPreview() const { return m_preview; } - virtual bool IsPreview() const { return GetPreview() != NULL; } - -private: - wxString m_printoutTitle; - wxDC* m_printoutDC; - wxPrintPreview *m_preview; - - int m_pageWidthPixels; - int m_pageHeightPixels; - - int m_pageWidthMM; - int m_pageHeightMM; - - int m_PPIScreenX; - int m_PPIScreenY; - int m_PPIPrinterX; - int m_PPIPrinterY; - - wxRect m_paperRectPixels; - -private: - wxDECLARE_ABSTRACT_CLASS(wxPrintout); - wxDECLARE_NO_COPY_CLASS(wxPrintout); -}; - -//---------------------------------------------------------------------------- -// wxPreviewCanvas -//---------------------------------------------------------------------------- - -/* - * Canvas upon which a preview is drawn. - */ - -class WXDLLIMPEXP_CORE wxPreviewCanvas: public wxScrolledWindow -{ -public: - wxPreviewCanvas(wxPrintPreviewBase *preview, - wxWindow *parent, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxT("canvas")); - virtual ~wxPreviewCanvas(); - - void SetPreview(wxPrintPreviewBase *preview) { m_printPreview = preview; } - - void OnPaint(wxPaintEvent& event); - void OnChar(wxKeyEvent &event); - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - -private: -#if wxUSE_MOUSEWHEEL - void OnMouseWheel(wxMouseEvent& event); -#endif // wxUSE_MOUSEWHEEL - void OnIdle(wxIdleEvent& event); - - wxPrintPreviewBase* m_printPreview; - - wxDECLARE_CLASS(wxPreviewCanvas); - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxPreviewCanvas); -}; - -//---------------------------------------------------------------------------- -// wxPreviewFrame -//---------------------------------------------------------------------------- - -/* - * Default frame for showing preview. - */ - -class WXDLLIMPEXP_CORE wxPreviewFrame: public wxFrame -{ -public: - wxPreviewFrame(wxPrintPreviewBase *preview, - wxWindow *parent, - const wxString& title = wxGetTranslation("Print Preview"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxFRAME_FLOAT_ON_PARENT, - const wxString& name = wxFrameNameStr); - virtual ~wxPreviewFrame(); - - // Either Initialize() or InitializeWithModality() must be called before - // showing the preview frame, the former being just a particular case of - // the latter initializing the frame for being showing app-modally. - - // Notice that we must keep Initialize() with its existing signature to - // avoid breaking the old code that overrides it and we can't reuse the - // same name for the other functions to avoid virtual function hiding - // problem and the associated warnings given by some compilers (e.g. from - // g++ with -Woverloaded-virtual). - virtual void Initialize() - { - InitializeWithModality(wxPreviewFrame_AppModal); - } - - // Also note that this method is not virtual as it doesn't need to be - // overridden: it's never called by wxWidgets (of course, the same is true - // for Initialize() but, again, it must remain virtual for compatibility). - void InitializeWithModality(wxPreviewFrameModalityKind kind); - - void OnCloseWindow(wxCloseEvent& event); - virtual void CreateCanvas(); - virtual void CreateControlBar(); - - inline wxPreviewControlBar* GetControlBar() const { return m_controlBar; } - -protected: - wxPreviewCanvas* m_previewCanvas; - wxPreviewControlBar* m_controlBar; - wxPrintPreviewBase* m_printPreview; - wxWindowDisabler* m_windowDisabler; - - wxPreviewFrameModalityKind m_modalityKind; - - -private: - void OnChar(wxKeyEvent& event); - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_CLASS(wxPreviewFrame); - wxDECLARE_NO_COPY_CLASS(wxPreviewFrame); -}; - -//---------------------------------------------------------------------------- -// wxPreviewControlBar -//---------------------------------------------------------------------------- - -/* - * A panel with buttons for controlling a print preview. - * The programmer may wish to use other means for controlling - * the print preview. - */ - -#define wxPREVIEW_PRINT 1 -#define wxPREVIEW_PREVIOUS 2 -#define wxPREVIEW_NEXT 4 -#define wxPREVIEW_ZOOM 8 -#define wxPREVIEW_FIRST 16 -#define wxPREVIEW_LAST 32 -#define wxPREVIEW_GOTO 64 - -#define wxPREVIEW_DEFAULT (wxPREVIEW_PREVIOUS|wxPREVIEW_NEXT|wxPREVIEW_ZOOM\ - |wxPREVIEW_FIRST|wxPREVIEW_GOTO|wxPREVIEW_LAST) - -// Ids for controls -#define wxID_PREVIEW_CLOSE 1 -#define wxID_PREVIEW_NEXT 2 -#define wxID_PREVIEW_PREVIOUS 3 -#define wxID_PREVIEW_PRINT 4 -#define wxID_PREVIEW_ZOOM 5 -#define wxID_PREVIEW_FIRST 6 -#define wxID_PREVIEW_LAST 7 -#define wxID_PREVIEW_GOTO 8 -#define wxID_PREVIEW_ZOOM_IN 9 -#define wxID_PREVIEW_ZOOM_OUT 10 - -class WXDLLIMPEXP_CORE wxPreviewControlBar: public wxPanel -{ - wxDECLARE_CLASS(wxPreviewControlBar); - -public: - wxPreviewControlBar(wxPrintPreviewBase *preview, - long buttons, - wxWindow *parent, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTAB_TRAVERSAL, - const wxString& name = wxT("panel")); - virtual ~wxPreviewControlBar(); - - virtual void CreateButtons(); - virtual void SetPageInfo(int minPage, int maxPage); - virtual void SetZoomControl(int zoom); - virtual int GetZoomControl(); - virtual wxPrintPreviewBase *GetPrintPreview() const - { return m_printPreview; } - - - // Implementation only from now on. - void OnWindowClose(wxCommandEvent& event); - void OnNext(); - void OnPrevious(); - void OnFirst(); - void OnLast(); - void OnGotoPage(); - void OnPrint(); - - void OnPrintButton(wxCommandEvent& WXUNUSED(event)) { OnPrint(); } - void OnNextButton(wxCommandEvent & WXUNUSED(event)) { OnNext(); } - void OnPreviousButton(wxCommandEvent & WXUNUSED(event)) { OnPrevious(); } - void OnFirstButton(wxCommandEvent & WXUNUSED(event)) { OnFirst(); } - void OnLastButton(wxCommandEvent & WXUNUSED(event)) { OnLast(); } - void OnPaint(wxPaintEvent& event); - - void OnUpdateNextButton(wxUpdateUIEvent& event) - { event.Enable(IsNextEnabled()); } - void OnUpdatePreviousButton(wxUpdateUIEvent& event) - { event.Enable(IsPreviousEnabled()); } - void OnUpdateFirstButton(wxUpdateUIEvent& event) - { event.Enable(IsFirstEnabled()); } - void OnUpdateLastButton(wxUpdateUIEvent& event) - { event.Enable(IsLastEnabled()); } - void OnUpdateZoomInButton(wxUpdateUIEvent& event) - { event.Enable(IsZoomInEnabled()); } - void OnUpdateZoomOutButton(wxUpdateUIEvent& event) - { event.Enable(IsZoomOutEnabled()); } - - // These methods are not private because they are called by wxPreviewCanvas. - void DoZoomIn(); - void DoZoomOut(); - -protected: - wxPrintPreviewBase* m_printPreview; - wxButton* m_closeButton; - wxChoice* m_zoomControl; - wxPrintPageTextCtrl* m_currentPageText; - wxPrintPageMaxCtrl* m_maxPageText; - - long m_buttonFlags; - -private: - void DoGotoPage(int page); - - void DoZoom(); - - bool IsNextEnabled() const; - bool IsPreviousEnabled() const; - bool IsFirstEnabled() const; - bool IsLastEnabled() const; - bool IsZoomInEnabled() const; - bool IsZoomOutEnabled() const; - - void OnZoomInButton(wxCommandEvent & WXUNUSED(event)) { DoZoomIn(); } - void OnZoomOutButton(wxCommandEvent & WXUNUSED(event)) { DoZoomOut(); } - void OnZoomChoice(wxCommandEvent& WXUNUSED(event)) { DoZoom(); } - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxPreviewControlBar); -}; - -//---------------------------------------------------------------------------- -// wxPrintPreviewBase -//---------------------------------------------------------------------------- - -/* - * Programmer creates an object of this class to preview a wxPrintout. - */ - -class WXDLLIMPEXP_CORE wxPrintPreviewBase: public wxObject -{ -public: - wxPrintPreviewBase(wxPrintout *printout, - wxPrintout *printoutForPrinting = NULL, - wxPrintDialogData *data = NULL); - wxPrintPreviewBase(wxPrintout *printout, - wxPrintout *printoutForPrinting, - wxPrintData *data); - virtual ~wxPrintPreviewBase(); - - virtual bool SetCurrentPage(int pageNum); - virtual int GetCurrentPage() const; - - virtual void SetPrintout(wxPrintout *printout); - virtual wxPrintout *GetPrintout() const; - virtual wxPrintout *GetPrintoutForPrinting() const; - - virtual void SetFrame(wxFrame *frame); - virtual void SetCanvas(wxPreviewCanvas *canvas); - - virtual wxFrame *GetFrame() const; - virtual wxPreviewCanvas *GetCanvas() const; - - // This is a helper routine, used by the next 4 routines. - - virtual void CalcRects(wxPreviewCanvas *canvas, wxRect& printableAreaRect, wxRect& paperRect); - - // The preview canvas should call this from OnPaint - virtual bool PaintPage(wxPreviewCanvas *canvas, wxDC& dc); - - // Updates rendered page by calling RenderPage() if needed, returns true - // if there was some change. Preview canvas should call it at idle time - virtual bool UpdatePageRendering(); - - // This draws a blank page onto the preview canvas - virtual bool DrawBlankPage(wxPreviewCanvas *canvas, wxDC& dc); - - // Adjusts the scrollbars for the current scale - virtual void AdjustScrollbars(wxPreviewCanvas *canvas); - - // This is called by wxPrintPreview to render a page into a wxMemoryDC. - virtual bool RenderPage(int pageNum); - - - virtual void SetZoom(int percent); - virtual int GetZoom() const; - - virtual wxPrintDialogData& GetPrintDialogData(); - - virtual int GetMaxPage() const; - virtual int GetMinPage() const; - - virtual bool Ok() const { return IsOk(); } - virtual bool IsOk() const; - virtual void SetOk(bool ok); - - /////////////////////////////////////////////////////////////////////////// - // OVERRIDES - - // If we own a wxPrintout that can be used for printing, this - // will invoke the actual printing procedure. Called - // by the wxPreviewControlBar. - virtual bool Print(bool interactive) = 0; - - // Calculate scaling that needs to be done to get roughly - // the right scaling for the screen pretending to be - // the currently selected printer. - virtual void DetermineScaling() = 0; - -protected: - // helpers for RenderPage(): - virtual bool RenderPageIntoDC(wxDC& dc, int pageNum); - // renders preview into m_previewBitmap - virtual bool RenderPageIntoBitmap(wxBitmap& bmp, int pageNum); - - void InvalidatePreviewBitmap(); - -protected: - wxPrintDialogData m_printDialogData; - wxPreviewCanvas* m_previewCanvas; - wxFrame* m_previewFrame; - wxBitmap* m_previewBitmap; - bool m_previewFailed; - wxPrintout* m_previewPrintout; - wxPrintout* m_printPrintout; - int m_currentPage; - int m_currentZoom; - float m_previewScaleX; - float m_previewScaleY; - int m_topMargin; - int m_leftMargin; - int m_pageWidth; - int m_pageHeight; - int m_minPage; - int m_maxPage; - - bool m_isOk; - bool m_printingPrepared; // Called OnPreparePrinting? - -private: - void Init(wxPrintout *printout, wxPrintout *printoutForPrinting); - - wxDECLARE_NO_COPY_CLASS(wxPrintPreviewBase); - wxDECLARE_CLASS(wxPrintPreviewBase); -}; - -//---------------------------------------------------------------------------- -// wxPrintPreview -//---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPrintPreview: public wxPrintPreviewBase -{ -public: - wxPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting = NULL, - wxPrintDialogData *data = NULL); - wxPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting, - wxPrintData *data); - virtual ~wxPrintPreview(); - - virtual bool SetCurrentPage(int pageNum) wxOVERRIDE; - virtual int GetCurrentPage() const wxOVERRIDE; - virtual void SetPrintout(wxPrintout *printout) wxOVERRIDE; - virtual wxPrintout *GetPrintout() const wxOVERRIDE; - virtual wxPrintout *GetPrintoutForPrinting() const wxOVERRIDE; - virtual void SetFrame(wxFrame *frame) wxOVERRIDE; - virtual void SetCanvas(wxPreviewCanvas *canvas) wxOVERRIDE; - - virtual wxFrame *GetFrame() const wxOVERRIDE; - virtual wxPreviewCanvas *GetCanvas() const wxOVERRIDE; - virtual bool PaintPage(wxPreviewCanvas *canvas, wxDC& dc) wxOVERRIDE; - virtual bool UpdatePageRendering() wxOVERRIDE; - virtual bool DrawBlankPage(wxPreviewCanvas *canvas, wxDC& dc) wxOVERRIDE; - virtual void AdjustScrollbars(wxPreviewCanvas *canvas) wxOVERRIDE; - virtual bool RenderPage(int pageNum) wxOVERRIDE; - virtual void SetZoom(int percent) wxOVERRIDE; - virtual int GetZoom() const wxOVERRIDE; - - virtual bool Print(bool interactive) wxOVERRIDE; - virtual void DetermineScaling() wxOVERRIDE; - - virtual wxPrintDialogData& GetPrintDialogData() wxOVERRIDE; - - virtual int GetMaxPage() const wxOVERRIDE; - virtual int GetMinPage() const wxOVERRIDE; - - virtual bool Ok() const wxOVERRIDE { return IsOk(); } - virtual bool IsOk() const wxOVERRIDE; - virtual void SetOk(bool ok) wxOVERRIDE; - -private: - wxPrintPreviewBase *m_pimpl; - -private: - wxDECLARE_CLASS(wxPrintPreview); - wxDECLARE_NO_COPY_CLASS(wxPrintPreview); -}; - -//---------------------------------------------------------------------------- -// wxPrintAbortDialog -//---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxPrintAbortDialog: public wxDialog -{ -public: - wxPrintAbortDialog(wxWindow *parent, - const wxString& documentTitle, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxT("dialog")); - - void SetProgress(int currentPage, int totalPages, - int currentCopy, int totalCopies); - - void OnCancel(wxCommandEvent& event); - -private: - wxStaticText *m_progress; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxPrintAbortDialog); -}; - -#endif // wxUSE_PRINTING_ARCHITECTURE - -#endif - // _WX_PRNTBASEH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/process.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/process.h deleted file mode 100644 index 733275d9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/process.h +++ /dev/null @@ -1,193 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/process.h -// Purpose: wxProcess class -// Author: Guilhem Lavaux -// Modified by: Vadim Zeitlin to check error codes, added Detach() method -// Created: 24/06/98 -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROCESSH__ -#define _WX_PROCESSH__ - -#include "wx/event.h" - -#if wxUSE_STREAMS - #include "wx/stream.h" -#endif - -#include "wx/utils.h" // for wxSignal - -// the wxProcess creation flags -enum -{ - // no redirection - wxPROCESS_DEFAULT = 0, - - // redirect the IO of the child process - wxPROCESS_REDIRECT = 1 -}; - -// ---------------------------------------------------------------------------- -// A wxProcess object should be passed to wxExecute - than its OnTerminate() -// function will be called when the process terminates. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxProcess : public wxEvtHandler -{ -public: - // kill the process with the given PID - static wxKillError Kill(int pid, wxSignal sig = wxSIGTERM, int flags = wxKILL_NOCHILDREN); - - // test if the given process exists - static bool Exists(int pid); - - // this function replaces the standard popen() one: it launches a process - // asynchronously and allows the caller to get the streams connected to its - // std{in|out|err} - // - // on error NULL is returned, in any case the process object will be - // deleted automatically when the process terminates and should *not* be - // deleted by the caller - static wxProcess *Open(const wxString& cmd, int flags = wxEXEC_ASYNC); - - - // ctors - wxProcess(wxEvtHandler *parent = NULL, int nId = wxID_ANY) - { Init(parent, nId, wxPROCESS_DEFAULT); } - - wxProcess(int flags) { Init(NULL, wxID_ANY, flags); } - - virtual ~wxProcess(); - - // get the process ID of the process executed by Open() - long GetPid() const { return m_pid; } - - // may be overridden to be notified about process termination - virtual void OnTerminate(int pid, int status); - - // call this before passing the object to wxExecute() to redirect the - // launched process stdin/stdout, then use GetInputStream() and - // GetOutputStream() to get access to them - void Redirect() { m_redirect = true; } - bool IsRedirected() const { return m_redirect; } - - // detach from the parent - should be called by the parent if it's deleted - // before the process it started terminates - void Detach(); - - // Activates a GUI process by bringing its (main) window to the front. - // - // Currently only implemented in wxMSW, simply returns false under the - // other platforms. - bool Activate() const; - -#if wxUSE_STREAMS - // Pipe handling - wxInputStream *GetInputStream() const { return m_inputStream; } - wxInputStream *GetErrorStream() const { return m_errorStream; } - wxOutputStream *GetOutputStream() const { return m_outputStream; } - - // close the output stream indicating that nothing more will be written - void CloseOutput() { delete m_outputStream; m_outputStream = NULL; } - - // return true if the child process stdout is not closed - bool IsInputOpened() const; - - // return true if any input is available on the child process stdout/err - bool IsInputAvailable() const; - bool IsErrorAvailable() const; - - // implementation only (for wxExecute) - // - // NB: the streams passed here should correspond to the child process - // stdout, stdin and stderr and here the normal naming convention is - // used unlike elsewhere in this class - void SetPipeStreams(wxInputStream *outStream, - wxOutputStream *inStream, - wxInputStream *errStream); -#endif // wxUSE_STREAMS - - // priority - // Sets the priority to the given value: see wxPRIORITY_XXX constants. - // - // NB: the priority can only be set before the process is created - void SetPriority(unsigned priority); - - // Get the current priority. - unsigned GetPriority() const { return m_priority; } - - // implementation only - don't use! - // -------------------------------- - - // needs to be public since it needs to be used from wxExecute() global func - void SetPid(long pid) { m_pid = pid; } - -protected: - void Init(wxEvtHandler *parent, int id, int flags); - - int m_id; - long m_pid; - - unsigned m_priority; - -#if wxUSE_STREAMS - // these streams are connected to stdout, stderr and stdin of the child - // process respectively (yes, m_inputStream corresponds to stdout -- very - // confusing but too late to change now) - wxInputStream *m_inputStream, - *m_errorStream; - wxOutputStream *m_outputStream; -#endif // wxUSE_STREAMS - - bool m_redirect; - - wxDECLARE_DYNAMIC_CLASS(wxProcess); - wxDECLARE_NO_COPY_CLASS(wxProcess); -}; - -// ---------------------------------------------------------------------------- -// wxProcess events -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_BASE wxProcessEvent; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_BASE, wxEVT_END_PROCESS, wxProcessEvent ); - -class WXDLLIMPEXP_BASE wxProcessEvent : public wxEvent -{ -public: - wxProcessEvent(int nId = 0, int pid = 0, int exitcode = 0) : wxEvent(nId) - { - m_eventType = wxEVT_END_PROCESS; - m_pid = pid; - m_exitcode = exitcode; - } - - // accessors - // PID of process which terminated - int GetPid() { return m_pid; } - - // the exit code - int GetExitCode() { return m_exitcode; } - - // implement the base class pure virtual - virtual wxEvent *Clone() const wxOVERRIDE { return new wxProcessEvent(*this); } - -public: - int m_pid, - m_exitcode; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxProcessEvent); -}; - -typedef void (wxEvtHandler::*wxProcessEventFunction)(wxProcessEvent&); - -#define wxProcessEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxProcessEventFunction, func) - -#define EVT_END_PROCESS(id, func) \ - wx__DECLARE_EVT1(wxEVT_END_PROCESS, id, wxProcessEventHandler(func)) - -#endif // _WX_PROCESSH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/progdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/progdlg.h deleted file mode 100644 index 087c75a3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/progdlg.h +++ /dev/null @@ -1,63 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/progdlg.h -// Purpose: Base header for wxProgressDialog -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROGDLG_H_BASE_ -#define _WX_PROGDLG_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_PROGRESSDLG - -/* - * wxProgressDialog flags - */ -#define wxPD_CAN_ABORT 0x0001 -#define wxPD_APP_MODAL 0x0002 -#define wxPD_AUTO_HIDE 0x0004 -#define wxPD_ELAPSED_TIME 0x0008 -#define wxPD_ESTIMATED_TIME 0x0010 -#define wxPD_SMOOTH 0x0020 -#define wxPD_REMAINING_TIME 0x0040 -#define wxPD_CAN_SKIP 0x0080 - - -#include "wx/generic/progdlgg.h" - -#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) - // The native implementation requires the use of threads and still has some - // problems, so it can be explicitly disabled. - #if wxUSE_THREADS && wxUSE_NATIVE_PROGRESSDLG - #define wxHAS_NATIVE_PROGRESSDIALOG - #include "wx/msw/progdlg.h" - #endif -#endif - -// If there is no native one, just use the generic version. -#ifndef wxHAS_NATIVE_PROGRESSDIALOG - class WXDLLIMPEXP_CORE wxProgressDialog - : public wxGenericProgressDialog - { - public: - wxProgressDialog( const wxString& title, const wxString& message, - int maximum = 100, - wxWindow *parent = NULL, - int style = wxPD_APP_MODAL | wxPD_AUTO_HIDE ) - : wxGenericProgressDialog( title, message, maximum, - parent, style ) - { } - - private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY( wxProgressDialog ); - }; -#endif // !wxHAS_NATIVE_PROGRESSDIALOG - -#endif // wxUSE_PROGRESSDLG - -#endif // _WX_PROGDLG_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propdlg.h deleted file mode 100644 index 1f91c6fb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propdlg.h +++ /dev/null @@ -1,18 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/propdlg.h -// Purpose: wxPropertySheetDialog base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROPDLG_H_BASE_ -#define _WX_PROPDLG_H_BASE_ - -#include "wx/generic/propdlg.h" - -#endif - // _WX_PROPDLG_H_BASE_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/advprops.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/advprops.h deleted file mode 100644 index 2973e67c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/advprops.h +++ /dev/null @@ -1,519 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/propgrid/advprops.h -// Purpose: wxPropertyGrid Advanced Properties (font, colour, etc.) -// Author: Jaakko Salli -// Modified by: -// Created: 2004-09-25 -// Copyright: (c) Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROPGRID_ADVPROPS_H_ -#define _WX_PROPGRID_ADVPROPS_H_ - -#include "wx/defs.h" - -#if wxUSE_PROPGRID - -#include "wx/propgrid/props.h" - -// ----------------------------------------------------------------------- - -// -// Additional Value Type Handlers -// -bool WXDLLIMPEXP_PROPGRID -operator==(const wxArrayInt& array1, const wxArrayInt& array2); - -// -// Additional Property Editors -// -#if wxUSE_SPINBTN -WX_PG_DECLARE_EDITOR_WITH_DECL(SpinCtrl,WXDLLIMPEXP_PROPGRID) -#endif - -#if wxUSE_DATEPICKCTRL -WX_PG_DECLARE_EDITOR_WITH_DECL(DatePickerCtrl,WXDLLIMPEXP_PROPGRID) -#endif - -// ----------------------------------------------------------------------- - - -// Web colour is currently unsupported -#define wxPG_COLOUR_WEB_BASE 0x10000 -//#define wxPG_TO_WEB_COLOUR(A) ((wxUint32)(A+wxPG_COLOUR_WEB_BASE)) - - -#define wxPG_COLOUR_CUSTOM 0xFFFFFF -#define wxPG_COLOUR_UNSPECIFIED (wxPG_COLOUR_CUSTOM+1) - -/** @class wxColourPropertyValue - - Because text, background and other colours tend to differ between - platforms, wxSystemColourProperty must be able to select between system - colour and, when necessary, to pick a custom one. wxSystemColourProperty - value makes this possible. -*/ -class WXDLLIMPEXP_PROPGRID wxColourPropertyValue : public wxObject -{ -public: - /** An integer value relating to the colour, and which exact - meaning depends on the property with which it is used. - - For wxSystemColourProperty: - - Any of wxSYS_COLOUR_XXX, or any web-colour ( use wxPG_TO_WEB_COLOUR - macro - (currently unsupported) ), or wxPG_COLOUR_CUSTOM. - - For custom colour properties without values array specified: - - index or wxPG_COLOUR_CUSTOM - - For custom colour properties <b>with</b> values array specified: - - m_arrValues[index] or wxPG_COLOUR_CUSTOM - */ - wxUint32 m_type; - - /** Resulting colour. Should be correct regardless of type. */ - wxColour m_colour; - - wxColourPropertyValue() - : wxObject() - { - m_type = 0; - } - - virtual ~wxColourPropertyValue() - { - } - - wxColourPropertyValue( const wxColourPropertyValue& v ) - : wxObject() - { - m_type = v.m_type; - m_colour = v.m_colour; - } - - void Init( wxUint32 type, const wxColour& colour ) - { - m_type = type; - m_colour = colour; - } - - wxColourPropertyValue( const wxColour& colour ) - : wxObject() - { - m_type = wxPG_COLOUR_CUSTOM; - m_colour = colour; - } - - wxColourPropertyValue( wxUint32 type ) - : wxObject() - { - m_type = type; - } - - wxColourPropertyValue( wxUint32 type, const wxColour& colour ) - : wxObject() - { - Init( type, colour ); - } - - void operator=(const wxColourPropertyValue& cpv) - { - if (this != &cpv) - Init( cpv.m_type, cpv.m_colour ); - } - -private: - wxDECLARE_DYNAMIC_CLASS(wxColourPropertyValue); -}; - - -bool WXDLLIMPEXP_PROPGRID -operator==(const wxColourPropertyValue&, const wxColourPropertyValue&); - -DECLARE_VARIANT_OBJECT_EXPORTED(wxColourPropertyValue, WXDLLIMPEXP_PROPGRID) - -// ----------------------------------------------------------------------- -// Declare part of custom colour property macro pairs. - -#if wxUSE_IMAGE - #include "wx/image.h" -#endif - -// ----------------------------------------------------------------------- - -/** @class wxFontProperty - @ingroup classes - Property representing wxFont. -*/ -class WXDLLIMPEXP_PROPGRID wxFontProperty : public wxPGProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxFontProperty) -public: - - wxFontProperty(const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxFont& value = wxFont()); - virtual ~wxFontProperty(); - virtual void OnSetValue() wxOVERRIDE; - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE; - virtual bool OnEvent( wxPropertyGrid* propgrid, - wxWindow* primary, wxEvent& event ) wxOVERRIDE; - virtual wxVariant ChildChanged( wxVariant& thisValue, - int childIndex, - wxVariant& childValue ) const wxOVERRIDE; - virtual void RefreshChildren() wxOVERRIDE; - -protected: -}; - -// ----------------------------------------------------------------------- - - -/** If set, then match from list is searched for a custom colour. */ -#define wxPG_PROP_TRANSLATE_CUSTOM wxPG_PROP_CLASS_SPECIFIC_1 - - -/** @class wxSystemColourProperty - @ingroup classes - Has dropdown list of wxWidgets system colours. Value used is - of wxColourPropertyValue type. -*/ -class WXDLLIMPEXP_PROPGRID wxSystemColourProperty : public wxEnumProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxSystemColourProperty) -public: - - wxSystemColourProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxColourPropertyValue& - value = wxColourPropertyValue() ); - virtual ~wxSystemColourProperty(); - - virtual void OnSetValue() wxOVERRIDE; - virtual bool IntToValue(wxVariant& variant, - int number, - int argFlags = 0) const wxOVERRIDE; - - /** - Override in derived class to customize how colours are printed as - strings. - */ - virtual wxString ColourToString( const wxColour& col, int index, - int argFlags = 0 ) const; - - /** Returns index of entry that triggers colour picker dialog - (default is last). - */ - virtual int GetCustomColourIndex() const; - - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE; - virtual bool StringToValue( wxVariant& variant, - const wxString& text, - int argFlags = 0 ) const wxOVERRIDE; - virtual bool OnEvent( wxPropertyGrid* propgrid, - wxWindow* primary, wxEvent& event ) wxOVERRIDE; - virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) wxOVERRIDE; - virtual wxSize OnMeasureImage( int item ) const wxOVERRIDE; - virtual void OnCustomPaint( wxDC& dc, - const wxRect& rect, wxPGPaintData& paintdata ) wxOVERRIDE; - - // Helper function to show the colour dialog - bool QueryColourFromUser( wxVariant& variant ) const; - - /** Default is to use wxSystemSettings::GetColour(index). Override to use - custom colour tables etc. - */ - virtual wxColour GetColour( int index ) const; - - wxColourPropertyValue GetVal( const wxVariant* pVariant = NULL ) const; - -protected: - - // Special constructors to be used by derived classes. - wxSystemColourProperty( const wxString& label, const wxString& name, - const char* const* labels, const long* values, wxPGChoices* choicesCache, - const wxColourPropertyValue& value ); - wxSystemColourProperty( const wxString& label, const wxString& name, - const char* const* labels, const long* values, wxPGChoices* choicesCache, - const wxColour& value ); - - void Init( int type, const wxColour& colour ); - - // Utility functions for internal use - virtual wxVariant DoTranslateVal( wxColourPropertyValue& v ) const; - wxVariant TranslateVal( wxColourPropertyValue& v ) const - { - return DoTranslateVal( v ); - } - wxVariant TranslateVal( int type, const wxColour& colour ) const - { - wxColourPropertyValue v(type, colour); - return DoTranslateVal( v ); - } - - // Translates colour to a int value, return wxNOT_FOUND if no match. - int ColToInd( const wxColour& colour ) const; -}; - -// ----------------------------------------------------------------------- - -class WXDLLIMPEXP_PROPGRID wxColourProperty : public wxSystemColourProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxColourProperty) -public: - wxColourProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxColour& value = *wxWHITE ); - virtual ~wxColourProperty(); - - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE; - virtual wxColour GetColour( int index ) const wxOVERRIDE; - -protected: - virtual wxVariant DoTranslateVal( wxColourPropertyValue& v ) const wxOVERRIDE; - -private: - void Init( wxColour colour ); -}; - -// ----------------------------------------------------------------------- - -/** @class wxCursorProperty - @ingroup classes - Property representing wxCursor. -*/ -class WXDLLIMPEXP_PROPGRID wxCursorProperty : public wxEnumProperty -{ - wxDECLARE_DYNAMIC_CLASS(wxCursorProperty); - - wxCursorProperty( const wxString& label= wxPG_LABEL, - const wxString& name= wxPG_LABEL, - int value = 0 ); - virtual ~wxCursorProperty(); - - virtual wxSize OnMeasureImage( int item ) const wxOVERRIDE; - virtual void OnCustomPaint( wxDC& dc, - const wxRect& rect, wxPGPaintData& paintdata ) wxOVERRIDE; -}; - -// ----------------------------------------------------------------------- - -#if wxUSE_IMAGE - -WXDLLIMPEXP_PROPGRID const wxString& wxPGGetDefaultImageWildcard(); - -/** @class wxImageFileProperty - @ingroup classes - Property representing image file(name). -*/ -class WXDLLIMPEXP_PROPGRID wxImageFileProperty : public wxFileProperty -{ - wxDECLARE_DYNAMIC_CLASS(wxImageFileProperty); -public: - - wxImageFileProperty( const wxString& label= wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxString& value = wxEmptyString); - virtual ~wxImageFileProperty(); - - virtual void OnSetValue() wxOVERRIDE; - - virtual wxSize OnMeasureImage( int item ) const wxOVERRIDE; - virtual void OnCustomPaint( wxDC& dc, - const wxRect& rect, wxPGPaintData& paintdata ) wxOVERRIDE; - -protected: - wxBitmap* m_pBitmap; // final thumbnail area - wxImage* m_pImage; // intermediate thumbnail area - -private: - // Initialize m_pImage using the current file name. - void LoadImageFromFile(); -}; - -#endif - -#if wxUSE_CHOICEDLG - -/** @class wxMultiChoiceProperty - @ingroup classes - Property that manages a value resulting from wxMultiChoiceDialog. Value is - array of strings. You can get value as array of choice values/indices by - calling wxMultiChoiceProperty::GetValueAsArrayInt(). - - <b>Supported special attributes:</b> - - "UserStringMode": If > 0, allow user to manually enter strings that are - not in the list of choices. If this value is 1, user strings are - preferably placed in front of valid choices. If value is 2, then those - strings will placed behind valid choices. -*/ -class WXDLLIMPEXP_PROPGRID wxMultiChoiceProperty : public wxPGProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxMultiChoiceProperty) -public: - - wxMultiChoiceProperty( const wxString& label, - const wxString& name, - const wxArrayString& strings, - const wxArrayString& value ); - wxMultiChoiceProperty( const wxString& label, - const wxString& name, - const wxPGChoices& choices, - const wxArrayString& value = wxArrayString() ); - - wxMultiChoiceProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxArrayString& value = wxArrayString() ); - - virtual ~wxMultiChoiceProperty(); - - virtual void OnSetValue() wxOVERRIDE; - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE; - virtual bool StringToValue(wxVariant& variant, - const wxString& text, - int argFlags = 0) const wxOVERRIDE; - virtual bool OnEvent( wxPropertyGrid* propgrid, - wxWindow* primary, wxEvent& event ) wxOVERRIDE; - - wxArrayInt GetValueAsArrayInt() const - { - return m_choices.GetValuesForStrings(m_value.GetArrayString()); - } - -protected: - - void GenerateValueAsString( wxVariant& value, wxString* target ) const; - - // Returns translation of values into string indices. - wxArrayInt GetValueAsIndices() const; - - wxArrayString m_valueAsStrings; // Value as array of strings - - // Cache displayed text since generating it is relatively complicated. - wxString m_display; -}; - -#endif // wxUSE_CHOICEDLG - -// ----------------------------------------------------------------------- - -#if wxUSE_DATETIME - -/** @class wxDateProperty - @ingroup classes - Property representing wxDateTime. - - <b>Supported special attributes:</b> - - "DateFormat": Determines displayed date format. - - "PickerStyle": Determines window style used with wxDatePickerCtrl. - Default is wxDP_DEFAULT | wxDP_SHOWCENTURY. Using wxDP_ALLOWNONE - enables additional support for unspecified property value. -*/ -class WXDLLIMPEXP_PROPGRID wxDateProperty : public wxPGProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxDateProperty) -public: - - wxDateProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxDateTime& value = wxDateTime() ); - virtual ~wxDateProperty(); - - virtual void OnSetValue() wxOVERRIDE; - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE; - virtual bool StringToValue(wxVariant& variant, - const wxString& text, - int argFlags = 0) const wxOVERRIDE; - - virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) wxOVERRIDE; - - void SetFormat( const wxString& format ) - { - m_format = format; - } - - const wxString& GetFormat() const - { - return m_format; - } - - void SetDateValue( const wxDateTime& dt ) - { - //m_valueDateTime = dt; - m_value = dt; - } - - wxDateTime GetDateValue() const - { - //return m_valueDateTime; - return m_value; - } - - long GetDatePickerStyle() const - { - return m_dpStyle; - } - -protected: - wxString m_format; - long m_dpStyle; // DatePicker style - - static wxString ms_defaultDateFormat; - static wxString DetermineDefaultDateFormat( bool showCentury ); -}; - -#endif // wxUSE_DATETIME - -// ----------------------------------------------------------------------- - -#if wxUSE_SPINBTN - -// -// Implement an editor control that allows using wxSpinCtrl (actually, a -// combination of wxTextCtrl and wxSpinButton) to edit value of wxIntProperty -// and wxFloatProperty (and similar). -// -// Note that new editor classes needs to be registered before use. This can be -// accomplished using wxPGRegisterEditorClass macro, which is used for SpinCtrl -// in wxPropertyGridInterface::RegisterAdditionalEditors (see below). -// Registration can also be performed in a constructor of a property that is -// likely to require the editor in question. -// - - -#include "wx/spinbutt.h" -#include "wx/propgrid/editors.h" - - -// NOTE: Regardless that this class inherits from a working editor, it has -// all necessary methods to work independently. wxTextCtrl stuff is only -// used for event handling here. -class WXDLLIMPEXP_PROPGRID wxPGSpinCtrlEditor : public wxPGTextCtrlEditor -{ - wxDECLARE_DYNAMIC_CLASS(wxPGSpinCtrlEditor); -public: - virtual ~wxPGSpinCtrlEditor(); - - wxString GetName() const wxOVERRIDE; - virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid, - wxPGProperty* property, - const wxPoint& pos, - const wxSize& size) const wxOVERRIDE; - virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property, - wxWindow* wnd, wxEvent& event ) const wxOVERRIDE; - -private: - mutable wxString m_tempString; -}; - -#endif // wxUSE_SPINBTN - -// ----------------------------------------------------------------------- - -#endif // wxUSE_PROPGRID - -#endif // _WX_PROPGRID_ADVPROPS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/editors.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/editors.h deleted file mode 100644 index 246409e9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/editors.h +++ /dev/null @@ -1,557 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/propgrid/editors.h -// Purpose: wxPropertyGrid editors -// Author: Jaakko Salli -// Modified by: -// Created: 2007-04-14 -// Copyright: (c) Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROPGRID_EDITORS_H_ -#define _WX_PROPGRID_EDITORS_H_ - -#include "wx/defs.h" - -#if wxUSE_PROPGRID - -class WXDLLIMPEXP_FWD_PROPGRID wxPGCell; -class WXDLLIMPEXP_FWD_PROPGRID wxPGProperty; -class WXDLLIMPEXP_FWD_PROPGRID wxPropertyGrid; - -// ----------------------------------------------------------------------- -// wxPGWindowList contains list of editor windows returned by CreateControls. - -class wxPGWindowList -{ -public: - wxPGWindowList() - { - m_primary = m_secondary = NULL; - } - - void SetSecondary( wxWindow* secondary ) { m_secondary = secondary; } - - wxWindow* m_primary; - wxWindow* m_secondary; - - wxPGWindowList( wxWindow* a ) - { - m_primary = a; - m_secondary = NULL; - } - wxPGWindowList( wxWindow* a, wxWindow* b ) - { - m_primary = a; - m_secondary = b; - } -}; - -// ----------------------------------------------------------------------- - -/** @class wxPGEditor - - Base class for custom wxPropertyGrid editors. - - @remarks - - Names of builtin property editors are: TextCtrl, Choice, - ComboBox, CheckBox, TextCtrlAndButton, and ChoiceAndButton. Additional - editors include SpinCtrl and DatePickerCtrl, but using them requires - calling wxPropertyGrid::RegisterAdditionalEditors() prior use. - - - Pointer to builtin editor is available as wxPGEditor_EditorName - (e.g. wxPGEditor_TextCtrl). - - - To add new editor you need to register it first using static function - wxPropertyGrid::RegisterEditorClass(), with code like this: - @code - wxPGEditor *editorPointer = wxPropertyGrid::RegisterEditorClass( - new MyEditorClass(), "MyEditor"); - @endcode - After that, wxPropertyGrid will take ownership of the given object, but - you should still store editorPointer somewhere, so you can pass it to - wxPGProperty::SetEditor(), or return it from - wxPGEditor::DoGetEditorClass(). - - @library{wxpropgrid} - @category{propgrid} -*/ -class WXDLLIMPEXP_PROPGRID wxPGEditor : public wxObject -{ - wxDECLARE_ABSTRACT_CLASS(wxPGEditor); -public: - - /** Constructor. */ - wxPGEditor() - : wxObject() - { - m_clientData = NULL; - } - - /** Destructor. */ - virtual ~wxPGEditor(); - - /** - Returns pointer to the name of the editor. For example, - wxPGEditor_TextCtrl has name "TextCtrl". If you don't need to access - your custom editor by string name, then you do not need to implement - this function. - */ - virtual wxString GetName() const; - - /** - Instantiates editor controls. - - @param propgrid - wxPropertyGrid to which the property belongs (use as parent for - control). - @param property - Property for which this method is called. - @param pos - Position, inside wxPropertyGrid, to create control(s) to. - @param size - Initial size for control(s). - - @remarks - - Unlike in previous version of wxPropertyGrid, it is no longer - necessary to call wxEvtHandler::Connect() for interesting editor - events. Instead, all events from control are now automatically - forwarded to wxPGEditor::OnEvent() and wxPGProperty::OnEvent(). - */ - virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid, - wxPGProperty* property, - const wxPoint& pos, - const wxSize& size) const = 0; - - /** Loads value from property to the control. */ - virtual void UpdateControl( wxPGProperty* property, - wxWindow* ctrl ) const = 0; - - /** - Used to get the renderer to draw the value with when the control is - hidden. - - Default implementation returns g_wxPGDefaultRenderer. - */ - //virtual wxPGCellRenderer* GetCellRenderer() const; - - /** Draws value for given property. - */ - virtual void DrawValue( wxDC& dc, - const wxRect& rect, - wxPGProperty* property, - const wxString& text ) const; - - /** Handles events. Returns true if value in control was modified - (see wxPGProperty::OnEvent for more information). - - @remarks wxPropertyGrid will automatically unfocus the editor when - wxEVT_TEXT_ENTER is received and when it results in - property value being modified. This happens regardless of - editor type (i.e. behaviour is same for any wxTextCtrl and - wxComboBox based editor). - */ - virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property, - wxWindow* wnd_primary, wxEvent& event ) const = 0; - - /** Returns value from control, via parameter 'variant'. - Usually ends up calling property's StringToValue or IntToValue. - Returns true if value was different. - */ - virtual bool GetValueFromControl( wxVariant& variant, - wxPGProperty* property, - wxWindow* ctrl ) const; - - /** - Sets new appearance for the control. Default implementation - sets foreground colour, background colour, font, plus text - for wxTextCtrl and wxComboCtrl. - - @param appearance - New appearance to be applied. - - @param oldAppearance - Previously applied appearance. Used to detect which - control attributes need to be changed (e.g. so we only - change background colour if really needed). - - @param unspecified - @true if the new appearance represents an unspecified - property value. - */ - virtual void SetControlAppearance( wxPropertyGrid* pg, - wxPGProperty* property, - wxWindow* ctrl, - const wxPGCell& appearance, - const wxPGCell& oldAppearance, - bool unspecified ) const; - - /** - Sets value in control to unspecified. - */ - virtual void SetValueToUnspecified( wxPGProperty* property, - wxWindow* ctrl ) const; - - /** Sets control's value specifically from string. */ - virtual void SetControlStringValue( wxPGProperty* property, - wxWindow* ctrl, - const wxString& txt ) const; - - /** Sets control's value specifically from int (applies to choice etc.). */ - virtual void SetControlIntValue( wxPGProperty* property, - wxWindow* ctrl, - int value ) const; - - /** Inserts item to existing control. Index -1 means appending. - Default implementation does nothing. Returns index of item added. - */ - virtual int InsertItem( wxWindow* ctrl, - const wxString& label, - int index ) const; - - /** Deletes item from existing control. - Default implementation does nothing. - */ - virtual void DeleteItem( wxWindow* ctrl, int index ) const; - - /** Extra processing when control gains focus. For example, wxTextCtrl - based controls should select all text. - */ - virtual void OnFocus( wxPGProperty* property, wxWindow* wnd ) const; - - /** Returns true if control itself can contain the custom image. Default is - to return false. - */ - virtual bool CanContainCustomImage() const; - - // - // This member is public so scripting language bindings - // wrapper code can access it freely. - void* m_clientData; -}; - - -#define WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(EDITOR,CLASSNAME,BASECLASS) \ -wxIMPLEMENT_DYNAMIC_CLASS(CLASSNAME, BASECLASS); \ -wxString CLASSNAME::GetName() const \ -{ \ - return wxS(#EDITOR); \ -} \ -wxPGEditor* wxPGEditor_##EDITOR = NULL; - - -// -// Following are the built-in editor classes. -// - -class WXDLLIMPEXP_PROPGRID wxPGTextCtrlEditor : public wxPGEditor -{ - wxDECLARE_DYNAMIC_CLASS(wxPGTextCtrlEditor); -public: - wxPGTextCtrlEditor() {} - virtual ~wxPGTextCtrlEditor(); - - virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid, - wxPGProperty* property, - const wxPoint& pos, - const wxSize& size) const wxOVERRIDE; - virtual void UpdateControl( wxPGProperty* property, - wxWindow* ctrl ) const wxOVERRIDE; - virtual bool OnEvent( wxPropertyGrid* propgrid, - wxPGProperty* property, - wxWindow* primaryCtrl, - wxEvent& event ) const wxOVERRIDE; - virtual bool GetValueFromControl( wxVariant& variant, - wxPGProperty* property, - wxWindow* ctrl ) const wxOVERRIDE; - - virtual wxString GetName() const wxOVERRIDE; - - //virtual wxPGCellRenderer* GetCellRenderer() const; - virtual void SetControlStringValue( wxPGProperty* property, - wxWindow* ctrl, - const wxString& txt ) const wxOVERRIDE; - virtual void OnFocus( wxPGProperty* property, wxWindow* wnd ) const wxOVERRIDE; - - // Provided so that, for example, ComboBox editor can use the same code - // (multiple inheritance would get way too messy). - static bool OnTextCtrlEvent( wxPropertyGrid* propgrid, - wxPGProperty* property, - wxWindow* ctrl, - wxEvent& event ); - - static bool GetTextCtrlValueFromControl( wxVariant& variant, - wxPGProperty* property, - wxWindow* ctrl ); - -}; - - -class WXDLLIMPEXP_PROPGRID wxPGChoiceEditor : public wxPGEditor -{ - wxDECLARE_DYNAMIC_CLASS(wxPGChoiceEditor); -public: - wxPGChoiceEditor() {} - virtual ~wxPGChoiceEditor(); - - virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid, - wxPGProperty* property, - const wxPoint& pos, - const wxSize& size) const wxOVERRIDE; - virtual void UpdateControl( wxPGProperty* property, - wxWindow* ctrl ) const wxOVERRIDE; - virtual bool OnEvent( wxPropertyGrid* propgrid, - wxPGProperty* property, - wxWindow* primaryCtrl, - wxEvent& event ) const wxOVERRIDE; - virtual bool GetValueFromControl( wxVariant& variant, - wxPGProperty* property, - wxWindow* ctrl ) const wxOVERRIDE; - virtual void SetValueToUnspecified( wxPGProperty* property, - wxWindow* ctrl ) const wxOVERRIDE; - virtual wxString GetName() const wxOVERRIDE; - - virtual void SetControlIntValue( wxPGProperty* property, - wxWindow* ctrl, - int value ) const wxOVERRIDE; - virtual void SetControlStringValue( wxPGProperty* property, - wxWindow* ctrl, - const wxString& txt ) const wxOVERRIDE; - - virtual int InsertItem( wxWindow* ctrl, - const wxString& label, - int index ) const wxOVERRIDE; - virtual void DeleteItem( wxWindow* ctrl, int index ) const wxOVERRIDE; - virtual bool CanContainCustomImage() const wxOVERRIDE; - - // CreateControls calls this with CB_READONLY in extraStyle - wxWindow* CreateControlsBase( wxPropertyGrid* propgrid, - wxPGProperty* property, - const wxPoint& pos, - const wxSize& sz, - long extraStyle ) const; - -}; - - -class WXDLLIMPEXP_PROPGRID wxPGComboBoxEditor : public wxPGChoiceEditor -{ - wxDECLARE_DYNAMIC_CLASS(wxPGComboBoxEditor); -public: - wxPGComboBoxEditor() {} - virtual ~wxPGComboBoxEditor(); - - virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid, - wxPGProperty* property, - const wxPoint& pos, - const wxSize& size) const wxOVERRIDE; - - virtual wxString GetName() const wxOVERRIDE; - - virtual void UpdateControl( wxPGProperty* property, wxWindow* ctrl ) const wxOVERRIDE; - - virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property, - wxWindow* ctrl, wxEvent& event ) const wxOVERRIDE; - - virtual bool GetValueFromControl( wxVariant& variant, - wxPGProperty* property, - wxWindow* ctrl ) const wxOVERRIDE; - - virtual void OnFocus( wxPGProperty* property, wxWindow* wnd ) const wxOVERRIDE; - -}; - - -class WXDLLIMPEXP_PROPGRID wxPGChoiceAndButtonEditor : public wxPGChoiceEditor -{ -public: - wxPGChoiceAndButtonEditor() {} - virtual ~wxPGChoiceAndButtonEditor(); - virtual wxString GetName() const wxOVERRIDE; - - virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid, - wxPGProperty* property, - const wxPoint& pos, - const wxSize& size) const wxOVERRIDE; - - wxDECLARE_DYNAMIC_CLASS(wxPGChoiceAndButtonEditor); -}; - -class WXDLLIMPEXP_PROPGRID -wxPGTextCtrlAndButtonEditor : public wxPGTextCtrlEditor -{ -public: - wxPGTextCtrlAndButtonEditor() {} - virtual ~wxPGTextCtrlAndButtonEditor(); - virtual wxString GetName() const wxOVERRIDE; - - virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid, - wxPGProperty* property, - const wxPoint& pos, - const wxSize& size) const wxOVERRIDE; - - wxDECLARE_DYNAMIC_CLASS(wxPGTextCtrlAndButtonEditor); -}; - - -#if wxPG_INCLUDE_CHECKBOX - -// -// Use custom check box code instead of native control -// for cleaner (i.e. more integrated) look. -// -class WXDLLIMPEXP_PROPGRID wxPGCheckBoxEditor : public wxPGEditor -{ - wxDECLARE_DYNAMIC_CLASS(wxPGCheckBoxEditor); -public: - wxPGCheckBoxEditor() {} - virtual ~wxPGCheckBoxEditor(); - - virtual wxString GetName() const wxOVERRIDE; - virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid, - wxPGProperty* property, - const wxPoint& pos, - const wxSize& size) const wxOVERRIDE; - virtual void UpdateControl( wxPGProperty* property, - wxWindow* ctrl ) const wxOVERRIDE; - virtual bool OnEvent( wxPropertyGrid* propgrid, - wxPGProperty* property, - wxWindow* primaryCtrl, - wxEvent& event ) const wxOVERRIDE; - virtual bool GetValueFromControl( wxVariant& variant, - wxPGProperty* property, - wxWindow* ctrl ) const wxOVERRIDE; - virtual void SetValueToUnspecified( wxPGProperty* property, - wxWindow* ctrl ) const wxOVERRIDE; - - virtual void DrawValue( wxDC& dc, - const wxRect& rect, - wxPGProperty* property, - const wxString& text ) const wxOVERRIDE; - //virtual wxPGCellRenderer* GetCellRenderer() const; - - virtual void SetControlIntValue( wxPGProperty* property, - wxWindow* ctrl, - int value ) const wxOVERRIDE; -}; - -#endif - - -// ----------------------------------------------------------------------- -// Editor class registration macro (mostly for internal use) - -#define wxPGRegisterEditorClass(EDITOR) \ - if ( wxPGEditor_##EDITOR == NULL ) \ - { \ - wxPGEditor_##EDITOR = wxPropertyGrid::RegisterEditorClass( \ - new wxPG##EDITOR##Editor ); \ - } - -// ----------------------------------------------------------------------- - -/** @class wxPGEditorDialogAdapter - - Derive a class from this to adapt an existing editor dialog or function to - be used when editor button of a property is pushed. - - You only need to derive class and implement DoShowDialog() to create and - show the dialog, and finally submit the value returned by the dialog - via SetValue(). - - @library{wxpropgrid} - @category{propgrid} -*/ -class WXDLLIMPEXP_PROPGRID wxPGEditorDialogAdapter : public wxObject -{ - wxDECLARE_ABSTRACT_CLASS(wxPGEditorDialogAdapter); -public: - wxPGEditorDialogAdapter() - : wxObject() - { - m_clientData = NULL; - } - - virtual ~wxPGEditorDialogAdapter() { } - - bool ShowDialog( wxPropertyGrid* propGrid, wxPGProperty* property ); - - virtual bool DoShowDialog( wxPropertyGrid* propGrid, - wxPGProperty* property ) = 0; - - void SetValue( wxVariant value ) - { - m_value = value; - } - - /** - This method is typically only used if deriving class from existing - adapter with value conversion purposes. - */ - wxVariant& GetValue() { return m_value; } - - // - // This member is public so scripting language bindings - // wrapper code can access it freely. - void* m_clientData; - -private: - wxVariant m_value; -}; - -// ----------------------------------------------------------------------- - - -/** @class wxPGMultiButton - - This class can be used to have multiple buttons in a property editor. - You will need to create a new property editor class, override - CreateControls, and have it return wxPGMultiButton instance in - wxPGWindowList::SetSecondary(). -*/ -class WXDLLIMPEXP_PROPGRID wxPGMultiButton : public wxWindow -{ -public: - wxPGMultiButton( wxPropertyGrid* pg, const wxSize& sz ); - virtual ~wxPGMultiButton() {} - - wxWindow* GetButton( unsigned int i ) { return (wxWindow*) m_buttons[i]; } - const wxWindow* GetButton( unsigned int i ) const - { return (const wxWindow*) m_buttons[i]; } - - /** Utility function to be used in event handlers. - */ - int GetButtonId( unsigned int i ) const { return GetButton(i)->GetId(); } - - /** Returns number of buttons. - */ - unsigned int GetCount() const { return (unsigned int) m_buttons.size(); } - - void Add( const wxString& label, int id = -2 ); -#if wxUSE_BMPBUTTON - void Add( const wxBitmap& bitmap, int id = -2 ); -#endif - - wxSize GetPrimarySize() const - { - return wxSize(m_fullEditorSize.x - m_buttonsWidth, m_fullEditorSize.y); - } - - void Finalize( wxPropertyGrid* propGrid, const wxPoint& pos ); - -protected: - - void DoAddButton( wxWindow* button, const wxSize& sz ); - - int GenId( int id ) const; - - wxArrayPtrVoid m_buttons; - wxSize m_fullEditorSize; - int m_buttonsWidth; -}; - -// ----------------------------------------------------------------------- - -#endif // wxUSE_PROPGRID - -#endif // _WX_PROPGRID_EDITORS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/manager.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/manager.h deleted file mode 100644 index d874514b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/manager.h +++ /dev/null @@ -1,780 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/propgrid/manager.h -// Purpose: wxPropertyGridManager -// Author: Jaakko Salli -// Modified by: -// Created: 2005-01-14 -// Copyright: (c) Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROPGRID_MANAGER_H_ -#define _WX_PROPGRID_MANAGER_H_ - -#include "wx/defs.h" - -#if wxUSE_PROPGRID - -#include "wx/propgrid/propgrid.h" - -#include "wx/dcclient.h" -#include "wx/scrolwin.h" -#include "wx/toolbar.h" -#include "wx/stattext.h" -#include "wx/button.h" -#include "wx/textctrl.h" -#include "wx/dialog.h" -#include "wx/headerctrl.h" - -// ----------------------------------------------------------------------- - -#ifndef SWIG -extern WXDLLIMPEXP_DATA_PROPGRID(const char) wxPropertyGridManagerNameStr[]; -#endif - -/** @class wxPropertyGridPage - - Holder of property grid page information. You can subclass this and - give instance in wxPropertyGridManager::AddPage. It inherits from - wxEvtHandler and can be used to process events specific to this - page (id of events will still be same as manager's). If you don't - want to use it to process all events of the page, you need to - return false in the derived wxPropertyGridPage::IsHandlingAllEvents. - - Please note that wxPropertyGridPage lacks many non-const property - manipulation functions found in wxPropertyGridManager. Please use - parent manager (m_manager member variable) when needed. - - Please note that most member functions are inherited and as such not - documented on this page. This means you will probably also want to read - wxPropertyGridInterface class reference. - - @section propgridpage_event_handling Event Handling - - wxPropertyGridPage receives events emitted by its wxPropertyGridManager, but - only those events that are specific to that page. If - wxPropertyGridPage::IsHandlingAllEvents returns false, then unhandled - events are sent to the manager's parent, as usual. - - See @ref propgrid_event_handling "wxPropertyGrid Event Handling" - for more information. - - @library{wxpropgrid} - @category{propgrid} -*/ -class WXDLLIMPEXP_PROPGRID wxPropertyGridPage : public wxEvtHandler, - public wxPropertyGridInterface, - public wxPropertyGridPageState -{ - friend class wxPropertyGridManager; - wxDECLARE_CLASS(wxPropertyGridPage); -public: - - wxPropertyGridPage(); - virtual ~wxPropertyGridPage(); - - /** Deletes all properties on page. - */ - virtual void Clear() wxOVERRIDE; - - /** - Reduces column sizes to minimum possible that contents are still - visibly (naturally some margin space will be applied as well). - - @return - Minimum size for the page to still display everything. - - @remarks - This function only works properly if size of containing grid was - already fairly large. - - Note that you can also get calculated column widths by calling - GetColumnWidth() immediately after this function returns. - */ - wxSize FitColumns(); - - /** Returns page index in manager; - */ - inline int GetIndex() const; - - /** Returns x-coordinate position of splitter on a page. - */ - int GetSplitterPosition( int col = 0 ) const - { return GetStatePtr()->DoGetSplitterPosition(col); } - - /** Returns "root property". It does not have name, etc. and it is not - visible. It is only useful for accessing its children. - */ - wxPGProperty* GetRoot() const { return GetStatePtr()->DoGetRoot(); } - - /** Return pointer to contained property grid state. - */ - wxPropertyGridPageState* GetStatePtr() - { - return this; - } - - /** Return pointer to contained property grid state. - */ - const wxPropertyGridPageState* GetStatePtr() const - { - return this; - } - - /** - Returns id of the tool bar item that represents this page on - wxPropertyGridManager's wxToolBar. - */ - int GetToolId() const - { - return m_toolId; - } - - /** Do any member initialization in this method. - @remarks - - Called every time the page is added into a manager. - - You can add properties to the page here. - */ - virtual void Init() {} - - /** Return false here to indicate unhandled events should be - propagated to manager's parent, as normal. - */ - virtual bool IsHandlingAllEvents() const { return true; } - - /** Called every time page is about to be shown. - Useful, for instance, creating properties just-in-time. - */ - virtual void OnShow(); - - virtual void RefreshProperty( wxPGProperty* p ) wxOVERRIDE; - - /** Sets splitter position on page. - @remarks - Splitter position cannot exceed grid size, and therefore setting it - during form creation may fail as initial grid size is often smaller - than desired splitter position, especially when sizers are being used. - */ - void SetSplitterPosition( int splitterPos, int col = 0 ); - -#if WXWIN_COMPATIBILITY_3_0 - // To avoid ambiguity between functions inherited - // from both wxPropertyGridInterface and wxPropertyGridPageState - using wxPropertyGridInterface::GetPropertyByLabel; -#endif // WXWIN_COMPATIBILITY_3_0 - -protected: - - /** Propagate to other pages. - */ - virtual void DoSetSplitterPosition( int pos, - int splitterColumn = 0, - int flags = wxPG_SPLITTER_REFRESH ) wxOVERRIDE; - - /** Page label (may be referred as name in some parts of documentation). - Can be set in constructor, or passed in - wxPropertyGridManager::AddPage(), but *not* in both. - */ - wxString m_label; - - //virtual bool ProcessEvent( wxEvent& event ); - - wxPropertyGridManager* m_manager; - - // Toolbar tool id. Note that this is only valid when the tool bar - // exists. - int m_toolId; - -private: - bool m_isDefault; // is this base page object? - - wxDECLARE_EVENT_TABLE(); -}; - -// ----------------------------------------------------------------------- - -#if wxUSE_HEADERCTRL -class wxPGHeaderCtrl; -#endif - - -/** @class wxPropertyGridManager - - wxPropertyGridManager is an efficient multi-page version of wxPropertyGrid, - which can optionally have toolbar for mode and page selection, and help - text box. - Use window flags to select components to include. - - @section propgridmanager_window_styles_ Window Styles - - See @ref propgrid_window_styles. - - @section propgridmanager_event_handling Event Handling - - See @ref propgrid_event_handling "wxPropertyGrid Event Handling" - for more information. - - @library{wxpropgrid} - @category{propgrid} -*/ -class WXDLLIMPEXP_PROPGRID - wxPropertyGridManager : public wxPanel, public wxPropertyGridInterface -{ - wxDECLARE_CLASS(wxPropertyGridManager); - friend class wxPropertyGridPage; -public: - -#ifndef SWIG - /** - Two step constructor. - Call Create when this constructor is called to build up the - wxPropertyGridManager. - */ - wxPropertyGridManager(); -#endif - - /** The default constructor. The styles to be used are styles valid for - the wxWindow. - @see @link wndflags Additional Window Styles@endlink - */ - wxPropertyGridManager( wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxPGMAN_DEFAULT_STYLE, - const wxString& name = wxPropertyGridManagerNameStr ); - - /** Destructor */ - virtual ~wxPropertyGridManager(); - - /** Creates new property page. Note that the first page is not created - automatically. - @param label - A label for the page. This may be shown as a toolbar tooltip etc. - @param bmp - Bitmap image for toolbar. If wxNullBitmap is used, then a built-in - default image is used. - @param pageObj - wxPropertyGridPage instance. Manager will take ownership of this object. - NULL indicates that a default page instance should be created. - - @return - Returns pointer to created page. - - @remarks - If toolbar is used, it is highly recommended that the pages are - added when the toolbar is not turned off using window style flag - switching. - */ - wxPropertyGridPage* AddPage( const wxString& label = wxEmptyString, - const wxBitmap& bmp = wxNullBitmap, - wxPropertyGridPage* pageObj = NULL ) - { - return InsertPage(-1, label, bmp, pageObj); - } - - /** Deletes all all properties and all pages. - */ - virtual void Clear() wxOVERRIDE; - - /** Deletes all properties on given page. - */ - void ClearPage( int page ); - - /** Forces updating the value of property from the editor control. - Returns true if DoPropertyChanged was actually called. - */ - bool CommitChangesFromEditor( wxUint32 flags = 0 ) - { - return m_pPropGrid->CommitChangesFromEditor(flags); - } - - /** - Two step creation. - Whenever the control is created without any parameters, use Create to - actually create it. Don't access the control's public methods before - this is called. - @see @link wndflags Additional Window Styles@endlink - */ - bool Create( wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxPGMAN_DEFAULT_STYLE, - const wxString& name = wxPropertyGridManagerNameStr ); - - /** - Enables or disables (shows/hides) categories according to parameter - enable. - - WARNING: Not tested properly, use at your own risk. - */ - bool EnableCategories( bool enable ) - { - long fl = m_windowStyle | wxPG_HIDE_CATEGORIES; - if ( enable ) fl = m_windowStyle & ~(wxPG_HIDE_CATEGORIES); - SetWindowStyleFlag(fl); - return true; - } - - /** Selects page, scrolls and/or expands items to ensure that the - given item is visible. Returns true if something was actually done. - */ - bool EnsureVisible( wxPGPropArg id ); - - /** Returns number of columns on given page. By the default, - returns number of columns on current page. */ - int GetColumnCount( int page = -1 ) const; - - /** Returns height of the description text box. */ - int GetDescBoxHeight() const; - - /** Returns pointer to the contained wxPropertyGrid. This does not change - after wxPropertyGridManager has been created, so you can safely obtain - pointer once and use it for the entire lifetime of the instance. - */ - wxPropertyGrid* GetGrid() - { - wxASSERT(m_pPropGrid); - return m_pPropGrid; - } - - const wxPropertyGrid* GetGrid() const - { - wxASSERT(m_pPropGrid); - return (const wxPropertyGrid*)m_pPropGrid; - } - - /** Returns iterator class instance. - @remarks - Calling this method in wxPropertyGridManager causes run-time assertion - failure. Please only iterate through individual pages or use - CreateVIterator(). - */ - wxPropertyGridIterator GetIterator( int flags = wxPG_ITERATE_DEFAULT, - wxPGProperty* firstProp = NULL ) - { - wxFAIL_MSG( wxS("Please only iterate through individual pages ") - wxS("or use CreateVIterator()") ); - return wxPropertyGridInterface::GetIterator( flags, firstProp ); - } - - wxPropertyGridConstIterator - GetIterator(int flags = wxPG_ITERATE_DEFAULT, - wxPGProperty* firstProp = NULL) const - { - wxFAIL_MSG( wxS("Please only iterate through individual pages ") - wxS("or use CreateVIterator()") ); - return wxPropertyGridInterface::GetIterator( flags, firstProp ); - } - - /** Returns iterator class instance. - @remarks - Calling this method in wxPropertyGridManager causes run-time assertion - failure. Please only iterate through individual pages or use - CreateVIterator(). - */ - wxPropertyGridIterator GetIterator( int flags, int startPos ) - { - wxFAIL_MSG( wxS("Please only iterate through individual pages ") - wxS("or use CreateVIterator()") ); - - return wxPropertyGridInterface::GetIterator( flags, startPos ); - } - - wxPropertyGridConstIterator GetIterator( int flags, int startPos ) const - { - wxFAIL_MSG( wxS("Please only iterate through individual pages ") - wxS("or use CreateVIterator()") ); - return wxPropertyGridInterface::GetIterator( flags, startPos ); - } - - /** Similar to GetIterator, but instead returns wxPGVIterator instance, - which can be useful for forward-iterating through arbitrary property - containers. - */ - virtual wxPGVIterator GetVIterator( int flags ) const wxOVERRIDE; - - /** Returns currently selected page. - */ - wxPropertyGridPage* GetCurrentPage() const - { - return GetPage(m_selPage); - } - - /** Returns page object for given page index. - */ - wxPropertyGridPage* GetPage( unsigned int ind ) const - { - return m_arrPages[ind]; - } - - /** Returns page object for given page name. - */ - wxPropertyGridPage* GetPage( const wxString& name ) const - { - return GetPage(GetPageByName(name)); - } - - /** - Returns index for a page name. - - If no match is found, wxNOT_FOUND is returned. - */ - int GetPageByName( const wxString& name ) const; - - /** Returns index for a relevant propertygrid state. - - If no match is found, wxNOT_FOUND is returned. - */ - int GetPageByState( const wxPropertyGridPageState* pstate ) const; - -protected: - /** Returns wxPropertyGridPageState of given page, current page's for -1. - */ - virtual wxPropertyGridPageState* GetPageState( int page ) const wxOVERRIDE; - -public: - /** Returns number of managed pages. */ - size_t GetPageCount() const; - - /** Returns name of given page. */ - const wxString& GetPageName( int index ) const; - - /** Returns "root property" of the given page. It does not have name, etc. - and it is not visible. It is only useful for accessing its children. - */ - wxPGProperty* GetPageRoot( int index ) const; - - /** Returns index to currently selected page. */ - int GetSelectedPage() const { return m_selPage; } - - /** Alias for GetSelection(). */ - wxPGProperty* GetSelectedProperty() const - { - return GetSelection(); - } - - /** Shortcut for GetGrid()->GetSelection(). */ - wxPGProperty* GetSelection() const - { - return m_pPropGrid->GetSelection(); - } - -#if wxUSE_TOOLBAR - /** Returns a pointer to the toolbar currently associated with the - wxPropertyGridManager (if any). */ - wxToolBar* GetToolBar() const { return m_pToolbar; } -#endif // wxUSE_TOOLBAR - - /** Creates new property page. Note that the first page is not created - automatically. - @param index - Add to this position. -1 will add as the last item. - @param label - A label for the page. This may be shown as a toolbar tooltip etc. - @param bmp - Bitmap image for toolbar. If wxNullBitmap is used, then a built-in - default image is used. - @param pageObj - wxPropertyGridPage instance. Manager will take ownership of this object. - If NULL, default page object is constructed. - - @return - Returns pointer to created page. - */ - virtual wxPropertyGridPage* InsertPage( int index, - const wxString& label, - const wxBitmap& bmp = wxNullBitmap, - wxPropertyGridPage* pageObj = NULL ); - - /** - Returns true if any property on any page has been modified by the user. - */ - bool IsAnyModified() const; - - /** - Returns true if any property on given page has been modified by the - user. - */ - bool IsPageModified( size_t index ) const; - - /** - Returns true if property is selected. Since selection is page - based, this function checks every page in the manager. - */ - virtual bool IsPropertySelected( wxPGPropArg id ) const; - - virtual void Refresh( bool eraseBackground = true, - const wxRect* rect = (const wxRect*) NULL ) wxOVERRIDE; - - /** Removes a page. - @return - Returns false if it was not possible to remove page in question. - */ - virtual bool RemovePage( int page ); - - /** Select and displays a given page. - - @param index - Index of page being selected. Can be -1 to select nothing. - */ - void SelectPage( int index ); - - /** Select and displays a given page (by label). */ - void SelectPage( const wxString& label ) - { - int index = GetPageByName(label); - wxCHECK_RET( index >= 0, wxS("No page with such name") ); - SelectPage( index ); - } - - /** Select and displays a given page. */ - void SelectPage( wxPropertyGridPage* ptr ) - { - SelectPage( GetPageByState(ptr) ); - } - - /** Select a property. */ - bool SelectProperty( wxPGPropArg id, bool focus = false ) - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false) - unsigned int flags = wxPG_SEL_DONT_SEND_EVENT; - if ( focus ) - flags |= wxPG_SEL_FOCUS; - - return p->GetParentState()->DoSelectProperty(p, flags); - } - -#if wxUSE_HEADERCTRL - /** - Sets a column title. Default title for column 0 is "Property", - and "Value" for column 1. - - @remarks If header is not shown yet, then calling this - member function will make it visible. - */ - void SetColumnTitle( int idx, const wxString& title ); -#endif // wxUSE_HEADERCTRL - - /** - Sets number of columns on given page (default is current page). - - @remarks If you use header, then you should always use this - member function to set the column count, instead of - ones present in wxPropertyGrid or wxPropertyGridPage. - */ - void SetColumnCount( int colCount, int page = -1 ); - - /** Sets label and text in description box. - */ - void SetDescription( const wxString& label, const wxString& content ); - - /** Sets y coordinate of the description box splitter. */ - void SetDescBoxHeight( int ht, bool refresh = true ); - - /** Moves splitter as left as possible, while still allowing all - labels to be shown in full. - @param subProps - If false, will still allow sub-properties (ie. properties which - parent is not root or category) to be cropped. - @param allPages - If true, takes labels on all pages into account. - */ - void SetSplitterLeft( bool subProps = false, bool allPages = true ); - - /** Moves splitter as left as possible on an individual page, while still allowing all - labels to be shown in full. - */ - void SetPageSplitterLeft(int page, bool subProps = false); - - /** - Sets splitter position on individual page. - - @remarks If you use header, then you should always use this - member function to set the splitter position, instead of - ones present in wxPropertyGrid or wxPropertyGridPage. - */ - void SetPageSplitterPosition( int page, int pos, int column = 0 ); - - /** - Sets splitter position for all pages. - - @remarks Splitter position cannot exceed grid size, and therefore - setting it during form creation may fail as initial grid - size is often smaller than desired splitter position, - especially when sizers are being used. - - If you use header, then you should always use this - member function to set the splitter position, instead of - ones present in wxPropertyGrid or wxPropertyGridPage. - */ - void SetSplitterPosition( int pos, int column = 0 ); - -#if wxUSE_HEADERCTRL - /** - Show or hide the property grid header control. It is hidden - by the default. - - @remarks Grid may look better if you use wxPG_NO_INTERNAL_BORDER - window style when showing a header. - */ - void ShowHeader(bool show = true); -#endif - -protected: - - // - // Subclassing helpers - // - - /** - Creates property grid for the manager. Reimplement in derived class to - use subclassed wxPropertyGrid. However, if you do this then you - must also use the two-step construction (i.e. default constructor and - Create() instead of constructor with arguments) when creating the - manager. - */ - virtual wxPropertyGrid* CreatePropertyGrid() const; - -public: - virtual void RefreshProperty( wxPGProperty* p ) wxOVERRIDE; - - // - // Overridden functions - no documentation required. - // - - void SetId( wxWindowID winid ) wxOVERRIDE; - virtual void SetExtraStyle ( long exStyle ) wxOVERRIDE; - virtual bool SetFont ( const wxFont& font ) wxOVERRIDE; - virtual void SetWindowStyleFlag ( long style ) wxOVERRIDE; - virtual bool Reparent( wxWindowBase *newParent ) wxOVERRIDE; - -protected: - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - virtual void DoFreeze() wxOVERRIDE; - virtual void DoThaw() wxOVERRIDE; - - // - // Event handlers - // - void OnMouseMove( wxMouseEvent &event ); - void OnMouseClick( wxMouseEvent &event ); - void OnMouseUp( wxMouseEvent &event ); - void OnMouseEntry( wxMouseEvent &event ); - - void OnPaint( wxPaintEvent &event ); - -#if wxUSE_TOOLBAR - void OnToolbarClick( wxCommandEvent &event ); -#endif - void OnResize( wxSizeEvent& event ); - void OnPropertyGridSelect( wxPropertyGridEvent& event ); - void OnPGColDrag( wxPropertyGridEvent& event ); - - - wxPropertyGrid* m_pPropGrid; - - wxVector<wxPropertyGridPage*> m_arrPages; - -#if wxUSE_TOOLBAR - wxToolBar* m_pToolbar; -#endif -#if wxUSE_HEADERCTRL - wxPGHeaderCtrl* m_pHeaderCtrl; -#endif - wxStaticText* m_pTxtHelpCaption; - wxStaticText* m_pTxtHelpContent; - - wxPropertyGridPage* m_emptyPage; - - wxArrayString m_columnLabels; - - long m_iFlags; - - // Selected page index. - int m_selPage; - - int m_width; - - int m_height; - - int m_extraHeight; - - int m_splitterY; - - int m_splitterHeight; - - int m_dragOffset; - - wxCursor m_cursorSizeNS; - - int m_nextDescBoxSize; - - // Toolbar tool ids for categorized and alphabetic mode selectors. - int m_categorizedModeToolId; - int m_alphabeticModeToolId; - - unsigned char m_dragStatus; - - unsigned char m_onSplitter; - - bool m_showHeader; - - virtual wxPGProperty* DoGetPropertyByName( const wxString& name ) const wxOVERRIDE; - - /** Select and displays a given page. */ - virtual bool DoSelectPage( int index ) wxOVERRIDE; - - // Sets some members to defaults. - void Init1(); - - // Initializes some members. - void Init2( int style ); - -/*#ifdef __WXMSW__ - virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle) const; -#endif*/ - - virtual bool ProcessEvent( wxEvent& event ) wxOVERRIDE; - - /** Recalculates new positions for components, according to the - given size. - */ - void RecalculatePositions( int width, int height ); - - /** (Re)creates/destroys controls, according to the window style bits. */ - void RecreateControls(); - - void UpdateDescriptionBox( int new_splittery, int new_width, int new_height ); - - void RepaintDescBoxDecorations( wxDC& dc, - int newSplitterY, - int newWidth, - int newHeight ); - - void SetDescribedProperty( wxPGProperty* p ); - - // Reimplement these to handle "descboxheight" state item - virtual bool SetEditableStateItem( const wxString& name, wxVariant value ) wxOVERRIDE; - virtual wxVariant GetEditableStateItem( const wxString& name ) const wxOVERRIDE; - - // Reconnect propgrid event handlers. - void ReconnectEventHandlers(wxWindowID oldId, wxWindowID newId); -private: - wxDECLARE_EVENT_TABLE(); -}; - -// ----------------------------------------------------------------------- - -inline int wxPropertyGridPage::GetIndex() const -{ - if ( !m_manager ) - return wxNOT_FOUND; - return m_manager->GetPageByState(this); -} - -// ----------------------------------------------------------------------- - -#endif // wxUSE_PROPGRID - -#endif // _WX_PROPGRID_MANAGER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/property.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/property.h deleted file mode 100644 index c37f5712..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/property.h +++ /dev/null @@ -1,2667 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/propgrid/property.h -// Purpose: wxPGProperty and related support classes -// Author: Jaakko Salli -// Modified by: -// Created: 2008-08-23 -// Copyright: (c) Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROPGRID_PROPERTY_H_ -#define _WX_PROPGRID_PROPERTY_H_ - -#include "wx/defs.h" - -#if wxUSE_PROPGRID - -#include "wx/propgrid/propgriddefs.h" - -// ----------------------------------------------------------------------- - -#define wxNullProperty ((wxPGProperty*)NULL) - - -/** @class wxPGPaintData - - Contains information relayed to property's OnCustomPaint. -*/ -struct wxPGPaintData -{ - /** wxPropertyGrid. */ - const wxPropertyGrid* m_parent; - - /** - Normally -1, otherwise index to drop-down list item that has to be - drawn. - */ - int m_choiceItem; - - /** Set to drawn width in OnCustomPaint (optional). */ - int m_drawnWidth; - - /** - In a measure item call, set this to the height of item at m_choiceItem - index. - */ - int m_drawnHeight; -}; - - -// space between vertical sides of a custom image -#define wxPG_CUSTOM_IMAGE_SPACINGY 1 - -// space between caption and selection rectangle, -#define wxPG_CAPRECTXMARGIN 2 - -// horizontally and vertically -#define wxPG_CAPRECTYMARGIN 1 - - -/** @class wxPGCellRenderer - - Base class for wxPropertyGrid cell renderers. -*/ -class WXDLLIMPEXP_PROPGRID wxPGCellRenderer : public wxObjectRefData -{ -public: - - wxPGCellRenderer() - : wxObjectRefData() { } - virtual ~wxPGCellRenderer() { } - - // Render flags - enum - { - // We are painting selected item - Selected = 0x00010000, - - // We are painting item in choice popup - ChoicePopup = 0x00020000, - - // We are rendering wxOwnerDrawnComboBox control - // (or other owner drawn control, but that is only - // officially supported one ATM). - Control = 0x00040000, - - // We are painting a disable property - Disabled = 0x00080000, - - // We are painting selected, disabled, or similar - // item that dictates fore- and background colours, - // overriding any cell values. - DontUseCellFgCol = 0x00100000, - DontUseCellBgCol = 0x00200000, - DontUseCellColours = DontUseCellFgCol | - DontUseCellBgCol - }; - - /** - Returns @true if rendered something in the foreground (text or - bitmap. - */ - virtual bool Render( wxDC& dc, - const wxRect& rect, - const wxPropertyGrid* propertyGrid, - wxPGProperty* property, - int column, - int item, - int flags ) const = 0; - - /** Returns size of the image in front of the editable area. - @remarks - If property is NULL, then this call is for a custom value. In that case - the item is index to wxPropertyGrid's custom values. - */ - virtual wxSize GetImageSize( const wxPGProperty* property, - int column, - int item ) const; - - /** Paints property category selection rectangle. - */ -#if WXWIN_COMPATIBILITY_3_0 - virtual void DrawCaptionSelectionRect( wxDC& dc, - int x, int y, - int w, int h ) const; -#else - virtual void DrawCaptionSelectionRect(wxWindow *win, wxDC& dc, - int x, int y, int w, int h) const; -#endif // WXWIN_COMPATIBILITY_3_0 - - /** Utility to draw vertically centered text. - */ - void DrawText( wxDC& dc, - const wxRect& rect, - int imageWidth, - const wxString& text ) const; - - /** - Utility to draw editor's value, or vertically aligned text if editor is - NULL. - */ - void DrawEditorValue( wxDC& dc, const wxRect& rect, - int xOffset, const wxString& text, - wxPGProperty* property, - const wxPGEditor* editor ) const; - - /** Utility to render cell bitmap and set text colour plus bg brush - colour. - - @return Returns image width, which, for instance, can be passed to - DrawText. - */ - int PreDrawCell( wxDC& dc, - const wxRect& rect, - const wxPGCell& cell, - int flags ) const; - - /** - Utility to be called after drawing is done, to revert whatever - changes PreDrawCell() did. - - @param flags - Same as those passed to PreDrawCell(). - */ - void PostDrawCell( wxDC& dc, - const wxPropertyGrid* propGrid, - const wxPGCell& cell, - int flags ) const; -}; - - -/** - @class wxPGDefaultRenderer - - Default cell renderer, that can handles the common - scenarios. -*/ -class WXDLLIMPEXP_PROPGRID wxPGDefaultRenderer : public wxPGCellRenderer -{ -public: - virtual bool Render( wxDC& dc, - const wxRect& rect, - const wxPropertyGrid* propertyGrid, - wxPGProperty* property, - int column, - int item, - int flags ) const wxOVERRIDE; - - virtual wxSize GetImageSize( const wxPGProperty* property, - int column, - int item ) const wxOVERRIDE; - -protected: -}; - - -class WXDLLIMPEXP_PROPGRID wxPGCellData : public wxObjectRefData -{ - friend class wxPGCell; -public: - wxPGCellData(); - - void SetText( const wxString& text ) - { - m_text = text; - m_hasValidText = true; - } - void SetBitmap( const wxBitmap& bitmap ) { m_bitmap = bitmap; } - void SetFgCol( const wxColour& col ) { m_fgCol = col; } - void SetBgCol( const wxColour& col ) { m_bgCol = col; } - void SetFont( const wxFont& font ) { m_font = font; } - -protected: - virtual ~wxPGCellData() { } - - wxString m_text; - wxBitmap m_bitmap; - wxColour m_fgCol; - wxColour m_bgCol; - wxFont m_font; - - // True if m_text is valid and specified - bool m_hasValidText; -}; - - -/** - @class wxPGCell - - Base class for wxPropertyGrid cell information. -*/ -class WXDLLIMPEXP_PROPGRID wxPGCell : public wxObject -{ -public: - wxPGCell(); - wxPGCell(const wxPGCell& other) - : wxObject(other) - { - } - - wxPGCell( const wxString& text, - const wxBitmap& bitmap = wxNullBitmap, - const wxColour& fgCol = wxNullColour, - const wxColour& bgCol = wxNullColour ); - - virtual ~wxPGCell() { } - - wxPGCellData* GetData() - { - return (wxPGCellData*) m_refData; - } - - const wxPGCellData* GetData() const - { - return (const wxPGCellData*) m_refData; - } - - bool HasText() const - { - return (m_refData && GetData()->m_hasValidText); - } - - /** - Sets empty but valid data to this cell object. - */ - void SetEmptyData(); - - /** - Merges valid data from srcCell into this. - */ - void MergeFrom( const wxPGCell& srcCell ); - - void SetText( const wxString& text ); - void SetBitmap( const wxBitmap& bitmap ); - void SetFgCol( const wxColour& col ); - - /** - Sets font of the cell. - - @remarks Because wxPropertyGrid does not support rows of - different height, it makes little sense to change - size of the font. Therefore it is recommended - to use return value of wxPropertyGrid::GetFont() - or wxPropertyGrid::GetCaptionFont() as a basis - for the font that, after modifications, is passed - to this member function. - */ - void SetFont( const wxFont& font ); - - void SetBgCol( const wxColour& col ); - - const wxString& GetText() const { return GetData()->m_text; } - const wxBitmap& GetBitmap() const { return GetData()->m_bitmap; } - const wxColour& GetFgCol() const { return GetData()->m_fgCol; } - - /** - Returns font of the cell. If no specific font is set for this - cell, then the font will be invalid. - */ - const wxFont& GetFont() const { return GetData()->m_font; } - - const wxColour& GetBgCol() const { return GetData()->m_bgCol; } - - wxPGCell& operator=( const wxPGCell& other ) - { - if ( this != &other ) - { - Ref(other); - } - return *this; - } - - // Used mostly internally to figure out if this cell is supposed - // to have default values when attached to a grid. - bool IsInvalid() const - { - return ( m_refData == NULL ); - } - -private: - virtual wxObjectRefData *CreateRefData() const wxOVERRIDE - { return new wxPGCellData(); } - - virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const wxOVERRIDE; -}; - -// ----------------------------------------------------------------------- - -/** @class wxPGAttributeStorage - - wxPGAttributeStorage is somewhat optimized storage for - key=variant pairs (ie. a map). -*/ -class WXDLLIMPEXP_PROPGRID wxPGAttributeStorage -{ -public: - wxPGAttributeStorage(); - ~wxPGAttributeStorage(); - - void Set( const wxString& name, const wxVariant& value ); - unsigned int GetCount() const { return (unsigned int) m_map.size(); } - wxVariant FindValue( const wxString& name ) const - { - wxPGHashMapS2P::const_iterator it = m_map.find(name); - if ( it != m_map.end() ) - { - wxVariantData* data = (wxVariantData*) it->second; - data->IncRef(); - return wxVariant(data, it->first); - } - return wxVariant(); - } - - typedef wxPGHashMapS2P::const_iterator const_iterator; - const_iterator StartIteration() const - { - return m_map.begin(); - } - bool GetNext( const_iterator& it, wxVariant& variant ) const - { - if ( it == m_map.end() ) - return false; - - wxVariantData* data = (wxVariantData*) it->second; - data->IncRef(); - variant.SetData(data); - variant.SetName(it->first); - ++it; - return true; - } - -protected: - wxPGHashMapS2P m_map; -}; - - -// ----------------------------------------------------------------------- - -/** @section propgrid_propflags wxPGProperty Flags - @{ -*/ - -enum wxPGPropertyFlags -{ - -/** Indicates bold font. -*/ -wxPG_PROP_MODIFIED = 0x0001, - -/** Disables ('greyed' text and editor does not activate) property. -*/ -wxPG_PROP_DISABLED = 0x0002, - -/** Hider button will hide this property. -*/ -wxPG_PROP_HIDDEN = 0x0004, - -/** This property has custom paint image just in front of its value. - If property only draws custom images into a popup list, then this - flag should not be set. -*/ -wxPG_PROP_CUSTOMIMAGE = 0x0008, - -/** Do not create text based editor for this property (but button-triggered - dialog and choice are ok). -*/ -wxPG_PROP_NOEDITOR = 0x0010, - -/** Property is collapsed, ie. it's children are hidden. -*/ -wxPG_PROP_COLLAPSED = 0x0020, - -/** - If property is selected, then indicates that validation failed for pending - value. - - If property is not selected, that indicates that the actual property - value has failed validation (NB: this behaviour is not currently supported, - but may be used in future). -*/ -wxPG_PROP_INVALID_VALUE = 0x0040, - -// 0x0080, - -/** Switched via SetWasModified(). Temporary flag - only used when - setting/changing property value. -*/ -wxPG_PROP_WAS_MODIFIED = 0x0200, - -/** - If set, then child properties (if any) are private, and should be - "invisible" to the application. -*/ -wxPG_PROP_AGGREGATE = 0x0400, - -/** If set, then child properties (if any) are copies and should not - be deleted in dtor. -*/ -wxPG_PROP_CHILDREN_ARE_COPIES = 0x0800, - -/** - Classifies this item as a non-category. - - Used for faster item type identification. -*/ -wxPG_PROP_PROPERTY = 0x1000, - -/** - Classifies this item as a category. - - Used for faster item type identification. -*/ -wxPG_PROP_CATEGORY = 0x2000, - -/** Classifies this item as a property that has children, but is not aggregate - (ie children are not private). -*/ -wxPG_PROP_MISC_PARENT = 0x4000, - -/** Property is read-only. Editor is still created for wxTextCtrl-based - property editors. For others, editor is not usually created because - they do implement wxTE_READONLY style or equivalent. -*/ -wxPG_PROP_READONLY = 0x8000, - -// -// NB: FLAGS ABOVE 0x8000 CANNOT BE USED WITH PROPERTY ITERATORS -// - -/** Property's value is composed from values of child properties. - @remarks - This flag cannot be used with property iterators. -*/ -wxPG_PROP_COMPOSED_VALUE = 0x00010000, - -/** Common value of property is selectable in editor. - @remarks - This flag cannot be used with property iterators. -*/ -wxPG_PROP_USES_COMMON_VALUE = 0x00020000, - -/** Property can be set to unspecified value via editor. - Currently, this applies to following properties: - - wxIntProperty, wxUIntProperty, wxFloatProperty, wxEditEnumProperty: - Clear the text field - - @remarks - This flag cannot be used with property iterators. - - @see wxPGProperty::SetAutoUnspecified() -*/ -wxPG_PROP_AUTO_UNSPECIFIED = 0x00040000, - -/** Indicates the bit useable by derived properties. -*/ -wxPG_PROP_CLASS_SPECIFIC_1 = 0x00080000, - -/** Indicates the bit useable by derived properties. -*/ -wxPG_PROP_CLASS_SPECIFIC_2 = 0x00100000, - -/** Indicates that the property is being deleted and should be ignored. -*/ -wxPG_PROP_BEING_DELETED = 0x00200000, - -/** Indicates the bit useable by derived properties. -*/ -wxPG_PROP_CLASS_SPECIFIC_3 = 0x00400000 - -}; - -/** Topmost flag. -*/ -#define wxPG_PROP_MAX wxPG_PROP_AUTO_UNSPECIFIED - -/** Property with children must have one of these set, otherwise iterators - will not work correctly. - Code should automatically take care of this, however. -*/ -#define wxPG_PROP_PARENTAL_FLAGS \ - ((wxPGPropertyFlags)(wxPG_PROP_AGGREGATE | \ - wxPG_PROP_CATEGORY | \ - wxPG_PROP_MISC_PARENT)) - -/** @} -*/ - -// Combination of flags that can be stored by GetFlagsAsString -#define wxPG_STRING_STORED_FLAGS \ - (wxPG_PROP_DISABLED|wxPG_PROP_HIDDEN|wxPG_PROP_NOEDITOR|wxPG_PROP_COLLAPSED) - -// ----------------------------------------------------------------------- - -/** - @section propgrid_property_attributes wxPropertyGrid Property Attribute - Identifiers. - - wxPGProperty::SetAttribute() and - wxPropertyGridInterface::SetPropertyAttribute() accept one of these as - attribute name argument. - - You can use strings instead of constants. However, some of these - constants are redefined to use cached strings which may reduce - your binary size by some amount. - - @{ -*/ - -/** Set default value for property. -*/ -#define wxPG_ATTR_DEFAULT_VALUE wxS("DefaultValue") - -/** Universal, int or double. Minimum value for numeric properties. -*/ -#define wxPG_ATTR_MIN wxS("Min") - -/** Universal, int or double. Maximum value for numeric properties. -*/ -#define wxPG_ATTR_MAX wxS("Max") - -/** Universal, string. When set, will be shown as text after the displayed - text value. Alternatively, if third column is enabled, text will be shown - there (for any type of property). -*/ -#define wxPG_ATTR_UNITS wxS("Units") - -/** When set, will be shown as 'greyed' text in property's value cell when - the actual displayed value is blank. -*/ -#define wxPG_ATTR_HINT wxS("Hint") - -#if wxPG_COMPATIBILITY_1_4 -/** - @deprecated Use "Hint" (wxPG_ATTR_HINT) instead. -*/ -#define wxPG_ATTR_INLINE_HELP wxS("InlineHelp") -#endif - -/** Universal, wxArrayString. Set to enable auto-completion in any - wxTextCtrl-based property editor. -*/ -#define wxPG_ATTR_AUTOCOMPLETE wxS("AutoComplete") - -/** wxBoolProperty and wxFlagsProperty specific. Value type is bool. - Default value is False. - - When set to True, bool property will use check box instead of a - combo box as its editor control. If you set this attribute - for a wxFlagsProperty, it is automatically applied to child - bool properties. -*/ -#define wxPG_BOOL_USE_CHECKBOX wxS("UseCheckbox") - -/** wxBoolProperty and wxFlagsProperty specific. Value type is bool. - Default value is False. - - Set to True for the bool property to cycle value on double click - (instead of showing the popup listbox). If you set this attribute - for a wxFlagsProperty, it is automatically applied to child - bool properties. -*/ -#define wxPG_BOOL_USE_DOUBLE_CLICK_CYCLING wxS("UseDClickCycling") - -/** - wxFloatProperty (and similar) specific, int, default -1. - - Sets the (max) precision used when floating point value is rendered as - text. The default -1 means infinite precision. -*/ -#define wxPG_FLOAT_PRECISION wxS("Precision") - -/** - The text will be echoed as asterisks (wxTE_PASSWORD will be passed to - textctrl etc.). -*/ -#define wxPG_STRING_PASSWORD wxS("Password") - -/** Define base used by a wxUIntProperty. Valid constants are - wxPG_BASE_OCT, wxPG_BASE_DEC, wxPG_BASE_HEX and wxPG_BASE_HEXL - (lowercase characters). -*/ -#define wxPG_UINT_BASE wxS("Base") - -/** Define prefix rendered to wxUIntProperty. Accepted constants - wxPG_PREFIX_NONE, wxPG_PREFIX_0x, and wxPG_PREFIX_DOLLAR_SIGN. - <b>Note:</b> Only wxPG_PREFIX_NONE works with Decimal and Octal - numbers. -*/ -#define wxPG_UINT_PREFIX wxS("Prefix") - -/** - wxFileProperty/wxImageFileProperty specific, wxChar*, default is - detected/varies. - Sets the wildcard used in the triggered wxFileDialog. Format is the same. -*/ -#define wxPG_FILE_WILDCARD wxS("Wildcard") - -/** wxFileProperty/wxImageFileProperty specific, int, default 1. - When 0, only the file name is shown (i.e. drive and directory are hidden). -*/ -#define wxPG_FILE_SHOW_FULL_PATH wxS("ShowFullPath") - -/** Specific to wxFileProperty and derived properties, wxString, default empty. - If set, then the filename is shown relative to the given path string. -*/ -#define wxPG_FILE_SHOW_RELATIVE_PATH wxS("ShowRelativePath") - -/** - Specific to wxFileProperty and derived properties, wxString, default is - empty. - - Sets the initial path of where to look for files. -*/ -#define wxPG_FILE_INITIAL_PATH wxS("InitialPath") - -/** Specific to wxFileProperty and derivatives, wxString, default is empty. - Sets a specific title for the dir dialog. -*/ -#define wxPG_FILE_DIALOG_TITLE wxS("DialogTitle") - -/** Specific to wxFileProperty and derivatives, long, default is 0. - Sets a specific wxFileDialog style for the file dialog. -*/ -#define wxPG_FILE_DIALOG_STYLE wxS("DialogStyle") - -/** Specific to wxDirProperty, wxString, default is empty. - Sets a specific message for the dir dialog. -*/ -#define wxPG_DIR_DIALOG_MESSAGE wxS("DialogMessage") - -/** - wxArrayStringProperty's string delimiter character. If this is a quotation - mark or hyphen, then strings will be quoted instead (with given - character). - - Default delimiter is quotation mark. -*/ -#define wxPG_ARRAY_DELIMITER wxS("Delimiter") - -/** Sets displayed date format for wxDateProperty. -*/ -#define wxPG_DATE_FORMAT wxS("DateFormat") - -/** Sets wxDatePickerCtrl window style used with wxDateProperty. Default - is wxDP_DEFAULT | wxDP_SHOWCENTURY. -*/ -#define wxPG_DATE_PICKER_STYLE wxS("PickerStyle") - -#if wxUSE_SPINBTN -/** SpinCtrl editor, int or double. How much number changes when button is - pressed (or up/down on keyboard). -*/ -#define wxPG_ATTR_SPINCTRL_STEP wxS("Step") - -/** SpinCtrl editor, bool. If true, value wraps at Min/Max. -*/ -#define wxPG_ATTR_SPINCTRL_WRAP wxS("Wrap") - -/** SpinCtrl editor, bool. If true, moving mouse when one of the spin - buttons is depressed rapidly changing "spin" value. -*/ -#define wxPG_ATTR_SPINCTRL_MOTION wxS("MotionSpin") -#endif // wxUSE_SPINBTN - -/** - wxMultiChoiceProperty, int. - If 0, no user strings allowed. If 1, user strings appear before list - strings. If 2, user strings appear after list string. -*/ -#define wxPG_ATTR_MULTICHOICE_USERSTRINGMODE wxS("UserStringMode") - -/** - wxColourProperty and its kind, int, default 1. - - Setting this attribute to 0 hides custom colour from property's list of - choices. -*/ -#define wxPG_COLOUR_ALLOW_CUSTOM wxS("AllowCustom") - -/** - wxColourProperty and its kind: Set to True in order to support editing - alpha colour component. -*/ -#define wxPG_COLOUR_HAS_ALPHA wxS("HasAlpha") - -/** @} -*/ - -// Redefine attribute macros to use cached strings -#undef wxPG_ATTR_DEFAULT_VALUE -#define wxPG_ATTR_DEFAULT_VALUE wxPGGlobalVars->m_strDefaultValue -#undef wxPG_ATTR_MIN -#define wxPG_ATTR_MIN wxPGGlobalVars->m_strMin -#undef wxPG_ATTR_MAX -#define wxPG_ATTR_MAX wxPGGlobalVars->m_strMax -#undef wxPG_ATTR_UNITS -#define wxPG_ATTR_UNITS wxPGGlobalVars->m_strUnits -#undef wxPG_ATTR_HINT -#define wxPG_ATTR_HINT wxPGGlobalVars->m_strHint -#if wxPG_COMPATIBILITY_1_4 -#undef wxPG_ATTR_INLINE_HELP -#define wxPG_ATTR_INLINE_HELP wxPGGlobalVars->m_strInlineHelp -#endif - -// ----------------------------------------------------------------------- - -/** @class wxPGChoiceEntry - Data of a single wxPGChoices choice. -*/ -class WXDLLIMPEXP_PROPGRID wxPGChoiceEntry : public wxPGCell -{ -public: - wxPGChoiceEntry(); - wxPGChoiceEntry(const wxPGChoiceEntry& other) - : wxPGCell(other) - { - m_value = other.m_value; - } - wxPGChoiceEntry( const wxString& label, - int value = wxPG_INVALID_VALUE ) - : wxPGCell(), m_value(value) - { - SetText(label); - } - - virtual ~wxPGChoiceEntry() { } - - void SetValue( int value ) { m_value = value; } - int GetValue() const { return m_value; } - - wxPGChoiceEntry& operator=( const wxPGChoiceEntry& other ) - { - if ( this != &other ) - { - Ref(other); - } - m_value = other.m_value; - return *this; - } - -protected: - int m_value; -}; - - -typedef void* wxPGChoicesId; - -class WXDLLIMPEXP_PROPGRID wxPGChoicesData : public wxObjectRefData -{ - friend class wxPGChoices; -public: - // Constructor sets m_refCount to 1. - wxPGChoicesData(); - - void CopyDataFrom( wxPGChoicesData* data ); - - wxPGChoiceEntry& Insert( int index, const wxPGChoiceEntry& item ); - - // Delete all entries - void Clear(); - - unsigned int GetCount() const - { - return (unsigned int) m_items.size(); - } - - const wxPGChoiceEntry& Item( unsigned int i ) const - { - wxASSERT_MSG( i < GetCount(), wxS("invalid index") ); - return m_items[i]; - } - - wxPGChoiceEntry& Item( unsigned int i ) - { - wxASSERT_MSG( i < GetCount(), wxS("invalid index") ); - return m_items[i]; - } - -private: - wxVector<wxPGChoiceEntry> m_items; - - virtual ~wxPGChoicesData(); -}; - -#define wxPGChoicesEmptyData ((wxPGChoicesData*)NULL) - - -/** @class wxPGChoices - - Helper class for managing choices of wxPropertyGrid properties. - Each entry can have label, value, bitmap, text colour, and background - colour. - - wxPGChoices uses reference counting, similar to other wxWidgets classes. - This means that assignment operator and copy constructor only copy the - reference and not the actual data. Use Copy() member function to create a - real copy. - - @remarks If you do not specify value for entry, index is used. - - @library{wxpropgrid} - @category{propgrid} -*/ -class WXDLLIMPEXP_PROPGRID wxPGChoices -{ -public: - typedef long ValArrItem; - - /** Default constructor. */ - wxPGChoices() - { - Init(); - } - - /** - Copy constructor, uses reference counting. To create a real copy, - use Copy() member function instead. - */ - wxPGChoices( const wxPGChoices& a ) - { - if ( a.m_data != wxPGChoicesEmptyData ) - { - m_data = a.m_data; - m_data->IncRef(); - } - else - { - Init(); - } - } - - /** - Constructor. - - @param labels - Labels for choices - - @param values - Values for choices. If NULL, indexes are used. - */ - wxPGChoices( const wxChar* const* labels, const long* values = NULL ) - { - Init(); - Set(labels,values); - } - - /** - Constructor. - - @param labels - Labels for choices - - @param values - Values for choices. If empty, indexes are used. - */ - wxPGChoices( const wxArrayString& labels, - const wxArrayInt& values = wxArrayInt() ) - { - Init(); - Set(labels,values); - } - - /** Simple interface constructor. */ - wxPGChoices( wxPGChoicesData* data ) - { - wxASSERT(data); - m_data = data; - data->IncRef(); - } - - /** Destructor. */ - ~wxPGChoices() - { - Free(); - } - - /** - Adds to current. - - If did not have own copies, creates them now. If was empty, identical - to set except that creates copies. - - @param labels - Labels for added choices. - - @param values - Values for added choices. If empty, relevant entry indexes are used. - */ - void Add( const wxChar* const* labels, const ValArrItem* values = NULL ); - - /** Version that works with wxArrayString and wxArrayInt. */ - void Add( const wxArrayString& arr, const wxArrayInt& arrint = wxArrayInt() ); - - /** - Adds a single choice. - - @param label - Label for added choice. - - @param value - Value for added choice. If unspecified, index is used. - */ - wxPGChoiceEntry& Add( const wxString& label, - int value = wxPG_INVALID_VALUE ); - - /** Adds a single item, with bitmap. */ - wxPGChoiceEntry& Add( const wxString& label, - const wxBitmap& bitmap, - int value = wxPG_INVALID_VALUE ); - - /** Adds a single item with full entry information. */ - wxPGChoiceEntry& Add( const wxPGChoiceEntry& entry ) - { - return Insert(entry, -1); - } - - /** Adds single item. */ - wxPGChoiceEntry& AddAsSorted( const wxString& label, - int value = wxPG_INVALID_VALUE ); - - /** - Assigns choices data, using reference counting. To create a real copy, - use Copy() member function instead. - */ - void Assign( const wxPGChoices& a ) - { - AssignData(a.m_data); - } - - void AssignData( wxPGChoicesData* data ); - - /** Delete all choices. */ - void Clear(); - - /** - Returns a real copy of the choices. - */ - wxPGChoices Copy() const - { - wxPGChoices dst; - dst.EnsureData(); - dst.m_data->CopyDataFrom(m_data); - return dst; - } - - void EnsureData() - { - if ( m_data == wxPGChoicesEmptyData ) - m_data = new wxPGChoicesData(); - } - - /** Gets a unsigned number identifying this list. */ - wxPGChoicesId GetId() const { return (wxPGChoicesId) m_data; } - - const wxString& GetLabel( unsigned int ind ) const - { - return Item(ind).GetText(); - } - - unsigned int GetCount () const - { - if ( !m_data ) - return 0; - - return m_data->GetCount(); - } - - int GetValue( unsigned int ind ) const { return Item(ind).GetValue(); } - - /** Returns array of values matching the given strings. Unmatching strings - result in wxPG_INVALID_VALUE entry in array. - */ - wxArrayInt GetValuesForStrings( const wxArrayString& strings ) const; - - /** Returns array of indices matching given strings. Unmatching strings - are added to 'unmatched', if not NULL. - */ - wxArrayInt GetIndicesForStrings( const wxArrayString& strings, - wxArrayString* unmatched = NULL ) const; - - int Index( const wxString& str ) const; - int Index( int val ) const; - - /** Inserts single item. */ - wxPGChoiceEntry& Insert( const wxString& label, - int index, - int value = wxPG_INVALID_VALUE ); - - /** Inserts a single item with full entry information. */ - wxPGChoiceEntry& Insert( const wxPGChoiceEntry& entry, int index ); - - /** Returns false if this is a constant empty set of choices, - which should not be modified. - */ - bool IsOk() const - { - return ( m_data != wxPGChoicesEmptyData ); - } - - const wxPGChoiceEntry& Item( unsigned int i ) const - { - wxASSERT( IsOk() ); - return m_data->Item(i); - } - - wxPGChoiceEntry& Item( unsigned int i ) - { - wxASSERT( IsOk() ); - return m_data->Item(i); - } - - /** Removes count items starting at position nIndex. */ - void RemoveAt(size_t nIndex, size_t count = 1); - - /** Does not create copies for itself. - TODO: Deprecate. - */ - void Set( const wxChar* const* labels, const long* values = NULL ) - { - Free(); - Add(labels,values); - } - - /** Version that works with wxArrayString and wxArrayInt. */ - void Set( const wxArrayString& labels, - const wxArrayInt& values = wxArrayInt() ) - { - Free(); - Add(labels,values); - } - - // Creates exclusive copy of current choices - void AllocExclusive(); - - // Returns data, increases refcount. - wxPGChoicesData* GetData() - { - wxASSERT( m_data->GetRefCount() != -1 ); - m_data->IncRef(); - return m_data; - } - - // Returns plain data ptr - no refcounting stuff is done. - wxPGChoicesData* GetDataPtr() const { return m_data; } - - // Changes ownership of data to you. - wxPGChoicesData* ExtractData() - { - wxPGChoicesData* data = m_data; - m_data = wxPGChoicesEmptyData; - return data; - } - - wxArrayString GetLabels() const; - - void operator= (const wxPGChoices& a) - { - if (this != &a) - AssignData(a.m_data); - } - - wxPGChoiceEntry& operator[](unsigned int i) - { - return Item(i); - } - - const wxPGChoiceEntry& operator[](unsigned int i) const - { - return Item(i); - } - -protected: - wxPGChoicesData* m_data; - - void Init(); - void Free(); -}; - -// ----------------------------------------------------------------------- - -/** @class wxPGProperty - - wxPGProperty is base class for all wxPropertyGrid properties. - - NB: Full class overview is now only present in - interface/wx/propgrid/property.h. - - @library{wxpropgrid} - @category{propgrid} -*/ -class WXDLLIMPEXP_PROPGRID wxPGProperty : public wxObject -{ - friend class wxPropertyGrid; - friend class wxPropertyGridInterface; - friend class wxPropertyGridPageState; - friend class wxPropertyGridPopulator; - friend class wxStringProperty; // Proper "<composed>" support requires this - - wxDECLARE_ABSTRACT_CLASS(wxPGProperty); -public: - typedef wxUint32 FlagType; - - /** - Default constructor. - */ - wxPGProperty(); - - /** - Constructor. - - All non-abstract property classes should have a constructor with - the same first two arguments as this one. - */ - wxPGProperty( const wxString& label, const wxString& name ); - - /** - Virtual destructor. - It is customary for derived properties to implement this. - */ - virtual ~wxPGProperty(); - - /** This virtual function is called after m_value has been set. - - @remarks - - If m_value was set to Null variant (ie. unspecified value), - OnSetValue() will not be called. - - m_value may be of any variant type. Typically properties internally - support only one variant type, and as such OnSetValue() provides a - good opportunity to convert - supported values into internal type. - - Default implementation does nothing. - */ - virtual void OnSetValue(); - - /** Override this to return something else than m_value as the value. - */ - virtual wxVariant DoGetValue() const { return m_value; } - - /** Implement this function in derived class to check the value. - Return true if it is ok. Returning false prevents property change events - from occurring. - - @remarks - - Default implementation always returns true. - */ - virtual bool ValidateValue( wxVariant& value, - wxPGValidationInfo& validationInfo ) const; - - /** - Converts text into wxVariant value appropriate for this property. - - @param variant - On function entry this is the old value (should not be wxNullVariant - in normal cases). Translated value must be assigned back to it. - - @param text - Text to be translated into variant. - - @param argFlags - If wxPG_FULL_VALUE is set, returns complete, storable value instead - of displayable one (they may be different). - If wxPG_COMPOSITE_FRAGMENT is set, text is interpreted as a part of - composite property string value (as generated by ValueToString() - called with this same flag). - - @return Returns @true if resulting wxVariant value was different. - - @remarks Default implementation converts semicolon delimited tokens into - child values. Only works for properties with children. - - You might want to take into account that m_value is Null variant - if property value is unspecified (which is usually only case if - you explicitly enabled that sort behaviour). - */ - virtual bool StringToValue( wxVariant& variant, - const wxString& text, - int argFlags = 0 ) const; - - /** - Converts integer (possibly a choice selection) into wxVariant value - appropriate for this property. - - @param variant - On function entry this is the old value (should not be wxNullVariant - in normal cases). Translated value must be assigned back to it. - - @param number - Integer to be translated into variant. - - @param argFlags - If wxPG_FULL_VALUE is set, returns complete, storable value instead - of displayable one. - - @return Returns @true if resulting wxVariant value was different. - - @remarks - - If property is not supposed to use choice or spinctrl or other editor - with int-based value, it is not necessary to implement this method. - - Default implementation simply assign given int to m_value. - - If property uses choice control, and displays a dialog on some choice - items, then it is preferred to display that dialog in IntToValue - instead of OnEvent. - - You might want to take into account that m_value is Null variant if - property value is unspecified (which is usually only case if you - explicitly enabled that sort behaviour). - */ - virtual bool IntToValue( wxVariant& value, - int number, - int argFlags = 0 ) const; - - /** - Converts property value into a text representation. - - @param value - Value to be converted. - - @param argFlags - If 0 (default value), then displayed string is returned. - If wxPG_FULL_VALUE is set, returns complete, storable string value - instead of displayable. If wxPG_EDITABLE_VALUE is set, returns - string value that must be editable in textctrl. If - wxPG_COMPOSITE_FRAGMENT is set, returns text that is appropriate to - display as a part of string property's composite text - representation. - - @remarks Default implementation calls GenerateComposedValue(). - */ - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; - - /** Converts string to a value, and if successful, calls SetValue() on it. - Default behaviour is to do nothing. - @param text - String to get the value from. - @return - true if value was changed. - */ - bool SetValueFromString( const wxString& text, int flags = wxPG_PROGRAMMATIC_VALUE ); - - /** Converts integer to a value, and if successful, calls SetValue() on it. - Default behaviour is to do nothing. - @param value - Int to get the value from. - @param flags - If has wxPG_FULL_VALUE, then the value given is a actual value and - not an index. - @return - True if value was changed. - */ - bool SetValueFromInt( long value, int flags = 0 ); - - /** - Returns size of the custom painted image in front of property. - - This method must be overridden to return non-default value if - OnCustomPaint is to be called. - @param item - Normally -1, but can be an index to the property's list of items. - @remarks - - Default behaviour is to return wxSize(0,0), which means no image. - - Default image width or height is indicated with dimension -1. - - You can also return wxPG_DEFAULT_IMAGE_SIZE, i.e. wxDefaultSize. - */ - virtual wxSize OnMeasureImage( int item = -1 ) const; - - /** - Events received by editor widgets are processed here. - - Note that editor class usually processes most events. Some, such as - button press events of TextCtrlAndButton class, can be handled here. - Also, if custom handling for regular events is desired, then that can - also be done (for example, wxSystemColourProperty custom handles - wxEVT_CHOICE to display colour picker dialog when - 'custom' selection is made). - - If the event causes value to be changed, SetValueInEvent() - should be called to set the new value. - - @param event - Associated wxEvent. - @return - Should return true if any changes in value should be reported. - @remarks - If property uses choice control, and displays a dialog on some choice - items, then it is preferred to display that dialog in IntToValue - instead of OnEvent. - */ - virtual bool OnEvent( wxPropertyGrid* propgrid, - wxWindow* wnd_primary, - wxEvent& event ); - - /** - Called after value of a child property has been altered. Must return - new value of the whole property (after any alterations warranted by - child's new value). - - Note that this function is usually called at the time that value of - this property, or given child property, is still pending for change, - and as such, result of GetValue() or m_value should not be relied - on. - - Sample pseudo-code implementation: - - @code - wxVariant MyProperty::ChildChanged( wxVariant& thisValue, - int childIndex, - wxVariant& childValue ) const - { - // Acquire reference to actual type of data stored in variant - // (TFromVariant only exists if wxPropertyGrid's wxVariant-macros - // were used to create the variant class). - T& data = TFromVariant(thisValue); - - // Copy childValue into data. - switch ( childIndex ) - { - case 0: - data.SetSubProp1( childvalue.GetLong() ); - break; - case 1: - data.SetSubProp2( childvalue.GetString() ); - break; - ... - } - - // Return altered data - return data; - } - @endcode - - @param thisValue - Value of this property. Changed value should be returned (in - previous versions of wxPropertyGrid it was only necessary to - write value back to this argument). - @param childIndex - Index of child changed (you can use Item(childIndex) to get - child property). - @param childValue - (Pending) value of the child property. - - @return - Modified value of the whole property. - */ - virtual wxVariant ChildChanged( wxVariant& thisValue, - int childIndex, - wxVariant& childValue ) const; - - /** Returns pointer to an instance of used editor. - */ - virtual const wxPGEditor* DoGetEditorClass() const; - - /** Returns pointer to the wxValidator that should be used - with the editor of this property (NULL for no validator). - Setting validator explicitly via SetPropertyValidator - will override this. - - In most situations, code like this should work well - (macros are used to maintain one actual validator instance, - so on the second call the function exits within the first - macro): - - @code - - wxValidator* wxMyPropertyClass::DoGetValidator () const - { - WX_PG_DOGETVALIDATOR_ENTRY() - - wxMyValidator* validator = new wxMyValidator(...); - - ... prepare validator... - - WX_PG_DOGETVALIDATOR_EXIT(validator) - } - - @endcode - - @remarks - You can get common filename validator by returning - wxFileProperty::GetClassValidator(). wxDirProperty, - for example, uses it. - */ - virtual wxValidator* DoGetValidator () const; - - /** - Override to paint an image in front of the property value text or - drop-down list item (but only if wxPGProperty::OnMeasureImage is - overridden as well). - - If property's OnMeasureImage() returns size that has height != 0 but - less than row height ( < 0 has special meanings), wxPropertyGrid calls - this method to draw a custom image in a limited area in front of the - editor control or value text/graphics, and if control has drop-down - list, then the image is drawn there as well (even in the case - OnMeasureImage() returned higher height than row height). - - NOTE: Following applies when OnMeasureImage() returns a "flexible" - height ( using wxPG_FLEXIBLE_SIZE(W,H) macro), which implies variable - height items: If rect.x is < 0, then this is a measure item call, which - means that dc is invalid and only thing that should be done is to set - paintdata.m_drawnHeight to the height of the image of item at index - paintdata.m_choiceItem. This call may be done even as often as once - every drop-down popup show. - - @param dc - wxDC to paint on. - @param rect - Box reserved for custom graphics. Includes surrounding rectangle, - if any. If x is < 0, then this is a measure item call (see above). - @param paintdata - wxPGPaintData structure with much useful data. - - @remarks - - You can actually exceed rect width, but if you do so then - paintdata.m_drawnWidth must be set to the full width drawn in - pixels. - - Due to technical reasons, rect's height will be default even if - custom height was reported during measure call. - - Brush is guaranteed to be default background colour. It has been - already used to clear the background of area being painted. It - can be modified. - - Pen is guaranteed to be 1-wide 'black' (or whatever is the proper - colour) pen for drawing framing rectangle. It can be changed as - well. - - @see ValueToString() - */ - virtual void OnCustomPaint( wxDC& dc, - const wxRect& rect, - wxPGPaintData& paintdata ); - - /** - Returns used wxPGCellRenderer instance for given property column - (label=0, value=1). - - Default implementation returns editor's renderer for all columns. - */ - virtual wxPGCellRenderer* GetCellRenderer( int column ) const; - - /** Returns which choice is currently selected. Only applies to properties - which have choices. - - Needs to be reimplemented in derived class if property value does not - map directly to a choice. Integer as index, bool, and string usually do. - */ - virtual int GetChoiceSelection() const; - - /** - Refresh values of child properties. - - Automatically called after value is set. - */ - virtual void RefreshChildren(); - - /** - Reimplement this member function to add special handling for - attributes of this property. - - @return Return @false to have the attribute automatically stored in - m_attributes. Default implementation simply does that and - nothing else. - - @remarks To actually set property attribute values from the - application, use wxPGProperty::SetAttribute() instead. - */ - virtual bool DoSetAttribute( const wxString& name, wxVariant& value ); - - /** Returns value of an attribute. - - Override if custom handling of attributes is needed. - - Default implementation simply return NULL variant. - */ - virtual wxVariant DoGetAttribute( const wxString& name ) const; - - /** Returns instance of a new wxPGEditorDialogAdapter instance, which is - used when user presses the (optional) button next to the editor control; - - Default implementation returns NULL (ie. no action is generated when - button is pressed). - */ - virtual wxPGEditorDialogAdapter* GetEditorDialog() const; - - /** - Called whenever validation has failed with given pending value. - - @remarks If you implement this in your custom property class, please - remember to call the baser implementation as well, since they - may use it to revert property into pre-change state. - */ - virtual void OnValidationFailure( wxVariant& pendingValue ); - - /** Append a new choice to property's list of choices. - */ - int AddChoice( const wxString& label, int value = wxPG_INVALID_VALUE ) - { - return InsertChoice(label, wxNOT_FOUND, value); - } - - /** - Returns true if children of this property are component values (for - instance, points size, face name, and is_underlined are component - values of a font). - */ - bool AreChildrenComponents() const - { - return (m_flags & (wxPG_PROP_COMPOSED_VALUE|wxPG_PROP_AGGREGATE)) != 0; - } - - /** - Deletes children of the property. - */ - void DeleteChildren(); - - /** - Removes entry from property's wxPGChoices and editor control (if it is - active). - - If selected item is deleted, then the value is set to unspecified. - */ - void DeleteChoice( int index ); - - /** - Enables or disables the property. Disabled property usually appears - as having grey text. - - @param enable - If @false, property is disabled instead. - - @see wxPropertyGridInterface::EnableProperty() - */ - void Enable( bool enable = true ); - - /** - Call to enable or disable usage of common value (integer value that can - be selected for properties instead of their normal values) for this - property. - - Common values are disabled by the default for all properties. - */ - void EnableCommonValue( bool enable = true ) - { - if ( enable ) SetFlag( wxPG_PROP_USES_COMMON_VALUE ); - else ClearFlag( wxPG_PROP_USES_COMMON_VALUE ); - } - - /** - Composes text from values of child properties. - */ - wxString GenerateComposedValue() const - { - wxString s; - DoGenerateComposedValue(s); - return s; - } - - /** Returns property's label. */ - const wxString& GetLabel() const { return m_label; } - - /** Returns property's name with all (non-category, non-root) parents. */ - wxString GetName() const; - - /** - Returns property's base name (i.e. parent's name is not added in any - case) - */ - const wxString& GetBaseName() const { return m_name; } - - /** Returns read-only reference to property's list of choices. - */ - const wxPGChoices& GetChoices() const - { - return m_choices; - } - - /** Returns coordinate to the top y of the property. Note that the - position of scrollbars is not taken into account. - */ - int GetY() const; - - wxVariant GetValue() const - { - return DoGetValue(); - } - - /** Returns reference to the internal stored value. GetValue is preferred - way to get the actual value, since GetValueRef ignores DoGetValue, - which may override stored value. - */ - wxVariant& GetValueRef() - { - return m_value; - } - - const wxVariant& GetValueRef() const - { - return m_value; - } - - // Helper function (for wxPython bindings and such) for settings protected - // m_value. - wxVariant GetValuePlain() const - { - return m_value; - } - - /** Returns text representation of property's value. - - @param argFlags - If 0 (default value), then displayed string is returned. - If wxPG_FULL_VALUE is set, returns complete, storable string value - instead of displayable. If wxPG_EDITABLE_VALUE is set, returns - string value that must be editable in textctrl. If - wxPG_COMPOSITE_FRAGMENT is set, returns text that is appropriate to - display as a part of string property's composite text - representation. - - @remarks In older versions, this function used to be overridden to convert - property's value into a string representation. This function is - now handled by ValueToString(), and overriding this function now - will result in run-time assertion failure. - */ - virtual wxString GetValueAsString( int argFlags = 0 ) const; - -#if wxPG_COMPATIBILITY_1_4 - /** Synonymous to GetValueAsString(). - - @deprecated Use GetValueAsString() instead. - - @see GetValueAsString() - */ - wxDEPRECATED( wxString GetValueString( int argFlags = 0 ) const ); -#endif - - /** - Returns wxPGCell of given column. - - @remarks const version of this member function returns 'default' - wxPGCell object if the property itself didn't hold - cell data. - */ - const wxPGCell& GetCell( unsigned int column ) const; - - /** - Returns wxPGCell of given column, creating one if necessary. - */ - wxPGCell& GetCell( unsigned int column ) - { - return GetOrCreateCell(column); - } - - /** - Returns wxPGCell of given column, creating one if necessary. - */ - wxPGCell& GetOrCreateCell( unsigned int column ); - - /** Return number of displayed common values for this property. - */ - int GetDisplayedCommonValueCount() const; - - wxString GetDisplayedString() const - { - return GetValueAsString(0); - } - - /** - Returns property's hint text (shown in empty value cell). - */ - inline wxString GetHintText() const; - - /** Returns property grid where property lies. */ - wxPropertyGrid* GetGrid() const; - - /** Returns owner wxPropertyGrid, but only if one is currently on a page - displaying this property. */ - wxPropertyGrid* GetGridIfDisplayed() const; - - /** Returns highest level non-category, non-root parent. Useful when you - have nested wxCustomProperties/wxParentProperties. - @remarks - Thus, if immediate parent is root or category, this will return the - property itself. - */ - wxPGProperty* GetMainParent() const; - - /** Return parent of property */ - wxPGProperty* GetParent() const { return m_parent; } - - /** Returns true if property has editable wxTextCtrl when selected. - - @remarks - Although disabled properties do not displayed editor, they still - return True here as being disabled is considered a temporary - condition (unlike being read-only or having limited editing enabled). - */ - bool IsTextEditable() const; - - bool IsValueUnspecified() const - { - return m_value.IsNull(); - } - -#if WXWIN_COMPATIBILITY_3_0 - /** - Returns non-zero if property has given flag set. - - @see propgrid_propflags - */ - FlagType HasFlag( wxPGPropertyFlags flag ) const - { - return ( m_flags & flag ); - } -#else - /** - Returns true if property has given flag set. - - @see propgrid_propflags - */ - bool HasFlag(wxPGPropertyFlags flag) const - { - return (m_flags & flag) != 0; - } -#endif - /** - Returns true if property has given flag set. - */ - bool HasFlag(FlagType flag) const - { - return (m_flags & flag) != 0; - } - - /** - Returns true if property has all given flags set. - */ - bool HasFlagsExact(FlagType flags) const - { - return (m_flags & flags) == flags; - } - - /** Returns comma-delimited string of property attributes. - */ - const wxPGAttributeStorage& GetAttributes() const - { - return m_attributes; - } - - /** Returns m_attributes as list wxVariant. - */ - wxVariant GetAttributesAsList() const; - -#if WXWIN_COMPATIBILITY_3_0 - /** - Returns property flags. - */ - wxDEPRECATED_MSG("Use HasFlag or HasFlagsExact functions instead.") - FlagType GetFlags() const - { - return m_flags; - } -#endif - - const wxPGEditor* GetEditorClass() const; - - wxString GetValueType() const - { - return m_value.GetType(); - } - - /** Returns editor used for given column. NULL for no editor. - */ - const wxPGEditor* GetColumnEditor( int column ) const - { - if ( column == 1 ) - return GetEditorClass(); - - return NULL; - } - - /** Returns common value selected for this property. -1 for none. - */ - int GetCommonValue() const - { - return m_commonValue; - } - - /** Returns true if property has even one visible child. - */ - bool HasVisibleChildren() const; - - /** - Use this member function to add independent (ie. regular) children to - a property. - - @return Inserted childProperty. - - @remarks wxPropertyGrid is not automatically refreshed by this - function. - - @see AddPrivateChild() - */ - wxPGProperty* InsertChild( int index, wxPGProperty* childProperty ); - - /** Inserts a new choice to property's list of choices. - */ - int InsertChoice( const wxString& label, int index, int value = wxPG_INVALID_VALUE ); - - /** - Returns true if this property is actually a wxPropertyCategory. - */ - bool IsCategory() const { return (m_flags & wxPG_PROP_CATEGORY) != 0; } - - /** Returns true if this property is actually a wxRootProperty. - */ - bool IsRoot() const { return (m_parent == NULL); } - - /** Returns true if this is a sub-property. */ - bool IsSubProperty() const - { - wxPGProperty* parent = (wxPGProperty*)m_parent; - if ( parent && !parent->IsCategory() ) - return true; - return false; - } - - /** Returns last visible sub-property, recursively. - */ - const wxPGProperty* GetLastVisibleSubItem() const; - - wxVariant GetDefaultValue() const; - - int GetMaxLength() const - { - return (int) m_maxLen; - } - - /** - Determines, recursively, if all children are not unspecified. - - @param pendingList - Assumes members in this wxVariant list as pending - replacement values. - */ - bool AreAllChildrenSpecified( wxVariant* pendingList = NULL ) const; - - /** Updates composed values of parent non-category properties, recursively. - Returns topmost property updated. - - @remarks - - Must not call SetValue() (as can be called in it). - */ - wxPGProperty* UpdateParentValues(); - - /** Returns true if containing grid uses wxPG_EX_AUTO_UNSPECIFIED_VALUES. - */ - bool UsesAutoUnspecified() const - { - return (m_flags & wxPG_PROP_AUTO_UNSPECIFIED) != 0; - } - - wxBitmap* GetValueImage() const - { - return m_valueBitmap; - } - - wxVariant GetAttribute( const wxString& name ) const; - - /** - Returns named attribute, as string, if found. - - Otherwise defVal is returned. - */ - wxString GetAttribute( const wxString& name, const wxString& defVal ) const; - - /** - Returns named attribute, as long, if found. - - Otherwise defVal is returned. - */ - long GetAttributeAsLong( const wxString& name, long defVal ) const; - - /** - Returns named attribute, as double, if found. - - Otherwise defVal is returned. - */ - double GetAttributeAsDouble( const wxString& name, double defVal ) const; - - unsigned int GetDepth() const { return (unsigned int)m_depth; } - - /** Gets flags as a'|' delimited string. Note that flag names are not - prepended with 'wxPG_PROP_'. - @param flagsMask - String will only be made to include flags combined by this parameter. - */ - wxString GetFlagsAsString( FlagType flagsMask ) const; - - /** Returns position in parent's array. */ - unsigned int GetIndexInParent() const - { - return (unsigned int)m_arrIndex; - } - - /** Hides or reveals the property. - @param hide - true for hide, false for reveal. - @param flags - By default changes are applied recursively. Set this paramter - wxPG_DONT_RECURSE to prevent this. - */ - bool Hide( bool hide, int flags = wxPG_RECURSE ); - - bool IsExpanded() const - { return (!(m_flags & wxPG_PROP_COLLAPSED) && GetChildCount()); } - - /** Returns true if all parents expanded. - */ - bool IsVisible() const; - - bool IsEnabled() const { return !(m_flags & wxPG_PROP_DISABLED); } - - /** If property's editor is created this forces its recreation. - Useful in SetAttribute etc. Returns true if actually did anything. - */ - bool RecreateEditor(); - - /** If property's editor is active, then update it's value. - */ - void RefreshEditor(); - - /** Sets an attribute for this property. - @param name - Text identifier of attribute. See @ref propgrid_property_attributes. - @param value - Value of attribute. - */ - void SetAttribute( const wxString& name, wxVariant value ); - - void SetAttributes( const wxPGAttributeStorage& attributes ); - - /** - Set if user can change the property's value to unspecified by - modifying the value of the editor control (usually by clearing - it). Currently, this can work with following properties: - wxIntProperty, wxUIntProperty, wxFloatProperty, wxEditEnumProperty. - - @param enable - Whether to enable or disable this behaviour (it is disabled by - default). - */ - void SetAutoUnspecified( bool enable = true ) - { - ChangeFlag(wxPG_PROP_AUTO_UNSPECIFIED, enable); - } - - /** - Sets property's background colour. - - @param colour - Background colour to use. - - @param flags - Default is wxPG_RECURSE which causes colour to be set recursively. - Omit this flag to only set colour for the property in question - and not any of its children. - */ - void SetBackgroundColour( const wxColour& colour, - int flags = wxPG_RECURSE ); - - /** - Sets property's text colour. - - @param colour - Text colour to use. - - @param flags - Default is wxPG_RECURSE which causes colour to be set recursively. - Omit this flag to only set colour for the property in question - and not any of its children. - */ - void SetTextColour( const wxColour& colour, - int flags = wxPG_RECURSE ); - - /** - Sets property's default text and background colours. - - @param flags - Default is wxPG_RECURSE which causes colours to be set recursively. - Omit this flag to only set colours for the property in question - and not any of its children. - */ - void SetDefaultColours(int flags = wxPG_RECURSE); - - /** Set default value of a property. Synonymous to - - @code - SetAttribute("DefaultValue", value); - @endcode - */ - void SetDefaultValue( wxVariant& value ); - - /** Sets editor for a property. - - @param editor - For builtin editors, use wxPGEditor_X, where X is builtin editor's - name (TextCtrl, Choice, etc. see wxPGEditor documentation for full - list). - - For custom editors, use pointer you received from - wxPropertyGrid::RegisterEditorClass(). - */ - void SetEditor( const wxPGEditor* editor ) - { - m_customEditor = editor; - } - - /** Sets editor for a property. - */ - inline void SetEditor( const wxString& editorName ); - - /** - Sets cell information for given column. - */ - void SetCell( int column, const wxPGCell& cell ); - - /** Sets common value selected for this property. -1 for none. - */ - void SetCommonValue( int commonValue ) - { - m_commonValue = commonValue; - } - - /** Sets flags from a '|' delimited string. Note that flag names are not - prepended with 'wxPG_PROP_'. - */ - void SetFlagsFromString( const wxString& str ); - - /** Sets property's "is it modified?" flag. Affects children recursively. - */ - void SetModifiedStatus( bool modified ) - { - SetFlagRecursively(wxPG_PROP_MODIFIED, modified); - } - - /** Call in OnEvent(), OnButtonClick() etc. to change the property value - based on user input. - - @remarks - This method is const since it doesn't actually modify value, but posts - given variant as pending value, stored in wxPropertyGrid. - */ - void SetValueInEvent( wxVariant value ) const; - - /** - Call this to set value of the property. - - Unlike methods in wxPropertyGrid, this does not automatically update - the display. - - @remarks - Use wxPropertyGrid::ChangePropertyValue() instead if you need to run - through validation process and send property change event. - - If you need to change property value in event, based on user input, use - SetValueInEvent() instead. - - @param pList - Pointer to list variant that contains child values. Used to - indicate which children should be marked as modified. - - @param flags - Various flags (for instance, wxPG_SETVAL_REFRESH_EDITOR, which is - enabled by default). - */ - void SetValue( wxVariant value, wxVariant* pList = NULL, - int flags = wxPG_SETVAL_REFRESH_EDITOR ); - - /** Set wxBitmap in front of the value. This bitmap may be ignored - by custom cell renderers. - */ - void SetValueImage( wxBitmap& bmp ); - - /** Sets selected choice and changes property value. - - Tries to retain value type, although currently if it is not string, - then it is forced to integer. - */ - void SetChoiceSelection( int newValue ); - - void SetExpanded( bool expanded ) - { - if ( !expanded ) m_flags |= wxPG_PROP_COLLAPSED; - else m_flags &= ~wxPG_PROP_COLLAPSED; - } - - /** - Sets or clears given property flag. Mainly for internal use. - - @remarks Setting a property flag never has any side-effect, and is - intended almost exclusively for internal use. So, for - example, if you want to disable a property, call - Enable(false) instead of setting wxPG_PROP_DISABLED flag. - - @see HasFlag(), HasFlagsExact() - */ - void ChangeFlag( wxPGPropertyFlags flag, bool set ) - { - if ( set ) - m_flags |= flag; - else - m_flags &= ~flag; - } - - /** - Sets or clears given property flag, recursively. This function is - primarily intended for internal use. - - @see ChangeFlag() - */ - void SetFlagRecursively( wxPGPropertyFlags flag, bool set ); - - void SetHelpString( const wxString& helpString ) - { - m_helpString = helpString; - } - - void SetLabel( const wxString& label ); - - void SetName( const wxString& newName ); - - /** - Changes what sort of parent this property is for its children. - - @param flag - Use one of the following values: wxPG_PROP_MISC_PARENT (for - generic parents), wxPG_PROP_CATEGORY (for categories), or - wxPG_PROP_AGGREGATE (for derived property classes with private - children). - - @remarks You generally do not need to call this function. - */ - void SetParentalType( int flag ) - { - m_flags &= ~(wxPG_PROP_PROPERTY|wxPG_PROP_PARENTAL_FLAGS); - m_flags |= flag; - } - - void SetValueToUnspecified() - { - wxVariant val; // Create NULL variant - SetValue(val, NULL, wxPG_SETVAL_REFRESH_EDITOR); - } - - // Helper function (for wxPython bindings and such) for settings protected - // m_value. - void SetValuePlain( wxVariant value ) - { - m_value = value; - } - -#if wxUSE_VALIDATORS - /** Sets wxValidator for a property*/ - void SetValidator( const wxValidator& validator ) - { - m_validator = wxDynamicCast(validator.Clone(),wxValidator); - } - - /** Gets assignable version of property's validator. */ - wxValidator* GetValidator() const - { - if ( m_validator ) - return m_validator; - return DoGetValidator(); - } -#endif // wxUSE_VALIDATORS - - /** Returns client data (void*) of a property. - */ - void* GetClientData() const - { - return m_clientData; - } - - /** Sets client data (void*) of a property. - @remarks - This untyped client data has to be deleted manually. - */ - void SetClientData( void* clientData ) - { - m_clientData = clientData; - } - - /** Returns client object of a property. - */ - void SetClientObject(wxClientData* clientObject) - { - delete m_clientObject; - m_clientObject = clientObject; - } - - /** Sets managed client object of a property. - */ - wxClientData *GetClientObject() const { return m_clientObject; } - - /** - Sets new set of choices for the property. - - @remarks This operation deselects the property and clears its - value. - */ - bool SetChoices( const wxPGChoices& choices ); - - /** Set max length of text in text editor. - */ - inline bool SetMaxLength( int maxLen ); - - /** Call with 'false' in OnSetValue to cancel value changes after all - (i.e. cancel 'true' returned by StringToValue() or IntToValue()). - */ - void SetWasModified( bool set = true ) - { - if ( set ) m_flags |= wxPG_PROP_WAS_MODIFIED; - else m_flags &= ~wxPG_PROP_WAS_MODIFIED; - } - - const wxString& GetHelpString() const - { - return m_helpString; - } - - // Use, for example, to detect if item is inside collapsed section. - bool IsSomeParent( wxPGProperty* candidate_parent ) const; - - /** - Adapts list variant into proper value using consecutive - ChildChanged-calls. - */ - void AdaptListToValue( wxVariant& list, wxVariant* value ) const; - -#if wxPG_COMPATIBILITY_1_4 - /** - Adds a private child property. - - @deprecated Use AddPrivateChild() instead. - - @see AddPrivateChild() - */ - wxDEPRECATED( void AddChild( wxPGProperty* prop ) ); -#endif - - /** - Adds a private child property. If you use this instead of - wxPropertyGridInterface::Insert() or - wxPropertyGridInterface::AppendIn(), then property's parental - type will automatically be set up to wxPG_PROP_AGGREGATE. In other - words, all properties of this property will become private. - */ - void AddPrivateChild( wxPGProperty* prop ); - - /** - Appends a new child property. - */ - wxPGProperty* AppendChild( wxPGProperty* prop ) - { - return InsertChild(-1, prop); - } - - /** Returns height of children, recursively, and - by taking expanded/collapsed status into account. - - iMax is used when finding property y-positions. - */ - int GetChildrenHeight( int lh, int iMax = -1 ) const; - - /** Returns number of child properties */ - unsigned int GetChildCount() const - { - return (unsigned int) m_children.size(); - } - - /** Returns sub-property at index i. */ - wxPGProperty* Item( unsigned int i ) const - { return m_children[i]; } - - /** Returns last sub-property. - */ - wxPGProperty* Last() const { return m_children.back(); } - - /** Returns index of given child property. */ - int Index( const wxPGProperty* p ) const; - - // Puts correct indexes to children - void FixIndicesOfChildren( unsigned int starthere = 0 ); - - /** - Converts image width into full image offset, with margins. - */ - int GetImageOffset( int imageWidth ) const; - - // Returns wxPropertyGridPageState in which this property resides. - wxPropertyGridPageState* GetParentState() const { return m_parentState; } - - wxPGProperty* GetItemAtY( unsigned int y, - unsigned int lh, - unsigned int* nextItemY ) const; - - /** Returns property at given virtual y coordinate. - */ - wxPGProperty* GetItemAtY( unsigned int y ) const; - - /** Returns (direct) child property with given name (or NULL if not found). - */ - wxPGProperty* GetPropertyByName( const wxString& name ) const; - - // Returns various display-related information for given column -#if WXWIN_COMPATIBILITY_3_0 - wxDEPRECATED_MSG("don't use GetDisplayInfo function with argument of 'const wxPGCell**' type. Use 'wxPGCell*' argument instead") - void GetDisplayInfo( unsigned int column, - int choiceIndex, - int flags, - wxString* pString, - const wxPGCell** pCell ); -#endif // WXWIN_COMPATIBILITY_3_0 - // This function can return modified (customized) cell object. - void GetDisplayInfo( unsigned int column, - int choiceIndex, - int flags, - wxString* pString, - wxPGCell* pCell ); - - static wxString* sm_wxPG_LABEL; - - /** This member is public so scripting language bindings - wrapper code can access it freely. - */ - void* m_clientData; - -protected: - - /** - Sets property cell in fashion that reduces number of exclusive - copies of cell data. Used when setting, for instance, same - background colour for a number of properties. - - @param firstCol - First column to affect. - - @param lastCol - Last column to affect. - - @param preparedCell - Pre-prepared cell that is used for those which cell data - before this matched unmodCellData. - - @param srcData - If unmodCellData did not match, valid cell data from this - is merged into cell (usually generating new exclusive copy - of cell's data). - - @param unmodCellData - If cell's cell data matches this, its cell is now set to - preparedCell. - - @param ignoreWithFlags - Properties with any one of these flags are skipped. - - @param recursively - If @true, apply this operation recursively in child properties. - */ - void AdaptiveSetCell( unsigned int firstCol, - unsigned int lastCol, - const wxPGCell& preparedCell, - const wxPGCell& srcData, - wxPGCellData* unmodCellData, - FlagType ignoreWithFlags, - bool recursively ); - - /** - Clear cells associated with property. - - @param recursively - If @true, apply this operation recursively in child properties. - */ - void ClearCells(FlagType ignoreWithFlags, bool recursively); - - /** - Makes sure m_cells has size of column+1 (or more). - */ - void EnsureCells( unsigned int column ); - - /** Returns (direct) child property with given name (or NULL if not found), - with hint index. - - @param hintIndex - Start looking for the child at this index. - - @remarks - Does not support scope (i.e. Parent.Child notation). - */ - wxPGProperty* GetPropertyByNameWH( const wxString& name, - unsigned int hintIndex ) const; - - /** This is used by Insert etc. */ - void DoAddChild( wxPGProperty* prop, - int index = -1, - bool correct_mode = true ); - - void DoGenerateComposedValue( wxString& text, - int argFlags = wxPG_VALUE_IS_CURRENT, - const wxVariantList* valueOverrides = NULL, - wxPGHashMapS2S* childResults = NULL ) const; - - bool DoHide( bool hide, int flags ); - - void DoSetName(const wxString& str) { m_name = str; } - - /** Deletes all sub-properties. */ - void Empty(); - - bool HasCell( unsigned int column ) const - { - return m_cells.size() > column; - } - - void InitAfterAdded( wxPropertyGridPageState* pageState, - wxPropertyGrid* propgrid ); - - /** - Returns true if child property is selected. - */ - bool IsChildSelected( bool recursive = false ) const; - - // Removes child property with given pointer. Does not delete it. - void RemoveChild( wxPGProperty* p ); - - // Removes child property at given index. Does not delete it. - void RemoveChild(unsigned int index); - - // Sorts children using specified comparison function. - void SortChildren(int (*fCmp)(wxPGProperty**, wxPGProperty**)); - - void DoEnable( bool enable ); - - void DoPreAddChild( int index, wxPGProperty* prop ); - - void SetParentState( wxPropertyGridPageState* pstate ) - { m_parentState = pstate; } - - void SetFlag( wxPGPropertyFlags flag ) - { - // - // NB: While using wxPGPropertyFlags here makes it difficult to - // combine different flags, it usefully prevents user from - // using incorrect flags (say, wxWindow styles). - m_flags |= flag; - } - - void ClearFlag( FlagType flag ) { m_flags &= ~(flag); } - - // Called when the property is being removed from the grid and/or - // page state (but *not* when it is also deleted). - void OnDetached(wxPropertyGridPageState* state, - wxPropertyGrid* propgrid); - - // Call after fixed sub-properties added/removed after creation. - // if oldSelInd >= 0 and < new max items, then selection is - // moved to it. - void SubPropsChanged( int oldSelInd = -1 ); - - int GetY2( int lh ) const; - - wxString m_label; - wxString m_name; - wxPGProperty* m_parent; - wxPropertyGridPageState* m_parentState; - - wxClientData* m_clientObject; - - // Overrides editor returned by property class - const wxPGEditor* m_customEditor; -#if wxUSE_VALIDATORS - // Editor is going to get this validator - wxValidator* m_validator; -#endif - // Show this in front of the value - // - // TODO: Can bitmap be implemented with wxPGCell? - wxBitmap* m_valueBitmap; - - wxVariant m_value; - wxPGAttributeStorage m_attributes; - wxArrayPGProperty m_children; - - // Extended cell information - wxVector<wxPGCell> m_cells; - - // Choices shown in drop-down list of editor control. - wxPGChoices m_choices; - - // Help shown in statusbar or help box. - wxString m_helpString; - - // Index in parent's property array. - unsigned int m_arrIndex; - - // If not -1, then overrides m_value - int m_commonValue; - - FlagType m_flags; - - // Maximum length (mainly for string properties). Could be in some sort of - // wxBaseStringProperty, but currently, for maximum flexibility and - // compatibility, we'll stick it here. Anyway, we had 3 excess bytes to use - // so short int will fit in just fine. - short m_maxLen; - - // Root has 0, categories etc. at that level 1, etc. - unsigned char m_depth; - - // m_depthBgCol indicates width of background colour between margin and item - // (essentially this is category's depth, if none then equals m_depth). - unsigned char m_depthBgCol; - -private: - // Called in constructors. - void Init(); - void Init( const wxString& label, const wxString& name ); -}; - -// ----------------------------------------------------------------------- - -// -// Property class declaration helper macros -// (wxPGRootPropertyClass and wxPropertyCategory require this). -// - -#define WX_PG_DECLARE_DOGETEDITORCLASS \ - virtual const wxPGEditor* DoGetEditorClass() const wxOVERRIDE; - -#ifndef WX_PG_DECLARE_PROPERTY_CLASS - #define WX_PG_DECLARE_PROPERTY_CLASS(CLASSNAME) \ - public: \ - wxDECLARE_DYNAMIC_CLASS(CLASSNAME); \ - WX_PG_DECLARE_DOGETEDITORCLASS \ - private: -#endif - -// Implements sans constructor function. Also, first arg is class name, not -// property name. -#define wxPG_IMPLEMENT_PROPERTY_CLASS_PLAIN(PROPNAME, EDITOR) \ -const wxPGEditor* PROPNAME::DoGetEditorClass() const \ -{ \ - return wxPGEditor_##EDITOR; \ -} - -#if WXWIN_COMPATIBILITY_3_0 -// This macro is deprecated. Use wxPG_IMPLEMENT_PROPERTY_CLASS_PLAIN instead. -#define WX_PG_IMPLEMENT_PROPERTY_CLASS_PLAIN(PROPNAME,T,EDITOR) \ -wxPG_IMPLEMENT_PROPERTY_CLASS_PLAIN(PROPNAME, EDITOR) -#endif // WXWIN_COMPATIBILITY_3_0 - -// ----------------------------------------------------------------------- - -/** @class wxPGRootProperty - @ingroup classes - Root parent property. -*/ -class WXDLLIMPEXP_PROPGRID wxPGRootProperty : public wxPGProperty -{ -public: - WX_PG_DECLARE_PROPERTY_CLASS(wxPGRootProperty) -public: - - /** Constructor. */ - wxPGRootProperty( const wxString& name = wxS("<Root>") ); - virtual ~wxPGRootProperty(); - - virtual bool StringToValue( wxVariant&, const wxString&, int ) const wxOVERRIDE - { - return false; - } - -protected: -}; - -// ----------------------------------------------------------------------- - -/** @class wxPropertyCategory - @ingroup classes - Category (caption) property. -*/ -class WXDLLIMPEXP_PROPGRID wxPropertyCategory : public wxPGProperty -{ - friend class wxPropertyGrid; - friend class wxPropertyGridPageState; - WX_PG_DECLARE_PROPERTY_CLASS(wxPropertyCategory) -public: - - /** Default constructor is only used in special cases. */ - wxPropertyCategory(); - - wxPropertyCategory( const wxString& label, - const wxString& name = wxPG_LABEL ); - ~wxPropertyCategory(); - - int GetTextExtent( const wxWindow* wnd, const wxFont& font ) const; - - virtual wxString ValueToString( wxVariant& value, int argFlags ) const wxOVERRIDE; - virtual wxString GetValueAsString( int argFlags = 0 ) const wxOVERRIDE; - -protected: - void SetTextColIndex( unsigned int colInd ) - { m_capFgColIndex = (wxByte) colInd; } - unsigned int GetTextColIndex() const - { return (unsigned int) m_capFgColIndex; } - - void CalculateTextExtent( wxWindow* wnd, const wxFont& font ); - - int m_textExtent; // pre-calculated length of text - wxByte m_capFgColIndex; // caption text colour index - -private: - void Init(); -}; - -// ----------------------------------------------------------------------- - -#endif // wxUSE_PROPGRID - -#endif // _WX_PROPGRID_PROPERTY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgrid.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgrid.h deleted file mode 100644 index 3c597799..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgrid.h +++ /dev/null @@ -1,2777 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/propgrid/propgrid.h -// Purpose: wxPropertyGrid -// Author: Jaakko Salli -// Modified by: -// Created: 2004-09-25 -// Copyright: (c) Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROPGRID_PROPGRID_H_ -#define _WX_PROPGRID_PROPGRID_H_ - -#include "wx/defs.h" - -#if wxUSE_PROPGRID - -#include "wx/thread.h" -#include "wx/dcclient.h" -#include "wx/control.h" -#include "wx/scrolwin.h" -#include "wx/tooltip.h" -#include "wx/datetime.h" -#include "wx/recguard.h" -#include "wx/time.h" // needed for wxMilliClock_t - -#include "wx/propgrid/property.h" -#include "wx/propgrid/propgridiface.h" - - -#ifndef SWIG -extern WXDLLIMPEXP_DATA_PROPGRID(const char) wxPropertyGridNameStr[]; -#endif - -class wxPGComboBox; - -#if wxUSE_STATUSBAR -class WXDLLIMPEXP_FWD_CORE wxStatusBar; -#endif - -// ----------------------------------------------------------------------- -// Global variables -// ----------------------------------------------------------------------- - -// This is required for sharing common global variables. -class WXDLLIMPEXP_PROPGRID wxPGGlobalVarsClass -{ -public: - - wxPGGlobalVarsClass(); - ~wxPGGlobalVarsClass(); - -#if wxUSE_THREADS - // Critical section for handling the globals. Generally it is not needed - // since GUI code is supposed to be in single thread. However, - // we do want the user to be able to convey wxPropertyGridEvents to other - // threads. - wxCriticalSection m_critSect; -#endif - - // Used by advprops, but here to make things easier. - wxString m_pDefaultImageWildcard; - - // Map of editor class instances (keys are name string). - wxPGHashMapS2P m_mapEditorClasses; - -#if wxUSE_VALIDATORS - wxVector<wxValidator*> m_arrValidators; // These wxValidators need to be freed -#endif - - wxPGHashMapS2P m_dictPropertyClassInfo; // PropertyName -> ClassInfo - - wxPGChoices* m_fontFamilyChoices; - - // Replace with your own to affect all properties using default renderer. - wxPGCellRenderer* m_defaultRenderer; - - wxPGChoices m_boolChoices; - - // Some shared variants -#if WXWIN_COMPATIBILITY_3_0 - wxVariant m_vEmptyString; - wxVariant m_vZero; - wxVariant m_vMinusOne; - wxVariant m_vTrue; - wxVariant m_vFalse; -#else - const wxVariant m_vEmptyString; - const wxVariant m_vZero; - const wxVariant m_vMinusOne; - const wxVariant m_vTrue; - const wxVariant m_vFalse; -#endif // WXWIN_COMPATIBILITY_3_0 - - // Cached constant strings -#if WXWIN_COMPATIBILITY_3_0 - wxPGCachedString m_strstring; - wxPGCachedString m_strlong; - wxPGCachedString m_strbool; - wxPGCachedString m_strlist; - - wxPGCachedString m_strDefaultValue; - wxPGCachedString m_strMin; - wxPGCachedString m_strMax; - wxPGCachedString m_strUnits; - wxPGCachedString m_strHint; -#else - const wxString m_strstring; - const wxString m_strlong; - const wxString m_strbool; - const wxString m_strlist; - - const wxString m_strDefaultValue; - const wxString m_strMin; - const wxString m_strMax; - const wxString m_strUnits; - const wxString m_strHint; -#endif // WXWIN_COMPATIBILITY_3_0 - -#if wxPG_COMPATIBILITY_1_4 - wxPGCachedString m_strInlineHelp; -#endif - - // If true then some things are automatically translated - bool m_autoGetTranslation; - - // > 0 if errors cannot or should not be shown in statusbar etc. - int m_offline; - - int m_extraStyle; // global extra style - - int m_warnings; - - int HasExtraStyle( int style ) const { return (m_extraStyle & style); } -}; - -extern WXDLLIMPEXP_DATA_PROPGRID(wxPGGlobalVarsClass*) wxPGGlobalVars; - -#define wxPGVariant_EmptyString (wxPGGlobalVars->m_vEmptyString) -#define wxPGVariant_Zero (wxPGGlobalVars->m_vZero) -#define wxPGVariant_MinusOne (wxPGGlobalVars->m_vMinusOne) -#define wxPGVariant_True (wxPGGlobalVars->m_vTrue) -#define wxPGVariant_False (wxPGGlobalVars->m_vFalse) - -#define wxPGVariant_Bool(A) (A?wxPGVariant_True:wxPGVariant_False) - -// When wxPG is loaded dynamically after the application is already running -// then the built-in module system won't pick this one up. Add it manually. -WXDLLIMPEXP_PROPGRID void wxPGInitResourceModule(); - -// ----------------------------------------------------------------------- - -/** @section propgrid_window_styles wxPropertyGrid Window Styles - - SetWindowStyleFlag method can be used to modify some of these at run-time. - @{ -*/ -enum wxPG_WINDOW_STYLES -{ - -/** This will cause Sort() automatically after an item is added. - When inserting a lot of items in this mode, it may make sense to - use Freeze() before operations and Thaw() afterwards to increase - performance. -*/ -wxPG_AUTO_SORT = 0x00000010, - -/** Categories are not initially shown (even if added). - IMPORTANT NOTE: If you do not plan to use categories, then this - style will waste resources. - This flag can also be changed using wxPropertyGrid::EnableCategories method. -*/ -wxPG_HIDE_CATEGORIES = 0x00000020, - -/* This style combines non-categoric mode and automatic sorting. -*/ -wxPG_ALPHABETIC_MODE = (wxPG_HIDE_CATEGORIES|wxPG_AUTO_SORT), - -/** Modified values are shown in bold font. Changing this requires Refresh() - to show changes. -*/ -wxPG_BOLD_MODIFIED = 0x00000040, - -/** Using this style, the column splitters move automatically based on column - proportions (default is equal proportion for every column). This behaviour - stops once the user manually moves a splitter, and returns when a - splitter is double-clicked. - - @see wxPropertyGridInterface::SetColumnProportion(). -*/ -wxPG_SPLITTER_AUTO_CENTER = 0x00000080, - -/** Display tooltips for cell text that cannot be shown completely. If - wxUSE_TOOLTIPS is 0, then this doesn't have any effect. -*/ -wxPG_TOOLTIPS = 0x00000100, - -/** Disables margin and hides all expand/collapse buttons that would appear - outside the margin (for sub-properties). Toggling this style automatically - expands all collapsed items. -*/ -wxPG_HIDE_MARGIN = 0x00000200, - -/** This style prevents user from moving the splitter. -*/ -wxPG_STATIC_SPLITTER = 0x00000400, - -/** Combination of other styles that make it impossible for user to modify - the layout. -*/ -wxPG_STATIC_LAYOUT = (wxPG_HIDE_MARGIN|wxPG_STATIC_SPLITTER), - -/** Disables wxTextCtrl based editors for properties which - can be edited in another way. - - Equals calling wxPropertyGrid::LimitPropertyEditing for all added - properties. -*/ -wxPG_LIMITED_EDITING = 0x00000800, - -/** wxPropertyGridManager only: Show toolbar for mode and page selection. */ -wxPG_TOOLBAR = 0x00001000, - -/** wxPropertyGridManager only: Show adjustable text box showing description - or help text, if available, for currently selected property. -*/ -wxPG_DESCRIPTION = 0x00002000, - -/** wxPropertyGridManager only: don't show an internal border around the - property grid. Recommended if you use a header. -*/ -wxPG_NO_INTERNAL_BORDER = 0x00004000, - -/** A mask which can be used to filter (out) all styles. -*/ -wxPG_WINDOW_STYLE_MASK = wxPG_AUTO_SORT|wxPG_HIDE_CATEGORIES|wxPG_BOLD_MODIFIED| - wxPG_SPLITTER_AUTO_CENTER|wxPG_TOOLTIPS|wxPG_HIDE_MARGIN| - wxPG_STATIC_SPLITTER|wxPG_LIMITED_EDITING|wxPG_TOOLBAR| - wxPG_DESCRIPTION|wxPG_NO_INTERNAL_BORDER -}; - -#if wxPG_COMPATIBILITY_1_4 - // In wxPG 1.4 this was used to enable now-default theme border support - // in wxPropertyGridManager. - #define wxPG_THEME_BORDER 0x00000000 -#endif - - -enum wxPG_EX_WINDOW_STYLES -{ - -/** - NOTE: wxPG_EX_xxx are extra window styles and must be set using - SetExtraStyle() member function. - - Speeds up switching to wxPG_HIDE_CATEGORIES mode. Initially, if - wxPG_HIDE_CATEGORIES is not defined, the non-categorized data storage is - not activated, and switching the mode first time becomes somewhat slower. - wxPG_EX_INIT_NOCAT activates the non-categorized data storage right away. - IMPORTANT NOTE: If you do plan not switching to non-categoric mode, or if - you don't plan to use categories at all, then using this style will result - in waste of resources. - -*/ -wxPG_EX_INIT_NOCAT = 0x00001000, - -/** Extended window style that sets wxPropertyGridManager toolbar to not - use flat style. -*/ -wxPG_EX_NO_FLAT_TOOLBAR = 0x00002000, - -/** Shows alphabetic/categoric mode buttons from toolbar. -*/ -wxPG_EX_MODE_BUTTONS = 0x00008000, - -/** Show property help strings as tool tips instead as text on the status bar. - You can set the help strings using SetPropertyHelpString member function. -*/ -wxPG_EX_HELP_AS_TOOLTIPS = 0x00010000, - -/** Prevent TAB from focusing to wxButtons. This behaviour was default - in version 1.2.0 and earlier. - NOTE! Tabbing to button doesn't work yet. Problem seems to be that on wxMSW - at least the button doesn't properly propagate key events (yes, I'm using - wxWANTS_CHARS). -*/ -//wxPG_EX_NO_TAB_TO_BUTTON = 0x00020000, - -/** Allows relying on native double-buffering. -*/ -wxPG_EX_NATIVE_DOUBLE_BUFFERING = 0x00080000, - -/** Set this style to let user have ability to set values of properties to - unspecified state. Same as setting wxPG_PROP_AUTO_UNSPECIFIED for - all properties. -*/ -wxPG_EX_AUTO_UNSPECIFIED_VALUES = 0x00200000, - -/** - If this style is used, built-in attributes (such as wxPG_FLOAT_PRECISION - and wxPG_STRING_PASSWORD) are not stored into property's attribute storage - (thus they are not readable). - - Note that this option is global, and applies to all wxPG property - containers. -*/ -wxPG_EX_WRITEONLY_BUILTIN_ATTRIBUTES = 0x00400000, - -/** Hides page selection buttons from toolbar. -*/ -wxPG_EX_HIDE_PAGE_BUTTONS = 0x01000000, - -/** Allows multiple properties to be selected by user (by pressing SHIFT - when clicking on a property, or by dragging with left mouse button - down). - - You can get array of selected properties with - wxPropertyGridInterface::GetSelectedProperties(). In multiple selection - mode wxPropertyGridInterface::GetSelection() returns - property which has editor active (usually the first one - selected). Other useful member functions are ClearSelection(), - AddToSelection() and RemoveFromSelection(). -*/ -wxPG_EX_MULTIPLE_SELECTION = 0x02000000, - -/** - This enables top-level window tracking which allows wxPropertyGrid to - notify the application of last-minute property value changes by user. - - This style is not enabled by default because it may cause crashes when - wxPropertyGrid is used in with wxAUI or similar system. - - @remarks If you are not in fact using any system that may change - wxPropertyGrid's top-level parent window on its own, then you - are recommended to enable this style. -*/ -wxPG_EX_ENABLE_TLP_TRACKING = 0x04000000, - -/** Don't show divider above toolbar, on Windows. -*/ -wxPG_EX_NO_TOOLBAR_DIVIDER = 0x08000000, - -/** Show a separator below the toolbar. -*/ -wxPG_EX_TOOLBAR_SEPARATOR = 0x10000000, - -/** Allows to take focus on the entire area (on canvas) - even if wxPropertyGrid is not a standalone control. -*/ -wxPG_EX_ALWAYS_ALLOW_FOCUS = 0x00100000, - -/** A mask which can be used to filter (out) all extra styles. -*/ -wxPG_EX_WINDOW_STYLE_MASK = wxPG_EX_INIT_NOCAT|wxPG_EX_NO_FLAT_TOOLBAR|wxPG_EX_MODE_BUTTONS| - wxPG_EX_HELP_AS_TOOLTIPS|wxPG_EX_NATIVE_DOUBLE_BUFFERING|wxPG_EX_AUTO_UNSPECIFIED_VALUES| - wxPG_EX_WRITEONLY_BUILTIN_ATTRIBUTES|wxPG_EX_HIDE_PAGE_BUTTONS|wxPG_EX_MULTIPLE_SELECTION| - wxPG_EX_ENABLE_TLP_TRACKING|wxPG_EX_NO_TOOLBAR_DIVIDER|wxPG_EX_TOOLBAR_SEPARATOR| - wxPG_EX_ALWAYS_ALLOW_FOCUS -}; - -#if wxPG_COMPATIBILITY_1_4 - #define wxPG_EX_DISABLE_TLP_TRACKING 0x00000000 -#endif - -/** Combines various styles. -*/ -#define wxPG_DEFAULT_STYLE (0) - -/** Combines various styles. -*/ -#define wxPGMAN_DEFAULT_STYLE (0) - -/** @} -*/ - -// ----------------------------------------------------------------------- - -/** @class wxPGCommonValue - - wxPropertyGrid stores information about common values in these - records. - - NB: Common value feature is not complete, and thus not mentioned in - documentation. -*/ -class WXDLLIMPEXP_PROPGRID wxPGCommonValue -{ -public: - - wxPGCommonValue( const wxString& label, wxPGCellRenderer* renderer ) - { - m_label = label; - m_renderer = renderer; - renderer->IncRef(); - } - virtual ~wxPGCommonValue() - { - m_renderer->DecRef(); - } - - virtual wxString GetEditableText() const { return m_label; } - const wxString& GetLabel() const { return m_label; } - wxPGCellRenderer* GetRenderer() const { return m_renderer; } - -protected: - wxString m_label; - wxPGCellRenderer* m_renderer; -}; - -// ----------------------------------------------------------------------- - -/** @section propgrid_vfbflags wxPropertyGrid Validation Failure behaviour Flags - @{ -*/ - -enum wxPG_VALIDATION_FAILURE_BEHAVIOR_FLAGS -{ - -/** Prevents user from leaving property unless value is valid. If this - behaviour flag is not used, then value change is instead cancelled. -*/ -wxPG_VFB_STAY_IN_PROPERTY = 0x01, - -/** Calls wxBell() on validation failure. -*/ -wxPG_VFB_BEEP = 0x02, - -/** Cell with invalid value will be marked (with red colour). -*/ -wxPG_VFB_MARK_CELL = 0x04, - -/** - Display a text message explaining the situation. - - To customize the way the message is displayed, you need to - reimplement wxPropertyGrid::DoShowPropertyError() in a - derived class. Default behaviour is to display the text on - the top-level frame's status bar, if present, and otherwise - using wxMessageBox. -*/ -wxPG_VFB_SHOW_MESSAGE = 0x08, - -/** - Similar to wxPG_VFB_SHOW_MESSAGE, except always displays the - message using wxMessageBox. -*/ -wxPG_VFB_SHOW_MESSAGEBOX = 0x10, - -/** - Similar to wxPG_VFB_SHOW_MESSAGE, except always displays the - message on the status bar (when present - you can reimplement - wxPropertyGrid::GetStatusBar() in a derived class to specify - this yourself). -*/ -wxPG_VFB_SHOW_MESSAGE_ON_STATUSBAR = 0x20, - -/** Defaults. */ -wxPG_VFB_DEFAULT = wxPG_VFB_MARK_CELL | - wxPG_VFB_SHOW_MESSAGEBOX, - -/** Only used internally. */ -wxPG_VFB_UNDEFINED = 0x80 - -}; - -/** @} -*/ - -// Having this as define instead of wxByte typedef makes things easier for -// wxPython bindings (ignoring and redefining it in SWIG interface file -// seemed rather tricky) -#define wxPGVFBFlags unsigned char - -/** - wxPGValidationInfo - - Used to convey validation information to and from functions that - actually perform validation. Mostly used in custom property - classes. -*/ -class WXDLLIMPEXP_PROPGRID wxPGValidationInfo -{ - friend class wxPropertyGrid; -public: - wxPGValidationInfo() - { - m_failureBehavior = 0; - m_isFailing = false; - } - - ~wxPGValidationInfo() - { - } - - /** - @return Returns failure behaviour which is a combination of - @ref propgrid_vfbflags. - */ - wxPGVFBFlags GetFailureBehavior() const - { return m_failureBehavior; } - - /** - Returns current failure message. - */ - const wxString& GetFailureMessage() const - { return m_failureMessage; } - - /** - Returns reference to pending value. - */ - wxVariant& GetValue() - { - wxASSERT(m_pValue); - return *m_pValue; - } - - /** Set validation failure behaviour - - @param failureBehavior - Mixture of @ref propgrid_vfbflags. - */ - void SetFailureBehavior(wxPGVFBFlags failureBehavior) - { m_failureBehavior = failureBehavior; } - - /** - Set current failure message. - */ - void SetFailureMessage(const wxString& message) - { m_failureMessage = message; } - -private: - /** Value to be validated. - */ - wxVariant* m_pValue; - - /** Message displayed on validation failure. - */ - wxString m_failureMessage; - - /** Validation failure behaviour. Use wxPG_VFB_XXX flags. - */ - wxPGVFBFlags m_failureBehavior; - - // True when validation is currently failing. - bool m_isFailing; -}; - -// ----------------------------------------------------------------------- - -/** @section propgrid_pgactions wxPropertyGrid Action Identifiers - - These are used with wxPropertyGrid::AddActionTrigger() and - wxPropertyGrid::ClearActionTriggers(). - @{ -*/ - -enum wxPG_KEYBOARD_ACTIONS -{ - wxPG_ACTION_INVALID = 0, - - /** Select the next property. */ - wxPG_ACTION_NEXT_PROPERTY, - - /** Select the previous property. */ - wxPG_ACTION_PREV_PROPERTY, - - /** Expand the selected property, if it has child items. */ - wxPG_ACTION_EXPAND_PROPERTY, - - /** Collapse the selected property, if it has child items. */ - wxPG_ACTION_COLLAPSE_PROPERTY, - - /** Cancel and undo any editing done in the currently active property - editor. - */ - wxPG_ACTION_CANCEL_EDIT, - - /** Move focus to the editor control of the currently selected - property. - */ - wxPG_ACTION_EDIT, - - /** Causes editor's button (if any) to be pressed. */ - wxPG_ACTION_PRESS_BUTTON, - - wxPG_ACTION_MAX -}; - -/** @} -*/ - -// ----------------------------------------------------------------------- - -// wxPropertyGrid::DoSelectProperty flags (selFlags) -enum wxPG_SELECT_PROPERTY_FLAGS -{ - // Focuses to created editor - wxPG_SEL_FOCUS = 0x0001, - // Forces deletion and recreation of editor - wxPG_SEL_FORCE = 0x0002, - // For example, doesn't cause EnsureVisible - wxPG_SEL_NONVISIBLE = 0x0004, - // Do not validate editor's value before selecting - wxPG_SEL_NOVALIDATE = 0x0008, - // Property being deselected is about to be deleted - wxPG_SEL_DELETING = 0x0010, - // Property's values was set to unspecified by the user - wxPG_SEL_SETUNSPEC = 0x0020, - // Property's event handler changed the value - wxPG_SEL_DIALOGVAL = 0x0040, - // Set to disable sending of wxEVT_PG_SELECTED event - wxPG_SEL_DONT_SEND_EVENT = 0x0080, - // Don't make any graphics updates - wxPG_SEL_NO_REFRESH = 0x0100 -}; - -// ----------------------------------------------------------------------- - -// DoSetSplitterPosition() flags - -enum wxPG_SET_SPLITTER_POSITION_SPLITTER_FLAGS -{ - wxPG_SPLITTER_REFRESH = 0x0001, - wxPG_SPLITTER_ALL_PAGES = 0x0002, - wxPG_SPLITTER_FROM_EVENT = 0x0004, - wxPG_SPLITTER_FROM_AUTO_CENTER = 0x0008 -}; - - -// ----------------------------------------------------------------------- - -// Internal flags -#define wxPG_FL_INITIALIZED 0x0001 -// Set when creating editor controls if it was clicked on. -#define wxPG_FL_ACTIVATION_BY_CLICK 0x0002 -#define wxPG_FL_DONT_CENTER_SPLITTER 0x0004 -#define wxPG_FL_FOCUSED 0x0008 -#define wxPG_FL_MOUSE_CAPTURED 0x0010 -#define wxPG_FL_MOUSE_INSIDE 0x0020 -#define wxPG_FL_VALUE_MODIFIED 0x0040 -// don't clear background of m_wndEditor -#define wxPG_FL_PRIMARY_FILLS_ENTIRE 0x0080 -// currently active editor uses custom image -#define wxPG_FL_CUR_USES_CUSTOM_IMAGE 0x0100 -// cell colours override selection colours for selected cell -#define wxPG_FL_CELL_OVERRIDES_SEL 0x0200 -#define wxPG_FL_SCROLLED 0x0400 -// set when all added/inserted properties get hideable flag -#define wxPG_FL_ADDING_HIDEABLES 0x0800 -// Disables showing help strings on statusbar. -#define wxPG_FL_NOSTATUSBARHELP 0x1000 -// Marks that we created the state, so we have to destroy it too. -#define wxPG_FL_CREATEDSTATE 0x2000 -// Set if scrollbar's existence was detected in last onresize. -#define wxPG_FL_SCROLLBAR_DETECTED 0x4000 -// Set if wxPGMan requires redrawing of description text box. -#define wxPG_FL_DESC_REFRESH_REQUIRED 0x8000 -// Set if contained in wxPropertyGridManager -#define wxPG_FL_IN_MANAGER 0x00020000 -// Set after wxPropertyGrid is shown in its initial good size -#define wxPG_FL_GOOD_SIZE_SET 0x00040000 -// Set when in SelectProperty. -#define wxPG_FL_IN_SELECT_PROPERTY 0x00100000 -// Set when help string is shown in status bar -#define wxPG_FL_STRING_IN_STATUSBAR 0x00200000 -// Auto sort is enabled (for categorized mode) -#define wxPG_FL_CATMODE_AUTO_SORT 0x01000000 -// Set after page has been inserted to manager -#define wxPG_MAN_FL_PAGE_INSERTED 0x02000000 -// Active editor control is abnormally large -#define wxPG_FL_ABNORMAL_EDITOR 0x04000000 -// Recursion guard for HandleCustomEditorEvent -#define wxPG_FL_IN_HANDLECUSTOMEDITOREVENT 0x08000000 -#define wxPG_FL_VALUE_CHANGE_IN_EVENT 0x10000000 -// Editor control width should not change on resize -#define wxPG_FL_FIXED_WIDTH_EDITOR 0x20000000 -// Width of panel can be different than width of grid -#define wxPG_FL_HAS_VIRTUAL_WIDTH 0x40000000 -// Prevents RecalculateVirtualSize re-entrancy -#define wxPG_FL_RECALCULATING_VIRTUAL_SIZE 0x80000000 - -#if !defined(__wxPG_SOURCE_FILE__) - // Reduce compile time, but still include in user app - #include "wx/propgrid/props.h" -#endif - -// ----------------------------------------------------------------------- - -/** @class wxPropertyGrid - - wxPropertyGrid is a specialized grid for editing properties - such as strings, numbers, flagsets, fonts, and colours. wxPropertySheet - used to do the very same thing, but it hasn't been updated for a while - and it is currently deprecated. - - Please note that most member functions are inherited and as such not - documented on this page. This means you will probably also want to read - wxPropertyGridInterface class reference. - - See also @ref overview_propgrid. - - @section propgrid_window_styles_ Window Styles - - See @ref propgrid_window_styles. - - @section propgrid_event_handling Event Handling - - To process input from a propertygrid control, use these event handler - macros to direct input to member functions that take a wxPropertyGridEvent - argument. - - @beginEventTable{wxPropertyGridEvent} - @event{EVT_PG_SELECTED (id, func)} - Respond to wxEVT_PG_SELECTED event, generated when a property selection - has been changed, either by user action or by indirect program - function. For instance, collapsing a parent property programmatically - causes any selected child property to become unselected, and may - therefore cause this event to be generated. - @event{EVT_PG_CHANGING(id, func)} - Respond to wxEVT_PG_CHANGING event, generated when property value - is about to be changed by user. Use wxPropertyGridEvent::GetValue() - to take a peek at the pending value, and wxPropertyGridEvent::Veto() - to prevent change from taking place, if necessary. - @event{EVT_PG_HIGHLIGHTED(id, func)} - Respond to wxEVT_PG_HIGHLIGHTED event, which occurs when mouse - moves over a property. Event's property is NULL if hovered area does - not belong to any property. - @event{EVT_PG_RIGHT_CLICK(id, func)} - Respond to wxEVT_PG_RIGHT_CLICK event, which occurs when property is - clicked on with right mouse button. - @event{EVT_PG_DOUBLE_CLICK(id, func)} - Respond to wxEVT_PG_DOUBLE_CLICK event, which occurs when property is - double-clicked onwith left mouse button. - @event{EVT_PG_ITEM_COLLAPSED(id, func)} - Respond to wxEVT_PG_ITEM_COLLAPSED event, generated when user collapses - a property or category.. - @event{EVT_PG_ITEM_EXPANDED(id, func)} - Respond to wxEVT_PG_ITEM_EXPANDED event, generated when user expands - a property or category.. - @event{EVT_PG_LABEL_EDIT_BEGIN(id, func)} - Respond to wxEVT_PG_LABEL_EDIT_BEGIN event, generated when is about to - begin editing a property label. You can veto this event to prevent the - action. - @event{EVT_PG_LABEL_EDIT_ENDING(id, func)} - Respond to wxEVT_PG_LABEL_EDIT_ENDING event, generated when is about to - end editing of a property label. You can veto this event to prevent the - action. - @event{EVT_PG_COL_BEGIN_DRAG(id, func)} - Respond to wxEVT_PG_COL_BEGIN_DRAG event, generated when user - starts resizing a column - can be vetoed. - @event{EVT_PG_COL_DRAGGING,(id, func)} - Respond to wxEVT_PG_COL_DRAGGING, event, generated when a - column resize by user is in progress. This event is also generated - when user double-clicks the splitter in order to recenter - it. - @event{EVT_PG_COL_END_DRAG(id, func)} - Respond to wxEVT_PG_COL_END_DRAG event, generated after column - resize by user has finished. - @endEventTable - - @remarks - - - Use Freeze() and Thaw() respectively to disable and enable drawing. This - will also delay sorting etc. miscellaneous calculations to the last - possible moment. - - @library{wxpropgrid} - @category{propgrid} -*/ -class WXDLLIMPEXP_PROPGRID wxPropertyGrid : public wxControl, - public wxScrollHelper, - public wxPropertyGridInterface -{ - friend class wxPropertyGridEvent; - friend class wxPropertyGridPageState; - friend class wxPropertyGridInterface; - friend class wxPropertyGridManager; - friend class wxPGHeaderCtrl; - - wxDECLARE_DYNAMIC_CLASS(wxPropertyGrid); -public: - -#ifndef SWIG - /** - Two step constructor. - - Call Create when this constructor is called to build up the - wxPropertyGrid - */ - wxPropertyGrid(); -#endif - - /** The default constructor. The styles to be used are styles valid for - the wxWindow. - - @see @link wndflags Additional Window Styles @endlink - */ - wxPropertyGrid( wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxPG_DEFAULT_STYLE, - const wxString& name = wxPropertyGridNameStr ); - - /** Destructor */ - virtual ~wxPropertyGrid(); - - /** Adds given key combination to trigger given action. - - Here is a sample code to make Enter key press move focus to - the next property. - - @code - propGrid->AddActionTrigger(wxPG_ACTION_NEXT_PROPERTY, - WXK_RETURN); - propGrid->DedicateKey(WXK_RETURN); - @endcode - - @param action - Which action to trigger. See @ref propgrid_keyboard_actions. - @param keycode - Which keycode triggers the action. - @param modifiers - Which key event modifiers, in addition to keycode, are needed to - trigger the action. - */ - void AddActionTrigger( int action, int keycode, int modifiers = 0 ); - - /** - Dedicates a specific keycode to wxPropertyGrid. This means that such - key presses will not be redirected to editor controls. - - Using this function allows, for example, navigation between - properties using arrow keys even when the focus is in the editor - control. - */ - void DedicateKey( int keycode ) - { -#if WXWIN_COMPATIBILITY_3_0 - // Deprecated: use a hash set instead. - m_dedicatedKeys.push_back(keycode); -#else - m_dedicatedKeys.insert(keycode); -#endif - } - - /** - This static function enables or disables automatic use of - wxGetTranslation for following strings: wxEnumProperty list labels, - wxFlagsProperty sub-property labels. - - Default is false. - */ - static void AutoGetTranslation( bool enable ); - - /** - Changes value of a property, as if from an editor. - - Use this instead of SetPropertyValue() if you need the value to run - through validation process, and also send the property change event. - - @return - Returns true if value was successfully changed. - */ - bool ChangePropertyValue( wxPGPropArg id, wxVariant newValue ); - - /** - Centers the splitter. - - @param enableAutoResizing - If @true, automatic column resizing is enabled (only applicapple - if window style wxPG_SPLITTER_AUTO_CENTER is used). - */ - void CenterSplitter( bool enableAutoResizing = false ); - - /** Deletes all properties. - */ - virtual void Clear() wxOVERRIDE; - - /** Clears action triggers for given action. - @param action - Which action to trigger. See @link pgactions List of list of - wxPropertyGrid actions@endlink. - */ - void ClearActionTriggers( int action ); - - /** Forces updating the value of property from the editor control. - - Note that wxEVT_PG_CHANGING and wxEVT_PG_CHANGED are dispatched using - ProcessEvent, meaning your event handlers will be called immediately. - - @return - Returns true if anything was changed. - */ - virtual bool CommitChangesFromEditor( wxUint32 flags = 0 ); - - /** - Two step creation. - - Whenever the control is created without any parameters, use Create to - actually create it. Don't access the control's public methods before - this is called @see @link wndflags Additional Window Styles@endlink - */ - bool Create( wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxPG_DEFAULT_STYLE, - const wxString& name = wxPropertyGridNameStr ); - - /** - Call when editor widget's contents is modified. - - For example, this is called when changes text in wxTextCtrl (used in - wxStringProperty and wxIntProperty). - - @remarks - This function should only be called by custom properties. - - @see wxPGProperty::OnEvent() - */ - void EditorsValueWasModified() { m_iFlags |= wxPG_FL_VALUE_MODIFIED; } - - /** Reverse of EditorsValueWasModified(). - - @remarks - This function should only be called by custom properties. - */ - void EditorsValueWasNotModified() - { - m_iFlags &= ~(wxPG_FL_VALUE_MODIFIED); - } - - /** - Enables or disables (shows/hides) categories according to parameter - enable. - */ - bool EnableCategories( bool enable ); - - /** Scrolls and/or expands items to ensure that the given item is visible. - Returns true if something was actually done. - */ - bool EnsureVisible( wxPGPropArg id ); - - /** - Reduces column sizes to minimum possible that contents are still - visibly (naturally some margin space will be applied as well). - - @return - Minimum size for the grid to still display everything. - - @remarks - Does not work well with wxPG_SPLITTER_AUTO_CENTER window style. - - This function only works properly if grid size prior to call was already - fairly large. - - Note that you can also get calculated column widths by calling - GetState->GetColumnWidth() immediately after this function returns. - */ - wxSize FitColumns() - { - wxSize sz = m_pState->DoFitColumns(); - return sz; - } - - /** - Returns wxWindow that the properties are painted on, and which should - be used as the parent for editor controls. - */ - wxWindow* GetPanel() - { - return this; - } - - /** Returns current category caption background colour. */ - wxColour GetCaptionBackgroundColour() const { return m_colCapBack; } - - wxFont& GetCaptionFont() { return m_captionFont; } - - const wxFont& GetCaptionFont() const { return m_captionFont; } - - /** Returns current category caption text colour. */ - wxColour GetCaptionForegroundColour() const { return m_colCapFore; } - - /** Returns current cell background colour. */ - wxColour GetCellBackgroundColour() const { return m_colPropBack; } - - /** Returns current cell text colour when disabled. */ - wxColour GetCellDisabledTextColour() const { return m_colDisPropFore; } - - /** Returns current cell text colour. */ - wxColour GetCellTextColour() const { return m_colPropFore; } - - /** - Returns number of columns currently on grid. - */ - unsigned int GetColumnCount() const - { - return m_pState->GetColumnCount(); - } - - /** Returns colour of empty space below properties. */ - wxColour GetEmptySpaceColour() const { return m_colEmptySpace; } - - /** Returns height of highest characters of used font. */ - int GetFontHeight() const { return m_fontHeight; } - - /** Returns pointer to itself. Dummy function that enables same kind - of code to use wxPropertyGrid and wxPropertyGridManager. - */ - wxPropertyGrid* GetGrid() { return this; } - - /** Returns rectangle of custom paint image. - */ - wxRect GetImageRect( wxPGProperty* p, int item ) const; - - /** Returns size of the custom paint image in front of property. - If no argument is given, returns preferred size. - */ - wxSize GetImageSize( wxPGProperty* p = NULL, int item = -1 ) const; - - //@{ - /** Returns last item which could be iterated using given flags. - @param flags - See @ref propgrid_iterator_flags. - */ - wxPGProperty* GetLastItem( int flags = wxPG_ITERATE_DEFAULT ) - { - return m_pState->GetLastItem(flags); - } - - const wxPGProperty* GetLastItem( int flags = wxPG_ITERATE_DEFAULT ) const - { - return m_pState->GetLastItem(flags); - } - //@} - - /** Returns colour of lines between cells. */ - wxColour GetLineColour() const { return m_colLine; } - - /** Returns background colour of margin. */ - wxColour GetMarginColour() const { return m_colMargin; } - - /** Returns margin width. */ - int GetMarginWidth() const { return m_marginWidth; } - - /** - Returns most up-to-date value of selected property. This will return - value different from GetSelectedProperty()->GetValue() only when text - editor is activate and string edited by user represents valid, - uncommitted property value. - */ - wxVariant GetUncommittedPropertyValue(); - - /** Returns "root property". It does not have name, etc. and it is not - visible. It is only useful for accessing its children. - */ - wxPGProperty* GetRoot() const { return m_pState->m_properties; } - - /** Returns height of a single grid row (in pixels). */ - int GetRowHeight() const { return m_lineHeight; } - - /** Returns currently selected property. */ - wxPGProperty* GetSelectedProperty() const { return GetSelection(); } - - /** Returns current selection background colour. */ - wxColour GetSelectionBackgroundColour() const { return m_colSelBack; } - - /** Returns current selection text colour. */ - wxColour GetSelectionForegroundColour() const { return m_colSelFore; } - - /** - Returns current splitter x position. - */ - int GetSplitterPosition( unsigned int splitterIndex = 0 ) const - { - return m_pState->DoGetSplitterPosition(splitterIndex); - } - - /** Returns wxTextCtrl active in currently selected property, if any. Takes - into account wxOwnerDrawnComboBox. - */ - wxTextCtrl* GetEditorTextCtrl() const; - - wxPGValidationInfo& GetValidationInfo() - { - return m_validationInfo; - } - - /** Returns current vertical spacing. */ - int GetVerticalSpacing() const { return (int)m_vspacing; } - - /** - Returns @true if a property editor control has focus. - */ - bool IsEditorFocused() const; - - /** Returns true if editor's value was marked modified. - */ - bool IsEditorsValueModified() const - { return ( m_iFlags & wxPG_FL_VALUE_MODIFIED ) ? true : false; } - - /** - Returns information about arbitrary position in the grid. - - @param pt - Coordinates in the virtual grid space. You may need to use - wxScrolled<T>::CalcScrolledPosition() for translating - wxPropertyGrid client coordinates into something this member - function can use. - */ - wxPropertyGridHitTestResult HitTest( const wxPoint& pt ) const; - - /** Returns true if any property has been modified by the user. */ - bool IsAnyModified() const -#if WXWIN_COMPATIBILITY_3_0 - { return m_pState->m_anyModified != (unsigned char)false; } -#else - { return m_pState->m_anyModified; } -#endif - - /** - It is recommended that you call this function any time your code causes - wxPropertyGrid's top-level parent to change. wxPropertyGrid's OnIdle() - handler should be able to detect most changes, but it is not perfect. - - @param newTLP - New top-level parent that is about to be set. Old top-level parent - window should still exist as the current one. - - @remarks This function is automatically called from wxPropertyGrid:: - Reparent() and wxPropertyGridManager::Reparent(). You only - need to use it if you reparent wxPropertyGrid indirectly. - */ - void OnTLPChanging( wxWindow* newTLP ); - - /** Redraws given property. - */ - virtual void RefreshProperty( wxPGProperty* p ) wxOVERRIDE; - - /** Registers a new editor class. - @return - Pointer to the editor class instance that should be used. - */ - static wxPGEditor* RegisterEditorClass( wxPGEditor* editor, - bool noDefCheck = false ) - { - return DoRegisterEditorClass(editor, wxEmptyString, noDefCheck); - } - - static wxPGEditor* DoRegisterEditorClass( wxPGEditor* editorClass, - const wxString& editorName, - bool noDefCheck = false ); - - /** Resets all colours to the original system values. - */ - void ResetColours(); - - /** - Resets column sizes and splitter positions, based on proportions. - - @param enableAutoResizing - If @true, automatic column resizing is enabled (only applicapple - if window style wxPG_SPLITTER_AUTO_CENTER is used). - - @see wxPropertyGridInterface::SetColumnProportion() - */ - void ResetColumnSizes( bool enableAutoResizing = false ); - - /** - Selects a property. - Editor widget is automatically created, but not focused unless focus is - true. - - @param id - Property to select. - - @return - True if selection finished successfully. Usually only fails if - current value in editor is not valid. - - @remarks In wxPropertyGrid 1.4, this member function used to generate - wxEVT_PG_SELECTED. In wxWidgets 2.9 and later, it no longer - does that. - - @remarks This clears any previous selection. - */ - bool SelectProperty( wxPGPropArg id, bool focus = false ); - - /** - Set entire new selection from given list of properties. - */ - void SetSelection( const wxArrayPGProperty& newSelection ) - { - DoSetSelection( newSelection, wxPG_SEL_DONT_SEND_EVENT ); - } - - /** - Adds given property into selection. If wxPG_EX_MULTIPLE_SELECTION - extra style is not used, then this has same effect as - calling SelectProperty(). - - @remarks Multiple selection is not supported for categories. This - means that if you have properties selected, you cannot - add category to selection, and also if you have category - selected, you cannot add other properties to selection. - This member function will fail silently in these cases, - even returning true. - */ - bool AddToSelection( wxPGPropArg id ) - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false) - return DoAddToSelection(p, wxPG_SEL_DONT_SEND_EVENT); - } - - /** - Removes given property from selection. If property is not selected, - an assertion failure will occur. - */ - bool RemoveFromSelection( wxPGPropArg id ) - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false) - return DoRemoveFromSelection(p, wxPG_SEL_DONT_SEND_EVENT); - } - - /** - Makes given column editable by user. - - @param editable - Using @false here will disable column from being editable. - */ - void MakeColumnEditable( unsigned int column, bool editable = true ); - - /** - Creates label editor wxTextCtrl for given column, for property - that is currently selected. When multiple selection is - enabled, this applies to whatever property GetSelection() - returns. - - @param colIndex - Which column's label to edit. Note that you should not - use value 1, which is reserved for property value - column. - - @see EndLabelEdit(), MakeColumnEditable() - */ - void BeginLabelEdit( unsigned int column = 0 ) - { - DoBeginLabelEdit(column, wxPG_SEL_DONT_SEND_EVENT); - } - - /** - Destroys label editor wxTextCtrl, if any. - - @param commit - Use @true (default) to store edited label text in - property cell data. - - @see BeginLabelEdit(), MakeColumnEditable() - */ - void EndLabelEdit( bool commit = true ) - { - DoEndLabelEdit(commit, wxPG_SEL_DONT_SEND_EVENT); - } - - /** - Returns currently active label editor, NULL if none. - */ - wxTextCtrl* GetLabelEditor() const - { - return m_labelEditor; - } - - /** Sets category caption background colour. */ - void SetCaptionBackgroundColour(const wxColour& col); - - /** Sets category caption text colour. */ - void SetCaptionTextColour(const wxColour& col); - - /** Sets default cell background colour - applies to property cells. - Note that appearance of editor widgets may not be affected. - */ - void SetCellBackgroundColour(const wxColour& col); - - /** Sets cell text colour for disabled properties. - */ - void SetCellDisabledTextColour(const wxColour& col); - - /** Sets default cell text colour - applies to property name and value text. - Note that appearance of editor widgets may not be affected. - */ - void SetCellTextColour(const wxColour& col); - - /** Set number of columns (2 or more). - */ - void SetColumnCount( int colCount ) - { - m_pState->SetColumnCount(colCount); - Refresh(); - } - - /** - Sets the 'current' category - Append will add non-category properties - under it. - */ - void SetCurrentCategory( wxPGPropArg id ) - { - wxPG_PROP_ARG_CALL_PROLOG() - wxPropertyCategory* pc = wxDynamicCast(p, wxPropertyCategory); - wxASSERT(pc); - m_pState->m_currentCategory = pc; - } - - /** Sets colour of empty space below properties. */ - void SetEmptySpaceColour(const wxColour& col); - - /** Sets colour of lines between cells. */ - void SetLineColour(const wxColour& col); - - /** Sets background colour of margin. */ - void SetMarginColour(const wxColour& col); - - /** - Sets selection background colour - applies to selected property name - background. - */ - void SetSelectionBackgroundColour(const wxColour& col); - - /** - Sets selection foreground colour - applies to selected property name - text. - */ - void SetSelectionTextColour(const wxColour& col); - - /** Sets x coordinate of the splitter. - @remarks - Splitter position cannot exceed grid size, and therefore setting it - during form creation may fail as initial grid size is often smaller - than desired splitter position, especially when sizers are being used. - */ - void SetSplitterPosition( int newXPos, int col = 0 ) - { - DoSetSplitterPosition(newXPos, col, wxPG_SPLITTER_REFRESH); - } - - /** - Sets the property sorting function. - - @param sortFunction - The sorting function to be used. It should return a value greater - than 0 if position of p1 is after p2. So, for instance, when - comparing property names, you can use following implementation: - - @code - int MyPropertySortFunction(wxPropertyGrid* propGrid, - wxPGProperty* p1, - wxPGProperty* p2) - { - return p1->GetBaseName().compare( p2->GetBaseName() ); - } - @endcode - - @remarks - Default property sort function sorts properties by their labels - (case-insensitively). - - @see GetSortFunction, wxPropertyGridInterface::Sort, - wxPropertyGridInterface::SortChildren - */ - void SetSortFunction( wxPGSortCallback sortFunction ) - { - m_sortFunction = sortFunction; - } - - /** - Returns the property sort function (default is @NULL). - - @see SetSortFunction - */ - wxPGSortCallback GetSortFunction() const - { - return m_sortFunction; - } - - /** - Sets appearance of value cells representing an unspecified property - value. Default appearance is blank. - - @remarks If you set the unspecified value to have any - textual representation, then that will override - "InlineHelp" attribute. - - @see wxPGProperty::SetValueToUnspecified(), - wxPGProperty::IsValueUnspecified() - */ - void SetUnspecifiedValueAppearance( const wxPGCell& cell ) - { - m_unspecifiedAppearance = m_propertyDefaultCell; - m_unspecifiedAppearance.MergeFrom(cell); - } - - /** - Returns current appearance of unspecified value cells. - - @see SetUnspecifiedValueAppearance() - */ - const wxPGCell& GetUnspecifiedValueAppearance() const - { - return m_unspecifiedAppearance; - } - - /** - Returns (visual) text representation of the unspecified - property value. - - @param argFlags For internal use only. - */ - wxString GetUnspecifiedValueText( int argFlags = 0 ) const; - - /** Set virtual width for this particular page. Width -1 indicates that the - virtual width should be disabled. */ - void SetVirtualWidth( int width ); - - /** - Moves splitter as left as possible, while still allowing all - labels to be shown in full. - - @param privateChildrenToo - If @false, will still allow private children to be cropped. - */ - void SetSplitterLeft( bool privateChildrenToo = false ) - { - m_pState->SetSplitterLeft(privateChildrenToo); - } - - /** Sets vertical spacing. Can be 1, 2, or 3 - a value relative to font - height. Value of 2 should be default on most platforms. - */ - void SetVerticalSpacing( int vspacing ) - { - m_vspacing = (unsigned char)vspacing; - CalculateFontAndBitmapStuff( vspacing ); - if ( !m_pState->m_itemsAdded ) Refresh(); - } - - /** Shows an brief error message that is related to a property. */ - void ShowPropertyError( wxPGPropArg id, const wxString& msg ) - { - wxPG_PROP_ARG_CALL_PROLOG() - DoShowPropertyError(p, msg); - } - - ///////////////////////////////////////////////////////////////// - // - // Following methods do not need to be (currently) documented - // - ///////////////////////////////////////////////////////////////// - - bool HasVirtualWidth() const - { return (m_iFlags & wxPG_FL_HAS_VIRTUAL_WIDTH) ? true : false; } - - const wxPGCommonValue* GetCommonValue( unsigned int i ) const - { - return (wxPGCommonValue*) m_commonValues[i]; - } - - /** Returns number of common values. - */ - unsigned int GetCommonValueCount() const - { - return (unsigned int) m_commonValues.size(); - } - - /** Returns label of given common value. - */ - wxString GetCommonValueLabel( unsigned int i ) const - { - wxASSERT( GetCommonValue(i) ); - return GetCommonValue(i)->GetLabel(); - } - - /** - Returns index of common value that will truly change value to - unspecified. - */ - int GetUnspecifiedCommonValue() const { return m_cvUnspecified; } - - /** Set index of common value that will truly change value to unspecified. - Using -1 will set none to have such effect. - Default is 0. - */ - void SetUnspecifiedCommonValue( int index ) { m_cvUnspecified = index; } - - /** - Shortcut for creating dialog-caller button. Used, for example, by - wxFontProperty. - @remarks - This should only be called by properties. - */ - wxWindow* GenerateEditorButton( const wxPoint& pos, const wxSize& sz ); - - /** Fixes position of wxTextCtrl-like control (wxSpinCtrl usually - fits as one). Call after control has been created (but before - shown). - */ - void FixPosForTextCtrl( wxWindow* ctrl, - unsigned int forColumn = 1, - const wxPoint& offset = wxPoint(0, 0) ); - - /** Shortcut for creating text editor widget. - @param pos - Same as pos given for CreateEditor. - @param sz - Same as sz given for CreateEditor. - @param value - Initial text for wxTextCtrl. - @param secondary - If right-side control, such as button, also created, then create it - first and pass it as this parameter. - @param extraStyle - Extra style flags to pass for wxTextCtrl. - @remarks - Note that this should generally be called only by new classes derived - from wxPGProperty. - */ - wxWindow* GenerateEditorTextCtrl( const wxPoint& pos, - const wxSize& sz, - const wxString& value, - wxWindow* secondary, - int extraStyle = 0, - int maxLen = 0, - unsigned int forColumn = 1 ); - - /* Generates both textctrl and button. - */ - wxWindow* GenerateEditorTextCtrlAndButton( const wxPoint& pos, - const wxSize& sz, wxWindow** psecondary, int limited_editing, - wxPGProperty* property ); - - /** Generates position for a widget editor dialog box. - @param p - Property for which dialog is positioned. - @param sz - Known or over-approximated size of the dialog. - @return - Position for dialog. - */ - wxPoint GetGoodEditorDialogPosition( wxPGProperty* p, - const wxSize& sz ); - - // Converts escape sequences in src_str to newlines, - // tabs, etc. and copies result to dst_str. - static wxString& ExpandEscapeSequences( wxString& dst_str, - wxString& src_str ); - - // Converts newlines, tabs, etc. in src_str to escape - // sequences, and copies result to dst_str. - static wxString& CreateEscapeSequences( wxString& dst_str, - wxString& src_str ); - - // Checks system screen design used for laying out various dialogs. - static bool IsSmallScreen(); - - /** - Returns rectangle that fully contains properties between and including - p1 and p2. Rectangle is in virtual scrolled window coordinates. - */ - wxRect GetPropertyRect( const wxPGProperty* p1, - const wxPGProperty* p2 ) const; - - /** Returns pointer to current active primary editor control (NULL if none). - */ - wxWindow* GetEditorControl() const; - - wxWindow* GetPrimaryEditor() const - { - return GetEditorControl(); - } - - /** - Returns pointer to current active secondary editor control (NULL if - none). - */ - wxWindow* GetEditorControlSecondary() const - { - return m_wndEditor2; - } - - /** - Refreshes any active editor control. - */ - void RefreshEditor(); - - // Events from editor controls are forward to this function - bool HandleCustomEditorEvent( wxEvent &event ); - - // Mostly useful for page switching. - void SwitchState( wxPropertyGridPageState* pNewState ); - - long GetInternalFlags() const { return m_iFlags; } - bool HasInternalFlag( long flag ) const - { return (m_iFlags & flag) ? true : false; } - void SetInternalFlag( long flag ) { m_iFlags |= flag; } - void ClearInternalFlag( long flag ) { m_iFlags &= ~(flag); } - - void OnComboItemPaint( const wxPGComboBox* pCb, - int item, - wxDC* pDc, - wxRect& rect, - int flags ); - -#if WXWIN_COMPATIBILITY_3_0 - /** Standardized double-to-string conversion. - */ - static const wxString& DoubleToString( wxString& target, - double value, - int precision, - bool removeZeroes, - wxString* precTemplate = NULL ); -#endif // WXWIN_COMPATIBILITY_3_0 - - /** - Call this from wxPGProperty::OnEvent() to cause property value to be - changed after the function returns (with true as return value). - ValueChangeInEvent() must be used if you wish the application to be - able to use wxEVT_PG_CHANGING to potentially veto the given value. - */ - void ValueChangeInEvent( wxVariant variant ) - { - m_changeInEventValue = variant; - m_iFlags |= wxPG_FL_VALUE_CHANGE_IN_EVENT; - } - - /** - You can use this member function, for instance, to detect in - wxPGProperty::OnEvent() if wxPGProperty::SetValueInEvent() was - already called in wxPGEditor::OnEvent(). It really only detects - if was value was changed using wxPGProperty::SetValueInEvent(), which - is usually used when a 'picker' dialog is displayed. If value was - written by "normal means" in wxPGProperty::StringToValue() or - IntToValue(), then this function will return false (on the other hand, - wxPGProperty::OnEvent() is not even called in those cases). - */ - bool WasValueChangedInEvent() const - { - return (m_iFlags & wxPG_FL_VALUE_CHANGE_IN_EVENT) ? true : false; - } - - /** Returns true if given event is from first of an array of buttons - (as can be in case when wxPGMultiButton is used). - */ - bool IsMainButtonEvent( const wxEvent& event ) - { - return (event.GetEventType() == wxEVT_BUTTON) - && (m_wndSecId == event.GetId()); - } - - /** Pending value is expected to be passed in PerformValidation(). - */ - virtual bool DoPropertyChanged( wxPGProperty* p, - unsigned int selFlags = 0 ); - - /** Called when validation for given property fails. - @param invalidValue - Value which failed in validation. - @return - Return true if user is allowed to change to another property even - if current has invalid value. - @remarks - To add your own validation failure behaviour, override - wxPropertyGrid::DoOnValidationFailure(). - */ - bool OnValidationFailure( wxPGProperty* property, - wxVariant& invalidValue ); - - /** Called to indicate property and editor has valid value now. - */ - void OnValidationFailureReset( wxPGProperty* property ) - { - if ( property && property->HasFlag(wxPG_PROP_INVALID_VALUE) ) - { - DoOnValidationFailureReset(property); - property->ClearFlag(wxPG_PROP_INVALID_VALUE); - } - m_validationInfo.m_failureMessage.clear(); - } - - /** - Override in derived class to display error messages in custom manner - (these message usually only result from validation failure). - - @remarks If you implement this, then you also need to implement - DoHidePropertyError() - possibly to do nothing, if error - does not need hiding (e.g. it was logged or shown in a - message box). - - @see DoHidePropertyError() - */ - virtual void DoShowPropertyError( wxPGProperty* property, - const wxString& msg ); - - /** - Override in derived class to hide an error displayed by - DoShowPropertyError(). - - @see DoShowPropertyError() - */ - virtual void DoHidePropertyError( wxPGProperty* property ); - -#if wxUSE_STATUSBAR - /** - Return wxStatusBar that is used by this wxPropertyGrid. You can - reimplement this member function in derived class to override - the default behaviour of using the top-level wxFrame's status - bar, if any. - */ - virtual wxStatusBar* GetStatusBar(); -#endif - - /** Override to customize property validation failure behaviour. - @param invalidValue - Value which failed in validation. - @return - Return true if user is allowed to change to another property even - if current has invalid value. - */ - virtual bool DoOnValidationFailure( wxPGProperty* property, - wxVariant& invalidValue ); - - /** Override to customize resetting of property validation failure status. - @remarks - Property is guaranteed to have flag wxPG_PROP_INVALID_VALUE set. - */ - virtual void DoOnValidationFailureReset( wxPGProperty* property ); - - int GetSpacingY() const { return m_spacingy; } - - /** - Must be called in wxPGEditor::CreateControls() if primary editor window - is wxTextCtrl, just before textctrl is created. - @param text - Initial text value of created wxTextCtrl. - */ - void SetupTextCtrlValue( const wxString& text ) { m_prevTcValue = text; } - - /** - Unfocuses or closes editor if one was open, but does not deselect - property. - */ - bool UnfocusEditor(); - - virtual void SetWindowStyleFlag( long style ) wxOVERRIDE; - - void DrawItems( const wxPGProperty* p1, const wxPGProperty* p2 ); - - void DrawItem( wxPGProperty* p ) - { - DrawItems(p,p); - } - - virtual void DrawItemAndChildren( wxPGProperty* p ); - - /** - Draws item, children, and consecutive parents as long as category is - not met. - */ - void DrawItemAndValueRelated( wxPGProperty* p ); - -protected: - - /** - wxPropertyGridPageState used by the grid is created here. - - If grid is used in wxPropertyGridManager, there is no point overriding - this - instead, set custom wxPropertyGridPage classes. - */ - virtual wxPropertyGridPageState* CreateState() const; - - enum PerformValidationFlags - { - SendEvtChanging = 0x0001, - IsStandaloneValidation = 0x0002 // Not called in response to event - }; - - /** - Runs all validation functionality (includes sending wxEVT_PG_CHANGING). - Returns true if all tests passed. Implement in derived class to - add additional validation behaviour. - */ - virtual bool PerformValidation( wxPGProperty* p, - wxVariant& pendingValue, - int flags = SendEvtChanging ); - -public: - - // Control font changer helper. - void SetCurControlBoldFont(); - - wxPGCell& GetPropertyDefaultCell() - { - return m_propertyDefaultCell; - } - - wxPGCell& GetCategoryDefaultCell() - { - return m_categoryDefaultCell; - } - - // - // Public methods for semi-public use - // - bool DoSelectProperty( wxPGProperty* p, unsigned int flags = 0 ); - - // Overridden functions. - virtual bool Destroy() wxOVERRIDE; - // Returns property at given y coordinate (relative to grid's top left). - wxPGProperty* GetItemAtY( int y ) const { return DoGetItemAtY(y); } - - virtual void Refresh( bool eraseBackground = true, - const wxRect *rect = (const wxRect *) NULL ) wxOVERRIDE; - virtual bool SetFont( const wxFont& font ) wxOVERRIDE; - virtual void SetExtraStyle( long exStyle ) wxOVERRIDE; - virtual bool Reparent( wxWindowBase *newParent ) wxOVERRIDE; - -protected: - virtual void DoThaw() wxOVERRIDE; - - virtual wxSize DoGetBestSize() const wxOVERRIDE; - -#ifndef wxPG_ICON_WIDTH - wxBitmap *m_expandbmp, *m_collbmp; -#endif - - wxCursor *m_cursorSizeWE; - - /** wxWindow pointers to editor control(s). */ - wxWindow *m_wndEditor; - wxWindow *m_wndEditor2; - - wxBitmap *m_doubleBuffer; - - /** Local time ms when control was created. */ - wxMilliClock_t m_timeCreated; - - /** wxPGProperty::OnEvent can change value by setting this. */ - wxVariant m_changeInEventValue; - - /** Id of m_wndEditor2, or its first child, if any. */ - int m_wndSecId; - - /** Extra Y spacing between the items. */ - int m_spacingy; - - /** Control client area width; updated on resize. */ - int m_width; - - /** Control client area height; updated on resize. */ - int m_height; - - /** Current non-client width (needed when auto-centering). */ - int m_ncWidth; - - /** Non-client width (auto-centering helper). */ - //int m_fWidth; - - /** Previously recorded scroll start position. */ - int m_prevVY; - - /** - The gutter spacing in front and back of the image. - This determines the amount of spacing in front of each item - */ - int m_gutterWidth; - - /** Includes separator line. */ - int m_lineHeight; - - /** Gutter*2 + image width. */ - int m_marginWidth; - - // y spacing for expand/collapse button. - int m_buttonSpacingY; - - /** Extra margin for expanded sub-group items. */ - int m_subgroup_extramargin; - - /** - The image width of the [+] icon. - - This is also calculated in the gutter - */ - int m_iconWidth; - -#ifndef wxPG_ICON_WIDTH - - /** - The image height of the [+] icon. - - This is calculated as minimal size and to align - */ - int m_iconHeight; -#endif - - /** Current cursor id. */ - int m_curcursor; - - // Caption font. Same as normal font plus bold style. - wxFont m_captionFont; - - int m_fontHeight; // Height of the font. - - /** m_splitterx when drag began. */ - int m_startingSplitterX; - - /** - Index to splitter currently being dragged (0=one after the first - column). - */ - int m_draggedSplitter; - - /** Changed property, calculated in PerformValidation(). */ - wxPGProperty* m_chgInfo_changedProperty; - - /** - Lowest property for which editing happened, but which does not have - aggregate parent - */ - wxPGProperty* m_chgInfo_baseChangedProperty; - - /** Changed property value, calculated in PerformValidation(). */ - wxVariant m_chgInfo_pendingValue; - - /** Passed to SetValue. */ - wxVariant m_chgInfo_valueList; - - /** Validation information. */ - wxPGValidationInfo m_validationInfo; - - /** Actions and keys that trigger them. */ - wxPGHashMapI2I m_actionTriggers; - - /** Appearance of currently active editor. */ - wxPGCell m_editorAppearance; - - /** Appearance of a unspecified value cell. */ - wxPGCell m_unspecifiedAppearance; - - /** List of properties to be deleted/removed in idle event handler. */ - wxArrayPGProperty m_deletedProperties; - wxArrayPGProperty m_removedProperties; - -#if !WXWIN_COMPATIBILITY_3_0 - /** List of editors and their event handlers to be deleted in idle event handler. */ - wxArrayPGObject m_deletedEditorObjects; -#endif - - /** List of key codes that will not be handed over to editor controls. */ -#if WXWIN_COMPATIBILITY_3_0 - // Deprecated: use a hash set instead. - wxVector<int> m_dedicatedKeys; -#else - wxPGHashSetInt m_dedicatedKeys; -#endif - - // - // Temporary values - // - - /** Bits are used to indicate which colours are customized. */ - unsigned short m_coloursCustomized; - - /** x - m_splitterx. */ - signed char m_dragOffset; - - /** 0 = not dragging, 1 = drag just started, 2 = drag in progress */ - unsigned char m_dragStatus; - - /** 0 = margin, 1 = label, 2 = value. */ - unsigned char m_mouseSide; - - /** True when editor control is focused. */ -#if WXWIN_COMPATIBILITY_3_0 - unsigned char m_editorFocused; -#else - bool m_editorFocused; -#endif - - /** 1 if m_latsCaption is also the bottommost caption. */ - //unsigned char m_lastCaptionBottomnest; - - unsigned char m_vspacing; - -#if WXWIN_COMPATIBILITY_3_0 - // Unused variable. - // Used to track when Alt/Ctrl+Key was consumed. - unsigned char m_keyComboConsumed; -#endif - - /** 1 if in DoPropertyChanged() */ - bool m_inDoPropertyChanged; - - /** 1 if in CommitChangesFromEditor() */ - bool m_inCommitChangesFromEditor; - - /** 1 if in DoSelectProperty() */ - bool m_inDoSelectProperty; - - bool m_inOnValidationFailure; - - wxPGVFBFlags m_permanentValidationFailureBehavior; // Set by app - - // DoEditorValidate() recursion guard - wxRecursionGuardFlag m_validatingEditor; - - /** Internal flags - see wxPG_FL_XXX constants. */ - wxUint32 m_iFlags; - -#if WXWIN_COMPATIBILITY_3_0 - // Unused variable. - /** When drawing next time, clear this many item slots at the end. */ - int m_clearThisMany; -#endif - - // Mouse is hovering over this column (index) - unsigned int m_colHover; - - // pointer to property that has mouse hovering - wxPGProperty* m_propHover; - - // Active label editor - wxTextCtrl* m_labelEditor; - - // For which property the label editor is active - wxPGProperty* m_labelEditorProperty; - - // EventObject for wxPropertyGridEvents - wxWindow* m_eventObject; - - // What (global) window is currently focused (needed to resolve event - // handling mess). - wxWindow* m_curFocused; - - // Event currently being sent - NULL if none at the moment - wxPropertyGridEvent* m_processedEvent; - - // Last known top-level parent - wxWindow* m_tlp; - - // Last closed top-level parent - wxWindow* m_tlpClosed; - - // Local time ms when tlp was closed. - wxMilliClock_t m_tlpClosedTime; - - // Sort function - wxPGSortCallback m_sortFunction; - - // y coordinate of property that mouse hovering - int m_propHoverY; - - // Which column's editor is selected (usually 1)? - unsigned int m_selColumn; - - // x relative to splitter (needed for resize). - int m_ctrlXAdjust; - - // lines between cells - wxColour m_colLine; - // property labels and values are written in this colour - wxColour m_colPropFore; - // or with this colour when disabled - wxColour m_colDisPropFore; - // background for m_colPropFore - wxColour m_colPropBack; - // text color for captions - wxColour m_colCapFore; - // background color for captions - wxColour m_colCapBack; - // foreground for selected property - wxColour m_colSelFore; - // background for selected property (actually use background color when - // control out-of-focus) - wxColour m_colSelBack; - // background colour for margin - wxColour m_colMargin; - // background colour for empty space below the grid - wxColour m_colEmptySpace; - - // Default property colours - wxPGCell m_propertyDefaultCell; - - // Default property category - wxPGCell m_categoryDefaultCell; - - // Backup of selected property's cells - wxVector<wxPGCell> m_propCellsBackup; - - // NB: These *cannot* be moved to globals. - - // labels when properties use common values - wxVector<wxPGCommonValue*> m_commonValues; - - // array of live events - wxVector<wxPropertyGridEvent*> m_liveEvents; - - // Which cv selection really sets value to unspecified? - int m_cvUnspecified; - - // Used to skip excess text editor events - wxString m_prevTcValue; - -protected: - - // Sets some members to defaults (called constructors). - void Init1(); - - // Initializes some members (called by Create and complex constructor). - void Init2(); - - void OnPaint(wxPaintEvent &event ); - - // main event receivers - void OnMouseMove( wxMouseEvent &event ); - void OnMouseClick( wxMouseEvent &event ); - void OnMouseRightClick( wxMouseEvent &event ); - void OnMouseDoubleClick( wxMouseEvent &event ); - void OnMouseUp( wxMouseEvent &event ); - void OnKey( wxKeyEvent &event ); - void OnResize( wxSizeEvent &event ); - - // event handlers - bool HandleMouseMove( int x, unsigned int y, wxMouseEvent &event ); - bool HandleMouseClick( int x, unsigned int y, wxMouseEvent &event ); - bool HandleMouseRightClick( int x, unsigned int y, wxMouseEvent &event ); - bool HandleMouseDoubleClick( int x, unsigned int y, wxMouseEvent &event ); - bool HandleMouseUp( int x, unsigned int y, wxMouseEvent &event ); - void HandleKeyEvent( wxKeyEvent &event, bool fromChild ); - - void OnMouseEntry( wxMouseEvent &event ); - - void OnIdle( wxIdleEvent &event ); - void OnFocusEvent( wxFocusEvent &event ); - void OnChildFocusEvent( wxChildFocusEvent& event ); - - bool OnMouseCommon( wxMouseEvent &event, int* px, int *py ); - bool OnMouseChildCommon( wxMouseEvent &event, int* px, int *py ); - - // sub-control event handlers - void OnMouseClickChild( wxMouseEvent &event ); - void OnMouseRightClickChild( wxMouseEvent &event ); - void OnMouseMoveChild( wxMouseEvent &event ); - void OnMouseUpChild( wxMouseEvent &event ); - void OnChildKeyDown( wxKeyEvent &event ); - - void OnCaptureChange( wxMouseCaptureChangedEvent &event ); - - void OnScrollEvent( wxScrollWinEvent &event ); - - void OnSysColourChanged( wxSysColourChangedEvent &event ); - - void OnTLPClose( wxCloseEvent& event ); - -protected: - - bool AddToSelectionFromInputEvent( wxPGProperty* prop, - unsigned int colIndex, - wxMouseEvent* event = NULL, - int selFlags = 0 ); - - /** - Adjust the centering of the bitmap icons (collapse / expand) when the - caption font changes. - - They need to be centered in the middle of the font, so a bit of deltaY - adjustment is needed. On entry, m_captionFont must be set to window - font. It will be modified properly. - */ - void CalculateFontAndBitmapStuff( int vspacing ); - - wxRect GetEditorWidgetRect( wxPGProperty* p, int column ) const; - - void CorrectEditorWidgetSizeX(); - - /** Called in RecalculateVirtualSize() to reposition control - on virtual height changes. - */ - void CorrectEditorWidgetPosY(); - -#if WXWIN_COMPATIBILITY_3_0 - wxDEPRECATED_MSG("use two-argument function DoDrawItems(dc,rect)") - int DoDrawItems( wxDC& dc, - const wxRect* itemsRect, - bool isBuffered ) const - { - return DoDrawItemsBase(dc, itemsRect, isBuffered); - } - - int DoDrawItems( wxDC& dc, - const wxRect* itemsRect ) const - { - return DoDrawItemsBase(dc, itemsRect, true); - } - - int DoDrawItemsBase( wxDC& dc, - const wxRect* itemsRect, - bool isBuffered ) const; -#else - int DoDrawItems( wxDC& dc, - const wxRect* itemsRect ) const; -#endif - - /** Draws an expand/collapse (ie. +/-) button. - */ - virtual void DrawExpanderButton( wxDC& dc, const wxRect& rect, - wxPGProperty* property ) const; - - /** Draws items from topitemy to bottomitemy */ - void DrawItems( wxDC& dc, - unsigned int topItemY, - unsigned int bottomItemY, - const wxRect* itemsRect = NULL ); - - // Translate wxKeyEvent to wxPG_ACTION_XXX - int KeyEventToActions(wxKeyEvent &event, int* pSecond) const; - - int KeyEventToAction(wxKeyEvent &event) const - { - return KeyEventToActions(event, NULL); - } - - void ImprovedClientToScreen( int* px, int* py ); - - // Called by focus event handlers. newFocused is the window that becomes - // focused. - void HandleFocusChange( wxWindow* newFocused ); - - /** Reloads all non-customized colours from system settings. */ - void RegainColours(); - - virtual bool DoEditorValidate(); - - // Similar to DoSelectProperty() but also works on columns - // other than 1. Does not active editor if column is not - // editable. - bool DoSelectAndEdit( wxPGProperty* prop, - unsigned int colIndex, - unsigned int selFlags ); - - void DoSetSelection( const wxArrayPGProperty& newSelection, - int selFlags = 0 ); - - void DoSetSplitterPosition( int newxpos, - int splitterIndex = 0, - int flags = wxPG_SPLITTER_REFRESH ); - - bool DoAddToSelection( wxPGProperty* prop, - int selFlags = 0 ); - - bool DoRemoveFromSelection( wxPGProperty* prop, - int selFlags = 0 ); - - void DoBeginLabelEdit( unsigned int colIndex, int selFlags = 0 ); - void DoEndLabelEdit( bool commit, int selFlags = 0 ); - void OnLabelEditorEnterPress( wxCommandEvent& event ); - void OnLabelEditorKeyPress( wxKeyEvent& event ); - - wxPGProperty* DoGetItemAtY( int y ) const; - - void DestroyEditorWnd( wxWindow* wnd ); - void FreeEditors(); - - virtual bool DoExpand( wxPGProperty* p, bool sendEvent = false ); - - virtual bool DoCollapse( wxPGProperty* p, bool sendEvent = false ); - - // Returns nearest paint visible property (such that will be painted unless - // window is scrolled or resized). If given property is paint visible, then - // it itself will be returned. - wxPGProperty* GetNearestPaintVisible( wxPGProperty* p ) const; - - static void RegisterDefaultEditors(); - - // Sets up basic event handling for child control - void SetupChildEventHandling( wxWindow* wnd ); - - void CustomSetCursor( int type, bool override = false ); - - /** - Repositions scrollbar and underlying panel according to changed virtual - size. - */ - void RecalculateVirtualSize( int forceXPos = -1 ); - - void SetEditorAppearance( const wxPGCell& cell, - bool unspecified = false ); - - void ResetEditorAppearance() - { - wxPGCell cell; - cell.SetEmptyData(); - SetEditorAppearance(cell, false); - } - - void PrepareAfterItemsAdded(); - - /** - Send event from the property grid. - - Omit the wxPG_SEL_NOVALIDATE flag to allow vetoing the event - */ - bool SendEvent( int eventType, wxPGProperty* p, - wxVariant* pValue = NULL, - unsigned int selFlags = wxPG_SEL_NOVALIDATE, - unsigned int column = 1 ); - - // This function only moves focus to the wxPropertyGrid if it already - // was on one of its child controls. - void SetFocusOnCanvas(); - - bool DoHideProperty( wxPGProperty* p, bool hide, int flags ); - - void DeletePendingObjects(); - -private: - - bool ButtonTriggerKeyTest( int action, wxKeyEvent& event ); - - wxDECLARE_EVENT_TABLE(); -}; - -// ----------------------------------------------------------------------- -// -// Bunch of inlines that need to resolved after all classes have been defined. -// - -inline bool wxPropertyGridPageState::IsDisplayed() const -{ - return ( this == m_pPropGrid->GetState() ); -} - -inline unsigned int wxPropertyGridPageState::GetActualVirtualHeight() const -{ - return DoGetRoot()->GetChildrenHeight(GetGrid()->GetRowHeight()); -} - -inline wxString wxPGProperty::GetHintText() const -{ - wxVariant vHintText = GetAttribute(wxPG_ATTR_HINT); - -#if wxPG_COMPATIBILITY_1_4 - // Try the old, deprecated "InlineHelp" - if ( vHintText.IsNull() ) - vHintText = GetAttribute(wxPG_ATTR_INLINE_HELP); -#endif - - if ( !vHintText.IsNull() ) - return vHintText.GetString(); - - return wxEmptyString; -} - -inline int wxPGProperty::GetDisplayedCommonValueCount() const -{ - if ( HasFlag(wxPG_PROP_USES_COMMON_VALUE) ) - { - wxPropertyGrid* pg = GetGrid(); - if ( pg ) - return (int) pg->GetCommonValueCount(); - } - return 0; -} - -inline void wxPGProperty::SetDefaultValue( wxVariant& value ) -{ - SetAttribute(wxPG_ATTR_DEFAULT_VALUE, value); -} - -inline void wxPGProperty::SetEditor( const wxString& editorName ) -{ - m_customEditor = wxPropertyGridInterface::GetEditorByName(editorName); -} - -inline bool wxPGProperty::SetMaxLength( int maxLen ) -{ - return GetGrid()->SetPropertyMaxLength(this,maxLen); -} - -// ----------------------------------------------------------------------- - -#define wxPG_BASE_EVT_PRE_ID 1775 - -#ifndef SWIG - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_SELECTED, wxPropertyGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_CHANGING, wxPropertyGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_CHANGED, wxPropertyGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_HIGHLIGHTED, wxPropertyGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_RIGHT_CLICK, wxPropertyGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_PAGE_CHANGED, wxPropertyGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_ITEM_COLLAPSED, wxPropertyGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_ITEM_EXPANDED, wxPropertyGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, wxEVT_PG_DOUBLE_CLICK, wxPropertyGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, - wxEVT_PG_LABEL_EDIT_BEGIN, wxPropertyGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, - wxEVT_PG_LABEL_EDIT_ENDING, wxPropertyGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, - wxEVT_PG_COL_BEGIN_DRAG, wxPropertyGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, - wxEVT_PG_COL_DRAGGING, wxPropertyGridEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_PROPGRID, - wxEVT_PG_COL_END_DRAG, wxPropertyGridEvent ); - -#else - enum { - wxEVT_PG_SELECTED = wxPG_BASE_EVT_PRE_ID, - wxEVT_PG_CHANGING, - wxEVT_PG_CHANGED, - wxEVT_PG_HIGHLIGHTED, - wxEVT_PG_RIGHT_CLICK, - wxEVT_PG_PAGE_CHANGED, - wxEVT_PG_ITEM_COLLAPSED, - wxEVT_PG_ITEM_EXPANDED, - wxEVT_PG_DOUBLE_CLICK, - wxEVT_PG_LABEL_EDIT_BEGIN, - wxEVT_PG_LABEL_EDIT_ENDING, - wxEVT_PG_COL_BEGIN_DRAG, - wxEVT_PG_COL_DRAGGING, - wxEVT_PG_COL_END_DRAG - }; -#endif - - -#define wxPG_BASE_EVT_TYPE wxEVT_PG_SELECTED -#define wxPG_MAX_EVT_TYPE (wxPG_BASE_EVT_TYPE+30) - - -#ifndef SWIG -typedef void (wxEvtHandler::*wxPropertyGridEventFunction)(wxPropertyGridEvent&); - -#define EVT_PG_SELECTED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_SELECTED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_CHANGING(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_CHANGING, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_CHANGED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_CHANGED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_HIGHLIGHTED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_HIGHLIGHTED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_RIGHT_CLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_RIGHT_CLICK, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_DOUBLE_CLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_DOUBLE_CLICK, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_PAGE_CHANGED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_PAGE_CHANGED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_ITEM_COLLAPSED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_ITEM_COLLAPSED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_ITEM_EXPANDED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_ITEM_EXPANDED, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_LABEL_EDIT_BEGIN(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_LABEL_EDIT_BEGIN, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_LABEL_EDIT_ENDING(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_LABEL_EDIT_ENDING, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_COL_BEGIN_DRAG(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_COL_BEGIN_DRAG, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_COL_DRAGGING(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_COL_DRAGGING, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), -#define EVT_PG_COL_END_DRAG(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_PG_COL_END_DRAG, id, -1, wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ), NULL ), - -#define wxPropertyGridEventHandler(fn) \ - wxEVENT_HANDLER_CAST( wxPropertyGridEventFunction, fn ) - -#endif - - -/** @class wxPropertyGridEvent - - A propertygrid event holds information about events associated with - wxPropertyGrid objects. - - @library{wxpropgrid} - @category{propgrid} -*/ -class WXDLLIMPEXP_PROPGRID wxPropertyGridEvent : public wxCommandEvent -{ -public: - - /** Constructor. */ - wxPropertyGridEvent(wxEventType commandType=0, int id=0); - - /** Copy constructor. */ - wxPropertyGridEvent(const wxPropertyGridEvent& event); - - /** Destructor. */ - ~wxPropertyGridEvent(); - - /** Copyer. */ - virtual wxEvent* Clone() const wxOVERRIDE; - - /** - Returns the column index associated with this event. - For the column dragging events, it is the column to the left - of the splitter being dragged - */ - unsigned int GetColumn() const - { - return m_column; - } - - wxPGProperty* GetMainParent() const - { - wxASSERT(m_property); - return m_property->GetMainParent(); - } - - /** Returns id of associated property. */ - wxPGProperty* GetProperty() const - { - return m_property; - } - - wxPGValidationInfo& GetValidationInfo() - { - wxASSERT(m_validationInfo); - return *m_validationInfo; - } - - /** Returns true if you can veto the action that the event is signaling. - */ - bool CanVeto() const { return m_canVeto; } - - /** - Call this from your event handler to veto action that the event is - signaling. - - You can only veto a shutdown if wxPropertyGridEvent::CanVeto returns - true. - @remarks - Currently only wxEVT_PG_CHANGING supports vetoing. - */ - void Veto( bool veto = true ) { m_wasVetoed = veto; } - - /** - Returns name of the associated property. - - @remarks Property name is stored in event, so it remains - accessible even after the associated property or - the property grid has been deleted. - */ - wxString GetPropertyName() const - { - return m_propertyName; - } - - /** - Returns value of the associated property. Works for all event - types, but for wxEVT_PG_CHANGING this member function returns - the value that is pending, so you can call Veto() if the - value is not satisfactory. - - @remarks Property value is stored in event, so it remains - accessible even after the associated property or - the property grid has been deleted. - */ - wxVariant GetPropertyValue() const - { - if ( m_validationInfo ) - return m_validationInfo->GetValue(); - return m_value; - } - - /** - Returns value of the associated property. - - @see GetPropertyValue - */ - wxVariant GetValue() const - { - return GetPropertyValue(); - } - - /** - Set override validation failure behaviour. - - Only effective if Veto was also called, and only allowed if event type - is wxEVT_PG_CHANGING. - */ - void SetValidationFailureBehavior( wxPGVFBFlags flags ) - { - wxASSERT( GetEventType() == wxEVT_PG_CHANGING ); - m_validationInfo->SetFailureBehavior( flags ); - } - - /** Sets custom failure message for this time only. Only applies if - wxPG_VFB_SHOW_MESSAGE is set in validation failure flags. - */ - void SetValidationFailureMessage( const wxString& message ) - { - wxASSERT( GetEventType() == wxEVT_PG_CHANGING ); - m_validationInfo->SetFailureMessage( message ); - } - - wxPGVFBFlags GetValidationFailureBehavior() const - { - wxASSERT( GetEventType() == wxEVT_PG_CHANGING ); - return m_validationInfo->GetFailureBehavior(); - } - - void SetColumn( unsigned int column ) - { - m_column = column; - } - - void SetCanVeto( bool canVeto ) { m_canVeto = canVeto; } - bool WasVetoed() const { return m_wasVetoed; } - - /** Changes the associated property. */ - void SetProperty( wxPGProperty* p ) - { - m_property = p; - if ( p ) - m_propertyName = p->GetName(); - } - - void SetPropertyValue( wxVariant value ) - { - m_value = value; - } - - void SetPropertyGrid( wxPropertyGrid* pg ) - { - m_pg = pg; - OnPropertyGridSet(); - } - - void SetupValidationInfo() - { - wxASSERT(m_pg); - wxASSERT( GetEventType() == wxEVT_PG_CHANGING ); - m_validationInfo = &m_pg->GetValidationInfo(); - m_value = m_validationInfo->GetValue(); - } - -private: - void Init(); - void OnPropertyGridSet(); - wxDECLARE_DYNAMIC_CLASS(wxPropertyGridEvent); - - wxPGProperty* m_property; - wxPropertyGrid* m_pg; - wxPGValidationInfo* m_validationInfo; - - wxString m_propertyName; - wxVariant m_value; - - unsigned int m_column; - - bool m_canVeto; - bool m_wasVetoed; -}; - - -// ----------------------------------------------------------------------- - -/** @class wxPropertyGridPopulator - @ingroup classes - Allows populating wxPropertyGrid from arbitrary text source. -*/ -class WXDLLIMPEXP_PROPGRID wxPropertyGridPopulator -{ -public: - /** Default constructor. - */ - wxPropertyGridPopulator(); - - /** Destructor. */ - virtual ~wxPropertyGridPopulator(); - - void SetState( wxPropertyGridPageState* state ); - - void SetGrid( wxPropertyGrid* pg ); - - /** Appends a new property under bottommost parent. - @param propClass - Property class as string. - */ - wxPGProperty* Add( const wxString& propClass, - const wxString& propLabel, - const wxString& propName, - const wxString* propValue, - wxPGChoices* pChoices = NULL ); - - /** - Pushes property to the back of parent array (ie it becomes bottommost - parent), and starts scanning/adding children for it. - - When finished, parent array is returned to the original state. - */ - void AddChildren( wxPGProperty* property ); - - /** Adds attribute to the bottommost property. - @param type - Allowed values: "string", (same as string), "int", "bool". Empty string - mean autodetect. - */ - bool AddAttribute( const wxString& name, - const wxString& type, - const wxString& value ); - - /** Called once in AddChildren. - */ - virtual void DoScanForChildren() = 0; - - /** - Returns id of parent property for which children can currently be - added. - */ - wxPGProperty* GetCurParent() const - { - return (wxPGProperty*) m_propHierarchy[m_propHierarchy.size()-1]; - } - - wxPropertyGridPageState* GetState() { return m_state; } - const wxPropertyGridPageState* GetState() const { return m_state; } - - /** Like wxString::ToLong, except allows N% in addition of N. - */ - static bool ToLongPCT( const wxString& s, long* pval, long max ); - - /** Parses strings of format "choice1"[=value1] ... "choiceN"[=valueN] into - wxPGChoices. Registers parsed result using idString (if not empty). - Also, if choices with given id already registered, then don't parse but - return those choices instead. - */ - wxPGChoices ParseChoices( const wxString& choicesString, - const wxString& idString ); - - /** Implement in derived class to do custom process when an error occurs. - Default implementation uses wxLogError. - */ - virtual void ProcessError( const wxString& msg ); - -protected: - - /** Used property grid. */ - wxPropertyGrid* m_pg; - - /** Used property grid state. */ - wxPropertyGridPageState* m_state; - - /** Tree-hierarchy of added properties (that can have children). */ - wxArrayPGProperty m_propHierarchy; - - /** Hashmap for string-id to wxPGChoicesData mapping. */ - wxPGHashMapS2P m_dictIdChoices; -}; - -// ----------------------------------------------------------------------- - -// -// Undefine macros that are not needed outside propertygrid sources -// -#ifndef __wxPG_SOURCE_FILE__ - #undef wxPG_FL_DESC_REFRESH_REQUIRED - #undef wxPG_FL_SCROLLBAR_DETECTED - #undef wxPG_FL_CREATEDSTATE - #undef wxPG_FL_NOSTATUSBARHELP - #undef wxPG_FL_SCROLLED - #undef wxPG_FL_FOCUS_INSIDE_CHILD - #undef wxPG_FL_FOCUS_INSIDE - #undef wxPG_FL_MOUSE_INSIDE_CHILD - #undef wxPG_FL_CUR_USES_CUSTOM_IMAGE - #undef wxPG_FL_PRIMARY_FILLS_ENTIRE - #undef wxPG_FL_VALUE_MODIFIED - #undef wxPG_FL_MOUSE_INSIDE - #undef wxPG_FL_FOCUSED - #undef wxPG_FL_MOUSE_CAPTURED - #undef wxPG_FL_INITIALIZED - #undef wxPG_FL_ACTIVATION_BY_CLICK - #undef wxPG_SUPPORT_TOOLTIPS - #undef wxPG_ICON_WIDTH - #undef wxPG_USE_RENDERER_NATIVE -// Following are needed by the manager headers -// #undef const wxString& -#endif - -// ----------------------------------------------------------------------- - -#endif - -#endif // _WX_PROPGRID_PROPGRID_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgriddefs.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgriddefs.h deleted file mode 100644 index a2c4a60e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgriddefs.h +++ /dev/null @@ -1,710 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/propgrid/propgriddefs.h -// Purpose: wxPropertyGrid miscellaneous definitions -// Author: Jaakko Salli -// Modified by: -// Created: 2008-08-31 -// Copyright: (c) Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROPGRID_PROPGRIDDEFS_H_ -#define _WX_PROPGRID_PROPGRIDDEFS_H_ - -#include "wx/defs.h" - -#if wxUSE_PROPGRID - -#include "wx/dynarray.h" -#include "wx/vector.h" -#include "wx/hashmap.h" -#include "wx/hashset.h" -#include "wx/variant.h" -#include "wx/any.h" -#include "wx/longlong.h" -#include "wx/clntdata.h" - -// ----------------------------------------------------------------------- - -// -// Here are some platform dependent defines -// NOTE: More in propertygrid.cpp -// - -#if defined(__WXMSW__) - - // space between vertical line and value text - #define wxPG_XBEFORETEXT 4 - // space between vertical line and value editor control - #define wxPG_XBEFOREWIDGET 1 - - // comment to use bitmap buttons - #define wxPG_ICON_WIDTH 9 - // 1 if wxRendererNative should be employed - #define wxPG_USE_RENDERER_NATIVE 1 - - // Enable tooltips - #define wxPG_SUPPORT_TOOLTIPS 1 - - // width of optional bitmap/image in front of property - #define wxPG_CUSTOM_IMAGE_WIDTH 20 - - // 1 if splitter drag detect margin and control cannot overlap - #define wxPG_NO_CHILD_EVT_MOTION 0 - - #define wxPG_NAT_BUTTON_BORDER_ANY 1 - #define wxPG_NAT_BUTTON_BORDER_X 1 - #define wxPG_NAT_BUTTON_BORDER_Y 1 - - // If 1 then controls are refreshed explicitly in a few places - #define wxPG_REFRESH_CONTROLS 0 - -#elif defined(__WXGTK__) - - // space between vertical line and value text - #define wxPG_XBEFORETEXT 5 - // space between vertical line and value editor control - #define wxPG_XBEFOREWIDGET 1 - - // x position adjustment for wxTextCtrl (and like) - // NB: Only define wxPG_TEXTCTRLXADJUST for platforms that do not - // (yet) support wxTextEntry::SetMargins() for the left margin. - //#define wxPG_TEXTCTRLXADJUST 3 - - // comment to use bitmap buttons - #define wxPG_ICON_WIDTH 9 - // 1 if wxRendererNative should be employed - #define wxPG_USE_RENDERER_NATIVE 1 - - // Enable tooltips - #define wxPG_SUPPORT_TOOLTIPS 1 - - // width of optional bitmap/image in front of property - #define wxPG_CUSTOM_IMAGE_WIDTH 20 - - // 1 if splitter drag detect margin and control cannot overlap - #define wxPG_NO_CHILD_EVT_MOTION 1 - - #define wxPG_NAT_BUTTON_BORDER_ANY 1 - #define wxPG_NAT_BUTTON_BORDER_X 1 - #define wxPG_NAT_BUTTON_BORDER_Y 1 - - // If 1 then controls are refreshed after selected was drawn. - #define wxPG_REFRESH_CONTROLS 1 - -#elif defined(__WXMAC__) - - // space between vertical line and value text - #define wxPG_XBEFORETEXT 4 - // space between vertical line and value editor widget - #define wxPG_XBEFOREWIDGET 1 - - // x position adjustment for wxTextCtrl (and like) - #define wxPG_TEXTCTRLXADJUST 0 - - // comment to use bitmap buttons - #define wxPG_ICON_WIDTH 11 - // 1 if wxRendererNative should be employed - #define wxPG_USE_RENDERER_NATIVE 1 - - // Enable tooltips - #define wxPG_SUPPORT_TOOLTIPS 1 - - // width of optional bitmap/image in front of property - #define wxPG_CUSTOM_IMAGE_WIDTH 20 - - // 1 if splitter drag detect margin and control cannot overlap - #define wxPG_NO_CHILD_EVT_MOTION 0 - - #define wxPG_NAT_BUTTON_BORDER_ANY 0 - #define wxPG_NAT_BUTTON_BORDER_X 0 - #define wxPG_NAT_BUTTON_BORDER_Y 0 - - // If 1 then controls are refreshed after selected was drawn. - #define wxPG_REFRESH_CONTROLS 0 - -#else // defaults - - // space between vertical line and value text - #define wxPG_XBEFORETEXT 5 - // space between vertical line and value editor widget - #define wxPG_XBEFOREWIDGET 1 - - // x position adjustment for wxTextCtrl (and like) - #define wxPG_TEXTCTRLXADJUST 3 - - // comment to use bitmap buttons - #define wxPG_ICON_WIDTH 9 - // 1 if wxRendererNative should be employed - #define wxPG_USE_RENDERER_NATIVE 0 - - // Enable tooltips - #define wxPG_SUPPORT_TOOLTIPS 0 - - // width of optional bitmap/image in front of property - #define wxPG_CUSTOM_IMAGE_WIDTH 20 - - // 1 if splitter drag detect margin and control cannot overlap - #define wxPG_NO_CHILD_EVT_MOTION 1 - - #define wxPG_NAT_BUTTON_BORDER_ANY 0 - #define wxPG_NAT_BUTTON_BORDER_X 0 - #define wxPG_NAT_BUTTON_BORDER_Y 0 - - // If 1 then controls are refreshed after selected was drawn. - #define wxPG_REFRESH_CONTROLS 0 -#endif // platform - - -#define wxPG_CONTROL_MARGIN 0 // space between splitter and control - -#define wxCC_CUSTOM_IMAGE_MARGIN1 4 // before image -#define wxCC_CUSTOM_IMAGE_MARGIN2 5 // after image - -#define DEFAULT_IMAGE_OFFSET_INCREMENT \ - (wxCC_CUSTOM_IMAGE_MARGIN1 + wxCC_CUSTOM_IMAGE_MARGIN2) - -#define wxPG_DRAG_MARGIN 30 - -#if wxPG_NO_CHILD_EVT_MOTION - #define wxPG_SPLITTERX_DETECTMARGIN1 3 // this much on left - #define wxPG_SPLITTERX_DETECTMARGIN2 2 // this much on right -#else - #define wxPG_SPLITTERX_DETECTMARGIN1 3 // this much on left - #define wxPG_SPLITTERX_DETECTMARGIN2 2 // this much on right -#endif - -// Use this macro to generate standard custom image height from -#define wxPG_STD_CUST_IMAGE_HEIGHT(LINEHEIGHT) (LINEHEIGHT-3) - -// Undefine wxPG_ICON_WIDTH to use supplied xpm bitmaps instead -// (for tree buttons) -//#undef wxPG_ICON_WIDTH - -#if WXWIN_COMPATIBILITY_2_8 - #define wxPG_COMPATIBILITY_1_4 1 -#else - #define wxPG_COMPATIBILITY_1_4 0 -#endif - -// Need to force disable tooltips? -#if !wxUSE_TOOLTIPS - #undef wxPG_SUPPORT_TOOLTIPS - #define wxPG_SUPPORT_TOOLTIPS 0 -#endif - -// Set 1 to include advanced properties (wxFontProperty, wxColourProperty, etc.) -#ifndef wxPG_INCLUDE_ADVPROPS - #define wxPG_INCLUDE_ADVPROPS 1 -#endif - -// Set 1 to include checkbox editor class -#define wxPG_INCLUDE_CHECKBOX 1 - -// ----------------------------------------------------------------------- - - -class wxPGEditor; -class wxPGProperty; -class wxPropertyCategory; -class wxPGChoices; -class wxPropertyGridPageState; -class wxPGCell; -class wxPGCellRenderer; -class wxPGChoiceEntry; -class wxPGPropArgCls; -class wxPropertyGridInterface; -class wxPropertyGrid; -class wxPropertyGridEvent; -class wxPropertyGridManager; -class wxPGOwnerDrawnComboBox; -class wxPGEditorDialogAdapter; -class wxPGValidationInfo; - - -// ----------------------------------------------------------------------- - -/** @section propgrid_misc wxPropertyGrid Miscellaneous - - This section describes some miscellaneous values, types and macros. - @{ -*/ - -// Used to tell wxPGProperty to use label as name as well -#define wxPG_LABEL (*wxPGProperty::sm_wxPG_LABEL) - -// This is the value placed in wxPGProperty::sm_wxPG_LABEL -#define wxPG_LABEL_STRING wxS("@!") -#if WXWIN_COMPATIBILITY_3_0 -#define wxPG_NULL_BITMAP wxNullBitmap -#endif // WXWIN_COMPATIBILITY_3_0 -#define wxPG_COLOUR_BLACK (*wxBLACK) - -/** Convert Red, Green and Blue to a single 32-bit value. -*/ -#define wxPG_COLOUR(R,G,B) ((wxUint32)(R+(G<<8)+(B<<16))) - - -/** If property is supposed to have custom-painted image, then returning - this in OnMeasureImage() will usually be enough. -*/ -#define wxPG_DEFAULT_IMAGE_SIZE wxDefaultSize - - -/** This callback function is used for sorting properties. - - Call wxPropertyGrid::SetSortFunction() to set it. - - Sort function should return a value greater than 0 if position of p1 is - after p2. So, for instance, when comparing property names, you can use - following implementation: - - @code - int MyPropertySortFunction(wxPropertyGrid* propGrid, - wxPGProperty* p1, - wxPGProperty* p2) - { - return p1->GetBaseName().compare( p2->GetBaseName() ); - } - @endcode -*/ -typedef int (*wxPGSortCallback)(wxPropertyGrid* propGrid, - wxPGProperty* p1, - wxPGProperty* p2); - - -#if WXWIN_COMPATIBILITY_3_0 -typedef wxString wxPGCachedString; -#endif - -/** @} -*/ - -// ----------------------------------------------------------------------- - -// Used to indicate wxPGChoices::Add etc. that the value is actually not given -// by the caller. -#define wxPG_INVALID_VALUE INT_MAX - -// ----------------------------------------------------------------------- - -WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(wxPGProperty*, wxArrayPGProperty, - wxBaseArrayPtrVoid, - class WXDLLIMPEXP_PROPGRID); - -WX_DECLARE_STRING_HASH_MAP_WITH_DECL(void*, - wxPGHashMapS2P, - class WXDLLIMPEXP_PROPGRID); - -WX_DECLARE_STRING_HASH_MAP_WITH_DECL(wxString, - wxPGHashMapS2S, - class WXDLLIMPEXP_PROPGRID); - -WX_DECLARE_VOIDPTR_HASH_MAP_WITH_DECL(void*, - wxPGHashMapP2P, - class WXDLLIMPEXP_PROPGRID); - -WX_DECLARE_HASH_MAP_WITH_DECL(wxInt32, - wxInt32, - wxIntegerHash, - wxIntegerEqual, - wxPGHashMapI2I, - class WXDLLIMPEXP_PROPGRID); - -WX_DECLARE_HASH_SET_WITH_DECL(int, - wxIntegerHash, - wxIntegerEqual, - wxPGHashSetInt, - class WXDLLIMPEXP_PROPGRID); - -WX_DEFINE_TYPEARRAY_WITH_DECL_PTR(wxObject*, wxArrayPGObject, - wxBaseArrayPtrVoid, - class WXDLLIMPEXP_PROPGRID); - -// ----------------------------------------------------------------------- - -enum wxPG_GETPROPERTYVALUES_FLAGS -{ - -/** Flags for wxPropertyGridInterface::GetPropertyValues */ -wxPG_KEEP_STRUCTURE = 0x00000010, - -/** Flags for wxPropertyGrid::SetPropertyAttribute() etc */ -wxPG_RECURSE = 0x00000020, - -/** Include attributes for GetPropertyValues. */ -wxPG_INC_ATTRIBUTES = 0x00000040, - -/** Used when first starting recursion. */ -wxPG_RECURSE_STARTS = 0x00000080, - -/** Force value change. */ -wxPG_FORCE = 0x00000100, - -/** Only sort categories and their immediate children. - Sorting done by wxPG_AUTO_SORT option uses this. -*/ -wxPG_SORT_TOP_LEVEL_ONLY = 0x00000200 - -}; - -/** Flags for wxPropertyGrid::SetPropertyAttribute() etc */ -#define wxPG_DONT_RECURSE 0x00000000 - -// ----------------------------------------------------------------------- - -// Misc. argument flags. -enum wxPG_MISC_ARG_FLAGS -{ - // Get/Store full value instead of displayed value. - wxPG_FULL_VALUE = 0x00000001, - - wxPG_REPORT_ERROR = 0x00000002, - - wxPG_PROPERTY_SPECIFIC = 0x00000004, - - // Get/Store editable value instead of displayed one (should only be - // different in the case of common values) - wxPG_EDITABLE_VALUE = 0x00000008, - - // Used when dealing with fragments of composite string value - wxPG_COMPOSITE_FRAGMENT = 0x00000010, - - // Means property for which final string value is for cannot really be - // edited. - wxPG_UNEDITABLE_COMPOSITE_FRAGMENT = 0x00000020, - - // ValueToString() called from GetValueAsString() - // (guarantees that input wxVariant value is current own value) - wxPG_VALUE_IS_CURRENT = 0x00000040, - - // Value is being set programmatically (i.e. not by user) - wxPG_PROGRAMMATIC_VALUE = 0x00000080 -}; - -// ----------------------------------------------------------------------- - -// wxPGProperty::SetValue() flags -enum wxPG_SETVALUE_FLAGS -{ - wxPG_SETVAL_REFRESH_EDITOR = 0x0001, - wxPG_SETVAL_AGGREGATED = 0x0002, - wxPG_SETVAL_FROM_PARENT = 0x0004, - wxPG_SETVAL_BY_USER = 0x0008 // Set if value changed by user -}; - -// ----------------------------------------------------------------------- - -// -// Valid constants for wxPG_UINT_BASE attribute -// (long because of wxVariant constructor) -#define wxPG_BASE_OCT (long)8 -#define wxPG_BASE_DEC (long)10 -#define wxPG_BASE_HEX (long)16 -#define wxPG_BASE_HEXL (long)32 - -// -// Valid constants for wxPG_UINT_PREFIX attribute -#define wxPG_PREFIX_NONE (long)0 -#define wxPG_PREFIX_0x (long)1 -#define wxPG_PREFIX_DOLLAR_SIGN (long)2 - -// ----------------------------------------------------------------------- -// Editor class. - -// Editor accessor (for backwards compatibility use only). -#define wxPG_EDITOR(T) wxPGEditor_##T - -// Macro for declaring editor class, with optional impexpdecl part. -#ifndef WX_PG_DECLARE_EDITOR_WITH_DECL - - #define WX_PG_DECLARE_EDITOR_WITH_DECL(EDITOR,DECL) \ - extern DECL wxPGEditor* wxPGEditor_##EDITOR; \ - extern DECL wxPGEditor* wxPGConstruct##EDITOR##EditorClass(); - -#endif - -// Declare editor class. -#define WX_PG_DECLARE_EDITOR(EDITOR) \ -extern wxPGEditor* wxPGEditor_##EDITOR; \ -extern wxPGEditor* wxPGConstruct##EDITOR##EditorClass(); - -// Declare built-in editor classes. -WX_PG_DECLARE_EDITOR_WITH_DECL(TextCtrl,WXDLLIMPEXP_PROPGRID) -WX_PG_DECLARE_EDITOR_WITH_DECL(Choice,WXDLLIMPEXP_PROPGRID) -WX_PG_DECLARE_EDITOR_WITH_DECL(ComboBox,WXDLLIMPEXP_PROPGRID) -WX_PG_DECLARE_EDITOR_WITH_DECL(TextCtrlAndButton,WXDLLIMPEXP_PROPGRID) -#if wxPG_INCLUDE_CHECKBOX -WX_PG_DECLARE_EDITOR_WITH_DECL(CheckBox,WXDLLIMPEXP_PROPGRID) -#endif -WX_PG_DECLARE_EDITOR_WITH_DECL(ChoiceAndButton,WXDLLIMPEXP_PROPGRID) - -// ----------------------------------------------------------------------- - -#ifndef SWIG - -// -// Macro WXVARIANT allows creation of wxVariant from any type supported by -// wxWidgets internally, and of all types created using -// WX_PG_DECLARE_VARIANT_DATA. -template<class T> -wxVariant WXVARIANT( const T& WXUNUSED(value) ) -{ - wxFAIL_MSG(wxS("Code should always call specializations of this template")); - return wxVariant(); -} - -template<> inline wxVariant WXVARIANT( const int& value ) - { return wxVariant((long)value); } -template<> inline wxVariant WXVARIANT( const long& value ) - { return wxVariant(value); } -template<> inline wxVariant WXVARIANT( const bool& value ) - { return wxVariant(value); } -template<> inline wxVariant WXVARIANT( const double& value ) - { return wxVariant(value); } -template<> inline wxVariant WXVARIANT( const wxArrayString& value ) - { return wxVariant(value); } -template<> inline wxVariant WXVARIANT( const wxString& value ) - { return wxVariant(value); } -#if wxUSE_LONGLONG -template<> inline wxVariant WXVARIANT( const wxLongLong& value ) - { return wxVariant(value); } -template<> inline wxVariant WXVARIANT( const wxULongLong& value ) - { return wxVariant(value); } -#endif -#if wxUSE_DATETIME -template<> inline wxVariant WXVARIANT( const wxDateTime& value ) - { return wxVariant(value); } -#endif - - -// -// These are modified versions of DECLARE/WX_PG_IMPLEMENT_VARIANT_DATA -// macros found in variant.h. Differences are as follows: -// * These support non-wxObject data -// * These implement classname##RefFromVariant function which returns -// reference to data within. -// * const char* classname##_VariantType which equals classname. -// * WXVARIANT -// -#define WX_PG_DECLARE_VARIANT_DATA(classname) \ - WX_PG_DECLARE_VARIANT_DATA_EXPORTED(classname, wxEMPTY_PARAMETER_VALUE) - -#define WX_PG_DECLARE_VARIANT_DATA_EXPORTED(classname,expdecl) \ -expdecl classname& operator << ( classname &object, const wxVariant &variant ); \ -expdecl wxVariant& operator << ( wxVariant &variant, const classname &object ); \ -expdecl const classname& classname##RefFromVariant( const wxVariant& variant ); \ -expdecl classname& classname##RefFromVariant( wxVariant& variant ); \ -template<> inline wxVariant WXVARIANT( const classname& value ) \ -{ \ - wxVariant variant; \ - variant << value; \ - return variant; \ -} \ -extern expdecl const char* classname##_VariantType; - - -#define WX_PG_IMPLEMENT_VARIANT_DATA(classname) \ - WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED(classname, wxEMPTY_PARAMETER_VALUE) - -// Add getter (i.e. classname << variant) separately to allow -// custom implementations. -#define WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED_NO_EQ_NO_GETTER(classname,expdecl) \ -const char* classname##_VariantType = #classname; \ -class classname##VariantData: public wxVariantData \ -{ \ -public:\ - classname##VariantData() {} \ - classname##VariantData( const classname &value ) { m_value = value; } \ -\ - classname &GetValue() { return m_value; } \ -\ - const classname &GetValue() const { return m_value; } \ -\ - virtual bool Eq(wxVariantData& data) const wxOVERRIDE; \ -\ - virtual wxString GetType() const wxOVERRIDE; \ -\ - virtual wxVariantData* Clone() const wxOVERRIDE { return new classname##VariantData(m_value); } \ -\ - DECLARE_WXANY_CONVERSION() \ -protected:\ - classname m_value; \ -};\ -\ -IMPLEMENT_TRIVIAL_WXANY_CONVERSION(classname, classname##VariantData) \ -\ -wxString classname##VariantData::GetType() const\ -{\ - return wxS(#classname);\ -}\ -\ -expdecl wxVariant& operator << ( wxVariant &variant, const classname &value )\ -{\ - classname##VariantData *data = new classname##VariantData( value );\ - variant.SetData( data );\ - return variant;\ -} \ -expdecl classname& classname##RefFromVariant( wxVariant& variant ) \ -{ \ - wxASSERT_MSG( variant.GetType() == wxS(#classname), \ - wxString::Format(wxS("Variant type should have been '%s'") \ - wxS("instead of '%s'"), \ - wxS(#classname), \ - variant.GetType().c_str())); \ - classname##VariantData *data = \ - (classname##VariantData*) variant.GetData(); \ - return data->GetValue();\ -} \ -expdecl const classname& classname##RefFromVariant( const wxVariant& variant ) \ -{ \ - wxASSERT_MSG( variant.GetType() == wxS(#classname), \ - wxString::Format(wxS("Variant type should have been '%s'") \ - wxS("instead of '%s'"), \ - wxS(#classname), \ - variant.GetType().c_str())); \ - classname##VariantData *data = \ - (classname##VariantData*) variant.GetData(); \ - return data->GetValue();\ -} - -#define WX_PG_IMPLEMENT_VARIANT_DATA_GETTER(classname, expdecl) \ -expdecl classname& operator << ( classname &value, const wxVariant &variant )\ -{\ - wxASSERT( variant.GetType() == #classname );\ - \ - classname##VariantData *data = (classname##VariantData*) variant.GetData();\ - value = data->GetValue();\ - return value;\ -} - -#define WX_PG_IMPLEMENT_VARIANT_DATA_EQ(classname, expdecl) \ -bool classname##VariantData::Eq(wxVariantData& data) const \ -{\ - wxASSERT( GetType() == data.GetType() );\ -\ - classname##VariantData & otherData = (classname##VariantData &) data;\ -\ - return otherData.m_value == m_value;\ -} - -// implements a wxVariantData-derived class using for the Eq() method the -// operator== which must have been provided by "classname" -#define WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED(classname,expdecl) \ -WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED_NO_EQ_NO_GETTER(classname,wxEMPTY_PARAMETER_VALUE expdecl) \ -WX_PG_IMPLEMENT_VARIANT_DATA_GETTER(classname,wxEMPTY_PARAMETER_VALUE expdecl) \ -WX_PG_IMPLEMENT_VARIANT_DATA_EQ(classname,wxEMPTY_PARAMETER_VALUE expdecl) - -#define WX_PG_IMPLEMENT_VARIANT_DATA(classname) \ -WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED(classname, wxEMPTY_PARAMETER_VALUE) - -// with Eq() implementation that always returns false -#define WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED_DUMMY_EQ(classname,expdecl) \ -WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED_NO_EQ_NO_GETTER(classname,wxEMPTY_PARAMETER_VALUE expdecl) \ -WX_PG_IMPLEMENT_VARIANT_DATA_GETTER(classname,wxEMPTY_PARAMETER_VALUE expdecl) \ -\ -bool classname##VariantData::Eq(wxVariantData& WXUNUSED(data)) const \ -{\ - return false; \ -} - -#define WX_PG_IMPLEMENT_VARIANT_DATA_DUMMY_EQ(classname) \ -WX_PG_IMPLEMENT_VARIANT_DATA_EXPORTED_DUMMY_EQ(classname, wxEMPTY_PARAMETER_VALUE) - -WX_PG_DECLARE_VARIANT_DATA_EXPORTED(wxPoint, WXDLLIMPEXP_PROPGRID) -WX_PG_DECLARE_VARIANT_DATA_EXPORTED(wxSize, WXDLLIMPEXP_PROPGRID) -WX_PG_DECLARE_VARIANT_DATA_EXPORTED(wxArrayInt, WXDLLIMPEXP_PROPGRID) -DECLARE_VARIANT_OBJECT_EXPORTED(wxFont, WXDLLIMPEXP_PROPGRID) -template<> inline wxVariant WXVARIANT( const wxFont& value ) -{ - wxVariant variant; - variant << value; - return variant; -} - -template<> inline wxVariant WXVARIANT( const wxColour& value ) -{ - wxVariant variant; - variant << value; - return variant; -} - -// Define constants for common wxVariant type strings - -#define wxPG_VARIANT_TYPE_STRING wxPGGlobalVars->m_strstring -#define wxPG_VARIANT_TYPE_LONG wxPGGlobalVars->m_strlong -#define wxPG_VARIANT_TYPE_BOOL wxPGGlobalVars->m_strbool -#define wxPG_VARIANT_TYPE_LIST wxPGGlobalVars->m_strlist -#define wxPG_VARIANT_TYPE_DOUBLE wxS("double") -#define wxPG_VARIANT_TYPE_ARRSTRING wxS("arrstring") -#if wxUSE_DATETIME -#define wxPG_VARIANT_TYPE_DATETIME wxS("datetime") -#endif -#if wxUSE_LONGLONG -#define wxPG_VARIANT_TYPE_LONGLONG wxS("longlong") -#define wxPG_VARIANT_TYPE_ULONGLONG wxS("ulonglong") -#endif -#endif // !SWIG - -// ----------------------------------------------------------------------- - -// -// Tokenizer macros. -// NOTE: I have made two versions - worse ones (performance and consistency -// wise) use wxStringTokenizer and better ones (may have unfound bugs) -// use custom code. -// - -#include "wx/tokenzr.h" - -// TOKENIZER1 can be done with wxStringTokenizer -#define WX_PG_TOKENIZER1_BEGIN(WXSTRING,DELIMITER) \ - wxStringTokenizer tkz(WXSTRING,DELIMITER,wxTOKEN_RET_EMPTY); \ - while ( tkz.HasMoreTokens() ) \ - { \ - wxString token = tkz.GetNextToken(); \ - token.Trim(true); \ - token.Trim(false); - -#define WX_PG_TOKENIZER1_END() \ - } - - -// -// 2nd version: tokens are surrounded by DELIMITERs (for example, C-style -// strings). TOKENIZER2 must use custom code (a class) for full compliance with -// " surrounded strings with \" inside. -// -// class implementation is in propgrid.cpp -// - -class WXDLLIMPEXP_PROPGRID wxPGStringTokenizer -{ -public: - wxPGStringTokenizer( const wxString& str, wxChar delimiter ); - ~wxPGStringTokenizer(); - - bool HasMoreTokens(); // not const so we can do some stuff in it - wxString GetNextToken(); - -protected: - const wxString* m_str; - wxString::const_iterator m_curPos; - wxString m_readyToken; - wxUniChar m_delimiter; -}; - -#define WX_PG_TOKENIZER2_BEGIN(WXSTRING,DELIMITER) \ - wxPGStringTokenizer tkz(WXSTRING,DELIMITER); \ - while ( tkz.HasMoreTokens() ) \ - { \ - wxString token = tkz.GetNextToken(); - -#define WX_PG_TOKENIZER2_END() \ - } - -// ----------------------------------------------------------------------- - -#endif // wxUSE_PROPGRID - -#endif // _WX_PROPGRID_PROPGRIDDEFS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgridiface.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgridiface.h deleted file mode 100644 index 7ddea4e3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgridiface.h +++ /dev/null @@ -1,1419 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/propgrid/propgridiface.h -// Purpose: wxPropertyGridInterface class -// Author: Jaakko Salli -// Modified by: -// Created: 2008-08-24 -// Copyright: (c) Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __WX_PROPGRID_PROPGRIDIFACE_H__ -#define __WX_PROPGRID_PROPGRIDIFACE_H__ - -#include "wx/defs.h" - -#if wxUSE_PROPGRID - -#include "wx/propgrid/property.h" -#include "wx/propgrid/propgridpagestate.h" - -// ----------------------------------------------------------------------- - -/** @section wxPGPropArgCls - - Most property grid functions have this type as their argument, as it can - convey a property by either a pointer or name. -*/ -class WXDLLIMPEXP_PROPGRID wxPGPropArgCls -{ -public: - wxPGPropArgCls( const wxPGProperty* property ) - { - m_ptr.property = (wxPGProperty*) property; - m_flags = IsProperty; - } - wxPGPropArgCls( const wxString& str ) - { - m_ptr.stringName = &str; - m_flags = IsWxString; - } - wxPGPropArgCls( const wxPGPropArgCls& id ) - { - m_ptr = id.m_ptr; - m_flags = id.m_flags; - } - // This is only needed for wxPython bindings - wxPGPropArgCls( wxString* str, bool WXUNUSED(deallocPtr) ) - { - m_ptr.stringName = str; - m_flags = IsWxString | OwnsWxString; - } - ~wxPGPropArgCls() - { - if ( m_flags & OwnsWxString ) - delete m_ptr.stringName; - } - wxPGProperty* GetPtr() const - { - wxCHECK( m_flags == IsProperty, NULL ); - return m_ptr.property; - } - wxPGPropArgCls( const char* str ) - { - m_ptr.charName = str; - m_flags = IsCharPtr; - } - wxPGPropArgCls( const wchar_t* str ) - { - m_ptr.wcharName = str; - m_flags = IsWCharPtr; - } - /** This constructor is required for NULL. */ - wxPGPropArgCls( int ) - { - m_ptr.property = NULL; - m_flags = IsProperty; - } - wxPGProperty* GetPtr( wxPropertyGridInterface* iface ) const; - wxPGProperty* GetPtr( const wxPropertyGridInterface* iface ) const - { - return GetPtr((wxPropertyGridInterface*)iface); - } - wxPGProperty* GetPtr0() const { return m_ptr.property; } - bool HasName() const { return (m_flags != IsProperty); } - const wxString& GetName() const { return *m_ptr.stringName; } -private: - - enum - { - IsProperty = 0x00, - IsWxString = 0x01, - IsCharPtr = 0x02, - IsWCharPtr = 0x04, - OwnsWxString = 0x10 - }; - - union - { - wxPGProperty* property; - const char* charName; - const wchar_t* wcharName; - const wxString* stringName; - } m_ptr; - unsigned char m_flags; -}; - -typedef const wxPGPropArgCls& wxPGPropArg; - -// ----------------------------------------------------------------------- - -WXDLLIMPEXP_PROPGRID -void wxPGTypeOperationFailed( const wxPGProperty* p, - const wxString& typestr, - const wxString& op ); -WXDLLIMPEXP_PROPGRID -void wxPGGetFailed( const wxPGProperty* p, const wxString& typestr ); - -// ----------------------------------------------------------------------- - -// Helper macro that does necessary preparations when calling -// some wxPGProperty's member function. -#define wxPG_PROP_ARG_CALL_PROLOG_0(PROPERTY) \ - PROPERTY *p = (PROPERTY*)id.GetPtr(this); \ - if ( !p ) return; - -#define wxPG_PROP_ARG_CALL_PROLOG_RETVAL_0(PROPERTY, RETVAL) \ - PROPERTY *p = (PROPERTY*)id.GetPtr(this); \ - if ( !p ) return RETVAL; - -#define wxPG_PROP_ARG_CALL_PROLOG() \ - wxPG_PROP_ARG_CALL_PROLOG_0(wxPGProperty) - -#define wxPG_PROP_ARG_CALL_PROLOG_RETVAL(RVAL) \ - wxPG_PROP_ARG_CALL_PROLOG_RETVAL_0(wxPGProperty, RVAL) - -#define wxPG_PROP_ID_CONST_CALL_PROLOG() \ - wxPG_PROP_ARG_CALL_PROLOG_0(const wxPGProperty) - -#define wxPG_PROP_ID_CONST_CALL_PROLOG_RETVAL(RVAL) \ - wxPG_PROP_ARG_CALL_PROLOG_RETVAL_0(const wxPGProperty, RVAL) - -// ----------------------------------------------------------------------- - - -/** @class wxPropertyGridInterface - - Most of the shared property manipulation interface shared by wxPropertyGrid, - wxPropertyGridPage, and wxPropertyGridManager is defined in this class. - - @remarks - - In separate wxPropertyGrid component this class was known as - wxPropertyContainerMethods. - - @library{wxpropgrid} - @category{propgrid} -*/ -class WXDLLIMPEXP_PROPGRID wxPropertyGridInterface -{ -public: - - /** Destructor */ - virtual ~wxPropertyGridInterface() { } - - /** - Appends property to the list. - - wxPropertyGrid assumes ownership of the object. - Becomes child of most recently added category. - @remarks - - wxPropertyGrid takes the ownership of the property pointer. - - If appending a category with name identical to a category already in - the wxPropertyGrid, then newly created category is deleted, and most - recently added category (under which properties are appended) is set - to the one with same name. This allows easier adding of items to same - categories in multiple passes. - - Does not automatically redraw the control, so you may need to call - Refresh when calling this function after control has been shown for - the first time. - */ - wxPGProperty* Append( wxPGProperty* property ); - - wxPGProperty* AppendIn( wxPGPropArg id, wxPGProperty* newproperty ); - - /** - In order to add new items into a property with fixed children (for - instance, wxFlagsProperty), you need to call this method. After - populating has been finished, you need to call EndAddChildren. - */ - void BeginAddChildren( wxPGPropArg id ); - - /** Deletes all properties. - */ - virtual void Clear() = 0; - - /** - Clears current selection, if any. - - @param validation - If set to @false, deselecting the property will always work, - even if its editor had invalid value in it. - - @return Returns @true if successful or if there was no selection. May - fail if validation was enabled and active editor had invalid - value. - - @remarks In wxPropertyGrid 1.4, this member function used to send - wxPG_EVT_SELECTED. In wxWidgets 2.9 and later, it no longer - does that. - */ - bool ClearSelection( bool validation = false ); - - /** Resets modified status of all properties. - */ - void ClearModifiedStatus(); - - /** Collapses given category or property with children. - Returns true if actually collapses. - */ - bool Collapse( wxPGPropArg id ); - - /** Collapses all items that can be collapsed. - - @return - Return false if failed (may fail if editor value cannot be validated). - */ - bool CollapseAll() { return ExpandAll(false); } - - /** - Changes value of a property, as if from an editor. - Use this instead of SetPropertyValue() if you need the value to run - through validation process, and also send the property change event. - - @return - Returns true if value was successfully changed. - */ - bool ChangePropertyValue( wxPGPropArg id, wxVariant newValue ); - - /** - Removes and deletes a property and any children. - - @param id - Pointer or name of a property. - - @remarks If you delete a property in a wxPropertyGrid event - handler, the actual deletion is postponed until the next - idle event. - - This functions deselects selected property, if any. - Validation failure option wxPG_VFB_STAY_IN_PROPERTY is not - respected, ie. selection is cleared even if editor had - invalid value. - */ - void DeleteProperty( wxPGPropArg id ); - - /** - Removes a property. Does not delete the property object, but - instead returns it. - - @param id - Pointer or name of a property. - - @remarks Removed property cannot have any children. - - Also, if you remove property in a wxPropertyGrid event - handler, the actual removal is postponed until the next - idle event. - */ - wxPGProperty* RemoveProperty( wxPGPropArg id ); - - /** - Disables a property. - - @see EnableProperty(), wxPGProperty::Enable() - */ - bool DisableProperty( wxPGPropArg id ) { return EnableProperty(id,false); } - - /** - Returns true if all property grid data changes have been committed. - - Usually only returns false if value in active editor has been - invalidated by a wxValidator. - */ - bool EditorValidate(); - - /** - Enables or disables property, depending on whether enable is true or - false. Disabled property usually appears as having grey text. - - @param id - Name or pointer to a property. - @param enable - If @false, property is disabled instead. - - @see wxPGProperty::Enable() - */ - bool EnableProperty( wxPGPropArg id, bool enable = true ); - - /** Called after population of property with fixed children has finished. - */ - void EndAddChildren( wxPGPropArg id ); - - /** Expands given category or property with children. - Returns true if actually expands. - */ - bool Expand( wxPGPropArg id ); - - /** Expands all items that can be expanded. - */ - bool ExpandAll( bool expand = true ); - - /** Returns id of first child of given property. - @remarks - Does not return sub-properties! - */ - wxPGProperty* GetFirstChild( wxPGPropArg id ) - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxNullProperty) - - if ( !p->GetChildCount() || p->HasFlag(wxPG_PROP_AGGREGATE) ) - return wxNullProperty; - - return p->Item(0); - } - - //@{ - /** Returns iterator class instance. - @param flags - See @ref propgrid_iterator_flags. Value wxPG_ITERATE_DEFAULT causes - iteration over everything except private child properties. - @param firstProp - Property to start iteration from. If NULL, then first child of root - is used. - @param startPos - Either wxTOP or wxBOTTOM. wxTOP will indicate that iterations start - from the first property from the top, and wxBOTTOM means that the - iteration will instead begin from bottommost valid item. - */ - wxPropertyGridIterator GetIterator( int flags = wxPG_ITERATE_DEFAULT, - wxPGProperty* firstProp = NULL ) - { - return wxPropertyGridIterator( m_pState, flags, firstProp ); - } - - wxPropertyGridConstIterator - GetIterator( int flags = wxPG_ITERATE_DEFAULT, - wxPGProperty* firstProp = NULL ) const - { - return wxPropertyGridConstIterator( m_pState, flags, firstProp ); - } - - wxPropertyGridIterator GetIterator( int flags, int startPos ) - { - return wxPropertyGridIterator( m_pState, flags, startPos ); - } - - wxPropertyGridConstIterator GetIterator( int flags, int startPos ) const - { - return wxPropertyGridConstIterator( m_pState, flags, startPos ); - } - //@} - - /** Returns id of first item, whether it is a category or property. - @param flags - @link iteratorflags List of iterator flags@endlink - */ - wxPGProperty* GetFirst( int flags = wxPG_ITERATE_ALL ) - { - wxPropertyGridIterator it( m_pState, flags, wxNullProperty, 1 ); - return *it; - } - - const wxPGProperty* GetFirst( int flags = wxPG_ITERATE_ALL ) const - { - return ((wxPropertyGridInterface*)this)->GetFirst(flags); - } - - /** - Returns pointer to a property with given name (case-sensitive). - If there is no property with such name, @NULL pointer is returned. - - @remarks Properties which have non-category, non-root parent - cannot be accessed globally by their name. Instead, use - "<property>.<subproperty>" instead of "<subproperty>". - */ - wxPGProperty* GetProperty( const wxString& name ) const - { - return GetPropertyByName(name); - } - - /** Returns map-like storage of property's attributes. - @remarks - Note that if extra style wxPG_EX_WRITEONLY_BUILTIN_ATTRIBUTES is set, - then builtin-attributes are not included in the storage. - */ - const wxPGAttributeStorage& GetPropertyAttributes( wxPGPropArg id ) const - { - // If 'id' refers to invalid property, then we will return dummy - // attributes (i.e. root property's attributes, which contents should - // should always be empty and of no consequence). - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(m_pState->DoGetRoot()->GetAttributes()); - return p->GetAttributes(); - } - - /** Adds to 'targetArr' pointers to properties that have given - flags 'flags' set. However, if 'inverse' is set to true, then - only properties without given flags are stored. - @param flags - Property flags to use. - @param iterFlags - Iterator flags to use. Default is everything expect private children. - */ - void GetPropertiesWithFlag( wxArrayPGProperty* targetArr, - wxPGProperty::FlagType flags, - bool inverse = false, - int iterFlags = wxPG_ITERATE_PROPERTIES | - wxPG_ITERATE_HIDDEN | - wxPG_ITERATE_CATEGORIES) const; - - /** Returns value of given attribute. If none found, returns NULL-variant. - */ - wxVariant GetPropertyAttribute( wxPGPropArg id, - const wxString& attrName ) const - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxNullVariant) - return p->GetAttribute(attrName); - } - - /** Returns pointer of property's nearest parent category. If no category - found, returns NULL. - */ - wxPropertyCategory* GetPropertyCategory( wxPGPropArg id ) const - { - wxPG_PROP_ID_CONST_CALL_PROLOG_RETVAL(NULL) - return m_pState->GetPropertyCategory(p); - } - - /** Returns client data (void*) of a property. */ - void* GetPropertyClientData( wxPGPropArg id ) const - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(NULL) - return p->GetClientData(); - } - - /** - Returns first property which label matches given string. - - NULL if none found. Note that this operation is extremely slow when - compared to GetPropertyByName(). - */ - wxPGProperty* GetPropertyByLabel( const wxString& label ) const; - - /** Returns property with given name. NULL if none found. - */ - wxPGProperty* GetPropertyByName( const wxString& name ) const; - - /** Returns child property 'subname' of property 'name'. Same as - calling GetPropertyByName("name.subname"), albeit slightly faster. - */ - wxPGProperty* GetPropertyByName( const wxString& name, - const wxString& subname ) const; - - /** Returns property's editor. */ - const wxPGEditor* GetPropertyEditor( wxPGPropArg id ) const - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(NULL) - return p->GetEditorClass(); - } - - /** Returns help string associated with a property. */ - wxString GetPropertyHelpString( wxPGPropArg id ) const - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxEmptyString) - return p->GetHelpString(); - } - - /** Returns property's custom value image (NULL of none). */ - wxBitmap* GetPropertyImage( wxPGPropArg id ) const - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(NULL) - return p->GetValueImage(); - } - - /** Returns label of a property. */ - const wxString& GetPropertyLabel( wxPGPropArg id ) - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(m_emptyString) - return p->GetLabel(); - } - - /** Returns name of a property, by which it is globally accessible. */ - wxString GetPropertyName( wxPGProperty* property ) - { - return property->GetName(); - } - - /** Returns parent item of a property. */ - wxPGProperty* GetPropertyParent( wxPGPropArg id ) - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxNullProperty) - return p->GetParent(); - } - -#if wxUSE_VALIDATORS - /** Returns validator of a property as a reference, which you - can pass to any number of SetPropertyValidator. - */ - wxValidator* GetPropertyValidator( wxPGPropArg id ) - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(NULL) - return p->GetValidator(); - } -#endif - - /** Returns value as wxVariant. To get wxObject pointer from it, - you will have to use WX_PG_VARIANT_TO_WXOBJECT(VARIANT,CLASSNAME) macro. - - If property value is unspecified, Null variant is returned. - */ - wxVariant GetPropertyValue( wxPGPropArg id ) - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxVariant()) - return p->GetValue(); - } - - wxString GetPropertyValueAsString( wxPGPropArg id ) const; - long GetPropertyValueAsLong( wxPGPropArg id ) const; - unsigned long GetPropertyValueAsULong( wxPGPropArg id ) const - { - return (unsigned long) GetPropertyValueAsLong(id); - } - int GetPropertyValueAsInt( wxPGPropArg id ) const - { return (int)GetPropertyValueAsLong(id); } - bool GetPropertyValueAsBool( wxPGPropArg id ) const; - double GetPropertyValueAsDouble( wxPGPropArg id ) const; - -#define wxPG_PROP_ID_GETPROPVAL_CALL_PROLOG_RETVAL(PGTypeName, DEFVAL) \ - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(DEFVAL) \ - wxVariant value = p->GetValue(); \ - if ( !value.IsType(PGTypeName) ) \ - { \ - wxPGGetFailed(p, PGTypeName); \ - return DEFVAL; \ - } - -#define wxPG_PROP_ID_GETPROPVAL_CALL_PROLOG_RETVAL_WFALLBACK(PGTypeName, DEFVAL) \ - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(DEFVAL) \ - wxVariant value = p->GetValue(); \ - if ( !value.IsType(PGTypeName) ) \ - return DEFVAL; \ - - wxArrayString GetPropertyValueAsArrayString( wxPGPropArg id ) const - { - wxPG_PROP_ID_GETPROPVAL_CALL_PROLOG_RETVAL(wxPG_VARIANT_TYPE_ARRSTRING, - wxArrayString()) - return value.GetArrayString(); - } - -#if defined(wxLongLong_t) && wxUSE_LONGLONG - wxLongLong_t GetPropertyValueAsLongLong( wxPGPropArg id ) const - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(0) - return p->GetValue().GetLongLong().GetValue(); - } - - wxULongLong_t GetPropertyValueAsULongLong( wxPGPropArg id ) const - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(0) - return p->GetValue().GetULongLong().GetValue(); - } -#endif - - wxArrayInt GetPropertyValueAsArrayInt( wxPGPropArg id ) const - { - wxPG_PROP_ID_GETPROPVAL_CALL_PROLOG_RETVAL(wxArrayInt_VariantType, - wxArrayInt()) - wxArrayInt arr; - arr << value; - return arr; - } - -#if wxUSE_DATETIME - wxDateTime GetPropertyValueAsDateTime( wxPGPropArg id ) const - { - wxPG_PROP_ID_GETPROPVAL_CALL_PROLOG_RETVAL(wxPG_VARIANT_TYPE_DATETIME, - wxDateTime()) - return value.GetDateTime(); - } -#endif - - /** Returns a wxVariant list containing wxVariant versions of all - property values. Order is not guaranteed. - @param flags - Use wxPG_KEEP_STRUCTURE to retain category structure; each sub - category will be its own wxVariantList of wxVariant. - Use wxPG_INC_ATTRIBUTES to include property attributes as well. - Each attribute will be stored as list variant named - "@@<propname>@@attr." - @remarks - */ - wxVariant GetPropertyValues( const wxString& listname = wxEmptyString, - wxPGProperty* baseparent = NULL, long flags = 0 ) const - { - return m_pState->DoGetPropertyValues(listname, baseparent, flags); - } - - /** - Returns currently selected property. NULL if none. - - @remarks When wxPG_EX_MULTIPLE_SELECTION extra style is used, this - member function returns the focused property, that is the - one which can have active editor. - */ - wxPGProperty* GetSelection() const; - - /** - Returns list of currently selected properties. - - @remarks wxArrayPGProperty should be compatible with std::vector API. - */ - const wxArrayPGProperty& GetSelectedProperties() const - { - return m_pState->m_selection; - } - - wxPropertyGridPageState* GetState() const { return m_pState; } - - /** Similar to GetIterator(), but instead returns wxPGVIterator instance, - which can be useful for forward-iterating through arbitrary property - containers. - - @param flags - See @ref propgrid_iterator_flags. - */ - virtual wxPGVIterator GetVIterator( int flags ) const; - - /** Hides or reveals a property. - @param hide - If true, hides property, otherwise reveals it. - @param flags - By default changes are applied recursively. Set this paramter - wxPG_DONT_RECURSE to prevent this. - */ - bool HideProperty( wxPGPropArg id, - bool hide = true, - int flags = wxPG_RECURSE ); - -#if wxPG_INCLUDE_ADVPROPS - /** Initializes *all* property types. Causes references to most object - files in the library, so calling this may cause significant increase - in executable size when linking with static library. - */ - static void InitAllTypeHandlers(); -#else - static void InitAllTypeHandlers() { } -#endif - - //@{ - /** Inserts property to the property container. - - @param priorThis - New property is inserted just prior to this. Available only - in the first variant. There are two versions of this function - to allow this parameter to be either an id or name to - a property. - - @param newproperty - Pointer to the inserted property. wxPropertyGrid will take - ownership of this object. - - @param parent - New property is inserted under this category. Available only - in the second variant. There are two versions of this function - to allow this parameter to be either an id or name to - a property. - - @param index - Index under category. Available only in the second variant. - If index is < 0, property is appended in category. - - @return - Returns id for the property, - - @remarks - - - wxPropertyGrid takes the ownership of the property pointer. - - - While Append may be faster way to add items, make note that when - both types of data storage (categoric and - non-categoric) are active, Insert becomes even more slow. This is - especially true if current mode is non-categoric. - - Example of use: - - @code - - // append category - wxPGProperty* my_cat_id = propertygrid->Append( - new wxPropertyCategory("My Category") ); - - ... - - // insert into category - using second variant - wxPGProperty* my_item_id_1 = propertygrid->Insert( - my_cat_id, 0, new wxStringProperty("My String 1") ); - - // insert before to first item - using first variant - wxPGProperty* my_item_id_2 = propertygrid->Insert( - my_item_id, new wxStringProperty("My String 2") ); - - @endcode - - */ - wxPGProperty* Insert( wxPGPropArg priorThis, wxPGProperty* newproperty ); - wxPGProperty* Insert( wxPGPropArg parent, - int index, - wxPGProperty* newproperty ); - //@} - - /** Returns true if property is a category. */ - bool IsPropertyCategory( wxPGPropArg id ) const - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false) - return p->IsCategory(); - } - - /** Returns true if property is enabled. */ - bool IsPropertyEnabled( wxPGPropArg id ) const - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false) - return !p->HasFlag(wxPG_PROP_DISABLED); - } - - /** - Returns true if given property is expanded. - - Naturally, always returns false for properties that cannot be expanded. - */ - bool IsPropertyExpanded( wxPGPropArg id ) const; - - /** - Returns true if property has been modified after value set or modify - flag clear by software. - */ - bool IsPropertyModified( wxPGPropArg id ) const - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false) -#if WXWIN_COMPATIBILITY_3_0 - return p->HasFlag(wxPG_PROP_MODIFIED)?true:false; -#else - return p->HasFlag(wxPG_PROP_MODIFIED); -#endif - } - - /** - Returns true if property is selected. - */ - bool IsPropertySelected( wxPGPropArg id ) const - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false) - return m_pState->DoIsPropertySelected(p); - } - - /** - Returns true if property is shown (i.e. HideProperty with true not - called for it). - */ - bool IsPropertyShown( wxPGPropArg id ) const - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false) - return !p->HasFlag(wxPG_PROP_HIDDEN); - } - - /** Returns true if property value is set to unspecified. - */ - bool IsPropertyValueUnspecified( wxPGPropArg id ) const - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(false) - return p->IsValueUnspecified(); - } - - /** - Disables (limit = true) or enables (limit = false) wxTextCtrl editor of - a property, if it is not the sole mean to edit the value. - */ - void LimitPropertyEditing( wxPGPropArg id, bool limit = true ); - - /** If state is shown in it's grid, refresh it now. - */ - virtual void RefreshGrid( wxPropertyGridPageState* state = NULL ); - -#if wxPG_INCLUDE_ADVPROPS - /** - Initializes additional property editors (SpinCtrl etc.). Causes - references to most object files in the library, so calling this may - cause significant increase in executable size when linking with static - library. - */ - static void RegisterAdditionalEditors(); -#else - static void RegisterAdditionalEditors() { } -#endif - - /** Replaces property with id with newly created property. For example, - this code replaces existing property named "Flags" with one that - will have different set of items: - @code - pg->ReplaceProperty("Flags", - wxFlagsProperty("Flags", wxPG_LABEL, newItems)) - @endcode - For more info, see wxPropertyGrid::Insert. - */ - wxPGProperty* ReplaceProperty( wxPGPropArg id, wxPGProperty* property ); - - /** @anchor propgridinterface_editablestate_flags - - Flags for wxPropertyGridInterface::SaveEditableState() and - wxPropertyGridInterface::RestoreEditableState(). - */ - enum EditableStateFlags - { - /** Include selected property. */ - SelectionState = 0x01, - /** Include expanded/collapsed property information. */ - ExpandedState = 0x02, - /** Include scrolled position. */ - ScrollPosState = 0x04, - /** Include selected page information. - Only applies to wxPropertyGridManager. */ - PageState = 0x08, - /** Include splitter position. Stored for each page. */ - SplitterPosState = 0x10, - /** Include description box size. - Only applies to wxPropertyGridManager. */ - DescBoxState = 0x20, - - /** - Include all supported user editable state information. - This is usually the default value. */ - AllStates = SelectionState | - ExpandedState | - ScrollPosState | - PageState | - SplitterPosState | - DescBoxState - }; - - /** - Restores user-editable state. - - See also wxPropertyGridInterface::SaveEditableState(). - - @param src - String generated by SaveEditableState. - - @param restoreStates - Which parts to restore from source string. See @ref - propgridinterface_editablestate_flags "list of editable state - flags". - - @return - False if there was problem reading the string. - - @remarks - If some parts of state (such as scrolled or splitter position) fail to - restore correctly, please make sure that you call this function after - wxPropertyGrid size has been set (this may sometimes be tricky when - sizers are used). - */ - bool RestoreEditableState( const wxString& src, - int restoreStates = AllStates ); - - /** - Used to acquire user-editable state (selected property, expanded - properties, scrolled position, splitter positions). - - @param includedStates - Which parts of state to include. See @ref - propgridinterface_editablestate_flags "list of editable state flags". - */ - wxString SaveEditableState( int includedStates = AllStates ) const; - - /** - Lets user set the strings listed in the choice dropdown of a - wxBoolProperty. Defaults are "True" and "False", so changing them to, - say, "Yes" and "No" may be useful in some less technical applications. - */ - static void SetBoolChoices( const wxString& trueChoice, - const wxString& falseChoice ); - - /** - Set proportion of a auto-stretchable column. wxPG_SPLITTER_AUTO_CENTER - window style needs to be used to indicate that columns are auto- - resizable. - - @returns Returns @false on failure. - - @remarks You should call this for individual pages of - wxPropertyGridManager (if used). - - @see GetColumnProportion() - */ - bool SetColumnProportion( unsigned int column, int proportion ); - - /** - Returns auto-resize proportion of the given column. - - @see SetColumnProportion() - */ - int GetColumnProportion( unsigned int column ) const - { - return m_pState->DoGetColumnProportion(column); - } - - /** Sets an attribute for this property. - @param name - Text identifier of attribute. See @ref propgrid_property_attributes. - @param value - Value of attribute. - @param argFlags - Optional. Use wxPG_RECURSE to set the attribute to child properties - recursively. - */ - void SetPropertyAttribute( wxPGPropArg id, - const wxString& attrName, - wxVariant value, - long argFlags = 0 ) - { - DoSetPropertyAttribute(id,attrName,value,argFlags); - } - - /** Sets property attribute for all applicable properties. - Be sure to use this method only after all properties have been - added to the grid. - */ - void SetPropertyAttributeAll( const wxString& attrName, wxVariant value ); - - /** - Sets background colour of a property. - - @param id - Property name or pointer. - - @param colour - New background colour. - - @param flags - Default is wxPG_RECURSE which causes colour to be set recursively. - Omit this flag to only set colour for the property in question - and not any of its children. - */ - void SetPropertyBackgroundColour( wxPGPropArg id, - const wxColour& colour, - int flags = wxPG_RECURSE ); - - /** Resets text and background colours of given property. - @param id - Property name or pointer. - - @param flags - Default is wxPG_DONT_RECURSE which causes colour to be reset - only for the property in question (for backward compatibility). - */ -#if WXWIN_COMPATIBILITY_3_0 - void SetPropertyColoursToDefault(wxPGPropArg id); - void SetPropertyColoursToDefault(wxPGPropArg id, int flags); -#else - void SetPropertyColoursToDefault(wxPGPropArg id, int flags = wxPG_DONT_RECURSE); -#endif // WXWIN_COMPATIBILITY_3_0 - - /** - Sets text colour of a property. - - @param id - Property name or pointer. - - @param colour - New background colour. - - @param flags - Default is wxPG_RECURSE which causes colour to be set recursively. - Omit this flag to only set colour for the property in question - and not any of its children. - */ - void SetPropertyTextColour( wxPGPropArg id, - const wxColour& col, - int flags = wxPG_RECURSE ); - - /** - Returns background colour of first cell of a property. - */ - wxColour GetPropertyBackgroundColour( wxPGPropArg id ) const - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxColour()) - return p->GetCell(0).GetBgCol(); - } - - /** - Returns text colour of first cell of a property. - */ - wxColour GetPropertyTextColour( wxPGPropArg id ) const - { - wxPG_PROP_ARG_CALL_PROLOG_RETVAL(wxColour()) - return p->GetCell(0).GetFgCol(); - } - - /** Sets text, bitmap, and colours for given column's cell. - - @remarks - - You can set label cell by setting column to 0. - - You can use wxPG_LABEL as text to use default text for column. - */ - void SetPropertyCell( wxPGPropArg id, - int column, - const wxString& text = wxEmptyString, - const wxBitmap& bitmap = wxNullBitmap, - const wxColour& fgCol = wxNullColour, - const wxColour& bgCol = wxNullColour ); - - /** Sets client data (void*) of a property. - @remarks - This untyped client data has to be deleted manually. - */ - void SetPropertyClientData( wxPGPropArg id, void* clientData ) - { - wxPG_PROP_ARG_CALL_PROLOG() - p->SetClientData(clientData); - } - - /** Sets editor for a property. - - @param editor - For builtin editors, use wxPGEditor_X, where X is builtin editor's - name (TextCtrl, Choice, etc. see wxPGEditor documentation for full - list). - - For custom editors, use pointer you received from - wxPropertyGrid::RegisterEditorClass(). - */ - void SetPropertyEditor( wxPGPropArg id, const wxPGEditor* editor ) - { - wxPG_PROP_ARG_CALL_PROLOG() - wxCHECK_RET( editor, wxS("unknown/NULL editor") ); - p->SetEditor(editor); - RefreshProperty(p); - } - - /** Sets editor control of a property. As editor argument, use - editor name string, such as "TextCtrl" or "Choice". - */ - void SetPropertyEditor( wxPGPropArg id, const wxString& editorName ) - { - SetPropertyEditor(id,GetEditorByName(editorName)); - } - - /** Sets label of a property. - */ - void SetPropertyLabel( wxPGPropArg id, const wxString& newproplabel ); - - /** - Sets name of a property. - - @param id - Name or pointer of property which name to change. - - @param newName - New name for property. - */ - void SetPropertyName( wxPGPropArg id, const wxString& newName ) - { - wxPG_PROP_ARG_CALL_PROLOG() - m_pState->DoSetPropertyName( p, newName ); - } - - /** - Sets property (and, recursively, its children) to have read-only value. - In other words, user cannot change the value in the editor, but they - can still copy it. - @remarks - This is mainly for use with textctrl editor. Not all other editors fully - support it. - @param flags - By default changes are applied recursively. Set this parameter - wxPG_DONT_RECURSE to prevent this. - */ - void SetPropertyReadOnly( wxPGPropArg id, - bool set = true, - int flags = wxPG_RECURSE ); - - /** Sets property's value to unspecified. - If it has children (it may be category), then the same thing is done to - them. - */ - void SetPropertyValueUnspecified( wxPGPropArg id ) - { - wxPG_PROP_ARG_CALL_PROLOG() - p->SetValueToUnspecified(); - } - - /** - Sets property values from a list of wxVariants. - */ - void SetPropertyValues( const wxVariantList& list, - wxPGPropArg defaultCategory = wxNullProperty ) - { - wxPGProperty *p; - if ( defaultCategory.HasName() ) p = defaultCategory.GetPtr(this); - else p = defaultCategory.GetPtr0(); - m_pState->DoSetPropertyValues(list, p); - } - - /** - Sets property values from a list of wxVariants. - */ - void SetPropertyValues( const wxVariant& list, - wxPGPropArg defaultCategory = wxNullProperty ) - { - SetPropertyValues(list.GetList(),defaultCategory); - } - - /** Associates the help string with property. - @remarks - By default, text is shown either in the manager's "description" - text box or in the status bar. If extra window style - wxPG_EX_HELP_AS_TOOLTIPS is used, then the text will appear as a - tooltip. - */ - void SetPropertyHelpString( wxPGPropArg id, const wxString& helpString ) - { - wxPG_PROP_ARG_CALL_PROLOG() - p->SetHelpString(helpString); - } - - /** Set wxBitmap in front of the value. - @remarks - - Bitmap will be scaled to a size returned by - wxPropertyGrid::GetImageSize(); - */ - void SetPropertyImage( wxPGPropArg id, wxBitmap& bmp ) - { - wxPG_PROP_ARG_CALL_PROLOG() - p->SetValueImage(bmp); - RefreshProperty(p); - } - - /** Sets max length of property's text. - */ - bool SetPropertyMaxLength( wxPGPropArg id, int maxLen ); - -#if wxUSE_VALIDATORS - /** Sets validator of a property. - */ - void SetPropertyValidator( wxPGPropArg id, const wxValidator& validator ) - { - wxPG_PROP_ARG_CALL_PROLOG() - p->SetValidator(validator); - } -#endif - - /** Sets value (long integer) of a property. - */ - void SetPropertyValue( wxPGPropArg id, long value ) - { - wxVariant v(value); - SetPropVal( id, v ); - } - - /** Sets value (integer) of a property. - */ - void SetPropertyValue( wxPGPropArg id, int value ) - { - wxVariant v((long)value); - SetPropVal( id, v ); - } - /** Sets value (floating point) of a property. - */ - void SetPropertyValue( wxPGPropArg id, double value ) - { - wxVariant v(value); - SetPropVal( id, v ); - } - /** Sets value (bool) of a property. - */ - void SetPropertyValue( wxPGPropArg id, bool value ) - { - wxVariant v(value); - SetPropVal( id, v ); - } - void SetPropertyValue( wxPGPropArg id, const wchar_t* value ) - { - SetPropertyValueString( id, wxString(value) ); - } - void SetPropertyValue( wxPGPropArg id, const char* value ) - { - SetPropertyValueString( id, wxString(value) ); - } - void SetPropertyValue( wxPGPropArg id, const wxString& value ) - { - SetPropertyValueString( id, value ); - } - - /** Sets value (wxArrayString) of a property. - */ - void SetPropertyValue( wxPGPropArg id, const wxArrayString& value ) - { - wxVariant v(value); - SetPropVal( id, v ); - } - -#if wxUSE_DATETIME - void SetPropertyValue( wxPGPropArg id, const wxDateTime& value ) - { - wxVariant v(value); - SetPropVal( id, v ); - } -#endif - - /** Sets value (wxObject*) of a property. - */ - void SetPropertyValue( wxPGPropArg id, wxObject* value ) - { - wxVariant v(value); - SetPropVal( id, v ); - } - - void SetPropertyValue( wxPGPropArg id, wxObject& value ) - { - wxVariant v(&value); - SetPropVal( id, v ); - } - -#if wxUSE_LONGLONG -#ifdef wxLongLong_t - /** Sets value (wxLongLong_t&) of a property. - */ - void SetPropertyValue(wxPGPropArg id, wxLongLong_t value) - { - wxVariant v = WXVARIANT(wxLongLong(value)); - SetPropVal(id, v); - } -#endif - void SetPropertyValue( wxPGPropArg id, wxLongLong value ) - { - wxVariant v = WXVARIANT(value); - SetPropVal( id, v ); - } -#ifdef wxULongLong_t - /** Sets value (wxULongLong_t&) of a property. - */ - void SetPropertyValue(wxPGPropArg id, wxULongLong_t value) - { - wxVariant v = WXVARIANT(wxULongLong(value)); - SetPropVal(id, v); - } -#endif - /** Sets value (wxULongLong&) of a property. - */ - void SetPropertyValue( wxPGPropArg id, wxULongLong value ) - { - wxVariant v = WXVARIANT(value); - SetPropVal( id, v ); - } -#endif - - /** Sets value (wxArrayInt&) of a property. - */ - void SetPropertyValue( wxPGPropArg id, const wxArrayInt& value ) - { - wxVariant v = WXVARIANT(value); - SetPropVal( id, v ); - } - - /** Sets value (wxString) of a property. - - @remarks - This method uses wxPGProperty::SetValueFromString, which all properties - should implement. This means that there should not be a type error, - and instead the string is converted to property's actual value type. - */ - void SetPropertyValueString( wxPGPropArg id, const wxString& value ); - - /** Sets value (wxVariant&) of a property. - - @remarks - Use wxPropertyGrid::ChangePropertyValue() instead if you need to run - through validation process and send property change event. - */ - void SetPropertyValue( wxPGPropArg id, wxVariant value ) - { - SetPropVal( id, value ); - } - - /** Sets value (wxVariant&) of a property. Same as SetPropertyValue, but - accepts reference. */ - void SetPropVal( wxPGPropArg id, wxVariant& value ); - - /** Adjusts how wxPropertyGrid behaves when invalid value is entered - in a property. - @param vfbFlags - See @link vfbflags list of valid flags values@endlink - */ - void SetValidationFailureBehavior( int vfbFlags ); - - /** - Sorts all properties recursively. - - @param flags - This can contain any of the following options: - wxPG_SORT_TOP_LEVEL_ONLY: Only sort categories and their - immediate children. Sorting done by wxPG_AUTO_SORT option - uses this. - - @see SortChildren, wxPropertyGrid::SetSortFunction - */ - void Sort( int flags = 0 ); - - /** - Sorts children of a property. - - @param id - Name or pointer to a property. - - @param flags - This can contain any of the following options: - wxPG_RECURSE: Sorts recursively. - - @see Sort, wxPropertyGrid::SetSortFunction - */ - void SortChildren( wxPGPropArg id, int flags = 0 ) - { - wxPG_PROP_ARG_CALL_PROLOG() - m_pState->DoSortChildren(p, flags); - } - - // GetPropertyByName With nice assertion error message. - wxPGProperty* GetPropertyByNameA( const wxString& name ) const; - - static wxPGEditor* GetEditorByName( const wxString& editorName ); - - // NOTE: This function reselects the property and may cause - // excess flicker, so to just call Refresh() on a rect - // of single property, call DrawItem() instead. - virtual void RefreshProperty( wxPGProperty* p ) = 0; - -protected: - - bool DoClearSelection( bool validation = false, - int selFlags = 0 ); - - /** - In derived class, implement to set editable state component with - given name to given value. - */ - virtual bool SetEditableStateItem( const wxString& name, wxVariant value ) - { - wxUnusedVar(name); - wxUnusedVar(value); - return false; - } - - /** - In derived class, implement to return editable state component with - given name. - */ - virtual wxVariant GetEditableStateItem( const wxString& name ) const - { - wxUnusedVar(name); - return wxNullVariant; - } - - // Returns page state data for given (sub) page (-1 means current page). - virtual wxPropertyGridPageState* GetPageState( int pageIndex ) const - { - if ( pageIndex <= 0 ) - return m_pState; - return NULL; - } - - virtual bool DoSelectPage( int WXUNUSED(index) ) { return true; } - - // Default call's m_pState's BaseGetPropertyByName - virtual wxPGProperty* DoGetPropertyByName( const wxString& name ) const; - - // Deriving classes must set this (it must be only or current page). - wxPropertyGridPageState* m_pState; - - // Intermediate version needed due to wxVariant copying inefficiency - void DoSetPropertyAttribute( wxPGPropArg id, - const wxString& name, - wxVariant& value, long argFlags ); - - // Empty string object to return from member functions returning const - // wxString&. - wxString m_emptyString; - -private: - // Cannot be GetGrid() due to ambiguity issues. - wxPropertyGrid* GetPropertyGrid() - { - if ( !m_pState ) - return NULL; - return m_pState->GetGrid(); - } - - // Cannot be GetGrid() due to ambiguity issues. - const wxPropertyGrid* GetPropertyGrid() const - { - if ( !m_pState ) - return NULL; - - return m_pState->GetGrid(); - } - - friend class wxPropertyGrid; - friend class wxPropertyGridManager; -}; - -#endif // wxUSE_PROPGRID - -#endif // __WX_PROPGRID_PROPGRIDIFACE_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgridpagestate.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgridpagestate.h deleted file mode 100644 index 24aa13f7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/propgridpagestate.h +++ /dev/null @@ -1,805 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/propgrid/propgridpagestate.h -// Purpose: wxPropertyGridPageState class -// Author: Jaakko Salli -// Modified by: -// Created: 2008-08-24 -// Copyright: (c) Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROPGRID_PROPGRIDPAGESTATE_H_ -#define _WX_PROPGRID_PROPGRIDPAGESTATE_H_ - -#include "wx/defs.h" - -#if wxUSE_PROPGRID - -#include "wx/propgrid/property.h" - -// ----------------------------------------------------------------------- - -/** @section propgrid_hittestresult wxPropertyGridHitTestResult - - A return value from wxPropertyGrid::HitTest(), - contains all you need to know about an arbitrary location on the grid. -*/ -class WXDLLIMPEXP_PROPGRID wxPropertyGridHitTestResult -{ - friend class wxPropertyGridPageState; -public: - wxPropertyGridHitTestResult() - { - m_property = NULL; - m_column = -1; - m_splitter = -1; - m_splitterHitOffset = 0; - } - - ~wxPropertyGridHitTestResult() - { - } - - /** - Returns column hit. -1 for margin. - */ - int GetColumn() const { return m_column; } - - /** - Returns property hit. NULL if empty space below - properties was hit instead. - */ - wxPGProperty* GetProperty() const - { - return m_property; - } - - /** - Returns index of splitter hit, -1 for none. - */ - int GetSplitter() const { return m_splitter; } - - /** - If splitter hit, then this member function - returns offset to the exact splitter position. - */ - int GetSplitterHitOffset() const { return m_splitterHitOffset; } - -private: - /** Property. NULL if empty space below properties was hit */ - wxPGProperty* m_property; - - /** Column. -1 for margin. */ - int m_column; - - /** Index of splitter hit, -1 for none. */ - int m_splitter; - - /** If splitter hit, offset to that */ - int m_splitterHitOffset; -}; - -// ----------------------------------------------------------------------- - -#define wxPG_IT_CHILDREN(A) ((A)<<16) - -/** @section propgrid_iterator_flags wxPropertyGridIterator Flags - @{ - - NOTES: At lower 16-bits, there are flags to check if item will be included. - At higher 16-bits, there are same flags, but to instead check if children - will be included. -*/ - -enum wxPG_ITERATOR_FLAGS -{ - -/** - Iterate through 'normal' property items (does not include children of - aggregate or hidden items by default). -*/ -wxPG_ITERATE_PROPERTIES = wxPG_PROP_PROPERTY | - wxPG_PROP_MISC_PARENT | - wxPG_PROP_AGGREGATE | - wxPG_PROP_COLLAPSED | - wxPG_IT_CHILDREN(wxPG_PROP_MISC_PARENT) | - wxPG_IT_CHILDREN(wxPG_PROP_CATEGORY), - -/** Iterate children of collapsed parents, and individual items that are hidden. -*/ -wxPG_ITERATE_HIDDEN = wxPG_PROP_HIDDEN | - wxPG_IT_CHILDREN(wxPG_PROP_COLLAPSED), - -/** - Iterate children of parent that is an aggregate property (ie has fixed - children). -*/ -wxPG_ITERATE_FIXED_CHILDREN = wxPG_IT_CHILDREN(wxPG_PROP_AGGREGATE) | - wxPG_ITERATE_PROPERTIES, - -/** Iterate categories. - Note that even without this flag, children of categories are still iterated - through. -*/ -wxPG_ITERATE_CATEGORIES = wxPG_PROP_CATEGORY | - wxPG_IT_CHILDREN(wxPG_PROP_CATEGORY) | - wxPG_PROP_COLLAPSED, - -wxPG_ITERATE_ALL_PARENTS = wxPG_PROP_MISC_PARENT | - wxPG_PROP_AGGREGATE | - wxPG_PROP_CATEGORY, - -wxPG_ITERATE_ALL_PARENTS_RECURSIVELY = wxPG_ITERATE_ALL_PARENTS | - wxPG_IT_CHILDREN( - wxPG_ITERATE_ALL_PARENTS), - -wxPG_ITERATOR_FLAGS_ALL = wxPG_PROP_PROPERTY | - wxPG_PROP_MISC_PARENT | - wxPG_PROP_AGGREGATE | - wxPG_PROP_HIDDEN | - wxPG_PROP_CATEGORY | - wxPG_PROP_COLLAPSED, - -wxPG_ITERATOR_MASK_OP_ITEM = wxPG_ITERATOR_FLAGS_ALL, - -// (wxPG_PROP_MISC_PARENT|wxPG_PROP_AGGREGATE|wxPG_PROP_CATEGORY) -wxPG_ITERATOR_MASK_OP_PARENT = wxPG_ITERATOR_FLAGS_ALL, - -/** Combines all flags needed to iterate through visible properties - (ie hidden properties and children of collapsed parents are skipped). -*/ -wxPG_ITERATE_VISIBLE = wxPG_ITERATE_PROPERTIES | - wxPG_PROP_CATEGORY | - wxPG_IT_CHILDREN(wxPG_PROP_AGGREGATE), - -/** Iterate all items. -*/ -wxPG_ITERATE_ALL = wxPG_ITERATE_VISIBLE | - wxPG_ITERATE_HIDDEN, - -/** Iterate through individual properties (ie categories and children of - aggregate properties are skipped). -*/ -wxPG_ITERATE_NORMAL = wxPG_ITERATE_PROPERTIES | - wxPG_ITERATE_HIDDEN, - -/** Default iterator flags. -*/ -wxPG_ITERATE_DEFAULT = wxPG_ITERATE_NORMAL - -}; - -/** @} -*/ - - -#define wxPG_ITERATOR_CREATE_MASKS(FLAGS, A, B) \ - A = (FLAGS ^ wxPG_ITERATOR_MASK_OP_ITEM) & \ - wxPG_ITERATOR_MASK_OP_ITEM & 0xFFFF; \ - B = ((FLAGS>>16) ^ wxPG_ITERATOR_MASK_OP_PARENT) & \ - wxPG_ITERATOR_MASK_OP_PARENT & 0xFFFF; - - -// Macro to test if children of PWC should be iterated through -#define wxPG_ITERATOR_PARENTEXMASK_TEST(PWC, PARENTMASK) \ - ( \ - !PWC->HasFlag(PARENTMASK) && \ - PWC->GetChildCount() \ - ) - - -// Base for wxPropertyGridIterator classes. -class WXDLLIMPEXP_PROPGRID wxPropertyGridIteratorBase -{ -public: - wxPropertyGridIteratorBase() - { - } - - void Assign( const wxPropertyGridIteratorBase& it ); - - bool AtEnd() const { return m_property == NULL; } - - /** Get current property. - */ - wxPGProperty* GetProperty() const { return m_property; } - - void Init( wxPropertyGridPageState* state, - int flags, - wxPGProperty* property, - int dir = 1 ); - - void Init( wxPropertyGridPageState* state, - int flags, - int startPos = wxTOP, - int dir = 0 ); - - /** Iterate to the next property. - */ - void Next( bool iterateChildren = true ); - - /** Iterate to the previous property. - */ - void Prev(); - - /** - Set base parent, i.e. a property when, in which iteration returns, it - ends. - - Default base parent is the root of the used wxPropertyGridPageState. - */ - void SetBaseParent( wxPGProperty* baseParent ) - { m_baseParent = baseParent; } - -protected: - - wxPGProperty* m_property; - -private: - wxPropertyGridPageState* m_state; - wxPGProperty* m_baseParent; - - // Masks are used to quickly exclude items - wxPGProperty::FlagType m_itemExMask; - wxPGProperty::FlagType m_parentExMask; -}; - - -#define wxPG_IMPLEMENT_ITERATOR(CLASS, PROPERTY, STATE) \ - CLASS( STATE* state, int flags = wxPG_ITERATE_DEFAULT, \ - PROPERTY* property = NULL, int dir = 1 ) \ - : wxPropertyGridIteratorBase() \ - { Init( (wxPropertyGridPageState*)state, flags, \ - (wxPGProperty*)property, dir ); } \ - CLASS( STATE* state, int flags, int startPos, int dir = 0 ) \ - : wxPropertyGridIteratorBase() \ - { Init( (wxPropertyGridPageState*)state, flags, startPos, dir ); } \ - CLASS() \ - : wxPropertyGridIteratorBase() \ - { \ - m_property = NULL; \ - } \ - CLASS( const CLASS& it ) \ - : wxPropertyGridIteratorBase( ) \ - { \ - Assign(it); \ - } \ - ~CLASS() \ - { \ - } \ - const CLASS& operator=( const CLASS& it ) \ - { \ - if (this != &it) \ - Assign(it); \ - return *this; \ - } \ - CLASS& operator++() { Next(); return *this; } \ - CLASS operator++(int) { CLASS it=*this;Next();return it; } \ - CLASS& operator--() { Prev(); return *this; } \ - CLASS operator--(int) { CLASS it=*this;Prev();return it; } \ - PROPERTY* operator *() const { return (PROPERTY*)m_property; } \ - static PROPERTY* OneStep( STATE* state, \ - int flags = wxPG_ITERATE_DEFAULT, \ - PROPERTY* property = NULL, \ - int dir = 1 ) \ - { \ - CLASS it( state, flags, property, dir ); \ - if ( property ) \ - { \ - if ( dir == 1 ) it.Next(); \ - else it.Prev(); \ - } \ - return *it; \ - } - - -/** @class wxPropertyGridIterator - - Preferable way to iterate through contents of wxPropertyGrid, - wxPropertyGridManager, and wxPropertyGridPage. - - See wxPropertyGridInterface::GetIterator() for more information about usage. - - @library{wxpropgrid} - @category{propgrid} -*/ -class WXDLLIMPEXP_PROPGRID - wxPropertyGridIterator : public wxPropertyGridIteratorBase -{ -public: - - wxPG_IMPLEMENT_ITERATOR(wxPropertyGridIterator, - wxPGProperty, - wxPropertyGridPageState) - -protected: -}; - - -// Const version of wxPropertyGridIterator. -class WXDLLIMPEXP_PROPGRID - wxPropertyGridConstIterator : public wxPropertyGridIteratorBase -{ -public: - wxPG_IMPLEMENT_ITERATOR(wxPropertyGridConstIterator, - const wxPGProperty, - const wxPropertyGridPageState) - - /** - Additional copy constructor. - */ - wxPropertyGridConstIterator( const wxPropertyGridIterator& other ) - { - Assign(other); - } - - /** - Additional assignment operator. - */ - const wxPropertyGridConstIterator& operator=( const wxPropertyGridIterator& it ) - { - Assign(it); - return *this; - } - -protected: -}; - -// ----------------------------------------------------------------------- - -/** Base class to derive new viterators. -*/ -class WXDLLIMPEXP_PROPGRID wxPGVIteratorBase : public wxObjectRefData -{ - friend class wxPGVIterator; -public: - wxPGVIteratorBase() { } - virtual void Next() = 0; -protected: - virtual ~wxPGVIteratorBase() { } - - wxPropertyGridIterator m_it; -}; - -/** @class wxPGVIterator - - Abstract implementation of a simple iterator. Can only be used - to iterate in forward order, and only through the entire container. - Used to have functions dealing with all properties work with both - wxPropertyGrid and wxPropertyGridManager. -*/ -class WXDLLIMPEXP_PROPGRID wxPGVIterator -{ -public: - wxPGVIterator() { m_pIt = NULL; } - wxPGVIterator( wxPGVIteratorBase* obj ) { m_pIt = obj; } - ~wxPGVIterator() { UnRef(); } - void UnRef() { if (m_pIt) m_pIt->DecRef(); } - wxPGVIterator( const wxPGVIterator& it ) - { - m_pIt = it.m_pIt; - m_pIt->IncRef(); - } - const wxPGVIterator& operator=( const wxPGVIterator& it ) - { - if (this != &it) - { - UnRef(); - m_pIt = it.m_pIt; - m_pIt->IncRef(); - } - return *this; - } - void Next() { m_pIt->Next(); } - bool AtEnd() const { return m_pIt->m_it.AtEnd(); } - wxPGProperty* GetProperty() const { return m_pIt->m_it.GetProperty(); } -protected: - wxPGVIteratorBase* m_pIt; -}; - -// ----------------------------------------------------------------------- - -/** @class wxPropertyGridPageState - - Contains low-level property page information (properties, column widths, - etc.) of a single wxPropertyGrid or single wxPropertyGridPage. Generally you - should not use this class directly, but instead member functions in - wxPropertyGridInterface, wxPropertyGrid, wxPropertyGridPage, and - wxPropertyGridManager. - - @remarks - - In separate wxPropertyGrid component this class was known as - wxPropertyGridState. - - Currently this class is not implemented in wxPython. - - @library{wxpropgrid} - @category{propgrid} -*/ -class WXDLLIMPEXP_PROPGRID wxPropertyGridPageState -{ - friend class wxPGProperty; - friend class wxPropertyGrid; - friend class wxPGCanvas; - friend class wxPropertyGridInterface; - friend class wxPropertyGridPage; - friend class wxPropertyGridManager; -public: - - /** Default constructor. */ - wxPropertyGridPageState(); - - /** Destructor. */ - virtual ~wxPropertyGridPageState(); - - /** Makes sure all columns have minimum width. - */ - void CheckColumnWidths( int widthChange = 0 ); - - /** - Override this member function to add custom behaviour on property - deletion. - */ - virtual void DoDelete( wxPGProperty* item, bool doDelete = true ); - - wxSize DoFitColumns( bool allowGridResize = false ); - - wxPGProperty* DoGetItemAtY( int y ) const; - - /** - Override this member function to add custom behaviour on property - insertion. - */ - virtual wxPGProperty* DoInsert( wxPGProperty* parent, - int index, - wxPGProperty* property ); - - /** - This needs to be overridden in grid used the manager so that splitter - changes can be propagated to other pages. - */ - virtual void DoSetSplitterPosition( int pos, - int splitterColumn = 0, - int flags = 0 ); - - bool EnableCategories( bool enable ); - - /** Make sure virtual height is up-to-date. - */ - void EnsureVirtualHeight() - { - if ( m_vhCalcPending ) - { - RecalculateVirtualHeight(); - m_vhCalcPending = false; - } - } - - /** Returns (precalculated) height of contained visible properties. - */ - unsigned int GetVirtualHeight() const - { - wxASSERT( !m_vhCalcPending ); - return m_virtualHeight; - } - - /** Returns (precalculated) height of contained visible properties. - */ - unsigned int GetVirtualHeight() - { - EnsureVirtualHeight(); - return m_virtualHeight; - } - - /** Returns actual height of contained visible properties. - @remarks - Mostly used for internal diagnostic purposes. - */ - inline unsigned int GetActualVirtualHeight() const; - - unsigned int GetColumnCount() const - { - return (unsigned int) m_colWidths.size(); - } - - int GetColumnMinWidth( int column ) const; - - int GetColumnWidth( unsigned int column ) const - { - return m_colWidths[column]; - } - - wxPropertyGrid* GetGrid() const { return m_pPropGrid; } - - /** Returns last item which could be iterated using given flags. - @param flags - @link iteratorflags List of iterator flags@endlink - */ - wxPGProperty* GetLastItem( int flags = wxPG_ITERATE_DEFAULT ); - - const wxPGProperty* GetLastItem( int flags = wxPG_ITERATE_DEFAULT ) const - { - return ((wxPropertyGridPageState*)this)->GetLastItem(flags); - } - - /** - Returns currently selected property. - */ - wxPGProperty* GetSelection() const - { - return m_selection.empty()? NULL: m_selection[0]; - } - - void DoSetSelection( wxPGProperty* prop ) - { - m_selection.clear(); - if ( prop ) - m_selection.push_back(prop); - } - - bool DoClearSelection() - { - return DoSelectProperty(NULL); - } - - void DoRemoveFromSelection( wxPGProperty* prop ); - - void DoSetColumnProportion( unsigned int column, int proportion ); - - int DoGetColumnProportion( unsigned int column ) const - { - return m_columnProportions[column]; - } - - void ResetColumnSizes( int setSplitterFlags ); - - wxPropertyCategory* GetPropertyCategory( const wxPGProperty* p ) const; - -#if WXWIN_COMPATIBILITY_3_0 - wxDEPRECATED_MSG("don't refer directly to wxPropertyGridPageState::GetPropertyByLabel") - wxPGProperty* GetPropertyByLabel( const wxString& name, - wxPGProperty* parent = NULL ) const; -#endif // WXWIN_COMPATIBILITY_3_0 - - wxVariant DoGetPropertyValues( const wxString& listname, - wxPGProperty* baseparent, - long flags ) const; - - wxPGProperty* DoGetRoot() const { return m_properties; } - - void DoSetPropertyName( wxPGProperty* p, const wxString& newName ); - - // Returns combined width of margin and all the columns - int GetVirtualWidth() const - { - return m_width; - } - - /** - Returns minimal width for given column so that all images and texts - will fit entirely. - - Used by SetSplitterLeft() and DoFitColumns(). - */ - int GetColumnFitWidth(wxClientDC& dc, - wxPGProperty* pwc, - unsigned int col, - bool subProps) const; - - int GetColumnFullWidth(wxClientDC &dc, wxPGProperty *p, unsigned int col); - - /** - Returns information about arbitrary position in the grid. - - @param pt - Logical coordinates in the virtual grid space. Use - wxScrolled<T>::CalcUnscrolledPosition() if you need to - translate a scrolled position into a logical one. - */ - wxPropertyGridHitTestResult HitTest( const wxPoint& pt ) const; - - /** Returns true if page is visibly displayed. - */ - inline bool IsDisplayed() const; - - bool IsInNonCatMode() const { return (bool)(m_properties == m_abcArray); } - - void DoLimitPropertyEditing( wxPGProperty* p, bool limit = true ) - { - p->SetFlagRecursively(wxPG_PROP_NOEDITOR, limit); - } - - bool DoSelectProperty( wxPGProperty* p, unsigned int flags = 0 ); - - /** widthChange is non-client. - */ - void OnClientWidthChange( int newWidth, - int widthChange, - bool fromOnResize = false ); - - /** Recalculates m_virtualHeight. - */ - void RecalculateVirtualHeight() - { - m_virtualHeight = GetActualVirtualHeight(); - } - - void SetColumnCount( int colCount ); - - void PropagateColSizeDec( int column, int decrease, int dir ); - - bool DoHideProperty( wxPGProperty* p, bool hide, int flags = wxPG_RECURSE ); - - bool DoSetPropertyValueString( wxPGProperty* p, const wxString& value ); - - bool DoSetPropertyValue( wxPGProperty* p, wxVariant& value ); - - bool DoSetPropertyValueWxObjectPtr( wxPGProperty* p, wxObject* value ); - void DoSetPropertyValues( const wxVariantList& list, - wxPGProperty* default_category ); - - void SetSplitterLeft( bool subProps = false ); - - /** Set virtual width for this particular page. */ - void SetVirtualWidth( int width ); - - void DoSortChildren( wxPGProperty* p, int flags = 0 ); - void DoSort( int flags = 0 ); - - bool PrepareAfterItemsAdded(); - - /** Called after virtual height needs to be recalculated. - */ - void VirtualHeightChanged() - { - m_vhCalcPending = true; - } - - /** Base append. */ - wxPGProperty* DoAppend( wxPGProperty* property ); - - /** Returns property by its name. */ - wxPGProperty* BaseGetPropertyByName( const wxString& name ) const; - - /** Called in, for example, wxPropertyGrid::Clear. */ - void DoClear(); - - bool DoIsPropertySelected( wxPGProperty* prop ) const; - - bool DoCollapse( wxPGProperty* p ); - - bool DoExpand( wxPGProperty* p ); - - void CalculateFontAndBitmapStuff( int vspacing ); - -protected: - - // Utility to check if two properties are visibly next to each other - bool ArePropertiesAdjacent( wxPGProperty* prop1, - wxPGProperty* prop2, - int iterFlags = wxPG_ITERATE_VISIBLE ) const; - - int DoGetSplitterPosition( int splitterIndex = 0 ) const; - - /** Returns column at x coordinate (in GetGrid()->GetPanel()). - @param pSplitterHit - Give pointer to int that receives index to splitter that is at x. - @param pSplitterHitOffset - Distance from said splitter. - */ - int HitTestH( int x, int* pSplitterHit, int* pSplitterHitOffset ) const; - - bool PrepareToAddItem( wxPGProperty* property, - wxPGProperty* scheduledParent ); - - /** Returns property by its label. */ - wxPGProperty* BaseGetPropertyByLabel( const wxString& label, - wxPGProperty* parent = NULL ) const; - - /** Unselect sub-properties */ - void DoRemoveChildrenFromSelection(wxPGProperty* p, bool recursive, - int selFlags); - - /** Mark sub-properties as being deleted */ - void DoMarkChildrenAsDeleted(wxPGProperty* p, bool recursive); - - /** Rename the property - so it won't remain in the way of the user code. - */ - void DoInvalidatePropertyName(wxPGProperty* p); - - /** Rename sub-properties - so it won't remain in the way of the user code. - */ - void DoInvalidateChildrenNames(wxPGProperty* p, bool recursive); - - /** Check if property contains given sub-category */ - bool IsChildCategory(wxPGProperty* p, - wxPropertyCategory* cat, bool recursive); - - /** If visible, then this is pointer to wxPropertyGrid. - This shall *never* be NULL to indicate that this state is not visible. - */ - wxPropertyGrid* m_pPropGrid; - - /** Pointer to currently used array. */ - wxPGProperty* m_properties; - - /** Array for categoric mode. */ - wxPGRootProperty m_regularArray; - - /** Array for root of non-categoric mode. */ - wxPGRootProperty* m_abcArray; - - /** Dictionary for name-based access. */ - wxPGHashMapS2P m_dictName; - - /** List of column widths (first column does not include margin). */ - wxArrayInt m_colWidths; - - /** List of indices of columns the user can edit by clicking it. */ - wxArrayInt m_editableColumns; - - /** Column proportions */ - wxArrayInt m_columnProportions; - - double m_fSplitterX; - - /** Most recently added category. */ - wxPropertyCategory* m_currentCategory; - - /** Array of selected property. */ - wxArrayPGProperty m_selection; - - /** Virtual width. */ - int m_width; - - /** Indicates total virtual height of visible properties. */ - unsigned int m_virtualHeight; - -#if WXWIN_COMPATIBILITY_3_0 - /** 1 if m_lastCaption is also the bottommost caption. */ - unsigned char m_lastCaptionBottomnest; - - /** 1 items appended/inserted, so stuff needs to be done before drawing; - If m_virtualHeight == 0, then calcylatey's must be done. - Otherwise just sort. - */ - unsigned char m_itemsAdded; - - /** 1 if any value is modified. */ - unsigned char m_anyModified; - - unsigned char m_vhCalcPending; -#else - /** True if m_lastCaption is also the bottommost caption. */ - bool m_lastCaptionBottomnest; - - /** True: items appended/inserted, so stuff needs to be done before drawing; - If m_virtualHeight == 0, then calcylatey's must be done. - Otherwise just sort. - */ - bool m_itemsAdded; - - /** True if any value is modified. */ - bool m_anyModified; - - bool m_vhCalcPending; -#endif // WXWIN_COMPATIBILITY_3_0 - - /** True if splitter has been pre-set by the application. */ - bool m_isSplitterPreSet; - - /** Used to (temporarily) disable splitter centering. */ - bool m_dontCenterSplitter; - -private: - /** Only inits arrays, doesn't migrate things or such. */ - void InitNonCatMode(); -}; - -// ----------------------------------------------------------------------- - -#endif // wxUSE_PROPGRID - -#endif // _WX_PROPGRID_PROPGRIDPAGESTATE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/props.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/props.h deleted file mode 100644 index c4f08984..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/propgrid/props.h +++ /dev/null @@ -1,1087 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/propgrid/props.h -// Purpose: wxPropertyGrid Property Classes -// Author: Jaakko Salli -// Modified by: -// Created: 2007-03-28 -// Copyright: (c) Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROPGRID_PROPS_H_ -#define _WX_PROPGRID_PROPS_H_ - -#include "wx/defs.h" - -#if wxUSE_PROPGRID - -// ----------------------------------------------------------------------- - -class wxPGArrayEditorDialog; - -#include "wx/propgrid/editors.h" - -#include "wx/filename.h" -#include "wx/dialog.h" -#include "wx/textctrl.h" -#include "wx/button.h" -#include "wx/listbox.h" -#include "wx/valtext.h" - -// ----------------------------------------------------------------------- - -// -// Property class implementation helper macros. -// - -#define wxPG_IMPLEMENT_PROPERTY_CLASS(NAME, UPCLASS, EDITOR) \ -wxIMPLEMENT_DYNAMIC_CLASS(NAME, UPCLASS); \ -wxPG_IMPLEMENT_PROPERTY_CLASS_PLAIN(NAME, EDITOR) - -#if WXWIN_COMPATIBILITY_3_0 -// This macro is deprecated. Use wxPG_IMPLEMENT_PROPERTY_CLASS instead. -#define WX_PG_IMPLEMENT_PROPERTY_CLASS(NAME, UPCLASS, T, T_AS_ARG, EDITOR) \ -wxIMPLEMENT_DYNAMIC_CLASS(NAME, UPCLASS); \ -WX_PG_IMPLEMENT_PROPERTY_CLASS_PLAIN(NAME, T, EDITOR) -#endif // WXWIN_COMPATIBILITY_3_0 - -// ----------------------------------------------------------------------- - -// -// These macros help creating DoGetValidator -#define WX_PG_DOGETVALIDATOR_ENTRY() \ - static wxValidator* s_ptr = NULL; \ - if ( s_ptr ) return s_ptr; - -// Common function exit -#define WX_PG_DOGETVALIDATOR_EXIT(VALIDATOR) \ - s_ptr = VALIDATOR; \ - wxPGGlobalVars->m_arrValidators.push_back( VALIDATOR ); \ - return VALIDATOR; - -// ----------------------------------------------------------------------- - -/** @class wxPGInDialogValidator - @ingroup classes - Creates and manages a temporary wxTextCtrl for validation purposes. - Uses wxPropertyGrid's current editor, if available. -*/ -class WXDLLIMPEXP_PROPGRID wxPGInDialogValidator -{ -public: - wxPGInDialogValidator() - { - m_textCtrl = NULL; - } - - ~wxPGInDialogValidator() - { - if ( m_textCtrl ) - m_textCtrl->Destroy(); - } - - bool DoValidate( wxPropertyGrid* propGrid, - wxValidator* validator, - const wxString& value ); - -private: - wxTextCtrl* m_textCtrl; -}; - - -// ----------------------------------------------------------------------- -// Property classes -// ----------------------------------------------------------------------- - -#define wxPG_PROP_PASSWORD wxPG_PROP_CLASS_SPECIFIC_2 - -/** @class wxStringProperty - @ingroup classes - Basic property with string value. - - <b>Supported special attributes:</b> - - "Password": set to 1 in order to enable wxTE_PASSWORD on the editor. - - @remarks - - If value "<composed>" is set, then actual value is formed (or composed) - from values of child properties. -*/ -class WXDLLIMPEXP_PROPGRID wxStringProperty : public wxPGProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxStringProperty) -public: - wxStringProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxString& value = wxEmptyString ); - virtual ~wxStringProperty(); - - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE; - virtual bool StringToValue( wxVariant& variant, - const wxString& text, - int argFlags = 0 ) const wxOVERRIDE; - - virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) wxOVERRIDE; - - /** This is updated so "<composed>" special value can be handled. - */ - virtual void OnSetValue() wxOVERRIDE; - -protected: -}; - -// ----------------------------------------------------------------------- - -/** Constants used with NumericValidation<>(). -*/ -enum wxPGNumericValidationConstants -{ - /** Instead of modifying the value, show an error message. - */ - wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE = 0, - - /** Modify value, but stick with the limitations. - */ - wxPG_PROPERTY_VALIDATION_SATURATE = 1, - - /** Modify value, wrap around on overflow. - */ - wxPG_PROPERTY_VALIDATION_WRAP = 2 -}; - -// ----------------------------------------------------------------------- - -#if wxUSE_VALIDATORS - -/** - A more comprehensive numeric validator class. -*/ -class WXDLLIMPEXP_PROPGRID wxNumericPropertyValidator : public wxTextValidator -{ -public: - enum NumericType - { - Signed = 0, - Unsigned, - Float - }; - - wxNumericPropertyValidator( NumericType numericType, int base = 10 ); - virtual ~wxNumericPropertyValidator() { } - virtual bool Validate(wxWindow* parent) wxOVERRIDE; -}; - -#endif // wxUSE_VALIDATORS - - -/** @class wxIntProperty - @ingroup classes - Basic property with integer value. - - Seamlessly supports 64-bit integer (wxLongLong) on overflow. - - <b>Example how to use seamless 64-bit integer support</b> - - Getting value: - - @code - wxLongLong_t value = pg->GetPropertyValueAsLongLong(); - @endcode - - or - - @code - wxLongLong value; - wxVariant variant = property->GetValue(); - if ( variant.IsType("longlong") ) - value = variant.GetLongLong(); - else - value = variant.GetLong(); - @endcode - - Setting value: - - @code - pg->SetPropertyValue(longLongVal); - @endcode - - or - - @code - property->SetValue(WXVARIANT(longLongVal)); - @endcode - - - <b>Supported special attributes:</b> - - "Min", "Max": Specify acceptable value range. -*/ -class WXDLLIMPEXP_PROPGRID wxIntProperty : public wxPGProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxIntProperty) -public: - wxIntProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - long value = 0 ); - virtual ~wxIntProperty(); - -#if wxUSE_LONGLONG - wxIntProperty( const wxString& label, - const wxString& name, - const wxLongLong& value ); -#endif - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE; - virtual bool StringToValue( wxVariant& variant, - const wxString& text, - int argFlags = 0 ) const wxOVERRIDE; - virtual bool ValidateValue( wxVariant& value, - wxPGValidationInfo& validationInfo ) const wxOVERRIDE; - virtual bool IntToValue( wxVariant& variant, - int number, - int argFlags = 0 ) const wxOVERRIDE; - static wxValidator* GetClassValidator(); - virtual wxValidator* DoGetValidator() const wxOVERRIDE; - - /** Validation helpers. - */ -#if defined(wxLongLong_t) && wxUSE_LONGLONG - static bool DoValidation( const wxPGProperty* property, - wxLongLong_t& value, - wxPGValidationInfo* pValidationInfo, - int mode = - wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE ); -#endif - static bool DoValidation(const wxPGProperty* property, - long& value, - wxPGValidationInfo* pValidationInfo, - int mode = - wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE); - -protected: -}; - -// ----------------------------------------------------------------------- - -/** @class wxUIntProperty - @ingroup classes - Basic property with unsigned integer value. - Seamlessly supports 64-bit integer (wxULongLong) on overflow. - - <b>Supported special attributes:</b> - - "Min", "Max": Specify acceptable value range. - - "Base": Define base. Valid constants are wxPG_BASE_OCT, wxPG_BASE_DEC, - wxPG_BASE_HEX and wxPG_BASE_HEXL (lowercase characters). Arbitrary bases - are <b>not</b> supported. - - "Prefix": Possible values are wxPG_PREFIX_NONE, wxPG_PREFIX_0x, and - wxPG_PREFIX_DOLLAR_SIGN. Only wxPG_PREFIX_NONE works with Decimal and Octal - numbers. - - @remarks - - For example how to use seamless 64-bit integer support, see wxIntProperty - documentation (just use wxULongLong instead of wxLongLong). -*/ -class WXDLLIMPEXP_PROPGRID wxUIntProperty : public wxPGProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxUIntProperty) -public: - wxUIntProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - unsigned long value = 0 ); - virtual ~wxUIntProperty(); -#if wxUSE_LONGLONG - wxUIntProperty( const wxString& label, - const wxString& name, - const wxULongLong& value ); -#endif - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE; - virtual bool StringToValue( wxVariant& variant, - const wxString& text, - int argFlags = 0 ) const wxOVERRIDE; - virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) wxOVERRIDE; - virtual bool ValidateValue( wxVariant& value, - wxPGValidationInfo& validationInfo ) const wxOVERRIDE; - virtual wxValidator* DoGetValidator () const wxOVERRIDE; - virtual bool IntToValue( wxVariant& variant, - int number, - int argFlags = 0 ) const wxOVERRIDE; - -protected: - wxByte m_base; - wxByte m_realBase; // translated to 8,16,etc. - wxByte m_prefix; -private: - void Init(); - - // Validation helpers. -#if defined(wxULongLong_t) && wxUSE_LONGLONG - static bool DoValidation(const wxPGProperty* property, - wxULongLong_t& value, - wxPGValidationInfo* pValidationInfo, - int mode =wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE); -#endif - static bool DoValidation(const wxPGProperty* property, - long& value, - wxPGValidationInfo* pValidationInfo, - int mode = wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE); -}; - -// ----------------------------------------------------------------------- - -/** @class wxFloatProperty - @ingroup classes - Basic property with double-precision floating point value. - - <b>Supported special attributes:</b> - - "Precision": Sets the (max) precision used when floating point value is - rendered as text. The default -1 means infinite precision. -*/ -class WXDLLIMPEXP_PROPGRID wxFloatProperty : public wxPGProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxFloatProperty) -public: - wxFloatProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - double value = 0.0 ); - virtual ~wxFloatProperty(); - - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE; - virtual bool StringToValue( wxVariant& variant, - const wxString& text, - int argFlags = 0 ) const wxOVERRIDE; - virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) wxOVERRIDE; - virtual wxVariant DoGetAttribute( const wxString& name ) const wxOVERRIDE; - - virtual bool ValidateValue( wxVariant& value, - wxPGValidationInfo& validationInfo ) const wxOVERRIDE; - - /** Validation helper. - */ - static bool DoValidation( const wxPGProperty* property, - double& value, - wxPGValidationInfo* pValidationInfo, - int mode = - wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE ); - static wxValidator* GetClassValidator(); - virtual wxValidator* DoGetValidator () const wxOVERRIDE; - -protected: - int m_precision; -}; - -// ----------------------------------------------------------------------- - -/** @class wxBoolProperty - @ingroup classes - Basic property with boolean value. - - <b>Supported special attributes:</b> - - "UseCheckbox": Set to 1 to use check box editor instead of combo box. - - "UseDClickCycling": Set to 1 to cycle combo box instead showing the list. -*/ -class WXDLLIMPEXP_PROPGRID wxBoolProperty : public wxPGProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxBoolProperty) -public: - wxBoolProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - bool value = false ); - virtual ~wxBoolProperty(); - - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE; - virtual bool StringToValue( wxVariant& variant, - const wxString& text, - int argFlags = 0 ) const wxOVERRIDE; - virtual bool IntToValue( wxVariant& variant, - int number, int argFlags = 0 ) const wxOVERRIDE; - virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) wxOVERRIDE; - virtual wxVariant DoGetAttribute( const wxString& name ) const wxOVERRIDE; -}; - -// ----------------------------------------------------------------------- - -// If set, then selection of choices is static and should not be -// changed (i.e. returns NULL in GetPropertyChoices). -#define wxPG_PROP_STATIC_CHOICES wxPG_PROP_CLASS_SPECIFIC_1 - -/** @class wxEnumProperty - @ingroup classes - You can derive custom properties with choices from this class. See - wxBaseEnumProperty for remarks. - - @remarks - - Updating private index is important. You can do this either by calling - SetIndex() in IntToValue, and then letting wxBaseEnumProperty::OnSetValue - be called (by not implementing it, or by calling super class function in - it) -OR- you can just call SetIndex in OnSetValue. -*/ -class WXDLLIMPEXP_PROPGRID wxEnumProperty : public wxPGProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxEnumProperty) -public: - -#ifndef SWIG - wxEnumProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxChar* const* labels = NULL, - const long* values = NULL, - int value = 0 ); - wxEnumProperty( const wxString& label, - const wxString& name, - wxPGChoices& choices, - int value = 0 ); - - // Special constructor for caching choices (used by derived class) - wxEnumProperty( const wxString& label, - const wxString& name, - const char* const* untranslatedLabels, - const long* values, - wxPGChoices* choicesCache, - int value = 0 ); - - wxEnumProperty( const wxString& label, - const wxString& name, - const wxArrayString& labels, - const wxArrayInt& values = wxArrayInt(), - int value = 0 ); -#else - wxEnumProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxArrayString& labels = wxArrayString(), - const wxArrayInt& values = wxArrayInt(), - int value = 0 ); -#endif - - virtual ~wxEnumProperty(); - - size_t GetItemCount() const { return m_choices.GetCount(); } - - virtual void OnSetValue() wxOVERRIDE; - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE; - virtual bool StringToValue( wxVariant& variant, - const wxString& text, - int argFlags = 0 ) const wxOVERRIDE; - virtual bool ValidateValue( wxVariant& value, - wxPGValidationInfo& validationInfo ) const wxOVERRIDE; - - // If wxPG_FULL_VALUE is not set in flags, then the value is interpreted - // as index to choices list. Otherwise, it is actual value. - virtual bool IntToValue( wxVariant& variant, - int number, - int argFlags = 0 ) const wxOVERRIDE; - - // - // Additional virtuals - - // This must be overridden to have non-index based value - virtual int GetIndexForValue( int value ) const; - - // GetChoiceSelection needs to overridden since m_index is - // the true index, and various property classes derived from - // this take advantage of it. - virtual int GetChoiceSelection() const wxOVERRIDE { return m_index; } - - virtual void OnValidationFailure( wxVariant& pendingValue ) wxOVERRIDE; - -protected: - - int GetIndex() const; - void SetIndex( int index ); - -#if WXWIN_COMPATIBILITY_3_0 - wxDEPRECATED_MSG("use ValueFromString_(wxVariant&, int*, const wxString&, int) function instead") - bool ValueFromString_( wxVariant& value, - const wxString& text, - int argFlags ) const - { - return ValueFromString_(value, NULL, text, argFlags); - } - wxDEPRECATED_MSG("use ValueFromInt_(wxVariant&, int*, int, int) function instead") - bool ValueFromInt_( wxVariant& value, int intVal, int argFlags ) const - { - return ValueFromInt_(value, NULL, intVal, argFlags); - } - wxDEPRECATED_MSG("don't use ResetNextIndex() function") - static void ResetNextIndex() { } -#endif - // Converts text to value and returns corresponding index in the collection - bool ValueFromString_(wxVariant& value, - int* pIndex, - const wxString& text, - int argFlags) const; - // Converts number to value and returns corresponding index in the collection - bool ValueFromInt_(wxVariant& value, int* pIndex, int intVal, int argFlags) const; - -private: - // This is private so that classes are guaranteed to use GetIndex - // for up-to-date index value. - int m_index; -}; - -// ----------------------------------------------------------------------- - -/** @class wxEditEnumProperty - @ingroup classes - wxEnumProperty with wxString value and writable combo box editor. - - @remarks - Uses int value, similar to wxEnumProperty, unless text entered by user is - is not in choices (in which case string value is used). -*/ -class WXDLLIMPEXP_PROPGRID wxEditEnumProperty : public wxEnumProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxEditEnumProperty) -public: - - wxEditEnumProperty( const wxString& label, - const wxString& name, - const wxChar* const* labels, - const long* values, - const wxString& value ); - wxEditEnumProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxArrayString& labels = wxArrayString(), - const wxArrayInt& values = wxArrayInt(), - const wxString& value = wxEmptyString ); - wxEditEnumProperty( const wxString& label, - const wxString& name, - wxPGChoices& choices, - const wxString& value = wxEmptyString ); - - // Special constructor for caching choices (used by derived class) - wxEditEnumProperty( const wxString& label, - const wxString& name, - const char* const* untranslatedLabels, - const long* values, - wxPGChoices* choicesCache, - const wxString& value ); - - virtual ~wxEditEnumProperty(); - - void OnSetValue() wxOVERRIDE; - bool StringToValue(wxVariant& variant, - const wxString& text, - int argFlags = 0) const wxOVERRIDE; - bool ValidateValue(wxVariant& value, - wxPGValidationInfo& validationInfo) const wxOVERRIDE; - -protected: -}; - -// ----------------------------------------------------------------------- - -/** @class wxFlagsProperty - @ingroup classes - Represents a bit set that fits in a long integer. wxBoolProperty - sub-properties are created for editing individual bits. Textctrl is created - to manually edit the flags as a text; a continuous sequence of spaces, - commas and semicolons is considered as a flag id separator. - <b>Note:</b> When changing "choices" (ie. flag labels) of wxFlagsProperty, - you will need to use SetPropertyChoices - otherwise they will not get - updated properly. -*/ -class WXDLLIMPEXP_PROPGRID wxFlagsProperty : public wxPGProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxFlagsProperty) -public: - -#ifndef SWIG - wxFlagsProperty( const wxString& label, - const wxString& name, - const wxChar* const* labels, - const long* values = NULL, - long value = 0 ); - wxFlagsProperty( const wxString& label, - const wxString& name, - wxPGChoices& choices, - long value = 0 ); -#endif - wxFlagsProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxArrayString& labels = wxArrayString(), - const wxArrayInt& values = wxArrayInt(), - int value = 0 ); - virtual ~wxFlagsProperty (); - - virtual void OnSetValue() wxOVERRIDE; - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE; - virtual bool StringToValue( wxVariant& variant, - const wxString& text, - int flags ) const wxOVERRIDE; - virtual wxVariant ChildChanged( wxVariant& thisValue, - int childIndex, - wxVariant& childValue ) const wxOVERRIDE; - virtual void RefreshChildren() wxOVERRIDE; - virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) wxOVERRIDE; - - // GetChoiceSelection needs to overridden since m_choices is - // used and value is integer, but it is not index. - virtual int GetChoiceSelection() const wxOVERRIDE { return wxNOT_FOUND; } - - // helpers - size_t GetItemCount() const { return m_choices.GetCount(); } - const wxString& GetLabel( size_t ind ) const - { return m_choices.GetLabel(static_cast<unsigned int>(ind)); } - -protected: - // Used to detect if choices have been changed - wxPGChoicesData* m_oldChoicesData; - - // Needed to properly mark changed sub-properties - long m_oldValue; - - // Converts string id to a relevant bit. - long IdToBit( const wxString& id ) const; - - // Creates children and sets value. - void Init(); -}; - -// ----------------------------------------------------------------------- - -/** @class wxPGFileDialogAdapter - @ingroup classes -*/ -class WXDLLIMPEXP_PROPGRID - wxPGFileDialogAdapter : public wxPGEditorDialogAdapter -{ -public: - virtual bool DoShowDialog( wxPropertyGrid* propGrid, - wxPGProperty* property ) wxOVERRIDE; -}; - -// ----------------------------------------------------------------------- - -// Indicates first bit useable by derived properties. -#define wxPG_PROP_SHOW_FULL_FILENAME wxPG_PROP_CLASS_SPECIFIC_1 - -/** @class wxFileProperty - @ingroup classes - Like wxLongStringProperty, but the button triggers file selector instead. - - <b>Supported special attributes:</b> - - "Wildcard": Sets wildcard (see wxFileDialog for format details), "All - files..." is default. - - "ShowFullPath": Default 1. When 0, only the file name is shown (i.e. drive - and directory are hidden). - - "ShowRelativePath": If set, then the filename is shown relative to the - given path string. - - "InitialPath": Sets the initial path of where to look for files. - - "DialogTitle": Sets a specific title for the dir dialog. -*/ -class WXDLLIMPEXP_PROPGRID wxFileProperty : public wxPGProperty -{ - friend class wxPGFileDialogAdapter; - WX_PG_DECLARE_PROPERTY_CLASS(wxFileProperty) -public: - - wxFileProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxString& value = wxEmptyString ); - virtual ~wxFileProperty (); - - virtual void OnSetValue() wxOVERRIDE; - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE; - virtual bool StringToValue( wxVariant& variant, - const wxString& text, - int argFlags = 0 ) const wxOVERRIDE; - virtual wxPGEditorDialogAdapter* GetEditorDialog() const wxOVERRIDE; - virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) wxOVERRIDE; - - static wxValidator* GetClassValidator(); - virtual wxValidator* DoGetValidator() const wxOVERRIDE; - - /** - Returns filename to file represented by current value. - */ - wxFileName GetFileName() const; - -protected: - wxString m_wildcard; - wxString m_basePath; // If set, then show path relative to it - wxString m_initialPath; // If set, start the file dialog here - wxString m_dlgTitle; // If set, used as title for file dialog - int m_indFilter; // index to the selected filter -}; - -// ----------------------------------------------------------------------- - -#define wxPG_PROP_NO_ESCAPE wxPG_PROP_CLASS_SPECIFIC_1 -// Flag used in wxLongStringProperty to mark that edit button -// should be enabled even in the read-only mode. -#define wxPG_PROP_ACTIVE_BTN wxPG_PROP_CLASS_SPECIFIC_3 - - -/** @class wxPGLongStringDialogAdapter - @ingroup classes -*/ -class WXDLLIMPEXP_PROPGRID - wxPGLongStringDialogAdapter : public wxPGEditorDialogAdapter -{ -public: - virtual bool DoShowDialog( wxPropertyGrid* propGrid, - wxPGProperty* property ) wxOVERRIDE; -}; - - -/** @class wxLongStringProperty - @ingroup classes - Like wxStringProperty, but has a button that triggers a small text - editor dialog. -*/ -class WXDLLIMPEXP_PROPGRID wxLongStringProperty : public wxPGProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxLongStringProperty) -public: - - wxLongStringProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxString& value = wxEmptyString ); - virtual ~wxLongStringProperty(); - - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE; - virtual bool StringToValue( wxVariant& variant, - const wxString& text, - int argFlags = 0 ) const wxOVERRIDE; - virtual bool OnEvent( wxPropertyGrid* propgrid, - wxWindow* primary, wxEvent& event ) wxOVERRIDE; - - // Shows string editor dialog. Value to be edited should be read from - // value, and if dialog is not cancelled, it should be stored back and true - // should be returned if that was the case. - virtual bool OnButtonClick( wxPropertyGrid* propgrid, wxString& value ); - - static bool DisplayEditorDialog( wxPGProperty* prop, - wxPropertyGrid* propGrid, - wxString& value ); - -protected: -}; - -// ----------------------------------------------------------------------- - - -/** @class wxDirProperty - @ingroup classes - Like wxLongStringProperty, but the button triggers dir selector instead. - - <b>Supported special attributes:</b> - - "DialogMessage": Sets specific message in the dir selector. -*/ -class WXDLLIMPEXP_PROPGRID wxDirProperty : public wxLongStringProperty -{ - wxDECLARE_DYNAMIC_CLASS(wxDirProperty); -public: - wxDirProperty( const wxString& name = wxPG_LABEL, - const wxString& label = wxPG_LABEL, - const wxString& value = wxEmptyString ); - virtual ~wxDirProperty(); - - virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) wxOVERRIDE; - virtual wxValidator* DoGetValidator() const wxOVERRIDE; - - virtual bool OnButtonClick ( wxPropertyGrid* propGrid, wxString& value ) wxOVERRIDE; - -protected: - wxString m_dlgMessage; -}; - -// ----------------------------------------------------------------------- - -// wxBoolProperty specific flags -#define wxPG_PROP_USE_CHECKBOX wxPG_PROP_CLASS_SPECIFIC_1 -// DCC = Double Click Cycles -#define wxPG_PROP_USE_DCC wxPG_PROP_CLASS_SPECIFIC_2 - - -// ----------------------------------------------------------------------- - -/** @class wxArrayStringProperty - @ingroup classes - Property that manages a list of strings. -*/ -class WXDLLIMPEXP_PROPGRID wxArrayStringProperty : public wxPGProperty -{ - WX_PG_DECLARE_PROPERTY_CLASS(wxArrayStringProperty) -public: - wxArrayStringProperty( const wxString& label = wxPG_LABEL, - const wxString& name = wxPG_LABEL, - const wxArrayString& value = wxArrayString() ); - virtual ~wxArrayStringProperty(); - - virtual void OnSetValue() wxOVERRIDE; - virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const wxOVERRIDE; - virtual bool StringToValue( wxVariant& variant, - const wxString& text, - int argFlags = 0 ) const wxOVERRIDE; - virtual bool OnEvent( wxPropertyGrid* propgrid, - wxWindow* primary, wxEvent& event ) wxOVERRIDE; - virtual bool DoSetAttribute( const wxString& name, wxVariant& value ) wxOVERRIDE; - - // Implement in derived class for custom array-to-string conversion. - virtual void ConvertArrayToString(const wxArrayString& arr, - wxString* pString, - const wxUniChar& delimiter) const; - - // Shows string editor dialog. Value to be edited should be read from - // value, and if dialog is not cancelled, it should be stored back and true - // should be returned if that was the case. - virtual bool OnCustomStringEdit( wxWindow* parent, wxString& value ); - - // Helper. - virtual bool OnButtonClick( wxPropertyGrid* propgrid, - wxWindow* primary, - const wxChar* cbt ); - - // Creates wxPGArrayEditorDialog for string editing. Called in OnButtonClick. - virtual wxPGArrayEditorDialog* CreateEditorDialog(); - - enum ConversionFlags - { - Escape = 0x01, - QuoteStrings = 0x02 - }; - - /** - Generates contents for string dst based on the contents of - wxArrayString src. - */ - static void ArrayStringToString( wxString& dst, const wxArrayString& src, - wxUniChar delimiter, int flags ); - -protected: - // Previously this was to be implemented in derived class for array-to- - // string conversion. Now you should implement ConvertValueToString() - // instead. - virtual void GenerateValueAsString(); - - wxString m_display; // Cache for displayed text. - wxUniChar m_delimiter; -}; - -// ----------------------------------------------------------------------- - -#define WX_PG_DECLARE_ARRAYSTRING_PROPERTY_WITH_VALIDATOR_WITH_DECL(PROPNAME, \ - DECL) \ -DECL PROPNAME : public wxArrayStringProperty \ -{ \ - WX_PG_DECLARE_PROPERTY_CLASS(PROPNAME) \ -public: \ - PROPNAME( const wxString& label = wxPG_LABEL, \ - const wxString& name = wxPG_LABEL, \ - const wxArrayString& value = wxArrayString() ); \ - ~PROPNAME(); \ - virtual bool OnEvent( wxPropertyGrid* propgrid, \ - wxWindow* primary, wxEvent& event ); \ - virtual bool OnCustomStringEdit( wxWindow* parent, wxString& value ); \ - virtual wxValidator* DoGetValidator() const; \ -}; - -#define WX_PG_DECLARE_ARRAYSTRING_PROPERTY_WITH_VALIDATOR(PROPNAM) \ -WX_PG_DECLARE_ARRAYSTRING_PROPERTY_WITH_VALIDATOR(PROPNAM, class) - -#define WX_PG_IMPLEMENT_ARRAYSTRING_PROPERTY_WITH_VALIDATOR(PROPNAME, \ - DELIMCHAR, \ - CUSTBUTTXT) \ -wxPG_IMPLEMENT_PROPERTY_CLASS(PROPNAME, wxArrayStringProperty, \ - TextCtrlAndButton) \ -PROPNAME::PROPNAME( const wxString& label, \ - const wxString& name, \ - const wxArrayString& value ) \ - : wxArrayStringProperty(label,name,value) \ -{ \ - PROPNAME::GenerateValueAsString(); \ - m_delimiter = DELIMCHAR; \ -} \ -PROPNAME::~PROPNAME() { } \ -bool PROPNAME::OnEvent( wxPropertyGrid* propgrid, \ - wxWindow* primary, wxEvent& event ) \ -{ \ - if ( event.GetEventType() == wxEVT_BUTTON ) \ - return OnButtonClick(propgrid,primary,(const wxChar*) CUSTBUTTXT); \ - return false; \ -} - -#define WX_PG_DECLARE_ARRAYSTRING_PROPERTY(PROPNAME) \ -WX_PG_DECLARE_ARRAYSTRING_PROPERTY_WITH_VALIDATOR(PROPNAME) - -#define WX_PG_DECLARE_ARRAYSTRING_PROPERTY_WITH_DECL(PROPNAME, DECL) \ -WX_PG_DECLARE_ARRAYSTRING_PROPERTY_WITH_VALIDATOR_WITH_DECL(PROPNAME, DECL) - -#define WX_PG_IMPLEMENT_ARRAYSTRING_PROPERTY(PROPNAME,DELIMCHAR,CUSTBUTTXT) \ -WX_PG_IMPLEMENT_ARRAYSTRING_PROPERTY_WITH_VALIDATOR(PROPNAME, \ - DELIMCHAR, \ - CUSTBUTTXT) \ -wxValidator* PROPNAME::DoGetValidator () const \ -{ return NULL; } - - -// ----------------------------------------------------------------------- -// wxPGArrayEditorDialog -// ----------------------------------------------------------------------- - -#if wxUSE_EDITABLELISTBOX - -class WXDLLIMPEXP_FWD_ADV wxEditableListBox; -class WXDLLIMPEXP_FWD_CORE wxListEvent; - -#define wxAEDIALOG_STYLE \ - (wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER | wxOK | wxCANCEL | wxCENTRE) - -class WXDLLIMPEXP_PROPGRID wxPGArrayEditorDialog : public wxDialog -{ -public: - wxPGArrayEditorDialog(); - virtual ~wxPGArrayEditorDialog() { } - - void Init(); - - wxPGArrayEditorDialog( wxWindow *parent, - const wxString& message, - const wxString& caption, - long style = wxAEDIALOG_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize ); - - bool Create( wxWindow *parent, - const wxString& message, - const wxString& caption, - long style = wxAEDIALOG_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize ); - - void EnableCustomNewAction() - { - m_hasCustomNewAction = true; - } - - /** Set value modified by dialog. - */ - virtual void SetDialogValue( const wxVariant& WXUNUSED(value) ) - { - wxFAIL_MSG(wxS("re-implement this member function in derived class")); - } - - /** Return value modified by dialog. - */ - virtual wxVariant GetDialogValue() const - { - wxFAIL_MSG(wxS("re-implement this member function in derived class")); - return wxVariant(); - } - - /** Override to return wxValidator to be used with the wxTextCtrl - in dialog. Note that the validator is used in the standard - wx way, i.e. it immediately prevents user from entering invalid - input. - - @remarks - Dialog frees the validator. - */ - virtual wxValidator* GetTextCtrlValidator() const - { - return NULL; - } - - // Returns true if array was actually modified - bool IsModified() const { return m_modified; } - - // wxEditableListBox utilities - int GetSelection() const; - - // implementation from now on - void OnAddClick(wxCommandEvent& event); - void OnDeleteClick(wxCommandEvent& event); - void OnUpClick(wxCommandEvent& event); - void OnDownClick(wxCommandEvent& event); - void OnEndLabelEdit(wxListEvent& event); - void OnBeginLabelEdit(wxListEvent& evt); - void OnIdle(wxIdleEvent& event); - -protected: - wxEditableListBox* m_elb; - - // These are used for focus repair - wxWindow* m_elbSubPanel; - wxWindow* m_lastFocused; - - // A new item, edited by user, is pending at this index. - // It will be committed once list ctrl item editing is done. - int m_itemPendingAtIndex; - - bool m_modified; - bool m_hasCustomNewAction; - - // These must be overridden - must return true on success. - virtual wxString ArrayGet( size_t index ) = 0; - virtual size_t ArrayGetCount() = 0; - virtual bool ArrayInsert( const wxString& str, int index ) = 0; - virtual bool ArraySet( size_t index, const wxString& str ) = 0; - virtual void ArrayRemoveAt( int index ) = 0; - virtual void ArraySwap( size_t first, size_t second ) = 0; - virtual bool OnCustomNewAction(wxString* WXUNUSED(resString)) - { - return false; - } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxPGArrayEditorDialog); - wxDECLARE_EVENT_TABLE(); -}; - -#endif // wxUSE_EDITABLELISTBOX - -// ----------------------------------------------------------------------- -// wxPGArrayStringEditorDialog -// ----------------------------------------------------------------------- - -class WXDLLIMPEXP_PROPGRID - wxPGArrayStringEditorDialog : public wxPGArrayEditorDialog -{ -public: - wxPGArrayStringEditorDialog(); - virtual ~wxPGArrayStringEditorDialog() { } - - void Init(); - - virtual void SetDialogValue( const wxVariant& value ) wxOVERRIDE - { - m_array = value.GetArrayString(); - } - - virtual wxVariant GetDialogValue() const wxOVERRIDE - { - return m_array; - } - - void SetCustomButton( const wxString& custBtText, - wxArrayStringProperty* pcc ) - { - if ( !custBtText.empty() ) - { - EnableCustomNewAction(); - m_pCallingClass = pcc; - } - } - - virtual bool OnCustomNewAction(wxString* resString) wxOVERRIDE; - -protected: - wxArrayString m_array; - - wxArrayStringProperty* m_pCallingClass; - - virtual wxString ArrayGet( size_t index ) wxOVERRIDE; - virtual size_t ArrayGetCount() wxOVERRIDE; - virtual bool ArrayInsert( const wxString& str, int index ) wxOVERRIDE; - virtual bool ArraySet( size_t index, const wxString& str ) wxOVERRIDE; - virtual void ArrayRemoveAt( int index ) wxOVERRIDE; - virtual void ArraySwap( size_t first, size_t second ) wxOVERRIDE; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxPGArrayStringEditorDialog); - wxDECLARE_EVENT_TABLE(); -}; - -// ----------------------------------------------------------------------- - -#endif // wxUSE_PROPGRID - -#endif // _WX_PROPGRID_PROPS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/file.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/file.h deleted file mode 100644 index 46547284..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/file.h +++ /dev/null @@ -1,38 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/protocol/file.h -// Purpose: File protocol -// Author: Guilhem Lavaux -// Modified by: -// Created: 1997 -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __WX_PROTO_FILE_H__ -#define __WX_PROTO_FILE_H__ - -#include "wx/defs.h" - -#if wxUSE_PROTOCOL_FILE - -#include "wx/protocol/protocol.h" - -class WXDLLIMPEXP_NET wxFileProto: public wxProtocol -{ -public: - wxFileProto(); - virtual ~wxFileProto(); - - bool Abort() wxOVERRIDE { return true; } - wxString GetContentType() const wxOVERRIDE { return wxEmptyString; } - - wxInputStream *GetInputStream(const wxString& path) wxOVERRIDE; - -protected: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxFileProto); - DECLARE_PROTOCOL(wxFileProto) -}; - -#endif // wxUSE_PROTOCOL_FILE - -#endif // __WX_PROTO_FILE_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/ftp.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/ftp.h deleted file mode 100644 index 426b6c99..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/ftp.h +++ /dev/null @@ -1,176 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/protocol/ftp.h -// Purpose: FTP protocol -// Author: Vadim Zeitlin -// Modified by: Mark Johnson, wxWindows@mj10777.de -// 20000917 : RmDir, GetLastResult, GetList -// Created: 07/07/1997 -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __WX_FTP_H__ -#define __WX_FTP_H__ - -#include "wx/defs.h" - -#if wxUSE_PROTOCOL_FTP - -#include "wx/sckaddr.h" -#include "wx/protocol/protocol.h" -#include "wx/url.h" - -class WXDLLIMPEXP_NET wxFTP : public wxProtocol -{ -public: - enum TransferMode - { - NONE, // not set by user explicitly - ASCII, - BINARY - }; - - wxFTP(); - virtual ~wxFTP(); - - // Connecting and disconnecting - virtual bool Connect(const wxSockAddress& addr, bool wait = true) wxOVERRIDE; - virtual bool Connect(const wxString& host) wxOVERRIDE { return Connect(host, 0); } - virtual bool Connect(const wxString& host, unsigned short port); - - // disconnect - virtual bool Close() wxOVERRIDE; - - // Parameters set up - - // set transfer mode now - void SetPassive(bool pasv) { m_bPassive = pasv; } - bool SetBinary() { return SetTransferMode(BINARY); } - bool SetAscii() { return SetTransferMode(ASCII); } - bool SetTransferMode(TransferMode mode); - - // Generic FTP interface - - // FTP doesn't know the MIME type of the last downloaded/uploaded file - virtual wxString GetContentType() const wxOVERRIDE { return wxEmptyString; } - - // the last FTP server reply - const wxString& GetLastResult() const { return m_lastResult; } - - // send any FTP command (should be full FTP command line but without - // trailing "\r\n") and return its return code - char SendCommand(const wxString& command); - - // check that the command returned the given code - bool CheckCommand(const wxString& command, char expectedReturn) - { - // SendCommand() does updates m_lastError - return SendCommand(command) == expectedReturn; - } - - // Filesystem commands - bool ChDir(const wxString& dir); - bool MkDir(const wxString& dir); - bool RmDir(const wxString& dir); - wxString Pwd(); - bool Rename(const wxString& src, const wxString& dst); - bool RmFile(const wxString& path); - - // Get the size of a file in the current dir. - // this function tries its best to deliver the size in bytes using BINARY - // (the SIZE command reports different sizes depending on whether - // type is set to ASCII or BINARY) - // returns -1 if file is non-existent or size could not be found - int GetFileSize(const wxString& fileName); - - // Check to see if a file exists in the current dir - bool FileExists(const wxString& fileName); - - // Download methods - bool Abort() wxOVERRIDE; - - virtual wxInputStream *GetInputStream(const wxString& path) wxOVERRIDE; - virtual wxOutputStream *GetOutputStream(const wxString& path); - - // Directory listing - - // get the list of full filenames, the format is fixed: one file name per - // line - bool GetFilesList(wxArrayString& files, - const wxString& wildcard = wxEmptyString) - { - return GetList(files, wildcard, false); - } - - // get a directory list in server dependent format - this can be shown - // directly to the user - bool GetDirList(wxArrayString& files, - const wxString& wildcard = wxEmptyString) - { - return GetList(files, wildcard, true); - } - - // equivalent to either GetFilesList() (default) or GetDirList() - bool GetList(wxArrayString& files, - const wxString& wildcard = wxEmptyString, - bool details = false); - -protected: - // this executes a simple ftp command with the given argument and returns - // true if it its return code starts with '2' - bool DoSimpleCommand(const wxChar *command, - const wxString& arg = wxEmptyString); - - // get the server reply, return the first character of the reply code, - // '1'..'5' for normal FTP replies, 0 (*not* '0') if an error occurred - char GetResult(); - - // check that the result is equal to expected value - bool CheckResult(char ch) { return GetResult() == ch; } - - // return the socket to be used, Passive/Active versions are used only by - // GetPort() - wxSocketBase *GetPort(); - wxSocketBase *GetPassivePort(); - wxSocketBase *GetActivePort(); - - // helper for GetPort() - wxString GetPortCmdArgument(const wxIPV4address& Local, const wxIPV4address& New); - - // accept connection from server in active mode, returns the same socket as - // passed in passive mode - wxSocketBase *AcceptIfActive(wxSocketBase *sock); - - - // internal variables: - - wxString m_lastResult; - - // true if there is an FTP transfer going on - bool m_streaming; - - // although this should be set to ASCII by default according to STD9, - // we will use BINARY transfer mode by default for backwards compatibility - TransferMode m_currentTransfermode; - - bool m_bPassive; - - // following is true when a read or write times out, we then assume - // the connection is dead and abort. we avoid additional delays this way - bool m_bEncounteredError; - - - friend class wxInputFTPStream; - friend class wxOutputFTPStream; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxFTP); - DECLARE_PROTOCOL(wxFTP) -}; - -// the trace mask used by assorted wxLogTrace() in ftp code, do -// wxLog::AddTraceMask(FTP_TRACE_MASK) to see them in output -#define FTP_TRACE_MASK wxT("ftp") - -#endif // wxUSE_PROTOCOL_FTP - -#endif // __WX_FTP_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/http.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/http.h deleted file mode 100644 index 90e04486..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/http.h +++ /dev/null @@ -1,96 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/protocol/http.h -// Purpose: HTTP protocol -// Author: Guilhem Lavaux -// Modified by: Simo Virokannas (authentication, Dec 2005) -// Created: August 1997 -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_HTTP_H -#define _WX_HTTP_H - -#include "wx/defs.h" - -#if wxUSE_PROTOCOL_HTTP - -#include "wx/hashmap.h" -#include "wx/protocol/protocol.h" -#include "wx/buffer.h" - -class WXDLLIMPEXP_NET wxHTTP : public wxProtocol -{ -public: - wxHTTP(); - virtual ~wxHTTP(); - - virtual bool Connect(const wxString& host, unsigned short port); - virtual bool Connect(const wxString& host) wxOVERRIDE { return Connect(host, 0); } - virtual bool Connect(const wxSockAddress& addr, bool wait = true) wxOVERRIDE; - bool Abort() wxOVERRIDE; - - wxInputStream *GetInputStream(const wxString& path) wxOVERRIDE; - - wxString GetContentType() const wxOVERRIDE; - wxString GetHeader(const wxString& header) const; - int GetResponse() const { return m_http_response; } - - void SetMethod(const wxString& method) { m_method = method; } - void SetHeader(const wxString& header, const wxString& h_data); - bool SetPostText(const wxString& contentType, - const wxString& data, - const wxMBConv& conv = wxConvUTF8); - bool SetPostBuffer(const wxString& contentType, const wxMemoryBuffer& data); - void SetProxyMode(bool on); - - /* Cookies */ - wxString GetCookie(const wxString& cookie) const; - bool HasCookies() const { return m_cookies.size() > 0; } - - // Use the other SetPostBuffer() overload or SetPostText() instead. - wxDEPRECATED(void SetPostBuffer(const wxString& post_buf)); - -protected: - typedef wxStringToStringHashMap::iterator wxHeaderIterator; - typedef wxStringToStringHashMap::const_iterator wxHeaderConstIterator; - typedef wxStringToStringHashMap::iterator wxCookieIterator; - typedef wxStringToStringHashMap::const_iterator wxCookieConstIterator; - - bool BuildRequest(const wxString& path, const wxString& method); - void SendHeaders(); - bool ParseHeaders(); - - wxString GenerateAuthString(const wxString& user, const wxString& pass) const; - - // find the header in m_headers - wxHeaderIterator FindHeader(const wxString& header); - wxHeaderConstIterator FindHeader(const wxString& header) const; - wxCookieIterator FindCookie(const wxString& cookie); - wxCookieConstIterator FindCookie(const wxString& cookie) const; - - // deletes the header value strings - void ClearHeaders(); - void ClearCookies(); - - // internal variables: - - wxString m_method; - wxStringToStringHashMap m_cookies; - - wxStringToStringHashMap m_headers; - bool m_read, - m_proxy_mode; - wxSockAddress *m_addr; - wxMemoryBuffer m_postBuffer; - wxString m_contentType; - int m_http_response; - - wxDECLARE_DYNAMIC_CLASS(wxHTTP); - DECLARE_PROTOCOL(wxHTTP) - wxDECLARE_NO_COPY_CLASS(wxHTTP); -}; - -#endif // wxUSE_PROTOCOL_HTTP - -#endif // _WX_HTTP_H - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/log.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/log.h deleted file mode 100644 index df373b92..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/log.h +++ /dev/null @@ -1,54 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/protocol/log.h -// Purpose: wxProtocolLog class for logging network exchanges -// Author: Troelsk, Vadim Zeitlin -// Created: 2009-03-06 -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROTOCOL_LOG_H_ -#define _WX_PROTOCOL_LOG_H_ - -#include "wx/string.h" - -// ---------------------------------------------------------------------------- -// wxProtocolLog: simple class for logging network requests and responses -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_NET wxProtocolLog -{ -public: - // Create object doing the logging using wxLogTrace() with the specified - // trace mask. - wxProtocolLog(const wxString& traceMask) - : m_traceMask(traceMask) - { - } - - // Virtual dtor for the base class - virtual ~wxProtocolLog() { } - - // Called by wxProtocol-derived classes to actually log something - virtual void LogRequest(const wxString& str) - { - DoLogString("==> " + str); - } - - virtual void LogResponse(const wxString& str) - { - DoLogString("<== " + str); - } - -protected: - // Can be overridden by the derived classes. - virtual void DoLogString(const wxString& str); - -private: - const wxString m_traceMask; - - wxDECLARE_NO_COPY_CLASS(wxProtocolLog); -}; - -#endif // _WX_PROTOCOL_LOG_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/protocol.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/protocol.h deleted file mode 100644 index 24f3dd77..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/protocol/protocol.h +++ /dev/null @@ -1,177 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/protocol/protocol.h -// Purpose: Protocol base class -// Author: Guilhem Lavaux -// Modified by: -// Created: 10/07/1997 -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROTOCOL_PROTOCOL_H -#define _WX_PROTOCOL_PROTOCOL_H - -#include "wx/defs.h" - -#if wxUSE_PROTOCOL - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/stream.h" - -#if wxUSE_SOCKETS - #include "wx/socket.h" -#endif - -class WXDLLIMPEXP_FWD_NET wxProtocolLog; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -enum wxProtocolError -{ - wxPROTO_NOERR = 0, - wxPROTO_NETERR, - wxPROTO_PROTERR, - wxPROTO_CONNERR, - wxPROTO_INVVAL, - wxPROTO_NOHNDLR, - wxPROTO_NOFILE, - wxPROTO_ABRT, - wxPROTO_RCNCT, - wxPROTO_STREAMING -}; - -// ---------------------------------------------------------------------------- -// wxProtocol: abstract base class for all protocols -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_NET wxProtocol -#if wxUSE_SOCKETS - : public wxSocketClient -#else - : public wxObject -#endif -{ -public: - wxProtocol(); - virtual ~wxProtocol(); - -#if wxUSE_SOCKETS - bool Reconnect(); - virtual bool Connect( const wxString& WXUNUSED(host) ) { return false; } - virtual bool Connect( const wxSockAddress& addr, bool WXUNUSED(wait) = true) wxOVERRIDE - { return wxSocketClient::Connect(addr); } - - // read a '\r\n' terminated line from the given socket and put it in - // result (without the terminators) - static wxProtocolError ReadLine(wxSocketBase *socket, wxString& result); - - // read a line from this socket - this one can be overridden in the - // derived classes if different line termination convention is to be used - virtual wxProtocolError ReadLine(wxString& result); -#endif // wxUSE_SOCKETS - - virtual bool Abort() = 0; - virtual wxInputStream *GetInputStream(const wxString& path) = 0; - virtual wxString GetContentType() const = 0; - - // the error code - virtual wxProtocolError GetError() const { return m_lastError; } - - void SetUser(const wxString& user) { m_username = user; } - void SetPassword(const wxString& passwd) { m_password = passwd; } - - virtual void SetDefaultTimeout(wxUint32 Value); - - // override wxSocketBase::SetTimeout function to avoid that the internal - // m_uiDefaultTimeout goes out-of-sync: - virtual void SetTimeout(long seconds) wxOVERRIDE - { SetDefaultTimeout(seconds); } - - - // logging support: each wxProtocol object may have the associated logger - // (by default there is none) which is used to log network requests and - // responses - - // set the logger, deleting the old one and taking ownership of this one - void SetLog(wxProtocolLog *log); - - // return the current logger, may be NULL - wxProtocolLog *GetLog() const { return m_log; } - - // detach the existing logger without deleting it, the caller is - // responsible for deleting the returned pointer if it's non-NULL - wxProtocolLog *DetachLog() - { - wxProtocolLog * const log = m_log; - m_log = NULL; - return log; - } - - // these functions forward to the same functions with the same names in - // wxProtocolLog if we have a valid logger and do nothing otherwise - void LogRequest(const wxString& str); - void LogResponse(const wxString& str); - -protected: - // the timeout associated with the protocol: - wxUint32 m_uiDefaultTimeout; - - wxString m_username; - wxString m_password; - - // this must be always updated by the derived classes! - wxProtocolError m_lastError; - -private: - wxProtocolLog *m_log; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxProtocol); -}; - -// ---------------------------------------------------------------------------- -// macros for protocol classes -// ---------------------------------------------------------------------------- - -#define DECLARE_PROTOCOL(class) \ -public: \ - static wxProtoInfo g_proto_##class; - -#define IMPLEMENT_PROTOCOL(class, name, serv, host) \ -wxProtoInfo class::g_proto_##class(name, serv, host, wxCLASSINFO(class)); \ -bool wxProtocolUse##class = true; - -#define USE_PROTOCOL(class) \ - extern bool wxProtocolUse##class ; \ - static struct wxProtocolUserFor##class \ - { \ - wxProtocolUserFor##class() { wxProtocolUse##class = true; } \ - } wxProtocolDoUse##class; - -class WXDLLIMPEXP_NET wxProtoInfo : public wxObject -{ -public: - wxProtoInfo(const wxChar *name, - const wxChar *serv_name, - const bool need_host1, - wxClassInfo *info); - -protected: - wxProtoInfo *next; - wxString m_protoname; - wxString prefix; - wxString m_servname; - wxClassInfo *m_cinfo; - bool m_needhost; - - friend class wxURL; - - wxDECLARE_DYNAMIC_CLASS(wxProtoInfo); - wxDECLARE_NO_COPY_CLASS(wxProtoInfo); -}; - -#endif // wxUSE_PROTOCOL - -#endif // _WX_PROTOCOL_PROTOCOL_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ptr_scpd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ptr_scpd.h deleted file mode 100644 index 76d8e421..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ptr_scpd.h +++ /dev/null @@ -1,13 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/ptr_scpd.h -// Purpose: compatibility wrapper for wxScoped{Ptr,Array} -// Author: Vadim Zeitlin -// Created: 2009-02-03 -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// do not include this file in any new code, include either wx/scopedptr.h or -// wx/scopedarray.h (or both) instead -#include "wx/scopedarray.h" -#include "wx/scopedptr.h" diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ptr_shrd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ptr_shrd.h deleted file mode 100644 index 635cfe36..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ptr_shrd.h +++ /dev/null @@ -1,11 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/ptr_shrd.h -// Purpose: compatibility wrapper for wx/sharedptr.h -// Author: Vadim Zeitlin -// Created: 2009-02-03 -// Copyright: (c) 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// do not include this file in any new code, include wx/sharedptr.h instead -#include "wx/sharedptr.h" diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/accel.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/accel.h deleted file mode 100644 index be25cd13..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/accel.h +++ /dev/null @@ -1,60 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/accel.h -// Purpose: wxAcceleratorTable class -// Author: Peter Most, Javier Torres, Mariano Reingart -// Copyright: (c) 2009 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_ACCEL_H_ -#define _WX_QT_ACCEL_H_ - -#include <QtCore/QList> -#include <QtWidgets/QShortcut> - -/* wxQt accelerators implementation: - * - * Storing: - * QShortcuts are stored in wxWindow (m_qtShortcuts) to allow to delete them - * when the accelerator table is changed, and also because we need to specify - * a not-null parent from them, which is unknown at the moment of creating the - * accelerator table. So, the accelerator table only contains a list of - * wxAcceleratorEntries, which are converted to a list of QShortcuts when - * the table is fixed to a wxWindow. - * - * Passing keypresses to accelerators: - * The accelerators are implemented using QShortcut's. As there is no easy way - * to call them, we must pass all keypress events through the QApplication - * notify() function (which is the one that checks if the keypress match any - * shortcut. - * - * Executing commands when a QShortcut is triggered: - * Each QShortcut has a property ("wxQt_Command") set with the number of the - * wx command it is associated to. Then, its activated() signal is connected to - * a small handler (wxQtShortcutHandler in window_qt.h) which calls the main - * handler (wxWindow::QtHandleShortcut) passing the command extracted from the - * QShortcut. This handler will finally create and send the appropriate wx - * event to the window. */ - -class WXDLLIMPEXP_CORE wxAcceleratorTable : public wxObject -{ -public: - wxAcceleratorTable(); - wxAcceleratorTable(int n, const wxAcceleratorEntry entries[]); - - // Implementation - QList< QShortcut* > ConvertShortcutTable( QWidget *parent ) const; - - bool Ok() const { return IsOk(); } - bool IsOk() const; - -protected: - // ref counting code - virtual wxObjectRefData *CreateRefData() const; - virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const; - -private: - wxDECLARE_DYNAMIC_CLASS(wxAcceleratorTable); -}; - -#endif // _WX_QT_ACCEL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/anybutton.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/anybutton.h deleted file mode 100644 index 975ffae6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/anybutton.h +++ /dev/null @@ -1,47 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/anybutton.h -// Purpose: wxQT wxAnyButton class declaration -// Author: Mariano Reingart -// Copyright: (c) 2014 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_ANYBUTTON_H_ -#define _WX_QT_ANYBUTTON_H_ - -#include <QtWidgets/QPushButton> - -//----------------------------------------------------------------------------- -// wxAnyButton -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxAnyButton : public wxAnyButtonBase -{ -public: - wxAnyButton() - { - } - - // implementation - // -------------- - - virtual void SetLabel( const wxString &label ); - virtual void DoSetBitmap(const wxBitmap& bitmap, State which); - - virtual QPushButton *GetHandle() const; - -protected: - - QPushButton *m_qtPushButton; - - void QtCreate(wxWindow *parent); - void QtSetBitmap( const wxBitmap &bitmap ); - -private: - typedef wxAnyButtonBase base_type; - - wxDECLARE_NO_COPY_CLASS(wxAnyButton); -}; - - -#endif // _WX_QT_ANYBUTTON_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/app.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/app.h deleted file mode 100644 index 55cee837..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/app.h +++ /dev/null @@ -1,30 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.h -// Purpose: wxApp class -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2009 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_APP_H_ -#define _WX_QT_APP_H_ - -#include <QtWidgets/QApplication> - -class WXDLLIMPEXP_CORE wxApp : public wxAppBase -{ -public: - wxApp(); - ~wxApp(); - - virtual bool Initialize(int& argc, wxChar **argv); - -private: - QApplication *m_qtApplication; - int m_qtArgc; - char **m_qtArgv; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY( wxApp ); -}; - -#endif // _WX_QT_APP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/bitmap.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/bitmap.h deleted file mode 100644 index b804551b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/bitmap.h +++ /dev/null @@ -1,127 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/bitmap.h -// Author: Peter Most, Javier Torres, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_BITMAP_H_ -#define _WX_QT_BITMAP_H_ - -class WXDLLIMPEXP_FWD_CORE wxPixelDataBase; - -class WXDLLIMPEXP_FWD_CORE wxImage; -class WXDLLIMPEXP_FWD_CORE wxCursor; -class QImage; - -class QPixmap; -class QBitmap; - -class WXDLLIMPEXP_CORE wxBitmap : public wxBitmapBase -{ -public: - wxBitmap(); - wxBitmap(QPixmap pix); - wxBitmap(const wxBitmap& bmp); - wxBitmap(const char bits[], int width, int height, int depth = 1); - wxBitmap(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH); - wxBitmap(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH); - wxBitmap(const char* const* bits); - wxBitmap(const wxString &filename, wxBitmapType type = wxBITMAP_TYPE_XPM); - wxBitmap(const wxImage& image, int depth = wxBITMAP_SCREEN_DEPTH, double scale = 1.0); - - // Convert from wxIcon / wxCursor - wxBitmap(const wxIcon& icon) { CopyFromIcon(icon); } - wxEXPLICIT wxBitmap(const wxCursor& cursor); - - static void InitStandardHandlers(); - - virtual bool Create(int width, int height, int depth = wxBITMAP_SCREEN_DEPTH); - virtual bool Create(const wxSize& sz, int depth = wxBITMAP_SCREEN_DEPTH); - virtual bool Create(int width, int height, const wxDC& WXUNUSED(dc)); - - virtual int GetHeight() const; - virtual int GetWidth() const; - virtual int GetDepth() const; - -#if wxUSE_IMAGE - virtual wxImage ConvertToImage() const; -#endif // wxUSE_IMAGE - - virtual wxMask *GetMask() const; - virtual void SetMask(wxMask *mask); - - virtual wxBitmap GetSubBitmap(const wxRect& rect) const; - - virtual bool SaveFile(const wxString &name, wxBitmapType type, - const wxPalette *palette = NULL) const; - virtual bool LoadFile(const wxString &name, wxBitmapType type = wxBITMAP_DEFAULT_TYPE); - -#if wxUSE_PALETTE - virtual wxPalette *GetPalette() const; - virtual void SetPalette(const wxPalette& palette); -#endif // wxUSE_PALETTE - - // copies the contents and mask of the given (colour) icon to the bitmap - virtual bool CopyFromIcon(const wxIcon& icon); - - // implementation: - virtual void SetHeight(int height); - virtual void SetWidth(int width); - virtual void SetDepth(int depth); - - void *GetRawData(wxPixelDataBase& data, int bpp); - void UngetRawData(wxPixelDataBase& data); - - // these functions are internal and shouldn't be used, they risk to - // disappear in the future - bool HasAlpha() const; - - QPixmap *GetHandle() const; - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - - wxDECLARE_DYNAMIC_CLASS(wxBitmap); -}; - -class WXDLLIMPEXP_CORE wxMask : public wxObject -{ -public: - wxMask(); - - // Copy constructor - wxMask(const wxMask &mask); - - // Construct a mask from a bitmap and a colour indicating the transparent - // area - wxMask(const wxBitmap& bitmap, const wxColour& colour); - - // Construct a mask from a bitmap and a palette index indicating the - // transparent area - wxMask(const wxBitmap& bitmap, int paletteIndex); - - // Construct a mask from a mono bitmap (copies the bitmap). - wxMask(const wxBitmap& bitmap); - - - virtual ~wxMask(); - - bool Create(const wxBitmap& bitmap, const wxColour& colour); - bool Create(const wxBitmap& bitmap, int paletteIndex); - bool Create(const wxBitmap& bitmap); - - wxBitmap GetBitmap() const; - - // Implementation - QBitmap *GetHandle() const; - -protected: - wxDECLARE_DYNAMIC_CLASS(wxMask); - -private: - QBitmap *m_qtBitmap; -}; - -#endif // _WX_QT_BITMAP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/bmpbuttn.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/bmpbuttn.h deleted file mode 100644 index 85f5afde..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/bmpbuttn.h +++ /dev/null @@ -1,40 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/bmpbuttn.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_BMPBUTTN_H_ -#define _WX_QT_BMPBUTTN_H_ - -class WXDLLIMPEXP_CORE wxBitmapButton : public wxBitmapButtonBase -{ -public: - wxBitmapButton(); - - wxBitmapButton(wxWindow *parent, - wxWindowID id, - const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); -protected: - wxDECLARE_DYNAMIC_CLASS(wxBitmapButton); - -private: - // We re-use wxButton -}; - -#endif // _WX_QT_BMPBUTTN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/brush.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/brush.h deleted file mode 100644 index a3f0fd0e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/brush.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/brush.h -// Author: Peter Most, Javier Torres, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_BRUSH_H_ -#define _WX_QT_BRUSH_H_ - -#include <QtCore/Qt> - -class QBrush; - -class WXDLLIMPEXP_CORE wxBrush : public wxBrushBase -{ -public: - wxBrush(); - wxBrush(const wxColour& col, wxBrushStyle style = wxBRUSHSTYLE_SOLID); - - wxDEPRECATED_MSG("use wxBRUSHSTYLE_XXX constants") - wxBrush(const wxColour& col, int style); - - wxBrush(const wxBitmap& stipple); - - virtual void SetColour(const wxColour& col); - virtual void SetColour(unsigned char r, unsigned char g, unsigned char b); - virtual void SetStyle(wxBrushStyle style); - virtual void SetStipple(const wxBitmap& stipple); - - bool operator==(const wxBrush& brush) const; - bool operator!=(const wxBrush& brush) const { return !(*this == brush); } - - virtual wxColour GetColour() const; - virtual wxBrushStyle GetStyle() const; - virtual wxBitmap *GetStipple() const; - - wxDEPRECATED_MSG("use wxBRUSHSTYLE_XXX constants") - void SetStyle(int style) { SetStyle((wxBrushStyle)style); } - - QBrush GetHandle() const; - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; -}; - -#endif // _WX_QT_BRUSH_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/button.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/button.h deleted file mode 100644 index 0bbce110..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/button.h +++ /dev/null @@ -1,39 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/button.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_BUTTON_H_ -#define _WX_QT_BUTTON_H_ - -#include "wx/control.h" -#include "wx/button.h" - -class WXDLLIMPEXP_CORE wxButton : public wxButtonBase -{ -public: - wxButton(); - wxButton(wxWindow *parent, wxWindowID id, - const wxString& label = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - virtual wxWindow *SetDefault(); - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxButton); -}; - - -#endif // _WX_QT_BUTTON_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/calctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/calctrl.h deleted file mode 100644 index cf40ccc0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/calctrl.h +++ /dev/null @@ -1,94 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/calctrl.h -// Purpose: wxCalendarCtrl control implementation for wxQt -// Author: Kolya Kosenko -// Created: 2010-05-12 -// Copyright: (c) 2010 Kolya Kosenko -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_CALCTRL_H_ -#define _WX_QT_CALCTRL_H_ - -#include "wx/calctrl.h" -#include <QtWidgets/QCalendarWidget> - -class WXDLLIMPEXP_ADV wxCalendarCtrl : public wxCalendarCtrlBase -{ -public: - wxCalendarCtrl() { Init(); } - wxCalendarCtrl(wxWindow *parent, - wxWindowID id, - const wxDateTime& date = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCAL_SHOW_HOLIDAYS, - const wxString& name = wxCalendarNameStr) - { - Init(); - Create(parent, id, date, pos, size, style, name); - } - - virtual ~wxCalendarCtrl(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxDateTime& date = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCAL_SHOW_HOLIDAYS, - const wxString& name = wxCalendarNameStr); - - virtual bool SetDate(const wxDateTime& date); - virtual wxDateTime GetDate() const; - - virtual bool SetDateRange(const wxDateTime& lowerdate = wxDefaultDateTime, - const wxDateTime& upperdate = wxDefaultDateTime); - virtual bool GetDateRange(wxDateTime *lowerdate, wxDateTime *upperdate) const; - - virtual bool EnableMonthChange(bool enable = true); - virtual void Mark(size_t day, bool mark); - - // holidays colours - virtual void SetHoliday(size_t day); - virtual void SetHolidayColours(const wxColour& colFg, const wxColour& colBg); - virtual const wxColour& GetHolidayColourFg() const { return m_colHolidayFg; } - virtual const wxColour& GetHolidayColourBg() const { return m_colHolidayBg; } - - // header colours - virtual void SetHeaderColours(const wxColour& colFg, const wxColour& colBg); - virtual const wxColour& GetHeaderColourFg() const { return m_colHeaderFg; } - virtual const wxColour& GetHeaderColourBg() const { return m_colHeaderBg; } - - // day attributes - virtual wxCalendarDateAttr *GetAttr(size_t day) const; - virtual void SetAttr(size_t day, wxCalendarDateAttr *attr); - virtual void ResetAttr(size_t day) { SetAttr(day, NULL); } - - - virtual void SetWindowStyleFlag(long style); - - using wxCalendarCtrlBase::GenerateAllChangeEvents; - - virtual QCalendarWidget *GetHandle() const; - -protected: - virtual void RefreshHolidays(); - -private: - void Init(); - void UpdateStyle(); - - QCalendarWidget *m_qtCalendar; - wxColour m_colHeaderFg, - m_colHeaderBg, - m_colHolidayFg, - m_colHolidayBg; - - wxCalendarDateAttr *m_attrs[31]; - - - wxDECLARE_DYNAMIC_CLASS(wxCalendarCtrl); -}; - -#endif // _WX_QT_CALCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/checkbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/checkbox.h deleted file mode 100644 index adf2c2ac..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/checkbox.h +++ /dev/null @@ -1,47 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/checkbox.h -// Author: Peter Most, Sean D'Epagnier, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_CHECKBOX_H_ -#define _WX_QT_CHECKBOX_H_ - -#include <QtWidgets/QCheckBox> - -class WXDLLIMPEXP_CORE wxCheckBox : public wxCheckBoxBase -{ -public: - wxCheckBox(); - wxCheckBox( wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr ); - - virtual void SetValue(bool value); - virtual bool GetValue() const; - - virtual QCheckBox *GetHandle() const; - -protected: - virtual void DoSet3StateValue(wxCheckBoxState state); - virtual wxCheckBoxState DoGet3StateValue() const; - -private: - QCheckBox *m_qtCheckBox; - - wxDECLARE_DYNAMIC_CLASS(wxCheckBox); -}; - -#endif // _WX_QT_CHECKBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/checklst.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/checklst.h deleted file mode 100644 index 93d9c09a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/checklst.h +++ /dev/null @@ -1,58 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/checklst.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_CHECKLST_H_ -#define _WX_QT_CHECKLST_H_ - -class WXDLLIMPEXP_CORE wxCheckListBox : public wxCheckListBoxBase -{ -public: - wxCheckListBox(); - wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int nStrings = 0, - const wxString *choices = (const wxString *)NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - - virtual ~wxCheckListBox(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - virtual bool IsChecked(unsigned int item) const; - virtual void Check(unsigned int item, bool check = true); - -private: - virtual void Init(); //common construction - - wxDECLARE_DYNAMIC_CLASS(wxCheckListBox); -}; - -#endif // _WX_QT_CHECKLST_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/choice.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/choice.h deleted file mode 100644 index 8ab18118..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/choice.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/choice.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_CHOICE_H_ -#define _WX_QT_CHOICE_H_ - -#include <QtWidgets/QComboBox> - -class WXDLLIMPEXP_CORE wxChoice : public wxChoiceBase -{ -public: - wxChoice(); - - wxChoice( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr ); - - wxChoice( wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr ); - - bool Create( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr ); - - bool Create( wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr ); - - virtual wxSize DoGetBestSize() const; - - virtual unsigned int GetCount() const; - virtual wxString GetString(unsigned int n) const; - virtual void SetString(unsigned int n, const wxString& s); - - virtual void SetSelection(int n); - virtual int GetSelection() const; - - virtual QComboBox *GetHandle() const; - -protected: - virtual int DoInsertItems(const wxArrayStringsAdapter & items, - unsigned int pos, - void **clientData, - wxClientDataType type); - virtual int DoInsertOneItem(const wxString& item, unsigned int pos); - - virtual void DoSetItemClientData(unsigned int n, void *clientData); - virtual void *DoGetItemClientData(unsigned int n) const; - - virtual void DoClear(); - virtual void DoDeleteOneItem(unsigned int pos); - - QComboBox *m_qtComboBox; - -private: - - wxDECLARE_DYNAMIC_CLASS(wxChoice); -}; - -#endif // _WX_QT_CHOICE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/clipbrd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/clipbrd.h deleted file mode 100644 index 1a0cb22b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/clipbrd.h +++ /dev/null @@ -1,44 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/toolbar.h -// Author: Sean D'Epagnier -// Copyright: (c) Sean D'Epagnier 2014 -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_CLIPBRD_H_ -#define _WX_QT_CLIPBRD_H_ - -#include "wx/weakref.h" - -class QtClipBoardSignalHandler; - -class WXDLLIMPEXP_CORE wxClipboard : public wxClipboardBase -{ -public: - wxClipboard(); - ~wxClipboard(); - - virtual bool Open(); - virtual void Close(); - virtual bool IsOpened() const; - - virtual bool AddData( wxDataObject *data ); - virtual bool SetData( wxDataObject *data ); - virtual bool GetData( wxDataObject& data ); - virtual void Clear(); - virtual bool IsSupported( const wxDataFormat& format ); - virtual bool IsSupportedAsync(wxEvtHandler *sink); - -private: - friend class QtClipBoardSignalHandler; - int Mode(); - - QtClipBoardSignalHandler *m_SignalHandler; - wxEvtHandlerRef m_sink; - - bool m_open; - - wxDECLARE_DYNAMIC_CLASS(wxClipboard); -}; - -#endif // _WX_QT_CLIPBRD_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/clrpicker.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/clrpicker.h deleted file mode 100644 index 0ba5f0ea..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/clrpicker.h +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/clrpicker.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_CLRPICKER_H_ -#define _WX_QT_CLRPICKER_H_ - -#include "wx/generic/clrpickerg.h" - -// TODO: A QtColorPicker is available from -// http://qt.nokia.com/products/appdev/add-on-products/catalog/4/Widgets/qtcolorpicker/ -// How to integrate into wxWidgets: -// -// class WXDLLIMPEXP_CORE wxColourPickerWidget : public wxButton, public wxColourPickerWidgetBase - -// TODO: For now we reuse the existing wxGenericColourButton but this should be -// changed to use the above mentioned color picker. - -class WXDLLIMPEXP_CORE wxColourPickerWidget : public wxGenericColourButton -{ -public: - wxColourPickerWidget(); - wxColourPickerWidget(wxWindow *parent, - wxWindowID id, - const wxColour& initial = *wxBLACK, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCLRBTN_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxColourPickerWidgetNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxColour& initial = *wxBLACK, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCLRBTN_DEFAULT_STYLE, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxColourPickerWidgetNameStr); - -protected: - virtual void UpdateColour(); - -private: -}; - -#endif // _WX_QT_CLRPICKER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/colordlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/colordlg.h deleted file mode 100644 index 3e65349d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/colordlg.h +++ /dev/null @@ -1,33 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/colordlg.h -// Author: Sean D'Epagnier -// Copyright: (c) Sean D'Epagnier 2014 -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_COLORDLG_H_ -#define _WX_QT_COLORDLG_H_ - -#include "wx/dialog.h" - -#include <QtWidgets/QColorDialog> - -class WXDLLIMPEXP_CORE wxColourDialog : public wxDialog -{ -public: - wxColourDialog() { } - wxColourDialog(wxWindow *parent, - wxColourData *data = NULL) { Create(parent, data); } - - bool Create(wxWindow *parent, wxColourData *data = NULL); - - wxColourData &GetColourData(); - - QColorDialog *GetHandle() const { return static_cast<QColorDialog *>(m_qtWindow); } - -private: - - wxColourData m_data; -}; - -#endif // _WX_QT_COLORDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/colour.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/colour.h deleted file mode 100644 index 86292171..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/colour.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/colour.h -// Purpose: wxColour class implementation for wxQt -// Author: Kolya Kosenko -// Created: 2010-05-12 -// Copyright: (c) 2010 Kolya Kosenko -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_COLOUR_H_ -#define _WX_QT_COLOUR_H_ - -#include <QtGui/QColor> - -class WXDLLIMPEXP_CORE wxColour : public wxColourBase -{ -public: - DEFINE_STD_WXCOLOUR_CONSTRUCTORS - wxColour(const QColor& color) : m_qtColor(color) {} - - virtual bool IsOk() const { return m_qtColor.isValid(); } - - unsigned char Red() const { return m_qtColor.red(); } - unsigned char Green() const { return m_qtColor.green(); } - unsigned char Blue() const { return m_qtColor.blue(); } - unsigned char Alpha() const { return m_qtColor.alpha(); } - - bool operator==(const wxColour& color) const - { return m_qtColor == color.m_qtColor; } - bool operator!=(const wxColour& color) const - { return m_qtColor != color.m_qtColor; } - - int GetPixel() const; - - QColor GetHandle() const { return m_qtColor; }; - -protected: - virtual void - InitRGBA(ChannelType r, ChannelType g, ChannelType b, ChannelType a) - { m_qtColor.setRgb(r, g, b, a); } - -private: - QColor m_qtColor; - - wxDECLARE_DYNAMIC_CLASS(wxColour); -}; - -#endif // _WX_QT_COLOUR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/combobox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/combobox.h deleted file mode 100644 index 3b0169f9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/combobox.h +++ /dev/null @@ -1,92 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/combobox.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_COMBOBOX_H_ -#define _WX_QT_COMBOBOX_H_ - -#include "wx/choice.h" -#include <QtWidgets/QComboBox> - -class WXDLLIMPEXP_CORE wxComboBox : public wxChoice, public wxTextEntry -{ -public: - wxComboBox(); - - wxComboBox(wxWindow *parent, - wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - wxComboBox(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - virtual void SetSelection(int n) { wxChoice::SetSelection(n); } - virtual void SetSelection(long from, long to); - - virtual int GetSelection() const { return wxChoice::GetSelection(); } - virtual void GetSelection(long *from, long *to) const; - - virtual wxString GetStringSelection() const - { - return wxItemContainer::GetStringSelection(); - } - - virtual void Clear() - { - wxTextEntry::Clear(); - wxItemContainer::Clear(); - } - - // See wxComboBoxBase discussion of IsEmpty(). - bool IsListEmpty() const { return wxItemContainer::IsEmpty(); } - bool IsTextEmpty() const { return wxTextEntry::IsEmpty(); } - - virtual void Popup(); - virtual void Dismiss(); - -protected: - - // From wxTextEntry: - virtual wxString DoGetValue() const; - -private: - - // From wxTextEntry: - virtual wxWindow *GetEditableWindow() wxOVERRIDE { return this; } - - wxDECLARE_DYNAMIC_CLASS(wxComboBox); -}; - -#endif // _WX_QT_COMBOBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/control.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/control.h deleted file mode 100644 index be112cd0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/control.h +++ /dev/null @@ -1,38 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/control.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_CONTROL_H_ -#define _WX_QT_CONTROL_H_ - -class WXDLLIMPEXP_CORE wxControl : public wxControlBase -{ -public: - wxControl(); - wxControl(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxControlNameStr); - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxControlNameStr); - - virtual wxSize DoGetBestSize() const; - -protected: - bool QtCreateControl( wxWindow *parent, wxWindowID id, const wxPoint &pos, - const wxSize &size, long style, const wxValidator &validator, - const wxString &name ); - -private: - wxDECLARE_DYNAMIC_CLASS(wxControl); -}; - -#endif // _WX_QT_CONTROL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/ctrlsub.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/ctrlsub.h deleted file mode 100644 index f021fa49..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/ctrlsub.h +++ /dev/null @@ -1,22 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/ctrlsub.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_CTRLSUB_H_ -#define _WX_QT_CTRLSUB_H_ - -class WXDLLIMPEXP_CORE wxControlWithItems : public wxControlWithItemsBase -{ -public: - wxControlWithItems(); - -protected: - -private: - wxDECLARE_ABSTRACT_CLASS(wxControlWithItems); -}; - -#endif // _WX_QT_CTRLSUB_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/cursor.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/cursor.h deleted file mode 100644 index 0db34020..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/cursor.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.h -// Author: Sean D'Epagnier -// Copyright: (c) Sean D'Epagnier 2014 -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_CURSOR_H_ -#define _WX_QT_CURSOR_H_ - -#include "wx/image.h" - -#include <QtGui/QCursor> - -class WXDLLIMPEXP_CORE wxCursor : public wxCursorBase -{ -public: - wxCursor() { } - wxCursor( const wxCursor & ); - wxCursor(wxStockCursor id) { InitFromStock(id); } -#if WXWIN_COMPATIBILITY_2_8 - wxCursor(int id) { InitFromStock((wxStockCursor)id); } -#endif -#if wxUSE_IMAGE - wxCursor( const wxImage & image ); - wxCursor(const wxString& name, - wxBitmapType type = wxCURSOR_DEFAULT_TYPE, - int hotSpotX = 0, int hotSpotY = 0); -#endif - - QCursor m_qtCursor; - -protected: - void InitFromStock( wxStockCursor cursorId ); -#if wxUSE_IMAGE - void InitFromImage( const wxImage & image ); -#endif - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - - wxDECLARE_DYNAMIC_CLASS(wxCursor); -}; - -#endif // _WX_QT_CURSOR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataform.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataform.h deleted file mode 100644 index 612903a8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataform.h +++ /dev/null @@ -1,39 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/toolbar.h -// Author: Sean D'Epagnier -// Copyright: (c) Sean D'Epagnier 2014 -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_DATAFORM_H_ -#define _WX_QT_DATAFORM_H_ - -class WXDLLIMPEXP_CORE wxDataFormat -{ -public: - wxDataFormat(); - wxDataFormat( wxDataFormatId formatId ); - wxDataFormat(const wxString &id); - wxDataFormat(const QString &id); - wxDataFormat(const wxChar *id); - - void SetId( const wxChar *id ); - - bool operator==(wxDataFormatId format) const; - bool operator!=(wxDataFormatId format) const; - bool operator==(const wxDataFormat& format) const; - bool operator!=(const wxDataFormat& format) const; - - // string ids are used for custom types - this SetId() must be used for - // application-specific formats - wxString GetId() const; - void SetId( const wxString& id ); - - // implementation - wxDataFormatId GetType() const; - void SetType( wxDataFormatId type ); - - QString m_MimeType; -}; - -#endif // _WX_QT_DATAFORM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataobj.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataobj.h deleted file mode 100644 index 8ccc1908..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataobj.h +++ /dev/null @@ -1,30 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: src/qt/dataobj.cpp -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_DATAOBJ_H_ -#define _WX_QT_DATAOBJ_H_ - -#include <QMimeData> - -class WXDLLIMPEXP_CORE wxDataObject : public wxDataObjectBase -{ -public: - wxDataObject() {} - - virtual bool IsSupportedFormat(const wxDataFormat& format, Direction dir) const; - virtual wxDataFormat GetPreferredFormat(Direction dir = Get) const; - virtual size_t GetFormatCount(Direction dir = Get) const; - virtual void GetAllFormats(wxDataFormat *formats, Direction dir = Get) const; - virtual size_t GetDataSize(const wxDataFormat& format) const; - virtual bool GetDataHere(const wxDataFormat& format, void *buf) const; - virtual bool SetData(const wxDataFormat& format, size_t len, const void * buf); - -private: - QMimeData m_qtMimeData; // to handle formats that have no helper classes -}; - -#endif // _WX_QT_DATAOBJ_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataobj2.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataobj2.h deleted file mode 100644 index 26536b27..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataobj2.h +++ /dev/null @@ -1,32 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/dataobj2.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_DATAOBJ2_H_ -#define _WX_QT_DATAOBJ2_H_ - -class WXDLLIMPEXP_CORE wxBitmapDataObject : public wxBitmapDataObjectBase -{ -public: - wxBitmapDataObject(); - wxBitmapDataObject(const wxBitmap& bitmap); - -protected: - -private: -}; - - - -class WXDLLIMPEXP_CORE wxFileDataObject : public wxFileDataObjectBase -{ -public: - wxFileDataObject(); - - void AddFile( const wxString &filename ); -}; - -#endif // _WX_QT_DATAOBJ2_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataview.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataview.h deleted file mode 100644 index e53695fc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dataview.h +++ /dev/null @@ -1,141 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/dataview.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_DATAVIEW_H_ -#define _WX_QT_DATAVIEW_H_ - -class WXDLLIMPEXP_ADV wxDataViewColumn: public wxDataViewColumnBase -{ -public: - wxDataViewColumn( const wxString &title, wxDataViewRenderer *renderer, - unsigned int model_column, int width = wxDVC_DEFAULT_WIDTH, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE ); - wxDataViewColumn( const wxBitmap &bitmap, wxDataViewRenderer *renderer, - unsigned int model_column, int width = wxDVC_DEFAULT_WIDTH, - wxAlignment align = wxALIGN_CENTER, - int flags = wxDATAVIEW_COL_RESIZABLE ); - - - // setters: - - virtual void SetTitle( const wxString &title ); - virtual void SetBitmap( const wxBitmap &bitmap ); - - virtual void SetOwner( wxDataViewCtrl *owner ); - - virtual void SetAlignment( wxAlignment align ); - - virtual void SetSortable( bool sortable ); - virtual void SetSortOrder( bool ascending ); - virtual void SetAsSortKey(bool sort = true); - - virtual void SetResizeable( bool resizeable ); - virtual void SetHidden( bool hidden ); - - virtual void SetMinWidth( int minWidth ); - virtual void SetWidth( int width ); - - virtual void SetReorderable( bool reorderable ); - - virtual void SetFlags(int flags); - - // getters: - - virtual wxString GetTitle() const; - virtual wxAlignment GetAlignment() const; - - virtual bool IsSortable() const; - virtual bool IsSortOrderAscending() const; - virtual bool IsSortKey() const; - - virtual bool IsResizeable() const; - virtual bool IsHidden() const; - - virtual int GetWidth() const; - virtual int GetMinWidth() const; - - virtual bool IsReorderable() const; - - virtual int GetFlags() const; - -}; - - -class WXDLLIMPEXP_ADV wxDataViewCtrl: public wxDataViewCtrlBase -{ -public: - wxDataViewCtrl(); - - wxDataViewCtrl( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator ); - - virtual ~wxDataViewCtrl(); - - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator ); - - virtual bool AssociateModel( wxDataViewModel *model ); - - virtual bool PrependColumn( wxDataViewColumn *col ); - virtual bool AppendColumn( wxDataViewColumn *col ); - virtual bool InsertColumn( unsigned int pos, wxDataViewColumn *col ); - - virtual unsigned int GetColumnCount() const; - virtual wxDataViewColumn* GetColumn( unsigned int pos ) const; - virtual bool DeleteColumn( wxDataViewColumn *column ); - virtual bool ClearColumns(); - virtual int GetColumnPosition( const wxDataViewColumn *column ) const; - - virtual wxDataViewColumn *GetSortingColumn() const; - - virtual wxDataViewItem GetSelection() const; - virtual int GetSelections( wxDataViewItemArray & sel ) const; - virtual void SetSelections( const wxDataViewItemArray & sel ); - virtual void Select( const wxDataViewItem & item ); - virtual void Unselect( const wxDataViewItem & item ); - virtual bool IsSelected( const wxDataViewItem & item ) const; - virtual void SelectAll(); - virtual void UnselectAll(); - - virtual void EnsureVisible( const wxDataViewItem& item, - const wxDataViewColumn *column = NULL ); - virtual void HitTest( const wxPoint &point, - wxDataViewItem &item, - wxDataViewColumn *&column ) const; - virtual wxRect GetItemRect( const wxDataViewItem &item, - const wxDataViewColumn *column = NULL ) const; - - virtual void Expand( const wxDataViewItem & item ); - virtual void Collapse( const wxDataViewItem & item ); - virtual bool IsExpanded( const wxDataViewItem & item ) const; - - virtual bool EnableDragSource( const wxDataFormat &format ); - virtual bool EnableDropTarget( const wxDataFormat &format ); - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); - - wxWindow *GetMainWindow() { return (wxWindow*) this; } - - virtual void OnInternalIdle(); - -protected: - virtual void DoSetExpanderColumn(); - virtual void DoSetIndent(); - -private: - virtual wxDataViewItem DoGetCurrentItem() const; - virtual void DoSetCurrentItem(const wxDataViewItem& item); -}; - -#endif // _WX_QT_DATAVIEW_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dc.h deleted file mode 100644 index adb0fac3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dc.h +++ /dev/null @@ -1,134 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/dc.h -// Author: Peter Most, Javier Torres, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_DC_H_ -#define _WX_QT_DC_H_ - -#include <QtGui/QPainter> - -class QImage; - -class WXDLLIMPEXP_FWD_CORE wxRegion; - -class WXDLLIMPEXP_CORE wxQtDCImpl : public wxDCImpl -{ -public: - wxQtDCImpl( wxDC *owner ); - ~wxQtDCImpl(); - - virtual bool CanDrawBitmap() const; - virtual bool CanGetTextExtent() const; - - virtual void DoGetSize(int *width, int *height) const; - virtual void DoGetSizeMM(int* width, int* height) const; - - virtual int GetDepth() const; - virtual wxSize GetPPI() const; - - virtual void SetFont(const wxFont& font); - virtual void SetPen(const wxPen& pen); - virtual void SetBrush(const wxBrush& brush); - virtual void SetBackground(const wxBrush& brush); - virtual void SetBackgroundMode(int mode); - -#if wxUSE_PALETTE - virtual void SetPalette(const wxPalette& palette); -#endif // wxUSE_PALETTE - - virtual void SetLogicalFunction(wxRasterOperationMode function); - - virtual wxCoord GetCharHeight() const; - virtual wxCoord GetCharWidth() const; - virtual void DoGetTextExtent(const wxString& string, - wxCoord *x, wxCoord *y, - wxCoord *descent = NULL, - wxCoord *externalLeading = NULL, - const wxFont *theFont = NULL) const; - - virtual void Clear(); - - virtual void DoSetClippingRegion(wxCoord x, wxCoord y, - wxCoord width, wxCoord height); - - virtual void DoSetDeviceClippingRegion(const wxRegion& region); - virtual void DestroyClippingRegion(); - - virtual bool DoFloodFill(wxCoord x, wxCoord y, const wxColour& col, - wxFloodFillStyle style = wxFLOOD_SURFACE); - virtual bool DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const; - - virtual void DoDrawPoint(wxCoord x, wxCoord y); - virtual void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2); - - virtual void DoDrawArc(wxCoord x1, wxCoord y1, - wxCoord x2, wxCoord y2, - wxCoord xc, wxCoord yc); - - virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h, - double sa, double ea); - - virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height); - virtual void DoDrawRoundedRectangle(wxCoord x, wxCoord y, - wxCoord width, wxCoord height, - double radius); - virtual void DoDrawEllipse(wxCoord x, wxCoord y, - wxCoord width, wxCoord height); - - virtual void DoCrossHair(wxCoord x, wxCoord y); - - virtual void DoDrawIcon(const wxIcon& icon, wxCoord x, wxCoord y); - virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y, - bool useMask = false); - - virtual void DoDrawText(const wxString& text, wxCoord x, wxCoord y); - virtual void DoDrawRotatedText(const wxString& text, - wxCoord x, wxCoord y, double angle); - - virtual bool DoBlit(wxCoord xdest, wxCoord ydest, - wxCoord width, wxCoord height, - wxDC *source, - wxCoord xsrc, wxCoord ysrc, - wxRasterOperationMode rop = wxCOPY, - bool useMask = false, - wxCoord xsrcMask = wxDefaultCoord, - wxCoord ysrcMask = wxDefaultCoord); - - virtual void DoDrawLines(int n, const wxPoint points[], - wxCoord xoffset, wxCoord yoffset ); - - virtual void DoDrawPolygon(int n, const wxPoint points[], - wxCoord xoffset, wxCoord yoffset, - wxPolygonFillMode fillStyle = wxODDEVEN_RULE); - - // Use Qt transformations, as they automatically scale pen widths, text... - virtual void ComputeScaleAndOrigin(); - - void QtPreparePainter(); - - virtual void* GetHandle() const { return (void*) m_qtPainter; } - -protected: - QPainter *m_qtPainter; - QImage *m_qtImage; - - wxRegion *m_clippingRegion; -private: - enum wxQtRasterColourOp - { - wxQtNONE, - wxQtWHITE, - wxQtBLACK, - wxQtINVERT - }; - wxQtRasterColourOp m_rasterColourOp; - QColor m_qtPenColor; - QColor m_qtBrushColor; - void ApplyRasterColourOp(); - -}; - -#endif // _WX_QT_DC_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcclient.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcclient.h deleted file mode 100644 index 12f92202..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcclient.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/dcclient.h -// Author: Peter Most, Javier Torres, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_DCCLIENT_H_ -#define _WX_QT_DCCLIENT_H_ - -#include "wx/qt/dc.h" - -class WXDLLIMPEXP_CORE wxWindowDCImpl : public wxQtDCImpl -{ -public: - wxWindowDCImpl( wxDC *owner ); - wxWindowDCImpl( wxDC *owner, wxWindow *win ); - - ~wxWindowDCImpl(); - -protected: - wxWindow *m_window; - -private: - -}; - - -class WXDLLIMPEXP_CORE wxClientDCImpl : public wxWindowDCImpl -{ -public: - wxClientDCImpl( wxDC *owner ); - wxClientDCImpl( wxDC *owner, wxWindow *win ); - - ~wxClientDCImpl(); -}; - - -class WXDLLIMPEXP_CORE wxPaintDCImpl : public wxWindowDCImpl -{ -public: - wxPaintDCImpl( wxDC *owner ); - wxPaintDCImpl( wxDC *owner, wxWindow *win ); -}; - -#endif // _WX_QT_DCCLIENT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcmemory.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcmemory.h deleted file mode 100644 index e9306f4f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcmemory.h +++ /dev/null @@ -1,32 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/dcmemory.h -// Author: Peter Most, Javier Torres, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_DCMEMORY_H_ -#define _WX_QT_DCMEMORY_H_ - -#include "wx/qt/dcclient.h" - -class WXDLLIMPEXP_CORE wxMemoryDCImpl : public wxQtDCImpl -{ -public: - wxMemoryDCImpl( wxMemoryDC *owner ); - wxMemoryDCImpl( wxMemoryDC *owner, wxBitmap& bitmap ); - wxMemoryDCImpl( wxMemoryDC *owner, wxDC *dc ); - ~wxMemoryDCImpl(); - - virtual void DoSelect(const wxBitmap& bitmap); - - virtual const wxBitmap& GetSelectedBitmap() const; - virtual wxBitmap& GetSelectedBitmap(); - -protected: - -private: - wxBitmap m_selected; -}; - -#endif // _WX_QT_DCMEMORY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcprint.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcprint.h deleted file mode 100644 index 3c567eef..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcprint.h +++ /dev/null @@ -1,106 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/dcprint.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_DCPRINT_H_ -#define _WX_QT_DCPRINT_H_ - -#include "wx/dc.h" - -class WXDLLIMPEXP_CORE wxPrinterDCImpl : public wxDCImpl -{ -public: - wxPrinterDCImpl( wxPrinterDC *, const wxPrintData & ); - - virtual bool CanDrawBitmap() const; - virtual bool CanGetTextExtent() const; - - virtual void DoGetSize(int *width, int *height) const; - virtual void DoGetSizeMM(int* width, int* height) const; - - virtual int GetDepth() const; - virtual wxSize GetPPI() const; - - virtual void SetFont(const wxFont& font); - virtual void SetPen(const wxPen& pen); - virtual void SetBrush(const wxBrush& brush); - virtual void SetBackground(const wxBrush& brush); - virtual void SetBackgroundMode(int mode); - -#if wxUSE_PALETTE - virtual void SetPalette(const wxPalette& palette); -#endif // wxUSE_PALETTE - - virtual void SetLogicalFunction(wxRasterOperationMode function); - - virtual wxCoord GetCharHeight() const; - virtual wxCoord GetCharWidth() const; - virtual void DoGetTextExtent(const wxString& string, - wxCoord *x, wxCoord *y, - wxCoord *descent = NULL, - wxCoord *externalLeading = NULL, - const wxFont *theFont = NULL) const; - - virtual void Clear(); - - virtual void DoSetClippingRegion(wxCoord x, wxCoord y, - wxCoord width, wxCoord height); - - virtual void DoSetDeviceClippingRegion(const wxRegion& region); - - virtual bool DoFloodFill(wxCoord x, wxCoord y, const wxColour& col, - wxFloodFillStyle style = wxFLOOD_SURFACE); - - virtual bool DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const; - - virtual void DoDrawPoint(wxCoord x, wxCoord y); - virtual void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2); - - virtual void DoDrawArc(wxCoord x1, wxCoord y1, - wxCoord x2, wxCoord y2, - wxCoord xc, wxCoord yc); - virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h, - double sa, double ea); - - virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height); - virtual void DoDrawRoundedRectangle(wxCoord x, wxCoord y, - wxCoord width, wxCoord height, - double radius); - virtual void DoDrawEllipse(wxCoord x, wxCoord y, - wxCoord width, wxCoord height); - - virtual void DoCrossHair(wxCoord x, wxCoord y); - - virtual void DoDrawIcon(const wxIcon& icon, wxCoord x, wxCoord y); - virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y, - bool useMask = false); - - virtual void DoDrawText(const wxString& text, wxCoord x, wxCoord y); - virtual void DoDrawRotatedText(const wxString& text, - wxCoord x, wxCoord y, double angle); - - virtual bool DoBlit(wxCoord xdest, wxCoord ydest, - wxCoord width, wxCoord height, - wxDC *source, - wxCoord xsrc, wxCoord ysrc, - wxRasterOperationMode rop = wxCOPY, - bool useMask = false, - wxCoord xsrcMask = wxDefaultCoord, - wxCoord ysrcMask = wxDefaultCoord); - - virtual void DoDrawLines(int n, const wxPoint points[], - wxCoord xoffset, wxCoord yoffset ); - - virtual void DoDrawPolygon(int n, const wxPoint points[], - wxCoord xoffset, wxCoord yoffset, - wxPolygonFillMode fillStyle = wxODDEVEN_RULE); - -protected: - -private: -}; - -#endif // _WX_QT_DCPRINT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcscreen.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcscreen.h deleted file mode 100644 index baa996ff..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dcscreen.h +++ /dev/null @@ -1,27 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/dcscreen.h -// Author: Sean D'Epagnier -// Copyright: (c) Sean D'Epagnier -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_DCSCREEN_H_ -#define _WX_QT_DCSCREEN_H_ - -#include "wx/qt/dcclient.h" - -class WXDLLIMPEXP_CORE wxScreenDCImpl : public wxWindowDCImpl -{ -public: - wxScreenDCImpl( wxScreenDC *owner ); - - ~wxScreenDCImpl(); - - virtual void DoGetSize(int *width, int *height) const wxOVERRIDE; - -private: - - wxDECLARE_ABSTRACT_CLASS(wxScreenDCImpl); -}; - -#endif // _WX_QT_DCSCREEN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/defs.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/defs.h deleted file mode 100644 index be9129c0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/defs.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Name: wx/qt/defs.h - * Author: Peter Most - * Copyright: (c) Peter Most - * Licence: wxWindows licence - */ - -#ifndef _WX_QT_DEFS_H_ -#define _WX_QT_DEFS_H_ - -#ifdef __cplusplus - -typedef class QWidget *WXWidget; - -#endif - -#endif /* _WX_QT_DEFS_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dialog.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dialog.h deleted file mode 100644 index 3a857309..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dialog.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/dialog.h -// Author: Peter Most, Javier Torres, Mariano Reingart, Sean D'Epagnier -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_DIALOG_H_ -#define _WX_QT_DIALOG_H_ - -#include "wx/dialog.h" -#include <QtWidgets/QDialog> - -class WXDLLIMPEXP_CORE wxDialog : public wxDialogBase -{ -public: - wxDialog(); - wxDialog( wxWindow *parent, wxWindowID id, - const wxString &title, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString &name = wxDialogNameStr ); - - virtual ~wxDialog(); - - bool Create( wxWindow *parent, wxWindowID id, - const wxString &title, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString &name = wxDialogNameStr ); - - virtual int ShowModal(); - virtual void EndModal(int retCode); - virtual bool IsModal() const; - - virtual QDialog *GetHandle() const; - -private: - - wxDECLARE_DYNAMIC_CLASS( wxDialog ); -}; - - -#endif // _WX_QT_DIALOG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dirdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dirdlg.h deleted file mode 100644 index f7bc38a3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dirdlg.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/dirdlg.h -// Author: Sean D'Epagnier -// Copyright: (c) 2014 Sean D'Epagnier -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_DIRDLG_H_ -#define _WX_QT_DIRDLG_H_ - -#include <QtWidgets/QFileDialog> - -class WXDLLIMPEXP_CORE wxDirDialog : public wxDirDialogBase -{ -public: - wxDirDialog() { } - - wxDirDialog(wxWindow *parent, - const wxString& message = wxDirSelectorPromptStr, - const wxString& defaultPath = wxEmptyString, - long style = wxDD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - const wxString& name = wxDirDialogNameStr); - - bool Create(wxWindow *parent, - const wxString& message = wxDirSelectorPromptStr, - const wxString& defaultPath = wxEmptyString, - long style = wxDD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - const wxString& name = wxDirDialogNameStr); - -public: // overrides from wxGenericDirDialog - - wxString GetPath() const wxOVERRIDE; - void SetPath(const wxString& path) wxOVERRIDE; - - virtual QFileDialog *GetHandle() const; - -private: - - wxDECLARE_DYNAMIC_CLASS(wxDirDialog); -}; - -#endif // _WX_QT_DIRDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dnd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dnd.h deleted file mode 100644 index d06a35a5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dnd.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/dnd.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_DND_H_ -#define _WX_QT_DND_H_ - -#define wxDROP_ICON(name) wxICON(name) - -class WXDLLIMPEXP_CORE wxDropTarget : public wxDropTargetBase -{ -public: - wxDropTarget(wxDataObject *dataObject = NULL ); - - virtual bool OnDrop(wxCoord x, wxCoord y); - virtual wxDragResult OnData(wxCoord x, wxCoord y, wxDragResult def); - virtual bool GetData(); - - wxDataFormat GetMatchingPair(); - -protected: - -private: -}; - - -class WXDLLIMPEXP_CORE wxDropSource: public wxDropSourceBase -{ -public: - wxDropSource( wxWindow *win = NULL, - const wxIcon © = wxNullIcon, - const wxIcon &move = wxNullIcon, - const wxIcon &none = wxNullIcon); - - wxDropSource( wxDataObject& data, - wxWindow *win, - const wxIcon © = wxNullIcon, - const wxIcon &move = wxNullIcon, - const wxIcon &none = wxNullIcon); - - virtual wxDragResult DoDragDrop(int flags = wxDrag_CopyOnly); -}; -#endif // _WX_QT_DND_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dvrenderer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dvrenderer.h deleted file mode 100644 index b1841fe7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dvrenderer.h +++ /dev/null @@ -1,32 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/dvrenderer.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_DVRENDERER_H_ -#define _WX_QT_DVRENDERER_H_ - -// ---------------------------------------------------------------------------- -// wxDataViewRenderer -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewRenderer: public wxDataViewRendererBase -{ -public: - wxDataViewRenderer( const wxString &varianttype, - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - virtual void SetMode( wxDataViewCellMode mode ); - virtual wxDataViewCellMode GetMode() const; - - virtual void SetAlignment( int align ); - virtual int GetAlignment() const; - - virtual void EnableEllipsize(wxEllipsizeMode mode = wxELLIPSIZE_MIDDLE); - virtual wxEllipsizeMode GetEllipsizeMode() const; -}; - -#endif // _WX_QT_DVRENDERER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dvrenderers.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dvrenderers.h deleted file mode 100644 index 6ae3e527..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/dvrenderers.h +++ /dev/null @@ -1,190 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/dvrenderers.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_DVRENDERERS_H_ -#define _WX_QT_DVRENDERERS_H_ - -// --------------------------------------------------------- -// wxDataViewTextRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewTextRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("string"); } - - wxDataViewTextRenderer( const wxString &varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - bool SetValue( const wxVariant &value ); - bool GetValue( wxVariant &value ) const; - - void SetAlignment( int align ); -}; - -// --------------------------------------------------------- -// wxDataViewBitmapRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewBitmapRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("wxBitmap"); } - - wxDataViewBitmapRenderer( const wxString &varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - bool SetValue( const wxVariant &value ); - bool GetValue( wxVariant &value ) const; -}; - -// --------------------------------------------------------- -// wxDataViewToggleRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewToggleRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("bool"); } - - wxDataViewToggleRenderer( const wxString &varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - bool SetValue( const wxVariant &value ); - bool GetValue( wxVariant &value ) const; -}; - -// --------------------------------------------------------- -// wxDataViewCustomRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewCustomRenderer: public wxDataViewRenderer -{ -public: - static wxString GetDefaultType() { return wxS("string"); } - - wxDataViewCustomRenderer( const wxString &varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT, - bool no_init = false ); - virtual ~wxDataViewCustomRenderer(); - - - virtual bool Render( wxRect cell, wxDC *dc, int state ) = 0; - - void RenderText( const wxString &text, int xoffset, wxRect cell, wxDC *dc, int state ); - - virtual wxSize GetSize() const = 0; - - virtual bool Activate( wxRect WXUNUSED(cell), - wxDataViewModel *WXUNUSED(model), const wxDataViewItem &WXUNUSED(item), unsigned int WXUNUSED(col) ) - { return false; } - - virtual bool LeftClick( wxPoint WXUNUSED(cursor), wxRect WXUNUSED(cell), - wxDataViewModel *WXUNUSED(model), const wxDataViewItem &WXUNUSED(item), unsigned int WXUNUSED(col) ) - { return false; } - virtual bool StartDrag( wxPoint WXUNUSED(cursor), wxRect WXUNUSED(cell), - wxDataViewModel *WXUNUSED(model), const wxDataViewItem &WXUNUSED(item), unsigned int WXUNUSED(col) ) - { return false; } - - // Create DC on request - virtual wxDC *GetDC(); -}; - -// --------------------------------------------------------- -// wxDataViewProgressRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewProgressRenderer: public wxDataViewCustomRenderer -{ -public: - static wxString GetDefaultType() { return wxS("long"); } - - wxDataViewProgressRenderer( const wxString &label = wxEmptyString, - const wxString &varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - virtual ~wxDataViewProgressRenderer(); - - bool SetValue( const wxVariant &value ); - bool GetValue( wxVariant &value ) const; - - virtual bool Render( wxRect cell, wxDC *dc, int state ); - virtual wxSize GetSize() const; -}; - -// --------------------------------------------------------- -// wxDataViewIconTextRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewIconTextRenderer: public wxDataViewCustomRenderer -{ -public: - static wxString GetDefaultType() { return wxS("wxDataViewIconText"); } - - wxDataViewIconTextRenderer( const wxString &varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT, - int align = wxDVR_DEFAULT_ALIGNMENT ); - virtual ~wxDataViewIconTextRenderer(); - - bool SetValue( const wxVariant &value ); - bool GetValue( wxVariant &value ) const; - - virtual bool Render( wxRect cell, wxDC *dc, int state ); - virtual wxSize GetSize() const; - - virtual bool HasEditorCtrl() const { return true; } - virtual wxControl* CreateEditorCtrl( wxWindow *parent, wxRect labelRect, const wxVariant &value ); - virtual bool GetValueFromEditorCtrl( wxControl* editor, wxVariant &value ); -}; - -// --------------------------------------------------------- -// wxDataViewDateRenderer -// --------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewDateRenderer: public wxDataViewCustomRenderer -{ -public: - static wxString GetDefaultType() { return wxS("datetime"); } - - wxDataViewDateRenderer( const wxString &varianttype = GetDefaultType(), - wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE, - int align = wxDVR_DEFAULT_ALIGNMENT ); - - bool SetValue( const wxVariant &value ); - bool GetValue( wxVariant &value ) const; - - virtual bool Render( wxRect cell, wxDC *dc, int state ); - virtual wxSize GetSize() const; - virtual bool Activate( wxRect cell, - wxDataViewModel *model, const wxDataViewItem &item, unsigned int col ); - -}; - -// ------------------------------------- -// wxDataViewChoiceRenderer -// ------------------------------------- - -class WXDLLIMPEXP_ADV wxDataViewChoiceRenderer: public wxDataViewCustomRenderer -{ -public: - wxDataViewChoiceRenderer( const wxArrayString &choices, - wxDataViewCellMode mode = wxDATAVIEW_CELL_EDITABLE, - int alignment = wxDVR_DEFAULT_ALIGNMENT ); - virtual bool Render( wxRect rect, wxDC *dc, int state ); - virtual wxSize GetSize() const; - virtual bool SetValue( const wxVariant &value ); - virtual bool GetValue( wxVariant &value ) const; - - void SetAlignment( int align ); -}; - -#endif // _WX_QT_DVRENDERERS_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/evtloop.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/evtloop.h deleted file mode 100644 index d46609f7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/evtloop.h +++ /dev/null @@ -1,78 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/evtloop.h -// Author: Peter Most, Javier Torres, Mariano Reingart, Sean D'Epagnier -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_EVTLOOP_H_ -#define _WX_QT_EVTLOOP_H_ - -#include <QtCore/QTimer> - -class WXDLLIMPEXP_BASE wxQtEventLoopBase : public wxEventLoopBase -{ -public: - wxQtEventLoopBase(); - ~wxQtEventLoopBase(); - - virtual int DoRun(); - virtual void ScheduleExit(int rc = 0); - virtual bool Pending() const; - virtual bool Dispatch(); - virtual int DispatchTimeout(unsigned long timeout); - virtual void WakeUp(); - virtual void DoYieldFor(long eventsToProcess); - -#if wxUSE_EVENTLOOP_SOURCE - virtual wxEventLoopSource *AddSourceForFD(int fd, wxEventLoopSourceHandler *handler, int flags); -#endif // wxUSE_EVENTLOOP_SOURCE -protected: - -private: - QTimer *m_qtIdleTimer; - - wxDECLARE_NO_COPY_CLASS(wxQtEventLoopBase); -}; - - -#if wxUSE_GUI - -class WXDLLIMPEXP_CORE wxGUIEventLoop : public wxQtEventLoopBase -{ -public: - wxGUIEventLoop(); -}; - -#else // !wxUSE_GUI - -#if wxUSE_CONSOLE_EVENTLOOP - -class WXDLLIMPEXP_BASE wxConsoleEventLoop : public wxQtEventLoopBase -{ -public: - wxConsoleEventLoop(); -}; - -#endif // wxUSE_CONSOLE_EVENTLOOP - -#endif // wxUSE_GUI - - -class wxQtEventLoopBase; - -class wxQtIdleTimer : public QTimer -{ - -public: - wxQtIdleTimer( wxQtEventLoopBase *eventLoop ); - virtual bool eventFilter( QObject * watched, QEvent * event ); - -private: - void idle(); - -private: - wxQtEventLoopBase *m_eventLoop; -}; - -#endif // _WX_QT_EVTLOOP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/filedlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/filedlg.h deleted file mode 100644 index 47ce43fc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/filedlg.h +++ /dev/null @@ -1,58 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/filedlg.h -// Author: Sean D'Epagnier -// Copyright: (c) 2014 Sean D'Epagnier -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_FILEDLG_H_ -#define _WX_QT_FILEDLG_H_ - -#include <QtWidgets/QFileDialog> - -class WXDLLIMPEXP_CORE wxFileDialog : public wxFileDialogBase -{ -public: - wxFileDialog() { } - wxFileDialog(wxWindow *parent, - const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = wxEmptyString, - const wxString& defaultFile = wxEmptyString, - const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = wxFD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize, - const wxString& name = wxFileDialogNameStr); - bool Create(wxWindow *parent, - const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = wxEmptyString, - const wxString& defaultFile = wxEmptyString, - const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = wxFD_DEFAULT_STYLE, - const wxPoint& pos = wxDefaultPosition, - const wxSize& sz = wxDefaultSize, - const wxString& name = wxFileDialogNameStr); - - virtual wxString GetPath() const wxOVERRIDE; - virtual void GetPaths(wxArrayString& paths) const wxOVERRIDE; - virtual wxString GetFilename() const wxOVERRIDE; - virtual void GetFilenames(wxArrayString& files) const wxOVERRIDE; - virtual int GetFilterIndex() const wxOVERRIDE; - - virtual void SetMessage(const wxString& message) wxOVERRIDE; - virtual void SetPath(const wxString& path) wxOVERRIDE; - virtual void SetDirectory(const wxString& dir) wxOVERRIDE; - virtual void SetFilename(const wxString& name) wxOVERRIDE; - virtual void SetWildcard(const wxString& wildCard) wxOVERRIDE; - virtual void SetFilterIndex(int filterIndex) wxOVERRIDE; - - virtual bool SupportsExtraControl() const wxOVERRIDE { return true; } - - virtual QFileDialog *GetHandle() const; - -private: - - wxDECLARE_DYNAMIC_CLASS(wxFileDialog); -}; - -#endif // _WX_QT_FILEDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/font.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/font.h deleted file mode 100644 index dd11fc17..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/font.h +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/font.h -// Author: Peter Most, Javier Torres, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_FONT_H_ -#define _WX_QT_FONT_H_ - -class QFont; -class WXDLLIMPEXP_CORE wxFont : public wxFontBase -{ -public: - wxFont(); - wxFont(const wxFontInfo& info); - wxFont(const wxString& nativeFontInfoString); - wxFont(const wxNativeFontInfo& info); - wxFont(const QFont& font); - wxFont(int size, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); - wxFont(const wxSize& pixelSize, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); - - wxFont(int size, - int family, - int style, - int weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); - - bool Create(wxSize size, - wxFontFamily family, - wxFontStyle style, - wxFontWeight weight, - bool underlined = false, - const wxString& face = wxEmptyString, - wxFontEncoding encoding = wxFONTENCODING_DEFAULT); - - // accessors: get the font characteristics - virtual int GetPointSize() const; - virtual wxFontStyle GetStyle() const; - virtual wxFontWeight GetWeight() const; - virtual bool GetUnderlined() const; - virtual wxString GetFaceName() const; - virtual wxFontEncoding GetEncoding() const; - virtual const wxNativeFontInfo *GetNativeFontInfo() const; - - // change the font characteristics - virtual void SetPointSize( int pointSize ); - virtual void SetFamily( wxFontFamily family ); - virtual void SetStyle( wxFontStyle style ); - virtual bool SetFaceName(const wxString& facename); - virtual void SetWeight( wxFontWeight weight ); - virtual void SetUnderlined( bool underlined ); - virtual void SetEncoding(wxFontEncoding encoding); - - wxDECLARE_COMMON_FONT_METHODS(); - - virtual QFont GetHandle() const; - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - virtual wxFontFamily DoGetFamily() const; - - wxDECLARE_DYNAMIC_CLASS(wxFont); - -}; - - -#endif // _WX_QT_FONT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/fontdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/fontdlg.h deleted file mode 100644 index b1d63464..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/fontdlg.h +++ /dev/null @@ -1,32 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/fontdlg.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_FONTDLG_H_ -#define _WX_QT_FONTDLG_H_ - -#include <QtWidgets/QFontDialog> - -class WXDLLIMPEXP_CORE wxFontDialog : public wxFontDialogBase -{ -public: - wxFontDialog() { } - wxFontDialog(wxWindow *parent) { Create(parent); } - wxFontDialog(wxWindow *parent, const wxFontData& data) { Create(parent, data); } - - virtual QFontDialog *GetHandle() const { return static_cast<QFontDialog *>(m_qtWindow); } - -protected: - bool DoCreate(wxWindow *parent); - -private: - - wxFontData m_data; - - wxDECLARE_DYNAMIC_CLASS(wxFontDialog); -}; - -#endif // _WX_QT_FONTDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/frame.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/frame.h deleted file mode 100644 index aaf05417..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/frame.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/frame.h -// Purpose: wxFrame class interface -// Author: Peter Most -// Modified by: -// Created: 09.08.09 -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_FRAME_H_ -#define _WX_QT_FRAME_H_ - -#include "wx/frame.h" -#include <QtWidgets/QMainWindow> -#include <QtWidgets/QScrollArea> - -class WXDLLIMPEXP_CORE wxFrame : public wxFrameBase -{ -public: - wxFrame(); - wxFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - virtual ~wxFrame(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - virtual void SetMenuBar(wxMenuBar *menubar); - virtual void SetStatusBar(wxStatusBar *statusBar ); - virtual void SetToolBar(wxToolBar *toolbar); - - virtual void SetWindowStyleFlag( long style ); - - virtual void AddChild( wxWindowBase *child ); - virtual void RemoveChild( wxWindowBase *child ); - - virtual QMainWindow *GetHandle() const - { - return static_cast<QMainWindow*>(m_qtWindow); - } - - virtual QAbstractScrollArea *QtGetScrollBarsContainer() const; - -protected: - virtual void DoGetClientSize(int *width, int *height) const; - -private: - - wxDECLARE_DYNAMIC_CLASS( wxFrame ); -}; - - -#endif // _WX_QT_FRAME_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/gauge.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/gauge.h deleted file mode 100644 index 4a21c47f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/gauge.h +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/gauge.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_GAUGE_H_ -#define _WX_QT_GAUGE_H_ - -#include <QtWidgets/QProgressBar> - -class WXDLLIMPEXP_CORE wxGauge : public wxGaugeBase -{ -public: - wxGauge(); - - wxGauge(wxWindow *parent, - wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr); - - virtual QProgressBar *GetHandle() const; - - // set/get the control range - virtual void SetRange(int range); - virtual int GetRange() const; - - virtual void SetValue(int pos); - virtual int GetValue() const; - -private: - QProgressBar *m_qtProgressBar; - - wxDECLARE_DYNAMIC_CLASS(wxGauge); -}; - -#endif // _WX_QT_GAUGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/glcanvas.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/glcanvas.h deleted file mode 100644 index 73c5b549..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/glcanvas.h +++ /dev/null @@ -1,65 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: include/wx/qt/glcanvas.cpp -// Author: Sean D'Epagnier -// Copyright: (c) Sean D'Epagnier 2014 -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GLCANVAS_H_ -#define _WX_GLCANVAS_H_ - -#include <QtOpenGL/QGLWidget> - -class WXDLLIMPEXP_GL wxGLContext : public wxGLContextBase -{ -public: - wxGLContext(wxGLCanvas *win, const wxGLContext* other = NULL); -/// virtual ~wxGLContext(); - - virtual bool SetCurrent(const wxGLCanvas& win) const wxOVERRIDE; - -private: - QGLContext *m_glContext; - - wxDECLARE_CLASS(wxGLContext); -}; - -// ---------------------------------------------------------------------------- -// wxGLCanvas: OpenGL output window -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_GL wxGLCanvas : public wxGLCanvasBase -{ -public: - wxEXPLICIT // avoid implicitly converting a wxWindow* to wxGLCanvas - wxGLCanvas(wxWindow *parent, - wxWindowID id = wxID_ANY, - const int *attribList = NULL, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const wxPalette& palette = wxNullPalette); - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxGLCanvasName, - const int *attribList = NULL, - const wxPalette& palette = wxNullPalette); - - virtual bool SwapBuffers(); - - static bool ConvertWXAttrsToQtGL(const int *wxattrs, QGLFormat &format); - - virtual QGLWidget *GetHandle() const { return static_cast<QGLWidget *>(m_qtWindow); } - -private: - -// wxDECLARE_EVENT_TABLE(); - wxDECLARE_CLASS(wxGLCanvas); -}; - -#endif // _WX_GLCANVAS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/listbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/listbox.h deleted file mode 100644 index 59e5822d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/listbox.h +++ /dev/null @@ -1,95 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/listbox.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_LISTBOX_H_ -#define _WX_QT_LISTBOX_H_ - -#include <QtWidgets/QListWidget> - -class WXDLLIMPEXP_CORE wxListBox : public wxListBoxBase -{ -public: - wxListBox(); - wxListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - wxListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - virtual ~wxListBox(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - virtual bool IsSelected(int n) const; - virtual int GetSelections(wxArrayInt& aSelections) const; - - virtual unsigned int GetCount() const; - virtual wxString GetString(unsigned int n) const; - virtual void SetString(unsigned int n, const wxString& s); - - virtual void SetSelection(int n); - virtual int GetSelection() const; - - virtual QListWidget *GetHandle() const; - - void QtSendEvent(wxEventType evtType, const QModelIndex &index, bool selected); - -protected: - virtual void DoSetFirstItem(int n); - - virtual void DoSetSelection(int n, bool select); - - virtual int DoInsertItems(const wxArrayStringsAdapter & items, - unsigned int pos, - void **clientData, - wxClientDataType type); - virtual int DoInsertOneItem(const wxString& item, unsigned int pos); - - virtual void DoSetItemClientData(unsigned int n, void *clientData); - virtual void *DoGetItemClientData(unsigned int n) const; - - virtual void DoClear(); - virtual void DoDeleteOneItem(unsigned int pos); - - virtual QScrollArea *QtGetScrollBarsContainer() const; - -#if wxUSE_CHECKLISTBOX - bool m_hasCheckBoxes; -#endif // wxUSE_CHECKLISTBOX - - QListWidget *m_qtListWidget; - -private: - virtual void Init(); //common construction - - wxDECLARE_DYNAMIC_CLASS(wxListBox); -}; - -#endif // _WX_QT_LISTBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/listctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/listctrl.h deleted file mode 100644 index b534a012..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/listctrl.h +++ /dev/null @@ -1,310 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/listctrl.h -// Author: Mariano Reingart, Peter Most -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_LISTCTRL_H_ -#define _WX_QT_LISTCTRL_H_ - -#include "wx/textctrl.h" -#include <QtWidgets/QTreeWidget> - -class WXDLLIMPEXP_FWD_CORE wxImageList; - -class WXDLLIMPEXP_CORE wxListCtrl: public wxListCtrlBase -{ -public: - wxListCtrl(); - - wxListCtrl(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxLC_ICON, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListCtrlNameStr); - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxLC_ICON, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListCtrlNameStr); - - virtual ~wxListCtrl(); - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - // Set the control colours - bool SetForegroundColour(const wxColour& col); - bool SetBackgroundColour(const wxColour& col); - - // Gets information about this column - bool GetColumn(int col, wxListItem& info) const; - - // Sets information about this column - bool SetColumn(int col, const wxListItem& info); - - // Gets the column width - int GetColumnWidth(int col) const; - - // Sets the column width - bool SetColumnWidth(int col, int width); - - - // Gets the column order from its index or index from its order - int GetColumnOrder(int col) const; - int GetColumnIndexFromOrder(int order) const; - - // Gets the column order for all columns - wxArrayInt GetColumnsOrder() const; - - // Sets the column order for all columns - bool SetColumnsOrder(const wxArrayInt& orders); - - - // Gets the number of items that can fit vertically in the - // visible area of the list control (list or report view) - // or the total number of items in the list control (icon - // or small icon view) - int GetCountPerPage() const; - - // return the total area occupied by all the items (icon/small icon only) - wxRect GetViewRect() const; - - // Gets the edit control for editing labels. - wxTextCtrl* GetEditControl() const; - - // Gets information about the item - bool GetItem(wxListItem& info) const; - - // Sets information about the item - bool SetItem(wxListItem& info); - - // Sets a string field at a particular column - long SetItem(long index, int col, const wxString& label, int imageId = -1); - - // Gets the item state - int GetItemState(long item, long stateMask) const; - - // Sets the item state - bool SetItemState(long item, long state, long stateMask); - - // Sets the item image - bool SetItemImage(long item, int image, int selImage = -1); - bool SetItemColumnImage(long item, long column, int image); - - // Gets the item text - wxString GetItemText(long item, int col = 0) const; - - // Sets the item text - void SetItemText(long item, const wxString& str); - - // Gets the item data - wxUIntPtr GetItemData(long item) const; - - // Sets the item data - bool SetItemPtrData(long item, wxUIntPtr data); - bool SetItemData(long item, long data); - - // Gets the item rectangle - bool GetItemRect(long item, wxRect& rect, int code = wxLIST_RECT_BOUNDS) const; - - // Gets the subitem rectangle in report mode - bool GetSubItemRect(long item, long subItem, wxRect& rect, int code = wxLIST_RECT_BOUNDS) const; - - // Gets the item position - bool GetItemPosition(long item, wxPoint& pos) const; - - // Sets the item position - bool SetItemPosition(long item, const wxPoint& pos); - - // Gets the number of items in the list control - int GetItemCount() const; - - // Gets the number of columns in the list control - int GetColumnCount() const; - - // get the horizontal and vertical components of the item spacing - wxSize GetItemSpacing() const; - - // Foreground colour of an item. - void SetItemTextColour( long item, const wxColour& col); - wxColour GetItemTextColour( long item ) const; - - // Background colour of an item. - void SetItemBackgroundColour( long item, const wxColour &col); - wxColour GetItemBackgroundColour( long item ) const; - - // Font of an item. - void SetItemFont( long item, const wxFont &f); - wxFont GetItemFont( long item ) const; - - // Gets the number of selected items in the list control - int GetSelectedItemCount() const; - - // Gets the text colour of the listview - wxColour GetTextColour() const; - - // Sets the text colour of the listview - void SetTextColour(const wxColour& col); - - // Gets the index of the topmost visible item when in - // list or report view - long GetTopItem() const; - - // Add or remove a single window style - void SetSingleStyle(long style, bool add = true); - - // Set the whole window style - void SetWindowStyleFlag(long style); - - // Searches for an item, starting from 'item'. - // item can be -1 to find the first item that matches the - // specified flags. - // Returns the item or -1 if unsuccessful. - long GetNextItem(long item, int geometry = wxLIST_NEXT_ALL, int state = wxLIST_STATE_DONTCARE) const; - - // Gets one of the three image lists - wxImageList *GetImageList(int which) const; - - // Sets the image list - void SetImageList(wxImageList *imageList, int which); - void AssignImageList(wxImageList *imageList, int which); - - // refresh items selectively (only useful for virtual list controls) - void RefreshItem(long item); - void RefreshItems(long itemFrom, long itemTo); - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // Arranges the items - bool Arrange(int flag = wxLIST_ALIGN_DEFAULT); - - // Deletes an item - bool DeleteItem(long item); - - // Deletes all items - bool DeleteAllItems(); - - // Deletes a column - bool DeleteColumn(int col); - - // Deletes all columns - bool DeleteAllColumns(); - - // Clears items, and columns if there are any. - void ClearAll(); - - // Edit the label - wxTextCtrl* EditLabel(long item, wxClassInfo* textControlClass = CLASSINFO(wxTextCtrl)); - - // End label editing, optionally cancelling the edit - bool EndEditLabel(bool cancel); - - // Ensures this item is visible - bool EnsureVisible(long item); - - // Find an item whose label matches this string, starting from the item after 'start' - // or the beginning if 'start' is -1. - long FindItem(long start, const wxString& str, bool partial = false); - - // Find an item whose data matches this data, starting from the item after 'start' - // or the beginning if 'start' is -1. - long FindItem(long start, wxUIntPtr data); - - // Find an item nearest this position in the specified direction, starting from - // the item after 'start' or the beginning if 'start' is -1. - long FindItem(long start, const wxPoint& pt, int direction); - - // Determines which item (if any) is at the specified point, - // giving details in 'flags' (see wxLIST_HITTEST_... flags above) - // Request the subitem number as well at the given coordinate. - long HitTest(const wxPoint& point, int& flags, long* ptrSubItem = NULL) const; - - // Inserts an item, returning the index of the new item if successful, - // -1 otherwise. - long InsertItem(const wxListItem& info); - - // Insert a string item - long InsertItem(long index, const wxString& label); - - // Insert an image item - long InsertItem(long index, int imageIndex); - - // Insert an image/string item - long InsertItem(long index, const wxString& label, int imageIndex); - - // set the number of items in a virtual list control - void SetItemCount(long count); - - // Scrolls the list control. If in icon, small icon or report view mode, - // x specifies the number of pixels to scroll. If in list view mode, x - // specifies the number of columns to scroll. - // If in icon, small icon or list view mode, y specifies the number of pixels - // to scroll. If in report view mode, y specifies the number of lines to scroll. - bool ScrollList(int dx, int dy); - - // Sort items. - - // fn is a function which takes 3 long arguments: item1, item2, data. - // item1 is the long data associated with a first item (NOT the index). - // item2 is the long data associated with a second item (NOT the index). - // data is the same value as passed to SortItems. - // The return value is a negative number if the first item should precede the second - // item, a positive number of the second item should precede the first, - // or zero if the two items are equivalent. - - // data is arbitrary data to be passed to the sort function. - bool SortItems(wxListCtrlCompare fn, wxIntPtr data); - - - // these functions are only used for virtual list view controls, i.e. the - // ones with wxLC_VIRTUAL style (not currently implemented in wxQT) - - // return the text for the given column of the given item - virtual wxString OnGetItemText(long item, long column) const; - - // return the icon for the given item. In report view, OnGetItemImage will - // only be called for the first column. See OnGetItemColumnImage for - // details. - virtual int OnGetItemImage(long item) const; - - // return the icon for the given item and column. - virtual int OnGetItemColumnImage(long item, long column) const; - - // return the attribute for the given item and column (may return NULL if none) - virtual wxListItemAttr *OnGetItemColumnAttr(long item, long WXUNUSED(column)) const - { - return OnGetItemAttr(item); - } - - virtual QTreeWidget *GetHandle() const; - -protected: - void Init(); - - // Implement base class pure virtual methods. - long DoInsertColumn(long col, const wxListItem& info); - - QTreeWidgetItem *QtGetItem(int id) const; - - wxImageList * m_imageListNormal; // The image list for normal icons - wxImageList * m_imageListSmall; // The image list for small icons - wxImageList * m_imageListState; // The image list state icons (not implemented yet) - bool m_ownsImageListNormal, - m_ownsImageListSmall, - m_ownsImageListState; -private: - QTreeWidget *m_qtTreeWidget; - - wxDECLARE_DYNAMIC_CLASS( wxListCtrl ); -}; - -#endif - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/mdi.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/mdi.h deleted file mode 100644 index f8ec1603..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/mdi.h +++ /dev/null @@ -1,80 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/mdi.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_MDI_H_ -#define _WX_QT_MDI_H_ - -class WXDLLIMPEXP_CORE wxMDIParentFrame : public wxMDIParentFrameBase -{ -public: - wxMDIParentFrame(); - wxMDIParentFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr); - - // override/implement base class [pure] virtual methods - // ---------------------------------------------------- - - static bool IsTDI() { return false; } - - virtual void ActivateNext(); - virtual void ActivatePrevious(); - -protected: - -private: - wxDECLARE_DYNAMIC_CLASS(wxMDIParentFrame); -}; - - - -class WXDLLIMPEXP_CORE wxMDIChildFrame : public wxMDIChildFrameBase -{ -public: - wxMDIChildFrame(); - wxMDIChildFrame(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - bool Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - virtual void Activate(); -}; - - - -class WXDLLIMPEXP_CORE wxMDIClientWindow : public wxMDIClientWindowBase -{ -public: - wxMDIClientWindow(); - - virtual bool CreateClient(wxMDIParentFrame *parent, long style = wxVSCROLL | wxHSCROLL); -}; - -#endif // _WX_QT_MDI_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/menu.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/menu.h deleted file mode 100644 index b45f3ca6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/menu.h +++ /dev/null @@ -1,62 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/menu.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_MENU_H_ -#define _WX_QT_MENU_H_ - -#include <QtWidgets/QMenu> -#include <QtWidgets/QMenuBar> - -class WXDLLIMPEXP_CORE wxMenu : public wxMenuBase -{ -public: - wxMenu(long style = 0); - wxMenu(const wxString& title, long style = 0); - - virtual QMenu *GetHandle() const; - -protected: - virtual wxMenuItem *DoAppend(wxMenuItem *item); - virtual wxMenuItem *DoInsert(size_t pos, wxMenuItem *item); - virtual wxMenuItem *DoRemove(wxMenuItem *item); - -private: - QMenu *m_qtMenu; - - wxDECLARE_DYNAMIC_CLASS(wxMenu); -}; - - - -class WXDLLIMPEXP_CORE wxMenuBar : public wxMenuBarBase -{ -public: - wxMenuBar(); - wxMenuBar(long style); - wxMenuBar(size_t n, wxMenu *menus[], const wxString titles[], long style = 0); - - virtual bool Append(wxMenu *menu, const wxString& title); - virtual bool Insert(size_t pos, wxMenu *menu, const wxString& title); - virtual wxMenu *Remove(size_t pos); - - virtual void EnableTop(size_t pos, bool enable); - - virtual void SetMenuLabel(size_t pos, const wxString& label); - virtual wxString GetMenuLabel(size_t pos) const; - - virtual QMenuBar *GetHandle() const; - - virtual void Attach(wxFrame *frame); - virtual void Detach(); - -private: - QMenuBar *m_qtMenuBar; - - wxDECLARE_DYNAMIC_CLASS(wxMenuBar); -}; - -#endif // _WX_QT_MENU_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/menuitem.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/menuitem.h deleted file mode 100644 index 0a07c55f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/menuitem.h +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/menuitem.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_MENUITEM_H_ -#define _WX_QT_MENUITEM_H_ - -#include "wx/menuitem.h" -#include <QtWidgets/QAction> - -class WXDLLIMPEXP_FWD_CORE wxBitmap; -class WXDLLIMPEXP_FWD_CORE wxMenu; - -class WXDLLIMPEXP_CORE wxMenuItem : public wxMenuItemBase -{ -public: - wxMenuItem(wxMenu *parentMenu = NULL, - int id = wxID_SEPARATOR, - const wxString& text = wxEmptyString, - const wxString& help = wxEmptyString, - wxItemKind kind = wxITEM_NORMAL, - wxMenu *subMenu = NULL); - - virtual void SetItemLabel(const wxString& str); - virtual void SetCheckable(bool checkable); - - virtual void Enable(bool enable = true); - virtual bool IsEnabled() const; - - virtual void Check(bool check = true); - virtual bool IsChecked() const; - - void SetBitmap(const wxBitmap& bitmap); - const wxBitmap& GetBitmap() const; - - virtual QAction *GetHandle() const; - -private: - // Qt is using an action instead of a menu item. - QAction *m_qtAction; - - wxDECLARE_DYNAMIC_CLASS( wxMenuItem ); -}; - - - -#endif // _WX_QT_MENUITEM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/minifram.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/minifram.h deleted file mode 100644 index daf75a35..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/minifram.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/minifram.h -// Purpose: wxMiniFrame class -// Author: Mariano Reingart -// Copyright: (c) 2014 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MINIFRAM_H_ -#define _WX_MINIFRAM_H_ - -#include "wx/frame.h" - -class WXDLLIMPEXP_CORE wxMiniFrame : public wxFrame -{ -public: - wxMiniFrame() { } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCAPTION | wxCLIP_CHILDREN | wxRESIZE_BORDER, - const wxString& name = wxFrameNameStr) - { - return wxFrame::Create(parent, id, title, pos, size, - style | wxFRAME_TOOL_WINDOW | wxFRAME_NO_TASKBAR, - name); - } - - wxMiniFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCAPTION | wxCLIP_CHILDREN | wxRESIZE_BORDER, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - -protected: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxMiniFrame); -}; - -#endif - // _WX_MINIFRAM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/msgdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/msgdlg.h deleted file mode 100644 index 447dd605..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/msgdlg.h +++ /dev/null @@ -1,31 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/msgdlg.h -// Author: Peter Most, Javier Torres -// Copyright: (c) Peter Most, Javier Torres -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_MSGDLG_H_ -#define _WX_QT_MSGDLG_H_ - -#include "wx/msgdlg.h" - -#include <QtWidgets/QMessageBox> - -class WXDLLIMPEXP_CORE wxMessageDialog : public wxMessageDialogBase -{ -public: - wxMessageDialog(wxWindow *parent, const wxString& message, - const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, - const wxPoint& pos = wxDefaultPosition); - virtual ~wxMessageDialog(); - - // Reimplemented to translate return codes from Qt to wx - virtual int ShowModal(); - - virtual QMessageBox *GetHandle() const; - -}; - -#endif // _WX_QT_MSGDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/notebook.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/notebook.h deleted file mode 100644 index c62fb4e8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/notebook.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/notebook.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_NOTEBOOK_H_ -#define _WX_QT_NOTEBOOK_H_ - -#include <QtWidgets/QTabWidget> - -class WXDLLIMPEXP_CORE wxNotebook : public wxNotebookBase -{ -public: - wxNotebook(); - wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxNotebookNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxNotebookNameStr); - - virtual void SetPadding(const wxSize& padding); - virtual void SetTabSize(const wxSize& sz); - - virtual bool SetPageText(size_t n, const wxString& strText); - virtual wxString GetPageText(size_t n) const; - - virtual int GetPageImage(size_t n) const; - virtual bool SetPageImage(size_t n, int imageId); - - virtual bool InsertPage(size_t n, wxWindow *page, const wxString& text, - bool bSelect = false, int imageId = -1); - - virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const; - - int SetSelection(size_t nPage) { return DoSetSelection(nPage, SetSelection_SendEvent); } - int ChangeSelection(size_t nPage) { return DoSetSelection(nPage); } - - virtual QTabWidget *GetHandle() const; - -protected: - virtual wxWindow *DoRemovePage(size_t page); - int DoSetSelection(size_t nPage, int flags = 0); - -private: - QTabWidget *m_qtTabWidget; - - // internal array to store imageId for each page: - wxVector<int> m_images; - - wxDECLARE_DYNAMIC_CLASS( wxNotebook ); -}; - - -#endif // _WX_QT_NOTEBOOK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/palette.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/palette.h deleted file mode 100644 index d3aeff38..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/palette.h +++ /dev/null @@ -1,28 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/palette.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_PALETTE_H_ -#define _WX_QT_PALETTE_H_ - -class WXDLLIMPEXP_CORE wxPalette : public wxPaletteBase -{ -public: - wxPalette(); - wxPalette(int n, unsigned char *red, unsigned char *green, unsigned char *blue); - - bool Create(int n, unsigned char *red, unsigned char *green, unsigned char *blue); - - bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const; - int GetPixel(unsigned char red, unsigned char green, unsigned char blue) const; - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - -}; - -#endif // _WX_QT_PALETTE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/pen.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/pen.h deleted file mode 100644 index bbaad083..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/pen.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/pen.h -// Author: Peter Most, Javier Torres -// Copyright: (c) Peter Most, Javier Torres -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_PEN_H_ -#define _WX_QT_PEN_H_ - -#include <QtCore/Qt> - -class QPen; - -class WXDLLIMPEXP_CORE wxPen : public wxPenBase -{ -public: - wxPen(); - - wxPen( const wxColour &colour, int width = 1, wxPenStyle style = wxPENSTYLE_SOLID ); - - wxDEPRECATED_MSG("use wxPENSTYLE_XXX constants") - wxPen(const wxColour& col, int width, int style); - - bool operator==(const wxPen& pen) const; - bool operator!=(const wxPen& pen) const; - - virtual void SetColour(const wxColour& col); - virtual void SetColour(unsigned char r, unsigned char g, unsigned char b); - - virtual void SetWidth(int width); - virtual void SetStyle(wxPenStyle style); - virtual void SetStipple(const wxBitmap& stipple); - virtual void SetDashes(int nb_dashes, const wxDash *dash); - virtual void SetJoin(wxPenJoin join); - virtual void SetCap(wxPenCap cap); - - virtual wxColour GetColour() const; - virtual wxBitmap *GetStipple() const; - virtual wxPenStyle GetStyle() const; - virtual wxPenJoin GetJoin() const; - virtual wxPenCap GetCap() const; - virtual int GetWidth() const; - virtual int GetDashes(wxDash **ptr) const; - - wxDEPRECATED_MSG("use wxPENSTYLE_XXX constants") - void SetStyle(int style) { SetStyle((wxPenStyle)style); } - - QPen GetHandle() const; - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; -}; - -#endif // _WX_QT_PEN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/popupwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/popupwin.h deleted file mode 100644 index d70ad922..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/popupwin.h +++ /dev/null @@ -1,23 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/popupwin.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_POPUPWIN_H_ -#define _WX_QT_POPUPWIN_H_ - -class WXDLLIMPEXP_CORE wxPopupWindow : public wxPopupWindowBase -{ -public: - wxPopupWindow(); - wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE); - -protected: - -private: - wxDECLARE_DYNAMIC_CLASS(wxPopupWindow); -}; - -#endif // _WX_QT_POPUPWIN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/printdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/printdlg.h deleted file mode 100644 index fc9fb91a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/printdlg.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/printdlg.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_PRINTDLG_H_ -#define _WX_QT_PRINTDLG_H_ - -#include "wx/prntbase.h" -#include "wx/printdlg.h" - -class WXDLLIMPEXP_CORE wxQtPrintNativeData: public wxPrintNativeDataBase -{ -public: - wxQtPrintNativeData(); - - virtual bool TransferTo( wxPrintData &data ); - virtual bool TransferFrom( const wxPrintData &data ); - - virtual bool IsOk() const; - -}; - -class WXDLLIMPEXP_CORE wxQtPrintDialog : public wxPrintDialogBase -{ -public: - wxQtPrintDialog(wxWindow *parent, wxPrintDialogData *data); - wxQtPrintDialog(wxWindow *parent, wxPrintData *data); - - virtual wxPrintDialogData& GetPrintDialogData(); - virtual wxPrintData& GetPrintData(); - virtual wxDC *GetPrintDC(); - -protected: - -private: -}; - - - -class WXDLLIMPEXP_CORE wxQtPageSetupDialog: public wxPageSetupDialogBase -{ -public: - wxQtPageSetupDialog(); - wxQtPageSetupDialog(wxWindow *parent, wxPageSetupDialogData *data = NULL); - - bool Create(wxWindow *parent, wxPageSetupDialogData *data = NULL); - - virtual wxPageSetupDialogData& GetPageSetupDialogData(); - -private: -}; - -#endif // _WX_QT_PRINTDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/printqt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/printqt.h deleted file mode 100644 index 23d5dcb1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/printqt.h +++ /dev/null @@ -1,42 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/printqt.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_PRINTQT_H_ -#define _WX_QT_PRINTQT_H_ - -#include "wx/prntbase.h" - -class WXDLLIMPEXP_CORE wxQtPrinter : public wxPrinterBase -{ -public: - wxQtPrinter( wxPrintDialogData *data = NULL ); - - virtual bool Setup(wxWindow *parent); - virtual bool Print(wxWindow *parent, wxPrintout *printout, bool prompt = true); - virtual wxDC* PrintDialog(wxWindow *parent); -private: -}; - - - -class WXDLLIMPEXP_CORE wxQtPrintPreview : public wxPrintPreviewBase -{ -public: - wxQtPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting = NULL, - wxPrintDialogData *data = NULL); - wxQtPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting, - wxPrintData *data); - - virtual bool Print(bool interactive); - virtual void DetermineScaling(); - -protected: -}; - -#endif // _WX_QT_PRINTQT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/converter.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/converter.h deleted file mode 100644 index f6406a80..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/converter.h +++ /dev/null @@ -1,60 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/converter.h -// Purpose: Converter utility classes and functions -// Author: Peter Most, Kolya Kosenko -// Created: 02/28/10 -// Copyright: (c) Peter Most -// (c) 2010 Kolya Kosenko -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_CONVERTER_H_ -#define _WX_QT_CONVERTER_H_ - -#include "wx/defs.h" -#include <QtCore/Qt> - -#include "wx/kbdstate.h" - -// Rely on overloading and let the compiler pick the correct version, which makes -// them easier to use then to write wxQtConvertQtRectToWxRect() or wxQtConvertWxRectToQtRect() - -class WXDLLIMPEXP_FWD_CORE wxPoint; -class QPoint; -wxPoint wxQtConvertPoint( const QPoint &point ); -QPoint wxQtConvertPoint( const wxPoint &point ); - -class WXDLLIMPEXP_FWD_CORE wxRect; -class QRect; -wxRect wxQtConvertRect( const QRect &rect ); -QRect wxQtConvertRect( const wxRect &rect ); - -class WXDLLIMPEXP_FWD_BASE wxString; -class QString; -wxString wxQtConvertString( const QString &str ); -QString wxQtConvertString( const wxString &str ); - -#if wxUSE_DATETIME - -class WXDLLIMPEXP_FWD_BASE wxDateTime; -class QDate; - -wxDateTime wxQtConvertDate(const QDate& date); -QDate wxQtConvertDate(const wxDateTime& date); - -#endif // wxUSE_DATETIME - -class WXDLLIMPEXP_FWD_BASE wxSize; -class QSize; -wxSize wxQtConvertSize( const QSize &size ); -QSize wxQtConvertSize( const wxSize &size ); - -Qt::Orientation wxQtConvertOrientation( long style, wxOrientation defaultOrientation ); -wxOrientation wxQtConvertOrientation( Qt::Orientation ); - -wxKeyCode wxQtConvertKeyCode( int key, Qt::KeyboardModifiers modifiers ); -void wxQtFillKeyboardModifiers( Qt::KeyboardModifiers modifiers, wxKeyboardState *state ); -int wxQtConvertKeyCode( int keyCode, int modifiers, Qt::KeyboardModifiers &qtmodifiers ); - -#endif // _WX_QT_CONVERTER_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/pointer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/pointer.h deleted file mode 100644 index 6079a66c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/pointer.h +++ /dev/null @@ -1,43 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/private/pointer.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_POINTER_H_ -#define _WX_QT_POINTER_H_ - -#include <QtCore/QPointer> - -// Extend QPointer with the ability to delete the object in its destructor. The -// normal behaviour of the QPointer makes sure that this is safe, because if somebody -// has deleted the object, then data() returns NULL and delete does nothing. - -template < typename T > -class wxQtPointer : public QPointer< T > -{ -public: - inline wxQtPointer() - : QPointer< T >() - { - } - - inline wxQtPointer( T *p ) - : QPointer< T >( p ) - { - } - - inline wxQtPointer< T > &operator = ( T *p ) - { - QPointer< T >::operator = ( p ); - return *this; - } - - inline ~wxQtPointer() - { - delete QPointer< T >::data(); - } -}; - -#endif // _WX_QT_POINTER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/utils.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/utils.h deleted file mode 100644 index a91f03bd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/utils.h +++ /dev/null @@ -1,27 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/utils.h -// Purpose: utility classes and/or functions -// Author: Peter Most, Javier Torres -// Created: 15/05/10 -// Copyright: (c) Peter Most, Javier Torres -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_UTILS_H_ -#define _WX_QT_UTILS_H_ - -#include "wx/mousestate.h" -#include <QtCore/Qt> - -void wxQtFillMouseButtons( Qt::MouseButtons buttons, wxMouseState *state ); - -void wxMissingImplementation( const char fileName[], unsigned lineNumber, - const char feature[] ); - -#define wxMISSING_IMPLEMENTATION( feature )\ - wxMissingImplementation( __FILE__, __LINE__, feature ) - -#define wxMISSING_FUNCTION() \ - wxMISSING_IMPLEMENTATION( __WXFUNCTION__ ) - -#endif // _WX_QT_UTILS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/winevent.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/winevent.h deleted file mode 100644 index cbda1cc2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/private/winevent.h +++ /dev/null @@ -1,329 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: include/wx/qt/winevent_qt.h -// Purpose: QWidget to wxWindow event handler -// Author: Javier Torres, Peter Most -// Modified by: -// Created: 21.06.10 -// Copyright: (c) Javier Torres -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_EVENTSIGNALFORWARDER_H_ -#define _WX_QT_EVENTSIGNALFORWARDER_H_ - -#include "wx/log.h" -#include "wx/window.h" -#include "wx/qt/private/converter.h" -#include "wx/qt/private/utils.h" - -#include <QtCore/QEvent> -#include <QtGui/QPaintEvent> - -template< typename Handler > -class wxQtSignalHandler -{ -protected: - wxQtSignalHandler( Handler *handler ) - { - m_handler = handler; - } - - void EmitEvent( wxEvent &event ) const - { - wxWindow *handler = GetHandler(); - event.SetEventObject( handler ); - handler->HandleWindowEvent( event ); - } - - virtual Handler *GetHandler() const - { - return m_handler; - } - -private: - Handler *m_handler; -}; - -template < typename Widget, typename Handler > -class wxQtEventSignalHandler : public Widget, public wxQtSignalHandler< Handler > -{ -public: - wxQtEventSignalHandler( wxWindow *parent, Handler *handler ) - : Widget( parent != NULL ? parent->GetHandle() : NULL ) - , wxQtSignalHandler< Handler >( handler ) - { - // Set immediatelly as it is used to check if wxWindow is alive - wxWindow::QtStoreWindowPointer( this, handler ); - - // Handle QWidget destruction signal AFTER it gets deleted - QObject::connect( this, &QObject::destroyed, this, - &wxQtEventSignalHandler::HandleDestroyedSignal ); - - } - - void HandleDestroyedSignal() - { - } - - virtual Handler *GetHandler() const - { - // Only process the signal / event if the wxWindow is not destroyed - if ( !wxWindow::QtRetrieveWindowPointer( this ) ) - { - return NULL; - } - else - return wxQtSignalHandler< Handler >::GetHandler(); - } - -protected: - /* Not implemented here: wxHelpEvent, wxIdleEvent wxJoystickEvent, - * wxMouseCaptureLostEvent, wxMouseCaptureChangedEvent, - * wxPowerEvent, wxScrollWinEvent, wxSysColourChangedEvent */ - - //wxActivateEvent - virtual void changeEvent ( QEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleChangeEvent(this, event) ) - Widget::changeEvent(event); - else - event->accept(); - } - - //wxCloseEvent - virtual void closeEvent ( QCloseEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleCloseEvent(this, event) ) - Widget::closeEvent(event); - else - event->accept(); - } - - //wxContextMenuEvent - virtual void contextMenuEvent ( QContextMenuEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleContextMenuEvent(this, event) ) - Widget::contextMenuEvent(event); - else - event->accept(); - } - - //wxDropFilesEvent - //virtual void dropEvent ( QDropEvent * event ) { } - - //wxMouseEvent - virtual void enterEvent ( QEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleEnterEvent(this, event) ) - Widget::enterEvent(event); - else - event->accept(); - } - - //wxFocusEvent. - virtual void focusInEvent ( QFocusEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleFocusEvent(this, event) ) - Widget::focusInEvent(event); - else - event->accept(); - } - - //wxFocusEvent. - virtual void focusOutEvent ( QFocusEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleFocusEvent(this, event) ) - Widget::focusOutEvent(event); - else - event->accept(); - } - - //wxShowEvent - virtual void hideEvent ( QHideEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleShowEvent(this, event) ) - Widget::hideEvent(event); - else - event->accept(); - } - - //wxKeyEvent - virtual void keyPressEvent ( QKeyEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleKeyEvent(this, event) ) - Widget::keyPressEvent(event); - else - event->accept(); - } - - //wxKeyEvent - virtual void keyReleaseEvent ( QKeyEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleKeyEvent(this, event) ) - Widget::keyReleaseEvent(event); - else - event->accept(); - } - - //wxMouseEvent - virtual void leaveEvent ( QEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleEnterEvent(this, event) ) - Widget::leaveEvent(event); - else - event->accept(); - } - - //wxMouseEvent - virtual void mouseDoubleClickEvent ( QMouseEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleMouseEvent(this, event) ) - Widget::mouseDoubleClickEvent(event); - else - event->accept(); - } - - //wxMouseEvent - virtual void mouseMoveEvent ( QMouseEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleMouseEvent(this, event) ) - Widget::mouseMoveEvent(event); - else - event->accept(); - } - - //wxMouseEvent - virtual void mousePressEvent ( QMouseEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleMouseEvent(this, event) ) - Widget::mousePressEvent(event); - else - event->accept(); - } - - //wxMouseEvent - virtual void mouseReleaseEvent ( QMouseEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleMouseEvent(this, event) ) - Widget::mouseReleaseEvent(event); - else - event->accept(); - } - - //wxMoveEvent - virtual void moveEvent ( QMoveEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleMoveEvent(this, event) ) - Widget::moveEvent(event); - else - event->accept(); - } - - //wxEraseEvent then wxPaintEvent - virtual void paintEvent ( QPaintEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandlePaintEvent(this, event) ) - Widget::paintEvent(event); - else - event->accept(); - } - - //wxSizeEvent - virtual void resizeEvent ( QResizeEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleResizeEvent(this, event) ) - Widget::resizeEvent(event); - else - event->accept(); - } - - //wxShowEvent - virtual void showEvent ( QShowEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleShowEvent(this, event) ) - Widget::showEvent(event); - else - event->accept(); - } - - //wxMouseEvent - virtual void wheelEvent ( QWheelEvent * event ) - { - if ( !this->GetHandler() ) - return; - - if ( !this->GetHandler()->QtHandleWheelEvent(this, event) ) - Widget::wheelEvent(event); - else - event->accept(); - } - - /* Unused Qt events - virtual void actionEvent ( QActionEvent * event ) { } - virtual void dragEnterEvent ( QDragEnterEvent * event ) { } - virtual void dragLeaveEvent ( QDragLeaveEvent * event ) { } - virtual void dragMoveEvent ( QDragMoveEvent * event ) { } - virtual void inputMethodEvent ( QInputMethodEvent * event ) { } - virtual bool macEvent ( EventHandlerCallRef caller, EventRef event ) { } - virtual bool qwsEvent ( QWSEvent * event ) { } - virtual void tabletEvent ( QTabletEvent * event ) { } - virtual bool winEvent ( MSG * message, long * result ) { } - virtual bool x11Event ( XEvent * event ) { } */ - -}; - -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/radiobox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/radiobox.h deleted file mode 100644 index 62ea5a50..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/radiobox.h +++ /dev/null @@ -1,95 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/radiobox.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_RADIOBOX_H_ -#define _WX_QT_RADIOBOX_H_ - -#include <QtWidgets/QGroupBox> -#include <QtWidgets/QButtonGroup> -#include <QtWidgets/QVBoxLayout> - -class WXDLLIMPEXP_CORE wxRadioBox : public wxControl, public wxRadioBoxBase -{ -public: - wxRadioBox(); - - wxRadioBox(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, - long style = wxRA_SPECIFY_COLS, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxRadioBoxNameStr); - - wxRadioBox(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - int majorDim = 0, - long style = wxRA_SPECIFY_COLS, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxRadioBoxNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, - long style = wxRA_SPECIFY_COLS, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxRadioBoxNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - const wxArrayString& choices, - int majorDim = 0, - long style = wxRA_SPECIFY_COLS, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxRadioBoxNameStr); - - using wxWindowBase::Show; - using wxWindowBase::Enable; - using wxRadioBoxBase::GetDefaultBorder; - - virtual bool Enable(unsigned int n, bool enable = true); - virtual bool Show(unsigned int n, bool show = true); - virtual bool IsItemEnabled(unsigned int n) const; - virtual bool IsItemShown(unsigned int n) const; - - virtual unsigned int GetCount() const; - virtual wxString GetString(unsigned int n) const; - virtual void SetString(unsigned int n, const wxString& s); - - virtual void SetSelection(int n); - virtual int GetSelection() const; - - virtual QGroupBox *GetHandle() const; - -private: - // The 'visual' group box: - QGroupBox *m_qtGroupBox; - - // Handles the mutual exclusion of buttons: - QButtonGroup *m_qtButtonGroup; - - // Autofit layout for buttons (either vert. or horiz.): - QBoxLayout *m_qtBoxLayout; - - wxDECLARE_DYNAMIC_CLASS(wxRadioBox); -}; - -#endif // _WX_QT_RADIOBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/radiobut.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/radiobut.h deleted file mode 100644 index 164a0c3f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/radiobut.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/radiobut.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_RADIOBUT_H_ -#define _WX_QT_RADIOBUT_H_ - -#include <QtWidgets/QRadioButton> - -class WXDLLIMPEXP_CORE wxRadioButton : public wxControl -{ -public: - wxRadioButton(); - wxRadioButton( wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr ); - - bool Create( wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr ); - - virtual void SetValue(bool value); - virtual bool GetValue() const; - - virtual QRadioButton *GetHandle() const; - -protected: - -private: - QRadioButton *m_qtRadioButton; - - wxDECLARE_DYNAMIC_CLASS( wxRadioButton ); -}; - -#endif // _WX_QT_RADIOBUT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/region.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/region.h deleted file mode 100644 index c5ffb699..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/region.h +++ /dev/null @@ -1,86 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/region.h -// Purpose: header for wxRegion -// Author: Peter Most, Javier Torres -// Copyright: (c) Peter Most, Javier Torres -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_REGION_H_ -#define _WX_QT_REGION_H_ - -#include <QtGui/QRegion> - -class WXDLLIMPEXP_CORE wxRegion : public wxRegionBase -{ -public: - wxRegion(); - wxRegion(wxCoord x, wxCoord y, wxCoord w, wxCoord h); - wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight); - wxRegion(const wxRect& rect); - wxRegion(size_t n, const wxPoint *points, wxPolygonFillMode fillStyle = wxODDEVEN_RULE); - wxRegion(const wxBitmap& bmp); - wxRegion(const wxBitmap& bmp, const wxColour& transp, int tolerance = 0); - - virtual bool IsEmpty() const; - virtual void Clear(); - - virtual QRegion GetHandle() const; - virtual void QtSetRegion(QRegion region); // Hangs on to this region - -protected: - virtual wxGDIRefData *CreateGDIRefData() const; - virtual wxGDIRefData *CloneGDIRefData(const wxGDIRefData *data) const; - - virtual bool DoIsEqual(const wxRegion& region) const; - virtual bool DoGetBox(wxCoord& x, wxCoord& y, wxCoord& w, wxCoord& h) const; - virtual wxRegionContain DoContainsPoint(wxCoord x, wxCoord y) const; - virtual wxRegionContain DoContainsRect(const wxRect& rect) const; - - virtual bool DoOffset(wxCoord x, wxCoord y); - - virtual bool DoUnionWithRect(const wxRect& rect); - virtual bool DoUnionWithRegion(const wxRegion& region); - - virtual bool DoIntersect(const wxRegion& region); - virtual bool DoSubtract(const wxRegion& region); - virtual bool DoXor(const wxRegion& region); - -private: -}; - - - -class WXDLLIMPEXP_CORE wxRegionIterator: public wxObject -{ -public: - wxRegionIterator(); - wxRegionIterator(const wxRegion& region); - wxRegionIterator(const wxRegionIterator& ri); - ~wxRegionIterator(); - - wxRegionIterator& operator=(const wxRegionIterator& ri); - - void Reset(); - void Reset(const wxRegion& region); - - bool HaveRects() const; - operator bool () const; - - wxRegionIterator& operator ++ (); - wxRegionIterator operator ++ (int); - - wxCoord GetX() const; - wxCoord GetY() const; - wxCoord GetW() const; - wxCoord GetWidth() const; - wxCoord GetH() const; - wxCoord GetHeight() const; - wxRect GetRect() const; - -private: - QVector< QRect > *m_qtRects; - int m_pos; -}; - -#endif // _WX_QT_REGION_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/scrolbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/scrolbar.h deleted file mode 100644 index 2efa3dde..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/scrolbar.h +++ /dev/null @@ -1,54 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/scrolbar.h -// Author: Peter Most, Javier Torres, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_SCROLBAR_H_ -#define _WX_QT_SCROLBAR_H_ - -#include "wx/scrolbar.h" - -#include <QtWidgets/QScrollBar> - -class WXDLLIMPEXP_FWD_CORE wxQtScrollBar; - -class WXDLLIMPEXP_CORE wxScrollBar : public wxScrollBarBase -{ -public: - wxScrollBar(); - wxScrollBar( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr ); - - bool Create( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr ); - - virtual int GetThumbPosition() const; - virtual int GetThumbSize() const; - virtual int GetPageSize() const; - virtual int GetRange() const; - - virtual void SetThumbPosition(int viewStart); - virtual void SetScrollbar(int position, int thumbSize, - int range, int pageSize, - bool refresh = true); - - virtual QScrollBar* GetHandle() const; - -private: - QScrollBar *m_qtScrollBar; - - wxDECLARE_DYNAMIC_CLASS(wxScrollBar); -}; - - -#endif // _WX_QT_SCROLBAR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/slider.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/slider.h deleted file mode 100644 index 1c103d09..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/slider.h +++ /dev/null @@ -1,61 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/slider.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_SLIDER_H_ -#define _WX_QT_SLIDER_H_ - -#include <QtWidgets/QSlider> - -class WXDLLIMPEXP_CORE wxSlider : public wxSliderBase -{ -public: - wxSlider(); - wxSlider(wxWindow *parent, - wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr); - - virtual int GetValue() const; - virtual void SetValue(int value); - - virtual void SetRange(int minValue, int maxValue); - virtual int GetMin() const; - virtual int GetMax() const; - - virtual void DoSetTickFreq(int freq); - virtual int GetTickFreq() const; - - virtual void SetLineSize(int lineSize); - virtual void SetPageSize(int pageSize); - virtual int GetLineSize() const; - virtual int GetPageSize() const; - - virtual void SetThumbLength(int lenPixels); - virtual int GetThumbLength() const; - - virtual QSlider *GetHandle() const; - -private: - QSlider *m_qtSlider; - - wxDECLARE_DYNAMIC_CLASS( wxSlider ); -}; - -#endif // _WX_QT_SLIDER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/spinbutt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/spinbutt.h deleted file mode 100644 index 96a32947..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/spinbutt.h +++ /dev/null @@ -1,43 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/spinbutt.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_SPINBUTT_H_ -#define _WX_QT_SPINBUTT_H_ - -#include "wx/spinbutt.h" -#include <QtWidgets/QSpinBox> - -class WXDLLIMPEXP_CORE wxSpinButton : public wxSpinButtonBase -{ -public: - wxSpinButton(); - wxSpinButton(wxWindow *parent, - wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL, - const wxString& name = wxSPIN_BUTTON_NAME); - - bool Create(wxWindow *parent, - wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL, - const wxString& name = wxSPIN_BUTTON_NAME); - - virtual int GetValue() const; - virtual void SetValue(int val); - - virtual QSpinBox *GetHandle() const; - -private: - QSpinBox *m_qtSpinBox; - - wxDECLARE_DYNAMIC_CLASS( wxSpinButton ); -}; - -#endif // _WX_QT_SPINBUTT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/spinctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/spinctrl.h deleted file mode 100644 index 6d016eb1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/spinctrl.h +++ /dev/null @@ -1,127 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/spinctrl.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_SPINCTRL_H_ -#define _WX_QT_SPINCTRL_H_ - -#include <QtWidgets/QSpinBox> -#include <QtWidgets/QDoubleSpinBox> - -// Take advantage of the Qt compile time polymorphy and use a template to avoid -// copy&paste code for the usage of QSpinBox/QDoubleSpinBox. - -template < typename T, typename Widget > -class WXDLLIMPEXP_CORE wxSpinCtrlQt : public wxSpinCtrlBase -{ -public: - wxSpinCtrlQt(); - wxSpinCtrlQt( wxWindow *parent, wxWindowID id, const wxString& value, - const wxPoint& pos, const wxSize& size, long style, - T min, T max, T initial, T inc, - const wxString& name ); - - bool Create( wxWindow *parent, wxWindowID id, const wxString& value, - const wxPoint& pos, const wxSize& size, long style, - T min, T max, T initial, T inc, - const wxString& name ); - - virtual void SetValue(const wxString&) {} - - virtual void SetSnapToTicks(bool snap_to_ticks); - virtual bool GetSnapToTicks() const; - - virtual void SetSelection(long from, long to); - - virtual void SetValue(T val); - void SetRange(T minVal, T maxVal); - void SetIncrement(T inc); - - T GetValue() const; - T GetMin() const; - T GetMax() const; - T GetIncrement() const; - - virtual Widget *GetHandle() const; - -protected: - Widget *m_qtSpinBox; - -}; - -class WXDLLIMPEXP_CORE wxSpinCtrl : public wxSpinCtrlQt< int, QSpinBox > -{ -public: - wxSpinCtrl(); - wxSpinCtrl(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, - int min = 0, int max = 100, int initial = 0, - const wxString& name = wxT("wxSpinCtrl")); - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, - int min = 0, int max = 100, int initial = 0, - const wxString& name = wxT("wxSpinCtrl")); - virtual int GetBase() const wxOVERRIDE { return m_base; } - virtual bool SetBase(int base) wxOVERRIDE; - virtual void SetValue(const wxString & val); - virtual void SetValue(int val) { wxSpinCtrlQt::SetValue(val); } - -private: - // Common part of all ctors. - void Init() - { - m_base = 10; - } - int m_base; - wxDECLARE_DYNAMIC_CLASS(wxSpinCtrl); -}; - -class WXDLLIMPEXP_CORE wxSpinCtrlDouble : public wxSpinCtrlQt< double, QDoubleSpinBox > -{ -public: - wxSpinCtrlDouble(); - wxSpinCtrlDouble(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, - double min = 0, double max = 100, double initial = 0, - double inc = 1, - const wxString& name = wxT("wxSpinCtrlDouble")); - - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_ARROW_KEYS | wxALIGN_RIGHT, - double min = 0, double max = 100, double initial = 0, - double inc = 1, - const wxString& name = wxT("wxSpinCtrlDouble")); - - void SetDigits(unsigned digits); - unsigned GetDigits() const; - - virtual int GetBase() const wxOVERRIDE { return 10; } - virtual bool SetBase(int WXUNUSED(base)) wxOVERRIDE { return false; } - virtual void SetValue(const wxString & val); - virtual void SetValue(double val) { wxSpinCtrlQt::SetValue(val); } - -private: - wxDECLARE_DYNAMIC_CLASS( wxSpinCtrlDouble ); -}; - -#endif // _WX_QT_SPINCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statbmp.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statbmp.h deleted file mode 100644 index a4b87687..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statbmp.h +++ /dev/null @@ -1,47 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/statbmp.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_STATBMP_H_ -#define _WX_QT_STATBMP_H_ - -#include <QtWidgets/QLabel> - -class WXDLLIMPEXP_CORE wxStaticBitmap : public wxStaticBitmapBase -{ -public: - wxStaticBitmap(); - wxStaticBitmap( wxWindow *parent, - wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr ); - - bool Create( wxWindow *parent, - wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr); - - virtual void SetIcon(const wxIcon& icon); - virtual void SetBitmap(const wxBitmap& bitmap); - virtual wxBitmap GetBitmap() const; - virtual wxIcon GetIcon() const; - - virtual QLabel *GetHandle() const; -protected: - -private: - QLabel *m_qtLabel; - - wxDECLARE_DYNAMIC_CLASS(wxStaticBitmap); -}; - -#endif // _WX_QT_STATBMP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statbox.h deleted file mode 100644 index 4259f74e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statbox.h +++ /dev/null @@ -1,44 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/statbox.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_STATBOX_H_ -#define _WX_QT_STATBOX_H_ - -#include <QtWidgets/QGroupBox> - -class WXDLLIMPEXP_CORE wxStaticBox : public wxStaticBoxBase -{ -public: - wxStaticBox(); - - wxStaticBox(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr); - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr); - - virtual void GetBordersForSizer(int *borderTop, int *borderOther) const; - - virtual QGroupBox *GetHandle() const; - -protected: - -private: - QGroupBox *m_qtGroupBox; - - wxDECLARE_DYNAMIC_CLASS( wxStaticBox ); -}; - -#endif // _WX_QT_STATBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statline.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statline.h deleted file mode 100644 index d65706b6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statline.h +++ /dev/null @@ -1,40 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/statline.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_STATLINE_H_ -#define _WX_QT_STATLINE_H_ - -#include <QtWidgets/QFrame> - -class WXDLLIMPEXP_CORE wxStaticLine : public wxStaticLineBase -{ -public: - wxStaticLine(); - - wxStaticLine( wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxLI_HORIZONTAL, - const wxString &name = wxStaticLineNameStr ); - - bool Create( wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxLI_HORIZONTAL, - const wxString &name = wxStaticLineNameStr ); - - virtual QFrame *GetHandle() const; - -private: - QFrame *m_qtFrame; - - wxDECLARE_DYNAMIC_CLASS( wxStaticLine ); -}; - -#endif // _WX_QT_STATLINE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/stattext.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/stattext.h deleted file mode 100644 index 0aae47e7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/stattext.h +++ /dev/null @@ -1,42 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/stattext.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_STATTEXT_H_ -#define _WX_QT_STATTEXT_H_ - -#include <QtWidgets/QLabel> - -class WXDLLIMPEXP_CORE wxStaticText : public wxStaticTextBase -{ -public: - wxStaticText(); - wxStaticText(wxWindow *parent, - wxWindowID id, - const wxString &label, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = 0, - const wxString &name = wxStaticTextNameStr ); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString &label, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = 0, - const wxString &name = wxStaticTextNameStr ); - - void SetLabel(const wxString& label); - - QLabel *GetHandle() const; -private: - QLabel *m_qtLabel; - - wxDECLARE_DYNAMIC_CLASS( wxStaticText ); -}; - -#endif // _WX_QT_STATTEXT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statusbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statusbar.h deleted file mode 100644 index 233e506e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/statusbar.h +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/statusbar.h -// Author: Peter Most, Javier Torres, Mariano Reingart, Sean D'Epagnier -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_STATUSBAR_H_ -#define _WX_QT_STATUSBAR_H_ - -#include "wx/statusbr.h" - -#include <QtWidgets/QLabel> -#include <QtWidgets/QStatusBar> - -class WXDLLIMPEXP_CORE wxStatusBar : public wxStatusBarBase -{ -public: - wxStatusBar() {} - wxStatusBar(wxWindow *parent, wxWindowID winid = wxID_ANY, - long style = wxSTB_DEFAULT_STYLE, - const wxString& name = wxStatusBarNameStr); - - bool Create(wxWindow *parent, wxWindowID winid = wxID_ANY, - long style = wxSTB_DEFAULT_STYLE, - const wxString& name = wxStatusBarNameStr); - - virtual bool GetFieldRect(int i, wxRect& rect) const; - virtual void SetMinHeight(int height); - virtual int GetBorderX() const; - virtual int GetBorderY() const; - virtual void Refresh( bool eraseBackground = true, - const wxRect *rect = (const wxRect *) NULL ); - - virtual QStatusBar *GetHandle() const; - -protected: - virtual void DoUpdateStatusText(int number); - -private: - void Init(); - void UpdateFields(); - - QStatusBar *m_qtStatusBar; - QList< QLabel* > m_qtPanes; - - wxDECLARE_DYNAMIC_CLASS(wxStatusBar); -}; - - -#endif // _WX_QT_STATUSBAR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/taskbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/taskbar.h deleted file mode 100644 index 6a29f937..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/taskbar.h +++ /dev/null @@ -1,34 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/taskbar.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_TASKBAR_H_ -#define _WX_QT_TASKBAR_H_ - -#include <QtWidgets/QSystemTrayIcon> - -class WXDLLIMPEXP_CORE wxTaskBarIcon : public wxTaskBarIconBase -{ -public: - wxTaskBarIcon(wxTaskBarIconType iconType = wxTBI_DEFAULT_TYPE); - - // Accessors - bool IsOk() const { return false; } - bool IsIconInstalled() const { return false; } - - // Operations - virtual bool SetIcon(const wxIcon& icon, - const wxString& tooltip = wxEmptyString); - virtual bool RemoveIcon(); - virtual bool PopupMenu(wxMenu *menu); - -private: - QSystemTrayIcon m_qtSystemTrayIcon; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxTaskBarIcon); -}; - -#endif // _WX_QT_TASKBAR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/textctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/textctrl.h deleted file mode 100644 index 864165c8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/textctrl.h +++ /dev/null @@ -1,79 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/textctrl.h -// Author: Mariano Reingart, Peter Most -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_TEXTCTRL_H_ -#define _WX_QT_TEXTCTRL_H_ - -#include <QtWidgets/QLineEdit> -#include <QtWidgets/QTextEdit> - -class WXDLLIMPEXP_CORE wxTextCtrl : public wxTextCtrlBase -{ -public: - wxTextCtrl(); - wxTextCtrl(wxWindow *parent, - wxWindowID id, - const wxString &value = wxEmptyString, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString &name = wxTextCtrlNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString &value = wxEmptyString, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString &name = wxTextCtrlNameStr); - - virtual int GetLineLength(long lineNo) const; - virtual wxString GetLineText(long lineNo) const; - virtual int GetNumberOfLines() const; - - virtual bool IsModified() const; - virtual void MarkDirty(); - virtual void DiscardEdits(); - - virtual bool SetStyle(long start, long end, const wxTextAttr& style); - virtual bool GetStyle(long position, wxTextAttr& style); - virtual bool SetDefaultStyle(const wxTextAttr& style); - - virtual long XYToPosition(long x, long y) const; - virtual bool PositionToXY(long pos, long *x, long *y) const; - - virtual void ShowPosition(long pos); - - virtual void SetInsertionPoint(long pos); - virtual long GetInsertionPoint() const; - virtual void SetSelection( long from, long to ); - virtual void GetSelection(long *from, long *to) const; - - virtual wxString DoGetValue() const; - virtual void DoSetValue(const wxString &text, int flags = 0); - virtual void WriteText(const wxString& text); - - virtual QWidget *GetHandle() const; - -protected: - virtual wxSize DoGetBestSize() const; - - virtual bool DoLoadFile(const wxString& file, int fileType); - virtual bool DoSaveFile(const wxString& file, int fileType); - - virtual QScrollArea *QtGetScrollBarsContainer() const; - -private: - QLineEdit *m_qtLineEdit; - QTextEdit *m_qtTextEdit; - - wxDECLARE_DYNAMIC_CLASS( wxTextCtrl ); -}; - -#endif // _WX_QT_TEXTCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/textentry.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/textentry.h deleted file mode 100644 index 26261c31..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/textentry.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/textentry.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_TEXTENTRY_H_ -#define _WX_QT_TEXTENTRY_H_ - -class WXDLLIMPEXP_CORE wxTextEntry : public wxTextEntryBase -{ -public: - wxTextEntry(); - - virtual void WriteText(const wxString& text); - - virtual void Remove(long from, long to); - - virtual void Copy(); - virtual void Cut(); - virtual void Paste(); - - virtual void Undo(); - virtual void Redo(); - virtual bool CanUndo() const; - virtual bool CanRedo() const; - - virtual void SetInsertionPoint(long pos); - virtual long GetInsertionPoint() const; - virtual long GetLastPosition() const; - - virtual void SetSelection(long from, long to); - virtual void GetSelection(long *from, long *to) const; - - virtual bool IsEditable() const; - virtual void SetEditable(bool editable); - -protected: - virtual wxString DoGetValue() const; - virtual void DoSetValue(const wxString& value, int flags=0); - - virtual wxWindow *GetEditableWindow(); - -private: -}; - -#endif // _WX_QT_TEXTENTRY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/tglbtn.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/tglbtn.h deleted file mode 100644 index 1aee7558..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/tglbtn.h +++ /dev/null @@ -1,78 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/tglbtn.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_TGLBTN_H_ -#define _WX_QT_TGLBTN_H_ - -#include "wx/tglbtn.h" - -extern WXDLLIMPEXP_DATA_CORE(const char) wxCheckBoxNameStr[]; - -class WXDLLIMPEXP_CORE wxBitmapToggleButton: public wxToggleButtonBase -{ -public: - wxBitmapToggleButton(); - wxBitmapToggleButton(wxWindow *parent, - wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - - virtual void SetValue(bool state); - virtual bool GetValue() const; - - virtual QPushButton *GetHandle() const; - -private: - wxDECLARE_DYNAMIC_CLASS(wxBitmapToggleButton); - -}; - - - -class WXDLLIMPEXP_CORE wxToggleButton : public wxToggleButtonBase -{ -public: - wxToggleButton(); - wxToggleButton(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - - virtual void SetValue(bool state); - virtual bool GetValue() const; - - virtual QPushButton *GetHandle() const; - -private: - -}; - -#endif // _WX_QT_TGLBTN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/timer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/timer.h deleted file mode 100644 index cfb875f8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/timer.h +++ /dev/null @@ -1,39 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/timer.h -// Author: Javier Torres -// Copyright: (c) Javier Torres -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_TIMER_H_ -#define _WX_QT_TIMER_H_ - -#if wxUSE_TIMER - -#include "wx/private/timer.h" - -#include <QtCore/QObject> - -//----------------------------------------------------------------------------- -// wxTimer -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxQtTimerImpl : public wxTimerImpl, QObject -{ -public: - wxQtTimerImpl( wxTimer* timer ); - - virtual bool Start( int millisecs = -1, bool oneShot = false ); - virtual void Stop(); - virtual bool IsRunning() const; - -protected: - virtual void timerEvent( QTimerEvent * event ); - -private: - int m_timerId; -}; - -#endif // wxUSE_TIMER - -#endif // _WX_QT_TIMER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/toolbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/toolbar.h deleted file mode 100644 index 0c9e4506..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/toolbar.h +++ /dev/null @@ -1,78 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/toolbar.h -// Author: Sean D'Epagnier, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include <QtWidgets/QToolBar> - -#ifndef _WX_QT_TOOLBAR_H_ -#define _WX_QT_TOOLBAR_H_ - -class QActionGroup; -class wxQtToolBar; - -class WXDLLIMPEXP_CORE wxToolBar : public wxToolBarBase -{ -public: - - wxToolBar() { Init(); } - wxToolBar(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTB_DEFAULT_STYLE | wxNO_BORDER, - const wxString& name = wxToolBarNameStr) - { - Init(); - - Create(parent, id, pos, size, style, name); - } - - virtual ~wxToolBar(); - - void Init(); - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTB_DEFAULT_STYLE | wxNO_BORDER, - const wxString& name = wxToolBarNameStr); - - virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const; - virtual QToolBar *GetHandle() const; - - virtual void SetWindowStyleFlag( long style ); - virtual bool Realize() wxOVERRIDE; - - virtual wxToolBarToolBase *CreateTool(int toolid, - const wxString& label, - const wxBitmap& bmpNormal, - const wxBitmap& bmpDisabled, - wxItemKind kind, - wxObject *clientData, - const wxString& shortHelp, - const wxString& longHelp); - - virtual wxToolBarToolBase *CreateTool(wxControl *control, - const wxString& label); - -protected: - - QActionGroup* GetActionGroup(size_t pos); - virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool); - virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool); - virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable); - virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle); - virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle); - -private: - Qt::ToolButtonStyle GetButtonStyle(); - - QToolBar *m_qtToolBar; - - wxDECLARE_DYNAMIC_CLASS(wxToolBar); -}; - -#endif // _WX_QT_TOOLBAR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/tooltip.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/tooltip.h deleted file mode 100644 index 3d6a4a40..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/tooltip.h +++ /dev/null @@ -1,41 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/tooltip.h -// Author: Peter Most, Mariano Reingart -// Copyright: (c) 2010 wxWidgets dev team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_TOOLTIP_H_ -#define _WX_QT_TOOLTIP_H_ - -#include "wx/object.h" - -class WXDLLIMPEXP_CORE wxToolTip : public wxObject -{ -public: - // controlling tooltip behaviour: globally change tooltip parameters - // enable or disable the tooltips globally - static void Enable(bool flag); - // set the delay after which the tooltip appears - static void SetDelay(long milliseconds); - // set the delay after which the tooltip disappears or how long the - // tooltip remains visible - static void SetAutoPop(long milliseconds); - // set the delay between subsequent tooltips to appear - static void SetReshow(long milliseconds); - - wxToolTip(const wxString &tip); - - void SetTip(const wxString& tip); - const wxString& GetTip() const; - - // the window we're associated with - void SetWindow(wxWindow *win); - wxWindow *GetWindow() const { return m_window; } - -private: - wxString m_text; - wxWindow* m_window; // main window we're associated with -}; - -#endif // _WX_QT_TOOLTIP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/toplevel.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/toplevel.h deleted file mode 100644 index 2e7bd198..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/toplevel.h +++ /dev/null @@ -1,49 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/toplevel.h -// Purpose: declares wxTopLevelWindowNative class -// Author: Peter Most, Javier Torres, Mariano Reingart -// Copyright: (c) 2009 wxWidgets dev team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_TOPLEVEL_H_ -#define _WX_QT_TOPLEVEL_H_ - -class WXDLLIMPEXP_CORE wxTopLevelWindowQt : public wxTopLevelWindowBase -{ -public: - wxTopLevelWindowQt(); - wxTopLevelWindowQt(wxWindow *parent, - wxWindowID winid, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - virtual void Maximize(bool maximize = true); - virtual void Restore(); - virtual void Iconize(bool iconize = true); - virtual bool IsMaximized() const; - virtual bool IsIconized() const; - - virtual bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL); - virtual bool IsFullScreen() const; - virtual void SetTitle(const wxString& title); - virtual wxString GetTitle() const; - virtual void SetIcons(const wxIconBundle& icons); - - // Styles - virtual void SetWindowStyleFlag( long style ); - virtual long GetWindowStyleFlag() const; -}; - -#endif // _WX_QT_TOPLEVEL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/treectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/treectrl.h deleted file mode 100644 index af832c52..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/treectrl.h +++ /dev/null @@ -1,141 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/treectrl.h -// Author: Peter Most -// Copyright: (c) Peter Most -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_TREECTRL_H_ -#define _WX_QT_TREECTRL_H_ - -#include <QtWidgets/QTreeWidget> - -class WXDLLIMPEXP_CORE wxTreeCtrl : public wxTreeCtrlBase -{ -public: - wxTreeCtrl(); - wxTreeCtrl(wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTreeCtrlNameStr); - - bool Create(wxWindow *parent, wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTreeCtrlNameStr); - - virtual unsigned int GetCount() const; - - virtual unsigned int GetIndent() const; - virtual void SetIndent(unsigned int indent); - - virtual void SetImageList(wxImageList *imageList); - virtual void SetStateImageList(wxImageList *imageList); - - virtual wxString GetItemText(const wxTreeItemId& item) const; - virtual int GetItemImage(const wxTreeItemId& item, - wxTreeItemIcon which = wxTreeItemIcon_Normal) const; - virtual wxTreeItemData *GetItemData(const wxTreeItemId& item) const; - virtual wxColour GetItemTextColour(const wxTreeItemId& item) const; - virtual wxColour GetItemBackgroundColour(const wxTreeItemId& item) const; - virtual wxFont GetItemFont(const wxTreeItemId& item) const; - - virtual void SetItemText(const wxTreeItemId& item, const wxString& text); - virtual void SetItemImage(const wxTreeItemId& item, - int image, - wxTreeItemIcon which = wxTreeItemIcon_Normal); - virtual void SetItemData(const wxTreeItemId& item, wxTreeItemData *data); - virtual void SetItemHasChildren(const wxTreeItemId& item, bool has = true); - virtual void SetItemBold(const wxTreeItemId& item, bool bold = true); - virtual void SetItemDropHighlight(const wxTreeItemId& item, bool highlight = true); - virtual void SetItemTextColour(const wxTreeItemId& item, const wxColour& col); - virtual void SetItemBackgroundColour(const wxTreeItemId& item, const wxColour& col); - virtual void SetItemFont(const wxTreeItemId& item, const wxFont& font); - - virtual bool IsVisible(const wxTreeItemId& item) const; - virtual bool ItemHasChildren(const wxTreeItemId& item) const; - virtual bool IsExpanded(const wxTreeItemId& item) const; - virtual bool IsSelected(const wxTreeItemId& item) const; - virtual bool IsBold(const wxTreeItemId& item) const; - - virtual size_t GetChildrenCount(const wxTreeItemId& item, bool recursively = true) const; - - virtual wxTreeItemId GetRootItem() const; - virtual wxTreeItemId GetSelection() const; - virtual size_t GetSelections(wxArrayTreeItemIds& selections) const; - - virtual void SetFocusedItem(const wxTreeItemId& item); - virtual void ClearFocusedItem(); - virtual wxTreeItemId GetFocusedItem() const; - - virtual wxTreeItemId GetItemParent(const wxTreeItemId& item) const; - - virtual wxTreeItemId GetFirstChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const; - virtual wxTreeItemId GetNextChild(const wxTreeItemId& item, wxTreeItemIdValue& cookie) const; - virtual wxTreeItemId GetLastChild(const wxTreeItemId& item) const; - virtual wxTreeItemId GetNextSibling(const wxTreeItemId& item) const; - virtual wxTreeItemId GetPrevSibling(const wxTreeItemId& item) const; - virtual wxTreeItemId GetFirstVisibleItem() const; - virtual wxTreeItemId GetNextVisible(const wxTreeItemId& item) const; - virtual wxTreeItemId GetPrevVisible(const wxTreeItemId& item) const; - - virtual wxTreeItemId AddRoot(const wxString& text, - int image = -1, int selImage = -1, - wxTreeItemData *data = NULL); - - virtual void Delete(const wxTreeItemId& item); - virtual void DeleteChildren(const wxTreeItemId& item); - virtual void DeleteAllItems(); - - virtual void Expand(const wxTreeItemId& item); - virtual void Collapse(const wxTreeItemId& item); - virtual void CollapseAndReset(const wxTreeItemId& item); - virtual void Toggle(const wxTreeItemId& item); - - virtual void Unselect(); - virtual void UnselectAll(); - virtual void SelectItem(const wxTreeItemId& item, bool select = true); - virtual void SelectChildren(const wxTreeItemId& parent); - - virtual void EnsureVisible(const wxTreeItemId& item); - virtual void ScrollTo(const wxTreeItemId& item); - - virtual wxTextCtrl *EditLabel(const wxTreeItemId& item, wxClassInfo* textCtrlClass = CLASSINFO(wxTextCtrl)); - virtual wxTextCtrl *GetEditControl() const; - virtual void EndEditLabel(const wxTreeItemId& item, bool discardChanges = false); - - virtual void SortChildren(const wxTreeItemId& item); - - virtual bool GetBoundingRect(const wxTreeItemId& item, wxRect& rect, bool textOnly = false) const; - - virtual QTreeWidget *GetHandle() const; - -protected: - virtual int DoGetItemState(const wxTreeItemId& item) const; - virtual void DoSetItemState(const wxTreeItemId& item, int state); - - virtual wxTreeItemId DoInsertItem(const wxTreeItemId& parent, - size_t pos, - const wxString& text, - int image, int selImage, - wxTreeItemData *data); - - virtual wxTreeItemId DoInsertAfter(const wxTreeItemId& parent, - const wxTreeItemId& idPrevious, - const wxString& text, - int image = -1, int selImage = -1, - wxTreeItemData *data = NULL); - - virtual wxTreeItemId DoTreeHitTest(const wxPoint& point, int& flags) const; - -private: - QTreeWidget *m_qtTreeWidget; - - wxDECLARE_DYNAMIC_CLASS(wxTreeCtrl); -}; - -#endif // _WX_QT_TREECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/window.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/window.h deleted file mode 100644 index 30027400..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/qt/window.h +++ /dev/null @@ -1,216 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/qt/window.h -// Purpose: wxWindow class -// Author: Peter Most, Javier Torres, Mariano Reingart -// Copyright: (c) 2009 wxWidgets dev team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QT_WINDOW_H_ -#define _WX_QT_WINDOW_H_ - -#include <QtWidgets/QWidget> -#include <QtWidgets/QScrollArea> - -class WXDLLIMPEXP_FWD_CORE wxScrollBar; -class WXDLLIMPEXP_FWD_CORE wxQtShortcutHandler; - -/* wxQt specific notes: - * - * Remember to implement the Qt object getters on all subclasses: - * - GetHandle() returns the Qt object - * - QtGetScrollBarsContainer() returns the widget where scrollbars are placed - * For example, for wxFrame, GetHandle() is the QMainWindow, - * QtGetScrollBarsContainer() is the central widget and QtGetContainer() is a widget - * in a layout inside the central widget that also contains the scrollbars. - * Return 0 from QtGetScrollBarsContainer() to disable SetScrollBar() and friends - * for wxWindow subclasses. - * - * - * Event handling is achieved by using the template class wxQtEventForwarder - * found in winevent_qt.(h|cpp) to send all Qt events here to QtHandleXXXEvent() - * methods. All these methods receive the Qt event and the handler. This is - * done because events of the containers (the scrolled part of the window) are - * sent to the same wxWindow instance, that must be able to differenciate them - * as some events need different handling (paintEvent) depending on that. - * We pass the QWidget pointer to all event handlers for consistency. - */ -class WXDLLIMPEXP_CORE wxWindowQt : public wxWindowBase -{ -public: - wxWindowQt(); - ~wxWindowQt(); - wxWindowQt(wxWindowQt *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - - bool Create(wxWindowQt *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - - // Used by all window classes in the widget creation process. - void PostCreation( bool generic = true ); - - void AddChild( wxWindowBase *child ); - - virtual bool Show( bool show = true ); - - virtual void SetLabel(const wxString& label); - virtual wxString GetLabel() const; - - virtual void DoEnable( bool enable ); - virtual void SetFocus(); - - // Parent/Child: - static void QtReparent( QWidget *child, QWidget *parent ); - virtual bool Reparent( wxWindowBase *newParent ); - - // Z-order - virtual void Raise(); - virtual void Lower(); - - // move the mouse to the specified position - virtual void WarpPointer(int x, int y); - - virtual void Update(); - virtual void Refresh( bool eraseBackground = true, - const wxRect *rect = (const wxRect *) NULL ); - - virtual bool SetFont(const wxFont& font); - - // get the (average) character size for the current font - virtual int GetCharHeight() const; - virtual int GetCharWidth() const; - - virtual void SetScrollbar( int orient, - int pos, - int thumbvisible, - int range, - bool refresh = true ); - virtual void SetScrollPos( int orient, int pos, bool refresh = true ); - virtual int GetScrollPos( int orient ) const; - virtual int GetScrollThumb( int orient ) const; - virtual int GetScrollRange( int orient ) const; - - // scroll window to the specified position - virtual void ScrollWindow( int dx, int dy, - const wxRect* rect = NULL ); - - // Styles - virtual void SetWindowStyleFlag( long style ); - virtual void SetExtraStyle( long exStyle ); - - virtual bool SetBackgroundStyle(wxBackgroundStyle style); - virtual bool IsTransparentBackgroundSupported(wxString* reason = NULL) const; - virtual bool SetTransparent(wxByte alpha); - virtual bool CanSetTransparent() { return true; } - - virtual WXWidget GetHandle() const; - - virtual void SetDropTarget( wxDropTarget *dropTarget ); - -#if wxUSE_ACCEL - // accelerators - // ------------ - virtual void SetAcceleratorTable( const wxAcceleratorTable& accel ); -#endif // wxUSE_ACCEL - - // wxQt implementation internals: - - virtual QPicture *QtGetPicture() const; - - QPainter *QtGetPainter(); - - virtual bool QtHandlePaintEvent ( QWidget *handler, QPaintEvent *event ); - virtual bool QtHandleResizeEvent ( QWidget *handler, QResizeEvent *event ); - virtual bool QtHandleWheelEvent ( QWidget *handler, QWheelEvent *event ); - virtual bool QtHandleKeyEvent ( QWidget *handler, QKeyEvent *event ); - virtual bool QtHandleMouseEvent ( QWidget *handler, QMouseEvent *event ); - virtual bool QtHandleEnterEvent ( QWidget *handler, QEvent *event ); - virtual bool QtHandleMoveEvent ( QWidget *handler, QMoveEvent *event ); - virtual bool QtHandleShowEvent ( QWidget *handler, QEvent *event ); - virtual bool QtHandleChangeEvent ( QWidget *handler, QEvent *event ); - virtual bool QtHandleCloseEvent ( QWidget *handler, QCloseEvent *event ); - virtual bool QtHandleContextMenuEvent ( QWidget *handler, QContextMenuEvent *event ); - virtual bool QtHandleFocusEvent ( QWidget *handler, QFocusEvent *event ); - - static void QtStoreWindowPointer( QWidget *widget, const wxWindowQt *window ); - static wxWindowQt *QtRetrieveWindowPointer( const QWidget *widget ); - -#if wxUSE_ACCEL - virtual void QtHandleShortcut ( int command ); -#endif // wxUSE_ACCEL - - virtual QAbstractScrollArea *QtGetScrollBarsContainer() const; - -protected: - virtual void DoGetTextExtent(const wxString& string, - int *x, int *y, - int *descent = NULL, - int *externalLeading = NULL, - const wxFont *font = NULL) const; - - // coordinates translation - virtual void DoClientToScreen( int *x, int *y ) const; - virtual void DoScreenToClient( int *x, int *y ) const; - - // capture/release the mouse, used by Capture/ReleaseMouse() - virtual void DoCaptureMouse(); - virtual void DoReleaseMouse(); - - // retrieve the position/size of the window - virtual void DoGetPosition(int *x, int *y) const; - - virtual void DoSetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - virtual void DoGetSize(int *width, int *height) const; - - // same as DoSetSize() for the client size - virtual void DoSetClientSize(int width, int height); - virtual void DoGetClientSize(int *width, int *height) const; - - virtual void DoMoveWindow(int x, int y, int width, int height); - -#if wxUSE_TOOLTIPS - virtual void DoSetToolTip( wxToolTip *tip ); -#endif // wxUSE_TOOLTIPS - -#if wxUSE_MENUS - virtual bool DoPopupMenu(wxMenu *menu, int x, int y); -#endif // wxUSE_MENUS - - QWidget *m_qtWindow; - -private: - void Init(); - QScrollArea *m_qtContainer; - - wxScrollBar *m_horzScrollBar; - wxScrollBar *m_vertScrollBar; - void QtOnScrollBarEvent( wxScrollEvent& event ); - - wxScrollBar *QtGetScrollBar( int orientation ) const; - wxScrollBar *QtSetScrollBar( int orientation, wxScrollBar *scrollBar=NULL ); - - bool QtSetBackgroundStyle(); - - QPicture *m_qtPicture; - QPainter *m_qtPainter; - - bool m_mouseInside; - -#if wxUSE_ACCEL - QList< QShortcut* > m_qtShortcuts; - wxQtShortcutHandler *m_qtShortcutHandler; - bool m_processingShortcut; -#endif // wxUSE_ACCEL - - wxDECLARE_DYNAMIC_CLASS_NO_COPY( wxWindowQt ); -}; - -#endif // _WX_QT_WINDOW_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/quantize.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/quantize.h deleted file mode 100644 index 366194f1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/quantize.h +++ /dev/null @@ -1,75 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/quantize.h -// Purpose: wxQuantizer class -// Author: Julian Smart -// Modified by: -// Created: 22/6/2000 -// Copyright: (c) Julian Smart -// Licence: -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_QUANTIZE_H_ -#define _WX_QUANTIZE_H_ - -#include "wx/object.h" - -/* - * From jquant2.c - * - * Copyright (C) 1991-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - */ - -class WXDLLIMPEXP_FWD_CORE wxImage; -class WXDLLIMPEXP_FWD_CORE wxPalette; - -/* - * wxQuantize - * Based on the JPEG quantization code. Reduces the number of colours in a wxImage. - */ - -#define wxQUANTIZE_INCLUDE_WINDOWS_COLOURS 0x01 -#define wxQUANTIZE_RETURN_8BIT_DATA 0x02 -#define wxQUANTIZE_FILL_DESTINATION_IMAGE 0x04 - -class WXDLLIMPEXP_CORE wxQuantize: public wxObject -{ -public: - wxDECLARE_DYNAMIC_CLASS(wxQuantize); - -//// Constructor - - wxQuantize() {} - virtual ~wxQuantize() {} - -//// Operations - - // Reduce the colours in the source image and put the result into the - // destination image. Both images may be the same, to overwrite the source image. - // Specify an optional palette pointer to receive the resulting palette. - // This palette may be passed to ConvertImageToBitmap, for example. - // If you pass a palette pointer, you must free the palette yourself. - - static bool Quantize(const wxImage& src, wxImage& dest, wxPalette** pPalette, int desiredNoColours = 236, - unsigned char** eightBitData = 0, int flags = wxQUANTIZE_INCLUDE_WINDOWS_COLOURS|wxQUANTIZE_FILL_DESTINATION_IMAGE|wxQUANTIZE_RETURN_8BIT_DATA); - - // This version sets a palette in the destination image so you don't - // have to manage it yourself. - - static bool Quantize(const wxImage& src, wxImage& dest, int desiredNoColours = 236, - unsigned char** eightBitData = 0, int flags = wxQUANTIZE_INCLUDE_WINDOWS_COLOURS|wxQUANTIZE_FILL_DESTINATION_IMAGE|wxQUANTIZE_RETURN_8BIT_DATA); - -//// Helpers - - // Converts input bitmap(s) into 8bit representation with custom palette - - // in_rows and out_rows are arrays [0..h-1] of pointer to rows - // (in_rows contains w * 3 bytes per row, out_rows w bytes per row) - // fills out_rows with indexes into palette (which is also stored into palette variable) - static void DoQuantize(unsigned w, unsigned h, unsigned char **in_rows, unsigned char **out_rows, unsigned char *palette, int desiredNoColours); - -}; - -#endif - // _WX_QUANTIZE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/radiobox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/radiobox.h deleted file mode 100644 index ab9c22a6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/radiobox.h +++ /dev/null @@ -1,172 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/radiobox.h -// Purpose: wxRadioBox declaration -// Author: Vadim Zeitlin -// Modified by: -// Created: 10.09.00 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBOX_H_BASE_ -#define _WX_RADIOBOX_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_RADIOBOX - -#include "wx/ctrlsub.h" - -#if wxUSE_TOOLTIPS - -#include "wx/dynarray.h" - -class WXDLLIMPEXP_FWD_CORE wxToolTip; - -WX_DEFINE_EXPORTED_ARRAY_PTR(wxToolTip *, wxToolTipArray); - -#endif // wxUSE_TOOLTIPS - -extern WXDLLIMPEXP_DATA_CORE(const char) wxRadioBoxNameStr[]; - -// ---------------------------------------------------------------------------- -// wxRadioBoxBase is not a normal base class, but rather a mix-in because the -// real wxRadioBox derives from different classes on different platforms: for -// example, it is a wxStaticBox in wxUniv and wxMSW but not in other ports -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxRadioBoxBase : public wxItemContainerImmutable -{ -public: - virtual ~wxRadioBoxBase(); - - // change/query the individual radio button state - virtual bool Enable(unsigned int n, bool enable = true) = 0; - virtual bool Show(unsigned int n, bool show = true) = 0; - virtual bool IsItemEnabled(unsigned int n) const = 0; - virtual bool IsItemShown(unsigned int n) const = 0; - - // return number of columns/rows in this radiobox - unsigned int GetColumnCount() const { return m_numCols; } - unsigned int GetRowCount() const { return m_numRows; } - - // return the next active (i.e. shown and not disabled) item above/below/to - // the left/right of the given one - int GetNextItem(int item, wxDirection dir, long style) const; - -#if wxUSE_TOOLTIPS - // set the tooltip text for a radio item, empty string unsets any tooltip - void SetItemToolTip(unsigned int item, const wxString& text); - - // get the individual items tooltip; returns NULL if none - wxToolTip *GetItemToolTip(unsigned int item) const - { return m_itemsTooltips ? (*m_itemsTooltips)[item] : NULL; } -#endif // wxUSE_TOOLTIPS - -#if wxUSE_HELP - // set helptext for a particular item, pass an empty string to erase it - void SetItemHelpText(unsigned int n, const wxString& helpText); - - // retrieve helptext for a particular item, empty string means no help text - wxString GetItemHelpText(unsigned int n) const; -#else // wxUSE_HELP - // just silently ignore the help text, it's better than requiring using - // conditional compilation in all code using this function - void SetItemHelpText(unsigned int WXUNUSED(n), - const wxString& WXUNUSED(helpText)) - { - } -#endif // wxUSE_HELP - - // returns the radio item at the given position or wxNOT_FOUND if none - // (currently implemented only under MSW and GTK) - virtual int GetItemFromPoint(const wxPoint& WXUNUSED(pt)) const - { - return wxNOT_FOUND; - } - - -protected: - wxRadioBoxBase() - { - m_numCols = - m_numRows = - m_majorDim = 0; - -#if wxUSE_TOOLTIPS - m_itemsTooltips = NULL; -#endif // wxUSE_TOOLTIPS - } - - virtual wxBorder GetDefaultBorder() const { return wxBORDER_NONE; } - - // return the number of items in major direction (which depends on whether - // we have wxRA_SPECIFY_COLS or wxRA_SPECIFY_ROWS style) - unsigned int GetMajorDim() const { return m_majorDim; } - - // sets m_majorDim and also updates m_numCols/Rows - // - // the style parameter should be the style of the radiobox itself - void SetMajorDim(unsigned int majorDim, long style); - -#if wxUSE_TOOLTIPS - // called from SetItemToolTip() to really set the tooltip for the specified - // item in the box (or, if tooltip is NULL, to remove any existing one). - // - // NB: this function should really be pure virtual but to avoid breaking - // the build of the ports for which it's not implemented yet we provide - // an empty stub in the base class for now - virtual void DoSetItemToolTip(unsigned int item, wxToolTip *tooltip); - - // returns true if we have any item tooltips - bool HasItemToolTips() const { return m_itemsTooltips != NULL; } -#endif // wxUSE_TOOLTIPS - -#if wxUSE_HELP - // Retrieve help text for an item: this is a helper for the implementation - // of wxWindow::GetHelpTextAtPoint() in the real radiobox class - wxString DoGetHelpTextAtPoint(const wxWindow *derived, - const wxPoint& pt, - wxHelpEvent::Origin origin) const; -#endif // wxUSE_HELP - -private: - // the number of elements in major dimension (i.e. number of columns if - // wxRA_SPECIFY_COLS or the number of rows if wxRA_SPECIFY_ROWS) and also - // the number of rows/columns calculated from it - unsigned int m_majorDim, - m_numCols, - m_numRows; - -#if wxUSE_TOOLTIPS - // array of tooltips for the individual items - // - // this array is initially NULL and initialized on first use - wxToolTipArray *m_itemsTooltips; -#endif - -#if wxUSE_HELP - // help text associated with a particular item or empty string if none - wxArrayString m_itemsHelpTexts; -#endif // wxUSE_HELP -}; - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/radiobox.h" -#elif defined(__WXMSW__) - #include "wx/msw/radiobox.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/radiobox.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/radiobox.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/radiobox.h" -#elif defined(__WXMAC__) - #include "wx/osx/radiobox.h" -#elif defined(__WXQT__) - #include "wx/qt/radiobox.h" -#endif - -#endif // wxUSE_RADIOBOX - -#endif // _WX_RADIOBOX_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/radiobut.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/radiobut.h deleted file mode 100644 index 11f466cd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/radiobut.h +++ /dev/null @@ -1,56 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/radiobut.h -// Purpose: wxRadioButton declaration -// Author: Vadim Zeitlin -// Modified by: -// Created: 07.09.00 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBUT_H_BASE_ -#define _WX_RADIOBUT_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_RADIOBTN - -/* - There is no wxRadioButtonBase class as wxRadioButton interface is the same - as wxCheckBox(Base), but under some platforms wxRadioButton really - derives from wxCheckBox and on the others it doesn't. - - The pseudo-declaration of wxRadioButtonBase would look like this: - - class wxRadioButtonBase : public ... - { - public: - virtual void SetValue(bool value); - virtual bool GetValue() const; - }; - */ - -#include "wx/control.h" - -extern WXDLLIMPEXP_DATA_CORE(const char) wxRadioButtonNameStr[]; - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/radiobut.h" -#elif defined(__WXMSW__) - #include "wx/msw/radiobut.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/radiobut.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/radiobut.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/radiobut.h" -#elif defined(__WXMAC__) - #include "wx/osx/radiobut.h" -#elif defined(__WXQT__) - #include "wx/qt/radiobut.h" -#endif - -#endif // wxUSE_RADIOBTN - -#endif - // _WX_RADIOBUT_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/range.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/range.h deleted file mode 100644 index d59646e1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/range.h +++ /dev/null @@ -1,28 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/range.h -// Purpose: Range Value Class -// Author: Stefan Csomor -// Modified by: -// Created: 2011-01-07 -// Copyright: (c) 2011 Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RANGE_H_ -#define _WX_RANGE_H_ - -#include "wx/defs.h" - -class wxRange -{ -public : - wxRange(): m_minVal(0), m_maxVal(0) {} - wxRange( int minVal, int maxVal) : m_minVal(minVal), m_maxVal(maxVal) {} - int GetMin() const { return m_minVal; } - int GetMax() const { return m_maxVal; } -private : - int m_minVal; - int m_maxVal; -}; - -#endif // _WX_RANGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/rawbmp.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/rawbmp.h deleted file mode 100644 index fae330a7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/rawbmp.h +++ /dev/null @@ -1,739 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/rawbmp.h -// Purpose: macros for fast, raw bitmap data access -// Author: Eric Kidd, Vadim Zeitlin -// Modified by: -// Created: 10.03.03 -// Copyright: (c) 2002 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RAWBMP_H_ -#define _WX_RAWBMP_H_ - -#include "wx/defs.h" - -#ifdef wxHAS_RAW_BITMAP - -#include "wx/image.h" -#include "wx/bitmap.h" - -// ---------------------------------------------------------------------------- -// Abstract Pixel API -// -// We need to access our raw bitmap data (1) portably and (2) efficiently. -// We do this using a two-dimensional "iteration" interface. Performance -// is extremely important here: these functions will be called hundreds -// of thousands of times in a row, and even small inefficiencies will -// make applications seem slow. -// -// We can't always rely on inline functions, because not all compilers actually -// bother to inline them unless we crank the optimization levels way up. -// Therefore, we also provide macros to wring maximum speed out of compiler -// unconditionally (e.g. even in debug builds). Of course, if the performance -// isn't absolutely crucial for you you shouldn't be using them but the inline -// functions instead. -// ---------------------------------------------------------------------------- - -/* - Usage example: - - typedef wxPixelData<wxBitmap, wxNativePixelFormat> PixelData; - - wxBitmap bmp; - PixelData data(bmp); - if ( !data ) - { - ... raw access to bitmap data unavailable, do something else ... - return; - } - - if ( data.GetWidth() < 20 || data.GetHeight() < 20 ) - { - ... complain: the bitmap it too small ... - return; - } - - PixelData::Iterator p(data); - - // we draw a (10, 10)-(20, 20) rect manually using the given r, g, b - p.Offset(data, 10, 10); - - for ( int y = 0; y < 10; ++y ) - { - PixelData::Iterator rowStart = p; - - for ( int x = 0; x < 10; ++x, ++p ) - { - p.Red() = r; - p.Green() = g; - p.Blue() = b; - } - - p = rowStart; - p.OffsetY(data, 1); - } - */ - -/* - Note: we do not use WXDLLIMPEXP_CORE with classes in this file because VC++ has - problems with exporting inner class defined inside a specialization of a - template class from a DLL. Besides, as all the methods are inline it's not - really necessary to put them in DLL at all. - */ - -// ---------------------------------------------------------------------------- -// wxPixelFormat -// ---------------------------------------------------------------------------- - -/* - wxPixelFormat is a template class describing the bitmap data format. It - contains the constants describing the format of pixel data, but does not - describe how the entire bitmap is stored (i.e. top-to-bottom, - bottom-to-top, ...). It is also a "traits"-like class, i.e. it only - contains some constants and maybe static methods but nothing more, so it - can be safely used without incurring any overhead as all accesses to it are - done at compile-time. - - Current limitations: we don't support RAGABA and ARAGAB formats supported - by Mac OS X. If there is sufficient interest, these classes could be - extended to deal with them. Neither do we support alpha channel having - different representation from the RGB ones (happens under QNX/Photon I - think), but again this could be achieved with some small extra effort. - - Template parameters are: - - type of a single pixel component - - size of the single pixel in bits - - indices of red, green and blue pixel components inside the pixel - - index of the alpha component or -1 if none - - type which can contain the full pixel value (all channels) - */ - -template <class Channel, - size_t Bpp, int R, int G, int B, int A = -1, - class Pixel = wxUint32> - -struct wxPixelFormat -{ - // iterator over pixels is usually of type "ChannelType *" - typedef Channel ChannelType; - - // the type which may hold the entire pixel value - typedef Pixel PixelType; - - // size of one pixel in bits - static const int BitsPerPixel = Bpp; - - // size of one pixel in ChannelType units (usually bytes) - static const int SizePixel = Bpp / (8 * sizeof(Channel)); - - // the channels indices inside the pixel - enum - { - RED = R, - GREEN = G, - BLUE = B, - ALPHA = A - }; - - // true if we have an alpha channel (together with the other channels, this - // doesn't cover the case of wxImage which stores alpha separately) - enum { HasAlpha = A != -1 }; -}; - -// some "predefined" pixel formats -// ------------------------------- - -// wxImage format is common to all platforms -typedef wxPixelFormat<unsigned char, 24, 0, 1, 2> wxImagePixelFormat; - -// the (most common) native bitmap format without alpha support -#if defined(__WXMSW__) - // under MSW the RGB components are reversed, they're in BGR order - typedef wxPixelFormat<unsigned char, 24, 2, 1, 0> wxNativePixelFormat; - - #define wxPIXEL_FORMAT_ALPHA 3 -#elif defined(__WXMAC__) - // under Mac, first component is unused but still present, hence we use - // 32bpp, not 24 - typedef wxPixelFormat<unsigned char, 32, 1, 2, 3> wxNativePixelFormat; - - #define wxPIXEL_FORMAT_ALPHA 0 -#elif defined(__WXGTK__) - // Under GTK+ 2.X we use GdkPixbuf, which is standard RGB or RGBA - typedef wxPixelFormat<unsigned char, 24, 0, 1, 2> wxNativePixelFormat; - - #define wxPIXEL_FORMAT_ALPHA 3 -#elif defined(__WXDFB__) - // Under DirectFB, RGB components are reversed, they're in BGR order - typedef wxPixelFormat<unsigned char, 24, 2, 1, 0> wxNativePixelFormat; - - #define wxPIXEL_FORMAT_ALPHA 3 -#elif defined(__WXQT__) - typedef wxPixelFormat<unsigned char, 24, 0, 1, 2> wxNativePixelFormat; - - #define wxPIXEL_FORMAT_ALPHA 3 -#endif - -// the (most common) native format for bitmaps with alpha channel -#ifdef wxPIXEL_FORMAT_ALPHA - typedef wxPixelFormat<unsigned char, 32, - wxNativePixelFormat::RED, - wxNativePixelFormat::GREEN, - wxNativePixelFormat::BLUE, - wxPIXEL_FORMAT_ALPHA> wxAlphaPixelFormat; -#endif // wxPIXEL_FORMAT_ALPHA - -// we also define the (default/best) pixel format for the given class: this is -// used as default value for the pixel format in wxPixelIterator template -template <class T> struct wxPixelFormatFor; - -#if wxUSE_IMAGE -// wxPixelFormatFor is only defined for wxImage, attempt to use it with other -// classes (wxBitmap...) will result in compile errors which is exactly what we -// want -template <> -struct wxPixelFormatFor<wxImage> -{ - typedef wxImagePixelFormat Format; -}; -#endif //wxUSE_IMAGE - -// ---------------------------------------------------------------------------- -// wxPixelData -// ---------------------------------------------------------------------------- - -/* - wxPixelDataBase is just a helper for wxPixelData: it contains things common - to both wxImage and wxBitmap specializations. - */ -class wxPixelDataBase -{ -public: - // origin of the rectangular region we represent - wxPoint GetOrigin() const { return m_ptOrigin; } - - // width and height of the region we represent - int GetWidth() const { return m_width; } - int GetHeight() const { return m_height; } - - wxSize GetSize() const { return wxSize(m_width, m_height); } - - // the distance between two rows - int GetRowStride() const { return m_stride; } - -// private: -- see comment in the beginning of the file - - // the origin of this image inside the bigger bitmap (usually (0, 0)) - wxPoint m_ptOrigin; - - // the size of the image we address, in pixels - int m_width, - m_height; - - // this parameter is the offset of the start of the (N+1)st row from the - // Nth one and can be different from m_bypp*width in some cases: - // a) the most usual one is to force 32/64 bit alignment of rows - // b) another one is for bottom-to-top images where it's negative - // c) finally, it could conceivably be 0 for the images with all - // lines being identical - int m_stride; - -protected: - // ctor is protected because this class is only meant to be used as the - // base class by wxPixelData - wxPixelDataBase() - { - m_width = - m_height = - m_stride = 0; - } -}; - -/* - wxPixelData represents the entire bitmap data, i.e. unlike - wxPixelFormat (which it uses) it also stores the global bitmap - characteristics such as its size, inter-row separation and so on. - - Because of this it can be used to move the pixel iterators (which don't - have enough information about the bitmap themselves). This may seem a bit - unnatural but must be done in this way to keep the iterator objects as - small as possible for maximum efficiency as otherwise they wouldn't be put - into the CPU registers by the compiler any more. - - Implementation note: we use the standard workaround for lack of partial - template specialization support in VC7: instead of partly specializing the - class Foo<T, U> for some T we introduce FooOut<T> and FooIn<U> nested in - it, make Foo<T, U> equivalent to FooOut<T>::FooIn<U> and fully specialize - FooOut (FIXME-VC7). - - Also note that this class doesn't have any default definition because we - can't really do anything without knowing the exact image class. We do - provide wxPixelDataBase to make it simpler to write new wxPixelData - specializations. - */ - -// we need to define this skeleton template to mollify VC++ -template <class Image> -struct wxPixelDataOut -{ - template <class PixelFormat> - class wxPixelDataIn - { - public: - class Iterator { }; - }; -}; - -#if wxUSE_IMAGE -// wxPixelData specialization for wxImage: this is the simplest case as we -// don't have to care about different pixel formats here -template <> -struct wxPixelDataOut<wxImage> -{ - // NB: this is a template class even though it doesn't use its template - // parameter because otherwise wxPixelData couldn't compile - template <class dummyPixelFormat> - class wxPixelDataIn : public wxPixelDataBase - { - public: - // the type of the class we're working with - typedef wxImage ImageType; - - // the iterator which should be used for working with data in this - // format - class Iterator - { - public: - // the pixel format we use - typedef wxImagePixelFormat PixelFormat; - - // the pixel data we're working with - typedef - wxPixelDataOut<wxImage>::wxPixelDataIn<PixelFormat> PixelData; - - // go back to (0, 0) - void Reset(const PixelData& data) - { - *this = data.GetPixels(); - } - - // creates the iterator pointing to the beginning of data - Iterator(PixelData& data) - { - Reset(data); - } - - // creates the iterator initially pointing to the image origin - Iterator(const wxImage& image) - { - m_pRGB = image.GetData(); - - if ( image.HasAlpha() ) - { - m_pAlpha = image.GetAlpha(); - } - else // alpha is not used at all - { - m_pAlpha = NULL; - } - } - - // true if the iterator is valid - bool IsOk() const { return m_pRGB != NULL; } - - - // navigation - // ---------- - - // advance the iterator to the next pixel, prefix version - Iterator& operator++() - { - m_pRGB += PixelFormat::SizePixel; - if ( m_pAlpha ) - ++m_pAlpha; - - return *this; - } - - // postfix (hence less efficient -- don't use it unless you - // absolutely must) version - Iterator operator++(int) - { - Iterator p(*this); - ++*this; - return p; - } - - // move x pixels to the right and y down - // - // note that the rows don't wrap! - void Offset(const PixelData& data, int x, int y) - { - m_pRGB += data.GetRowStride()*y + PixelFormat::SizePixel*x; - if ( m_pAlpha ) - m_pAlpha += data.GetWidth()*y + x; - } - - // move x pixels to the right (again, no row wrapping) - void OffsetX(const PixelData& WXUNUSED(data), int x) - { - m_pRGB += PixelFormat::SizePixel*x; - if ( m_pAlpha ) - m_pAlpha += x; - } - - // move y rows to the bottom - void OffsetY(const PixelData& data, int y) - { - m_pRGB += data.GetRowStride()*y; - if ( m_pAlpha ) - m_pAlpha += data.GetWidth()*y; - } - - // go to the given position - void MoveTo(const PixelData& data, int x, int y) - { - Reset(data); - Offset(data, x, y); - } - - - // data access - // ----------- - - // access to individual colour components - PixelFormat::ChannelType& Red() { return m_pRGB[PixelFormat::RED]; } - PixelFormat::ChannelType& Green() { return m_pRGB[PixelFormat::GREEN]; } - PixelFormat::ChannelType& Blue() { return m_pRGB[PixelFormat::BLUE]; } - PixelFormat::ChannelType& Alpha() { return *m_pAlpha; } - - // address the pixel contents directly (always RGB, without alpha) - // - // this can't be used to modify the image as assigning a 32bpp - // value to 24bpp pixel would overwrite an extra byte in the next - // pixel or beyond the end of image - const typename PixelFormat::PixelType& Data() - { return *(typename PixelFormat::PixelType *)m_pRGB; } - - // private: -- see comment in the beginning of the file - - // pointer into RGB buffer - unsigned char *m_pRGB; - - // pointer into alpha buffer or NULL if alpha isn't used - unsigned char *m_pAlpha; - }; - - // initializes us with the data of the given image - wxPixelDataIn(ImageType& image) : m_image(image), m_pixels(image) - { - m_width = image.GetWidth(); - m_height = image.GetHeight(); - m_stride = Iterator::PixelFormat::SizePixel * m_width; - } - - // initializes us with the given region of the specified image - wxPixelDataIn(ImageType& image, - const wxPoint& pt, - const wxSize& sz) : m_image(image), m_pixels(image) - { - m_stride = Iterator::PixelFormat::SizePixel * m_width; - - InitRect(pt, sz); - } - - // initializes us with the given region of the specified image - wxPixelDataIn(ImageType& image, - const wxRect& rect) : m_image(image), m_pixels(image) - { - m_stride = Iterator::PixelFormat::SizePixel * m_width; - - InitRect(rect.GetPosition(), rect.GetSize()); - } - - // we evaluate to true only if we could get access to bitmap data - // successfully - operator bool() const { return m_pixels.IsOk(); } - - // get the iterator pointing to the origin - Iterator GetPixels() const { return m_pixels; } - - private: - void InitRect(const wxPoint& pt, const wxSize& sz) - { - m_width = sz.x; - m_height = sz.y; - - m_ptOrigin = pt; - m_pixels.Offset(*this, pt.x, pt.y); - } - - // the image we're working with - ImageType& m_image; - - // the iterator pointing to the image origin - Iterator m_pixels; - }; -}; -#endif //wxUSE_IMAGE - -#if wxUSE_GUI -// wxPixelData specialization for wxBitmap: here things are more interesting as -// we also have to support different pixel formats -template <> -struct wxPixelDataOut<wxBitmap> -{ - template <class Format> - class wxPixelDataIn : public wxPixelDataBase - { - public: - // the type of the class we're working with - typedef wxBitmap ImageType; - - class Iterator - { - public: - // the pixel format we use - typedef Format PixelFormat; - - // the type of the pixel components - typedef typename PixelFormat::ChannelType ChannelType; - - // the pixel data we're working with - typedef wxPixelDataOut<wxBitmap>::wxPixelDataIn<Format> PixelData; - - - // go back to (0, 0) - void Reset(const PixelData& data) - { - *this = data.GetPixels(); - } - - // initializes the iterator to point to the origin of the given - // pixel data - Iterator(PixelData& data) - { - Reset(data); - } - - // initializes the iterator to point to the origin of the given - // bitmap - Iterator(wxBitmap& bmp, PixelData& data) - { - // using cast here is ugly but it should be safe as - // GetRawData() real return type should be consistent with - // BitsPerPixel (which is in turn defined by ChannelType) and - // this is the only thing we can do without making GetRawData() - // a template function which is undesirable - m_ptr = (ChannelType *) - bmp.GetRawData(data, PixelFormat::BitsPerPixel); - } - - // default constructor - Iterator() - { - m_ptr = NULL; - } - - // return true if this iterator is valid - bool IsOk() const { return m_ptr != NULL; } - - - // navigation - // ---------- - - // advance the iterator to the next pixel, prefix version - Iterator& operator++() - { - m_ptr += PixelFormat::SizePixel; - - return *this; - } - - // postfix (hence less efficient -- don't use it unless you - // absolutely must) version - Iterator operator++(int) - { - Iterator p(*this); - ++*this; - return p; - } - - // move x pixels to the right and y down - // - // note that the rows don't wrap! - void Offset(const PixelData& data, int x, int y) - { - m_ptr += data.GetRowStride()*y + PixelFormat::SizePixel*x; - } - - // move x pixels to the right (again, no row wrapping) - void OffsetX(const PixelData& WXUNUSED(data), int x) - { - m_ptr += PixelFormat::SizePixel*x; - } - - // move y rows to the bottom - void OffsetY(const PixelData& data, int y) - { - m_ptr += data.GetRowStride()*y; - } - - // go to the given position - void MoveTo(const PixelData& data, int x, int y) - { - Reset(data); - Offset(data, x, y); - } - - - // data access - // ----------- - - // access to individual colour components - ChannelType& Red() { return m_ptr[PixelFormat::RED]; } - ChannelType& Green() { return m_ptr[PixelFormat::GREEN]; } - ChannelType& Blue() { return m_ptr[PixelFormat::BLUE]; } - ChannelType& Alpha() { return m_ptr[PixelFormat::ALPHA]; } - - // address the pixel contents directly - // - // warning: the format is platform dependent - // - // warning 2: assigning to Data() only works correctly for 16bpp or - // 32bpp formats but using it for 24bpp ones overwrites - // one extra byte and so can't be done - typename PixelFormat::PixelType& Data() - { return *(typename PixelFormat::PixelType *)m_ptr; } - - // private: -- see comment in the beginning of the file - - // for efficiency reasons this class should not have any other - // fields, otherwise it won't be put into a CPU register (as it - // should inside the inner loops) by some compilers, notably gcc - ChannelType *m_ptr; - }; - - // ctor associates this pointer with a bitmap and locks the bitmap for - // raw access, it will be unlocked only by our dtor and so these - // objects should normally be only created on the stack, i.e. have - // limited life-time - wxPixelDataIn(wxBitmap& bmp) : m_bmp(bmp), m_pixels(bmp, *this) - { - } - - wxPixelDataIn(wxBitmap& bmp, const wxRect& rect) - : m_bmp(bmp), m_pixels(bmp, *this) - { - InitRect(rect.GetPosition(), rect.GetSize()); - } - - wxPixelDataIn(wxBitmap& bmp, const wxPoint& pt, const wxSize& sz) - : m_bmp(bmp), m_pixels(bmp, *this) - { - InitRect(pt, sz); - } - - // we evaluate to true only if we could get access to bitmap data - // successfully - operator bool() const { return m_pixels.IsOk(); } - - // get the iterator pointing to the origin - Iterator GetPixels() const { return m_pixels; } - - // dtor unlocks the bitmap - ~wxPixelDataIn() - { - if ( m_pixels.IsOk() ) - { -#if defined(__WXMSW__) || defined(__WXMAC__) - // this is a hack to mark wxBitmap as using alpha channel - if ( Format::HasAlpha ) - m_bmp.UseAlpha(); -#endif - m_bmp.UngetRawData(*this); - } - // else: don't call UngetRawData() if GetRawData() failed - } - -#if WXWIN_COMPATIBILITY_2_8 - // not needed anymore, calls to it should be simply removed - wxDEPRECATED_INLINE( void UseAlpha(), wxEMPTY_PARAMETER_VALUE ) -#endif - - // private: -- see comment in the beginning of the file - - // the bitmap we're associated with - wxBitmap m_bmp; - - // the iterator pointing to the image origin - Iterator m_pixels; - - private: - void InitRect(const wxPoint& pt, const wxSize& sz) - { - m_pixels.Offset(*this, pt.x, pt.y); - - m_ptOrigin = pt; - m_width = sz.x; - m_height = sz.y; - } - }; -}; - -#endif //wxUSE_GUI - -template <class Image, - class PixelFormat = typename wxPixelFormatFor<Image>::Format > -class wxPixelData : - public wxPixelDataOut<Image>::template wxPixelDataIn<PixelFormat> -{ -public: - typedef - typename wxPixelDataOut<Image>::template wxPixelDataIn<PixelFormat> - Base; - - wxPixelData(Image& image) : Base(image) { } - - wxPixelData(Image& i, const wxRect& rect) : Base(i, rect) { } - - wxPixelData(Image& i, const wxPoint& pt, const wxSize& sz) - : Base(i, pt, sz) - { - } -}; - -// some "predefined" pixel data classes -#if wxUSE_IMAGE -typedef wxPixelData<wxImage> wxImagePixelData; -#endif //wxUSE_IMAGE -#if wxUSE_GUI -typedef wxPixelData<wxBitmap, wxNativePixelFormat> wxNativePixelData; -typedef wxPixelData<wxBitmap, wxAlphaPixelFormat> wxAlphaPixelData; - -#endif //wxUSE_GUI - -// ---------------------------------------------------------------------------- -// wxPixelIterator -// ---------------------------------------------------------------------------- - -/* - wxPixel::Iterator represents something which points to the pixel data and - allows us to iterate over it. In the simplest case of wxBitmap it is, - indeed, just a pointer, but it can be something more complicated and, - moreover, you are free to specialize it for other image classes and bitmap - formats. - - Note that although it would have been much more intuitive to have a real - class here instead of what we have now, this class would need two template - parameters, and this can't be done because we'd need compiler support for - partial template specialization then and VC7 doesn't provide it. - */ -template < class Image, class PixelFormat = wxPixelFormatFor<Image> > -struct wxPixelIterator : public wxPixelData<Image, PixelFormat>::Iterator -{ -}; - -#endif // wxHAS_RAW_BITMAP -#endif // _WX_RAWBMP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/rearrangectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/rearrangectrl.h deleted file mode 100644 index f9d7c324..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/rearrangectrl.h +++ /dev/null @@ -1,236 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/rearrangectrl.h -// Purpose: various controls for rearranging the items interactively -// Author: Vadim Zeitlin -// Created: 2008-12-15 -// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_REARRANGECTRL_H_ -#define _WX_REARRANGECTRL_H_ - -#include "wx/checklst.h" - -#if wxUSE_REARRANGECTRL - -#include "wx/panel.h" -#include "wx/dialog.h" - -#include "wx/arrstr.h" - -extern WXDLLIMPEXP_DATA_CORE(const char) wxRearrangeListNameStr[]; -extern WXDLLIMPEXP_DATA_CORE(const char) wxRearrangeDialogNameStr[]; - -// ---------------------------------------------------------------------------- -// wxRearrangeList: a (check) list box allowing to move items around -// ---------------------------------------------------------------------------- - -// This class works allows to change the order of the items shown in it as well -// as to check or uncheck them individually. The data structure used to allow -// this is the order array which contains the items indices indexed by their -// position with an added twist that the unchecked items are represented by the -// bitwise complement of the corresponding index (for any architecture using -// two's complement for negative numbers representation (i.e. just about any at -// all) this means that a checked item N is represented by -N-1 in unchecked -// state). -// -// So, for example, the array order [1 -3 0] used in conjunction with the items -// array ["first", "second", "third"] means that the items are displayed in the -// order "second", "third", "first" and the "third" item is unchecked while the -// other two are checked. -class WXDLLIMPEXP_CORE wxRearrangeList : public wxCheckListBox -{ -public: - // ctors and such - // -------------- - - // default ctor, call Create() later - wxRearrangeList() { } - - // ctor creating the control, the arguments are the same as for - // wxCheckListBox except for the extra order array which defines the - // (initial) display order of the items as well as their statuses, see the - // description above - wxRearrangeList(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayInt& order, - const wxArrayString& items, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRearrangeListNameStr) - { - Create(parent, id, pos, size, order, items, style, validator, name); - } - - // Create() function takes the same parameters as the base class one and - // the order array determining the initial display order - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayInt& order, - const wxArrayString& items, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRearrangeListNameStr); - - - // items order - // ----------- - - // get the current items order; the returned array uses the same convention - // as the one passed to the ctor - const wxArrayInt& GetCurrentOrder() const { return m_order; } - - // return true if the current item can be moved up or down (i.e. just that - // it's not the first or the last one) - bool CanMoveCurrentUp() const; - bool CanMoveCurrentDown() const; - - // move the current item one position up or down, return true if it was moved - // or false if the current item was the first/last one and so nothing was done - bool MoveCurrentUp(); - bool MoveCurrentDown(); - - - // Override this to keep our m_order array in sync with the real item state. - virtual void Check(unsigned int item, bool check = true) wxOVERRIDE; - -private: - // swap two items at the given positions in the listbox - void Swap(int pos1, int pos2); - - // event handler for item checking/unchecking - void OnCheck(wxCommandEvent& event); - - - // the current order array - wxArrayInt m_order; - - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxRearrangeList); -}; - -// ---------------------------------------------------------------------------- -// wxRearrangeCtrl: composite control containing a wxRearrangeList and buttons -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxRearrangeCtrl : public wxPanel -{ -public: - // ctors/Create function are the same as for wxRearrangeList - wxRearrangeCtrl() - { - Init(); - } - - wxRearrangeCtrl(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayInt& order, - const wxArrayString& items, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRearrangeListNameStr) - { - Init(); - - Create(parent, id, pos, size, order, items, style, validator, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const wxArrayInt& order, - const wxArrayString& items, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRearrangeListNameStr); - - // get the underlying listbox - wxRearrangeList *GetList() const { return m_list; } - -private: - // common part of all ctors - void Init(); - - // event handlers for the buttons - void OnUpdateButtonUI(wxUpdateUIEvent& event); - void OnButton(wxCommandEvent& event); - - - wxRearrangeList *m_list; - - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxRearrangeCtrl); -}; - -// ---------------------------------------------------------------------------- -// wxRearrangeDialog: dialog containing a wxRearrangeCtrl -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxRearrangeDialog : public wxDialog -{ -public: - // default ctor, use Create() later - wxRearrangeDialog() { Init(); } - - // ctor for the dialog: message is shown inside the dialog itself, order - // and items are passed to wxRearrangeList used internally - wxRearrangeDialog(wxWindow *parent, - const wxString& message, - const wxString& title, - const wxArrayInt& order, - const wxArrayString& items, - const wxPoint& pos = wxDefaultPosition, - const wxString& name = wxRearrangeDialogNameStr) - { - Init(); - - Create(parent, message, title, order, items, pos, name); - } - - bool Create(wxWindow *parent, - const wxString& message, - const wxString& title, - const wxArrayInt& order, - const wxArrayString& items, - const wxPoint& pos = wxDefaultPosition, - const wxString& name = wxRearrangeDialogNameStr); - - - // methods for the dialog customization - - // add extra contents to the dialog below the wxRearrangeCtrl part: the - // given window (usually a wxPanel containing more control inside it) must - // have the dialog as its parent and will be inserted into it at the right - // place by this method - void AddExtraControls(wxWindow *win); - - // return the wxRearrangeList control used by the dialog - wxRearrangeList *GetList() const; - - - // get the order of items after it was modified by the user - wxArrayInt GetOrder() const; - -private: - // common part of all ctors - void Init() { m_ctrl = NULL; } - - wxRearrangeCtrl *m_ctrl; - - wxDECLARE_NO_COPY_CLASS(wxRearrangeDialog); -}; - -#endif // wxUSE_REARRANGECTRL - -#endif // _WX_REARRANGECTRL_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/recguard.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/recguard.h deleted file mode 100644 index d7775b99..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/recguard.h +++ /dev/null @@ -1,52 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/recguard.h -// Purpose: declaration and implementation of wxRecursionGuard class -// Author: Vadim Zeitlin -// Modified by: -// Created: 14.08.2003 -// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RECGUARD_H_ -#define _WX_RECGUARD_H_ - -#include "wx/defs.h" - -// ---------------------------------------------------------------------------- -// wxRecursionGuardFlag is used with wxRecursionGuard -// ---------------------------------------------------------------------------- - -typedef int wxRecursionGuardFlag; - -// ---------------------------------------------------------------------------- -// wxRecursionGuard is the simplest way to protect a function from reentrancy -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxRecursionGuard -{ -public: - wxRecursionGuard(wxRecursionGuardFlag& flag) - : m_flag(flag) - { - m_isInside = flag++ != 0; - } - - ~wxRecursionGuard() - { - wxASSERT_MSG( m_flag > 0, wxT("unbalanced wxRecursionGuards!?") ); - - m_flag--; - } - - bool IsInside() const { return m_isInside; } - -private: - wxRecursionGuardFlag& m_flag; - - // true if the flag had been already set when we were created - bool m_isInside; -}; - -#endif // _WX_RECGUARD_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/regex.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/regex.h deleted file mode 100644 index 0b1836e3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/regex.h +++ /dev/null @@ -1,164 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/regex.h -// Purpose: regular expression matching -// Author: Karsten Ballueder -// Modified by: VZ at 13.07.01 (integrated to wxWin) -// Created: 05.02.2000 -// Copyright: (c) 2000 Karsten Ballueder <ballueder@gmx.net> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_REGEX_H_ -#define _WX_REGEX_H_ - -#include "wx/defs.h" - -#if wxUSE_REGEX - -#include "wx/string.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// flags for regex compilation: these can be used with Compile() -enum -{ - // use extended regex syntax - wxRE_EXTENDED = 0, - - // use advanced RE syntax (built-in regex only) -#ifdef wxHAS_REGEX_ADVANCED - wxRE_ADVANCED = 1, -#endif - - // use basic RE syntax - wxRE_BASIC = 2, - - // ignore case in match - wxRE_ICASE = 4, - - // only check match, don't set back references - wxRE_NOSUB = 8, - - // if not set, treat '\n' as an ordinary character, otherwise it is - // special: it is not matched by '.' and '^' and '$' always match - // after/before it regardless of the setting of wxRE_NOT[BE]OL - wxRE_NEWLINE = 16, - - // default flags - wxRE_DEFAULT = wxRE_EXTENDED -}; - -// flags for regex matching: these can be used with Matches() -// -// these flags are mainly useful when doing several matches in a long string, -// they can be used to prevent erroneous matches for '^' and '$' -enum -{ - // '^' doesn't match at the start of line - wxRE_NOTBOL = 32, - - // '$' doesn't match at the end of line - wxRE_NOTEOL = 64 -}; - -// ---------------------------------------------------------------------------- -// wxRegEx: a regular expression -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_BASE wxRegExImpl; - -class WXDLLIMPEXP_BASE wxRegEx -{ -public: - // default ctor: use Compile() later - wxRegEx() { Init(); } - - // create and compile - wxRegEx(const wxString& expr, int flags = wxRE_DEFAULT) - { - Init(); - (void)Compile(expr, flags); - } - - // return true if this is a valid compiled regular expression - bool IsValid() const { return m_impl != NULL; } - - // compile the string into regular expression, return true if ok or false - // if string has a syntax error - bool Compile(const wxString& pattern, int flags = wxRE_DEFAULT); - - // matches the precompiled regular expression against a string, return - // true if matches and false otherwise - // - // flags may be combination of wxRE_NOTBOL and wxRE_NOTEOL - // len may be the length of text (ignored by most system regex libs) - // - // may only be called after successful call to Compile() - bool Matches(const wxString& text, int flags = 0) const; - bool Matches(const wxChar *text, int flags, size_t len) const - { return Matches(wxString(text, len), flags); } - - // get the start index and the length of the match of the expression - // (index 0) or a bracketed subexpression (index != 0) - // - // may only be called after successful call to Matches() - // - // return false if no match or on error - bool GetMatch(size_t *start, size_t *len, size_t index = 0) const; - - // return the part of string corresponding to the match, empty string is - // returned if match failed - // - // may only be called after successful call to Matches() - wxString GetMatch(const wxString& text, size_t index = 0) const; - - // return the size of the array of matches, i.e. the number of bracketed - // subexpressions plus one for the expression itself, or 0 on error. - // - // may only be called after successful call to Compile() - size_t GetMatchCount() const; - - // replaces the current regular expression in the string pointed to by - // pattern, with the text in replacement and return number of matches - // replaced (maybe 0 if none found) or -1 on error - // - // the replacement text may contain backreferences (\number) which will be - // replaced with the value of the corresponding subexpression in the - // pattern match - // - // maxMatches may be used to limit the number of replacements made, setting - // it to 1, for example, will only replace first occurrence (if any) of the - // pattern in the text while default value of 0 means replace all - int Replace(wxString *text, const wxString& replacement, - size_t maxMatches = 0) const; - - // replace the first occurrence - int ReplaceFirst(wxString *text, const wxString& replacement) const - { return Replace(text, replacement, 1); } - - // replace all occurrences: this is actually a synonym for Replace() - int ReplaceAll(wxString *text, const wxString& replacement) const - { return Replace(text, replacement, 0); } - - // dtor not virtual, don't derive from this class - ~wxRegEx(); - -private: - // common part of all ctors - void Init(); - - // the real guts of this class - wxRegExImpl *m_impl; - - // as long as the class wxRegExImpl is not ref-counted, - // instances of the handle wxRegEx must not be copied. - wxRegEx(const wxRegEx&); - wxRegEx &operator=(const wxRegEx&); -}; - -#endif // wxUSE_REGEX - -#endif // _WX_REGEX_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/region.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/region.h deleted file mode 100644 index 1ee8fcb1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/region.h +++ /dev/null @@ -1,288 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/region.h -// Purpose: Base header for wxRegion -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_REGION_H_BASE_ -#define _WX_REGION_H_BASE_ - -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" - -class WXDLLIMPEXP_FWD_CORE wxBitmap; -class WXDLLIMPEXP_FWD_CORE wxColour; -class WXDLLIMPEXP_FWD_CORE wxRegion; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// result of wxRegion::Contains() call -enum wxRegionContain -{ - wxOutRegion = 0, - wxPartRegion = 1, - wxInRegion = 2 -}; - -// these constants are used with wxRegion::Combine() in the ports which have -// this method -enum wxRegionOp -{ - // Creates the intersection of the two combined regions. - wxRGN_AND, - - // Creates a copy of the region - wxRGN_COPY, - - // Combines the parts of first region that are not in the second one - wxRGN_DIFF, - - // Creates the union of two combined regions. - wxRGN_OR, - - // Creates the union of two regions except for any overlapping areas. - wxRGN_XOR -}; - -// ---------------------------------------------------------------------------- -// wxRegionBase defines wxRegion API -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxRegionBase : public wxGDIObject -{ -public: - // ctors - // ----- - - // none are defined here but the following should be available: -#if 0 - wxRegion(); - wxRegion(wxCoord x, wxCoord y, wxCoord w, wxCoord h); - wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight); - wxRegion(const wxRect& rect); - wxRegion(size_t n, const wxPoint *points, wxPolygonFillMode fillStyle = wxODDEVEN_RULE); - wxRegion(const wxBitmap& bmp); - wxRegion(const wxBitmap& bmp, const wxColour& transp, int tolerance = 0); -#endif // 0 - - // operators - // --------- - - bool operator==(const wxRegion& region) const { return IsEqual(region); } - bool operator!=(const wxRegion& region) const { return !(*this == region); } - - - // accessors - // --------- - - // Is region empty? - virtual bool IsEmpty() const = 0; - bool Empty() const { return IsEmpty(); } - - // Is region equal (i.e. covers the same area as another one)? - bool IsEqual(const wxRegion& region) const; - - // Get the bounding box - bool GetBox(wxCoord& x, wxCoord& y, wxCoord& w, wxCoord& h) const - { return DoGetBox(x, y, w, h); } - wxRect GetBox() const - { - wxCoord x, y, w, h; - return DoGetBox(x, y, w, h) ? wxRect(x, y, w, h) : wxRect(); - } - - // Test if the given point or rectangle is inside this region - wxRegionContain Contains(wxCoord x, wxCoord y) const - { return DoContainsPoint(x, y); } - wxRegionContain Contains(const wxPoint& pt) const - { return DoContainsPoint(pt.x, pt.y); } - wxRegionContain Contains(wxCoord x, wxCoord y, wxCoord w, wxCoord h) const - { return DoContainsRect(wxRect(x, y, w, h)); } - wxRegionContain Contains(const wxRect& rect) const - { return DoContainsRect(rect); } - - - // operations - // ---------- - - virtual void Clear() = 0; - - // Move the region - bool Offset(wxCoord x, wxCoord y) - { return DoOffset(x, y); } - bool Offset(const wxPoint& pt) - { return DoOffset(pt.x, pt.y); } - - // Union rectangle or region with this region. - bool Union(wxCoord x, wxCoord y, wxCoord w, wxCoord h) - { return DoUnionWithRect(wxRect(x, y, w, h)); } - bool Union(const wxRect& rect) - { return DoUnionWithRect(rect); } - bool Union(const wxRegion& region) - { return DoUnionWithRegion(region); } - -#if wxUSE_IMAGE - // Use the non-transparent pixels of a wxBitmap for the region to combine - // with this region. First version takes transparency from bitmap's mask, - // second lets the user specify the colour to be treated as transparent - // along with an optional tolerance value. - // NOTE: implemented in common/rgncmn.cpp - bool Union(const wxBitmap& bmp); - bool Union(const wxBitmap& bmp, const wxColour& transp, int tolerance = 0); -#endif // wxUSE_IMAGE - - // Intersect rectangle or region with this one. - bool Intersect(wxCoord x, wxCoord y, wxCoord w, wxCoord h); - bool Intersect(const wxRect& rect); - bool Intersect(const wxRegion& region) - { return DoIntersect(region); } - - // Subtract rectangle or region from this: - // Combines the parts of 'this' that are not part of the second region. - bool Subtract(wxCoord x, wxCoord y, wxCoord w, wxCoord h); - bool Subtract(const wxRect& rect); - bool Subtract(const wxRegion& region) - { return DoSubtract(region); } - - // XOR: the union of two combined regions except for any overlapping areas. - bool Xor(wxCoord x, wxCoord y, wxCoord w, wxCoord h); - bool Xor(const wxRect& rect); - bool Xor(const wxRegion& region) - { return DoXor(region); } - - - // Convert the region to a B&W bitmap with the white pixels being inside - // the region. - wxBitmap ConvertToBitmap() const; - -protected: - virtual bool DoIsEqual(const wxRegion& region) const = 0; - virtual bool DoGetBox(wxCoord& x, wxCoord& y, wxCoord& w, wxCoord& h) const = 0; - virtual wxRegionContain DoContainsPoint(wxCoord x, wxCoord y) const = 0; - virtual wxRegionContain DoContainsRect(const wxRect& rect) const = 0; - - virtual bool DoOffset(wxCoord x, wxCoord y) = 0; - - virtual bool DoUnionWithRect(const wxRect& rect) = 0; - virtual bool DoUnionWithRegion(const wxRegion& region) = 0; - - virtual bool DoIntersect(const wxRegion& region) = 0; - virtual bool DoSubtract(const wxRegion& region) = 0; - virtual bool DoXor(const wxRegion& region) = 0; -}; - -// some ports implement a generic Combine() function while others only -// implement individual wxRegion operations, factor out the common code for the -// ports with Combine() in this class -#if defined(__WXMSW__) || \ - ( defined(__WXMAC__) && wxOSX_USE_COCOA_OR_CARBON ) - -#define wxHAS_REGION_COMBINE - -class WXDLLIMPEXP_CORE wxRegionWithCombine : public wxRegionBase -{ -public: - // these methods are not part of public API as they're not implemented on - // all ports - bool Combine(wxCoord x, wxCoord y, wxCoord w, wxCoord h, wxRegionOp op); - bool Combine(const wxRect& rect, wxRegionOp op); - bool Combine(const wxRegion& region, wxRegionOp op) - { return DoCombine(region, op); } - - -protected: - // the real Combine() method, to be defined in the derived class - virtual bool DoCombine(const wxRegion& region, wxRegionOp op) = 0; - - // implement some wxRegionBase pure virtuals in terms of Combine() - virtual bool DoUnionWithRect(const wxRect& rect); - virtual bool DoUnionWithRegion(const wxRegion& region); - virtual bool DoIntersect(const wxRegion& region); - virtual bool DoSubtract(const wxRegion& region); - virtual bool DoXor(const wxRegion& region); -}; - -#endif // ports with wxRegion::Combine() - -#if defined(__WXMSW__) - #include "wx/msw/region.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/region.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/region.h" -#elif defined(__WXMOTIF__) || defined(__WXX11__) - #include "wx/x11/region.h" -#elif defined(__WXDFB__) - #include "wx/dfb/region.h" -#elif defined(__WXMAC__) - #include "wx/osx/region.h" -#elif defined(__WXQT__) - #include "wx/qt/region.h" -#endif - -// ---------------------------------------------------------------------------- -// inline functions implementation -// ---------------------------------------------------------------------------- - -// NB: these functions couldn't be defined in the class declaration as they use -// wxRegion and so can be only defined after including the header declaring -// the real class - -inline bool wxRegionBase::Intersect(const wxRect& rect) -{ - return DoIntersect(wxRegion(rect)); -} - -inline bool wxRegionBase::Subtract(const wxRect& rect) -{ - return DoSubtract(wxRegion(rect)); -} - -inline bool wxRegionBase::Xor(const wxRect& rect) -{ - return DoXor(wxRegion(rect)); -} - -// ...and these functions are here because they call the ones above, and its -// not really proper to call an inline function before its defined inline. - -inline bool wxRegionBase::Intersect(wxCoord x, wxCoord y, wxCoord w, wxCoord h) -{ - return Intersect(wxRect(x, y, w, h)); -} - -inline bool wxRegionBase::Subtract(wxCoord x, wxCoord y, wxCoord w, wxCoord h) -{ - return Subtract(wxRect(x, y, w, h)); -} - -inline bool wxRegionBase::Xor(wxCoord x, wxCoord y, wxCoord w, wxCoord h) -{ - return Xor(wxRect(x, y, w, h)); -} - -#ifdef wxHAS_REGION_COMBINE - -inline bool wxRegionWithCombine::Combine(wxCoord x, - wxCoord y, - wxCoord w, - wxCoord h, - wxRegionOp op) -{ - return DoCombine(wxRegion(x, y, w, h), op); -} - -inline bool wxRegionWithCombine::Combine(const wxRect& rect, wxRegionOp op) -{ - return DoCombine(wxRegion(rect), op); -} - -#endif // wxHAS_REGION_COMBINE - -#endif // _WX_REGION_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/renderer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/renderer.h deleted file mode 100644 index 627c142e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/renderer.h +++ /dev/null @@ -1,584 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/renderer.h -// Purpose: wxRendererNative class declaration -// Author: Vadim Zeitlin -// Modified by: -// Created: 20.07.2003 -// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -/* - Renderers are used in wxWidgets for two similar but different things: - (a) wxUniversal uses them to draw everything, i.e. all the control - (b) all the native ports use them to draw generic controls only - - wxUniversal needs more functionality than what is included in the base class - as it needs to draw stuff like scrollbars which are never going to be - generic. So we put the bare minimum needed by the native ports here and the - full wxRenderer class is declared in wx/univ/renderer.h and is only used by - wxUniveral (although note that native ports can load wxRenderer objects from - theme DLLs and use them as wxRendererNative ones, of course). - */ - -#ifndef _WX_RENDERER_H_ -#define _WX_RENDERER_H_ - -class WXDLLIMPEXP_FWD_CORE wxDC; -class WXDLLIMPEXP_FWD_CORE wxWindow; - -#include "wx/gdicmn.h" // for wxPoint, wxSize -#include "wx/colour.h" -#include "wx/font.h" -#include "wx/bitmap.h" -#include "wx/string.h" - -// some platforms have their own renderers, others use the generic one -#if defined(__WXMSW__) || ( defined(__WXMAC__) && wxOSX_USE_COCOA_OR_CARBON ) || defined(__WXGTK__) - #define wxHAS_NATIVE_RENDERER -#else - #undef wxHAS_NATIVE_RENDERER -#endif - -// only MSW and OS X currently provides DrawTitleBarBitmap() method -#if defined(__WXMSW__) || (defined(__WXMAC__) && wxUSE_LIBPNG && wxUSE_IMAGE) - #define wxHAS_DRAW_TITLE_BAR_BITMAP -#endif - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// control state flags used in wxRenderer and wxColourScheme -enum -{ - wxCONTROL_NONE = 0x00000000, // absence of any other flags - wxCONTROL_DISABLED = 0x00000001, // control is disabled - wxCONTROL_FOCUSED = 0x00000002, // currently has keyboard focus - wxCONTROL_PRESSED = 0x00000004, // (button) is pressed - wxCONTROL_SPECIAL = 0x00000008, // control-specific bit: - wxCONTROL_ISDEFAULT = wxCONTROL_SPECIAL, // only for the buttons - wxCONTROL_ISSUBMENU = wxCONTROL_SPECIAL, // only for the menu items - wxCONTROL_EXPANDED = wxCONTROL_SPECIAL, // only for the tree items - wxCONTROL_SIZEGRIP = wxCONTROL_SPECIAL, // only for the status bar panes - wxCONTROL_FLAT = wxCONTROL_SPECIAL, // checkboxes only: flat border - wxCONTROL_CELL = wxCONTROL_SPECIAL, // only for item selection rect - wxCONTROL_CURRENT = 0x00000010, // mouse is currently over the control - wxCONTROL_SELECTED = 0x00000020, // selected item in e.g. listbox - wxCONTROL_CHECKED = 0x00000040, // (check/radio button) is checked - wxCONTROL_CHECKABLE = 0x00000080, // (menu) item can be checked - wxCONTROL_UNDETERMINED = wxCONTROL_CHECKABLE, // (check) undetermined state - - wxCONTROL_FLAGS_MASK = 0x000000ff, - - // this is a pseudo flag not used directly by wxRenderer but rather by some - // controls internally - wxCONTROL_DIRTY = 0x80000000 -}; - -// title bar buttons supported by DrawTitleBarBitmap() -// -// NB: they have the same values as wxTOPLEVEL_BUTTON_XXX constants in -// wx/univ/toplevel.h as they really represent the same things -enum wxTitleBarButton -{ - wxTITLEBAR_BUTTON_CLOSE = 0x01000000, - wxTITLEBAR_BUTTON_MAXIMIZE = 0x02000000, - wxTITLEBAR_BUTTON_ICONIZE = 0x04000000, - wxTITLEBAR_BUTTON_RESTORE = 0x08000000, - wxTITLEBAR_BUTTON_HELP = 0x10000000 -}; - -// ---------------------------------------------------------------------------- -// helper structs -// ---------------------------------------------------------------------------- - -// wxSplitterWindow parameters -struct WXDLLIMPEXP_CORE wxSplitterRenderParams -{ - // the only way to initialize this struct is by using this ctor - wxSplitterRenderParams(wxCoord widthSash_, wxCoord border_, bool isSens_) - : widthSash(widthSash_), border(border_), isHotSensitive(isSens_) - { - } - - // the width of the splitter sash - const wxCoord widthSash; - - // the width of the border of the splitter window - const wxCoord border; - - // true if the splitter changes its appearance when the mouse is over it - const bool isHotSensitive; -}; - - -// extra optional parameters for DrawHeaderButton -struct WXDLLIMPEXP_CORE wxHeaderButtonParams -{ - wxHeaderButtonParams() - : m_labelAlignment(wxALIGN_LEFT) - { } - - wxColour m_arrowColour; - wxColour m_selectionColour; - wxString m_labelText; - wxFont m_labelFont; - wxColour m_labelColour; - wxBitmap m_labelBitmap; - int m_labelAlignment; -}; - -enum wxHeaderSortIconType -{ - wxHDR_SORT_ICON_NONE, // Header button has no sort arrow - wxHDR_SORT_ICON_UP, // Header button an up sort arrow icon - wxHDR_SORT_ICON_DOWN // Header button a down sort arrow icon -}; - - -// wxRendererNative interface version -struct WXDLLIMPEXP_CORE wxRendererVersion -{ - wxRendererVersion(int version_, int age_) : version(version_), age(age_) { } - - // default copy ctor, assignment operator and dtor are ok - - // the current version and age of wxRendererNative interface: different - // versions are incompatible (in both ways) while the ages inside the same - // version are upwards compatible, i.e. the version of the renderer must - // match the version of the main program exactly while the age may be - // highergreater or equal to it - // - // NB: don't forget to increment age after adding any new virtual function! - enum - { - Current_Version = 1, - Current_Age = 5 - }; - - - // check if the given version is compatible with the current one - static bool IsCompatible(const wxRendererVersion& ver) - { - return ver.version == Current_Version && ver.age >= Current_Age; - } - - const int version; - const int age; -}; - -// ---------------------------------------------------------------------------- -// wxRendererNative: abstracts drawing methods needed by the native controls -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxRendererNative -{ -public: - // drawing functions - // ----------------- - - // draw the header control button (used by wxListCtrl) Returns optimal - // width for the label contents. - virtual int DrawHeaderButton(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0, - wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE, - wxHeaderButtonParams* params=NULL) = 0; - - - // Draw the contents of a header control button (label, sort arrows, etc.) - // Normally only called by DrawHeaderButton. - virtual int DrawHeaderButtonContents(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0, - wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE, - wxHeaderButtonParams* params=NULL) = 0; - - // Returns the default height of a header button, either a fixed platform - // height if available, or a generic height based on the window's font. - virtual int GetHeaderButtonHeight(wxWindow *win) = 0; - - // Returns the margin on left and right sides of header button's label - virtual int GetHeaderButtonMargin(wxWindow *win) = 0; - - - // draw the expanded/collapsed icon for a tree control item - virtual void DrawTreeItemButton(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) = 0; - - // draw the border for sash window: this border must be such that the sash - // drawn by DrawSash() blends into it well - virtual void DrawSplitterBorder(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) = 0; - - // draw a (vertical) sash - virtual void DrawSplitterSash(wxWindow *win, - wxDC& dc, - const wxSize& size, - wxCoord position, - wxOrientation orient, - int flags = 0) = 0; - - // draw a combobox dropdown button - // - // flags may use wxCONTROL_PRESSED and wxCONTROL_CURRENT - virtual void DrawComboBoxDropButton(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) = 0; - - // draw a dropdown arrow - // - // flags may use wxCONTROL_PRESSED and wxCONTROL_CURRENT - virtual void DrawDropArrow(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) = 0; - - // draw check button - // - // flags may use wxCONTROL_CHECKED, wxCONTROL_UNDETERMINED and wxCONTROL_CURRENT - virtual void DrawCheckBox(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) = 0; - - // Returns the default size of a check box. - virtual wxSize GetCheckBoxSize(wxWindow *win) = 0; - - // draw blank button - // - // flags may use wxCONTROL_PRESSED, wxCONTROL_CURRENT and wxCONTROL_ISDEFAULT - virtual void DrawPushButton(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) = 0; - - // draw collapse button - // - // flags may use wxCONTROL_CHECKED, wxCONTROL_UNDETERMINED and wxCONTROL_CURRENT - virtual void DrawCollapseButton(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) = 0; - - // Returns the default size of a collapse button - virtual wxSize GetCollapseButtonSize(wxWindow *win, wxDC& dc) = 0; - - // draw rectangle indicating that an item in e.g. a list control - // has been selected or focused - // - // flags may use - // wxCONTROL_SELECTED (item is selected, e.g. draw background) - // wxCONTROL_CURRENT (item is the current item, e.g. dotted border) - // wxCONTROL_FOCUSED (the whole control has focus, e.g. blue background vs. grey otherwise) - virtual void DrawItemSelectionRect(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) = 0; - - // draw the focus rectangle around the label contained in the given rect - // - // only wxCONTROL_SELECTED makes sense in flags here - virtual void DrawFocusRect(wxWindow* win, - wxDC& dc, - const wxRect& rect, - int flags = 0) = 0; - - // Draw a native wxChoice - virtual void DrawChoice(wxWindow* win, - wxDC& dc, - const wxRect& rect, - int flags = 0) = 0; - - // Draw a native wxComboBox - virtual void DrawComboBox(wxWindow* win, - wxDC& dc, - const wxRect& rect, - int flags = 0) = 0; - - // Draw a native wxTextCtrl frame - virtual void DrawTextCtrl(wxWindow* win, - wxDC& dc, - const wxRect& rect, - int flags = 0) = 0; - - // Draw a native wxRadioButton bitmap - virtual void DrawRadioBitmap(wxWindow* win, - wxDC& dc, - const wxRect& rect, - int flags = 0) = 0; - -#ifdef wxHAS_DRAW_TITLE_BAR_BITMAP - // Draw one of the standard title bar buttons - // - // This is currently implemented only for MSW and OS X (for the close - // button only) because there is no way to render standard title bar - // buttons under the other platforms, the best can be done is to use normal - // (only) images which wxArtProvider provides for wxART_HELP and - // wxART_CLOSE (but not any other title bar buttons) - // - // NB: make sure PNG handler is enabled if using this function under OS X - virtual void DrawTitleBarBitmap(wxWindow *win, - wxDC& dc, - const wxRect& rect, - wxTitleBarButton button, - int flags = 0) = 0; -#endif // wxHAS_DRAW_TITLE_BAR_BITMAP - - // Draw a gauge with native style like a wxGauge would display - virtual void DrawGauge(wxWindow* win, - wxDC& dc, - const wxRect& rect, - int value, - int max, - int flags = 0) = 0; - - // Draw text using the appropriate color for normal and selected states. - virtual void DrawItemText(wxWindow* win, - wxDC& dc, - const wxString& text, - const wxRect& rect, - int align = wxALIGN_LEFT | wxALIGN_TOP, - int flags = 0, - wxEllipsizeMode ellipsizeMode = wxELLIPSIZE_END) = 0; - - // geometry functions - // ------------------ - - // get the splitter parameters: the x field of the returned point is the - // sash width and the y field is the border width - virtual wxSplitterRenderParams GetSplitterParams(const wxWindow *win) = 0; - - - // pseudo constructors - // ------------------- - - // return the currently used renderer - static wxRendererNative& Get(); - - // return the generic implementation of the renderer - static wxRendererNative& GetGeneric(); - - // return the default (native) implementation for this platform - static wxRendererNative& GetDefault(); - - - // changing the global renderer - // ---------------------------- - -#if wxUSE_DYNLIB_CLASS - // load the renderer from the specified DLL, the returned pointer must be - // deleted by caller if not NULL when it is not used any more - static wxRendererNative *Load(const wxString& name); -#endif // wxUSE_DYNLIB_CLASS - - // set the renderer to use, passing NULL reverts to using the default - // renderer - // - // return the previous renderer used with Set() or NULL if none - static wxRendererNative *Set(wxRendererNative *renderer); - - - // miscellaneous stuff - // ------------------- - - // this function is used for version checking: Load() refuses to load any - // DLLs implementing an older or incompatible version; it should be - // implemented simply by returning wxRendererVersion::Current_XXX values - virtual wxRendererVersion GetVersion() const = 0; - - // virtual dtor for any base class - virtual ~wxRendererNative(); -}; - -// ---------------------------------------------------------------------------- -// wxDelegateRendererNative: allows reuse of renderers code -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxDelegateRendererNative : public wxRendererNative -{ -public: - wxDelegateRendererNative() - : m_rendererNative(GetGeneric()) { } - - wxDelegateRendererNative(wxRendererNative& rendererNative) - : m_rendererNative(rendererNative) { } - - - virtual int DrawHeaderButton(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0, - wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE, - wxHeaderButtonParams* params = NULL) - { return m_rendererNative.DrawHeaderButton(win, dc, rect, flags, sortArrow, params); } - - virtual int DrawHeaderButtonContents(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0, - wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE, - wxHeaderButtonParams* params = NULL) - { return m_rendererNative.DrawHeaderButtonContents(win, dc, rect, flags, sortArrow, params); } - - virtual int GetHeaderButtonHeight(wxWindow *win) - { return m_rendererNative.GetHeaderButtonHeight(win); } - - virtual int GetHeaderButtonMargin(wxWindow *win) - { return m_rendererNative.GetHeaderButtonMargin(win); } - - virtual void DrawTreeItemButton(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) - { m_rendererNative.DrawTreeItemButton(win, dc, rect, flags); } - - virtual void DrawSplitterBorder(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) - { m_rendererNative.DrawSplitterBorder(win, dc, rect, flags); } - - virtual void DrawSplitterSash(wxWindow *win, - wxDC& dc, - const wxSize& size, - wxCoord position, - wxOrientation orient, - int flags = 0) - { m_rendererNative.DrawSplitterSash(win, dc, size, - position, orient, flags); } - - virtual void DrawComboBoxDropButton(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) - { m_rendererNative.DrawComboBoxDropButton(win, dc, rect, flags); } - - virtual void DrawDropArrow(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) - { m_rendererNative.DrawDropArrow(win, dc, rect, flags); } - - virtual void DrawCheckBox(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) - { m_rendererNative.DrawCheckBox( win, dc, rect, flags ); } - - virtual wxSize GetCheckBoxSize(wxWindow *win) - { return m_rendererNative.GetCheckBoxSize(win); } - - virtual void DrawPushButton(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) - { m_rendererNative.DrawPushButton( win, dc, rect, flags ); } - - virtual void DrawCollapseButton(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) - { m_rendererNative.DrawCollapseButton(win, dc, rect, flags); } - - virtual wxSize GetCollapseButtonSize(wxWindow *win, wxDC& dc) - { return m_rendererNative.GetCollapseButtonSize(win, dc); } - - virtual void DrawItemSelectionRect(wxWindow *win, - wxDC& dc, - const wxRect& rect, - int flags = 0) - { m_rendererNative.DrawItemSelectionRect( win, dc, rect, flags ); } - - virtual void DrawFocusRect(wxWindow* win, - wxDC& dc, - const wxRect& rect, - int flags = 0) - { m_rendererNative.DrawFocusRect( win, dc, rect, flags ); } - - virtual void DrawChoice(wxWindow* win, - wxDC& dc, - const wxRect& rect, - int flags = 0) - { m_rendererNative.DrawChoice( win, dc, rect, flags); } - - virtual void DrawComboBox(wxWindow* win, - wxDC& dc, - const wxRect& rect, - int flags = 0) - { m_rendererNative.DrawComboBox( win, dc, rect, flags); } - - virtual void DrawTextCtrl(wxWindow* win, - wxDC& dc, - const wxRect& rect, - int flags = 0) - { m_rendererNative.DrawTextCtrl( win, dc, rect, flags); } - - virtual void DrawRadioBitmap(wxWindow* win, - wxDC& dc, - const wxRect& rect, - int flags = 0) - { m_rendererNative.DrawRadioBitmap(win, dc, rect, flags); } - -#ifdef wxHAS_DRAW_TITLE_BAR_BITMAP - virtual void DrawTitleBarBitmap(wxWindow *win, - wxDC& dc, - const wxRect& rect, - wxTitleBarButton button, - int flags = 0) - { m_rendererNative.DrawTitleBarBitmap(win, dc, rect, button, flags); } -#endif // wxHAS_DRAW_TITLE_BAR_BITMAP - - virtual void DrawGauge(wxWindow* win, - wxDC& dc, - const wxRect& rect, - int value, - int max, - int flags = 0) - { m_rendererNative.DrawGauge(win, dc, rect, value, max, flags); } - - virtual void DrawItemText(wxWindow* win, - wxDC& dc, - const wxString& text, - const wxRect& rect, - int align = wxALIGN_LEFT | wxALIGN_TOP, - int flags = 0, - wxEllipsizeMode ellipsizeMode = wxELLIPSIZE_END) - { m_rendererNative.DrawItemText(win, dc, text, rect, align, flags, ellipsizeMode); } - - virtual wxSplitterRenderParams GetSplitterParams(const wxWindow *win) - { return m_rendererNative.GetSplitterParams(win); } - - virtual wxRendererVersion GetVersion() const - { return m_rendererNative.GetVersion(); } - -protected: - wxRendererNative& m_rendererNative; - - wxDECLARE_NO_COPY_CLASS(wxDelegateRendererNative); -}; - -// ---------------------------------------------------------------------------- -// inline functions implementation -// ---------------------------------------------------------------------------- - -#ifndef wxHAS_NATIVE_RENDERER - -// default native renderer is the generic one then -/* static */ inline -wxRendererNative& wxRendererNative::GetDefault() -{ - return GetGeneric(); -} - -#endif // !wxHAS_NATIVE_RENDERER - -#endif // _WX_RENDERER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/art.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/art.h deleted file mode 100644 index 5dc3ebf2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/art.h +++ /dev/null @@ -1,949 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/ribbon/art.h -// Purpose: Art providers for ribbon-bar-style interface -// Author: Peter Cawley -// Modified by: -// Created: 2009-05-25 -// Copyright: (C) Peter Cawley -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RIBBON_ART_H_ -#define _WX_RIBBON_ART_H_ - -#include "wx/defs.h" - -#if wxUSE_RIBBON - -#include "wx/brush.h" -#include "wx/colour.h" -#include "wx/font.h" -#include "wx/pen.h" -#include "wx/bitmap.h" -#include "wx/ribbon/bar.h" - -class WXDLLIMPEXP_FWD_CORE wxDC; -class WXDLLIMPEXP_FWD_CORE wxWindow; - -enum wxRibbonArtSetting -{ - wxRIBBON_ART_TAB_SEPARATION_SIZE, - wxRIBBON_ART_PAGE_BORDER_LEFT_SIZE, - wxRIBBON_ART_PAGE_BORDER_TOP_SIZE, - wxRIBBON_ART_PAGE_BORDER_RIGHT_SIZE, - wxRIBBON_ART_PAGE_BORDER_BOTTOM_SIZE, - wxRIBBON_ART_PANEL_X_SEPARATION_SIZE, - wxRIBBON_ART_PANEL_Y_SEPARATION_SIZE, - wxRIBBON_ART_TOOL_GROUP_SEPARATION_SIZE, - wxRIBBON_ART_GALLERY_BITMAP_PADDING_LEFT_SIZE, - wxRIBBON_ART_GALLERY_BITMAP_PADDING_RIGHT_SIZE, - wxRIBBON_ART_GALLERY_BITMAP_PADDING_TOP_SIZE, - wxRIBBON_ART_GALLERY_BITMAP_PADDING_BOTTOM_SIZE, - wxRIBBON_ART_PANEL_LABEL_FONT, - wxRIBBON_ART_BUTTON_BAR_LABEL_FONT, - wxRIBBON_ART_TAB_LABEL_FONT, - wxRIBBON_ART_BUTTON_BAR_LABEL_COLOUR, - wxRIBBON_ART_BUTTON_BAR_HOVER_BORDER_COLOUR, - wxRIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_TOP_COLOUR, - wxRIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_TOP_GRADIENT_COLOUR, - wxRIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_COLOUR, - wxRIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_BUTTON_BAR_ACTIVE_BORDER_COLOUR, - wxRIBBON_ART_BUTTON_BAR_ACTIVE_BACKGROUND_TOP_COLOUR, - wxRIBBON_ART_BUTTON_BAR_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR, - wxRIBBON_ART_BUTTON_BAR_ACTIVE_BACKGROUND_COLOUR, - wxRIBBON_ART_BUTTON_BAR_ACTIVE_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_GALLERY_BORDER_COLOUR, - wxRIBBON_ART_GALLERY_HOVER_BACKGROUND_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_BACKGROUND_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_BACKGROUND_TOP_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_FACE_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_HOVER_BACKGROUND_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_HOVER_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_HOVER_BACKGROUND_TOP_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_HOVER_FACE_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_ACTIVE_BACKGROUND_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_ACTIVE_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_ACTIVE_BACKGROUND_TOP_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_ACTIVE_FACE_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_DISABLED_BACKGROUND_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_DISABLED_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_DISABLED_BACKGROUND_TOP_COLOUR, - wxRIBBON_ART_GALLERY_BUTTON_DISABLED_FACE_COLOUR, - wxRIBBON_ART_GALLERY_ITEM_BORDER_COLOUR, - wxRIBBON_ART_TAB_LABEL_COLOUR, - wxRIBBON_ART_TAB_SEPARATOR_COLOUR, - wxRIBBON_ART_TAB_SEPARATOR_GRADIENT_COLOUR, - wxRIBBON_ART_TAB_CTRL_BACKGROUND_COLOUR, - wxRIBBON_ART_TAB_CTRL_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_TAB_HOVER_BACKGROUND_TOP_COLOUR, - wxRIBBON_ART_TAB_HOVER_BACKGROUND_TOP_GRADIENT_COLOUR, - wxRIBBON_ART_TAB_HOVER_BACKGROUND_COLOUR, - wxRIBBON_ART_TAB_HOVER_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_TAB_ACTIVE_BACKGROUND_TOP_COLOUR, - wxRIBBON_ART_TAB_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR, - wxRIBBON_ART_TAB_ACTIVE_BACKGROUND_COLOUR, - wxRIBBON_ART_TAB_ACTIVE_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_TAB_BORDER_COLOUR, - wxRIBBON_ART_PANEL_BORDER_COLOUR, - wxRIBBON_ART_PANEL_BORDER_GRADIENT_COLOUR, - wxRIBBON_ART_PANEL_MINIMISED_BORDER_COLOUR, - wxRIBBON_ART_PANEL_MINIMISED_BORDER_GRADIENT_COLOUR, - wxRIBBON_ART_PANEL_LABEL_BACKGROUND_COLOUR, - wxRIBBON_ART_PANEL_LABEL_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_PANEL_LABEL_COLOUR, - wxRIBBON_ART_PANEL_HOVER_LABEL_BACKGROUND_COLOUR, - wxRIBBON_ART_PANEL_HOVER_LABEL_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_PANEL_HOVER_LABEL_COLOUR, - wxRIBBON_ART_PANEL_MINIMISED_LABEL_COLOUR, - wxRIBBON_ART_PANEL_ACTIVE_BACKGROUND_TOP_COLOUR, - wxRIBBON_ART_PANEL_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR, - wxRIBBON_ART_PANEL_ACTIVE_BACKGROUND_COLOUR, - wxRIBBON_ART_PANEL_ACTIVE_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_PANEL_BUTTON_FACE_COLOUR, - wxRIBBON_ART_PANEL_BUTTON_HOVER_FACE_COLOUR, - - wxRIBBON_ART_PAGE_TOGGLE_FACE_COLOUR, - wxRIBBON_ART_PAGE_TOGGLE_HOVER_FACE_COLOUR, - - wxRIBBON_ART_PAGE_BORDER_COLOUR, - wxRIBBON_ART_PAGE_BACKGROUND_TOP_COLOUR, - wxRIBBON_ART_PAGE_BACKGROUND_TOP_GRADIENT_COLOUR, - wxRIBBON_ART_PAGE_BACKGROUND_COLOUR, - wxRIBBON_ART_PAGE_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_PAGE_HOVER_BACKGROUND_TOP_COLOUR, - wxRIBBON_ART_PAGE_HOVER_BACKGROUND_TOP_GRADIENT_COLOUR, - wxRIBBON_ART_PAGE_HOVER_BACKGROUND_COLOUR, - wxRIBBON_ART_PAGE_HOVER_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_TOOLBAR_BORDER_COLOUR, - wxRIBBON_ART_TOOLBAR_HOVER_BORDER_COLOUR, - wxRIBBON_ART_TOOLBAR_FACE_COLOUR, - wxRIBBON_ART_TOOL_BACKGROUND_TOP_COLOUR, - wxRIBBON_ART_TOOL_BACKGROUND_TOP_GRADIENT_COLOUR, - wxRIBBON_ART_TOOL_BACKGROUND_COLOUR, - wxRIBBON_ART_TOOL_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_TOOL_HOVER_BACKGROUND_TOP_COLOUR, - wxRIBBON_ART_TOOL_HOVER_BACKGROUND_TOP_GRADIENT_COLOUR, - wxRIBBON_ART_TOOL_HOVER_BACKGROUND_COLOUR, - wxRIBBON_ART_TOOL_HOVER_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_TOP_COLOUR, - wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR, - wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_COLOUR, - wxRIBBON_ART_TOOL_ACTIVE_BACKGROUND_GRADIENT_COLOUR, - wxRIBBON_ART_BUTTON_BAR_LABEL_DISABLED_COLOUR, - wxRIBBON_ART_BUTTON_BAR_LABEL_HIGHLIGHT_COLOUR, - wxRIBBON_ART_BUTTON_BAR_LABEL_HIGHLIGHT_GRADIENT_COLOUR, - wxRIBBON_ART_BUTTON_BAR_LABEL_HIGHLIGHT_TOP_COLOUR, - wxRIBBON_ART_BUTTON_BAR_LABEL_HIGHLIGHT_GRADIENT_TOP_COLOUR -}; - -enum wxRibbonScrollButtonStyle -{ - wxRIBBON_SCROLL_BTN_LEFT = 0, - wxRIBBON_SCROLL_BTN_RIGHT = 1, - wxRIBBON_SCROLL_BTN_UP = 2, - wxRIBBON_SCROLL_BTN_DOWN = 3, - - wxRIBBON_SCROLL_BTN_DIRECTION_MASK = 3, - - wxRIBBON_SCROLL_BTN_NORMAL = 0, - wxRIBBON_SCROLL_BTN_HOVERED = 4, - wxRIBBON_SCROLL_BTN_ACTIVE = 8, - - wxRIBBON_SCROLL_BTN_STATE_MASK = 12, - - wxRIBBON_SCROLL_BTN_FOR_OTHER = 0, - wxRIBBON_SCROLL_BTN_FOR_TABS = 16, - wxRIBBON_SCROLL_BTN_FOR_PAGE = 32, - - wxRIBBON_SCROLL_BTN_FOR_MASK = 48 -}; - -enum wxRibbonButtonKind -{ - wxRIBBON_BUTTON_NORMAL = 1 << 0, - wxRIBBON_BUTTON_DROPDOWN = 1 << 1, - wxRIBBON_BUTTON_HYBRID = wxRIBBON_BUTTON_NORMAL | wxRIBBON_BUTTON_DROPDOWN, - wxRIBBON_BUTTON_TOGGLE = 1 << 2 -}; - -enum wxRibbonButtonBarButtonState -{ - wxRIBBON_BUTTONBAR_BUTTON_SMALL = 0 << 0, - wxRIBBON_BUTTONBAR_BUTTON_MEDIUM = 1 << 0, - wxRIBBON_BUTTONBAR_BUTTON_LARGE = 2 << 0, - wxRIBBON_BUTTONBAR_BUTTON_SIZE_MASK = 3 << 0, - - wxRIBBON_BUTTONBAR_BUTTON_NORMAL_HOVERED = 1 << 3, - wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_HOVERED = 1 << 4, - wxRIBBON_BUTTONBAR_BUTTON_HOVER_MASK = wxRIBBON_BUTTONBAR_BUTTON_NORMAL_HOVERED | wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_HOVERED, - wxRIBBON_BUTTONBAR_BUTTON_NORMAL_ACTIVE = 1 << 5, - wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_ACTIVE = 1 << 6, - wxRIBBON_BUTTONBAR_BUTTON_ACTIVE_MASK = wxRIBBON_BUTTONBAR_BUTTON_NORMAL_ACTIVE | wxRIBBON_BUTTONBAR_BUTTON_DROPDOWN_ACTIVE, - wxRIBBON_BUTTONBAR_BUTTON_DISABLED = 1 << 7, - wxRIBBON_BUTTONBAR_BUTTON_TOGGLED = 1 << 8, - wxRIBBON_BUTTONBAR_BUTTON_STATE_MASK = 0x1F8 -}; - -enum wxRibbonGalleryButtonState -{ - wxRIBBON_GALLERY_BUTTON_NORMAL, - wxRIBBON_GALLERY_BUTTON_HOVERED, - wxRIBBON_GALLERY_BUTTON_ACTIVE, - wxRIBBON_GALLERY_BUTTON_DISABLED -}; - -class wxRibbonBar; -class wxRibbonPage; -class wxRibbonPanel; -class wxRibbonGallery; -class wxRibbonGalleryItem; -class wxRibbonPageTabInfo; -class wxRibbonPageTabInfoArray; - -class WXDLLIMPEXP_RIBBON wxRibbonArtProvider -{ -public: - wxRibbonArtProvider(); - virtual ~wxRibbonArtProvider(); - - virtual wxRibbonArtProvider* Clone() const = 0; - virtual void SetFlags(long flags) = 0; - virtual long GetFlags() const = 0; - - virtual int GetMetric(int id) const = 0; - virtual void SetMetric(int id, int new_val) = 0; - virtual void SetFont(int id, const wxFont& font) = 0; - virtual wxFont GetFont(int id) const = 0; - virtual wxColour GetColour(int id) const = 0; - virtual void SetColour(int id, const wxColor& colour) = 0; - wxColour GetColor(int id) const { return GetColour(id); } - void SetColor(int id, const wxColour& color) { SetColour(id, color); } - virtual void GetColourScheme(wxColour* primary, - wxColour* secondary, - wxColour* tertiary) const = 0; - virtual void SetColourScheme(const wxColour& primary, - const wxColour& secondary, - const wxColour& tertiary) = 0; - - virtual void DrawTabCtrlBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) = 0; - - virtual void DrawTab(wxDC& dc, - wxWindow* wnd, - const wxRibbonPageTabInfo& tab) = 0; - - virtual void DrawTabSeparator(wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - double visibility) = 0; - - virtual void DrawPageBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) = 0; - - virtual void DrawScrollButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - long style) = 0; - - virtual void DrawPanelBackground( - wxDC& dc, - wxRibbonPanel* wnd, - const wxRect& rect) = 0; - - virtual void DrawGalleryBackground( - wxDC& dc, - wxRibbonGallery* wnd, - const wxRect& rect) = 0; - - virtual void DrawGalleryItemBackground( - wxDC& dc, - wxRibbonGallery* wnd, - const wxRect& rect, - wxRibbonGalleryItem* item) = 0; - - virtual void DrawMinimisedPanel( - wxDC& dc, - wxRibbonPanel* wnd, - const wxRect& rect, - wxBitmap& bitmap) = 0; - - virtual void DrawButtonBarBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) = 0; - - virtual void DrawButtonBarButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - wxRibbonButtonKind kind, - long state, - const wxString& label, - const wxBitmap& bitmap_large, - const wxBitmap& bitmap_small) = 0; - - virtual void DrawToolBarBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) = 0; - - virtual void DrawToolGroupBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) = 0; - - virtual void DrawTool( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - const wxBitmap& bitmap, - wxRibbonButtonKind kind, - long state) = 0; - - virtual void DrawToggleButton( - wxDC& dc, - wxRibbonBar* wnd, - const wxRect& rect, - wxRibbonDisplayMode mode) = 0; - - virtual void DrawHelpButton( - wxDC& dc, - wxRibbonBar* wnd, - const wxRect& rect) = 0; - - virtual void GetBarTabWidth( - wxDC& dc, - wxWindow* wnd, - const wxString& label, - const wxBitmap& bitmap, - int* ideal, - int* small_begin_need_separator, - int* small_must_have_separator, - int* minimum) = 0; - - virtual int GetTabCtrlHeight( - wxDC& dc, - wxWindow* wnd, - const wxRibbonPageTabInfoArray& pages) = 0; - - virtual wxSize GetScrollButtonMinimumSize( - wxDC& dc, - wxWindow* wnd, - long style) = 0; - - virtual wxSize GetPanelSize( - wxDC& dc, - const wxRibbonPanel* wnd, - wxSize client_size, - wxPoint* client_offset) = 0; - - virtual wxSize GetPanelClientSize( - wxDC& dc, - const wxRibbonPanel* wnd, - wxSize size, - wxPoint* client_offset) = 0; - - virtual wxRect GetPanelExtButtonArea( - wxDC& dc, - const wxRibbonPanel* wnd, - wxRect rect) = 0; - - virtual wxSize GetGallerySize( - wxDC& dc, - const wxRibbonGallery* wnd, - wxSize client_size) = 0; - - virtual wxSize GetGalleryClientSize( - wxDC& dc, - const wxRibbonGallery* wnd, - wxSize size, - wxPoint* client_offset, - wxRect* scroll_up_button, - wxRect* scroll_down_button, - wxRect* extension_button) = 0; - - virtual wxRect GetPageBackgroundRedrawArea( - wxDC& dc, - const wxRibbonPage* wnd, - wxSize page_old_size, - wxSize page_new_size) = 0; - - virtual bool GetButtonBarButtonSize( - wxDC& dc, - wxWindow* wnd, - wxRibbonButtonKind kind, - wxRibbonButtonBarButtonState size, - const wxString& label, - wxSize bitmap_size_large, - wxSize bitmap_size_small, - wxSize* button_size, - wxRect* normal_region, - wxRect* dropdown_region) = 0; - - virtual wxSize GetMinimisedPanelMinimumSize( - wxDC& dc, - const wxRibbonPanel* wnd, - wxSize* desired_bitmap_size, - wxDirection* expanded_panel_direction) = 0; - - virtual wxSize GetToolSize( - wxDC& dc, - wxWindow* wnd, - wxSize bitmap_size, - wxRibbonButtonKind kind, - bool is_first, - bool is_last, - wxRect* dropdown_region) = 0; - - virtual wxRect GetBarToggleButtonArea(const wxRect& rect)= 0; - - virtual wxRect GetRibbonHelpButtonArea(const wxRect& rect) = 0; -}; - -class WXDLLIMPEXP_RIBBON wxRibbonMSWArtProvider : public wxRibbonArtProvider -{ -public: - wxRibbonMSWArtProvider(bool set_colour_scheme = true); - virtual ~wxRibbonMSWArtProvider(); - - wxRibbonArtProvider* Clone() const wxOVERRIDE; - void SetFlags(long flags) wxOVERRIDE; - long GetFlags() const wxOVERRIDE; - - int GetMetric(int id) const wxOVERRIDE; - void SetMetric(int id, int new_val) wxOVERRIDE; - void SetFont(int id, const wxFont& font) wxOVERRIDE; - wxFont GetFont(int id) const wxOVERRIDE; - wxColour GetColour(int id) const wxOVERRIDE; - void SetColour(int id, const wxColor& colour) wxOVERRIDE; - void GetColourScheme(wxColour* primary, - wxColour* secondary, - wxColour* tertiary) const wxOVERRIDE; - void SetColourScheme(const wxColour& primary, - const wxColour& secondary, - const wxColour& tertiary) wxOVERRIDE; - - int GetTabCtrlHeight( - wxDC& dc, - wxWindow* wnd, - const wxRibbonPageTabInfoArray& pages) wxOVERRIDE; - - void DrawTabCtrlBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawTab(wxDC& dc, - wxWindow* wnd, - const wxRibbonPageTabInfo& tab) wxOVERRIDE; - - void DrawTabSeparator( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - double visibility) wxOVERRIDE; - - void DrawPageBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawScrollButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - long style) wxOVERRIDE; - - void DrawPanelBackground( - wxDC& dc, - wxRibbonPanel* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawGalleryBackground( - wxDC& dc, - wxRibbonGallery* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawGalleryItemBackground( - wxDC& dc, - wxRibbonGallery* wnd, - const wxRect& rect, - wxRibbonGalleryItem* item) wxOVERRIDE; - - void DrawMinimisedPanel( - wxDC& dc, - wxRibbonPanel* wnd, - const wxRect& rect, - wxBitmap& bitmap) wxOVERRIDE; - - void DrawButtonBarBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawButtonBarButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - wxRibbonButtonKind kind, - long state, - const wxString& label, - const wxBitmap& bitmap_large, - const wxBitmap& bitmap_small) wxOVERRIDE; - - void DrawToolBarBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawToolGroupBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawTool( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - const wxBitmap& bitmap, - wxRibbonButtonKind kind, - long state) wxOVERRIDE; - - void DrawToggleButton( - wxDC& dc, - wxRibbonBar* wnd, - const wxRect& rect, - wxRibbonDisplayMode mode) wxOVERRIDE; - - void DrawHelpButton(wxDC& dc, - wxRibbonBar* wnd, - const wxRect& rect) wxOVERRIDE; - - void GetBarTabWidth( - wxDC& dc, - wxWindow* wnd, - const wxString& label, - const wxBitmap& bitmap, - int* ideal, - int* small_begin_need_separator, - int* small_must_have_separator, - int* minimum) wxOVERRIDE; - - wxSize GetScrollButtonMinimumSize( - wxDC& dc, - wxWindow* wnd, - long style) wxOVERRIDE; - - wxSize GetPanelSize( - wxDC& dc, - const wxRibbonPanel* wnd, - wxSize client_size, - wxPoint* client_offset) wxOVERRIDE; - - wxSize GetPanelClientSize( - wxDC& dc, - const wxRibbonPanel* wnd, - wxSize size, - wxPoint* client_offset) wxOVERRIDE; - - wxRect GetPanelExtButtonArea( - wxDC& dc, - const wxRibbonPanel* wnd, - wxRect rect) wxOVERRIDE; - - wxSize GetGallerySize( - wxDC& dc, - const wxRibbonGallery* wnd, - wxSize client_size) wxOVERRIDE; - - wxSize GetGalleryClientSize( - wxDC& dc, - const wxRibbonGallery* wnd, - wxSize size, - wxPoint* client_offset, - wxRect* scroll_up_button, - wxRect* scroll_down_button, - wxRect* extension_button) wxOVERRIDE; - - wxRect GetPageBackgroundRedrawArea( - wxDC& dc, - const wxRibbonPage* wnd, - wxSize page_old_size, - wxSize page_new_size) wxOVERRIDE; - - bool GetButtonBarButtonSize( - wxDC& dc, - wxWindow* wnd, - wxRibbonButtonKind kind, - wxRibbonButtonBarButtonState size, - const wxString& label, - wxSize bitmap_size_large, - wxSize bitmap_size_small, - wxSize* button_size, - wxRect* normal_region, - wxRect* dropdown_region) wxOVERRIDE; - - wxSize GetMinimisedPanelMinimumSize( - wxDC& dc, - const wxRibbonPanel* wnd, - wxSize* desired_bitmap_size, - wxDirection* expanded_panel_direction) wxOVERRIDE; - - wxSize GetToolSize( - wxDC& dc, - wxWindow* wnd, - wxSize bitmap_size, - wxRibbonButtonKind kind, - bool is_first, - bool is_last, - wxRect* dropdown_region) wxOVERRIDE; - - wxRect GetBarToggleButtonArea(const wxRect& rect) wxOVERRIDE; - - wxRect GetRibbonHelpButtonArea(const wxRect& rect) wxOVERRIDE; - -protected: - void ReallyDrawTabSeparator(wxWindow* wnd, const wxRect& rect, double visibility); - void DrawPartialPageBackground(wxDC& dc, wxWindow* wnd, const wxRect& rect, - bool allow_hovered = true); - void DrawPartialPageBackground(wxDC& dc, wxWindow* wnd, const wxRect& rect, - wxRibbonPage* page, wxPoint offset, bool hovered = false); - void DrawPanelBorder(wxDC& dc, const wxRect& rect, wxPen& primary_colour, - wxPen& secondary_colour); - void RemovePanelPadding(wxRect* rect); - void DrawDropdownArrow(wxDC& dc, int x, int y, const wxColour& colour); - void DrawGalleryBackgroundCommon(wxDC& dc, wxRibbonGallery* wnd, - const wxRect& rect); - virtual void DrawGalleryButton(wxDC& dc, wxRect rect, - wxRibbonGalleryButtonState state, wxBitmap* bitmaps); - void DrawButtonBarButtonForeground( - wxDC& dc, - const wxRect& rect, - wxRibbonButtonKind kind, - long state, - const wxString& label, - const wxBitmap& bitmap_large, - const wxBitmap& bitmap_small); - void DrawMinimisedPanelCommon( - wxDC& dc, - wxRibbonPanel* wnd, - const wxRect& rect, - wxRect* preview_rect); - void CloneTo(wxRibbonMSWArtProvider* copy) const; - - wxBitmap m_cached_tab_separator; - wxBitmap m_gallery_up_bitmap[4]; - wxBitmap m_gallery_down_bitmap[4]; - wxBitmap m_gallery_extension_bitmap[4]; - wxBitmap m_toolbar_drop_bitmap; - wxBitmap m_panel_extension_bitmap[2]; - wxBitmap m_ribbon_toggle_up_bitmap[2]; - wxBitmap m_ribbon_toggle_down_bitmap[2]; - wxBitmap m_ribbon_toggle_pin_bitmap[2]; - wxBitmap m_ribbon_bar_help_button_bitmap[2]; - - wxColour m_primary_scheme_colour; - wxColour m_secondary_scheme_colour; - wxColour m_tertiary_scheme_colour; - - wxColour m_button_bar_label_colour; - wxColour m_button_bar_label_disabled_colour; - wxColour m_tab_label_colour; - wxColour m_tab_separator_colour; - wxColour m_tab_separator_gradient_colour; - wxColour m_tab_active_background_colour; - wxColour m_tab_active_background_gradient_colour; - wxColour m_tab_hover_background_colour; - wxColour m_tab_hover_background_gradient_colour; - wxColour m_tab_hover_background_top_colour; - wxColour m_tab_hover_background_top_gradient_colour; - wxColour m_tab_highlight_top_colour; - wxColour m_tab_highlight_top_gradient_colour; - wxColour m_tab_highlight_colour; - wxColour m_tab_highlight_gradient_colour; - wxColour m_panel_label_colour; - wxColour m_panel_minimised_label_colour; - wxColour m_panel_hover_label_colour; - wxColour m_panel_active_background_colour; - wxColour m_panel_active_background_gradient_colour; - wxColour m_panel_active_background_top_colour; - wxColour m_panel_active_background_top_gradient_colour; - wxColour m_panel_button_face_colour; - wxColour m_panel_button_hover_face_colour; - wxColour m_page_toggle_face_colour; - wxColour m_page_toggle_hover_face_colour; - wxColour m_page_background_colour; - wxColour m_page_background_gradient_colour; - wxColour m_page_background_top_colour; - wxColour m_page_background_top_gradient_colour; - wxColour m_page_hover_background_colour; - wxColour m_page_hover_background_gradient_colour; - wxColour m_page_hover_background_top_colour; - wxColour m_page_hover_background_top_gradient_colour; - wxColour m_button_bar_hover_background_colour; - wxColour m_button_bar_hover_background_gradient_colour; - wxColour m_button_bar_hover_background_top_colour; - wxColour m_button_bar_hover_background_top_gradient_colour; - wxColour m_button_bar_active_background_colour; - wxColour m_button_bar_active_background_gradient_colour; - wxColour m_button_bar_active_background_top_colour; - wxColour m_button_bar_active_background_top_gradient_colour; - wxColour m_gallery_button_background_colour; - wxColour m_gallery_button_background_gradient_colour; - wxColour m_gallery_button_hover_background_colour; - wxColour m_gallery_button_hover_background_gradient_colour; - wxColour m_gallery_button_active_background_colour; - wxColour m_gallery_button_active_background_gradient_colour; - wxColour m_gallery_button_disabled_background_colour; - wxColour m_gallery_button_disabled_background_gradient_colour; - wxColour m_gallery_button_face_colour; - wxColour m_gallery_button_hover_face_colour; - wxColour m_gallery_button_active_face_colour; - wxColour m_gallery_button_disabled_face_colour; - - wxColour m_tool_face_colour; - wxColour m_tool_background_top_colour; - wxColour m_tool_background_top_gradient_colour; - wxColour m_tool_background_colour; - wxColour m_tool_background_gradient_colour; - wxColour m_tool_hover_background_top_colour; - wxColour m_tool_hover_background_top_gradient_colour; - wxColour m_tool_hover_background_colour; - wxColour m_tool_hover_background_gradient_colour; - wxColour m_tool_active_background_top_colour; - wxColour m_tool_active_background_top_gradient_colour; - wxColour m_tool_active_background_colour; - wxColour m_tool_active_background_gradient_colour; - - wxBrush m_tab_ctrl_background_brush; - wxBrush m_panel_label_background_brush; - wxBrush m_panel_hover_label_background_brush; - wxBrush m_panel_hover_button_background_brush; - wxBrush m_gallery_hover_background_brush; - wxBrush m_gallery_button_background_top_brush; - wxBrush m_gallery_button_hover_background_top_brush; - wxBrush m_gallery_button_active_background_top_brush; - wxBrush m_gallery_button_disabled_background_top_brush; - wxBrush m_ribbon_toggle_brush; - - wxFont m_tab_label_font; - wxFont m_panel_label_font; - wxFont m_button_bar_label_font; - - wxPen m_page_border_pen; - wxPen m_panel_border_pen; - wxPen m_panel_border_gradient_pen; - wxPen m_panel_minimised_border_pen; - wxPen m_panel_minimised_border_gradient_pen; - wxPen m_panel_hover_button_border_pen; - wxPen m_tab_border_pen; - wxPen m_button_bar_hover_border_pen; - wxPen m_button_bar_active_border_pen; - wxPen m_gallery_border_pen; - wxPen m_gallery_item_border_pen; - wxPen m_toolbar_border_pen; - wxPen m_ribbon_toggle_pen; - - double m_cached_tab_separator_visibility; - long m_flags; - - int m_tab_separation_size; - int m_page_border_left; - int m_page_border_top; - int m_page_border_right; - int m_page_border_bottom; - int m_panel_x_separation_size; - int m_panel_y_separation_size; - int m_tool_group_separation_size; - int m_gallery_bitmap_padding_left_size; - int m_gallery_bitmap_padding_right_size; - int m_gallery_bitmap_padding_top_size; - int m_gallery_bitmap_padding_bottom_size; - int m_toggle_button_offset; - int m_help_button_offset; -}; - -class WXDLLIMPEXP_RIBBON wxRibbonAUIArtProvider : public wxRibbonMSWArtProvider -{ -public: - wxRibbonAUIArtProvider(); - virtual ~wxRibbonAUIArtProvider(); - - wxRibbonArtProvider* Clone() const wxOVERRIDE; - - wxColour GetColour(int id) const wxOVERRIDE; - void SetColour(int id, const wxColor& colour) wxOVERRIDE; - void SetColourScheme(const wxColour& primary, - const wxColour& secondary, - const wxColour& tertiary) wxOVERRIDE; - void SetFont(int id, const wxFont& font) wxOVERRIDE; - - wxSize GetScrollButtonMinimumSize( - wxDC& dc, - wxWindow* wnd, - long style) wxOVERRIDE; - - void DrawScrollButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - long style) wxOVERRIDE; - - wxSize GetPanelSize( - wxDC& dc, - const wxRibbonPanel* wnd, - wxSize client_size, - wxPoint* client_offset) wxOVERRIDE; - - wxSize GetPanelClientSize( - wxDC& dc, - const wxRibbonPanel* wnd, - wxSize size, - wxPoint* client_offset) wxOVERRIDE; - - wxRect GetPanelExtButtonArea( - wxDC& dc, - const wxRibbonPanel* wnd, - wxRect rect) wxOVERRIDE; - - void DrawTabCtrlBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - int GetTabCtrlHeight( - wxDC& dc, - wxWindow* wnd, - const wxRibbonPageTabInfoArray& pages) wxOVERRIDE; - - void GetBarTabWidth( - wxDC& dc, - wxWindow* wnd, - const wxString& label, - const wxBitmap& bitmap, - int* ideal, - int* small_begin_need_separator, - int* small_must_have_separator, - int* minimum) wxOVERRIDE; - - void DrawTab(wxDC& dc, - wxWindow* wnd, - const wxRibbonPageTabInfo& tab) wxOVERRIDE; - - void DrawTabSeparator( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - double visibility) wxOVERRIDE; - - void DrawPageBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawPanelBackground( - wxDC& dc, - wxRibbonPanel* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawMinimisedPanel( - wxDC& dc, - wxRibbonPanel* wnd, - const wxRect& rect, - wxBitmap& bitmap) wxOVERRIDE; - - void DrawGalleryBackground( - wxDC& dc, - wxRibbonGallery* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawGalleryItemBackground( - wxDC& dc, - wxRibbonGallery* wnd, - const wxRect& rect, - wxRibbonGalleryItem* item) wxOVERRIDE; - - void DrawButtonBarBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawButtonBarButton( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - wxRibbonButtonKind kind, - long state, - const wxString& label, - const wxBitmap& bitmap_large, - const wxBitmap& bitmap_small) wxOVERRIDE; - - void DrawToolBarBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawToolGroupBackground( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect) wxOVERRIDE; - - void DrawTool( - wxDC& dc, - wxWindow* wnd, - const wxRect& rect, - const wxBitmap& bitmap, - wxRibbonButtonKind kind, - long state) wxOVERRIDE; - -protected: - void DrawPartialPanelBackground(wxDC& dc, wxWindow* wnd, - const wxRect& rect); - void DrawGalleryButton(wxDC& dc, wxRect rect, - wxRibbonGalleryButtonState state, wxBitmap* bitmaps) wxOVERRIDE; - - wxColour m_tab_ctrl_background_colour; - wxColour m_tab_ctrl_background_gradient_colour; - wxColour m_panel_label_background_colour; - wxColour m_panel_label_background_gradient_colour; - wxColour m_panel_hover_label_background_colour; - wxColour m_panel_hover_label_background_gradient_colour; - - wxBrush m_background_brush; - wxBrush m_tab_active_top_background_brush; - wxBrush m_tab_hover_background_brush; - wxBrush m_button_bar_hover_background_brush; - wxBrush m_button_bar_active_background_brush; - wxBrush m_gallery_button_active_background_brush; - wxBrush m_gallery_button_hover_background_brush; - wxBrush m_gallery_button_disabled_background_brush; - wxBrush m_tool_hover_background_brush; - wxBrush m_tool_active_background_brush; - - wxPen m_toolbar_hover_borden_pen; - - wxFont m_tab_active_label_font; -}; - -#if defined(__WXMSW__) -typedef wxRibbonMSWArtProvider wxRibbonDefaultArtProvider; -#elif defined(__WXOSX_COCOA__) || \ - defined(__WXOSX_IPHONE__) -// TODO: Once implemented, change typedef to OSX -// typedef wxRibbonOSXArtProvider wxRibbonDefaultArtProvider; -typedef wxRibbonAUIArtProvider wxRibbonDefaultArtProvider; -#else -// TODO: Once implemented, change typedef to AUI -typedef wxRibbonAUIArtProvider wxRibbonDefaultArtProvider; -#endif - -#endif // wxUSE_RIBBON - -#endif // _WX_RIBBON_ART_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/art_internal.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/art_internal.h deleted file mode 100644 index 879b22d8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/art_internal.h +++ /dev/null @@ -1,81 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/ribbon/art_internal.h -// Purpose: Helper functions & classes used by ribbon art providers -// Author: Peter Cawley -// Modified by: -// Created: 2009-08-04 -// Copyright: (C) Peter Cawley -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RIBBON_ART_INTERNAL_H_ -#define _WX_RIBBON_ART_INTERNAL_H_ - -#include "wx/defs.h" - -#if wxUSE_RIBBON - -WXDLLIMPEXP_RIBBON wxColour wxRibbonInterpolateColour( - const wxColour& start_colour, - const wxColour& end_colour, - int position, - int start_position, - int end_position); - -WXDLLIMPEXP_RIBBON bool wxRibbonCanLabelBreakAtPosition( - const wxString& label, - size_t pos); - -WXDLLIMPEXP_RIBBON void wxRibbonDrawParallelGradientLines( - wxDC& dc, - int nlines, - const wxPoint* line_origins, - int stepx, - int stepy, - int numsteps, - int offset_x, - int offset_y, - const wxColour& start_colour, - const wxColour& end_colour); - -WXDLLIMPEXP_RIBBON wxBitmap wxRibbonLoadPixmap( - const char* const* bits, - wxColour fore); - -/* - HSL colour class, using interface as discussed in wx-dev. Provided mainly - for art providers to perform colour scheme calculations in the HSL colour - space. If such a class makes it into base / core, then this class should be - removed and users switched over to the one in base / core. - - 0.0 <= Hue < 360.0 - 0.0 <= Saturation <= 1.0 - 0.0 <= Luminance <= 1.0 -*/ -class WXDLLIMPEXP_RIBBON wxRibbonHSLColour -{ -public: - wxRibbonHSLColour() - : hue(0.0), saturation(0.0), luminance(0.0) {} - wxRibbonHSLColour(float H, float S, float L) - : hue(H), saturation(S), luminance(L) { } - wxRibbonHSLColour(const wxColour& C); - - wxColour ToRGB() const; - - wxRibbonHSLColour& MakeDarker(float delta); - wxRibbonHSLColour Darker(float delta) const; - wxRibbonHSLColour Lighter(float delta) const; - wxRibbonHSLColour Saturated(float delta) const; - wxRibbonHSLColour Desaturated(float delta) const; - wxRibbonHSLColour ShiftHue(float delta) const; - - float hue, saturation, luminance; -}; - -WXDLLIMPEXP_RIBBON wxRibbonHSLColour wxRibbonShiftLuminance( - wxRibbonHSLColour colour, float amount); - -#endif // wxUSE_RIBBON - -#endif // _WX_RIBBON_ART_INTERNAL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/bar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/bar.h deleted file mode 100644 index 22164050..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/bar.h +++ /dev/null @@ -1,298 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/ribbon/bar.h -// Purpose: Top-level component of the ribbon-bar-style interface -// Author: Peter Cawley -// Modified by: -// Created: 2009-05-23 -// Copyright: (C) Peter Cawley -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RIBBON_BAR_H_ -#define _WX_RIBBON_BAR_H_ - -#include "wx/defs.h" - -#if wxUSE_RIBBON - -#include "wx/ribbon/control.h" -#include "wx/ribbon/page.h" - -enum wxRibbonBarOption -{ - wxRIBBON_BAR_SHOW_PAGE_LABELS = 1 << 0, - wxRIBBON_BAR_SHOW_PAGE_ICONS = 1 << 1, - wxRIBBON_BAR_FLOW_HORIZONTAL = 0, - wxRIBBON_BAR_FLOW_VERTICAL = 1 << 2, - wxRIBBON_BAR_SHOW_PANEL_EXT_BUTTONS = 1 << 3, - wxRIBBON_BAR_SHOW_PANEL_MINIMISE_BUTTONS = 1 << 4, - wxRIBBON_BAR_ALWAYS_SHOW_TABS = 1 << 5, - wxRIBBON_BAR_SHOW_TOGGLE_BUTTON = 1 << 6, - wxRIBBON_BAR_SHOW_HELP_BUTTON = 1 << 7, - - wxRIBBON_BAR_DEFAULT_STYLE = wxRIBBON_BAR_FLOW_HORIZONTAL - | wxRIBBON_BAR_SHOW_PAGE_LABELS - | wxRIBBON_BAR_SHOW_PANEL_EXT_BUTTONS - | wxRIBBON_BAR_SHOW_TOGGLE_BUTTON - | wxRIBBON_BAR_SHOW_HELP_BUTTON, - - wxRIBBON_BAR_FOLDBAR_STYLE = wxRIBBON_BAR_FLOW_VERTICAL - | wxRIBBON_BAR_SHOW_PAGE_ICONS - | wxRIBBON_BAR_SHOW_PANEL_EXT_BUTTONS - | wxRIBBON_BAR_SHOW_PANEL_MINIMISE_BUTTONS -}; - -enum wxRibbonDisplayMode -{ - wxRIBBON_BAR_PINNED, - wxRIBBON_BAR_MINIMIZED, - wxRIBBON_BAR_EXPANDED -}; - -class WXDLLIMPEXP_RIBBON wxRibbonBarEvent : public wxNotifyEvent -{ -public: - wxRibbonBarEvent(wxEventType command_type = wxEVT_NULL, - int win_id = 0, - wxRibbonPage* page = NULL) - : wxNotifyEvent(command_type, win_id) - , m_page(page) - { - } -#ifndef SWIG - wxRibbonBarEvent(const wxRibbonBarEvent& c) : wxNotifyEvent(c) - { - m_page = c.m_page; - } -#endif - wxEvent *Clone() const wxOVERRIDE { return new wxRibbonBarEvent(*this); } - - wxRibbonPage* GetPage() {return m_page;} - void SetPage(wxRibbonPage* page) {m_page = page;} - -protected: - wxRibbonPage* m_page; - -#ifndef SWIG -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxRibbonBarEvent); -#endif -}; - -class WXDLLIMPEXP_RIBBON wxRibbonPageTabInfo -{ -public: - wxRect rect; - wxRibbonPage *page; - int ideal_width; - int small_begin_need_separator_width; - int small_must_have_separator_width; - int minimum_width; - bool active; - bool hovered; - bool highlight; - bool shown; -}; - -#ifndef SWIG -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxRibbonPageTabInfo, wxRibbonPageTabInfoArray, WXDLLIMPEXP_RIBBON); -#endif - -class WXDLLIMPEXP_RIBBON wxRibbonBar : public wxRibbonControl -{ -public: - wxRibbonBar(); - - wxRibbonBar(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxRIBBON_BAR_DEFAULT_STYLE); - - virtual ~wxRibbonBar(); - - bool Create(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxRIBBON_BAR_DEFAULT_STYLE); - - void SetTabCtrlMargins(int left, int right); - - void SetArtProvider(wxRibbonArtProvider* art) wxOVERRIDE; - - bool SetActivePage(size_t page); - bool SetActivePage(wxRibbonPage* page); - int GetActivePage() const; - wxRibbonPage* GetPage(int n); - size_t GetPageCount() const; - bool DismissExpandedPanel(); - int GetPageNumber(wxRibbonPage* page) const; - - void DeletePage(size_t n); - void ClearPages(); - - bool IsPageShown(size_t page) const; - void ShowPage(size_t page, bool show = true); - void HidePage(size_t page) { ShowPage(page, false); } - - bool IsPageHighlighted(size_t page) const; - void AddPageHighlight(size_t page, bool highlight = true); - void RemovePageHighlight(size_t page) { AddPageHighlight(page, false); } - - void ShowPanels(wxRibbonDisplayMode mode); - void ShowPanels(bool show = true); - void HidePanels() { ShowPanels(wxRIBBON_BAR_MINIMIZED); } - bool ArePanelsShown() const { return m_arePanelsShown; } - wxRibbonDisplayMode GetDisplayMode() const { return m_ribbon_state; } - - virtual bool HasMultiplePages() const wxOVERRIDE { return true; } - - void SetWindowStyleFlag(long style) wxOVERRIDE; - long GetWindowStyleFlag() const wxOVERRIDE; - virtual bool Realize() wxOVERRIDE; - - // Implementation only. - bool IsToggleButtonHovered() const { return m_toggle_button_hovered; } - bool IsHelpButtonHovered() const { return m_help_button_hovered; } - - void HideIfExpanded(); - -protected: - friend class wxRibbonPage; - - virtual wxSize DoGetBestSize() const wxOVERRIDE; - wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - wxRibbonPageTabInfo* HitTestTabs(wxPoint position, int* index = NULL); - void HitTestRibbonButton(const wxRect& rect, const wxPoint& position, bool &hover_flag); - - void CommonInit(long style); - void AddPage(wxRibbonPage *page); - void RecalculateTabSizes(); - void RecalculateMinSize(); - void ScrollTabBar(int npixels); - void RefreshTabBar(); - void RepositionPage(wxRibbonPage *page); - - void OnPaint(wxPaintEvent& evt); - void OnEraseBackground(wxEraseEvent& evt); - void DoEraseBackground(wxDC& dc); - void OnSize(wxSizeEvent& evt); - void OnMouseLeftDown(wxMouseEvent& evt); - void OnMouseLeftUp(wxMouseEvent& evt); - void OnMouseMiddleDown(wxMouseEvent& evt); - void OnMouseMiddleUp(wxMouseEvent& evt); - void OnMouseRightDown(wxMouseEvent& evt); - void OnMouseRightUp(wxMouseEvent& evt); - void OnMouseMove(wxMouseEvent& evt); - void OnMouseLeave(wxMouseEvent& evt); - void OnMouseDoubleClick(wxMouseEvent& evt); - void DoMouseButtonCommon(wxMouseEvent& evt, wxEventType tab_event_type); - void OnKillFocus(wxFocusEvent& evt); - - wxRibbonPageTabInfoArray m_pages; - wxRect m_tab_scroll_left_button_rect; - wxRect m_tab_scroll_right_button_rect; - wxRect m_toggle_button_rect; - wxRect m_help_button_rect; - long m_flags; - int m_tabs_total_width_ideal; - int m_tabs_total_width_minimum; - int m_tab_margin_left; - int m_tab_margin_right; - int m_tab_height; - int m_tab_scroll_amount; - int m_current_page; - int m_current_hovered_page; - int m_tab_scroll_left_button_state; - int m_tab_scroll_right_button_state; - bool m_tab_scroll_buttons_shown; - bool m_arePanelsShown; - bool m_bar_hovered; - bool m_toggle_button_hovered; - bool m_help_button_hovered; - - wxRibbonDisplayMode m_ribbon_state; - -#ifndef SWIG - wxDECLARE_CLASS(wxRibbonBar); - wxDECLARE_EVENT_TABLE(); -#endif -}; - -#ifndef SWIG - -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONBAR_PAGE_CHANGED, wxRibbonBarEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONBAR_PAGE_CHANGING, wxRibbonBarEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONBAR_TAB_MIDDLE_DOWN, wxRibbonBarEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONBAR_TAB_MIDDLE_UP, wxRibbonBarEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONBAR_TAB_RIGHT_DOWN, wxRibbonBarEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONBAR_TAB_RIGHT_UP, wxRibbonBarEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONBAR_TAB_LEFT_DCLICK, wxRibbonBarEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONBAR_TOGGLED, wxRibbonBarEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONBAR_HELP_CLICK, wxRibbonBarEvent); - -typedef void (wxEvtHandler::*wxRibbonBarEventFunction)(wxRibbonBarEvent&); - -#define wxRibbonBarEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxRibbonBarEventFunction, func) - -#define EVT_RIBBONBAR_PAGE_CHANGED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONBAR_PAGE_CHANGED, winid, wxRibbonBarEventHandler(fn)) -#define EVT_RIBBONBAR_PAGE_CHANGING(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONBAR_PAGE_CHANGING, winid, wxRibbonBarEventHandler(fn)) -#define EVT_RIBBONBAR_TAB_MIDDLE_DOWN(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONBAR_TAB_MIDDLE_DOWN, winid, wxRibbonBarEventHandler(fn)) -#define EVT_RIBBONBAR_TAB_MIDDLE_UP(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONBAR_TAB_MIDDLE_UP, winid, wxRibbonBarEventHandler(fn)) -#define EVT_RIBBONBAR_TAB_RIGHT_DOWN(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONBAR_TAB_RIGHT_DOWN, winid, wxRibbonBarEventHandler(fn)) -#define EVT_RIBBONBAR_TAB_RIGHT_UP(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONBAR_TAB_RIGHT_UP, winid, wxRibbonBarEventHandler(fn)) -#define EVT_RIBBONBAR_TAB_LEFT_DCLICK(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONBAR_TAB_LEFT_DCLICK, winid, wxRibbonBarEventHandler(fn)) -#define EVT_RIBBONBAR_TOGGLED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONBAR_TOGGLED, winid, wxRibbonBarEventHandler(fn)) -#define EVT_RIBBONBAR_HELP_CLICK(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONBAR_HELP_CLICK, winid, wxRibbonBarEventHandler(fn)) -#else - -// wxpython/swig event work -%constant wxEventType wxEVT_RIBBONBAR_PAGE_CHANGED; -%constant wxEventType wxEVT_RIBBONBAR_PAGE_CHANGING; -%constant wxEventType wxEVT_RIBBONBAR_TAB_MIDDLE_DOWN; -%constant wxEventType wxEVT_RIBBONBAR_TAB_MIDDLE_UP; -%constant wxEventType wxEVT_RIBBONBAR_TAB_RIGHT_DOWN; -%constant wxEventType wxEVT_RIBBONBAR_TAB_RIGHT_UP; -%constant wxEventType wxEVT_RIBBONBAR_TAB_LEFT_DCLICK; -%constant wxEventType wxEVT_RIBBONBAR_TOGGLED; -%constant wxEventType wxEVT_RIBBONBAR_HELP_CLICK; - -%pythoncode { - EVT_RIBBONBAR_PAGE_CHANGED = wx.PyEventBinder( wxEVT_RIBBONBAR_PAGE_CHANGED, 1 ) - EVT_RIBBONBAR_PAGE_CHANGING = wx.PyEventBinder( wxEVT_RIBBONBAR_PAGE_CHANGING, 1 ) - EVT_RIBBONBAR_TAB_MIDDLE_DOWN = wx.PyEventBinder( wxEVT_RIBBONBAR_TAB_MIDDLE_DOWN, 1 ) - EVT_RIBBONBAR_TAB_MIDDLE_UP = wx.PyEventBinder( wxEVT_RIBBONBAR_TAB_MIDDLE_UP, 1 ) - EVT_RIBBONBAR_TAB_RIGHT_DOWN = wx.PyEventBinder( wxEVT_RIBBONBAR_TAB_RIGHT_DOWN, 1 ) - EVT_RIBBONBAR_TAB_RIGHT_UP = wx.PyEventBinder( wxEVT_RIBBONBAR_TAB_RIGHT_UP, 1 ) - EVT_RIBBONBAR_TAB_LEFT_DCLICK = wx.PyEventBinder( wxEVT_RIBBONBAR_TAB_LEFT_DCLICK, 1 ) - EVT_RIBBONBAR_TOGGLED = wx.PyEventBinder( wxEVT_RIBBONBAR_TOGGLED, 1 ) - EVT_RIBBONBAR_HELP_CLICK = wx.PyEventBinder( wxEVT_RIBBONBAR_HELP_CLICK, 1 ) -} -#endif - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_RIBBONBAR_PAGE_CHANGED wxEVT_RIBBONBAR_PAGE_CHANGED -#define wxEVT_COMMAND_RIBBONBAR_PAGE_CHANGING wxEVT_RIBBONBAR_PAGE_CHANGING -#define wxEVT_COMMAND_RIBBONBAR_TAB_MIDDLE_DOWN wxEVT_RIBBONBAR_TAB_MIDDLE_DOWN -#define wxEVT_COMMAND_RIBBONBAR_TAB_MIDDLE_UP wxEVT_RIBBONBAR_TAB_MIDDLE_UP -#define wxEVT_COMMAND_RIBBONBAR_TAB_RIGHT_DOWN wxEVT_RIBBONBAR_TAB_RIGHT_DOWN -#define wxEVT_COMMAND_RIBBONBAR_TAB_RIGHT_UP wxEVT_RIBBONBAR_TAB_RIGHT_UP -#define wxEVT_COMMAND_RIBBONBAR_TAB_LEFT_DCLICK wxEVT_RIBBONBAR_TAB_LEFT_DCLICK -#define wxEVT_COMMAND_RIBBONBAR_TOGGLED wxEVT_RIBBONBAR_TOGGLED -#define wxEVT_COMMAND_RIBBONBAR_HELP_CLICKED wxEVT_RIBBONBAR_HELP_CLICK - -#endif // wxUSE_RIBBON - -#endif // _WX_RIBBON_BAR_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/buttonbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/buttonbar.h deleted file mode 100644 index 2f3693cb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/buttonbar.h +++ /dev/null @@ -1,268 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/ribbon/buttonbar.h -// Purpose: Ribbon control similar to a tool bar -// Author: Peter Cawley -// Modified by: -// Created: 2009-07-01 -// Copyright: (C) Peter Cawley -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// -#ifndef _WX_RIBBON_BUTTON_BAR_H_ -#define _WX_RIBBON_BUTTON_BAR_H_ - -#include "wx/defs.h" - -#if wxUSE_RIBBON - -#include "wx/ribbon/art.h" -#include "wx/ribbon/control.h" -#include "wx/dynarray.h" - -class wxRibbonButtonBarButtonBase; -class wxRibbonButtonBarLayout; -class wxRibbonButtonBarButtonInstance; - -WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxRibbonButtonBarLayout*, wxArrayRibbonButtonBarLayout, class WXDLLIMPEXP_RIBBON); -WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxRibbonButtonBarButtonBase*, wxArrayRibbonButtonBarButtonBase, class WXDLLIMPEXP_RIBBON); - -class WXDLLIMPEXP_RIBBON wxRibbonButtonBar : public wxRibbonControl -{ -public: - wxRibbonButtonBar(); - - wxRibbonButtonBar(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0); - - virtual ~wxRibbonButtonBar(); - - bool Create(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0); - - virtual wxRibbonButtonBarButtonBase* AddButton( - int button_id, - const wxString& label, - const wxBitmap& bitmap, - const wxString& help_string, - wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL); - // NB: help_string cannot be optional as that would cause the signature - // to be identical to the full version of AddButton when 3 arguments are - // given. - - virtual wxRibbonButtonBarButtonBase* AddDropdownButton( - int button_id, - const wxString& label, - const wxBitmap& bitmap, - const wxString& help_string = wxEmptyString); - - virtual wxRibbonButtonBarButtonBase* AddHybridButton( - int button_id, - const wxString& label, - const wxBitmap& bitmap, - const wxString& help_string = wxEmptyString); - - virtual wxRibbonButtonBarButtonBase* AddToggleButton( - int button_id, - const wxString& label, - const wxBitmap& bitmap, - const wxString& help_string = wxEmptyString); - - virtual wxRibbonButtonBarButtonBase* AddButton( - int button_id, - const wxString& label, - const wxBitmap& bitmap, - const wxBitmap& bitmap_small = wxNullBitmap, - const wxBitmap& bitmap_disabled = wxNullBitmap, - const wxBitmap& bitmap_small_disabled = wxNullBitmap, - wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL, - const wxString& help_string = wxEmptyString); - - virtual wxRibbonButtonBarButtonBase* InsertButton( - size_t pos, - int button_id, - const wxString& label, - const wxBitmap& bitmap, - const wxString& help_string, - wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL); - - virtual wxRibbonButtonBarButtonBase* InsertDropdownButton( - size_t pos, - int button_id, - const wxString& label, - const wxBitmap& bitmap, - const wxString& help_string = wxEmptyString); - - virtual wxRibbonButtonBarButtonBase* InsertHybridButton( - size_t pos, - int button_id, - const wxString& label, - const wxBitmap& bitmap, - const wxString& help_string = wxEmptyString); - - virtual wxRibbonButtonBarButtonBase* InsertToggleButton( - size_t pos, - int button_id, - const wxString& label, - const wxBitmap& bitmap, - const wxString& help_string = wxEmptyString); - - virtual wxRibbonButtonBarButtonBase* InsertButton( - size_t pos, - int button_id, - const wxString& label, - const wxBitmap& bitmap, - const wxBitmap& bitmap_small = wxNullBitmap, - const wxBitmap& bitmap_disabled = wxNullBitmap, - const wxBitmap& bitmap_small_disabled = wxNullBitmap, - wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL, - const wxString& help_string = wxEmptyString); - - void SetItemClientObject(wxRibbonButtonBarButtonBase* item, wxClientData* data); - wxClientData* GetItemClientObject(const wxRibbonButtonBarButtonBase* item) const; - void SetItemClientData(wxRibbonButtonBarButtonBase* item, void* data); - void* GetItemClientData(const wxRibbonButtonBarButtonBase* item) const; - - virtual size_t GetButtonCount() const; - virtual wxRibbonButtonBarButtonBase *GetItem(size_t n) const; - virtual wxRibbonButtonBarButtonBase *GetItemById(int id) const; - virtual int GetItemId(wxRibbonButtonBarButtonBase *button) const; - - - virtual bool Realize() wxOVERRIDE; - virtual void ClearButtons(); - virtual bool DeleteButton(int button_id); - virtual void EnableButton(int button_id, bool enable = true); - virtual void ToggleButton(int button_id, bool checked); - - virtual wxRibbonButtonBarButtonBase *GetActiveItem() const; - virtual wxRibbonButtonBarButtonBase *GetHoveredItem() const; - - virtual void SetArtProvider(wxRibbonArtProvider* art) wxOVERRIDE; - virtual bool IsSizingContinuous() const wxOVERRIDE; - - virtual wxSize GetMinSize() const wxOVERRIDE; - - void SetShowToolTipsForDisabled(bool show); - bool GetShowToolTipsForDisabled() const; - -protected: - friend class wxRibbonButtonBarEvent; - virtual wxSize DoGetBestSize() const wxOVERRIDE; - wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - void OnEraseBackground(wxEraseEvent& evt); - void OnPaint(wxPaintEvent& evt); - void OnSize(wxSizeEvent& evt); - void OnMouseMove(wxMouseEvent& evt); - void OnMouseEnter(wxMouseEvent& evt); - void OnMouseLeave(wxMouseEvent& evt); - void OnMouseDown(wxMouseEvent& evt); - void OnMouseUp(wxMouseEvent& evt); - - virtual wxSize DoGetNextSmallerSize(wxOrientation direction, - wxSize relative_to) const wxOVERRIDE; - virtual wxSize DoGetNextLargerSize(wxOrientation direction, - wxSize relative_to) const wxOVERRIDE; - - void CommonInit(long style); - void MakeLayouts(); - bool TryCollapseLayout(wxRibbonButtonBarLayout* original, size_t first_btn, size_t* last_button); - static wxBitmap MakeResizedBitmap(const wxBitmap& original, wxSize size); - static wxBitmap MakeDisabledBitmap(const wxBitmap& original); - void FetchButtonSizeInfo(wxRibbonButtonBarButtonBase* button, - wxRibbonButtonBarButtonState size, wxDC& dc); - virtual void UpdateWindowUI(long flags) wxOVERRIDE; - - wxArrayRibbonButtonBarLayout m_layouts; - wxArrayRibbonButtonBarButtonBase m_buttons; - wxRibbonButtonBarButtonInstance* m_hovered_button; - wxRibbonButtonBarButtonInstance* m_active_button; - - wxPoint m_layout_offset; - wxSize m_bitmap_size_large; - wxSize m_bitmap_size_small; - int m_current_layout; - bool m_layouts_valid; - bool m_lock_active_state; - bool m_show_tooltips_for_disabled; - -#ifndef SWIG - wxDECLARE_CLASS(wxRibbonButtonBar); - wxDECLARE_EVENT_TABLE(); -#endif -}; - -class WXDLLIMPEXP_RIBBON wxRibbonButtonBarEvent : public wxCommandEvent -{ -public: - wxRibbonButtonBarEvent(wxEventType command_type = wxEVT_NULL, - int win_id = 0, - wxRibbonButtonBar* bar = NULL, - wxRibbonButtonBarButtonBase* button = NULL) - : wxCommandEvent(command_type, win_id) - , m_bar(bar), m_button(button) - { - } -#ifndef SWIG - wxRibbonButtonBarEvent(const wxRibbonButtonBarEvent& e) : wxCommandEvent(e) - { - m_bar = e.m_bar; - m_button = e.m_button; - } -#endif - wxEvent *Clone() const wxOVERRIDE { return new wxRibbonButtonBarEvent(*this); } - - wxRibbonButtonBar* GetBar() {return m_bar;} - wxRibbonButtonBarButtonBase *GetButton() { return m_button; } - void SetBar(wxRibbonButtonBar* bar) {m_bar = bar;} - void SetButton(wxRibbonButtonBarButtonBase* button) { m_button = button; } - bool PopupMenu(wxMenu* menu); - -protected: - wxRibbonButtonBar* m_bar; - wxRibbonButtonBarButtonBase *m_button; - -#ifndef SWIG -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxRibbonButtonBarEvent); -#endif -}; - -#ifndef SWIG - -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONBUTTONBAR_CLICKED, wxRibbonButtonBarEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED, wxRibbonButtonBarEvent); - -typedef void (wxEvtHandler::*wxRibbonButtonBarEventFunction)(wxRibbonButtonBarEvent&); - -#define wxRibbonButtonBarEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxRibbonButtonBarEventFunction, func) - -#define EVT_RIBBONBUTTONBAR_CLICKED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONBUTTONBAR_CLICKED, winid, wxRibbonButtonBarEventHandler(fn)) -#define EVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED, winid, wxRibbonButtonBarEventHandler(fn)) -#else - -// wxpython/swig event work -%constant wxEventType wxEVT_RIBBONBUTTONBAR_CLICKED; -%constant wxEventType wxEVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED; - -%pythoncode { - EVT_RIBBONBUTTONBAR_CLICKED = wx.PyEventBinder( wxEVT_RIBBONBUTTONBAR_CLICKED, 1 ) - EVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED = wx.PyEventBinder( wxEVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED, 1 ) -} -#endif - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_RIBBONBUTTON_CLICKED wxEVT_RIBBONBUTTONBAR_CLICKED -#define wxEVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED wxEVT_RIBBONBUTTONBAR_DROPDOWN_CLICKED - -#endif // wxUSE_RIBBON - -#endif // _WX_RIBBON_BUTTON_BAR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/control.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/control.h deleted file mode 100644 index 120ae7de..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/control.h +++ /dev/null @@ -1,83 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/ribbon/control.h -// Purpose: Extension of wxControl with common ribbon methods -// Author: Peter Cawley -// Modified by: -// Created: 2009-06-05 -// Copyright: (C) Peter Cawley -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RIBBON_CONTROL_H_ -#define _WX_RIBBON_CONTROL_H_ - -#include "wx/defs.h" - -#if wxUSE_RIBBON - -#include "wx/control.h" -#include "wx/dynarray.h" - -class wxRibbonBar; -class wxRibbonArtProvider; - -class WXDLLIMPEXP_RIBBON wxRibbonControl : public wxControl -{ -public: - wxRibbonControl() { Init(); } - - wxRibbonControl(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxControlNameStr) - { - Init(); - - Create(parent, id, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxControlNameStr); - - virtual void SetArtProvider(wxRibbonArtProvider* art); - wxRibbonArtProvider* GetArtProvider() const {return m_art;} - - virtual bool IsSizingContinuous() const {return true;} - wxSize GetNextSmallerSize(wxOrientation direction, wxSize relative_to) const; - wxSize GetNextLargerSize(wxOrientation direction, wxSize relative_to) const; - wxSize GetNextSmallerSize(wxOrientation direction) const; - wxSize GetNextLargerSize(wxOrientation direction) const; - - virtual bool Realize(); - bool Realise() {return Realize();} - - virtual wxRibbonBar* GetAncestorRibbonBar()const; - - // Finds the best width and height given the parent's width and height - virtual wxSize GetBestSizeForParentSize(const wxSize& WXUNUSED(parentSize)) const { return GetBestSize(); } - -protected: - wxRibbonArtProvider* m_art; - - virtual wxSize DoGetNextSmallerSize(wxOrientation direction, - wxSize relative_to) const; - virtual wxSize DoGetNextLargerSize(wxOrientation direction, - wxSize relative_to) const; - -private: - void Init() { m_art = NULL; } - -#ifndef SWIG - wxDECLARE_CLASS(wxRibbonControl); -#endif -}; - -WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxRibbonControl*, wxArrayRibbonControl, class WXDLLIMPEXP_RIBBON); - -#endif // wxUSE_RIBBON - -#endif // _WX_RIBBON_CONTROL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/gallery.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/gallery.h deleted file mode 100644 index 4c1b2fd7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/gallery.h +++ /dev/null @@ -1,196 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/ribbon/gallery.h -// Purpose: Ribbon control which displays a gallery of items to choose from -// Author: Peter Cawley -// Modified by: -// Created: 2009-07-22 -// Copyright: (C) Peter Cawley -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// -#ifndef _WX_RIBBON_GALLERY_H_ -#define _WX_RIBBON_GALLERY_H_ - -#include "wx/defs.h" - -#if wxUSE_RIBBON - -#include "wx/ribbon/art.h" -#include "wx/ribbon/control.h" - -class wxRibbonGalleryItem; - -WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxRibbonGalleryItem*, wxArrayRibbonGalleryItem, class WXDLLIMPEXP_RIBBON); - -class WXDLLIMPEXP_RIBBON wxRibbonGallery : public wxRibbonControl -{ -public: - wxRibbonGallery(); - - wxRibbonGallery(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0); - - virtual ~wxRibbonGallery(); - - bool Create(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0); - - void Clear(); - - bool IsEmpty() const; - unsigned int GetCount() const; - wxRibbonGalleryItem* GetItem(unsigned int n); - wxRibbonGalleryItem* Append(const wxBitmap& bitmap, int id); - wxRibbonGalleryItem* Append(const wxBitmap& bitmap, int id, void* clientData); - wxRibbonGalleryItem* Append(const wxBitmap& bitmap, int id, wxClientData* clientData); - - void SetItemClientObject(wxRibbonGalleryItem* item, wxClientData* data); - wxClientData* GetItemClientObject(const wxRibbonGalleryItem* item) const; - void SetItemClientData(wxRibbonGalleryItem* item, void* data); - void* GetItemClientData(const wxRibbonGalleryItem* item) const; - - void SetSelection(wxRibbonGalleryItem* item); - wxRibbonGalleryItem* GetSelection() const; - wxRibbonGalleryItem* GetHoveredItem() const; - wxRibbonGalleryItem* GetActiveItem() const; - wxRibbonGalleryButtonState GetUpButtonState() const; - wxRibbonGalleryButtonState GetDownButtonState() const; - wxRibbonGalleryButtonState GetExtensionButtonState() const; - - bool IsHovered() const; - virtual bool IsSizingContinuous() const wxOVERRIDE; - virtual bool Realize() wxOVERRIDE; - virtual bool Layout() wxOVERRIDE; - - virtual bool ScrollLines(int lines) wxOVERRIDE; - bool ScrollPixels(int pixels); - void EnsureVisible(const wxRibbonGalleryItem* item); - -protected: - wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - void CommonInit(long style); - void CalculateMinSize(); - bool TestButtonHover(const wxRect& rect, wxPoint pos, - wxRibbonGalleryButtonState* state); - - void OnEraseBackground(wxEraseEvent& evt); - void OnMouseEnter(wxMouseEvent& evt); - void OnMouseMove(wxMouseEvent& evt); - void OnMouseLeave(wxMouseEvent& evt); - void OnMouseDown(wxMouseEvent& evt); - void OnMouseUp(wxMouseEvent& evt); - void OnMouseDClick(wxMouseEvent& evt); - void OnPaint(wxPaintEvent& evt); - void OnSize(wxSizeEvent& evt); - int GetScrollLineSize() const; - - virtual wxSize DoGetBestSize() const wxOVERRIDE; - virtual wxSize DoGetNextSmallerSize(wxOrientation direction, - wxSize relative_to) const wxOVERRIDE; - virtual wxSize DoGetNextLargerSize(wxOrientation direction, - wxSize relative_to) const wxOVERRIDE; - - wxArrayRibbonGalleryItem m_items; - wxRibbonGalleryItem* m_selected_item; - wxRibbonGalleryItem* m_hovered_item; - wxRibbonGalleryItem* m_active_item; - wxSize m_bitmap_size; - wxSize m_bitmap_padded_size; - wxSize m_best_size; - wxRect m_client_rect; - wxRect m_scroll_up_button_rect; - wxRect m_scroll_down_button_rect; - wxRect m_extension_button_rect; - const wxRect* m_mouse_active_rect; - int m_item_separation_x; - int m_item_separation_y; - int m_scroll_amount; - int m_scroll_limit; - wxRibbonGalleryButtonState m_up_button_state; - wxRibbonGalleryButtonState m_down_button_state; - wxRibbonGalleryButtonState m_extension_button_state; - bool m_hovered; - -#ifndef SWIG - wxDECLARE_CLASS(wxRibbonGallery); - wxDECLARE_EVENT_TABLE(); -#endif -}; - -class WXDLLIMPEXP_RIBBON wxRibbonGalleryEvent : public wxCommandEvent -{ -public: - wxRibbonGalleryEvent(wxEventType command_type = wxEVT_NULL, - int win_id = 0, - wxRibbonGallery* gallery = NULL, - wxRibbonGalleryItem* item = NULL) - : wxCommandEvent(command_type, win_id) - , m_gallery(gallery), m_item(item) - { - } -#ifndef SWIG - wxRibbonGalleryEvent(const wxRibbonGalleryEvent& e) : wxCommandEvent(e) - { - m_gallery = e.m_gallery; - m_item = e.m_item; - } -#endif - wxEvent *Clone() const wxOVERRIDE { return new wxRibbonGalleryEvent(*this); } - - wxRibbonGallery* GetGallery() {return m_gallery;} - wxRibbonGalleryItem* GetGalleryItem() {return m_item;} - void SetGallery(wxRibbonGallery* gallery) {m_gallery = gallery;} - void SetGalleryItem(wxRibbonGalleryItem* item) {m_item = item;} - -protected: - wxRibbonGallery* m_gallery; - wxRibbonGalleryItem* m_item; - -#ifndef SWIG -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxRibbonGalleryEvent); -#endif -}; - -#ifndef SWIG - -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONGALLERY_HOVER_CHANGED, wxRibbonGalleryEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONGALLERY_SELECTED, wxRibbonGalleryEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONGALLERY_CLICKED, wxRibbonGalleryEvent); - -typedef void (wxEvtHandler::*wxRibbonGalleryEventFunction)(wxRibbonGalleryEvent&); - -#define wxRibbonGalleryEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxRibbonGalleryEventFunction, func) - -#define EVT_RIBBONGALLERY_HOVER_CHANGED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONGALLERY_HOVER_CHANGED, winid, wxRibbonGalleryEventHandler(fn)) -#define EVT_RIBBONGALLERY_SELECTED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONGALLERY_SELECTED, winid, wxRibbonGalleryEventHandler(fn)) -#define EVT_RIBBONGALLERY_CLICKED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONGALLERY_CLICKED, winid, wxRibbonGalleryEventHandler(fn)) -#else - -// wxpython/swig event work -%constant wxEventType wxEVT_RIBBONGALLERY_HOVER_CHANGED; -%constant wxEventType wxEVT_RIBBONGALLERY_SELECTED; - -%pythoncode { - EVT_RIBBONGALLERY_HOVER_CHANGED = wx.PyEventBinder( wxEVT_RIBBONGALLERY_HOVER_CHANGED, 1 ) - EVT_RIBBONGALLERY_SELECTED = wx.PyEventBinder( wxEVT_RIBBONGALLERY_SELECTED, 1 ) -} -#endif // SWIG - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_RIBBONGALLERY_HOVER_CHANGED wxEVT_RIBBONGALLERY_HOVER_CHANGED -#define wxEVT_COMMAND_RIBBONGALLERY_SELECTED wxEVT_RIBBONGALLERY_SELECTED -#define wxEVT_COMMAND_RIBBONGALLERY_CLICKED wxEVT_RIBBONGALLERY_CLICKED - -#endif // wxUSE_RIBBON - -#endif // _WX_RIBBON_GALLERY_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/page.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/page.h deleted file mode 100644 index 3a047b7b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/page.h +++ /dev/null @@ -1,105 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/ribbon/page.h -// Purpose: Container for ribbon-bar-style interface panels -// Author: Peter Cawley -// Modified by: -// Created: 2009-05-25 -// Copyright: (C) Peter Cawley -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RIBBON_PAGE_H_ -#define _WX_RIBBON_PAGE_H_ - -#include "wx/defs.h" - -#if wxUSE_RIBBON - -#include "wx/ribbon/control.h" -#include "wx/ribbon/panel.h" -#include "wx/bitmap.h" - -class wxRibbonBar; -class wxRibbonPageScrollButton; - -class WXDLLIMPEXP_RIBBON wxRibbonPage : public wxRibbonControl -{ -public: - wxRibbonPage(); - - wxRibbonPage(wxRibbonBar* parent, - wxWindowID id = wxID_ANY, - const wxString& label = wxEmptyString, - const wxBitmap& icon = wxNullBitmap, - long style = 0); - - virtual ~wxRibbonPage(); - - bool Create(wxRibbonBar* parent, - wxWindowID id = wxID_ANY, - const wxString& label = wxEmptyString, - const wxBitmap& icon = wxNullBitmap, - long style = 0); - - void SetArtProvider(wxRibbonArtProvider* art) wxOVERRIDE; - - wxBitmap& GetIcon() {return m_icon;} - virtual wxSize GetMinSize() const wxOVERRIDE; - void SetSizeWithScrollButtonAdjustment(int x, int y, int width, int height); - void AdjustRectToIncludeScrollButtons(wxRect* rect) const; - - bool DismissExpandedPanel(); - - virtual bool Realize() wxOVERRIDE; - virtual bool Show(bool show = true) wxOVERRIDE; - virtual bool Layout() wxOVERRIDE; - virtual bool ScrollLines(int lines) wxOVERRIDE; - bool ScrollPixels(int pixels); - bool ScrollSections(int sections); - - wxOrientation GetMajorAxis() const; - - virtual void RemoveChild(wxWindowBase *child) wxOVERRIDE; - - void HideIfExpanded(); - -protected: - virtual wxSize DoGetBestSize() const wxOVERRIDE; - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - void DoSetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO) wxOVERRIDE; - bool DoActualLayout(); - void OnEraseBackground(wxEraseEvent& evt); - void OnPaint(wxPaintEvent& evt); - void OnSize(wxSizeEvent& evt); - - bool ExpandPanels(wxOrientation direction, int maximum_amount); - bool CollapsePanels(wxOrientation direction, int minimum_amount); - void ShowScrollButtons(); - void HideScrollButtons(); - - void CommonInit(const wxString& label, const wxBitmap& icon); - void PopulateSizeCalcArray(wxSize (wxWindow::*get_size)(void) const); - - wxArrayRibbonControl m_collapse_stack; - wxBitmap m_icon; - wxSize m_old_size; - // NB: Scroll button windows are siblings rather than children (to get correct clipping of children) - wxRibbonPageScrollButton* m_scroll_left_btn; - wxRibbonPageScrollButton* m_scroll_right_btn; - wxSize* m_size_calc_array; - size_t m_size_calc_array_size; - int m_scroll_amount; - int m_scroll_amount_limit; - int m_size_in_major_axis_for_children; - bool m_scroll_buttons_visible; - -#ifndef SWIG - wxDECLARE_CLASS(wxRibbonPage); - wxDECLARE_EVENT_TABLE(); -#endif -}; - -#endif // wxUSE_RIBBON - -#endif // _WX_RIBBON_PAGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/panel.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/panel.h deleted file mode 100644 index 6f8a489b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/panel.h +++ /dev/null @@ -1,199 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/ribbon/panel.h -// Purpose: Ribbon-style container for a group of related tools / controls -// Author: Peter Cawley -// Modified by: -// Created: 2009-05-25 -// Copyright: (C) Peter Cawley -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// -#ifndef _WX_RIBBON_PANEL_H_ -#define _WX_RIBBON_PANEL_H_ - -#include "wx/defs.h" - -#if wxUSE_RIBBON - -#include "wx/bitmap.h" -#include "wx/ribbon/control.h" - -enum wxRibbonPanelOption -{ - wxRIBBON_PANEL_NO_AUTO_MINIMISE = 1 << 0, - wxRIBBON_PANEL_EXT_BUTTON = 1 << 3, - wxRIBBON_PANEL_MINIMISE_BUTTON = 1 << 4, - wxRIBBON_PANEL_STRETCH = 1 << 5, - wxRIBBON_PANEL_FLEXIBLE = 1 << 6, - - wxRIBBON_PANEL_DEFAULT_STYLE = 0 -}; - -class WXDLLIMPEXP_RIBBON wxRibbonPanel : public wxRibbonControl -{ -public: - wxRibbonPanel(); - - wxRibbonPanel(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxString& label = wxEmptyString, - const wxBitmap& minimised_icon = wxNullBitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxRIBBON_PANEL_DEFAULT_STYLE); - - virtual ~wxRibbonPanel(); - - bool Create(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxString& label = wxEmptyString, - const wxBitmap& icon = wxNullBitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxRIBBON_PANEL_DEFAULT_STYLE); - - wxBitmap& GetMinimisedIcon() {return m_minimised_icon;} - const wxBitmap& GetMinimisedIcon() const {return m_minimised_icon;} - bool IsMinimised() const; - bool IsMinimised(wxSize at_size) const; - bool IsHovered() const; - bool IsExtButtonHovered() const; - bool CanAutoMinimise() const; - - bool ShowExpanded(); - bool HideExpanded(); - - void SetArtProvider(wxRibbonArtProvider* art) wxOVERRIDE; - - virtual bool Realize() wxOVERRIDE; - virtual bool Layout() wxOVERRIDE; - virtual wxSize GetMinSize() const wxOVERRIDE; - - virtual bool IsSizingContinuous() const wxOVERRIDE; - - virtual void AddChild(wxWindowBase *child) wxOVERRIDE; - virtual void RemoveChild(wxWindowBase *child) wxOVERRIDE; - - virtual bool HasExtButton() const; - - wxRibbonPanel* GetExpandedDummy(); - wxRibbonPanel* GetExpandedPanel(); - - // Finds the best width and height given the parent's width and height - virtual wxSize GetBestSizeForParentSize(const wxSize& parentSize) const wxOVERRIDE; - - long GetFlags() { return m_flags; } - - void HideIfExpanded(); - -protected: - virtual wxSize DoGetBestSize() const wxOVERRIDE; - virtual wxSize GetPanelSizerBestSize() const; - wxSize GetPanelSizerMinSize() const; - wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - wxSize GetMinNotMinimisedSize() const; - - virtual wxSize DoGetNextSmallerSize(wxOrientation direction, - wxSize relative_to) const wxOVERRIDE; - virtual wxSize DoGetNextLargerSize(wxOrientation direction, - wxSize relative_to) const wxOVERRIDE; - - void DoSetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO) wxOVERRIDE; - void OnSize(wxSizeEvent& evt); - void OnEraseBackground(wxEraseEvent& evt); - void OnPaint(wxPaintEvent& evt); - void OnMouseEnter(wxMouseEvent& evt); - void OnMouseEnterChild(wxMouseEvent& evt); - void OnMouseLeave(wxMouseEvent& evt); - void OnMouseLeaveChild(wxMouseEvent& evt); - void OnMouseClick(wxMouseEvent& evt); - void OnMotion(wxMouseEvent& evt); - void OnKillFocus(wxFocusEvent& evt); - void OnChildKillFocus(wxFocusEvent& evt); - - void TestPositionForHover(const wxPoint& pos); - bool ShouldSendEventToDummy(wxEvent& evt); - virtual bool TryAfter(wxEvent& evt) wxOVERRIDE; - - void CommonInit(const wxString& label, const wxBitmap& icon, long style); - static wxRect GetExpandedPosition(wxRect panel, - wxSize expanded_size, - wxDirection direction); - - wxBitmap m_minimised_icon; - wxBitmap m_minimised_icon_resized; - wxSize m_smallest_unminimised_size; - wxSize m_minimised_size; - wxDirection m_preferred_expand_direction; - wxRibbonPanel* m_expanded_dummy; - wxRibbonPanel* m_expanded_panel; - wxWindow* m_child_with_focus; - long m_flags; - bool m_minimised; - bool m_hovered; - bool m_ext_button_hovered; - wxRect m_ext_button_rect; - -#ifndef SWIG - wxDECLARE_CLASS(wxRibbonPanel); - wxDECLARE_EVENT_TABLE(); -#endif -}; - - -class WXDLLIMPEXP_RIBBON wxRibbonPanelEvent : public wxCommandEvent -{ -public: - wxRibbonPanelEvent(wxEventType command_type = wxEVT_NULL, - int win_id = 0, - wxRibbonPanel* panel = NULL) - : wxCommandEvent(command_type, win_id) - , m_panel(panel) - { - } -#ifndef SWIG - wxRibbonPanelEvent(const wxRibbonPanelEvent& e) : wxCommandEvent(e) - { - m_panel = e.m_panel; - } -#endif - wxEvent *Clone() const wxOVERRIDE { return new wxRibbonPanelEvent(*this); } - - wxRibbonPanel* GetPanel() {return m_panel;} - void SetPanel(wxRibbonPanel* panel) {m_panel = panel;} - -protected: - wxRibbonPanel* m_panel; - -#ifndef SWIG -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxRibbonPanelEvent); -#endif -}; - -#ifndef SWIG - -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONPANEL_EXTBUTTON_ACTIVATED, wxRibbonPanelEvent); - -typedef void (wxEvtHandler::*wxRibbonPanelEventFunction)(wxRibbonPanelEvent&); - -#define wxRibbonPanelEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxRibbonPanelEventFunction, func) - -#define EVT_RIBBONPANEL_EXTBUTTON_ACTIVATED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONPANEL_EXTBUTTON_ACTIVATED, winid, wxRibbonPanelEventHandler(fn)) -#else - -// wxpython/swig event work -%constant wxEventType wxEVT_RIBBONPANEL_EXTBUTTON_ACTIVATED; - -%pythoncode { - EVT_RIBBONPANEL_EXTBUTTON_ACTIVATED = wx.PyEventBinder( wxEVT_RIBBONPANEL_EXTBUTTON_ACTIVATED, 1 ) -} -#endif - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_RIBBONPANEL_EXTBUTTON_ACTIVATED wxEVT_RIBBONPANEL_EXTBUTTON_ACTIVATED - -#endif // wxUSE_RIBBON - -#endif // _WX_RIBBON_PANEL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/toolbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/toolbar.h deleted file mode 100644 index 996927bf..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ribbon/toolbar.h +++ /dev/null @@ -1,263 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/ribbon/toolbar.h -// Purpose: Ribbon-style tool bar -// Author: Peter Cawley -// Modified by: -// Created: 2009-07-06 -// Copyright: (C) Peter Cawley -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// -#ifndef _WX_RIBBON_TOOLBAR_H_ -#define _WX_RIBBON_TOOLBAR_H_ - -#include "wx/defs.h" - -#if wxUSE_RIBBON - -#include "wx/ribbon/control.h" -#include "wx/ribbon/art.h" - -class wxRibbonToolBarToolBase; -class wxRibbonToolBarToolGroup; -WX_DEFINE_USER_EXPORTED_ARRAY_PTR(wxRibbonToolBarToolGroup*, wxArrayRibbonToolBarToolGroup, class WXDLLIMPEXP_RIBBON); - -enum wxRibbonToolBarToolState -{ - wxRIBBON_TOOLBAR_TOOL_FIRST = 1 << 0, - wxRIBBON_TOOLBAR_TOOL_LAST = 1 << 1, - wxRIBBON_TOOLBAR_TOOL_POSITION_MASK = wxRIBBON_TOOLBAR_TOOL_FIRST | wxRIBBON_TOOLBAR_TOOL_LAST, - - wxRIBBON_TOOLBAR_TOOL_NORMAL_HOVERED = 1 << 3, - wxRIBBON_TOOLBAR_TOOL_DROPDOWN_HOVERED = 1 << 4, - wxRIBBON_TOOLBAR_TOOL_HOVER_MASK = wxRIBBON_TOOLBAR_TOOL_NORMAL_HOVERED | wxRIBBON_TOOLBAR_TOOL_DROPDOWN_HOVERED, - wxRIBBON_TOOLBAR_TOOL_NORMAL_ACTIVE = 1 << 5, - wxRIBBON_TOOLBAR_TOOL_DROPDOWN_ACTIVE = 1 << 6, - wxRIBBON_TOOLBAR_TOOL_ACTIVE_MASK = wxRIBBON_TOOLBAR_TOOL_NORMAL_ACTIVE | wxRIBBON_TOOLBAR_TOOL_DROPDOWN_ACTIVE, - wxRIBBON_TOOLBAR_TOOL_DISABLED = 1 << 7, - wxRIBBON_TOOLBAR_TOOL_TOGGLED = 1 << 8, - wxRIBBON_TOOLBAR_TOOL_STATE_MASK = 0x1F8 -}; - - -class WXDLLIMPEXP_RIBBON wxRibbonToolBar : public wxRibbonControl -{ -public: - wxRibbonToolBar(); - - wxRibbonToolBar(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0); - - virtual ~wxRibbonToolBar(); - - bool Create(wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0); - - virtual wxRibbonToolBarToolBase* AddTool( - int tool_id, - const wxBitmap& bitmap, - const wxString& help_string, - wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL); - - virtual wxRibbonToolBarToolBase* AddDropdownTool( - int tool_id, - const wxBitmap& bitmap, - const wxString& help_string = wxEmptyString); - - virtual wxRibbonToolBarToolBase* AddHybridTool( - int tool_id, - const wxBitmap& bitmap, - const wxString& help_string = wxEmptyString); - - virtual wxRibbonToolBarToolBase* AddToggleTool( - int tool_id, - const wxBitmap& bitmap, - const wxString& help_string = wxEmptyString); - - virtual wxRibbonToolBarToolBase* AddTool( - int tool_id, - const wxBitmap& bitmap, - const wxBitmap& bitmap_disabled = wxNullBitmap, - const wxString& help_string = wxEmptyString, - wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL, - wxObject* client_data = NULL); - - virtual wxRibbonToolBarToolBase* AddSeparator(); - - virtual wxRibbonToolBarToolBase* InsertTool( - size_t pos, - int tool_id, - const wxBitmap& bitmap, - const wxString& help_string, - wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL); - - virtual wxRibbonToolBarToolBase* InsertDropdownTool( - size_t pos, - int tool_id, - const wxBitmap& bitmap, - const wxString& help_string = wxEmptyString); - - virtual wxRibbonToolBarToolBase* InsertHybridTool( - size_t pos, - int tool_id, - const wxBitmap& bitmap, - const wxString& help_string = wxEmptyString); - - virtual wxRibbonToolBarToolBase* InsertToggleTool( - size_t pos, - int tool_id, - const wxBitmap& bitmap, - const wxString& help_string = wxEmptyString); - - virtual wxRibbonToolBarToolBase* InsertTool( - size_t pos, - int tool_id, - const wxBitmap& bitmap, - const wxBitmap& bitmap_disabled = wxNullBitmap, - const wxString& help_string = wxEmptyString, - wxRibbonButtonKind kind = wxRIBBON_BUTTON_NORMAL, - wxObject* client_data = NULL); - - virtual wxRibbonToolBarToolBase* InsertSeparator(size_t pos); - - virtual void ClearTools(); - virtual bool DeleteTool(int tool_id); - virtual bool DeleteToolByPos(size_t pos); - - virtual wxRibbonToolBarToolBase* FindById(int tool_id)const; - virtual wxRibbonToolBarToolBase* GetToolByPos(size_t pos)const; - virtual size_t GetToolCount() const; - virtual int GetToolId(const wxRibbonToolBarToolBase* tool)const; - - virtual wxObject* GetToolClientData(int tool_id)const; - virtual bool GetToolEnabled(int tool_id)const; - virtual wxString GetToolHelpString(int tool_id)const; - virtual wxRibbonButtonKind GetToolKind(int tool_id)const; - virtual int GetToolPos(int tool_id)const; - virtual bool GetToolState(int tool_id)const; - - virtual bool Realize() wxOVERRIDE; - virtual void SetRows(int nMin, int nMax = -1); - - virtual void SetToolClientData(int tool_id, wxObject* clientData); - virtual void SetToolDisabledBitmap(int tool_id, const wxBitmap &bitmap); - virtual void SetToolHelpString(int tool_id, const wxString& helpString); - virtual void SetToolNormalBitmap(int tool_id, const wxBitmap &bitmap); - - virtual bool IsSizingContinuous() const wxOVERRIDE; - - virtual void EnableTool(int tool_id, bool enable = true); - virtual void ToggleTool(int tool_id, bool checked); - - // Finds the best width and height given the parent's width and height - virtual wxSize GetBestSizeForParentSize(const wxSize& parentSize) const wxOVERRIDE; - -protected: - friend class wxRibbonToolBarEvent; - virtual wxSize DoGetBestSize() const wxOVERRIDE; - wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - void OnEraseBackground(wxEraseEvent& evt); - void OnMouseDown(wxMouseEvent& evt); - void OnMouseEnter(wxMouseEvent& evt); - void OnMouseLeave(wxMouseEvent& evt); - void OnMouseMove(wxMouseEvent& evt); - void OnMouseUp(wxMouseEvent& evt); - void OnPaint(wxPaintEvent& evt); - void OnSize(wxSizeEvent& evt); - - virtual wxSize DoGetNextSmallerSize(wxOrientation direction, - wxSize relative_to) const wxOVERRIDE; - virtual wxSize DoGetNextLargerSize(wxOrientation direction, - wxSize relative_to) const wxOVERRIDE; - - void CommonInit(long style); - void AppendGroup(); - wxRibbonToolBarToolGroup* InsertGroup(size_t pos); - virtual void UpdateWindowUI(long flags) wxOVERRIDE; - - static wxBitmap MakeDisabledBitmap(const wxBitmap& original); - - wxArrayRibbonToolBarToolGroup m_groups; - wxRibbonToolBarToolBase* m_hover_tool; - wxRibbonToolBarToolBase* m_active_tool; - wxSize* m_sizes; - int m_nrows_min; - int m_nrows_max; - -#ifndef SWIG - wxDECLARE_CLASS(wxRibbonToolBar); - wxDECLARE_EVENT_TABLE(); -#endif -}; - - -class WXDLLIMPEXP_RIBBON wxRibbonToolBarEvent : public wxCommandEvent -{ -public: - wxRibbonToolBarEvent(wxEventType command_type = wxEVT_NULL, - int win_id = 0, - wxRibbonToolBar* bar = NULL) - : wxCommandEvent(command_type, win_id) - , m_bar(bar) - { - } -#ifndef SWIG - wxRibbonToolBarEvent(const wxRibbonToolBarEvent& e) : wxCommandEvent(e) - { - m_bar = e.m_bar; - } -#endif - wxEvent *Clone() const wxOVERRIDE { return new wxRibbonToolBarEvent(*this); } - - wxRibbonToolBar* GetBar() {return m_bar;} - void SetBar(wxRibbonToolBar* bar) {m_bar = bar;} - bool PopupMenu(wxMenu* menu); - -protected: - wxRibbonToolBar* m_bar; - -#ifndef SWIG -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxRibbonToolBarEvent); -#endif -}; - -#ifndef SWIG - -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONTOOLBAR_CLICKED, wxRibbonToolBarEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_RIBBON, wxEVT_RIBBONTOOLBAR_DROPDOWN_CLICKED, wxRibbonToolBarEvent); - -typedef void (wxEvtHandler::*wxRibbonToolBarEventFunction)(wxRibbonToolBarEvent&); - -#define wxRibbonToolBarEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxRibbonToolBarEventFunction, func) - -#define EVT_RIBBONTOOLBAR_CLICKED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONTOOLBAR_CLICKED, winid, wxRibbonToolBarEventHandler(fn)) -#define EVT_RIBBONTOOLBAR_DROPDOWN_CLICKED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_RIBBONTOOLBAR_DROPDOWN_CLICKED, winid, wxRibbonToolBarEventHandler(fn)) -#else - -// wxpython/swig event work -%constant wxEventType wxEVT_RIBBONTOOLBAR_CLICKED; -%constant wxEventType wxEVT_RIBBONTOOLBAR_DROPDOWN_CLICKED; - -%pythoncode { - EVT_RIBBONTOOLBAR_CLICKED = wx.PyEventBinder( wxEVT_RIBBONTOOLBAR_CLICKED, 1 ) - EVT_RIBBONTOOLBAR_DROPDOWN_CLICKED = wx.PyEventBinder( wxEVT_RIBBONTOOLBAR_DROPDOWN_CLICKED, 1 ) -} -#endif - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_RIBBONTOOL_CLICKED wxEVT_RIBBONTOOLBAR_CLICKED -#define wxEVT_COMMAND_RIBBONTOOL_DROPDOWN_CLICKED wxEVT_RIBBONTOOLBAR_DROPDOWN_CLICKED - -#endif // wxUSE_RIBBON - -#endif // _WX_RIBBON_TOOLBAR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richmsgdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richmsgdlg.h deleted file mode 100644 index ab49af7d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richmsgdlg.h +++ /dev/null @@ -1,88 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richmsgdlg.h -// Purpose: wxRichMessageDialogBase -// Author: Rickard Westerlund -// Created: 2010-07-03 -// Copyright: (c) 2010 wxWidgets team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RICHMSGDLG_H_BASE_ -#define _WX_RICHMSGDLG_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_RICHMSGDLG - -#include "wx/msgdlg.h" - -// Extends a message dialog with an optional checkbox and user-expandable -// detailed text. -class WXDLLIMPEXP_CORE wxRichMessageDialogBase : public wxGenericMessageDialog -{ -public: - wxRichMessageDialogBase( wxWindow *parent, - const wxString& message, - const wxString& caption, - long style ) - : wxGenericMessageDialog( parent, message, caption, style ), - m_detailsExpanderCollapsedLabel( wxGetTranslation("&See details") ), - m_detailsExpanderExpandedLabel( wxGetTranslation("&Hide details") ), - m_checkBoxValue( false ) - { } - - void ShowCheckBox(const wxString& checkBoxText, bool checked = false) - { - m_checkBoxText = checkBoxText; - m_checkBoxValue = checked; - } - - wxString GetCheckBoxText() const { return m_checkBoxText; } - - void ShowDetailedText(const wxString& detailedText) - { m_detailedText = detailedText; } - - wxString GetDetailedText() const { return m_detailedText; } - - virtual bool IsCheckBoxChecked() const { return m_checkBoxValue; } - -protected: - const wxString m_detailsExpanderCollapsedLabel; - const wxString m_detailsExpanderExpandedLabel; - - wxString m_checkBoxText; - bool m_checkBoxValue; - wxString m_detailedText; - -private: - void ShowDetails(bool shown); - - wxDECLARE_NO_COPY_CLASS(wxRichMessageDialogBase); -}; - -// Always include the generic version as it's currently used as the base class -// by the MSW native implementation too. -#include "wx/generic/richmsgdlgg.h" - -#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) - #include "wx/msw/richmsgdlg.h" -#else - class WXDLLIMPEXP_CORE wxRichMessageDialog - : public wxGenericRichMessageDialog - { - public: - wxRichMessageDialog( wxWindow *parent, - const wxString& message, - const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK | wxCENTRE ) - : wxGenericRichMessageDialog( parent, message, caption, style ) - { } - - private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxRichMessageDialog); - }; -#endif - -#endif // wxUSE_RICHMSGDLG - -#endif // _WX_RICHMSGDLG_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/bitmaps/image_placeholder24x24.xpm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/bitmaps/image_placeholder24x24.xpm deleted file mode 100644 index a281f210..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/bitmaps/image_placeholder24x24.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -static const char *image_placeholder24x24_xpm[] = { -/* columns rows colors chars-per-pixel */ -"24 24 2 1", -" c #7E97A9", -". c #EBEBFF", -/* pixels */ -" ...... ......", -" ...... ......", -" ...... ......", -" ...... ......", -" ...... ......", -" ...... ......", -"...... ...... ", -"...... ...... ", -"...... ...... ", -"...... ...... ", -"...... ...... ", -"...... ...... ", -" ...... ......", -" ...... ......", -" ...... ......", -" ...... ......", -" ...... ......", -" ...... ......", -"...... ...... ", -"...... ...... ", -"...... ...... ", -"...... ...... ", -"...... ...... ", -"...... ...... " -}; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextbackgroundpage.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextbackgroundpage.h deleted file mode 100644 index 98969bd4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextbackgroundpage.h +++ /dev/null @@ -1,156 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextbackgroundpage.h -// Purpose: Declares the rich text formatting dialog background -// properties page. -// Author: Julian Smart -// Modified by: -// Created: 13/11/2010 11:17:25 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _RICHTEXTBACKGROUNDPAGE_H_ -#define _RICHTEXTBACKGROUNDPAGE_H_ - -/*! - * Includes - */ - -#include "wx/richtext/richtextdialogpage.h" - -////@begin includes -#include "wx/statline.h" -////@end includes - -/*! - * Forward declarations - */ - -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextColourSwatchCtrl; - -/*! - * Control identifiers - */ - -////@begin control identifiers -#define SYMBOL_WXRICHTEXTBACKGROUNDPAGE_STYLE wxTAB_TRAVERSAL -#define SYMBOL_WXRICHTEXTBACKGROUNDPAGE_TITLE wxEmptyString -#define SYMBOL_WXRICHTEXTBACKGROUNDPAGE_IDNAME ID_RICHTEXTBACKGROUNDPAGE -#define SYMBOL_WXRICHTEXTBACKGROUNDPAGE_SIZE wxSize(400, 300) -#define SYMBOL_WXRICHTEXTBACKGROUNDPAGE_POSITION wxDefaultPosition -////@end control identifiers - - -/*! - * wxRichTextBackgroundPage class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextBackgroundPage: public wxRichTextDialogPage -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextBackgroundPage); - wxDECLARE_EVENT_TABLE(); - DECLARE_HELP_PROVISION() - -public: - /// Constructors - wxRichTextBackgroundPage(); - wxRichTextBackgroundPage( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_SIZE, long style = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_STYLE ); - - /// Creation - bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_SIZE, long style = SYMBOL_WXRICHTEXTBACKGROUNDPAGE_STYLE ); - - /// Destructor - ~wxRichTextBackgroundPage(); - - /// Initialises member variables - void Init(); - - /// Creates the controls and sizers - void CreateControls(); - - /// Gets the attributes from the formatting dialog - wxRichTextAttr* GetAttributes(); - - /// Data transfer - virtual bool TransferDataToWindow() wxOVERRIDE; - virtual bool TransferDataFromWindow() wxOVERRIDE; - - /// Respond to colour swatch click - void OnColourSwatch(wxCommandEvent& event); - -////@begin wxRichTextBackgroundPage event handler declarations - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_SHADOW_HORIZONTAL_OFFSET - void OnRichtextShadowUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSHADOWCOLOURSWATCHCTRL - void OnRichtextshadowcolourswatchctrlUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_SHADOW_SPREAD - void OnRichtextShadowSpreadUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_SHADOW_BLUR_DISTANCE - void OnRichtextShadowBlurUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_SHADOW_OPACITY - void OnRichtextShadowOpacityUpdate( wxUpdateUIEvent& event ); - -////@end wxRichTextBackgroundPage event handler declarations - -////@begin wxRichTextBackgroundPage member function declarations - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end wxRichTextBackgroundPage member function declarations - - /// Should we show tooltips? - static bool ShowToolTips(); - -////@begin wxRichTextBackgroundPage member variables - wxCheckBox* m_backgroundColourCheckBox; - wxRichTextColourSwatchCtrl* m_backgroundColourSwatch; - wxBoxSizer* m_shadowBox; - wxCheckBox* m_useShadow; - wxTextCtrl* m_offsetX; - wxComboBox* m_unitsHorizontalOffset; - wxTextCtrl* m_offsetY; - wxComboBox* m_unitsVerticalOffset; - wxCheckBox* m_shadowColourCheckBox; - wxRichTextColourSwatchCtrl* m_shadowColourSwatch; - wxCheckBox* m_useShadowSpread; - wxTextCtrl* m_spread; - wxComboBox* m_unitsShadowSpread; - wxCheckBox* m_useBlurDistance; - wxTextCtrl* m_blurDistance; - wxComboBox* m_unitsBlurDistance; - wxCheckBox* m_useShadowOpacity; - wxTextCtrl* m_opacity; - /// Control identifiers - enum { - ID_RICHTEXTBACKGROUNDPAGE = 10845, - ID_RICHTEXT_BACKGROUND_COLOUR_CHECKBOX = 10846, - ID_RICHTEXT_BACKGROUND_COLOUR_SWATCH = 10847, - ID_RICHTEXT_USE_SHADOW = 10840, - ID_RICHTEXT_SHADOW_HORIZONTAL_OFFSET = 10703, - ID_RICHTEXT_SHADOW_HORIZONTAL_OFFSET_UNITS = 10712, - ID_RICHTEXT_SHADOW_VERTICAL_OFFSET = 10841, - ID_RICHTEXT_SHADOW_VERTICAL_OFFSET_UNITS = 10842, - ID_RICHTEXT_USE_SHADOW_COLOUR = 10843, - ID_RICHTEXTSHADOWCOLOURSWATCHCTRL = 10844, - ID_RICHTEXT_USE_SHADOW_SPREAD = 10851, - ID_RICHTEXT_SHADOW_SPREAD = 10848, - ID_RICHTEXT_SHADOW_SPREAD_UNITS = 10849, - ID_RICHTEXT_USE_BLUR_DISTANCE = 10855, - ID_RICHTEXT_SHADOW_BLUR_DISTANCE = 10852, - ID_RICHTEXT_SHADOW_BLUR_DISTANCE_UNITS = 10853, - ID_RICHTEXT_USE_SHADOW_OPACITY = 10856, - ID_RICHTEXT_SHADOW_OPACITY = 10854 - }; -////@end wxRichTextBackgroundPage member variables -}; - -#endif - // _RICHTEXTBACKGROUNDPAGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextborderspage.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextborderspage.h deleted file mode 100644 index 7c8bf353..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextborderspage.h +++ /dev/null @@ -1,302 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextborderspage.h -// Purpose: A border editing page for the wxRTC formatting dialog. -// Author: Julian Smart -// Modified by: -// Created: 21/10/2010 11:34:24 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _RICHTEXTBORDERSPAGE_H_ -#define _RICHTEXTBORDERSPAGE_H_ - -/*! - * Includes - */ - -#include "wx/richtext/richtextdialogpage.h" - -////@begin includes -#include "wx/notebook.h" -#include "wx/statline.h" -////@end includes - -/*! - * Forward declarations - */ - -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextColourSwatchCtrl; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextBorderPreviewCtrl; - -/*! - * Control identifiers - */ - -////@begin control identifiers -#define SYMBOL_WXRICHTEXTBORDERSPAGE_STYLE wxTAB_TRAVERSAL -#define SYMBOL_WXRICHTEXTBORDERSPAGE_TITLE wxEmptyString -#define SYMBOL_WXRICHTEXTBORDERSPAGE_IDNAME ID_RICHTEXTBORDERSPAGE -#define SYMBOL_WXRICHTEXTBORDERSPAGE_SIZE wxSize(400, 300) -#define SYMBOL_WXRICHTEXTBORDERSPAGE_POSITION wxDefaultPosition -////@end control identifiers - - -/*! - * wxRichTextBordersPage class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextBordersPage: public wxRichTextDialogPage -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextBordersPage); - wxDECLARE_EVENT_TABLE(); - DECLARE_HELP_PROVISION() - -public: - /// Constructors - wxRichTextBordersPage(); - wxRichTextBordersPage( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTBORDERSPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTBORDERSPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTBORDERSPAGE_SIZE, long style = SYMBOL_WXRICHTEXTBORDERSPAGE_STYLE ); - - /// Creation - bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTBORDERSPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTBORDERSPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTBORDERSPAGE_SIZE, long style = SYMBOL_WXRICHTEXTBORDERSPAGE_STYLE ); - - /// Destructor - ~wxRichTextBordersPage(); - - /// Initialises member variables - void Init(); - - /// Creates the controls and sizers - void CreateControls(); - - /// Gets the attributes from the formatting dialog - wxRichTextAttr* GetAttributes(); - - /// Data transfer - virtual bool TransferDataToWindow() wxOVERRIDE; - virtual bool TransferDataFromWindow() wxOVERRIDE; - - /// Updates the synchronization checkboxes to reflect the state of the attributes - void UpdateSyncControls(); - - /// Updates the preview - void OnCommand(wxCommandEvent& event); - - /// Fill style combo - virtual void FillStyleComboBox(wxComboBox* styleComboBox); - - /// Set the border controls - static void SetBorderValue(wxTextAttrBorder& border, wxTextCtrl* widthValueCtrl, wxComboBox* widthUnitsCtrl, wxCheckBox* checkBox, - wxComboBox* styleCtrl, wxRichTextColourSwatchCtrl* colourCtrl, const wxArrayInt& borderStyles); - - /// Get data from the border controls - static void GetBorderValue(wxTextAttrBorder& border, wxTextCtrl* widthValueCtrl, wxComboBox* widthUnitsCtrl, wxCheckBox* checkBox, - wxComboBox* styleCtrl, wxRichTextColourSwatchCtrl* colourCtrl, const wxArrayInt& borderStyles); - -////@begin wxRichTextBordersPage event handler declarations - - /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXT_BORDER_LEFT_CHECKBOX - void OnRichtextBorderCheckboxClick( wxCommandEvent& event ); - - /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXT_BORDER_LEFT - void OnRichtextBorderLeftValueTextUpdated( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_LEFT - void OnRichtextBorderLeftUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXT_BORDER_LEFT_UNITS - void OnRichtextBorderLeftUnitsSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXT_BORDER_LEFT_STYLE - void OnRichtextBorderLeftStyleSelected( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_RIGHT_CHECKBOX - void OnRichtextBorderOtherCheckboxUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_RIGHT - void OnRichtextBorderRightUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_TOP - void OnRichtextBorderTopUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_BOTTOM - void OnRichtextBorderBottomUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXT_BORDER_SYNCHRONIZE - void OnRichtextBorderSynchronizeClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BORDER_SYNCHRONIZE - void OnRichtextBorderSynchronizeUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXT_OUTLINE_LEFT - void OnRichtextOutlineLeftTextUpdated( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_LEFT - void OnRichtextOutlineLeftUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXT_OUTLINE_LEFT_UNITS - void OnRichtextOutlineLeftUnitsSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXT_OUTLINE_LEFT_STYLE - void OnRichtextOutlineLeftStyleSelected( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_RIGHT_CHECKBOX - void OnRichtextOutlineOtherCheckboxUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_RIGHT - void OnRichtextOutlineRightUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_TOP - void OnRichtextOutlineTopUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_BOTTOM - void OnRichtextOutlineBottomUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXT_OUTLINE_SYNCHRONIZE - void OnRichtextOutlineSynchronizeClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_OUTLINE_SYNCHRONIZE - void OnRichtextOutlineSynchronizeUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBORDERSPAGE_CORNER_TEXT - void OnRichtextborderspageCornerUpdate( wxUpdateUIEvent& event ); - -////@end wxRichTextBordersPage event handler declarations - -////@begin wxRichTextBordersPage member function declarations - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end wxRichTextBordersPage member function declarations - - /// Should we show tooltips? - static bool ShowToolTips(); - -////@begin wxRichTextBordersPage member variables - wxCheckBox* m_leftBorderCheckbox; - wxTextCtrl* m_leftBorderWidth; - wxComboBox* m_leftBorderWidthUnits; - wxComboBox* m_leftBorderStyle; - wxRichTextColourSwatchCtrl* m_leftBorderColour; - wxCheckBox* m_rightBorderCheckbox; - wxTextCtrl* m_rightBorderWidth; - wxComboBox* m_rightBorderWidthUnits; - wxComboBox* m_rightBorderStyle; - wxRichTextColourSwatchCtrl* m_rightBorderColour; - wxCheckBox* m_topBorderCheckbox; - wxTextCtrl* m_topBorderWidth; - wxComboBox* m_topBorderWidthUnits; - wxComboBox* m_topBorderStyle; - wxRichTextColourSwatchCtrl* m_topBorderColour; - wxCheckBox* m_bottomBorderCheckbox; - wxTextCtrl* m_bottomBorderWidth; - wxComboBox* m_bottomBorderWidthUnits; - wxComboBox* m_bottomBorderStyle; - wxRichTextColourSwatchCtrl* m_bottomBorderColour; - wxCheckBox* m_borderSyncCtrl; - wxCheckBox* m_leftOutlineCheckbox; - wxTextCtrl* m_leftOutlineWidth; - wxComboBox* m_leftOutlineWidthUnits; - wxComboBox* m_leftOutlineStyle; - wxRichTextColourSwatchCtrl* m_leftOutlineColour; - wxCheckBox* m_rightOutlineCheckbox; - wxTextCtrl* m_rightOutlineWidth; - wxComboBox* m_rightOutlineWidthUnits; - wxComboBox* m_rightOutlineStyle; - wxRichTextColourSwatchCtrl* m_rightOutlineColour; - wxCheckBox* m_topOutlineCheckbox; - wxTextCtrl* m_topOutlineWidth; - wxComboBox* m_topOutlineWidthUnits; - wxComboBox* m_topOutlineStyle; - wxRichTextColourSwatchCtrl* m_topOutlineColour; - wxCheckBox* m_bottomOutlineCheckbox; - wxTextCtrl* m_bottomOutlineWidth; - wxComboBox* m_bottomOutlineWidthUnits; - wxComboBox* m_bottomOutlineStyle; - wxRichTextColourSwatchCtrl* m_bottomOutlineColour; - wxCheckBox* m_outlineSyncCtrl; - wxCheckBox* m_cornerRadiusCheckBox; - wxTextCtrl* m_cornerRadiusText; - wxComboBox* m_cornerRadiusUnits; - wxRichTextBorderPreviewCtrl* m_borderPreviewCtrl; - /// Control identifiers - enum { - ID_RICHTEXTBORDERSPAGE = 10800, - ID_RICHTEXTBORDERSPAGE_NOTEBOOK = 10801, - ID_RICHTEXTBORDERSPAGE_BORDERS = 10802, - ID_RICHTEXT_BORDER_LEFT_CHECKBOX = 10803, - ID_RICHTEXT_BORDER_LEFT = 10804, - ID_RICHTEXT_BORDER_LEFT_UNITS = 10805, - ID_RICHTEXT_BORDER_LEFT_STYLE = 10806, - ID_RICHTEXT_BORDER_LEFT_COLOUR = 10807, - ID_RICHTEXT_BORDER_RIGHT_CHECKBOX = 10808, - ID_RICHTEXT_BORDER_RIGHT = 10809, - ID_RICHTEXT_BORDER_RIGHT_UNITS = 10810, - ID_RICHTEXT_BORDER_RIGHT_STYLE = 10811, - ID_RICHTEXT_BORDER_RIGHT_COLOUR = 10812, - ID_RICHTEXT_BORDER_TOP_CHECKBOX = 10813, - ID_RICHTEXT_BORDER_TOP = 10814, - ID_RICHTEXT_BORDER_TOP_UNITS = 10815, - ID_RICHTEXT_BORDER_TOP_STYLE = 10816, - ID_RICHTEXT_BORDER_TOP_COLOUR = 10817, - ID_RICHTEXT_BORDER_BOTTOM_CHECKBOX = 10818, - ID_RICHTEXT_BORDER_BOTTOM = 10819, - ID_RICHTEXT_BORDER_BOTTOM_UNITS = 10820, - ID_RICHTEXT_BORDER_BOTTOM_STYLE = 10821, - ID_RICHTEXT_BORDER_BOTTOM_COLOUR = 10822, - ID_RICHTEXT_BORDER_SYNCHRONIZE = 10845, - ID_RICHTEXTBORDERSPAGE_OUTLINE = 10823, - ID_RICHTEXT_OUTLINE_LEFT_CHECKBOX = 10824, - ID_RICHTEXT_OUTLINE_LEFT = 10825, - ID_RICHTEXT_OUTLINE_LEFT_UNITS = 10826, - ID_RICHTEXT_OUTLINE_LEFT_STYLE = 10827, - ID_RICHTEXT_OUTLINE_LEFT_COLOUR = 10828, - ID_RICHTEXT_OUTLINE_RIGHT_CHECKBOX = 10829, - ID_RICHTEXT_OUTLINE_RIGHT = 10830, - ID_RICHTEXT_OUTLINE_RIGHT_UNITS = 10831, - ID_RICHTEXT_OUTLINE_RIGHT_STYLE = 10832, - ID_RICHTEXT_OUTLINE_RIGHT_COLOUR = 10833, - ID_RICHTEXT_OUTLINE_TOP_CHECKBOX = 10834, - ID_RICHTEXT_OUTLINE_TOP = 10835, - ID_RICHTEXT_OUTLINE_TOP_UNITS = 10836, - ID_RICHTEXT_OUTLINE_TOP_STYLE = 10837, - ID_RICHTEXT_OUTLINE_TOP_COLOUR = 10838, - ID_RICHTEXT_OUTLINE_BOTTOM_CHECKBOX = 10839, - ID_RICHTEXT_OUTLINE_BOTTOM = 10840, - ID_RICHTEXT_OUTLINE_BOTTOM_UNITS = 10841, - ID_RICHTEXT_OUTLINE_BOTTOM_STYLE = 10842, - ID_RICHTEXT_OUTLINE_BOTTOM_COLOUR = 10843, - ID_RICHTEXT_OUTLINE_SYNCHRONIZE = 10846, - ID_RICHTEXTBORDERSPAGE_CORNER = 10847, - ID_RICHTEXTBORDERSPAGE_CORNER_CHECKBOX = 10848, - ID_RICHTEXTBORDERSPAGE_CORNER_TEXT = 10849, - ID_RICHTEXTBORDERSPAGE_CORNER_UNITS = 10850, - ID_RICHTEXT_BORDER_PREVIEW = 10844 - }; -////@end wxRichTextBordersPage member variables - - wxArrayInt m_borderStyles; - wxArrayString m_borderStyleNames; - bool m_ignoreUpdates; -}; - -class WXDLLIMPEXP_RICHTEXT wxRichTextBorderPreviewCtrl : public wxWindow -{ -public: - wxRichTextBorderPreviewCtrl(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& sz = wxDefaultSize, long style = 0); - - void SetAttributes(wxRichTextAttr* attr) { m_attributes = attr; } - wxRichTextAttr* GetAttributes() const { return m_attributes; } - -private: - wxRichTextAttr* m_attributes; - - void OnPaint(wxPaintEvent& event); - wxDECLARE_EVENT_TABLE(); -}; - -#endif - // _RICHTEXTBORDERSPAGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextbuffer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextbuffer.h deleted file mode 100644 index 3320f27b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextbuffer.h +++ /dev/null @@ -1,7077 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextbuffer.h -// Purpose: Buffer for wxRichTextCtrl -// Author: Julian Smart -// Modified by: -// Created: 2005-09-30 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RICHTEXTBUFFER_H_ -#define _WX_RICHTEXTBUFFER_H_ - -/* - - Data structures - =============== - - Data is represented by a hierarchy of objects, all derived from - wxRichTextObject. - - The top of the hierarchy is the buffer, a kind of wxRichTextParagraphLayoutBox. - These boxes will allow flexible placement of text boxes on a page, but - for now there is a single box representing the document, and this box is - a wxRichTextParagraphLayoutBox which contains further wxRichTextParagraph - objects, each of which can include text and images. - - Each object maintains a range (start and end position) measured - from the start of the main parent box. - A paragraph object knows its range, and a text fragment knows its range - too. So, a character or image in a page has a position relative to the - start of the document, and a character in an embedded text box has - a position relative to that text box. For now, we will not be dealing with - embedded objects but it's something to bear in mind for later. - - Note that internally, a range (5,5) represents a range of one character. - In the public wx[Rich]TextCtrl API, this would be passed to e.g. SetSelection - as (5,6). A paragraph with one character might have an internal range of (0, 1) - since the end of the paragraph takes up one position. - - Layout - ====== - - When Layout is called on an object, it is given a size which the object - must limit itself to, or one or more flexible directions (vertical - or horizontal). So for example a centered paragraph is given the page - width to play with (minus any margins), but can extend indefinitely - in the vertical direction. The implementation of Layout can then - cache the calculated size and position within the parent. - - */ - -/*! - * Includes - */ - -#include "wx/defs.h" - -#if wxUSE_RICHTEXT - -#include "wx/list.h" -#include "wx/textctrl.h" -#include "wx/bitmap.h" -#include "wx/image.h" -#include "wx/cmdproc.h" -#include "wx/txtstrm.h" -#include "wx/variant.h" -#include "wx/position.h" - -#if wxUSE_DATAOBJ -#include "wx/dataobj.h" -#endif - -// Compatibility -//#define wxRichTextAttr wxTextAttr -#define wxTextAttrEx wxTextAttr - -// Setting wxRICHTEXT_USE_OWN_CARET to 1 implements a -// caret reliably without using wxClientDC in case there -// are platform-specific problems with the generic caret. -#if defined(__WXGTK__) || defined(__WXMAC__) -#define wxRICHTEXT_USE_OWN_CARET 1 -#else -#define wxRICHTEXT_USE_OWN_CARET 0 -#endif - -// Switch off for binary compatibility, on for faster drawing -// Note: this seems to be buggy (overzealous use of extents) so -// don't use for now -#define wxRICHTEXT_USE_OPTIMIZED_LINE_DRAWING 0 - -// The following two symbols determine whether an output implementation -// is present. To switch the relevant one on, set wxRICHTEXT_USE_XMLDOCUMENT_OUTPUT in -// richtextxml.cpp. By default, the faster direct output implementation is used. - -// Include the wxXmlDocument implementation for output -#define wxRICHTEXT_HAVE_XMLDOCUMENT_OUTPUT 1 - -// Include the faster, direct implementation for output -#define wxRICHTEXT_HAVE_DIRECT_OUTPUT 1 - -/** - The line break character that can be embedded in content. - */ - -extern WXDLLIMPEXP_RICHTEXT const wxChar wxRichTextLineBreakChar; - -/** - File types in wxRichText context. - */ -enum wxRichTextFileType -{ - wxRICHTEXT_TYPE_ANY = 0, - wxRICHTEXT_TYPE_TEXT, - wxRICHTEXT_TYPE_XML, - wxRICHTEXT_TYPE_HTML, - wxRICHTEXT_TYPE_RTF, - wxRICHTEXT_TYPE_PDF -}; - -/* - * Forward declarations - */ - -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextCtrl; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextObject; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextImage; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextPlainText; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextCacheObject; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextObjectList; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextLine; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextParagraph; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextFileHandler; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextDrawingHandler; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextField; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextFieldType; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextStyleSheet; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextListStyleDefinition; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextEvent; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextRenderer; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextBuffer; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextXMLHandler; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextParagraphLayoutBox; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextImageBlock; -class WXDLLIMPEXP_FWD_XML wxXmlNode; -class wxRichTextFloatCollector; -class WXDLLIMPEXP_FWD_BASE wxDataInputStream; -class WXDLLIMPEXP_FWD_BASE wxDataOutputStream; - -/** - Flags determining the available space, passed to Layout. - */ - -#define wxRICHTEXT_FIXED_WIDTH 0x01 -#define wxRICHTEXT_FIXED_HEIGHT 0x02 -#define wxRICHTEXT_VARIABLE_WIDTH 0x04 -#define wxRICHTEXT_VARIABLE_HEIGHT 0x08 - -// Only lay out the part of the buffer that lies within -// the rect passed to Layout. -#define wxRICHTEXT_LAYOUT_SPECIFIED_RECT 0x10 - -/** - Flags to pass to Draw - */ - -// Ignore paragraph cache optimization, e.g. for printing purposes -// where one line may be drawn higher (on the next page) compared -// with the previous line -#define wxRICHTEXT_DRAW_IGNORE_CACHE 0x01 -#define wxRICHTEXT_DRAW_SELECTED 0x02 -#define wxRICHTEXT_DRAW_PRINT 0x04 -#define wxRICHTEXT_DRAW_GUIDELINES 0x08 - -/** - Flags returned from hit-testing, or passed to hit-test function. - */ -enum wxRichTextHitTestFlags -{ - // The point was not on this object - wxRICHTEXT_HITTEST_NONE = 0x01, - - // The point was before the position returned from HitTest - wxRICHTEXT_HITTEST_BEFORE = 0x02, - - // The point was after the position returned from HitTest - wxRICHTEXT_HITTEST_AFTER = 0x04, - - // The point was on the position returned from HitTest - wxRICHTEXT_HITTEST_ON = 0x08, - - // The point was on space outside content - wxRICHTEXT_HITTEST_OUTSIDE = 0x10, - - // Only do hit-testing at the current level (don't traverse into top-level objects) - wxRICHTEXT_HITTEST_NO_NESTED_OBJECTS = 0x20, - - // Ignore floating objects - wxRICHTEXT_HITTEST_NO_FLOATING_OBJECTS = 0x40, - - // Don't recurse into objects marked as atomic - wxRICHTEXT_HITTEST_HONOUR_ATOMIC = 0x80 -}; - -/** - Flags for GetRangeSize. - */ - -#define wxRICHTEXT_FORMATTED 0x01 -#define wxRICHTEXT_UNFORMATTED 0x02 -#define wxRICHTEXT_CACHE_SIZE 0x04 -#define wxRICHTEXT_HEIGHT_ONLY 0x08 - -/** - Flags for SetStyle/SetListStyle. - */ - -#define wxRICHTEXT_SETSTYLE_NONE 0x00 - -// Specifies that this operation should be undoable -#define wxRICHTEXT_SETSTYLE_WITH_UNDO 0x01 - -// Specifies that the style should not be applied if the -// combined style at this point is already the style in question. -#define wxRICHTEXT_SETSTYLE_OPTIMIZE 0x02 - -// Specifies that the style should only be applied to paragraphs, -// and not the content. This allows content styling to be -// preserved independently from that of e.g. a named paragraph style. -#define wxRICHTEXT_SETSTYLE_PARAGRAPHS_ONLY 0x04 - -// Specifies that the style should only be applied to characters, -// and not the paragraph. This allows content styling to be -// preserved independently from that of e.g. a named paragraph style. -#define wxRICHTEXT_SETSTYLE_CHARACTERS_ONLY 0x08 - -// For SetListStyle only: specifies starting from the given number, otherwise -// deduces number from existing attributes -#define wxRICHTEXT_SETSTYLE_RENUMBER 0x10 - -// For SetListStyle only: specifies the list level for all paragraphs, otherwise -// the current indentation will be used -#define wxRICHTEXT_SETSTYLE_SPECIFY_LEVEL 0x20 - -// Resets the existing style before applying the new style -#define wxRICHTEXT_SETSTYLE_RESET 0x40 - -// Removes the given style instead of applying it -#define wxRICHTEXT_SETSTYLE_REMOVE 0x80 - -/** - Flags for SetProperties. - */ - -#define wxRICHTEXT_SETPROPERTIES_NONE 0x00 - -// Specifies that this operation should be undoable -#define wxRICHTEXT_SETPROPERTIES_WITH_UNDO 0x01 - -// Specifies that the properties should only be applied to paragraphs, -// and not the content. -#define wxRICHTEXT_SETPROPERTIES_PARAGRAPHS_ONLY 0x02 - -// Specifies that the properties should only be applied to characters, -// and not the paragraph. -#define wxRICHTEXT_SETPROPERTIES_CHARACTERS_ONLY 0x04 - -// Resets the existing properties before applying the new properties. -#define wxRICHTEXT_SETPROPERTIES_RESET 0x08 - -// Removes the given properties instead of applying them. -#define wxRICHTEXT_SETPROPERTIES_REMOVE 0x10 - -/** - Flags for object insertion. - */ - -#define wxRICHTEXT_INSERT_NONE 0x00 -#define wxRICHTEXT_INSERT_WITH_PREVIOUS_PARAGRAPH_STYLE 0x01 -#define wxRICHTEXT_INSERT_INTERACTIVE 0x02 - -// A special flag telling the buffer to keep the first paragraph style -// as-is, when deleting a paragraph marker. In future we might pass a -// flag to InsertFragment and DeleteRange to indicate the appropriate mode. -#define wxTEXT_ATTR_KEEP_FIRST_PARA_STYLE 0x20000000 - -/** - Default superscript/subscript font multiplication factor. - */ - -#define wxSCRIPT_MUL_FACTOR 1.5 - -/** - The type for wxTextAttrDimension flags. - */ -typedef unsigned short wxTextAttrDimensionFlags; - -/** - Miscellaneous text box flags - */ -enum wxTextBoxAttrFlags -{ - wxTEXT_BOX_ATTR_FLOAT = 0x00000001, - wxTEXT_BOX_ATTR_CLEAR = 0x00000002, - wxTEXT_BOX_ATTR_COLLAPSE_BORDERS = 0x00000004, - wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT = 0x00000008, - wxTEXT_BOX_ATTR_BOX_STYLE_NAME = 0x00000010, - wxTEXT_BOX_ATTR_WHITESPACE = 0x00000020, - wxTEXT_BOX_ATTR_CORNER_RADIUS = 0x00000040 -}; - -/** - Whether a value is present, used in dimension flags. - */ -enum wxTextAttrValueFlags -{ - wxTEXT_ATTR_VALUE_VALID = 0x1000, - wxTEXT_ATTR_VALUE_VALID_MASK = 0x1000 -}; - -/** - Units, included in the dimension value. - */ -enum wxTextAttrUnits -{ - wxTEXT_ATTR_UNITS_TENTHS_MM = 0x0001, - wxTEXT_ATTR_UNITS_PIXELS = 0x0002, - wxTEXT_ATTR_UNITS_PERCENTAGE = 0x0004, - wxTEXT_ATTR_UNITS_POINTS = 0x0008, - wxTEXT_ATTR_UNITS_HUNDREDTHS_POINT = 0x0100, - - wxTEXT_ATTR_UNITS_MASK = 0x010F -}; - -/** - Position alternatives, included in the dimension flags. - */ -enum wxTextBoxAttrPosition -{ - wxTEXT_BOX_ATTR_POSITION_STATIC = 0x0000, // Default is static, i.e. as per normal layout - wxTEXT_BOX_ATTR_POSITION_RELATIVE = 0x0010, // Relative to the relevant edge - wxTEXT_BOX_ATTR_POSITION_ABSOLUTE = 0x0020, // Relative to the parent - wxTEXT_BOX_ATTR_POSITION_FIXED = 0x0040, // Relative to the top-level window - - wxTEXT_BOX_ATTR_POSITION_MASK = 0x00F0 -}; - -/** - @class wxTextAttrDimension - - A class representing a rich text dimension, including units and position. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextAttr, wxRichTextCtrl, wxTextAttrDimensions -*/ - -class WXDLLIMPEXP_RICHTEXT wxTextAttrDimension -{ -public: - /** - Default constructor. - */ - wxTextAttrDimension() { Reset(); } - /** - Constructor taking value and units flag. - */ - wxTextAttrDimension(int value, wxTextAttrUnits units = wxTEXT_ATTR_UNITS_TENTHS_MM) { m_value = value; m_flags = units|wxTEXT_ATTR_VALUE_VALID; } - - /** - Resets the dimension value and flags. - */ - void Reset() { m_value = 0; m_flags = 0; } - - /** - Partial equality test. If @a weakTest is @true, attributes of this object do not - have to be present if those attributes of @a dim are present. If @a weakTest is - @false, the function will fail if an attribute is present in @a dim but not - in this object. - */ - bool EqPartial(const wxTextAttrDimension& dim, bool weakTest = true) const; - - /** Apply the dimension, but not those identical to @a compareWith if present. - */ - bool Apply(const wxTextAttrDimension& dim, const wxTextAttrDimension* compareWith = NULL); - - /** Collects the attributes that are common to a range of content, building up a note of - which attributes are absent in some objects and which clash in some objects. - */ - void CollectCommonAttributes(const wxTextAttrDimension& attr, wxTextAttrDimension& clashingAttr, wxTextAttrDimension& absentAttr); - - /** - Equality operator. - */ - bool operator==(const wxTextAttrDimension& dim) const { return m_value == dim.m_value && m_flags == dim.m_flags; } - - /** - Returns the integer value of the dimension. - */ - int GetValue() const { return m_value; } - - /** - Returns the floating-pointing value of the dimension in mm. - - */ - float GetValueMM() const { return m_value / 10.0f; } - - /** - Sets the value of the dimension in mm. - */ - void SetValueMM(float value) { m_value = (int) ((value * 10.0f) + 0.5f); m_flags |= wxTEXT_ATTR_VALUE_VALID; } - - /** - Sets the integer value of the dimension. - */ - void SetValue(int value) { m_value = value; m_flags |= wxTEXT_ATTR_VALUE_VALID; } - - /** - Sets the integer value of the dimension, passing dimension flags. - */ - void SetValue(int value, wxTextAttrDimensionFlags flags) { SetValue(value); m_flags = flags; } - - /** - Sets the integer value and units. - */ - void SetValue(int value, wxTextAttrUnits units) { m_value = value; m_flags = units | wxTEXT_ATTR_VALUE_VALID; } - - /** - Sets the dimension. - */ - void SetValue(const wxTextAttrDimension& dim) { (*this) = dim; } - - /** - Gets the units of the dimension. - */ - wxTextAttrUnits GetUnits() const { return (wxTextAttrUnits) (m_flags & wxTEXT_ATTR_UNITS_MASK); } - - /** - Sets the units of the dimension. - */ - void SetUnits(wxTextAttrUnits units) { m_flags &= ~wxTEXT_ATTR_UNITS_MASK; m_flags |= units; } - - /** - Gets the position flags. - */ - wxTextBoxAttrPosition GetPosition() const { return (wxTextBoxAttrPosition) (m_flags & wxTEXT_BOX_ATTR_POSITION_MASK); } - - /** - Sets the position flags. - */ - void SetPosition(wxTextBoxAttrPosition pos) { m_flags &= ~wxTEXT_BOX_ATTR_POSITION_MASK; m_flags |= pos; } - - /** - Returns @true if the dimension is valid. - */ - bool IsValid() const { return (m_flags & wxTEXT_ATTR_VALUE_VALID) != 0; } - - /** - Sets the valid flag. - */ - void SetValid(bool b) { m_flags &= ~wxTEXT_ATTR_VALUE_VALID_MASK; m_flags |= (b ? wxTEXT_ATTR_VALUE_VALID : 0); } - - /** - Gets the dimension flags. - */ - wxTextAttrDimensionFlags GetFlags() const { return m_flags; } - - /** - Sets the dimension flags. - */ - void SetFlags(wxTextAttrDimensionFlags flags) { m_flags = flags; } - - int m_value; - wxTextAttrDimensionFlags m_flags; -}; - -/** - @class wxTextAttrDimensions - A class for left, right, top and bottom dimensions. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextAttr, wxRichTextCtrl, wxTextAttrDimension -*/ - -class WXDLLIMPEXP_RICHTEXT wxTextAttrDimensions -{ -public: - /** - Default constructor. - */ - wxTextAttrDimensions() {} - - /** - Resets the value and flags for all dimensions. - */ - void Reset() { m_left.Reset(); m_top.Reset(); m_right.Reset(); m_bottom.Reset(); } - - /** - Equality operator. - */ - bool operator==(const wxTextAttrDimensions& dims) const { return m_left == dims.m_left && m_top == dims.m_top && m_right == dims.m_right && m_bottom == dims.m_bottom; } - - /** - Partial equality test. If @a weakTest is @true, attributes of this object do not - have to be present if those attributes of @a dim sare present. If @a weakTest is - @false, the function will fail if an attribute is present in @a dims but not - in this object. - - */ - bool EqPartial(const wxTextAttrDimensions& dims, bool weakTest = true) const; - - /** - Apply to 'this', but not if the same as @a compareWith. - - */ - bool Apply(const wxTextAttrDimensions& dims, const wxTextAttrDimensions* compareWith = NULL); - - /** - Collects the attributes that are common to a range of content, building up a note of - which attributes are absent in some objects and which clash in some objects. - - */ - void CollectCommonAttributes(const wxTextAttrDimensions& attr, wxTextAttrDimensions& clashingAttr, wxTextAttrDimensions& absentAttr); - - /** - Remove specified attributes from this object. - */ - bool RemoveStyle(const wxTextAttrDimensions& attr); - - /** - Gets the left dimension. - */ - const wxTextAttrDimension& GetLeft() const { return m_left; } - wxTextAttrDimension& GetLeft() { return m_left; } - - /** - Gets the right dimension. - - */ - const wxTextAttrDimension& GetRight() const { return m_right; } - wxTextAttrDimension& GetRight() { return m_right; } - - /** - Gets the top dimension. - - */ - const wxTextAttrDimension& GetTop() const { return m_top; } - wxTextAttrDimension& GetTop() { return m_top; } - - /** - Gets the bottom dimension. - - */ - const wxTextAttrDimension& GetBottom() const { return m_bottom; } - wxTextAttrDimension& GetBottom() { return m_bottom; } - - /** - Are all dimensions valid? - - */ - bool IsValid() const { return m_left.IsValid() && m_top.IsValid() && m_right.IsValid() && m_bottom.IsValid(); } - - wxTextAttrDimension m_left; - wxTextAttrDimension m_top; - wxTextAttrDimension m_right; - wxTextAttrDimension m_bottom; -}; - -/** - @class wxTextAttrSize - A class for representing width and height. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextAttr, wxRichTextCtrl, wxTextAttrDimension -*/ - -class WXDLLIMPEXP_RICHTEXT wxTextAttrSize -{ -public: - /** - Default constructor. - */ - wxTextAttrSize() {} - - /** - Resets the width and height dimensions. - */ - void Reset() { m_width.Reset(); m_height.Reset(); } - - /** - Equality operator. - */ - bool operator==(const wxTextAttrSize& size) const { return m_width == size.m_width && m_height == size.m_height ; } - - /** - Partial equality test. If @a weakTest is @true, attributes of this object do not - have to be present if those attributes of @a size are present. If @a weakTest is - @false, the function will fail if an attribute is present in @a size but not - in this object. - */ - bool EqPartial(const wxTextAttrSize& size, bool weakTest = true) const; - - /** - Apply to this object, but not if the same as @a compareWith. - */ - bool Apply(const wxTextAttrSize& dims, const wxTextAttrSize* compareWith = NULL); - - /** - Collects the attributes that are common to a range of content, building up a note of - which attributes are absent in some objects and which clash in some objects. - */ - void CollectCommonAttributes(const wxTextAttrSize& attr, wxTextAttrSize& clashingAttr, wxTextAttrSize& absentAttr); - - /** - Removes the specified attributes from this object. - */ - bool RemoveStyle(const wxTextAttrSize& attr); - - /** - Returns the width. - */ - wxTextAttrDimension& GetWidth() { return m_width; } - const wxTextAttrDimension& GetWidth() const { return m_width; } - - /** - Sets the width. - */ - void SetWidth(int value, wxTextAttrDimensionFlags flags) { m_width.SetValue(value, flags); } - - /** - Sets the width. - */ - void SetWidth(int value, wxTextAttrUnits units) { m_width.SetValue(value, units); } - - /** - Sets the width. - */ - void SetWidth(const wxTextAttrDimension& dim) { m_width.SetValue(dim); } - - /** - Gets the height. - */ - wxTextAttrDimension& GetHeight() { return m_height; } - const wxTextAttrDimension& GetHeight() const { return m_height; } - - /** - Sets the height. - */ - void SetHeight(int value, wxTextAttrDimensionFlags flags) { m_height.SetValue(value, flags); } - - /** - Sets the height. - */ - void SetHeight(int value, wxTextAttrUnits units) { m_height.SetValue(value, units); } - - /** - Sets the height. - */ - void SetHeight(const wxTextAttrDimension& dim) { m_height.SetValue(dim); } - - /** - Is the size valid? - */ - bool IsValid() const { return m_width.IsValid() && m_height.IsValid(); } - - wxTextAttrDimension m_width; - wxTextAttrDimension m_height; -}; - -/** - @class wxTextAttrDimensionConverter - A class to make it easier to convert dimensions. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextAttr, wxRichTextCtrl, wxTextAttrDimension -*/ - -class WXDLLIMPEXP_RICHTEXT wxTextAttrDimensionConverter -{ -public: - /** - Constructor. - */ - wxTextAttrDimensionConverter(wxDC& dc, double scale = 1.0, const wxSize& parentSize = wxDefaultSize); - /** - Constructor. - */ - wxTextAttrDimensionConverter(int ppi, double scale = 1.0, const wxSize& parentSize = wxDefaultSize); - - /** - Gets the pixel size for the given dimension. - */ - int GetPixels(const wxTextAttrDimension& dim, int direction = wxHORIZONTAL) const; - /** - Gets the mm size for the given dimension. - */ - int GetTenthsMM(const wxTextAttrDimension& dim) const; - - /** - Converts tenths of a mm to pixels. - */ - int ConvertTenthsMMToPixels(int units) const; - /** - Converts pixels to tenths of a mm. - */ - int ConvertPixelsToTenthsMM(int pixels) const; - - /** - Sets the scale factor. - */ - void SetScale(double scale) { m_scale = scale; } - /** - Returns the scale factor. - */ - double GetScale() const { return m_scale; } - - /** - Sets the ppi. - */ - void SetPPI(int ppi) { m_ppi = ppi; } - /** - Returns the ppi. - */ - int GetPPI() const { return m_ppi; } - - /** - Sets the parent size. - */ - void SetParentSize(const wxSize& parentSize) { m_parentSize = parentSize; } - /** - Returns the parent size. - */ - const wxSize& GetParentSize() const { return m_parentSize; } - - int m_ppi; - double m_scale; - wxSize m_parentSize; -}; - -/** - Border styles, used with wxTextAttrBorder. - */ -enum wxTextAttrBorderStyle -{ - wxTEXT_BOX_ATTR_BORDER_NONE = 0, - wxTEXT_BOX_ATTR_BORDER_SOLID = 1, - wxTEXT_BOX_ATTR_BORDER_DOTTED = 2, - wxTEXT_BOX_ATTR_BORDER_DASHED = 3, - wxTEXT_BOX_ATTR_BORDER_DOUBLE = 4, - wxTEXT_BOX_ATTR_BORDER_GROOVE = 5, - wxTEXT_BOX_ATTR_BORDER_RIDGE = 6, - wxTEXT_BOX_ATTR_BORDER_INSET = 7, - wxTEXT_BOX_ATTR_BORDER_OUTSET = 8 -}; - -/** - Border style presence flags, used with wxTextAttrBorder. - */ -enum wxTextAttrBorderFlags -{ - wxTEXT_BOX_ATTR_BORDER_STYLE = 0x0001, - wxTEXT_BOX_ATTR_BORDER_COLOUR = 0x0002 -}; - -/** - Border width symbols for qualitative widths, used with wxTextAttrBorder. - */ -enum wxTextAttrBorderWidth -{ - wxTEXT_BOX_ATTR_BORDER_THIN = -1, - wxTEXT_BOX_ATTR_BORDER_MEDIUM = -2, - wxTEXT_BOX_ATTR_BORDER_THICK = -3 -}; - -/** - Float styles. - */ -enum wxTextBoxAttrFloatStyle -{ - wxTEXT_BOX_ATTR_FLOAT_NONE = 0, - wxTEXT_BOX_ATTR_FLOAT_LEFT = 1, - wxTEXT_BOX_ATTR_FLOAT_RIGHT = 2 -}; - -/** - Clear styles. - */ -enum wxTextBoxAttrClearStyle -{ - wxTEXT_BOX_ATTR_CLEAR_NONE = 0, - wxTEXT_BOX_ATTR_CLEAR_LEFT = 1, - wxTEXT_BOX_ATTR_CLEAR_RIGHT = 2, - wxTEXT_BOX_ATTR_CLEAR_BOTH = 3 -}; - -/** - Collapse mode styles. - */ -enum wxTextBoxAttrCollapseMode -{ - wxTEXT_BOX_ATTR_COLLAPSE_NONE = 0, - wxTEXT_BOX_ATTR_COLLAPSE_FULL = 1 -}; - -/** - Vertical alignment values. - */ -enum wxTextBoxAttrVerticalAlignment -{ - wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT_NONE = 0, - wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT_TOP = 1, - wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT_CENTRE = 2, - wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT_BOTTOM = 3 -}; - -/** - Whitespace values mirroring the CSS white-space attribute. - Only wxTEXT_BOX_ATTR_WHITESPACE_NO_WRAP is currently implemented, - in table cells. - */ -enum wxTextBoxAttrWhitespaceMode -{ - wxTEXT_BOX_ATTR_WHITESPACE_NONE = 0, - wxTEXT_BOX_ATTR_WHITESPACE_NORMAL = 1, - wxTEXT_BOX_ATTR_WHITESPACE_NO_WRAP = 2, - wxTEXT_BOX_ATTR_WHITESPACE_PREFORMATTED = 3, - wxTEXT_BOX_ATTR_WHITESPACE_PREFORMATTED_LINE = 4, - wxTEXT_BOX_ATTR_WHITESPACE_PREFORMATTED_WRAP = 5 -}; - -/** - @class wxTextAttrBorder - A class representing a rich text object border. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextAttr, wxRichTextCtrl, wxRichTextAttrBorders -*/ - -class WXDLLIMPEXP_RICHTEXT wxTextAttrBorder -{ -public: - /** - Default constructor. - */ - wxTextAttrBorder() { Reset(); } - - /** - Equality operator. - */ - bool operator==(const wxTextAttrBorder& border) const - { - return m_flags == border.m_flags && m_borderStyle == border.m_borderStyle && - m_borderColour == border.m_borderColour && m_borderWidth == border.m_borderWidth; - } - - /** - Resets the border style, colour, width and flags. - */ - void Reset() { m_borderStyle = 0; m_borderColour = 0; m_flags = 0; m_borderWidth.Reset(); } - - /** - Partial equality test. If @a weakTest is @true, attributes of this object do not - have to be present if those attributes of @a border are present. If @a weakTest is - @false, the function will fail if an attribute is present in @a border but not - in this object. - */ - bool EqPartial(const wxTextAttrBorder& border, bool weakTest = true) const; - - /** - Applies the border to this object, but not if the same as @a compareWith. - - */ - bool Apply(const wxTextAttrBorder& border, const wxTextAttrBorder* compareWith = NULL); - - /** - Removes the specified attributes from this object. - */ - bool RemoveStyle(const wxTextAttrBorder& attr); - - /** - Collects the attributes that are common to a range of content, building up a note of - which attributes are absent in some objects and which clash in some objects. - */ - void CollectCommonAttributes(const wxTextAttrBorder& attr, wxTextAttrBorder& clashingAttr, wxTextAttrBorder& absentAttr); - - /** - Sets the border style. - */ - void SetStyle(int style) { m_borderStyle = style; m_flags |= wxTEXT_BOX_ATTR_BORDER_STYLE; } - - /** - Gets the border style. - - */ - int GetStyle() const { return m_borderStyle; } - - /** - Sets the border colour. - */ - void SetColour(unsigned long colour) { m_borderColour = colour; m_flags |= wxTEXT_BOX_ATTR_BORDER_COLOUR; } - - /** - Sets the border colour. - */ - void SetColour(const wxColour& colour) { m_borderColour = colour.GetRGB(); m_flags |= wxTEXT_BOX_ATTR_BORDER_COLOUR; } - - /** - Gets the colour as a long. - */ - unsigned long GetColourLong() const { return m_borderColour; } - - /** - Gets the colour. - */ - wxColour GetColour() const { return wxColour(m_borderColour); } - - /** - Gets the border width. - */ - wxTextAttrDimension& GetWidth() { return m_borderWidth; } - const wxTextAttrDimension& GetWidth() const { return m_borderWidth; } - - /** - Sets the border width. - */ - void SetWidth(const wxTextAttrDimension& width) { m_borderWidth = width; } - /** - Sets the border width. - */ - void SetWidth(int value, wxTextAttrUnits units = wxTEXT_ATTR_UNITS_TENTHS_MM) { SetWidth(wxTextAttrDimension(value, units)); } - - /** - True if the border has a valid style. - */ - bool HasStyle() const { return (m_flags & wxTEXT_BOX_ATTR_BORDER_STYLE) != 0; } - - /** - True if the border has a valid colour. - */ - bool HasColour() const { return (m_flags & wxTEXT_BOX_ATTR_BORDER_COLOUR) != 0; } - - /** - True if the border has a valid width. - */ - bool HasWidth() const { return m_borderWidth.IsValid(); } - - /** - True if the border is valid. - */ - bool IsValid() const { return HasWidth(); } - - /** - Set the valid flag for this border. - */ - void MakeValid() { m_borderWidth.SetValid(true); } - - /** - True if the border has no attributes set. - */ - bool IsDefault() const { return (m_flags == 0); } - - /** - Returns the border flags. - */ - int GetFlags() const { return m_flags; } - - /** - Sets the border flags. - */ - void SetFlags(int flags) { m_flags = flags; } - - /** - Adds a border flag. - */ - void AddFlag(int flag) { m_flags |= flag; } - - /** - Removes a border flag. - */ - void RemoveFlag(int flag) { m_flags &= ~flag; } - - int m_borderStyle; - unsigned long m_borderColour; - wxTextAttrDimension m_borderWidth; - int m_flags; -}; - -/** - @class wxTextAttrBorders - A class representing a rich text object's borders. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextAttr, wxRichTextCtrl, wxRichTextAttrBorder -*/ - -class WXDLLIMPEXP_RICHTEXT wxTextAttrBorders -{ -public: - /** - Default constructor. - */ - wxTextAttrBorders() { } - - /** - Equality operator. - */ - bool operator==(const wxTextAttrBorders& borders) const - { - return m_left == borders.m_left && m_right == borders.m_right && - m_top == borders.m_top && m_bottom == borders.m_bottom; - } - - /** - Sets the style of all borders. - */ - void SetStyle(int style); - - /** - Sets colour of all borders. - */ - void SetColour(unsigned long colour); - - /** - Sets the colour for all borders. - */ - void SetColour(const wxColour& colour); - - /** - Sets the width of all borders. - */ - void SetWidth(const wxTextAttrDimension& width); - - /** - Sets the width of all borders. - */ - void SetWidth(int value, wxTextAttrUnits units = wxTEXT_ATTR_UNITS_TENTHS_MM) { SetWidth(wxTextAttrDimension(value, units)); } - - /** - Resets all borders. - */ - void Reset() { m_left.Reset(); m_right.Reset(); m_top.Reset(); m_bottom.Reset(); } - - /** - Partial equality test. If @a weakTest is @true, attributes of this object do not - have to be present if those attributes of @a borders are present. If @a weakTest is - @false, the function will fail if an attribute is present in @a borders but not - in this object. - */ - bool EqPartial(const wxTextAttrBorders& borders, bool weakTest = true) const; - - /** - Applies border to this object, but not if the same as @a compareWith. - */ - bool Apply(const wxTextAttrBorders& borders, const wxTextAttrBorders* compareWith = NULL); - - /** - Removes the specified attributes from this object. - */ - bool RemoveStyle(const wxTextAttrBorders& attr); - - /** - Collects the attributes that are common to a range of content, building up a note of - which attributes are absent in some objects and which clash in some objects. - */ - void CollectCommonAttributes(const wxTextAttrBorders& attr, wxTextAttrBorders& clashingAttr, wxTextAttrBorders& absentAttr); - - /** - Returns @true if at least one border is valid. - */ - bool IsValid() const { return m_left.IsValid() || m_right.IsValid() || m_top.IsValid() || m_bottom.IsValid(); } - - /** - Returns @true if no border attributes were set. - */ - bool IsDefault() const { return m_left.IsDefault() && m_right.IsDefault() && m_top.IsDefault() && m_bottom.IsDefault(); } - - /** - Returns the left border. - */ - const wxTextAttrBorder& GetLeft() const { return m_left; } - wxTextAttrBorder& GetLeft() { return m_left; } - - /** - Returns the right border. - */ - const wxTextAttrBorder& GetRight() const { return m_right; } - wxTextAttrBorder& GetRight() { return m_right; } - - /** - Returns the top border. - */ - const wxTextAttrBorder& GetTop() const { return m_top; } - wxTextAttrBorder& GetTop() { return m_top; } - - /** - Returns the bottom border. - */ - const wxTextAttrBorder& GetBottom() const { return m_bottom; } - wxTextAttrBorder& GetBottom() { return m_bottom; } - - wxTextAttrBorder m_left, m_right, m_top, m_bottom; - -}; - -/** - @class wxTextAttrShadow - A class representing a shadow. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextAttr, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxTextAttrShadow -{ -public: - /** - Default constructor. - */ - wxTextAttrShadow() { Reset(); } - - /** - Equality operator. - */ - bool operator==(const wxTextAttrShadow& shadow) const; - - /** - Resets the shadow. - */ - void Reset(); - - /** - Partial equality test. If @a weakTest is @true, attributes of this object do not - have to be present if those attributes of @a border are present. If @a weakTest is - @false, the function will fail if an attribute is present in @a border but not - in this object. - */ - bool EqPartial(const wxTextAttrShadow& shadow, bool weakTest = true) const; - - /** - Applies the border to this object, but not if the same as @a compareWith. - - */ - bool Apply(const wxTextAttrShadow& shadow, const wxTextAttrShadow* compareWith = NULL); - - /** - Removes the specified attributes from this object. - */ - bool RemoveStyle(const wxTextAttrShadow& attr); - - /** - Collects the attributes that are common to a range of content, building up a note of - which attributes are absent in some objects and which clash in some objects. - */ - void CollectCommonAttributes(const wxTextAttrShadow& attr, wxTextAttrShadow& clashingAttr, wxTextAttrShadow& absentAttr); - - /** - Sets the shadow colour. - */ - void SetColour(unsigned long colour) { m_shadowColour = colour; m_flags |= wxTEXT_BOX_ATTR_BORDER_COLOUR; } - - /** - Sets the shadow colour. - */ -#if wxCHECK_VERSION(2,9,0) - void SetColour(const wxColour& colour) { m_shadowColour = colour.GetRGB(); m_flags |= wxTEXT_BOX_ATTR_BORDER_COLOUR; } -#else - void SetColour(const wxColour& colour) { m_shadowColour = (colour.Red() | (colour.Green() << 8) | (colour.Blue() << 16)); m_flags |= wxTEXT_BOX_ATTR_BORDER_COLOUR; } -#endif - - /** - Gets the colour as a long. - */ - unsigned long GetColourLong() const { return m_shadowColour; } - - /** - Gets the colour. - */ - wxColour GetColour() const { return wxColour(m_shadowColour); } - - /** - True if the shadow has a valid colour. - */ - bool HasColour() const { return (m_flags & wxTEXT_BOX_ATTR_BORDER_COLOUR) != 0; } - - /** - Gets the shadow horizontal offset. - */ - wxTextAttrDimension& GetOffsetX() { return m_offsetX; } - const wxTextAttrDimension& GetOffsetX() const { return m_offsetX; } - - /** - Sets the shadow horizontal offset. - */ - void SetOffsetX(const wxTextAttrDimension& offset) { m_offsetX = offset; } - - /** - Gets the shadow vertical offset. - */ - wxTextAttrDimension& GetOffsetY() { return m_offsetY; } - const wxTextAttrDimension& GetOffsetY() const { return m_offsetY; } - - /** - Sets the shadow vertical offset. - */ - void SetOffsetY(const wxTextAttrDimension& offset) { m_offsetY = offset; } - - /** - Gets the shadow spread size. - */ - wxTextAttrDimension& GetSpread() { return m_spread; } - const wxTextAttrDimension& GetSpread() const { return m_spread; } - - /** - Sets the shadow spread size. - */ - void SetSpread(const wxTextAttrDimension& spread) { m_spread = spread; } - - /** - Gets the shadow blur distance. - */ - wxTextAttrDimension& GetBlurDistance() { return m_blurDistance; } - const wxTextAttrDimension& GetBlurDistance() const { return m_blurDistance; } - - /** - Sets the shadow blur distance. - */ - void SetBlurDistance(const wxTextAttrDimension& blur) { m_blurDistance = blur; } - - /** - Gets the shadow opacity. - */ - wxTextAttrDimension& GetOpacity() { return m_opacity; } - const wxTextAttrDimension& GetOpacity() const { return m_opacity; } - - /** - Returns @true if the dimension is valid. - */ - bool IsValid() const { return (m_flags & wxTEXT_ATTR_VALUE_VALID) != 0; } - - /** - Sets the valid flag. - */ - void SetValid(bool b) { m_flags &= ~wxTEXT_ATTR_VALUE_VALID_MASK; m_flags |= (b ? wxTEXT_ATTR_VALUE_VALID : 0); } - - /** - Returns the border flags. - */ - int GetFlags() const { return m_flags; } - - /** - Sets the border flags. - */ - void SetFlags(int flags) { m_flags = flags; } - - /** - Adds a border flag. - */ - void AddFlag(int flag) { m_flags |= flag; } - - /** - Removes a border flag. - */ - void RemoveFlag(int flag) { m_flags &= ~flag; } - - /** - Sets the shadow opacity. - */ - void SetOpacity(const wxTextAttrDimension& opacity) { m_opacity = opacity; } - - /** - True if the shadow has no attributes set. - */ - bool IsDefault() const { return !HasColour() && !m_offsetX.IsValid() && !m_offsetY.IsValid() && !m_spread.IsValid() && !m_blurDistance.IsValid() && !m_opacity.IsValid(); } - - int m_flags; - unsigned long m_shadowColour; - wxTextAttrDimension m_offsetX; - wxTextAttrDimension m_offsetY; - wxTextAttrDimension m_spread; - wxTextAttrDimension m_blurDistance; - wxTextAttrDimension m_opacity; -}; - -/** - @class wxTextBoxAttr - A class representing the box attributes of a rich text object. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextAttr, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxTextBoxAttr -{ -public: - /** - Default constructor. - */ - wxTextBoxAttr() { Init(); } - - /** - Copy constructor. - */ - wxTextBoxAttr(const wxTextBoxAttr& attr) { Init(); (*this) = attr; } - - /** - Initialises this object. - */ - void Init() { Reset(); } - - /** - Resets this object. - */ - void Reset(); - - // Copy. Unnecessary since we let it do a binary copy - //void Copy(const wxTextBoxAttr& attr); - - // Assignment - //void operator= (const wxTextBoxAttr& attr); - - /** - Equality test. - */ - bool operator== (const wxTextBoxAttr& attr) const; - - /** - Partial equality test, ignoring unset attributes. If @a weakTest is @true, attributes of this object do not - have to be present if those attributes of @a attr are present. If @a weakTest is - @false, the function will fail if an attribute is present in @a attr but not - in this object. - - */ - bool EqPartial(const wxTextBoxAttr& attr, bool weakTest = true) const; - - /** - Merges the given attributes. If @a compareWith is non-NULL, then it will be used - to mask out those attributes that are the same in style and @a compareWith, for - situations where we don't want to explicitly set inherited attributes. - */ - bool Apply(const wxTextBoxAttr& style, const wxTextBoxAttr* compareWith = NULL); - - /** - Collects the attributes that are common to a range of content, building up a note of - which attributes are absent in some objects and which clash in some objects. - */ - void CollectCommonAttributes(const wxTextBoxAttr& attr, wxTextBoxAttr& clashingAttr, wxTextBoxAttr& absentAttr); - - /** - Removes the specified attributes from this object. - */ - bool RemoveStyle(const wxTextBoxAttr& attr); - - /** - Sets the flags. - */ - void SetFlags(int flags) { m_flags = flags; } - - /** - Returns the flags. - */ - int GetFlags() const { return m_flags; } - - /** - Is this flag present? - */ - bool HasFlag(wxTextBoxAttrFlags flag) const { return (m_flags & flag) != 0; } - - /** - Removes this flag. - */ - void RemoveFlag(wxTextBoxAttrFlags flag) { m_flags &= ~flag; } - - /** - Adds this flag. - */ - void AddFlag(wxTextBoxAttrFlags flag) { m_flags |= flag; } - - /** - Returns @true if no attributes are set. - */ - bool IsDefault() const; - - /** - Returns the float mode. - */ - wxTextBoxAttrFloatStyle GetFloatMode() const { return m_floatMode; } - - /** - Sets the float mode. - */ - void SetFloatMode(wxTextBoxAttrFloatStyle mode) { m_floatMode = mode; m_flags |= wxTEXT_BOX_ATTR_FLOAT; } - - /** - Returns @true if float mode is active. - */ - bool HasFloatMode() const { return HasFlag(wxTEXT_BOX_ATTR_FLOAT); } - - /** - Returns @true if this object is floating. - */ - bool IsFloating() const { return HasFloatMode() && GetFloatMode() != wxTEXT_BOX_ATTR_FLOAT_NONE; } - - /** - Returns the clear mode - whether to wrap text after object. Currently unimplemented. - */ - wxTextBoxAttrClearStyle GetClearMode() const { return m_clearMode; } - - /** - Set the clear mode. Currently unimplemented. - */ - void SetClearMode(wxTextBoxAttrClearStyle mode) { m_clearMode = mode; m_flags |= wxTEXT_BOX_ATTR_CLEAR; } - - /** - Returns @true if we have a clear flag. - */ - bool HasClearMode() const { return HasFlag(wxTEXT_BOX_ATTR_CLEAR); } - - /** - Returns the collapse mode - whether to collapse borders. - */ - wxTextBoxAttrCollapseMode GetCollapseBorders() const { return m_collapseMode; } - - /** - Sets the collapse mode - whether to collapse borders. - */ - void SetCollapseBorders(wxTextBoxAttrCollapseMode collapse) { m_collapseMode = collapse; m_flags |= wxTEXT_BOX_ATTR_COLLAPSE_BORDERS; } - - /** - Returns @true if the collapse borders flag is present. - */ - bool HasCollapseBorders() const { return HasFlag(wxTEXT_BOX_ATTR_COLLAPSE_BORDERS); } - - /** - Returns the whitespace mode. - */ - wxTextBoxAttrWhitespaceMode GetWhitespaceMode() const { return m_whitespaceMode; } - - /** - Sets the whitespace mode. - */ - void SetWhitespaceMode(wxTextBoxAttrWhitespaceMode whitespace) { m_whitespaceMode = whitespace; m_flags |= wxTEXT_BOX_ATTR_WHITESPACE; } - - /** - Returns @true if the whitespace flag is present. - */ - bool HasWhitespaceMode() const { return HasFlag(wxTEXT_BOX_ATTR_WHITESPACE); } - - /** - Returns @true if the corner radius flag is present. - */ - bool HasCornerRadius() const { return HasFlag(wxTEXT_BOX_ATTR_CORNER_RADIUS); } - - /** - Returns the corner radius value. - */ - const wxTextAttrDimension& GetCornerRadius() const { return m_cornerRadius; } - wxTextAttrDimension& GetCornerRadius() { return m_cornerRadius; } - - /** - Sets the corner radius value. - */ - void SetCornerRadius(const wxTextAttrDimension& dim) { m_cornerRadius = dim; m_flags |= wxTEXT_BOX_ATTR_CORNER_RADIUS; } - - /** - Returns the vertical alignment. - */ - wxTextBoxAttrVerticalAlignment GetVerticalAlignment() const { return m_verticalAlignment; } - - /** - Sets the vertical alignment. - */ - void SetVerticalAlignment(wxTextBoxAttrVerticalAlignment verticalAlignment) { m_verticalAlignment = verticalAlignment; m_flags |= wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT; } - - /** - Returns @true if a vertical alignment flag is present. - */ - bool HasVerticalAlignment() const { return HasFlag(wxTEXT_BOX_ATTR_VERTICAL_ALIGNMENT); } - - /** - Returns the margin values. - */ - wxTextAttrDimensions& GetMargins() { return m_margins; } - const wxTextAttrDimensions& GetMargins() const { return m_margins; } - - /** - Returns the left margin. - */ - wxTextAttrDimension& GetLeftMargin() { return m_margins.m_left; } - const wxTextAttrDimension& GetLeftMargin() const { return m_margins.m_left; } - - /** - Returns the right margin. - */ - wxTextAttrDimension& GetRightMargin() { return m_margins.m_right; } - const wxTextAttrDimension& GetRightMargin() const { return m_margins.m_right; } - - /** - Returns the top margin. - */ - wxTextAttrDimension& GetTopMargin() { return m_margins.m_top; } - const wxTextAttrDimension& GetTopMargin() const { return m_margins.m_top; } - - /** - Returns the bottom margin. - */ - wxTextAttrDimension& GetBottomMargin() { return m_margins.m_bottom; } - const wxTextAttrDimension& GetBottomMargin() const { return m_margins.m_bottom; } - - /** - Returns the position. - */ - wxTextAttrDimensions& GetPosition() { return m_position; } - const wxTextAttrDimensions& GetPosition() const { return m_position; } - - /** - Returns the left position. - */ - wxTextAttrDimension& GetLeft() { return m_position.m_left; } - const wxTextAttrDimension& GetLeft() const { return m_position.m_left; } - - /** - Returns the right position. - */ - wxTextAttrDimension& GetRight() { return m_position.m_right; } - const wxTextAttrDimension& GetRight() const { return m_position.m_right; } - - /** - Returns the top position. - */ - wxTextAttrDimension& GetTop() { return m_position.m_top; } - const wxTextAttrDimension& GetTop() const { return m_position.m_top; } - - /** - Returns the bottom position. - */ - wxTextAttrDimension& GetBottom() { return m_position.m_bottom; } - const wxTextAttrDimension& GetBottom() const { return m_position.m_bottom; } - - /** - Returns the padding values. - */ - wxTextAttrDimensions& GetPadding() { return m_padding; } - const wxTextAttrDimensions& GetPadding() const { return m_padding; } - - /** - Returns the left padding value. - */ - wxTextAttrDimension& GetLeftPadding() { return m_padding.m_left; } - const wxTextAttrDimension& GetLeftPadding() const { return m_padding.m_left; } - - /** - Returns the right padding value. - */ - wxTextAttrDimension& GetRightPadding() { return m_padding.m_right; } - const wxTextAttrDimension& GetRightPadding() const { return m_padding.m_right; } - - /** - Returns the top padding value. - */ - wxTextAttrDimension& GetTopPadding() { return m_padding.m_top; } - const wxTextAttrDimension& GetTopPadding() const { return m_padding.m_top; } - - /** - Returns the bottom padding value. - */ - wxTextAttrDimension& GetBottomPadding() { return m_padding.m_bottom; } - const wxTextAttrDimension& GetBottomPadding() const { return m_padding.m_bottom; } - - /** - Returns the borders. - */ - wxTextAttrBorders& GetBorder() { return m_border; } - const wxTextAttrBorders& GetBorder() const { return m_border; } - - /** - Returns the left border. - */ - wxTextAttrBorder& GetLeftBorder() { return m_border.m_left; } - const wxTextAttrBorder& GetLeftBorder() const { return m_border.m_left; } - - /** - Returns the top border. - */ - wxTextAttrBorder& GetTopBorder() { return m_border.m_top; } - const wxTextAttrBorder& GetTopBorder() const { return m_border.m_top; } - - /** - Returns the right border. - */ - wxTextAttrBorder& GetRightBorder() { return m_border.m_right; } - const wxTextAttrBorder& GetRightBorder() const { return m_border.m_right; } - - /** - Returns the bottom border. - */ - wxTextAttrBorder& GetBottomBorder() { return m_border.m_bottom; } - const wxTextAttrBorder& GetBottomBorder() const { return m_border.m_bottom; } - - /** - Returns the outline. - */ - wxTextAttrBorders& GetOutline() { return m_outline; } - const wxTextAttrBorders& GetOutline() const { return m_outline; } - - /** - Returns the left outline. - */ - wxTextAttrBorder& GetLeftOutline() { return m_outline.m_left; } - const wxTextAttrBorder& GetLeftOutline() const { return m_outline.m_left; } - - /** - Returns the top outline. - */ - wxTextAttrBorder& GetTopOutline() { return m_outline.m_top; } - const wxTextAttrBorder& GetTopOutline() const { return m_outline.m_top; } - - /** - Returns the right outline. - */ - wxTextAttrBorder& GetRightOutline() { return m_outline.m_right; } - const wxTextAttrBorder& GetRightOutline() const { return m_outline.m_right; } - - /** - Returns the bottom outline. - */ - wxTextAttrBorder& GetBottomOutline() { return m_outline.m_bottom; } - const wxTextAttrBorder& GetBottomOutline() const { return m_outline.m_bottom; } - - /** - Returns the object size. - */ - wxTextAttrSize& GetSize() { return m_size; } - const wxTextAttrSize& GetSize() const { return m_size; } - - /** - Returns the object minimum size. - */ - - wxTextAttrSize& GetMinSize() { return m_minSize; } - const wxTextAttrSize& GetMinSize() const { return m_minSize; } - - /** - Returns the object maximum size. - */ - - wxTextAttrSize& GetMaxSize() { return m_maxSize; } - const wxTextAttrSize& GetMaxSize() const { return m_maxSize; } - - /** - Sets the object size. - */ - void SetSize(const wxTextAttrSize& sz) { m_size = sz; } - - /** - Sets the object minimum size. - */ - void SetMinSize(const wxTextAttrSize& sz) { m_minSize = sz; } - - /** - Sets the object maximum size. - */ - void SetMaxSize(const wxTextAttrSize& sz) { m_maxSize = sz; } - - /** - Returns the object width. - */ - wxTextAttrDimension& GetWidth() { return m_size.m_width; } - const wxTextAttrDimension& GetWidth() const { return m_size.m_width; } - - /** - Returns the object height. - */ - wxTextAttrDimension& GetHeight() { return m_size.m_height; } - const wxTextAttrDimension& GetHeight() const { return m_size.m_height; } - - /** - Returns the box style name. - */ - const wxString& GetBoxStyleName() const { return m_boxStyleName; } - - /** - Sets the box style name. - */ - void SetBoxStyleName(const wxString& name) { m_boxStyleName = name; AddFlag(wxTEXT_BOX_ATTR_BOX_STYLE_NAME); } - - /** - Returns @true if the box style name is present. - */ - bool HasBoxStyleName() const { return HasFlag(wxTEXT_BOX_ATTR_BOX_STYLE_NAME); } - - /** - Returns the box shadow attributes. - */ - wxTextAttrShadow& GetShadow() { return m_shadow; } - const wxTextAttrShadow& GetShadow() const { return m_shadow; } - - /** - Sets the box shadow attributes. - */ - void SetShadow(const wxTextAttrShadow& shadow) { m_shadow = shadow; } - -public: - - int m_flags; - - wxTextAttrDimensions m_margins; - wxTextAttrDimensions m_padding; - wxTextAttrDimensions m_position; - - wxTextAttrSize m_size; - wxTextAttrSize m_minSize; - wxTextAttrSize m_maxSize; - - wxTextAttrBorders m_border; - wxTextAttrBorders m_outline; - - wxTextBoxAttrFloatStyle m_floatMode; - wxTextBoxAttrClearStyle m_clearMode; - wxTextBoxAttrCollapseMode m_collapseMode; - wxTextBoxAttrVerticalAlignment m_verticalAlignment; - wxTextBoxAttrWhitespaceMode m_whitespaceMode; - wxTextAttrDimension m_cornerRadius; - wxString m_boxStyleName; - wxTextAttrShadow m_shadow; -}; - -/** - @class wxRichTextAttr - A class representing enhanced attributes for rich text objects. - This adds a wxTextBoxAttr member to the basic wxTextAttr class. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextAttr, wxTextBoxAttr, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextAttr: public wxTextAttr -{ -public: - /** - Constructor taking a wxTextAttr. - */ - wxRichTextAttr(const wxTextAttr& attr) { wxTextAttr::Copy(attr); } - - /** - Copy constructor. - */ - wxRichTextAttr(const wxRichTextAttr& attr): wxTextAttr() { Copy(attr); } - - /** - Default constructor. - */ - wxRichTextAttr() {} - - /** - Copy function. - */ - void Copy(const wxRichTextAttr& attr); - - /** - Assignment operator. - */ - void operator=(const wxRichTextAttr& attr) { Copy(attr); } - - /** - Assignment operator. - */ - void operator=(const wxTextAttr& attr) { wxTextAttr::Copy(attr); } - - /** - Equality test. - */ - bool operator==(const wxRichTextAttr& attr) const; - - /** - Partial equality test. If @a weakTest is @true, attributes of this object do not - have to be present if those attributes of @a attr are present. If @a weakTest is - @false, the function will fail if an attribute is present in @a attr but not - in this object. - */ - bool EqPartial(const wxRichTextAttr& attr, bool weakTest = true) const; - - /** - Merges the given attributes. If @a compareWith - is non-NULL, then it will be used to mask out those attributes that are the same in style - and @a compareWith, for situations where we don't want to explicitly set inherited attributes. - */ - bool Apply(const wxRichTextAttr& style, const wxRichTextAttr* compareWith = NULL); - - /** - Collects the attributes that are common to a range of content, building up a note of - which attributes are absent in some objects and which clash in some objects. - */ - void CollectCommonAttributes(const wxRichTextAttr& attr, wxRichTextAttr& clashingAttr, wxRichTextAttr& absentAttr); - - /** - Removes the specified attributes from this object. - */ - bool RemoveStyle(const wxRichTextAttr& attr); - - /** - Returns the text box attributes. - */ - wxTextBoxAttr& GetTextBoxAttr() { return m_textBoxAttr; } - const wxTextBoxAttr& GetTextBoxAttr() const { return m_textBoxAttr; } - - /** - Set the text box attributes. - */ - void SetTextBoxAttr(const wxTextBoxAttr& attr) { m_textBoxAttr = attr; } - - /** - Returns @true if no attributes are set. - */ - bool IsDefault() const { return (GetFlags() == 0) && m_textBoxAttr.IsDefault(); } - - wxTextBoxAttr m_textBoxAttr; -}; - -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxRichTextAttr, wxRichTextAttrArray, WXDLLIMPEXP_RICHTEXT); - -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxVariant, wxRichTextVariantArray, WXDLLIMPEXP_RICHTEXT); - -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxRect, wxRichTextRectArray, WXDLLIMPEXP_RICHTEXT); - -/** - @class wxRichTextProperties - A simple property class using wxVariants. This is used to give each rich text object the - ability to store custom properties that can be used by the application. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextBuffer, wxRichTextObject, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextProperties: public wxObject -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextProperties); -public: - - /** - Default constructor. - */ - wxRichTextProperties() {} - - /** - Copy constructor. - */ - wxRichTextProperties(const wxRichTextProperties& props): wxObject() { Copy(props); } - - /** - Assignment operator. - */ - void operator=(const wxRichTextProperties& props) { Copy(props); } - - /** - Equality operator. - */ - bool operator==(const wxRichTextProperties& props) const; - - /** - Copies from @a props. - */ - void Copy(const wxRichTextProperties& props) { m_properties = props.m_properties; } - - /** - Returns the variant at the given index. - */ - const wxVariant& operator[](size_t idx) const { return m_properties[idx]; } - - /** - Returns the variant at the given index. - */ - wxVariant& operator[](size_t idx) { return m_properties[idx]; } - - /** - Clears the properties. - */ - void Clear() { m_properties.Clear(); } - - /** - Returns the array of variants implementing the properties. - */ - const wxRichTextVariantArray& GetProperties() const { return m_properties; } - - /** - Returns the array of variants implementing the properties. - */ - wxRichTextVariantArray& GetProperties() { return m_properties; } - - /** - Sets the array of variants. - */ - void SetProperties(const wxRichTextVariantArray& props) { m_properties = props; } - - /** - Returns all the property names. - */ - wxArrayString GetPropertyNames() const; - - /** - Returns a count of the properties. - */ - size_t GetCount() const { return m_properties.GetCount(); } - - /** - Returns @true if the given property is found. - */ - bool HasProperty(const wxString& name) const { return Find(name) != -1; } - - /** - Finds the given property. - */ - int Find(const wxString& name) const; - - /** - Removes the given property. - */ - bool Remove(const wxString& name); - - /** - Gets the property variant by name. - */ - const wxVariant& GetProperty(const wxString& name) const; - - /** - Finds or creates a property with the given name, returning a pointer to the variant. - */ - wxVariant* FindOrCreateProperty(const wxString& name); - - /** - Gets the value of the named property as a string. - */ - wxString GetPropertyString(const wxString& name) const; - - /** - Gets the value of the named property as a long integer. - */ - long GetPropertyLong(const wxString& name) const; - - /** - Gets the value of the named property as a boolean. - */ - bool GetPropertyBool(const wxString& name) const; - - /** - Gets the value of the named property as a double. - */ - double GetPropertyDouble(const wxString& name) const; - - /** - Sets the property by passing a variant which contains a name and value. - */ - void SetProperty(const wxVariant& variant); - - /** - Sets a property by name and variant. - */ - void SetProperty(const wxString& name, const wxVariant& variant); - - /** - Sets a property by name and string value. - */ - void SetProperty(const wxString& name, const wxString& value); - - /** - Sets a property by name and wxChar* value. - */ - void SetProperty(const wxString& name, const wxChar* value) { SetProperty(name, wxString(value)); } - - /** - Sets property by name and long integer value. - */ - void SetProperty(const wxString& name, long value); - - /** - Sets property by name and double value. - */ - void SetProperty(const wxString& name, double value); - - /** - Sets property by name and boolean value. - */ - void SetProperty(const wxString& name, bool value); - - /** - Removes the given properties from these properties. - */ - void RemoveProperties(const wxRichTextProperties& properties); - - /** - Merges the given properties with these properties. - */ - void MergeProperties(const wxRichTextProperties& properties); - -protected: - wxRichTextVariantArray m_properties; -}; - - -/** - @class wxRichTextFontTable - Manages quick access to a pool of fonts for rendering rich text. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextFontTable: public wxObject -{ -public: - /** - Default constructor. - */ - wxRichTextFontTable(); - - /** - Copy constructor. - */ - wxRichTextFontTable(const wxRichTextFontTable& table); - virtual ~wxRichTextFontTable(); - - /** - Returns @true if the font table is valid. - */ - bool IsOk() const { return m_refData != NULL; } - - /** - Finds a font for the given attribute object. - */ - wxFont FindFont(const wxRichTextAttr& fontSpec); - - /** - Clears the font table. - */ - void Clear(); - - /** - Assignment operator. - */ - void operator= (const wxRichTextFontTable& table); - - /** - Equality operator. - */ - bool operator == (const wxRichTextFontTable& table) const; - - /** - Inequality operator. - */ - bool operator != (const wxRichTextFontTable& table) const { return !(*this == table); } - - /** - Set the font scale factor. - */ - void SetFontScale(double fontScale); - -protected: - - double m_fontScale; - - wxDECLARE_DYNAMIC_CLASS(wxRichTextFontTable); -}; - -/** - @class wxRichTextRange - - This stores beginning and end positions for a range of data. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextRange -{ -public: -// Constructors - - /** - Default constructor. - */ - wxRichTextRange() { m_start = 0; m_end = 0; } - - /** - Constructor taking start and end positions. - */ - wxRichTextRange(long start, long end) { m_start = start; m_end = end; } - - /** - Copy constructor. - */ - wxRichTextRange(const wxRichTextRange& range) { m_start = range.m_start; m_end = range.m_end; } - ~wxRichTextRange() {} - - /** - Assigns @a range to this range. - */ - void operator =(const wxRichTextRange& range) { m_start = range.m_start; m_end = range.m_end; } - - /** - Equality operator. Returns @true if @a range is the same as this range. - */ - bool operator ==(const wxRichTextRange& range) const { return (m_start == range.m_start && m_end == range.m_end); } - - /** - Inequality operator. - */ - bool operator !=(const wxRichTextRange& range) const { return (m_start != range.m_start || m_end != range.m_end); } - - /** - Subtracts a range from this range. - */ - wxRichTextRange operator -(const wxRichTextRange& range) const { return wxRichTextRange(m_start - range.m_start, m_end - range.m_end); } - - /** - Adds a range to this range. - */ - wxRichTextRange operator +(const wxRichTextRange& range) const { return wxRichTextRange(m_start + range.m_start, m_end + range.m_end); } - - /** - Sets the range start and end positions. - */ - void SetRange(long start, long end) { m_start = start; m_end = end; } - - /** - Sets the start position. - */ - void SetStart(long start) { m_start = start; } - - /** - Returns the start position. - */ - long GetStart() const { return m_start; } - - /** - Sets the end position. - */ - void SetEnd(long end) { m_end = end; } - - /** - Gets the end position. - */ - long GetEnd() const { return m_end; } - - /** - Returns true if this range is completely outside @a range. - */ - bool IsOutside(const wxRichTextRange& range) const { return range.m_start > m_end || range.m_end < m_start; } - - /** - Returns true if this range is completely within @a range. - */ - bool IsWithin(const wxRichTextRange& range) const { return m_start >= range.m_start && m_end <= range.m_end; } - - /** - Returns true if @a pos was within the range. Does not match if the range is empty. - */ - bool Contains(long pos) const { return pos >= m_start && pos <= m_end ; } - - /** - Limit this range to be within @a range. - */ - bool LimitTo(const wxRichTextRange& range) ; - - /** - Gets the length of the range. - */ - long GetLength() const { return m_end - m_start + 1; } - - /** - Swaps the start and end. - */ - void Swap() { long tmp = m_start; m_start = m_end; m_end = tmp; } - - /** - Converts the API-standard range, whose end is one past the last character in - the range, to the internal form, which uses the first and last character - positions of the range. In other words, one is subtracted from the end position. - (n, n) is the range of a single character. - */ - wxRichTextRange ToInternal() const { return wxRichTextRange(m_start, m_end-1); } - - /** - Converts the internal range, which uses the first and last character positions - of the range, to the API-standard range, whose end is one past the last - character in the range. In other words, one is added to the end position. - (n, n+1) is the range of a single character. - */ - wxRichTextRange FromInternal() const { return wxRichTextRange(m_start, m_end+1); } - -protected: - long m_start; - long m_end; -}; - -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxRichTextRange, wxRichTextRangeArray, WXDLLIMPEXP_RICHTEXT); - -#define wxRICHTEXT_ALL wxRichTextRange(-2, -2) -#define wxRICHTEXT_NONE wxRichTextRange(-1, -1) - -#define wxRICHTEXT_NO_SELECTION wxRichTextRange(-2, -2) - -/** - @class wxRichTextSelection - - Stores selection information. The selection does not have to be contiguous, though currently non-contiguous - selections are only supported for a range of table cells (a geometric block of cells can consist - of a set of non-contiguous positions). - - The selection consists of an array of ranges, and the container that is the context for the selection. It - follows that a single selection object can only represent ranges with the same parent container. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextSelection -{ -public: - /** - Copy constructor. - */ - wxRichTextSelection(const wxRichTextSelection& sel) { Copy(sel); } - - /** - Creates a selection from a range and a container. - */ - wxRichTextSelection(const wxRichTextRange& range, wxRichTextParagraphLayoutBox* container) { m_ranges.Add(range); m_container = container; } - - /** - Default constructor. - */ - wxRichTextSelection() { Reset(); } - - /** - Resets the selection. - */ - void Reset() { m_ranges.Clear(); m_container = NULL; } - - /** - Sets the selection. - */ - - void Set(const wxRichTextRange& range, wxRichTextParagraphLayoutBox* container) - { m_ranges.Clear(); m_ranges.Add(range); m_container = container; } - - /** - Adds a range to the selection. - */ - void Add(const wxRichTextRange& range) - { m_ranges.Add(range); } - - /** - Sets the selections from an array of ranges and a container object. - */ - void Set(const wxRichTextRangeArray& ranges, wxRichTextParagraphLayoutBox* container) - { m_ranges = ranges; m_container = container; } - - /** - Copies from @a sel. - */ - void Copy(const wxRichTextSelection& sel) - { m_ranges = sel.m_ranges; m_container = sel.m_container; } - - /** - Assignment operator. - */ - void operator=(const wxRichTextSelection& sel) { Copy(sel); } - - /** - Equality operator. - */ - bool operator==(const wxRichTextSelection& sel) const; - - /** - Index operator. - */ - wxRichTextRange operator[](size_t i) const { return GetRange(i); } - - /** - Returns the selection ranges. - */ - wxRichTextRangeArray& GetRanges() { return m_ranges; } - - /** - Returns the selection ranges. - */ - const wxRichTextRangeArray& GetRanges() const { return m_ranges; } - - /** - Sets the selection ranges. - */ - void SetRanges(const wxRichTextRangeArray& ranges) { m_ranges = ranges; } - - /** - Returns the number of ranges in the selection. - */ - size_t GetCount() const { return m_ranges.GetCount(); } - - /** - Returns the range at the given index. - - */ - wxRichTextRange GetRange(size_t i) const { return m_ranges[i]; } - - /** - Returns the first range if there is one, otherwise wxRICHTEXT_NO_SELECTION. - */ - wxRichTextRange GetRange() const { return (m_ranges.GetCount() > 0) ? (m_ranges[0]) : wxRICHTEXT_NO_SELECTION; } - - /** - Sets a single range. - */ - void SetRange(const wxRichTextRange& range) { m_ranges.Clear(); m_ranges.Add(range); } - - /** - Returns the container for which the selection is valid. - */ - wxRichTextParagraphLayoutBox* GetContainer() const { return m_container; } - - /** - Sets the container for which the selection is valid. - */ - void SetContainer(wxRichTextParagraphLayoutBox* container) { m_container = container; } - - /** - Returns @true if the selection is valid. - */ - bool IsValid() const { return m_ranges.GetCount() > 0 && GetContainer(); } - - /** - Returns the selection appropriate to the specified object, if any; returns an empty array if none - at the level of the object's container. - */ - wxRichTextRangeArray GetSelectionForObject(wxRichTextObject* obj) const; - - /** - Returns @true if the given position is within the selection. - */ - bool WithinSelection(long pos, wxRichTextObject* obj) const; - - /** - Returns @true if the given position is within the selection. - - */ - bool WithinSelection(long pos) const { return WithinSelection(pos, m_ranges); } - - /** - Returns @true if the given position is within the selection range. - */ - static bool WithinSelection(long pos, const wxRichTextRangeArray& ranges); - - /** - Returns @true if the given range is within the selection range. - */ - static bool WithinSelection(const wxRichTextRange& range, const wxRichTextRangeArray& ranges); - - wxRichTextRangeArray m_ranges; - wxRichTextParagraphLayoutBox* m_container; -}; - -/** - @class wxRichTextDrawingContext - - A class for passing information to drawing and measuring functions. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextDrawingContext: public wxObject -{ - wxDECLARE_CLASS(wxRichTextDrawingContext); -public: - - /** - Pass the buffer to the context so the context can retrieve information - such as virtual attributes. - */ - wxRichTextDrawingContext(wxRichTextBuffer* buffer); - - void Init() - { m_buffer = NULL; m_enableVirtualAttributes = true; m_enableImages = true; m_layingOut = false; m_enableDelayedImageLoading = false; } - - /** - Does this object have virtual attributes? - Virtual attributes can be provided for visual cues without - affecting the actual styling. - */ - bool HasVirtualAttributes(wxRichTextObject* obj) const; - - /** - Returns the virtual attributes for this object. - Virtual attributes can be provided for visual cues without - affecting the actual styling. - */ - wxRichTextAttr GetVirtualAttributes(wxRichTextObject* obj) const; - - /** - Applies any virtual attributes relevant to this object. - */ - bool ApplyVirtualAttributes(wxRichTextAttr& attr, wxRichTextObject* obj) const; - - /** - Gets the count for mixed virtual attributes for individual positions within the object. - For example, individual characters within a text object may require special highlighting. - */ - int GetVirtualSubobjectAttributesCount(wxRichTextObject* obj) const; - - /** - Gets the mixed virtual attributes for individual positions within the object. - For example, individual characters within a text object may require special highlighting. - The function is passed the count returned by GetVirtualSubobjectAttributesCount. - */ - int GetVirtualSubobjectAttributes(wxRichTextObject* obj, wxArrayInt& positions, wxRichTextAttrArray& attributes) const; - - /** - Do we have virtual text for this object? Virtual text allows an application - to replace characters in an object for editing and display purposes, for example - for highlighting special characters. - */ - bool HasVirtualText(const wxRichTextPlainText* obj) const; - - /** - Gets the virtual text for this object. - */ - bool GetVirtualText(const wxRichTextPlainText* obj, wxString& text) const; - - /** - Enables virtual attribute processing. - */ - - void EnableVirtualAttributes(bool b) { m_enableVirtualAttributes = b; } - - /** - Returns @true if virtual attribute processing is enabled. - */ - - bool GetVirtualAttributesEnabled() const { return m_enableVirtualAttributes; } - - /** - Enable or disable images - */ - - void EnableImages(bool b) { m_enableImages = b; } - - /** - Returns @true if images are enabled. - */ - - bool GetImagesEnabled() const { return m_enableImages; } - - /** - Set laying out flag - */ - - void SetLayingOut(bool b) { m_layingOut = b; } - - /** - Returns @true if laying out. - */ - - bool GetLayingOut() const { return m_layingOut; } - - /** - Enable or disable delayed image loading - */ - - void EnableDelayedImageLoading(bool b) { m_enableDelayedImageLoading = b; } - - /** - Returns @true if delayed image loading is enabled. - */ - - bool GetDelayedImageLoading() const { return m_enableDelayedImageLoading; } - - /** - Returns the buffer pointer. - */ - - wxRichTextBuffer* GetBuffer() const { return m_buffer; } - - wxRichTextBuffer* m_buffer; - bool m_enableVirtualAttributes; - bool m_enableImages; - bool m_enableDelayedImageLoading; - bool m_layingOut; -}; - -/** - @class wxRichTextObject - - This is the base for drawable rich text objects. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextObject: public wxObject -{ - wxDECLARE_CLASS(wxRichTextObject); -public: - /** - Constructor, taking an optional parent pointer. - */ - wxRichTextObject(wxRichTextObject* parent = NULL); - - virtual ~wxRichTextObject(); - -// Overridables - - /** - Draw the item, within the given range. Some objects may ignore the range (for - example paragraphs) while others must obey it (lines, to implement wrapping) - */ - virtual bool Draw(wxDC& dc, wxRichTextDrawingContext& context, const wxRichTextRange& range, const wxRichTextSelection& selection, const wxRect& rect, int descent, int style) = 0; - - /** - Lay the item out at the specified position with the given size constraint. - Layout must set the cached size. @rect is the available space for the object, - and @a parentRect is the container that is used to determine a relative size - or position (for example if a text box must be 50% of the parent text box). - */ - virtual bool Layout(wxDC& dc, wxRichTextDrawingContext& context, const wxRect& rect, const wxRect& parentRect, int style) = 0; - - /** - Hit-testing: returns a flag indicating hit test details, plus - information about position. @a contextObj is returned to specify what object - position is relevant to, since otherwise there's an ambiguity. - @ obj might not be a child of @a contextObj, since we may be referring to the container itself - if we have no hit on a child - for example if we click outside an object. - - The function puts the position in @a textPosition if one is found. - @a pt is in logical units (a zero y position is at the beginning of the buffer). - - Pass wxRICHTEXT_HITTEST_NO_NESTED_OBJECTS if you only want to consider objects - directly under the object you are calling HitTest on. Otherwise, it will recurse - and potentially find a nested object. - - @return One of the ::wxRichTextHitTestFlags values. - */ - - virtual int HitTest(wxDC& dc, wxRichTextDrawingContext& context, const wxPoint& pt, long& textPosition, wxRichTextObject** obj, wxRichTextObject** contextObj, int flags = 0); - - /** - Finds the absolute position and row height for the given character position. - */ - virtual bool FindPosition(wxDC& WXUNUSED(dc), wxRichTextDrawingContext& WXUNUSED(context), long WXUNUSED(index), wxPoint& WXUNUSED(pt), int* WXUNUSED(height), bool WXUNUSED(forceLineStart)) { return false; } - - /** - Returns the best size, i.e. the ideal starting size for this object irrespective - of available space. For a short text string, it will be the size that exactly encloses - the text. For a longer string, it might use the parent width for example. - */ - virtual wxSize GetBestSize() const { return m_size; } - - /** - Returns the object size for the given range. Returns @false if the range - is invalid for this object. - */ - - virtual bool GetRangeSize(const wxRichTextRange& range, wxSize& size, int& descent, wxDC& dc, wxRichTextDrawingContext& context, int flags, const wxPoint& position = wxPoint(0,0), const wxSize& parentSize = wxDefaultSize, wxArrayInt* partialExtents = NULL) const = 0; - - /** - Do a split from @a pos, returning an object containing the second part, and setting - the first part in 'this'. - */ - virtual wxRichTextObject* DoSplit(long WXUNUSED(pos)) { return NULL; } - - /** - Calculates the range of the object. By default, guess that the object is 1 unit long. - */ - virtual void CalculateRange(long start, long& end) { end = start ; m_range.SetRange(start, end); } - - /** - Deletes the given range. - */ - virtual bool DeleteRange(const wxRichTextRange& WXUNUSED(range)) { return false; } - - /** - Returns @true if the object is empty. - */ - virtual bool IsEmpty() const { return false; } - - /** - Returns @true if this class of object is floatable. - */ - virtual bool IsFloatable() const { return false; } - - /** - Returns @true if this object is currently floating. - */ - virtual bool IsFloating() const { return GetAttributes().GetTextBoxAttr().IsFloating(); } - - /** - Returns the floating direction. - */ - virtual int GetFloatDirection() const { return GetAttributes().GetTextBoxAttr().GetFloatMode(); } - - /** - Returns any text in this object for the given range. - */ - virtual wxString GetTextForRange(const wxRichTextRange& WXUNUSED(range)) const { return wxEmptyString; } - - /** - Returns @true if this object can merge itself with the given one. - */ - virtual bool CanMerge(wxRichTextObject* WXUNUSED(object), wxRichTextDrawingContext& WXUNUSED(context)) const { return false; } - - /** - Returns @true if this object merged itself with the given one. - The calling code will then delete the given object. - */ - virtual bool Merge(wxRichTextObject* WXUNUSED(object), wxRichTextDrawingContext& WXUNUSED(context)) { return false; } - - /** - Returns @true if this object can potentially be split, by virtue of having - different virtual attributes for individual sub-objects. - */ - virtual bool CanSplit(wxRichTextDrawingContext& WXUNUSED(context)) const { return false; } - - /** - Returns the final object in the split objects if this object was split due to differences between sub-object virtual attributes. - Returns itself if it was not split. - */ - virtual wxRichTextObject* Split(wxRichTextDrawingContext& WXUNUSED(context)) { return this; } - - /** - Dump object data to the given output stream for debugging. - */ - virtual void Dump(wxTextOutputStream& stream); - - /** - Returns @true if we can edit the object's properties via a GUI. - */ - virtual bool CanEditProperties() const { return false; } - - /** - Edits the object's properties via a GUI. - */ - virtual bool EditProperties(wxWindow* WXUNUSED(parent), wxRichTextBuffer* WXUNUSED(buffer)) { return false; } - - /** - Returns the label to be used for the properties context menu item. - */ - virtual wxString GetPropertiesMenuLabel() const { return wxEmptyString; } - - /** - Returns @true if objects of this class can accept the focus, i.e. a call to SetFocusObject - is possible. For example, containers supporting text, such as a text box object, can accept the focus, - but a table can't (set the focus to individual cells instead). - */ - virtual bool AcceptsFocus() const { return false; } - -#if wxUSE_XML - /** - Imports this object from XML. - */ - virtual bool ImportFromXML(wxRichTextBuffer* buffer, wxXmlNode* node, wxRichTextXMLHandler* handler, bool* recurse); -#endif - -#if wxRICHTEXT_HAVE_DIRECT_OUTPUT - /** - Exports this object directly to the given stream, bypassing the creation of a wxXmlNode hierarchy. - This method is considerably faster than creating a tree first. However, both versions of ExportXML must be - implemented so that if the tree method is made efficient in the future, we can deprecate the - more verbose direct output method. Compiled only if wxRICHTEXT_HAVE_DIRECT_OUTPUT is defined (on by default). - */ - virtual bool ExportXML(wxOutputStream& stream, int indent, wxRichTextXMLHandler* handler); -#endif - -#if wxRICHTEXT_HAVE_XMLDOCUMENT_OUTPUT - /** - Exports this object to the given parent node, usually creating at least one child node. - This method is less efficient than the direct-to-stream method but is retained to allow for - switching to this method if we make it more efficient. Compiled only if wxRICHTEXT_HAVE_XMLDOCUMENT_OUTPUT is defined - (on by default). - */ - virtual bool ExportXML(wxXmlNode* parent, wxRichTextXMLHandler* handler); -#endif - - /** - Returns @true if this object takes note of paragraph attributes (text and image objects don't). - */ - virtual bool UsesParagraphAttributes() const { return true; } - - /** - Returns the XML node name of this object. This must be overridden for wxXmlNode-base XML export to work. - */ - virtual wxString GetXMLNodeName() const { return wxT("unknown"); } - - /** - Invalidates the object at the given range. With no argument, invalidates the whole object. - */ - virtual void Invalidate(const wxRichTextRange& invalidRange = wxRICHTEXT_ALL); - - /** - Returns @true if this object can handle the selections of its children, fOr example a table. - Required for composite selection handling to work. - */ - virtual bool HandlesChildSelections() const { return false; } - - /** - Returns a selection object specifying the selections between start and end character positions. - For example, a table would deduce what cells (of range length 1) are selected when dragging across the table. - */ - virtual wxRichTextSelection GetSelection(long WXUNUSED(start), long WXUNUSED(end)) const { return wxRichTextSelection(); } - -// Accessors - - /** - Gets the cached object size as calculated by Layout. - */ - virtual wxSize GetCachedSize() const { return m_size; } - - /** - Sets the cached object size as calculated by Layout. - */ - virtual void SetCachedSize(const wxSize& sz) { m_size = sz; } - - /** - Gets the maximum object size as calculated by Layout. This allows - us to fit an object to its contents or allocate extra space if required. - */ - virtual wxSize GetMaxSize() const { return m_maxSize; } - - /** - Sets the maximum object size as calculated by Layout. This allows - us to fit an object to its contents or allocate extra space if required. - */ - virtual void SetMaxSize(const wxSize& sz) { m_maxSize = sz; } - - /** - Gets the minimum object size as calculated by Layout. This allows - us to constrain an object to its absolute minimum size if necessary. - */ - virtual wxSize GetMinSize() const { return m_minSize; } - - /** - Sets the minimum object size as calculated by Layout. This allows - us to constrain an object to its absolute minimum size if necessary. - */ - virtual void SetMinSize(const wxSize& sz) { m_minSize = sz; } - - /** - Gets the 'natural' size for an object. For an image, it would be the - image size. - */ - virtual wxTextAttrSize GetNaturalSize() const { return wxTextAttrSize(); } - - /** - Returns the object position in pixels. - */ - virtual wxPoint GetPosition() const { return m_pos; } - - /** - Sets the object position in pixels. - */ - virtual void SetPosition(const wxPoint& pos) { m_pos = pos; } - - /** - Returns the absolute object position, by traversing up the child/parent hierarchy. - TODO: may not be needed, if all object positions are in fact relative to the - top of the coordinate space. - */ - virtual wxPoint GetAbsolutePosition() const; - - /** - Returns the rectangle enclosing the object. - */ - virtual wxRect GetRect() const { return wxRect(GetPosition(), GetCachedSize()); } - - /** - Sets the object's range within its container. - */ - void SetRange(const wxRichTextRange& range) { m_range = range; } - - /** - Returns the object's range. - */ - const wxRichTextRange& GetRange() const { return m_range; } - - /** - Returns the object's range. - */ - wxRichTextRange& GetRange() { return m_range; } - - /** - Set the object's own range, for a top-level object with its own position space. - */ - void SetOwnRange(const wxRichTextRange& range) { m_ownRange = range; } - - /** - Returns the object's own range (valid if top-level). - */ - const wxRichTextRange& GetOwnRange() const { return m_ownRange; } - - /** - Returns the object's own range (valid if top-level). - */ - wxRichTextRange& GetOwnRange() { return m_ownRange; } - - /** - Returns the object's own range only if a top-level object. - */ - wxRichTextRange GetOwnRangeIfTopLevel() const { return IsTopLevel() ? m_ownRange : m_range; } - - /** - Returns @true if this object is composite. - */ - virtual bool IsComposite() const { return false; } - - /** - Returns @true if no user editing can be done inside the object. This returns @true for simple objects, - @false for most composite objects, but @true for fields, which if composite, should not be user-edited. - */ - virtual bool IsAtomic() const { return true; } - - /** - Returns a pointer to the parent object. - */ - virtual wxRichTextObject* GetParent() const { return m_parent; } - - /** - Sets the pointer to the parent object. - */ - virtual void SetParent(wxRichTextObject* parent) { m_parent = parent; } - - /** - Returns the top-level container of this object. - May return itself if it's a container; use GetParentContainer to return - a different container. - */ - virtual wxRichTextParagraphLayoutBox* GetContainer() const; - - /** - Returns the top-level container of this object. - Returns a different container than itself, unless there's no parent, in which case it will return NULL. - */ - virtual wxRichTextParagraphLayoutBox* GetParentContainer() const { return GetParent() ? GetParent()->GetContainer() : GetContainer(); } - - /** - Set the margin around the object, in pixels. - */ - virtual void SetMargins(int margin); - - /** - Set the margin around the object, in pixels. - */ - virtual void SetMargins(int leftMargin, int rightMargin, int topMargin, int bottomMargin); - - /** - Returns the left margin of the object, in pixels. - */ - virtual int GetLeftMargin() const; - - /** - Returns the right margin of the object, in pixels. - */ - virtual int GetRightMargin() const; - - /** - Returns the top margin of the object, in pixels. - */ - virtual int GetTopMargin() const; - - /** - Returns the bottom margin of the object, in pixels. - */ - virtual int GetBottomMargin() const; - - /** - Calculates the available content space in the given rectangle, given the - margins, border and padding specified in the object's attributes. - */ - virtual wxRect GetAvailableContentArea(wxDC& dc, wxRichTextDrawingContext& context, const wxRect& outerRect) const; - - /** - Lays out the object first with a given amount of space, and then if no width was specified in attr, - lays out the object again using the minimum size. @a availableParentSpace is the maximum space - for the object, whereas @a availableContainerSpace is the container with which relative positions and - sizes should be computed. For example, a text box whose space has already been constrained - in a previous layout pass to @a availableParentSpace, but should have a width of 50% of @a availableContainerSpace. - (If these two rects were the same, a 2nd pass could see the object getting too small.) - */ - virtual bool LayoutToBestSize(wxDC& dc, wxRichTextDrawingContext& context, wxRichTextBuffer* buffer, - const wxRichTextAttr& parentAttr, const wxRichTextAttr& attr, - const wxRect& availableParentSpace, const wxRect& availableContainerSpace, int style); - - /** - Adjusts the attributes for virtual attribute provision, collapsed borders, etc. - */ - virtual bool AdjustAttributes(wxRichTextAttr& attr, wxRichTextDrawingContext& context); - - /** - Sets the object's attributes. - */ - void SetAttributes(const wxRichTextAttr& attr) { m_attributes = attr; } - - /** - Returns the object's attributes. - */ - const wxRichTextAttr& GetAttributes() const { return m_attributes; } - - /** - Returns the object's attributes. - */ - wxRichTextAttr& GetAttributes() { return m_attributes; } - - /** - Returns the object's properties. - */ - wxRichTextProperties& GetProperties() { return m_properties; } - - /** - Returns the object's properties. - */ - const wxRichTextProperties& GetProperties() const { return m_properties; } - - /** - Sets the object's properties. - */ - void SetProperties(const wxRichTextProperties& props) { m_properties = props; } - - /** - Sets the stored descent value. - */ - void SetDescent(int descent) { m_descent = descent; } - - /** - Returns the stored descent value. - */ - int GetDescent() const { return m_descent; } - - /** - Returns the containing buffer. - */ - wxRichTextBuffer* GetBuffer() const; - - /** - Sets the identifying name for this object as a property using the "name" key. - */ - void SetName(const wxString& name) { m_properties.SetProperty(wxT("name"), name); } - - /** - Returns the identifying name for this object from the properties, using the "name" key. - */ - wxString GetName() const { return m_properties.GetPropertyString(wxT("name")); } - - /** - Returns @true if this object is top-level, i.e. contains its own paragraphs, such as a text box. - */ - virtual bool IsTopLevel() const { return false; } - - /** - Returns @true if the object will be shown, @false otherwise. - */ - bool IsShown() const { return m_show; } - -// Operations - - /** - Call to show or hide this object. This function does not cause the content to be - laid out or redrawn. - */ - virtual void Show(bool show) { m_show = show; } - - /** - Clones the object. - */ - virtual wxRichTextObject* Clone() const { return NULL; } - - /** - Copies the object. - */ - void Copy(const wxRichTextObject& obj); - - /** - Reference-counting allows us to use the same object in multiple - lists (not yet used). - */ - - void Reference() { m_refCount ++; } - - /** - Reference-counting allows us to use the same object in multiple - lists (not yet used). - */ - void Dereference(); - - /** - Moves the object recursively, by adding the offset from old to new. - */ - virtual void Move(const wxPoint& pt); - - /** - Converts units in tenths of a millimetre to device units. - */ - int ConvertTenthsMMToPixels(wxDC& dc, int units) const; - - /** - Converts units in tenths of a millimetre to device units. - */ - static int ConvertTenthsMMToPixels(int ppi, int units, double scale = 1.0); - - /** - Convert units in pixels to tenths of a millimetre. - */ - int ConvertPixelsToTenthsMM(wxDC& dc, int pixels) const; - - /** - Convert units in pixels to tenths of a millimetre. - */ - static int ConvertPixelsToTenthsMM(int ppi, int pixels, double scale = 1.0); - - /** - Draws the borders and background for the given rectangle and attributes. - @a boxRect is taken to be the outer margin box, not the box around the content. - */ - static bool DrawBoxAttributes(wxDC& dc, wxRichTextBuffer* buffer, const wxRichTextAttr& attr, const wxRect& boxRect, int flags = 0, wxRichTextObject* obj = NULL); - - /** - Draws a border. - */ - static bool DrawBorder(wxDC& dc, wxRichTextBuffer* buffer, const wxRichTextAttr& attr, const wxTextAttrBorders& borders, const wxRect& rect, int flags = 0); - - /** - Returns the various rectangles of the box model in pixels. You can either specify @a contentRect (inner) - or @a marginRect (outer), and the other must be the default rectangle (no width or height). - Note that the outline doesn't affect the position of the rectangle, it's drawn in whatever space - is available. - */ - static bool GetBoxRects(wxDC& dc, wxRichTextBuffer* buffer, const wxRichTextAttr& attr, wxRect& marginRect, wxRect& borderRect, wxRect& contentRect, wxRect& paddingRect, wxRect& outlineRect); - - /** - Returns the total margin for the object in pixels, taking into account margin, padding and border size. - */ - static bool GetTotalMargin(wxDC& dc, wxRichTextBuffer* buffer, const wxRichTextAttr& attr, int& leftMargin, int& rightMargin, - int& topMargin, int& bottomMargin); - - /** - Returns the rectangle which the child has available to it given restrictions specified in the - child attribute, e.g. 50% width of the parent, 400 pixels, x position 20% of the parent, etc. - availableContainerSpace might be a parent that the cell has to compute its width relative to. - E.g. a cell that's 50% of its parent. - */ - static wxRect AdjustAvailableSpace(wxDC& dc, wxRichTextBuffer* buffer, const wxRichTextAttr& parentAttr, const wxRichTextAttr& childAttr, - const wxRect& availableParentSpace, const wxRect& availableContainerSpace); - -protected: - wxSize m_size; - wxSize m_maxSize; - wxSize m_minSize; - wxPoint m_pos; - int m_descent; // Descent for this object (if any) - int m_refCount; - bool m_show; - wxRichTextObject* m_parent; - - // The range of this object (start position to end position) - wxRichTextRange m_range; - - // The internal range of this object, if it's a top-level object with its own range space - wxRichTextRange m_ownRange; - - // Attributes - wxRichTextAttr m_attributes; - - // Properties - wxRichTextProperties m_properties; -}; - -WX_DECLARE_LIST_WITH_DECL( wxRichTextObject, wxRichTextObjectList, class WXDLLIMPEXP_RICHTEXT ); - -/** - @class wxRichTextCompositeObject - - Objects of this class can contain other objects. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextObject, wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextCompositeObject: public wxRichTextObject -{ - wxDECLARE_CLASS(wxRichTextCompositeObject); -public: -// Constructors - - wxRichTextCompositeObject(wxRichTextObject* parent = NULL); - virtual ~wxRichTextCompositeObject(); - -// Overridables - - virtual int HitTest(wxDC& dc, wxRichTextDrawingContext& context, const wxPoint& pt, long& textPosition, wxRichTextObject** obj, wxRichTextObject** contextObj, int flags = 0) wxOVERRIDE; - - virtual bool FindPosition(wxDC& dc, wxRichTextDrawingContext& context, long index, wxPoint& pt, int* height, bool forceLineStart) wxOVERRIDE; - - virtual void CalculateRange(long start, long& end) wxOVERRIDE; - - virtual bool DeleteRange(const wxRichTextRange& range) wxOVERRIDE; - - virtual wxString GetTextForRange(const wxRichTextRange& range) const wxOVERRIDE; - - virtual bool GetRangeSize(const wxRichTextRange& range, wxSize& size, int& descent, wxDC& dc, wxRichTextDrawingContext& context, int flags, const wxPoint& position = wxPoint(0,0), const wxSize& parentSize = wxDefaultSize, wxArrayInt* partialExtents = NULL) const wxOVERRIDE; - - virtual void Dump(wxTextOutputStream& stream) wxOVERRIDE; - - virtual void Invalidate(const wxRichTextRange& invalidRange = wxRICHTEXT_ALL) wxOVERRIDE; - -// Accessors - - /** - Returns the children. - */ - wxRichTextObjectList& GetChildren() { return m_children; } - /** - Returns the children. - */ - const wxRichTextObjectList& GetChildren() const { return m_children; } - - /** - Returns the number of children. - */ - size_t GetChildCount() const ; - - /** - Returns the nth child. - */ - wxRichTextObject* GetChild(size_t n) const ; - - /** - Returns @true if this object is composite. - */ - virtual bool IsComposite() const wxOVERRIDE { return true; } - - /** - Returns @true if no user editing can be done inside the object. This returns @true for simple objects, - @false for most composite objects, but @true for fields, which if composite, should not be user-edited. - */ - virtual bool IsAtomic() const wxOVERRIDE { return false; } - - /** - Returns true if the buffer is empty. - */ - virtual bool IsEmpty() const wxOVERRIDE { return GetChildCount() == 0; } - - /** - Returns the child object at the given character position. - */ - virtual wxRichTextObject* GetChildAtPosition(long pos) const; - -// Operations - - void Copy(const wxRichTextCompositeObject& obj); - - void operator= (const wxRichTextCompositeObject& obj) { Copy(obj); } - - /** - Appends a child, returning the position. - */ - size_t AppendChild(wxRichTextObject* child) ; - - /** - Inserts the child in front of the given object, or at the beginning. - */ - bool InsertChild(wxRichTextObject* child, wxRichTextObject* inFrontOf) ; - - /** - Removes and optionally deletes the specified child. - */ - bool RemoveChild(wxRichTextObject* child, bool deleteChild = false) ; - - /** - Deletes all the children. - */ - bool DeleteChildren() ; - - /** - Recursively merges all pieces that can be merged. - */ - bool Defragment(wxRichTextDrawingContext& context, const wxRichTextRange& range = wxRICHTEXT_ALL); - - /** - Moves the object recursively, by adding the offset from old to new. - */ - virtual void Move(const wxPoint& pt) wxOVERRIDE; - -protected: - wxRichTextObjectList m_children; -}; - -/** - @class wxRichTextParagraphLayoutBox - - This class knows how to lay out paragraphs. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextCompositeObject, wxRichTextObject, wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextParagraphLayoutBox: public wxRichTextCompositeObject -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextParagraphLayoutBox); -public: -// Constructors - - wxRichTextParagraphLayoutBox(wxRichTextObject* parent = NULL); - wxRichTextParagraphLayoutBox(const wxRichTextParagraphLayoutBox& obj): wxRichTextCompositeObject() { Init(); Copy(obj); } - ~wxRichTextParagraphLayoutBox(); - -// Overridables - - virtual int HitTest(wxDC& dc, wxRichTextDrawingContext& context, const wxPoint& pt, long& textPosition, wxRichTextObject** obj, wxRichTextObject** contextObj, int flags = 0) wxOVERRIDE; - - virtual bool Draw(wxDC& dc, wxRichTextDrawingContext& context, const wxRichTextRange& range, const wxRichTextSelection& selection, const wxRect& rect, int descent, int style) wxOVERRIDE; - - virtual bool Layout(wxDC& dc, wxRichTextDrawingContext& context, const wxRect& rect, const wxRect& parentRect, int style) wxOVERRIDE; - - virtual bool GetRangeSize(const wxRichTextRange& range, wxSize& size, int& descent, wxDC& dc, wxRichTextDrawingContext& context, int flags, const wxPoint& position = wxPoint(0,0), const wxSize& parentSize = wxDefaultSize, wxArrayInt* partialExtents = NULL) const wxOVERRIDE; - - virtual bool DeleteRange(const wxRichTextRange& range) wxOVERRIDE; - - virtual wxString GetTextForRange(const wxRichTextRange& range) const wxOVERRIDE; - -#if wxUSE_XML - virtual bool ImportFromXML(wxRichTextBuffer* buffer, wxXmlNode* node, wxRichTextXMLHandler* handler, bool* recurse) wxOVERRIDE; -#endif - -#if wxRICHTEXT_HAVE_DIRECT_OUTPUT - virtual bool ExportXML(wxOutputStream& stream, int indent, wxRichTextXMLHandler* handler) wxOVERRIDE; -#endif - -#if wxRICHTEXT_HAVE_XMLDOCUMENT_OUTPUT - virtual bool ExportXML(wxXmlNode* parent, wxRichTextXMLHandler* handler) wxOVERRIDE; -#endif - - virtual wxString GetXMLNodeName() const wxOVERRIDE { return wxT("paragraphlayout"); } - - virtual bool AcceptsFocus() const wxOVERRIDE { return true; } - -// Accessors - - /** - Associates a control with the buffer, for operations that for example require refreshing the window. - */ - void SetRichTextCtrl(wxRichTextCtrl* ctrl) { m_ctrl = ctrl; } - - /** - Returns the associated control. - */ - wxRichTextCtrl* GetRichTextCtrl() const { return m_ctrl; } - - /** - Sets a flag indicating whether the last paragraph is partial or complete. - */ - void SetPartialParagraph(bool partialPara) { m_partialParagraph = partialPara; } - - /** - Returns a flag indicating whether the last paragraph is partial or complete. - */ - bool GetPartialParagraph() const { return m_partialParagraph; } - - /** - Returns the style sheet associated with the overall buffer. - */ - virtual wxRichTextStyleSheet* GetStyleSheet() const; - - virtual bool IsTopLevel() const wxOVERRIDE { return true; } - -// Operations - - /** - Submits a command to insert paragraphs. - */ - bool InsertParagraphsWithUndo(wxRichTextBuffer* buffer, long pos, const wxRichTextParagraphLayoutBox& paragraphs, wxRichTextCtrl* ctrl, int flags = 0); - - /** - Submits a command to insert the given text. - */ - bool InsertTextWithUndo(wxRichTextBuffer* buffer, long pos, const wxString& text, wxRichTextCtrl* ctrl, int flags = 0); - - /** - Submits a command to insert the given text. - */ - bool InsertNewlineWithUndo(wxRichTextBuffer* buffer, long pos, wxRichTextCtrl* ctrl, int flags = 0); - - /** - Submits a command to insert the given image. - */ - bool InsertImageWithUndo(wxRichTextBuffer* buffer, long pos, const wxRichTextImageBlock& imageBlock, - wxRichTextCtrl* ctrl, int flags, const wxRichTextAttr& textAttr); - - /** - Submits a command to insert the given field. Field data can be included in properties. - - @see wxRichTextField, wxRichTextFieldType, wxRichTextFieldTypeStandard - */ - wxRichTextField* InsertFieldWithUndo(wxRichTextBuffer* buffer, long pos, const wxString& fieldType, - const wxRichTextProperties& properties, - wxRichTextCtrl* ctrl, int flags, - const wxRichTextAttr& textAttr); - - /** - Returns the style that is appropriate for a new paragraph at this position. - If the previous paragraph has a paragraph style name, looks up the next-paragraph - style. - */ - wxRichTextAttr GetStyleForNewParagraph(wxRichTextBuffer* buffer, long pos, bool caretPosition = false, bool lookUpNewParaStyle=false) const; - - /** - Inserts an object. - */ - wxRichTextObject* InsertObjectWithUndo(wxRichTextBuffer* buffer, long pos, wxRichTextObject *object, wxRichTextCtrl* ctrl, int flags = 0); - - /** - Submits a command to delete this range. - */ - bool DeleteRangeWithUndo(const wxRichTextRange& range, wxRichTextCtrl* ctrl, wxRichTextBuffer* buffer); - - /** - Draws the floating objects in this buffer. - */ - void DrawFloats(wxDC& dc, wxRichTextDrawingContext& context, const wxRichTextRange& range, const wxRichTextSelection& selection, const wxRect& rect, int descent, int style); - - /** - Moves an anchored object to another paragraph. - */ - void MoveAnchoredObjectToParagraph(wxRichTextParagraph* from, wxRichTextParagraph* to, wxRichTextObject* obj); - - /** - Initializes the object. - */ - void Init(); - - /** - Clears all the children. - */ - virtual void Clear(); - - /** - Clears and initializes with one blank paragraph. - */ - virtual void Reset(); - - /** - Convenience function to add a paragraph of text. - */ - virtual wxRichTextRange AddParagraph(const wxString& text, wxRichTextAttr* paraStyle = NULL); - - /** - Convenience function to add an image. - */ - virtual wxRichTextRange AddImage(const wxImage& image, wxRichTextAttr* paraStyle = NULL); - - /** - Adds multiple paragraphs, based on newlines. - */ - virtual wxRichTextRange AddParagraphs(const wxString& text, wxRichTextAttr* paraStyle = NULL); - - /** - Returns the line at the given position. If @a caretPosition is true, the position is - a caret position, which is normally a smaller number. - */ - virtual wxRichTextLine* GetLineAtPosition(long pos, bool caretPosition = false) const; - - /** - Returns the line at the given y pixel position, or the last line. - */ - virtual wxRichTextLine* GetLineAtYPosition(int y) const; - - /** - Returns the paragraph at the given character or caret position. - */ - virtual wxRichTextParagraph* GetParagraphAtPosition(long pos, bool caretPosition = false) const; - - /** - Returns the line size at the given position. - */ - virtual wxSize GetLineSizeAtPosition(long pos, bool caretPosition = false) const; - - /** - Given a position, returns the number of the visible line (potentially many to a paragraph), - starting from zero at the start of the buffer. We also have to pass a bool (@a startOfLine) - that indicates whether the caret is being shown at the end of the previous line or at the start - of the next, since the caret can be shown at two visible positions for the same underlying - position. - */ - virtual long GetVisibleLineNumber(long pos, bool caretPosition = false, bool startOfLine = false) const; - - /** - Given a line number, returns the corresponding wxRichTextLine object. - */ - virtual wxRichTextLine* GetLineForVisibleLineNumber(long lineNumber) const; - - /** - Returns the leaf object in a paragraph at this position. - */ - virtual wxRichTextObject* GetLeafObjectAtPosition(long position) const; - - /** - Returns the paragraph by number. - */ - virtual wxRichTextParagraph* GetParagraphAtLine(long paragraphNumber) const; - - /** - Returns the paragraph for a given line. - */ - virtual wxRichTextParagraph* GetParagraphForLine(wxRichTextLine* line) const; - - /** - Returns the length of the paragraph. - */ - virtual int GetParagraphLength(long paragraphNumber) const; - - /** - Returns the number of paragraphs. - */ - virtual int GetParagraphCount() const { return static_cast<int>(GetChildCount()); } - - /** - Returns the number of visible lines. - */ - virtual int GetLineCount() const; - - /** - Returns the text of the paragraph. - */ - virtual wxString GetParagraphText(long paragraphNumber) const; - - /** - Converts zero-based line column and paragraph number to a position. - */ - virtual long XYToPosition(long x, long y) const; - - /** - Converts a zero-based position to line column and paragraph number. - */ - virtual bool PositionToXY(long pos, long* x, long* y) const; - - /** - Sets the attributes for the given range. Pass flags to determine how the - attributes are set. - - The end point of range is specified as the last character position of the span - of text. So, for example, to set the style for a character at position 5, - use the range (5,5). - This differs from the wxRichTextCtrl API, where you would specify (5,6). - - @a flags may contain a bit list of the following values: - - wxRICHTEXT_SETSTYLE_NONE: no style flag. - - wxRICHTEXT_SETSTYLE_WITH_UNDO: specifies that this operation should be - undoable. - - wxRICHTEXT_SETSTYLE_OPTIMIZE: specifies that the style should not be applied - if the combined style at this point is already the style in question. - - wxRICHTEXT_SETSTYLE_PARAGRAPHS_ONLY: specifies that the style should only be - applied to paragraphs, and not the content. - This allows content styling to be preserved independently from that - of e.g. a named paragraph style. - - wxRICHTEXT_SETSTYLE_CHARACTERS_ONLY: specifies that the style should only be - applied to characters, and not the paragraph. - This allows content styling to be preserved independently from that - of e.g. a named paragraph style. - - wxRICHTEXT_SETSTYLE_RESET: resets (clears) the existing style before applying - the new style. - - wxRICHTEXT_SETSTYLE_REMOVE: removes the specified style. - Only the style flags are used in this operation. - */ - virtual bool SetStyle(const wxRichTextRange& range, const wxRichTextAttr& style, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO); - - /** - Sets the attributes for the given object only, for example the box attributes for a text box. - */ - virtual void SetStyle(wxRichTextObject *obj, const wxRichTextAttr& textAttr, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO); - - /** - Returns the combined text attributes for this position. - - This function gets the @e uncombined style - that is, the attributes associated - with the paragraph or character content, and not necessarily the combined - attributes you see on the screen. To get the combined attributes, use GetStyle(). - If you specify (any) paragraph attribute in @e style's flags, this function - will fetch the paragraph attributes. - Otherwise, it will return the character attributes. - */ - virtual bool GetStyle(long position, wxRichTextAttr& style); - - /** - Returns the content (uncombined) attributes for this position. - */ - virtual bool GetUncombinedStyle(long position, wxRichTextAttr& style); - - /** - Implementation helper for GetStyle. If combineStyles is true, combine base, paragraph and - context attributes. - */ - virtual bool DoGetStyle(long position, wxRichTextAttr& style, bool combineStyles = true); - - /** - This function gets a style representing the common, combined attributes in the - given range. - Attributes which have different values within the specified range will not be - included the style flags. - - The function is used to get the attributes to display in the formatting dialog: - the user can edit the attributes common to the selection, and optionally specify the - values of further attributes to be applied uniformly. - - To apply the edited attributes, you can use SetStyle() specifying - the wxRICHTEXT_SETSTYLE_OPTIMIZE flag, which will only apply attributes that - are different from the @e combined attributes within the range. - So, the user edits the effective, displayed attributes for the range, - but his choice won't be applied unnecessarily to content. As an example, - say the style for a paragraph specifies bold, but the paragraph text doesn't - specify a weight. - The combined style is bold, and this is what the user will see on-screen and - in the formatting dialog. The user now specifies red text, in addition to bold. - When applying with SetStyle(), the content font weight attributes won't be - changed to bold because this is already specified by the paragraph. - However the text colour attributes @e will be changed to show red. - */ - virtual bool GetStyleForRange(const wxRichTextRange& range, wxRichTextAttr& style); - - /** - Combines @a style with @a currentStyle for the purpose of summarising the attributes of a range of - content. - */ - bool CollectStyle(wxRichTextAttr& currentStyle, const wxRichTextAttr& style, wxRichTextAttr& clashingAttr, wxRichTextAttr& absentAttr); - - //@{ - /** - Sets the list attributes for the given range, passing flags to determine how - the attributes are set. - Either the style definition or the name of the style definition (in the current - sheet) can be passed. - - @a flags is a bit list of the following: - - wxRICHTEXT_SETSTYLE_WITH_UNDO: specifies that this command will be undoable. - - wxRICHTEXT_SETSTYLE_RENUMBER: specifies that numbering should start from - @a startFrom, otherwise existing attributes are used. - - wxRICHTEXT_SETSTYLE_SPECIFY_LEVEL: specifies that @a listLevel should be used - as the level for all paragraphs, otherwise the current indentation will be used. - - @see NumberList(), PromoteList(), ClearListStyle(). - */ - virtual bool SetListStyle(const wxRichTextRange& range, wxRichTextListStyleDefinition* def, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int startFrom = 1, int specifiedLevel = -1); - virtual bool SetListStyle(const wxRichTextRange& range, const wxString& defName, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int startFrom = 1, int specifiedLevel = -1); - //@} - - /** - Clears the list style from the given range, clearing list-related attributes - and applying any named paragraph style associated with each paragraph. - - @a flags is a bit list of the following: - - wxRICHTEXT_SETSTYLE_WITH_UNDO: specifies that this command will be undoable. - - @see SetListStyle(), PromoteList(), NumberList() - */ - virtual bool ClearListStyle(const wxRichTextRange& range, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO); - - //@{ - /** - Numbers the paragraphs in the given range. - - Pass flags to determine how the attributes are set. - Either the style definition or the name of the style definition (in the current - sheet) can be passed. - - @a flags is a bit list of the following: - - wxRICHTEXT_SETSTYLE_WITH_UNDO: specifies that this command will be undoable. - - wxRICHTEXT_SETSTYLE_RENUMBER: specifies that numbering should start from - @a startFrom, otherwise existing attributes are used. - - wxRICHTEXT_SETSTYLE_SPECIFY_LEVEL: specifies that @a listLevel should be used - as the level for all paragraphs, otherwise the current indentation will be used. - - @a def can be NULL to indicate that the existing list style should be used. - - @see SetListStyle(), PromoteList(), ClearListStyle() - */ - virtual bool NumberList(const wxRichTextRange& range, wxRichTextListStyleDefinition* def = NULL, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int startFrom = 1, int specifiedLevel = -1); - virtual bool NumberList(const wxRichTextRange& range, const wxString& defName, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int startFrom = 1, int specifiedLevel = -1); - //@} - - //@{ - /** - Promotes the list items within the given range. - A positive @a promoteBy produces a smaller indent, and a negative number - produces a larger indent. Pass flags to determine how the attributes are set. - Either the style definition or the name of the style definition (in the current - sheet) can be passed. - - @a flags is a bit list of the following: - - wxRICHTEXT_SETSTYLE_WITH_UNDO: specifies that this command will be undoable. - - wxRICHTEXT_SETSTYLE_RENUMBER: specifies that numbering should start from - @a startFrom, otherwise existing attributes are used. - - wxRICHTEXT_SETSTYLE_SPECIFY_LEVEL: specifies that @a listLevel should be used - as the level for all paragraphs, otherwise the current indentation will be used. - - @see SetListStyle(), SetListStyle(), ClearListStyle() - */ - virtual bool PromoteList(int promoteBy, const wxRichTextRange& range, wxRichTextListStyleDefinition* def = NULL, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int specifiedLevel = -1); - virtual bool PromoteList(int promoteBy, const wxRichTextRange& range, const wxString& defName, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int specifiedLevel = -1); - //@} - - /** - Helper for NumberList and PromoteList, that does renumbering and promotion simultaneously - @a def can be NULL/empty to indicate that the existing list style should be used. - */ - virtual bool DoNumberList(const wxRichTextRange& range, const wxRichTextRange& promotionRange, int promoteBy, wxRichTextListStyleDefinition* def, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int startFrom = 1, int specifiedLevel = -1); - - /** - Fills in the attributes for numbering a paragraph after previousParagraph. - */ - virtual bool FindNextParagraphNumber(wxRichTextParagraph* previousParagraph, wxRichTextAttr& attr) const; - - /** - Sets the properties for the given range, passing flags to determine how the - attributes are set. You can merge properties or replace them. - - The end point of range is specified as the last character position of the span - of text, plus one. So, for example, to set the properties for a character at - position 5, use the range (5,6). - - @a flags may contain a bit list of the following values: - - wxRICHTEXT_SETPROPERTIES_NONE: no flag. - - wxRICHTEXT_SETPROPERTIES_WITH_UNDO: specifies that this operation should be - undoable. - - wxRICHTEXT_SETPROPERTIES_PARAGRAPHS_ONLY: specifies that the properties should only be - applied to paragraphs, and not the content. - - wxRICHTEXT_SETPROPERTIES_CHARACTERS_ONLY: specifies that the properties should only be - applied to characters, and not the paragraph. - - wxRICHTEXT_SETPROPERTIES_RESET: resets (clears) the existing properties before applying - the new properties. - - wxRICHTEXT_SETPROPERTIES_REMOVE: removes the specified properties. - */ - virtual bool SetProperties(const wxRichTextRange& range, const wxRichTextProperties& properties, int flags = wxRICHTEXT_SETPROPERTIES_WITH_UNDO); - - /** - Sets with undo the properties for the given object. - */ - virtual bool SetObjectPropertiesWithUndo(wxRichTextObject& obj, const wxRichTextProperties& properties, wxRichTextObject* objToSet = NULL); - - /** - Test if this whole range has character attributes of the specified kind. If any - of the attributes are different within the range, the test fails. You - can use this to implement, for example, bold button updating. style must have - flags indicating which attributes are of interest. - */ - virtual bool HasCharacterAttributes(const wxRichTextRange& range, const wxRichTextAttr& style) const; - - /** - Test if this whole range has paragraph attributes of the specified kind. If any - of the attributes are different within the range, the test fails. You - can use this to implement, for example, centering button updating. style must have - flags indicating which attributes are of interest. - */ - virtual bool HasParagraphAttributes(const wxRichTextRange& range, const wxRichTextAttr& style) const; - - virtual wxRichTextObject* Clone() const wxOVERRIDE { return new wxRichTextParagraphLayoutBox(*this); } - - /** - Prepares the content just before insertion (or after buffer reset). - Currently is only called if undo mode is on. - */ - virtual void PrepareContent(wxRichTextParagraphLayoutBox& container); - - /** - Insert fragment into this box at the given position. If partialParagraph is true, - it is assumed that the last (or only) paragraph is just a piece of data with no paragraph - marker. - */ - virtual bool InsertFragment(long position, wxRichTextParagraphLayoutBox& fragment); - - /** - Make a copy of the fragment corresponding to the given range, putting it in @a fragment. - */ - virtual bool CopyFragment(const wxRichTextRange& range, wxRichTextParagraphLayoutBox& fragment); - - /** - Apply the style sheet to the buffer, for example if the styles have changed. - */ - virtual bool ApplyStyleSheet(wxRichTextStyleSheet* styleSheet); - - void Copy(const wxRichTextParagraphLayoutBox& obj); - - void operator= (const wxRichTextParagraphLayoutBox& obj) { Copy(obj); } - - /** - Calculate ranges. - */ - virtual void UpdateRanges(); - - /** - Get all the text. - */ - virtual wxString GetText() const; - - /** - Sets the default style, affecting the style currently being applied - (for example, setting the default style to bold will cause subsequently - inserted text to be bold). - - This is not cumulative - setting the default style will replace the previous - default style. - - Setting it to a default attribute object makes new content take on the 'basic' style. - */ - virtual bool SetDefaultStyle(const wxRichTextAttr& style); - - /** - Returns the current default style, affecting the style currently being applied - (for example, setting the default style to bold will cause subsequently - inserted text to be bold). - */ - virtual const wxRichTextAttr& GetDefaultStyle() const { return m_defaultAttributes; } - - /** - Sets the basic (overall) style. This is the style of the whole - buffer before further styles are applied, unlike the default style, which - only affects the style currently being applied (for example, setting the default - style to bold will cause subsequently inserted text to be bold). - */ - virtual void SetBasicStyle(const wxRichTextAttr& style) { m_attributes = style; } - - /** - Returns the basic (overall) style. - - This is the style of the whole buffer before further styles are applied, - unlike the default style, which only affects the style currently being - applied (for example, setting the default style to bold will cause - subsequently inserted text to be bold). - */ - virtual const wxRichTextAttr& GetBasicStyle() const { return m_attributes; } - - /** - Invalidates the buffer. With no argument, invalidates whole buffer. - */ - virtual void Invalidate(const wxRichTextRange& invalidRange = wxRICHTEXT_ALL) wxOVERRIDE; - - /** - Do the (in)validation for this object only. - */ - virtual void DoInvalidate(const wxRichTextRange& invalidRange); - - /** - Do the (in)validation both up and down the hierarchy. - */ - virtual void InvalidateHierarchy(const wxRichTextRange& invalidRange = wxRICHTEXT_ALL); - - /** - Gather information about floating objects. If untilObj is non-NULL, - will stop getting information if the current object is this, since we - will collect the rest later. - */ - virtual bool UpdateFloatingObjects(const wxRect& availableRect, wxRichTextObject* untilObj = NULL); - - /** - Get invalid range, rounding to entire paragraphs if argument is true. - */ - wxRichTextRange GetInvalidRange(bool wholeParagraphs = false) const; - - /** - Returns @true if this object needs layout. - */ - bool IsDirty() const { return m_invalidRange != wxRICHTEXT_NONE; } - - /** - Returns the wxRichTextFloatCollector of this object. - */ - wxRichTextFloatCollector* GetFloatCollector() { return m_floatCollector; } - - /** - Returns the number of floating objects at this level. - */ - int GetFloatingObjectCount() const; - - /** - Returns a list of floating objects. - */ - bool GetFloatingObjects(wxRichTextObjectList& objects) const; - -protected: - wxRichTextCtrl* m_ctrl; - wxRichTextAttr m_defaultAttributes; - - // The invalidated range that will need full layout - wxRichTextRange m_invalidRange; - - // Is the last paragraph partial or complete? - bool m_partialParagraph; - - // The floating layout state - wxRichTextFloatCollector* m_floatCollector; -}; - -/** - @class wxRichTextBox - - This class implements a floating or inline text box, containing paragraphs. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextParagraphLayoutBox, wxRichTextObject, wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextBox: public wxRichTextParagraphLayoutBox -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextBox); -public: -// Constructors - - /** - Default constructor; optionally pass the parent object. - */ - - wxRichTextBox(wxRichTextObject* parent = NULL); - - /** - Copy constructor. - */ - - wxRichTextBox(const wxRichTextBox& obj): wxRichTextParagraphLayoutBox() { Copy(obj); } - -// Overridables - - virtual bool Draw(wxDC& dc, wxRichTextDrawingContext& context, const wxRichTextRange& range, const wxRichTextSelection& selection, const wxRect& rect, int descent, int style) wxOVERRIDE; - - virtual wxString GetXMLNodeName() const wxOVERRIDE { return wxT("textbox"); } - - virtual bool CanEditProperties() const wxOVERRIDE { return true; } - - virtual bool EditProperties(wxWindow* parent, wxRichTextBuffer* buffer) wxOVERRIDE; - - virtual wxString GetPropertiesMenuLabel() const wxOVERRIDE { return wxGetTranslation("&Box"); } - -// Accessors - -// Operations - - virtual wxRichTextObject* Clone() const wxOVERRIDE { return new wxRichTextBox(*this); } - - void Copy(const wxRichTextBox& obj); - -protected: -}; - -/** - @class wxRichTextField - - This class implements the general concept of a field, an object that represents - additional functionality such as a footnote, a bookmark, a page number, a table - of contents, and so on. Extra information (such as a bookmark name) can be stored - in the object properties. - - Drawing, layout, and property editing is delegated to classes derived - from wxRichTextFieldType, such as instances of wxRichTextFieldTypeStandard; this makes - the use of fields an efficient method of introducing extra functionality, since - most of the information required to draw a field (such as a bitmap) is kept centrally - in a single field type definition. - - The FieldType property, accessed by SetFieldType/GetFieldType, is used to retrieve - the field type definition. So be careful not to overwrite this property. - - wxRichTextField is derived from wxRichTextParagraphLayoutBox, which means that it - can contain its own read-only content, refreshed when the application calls the UpdateField - function. Whether a field is treated as a composite or a single graphic is determined - by the field type definition. If using wxRichTextFieldTypeStandard, passing the display - type wxRICHTEXT_FIELD_STYLE_COMPOSITE to the field type definition causes the field - to behave like a composite; the other display styles display a simple graphic. - When implementing a composite field, you will still need to derive from wxRichTextFieldTypeStandard - or wxRichTextFieldType, if only to implement UpdateField to refresh the field content - appropriately. wxRichTextFieldTypeStandard is only one possible implementation, but - covers common needs especially for simple, static fields using text or a bitmap. - - Register field types on application initialisation with the static function - wxRichTextBuffer::AddFieldType. They will be deleted automatically on - application exit. - - An application can write a field to a control with wxRichTextCtrl::WriteField, - taking a field type, the properties for the field, and optional attributes. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextFieldTypeStandard, wxRichTextFieldType, wxRichTextParagraphLayoutBox, wxRichTextProperties, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextField: public wxRichTextParagraphLayoutBox -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextField); -public: -// Constructors - - /** - Default constructor; optionally pass the parent object. - */ - - wxRichTextField(const wxString& fieldType = wxEmptyString, wxRichTextObject* parent = NULL); - - /** - Copy constructor. - */ - - wxRichTextField(const wxRichTextField& obj): wxRichTextParagraphLayoutBox() { Copy(obj); } - -// Overridables - - virtual bool Draw(wxDC& dc, wxRichTextDrawingContext& context, const wxRichTextRange& range, const wxRichTextSelection& selection, const wxRect& rect, int descent, int style) wxOVERRIDE; - - virtual bool Layout(wxDC& dc, wxRichTextDrawingContext& context, const wxRect& rect, const wxRect& parentRect, int style) wxOVERRIDE; - - virtual bool GetRangeSize(const wxRichTextRange& range, wxSize& size, int& descent, wxDC& dc, wxRichTextDrawingContext& context, int flags, const wxPoint& position = wxPoint(0,0), const wxSize& parentSize = wxDefaultSize, wxArrayInt* partialExtents = NULL) const wxOVERRIDE; - - virtual wxString GetXMLNodeName() const wxOVERRIDE { return wxT("field"); } - - virtual bool CanEditProperties() const wxOVERRIDE; - - virtual bool EditProperties(wxWindow* parent, wxRichTextBuffer* buffer) wxOVERRIDE; - - virtual wxString GetPropertiesMenuLabel() const wxOVERRIDE; - - virtual bool AcceptsFocus() const wxOVERRIDE { return false; } - - virtual void CalculateRange(long start, long& end) wxOVERRIDE; - - /** - If a field has children, we don't want the user to be able to edit it. - */ - virtual bool IsAtomic() const wxOVERRIDE { return true; } - - virtual bool IsEmpty() const wxOVERRIDE { return false; } - - virtual bool IsTopLevel() const wxOVERRIDE; - -// Accessors - - void SetFieldType(const wxString& fieldType) { GetProperties().SetProperty(wxT("FieldType"), fieldType); } - wxString GetFieldType() const { return GetProperties().GetPropertyString(wxT("FieldType")); } - -// Operations - - /** - Update the field; delegated to the associated field type. This would typically expand the field to its value, - if this is a dynamically changing and/or composite field. - */ - virtual bool UpdateField(wxRichTextBuffer* buffer); - - virtual wxRichTextObject* Clone() const wxOVERRIDE { return new wxRichTextField(*this); } - - void Copy(const wxRichTextField& obj); - -protected: -}; - -/** - @class wxRichTextFieldType - - The base class for custom field types. Each type definition handles one - field type. Override functions to provide drawing, layout, updating and - property editing functionality for a field. - - Register field types on application initialisation with the static function - wxRichTextBuffer::AddFieldType. They will be deleted automatically on - application exit. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextFieldTypeStandard, wxRichTextField, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextFieldType: public wxObject -{ - wxDECLARE_CLASS(wxRichTextFieldType); -public: - /** - Creates a field type definition. - */ - wxRichTextFieldType(const wxString& name = wxEmptyString) - : m_name(name) - { } - - /** - Copy constructor. - */ - wxRichTextFieldType(const wxRichTextFieldType& fieldType) - : wxObject(fieldType) - { Copy(fieldType); } - - void Copy(const wxRichTextFieldType& fieldType) { m_name = fieldType.m_name; } - - /** - Draw the item, within the given range. Some objects may ignore the range (for - example paragraphs) while others must obey it (lines, to implement wrapping) - */ - virtual bool Draw(wxRichTextField* obj, wxDC& dc, wxRichTextDrawingContext& context, const wxRichTextRange& range, const wxRichTextSelection& selection, const wxRect& rect, int descent, int style) = 0; - - /** - Lay the item out at the specified position with the given size constraint. - Layout must set the cached size. @rect is the available space for the object, - and @a parentRect is the container that is used to determine a relative size - or position (for example if a text box must be 50% of the parent text box). - */ - virtual bool Layout(wxRichTextField* obj, wxDC& dc, wxRichTextDrawingContext& context, const wxRect& rect, const wxRect& parentRect, int style) = 0; - - /** - Returns the object size for the given range. Returns @false if the range - is invalid for this object. - */ - virtual bool GetRangeSize(wxRichTextField* obj, const wxRichTextRange& range, wxSize& size, int& descent, wxDC& dc, wxRichTextDrawingContext& context, int flags, const wxPoint& position = wxPoint(0,0), const wxSize& parentSize = wxDefaultSize, wxArrayInt* partialExtents = NULL) const = 0; - - /** - Returns @true if we can edit the object's properties via a GUI. - */ - virtual bool CanEditProperties(wxRichTextField* WXUNUSED(obj)) const { return false; } - - /** - Edits the object's properties via a GUI. - */ - virtual bool EditProperties(wxRichTextField* WXUNUSED(obj), wxWindow* WXUNUSED(parent), wxRichTextBuffer* WXUNUSED(buffer)) { return false; } - - /** - Returns the label to be used for the properties context menu item. - */ - virtual wxString GetPropertiesMenuLabel(wxRichTextField* WXUNUSED(obj)) const { return wxEmptyString; } - - /** - Update the field. This would typically expand the field to its value, - if this is a dynamically changing and/or composite field. - */ - virtual bool UpdateField(wxRichTextBuffer* WXUNUSED(buffer), wxRichTextField* WXUNUSED(obj)) { return false; } - - /** - Returns @true if this object is top-level, i.e. contains its own paragraphs, such as a text box. - */ - virtual bool IsTopLevel(wxRichTextField* WXUNUSED(obj)) const { return true; } - - /** - Sets the field type name. There should be a unique name per field type object. - */ - void SetName(const wxString& name) { m_name = name; } - - /** - Returns the field type name. There should be a unique name per field type object. - */ - wxString GetName() const { return m_name; } - -protected: - - wxString m_name; -}; - -WX_DECLARE_STRING_HASH_MAP(wxRichTextFieldType*, wxRichTextFieldTypeHashMap); - -/** - @class wxRichTextFieldTypeStandard - - A field type that can handle fields with text or bitmap labels, with a small range - of styles for implementing rectangular fields and fields that can be used for start - and end tags. - - The border, text and background colours can be customised; the default is - white text on a black background. - - The following display styles can be used. - - @beginStyleTable - @style{wxRICHTEXT_FIELD_STYLE_COMPOSITE} - Creates a composite field; you will probably need to derive a new class to implement UpdateField. - @style{wxRICHTEXT_FIELD_STYLE_RECTANGLE} - Shows a rounded rectangle background. - @style{wxRICHTEXT_FIELD_STYLE_NO_BORDER} - Suppresses the background and border; mostly used with a bitmap label. - @style{wxRICHTEXT_FIELD_STYLE_START_TAG} - Shows a start tag background, with the pointy end facing right. - @style{wxRICHTEXT_FIELD_STYLE_END_TAG} - Shows an end tag background, with the pointy end facing left. - @endStyleTable - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextFieldType, wxRichTextField, wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextFieldTypeStandard: public wxRichTextFieldType -{ - wxDECLARE_CLASS(wxRichTextFieldTypeStandard); -public: - - // Display style types - enum { wxRICHTEXT_FIELD_STYLE_COMPOSITE = 0x01, - wxRICHTEXT_FIELD_STYLE_RECTANGLE = 0x02, - wxRICHTEXT_FIELD_STYLE_NO_BORDER = 0x04, - wxRICHTEXT_FIELD_STYLE_START_TAG = 0x08, - wxRICHTEXT_FIELD_STYLE_END_TAG = 0x10 - }; - - /** - Constructor, creating a field type definition with a text label. - - @param parent - The name of the type definition. This must be unique, and is the type - name used when adding a field to a control. - @param label - The text label to be shown on the field. - @param displayStyle - The display style: one of wxRICHTEXT_FIELD_STYLE_RECTANGLE, - wxRICHTEXT_FIELD_STYLE_NO_BORDER, wxRICHTEXT_FIELD_STYLE_START_TAG, - wxRICHTEXT_FIELD_STYLE_END_TAG. - - */ - wxRichTextFieldTypeStandard(const wxString& name, const wxString& label, int displayStyle = wxRICHTEXT_FIELD_STYLE_RECTANGLE); - - /** - Constructor, creating a field type definition with a bitmap label. - - @param parent - The name of the type definition. This must be unique, and is the type - name used when adding a field to a control. - @param label - The bitmap label to be shown on the field. - @param displayStyle - The display style: one of wxRICHTEXT_FIELD_STYLE_RECTANGLE, - wxRICHTEXT_FIELD_STYLE_NO_BORDER, wxRICHTEXT_FIELD_STYLE_START_TAG, - wxRICHTEXT_FIELD_STYLE_END_TAG. - - */ - wxRichTextFieldTypeStandard(const wxString& name, const wxBitmap& bitmap, int displayStyle = wxRICHTEXT_FIELD_STYLE_NO_BORDER); - - /** - The default constructor. - - */ - wxRichTextFieldTypeStandard() { Init(); } - - /** - The copy constructor. - - */ - wxRichTextFieldTypeStandard(const wxRichTextFieldTypeStandard& field) - : wxRichTextFieldType(field) - { Copy(field); } - - /** - Initialises the object. - */ - void Init(); - - /** - Copies the object. - */ - void Copy(const wxRichTextFieldTypeStandard& field); - - /** - The assignment operator. - */ - void operator=(const wxRichTextFieldTypeStandard& field) { Copy(field); } - - /** - Draw the item, within the given range. Some objects may ignore the range (for - example paragraphs) while others must obey it (lines, to implement wrapping) - */ - virtual bool Draw(wxRichTextField* obj, wxDC& dc, wxRichTextDrawingContext& context, const wxRichTextRange& range, const wxRichTextSelection& selection, const wxRect& rect, int descent, int style) wxOVERRIDE; - - /** - Lay the item out at the specified position with the given size constraint. - Layout must set the cached size. @rect is the available space for the object, - and @a parentRect is the container that is used to determine a relative size - or position (for example if a text box must be 50% of the parent text box). - */ - virtual bool Layout(wxRichTextField* obj, wxDC& dc, wxRichTextDrawingContext& context, const wxRect& rect, const wxRect& parentRect, int style) wxOVERRIDE; - - /** - Returns the object size for the given range. Returns @false if the range - is invalid for this object. - */ - virtual bool GetRangeSize(wxRichTextField* obj, const wxRichTextRange& range, wxSize& size, int& descent, wxDC& dc, wxRichTextDrawingContext& context, int flags, const wxPoint& position = wxPoint(0,0), const wxSize& parentSize = wxDefaultSize, wxArrayInt* partialExtents = NULL) const wxOVERRIDE; - - /** - Get the size of the field, given the label, font size, and so on. - */ - wxSize GetSize(wxRichTextField* obj, wxDC& dc, wxRichTextDrawingContext& context, int style) const; - - /** - Returns @true if the display type is wxRICHTEXT_FIELD_STYLE_COMPOSITE, @false otherwise. - */ - virtual bool IsTopLevel(wxRichTextField* WXUNUSED(obj)) const wxOVERRIDE { return (GetDisplayStyle() & wxRICHTEXT_FIELD_STYLE_COMPOSITE) != 0; } - - /** - Sets the text label for fields of this type. - */ - void SetLabel(const wxString& label) { m_label = label; } - - /** - Returns the text label for fields of this type. - */ - const wxString& GetLabel() const { return m_label; } - - /** - Sets the bitmap label for fields of this type. - */ - void SetBitmap(const wxBitmap& bitmap) { m_bitmap = bitmap; } - - /** - Gets the bitmap label for fields of this type. - */ - const wxBitmap& GetBitmap() const { return m_bitmap; } - - /** - Gets the display style for fields of this type. - */ - int GetDisplayStyle() const { return m_displayStyle; } - - /** - Sets the display style for fields of this type. - */ - void SetDisplayStyle(int displayStyle) { m_displayStyle = displayStyle; } - - /** - Gets the font used for drawing the text label. - */ - const wxFont& GetFont() const { return m_font; } - - /** - Sets the font used for drawing the text label. - */ - void SetFont(const wxFont& font) { m_font = font; } - - /** - Gets the colour used for drawing the text label. - */ - const wxColour& GetTextColour() const { return m_textColour; } - - /** - Sets the colour used for drawing the text label. - */ - void SetTextColour(const wxColour& colour) { m_textColour = colour; } - - /** - Gets the colour used for drawing the field border. - */ - const wxColour& GetBorderColour() const { return m_borderColour; } - - /** - Sets the colour used for drawing the field border. - */ - void SetBorderColour(const wxColour& colour) { m_borderColour = colour; } - - /** - Gets the colour used for drawing the field background. - */ - const wxColour& GetBackgroundColour() const { return m_backgroundColour; } - - /** - Sets the colour used for drawing the field background. - */ - void SetBackgroundColour(const wxColour& colour) { m_backgroundColour = colour; } - - /** - Sets the vertical padding (the distance between the border and the text). - */ - void SetVerticalPadding(int padding) { m_verticalPadding = padding; } - - /** - Gets the vertical padding (the distance between the border and the text). - */ - int GetVerticalPadding() const { return m_verticalPadding; } - - /** - Sets the horizontal padding (the distance between the border and the text). - */ - void SetHorizontalPadding(int padding) { m_horizontalPadding = padding; } - - /** - Sets the horizontal padding (the distance between the border and the text). - */ - int GetHorizontalPadding() const { return m_horizontalPadding; } - - /** - Sets the horizontal margin surrounding the field object. - */ - void SetHorizontalMargin(int margin) { m_horizontalMargin = margin; } - - /** - Gets the horizontal margin surrounding the field object. - */ - int GetHorizontalMargin() const { return m_horizontalMargin; } - - /** - Sets the vertical margin surrounding the field object. - */ - void SetVerticalMargin(int margin) { m_verticalMargin = margin; } - - /** - Gets the vertical margin surrounding the field object. - */ - int GetVerticalMargin() const { return m_verticalMargin; } - -protected: - - wxString m_label; - int m_displayStyle; - wxFont m_font; - wxColour m_textColour; - wxColour m_borderColour; - wxColour m_backgroundColour; - int m_verticalPadding; - int m_horizontalPadding; - int m_horizontalMargin; - int m_verticalMargin; - wxBitmap m_bitmap; -}; - -/** - @class wxRichTextLine - - This object represents a line in a paragraph, and stores - offsets from the start of the paragraph representing the - start and end positions of the line. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextLine -{ -public: -// Constructors - - wxRichTextLine(wxRichTextParagraph* parent); - wxRichTextLine(const wxRichTextLine& obj) { Init( NULL); Copy(obj); } - virtual ~wxRichTextLine() {} - -// Overridables - -// Accessors - - /** - Sets the range associated with this line. - */ - void SetRange(const wxRichTextRange& range) { m_range = range; } - /** - Sets the range associated with this line. - */ - void SetRange(long from, long to) { m_range = wxRichTextRange(from, to); } - - /** - Returns the parent paragraph. - */ - wxRichTextParagraph* GetParent() { return m_parent; } - - /** - Returns the range. - */ - const wxRichTextRange& GetRange() const { return m_range; } - /** - Returns the range. - */ - wxRichTextRange& GetRange() { return m_range; } - - /** - Returns the absolute range. - */ - wxRichTextRange GetAbsoluteRange() const; - - /** - Returns the line size as calculated by Layout. - */ - virtual wxSize GetSize() const { return m_size; } - - /** - Sets the line size as calculated by Layout. - */ - virtual void SetSize(const wxSize& sz) { m_size = sz; } - - /** - Returns the object position relative to the parent. - */ - virtual wxPoint GetPosition() const { return m_pos; } - - /** - Sets the object position relative to the parent. - */ - virtual void SetPosition(const wxPoint& pos) { m_pos = pos; } - - /** - Returns the absolute object position. - */ - virtual wxPoint GetAbsolutePosition() const; - - /** - Returns the rectangle enclosing the line. - */ - virtual wxRect GetRect() const { return wxRect(GetAbsolutePosition(), GetSize()); } - - /** - Sets the stored descent. - */ - void SetDescent(int descent) { m_descent = descent; } - - /** - Returns the stored descent. - */ - int GetDescent() const { return m_descent; } - -#if wxRICHTEXT_USE_OPTIMIZED_LINE_DRAWING - wxArrayInt& GetObjectSizes() { return m_objectSizes; } - const wxArrayInt& GetObjectSizes() const { return m_objectSizes; } -#endif - -// Operations - - /** - Initialises the object. - */ - void Init(wxRichTextParagraph* parent); - - /** - Copies from @a obj. - */ - void Copy(const wxRichTextLine& obj); - - virtual wxRichTextLine* Clone() const { return new wxRichTextLine(*this); } - -protected: - - // The range of the line (start position to end position) - // This is relative to the parent paragraph. - wxRichTextRange m_range; - - // Size and position measured relative to top of paragraph - wxPoint m_pos; - wxSize m_size; - - // Maximum descent for this line (location of text baseline) - int m_descent; - - // The parent object - wxRichTextParagraph* m_parent; - -#if wxRICHTEXT_USE_OPTIMIZED_LINE_DRAWING - wxArrayInt m_objectSizes; -#endif -}; - -WX_DECLARE_LIST_WITH_DECL( wxRichTextLine, wxRichTextLineList , class WXDLLIMPEXP_RICHTEXT ); - -/** - @class wxRichTextParagraph - - This object represents a single paragraph containing various objects such as text content, images, and further paragraph layout objects. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextParagraph: public wxRichTextCompositeObject -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextParagraph); -public: -// Constructors - - /** - Constructor taking a parent and style. - */ - wxRichTextParagraph(wxRichTextObject* parent = NULL, wxRichTextAttr* style = NULL); - /** - Constructor taking a text string, a parent and paragraph and character attributes. - */ - wxRichTextParagraph(const wxString& text, wxRichTextObject* parent = NULL, wxRichTextAttr* paraStyle = NULL, wxRichTextAttr* charStyle = NULL); - virtual ~wxRichTextParagraph(); - wxRichTextParagraph(const wxRichTextParagraph& obj): wxRichTextCompositeObject() { Copy(obj); } - - void Init(); - -// Overridables - - virtual bool Draw(wxDC& dc, wxRichTextDrawingContext& context, const wxRichTextRange& range, const wxRichTextSelection& selection, const wxRect& rect, int descent, int style) wxOVERRIDE; - - virtual bool Layout(wxDC& dc, wxRichTextDrawingContext& context, const wxRect& rect, const wxRect& parentRect, int style) wxOVERRIDE; - - virtual bool GetRangeSize(const wxRichTextRange& range, wxSize& size, int& descent, wxDC& dc, wxRichTextDrawingContext& context, int flags, const wxPoint& position = wxPoint(0,0), const wxSize& parentSize = wxDefaultSize, wxArrayInt* partialExtents = NULL) const wxOVERRIDE; - - virtual bool FindPosition(wxDC& dc, wxRichTextDrawingContext& context, long index, wxPoint& pt, int* height, bool forceLineStart) wxOVERRIDE; - - virtual int HitTest(wxDC& dc, wxRichTextDrawingContext& context, const wxPoint& pt, long& textPosition, wxRichTextObject** obj, wxRichTextObject** contextObj, int flags = 0) wxOVERRIDE; - - virtual void CalculateRange(long start, long& end) wxOVERRIDE; - - virtual wxString GetXMLNodeName() const wxOVERRIDE { return wxT("paragraph"); } - -// Accessors - - /** - Returns the cached lines. - */ - wxRichTextLineList& GetLines() { return m_cachedLines; } - -// Operations - - /** - Copies the object. - */ - void Copy(const wxRichTextParagraph& obj); - - virtual wxRichTextObject* Clone() const wxOVERRIDE { return new wxRichTextParagraph(*this); } - - /** - Clears the cached lines. - */ - void ClearLines(); - -// Implementation - - /** - Applies paragraph styles such as centering to the wrapped lines. - */ - virtual void ApplyParagraphStyle(wxRichTextLine* line, const wxRichTextAttr& attr, const wxRect& rect, wxDC& dc); - - /** - Inserts text at the given position. - */ - virtual bool InsertText(long pos, const wxString& text); - - /** - Splits an object at this position if necessary, and returns - the previous object, or NULL if inserting at the beginning. - */ - virtual wxRichTextObject* SplitAt(long pos, wxRichTextObject** previousObject = NULL); - - /** - Moves content to a list from this point. - */ - virtual void MoveToList(wxRichTextObject* obj, wxList& list); - - /** - Adds content back from a list. - */ - virtual void MoveFromList(wxList& list); - - /** - Returns the plain text searching from the start or end of the range. - The resulting string may be shorter than the range given. - */ - bool GetContiguousPlainText(wxString& text, const wxRichTextRange& range, bool fromStart = true); - - /** - Finds a suitable wrap position. @a wrapPosition is the last position in the line to the left - of the split. - */ - bool FindWrapPosition(const wxRichTextRange& range, wxDC& dc, wxRichTextDrawingContext& context, int availableSpace, long& wrapPosition, wxArrayInt* partialExtents); - - /** - Finds the object at the given position. - */ - wxRichTextObject* FindObjectAtPosition(long position); - - /** - Returns the bullet text for this paragraph. - */ - wxString GetBulletText(); - - /** - Allocates or reuses a line object. - */ - wxRichTextLine* AllocateLine(int pos); - - /** - Clears remaining unused line objects, if any. - */ - bool ClearUnusedLines(int lineCount); - - /** - Returns combined attributes of the base style, paragraph style and character style. We use this to dynamically - retrieve the actual style. - */ - wxRichTextAttr GetCombinedAttributes(const wxRichTextAttr& contentStyle, bool includingBoxAttr = false) const; - - /** - Returns the combined attributes of the base style and paragraph style. - */ - wxRichTextAttr GetCombinedAttributes(bool includingBoxAttr = false) const; - - /** - Returns the first position from pos that has a line break character. - */ - long GetFirstLineBreakPosition(long pos); - - /** - Creates a default tabstop array. - */ - static void InitDefaultTabs(); - - /** - Clears the default tabstop array. - */ - static void ClearDefaultTabs(); - - /** - Returns the default tabstop array. - */ - static const wxArrayInt& GetDefaultTabs() { return sm_defaultTabs; } - - /** - Lays out the floating objects. - */ - void LayoutFloat(wxDC& dc, wxRichTextDrawingContext& context, const wxRect& rect, const wxRect& parentRect, int style, wxRichTextFloatCollector* floatCollector); - - /** - Whether the paragraph is impacted by floating objects from above. - */ - int GetImpactedByFloatingObjects() const { return m_impactedByFloatingObjects; } - - /** - Sets whether the paragraph is impacted by floating objects from above. - */ - void SetImpactedByFloatingObjects(int i) { m_impactedByFloatingObjects = i; } - -protected: - - // The lines that make up the wrapped paragraph - wxRichTextLineList m_cachedLines; - - // Whether the paragraph is impacted by floating objects from above - int m_impactedByFloatingObjects; - - // Default tabstops - static wxArrayInt sm_defaultTabs; - -friend class wxRichTextFloatCollector; -}; - -/** - @class wxRichTextPlainText - - This object represents a single piece of text. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextPlainText: public wxRichTextObject -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextPlainText); -public: -// Constructors - - /** - Constructor. - */ - wxRichTextPlainText(const wxString& text = wxEmptyString, wxRichTextObject* parent = NULL, wxRichTextAttr* style = NULL); - - /** - Copy constructor. - */ - wxRichTextPlainText(const wxRichTextPlainText& obj): wxRichTextObject() { Copy(obj); } - -// Overridables - - virtual bool Draw(wxDC& dc, wxRichTextDrawingContext& context, const wxRichTextRange& range, const wxRichTextSelection& selection, const wxRect& rect, int descent, int style) wxOVERRIDE; - - virtual bool Layout(wxDC& dc, wxRichTextDrawingContext& context, const wxRect& rect, const wxRect& parentRect, int style) wxOVERRIDE; - - virtual bool AdjustAttributes(wxRichTextAttr& attr, wxRichTextDrawingContext& context) wxOVERRIDE; - - virtual bool GetRangeSize(const wxRichTextRange& range, wxSize& size, int& descent, wxDC& dc, wxRichTextDrawingContext& context, int flags, const wxPoint& position = wxPoint(0,0), const wxSize& parentSize = wxDefaultSize, wxArrayInt* partialExtents = NULL) const wxOVERRIDE; - - virtual wxString GetTextForRange(const wxRichTextRange& range) const wxOVERRIDE; - - virtual wxRichTextObject* DoSplit(long pos) wxOVERRIDE; - - virtual void CalculateRange(long start, long& end) wxOVERRIDE; - - virtual bool DeleteRange(const wxRichTextRange& range) wxOVERRIDE; - - virtual bool IsEmpty() const wxOVERRIDE { return m_text.empty(); } - - virtual bool CanMerge(wxRichTextObject* object, wxRichTextDrawingContext& context) const wxOVERRIDE; - - virtual bool Merge(wxRichTextObject* object, wxRichTextDrawingContext& context) wxOVERRIDE; - - virtual void Dump(wxTextOutputStream& stream) wxOVERRIDE; - - virtual bool CanSplit(wxRichTextDrawingContext& context) const wxOVERRIDE; - - virtual wxRichTextObject* Split(wxRichTextDrawingContext& context) wxOVERRIDE; - - /** - Get the first position from pos that has a line break character. - */ - long GetFirstLineBreakPosition(long pos); - - /// Does this object take note of paragraph attributes? Text and image objects don't. - virtual bool UsesParagraphAttributes() const wxOVERRIDE { return false; } - -#if wxUSE_XML - virtual bool ImportFromXML(wxRichTextBuffer* buffer, wxXmlNode* node, wxRichTextXMLHandler* handler, bool* recurse) wxOVERRIDE; -#endif - -#if wxRICHTEXT_HAVE_DIRECT_OUTPUT - virtual bool ExportXML(wxOutputStream& stream, int indent, wxRichTextXMLHandler* handler) wxOVERRIDE; -#endif - -#if wxRICHTEXT_HAVE_XMLDOCUMENT_OUTPUT - virtual bool ExportXML(wxXmlNode* parent, wxRichTextXMLHandler* handler) wxOVERRIDE; -#endif - - virtual wxString GetXMLNodeName() const wxOVERRIDE { return wxT("text"); } - -// Accessors - - /** - Returns the text. - */ - const wxString& GetText() const { return m_text; } - - /** - Sets the text. - */ - void SetText(const wxString& text) { m_text = text; } - -// Operations - - // Copies the text object, - void Copy(const wxRichTextPlainText& obj); - - // Clones the text object. - virtual wxRichTextObject* Clone() const wxOVERRIDE { return new wxRichTextPlainText(*this); } - -private: - bool DrawTabbedString(wxDC& dc, const wxRichTextAttr& attr, const wxRect& rect, wxString& str, wxCoord& x, wxCoord& y, bool selected); - -protected: - wxString m_text; -}; - -/** - @class wxRichTextImageBlock - - This class stores information about an image, in binary in-memory form. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextImageBlock: public wxObject -{ -public: - /** - Constructor. - */ - wxRichTextImageBlock(); - - /** - Copy constructor. - */ - wxRichTextImageBlock(const wxRichTextImageBlock& block); - virtual ~wxRichTextImageBlock(); - - /** - Initialises the block. - */ - void Init(); - - /** - Clears the block. - */ - - void Clear(); - - /** - Load the original image into a memory block. - If the image is not a JPEG, we must convert it into a JPEG - to conserve space. - If it's not a JPEG we can make use of @a image, already scaled, so we don't have to - load the image a second time. - */ - virtual bool MakeImageBlock(const wxString& filename, wxBitmapType imageType, - wxImage& image, bool convertToJPEG = true); - - /** - Make an image block from the wxImage in the given - format. - */ - virtual bool MakeImageBlock(wxImage& image, wxBitmapType imageType, int quality = 80); - - /** - Uses a const wxImage for efficiency, but can't set quality (only relevant for JPEG) - */ - virtual bool MakeImageBlockDefaultQuality(const wxImage& image, wxBitmapType imageType); - - /** - Makes the image block. - */ - virtual bool DoMakeImageBlock(const wxImage& image, wxBitmapType imageType); - - /** - Writes the block to a file. - */ - bool Write(const wxString& filename); - - /** - Writes the data in hex to a stream. - */ - bool WriteHex(wxOutputStream& stream); - - /** - Reads the data in hex from a stream. - */ - bool ReadHex(wxInputStream& stream, int length, wxBitmapType imageType); - - /** - Copy from @a block. - */ - void Copy(const wxRichTextImageBlock& block); - - // Load a wxImage from the block - /** - */ - bool Load(wxImage& image); - -// Operators - - /** - Assignment operation. - */ - void operator=(const wxRichTextImageBlock& block); - -// Accessors - - /** - Returns the raw data. - */ - unsigned char* GetData() const { return m_data; } - - /** - Returns the data size in bytes. - */ - size_t GetDataSize() const { return m_dataSize; } - - /** - Returns the image type. - */ - wxBitmapType GetImageType() const { return m_imageType; } - - /** - */ - void SetData(unsigned char* image) { m_data = image; } - - /** - Sets the data size. - */ - void SetDataSize(size_t size) { m_dataSize = size; } - - /** - Sets the image type. - */ - void SetImageType(wxBitmapType imageType) { m_imageType = imageType; } - - /** - Returns @true if the data is non-NULL. - */ - bool IsOk() const { return GetData() != NULL; } - bool Ok() const { return IsOk(); } - - /** - Gets the extension for the block's type. - */ - wxString GetExtension() const; - -/// Implementation - - /** - Allocates and reads from a stream as a block of memory. - */ - static unsigned char* ReadBlock(wxInputStream& stream, size_t size); - - /** - Allocates and reads from a file as a block of memory. - */ - static unsigned char* ReadBlock(const wxString& filename, size_t size); - - /** - Writes a memory block to stream. - */ - static bool WriteBlock(wxOutputStream& stream, unsigned char* block, size_t size); - - /** - Writes a memory block to a file. - */ - static bool WriteBlock(const wxString& filename, unsigned char* block, size_t size); - -protected: - // Size in bytes of the image stored. - // This is in the raw, original form such as a JPEG file. - unsigned char* m_data; - size_t m_dataSize; - wxBitmapType m_imageType; -}; - -/** - @class wxRichTextImage - - This class implements a graphic object. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextBuffer, wxRichTextCtrl, wxRichTextImageBlock -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextImage: public wxRichTextObject -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextImage); -public: - enum { ImageState_Unloaded, ImageState_Loaded, ImageState_Bad }; - -// Constructors - - /** - Default constructor. - */ - wxRichTextImage(wxRichTextObject* parent = NULL): wxRichTextObject(parent) { Init(); } - - /** - Creates a wxRichTextImage from a wxImage. - */ - wxRichTextImage(const wxImage& image, wxRichTextObject* parent = NULL, wxRichTextAttr* charStyle = NULL); - - /** - Creates a wxRichTextImage from an image block. - */ - wxRichTextImage(const wxRichTextImageBlock& imageBlock, wxRichTextObject* parent = NULL, wxRichTextAttr* charStyle = NULL); - - /** - Copy constructor. - */ - wxRichTextImage(const wxRichTextImage& obj): wxRichTextObject(obj) { Copy(obj); } - - /** - Destructor. - */ - ~wxRichTextImage(); - - /** - Initialisation. - */ - void Init(); - -// Overridables - - virtual bool Draw(wxDC& dc, wxRichTextDrawingContext& context, const wxRichTextRange& range, const wxRichTextSelection& selection, const wxRect& rect, int descent, int style) wxOVERRIDE; - - virtual bool Layout(wxDC& dc, wxRichTextDrawingContext& context, const wxRect& rect, const wxRect& parentRect, int style) wxOVERRIDE; - - virtual bool GetRangeSize(const wxRichTextRange& range, wxSize& size, int& descent, wxDC& dc, wxRichTextDrawingContext& context, int flags, const wxPoint& position = wxPoint(0,0), const wxSize& parentSize = wxDefaultSize, wxArrayInt* partialExtents = NULL) const wxOVERRIDE; - - /** - Returns the 'natural' size for this object - the image size. - */ - virtual wxTextAttrSize GetNaturalSize() const wxOVERRIDE; - - virtual bool IsEmpty() const wxOVERRIDE { return false; /* !m_imageBlock.IsOk(); */ } - - virtual bool CanEditProperties() const wxOVERRIDE { return true; } - - virtual bool EditProperties(wxWindow* parent, wxRichTextBuffer* buffer) wxOVERRIDE; - - virtual wxString GetPropertiesMenuLabel() const wxOVERRIDE { return wxGetTranslation("&Picture"); } - - virtual bool UsesParagraphAttributes() const wxOVERRIDE { return false; } - -#if wxUSE_XML - virtual bool ImportFromXML(wxRichTextBuffer* buffer, wxXmlNode* node, wxRichTextXMLHandler* handler, bool* recurse) wxOVERRIDE; -#endif - -#if wxRICHTEXT_HAVE_DIRECT_OUTPUT - virtual bool ExportXML(wxOutputStream& stream, int indent, wxRichTextXMLHandler* handler) wxOVERRIDE; -#endif - -#if wxRICHTEXT_HAVE_XMLDOCUMENT_OUTPUT - virtual bool ExportXML(wxXmlNode* parent, wxRichTextXMLHandler* handler) wxOVERRIDE; -#endif - - // Images can be floatable (optionally). - virtual bool IsFloatable() const wxOVERRIDE { return true; } - - virtual wxString GetXMLNodeName() const wxOVERRIDE { return wxT("image"); } - -// Accessors - - /** - Returns the image cache (a scaled bitmap). - */ - const wxBitmap& GetImageCache() const { return m_imageCache; } - - /** - Sets the image cache. - */ - void SetImageCache(const wxBitmap& bitmap) { m_imageCache = bitmap; m_originalImageSize = wxSize(bitmap.GetWidth(), bitmap.GetHeight()); m_imageState = ImageState_Loaded; } - - /** - Resets the image cache. - */ - void ResetImageCache() { m_imageCache = wxNullBitmap; m_originalImageSize = wxSize(-1, -1); m_imageState = ImageState_Unloaded; } - - /** - Returns the image block containing the raw data. - */ - wxRichTextImageBlock& GetImageBlock() { return m_imageBlock; } - -// Operations - - /** - Copies the image object. - */ - void Copy(const wxRichTextImage& obj); - - /** - Clones the image object. - */ - virtual wxRichTextObject* Clone() const wxOVERRIDE { return new wxRichTextImage(*this); } - - /** - Creates a cached image at the required size. - */ - virtual bool LoadImageCache(wxDC& dc, wxRichTextDrawingContext& context, wxSize& retImageSize, bool resetCache = false, const wxSize& parentSize = wxDefaultSize); - - /** - Do the loading and scaling - */ - virtual bool LoadAndScaleImageCache(wxImage& image, const wxSize& sz, wxRichTextDrawingContext& context, bool& changed); - - /** - Gets the original image size. - */ - wxSize GetOriginalImageSize() const { return m_originalImageSize; } - - /** - Sets the original image size. - */ - void SetOriginalImageSize(const wxSize& sz) { m_originalImageSize = sz; } - - /** - Gets the image state. - */ - int GetImageState() const { return m_imageState; } - - /** - Sets the image state. - */ - void SetImageState(int state) { m_imageState = state; } - -protected: - wxRichTextImageBlock m_imageBlock; - wxBitmap m_imageCache; - wxSize m_originalImageSize; - int m_imageState; -}; - -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextCommand; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextAction; - -/** - @class wxRichTextBuffer - - This is a kind of paragraph layout box, used to represent the whole buffer. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextParagraphLayoutBox, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextBuffer: public wxRichTextParagraphLayoutBox -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextBuffer); -public: -// Constructors - - /** - Default constructor. - */ - wxRichTextBuffer() { Init(); } - - /** - Copy constructor. - */ - wxRichTextBuffer(const wxRichTextBuffer& obj): wxRichTextParagraphLayoutBox() { Init(); Copy(obj); } - - virtual ~wxRichTextBuffer() ; - -// Accessors - - /** - Returns the command processor. - A text buffer always creates its own command processor when it is initialized. - */ - wxCommandProcessor* GetCommandProcessor() const { return m_commandProcessor; } - - /** - Sets style sheet, if any. This will allow the application to use named character and paragraph - styles found in the style sheet. - - Neither the buffer nor the control owns the style sheet so must be deleted by the application. - */ - void SetStyleSheet(wxRichTextStyleSheet* styleSheet) { m_styleSheet = styleSheet; } - - /** - Returns the style sheet. - */ - virtual wxRichTextStyleSheet* GetStyleSheet() const wxOVERRIDE { return m_styleSheet; } - - /** - Sets the style sheet and sends a notification of the change. - */ - bool SetStyleSheetAndNotify(wxRichTextStyleSheet* sheet); - - /** - Pushes the style sheet to the top of the style sheet stack. - */ - bool PushStyleSheet(wxRichTextStyleSheet* styleSheet); - - /** - Pops the style sheet from the top of the style sheet stack. - */ - wxRichTextStyleSheet* PopStyleSheet(); - - /** - Returns the table storing fonts, for quick access and font reuse. - */ - wxRichTextFontTable& GetFontTable() { return m_fontTable; } - - /** - Returns the table storing fonts, for quick access and font reuse. - */ - const wxRichTextFontTable& GetFontTable() const { return m_fontTable; } - - /** - Sets table storing fonts, for quick access and font reuse. - */ - void SetFontTable(const wxRichTextFontTable& table) { m_fontTable = table; } - - /** - Sets the scale factor for displaying fonts, for example for more comfortable - editing. - */ - void SetFontScale(double fontScale); - - /** - Returns the scale factor for displaying fonts, for example for more comfortable - editing. - */ - double GetFontScale() const { return m_fontScale; } - - /** - Sets the scale factor for displaying certain dimensions such as indentation and - inter-paragraph spacing. This can be useful when editing in a small control - where you still want legible text, but a minimum of wasted white space. - */ - void SetDimensionScale(double dimScale); - - /** - Returns the scale factor for displaying certain dimensions such as indentation - and inter-paragraph spacing. - */ - double GetDimensionScale() const { return m_dimensionScale; } - -// Operations - - /** - Initialisation. - */ - void Init(); - - /** - Clears the buffer, adds an empty paragraph, and clears the command processor. - */ - virtual void ResetAndClearCommands(); - -#if wxUSE_FFILE && wxUSE_STREAMS - //@{ - /** - Loads content from a file. - Not all handlers will implement file loading. - */ - virtual bool LoadFile(const wxString& filename, wxRichTextFileType type = wxRICHTEXT_TYPE_ANY); - //@} - - //@{ - /** - Saves content to a file. - Not all handlers will implement file saving. - */ - virtual bool SaveFile(const wxString& filename, wxRichTextFileType type = wxRICHTEXT_TYPE_ANY); - //@} -#endif // wxUSE_FFILE - -#if wxUSE_STREAMS - //@{ - /** - Loads content from a stream. - Not all handlers will implement loading from a stream. - */ - virtual bool LoadFile(wxInputStream& stream, wxRichTextFileType type = wxRICHTEXT_TYPE_ANY); - //@} - - //@{ - /** - Saves content to a stream. - Not all handlers will implement saving to a stream. - */ - virtual bool SaveFile(wxOutputStream& stream, wxRichTextFileType type = wxRICHTEXT_TYPE_ANY); - //@} -#endif // wxUSE_STREAMS - - /** - Sets the handler flags, controlling loading and saving. - */ - void SetHandlerFlags(int flags) { m_handlerFlags = flags; } - - /** - Gets the handler flags, controlling loading and saving. - */ - int GetHandlerFlags() const { return m_handlerFlags; } - - /** - Convenience function to add a paragraph of text. - */ - virtual wxRichTextRange AddParagraph(const wxString& text, wxRichTextAttr* paraStyle = NULL) wxOVERRIDE { Modify(); return wxRichTextParagraphLayoutBox::AddParagraph(text, paraStyle); } - - /** - Begin collapsing undo/redo commands. Note that this may not work properly - if combining commands that delete or insert content, changing ranges for - subsequent actions. - - @a cmdName should be the name of the combined command that will appear - next to Undo and Redo in the edit menu. - */ - virtual bool BeginBatchUndo(const wxString& cmdName); - - /** - End collapsing undo/redo commands. - */ - virtual bool EndBatchUndo(); - - /** - Returns @true if we are collapsing commands. - */ - virtual bool BatchingUndo() const { return m_batchedCommandDepth > 0; } - - /** - Submit the action immediately, or delay according to whether collapsing is on. - */ - virtual bool SubmitAction(wxRichTextAction* action); - - /** - Returns the collapsed command. - */ - virtual wxRichTextCommand* GetBatchedCommand() const { return m_batchedCommand; } - - /** - Begin suppressing undo/redo commands. The way undo is suppressed may be implemented - differently by each command. If not dealt with by a command implementation, then - it will be implemented automatically by not storing the command in the undo history - when the action is submitted to the command processor. - */ - virtual bool BeginSuppressUndo(); - - /** - End suppressing undo/redo commands. - */ - virtual bool EndSuppressUndo(); - - /** - Are we suppressing undo?? - */ - virtual bool SuppressingUndo() const { return m_suppressUndo > 0; } - - /** - Copy the range to the clipboard. - */ - virtual bool CopyToClipboard(const wxRichTextRange& range); - - /** - Paste the clipboard content to the buffer. - */ - virtual bool PasteFromClipboard(long position); - - /** - Returns @true if we can paste from the clipboard. - */ - virtual bool CanPasteFromClipboard() const; - - /** - Begin using a style. - */ - virtual bool BeginStyle(const wxRichTextAttr& style); - - /** - End the style. - */ - virtual bool EndStyle(); - - /** - End all styles. - */ - virtual bool EndAllStyles(); - - /** - Clears the style stack. - */ - virtual void ClearStyleStack(); - - /** - Returns the size of the style stack, for example to check correct nesting. - */ - virtual size_t GetStyleStackSize() const { return m_attributeStack.GetCount(); } - - /** - Begins using bold. - */ - bool BeginBold(); - - /** - Ends using bold. - */ - bool EndBold() { return EndStyle(); } - - /** - Begins using italic. - */ - bool BeginItalic(); - - /** - Ends using italic. - */ - bool EndItalic() { return EndStyle(); } - - /** - Begins using underline. - */ - bool BeginUnderline(); - - /** - Ends using underline. - */ - bool EndUnderline() { return EndStyle(); } - - /** - Begins using point size. - */ - bool BeginFontSize(int pointSize); - - /** - Ends using point size. - */ - bool EndFontSize() { return EndStyle(); } - - /** - Begins using this font. - */ - bool BeginFont(const wxFont& font); - - /** - Ends using a font. - */ - bool EndFont() { return EndStyle(); } - - /** - Begins using this colour. - */ - bool BeginTextColour(const wxColour& colour); - - /** - Ends using a colour. - */ - bool EndTextColour() { return EndStyle(); } - - /** - Begins using alignment. - */ - bool BeginAlignment(wxTextAttrAlignment alignment); - - /** - Ends alignment. - */ - bool EndAlignment() { return EndStyle(); } - - /** - Begins using @a leftIndent for the left indent, and optionally @a leftSubIndent for - the sub-indent. Both are expressed in tenths of a millimetre. - - The sub-indent is an offset from the left of the paragraph, and is used for all - but the first line in a paragraph. A positive value will cause the first line to appear - to the left of the subsequent lines, and a negative value will cause the first line to be - indented relative to the subsequent lines. - */ - bool BeginLeftIndent(int leftIndent, int leftSubIndent = 0); - - /** - Ends left indent. - */ - bool EndLeftIndent() { return EndStyle(); } - - /** - Begins a right indent, specified in tenths of a millimetre. - */ - bool BeginRightIndent(int rightIndent); - - /** - Ends right indent. - */ - bool EndRightIndent() { return EndStyle(); } - - /** - Begins paragraph spacing; pass the before-paragraph and after-paragraph spacing - in tenths of a millimetre. - */ - bool BeginParagraphSpacing(int before, int after); - - /** - Ends paragraph spacing. - */ - bool EndParagraphSpacing() { return EndStyle(); } - - /** - Begins line spacing using the specified value. @e spacing is a multiple, where - 10 means single-spacing, 15 means 1.5 spacing, and 20 means double spacing. - - The ::wxTextAttrLineSpacing enumeration values are defined for convenience. - */ - bool BeginLineSpacing(int lineSpacing); - - /** - Ends line spacing. - */ - bool EndLineSpacing() { return EndStyle(); } - - /** - Begins numbered bullet. - - This call will be needed for each item in the list, and the - application should take care of incrementing the numbering. - - @a bulletNumber is a number, usually starting with 1. - @a leftIndent and @a leftSubIndent are values in tenths of a millimetre. - @a bulletStyle is a bitlist of the following values: - - wxRichTextBuffer uses indentation to render a bulleted item. - The left indent is the distance between the margin and the bullet. - The content of the paragraph, including the first line, starts - at leftMargin + leftSubIndent. - So the distance between the left edge of the bullet and the - left of the actual paragraph is leftSubIndent. - */ - bool BeginNumberedBullet(int bulletNumber, int leftIndent, int leftSubIndent, int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_ARABIC|wxTEXT_ATTR_BULLET_STYLE_PERIOD); - - /** - Ends numbered bullet. - */ - bool EndNumberedBullet() { return EndStyle(); } - - /** - Begins applying a symbol bullet, using a character from the current font. - - See BeginNumberedBullet() for an explanation of how indentation is used - to render the bulleted paragraph. - */ - bool BeginSymbolBullet(const wxString& symbol, int leftIndent, int leftSubIndent, int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_SYMBOL); - - /** - Ends symbol bullet. - */ - bool EndSymbolBullet() { return EndStyle(); } - - /** - Begins applying a standard bullet, using one of the standard bullet names - (currently @c standard/circle or @c standard/square. - - See BeginNumberedBullet() for an explanation of how indentation is used to - render the bulleted paragraph. - */ - bool BeginStandardBullet(const wxString& bulletName, int leftIndent, int leftSubIndent, int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_STANDARD); - - /** - Ends standard bullet. - */ - bool EndStandardBullet() { return EndStyle(); } - - /** - Begins named character style. - */ - bool BeginCharacterStyle(const wxString& characterStyle); - - /** - Ends named character style. - */ - bool EndCharacterStyle() { return EndStyle(); } - - /** - Begins named paragraph style. - */ - bool BeginParagraphStyle(const wxString& paragraphStyle); - - /** - Ends named character style. - */ - bool EndParagraphStyle() { return EndStyle(); } - - /** - Begins named list style. - - Optionally, you can also pass a level and a number. - */ - bool BeginListStyle(const wxString& listStyle, int level = 1, int number = 1); - - /** - Ends named character style. - */ - bool EndListStyle() { return EndStyle(); } - - /** - Begins applying wxTEXT_ATTR_URL to the content. - - Pass a URL and optionally, a character style to apply, since it is common - to mark a URL with a familiar style such as blue text with underlining. - */ - bool BeginURL(const wxString& url, const wxString& characterStyle = wxEmptyString); - - /** - Ends URL. - */ - bool EndURL() { return EndStyle(); } - -// Event handling - - /** - Adds an event handler. - - A buffer associated with a control has the control as the only event handler, - but the application is free to add more if further notification is required. - All handlers are notified of an event originating from the buffer, such as - the replacement of a style sheet during loading. - - The buffer never deletes any of the event handlers, unless RemoveEventHandler() - is called with @true as the second argument. - */ - bool AddEventHandler(wxEvtHandler* handler); - - /** - Removes an event handler from the buffer's list of handlers, deleting the - object if @a deleteHandler is @true. - */ - bool RemoveEventHandler(wxEvtHandler* handler, bool deleteHandler = false); - - /** - Clear event handlers. - */ - void ClearEventHandlers(); - - /** - Send event to event handlers. If sendToAll is true, will send to all event handlers, - otherwise will stop at the first successful one. - */ - bool SendEvent(wxEvent& event, bool sendToAll = true); - -// Implementation - - virtual int HitTest(wxDC& dc, wxRichTextDrawingContext& context, const wxPoint& pt, long& textPosition, wxRichTextObject** obj, wxRichTextObject** contextObj, int flags = 0) wxOVERRIDE; - - /** - Copies the buffer. - */ - void Copy(const wxRichTextBuffer& obj); - - /** - Assignment operator. - */ - void operator= (const wxRichTextBuffer& obj) { Copy(obj); } - - /** - Clones the buffer. - */ - virtual wxRichTextObject* Clone() const wxOVERRIDE { return new wxRichTextBuffer(*this); } - - /** - Submits a command to insert paragraphs. - */ - bool InsertParagraphsWithUndo(long pos, const wxRichTextParagraphLayoutBox& paragraphs, wxRichTextCtrl* ctrl, int flags = 0); - - /** - Submits a command to insert the given text. - */ - bool InsertTextWithUndo(long pos, const wxString& text, wxRichTextCtrl* ctrl, int flags = 0); - - /** - Submits a command to insert a newline. - */ - bool InsertNewlineWithUndo(long pos, wxRichTextCtrl* ctrl, int flags = 0); - - /** - Submits a command to insert the given image. - */ - bool InsertImageWithUndo(long pos, const wxRichTextImageBlock& imageBlock, wxRichTextCtrl* ctrl, int flags = 0, - const wxRichTextAttr& textAttr = wxRichTextAttr()); - - /** - Submits a command to insert an object. - */ - wxRichTextObject* InsertObjectWithUndo(long pos, wxRichTextObject *object, wxRichTextCtrl* ctrl, int flags); - - /** - Submits a command to delete this range. - */ - bool DeleteRangeWithUndo(const wxRichTextRange& range, wxRichTextCtrl* ctrl); - - /** - Mark modified. - */ - void Modify(bool modify = true) { m_modified = modify; } - - /** - Returns @true if the buffer was modified. - */ - bool IsModified() const { return m_modified; } - - //@{ - /** - Dumps contents of buffer for debugging purposes. - */ - virtual void Dump(); - virtual void Dump(wxTextOutputStream& stream) wxOVERRIDE { wxRichTextParagraphLayoutBox::Dump(stream); } - //@} - - /** - Returns the file handlers. - */ - static wxList& GetHandlers() { return sm_handlers; } - - /** - Adds a file handler to the end. - */ - static void AddHandler(wxRichTextFileHandler *handler); - - /** - Inserts a file handler at the front. - */ - static void InsertHandler(wxRichTextFileHandler *handler); - - /** - Removes a file handler. - */ - static bool RemoveHandler(const wxString& name); - - /** - Finds a file handler by name. - */ - static wxRichTextFileHandler *FindHandler(const wxString& name); - - /** - Finds a file handler by extension and type. - */ - static wxRichTextFileHandler *FindHandler(const wxString& extension, wxRichTextFileType imageType); - - /** - Finds a handler by filename or, if supplied, type. - */ - static wxRichTextFileHandler *FindHandlerFilenameOrType(const wxString& filename, - wxRichTextFileType imageType); - - /** - Finds a handler by type. - */ - static wxRichTextFileHandler *FindHandler(wxRichTextFileType imageType); - - /** - Gets a wildcard incorporating all visible handlers. If @a types is present, - it will be filled with the file type corresponding to each filter. This can be - used to determine the type to pass to LoadFile given a selected filter. - */ - static wxString GetExtWildcard(bool combine = false, bool save = false, wxArrayInt* types = NULL); - - /** - Clean up file handlers. - */ - static void CleanUpHandlers(); - - /** - Initialise the standard file handlers. - Currently, only the plain text loading/saving handler is initialised by default. - */ - static void InitStandardHandlers(); - - /** - Returns the drawing handlers. - */ - static wxList& GetDrawingHandlers() { return sm_drawingHandlers; } - - /** - Adds a drawing handler to the end. - */ - static void AddDrawingHandler(wxRichTextDrawingHandler *handler); - - /** - Inserts a drawing handler at the front. - */ - static void InsertDrawingHandler(wxRichTextDrawingHandler *handler); - - /** - Removes a drawing handler. - */ - static bool RemoveDrawingHandler(const wxString& name); - - /** - Finds a drawing handler by name. - */ - static wxRichTextDrawingHandler *FindDrawingHandler(const wxString& name); - - /** - Clean up drawing handlers. - */ - static void CleanUpDrawingHandlers(); - - /** - Returns the field types. - */ - static wxRichTextFieldTypeHashMap& GetFieldTypes() { return sm_fieldTypes; } - - /** - Adds a field type. - - @see RemoveFieldType(), FindFieldType(), wxRichTextField, wxRichTextFieldType, wxRichTextFieldTypeStandard - - */ - static void AddFieldType(wxRichTextFieldType *fieldType); - - /** - Removes a field type by name. - - @see AddFieldType(), FindFieldType(), wxRichTextField, wxRichTextFieldType, wxRichTextFieldTypeStandard - */ - static bool RemoveFieldType(const wxString& name); - - /** - Finds a field type by name. - - @see RemoveFieldType(), AddFieldType(), wxRichTextField, wxRichTextFieldType, wxRichTextFieldTypeStandard - */ - static wxRichTextFieldType *FindFieldType(const wxString& name); - - /** - Cleans up field types. - */ - static void CleanUpFieldTypes(); - - /** - Returns the renderer object. - */ - static wxRichTextRenderer* GetRenderer() { return sm_renderer; } - - /** - Sets @a renderer as the object to be used to render certain aspects of the - content, such as bullets. - - You can override default rendering by deriving a new class from - wxRichTextRenderer or wxRichTextStdRenderer, overriding one or more - virtual functions, and setting an instance of the class using this function. - */ - static void SetRenderer(wxRichTextRenderer* renderer); - - /** - Returns the minimum margin between bullet and paragraph in 10ths of a mm. - */ - static int GetBulletRightMargin() { return sm_bulletRightMargin; } - - /** - Sets the minimum margin between bullet and paragraph in 10ths of a mm. - */ - static void SetBulletRightMargin(int margin) { sm_bulletRightMargin = margin; } - - /** - Returns the factor to multiply by character height to get a reasonable bullet size. - */ - static float GetBulletProportion() { return sm_bulletProportion; } - - /** - Sets the factor to multiply by character height to get a reasonable bullet size. - */ - static void SetBulletProportion(float prop) { sm_bulletProportion = prop; } - - /** - Returns the scale factor for calculating dimensions. - */ - double GetScale() const { return m_scale; } - - /** - Sets the scale factor for calculating dimensions. - */ - void SetScale(double scale) { m_scale = scale; } - - /** - Sets the floating layout mode. Pass @false to speed up editing by not performing - floating layout. This setting affects all buffers. - - */ - static void SetFloatingLayoutMode(bool mode) { sm_floatingLayoutMode = mode; } - - /** - Returns the floating layout mode. The default is @true, where objects - are laid out according to their floating status. - */ - static bool GetFloatingLayoutMode() { return sm_floatingLayoutMode; } - -protected: - - /// Command processor - wxCommandProcessor* m_commandProcessor; - - /// Table storing fonts - wxRichTextFontTable m_fontTable; - - /// Has been modified? - bool m_modified; - - /// Collapsed command stack - int m_batchedCommandDepth; - - /// Name for collapsed command - wxString m_batchedCommandsName; - - /// Current collapsed command accumulating actions - wxRichTextCommand* m_batchedCommand; - - /// Whether to suppress undo - int m_suppressUndo; - - /// Style sheet, if any - wxRichTextStyleSheet* m_styleSheet; - - /// List of event handlers that will be notified of events - wxList m_eventHandlers; - - /// Stack of attributes for convenience functions - wxList m_attributeStack; - - /// Flags to be passed to handlers - int m_handlerFlags; - - /// File handlers - static wxList sm_handlers; - - /// Drawing handlers - static wxList sm_drawingHandlers; - - /// Field types - static wxRichTextFieldTypeHashMap sm_fieldTypes; - - /// Renderer - static wxRichTextRenderer* sm_renderer; - - /// Minimum margin between bullet and paragraph in 10ths of a mm - static int sm_bulletRightMargin; - - /// Factor to multiply by character height to get a reasonable bullet size - static float sm_bulletProportion; - - /// Floating layout mode, @true by default - static bool sm_floatingLayoutMode; - - /// Scaling factor in use: needed to calculate correct dimensions when printing - double m_scale; - - /// Font scale for adjusting the text size when editing - double m_fontScale; - - /// Dimension scale for reducing redundant whitespace when editing - double m_dimensionScale; -}; - -/** - @class wxRichTextCell - - wxRichTextCell is the cell in a table. - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextCell: public wxRichTextBox -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextCell); -public: -// Constructors - - /** - Default constructor; optionally pass the parent object. - */ - - wxRichTextCell(wxRichTextObject* parent = NULL); - - /** - Copy constructor. - */ - - wxRichTextCell(const wxRichTextCell& obj): wxRichTextBox() { Copy(obj); } - -// Overridables - - virtual bool Draw(wxDC& dc, wxRichTextDrawingContext& context, const wxRichTextRange& range, const wxRichTextSelection& selection, const wxRect& rect, int descent, int style) wxOVERRIDE; - - virtual int HitTest(wxDC& dc, wxRichTextDrawingContext& context, const wxPoint& pt, long& textPosition, wxRichTextObject** obj, wxRichTextObject** contextObj, int flags = 0) wxOVERRIDE; - - virtual bool AdjustAttributes(wxRichTextAttr& attr, wxRichTextDrawingContext& context) wxOVERRIDE; - - virtual wxString GetXMLNodeName() const wxOVERRIDE { return wxT("cell"); } - - virtual bool CanEditProperties() const wxOVERRIDE { return true; } - - virtual bool EditProperties(wxWindow* parent, wxRichTextBuffer* buffer) wxOVERRIDE; - - virtual wxString GetPropertiesMenuLabel() const wxOVERRIDE { return wxGetTranslation("&Cell"); } - - /// Don't allow a cell to be deleted in Defragment - virtual bool IsEmpty() const wxOVERRIDE { return false; } - -// Accessors - - /** - Returns the column span. The default is 1. - */ - int GetColSpan() const; - - /** - Sets the column span. - */ - void SetColSpan(int span); - - /** - Returns the row span. The default is 1. - */ - int GetRowSpan() const; - - /** - Sets the row span. - */ - void SetRowSpan(int span); - -// Operations - - virtual wxRichTextObject* Clone() const wxOVERRIDE { return new wxRichTextCell(*this); } - - void Copy(const wxRichTextCell& obj); - -protected: -}; - -/** - @class wxRichTextTable - - wxRichTextTable represents a table with arbitrary columns and rows. - */ - -WX_DEFINE_ARRAY_PTR(wxRichTextObject*, wxRichTextObjectPtrArray); -WX_DECLARE_USER_EXPORTED_OBJARRAY(wxRichTextObjectPtrArray, wxRichTextObjectPtrArrayArray, WXDLLIMPEXP_RICHTEXT); - -class WXDLLIMPEXP_RICHTEXT wxRichTextTable: public wxRichTextBox -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextTable); -public: - -// Constructors - - /** - Default constructor; optionally pass the parent object. - */ - - wxRichTextTable(wxRichTextObject* parent = NULL); - - /** - Copy constructor. - */ - - wxRichTextTable(const wxRichTextTable& obj): wxRichTextBox() { Copy(obj); } - -// Overridables - - virtual bool Draw(wxDC& dc, wxRichTextDrawingContext& context, const wxRichTextRange& range, const wxRichTextSelection& selection, const wxRect& rect, int descent, int style) wxOVERRIDE; - - virtual int HitTest(wxDC& dc, wxRichTextDrawingContext& context, const wxPoint& pt, long& textPosition, wxRichTextObject** obj, wxRichTextObject** contextObj, int flags = 0) wxOVERRIDE; - - virtual bool AdjustAttributes(wxRichTextAttr& attr, wxRichTextDrawingContext& context) wxOVERRIDE; - - virtual wxString GetXMLNodeName() const wxOVERRIDE { return wxT("table"); } - - virtual bool Layout(wxDC& dc, wxRichTextDrawingContext& context, const wxRect& rect, const wxRect& parentRect, int style) wxOVERRIDE; - - virtual bool GetRangeSize(const wxRichTextRange& range, wxSize& size, int& descent, wxDC& dc, wxRichTextDrawingContext& context, int flags, const wxPoint& position = wxPoint(0,0), const wxSize& parentSize = wxDefaultSize, wxArrayInt* partialExtents = NULL) const wxOVERRIDE; - - virtual bool DeleteRange(const wxRichTextRange& range) wxOVERRIDE; - - virtual wxString GetTextForRange(const wxRichTextRange& range) const wxOVERRIDE; - -#if wxUSE_XML - virtual bool ImportFromXML(wxRichTextBuffer* buffer, wxXmlNode* node, wxRichTextXMLHandler* handler, bool* recurse) wxOVERRIDE; -#endif - -#if wxRICHTEXT_HAVE_DIRECT_OUTPUT - virtual bool ExportXML(wxOutputStream& stream, int indent, wxRichTextXMLHandler* handler) wxOVERRIDE; -#endif - -#if wxRICHTEXT_HAVE_XMLDOCUMENT_OUTPUT - virtual bool ExportXML(wxXmlNode* parent, wxRichTextXMLHandler* handler) wxOVERRIDE; -#endif - - virtual bool FindPosition(wxDC& dc, wxRichTextDrawingContext& context, long index, wxPoint& pt, int* height, bool forceLineStart) wxOVERRIDE; - - virtual void CalculateRange(long start, long& end) wxOVERRIDE; - - // Can this object handle the selections of its children? FOr example, a table. - virtual bool HandlesChildSelections() const wxOVERRIDE { return true; } - - /// Returns a selection object specifying the selections between start and end character positions. - /// For example, a table would deduce what cells (of range length 1) are selected when dragging across the table. - virtual wxRichTextSelection GetSelection(long start, long end) const wxOVERRIDE; - - virtual bool CanEditProperties() const wxOVERRIDE { return true; } - - virtual bool EditProperties(wxWindow* parent, wxRichTextBuffer* buffer) wxOVERRIDE; - - virtual wxString GetPropertiesMenuLabel() const wxOVERRIDE { return wxGetTranslation("&Table"); } - - // Returns true if objects of this class can accept the focus, i.e. a call to SetFocusObject - // is possible. For example, containers supporting text, such as a text box object, can accept the focus, - // but a table can't (set the focus to individual cells instead). - virtual bool AcceptsFocus() const wxOVERRIDE { return false; } - -// Accessors - - /** - Returns the cells array. - */ - const wxRichTextObjectPtrArrayArray& GetCells() const { return m_cells; } - - /** - Returns the cells array. - */ - wxRichTextObjectPtrArrayArray& GetCells() { return m_cells; } - - /** - Returns the row count. - */ - int GetRowCount() const { return m_rowCount; } - - /** - Sets the row count. - */ - void SetRowCount(int count) { m_rowCount = count; } - - /** - Returns the column count. - */ - int GetColumnCount() const { return m_colCount; } - - /** - Sets the column count. - */ - void SetColumnCount(int count) { m_colCount = count; } - - /** - Returns the cell at the given row/column position. - */ - virtual wxRichTextCell* GetCell(int row, int col) const; - - /** - Returns the cell at the given character position (in the range of the table). - */ - virtual wxRichTextCell* GetCell(long pos) const; - - /** - Returns the row/column for a given character position. - */ - virtual bool GetCellRowColumnPosition(long pos, int& row, int& col) const; - - /** - Returns the coordinates of the cell with keyboard focus, or (-1,-1) if none. - */ - virtual wxPosition GetFocusedCell() const; - -// Operations - - /** - Clears the table. - */ - - virtual void ClearTable(); - - /** - Creates a table of the given dimensions. - */ - - virtual bool CreateTable(int rows, int cols); - - /** - Sets the attributes for the cells specified by the selection. - */ - - virtual bool SetCellStyle(const wxRichTextSelection& selection, const wxRichTextAttr& style, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO); - - /** - Deletes rows from the given row position. - */ - - virtual bool DeleteRows(int startRow, int noRows = 1); - - /** - Deletes columns from the given column position. - */ - - virtual bool DeleteColumns(int startCol, int noCols = 1); - - /** - Adds rows from the given row position. - */ - - virtual bool AddRows(int startRow, int noRows = 1, const wxRichTextAttr& attr = wxRichTextAttr()); - - /** - Adds columns from the given column position. - */ - - virtual bool AddColumns(int startCol, int noCols = 1, const wxRichTextAttr& attr = wxRichTextAttr()); - - // Makes a clone of this object. - virtual wxRichTextObject* Clone() const wxOVERRIDE { return new wxRichTextTable(*this); } - - // Copies this object. - void Copy(const wxRichTextTable& obj); - -protected: - - int m_rowCount; - int m_colCount; - - // An array of rows, each of which is a wxRichTextObjectPtrArray containing - // the cell objects. The cell objects are also children of this object. - // Problem: if boxes are immediate children of a box, this will cause problems - // with wxRichTextParagraphLayoutBox functions (and functions elsewhere) that - // expect to find just paragraphs. May have to adjust the way we handle the - // hierarchy to accept non-paragraph objects in a paragraph layout box. - // We'll be overriding much wxRichTextParagraphLayoutBox functionality so this - // may not be such a problem. Perhaps the table should derive from a different - // class? - wxRichTextObjectPtrArrayArray m_cells; -}; - -/** @class wxRichTextTableBlock - - Stores the coordinates for a block of cells. - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextTableBlock -{ -public: - wxRichTextTableBlock() { Init(); } - wxRichTextTableBlock(int colStart, int colEnd, int rowStart, int rowEnd) - { Init(); m_colStart = colStart; m_colEnd = colEnd; m_rowStart = rowStart; m_rowEnd = rowEnd; } - wxRichTextTableBlock(const wxRichTextTableBlock& block) { Copy(block); } - - void Init() { m_colStart = 0; m_colEnd = 0; m_rowStart = 0; m_rowEnd = 0; } - - void Copy(const wxRichTextTableBlock& block) - { - m_colStart = block.m_colStart; m_colEnd = block.m_colEnd; m_rowStart = block.m_rowStart; m_rowEnd = block.m_rowEnd; - } - void operator=(const wxRichTextTableBlock& block) { Copy(block); } - bool operator==(const wxRichTextTableBlock& block) - { return m_colStart == block.m_colStart && m_colEnd == block.m_colEnd && m_rowStart == block.m_rowStart && m_rowEnd == block.m_rowEnd; } - - /// Computes the block given a table (perhaps about to be edited) and a rich text control - /// that may have a selection. If no selection, the whole table is used. If just the whole content - /// of one cell is selected, this cell only is used. If the cell contents is not selected and - /// requireCellSelection is @false, the focused cell will count as a selected cell. - bool ComputeBlockForSelection(wxRichTextTable* table, wxRichTextCtrl* ctrl, bool requireCellSelection = true); - - /// Does this block represent the whole table? - bool IsWholeTable(wxRichTextTable* table) const; - - /// Returns the cell focused in the table, if any - static wxRichTextCell* GetFocusedCell(wxRichTextCtrl* ctrl); - - int& ColStart() { return m_colStart; } - int ColStart() const { return m_colStart; } - - int& ColEnd() { return m_colEnd; } - int ColEnd() const { return m_colEnd; } - - int& RowStart() { return m_rowStart; } - int RowStart() const { return m_rowStart; } - - int& RowEnd() { return m_rowEnd; } - int RowEnd() const { return m_rowEnd; } - - int m_colStart, m_colEnd, m_rowStart, m_rowEnd; -}; - -/** - The command identifiers for Do/Undo. -*/ - -enum wxRichTextCommandId -{ - wxRICHTEXT_INSERT, - wxRICHTEXT_DELETE, - wxRICHTEXT_CHANGE_ATTRIBUTES, - wxRICHTEXT_CHANGE_STYLE, - wxRICHTEXT_CHANGE_PROPERTIES, - wxRICHTEXT_CHANGE_OBJECT -}; - -/** - @class wxRichTextObjectAddress - - A class for specifying an object anywhere in an object hierarchy, - without using a pointer, necessary since wxRTC commands may delete - and recreate sub-objects so physical object addresses change. An array - of positions (one per hierarchy level) is used. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextCommand -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextObjectAddress -{ -public: - /** - Creates the address given a container and an object. - */ - wxRichTextObjectAddress(wxRichTextParagraphLayoutBox* topLevelContainer, wxRichTextObject* obj) { Create(topLevelContainer, obj); } - /** - */ - wxRichTextObjectAddress() { Init(); } - /** - */ - wxRichTextObjectAddress(const wxRichTextObjectAddress& address) { Copy(address); } - - void Init() {} - - /** - Copies the address. - */ - void Copy(const wxRichTextObjectAddress& address) { m_address = address.m_address; } - - /** - Assignment operator. - */ - void operator=(const wxRichTextObjectAddress& address) { Copy(address); } - - /** - Returns the object specified by the address, given a top level container. - */ - wxRichTextObject* GetObject(wxRichTextParagraphLayoutBox* topLevelContainer) const; - - /** - Creates the address given a container and an object. - */ - bool Create(wxRichTextParagraphLayoutBox* topLevelContainer, wxRichTextObject* obj); - - /** - Returns the array of integers representing the object address. - */ - wxArrayInt& GetAddress() { return m_address; } - - /** - Returns the array of integers representing the object address. - */ - const wxArrayInt& GetAddress() const { return m_address; } - - /** - Sets the address from an array of integers. - */ - void SetAddress(const wxArrayInt& address) { m_address = address; } - -protected: - - wxArrayInt m_address; -}; - -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextAction; - -/** - @class wxRichTextCommand - - Implements a command on the undo/redo stack. A wxRichTextCommand object contains one or more wxRichTextAction - objects, allowing aggregation of a number of operations into one command. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextAction -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextCommand: public wxCommand -{ -public: - /** - Constructor for one action. - */ - wxRichTextCommand(const wxString& name, wxRichTextCommandId id, wxRichTextBuffer* buffer, - wxRichTextParagraphLayoutBox* container, wxRichTextCtrl* ctrl, bool ignoreFirstTime = false); - - /** - Constructor for multiple actions. - */ - wxRichTextCommand(const wxString& name); - - virtual ~wxRichTextCommand(); - - /** - Performs the command. - */ - bool Do() wxOVERRIDE; - - /** - Undoes the command. - */ - bool Undo() wxOVERRIDE; - - /** - Adds an action to the action list. - */ - void AddAction(wxRichTextAction* action); - - /** - Clears the action list. - */ - void ClearActions(); - - /** - Returns the action list. - */ - wxList& GetActions() { return m_actions; } - - /** - Indicate whether the control should be frozen when performing Do/Undo - */ - bool GetFreeze() const { return m_freeze; } - void SetFreeze(bool freeze) { m_freeze = freeze; } - -protected: - - wxList m_actions; - bool m_freeze; -}; - -/** - @class wxRichTextAction - - Implements a part of a command. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextCommand -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextAction: public wxObject -{ -public: - /** - Constructor. @a buffer is the top-level buffer, while @a container is the object within - which the action is taking place. In the simplest case, they are the same. - */ - wxRichTextAction(wxRichTextCommand* cmd, const wxString& name, wxRichTextCommandId id, - wxRichTextBuffer* buffer, wxRichTextParagraphLayoutBox* container, - wxRichTextCtrl* ctrl, bool ignoreFirstTime = false); - - virtual ~wxRichTextAction(); - - /** - Performs the action. - */ - bool Do(); - - /** - Undoes the action. - */ - bool Undo(); - - /** - Updates the control appearance, optimizing if possible given information from the call to Layout. - */ - void UpdateAppearance(long caretPosition, bool sendUpdateEvent = false, - const wxRect& oldFloatRect = wxRect(), - wxArrayInt* optimizationLineCharPositions = NULL, wxArrayInt* optimizationLineYPositions = NULL, - bool isDoCmd = true); - - /** - Replaces the buffer paragraphs with the given fragment. - */ - void ApplyParagraphs(const wxRichTextParagraphLayoutBox& fragment); - - /** - Returns the new fragments. - */ - wxRichTextParagraphLayoutBox& GetNewParagraphs() { return m_newParagraphs; } - - /** - Returns the old fragments. - */ - wxRichTextParagraphLayoutBox& GetOldParagraphs() { return m_oldParagraphs; } - - /** - Returns the attributes, for single-object commands. - */ - wxRichTextAttr& GetAttributes() { return m_attributes; } - - /** - Returns the object to replace the one at the position defined by the container address - and the action's range start position. - */ - wxRichTextObject* GetObject() const { return m_object; } - - /** - Returns the associated rich text control. - */ - wxRichTextCtrl* GetRichTextCtrl() const { return m_ctrl; } - - /** - Stores the object to replace the one at the position defined by the container address - without making an address for it (cf SetObject() and MakeObject()). - */ - void StoreObject(wxRichTextObject* obj) { m_object = obj; } - - /** - Sets the object to replace the one at the position defined by the container address - and the action's range start position. - */ - void SetObject(wxRichTextObject* obj) { m_object = obj; m_objectAddress.Create(m_buffer, m_object); } - - /** - Makes an address from the given object. - */ - void MakeObject(wxRichTextObject* obj) { m_objectAddress.Create(m_buffer, obj); } - - /** - Sets the existing and new objects, for use with wxRICHTEXT_CHANGE_OBJECT. - */ - void SetOldAndNewObjects(wxRichTextObject* oldObj, wxRichTextObject* newObj) { SetObject(oldObj); StoreObject(newObj); } - - /** - Calculate arrays for refresh optimization. - */ - void CalculateRefreshOptimizations(wxArrayInt& optimizationLineCharPositions, wxArrayInt& optimizationLineYPositions, - wxRect& oldFloatRect); - - /** - Sets the position used for e.g. insertion. - */ - void SetPosition(long pos) { m_position = pos; } - - /** - Returns the position used for e.g. insertion. - */ - long GetPosition() const { return m_position; } - - /** - Sets the range for e.g. deletion. - */ - void SetRange(const wxRichTextRange& range) { m_range = range; } - - /** - Returns the range for e.g. deletion. - */ - const wxRichTextRange& GetRange() const { return m_range; } - - /** - Returns the address (nested position) of the container within the buffer being manipulated. - */ - wxRichTextObjectAddress& GetContainerAddress() { return m_containerAddress; } - - /** - Returns the address (nested position) of the container within the buffer being manipulated. - */ - const wxRichTextObjectAddress& GetContainerAddress() const { return m_containerAddress; } - - /** - Sets the address (nested position) of the container within the buffer being manipulated. - */ - void SetContainerAddress(const wxRichTextObjectAddress& address) { m_containerAddress = address; } - - /** - Sets the address (nested position) of the container within the buffer being manipulated. - */ - void SetContainerAddress(wxRichTextParagraphLayoutBox* container, wxRichTextObject* obj) { m_containerAddress.Create(container, obj); } - - /** - Returns the container that this action refers to, using the container address and top-level buffer. - */ - wxRichTextParagraphLayoutBox* GetContainer() const; - - /** - Returns the action name. - */ - const wxString& GetName() const { return m_name; } - - /** - Instructs the first Do() command should be skipped as it's already been applied. - */ - void SetIgnoreFirstTime(bool b) { m_ignoreThis = b; } - - /** - Returns true if the first Do() command should be skipped as it's already been applied. - */ - bool GetIgnoreFirstTime() const { return m_ignoreThis; } - -protected: - // Action name - wxString m_name; - - // Buffer - wxRichTextBuffer* m_buffer; - - // The address (nested position) of the container being manipulated. - // This is necessary because objects are deleted, and we can't - // therefore store actual pointers. - wxRichTextObjectAddress m_containerAddress; - - // Control - wxRichTextCtrl* m_ctrl; - - // Stores the new paragraphs - wxRichTextParagraphLayoutBox m_newParagraphs; - - // Stores the old paragraphs - wxRichTextParagraphLayoutBox m_oldParagraphs; - - // Stores an object to replace the one at the position - // defined by the container address and the action's range start position. - wxRichTextObject* m_object; - - // Stores the attributes - wxRichTextAttr m_attributes; - - // The address of the object being manipulated (used for changing an individual object or its attributes) - wxRichTextObjectAddress m_objectAddress; - - // Stores the old attributes - // wxRichTextAttr m_oldAttributes; - - // The affected range - wxRichTextRange m_range; - - // The insertion point for this command - long m_position; - - // Ignore 1st 'Do' operation because we already did it - bool m_ignoreThis; - - // The command identifier - wxRichTextCommandId m_cmdId; -}; - -/*! - * Handler flags - */ - -// Include style sheet when loading and saving -#define wxRICHTEXT_HANDLER_INCLUDE_STYLESHEET 0x0001 - -// Save images to memory file system in HTML handler -#define wxRICHTEXT_HANDLER_SAVE_IMAGES_TO_MEMORY 0x0010 - -// Save images to files in HTML handler -#define wxRICHTEXT_HANDLER_SAVE_IMAGES_TO_FILES 0x0020 - -// Save images as inline base64 data in HTML handler -#define wxRICHTEXT_HANDLER_SAVE_IMAGES_TO_BASE64 0x0040 - -// Don't write header and footer (or BODY), so we can include the fragment -// in a larger document -#define wxRICHTEXT_HANDLER_NO_HEADER_FOOTER 0x0080 - -// Convert the more common face names to names that will work on the current platform -// in a larger document -#define wxRICHTEXT_HANDLER_CONVERT_FACENAMES 0x0100 - -/** - @class wxRichTextFileHandler - - The base class for file handlers. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextFileHandler: public wxObject -{ - wxDECLARE_CLASS(wxRichTextFileHandler); -public: - /** - Creates a file handler object. - */ - wxRichTextFileHandler(const wxString& name = wxEmptyString, const wxString& ext = wxEmptyString, int type = 0) - : m_name(name), m_extension(ext), m_type(type), m_flags(0), m_visible(true) - { } - -#if wxUSE_STREAMS - /** - Loads the buffer from a stream. - Not all handlers will implement file loading. - */ - bool LoadFile(wxRichTextBuffer *buffer, wxInputStream& stream) - { return DoLoadFile(buffer, stream); } - - /** - Saves the buffer to a stream. - Not all handlers will implement file saving. - */ - bool SaveFile(wxRichTextBuffer *buffer, wxOutputStream& stream) - { return DoSaveFile(buffer, stream); } -#endif - -#if wxUSE_FFILE && wxUSE_STREAMS - /** - Loads the buffer from a file. - */ - virtual bool LoadFile(wxRichTextBuffer *buffer, const wxString& filename); - - /** - Saves the buffer to a file. - */ - virtual bool SaveFile(wxRichTextBuffer *buffer, const wxString& filename); -#endif // wxUSE_STREAMS && wxUSE_STREAMS - - /** - Returns @true if we handle this filename (if using files). By default, checks the extension. - */ - virtual bool CanHandle(const wxString& filename) const; - - /** - Returns @true if we can save using this handler. - */ - virtual bool CanSave() const { return false; } - - /** - Returns @true if we can load using this handler. - */ - virtual bool CanLoad() const { return false; } - - /** - Returns @true if this handler should be visible to the user. - */ - virtual bool IsVisible() const { return m_visible; } - - /** - Sets whether the handler should be visible to the user (via the application's - load and save dialogs). - */ - virtual void SetVisible(bool visible) { m_visible = visible; } - - /** - Sets the name of the handler. - */ - void SetName(const wxString& name) { m_name = name; } - - /** - Returns the name of the handler. - */ - wxString GetName() const { return m_name; } - - /** - Sets the default extension to recognise. - */ - void SetExtension(const wxString& ext) { m_extension = ext; } - - /** - Returns the default extension to recognise. - */ - wxString GetExtension() const { return m_extension; } - - /** - Sets the handler type. - */ - void SetType(int type) { m_type = type; } - - /** - Returns the handler type. - */ - int GetType() const { return m_type; } - - /** - Sets flags that change the behaviour of loading or saving. - See the documentation for each handler class to see what flags are relevant - for each handler. - - You call this function directly if you are using a file handler explicitly - (without going through the text control or buffer LoadFile/SaveFile API). - Or, you can call the control or buffer's SetHandlerFlags function to set - the flags that will be used for subsequent load and save operations. - */ - void SetFlags(int flags) { m_flags = flags; } - - /** - Returns flags controlling how loading and saving is done. - */ - int GetFlags() const { return m_flags; } - - /** - Sets the encoding to use when saving a file. If empty, a suitable encoding is chosen. - */ - void SetEncoding(const wxString& encoding) { m_encoding = encoding; } - - /** - Returns the encoding to use when saving a file. If empty, a suitable encoding is chosen. - */ - const wxString& GetEncoding() const { return m_encoding; } - -protected: - -#if wxUSE_STREAMS - /** - Override to load content from @a stream into @a buffer. - */ - virtual bool DoLoadFile(wxRichTextBuffer *buffer, wxInputStream& stream) = 0; - - /** - Override to save content to @a stream from @a buffer. - */ - virtual bool DoSaveFile(wxRichTextBuffer *buffer, wxOutputStream& stream) = 0; -#endif - - wxString m_name; - wxString m_encoding; - wxString m_extension; - int m_type; - int m_flags; - bool m_visible; -}; - -/** - @class wxRichTextPlainTextHandler - - Implements saving a buffer to plain text. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextFileHandler, wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextPlainTextHandler: public wxRichTextFileHandler -{ - wxDECLARE_CLASS(wxRichTextPlainTextHandler); -public: - wxRichTextPlainTextHandler(const wxString& name = wxT("Text"), - const wxString& ext = wxT("txt"), - wxRichTextFileType type = wxRICHTEXT_TYPE_TEXT) - : wxRichTextFileHandler(name, ext, type) - { } - - // Can we save using this handler? - virtual bool CanSave() const wxOVERRIDE { return true; } - - // Can we load using this handler? - virtual bool CanLoad() const wxOVERRIDE { return true; } - -protected: - -#if wxUSE_STREAMS - virtual bool DoLoadFile(wxRichTextBuffer *buffer, wxInputStream& stream) wxOVERRIDE; - virtual bool DoSaveFile(wxRichTextBuffer *buffer, wxOutputStream& stream) wxOVERRIDE; -#endif - -}; - -/** - @class wxRichTextDrawingHandler - - The base class for custom drawing handlers. - Currently, drawing handlers can provide virtual attributes. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextDrawingHandler: public wxObject -{ - wxDECLARE_CLASS(wxRichTextDrawingHandler); -public: - /** - Creates a drawing handler object. - */ - wxRichTextDrawingHandler(const wxString& name = wxEmptyString) - : m_name(name) - { } - - /** - Returns @true if this object has virtual attributes that we can provide. - */ - virtual bool HasVirtualAttributes(wxRichTextObject* obj) const = 0; - - /** - Provides virtual attributes that we can provide. - */ - virtual bool GetVirtualAttributes(wxRichTextAttr& attr, wxRichTextObject* obj) const = 0; - - /** - Gets the count for mixed virtual attributes for individual positions within the object. - For example, individual characters within a text object may require special highlighting. - */ - virtual int GetVirtualSubobjectAttributesCount(wxRichTextObject* obj) const = 0; - - /** - Gets the mixed virtual attributes for individual positions within the object. - For example, individual characters within a text object may require special highlighting. - Returns the number of virtual attributes found. - */ - virtual int GetVirtualSubobjectAttributes(wxRichTextObject* obj, wxArrayInt& positions, wxRichTextAttrArray& attributes) const = 0; - - /** - Do we have virtual text for this object? Virtual text allows an application - to replace characters in an object for editing and display purposes, for example - for highlighting special characters. - */ - virtual bool HasVirtualText(const wxRichTextPlainText* obj) const = 0; - - /** - Gets the virtual text for this object. - */ - virtual bool GetVirtualText(const wxRichTextPlainText* obj, wxString& text) const = 0; - - /** - Sets the name of the handler. - */ - void SetName(const wxString& name) { m_name = name; } - - /** - Returns the name of the handler. - */ - wxString GetName() const { return m_name; } - -protected: - - wxString m_name; -}; - -#if wxUSE_DATAOBJ - -/** - @class wxRichTextBufferDataObject - - Implements a rich text data object for clipboard transfer. - - @library{wxrichtext} - @category{richtext} - - @see wxDataObjectSimple, wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextBufferDataObject: public wxDataObjectSimple -{ -public: - /** - The constructor doesn't copy the pointer, so it shouldn't go away while this object - is alive. - */ - wxRichTextBufferDataObject(wxRichTextBuffer* richTextBuffer = NULL); - virtual ~wxRichTextBufferDataObject(); - - /** - After a call to this function, the buffer is owned by the caller and it - is responsible for deleting it. - */ - wxRichTextBuffer* GetRichTextBuffer(); - - /** - Returns the id for the new data format. - */ - static const wxChar* GetRichTextBufferFormatId() { return ms_richTextBufferFormatId; } - - // base class pure virtuals - - virtual wxDataFormat GetPreferredFormat(Direction dir) const wxOVERRIDE; - virtual size_t GetDataSize() const wxOVERRIDE; - virtual bool GetDataHere(void *pBuf) const wxOVERRIDE; - virtual bool SetData(size_t len, const void *buf) wxOVERRIDE; - - // prevent warnings - - virtual size_t GetDataSize(const wxDataFormat&) const wxOVERRIDE { return GetDataSize(); } - virtual bool GetDataHere(const wxDataFormat&, void *buf) const wxOVERRIDE { return GetDataHere(buf); } - virtual bool SetData(const wxDataFormat&, size_t len, const void *buf) wxOVERRIDE { return SetData(len, buf); } - -protected: - wxDataFormat m_formatRichTextBuffer; // our custom format - wxRichTextBuffer* m_richTextBuffer; // our data - static const wxChar* ms_richTextBufferFormatId; // our format id -}; - -#endif - -/** - @class wxRichTextRenderer - - This class isolates some common drawing functionality. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextRenderer: public wxObject -{ -public: - /** - Constructor. - */ - wxRichTextRenderer() {} - virtual ~wxRichTextRenderer() {} - - /** - Draws a standard bullet, as specified by the value of GetBulletName. This function should be overridden. - */ - virtual bool DrawStandardBullet(wxRichTextParagraph* paragraph, wxDC& dc, const wxRichTextAttr& attr, const wxRect& rect) = 0; - - /** - Draws a bullet that can be described by text, such as numbered or symbol bullets. This function should be overridden. - */ - virtual bool DrawTextBullet(wxRichTextParagraph* paragraph, wxDC& dc, const wxRichTextAttr& attr, const wxRect& rect, const wxString& text) = 0; - - /** - Draws a bitmap bullet, where the bullet bitmap is specified by the value of GetBulletName. This function should be overridden. - */ - virtual bool DrawBitmapBullet(wxRichTextParagraph* paragraph, wxDC& dc, const wxRichTextAttr& attr, const wxRect& rect) = 0; - - /** - Enumerate the standard bullet names currently supported. This function should be overridden. - */ - virtual bool EnumerateStandardBulletNames(wxArrayString& bulletNames) = 0; - - /** - Measure the bullet. - */ - virtual bool MeasureBullet(wxRichTextParagraph* paragraph, wxDC& dc, const wxRichTextAttr& attr, wxSize& sz) = 0; -}; - -/** - @class wxRichTextStdRenderer - - The standard renderer for drawing bullets. - - @library{wxrichtext} - @category{richtext} - - @see wxRichTextRenderer, wxRichTextBuffer, wxRichTextCtrl -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextStdRenderer: public wxRichTextRenderer -{ -public: - /** - Constructor. - */ - wxRichTextStdRenderer() {} - - // Draw a standard bullet, as specified by the value of GetBulletName - virtual bool DrawStandardBullet(wxRichTextParagraph* paragraph, wxDC& dc, const wxRichTextAttr& attr, const wxRect& rect) wxOVERRIDE; - - // Draw a bullet that can be described by text, such as numbered or symbol bullets - virtual bool DrawTextBullet(wxRichTextParagraph* paragraph, wxDC& dc, const wxRichTextAttr& attr, const wxRect& rect, const wxString& text) wxOVERRIDE; - - // Draw a bitmap bullet, where the bullet bitmap is specified by the value of GetBulletName - virtual bool DrawBitmapBullet(wxRichTextParagraph* paragraph, wxDC& dc, const wxRichTextAttr& attr, const wxRect& rect) wxOVERRIDE; - - // Enumerate the standard bullet names currently supported - virtual bool EnumerateStandardBulletNames(wxArrayString& bulletNames) wxOVERRIDE; - - // Measure the bullet. - virtual bool MeasureBullet(wxRichTextParagraph* paragraph, wxDC& dc, const wxRichTextAttr& attr, wxSize& sz) wxOVERRIDE; - - // Set a font which may depend on text effects. - static void SetFontForBullet(wxRichTextBuffer& buffer, wxDC& dc, const wxRichTextAttr& attr); -}; - -/*! - * Utilities - * - */ - -inline bool wxRichTextHasStyle(int flags, int style) -{ - return ((flags & style) == style); -} - -/// Compare two attribute objects -WXDLLIMPEXP_RICHTEXT bool wxTextAttrEq(const wxRichTextAttr& attr1, const wxRichTextAttr& attr2); -WXDLLIMPEXP_RICHTEXT bool wxTextAttrEq(const wxRichTextAttr& attr1, const wxRichTextAttr& attr2); - -/// Apply one style to another -WXDLLIMPEXP_RICHTEXT bool wxRichTextApplyStyle(wxRichTextAttr& destStyle, const wxRichTextAttr& style, wxRichTextAttr* compareWith = NULL); - -// Remove attributes -WXDLLIMPEXP_RICHTEXT bool wxRichTextRemoveStyle(wxRichTextAttr& destStyle, const wxRichTextAttr& style); - -/// Combine two bitlists -WXDLLIMPEXP_RICHTEXT bool wxRichTextCombineBitlists(int& valueA, int valueB, int& flagsA, int flagsB); - -/// Compare two bitlists -WXDLLIMPEXP_RICHTEXT bool wxRichTextBitlistsEqPartial(int valueA, int valueB, int flags); - -/// Split into paragraph and character styles -WXDLLIMPEXP_RICHTEXT bool wxRichTextSplitParaCharStyles(const wxRichTextAttr& style, wxRichTextAttr& parStyle, wxRichTextAttr& charStyle); - -/// Compare tabs -WXDLLIMPEXP_RICHTEXT bool wxRichTextTabsEq(const wxArrayInt& tabs1, const wxArrayInt& tabs2); - -/// Convert a decimal to Roman numerals -WXDLLIMPEXP_RICHTEXT wxString wxRichTextDecimalToRoman(long n); - -// Collects the attributes that are common to a range of content, building up a note of -// which attributes are absent in some objects and which clash in some objects. -WXDLLIMPEXP_RICHTEXT void wxTextAttrCollectCommonAttributes(wxTextAttr& currentStyle, const wxTextAttr& attr, wxTextAttr& clashingAttr, wxTextAttr& absentAttr); - -WXDLLIMPEXP_RICHTEXT void wxRichTextModuleInit(); - -#endif - // wxUSE_RICHTEXT - -#endif - // _WX_RICHTEXTBUFFER_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextbulletspage.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextbulletspage.h deleted file mode 100644 index 440e7bab..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextbulletspage.h +++ /dev/null @@ -1,220 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextbulletspage.h -// Purpose: Declares the rich text formatting dialog bullets page. -// Author: Julian Smart -// Modified by: -// Created: 10/4/2006 10:32:31 AM -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _RICHTEXTBULLETSPAGE_H_ -#define _RICHTEXTBULLETSPAGE_H_ - -/*! - * Includes - */ - -#include "wx/richtext/richtextdialogpage.h" -#include "wx/spinbutt.h" // for wxSpinEvent - -/*! - * Forward declarations - */ - -////@begin forward declarations -class wxSpinCtrl; -class wxRichTextCtrl; -////@end forward declarations - -/*! - * Control identifiers - */ - -////@begin control identifiers -#define SYMBOL_WXRICHTEXTBULLETSPAGE_STYLE wxTAB_TRAVERSAL -#define SYMBOL_WXRICHTEXTBULLETSPAGE_TITLE wxEmptyString -#define SYMBOL_WXRICHTEXTBULLETSPAGE_IDNAME ID_RICHTEXTBULLETSPAGE -#define SYMBOL_WXRICHTEXTBULLETSPAGE_SIZE wxSize(400, 300) -#define SYMBOL_WXRICHTEXTBULLETSPAGE_POSITION wxDefaultPosition -////@end control identifiers - -/*! - * wxRichTextBulletsPage class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextBulletsPage: public wxRichTextDialogPage -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextBulletsPage); - wxDECLARE_EVENT_TABLE(); - DECLARE_HELP_PROVISION() - -public: - /// Constructors - wxRichTextBulletsPage( ); - wxRichTextBulletsPage( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTBULLETSPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTBULLETSPAGE_SIZE, long style = SYMBOL_WXRICHTEXTBULLETSPAGE_STYLE ); - - /// Creation - bool Create( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTBULLETSPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTBULLETSPAGE_SIZE, long style = SYMBOL_WXRICHTEXTBULLETSPAGE_STYLE ); - - /// Initialise members - void Init(); - - /// Creates the controls and sizers - void CreateControls(); - - /// Updates the bullets preview - void UpdatePreview(); - - /// Transfer data from/to window - virtual bool TransferDataFromWindow() wxOVERRIDE; - virtual bool TransferDataToWindow() wxOVERRIDE; - - /// Gets the attributes associated with the main formatting dialog - wxRichTextAttr* GetAttributes(); - - /// Update for symbol-related controls - void OnSymbolUpdate( wxUpdateUIEvent& event ); - - /// Update for number-related controls - void OnNumberUpdate( wxUpdateUIEvent& event ); - - /// Update for standard bullet-related controls - void OnStandardBulletUpdate( wxUpdateUIEvent& event ); - -////@begin wxRichTextBulletsPage event handler declarations - - /// wxEVT_COMMAND_LISTBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_STYLELISTBOX - void OnStylelistboxSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_PERIODCTRL - void OnPeriodctrlClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_PERIODCTRL - void OnPeriodctrlUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL - void OnParenthesesctrlClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL - void OnParenthesesctrlUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_RIGHTPARENTHESISCTRL - void OnRightParenthesisCtrlClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_RIGHTPARENTHESISCTRL - void OnRightParenthesisCtrlUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_BULLETALIGNMENTCTRL - void OnBulletAlignmentCtrlSelected( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLSTATIC - void OnSymbolstaticUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL - void OnSymbolctrlSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL - void OnSymbolctrlUpdated( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL - void OnSymbolctrlUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL - void OnChooseSymbolClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL - void OnChooseSymbolUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL - void OnSymbolfontctrlSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL - void OnSymbolfontctrlUpdated( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL - void OnSymbolfontctrlUIUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_NAMESTATIC - void OnNamestaticUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTBULLETSPAGE_NAMECTRL - void OnNamectrlSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_NAMECTRL - void OnNamectrlUpdated( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_NAMECTRL - void OnNamectrlUIUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_NUMBERSTATIC - void OnNumberstaticUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL - void OnNumberctrlUpdated( wxSpinEvent& event ); - - /// wxEVT_SCROLL_LINEUP event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL - void OnNumberctrlUp( wxSpinEvent& event ); - - /// wxEVT_SCROLL_LINEDOWN event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL - void OnNumberctrlDown( wxSpinEvent& event ); - - /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL - void OnNumberctrlTextUpdated( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTBULLETSPAGE_NUMBERCTRL - void OnNumberctrlUpdate( wxUpdateUIEvent& event ); - -////@end wxRichTextBulletsPage event handler declarations - -////@begin wxRichTextBulletsPage member function declarations - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end wxRichTextBulletsPage member function declarations - - /// Should we show tooltips? - static bool ShowToolTips(); - -////@begin wxRichTextBulletsPage member variables - wxListBox* m_styleListBox; - wxCheckBox* m_periodCtrl; - wxCheckBox* m_parenthesesCtrl; - wxCheckBox* m_rightParenthesisCtrl; - wxComboBox* m_bulletAlignmentCtrl; - wxComboBox* m_symbolCtrl; - wxComboBox* m_symbolFontCtrl; - wxComboBox* m_bulletNameCtrl; - wxSpinCtrl* m_numberCtrl; - wxRichTextCtrl* m_previewCtrl; - /// Control identifiers - enum { - ID_RICHTEXTBULLETSPAGE = 10300, - ID_RICHTEXTBULLETSPAGE_STYLELISTBOX = 10305, - ID_RICHTEXTBULLETSPAGE_PERIODCTRL = 10313, - ID_RICHTEXTBULLETSPAGE_PARENTHESESCTRL = 10311, - ID_RICHTEXTBULLETSPAGE_RIGHTPARENTHESISCTRL = 10306, - ID_RICHTEXTBULLETSPAGE_BULLETALIGNMENTCTRL = 10315, - ID_RICHTEXTBULLETSPAGE_SYMBOLSTATIC = 10301, - ID_RICHTEXTBULLETSPAGE_SYMBOLCTRL = 10307, - ID_RICHTEXTBULLETSPAGE_CHOOSE_SYMBOL = 10308, - ID_RICHTEXTBULLETSPAGE_SYMBOLFONTCTRL = 10309, - ID_RICHTEXTBULLETSPAGE_NAMESTATIC = 10303, - ID_RICHTEXTBULLETSPAGE_NAMECTRL = 10304, - ID_RICHTEXTBULLETSPAGE_NUMBERSTATIC = 10302, - ID_RICHTEXTBULLETSPAGE_NUMBERCTRL = 10310, - ID_RICHTEXTBULLETSPAGE_PREVIEW_CTRL = 10314 - }; -////@end wxRichTextBulletsPage member variables - - bool m_hasBulletStyle; - bool m_hasBulletNumber; - bool m_hasBulletSymbol; - bool m_dontUpdate; -}; - -#endif - // _RICHTEXTBULLETSPAGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextctrl.h deleted file mode 100644 index a15fe4e6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextctrl.h +++ /dev/null @@ -1,2742 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextctrl.h -// Purpose: A rich edit control -// Author: Julian Smart -// Modified by: -// Created: 2005-09-30 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RICHTEXTCTRL_H_ -#define _WX_RICHTEXTCTRL_H_ - -#include "wx/richtext/richtextbuffer.h" - -#if wxUSE_RICHTEXT - -#include "wx/scrolwin.h" -#include "wx/caret.h" -#include "wx/timer.h" -#include "wx/textctrl.h" - -#if wxUSE_DRAG_AND_DROP -#include "wx/dnd.h" -#endif - -#if !defined(__WXGTK__) && !defined(__WXMAC__) -#define wxRICHTEXT_BUFFERED_PAINTING 1 -#else -#define wxRICHTEXT_BUFFERED_PAINTING 0 -#endif - -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextStyleDefinition; - -/* - * Styles and flags - */ - -/** - Styles -*/ - -#define wxRE_READONLY 0x0010 -#define wxRE_MULTILINE 0x0020 -#define wxRE_CENTRE_CARET 0x8000 -#define wxRE_CENTER_CARET wxRE_CENTRE_CARET - -/** - Flags -*/ - -#define wxRICHTEXT_SHIFT_DOWN 0x01 -#define wxRICHTEXT_CTRL_DOWN 0x02 -#define wxRICHTEXT_ALT_DOWN 0x04 - -/** - Extra flags -*/ - -// Don't draw guide lines around boxes and tables -#define wxRICHTEXT_EX_NO_GUIDELINES 0x00000100 - - -/* - Defaults -*/ - -#define wxRICHTEXT_DEFAULT_OVERALL_SIZE wxSize(-1, -1) -#define wxRICHTEXT_DEFAULT_IMAGE_SIZE wxSize(80, 80) -#define wxRICHTEXT_DEFAULT_SPACING 3 -#define wxRICHTEXT_DEFAULT_MARGIN 3 -#define wxRICHTEXT_DEFAULT_UNFOCUSSED_BACKGROUND wxColour(175, 175, 175) -#define wxRICHTEXT_DEFAULT_FOCUSSED_BACKGROUND wxColour(140, 140, 140) -#define wxRICHTEXT_DEFAULT_UNSELECTED_BACKGROUND wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE) -#define wxRICHTEXT_DEFAULT_TYPE_COLOUR wxColour(0, 0, 200) -#define wxRICHTEXT_DEFAULT_FOCUS_RECT_COLOUR wxColour(100, 80, 80) -#define wxRICHTEXT_DEFAULT_CARET_WIDTH 2 -// Minimum buffer size before delayed layout kicks in -#define wxRICHTEXT_DEFAULT_DELAYED_LAYOUT_THRESHOLD 20000 -// Milliseconds before layout occurs after resize -#define wxRICHTEXT_DEFAULT_LAYOUT_INTERVAL 50 -// Milliseconds before delayed image processing occurs -#define wxRICHTEXT_DEFAULT_DELAYED_IMAGE_PROCESSING_INTERVAL 200 - -/* Identifiers - */ -#define wxID_RICHTEXT_PROPERTIES1 (wxID_HIGHEST + 1) -#define wxID_RICHTEXT_PROPERTIES2 (wxID_HIGHEST + 2) -#define wxID_RICHTEXT_PROPERTIES3 (wxID_HIGHEST + 3) - -/* - Normal selection occurs initially and as user drags within one container. - Common ancestor selection occurs when the user starts dragging across containers - that have a common ancestor, for example the cells in a table. - */ - -enum wxRichTextCtrlSelectionState -{ - wxRichTextCtrlSelectionState_Normal, - wxRichTextCtrlSelectionState_CommonAncestor -}; - -/** - @class wxRichTextContextMenuPropertiesInfo - - wxRichTextContextMenuPropertiesInfo keeps track of objects that appear in the context menu, - whose properties are available to be edited. - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextContextMenuPropertiesInfo -{ -public: - /** - Constructor. - */ - wxRichTextContextMenuPropertiesInfo() { Init(); } - -// Operations - - /** - Initialisation. - */ - void Init() {} - - /** - Adds an item. - */ - bool AddItem(const wxString& label, wxRichTextObject* obj); - - /** - Returns the number of menu items that were added. - */ - int AddMenuItems(wxMenu* menu, int startCmd = wxID_RICHTEXT_PROPERTIES1) const; - - /** - Adds appropriate menu items for the current container and clicked on object - (and container's parent, if appropriate). - */ - int AddItems(wxRichTextCtrl* ctrl, wxRichTextObject* container, wxRichTextObject* obj); - - /** - Clears the items. - */ - void Clear() { m_objects.Clear(); m_labels.Clear(); } - -// Accessors - - /** - Returns the nth label. - */ - wxString GetLabel(int n) const { return m_labels[n]; } - - /** - Returns the nth object. - */ - wxRichTextObject* GetObject(int n) const { return m_objects[n]; } - - /** - Returns the array of objects. - */ - wxRichTextObjectPtrArray& GetObjects() { return m_objects; } - - /** - Returns the array of objects. - */ - const wxRichTextObjectPtrArray& GetObjects() const { return m_objects; } - - /** - Returns the array of labels. - */ - wxArrayString& GetLabels() { return m_labels; } - - /** - Returns the array of labels. - */ - const wxArrayString& GetLabels() const { return m_labels; } - - /** - Returns the number of items. - */ - int GetCount() const { return m_objects.GetCount(); } - - wxRichTextObjectPtrArray m_objects; - wxArrayString m_labels; -}; - -/** - @class wxRichTextCtrl - - wxRichTextCtrl provides a generic, ground-up implementation of a text control - capable of showing multiple styles and images. - - wxRichTextCtrl sends notification events: see wxRichTextEvent. - - It also sends the standard wxTextCtrl events @c wxEVT_TEXT_ENTER and - @c wxEVT_TEXT, and wxTextUrlEvent when URL content is clicked. - - For more information, see the @ref overview_richtextctrl. - - @beginStyleTable - @style{wxRE_CENTRE_CARET} - The control will try to keep the caret line centred vertically while editing. - wxRE_CENTER_CARET is a synonym for this style. - @style{wxRE_MULTILINE} - The control will be multiline (mandatory). - @style{wxRE_READONLY} - The control will not be editable. - @endStyleTable - - @library{wxrichtext} - @category{richtext} - @appearance{richtextctrl.png} - - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextCtrl : public wxControl, - public wxTextCtrlIface, - public wxScrollHelper -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextCtrl); - wxDECLARE_EVENT_TABLE(); - -public: -// Constructors - - /** - Default constructor. - */ - wxRichTextCtrl( ); - - /** - Constructor, creating and showing a rich text control. - - @param parent - Parent window. Must not be @NULL. - @param id - Window identifier. The value @c wxID_ANY indicates a default value. - @param value - Default string. - @param pos - Window position. - @param size - Window size. - @param style - Window style. - @param validator - Window validator. - @param name - Window name. - - @see Create(), wxValidator - */ - wxRichTextCtrl( wxWindow* parent, wxWindowID id = -1, const wxString& value = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxRE_MULTILINE, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxTextCtrlNameStr); - - /** - Destructor. - */ - virtual ~wxRichTextCtrl( ); - -// Operations - - /** - Creates the underlying window. - */ - bool Create( wxWindow* parent, wxWindowID id = -1, const wxString& value = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxRE_MULTILINE, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxTextCtrlNameStr ); - - /** - Initialises the members of the control. - */ - void Init(); - -// Accessors - - /** - Gets the text for the given range. - The end point of range is specified as the last character position of - the span of text, plus one. - */ - virtual wxString GetRange(long from, long to) const wxOVERRIDE; - - /** - Returns the length of the specified line in characters. - */ - virtual int GetLineLength(long lineNo) const wxOVERRIDE ; - - /** - Returns the text for the given line. - */ - virtual wxString GetLineText(long lineNo) const wxOVERRIDE ; - - /** - Returns the number of lines in the buffer. - */ - virtual int GetNumberOfLines() const wxOVERRIDE ; - - /** - Returns @true if the buffer has been modified. - */ - virtual bool IsModified() const wxOVERRIDE ; - - /** - Returns @true if the control is editable. - */ - virtual bool IsEditable() const wxOVERRIDE ; - - /** - Returns @true if the control is single-line. - Currently wxRichTextCtrl does not support single-line editing. - */ - bool IsSingleLine() const { return !HasFlag(wxRE_MULTILINE); } - - /** - Returns @true if the control is multiline. - */ - bool IsMultiLine() const { return !IsSingleLine(); } - - //@{ - /** - Returns the range of the current selection. - The end point of range is specified as the last character position of the span - of text, plus one. - If the return values @a from and @a to are the same, there is no selection. - */ - virtual void GetSelection(long* from, long* to) const wxOVERRIDE; - const wxRichTextSelection& GetSelection() const { return m_selection; } - wxRichTextSelection& GetSelection() { return m_selection; } - //@} - - /** - Returns the text within the current selection range, if any. - */ - virtual wxString GetStringSelection() const wxOVERRIDE; - - /** - Gets the current filename associated with the control. - */ - wxString GetFilename() const { return m_filename; } - - /** - Sets the current filename. - */ - void SetFilename(const wxString& filename) { m_filename = filename; } - - /** - Sets the size of the buffer beyond which layout is delayed during resizing. - This optimizes sizing for large buffers. The default is 20000. - */ - void SetDelayedLayoutThreshold(long threshold) { m_delayedLayoutThreshold = threshold; } - - /** - Gets the size of the buffer beyond which layout is delayed during resizing. - This optimizes sizing for large buffers. The default is 20000. - */ - long GetDelayedLayoutThreshold() const { return m_delayedLayoutThreshold; } - - /** - Gets the flag indicating that full layout is required. - */ - bool GetFullLayoutRequired() const { return m_fullLayoutRequired; } - - /** - Sets the flag indicating that full layout is required. - */ - void SetFullLayoutRequired(bool b) { m_fullLayoutRequired = b; } - - /** - Returns the last time full layout was performed. - */ - wxLongLong GetFullLayoutTime() const { return m_fullLayoutTime; } - - /** - Sets the last time full layout was performed. - */ - void SetFullLayoutTime(wxLongLong t) { m_fullLayoutTime = t; } - - /** - Returns the position that should be shown when full (delayed) layout is performed. - */ - long GetFullLayoutSavedPosition() const { return m_fullLayoutSavedPosition; } - - /** - Sets the position that should be shown when full (delayed) layout is performed. - */ - void SetFullLayoutSavedPosition(long p) { m_fullLayoutSavedPosition = p; } - - /** - Forces any pending layout due to delayed, partial layout when the control - was resized. - */ - void ForceDelayedLayout(); - - /** - Sets the text (normal) cursor. - */ - void SetTextCursor(const wxCursor& cursor ) { m_textCursor = cursor; } - - /** - Returns the text (normal) cursor. - */ - wxCursor GetTextCursor() const { return m_textCursor; } - - /** - Sets the cursor to be used over URLs. - */ - void SetURLCursor(const wxCursor& cursor ) { m_urlCursor = cursor; } - - /** - Returns the cursor to be used over URLs. - */ - wxCursor GetURLCursor() const { return m_urlCursor; } - - /** - Returns @true if we are showing the caret position at the start of a line - instead of at the end of the previous one. - */ - bool GetCaretAtLineStart() const { return m_caretAtLineStart; } - - /** - Sets a flag to remember that we are showing the caret position at the start of a line - instead of at the end of the previous one. - */ - void SetCaretAtLineStart(bool atStart) { m_caretAtLineStart = atStart; } - - /** - Returns @true if we are dragging a selection. - */ - bool GetDragging() const { return m_dragging; } - - /** - Sets a flag to remember if we are dragging a selection. - */ - void SetDragging(bool dragging) { m_dragging = dragging; } - -#if wxUSE_DRAG_AND_DROP - /** - Are we trying to start Drag'n'Drop? - */ - bool GetPreDrag() const { return m_preDrag; } - - /** - Set if we're trying to start Drag'n'Drop - */ - void SetPreDrag(bool pd) { m_preDrag = pd; } - - /** - Get the possible Drag'n'Drop start point - */ - const wxPoint GetDragStartPoint() const { return m_dragStartPoint; } - - /** - Set the possible Drag'n'Drop start point - */ - void SetDragStartPoint(wxPoint sp) { m_dragStartPoint = sp; } - -#if wxUSE_DATETIME - /** - Get the possible Drag'n'Drop start time - */ - const wxDateTime GetDragStartTime() const { return m_dragStartTime; } - - /** - Set the possible Drag'n'Drop start time - */ - void SetDragStartTime(wxDateTime st) { m_dragStartTime = st; } -#endif // wxUSE_DATETIME - -#endif // wxUSE_DRAG_AND_DROP - -#if wxRICHTEXT_BUFFERED_PAINTING - //@{ - /** - Returns the buffer bitmap if using buffered painting. - */ - const wxBitmap& GetBufferBitmap() const { return m_bufferBitmap; } - wxBitmap& GetBufferBitmap() { return m_bufferBitmap; } - //@} -#endif - - /** - Returns the current context menu. - */ - wxMenu* GetContextMenu() const { return m_contextMenu; } - - /** - Sets the current context menu. - */ - void SetContextMenu(wxMenu* menu); - - /** - Returns an anchor so we know how to extend the selection. - It's a caret position since it's between two characters. - */ - long GetSelectionAnchor() const { return m_selectionAnchor; } - - /** - Sets an anchor so we know how to extend the selection. - It's a caret position since it's between two characters. - */ - void SetSelectionAnchor(long anchor) { m_selectionAnchor = anchor; } - - /** - Returns the anchor object if selecting multiple containers. - */ - wxRichTextObject* GetSelectionAnchorObject() const { return m_selectionAnchorObject; } - - /** - Sets the anchor object if selecting multiple containers. - */ - void SetSelectionAnchorObject(wxRichTextObject* anchor) { m_selectionAnchorObject = anchor; } - - //@{ - /** - Returns an object that stores information about context menu property item(s), - in order to communicate between the context menu event handler and the code - that responds to it. The wxRichTextContextMenuPropertiesInfo stores one - item for each object that could respond to a property-editing event. If - objects are nested, several might be editable. - */ - wxRichTextContextMenuPropertiesInfo& GetContextMenuPropertiesInfo() { return m_contextMenuPropertiesInfo; } - const wxRichTextContextMenuPropertiesInfo& GetContextMenuPropertiesInfo() const { return m_contextMenuPropertiesInfo; } - //@} - - /** - Returns the wxRichTextObject object that currently has the editing focus. - If there are no composite objects, this will be the top-level buffer. - */ - wxRichTextParagraphLayoutBox* GetFocusObject() const { return m_focusObject; } - - /** - Sets m_focusObject without making any alterations. - */ - void StoreFocusObject(wxRichTextParagraphLayoutBox* obj) { m_focusObject = obj; } - - /** - Sets the wxRichTextObject object that currently has the editing focus. - */ - bool SetFocusObject(wxRichTextParagraphLayoutBox* obj, bool setCaretPosition = true); - -// Operations - - /** - Invalidates the whole buffer to trigger painting later. - */ - void Invalidate() { GetBuffer().Invalidate(wxRICHTEXT_ALL); } - - /** - Clears the buffer content, leaving a single empty paragraph. Cannot be undone. - */ - virtual void Clear() wxOVERRIDE; - - /** - Replaces the content in the specified range with the string specified by - @a value. - */ - virtual void Replace(long from, long to, const wxString& value) wxOVERRIDE; - - /** - Removes the content in the specified range. - */ - virtual void Remove(long from, long to) wxOVERRIDE; - -#ifdef DOXYGEN - /** - Loads content into the control's buffer using the given type. - - If the specified type is wxRICHTEXT_TYPE_ANY, the type is deduced from - the filename extension. - - This function looks for a suitable wxRichTextFileHandler object. - */ - bool LoadFile(const wxString& file, - int type = wxRICHTEXT_TYPE_ANY); -#endif - -#if wxUSE_FFILE && wxUSE_STREAMS - /** - Helper function for LoadFile(). Loads content into the control's buffer using the given type. - - If the specified type is wxRICHTEXT_TYPE_ANY, the type is deduced from - the filename extension. - - This function looks for a suitable wxRichTextFileHandler object. - */ - virtual bool DoLoadFile(const wxString& file, int fileType) wxOVERRIDE; -#endif // wxUSE_FFILE && wxUSE_STREAMS - -#ifdef DOXYGEN - /** - Saves the buffer content using the given type. - - If the specified type is wxRICHTEXT_TYPE_ANY, the type is deduced from - the filename extension. - - This function looks for a suitable wxRichTextFileHandler object. - */ - bool SaveFile(const wxString& file = wxEmptyString, - int type = wxRICHTEXT_TYPE_ANY); -#endif - -#if wxUSE_FFILE && wxUSE_STREAMS - /** - Helper function for SaveFile(). Saves the buffer content using the given type. - - If the specified type is wxRICHTEXT_TYPE_ANY, the type is deduced from - the filename extension. - - This function looks for a suitable wxRichTextFileHandler object. - */ - virtual bool DoSaveFile(const wxString& file = wxEmptyString, - int fileType = wxRICHTEXT_TYPE_ANY) wxOVERRIDE; -#endif // wxUSE_FFILE && wxUSE_STREAMS - - /** - Sets flags that change the behaviour of loading or saving. - - See the documentation for each handler class to see what flags are - relevant for each handler. - */ - void SetHandlerFlags(int flags) { GetBuffer().SetHandlerFlags(flags); } - - /** - Returns flags that change the behaviour of loading or saving. - See the documentation for each handler class to see what flags are - relevant for each handler. - */ - int GetHandlerFlags() const { return GetBuffer().GetHandlerFlags(); } - - /** - Marks the buffer as modified. - */ - virtual void MarkDirty() wxOVERRIDE; - - /** - Sets the buffer's modified status to @false, and clears the buffer's command - history. - */ - virtual void DiscardEdits() wxOVERRIDE; - - /** - Sets the maximum number of characters that may be entered in a single line - text control. For compatibility only; currently does nothing. - */ - virtual void SetMaxLength(unsigned long WXUNUSED(len)) wxOVERRIDE { } - - /** - Writes text at the current position. - */ - virtual void WriteText(const wxString& text) wxOVERRIDE; - - /** - Sets the insertion point to the end of the buffer and writes the text. - */ - virtual void AppendText(const wxString& text) wxOVERRIDE; - - //@{ - /** - Gets the attributes at the given position. - This function gets the combined style - that is, the style you see on the - screen as a result of combining base style, paragraph style and character - style attributes. - - To get the character or paragraph style alone, use GetUncombinedStyle(). - - @beginWxPerlOnly - In wxPerl this method is implemented as GetStyle(@a position) - returning a 2-element list (ok, attr). - @endWxPerlOnly - */ - virtual bool GetStyle(long position, wxTextAttr& style) wxOVERRIDE; - virtual bool GetStyle(long position, wxRichTextAttr& style); - virtual bool GetStyle(long position, wxRichTextAttr& style, wxRichTextParagraphLayoutBox* container); - //@} - - //@{ - /** - Sets the attributes for the given range. - The end point of range is specified as the last character position of the span - of text, plus one. - - So, for example, to set the style for a character at position 5, use the range - (5,6). - */ - virtual bool SetStyle(long start, long end, const wxTextAttr& style) wxOVERRIDE; - virtual bool SetStyle(long start, long end, const wxRichTextAttr& style); - virtual bool SetStyle(const wxRichTextRange& range, const wxTextAttr& style); - virtual bool SetStyle(const wxRichTextRange& range, const wxRichTextAttr& style); - //@} - - /** - Sets the attributes for a single object - */ - virtual void SetStyle(wxRichTextObject *obj, const wxRichTextAttr& textAttr, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO); - - //@{ - /** - Gets the attributes common to the specified range. - Attributes that differ in value within the range will not be included - in @a style flags. - - @beginWxPerlOnly - In wxPerl this method is implemented as GetStyleForRange(@a position) - returning a 2-element list (ok, attr). - @endWxPerlOnly - */ - virtual bool GetStyleForRange(const wxRichTextRange& range, wxTextAttr& style); - virtual bool GetStyleForRange(const wxRichTextRange& range, wxRichTextAttr& style); - virtual bool GetStyleForRange(const wxRichTextRange& range, wxRichTextAttr& style, wxRichTextParagraphLayoutBox* container); - //@} - - /** - Sets the attributes for the given range, passing flags to determine how the - attributes are set. - - The end point of range is specified as the last character position of the span - of text, plus one. So, for example, to set the style for a character at - position 5, use the range (5,6). - - @a flags may contain a bit list of the following values: - - wxRICHTEXT_SETSTYLE_NONE: no style flag. - - wxRICHTEXT_SETSTYLE_WITH_UNDO: specifies that this operation should be - undoable. - - wxRICHTEXT_SETSTYLE_OPTIMIZE: specifies that the style should not be applied - if the combined style at this point is already the style in question. - - wxRICHTEXT_SETSTYLE_PARAGRAPHS_ONLY: specifies that the style should only be - applied to paragraphs, and not the content. - This allows content styling to be preserved independently from that - of e.g. a named paragraph style. - - wxRICHTEXT_SETSTYLE_CHARACTERS_ONLY: specifies that the style should only be - applied to characters, and not the paragraph. - This allows content styling to be preserved independently from that - of e.g. a named paragraph style. - - wxRICHTEXT_SETSTYLE_RESET: resets (clears) the existing style before applying - the new style. - - wxRICHTEXT_SETSTYLE_REMOVE: removes the specified style. Only the style flags - are used in this operation. - */ - virtual bool SetStyleEx(const wxRichTextRange& range, const wxRichTextAttr& style, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO); - - //@{ - /** - Gets the attributes at the given position. - This function gets the @e uncombined style - that is, the attributes associated - with the paragraph or character content, and not necessarily the combined - attributes you see on the screen. - To get the combined attributes, use GetStyle(). - - If you specify (any) paragraph attribute in @e style's flags, this function - will fetch the paragraph attributes. - Otherwise, it will return the character attributes. - - @beginWxPerlOnly - In wxPerl this method is implemented as GetUncombinedStyle(@a position) - returning a 2-element list (ok, attr). - @endWxPerlOnly - */ - virtual bool GetUncombinedStyle(long position, wxRichTextAttr& style); - virtual bool GetUncombinedStyle(long position, wxRichTextAttr& style, wxRichTextParagraphLayoutBox* container); - //@} - - //@{ - /** - Sets the current default style, which can be used to change how subsequently - inserted text is displayed. - */ - virtual bool SetDefaultStyle(const wxTextAttr& style) wxOVERRIDE; - virtual bool SetDefaultStyle(const wxRichTextAttr& style); - //@} - - /** - Returns the current default style, which can be used to change how subsequently - inserted text is displayed. - */ - virtual const wxRichTextAttr& GetDefaultStyleEx() const; - - //virtual const wxTextAttr& GetDefaultStyle() const; - - //@{ - /** - Sets the list attributes for the given range, passing flags to determine how - the attributes are set. - - Either the style definition or the name of the style definition (in the current - sheet) can be passed. - @a flags is a bit list of the following: - - wxRICHTEXT_SETSTYLE_WITH_UNDO: specifies that this command will be undoable. - - wxRICHTEXT_SETSTYLE_RENUMBER: specifies that numbering should start from - @a startFrom, otherwise existing attributes are used. - - wxRICHTEXT_SETSTYLE_SPECIFY_LEVEL: specifies that @a listLevel should be used - as the level for all paragraphs, otherwise the current indentation will be used. - - @see NumberList(), PromoteList(), ClearListStyle(). - */ - virtual bool SetListStyle(const wxRichTextRange& range, wxRichTextListStyleDefinition* def, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int startFrom = 1, int specifiedLevel = -1); - virtual bool SetListStyle(const wxRichTextRange& range, const wxString& defName, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int startFrom = 1, int specifiedLevel = -1); - //@} - - /** - Clears the list style from the given range, clearing list-related attributes - and applying any named paragraph style associated with each paragraph. - - @a flags is a bit list of the following: - - wxRICHTEXT_SETSTYLE_WITH_UNDO: specifies that this command will be undoable. - - @see SetListStyle(), PromoteList(), NumberList(). - */ - virtual bool ClearListStyle(const wxRichTextRange& range, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO); - - //@{ - /** - Numbers the paragraphs in the given range. - Pass flags to determine how the attributes are set. - - Either the style definition or the name of the style definition (in the current - sheet) can be passed. - - @a flags is a bit list of the following: - - wxRICHTEXT_SETSTYLE_WITH_UNDO: specifies that this command will be undoable. - - wxRICHTEXT_SETSTYLE_RENUMBER: specifies that numbering should start from - @a startFrom, otherwise existing attributes are used. - - wxRICHTEXT_SETSTYLE_SPECIFY_LEVEL: specifies that @a listLevel should be used - as the level for all paragraphs, otherwise the current indentation will be used. - - @see SetListStyle(), PromoteList(), ClearListStyle(). - */ - virtual bool NumberList(const wxRichTextRange& range, wxRichTextListStyleDefinition* def = NULL, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int startFrom = 1, int specifiedLevel = -1); - virtual bool NumberList(const wxRichTextRange& range, const wxString& defName, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int startFrom = 1, int specifiedLevel = -1); - //@} - - //@{ - /** - Promotes or demotes the paragraphs in the given range. - A positive @a promoteBy produces a smaller indent, and a negative number - produces a larger indent. Pass flags to determine how the attributes are set. - Either the style definition or the name of the style definition (in the current - sheet) can be passed. - - @a flags is a bit list of the following: - - wxRICHTEXT_SETSTYLE_WITH_UNDO: specifies that this command will be undoable. - - wxRICHTEXT_SETSTYLE_RENUMBER: specifies that numbering should start from - @a startFrom, otherwise existing attributes are used. - - wxRICHTEXT_SETSTYLE_SPECIFY_LEVEL: specifies that @a listLevel should be used - as the level for all paragraphs, otherwise the current indentation will be used. - - @see SetListStyle(), @see SetListStyle(), ClearListStyle(). - */ - virtual bool PromoteList(int promoteBy, const wxRichTextRange& range, wxRichTextListStyleDefinition* def = NULL, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int specifiedLevel = -1); - virtual bool PromoteList(int promoteBy, const wxRichTextRange& range, const wxString& defName, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO, int specifiedLevel = -1); - //@} - - /** - Sets the properties for the given range, passing flags to determine how the - attributes are set. You can merge properties or replace them. - - The end point of range is specified as the last character position of the span - of text, plus one. So, for example, to set the properties for a character at - position 5, use the range (5,6). - - @a flags may contain a bit list of the following values: - - wxRICHTEXT_SETSPROPERTIES_NONE: no flag. - - wxRICHTEXT_SETPROPERTIES_WITH_UNDO: specifies that this operation should be - undoable. - - wxRICHTEXT_SETPROPERTIES_PARAGRAPHS_ONLY: specifies that the properties should only be - applied to paragraphs, and not the content. - - wxRICHTEXT_SETPROPERTIES_CHARACTERS_ONLY: specifies that the properties should only be - applied to characters, and not the paragraph. - - wxRICHTEXT_SETPROPERTIES_RESET: resets (clears) the existing properties before applying - the new properties. - - wxRICHTEXT_SETPROPERTIES_REMOVE: removes the specified properties. - */ - virtual bool SetProperties(const wxRichTextRange& range, const wxRichTextProperties& properties, int flags = wxRICHTEXT_SETPROPERTIES_WITH_UNDO); - - /** - Deletes the content within the given range. - */ - virtual bool Delete(const wxRichTextRange& range); - - /** - Translates from column and line number to position. - */ - virtual long XYToPosition(long x, long y) const wxOVERRIDE; - - /** - Converts a text position to zero-based column and line numbers. - */ - virtual bool PositionToXY(long pos, long *x, long *y) const wxOVERRIDE; - - /** - Scrolls the buffer so that the given position is in view. - */ - virtual void ShowPosition(long pos) wxOVERRIDE; - - //@{ - /** - Finds the character at the given position in pixels. - @a pt is in device coords (not adjusted for the client area origin nor for - scrolling). - */ - virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, long *pos) const wxOVERRIDE; - virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, - wxTextCoord *col, - wxTextCoord *row) const wxOVERRIDE; - - /** - Finds the container at the given point, which is in screen coordinates. - */ - wxRichTextParagraphLayoutBox* FindContainerAtPoint(const wxPoint& pt, long& position, int& hit, wxRichTextObject* hitObj, int flags = 0); - //@} - -#if wxUSE_DRAG_AND_DROP - /** - Does the 'drop' of Drag'n'Drop. - */ - void OnDrop(wxCoord WXUNUSED(x), wxCoord WXUNUSED(y), wxDragResult def, wxDataObject* DataObj); -#endif - -// Clipboard operations - - /** - Copies the selected content (if any) to the clipboard. - */ - virtual void Copy() wxOVERRIDE; - - /** - Copies the selected content (if any) to the clipboard and deletes the selection. - This is undoable. - */ - virtual void Cut() wxOVERRIDE; - - /** - Pastes content from the clipboard to the buffer. - */ - virtual void Paste() wxOVERRIDE; - - /** - Deletes the content in the selection, if any. This is undoable. - */ - virtual void DeleteSelection(); - - /** - Returns @true if selected content can be copied to the clipboard. - */ - virtual bool CanCopy() const wxOVERRIDE; - - /** - Returns @true if selected content can be copied to the clipboard and deleted. - */ - virtual bool CanCut() const wxOVERRIDE; - - /** - Returns @true if the clipboard content can be pasted to the buffer. - */ - virtual bool CanPaste() const wxOVERRIDE; - - /** - Returns @true if selected content can be deleted. - */ - virtual bool CanDeleteSelection() const; - - /** - Undoes the command at the top of the command history, if there is one. - */ - virtual void Undo() wxOVERRIDE; - - /** - Redoes the current command. - */ - virtual void Redo() wxOVERRIDE; - - /** - Returns @true if there is a command in the command history that can be undone. - */ - virtual bool CanUndo() const wxOVERRIDE; - - /** - Returns @true if there is a command in the command history that can be redone. - */ - virtual bool CanRedo() const wxOVERRIDE; - - /** - Sets the insertion point and causes the current editing style to be taken from - the new position (unlike wxRichTextCtrl::SetCaretPosition). - */ - virtual void SetInsertionPoint(long pos) wxOVERRIDE; - - /** - Sets the insertion point to the end of the text control. - */ - virtual void SetInsertionPointEnd() wxOVERRIDE; - - /** - Returns the current insertion point. - */ - virtual long GetInsertionPoint() const wxOVERRIDE; - - /** - Returns the last position in the buffer. - */ - virtual wxTextPos GetLastPosition() const wxOVERRIDE; - - //@{ - /** - Sets the selection to the given range. - The end point of range is specified as the last character position of the span - of text, plus one. - - So, for example, to set the selection for a character at position 5, use the - range (5,6). - */ - virtual void SetSelection(long from, long to) wxOVERRIDE; - void SetSelection(const wxRichTextSelection& sel) { m_selection = sel; } - //@} - - /** - Makes the control editable, or not. - */ - virtual void SetEditable(bool editable) wxOVERRIDE; - - /** - Returns @true if there is a selection and the object containing the selection - was the same as the current focus object. - */ - virtual bool HasSelection() const; - - /** - Returns @true if there was a selection, whether or not the current focus object - is the same as the selection's container object. - */ - virtual bool HasUnfocusedSelection() const; - - //@{ - /** - Write a bitmap or image at the current insertion point. - Supply an optional type to use for internal and file storage of the raw data. - */ - virtual bool WriteImage(const wxImage& image, wxBitmapType bitmapType = wxBITMAP_TYPE_PNG, - const wxRichTextAttr& textAttr = wxRichTextAttr()); - - virtual bool WriteImage(const wxBitmap& bitmap, wxBitmapType bitmapType = wxBITMAP_TYPE_PNG, - const wxRichTextAttr& textAttr = wxRichTextAttr()); - //@} - - /** - Loads an image from a file and writes it at the current insertion point. - */ - virtual bool WriteImage(const wxString& filename, wxBitmapType bitmapType, - const wxRichTextAttr& textAttr = wxRichTextAttr()); - - /** - Writes an image block at the current insertion point. - */ - virtual bool WriteImage(const wxRichTextImageBlock& imageBlock, - const wxRichTextAttr& textAttr = wxRichTextAttr()); - - /** - Write a text box at the current insertion point, returning the text box. - You can then call SetFocusObject() to set the focus to the new object. - */ - virtual wxRichTextBox* WriteTextBox(const wxRichTextAttr& textAttr = wxRichTextAttr()); - - /** - Writes a field at the current insertion point. - - @param fieldType - The field type, matching an existing field type definition. - @param properties - Extra data for the field. - @param textAttr - Optional attributes. - - @see wxRichTextField, wxRichTextFieldType, wxRichTextFieldTypeStandard - */ - virtual wxRichTextField* WriteField(const wxString& fieldType, const wxRichTextProperties& properties, - const wxRichTextAttr& textAttr = wxRichTextAttr()); - - /** - Write a table at the current insertion point, returning the table. - You can then call SetFocusObject() to set the focus to the new object. - */ - virtual wxRichTextTable* WriteTable(int rows, int cols, const wxRichTextAttr& tableAttr = wxRichTextAttr(), const wxRichTextAttr& cellAttr = wxRichTextAttr()); - - /** - Inserts a new paragraph at the current insertion point. @see LineBreak(). - */ - virtual bool Newline(); - - /** - Inserts a line break at the current insertion point. - - A line break forces wrapping within a paragraph, and can be introduced by - using this function, by appending the wxChar value @b wxRichTextLineBreakChar - to text content, or by typing Shift-Return. - */ - virtual bool LineBreak(); - - /** - Sets the basic (overall) style. - - This is the style of the whole buffer before further styles are applied, - unlike the default style, which only affects the style currently being - applied (for example, setting the default style to bold will cause - subsequently inserted text to be bold). - */ - virtual void SetBasicStyle(const wxRichTextAttr& style) { GetBuffer().SetBasicStyle(style); } - - /** - Gets the basic (overall) style. - - This is the style of the whole buffer before further styles are applied, - unlike the default style, which only affects the style currently being - applied (for example, setting the default style to bold will cause - subsequently inserted text to be bold). - */ - virtual const wxRichTextAttr& GetBasicStyle() const { return GetBuffer().GetBasicStyle(); } - - /** - Begins applying a style. - */ - virtual bool BeginStyle(const wxRichTextAttr& style) { return GetBuffer().BeginStyle(style); } - - /** - Ends the current style. - */ - virtual bool EndStyle() { return GetBuffer().EndStyle(); } - - /** - Ends application of all styles in the current style stack. - */ - virtual bool EndAllStyles() { return GetBuffer().EndAllStyles(); } - - /** - Begins using bold. - */ - bool BeginBold() { return GetBuffer().BeginBold(); } - - /** - Ends using bold. - */ - bool EndBold() { return GetBuffer().EndBold(); } - - /** - Begins using italic. - */ - bool BeginItalic() { return GetBuffer().BeginItalic(); } - - /** - Ends using italic. - */ - bool EndItalic() { return GetBuffer().EndItalic(); } - - /** - Begins using underlining. - */ - bool BeginUnderline() { return GetBuffer().BeginUnderline(); } - - /** - End applying underlining. - */ - bool EndUnderline() { return GetBuffer().EndUnderline(); } - - /** - Begins using the given point size. - */ - bool BeginFontSize(int pointSize) { return GetBuffer().BeginFontSize(pointSize); } - - /** - Ends using a point size. - */ - bool EndFontSize() { return GetBuffer().EndFontSize(); } - - /** - Begins using this font. - */ - bool BeginFont(const wxFont& font) { return GetBuffer().BeginFont(font); } - - /** - Ends using a font. - */ - bool EndFont() { return GetBuffer().EndFont(); } - - /** - Begins using this colour. - */ - bool BeginTextColour(const wxColour& colour) { return GetBuffer().BeginTextColour(colour); } - - /** - Ends applying a text colour. - */ - bool EndTextColour() { return GetBuffer().EndTextColour(); } - - /** - Begins using alignment. - For alignment values, see wxTextAttr. - */ - bool BeginAlignment(wxTextAttrAlignment alignment) { return GetBuffer().BeginAlignment(alignment); } - - /** - Ends alignment. - */ - bool EndAlignment() { return GetBuffer().EndAlignment(); } - - /** - Begins applying a left indent and subindent in tenths of a millimetre. - The subindent is an offset from the left edge of the paragraph, and is - used for all but the first line in a paragraph. A positive value will - cause the first line to appear to the left of the subsequent lines, and - a negative value will cause the first line to be indented to the right - of the subsequent lines. - - wxRichTextBuffer uses indentation to render a bulleted item. The - content of the paragraph, including the first line, starts at the - @a leftIndent plus the @a leftSubIndent. - - @param leftIndent - The distance between the margin and the bullet. - @param leftSubIndent - The distance between the left edge of the bullet and the left edge - of the actual paragraph. - */ - bool BeginLeftIndent(int leftIndent, int leftSubIndent = 0) { return GetBuffer().BeginLeftIndent(leftIndent, leftSubIndent); } - - /** - Ends left indent. - */ - bool EndLeftIndent() { return GetBuffer().EndLeftIndent(); } - - /** - Begins a right indent, specified in tenths of a millimetre. - */ - bool BeginRightIndent(int rightIndent) { return GetBuffer().BeginRightIndent(rightIndent); } - - /** - Ends right indent. - */ - bool EndRightIndent() { return GetBuffer().EndRightIndent(); } - - /** - Begins paragraph spacing; pass the before-paragraph and after-paragraph spacing - in tenths of a millimetre. - */ - bool BeginParagraphSpacing(int before, int after) { return GetBuffer().BeginParagraphSpacing(before, after); } - - /** - Ends paragraph spacing. - */ - bool EndParagraphSpacing() { return GetBuffer().EndParagraphSpacing(); } - - /** - Begins appling line spacing. @e spacing is a multiple, where 10 means - single-spacing, 15 means 1.5 spacing, and 20 means double spacing. - - The ::wxTextAttrLineSpacing constants are defined for convenience. - */ - bool BeginLineSpacing(int lineSpacing) { return GetBuffer().BeginLineSpacing(lineSpacing); } - - /** - Ends line spacing. - */ - bool EndLineSpacing() { return GetBuffer().EndLineSpacing(); } - - /** - Begins a numbered bullet. - - This call will be needed for each item in the list, and the - application should take care of incrementing the numbering. - - @a bulletNumber is a number, usually starting with 1. - @a leftIndent and @a leftSubIndent are values in tenths of a millimetre. - @a bulletStyle is a bitlist of the ::wxTextAttrBulletStyle values. - - wxRichTextBuffer uses indentation to render a bulleted item. - The left indent is the distance between the margin and the bullet. - The content of the paragraph, including the first line, starts - at leftMargin + leftSubIndent. - So the distance between the left edge of the bullet and the - left of the actual paragraph is leftSubIndent. - */ - bool BeginNumberedBullet(int bulletNumber, int leftIndent, int leftSubIndent, int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_ARABIC|wxTEXT_ATTR_BULLET_STYLE_PERIOD) - { return GetBuffer().BeginNumberedBullet(bulletNumber, leftIndent, leftSubIndent, bulletStyle); } - - /** - Ends application of a numbered bullet. - */ - bool EndNumberedBullet() { return GetBuffer().EndNumberedBullet(); } - - /** - Begins applying a symbol bullet, using a character from the current font. - See BeginNumberedBullet() for an explanation of how indentation is used - to render the bulleted paragraph. - */ - bool BeginSymbolBullet(const wxString& symbol, int leftIndent, int leftSubIndent, int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_SYMBOL) - { return GetBuffer().BeginSymbolBullet(symbol, leftIndent, leftSubIndent, bulletStyle); } - - /** - Ends applying a symbol bullet. - */ - bool EndSymbolBullet() { return GetBuffer().EndSymbolBullet(); } - - /** - Begins applying a symbol bullet. - */ - bool BeginStandardBullet(const wxString& bulletName, int leftIndent, int leftSubIndent, int bulletStyle = wxTEXT_ATTR_BULLET_STYLE_STANDARD) - { return GetBuffer().BeginStandardBullet(bulletName, leftIndent, leftSubIndent, bulletStyle); } - - /** - Begins applying a standard bullet. - */ - bool EndStandardBullet() { return GetBuffer().EndStandardBullet(); } - - /** - Begins using the named character style. - */ - bool BeginCharacterStyle(const wxString& characterStyle) { return GetBuffer().BeginCharacterStyle(characterStyle); } - - /** - Ends application of a named character style. - */ - bool EndCharacterStyle() { return GetBuffer().EndCharacterStyle(); } - - /** - Begins applying the named paragraph style. - */ - bool BeginParagraphStyle(const wxString& paragraphStyle) { return GetBuffer().BeginParagraphStyle(paragraphStyle); } - - /** - Ends application of a named paragraph style. - */ - bool EndParagraphStyle() { return GetBuffer().EndParagraphStyle(); } - - /** - Begins using a specified list style. - Optionally, you can also pass a level and a number. - */ - bool BeginListStyle(const wxString& listStyle, int level = 1, int number = 1) { return GetBuffer().BeginListStyle(listStyle, level, number); } - - /** - Ends using a specified list style. - */ - bool EndListStyle() { return GetBuffer().EndListStyle(); } - - /** - Begins applying wxTEXT_ATTR_URL to the content. - - Pass a URL and optionally, a character style to apply, since it is common - to mark a URL with a familiar style such as blue text with underlining. - */ - bool BeginURL(const wxString& url, const wxString& characterStyle = wxEmptyString) { return GetBuffer().BeginURL(url, characterStyle); } - - /** - Ends applying a URL. - */ - bool EndURL() { return GetBuffer().EndURL(); } - - /** - Sets the default style to the style under the cursor. - */ - bool SetDefaultStyleToCursorStyle(); - - /** - Cancels any selection. - */ - virtual void SelectNone() wxOVERRIDE; - - /** - Selects the word at the given character position. - */ - virtual bool SelectWord(long position); - - /** - Returns the selection range in character positions. -1, -1 means no selection. - - The range is in API convention, i.e. a single character selection is denoted - by (n, n+1) - */ - wxRichTextRange GetSelectionRange() const; - - /** - Sets the selection to the given range. - The end point of range is specified as the last character position of the span - of text, plus one. - - So, for example, to set the selection for a character at position 5, use the - range (5,6). - */ - void SetSelectionRange(const wxRichTextRange& range); - - /** - Returns the selection range in character positions. -2, -2 means no selection - -1, -1 means select everything. - The range is in internal format, i.e. a single character selection is denoted - by (n, n) - */ - wxRichTextRange GetInternalSelectionRange() const { return m_selection.GetRange(); } - - /** - Sets the selection range in character positions. -2, -2 means no selection - -1, -1 means select everything. - The range is in internal format, i.e. a single character selection is denoted - by (n, n) - */ - void SetInternalSelectionRange(const wxRichTextRange& range) { m_selection.Set(range, GetFocusObject()); } - - /** - Adds a new paragraph of text to the end of the buffer. - */ - virtual wxRichTextRange AddParagraph(const wxString& text); - - /** - Adds an image to the control's buffer. - */ - virtual wxRichTextRange AddImage(const wxImage& image); - - /** - Lays out the buffer, which must be done before certain operations, such as - setting the caret position. - This function should not normally be required by the application. - */ - virtual bool LayoutContent(bool onlyVisibleRect = false); - - /** - Implements layout. An application may override this to perform operations before or after layout. - */ - virtual void DoLayoutBuffer(wxRichTextBuffer& buffer, wxDC& dc, wxRichTextDrawingContext& context, const wxRect& rect, const wxRect& parentRect, int flags); - - /** - Move the caret to the given character position. - - Please note that this does not update the current editing style - from the new position; to do that, call wxRichTextCtrl::SetInsertionPoint instead. - */ - virtual bool MoveCaret(long pos, bool showAtLineStart = false, wxRichTextParagraphLayoutBox* container = NULL); - - /** - Moves right. - */ - virtual bool MoveRight(int noPositions = 1, int flags = 0); - - /** - Moves left. - */ - virtual bool MoveLeft(int noPositions = 1, int flags = 0); - - /** - Moves to the start of the paragraph. - */ - virtual bool MoveUp(int noLines = 1, int flags = 0); - - /** - Moves the caret down. - */ - virtual bool MoveDown(int noLines = 1, int flags = 0); - - /** - Moves to the end of the line. - */ - virtual bool MoveToLineEnd(int flags = 0); - - /** - Moves to the start of the line. - */ - virtual bool MoveToLineStart(int flags = 0); - - /** - Moves to the end of the paragraph. - */ - virtual bool MoveToParagraphEnd(int flags = 0); - - /** - Moves to the start of the paragraph. - */ - virtual bool MoveToParagraphStart(int flags = 0); - - /** - Moves to the start of the buffer. - */ - virtual bool MoveHome(int flags = 0); - - /** - Moves to the end of the buffer. - */ - virtual bool MoveEnd(int flags = 0); - - /** - Moves one or more pages up. - */ - virtual bool PageUp(int noPages = 1, int flags = 0); - - /** - Moves one or more pages down. - */ - virtual bool PageDown(int noPages = 1, int flags = 0); - - /** - Moves a number of words to the left. - */ - virtual bool WordLeft(int noPages = 1, int flags = 0); - - /** - Move a nuber of words to the right. - */ - virtual bool WordRight(int noPages = 1, int flags = 0); - - //@{ - /** - Returns the buffer associated with the control. - */ - wxRichTextBuffer& GetBuffer() { return m_buffer; } - const wxRichTextBuffer& GetBuffer() const { return m_buffer; } - //@} - - /** - Starts batching undo history for commands. - */ - virtual bool BeginBatchUndo(const wxString& cmdName) { return m_buffer.BeginBatchUndo(cmdName); } - - /** - Ends batching undo command history. - */ - virtual bool EndBatchUndo() { return m_buffer.EndBatchUndo(); } - - /** - Returns @true if undo commands are being batched. - */ - virtual bool BatchingUndo() const { return m_buffer.BatchingUndo(); } - - /** - Starts suppressing undo history for commands. - */ - virtual bool BeginSuppressUndo() { return m_buffer.BeginSuppressUndo(); } - - /** - Ends suppressing undo command history. - */ - virtual bool EndSuppressUndo() { return m_buffer.EndSuppressUndo(); } - - /** - Returns @true if undo history suppression is on. - */ - virtual bool SuppressingUndo() const { return m_buffer.SuppressingUndo(); } - - /** - Test if this whole range has character attributes of the specified kind. - If any of the attributes are different within the range, the test fails. - - You can use this to implement, for example, bold button updating. - @a style must have flags indicating which attributes are of interest. - */ - virtual bool HasCharacterAttributes(const wxRichTextRange& range, const wxRichTextAttr& style) const - { - return GetFocusObject()->HasCharacterAttributes(range.ToInternal(), style); - } - - /** - Test if this whole range has paragraph attributes of the specified kind. - If any of the attributes are different within the range, the test fails. - You can use this to implement, for example, centering button updating. - @a style must have flags indicating which attributes are of interest. - */ - virtual bool HasParagraphAttributes(const wxRichTextRange& range, const wxRichTextAttr& style) const - { - return GetFocusObject()->HasParagraphAttributes(range.ToInternal(), style); - } - - /** - Returns @true if all of the selection, or the content at the caret position, is bold. - */ - virtual bool IsSelectionBold(); - - /** - Returns @true if all of the selection, or the content at the caret position, is italic. - */ - virtual bool IsSelectionItalics(); - - /** - Returns @true if all of the selection, or the content at the caret position, is underlined. - */ - virtual bool IsSelectionUnderlined(); - - /** - Returns @true if all of the selection, or the content at the current caret position, has the supplied wxTextAttrEffects flag(s). - */ - virtual bool DoesSelectionHaveTextEffectFlag(int flag); - - /** - Returns @true if all of the selection, or the content at the caret position, is aligned according to the specified flag. - */ - virtual bool IsSelectionAligned(wxTextAttrAlignment alignment); - - /** - Apples bold to the selection or default style (undoable). - */ - virtual bool ApplyBoldToSelection(); - - /** - Applies italic to the selection or default style (undoable). - */ - virtual bool ApplyItalicToSelection(); - - /** - Applies underline to the selection or default style (undoable). - */ - virtual bool ApplyUnderlineToSelection(); - - /** - Applies one or more wxTextAttrEffects flags to the selection (undoable). - If there is no selection, it is applied to the default style. - */ - virtual bool ApplyTextEffectToSelection(int flags); - - /** - Applies the given alignment to the selection or the default style (undoable). - For alignment values, see wxTextAttr. - */ - virtual bool ApplyAlignmentToSelection(wxTextAttrAlignment alignment); - - /** - Applies the style sheet to the buffer, matching paragraph styles in the sheet - against named styles in the buffer. - - This might be useful if the styles have changed. - If @a sheet is @NULL, the sheet set with SetStyleSheet() is used. - Currently this applies paragraph styles only. - */ - virtual bool ApplyStyle(wxRichTextStyleDefinition* def); - - /** - Sets the style sheet associated with the control. - A style sheet allows named character and paragraph styles to be applied. - */ - void SetStyleSheet(wxRichTextStyleSheet* styleSheet) { GetBuffer().SetStyleSheet(styleSheet); } - - /** - Returns the style sheet associated with the control, if any. - A style sheet allows named character and paragraph styles to be applied. - */ - wxRichTextStyleSheet* GetStyleSheet() const { return GetBuffer().GetStyleSheet(); } - - /** - Push the style sheet to top of stack. - */ - bool PushStyleSheet(wxRichTextStyleSheet* styleSheet) { return GetBuffer().PushStyleSheet(styleSheet); } - - /** - Pops the style sheet from top of stack. - */ - wxRichTextStyleSheet* PopStyleSheet() { return GetBuffer().PopStyleSheet(); } - - /** - Applies the style sheet to the buffer, for example if the styles have changed. - */ - bool ApplyStyleSheet(wxRichTextStyleSheet* styleSheet = NULL); - - /** - Shows the given context menu, optionally adding appropriate property-editing commands for the current position in the object hierarchy. - */ - virtual bool ShowContextMenu(wxMenu* menu, const wxPoint& pt, bool addPropertyCommands = true); - - /** - Prepares the context menu, optionally adding appropriate property-editing commands. - Returns the number of property commands added. - */ - virtual int PrepareContextMenu(wxMenu* menu, const wxPoint& pt, bool addPropertyCommands = true); - - /** - Returns @true if we can edit the object's properties via a GUI. - */ - virtual bool CanEditProperties(wxRichTextObject* obj) const { return obj->CanEditProperties(); } - - /** - Edits the object's properties via a GUI. - */ - virtual bool EditProperties(wxRichTextObject* obj, wxWindow* parent) { return obj->EditProperties(parent, & GetBuffer()); } - - /** - Gets the object's properties menu label. - */ - virtual wxString GetPropertiesMenuLabel(wxRichTextObject* obj) { return obj->GetPropertiesMenuLabel(); } - - /** - Prepares the content just before insertion (or after buffer reset). Called by the same function in wxRichTextBuffer. - Currently is only called if undo mode is on. - */ - virtual void PrepareContent(wxRichTextParagraphLayoutBox& WXUNUSED(container)) {} - - /** - Can we delete this range? - Sends an event to the control. - */ - virtual bool CanDeleteRange(wxRichTextParagraphLayoutBox& container, const wxRichTextRange& range) const; - - /** - Can we insert content at this position? - Sends an event to the control. - */ - virtual bool CanInsertContent(wxRichTextParagraphLayoutBox& container, long pos) const; - - /** - Enable or disable the vertical scrollbar. - */ - virtual void EnableVerticalScrollbar(bool enable); - - /** - Returns @true if the vertical scrollbar is enabled. - */ - virtual bool GetVerticalScrollbarEnabled() const { return m_verticalScrollbarEnabled; } - - /** - Sets the scale factor for displaying fonts, for example for more comfortable - editing. - */ - void SetFontScale(double fontScale, bool refresh = false); - - /** - Returns the scale factor for displaying fonts, for example for more comfortable - editing. - */ - double GetFontScale() const { return GetBuffer().GetFontScale(); } - - /** - Sets the scale factor for displaying certain dimensions such as indentation and - inter-paragraph spacing. This can be useful when editing in a small control - where you still want legible text, but a minimum of wasted white space. - */ - void SetDimensionScale(double dimScale, bool refresh = false); - - /** - Returns the scale factor for displaying certain dimensions such as indentation - and inter-paragraph spacing. - */ - double GetDimensionScale() const { return GetBuffer().GetDimensionScale(); } - - /** - Sets an overall scale factor for displaying and editing the content. - */ - void SetScale(double scale, bool refresh = false); - - /** - Returns an overall scale factor for displaying and editing the content. - */ - double GetScale() const { return m_scale; } - - /** - Returns an unscaled point. - */ - wxPoint GetUnscaledPoint(const wxPoint& pt) const; - - /** - Returns a scaled point. - */ - wxPoint GetScaledPoint(const wxPoint& pt) const; - - /** - Returns an unscaled size. - */ - wxSize GetUnscaledSize(const wxSize& sz) const; - - /** - Returns a scaled size. - */ - wxSize GetScaledSize(const wxSize& sz) const; - - /** - Returns an unscaled rectangle. - */ - wxRect GetUnscaledRect(const wxRect& rect) const; - - /** - Returns a scaled rectangle. - */ - wxRect GetScaledRect(const wxRect& rect) const; - - /** - Returns @true if this control can use virtual attributes and virtual text. - The default is @false. - */ - bool GetVirtualAttributesEnabled() const { return m_useVirtualAttributes; } - - /** - Pass @true to let the control use virtual attributes. - The default is @false. - */ - void EnableVirtualAttributes(bool b) { m_useVirtualAttributes = b; } - -// Command handlers - - /** - Sends the event to the control. - */ - void Command(wxCommandEvent& event) wxOVERRIDE; - - /** - Loads the first dropped file. - */ - void OnDropFiles(wxDropFilesEvent& event); - - void OnCaptureLost(wxMouseCaptureLostEvent& event); - void OnSysColourChanged(wxSysColourChangedEvent& event); - - /** - Standard handler for the wxID_CUT command. - */ - void OnCut(wxCommandEvent& event); - - /** - Standard handler for the wxID_COPY command. - */ - void OnCopy(wxCommandEvent& event); - - /** - Standard handler for the wxID_PASTE command. - */ - void OnPaste(wxCommandEvent& event); - - /** - Standard handler for the wxID_UNDO command. - */ - void OnUndo(wxCommandEvent& event); - - /** - Standard handler for the wxID_REDO command. - */ - void OnRedo(wxCommandEvent& event); - - /** - Standard handler for the wxID_SELECTALL command. - */ - void OnSelectAll(wxCommandEvent& event); - - /** - Standard handler for property commands. - */ - void OnProperties(wxCommandEvent& event); - - /** - Standard handler for the wxID_CLEAR command. - */ - void OnClear(wxCommandEvent& event); - - /** - Standard update handler for the wxID_CUT command. - */ - void OnUpdateCut(wxUpdateUIEvent& event); - - /** - Standard update handler for the wxID_COPY command. - */ - void OnUpdateCopy(wxUpdateUIEvent& event); - - /** - Standard update handler for the wxID_PASTE command. - */ - void OnUpdatePaste(wxUpdateUIEvent& event); - - /** - Standard update handler for the wxID_UNDO command. - */ - void OnUpdateUndo(wxUpdateUIEvent& event); - - /** - Standard update handler for the wxID_REDO command. - */ - void OnUpdateRedo(wxUpdateUIEvent& event); - - /** - Standard update handler for the wxID_SELECTALL command. - */ - void OnUpdateSelectAll(wxUpdateUIEvent& event); - - /** - Standard update handler for property commands. - */ - - void OnUpdateProperties(wxUpdateUIEvent& event); - - /** - Standard update handler for the wxID_CLEAR command. - */ - void OnUpdateClear(wxUpdateUIEvent& event); - - /** - Shows a standard context menu with undo, redo, cut, copy, paste, clear, and - select all commands. - */ - void OnContextMenu(wxContextMenuEvent& event); - -// Event handlers - - // Painting - void OnPaint(wxPaintEvent& event); - void OnEraseBackground(wxEraseEvent& event); - - // Left-click - void OnLeftClick(wxMouseEvent& event); - - // Left-up - void OnLeftUp(wxMouseEvent& event); - - // Motion - void OnMoveMouse(wxMouseEvent& event); - - // Left-double-click - void OnLeftDClick(wxMouseEvent& event); - - // Middle-click - void OnMiddleClick(wxMouseEvent& event); - - // Right-click - void OnRightClick(wxMouseEvent& event); - - // Key press - void OnChar(wxKeyEvent& event); - - // Sizing - void OnSize(wxSizeEvent& event); - - // Setting/losing focus - void OnSetFocus(wxFocusEvent& event); - void OnKillFocus(wxFocusEvent& event); - - // Idle-time processing - void OnIdle(wxIdleEvent& event); - - // Scrolling - void OnScroll(wxScrollWinEvent& event); - - /** - Sets the font, and also the basic and default attributes - (see wxRichTextCtrl::SetDefaultStyle). - */ - virtual bool SetFont(const wxFont& font) wxOVERRIDE; - - /** - A helper function setting up scrollbars, for example after a resize. - */ - virtual void SetupScrollbars(bool atTop = false, bool fromOnPaint = false); - - /** - Helper function implementing keyboard navigation. - */ - virtual bool KeyboardNavigate(int keyCode, int flags); - - /** - Paints the background. - */ - virtual void PaintBackground(wxDC& dc); - - /** - Other user defined painting after everything else (i.e. all text) is painted. - - @since 2.9.1 - */ - virtual void PaintAboveContent(wxDC& WXUNUSED(dc)) {} - -#if wxRICHTEXT_BUFFERED_PAINTING - /** - Recreates the buffer bitmap if necessary. - */ - virtual bool RecreateBuffer(const wxSize& size = wxDefaultSize); -#endif - - // Write text - virtual void DoWriteText(const wxString& value, int flags = 0); - - // Should we inherit colours? - virtual bool ShouldInheritColours() const wxOVERRIDE { return false; } - - /** - Internal function to position the visible caret according to the current caret - position. - */ - virtual void PositionCaret(wxRichTextParagraphLayoutBox* container = NULL); - - /** - Helper function for extending the selection, returning @true if the selection - was changed. Selections are in caret positions. - */ - virtual bool ExtendSelection(long oldPosition, long newPosition, int flags); - - /** - Extends a table selection in the given direction. - */ - virtual bool ExtendCellSelection(wxRichTextTable* table, int noRowSteps, int noColSteps); - - /** - Starts selecting table cells. - */ - virtual bool StartCellSelection(wxRichTextTable* table, wxRichTextParagraphLayoutBox* newCell); - - /** - Scrolls @a position into view. This function takes a caret position. - */ - virtual bool ScrollIntoView(long position, int keyCode); - - /** - Refreshes the area affected by a selection change. - */ - bool RefreshForSelectionChange(const wxRichTextSelection& oldSelection, const wxRichTextSelection& newSelection); - - /** - Overrides standard refresh in order to provoke delayed image loading. - */ - virtual void Refresh( bool eraseBackground = true, - const wxRect *rect = (const wxRect *) NULL ) wxOVERRIDE; - - /** - Sets the caret position. - - The caret position is the character position just before the caret. - A value of -1 means the caret is at the start of the buffer. - Please note that this does not update the current editing style - from the new position or cause the actual caret to be refreshed; to do that, - call wxRichTextCtrl::SetInsertionPoint instead. - */ - void SetCaretPosition(long position, bool showAtLineStart = false) ; - - /** - Returns the current caret position. - */ - long GetCaretPosition() const { return m_caretPosition; } - - /** - The adjusted caret position is the character position adjusted to take - into account whether we're at the start of a paragraph, in which case - style information should be taken from the next position, not current one. - */ - long GetAdjustedCaretPosition(long caretPos) const; - - /** - Move the caret one visual step forward: this may mean setting a flag - and keeping the same position if we're going from the end of one line - to the start of the next, which may be the exact same caret position. - */ - void MoveCaretForward(long oldPosition) ; - - /** - Move the caret one visual step forward: this may mean setting a flag - and keeping the same position if we're going from the end of one line - to the start of the next, which may be the exact same caret position. - */ - void MoveCaretBack(long oldPosition) ; - - /** - Returns the caret height and position for the given character position. - If container is null, the current focus object will be used. - - @beginWxPerlOnly - In wxPerl this method is implemented as - GetCaretPositionForIndex(@a position) returning a - 2-element list (ok, rect). - @endWxPerlOnly - */ - bool GetCaretPositionForIndex(long position, wxRect& rect, wxRichTextParagraphLayoutBox* container = NULL); - - /** - Internal helper function returning the line for the visible caret position. - If the caret is shown at the very end of the line, it means the next character - is actually on the following line. - So this function gets the line we're expecting to find if this is the case. - */ - wxRichTextLine* GetVisibleLineForCaretPosition(long caretPosition) const; - - /** - Gets the command processor associated with the control's buffer. - */ - wxCommandProcessor* GetCommandProcessor() const { return GetBuffer().GetCommandProcessor(); } - - /** - Deletes content if there is a selection, e.g. when pressing a key. - Returns the new caret position in @e newPos, or leaves it if there - was no action. This is undoable. - - @beginWxPerlOnly - In wxPerl this method takes no arguments and returns a 2-element - list (ok, newPos). - @endWxPerlOnly - */ - virtual bool DeleteSelectedContent(long* newPos= NULL); - - /** - Transforms logical (unscrolled) position to physical window position. - */ - wxPoint GetPhysicalPoint(const wxPoint& ptLogical) const; - - /** - Transforms physical window position to logical (unscrolled) position. - */ - wxPoint GetLogicalPoint(const wxPoint& ptPhysical) const; - - /** - Helper function for finding the caret position for the next word. - Direction is 1 (forward) or -1 (backwards). - */ - virtual long FindNextWordPosition(int direction = 1) const; - - /** - Returns @true if the given position is visible on the screen. - */ - bool IsPositionVisible(long pos) const; - - /** - Returns the first visible position in the current view. - */ - long GetFirstVisiblePosition() const; - - /** - Returns the caret position since the default formatting was changed. As - soon as this position changes, we no longer reflect the default style - in the UI. A value of -2 means that we should only reflect the style of the - content under the caret. - */ - long GetCaretPositionForDefaultStyle() const { return m_caretPositionForDefaultStyle; } - - /** - Set the caret position for the default style that the user is selecting. - */ - void SetCaretPositionForDefaultStyle(long pos) { m_caretPositionForDefaultStyle = pos; } - - /** - Returns @true if the user has recently set the default style without moving - the caret, and therefore the UI needs to reflect the default style and not - the style at the caret. - - Below is an example of code that uses this function to determine whether the UI - should show that the current style is bold. - - @see SetAndShowDefaultStyle(). - */ - bool IsDefaultStyleShowing() const { return m_caretPositionForDefaultStyle != -2; } - - /** - Sets @a attr as the default style and tells the control that the UI should - reflect this attribute until the user moves the caret. - - @see IsDefaultStyleShowing(). - */ - void SetAndShowDefaultStyle(const wxRichTextAttr& attr) - { - SetDefaultStyle(attr); - SetCaretPositionForDefaultStyle(GetCaretPosition()); - } - - /** - Returns the first visible point in the window. - */ - wxPoint GetFirstVisiblePoint() const; - - /** - Enable or disable images - */ - - void EnableImages(bool b) { m_enableImages = b; } - - /** - Returns @true if images are enabled. - */ - - bool GetImagesEnabled() const { return m_enableImages; } - - /** - Enable or disable delayed image loading - */ - - void EnableDelayedImageLoading(bool b) { m_enableDelayedImageLoading = b; } - - /** - Returns @true if delayed image loading is enabled. - */ - - bool GetDelayedImageLoading() const { return m_enableDelayedImageLoading; } - - /** - Gets the flag indicating that delayed image processing is required. - */ - bool GetDelayedImageProcessingRequired() const { return m_delayedImageProcessingRequired; } - - /** - Sets the flag indicating that delayed image processing is required. - */ - void SetDelayedImageProcessingRequired(bool b) { m_delayedImageProcessingRequired = b; } - - /** - Returns the last time delayed image processing was performed. - */ - wxLongLong GetDelayedImageProcessingTime() const { return m_delayedImageProcessingTime; } - - /** - Sets the last time delayed image processing was performed. - */ - void SetDelayedImageProcessingTime(wxLongLong t) { m_delayedImageProcessingTime = t; } - -#ifdef DOXYGEN - /** - Returns the content of the entire control as a string. - */ - virtual wxString GetValue() const; - - /** - Replaces existing content with the given text. - */ - virtual void SetValue(const wxString& value); - - /** - Call this function to prevent refresh and allow fast updates, and then Thaw() to - refresh the control. - */ - void Freeze(); - - /** - Call this function to end a Freeze and refresh the display. - */ - void Thaw(); - - /** - Returns @true if Freeze has been called without a Thaw. - */ - bool IsFrozen() const; - -#endif - - /// Set the line increment height in pixels - void SetLineHeight(int height) { m_lineHeight = height; } - int GetLineHeight() const { return m_lineHeight; } - -// Implementation - - /** - Processes the back key. - */ - virtual bool ProcessBackKey(wxKeyEvent& event, int flags); - - /** - Given a character position at which there is a list style, find the range - encompassing the same list style by looking backwards and forwards. - */ - virtual wxRichTextRange FindRangeForList(long pos, bool& isNumberedList); - - /** - Sets up the caret for the given position and container, after a mouse click. - */ - bool SetCaretPositionAfterClick(wxRichTextParagraphLayoutBox* container, long position, int hitTestFlags, bool extendSelection = false); - - /** - Find the caret position for the combination of hit-test flags and character position. - Returns the caret position and also an indication of where to place the caret (caretLineStart) - since this is ambiguous (same position used for end of line and start of next). - */ - long FindCaretPositionForCharacterPosition(long position, int hitTestFlags, wxRichTextParagraphLayoutBox* container, - bool& caretLineStart); - - /** - Processes mouse movement in order to change the cursor - */ - virtual bool ProcessMouseMovement(wxRichTextParagraphLayoutBox* container, wxRichTextObject* obj, long position, const wxPoint& pos); - - /** - Font names take a long time to retrieve, so cache them (on demand). - */ - static const wxArrayString& GetAvailableFontNames(); - - /** - Clears the cache of available font names. - */ - static void ClearAvailableFontNames(); - - WX_FORWARD_TO_SCROLL_HELPER() - - // implement wxTextEntry methods - virtual wxString DoGetValue() const wxOVERRIDE; - - /** - Do delayed image loading and garbage-collect other images - */ - bool ProcessDelayedImageLoading(bool refresh); - bool ProcessDelayedImageLoading(const wxRect& screenRect, wxRichTextParagraphLayoutBox* box, int& loadCount); - - /** - Request delayed image processing. - */ - void RequestDelayedImageProcessing(); - - /** - Respond to timer events. - */ - void OnTimer(wxTimerEvent& event); - -protected: - // implement the wxTextEntry pure virtual method - virtual wxWindow *GetEditableWindow() wxOVERRIDE { return this; } - - // margins functions - virtual bool DoSetMargins(const wxPoint& pt) wxOVERRIDE; - virtual wxPoint DoGetMargins() const wxOVERRIDE; - - // FIXME: this does not work, it allows this code to compile but will fail - // during run-time -#ifndef __WXUNIVERSAL__ -#ifdef __WXMSW__ - virtual WXHWND GetEditHWND() const { return GetHWND(); } -#endif -#ifdef __WXMOTIF__ - virtual WXWidget GetTextWidget() const { return NULL; } -#endif -#ifdef __WXGTK20__ - virtual GtkEditable *GetEditable() const { return NULL; } - virtual GtkEntry *GetEntry() const { return NULL; } -#endif -#endif // !__WXUNIVERSAL__ - -// Overrides -protected: - - /** - Currently this simply returns @c wxSize(10, 10). - */ - virtual wxSize DoGetBestSize() const wxOVERRIDE ; - - virtual void DoSetValue(const wxString& value, int flags = 0) wxOVERRIDE; - - virtual void DoThaw() wxOVERRIDE; - - -// Data members -protected: -#if wxRICHTEXT_BUFFERED_PAINTING - /// Buffer bitmap - wxBitmap m_bufferBitmap; -#endif - - /// Text buffer - wxRichTextBuffer m_buffer; - - wxMenu* m_contextMenu; - - /// Caret position (1 less than the character position, so -1 is the - /// first caret position). - long m_caretPosition; - - /// Caret position when the default formatting has been changed. As - /// soon as this position changes, we no longer reflect the default style - /// in the UI. - long m_caretPositionForDefaultStyle; - - /// Selection range in character positions. -2, -2 means no selection. - wxRichTextSelection m_selection; - - wxRichTextCtrlSelectionState m_selectionState; - - /// Anchor so we know how to extend the selection - /// It's a caret position since it's between two characters. - long m_selectionAnchor; - - /// Anchor object if selecting multiple container objects, such as grid cells. - wxRichTextObject* m_selectionAnchorObject; - - /// Are we editable? - bool m_editable; - - /// Can we use virtual attributes and virtual text? - bool m_useVirtualAttributes; - - /// Is the vertical scrollbar enabled? - bool m_verticalScrollbarEnabled; - - /// Are we showing the caret position at the start of a line - /// instead of at the end of the previous one? - bool m_caretAtLineStart; - - /// Are we dragging (i.e. extending) a selection? - bool m_dragging; - -#if wxUSE_DRAG_AND_DROP - /// Are we trying to start Drag'n'Drop? - bool m_preDrag; - - /// Initial position when starting Drag'n'Drop - wxPoint m_dragStartPoint; - -#if wxUSE_DATETIME - /// Initial time when starting Drag'n'Drop - wxDateTime m_dragStartTime; -#endif // wxUSE_DATETIME -#endif // wxUSE_DRAG_AND_DROP - - /// Do we need full layout in idle? - bool m_fullLayoutRequired; - wxLongLong m_fullLayoutTime; - long m_fullLayoutSavedPosition; - - /// Threshold for doing delayed layout - long m_delayedLayoutThreshold; - - /// Cursors - wxCursor m_textCursor; - wxCursor m_urlCursor; - - static wxArrayString sm_availableFontNames; - - wxRichTextContextMenuPropertiesInfo m_contextMenuPropertiesInfo; - - /// The object that currently has the editing focus - wxRichTextParagraphLayoutBox* m_focusObject; - - /// An overall scale factor - double m_scale; - - /// Variables for scrollbar hysteresis detection - wxSize m_lastWindowSize; - int m_setupScrollbarsCount; - int m_setupScrollbarsCountInOnSize; - - /// Whether images are enabled for this control - bool m_enableImages; - - /// Line height in pixels - int m_lineHeight; - - /// Whether delayed image loading is enabled for this control - bool m_enableDelayedImageLoading; - bool m_delayedImageProcessingRequired; - wxLongLong m_delayedImageProcessingTime; - wxTimer m_delayedImageProcessingTimer; -}; - -#if wxUSE_DRAG_AND_DROP -class WXDLLIMPEXP_RICHTEXT wxRichTextDropSource : public wxDropSource -{ -public: - wxRichTextDropSource(wxDataObject& data, wxRichTextCtrl* tc) - : wxDropSource(data, tc), m_rtc(tc) {} - -protected: - bool GiveFeedback(wxDragResult effect) wxOVERRIDE; - - wxRichTextCtrl* m_rtc; -}; - -class WXDLLIMPEXP_RICHTEXT wxRichTextDropTarget : public wxDropTarget -{ -public: - wxRichTextDropTarget(wxRichTextCtrl* tc) - : wxDropTarget(new wxRichTextBufferDataObject(new wxRichTextBuffer)), m_rtc(tc) {} - - virtual wxDragResult OnData(wxCoord x, wxCoord y, wxDragResult def) wxOVERRIDE - { - if ( !GetData() ) - return wxDragNone; - m_rtc->OnDrop(x, y, def, m_dataObject); - return def; - } - -protected: - wxRichTextCtrl* m_rtc; -}; -#endif // wxUSE_DRAG_AND_DROP - -/** - @class wxRichTextEvent - - This is the event class for wxRichTextCtrl notifications. - - @beginEventTable{wxRichTextEvent} - @event{EVT_RICHTEXT_LEFT_CLICK(id, func)} - Process a @c wxEVT_RICHTEXT_LEFT_CLICK event, generated when the user - releases the left mouse button over an object. - @event{EVT_RICHTEXT_RIGHT_CLICK(id, func)} - Process a @c wxEVT_RICHTEXT_RIGHT_CLICK event, generated when the user - releases the right mouse button over an object. - @event{EVT_RICHTEXT_MIDDLE_CLICK(id, func)} - Process a @c wxEVT_RICHTEXT_MIDDLE_CLICK event, generated when the user - releases the middle mouse button over an object. - @event{EVT_RICHTEXT_LEFT_DCLICK(id, func)} - Process a @c wxEVT_RICHTEXT_LEFT_DCLICK event, generated when the user - double-clicks an object. - @event{EVT_RICHTEXT_RETURN(id, func)} - Process a @c wxEVT_RICHTEXT_RETURN event, generated when the user - presses the return key. Valid event functions: GetFlags, GetPosition. - @event{EVT_RICHTEXT_CHARACTER(id, func)} - Process a @c wxEVT_RICHTEXT_CHARACTER event, generated when the user - presses a character key. Valid event functions: GetFlags, GetPosition, GetCharacter. - @event{EVT_RICHTEXT_CONSUMING_CHARACTER(id, func)} - Process a @c wxEVT_RICHTEXT_CONSUMING_CHARACTER event, generated when the user - presses a character key but before it is processed and inserted into the control. - Call Veto to prevent normal processing. Valid event functions: GetFlags, GetPosition, - GetCharacter, Veto. - @event{EVT_RICHTEXT_DELETE(id, func)} - Process a @c wxEVT_RICHTEXT_DELETE event, generated when the user - presses the backspace or delete key. Valid event functions: GetFlags, GetPosition. - @event{EVT_RICHTEXT_STYLE_CHANGED(id, func)} - Process a @c wxEVT_RICHTEXT_STYLE_CHANGED event, generated when - styling has been applied to the control. Valid event functions: GetPosition, GetRange. - @event{EVT_RICHTEXT_STYLESHEET_CHANGED(id, func)} - Process a @c wxEVT_RICHTEXT_STYLESHEET_CHANGING event, generated - when the control's stylesheet has changed, for example the user added, - edited or deleted a style. Valid event functions: GetRange, GetPosition. - @event{EVT_RICHTEXT_STYLESHEET_REPLACING(id, func)} - Process a @c wxEVT_RICHTEXT_STYLESHEET_REPLACING event, generated - when the control's stylesheet is about to be replaced, for example when - a file is loaded into the control. - Valid event functions: Veto, GetOldStyleSheet, GetNewStyleSheet. - @event{EVT_RICHTEXT_STYLESHEET_REPLACED(id, func)} - Process a @c wxEVT_RICHTEXT_STYLESHEET_REPLACED event, generated - when the control's stylesheet has been replaced, for example when a file - is loaded into the control. - Valid event functions: GetOldStyleSheet, GetNewStyleSheet. - @event{EVT_RICHTEXT_PROPERTIES_CHANGED(id, func)} - Process a @c wxEVT_RICHTEXT_PROPERTIES_CHANGED event, generated when - properties have been applied to the control. Valid event functions: GetPosition, GetRange. - @event{EVT_RICHTEXT_CONTENT_INSERTED(id, func)} - Process a @c wxEVT_RICHTEXT_CONTENT_INSERTED event, generated when - content has been inserted into the control. - Valid event functions: GetPosition, GetRange. - @event{EVT_RICHTEXT_CONTENT_DELETED(id, func)} - Process a @c wxEVT_RICHTEXT_CONTENT_DELETED event, generated when - content has been deleted from the control. - Valid event functions: GetPosition, GetRange. - @event{EVT_RICHTEXT_BUFFER_RESET(id, func)} - Process a @c wxEVT_RICHTEXT_BUFFER_RESET event, generated when the - buffer has been reset by deleting all content. - You can use this to set a default style for the first new paragraph. - @event{EVT_RICHTEXT_SELECTION_CHANGED(id, func)} - Process a @c wxEVT_RICHTEXT_SELECTION_CHANGED event, generated when the - selection range has changed. - @event{EVT_RICHTEXT_FOCUS_OBJECT_CHANGED(id, func)} - Process a @c wxEVT_RICHTEXT_FOCUS_OBJECT_CHANGED event, generated when the - current focus object has changed. - @endEventTable - - @library{wxrichtext} - @category{events,richtext} -*/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextEvent : public wxNotifyEvent -{ -public: - /** - Constructor. - - @param commandType - The type of the event. - @param id - Window identifier. The value @c wxID_ANY indicates a default value. - */ - wxRichTextEvent(wxEventType commandType = wxEVT_NULL, int winid = 0) - : wxNotifyEvent(commandType, winid), - m_flags(0), m_position(-1), m_oldStyleSheet(NULL), m_newStyleSheet(NULL), - m_char((wxChar) 0), m_container(NULL), m_oldContainer(NULL) - { } - - /** - Copy constructor. - */ - wxRichTextEvent(const wxRichTextEvent& event) - : wxNotifyEvent(event), - m_flags(event.m_flags), m_position(-1), - m_oldStyleSheet(event.m_oldStyleSheet), m_newStyleSheet(event.m_newStyleSheet), - m_char((wxChar) 0), m_container(event.m_container), m_oldContainer(event.m_oldContainer) - { } - - /** - Returns the buffer position at which the event occurred. - */ - long GetPosition() const { return m_position; } - - /** - Sets the buffer position variable. - */ - void SetPosition(long pos) { m_position = pos; } - - /** - Returns flags indicating modifier keys pressed. - - Possible values are @c wxRICHTEXT_CTRL_DOWN, @c wxRICHTEXT_SHIFT_DOWN, and @c wxRICHTEXT_ALT_DOWN. - */ - int GetFlags() const { return m_flags; } - - /** - Sets flags indicating modifier keys pressed. - - Possible values are @c wxRICHTEXT_CTRL_DOWN, @c wxRICHTEXT_SHIFT_DOWN, and @c wxRICHTEXT_ALT_DOWN. - */ - void SetFlags(int flags) { m_flags = flags; } - - /** - Returns the old style sheet. - - Can be used in a @c wxEVT_RICHTEXT_STYLESHEET_CHANGING or - @c wxEVT_RICHTEXT_STYLESHEET_CHANGED event handler. - */ - wxRichTextStyleSheet* GetOldStyleSheet() const { return m_oldStyleSheet; } - - /** - Sets the old style sheet variable. - */ - void SetOldStyleSheet(wxRichTextStyleSheet* sheet) { m_oldStyleSheet = sheet; } - - /** - Returns the new style sheet. - - Can be used in a @c wxEVT_RICHTEXT_STYLESHEET_CHANGING or - @c wxEVT_RICHTEXT_STYLESHEET_CHANGED event handler. - */ - wxRichTextStyleSheet* GetNewStyleSheet() const { return m_newStyleSheet; } - - /** - Sets the new style sheet variable. - */ - void SetNewStyleSheet(wxRichTextStyleSheet* sheet) { m_newStyleSheet = sheet; } - - /** - Gets the range for the current operation. - */ - const wxRichTextRange& GetRange() const { return m_range; } - - /** - Sets the range variable. - */ - void SetRange(const wxRichTextRange& range) { m_range = range; } - - /** - Returns the character pressed, within a @c wxEVT_RICHTEXT_CHARACTER event. - */ - wxChar GetCharacter() const { return m_char; } - - /** - Sets the character variable. - */ - void SetCharacter(wxChar ch) { m_char = ch; } - - /** - Returns the container for which the event is relevant. - */ - wxRichTextParagraphLayoutBox* GetContainer() const { return m_container; } - - /** - Sets the container for which the event is relevant. - */ - void SetContainer(wxRichTextParagraphLayoutBox* container) { m_container = container; } - - /** - Returns the old container, for a focus change event. - */ - wxRichTextParagraphLayoutBox* GetOldContainer() const { return m_oldContainer; } - - /** - Sets the old container, for a focus change event. - */ - void SetOldContainer(wxRichTextParagraphLayoutBox* container) { m_oldContainer = container; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxRichTextEvent(*this); } - -protected: - int m_flags; - long m_position; - wxRichTextStyleSheet* m_oldStyleSheet; - wxRichTextStyleSheet* m_newStyleSheet; - wxRichTextRange m_range; - wxChar m_char; - wxRichTextParagraphLayoutBox* m_container; - wxRichTextParagraphLayoutBox* m_oldContainer; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxRichTextEvent); -}; - -/*! - * wxRichTextCtrl events - */ -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_LEFT_CLICK, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_RIGHT_CLICK, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_MIDDLE_CLICK, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_LEFT_DCLICK, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_RETURN, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_CHARACTER, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_CONSUMING_CHARACTER, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_DELETE, wxRichTextEvent ); - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_STYLESHEET_CHANGING, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_STYLESHEET_CHANGED, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_STYLESHEET_REPLACING, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_STYLESHEET_REPLACED, wxRichTextEvent ); - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_CONTENT_INSERTED, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_CONTENT_DELETED, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_STYLE_CHANGED, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_PROPERTIES_CHANGED, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_SELECTION_CHANGED, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_BUFFER_RESET, wxRichTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_RICHTEXT, wxEVT_RICHTEXT_FOCUS_OBJECT_CHANGED, wxRichTextEvent ); - -typedef void (wxEvtHandler::*wxRichTextEventFunction)(wxRichTextEvent&); - -#define wxRichTextEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxRichTextEventFunction, func) - -#define EVT_RICHTEXT_LEFT_CLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_LEFT_CLICK, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_RIGHT_CLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_RIGHT_CLICK, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_MIDDLE_CLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_MIDDLE_CLICK, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_LEFT_DCLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_LEFT_DCLICK, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_RETURN(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_RETURN, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_CHARACTER(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_CHARACTER, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_CONSUMING_CHARACTER(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_CONSUMING_CHARACTER, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_DELETE(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_DELETE, id, -1, wxRichTextEventHandler( fn ), NULL ), - -#define EVT_RICHTEXT_STYLESHEET_CHANGING(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_STYLESHEET_CHANGING, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_STYLESHEET_CHANGED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_STYLESHEET_CHANGED, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_STYLESHEET_REPLACING(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_STYLESHEET_REPLACING, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_STYLESHEET_REPLACED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_STYLESHEET_REPLACED, id, -1, wxRichTextEventHandler( fn ), NULL ), - -#define EVT_RICHTEXT_CONTENT_INSERTED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_CONTENT_INSERTED, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_CONTENT_DELETED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_CONTENT_DELETED, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_STYLE_CHANGED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_STYLE_CHANGED, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_PROPERTIES_CHANGED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_PROPERTIES_CHANGED, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_SELECTION_CHANGED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_SELECTION_CHANGED, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_BUFFER_RESET(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_BUFFER_RESET, id, -1, wxRichTextEventHandler( fn ), NULL ), -#define EVT_RICHTEXT_FOCUS_OBJECT_CHANGED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_RICHTEXT_FOCUS_OBJECT_CHANGED, id, -1, wxRichTextEventHandler( fn ), NULL ), - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_RICHTEXT_LEFT_CLICK wxEVT_RICHTEXT_LEFT_CLICK -#define wxEVT_COMMAND_RICHTEXT_RIGHT_CLICK wxEVT_RICHTEXT_RIGHT_CLICK -#define wxEVT_COMMAND_RICHTEXT_MIDDLE_CLICK wxEVT_RICHTEXT_MIDDLE_CLICK -#define wxEVT_COMMAND_RICHTEXT_LEFT_DCLICK wxEVT_RICHTEXT_LEFT_DCLICK -#define wxEVT_COMMAND_RICHTEXT_RETURN wxEVT_RICHTEXT_RETURN -#define wxEVT_COMMAND_RICHTEXT_CHARACTER wxEVT_RICHTEXT_CHARACTER -#define wxEVT_COMMAND_RICHTEXT_DELETE wxEVT_RICHTEXT_DELETE -#define wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGING wxEVT_RICHTEXT_STYLESHEET_CHANGING -#define wxEVT_COMMAND_RICHTEXT_STYLESHEET_CHANGED wxEVT_RICHTEXT_STYLESHEET_CHANGED -#define wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACING wxEVT_RICHTEXT_STYLESHEET_REPLACING -#define wxEVT_COMMAND_RICHTEXT_STYLESHEET_REPLACED wxEVT_RICHTEXT_STYLESHEET_REPLACED -#define wxEVT_COMMAND_RICHTEXT_CONTENT_INSERTED wxEVT_RICHTEXT_CONTENT_INSERTED -#define wxEVT_COMMAND_RICHTEXT_CONTENT_DELETED wxEVT_RICHTEXT_CONTENT_DELETED -#define wxEVT_COMMAND_RICHTEXT_STYLE_CHANGED wxEVT_RICHTEXT_STYLE_CHANGED -#define wxEVT_COMMAND_RICHTEXT_PROPERTIES_CHANGED wxEVT_RICHTEXT_PROPERTIES_CHANGED -#define wxEVT_COMMAND_RICHTEXT_SELECTION_CHANGED wxEVT_RICHTEXT_SELECTION_CHANGED -#define wxEVT_COMMAND_RICHTEXT_BUFFER_RESET wxEVT_RICHTEXT_BUFFER_RESET -#define wxEVT_COMMAND_RICHTEXT_FOCUS_OBJECT_CHANGED wxEVT_RICHTEXT_FOCUS_OBJECT_CHANGED - -#endif - // wxUSE_RICHTEXT - -#endif - // _WX_RICHTEXTCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextdialogpage.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextdialogpage.h deleted file mode 100644 index 8caffca8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextdialogpage.h +++ /dev/null @@ -1,41 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextdialogpage.h -// Purpose: Formatting dialog page base class for wxRTC -// Author: Julian Smart -// Modified by: -// Created: 2010-11-14 -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RICHTEXTDIALOGPAGE_H_ -#define _WX_RICHTEXTDIALOGPAGE_H_ - -#if wxUSE_RICHTEXT - -#include "wx/panel.h" -#include "wx/richtext/richtextuicustomization.h" - -/** - @class wxRichTextDialogPage - The base class for formatting dialog pages. - **/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextDialogPage: public wxPanel -{ -public: - wxDECLARE_CLASS(wxRichTextDialogPage); - wxRichTextDialogPage() {} - wxRichTextDialogPage(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0) - { - Create(parent, id, pos, size, style); - } - - DECLARE_BASE_CLASS_HELP_PROVISION() -}; - -#endif - // wxUSE_RICHTEXT - -#endif - // _WX_RICHTEXTDIALOGPAGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextfontpage.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextfontpage.h deleted file mode 100644 index b7a242d7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextfontpage.h +++ /dev/null @@ -1,211 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextfontpage.h -// Purpose: Font page for wxRichTextFormattingDialog -// Author: Julian Smart -// Modified by: -// Created: 2006-10-02 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _RICHTEXTFONTPAGE_H_ -#define _RICHTEXTFONTPAGE_H_ - -/*! - * Includes - */ - -#include "wx/richtext/richtextdialogpage.h" - -////@begin includes -#include "wx/spinbutt.h" -////@end includes - -/*! - * Forward declarations - */ - -////@begin forward declarations -class wxBoxSizer; -class wxSpinButton; -class wxRichTextFontListBox; -class wxRichTextColourSwatchCtrl; -class wxRichTextFontPreviewCtrl; -////@end forward declarations - -/*! - * Control identifiers - */ - -////@begin control identifiers -#define SYMBOL_WXRICHTEXTFONTPAGE_STYLE wxTAB_TRAVERSAL -#define SYMBOL_WXRICHTEXTFONTPAGE_TITLE wxEmptyString -#define SYMBOL_WXRICHTEXTFONTPAGE_IDNAME ID_RICHTEXTFONTPAGE -#define SYMBOL_WXRICHTEXTFONTPAGE_SIZE wxSize(200, 100) -#define SYMBOL_WXRICHTEXTFONTPAGE_POSITION wxDefaultPosition -////@end control identifiers - -/*! - * wxRichTextFontPage class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextFontPage: public wxRichTextDialogPage -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextFontPage); - wxDECLARE_EVENT_TABLE(); - DECLARE_HELP_PROVISION() - -public: - /// Constructors - wxRichTextFontPage( ); - wxRichTextFontPage( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTFONTPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTFONTPAGE_SIZE, long style = SYMBOL_WXRICHTEXTFONTPAGE_STYLE ); - - /// Initialise members - void Init(); - - /// Creation - bool Create( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTFONTPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTFONTPAGE_SIZE, long style = SYMBOL_WXRICHTEXTFONTPAGE_STYLE ); - - /// Creates the controls and sizers - void CreateControls(); - - /// Transfer data from/to window - virtual bool TransferDataFromWindow() wxOVERRIDE; - virtual bool TransferDataToWindow() wxOVERRIDE; - - /// Updates the font preview - void UpdatePreview(); - - void OnFaceListBoxSelected( wxCommandEvent& event ); - void OnColourClicked( wxCommandEvent& event ); - - /// Gets the attributes associated with the main formatting dialog - wxRichTextAttr* GetAttributes(); - - /// Determines which text effect controls should be shown. - /// Currently only wxTEXT_ATTR_EFFECT_RTL and wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION may - /// be removed from the page. By default, these effects are not shown as they - /// have no effect in the editor. - static int GetAllowedTextEffects() { return sm_allowedTextEffects; } - - /// Sets the allowed text effects in the page. - static void SetAllowedTextEffects(int allowed) { sm_allowedTextEffects = allowed; } - -////@begin wxRichTextFontPage event handler declarations - - /// wxEVT_IDLE event handler for ID_RICHTEXTFONTPAGE - void OnIdle( wxIdleEvent& event ); - - /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTFONTPAGE_FACETEXTCTRL - void OnFaceTextCtrlUpdated( wxCommandEvent& event ); - - /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTFONTPAGE_SIZETEXTCTRL - void OnSizeTextCtrlUpdated( wxCommandEvent& event ); - - /// wxEVT_SCROLL_LINEUP event handler for ID_RICHTEXTFONTPAGE_SPINBUTTONS - void OnRichtextfontpageSpinbuttonsUp( wxSpinEvent& event ); - - /// wxEVT_SCROLL_LINEDOWN event handler for ID_RICHTEXTFONTPAGE_SPINBUTTONS - void OnRichtextfontpageSpinbuttonsDown( wxSpinEvent& event ); - - /// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_RICHTEXTFONTPAGE_SIZE_UNITS - void OnRichtextfontpageSizeUnitsSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_LISTBOX_SELECTED event handler for ID_RICHTEXTFONTPAGE_SIZELISTBOX - void OnSizeListBoxSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTFONTPAGE_STYLECTRL - void OnStyleCtrlSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTFONTPAGE_WEIGHTCTRL - void OnWeightCtrlSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTFONTPAGE_UNDERLINING_CTRL - void OnUnderliningCtrlSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTFONTPAGE_STRIKETHROUGHCTRL - void OnStrikethroughctrlClick( wxCommandEvent& event ); - - /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTFONTPAGE_CAPSCTRL - void OnCapsctrlClick( wxCommandEvent& event ); - - /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTFONTPAGE_SUPERSCRIPT - void OnRichtextfontpageSuperscriptClick( wxCommandEvent& event ); - - /// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RICHTEXTFONTPAGE_SUBSCRIPT - void OnRichtextfontpageSubscriptClick( wxCommandEvent& event ); - -////@end wxRichTextFontPage event handler declarations - -////@begin wxRichTextFontPage member function declarations - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end wxRichTextFontPage member function declarations - - /// Should we show tooltips? - static bool ShowToolTips(); - -////@begin wxRichTextFontPage member variables - wxBoxSizer* m_innerSizer; - wxTextCtrl* m_faceTextCtrl; - wxTextCtrl* m_sizeTextCtrl; - wxSpinButton* m_fontSizeSpinButtons; - wxChoice* m_sizeUnitsCtrl; - wxBoxSizer* m_fontListBoxParent; - wxRichTextFontListBox* m_faceListBox; - wxListBox* m_sizeListBox; - wxComboBox* m_styleCtrl; - wxComboBox* m_weightCtrl; - wxComboBox* m_underliningCtrl; - wxCheckBox* m_textColourLabel; - wxRichTextColourSwatchCtrl* m_colourCtrl; - wxCheckBox* m_bgColourLabel; - wxRichTextColourSwatchCtrl* m_bgColourCtrl; - wxCheckBox* m_strikethroughCtrl; - wxCheckBox* m_capitalsCtrl; - wxCheckBox* m_smallCapitalsCtrl; - wxCheckBox* m_superscriptCtrl; - wxCheckBox* m_subscriptCtrl; - wxBoxSizer* m_rtlParentSizer; - wxCheckBox* m_rtlCtrl; - wxCheckBox* m_suppressHyphenationCtrl; - wxRichTextFontPreviewCtrl* m_previewCtrl; - /// Control identifiers - enum { - ID_RICHTEXTFONTPAGE = 10000, - ID_RICHTEXTFONTPAGE_FACETEXTCTRL = 10001, - ID_RICHTEXTFONTPAGE_SIZETEXTCTRL = 10002, - ID_RICHTEXTFONTPAGE_SPINBUTTONS = 10003, - ID_RICHTEXTFONTPAGE_SIZE_UNITS = 10004, - ID_RICHTEXTFONTPAGE_FACELISTBOX = 10005, - ID_RICHTEXTFONTPAGE_SIZELISTBOX = 10006, - ID_RICHTEXTFONTPAGE_STYLECTRL = 10007, - ID_RICHTEXTFONTPAGE_WEIGHTCTRL = 10008, - ID_RICHTEXTFONTPAGE_UNDERLINING_CTRL = 10009, - ID_RICHTEXTFONTPAGE_COLOURCTRL_LABEL = 10010, - ID_RICHTEXTFONTPAGE_COLOURCTRL = 10011, - ID_RICHTEXTFONTPAGE_BGCOLOURCTRL_LABEL = 10012, - ID_RICHTEXTFONTPAGE_BGCOLOURCTRL = 10013, - ID_RICHTEXTFONTPAGE_STRIKETHROUGHCTRL = 10014, - ID_RICHTEXTFONTPAGE_CAPSCTRL = 10015, - ID_RICHTEXTFONTPAGE_SMALLCAPSCTRL = 10016, - ID_RICHTEXTFONTPAGE_SUPERSCRIPT = 10017, - ID_RICHTEXTFONTPAGE_SUBSCRIPT = 10018, - ID_RICHTEXTFONTPAGE_RIGHT_TO_LEFT = 10020, - ID_RICHTEXTFONTPAGE_SUBSCRIPT_SUPPRESS_HYPHENATION = 10021, - ID_RICHTEXTFONTPAGE_PREVIEWCTRL = 10019 - }; -////@end wxRichTextFontPage member variables - - bool m_dontUpdate; - bool m_colourPresent; - bool m_bgColourPresent; - static int sm_allowedTextEffects; -}; - -#endif - // _RICHTEXTFONTPAGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextformatdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextformatdlg.h deleted file mode 100644 index 7256536f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextformatdlg.h +++ /dev/null @@ -1,380 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextformatdlg.h -// Purpose: Formatting dialog for wxRichTextCtrl -// Author: Julian Smart -// Modified by: -// Created: 2006-10-01 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RICHTEXTFORMATDLG_H_ -#define _WX_RICHTEXTFORMATDLG_H_ - -/*! - * Includes - */ - -#include "wx/defs.h" - -#if wxUSE_RICHTEXT - -#include "wx/propdlg.h" -#include "wx/bookctrl.h" -#include "wx/withimages.h" -#include "wx/colourdata.h" - -#if wxUSE_HTML -#include "wx/htmllbox.h" -#endif - -#include "wx/richtext/richtextbuffer.h" -#include "wx/richtext/richtextstyles.h" -#include "wx/richtext/richtextuicustomization.h" - -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextFormattingDialog; -class WXDLLIMPEXP_FWD_CORE wxComboBox; -class WXDLLIMPEXP_FWD_CORE wxCheckBox; - -/*! - * Flags determining the pages and buttons to be created in the dialog - */ - -#define wxRICHTEXT_FORMAT_STYLE_EDITOR 0x0001 -#define wxRICHTEXT_FORMAT_FONT 0x0002 -#define wxRICHTEXT_FORMAT_TABS 0x0004 -#define wxRICHTEXT_FORMAT_BULLETS 0x0008 -#define wxRICHTEXT_FORMAT_INDENTS_SPACING 0x0010 -#define wxRICHTEXT_FORMAT_LIST_STYLE 0x0020 -#define wxRICHTEXT_FORMAT_MARGINS 0x0040 -#define wxRICHTEXT_FORMAT_SIZE 0x0080 -#define wxRICHTEXT_FORMAT_BORDERS 0x0100 -#define wxRICHTEXT_FORMAT_BACKGROUND 0x0200 - -#define wxRICHTEXT_FORMAT_HELP_BUTTON 0x1000 - -/*! - * Indices for bullet styles in list control - */ - -enum { - wxRICHTEXT_BULLETINDEX_NONE = 0, - wxRICHTEXT_BULLETINDEX_ARABIC, - wxRICHTEXT_BULLETINDEX_UPPER_CASE, - wxRICHTEXT_BULLETINDEX_LOWER_CASE, - wxRICHTEXT_BULLETINDEX_UPPER_CASE_ROMAN, - wxRICHTEXT_BULLETINDEX_LOWER_CASE_ROMAN, - wxRICHTEXT_BULLETINDEX_OUTLINE, - wxRICHTEXT_BULLETINDEX_SYMBOL, - wxRICHTEXT_BULLETINDEX_BITMAP, - wxRICHTEXT_BULLETINDEX_STANDARD -}; - -/*! - * Shorthand for common combinations of pages - */ - -#define wxRICHTEXT_FORMAT_PARAGRAPH (wxRICHTEXT_FORMAT_INDENTS_SPACING | wxRICHTEXT_FORMAT_BULLETS | wxRICHTEXT_FORMAT_TABS | wxRICHTEXT_FORMAT_FONT) -#define wxRICHTEXT_FORMAT_CHARACTER (wxRICHTEXT_FORMAT_FONT) -#define wxRICHTEXT_FORMAT_STYLE (wxRICHTEXT_FORMAT_PARAGRAPH | wxRICHTEXT_FORMAT_STYLE_EDITOR) - -/*! - * Factory for formatting dialog - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextFormattingDialogFactory: public wxObject -{ -public: - wxRichTextFormattingDialogFactory() {} - virtual ~wxRichTextFormattingDialogFactory() {} - -// Overridables - - /// Create all pages, under the dialog's book control, also calling AddPage - virtual bool CreatePages(long pages, wxRichTextFormattingDialog* dialog); - - /// Create a page, given a page identifier - virtual wxPanel* CreatePage(int page, wxString& title, wxRichTextFormattingDialog* dialog); - - /// Enumerate all available page identifiers - virtual int GetPageId(int i) const; - - /// Get the number of available page identifiers - virtual int GetPageIdCount() const; - - /// Get the image index for the given page identifier - virtual int GetPageImage(int WXUNUSED(id)) const { return -1; } - - /// Invoke help for the dialog - virtual bool ShowHelp(int page, wxRichTextFormattingDialog* dialog); - - /// Set the sheet style, called at the start of wxRichTextFormattingDialog::Create - virtual bool SetSheetStyle(wxRichTextFormattingDialog* dialog); - - /// Create the main dialog buttons - virtual bool CreateButtons(wxRichTextFormattingDialog* dialog); -}; - -/*! - * Formatting dialog for a wxRichTextCtrl - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextFormattingDialog: public wxPropertySheetDialog, - public wxWithImages -{ - wxDECLARE_CLASS(wxRichTextFormattingDialog); -DECLARE_HELP_PROVISION() - -public: - enum { Option_AllowPixelFontSize = 0x0001 }; - - wxRichTextFormattingDialog() { Init(); } - - wxRichTextFormattingDialog(long flags, wxWindow* parent, const wxString& title = wxGetTranslation(wxT("Formatting")), wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, const wxSize& sz = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE) - { - Init(); - Create(flags, parent, title, id, pos, sz, style); - } - - ~wxRichTextFormattingDialog(); - - void Init(); - - bool Create(long flags, wxWindow* parent, const wxString& title = wxGetTranslation(wxT("Formatting")), wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, const wxSize& sz = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE); - - /// Get attributes from the given range - virtual bool GetStyle(wxRichTextCtrl* ctrl, const wxRichTextRange& range); - - /// Set the attributes and optionally update the display - virtual bool SetStyle(const wxRichTextAttr& style, bool update = true); - - /// Set the style definition and optionally update the display - virtual bool SetStyleDefinition(const wxRichTextStyleDefinition& styleDef, wxRichTextStyleSheet* sheet, bool update = true); - - /// Get the style definition, if any - virtual wxRichTextStyleDefinition* GetStyleDefinition() const { return m_styleDefinition; } - - /// Get the style sheet, if any - virtual wxRichTextStyleSheet* GetStyleSheet() const { return m_styleSheet; } - - /// Update the display - virtual bool UpdateDisplay(); - - /// Apply attributes to the given range - virtual bool ApplyStyle(wxRichTextCtrl* ctrl, const wxRichTextRange& range, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO|wxRICHTEXT_SETSTYLE_OPTIMIZE); - - /// Apply attributes to the object being edited, if any - virtual bool ApplyStyle(wxRichTextCtrl* ctrl, int flags = wxRICHTEXT_SETSTYLE_WITH_UNDO); - - /// Gets and sets the attributes - const wxRichTextAttr& GetAttributes() const { return m_attributes; } - wxRichTextAttr& GetAttributes() { return m_attributes; } - void SetAttributes(const wxRichTextAttr& attr) { m_attributes = attr; } - - /// Sets the dialog options, determining what the interface presents to the user. - /// Currently the only option is Option_AllowPixelFontSize. - void SetOptions(int options) { m_options = options; } - - /// Gets the dialog options, determining what the interface presents to the user. - /// Currently the only option is Option_AllowPixelFontSize. - int GetOptions() const { return m_options; } - - /// Returns @true if the given option is present. - bool HasOption(int option) const { return (m_options & option) != 0; } - - /// If editing the attributes for a particular object, such as an image, - /// set the object so the code can initialize attributes such as size correctly. - wxRichTextObject* GetObject() const { return m_object; } - void SetObject(wxRichTextObject* obj) { m_object = obj; } - - /// Transfers the data and from to the window - virtual bool TransferDataToWindow() wxOVERRIDE; - virtual bool TransferDataFromWindow() wxOVERRIDE; - - /// Apply the styles when a different tab is selected, so the previews are - /// up to date - void OnTabChanged(wxBookCtrlEvent& event); - - /// Respond to help command - void OnHelp(wxCommandEvent& event); - void OnUpdateHelp(wxUpdateUIEvent& event); - - /// Get/set formatting factory object - static void SetFormattingDialogFactory(wxRichTextFormattingDialogFactory* factory); - static wxRichTextFormattingDialogFactory* GetFormattingDialogFactory() { return ms_FormattingDialogFactory; } - - /// Helper for pages to get the top-level dialog - static wxRichTextFormattingDialog* GetDialog(wxWindow* win); - - /// Helper for pages to get the attributes - static wxRichTextAttr* GetDialogAttributes(wxWindow* win); - - /// Helper for pages to get the reset attributes - static wxRichTextAttr* GetDialogResetAttributes(wxWindow* win); - - /// Helper for pages to get the style - static wxRichTextStyleDefinition* GetDialogStyleDefinition(wxWindow* win); - - /// Should we show tooltips? - static bool ShowToolTips() { return sm_showToolTips; } - - /// Determines whether tooltips will be shown - static void SetShowToolTips(bool show) { sm_showToolTips = show; } - - /// Set the dimension into the value and units controls. Optionally pass units to - /// specify the ordering of units in the combobox. - static void SetDimensionValue(wxTextAttrDimension& dim, wxTextCtrl* valueCtrl, wxComboBox* unitsCtrl, wxCheckBox* checkBox, wxArrayInt* units = NULL); - - /// Get the dimension from the value and units controls Optionally pass units to - /// specify the ordering of units in the combobox. - static void GetDimensionValue(wxTextAttrDimension& dim, wxTextCtrl* valueCtrl, wxComboBox* unitsCtrl, wxCheckBox* checkBox, wxArrayInt* units = NULL); - - /// Convert from a string to a dimension integer. - static bool ConvertFromString(const wxString& str, int& ret, int unit); - - /// Map book control page index to our page id - void AddPageId(int id) { m_pageIds.Add(id); } - - /// Find a page by class - wxWindow* FindPage(wxClassInfo* info) const; - - /// Whether to restore the last-selected page. - static bool GetRestoreLastPage() { return sm_restoreLastPage; } - static void SetRestoreLastPage(bool b) { sm_restoreLastPage = b; } - - /// The page identifier of the last page selected (not the control id) - static int GetLastPage() { return sm_lastPage; } - static void SetLastPage(int lastPage) { sm_lastPage = lastPage; } - - /// Sets the custom colour data for use by the colour dialog. - static void SetColourData(const wxColourData& colourData) { sm_colourData = colourData; } - - /// Returns the custom colour data for use by the colour dialog. - static wxColourData GetColourData() { return sm_colourData; } - -protected: - - wxRichTextAttr m_attributes; - wxRichTextStyleDefinition* m_styleDefinition; - wxRichTextStyleSheet* m_styleSheet; - wxRichTextObject* m_object; - wxArrayInt m_pageIds; // mapping of book control indexes to page ids - int m_options; // UI options - bool m_ignoreUpdates; - static wxColourData sm_colourData; - - static wxRichTextFormattingDialogFactory* ms_FormattingDialogFactory; - static bool sm_showToolTips; - - static bool sm_restoreLastPage; - static int sm_lastPage; - - wxDECLARE_EVENT_TABLE(); -}; - -//----------------------------------------------------------------------------- -// helper class - wxRichTextFontPreviewCtrl -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_RICHTEXT wxRichTextFontPreviewCtrl : public wxWindow -{ -public: - wxRichTextFontPreviewCtrl(wxWindow *parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& sz = wxDefaultSize, long style = 0); - - void SetTextEffects(int effects) { m_textEffects = effects; } - int GetTextEffects() const { return m_textEffects; } - -private: - int m_textEffects; - - void OnPaint(wxPaintEvent& event); - wxDECLARE_EVENT_TABLE(); -}; - -/* - * A control for displaying a small preview of a colour or bitmap - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextColourSwatchCtrl: public wxControl -{ - wxDECLARE_CLASS(wxRichTextColourSwatchCtrl); -public: - wxRichTextColourSwatchCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0); - ~wxRichTextColourSwatchCtrl(); - - void OnMouseEvent(wxMouseEvent& event); - - void SetColour(const wxColour& colour) { m_colour = colour; SetBackgroundColour(m_colour); } - - wxColour& GetColour() { return m_colour; } - - virtual wxSize DoGetBestSize() const wxOVERRIDE { return GetSize(); } - -protected: - wxColour m_colour; - - wxDECLARE_EVENT_TABLE(); -}; - -/*! - * wxRichTextFontListBox class declaration - * A listbox to display fonts. - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextFontListBox: public wxHtmlListBox -{ - wxDECLARE_CLASS(wxRichTextFontListBox); - wxDECLARE_EVENT_TABLE(); - -public: - wxRichTextFontListBox() - { - Init(); - } - wxRichTextFontListBox(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0); - virtual ~wxRichTextFontListBox(); - - void Init() - { - } - - bool Create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0); - - /// Creates a suitable HTML fragment for a font - wxString CreateHTML(const wxString& facename) const; - - /// Get font name for index - wxString GetFaceName(size_t i) const ; - - /// Set selection for string, returning the index. - int SetFaceNameSelection(const wxString& name); - - /// Updates the font list - void UpdateFonts(); - - /// Does this face name exist? - bool HasFaceName(const wxString& faceName) const { return m_faceNames.Index(faceName) != wxNOT_FOUND; } - - /// Returns the array of face names - const wxArrayString& GetFaceNames() const { return m_faceNames; } - -protected: - /// Returns the HTML for this item - virtual wxString OnGetItem(size_t n) const wxOVERRIDE; - -private: - - wxArrayString m_faceNames; -}; - -#endif - // wxUSE_RICHTEXT - -#endif - // _WX_RICHTEXTFORMATDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtexthtml.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtexthtml.h deleted file mode 100644 index 1db619b0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtexthtml.h +++ /dev/null @@ -1,147 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtexthtml.h -// Purpose: HTML I/O for wxRichTextCtrl -// Author: Julian Smart -// Modified by: -// Created: 2005-09-30 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RICHTEXTHTML_H_ -#define _WX_RICHTEXTHTML_H_ - -/*! - * Includes - */ - -#include "wx/richtext/richtextbuffer.h" - -// Use CSS styles where applicable, otherwise use non-CSS workarounds -#define wxRICHTEXT_HANDLER_USE_CSS 0x1000 - -/*! - * wxRichTextHTMLHandler - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextHTMLHandler: public wxRichTextFileHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextHTMLHandler); -public: - wxRichTextHTMLHandler(const wxString& name = wxT("HTML"), const wxString& ext = wxT("html"), int type = wxRICHTEXT_TYPE_HTML); - - /// Can we save using this handler? - virtual bool CanSave() const wxOVERRIDE { return true; } - - /// Can we load using this handler? - virtual bool CanLoad() const wxOVERRIDE { return false; } - - /// Can we handle this filename (if using files)? By default, checks the extension. - virtual bool CanHandle(const wxString& filename) const wxOVERRIDE; - -// Accessors and operations unique to this handler - - /// Set and get the list of image locations generated by the last operation - void SetTemporaryImageLocations(const wxArrayString& locations) { m_imageLocations = locations; } - const wxArrayString& GetTemporaryImageLocations() const { return m_imageLocations; } - - /// Clear the image locations generated by the last operation - void ClearTemporaryImageLocations() { m_imageLocations.Clear(); } - - /// Delete the in-memory or temporary files generated by the last operation - bool DeleteTemporaryImages(); - - /// Delete the in-memory or temporary files generated by the last operation. This is a static - /// function that can be used to delete the saved locations from an earlier operation, - /// for example after the user has viewed the HTML file. - static bool DeleteTemporaryImages(int flags, const wxArrayString& imageLocations); - - /// Reset the file counter, in case, for example, the same names are required each time - static void SetFileCounter(int counter) { sm_fileCounter = counter; } - - /// Set and get the directory for storing temporary files. If empty, the system - /// temporary directory will be used. - void SetTempDir(const wxString& tempDir) { m_tempDir = tempDir; } - const wxString& GetTempDir() const { return m_tempDir; } - - /// Set and get mapping from point size to HTML font size. There should be 7 elements, - /// one for each HTML font size, each element specifying the maximum point size for that - /// HTML font size. E.g. 8, 10, 13, 17, 22, 29, 100 - void SetFontSizeMapping(const wxArrayInt& fontSizeMapping) { m_fontSizeMapping = fontSizeMapping; } - wxArrayInt GetFontSizeMapping() const { return m_fontSizeMapping; } - -protected: - -// Implementation - -#if wxUSE_STREAMS - virtual bool DoLoadFile(wxRichTextBuffer *buffer, wxInputStream& stream) wxOVERRIDE; - virtual bool DoSaveFile(wxRichTextBuffer *buffer, wxOutputStream& stream) wxOVERRIDE; - - /// Output character formatting - void BeginCharacterFormatting(const wxRichTextAttr& currentStyle, const wxRichTextAttr& thisStyle, const wxRichTextAttr& paraStyle, wxTextOutputStream& stream ); - void EndCharacterFormatting(const wxRichTextAttr& currentStyle, const wxRichTextAttr& thisStyle, const wxRichTextAttr& paraStyle, wxTextOutputStream& stream ); - - /// Output paragraph formatting - void BeginParagraphFormatting(const wxRichTextAttr& currentStyle, const wxRichTextAttr& thisStyle, wxTextOutputStream& stream); - void EndParagraphFormatting(const wxRichTextAttr& currentStyle, const wxRichTextAttr& thisStyle, wxTextOutputStream& stream); - - /// Output font tag - void OutputFont(const wxRichTextAttr& style, wxTextOutputStream& stream); - - /// Closes lists to level (-1 means close all) - void CloseLists(int level, wxTextOutputStream& str); - - /// Writes an image to its base64 equivalent, or to the memory filesystem, or to a file - void WriteImage(wxRichTextImage* image, wxOutputStream& stream); - - /// Converts from pt to size property compatible height - long PtToSize(long size); - - /// Typical base64 encoder - wxChar* b64enc(unsigned char* input, size_t in_len); - - /// Gets the mime type of the given wxBITMAP_TYPE - const wxChar* GetMimeType(int imageType); - - /// Gets the html equivalent of the specified value - wxString GetAlignment(const wxRichTextAttr& thisStyle); - - /// Generates   array for indentations - wxString SymbolicIndent(long indent); - - /// Finds the html equivalent of the specified bullet - int TypeOfList(const wxRichTextAttr& thisStyle, wxString& tag); -#endif - -// Data members - - wxRichTextBuffer* m_buffer; - - /// Indentation values of the table tags - wxArrayInt m_indents; - - /// Stack of list types: 0 = ol, 1 = ul - wxArrayInt m_listTypes; - - /// Is there any opened font tag? - bool m_font; - - /// Are we in a table? - bool m_inTable; - - /// A list of the image files or in-memory images created by the last operation. - wxArrayString m_imageLocations; - - /// A location for the temporary files - wxString m_tempDir; - - /// A mapping from point size to HTML font size - wxArrayInt m_fontSizeMapping; - - /// A counter for generating filenames - static int sm_fileCounter; -}; - -#endif - // _WX_RICHTEXTXML_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextimagedlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextimagedlg.h deleted file mode 100644 index daf320ae..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextimagedlg.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextimagedlg.h -// Purpose: A dialog for editing image properties. -// Author: Mingquan Yang -// Modified by: Julian Smart -// Created: Wed 02 Jun 2010 11:27:23 CST -// Copyright: (c) Mingquan Yang, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include "wx/dialog.h" - -#ifndef _RICHTEXTIMAGEDLG_H_ -#define _RICHTEXTIMAGEDLG_H_ - -/*! - * Forward declarations - */ - -class WXDLLIMPEXP_FWD_CORE wxButton; -class WXDLLIMPEXP_FWD_CORE wxComboBox; -class WXDLLIMPEXP_FWD_CORE wxCheckBox; -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; - -/*! - * Includes - */ - -#include "wx/richtext/richtextbuffer.h" -#include "wx/richtext/richtextformatdlg.h" - -/*! - * Control identifiers - */ - -#define SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_STYLE wxDEFAULT_DIALOG_STYLE|wxTAB_TRAVERSAL -#define SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_TITLE wxGetTranslation("Object Properties") -#define SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_IDNAME ID_RICHTEXTOBJECTPROPERTIESDIALOG -#define SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_SIZE wxSize(400, 300) -#define SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_POSITION wxDefaultPosition - -/*! - * wxRichTextObjectPropertiesDialog class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextObjectPropertiesDialog: public wxRichTextFormattingDialog -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextObjectPropertiesDialog); - wxDECLARE_EVENT_TABLE(); - -public: - /// Constructors - wxRichTextObjectPropertiesDialog(); - wxRichTextObjectPropertiesDialog( wxRichTextObject* obj, wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_IDNAME, const wxString& caption = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_SIZE, long style = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_STYLE ); - - /// Creation - bool Create( wxRichTextObject* obj, wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_IDNAME, const wxString& caption = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_SIZE, long style = SYMBOL_WXRICHTEXTOBJECTPROPERTIESDIALOG_STYLE ); - - /// Destructor - ~wxRichTextObjectPropertiesDialog(); - - /// Initialises member variables - void Init(); - - /// Creates the controls and sizers - void CreateControls(); - -////@begin wxRichTextObjectPropertiesDialog event handler declarations - -////@end wxRichTextObjectPropertiesDialog event handler declarations - -////@begin wxRichTextObjectPropertiesDialog member function declarations - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end wxRichTextObjectPropertiesDialog member function declarations - - /// Should we show tooltips? - static bool ShowToolTips(); - -////@begin wxRichTextObjectPropertiesDialog member variables - /// Control identifiers - enum { - ID_RICHTEXTOBJECTPROPERTIESDIALOG = 10650 - }; -////@end wxRichTextObjectPropertiesDialog member variables -}; - -#endif - // _RICHTEXTIMAGEDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextindentspage.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextindentspage.h deleted file mode 100644 index 8d6bc0e8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextindentspage.h +++ /dev/null @@ -1,169 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextindentspage.h -// Purpose: Declares the rich text formatting dialog indent page. -// Author: Julian Smart -// Modified by: -// Created: 10/3/2006 2:28:21 PM -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _RICHTEXTINDENTSPAGE_H_ -#define _RICHTEXTINDENTSPAGE_H_ - -/*! - * Includes - */ - -#include "wx/richtext/richtextdialogpage.h" - -////@begin includes -#include "wx/statline.h" -////@end includes - -/*! - * Forward declarations - */ - -////@begin forward declarations -class wxRichTextCtrl; -////@end forward declarations - -/*! - * Control identifiers - */ - -////@begin control identifiers -#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_STYLE wxRESIZE_BORDER|wxTAB_TRAVERSAL -#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_TITLE wxEmptyString -#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_IDNAME ID_RICHTEXTINDENTSSPACINGPAGE -#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_SIZE wxSize(400, 300) -#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_POSITION wxDefaultPosition -////@end control identifiers - -/*! - * wxRichTextIndentsSpacingPage class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextIndentsSpacingPage: public wxRichTextDialogPage -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextIndentsSpacingPage); - wxDECLARE_EVENT_TABLE(); - DECLARE_HELP_PROVISION() - -public: - /// Constructors - wxRichTextIndentsSpacingPage( ); - wxRichTextIndentsSpacingPage( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_SIZE, long style = SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_STYLE ); - - /// Creation - bool Create( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_SIZE, long style = SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_STYLE ); - - /// Initialise members - void Init(); - - /// Creates the controls and sizers - void CreateControls(); - - /// Transfer data from/to window - virtual bool TransferDataFromWindow() wxOVERRIDE; - virtual bool TransferDataToWindow() wxOVERRIDE; - - /// Updates the paragraph preview - void UpdatePreview(); - - /// Gets the attributes associated with the main formatting dialog - wxRichTextAttr* GetAttributes(); - -////@begin wxRichTextIndentsSpacingPage event handler declarations - - /// wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_LEFT - void OnAlignmentLeftSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_RIGHT - void OnAlignmentRightSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_JUSTIFIED - void OnAlignmentJustifiedSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_CENTRED - void OnAlignmentCentredSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_RADIOBUTTON_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_INDETERMINATE - void OnAlignmentIndeterminateSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT - void OnIndentLeftUpdated( wxCommandEvent& event ); - - /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT_FIRST - void OnIndentLeftFirstUpdated( wxCommandEvent& event ); - - /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT - void OnIndentRightUpdated( wxCommandEvent& event ); - - /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_OUTLINELEVEL - void OnRichtextOutlinelevelSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE - void OnSpacingBeforeUpdated( wxCommandEvent& event ); - - /// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER - void OnSpacingAfterUpdated( wxCommandEvent& event ); - - /// wxEVT_COMMAND_COMBOBOX_SELECTED event handler for ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_LINE - void OnSpacingLineSelected( wxCommandEvent& event ); - -////@end wxRichTextIndentsSpacingPage event handler declarations - -////@begin wxRichTextIndentsSpacingPage member function declarations - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end wxRichTextIndentsSpacingPage member function declarations - - /// Should we show tooltips? - static bool ShowToolTips(); - -////@begin wxRichTextIndentsSpacingPage member variables - wxRadioButton* m_alignmentLeft; - wxRadioButton* m_alignmentRight; - wxRadioButton* m_alignmentJustified; - wxRadioButton* m_alignmentCentred; - wxRadioButton* m_alignmentIndeterminate; - wxTextCtrl* m_indentLeft; - wxTextCtrl* m_indentLeftFirst; - wxTextCtrl* m_indentRight; - wxComboBox* m_outlineLevelCtrl; - wxTextCtrl* m_spacingBefore; - wxTextCtrl* m_spacingAfter; - wxComboBox* m_spacingLine; - wxCheckBox* m_pageBreakCtrl; - wxRichTextCtrl* m_previewCtrl; - /// Control identifiers - enum { - ID_RICHTEXTINDENTSSPACINGPAGE = 10100, - ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_LEFT = 10102, - ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_RIGHT = 10110, - ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_JUSTIFIED = 10111, - ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_CENTRED = 10112, - ID_RICHTEXTINDENTSSPACINGPAGE_ALIGNMENT_INDETERMINATE = 10101, - ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT = 10103, - ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT_FIRST = 10104, - ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT = 10113, - ID_RICHTEXTINDENTSSPACINGPAGE_OUTLINELEVEL = 10105, - ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE = 10114, - ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER = 10116, - ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_LINE = 10115, - ID_RICHTEXTINDENTSSPACINGPAGE_PAGEBREAK = 10106, - ID_RICHTEXTINDENTSSPACINGPAGE_PREVIEW_CTRL = 10109 - }; -////@end wxRichTextIndentsSpacingPage member variables - - bool m_dontUpdate; -}; - -#endif - // _RICHTEXTINDENTSPAGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextliststylepage.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextliststylepage.h deleted file mode 100644 index d45ba86b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextliststylepage.h +++ /dev/null @@ -1,278 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextliststylepage.h -// Purpose: Declares the rich text formatting dialog list style page. -// Author: Julian Smart -// Modified by: -// Created: 10/18/2006 11:36:37 AM -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _RICHTEXTLISTSTYLEPAGE_H_ -#define _RICHTEXTLISTSTYLEPAGE_H_ - -/*! - * Includes - */ - -#include "wx/richtext/richtextdialogpage.h" - -////@begin includes -#include "wx/spinctrl.h" -#include "wx/notebook.h" -#include "wx/statline.h" -////@end includes - -/*! - * Control identifiers - */ - -////@begin control identifiers -#define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_STYLE wxRESIZE_BORDER|wxTAB_TRAVERSAL -#define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_TITLE wxEmptyString -#define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_IDNAME ID_RICHTEXTLISTSTYLEPAGE -#define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_SIZE wxSize(400, 300) -#define SYMBOL_WXRICHTEXTLISTSTYLEPAGE_POSITION wxDefaultPosition -////@end control identifiers - -/*! - * wxRichTextListStylePage class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextListStylePage: public wxRichTextDialogPage -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextListStylePage); - wxDECLARE_EVENT_TABLE(); - DECLARE_HELP_PROVISION() - -public: - /// Constructors - wxRichTextListStylePage( ); - wxRichTextListStylePage( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTLISTSTYLEPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTLISTSTYLEPAGE_SIZE, long style = SYMBOL_WXRICHTEXTLISTSTYLEPAGE_STYLE ); - - /// Creation - bool Create( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTLISTSTYLEPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTLISTSTYLEPAGE_SIZE, long style = SYMBOL_WXRICHTEXTLISTSTYLEPAGE_STYLE ); - - /// Initialises member variables - void Init(); - - /// Creates the controls and sizers - void CreateControls(); - - /// Updates the bullets preview - void UpdatePreview(); - - /// Transfer data from/to window - virtual bool TransferDataFromWindow() wxOVERRIDE; - virtual bool TransferDataToWindow() wxOVERRIDE; - - /// Get attributes for selected level - wxRichTextAttr* GetAttributesForSelection(); - - /// Update for symbol-related controls - void OnSymbolUpdate( wxUpdateUIEvent& event ); - - /// Update for number-related controls - void OnNumberUpdate( wxUpdateUIEvent& event ); - - /// Update for standard bullet-related controls - void OnStandardBulletUpdate( wxUpdateUIEvent& event ); - - /// Just transfer to the window - void DoTransferDataToWindow(); - - /// Transfer from the window and preview - void TransferAndPreview(); - -////@begin wxRichTextListStylePage event handler declarations - - /// wxEVT_SPINCTRL event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL - void OnLevelUpdated( wxSpinEvent& event ); - - /// wxEVT_SCROLL_LINEUP event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL - void OnLevelUp( wxSpinEvent& event ); - - /// wxEVT_SCROLL_LINEDOWN event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL - void OnLevelDown( wxSpinEvent& event ); - - /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL - void OnLevelTextUpdated( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_LEVEL - void OnLevelUIUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_BUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_FONT - void OnChooseFontClick( wxCommandEvent& event ); - - /// wxEVT_LISTBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_STYLELISTBOX - void OnStylelistboxSelected( wxCommandEvent& event ); - - /// wxEVT_CHECKBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL - void OnPeriodctrlClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL - void OnPeriodctrlUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_CHECKBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_PARENTHESESCTRL - void OnParenthesesctrlClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_PARENTHESESCTRL - void OnParenthesesctrlUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_CHECKBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL - void OnRightParenthesisCtrlClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL - void OnRightParenthesisCtrlUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMBOBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_BULLETALIGNMENTCTRL - void OnBulletAlignmentCtrlSelected( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLSTATIC - void OnSymbolstaticUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMBOBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL - void OnSymbolctrlSelected( wxCommandEvent& event ); - - /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL - void OnSymbolctrlUpdated( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL - void OnSymbolctrlUIUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_BUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_SYMBOL - void OnChooseSymbolClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_SYMBOL - void OnChooseSymbolUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMBOBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL - void OnSymbolfontctrlSelected( wxCommandEvent& event ); - - /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL - void OnSymbolfontctrlUpdated( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL - void OnSymbolfontctrlUIUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMESTATIC - void OnNamestaticUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMBOBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL - void OnNamectrlSelected( wxCommandEvent& event ); - - /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL - void OnNamectrlUpdated( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL - void OnNamectrlUIUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_RADIOBUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_ALIGNLEFT - void OnRichtextliststylepageAlignleftSelected( wxCommandEvent& event ); - - /// wxEVT_RADIOBUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_ALIGNRIGHT - void OnRichtextliststylepageAlignrightSelected( wxCommandEvent& event ); - - /// wxEVT_RADIOBUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_JUSTIFIED - void OnRichtextliststylepageJustifiedSelected( wxCommandEvent& event ); - - /// wxEVT_RADIOBUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_CENTERED - void OnRichtextliststylepageCenteredSelected( wxCommandEvent& event ); - - /// wxEVT_RADIOBUTTON event handler for ID_RICHTEXTLISTSTYLEPAGE_ALIGNINDETERMINATE - void OnRichtextliststylepageAlignindeterminateSelected( wxCommandEvent& event ); - - /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_INDENTLEFT - void OnIndentLeftUpdated( wxCommandEvent& event ); - - /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_INDENTFIRSTLINE - void OnIndentFirstLineUpdated( wxCommandEvent& event ); - - /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_INDENTRIGHT - void OnIndentRightUpdated( wxCommandEvent& event ); - - /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_SPACINGBEFORE - void OnSpacingBeforeUpdated( wxCommandEvent& event ); - - /// wxEVT_TEXT event handler for ID_RICHTEXTLISTSTYLEPAGE_SPACINGAFTER - void OnSpacingAfterUpdated( wxCommandEvent& event ); - - /// wxEVT_COMBOBOX event handler for ID_RICHTEXTLISTSTYLEPAGE_LINESPACING - void OnLineSpacingSelected( wxCommandEvent& event ); - -////@end wxRichTextListStylePage event handler declarations - -////@begin wxRichTextListStylePage member function declarations - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end wxRichTextListStylePage member function declarations - - /// Should we show tooltips? - static bool ShowToolTips(); - -////@begin wxRichTextListStylePage member variables - wxSpinCtrl* m_levelCtrl; - wxListBox* m_styleListBox; - wxCheckBox* m_periodCtrl; - wxCheckBox* m_parenthesesCtrl; - wxCheckBox* m_rightParenthesisCtrl; - wxComboBox* m_bulletAlignmentCtrl; - wxComboBox* m_symbolCtrl; - wxComboBox* m_symbolFontCtrl; - wxComboBox* m_bulletNameCtrl; - wxRadioButton* m_alignmentLeft; - wxRadioButton* m_alignmentRight; - wxRadioButton* m_alignmentJustified; - wxRadioButton* m_alignmentCentred; - wxRadioButton* m_alignmentIndeterminate; - wxTextCtrl* m_indentLeft; - wxTextCtrl* m_indentLeftFirst; - wxTextCtrl* m_indentRight; - wxTextCtrl* m_spacingBefore; - wxTextCtrl* m_spacingAfter; - wxComboBox* m_spacingLine; - wxRichTextCtrl* m_previewCtrl; - /// Control identifiers - enum { - ID_RICHTEXTLISTSTYLEPAGE = 10616, - ID_RICHTEXTLISTSTYLEPAGE_LEVEL = 10617, - ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_FONT = 10604, - ID_RICHTEXTLISTSTYLEPAGE_NOTEBOOK = 10618, - ID_RICHTEXTLISTSTYLEPAGE_BULLETS = 10619, - ID_RICHTEXTLISTSTYLEPAGE_STYLELISTBOX = 10620, - ID_RICHTEXTLISTSTYLEPAGE_PERIODCTRL = 10627, - ID_RICHTEXTLISTSTYLEPAGE_PARENTHESESCTRL = 10626, - ID_RICHTEXTLISTSTYLEPAGE_RIGHTPARENTHESISCTRL = 10602, - ID_RICHTEXTLISTSTYLEPAGE_BULLETALIGNMENTCTRL = 10603, - ID_RICHTEXTLISTSTYLEPAGE_SYMBOLSTATIC = 10621, - ID_RICHTEXTLISTSTYLEPAGE_SYMBOLCTRL = 10622, - ID_RICHTEXTLISTSTYLEPAGE_CHOOSE_SYMBOL = 10623, - ID_RICHTEXTLISTSTYLEPAGE_SYMBOLFONTCTRL = 10625, - ID_RICHTEXTLISTSTYLEPAGE_NAMESTATIC = 10600, - ID_RICHTEXTLISTSTYLEPAGE_NAMECTRL = 10601, - ID_RICHTEXTLISTSTYLEPAGE_SPACING = 10628, - ID_RICHTEXTLISTSTYLEPAGE_ALIGNLEFT = 10629, - ID_RICHTEXTLISTSTYLEPAGE_ALIGNRIGHT = 10630, - ID_RICHTEXTLISTSTYLEPAGE_JUSTIFIED = 10631, - ID_RICHTEXTLISTSTYLEPAGE_CENTERED = 10632, - ID_RICHTEXTLISTSTYLEPAGE_ALIGNINDETERMINATE = 10633, - ID_RICHTEXTLISTSTYLEPAGE_INDENTLEFT = 10634, - ID_RICHTEXTLISTSTYLEPAGE_INDENTFIRSTLINE = 10635, - ID_RICHTEXTLISTSTYLEPAGE_INDENTRIGHT = 10636, - ID_RICHTEXTLISTSTYLEPAGE_SPACINGBEFORE = 10637, - ID_RICHTEXTLISTSTYLEPAGE_SPACINGAFTER = 10638, - ID_RICHTEXTLISTSTYLEPAGE_LINESPACING = 10639, - ID_RICHTEXTLISTSTYLEPAGE_RICHTEXTCTRL = 10640 - }; -////@end wxRichTextListStylePage member variables - - bool m_dontUpdate; - int m_currentLevel; -}; - -#endif - // _RICHTEXTLISTSTYLEPAGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextmarginspage.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextmarginspage.h deleted file mode 100644 index d69184e5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextmarginspage.h +++ /dev/null @@ -1,177 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextmarginspage.h -// Purpose: Declares the rich text formatting dialog margins page. -// Author: Julian Smart -// Modified by: -// Created: 20/10/2010 10:27:34 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _RICHTEXTMARGINSPAGE_H_ -#define _RICHTEXTMARGINSPAGE_H_ - -/*! - * Includes - */ - -#include "wx/richtext/richtextdialogpage.h" - -////@begin includes -#include "wx/statline.h" -////@end includes - -/*! - * Forward declarations - */ - -////@begin forward declarations -////@end forward declarations - -/*! - * Control identifiers - */ - -////@begin control identifiers -#define SYMBOL_WXRICHTEXTMARGINSPAGE_STYLE wxTAB_TRAVERSAL -#define SYMBOL_WXRICHTEXTMARGINSPAGE_TITLE wxEmptyString -#define SYMBOL_WXRICHTEXTMARGINSPAGE_IDNAME ID_WXRICHTEXTMARGINSPAGE -#define SYMBOL_WXRICHTEXTMARGINSPAGE_SIZE wxSize(400, 300) -#define SYMBOL_WXRICHTEXTMARGINSPAGE_POSITION wxDefaultPosition -////@end control identifiers - - -/*! - * wxRichTextMarginsPage class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextMarginsPage: public wxRichTextDialogPage -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextMarginsPage); - wxDECLARE_EVENT_TABLE(); - DECLARE_HELP_PROVISION() - -public: - /// Constructors - wxRichTextMarginsPage(); - wxRichTextMarginsPage( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTMARGINSPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTMARGINSPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTMARGINSPAGE_SIZE, long style = SYMBOL_WXRICHTEXTMARGINSPAGE_STYLE ); - - /// Creation - bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTMARGINSPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTMARGINSPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTMARGINSPAGE_SIZE, long style = SYMBOL_WXRICHTEXTMARGINSPAGE_STYLE ); - - /// Destructor - ~wxRichTextMarginsPage(); - - /// Initialises member variables - void Init(); - - /// Creates the controls and sizers - void CreateControls(); - - /// Gets the attributes from the formatting dialog - wxRichTextAttr* GetAttributes(); - - /// Data transfer - virtual bool TransferDataToWindow() wxOVERRIDE; - virtual bool TransferDataFromWindow() wxOVERRIDE; - -////@begin wxRichTextMarginsPage event handler declarations - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_LEFT_MARGIN - void OnRichtextLeftMarginUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_RIGHT_MARGIN - void OnRichtextRightMarginUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_TOP_MARGIN - void OnRichtextTopMarginUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BOTTOM_MARGIN - void OnRichtextBottomMarginUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_LEFT_PADDING - void OnRichtextLeftPaddingUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_RIGHT_PADDING - void OnRichtextRightPaddingUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_TOP_PADDING - void OnRichtextTopPaddingUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BOTTOM_PADDING - void OnRichtextBottomPaddingUpdate( wxUpdateUIEvent& event ); - -////@end wxRichTextMarginsPage event handler declarations - -////@begin wxRichTextMarginsPage member function declarations - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end wxRichTextMarginsPage member function declarations - - /// Should we show tooltips? - static bool ShowToolTips(); - -////@begin wxRichTextMarginsPage member variables - wxCheckBox* m_leftMarginCheckbox; - wxTextCtrl* m_marginLeft; - wxComboBox* m_unitsMarginLeft; - wxCheckBox* m_rightMarginCheckbox; - wxTextCtrl* m_marginRight; - wxComboBox* m_unitsMarginRight; - wxCheckBox* m_topMarginCheckbox; - wxTextCtrl* m_marginTop; - wxComboBox* m_unitsMarginTop; - wxCheckBox* m_bottomMarginCheckbox; - wxTextCtrl* m_marginBottom; - wxComboBox* m_unitsMarginBottom; - wxCheckBox* m_leftPaddingCheckbox; - wxTextCtrl* m_paddingLeft; - wxComboBox* m_unitsPaddingLeft; - wxCheckBox* m_rightPaddingCheckbox; - wxTextCtrl* m_paddingRight; - wxComboBox* m_unitsPaddingRight; - wxCheckBox* m_topPaddingCheckbox; - wxTextCtrl* m_paddingTop; - wxComboBox* m_unitsPaddingTop; - wxCheckBox* m_bottomPaddingCheckbox; - wxTextCtrl* m_paddingBottom; - wxComboBox* m_unitsPaddingBottom; - /// Control identifiers - enum { - ID_WXRICHTEXTMARGINSPAGE = 10750, - ID_RICHTEXT_LEFT_MARGIN_CHECKBOX = 10751, - ID_RICHTEXT_LEFT_MARGIN = 10752, - ID_RICHTEXT_LEFT_MARGIN_UNITS = 10753, - ID_RICHTEXT_RIGHT_MARGIN_CHECKBOX = 10754, - ID_RICHTEXT_RIGHT_MARGIN = 10755, - ID_RICHTEXT_RIGHT_MARGIN_UNITS = 10756, - ID_RICHTEXT_TOP_MARGIN_CHECKBOX = 10757, - ID_RICHTEXT_TOP_MARGIN = 10758, - ID_RICHTEXT_TOP_MARGIN_UNITS = 10759, - ID_RICHTEXT_BOTTOM_MARGIN_CHECKBOX = 10760, - ID_RICHTEXT_BOTTOM_MARGIN = 10761, - ID_RICHTEXT_BOTTOM_MARGIN_UNITS = 10762, - ID_RICHTEXT_LEFT_PADDING_CHECKBOX = 10763, - ID_RICHTEXT_LEFT_PADDING = 10764, - ID_RICHTEXT_LEFT_PADDING_UNITS = 10765, - ID_RICHTEXT_RIGHT_PADDING_CHECKBOX = 10766, - ID_RICHTEXT_RIGHT_PADDING = 10767, - ID_RICHTEXT_RIGHT_PADDING_UNITS = 10768, - ID_RICHTEXT_TOP_PADDING_CHECKBOX = 10769, - ID_RICHTEXT_TOP_PADDING = 10770, - ID_RICHTEXT_TOP_PADDING_UNITS = 10771, - ID_RICHTEXT_BOTTOM_PADDING_CHECKBOX = 10772, - ID_RICHTEXT_BOTTOM_PADDING = 10773, - ID_RICHTEXT_BOTTOM_PADDING_UNITS = 10774 - }; -////@end wxRichTextMarginsPage member variables - - bool m_ignoreUpdates; -}; - -#endif - // _RICHTEXTMARGINSPAGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextprint.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextprint.h deleted file mode 100644 index bff09ec5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextprint.h +++ /dev/null @@ -1,251 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextprint.h -// Purpose: Rich text printing classes -// Author: Julian Smart -// Created: 2006-10-23 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RICHTEXTPRINT_H_ -#define _WX_RICHTEXTPRINT_H_ - -#include "wx/defs.h" - -#if wxUSE_RICHTEXT & wxUSE_PRINTING_ARCHITECTURE - -#include "wx/richtext/richtextbuffer.h" - -#include "wx/print.h" -#include "wx/printdlg.h" - -#define wxRICHTEXT_PRINT_MAX_PAGES 99999 - -// Header/footer page identifiers -enum wxRichTextOddEvenPage { - wxRICHTEXT_PAGE_ODD, - wxRICHTEXT_PAGE_EVEN, - wxRICHTEXT_PAGE_ALL -}; - -// Header/footer text locations -enum wxRichTextPageLocation { - wxRICHTEXT_PAGE_LEFT, - wxRICHTEXT_PAGE_CENTRE, - wxRICHTEXT_PAGE_RIGHT -}; - -/*! - * Header/footer data - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextHeaderFooterData: public wxObject -{ -public: - wxRichTextHeaderFooterData() { Init(); } - wxRichTextHeaderFooterData(const wxRichTextHeaderFooterData& data): wxObject() { Copy(data); } - - /// Initialise - void Init() { m_headerMargin = 20; m_footerMargin = 20; m_showOnFirstPage = true; } - - /// Copy - void Copy(const wxRichTextHeaderFooterData& data); - - /// Assignment - void operator= (const wxRichTextHeaderFooterData& data) { Copy(data); } - - /// Set/get header text, e.g. wxRICHTEXT_PAGE_ODD, wxRICHTEXT_PAGE_LEFT - void SetHeaderText(const wxString& text, wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_ALL, wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE); - wxString GetHeaderText(wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_EVEN, wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE) const; - - /// Set/get footer text, e.g. wxRICHTEXT_PAGE_ODD, wxRICHTEXT_PAGE_LEFT - void SetFooterText(const wxString& text, wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_ALL, wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE); - wxString GetFooterText(wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_EVEN, wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE) const; - - /// Set/get text - void SetText(const wxString& text, int headerFooter, wxRichTextOddEvenPage page, wxRichTextPageLocation location); - wxString GetText(int headerFooter, wxRichTextOddEvenPage page, wxRichTextPageLocation location) const; - - /// Set/get margins between text and header or footer, in tenths of a millimeter - void SetMargins(int headerMargin, int footerMargin) { m_headerMargin = headerMargin; m_footerMargin = footerMargin; } - int GetHeaderMargin() const { return m_headerMargin; } - int GetFooterMargin() const { return m_footerMargin; } - - /// Set/get whether to show header or footer on first page - void SetShowOnFirstPage(bool showOnFirstPage) { m_showOnFirstPage = showOnFirstPage; } - bool GetShowOnFirstPage() const { return m_showOnFirstPage; } - - /// Clear all text - void Clear(); - - /// Set/get font - void SetFont(const wxFont& font) { m_font = font; } - const wxFont& GetFont() const { return m_font; } - - /// Set/get colour - void SetTextColour(const wxColour& col) { m_colour = col; } - const wxColour& GetTextColour() const { return m_colour; } - - wxDECLARE_CLASS(wxRichTextHeaderFooterData); - -private: - - // Strings for left, centre, right, top, bottom, odd, even - wxString m_text[12]; - wxFont m_font; - wxColour m_colour; - int m_headerMargin; - int m_footerMargin; - bool m_showOnFirstPage; -}; - -/*! - * wxRichTextPrintout - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextPrintout : public wxPrintout -{ -public: - wxRichTextPrintout(const wxString& title = wxGetTranslation("Printout")); - virtual ~wxRichTextPrintout(); - - /// The buffer to print - void SetRichTextBuffer(wxRichTextBuffer* buffer) { m_richTextBuffer = buffer; } - wxRichTextBuffer* GetRichTextBuffer() const { return m_richTextBuffer; } - - /// Set/get header/footer data - void SetHeaderFooterData(const wxRichTextHeaderFooterData& data) { m_headerFooterData = data; } - const wxRichTextHeaderFooterData& GetHeaderFooterData() const { return m_headerFooterData; } - - /// Sets margins in 10ths of millimetre. Defaults to 1 inch for margins. - void SetMargins(int top = 254, int bottom = 254, int left = 254, int right = 254); - - /// Calculate scaling and rectangles, setting the device context scaling - void CalculateScaling(wxDC* dc, wxRect& textRect, wxRect& headerRect, wxRect& footerRect); - - // wxPrintout virtual functions - virtual bool OnPrintPage(int page); - virtual bool HasPage(int page); - virtual void GetPageInfo(int *minPage, int *maxPage, int *selPageFrom, int *selPageTo); - virtual bool OnBeginDocument(int startPage, int endPage); - virtual void OnPreparePrinting(); - -private: - - /// Renders one page into dc - void RenderPage(wxDC *dc, int page); - - /// Substitute keywords - static bool SubstituteKeywords(wxString& str, const wxString& title, int pageNum, int pageCount); - -private: - - wxRichTextBuffer* m_richTextBuffer; - int m_numPages; - wxArrayInt m_pageBreaksStart; - wxArrayInt m_pageBreaksEnd; - wxArrayInt m_pageYOffsets; - int m_marginLeft, m_marginTop, m_marginRight, m_marginBottom; - - wxRichTextHeaderFooterData m_headerFooterData; - - wxDECLARE_NO_COPY_CLASS(wxRichTextPrintout); -}; - -/* - *! wxRichTextPrinting - * A simple interface to perform wxRichTextBuffer printing. - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextPrinting : public wxObject -{ -public: - wxRichTextPrinting(const wxString& name = wxGetTranslation("Printing"), wxWindow *parentWindow = NULL); - virtual ~wxRichTextPrinting(); - - /// Preview the file or buffer -#if wxUSE_FFILE && wxUSE_STREAMS - bool PreviewFile(const wxString& richTextFile); -#endif - bool PreviewBuffer(const wxRichTextBuffer& buffer); - - /// Print the file or buffer -#if wxUSE_FFILE && wxUSE_STREAMS - bool PrintFile(const wxString& richTextFile, bool showPrintDialog = true); -#endif - bool PrintBuffer(const wxRichTextBuffer& buffer, bool showPrintDialog = true); - - /// Shows page setup dialog - void PageSetup(); - - /// Set/get header/footer data - void SetHeaderFooterData(const wxRichTextHeaderFooterData& data) { m_headerFooterData = data; } - const wxRichTextHeaderFooterData& GetHeaderFooterData() const { return m_headerFooterData; } - - /// Set/get header text, e.g. wxRICHTEXT_PAGE_ODD, wxRICHTEXT_PAGE_LEFT - void SetHeaderText(const wxString& text, wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_ALL, wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE); - wxString GetHeaderText(wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_EVEN, wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE) const; - - /// Set/get footer text, e.g. wxRICHTEXT_PAGE_ODD, wxRICHTEXT_PAGE_LEFT - void SetFooterText(const wxString& text, wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_ALL, wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE); - wxString GetFooterText(wxRichTextOddEvenPage page = wxRICHTEXT_PAGE_EVEN, wxRichTextPageLocation location = wxRICHTEXT_PAGE_CENTRE) const; - - /// Show header/footer on first page, or not - void SetShowOnFirstPage(bool show) { m_headerFooterData.SetShowOnFirstPage(show); } - - /// Set the font - void SetHeaderFooterFont(const wxFont& font) { m_headerFooterData.SetFont(font); } - - /// Set the colour - void SetHeaderFooterTextColour(const wxColour& font) { m_headerFooterData.SetTextColour(font); } - - /// Get print and page setup data - wxPrintData *GetPrintData(); - wxPageSetupDialogData *GetPageSetupData() { return m_pageSetupData; } - - /// Set print and page setup data - void SetPrintData(const wxPrintData& printData); - void SetPageSetupData(const wxPageSetupDialogData& pageSetupData); - - /// Set the rich text buffer pointer, deleting the existing object if present - void SetRichTextBufferPreview(wxRichTextBuffer* buf); - wxRichTextBuffer* GetRichTextBufferPreview() const { return m_richTextBufferPreview; } - - void SetRichTextBufferPrinting(wxRichTextBuffer* buf); - wxRichTextBuffer* GetRichTextBufferPrinting() const { return m_richTextBufferPrinting; } - - /// Set/get the parent window - void SetParentWindow(wxWindow* parent) { m_parentWindow = parent; } - wxWindow* GetParentWindow() const { return m_parentWindow; } - - /// Set/get the title - void SetTitle(const wxString& title) { m_title = title; } - const wxString& GetTitle() const { return m_title; } - - /// Set/get the preview rect - void SetPreviewRect(const wxRect& rect) { m_previewRect = rect; } - const wxRect& GetPreviewRect() const { return m_previewRect; } - -protected: - virtual wxRichTextPrintout *CreatePrintout(); - virtual bool DoPreview(wxRichTextPrintout *printout1, wxRichTextPrintout *printout2); - virtual bool DoPrint(wxRichTextPrintout *printout, bool showPrintDialog); - -private: - wxPrintData* m_printData; - wxPageSetupDialogData* m_pageSetupData; - - wxRichTextHeaderFooterData m_headerFooterData; - wxString m_title; - wxWindow* m_parentWindow; - wxRichTextBuffer* m_richTextBufferPreview; - wxRichTextBuffer* m_richTextBufferPrinting; - wxRect m_previewRect; - - wxDECLARE_NO_COPY_CLASS(wxRichTextPrinting); -}; - -#endif // wxUSE_RICHTEXT & wxUSE_PRINTING_ARCHITECTURE - -#endif // _WX_RICHTEXTPRINT_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextsizepage.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextsizepage.h deleted file mode 100644 index e9bc1499..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextsizepage.h +++ /dev/null @@ -1,304 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextsizepage.h -// Purpose: Declares the rich text formatting dialog size page. -// Author: Julian Smart -// Modified by: -// Created: 20/10/2010 10:23:24 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _RICHTEXTSIZEPAGE_H_ -#define _RICHTEXTSIZEPAGE_H_ - -/*! - * Includes - */ - -#include "wx/richtext/richtextdialogpage.h" -#include "wx/sizer.h" - -////@begin includes -#include "wx/statline.h" -#include "wx/valgen.h" -////@end includes -#include "wx/stattext.h" - -/*! - * Forward declarations - */ - - -/*! - * Control identifiers - */ - -////@begin control identifiers -#define SYMBOL_WXRICHTEXTSIZEPAGE_STYLE wxTAB_TRAVERSAL -#define SYMBOL_WXRICHTEXTSIZEPAGE_TITLE wxEmptyString -#define SYMBOL_WXRICHTEXTSIZEPAGE_IDNAME ID_WXRICHTEXTSIZEPAGE -#define SYMBOL_WXRICHTEXTSIZEPAGE_SIZE wxSize(400, 300) -#define SYMBOL_WXRICHTEXTSIZEPAGE_POSITION wxDefaultPosition -////@end control identifiers - - -/*! - * wxRichTextSizePage class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextSizePage: public wxRichTextDialogPage -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextSizePage); - wxDECLARE_EVENT_TABLE(); - DECLARE_HELP_PROVISION() - -public: - /// Constructors - wxRichTextSizePage(); - wxRichTextSizePage( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTSIZEPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTSIZEPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTSIZEPAGE_SIZE, long style = SYMBOL_WXRICHTEXTSIZEPAGE_STYLE ); - - /// Creation - bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WXRICHTEXTSIZEPAGE_IDNAME, const wxPoint& pos = SYMBOL_WXRICHTEXTSIZEPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTSIZEPAGE_SIZE, long style = SYMBOL_WXRICHTEXTSIZEPAGE_STYLE ); - - /// Destructor - ~wxRichTextSizePage(); - - /// Initialises member variables - void Init(); - - /// Creates the controls and sizers - void CreateControls(); - - /// Gets the attributes from the formatting dialog - wxRichTextAttr* GetAttributes(); - - /// Data transfer - virtual bool TransferDataToWindow() wxOVERRIDE; - virtual bool TransferDataFromWindow() wxOVERRIDE; - - /// Show/hide position controls - static void ShowPositionControls(bool show) { sm_showPositionControls = show; } - - /// Show/hide minimum and maximum size controls - static void ShowMinMaxSizeControls(bool show) { sm_showMinMaxSizeControls = show; } - - /// Show/hide position mode controls - static void ShowPositionModeControls(bool show) { sm_showPositionModeControls = show; } - - /// Show/hide right/bottom position controls - static void ShowRightBottomPositionControls(bool show) { sm_showRightBottomPositionControls = show; } - - /// Show/hide floating and alignment controls - static void ShowFloatingAndAlignmentControls(bool show) { sm_showFloatingAndAlignmentControls = show; } - - /// Show/hide floating controls - static void ShowFloatingControls(bool show) { sm_showFloatingControls = show; } - - /// Show/hide alignment controls - static void ShowAlignmentControls(bool show) { sm_showAlignmentControls = show; } - - /// Enable the position and size units - static void EnablePositionAndSizeUnits(bool enable) { sm_enablePositionAndSizeUnits = enable; } - - /// Enable the checkboxes for position and size - static void EnablePositionAndSizeCheckboxes(bool enable) { sm_enablePositionAndSizeCheckboxes = enable; } - - /// Enable the move object controls - static void ShowMoveObjectControls(bool enable) { sm_showMoveObjectControls = enable; } - -////@begin wxRichTextSizePage event handler declarations - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_VERTICAL_ALIGNMENT_COMBOBOX - void OnRichtextVerticalAlignmentComboboxUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_WIDTH - void OnRichtextWidthUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_UNITS_W - void OnRichtextWidthUnitsUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_HEIGHT - void OnRichtextHeightUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_UNITS_H - void OnRichtextHeightUnitsUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_MIN_WIDTH - void OnRichtextMinWidthUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_MIN_HEIGHT - void OnRichtextMinHeightUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_MAX_WIDTH - void OnRichtextMaxWidthUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_MAX_HEIGHT - void OnRichtextMaxHeightUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_LEFT - void OnRichtextLeftUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_LEFT_UNITS - void OnRichtextLeftUnitsUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_TOP - void OnRichtextTopUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_TOP_UNITS - void OnRichtextTopUnitsUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_RIGHT - void OnRichtextRightUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_RIGHT_UNITS - void OnRichtextRightUnitsUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BOTTOM - void OnRichtextBottomUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXT_BOTTOM_UNITS - void OnRichtextBottomUnitsUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXT_PARA_UP - void OnRichtextParaUpClick( wxCommandEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXT_PARA_DOWN - void OnRichtextParaDownClick( wxCommandEvent& event ); - -////@end wxRichTextSizePage event handler declarations - -////@begin wxRichTextSizePage member function declarations - - int GetPositionMode() const { return m_positionMode ; } - void SetPositionMode(int value) { m_positionMode = value ; } - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end wxRichTextSizePage member function declarations - - /// Should we show tooltips? - static bool ShowToolTips(); - -////@begin wxRichTextSizePage member variables - wxBoxSizer* m_parentSizer; - wxBoxSizer* m_floatingAlignmentSizer; - wxBoxSizer* m_floatingSizer; - wxChoice* m_float; - wxBoxSizer* m_alignmentSizer; - wxCheckBox* m_verticalAlignmentCheckbox; - wxChoice* m_verticalAlignmentComboBox; - wxFlexGridSizer* m_sizeSizer; - wxBoxSizer* m_widthSizer; - wxCheckBox* m_widthCheckbox; - wxStaticText* m_widthLabel; - wxTextCtrl* m_width; - wxComboBox* m_unitsW; - wxBoxSizer* m_heightSizer; - wxCheckBox* m_heightCheckbox; - wxStaticText* m_heightLabel; - wxTextCtrl* m_height; - wxComboBox* m_unitsH; - wxCheckBox* m_minWidthCheckbox; - wxBoxSizer* m_minWidthSizer; - wxTextCtrl* m_minWidth; - wxComboBox* m_unitsMinW; - wxCheckBox* m_minHeightCheckbox; - wxBoxSizer* m_minHeightSizer; - wxTextCtrl* m_minHeight; - wxComboBox* m_unitsMinH; - wxCheckBox* m_maxWidthCheckbox; - wxBoxSizer* m_maxWidthSizer; - wxTextCtrl* m_maxWidth; - wxComboBox* m_unitsMaxW; - wxCheckBox* m_maxHeightCheckbox; - wxBoxSizer* m_maxHeightSizer; - wxTextCtrl* m_maxHeight; - wxComboBox* m_unitsMaxH; - wxBoxSizer* m_positionControls; - wxBoxSizer* m_moveObjectParentSizer; - wxBoxSizer* m_positionModeSizer; - wxChoice* m_positionModeCtrl; - wxFlexGridSizer* m_positionGridSizer; - wxBoxSizer* m_leftSizer; - wxCheckBox* m_positionLeftCheckbox; - wxStaticText* m_leftLabel; - wxTextCtrl* m_left; - wxComboBox* m_unitsLeft; - wxBoxSizer* m_topSizer; - wxCheckBox* m_positionTopCheckbox; - wxStaticText* m_topLabel; - wxTextCtrl* m_top; - wxComboBox* m_unitsTop; - wxBoxSizer* m_rightSizer; - wxCheckBox* m_positionRightCheckbox; - wxStaticText* m_rightLabel; - wxBoxSizer* m_rightPositionSizer; - wxTextCtrl* m_right; - wxComboBox* m_unitsRight; - wxBoxSizer* m_bottomSizer; - wxCheckBox* m_positionBottomCheckbox; - wxStaticText* m_bottomLabel; - wxBoxSizer* m_bottomPositionSizer; - wxTextCtrl* m_bottom; - wxComboBox* m_unitsBottom; - wxBoxSizer* m_moveObjectSizer; - int m_positionMode; - /// Control identifiers - enum { - ID_WXRICHTEXTSIZEPAGE = 10700, - ID_RICHTEXT_FLOATING_MODE = 10701, - ID_RICHTEXT_VERTICAL_ALIGNMENT_CHECKBOX = 10708, - ID_RICHTEXT_VERTICAL_ALIGNMENT_COMBOBOX = 10709, - ID_RICHTEXT_WIDTH_CHECKBOX = 10702, - ID_RICHTEXT_WIDTH = 10703, - ID_RICHTEXT_UNITS_W = 10704, - ID_RICHTEXT_HEIGHT_CHECKBOX = 10705, - ID_RICHTEXT_HEIGHT = 10706, - ID_RICHTEXT_UNITS_H = 10707, - ID_RICHTEXT_MIN_WIDTH_CHECKBOX = 10715, - ID_RICHTEXT_MIN_WIDTH = 10716, - ID_RICHTEXT_UNITS_MIN_W = 10717, - ID_RICHTEXT_MIN_HEIGHT_CHECKBOX = 10718, - ID_RICHTEXT_MIN_HEIGHT = 10719, - ID_RICHTEXT_UNITS_MIN_H = 10720, - ID_RICHTEXT_MAX_WIDTH_CHECKBOX = 10721, - ID_RICHTEXT_MAX_WIDTH = 10722, - ID_RICHTEXT_UNITS_MAX_W = 10723, - ID_RICHTEXT_MAX_HEIGHT_CHECKBOX = 10724, - ID_RICHTEXT_MAX_HEIGHT = 10725, - ID_RICHTEXT_UNITS_MAX_H = 10726, - ID_RICHTEXT_POSITION_MODE = 10735, - ID_RICHTEXT_LEFT_CHECKBOX = 10710, - ID_RICHTEXT_LEFT = 10711, - ID_RICHTEXT_LEFT_UNITS = 10712, - ID_RICHTEXT_TOP_CHECKBOX = 10710, - ID_RICHTEXT_TOP = 10728, - ID_RICHTEXT_TOP_UNITS = 10729, - ID_RICHTEXT_RIGHT_CHECKBOX = 10727, - ID_RICHTEXT_RIGHT = 10730, - ID_RICHTEXT_RIGHT_UNITS = 10731, - ID_RICHTEXT_BOTTOM_CHECKBOX = 10732, - ID_RICHTEXT_BOTTOM = 10733, - ID_RICHTEXT_BOTTOM_UNITS = 10734, - ID_RICHTEXT_PARA_UP = 10713, - ID_RICHTEXT_PARA_DOWN = 10714 - }; -////@end wxRichTextSizePage member variables - - static bool sm_showFloatingControls; - static bool sm_showPositionControls; - static bool sm_showMinMaxSizeControls; - static bool sm_showPositionModeControls; - static bool sm_showRightBottomPositionControls; - static bool sm_showAlignmentControls; - static bool sm_showFloatingAndAlignmentControls; - static bool sm_enablePositionAndSizeUnits; - static bool sm_enablePositionAndSizeCheckboxes; - static bool sm_showMoveObjectControls; -}; - -#endif - // _RICHTEXTSIZEPAGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextstyledlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextstyledlg.h deleted file mode 100644 index 316246e2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextstyledlg.h +++ /dev/null @@ -1,255 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextstyledlg.h -// Purpose: Declares the rich text style editor dialog. -// Author: Julian Smart -// Modified by: -// Created: 10/5/2006 12:05:31 PM -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _RICHTEXTSTYLEDLG_H_ -#define _RICHTEXTSTYLEDLG_H_ - -/*! - * Includes - */ - -#include "wx/richtext/richtextuicustomization.h" - -////@begin includes -////@end includes - -#include "wx/richtext/richtextbuffer.h" -#include "wx/richtext/richtextstyles.h" -#include "wx/richtext/richtextctrl.h" - -/*! - * Forward declarations - */ - -////@begin forward declarations -class wxBoxSizer; -class wxRichTextStyleListCtrl; -class wxRichTextCtrl; -class wxStdDialogButtonSizer; -////@end forward declarations - -class WXDLLIMPEXP_FWD_CORE wxButton; -class WXDLLIMPEXP_FWD_CORE wxCheckBox; - -/*! - * Control identifiers - */ - -#define SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_STYLE wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX -#define SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_TITLE wxGetTranslation("Style Organiser") -#define SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_IDNAME ID_RICHTEXTSTYLEORGANISERDIALOG -#define SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_SIZE wxSize(400, 300) -#define SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_POSITION wxDefaultPosition - -/*! - * Flags for specifying permitted operations - */ - -#define wxRICHTEXT_ORGANISER_DELETE_STYLES 0x0001 -#define wxRICHTEXT_ORGANISER_CREATE_STYLES 0x0002 -#define wxRICHTEXT_ORGANISER_APPLY_STYLES 0x0004 -#define wxRICHTEXT_ORGANISER_EDIT_STYLES 0x0008 -#define wxRICHTEXT_ORGANISER_RENAME_STYLES 0x0010 -#define wxRICHTEXT_ORGANISER_OK_CANCEL 0x0020 -#define wxRICHTEXT_ORGANISER_RENUMBER 0x0040 - -// The permitted style types to show -#define wxRICHTEXT_ORGANISER_SHOW_CHARACTER 0x0100 -#define wxRICHTEXT_ORGANISER_SHOW_PARAGRAPH 0x0200 -#define wxRICHTEXT_ORGANISER_SHOW_LIST 0x0400 -#define wxRICHTEXT_ORGANISER_SHOW_BOX 0x0800 -#define wxRICHTEXT_ORGANISER_SHOW_ALL 0x1000 - -// Common combinations -#define wxRICHTEXT_ORGANISER_ORGANISE (wxRICHTEXT_ORGANISER_SHOW_ALL|wxRICHTEXT_ORGANISER_DELETE_STYLES|wxRICHTEXT_ORGANISER_CREATE_STYLES|wxRICHTEXT_ORGANISER_APPLY_STYLES|wxRICHTEXT_ORGANISER_EDIT_STYLES|wxRICHTEXT_ORGANISER_RENAME_STYLES) -#define wxRICHTEXT_ORGANISER_BROWSE (wxRICHTEXT_ORGANISER_SHOW_ALL|wxRICHTEXT_ORGANISER_OK_CANCEL) -#define wxRICHTEXT_ORGANISER_BROWSE_NUMBERING (wxRICHTEXT_ORGANISER_SHOW_LIST|wxRICHTEXT_ORGANISER_OK_CANCEL|wxRICHTEXT_ORGANISER_RENUMBER) - -/*! - * wxRichTextStyleOrganiserDialog class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextStyleOrganiserDialog: public wxDialog -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextStyleOrganiserDialog); - wxDECLARE_EVENT_TABLE(); - DECLARE_HELP_PROVISION() - -public: - /// Constructors - wxRichTextStyleOrganiserDialog( ); - wxRichTextStyleOrganiserDialog( int flags, wxRichTextStyleSheet* sheet, wxRichTextCtrl* ctrl, wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& caption = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_SIZE, long style = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_STYLE ); - - /// Creation - bool Create( int flags, wxRichTextStyleSheet* sheet, wxRichTextCtrl* ctrl, wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& caption = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_SIZE, long style = SYMBOL_WXRICHTEXTSTYLEORGANISERDIALOG_STYLE ); - - /// Creates the controls and sizers - void CreateControls(); - - /// Initialise member variables - void Init(); - - /// Transfer data from/to window - virtual bool TransferDataFromWindow() wxOVERRIDE; - virtual bool TransferDataToWindow() wxOVERRIDE; - - /// Set/get style sheet - void SetStyleSheet(wxRichTextStyleSheet* sheet) { m_richTextStyleSheet = sheet; } - wxRichTextStyleSheet* GetStyleSheet() const { return m_richTextStyleSheet; } - - /// Set/get control - void SetRichTextCtrl(wxRichTextCtrl* ctrl) { m_richTextCtrl = ctrl; } - wxRichTextCtrl* GetRichTextCtrl() const { return m_richTextCtrl; } - - /// Set/get flags - void SetFlags(int flags) { m_flags = flags; } - int GetFlags() const { return m_flags; } - - /// Show preview for given or selected preview - void ShowPreview(int sel = -1); - - /// Clears the preview - void ClearPreview(); - - /// List selection - void OnListSelection(wxCommandEvent& event); - - /// Get/set restart numbering boolean - bool GetRestartNumbering() const { return m_restartNumbering; } - void SetRestartNumbering(bool restartNumbering) { m_restartNumbering = restartNumbering; } - - /// Get selected style name or definition - wxString GetSelectedStyle() const; - wxRichTextStyleDefinition* GetSelectedStyleDefinition() const; - - /// Apply the style - bool ApplyStyle(wxRichTextCtrl* ctrl = NULL); - - /// Should we show tooltips? - static bool ShowToolTips() { return sm_showToolTips; } - - /// Determines whether tooltips will be shown - static void SetShowToolTips(bool show) { sm_showToolTips = show; } - -////@begin wxRichTextStyleOrganiserDialog event handler declarations - - /// wxEVT_BUTTON event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_CHAR - void OnNewCharClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_CHAR - void OnNewCharUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_BUTTON event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_PARA - void OnNewParaClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_PARA - void OnNewParaUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_BUTTON event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_LIST - void OnNewListClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_LIST - void OnNewListUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_BUTTON event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_BOX - void OnNewBoxClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_BOX - void OnNewBoxUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_BUTTON event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_APPLY - void OnApplyClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_APPLY - void OnApplyUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_BUTTON event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_RENAME - void OnRenameClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_RENAME - void OnRenameUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_BUTTON event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_EDIT - void OnEditClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_EDIT - void OnEditUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_BUTTON event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_DELETE - void OnDeleteClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEORGANISERDIALOG_DELETE - void OnDeleteUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_BUTTON event handler for wxID_HELP - void OnHelpClick( wxCommandEvent& event ); - -////@end wxRichTextStyleOrganiserDialog event handler declarations - -////@begin wxRichTextStyleOrganiserDialog member function declarations - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end wxRichTextStyleOrganiserDialog member function declarations - -////@begin wxRichTextStyleOrganiserDialog member variables - wxBoxSizer* m_innerSizer; - wxBoxSizer* m_buttonSizerParent; - wxRichTextStyleListCtrl* m_stylesListBox; - wxRichTextCtrl* m_previewCtrl; - wxBoxSizer* m_buttonSizer; - wxButton* m_newCharacter; - wxButton* m_newParagraph; - wxButton* m_newList; - wxButton* m_newBox; - wxButton* m_applyStyle; - wxButton* m_renameStyle; - wxButton* m_editStyle; - wxButton* m_deleteStyle; - wxButton* m_closeButton; - wxBoxSizer* m_bottomButtonSizer; - wxCheckBox* m_restartNumberingCtrl; - wxStdDialogButtonSizer* m_stdButtonSizer; - wxButton* m_okButton; - wxButton* m_cancelButton; - /// Control identifiers - enum { - ID_RICHTEXTSTYLEORGANISERDIALOG = 10500, - ID_RICHTEXTSTYLEORGANISERDIALOG_STYLES = 10501, - ID_RICHTEXTSTYLEORGANISERDIALOG_CURRENT_STYLE = 10510, - ID_RICHTEXTSTYLEORGANISERDIALOG_PREVIEW = 10509, - ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_CHAR = 10504, - ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_PARA = 10505, - ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_LIST = 10508, - ID_RICHTEXTSTYLEORGANISERDIALOG_NEW_BOX = 10512, - ID_RICHTEXTSTYLEORGANISERDIALOG_APPLY = 10503, - ID_RICHTEXTSTYLEORGANISERDIALOG_RENAME = 10502, - ID_RICHTEXTSTYLEORGANISERDIALOG_EDIT = 10506, - ID_RICHTEXTSTYLEORGANISERDIALOG_DELETE = 10507, - ID_RICHTEXTSTYLEORGANISERDIALOG_RESTART_NUMBERING = 10511 - }; -////@end wxRichTextStyleOrganiserDialog member variables - -private: - - wxRichTextCtrl* m_richTextCtrl; - wxRichTextStyleSheet* m_richTextStyleSheet; - - bool m_dontUpdate; - int m_flags; - static bool sm_showToolTips; - bool m_restartNumbering; -}; - -#endif - // _RICHTEXTSTYLEDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextstylepage.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextstylepage.h deleted file mode 100644 index 7d031efc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextstylepage.h +++ /dev/null @@ -1,99 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextstylepage.h -// Purpose: Declares the rich text formatting dialog style page. -// Author: Julian Smart -// Modified by: -// Created: 10/5/2006 11:34:55 AM -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _RICHTEXTSTYLEPAGE_H_ -#define _RICHTEXTSTYLEPAGE_H_ - -#include "wx/richtext/richtextdialogpage.h" - -/*! - * Control identifiers - */ - -////@begin control identifiers -#define SYMBOL_WXRICHTEXTSTYLEPAGE_STYLE wxRESIZE_BORDER|wxTAB_TRAVERSAL -#define SYMBOL_WXRICHTEXTSTYLEPAGE_TITLE wxEmptyString -#define SYMBOL_WXRICHTEXTSTYLEPAGE_IDNAME ID_RICHTEXTSTYLEPAGE -#define SYMBOL_WXRICHTEXTSTYLEPAGE_SIZE wxSize(400, 300) -#define SYMBOL_WXRICHTEXTSTYLEPAGE_POSITION wxDefaultPosition -////@end control identifiers - -/*! - * wxRichTextStylePage class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextStylePage: public wxRichTextDialogPage -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextStylePage); - wxDECLARE_EVENT_TABLE(); - DECLARE_HELP_PROVISION() - -public: - /// Constructors - wxRichTextStylePage( ); - wxRichTextStylePage( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTSTYLEPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTSTYLEPAGE_SIZE, long style = SYMBOL_WXRICHTEXTSTYLEPAGE_STYLE ); - - /// Creation - bool Create( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTSTYLEPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTSTYLEPAGE_SIZE, long style = SYMBOL_WXRICHTEXTSTYLEPAGE_STYLE ); - - /// Initialise members - void Init(); - - /// Creates the controls and sizers - void CreateControls(); - - /// Transfer data from/to window - virtual bool TransferDataFromWindow() wxOVERRIDE; - virtual bool TransferDataToWindow() wxOVERRIDE; - - /// Gets the attributes associated with the main formatting dialog - wxRichTextAttr* GetAttributes(); - - /// Determines whether the style name can be edited - bool GetNameIsEditable() const { return m_nameIsEditable; } - void SetNameIsEditable(bool editable) { m_nameIsEditable = editable; } - -////@begin wxRichTextStylePage event handler declarations - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTSTYLEPAGE_NEXT_STYLE - void OnNextStyleUpdate( wxUpdateUIEvent& event ); - -////@end wxRichTextStylePage event handler declarations - -////@begin wxRichTextStylePage member function declarations - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end wxRichTextStylePage member function declarations - - /// Should we show tooltips? - static bool ShowToolTips(); - -////@begin wxRichTextStylePage member variables - wxTextCtrl* m_styleName; - wxComboBox* m_basedOn; - wxComboBox* m_nextStyle; - /// Control identifiers - enum { - ID_RICHTEXTSTYLEPAGE = 10403, - ID_RICHTEXTSTYLEPAGE_STYLE_NAME = 10404, - ID_RICHTEXTSTYLEPAGE_BASED_ON = 10405, - ID_RICHTEXTSTYLEPAGE_NEXT_STYLE = 10406 - }; -////@end wxRichTextStylePage member variables - - bool m_nameIsEditable; -}; - -#endif - // _RICHTEXTSTYLEPAGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextstyles.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextstyles.h deleted file mode 100644 index c8daef3c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextstyles.h +++ /dev/null @@ -1,760 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextstyles.h -// Purpose: Style management for wxRichTextCtrl -// Author: Julian Smart -// Modified by: -// Created: 2005-09-30 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RICHTEXTSTYLES_H_ -#define _WX_RICHTEXTSTYLES_H_ - -/*! - * Includes - */ - -#include "wx/defs.h" - -#if wxUSE_RICHTEXT - -#include "wx/richtext/richtextbuffer.h" - -#if wxUSE_HTML -#include "wx/htmllbox.h" -#endif - -#if wxUSE_COMBOCTRL -#include "wx/combo.h" -#endif - -#include "wx/choice.h" - -/*! - * Forward declarations - */ - -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextCtrl; -class WXDLLIMPEXP_FWD_RICHTEXT wxRichTextBuffer; - -/*! - * wxRichTextStyleDefinition class declaration - * A base class for paragraph and character styles. - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextStyleDefinition: public wxObject -{ - wxDECLARE_CLASS(wxRichTextStyleDefinition); -public: - - /// Copy constructors - wxRichTextStyleDefinition(const wxRichTextStyleDefinition& def) - : wxObject() - { - Init(); - Copy(def); - } - - /// Default constructor - wxRichTextStyleDefinition(const wxString& name = wxEmptyString) { Init(); m_name = name; } - - /// Destructor - virtual ~wxRichTextStyleDefinition() {} - - /// Initialises members - void Init() {} - - /// Copies from def - void Copy(const wxRichTextStyleDefinition& def); - - /// Equality test - bool Eq(const wxRichTextStyleDefinition& def) const; - - /// Assignment operator - void operator =(const wxRichTextStyleDefinition& def) { Copy(def); } - - /// Equality operator - bool operator ==(const wxRichTextStyleDefinition& def) const { return Eq(def); } - - /// Override to clone the object - virtual wxRichTextStyleDefinition* Clone() const = 0; - - /// Sets and gets the name of the style - void SetName(const wxString& name) { m_name = name; } - const wxString& GetName() const { return m_name; } - - /// Sets and gets the style description - void SetDescription(const wxString& descr) { m_description = descr; } - const wxString& GetDescription() const { return m_description; } - - /// Sets and gets the name of the style that this style is based on - void SetBaseStyle(const wxString& name) { m_baseStyle = name; } - const wxString& GetBaseStyle() const { return m_baseStyle; } - - /// Sets and gets the style - void SetStyle(const wxRichTextAttr& style) { m_style = style; } - const wxRichTextAttr& GetStyle() const { return m_style; } - wxRichTextAttr& GetStyle() { return m_style; } - - /// Gets the style combined with the base style - virtual wxRichTextAttr GetStyleMergedWithBase(const wxRichTextStyleSheet* sheet) const; - - /** - Returns the definition's properties. - */ - wxRichTextProperties& GetProperties() { return m_properties; } - - /** - Returns the definition's properties. - */ - const wxRichTextProperties& GetProperties() const { return m_properties; } - - /** - Sets the definition's properties. - */ - void SetProperties(const wxRichTextProperties& props) { m_properties = props; } - -protected: - wxString m_name; - wxString m_baseStyle; - wxString m_description; - wxRichTextAttr m_style; - wxRichTextProperties m_properties; -}; - -/*! - * wxRichTextCharacterStyleDefinition class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextCharacterStyleDefinition: public wxRichTextStyleDefinition -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextCharacterStyleDefinition); -public: - - /// Copy constructor - wxRichTextCharacterStyleDefinition(const wxRichTextCharacterStyleDefinition& def): wxRichTextStyleDefinition(def) {} - - /// Default constructor - wxRichTextCharacterStyleDefinition(const wxString& name = wxEmptyString): - wxRichTextStyleDefinition(name) {} - - /// Destructor - virtual ~wxRichTextCharacterStyleDefinition() {} - - /// Clones the object - virtual wxRichTextStyleDefinition* Clone() const wxOVERRIDE { return new wxRichTextCharacterStyleDefinition(*this); } - -protected: -}; - -/*! - * wxRichTextParagraphStyleDefinition class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextParagraphStyleDefinition: public wxRichTextStyleDefinition -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextParagraphStyleDefinition); -public: - - /// Copy constructor - wxRichTextParagraphStyleDefinition(const wxRichTextParagraphStyleDefinition& def): wxRichTextStyleDefinition(def) { m_nextStyle = def.m_nextStyle; } - - /// Default constructor - wxRichTextParagraphStyleDefinition(const wxString& name = wxEmptyString): - wxRichTextStyleDefinition(name) {} - - // Destructor - virtual ~wxRichTextParagraphStyleDefinition() {} - - /// Sets and gets the next style - void SetNextStyle(const wxString& name) { m_nextStyle = name; } - const wxString& GetNextStyle() const { return m_nextStyle; } - - /// Copies from def - void Copy(const wxRichTextParagraphStyleDefinition& def); - - /// Assignment operator - void operator =(const wxRichTextParagraphStyleDefinition& def) { Copy(def); } - - /// Equality operator - bool operator ==(const wxRichTextParagraphStyleDefinition& def) const; - - /// Clones the object - virtual wxRichTextStyleDefinition* Clone() const wxOVERRIDE { return new wxRichTextParagraphStyleDefinition(*this); } - -protected: - - /// The next style to use when adding a paragraph after this style. - wxString m_nextStyle; -}; - -/*! - * wxRichTextListStyleDefinition class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextListStyleDefinition: public wxRichTextParagraphStyleDefinition -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextListStyleDefinition); -public: - - /// Copy constructor - wxRichTextListStyleDefinition(const wxRichTextListStyleDefinition& def): wxRichTextParagraphStyleDefinition(def) { Init(); Copy(def); } - - /// Default constructor - wxRichTextListStyleDefinition(const wxString& name = wxEmptyString): - wxRichTextParagraphStyleDefinition(name) { Init(); } - - /// Destructor - virtual ~wxRichTextListStyleDefinition() {} - - /// Copies from def - void Copy(const wxRichTextListStyleDefinition& def); - - /// Assignment operator - void operator =(const wxRichTextListStyleDefinition& def) { Copy(def); } - - /// Equality operator - bool operator ==(const wxRichTextListStyleDefinition& def) const; - - /// Clones the object - virtual wxRichTextStyleDefinition* Clone() const wxOVERRIDE { return new wxRichTextListStyleDefinition(*this); } - - /// Sets/gets the attributes for the given level - void SetLevelAttributes(int i, const wxRichTextAttr& attr); - wxRichTextAttr* GetLevelAttributes(int i); - const wxRichTextAttr* GetLevelAttributes(int i) const; - - /// Convenience function for setting the major attributes for a list level specification - void SetAttributes(int i, int leftIndent, int leftSubIndent, int bulletStyle, const wxString& bulletSymbol = wxEmptyString); - - /// Finds the level corresponding to the given indentation - int FindLevelForIndent(int indent) const; - - /// Combine the base and list style with a paragraph style, using the given indent (from which - /// an appropriate level is found) - wxRichTextAttr CombineWithParagraphStyle(int indent, const wxRichTextAttr& paraStyle, wxRichTextStyleSheet* styleSheet = NULL); - - /// Combine the base and list style, using the given indent (from which - /// an appropriate level is found) - wxRichTextAttr GetCombinedStyle(int indent, wxRichTextStyleSheet* styleSheet = NULL); - - /// Combine the base and list style, using the given level from which - /// an appropriate level is found) - wxRichTextAttr GetCombinedStyleForLevel(int level, wxRichTextStyleSheet* styleSheet = NULL); - - /// Gets the number of available levels - int GetLevelCount() const { return 10; } - - /// Is this a numbered list? - bool IsNumbered(int i) const; - -protected: - - /// The styles for each level (up to 10) - wxRichTextAttr m_levelStyles[10]; -}; - -/*! - * wxRichTextBoxStyleDefinition class declaration, for box attributes in objects such as wxRichTextBox. - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextBoxStyleDefinition: public wxRichTextStyleDefinition -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextBoxStyleDefinition); -public: - - /// Copy constructor - wxRichTextBoxStyleDefinition(const wxRichTextBoxStyleDefinition& def): wxRichTextStyleDefinition(def) { Copy(def); } - - /// Default constructor - wxRichTextBoxStyleDefinition(const wxString& name = wxEmptyString): - wxRichTextStyleDefinition(name) {} - - // Destructor - virtual ~wxRichTextBoxStyleDefinition() {} - - /// Copies from def - void Copy(const wxRichTextBoxStyleDefinition& def); - - /// Assignment operator - void operator =(const wxRichTextBoxStyleDefinition& def) { Copy(def); } - - /// Equality operator - bool operator ==(const wxRichTextBoxStyleDefinition& def) const; - - /// Clones the object - virtual wxRichTextStyleDefinition* Clone() const wxOVERRIDE { return new wxRichTextBoxStyleDefinition(*this); } - -protected: -}; - -/*! - * The style sheet - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextStyleSheet: public wxObject -{ - wxDECLARE_CLASS(wxRichTextStyleSheet); - -public: - /// Constructors - wxRichTextStyleSheet(const wxRichTextStyleSheet& sheet) - : wxObject() - { - Init(); - Copy(sheet); - } - wxRichTextStyleSheet() { Init(); } - virtual ~wxRichTextStyleSheet(); - - /// Initialisation - void Init(); - - /// Copy - void Copy(const wxRichTextStyleSheet& sheet); - - /// Assignment - void operator=(const wxRichTextStyleSheet& sheet) { Copy(sheet); } - - /// Equality - bool operator==(const wxRichTextStyleSheet& sheet) const; - - /// Add a definition to the character style list - bool AddCharacterStyle(wxRichTextCharacterStyleDefinition* def); - - /// Add a definition to the paragraph style list - bool AddParagraphStyle(wxRichTextParagraphStyleDefinition* def); - - /// Add a definition to the list style list - bool AddListStyle(wxRichTextListStyleDefinition* def); - - /// Add a definition to the box style list - bool AddBoxStyle(wxRichTextBoxStyleDefinition* def); - - /// Add a definition to the appropriate style list - bool AddStyle(wxRichTextStyleDefinition* def); - - /// Remove a character style - bool RemoveCharacterStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false) { return RemoveStyle(m_characterStyleDefinitions, def, deleteStyle); } - - /// Remove a paragraph style - bool RemoveParagraphStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false) { return RemoveStyle(m_paragraphStyleDefinitions, def, deleteStyle); } - - /// Remove a list style - bool RemoveListStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false) { return RemoveStyle(m_listStyleDefinitions, def, deleteStyle); } - - /// Remove a box style - bool RemoveBoxStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false) { return RemoveStyle(m_boxStyleDefinitions, def, deleteStyle); } - - /// Remove a style - bool RemoveStyle(wxRichTextStyleDefinition* def, bool deleteStyle = false); - - /// Find a character definition by name - wxRichTextCharacterStyleDefinition* FindCharacterStyle(const wxString& name, bool recurse = true) const { return (wxRichTextCharacterStyleDefinition*) FindStyle(m_characterStyleDefinitions, name, recurse); } - - /// Find a paragraph definition by name - wxRichTextParagraphStyleDefinition* FindParagraphStyle(const wxString& name, bool recurse = true) const { return (wxRichTextParagraphStyleDefinition*) FindStyle(m_paragraphStyleDefinitions, name, recurse); } - - /// Find a list definition by name - wxRichTextListStyleDefinition* FindListStyle(const wxString& name, bool recurse = true) const { return (wxRichTextListStyleDefinition*) FindStyle(m_listStyleDefinitions, name, recurse); } - - /// Find a box definition by name - wxRichTextBoxStyleDefinition* FindBoxStyle(const wxString& name, bool recurse = true) const { return (wxRichTextBoxStyleDefinition*) FindStyle(m_boxStyleDefinitions, name, recurse); } - - /// Find any definition by name - wxRichTextStyleDefinition* FindStyle(const wxString& name, bool recurse = true) const; - - /// Return the number of character styles - size_t GetCharacterStyleCount() const { return m_characterStyleDefinitions.GetCount(); } - - /// Return the number of paragraph styles - size_t GetParagraphStyleCount() const { return m_paragraphStyleDefinitions.GetCount(); } - - /// Return the number of list styles - size_t GetListStyleCount() const { return m_listStyleDefinitions.GetCount(); } - - /// Return the number of box styles - size_t GetBoxStyleCount() const { return m_boxStyleDefinitions.GetCount(); } - - /// Return the nth character style - wxRichTextCharacterStyleDefinition* GetCharacterStyle(size_t n) const { return (wxRichTextCharacterStyleDefinition*) m_characterStyleDefinitions.Item(n)->GetData(); } - - /// Return the nth paragraph style - wxRichTextParagraphStyleDefinition* GetParagraphStyle(size_t n) const { return (wxRichTextParagraphStyleDefinition*) m_paragraphStyleDefinitions.Item(n)->GetData(); } - - /// Return the nth list style - wxRichTextListStyleDefinition* GetListStyle(size_t n) const { return (wxRichTextListStyleDefinition*) m_listStyleDefinitions.Item(n)->GetData(); } - - /// Return the nth box style - wxRichTextBoxStyleDefinition* GetBoxStyle(size_t n) const { return (wxRichTextBoxStyleDefinition*) m_boxStyleDefinitions.Item(n)->GetData(); } - - /// Delete all styles - void DeleteStyles(); - - /// Insert into list of style sheets - bool InsertSheet(wxRichTextStyleSheet* before); - - /// Append to list of style sheets - bool AppendSheet(wxRichTextStyleSheet* after); - - /// Unlink from the list of style sheets - void Unlink(); - - /// Get/set next sheet - wxRichTextStyleSheet* GetNextSheet() const { return m_nextSheet; } - void SetNextSheet(wxRichTextStyleSheet* sheet) { m_nextSheet = sheet; } - - /// Get/set previous sheet - wxRichTextStyleSheet* GetPreviousSheet() const { return m_previousSheet; } - void SetPreviousSheet(wxRichTextStyleSheet* sheet) { m_previousSheet = sheet; } - - /// Sets and gets the name of the style sheet - void SetName(const wxString& name) { m_name = name; } - const wxString& GetName() const { return m_name; } - - /// Sets and gets the style description - void SetDescription(const wxString& descr) { m_description = descr; } - const wxString& GetDescription() const { return m_description; } - - /** - Returns the sheet's properties. - */ - wxRichTextProperties& GetProperties() { return m_properties; } - - /** - Returns the sheet's properties. - */ - const wxRichTextProperties& GetProperties() const { return m_properties; } - - /** - Sets the sheet's properties. - */ - void SetProperties(const wxRichTextProperties& props) { m_properties = props; } - -/// Implementation - - /// Add a definition to one of the style lists - bool AddStyle(wxList& list, wxRichTextStyleDefinition* def); - - /// Remove a style - bool RemoveStyle(wxList& list, wxRichTextStyleDefinition* def, bool deleteStyle); - - /// Find a definition by name - wxRichTextStyleDefinition* FindStyle(const wxList& list, const wxString& name, bool recurse = true) const; - -protected: - - wxString m_description; - wxString m_name; - - wxList m_characterStyleDefinitions; - wxList m_paragraphStyleDefinitions; - wxList m_listStyleDefinitions; - wxList m_boxStyleDefinitions; - - wxRichTextStyleSheet* m_previousSheet; - wxRichTextStyleSheet* m_nextSheet; - wxRichTextProperties m_properties; -}; - -#if wxUSE_HTML -/*! - * wxRichTextStyleListBox class declaration - * A listbox to display styles. - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextStyleListBox: public wxHtmlListBox -{ - wxDECLARE_CLASS(wxRichTextStyleListBox); - wxDECLARE_EVENT_TABLE(); - -public: - /// Which type of style definition is currently showing? - enum wxRichTextStyleType - { - wxRICHTEXT_STYLE_ALL, - wxRICHTEXT_STYLE_PARAGRAPH, - wxRICHTEXT_STYLE_CHARACTER, - wxRICHTEXT_STYLE_LIST, - wxRICHTEXT_STYLE_BOX - }; - - wxRichTextStyleListBox() - { - Init(); - } - wxRichTextStyleListBox(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0); - virtual ~wxRichTextStyleListBox(); - - void Init() - { - m_styleSheet = NULL; - m_richTextCtrl = NULL; - m_applyOnSelection = false; - m_styleType = wxRICHTEXT_STYLE_PARAGRAPH; - m_autoSetSelection = true; - } - - bool Create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0); - - /// Creates a suitable HTML fragment for a definition - wxString CreateHTML(wxRichTextStyleDefinition* def) const; - - /// Associates the control with a style sheet - void SetStyleSheet(wxRichTextStyleSheet* styleSheet) { m_styleSheet = styleSheet; } - wxRichTextStyleSheet* GetStyleSheet() const { return m_styleSheet; } - - /// Associates the control with a wxRichTextCtrl - void SetRichTextCtrl(wxRichTextCtrl* ctrl) { m_richTextCtrl = ctrl; } - wxRichTextCtrl* GetRichTextCtrl() const { return m_richTextCtrl; } - - /// Get style for index - wxRichTextStyleDefinition* GetStyle(size_t i) const ; - - /// Get index for style name - int GetIndexForStyle(const wxString& name) const ; - - /// Set selection for string, returning the index. - int SetStyleSelection(const wxString& name); - - /// Updates the list - void UpdateStyles(); - - /// Apply the style - void ApplyStyle(int i); - - /// Left click - void OnLeftDown(wxMouseEvent& event); - - /// Left double-click - void OnLeftDoubleClick(wxMouseEvent& event); - - /// Auto-select from style under caret in idle time - void OnIdle(wxIdleEvent& event); - - /// Convert units in tends of a millimetre to device units - int ConvertTenthsMMToPixels(wxDC& dc, int units) const; - - /// Can we set the selection based on the editor caret position? - /// Need to override this if being used in a combobox popup - virtual bool CanAutoSetSelection() { return m_autoSetSelection; } - virtual void SetAutoSetSelection(bool autoSet) { m_autoSetSelection = autoSet; } - - /// Set whether the style should be applied as soon as the item is selected (the default) - void SetApplyOnSelection(bool applyOnSel) { m_applyOnSelection = applyOnSel; } - bool GetApplyOnSelection() const { return m_applyOnSelection; } - - /// Set the style type to display - void SetStyleType(wxRichTextStyleType styleType) { m_styleType = styleType; UpdateStyles(); } - wxRichTextStyleType GetStyleType() const { return m_styleType; } - - /// Helper for listbox and combo control - static wxString GetStyleToShowInIdleTime(wxRichTextCtrl* ctrl, wxRichTextStyleType styleType); - -protected: - /// Returns the HTML for this item - virtual wxString OnGetItem(size_t n) const wxOVERRIDE; - -private: - - wxRichTextStyleSheet* m_styleSheet; - wxRichTextCtrl* m_richTextCtrl; - bool m_applyOnSelection; // if true, applies style on selection - wxRichTextStyleType m_styleType; // style type to display - bool m_autoSetSelection; - wxArrayString m_styleNames; -}; - -/*! - * wxRichTextStyleListCtrl class declaration - * This is a container for the list control plus a combobox to switch between - * style types. - */ - -#define wxRICHTEXTSTYLELIST_HIDE_TYPE_SELECTOR 0x1000 - -class WXDLLIMPEXP_RICHTEXT wxRichTextStyleListCtrl: public wxControl -{ - wxDECLARE_CLASS(wxRichTextStyleListCtrl); - wxDECLARE_EVENT_TABLE(); - -public: - - /// Constructors - wxRichTextStyleListCtrl() - { - Init(); - } - - wxRichTextStyleListCtrl(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0); - - /// Constructors - virtual ~wxRichTextStyleListCtrl(); - - /// Member initialisation - void Init() - { - m_styleListBox = NULL; - m_styleChoice = NULL; - m_dontUpdate = false; - } - - /// Creates the windows - bool Create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0); - - /// Updates the style list box - void UpdateStyles(); - - /// Associates the control with a style sheet - void SetStyleSheet(wxRichTextStyleSheet* styleSheet); - wxRichTextStyleSheet* GetStyleSheet() const; - - /// Associates the control with a wxRichTextCtrl - void SetRichTextCtrl(wxRichTextCtrl* ctrl); - wxRichTextCtrl* GetRichTextCtrl() const; - - /// Set/get the style type to display - void SetStyleType(wxRichTextStyleListBox::wxRichTextStyleType styleType); - wxRichTextStyleListBox::wxRichTextStyleType GetStyleType() const; - - /// Get the choice index for style type - int StyleTypeToIndex(wxRichTextStyleListBox::wxRichTextStyleType styleType); - - /// Get the style type for choice index - wxRichTextStyleListBox::wxRichTextStyleType StyleIndexToType(int i); - - /// Get the listbox - wxRichTextStyleListBox* GetStyleListBox() const { return m_styleListBox; } - - /// Get the choice - wxChoice* GetStyleChoice() const { return m_styleChoice; } - - /// React to style type choice - void OnChooseType(wxCommandEvent& event); - - /// Lay out the controls - void OnSize(wxSizeEvent& event); - -private: - - wxRichTextStyleListBox* m_styleListBox; - wxChoice* m_styleChoice; - bool m_dontUpdate; -}; - -#if wxUSE_COMBOCTRL - -/*! - * Style drop-down for a wxComboCtrl - */ - -class wxRichTextStyleComboPopup : public wxRichTextStyleListBox, public wxComboPopup -{ -public: - virtual void Init() wxOVERRIDE - { - m_itemHere = -1; // hot item in list - m_value = -1; - } - - virtual bool Create( wxWindow* parent ) wxOVERRIDE; - - virtual wxWindow *GetControl() wxOVERRIDE { return this; } - - virtual void SetStringValue( const wxString& s ) wxOVERRIDE; - - virtual wxString GetStringValue() const wxOVERRIDE; - - /// Can we set the selection based on the editor caret position? - // virtual bool CanAutoSetSelection() { return ((m_combo == NULL) || !m_combo->IsPopupShown()); } - virtual bool CanAutoSetSelection() wxOVERRIDE { return false; } - - // - // Popup event handlers - // - - // Mouse hot-tracking - void OnMouseMove(wxMouseEvent& event); - - // On mouse left, set the value and close the popup - void OnMouseClick(wxMouseEvent& WXUNUSED(event)); - -protected: - - int m_itemHere; // hot item in popup - int m_value; - -private: - wxDECLARE_EVENT_TABLE(); -}; - -/*! - * wxRichTextStyleComboCtrl - * A combo for applying styles. - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextStyleComboCtrl: public wxComboCtrl -{ - wxDECLARE_CLASS(wxRichTextStyleComboCtrl); - wxDECLARE_EVENT_TABLE(); - -public: - wxRichTextStyleComboCtrl() - { - Init(); - } - - wxRichTextStyleComboCtrl(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxCB_READONLY) - { - Init(); - Create(parent, id, pos, size, style); - } - - virtual ~wxRichTextStyleComboCtrl() {} - - void Init() - { - m_stylePopup = NULL; - } - - bool Create(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0); - - /// Updates the list - void UpdateStyles() { m_stylePopup->UpdateStyles(); } - - /// Associates the control with a style sheet - void SetStyleSheet(wxRichTextStyleSheet* styleSheet) { m_stylePopup->SetStyleSheet(styleSheet); } - wxRichTextStyleSheet* GetStyleSheet() const { return m_stylePopup->GetStyleSheet(); } - - /// Associates the control with a wxRichTextCtrl - void SetRichTextCtrl(wxRichTextCtrl* ctrl) { m_stylePopup->SetRichTextCtrl(ctrl); } - wxRichTextCtrl* GetRichTextCtrl() const { return m_stylePopup->GetRichTextCtrl(); } - - /// Gets the style popup - wxRichTextStyleComboPopup* GetStylePopup() const { return m_stylePopup; } - - /// Auto-select from style under caret in idle time - void OnIdle(wxIdleEvent& event); - -protected: - wxRichTextStyleComboPopup* m_stylePopup; -}; - -#endif - // wxUSE_COMBOCTRL - -#endif - // wxUSE_HTML - -#endif - // wxUSE_RICHTEXT - -#endif - // _WX_RICHTEXTSTYLES_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextsymboldlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextsymboldlg.h deleted file mode 100644 index 40f5621a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextsymboldlg.h +++ /dev/null @@ -1,375 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextsymboldlg.h -// Purpose: Declares the symbol picker dialog. -// Author: Julian Smart -// Modified by: -// Created: 10/5/2006 3:11:58 PM -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _RICHTEXTSYMBOLDLG_H_ -#define _RICHTEXTSYMBOLDLG_H_ - -/*! - * Includes - */ - -#include "wx/richtext/richtextuicustomization.h" -#include "wx/dialog.h" -#include "wx/vscroll.h" - -/*! - * Forward declarations - */ - -class WXDLLIMPEXP_FWD_CORE wxStaticText; -class WXDLLIMPEXP_FWD_CORE wxComboBox; -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; - -////@begin forward declarations -class wxSymbolListCtrl; -class wxStdDialogButtonSizer; -////@end forward declarations - -// __UNICODE__ is a symbol used by DialogBlocks-generated code. -#ifndef __UNICODE__ -#if wxUSE_UNICODE -#define __UNICODE__ -#endif -#endif - -/*! - * Symbols - */ - -#define SYMBOL_WXSYMBOLPICKERDIALOG_STYLE (wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxCLOSE_BOX) -#define SYMBOL_WXSYMBOLPICKERDIALOG_TITLE wxGetTranslation("Symbols") -#define SYMBOL_WXSYMBOLPICKERDIALOG_IDNAME ID_SYMBOLPICKERDIALOG -#define SYMBOL_WXSYMBOLPICKERDIALOG_SIZE wxSize(400, 300) -#define SYMBOL_WXSYMBOLPICKERDIALOG_POSITION wxDefaultPosition - -/*! - * wxSymbolPickerDialog class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxSymbolPickerDialog: public wxDialog -{ - wxDECLARE_DYNAMIC_CLASS(wxSymbolPickerDialog); - wxDECLARE_EVENT_TABLE(); - DECLARE_HELP_PROVISION() - -public: - /// Constructors - wxSymbolPickerDialog( ); - wxSymbolPickerDialog( const wxString& symbol, const wxString& fontName, const wxString& normalTextFont, - wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& caption = SYMBOL_WXSYMBOLPICKERDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXSYMBOLPICKERDIALOG_POSITION, const wxSize& size = SYMBOL_WXSYMBOLPICKERDIALOG_SIZE, long style = SYMBOL_WXSYMBOLPICKERDIALOG_STYLE ); - - /// Creation - bool Create( const wxString& symbol, const wxString& fontName, const wxString& normalTextFont, - wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& caption = SYMBOL_WXSYMBOLPICKERDIALOG_TITLE, const wxPoint& pos = SYMBOL_WXSYMBOLPICKERDIALOG_POSITION, const wxSize& size = SYMBOL_WXSYMBOLPICKERDIALOG_SIZE, long style = SYMBOL_WXSYMBOLPICKERDIALOG_STYLE ); - - /// Initialises members variables - void Init(); - - /// Creates the controls and sizers - void CreateControls(); - - /// Update the display - void UpdateSymbolDisplay(bool updateSymbolList = true, bool showAtSubset = true); - - /// Respond to symbol selection - void OnSymbolSelected( wxCommandEvent& event ); - - /// Set Unicode mode - void SetUnicodeMode(bool unicodeMode); - - /// Show at the current subset selection - void ShowAtSubset(); - - /// Get the selected symbol character - int GetSymbolChar() const; - - /// Is there a selection? - bool HasSelection() const { return !m_symbol.IsEmpty(); } - - /// Specifying normal text? - bool UseNormalFont() const { return m_fontName.IsEmpty(); } - - /// Should we show tooltips? - static bool ShowToolTips() { return sm_showToolTips; } - - /// Determines whether tooltips will be shown - static void SetShowToolTips(bool show) { sm_showToolTips = show; } - - /// Data transfer - virtual bool TransferDataToWindow() wxOVERRIDE; - -////@begin wxSymbolPickerDialog event handler declarations - - /// wxEVT_COMBOBOX event handler for ID_SYMBOLPICKERDIALOG_FONT - void OnFontCtrlSelected( wxCommandEvent& event ); - -#if defined(__UNICODE__) - /// wxEVT_COMBOBOX event handler for ID_SYMBOLPICKERDIALOG_SUBSET - void OnSubsetSelected( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_SYMBOLPICKERDIALOG_SUBSET - void OnSymbolpickerdialogSubsetUpdate( wxUpdateUIEvent& event ); - -#endif -#if defined(__UNICODE__) - /// wxEVT_COMBOBOX event handler for ID_SYMBOLPICKERDIALOG_FROM - void OnFromUnicodeSelected( wxCommandEvent& event ); - -#endif - /// wxEVT_UPDATE_UI event handler for wxID_OK - void OnOkUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_BUTTON event handler for wxID_HELP - void OnHelpClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for wxID_HELP - void OnHelpUpdate( wxUpdateUIEvent& event ); - -////@end wxSymbolPickerDialog event handler declarations - -////@begin wxSymbolPickerDialog member function declarations - - wxString GetFontName() const { return m_fontName ; } - void SetFontName(wxString value) { m_fontName = value ; } - - bool GetFromUnicode() const { return m_fromUnicode ; } - void SetFromUnicode(bool value) { m_fromUnicode = value ; } - - wxString GetNormalTextFontName() const { return m_normalTextFontName ; } - void SetNormalTextFontName(wxString value) { m_normalTextFontName = value ; } - - wxString GetSymbol() const { return m_symbol ; } - void SetSymbol(wxString value) { m_symbol = value ; } - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end wxSymbolPickerDialog member function declarations - -////@begin wxSymbolPickerDialog member variables - wxComboBox* m_fontCtrl; -#if defined(__UNICODE__) - wxComboBox* m_subsetCtrl; -#endif - wxSymbolListCtrl* m_symbolsCtrl; - wxStaticText* m_symbolStaticCtrl; - wxTextCtrl* m_characterCodeCtrl; -#if defined(__UNICODE__) - wxComboBox* m_fromUnicodeCtrl; -#endif - wxStdDialogButtonSizer* m_stdButtonSizer; - wxString m_fontName; - bool m_fromUnicode; - wxString m_normalTextFontName; - wxString m_symbol; - /// Control identifiers - enum { - ID_SYMBOLPICKERDIALOG = 10600, - ID_SYMBOLPICKERDIALOG_FONT = 10602, - ID_SYMBOLPICKERDIALOG_SUBSET = 10605, - ID_SYMBOLPICKERDIALOG_LISTCTRL = 10608, - ID_SYMBOLPICKERDIALOG_CHARACTERCODE = 10601, - ID_SYMBOLPICKERDIALOG_FROM = 10603 - }; -////@end wxSymbolPickerDialog member variables - - bool m_dontUpdate; - static bool sm_showToolTips; -}; - -/*! - * The scrolling symbol list. - */ - -class WXDLLIMPEXP_RICHTEXT wxSymbolListCtrl : public wxVScrolledWindow -{ -public: - // constructors and such - // --------------------- - - // default constructor, you must call Create() later - wxSymbolListCtrl() { Init(); } - - // normal constructor which calls Create() internally - wxSymbolListCtrl(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - { - Init(); - - (void)Create(parent, id, pos, size, style, name); - } - - // really creates the control and sets the initial number of items in it - // (which may be changed later with SetItemCount()) - // - // returns true on success or false if the control couldn't be created - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - - // dtor does some internal cleanup - virtual ~wxSymbolListCtrl(); - - - // accessors - // --------- - - // set the current font - virtual bool SetFont(const wxFont& font) wxOVERRIDE; - - // set Unicode/ASCII mode - void SetUnicodeMode(bool unicodeMode); - - // get the index of the currently selected item or wxNOT_FOUND if there is no selection - int GetSelection() const; - - // is this item selected? - bool IsSelected(int item) const; - - // is this item the current one? - bool IsCurrentItem(int item) const { return item == m_current; } - - // get the margins around each cell - wxPoint GetMargins() const { return m_ptMargins; } - - // get the background colour of selected cells - const wxColour& GetSelectionBackground() const { return m_colBgSel; } - - // operations - // ---------- - - // set the selection to the specified item, if it is wxNOT_FOUND the - // selection is unset - void SetSelection(int selection); - - // make this item visible - void EnsureVisible(int item); - - // set the margins: horizontal margin is the distance between the window - // border and the item contents while vertical margin is half of the - // distance between items - // - // by default both margins are 0 - void SetMargins(const wxPoint& pt); - void SetMargins(wxCoord x, wxCoord y) { SetMargins(wxPoint(x, y)); } - - // set the cell size - void SetCellSize(const wxSize& sz) { m_cellSize = sz; } - const wxSize& GetCellSize() const { return m_cellSize; } - - // change the background colour of the selected cells - void SetSelectionBackground(const wxColour& col); - - virtual wxVisualAttributes GetDefaultAttributes() const wxOVERRIDE - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); - - // Get min/max symbol values - int GetMinSymbolValue() const { return m_minSymbolValue; } - int GetMaxSymbolValue() const { return m_maxSymbolValue; } - - // Respond to size change - void OnSize(wxSizeEvent& event); - -protected: - - // draws a line of symbols - virtual void OnDrawItem(wxDC& dc, const wxRect& rect, size_t n) const; - - // gets the line height - virtual wxCoord OnGetRowHeight(size_t line) const wxOVERRIDE; - - // event handlers - void OnPaint(wxPaintEvent& event); - void OnKeyDown(wxKeyEvent& event); - void OnLeftDown(wxMouseEvent& event); - void OnLeftDClick(wxMouseEvent& event); - - // common part of all ctors - void Init(); - - // send the wxEVT_LISTBOX event - void SendSelectedEvent(); - - // change the current item (in single selection listbox it also implicitly - // changes the selection); current may be wxNOT_FOUND in which case there - // will be no current item any more - // - // return true if the current item changed, false otherwise - bool DoSetCurrent(int current); - - // flags for DoHandleItemClick - enum - { - ItemClick_Shift = 1, // item shift-clicked - ItemClick_Ctrl = 2, // ctrl - ItemClick_Kbd = 4 // item selected from keyboard - }; - - // common part of keyboard and mouse handling processing code - void DoHandleItemClick(int item, int flags); - - // calculate line number from symbol value - int SymbolValueToLineNumber(int item); - - // initialise control from current min/max values - void SetupCtrl(bool scrollToSelection = true); - - // hit testing - int HitTest(const wxPoint& pt); - -private: - // the current item or wxNOT_FOUND - int m_current; - - // margins - wxPoint m_ptMargins; - - // the selection bg colour - wxColour m_colBgSel; - - // double buffer - wxBitmap* m_doubleBuffer; - - // cell size - wxSize m_cellSize; - - // minimum and maximum symbol value - int m_minSymbolValue; - - // minimum and maximum symbol value - int m_maxSymbolValue; - - // number of items per line - int m_symbolsPerLine; - - // Unicode/ASCII mode - bool m_unicodeMode; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxSymbolListCtrl); - wxDECLARE_ABSTRACT_CLASS(wxSymbolListCtrl); -}; - -#endif - // _RICHTEXTSYMBOLDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtexttabspage.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtexttabspage.h deleted file mode 100644 index 5f6e8a5a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtexttabspage.h +++ /dev/null @@ -1,131 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtexttabspage.h -// Purpose: Declares the rich text formatting dialog tabs page. -// Author: Julian Smart -// Modified by: -// Created: 10/4/2006 8:03:20 AM -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _RICHTEXTTABSPAGE_H_ -#define _RICHTEXTTABSPAGE_H_ - -/*! - * Includes - */ - -#include "wx/richtext/richtextdialogpage.h" - -////@begin includes -////@end includes - -/*! - * Forward declarations - */ - -////@begin forward declarations -////@end forward declarations - -/*! - * Control identifiers - */ - -////@begin control identifiers -#define SYMBOL_WXRICHTEXTTABSPAGE_STYLE wxTAB_TRAVERSAL -#define SYMBOL_WXRICHTEXTTABSPAGE_TITLE wxEmptyString -#define SYMBOL_WXRICHTEXTTABSPAGE_IDNAME ID_RICHTEXTTABSPAGE -#define SYMBOL_WXRICHTEXTTABSPAGE_SIZE wxSize(400, 300) -#define SYMBOL_WXRICHTEXTTABSPAGE_POSITION wxDefaultPosition -////@end control identifiers - -/*! - * wxRichTextTabsPage class declaration - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextTabsPage: public wxRichTextDialogPage -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextTabsPage); - wxDECLARE_EVENT_TABLE(); - DECLARE_HELP_PROVISION() - -public: - /// Constructors - wxRichTextTabsPage( ); - wxRichTextTabsPage( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTTABSPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTTABSPAGE_SIZE, long style = SYMBOL_WXRICHTEXTTABSPAGE_STYLE ); - - /// Creation - bool Create( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = SYMBOL_WXRICHTEXTTABSPAGE_POSITION, const wxSize& size = SYMBOL_WXRICHTEXTTABSPAGE_SIZE, long style = SYMBOL_WXRICHTEXTTABSPAGE_STYLE ); - - /// Creates the controls and sizers - void CreateControls(); - - /// Initialise members - void Init(); - - /// Transfer data from/to window - virtual bool TransferDataFromWindow() wxOVERRIDE; - virtual bool TransferDataToWindow() wxOVERRIDE; - - /// Sorts the tab array - virtual void SortTabs(); - - /// Gets the attributes associated with the main formatting dialog - wxRichTextAttr* GetAttributes(); - -////@begin wxRichTextTabsPage event handler declarations - - /// wxEVT_COMMAND_LISTBOX_SELECTED event handler for ID_RICHTEXTTABSPAGE_TABLIST - void OnTablistSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTTABSPAGE_NEW_TAB - void OnNewTabClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTTABSPAGE_NEW_TAB - void OnNewTabUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTTABSPAGE_DELETE_TAB - void OnDeleteTabClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTTABSPAGE_DELETE_TAB - void OnDeleteTabUpdate( wxUpdateUIEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_RICHTEXTTABSPAGE_DELETE_ALL_TABS - void OnDeleteAllTabsClick( wxCommandEvent& event ); - - /// wxEVT_UPDATE_UI event handler for ID_RICHTEXTTABSPAGE_DELETE_ALL_TABS - void OnDeleteAllTabsUpdate( wxUpdateUIEvent& event ); - -////@end wxRichTextTabsPage event handler declarations - -////@begin wxRichTextTabsPage member function declarations - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end wxRichTextTabsPage member function declarations - - /// Should we show tooltips? - static bool ShowToolTips(); - -////@begin wxRichTextTabsPage member variables - wxTextCtrl* m_tabEditCtrl; - wxListBox* m_tabListCtrl; - /// Control identifiers - enum { - ID_RICHTEXTTABSPAGE = 10200, - ID_RICHTEXTTABSPAGE_TABEDIT = 10213, - ID_RICHTEXTTABSPAGE_TABLIST = 10214, - ID_RICHTEXTTABSPAGE_NEW_TAB = 10201, - ID_RICHTEXTTABSPAGE_DELETE_TAB = 10202, - ID_RICHTEXTTABSPAGE_DELETE_ALL_TABS = 10203 - }; -////@end wxRichTextTabsPage member variables - - bool m_tabsPresent; -}; - -#endif - // _RICHTEXTTABSPAGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextuicustomization.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextuicustomization.h deleted file mode 100644 index d9fadfc8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextuicustomization.h +++ /dev/null @@ -1,128 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextuicustomization.h -// Purpose: UI customization base class for wxRTC -// Author: Julian Smart -// Modified by: -// Created: 2010-11-14 -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RICHTEXTUICUSTOMIZATION_H_ -#define _WX_RICHTEXTUICUSTOMIZATION_H_ - -#if wxUSE_RICHTEXT - -#include "wx/window.h" - -/** - @class wxRichTextUICustomization - The base class for functionality to plug in to various rich text control dialogs, - currently allowing the application to respond to Help button clicks without the - need to derive new dialog classes. - - The application will typically have calls like this in its initialisation: - - wxRichTextFormattingDialog::GetHelpInfo().SetHelpId(ID_HELP_FORMATTINGDIALOG); - wxRichTextFormattingDialog::GetHelpInfo().SetUICustomization(& wxGetApp().GetRichTextUICustomization()); - wxRichTextBordersPage::GetHelpInfo().SetHelpId(ID_HELP_BORDERSPAGE); - - Only the wxRichTextFormattingDialog class needs to have its customization object and help id set, - though the application set them for individual pages if it wants. - **/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextUICustomization -{ -public: - wxRichTextUICustomization() {} - virtual ~wxRichTextUICustomization() {} - - /// Show the help given the current active window, and a help topic id. - virtual bool ShowHelp(wxWindow* win, long id) = 0; -}; - -/** - @class wxRichTextHelpInfo - This class is used as a static member of dialogs, to store the help topic for the dialog - and also the customization object that will allow help to be shown appropriately for the application. - **/ - -class WXDLLIMPEXP_RICHTEXT wxRichTextHelpInfo -{ -public: - wxRichTextHelpInfo() - { - m_helpTopic = -1; - m_uiCustomization = NULL; - } - virtual ~wxRichTextHelpInfo() {} - - virtual bool ShowHelp(wxWindow* win) - { - if ( !m_uiCustomization || m_helpTopic == -1 ) - return false; - - return m_uiCustomization->ShowHelp(win, m_helpTopic); - } - - /// Get the help topic identifier. - long GetHelpId() const { return m_helpTopic; } - - /// Set the help topic identifier. - void SetHelpId(long id) { m_helpTopic = id; } - - /// Get the UI customization object. - wxRichTextUICustomization* GetUICustomization() const { return m_uiCustomization; } - - /// Set the UI customization object. - void SetUICustomization(wxRichTextUICustomization* customization) { m_uiCustomization = customization; } - - /// Is there a valid help topic id? - bool HasHelpId() const { return m_helpTopic != -1; } - - /// Is there a valid customization object? - bool HasUICustomization() const { return m_uiCustomization != NULL; } - -protected: - wxRichTextUICustomization* m_uiCustomization; - long m_helpTopic; -}; - -/// Add this to the base class of dialogs - -#define DECLARE_BASE_CLASS_HELP_PROVISION() \ - virtual long GetHelpId() const = 0; \ - virtual wxRichTextUICustomization* GetUICustomization() const = 0; \ - virtual bool ShowHelp(wxWindow* win) = 0; - -/// A macro to make it easy to add help topic provision and UI customization -/// to a class. Optionally, add virtual functions to a base class -/// using DECLARE_BASE_CLASS_HELP_PROVISION. This means that the formatting dialog -/// can obtain help topics from its individual pages without needing -/// to know in advance what page classes are being used, allowing for extension -/// of the formatting dialog. - -#define DECLARE_HELP_PROVISION() \ - wxCLANG_WARNING_SUPPRESS(inconsistent-missing-override) \ - virtual long GetHelpId() const { return sm_helpInfo.GetHelpId(); } \ - virtual void SetHelpId(long id) { sm_helpInfo.SetHelpId(id); } \ - virtual wxRichTextUICustomization* GetUICustomization() const { return sm_helpInfo.GetUICustomization(); } \ - virtual void SetUICustomization(wxRichTextUICustomization* customization) { sm_helpInfo.SetUICustomization(customization); } \ - virtual bool ShowHelp(wxWindow* win) { return sm_helpInfo.ShowHelp(win); } \ - wxCLANG_WARNING_RESTORE(inconsistent-missing-override) \ -public: \ - static wxRichTextHelpInfo& GetHelpInfo() { return sm_helpInfo; }\ -protected: \ - static wxRichTextHelpInfo sm_helpInfo; \ -public: - -/// Add this to the implementation file for each dialog that needs help provision. - -#define IMPLEMENT_HELP_PROVISION(theClass) \ - wxRichTextHelpInfo theClass::sm_helpInfo; - -#endif - // wxUSE_RICHTEXT - -#endif - // _WX_RICHTEXTUICUSTOMIZATION_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextxml.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextxml.h deleted file mode 100644 index 9557d5d4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtext/richtextxml.h +++ /dev/null @@ -1,242 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/richtext/richtextxml.h -// Purpose: XML and HTML I/O for wxRichTextCtrl -// Author: Julian Smart -// Modified by: -// Created: 2005-09-30 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RICHTEXTXML_H_ -#define _WX_RICHTEXTXML_H_ - -/*! - * Includes - */ - -#include "wx/hashmap.h" -#include "wx/richtext/richtextbuffer.h" -#include "wx/richtext/richtextstyles.h" - -#if wxUSE_RICHTEXT && wxUSE_XML - -/*! - @class wxRichTextXMLHelper - A utility class to help with XML import/export, that can be used outside - saving a buffer if needed. - */ - -class WXDLLIMPEXP_RICHTEXT wxRichTextXMLHelper: public wxObject -{ -public: - wxRichTextXMLHelper() { Init(); } - wxRichTextXMLHelper(const wxString& enc) { Init(); SetupForSaving(enc); } - ~wxRichTextXMLHelper(); - - void Init(); - - void SetupForSaving(const wxString& enc); - - void Clear(); - - void SetFileEncoding(const wxString& encoding) { m_fileEncoding = encoding; } - const wxString& GetFileEncoding() const { return m_fileEncoding; } - - // Convert a colour to a 6-digit hex string - static wxString ColourToHexString(const wxColour& col); - - // Convert 6-digit hex string to a colour - static wxColour HexStringToColour(const wxString& hex); - - static wxString MakeString(const int& v) { return wxString::Format(wxT("%d"), v); } - static wxString MakeString(const long& v) { return wxString::Format(wxT("%ld"), v); } - static wxString MakeString(const double& v) { return wxString::Format(wxT("%.2f"), (float) v); } - static wxString MakeString(const wxString& s) { return s; } - static wxString MakeString(const wxColour& col) { return wxT("#") + ColourToHexString(col); } - - static bool HasParam(wxXmlNode* node, const wxString& param); - static wxXmlNode *GetParamNode(wxXmlNode* node, const wxString& param); - static wxString GetNodeContent(wxXmlNode *node); - static wxString GetParamValue(wxXmlNode *node, const wxString& param); - static wxString GetText(wxXmlNode *node, const wxString& param = wxEmptyString); - static wxXmlNode* FindNode(wxXmlNode* node, const wxString& name); - - static wxString AttributeToXML(const wxString& str); - - static bool RichTextFixFaceName(wxString& facename); - static long ColourStringToLong(const wxString& colStr); - static wxTextAttrDimension ParseDimension(const wxString& dimStr); - - // Make a string from the given property. This can be overridden for custom variants. - virtual wxString MakeStringFromProperty(const wxVariant& var); - - // Create a proprty from the string read from the XML file. - virtual wxVariant MakePropertyFromString(const wxString& name, const wxString& value, const wxString& type); - - // Import properties - virtual bool ImportProperties(wxRichTextProperties& properties, wxXmlNode* node); - - virtual bool ImportStyle(wxRichTextAttr& attr, wxXmlNode* node, bool isPara = false); - virtual bool ImportStyleDefinition(wxRichTextStyleSheet* sheet, wxXmlNode* node); - - // Get flags, as per handler flags - int GetFlags() const { return m_flags; } - void SetFlags(int flags) { m_flags = flags; } - -#if wxRICHTEXT_HAVE_DIRECT_OUTPUT - // write string to output - static void OutputString(wxOutputStream& stream, const wxString& str, - wxMBConv *convMem, wxMBConv *convFile); - - static void OutputIndentation(wxOutputStream& stream, int indent); - - // Same as above, but create entities first. - // Translates '<' to "<", '>' to ">" and '&' to "&" - static void OutputStringEnt(wxOutputStream& stream, const wxString& str, - wxMBConv *convMem, wxMBConv *convFile); - - void OutputString(wxOutputStream& stream, const wxString& str); - void OutputStringEnt(wxOutputStream& stream, const wxString& str); - - static void AddString(wxString& str, const int& v) { str << wxString::Format(wxT("%d"), v); } - static void AddString(wxString& str, const long& v) { str << wxString::Format(wxT("%ld"), v); } - static void AddString(wxString& str, const double& v) { str << wxString::Format(wxT("%.2f"), (float) v); } - static void AddString(wxString& str, const wxChar* s) { str << s; } - static void AddString(wxString& str, const wxString& s) { str << s; } - static void AddString(wxString& str, const wxColour& col) { str << wxT("#") << ColourToHexString(col); } - - static void AddAttribute(wxString& str, const wxString& name, const int& v); - static void AddAttribute(wxString& str, const wxString& name, const long& v); - static void AddAttribute(wxString& str, const wxString& name, const double& v); - static void AddAttribute(wxString& str, const wxString& name, const wxChar* s); - static void AddAttribute(wxString& str, const wxString& name, const wxString& s); - static void AddAttribute(wxString& str, const wxString& name, const wxColour& col); - static void AddAttribute(wxString& str, const wxString& name, const wxTextAttrDimension& dim); - static void AddAttribute(wxString& str, const wxString& rootName, const wxTextAttrDimensions& dims); - static void AddAttribute(wxString& str, const wxString& rootName, const wxTextAttrBorder& border); - static void AddAttribute(wxString& str, const wxString& rootName, const wxTextAttrBorders& borders); - - /// Create a string containing style attributes - static wxString AddAttributes(const wxRichTextAttr& attr, bool isPara = false); - - /// Create a string containing style attributes, plus further object 'attributes' (shown, id) - static wxString AddAttributes(wxRichTextObject* obj, bool isPara = false); - - virtual bool ExportStyleDefinition(wxOutputStream& stream, wxRichTextStyleDefinition* def, int level); - - virtual bool WriteProperties(wxOutputStream& stream, const wxRichTextProperties& properties, int level); -#endif - -#if wxRICHTEXT_HAVE_XMLDOCUMENT_OUTPUT - static void AddAttribute(wxXmlNode* node, const wxString& name, const int& v); - static void AddAttribute(wxXmlNode* node, const wxString& name, const long& v); - static void AddAttribute(wxXmlNode* node, const wxString& name, const double& v); - static void AddAttribute(wxXmlNode* node, const wxString& name, const wxString& s); - static void AddAttribute(wxXmlNode* node, const wxString& name, const wxColour& col); - static void AddAttribute(wxXmlNode* node, const wxString& name, const wxTextAttrDimension& dim); - static void AddAttribute(wxXmlNode* node, const wxString& rootName, const wxTextAttrDimensions& dims); - static void AddAttribute(wxXmlNode* node, const wxString& rootName, const wxTextAttrBorder& border); - static void AddAttribute(wxXmlNode* node, const wxString& rootName, const wxTextAttrBorders& borders); - - static bool AddAttributes(wxXmlNode* node, wxRichTextAttr& attr, bool isPara = false); - static bool AddAttributes(wxXmlNode* node, wxRichTextObject* obj, bool isPara = false); - - virtual bool ExportStyleDefinition(wxXmlNode* parent, wxRichTextStyleDefinition* def); - - // Write the properties - virtual bool WriteProperties(wxXmlNode* node, const wxRichTextProperties& properties); -#endif - -public: - -#if wxRICHTEXT_HAVE_DIRECT_OUTPUT - // Used during saving - wxMBConv* m_convMem; - wxMBConv* m_convFile; - bool m_deleteConvFile; -#endif - - wxString m_fileEncoding; - int m_flags; -}; - -/*! - @class wxRichTextXMLHandler - - Implements XML loading and saving. Two methods of saving are included: - writing directly to a text stream, and populating an wxXmlDocument - before writing it. The former method is considerably faster, so we favour - that one, even though the code is a little less elegant. - */ - -class WXDLLIMPEXP_FWD_XML wxXmlNode; -class WXDLLIMPEXP_FWD_XML wxXmlDocument; - -class WXDLLIMPEXP_RICHTEXT wxRichTextXMLHandler: public wxRichTextFileHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextXMLHandler); -public: - wxRichTextXMLHandler(const wxString& name = wxT("XML"), const wxString& ext = wxT("xml"), int type = wxRICHTEXT_TYPE_XML) - : wxRichTextFileHandler(name, ext, type) - { Init(); } - - void Init(); - -#if wxUSE_STREAMS - -#if wxRICHTEXT_HAVE_DIRECT_OUTPUT - /// Recursively export an object - bool ExportXML(wxOutputStream& stream, wxRichTextObject& obj, int level); -#endif - -#if wxRICHTEXT_HAVE_XMLDOCUMENT_OUTPUT - bool ExportXML(wxXmlNode* parent, wxRichTextObject& obj); -#endif - - /// Recursively import an object - bool ImportXML(wxRichTextBuffer* buffer, wxRichTextObject* obj, wxXmlNode* node); -#endif - - /// Creates an object given an XML element name - virtual wxRichTextObject* CreateObjectForXMLName(wxRichTextObject* parent, const wxString& name) const; - - /// Can we save using this handler? - virtual bool CanSave() const wxOVERRIDE { return true; } - - /// Can we load using this handler? - virtual bool CanLoad() const wxOVERRIDE { return true; } - - /// Returns the XML helper object, implementing functionality - /// that can be reused elsewhere. - wxRichTextXMLHelper& GetHelper() { return m_helper; } - -// Implementation - - /** - Call with XML node name, C++ class name so that wxRTC can read in the node. - If you add a custom object, call this. - */ - static void RegisterNodeName(const wxString& nodeName, const wxString& className) { sm_nodeNameToClassMap[nodeName] = className; } - - /** - Cleans up the mapping between node name and C++ class. - */ - static void ClearNodeToClassMap() { sm_nodeNameToClassMap.clear(); } - -protected: -#if wxUSE_STREAMS - virtual bool DoLoadFile(wxRichTextBuffer *buffer, wxInputStream& stream) wxOVERRIDE; - virtual bool DoSaveFile(wxRichTextBuffer *buffer, wxOutputStream& stream) wxOVERRIDE; -#endif - - wxRichTextXMLHelper m_helper; - - static wxStringToStringHashMap sm_nodeNameToClassMap; -}; - -#endif - // wxUSE_RICHTEXT && wxUSE_XML - -#endif - // _WX_RICHTEXTXML_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtooltip.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtooltip.h deleted file mode 100644 index 1187e67e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/richtooltip.h +++ /dev/null @@ -1,103 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/richtooltip.h -// Purpose: Declaration of wxRichToolTip class. -// Author: Vadim Zeitlin -// Created: 2011-10-07 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RICHTOOLTIP_H_ -#define _WX_RICHTOOLTIP_H_ - -#include "wx/defs.h" - -#if wxUSE_RICHTOOLTIP - -#include "wx/colour.h" - -class WXDLLIMPEXP_FWD_CORE wxFont; -class WXDLLIMPEXP_FWD_CORE wxIcon; -class WXDLLIMPEXP_FWD_CORE wxWindow; - -class wxRichToolTipImpl; - -// This enum describes the kind of the tip shown which combines both the tip -// position and appearance because the two are related (when the tip is -// positioned asymmetrically, a right handed triangle is used but an -// equilateral one when it's in the middle of a side). -// -// Automatic selects the tip appearance best suited for the current platform -// and the position best suited for the window the tooltip is shown for, i.e. -// chosen in such a way that the tooltip is always fully on screen. -// -// Other values describe the position of the tooltip itself, not the window it -// relates to. E.g. wxTipKind_Top places the tip on the top of the tooltip and -// so the tooltip itself is located beneath its associated window. -enum wxTipKind -{ - wxTipKind_None, - wxTipKind_TopLeft, - wxTipKind_Top, - wxTipKind_TopRight, - wxTipKind_BottomLeft, - wxTipKind_Bottom, - wxTipKind_BottomRight, - wxTipKind_Auto -}; - -// ---------------------------------------------------------------------------- -// wxRichToolTip: a customizable but not necessarily native tooltip. -// ---------------------------------------------------------------------------- - -// Notice that this class does not inherit from wxWindow. -class WXDLLIMPEXP_ADV wxRichToolTip -{ -public: - // Ctor must specify the tooltip title and main message, additional - // attributes can be set later. - wxRichToolTip(const wxString& title, const wxString& message); - - // Set the background colour: if two colours are specified, the background - // is drawn using a gradient from top to bottom, otherwise a single solid - // colour is used. - void SetBackgroundColour(const wxColour& col, - const wxColour& colEnd = wxColour()); - - // Set the small icon to show: either one of the standard information/ - // warning/error ones (the question icon doesn't make sense for a tooltip) - // or a custom icon. - void SetIcon(int icon = wxICON_INFORMATION); - void SetIcon(const wxIcon& icon); - - // Set timeout after which the tooltip should disappear, in milliseconds. - // By default the tooltip is hidden after system-dependent interval of time - // elapses but this method can be used to change this or also disable - // hiding the tooltip automatically entirely by passing 0 in this parameter - // (but doing this can result in native version not being used). - // Optionally specify a show delay. - void SetTimeout(unsigned milliseconds, unsigned millisecondsShowdelay = 0); - - // Choose the tip kind, possibly none. By default the tip is positioned - // automatically, as if wxTipKind_Auto was used. - void SetTipKind(wxTipKind tipKind); - - // Set the title text font. By default it's emphasized using the font style - // or colour appropriate for the current platform. - void SetTitleFont(const wxFont& font); - - // Show the tooltip for the given window and optionally a specified area. - void ShowFor(wxWindow* win, const wxRect* rect = NULL); - - // Non-virtual dtor as this class is not supposed to be derived from. - ~wxRichToolTip(); - -private: - wxRichToolTipImpl* const m_impl; - - wxDECLARE_NO_COPY_CLASS(wxRichToolTip); -}; - -#endif // wxUSE_RICHTOOLTIP - -#endif // _WX_RICHTOOLTIP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/rtti.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/rtti.h deleted file mode 100644 index 308b6576..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/rtti.h +++ /dev/null @@ -1,321 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/rtti.h -// Purpose: old RTTI macros (use XTI when possible instead) -// Author: Julian Smart -// Modified by: Ron Lee -// Created: 01/02/97 -// Copyright: (c) 1997 Julian Smart -// (c) 2001 Ron Lee <ron@debian.org> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RTTIH__ -#define _WX_RTTIH__ - -#if !wxUSE_EXTENDED_RTTI // XTI system is meant to replace these macros - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/memory.h" - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_BASE wxObject; -class WXDLLIMPEXP_FWD_BASE wxString; -class WXDLLIMPEXP_FWD_BASE wxClassInfo; -class WXDLLIMPEXP_FWD_BASE wxHashTable; -class WXDLLIMPEXP_FWD_BASE wxObject; -class WXDLLIMPEXP_FWD_BASE wxPluginLibrary; -class WXDLLIMPEXP_FWD_BASE wxHashTable_Node; - -// ---------------------------------------------------------------------------- -// wxClassInfo -// ---------------------------------------------------------------------------- - -typedef wxObject *(*wxObjectConstructorFn)(void); - -class WXDLLIMPEXP_BASE wxClassInfo -{ - friend class WXDLLIMPEXP_FWD_BASE wxObject; - friend WXDLLIMPEXP_BASE wxObject *wxCreateDynamicObject(const wxString& name); -public: - wxClassInfo( const wxChar *className, - const wxClassInfo *baseInfo1, - const wxClassInfo *baseInfo2, - int size, - wxObjectConstructorFn ctor ) - : m_className(className) - , m_objectSize(size) - , m_objectConstructor(ctor) - , m_baseInfo1(baseInfo1) - , m_baseInfo2(baseInfo2) - , m_next(sm_first) - { - sm_first = this; - Register(); - } - - ~wxClassInfo(); - - wxObject *CreateObject() const - { return m_objectConstructor ? (*m_objectConstructor)() : 0; } - bool IsDynamic() const { return (NULL != m_objectConstructor); } - - const wxChar *GetClassName() const { return m_className; } - const wxChar *GetBaseClassName1() const - { return m_baseInfo1 ? m_baseInfo1->GetClassName() : NULL; } - const wxChar *GetBaseClassName2() const - { return m_baseInfo2 ? m_baseInfo2->GetClassName() : NULL; } - const wxClassInfo *GetBaseClass1() const { return m_baseInfo1; } - const wxClassInfo *GetBaseClass2() const { return m_baseInfo2; } - int GetSize() const { return m_objectSize; } - - wxObjectConstructorFn GetConstructor() const - { return m_objectConstructor; } - static const wxClassInfo *GetFirst() { return sm_first; } - const wxClassInfo *GetNext() const { return m_next; } - static wxClassInfo *FindClass(const wxString& className); - - // Climb upwards through inheritance hierarchy. - // Dual inheritance is catered for. - - bool IsKindOf(const wxClassInfo *info) const - { - return info != 0 && - ( info == this || - ( m_baseInfo1 && m_baseInfo1->IsKindOf(info) ) || - ( m_baseInfo2 && m_baseInfo2->IsKindOf(info) ) ); - } - - wxDECLARE_CLASS_INFO_ITERATORS(); - -private: - const wxChar *m_className; - int m_objectSize; - wxObjectConstructorFn m_objectConstructor; - - // Pointers to base wxClassInfos - - const wxClassInfo *m_baseInfo1; - const wxClassInfo *m_baseInfo2; - - // class info object live in a linked list: - // pointers to its head and the next element in it - - static wxClassInfo *sm_first; - wxClassInfo *m_next; - - static wxHashTable *sm_classTable; - -protected: - // registers the class - void Register(); - void Unregister(); - - wxDECLARE_NO_COPY_CLASS(wxClassInfo); -}; - -WXDLLIMPEXP_BASE wxObject *wxCreateDynamicObject(const wxString& name); - -// ---------------------------------------------------------------------------- -// Dynamic class macros -// ---------------------------------------------------------------------------- - -#define wxDECLARE_ABSTRACT_CLASS(name) \ - public: \ - static wxClassInfo ms_classInfo; \ - wxCLANG_WARNING_SUPPRESS(inconsistent-missing-override) \ - virtual wxClassInfo *GetClassInfo() const \ - wxCLANG_WARNING_RESTORE(inconsistent-missing-override) - -#define wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(name) \ - wxDECLARE_NO_ASSIGN_CLASS(name); \ - wxDECLARE_DYNAMIC_CLASS(name) - -#define wxDECLARE_DYNAMIC_CLASS_NO_COPY(name) \ - wxDECLARE_NO_COPY_CLASS(name); \ - wxDECLARE_DYNAMIC_CLASS(name) - -#define wxDECLARE_DYNAMIC_CLASS(name) \ - wxDECLARE_ABSTRACT_CLASS(name); \ - static wxObject* wxCreateObject() - -#define wxDECLARE_CLASS(name) \ - wxDECLARE_ABSTRACT_CLASS(name) - - -// common part of the macros below -#define wxIMPLEMENT_CLASS_COMMON(name, basename, baseclsinfo2, func) \ - wxClassInfo name::ms_classInfo(wxT(#name), \ - &basename::ms_classInfo, \ - baseclsinfo2, \ - (int) sizeof(name), \ - func); \ - \ - wxClassInfo *name::GetClassInfo() const \ - { return &name::ms_classInfo; } - -#define wxIMPLEMENT_CLASS_COMMON1(name, basename, func) \ - wxIMPLEMENT_CLASS_COMMON(name, basename, NULL, func) - -#define wxIMPLEMENT_CLASS_COMMON2(name, basename1, basename2, func) \ - wxIMPLEMENT_CLASS_COMMON(name, basename1, &basename2::ms_classInfo, func) - -// ----------------------------------- -// for concrete classes -// ----------------------------------- - - // Single inheritance with one base class -#define wxIMPLEMENT_DYNAMIC_CLASS(name, basename) \ - wxIMPLEMENT_CLASS_COMMON1(name, basename, name::wxCreateObject) \ - wxObject* name::wxCreateObject() \ - { return new name; } - - // Multiple inheritance with two base classes -#define wxIMPLEMENT_DYNAMIC_CLASS2(name, basename1, basename2) \ - wxIMPLEMENT_CLASS_COMMON2(name, basename1, basename2, \ - name::wxCreateObject) \ - wxObject* name::wxCreateObject() \ - { return new name; } - -// ----------------------------------- -// for abstract classes -// ----------------------------------- - - // Single inheritance with one base class -#define wxIMPLEMENT_ABSTRACT_CLASS(name, basename) \ - wxIMPLEMENT_CLASS_COMMON1(name, basename, NULL) - - // Multiple inheritance with two base classes -#define wxIMPLEMENT_ABSTRACT_CLASS2(name, basename1, basename2) \ - wxIMPLEMENT_CLASS_COMMON2(name, basename1, basename2, NULL) - -// ----------------------------------- -// XTI-compatible macros -// ----------------------------------- - -#include "wx/flags.h" - -// these macros only do something when wxUSE_EXTENDED_RTTI=1 -// (and in that case they are defined by xti.h); however to avoid -// to be forced to wrap these macros (in user's source files) with -// -// #if wxUSE_EXTENDED_RTTI -// ... -// #endif -// -// blocks, we define them here as empty. - -#define wxEMPTY_PARAMETER_VALUE /**/ - -#define wxBEGIN_ENUM( e ) wxEMPTY_PARAMETER_VALUE -#define wxENUM_MEMBER( v ) wxEMPTY_PARAMETER_VALUE -#define wxEND_ENUM( e ) wxEMPTY_PARAMETER_VALUE - -#define wxIMPLEMENT_SET_STREAMING(SetName,e) wxEMPTY_PARAMETER_VALUE - -#define wxBEGIN_FLAGS( e ) wxEMPTY_PARAMETER_VALUE -#define wxFLAGS_MEMBER( v ) wxEMPTY_PARAMETER_VALUE -#define wxEND_FLAGS( e ) wxEMPTY_PARAMETER_VALUE - -#define wxCOLLECTION_TYPE_INFO( element, collection ) wxEMPTY_PARAMETER_VALUE - -#define wxHANDLER(name,eventClassType) wxEMPTY_PARAMETER_VALUE -#define wxBEGIN_HANDLERS_TABLE(theClass) wxEMPTY_PARAMETER_VALUE -#define wxEND_HANDLERS_TABLE() wxEMPTY_PARAMETER_VALUE - -#define wxIMPLEMENT_DYNAMIC_CLASS_XTI( name, basename, unit ) \ - wxIMPLEMENT_DYNAMIC_CLASS( name, basename ) -#define wxIMPLEMENT_DYNAMIC_CLASS_XTI_CALLBACK( name, basename, unit, callback ) \ - wxIMPLEMENT_DYNAMIC_CLASS( name, basename ) - -#define wxIMPLEMENT_DYNAMIC_CLASS_WITH_COPY_XTI( name, basename, unit ) \ - wxIMPLEMENT_DYNAMIC_CLASS( name, basename) - -#define wxIMPLEMENT_DYNAMIC_CLASS_WITH_COPY_AND_STREAMERS_XTI( name, basename, \ - unit, toString, \ - fromString ) wxEMPTY_PARAMETER_VALUE -#define wxIMPLEMENT_DYNAMIC_CLASS_NO_WXOBJECT_NO_BASE_XTI( name, unit ) wxEMPTY_PARAMETER_VALUE -#define wxIMPLEMENT_DYNAMIC_CLASS_NO_WXOBJECT_XTI( name, basename, unit ) wxEMPTY_PARAMETER_VALUE - -#define wxIMPLEMENT_DYNAMIC_CLASS2_XTI( name, basename, basename2, unit) wxIMPLEMENT_DYNAMIC_CLASS2( name, basename, basename2 ) - -#define wxCONSTRUCTOR_0(klass) \ - wxEMPTY_PARAMETER_VALUE -#define wxCONSTRUCTOR_DUMMY(klass) \ - wxEMPTY_PARAMETER_VALUE -#define wxDIRECT_CONSTRUCTOR_0(klass) \ - wxEMPTY_PARAMETER_VALUE -#define wxCONSTRUCTOR_1(klass,t0,v0) \ - wxEMPTY_PARAMETER_VALUE -#define wxDIRECT_CONSTRUCTOR_1(klass,t0,v0) \ - wxEMPTY_PARAMETER_VALUE -#define wxCONSTRUCTOR_2(klass,t0,v0,t1,v1) \ - wxEMPTY_PARAMETER_VALUE -#define wxDIRECT_CONSTRUCTOR_2(klass,t0,v0,t1,v1) \ - wxEMPTY_PARAMETER_VALUE -#define wxCONSTRUCTOR_3(klass,t0,v0,t1,v1,t2,v2) \ - wxEMPTY_PARAMETER_VALUE -#define wxDIRECT_CONSTRUCTOR_3(klass,t0,v0,t1,v1,t2,v2) \ - wxEMPTY_PARAMETER_VALUE -#define wxCONSTRUCTOR_4(klass,t0,v0,t1,v1,t2,v2,t3,v3) \ - wxEMPTY_PARAMETER_VALUE -#define wxDIRECT_CONSTRUCTOR_4(klass,t0,v0,t1,v1,t2,v2,t3,v3) \ - wxEMPTY_PARAMETER_VALUE -#define wxCONSTRUCTOR_5(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4) \ - wxEMPTY_PARAMETER_VALUE -#define wxDIRECT_CONSTRUCTOR_5(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4) \ - wxEMPTY_PARAMETER_VALUE -#define wxCONSTRUCTOR_6(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5) \ - wxEMPTY_PARAMETER_VALUE -#define wxDIRECT_CONSTRUCTOR_6(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5) \ - wxEMPTY_PARAMETER_VALUE -#define wxCONSTRUCTOR_7(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6) \ - wxEMPTY_PARAMETER_VALUE -#define wxDIRECT_CONSTRUCTOR_7(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6) \ - wxEMPTY_PARAMETER_VALUE -#define wxCONSTRUCTOR_8(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6,t7,v7) \ - wxEMPTY_PARAMETER_VALUE -#define wxDIRECT_CONSTRUCTOR_8(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6,t7,v7) \ - wxEMPTY_PARAMETER_VALUE - -#define wxSETTER( property, Klass, valueType, setterMethod ) wxEMPTY_PARAMETER_VALUE -#define wxGETTER( property, Klass, valueType, gettermethod ) wxEMPTY_PARAMETER_VALUE -#define wxADDER( property, Klass, valueType, addermethod ) wxEMPTY_PARAMETER_VALUE -#define wxCOLLECTION_GETTER( property, Klass, valueType, gettermethod ) wxEMPTY_PARAMETER_VALUE - -#define wxBEGIN_PROPERTIES_TABLE(theClass) wxEMPTY_PARAMETER_VALUE -#define wxEND_PROPERTIES_TABLE() wxEMPTY_PARAMETER_VALUE -#define wxHIDE_PROPERTY( pname ) wxEMPTY_PARAMETER_VALUE - -#define wxPROPERTY( pname, type, setter, getter, defaultValue, flags, help, group) \ - wxEMPTY_PARAMETER_VALUE - -#define wxPROPERTY_FLAGS( pname, flags, type, setter, getter,defaultValue, \ - pflags, help, group) wxEMPTY_PARAMETER_VALUE - -#define wxREADONLY_PROPERTY( pname, type, getter,defaultValue, flags, help, group) \ - wxGETTER( pname, class_t, type, getter ) wxEMPTY_PARAMETER_VALUE - -#define wxREADONLY_PROPERTY_FLAGS( pname, flags, type, getter,defaultValue, \ - pflags, help, group) wxEMPTY_PARAMETER_VALUE - -#define wxPROPERTY_COLLECTION( pname, colltype, addelemtype, adder, getter, \ - flags, help, group ) wxEMPTY_PARAMETER_VALUE - -#define wxREADONLY_PROPERTY_COLLECTION( pname, colltype, addelemtype, getter, \ - flags, help, group) wxEMPTY_PARAMETER_VALUE -#define wxEVENT_PROPERTY( name, eventType, eventClass ) wxEMPTY_PARAMETER_VALUE - -#define wxEVENT_RANGE_PROPERTY( name, eventType, lastEventType, eventClass ) wxEMPTY_PARAMETER_VALUE - -#define wxIMPLEMENT_PROPERTY(name, type) wxEMPTY_PARAMETER_VALUE - -#define wxEMPTY_HANDLERS_TABLE(name) wxEMPTY_PARAMETER_VALUE - -#endif // !wxUSE_EXTENDED_RTTI -#endif // _WX_RTTIH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sashwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sashwin.h deleted file mode 100644 index 21967a5c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sashwin.h +++ /dev/null @@ -1,17 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/sashwin.h -// Purpose: Base header for wxSashWindow -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SASHWIN_H_BASE_ -#define _WX_SASHWIN_H_BASE_ - -#include "wx/generic/sashwin.h" - -#endif - // _WX_SASHWIN_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sckaddr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sckaddr.h deleted file mode 100644 index 5a568c3a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sckaddr.h +++ /dev/null @@ -1,218 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/sckaddr.h -// Purpose: Network address classes -// Author: Guilhem Lavaux -// Modified by: Vadim Zeitlin to switch to wxSockAddressImpl implementation -// Created: 26/04/1997 -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// (c) 2008, 2009 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SCKADDR_H_ -#define _WX_SCKADDR_H_ - -#include "wx/defs.h" - -#if wxUSE_SOCKETS - -#include "wx/string.h" - -class wxSockAddressImpl; - -// forward declare it instead of including the system headers defining it which -// can bring in <windows.h> under Windows which we don't want to include from -// public wx headers -struct sockaddr; - -// Any socket address kind -class WXDLLIMPEXP_NET wxSockAddress : public wxObject -{ -public: - enum Family - { - NONE, - IPV4, - IPV6, - UNIX - }; - - wxSockAddress(); - wxSockAddress(const wxSockAddress& other); - virtual ~wxSockAddress(); - - wxSockAddress& operator=(const wxSockAddress& other); - - virtual void Clear(); - virtual Family Type() = 0; - - // accessors for the low level address represented by this object - const sockaddr *GetAddressData() const; - int GetAddressDataLen() const; - - // we need to be able to create copies of the addresses polymorphically - // (i.e. without knowing the exact address class) - virtual wxSockAddress *Clone() const = 0; - - - // implementation only, don't use - const wxSockAddressImpl& GetAddress() const { return *m_impl; } - void SetAddress(const wxSockAddressImpl& address); - -protected: - wxSockAddressImpl *m_impl; - -private: - void Init(); - wxDECLARE_ABSTRACT_CLASS(wxSockAddress); -}; - -// An IP address (either IPv4 or IPv6) -class WXDLLIMPEXP_NET wxIPaddress : public wxSockAddress -{ -public: - wxIPaddress() : wxSockAddress() { } - wxIPaddress(const wxIPaddress& other) - : wxSockAddress(other), - m_origHostname(other.m_origHostname) - { - } - - bool operator==(const wxIPaddress& addr) const; - - bool Hostname(const wxString& name); - bool Service(const wxString& name); - bool Service(unsigned short port); - - bool LocalHost(); - virtual bool IsLocalHost() const = 0; - - bool AnyAddress(); - - virtual wxString IPAddress() const = 0; - - wxString Hostname() const; - unsigned short Service() const; - - wxString OrigHostname() const { return m_origHostname; } - -protected: - // get m_impl initialized to the right family if it hadn't been done yet - wxSockAddressImpl& GetImpl(); - const wxSockAddressImpl& GetImpl() const - { - return const_cast<wxIPaddress *>(this)->GetImpl(); - } - - // host name originally passed to Hostname() - wxString m_origHostname; - -private: - // create the wxSockAddressImpl object of the correct family if it's - // currently uninitialized - virtual void DoInitImpl() = 0; - - - wxDECLARE_ABSTRACT_CLASS(wxIPaddress); -}; - -// An IPv4 address -class WXDLLIMPEXP_NET wxIPV4address : public wxIPaddress -{ -public: - wxIPV4address() : wxIPaddress() { } - wxIPV4address(const wxIPV4address& other) : wxIPaddress(other) { } - - // implement wxSockAddress pure virtuals: - virtual Family Type() wxOVERRIDE { return IPV4; } - virtual wxSockAddress *Clone() const wxOVERRIDE { return new wxIPV4address(*this); } - - - // implement wxIPaddress pure virtuals: - virtual bool IsLocalHost() const wxOVERRIDE; - - virtual wxString IPAddress() const wxOVERRIDE; - - - // IPv4-specific methods: - bool Hostname(unsigned long addr); - - // make base class methods hidden by our overload visible - using wxIPaddress::Hostname; - - bool BroadcastAddress(); - -private: - virtual void DoInitImpl() wxOVERRIDE; - - wxDECLARE_DYNAMIC_CLASS(wxIPV4address); -}; - - -#if wxUSE_IPV6 - -// An IPv6 address -class WXDLLIMPEXP_NET wxIPV6address : public wxIPaddress -{ -public: - wxIPV6address() : wxIPaddress() { } - wxIPV6address(const wxIPV6address& other) : wxIPaddress(other) { } - - // implement wxSockAddress pure virtuals: - virtual Family Type() { return IPV6; } - virtual wxSockAddress *Clone() const { return new wxIPV6address(*this); } - - - // implement wxIPaddress pure virtuals: - virtual bool IsLocalHost() const; - - virtual wxString IPAddress() const; - - // IPv6-specific methods: - bool Hostname(unsigned char addr[16]); - - using wxIPaddress::Hostname; - -private: - virtual void DoInitImpl(); - - wxDECLARE_DYNAMIC_CLASS(wxIPV6address); -}; - -#endif // wxUSE_IPV6 - -// Unix domain sockets are only available under, well, Unix -#if defined(__UNIX__) && !defined(__WINDOWS__) && !defined(__WINE__) - #define wxHAS_UNIX_DOMAIN_SOCKETS -#endif - -#ifdef wxHAS_UNIX_DOMAIN_SOCKETS - -// A Unix domain socket address -class WXDLLIMPEXP_NET wxUNIXaddress : public wxSockAddress -{ -public: - wxUNIXaddress() : wxSockAddress() { } - wxUNIXaddress(const wxUNIXaddress& other) : wxSockAddress(other) { } - - void Filename(const wxString& name); - wxString Filename() const; - - virtual Family Type() wxOVERRIDE { return UNIX; } - virtual wxSockAddress *Clone() const wxOVERRIDE { return new wxUNIXaddress(*this); } - -private: - wxSockAddressImpl& GetUNIX(); - const wxSockAddressImpl& GetUNIX() const - { - return const_cast<wxUNIXaddress *>(this)->GetUNIX(); - } - - wxDECLARE_DYNAMIC_CLASS(wxUNIXaddress); -}; - -#endif // wxHAS_UNIX_DOMAIN_SOCKETS - -#endif // wxUSE_SOCKETS - -#endif // _WX_SCKADDR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sckipc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sckipc.h deleted file mode 100644 index 7d1e2c32..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sckipc.h +++ /dev/null @@ -1,159 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/sckipc.h -// Purpose: Interprocess communication implementation (wxSocket version) -// Author: Julian Smart -// Modified by: Guilhem Lavaux (big rewrite) May 1997, 1998 -// Guillermo Rodriguez (updated for wxSocket v2) Jan 2000 -// (callbacks deprecated) Mar 2000 -// Created: 1993 -// Copyright: (c) Julian Smart 1993 -// (c) Guilhem Lavaux 1997, 1998 -// (c) 2000 Guillermo Rodriguez <guille@iies.es> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SCKIPC_H -#define _WX_SCKIPC_H - -#include "wx/defs.h" - -#if wxUSE_SOCKETS && wxUSE_IPC - -#include "wx/ipcbase.h" -#include "wx/socket.h" -#include "wx/sckstrm.h" -#include "wx/datstrm.h" - -/* - * Mini-DDE implementation - - Most transactions involve a topic name and an item name (choose these - as befits your application). - - A client can: - - - ask the server to execute commands (data) associated with a topic - - request data from server by topic and item - - poke data into the server - - ask the server to start an advice loop on topic/item - - ask the server to stop an advice loop - - A server can: - - - respond to execute, request, poke and advice start/stop - - send advise data to client - - Note that this limits the server in the ways it can send data to the - client, i.e. it can't send unsolicited information. - * - */ - -class WXDLLIMPEXP_FWD_NET wxTCPServer; -class WXDLLIMPEXP_FWD_NET wxTCPClient; - -class wxIPCSocketStreams; - -class WXDLLIMPEXP_NET wxTCPConnection : public wxConnectionBase -{ -public: - wxTCPConnection() { Init(); } - wxTCPConnection(void *buffer, size_t size) - : wxConnectionBase(buffer, size) - { - Init(); - } - - virtual ~wxTCPConnection(); - - // implement base class pure virtual methods - virtual const void *Request(const wxString& item, - size_t *size = NULL, - wxIPCFormat format = wxIPC_TEXT) wxOVERRIDE; - virtual bool StartAdvise(const wxString& item) wxOVERRIDE; - virtual bool StopAdvise(const wxString& item) wxOVERRIDE; - virtual bool Disconnect(void) wxOVERRIDE; - - // Will be used in the future to enable the compression but does nothing - // for now. - void Compress(bool on); - - -protected: - virtual bool DoExecute(const void *data, size_t size, wxIPCFormat format) wxOVERRIDE; - virtual bool DoPoke(const wxString& item, const void *data, size_t size, - wxIPCFormat format) wxOVERRIDE; - virtual bool DoAdvise(const wxString& item, const void *data, size_t size, - wxIPCFormat format) wxOVERRIDE; - - - // notice that all the members below are only initialized once the - // connection is made, i.e. in MakeConnection() for the client objects and - // after OnAcceptConnection() in the server ones - - // the underlying socket (wxSocketClient for IPC client and wxSocketServer - // for IPC server) - wxSocketBase *m_sock; - - // various streams that we use - wxIPCSocketStreams *m_streams; - - // the topic of this connection - wxString m_topic; - -private: - // common part of both ctors - void Init(); - - friend class wxTCPServer; - friend class wxTCPClient; - friend class wxTCPEventHandler; - - wxDECLARE_NO_COPY_CLASS(wxTCPConnection); - wxDECLARE_DYNAMIC_CLASS(wxTCPConnection); -}; - -class WXDLLIMPEXP_NET wxTCPServer : public wxServerBase -{ -public: - wxTCPServer(); - virtual ~wxTCPServer(); - - // Returns false on error (e.g. port number is already in use) - virtual bool Create(const wxString& serverName) wxOVERRIDE; - - virtual wxConnectionBase *OnAcceptConnection(const wxString& topic) wxOVERRIDE; - -protected: - wxSocketServer *m_server; - -#ifdef __UNIX_LIKE__ - // the name of the file associated to the Unix domain socket, may be empty - wxString m_filename; -#endif // __UNIX_LIKE__ - - wxDECLARE_NO_COPY_CLASS(wxTCPServer); - wxDECLARE_DYNAMIC_CLASS(wxTCPServer); -}; - -class WXDLLIMPEXP_NET wxTCPClient : public wxClientBase -{ -public: - wxTCPClient(); - - virtual bool ValidHost(const wxString& host) wxOVERRIDE; - - // Call this to make a connection. Returns NULL if cannot. - virtual wxConnectionBase *MakeConnection(const wxString& host, - const wxString& server, - const wxString& topic) wxOVERRIDE; - - // Callbacks to CLIENT - override at will - virtual wxConnectionBase *OnMakeConnection() wxOVERRIDE; - -private: - wxDECLARE_DYNAMIC_CLASS(wxTCPClient); -}; - -#endif // wxUSE_SOCKETS && wxUSE_IPC - -#endif // _WX_SCKIPC_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sckstrm.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sckstrm.h deleted file mode 100644 index f90a2fee..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sckstrm.h +++ /dev/null @@ -1,74 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/sckstrm.h -// Purpose: wxSocket*Stream -// Author: Guilhem Lavaux -// Modified by: -// Created: 17/07/97 -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// -#ifndef __SCK_STREAM_H__ -#define __SCK_STREAM_H__ - -#include "wx/stream.h" - -#if wxUSE_SOCKETS && wxUSE_STREAMS - -#include "wx/socket.h" - -class WXDLLIMPEXP_NET wxSocketOutputStream : public wxOutputStream -{ -public: - wxSocketOutputStream(wxSocketBase& s); - virtual ~wxSocketOutputStream(); - -protected: - wxSocketBase *m_o_socket; - - size_t OnSysWrite(const void *buffer, size_t bufsize) wxOVERRIDE; - - // socket streams are both un-seekable and size-less streams: - wxFileOffset OnSysTell() const wxOVERRIDE - { return wxInvalidOffset; } - wxFileOffset OnSysSeek(wxFileOffset WXUNUSED(pos), wxSeekMode WXUNUSED(mode)) wxOVERRIDE - { return wxInvalidOffset; } - - wxDECLARE_NO_COPY_CLASS(wxSocketOutputStream); -}; - -class WXDLLIMPEXP_NET wxSocketInputStream : public wxInputStream -{ -public: - wxSocketInputStream(wxSocketBase& s); - virtual ~wxSocketInputStream(); - -protected: - wxSocketBase *m_i_socket; - - size_t OnSysRead(void *buffer, size_t bufsize) wxOVERRIDE; - - // socket streams are both un-seekable and size-less streams: - - wxFileOffset OnSysTell() const wxOVERRIDE - { return wxInvalidOffset; } - wxFileOffset OnSysSeek(wxFileOffset WXUNUSED(pos), wxSeekMode WXUNUSED(mode)) wxOVERRIDE - { return wxInvalidOffset; } - - wxDECLARE_NO_COPY_CLASS(wxSocketInputStream); -}; - -class WXDLLIMPEXP_NET wxSocketStream : public wxSocketInputStream, - public wxSocketOutputStream -{ -public: - wxSocketStream(wxSocketBase& s); - virtual ~wxSocketStream(); - - wxDECLARE_NO_COPY_CLASS(wxSocketStream); -}; - -#endif - // wxUSE_SOCKETS && wxUSE_STREAMS - -#endif - // __SCK_STREAM_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scopedarray.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scopedarray.h deleted file mode 100644 index 2f80911f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scopedarray.h +++ /dev/null @@ -1,120 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/scopedarray.h -// Purpose: scoped smart pointer class -// Author: Vadim Zeitlin -// Created: 2009-02-03 -// Copyright: (c) Jesse Lovelace and original Boost authors (see below) -// (c) 2009 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SCOPED_ARRAY_H_ -#define _WX_SCOPED_ARRAY_H_ - -#include "wx/defs.h" -#include "wx/checkeddelete.h" - -// ---------------------------------------------------------------------------- -// wxScopedArray: A scoped array -// ---------------------------------------------------------------------------- - -template <class T> -class wxScopedArray -{ -public: - typedef T element_type; - - wxEXPLICIT wxScopedArray(T * array = NULL) : m_array(array) { } - wxEXPLICIT wxScopedArray(size_t count) : m_array(new T[count]) { } - - ~wxScopedArray() { delete [] m_array; } - - // test for pointer validity: defining conversion to unspecified_bool_type - // and not more obvious bool to avoid implicit conversions to integer types - typedef T *(wxScopedArray<T>::*unspecified_bool_type)() const; - operator unspecified_bool_type() const - { - return m_array ? &wxScopedArray<T>::get : NULL; - } - - void reset(T *array = NULL) - { - if ( array != m_array ) - { - delete [] m_array; - m_array = array; - } - } - - T& operator[](size_t n) const { return m_array[n]; } - - T *get() const { return m_array; } - - void swap(wxScopedArray &other) - { - T * const tmp = other.m_array; - other.m_array = m_array; - m_array = tmp; - } - -private: - T *m_array; - - wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxScopedArray, T); -}; - -// ---------------------------------------------------------------------------- -// old macro based implementation -// ---------------------------------------------------------------------------- - -// the same but for arrays instead of simple pointers -#define wxDECLARE_SCOPED_ARRAY(T, name)\ -class name \ -{ \ -private: \ - T * m_ptr; \ - name(name const &); \ - name & operator=(name const &); \ - \ -public: \ - wxEXPLICIT name(T * p = NULL) : m_ptr(p) \ - {} \ - \ - ~name(); \ - void reset(T * p = NULL); \ - \ - T & operator[](long int i) const\ - { \ - wxASSERT(m_ptr != NULL); \ - wxASSERT(i >= 0); \ - return m_ptr[i]; \ - } \ - \ - T * get() const \ - { \ - return m_ptr; \ - } \ - \ - void swap(name & ot) \ - { \ - T * tmp = ot.m_ptr; \ - ot.m_ptr = m_ptr; \ - m_ptr = tmp; \ - } \ -}; - -#define wxDEFINE_SCOPED_ARRAY(T, name) \ -name::~name() \ -{ \ - wxCHECKED_DELETE_ARRAY(m_ptr); \ -} \ -void name::reset(T * p){ \ - if (m_ptr != p) \ - { \ - wxCHECKED_DELETE_ARRAY(m_ptr); \ - m_ptr = p; \ - } \ -} - -#endif // _WX_SCOPED_ARRAY_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scopedptr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scopedptr.h deleted file mode 100644 index 9cc8f396..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scopedptr.h +++ /dev/null @@ -1,214 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/scopedptr.h -// Purpose: scoped smart pointer class -// Author: Jesse Lovelace <jllovela@eos.ncsu.edu> -// Created: 06/01/02 -// Copyright: (c) Jesse Lovelace and original Boost authors (see below) -// (c) 2009 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// This class closely follows the implementation of the boost -// library scoped_ptr and is an adaption for c++ macro's in -// the wxWidgets project. The original authors of the boost -// scoped_ptr are given below with their respective copyrights. - -// (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. -// Copyright (c) 2001, 2002 Peter Dimov -// -// Permission to copy, use, modify, sell and distribute this software -// is granted provided this copyright notice appears in all copies. -// This software is provided "as is" without express or implied -// warranty, and with no claim as to its suitability for any purpose. -// -// See http://www.boost.org/libs/smart_ptr/scoped_ptr.htm for documentation. -// - -#ifndef _WX_SCOPED_PTR_H_ -#define _WX_SCOPED_PTR_H_ - -#include "wx/defs.h" -#include "wx/checkeddelete.h" - -// ---------------------------------------------------------------------------- -// wxScopedPtr: A scoped pointer -// ---------------------------------------------------------------------------- - -template <class T> -class wxScopedPtr -{ -public: - typedef T element_type; - - wxEXPLICIT wxScopedPtr(T * ptr = NULL) : m_ptr(ptr) { } - - ~wxScopedPtr() { wxCHECKED_DELETE(m_ptr); } - - // test for pointer validity: defining conversion to unspecified_bool_type - // and not more obvious bool to avoid implicit conversions to integer types -#ifdef __BORLANDC__ - // this compiler is too dumb to use unspecified_bool_type operator in tests - // of the form "if ( !ptr )" - typedef bool unspecified_bool_type; -#else - typedef T *(wxScopedPtr<T>::*unspecified_bool_type)() const; -#endif // __BORLANDC__ - operator unspecified_bool_type() const - { - return m_ptr ? &wxScopedPtr<T>::get : NULL; - } - - void reset(T * ptr = NULL) - { - if ( ptr != m_ptr ) - { - wxCHECKED_DELETE(m_ptr); - m_ptr = ptr; - } - } - - T *release() - { - T *ptr = m_ptr; - m_ptr = NULL; - return ptr; - } - - T & operator*() const - { - wxASSERT(m_ptr != NULL); - return *m_ptr; - } - - T * operator->() const - { - wxASSERT(m_ptr != NULL); - return m_ptr; - } - - T * get() const - { - return m_ptr; - } - - void swap(wxScopedPtr& other) - { - T * const tmp = other.m_ptr; - other.m_ptr = m_ptr; - m_ptr = tmp; - } - -private: - T * m_ptr; - - wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxScopedPtr, T); -}; - -// ---------------------------------------------------------------------------- -// old macro based implementation -// ---------------------------------------------------------------------------- - -/* The type being used *must* be complete at the time - that wxDEFINE_SCOPED_* is called or a compiler error will result. - This is because the class checks for the completeness of the type - being used. */ - -#define wxDECLARE_SCOPED_PTR(T, name) \ -class name \ -{ \ -private: \ - T * m_ptr; \ - \ - name(name const &); \ - name & operator=(name const &); \ - \ -public: \ - wxEXPLICIT name(T * ptr = NULL) \ - : m_ptr(ptr) { } \ - \ - ~name(); \ - \ - void reset(T * ptr = NULL); \ - \ - T *release() \ - { \ - T *ptr = m_ptr; \ - m_ptr = NULL; \ - return ptr; \ - } \ - \ - T & operator*() const \ - { \ - wxASSERT(m_ptr != NULL); \ - return *m_ptr; \ - } \ - \ - T * operator->() const \ - { \ - wxASSERT(m_ptr != NULL); \ - return m_ptr; \ - } \ - \ - T * get() const \ - { \ - return m_ptr; \ - } \ - \ - void swap(name & ot) \ - { \ - T * tmp = ot.m_ptr; \ - ot.m_ptr = m_ptr; \ - m_ptr = tmp; \ - } \ -}; - -#define wxDEFINE_SCOPED_PTR(T, name)\ -void name::reset(T * ptr) \ -{ \ - if (m_ptr != ptr) \ - { \ - wxCHECKED_DELETE(m_ptr); \ - m_ptr = ptr; \ - } \ -} \ -name::~name() \ -{ \ - wxCHECKED_DELETE(m_ptr); \ -} - -// this macro can be used for the most common case when you want to declare and -// define the scoped pointer at the same time and want to use the standard -// naming convention: auto pointer to Foo is called FooPtr -#define wxDEFINE_SCOPED_PTR_TYPE(T) \ - wxDECLARE_SCOPED_PTR(T, T ## Ptr) \ - wxDEFINE_SCOPED_PTR(T, T ## Ptr) - -// ---------------------------------------------------------------------------- -// "Tied" scoped pointer: same as normal one but also sets the value of -// some other variable to the pointer value -// ---------------------------------------------------------------------------- - -#define wxDEFINE_TIED_SCOPED_PTR_TYPE(T) \ - wxDEFINE_SCOPED_PTR_TYPE(T) \ - class T ## TiedPtr : public T ## Ptr \ - { \ - public: \ - T ## TiedPtr(T **pp, T *p) \ - : T ## Ptr(p), m_pp(pp) \ - { \ - m_pOld = *pp; \ - *pp = p; \ - } \ - \ - ~ T ## TiedPtr() \ - { \ - *m_pp = m_pOld; \ - } \ - \ - private: \ - T **m_pp; \ - T *m_pOld; \ - }; - -#endif // _WX_SCOPED_PTR_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scopeguard.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scopeguard.h deleted file mode 100644 index 6f6607dc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scopeguard.h +++ /dev/null @@ -1,524 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/scopeguard.h -// Purpose: declares wxwxScopeGuard and related macros -// Author: Vadim Zeitlin -// Modified by: -// Created: 03.07.2003 -// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -/* - Acknowledgements: this header is heavily based on (well, almost the exact - copy of) ScopeGuard.h by Andrei Alexandrescu and Petru Marginean published - in December 2000 issue of C/C++ Users Journal. - http://www.cuj.com/documents/cujcexp1812alexandr/ - */ - -#ifndef _WX_SCOPEGUARD_H_ -#define _WX_SCOPEGUARD_H_ - -#include "wx/defs.h" - -#include "wx/except.h" - -// ---------------------------------------------------------------------------- -// helpers -// ---------------------------------------------------------------------------- - -namespace wxPrivate -{ - // in the original implementation this was a member template function of - // ScopeGuardImplBase but gcc 2.8 which is still used for OS/2 doesn't - // support member templates and so we must make it global - template <class ScopeGuardImpl> - void OnScopeExit(ScopeGuardImpl& guard) - { - if ( !guard.WasDismissed() ) - { - // we're called from ScopeGuardImpl dtor and so we must not throw - wxTRY - { - guard.Execute(); - } - wxCATCH_ALL(;) // do nothing, just eat the exception - } - } - - // just to avoid the warning about unused variables - template <class T> - void Use(const T& WXUNUSED(t)) - { - } -} // namespace wxPrivate - -#define wxPrivateOnScopeExit(n) wxPrivate::OnScopeExit(n) -#define wxPrivateUse(n) wxPrivate::Use(n) - -// ============================================================================ -// wxScopeGuard for functions and functors -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxScopeGuardImplBase: used by wxScopeGuardImpl[0..N] below -// ---------------------------------------------------------------------------- - -class wxScopeGuardImplBase -{ -public: - wxScopeGuardImplBase() : m_wasDismissed(false) { } - - wxScopeGuardImplBase(const wxScopeGuardImplBase& other) - : m_wasDismissed(other.m_wasDismissed) - { - other.Dismiss(); - } - - void Dismiss() const { m_wasDismissed = true; } - - // for OnScopeExit() only (we can't make it friend, unfortunately)! - bool WasDismissed() const { return m_wasDismissed; } - -protected: - ~wxScopeGuardImplBase() { } - - // must be mutable for copy ctor to work - mutable bool m_wasDismissed; - -private: - wxScopeGuardImplBase& operator=(const wxScopeGuardImplBase&); -}; - -// wxScopeGuard is just a reference, see the explanation in CUJ article -typedef const wxScopeGuardImplBase& wxScopeGuard; - -// ---------------------------------------------------------------------------- -// wxScopeGuardImpl0: scope guard for actions without parameters -// ---------------------------------------------------------------------------- - -template <class F> -class wxScopeGuardImpl0 : public wxScopeGuardImplBase -{ -public: - static wxScopeGuardImpl0<F> MakeGuard(F fun) - { - return wxScopeGuardImpl0<F>(fun); - } - - ~wxScopeGuardImpl0() { wxPrivateOnScopeExit(*this); } - - void Execute() { m_fun(); } - -protected: - wxScopeGuardImpl0(F fun) : m_fun(fun) { } - - F m_fun; - - wxScopeGuardImpl0& operator=(const wxScopeGuardImpl0&); -}; - -template <class F> -inline wxScopeGuardImpl0<F> wxMakeGuard(F fun) -{ - return wxScopeGuardImpl0<F>::MakeGuard(fun); -} - -// ---------------------------------------------------------------------------- -// wxScopeGuardImpl1: scope guard for actions with 1 parameter -// ---------------------------------------------------------------------------- - -template <class F, class P1> -class wxScopeGuardImpl1 : public wxScopeGuardImplBase -{ -public: - static wxScopeGuardImpl1<F, P1> MakeGuard(F fun, P1 p1) - { - return wxScopeGuardImpl1<F, P1>(fun, p1); - } - - ~wxScopeGuardImpl1() { wxPrivateOnScopeExit(* this); } - - void Execute() { m_fun(m_p1); } - -protected: - wxScopeGuardImpl1(F fun, P1 p1) : m_fun(fun), m_p1(p1) { } - - F m_fun; - const P1 m_p1; - - wxScopeGuardImpl1& operator=(const wxScopeGuardImpl1&); -}; - -template <class F, class P1> -inline wxScopeGuardImpl1<F, P1> wxMakeGuard(F fun, P1 p1) -{ - return wxScopeGuardImpl1<F, P1>::MakeGuard(fun, p1); -} - -// ---------------------------------------------------------------------------- -// wxScopeGuardImpl2: scope guard for actions with 2 parameters -// ---------------------------------------------------------------------------- - -template <class F, class P1, class P2> -class wxScopeGuardImpl2 : public wxScopeGuardImplBase -{ -public: - static wxScopeGuardImpl2<F, P1, P2> MakeGuard(F fun, P1 p1, P2 p2) - { - return wxScopeGuardImpl2<F, P1, P2>(fun, p1, p2); - } - - ~wxScopeGuardImpl2() { wxPrivateOnScopeExit(*this); } - - void Execute() { m_fun(m_p1, m_p2); } - -protected: - wxScopeGuardImpl2(F fun, P1 p1, P2 p2) : m_fun(fun), m_p1(p1), m_p2(p2) { } - - F m_fun; - const P1 m_p1; - const P2 m_p2; - - wxScopeGuardImpl2& operator=(const wxScopeGuardImpl2&); -}; - -template <class F, class P1, class P2> -inline wxScopeGuardImpl2<F, P1, P2> wxMakeGuard(F fun, P1 p1, P2 p2) -{ - return wxScopeGuardImpl2<F, P1, P2>::MakeGuard(fun, p1, p2); -} - -// ---------------------------------------------------------------------------- -// wxScopeGuardImpl3: scope guard for actions with 3 parameters -// ---------------------------------------------------------------------------- - -template <class F, class P1, class P2, class P3> -class wxScopeGuardImpl3 : public wxScopeGuardImplBase -{ -public: - static wxScopeGuardImpl3<F, P1, P2, P3> MakeGuard(F fun, P1 p1, P2 p2, P3 p3) - { - return wxScopeGuardImpl3<F, P1, P2, P3>(fun, p1, p2, p3); - } - - ~wxScopeGuardImpl3() { wxPrivateOnScopeExit(*this); } - - void Execute() { m_fun(m_p1, m_p2, m_p3); } - -protected: - wxScopeGuardImpl3(F fun, P1 p1, P2 p2, P3 p3) - : m_fun(fun), m_p1(p1), m_p2(p2), m_p3(p3) { } - - F m_fun; - const P1 m_p1; - const P2 m_p2; - const P3 m_p3; - - wxScopeGuardImpl3& operator=(const wxScopeGuardImpl3&); -}; - -template <class F, class P1, class P2, class P3> -inline wxScopeGuardImpl3<F, P1, P2, P3> wxMakeGuard(F fun, P1 p1, P2 p2, P3 p3) -{ - return wxScopeGuardImpl3<F, P1, P2, P3>::MakeGuard(fun, p1, p2, p3); -} - -// ============================================================================ -// wxScopeGuards for object methods -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxObjScopeGuardImpl0 -// ---------------------------------------------------------------------------- - -template <class Obj, class MemFun> -class wxObjScopeGuardImpl0 : public wxScopeGuardImplBase -{ -public: - static wxObjScopeGuardImpl0<Obj, MemFun> - MakeObjGuard(Obj& obj, MemFun memFun) - { - return wxObjScopeGuardImpl0<Obj, MemFun>(obj, memFun); - } - - ~wxObjScopeGuardImpl0() { wxPrivateOnScopeExit(*this); } - - void Execute() { (m_obj.*m_memfun)(); } - -protected: - wxObjScopeGuardImpl0(Obj& obj, MemFun memFun) - : m_obj(obj), m_memfun(memFun) { } - - Obj& m_obj; - MemFun m_memfun; -}; - -template <class Obj, class MemFun> -inline wxObjScopeGuardImpl0<Obj, MemFun> wxMakeObjGuard(Obj& obj, MemFun memFun) -{ - return wxObjScopeGuardImpl0<Obj, MemFun>::MakeObjGuard(obj, memFun); -} - -template <class Obj, class MemFun, class P1> -class wxObjScopeGuardImpl1 : public wxScopeGuardImplBase -{ -public: - static wxObjScopeGuardImpl1<Obj, MemFun, P1> - MakeObjGuard(Obj& obj, MemFun memFun, P1 p1) - { - return wxObjScopeGuardImpl1<Obj, MemFun, P1>(obj, memFun, p1); - } - - ~wxObjScopeGuardImpl1() { wxPrivateOnScopeExit(*this); } - - void Execute() { (m_obj.*m_memfun)(m_p1); } - -protected: - wxObjScopeGuardImpl1(Obj& obj, MemFun memFun, P1 p1) - : m_obj(obj), m_memfun(memFun), m_p1(p1) { } - - Obj& m_obj; - MemFun m_memfun; - const P1 m_p1; -}; - -template <class Obj, class MemFun, class P1> -inline wxObjScopeGuardImpl1<Obj, MemFun, P1> -wxMakeObjGuard(Obj& obj, MemFun memFun, P1 p1) -{ - return wxObjScopeGuardImpl1<Obj, MemFun, P1>::MakeObjGuard(obj, memFun, p1); -} - -template <class Obj, class MemFun, class P1, class P2> -class wxObjScopeGuardImpl2 : public wxScopeGuardImplBase -{ -public: - static wxObjScopeGuardImpl2<Obj, MemFun, P1, P2> - MakeObjGuard(Obj& obj, MemFun memFun, P1 p1, P2 p2) - { - return wxObjScopeGuardImpl2<Obj, MemFun, P1, P2>(obj, memFun, p1, p2); - } - - ~wxObjScopeGuardImpl2() { wxPrivateOnScopeExit(*this); } - - void Execute() { (m_obj.*m_memfun)(m_p1, m_p2); } - -protected: - wxObjScopeGuardImpl2(Obj& obj, MemFun memFun, P1 p1, P2 p2) - : m_obj(obj), m_memfun(memFun), m_p1(p1), m_p2(p2) { } - - Obj& m_obj; - MemFun m_memfun; - const P1 m_p1; - const P2 m_p2; -}; - -template <class Obj, class MemFun, class P1, class P2> -inline wxObjScopeGuardImpl2<Obj, MemFun, P1, P2> -wxMakeObjGuard(Obj& obj, MemFun memFun, P1 p1, P2 p2) -{ - return wxObjScopeGuardImpl2<Obj, MemFun, P1, P2>:: - MakeObjGuard(obj, memFun, p1, p2); -} - -template <class Obj, class MemFun, class P1, class P2, class P3> -class wxObjScopeGuardImpl3 : public wxScopeGuardImplBase -{ -public: - static wxObjScopeGuardImpl3<Obj, MemFun, P1, P2, P3> - MakeObjGuard(Obj& obj, MemFun memFun, P1 p1, P2 p2, P3 p3) - { - return wxObjScopeGuardImpl3<Obj, MemFun, P1, P2, P3>(obj, memFun, p1, p2, p3); - } - - ~wxObjScopeGuardImpl3() { wxPrivateOnScopeExit(*this); } - - void Execute() { (m_obj.*m_memfun)(m_p1, m_p2, m_p3); } - -protected: - wxObjScopeGuardImpl3(Obj& obj, MemFun memFun, P1 p1, P2 p2, P3 p3) - : m_obj(obj), m_memfun(memFun), m_p1(p1), m_p2(p2), m_p3(p3) { } - - Obj& m_obj; - MemFun m_memfun; - const P1 m_p1; - const P2 m_p2; - const P3 m_p3; -}; - -template <class Obj, class MemFun, class P1, class P2, class P3> -inline wxObjScopeGuardImpl3<Obj, MemFun, P1, P2, P3> -wxMakeObjGuard(Obj& obj, MemFun memFun, P1 p1, P2 p2, P3 p3) -{ - return wxObjScopeGuardImpl3<Obj, MemFun, P1, P2, P3>:: - MakeObjGuard(obj, memFun, p1, p2, p3); -} - -// ---------------------------------------------------------------------------- -// wxVariableSetter: use the same technique as for wxScopeGuard to allow -// setting a variable to some value on block exit -// ---------------------------------------------------------------------------- - -namespace wxPrivate -{ - -// empty class just to be able to define a reference to it -class VariableSetterBase : public wxScopeGuardImplBase { }; - -typedef const VariableSetterBase& VariableSetter; - -template <typename T, typename U> -class VariableSetterImpl : public VariableSetterBase -{ -public: - VariableSetterImpl(T& var, U value) - : m_var(var), - m_value(value) - { - } - - ~VariableSetterImpl() { wxPrivateOnScopeExit(*this); } - - void Execute() { m_var = m_value; } - -private: - T& m_var; - const U m_value; - - // suppress the warning about assignment operator not being generated - VariableSetterImpl<T, U>& operator=(const VariableSetterImpl<T, U>&); -}; - -template <typename T> -class VariableNullerImpl : public VariableSetterBase -{ -public: - VariableNullerImpl(T& var) - : m_var(var) - { - } - - ~VariableNullerImpl() { wxPrivateOnScopeExit(*this); } - - void Execute() { m_var = NULL; } - -private: - T& m_var; - - VariableNullerImpl<T>& operator=(const VariableNullerImpl<T>&); -}; - -} // namespace wxPrivate - -template <typename T, typename U> -inline -wxPrivate::VariableSetterImpl<T, U> wxMakeVarSetter(T& var, U value) -{ - return wxPrivate::VariableSetterImpl<T, U>(var, value); -} - -// calling wxMakeVarSetter(ptr, NULL) doesn't work because U is deduced to be -// "int" and subsequent assignment of "U" to "T *" fails, so provide a special -// function for this special case -template <typename T> -inline -wxPrivate::VariableNullerImpl<T> wxMakeVarNuller(T& var) -{ - return wxPrivate::VariableNullerImpl<T>(var); -} - -// ============================================================================ -// macros for declaring unnamed scoped guards (which can't be dismissed) -// ============================================================================ - -// NB: the original code has a single (and much nicer) ON_BLOCK_EXIT macro -// but this results in compiler warnings about unused variables and I -// didn't find a way to work around this other than by having different -// macros with different names or using a less natural syntax for passing -// the arguments (e.g. as Boost preprocessor sequences, which would mean -// having to write wxON_BLOCK_EXIT(fwrite, (buf)(size)(n)(fp)) instead of -// wxON_BLOCK_EXIT4(fwrite, buf, size, n, fp)). - -#define wxGuardName wxMAKE_UNIQUE_NAME(wxScopeGuard) - -#define wxON_BLOCK_EXIT0_IMPL(n, f) \ - wxScopeGuard n = wxMakeGuard(f); \ - wxPrivateUse(n) -#define wxON_BLOCK_EXIT0(f) \ - wxON_BLOCK_EXIT0_IMPL(wxGuardName, f) - -#define wxON_BLOCK_EXIT_OBJ0_IMPL(n, o, m) \ - wxScopeGuard n = wxMakeObjGuard(o, m); \ - wxPrivateUse(n) -#define wxON_BLOCK_EXIT_OBJ0(o, m) \ - wxON_BLOCK_EXIT_OBJ0_IMPL(wxGuardName, o, &m) - -#define wxON_BLOCK_EXIT_THIS0(m) \ - wxON_BLOCK_EXIT_OBJ0(*this, m) - - -#define wxON_BLOCK_EXIT1_IMPL(n, f, p1) \ - wxScopeGuard n = wxMakeGuard(f, p1); \ - wxPrivateUse(n) -#define wxON_BLOCK_EXIT1(f, p1) \ - wxON_BLOCK_EXIT1_IMPL(wxGuardName, f, p1) - -#define wxON_BLOCK_EXIT_OBJ1_IMPL(n, o, m, p1) \ - wxScopeGuard n = wxMakeObjGuard(o, m, p1); \ - wxPrivateUse(n) -#define wxON_BLOCK_EXIT_OBJ1(o, m, p1) \ - wxON_BLOCK_EXIT_OBJ1_IMPL(wxGuardName, o, &m, p1) - -#define wxON_BLOCK_EXIT_THIS1(m, p1) \ - wxON_BLOCK_EXIT_OBJ1(*this, m, p1) - - -#define wxON_BLOCK_EXIT2_IMPL(n, f, p1, p2) \ - wxScopeGuard n = wxMakeGuard(f, p1, p2); \ - wxPrivateUse(n) -#define wxON_BLOCK_EXIT2(f, p1, p2) \ - wxON_BLOCK_EXIT2_IMPL(wxGuardName, f, p1, p2) - -#define wxON_BLOCK_EXIT_OBJ2_IMPL(n, o, m, p1, p2) \ - wxScopeGuard n = wxMakeObjGuard(o, m, p1, p2); \ - wxPrivateUse(n) -#define wxON_BLOCK_EXIT_OBJ2(o, m, p1, p2) \ - wxON_BLOCK_EXIT_OBJ2_IMPL(wxGuardName, o, &m, p1, p2) - -#define wxON_BLOCK_EXIT_THIS2(m, p1, p2) \ - wxON_BLOCK_EXIT_OBJ2(*this, m, p1, p2) - - -#define wxON_BLOCK_EXIT3_IMPL(n, f, p1, p2, p3) \ - wxScopeGuard n = wxMakeGuard(f, p1, p2, p3); \ - wxPrivateUse(n) -#define wxON_BLOCK_EXIT3(f, p1, p2, p3) \ - wxON_BLOCK_EXIT3_IMPL(wxGuardName, f, p1, p2, p3) - -#define wxON_BLOCK_EXIT_OBJ3_IMPL(n, o, m, p1, p2, p3) \ - wxScopeGuard n = wxMakeObjGuard(o, m, p1, p2, p3); \ - wxPrivateUse(n) -#define wxON_BLOCK_EXIT_OBJ3(o, m, p1, p2, p3) \ - wxON_BLOCK_EXIT_OBJ3_IMPL(wxGuardName, o, &m, p1, p2, p3) - -#define wxON_BLOCK_EXIT_THIS3(m, p1, p2, p3) \ - wxON_BLOCK_EXIT_OBJ3(*this, m, p1, p2, p3) - - -#define wxSetterName wxMAKE_UNIQUE_NAME(wxVarSetter) - -#define wxON_BLOCK_EXIT_SET_IMPL(n, var, value) \ - wxPrivate::VariableSetter n = wxMakeVarSetter(var, value); \ - wxPrivateUse(n) - -#define wxON_BLOCK_EXIT_SET(var, value) \ - wxON_BLOCK_EXIT_SET_IMPL(wxSetterName, var, value) - -#define wxON_BLOCK_EXIT_NULL_IMPL(n, var) \ - wxPrivate::VariableSetter n = wxMakeVarNuller(var); \ - wxPrivateUse(n) - -#define wxON_BLOCK_EXIT_NULL(ptr) \ - wxON_BLOCK_EXIT_NULL_IMPL(wxSetterName, ptr) - -#endif // _WX_SCOPEGUARD_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scrolbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scrolbar.h deleted file mode 100644 index 1352ae6c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scrolbar.h +++ /dev/null @@ -1,84 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/scrolbar.h -// Purpose: wxScrollBar base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SCROLBAR_H_BASE_ -#define _WX_SCROLBAR_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_SCROLLBAR - -#include "wx/control.h" - -extern WXDLLIMPEXP_DATA_CORE(const char) wxScrollBarNameStr[]; - -// ---------------------------------------------------------------------------- -// wxScrollBar: a scroll bar control -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxScrollBarBase : public wxControl -{ -public: - wxScrollBarBase() { } - - /* - Derived classes should provide the following method and ctor with the - same parameters: - - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr); - */ - - // accessors - virtual int GetThumbPosition() const = 0; - virtual int GetThumbSize() const = 0; - virtual int GetPageSize() const = 0; - virtual int GetRange() const = 0; - - bool IsVertical() const { return (m_windowStyle & wxVERTICAL) != 0; } - - // operations - virtual void SetThumbPosition(int viewStart) = 0; - virtual void SetScrollbar(int position, int thumbSize, - int range, int pageSize, - bool refresh = true) = 0; - - // implementation-only - bool IsNeeded() const { return GetRange() > GetThumbSize(); } - -private: - wxDECLARE_NO_COPY_CLASS(wxScrollBarBase); -}; - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/scrolbar.h" -#elif defined(__WXMSW__) - #include "wx/msw/scrolbar.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/scrolbar.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/scrolbar.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/scrolbar.h" -#elif defined(__WXMAC__) - #include "wx/osx/scrolbar.h" -#elif defined(__WXQT__) - #include "wx/qt/scrolbar.h" -#endif - -#endif // wxUSE_SCROLLBAR - -#endif - // _WX_SCROLBAR_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scrolwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scrolwin.h deleted file mode 100644 index e8f4ac83..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/scrolwin.h +++ /dev/null @@ -1,479 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/scrolwin.h -// Purpose: wxScrolledWindow, wxScrolledControl and wxScrollHelper -// Author: Vadim Zeitlin -// Modified by: -// Created: 30.08.00 -// Copyright: (c) 2000 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SCROLWIN_H_BASE_ -#define _WX_SCROLWIN_H_BASE_ - -#include "wx/panel.h" - -class WXDLLIMPEXP_FWD_CORE wxScrollHelperEvtHandler; -class WXDLLIMPEXP_FWD_BASE wxTimer; - -// default scrolled window style: scroll in both directions -#define wxScrolledWindowStyle (wxHSCROLL | wxVSCROLL) - -// values for the second argument of wxScrollHelper::ShowScrollbars() -enum wxScrollbarVisibility -{ - wxSHOW_SB_NEVER = -1, // never show the scrollbar at all - wxSHOW_SB_DEFAULT, // show scrollbar only if it is needed - wxSHOW_SB_ALWAYS // always show scrollbar, even if not needed -}; - -// ---------------------------------------------------------------------------- -// The hierarchy of scrolling classes is a bit complicated because we want to -// put as much functionality as possible in a mix-in class not deriving from -// wxWindow so that other classes could derive from the same base class on all -// platforms irrespectively of whether they are native controls (and hence -// don't use our scrolling) or not. -// -// So we have -// -// wxAnyScrollHelperBase -// | -// | -// \|/ -// wxScrollHelperBase -// | -// | -// \|/ -// wxWindow wxScrollHelper -// | \ / / -// | \ / / -// | _| |_ / -// | wxScrolledWindow / -// | / -// \|/ / -// wxControl / -// \ / -// \ / -// _| |_ -// wxScrolledControl -// -// ---------------------------------------------------------------------------- - -// This class allows reusing some of wxScrollHelperBase functionality in -// wxVarScrollHelperBase in wx/vscroll.h without duplicating its code. -class WXDLLIMPEXP_CORE wxAnyScrollHelperBase -{ -public: - wxEXPLICIT wxAnyScrollHelperBase(wxWindow* win); - virtual ~wxAnyScrollHelperBase() {} - - // Disable use of keyboard keys for scrolling. By default cursor movement - // keys (including Home, End, Page Up and Down) are used to scroll the - // window appropriately. If the derived class uses these keys for something - // else, e.g. changing the currently selected item, this function can be - // used to disable this behaviour as it's not only not necessary then but - // can actually be actively harmful if another object forwards a keyboard - // event corresponding to one of the above keys to us using - // ProcessWindowEvent() because the event will always be processed which - // can be undesirable. - void DisableKeyboardScrolling() { m_kbdScrollingEnabled = false; } - - // Override this function to draw the graphic (or just process EVT_PAINT) - virtual void OnDraw(wxDC& WXUNUSED(dc)) { } - - // change the DC origin according to the scroll position. - virtual void DoPrepareDC(wxDC& dc) = 0; - - // Simple accessor for the window that is really being scrolled. - wxWindow *GetTargetWindow() const { return m_targetWindow; } - - - // The methods called from the window event handlers. - void HandleOnChar(wxKeyEvent& event); - void HandleOnPaint(wxPaintEvent& event); - -protected: - // the window that receives the scroll events and the window to actually - // scroll, respectively - wxWindow *m_win, - *m_targetWindow; - - // whether cursor keys should scroll the window - bool m_kbdScrollingEnabled; -}; - -// This is the class containing the guts of (uniform) scrolling logic. -class WXDLLIMPEXP_CORE wxScrollHelperBase : public wxAnyScrollHelperBase -{ -public: - // ctor must be given the associated window - wxScrollHelperBase(wxWindow *winToScroll); - virtual ~wxScrollHelperBase(); - - // configure the scrolling - virtual void SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY, - int noUnitsX, int noUnitsY, - int xPos = 0, int yPos = 0, - bool noRefresh = false ); - - // scroll to the given (in logical coords) position - // - // notice that for backwards compatibility reasons Scroll() is virtual as - // the existing code could override it but new code should override - // DoScroll() instead - virtual void Scroll(int x, int y) { DoScroll(x, y); } - virtual void Scroll(const wxPoint& pt) { DoScroll(pt.x, pt.y); } - - // get/set the page size for this orientation (wxVERTICAL/wxHORIZONTAL) - int GetScrollPageSize(int orient) const; - void SetScrollPageSize(int orient, int pageSize); - - // get the number of lines the window can scroll, - // returns 0 if no scrollbars are there. - int GetScrollLines( int orient ) const; - - // Set the x, y scrolling increments. - void SetScrollRate( int xstep, int ystep ); - - // get the size of one logical unit in physical ones - void GetScrollPixelsPerUnit(int *pixelsPerUnitX, int *pixelsPerUnitY) const; - - // Set scrollbar visibility: it is possible to show scrollbar only if it is - // needed (i.e. if our virtual size is greater than the current size of the - // associated window), always (as wxALWAYS_SHOW_SB style does) or never (in - // which case you should provide some other way to scroll the window as the - // user wouldn't be able to do it at all) - void ShowScrollbars(wxScrollbarVisibility horz, wxScrollbarVisibility vert) - { - DoShowScrollbars(horz, vert); - } - - // Test whether the specified scrollbar is shown. - virtual bool IsScrollbarShown(int orient) const = 0; - - // Enable/disable Windows scrolling in either direction. If true, wxWidgets - // scrolls the canvas and only a bit of the canvas is invalidated; no - // Clear() is necessary. If false, the whole canvas is invalidated and a - // Clear() is necessary. Disable for when the scroll increment is used to - // actually scroll a non-constant distance - // - // Notice that calling this method with a false argument doesn't disable - // scrolling the window in this direction, it just changes the mechanism by - // which it is implemented to not use wxWindow::ScrollWindow(). - virtual void EnableScrolling(bool x_scrolling, bool y_scrolling); - - // Get the view start - void GetViewStart(int *x, int *y) const { DoGetViewStart(x, y); } - - wxPoint GetViewStart() const - { - wxPoint pt; - DoGetViewStart(&pt.x, &pt.y); - return pt; - } - - // Set the scale factor, used in PrepareDC - void SetScale(double xs, double ys) { m_scaleX = xs; m_scaleY = ys; } - double GetScaleX() const { return m_scaleX; } - double GetScaleY() const { return m_scaleY; } - - // translate between scrolled and unscrolled coordinates - void CalcScrolledPosition(int x, int y, int *xx, int *yy) const - { DoCalcScrolledPosition(x, y, xx, yy); } - wxPoint CalcScrolledPosition(const wxPoint& pt) const - { - wxPoint p2; - DoCalcScrolledPosition(pt.x, pt.y, &p2.x, &p2.y); - return p2; - } - - void CalcUnscrolledPosition(int x, int y, int *xx, int *yy) const - { DoCalcUnscrolledPosition(x, y, xx, yy); } - wxPoint CalcUnscrolledPosition(const wxPoint& pt) const - { - wxPoint p2; - DoCalcUnscrolledPosition(pt.x, pt.y, &p2.x, &p2.y); - return p2; - } - - void DoCalcScrolledPosition(int x, int y, int *xx, int *yy) const; - void DoCalcUnscrolledPosition(int x, int y, int *xx, int *yy) const; - - // Adjust the scrollbars - virtual void AdjustScrollbars() = 0; - - // Calculate scroll increment - int CalcScrollInc(wxScrollWinEvent& event); - - // Normally the wxScrolledWindow will scroll itself, but in some rare - // occasions you might want it to scroll [part of] another window (e.g. a - // child of it in order to scroll only a portion the area between the - // scrollbars (spreadsheet: only cell area will move). - void SetTargetWindow(wxWindow *target); - - void SetTargetRect(const wxRect& rect) { m_rectToScroll = rect; } - wxRect GetTargetRect() const { return m_rectToScroll; } - - virtual void DoPrepareDC(wxDC& dc) wxOVERRIDE; - - // are we generating the autoscroll events? - bool IsAutoScrolling() const { return m_timerAutoScroll != NULL; } - - // stop generating the scroll events when mouse is held outside the window - void StopAutoScrolling(); - - // this method can be overridden in a derived class to forbid sending the - // auto scroll events - note that unlike StopAutoScrolling() it doesn't - // stop the timer, so it will be called repeatedly and will typically - // return different values depending on the current mouse position - // - // the base class version just returns true - virtual bool SendAutoScrollEvents(wxScrollWinEvent& event) const; - - // the methods to be called from the window event handlers - void HandleOnScroll(wxScrollWinEvent& event); - void HandleOnSize(wxSizeEvent& event); - void HandleOnMouseEnter(wxMouseEvent& event); - void HandleOnMouseLeave(wxMouseEvent& event); -#if wxUSE_MOUSEWHEEL - void HandleOnMouseWheel(wxMouseEvent& event); -#endif // wxUSE_MOUSEWHEEL - void HandleOnChildFocus(wxChildFocusEvent& event); - -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED( - void OnScroll(wxScrollWinEvent& event) { HandleOnScroll(event); } - ) -#endif // WXWIN_COMPATIBILITY_2_8 - -protected: - // get pointer to our scroll rect if we use it or NULL - const wxRect *GetScrollRect() const - { - return m_rectToScroll.width != 0 ? &m_rectToScroll : NULL; - } - - // get the size of the target window - wxSize GetTargetSize() const - { - return m_rectToScroll.width != 0 ? m_rectToScroll.GetSize() - : m_targetWindow->GetClientSize(); - } - - void GetTargetSize(int *w, int *h) const - { - wxSize size = GetTargetSize(); - if ( w ) - *w = size.x; - if ( h ) - *h = size.y; - } - - // implementation of public methods with the same name - virtual void DoGetViewStart(int *x, int *y) const; - virtual void DoScroll(int x, int y) = 0; - virtual void DoShowScrollbars(wxScrollbarVisibility horz, - wxScrollbarVisibility vert) = 0; - - // implementations of various wxWindow virtual methods which should be - // forwarded to us (this can be done by WX_FORWARD_TO_SCROLL_HELPER()) - bool ScrollLayout(); - void ScrollDoSetVirtualSize(int x, int y); - wxSize ScrollGetBestVirtualSize() const; - - // change just the target window (unlike SetWindow which changes m_win as - // well) - void DoSetTargetWindow(wxWindow *target); - - // delete the event handler we installed - void DeleteEvtHandler(); - - // this function should be overridden to return the size available for - // m_targetWindow inside m_win of the given size - // - // the default implementation is only good for m_targetWindow == m_win - // case, if we're scrolling a subwindow you must override this method - virtual wxSize GetSizeAvailableForScrollTarget(const wxSize& size) - { - // returning just size from here is wrong but it was decided that it is - // not wrong enough to break the existing code (which doesn't override - // this recently added function at all) by adding this assert - // - // wxASSERT_MSG( m_targetWindow == m_win, "must be overridden" ); - - return size; - } - - - double m_scaleX; - double m_scaleY; - - wxRect m_rectToScroll; - - wxTimer *m_timerAutoScroll; - - // The number of pixels to scroll in horizontal and vertical directions - // respectively. - // - // If 0, means that the scrolling in the given direction is disabled. - int m_xScrollPixelsPerLine; - int m_yScrollPixelsPerLine; - int m_xScrollPosition; - int m_yScrollPosition; - int m_xScrollLines; - int m_yScrollLines; - int m_xScrollLinesPerPage; - int m_yScrollLinesPerPage; - - bool m_xScrollingEnabled; - bool m_yScrollingEnabled; - -#if wxUSE_MOUSEWHEEL - int m_wheelRotation; -#endif // wxUSE_MOUSEWHEEL - - wxScrollHelperEvtHandler *m_handler; - - wxDECLARE_NO_COPY_CLASS(wxScrollHelperBase); -}; - -// this macro can be used in a wxScrollHelper-derived class to forward wxWindow -// methods to corresponding wxScrollHelper methods -#define WX_FORWARD_TO_SCROLL_HELPER() \ -public: \ - virtual void PrepareDC(wxDC& dc) wxOVERRIDE { DoPrepareDC(dc); } \ - virtual bool Layout() wxOVERRIDE { return ScrollLayout(); } \ - virtual bool CanScroll(int orient) const wxOVERRIDE \ - { return IsScrollbarShown(orient); } \ - virtual void DoSetVirtualSize(int x, int y) wxOVERRIDE \ - { ScrollDoSetVirtualSize(x, y); } \ - virtual wxSize GetBestVirtualSize() const wxOVERRIDE \ - { return ScrollGetBestVirtualSize(); } - -// include the declaration of the real wxScrollHelper -#if defined(__WXGTK20__) && !defined(__WXUNIVERSAL__) - #include "wx/gtk/scrolwin.h" -#elif defined(__WXGTK__) && !defined(__WXUNIVERSAL__) - #include "wx/gtk1/scrolwin.h" -#else - #define wxHAS_GENERIC_SCROLLWIN - #include "wx/generic/scrolwin.h" -#endif - -// ---------------------------------------------------------------------------- -// wxScrolled<T>: a wxWindow which knows how to scroll -// ---------------------------------------------------------------------------- - -// helper class for wxScrolled<T> below -struct WXDLLIMPEXP_CORE wxScrolledT_Helper -{ - static wxSize FilterBestSize(const wxWindow *win, - const wxScrollHelper *helper, - const wxSize& origBest); -#ifdef __WXMSW__ - static WXLRESULT FilterMSWWindowProc(WXUINT nMsg, WXLRESULT origResult); -#endif -}; - -// Scrollable window base on window type T. This used to be wxScrolledWindow, -// but wxScrolledWindow includes wxControlContainer functionality and that's -// not always desirable. -template<class T> -class wxScrolled : public T, - public wxScrollHelper, - private wxScrolledT_Helper -{ -public: - wxScrolled() : wxScrollHelper(this) { } - wxScrolled(wxWindow *parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxScrolledWindowStyle, - const wxString& name = wxPanelNameStr) - : wxScrollHelper(this) - { - Create(parent, winid, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID winid, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxScrolledWindowStyle, - const wxString& name = wxPanelNameStr) - { - m_targetWindow = this; - -#ifdef __WXMAC__ - this->MacSetClipChildren(true); -#endif - - // by default, we're scrollable in both directions (but if one of the - // styles is specified explicitly, we shouldn't add the other one - // automatically) - if ( !(style & (wxHSCROLL | wxVSCROLL)) ) - style |= wxHSCROLL | wxVSCROLL; - -#ifdef __WXOSX__ - bool retval = T::Create(parent, winid, pos, size, style, name); - if ( retval && (style & wxALWAYS_SHOW_SB) ) - ShowScrollbars(wxSHOW_SB_ALWAYS, wxSHOW_SB_ALWAYS); - return retval; -#else - if ( style & wxALWAYS_SHOW_SB ) - ShowScrollbars(wxSHOW_SB_ALWAYS, wxSHOW_SB_ALWAYS); - - return T::Create(parent, winid, pos, size, style, name); -#endif - } - -#ifdef __WXMSW__ - // we need to return a special WM_GETDLGCODE value to process just the - // arrows but let the other navigation characters through - virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) - { - return FilterMSWWindowProc(nMsg, T::MSWWindowProc(nMsg, wParam, lParam)); - } - - // Take into account the scroll origin. - virtual void MSWAdjustBrushOrg(int* xOrg, int* yOrg) const - { - CalcUnscrolledPosition(*xOrg, *yOrg, xOrg, yOrg); - } -#endif // __WXMSW__ - - WX_FORWARD_TO_SCROLL_HELPER() - -protected: - virtual wxSize DoGetBestSize() const wxOVERRIDE - { - return FilterBestSize(this, this, T::DoGetBestSize()); - } - -private: - wxDECLARE_NO_COPY_CLASS(wxScrolled); -}; - -// for compatibility with existing code, we provide wxScrolledWindow -// "typedef" for wxScrolled<wxPanel>. It's not a real typedef because we -// want wxScrolledWindow to show in wxRTTI information (the class is widely -// used and likelihood of its wxRTTI information being used too is high): -class WXDLLIMPEXP_CORE wxScrolledWindow : public wxScrolled<wxPanel> -{ -public: - wxScrolledWindow() : wxScrolled<wxPanel>() {} - wxScrolledWindow(wxWindow *parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxScrolledWindowStyle, - const wxString& name = wxPanelNameStr) - : wxScrolled<wxPanel>(parent, winid, pos, size, style, name) {} - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxScrolledWindow); -}; - -typedef wxScrolled<wxWindow> wxScrolledCanvas; - -#endif // _WX_SCROLWIN_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/selstore.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/selstore.h deleted file mode 100644 index 2cf420dc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/selstore.h +++ /dev/null @@ -1,124 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/selstore.h -// Purpose: wxSelectionStore stores selected items in a control -// Author: Vadim Zeitlin -// Modified by: -// Created: 08.06.03 (extracted from src/generic/listctrl.cpp) -// Copyright: (c) 2000-2003 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SELSTORE_H_ -#define _WX_SELSTORE_H_ - -#include "wx/dynarray.h" - -// ---------------------------------------------------------------------------- -// wxSelectedIndices is just a sorted array of indices -// ---------------------------------------------------------------------------- - -inline int CMPFUNC_CONV wxUIntCmp(unsigned n1, unsigned n2) -{ - return (int)(n1 - n2); -} - -WX_DEFINE_SORTED_EXPORTED_ARRAY_CMP_INT(unsigned, wxUIntCmp, wxSelectedIndices); - -// ---------------------------------------------------------------------------- -// wxSelectionStore is used to store the selected items in the virtual -// controls, i.e. it is well suited for storing even when the control contains -// a huge (practically infinite) number of items. -// -// Of course, internally it still has to store the selected items somehow (as -// an array currently) but the advantage is that it can handle the selection -// of all items (common operation) efficiently and that it could be made even -// smarter in the future (e.g. store the selections as an array of ranges + -// individual items) without changing its API. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSelectionStore -{ -public: - wxSelectionStore() : m_itemsSel(wxUIntCmp) { Init(); } - - // set the total number of items we handle - void SetItemCount(unsigned count); - - // special case of SetItemCount(0) - void Clear() { m_itemsSel.Clear(); m_count = 0; m_defaultState = false; } - - // must be called when new items are inserted/added - void OnItemsInserted(unsigned item, unsigned numItems); - - // must be called when an items is deleted - void OnItemDelete(unsigned item); - - // more efficient version for notifying the selection about deleting - // several items at once, return true if any of them were selected - bool OnItemsDeleted(unsigned item, unsigned numItems); - - // select one item, use SelectRange() insted if possible! - // - // returns true if the items selection really changed - bool SelectItem(unsigned item, bool select = true); - - // select the range of items (inclusive) - // - // return true and fill the itemsChanged array with the indices of items - // which have changed state if "few" of them did, otherwise return false - // (meaning that too many items changed state to bother counting them - // individually) - bool SelectRange(unsigned itemFrom, unsigned itemTo, - bool select = true, - wxArrayInt *itemsChanged = NULL); - - // return true if the given item is selected - bool IsSelected(unsigned item) const; - - // return true if no items are currently selected - bool IsEmpty() const - { - return m_defaultState ? m_itemsSel.size() == m_count - : m_itemsSel.empty(); - } - - // return the total number of selected items - unsigned GetSelectedCount() const - { - return m_defaultState ? m_count - m_itemsSel.GetCount() - : m_itemsSel.GetCount(); - } - - // type of a "cookie" used to preserve the iteration state, this is an - // opaque type, don't rely on its current representation - typedef size_t IterationState; - - // constant representing absence of selection and hence end of iteration - static const unsigned NO_SELECTION; - - // get the first selected item in index order, return NO_SELECTION if none - unsigned GetFirstSelectedItem(IterationState& cookie) const; - - // get the next selected item, return NO_SELECTION if no more - unsigned GetNextSelectedItem(IterationState& cookie) const; - -private: - // (re)init - void Init() { m_count = 0; m_defaultState = false; } - - // the total number of items we handle - unsigned m_count; - - // the default state: normally, false (i.e. off) but maybe set to true if - // there are more selected items than non selected ones - this allows to - // handle selection of all items efficiently - bool m_defaultState; - - // the array of items whose selection state is different from default - wxSelectedIndices m_itemsSel; - - wxDECLARE_NO_COPY_CLASS(wxSelectionStore); -}; - -#endif // _WX_SELSTORE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/settings.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/settings.h deleted file mode 100644 index f90ae071..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/settings.h +++ /dev/null @@ -1,221 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/settings.h -// Purpose: wxSystemSettings class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SETTINGS_H_BASE_ -#define _WX_SETTINGS_H_BASE_ - -#include "wx/colour.h" -#include "wx/font.h" - -class WXDLLIMPEXP_FWD_CORE wxWindow; - -// possible values for wxSystemSettings::GetFont() parameter -// -// NB: wxMSW assumes that they have the same values as the parameters of -// Windows GetStockObject() API, don't change the values! -enum wxSystemFont -{ - wxSYS_OEM_FIXED_FONT = 10, - wxSYS_ANSI_FIXED_FONT, - wxSYS_ANSI_VAR_FONT, - wxSYS_SYSTEM_FONT, - wxSYS_DEVICE_DEFAULT_FONT, - - // don't use: this is here just to make the values of enum elements - // coincide with the corresponding MSW constants - wxSYS_DEFAULT_PALETTE, - - // don't use: MSDN says that this is a stock object provided only - // for compatibility with 16-bit Windows versions earlier than 3.0! - wxSYS_SYSTEM_FIXED_FONT, - - wxSYS_DEFAULT_GUI_FONT, - - // this was just a temporary aberration, do not use it any more - wxSYS_ICONTITLE_FONT = wxSYS_DEFAULT_GUI_FONT -}; - -// possible values for wxSystemSettings::GetColour() parameter -// -// NB: wxMSW assumes that they have the same values as the parameters of -// Windows GetSysColor() API, don't change the values! -enum wxSystemColour -{ - wxSYS_COLOUR_SCROLLBAR, - wxSYS_COLOUR_DESKTOP, - wxSYS_COLOUR_ACTIVECAPTION, - wxSYS_COLOUR_INACTIVECAPTION, - wxSYS_COLOUR_MENU, - wxSYS_COLOUR_WINDOW, - wxSYS_COLOUR_WINDOWFRAME, - wxSYS_COLOUR_MENUTEXT, - wxSYS_COLOUR_WINDOWTEXT, - wxSYS_COLOUR_CAPTIONTEXT, - wxSYS_COLOUR_ACTIVEBORDER, - wxSYS_COLOUR_INACTIVEBORDER, - wxSYS_COLOUR_APPWORKSPACE, - wxSYS_COLOUR_HIGHLIGHT, - wxSYS_COLOUR_HIGHLIGHTTEXT, - wxSYS_COLOUR_BTNFACE, - wxSYS_COLOUR_BTNSHADOW, - wxSYS_COLOUR_GRAYTEXT, - wxSYS_COLOUR_BTNTEXT, - wxSYS_COLOUR_INACTIVECAPTIONTEXT, - wxSYS_COLOUR_BTNHIGHLIGHT, - wxSYS_COLOUR_3DDKSHADOW, - wxSYS_COLOUR_3DLIGHT, - wxSYS_COLOUR_INFOTEXT, - wxSYS_COLOUR_INFOBK, - wxSYS_COLOUR_LISTBOX, - wxSYS_COLOUR_HOTLIGHT, - wxSYS_COLOUR_GRADIENTACTIVECAPTION, - wxSYS_COLOUR_GRADIENTINACTIVECAPTION, - wxSYS_COLOUR_MENUHILIGHT, - wxSYS_COLOUR_MENUBAR, - wxSYS_COLOUR_LISTBOXTEXT, - wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT, - - wxSYS_COLOUR_MAX, - - // synonyms - wxSYS_COLOUR_BACKGROUND = wxSYS_COLOUR_DESKTOP, - wxSYS_COLOUR_3DFACE = wxSYS_COLOUR_BTNFACE, - wxSYS_COLOUR_3DSHADOW = wxSYS_COLOUR_BTNSHADOW, - wxSYS_COLOUR_BTNHILIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, - wxSYS_COLOUR_3DHIGHLIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, - wxSYS_COLOUR_3DHILIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, - wxSYS_COLOUR_FRAMEBK = wxSYS_COLOUR_BTNFACE -}; - -// possible values for wxSystemSettings::GetMetric() index parameter -// -// NB: update the conversion table in msw/settings.cpp if you change the values -// of the elements of this enum -enum wxSystemMetric -{ - wxSYS_MOUSE_BUTTONS = 1, - wxSYS_BORDER_X, - wxSYS_BORDER_Y, - wxSYS_CURSOR_X, - wxSYS_CURSOR_Y, - wxSYS_DCLICK_X, - wxSYS_DCLICK_Y, - wxSYS_DRAG_X, - wxSYS_DRAG_Y, - wxSYS_EDGE_X, - wxSYS_EDGE_Y, - wxSYS_HSCROLL_ARROW_X, - wxSYS_HSCROLL_ARROW_Y, - wxSYS_HTHUMB_X, - wxSYS_ICON_X, - wxSYS_ICON_Y, - wxSYS_ICONSPACING_X, - wxSYS_ICONSPACING_Y, - wxSYS_WINDOWMIN_X, - wxSYS_WINDOWMIN_Y, - wxSYS_SCREEN_X, - wxSYS_SCREEN_Y, - wxSYS_FRAMESIZE_X, - wxSYS_FRAMESIZE_Y, - wxSYS_SMALLICON_X, - wxSYS_SMALLICON_Y, - wxSYS_HSCROLL_Y, - wxSYS_VSCROLL_X, - wxSYS_VSCROLL_ARROW_X, - wxSYS_VSCROLL_ARROW_Y, - wxSYS_VTHUMB_Y, - wxSYS_CAPTION_Y, - wxSYS_MENU_Y, - wxSYS_NETWORK_PRESENT, - wxSYS_PENWINDOWS_PRESENT, - wxSYS_SHOW_SOUNDS, - wxSYS_SWAP_BUTTONS, - wxSYS_DCLICK_MSEC -}; - -// possible values for wxSystemSettings::HasFeature() parameter -enum wxSystemFeature -{ - wxSYS_CAN_DRAW_FRAME_DECORATIONS = 1, - wxSYS_CAN_ICONIZE_FRAME, - wxSYS_TABLET_PRESENT -}; - -// values for different screen designs -enum wxSystemScreenType -{ - wxSYS_SCREEN_NONE = 0, // not yet defined - - wxSYS_SCREEN_TINY, // < - wxSYS_SCREEN_PDA, // >= 320x240 - wxSYS_SCREEN_SMALL, // >= 640x480 - wxSYS_SCREEN_DESKTOP // >= 800x600 -}; - -// ---------------------------------------------------------------------------- -// wxSystemSettingsNative: defines the API for wxSystemSettings class -// ---------------------------------------------------------------------------- - -// this is a namespace rather than a class: it has only non virtual static -// functions -// -// also note that the methods are implemented in the platform-specific source -// files (i.e. this is not a real base class as we can't override its virtual -// functions because it doesn't have any) - -class WXDLLIMPEXP_CORE wxSystemSettingsNative -{ -public: - // get a standard system colour - static wxColour GetColour(wxSystemColour index); - - // get a standard system font - static wxFont GetFont(wxSystemFont index); - - // get a system-dependent metric - static int GetMetric(wxSystemMetric index, wxWindow * win = NULL); - - // return true if the port has certain feature - static bool HasFeature(wxSystemFeature index); -}; - -// ---------------------------------------------------------------------------- -// include the declaration of the real platform-dependent class -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSystemSettings : public wxSystemSettingsNative -{ -public: -#ifdef __WXUNIVERSAL__ - // in wxUniversal we want to use the theme standard colours instead of the - // system ones, otherwise wxSystemSettings is just the same as - // wxSystemSettingsNative - static wxColour GetColour(wxSystemColour index); - - // some metrics are toolkit-dependent and provided by wxUniv, some are - // lowlevel - static int GetMetric(wxSystemMetric index, wxWindow *win = NULL); -#endif // __WXUNIVERSAL__ - - // Get system screen design (desktop, pda, ..) used for - // laying out various dialogs. - static wxSystemScreenType GetScreenType(); - - // Override default. - static void SetScreenType( wxSystemScreenType screen ); - - // Value - static wxSystemScreenType ms_screen; - -}; - -#endif - // _WX_SETTINGS_H_BASE_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/setup_inc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/setup_inc.h deleted file mode 100644 index 4b404fbe..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/setup_inc.h +++ /dev/null @@ -1,1490 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/setup_inc.h -// Purpose: setup.h settings -// Author: Vadim Zeitlin -// Modified by: -// Created: -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ---------------------------------------------------------------------------- -// global settings -// ---------------------------------------------------------------------------- - -// define this to 0 when building wxBase library - this can also be done from -// makefile/project file overriding the value here -#ifndef wxUSE_GUI - #define wxUSE_GUI 1 -#endif // wxUSE_GUI - -// ---------------------------------------------------------------------------- -// compatibility settings -// ---------------------------------------------------------------------------- - -// This setting determines the compatibility with 2.8 API: set it to 0 to -// flag all cases of using deprecated functions. -// -// Default is 1 but please try building your code with 0 as the default will -// change to 0 in the next version and the deprecated functions will disappear -// in the version after it completely. -// -// Recommended setting: 0 (please update your code) -#define WXWIN_COMPATIBILITY_2_8 0 - -// This setting determines the compatibility with 3.0 API: set it to 0 to -// flag all cases of using deprecated functions. -// -// Default is 1 but please try building your code with 0 as the default will -// change to 0 in the next version and the deprecated functions will disappear -// in the version after it completely. -// -// Recommended setting: 0 (please update your code) -#define WXWIN_COMPATIBILITY_3_0 1 - -// MSW-only: Set to 0 for accurate dialog units, else 1 for old behaviour when -// default system font is used for wxWindow::GetCharWidth/Height() instead of -// the current font. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxDIALOG_UNIT_COMPATIBILITY 0 - -// ---------------------------------------------------------------------------- -// debugging settings -// ---------------------------------------------------------------------------- - -// wxDEBUG_LEVEL will be defined as 1 in wx/debug.h so normally there is no -// need to define it here. You may do it for two reasons: either completely -// disable/compile out the asserts in release version (then do it inside #ifdef -// NDEBUG) or, on the contrary, enable more asserts, including the usually -// disabled ones, in the debug build (then do it inside #ifndef NDEBUG) -// -// #ifdef NDEBUG -// #define wxDEBUG_LEVEL 0 -// #else -// #define wxDEBUG_LEVEL 2 -// #endif - -// wxHandleFatalExceptions() may be used to catch the program faults at run -// time and, instead of terminating the program with a usual GPF message box, -// call the user-defined wxApp::OnFatalException() function. If you set -// wxUSE_ON_FATAL_EXCEPTION to 0, wxHandleFatalExceptions() will not work. -// -// This setting is for Win32 only and can only be enabled if your compiler -// supports Win32 structured exception handling (currently only VC++ does) -// -// Default is 1 -// -// Recommended setting: 1 if your compiler supports it. -#define wxUSE_ON_FATAL_EXCEPTION 1 - -// Set this to 1 to be able to generate a human-readable (unlike -// machine-readable minidump created by wxCrashReport::Generate()) stack back -// trace when your program crashes using wxStackWalker -// -// Default is 1 if supported by the compiler. -// -// Recommended setting: 1, set to 0 if your programs never crash -#define wxUSE_STACKWALKER 1 - -// Set this to 1 to compile in wxDebugReport class which allows you to create -// and optionally upload to your web site a debug report consisting of back -// trace of the crash (if wxUSE_STACKWALKER == 1) and other information. -// -// Default is 1 if supported by the compiler. -// -// Recommended setting: 1, it is compiled into a separate library so there -// is no overhead if you don't use it -#define wxUSE_DEBUGREPORT 1 - -// Generic comment about debugging settings: they are very useful if you don't -// use any other memory leak detection tools such as Purify/BoundsChecker, but -// are probably redundant otherwise. Also, Visual C++ CRT has the same features -// as wxWidgets memory debugging subsystem built in since version 5.0 and you -// may prefer to use it instead of built in memory debugging code because it is -// faster and more fool proof. -// -// Using VC++ CRT memory debugging is enabled by default in debug build (_DEBUG -// is defined) if wxUSE_GLOBAL_MEMORY_OPERATORS is *not* enabled (i.e. is 0) -// and if __NO_VC_CRTDBG__ is not defined. - -// The rest of the options in this section are obsolete and not supported, -// enable them at your own risk. - -// If 1, enables wxDebugContext, for writing error messages to file, etc. If -// __WXDEBUG__ is not defined, will still use the normal memory operators. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_DEBUG_CONTEXT 0 - -// If 1, enables debugging versions of wxObject::new and wxObject::delete *IF* -// __WXDEBUG__ is also defined. -// -// WARNING: this code may not work with all architectures, especially if -// alignment is an issue. This switch is currently ignored for mingw / cygwin -// -// Default is 0 -// -// Recommended setting: 1 if you are not using a memory debugging tool, else 0 -#define wxUSE_MEMORY_TRACING 0 - -// In debug mode, cause new and delete to be redefined globally. -// If this causes problems (e.g. link errors which is a common problem -// especially if you use another library which also redefines the global new -// and delete), set this to 0. -// This switch is currently ignored for mingw / cygwin -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_GLOBAL_MEMORY_OPERATORS 0 - -// In debug mode, causes new to be defined to be WXDEBUG_NEW (see object.h). If -// this causes problems (e.g. link errors), set this to 0. You may need to set -// this to 0 if using templates (at least for VC++). This switch is currently -// ignored for MinGW/Cygwin. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_DEBUG_NEW_ALWAYS 0 - - -// ---------------------------------------------------------------------------- -// Unicode support -// ---------------------------------------------------------------------------- - -// These settings are obsolete: the library is always built in Unicode mode -// now, only set wxUSE_UNICODE to 0 to compile legacy code in ANSI mode if -// absolutely necessary -- updating it is strongly recommended as the ANSI mode -// will disappear completely in future wxWidgets releases. -#ifndef wxUSE_UNICODE - #define wxUSE_UNICODE 1 -#endif - -// wxUSE_WCHAR_T is required by wxWidgets now, don't change. -#define wxUSE_WCHAR_T 1 - -// ---------------------------------------------------------------------------- -// global features -// ---------------------------------------------------------------------------- - -// Compile library in exception-safe mode? If set to 1, the library will try to -// behave correctly in presence of exceptions (even though it still will not -// use the exceptions itself) and notify the user code about any unhandled -// exceptions. If set to 0, propagation of the exceptions through the library -// code will lead to undefined behaviour -- but the code itself will be -// slightly smaller and faster. -// -// Note that like wxUSE_THREADS this option is automatically set to 0 if -// wxNO_EXCEPTIONS is defined. -// -// Default is 1 -// -// Recommended setting: depends on whether you intend to use C++ exceptions -// in your own code (1 if you do, 0 if you don't) -#define wxUSE_EXCEPTIONS 1 - -// Set wxUSE_EXTENDED_RTTI to 1 to use extended RTTI -// -// Default is 0 -// -// Recommended setting: 0 (this is still work in progress...) -#define wxUSE_EXTENDED_RTTI 0 - -// Support for message/error logging. This includes wxLogXXX() functions and -// wxLog and derived classes. Don't set this to 0 unless you really know what -// you are doing. -// -// Default is 1 -// -// Recommended setting: 1 (always) -#define wxUSE_LOG 1 - -// Recommended setting: 1 -#define wxUSE_LOGWINDOW 1 - -// Recommended setting: 1 -#define wxUSE_LOGGUI 1 - -// Recommended setting: 1 -#define wxUSE_LOG_DIALOG 1 - -// Support for command line parsing using wxCmdLineParser class. -// -// Default is 1 -// -// Recommended setting: 1 (can be set to 0 if you don't use the cmd line) -#define wxUSE_CMDLINE_PARSER 1 - -// Support for multithreaded applications: if 1, compile in thread classes -// (thread.h) and make the library a bit more thread safe. Although thread -// support is quite stable by now, you may still consider recompiling the -// library without it if you have no use for it - this will result in a -// somewhat smaller and faster operation. -// -// Notice that if wxNO_THREADS is defined, wxUSE_THREADS is automatically reset -// to 0 in wx/chkconf.h, so, for example, if you set USE_THREADS to 0 in -// build/msw/config.* file this value will have no effect. -// -// Default is 1 -// -// Recommended setting: 0 unless you do plan to develop MT applications -#define wxUSE_THREADS 1 - -// If enabled, compiles wxWidgets streams classes -// -// wx stream classes are used for image IO, process IO redirection, network -// protocols implementation and much more and so disabling this results in a -// lot of other functionality being lost. -// -// Default is 1 -// -// Recommended setting: 1 as setting it to 0 disables many other things -#define wxUSE_STREAMS 1 - -// Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf. -// Note that if the system's implementation does not support positional -// parameters, setting this to 1 forces the use of the wxWidgets implementation -// of wxVsnprintf. The standard vsnprintf() supports positional parameters on -// many Unix systems but usually doesn't under Windows. -// -// Positional parameters are very useful when translating a program since using -// them in formatting strings allow translators to correctly reorder the -// translated sentences. -// -// Default is 1 -// -// Recommended setting: 1 if you want to support multiple languages -#define wxUSE_PRINTF_POS_PARAMS 1 - -// Enable the use of compiler-specific thread local storage keyword, if any. -// This is used for wxTLS_XXX() macros implementation and normally should use -// the compiler-provided support as it's simpler and more efficient, but is -// disabled under Windows in wx/msw/chkconf.h as it can't be used if wxWidgets -// is used in a dynamically loaded Win32 DLL (i.e. using LoadLibrary()) under -// XP as this triggers a bug in compiler TLS support that results in crashes -// when any TLS variables are used. -// -// If you're absolutely sure that your build of wxWidgets is never going to be -// used in such situation, either because it's not going to be linked from any -// kind of plugin or because you only target Vista or later systems, you can -// set this to 2 to force the use of compiler TLS even under MSW. -// -// Default is 1 meaning that compiler TLS is used only if it's 100% safe. -// -// Recommended setting: 2 if you want to have maximal performance and don't -// care about the scenario described above. -#define wxUSE_COMPILER_TLS 1 - -// ---------------------------------------------------------------------------- -// Interoperability with the standard library. -// ---------------------------------------------------------------------------- - -// Set wxUSE_STL to 1 to enable maximal interoperability with the standard -// library, even at the cost of backwards compatibility. -// -// Default is 0 -// -// Recommended setting: 0 as the options below already provide a relatively -// good level of interoperability and changing this option arguably isn't worth -// diverging from the official builds of the library. -#define wxUSE_STL 0 - -// This is not a real option but is used as the default value for -// wxUSE_STD_IOSTREAM, wxUSE_STD_STRING and wxUSE_STD_CONTAINERS_COMPATIBLY. -// -// Set it to 0 if you want to disable the use of all standard classes -// completely for some reason. -#define wxUSE_STD_DEFAULT 1 - -// Use standard C++ containers where it can be done without breaking backwards -// compatibility. -// -// This provides better interoperability with the standard library, e.g. with -// this option on it's possible to insert std::vector<> into many wxWidgets -// containers directly. -// -// Default is 1. -// -// Recommended setting is 1 unless you want to avoid all dependencies on the -// standard library. -#define wxUSE_STD_CONTAINERS_COMPATIBLY wxUSE_STD_DEFAULT - -// Use standard C++ containers to implement wxVector<>, wxStack<>, wxDList<> -// and wxHashXXX<> classes. If disabled, wxWidgets own (mostly compatible but -// usually more limited) implementations are used which allows to avoid the -// dependency on the C++ run-time library. -// -// Default is 0 for compatibility reasons. -// -// Recommended setting: 1 unless compatibility with the official wxWidgets -// build and/or the existing code is a concern. -#define wxUSE_STD_CONTAINERS 0 - -// Use standard C++ streams if 1 instead of wx streams in some places. If -// disabled, wx streams are used everywhere and wxWidgets doesn't depend on the -// standard streams library. -// -// Notice that enabling this does not replace wx streams with std streams -// everywhere, in a lot of places wx streams are used no matter what. -// -// Default is 1 if compiler supports it. -// -// Recommended setting: 1 if you use the standard streams anyhow and so -// dependency on the standard streams library is not a -// problem -#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT - -// Enable minimal interoperability with the standard C++ string class if 1. -// "Minimal" means that wxString can be constructed from std::string or -// std::wstring but can't be implicitly converted to them. You need to enable -// the option below for the latter. -// -// Default is 1 for most compilers. -// -// Recommended setting: 1 unless you want to ensure your program doesn't use -// the standard C++ library at all. -#define wxUSE_STD_STRING wxUSE_STD_DEFAULT - -// Make wxString as much interchangeable with std::[w]string as possible, in -// particular allow implicit conversion of wxString to either of these classes. -// This comes at a price (or a benefit, depending on your point of view) of not -// allowing implicit conversion to "const char *" and "const wchar_t *". -// -// Because a lot of existing code relies on these conversions, this option is -// disabled by default but can be enabled for your build if you don't care -// about compatibility. -// -// Default is 0 if wxUSE_STL has its default value or 1 if it is enabled. -// -// Recommended setting: 0 to remain compatible with the official builds of -// wxWidgets. -#define wxUSE_STD_STRING_CONV_IN_WXSTRING wxUSE_STL - -// VC++ 4.2 and above allows <iostream> and <iostream.h> but you can't mix -// them. Set this option to 1 to use <iostream.h>, 0 to use <iostream>. -// -// Note that newer compilers (including VC++ 7.1 and later) don't support -// wxUSE_IOSTREAMH == 1 and so <iostream> will be used anyhow. -// -// Default is 0. -// -// Recommended setting: 0, only set to 1 if you use a really old compiler -#define wxUSE_IOSTREAMH 0 - - -// ---------------------------------------------------------------------------- -// non GUI features selection -// ---------------------------------------------------------------------------- - -// Set wxUSE_LONGLONG to 1 to compile the wxLongLong class. This is a 64 bit -// integer which is implemented in terms of native 64 bit integers if any or -// uses emulation otherwise. -// -// This class is required by wxDateTime and so you should enable it if you want -// to use wxDateTime. For most modern platforms, it will use the native 64 bit -// integers in which case (almost) all of its functions are inline and it -// almost does not take any space, so there should be no reason to switch it -// off. -// -// Recommended setting: 1 -#define wxUSE_LONGLONG 1 - -// Set wxUSE_BASE64 to 1, to compile in Base64 support. This is required for -// storing binary data in wxConfig on most platforms. -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely disabled if you don't use it) -#define wxUSE_BASE64 1 - -// Set this to 1 to be able to use wxEventLoop even in console applications -// (i.e. using base library only, without GUI). This is mostly useful for -// processing socket events but is also necessary to use timers in console -// applications -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely disabled if you don't use it) -#define wxUSE_CONSOLE_EVENTLOOP 1 - -// Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level -// POSIX functions for file access, wxFFile uses ANSI C stdio.h functions. -// -// Default is 1 -// -// Recommended setting: 1 (wxFile is highly recommended as it is required by -// i18n code, wxFileConfig and others) -#define wxUSE_FILE 1 -#define wxUSE_FFILE 1 - -// Use wxFSVolume class providing access to the configured/active mount points -// -// Default is 1 -// -// Recommended setting: 1 (but may be safely disabled if you don't use it) -#define wxUSE_FSVOLUME 1 - -// Use wxStandardPaths class which allows to retrieve some standard locations -// in the file system -// -// Default is 1 -// -// Recommended setting: 1 (may be disabled to save space, but not much) -#define wxUSE_STDPATHS 1 - -// use wxTextBuffer class: required by wxTextFile -#define wxUSE_TEXTBUFFER 1 - -// use wxTextFile class: requires wxFile and wxTextBuffer, required by -// wxFileConfig -#define wxUSE_TEXTFILE 1 - -// i18n support: _() macro, wxLocale class. Requires wxTextFile. -#define wxUSE_INTL 1 - -// Provide wxFoo_l() functions similar to standard foo() functions but taking -// an extra locale parameter. -// -// Notice that this is fully implemented only for the systems providing POSIX -// xlocale support or Microsoft Visual C++ >= 8 (which provides proprietary -// almost-equivalent of xlocale functions), otherwise wxFoo_l() functions will -// only work for the current user locale and "C" locale. You can use -// wxHAS_XLOCALE_SUPPORT to test whether the full support is available. -// -// Default is 1 -// -// Recommended setting: 1 but may be disabled if you are writing programs -// running only in C locale anyhow -#define wxUSE_XLOCALE 1 - -// Set wxUSE_DATETIME to 1 to compile the wxDateTime and related classes which -// allow to manipulate dates, times and time intervals. -// -// Requires: wxUSE_LONGLONG -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_DATETIME 1 - -// Set wxUSE_TIMER to 1 to compile wxTimer class -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_TIMER 1 - -// Use wxStopWatch clas. -// -// Default is 1 -// -// Recommended setting: 1 (needed by wxSocket) -#define wxUSE_STOPWATCH 1 - -// Set wxUSE_FSWATCHER to 1 if you want to enable wxFileSystemWatcher -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_FSWATCHER 1 - -// Setting wxUSE_CONFIG to 1 enables the use of wxConfig and related classes -// which allow the application to store its settings in the persistent -// storage. Setting this to 1 will also enable on-demand creation of the -// global config object in wxApp. -// -// See also wxUSE_CONFIG_NATIVE below. -// -// Recommended setting: 1 -#define wxUSE_CONFIG 1 - -// If wxUSE_CONFIG is 1, you may choose to use either the native config -// classes under Windows (using .INI files under Win16 and the registry under -// Win32) or the portable text file format used by the config classes under -// Unix. -// -// Default is 1 to use native classes. Note that you may still use -// wxFileConfig even if you set this to 1 - just the config object created by -// default for the applications needs will be a wxRegConfig or wxIniConfig and -// not wxFileConfig. -// -// Recommended setting: 1 -#define wxUSE_CONFIG_NATIVE 1 - -// If wxUSE_DIALUP_MANAGER is 1, compile in wxDialUpManager class which allows -// to connect/disconnect from the network and be notified whenever the dial-up -// network connection is established/terminated. Requires wxUSE_DYNAMIC_LOADER. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DIALUP_MANAGER 1 - -// Compile in classes for run-time DLL loading and function calling. -// Required by wxUSE_DIALUP_MANAGER. -// -// This setting is for Win32 only -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DYNLIB_CLASS 1 - -// experimental, don't use for now -#define wxUSE_DYNAMIC_LOADER 1 - -// Set to 1 to use socket classes -#define wxUSE_SOCKETS 1 - -// Set to 1 to use ipv6 socket classes (requires wxUSE_SOCKETS) -// -// Notice that currently setting this option under Windows will result in -// programs which can only run on recent OS versions (with ws2_32.dll -// installed) which is why it is disabled by default. -// -// Default is 1. -// -// Recommended setting: 1 if you need IPv6 support -#define wxUSE_IPV6 0 - -// Set to 1 to enable virtual file systems (required by wxHTML) -#define wxUSE_FILESYSTEM 1 - -// Set to 1 to enable virtual ZIP filesystem (requires wxUSE_FILESYSTEM) -#define wxUSE_FS_ZIP 1 - -// Set to 1 to enable virtual archive filesystem (requires wxUSE_FILESYSTEM) -#define wxUSE_FS_ARCHIVE 1 - -// Set to 1 to enable virtual Internet filesystem (requires wxUSE_FILESYSTEM) -#define wxUSE_FS_INET 1 - -// wxArchive classes for accessing archives such as zip and tar -#define wxUSE_ARCHIVE_STREAMS 1 - -// Set to 1 to compile wxZipInput/OutputStream classes. -#define wxUSE_ZIPSTREAM 1 - -// Set to 1 to compile wxTarInput/OutputStream classes. -#define wxUSE_TARSTREAM 1 - -// Set to 1 to compile wxZlibInput/OutputStream classes. Also required by -// wxUSE_LIBPNG -#define wxUSE_ZLIB 1 - -// If enabled, the code written by Apple will be used to write, in a portable -// way, float on the disk. See extended.c for the license which is different -// from wxWidgets one. -// -// Default is 1. -// -// Recommended setting: 1 unless you don't like the license terms (unlikely) -#define wxUSE_APPLE_IEEE 1 - -// Joystick support class -#define wxUSE_JOYSTICK 1 - -// wxFontEnumerator class -#define wxUSE_FONTENUM 1 - -// wxFontMapper class -#define wxUSE_FONTMAP 1 - -// wxMimeTypesManager class -#define wxUSE_MIMETYPE 1 - -// wxProtocol and related classes: if you want to use either of wxFTP, wxHTTP -// or wxURL you need to set this to 1. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_PROTOCOL 1 - -// The settings for the individual URL schemes -#define wxUSE_PROTOCOL_FILE 1 -#define wxUSE_PROTOCOL_FTP 1 -#define wxUSE_PROTOCOL_HTTP 1 - -// Define this to use wxURL class. -#define wxUSE_URL 1 - -// Define this to use native platform url and protocol support. -// Currently valid only for MS-Windows. -// Note: if you set this to 1, you can open ftp/http/gopher sites -// and obtain a valid input stream for these sites -// even when you set wxUSE_PROTOCOL_FTP/HTTP to 0. -// Doing so reduces the code size. -// -// This code is experimental and subject to change. -#define wxUSE_URL_NATIVE 0 - -// Support for wxVariant class used in several places throughout the library, -// notably in wxDataViewCtrl API. -// -// Default is 1. -// -// Recommended setting: 1 unless you want to reduce the library size as much as -// possible in which case setting this to 0 can gain up to 100KB. -#define wxUSE_VARIANT 1 - -// Support for wxAny class, the successor for wxVariant. -// -// Default is 1. -// -// Recommended setting: 1 unless you want to reduce the library size by a small amount, -// or your compiler cannot for some reason cope with complexity of templates used. -#define wxUSE_ANY 1 - -// Support for regular expression matching via wxRegEx class: enable this to -// use POSIX regular expressions in your code. You need to compile regex -// library from src/regex to use it under Windows. -// -// Default is 0 -// -// Recommended setting: 1 if your compiler supports it, if it doesn't please -// contribute us a makefile for src/regex for it -#define wxUSE_REGEX 1 - -// wxSystemOptions class -#define wxUSE_SYSTEM_OPTIONS 1 - -// wxSound class -#define wxUSE_SOUND 1 - -// Use wxMediaCtrl -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_MEDIACTRL 1 - -// Use wxWidget's XRC XML-based resource system. Recommended. -// -// Default is 1 -// -// Recommended setting: 1 (requires wxUSE_XML) -#define wxUSE_XRC 1 - -// XML parsing classes. Note that their API will change in the future, so -// using wxXmlDocument and wxXmlNode in your app is not recommended. -// -// Default is the same as wxUSE_XRC, i.e. 1 by default. -// -// Recommended setting: 1 (required by XRC) -#define wxUSE_XML wxUSE_XRC - -// Use wxWidget's AUI docking system -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_AUI 1 - -// Use wxWidget's Ribbon classes for interfaces -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_RIBBON 1 - -// Use wxPropertyGrid. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_PROPGRID 1 - -// Use wxStyledTextCtrl, a wxWidgets implementation of Scintilla. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_STC 1 - -// Use wxWidget's web viewing classes -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_WEBVIEW 1 - -// Use the IE wxWebView backend -// -// Default is 1 on MSW -// -// Recommended setting: 1 -#ifdef __WXMSW__ -#define wxUSE_WEBVIEW_IE 1 -#else -#define wxUSE_WEBVIEW_IE 0 -#endif - -// Use the WebKit wxWebView backend -// -// Default is 1 on GTK and OSX -// -// Recommended setting: 1 -#if defined(__WXGTK__) || defined(__WXOSX__) -#define wxUSE_WEBVIEW_WEBKIT 1 -#else -#define wxUSE_WEBVIEW_WEBKIT 0 -#endif - -// Enable wxGraphicsContext and related classes for a modern 2D drawing API. -// -// Default is 1 except if you're using a non-Microsoft compiler under Windows -// as only MSVC is known to ship with at least gdiplus.h which is required to -// compile GDI+-based implementation of wxGraphicsContext (MSVC10 and later -// versions also include d2d1.h required for Direct2D-based implementation). -// For other compilers (e.g. mingw32) you may need to install the headers (and -// just the headers) yourself. If you do, change the setting below manually. -// -// Recommended setting: 1 if supported by the compilation environment - -// notice that we can't use wxCHECK_VISUALC_VERSION() here as this file is -// included from wx/platform.h before wxCHECK_VISUALC_VERSION() is defined -#ifdef _MSC_VER -# define wxUSE_GRAPHICS_CONTEXT 1 -#else - // Disable support for other Windows compilers, enable it if your compiler - // comes with new enough SDK or you installed the headers manually. - // - // Notice that this will be set by configure under non-Windows platforms - // anyhow so the value there is not important. -# define wxUSE_GRAPHICS_CONTEXT 0 -#endif - -// Enable wxGraphicsContext implementation using Cairo library. -// -// This is not needed under Windows and detected automatically by configure -// under other systems, however you may set this to 1 manually if you installed -// Cairo under Windows yourself and prefer to use it instead the native GDI+ -// implementation. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_CAIRO 0 - - -// ---------------------------------------------------------------------------- -// Individual GUI controls -// ---------------------------------------------------------------------------- - -// You must set wxUSE_CONTROLS to 1 if you are using any controls at all -// (without it, wxControl class is not compiled) -// -// Default is 1 -// -// Recommended setting: 1 (don't change except for very special programs) -#define wxUSE_CONTROLS 1 - -// Support markup in control labels, i.e. provide wxControl::SetLabelMarkup(). -// Currently markup is supported only by a few controls and only some ports but -// their number will increase with time. -// -// Default is 1 -// -// Recommended setting: 1 (may be set to 0 if you want to save on code size) -#define wxUSE_MARKUP 1 - -// wxPopupWindow class is a top level transient window. It is currently used -// to implement wxTipWindow -// -// Default is 1 -// -// Recommended setting: 1 (may be set to 0 if you don't wxUSE_TIPWINDOW) -#define wxUSE_POPUPWIN 1 - -// wxTipWindow allows to implement the custom tooltips, it is used by the -// context help classes. Requires wxUSE_POPUPWIN. -// -// Default is 1 -// -// Recommended setting: 1 (may be set to 0) -#define wxUSE_TIPWINDOW 1 - -// Each of the settings below corresponds to one wxWidgets control. They are -// all switched on by default but may be disabled if you are sure that your -// program (including any standard dialogs it can show!) doesn't need them and -// if you desperately want to save some space. If you use any of these you must -// set wxUSE_CONTROLS as well. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_ACTIVITYINDICATOR 1 // wxActivityIndicator -#define wxUSE_ANIMATIONCTRL 1 // wxAnimationCtrl -#define wxUSE_BANNERWINDOW 1 // wxBannerWindow -#define wxUSE_BUTTON 1 // wxButton -#define wxUSE_BMPBUTTON 1 // wxBitmapButton -#define wxUSE_CALENDARCTRL 1 // wxCalendarCtrl -#define wxUSE_CHECKBOX 1 // wxCheckBox -#define wxUSE_CHECKLISTBOX 1 // wxCheckListBox (requires wxUSE_OWNER_DRAWN) -#define wxUSE_CHOICE 1 // wxChoice -#define wxUSE_COLLPANE 1 // wxCollapsiblePane -#define wxUSE_COLOURPICKERCTRL 1 // wxColourPickerCtrl -#define wxUSE_COMBOBOX 1 // wxComboBox -#define wxUSE_COMMANDLINKBUTTON 1 // wxCommandLinkButton -#define wxUSE_DATAVIEWCTRL 1 // wxDataViewCtrl -#define wxUSE_DATEPICKCTRL 1 // wxDatePickerCtrl -#define wxUSE_DIRPICKERCTRL 1 // wxDirPickerCtrl -#define wxUSE_EDITABLELISTBOX 1 // wxEditableListBox -#define wxUSE_FILECTRL 1 // wxFileCtrl -#define wxUSE_FILEPICKERCTRL 1 // wxFilePickerCtrl -#define wxUSE_FONTPICKERCTRL 1 // wxFontPickerCtrl -#define wxUSE_GAUGE 1 // wxGauge -#define wxUSE_HEADERCTRL 1 // wxHeaderCtrl -#define wxUSE_HYPERLINKCTRL 1 // wxHyperlinkCtrl -#define wxUSE_LISTBOX 1 // wxListBox -#define wxUSE_LISTCTRL 1 // wxListCtrl -#define wxUSE_RADIOBOX 1 // wxRadioBox -#define wxUSE_RADIOBTN 1 // wxRadioButton -#define wxUSE_RICHMSGDLG 1 // wxRichMessageDialog -#define wxUSE_SCROLLBAR 1 // wxScrollBar -#define wxUSE_SEARCHCTRL 1 // wxSearchCtrl -#define wxUSE_SLIDER 1 // wxSlider -#define wxUSE_SPINBTN 1 // wxSpinButton -#define wxUSE_SPINCTRL 1 // wxSpinCtrl -#define wxUSE_STATBOX 1 // wxStaticBox -#define wxUSE_STATLINE 1 // wxStaticLine -#define wxUSE_STATTEXT 1 // wxStaticText -#define wxUSE_STATBMP 1 // wxStaticBitmap -#define wxUSE_TEXTCTRL 1 // wxTextCtrl -#define wxUSE_TIMEPICKCTRL 1 // wxTimePickerCtrl -#define wxUSE_TOGGLEBTN 1 // requires wxButton -#define wxUSE_TREECTRL 1 // wxTreeCtrl -#define wxUSE_TREELISTCTRL 1 // wxTreeListCtrl - -// Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR -// below either wxStatusBar95 or a generic wxStatusBar will be used. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_STATUSBAR 1 - -// Two status bar implementations are available under Win32: the generic one -// or the wrapper around native control. For native look and feel the native -// version should be used. -// -// Default is 1 for the platforms where native status bar is supported. -// -// Recommended setting: 1 (there is no advantage in using the generic one) -#define wxUSE_NATIVE_STATUSBAR 1 - -// wxToolBar related settings: if wxUSE_TOOLBAR is 0, don't compile any toolbar -// classes at all. Otherwise, use the native toolbar class unless -// wxUSE_TOOLBAR_NATIVE is 0. -// -// Default is 1 for all settings. -// -// Recommended setting: 1 for wxUSE_TOOLBAR and wxUSE_TOOLBAR_NATIVE. -#define wxUSE_TOOLBAR 1 -#define wxUSE_TOOLBAR_NATIVE 1 - -// wxNotebook is a control with several "tabs" located on one of its sides. It -// may be used to logically organise the data presented to the user instead of -// putting everything in one huge dialog. It replaces wxTabControl and related -// classes of wxWin 1.6x. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_NOTEBOOK 1 - -// wxListbook control is similar to wxNotebook but uses wxListCtrl instead of -// the tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_LISTBOOK 1 - -// wxChoicebook control is similar to wxNotebook but uses wxChoice instead of -// the tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_CHOICEBOOK 1 - -// wxTreebook control is similar to wxNotebook but uses wxTreeCtrl instead of -// the tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_TREEBOOK 1 - -// wxToolbook control is similar to wxNotebook but uses wxToolBar instead of -// tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_TOOLBOOK 1 - -// wxTaskBarIcon is a small notification icon shown in the system toolbar or -// dock. -// -// Default is 1. -// -// Recommended setting: 1 (but can be set to 0 if you don't need it) -#define wxUSE_TASKBARICON 1 - -// wxGrid class -// -// Default is 1, set to 0 to cut down compilation time and binaries size if you -// don't use it. -// -// Recommended setting: 1 -// -#define wxUSE_GRID 1 - -// wxMiniFrame class: a frame with narrow title bar -// -// Default is 1. -// -// Recommended setting: 1 (it doesn't cost almost anything) -#define wxUSE_MINIFRAME 1 - -// wxComboCtrl and related classes: combobox with custom popup window and -// not necessarily a listbox. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 except for wxUniv where it -// it used by wxComboBox -#define wxUSE_COMBOCTRL 1 - -// wxOwnerDrawnComboBox is a custom combobox allowing to paint the combobox -// items. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0, except where it is -// needed as a base class for generic wxBitmapComboBox. -#define wxUSE_ODCOMBOBOX 1 - -// wxBitmapComboBox is a combobox that can have images in front of text items. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 -#define wxUSE_BITMAPCOMBOBOX 1 - -// wxRearrangeCtrl is a wxCheckListBox with two buttons allowing to move items -// up and down in it. It is also used as part of wxRearrangeDialog. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 (currently used only by -// wxHeaderCtrl) -#define wxUSE_REARRANGECTRL 1 - -// wxAddRemoveCtrl is a composite control containing a control showing some -// items (e.g. wxListBox, wxListCtrl, wxTreeCtrl, wxDataViewCtrl, ...) and "+"/ -// "-" buttons allowing to add and remove items to/from the control. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 if you don't need it (not -// used by the library itself). -#define wxUSE_ADDREMOVECTRL 1 - -// ---------------------------------------------------------------------------- -// Miscellaneous GUI stuff -// ---------------------------------------------------------------------------- - -// wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar) -#define wxUSE_ACCEL 1 - -// Use the standard art provider. The icons returned by this provider are -// embedded into the library as XPMs so disabling it reduces the library size -// somewhat but this should only be done if you use your own custom art -// provider returning the icons or never use any icons not provided by the -// native art provider (which might not be implemented at all for some -// platforms) or by the Tango icons provider (if it's not itself disabled -// below). -// -// Default is 1. -// -// Recommended setting: 1 unless you use your own custom art provider. -#define wxUSE_ARTPROVIDER_STD 1 - -// Use art provider providing Tango icons: this art provider has higher quality -// icons than the default ones using smaller size XPM icons without -// transparency but the embedded PNG icons add to the library size. -// -// Default is 1 under non-GTK ports. Under wxGTK the native art provider using -// the GTK+ stock icons replaces it so it is normally not necessary. -// -// Recommended setting: 1 but can be turned off to reduce the library size. -#define wxUSE_ARTPROVIDER_TANGO 1 - -// Hotkey support (currently Windows only) -#define wxUSE_HOTKEY 1 - -// Use wxCaret: a class implementing a "cursor" in a text control (called caret -// under Windows). -// -// Default is 1. -// -// Recommended setting: 1 (can be safely set to 0, not used by the library) -#define wxUSE_CARET 1 - -// Use wxDisplay class: it allows enumerating all displays on a system and -// their geometries as well as finding the display on which the given point or -// window lies. -// -// Default is 1. -// -// Recommended setting: 1 if you need it, can be safely set to 0 otherwise -#define wxUSE_DISPLAY 1 - -// Miscellaneous geometry code: needed for Canvas library -#define wxUSE_GEOMETRY 1 - -// Use wxImageList. This class is needed by wxNotebook, wxTreeCtrl and -// wxListCtrl. -// -// Default is 1. -// -// Recommended setting: 1 (set it to 0 if you don't use any of the controls -// enumerated above, then this class is mostly useless too) -#define wxUSE_IMAGLIST 1 - -// Use wxInfoBar class. -// -// Default is 1. -// -// Recommended setting: 1 (but can be disabled without problems as nothing -// depends on it) -#define wxUSE_INFOBAR 1 - -// Use wxMenu, wxMenuBar, wxMenuItem. -// -// Default is 1. -// -// Recommended setting: 1 (can't be disabled under MSW) -#define wxUSE_MENUS 1 - -// Use wxNotificationMessage. -// -// wxNotificationMessage allows to show non-intrusive messages to the user -// using balloons, banners, popups or whatever is the appropriate method for -// the current platform. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_NOTIFICATION_MESSAGE 1 - -// wxPreferencesEditor provides a common API for different ways of presenting -// the standard "Preferences" or "Properties" dialog under different platforms -// (e.g. some use modal dialogs, some use modeless ones; some apply the changes -// immediately while others require an explicit "Apply" button). -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely disabled if you don't use it) -#define wxUSE_PREFERENCES_EDITOR 1 - -// wxRichToolTip is a customizable tooltip class which has more functionality -// than the stock (but native, unlike this class) wxToolTip. -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely set to 0 if you don't need it) -#define wxUSE_RICHTOOLTIP 1 - -// Use wxSashWindow class. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_SASH 1 - -// Use wxSplitterWindow class. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_SPLITTER 1 - -// Use wxToolTip and wxWindow::Set/GetToolTip() methods. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_TOOLTIPS 1 - -// wxValidator class and related methods -#define wxUSE_VALIDATORS 1 - -// Use reference counted ID management: this means that wxWidgets will track -// the automatically allocated ids (those used when you use wxID_ANY when -// creating a window, menu or toolbar item &c) instead of just supposing that -// the program never runs out of them. This is mostly useful only under wxMSW -// where the total ids range is limited to SHRT_MIN..SHRT_MAX and where -// long-running programs can run into problems with ids reuse without this. On -// the other platforms, where the ids have the full int range, this shouldn't -// be necessary. -#ifdef __WXMSW__ -#define wxUSE_AUTOID_MANAGEMENT 1 -#else -#define wxUSE_AUTOID_MANAGEMENT 0 -#endif - -// ---------------------------------------------------------------------------- -// common dialogs -// ---------------------------------------------------------------------------- - -// On rare occasions (e.g. using DJGPP) may want to omit common dialogs (e.g. -// file selector, printer dialog). Switching this off also switches off the -// printing architecture and interactive wxPrinterDC. -// -// Default is 1 -// -// Recommended setting: 1 (unless it really doesn't work) -#define wxUSE_COMMON_DIALOGS 1 - -// wxBusyInfo displays window with message when app is busy. Works in same way -// as wxBusyCursor -#define wxUSE_BUSYINFO 1 - -// Use single/multiple choice dialogs. -// -// Default is 1 -// -// Recommended setting: 1 (used in the library itself) -#define wxUSE_CHOICEDLG 1 - -// Use colour picker dialog -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_COLOURDLG 1 - -// wxDirDlg class for getting a directory name from user -#define wxUSE_DIRDLG 1 - -// TODO: setting to choose the generic or native one - -// Use file open/save dialogs. -// -// Default is 1 -// -// Recommended setting: 1 (used in many places in the library itself) -#define wxUSE_FILEDLG 1 - -// Use find/replace dialogs. -// -// Default is 1 -// -// Recommended setting: 1 (but may be safely set to 0) -#define wxUSE_FINDREPLDLG 1 - -// Use font picker dialog -// -// Default is 1 -// -// Recommended setting: 1 (used in the library itself) -#define wxUSE_FONTDLG 1 - -// Use wxMessageDialog and wxMessageBox. -// -// Default is 1 -// -// Recommended setting: 1 (used in the library itself) -#define wxUSE_MSGDLG 1 - -// progress dialog class for lengthy operations -#define wxUSE_PROGRESSDLG 1 - -// Set to 0 to disable the use of the native progress dialog (currently only -// available under MSW and suffering from some bugs there, hence this option). -#define wxUSE_NATIVE_PROGRESSDLG 1 - -// support for startup tips (wxShowTip &c) -#define wxUSE_STARTUP_TIPS 1 - -// text entry dialog and wxGetTextFromUser function -#define wxUSE_TEXTDLG 1 - -// number entry dialog -#define wxUSE_NUMBERDLG 1 - -// splash screen class -#define wxUSE_SPLASH 1 - -// wizards -#define wxUSE_WIZARDDLG 1 - -// Compile in wxAboutBox() function showing the standard "About" dialog. -// -// Default is 1 -// -// Recommended setting: 1 but can be set to 0 to save some space if you don't -// use this function -#define wxUSE_ABOUTDLG 1 - -// wxFileHistory class -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_FILE_HISTORY 1 - -// ---------------------------------------------------------------------------- -// Metafiles support -// ---------------------------------------------------------------------------- - -// Windows supports the graphics format known as metafile which is, though not -// portable, is widely used under Windows and so is supported by wxWin (under -// Windows only, of course). Win16 (Win3.1) used the so-called "Window -// MetaFiles" or WMFs which were replaced with "Enhanced MetaFiles" or EMFs in -// Win32 (Win9x, NT, 2000). Both of these are supported in wxWin and, by -// default, WMFs will be used under Win16 and EMFs under Win32. This may be -// changed by setting wxUSE_WIN_METAFILES_ALWAYS to 1 and/or setting -// wxUSE_ENH_METAFILE to 0. You may also set wxUSE_METAFILE to 0 to not compile -// in any metafile related classes at all. -// -// Default is 1 for wxUSE_ENH_METAFILE and 0 for wxUSE_WIN_METAFILES_ALWAYS. -// -// Recommended setting: default or 0 for everything for portable programs. -#define wxUSE_METAFILE 1 -#define wxUSE_ENH_METAFILE 1 -#define wxUSE_WIN_METAFILES_ALWAYS 0 - -// ---------------------------------------------------------------------------- -// Big GUI components -// ---------------------------------------------------------------------------- - -// Set to 0 to disable MDI support. -// -// Requires wxUSE_NOTEBOOK under platforms other than MSW. -// -// Default is 1. -// -// Recommended setting: 1, can be safely set to 0. -#define wxUSE_MDI 1 - -// Set to 0 to disable document/view architecture -#define wxUSE_DOC_VIEW_ARCHITECTURE 1 - -// Set to 0 to disable MDI document/view architecture -// -// Requires wxUSE_MDI && wxUSE_DOC_VIEW_ARCHITECTURE -#define wxUSE_MDI_ARCHITECTURE 1 - -// Set to 0 to disable print/preview architecture code -#define wxUSE_PRINTING_ARCHITECTURE 1 - -// wxHTML sublibrary allows to display HTML in wxWindow programs and much, -// much more. -// -// Default is 1. -// -// Recommended setting: 1 (wxHTML is great!), set to 0 if you want compile a -// smaller library. -#define wxUSE_HTML 1 - -// Setting wxUSE_GLCANVAS to 1 enables OpenGL support. You need to have OpenGL -// headers and libraries to be able to compile the library with wxUSE_GLCANVAS -// set to 1 and, under Windows, also to add opengl32.lib and glu32.lib to the -// list of libraries used to link your application (although this is done -// implicitly for Microsoft Visual C++ users). -// -// Default is 1. -// -// Recommended setting: 1 if you intend to use OpenGL, can be safely set to 0 -// otherwise. -#define wxUSE_GLCANVAS 1 - -// wxRichTextCtrl allows editing of styled text. -// -// Default is 1. -// -// Recommended setting: 1, set to 0 if you want compile a -// smaller library. -#define wxUSE_RICHTEXT 1 - -// ---------------------------------------------------------------------------- -// Data transfer -// ---------------------------------------------------------------------------- - -// Use wxClipboard class for clipboard copy/paste. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_CLIPBOARD 1 - -// Use wxDataObject and related classes. Needed for clipboard and OLE drag and -// drop -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DATAOBJ 1 - -// Use wxDropTarget and wxDropSource classes for drag and drop (this is -// different from "built in" drag and drop in wxTreeCtrl which is always -// available). Requires wxUSE_DATAOBJ. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DRAG_AND_DROP 1 - -// Use wxAccessible for enhanced and customisable accessibility. -// Depends on wxUSE_OLE. -// -// Default is 0. -// -// Recommended setting (at present): 0 -#define wxUSE_ACCESSIBILITY 0 - -// ---------------------------------------------------------------------------- -// miscellaneous settings -// ---------------------------------------------------------------------------- - -// wxSingleInstanceChecker class allows to verify at startup if another program -// instance is running. -// -// Default is 1 -// -// Recommended setting: 1 (the class is tiny, disabling it won't save much -// space) -#define wxUSE_SNGLINST_CHECKER 1 - -#define wxUSE_DRAGIMAGE 1 - -#define wxUSE_IPC 1 - // 0 for no interprocess comms -#define wxUSE_HELP 1 - // 0 for no help facility - -// Should we use MS HTML help for wxHelpController? If disabled, neither -// wxCHMHelpController nor wxBestHelpController are available. -// -// Default is 1 under MSW, 0 is always used for the other platforms. -// -// Recommended setting: 1, only set to 0 if you have trouble compiling -// wxCHMHelpController (could be a problem with really ancient compilers) -#define wxUSE_MS_HTML_HELP 1 - - -// Use wxHTML-based help controller? -#define wxUSE_WXHTML_HELP 1 - -#define wxUSE_CONSTRAINTS 1 - // 0 for no window layout constraint system - -#define wxUSE_SPLINES 1 - // 0 for no splines - -#define wxUSE_MOUSEWHEEL 1 - // Include mouse wheel support - -// Compile wxUIActionSimulator class? -#define wxUSE_UIACTIONSIMULATOR 1 - -// ---------------------------------------------------------------------------- -// wxDC classes for various output formats -// ---------------------------------------------------------------------------- - -// Set to 1 for PostScript device context. -#define wxUSE_POSTSCRIPT 0 - -// Set to 1 to use font metric files in GetTextExtent -#define wxUSE_AFM_FOR_POSTSCRIPT 1 - -// Set to 1 to compile in support for wxSVGFileDC, a wxDC subclass which allows -// to create files in SVG (Scalable Vector Graphics) format. -#define wxUSE_SVG 1 - -// Should wxDC provide SetTransformMatrix() and related methods? -// -// Default is 1 but can be set to 0 if this functionality is not used. Notice -// that currently only wxMSW supports this so setting this to 0 doesn't change -// much for non-MSW platforms (although it will still save a few bytes -// probably). -// -// Recommended setting: 1. -#define wxUSE_DC_TRANSFORM_MATRIX 1 - -// ---------------------------------------------------------------------------- -// image format support -// ---------------------------------------------------------------------------- - -// wxImage supports many different image formats which can be configured at -// compile-time. BMP is always supported, others are optional and can be safely -// disabled if you don't plan to use images in such format sometimes saving -// substantial amount of code in the final library. -// -// Some formats require an extra library which is included in wxWin sources -// which is mentioned if it is the case. - -// Set to 1 for wxImage support (recommended). -#define wxUSE_IMAGE 1 - -// Set to 1 for PNG format support (requires libpng). Also requires wxUSE_ZLIB. -#define wxUSE_LIBPNG 1 - -// Set to 1 for JPEG format support (requires libjpeg) -#define wxUSE_LIBJPEG 1 - -// Set to 1 for TIFF format support (requires libtiff) -#define wxUSE_LIBTIFF 1 - -// Set to 1 for TGA format support (loading only) -#define wxUSE_TGA 1 - -// Set to 1 for GIF format support -#define wxUSE_GIF 1 - -// Set to 1 for PNM format support -#define wxUSE_PNM 1 - -// Set to 1 for PCX format support -#define wxUSE_PCX 1 - -// Set to 1 for IFF format support (Amiga format) -#define wxUSE_IFF 0 - -// Set to 1 for XPM format support -#define wxUSE_XPM 1 - -// Set to 1 for MS Icons and Cursors format support -#define wxUSE_ICO_CUR 1 - -// Set to 1 to compile in wxPalette class -#define wxUSE_PALETTE 1 - -// ---------------------------------------------------------------------------- -// wxUniversal-only options -// ---------------------------------------------------------------------------- - -// Set to 1 to enable compilation of all themes, this is the default -#define wxUSE_ALL_THEMES 1 - -// Set to 1 to enable the compilation of individual theme if wxUSE_ALL_THEMES -// is unset, if it is set these options are not used; notice that metal theme -// uses Win32 one -#define wxUSE_THEME_GTK 0 -#define wxUSE_THEME_METAL 0 -#define wxUSE_THEME_MONO 0 -#define wxUSE_THEME_WIN32 0 - - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/setup_redirect.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/setup_redirect.h deleted file mode 100644 index 7648c198..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/setup_redirect.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * wx/setup.h - * - * This file should not normally be used, except where makefiles - * have not yet been adjusted to take into account of the new scheme - * whereby a setup.h is created under the lib directory. - * - * Copyright: (c) Vadim Zeitlin - * Licence: wxWindows Licence - */ - -#ifdef __WXMSW__ -#include "wx/msw/setup.h" -#else -#error Please adjust your include path to pick up the wx/setup.h file under lib first. -#endif - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sharedptr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sharedptr.h deleted file mode 100644 index a9b6442c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sharedptr.h +++ /dev/null @@ -1,169 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/sharedptr.h -// Purpose: Shared pointer based on the counted_ptr<> template, which -// is in the public domain -// Author: Robert Roebling, Yonat Sharon -// Copyright: Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SHAREDPTR_H_ -#define _WX_SHAREDPTR_H_ - -#include "wx/defs.h" -#include "wx/atomic.h" - -// ---------------------------------------------------------------------------- -// wxSharedPtr: A smart pointer with non-intrusive reference counting. -// ---------------------------------------------------------------------------- - -template <class T> -class wxSharedPtr -{ -public: - typedef T element_type; - - wxEXPLICIT wxSharedPtr( T* ptr = NULL ) - : m_ref(NULL) - { - if (ptr) - m_ref = new reftype(ptr); - } - - template<typename Deleter> - wxEXPLICIT wxSharedPtr(T* ptr, Deleter d) - : m_ref(NULL) - { - if (ptr) - m_ref = new reftype_with_deleter<Deleter>(ptr, d); - } - - ~wxSharedPtr() { Release(); } - wxSharedPtr(const wxSharedPtr& tocopy) { Acquire(tocopy.m_ref); } - - wxSharedPtr& operator=( const wxSharedPtr& tocopy ) - { - if (this != &tocopy) - { - Release(); - Acquire(tocopy.m_ref); - } - return *this; - } - - wxSharedPtr& operator=( T* ptr ) - { - if (get() != ptr) - { - Release(); - if (ptr) - m_ref = new reftype(ptr); - } - return *this; - } - - // test for pointer validity: defining conversion to unspecified_bool_type - // and not more obvious bool to avoid implicit conversions to integer types - typedef T *(wxSharedPtr<T>::*unspecified_bool_type)() const; - operator unspecified_bool_type() const - { - if (m_ref && m_ref->m_ptr) - return &wxSharedPtr<T>::get; - else - return NULL; - } - - T& operator*() const - { - wxASSERT(m_ref != NULL); - wxASSERT(m_ref->m_ptr != NULL); - return *(m_ref->m_ptr); - } - - T* operator->() const - { - wxASSERT(m_ref != NULL); - wxASSERT(m_ref->m_ptr != NULL); - return m_ref->m_ptr; - } - - T* get() const - { - return m_ref ? m_ref->m_ptr : NULL; - } - - void reset( T* ptr = NULL ) - { - Release(); - if (ptr) - m_ref = new reftype(ptr); - } - - template<typename Deleter> - void reset(T* ptr, Deleter d) - { - Release(); - if (ptr) - m_ref = new reftype_with_deleter<Deleter>(ptr, d); - } - - bool unique() const { return (m_ref ? m_ref->m_count == 1 : true); } - long use_count() const { return (m_ref ? (long)m_ref->m_count : 0); } - -private: - - struct reftype - { - reftype(T* ptr) : m_ptr(ptr), m_count(1) {} - virtual ~reftype() {} - virtual void delete_ptr() { delete m_ptr; } - - T* m_ptr; - wxAtomicInt m_count; - }; - - template<typename Deleter> - struct reftype_with_deleter : public reftype - { - reftype_with_deleter(T* ptr, Deleter d) : reftype(ptr), m_deleter(d) {} - virtual void delete_ptr() { m_deleter(this->m_ptr); } - - Deleter m_deleter; - }; - - reftype* m_ref; - - void Acquire(reftype* ref) - { - m_ref = ref; - if (ref) - wxAtomicInc( ref->m_count ); - } - - void Release() - { - if (m_ref) - { - if (!wxAtomicDec( m_ref->m_count )) - { - m_ref->delete_ptr(); - delete m_ref; - } - m_ref = NULL; - } - } -}; - -template <class T, class U> -bool operator == (wxSharedPtr<T> const &a, wxSharedPtr<U> const &b ) -{ - return a.get() == b.get(); -} - -template <class T, class U> -bool operator != (wxSharedPtr<T> const &a, wxSharedPtr<U> const &b ) -{ - return a.get() != b.get(); -} - -#endif // _WX_SHAREDPTR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/simplebook.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/simplebook.h deleted file mode 100644 index 4d604bac..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/simplebook.h +++ /dev/null @@ -1,222 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/simplebook.h -// Purpose: wxBookCtrlBase-derived class without any controller. -// Author: Vadim Zeitlin -// Created: 2012-08-21 -// Copyright: (c) 2012 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SIMPLEBOOK_H_ -#define _WX_SIMPLEBOOK_H_ - -#include "wx/bookctrl.h" - -#if wxUSE_BOOKCTRL - -#include "wx/vector.h" - -// ---------------------------------------------------------------------------- -// wxSimplebook: a book control without any user-actionable controller. -// ---------------------------------------------------------------------------- - -// NB: This class doesn't use DLL export declaration as it's fully inline. - -class wxSimplebook : public wxBookCtrlBase -{ -public: - wxSimplebook() - { - Init(); - } - - wxSimplebook(wxWindow *parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxEmptyString) - : wxBookCtrlBase(parent, winid, pos, size, style | wxBK_TOP, name) - { - Init(); - } - - bool Create(wxWindow *parent, - wxWindowID winid = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxEmptyString) - { - return wxBookCtrlBase::Create(parent, winid, pos, size, style | wxBK_TOP, name); - } - - - // Methods specific to this class. - - // A method allowing to add a new page without any label (which is unused - // by this control) and show it immediately. - bool ShowNewPage(wxWindow* page) - { - return AddPage(page, wxString(), true /* select it */); - } - - - // Set effect to use for showing/hiding pages. - void SetEffects(wxShowEffect showEffect, wxShowEffect hideEffect) - { - m_showEffect = showEffect; - m_hideEffect = hideEffect; - } - - // Or the same effect for both of them. - void SetEffect(wxShowEffect effect) - { - SetEffects(effect, effect); - } - - // And the same for time outs. - void SetEffectsTimeouts(unsigned showTimeout, unsigned hideTimeout) - { - m_showTimeout = showTimeout; - m_hideTimeout = hideTimeout; - } - - void SetEffectTimeout(unsigned timeout) - { - SetEffectsTimeouts(timeout, timeout); - } - - - // Implement base class pure virtual methods. - - // Page management - virtual bool InsertPage(size_t n, - wxWindow *page, - const wxString& text, - bool bSelect = false, - int imageId = NO_IMAGE) wxOVERRIDE - { - if ( !wxBookCtrlBase::InsertPage(n, page, text, bSelect, imageId) ) - return false; - - m_pageTexts.insert(m_pageTexts.begin() + n, text); - - if ( !DoSetSelectionAfterInsertion(n, bSelect) ) - page->Hide(); - - return true; - } - - virtual int SetSelection(size_t n) wxOVERRIDE - { - return DoSetSelection(n, SetSelection_SendEvent); - } - - virtual int ChangeSelection(size_t n) wxOVERRIDE - { - return DoSetSelection(n); - } - - // Neither labels nor images are supported but we still store the labels - // just in case the user code attaches some importance to them. - virtual bool SetPageText(size_t n, const wxString& strText) wxOVERRIDE - { - wxCHECK_MSG( n < GetPageCount(), false, wxS("Invalid page") ); - - m_pageTexts[n] = strText; - - return true; - } - - virtual wxString GetPageText(size_t n) const wxOVERRIDE - { - wxCHECK_MSG( n < GetPageCount(), wxString(), wxS("Invalid page") ); - - return m_pageTexts[n]; - } - - virtual bool SetPageImage(size_t WXUNUSED(n), int WXUNUSED(imageId)) wxOVERRIDE - { - return false; - } - - virtual int GetPageImage(size_t WXUNUSED(n)) const wxOVERRIDE - { - return NO_IMAGE; - } - -protected: - virtual void UpdateSelectedPage(size_t newsel) wxOVERRIDE - { - m_selection = (int)newsel; - } - - virtual wxBookCtrlEvent* CreatePageChangingEvent() const wxOVERRIDE - { - return new wxBookCtrlEvent(wxEVT_BOOKCTRL_PAGE_CHANGING, - GetId()); - } - - virtual void MakeChangedEvent(wxBookCtrlEvent& event) wxOVERRIDE - { - event.SetEventType(wxEVT_BOOKCTRL_PAGE_CHANGED); - } - - virtual wxWindow *DoRemovePage(size_t page) wxOVERRIDE - { - wxWindow* const win = wxBookCtrlBase::DoRemovePage(page); - if ( win ) - { - m_pageTexts.erase(m_pageTexts.begin() + page); - - DoSetSelectionAfterRemoval(page); - } - - return win; - } - - virtual void DoSize() wxOVERRIDE - { - wxWindow* const page = GetCurrentPage(); - if ( page ) - page->SetSize(GetPageRect()); - } - - virtual void DoShowPage(wxWindow* page, bool show) wxOVERRIDE - { - if ( show ) - page->ShowWithEffect(m_showEffect, m_showTimeout); - else - page->HideWithEffect(m_hideEffect, m_hideTimeout); - } - -private: - void Init() - { - // We don't need any border as we don't have anything to separate the - // page contents from. - SetInternalBorder(0); - - // No effects by default. - m_showEffect = - m_hideEffect = wxSHOW_EFFECT_NONE; - - m_showTimeout = - m_hideTimeout = 0; - } - - wxVector<wxString> m_pageTexts; - - wxShowEffect m_showEffect, - m_hideEffect; - - unsigned m_showTimeout, - m_hideTimeout; - - wxDECLARE_NO_COPY_CLASS(wxSimplebook); -}; - -#endif // wxUSE_BOOKCTRL - -#endif // _WX_SIMPLEBOOK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sizer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sizer.h deleted file mode 100644 index 14b446a7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sizer.h +++ /dev/null @@ -1,1324 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/sizer.h -// Purpose: provide wxSizer class for layout -// Author: Robert Roebling and Robin Dunn -// Modified by: Ron Lee, Vadim Zeitlin (wxSizerFlags) -// Created: -// Copyright: (c) Robin Dunn, Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __WXSIZER_H__ -#define __WXSIZER_H__ - -#include "wx/defs.h" - -#include "wx/window.h" - -//--------------------------------------------------------------------------- -// classes -//--------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxButton; -class WXDLLIMPEXP_FWD_CORE wxBoxSizer; -class WXDLLIMPEXP_FWD_CORE wxSizerItem; -class WXDLLIMPEXP_FWD_CORE wxSizer; - -#ifndef wxUSE_BORDER_BY_DEFAULT - #define wxUSE_BORDER_BY_DEFAULT 1 -#endif - -// ---------------------------------------------------------------------------- -// wxSizerFlags: flags used for an item in the sizer -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSizerFlags -{ -public: - // construct the flags object initialized with the given proportion (0 by - // default) - wxSizerFlags(int proportion = 0) : m_proportion(proportion) - { - m_flags = 0; - m_borderInPixels = 0; - } - - // setters for all sizer flags, they all return the object itself so that - // calls to them can be chained - - wxSizerFlags& Proportion(int proportion) - { - m_proportion = proportion; - return *this; - } - - wxSizerFlags& Expand() - { - m_flags |= wxEXPAND; - return *this; - } - - // notice that Align() replaces the current alignment flags, use specific - // methods below such as Top(), Left() &c if you want to set just the - // vertical or horizontal alignment - wxSizerFlags& Align(int alignment) // combination of wxAlignment values - { - m_flags &= ~wxALIGN_MASK; - m_flags |= alignment; - - return *this; - } - - // some shortcuts for Align() - wxSizerFlags& Centre() { return Align(wxALIGN_CENTRE); } - wxSizerFlags& Center() { return Centre(); } - - wxSizerFlags& CentreVertical() { return Align(wxALIGN_CENTRE_VERTICAL); } - wxSizerFlags& CenterVertical() { return CentreVertical(); } - - wxSizerFlags& CentreHorizontal() { return Align(wxALIGN_CENTRE_HORIZONTAL); } - wxSizerFlags& CenterHorizontal() { return CentreHorizontal(); } - - wxSizerFlags& Top() - { - m_flags &= ~(wxALIGN_BOTTOM | wxALIGN_CENTRE_VERTICAL); - return *this; - } - - wxSizerFlags& Left() - { - m_flags &= ~(wxALIGN_RIGHT | wxALIGN_CENTRE_HORIZONTAL); - return *this; - } - - wxSizerFlags& Right() - { - m_flags = (m_flags & ~wxALIGN_CENTRE_HORIZONTAL) | wxALIGN_RIGHT; - return *this; - } - - wxSizerFlags& Bottom() - { - m_flags = (m_flags & ~wxALIGN_CENTRE_VERTICAL) | wxALIGN_BOTTOM; - return *this; - } - - - // default border size used by Border() below - static int GetDefaultBorder() - { -#if wxUSE_BORDER_BY_DEFAULT - #ifdef __WXGTK20__ - // GNOME HIG says to use 6px as the base unit: - // http://library.gnome.org/devel/hig-book/stable/design-window.html.en - return 6; - #elif defined(__WXMAC__) - // Not sure if this is really the correct size for the border. - return 5; - #else - // For the other platforms, we need to scale raw pixel values using the - // current DPI, do it once (and cache the result) in another function. - #define wxNEEDS_BORDER_IN_PX - - // We don't react to dynamic DPI changes, so we can cache the values of - // the border in on-screen pixels after computing it once. This - // could/should change in the future. - if ( !ms_defaultBorderInPx ) - ms_defaultBorderInPx = DoGetDefaultBorderInPx(); - - return ms_defaultBorderInPx; - #endif -#else - return 0; -#endif - } - - - wxSizerFlags& Border(int direction, int borderInPixels) - { - wxCHECK_MSG( !(direction & ~wxALL), *this, - wxS("direction must be a combination of wxDirection ") - wxS("enum values.") ); - - m_flags &= ~wxALL; - m_flags |= direction; - - m_borderInPixels = borderInPixels; - - return *this; - } - - wxSizerFlags& Border(int direction = wxALL) - { -#if wxUSE_BORDER_BY_DEFAULT - return Border(direction, GetDefaultBorder()); -#else - // no borders by default on limited size screen - wxUnusedVar(direction); - - return *this; -#endif - } - - wxSizerFlags& DoubleBorder(int direction = wxALL) - { -#if wxUSE_BORDER_BY_DEFAULT - return Border(direction, 2*GetDefaultBorder()); -#else - wxUnusedVar(direction); - - return *this; -#endif - } - - wxSizerFlags& TripleBorder(int direction = wxALL) - { -#if wxUSE_BORDER_BY_DEFAULT - return Border(direction, 3*GetDefaultBorder()); -#else - wxUnusedVar(direction); - - return *this; -#endif - } - - wxSizerFlags& HorzBorder() - { -#if wxUSE_BORDER_BY_DEFAULT - return Border(wxLEFT | wxRIGHT, GetDefaultBorder()); -#else - return *this; -#endif - } - - wxSizerFlags& DoubleHorzBorder() - { -#if wxUSE_BORDER_BY_DEFAULT - return Border(wxLEFT | wxRIGHT, 2*GetDefaultBorder()); -#else - return *this; -#endif - } - - // setters for the others flags - wxSizerFlags& Shaped() - { - m_flags |= wxSHAPED; - - return *this; - } - - wxSizerFlags& FixedMinSize() - { - m_flags |= wxFIXED_MINSIZE; - - return *this; - } - - // makes the item ignore window's visibility status - wxSizerFlags& ReserveSpaceEvenIfHidden() - { - m_flags |= wxRESERVE_SPACE_EVEN_IF_HIDDEN; - return *this; - } - - // accessors for wxSizer only - int GetProportion() const { return m_proportion; } - int GetFlags() const { return m_flags; } - int GetBorderInPixels() const { return m_borderInPixels; } - -private: -#ifdef wxNEEDS_BORDER_IN_PX - static int DoGetDefaultBorderInPx(); - - static int ms_defaultBorderInPx; -#endif // wxNEEDS_BORDER_IN_PX - - int m_proportion; - int m_flags; - int m_borderInPixels; -}; - - -// ---------------------------------------------------------------------------- -// wxSizerSpacer: used by wxSizerItem to represent a spacer -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSizerSpacer -{ -public: - wxSizerSpacer(const wxSize& size) : m_size(size), m_isShown(true) { } - - void SetSize(const wxSize& size) { m_size = size; } - const wxSize& GetSize() const { return m_size; } - - void Show(bool show) { m_isShown = show; } - bool IsShown() const { return m_isShown; } - -private: - // the size, in pixel - wxSize m_size; - - // is the spacer currently shown? - bool m_isShown; -}; - -// ---------------------------------------------------------------------------- -// wxSizerItem -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSizerItem : public wxObject -{ -public: - // window - wxSizerItem( wxWindow *window, - int proportion=0, - int flag=0, - int border=0, - wxObject* userData=NULL ); - - // window with flags - wxSizerItem(wxWindow *window, const wxSizerFlags& flags) - { - Init(flags); - - DoSetWindow(window); - } - - // subsizer - wxSizerItem( wxSizer *sizer, - int proportion=0, - int flag=0, - int border=0, - wxObject* userData=NULL ); - - // sizer with flags - wxSizerItem(wxSizer *sizer, const wxSizerFlags& flags) - { - Init(flags); - - DoSetSizer(sizer); - } - - // spacer - wxSizerItem( int width, - int height, - int proportion=0, - int flag=0, - int border=0, - wxObject* userData=NULL); - - // spacer with flags - wxSizerItem(int width, int height, const wxSizerFlags& flags) - { - Init(flags); - - DoSetSpacer(wxSize(width, height)); - } - - wxSizerItem(); - virtual ~wxSizerItem(); - - virtual void DeleteWindows(); - - // Enable deleting the SizerItem without destroying the contained sizer. - void DetachSizer() { m_sizer = NULL; } - - virtual wxSize GetSize() const; - virtual wxSize CalcMin(); - virtual void SetDimension( const wxPoint& pos, const wxSize& size ); - - wxSize GetMinSize() const - { return m_minSize; } - wxSize GetMinSizeWithBorder() const; - - wxSize GetMaxSize() const - { return IsWindow() ? m_window->GetMaxSize() : wxDefaultSize; } - wxSize GetMaxSizeWithBorder() const; - - void SetMinSize(const wxSize& size) - { - if ( IsWindow() ) - m_window->SetMinSize(size); - m_minSize = size; - } - void SetMinSize( int x, int y ) - { SetMinSize(wxSize(x, y)); } - void SetInitSize( int x, int y ) - { SetMinSize(wxSize(x, y)); } - - // if either of dimensions is zero, ratio is assumed to be 1 - // to avoid "divide by zero" errors - void SetRatio(int width, int height) - { m_ratio = (width && height) ? ((float) width / (float) height) : 1; } - void SetRatio(const wxSize& size) - { SetRatio(size.x, size.y); } - void SetRatio(float ratio) - { m_ratio = ratio; } - float GetRatio() const - { return m_ratio; } - - virtual wxRect GetRect() { return m_rect; } - - // set a sizer item id (different from a window id, all sizer items, - // including spacers, can have an associated id) - void SetId(int id) { m_id = id; } - int GetId() const { return m_id; } - - bool IsWindow() const { return m_kind == Item_Window; } - bool IsSizer() const { return m_kind == Item_Sizer; } - bool IsSpacer() const { return m_kind == Item_Spacer; } - - void SetProportion( int proportion ) - { m_proportion = proportion; } - int GetProportion() const - { return m_proportion; } - void SetFlag( int flag ) - { m_flag = flag; } - int GetFlag() const - { return m_flag; } - void SetBorder( int border ) - { m_border = border; } - int GetBorder() const - { return m_border; } - - wxWindow *GetWindow() const - { return m_kind == Item_Window ? m_window : NULL; } - wxSizer *GetSizer() const - { return m_kind == Item_Sizer ? m_sizer : NULL; } - wxSize GetSpacer() const; - - // This function behaves obviously for the windows and spacers but for the - // sizers it returns true if any sizer element is shown and only returns - // false if all of them are hidden. Also, it always returns true if - // wxRESERVE_SPACE_EVEN_IF_HIDDEN flag was used. - bool IsShown() const; - - void Show(bool show); - - void SetUserData(wxObject* userData) - { delete m_userData; m_userData = userData; } - wxObject* GetUserData() const - { return m_userData; } - wxPoint GetPosition() const - { return m_pos; } - - // Called once the first component of an item has been decided. This is - // used in algorithms that depend on knowing the size in one direction - // before the min size in the other direction can be known. - // Returns true if it made use of the information (and min size was changed). - bool InformFirstDirection( int direction, int size, int availableOtherDir=-1 ); - - // these functions delete the current contents of the item if it's a sizer - // or a spacer but not if it is a window - void AssignWindow(wxWindow *window) - { - Free(); - DoSetWindow(window); - } - - void AssignSizer(wxSizer *sizer) - { - Free(); - DoSetSizer(sizer); - } - - void AssignSpacer(const wxSize& size) - { - Free(); - DoSetSpacer(size); - } - - void AssignSpacer(int w, int h) { AssignSpacer(wxSize(w, h)); } - -#if WXWIN_COMPATIBILITY_2_8 - // these functions do not free the old sizer/spacer and so can easily - // provoke the memory leaks and so shouldn't be used, use Assign() instead - wxDEPRECATED( void SetWindow(wxWindow *window) ); - wxDEPRECATED( void SetSizer(wxSizer *sizer) ); - wxDEPRECATED( void SetSpacer(const wxSize& size) ); - wxDEPRECATED( void SetSpacer(int width, int height) ); -#endif // WXWIN_COMPATIBILITY_2_8 - -protected: - // common part of several ctors - void Init() { m_userData = NULL; m_kind = Item_None; } - - // common part of ctors taking wxSizerFlags - void Init(const wxSizerFlags& flags); - - // free current contents - void Free(); - - // common parts of Set/AssignXXX() - void DoSetWindow(wxWindow *window); - void DoSetSizer(wxSizer *sizer); - void DoSetSpacer(const wxSize& size); - - // Add the border specified for this item to the given size - // if it's != wxDefaultSize, just return wxDefaultSize otherwise. - wxSize AddBorderToSize(const wxSize& size) const; - - // discriminated union: depending on m_kind one of the fields is valid - enum - { - Item_None, - Item_Window, - Item_Sizer, - Item_Spacer, - Item_Max - } m_kind; - union - { - wxWindow *m_window; - wxSizer *m_sizer; - wxSizerSpacer *m_spacer; - }; - - wxPoint m_pos; - wxSize m_minSize; - int m_proportion; - int m_border; - int m_flag; - int m_id; - - // on screen rectangle of this item (not including borders) - wxRect m_rect; - - // Aspect ratio can always be calculated from m_size, - // but this would cause precision loss when the window - // is shrunk. It is safer to preserve the initial value. - float m_ratio; - - wxObject *m_userData; - -private: - wxDECLARE_CLASS(wxSizerItem); - wxDECLARE_NO_COPY_CLASS(wxSizerItem); -}; - -WX_DECLARE_EXPORTED_LIST( wxSizerItem, wxSizerItemList ); - - -//--------------------------------------------------------------------------- -// wxSizer -//--------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSizer: public wxObject, public wxClientDataContainer -{ -public: - wxSizer() { m_containingWindow = NULL; } - virtual ~wxSizer(); - - // methods for adding elements to the sizer: there are Add/Insert/Prepend - // overloads for each of window/sizer/spacer/wxSizerItem - wxSizerItem* Add(wxWindow *window, - int proportion = 0, - int flag = 0, - int border = 0, - wxObject* userData = NULL); - wxSizerItem* Add(wxSizer *sizer, - int proportion = 0, - int flag = 0, - int border = 0, - wxObject* userData = NULL); - wxSizerItem* Add(int width, - int height, - int proportion = 0, - int flag = 0, - int border = 0, - wxObject* userData = NULL); - wxSizerItem* Add( wxWindow *window, const wxSizerFlags& flags); - wxSizerItem* Add( wxSizer *sizer, const wxSizerFlags& flags); - wxSizerItem* Add( int width, int height, const wxSizerFlags& flags); - wxSizerItem* Add( wxSizerItem *item); - - virtual wxSizerItem *AddSpacer(int size); - wxSizerItem* AddStretchSpacer(int prop = 1); - - wxSizerItem* Insert(size_t index, - wxWindow *window, - int proportion = 0, - int flag = 0, - int border = 0, - wxObject* userData = NULL); - wxSizerItem* Insert(size_t index, - wxSizer *sizer, - int proportion = 0, - int flag = 0, - int border = 0, - wxObject* userData = NULL); - wxSizerItem* Insert(size_t index, - int width, - int height, - int proportion = 0, - int flag = 0, - int border = 0, - wxObject* userData = NULL); - wxSizerItem* Insert(size_t index, - wxWindow *window, - const wxSizerFlags& flags); - wxSizerItem* Insert(size_t index, - wxSizer *sizer, - const wxSizerFlags& flags); - wxSizerItem* Insert(size_t index, - int width, - int height, - const wxSizerFlags& flags); - - // NB: do _not_ override this function in the derived classes, this one is - // virtual for compatibility reasons only to allow old code overriding - // it to continue to work, override DoInsert() instead in the new code - virtual wxSizerItem* Insert(size_t index, wxSizerItem *item); - - wxSizerItem* InsertSpacer(size_t index, int size); - wxSizerItem* InsertStretchSpacer(size_t index, int prop = 1); - - wxSizerItem* Prepend(wxWindow *window, - int proportion = 0, - int flag = 0, - int border = 0, - wxObject* userData = NULL); - wxSizerItem* Prepend(wxSizer *sizer, - int proportion = 0, - int flag = 0, - int border = 0, - wxObject* userData = NULL); - wxSizerItem* Prepend(int width, - int height, - int proportion = 0, - int flag = 0, - int border = 0, - wxObject* userData = NULL); - wxSizerItem* Prepend(wxWindow *window, const wxSizerFlags& flags); - wxSizerItem* Prepend(wxSizer *sizer, const wxSizerFlags& flags); - wxSizerItem* Prepend(int width, int height, const wxSizerFlags& flags); - wxSizerItem* Prepend(wxSizerItem *item); - - wxSizerItem* PrependSpacer(int size); - wxSizerItem* PrependStretchSpacer(int prop = 1); - - // set (or possibly unset if window is NULL) or get the window this sizer - // is used in - void SetContainingWindow(wxWindow *window); - wxWindow *GetContainingWindow() const { return m_containingWindow; } - - virtual bool Remove( wxSizer *sizer ); - virtual bool Remove( int index ); - - virtual bool Detach( wxWindow *window ); - virtual bool Detach( wxSizer *sizer ); - virtual bool Detach( int index ); - - virtual bool Replace( wxWindow *oldwin, wxWindow *newwin, bool recursive = false ); - virtual bool Replace( wxSizer *oldsz, wxSizer *newsz, bool recursive = false ); - virtual bool Replace( size_t index, wxSizerItem *newitem ); - - virtual void Clear( bool delete_windows = false ); - virtual void DeleteWindows(); - - // Inform sizer about the first direction that has been decided (by parent item) - // Returns true if it made use of the information (and recalculated min size) - virtual bool InformFirstDirection( int WXUNUSED(direction), int WXUNUSED(size), int WXUNUSED(availableOtherDir) ) - { return false; } - - void SetMinSize( int width, int height ) - { DoSetMinSize( width, height ); } - void SetMinSize( const wxSize& size ) - { DoSetMinSize( size.x, size.y ); } - - // Searches recursively - bool SetItemMinSize( wxWindow *window, int width, int height ) - { return DoSetItemMinSize( window, width, height ); } - bool SetItemMinSize( wxWindow *window, const wxSize& size ) - { return DoSetItemMinSize( window, size.x, size.y ); } - - // Searches recursively - bool SetItemMinSize( wxSizer *sizer, int width, int height ) - { return DoSetItemMinSize( sizer, width, height ); } - bool SetItemMinSize( wxSizer *sizer, const wxSize& size ) - { return DoSetItemMinSize( sizer, size.x, size.y ); } - - bool SetItemMinSize( size_t index, int width, int height ) - { return DoSetItemMinSize( index, width, height ); } - bool SetItemMinSize( size_t index, const wxSize& size ) - { return DoSetItemMinSize( index, size.x, size.y ); } - - wxSize GetSize() const - { return m_size; } - wxPoint GetPosition() const - { return m_position; } - - // Calculate the minimal size or return m_minSize if bigger. - wxSize GetMinSize(); - - // These virtual functions are used by the layout algorithm: first - // CalcMin() is called to calculate the minimal size of the sizer and - // prepare for laying it out and then RecalcSizes() is called to really - // update all the sizer items - virtual wxSize CalcMin() = 0; - virtual void RecalcSizes() = 0; - - virtual void Layout(); - - wxSize ComputeFittingClientSize(wxWindow *window); - wxSize ComputeFittingWindowSize(wxWindow *window); - - wxSize Fit( wxWindow *window ); - void FitInside( wxWindow *window ); - void SetSizeHints( wxWindow *window ); -#if WXWIN_COMPATIBILITY_2_8 - // This only calls FitInside() since 2.9 - wxDEPRECATED( void SetVirtualSizeHints( wxWindow *window ) ); -#endif - - wxSizerItemList& GetChildren() - { return m_children; } - const wxSizerItemList& GetChildren() const - { return m_children; } - - void SetDimension(const wxPoint& pos, const wxSize& size) - { - m_position = pos; - m_size = size; - Layout(); - - // This call is required for wxWrapSizer to be able to calculate its - // minimal size correctly. - InformFirstDirection(wxHORIZONTAL, size.x, size.y); - } - void SetDimension(int x, int y, int width, int height) - { SetDimension(wxPoint(x, y), wxSize(width, height)); } - - size_t GetItemCount() const { return m_children.GetCount(); } - bool IsEmpty() const { return m_children.IsEmpty(); } - - wxSizerItem* GetItem( wxWindow *window, bool recursive = false ); - wxSizerItem* GetItem( wxSizer *sizer, bool recursive = false ); - wxSizerItem* GetItem( size_t index ); - wxSizerItem* GetItemById( int id, bool recursive = false ); - - // Manage whether individual scene items are considered - // in the layout calculations or not. - bool Show( wxWindow *window, bool show = true, bool recursive = false ); - bool Show( wxSizer *sizer, bool show = true, bool recursive = false ); - bool Show( size_t index, bool show = true ); - - bool Hide( wxSizer *sizer, bool recursive = false ) - { return Show( sizer, false, recursive ); } - bool Hide( wxWindow *window, bool recursive = false ) - { return Show( window, false, recursive ); } - bool Hide( size_t index ) - { return Show( index, false ); } - - bool IsShown( wxWindow *window ) const; - bool IsShown( wxSizer *sizer ) const; - bool IsShown( size_t index ) const; - - // Recursively call wxWindow::Show () on all sizer items. - virtual void ShowItems (bool show); - - void Show(bool show) { ShowItems(show); } - - // This is the ShowItems() counterpart and returns true if any of the sizer - // items are shown. - virtual bool AreAnyItemsShown() const; - -protected: - wxSize m_size; - wxSize m_minSize; - wxPoint m_position; - wxSizerItemList m_children; - - // the window this sizer is used in, can be NULL - wxWindow *m_containingWindow; - - wxSize GetMaxClientSize( wxWindow *window ) const; - wxSize GetMinClientSize( wxWindow *window ); - wxSize VirtualFitSize( wxWindow *window ); - - virtual void DoSetMinSize( int width, int height ); - virtual bool DoSetItemMinSize( wxWindow *window, int width, int height ); - virtual bool DoSetItemMinSize( wxSizer *sizer, int width, int height ); - virtual bool DoSetItemMinSize( size_t index, int width, int height ); - - // insert a new item into m_children at given index and return the item - // itself - virtual wxSizerItem* DoInsert(size_t index, wxSizerItem *item); - -private: - wxDECLARE_CLASS(wxSizer); -}; - -//--------------------------------------------------------------------------- -// wxGridSizer -//--------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGridSizer: public wxSizer -{ -public: - // ctors specifying the number of columns only: number of rows will be - // deduced automatically depending on the number of sizer elements - wxGridSizer( int cols, int vgap, int hgap ); - wxGridSizer( int cols, const wxSize& gap = wxSize(0, 0) ); - - // ctors specifying the number of rows and columns - wxGridSizer( int rows, int cols, int vgap, int hgap ); - wxGridSizer( int rows, int cols, const wxSize& gap ); - - virtual void RecalcSizes() wxOVERRIDE; - virtual wxSize CalcMin() wxOVERRIDE; - - void SetCols( int cols ) - { - wxASSERT_MSG( cols >= 0, "Number of columns must be non-negative"); - m_cols = cols; - } - - void SetRows( int rows ) - { - wxASSERT_MSG( rows >= 0, "Number of rows must be non-negative"); - m_rows = rows; - } - - void SetVGap( int gap ) { m_vgap = gap; } - void SetHGap( int gap ) { m_hgap = gap; } - int GetCols() const { return m_cols; } - int GetRows() const { return m_rows; } - int GetVGap() const { return m_vgap; } - int GetHGap() const { return m_hgap; } - - int GetEffectiveColsCount() const { return m_cols ? m_cols : CalcCols(); } - int GetEffectiveRowsCount() const { return m_rows ? m_rows : CalcRows(); } - - // return the number of total items and the number of columns and rows - // (for internal use only) - int CalcRowsCols(int& rows, int& cols) const; - -protected: - // the number of rows/columns in the sizer, if 0 then it is determined - // dynamically depending on the total number of items - int m_rows; - int m_cols; - - // gaps between rows and columns - int m_vgap; - int m_hgap; - - virtual wxSizerItem *DoInsert(size_t index, wxSizerItem *item) wxOVERRIDE; - - void SetItemBounds( wxSizerItem *item, int x, int y, int w, int h ); - - // returns the number of columns/rows needed for the current total number - // of children (and the fixed number of rows/columns) - int CalcCols() const - { - wxCHECK_MSG - ( - m_rows, 0, - "Can't calculate number of cols if number of rows is not specified" - ); - - return int(m_children.GetCount() + m_rows - 1) / m_rows; - } - - int CalcRows() const - { - wxCHECK_MSG - ( - m_cols, 0, - "Can't calculate number of cols if number of rows is not specified" - ); - - return int(m_children.GetCount() + m_cols - 1) / m_cols; - } - -private: - wxDECLARE_CLASS(wxGridSizer); -}; - -//--------------------------------------------------------------------------- -// wxFlexGridSizer -//--------------------------------------------------------------------------- - -// values which define the behaviour for resizing wxFlexGridSizer cells in the -// "non-flexible" direction -enum wxFlexSizerGrowMode -{ - // don't resize the cells in non-flexible direction at all - wxFLEX_GROWMODE_NONE, - - // uniformly resize only the specified ones (default) - wxFLEX_GROWMODE_SPECIFIED, - - // uniformly resize all cells - wxFLEX_GROWMODE_ALL -}; - -class WXDLLIMPEXP_CORE wxFlexGridSizer: public wxGridSizer -{ -public: - // ctors specifying the number of columns only: number of rows will be - // deduced automatically depending on the number of sizer elements - wxFlexGridSizer( int cols, int vgap, int hgap ); - wxFlexGridSizer( int cols, const wxSize& gap = wxSize(0, 0) ); - - // ctors specifying the number of rows and columns - wxFlexGridSizer( int rows, int cols, int vgap, int hgap ); - wxFlexGridSizer( int rows, int cols, const wxSize& gap ); - - // dtor - virtual ~wxFlexGridSizer(); - - // set the rows/columns which will grow (the others will remain of the - // constant initial size) - void AddGrowableRow( size_t idx, int proportion = 0 ); - void RemoveGrowableRow( size_t idx ); - void AddGrowableCol( size_t idx, int proportion = 0 ); - void RemoveGrowableCol( size_t idx ); - - bool IsRowGrowable( size_t idx ); - bool IsColGrowable( size_t idx ); - - // the sizer cells may grow in both directions, not grow at all or only - // grow in one direction but not the other - - // the direction may be wxVERTICAL, wxHORIZONTAL or wxBOTH (default) - void SetFlexibleDirection(int direction) { m_flexDirection = direction; } - int GetFlexibleDirection() const { return m_flexDirection; } - - // note that the grow mode only applies to the direction which is not - // flexible - void SetNonFlexibleGrowMode(wxFlexSizerGrowMode mode) { m_growMode = mode; } - wxFlexSizerGrowMode GetNonFlexibleGrowMode() const { return m_growMode; } - - // Read-only access to the row heights and col widths arrays - const wxArrayInt& GetRowHeights() const { return m_rowHeights; } - const wxArrayInt& GetColWidths() const { return m_colWidths; } - - // implementation - virtual void RecalcSizes() wxOVERRIDE; - virtual wxSize CalcMin() wxOVERRIDE; - -protected: - void AdjustForFlexDirection(); - void AdjustForGrowables(const wxSize& sz); - void FindWidthsAndHeights(int nrows, int ncols); - - // the heights/widths of all rows/columns - wxArrayInt m_rowHeights, - m_colWidths; - - // indices of the growable columns and rows - wxArrayInt m_growableRows, - m_growableCols; - - // proportion values of the corresponding growable rows and columns - wxArrayInt m_growableRowsProportions, - m_growableColsProportions; - - // parameters describing whether the growable cells should be resized in - // both directions or only one - int m_flexDirection; - wxFlexSizerGrowMode m_growMode; - - // saves CalcMin result to optimize RecalcSizes - wxSize m_calculatedMinSize; - -private: - wxDECLARE_CLASS(wxFlexGridSizer); - wxDECLARE_NO_COPY_CLASS(wxFlexGridSizer); -}; - -//--------------------------------------------------------------------------- -// wxBoxSizer -//--------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxBoxSizer: public wxSizer -{ -public: - wxBoxSizer(int orient) - { - m_orient = orient; - m_totalProportion = 0; - - wxASSERT_MSG( m_orient == wxHORIZONTAL || m_orient == wxVERTICAL, - wxT("invalid value for wxBoxSizer orientation") ); - } - - virtual wxSizerItem *AddSpacer(int size) wxOVERRIDE; - - int GetOrientation() const { return m_orient; } - - bool IsVertical() const { return m_orient == wxVERTICAL; } - - void SetOrientation(int orient) { m_orient = orient; } - - // implementation of our resizing logic - virtual wxSize CalcMin() wxOVERRIDE; - virtual void RecalcSizes() wxOVERRIDE; - -protected: - // Only overridden to perform extra debugging checks. - virtual wxSizerItem *DoInsert(size_t index, wxSizerItem *item) wxOVERRIDE; - - // helpers for our code: this returns the component of the given wxSize in - // the direction of the sizer and in the other direction, respectively - int GetSizeInMajorDir(const wxSize& sz) const - { - return m_orient == wxHORIZONTAL ? sz.x : sz.y; - } - - int& SizeInMajorDir(wxSize& sz) - { - return m_orient == wxHORIZONTAL ? sz.x : sz.y; - } - - int& PosInMajorDir(wxPoint& pt) - { - return m_orient == wxHORIZONTAL ? pt.x : pt.y; - } - - int GetSizeInMinorDir(const wxSize& sz) const - { - return m_orient == wxHORIZONTAL ? sz.y : sz.x; - } - - int& SizeInMinorDir(wxSize& sz) - { - return m_orient == wxHORIZONTAL ? sz.y : sz.x; - } - - int& PosInMinorDir(wxPoint& pt) - { - return m_orient == wxHORIZONTAL ? pt.y : pt.x; - } - - // another helper: creates wxSize from major and minor components - wxSize SizeFromMajorMinor(int major, int minor) const - { - if ( m_orient == wxHORIZONTAL ) - { - return wxSize(major, minor); - } - else // wxVERTICAL - { - return wxSize(minor, major); - } - } - - - // either wxHORIZONTAL or wxVERTICAL - int m_orient; - - // the sum of proportion of all of our elements - int m_totalProportion; - - // the minimal size needed for this sizer as calculated by the last call to - // our CalcMin() - wxSize m_calculatedMinSize; - -private: - wxDECLARE_CLASS(wxBoxSizer); -}; - -//--------------------------------------------------------------------------- -// wxStaticBoxSizer -//--------------------------------------------------------------------------- - -#if wxUSE_STATBOX - -class WXDLLIMPEXP_FWD_CORE wxStaticBox; - -class WXDLLIMPEXP_CORE wxStaticBoxSizer: public wxBoxSizer -{ -public: - wxStaticBoxSizer(wxStaticBox *box, int orient); - wxStaticBoxSizer(int orient, wxWindow *win, const wxString& label = wxEmptyString); - virtual ~wxStaticBoxSizer(); - - void RecalcSizes() wxOVERRIDE; - wxSize CalcMin() wxOVERRIDE; - - wxStaticBox *GetStaticBox() const - { return m_staticBox; } - - // override to hide/show the static box as well - virtual void ShowItems (bool show) wxOVERRIDE; - virtual bool AreAnyItemsShown() const wxOVERRIDE; - - virtual bool Detach( wxWindow *window ) wxOVERRIDE; - virtual bool Detach( wxSizer *sizer ) wxOVERRIDE { return wxBoxSizer::Detach(sizer); } - virtual bool Detach( int index ) wxOVERRIDE { return wxBoxSizer::Detach(index); } - -protected: - wxStaticBox *m_staticBox; - -private: - wxDECLARE_CLASS(wxStaticBoxSizer); - wxDECLARE_NO_COPY_CLASS(wxStaticBoxSizer); -}; - -#endif // wxUSE_STATBOX - -//--------------------------------------------------------------------------- -// wxStdDialogButtonSizer -//--------------------------------------------------------------------------- - -#if wxUSE_BUTTON - -class WXDLLIMPEXP_CORE wxStdDialogButtonSizer: public wxBoxSizer -{ -public: - // Constructor just creates a new wxBoxSizer, not much else. - // Box sizer orientation is automatically determined here: - // vertical for PDAs, horizontal for everything else? - wxStdDialogButtonSizer(); - - // Checks button ID against system IDs and sets one of the pointers below - // to this button. Does not do any sizer-related things here. - void AddButton(wxButton *button); - - // Use these if no standard ID can/should be used - void SetAffirmativeButton( wxButton *button ); - void SetNegativeButton( wxButton *button ); - void SetCancelButton( wxButton *button ); - - // All platform-specific code here, checks which buttons exist and add - // them to the sizer accordingly. - // Note - one potential hack on Mac we could use here, - // if m_buttonAffirmative is wxID_SAVE then ensure wxID_SAVE - // is set to _("Save") and m_buttonNegative is set to _("Don't Save") - // I wouldn't add any other hacks like that into here, - // but this one I can see being useful. - void Realize(); - - wxButton *GetAffirmativeButton() const { return m_buttonAffirmative; } - wxButton *GetApplyButton() const { return m_buttonApply; } - wxButton *GetNegativeButton() const { return m_buttonNegative; } - wxButton *GetCancelButton() const { return m_buttonCancel; } - wxButton *GetHelpButton() const { return m_buttonHelp; } - -protected: - wxButton *m_buttonAffirmative; // wxID_OK, wxID_YES, wxID_SAVE go here - wxButton *m_buttonApply; // wxID_APPLY - wxButton *m_buttonNegative; // wxID_NO - wxButton *m_buttonCancel; // wxID_CANCEL, wxID_CLOSE - wxButton *m_buttonHelp; // wxID_HELP, wxID_CONTEXT_HELP - -private: - wxDECLARE_CLASS(wxStdDialogButtonSizer); - wxDECLARE_NO_COPY_CLASS(wxStdDialogButtonSizer); -}; - -#endif // wxUSE_BUTTON - - -// ---------------------------------------------------------------------------- -// inline functions implementation -// ---------------------------------------------------------------------------- - -#if WXWIN_COMPATIBILITY_2_8 - -inline void wxSizerItem::SetWindow(wxWindow *window) -{ - DoSetWindow(window); -} - -inline void wxSizerItem::SetSizer(wxSizer *sizer) -{ - DoSetSizer(sizer); -} - -inline void wxSizerItem::SetSpacer(const wxSize& size) -{ - DoSetSpacer(size); -} - -inline void wxSizerItem::SetSpacer(int width, int height) -{ - DoSetSpacer(wxSize(width, height)); -} - -#endif // WXWIN_COMPATIBILITY_2_8 - -inline wxSizerItem* -wxSizer::Insert(size_t index, wxSizerItem *item) -{ - return DoInsert(index, item); -} - - -inline wxSizerItem* -wxSizer::Add( wxSizerItem *item ) -{ - return Insert( m_children.GetCount(), item ); -} - -inline wxSizerItem* -wxSizer::Add( wxWindow *window, int proportion, int flag, int border, wxObject* userData ) -{ - return Add( new wxSizerItem( window, proportion, flag, border, userData ) ); -} - -inline wxSizerItem* -wxSizer::Add( wxSizer *sizer, int proportion, int flag, int border, wxObject* userData ) -{ - return Add( new wxSizerItem( sizer, proportion, flag, border, userData ) ); -} - -inline wxSizerItem* -wxSizer::Add( int width, int height, int proportion, int flag, int border, wxObject* userData ) -{ - return Add( new wxSizerItem( width, height, proportion, flag, border, userData ) ); -} - -inline wxSizerItem* -wxSizer::Add( wxWindow *window, const wxSizerFlags& flags ) -{ - return Add( new wxSizerItem(window, flags) ); -} - -inline wxSizerItem* -wxSizer::Add( wxSizer *sizer, const wxSizerFlags& flags ) -{ - return Add( new wxSizerItem(sizer, flags) ); -} - -inline wxSizerItem* -wxSizer::Add( int width, int height, const wxSizerFlags& flags ) -{ - return Add( new wxSizerItem(width, height, flags) ); -} - -inline wxSizerItem* -wxSizer::AddSpacer(int size) -{ - return Add(size, size); -} - -inline wxSizerItem* -wxSizer::AddStretchSpacer(int prop) -{ - return Add(0, 0, prop); -} - -inline wxSizerItem* -wxSizer::Prepend( wxSizerItem *item ) -{ - return Insert( 0, item ); -} - -inline wxSizerItem* -wxSizer::Prepend( wxWindow *window, int proportion, int flag, int border, wxObject* userData ) -{ - return Prepend( new wxSizerItem( window, proportion, flag, border, userData ) ); -} - -inline wxSizerItem* -wxSizer::Prepend( wxSizer *sizer, int proportion, int flag, int border, wxObject* userData ) -{ - return Prepend( new wxSizerItem( sizer, proportion, flag, border, userData ) ); -} - -inline wxSizerItem* -wxSizer::Prepend( int width, int height, int proportion, int flag, int border, wxObject* userData ) -{ - return Prepend( new wxSizerItem( width, height, proportion, flag, border, userData ) ); -} - -inline wxSizerItem* -wxSizer::PrependSpacer(int size) -{ - return Prepend(size, size); -} - -inline wxSizerItem* -wxSizer::PrependStretchSpacer(int prop) -{ - return Prepend(0, 0, prop); -} - -inline wxSizerItem* -wxSizer::Prepend( wxWindow *window, const wxSizerFlags& flags ) -{ - return Prepend( new wxSizerItem(window, flags) ); -} - -inline wxSizerItem* -wxSizer::Prepend( wxSizer *sizer, const wxSizerFlags& flags ) -{ - return Prepend( new wxSizerItem(sizer, flags) ); -} - -inline wxSizerItem* -wxSizer::Prepend( int width, int height, const wxSizerFlags& flags ) -{ - return Prepend( new wxSizerItem(width, height, flags) ); -} - -inline wxSizerItem* -wxSizer::Insert( size_t index, - wxWindow *window, - int proportion, - int flag, - int border, - wxObject* userData ) -{ - return Insert( index, new wxSizerItem( window, proportion, flag, border, userData ) ); -} - -inline wxSizerItem* -wxSizer::Insert( size_t index, - wxSizer *sizer, - int proportion, - int flag, - int border, - wxObject* userData ) -{ - return Insert( index, new wxSizerItem( sizer, proportion, flag, border, userData ) ); -} - -inline wxSizerItem* -wxSizer::Insert( size_t index, - int width, - int height, - int proportion, - int flag, - int border, - wxObject* userData ) -{ - return Insert( index, new wxSizerItem( width, height, proportion, flag, border, userData ) ); -} - -inline wxSizerItem* -wxSizer::Insert( size_t index, wxWindow *window, const wxSizerFlags& flags ) -{ - return Insert( index, new wxSizerItem(window, flags) ); -} - -inline wxSizerItem* -wxSizer::Insert( size_t index, wxSizer *sizer, const wxSizerFlags& flags ) -{ - return Insert( index, new wxSizerItem(sizer, flags) ); -} - -inline wxSizerItem* -wxSizer::Insert( size_t index, int width, int height, const wxSizerFlags& flags ) -{ - return Insert( index, new wxSizerItem(width, height, flags) ); -} - -inline wxSizerItem* -wxSizer::InsertSpacer(size_t index, int size) -{ - return Insert(index, size, size); -} - -inline wxSizerItem* -wxSizer::InsertStretchSpacer(size_t index, int prop) -{ - return Insert(index, 0, 0, prop); -} - -#endif // __WXSIZER_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/slider.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/slider.h deleted file mode 100644 index 7d615ca6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/slider.h +++ /dev/null @@ -1,149 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/slider.h -// Purpose: wxSlider interface -// Author: Vadim Zeitlin -// Modified by: -// Created: 09.02.01 -// Copyright: (c) 1996-2001 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SLIDER_H_BASE_ -#define _WX_SLIDER_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_SLIDER - -#include "wx/control.h" - -// ---------------------------------------------------------------------------- -// wxSlider flags -// ---------------------------------------------------------------------------- - -#define wxSL_HORIZONTAL wxHORIZONTAL /* 0x0004 */ -#define wxSL_VERTICAL wxVERTICAL /* 0x0008 */ - -#define wxSL_TICKS 0x0010 -#define wxSL_AUTOTICKS wxSL_TICKS // we don't support manual ticks -#define wxSL_LEFT 0x0040 -#define wxSL_TOP 0x0080 -#define wxSL_RIGHT 0x0100 -#define wxSL_BOTTOM 0x0200 -#define wxSL_BOTH 0x0400 -#define wxSL_SELRANGE 0x0800 -#define wxSL_INVERSE 0x1000 -#define wxSL_MIN_MAX_LABELS 0x2000 -#define wxSL_VALUE_LABEL 0x4000 -#define wxSL_LABELS (wxSL_MIN_MAX_LABELS|wxSL_VALUE_LABEL) - -extern WXDLLIMPEXP_DATA_CORE(const char) wxSliderNameStr[]; - -// ---------------------------------------------------------------------------- -// wxSliderBase: define wxSlider interface -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSliderBase : public wxControl -{ -public: - /* the ctor of the derived class should have the following form: - - wxSlider(wxWindow *parent, - wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr); - */ - wxSliderBase() { } - - // get/set the current slider value (should be in range) - virtual int GetValue() const = 0; - virtual void SetValue(int value) = 0; - - // retrieve/change the range - virtual void SetRange(int minValue, int maxValue) = 0; - virtual int GetMin() const = 0; - virtual int GetMax() const = 0; - void SetMin( int minValue ) { SetRange( minValue , GetMax() ) ; } - void SetMax( int maxValue ) { SetRange( GetMin() , maxValue ) ; } - - // the line/page size is the increment by which the slider moves when - // cursor arrow key/page up or down are pressed (clicking the mouse is like - // pressing PageUp/Down) and are by default set to 1 and 1/10 of the range - virtual void SetLineSize(int lineSize) = 0; - virtual void SetPageSize(int pageSize) = 0; - virtual int GetLineSize() const = 0; - virtual int GetPageSize() const = 0; - - // these methods get/set the length of the slider pointer in pixels - virtual void SetThumbLength(int lenPixels) = 0; - virtual int GetThumbLength() const = 0; - - // warning: most of subsequent methods are currently only implemented in - // wxMSW under Win95 and are silently ignored on other platforms - - void SetTickFreq(int freq) { DoSetTickFreq(freq); } - virtual int GetTickFreq() const { return 0; } - virtual void ClearTicks() { } - virtual void SetTick(int WXUNUSED(tickPos)) { } - - virtual void ClearSel() { } - virtual int GetSelEnd() const { return GetMin(); } - virtual int GetSelStart() const { return GetMax(); } - virtual void SetSelection(int WXUNUSED(min), int WXUNUSED(max)) { } - -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED_INLINE( void SetTickFreq(int freq, int), DoSetTickFreq(freq); ) -#endif - -protected: - // Platform-specific implementation of SetTickFreq - virtual void DoSetTickFreq(int WXUNUSED(freq)) { /* unsupported by default */ } - - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - // adjust value according to wxSL_INVERSE style - virtual int ValueInvertOrNot(int value) const - { - if (HasFlag(wxSL_INVERSE)) - return (GetMax() + GetMin()) - value; - else - return value; - } - -private: - wxDECLARE_NO_COPY_CLASS(wxSliderBase); -}; - -// ---------------------------------------------------------------------------- -// include the real class declaration -// ---------------------------------------------------------------------------- - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/slider.h" -#elif defined(__WXMSW__) - #include "wx/msw/slider.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/slider.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/slider.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/slider.h" -#elif defined(__WXMAC__) - #include "wx/osx/slider.h" -#elif defined(__WXQT__) - #include "wx/qt/slider.h" -#endif - -#endif // wxUSE_SLIDER - -#endif - // _WX_SLIDER_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/snglinst.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/snglinst.h deleted file mode 100644 index 61213a86..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/snglinst.h +++ /dev/null @@ -1,96 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/snglinst.h -// Purpose: wxSingleInstanceChecker can be used to restrict the number of -// simultaneously running copies of a program to one -// Author: Vadim Zeitlin -// Modified by: -// Created: 08.06.01 -// Copyright: (c) 2001 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SNGLINST_H_ -#define _WX_SNGLINST_H_ - -#if wxUSE_SNGLINST_CHECKER - -#include "wx/app.h" -#include "wx/utils.h" - -// ---------------------------------------------------------------------------- -// wxSingleInstanceChecker -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxSingleInstanceChecker -{ -public: - // default ctor, use Create() after it - wxSingleInstanceChecker() { Init(); } - - // like Create() but no error checking (dangerous!) - wxSingleInstanceChecker(const wxString& name, - const wxString& path = wxEmptyString) - { - Init(); - Create(name, path); - } - - // notice that calling Create() is optional now, if you don't do it before - // calling IsAnotherRunning(), CreateDefault() is used automatically - // - // name it is used as the mutex name under Win32 and the lock file name - // under Unix so it should be as unique as possible and must be non-empty - // - // path is optional and is ignored under Win32 and used as the directory to - // create the lock file in under Unix (default is wxGetHomeDir()) - // - // returns false if initialization failed, it doesn't mean that another - // instance is running - use IsAnotherRunning() to check it - bool Create(const wxString& name, const wxString& path = wxEmptyString); - - // use the default name, which is a combination of wxTheApp->GetAppName() - // and wxGetUserId() for mutex/lock file - // - // this is called implicitly by IsAnotherRunning() if the checker hadn't - // been created until then - bool CreateDefault() - { - wxCHECK_MSG( wxTheApp, false, "must have application instance" ); - return Create(wxTheApp->GetAppName() + '-' + wxGetUserId()); - } - - // is another copy of this program already running? - bool IsAnotherRunning() const - { - if ( !m_impl ) - { - if ( !const_cast<wxSingleInstanceChecker *>(this)->CreateDefault() ) - { - // if creation failed, return false as it's better to not - // prevent this instance from starting up if there is an error - return false; - } - } - - return DoIsAnotherRunning(); - } - - // dtor is not virtual, this class is not meant to be used polymorphically - ~wxSingleInstanceChecker(); - -private: - // common part of all ctors - void Init() { m_impl = NULL; } - - // do check if another instance is running, called only if m_impl != NULL - bool DoIsAnotherRunning() const; - - // the implementation details (platform specific) - class WXDLLIMPEXP_FWD_BASE wxSingleInstanceCheckerImpl *m_impl; - - wxDECLARE_NO_COPY_CLASS(wxSingleInstanceChecker); -}; - -#endif // wxUSE_SNGLINST_CHECKER - -#endif // _WX_SNGLINST_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/socket.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/socket.h deleted file mode 100644 index daded4bf..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/socket.h +++ /dev/null @@ -1,435 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/socket.h -// Purpose: Socket handling classes -// Authors: Guilhem Lavaux, Guillermo Rodriguez Garcia -// Modified by: -// Created: April 1997 -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SOCKET_H_ -#define _WX_SOCKET_H_ - -#include "wx/defs.h" - -#if wxUSE_SOCKETS - -// --------------------------------------------------------------------------- -// wxSocket headers -// --------------------------------------------------------------------------- - -#include "wx/event.h" -#include "wx/sckaddr.h" -#include "wx/list.h" - -class wxSocketImpl; - -// ------------------------------------------------------------------------ -// Types and constants -// ------------------------------------------------------------------------ - -// Define the type of native sockets. -#if defined(__WINDOWS__) - // Although socket descriptors are still 32 bit values, even under Win64, - // the socket type is 64 bit there. - typedef wxUIntPtr wxSOCKET_T; -#else - typedef int wxSOCKET_T; -#endif - - -// Types of different socket notifications or events. -// -// NB: the values here should be consecutive and start with 0 as they are -// used to construct the wxSOCKET_XXX_FLAG bit mask values below -enum wxSocketNotify -{ - wxSOCKET_INPUT, - wxSOCKET_OUTPUT, - wxSOCKET_CONNECTION, - wxSOCKET_LOST -}; - -enum -{ - wxSOCKET_INPUT_FLAG = 1 << wxSOCKET_INPUT, - wxSOCKET_OUTPUT_FLAG = 1 << wxSOCKET_OUTPUT, - wxSOCKET_CONNECTION_FLAG = 1 << wxSOCKET_CONNECTION, - wxSOCKET_LOST_FLAG = 1 << wxSOCKET_LOST -}; - -// this is a combination of the bit masks defined above -typedef int wxSocketEventFlags; - -enum wxSocketError -{ - wxSOCKET_NOERROR = 0, - wxSOCKET_INVOP, - wxSOCKET_IOERR, - wxSOCKET_INVADDR, - wxSOCKET_INVSOCK, - wxSOCKET_NOHOST, - wxSOCKET_INVPORT, - wxSOCKET_WOULDBLOCK, - wxSOCKET_TIMEDOUT, - wxSOCKET_MEMERR, - wxSOCKET_OPTERR -}; - -// socket options/flags bit masks -enum -{ - wxSOCKET_NONE = 0x0000, - wxSOCKET_NOWAIT_READ = 0x0001, - wxSOCKET_NOWAIT_WRITE = 0x0002, - wxSOCKET_NOWAIT = wxSOCKET_NOWAIT_READ | wxSOCKET_NOWAIT_WRITE, - wxSOCKET_WAITALL_READ = 0x0004, - wxSOCKET_WAITALL_WRITE = 0x0008, - wxSOCKET_WAITALL = wxSOCKET_WAITALL_READ | wxSOCKET_WAITALL_WRITE, - wxSOCKET_BLOCK = 0x0010, - wxSOCKET_REUSEADDR = 0x0020, - wxSOCKET_BROADCAST = 0x0040, - wxSOCKET_NOBIND = 0x0080 -}; - -typedef int wxSocketFlags; - -// socket kind values (badly defined, don't use) -enum wxSocketType -{ - wxSOCKET_UNINIT, - wxSOCKET_CLIENT, - wxSOCKET_SERVER, - wxSOCKET_BASE, - wxSOCKET_DATAGRAM -}; - - -// event -class WXDLLIMPEXP_FWD_NET wxSocketEvent; -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_NET, wxEVT_SOCKET, wxSocketEvent); - -// -------------------------------------------------------------------------- -// wxSocketBase -// -------------------------------------------------------------------------- - -class WXDLLIMPEXP_NET wxSocketBase : public wxObject -{ -public: - // Public interface - // ---------------- - - // ctors and dtors - wxSocketBase(); - wxSocketBase(wxSocketFlags flags, wxSocketType type); - virtual ~wxSocketBase(); - void Init(); - bool Destroy(); - - // state - bool Ok() const { return IsOk(); } - bool IsOk() const { return m_impl != NULL; } - bool Error() const { return LastError() != wxSOCKET_NOERROR; } - bool IsClosed() const { return m_closed; } - bool IsConnected() const { return m_connected; } - bool IsData() { return WaitForRead(0, 0); } - bool IsDisconnected() const { return !IsConnected(); } - wxUint32 LastCount() const { return m_lcount; } - wxUint32 LastReadCount() const { return m_lcount_read; } - wxUint32 LastWriteCount() const { return m_lcount_write; } - wxSocketError LastError() const; - void SaveState(); - void RestoreState(); - - // addresses - virtual bool GetLocal(wxSockAddress& addr_man) const; - virtual bool GetPeer(wxSockAddress& addr_man) const; - virtual bool SetLocal(const wxIPV4address& local); - - // base IO - virtual bool Close(); - void ShutdownOutput(); - wxSocketBase& Discard(); - wxSocketBase& Peek(void* buffer, wxUint32 nbytes); - wxSocketBase& Read(void* buffer, wxUint32 nbytes); - wxSocketBase& ReadMsg(void *buffer, wxUint32 nbytes); - wxSocketBase& Unread(const void *buffer, wxUint32 nbytes); - wxSocketBase& Write(const void *buffer, wxUint32 nbytes); - wxSocketBase& WriteMsg(const void *buffer, wxUint32 nbytes); - - // all Wait() functions wait until their condition is satisfied or the - // timeout expires; if seconds == -1 (default) then m_timeout value is used - // - // it is also possible to call InterruptWait() to cancel any current Wait() - - // wait for anything at all to happen with this socket - bool Wait(long seconds = -1, long milliseconds = 0); - - // wait until we can read from or write to the socket without blocking - // (notice that this does not mean that the operation will succeed but only - // that it will return immediately) - bool WaitForRead(long seconds = -1, long milliseconds = 0); - bool WaitForWrite(long seconds = -1, long milliseconds = 0); - - // wait until the connection is terminated - bool WaitForLost(long seconds = -1, long milliseconds = 0); - - void InterruptWait() { m_interrupt = true; } - - - wxSocketFlags GetFlags() const { return m_flags; } - void SetFlags(wxSocketFlags flags); - virtual void SetTimeout(long seconds); - long GetTimeout() const { return m_timeout; } - - bool GetOption(int level, int optname, void *optval, int *optlen); - bool SetOption(int level, int optname, const void *optval, int optlen); - wxUint32 GetLastIOSize() const { return m_lcount; } - wxUint32 GetLastIOReadSize() const { return m_lcount_read; } - wxUint32 GetLastIOWriteSize() const { return m_lcount_write; } - - // event handling - void *GetClientData() const { return m_clientData; } - void SetClientData(void *data) { m_clientData = data; } - void SetEventHandler(wxEvtHandler& handler, int id = wxID_ANY); - void SetNotify(wxSocketEventFlags flags); - void Notify(bool notify); - - // Get the underlying socket descriptor. - wxSOCKET_T GetSocket() const; - - // initialize/shutdown the sockets (done automatically so there is no need - // to call these functions usually) - // - // should always be called from the main thread only so one of the cases - // where they should indeed be called explicitly is when the first wxSocket - // object in the application is created in a different thread - static bool Initialize(); - static void Shutdown(); - - // check if wxSocket had been already initialized - // - // notice that this function should be only called from the main thread as - // otherwise it is inherently unsafe because Initialize/Shutdown() may be - // called concurrently with it in the main thread - static bool IsInitialized(); - - // Implementation from now on - // -------------------------- - - // do not use, should be private (called from wxSocketImpl only) - void OnRequest(wxSocketNotify notify); - - // do not use, not documented nor supported - bool IsNoWait() const { return ((m_flags & wxSOCKET_NOWAIT) != 0); } - wxSocketType GetType() const { return m_type; } - -private: - friend class wxSocketClient; - friend class wxSocketServer; - friend class wxDatagramSocket; - - // low level IO - wxUint32 DoRead(void* buffer, wxUint32 nbytes); - wxUint32 DoWrite(const void *buffer, wxUint32 nbytes); - - // wait until the given flags are set for this socket or the given timeout - // (or m_timeout) expires - // - // notice that wxSOCKET_LOST_FLAG is always taken into account and the - // function returns -1 if the connection was lost; otherwise it returns - // true if any of the events specified by flags argument happened or false - // if the timeout expired - int DoWait(long timeout, wxSocketEventFlags flags); - - // a helper calling DoWait() using the same convention as the public - // WaitForXXX() functions use, i.e. use our timeout if seconds == -1 or the - // specified timeout otherwise - int DoWait(long seconds, long milliseconds, wxSocketEventFlags flags); - - // another helper calling DoWait() using our m_timeout - int DoWaitWithTimeout(wxSocketEventFlags flags) - { - return DoWait(m_timeout*1000, flags); - } - - // pushback buffer - void Pushback(const void *buffer, wxUint32 size); - wxUint32 GetPushback(void *buffer, wxUint32 size, bool peek); - - // store the given error as the LastError() - void SetError(wxSocketError error); - -private: - // socket - wxSocketImpl *m_impl; // port-specific implementation - wxSocketType m_type; // wxSocket type - - // state - wxSocketFlags m_flags; // wxSocket flags - bool m_connected; // connected? - bool m_establishing; // establishing connection? - bool m_reading; // busy reading? - bool m_writing; // busy writing? - bool m_closed; // was the other end closed? - wxUint32 m_lcount; // last IO transaction size - wxUint32 m_lcount_read; // last IO transaction size of Read() direction. - wxUint32 m_lcount_write; // last IO transaction size of Write() direction. - unsigned long m_timeout; // IO timeout value in seconds - // (TODO: remove, wxSocketImpl has it too) - wxList m_states; // stack of states (TODO: remove!) - bool m_interrupt; // interrupt ongoing wait operations? - bool m_beingDeleted; // marked for delayed deletion? - wxIPV4address m_localAddress; // bind to local address? - - // pushback buffer - void *m_unread; // pushback buffer - wxUint32 m_unrd_size; // pushback buffer size - wxUint32 m_unrd_cur; // pushback pointer (index into buffer) - - // events - int m_id; // socket id - wxEvtHandler *m_handler; // event handler - void *m_clientData; // client data for events - bool m_notify; // notify events to users? - wxSocketEventFlags m_eventmask; // which events to notify? - wxSocketEventFlags m_eventsgot; // collects events received in OnRequest() - - - friend class wxSocketReadGuard; - friend class wxSocketWriteGuard; - - wxDECLARE_CLASS(wxSocketBase); - wxDECLARE_NO_COPY_CLASS(wxSocketBase); -}; - - -// -------------------------------------------------------------------------- -// wxSocketServer -// -------------------------------------------------------------------------- - -class WXDLLIMPEXP_NET wxSocketServer : public wxSocketBase -{ -public: - wxSocketServer(const wxSockAddress& addr, - wxSocketFlags flags = wxSOCKET_NONE); - - wxSocketBase* Accept(bool wait = true); - bool AcceptWith(wxSocketBase& socket, bool wait = true); - - bool WaitForAccept(long seconds = -1, long milliseconds = 0); - - wxDECLARE_CLASS(wxSocketServer); - wxDECLARE_NO_COPY_CLASS(wxSocketServer); -}; - - -// -------------------------------------------------------------------------- -// wxSocketClient -// -------------------------------------------------------------------------- - -class WXDLLIMPEXP_NET wxSocketClient : public wxSocketBase -{ -public: - wxSocketClient(wxSocketFlags flags = wxSOCKET_NONE); - - virtual bool Connect(const wxSockAddress& addr, bool wait = true); - bool Connect(const wxSockAddress& addr, - const wxSockAddress& local, - bool wait = true); - - bool WaitOnConnect(long seconds = -1, long milliseconds = 0); - - // Sets initial socket buffer sizes using the SO_SNDBUF and SO_RCVBUF - // options before calling connect (either one can be -1 to leave it - // unchanged) - void SetInitialSocketBuffers(int recv, int send) - { - m_initialRecvBufferSize = recv; - m_initialSendBufferSize = send; - } - -private: - virtual bool DoConnect(const wxSockAddress& addr, - const wxSockAddress* local, - bool wait = true); - - // buffer sizes, -1 if unset and defaults should be used - int m_initialRecvBufferSize; - int m_initialSendBufferSize; - - wxDECLARE_CLASS(wxSocketClient); - wxDECLARE_NO_COPY_CLASS(wxSocketClient); -}; - - -// -------------------------------------------------------------------------- -// wxDatagramSocket -// -------------------------------------------------------------------------- - -// WARNING: still in alpha stage - -class WXDLLIMPEXP_NET wxDatagramSocket : public wxSocketBase -{ -public: - wxDatagramSocket(const wxSockAddress& addr, - wxSocketFlags flags = wxSOCKET_NONE); - - wxDatagramSocket& RecvFrom(wxSockAddress& addr, - void *buf, - wxUint32 nBytes); - wxDatagramSocket& SendTo(const wxSockAddress& addr, - const void* buf, - wxUint32 nBytes); - - /* TODO: - bool Connect(wxSockAddress& addr); - */ - -private: - wxDECLARE_CLASS(wxDatagramSocket); - wxDECLARE_NO_COPY_CLASS(wxDatagramSocket); -}; - - -// -------------------------------------------------------------------------- -// wxSocketEvent -// -------------------------------------------------------------------------- - -class WXDLLIMPEXP_NET wxSocketEvent : public wxEvent -{ -public: - wxSocketEvent(int id = 0) - : wxEvent(id, wxEVT_SOCKET) - { - } - - wxSocketNotify GetSocketEvent() const { return m_event; } - wxSocketBase *GetSocket() const - { return (wxSocketBase *) GetEventObject(); } - void *GetClientData() const { return m_clientData; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxSocketEvent(*this); } - virtual wxEventCategory GetEventCategory() const wxOVERRIDE { return wxEVT_CATEGORY_SOCKET; } - -public: - wxSocketNotify m_event; - void *m_clientData; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxSocketEvent); -}; - - -typedef void (wxEvtHandler::*wxSocketEventFunction)(wxSocketEvent&); - -#define wxSocketEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxSocketEventFunction, func) - -#define EVT_SOCKET(id, func) \ - wx__DECLARE_EVT1(wxEVT_SOCKET, id, wxSocketEventHandler(func)) - -#endif // wxUSE_SOCKETS - -#endif // _WX_SOCKET_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sound.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sound.h deleted file mode 100644 index 003a4b7a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sound.h +++ /dev/null @@ -1,77 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/sound.h -// Purpose: wxSoundBase class -// Author: Vaclav Slavik -// Modified by: -// Created: 2004/02/01 -// Copyright: (c) 2004, Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SOUND_H_BASE_ -#define _WX_SOUND_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_SOUND - -#include "wx/object.h" - -// ---------------------------------------------------------------------------- -// wxSoundBase: common wxSound code and interface -// ---------------------------------------------------------------------------- - -// Flags for wxSound::Play - -// NB: We can't use enum with some compilers, because they keep reporting -// nonexistent ambiguities between Play(unsigned) and static Play(const -// wxString&, unsigned). -#define wxSOUND_SYNC ((unsigned)0) -#define wxSOUND_ASYNC ((unsigned)1) -#define wxSOUND_LOOP ((unsigned)2) - -// Base class for wxSound implementations -class WXDLLIMPEXP_ADV wxSoundBase : public wxObject -{ -public: - // Play the sound: - bool Play(unsigned flags = wxSOUND_ASYNC) const - { - wxASSERT_MSG( (flags & wxSOUND_LOOP) == 0 || - (flags & wxSOUND_ASYNC) != 0, - wxT("sound can only be looped asynchronously") ); - return DoPlay(flags); - } - - // Plays sound from filename: - static bool Play(const wxString& filename, unsigned flags = wxSOUND_ASYNC); - -protected: - virtual bool DoPlay(unsigned flags) const = 0; -}; - -// ---------------------------------------------------------------------------- -// wxSound class implementation -// ---------------------------------------------------------------------------- - -#if defined(__WINDOWS__) - #include "wx/msw/sound.h" -#elif defined(__WXMAC__) - #include "wx/osx/sound.h" -#elif defined(__UNIX__) - #include "wx/unix/sound.h" -#endif - -// ---------------------------------------------------------------------------- -// wxSoundBase methods -// ---------------------------------------------------------------------------- - -inline bool wxSoundBase::Play(const wxString& filename, unsigned flags) -{ - wxSound snd(filename); - return snd.IsOk() ? snd.Play(flags) : false; -} - -#endif // wxUSE_SOUND - -#endif // _WX_SOUND_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/spinbutt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/spinbutt.h deleted file mode 100644 index 7370ebf6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/spinbutt.h +++ /dev/null @@ -1,140 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/spinbutt.h -// Purpose: wxSpinButtonBase class -// Author: Julian Smart, Vadim Zeitlin -// Modified by: -// Created: 23.07.99 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SPINBUTT_H_BASE_ -#define _WX_SPINBUTT_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_SPINBTN - -#include "wx/control.h" -#include "wx/event.h" -#include "wx/range.h" - -#define wxSPIN_BUTTON_NAME wxT("wxSpinButton") - -// ---------------------------------------------------------------------------- -// The wxSpinButton is like a small scrollbar than is often placed next -// to a text control. -// -// Styles: -// wxSP_HORIZONTAL: horizontal spin button -// wxSP_VERTICAL: vertical spin button (the default) -// wxSP_ARROW_KEYS: arrow keys increment/decrement value -// wxSP_WRAP: value wraps at either end -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSpinButtonBase : public wxControl -{ -public: - // ctor initializes the range with the default (0..100) values - wxSpinButtonBase() { m_min = 0; m_max = 100; } - - // accessors - virtual int GetValue() const = 0; - virtual int GetMin() const { return m_min; } - virtual int GetMax() const { return m_max; } - wxRange GetRange() const { return wxRange( GetMin(), GetMax() );} - - // operations - virtual void SetValue(int val) = 0; - virtual void SetMin(int minVal) { SetRange ( minVal , m_max ) ; } - virtual void SetMax(int maxVal) { SetRange ( m_min , maxVal ) ; } - virtual void SetRange(int minVal, int maxVal) - { - m_min = minVal; - m_max = maxVal; - } - void SetRange( const wxRange& range) { SetRange( range.GetMin(), range.GetMax()); } - - // is this spin button vertically oriented? - bool IsVertical() const { return (m_windowStyle & wxSP_VERTICAL) != 0; } - -protected: - // the range value - int m_min; - int m_max; - - wxDECLARE_NO_COPY_CLASS(wxSpinButtonBase); -}; - -// ---------------------------------------------------------------------------- -// include the declaration of the real class -// ---------------------------------------------------------------------------- - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/spinbutt.h" -#elif defined(__WXMSW__) - #include "wx/msw/spinbutt.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/spinbutt.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/spinbutt.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/spinbutt.h" -#elif defined(__WXMAC__) - #include "wx/osx/spinbutt.h" -#elif defined(__WXQT__) - #include "wx/qt/spinbutt.h" -#endif - -// ---------------------------------------------------------------------------- -// the wxSpinButton event -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSpinEvent : public wxNotifyEvent -{ -public: - wxSpinEvent(wxEventType commandType = wxEVT_NULL, int winid = 0) - : wxNotifyEvent(commandType, winid) - { - } - - wxSpinEvent(const wxSpinEvent& event) : wxNotifyEvent(event) {} - - // get the current value of the control - int GetValue() const { return m_commandInt; } - void SetValue(int value) { m_commandInt = value; } - - int GetPosition() const { return m_commandInt; } - void SetPosition(int pos) { m_commandInt = pos; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxSpinEvent(*this); } - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxSpinEvent); -}; - -typedef void (wxEvtHandler::*wxSpinEventFunction)(wxSpinEvent&); - -#define wxSpinEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxSpinEventFunction, func) - -// macros for handling spin events: notice that we must use the real values of -// the event type constants and not their references (wxEVT_SPIN[_UP/DOWN]) -// here as otherwise the event tables could end up with non-initialized -// (because of undefined initialization order of the globals defined in -// different translation units) references in them -#define EVT_SPIN_UP(winid, func) \ - wx__DECLARE_EVT1(wxEVT_SPIN_UP, winid, wxSpinEventHandler(func)) -#define EVT_SPIN_DOWN(winid, func) \ - wx__DECLARE_EVT1(wxEVT_SPIN_DOWN, winid, wxSpinEventHandler(func)) -#define EVT_SPIN(winid, func) \ - wx__DECLARE_EVT1(wxEVT_SPIN, winid, wxSpinEventHandler(func)) - -#endif // wxUSE_SPINBTN - -#endif - // _WX_SPINBUTT_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/spinctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/spinctrl.h deleted file mode 100644 index 4df89ff1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/spinctrl.h +++ /dev/null @@ -1,154 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/spinctrl.h -// Purpose: wxSpinCtrlBase class -// Author: Vadim Zeitlin -// Modified by: -// Created: 22.07.99 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SPINCTRL_H_ -#define _WX_SPINCTRL_H_ - -#include "wx/defs.h" - -#if wxUSE_SPINCTRL - -#include "wx/spinbutt.h" // should make wxSpinEvent visible to the app - -// Events -class WXDLLIMPEXP_FWD_CORE wxSpinDoubleEvent; - -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SPINCTRL, wxSpinEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SPINCTRLDOUBLE, wxSpinDoubleEvent); - -// ---------------------------------------------------------------------------- -// A spin ctrl is a text control with a spin button which is usually used to -// prompt the user for a numeric input. -// There are two kinds for number types T=integer or T=double. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSpinCtrlBase : public wxControl -{ -public: - wxSpinCtrlBase() {} - - // accessor functions that derived classes are expected to have - // T GetValue() const - // T GetMin() const - // T GetMax() const - // T GetIncrement() const - virtual bool GetSnapToTicks() const = 0; - // unsigned GetDigits() const - wxSpinCtrlDouble only - - // operation functions that derived classes are expected to have - virtual void SetValue(const wxString& value) = 0; - // void SetValue(T val) - // void SetRange(T minVal, T maxVal) - // void SetIncrement(T inc) - virtual void SetSnapToTicks(bool snap_to_ticks) = 0; - // void SetDigits(unsigned digits) - wxSpinCtrlDouble only - - // The base for numbers display, e.g. 10 or 16. - virtual int GetBase() const = 0; - virtual bool SetBase(int base) = 0; - // Select text in the textctrl - virtual void SetSelection(long from, long to) = 0; - -private: - wxDECLARE_NO_COPY_CLASS(wxSpinCtrlBase); -}; - -// ---------------------------------------------------------------------------- -// wxSpinDoubleEvent - a wxSpinEvent for double valued controls -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSpinDoubleEvent : public wxNotifyEvent -{ -public: - wxSpinDoubleEvent(wxEventType commandType = wxEVT_NULL, int winid = 0, - double value = 0) - : wxNotifyEvent(commandType, winid), m_value(value) - { - } - - wxSpinDoubleEvent(const wxSpinDoubleEvent& event) - : wxNotifyEvent(event), m_value(event.GetValue()) - { - } - - double GetValue() const { return m_value; } - void SetValue(double value) { m_value = value; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxSpinDoubleEvent(*this); } - -protected: - double m_value; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxSpinDoubleEvent); -}; - -// ---------------------------------------------------------------------------- -// wxSpinDoubleEvent event type, see also wxSpinEvent in wx/spinbutt.h -// ---------------------------------------------------------------------------- - -typedef void (wxEvtHandler::*wxSpinDoubleEventFunction)(wxSpinDoubleEvent&); - -#define wxSpinDoubleEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxSpinDoubleEventFunction, func) - -// macros for handling spinctrl events - -#define EVT_SPINCTRL(id, fn) \ - wx__DECLARE_EVT1(wxEVT_SPINCTRL, id, wxSpinEventHandler(fn)) - -#define EVT_SPINCTRLDOUBLE(id, fn) \ - wx__DECLARE_EVT1(wxEVT_SPINCTRLDOUBLE, id, wxSpinDoubleEventHandler(fn)) - -// ---------------------------------------------------------------------------- -// include the platform-dependent class implementation -// ---------------------------------------------------------------------------- - -// we may have a native wxSpinCtrl implementation, native wxSpinCtrl and -// wxSpinCtrlDouble implementations or neither, define the appropriate symbols -// and include the generic version if necessary to provide the missing class(es) - -#if defined(__WXUNIVERSAL__) - // nothing, use generic controls -#elif defined(__WXMSW__) - #define wxHAS_NATIVE_SPINCTRL - #include "wx/msw/spinctrl.h" -#elif defined(__WXGTK20__) - #define wxHAS_NATIVE_SPINCTRL - #define wxHAS_NATIVE_SPINCTRLDOUBLE - #include "wx/gtk/spinctrl.h" -#elif defined(__WXGTK__) - #define wxHAS_NATIVE_SPINCTRL - #include "wx/gtk1/spinctrl.h" -#elif defined(__WXQT__) - #define wxHAS_NATIVE_SPINCTRL - #define wxHAS_NATIVE_SPINCTRLDOUBLE - #include "wx/qt/spinctrl.h" -#endif // platform - -#if !defined(wxHAS_NATIVE_SPINCTRL) || !defined(wxHAS_NATIVE_SPINCTRLDOUBLE) - #include "wx/generic/spinctlg.h" -#endif -namespace wxPrivate -{ - -// This is an internal helper function currently used by all ports: return the -// string containing hexadecimal representation of the given number. -extern wxString wxSpinCtrlFormatAsHex(long val, long maxVal); - -} // namespace wxPrivate - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_SPINCTRL_UPDATED wxEVT_SPINCTRL -#define wxEVT_COMMAND_SPINCTRLDOUBLE_UPDATED wxEVT_SPINCTRLDOUBLE - -#endif // wxUSE_SPINCTRL - -#endif // _WX_SPINCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/splash.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/splash.h deleted file mode 100644 index e4fb0c21..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/splash.h +++ /dev/null @@ -1,17 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/splash.h -// Purpose: Base header for wxSplashScreen -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SPLASH_H_BASE_ -#define _WX_SPLASH_H_BASE_ - -#include "wx/generic/splash.h" - -#endif - // _WX_SPLASH_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/splitter.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/splitter.h deleted file mode 100644 index e1f953e9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/splitter.h +++ /dev/null @@ -1,40 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/splitter.h -// Purpose: Base header for wxSplitterWindow -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SPLITTER_H_BASE_ -#define _WX_SPLITTER_H_BASE_ - -#include "wx/event.h" - -// ---------------------------------------------------------------------------- -// wxSplitterWindow flags -// ---------------------------------------------------------------------------- - -#define wxSP_NOBORDER 0x0000 -#define wxSP_THIN_SASH 0x0000 // NB: the default is 3D sash -#define wxSP_NOSASH 0x0010 -#define wxSP_PERMIT_UNSPLIT 0x0040 -#define wxSP_LIVE_UPDATE 0x0080 -#define wxSP_3DSASH 0x0100 -#define wxSP_3DBORDER 0x0200 -#define wxSP_NO_XP_THEME 0x0400 -#define wxSP_BORDER wxSP_3DBORDER -#define wxSP_3D (wxSP_3DBORDER | wxSP_3DSASH) - -class WXDLLIMPEXP_FWD_CORE wxSplitterEvent; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_SPLITTER_SASH_POS_CHANGED, wxSplitterEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_SPLITTER_SASH_POS_CHANGING, wxSplitterEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_SPLITTER_DOUBLECLICKED, wxSplitterEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_SPLITTER_UNSPLIT, wxSplitterEvent ); - -#include "wx/generic/splitter.h" - -#endif // _WX_SPLITTER_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/srchctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/srchctrl.h deleted file mode 100644 index b28d3912..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/srchctrl.h +++ /dev/null @@ -1,102 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/srchctrl.h -// Purpose: wxSearchCtrlBase class -// Author: Vince Harron -// Created: 2006-02-18 -// Copyright: (c) Vince Harron -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SEARCHCTRL_H_BASE_ -#define _WX_SEARCHCTRL_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_SEARCHCTRL - -#include "wx/textctrl.h" - -#if !defined(__WXUNIVERSAL__) && defined(__WXMAC__) - // search control was introduced in Mac OS X 10.3 Panther - #define wxUSE_NATIVE_SEARCH_CONTROL 1 - - #define wxSearchCtrlBaseBaseClass wxTextCtrl -#else - // no native version, use the generic one - #define wxUSE_NATIVE_SEARCH_CONTROL 0 - - #include "wx/compositewin.h" - #include "wx/containr.h" - - class WXDLLIMPEXP_CORE wxSearchCtrlBaseBaseClass - : public wxCompositeWindow< wxNavigationEnabled<wxControl> >, - public wxTextCtrlIface - { - }; -#endif - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -extern WXDLLIMPEXP_DATA_CORE(const char) wxSearchCtrlNameStr[]; - -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SEARCHCTRL_CANCEL_BTN, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SEARCHCTRL_SEARCH_BTN, wxCommandEvent); - -// ---------------------------------------------------------------------------- -// a search ctrl is a text control with a search button and a cancel button -// it is based on the MacOSX 10.3 control HISearchFieldCreate -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxSearchCtrlBase : public wxSearchCtrlBaseBaseClass -{ -public: - wxSearchCtrlBase() { } - virtual ~wxSearchCtrlBase() { } - - // search control -#if wxUSE_MENUS - virtual void SetMenu(wxMenu *menu) = 0; - virtual wxMenu *GetMenu() = 0; -#endif // wxUSE_MENUS - - // get/set options - virtual void ShowSearchButton( bool show ) = 0; - virtual bool IsSearchButtonVisible() const = 0; - - virtual void ShowCancelButton( bool show ) = 0; - virtual bool IsCancelButtonVisible() const = 0; - -private: - // implement wxTextEntry pure virtual method - virtual wxWindow *GetEditableWindow() wxOVERRIDE { return this; } -}; - - -// include the platform-dependent class implementation -#if wxUSE_NATIVE_SEARCH_CONTROL - #if defined(__WXMAC__) - #include "wx/osx/srchctrl.h" - #endif -#else - #include "wx/generic/srchctlg.h" -#endif - -// ---------------------------------------------------------------------------- -// macros for handling search events -// ---------------------------------------------------------------------------- - -#define EVT_SEARCHCTRL_CANCEL_BTN(id, fn) \ - wx__DECLARE_EVT1(wxEVT_SEARCHCTRL_CANCEL_BTN, id, wxCommandEventHandler(fn)) - -#define EVT_SEARCHCTRL_SEARCH_BTN(id, fn) \ - wx__DECLARE_EVT1(wxEVT_SEARCHCTRL_SEARCH_BTN, id, wxCommandEventHandler(fn)) - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN wxEVT_SEARCHCTRL_CANCEL_BTN -#define wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN wxEVT_SEARCHCTRL_SEARCH_BTN - -#endif // wxUSE_SEARCHCTRL - -#endif // _WX_SEARCHCTRL_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sstream.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sstream.h deleted file mode 100644 index 19f37c58..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sstream.h +++ /dev/null @@ -1,111 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/sstream.h -// Purpose: string-based streams -// Author: Vadim Zeitlin -// Modified by: -// Created: 2004-09-19 -// Copyright: (c) 2004 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SSTREAM_H_ -#define _WX_SSTREAM_H_ - -#include "wx/stream.h" - -#if wxUSE_STREAMS - -// ---------------------------------------------------------------------------- -// wxStringInputStream is a stream reading from the given (fixed size) string -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxStringInputStream : public wxInputStream -{ -public: - // ctor associates the stream with the given string which makes a copy of - // it - wxStringInputStream(const wxString& s); - - virtual wxFileOffset GetLength() const wxOVERRIDE; - virtual bool IsSeekable() const wxOVERRIDE { return true; } - -protected: - virtual wxFileOffset OnSysSeek(wxFileOffset ofs, wxSeekMode mode) wxOVERRIDE; - virtual wxFileOffset OnSysTell() const wxOVERRIDE; - virtual size_t OnSysRead(void *buffer, size_t size) wxOVERRIDE; - -private: - // the string that was passed in the ctor - wxString m_str; - - // the buffer we're reading from - wxCharBuffer m_buf; - - // length of the buffer we're reading from - size_t m_len; - - // position in the stream in bytes, *not* in chars - size_t m_pos; - - wxDECLARE_NO_COPY_CLASS(wxStringInputStream); -}; - -// ---------------------------------------------------------------------------- -// wxStringOutputStream writes data to the given string, expanding it as needed -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxStringOutputStream : public wxOutputStream -{ -public: - // The stream will write data either to the provided string or to an - // internal string which can be retrieved using GetString() - // - // Note that the conversion object should have the life time greater than - // this stream. - wxStringOutputStream(wxString *pString = NULL, - wxMBConv& conv = wxConvUTF8) - : m_conv(conv) -#if wxUSE_UNICODE - , m_unconv(0) -#endif // wxUSE_UNICODE - { - m_str = pString ? pString : &m_strInternal; - m_pos = m_str->length() / sizeof(wxChar); - } - - // get the string containing current output - const wxString& GetString() const { return *m_str; } - - virtual bool IsSeekable() const wxOVERRIDE { return true; } - -protected: - virtual wxFileOffset OnSysTell() const wxOVERRIDE; - virtual size_t OnSysWrite(const void *buffer, size_t size) wxOVERRIDE; - -private: - // internal string, not used if caller provided his own string - wxString m_strInternal; - - // pointer given by the caller or just pointer to m_strInternal - wxString *m_str; - - // position in the stream in bytes, *not* in chars - size_t m_pos; - - // converter to use: notice that with the default UTF-8 one the input - // stream must contain valid UTF-8 data, use wxConvISO8859_1 to work with - // arbitrary 8 bit data - wxMBConv& m_conv; - -#if wxUSE_UNICODE - // unconverted data from the last call to OnSysWrite() - wxMemoryBuffer m_unconv; -#endif // wxUSE_UNICODE - - wxDECLARE_NO_COPY_CLASS(wxStringOutputStream); -}; - -#endif // wxUSE_STREAMS - -#endif // _WX_SSTREAM_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stack.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stack.h deleted file mode 100644 index b4e8ed2f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stack.h +++ /dev/null @@ -1,85 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/stack.h -// Purpose: STL stack clone -// Author: Lindsay Mathieson, Vadim Zeitlin -// Created: 30.07.2001 -// Copyright: (c) 2001 Lindsay Mathieson <lindsay@mathieson.org> (WX_DECLARE_STACK) -// 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STACK_H_ -#define _WX_STACK_H_ - -#include "wx/vector.h" - -#if wxUSE_STD_CONTAINERS - -#include <stack> -#define wxStack std::stack - -#else // !wxUSE_STD_CONTAINERS - -// Notice that unlike std::stack, wxStack currently always uses wxVector and -// can't be used with any other underlying container type. -// -// Another difference is that comparison operators between stacks are not -// implemented (but they should be, see 23.2.3.3 of ISO/IEC 14882:1998). - -template <typename T> -class wxStack -{ -public: - typedef wxVector<T> container_type; - typedef typename container_type::size_type size_type; - typedef typename container_type::value_type value_type; - - wxStack() { } - explicit wxStack(const container_type& cont) : m_cont(cont) { } - - // Default copy ctor, assignment operator and dtor are ok. - - - bool empty() const { return m_cont.empty(); } - size_type size() const { return m_cont.size(); } - - value_type& top() { return m_cont.back(); } - const value_type& top() const { return m_cont.back(); } - - void push(const value_type& val) { m_cont.push_back(val); } - void pop() { m_cont.pop_back(); } - -private: - container_type m_cont; -}; - -#endif // wxUSE_STD_CONTAINERS/!wxUSE_STD_CONTAINERS - - -// Deprecated macro-based class for compatibility only, don't use any more. -#define WX_DECLARE_STACK(obj, cls) \ -class cls : public wxVector<obj> \ -{\ -public:\ - void push(const obj& o)\ - {\ - push_back(o); \ - };\ -\ - void pop()\ - {\ - pop_back(); \ - };\ -\ - obj& top()\ - {\ - return at(size() - 1);\ - };\ - const obj& top() const\ - {\ - return at(size() - 1); \ - };\ -} - -#endif // _WX_STACK_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stackwalk.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stackwalk.h deleted file mode 100644 index 1133d6ef..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stackwalk.h +++ /dev/null @@ -1,159 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/stackwalk.h -// Purpose: wxStackWalker and related classes, common part -// Author: Vadim Zeitlin -// Modified by: -// Created: 2005-01-07 -// Copyright: (c) 2004 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STACKWALK_H_ -#define _WX_STACKWALK_H_ - -#include "wx/defs.h" - -#if wxUSE_STACKWALKER - -class WXDLLIMPEXP_FWD_BASE wxStackFrame; - -#define wxSTACKWALKER_MAX_DEPTH (200) - -// ---------------------------------------------------------------------------- -// wxStackFrame: a single stack level -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxStackFrameBase -{ -private: - // put this inline function here so that it is defined before use - wxStackFrameBase *ConstCast() const - { return const_cast<wxStackFrameBase *>(this); } - -public: - wxStackFrameBase(size_t level, void *address = NULL) - { - m_level = level; - - m_line = - m_offset = 0; - - m_address = address; - } - - // get the level of this frame (deepest/innermost one is 0) - size_t GetLevel() const { return m_level; } - - // return the address of this frame - void *GetAddress() const { return m_address; } - - - // return the unmangled (if possible) name of the function containing this - // frame - wxString GetName() const { ConstCast()->OnGetName(); return m_name; } - - // return the instruction pointer offset from the start of the function - size_t GetOffset() const { ConstCast()->OnGetName(); return m_offset; } - - // get the module this function belongs to (not always available) - wxString GetModule() const { ConstCast()->OnGetName(); return m_module; } - - - // return true if we have the filename and line number for this frame - bool HasSourceLocation() const { return !GetFileName().empty(); } - - // return the name of the file containing this frame, empty if - // unavailable (typically because debug info is missing) - wxString GetFileName() const - { ConstCast()->OnGetLocation(); return m_filename; } - - // return the line number of this frame, 0 if unavailable - size_t GetLine() const { ConstCast()->OnGetLocation(); return m_line; } - - - // return the number of parameters of this function (may return 0 if we - // can't retrieve the parameters info even although the function does have - // parameters) - virtual size_t GetParamCount() const { return 0; } - - // get the name, type and value (in text form) of the given parameter - // - // any pointer may be NULL - // - // return true if at least some values could be retrieved - virtual bool GetParam(size_t WXUNUSED(n), - wxString * WXUNUSED(type), - wxString * WXUNUSED(name), - wxString * WXUNUSED(value)) const - { - return false; - } - - - // although this class is not supposed to be used polymorphically, give it - // a virtual dtor to silence compiler warnings - virtual ~wxStackFrameBase() { } - -protected: - // hooks for derived classes to initialize some fields on demand - virtual void OnGetName() { } - virtual void OnGetLocation() { } - - - // fields are protected, not private, so that OnGetXXX() could modify them - // directly - size_t m_level; - - wxString m_name, - m_module, - m_filename; - - size_t m_line; - - void *m_address; - size_t m_offset; -}; - -// ---------------------------------------------------------------------------- -// wxStackWalker: class for enumerating stack frames -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxStackWalkerBase -{ -public: - // ctor does nothing, use Walk() to walk the stack - wxStackWalkerBase() { } - - // dtor does nothing neither but should be virtual - virtual ~wxStackWalkerBase() { } - - // enumerate stack frames from the current location, skipping the initial - // number of them (this can be useful when Walk() is called from some known - // location and you don't want to see the first few frames anyhow; also - // notice that Walk() frame itself is not included if skip >= 1) - virtual void Walk(size_t skip = 1, size_t maxDepth = wxSTACKWALKER_MAX_DEPTH) = 0; - -#if wxUSE_ON_FATAL_EXCEPTION - // enumerate stack frames from the location of uncaught exception - // - // this version can only be called from wxApp::OnFatalException() - virtual void WalkFromException(size_t maxDepth = wxSTACKWALKER_MAX_DEPTH) = 0; -#endif // wxUSE_ON_FATAL_EXCEPTION - -protected: - // this function must be overrided to process the given frame - virtual void OnStackFrame(const wxStackFrame& frame) = 0; -}; - -#ifdef __WINDOWS__ - #include "wx/msw/stackwalk.h" -#elif defined(__UNIX__) - #include "wx/unix/stackwalk.h" -#else - #error "wxStackWalker is not supported, set wxUSE_STACKWALKER to 0" -#endif - -#endif // wxUSE_STACKWALKER - -#endif // _WX_STACKWALK_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statbmp.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statbmp.h deleted file mode 100644 index ea888cd5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statbmp.h +++ /dev/null @@ -1,84 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/statbmp.h -// Purpose: wxStaticBitmap class interface -// Author: Vadim Zeitlin -// Modified by: -// Created: 25.08.00 -// Copyright: (c) 2000 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBMP_H_BASE_ -#define _WX_STATBMP_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_STATBMP - -#include "wx/control.h" -#include "wx/bitmap.h" -#include "wx/icon.h" - -extern WXDLLIMPEXP_DATA_CORE(const char) wxStaticBitmapNameStr[]; - -// a control showing an icon or a bitmap -class WXDLLIMPEXP_CORE wxStaticBitmapBase : public wxControl -{ -public: - enum ScaleMode - { - Scale_None, - Scale_Fill, - Scale_AspectFit, - Scale_AspectFill - }; - - wxStaticBitmapBase() { } - virtual ~wxStaticBitmapBase(); - - // our interface - virtual void SetIcon(const wxIcon& icon) = 0; - virtual void SetBitmap(const wxBitmap& bitmap) = 0; - virtual wxBitmap GetBitmap() const = 0; - virtual wxIcon GetIcon() const /* = 0 -- should be pure virtual */ - { - // stub it out here for now as not all ports implement it (but they - // should) - return wxIcon(); - } - virtual void SetScaleMode(ScaleMode WXUNUSED(scaleMode)) { } - virtual ScaleMode GetScaleMode() const { return Scale_None; } - - // overridden base class virtuals - virtual bool AcceptsFocus() const wxOVERRIDE { return false; } - virtual bool HasTransparentBackground() wxOVERRIDE { return true; } - -protected: - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - wxDECLARE_NO_COPY_CLASS(wxStaticBitmapBase); -}; - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/statbmp.h" -#elif defined(__WXMSW__) - #include "wx/msw/statbmp.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/statbmp.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/statbmp.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/statbmp.h" -#elif defined(__WXMAC__) - #include "wx/osx/statbmp.h" -#elif defined(__WXQT__) - #include "wx/qt/statbmp.h" -#endif - -#endif // wxUSE_STATBMP - -#endif - // _WX_STATBMP_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statbox.h deleted file mode 100644 index 968903b0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statbox.h +++ /dev/null @@ -1,74 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/statbox.h -// Purpose: wxStaticBox base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBOX_H_BASE_ -#define _WX_STATBOX_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_STATBOX - -#include "wx/control.h" -#include "wx/containr.h" - -extern WXDLLIMPEXP_DATA_CORE(const char) wxStaticBoxNameStr[]; - -// ---------------------------------------------------------------------------- -// wxStaticBox: a grouping box with a label -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxStaticBoxBase : public wxNavigationEnabled<wxControl> -{ -public: - wxStaticBoxBase(); - - // overridden base class virtuals - virtual bool HasTransparentBackground() wxOVERRIDE { return true; } - - // implementation only: this is used by wxStaticBoxSizer to account for the - // need for extra space taken by the static box - // - // the top border is the margin at the top (where the title is), - // borderOther is the margin on all other sides - virtual void GetBordersForSizer(int *borderTop, int *borderOther) const - { - const int BORDER = FromDIP(5); // FIXME: hardcoded value - - *borderTop = GetLabel().empty() ? BORDER : GetCharHeight(); - *borderOther = BORDER; - } - -protected: - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - wxDECLARE_NO_COPY_CLASS(wxStaticBoxBase); -}; - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/statbox.h" -#elif defined(__WXMSW__) - #include "wx/msw/statbox.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/statbox.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/statbox.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/statbox.h" -#elif defined(__WXMAC__) - #include "wx/osx/statbox.h" -#elif defined(__WXQT__) - #include "wx/qt/statbox.h" -#endif - -#endif // wxUSE_STATBOX - -#endif - // _WX_STATBOX_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statline.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statline.h deleted file mode 100644 index 49023d58..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statline.h +++ /dev/null @@ -1,103 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/statline.h -// Purpose: wxStaticLine class interface -// Author: Vadim Zeitlin -// Created: 28.06.99 -// Copyright: (c) 1999 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATLINE_H_BASE_ -#define _WX_STATLINE_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -// this defines wxUSE_STATLINE -#include "wx/defs.h" - -#if wxUSE_STATLINE - -// the base class declaration -#include "wx/control.h" - -// ---------------------------------------------------------------------------- -// global variables -// ---------------------------------------------------------------------------- - -// the default name for objects of class wxStaticLine -extern WXDLLIMPEXP_DATA_CORE(const char) wxStaticLineNameStr[]; - -// ---------------------------------------------------------------------------- -// wxStaticLine - a line in a dialog -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxStaticLineBase : public wxControl -{ -public: - // constructor - wxStaticLineBase() { } - - // is the line vertical? - bool IsVertical() const { return (GetWindowStyle() & wxLI_VERTICAL) != 0; } - - // get the default size for the "lesser" dimension of the static line - static int GetDefaultSize() { return 2; } - - // overridden base class virtuals - virtual bool AcceptsFocus() const wxOVERRIDE { return false; } - -protected: - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - // set the right size for the right dimension - wxSize AdjustSize(const wxSize& size) const - { - wxSize sizeReal(size); - if ( IsVertical() ) - { - if ( size.x == wxDefaultCoord ) - sizeReal.x = GetDefaultSize(); - } - else - { - if ( size.y == wxDefaultCoord ) - sizeReal.y = GetDefaultSize(); - } - - return sizeReal; - } - - virtual wxSize DoGetBestSize() const wxOVERRIDE - { - return AdjustSize(wxDefaultSize); - } - - wxDECLARE_NO_COPY_CLASS(wxStaticLineBase); -}; - -// ---------------------------------------------------------------------------- -// now include the actual class declaration -// ---------------------------------------------------------------------------- - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/statline.h" -#elif defined(__WXMSW__) - #include "wx/msw/statline.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/statline.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/statline.h" -#elif defined(__WXMAC__) - #include "wx/osx/statline.h" -#elif defined(__WXQT__) - #include "wx/qt/statline.h" -#else // use generic implementation for all other platforms - #include "wx/generic/statline.h" -#endif - -#endif // wxUSE_STATLINE - -#endif // _WX_STATLINE_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stattext.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stattext.h deleted file mode 100644 index 237f9362..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stattext.h +++ /dev/null @@ -1,113 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/stattext.h -// Purpose: wxStaticText base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATTEXT_H_BASE_ -#define _WX_STATTEXT_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_STATTEXT - -#include "wx/control.h" - -/* - * wxStaticText flags - */ -#define wxST_NO_AUTORESIZE 0x0001 -// free 0x0002 bit -#define wxST_ELLIPSIZE_START 0x0004 -#define wxST_ELLIPSIZE_MIDDLE 0x0008 -#define wxST_ELLIPSIZE_END 0x0010 - -#define wxST_ELLIPSIZE_MASK \ - (wxST_ELLIPSIZE_START | wxST_ELLIPSIZE_MIDDLE | wxST_ELLIPSIZE_END) - -extern WXDLLIMPEXP_DATA_CORE(const char) wxStaticTextNameStr[]; - -class WXDLLIMPEXP_CORE wxStaticTextBase : public wxControl -{ -public: - wxStaticTextBase() { } - - // wrap the text of the control so that no line is longer than the given - // width (if possible: this function won't break words) - // This function will modify the value returned by GetLabel()! - void Wrap(int width); - - // overridden base virtuals - virtual bool AcceptsFocus() const wxOVERRIDE { return false; } - virtual bool HasTransparentBackground() wxOVERRIDE { return true; } - - bool IsEllipsized() const - { - return (GetWindowStyle() & wxST_ELLIPSIZE_MASK) != 0; - } - -protected: // functions required for wxST_ELLIPSIZE_* support - - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - // Calls Ellipsize() on the real label if necessary. Unlike GetLabelText(), - // keeps the mnemonics instead of removing them. - virtual wxString GetEllipsizedLabel() const; - - // Replaces parts of the string with ellipsis according to the ellipsize - // style. Shouldn't be called if we don't have any. - wxString Ellipsize(const wxString& label) const; - - // to be called when updating the size of the static text: - // updates the label redoing ellipsization calculations - void UpdateLabel(); - - // These functions are platform-specific and must be overridden in ports - // which do not natively support ellipsization and they must be implemented - // in a way so that the m_labelOrig member of wxControl is not touched: - - // returns the real label currently displayed inside the control. - virtual wxString DoGetLabel() const { return wxEmptyString; } - - // sets the real label currently displayed inside the control, - // _without_ invalidating the size. The text passed is always markup-free - // but may contain the mnemonic characters. - virtual void DoSetLabel(const wxString& WXUNUSED(str)) { } - - // Update the current size to match the best size unless wxST_NO_AUTORESIZE - // style is explicitly used. - void AutoResizeIfNecessary(); - -private: - wxDECLARE_NO_COPY_CLASS(wxStaticTextBase); -}; - -// see wx/generic/stattextg.h for the explanation -#ifndef wxNO_PORT_STATTEXT_INCLUDE - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/stattext.h" -#elif defined(__WXMSW__) - #include "wx/msw/stattext.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/stattext.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/stattext.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/stattext.h" -#elif defined(__WXMAC__) - #include "wx/osx/stattext.h" -#elif defined(__WXQT__) - #include "wx/qt/stattext.h" -#endif - -#endif // !wxNO_PORT_STATTEXT_INCLUDE - -#endif // wxUSE_STATTEXT - -#endif // _WX_STATTEXT_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statusbr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statusbr.h deleted file mode 100644 index 375ee8df..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/statusbr.h +++ /dev/null @@ -1,250 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/statusbr.h -// Purpose: wxStatusBar class interface -// Author: Vadim Zeitlin -// Modified by: -// Created: 05.02.00 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATUSBR_H_BASE_ -#define _WX_STATUSBR_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_STATUSBAR - -#include "wx/control.h" -#include "wx/list.h" -#include "wx/dynarray.h" - -extern WXDLLIMPEXP_DATA_CORE(const char) wxStatusBarNameStr[]; - -// ---------------------------------------------------------------------------- -// wxStatusBar constants -// ---------------------------------------------------------------------------- - -// wxStatusBar styles -#define wxSTB_SIZEGRIP 0x0010 -#define wxSTB_SHOW_TIPS 0x0020 - -#define wxSTB_ELLIPSIZE_START 0x0040 -#define wxSTB_ELLIPSIZE_MIDDLE 0x0080 -#define wxSTB_ELLIPSIZE_END 0x0100 - -#define wxSTB_DEFAULT_STYLE (wxSTB_SIZEGRIP|wxSTB_ELLIPSIZE_END|wxSTB_SHOW_TIPS|wxFULL_REPAINT_ON_RESIZE) - - -// old compat style name: -#define wxST_SIZEGRIP wxSTB_SIZEGRIP - - -// style flags for wxStatusBar fields -#define wxSB_NORMAL 0x0000 -#define wxSB_FLAT 0x0001 -#define wxSB_RAISED 0x0002 -#define wxSB_SUNKEN 0x0003 - -// ---------------------------------------------------------------------------- -// wxStatusBarPane: an helper for wxStatusBar -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxStatusBarPane -{ -public: - wxStatusBarPane(int style = wxSB_NORMAL, int width = 0) - : m_nStyle(style), m_nWidth(width) - { m_bEllipsized = false; } - - int GetWidth() const { return m_nWidth; } - int GetStyle() const { return m_nStyle; } - wxString GetText() const { return m_text; } - - - // implementation-only from now on - // ------------------------------- - - bool IsEllipsized() const - { return m_bEllipsized; } - void SetIsEllipsized(bool isEllipsized) { m_bEllipsized = isEllipsized; } - - void SetWidth(int width) { m_nWidth = width; } - void SetStyle(int style) { m_nStyle = style; } - - // set text, return true if it changed or false if it was already set to - // this value - bool SetText(const wxString& text); - - // save the existing text on top of our stack and make the new text - // current; return true if the text really changed - bool PushText(const wxString& text); - - // restore the message saved by the last call to Push() (unless it was - // changed by an intervening call to SetText()) and return true if we - // really restored anything - bool PopText(); - -private: - int m_nStyle; - int m_nWidth; // may be negative, indicating a variable-width field - wxString m_text; - - // the array used to keep the previous values of this pane after a - // PushStatusText() call, its top element is the value to restore after the - // next PopStatusText() call while the currently shown value is always in - // m_text - wxArrayString m_arrStack; - - // is the currently shown value shown with ellipsis in the status bar? - bool m_bEllipsized; -}; - -WX_DECLARE_EXPORTED_OBJARRAY(wxStatusBarPane, wxStatusBarPaneArray); - -// ---------------------------------------------------------------------------- -// wxStatusBar: a window near the bottom of the frame used for status info -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxStatusBarBase : public wxControl -{ -public: - wxStatusBarBase(); - - virtual ~wxStatusBarBase(); - - // field count - // ----------- - - // set the number of fields and call SetStatusWidths(widths) if widths are - // given - virtual void SetFieldsCount(int number = 1, const int *widths = NULL); - int GetFieldsCount() const { return (int)m_panes.GetCount(); } - - // field text - // ---------- - - // just change or get the currently shown text - void SetStatusText(const wxString& text, int number = 0); - wxString GetStatusText(int number = 0) const; - - // change the currently shown text to the new one and save the current - // value to be restored by the next call to PopStatusText() - void PushStatusText(const wxString& text, int number = 0); - void PopStatusText(int number = 0); - - // fields widths - // ------------- - - // set status field widths as absolute numbers: positive widths mean that - // the field has the specified absolute width, negative widths are - // interpreted as the sizer options, i.e. the extra space (total space - // minus the sum of fixed width fields) is divided between the fields with - // negative width according to the abs value of the width (field with width - // -2 grows twice as much as one with width -1 &c) - virtual void SetStatusWidths(int n, const int widths[]); - - int GetStatusWidth(int n) const - { return m_panes[n].GetWidth(); } - - // field styles - // ------------ - - // Set the field border style to one of wxSB_XXX values. - virtual void SetStatusStyles(int n, const int styles[]); - - int GetStatusStyle(int n) const - { return m_panes[n].GetStyle(); } - - // geometry - // -------- - - // Get the position and size of the field's internal bounding rectangle - virtual bool GetFieldRect(int i, wxRect& rect) const = 0; - - // sets the minimal vertical size of the status bar - virtual void SetMinHeight(int height) = 0; - - // get the dimensions of the horizontal and vertical borders - virtual int GetBorderX() const = 0; - virtual int GetBorderY() const = 0; - - wxSize GetBorders() const - { return wxSize(GetBorderX(), GetBorderY()); } - - // miscellaneous - // ------------- - - const wxStatusBarPane& GetField(int n) const - { return m_panes[n]; } - - // wxWindow overrides: - - // don't want status bars to accept the focus at all - virtual bool AcceptsFocus() const wxOVERRIDE { return false; } - - // the client size of a toplevel window doesn't include the status bar - virtual bool CanBeOutsideClientArea() const wxOVERRIDE { return true; } - -protected: - // called after the status bar pane text changed and should update its - // display - virtual void DoUpdateStatusText(int number) = 0; - - - // wxWindow overrides: - -#if wxUSE_TOOLTIPS - virtual void DoSetToolTip( wxToolTip *tip ) wxOVERRIDE - { - wxASSERT_MSG(!HasFlag(wxSTB_SHOW_TIPS), - "Do not set tooltip(s) manually when using wxSTB_SHOW_TIPS!"); - wxWindow::DoSetToolTip(tip); - } -#endif // wxUSE_TOOLTIPS - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - - // internal helpers & data: - - // calculate the real field widths for the given total available size - wxArrayInt CalculateAbsWidths(wxCoord widthTotal) const; - - // should be called to remember if the pane text is currently being show - // ellipsized or not - void SetEllipsizedFlag(int n, bool isEllipsized); - - - // the array with the pane infos: - wxStatusBarPaneArray m_panes; - - // if true overrides the width info of the wxStatusBarPanes - bool m_bSameWidthForAllPanes; - - wxDECLARE_NO_COPY_CLASS(wxStatusBarBase); -}; - -// ---------------------------------------------------------------------------- -// include the actual wxStatusBar class declaration -// ---------------------------------------------------------------------------- - -#if defined(__WXUNIVERSAL__) - #define wxStatusBarUniv wxStatusBar - #include "wx/univ/statusbr.h" -#elif defined(__WXMSW__) && wxUSE_NATIVE_STATUSBAR - #include "wx/msw/statusbar.h" -#elif defined(__WXMAC__) - #define wxStatusBarMac wxStatusBar - #include "wx/generic/statusbr.h" - #include "wx/osx/statusbr.h" -#elif defined(__WXQT__) - #include "wx/qt/statusbar.h" -#else - #define wxStatusBarGeneric wxStatusBar - #include "wx/generic/statusbr.h" -#endif - -#endif // wxUSE_STATUSBAR - -#endif - // _WX_STATUSBR_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stc/private.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stc/private.h deleted file mode 100644 index f48a0378..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stc/private.h +++ /dev/null @@ -1,54 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// Name: wx/stc/private.h -// Purpose: Private declarations for wxSTC -// Author: Robin Dunn -// Created: 2007-07-15 -// Copyright: (c) 2000 by Total Control Software -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STC_PRIVATE_H_ -#define _WX_STC_PRIVATE_H_ - -#include "wx/defs.h" -#include "wx/string.h" - -//---------------------------------------------------------------------- -// Utility functions used within wxSTC - -#if wxUSE_UNICODE - -extern wxString stc2wx(const char* str); -extern wxString stc2wx(const char* str, size_t len); -extern wxCharBuffer wx2stc(const wxString& str); - -// This function takes both wxString and wxCharBuffer because it uses either -// one or the other of them depending on the build mode. In Unicode it uses the -// length of the already converted buffer to avoid doing the conversion again -// just to compute the length. -inline size_t wx2stclen(const wxString& WXUNUSED(str), const wxCharBuffer& buf) -{ - return buf.length(); -} - -#else // not UNICODE - -inline wxString stc2wx(const char* str) { - return wxString(str); -} -inline wxString stc2wx(const char* str, size_t len) { - return wxString(str, len); -} -inline const char* wx2stc(const wxString& str) { - return str.mbc_str(); -} - -// As explained above, the buffer argument is only used in Unicode build. -inline size_t wx2stclen(const wxString& str, const char* WXUNUSED(buf)) -{ - return str.length(); -} - -#endif // UNICODE - -#endif // _WX_STC_PRIVATE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stc/stc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stc/stc.h deleted file mode 100644 index 0e74afce..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stc/stc.h +++ /dev/null @@ -1,5429 +0,0 @@ -//////////////////////////////////////////////////////////////////////////// -// Name: wx/stc/stc.h -// Purpose: A wxWidgets implementation of Scintilla. This class is the -// one meant to be used directly by wx applications. It does not -// derive directly from the Scintilla classes, and in fact there -// is no mention of Scintilla classes at all in this header. -// This class delegates all method calls and events to the -// Scintilla objects and so forth. This allows the use of -// Scintilla without polluting the namespace with all the -// classes and identifiers from Scintilla. -// -// Author: Robin Dunn -// -// Created: 13-Jan-2000 -// Copyright: (c) 2000 by Total Control Software -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* - IMPORTANT: include/wx/stc/stc.h is generated by src/stc/gen_iface.py from - src/stc/stc.h.in, don't edit stc.h file as your changes will be - lost after the next regeneration, edit stc.h.in and rerun the - gen_iface.py script instead! - - Parts of this file generated by the script are found in between - the special "{{{" and "}}}" markers, the rest of it is copied - verbatim from src.h.in. - */ - -#ifndef _WX_STC_STC_H_ -#define _WX_STC_STC_H_ - -#include "wx/defs.h" - -#if wxUSE_STC - -#include "wx/control.h" -#include "wx/dnd.h" -#include "wx/stopwatch.h" -#include "wx/versioninfo.h" - -#include "wx/textentry.h" -#if wxUSE_TEXTCTRL - #include "wx/textctrl.h" -#endif // wxUSE_TEXTCTRL - -class WXDLLIMPEXP_FWD_CORE wxScrollBar; - -// SWIG can't handle "#if" type of conditionals, only "#ifdef" -#ifdef SWIG -#define STC_USE_DND 1 -#else -#if wxUSE_DRAG_AND_DROP -#define STC_USE_DND 1 -#endif -#endif - -//---------------------------------------------------------------------- -// STC constants generated section {{{ - -#define wxSTC_INVALID_POSITION -1 - -/// Define start of Scintilla messages to be greater than all Windows edit (EM_*) messages -/// as many EM_ messages can be used although that use is deprecated. -#define wxSTC_START 2000 -#define wxSTC_OPTIONAL_START 3000 -#define wxSTC_LEXER_START 4000 -#define wxSTC_WS_INVISIBLE 0 -#define wxSTC_WS_VISIBLEALWAYS 1 -#define wxSTC_WS_VISIBLEAFTERINDENT 2 -#define wxSTC_EOL_CRLF 0 -#define wxSTC_EOL_CR 1 -#define wxSTC_EOL_LF 2 - -/// The SC_CP_UTF8 value can be used to enter Unicode mode. -/// This is the same value as CP_UTF8 in Windows -#define wxSTC_CP_UTF8 65001 -#define wxSTC_IME_WINDOWED 0 -#define wxSTC_IME_INLINE 1 -#define wxSTC_MARKER_MAX 31 -#define wxSTC_MARK_CIRCLE 0 -#define wxSTC_MARK_ROUNDRECT 1 -#define wxSTC_MARK_ARROW 2 -#define wxSTC_MARK_SMALLRECT 3 -#define wxSTC_MARK_SHORTARROW 4 -#define wxSTC_MARK_EMPTY 5 -#define wxSTC_MARK_ARROWDOWN 6 -#define wxSTC_MARK_MINUS 7 -#define wxSTC_MARK_PLUS 8 - -/// Shapes used for outlining column. -#define wxSTC_MARK_VLINE 9 -#define wxSTC_MARK_LCORNER 10 -#define wxSTC_MARK_TCORNER 11 -#define wxSTC_MARK_BOXPLUS 12 -#define wxSTC_MARK_BOXPLUSCONNECTED 13 -#define wxSTC_MARK_BOXMINUS 14 -#define wxSTC_MARK_BOXMINUSCONNECTED 15 -#define wxSTC_MARK_LCORNERCURVE 16 -#define wxSTC_MARK_TCORNERCURVE 17 -#define wxSTC_MARK_CIRCLEPLUS 18 -#define wxSTC_MARK_CIRCLEPLUSCONNECTED 19 -#define wxSTC_MARK_CIRCLEMINUS 20 -#define wxSTC_MARK_CIRCLEMINUSCONNECTED 21 - -/// Invisible mark that only sets the line background colour. -#define wxSTC_MARK_BACKGROUND 22 -#define wxSTC_MARK_DOTDOTDOT 23 -#define wxSTC_MARK_ARROWS 24 -#define wxSTC_MARK_PIXMAP 25 -#define wxSTC_MARK_FULLRECT 26 -#define wxSTC_MARK_LEFTRECT 27 -#define wxSTC_MARK_AVAILABLE 28 -#define wxSTC_MARK_UNDERLINE 29 -#define wxSTC_MARK_RGBAIMAGE 30 -#define wxSTC_MARK_BOOKMARK 31 -#define wxSTC_MARK_CHARACTER 10000 - -/// Markers used for outlining column. -#define wxSTC_MARKNUM_FOLDEREND 25 -#define wxSTC_MARKNUM_FOLDEROPENMID 26 -#define wxSTC_MARKNUM_FOLDERMIDTAIL 27 -#define wxSTC_MARKNUM_FOLDERTAIL 28 -#define wxSTC_MARKNUM_FOLDERSUB 29 -#define wxSTC_MARKNUM_FOLDER 30 -#define wxSTC_MARKNUM_FOLDEROPEN 31 -#define wxSTC_MASK_FOLDERS 0xFE000000 -#define wxSTC_MAX_MARGIN 4 -#define wxSTC_MARGIN_SYMBOL 0 -#define wxSTC_MARGIN_NUMBER 1 -#define wxSTC_MARGIN_BACK 2 -#define wxSTC_MARGIN_FORE 3 -#define wxSTC_MARGIN_TEXT 4 -#define wxSTC_MARGIN_RTEXT 5 - -/// Styles in range 32..38 are predefined for parts of the UI and are not used as normal styles. -/// Style 39 is for future use. -#define wxSTC_STYLE_DEFAULT 32 -#define wxSTC_STYLE_LINENUMBER 33 -#define wxSTC_STYLE_BRACELIGHT 34 -#define wxSTC_STYLE_BRACEBAD 35 -#define wxSTC_STYLE_CONTROLCHAR 36 -#define wxSTC_STYLE_INDENTGUIDE 37 -#define wxSTC_STYLE_CALLTIP 38 -#define wxSTC_STYLE_LASTPREDEFINED 39 -#define wxSTC_STYLE_MAX 255 - -/// Character set identifiers are used in StyleSetCharacterSet. -/// The values are the same as the Windows *_CHARSET values. -#define wxSTC_CHARSET_ANSI 0 -#define wxSTC_CHARSET_DEFAULT 1 -#define wxSTC_CHARSET_BALTIC 186 -#define wxSTC_CHARSET_CHINESEBIG5 136 -#define wxSTC_CHARSET_EASTEUROPE 238 -#define wxSTC_CHARSET_GB2312 134 -#define wxSTC_CHARSET_GREEK 161 -#define wxSTC_CHARSET_HANGUL 129 -#define wxSTC_CHARSET_MAC 77 -#define wxSTC_CHARSET_OEM 255 -#define wxSTC_CHARSET_RUSSIAN 204 -#define wxSTC_CHARSET_CYRILLIC 1251 -#define wxSTC_CHARSET_SHIFTJIS 128 -#define wxSTC_CHARSET_SYMBOL 2 -#define wxSTC_CHARSET_TURKISH 162 -#define wxSTC_CHARSET_JOHAB 130 -#define wxSTC_CHARSET_HEBREW 177 -#define wxSTC_CHARSET_ARABIC 178 -#define wxSTC_CHARSET_VIETNAMESE 163 -#define wxSTC_CHARSET_THAI 222 -#define wxSTC_CHARSET_8859_15 1000 -#define wxSTC_CASE_MIXED 0 -#define wxSTC_CASE_UPPER 1 -#define wxSTC_CASE_LOWER 2 -#define wxSTC_FONT_SIZE_MULTIPLIER 100 -#define wxSTC_WEIGHT_NORMAL 400 -#define wxSTC_WEIGHT_SEMIBOLD 600 -#define wxSTC_WEIGHT_BOLD 700 - -/// Indicator style enumeration and some constants -#define wxSTC_INDIC_PLAIN 0 -#define wxSTC_INDIC_SQUIGGLE 1 -#define wxSTC_INDIC_TT 2 -#define wxSTC_INDIC_DIAGONAL 3 -#define wxSTC_INDIC_STRIKE 4 -#define wxSTC_INDIC_HIDDEN 5 -#define wxSTC_INDIC_BOX 6 -#define wxSTC_INDIC_ROUNDBOX 7 -#define wxSTC_INDIC_STRAIGHTBOX 8 -#define wxSTC_INDIC_DASH 9 -#define wxSTC_INDIC_DOTS 10 -#define wxSTC_INDIC_SQUIGGLELOW 11 -#define wxSTC_INDIC_DOTBOX 12 -#define wxSTC_INDIC_SQUIGGLEPIXMAP 13 -#define wxSTC_INDIC_COMPOSITIONTHICK 14 -#define wxSTC_INDIC_COMPOSITIONTHIN 15 -#define wxSTC_INDIC_FULLBOX 16 -#define wxSTC_INDIC_TEXTFORE 17 -#define wxSTC_INDIC_IME 32 -#define wxSTC_INDIC_IME_MAX 35 -#define wxSTC_INDIC_MAX 35 -#define wxSTC_INDIC_CONTAINER 8 -#define wxSTC_INDIC0_MASK 0x20 -#define wxSTC_INDIC1_MASK 0x40 -#define wxSTC_INDIC2_MASK 0x80 -#define wxSTC_INDICS_MASK 0xE0 -#define wxSTC_INDICVALUEBIT 0x1000000 -#define wxSTC_INDICVALUEMASK 0xFFFFFF -#define wxSTC_INDICFLAG_VALUEFORE 1 -#define wxSTC_IV_NONE 0 -#define wxSTC_IV_REAL 1 -#define wxSTC_IV_LOOKFORWARD 2 -#define wxSTC_IV_LOOKBOTH 3 - -/// PrintColourMode - use same colours as screen. -#define wxSTC_PRINT_NORMAL 0 - -/// PrintColourMode - invert the light value of each style for printing. -#define wxSTC_PRINT_INVERTLIGHT 1 - -/// PrintColourMode - force black text on white background for printing. -#define wxSTC_PRINT_BLACKONWHITE 2 - -/// PrintColourMode - text stays coloured, but all background is forced to be white for printing. -#define wxSTC_PRINT_COLOURONWHITE 3 - -/// PrintColourMode - only the default-background is forced to be white for printing. -#define wxSTC_PRINT_COLOURONWHITEDEFAULTBG 4 -#define wxSTC_FIND_WHOLEWORD 0x2 -#define wxSTC_FIND_MATCHCASE 0x4 -#define wxSTC_FIND_WORDSTART 0x00100000 -#define wxSTC_FIND_REGEXP 0x00200000 -#define wxSTC_FIND_POSIX 0x00400000 -#define wxSTC_FIND_CXX11REGEX 0x00800000 -#define wxSTC_FOLDLEVELBASE 0x400 -#define wxSTC_FOLDLEVELWHITEFLAG 0x1000 -#define wxSTC_FOLDLEVELHEADERFLAG 0x2000 -#define wxSTC_FOLDLEVELNUMBERMASK 0x0FFF -#define wxSTC_FOLDACTION_CONTRACT 0 -#define wxSTC_FOLDACTION_EXPAND 1 -#define wxSTC_FOLDACTION_TOGGLE 2 -#define wxSTC_AUTOMATICFOLD_SHOW 0x0001 -#define wxSTC_AUTOMATICFOLD_CLICK 0x0002 -#define wxSTC_AUTOMATICFOLD_CHANGE 0x0004 -#define wxSTC_FOLDFLAG_LINEBEFORE_EXPANDED 0x0002 -#define wxSTC_FOLDFLAG_LINEBEFORE_CONTRACTED 0x0004 -#define wxSTC_FOLDFLAG_LINEAFTER_EXPANDED 0x0008 -#define wxSTC_FOLDFLAG_LINEAFTER_CONTRACTED 0x0010 -#define wxSTC_FOLDFLAG_LEVELNUMBERS 0x0040 -#define wxSTC_FOLDFLAG_LINESTATE 0x0080 -#define wxSTC_TIME_FOREVER 10000000 -#define wxSTC_WRAP_NONE 0 -#define wxSTC_WRAP_WORD 1 -#define wxSTC_WRAP_CHAR 2 -#define wxSTC_WRAP_WHITESPACE 3 -#define wxSTC_WRAPVISUALFLAG_NONE 0x0000 -#define wxSTC_WRAPVISUALFLAG_END 0x0001 -#define wxSTC_WRAPVISUALFLAG_START 0x0002 -#define wxSTC_WRAPVISUALFLAG_MARGIN 0x0004 -#define wxSTC_WRAPVISUALFLAGLOC_DEFAULT 0x0000 -#define wxSTC_WRAPVISUALFLAGLOC_END_BY_TEXT 0x0001 -#define wxSTC_WRAPVISUALFLAGLOC_START_BY_TEXT 0x0002 -#define wxSTC_WRAPINDENT_FIXED 0 -#define wxSTC_WRAPINDENT_SAME 1 -#define wxSTC_WRAPINDENT_INDENT 2 -#define wxSTC_CACHE_NONE 0 -#define wxSTC_CACHE_CARET 1 -#define wxSTC_CACHE_PAGE 2 -#define wxSTC_CACHE_DOCUMENT 3 -#define wxSTC_PHASES_ONE 0 -#define wxSTC_PHASES_TWO 1 -#define wxSTC_PHASES_MULTIPLE 2 - -/// Control font anti-aliasing. -#define wxSTC_EFF_QUALITY_MASK 0xF -#define wxSTC_EFF_QUALITY_DEFAULT 0 -#define wxSTC_EFF_QUALITY_NON_ANTIALIASED 1 -#define wxSTC_EFF_QUALITY_ANTIALIASED 2 -#define wxSTC_EFF_QUALITY_LCD_OPTIMIZED 3 -#define wxSTC_MULTIPASTE_ONCE 0 -#define wxSTC_MULTIPASTE_EACH 1 -#define wxSTC_EDGE_NONE 0 -#define wxSTC_EDGE_LINE 1 -#define wxSTC_EDGE_BACKGROUND 2 -#define wxSTC_STATUS_OK 0 -#define wxSTC_STATUS_FAILURE 1 -#define wxSTC_STATUS_BADALLOC 2 -#define wxSTC_STATUS_WARN_START 1000 -#define wxSTC_STATUS_WARN_REGEX 1001 -#define wxSTC_CURSORNORMAL -1 -#define wxSTC_CURSORARROW 2 -#define wxSTC_CURSORWAIT 4 -#define wxSTC_CURSORREVERSEARROW 7 - -/// Constants for use with SetVisiblePolicy, similar to SetCaretPolicy. -#define wxSTC_VISIBLE_SLOP 0x01 -#define wxSTC_VISIBLE_STRICT 0x04 - -/// Caret policy, used by SetXCaretPolicy and SetYCaretPolicy. -/// If CARET_SLOP is set, we can define a slop value: caretSlop. -/// This value defines an unwanted zone (UZ) where the caret is... unwanted. -/// This zone is defined as a number of pixels near the vertical margins, -/// and as a number of lines near the horizontal margins. -/// By keeping the caret away from the edges, it is seen within its context, -/// so it is likely that the identifier that the caret is on can be completely seen, -/// and that the current line is seen with some of the lines following it which are -/// often dependent on that line. -#define wxSTC_CARET_SLOP 0x01 - -/// If CARET_STRICT is set, the policy is enforced... strictly. -/// The caret is centred on the display if slop is not set, -/// and cannot go in the UZ if slop is set. -#define wxSTC_CARET_STRICT 0x04 - -/// If CARET_JUMPS is set, the display is moved more energetically -/// so the caret can move in the same direction longer before the policy is applied again. -#define wxSTC_CARET_JUMPS 0x10 - -/// If CARET_EVEN is not set, instead of having symmetrical UZs, -/// the left and bottom UZs are extended up to right and top UZs respectively. -/// This way, we favour the displaying of useful information: the begining of lines, -/// where most code reside, and the lines after the caret, eg. the body of a function. -#define wxSTC_CARET_EVEN 0x08 -#define wxSTC_SEL_STREAM 0 -#define wxSTC_SEL_RECTANGLE 1 -#define wxSTC_SEL_LINES 2 -#define wxSTC_SEL_THIN 3 -#define wxSTC_CASEINSENSITIVEBEHAVIOUR_RESPECTCASE 0 -#define wxSTC_CASEINSENSITIVEBEHAVIOUR_IGNORECASE 1 -#define wxSTC_MULTIAUTOC_ONCE 0 -#define wxSTC_MULTIAUTOC_EACH 1 -#define wxSTC_ORDER_PRESORTED 0 -#define wxSTC_ORDER_PERFORMSORT 1 -#define wxSTC_ORDER_CUSTOM 2 -#define wxSTC_CARETSTICKY_OFF 0 -#define wxSTC_CARETSTICKY_ON 1 -#define wxSTC_CARETSTICKY_WHITESPACE 2 -#define wxSTC_ALPHA_TRANSPARENT 0 -#define wxSTC_ALPHA_OPAQUE 255 -#define wxSTC_ALPHA_NOALPHA 256 -#define wxSTC_CARETSTYLE_INVISIBLE 0 -#define wxSTC_CARETSTYLE_LINE 1 -#define wxSTC_CARETSTYLE_BLOCK 2 -#define wxSTC_MARGINOPTION_NONE 0 -#define wxSTC_MARGINOPTION_SUBLINESELECT 1 -#define wxSTC_ANNOTATION_HIDDEN 0 -#define wxSTC_ANNOTATION_STANDARD 1 -#define wxSTC_ANNOTATION_BOXED 2 -#define wxSTC_ANNOTATION_INDENTED 3 -#define wxSTC_UNDO_MAY_COALESCE 1 -#define wxSTC_SCVS_NONE 0 -#define wxSTC_SCVS_RECTANGULARSELECTION 1 -#define wxSTC_SCVS_USERACCESSIBLE 2 -#define wxSTC_TECHNOLOGY_DEFAULT 0 -#define wxSTC_TECHNOLOGY_DIRECTWRITE 1 -#define wxSTC_TECHNOLOGY_DIRECTWRITERETAIN 2 -#define wxSTC_TECHNOLOGY_DIRECTWRITEDC 3 - -/// Line end types which may be used in addition to LF, CR, and CRLF -/// SC_LINE_END_TYPE_UNICODE includes U+2028 Line Separator, -/// U+2029 Paragraph Separator, and U+0085 Next Line -#define wxSTC_LINE_END_TYPE_DEFAULT 0 -#define wxSTC_LINE_END_TYPE_UNICODE 1 - -/// Maximum value of keywordSet parameter of SetKeyWords. -#define wxSTC_KEYWORDSET_MAX 8 -#define wxSTC_TYPE_BOOLEAN 0 -#define wxSTC_TYPE_INTEGER 1 -#define wxSTC_TYPE_STRING 2 - -/// Notifications -/// Type of modification and the action which caused the modification. -/// These are defined as a bit mask to make it easy to specify which notifications are wanted. -/// One bit is set from each of SC_MOD_* and SC_PERFORMED_*. -#define wxSTC_MOD_INSERTTEXT 0x1 -#define wxSTC_MOD_DELETETEXT 0x2 -#define wxSTC_MOD_CHANGESTYLE 0x4 -#define wxSTC_MOD_CHANGEFOLD 0x8 -#define wxSTC_PERFORMED_USER 0x10 -#define wxSTC_PERFORMED_UNDO 0x20 -#define wxSTC_PERFORMED_REDO 0x40 -#define wxSTC_MULTISTEPUNDOREDO 0x80 -#define wxSTC_LASTSTEPINUNDOREDO 0x100 -#define wxSTC_MOD_CHANGEMARKER 0x200 -#define wxSTC_MOD_BEFOREINSERT 0x400 -#define wxSTC_MOD_BEFOREDELETE 0x800 -#define wxSTC_MULTILINEUNDOREDO 0x1000 -#define wxSTC_STARTACTION 0x2000 -#define wxSTC_MOD_CHANGEINDICATOR 0x4000 -#define wxSTC_MOD_CHANGELINESTATE 0x8000 -#define wxSTC_MOD_CHANGEMARGIN 0x10000 -#define wxSTC_MOD_CHANGEANNOTATION 0x20000 -#define wxSTC_MOD_CONTAINER 0x40000 -#define wxSTC_MOD_LEXERSTATE 0x80000 -#define wxSTC_MOD_INSERTCHECK 0x100000 -#define wxSTC_MOD_CHANGETABSTOPS 0x200000 -#define wxSTC_MODEVENTMASKALL 0x3FFFFF -#define wxSTC_UPDATE_CONTENT 0x1 -#define wxSTC_UPDATE_SELECTION 0x2 -#define wxSTC_UPDATE_V_SCROLL 0x4 -#define wxSTC_UPDATE_H_SCROLL 0x8 - -/// Symbolic key codes and modifier flags. -/// ASCII and other printable characters below 256. -/// Extended keys above 300. -#define wxSTC_KEY_DOWN 300 -#define wxSTC_KEY_UP 301 -#define wxSTC_KEY_LEFT 302 -#define wxSTC_KEY_RIGHT 303 -#define wxSTC_KEY_HOME 304 -#define wxSTC_KEY_END 305 -#define wxSTC_KEY_PRIOR 306 -#define wxSTC_KEY_NEXT 307 -#define wxSTC_KEY_DELETE 308 -#define wxSTC_KEY_INSERT 309 -#define wxSTC_KEY_ESCAPE 7 -#define wxSTC_KEY_BACK 8 -#define wxSTC_KEY_TAB 9 -#define wxSTC_KEY_RETURN 13 -#define wxSTC_KEY_ADD 310 -#define wxSTC_KEY_SUBTRACT 311 -#define wxSTC_KEY_DIVIDE 312 -#define wxSTC_KEY_WIN 313 -#define wxSTC_KEY_RWIN 314 -#define wxSTC_KEY_MENU 315 -#define wxSTC_SCMOD_NORM 0 -#define wxSTC_SCMOD_SHIFT 1 -#define wxSTC_SCMOD_CTRL 2 -#define wxSTC_SCMOD_ALT 4 -#define wxSTC_SCMOD_SUPER 8 -#define wxSTC_SCMOD_META 16 - -/// For SciLexer.h -#define wxSTC_LEX_CONTAINER 0 -#define wxSTC_LEX_NULL 1 -#define wxSTC_LEX_PYTHON 2 -#define wxSTC_LEX_CPP 3 -#define wxSTC_LEX_HTML 4 -#define wxSTC_LEX_XML 5 -#define wxSTC_LEX_PERL 6 -#define wxSTC_LEX_SQL 7 -#define wxSTC_LEX_VB 8 -#define wxSTC_LEX_PROPERTIES 9 -#define wxSTC_LEX_ERRORLIST 10 -#define wxSTC_LEX_MAKEFILE 11 -#define wxSTC_LEX_BATCH 12 -#define wxSTC_LEX_XCODE 13 -#define wxSTC_LEX_LATEX 14 -#define wxSTC_LEX_LUA 15 -#define wxSTC_LEX_DIFF 16 -#define wxSTC_LEX_CONF 17 -#define wxSTC_LEX_PASCAL 18 -#define wxSTC_LEX_AVE 19 -#define wxSTC_LEX_ADA 20 -#define wxSTC_LEX_LISP 21 -#define wxSTC_LEX_RUBY 22 -#define wxSTC_LEX_EIFFEL 23 -#define wxSTC_LEX_EIFFELKW 24 -#define wxSTC_LEX_TCL 25 -#define wxSTC_LEX_NNCRONTAB 26 -#define wxSTC_LEX_BULLANT 27 -#define wxSTC_LEX_VBSCRIPT 28 -#define wxSTC_LEX_BAAN 31 -#define wxSTC_LEX_MATLAB 32 -#define wxSTC_LEX_SCRIPTOL 33 -#define wxSTC_LEX_ASM 34 -#define wxSTC_LEX_CPPNOCASE 35 -#define wxSTC_LEX_FORTRAN 36 -#define wxSTC_LEX_F77 37 -#define wxSTC_LEX_CSS 38 -#define wxSTC_LEX_POV 39 -#define wxSTC_LEX_LOUT 40 -#define wxSTC_LEX_ESCRIPT 41 -#define wxSTC_LEX_PS 42 -#define wxSTC_LEX_NSIS 43 -#define wxSTC_LEX_MMIXAL 44 -#define wxSTC_LEX_CLW 45 -#define wxSTC_LEX_CLWNOCASE 46 -#define wxSTC_LEX_LOT 47 -#define wxSTC_LEX_YAML 48 -#define wxSTC_LEX_TEX 49 -#define wxSTC_LEX_METAPOST 50 -#define wxSTC_LEX_POWERBASIC 51 -#define wxSTC_LEX_FORTH 52 -#define wxSTC_LEX_ERLANG 53 -#define wxSTC_LEX_OCTAVE 54 -#define wxSTC_LEX_MSSQL 55 -#define wxSTC_LEX_VERILOG 56 -#define wxSTC_LEX_KIX 57 -#define wxSTC_LEX_GUI4CLI 58 -#define wxSTC_LEX_SPECMAN 59 -#define wxSTC_LEX_AU3 60 -#define wxSTC_LEX_APDL 61 -#define wxSTC_LEX_BASH 62 -#define wxSTC_LEX_ASN1 63 -#define wxSTC_LEX_VHDL 64 -#define wxSTC_LEX_CAML 65 -#define wxSTC_LEX_BLITZBASIC 66 -#define wxSTC_LEX_PUREBASIC 67 -#define wxSTC_LEX_HASKELL 68 -#define wxSTC_LEX_PHPSCRIPT 69 -#define wxSTC_LEX_TADS3 70 -#define wxSTC_LEX_REBOL 71 -#define wxSTC_LEX_SMALLTALK 72 -#define wxSTC_LEX_FLAGSHIP 73 -#define wxSTC_LEX_CSOUND 74 -#define wxSTC_LEX_FREEBASIC 75 -#define wxSTC_LEX_INNOSETUP 76 -#define wxSTC_LEX_OPAL 77 -#define wxSTC_LEX_SPICE 78 -#define wxSTC_LEX_D 79 -#define wxSTC_LEX_CMAKE 80 -#define wxSTC_LEX_GAP 81 -#define wxSTC_LEX_PLM 82 -#define wxSTC_LEX_PROGRESS 83 -#define wxSTC_LEX_ABAQUS 84 -#define wxSTC_LEX_ASYMPTOTE 85 -#define wxSTC_LEX_R 86 -#define wxSTC_LEX_MAGIK 87 -#define wxSTC_LEX_POWERSHELL 88 -#define wxSTC_LEX_MYSQL 89 -#define wxSTC_LEX_PO 90 -#define wxSTC_LEX_TAL 91 -#define wxSTC_LEX_COBOL 92 -#define wxSTC_LEX_TACL 93 -#define wxSTC_LEX_SORCUS 94 -#define wxSTC_LEX_POWERPRO 95 -#define wxSTC_LEX_NIMROD 96 -#define wxSTC_LEX_SML 97 -#define wxSTC_LEX_MARKDOWN 98 -#define wxSTC_LEX_TXT2TAGS 99 -#define wxSTC_LEX_A68K 100 -#define wxSTC_LEX_MODULA 101 -#define wxSTC_LEX_COFFEESCRIPT 102 -#define wxSTC_LEX_TCMD 103 -#define wxSTC_LEX_AVS 104 -#define wxSTC_LEX_ECL 105 -#define wxSTC_LEX_OSCRIPT 106 -#define wxSTC_LEX_VISUALPROLOG 107 -#define wxSTC_LEX_LITERATEHASKELL 108 -#define wxSTC_LEX_STTXT 109 -#define wxSTC_LEX_KVIRC 110 -#define wxSTC_LEX_RUST 111 -#define wxSTC_LEX_DMAP 112 -#define wxSTC_LEX_AS 113 -#define wxSTC_LEX_DMIS 114 -#define wxSTC_LEX_REGISTRY 115 -#define wxSTC_LEX_BIBTEX 116 -#define wxSTC_LEX_SREC 117 -#define wxSTC_LEX_IHEX 118 -#define wxSTC_LEX_TEHEX 119 - -/// When a lexer specifies its language as SCLEX_AUTOMATIC it receives a -/// value assigned in sequence from SCLEX_AUTOMATIC+1. -#define wxSTC_LEX_AUTOMATIC 1000 - -/// Lexical states for SCLEX_PYTHON -#define wxSTC_P_DEFAULT 0 -#define wxSTC_P_COMMENTLINE 1 -#define wxSTC_P_NUMBER 2 -#define wxSTC_P_STRING 3 -#define wxSTC_P_CHARACTER 4 -#define wxSTC_P_WORD 5 -#define wxSTC_P_TRIPLE 6 -#define wxSTC_P_TRIPLEDOUBLE 7 -#define wxSTC_P_CLASSNAME 8 -#define wxSTC_P_DEFNAME 9 -#define wxSTC_P_OPERATOR 10 -#define wxSTC_P_IDENTIFIER 11 -#define wxSTC_P_COMMENTBLOCK 12 -#define wxSTC_P_STRINGEOL 13 -#define wxSTC_P_WORD2 14 -#define wxSTC_P_DECORATOR 15 - -/// Lexical states for SCLEX_CPP -#define wxSTC_C_DEFAULT 0 -#define wxSTC_C_COMMENT 1 -#define wxSTC_C_COMMENTLINE 2 -#define wxSTC_C_COMMENTDOC 3 -#define wxSTC_C_NUMBER 4 -#define wxSTC_C_WORD 5 -#define wxSTC_C_STRING 6 -#define wxSTC_C_CHARACTER 7 -#define wxSTC_C_UUID 8 -#define wxSTC_C_PREPROCESSOR 9 -#define wxSTC_C_OPERATOR 10 -#define wxSTC_C_IDENTIFIER 11 -#define wxSTC_C_STRINGEOL 12 -#define wxSTC_C_VERBATIM 13 -#define wxSTC_C_REGEX 14 -#define wxSTC_C_COMMENTLINEDOC 15 -#define wxSTC_C_WORD2 16 -#define wxSTC_C_COMMENTDOCKEYWORD 17 -#define wxSTC_C_COMMENTDOCKEYWORDERROR 18 -#define wxSTC_C_GLOBALCLASS 19 -#define wxSTC_C_STRINGRAW 20 -#define wxSTC_C_TRIPLEVERBATIM 21 -#define wxSTC_C_HASHQUOTEDSTRING 22 -#define wxSTC_C_PREPROCESSORCOMMENT 23 -#define wxSTC_C_PREPROCESSORCOMMENTDOC 24 -#define wxSTC_C_USERLITERAL 25 -#define wxSTC_C_TASKMARKER 26 -#define wxSTC_C_ESCAPESEQUENCE 27 - -/// Lexical states for SCLEX_D -#define wxSTC_D_DEFAULT 0 -#define wxSTC_D_COMMENT 1 -#define wxSTC_D_COMMENTLINE 2 -#define wxSTC_D_COMMENTDOC 3 -#define wxSTC_D_COMMENTNESTED 4 -#define wxSTC_D_NUMBER 5 -#define wxSTC_D_WORD 6 -#define wxSTC_D_WORD2 7 -#define wxSTC_D_WORD3 8 -#define wxSTC_D_TYPEDEF 9 -#define wxSTC_D_STRING 10 -#define wxSTC_D_STRINGEOL 11 -#define wxSTC_D_CHARACTER 12 -#define wxSTC_D_OPERATOR 13 -#define wxSTC_D_IDENTIFIER 14 -#define wxSTC_D_COMMENTLINEDOC 15 -#define wxSTC_D_COMMENTDOCKEYWORD 16 -#define wxSTC_D_COMMENTDOCKEYWORDERROR 17 -#define wxSTC_D_STRINGB 18 -#define wxSTC_D_STRINGR 19 -#define wxSTC_D_WORD5 20 -#define wxSTC_D_WORD6 21 -#define wxSTC_D_WORD7 22 - -/// Lexical states for SCLEX_TCL -#define wxSTC_TCL_DEFAULT 0 -#define wxSTC_TCL_COMMENT 1 -#define wxSTC_TCL_COMMENTLINE 2 -#define wxSTC_TCL_NUMBER 3 -#define wxSTC_TCL_WORD_IN_QUOTE 4 -#define wxSTC_TCL_IN_QUOTE 5 -#define wxSTC_TCL_OPERATOR 6 -#define wxSTC_TCL_IDENTIFIER 7 -#define wxSTC_TCL_SUBSTITUTION 8 -#define wxSTC_TCL_SUB_BRACE 9 -#define wxSTC_TCL_MODIFIER 10 -#define wxSTC_TCL_EXPAND 11 -#define wxSTC_TCL_WORD 12 -#define wxSTC_TCL_WORD2 13 -#define wxSTC_TCL_WORD3 14 -#define wxSTC_TCL_WORD4 15 -#define wxSTC_TCL_WORD5 16 -#define wxSTC_TCL_WORD6 17 -#define wxSTC_TCL_WORD7 18 -#define wxSTC_TCL_WORD8 19 -#define wxSTC_TCL_COMMENT_BOX 20 -#define wxSTC_TCL_BLOCK_COMMENT 21 - -/// Lexical states for SCLEX_HTML, SCLEX_XML -#define wxSTC_H_DEFAULT 0 -#define wxSTC_H_TAG 1 -#define wxSTC_H_TAGUNKNOWN 2 -#define wxSTC_H_ATTRIBUTE 3 -#define wxSTC_H_ATTRIBUTEUNKNOWN 4 -#define wxSTC_H_NUMBER 5 -#define wxSTC_H_DOUBLESTRING 6 -#define wxSTC_H_SINGLESTRING 7 -#define wxSTC_H_OTHER 8 -#define wxSTC_H_COMMENT 9 -#define wxSTC_H_ENTITY 10 - -/// XML and ASP -#define wxSTC_H_TAGEND 11 -#define wxSTC_H_XMLSTART 12 -#define wxSTC_H_XMLEND 13 -#define wxSTC_H_SCRIPT 14 -#define wxSTC_H_ASP 15 -#define wxSTC_H_ASPAT 16 -#define wxSTC_H_CDATA 17 -#define wxSTC_H_QUESTION 18 - -/// More HTML -#define wxSTC_H_VALUE 19 - -/// X-Code -#define wxSTC_H_XCCOMMENT 20 - -/// SGML -#define wxSTC_H_SGML_DEFAULT 21 -#define wxSTC_H_SGML_COMMAND 22 -#define wxSTC_H_SGML_1ST_PARAM 23 -#define wxSTC_H_SGML_DOUBLESTRING 24 -#define wxSTC_H_SGML_SIMPLESTRING 25 -#define wxSTC_H_SGML_ERROR 26 -#define wxSTC_H_SGML_SPECIAL 27 -#define wxSTC_H_SGML_ENTITY 28 -#define wxSTC_H_SGML_COMMENT 29 -#define wxSTC_H_SGML_1ST_PARAM_COMMENT 30 -#define wxSTC_H_SGML_BLOCK_DEFAULT 31 - -/// Embedded Javascript -#define wxSTC_HJ_START 40 -#define wxSTC_HJ_DEFAULT 41 -#define wxSTC_HJ_COMMENT 42 -#define wxSTC_HJ_COMMENTLINE 43 -#define wxSTC_HJ_COMMENTDOC 44 -#define wxSTC_HJ_NUMBER 45 -#define wxSTC_HJ_WORD 46 -#define wxSTC_HJ_KEYWORD 47 -#define wxSTC_HJ_DOUBLESTRING 48 -#define wxSTC_HJ_SINGLESTRING 49 -#define wxSTC_HJ_SYMBOLS 50 -#define wxSTC_HJ_STRINGEOL 51 -#define wxSTC_HJ_REGEX 52 - -/// ASP Javascript -#define wxSTC_HJA_START 55 -#define wxSTC_HJA_DEFAULT 56 -#define wxSTC_HJA_COMMENT 57 -#define wxSTC_HJA_COMMENTLINE 58 -#define wxSTC_HJA_COMMENTDOC 59 -#define wxSTC_HJA_NUMBER 60 -#define wxSTC_HJA_WORD 61 -#define wxSTC_HJA_KEYWORD 62 -#define wxSTC_HJA_DOUBLESTRING 63 -#define wxSTC_HJA_SINGLESTRING 64 -#define wxSTC_HJA_SYMBOLS 65 -#define wxSTC_HJA_STRINGEOL 66 -#define wxSTC_HJA_REGEX 67 - -/// Embedded VBScript -#define wxSTC_HB_START 70 -#define wxSTC_HB_DEFAULT 71 -#define wxSTC_HB_COMMENTLINE 72 -#define wxSTC_HB_NUMBER 73 -#define wxSTC_HB_WORD 74 -#define wxSTC_HB_STRING 75 -#define wxSTC_HB_IDENTIFIER 76 -#define wxSTC_HB_STRINGEOL 77 - -/// ASP VBScript -#define wxSTC_HBA_START 80 -#define wxSTC_HBA_DEFAULT 81 -#define wxSTC_HBA_COMMENTLINE 82 -#define wxSTC_HBA_NUMBER 83 -#define wxSTC_HBA_WORD 84 -#define wxSTC_HBA_STRING 85 -#define wxSTC_HBA_IDENTIFIER 86 -#define wxSTC_HBA_STRINGEOL 87 - -/// Embedded Python -#define wxSTC_HP_START 90 -#define wxSTC_HP_DEFAULT 91 -#define wxSTC_HP_COMMENTLINE 92 -#define wxSTC_HP_NUMBER 93 -#define wxSTC_HP_STRING 94 -#define wxSTC_HP_CHARACTER 95 -#define wxSTC_HP_WORD 96 -#define wxSTC_HP_TRIPLE 97 -#define wxSTC_HP_TRIPLEDOUBLE 98 -#define wxSTC_HP_CLASSNAME 99 -#define wxSTC_HP_DEFNAME 100 -#define wxSTC_HP_OPERATOR 101 -#define wxSTC_HP_IDENTIFIER 102 - -/// PHP -#define wxSTC_HPHP_COMPLEX_VARIABLE 104 - -/// ASP Python -#define wxSTC_HPA_START 105 -#define wxSTC_HPA_DEFAULT 106 -#define wxSTC_HPA_COMMENTLINE 107 -#define wxSTC_HPA_NUMBER 108 -#define wxSTC_HPA_STRING 109 -#define wxSTC_HPA_CHARACTER 110 -#define wxSTC_HPA_WORD 111 -#define wxSTC_HPA_TRIPLE 112 -#define wxSTC_HPA_TRIPLEDOUBLE 113 -#define wxSTC_HPA_CLASSNAME 114 -#define wxSTC_HPA_DEFNAME 115 -#define wxSTC_HPA_OPERATOR 116 -#define wxSTC_HPA_IDENTIFIER 117 - -/// PHP -#define wxSTC_HPHP_DEFAULT 118 -#define wxSTC_HPHP_HSTRING 119 -#define wxSTC_HPHP_SIMPLESTRING 120 -#define wxSTC_HPHP_WORD 121 -#define wxSTC_HPHP_NUMBER 122 -#define wxSTC_HPHP_VARIABLE 123 -#define wxSTC_HPHP_COMMENT 124 -#define wxSTC_HPHP_COMMENTLINE 125 -#define wxSTC_HPHP_HSTRING_VARIABLE 126 -#define wxSTC_HPHP_OPERATOR 127 - -/// Lexical states for SCLEX_PERL -#define wxSTC_PL_DEFAULT 0 -#define wxSTC_PL_ERROR 1 -#define wxSTC_PL_COMMENTLINE 2 -#define wxSTC_PL_POD 3 -#define wxSTC_PL_NUMBER 4 -#define wxSTC_PL_WORD 5 -#define wxSTC_PL_STRING 6 -#define wxSTC_PL_CHARACTER 7 -#define wxSTC_PL_PUNCTUATION 8 -#define wxSTC_PL_PREPROCESSOR 9 -#define wxSTC_PL_OPERATOR 10 -#define wxSTC_PL_IDENTIFIER 11 -#define wxSTC_PL_SCALAR 12 -#define wxSTC_PL_ARRAY 13 -#define wxSTC_PL_HASH 14 -#define wxSTC_PL_SYMBOLTABLE 15 -#define wxSTC_PL_VARIABLE_INDEXER 16 -#define wxSTC_PL_REGEX 17 -#define wxSTC_PL_REGSUBST 18 -#define wxSTC_PL_LONGQUOTE 19 -#define wxSTC_PL_BACKTICKS 20 -#define wxSTC_PL_DATASECTION 21 -#define wxSTC_PL_HERE_DELIM 22 -#define wxSTC_PL_HERE_Q 23 -#define wxSTC_PL_HERE_QQ 24 -#define wxSTC_PL_HERE_QX 25 -#define wxSTC_PL_STRING_Q 26 -#define wxSTC_PL_STRING_QQ 27 -#define wxSTC_PL_STRING_QX 28 -#define wxSTC_PL_STRING_QR 29 -#define wxSTC_PL_STRING_QW 30 -#define wxSTC_PL_POD_VERB 31 -#define wxSTC_PL_SUB_PROTOTYPE 40 -#define wxSTC_PL_FORMAT_IDENT 41 -#define wxSTC_PL_FORMAT 42 -#define wxSTC_PL_STRING_VAR 43 -#define wxSTC_PL_XLAT 44 -#define wxSTC_PL_REGEX_VAR 54 -#define wxSTC_PL_REGSUBST_VAR 55 -#define wxSTC_PL_BACKTICKS_VAR 57 -#define wxSTC_PL_HERE_QQ_VAR 61 -#define wxSTC_PL_HERE_QX_VAR 62 -#define wxSTC_PL_STRING_QQ_VAR 64 -#define wxSTC_PL_STRING_QX_VAR 65 -#define wxSTC_PL_STRING_QR_VAR 66 - -/// Lexical states for SCLEX_RUBY -#define wxSTC_RB_DEFAULT 0 -#define wxSTC_RB_ERROR 1 -#define wxSTC_RB_COMMENTLINE 2 -#define wxSTC_RB_POD 3 -#define wxSTC_RB_NUMBER 4 -#define wxSTC_RB_WORD 5 -#define wxSTC_RB_STRING 6 -#define wxSTC_RB_CHARACTER 7 -#define wxSTC_RB_CLASSNAME 8 -#define wxSTC_RB_DEFNAME 9 -#define wxSTC_RB_OPERATOR 10 -#define wxSTC_RB_IDENTIFIER 11 -#define wxSTC_RB_REGEX 12 -#define wxSTC_RB_GLOBAL 13 -#define wxSTC_RB_SYMBOL 14 -#define wxSTC_RB_MODULE_NAME 15 -#define wxSTC_RB_INSTANCE_VAR 16 -#define wxSTC_RB_CLASS_VAR 17 -#define wxSTC_RB_BACKTICKS 18 -#define wxSTC_RB_DATASECTION 19 -#define wxSTC_RB_HERE_DELIM 20 -#define wxSTC_RB_HERE_Q 21 -#define wxSTC_RB_HERE_QQ 22 -#define wxSTC_RB_HERE_QX 23 -#define wxSTC_RB_STRING_Q 24 -#define wxSTC_RB_STRING_QQ 25 -#define wxSTC_RB_STRING_QX 26 -#define wxSTC_RB_STRING_QR 27 -#define wxSTC_RB_STRING_QW 28 -#define wxSTC_RB_WORD_DEMOTED 29 -#define wxSTC_RB_STDIN 30 -#define wxSTC_RB_STDOUT 31 -#define wxSTC_RB_STDERR 40 -#define wxSTC_RB_UPPER_BOUND 41 - -/// Lexical states for SCLEX_VB, SCLEX_VBSCRIPT, SCLEX_POWERBASIC -#define wxSTC_B_DEFAULT 0 -#define wxSTC_B_COMMENT 1 -#define wxSTC_B_NUMBER 2 -#define wxSTC_B_KEYWORD 3 -#define wxSTC_B_STRING 4 -#define wxSTC_B_PREPROCESSOR 5 -#define wxSTC_B_OPERATOR 6 -#define wxSTC_B_IDENTIFIER 7 -#define wxSTC_B_DATE 8 -#define wxSTC_B_STRINGEOL 9 -#define wxSTC_B_KEYWORD2 10 -#define wxSTC_B_KEYWORD3 11 -#define wxSTC_B_KEYWORD4 12 -#define wxSTC_B_CONSTANT 13 -#define wxSTC_B_ASM 14 -#define wxSTC_B_LABEL 15 -#define wxSTC_B_ERROR 16 -#define wxSTC_B_HEXNUMBER 17 -#define wxSTC_B_BINNUMBER 18 -#define wxSTC_B_COMMENTBLOCK 19 -#define wxSTC_B_DOCLINE 20 -#define wxSTC_B_DOCBLOCK 21 -#define wxSTC_B_DOCKEYWORD 22 - -/// Lexical states for SCLEX_PROPERTIES -#define wxSTC_PROPS_DEFAULT 0 -#define wxSTC_PROPS_COMMENT 1 -#define wxSTC_PROPS_SECTION 2 -#define wxSTC_PROPS_ASSIGNMENT 3 -#define wxSTC_PROPS_DEFVAL 4 -#define wxSTC_PROPS_KEY 5 - -/// Lexical states for SCLEX_LATEX -#define wxSTC_L_DEFAULT 0 -#define wxSTC_L_COMMAND 1 -#define wxSTC_L_TAG 2 -#define wxSTC_L_MATH 3 -#define wxSTC_L_COMMENT 4 -#define wxSTC_L_TAG2 5 -#define wxSTC_L_MATH2 6 -#define wxSTC_L_COMMENT2 7 -#define wxSTC_L_VERBATIM 8 -#define wxSTC_L_SHORTCMD 9 -#define wxSTC_L_SPECIAL 10 -#define wxSTC_L_CMDOPT 11 -#define wxSTC_L_ERROR 12 - -/// Lexical states for SCLEX_LUA -#define wxSTC_LUA_DEFAULT 0 -#define wxSTC_LUA_COMMENT 1 -#define wxSTC_LUA_COMMENTLINE 2 -#define wxSTC_LUA_COMMENTDOC 3 -#define wxSTC_LUA_NUMBER 4 -#define wxSTC_LUA_WORD 5 -#define wxSTC_LUA_STRING 6 -#define wxSTC_LUA_CHARACTER 7 -#define wxSTC_LUA_LITERALSTRING 8 -#define wxSTC_LUA_PREPROCESSOR 9 -#define wxSTC_LUA_OPERATOR 10 -#define wxSTC_LUA_IDENTIFIER 11 -#define wxSTC_LUA_STRINGEOL 12 -#define wxSTC_LUA_WORD2 13 -#define wxSTC_LUA_WORD3 14 -#define wxSTC_LUA_WORD4 15 -#define wxSTC_LUA_WORD5 16 -#define wxSTC_LUA_WORD6 17 -#define wxSTC_LUA_WORD7 18 -#define wxSTC_LUA_WORD8 19 -#define wxSTC_LUA_LABEL 20 - -/// Lexical states for SCLEX_ERRORLIST -#define wxSTC_ERR_DEFAULT 0 -#define wxSTC_ERR_PYTHON 1 -#define wxSTC_ERR_GCC 2 -#define wxSTC_ERR_MS 3 -#define wxSTC_ERR_CMD 4 -#define wxSTC_ERR_BORLAND 5 -#define wxSTC_ERR_PERL 6 -#define wxSTC_ERR_NET 7 -#define wxSTC_ERR_LUA 8 -#define wxSTC_ERR_CTAG 9 -#define wxSTC_ERR_DIFF_CHANGED 10 -#define wxSTC_ERR_DIFF_ADDITION 11 -#define wxSTC_ERR_DIFF_DELETION 12 -#define wxSTC_ERR_DIFF_MESSAGE 13 -#define wxSTC_ERR_PHP 14 -#define wxSTC_ERR_ELF 15 -#define wxSTC_ERR_IFC 16 -#define wxSTC_ERR_IFORT 17 -#define wxSTC_ERR_ABSF 18 -#define wxSTC_ERR_TIDY 19 -#define wxSTC_ERR_JAVA_STACK 20 -#define wxSTC_ERR_VALUE 21 -#define wxSTC_ERR_GCC_INCLUDED_FROM 22 - -/// Lexical states for SCLEX_BATCH -#define wxSTC_BAT_DEFAULT 0 -#define wxSTC_BAT_COMMENT 1 -#define wxSTC_BAT_WORD 2 -#define wxSTC_BAT_LABEL 3 -#define wxSTC_BAT_HIDE 4 -#define wxSTC_BAT_COMMAND 5 -#define wxSTC_BAT_IDENTIFIER 6 -#define wxSTC_BAT_OPERATOR 7 - -/// Lexical states for SCLEX_TCMD -#define wxSTC_TCMD_DEFAULT 0 -#define wxSTC_TCMD_COMMENT 1 -#define wxSTC_TCMD_WORD 2 -#define wxSTC_TCMD_LABEL 3 -#define wxSTC_TCMD_HIDE 4 -#define wxSTC_TCMD_COMMAND 5 -#define wxSTC_TCMD_IDENTIFIER 6 -#define wxSTC_TCMD_OPERATOR 7 -#define wxSTC_TCMD_ENVIRONMENT 8 -#define wxSTC_TCMD_EXPANSION 9 -#define wxSTC_TCMD_CLABEL 10 - -/// Lexical states for SCLEX_MAKEFILE -#define wxSTC_MAKE_DEFAULT 0 -#define wxSTC_MAKE_COMMENT 1 -#define wxSTC_MAKE_PREPROCESSOR 2 -#define wxSTC_MAKE_IDENTIFIER 3 -#define wxSTC_MAKE_OPERATOR 4 -#define wxSTC_MAKE_TARGET 5 -#define wxSTC_MAKE_IDEOL 9 - -/// Lexical states for SCLEX_DIFF -#define wxSTC_DIFF_DEFAULT 0 -#define wxSTC_DIFF_COMMENT 1 -#define wxSTC_DIFF_COMMAND 2 -#define wxSTC_DIFF_HEADER 3 -#define wxSTC_DIFF_POSITION 4 -#define wxSTC_DIFF_DELETED 5 -#define wxSTC_DIFF_ADDED 6 -#define wxSTC_DIFF_CHANGED 7 - -/// Lexical states for SCLEX_CONF (Apache Configuration Files Lexer) -#define wxSTC_CONF_DEFAULT 0 -#define wxSTC_CONF_COMMENT 1 -#define wxSTC_CONF_NUMBER 2 -#define wxSTC_CONF_IDENTIFIER 3 -#define wxSTC_CONF_EXTENSION 4 -#define wxSTC_CONF_PARAMETER 5 -#define wxSTC_CONF_STRING 6 -#define wxSTC_CONF_OPERATOR 7 -#define wxSTC_CONF_IP 8 -#define wxSTC_CONF_DIRECTIVE 9 - -/// Lexical states for SCLEX_AVE, Avenue -#define wxSTC_AVE_DEFAULT 0 -#define wxSTC_AVE_COMMENT 1 -#define wxSTC_AVE_NUMBER 2 -#define wxSTC_AVE_WORD 3 -#define wxSTC_AVE_STRING 6 -#define wxSTC_AVE_ENUM 7 -#define wxSTC_AVE_STRINGEOL 8 -#define wxSTC_AVE_IDENTIFIER 9 -#define wxSTC_AVE_OPERATOR 10 -#define wxSTC_AVE_WORD1 11 -#define wxSTC_AVE_WORD2 12 -#define wxSTC_AVE_WORD3 13 -#define wxSTC_AVE_WORD4 14 -#define wxSTC_AVE_WORD5 15 -#define wxSTC_AVE_WORD6 16 - -/// Lexical states for SCLEX_ADA -#define wxSTC_ADA_DEFAULT 0 -#define wxSTC_ADA_WORD 1 -#define wxSTC_ADA_IDENTIFIER 2 -#define wxSTC_ADA_NUMBER 3 -#define wxSTC_ADA_DELIMITER 4 -#define wxSTC_ADA_CHARACTER 5 -#define wxSTC_ADA_CHARACTEREOL 6 -#define wxSTC_ADA_STRING 7 -#define wxSTC_ADA_STRINGEOL 8 -#define wxSTC_ADA_LABEL 9 -#define wxSTC_ADA_COMMENTLINE 10 -#define wxSTC_ADA_ILLEGAL 11 - -/// Lexical states for SCLEX_BAAN -#define wxSTC_BAAN_DEFAULT 0 -#define wxSTC_BAAN_COMMENT 1 -#define wxSTC_BAAN_COMMENTDOC 2 -#define wxSTC_BAAN_NUMBER 3 -#define wxSTC_BAAN_WORD 4 -#define wxSTC_BAAN_STRING 5 -#define wxSTC_BAAN_PREPROCESSOR 6 -#define wxSTC_BAAN_OPERATOR 7 -#define wxSTC_BAAN_IDENTIFIER 8 -#define wxSTC_BAAN_STRINGEOL 9 -#define wxSTC_BAAN_WORD2 10 - -/// Lexical states for SCLEX_LISP -#define wxSTC_LISP_DEFAULT 0 -#define wxSTC_LISP_COMMENT 1 -#define wxSTC_LISP_NUMBER 2 -#define wxSTC_LISP_KEYWORD 3 -#define wxSTC_LISP_KEYWORD_KW 4 -#define wxSTC_LISP_SYMBOL 5 -#define wxSTC_LISP_STRING 6 -#define wxSTC_LISP_STRINGEOL 8 -#define wxSTC_LISP_IDENTIFIER 9 -#define wxSTC_LISP_OPERATOR 10 -#define wxSTC_LISP_SPECIAL 11 -#define wxSTC_LISP_MULTI_COMMENT 12 - -/// Lexical states for SCLEX_EIFFEL and SCLEX_EIFFELKW -#define wxSTC_EIFFEL_DEFAULT 0 -#define wxSTC_EIFFEL_COMMENTLINE 1 -#define wxSTC_EIFFEL_NUMBER 2 -#define wxSTC_EIFFEL_WORD 3 -#define wxSTC_EIFFEL_STRING 4 -#define wxSTC_EIFFEL_CHARACTER 5 -#define wxSTC_EIFFEL_OPERATOR 6 -#define wxSTC_EIFFEL_IDENTIFIER 7 -#define wxSTC_EIFFEL_STRINGEOL 8 - -/// Lexical states for SCLEX_NNCRONTAB (nnCron crontab Lexer) -#define wxSTC_NNCRONTAB_DEFAULT 0 -#define wxSTC_NNCRONTAB_COMMENT 1 -#define wxSTC_NNCRONTAB_TASK 2 -#define wxSTC_NNCRONTAB_SECTION 3 -#define wxSTC_NNCRONTAB_KEYWORD 4 -#define wxSTC_NNCRONTAB_MODIFIER 5 -#define wxSTC_NNCRONTAB_ASTERISK 6 -#define wxSTC_NNCRONTAB_NUMBER 7 -#define wxSTC_NNCRONTAB_STRING 8 -#define wxSTC_NNCRONTAB_ENVIRONMENT 9 -#define wxSTC_NNCRONTAB_IDENTIFIER 10 - -/// Lexical states for SCLEX_FORTH (Forth Lexer) -#define wxSTC_FORTH_DEFAULT 0 -#define wxSTC_FORTH_COMMENT 1 -#define wxSTC_FORTH_COMMENT_ML 2 -#define wxSTC_FORTH_IDENTIFIER 3 -#define wxSTC_FORTH_CONTROL 4 -#define wxSTC_FORTH_KEYWORD 5 -#define wxSTC_FORTH_DEFWORD 6 -#define wxSTC_FORTH_PREWORD1 7 -#define wxSTC_FORTH_PREWORD2 8 -#define wxSTC_FORTH_NUMBER 9 -#define wxSTC_FORTH_STRING 10 -#define wxSTC_FORTH_LOCALE 11 - -/// Lexical states for SCLEX_MATLAB -#define wxSTC_MATLAB_DEFAULT 0 -#define wxSTC_MATLAB_COMMENT 1 -#define wxSTC_MATLAB_COMMAND 2 -#define wxSTC_MATLAB_NUMBER 3 -#define wxSTC_MATLAB_KEYWORD 4 - -/// single quoted string -#define wxSTC_MATLAB_STRING 5 -#define wxSTC_MATLAB_OPERATOR 6 -#define wxSTC_MATLAB_IDENTIFIER 7 -#define wxSTC_MATLAB_DOUBLEQUOTESTRING 8 - -/// Lexical states for SCLEX_SCRIPTOL -#define wxSTC_SCRIPTOL_DEFAULT 0 -#define wxSTC_SCRIPTOL_WHITE 1 -#define wxSTC_SCRIPTOL_COMMENTLINE 2 -#define wxSTC_SCRIPTOL_PERSISTENT 3 -#define wxSTC_SCRIPTOL_CSTYLE 4 -#define wxSTC_SCRIPTOL_COMMENTBLOCK 5 -#define wxSTC_SCRIPTOL_NUMBER 6 -#define wxSTC_SCRIPTOL_STRING 7 -#define wxSTC_SCRIPTOL_CHARACTER 8 -#define wxSTC_SCRIPTOL_STRINGEOL 9 -#define wxSTC_SCRIPTOL_KEYWORD 10 -#define wxSTC_SCRIPTOL_OPERATOR 11 -#define wxSTC_SCRIPTOL_IDENTIFIER 12 -#define wxSTC_SCRIPTOL_TRIPLE 13 -#define wxSTC_SCRIPTOL_CLASSNAME 14 -#define wxSTC_SCRIPTOL_PREPROCESSOR 15 - -/// Lexical states for SCLEX_ASM, SCLEX_AS -#define wxSTC_ASM_DEFAULT 0 -#define wxSTC_ASM_COMMENT 1 -#define wxSTC_ASM_NUMBER 2 -#define wxSTC_ASM_STRING 3 -#define wxSTC_ASM_OPERATOR 4 -#define wxSTC_ASM_IDENTIFIER 5 -#define wxSTC_ASM_CPUINSTRUCTION 6 -#define wxSTC_ASM_MATHINSTRUCTION 7 -#define wxSTC_ASM_REGISTER 8 -#define wxSTC_ASM_DIRECTIVE 9 -#define wxSTC_ASM_DIRECTIVEOPERAND 10 -#define wxSTC_ASM_COMMENTBLOCK 11 -#define wxSTC_ASM_CHARACTER 12 -#define wxSTC_ASM_STRINGEOL 13 -#define wxSTC_ASM_EXTINSTRUCTION 14 -#define wxSTC_ASM_COMMENTDIRECTIVE 15 - -/// Lexical states for SCLEX_FORTRAN -#define wxSTC_F_DEFAULT 0 -#define wxSTC_F_COMMENT 1 -#define wxSTC_F_NUMBER 2 -#define wxSTC_F_STRING1 3 -#define wxSTC_F_STRING2 4 -#define wxSTC_F_STRINGEOL 5 -#define wxSTC_F_OPERATOR 6 -#define wxSTC_F_IDENTIFIER 7 -#define wxSTC_F_WORD 8 -#define wxSTC_F_WORD2 9 -#define wxSTC_F_WORD3 10 -#define wxSTC_F_PREPROCESSOR 11 -#define wxSTC_F_OPERATOR2 12 -#define wxSTC_F_LABEL 13 -#define wxSTC_F_CONTINUATION 14 - -/// Lexical states for SCLEX_CSS -#define wxSTC_CSS_DEFAULT 0 -#define wxSTC_CSS_TAG 1 -#define wxSTC_CSS_CLASS 2 -#define wxSTC_CSS_PSEUDOCLASS 3 -#define wxSTC_CSS_UNKNOWN_PSEUDOCLASS 4 -#define wxSTC_CSS_OPERATOR 5 -#define wxSTC_CSS_IDENTIFIER 6 -#define wxSTC_CSS_UNKNOWN_IDENTIFIER 7 -#define wxSTC_CSS_VALUE 8 -#define wxSTC_CSS_COMMENT 9 -#define wxSTC_CSS_ID 10 -#define wxSTC_CSS_IMPORTANT 11 -#define wxSTC_CSS_DIRECTIVE 12 -#define wxSTC_CSS_DOUBLESTRING 13 -#define wxSTC_CSS_SINGLESTRING 14 -#define wxSTC_CSS_IDENTIFIER2 15 -#define wxSTC_CSS_ATTRIBUTE 16 -#define wxSTC_CSS_IDENTIFIER3 17 -#define wxSTC_CSS_PSEUDOELEMENT 18 -#define wxSTC_CSS_EXTENDED_IDENTIFIER 19 -#define wxSTC_CSS_EXTENDED_PSEUDOCLASS 20 -#define wxSTC_CSS_EXTENDED_PSEUDOELEMENT 21 -#define wxSTC_CSS_MEDIA 22 -#define wxSTC_CSS_VARIABLE 23 - -/// Lexical states for SCLEX_POV -#define wxSTC_POV_DEFAULT 0 -#define wxSTC_POV_COMMENT 1 -#define wxSTC_POV_COMMENTLINE 2 -#define wxSTC_POV_NUMBER 3 -#define wxSTC_POV_OPERATOR 4 -#define wxSTC_POV_IDENTIFIER 5 -#define wxSTC_POV_STRING 6 -#define wxSTC_POV_STRINGEOL 7 -#define wxSTC_POV_DIRECTIVE 8 -#define wxSTC_POV_BADDIRECTIVE 9 -#define wxSTC_POV_WORD2 10 -#define wxSTC_POV_WORD3 11 -#define wxSTC_POV_WORD4 12 -#define wxSTC_POV_WORD5 13 -#define wxSTC_POV_WORD6 14 -#define wxSTC_POV_WORD7 15 -#define wxSTC_POV_WORD8 16 - -/// Lexical states for SCLEX_LOUT -#define wxSTC_LOUT_DEFAULT 0 -#define wxSTC_LOUT_COMMENT 1 -#define wxSTC_LOUT_NUMBER 2 -#define wxSTC_LOUT_WORD 3 -#define wxSTC_LOUT_WORD2 4 -#define wxSTC_LOUT_WORD3 5 -#define wxSTC_LOUT_WORD4 6 -#define wxSTC_LOUT_STRING 7 -#define wxSTC_LOUT_OPERATOR 8 -#define wxSTC_LOUT_IDENTIFIER 9 -#define wxSTC_LOUT_STRINGEOL 10 - -/// Lexical states for SCLEX_ESCRIPT -#define wxSTC_ESCRIPT_DEFAULT 0 -#define wxSTC_ESCRIPT_COMMENT 1 -#define wxSTC_ESCRIPT_COMMENTLINE 2 -#define wxSTC_ESCRIPT_COMMENTDOC 3 -#define wxSTC_ESCRIPT_NUMBER 4 -#define wxSTC_ESCRIPT_WORD 5 -#define wxSTC_ESCRIPT_STRING 6 -#define wxSTC_ESCRIPT_OPERATOR 7 -#define wxSTC_ESCRIPT_IDENTIFIER 8 -#define wxSTC_ESCRIPT_BRACE 9 -#define wxSTC_ESCRIPT_WORD2 10 -#define wxSTC_ESCRIPT_WORD3 11 - -/// Lexical states for SCLEX_PS -#define wxSTC_PS_DEFAULT 0 -#define wxSTC_PS_COMMENT 1 -#define wxSTC_PS_DSC_COMMENT 2 -#define wxSTC_PS_DSC_VALUE 3 -#define wxSTC_PS_NUMBER 4 -#define wxSTC_PS_NAME 5 -#define wxSTC_PS_KEYWORD 6 -#define wxSTC_PS_LITERAL 7 -#define wxSTC_PS_IMMEVAL 8 -#define wxSTC_PS_PAREN_ARRAY 9 -#define wxSTC_PS_PAREN_DICT 10 -#define wxSTC_PS_PAREN_PROC 11 -#define wxSTC_PS_TEXT 12 -#define wxSTC_PS_HEXSTRING 13 -#define wxSTC_PS_BASE85STRING 14 -#define wxSTC_PS_BADSTRINGCHAR 15 - -/// Lexical states for SCLEX_NSIS -#define wxSTC_NSIS_DEFAULT 0 -#define wxSTC_NSIS_COMMENT 1 -#define wxSTC_NSIS_STRINGDQ 2 -#define wxSTC_NSIS_STRINGLQ 3 -#define wxSTC_NSIS_STRINGRQ 4 -#define wxSTC_NSIS_FUNCTION 5 -#define wxSTC_NSIS_VARIABLE 6 -#define wxSTC_NSIS_LABEL 7 -#define wxSTC_NSIS_USERDEFINED 8 -#define wxSTC_NSIS_SECTIONDEF 9 -#define wxSTC_NSIS_SUBSECTIONDEF 10 -#define wxSTC_NSIS_IFDEFINEDEF 11 -#define wxSTC_NSIS_MACRODEF 12 -#define wxSTC_NSIS_STRINGVAR 13 -#define wxSTC_NSIS_NUMBER 14 -#define wxSTC_NSIS_SECTIONGROUP 15 -#define wxSTC_NSIS_PAGEEX 16 -#define wxSTC_NSIS_FUNCTIONDEF 17 -#define wxSTC_NSIS_COMMENTBOX 18 - -/// Lexical states for SCLEX_MMIXAL -#define wxSTC_MMIXAL_LEADWS 0 -#define wxSTC_MMIXAL_COMMENT 1 -#define wxSTC_MMIXAL_LABEL 2 -#define wxSTC_MMIXAL_OPCODE 3 -#define wxSTC_MMIXAL_OPCODE_PRE 4 -#define wxSTC_MMIXAL_OPCODE_VALID 5 -#define wxSTC_MMIXAL_OPCODE_UNKNOWN 6 -#define wxSTC_MMIXAL_OPCODE_POST 7 -#define wxSTC_MMIXAL_OPERANDS 8 -#define wxSTC_MMIXAL_NUMBER 9 -#define wxSTC_MMIXAL_REF 10 -#define wxSTC_MMIXAL_CHAR 11 -#define wxSTC_MMIXAL_STRING 12 -#define wxSTC_MMIXAL_REGISTER 13 -#define wxSTC_MMIXAL_HEX 14 -#define wxSTC_MMIXAL_OPERATOR 15 -#define wxSTC_MMIXAL_SYMBOL 16 -#define wxSTC_MMIXAL_INCLUDE 17 - -/// Lexical states for SCLEX_CLW -#define wxSTC_CLW_DEFAULT 0 -#define wxSTC_CLW_LABEL 1 -#define wxSTC_CLW_COMMENT 2 -#define wxSTC_CLW_STRING 3 -#define wxSTC_CLW_USER_IDENTIFIER 4 -#define wxSTC_CLW_INTEGER_CONSTANT 5 -#define wxSTC_CLW_REAL_CONSTANT 6 -#define wxSTC_CLW_PICTURE_STRING 7 -#define wxSTC_CLW_KEYWORD 8 -#define wxSTC_CLW_COMPILER_DIRECTIVE 9 -#define wxSTC_CLW_RUNTIME_EXPRESSIONS 10 -#define wxSTC_CLW_BUILTIN_PROCEDURES_FUNCTION 11 -#define wxSTC_CLW_STRUCTURE_DATA_TYPE 12 -#define wxSTC_CLW_ATTRIBUTE 13 -#define wxSTC_CLW_STANDARD_EQUATE 14 -#define wxSTC_CLW_ERROR 15 -#define wxSTC_CLW_DEPRECATED 16 - -/// Lexical states for SCLEX_LOT -#define wxSTC_LOT_DEFAULT 0 -#define wxSTC_LOT_HEADER 1 -#define wxSTC_LOT_BREAK 2 -#define wxSTC_LOT_SET 3 -#define wxSTC_LOT_PASS 4 -#define wxSTC_LOT_FAIL 5 -#define wxSTC_LOT_ABORT 6 - -/// Lexical states for SCLEX_YAML -#define wxSTC_YAML_DEFAULT 0 -#define wxSTC_YAML_COMMENT 1 -#define wxSTC_YAML_IDENTIFIER 2 -#define wxSTC_YAML_KEYWORD 3 -#define wxSTC_YAML_NUMBER 4 -#define wxSTC_YAML_REFERENCE 5 -#define wxSTC_YAML_DOCUMENT 6 -#define wxSTC_YAML_TEXT 7 -#define wxSTC_YAML_ERROR 8 -#define wxSTC_YAML_OPERATOR 9 - -/// Lexical states for SCLEX_TEX -#define wxSTC_TEX_DEFAULT 0 -#define wxSTC_TEX_SPECIAL 1 -#define wxSTC_TEX_GROUP 2 -#define wxSTC_TEX_SYMBOL 3 -#define wxSTC_TEX_COMMAND 4 -#define wxSTC_TEX_TEXT 5 -#define wxSTC_METAPOST_DEFAULT 0 -#define wxSTC_METAPOST_SPECIAL 1 -#define wxSTC_METAPOST_GROUP 2 -#define wxSTC_METAPOST_SYMBOL 3 -#define wxSTC_METAPOST_COMMAND 4 -#define wxSTC_METAPOST_TEXT 5 -#define wxSTC_METAPOST_EXTRA 6 - -/// Lexical states for SCLEX_ERLANG -#define wxSTC_ERLANG_DEFAULT 0 -#define wxSTC_ERLANG_COMMENT 1 -#define wxSTC_ERLANG_VARIABLE 2 -#define wxSTC_ERLANG_NUMBER 3 -#define wxSTC_ERLANG_KEYWORD 4 -#define wxSTC_ERLANG_STRING 5 -#define wxSTC_ERLANG_OPERATOR 6 -#define wxSTC_ERLANG_ATOM 7 -#define wxSTC_ERLANG_FUNCTION_NAME 8 -#define wxSTC_ERLANG_CHARACTER 9 -#define wxSTC_ERLANG_MACRO 10 -#define wxSTC_ERLANG_RECORD 11 -#define wxSTC_ERLANG_PREPROC 12 -#define wxSTC_ERLANG_NODE_NAME 13 -#define wxSTC_ERLANG_COMMENT_FUNCTION 14 -#define wxSTC_ERLANG_COMMENT_MODULE 15 -#define wxSTC_ERLANG_COMMENT_DOC 16 -#define wxSTC_ERLANG_COMMENT_DOC_MACRO 17 -#define wxSTC_ERLANG_ATOM_QUOTED 18 -#define wxSTC_ERLANG_MACRO_QUOTED 19 -#define wxSTC_ERLANG_RECORD_QUOTED 20 -#define wxSTC_ERLANG_NODE_NAME_QUOTED 21 -#define wxSTC_ERLANG_BIFS 22 -#define wxSTC_ERLANG_MODULES 23 -#define wxSTC_ERLANG_MODULES_ATT 24 -#define wxSTC_ERLANG_UNKNOWN 31 - -/// Lexical states for SCLEX_OCTAVE are identical to MatLab -/// Lexical states for SCLEX_MSSQL -#define wxSTC_MSSQL_DEFAULT 0 -#define wxSTC_MSSQL_COMMENT 1 -#define wxSTC_MSSQL_LINE_COMMENT 2 -#define wxSTC_MSSQL_NUMBER 3 -#define wxSTC_MSSQL_STRING 4 -#define wxSTC_MSSQL_OPERATOR 5 -#define wxSTC_MSSQL_IDENTIFIER 6 -#define wxSTC_MSSQL_VARIABLE 7 -#define wxSTC_MSSQL_COLUMN_NAME 8 -#define wxSTC_MSSQL_STATEMENT 9 -#define wxSTC_MSSQL_DATATYPE 10 -#define wxSTC_MSSQL_SYSTABLE 11 -#define wxSTC_MSSQL_GLOBAL_VARIABLE 12 -#define wxSTC_MSSQL_FUNCTION 13 -#define wxSTC_MSSQL_STORED_PROCEDURE 14 -#define wxSTC_MSSQL_DEFAULT_PREF_DATATYPE 15 -#define wxSTC_MSSQL_COLUMN_NAME_2 16 - -/// Lexical states for SCLEX_VERILOG -#define wxSTC_V_DEFAULT 0 -#define wxSTC_V_COMMENT 1 -#define wxSTC_V_COMMENTLINE 2 -#define wxSTC_V_COMMENTLINEBANG 3 -#define wxSTC_V_NUMBER 4 -#define wxSTC_V_WORD 5 -#define wxSTC_V_STRING 6 -#define wxSTC_V_WORD2 7 -#define wxSTC_V_WORD3 8 -#define wxSTC_V_PREPROCESSOR 9 -#define wxSTC_V_OPERATOR 10 -#define wxSTC_V_IDENTIFIER 11 -#define wxSTC_V_STRINGEOL 12 -#define wxSTC_V_USER 19 -#define wxSTC_V_COMMENT_WORD 20 -#define wxSTC_V_INPUT 21 -#define wxSTC_V_OUTPUT 22 -#define wxSTC_V_INOUT 23 -#define wxSTC_V_PORT_CONNECT 24 - -/// Lexical states for SCLEX_KIX -#define wxSTC_KIX_DEFAULT 0 -#define wxSTC_KIX_COMMENT 1 -#define wxSTC_KIX_STRING1 2 -#define wxSTC_KIX_STRING2 3 -#define wxSTC_KIX_NUMBER 4 -#define wxSTC_KIX_VAR 5 -#define wxSTC_KIX_MACRO 6 -#define wxSTC_KIX_KEYWORD 7 -#define wxSTC_KIX_FUNCTIONS 8 -#define wxSTC_KIX_OPERATOR 9 -#define wxSTC_KIX_COMMENTSTREAM 10 -#define wxSTC_KIX_IDENTIFIER 31 - -/// Lexical states for SCLEX_GUI4CLI -#define wxSTC_GC_DEFAULT 0 -#define wxSTC_GC_COMMENTLINE 1 -#define wxSTC_GC_COMMENTBLOCK 2 -#define wxSTC_GC_GLOBAL 3 -#define wxSTC_GC_EVENT 4 -#define wxSTC_GC_ATTRIBUTE 5 -#define wxSTC_GC_CONTROL 6 -#define wxSTC_GC_COMMAND 7 -#define wxSTC_GC_STRING 8 -#define wxSTC_GC_OPERATOR 9 - -/// Lexical states for SCLEX_SPECMAN -#define wxSTC_SN_DEFAULT 0 -#define wxSTC_SN_CODE 1 -#define wxSTC_SN_COMMENTLINE 2 -#define wxSTC_SN_COMMENTLINEBANG 3 -#define wxSTC_SN_NUMBER 4 -#define wxSTC_SN_WORD 5 -#define wxSTC_SN_STRING 6 -#define wxSTC_SN_WORD2 7 -#define wxSTC_SN_WORD3 8 -#define wxSTC_SN_PREPROCESSOR 9 -#define wxSTC_SN_OPERATOR 10 -#define wxSTC_SN_IDENTIFIER 11 -#define wxSTC_SN_STRINGEOL 12 -#define wxSTC_SN_REGEXTAG 13 -#define wxSTC_SN_SIGNAL 14 -#define wxSTC_SN_USER 19 - -/// Lexical states for SCLEX_AU3 -#define wxSTC_AU3_DEFAULT 0 -#define wxSTC_AU3_COMMENT 1 -#define wxSTC_AU3_COMMENTBLOCK 2 -#define wxSTC_AU3_NUMBER 3 -#define wxSTC_AU3_FUNCTION 4 -#define wxSTC_AU3_KEYWORD 5 -#define wxSTC_AU3_MACRO 6 -#define wxSTC_AU3_STRING 7 -#define wxSTC_AU3_OPERATOR 8 -#define wxSTC_AU3_VARIABLE 9 -#define wxSTC_AU3_SENT 10 -#define wxSTC_AU3_PREPROCESSOR 11 -#define wxSTC_AU3_SPECIAL 12 -#define wxSTC_AU3_EXPAND 13 -#define wxSTC_AU3_COMOBJ 14 -#define wxSTC_AU3_UDF 15 - -/// Lexical states for SCLEX_APDL -#define wxSTC_APDL_DEFAULT 0 -#define wxSTC_APDL_COMMENT 1 -#define wxSTC_APDL_COMMENTBLOCK 2 -#define wxSTC_APDL_NUMBER 3 -#define wxSTC_APDL_STRING 4 -#define wxSTC_APDL_OPERATOR 5 -#define wxSTC_APDL_WORD 6 -#define wxSTC_APDL_PROCESSOR 7 -#define wxSTC_APDL_COMMAND 8 -#define wxSTC_APDL_SLASHCOMMAND 9 -#define wxSTC_APDL_STARCOMMAND 10 -#define wxSTC_APDL_ARGUMENT 11 -#define wxSTC_APDL_FUNCTION 12 - -/// Lexical states for SCLEX_BASH -#define wxSTC_SH_DEFAULT 0 -#define wxSTC_SH_ERROR 1 -#define wxSTC_SH_COMMENTLINE 2 -#define wxSTC_SH_NUMBER 3 -#define wxSTC_SH_WORD 4 -#define wxSTC_SH_STRING 5 -#define wxSTC_SH_CHARACTER 6 -#define wxSTC_SH_OPERATOR 7 -#define wxSTC_SH_IDENTIFIER 8 -#define wxSTC_SH_SCALAR 9 -#define wxSTC_SH_PARAM 10 -#define wxSTC_SH_BACKTICKS 11 -#define wxSTC_SH_HERE_DELIM 12 -#define wxSTC_SH_HERE_Q 13 - -/// Lexical states for SCLEX_ASN1 -#define wxSTC_ASN1_DEFAULT 0 -#define wxSTC_ASN1_COMMENT 1 -#define wxSTC_ASN1_IDENTIFIER 2 -#define wxSTC_ASN1_STRING 3 -#define wxSTC_ASN1_OID 4 -#define wxSTC_ASN1_SCALAR 5 -#define wxSTC_ASN1_KEYWORD 6 -#define wxSTC_ASN1_ATTRIBUTE 7 -#define wxSTC_ASN1_DESCRIPTOR 8 -#define wxSTC_ASN1_TYPE 9 -#define wxSTC_ASN1_OPERATOR 10 - -/// Lexical states for SCLEX_VHDL -#define wxSTC_VHDL_DEFAULT 0 -#define wxSTC_VHDL_COMMENT 1 -#define wxSTC_VHDL_COMMENTLINEBANG 2 -#define wxSTC_VHDL_NUMBER 3 -#define wxSTC_VHDL_STRING 4 -#define wxSTC_VHDL_OPERATOR 5 -#define wxSTC_VHDL_IDENTIFIER 6 -#define wxSTC_VHDL_STRINGEOL 7 -#define wxSTC_VHDL_KEYWORD 8 -#define wxSTC_VHDL_STDOPERATOR 9 -#define wxSTC_VHDL_ATTRIBUTE 10 -#define wxSTC_VHDL_STDFUNCTION 11 -#define wxSTC_VHDL_STDPACKAGE 12 -#define wxSTC_VHDL_STDTYPE 13 -#define wxSTC_VHDL_USERWORD 14 -#define wxSTC_VHDL_BLOCK_COMMENT 15 - -/// Lexical states for SCLEX_CAML -#define wxSTC_CAML_DEFAULT 0 -#define wxSTC_CAML_IDENTIFIER 1 -#define wxSTC_CAML_TAGNAME 2 -#define wxSTC_CAML_KEYWORD 3 -#define wxSTC_CAML_KEYWORD2 4 -#define wxSTC_CAML_KEYWORD3 5 -#define wxSTC_CAML_LINENUM 6 -#define wxSTC_CAML_OPERATOR 7 -#define wxSTC_CAML_NUMBER 8 -#define wxSTC_CAML_CHAR 9 -#define wxSTC_CAML_WHITE 10 -#define wxSTC_CAML_STRING 11 -#define wxSTC_CAML_COMMENT 12 -#define wxSTC_CAML_COMMENT1 13 -#define wxSTC_CAML_COMMENT2 14 -#define wxSTC_CAML_COMMENT3 15 - -/// Lexical states for SCLEX_HASKELL -#define wxSTC_HA_DEFAULT 0 -#define wxSTC_HA_IDENTIFIER 1 -#define wxSTC_HA_KEYWORD 2 -#define wxSTC_HA_NUMBER 3 -#define wxSTC_HA_STRING 4 -#define wxSTC_HA_CHARACTER 5 -#define wxSTC_HA_CLASS 6 -#define wxSTC_HA_MODULE 7 -#define wxSTC_HA_CAPITAL 8 -#define wxSTC_HA_DATA 9 -#define wxSTC_HA_IMPORT 10 -#define wxSTC_HA_OPERATOR 11 -#define wxSTC_HA_INSTANCE 12 -#define wxSTC_HA_COMMENTLINE 13 -#define wxSTC_HA_COMMENTBLOCK 14 -#define wxSTC_HA_COMMENTBLOCK2 15 -#define wxSTC_HA_COMMENTBLOCK3 16 -#define wxSTC_HA_PRAGMA 17 -#define wxSTC_HA_PREPROCESSOR 18 -#define wxSTC_HA_STRINGEOL 19 -#define wxSTC_HA_RESERVED_OPERATOR 20 -#define wxSTC_HA_LITERATE_COMMENT 21 -#define wxSTC_HA_LITERATE_CODEDELIM 22 - -/// Lexical states of SCLEX_TADS3 -#define wxSTC_T3_DEFAULT 0 -#define wxSTC_T3_X_DEFAULT 1 -#define wxSTC_T3_PREPROCESSOR 2 -#define wxSTC_T3_BLOCK_COMMENT 3 -#define wxSTC_T3_LINE_COMMENT 4 -#define wxSTC_T3_OPERATOR 5 -#define wxSTC_T3_KEYWORD 6 -#define wxSTC_T3_NUMBER 7 -#define wxSTC_T3_IDENTIFIER 8 -#define wxSTC_T3_S_STRING 9 -#define wxSTC_T3_D_STRING 10 -#define wxSTC_T3_X_STRING 11 -#define wxSTC_T3_LIB_DIRECTIVE 12 -#define wxSTC_T3_MSG_PARAM 13 -#define wxSTC_T3_HTML_TAG 14 -#define wxSTC_T3_HTML_DEFAULT 15 -#define wxSTC_T3_HTML_STRING 16 -#define wxSTC_T3_USER1 17 -#define wxSTC_T3_USER2 18 -#define wxSTC_T3_USER3 19 -#define wxSTC_T3_BRACE 20 - -/// Lexical states for SCLEX_REBOL -#define wxSTC_REBOL_DEFAULT 0 -#define wxSTC_REBOL_COMMENTLINE 1 -#define wxSTC_REBOL_COMMENTBLOCK 2 -#define wxSTC_REBOL_PREFACE 3 -#define wxSTC_REBOL_OPERATOR 4 -#define wxSTC_REBOL_CHARACTER 5 -#define wxSTC_REBOL_QUOTEDSTRING 6 -#define wxSTC_REBOL_BRACEDSTRING 7 -#define wxSTC_REBOL_NUMBER 8 -#define wxSTC_REBOL_PAIR 9 -#define wxSTC_REBOL_TUPLE 10 -#define wxSTC_REBOL_BINARY 11 -#define wxSTC_REBOL_MONEY 12 -#define wxSTC_REBOL_ISSUE 13 -#define wxSTC_REBOL_TAG 14 -#define wxSTC_REBOL_FILE 15 -#define wxSTC_REBOL_EMAIL 16 -#define wxSTC_REBOL_URL 17 -#define wxSTC_REBOL_DATE 18 -#define wxSTC_REBOL_TIME 19 -#define wxSTC_REBOL_IDENTIFIER 20 -#define wxSTC_REBOL_WORD 21 -#define wxSTC_REBOL_WORD2 22 -#define wxSTC_REBOL_WORD3 23 -#define wxSTC_REBOL_WORD4 24 -#define wxSTC_REBOL_WORD5 25 -#define wxSTC_REBOL_WORD6 26 -#define wxSTC_REBOL_WORD7 27 -#define wxSTC_REBOL_WORD8 28 - -/// Lexical states for SCLEX_SQL -#define wxSTC_SQL_DEFAULT 0 -#define wxSTC_SQL_COMMENT 1 -#define wxSTC_SQL_COMMENTLINE 2 -#define wxSTC_SQL_COMMENTDOC 3 -#define wxSTC_SQL_NUMBER 4 -#define wxSTC_SQL_WORD 5 -#define wxSTC_SQL_STRING 6 -#define wxSTC_SQL_CHARACTER 7 -#define wxSTC_SQL_SQLPLUS 8 -#define wxSTC_SQL_SQLPLUS_PROMPT 9 -#define wxSTC_SQL_OPERATOR 10 -#define wxSTC_SQL_IDENTIFIER 11 -#define wxSTC_SQL_SQLPLUS_COMMENT 13 -#define wxSTC_SQL_COMMENTLINEDOC 15 -#define wxSTC_SQL_WORD2 16 -#define wxSTC_SQL_COMMENTDOCKEYWORD 17 -#define wxSTC_SQL_COMMENTDOCKEYWORDERROR 18 -#define wxSTC_SQL_USER1 19 -#define wxSTC_SQL_USER2 20 -#define wxSTC_SQL_USER3 21 -#define wxSTC_SQL_USER4 22 -#define wxSTC_SQL_QUOTEDIDENTIFIER 23 -#define wxSTC_SQL_QOPERATOR 24 - -/// Lexical states for SCLEX_SMALLTALK -#define wxSTC_ST_DEFAULT 0 -#define wxSTC_ST_STRING 1 -#define wxSTC_ST_NUMBER 2 -#define wxSTC_ST_COMMENT 3 -#define wxSTC_ST_SYMBOL 4 -#define wxSTC_ST_BINARY 5 -#define wxSTC_ST_BOOL 6 -#define wxSTC_ST_SELF 7 -#define wxSTC_ST_SUPER 8 -#define wxSTC_ST_NIL 9 -#define wxSTC_ST_GLOBAL 10 -#define wxSTC_ST_RETURN 11 -#define wxSTC_ST_SPECIAL 12 -#define wxSTC_ST_KWSEND 13 -#define wxSTC_ST_ASSIGN 14 -#define wxSTC_ST_CHARACTER 15 -#define wxSTC_ST_SPEC_SEL 16 - -/// Lexical states for SCLEX_FLAGSHIP (clipper) -#define wxSTC_FS_DEFAULT 0 -#define wxSTC_FS_COMMENT 1 -#define wxSTC_FS_COMMENTLINE 2 -#define wxSTC_FS_COMMENTDOC 3 -#define wxSTC_FS_COMMENTLINEDOC 4 -#define wxSTC_FS_COMMENTDOCKEYWORD 5 -#define wxSTC_FS_COMMENTDOCKEYWORDERROR 6 -#define wxSTC_FS_KEYWORD 7 -#define wxSTC_FS_KEYWORD2 8 -#define wxSTC_FS_KEYWORD3 9 -#define wxSTC_FS_KEYWORD4 10 -#define wxSTC_FS_NUMBER 11 -#define wxSTC_FS_STRING 12 -#define wxSTC_FS_PREPROCESSOR 13 -#define wxSTC_FS_OPERATOR 14 -#define wxSTC_FS_IDENTIFIER 15 -#define wxSTC_FS_DATE 16 -#define wxSTC_FS_STRINGEOL 17 -#define wxSTC_FS_CONSTANT 18 -#define wxSTC_FS_WORDOPERATOR 19 -#define wxSTC_FS_DISABLEDCODE 20 -#define wxSTC_FS_DEFAULT_C 21 -#define wxSTC_FS_COMMENTDOC_C 22 -#define wxSTC_FS_COMMENTLINEDOC_C 23 -#define wxSTC_FS_KEYWORD_C 24 -#define wxSTC_FS_KEYWORD2_C 25 -#define wxSTC_FS_NUMBER_C 26 -#define wxSTC_FS_STRING_C 27 -#define wxSTC_FS_PREPROCESSOR_C 28 -#define wxSTC_FS_OPERATOR_C 29 -#define wxSTC_FS_IDENTIFIER_C 30 -#define wxSTC_FS_STRINGEOL_C 31 - -/// Lexical states for SCLEX_CSOUND -#define wxSTC_CSOUND_DEFAULT 0 -#define wxSTC_CSOUND_COMMENT 1 -#define wxSTC_CSOUND_NUMBER 2 -#define wxSTC_CSOUND_OPERATOR 3 -#define wxSTC_CSOUND_INSTR 4 -#define wxSTC_CSOUND_IDENTIFIER 5 -#define wxSTC_CSOUND_OPCODE 6 -#define wxSTC_CSOUND_HEADERSTMT 7 -#define wxSTC_CSOUND_USERKEYWORD 8 -#define wxSTC_CSOUND_COMMENTBLOCK 9 -#define wxSTC_CSOUND_PARAM 10 -#define wxSTC_CSOUND_ARATE_VAR 11 -#define wxSTC_CSOUND_KRATE_VAR 12 -#define wxSTC_CSOUND_IRATE_VAR 13 -#define wxSTC_CSOUND_GLOBAL_VAR 14 -#define wxSTC_CSOUND_STRINGEOL 15 - -/// Lexical states for SCLEX_INNOSETUP -#define wxSTC_INNO_DEFAULT 0 -#define wxSTC_INNO_COMMENT 1 -#define wxSTC_INNO_KEYWORD 2 -#define wxSTC_INNO_PARAMETER 3 -#define wxSTC_INNO_SECTION 4 -#define wxSTC_INNO_PREPROC 5 -#define wxSTC_INNO_INLINE_EXPANSION 6 -#define wxSTC_INNO_COMMENT_PASCAL 7 -#define wxSTC_INNO_KEYWORD_PASCAL 8 -#define wxSTC_INNO_KEYWORD_USER 9 -#define wxSTC_INNO_STRING_DOUBLE 10 -#define wxSTC_INNO_STRING_SINGLE 11 -#define wxSTC_INNO_IDENTIFIER 12 - -/// Lexical states for SCLEX_OPAL -#define wxSTC_OPAL_SPACE 0 -#define wxSTC_OPAL_COMMENT_BLOCK 1 -#define wxSTC_OPAL_COMMENT_LINE 2 -#define wxSTC_OPAL_INTEGER 3 -#define wxSTC_OPAL_KEYWORD 4 -#define wxSTC_OPAL_SORT 5 -#define wxSTC_OPAL_STRING 6 -#define wxSTC_OPAL_PAR 7 -#define wxSTC_OPAL_BOOL_CONST 8 -#define wxSTC_OPAL_DEFAULT 32 - -/// Lexical states for SCLEX_SPICE -#define wxSTC_SPICE_DEFAULT 0 -#define wxSTC_SPICE_IDENTIFIER 1 -#define wxSTC_SPICE_KEYWORD 2 -#define wxSTC_SPICE_KEYWORD2 3 -#define wxSTC_SPICE_KEYWORD3 4 -#define wxSTC_SPICE_NUMBER 5 -#define wxSTC_SPICE_DELIMITER 6 -#define wxSTC_SPICE_VALUE 7 -#define wxSTC_SPICE_COMMENTLINE 8 - -/// Lexical states for SCLEX_CMAKE -#define wxSTC_CMAKE_DEFAULT 0 -#define wxSTC_CMAKE_COMMENT 1 -#define wxSTC_CMAKE_STRINGDQ 2 -#define wxSTC_CMAKE_STRINGLQ 3 -#define wxSTC_CMAKE_STRINGRQ 4 -#define wxSTC_CMAKE_COMMANDS 5 -#define wxSTC_CMAKE_PARAMETERS 6 -#define wxSTC_CMAKE_VARIABLE 7 -#define wxSTC_CMAKE_USERDEFINED 8 -#define wxSTC_CMAKE_WHILEDEF 9 -#define wxSTC_CMAKE_FOREACHDEF 10 -#define wxSTC_CMAKE_IFDEFINEDEF 11 -#define wxSTC_CMAKE_MACRODEF 12 -#define wxSTC_CMAKE_STRINGVAR 13 -#define wxSTC_CMAKE_NUMBER 14 - -/// Lexical states for SCLEX_GAP -#define wxSTC_GAP_DEFAULT 0 -#define wxSTC_GAP_IDENTIFIER 1 -#define wxSTC_GAP_KEYWORD 2 -#define wxSTC_GAP_KEYWORD2 3 -#define wxSTC_GAP_KEYWORD3 4 -#define wxSTC_GAP_KEYWORD4 5 -#define wxSTC_GAP_STRING 6 -#define wxSTC_GAP_CHAR 7 -#define wxSTC_GAP_OPERATOR 8 -#define wxSTC_GAP_COMMENT 9 -#define wxSTC_GAP_NUMBER 10 -#define wxSTC_GAP_STRINGEOL 11 - -/// Lexical state for SCLEX_PLM -#define wxSTC_PLM_DEFAULT 0 -#define wxSTC_PLM_COMMENT 1 -#define wxSTC_PLM_STRING 2 -#define wxSTC_PLM_NUMBER 3 -#define wxSTC_PLM_IDENTIFIER 4 -#define wxSTC_PLM_OPERATOR 5 -#define wxSTC_PLM_CONTROL 6 -#define wxSTC_PLM_KEYWORD 7 - -/// Lexical state for SCLEX_PROGRESS -#define wxSTC_4GL_DEFAULT 0 -#define wxSTC_4GL_NUMBER 1 -#define wxSTC_4GL_WORD 2 -#define wxSTC_4GL_STRING 3 -#define wxSTC_4GL_CHARACTER 4 -#define wxSTC_4GL_PREPROCESSOR 5 -#define wxSTC_4GL_OPERATOR 6 -#define wxSTC_4GL_IDENTIFIER 7 -#define wxSTC_4GL_BLOCK 8 -#define wxSTC_4GL_END 9 -#define wxSTC_4GL_COMMENT1 10 -#define wxSTC_4GL_COMMENT2 11 -#define wxSTC_4GL_COMMENT3 12 -#define wxSTC_4GL_COMMENT4 13 -#define wxSTC_4GL_COMMENT5 14 -#define wxSTC_4GL_COMMENT6 15 -#define wxSTC_4GL_DEFAULT_ 16 -#define wxSTC_4GL_NUMBER_ 17 -#define wxSTC_4GL_WORD_ 18 -#define wxSTC_4GL_STRING_ 19 -#define wxSTC_4GL_CHARACTER_ 20 -#define wxSTC_4GL_PREPROCESSOR_ 21 -#define wxSTC_4GL_OPERATOR_ 22 -#define wxSTC_4GL_IDENTIFIER_ 23 -#define wxSTC_4GL_BLOCK_ 24 -#define wxSTC_4GL_END_ 25 -#define wxSTC_4GL_COMMENT1_ 26 -#define wxSTC_4GL_COMMENT2_ 27 -#define wxSTC_4GL_COMMENT3_ 28 -#define wxSTC_4GL_COMMENT4_ 29 -#define wxSTC_4GL_COMMENT5_ 30 -#define wxSTC_4GL_COMMENT6_ 31 - -/// Lexical states for SCLEX_ABAQUS -#define wxSTC_ABAQUS_DEFAULT 0 -#define wxSTC_ABAQUS_COMMENT 1 -#define wxSTC_ABAQUS_COMMENTBLOCK 2 -#define wxSTC_ABAQUS_NUMBER 3 -#define wxSTC_ABAQUS_STRING 4 -#define wxSTC_ABAQUS_OPERATOR 5 -#define wxSTC_ABAQUS_WORD 6 -#define wxSTC_ABAQUS_PROCESSOR 7 -#define wxSTC_ABAQUS_COMMAND 8 -#define wxSTC_ABAQUS_SLASHCOMMAND 9 -#define wxSTC_ABAQUS_STARCOMMAND 10 -#define wxSTC_ABAQUS_ARGUMENT 11 -#define wxSTC_ABAQUS_FUNCTION 12 - -/// Lexical states for SCLEX_ASYMPTOTE -#define wxSTC_ASY_DEFAULT 0 -#define wxSTC_ASY_COMMENT 1 -#define wxSTC_ASY_COMMENTLINE 2 -#define wxSTC_ASY_NUMBER 3 -#define wxSTC_ASY_WORD 4 -#define wxSTC_ASY_STRING 5 -#define wxSTC_ASY_CHARACTER 6 -#define wxSTC_ASY_OPERATOR 7 -#define wxSTC_ASY_IDENTIFIER 8 -#define wxSTC_ASY_STRINGEOL 9 -#define wxSTC_ASY_COMMENTLINEDOC 10 -#define wxSTC_ASY_WORD2 11 - -/// Lexical states for SCLEX_R -#define wxSTC_R_DEFAULT 0 -#define wxSTC_R_COMMENT 1 -#define wxSTC_R_KWORD 2 -#define wxSTC_R_BASEKWORD 3 -#define wxSTC_R_OTHERKWORD 4 -#define wxSTC_R_NUMBER 5 -#define wxSTC_R_STRING 6 -#define wxSTC_R_STRING2 7 -#define wxSTC_R_OPERATOR 8 -#define wxSTC_R_IDENTIFIER 9 -#define wxSTC_R_INFIX 10 -#define wxSTC_R_INFIXEOL 11 - -/// Lexical state for SCLEX_MAGIK -#define wxSTC_MAGIK_DEFAULT 0 -#define wxSTC_MAGIK_COMMENT 1 -#define wxSTC_MAGIK_HYPER_COMMENT 16 -#define wxSTC_MAGIK_STRING 2 -#define wxSTC_MAGIK_CHARACTER 3 -#define wxSTC_MAGIK_NUMBER 4 -#define wxSTC_MAGIK_IDENTIFIER 5 -#define wxSTC_MAGIK_OPERATOR 6 -#define wxSTC_MAGIK_FLOW 7 -#define wxSTC_MAGIK_CONTAINER 8 -#define wxSTC_MAGIK_BRACKET_BLOCK 9 -#define wxSTC_MAGIK_BRACE_BLOCK 10 -#define wxSTC_MAGIK_SQBRACKET_BLOCK 11 -#define wxSTC_MAGIK_UNKNOWN_KEYWORD 12 -#define wxSTC_MAGIK_KEYWORD 13 -#define wxSTC_MAGIK_PRAGMA 14 -#define wxSTC_MAGIK_SYMBOL 15 - -/// Lexical state for SCLEX_POWERSHELL -#define wxSTC_POWERSHELL_DEFAULT 0 -#define wxSTC_POWERSHELL_COMMENT 1 -#define wxSTC_POWERSHELL_STRING 2 -#define wxSTC_POWERSHELL_CHARACTER 3 -#define wxSTC_POWERSHELL_NUMBER 4 -#define wxSTC_POWERSHELL_VARIABLE 5 -#define wxSTC_POWERSHELL_OPERATOR 6 -#define wxSTC_POWERSHELL_IDENTIFIER 7 -#define wxSTC_POWERSHELL_KEYWORD 8 -#define wxSTC_POWERSHELL_CMDLET 9 -#define wxSTC_POWERSHELL_ALIAS 10 -#define wxSTC_POWERSHELL_FUNCTION 11 -#define wxSTC_POWERSHELL_USER1 12 -#define wxSTC_POWERSHELL_COMMENTSTREAM 13 -#define wxSTC_POWERSHELL_HERE_STRING 14 -#define wxSTC_POWERSHELL_HERE_CHARACTER 15 -#define wxSTC_POWERSHELL_COMMENTDOCKEYWORD 16 - -/// Lexical state for SCLEX_MYSQL -#define wxSTC_MYSQL_DEFAULT 0 -#define wxSTC_MYSQL_COMMENT 1 -#define wxSTC_MYSQL_COMMENTLINE 2 -#define wxSTC_MYSQL_VARIABLE 3 -#define wxSTC_MYSQL_SYSTEMVARIABLE 4 -#define wxSTC_MYSQL_KNOWNSYSTEMVARIABLE 5 -#define wxSTC_MYSQL_NUMBER 6 -#define wxSTC_MYSQL_MAJORKEYWORD 7 -#define wxSTC_MYSQL_KEYWORD 8 -#define wxSTC_MYSQL_DATABASEOBJECT 9 -#define wxSTC_MYSQL_PROCEDUREKEYWORD 10 -#define wxSTC_MYSQL_STRING 11 -#define wxSTC_MYSQL_SQSTRING 12 -#define wxSTC_MYSQL_DQSTRING 13 -#define wxSTC_MYSQL_OPERATOR 14 -#define wxSTC_MYSQL_FUNCTION 15 -#define wxSTC_MYSQL_IDENTIFIER 16 -#define wxSTC_MYSQL_QUOTEDIDENTIFIER 17 -#define wxSTC_MYSQL_USER1 18 -#define wxSTC_MYSQL_USER2 19 -#define wxSTC_MYSQL_USER3 20 -#define wxSTC_MYSQL_HIDDENCOMMAND 21 -#define wxSTC_MYSQL_PLACEHOLDER 22 - -/// Lexical state for SCLEX_PO -#define wxSTC_PO_DEFAULT 0 -#define wxSTC_PO_COMMENT 1 -#define wxSTC_PO_MSGID 2 -#define wxSTC_PO_MSGID_TEXT 3 -#define wxSTC_PO_MSGSTR 4 -#define wxSTC_PO_MSGSTR_TEXT 5 -#define wxSTC_PO_MSGCTXT 6 -#define wxSTC_PO_MSGCTXT_TEXT 7 -#define wxSTC_PO_FUZZY 8 -#define wxSTC_PO_PROGRAMMER_COMMENT 9 -#define wxSTC_PO_REFERENCE 10 -#define wxSTC_PO_FLAGS 11 -#define wxSTC_PO_MSGID_TEXT_EOL 12 -#define wxSTC_PO_MSGSTR_TEXT_EOL 13 -#define wxSTC_PO_MSGCTXT_TEXT_EOL 14 -#define wxSTC_PO_ERROR 15 - -/// Lexical states for SCLEX_PASCAL -#define wxSTC_PAS_DEFAULT 0 -#define wxSTC_PAS_IDENTIFIER 1 -#define wxSTC_PAS_COMMENT 2 -#define wxSTC_PAS_COMMENT2 3 -#define wxSTC_PAS_COMMENTLINE 4 -#define wxSTC_PAS_PREPROCESSOR 5 -#define wxSTC_PAS_PREPROCESSOR2 6 -#define wxSTC_PAS_NUMBER 7 -#define wxSTC_PAS_HEXNUMBER 8 -#define wxSTC_PAS_WORD 9 -#define wxSTC_PAS_STRING 10 -#define wxSTC_PAS_STRINGEOL 11 -#define wxSTC_PAS_CHARACTER 12 -#define wxSTC_PAS_OPERATOR 13 -#define wxSTC_PAS_ASM 14 - -/// Lexical state for SCLEX_SORCUS -#define wxSTC_SORCUS_DEFAULT 0 -#define wxSTC_SORCUS_COMMAND 1 -#define wxSTC_SORCUS_PARAMETER 2 -#define wxSTC_SORCUS_COMMENTLINE 3 -#define wxSTC_SORCUS_STRING 4 -#define wxSTC_SORCUS_STRINGEOL 5 -#define wxSTC_SORCUS_IDENTIFIER 6 -#define wxSTC_SORCUS_OPERATOR 7 -#define wxSTC_SORCUS_NUMBER 8 -#define wxSTC_SORCUS_CONSTANT 9 - -/// Lexical state for SCLEX_POWERPRO -#define wxSTC_POWERPRO_DEFAULT 0 -#define wxSTC_POWERPRO_COMMENTBLOCK 1 -#define wxSTC_POWERPRO_COMMENTLINE 2 -#define wxSTC_POWERPRO_NUMBER 3 -#define wxSTC_POWERPRO_WORD 4 -#define wxSTC_POWERPRO_WORD2 5 -#define wxSTC_POWERPRO_WORD3 6 -#define wxSTC_POWERPRO_WORD4 7 -#define wxSTC_POWERPRO_DOUBLEQUOTEDSTRING 8 -#define wxSTC_POWERPRO_SINGLEQUOTEDSTRING 9 -#define wxSTC_POWERPRO_LINECONTINUE 10 -#define wxSTC_POWERPRO_OPERATOR 11 -#define wxSTC_POWERPRO_IDENTIFIER 12 -#define wxSTC_POWERPRO_STRINGEOL 13 -#define wxSTC_POWERPRO_VERBATIM 14 -#define wxSTC_POWERPRO_ALTQUOTE 15 -#define wxSTC_POWERPRO_FUNCTION 16 - -/// Lexical states for SCLEX_SML -#define wxSTC_SML_DEFAULT 0 -#define wxSTC_SML_IDENTIFIER 1 -#define wxSTC_SML_TAGNAME 2 -#define wxSTC_SML_KEYWORD 3 -#define wxSTC_SML_KEYWORD2 4 -#define wxSTC_SML_KEYWORD3 5 -#define wxSTC_SML_LINENUM 6 -#define wxSTC_SML_OPERATOR 7 -#define wxSTC_SML_NUMBER 8 -#define wxSTC_SML_CHAR 9 -#define wxSTC_SML_STRING 11 -#define wxSTC_SML_COMMENT 12 -#define wxSTC_SML_COMMENT1 13 -#define wxSTC_SML_COMMENT2 14 -#define wxSTC_SML_COMMENT3 15 - -/// Lexical state for SCLEX_MARKDOWN -#define wxSTC_MARKDOWN_DEFAULT 0 -#define wxSTC_MARKDOWN_LINE_BEGIN 1 -#define wxSTC_MARKDOWN_STRONG1 2 -#define wxSTC_MARKDOWN_STRONG2 3 -#define wxSTC_MARKDOWN_EM1 4 -#define wxSTC_MARKDOWN_EM2 5 -#define wxSTC_MARKDOWN_HEADER1 6 -#define wxSTC_MARKDOWN_HEADER2 7 -#define wxSTC_MARKDOWN_HEADER3 8 -#define wxSTC_MARKDOWN_HEADER4 9 -#define wxSTC_MARKDOWN_HEADER5 10 -#define wxSTC_MARKDOWN_HEADER6 11 -#define wxSTC_MARKDOWN_PRECHAR 12 -#define wxSTC_MARKDOWN_ULIST_ITEM 13 -#define wxSTC_MARKDOWN_OLIST_ITEM 14 -#define wxSTC_MARKDOWN_BLOCKQUOTE 15 -#define wxSTC_MARKDOWN_STRIKEOUT 16 -#define wxSTC_MARKDOWN_HRULE 17 -#define wxSTC_MARKDOWN_LINK 18 -#define wxSTC_MARKDOWN_CODE 19 -#define wxSTC_MARKDOWN_CODE2 20 -#define wxSTC_MARKDOWN_CODEBK 21 - -/// Lexical state for SCLEX_TXT2TAGS -#define wxSTC_TXT2TAGS_DEFAULT 0 -#define wxSTC_TXT2TAGS_LINE_BEGIN 1 -#define wxSTC_TXT2TAGS_STRONG1 2 -#define wxSTC_TXT2TAGS_STRONG2 3 -#define wxSTC_TXT2TAGS_EM1 4 -#define wxSTC_TXT2TAGS_EM2 5 -#define wxSTC_TXT2TAGS_HEADER1 6 -#define wxSTC_TXT2TAGS_HEADER2 7 -#define wxSTC_TXT2TAGS_HEADER3 8 -#define wxSTC_TXT2TAGS_HEADER4 9 -#define wxSTC_TXT2TAGS_HEADER5 10 -#define wxSTC_TXT2TAGS_HEADER6 11 -#define wxSTC_TXT2TAGS_PRECHAR 12 -#define wxSTC_TXT2TAGS_ULIST_ITEM 13 -#define wxSTC_TXT2TAGS_OLIST_ITEM 14 -#define wxSTC_TXT2TAGS_BLOCKQUOTE 15 -#define wxSTC_TXT2TAGS_STRIKEOUT 16 -#define wxSTC_TXT2TAGS_HRULE 17 -#define wxSTC_TXT2TAGS_LINK 18 -#define wxSTC_TXT2TAGS_CODE 19 -#define wxSTC_TXT2TAGS_CODE2 20 -#define wxSTC_TXT2TAGS_CODEBK 21 -#define wxSTC_TXT2TAGS_COMMENT 22 -#define wxSTC_TXT2TAGS_OPTION 23 -#define wxSTC_TXT2TAGS_PREPROC 24 -#define wxSTC_TXT2TAGS_POSTPROC 25 - -/// Lexical states for SCLEX_A68K -#define wxSTC_A68K_DEFAULT 0 -#define wxSTC_A68K_COMMENT 1 -#define wxSTC_A68K_NUMBER_DEC 2 -#define wxSTC_A68K_NUMBER_BIN 3 -#define wxSTC_A68K_NUMBER_HEX 4 -#define wxSTC_A68K_STRING1 5 -#define wxSTC_A68K_OPERATOR 6 -#define wxSTC_A68K_CPUINSTRUCTION 7 -#define wxSTC_A68K_EXTINSTRUCTION 8 -#define wxSTC_A68K_REGISTER 9 -#define wxSTC_A68K_DIRECTIVE 10 -#define wxSTC_A68K_MACRO_ARG 11 -#define wxSTC_A68K_LABEL 12 -#define wxSTC_A68K_STRING2 13 -#define wxSTC_A68K_IDENTIFIER 14 -#define wxSTC_A68K_MACRO_DECLARATION 15 -#define wxSTC_A68K_COMMENT_WORD 16 -#define wxSTC_A68K_COMMENT_SPECIAL 17 -#define wxSTC_A68K_COMMENT_DOXYGEN 18 - -/// Lexical states for SCLEX_MODULA -#define wxSTC_MODULA_DEFAULT 0 -#define wxSTC_MODULA_COMMENT 1 -#define wxSTC_MODULA_DOXYCOMM 2 -#define wxSTC_MODULA_DOXYKEY 3 -#define wxSTC_MODULA_KEYWORD 4 -#define wxSTC_MODULA_RESERVED 5 -#define wxSTC_MODULA_NUMBER 6 -#define wxSTC_MODULA_BASENUM 7 -#define wxSTC_MODULA_FLOAT 8 -#define wxSTC_MODULA_STRING 9 -#define wxSTC_MODULA_STRSPEC 10 -#define wxSTC_MODULA_CHAR 11 -#define wxSTC_MODULA_CHARSPEC 12 -#define wxSTC_MODULA_PROC 13 -#define wxSTC_MODULA_PRAGMA 14 -#define wxSTC_MODULA_PRGKEY 15 -#define wxSTC_MODULA_OPERATOR 16 -#define wxSTC_MODULA_BADSTR 17 - -/// Lexical states for SCLEX_COFFEESCRIPT -#define wxSTC_COFFEESCRIPT_DEFAULT 0 -#define wxSTC_COFFEESCRIPT_COMMENT 1 -#define wxSTC_COFFEESCRIPT_COMMENTLINE 2 -#define wxSTC_COFFEESCRIPT_COMMENTDOC 3 -#define wxSTC_COFFEESCRIPT_NUMBER 4 -#define wxSTC_COFFEESCRIPT_WORD 5 -#define wxSTC_COFFEESCRIPT_STRING 6 -#define wxSTC_COFFEESCRIPT_CHARACTER 7 -#define wxSTC_COFFEESCRIPT_UUID 8 -#define wxSTC_COFFEESCRIPT_PREPROCESSOR 9 -#define wxSTC_COFFEESCRIPT_OPERATOR 10 -#define wxSTC_COFFEESCRIPT_IDENTIFIER 11 -#define wxSTC_COFFEESCRIPT_STRINGEOL 12 -#define wxSTC_COFFEESCRIPT_VERBATIM 13 -#define wxSTC_COFFEESCRIPT_REGEX 14 -#define wxSTC_COFFEESCRIPT_COMMENTLINEDOC 15 -#define wxSTC_COFFEESCRIPT_WORD2 16 -#define wxSTC_COFFEESCRIPT_COMMENTDOCKEYWORD 17 -#define wxSTC_COFFEESCRIPT_COMMENTDOCKEYWORDERROR 18 -#define wxSTC_COFFEESCRIPT_GLOBALCLASS 19 -#define wxSTC_COFFEESCRIPT_STRINGRAW 20 -#define wxSTC_COFFEESCRIPT_TRIPLEVERBATIM 21 -#define wxSTC_COFFEESCRIPT_COMMENTBLOCK 22 -#define wxSTC_COFFEESCRIPT_VERBOSE_REGEX 23 -#define wxSTC_COFFEESCRIPT_VERBOSE_REGEX_COMMENT 24 - -/// Lexical states for SCLEX_AVS -#define wxSTC_AVS_DEFAULT 0 -#define wxSTC_AVS_COMMENTBLOCK 1 -#define wxSTC_AVS_COMMENTBLOCKN 2 -#define wxSTC_AVS_COMMENTLINE 3 -#define wxSTC_AVS_NUMBER 4 -#define wxSTC_AVS_OPERATOR 5 -#define wxSTC_AVS_IDENTIFIER 6 -#define wxSTC_AVS_STRING 7 -#define wxSTC_AVS_TRIPLESTRING 8 -#define wxSTC_AVS_KEYWORD 9 -#define wxSTC_AVS_FILTER 10 -#define wxSTC_AVS_PLUGIN 11 -#define wxSTC_AVS_FUNCTION 12 -#define wxSTC_AVS_CLIPPROP 13 -#define wxSTC_AVS_USERDFN 14 - -/// Lexical states for SCLEX_ECL -#define wxSTC_ECL_DEFAULT 0 -#define wxSTC_ECL_COMMENT 1 -#define wxSTC_ECL_COMMENTLINE 2 -#define wxSTC_ECL_NUMBER 3 -#define wxSTC_ECL_STRING 4 -#define wxSTC_ECL_WORD0 5 -#define wxSTC_ECL_OPERATOR 6 -#define wxSTC_ECL_CHARACTER 7 -#define wxSTC_ECL_UUID 8 -#define wxSTC_ECL_PREPROCESSOR 9 -#define wxSTC_ECL_UNKNOWN 10 -#define wxSTC_ECL_IDENTIFIER 11 -#define wxSTC_ECL_STRINGEOL 12 -#define wxSTC_ECL_VERBATIM 13 -#define wxSTC_ECL_REGEX 14 -#define wxSTC_ECL_COMMENTLINEDOC 15 -#define wxSTC_ECL_WORD1 16 -#define wxSTC_ECL_COMMENTDOCKEYWORD 17 -#define wxSTC_ECL_COMMENTDOCKEYWORDERROR 18 -#define wxSTC_ECL_WORD2 19 -#define wxSTC_ECL_WORD3 20 -#define wxSTC_ECL_WORD4 21 -#define wxSTC_ECL_WORD5 22 -#define wxSTC_ECL_COMMENTDOC 23 -#define wxSTC_ECL_ADDED 24 -#define wxSTC_ECL_DELETED 25 -#define wxSTC_ECL_CHANGED 26 -#define wxSTC_ECL_MOVED 27 - -/// Lexical states for SCLEX_OSCRIPT -#define wxSTC_OSCRIPT_DEFAULT 0 -#define wxSTC_OSCRIPT_LINE_COMMENT 1 -#define wxSTC_OSCRIPT_BLOCK_COMMENT 2 -#define wxSTC_OSCRIPT_DOC_COMMENT 3 -#define wxSTC_OSCRIPT_PREPROCESSOR 4 -#define wxSTC_OSCRIPT_NUMBER 5 -#define wxSTC_OSCRIPT_SINGLEQUOTE_STRING 6 -#define wxSTC_OSCRIPT_DOUBLEQUOTE_STRING 7 -#define wxSTC_OSCRIPT_CONSTANT 8 -#define wxSTC_OSCRIPT_IDENTIFIER 9 -#define wxSTC_OSCRIPT_GLOBAL 10 -#define wxSTC_OSCRIPT_KEYWORD 11 -#define wxSTC_OSCRIPT_OPERATOR 12 -#define wxSTC_OSCRIPT_LABEL 13 -#define wxSTC_OSCRIPT_TYPE 14 -#define wxSTC_OSCRIPT_FUNCTION 15 -#define wxSTC_OSCRIPT_OBJECT 16 -#define wxSTC_OSCRIPT_PROPERTY 17 -#define wxSTC_OSCRIPT_METHOD 18 - -/// Lexical states for SCLEX_VISUALPROLOG -#define wxSTC_VISUALPROLOG_DEFAULT 0 -#define wxSTC_VISUALPROLOG_KEY_MAJOR 1 -#define wxSTC_VISUALPROLOG_KEY_MINOR 2 -#define wxSTC_VISUALPROLOG_KEY_DIRECTIVE 3 -#define wxSTC_VISUALPROLOG_COMMENT_BLOCK 4 -#define wxSTC_VISUALPROLOG_COMMENT_LINE 5 -#define wxSTC_VISUALPROLOG_COMMENT_KEY 6 -#define wxSTC_VISUALPROLOG_COMMENT_KEY_ERROR 7 -#define wxSTC_VISUALPROLOG_IDENTIFIER 8 -#define wxSTC_VISUALPROLOG_VARIABLE 9 -#define wxSTC_VISUALPROLOG_ANONYMOUS 10 -#define wxSTC_VISUALPROLOG_NUMBER 11 -#define wxSTC_VISUALPROLOG_OPERATOR 12 -#define wxSTC_VISUALPROLOG_CHARACTER 13 -#define wxSTC_VISUALPROLOG_CHARACTER_TOO_MANY 14 -#define wxSTC_VISUALPROLOG_CHARACTER_ESCAPE_ERROR 15 -#define wxSTC_VISUALPROLOG_STRING 16 -#define wxSTC_VISUALPROLOG_STRING_ESCAPE 17 -#define wxSTC_VISUALPROLOG_STRING_ESCAPE_ERROR 18 -#define wxSTC_VISUALPROLOG_STRING_EOL_OPEN 19 -#define wxSTC_VISUALPROLOG_STRING_VERBATIM 20 -#define wxSTC_VISUALPROLOG_STRING_VERBATIM_SPECIAL 21 -#define wxSTC_VISUALPROLOG_STRING_VERBATIM_EOL 22 - -/// Lexical states for SCLEX_STTXT -#define wxSTC_STTXT_DEFAULT 0 -#define wxSTC_STTXT_COMMENT 1 -#define wxSTC_STTXT_COMMENTLINE 2 -#define wxSTC_STTXT_KEYWORD 3 -#define wxSTC_STTXT_TYPE 4 -#define wxSTC_STTXT_FUNCTION 5 -#define wxSTC_STTXT_FB 6 -#define wxSTC_STTXT_NUMBER 7 -#define wxSTC_STTXT_HEXNUMBER 8 -#define wxSTC_STTXT_PRAGMA 9 -#define wxSTC_STTXT_OPERATOR 10 -#define wxSTC_STTXT_CHARACTER 11 -#define wxSTC_STTXT_STRING1 12 -#define wxSTC_STTXT_STRING2 13 -#define wxSTC_STTXT_STRINGEOL 14 -#define wxSTC_STTXT_IDENTIFIER 15 -#define wxSTC_STTXT_DATETIME 16 -#define wxSTC_STTXT_VARS 17 -#define wxSTC_STTXT_PRAGMAS 18 - -/// Lexical states for SCLEX_KVIRC -#define wxSTC_KVIRC_DEFAULT 0 -#define wxSTC_KVIRC_COMMENT 1 -#define wxSTC_KVIRC_COMMENTBLOCK 2 -#define wxSTC_KVIRC_STRING 3 -#define wxSTC_KVIRC_WORD 4 -#define wxSTC_KVIRC_KEYWORD 5 -#define wxSTC_KVIRC_FUNCTION_KEYWORD 6 -#define wxSTC_KVIRC_FUNCTION 7 -#define wxSTC_KVIRC_VARIABLE 8 -#define wxSTC_KVIRC_NUMBER 9 -#define wxSTC_KVIRC_OPERATOR 10 -#define wxSTC_KVIRC_STRING_FUNCTION 11 -#define wxSTC_KVIRC_STRING_VARIABLE 12 - -/// Lexical states for SCLEX_RUST -#define wxSTC_RUST_DEFAULT 0 -#define wxSTC_RUST_COMMENTBLOCK 1 -#define wxSTC_RUST_COMMENTLINE 2 -#define wxSTC_RUST_COMMENTBLOCKDOC 3 -#define wxSTC_RUST_COMMENTLINEDOC 4 -#define wxSTC_RUST_NUMBER 5 -#define wxSTC_RUST_WORD 6 -#define wxSTC_RUST_WORD2 7 -#define wxSTC_RUST_WORD3 8 -#define wxSTC_RUST_WORD4 9 -#define wxSTC_RUST_WORD5 10 -#define wxSTC_RUST_WORD6 11 -#define wxSTC_RUST_WORD7 12 -#define wxSTC_RUST_STRING 13 -#define wxSTC_RUST_STRINGR 14 -#define wxSTC_RUST_CHARACTER 15 -#define wxSTC_RUST_OPERATOR 16 -#define wxSTC_RUST_IDENTIFIER 17 -#define wxSTC_RUST_LIFETIME 18 -#define wxSTC_RUST_MACRO 19 -#define wxSTC_RUST_LEXERROR 20 -#define wxSTC_RUST_BYTESTRING 21 -#define wxSTC_RUST_BYTESTRINGR 22 -#define wxSTC_RUST_BYTECHARACTER 23 - -/// Lexical states for SCLEX_DMAP -#define wxSTC_DMAP_DEFAULT 0 -#define wxSTC_DMAP_COMMENT 1 -#define wxSTC_DMAP_NUMBER 2 -#define wxSTC_DMAP_STRING1 3 -#define wxSTC_DMAP_STRING2 4 -#define wxSTC_DMAP_STRINGEOL 5 -#define wxSTC_DMAP_OPERATOR 6 -#define wxSTC_DMAP_IDENTIFIER 7 -#define wxSTC_DMAP_WORD 8 -#define wxSTC_DMAP_WORD2 9 -#define wxSTC_DMAP_WORD3 10 - -/// Lexical states for SCLEX_DMIS -#define wxSTC_DMIS_DEFAULT 0 -#define wxSTC_DMIS_COMMENT 1 -#define wxSTC_DMIS_STRING 2 -#define wxSTC_DMIS_NUMBER 3 -#define wxSTC_DMIS_KEYWORD 4 -#define wxSTC_DMIS_MAJORWORD 5 -#define wxSTC_DMIS_MINORWORD 6 -#define wxSTC_DMIS_UNSUPPORTED_MAJOR 7 -#define wxSTC_DMIS_UNSUPPORTED_MINOR 8 -#define wxSTC_DMIS_LABEL 9 - -/// Lexical states for SCLEX_REGISTRY -#define wxSTC_REG_DEFAULT 0 -#define wxSTC_REG_COMMENT 1 -#define wxSTC_REG_VALUENAME 2 -#define wxSTC_REG_STRING 3 -#define wxSTC_REG_HEXDIGIT 4 -#define wxSTC_REG_VALUETYPE 5 -#define wxSTC_REG_ADDEDKEY 6 -#define wxSTC_REG_DELETEDKEY 7 -#define wxSTC_REG_ESCAPED 8 -#define wxSTC_REG_KEYPATH_GUID 9 -#define wxSTC_REG_STRING_GUID 10 -#define wxSTC_REG_PARAMETER 11 -#define wxSTC_REG_OPERATOR 12 - -/// Lexical state for SCLEX_BIBTEX -#define wxSTC_BIBTEX_DEFAULT 0 -#define wxSTC_BIBTEX_ENTRY 1 -#define wxSTC_BIBTEX_UNKNOWN_ENTRY 2 -#define wxSTC_BIBTEX_KEY 3 -#define wxSTC_BIBTEX_PARAMETER 4 -#define wxSTC_BIBTEX_VALUE 5 -#define wxSTC_BIBTEX_COMMENT 6 - -/// Lexical state for SCLEX_SREC -#define wxSTC_HEX_DEFAULT 0 -#define wxSTC_HEX_RECSTART 1 -#define wxSTC_HEX_RECTYPE 2 -#define wxSTC_HEX_RECTYPE_UNKNOWN 3 -#define wxSTC_HEX_BYTECOUNT 4 -#define wxSTC_HEX_BYTECOUNT_WRONG 5 -#define wxSTC_HEX_NOADDRESS 6 -#define wxSTC_HEX_DATAADDRESS 7 -#define wxSTC_HEX_RECCOUNT 8 -#define wxSTC_HEX_STARTADDRESS 9 -#define wxSTC_HEX_ADDRESSFIELD_UNKNOWN 10 -#define wxSTC_HEX_EXTENDEDADDRESS 11 -#define wxSTC_HEX_DATA_ODD 12 -#define wxSTC_HEX_DATA_EVEN 13 -#define wxSTC_HEX_DATA_UNKNOWN 14 -#define wxSTC_HEX_DATA_EMPTY 15 -#define wxSTC_HEX_CHECKSUM 16 -#define wxSTC_HEX_CHECKSUM_WRONG 17 -#define wxSTC_HEX_GARBAGE 18 - -//}}} -//---------------------------------------------------------------------- - -//---------------------------------------------------------------------- -// Commands that can be bound to keystrokes section {{{ - - -/// Redoes the next action on the undo history. -#define wxSTC_CMD_REDO 2011 - -/// Select all the text in the document. -#define wxSTC_CMD_SELECTALL 2013 - -/// Undo one action in the undo history. -#define wxSTC_CMD_UNDO 2176 - -/// Cut the selection to the clipboard. -#define wxSTC_CMD_CUT 2177 - -/// Copy the selection to the clipboard. -#define wxSTC_CMD_COPY 2178 - -/// Paste the contents of the clipboard into the document replacing the selection. -#define wxSTC_CMD_PASTE 2179 - -/// Clear the selection. -#define wxSTC_CMD_CLEAR 2180 - -/// Move caret down one line. -#define wxSTC_CMD_LINEDOWN 2300 - -/// Move caret down one line extending selection to new caret position. -#define wxSTC_CMD_LINEDOWNEXTEND 2301 - -/// Move caret up one line. -#define wxSTC_CMD_LINEUP 2302 - -/// Move caret up one line extending selection to new caret position. -#define wxSTC_CMD_LINEUPEXTEND 2303 - -/// Move caret left one character. -#define wxSTC_CMD_CHARLEFT 2304 - -/// Move caret left one character extending selection to new caret position. -#define wxSTC_CMD_CHARLEFTEXTEND 2305 - -/// Move caret right one character. -#define wxSTC_CMD_CHARRIGHT 2306 - -/// Move caret right one character extending selection to new caret position. -#define wxSTC_CMD_CHARRIGHTEXTEND 2307 - -/// Move caret left one word. -#define wxSTC_CMD_WORDLEFT 2308 - -/// Move caret left one word extending selection to new caret position. -#define wxSTC_CMD_WORDLEFTEXTEND 2309 - -/// Move caret right one word. -#define wxSTC_CMD_WORDRIGHT 2310 - -/// Move caret right one word extending selection to new caret position. -#define wxSTC_CMD_WORDRIGHTEXTEND 2311 - -/// Move caret to first position on line. -#define wxSTC_CMD_HOME 2312 - -/// Move caret to first position on line extending selection to new caret position. -#define wxSTC_CMD_HOMEEXTEND 2313 - -/// Move caret to last position on line. -#define wxSTC_CMD_LINEEND 2314 - -/// Move caret to last position on line extending selection to new caret position. -#define wxSTC_CMD_LINEENDEXTEND 2315 - -/// Move caret to first position in document. -#define wxSTC_CMD_DOCUMENTSTART 2316 - -/// Move caret to first position in document extending selection to new caret position. -#define wxSTC_CMD_DOCUMENTSTARTEXTEND 2317 - -/// Move caret to last position in document. -#define wxSTC_CMD_DOCUMENTEND 2318 - -/// Move caret to last position in document extending selection to new caret position. -#define wxSTC_CMD_DOCUMENTENDEXTEND 2319 - -/// Move caret one page up. -#define wxSTC_CMD_PAGEUP 2320 - -/// Move caret one page up extending selection to new caret position. -#define wxSTC_CMD_PAGEUPEXTEND 2321 - -/// Move caret one page down. -#define wxSTC_CMD_PAGEDOWN 2322 - -/// Move caret one page down extending selection to new caret position. -#define wxSTC_CMD_PAGEDOWNEXTEND 2323 - -/// Switch from insert to overtype mode or the reverse. -#define wxSTC_CMD_EDITTOGGLEOVERTYPE 2324 - -/// Cancel any modes such as call tip or auto-completion list display. -#define wxSTC_CMD_CANCEL 2325 - -/// Delete the selection or if no selection, the character before the caret. -#define wxSTC_CMD_DELETEBACK 2326 - -/// If selection is empty or all on one line replace the selection with a tab character. -/// If more than one line selected, indent the lines. -#define wxSTC_CMD_TAB 2327 - -/// Dedent the selected lines. -#define wxSTC_CMD_BACKTAB 2328 - -/// Insert a new line, may use a CRLF, CR or LF depending on EOL mode. -#define wxSTC_CMD_NEWLINE 2329 - -/// Insert a Form Feed character. -#define wxSTC_CMD_FORMFEED 2330 - -/// Move caret to before first visible character on line. -/// If already there move to first character on line. -#define wxSTC_CMD_VCHOME 2331 - -/// Like VCHome but extending selection to new caret position. -#define wxSTC_CMD_VCHOMEEXTEND 2332 - -/// Magnify the displayed text by increasing the sizes by 1 point. -#define wxSTC_CMD_ZOOMIN 2333 - -/// Make the displayed text smaller by decreasing the sizes by 1 point. -#define wxSTC_CMD_ZOOMOUT 2334 - -/// Delete the word to the left of the caret. -#define wxSTC_CMD_DELWORDLEFT 2335 - -/// Delete the word to the right of the caret. -#define wxSTC_CMD_DELWORDRIGHT 2336 - -/// Delete the word to the right of the caret, but not the trailing non-word characters. -#define wxSTC_CMD_DELWORDRIGHTEND 2518 - -/// Cut the line containing the caret. -#define wxSTC_CMD_LINECUT 2337 - -/// Delete the line containing the caret. -#define wxSTC_CMD_LINEDELETE 2338 - -/// Switch the current line with the previous. -#define wxSTC_CMD_LINETRANSPOSE 2339 - -/// Duplicate the current line. -#define wxSTC_CMD_LINEDUPLICATE 2404 - -/// Transform the selection to lower case. -#define wxSTC_CMD_LOWERCASE 2340 - -/// Transform the selection to upper case. -#define wxSTC_CMD_UPPERCASE 2341 - -/// Scroll the document down, keeping the caret visible. -#define wxSTC_CMD_LINESCROLLDOWN 2342 - -/// Scroll the document up, keeping the caret visible. -#define wxSTC_CMD_LINESCROLLUP 2343 - -/// Delete the selection or if no selection, the character before the caret. -/// Will not delete the character before at the start of a line. -#define wxSTC_CMD_DELETEBACKNOTLINE 2344 - -/// Move caret to first position on display line. -#define wxSTC_CMD_HOMEDISPLAY 2345 - -/// Move caret to first position on display line extending selection to -/// new caret position. -#define wxSTC_CMD_HOMEDISPLAYEXTEND 2346 - -/// Move caret to last position on display line. -#define wxSTC_CMD_LINEENDDISPLAY 2347 - -/// Move caret to last position on display line extending selection to new -/// caret position. -#define wxSTC_CMD_LINEENDDISPLAYEXTEND 2348 - -/// These are like their namesakes Home(Extend)?, LineEnd(Extend)?, VCHome(Extend)? -/// except they behave differently when word-wrap is enabled: -/// They go first to the start / end of the display line, like (Home|LineEnd)Display -/// The difference is that, the cursor is already at the point, it goes on to the start -/// or end of the document line, as appropriate for (Home|LineEnd|VCHome)(Extend)?. -#define wxSTC_CMD_HOMEWRAP 2349 -#define wxSTC_CMD_HOMEWRAPEXTEND 2450 -#define wxSTC_CMD_LINEENDWRAP 2451 -#define wxSTC_CMD_LINEENDWRAPEXTEND 2452 -#define wxSTC_CMD_VCHOMEWRAP 2453 -#define wxSTC_CMD_VCHOMEWRAPEXTEND 2454 - -/// Copy the line containing the caret. -#define wxSTC_CMD_LINECOPY 2455 - -/// Move to the previous change in capitalisation. -#define wxSTC_CMD_WORDPARTLEFT 2390 - -/// Move to the previous change in capitalisation extending selection -/// to new caret position. -#define wxSTC_CMD_WORDPARTLEFTEXTEND 2391 - -/// Move to the change next in capitalisation. -#define wxSTC_CMD_WORDPARTRIGHT 2392 - -/// Move to the next change in capitalisation extending selection -/// to new caret position. -#define wxSTC_CMD_WORDPARTRIGHTEXTEND 2393 - -/// Delete back from the current position to the start of the line. -#define wxSTC_CMD_DELLINELEFT 2395 - -/// Delete forwards from the current position to the end of the line. -#define wxSTC_CMD_DELLINERIGHT 2396 - -/// Move caret between paragraphs (delimited by empty lines). -#define wxSTC_CMD_PARADOWN 2413 -#define wxSTC_CMD_PARADOWNEXTEND 2414 -#define wxSTC_CMD_PARAUP 2415 -#define wxSTC_CMD_PARAUPEXTEND 2416 - -/// Move caret down one line, extending rectangular selection to new caret position. -#define wxSTC_CMD_LINEDOWNRECTEXTEND 2426 - -/// Move caret up one line, extending rectangular selection to new caret position. -#define wxSTC_CMD_LINEUPRECTEXTEND 2427 - -/// Move caret left one character, extending rectangular selection to new caret position. -#define wxSTC_CMD_CHARLEFTRECTEXTEND 2428 - -/// Move caret right one character, extending rectangular selection to new caret position. -#define wxSTC_CMD_CHARRIGHTRECTEXTEND 2429 - -/// Move caret to first position on line, extending rectangular selection to new caret position. -#define wxSTC_CMD_HOMERECTEXTEND 2430 - -/// Move caret to before first visible character on line. -/// If already there move to first character on line. -/// In either case, extend rectangular selection to new caret position. -#define wxSTC_CMD_VCHOMERECTEXTEND 2431 - -/// Move caret to last position on line, extending rectangular selection to new caret position. -#define wxSTC_CMD_LINEENDRECTEXTEND 2432 - -/// Move caret one page up, extending rectangular selection to new caret position. -#define wxSTC_CMD_PAGEUPRECTEXTEND 2433 - -/// Move caret one page down, extending rectangular selection to new caret position. -#define wxSTC_CMD_PAGEDOWNRECTEXTEND 2434 - -/// Move caret to top of page, or one page up if already at top of page. -#define wxSTC_CMD_STUTTEREDPAGEUP 2435 - -/// Move caret to top of page, or one page up if already at top of page, extending selection to new caret position. -#define wxSTC_CMD_STUTTEREDPAGEUPEXTEND 2436 - -/// Move caret to bottom of page, or one page down if already at bottom of page. -#define wxSTC_CMD_STUTTEREDPAGEDOWN 2437 - -/// Move caret to bottom of page, or one page down if already at bottom of page, extending selection to new caret position. -#define wxSTC_CMD_STUTTEREDPAGEDOWNEXTEND 2438 - -/// Move caret left one word, position cursor at end of word. -#define wxSTC_CMD_WORDLEFTEND 2439 - -/// Move caret left one word, position cursor at end of word, extending selection to new caret position. -#define wxSTC_CMD_WORDLEFTENDEXTEND 2440 - -/// Move caret right one word, position cursor at end of word. -#define wxSTC_CMD_WORDRIGHTEND 2441 - -/// Move caret right one word, position cursor at end of word, extending selection to new caret position. -#define wxSTC_CMD_WORDRIGHTENDEXTEND 2442 - -/// Centre current line in window. -#define wxSTC_CMD_VERTICALCENTRECARET 2619 - -/// Move the selected lines up one line, shifting the line above after the selection -#define wxSTC_CMD_MOVESELECTEDLINESUP 2620 - -/// Move the selected lines down one line, shifting the line below before the selection -#define wxSTC_CMD_MOVESELECTEDLINESDOWN 2621 - -/// Scroll to start of document. -#define wxSTC_CMD_SCROLLTOSTART 2628 - -/// Scroll to end of document. -#define wxSTC_CMD_SCROLLTOEND 2629 - -/// Move caret to before first visible character on display line. -/// If already there move to first character on display line. -#define wxSTC_CMD_VCHOMEDISPLAY 2652 - -/// Like VCHomeDisplay but extending selection to new caret position. -#define wxSTC_CMD_VCHOMEDISPLAYEXTEND 2653 - -//}}} -//---------------------------------------------------------------------- - -class ScintillaWX; // forward declare -class WordList; -struct SCNotification; - -#ifndef SWIG -extern WXDLLIMPEXP_DATA_STC(const char) wxSTCNameStr[]; -class WXDLLIMPEXP_FWD_STC wxStyledTextCtrl; -class WXDLLIMPEXP_FWD_STC wxStyledTextEvent; -#endif - -//---------------------------------------------------------------------- - -class WXDLLIMPEXP_STC wxStyledTextCtrl : public wxControl, -#if wxUSE_TEXTCTRL - public wxTextCtrlIface -#else // !wxUSE_TEXTCTRL - public wxTextEntryBase -#endif // wxUSE_TEXTCTRL/!wxUSE_TEXTCTRL -{ -public: - -#ifdef SWIG - %pythonAppend wxStyledTextCtrl "self._setOORInfo(self)" - %pythonAppend wxStyledTextCtrl() "" - - wxStyledTextCtrl(wxWindow *parent, wxWindowID id=wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxString& name = wxPySTCNameStr); - %RenameCtor(PreStyledTextCtrl, wxStyledTextCtrl()); - -#else - wxStyledTextCtrl(wxWindow *parent, wxWindowID id=wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxString& name = wxSTCNameStr); - wxStyledTextCtrl() { m_swx = NULL; } - ~wxStyledTextCtrl(); - -#endif - - bool Create(wxWindow *parent, wxWindowID id=wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxString& name = wxSTCNameStr); - - - //---------------------------------------------------------------------- - // Generated method declaration section {{{ - - - // Add text to the document at current position. - void AddText(const wxString& text); - - // Add array of cells to document. - void AddStyledText(const wxMemoryBuffer& data); - - // Insert string at a position. - void InsertText(int pos, const wxString& text); - - // Change the text that is being inserted in response to SC_MOD_INSERTCHECK - void ChangeInsertion(int length, const wxString& text); - - // Delete all text in the document. - void ClearAll(); - - // Delete a range of text in the document. - void DeleteRange(int pos, int deleteLength); - - // Set all style bytes to 0, remove all folding information. - void ClearDocumentStyle(); - - // Returns the number of bytes in the document. - int GetLength() const; - - // Returns the character byte at the position. - int GetCharAt(int pos) const; - - // Returns the position of the caret. - int GetCurrentPos() const; - - // Returns the position of the opposite end of the selection to the caret. - int GetAnchor() const; - - // Returns the style byte at the position. - int GetStyleAt(int pos) const; - - // Redoes the next action on the undo history. - void Redo() wxOVERRIDE; - - // Choose between collecting actions into the undo - // history and discarding them. - void SetUndoCollection(bool collectUndo); - - // Select all the text in the document. - void SelectAll() wxOVERRIDE; - - // Remember the current position in the undo history as the position - // at which the document was saved. - void SetSavePoint(); - - // Retrieve a buffer of cells. - wxMemoryBuffer GetStyledText(int startPos, int endPos); - - // Are there any redoable actions in the undo history? - bool CanRedo() const wxOVERRIDE; - - // Retrieve the line number at which a particular marker is located. - int MarkerLineFromHandle(int handle); - - // Delete a marker. - void MarkerDeleteHandle(int handle); - - // Is undo history being collected? - bool GetUndoCollection() const; - - // Are white space characters currently visible? - // Returns one of SCWS_* constants. - int GetViewWhiteSpace() const; - - // Make white space characters invisible, always visible or visible outside indentation. - void SetViewWhiteSpace(int viewWS); - - // Find the position from a point within the window. - int PositionFromPoint(wxPoint pt) const; - - // Find the position from a point within the window but return - // INVALID_POSITION if not close to text. - int PositionFromPointClose(int x, int y); - - // Set caret to start of a line and ensure it is visible. - void GotoLine(int line); - - // Set caret to a position and ensure it is visible. - void GotoPos(int pos); - - // Set the selection anchor to a position. The anchor is the opposite - // end of the selection from the caret. - void SetAnchor(int posAnchor); - - // Retrieve the text of the line containing the caret. - // Returns the index of the caret on the line. - // Result is NUL-terminated. - #ifdef SWIG - wxString GetCurLine(int* OUTPUT); -#else - wxString GetCurLine(int* linePos=NULL); -#endif - - // Retrieve the position of the last correctly styled character. - int GetEndStyled() const; - - // Convert all line endings in the document to one mode. - void ConvertEOLs(int eolMode); - - // Retrieve the current end of line mode - one of CRLF, CR, or LF. - int GetEOLMode() const; - - // Set the current end of line mode. - void SetEOLMode(int eolMode); - - // Set the current styling position to pos and the styling mask to mask. - // The styling mask can be used to protect some bits in each styling byte from modification. - void StartStyling(int pos, int mask); - - // Change style from current styling position for length characters to a style - // and move the current styling position to after this newly styled segment. - void SetStyling(int length, int style); - - // Is drawing done first into a buffer or direct to the screen? - bool GetBufferedDraw() const; - - // If drawing is buffered then each line of text is drawn into a bitmap buffer - // before drawing it to the screen to avoid flicker. - void SetBufferedDraw(bool buffered); - - // Change the visible size of a tab to be a multiple of the width of a space character. - void SetTabWidth(int tabWidth); - - // Retrieve the visible size of a tab. - int GetTabWidth() const; - - // Clear explicit tabstops on a line. - void ClearTabStops(int line); - - // Add an explicit tab stop for a line. - void AddTabStop(int line, int x); - - // Find the next explicit tab stop position on a line after a position. - int GetNextTabStop(int line, int x); - - // Set the code page used to interpret the bytes of the document as characters. - void SetCodePage(int codePage); - - // Is the IME displayed in a winow or inline? - int GetIMEInteraction() const; - - // Choose to display the the IME in a winow or inline. - void SetIMEInteraction(int imeInteraction); - - // Set the symbol used for a particular marker number, - // and optionally the fore and background colours. - void MarkerDefine(int markerNumber, int markerSymbol, - const wxColour& foreground = wxNullColour, - const wxColour& background = wxNullColour); - - // Set the foreground colour used for a particular marker number. - void MarkerSetForeground(int markerNumber, const wxColour& fore); - - // Set the background colour used for a particular marker number. - void MarkerSetBackground(int markerNumber, const wxColour& back); - - // Set the background colour used for a particular marker number when its folding block is selected. - void MarkerSetBackgroundSelected(int markerNumber, const wxColour& back); - - // Enable/disable highlight for current folding bloc (smallest one that contains the caret) - void MarkerEnableHighlight(bool enabled); - - // Add a marker to a line, returning an ID which can be used to find or delete the marker. - int MarkerAdd(int line, int markerNumber); - - // Delete a marker from a line. - void MarkerDelete(int line, int markerNumber); - - // Delete all markers with a particular number from all lines. - void MarkerDeleteAll(int markerNumber); - - // Get a bit mask of all the markers set on a line. - int MarkerGet(int line); - - // Find the next line at or after lineStart that includes a marker in mask. - // Return -1 when no more lines. - int MarkerNext(int lineStart, int markerMask); - - // Find the previous line before lineStart that includes a marker in mask. - int MarkerPrevious(int lineStart, int markerMask); - - // Define a marker from a bitmap - void MarkerDefineBitmap(int markerNumber, const wxBitmap& bmp); - - // Add a set of markers to a line. - void MarkerAddSet(int line, int set); - - // Set the alpha used for a marker that is drawn in the text area, not the margin. - void MarkerSetAlpha(int markerNumber, int alpha); - - // Set a margin to be either numeric or symbolic. - void SetMarginType(int margin, int marginType); - - // Retrieve the type of a margin. - int GetMarginType(int margin) const; - - // Set the width of a margin to a width expressed in pixels. - void SetMarginWidth(int margin, int pixelWidth); - - // Retrieve the width of a margin in pixels. - int GetMarginWidth(int margin) const; - - // Set a mask that determines which markers are displayed in a margin. - void SetMarginMask(int margin, int mask); - - // Retrieve the marker mask of a margin. - int GetMarginMask(int margin) const; - - // Make a margin sensitive or insensitive to mouse clicks. - void SetMarginSensitive(int margin, bool sensitive); - - // Retrieve the mouse click sensitivity of a margin. - bool GetMarginSensitive(int margin) const; - - // Set the cursor shown when the mouse is inside a margin. - void SetMarginCursor(int margin, int cursor); - - // Retrieve the cursor shown in a margin. - int GetMarginCursor(int margin) const; - - // Clear all the styles and make equivalent to the global default style. - void StyleClearAll(); - - // Set the foreground colour of a style. - void StyleSetForeground(int style, const wxColour& fore); - - // Set the background colour of a style. - void StyleSetBackground(int style, const wxColour& back); - - // Set a style to be bold or not. - void StyleSetBold(int style, bool bold); - - // Set a style to be italic or not. - void StyleSetItalic(int style, bool italic); - - // Set the size of characters of a style. - void StyleSetSize(int style, int sizePoints); - - // Set the font of a style. - void StyleSetFaceName(int style, const wxString& fontName); - - // Set a style to have its end of line filled or not. - void StyleSetEOLFilled(int style, bool filled); - - // Reset the default style to its state at startup - void StyleResetDefault(); - - // Set a style to be underlined or not. - void StyleSetUnderline(int style, bool underline); - - // Get the foreground colour of a style. - wxColour StyleGetForeground(int style) const; - - // Get the background colour of a style. - wxColour StyleGetBackground(int style) const; - - // Get is a style bold or not. - bool StyleGetBold(int style) const; - - // Get is a style italic or not. - bool StyleGetItalic(int style) const; - - // Get the size of characters of a style. - int StyleGetSize(int style) const; - - // Get the font facename of a style - wxString StyleGetFaceName(int style); - - // Get is a style to have its end of line filled or not. - bool StyleGetEOLFilled(int style) const; - - // Get is a style underlined or not. - bool StyleGetUnderline(int style) const; - - // Get is a style mixed case, or to force upper or lower case. - int StyleGetCase(int style) const; - - // Get the character get of the font in a style. - int StyleGetCharacterSet(int style) const; - - // Get is a style visible or not. - bool StyleGetVisible(int style) const; - - // Get is a style changeable or not (read only). - // Experimental feature, currently buggy. - bool StyleGetChangeable(int style) const; - - // Get is a style a hotspot or not. - bool StyleGetHotSpot(int style) const; - - // Set a style to be mixed case, or to force upper or lower case. - void StyleSetCase(int style, int caseForce); - - // Set the size of characters of a style. Size is in points multiplied by 100. - void StyleSetSizeFractional(int style, int caseForce); - - // Get the size of characters of a style in points multiplied by 100 - int StyleGetSizeFractional(int style) const; - - // Set the weight of characters of a style. - void StyleSetWeight(int style, int weight); - - // Get the weight of characters of a style. - int StyleGetWeight(int style) const; - - // Set a style to be a hotspot or not. - void StyleSetHotSpot(int style, bool hotspot); - - // Set the foreground colour of the main and additional selections and whether to use this setting. - void SetSelForeground(bool useSetting, const wxColour& fore); - - // Set the background colour of the main and additional selections and whether to use this setting. - void SetSelBackground(bool useSetting, const wxColour& back); - - // Get the alpha of the selection. - int GetSelAlpha() const; - - // Set the alpha of the selection. - void SetSelAlpha(int alpha); - - // Is the selection end of line filled? - bool GetSelEOLFilled() const; - - // Set the selection to have its end of line filled or not. - void SetSelEOLFilled(bool filled); - - // Set the foreground colour of the caret. - void SetCaretForeground(const wxColour& fore); - - // When key+modifier combination km is pressed perform msg. - void CmdKeyAssign(int key, int modifiers, int cmd); - - // When key+modifier combination km is pressed do nothing. - void CmdKeyClear(int key, int modifiers); - - // Drop all key mappings. - void CmdKeyClearAll(); - - // Set the styles for a segment of the document. - void SetStyleBytes(int length, char* styleBytes); - - // Set a style to be visible or not. - void StyleSetVisible(int style, bool visible); - - // Get the time in milliseconds that the caret is on and off. - int GetCaretPeriod() const; - - // Get the time in milliseconds that the caret is on and off. 0 = steady on. - void SetCaretPeriod(int periodMilliseconds); - - // Set the set of characters making up words for when moving or selecting by word. - // First sets defaults like SetCharsDefault. - void SetWordChars(const wxString& characters); - - // Get the set of characters making up words for when moving or selecting by word. - wxString GetWordChars() const; - - // Start a sequence of actions that is undone and redone as a unit. - // May be nested. - void BeginUndoAction(); - - // End a sequence of actions that is undone and redone as a unit. - void EndUndoAction(); - - // Set an indicator to plain, squiggle or TT. - void IndicatorSetStyle(int indic, int style); - - // Retrieve the style of an indicator. - int IndicatorGetStyle(int indic) const; - - // Set the foreground colour of an indicator. - void IndicatorSetForeground(int indic, const wxColour& fore); - - // Retrieve the foreground colour of an indicator. - wxColour IndicatorGetForeground(int indic) const; - - // Set an indicator to draw under text or over(default). - void IndicatorSetUnder(int indic, bool under); - - // Retrieve whether indicator drawn under or over text. - bool IndicatorGetUnder(int indic) const; - - // Set a hover indicator to plain, squiggle or TT. - void IndicatorSetHoverStyle(int indic, int style); - - // Retrieve the hover style of an indicator. - int IndicatorGetHoverStyle(int indic) const; - - // Set the foreground hover colour of an indicator. - void IndicatorSetHoverForeground(int indic, const wxColour& fore); - - // Retrieve the foreground hover colour of an indicator. - wxColour IndicatorGetHoverForeground(int indic) const; - - // Set the attributes of an indicator. - void IndicatorSetFlags(int indic, int flags); - - // Retrieve the attributes of an indicator. - int IndicatorGetFlags(int indic) const; - - // Set the foreground colour of all whitespace and whether to use this setting. - void SetWhitespaceForeground(bool useSetting, const wxColour& fore); - - // Set the background colour of all whitespace and whether to use this setting. - void SetWhitespaceBackground(bool useSetting, const wxColour& back); - - // Set the size of the dots used to mark space characters. - void SetWhitespaceSize(int size); - - // Get the size of the dots used to mark space characters. - int GetWhitespaceSize() const; - - // Divide each styling byte into lexical class bits (default: 5) and indicator - // bits (default: 3). If a lexer requires more than 32 lexical states, then this - // is used to expand the possible states. - void SetStyleBits(int bits); - - // Retrieve number of bits in style bytes used to hold the lexical state. - int GetStyleBits() const; - - // Used to hold extra styling information for each line. - void SetLineState(int line, int state); - - // Retrieve the extra styling information for a line. - int GetLineState(int line) const; - - // Retrieve the last line number that has line state. - int GetMaxLineState() const; - - // Is the background of the line containing the caret in a different colour? - bool GetCaretLineVisible() const; - - // Display the background of the line containing the caret in a different colour. - void SetCaretLineVisible(bool show); - - // Get the colour of the background of the line containing the caret. - wxColour GetCaretLineBackground() const; - - // Set the colour of the background of the line containing the caret. - void SetCaretLineBackground(const wxColour& back); - - // Set a style to be changeable or not (read only). - // Experimental feature, currently buggy. - void StyleSetChangeable(int style, bool changeable); - - // Display a auto-completion list. - // The lenEntered parameter indicates how many characters before - // the caret should be used to provide context. - void AutoCompShow(int lenEntered, const wxString& itemList); - - // Remove the auto-completion list from the screen. - void AutoCompCancel(); - - // Is there an auto-completion list visible? - bool AutoCompActive(); - - // Retrieve the position of the caret when the auto-completion list was displayed. - int AutoCompPosStart(); - - // User has selected an item so remove the list and insert the selection. - void AutoCompComplete(); - - // Define a set of character that when typed cancel the auto-completion list. - void AutoCompStops(const wxString& characterSet); - - // Change the separator character in the string setting up an auto-completion list. - // Default is space but can be changed if items contain space. - void AutoCompSetSeparator(int separatorCharacter); - - // Retrieve the auto-completion list separator character. - int AutoCompGetSeparator() const; - - // Select the item in the auto-completion list that starts with a string. - void AutoCompSelect(const wxString& text); - - // Should the auto-completion list be cancelled if the user backspaces to a - // position before where the box was created. - void AutoCompSetCancelAtStart(bool cancel); - - // Retrieve whether auto-completion cancelled by backspacing before start. - bool AutoCompGetCancelAtStart() const; - - // Define a set of characters that when typed will cause the autocompletion to - // choose the selected item. - void AutoCompSetFillUps(const wxString& characterSet); - - // Should a single item auto-completion list automatically choose the item. - void AutoCompSetChooseSingle(bool chooseSingle); - - // Retrieve whether a single item auto-completion list automatically choose the item. - bool AutoCompGetChooseSingle() const; - - // Set whether case is significant when performing auto-completion searches. - void AutoCompSetIgnoreCase(bool ignoreCase); - - // Retrieve state of ignore case flag. - bool AutoCompGetIgnoreCase() const; - - // Display a list of strings and send notification when user chooses one. - void UserListShow(int listType, const wxString& itemList); - - // Set whether or not autocompletion is hidden automatically when nothing matches. - void AutoCompSetAutoHide(bool autoHide); - - // Retrieve whether or not autocompletion is hidden automatically when nothing matches. - bool AutoCompGetAutoHide() const; - - // Set whether or not autocompletion deletes any word characters - // after the inserted text upon completion. - void AutoCompSetDropRestOfWord(bool dropRestOfWord); - - // Retrieve whether or not autocompletion deletes any word characters - // after the inserted text upon completion. - bool AutoCompGetDropRestOfWord() const; - - // Register an image for use in autocompletion lists. - void RegisterImage(int type, const wxBitmap& bmp); - - // Clear all the registered images. - void ClearRegisteredImages(); - - // Retrieve the auto-completion list type-separator character. - int AutoCompGetTypeSeparator() const; - - // Change the type-separator character in the string setting up an auto-completion list. - // Default is '?' but can be changed if items contain '?'. - void AutoCompSetTypeSeparator(int separatorCharacter); - - // Set the maximum width, in characters, of auto-completion and user lists. - // Set to 0 to autosize to fit longest item, which is the default. - void AutoCompSetMaxWidth(int characterCount); - - // Get the maximum width, in characters, of auto-completion and user lists. - int AutoCompGetMaxWidth() const; - - // Set the maximum height, in rows, of auto-completion and user lists. - // The default is 5 rows. - void AutoCompSetMaxHeight(int rowCount); - - // Set the maximum height, in rows, of auto-completion and user lists. - int AutoCompGetMaxHeight() const; - - // Set the number of spaces used for one level of indentation. - void SetIndent(int indentSize); - - // Retrieve indentation size. - int GetIndent() const; - - // Indentation will only use space characters if useTabs is false, otherwise - // it will use a combination of tabs and spaces. - void SetUseTabs(bool useTabs); - - // Retrieve whether tabs will be used in indentation. - bool GetUseTabs() const; - - // Change the indentation of a line to a number of columns. - void SetLineIndentation(int line, int indentSize); - - // Retrieve the number of columns that a line is indented. - int GetLineIndentation(int line) const; - - // Retrieve the position before the first non indentation character on a line. - int GetLineIndentPosition(int line) const; - - // Retrieve the column number of a position, taking tab width into account. - int GetColumn(int pos) const; - - // Count characters between two positions. - int CountCharacters(int startPos, int endPos); - - // Show or hide the horizontal scroll bar. - void SetUseHorizontalScrollBar(bool show); - - // Is the horizontal scroll bar visible? - bool GetUseHorizontalScrollBar() const; - - // Show or hide indentation guides. - void SetIndentationGuides(int indentView); - - // Are the indentation guides visible? - int GetIndentationGuides() const; - - // Set the highlighted indentation guide column. - // 0 = no highlighted guide. - void SetHighlightGuide(int column); - - // Get the highlighted indentation guide column. - int GetHighlightGuide() const; - - // Get the position after the last visible characters on a line. - int GetLineEndPosition(int line) const; - - // Get the code page used to interpret the bytes of the document as characters. - int GetCodePage() const; - - // Get the foreground colour of the caret. - wxColour GetCaretForeground() const; - - // In read-only mode? - bool GetReadOnly() const; - - // Sets the position of the caret. - void SetCurrentPos(int pos); - - // Sets the position that starts the selection - this becomes the anchor. - void SetSelectionStart(int pos); - - // Returns the position at the start of the selection. - int GetSelectionStart() const; - - // Sets the position that ends the selection - this becomes the currentPosition. - void SetSelectionEnd(int pos); - - // Returns the position at the end of the selection. - int GetSelectionEnd() const; - - // Set caret to a position, while removing any existing selection. - void SetEmptySelection(int pos); - - // Sets the print magnification added to the point size of each style for printing. - void SetPrintMagnification(int magnification); - - // Returns the print magnification. - int GetPrintMagnification() const; - - // Modify colours when printing for clearer printed text. - void SetPrintColourMode(int mode); - - // Returns the print colour mode. - int GetPrintColourMode() const; - - // Find some text in the document. - int FindText(int minPos, int maxPos, const wxString& text, int flags=0); - - // On Windows, will draw the document into a display context such as a printer. - int FormatRange(bool doDraw, - int startPos, - int endPos, - wxDC* draw, - wxDC* target, - wxRect renderRect, - wxRect pageRect); - - // Retrieve the display line at the top of the display. - int GetFirstVisibleLine() const; - - // Retrieve the contents of a line. - wxString GetLine(int line) const; - - // Returns the number of lines in the document. There is always at least one. - int GetLineCount() const; - - // Sets the size in pixels of the left margin. - void SetMarginLeft(int pixelWidth); - - // Returns the size in pixels of the left margin. - int GetMarginLeft() const; - - // Sets the size in pixels of the right margin. - void SetMarginRight(int pixelWidth); - - // Returns the size in pixels of the right margin. - int GetMarginRight() const; - - // Is the document different from when it was last saved? - bool GetModify() const; - - // Retrieve the selected text. - wxString GetSelectedText(); - - // Retrieve a range of text. - wxString GetTextRange(int startPos, int endPos); - - // Draw the selection in normal style or with selection highlighted. - void HideSelection(bool normal); - - // Retrieve the line containing a position. - int LineFromPosition(int pos) const; - - // Retrieve the position at the start of a line. - int PositionFromLine(int line) const; - - // Scroll horizontally and vertically. - void LineScroll(int columns, int lines); - - // Ensure the caret is visible. - void EnsureCaretVisible(); - - // Scroll the argument positions and the range between them into view giving - // priority to the primary position then the secondary position. - // This may be used to make a search match visible. - void ScrollRange(int secondary, int primary); - - // Replace the selected text with the argument text. - void ReplaceSelection(const wxString& text); - - // Set to read only or read write. - void SetReadOnly(bool readOnly); - - // Will a paste succeed? - bool CanPaste() const wxOVERRIDE; - - // Are there any undoable actions in the undo history? - bool CanUndo() const wxOVERRIDE; - - // Delete the undo history. - void EmptyUndoBuffer(); - - // Undo one action in the undo history. - void Undo() wxOVERRIDE; - - // Cut the selection to the clipboard. - void Cut() wxOVERRIDE; - - // Copy the selection to the clipboard. - void Copy() wxOVERRIDE; - - // Paste the contents of the clipboard into the document replacing the selection. - void Paste() wxOVERRIDE; - - // Clear the selection. - void Clear() wxOVERRIDE; - - // Replace the contents of the document with the argument text. - void SetText(const wxString& text); - - // Retrieve all the text in the document. - wxString GetText() const; - - // Retrieve the number of characters in the document. - int GetTextLength() const; - - // Set to overtype (true) or insert mode. - void SetOvertype(bool overtype); - - // Returns true if overtype mode is active otherwise false is returned. - bool GetOvertype() const; - - // Set the width of the insert mode caret. - void SetCaretWidth(int pixelWidth); - - // Returns the width of the insert mode caret. - int GetCaretWidth() const; - - // Sets the position that starts the target which is used for updating the - // document without affecting the scroll position. - void SetTargetStart(int pos); - - // Get the position that starts the target. - int GetTargetStart() const; - - // Sets the position that ends the target which is used for updating the - // document without affecting the scroll position. - void SetTargetEnd(int pos); - - // Get the position that ends the target. - int GetTargetEnd() const; - - // Sets both the start and end of the target in one call. - void SetTargetRange(int start, int end); - - // Retrieve the text in the target. - wxString GetTargetText() const; - - // Replace the target text with the argument text. - // Text is counted so it can contain NULs. - // Returns the length of the replacement text. - int ReplaceTarget(const wxString& text); - - // Replace the target text with the argument text after \\d processing. - // Text is counted so it can contain NULs. - // Looks for \\d where d is between 1 and 9 and replaces these with the strings - // matched in the last search operation which were surrounded by \( and \). - // Returns the length of the replacement text including any change - // caused by processing the \\d patterns. - int ReplaceTargetRE(const wxString& text); - - // Search for a counted string in the target and set the target to the found - // range. Text is counted so it can contain NULs. - // Returns length of range or -1 for failure in which case target is not moved. - int SearchInTarget(const wxString& text); - - // Set the search flags used by SearchInTarget. - void SetSearchFlags(int flags); - - // Get the search flags used by SearchInTarget. - int GetSearchFlags() const; - - // Show a call tip containing a definition near position pos. - void CallTipShow(int pos, const wxString& definition); - - // Remove the call tip from the screen. - void CallTipCancel(); - - // Is there an active call tip? - bool CallTipActive(); - - // Retrieve the position where the caret was before displaying the call tip. - int CallTipPosAtStart(); - - // Set the start position in order to change when backspacing removes the calltip. - void CallTipSetPosAtStart(int posStart); - - // Highlight a segment of the definition. - void CallTipSetHighlight(int start, int end); - - // Set the background colour for the call tip. - void CallTipSetBackground(const wxColour& back); - - // Set the foreground colour for the call tip. - void CallTipSetForeground(const wxColour& fore); - - // Set the foreground colour for the highlighted part of the call tip. - void CallTipSetForegroundHighlight(const wxColour& fore); - - // Enable use of STYLE_CALLTIP and set call tip tab size in pixels. - void CallTipUseStyle(int tabSize); - - // Set position of calltip, above or below text. - void CallTipSetPosition(bool above); - - // Find the display line of a document line taking hidden lines into account. - int VisibleFromDocLine(int line); - - // Find the document line of a display line taking hidden lines into account. - int DocLineFromVisible(int lineDisplay); - - // The number of display lines needed to wrap a document line - int WrapCount(int line); - - // Set the fold level of a line. - // This encodes an integer level along with flags indicating whether the - // line is a header and whether it is effectively white space. - void SetFoldLevel(int line, int level); - - // Retrieve the fold level of a line. - int GetFoldLevel(int line) const; - - // Find the last child line of a header line. - int GetLastChild(int line, int level) const; - - // Find the parent line of a child line. - int GetFoldParent(int line) const; - - // Make a range of lines visible. - void ShowLines(int lineStart, int lineEnd); - - // Make a range of lines invisible. - void HideLines(int lineStart, int lineEnd); - - // Is a line visible? - bool GetLineVisible(int line) const; - - // Are all lines visible? - bool GetAllLinesVisible() const; - - // Show the children of a header line. - void SetFoldExpanded(int line, bool expanded); - - // Is a header line expanded? - bool GetFoldExpanded(int line) const; - - // Switch a header line between expanded and contracted. - void ToggleFold(int line); - - // Expand or contract a fold header. - void FoldLine(int line, int action); - - // Expand or contract a fold header and its children. - void FoldChildren(int line, int action); - - // Expand a fold header and all children. Use the level argument instead of the line's current level. - void ExpandChildren(int line, int level); - - // Expand or contract all fold headers. - void FoldAll(int action); - - // Ensure a particular line is visible by expanding any header line hiding it. - void EnsureVisible(int line); - - // Set automatic folding behaviours. - void SetAutomaticFold(int automaticFold); - - // Get automatic folding behaviours. - int GetAutomaticFold() const; - - // Set some style options for folding. - void SetFoldFlags(int flags); - - // Ensure a particular line is visible by expanding any header line hiding it. - // Use the currently set visibility policy to determine which range to display. - void EnsureVisibleEnforcePolicy(int line); - - // Sets whether a tab pressed when caret is within indentation indents. - void SetTabIndents(bool tabIndents); - - // Does a tab pressed when caret is within indentation indent? - bool GetTabIndents() const; - - // Sets whether a backspace pressed when caret is within indentation unindents. - void SetBackSpaceUnIndents(bool bsUnIndents); - - // Does a backspace pressed when caret is within indentation unindent? - bool GetBackSpaceUnIndents() const; - - // Sets the time the mouse must sit still to generate a mouse dwell event. - void SetMouseDwellTime(int periodMilliseconds); - - // Retrieve the time the mouse must sit still to generate a mouse dwell event. - int GetMouseDwellTime() const; - - // Get position of start of word. - int WordStartPosition(int pos, bool onlyWordCharacters); - - // Get position of end of word. - int WordEndPosition(int pos, bool onlyWordCharacters); - - // Sets whether text is word wrapped. - void SetWrapMode(int mode); - - // Retrieve whether text is word wrapped. - int GetWrapMode() const; - - // Set the display mode of visual flags for wrapped lines. - void SetWrapVisualFlags(int wrapVisualFlags); - - // Retrive the display mode of visual flags for wrapped lines. - int GetWrapVisualFlags() const; - - // Set the location of visual flags for wrapped lines. - void SetWrapVisualFlagsLocation(int wrapVisualFlagsLocation); - - // Retrive the location of visual flags for wrapped lines. - int GetWrapVisualFlagsLocation() const; - - // Set the start indent for wrapped lines. - void SetWrapStartIndent(int indent); - - // Retrive the start indent for wrapped lines. - int GetWrapStartIndent() const; - - // Sets how wrapped sublines are placed. Default is fixed. - void SetWrapIndentMode(int mode); - - // Retrieve how wrapped sublines are placed. Default is fixed. - int GetWrapIndentMode() const; - - // Sets the degree of caching of layout information. - void SetLayoutCache(int mode); - - // Retrieve the degree of caching of layout information. - int GetLayoutCache() const; - - // Sets the document width assumed for scrolling. - void SetScrollWidth(int pixelWidth); - - // Retrieve the document width assumed for scrolling. - int GetScrollWidth() const; - - // Sets whether the maximum width line displayed is used to set scroll width. - void SetScrollWidthTracking(bool tracking); - - // Retrieve whether the scroll width tracks wide lines. - bool GetScrollWidthTracking() const; - - // Measure the pixel width of some text in a particular style. - // NUL terminated text argument. - // Does not handle tab or control characters. - int TextWidth(int style, const wxString& text); - - // Sets the scroll range so that maximum scroll position has - // the last line at the bottom of the view (default). - // Setting this to false allows scrolling one page below the last line. - void SetEndAtLastLine(bool endAtLastLine); - - // Retrieve whether the maximum scroll position has the last - // line at the bottom of the view. - bool GetEndAtLastLine() const; - - // Retrieve the height of a particular line of text in pixels. - int TextHeight(int line); - - // Show or hide the vertical scroll bar. - void SetUseVerticalScrollBar(bool show); - - // Is the vertical scroll bar visible? - bool GetUseVerticalScrollBar() const; - - // Append a string to the end of the document without changing the selection. - void AppendText(const wxString& text) wxOVERRIDE; - - // Is drawing done in two phases with backgrounds drawn before foregrounds? - bool GetTwoPhaseDraw() const; - - // In twoPhaseDraw mode, drawing is performed in two phases, first the background - // and then the foreground. This avoids chopping off characters that overlap the next run. - void SetTwoPhaseDraw(bool twoPhase); - - // How many phases is drawing done in? - int GetPhasesDraw() const; - - // In one phase draw, text is drawn in a series of rectangular blocks with no overlap. - // In two phase draw, text is drawn in a series of lines allowing runs to overlap horizontally. - // In multiple phase draw, each element is drawn over the whole drawing area, allowing text - // to overlap from one line to the next. - void SetPhasesDraw(int phases); - - // Scroll so that a display line is at the top of the display. - void SetFirstVisibleLine(int lineDisplay); - - // Change the effect of pasting when there are multiple selections. - void SetMultiPaste(int multiPaste); - - // Retrieve the effect of pasting when there are multiple selections. - int GetMultiPaste() const; - - // Retrieve the value of a tag from a regular expression search. - // Result is NUL-terminated. - wxString GetTag(int tagNumber) const; - - // Make the target range start and end be the same as the selection range start and end. - void TargetFromSelection(); - - // Join the lines in the target. - void LinesJoin(); - - // Split the lines in the target into lines that are less wide than pixelWidth - // where possible. - void LinesSplit(int pixelWidth); - - // Set the colours used as a chequerboard pattern in the fold margin - void SetFoldMarginColour(bool useSetting, const wxColour& back); - void SetFoldMarginHiColour(bool useSetting, const wxColour& fore); - - // Move caret down one line. - void LineDown(); - - // Move caret down one line extending selection to new caret position. - void LineDownExtend(); - - // Move caret up one line. - void LineUp(); - - // Move caret up one line extending selection to new caret position. - void LineUpExtend(); - - // Move caret left one character. - void CharLeft(); - - // Move caret left one character extending selection to new caret position. - void CharLeftExtend(); - - // Move caret right one character. - void CharRight(); - - // Move caret right one character extending selection to new caret position. - void CharRightExtend(); - - // Move caret left one word. - void WordLeft(); - - // Move caret left one word extending selection to new caret position. - void WordLeftExtend(); - - // Move caret right one word. - void WordRight(); - - // Move caret right one word extending selection to new caret position. - void WordRightExtend(); - - // Move caret to first position on line. - void Home(); - - // Move caret to first position on line extending selection to new caret position. - void HomeExtend(); - - // Move caret to last position on line. - void LineEnd(); - - // Move caret to last position on line extending selection to new caret position. - void LineEndExtend(); - - // Move caret to first position in document. - void DocumentStart(); - - // Move caret to first position in document extending selection to new caret position. - void DocumentStartExtend(); - - // Move caret to last position in document. - void DocumentEnd(); - - // Move caret to last position in document extending selection to new caret position. - void DocumentEndExtend(); - - // Move caret one page up. - void PageUp(); - - // Move caret one page up extending selection to new caret position. - void PageUpExtend(); - - // Move caret one page down. - void PageDown(); - - // Move caret one page down extending selection to new caret position. - void PageDownExtend(); - - // Switch from insert to overtype mode or the reverse. - void EditToggleOvertype(); - - // Cancel any modes such as call tip or auto-completion list display. - void Cancel(); - - // Delete the selection or if no selection, the character before the caret. - void DeleteBack(); - - // If selection is empty or all on one line replace the selection with a tab character. - // If more than one line selected, indent the lines. - void Tab(); - - // Dedent the selected lines. - void BackTab(); - - // Insert a new line, may use a CRLF, CR or LF depending on EOL mode. - void NewLine(); - - // Insert a Form Feed character. - void FormFeed(); - - // Move caret to before first visible character on line. - // If already there move to first character on line. - void VCHome(); - - // Like VCHome but extending selection to new caret position. - void VCHomeExtend(); - - // Magnify the displayed text by increasing the sizes by 1 point. - void ZoomIn(); - - // Make the displayed text smaller by decreasing the sizes by 1 point. - void ZoomOut(); - - // Delete the word to the left of the caret. - void DelWordLeft(); - - // Delete the word to the right of the caret. - void DelWordRight(); - - // Delete the word to the right of the caret, but not the trailing non-word characters. - void DelWordRightEnd(); - - // Cut the line containing the caret. - void LineCut(); - - // Delete the line containing the caret. - void LineDelete(); - - // Switch the current line with the previous. - void LineTranspose(); - - // Duplicate the current line. - void LineDuplicate(); - - // Transform the selection to lower case. - void LowerCase(); - - // Transform the selection to upper case. - void UpperCase(); - - // Scroll the document down, keeping the caret visible. - void LineScrollDown(); - - // Scroll the document up, keeping the caret visible. - void LineScrollUp(); - - // Delete the selection or if no selection, the character before the caret. - // Will not delete the character before at the start of a line. - void DeleteBackNotLine(); - - // Move caret to first position on display line. - void HomeDisplay(); - - // Move caret to first position on display line extending selection to - // new caret position. - void HomeDisplayExtend(); - - // Move caret to last position on display line. - void LineEndDisplay(); - - // Move caret to last position on display line extending selection to new - // caret position. - void LineEndDisplayExtend(); - - // These are like their namesakes Home(Extend)?, LineEnd(Extend)?, VCHome(Extend)? - // except they behave differently when word-wrap is enabled: - // They go first to the start / end of the display line, like (Home|LineEnd)Display - // The difference is that, the cursor is already at the point, it goes on to the start - // or end of the document line, as appropriate for (Home|LineEnd|VCHome)(Extend)?. - void HomeWrap(); - void HomeWrapExtend(); - void LineEndWrap(); - void LineEndWrapExtend(); - void VCHomeWrap(); - void VCHomeWrapExtend(); - - // Copy the line containing the caret. - void LineCopy(); - - // Move the caret inside current view if it's not there already. - void MoveCaretInsideView(); - - // How many characters are on a line, including end of line characters? - int LineLength(int line) const; - - // Highlight the characters at two positions. - void BraceHighlight(int pos1, int pos2); - - // Use specified indicator to highlight matching braces instead of changing their style. - void BraceHighlightIndicator(bool useBraceHighlightIndicator, int indicator); - - // Highlight the character at a position indicating there is no matching brace. - void BraceBadLight(int pos); - - // Use specified indicator to highlight non matching brace instead of changing its style. - void BraceBadLightIndicator(bool useBraceBadLightIndicator, int indicator); - - // Find the position of a matching brace or INVALID_POSITION if no match. - int BraceMatch(int pos); - - // Are the end of line characters visible? - bool GetViewEOL() const; - - // Make the end of line characters visible or invisible. - void SetViewEOL(bool visible); - - // Retrieve a pointer to the document object. - void* GetDocPointer(); - - // Change the document object used. - void SetDocPointer(void* docPointer); - - // Set which document modification events are sent to the container. - void SetModEventMask(int mask); - - // Retrieve the column number which text should be kept within. - int GetEdgeColumn() const; - - // Set the column number of the edge. - // If text goes past the edge then it is highlighted. - void SetEdgeColumn(int column); - - // Retrieve the edge highlight mode. - int GetEdgeMode() const; - - // The edge may be displayed by a line (EDGE_LINE) or by highlighting text that - // goes beyond it (EDGE_BACKGROUND) or not displayed at all (EDGE_NONE). - void SetEdgeMode(int mode); - - // Retrieve the colour used in edge indication. - wxColour GetEdgeColour() const; - - // Change the colour used in edge indication. - void SetEdgeColour(const wxColour& edgeColour); - - // Sets the current caret position to be the search anchor. - void SearchAnchor(); - - // Find some text starting at the search anchor. - // Does not ensure the selection is visible. - int SearchNext(int flags, const wxString& text); - - // Find some text starting at the search anchor and moving backwards. - // Does not ensure the selection is visible. - int SearchPrev(int flags, const wxString& text); - - // Retrieves the number of lines completely visible. - int LinesOnScreen() const; - - // Set whether a pop up menu is displayed automatically when the user presses - // the wrong mouse button. - void UsePopUp(bool allowPopUp); - - // Is the selection rectangular? The alternative is the more common stream selection. - bool SelectionIsRectangle() const; - - // Set the zoom level. This number of points is added to the size of all fonts. - // It may be positive to magnify or negative to reduce. - void SetZoom(int zoom); - - // Retrieve the zoom level. - int GetZoom() const; - - // Create a new document object. - // Starts with reference count of 1 and not selected into editor. - void* CreateDocument(); - - // Extend life of document. - void AddRefDocument(void* docPointer); - - // Release a reference to the document, deleting document if it fades to black. - void ReleaseDocument(void* docPointer); - - // Get which document modification events are sent to the container. - int GetModEventMask() const; - - // Change internal focus flag. - void SetSTCFocus(bool focus); - - // Get internal focus flag. - bool GetSTCFocus() const; - - // Change error status - 0 = OK. - void SetStatus(int statusCode); - - // Get error status. - int GetStatus() const; - - // Set whether the mouse is captured when its button is pressed. - void SetMouseDownCaptures(bool captures); - - // Get whether mouse gets captured. - bool GetMouseDownCaptures() const; - - // Sets the cursor to one of the SC_CURSOR* values. - void SetSTCCursor(int cursorType); - - // Get cursor type. - int GetSTCCursor() const; - - // Change the way control characters are displayed: - // If symbol is < 32, keep the drawn way, else, use the given character. - void SetControlCharSymbol(int symbol); - - // Get the way control characters are displayed. - int GetControlCharSymbol() const; - - // Move to the previous change in capitalisation. - void WordPartLeft(); - - // Move to the previous change in capitalisation extending selection - // to new caret position. - void WordPartLeftExtend(); - - // Move to the change next in capitalisation. - void WordPartRight(); - - // Move to the next change in capitalisation extending selection - // to new caret position. - void WordPartRightExtend(); - - // Set the way the display area is determined when a particular line - // is to be moved to by Find, FindNext, GotoLine, etc. - void SetVisiblePolicy(int visiblePolicy, int visibleSlop); - - // Delete back from the current position to the start of the line. - void DelLineLeft(); - - // Delete forwards from the current position to the end of the line. - void DelLineRight(); - - // Get and Set the xOffset (ie, horizontal scroll position). - void SetXOffset(int newOffset); - int GetXOffset() const; - - // Set the last x chosen value to be the caret x position. - void ChooseCaretX(); - - // Set the way the caret is kept visible when going sideways. - // The exclusion zone is given in pixels. - void SetXCaretPolicy(int caretPolicy, int caretSlop); - - // Set the way the line the caret is on is kept visible. - // The exclusion zone is given in lines. - void SetYCaretPolicy(int caretPolicy, int caretSlop); - - // Set printing to line wrapped (SC_WRAP_WORD) or not line wrapped (SC_WRAP_NONE). - void SetPrintWrapMode(int mode); - - // Is printing line wrapped? - int GetPrintWrapMode() const; - - // Set a fore colour for active hotspots. - void SetHotspotActiveForeground(bool useSetting, const wxColour& fore); - - // Get the fore colour for active hotspots. - wxColour GetHotspotActiveForeground() const; - - // Set a back colour for active hotspots. - void SetHotspotActiveBackground(bool useSetting, const wxColour& back); - - // Get the back colour for active hotspots. - wxColour GetHotspotActiveBackground() const; - - // Enable / Disable underlining active hotspots. - void SetHotspotActiveUnderline(bool underline); - - // Get whether underlining for active hotspots. - bool GetHotspotActiveUnderline() const; - - // Limit hotspots to single line so hotspots on two lines don't merge. - void SetHotspotSingleLine(bool singleLine); - - // Get the HotspotSingleLine property - bool GetHotspotSingleLine() const; - - // Move caret between paragraphs (delimited by empty lines). - void ParaDown(); - void ParaDownExtend(); - void ParaUp(); - void ParaUpExtend(); - - // Given a valid document position, return the previous position taking code - // page into account. Returns 0 if passed 0. - int PositionBefore(int pos); - - // Given a valid document position, return the next position taking code - // page into account. Maximum value returned is the last position in the document. - int PositionAfter(int pos); - - // Given a valid document position, return a position that differs in a number - // of characters. Returned value is always between 0 and last position in document. - int PositionRelative(int pos, int relative); - - // Copy a range of text to the clipboard. Positions are clipped into the document. - void CopyRange(int start, int end); - - // Copy argument text to the clipboard. - void CopyText(int length, const wxString& text); - - // Set the selection mode to stream (SC_SEL_STREAM) or rectangular (SC_SEL_RECTANGLE/SC_SEL_THIN) or - // by lines (SC_SEL_LINES). - void SetSelectionMode(int mode); - - // Get the mode of the current selection. - int GetSelectionMode() const; - - // Retrieve the position of the start of the selection at the given line (INVALID_POSITION if no selection on this line). - int GetLineSelStartPosition(int line); - - // Retrieve the position of the end of the selection at the given line (INVALID_POSITION if no selection on this line). - int GetLineSelEndPosition(int line); - - // Move caret down one line, extending rectangular selection to new caret position. - void LineDownRectExtend(); - - // Move caret up one line, extending rectangular selection to new caret position. - void LineUpRectExtend(); - - // Move caret left one character, extending rectangular selection to new caret position. - void CharLeftRectExtend(); - - // Move caret right one character, extending rectangular selection to new caret position. - void CharRightRectExtend(); - - // Move caret to first position on line, extending rectangular selection to new caret position. - void HomeRectExtend(); - - // Move caret to before first visible character on line. - // If already there move to first character on line. - // In either case, extend rectangular selection to new caret position. - void VCHomeRectExtend(); - - // Move caret to last position on line, extending rectangular selection to new caret position. - void LineEndRectExtend(); - - // Move caret one page up, extending rectangular selection to new caret position. - void PageUpRectExtend(); - - // Move caret one page down, extending rectangular selection to new caret position. - void PageDownRectExtend(); - - // Move caret to top of page, or one page up if already at top of page. - void StutteredPageUp(); - - // Move caret to top of page, or one page up if already at top of page, extending selection to new caret position. - void StutteredPageUpExtend(); - - // Move caret to bottom of page, or one page down if already at bottom of page. - void StutteredPageDown(); - - // Move caret to bottom of page, or one page down if already at bottom of page, extending selection to new caret position. - void StutteredPageDownExtend(); - - // Move caret left one word, position cursor at end of word. - void WordLeftEnd(); - - // Move caret left one word, position cursor at end of word, extending selection to new caret position. - void WordLeftEndExtend(); - - // Move caret right one word, position cursor at end of word. - void WordRightEnd(); - - // Move caret right one word, position cursor at end of word, extending selection to new caret position. - void WordRightEndExtend(); - - // Set the set of characters making up whitespace for when moving or selecting by word. - // Should be called after SetWordChars. - void SetWhitespaceChars(const wxString& characters); - - // Get the set of characters making up whitespace for when moving or selecting by word. - wxString GetWhitespaceChars() const; - - // Set the set of characters making up punctuation characters - // Should be called after SetWordChars. - void SetPunctuationChars(const wxString& characters); - - // Get the set of characters making up punctuation characters - wxString GetPunctuationChars() const; - - // Reset the set of characters for whitespace and word characters to the defaults. - void SetCharsDefault(); - - // Get currently selected item position in the auto-completion list - int AutoCompGetCurrent() const; - - // Set auto-completion case insensitive behaviour to either prefer case-sensitive matches or have no preference. - void AutoCompSetCaseInsensitiveBehaviour(int behaviour); - - // Get auto-completion case insensitive behaviour. - int AutoCompGetCaseInsensitiveBehaviour() const; - - // Change the effect of autocompleting when there are multiple selections. - void AutoCompSetMulti(int multi); - - // Retrieve the effect of autocompleting when there are multiple selections.. - int AutoCompGetMulti() const; - - // Set the way autocompletion lists are ordered. - void AutoCompSetOrder(int order); - - // Get the way autocompletion lists are ordered. - int AutoCompGetOrder() const; - - // Enlarge the document to a particular size of text bytes. - void Allocate(int bytes); - - // Find the position of a column on a line taking into account tabs and - // multi-byte characters. If beyond end of line, return line end position. - int FindColumn(int line, int column); - - // Can the caret preferred x position only be changed by explicit movement commands? - int GetCaretSticky() const; - - // Stop the caret preferred x position changing when the user types. - void SetCaretSticky(int useCaretStickyBehaviour); - - // Switch between sticky and non-sticky: meant to be bound to a key. - void ToggleCaretSticky(); - - // Enable/Disable convert-on-paste for line endings - void SetPasteConvertEndings(bool convert); - - // Get convert-on-paste setting - bool GetPasteConvertEndings() const; - - // Duplicate the selection. If selection empty duplicate the line containing the caret. - void SelectionDuplicate(); - - // Set background alpha of the caret line. - void SetCaretLineBackAlpha(int alpha); - - // Get the background alpha of the caret line. - int GetCaretLineBackAlpha() const; - - // Set the style of the caret to be drawn. - void SetCaretStyle(int caretStyle); - - // Returns the current style of the caret. - int GetCaretStyle() const; - - // Set the indicator used for IndicatorFillRange and IndicatorClearRange - void SetIndicatorCurrent(int indicator); - - // Get the current indicator - int GetIndicatorCurrent() const; - - // Set the value used for IndicatorFillRange - void SetIndicatorValue(int value); - - // Get the current indicator value - int GetIndicatorValue() const; - - // Turn a indicator on over a range. - void IndicatorFillRange(int position, int fillLength); - - // Turn a indicator off over a range. - void IndicatorClearRange(int position, int clearLength); - - // Are any indicators present at position? - int IndicatorAllOnFor(int position); - - // What value does a particular indicator have at at a position? - int IndicatorValueAt(int indicator, int position); - - // Where does a particular indicator start? - int IndicatorStart(int indicator, int position); - - // Where does a particular indicator end? - int IndicatorEnd(int indicator, int position); - - // Set number of entries in position cache - void SetPositionCacheSize(int size); - - // How many entries are allocated to the position cache? - int GetPositionCacheSize() const; - - // Copy the selection, if selection empty copy the line with the caret - void CopyAllowLine(); - - // Compact the document buffer and return a read-only pointer to the - // characters in the document. - const char* GetCharacterPointer() const; - - // Return a read-only pointer to a range of characters in the document. - // May move the gap so that the range is contiguous, but will only move up - // to rangeLength bytes. - const char* GetRangePointer(int position, int rangeLength) const; - - // Return a position which, to avoid performance costs, should not be within - // the range of a call to GetRangePointer. - int GetGapPosition() const; - - // Set the alpha fill colour of the given indicator. - void IndicatorSetAlpha(int indicator, int alpha); - - // Get the alpha fill colour of the given indicator. - int IndicatorGetAlpha(int indicator) const; - - // Set the alpha outline colour of the given indicator. - void IndicatorSetOutlineAlpha(int indicator, int alpha); - - // Get the alpha outline colour of the given indicator. - int IndicatorGetOutlineAlpha(int indicator) const; - - // Set extra ascent for each line - void SetExtraAscent(int extraAscent); - - // Get extra ascent for each line - int GetExtraAscent() const; - - // Set extra descent for each line - void SetExtraDescent(int extraDescent); - - // Get extra descent for each line - int GetExtraDescent() const; - - // Which symbol was defined for markerNumber with MarkerDefine - int GetMarkerSymbolDefined(int markerNumber); - - // Set the text in the text margin for a line - void MarginSetText(int line, const wxString& text); - - // Get the text in the text margin for a line - wxString MarginGetText(int line) const; - - // Set the style number for the text margin for a line - void MarginSetStyle(int line, int style); - - // Get the style number for the text margin for a line - int MarginGetStyle(int line) const; - - // Set the style in the text margin for a line - void MarginSetStyles(int line, const wxString& styles); - - // Get the styles in the text margin for a line - wxString MarginGetStyles(int line) const; - - // Clear the margin text on all lines - void MarginTextClearAll(); - - // Get the start of the range of style numbers used for margin text - void MarginSetStyleOffset(int style); - - // Get the start of the range of style numbers used for margin text - int MarginGetStyleOffset() const; - - // Set the margin options. - void SetMarginOptions(int marginOptions); - - // Get the margin options. - int GetMarginOptions() const; - - // Set the annotation text for a line - void AnnotationSetText(int line, const wxString& text); - - // Get the annotation text for a line - wxString AnnotationGetText(int line) const; - - // Set the style number for the annotations for a line - void AnnotationSetStyle(int line, int style); - - // Get the style number for the annotations for a line - int AnnotationGetStyle(int line) const; - - // Set the annotation styles for a line - void AnnotationSetStyles(int line, const wxString& styles); - - // Get the annotation styles for a line - wxString AnnotationGetStyles(int line) const; - - // Get the number of annotation lines for a line - int AnnotationGetLines(int line) const; - - // Clear the annotations from all lines - void AnnotationClearAll(); - - // Set the visibility for the annotations for a view - void AnnotationSetVisible(int visible); - - // Get the visibility for the annotations for a view - int AnnotationGetVisible() const; - - // Get the start of the range of style numbers used for annotations - void AnnotationSetStyleOffset(int style); - - // Get the start of the range of style numbers used for annotations - int AnnotationGetStyleOffset() const; - - // Release all extended (>255) style numbers - void ReleaseAllExtendedStyles(); - - // Allocate some extended (>255) style numbers and return the start of the range - int AllocateExtendedStyles(int numberStyles); - - // Add a container action to the undo stack - void AddUndoAction(int token, int flags); - - // Find the position of a character from a point within the window. - int CharPositionFromPoint(int x, int y); - - // Find the position of a character from a point within the window. - // Return INVALID_POSITION if not close to text. - int CharPositionFromPointClose(int x, int y); - - // Set whether switching to rectangular mode while selecting with the mouse is allowed. - void SetMouseSelectionRectangularSwitch(bool mouseSelectionRectangularSwitch); - - // Whether switching to rectangular mode while selecting with the mouse is allowed. - bool GetMouseSelectionRectangularSwitch() const; - - // Set whether multiple selections can be made - void SetMultipleSelection(bool multipleSelection); - - // Whether multiple selections can be made - bool GetMultipleSelection() const; - - // Set whether typing can be performed into multiple selections - void SetAdditionalSelectionTyping(bool additionalSelectionTyping); - - // Whether typing can be performed into multiple selections - bool GetAdditionalSelectionTyping() const; - - // Set whether additional carets will blink - void SetAdditionalCaretsBlink(bool additionalCaretsBlink); - - // Whether additional carets will blink - bool GetAdditionalCaretsBlink() const; - - // Set whether additional carets are visible - void SetAdditionalCaretsVisible(bool additionalCaretsBlink); - - // Whether additional carets are visible - bool GetAdditionalCaretsVisible() const; - - // How many selections are there? - int GetSelections() const; - - // Is every selected range empty? - bool GetSelectionEmpty() const; - - // Clear selections to a single empty stream selection - void ClearSelections(); - - // Add a selection - int AddSelection(int caret, int anchor); - - // Drop one selection - void DropSelectionN(int selection); - - // Set the main selection - void SetMainSelection(int selection); - - // Which selection is the main selection - int GetMainSelection() const; - void SetSelectionNCaret(int selection, int pos); - int GetSelectionNCaret(int selection) const; - void SetSelectionNAnchor(int selection, int posAnchor); - int GetSelectionNAnchor(int selection) const; - void SetSelectionNCaretVirtualSpace(int selection, int space); - int GetSelectionNCaretVirtualSpace(int selection) const; - void SetSelectionNAnchorVirtualSpace(int selection, int space); - int GetSelectionNAnchorVirtualSpace(int selection) const; - - // Sets the position that starts the selection - this becomes the anchor. - void SetSelectionNStart(int selection, int pos); - - // Returns the position at the start of the selection. - int GetSelectionNStart(int selection) const; - - // Sets the position that ends the selection - this becomes the currentPosition. - void SetSelectionNEnd(int selection, int pos); - - // Returns the position at the end of the selection. - int GetSelectionNEnd(int selection) const; - void SetRectangularSelectionCaret(int pos); - int GetRectangularSelectionCaret() const; - void SetRectangularSelectionAnchor(int posAnchor); - int GetRectangularSelectionAnchor() const; - void SetRectangularSelectionCaretVirtualSpace(int space); - int GetRectangularSelectionCaretVirtualSpace() const; - void SetRectangularSelectionAnchorVirtualSpace(int space); - int GetRectangularSelectionAnchorVirtualSpace() const; - void SetVirtualSpaceOptions(int virtualSpaceOptions); - int GetVirtualSpaceOptions() const; - - // On GTK+, allow selecting the modifier key to use for mouse-based - // rectangular selection. Often the window manager requires Alt+Mouse Drag - // for moving windows. - // Valid values are SCMOD_CTRL(default), SCMOD_ALT, or SCMOD_SUPER. - void SetRectangularSelectionModifier(int modifier); - - // Get the modifier key used for rectangular selection. - int GetRectangularSelectionModifier() const; - - // Set the foreground colour of additional selections. - // Must have previously called SetSelFore with non-zero first argument for this to have an effect. - void SetAdditionalSelForeground(const wxColour& fore); - - // Set the background colour of additional selections. - // Must have previously called SetSelBack with non-zero first argument for this to have an effect. - void SetAdditionalSelBackground(const wxColour& back); - - // Set the alpha of the selection. - void SetAdditionalSelAlpha(int alpha); - - // Get the alpha of the selection. - int GetAdditionalSelAlpha() const; - - // Set the foreground colour of additional carets. - void SetAdditionalCaretForeground(const wxColour& fore); - - // Get the foreground colour of additional carets. - wxColour GetAdditionalCaretForeground() const; - - // Set the main selection to the next selection. - void RotateSelection(); - - // Swap that caret and anchor of the main selection. - void SwapMainAnchorCaret(); - - // Indicate that the internal state of a lexer has changed over a range and therefore - // there may be a need to redraw. - int ChangeLexerState(int start, int end); - - // Find the next line at or after lineStart that is a contracted fold header line. - // Return -1 when no more lines. - int ContractedFoldNext(int lineStart); - - // Centre current line in window. - void VerticalCentreCaret(); - - // Move the selected lines up one line, shifting the line above after the selection - void MoveSelectedLinesUp(); - - // Move the selected lines down one line, shifting the line below before the selection - void MoveSelectedLinesDown(); - - // Set the identifier reported as idFrom in notification messages. - void SetIdentifier(int identifier); - - // Get the identifier. - int GetIdentifier() const; - - // Set the width for future RGBA image data. - void RGBAImageSetWidth(int width); - - // Set the height for future RGBA image data. - void RGBAImageSetHeight(int height); - - // Set the scale factor in percent for future RGBA image data. - void RGBAImageSetScale(int scalePercent); - - // Define a marker from RGBA data. - // It has the width and height from RGBAImageSetWidth/Height - void MarkerDefineRGBAImage(int markerNumber, const unsigned char* pixels); - - // Register an RGBA image for use in autocompletion lists. - // It has the width and height from RGBAImageSetWidth/Height - void RegisterRGBAImage(int type, const unsigned char* pixels); - - // Scroll to start of document. - void ScrollToStart(); - - // Scroll to end of document. - void ScrollToEnd(); - - // Set the technology used. - void SetTechnology(int technology); - - // Get the tech. - int GetTechnology() const; - - // Create an ILoader*. - void* CreateLoader(int bytes) const; - - // Move caret to before first visible character on display line. - // If already there move to first character on display line. - void VCHomeDisplay(); - - // Like VCHomeDisplay but extending selection to new caret position. - void VCHomeDisplayExtend(); - - // Is the caret line always visible? - bool GetCaretLineVisibleAlways() const; - - // Sets the caret line to always visible. - void SetCaretLineVisibleAlways(bool alwaysVisible); - - // Set the line end types that the application wants to use. May not be used if incompatible with lexer or encoding. - void SetLineEndTypesAllowed(int lineEndBitSet); - - // Get the line end types currently allowed. - int GetLineEndTypesAllowed() const; - - // Get the line end types currently recognised. May be a subset of the allowed types due to lexer limitation. - int GetLineEndTypesActive() const; - - // Set the way a character is drawn. - void SetRepresentation(const wxString& encodedCharacter, const wxString& representation); - - // Set the way a character is drawn. - // Result is NUL-terminated. - wxString GetRepresentation(const wxString& encodedCharacter) const; - - // Remove a character representation. - void ClearRepresentation(const wxString& encodedCharacter); - - // Start notifying the container of all key presses and commands. - void StartRecord(); - - // Stop notifying the container of all key presses and commands. - void StopRecord(); - - // Set the lexing language of the document. - void SetLexer(int lexer); - - // Retrieve the lexing language of the document. - int GetLexer() const; - - // Colourise a segment of the document using the current lexing language. - void Colourise(int start, int end); - - // Set up a value that may be used by a lexer for some optional feature. - void SetProperty(const wxString& key, const wxString& value); - - // Set up the key words used by the lexer. - void SetKeyWords(int keywordSet, const wxString& keyWords); - - // Set the lexing language of the document based on string name. - void SetLexerLanguage(const wxString& language); - - // Retrieve a 'property' value previously set with SetProperty. - wxString GetProperty(const wxString& key); - - // Retrieve a 'property' value previously set with SetProperty, - // with '$()' variable replacement on returned buffer. - wxString GetPropertyExpanded(const wxString& key); - - // Retrieve a 'property' value previously set with SetProperty, - // interpreted as an int AFTER any '$()' variable replacement. - int GetPropertyInt(const wxString& key) const; - - // Retrieve the number of bits the current lexer needs for styling. - int GetStyleBitsNeeded() const; - - // For private communication between an application and a known lexer. - void* PrivateLexerCall(int operation, void* pointer); - - // Retrieve a '\n' separated list of properties understood by the current lexer. - // Result is NUL-terminated. - wxString PropertyNames() const; - - // Retrieve the type of a property. - int PropertyType(const wxString& name); - - // Describe a property. - // Result is NUL-terminated. - wxString DescribeProperty(const wxString& name) const; - - // Retrieve a '\n' separated list of descriptions of the keyword sets understood by the current lexer. - // Result is NUL-terminated. - wxString DescribeKeyWordSets() const; - - // Bit set of LineEndType enumertion for which line ends beyond the standard - // LF, CR, and CRLF are supported by the lexer. - int GetLineEndTypesSupported() const; - - // Allocate a set of sub styles for a particular base style, returning start of range - int AllocateSubStyles(int styleBase, int numberStyles); - - // The starting style number for the sub styles associated with a base style - int GetSubStylesStart(int styleBase) const; - - // The number of sub styles associated with a base style - int GetSubStylesLength(int styleBase) const; - - // For a sub style, return the base style, else return the argument. - int GetStyleFromSubStyle(int subStyle) const; - - // For a secondary style, return the primary style, else return the argument. - int GetPrimaryStyleFromStyle(int style) const; - - // Free allocated sub styles - void FreeSubStyles(); - - // Set the identifiers that are shown in a particular style - void SetIdentifiers(int style, const wxString& identifiers); - - // Where styles are duplicated by a feature such as active/inactive code - // return the distance between the two types. - int DistanceToSecondaryStyles() const; - - // Get the set of base styles that can be extended with sub styles - // Result is NUL-terminated. - wxString GetSubStyleBases() const; - - //}}} - //---------------------------------------------------------------------- - - // Manually declared methods - - // Returns the line number of the line with the caret. - int GetCurrentLine(); - - // Extract style settings from a spec-string which is composed of one or - // more of the following comma separated elements: - // - // bold turns on bold - // italic turns on italics - // fore:[name or #RRGGBB] sets the foreground colour - // back:[name or #RRGGBB] sets the background colour - // face:[facename] sets the font face name to use - // size:[num] sets the font size in points - // eol turns on eol filling - // underline turns on underlining - // - void StyleSetSpec(int styleNum, const wxString& spec); - - - // Get the font of a style. - wxFont StyleGetFont(int style); - - - // Set style size, face, bold, italic, and underline attributes from - // a wxFont's attributes. - void StyleSetFont(int styleNum, wxFont& font); - - - - // Set all font style attributes at once. - void StyleSetFontAttr(int styleNum, int size, - const wxString& faceName, - bool bold, bool italic, - bool underline, - wxFontEncoding encoding=wxFONTENCODING_DEFAULT); - - - // Set the character set of the font in a style. Converts the Scintilla - // character set values to a wxFontEncoding. - void StyleSetCharacterSet(int style, int characterSet); - - // Set the font encoding to be used by a style. - void StyleSetFontEncoding(int style, wxFontEncoding encoding); - - - // Perform one of the operations defined by the wxSTC_CMD_* constants. - void CmdKeyExecute(int cmd); - - - // Set the left and right margin in the edit area, measured in pixels. - void SetMargins(int left, int right); - - - // Retrieve the point in the window where a position is displayed. - wxPoint PointFromPosition(int pos); - - - // Scroll enough to make the given line visible - void ScrollToLine(int line); - - - // Scroll enough to make the given column visible - void ScrollToColumn(int column); - - - // Send a message to Scintilla - // - // NB: this method is not really const as it can modify the control but it - // has to be declared as such as it's called from both const and - // non-const methods and we can't distinguish between the two - wxIntPtr SendMsg(int msg, wxUIntPtr wp=0, wxIntPtr lp=0) const; - - - // Set the vertical scrollbar to use instead of the ont that's built-in. - void SetVScrollBar(wxScrollBar* bar); - - - // Set the horizontal scrollbar to use instead of the ont that's built-in. - void SetHScrollBar(wxScrollBar* bar); - - // Can be used to prevent the EVT_CHAR handler from adding the char - bool GetLastKeydownProcessed() { return m_lastKeyDownConsumed; } - void SetLastKeydownProcessed(bool val) { m_lastKeyDownConsumed = val; } - - // if we derive from wxTextAreaBase it already provides these methods -#if !wxUSE_TEXTCTRL - // Write the contents of the editor to filename - bool SaveFile(const wxString& filename); - - // Load the contents of filename into the editor - bool LoadFile(const wxString& filename); -#endif // !wxUSE_TEXTCTRL - -#ifdef STC_USE_DND - // Allow for simulating a DnD DragEnter - wxDragResult DoDragEnter(wxCoord x, wxCoord y, wxDragResult def); - - // Allow for simulating a DnD DragOver - wxDragResult DoDragOver(wxCoord x, wxCoord y, wxDragResult def); - - // Allow for simulating a DnD DragLeave - void DoDragLeave(); - - // Allow for simulating a DnD DropText - bool DoDropText(long x, long y, const wxString& data); -#endif - - // Specify whether anti-aliased fonts should be used. Will have no effect - // on some platforms, but on some (wxMac for example) can greatly improve - // performance. - void SetUseAntiAliasing(bool useAA); - - // Returns the current UseAntiAliasing setting. - bool GetUseAntiAliasing(); - - // Clear annotations from the given line. - void AnnotationClearLine(int line); - - - - // The following methods are nearly equivalent to their similarly named - // cousins above. The difference is that these methods bypass wxString - // and always use a char* even if used in a unicode build of wxWidgets. - // In that case the character data will be utf-8 encoded since that is - // what is used internally by Scintilla in unicode builds. - - // Add text to the document at current position. - void AddTextRaw(const char* text, int length=-1); - - // Insert string at a position. - void InsertTextRaw(int pos, const char* text); - - // Retrieve the text of the line containing the caret. - // Returns the index of the caret on the line. -#ifdef SWIG - wxCharBuffer GetCurLineRaw(int* OUTPUT); -#else - wxCharBuffer GetCurLineRaw(int* linePos=NULL); -#endif - - // Retrieve the contents of a line. - wxCharBuffer GetLineRaw(int line); - - // Retrieve the selected text. - wxCharBuffer GetSelectedTextRaw(); - - // Retrieve a range of text. - wxCharBuffer GetTextRangeRaw(int startPos, int endPos); - - // Replace the contents of the document with the argument text. - void SetTextRaw(const char* text); - - // Retrieve all the text in the document. - wxCharBuffer GetTextRaw(); - - // Append a string to the end of the document without changing the selection. - void AppendTextRaw(const char* text, int length=-1); - -#ifdef SWIG - %pythoncode "_stc_utf8_methods.py" -#endif - - - // implement wxTextEntryBase pure virtual methods - // ---------------------------------------------- - - virtual void WriteText(const wxString& text) wxOVERRIDE - { - ReplaceSelection(text); - } - - virtual void Remove(long from, long to) wxOVERRIDE - { - Replace(from, to, ""); - } - virtual void Replace(long from, long to, const wxString& text) wxOVERRIDE - { - SetTargetStart((int)from); - SetTargetEnd((int)to); - ReplaceTarget(text); - } - - /* - These functions are already declared in the generated section. - - virtual void Copy(); - virtual void Cut(); - virtual void Paste(); - - virtual void Undo(); - virtual void Redo(); - - virtual bool CanUndo() const; - virtual bool CanRedo() const; - - */ - - virtual void SetInsertionPoint(long pos) wxOVERRIDE - { - SetCurrentPos(int(pos == -1 ? GetLastPosition() : pos)); - } - virtual long GetInsertionPoint() const wxOVERRIDE { return GetCurrentPos(); } - virtual long GetLastPosition() const wxOVERRIDE { return GetTextLength(); } - - virtual void SetSelection(long from, long to) wxOVERRIDE - { - if ( from == -1 && to == -1 ) - { - SelectAll(); - } - else - { - SetSelectionStart((int)from); - SetSelectionEnd((int)to); - } - } - - virtual void SelectNone() wxOVERRIDE - { - ClearSelections(); - } - -#ifdef SWIG - void GetSelection(long* OUTPUT, long* OUTPUT) const; -#else - virtual void GetSelection(long *from, long *to) const wxOVERRIDE - { - if ( from ) - *from = GetSelectionStart(); - if ( to ) - *to = GetSelectionEnd(); - } - - // kept for compatibility only - void GetSelection(int *from, int *to) - { - long f, t; - GetSelection(&f, &t); - if ( from ) - *from = (int)f; - if ( to ) - *to = (int)t; - } -#endif - - virtual bool IsEditable() const wxOVERRIDE { return !GetReadOnly(); } - virtual void SetEditable(bool editable) wxOVERRIDE { SetReadOnly(!editable); } - - // implement wxTextAreaBase pure virtual methods - // --------------------------------------------- - - virtual int GetLineLength(long lineNo) const wxOVERRIDE { return static_cast<int>(GetLineText(lineNo).length()); } - virtual wxString GetLineText(long lineNo) const wxOVERRIDE - { - wxString text = GetLine(static_cast<int>(lineNo)); - size_t lastNewLine = text.find_last_not_of(wxS("\r\n")); - - if ( lastNewLine != wxString::npos ) - text.erase(lastNewLine + 1); // remove trailing cr+lf - else - text.clear(); - return text; - } - virtual int GetNumberOfLines() const wxOVERRIDE { return GetLineCount(); } - - virtual bool IsModified() const wxOVERRIDE { return GetModify(); } - virtual void MarkDirty() wxOVERRIDE { wxFAIL_MSG("not implemented"); } - virtual void DiscardEdits() wxOVERRIDE { SetSavePoint(); } - - virtual bool SetStyle(long WXUNUSED(start), long WXUNUSED(end), - const wxTextAttr& WXUNUSED(style)) wxOVERRIDE - { - wxFAIL_MSG("not implemented"); - - return false; - } - - virtual bool GetStyle(long WXUNUSED(position), wxTextAttr& WXUNUSED(style)) wxOVERRIDE - { - wxFAIL_MSG("not implemented"); - - return false; - } - - virtual bool SetDefaultStyle(const wxTextAttr& WXUNUSED(style)) wxOVERRIDE - { - wxFAIL_MSG("not implemented"); - - return false; - } - - virtual long XYToPosition(long x, long y) const wxOVERRIDE - { - long pos = PositionFromLine((int)y); - pos += x; - return pos; - } - - virtual bool PositionToXY(long pos, long *x, long *y) const wxOVERRIDE - { - int l = LineFromPosition((int)pos); - if ( l == -1 ) - return false; - - if ( x ) - *x = pos - PositionFromLine(l); - - if ( y ) - *y = l; - - return true; - } - - virtual void ShowPosition(long pos) wxOVERRIDE { GotoPos((int)pos); } - - using wxWindow::HitTest; - - virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, long *pos) const wxOVERRIDE - { - const long l = PositionFromPoint(pt); - if ( l == -1 ) - return wxTE_HT_BELOW; // we don't really know where it was - - if ( pos ) - *pos = l; - - return wxTE_HT_ON_TEXT; - } - - // just unhide it - virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, - wxTextCoord *col, - wxTextCoord *row) const wxOVERRIDE - { - return wxTextAreaBase::HitTest(pt, col, row); - } - - static wxVersionInfo GetLibraryVersionInfo(); - -protected: - virtual void DoSetValue(const wxString& value, int flags) wxOVERRIDE; - virtual wxString DoGetValue() const wxOVERRIDE { return GetText(); } - virtual wxWindow *GetEditableWindow() wxOVERRIDE { return this; } - -#ifndef SWIG - virtual bool DoLoadFile(const wxString& file, int fileType) wxOVERRIDE; - virtual bool DoSaveFile(const wxString& file, int fileType) wxOVERRIDE; - - // Event handlers - void OnPaint(wxPaintEvent& evt); - void OnScrollWin(wxScrollWinEvent& evt); - void OnScroll(wxScrollEvent& evt); - void OnSize(wxSizeEvent& evt); - void OnMouseLeftDown(wxMouseEvent& evt); - void OnMouseMove(wxMouseEvent& evt); - void OnMouseLeftUp(wxMouseEvent& evt); - void OnMouseRightUp(wxMouseEvent& evt); - void OnMouseMiddleUp(wxMouseEvent& evt); - void OnContextMenu(wxContextMenuEvent& evt); - void OnMouseWheel(wxMouseEvent& evt); - void OnChar(wxKeyEvent& evt); - void OnKeyDown(wxKeyEvent& evt); - void OnLoseFocus(wxFocusEvent& evt); - void OnGainFocus(wxFocusEvent& evt); - void OnSysColourChanged(wxSysColourChangedEvent& evt); - void OnEraseBackground(wxEraseEvent& evt); - void OnMenu(wxCommandEvent& evt); - void OnListBox(wxCommandEvent& evt); - void OnIdle(wxIdleEvent& evt); - - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - // Turn notifications from Scintilla into events - void NotifyChange(); - void NotifyParent(SCNotification* scn); - -private: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS(wxStyledTextCtrl); - -protected: - - ScintillaWX* m_swx; - wxStopWatch m_stopWatch; - wxScrollBar* m_vScrollBar; - wxScrollBar* m_hScrollBar; - - bool m_lastKeyDownConsumed; - - friend class ScintillaWX; - friend class Platform; -#endif // !SWIG -}; - -//---------------------------------------------------------------------- - -class WXDLLIMPEXP_STC wxStyledTextEvent : public wxCommandEvent { -public: - wxStyledTextEvent(wxEventType commandType=0, int id=0); -#ifndef SWIG - wxStyledTextEvent(const wxStyledTextEvent& event); -#endif - ~wxStyledTextEvent() {} - - void SetPosition(int pos) { m_position = pos; } - void SetKey(int k) { m_key = k; } - void SetModifiers(int m) { m_modifiers = m; } - void SetModificationType(int t) { m_modificationType = t; } - // Kept for backwards compatibility, use SetString(). - void SetText(const wxString& t) { SetString(t); } - void SetLength(int len) { m_length = len; } - void SetLinesAdded(int num) { m_linesAdded = num; } - void SetLine(int val) { m_line = val; } - void SetFoldLevelNow(int val) { m_foldLevelNow = val; } - void SetFoldLevelPrev(int val) { m_foldLevelPrev = val; } - void SetMargin(int val) { m_margin = val; } - void SetMessage(int val) { m_message = val; } - void SetWParam(int val) { m_wParam = val; } - void SetLParam(int val) { m_lParam = val; } - void SetListType(int val) { m_listType = val; } - void SetX(int val) { m_x = val; } - void SetY(int val) { m_y = val; } - void SetToken(int val) { m_token = val; } - void SetAnnotationLinesAdded(int val) { m_annotationLinesAdded = val; } - void SetUpdated(int val) { m_updated = val; } -#ifdef STC_USE_DND - // Kept for backwards compatibility, use SetString(). - void SetDragText(const wxString& val) { SetString(val); } - void SetDragFlags(int flags) { m_dragFlags = flags; } - void SetDragResult(wxDragResult val) { m_dragResult = val; } - - // This method is kept mainly for backwards compatibility, use - // SetDragFlags() in the new code. - void SetDragAllowMove(bool allow) - { - if ( allow ) - m_dragFlags |= wxDrag_AllowMove; - else - m_dragFlags &= ~(wxDrag_AllowMove | wxDrag_DefaultMove); - } -#endif - - int GetPosition() const { return m_position; } - int GetKey() const { return m_key; } - int GetModifiers() const { return m_modifiers; } - int GetModificationType() const { return m_modificationType; } - // Kept for backwards compatibility, use GetString(). - wxString GetText() const { return GetString(); } - int GetLength() const { return m_length; } - int GetLinesAdded() const { return m_linesAdded; } - int GetLine() const { return m_line; } - int GetFoldLevelNow() const { return m_foldLevelNow; } - int GetFoldLevelPrev() const { return m_foldLevelPrev; } - int GetMargin() const { return m_margin; } - int GetMessage() const { return m_message; } - int GetWParam() const { return m_wParam; } - int GetLParam() const { return m_lParam; } - int GetListType() const { return m_listType; } - int GetX() const { return m_x; } - int GetY() const { return m_y; } - int GetToken() const { return m_token; } - int GetAnnotationsLinesAdded() const { return m_annotationLinesAdded; } - int GetUpdated() const { return m_updated; } - -#ifdef STC_USE_DND - // Kept for backwards compatibility, use GetString(). - wxString GetDragText() { return GetString(); } - int GetDragFlags() { return m_dragFlags; } - wxDragResult GetDragResult() { return m_dragResult; } - - bool GetDragAllowMove() { return (GetDragFlags() & wxDrag_AllowMove) != 0; } -#endif - - bool GetShift() const; - bool GetControl() const; - bool GetAlt() const; - - virtual wxEvent* Clone() const { return new wxStyledTextEvent(*this); } - -#ifndef SWIG -private: - wxDECLARE_DYNAMIC_CLASS(wxStyledTextEvent); - - int m_position; - int m_key; - int m_modifiers; - - int m_modificationType; // wxEVT_STC_MODIFIED - int m_length; - int m_linesAdded; - int m_line; - int m_foldLevelNow; - int m_foldLevelPrev; - - int m_margin; // wxEVT_STC_MARGINCLICK - - int m_message; // wxEVT_STC_MACRORECORD - int m_wParam; - int m_lParam; - - int m_listType; - int m_x; - int m_y; - - int m_token; // wxEVT_STC__MODIFIED with SC_MOD_CONTAINER - int m_annotationLinesAdded; // wxEVT_STC_MODIFIED with SC_MOD_CHANGEANNOTATION - int m_updated; // wxEVT_STC_UPDATEUI - -#if wxUSE_DRAG_AND_DROP - int m_dragFlags; // wxEVT_STC_START_DRAG - wxDragResult m_dragResult; // wxEVT_STC_DRAG_OVER,wxEVT_STC_DO_DROP -#endif -#endif -}; - - - -#ifndef SWIG -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_CHANGE, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_STYLENEEDED, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_CHARADDED, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_SAVEPOINTREACHED, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_SAVEPOINTLEFT, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_ROMODIFYATTEMPT, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_KEY, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_DOUBLECLICK, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_UPDATEUI, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_MODIFIED, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_MACRORECORD, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_MARGINCLICK, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_NEEDSHOWN, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_PAINTED, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_USERLISTSELECTION, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_URIDROPPED, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_DWELLSTART, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_DWELLEND, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_START_DRAG, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_DRAG_OVER, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_DO_DROP, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_ZOOM, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_HOTSPOT_CLICK, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_HOTSPOT_DCLICK, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_CALLTIP_CLICK, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_AUTOCOMP_SELECTION, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_INDICATOR_CLICK, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_INDICATOR_RELEASE, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_AUTOCOMP_CANCELLED, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_AUTOCOMP_CHAR_DELETED, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_HOTSPOT_RELEASE_CLICK, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_CLIPBOARD_COPY, wxStyledTextEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_STC, wxEVT_STC_CLIPBOARD_PASTE, wxStyledTextEvent ); -#else - enum { - wxEVT_STC_CHANGE, - wxEVT_STC_STYLENEEDED, - wxEVT_STC_CHARADDED, - wxEVT_STC_SAVEPOINTREACHED, - wxEVT_STC_SAVEPOINTLEFT, - wxEVT_STC_ROMODIFYATTEMPT, - wxEVT_STC_KEY, - wxEVT_STC_DOUBLECLICK, - wxEVT_STC_UPDATEUI, - wxEVT_STC_MODIFIED, - wxEVT_STC_MACRORECORD, - wxEVT_STC_MARGINCLICK, - wxEVT_STC_NEEDSHOWN, - wxEVT_STC_PAINTED, - wxEVT_STC_USERLISTSELECTION, - wxEVT_STC_URIDROPPED, - wxEVT_STC_DWELLSTART, - wxEVT_STC_DWELLEND, - wxEVT_STC_START_DRAG, - wxEVT_STC_DRAG_OVER, - wxEVT_STC_DO_DROP, - wxEVT_STC_ZOOM, - wxEVT_STC_HOTSPOT_CLICK, - wxEVT_STC_HOTSPOT_DCLICK, - wxEVT_STC_CALLTIP_CLICK, - wxEVT_STC_AUTOCOMP_SELECTION, - wxEVT_STC_INDICATOR_CLICK, - wxEVT_STC_INDICATOR_RELEASE, - wxEVT_STC_AUTOCOMP_CANCELLED, - wxEVT_STC_AUTOCOMP_CHAR_DELETED, - wxEVT_STC_HOTSPOT_RELEASE_CLICK, - wxEVT_STC_CLIPBOARD_COPY, - wxEVT_STC_CLIPBOARD_PASTE - }; -#endif - - - -#ifndef SWIG -typedef void (wxEvtHandler::*wxStyledTextEventFunction)(wxStyledTextEvent&); - -#define wxStyledTextEventHandler( func ) \ - wxEVENT_HANDLER_CAST( wxStyledTextEventFunction, func ) - -#define EVT_STC_CHANGE(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_CHANGE, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_STYLENEEDED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_STYLENEEDED, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_CHARADDED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_CHARADDED, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_SAVEPOINTREACHED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_SAVEPOINTREACHED, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_SAVEPOINTLEFT(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_SAVEPOINTLEFT, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_ROMODIFYATTEMPT(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_ROMODIFYATTEMPT, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_KEY(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_KEY, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_DOUBLECLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_DOUBLECLICK, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_UPDATEUI(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_UPDATEUI, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_MODIFIED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_MODIFIED, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_MACRORECORD(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_MACRORECORD, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_MARGINCLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_MARGINCLICK, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_NEEDSHOWN(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_NEEDSHOWN, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_PAINTED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_PAINTED, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_USERLISTSELECTION(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_USERLISTSELECTION, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_URIDROPPED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_URIDROPPED, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_DWELLSTART(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_DWELLSTART, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_DWELLEND(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_DWELLEND, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_START_DRAG(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_START_DRAG, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_DRAG_OVER(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_DRAG_OVER, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_DO_DROP(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_DO_DROP, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_ZOOM(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_ZOOM, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_HOTSPOT_CLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_HOTSPOT_CLICK, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_HOTSPOT_DCLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_HOTSPOT_DCLICK, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_CALLTIP_CLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_CALLTIP_CLICK, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_AUTOCOMP_SELECTION(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_AUTOCOMP_SELECTION, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_INDICATOR_CLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_INDICATOR_CLICK, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_INDICATOR_RELEASE(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_INDICATOR_RELEASE, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_AUTOCOMP_CANCELLED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_AUTOCOMP_CANCELLED, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_AUTOCOMP_CHAR_DELETED(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_AUTOCOMP_CHAR_DELETED, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_HOTSPOT_RELEASE_CLICK(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_HOTSPOT_RELEASE_CLICK, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_CLIPBOARD_COPY(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_CLIPBOARD_COPY, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), -#define EVT_STC_CLIPBOARD_PASTE(id, fn) wxDECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_CLIPBOARD_PASTE, id, wxID_ANY, wxStyledTextEventHandler( fn ), (wxObject *) NULL ), - -#endif - -#endif // wxUSE_STC - -#endif // _WX_STC_STC_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stdpaths.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stdpaths.h deleted file mode 100644 index 5528626e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stdpaths.h +++ /dev/null @@ -1,234 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/stdpaths.h -// Purpose: declaration of wxStandardPaths class -// Author: Vadim Zeitlin -// Modified by: -// Created: 2004-10-17 -// Copyright: (c) 2004 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STDPATHS_H_ -#define _WX_STDPATHS_H_ - -#include "wx/defs.h" - -#include "wx/string.h" -#include "wx/filefn.h" - -class WXDLLIMPEXP_FWD_BASE wxStandardPaths; - -// ---------------------------------------------------------------------------- -// wxStandardPaths returns the standard locations in the file system -// ---------------------------------------------------------------------------- - -// NB: This is always compiled in, wxUSE_STDPATHS=0 only disables native -// wxStandardPaths class, but a minimal version is always available -class WXDLLIMPEXP_BASE wxStandardPathsBase -{ -public: - // possible resources categories - enum ResourceCat - { - // no special category - ResourceCat_None, - - // message catalog resources - ResourceCat_Messages, - - // end of enum marker - ResourceCat_Max - }; - - // what should we use to construct paths unique to this application: - // (AppInfo_AppName and AppInfo_VendorName can be combined together) - enum - { - AppInfo_None = 0, // nothing - AppInfo_AppName = 1, // the application name - AppInfo_VendorName = 2 // the vendor name - }; - - enum Dir - { - Dir_Documents, - Dir_Desktop, - Dir_Downloads, - Dir_Music, - Dir_Pictures, - Dir_Videos - }; - - // return the global standard paths object - static wxStandardPaths& Get(); - - // return the path (directory+filename) of the running executable or - // wxEmptyString if it couldn't be determined. - // The path is returned as an absolute path whenever possible. - // Default implementation only try to use wxApp->argv[0]. - virtual wxString GetExecutablePath() const; - - // return the directory with system config files: - // /etc under Unix, c:\Documents and Settings\All Users\Application Data - // under Windows, /Library/Preferences for Mac - virtual wxString GetConfigDir() const = 0; - - // return the directory for the user config files: - // $HOME under Unix, c:\Documents and Settings\username under Windows, - // ~/Library/Preferences under Mac - // - // only use this if you have a single file to put there, otherwise - // GetUserDataDir() is more appropriate - virtual wxString GetUserConfigDir() const = 0; - - // return the location of the applications global, i.e. not user-specific, - // data files - // - // prefix/share/appname under Unix, c:\Program Files\appname under Windows, - // appname.app/Contents/SharedSupport app bundle directory under Mac - virtual wxString GetDataDir() const = 0; - - // return the location for application data files which are host-specific - // - // same as GetDataDir() except under Unix where it is /etc/appname - virtual wxString GetLocalDataDir() const; - - // return the directory for the user-dependent application data files - // - // $HOME/.appname under Unix, - // c:\Documents and Settings\username\Application Data\appname under Windows - // and ~/Library/Application Support/appname under Mac - virtual wxString GetUserDataDir() const = 0; - - // return the directory for user data files which shouldn't be shared with - // the other machines - // - // same as GetUserDataDir() for all platforms except Windows where it is - // the "Local Settings\Application Data\appname" directory - virtual wxString GetUserLocalDataDir() const; - - // return the directory where the loadable modules (plugins) live - // - // prefix/lib/appname under Unix, program directory under Windows and - // Contents/Plugins app bundle subdirectory under Mac - virtual wxString GetPluginsDir() const = 0; - - // get resources directory: resources are auxiliary files used by the - // application and include things like image and sound files - // - // same as GetDataDir() for all platforms except Mac where it returns - // Contents/Resources subdirectory of the app bundle - virtual wxString GetResourcesDir() const { return GetDataDir(); } - - // get localized resources directory containing the resource files of the - // specified category for the given language - // - // in general this is just GetResourcesDir()/lang under Windows and Unix - // and GetResourcesDir()/lang.lproj under Mac but is something quite - // different under Unix for message catalog category (namely the standard - // prefix/share/locale/lang/LC_MESSAGES) - virtual wxString - GetLocalizedResourcesDir(const wxString& lang, - ResourceCat WXUNUSED(category) - = ResourceCat_None) const - { - return GetResourcesDir() + wxFILE_SEP_PATH + lang; - } - - // return the "Documents" directory for the current user - // - // C:\Documents and Settings\username\My Documents under Windows, - // $HOME under Unix and ~/Documents under Mac - virtual wxString GetDocumentsDir() const - { - return GetUserDir(Dir_Documents); - } - - // return the directory for the documents files used by this application: - // it's a subdirectory of GetDocumentsDir() constructed using the - // application name/vendor if it exists or just GetDocumentsDir() otherwise - virtual wxString GetAppDocumentsDir() const; - - // return the temporary directory for the current user - virtual wxString GetTempDir() const; - - virtual wxString GetUserDir(Dir userDir) const; - - // virtual dtor for the base class - virtual ~wxStandardPathsBase(); - - // Information used by AppendAppInfo - void UseAppInfo(int info) - { - m_usedAppInfo = info; - } - - bool UsesAppInfo(int info) const { return (m_usedAppInfo & info) != 0; } - - -protected: - // Ctor is protected as this is a base class which should never be created - // directly. - wxStandardPathsBase(); - - // append the path component, with a leading path separator if a - // path separator or dot (.) is not already at the end of dir - static wxString AppendPathComponent(const wxString& dir, const wxString& component); - - // append application information determined by m_usedAppInfo to dir - wxString AppendAppInfo(const wxString& dir) const; - - - // combination of AppInfo_XXX flags used by AppendAppInfo() - int m_usedAppInfo; -}; - -#if wxUSE_STDPATHS - #if defined(__WINDOWS__) - #include "wx/msw/stdpaths.h" - #define wxHAS_NATIVE_STDPATHS - #elif defined(__WXOSX_COCOA__) || defined(__WXOSX_IPHONE__) || defined(__DARWIN__) - #include "wx/osx/cocoa/stdpaths.h" - #define wxHAS_NATIVE_STDPATHS - #elif defined(__UNIX__) - #include "wx/unix/stdpaths.h" - #define wxHAS_NATIVE_STDPATHS - #endif -#endif - -// ---------------------------------------------------------------------------- -// Minimal generic implementation -// ---------------------------------------------------------------------------- - -// NB: Note that this minimal implementation is compiled in even if -// wxUSE_STDPATHS=0, so that our code can still use wxStandardPaths. - -#ifndef wxHAS_NATIVE_STDPATHS -class WXDLLIMPEXP_BASE wxStandardPaths : public wxStandardPathsBase -{ -public: - void SetInstallPrefix(const wxString& prefix) { m_prefix = prefix; } - wxString GetInstallPrefix() const { return m_prefix; } - - virtual wxString GetExecutablePath() const { return m_prefix; } - virtual wxString GetConfigDir() const { return m_prefix; } - virtual wxString GetUserConfigDir() const { return m_prefix; } - virtual wxString GetDataDir() const { return m_prefix; } - virtual wxString GetLocalDataDir() const { return m_prefix; } - virtual wxString GetUserDataDir() const { return m_prefix; } - virtual wxString GetPluginsDir() const { return m_prefix; } - virtual wxString GetUserDir(Dir WXUNUSED(userDir)) const { return m_prefix; } - -protected: - // Ctor is protected because wxStandardPaths::Get() should always be used - // to access the global wxStandardPaths object of the correct type instead - // of creating one of a possibly wrong type yourself. - wxStandardPaths() { } - -private: - wxString m_prefix; -}; -#endif // !wxHAS_NATIVE_STDPATHS - -#endif // _WX_STDPATHS_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stdstream.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stdstream.h deleted file mode 100644 index 3cf565b6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stdstream.h +++ /dev/null @@ -1,122 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/stdstream.h -// Purpose: Header of std::istream and std::ostream derived wrappers for -// wxInputStream and wxOutputStream -// Author: Jonathan Liu <net147@gmail.com> -// Created: 2009-05-02 -// Copyright: (c) 2009 Jonathan Liu -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STDSTREAM_H_ -#define _WX_STDSTREAM_H_ - -#include "wx/defs.h" // wxUSE_STD_IOSTREAM - -#if wxUSE_STREAMS && wxUSE_STD_IOSTREAM - -#include "wx/defs.h" -#include "wx/stream.h" -#include "wx/ioswrap.h" - -// ========================================================================== -// wxStdInputStreamBuffer -// ========================================================================== - -class WXDLLIMPEXP_BASE wxStdInputStreamBuffer : public std::streambuf -{ -public: - wxStdInputStreamBuffer(wxInputStream& stream); - virtual ~wxStdInputStreamBuffer() { } - -protected: - virtual std::streambuf *setbuf(char *s, std::streamsize n) wxOVERRIDE; - virtual std::streampos seekoff(std::streamoff off, - std::ios_base::seekdir way, - std::ios_base::openmode which = - std::ios_base::in | - std::ios_base::out) wxOVERRIDE; - virtual std::streampos seekpos(std::streampos sp, - std::ios_base::openmode which = - std::ios_base::in | - std::ios_base::out) wxOVERRIDE; - virtual std::streamsize showmanyc() wxOVERRIDE; - virtual std::streamsize xsgetn(char *s, std::streamsize n) wxOVERRIDE; - virtual int underflow() wxOVERRIDE; - virtual int uflow() wxOVERRIDE; - virtual int pbackfail(int c = EOF) wxOVERRIDE; - - // Special work around for VC8/9 (this bug was fixed in VC10 and later): - // these versions have non-standard _Xsgetn_s() that it being called from - // the stream code instead of xsgetn() and so our overridden implementation - // never actually gets used. To work around this, forward to it explicitly. -#if defined(__VISUALC8__) || defined(__VISUALC9__) - virtual std::streamsize - _Xsgetn_s(char *s, size_t WXUNUSED(size), std::streamsize n) - { - return xsgetn(s, n); - } -#endif // VC8 or VC9 - - wxInputStream& m_stream; - int m_lastChar; -}; - -// ========================================================================== -// wxStdInputStream -// ========================================================================== - -class WXDLLIMPEXP_BASE wxStdInputStream : public std::istream -{ -public: - wxStdInputStream(wxInputStream& stream); - virtual ~wxStdInputStream() { } - -protected: - wxStdInputStreamBuffer m_streamBuffer; -}; - -// ========================================================================== -// wxStdOutputStreamBuffer -// ========================================================================== - -class WXDLLIMPEXP_BASE wxStdOutputStreamBuffer : public std::streambuf -{ -public: - wxStdOutputStreamBuffer(wxOutputStream& stream); - virtual ~wxStdOutputStreamBuffer() { } - -protected: - virtual std::streambuf *setbuf(char *s, std::streamsize n) wxOVERRIDE; - virtual std::streampos seekoff(std::streamoff off, - std::ios_base::seekdir way, - std::ios_base::openmode which = - std::ios_base::in | - std::ios_base::out) wxOVERRIDE; - virtual std::streampos seekpos(std::streampos sp, - std::ios_base::openmode which = - std::ios_base::in | - std::ios_base::out) wxOVERRIDE; - virtual std::streamsize xsputn(const char *s, std::streamsize n) wxOVERRIDE; - virtual int overflow(int c) wxOVERRIDE; - - wxOutputStream& m_stream; -}; - -// ========================================================================== -// wxStdOutputStream -// ========================================================================== - -class WXDLLIMPEXP_BASE wxStdOutputStream : public std::ostream -{ -public: - wxStdOutputStream(wxOutputStream& stream); - virtual ~wxStdOutputStream() { } - -protected: - wxStdOutputStreamBuffer m_streamBuffer; -}; - -#endif // wxUSE_STREAMS && wxUSE_STD_IOSTREAM - -#endif // _WX_STDSTREAM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stockitem.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stockitem.h deleted file mode 100644 index 72d3e714..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stockitem.h +++ /dev/null @@ -1,80 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/stockitem.h -// Purpose: stock items helpers (privateh header) -// Author: Vaclav Slavik -// Modified by: -// Created: 2004-08-15 -// Copyright: (c) Vaclav Slavik, 2004 -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STOCKITEM_H_ -#define _WX_STOCKITEM_H_ - -#include "wx/defs.h" -#include "wx/chartype.h" -#include "wx/string.h" -#include "wx/accel.h" - -// ---------------------------------------------------------------------------- -// Helper functions for stock items handling: -// ---------------------------------------------------------------------------- - -// Returns true if the ID is in the list of recognized stock actions -WXDLLIMPEXP_CORE bool wxIsStockID(wxWindowID id); - -// Returns true of the label is empty or label of a stock button with -// given ID -WXDLLIMPEXP_CORE bool wxIsStockLabel(wxWindowID id, const wxString& label); - -enum wxStockLabelQueryFlag -{ - wxSTOCK_NOFLAGS = 0, - - wxSTOCK_WITH_MNEMONIC = 1, - wxSTOCK_WITH_ACCELERATOR = 2, - - // by default, stock items text is returned with ellipsis, if appropriate, - // this flag allows to avoid having it - wxSTOCK_WITHOUT_ELLIPSIS = 4, - - // return label for button, not menu item: buttons should always use - // mnemonics and never use ellipsis - wxSTOCK_FOR_BUTTON = wxSTOCK_WITHOUT_ELLIPSIS | wxSTOCK_WITH_MNEMONIC -}; - -// Returns label that should be used for given stock UI element (e.g. "&OK" -// for wxSTOCK_OK); if wxSTOCK_WITH_MNEMONIC is given, the & character -// is included; if wxSTOCK_WITH_ACCELERATOR is given, the stock accelerator -// for given ID is concatenated to the label using \t as separator -WXDLLIMPEXP_CORE wxString wxGetStockLabel(wxWindowID id, - long flags = wxSTOCK_WITH_MNEMONIC); - -#if wxUSE_ACCEL - - // Returns the accelerator that should be used for given stock UI element - // (e.g. "Ctrl+x" for wxSTOCK_EXIT) - WXDLLIMPEXP_CORE wxAcceleratorEntry wxGetStockAccelerator(wxWindowID id); - -#endif - -// wxStockHelpStringClient conceptually works like wxArtClient: it gives a hint to -// wxGetStockHelpString() about the context where the help string is to be used -enum wxStockHelpStringClient -{ - wxSTOCK_MENU // help string to use for menu items -}; - -// Returns an help string for the given stock UI element and for the given "context". -WXDLLIMPEXP_CORE wxString wxGetStockHelpString(wxWindowID id, - wxStockHelpStringClient client = wxSTOCK_MENU); - - -#ifdef __WXGTK20__ - -// Translates stock ID to GTK+'s stock item string identifier: -WXDLLIMPEXP_CORE const char *wxGetStockGtkID(wxWindowID id); - -#endif - -#endif // _WX_STOCKITEM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stopwatch.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stopwatch.h deleted file mode 100644 index ef39f391..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stopwatch.h +++ /dev/null @@ -1,92 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/stopwatch.h -// Purpose: wxStopWatch and global time-related functions -// Author: Julian Smart (wxTimer), Sylvain Bougnoux (wxStopWatch), -// Vadim Zeitlin (time functions, current wxStopWatch) -// Created: 26.06.03 (extracted from wx/timer.h) -// Copyright: (c) 1998-2003 Julian Smart, Sylvain Bougnoux -// (c) 2011 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STOPWATCH_H_ -#define _WX_STOPWATCH_H_ - -#include "wx/defs.h" -#include "wx/longlong.h" - -// Time-related functions are also available via this header for compatibility -// but you should include wx/time.h directly if you need only them and not -// wxStopWatch itself. -#include "wx/time.h" - -// ---------------------------------------------------------------------------- -// wxStopWatch: measure time intervals with up to 1ms resolution -// ---------------------------------------------------------------------------- - -#if wxUSE_STOPWATCH - -class WXDLLIMPEXP_BASE wxStopWatch -{ -public: - // ctor starts the stop watch - wxStopWatch() { m_pauseCount = 0; Start(); } - - // Start the stop watch at the moment t0 expressed in milliseconds (i.e. - // calling Time() immediately afterwards returns t0). This can be used to - // restart an existing stopwatch. - void Start(long t0 = 0); - - // pause the stop watch - void Pause() - { - if ( m_pauseCount++ == 0 ) - m_elapsedBeforePause = GetCurrentClockValue() - m_t0; - } - - // resume it - void Resume() - { - wxASSERT_MSG( m_pauseCount > 0, - wxT("Resuming stop watch which is not paused") ); - - if ( --m_pauseCount == 0 ) - { - DoStart(); - m_t0 -= m_elapsedBeforePause; - } - } - - // Get elapsed time since the last Start() in microseconds. - wxLongLong TimeInMicro() const; - - // get elapsed time since the last Start() in milliseconds - long Time() const { return (TimeInMicro()/1000).ToLong(); } - -private: - // Really starts the stop watch. The initial time is set to current clock - // value. - void DoStart(); - - // Returns the current clock value in its native units. - wxLongLong GetCurrentClockValue() const; - - // Return the frequency of the clock used in its ticks per second. - wxLongLong GetClockFreq() const; - - - // The clock value when the stop watch was last started. Its units vary - // depending on the platform. - wxLongLong m_t0; - - // The elapsed time as of last Pause() call (only valid if m_pauseCount > - // 0) in the same units as m_t0. - wxLongLong m_elapsedBeforePause; - - // if > 0, the stop watch is paused, otherwise it is running - int m_pauseCount; -}; - -#endif // wxUSE_STOPWATCH - -#endif // _WX_STOPWATCH_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/strconv.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/strconv.h deleted file mode 100644 index 470632ca..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/strconv.h +++ /dev/null @@ -1,708 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/strconv.h -// Purpose: conversion routines for char sets any Unicode -// Author: Ove Kaaven, Robert Roebling, Vadim Zeitlin -// Modified by: -// Created: 29/01/98 -// Copyright: (c) 1998 Ove Kaaven, Robert Roebling -// (c) 1998-2006 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STRCONV_H_ -#define _WX_STRCONV_H_ - -#include "wx/defs.h" -#include "wx/chartype.h" -#include "wx/buffer.h" - -#include <stdlib.h> - -class WXDLLIMPEXP_FWD_BASE wxString; - -// the error value returned by wxMBConv methods -#define wxCONV_FAILED ((size_t)-1) - -// ---------------------------------------------------------------------------- -// wxMBConv (abstract base class for conversions) -// ---------------------------------------------------------------------------- - -// When deriving a new class from wxMBConv you must reimplement ToWChar() and -// FromWChar() methods which are not pure virtual only for historical reasons, -// don't let the fact that the existing classes implement MB2WC/WC2MB() instead -// confuse you. -// -// You also have to implement Clone() to allow copying the conversions -// polymorphically. -// -// And you might need to override GetMBNulLen() as well. -class WXDLLIMPEXP_BASE wxMBConv -{ -public: - // The functions doing actual conversion from/to narrow to/from wide - // character strings. - // - // On success, the return value is the length (i.e. the number of - // characters, not bytes) of the converted string including any trailing - // L'\0' or (possibly multiple) '\0'(s). If the conversion fails or if - // there is not enough space for everything, including the trailing NUL - // character(s), in the output buffer, wxCONV_FAILED is returned. - // - // In the special case when dst is NULL (the value of dstLen is ignored - // then) the return value is the length of the needed buffer but nothing - // happens otherwise. If srcLen is wxNO_LEN, the entire string, up to and - // including the trailing NUL(s), is converted, otherwise exactly srcLen - // bytes are. - // - // Typical usage: - // - // size_t dstLen = conv.ToWChar(NULL, 0, src); - // if ( dstLen == wxCONV_FAILED ) - // ... handle error ... - // wchar_t *wbuf = new wchar_t[dstLen]; - // conv.ToWChar(wbuf, dstLen, src); - // ... work with wbuf ... - // delete [] wbuf; - // - virtual size_t ToWChar(wchar_t *dst, size_t dstLen, - const char *src, size_t srcLen = wxNO_LEN) const; - - virtual size_t FromWChar(char *dst, size_t dstLen, - const wchar_t *src, size_t srcLen = wxNO_LEN) const; - - - // Convenience functions for translating NUL-terminated strings: returns - // the buffer containing the converted string or NULL pointer if the - // conversion failed. - const wxWCharBuffer cMB2WC(const char *in) const; - const wxCharBuffer cWC2MB(const wchar_t *in) const; - - // Convenience functions for converting strings which may contain embedded - // NULs and don't have to be NUL-terminated. - // - // inLen is the length of the buffer including trailing NUL if any or - // wxNO_LEN if the input is NUL-terminated. - // - // outLen receives, if not NULL, the length of the converted string or 0 if - // the conversion failed (returning 0 and not -1 in this case makes it - // difficult to distinguish between failed conversion and empty input but - // this is done for backwards compatibility). Notice that the rules for - // whether outLen accounts or not for the last NUL are the same as for - // To/FromWChar() above: if inLen is specified, outLen is exactly the - // number of characters converted, whether the last one of them was NUL or - // not. But if inLen == wxNO_LEN then outLen doesn't account for the last - // NUL even though it is present. - const wxWCharBuffer - cMB2WC(const char *in, size_t inLen, size_t *outLen) const; - const wxCharBuffer - cWC2MB(const wchar_t *in, size_t inLen, size_t *outLen) const; - - // And yet more convenience functions for converting the entire buffers: - // these are the simplest and least error-prone as you never need to bother - // with lengths/sizes directly. - const wxWCharBuffer cMB2WC(const wxScopedCharBuffer& in) const; - const wxCharBuffer cWC2MB(const wxScopedWCharBuffer& in) const; - - // convenience functions for converting MB or WC to/from wxWin default -#if wxUSE_UNICODE - const wxWCharBuffer cMB2WX(const char *psz) const { return cMB2WC(psz); } - const wxCharBuffer cWX2MB(const wchar_t *psz) const { return cWC2MB(psz); } - const wchar_t* cWC2WX(const wchar_t *psz) const { return psz; } - const wchar_t* cWX2WC(const wchar_t *psz) const { return psz; } -#else // ANSI - const char* cMB2WX(const char *psz) const { return psz; } - const char* cWX2MB(const char *psz) const { return psz; } - const wxCharBuffer cWC2WX(const wchar_t *psz) const { return cWC2MB(psz); } - const wxWCharBuffer cWX2WC(const char *psz) const { return cMB2WC(psz); } -#endif // Unicode/ANSI - - // this function is used in the implementation of cMB2WC() to distinguish - // between the following cases: - // - // a) var width encoding with strings terminated by a single NUL - // (usual multibyte encodings): return 1 in this case - // b) fixed width encoding with 2 bytes/char and so terminated by - // 2 NULs (UTF-16/UCS-2 and variants): return 2 in this case - // c) fixed width encoding with 4 bytes/char and so terminated by - // 4 NULs (UTF-32/UCS-4 and variants): return 4 in this case - // - // anything else is not supported currently and -1 should be returned - virtual size_t GetMBNulLen() const { return 1; } - - // return the maximal value currently returned by GetMBNulLen() for any - // encoding - static size_t GetMaxMBNulLen() { return 4 /* for UTF-32 */; } - -#if wxUSE_UNICODE_UTF8 - // return true if the converter's charset is UTF-8, i.e. char* strings - // decoded using this object can be directly copied to wxString's internal - // storage without converting to WC and than back to UTF-8 MB string - virtual bool IsUTF8() const { return false; } -#endif - - // The old conversion functions. The existing classes currently mostly - // implement these ones but we're in transition to using To/FromWChar() - // instead and any new classes should implement just the new functions. - // For now, however, we provide default implementation of To/FromWChar() in - // this base class in terms of MB2WC/WC2MB() to avoid having to rewrite all - // the conversions at once. - // - // On success, the return value is the length (i.e. the number of - // characters, not bytes) not counting the trailing NUL(s) of the converted - // string. On failure, (size_t)-1 is returned. In the special case when - // outputBuf is NULL the return value is the same one but nothing is - // written to the buffer. - // - // Note that outLen is the length of the output buffer, not the length of - // the input (which is always supposed to be terminated by one or more - // NULs, as appropriate for the encoding)! - virtual size_t MB2WC(wchar_t *out, const char *in, size_t outLen) const; - virtual size_t WC2MB(char *out, const wchar_t *in, size_t outLen) const; - - - // make a heap-allocated copy of this object - virtual wxMBConv *Clone() const = 0; - - // virtual dtor for any base class - virtual ~wxMBConv(); -}; - -// ---------------------------------------------------------------------------- -// wxMBConvLibc uses standard mbstowcs() and wcstombs() functions for -// conversion (hence it depends on the current locale) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMBConvLibc : public wxMBConv -{ -public: - virtual size_t MB2WC(wchar_t *outputBuf, const char *psz, size_t outputSize) const wxOVERRIDE; - virtual size_t WC2MB(char *outputBuf, const wchar_t *psz, size_t outputSize) const wxOVERRIDE; - - virtual wxMBConv *Clone() const wxOVERRIDE { return new wxMBConvLibc; } - -#if wxUSE_UNICODE_UTF8 - virtual bool IsUTF8() const wxOVERRIDE { return wxLocaleIsUtf8; } -#endif -}; - -#ifdef __UNIX__ - -// ---------------------------------------------------------------------------- -// wxConvBrokenFileNames is made for Unix in Unicode mode when -// files are accidentally written in an encoding which is not -// the system encoding. Typically, the system encoding will be -// UTF8 but there might be files stored in ISO8859-1 on disk. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxConvBrokenFileNames : public wxMBConv -{ -public: - wxConvBrokenFileNames(const wxString& charset); - wxConvBrokenFileNames(const wxConvBrokenFileNames& conv) - : wxMBConv(), - m_conv(conv.m_conv ? conv.m_conv->Clone() : NULL) - { - } - virtual ~wxConvBrokenFileNames() { delete m_conv; } - - virtual size_t MB2WC(wchar_t *out, const char *in, size_t outLen) const wxOVERRIDE - { - return m_conv->MB2WC(out, in, outLen); - } - - virtual size_t WC2MB(char *out, const wchar_t *in, size_t outLen) const wxOVERRIDE - { - return m_conv->WC2MB(out, in, outLen); - } - - virtual size_t GetMBNulLen() const wxOVERRIDE - { - // cast needed to call a private function - return m_conv->GetMBNulLen(); - } - -#if wxUSE_UNICODE_UTF8 - virtual bool IsUTF8() const wxOVERRIDE { return m_conv->IsUTF8(); } -#endif - - virtual wxMBConv *Clone() const wxOVERRIDE { return new wxConvBrokenFileNames(*this); } - -private: - // the conversion object we forward to - wxMBConv *m_conv; - - wxDECLARE_NO_ASSIGN_CLASS(wxConvBrokenFileNames); -}; - -#endif // __UNIX__ - -// ---------------------------------------------------------------------------- -// wxMBConvUTF7 (for conversion using UTF7 encoding) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMBConvUTF7 : public wxMBConv -{ -public: - wxMBConvUTF7() { } - - // compiler-generated copy ctor, assignment operator and dtor are ok - // (assuming it's ok to copy the shift state -- not really sure about it) - - virtual size_t ToWChar(wchar_t *dst, size_t dstLen, - const char *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - virtual size_t FromWChar(char *dst, size_t dstLen, - const wchar_t *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - - virtual wxMBConv *Clone() const wxOVERRIDE { return new wxMBConvUTF7; } - -private: - // UTF-7 decoder/encoder may be in direct mode or in shifted mode after a - // '+' (and until the '-' or any other non-base64 character) - struct StateMode - { - enum Mode - { - Direct, // pass through state - Shifted // after a '+' (and before '-') - }; - }; - - // the current decoder state: this is only used by ToWChar() if srcLen - // parameter is not wxNO_LEN, when working on the entire NUL-terminated - // strings we neither update nor use the state - class DecoderState : private StateMode - { - private: - // current state: this one is private as we want to enforce the use of - // ToDirect/ToShifted() methods below - Mode mode; - - public: - // the initial state is direct - DecoderState() { mode = Direct; } - - // switch to/from shifted mode - void ToDirect() { mode = Direct; } - void ToShifted() { mode = Shifted; accum = bit = 0; isLSB = false; } - - bool IsDirect() const { return mode == Direct; } - bool IsShifted() const { return mode == Shifted; } - - - // these variables are only used in shifted mode - - unsigned int accum; // accumulator of the bit we've already got - unsigned int bit; // the number of bits consumed mod 8 - unsigned char msb; // the high byte of UTF-16 word - bool isLSB; // whether we're decoding LSB or MSB of UTF-16 word - }; - - DecoderState m_stateDecoder; - - - // encoder state is simpler as we always receive entire Unicode characters - // on input - class EncoderState : private StateMode - { - private: - Mode mode; - - public: - EncoderState() { mode = Direct; } - - void ToDirect() { mode = Direct; } - void ToShifted() { mode = Shifted; accum = bit = 0; } - - bool IsDirect() const { return mode == Direct; } - bool IsShifted() const { return mode == Shifted; } - - unsigned int accum; - unsigned int bit; - }; - - EncoderState m_stateEncoder; -}; - -// ---------------------------------------------------------------------------- -// wxMBConvUTF8 (for conversion using UTF8 encoding) -// ---------------------------------------------------------------------------- - -// this is the real UTF-8 conversion class, it has to be called "strict UTF-8" -// for compatibility reasons: the wxMBConvUTF8 class below also supports lossy -// conversions if it is created with non default options -class WXDLLIMPEXP_BASE wxMBConvStrictUTF8 : public wxMBConv -{ -public: - // compiler-generated default ctor and other methods are ok - - virtual size_t ToWChar(wchar_t *dst, size_t dstLen, - const char *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - virtual size_t FromWChar(char *dst, size_t dstLen, - const wchar_t *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - - virtual wxMBConv *Clone() const wxOVERRIDE { return new wxMBConvStrictUTF8(); } - -#if wxUSE_UNICODE_UTF8 - // NB: other mapping modes are not, strictly speaking, UTF-8, so we can't - // take the shortcut in that case - virtual bool IsUTF8() const wxOVERRIDE { return true; } -#endif -}; - -class WXDLLIMPEXP_BASE wxMBConvUTF8 : public wxMBConvStrictUTF8 -{ -public: - enum - { - MAP_INVALID_UTF8_NOT = 0, - MAP_INVALID_UTF8_TO_PUA = 1, - MAP_INVALID_UTF8_TO_OCTAL = 2 - }; - - wxMBConvUTF8(int options = MAP_INVALID_UTF8_NOT) : m_options(options) { } - - virtual size_t ToWChar(wchar_t *dst, size_t dstLen, - const char *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - virtual size_t FromWChar(char *dst, size_t dstLen, - const wchar_t *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - - virtual wxMBConv *Clone() const wxOVERRIDE { return new wxMBConvUTF8(m_options); } - -#if wxUSE_UNICODE_UTF8 - // NB: other mapping modes are not, strictly speaking, UTF-8, so we can't - // take the shortcut in that case - virtual bool IsUTF8() const wxOVERRIDE { return m_options == MAP_INVALID_UTF8_NOT; } -#endif - -private: - int m_options; -}; - -// ---------------------------------------------------------------------------- -// wxMBConvUTF16Base: for both LE and BE variants -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMBConvUTF16Base : public wxMBConv -{ -public: - enum { BYTES_PER_CHAR = 2 }; - - virtual size_t GetMBNulLen() const wxOVERRIDE { return BYTES_PER_CHAR; } - -protected: - // return the length of the buffer using srcLen if it's not wxNO_LEN and - // computing the length ourselves if it is; also checks that the length is - // even if specified as we need an entire number of UTF-16 characters and - // returns wxNO_LEN which indicates error if it is odd - static size_t GetLength(const char *src, size_t srcLen); -}; - -// ---------------------------------------------------------------------------- -// wxMBConvUTF16LE (for conversion using UTF16 Little Endian encoding) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMBConvUTF16LE : public wxMBConvUTF16Base -{ -public: - virtual size_t ToWChar(wchar_t *dst, size_t dstLen, - const char *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - virtual size_t FromWChar(char *dst, size_t dstLen, - const wchar_t *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - virtual wxMBConv *Clone() const wxOVERRIDE { return new wxMBConvUTF16LE; } -}; - -// ---------------------------------------------------------------------------- -// wxMBConvUTF16BE (for conversion using UTF16 Big Endian encoding) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMBConvUTF16BE : public wxMBConvUTF16Base -{ -public: - virtual size_t ToWChar(wchar_t *dst, size_t dstLen, - const char *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - virtual size_t FromWChar(char *dst, size_t dstLen, - const wchar_t *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - virtual wxMBConv *Clone() const wxOVERRIDE { return new wxMBConvUTF16BE; } -}; - -// ---------------------------------------------------------------------------- -// wxMBConvUTF32Base: base class for both LE and BE variants -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMBConvUTF32Base : public wxMBConv -{ -public: - enum { BYTES_PER_CHAR = 4 }; - - virtual size_t GetMBNulLen() const wxOVERRIDE { return BYTES_PER_CHAR; } - -protected: - // this is similar to wxMBConvUTF16Base method with the same name except - // that, of course, it verifies that length is divisible by 4 if given and - // not by 2 - static size_t GetLength(const char *src, size_t srcLen); -}; - -// ---------------------------------------------------------------------------- -// wxMBConvUTF32LE (for conversion using UTF32 Little Endian encoding) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMBConvUTF32LE : public wxMBConvUTF32Base -{ -public: - virtual size_t ToWChar(wchar_t *dst, size_t dstLen, - const char *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - virtual size_t FromWChar(char *dst, size_t dstLen, - const wchar_t *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - virtual wxMBConv *Clone() const wxOVERRIDE { return new wxMBConvUTF32LE; } -}; - -// ---------------------------------------------------------------------------- -// wxMBConvUTF32BE (for conversion using UTF32 Big Endian encoding) -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMBConvUTF32BE : public wxMBConvUTF32Base -{ -public: - virtual size_t ToWChar(wchar_t *dst, size_t dstLen, - const char *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - virtual size_t FromWChar(char *dst, size_t dstLen, - const wchar_t *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - virtual wxMBConv *Clone() const wxOVERRIDE { return new wxMBConvUTF32BE; } -}; - -// ---------------------------------------------------------------------------- -// wxCSConv (for conversion based on loadable char sets) -// ---------------------------------------------------------------------------- - -#include "wx/fontenc.h" - -class WXDLLIMPEXP_BASE wxCSConv : public wxMBConv -{ -public: - // we can be created either from charset name or from an encoding constant - // but we can't have both at once - wxCSConv(const wxString& charset); - wxCSConv(wxFontEncoding encoding); - - wxCSConv(const wxCSConv& conv); - virtual ~wxCSConv(); - - wxCSConv& operator=(const wxCSConv& conv); - - virtual size_t ToWChar(wchar_t *dst, size_t dstLen, - const char *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - virtual size_t FromWChar(char *dst, size_t dstLen, - const wchar_t *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - virtual size_t GetMBNulLen() const wxOVERRIDE; - -#if wxUSE_UNICODE_UTF8 - virtual bool IsUTF8() const wxOVERRIDE; -#endif - - virtual wxMBConv *Clone() const wxOVERRIDE { return new wxCSConv(*this); } - - void Clear(); - - // return true if the conversion could be initialized successfully - bool IsOk() const; - -private: - // common part of all ctors - void Init(); - - // Creates the conversion to use, called from all ctors to initialize - // m_convReal. - wxMBConv *DoCreate() const; - - // Set the name (may be only called when m_name == NULL), makes copy of - // the charset string. - void SetName(const char *charset); - - // Set m_encoding field respecting the rules below, i.e. making sure it has - // a valid value if m_name == NULL (thus this should be always called after - // SetName()). - // - // Input encoding may be valid or not. - void SetEncoding(wxFontEncoding encoding); - - - // The encoding we use is specified by the two fields below: - // - // 1. If m_name != NULL, m_encoding corresponds to it if it's one of - // encodings we know about (i.e. member of wxFontEncoding) or is - // wxFONTENCODING_SYSTEM otherwise. - // - // 2. If m_name == NULL, m_encoding is always valid, i.e. not one of - // wxFONTENCODING_{SYSTEM,DEFAULT,MAX}. - char *m_name; - wxFontEncoding m_encoding; - - // The conversion object for our encoding or NULL if we failed to create it - // in which case we fall back to hard-coded ISO8859-1 conversion. - wxMBConv *m_convReal; -}; - -// ---------------------------------------------------------------------------- -// wxWhateverWorksConv: use whatever encoding works for the input -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxWhateverWorksConv : public wxMBConv -{ -public: - wxWhateverWorksConv() - { - } - - // Try to interpret the string as UTF-8, if it fails fall back to the - // current locale encoding (wxConvLibc) and if this fails as well, - // interpret it as wxConvISO8859_1 (which is used because it never fails - // and this conversion is used when we really, really must produce - // something on output). - virtual size_t - ToWChar(wchar_t *dst, size_t dstLen, - const char *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - - // Try to encode the string using the current locale encoding (wxConvLibc) - // and fall back to UTF-8 (which never fails) if it doesn't work. Note that - // we never use wxConvISO8859_1 here as we prefer to fall back on UTF-8 - // even for the strings containing only code points representable in 8869-1. - virtual size_t - FromWChar(char *dst, size_t dstLen, - const wchar_t *src, size_t srcLen = wxNO_LEN) const wxOVERRIDE; - - virtual wxMBConv *Clone() const wxOVERRIDE - { - return new wxWhateverWorksConv(); - } -}; - -// ---------------------------------------------------------------------------- -// declare predefined conversion objects -// ---------------------------------------------------------------------------- - -// Note: this macro is an implementation detail (see the comment in -// strconv.cpp). The wxGet_XXX() and wxGet_XXXPtr() functions shouldn't be -// used by user code and neither should XXXPtr, use the wxConvXXX macro -// instead. -#define WX_DECLARE_GLOBAL_CONV(klass, name) \ - extern WXDLLIMPEXP_DATA_BASE(klass*) name##Ptr; \ - extern WXDLLIMPEXP_BASE klass* wxGet_##name##Ptr(); \ - inline klass& wxGet_##name() \ - { \ - if ( !name##Ptr ) \ - name##Ptr = wxGet_##name##Ptr(); \ - return *name##Ptr; \ - } - - -// conversion to be used with all standard functions affected by locale, e.g. -// strtol(), strftime(), ... -WX_DECLARE_GLOBAL_CONV(wxMBConv, wxConvLibc) -#define wxConvLibc wxGet_wxConvLibc() - -// conversion ISO-8859-1/UTF-7/UTF-8 <-> wchar_t -WX_DECLARE_GLOBAL_CONV(wxCSConv, wxConvISO8859_1) -#define wxConvISO8859_1 wxGet_wxConvISO8859_1() - -WX_DECLARE_GLOBAL_CONV(wxMBConvStrictUTF8, wxConvUTF8) -#define wxConvUTF8 wxGet_wxConvUTF8() - -WX_DECLARE_GLOBAL_CONV(wxMBConvUTF7, wxConvUTF7) -#define wxConvUTF7 wxGet_wxConvUTF7() - -// conversion used when we may not afford to lose data when outputting Unicode -// strings (should be avoid in the other direction as it can misinterpret the -// input encoding) -WX_DECLARE_GLOBAL_CONV(wxWhateverWorksConv, wxConvWhateverWorks) -#define wxConvWhateverWorks wxGet_wxConvWhateverWorks() - -// conversion used for the file names on the systems where they're not Unicode -// (basically anything except Windows) -// -// this is used by all file functions, can be changed by the application -// -// by default UTF-8 under Mac OS X and wxConvLibc elsewhere (but it's not used -// under Windows normally) -extern WXDLLIMPEXP_DATA_BASE(wxMBConv *) wxConvFileName; - -// backwards compatible define -#define wxConvFile (*wxConvFileName) - -// the current conversion object, may be set to any conversion, is used by -// default in a couple of places inside wx (initially same as wxConvLibc) -extern WXDLLIMPEXP_DATA_BASE(wxMBConv *) wxConvCurrent; - -// the conversion corresponding to the current locale -WX_DECLARE_GLOBAL_CONV(wxCSConv, wxConvLocal) -#define wxConvLocal wxGet_wxConvLocal() - -// the conversion corresponding to the encoding of the standard UI elements -// -// by default this is the same as wxConvLocal but may be changed if the program -// needs to use a fixed encoding -extern WXDLLIMPEXP_DATA_BASE(wxMBConv *) wxConvUI; - -#undef WX_DECLARE_GLOBAL_CONV - -// ---------------------------------------------------------------------------- -// endianness-dependent conversions -// ---------------------------------------------------------------------------- - -#ifdef WORDS_BIGENDIAN - typedef wxMBConvUTF16BE wxMBConvUTF16; - typedef wxMBConvUTF32BE wxMBConvUTF32; -#else - typedef wxMBConvUTF16LE wxMBConvUTF16; - typedef wxMBConvUTF32LE wxMBConvUTF32; -#endif - -// ---------------------------------------------------------------------------- -// filename conversion macros -// ---------------------------------------------------------------------------- - -// filenames are multibyte on Unix and widechar on Windows -#if wxMBFILES && wxUSE_UNICODE - #define wxFNCONV(name) wxConvFileName->cWX2MB(name) - #define wxFNSTRINGCAST wxMBSTRINGCAST -#else -#if defined(__WXOSX__) && wxMBFILES - #define wxFNCONV(name) wxConvFileName->cWC2MB( wxConvLocal.cWX2WC(name) ) -#else - #define wxFNCONV(name) name -#endif - #define wxFNSTRINGCAST WXSTRINGCAST -#endif - -// ---------------------------------------------------------------------------- -// macros for the most common conversions -// ---------------------------------------------------------------------------- - -#if wxUSE_UNICODE - #define wxConvertWX2MB(s) wxConvCurrent->cWX2MB(s) - #define wxConvertMB2WX(s) wxConvCurrent->cMB2WX(s) - - // these functions should be used when the conversions really, really have - // to succeed (usually because we pass their results to a standard C - // function which would crash if we passed NULL to it), so these functions - // always return a valid pointer if their argument is non-NULL - - inline wxWCharBuffer wxSafeConvertMB2WX(const char *s) - { - return wxConvWhateverWorks.cMB2WC(s); - } - - inline wxCharBuffer wxSafeConvertWX2MB(const wchar_t *ws) - { - return wxConvWhateverWorks.cWC2MB(ws); - } -#else // ANSI - // no conversions to do - #define wxConvertWX2MB(s) (s) - #define wxConvertMB2WX(s) (s) - #define wxSafeConvertMB2WX(s) (s) - #define wxSafeConvertWX2MB(s) (s) -#endif // Unicode/ANSI - -#endif // _WX_STRCONV_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stream.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stream.h deleted file mode 100644 index 52217f6f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stream.h +++ /dev/null @@ -1,683 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/stream.h -// Purpose: stream classes -// Author: Guilhem Lavaux, Guillermo Rodriguez Garcia, Vadim Zeitlin -// Modified by: -// Created: 11/07/98 -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXSTREAM_H__ -#define _WX_WXSTREAM_H__ - -#include "wx/defs.h" - -#if wxUSE_STREAMS - -#include <stdio.h> -#include "wx/object.h" -#include "wx/string.h" -#include "wx/filefn.h" // for wxFileOffset, wxInvalidOffset and wxSeekMode - -class WXDLLIMPEXP_FWD_BASE wxStreamBase; -class WXDLLIMPEXP_FWD_BASE wxInputStream; -class WXDLLIMPEXP_FWD_BASE wxOutputStream; - -typedef wxInputStream& (*__wxInputManip)(wxInputStream&); -typedef wxOutputStream& (*__wxOutputManip)(wxOutputStream&); - -WXDLLIMPEXP_BASE wxOutputStream& wxEndL(wxOutputStream& o_stream); - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -enum wxStreamError -{ - wxSTREAM_NO_ERROR = 0, // stream is in good state - wxSTREAM_EOF, // EOF reached in Read() or similar - wxSTREAM_WRITE_ERROR, // generic write error - wxSTREAM_READ_ERROR // generic read error -}; - -const int wxEOF = -1; - -// ============================================================================ -// base stream classes: wxInputStream and wxOutputStream -// ============================================================================ - -// --------------------------------------------------------------------------- -// wxStreamBase: common (but non virtual!) base for all stream classes -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxStreamBase : public wxObject -{ -public: - wxStreamBase(); - virtual ~wxStreamBase(); - - // error testing - wxStreamError GetLastError() const { return m_lasterror; } - virtual bool IsOk() const { return GetLastError() == wxSTREAM_NO_ERROR; } - bool operator!() const { return !IsOk(); } - - // reset the stream state - void Reset(wxStreamError error = wxSTREAM_NO_ERROR) { m_lasterror = error; } - - // this doesn't make sense for all streams, always test its return value - virtual size_t GetSize() const; - virtual wxFileOffset GetLength() const { return wxInvalidOffset; } - - // returns true if the streams supports seeking to arbitrary offsets - virtual bool IsSeekable() const { return false; } - -protected: - virtual wxFileOffset OnSysSeek(wxFileOffset seek, wxSeekMode mode); - virtual wxFileOffset OnSysTell() const; - - size_t m_lastcount; - wxStreamError m_lasterror; - - friend class wxStreamBuffer; - - wxDECLARE_ABSTRACT_CLASS(wxStreamBase); - wxDECLARE_NO_COPY_CLASS(wxStreamBase); -}; - -// ---------------------------------------------------------------------------- -// wxInputStream: base class for the input streams -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxInputStream : public wxStreamBase -{ -public: - // ctor and dtor, nothing exciting - wxInputStream(); - virtual ~wxInputStream(); - - - // IO functions - // ------------ - - // return a character from the stream without removing it, i.e. it will - // still be returned by the next call to GetC() - // - // blocks until something appears in the stream if necessary, if nothing - // ever does (i.e. EOF) LastRead() will return 0 (and the return value is - // undefined), otherwise 1 - virtual char Peek(); - - // return one byte from the stream, blocking until it appears if - // necessary - // - // on success returns a value between 0 - 255, or wxEOF on EOF or error. - int GetC(); - - // read at most the given number of bytes from the stream - // - // there are 2 possible situations here: either there is nothing at all in - // the stream right now in which case Read() blocks until something appears - // (use CanRead() to avoid this) or there is already some data available in - // the stream and then Read() doesn't block but returns just the data it - // can read without waiting for more - // - // in any case, if there are not enough bytes in the stream right now, - // LastRead() value will be less than size but greater than 0. If it is 0, - // it means that EOF has been reached. - virtual wxInputStream& Read(void *buffer, size_t size); - - // Read exactly the given number of bytes, unlike Read(), which may read - // less than the requested amount of data without returning an error, this - // method either reads all the data or returns false. - bool ReadAll(void *buffer, size_t size); - - // copy the entire contents of this stream into streamOut, stopping only - // when EOF is reached or an error occurs - wxInputStream& Read(wxOutputStream& streamOut); - - - // status functions - // ---------------- - - // returns the number of bytes read by the last call to Read(), GetC() or - // Peek() - // - // this should be used to discover whether that call succeeded in reading - // all the requested data or not - virtual size_t LastRead() const { return wxStreamBase::m_lastcount; } - - // returns true if some data is available in the stream right now, so that - // calling Read() wouldn't block - virtual bool CanRead() const; - - // is the stream at EOF? - // - // note that this cannot be really implemented for all streams and - // CanRead() is more reliable than Eof() - virtual bool Eof() const; - - - // write back buffer - // ----------------- - - // put back the specified number of bytes into the stream, they will be - // fetched by the next call to the read functions - // - // returns the number of bytes really stuffed back - size_t Ungetch(const void *buffer, size_t size); - - // put back the specified character in the stream - // - // returns true if ok, false on error - bool Ungetch(char c); - - - // position functions - // ------------------ - - // move the stream pointer to the given position (if the stream supports - // it) - // - // returns wxInvalidOffset on error - virtual wxFileOffset SeekI(wxFileOffset pos, wxSeekMode mode = wxFromStart); - - // return the current position of the stream pointer or wxInvalidOffset - virtual wxFileOffset TellI() const; - - - // stream-like operators - // --------------------- - - wxInputStream& operator>>(wxOutputStream& out) { return Read(out); } - wxInputStream& operator>>(__wxInputManip func) { return func(*this); } - -protected: - // do read up to size bytes of data into the provided buffer - // - // this method should return 0 if EOF has been reached or an error occurred - // (m_lasterror should be set accordingly as well) or the number of bytes - // read - virtual size_t OnSysRead(void *buffer, size_t size) = 0; - - // write-back buffer support - // ------------------------- - - // return the pointer to a buffer big enough to hold sizeNeeded bytes - char *AllocSpaceWBack(size_t sizeNeeded); - - // read up to size data from the write back buffer, return the number of - // bytes read - size_t GetWBack(void *buf, size_t size); - - // write back buffer or NULL if none - char *m_wback; - - // the size of the buffer - size_t m_wbacksize; - - // the current position in the buffer - size_t m_wbackcur; - - friend class wxStreamBuffer; - - wxDECLARE_ABSTRACT_CLASS(wxInputStream); - wxDECLARE_NO_COPY_CLASS(wxInputStream); -}; - -// ---------------------------------------------------------------------------- -// wxOutputStream: base for the output streams -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxOutputStream : public wxStreamBase -{ -public: - wxOutputStream(); - virtual ~wxOutputStream(); - - void PutC(char c); - virtual wxOutputStream& Write(const void *buffer, size_t size); - - // This is ReadAll() equivalent for Write(): it either writes exactly the - // given number of bytes or returns false, unlike Write() which can write - // less data than requested but still return without error. - bool WriteAll(const void *buffer, size_t size); - - wxOutputStream& Write(wxInputStream& stream_in); - - virtual wxFileOffset SeekO(wxFileOffset pos, wxSeekMode mode = wxFromStart); - virtual wxFileOffset TellO() const; - - virtual size_t LastWrite() const { return wxStreamBase::m_lastcount; } - - virtual void Sync(); - virtual bool Close() { return true; } - - wxOutputStream& operator<<(wxInputStream& out) { return Write(out); } - wxOutputStream& operator<<( __wxOutputManip func) { return func(*this); } - -protected: - // to be implemented in the derived classes (it should have been pure - // virtual) - virtual size_t OnSysWrite(const void *buffer, size_t bufsize); - - friend class wxStreamBuffer; - - wxDECLARE_ABSTRACT_CLASS(wxOutputStream); - wxDECLARE_NO_COPY_CLASS(wxOutputStream); -}; - -// ============================================================================ -// helper stream classes -// ============================================================================ - -// --------------------------------------------------------------------------- -// A stream for measuring streamed output -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxCountingOutputStream : public wxOutputStream -{ -public: - wxCountingOutputStream(); - - virtual wxFileOffset GetLength() const wxOVERRIDE; - bool Ok() const { return IsOk(); } - virtual bool IsOk() const wxOVERRIDE { return true; } - -protected: - virtual size_t OnSysWrite(const void *buffer, size_t size) wxOVERRIDE; - virtual wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) wxOVERRIDE; - virtual wxFileOffset OnSysTell() const wxOVERRIDE; - - size_t m_currentPos, - m_lastPos; - - wxDECLARE_DYNAMIC_CLASS(wxCountingOutputStream); - wxDECLARE_NO_COPY_CLASS(wxCountingOutputStream); -}; - -// --------------------------------------------------------------------------- -// "Filter" streams -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxFilterInputStream : public wxInputStream -{ -public: - wxFilterInputStream(); - wxFilterInputStream(wxInputStream& stream); - wxFilterInputStream(wxInputStream *stream); - virtual ~wxFilterInputStream(); - - virtual char Peek() wxOVERRIDE { return m_parent_i_stream->Peek(); } - - virtual wxFileOffset GetLength() const wxOVERRIDE { return m_parent_i_stream->GetLength(); } - - wxInputStream *GetFilterInputStream() const { return m_parent_i_stream; } - -protected: - wxInputStream *m_parent_i_stream; - bool m_owns; - - wxDECLARE_ABSTRACT_CLASS(wxFilterInputStream); - wxDECLARE_NO_COPY_CLASS(wxFilterInputStream); -}; - -class WXDLLIMPEXP_BASE wxFilterOutputStream : public wxOutputStream -{ -public: - wxFilterOutputStream(); - wxFilterOutputStream(wxOutputStream& stream); - wxFilterOutputStream(wxOutputStream *stream); - virtual ~wxFilterOutputStream(); - - virtual wxFileOffset GetLength() const wxOVERRIDE { return m_parent_o_stream->GetLength(); } - - wxOutputStream *GetFilterOutputStream() const { return m_parent_o_stream; } - - bool Close() wxOVERRIDE; - -protected: - wxOutputStream *m_parent_o_stream; - bool m_owns; - - wxDECLARE_ABSTRACT_CLASS(wxFilterOutputStream); - wxDECLARE_NO_COPY_CLASS(wxFilterOutputStream); -}; - -enum wxStreamProtocolType -{ - wxSTREAM_PROTOCOL, // wxFileSystem protocol (should be only one) - wxSTREAM_MIMETYPE, // MIME types the stream handles - wxSTREAM_ENCODING, // The HTTP Content-Encodings the stream handles - wxSTREAM_FILEEXT // File extensions the stream handles -}; - -void WXDLLIMPEXP_BASE wxUseFilterClasses(); - -class WXDLLIMPEXP_BASE wxFilterClassFactoryBase : public wxObject -{ -public: - virtual ~wxFilterClassFactoryBase() { } - - wxString GetProtocol() const { return wxString(*GetProtocols()); } - wxString PopExtension(const wxString& location) const; - - virtual const wxChar * const *GetProtocols(wxStreamProtocolType type - = wxSTREAM_PROTOCOL) const = 0; - - bool CanHandle(const wxString& protocol, - wxStreamProtocolType type - = wxSTREAM_PROTOCOL) const; - -protected: - wxString::size_type FindExtension(const wxString& location) const; - - wxDECLARE_ABSTRACT_CLASS(wxFilterClassFactoryBase); -}; - -class WXDLLIMPEXP_BASE wxFilterClassFactory : public wxFilterClassFactoryBase -{ -public: - virtual ~wxFilterClassFactory() { } - - virtual wxFilterInputStream *NewStream(wxInputStream& stream) const = 0; - virtual wxFilterOutputStream *NewStream(wxOutputStream& stream) const = 0; - virtual wxFilterInputStream *NewStream(wxInputStream *stream) const = 0; - virtual wxFilterOutputStream *NewStream(wxOutputStream *stream) const = 0; - - static const wxFilterClassFactory *Find(const wxString& protocol, - wxStreamProtocolType type - = wxSTREAM_PROTOCOL); - - static const wxFilterClassFactory *GetFirst(); - const wxFilterClassFactory *GetNext() const { return m_next; } - - void PushFront() { Remove(); m_next = sm_first; sm_first = this; } - void Remove(); - -protected: - wxFilterClassFactory() : m_next(this) { } - - wxFilterClassFactory& operator=(const wxFilterClassFactory&) - { return *this; } - -private: - static wxFilterClassFactory *sm_first; - wxFilterClassFactory *m_next; - - wxDECLARE_ABSTRACT_CLASS(wxFilterClassFactory); -}; - -// ============================================================================ -// buffered streams -// ============================================================================ - -// --------------------------------------------------------------------------- -// Stream buffer: this class can be derived from and passed to -// wxBufferedStreams to implement custom buffering -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxStreamBuffer -{ -public: - enum BufMode - { - read, - write, - read_write - }; - - wxStreamBuffer(wxStreamBase& stream, BufMode mode) - { - InitWithStream(stream, mode); - } - - wxStreamBuffer(size_t bufsize, wxInputStream& stream) - { - InitWithStream(stream, read); - SetBufferIO(bufsize); - } - - wxStreamBuffer(size_t bufsize, wxOutputStream& stream) - { - InitWithStream(stream, write); - SetBufferIO(bufsize); - } - - wxStreamBuffer(const wxStreamBuffer& buf); - virtual ~wxStreamBuffer(); - - // Filtered IO - virtual size_t Read(void *buffer, size_t size); - size_t Read(wxStreamBuffer *buf); - virtual size_t Write(const void *buffer, size_t size); - size_t Write(wxStreamBuffer *buf); - - virtual char Peek(); - virtual char GetChar(); - virtual void PutChar(char c); - virtual wxFileOffset Tell() const; - virtual wxFileOffset Seek(wxFileOffset pos, wxSeekMode mode); - - // Buffer control - void ResetBuffer(); - void Truncate(); - - // NB: the buffer must always be allocated with malloc() if takeOwn is - // true as it will be deallocated by free() - void SetBufferIO(void *start, void *end, bool takeOwnership = false); - void SetBufferIO(void *start, size_t len, bool takeOwnership = false); - void SetBufferIO(size_t bufsize); - void *GetBufferStart() const { return m_buffer_start; } - void *GetBufferEnd() const { return m_buffer_end; } - void *GetBufferPos() const { return m_buffer_pos; } - size_t GetBufferSize() const { return m_buffer_end - m_buffer_start; } - size_t GetIntPosition() const { return m_buffer_pos - m_buffer_start; } - void SetIntPosition(size_t pos) { m_buffer_pos = m_buffer_start + pos; } - size_t GetLastAccess() const { return m_buffer_end - m_buffer_start; } - size_t GetBytesLeft() const { return m_buffer_end - m_buffer_pos; } - - void Fixed(bool fixed) { m_fixed = fixed; } - void Flushable(bool f) { m_flushable = f; } - - bool FlushBuffer(); - bool FillBuffer(); - size_t GetDataLeft(); - - // misc accessors - wxStreamBase *GetStream() const { return m_stream; } - bool HasBuffer() const { return m_buffer_start != m_buffer_end; } - - bool IsFixed() const { return m_fixed; } - bool IsFlushable() const { return m_flushable; } - - // only for input/output buffers respectively, returns NULL otherwise - wxInputStream *GetInputStream() const; - wxOutputStream *GetOutputStream() const; - - // this constructs a dummy wxStreamBuffer, used by (and exists for) - // wxMemoryStreams only, don't use! - wxStreamBuffer(BufMode mode); - -protected: - void GetFromBuffer(void *buffer, size_t size); - void PutToBuffer(const void *buffer, size_t size); - - // set the last error to the specified value if we didn't have it before - void SetError(wxStreamError err); - - // common part of several ctors - void Init(); - - // common part of ctors taking wxStreamBase parameter - void InitWithStream(wxStreamBase& stream, BufMode mode); - - // init buffer variables to be empty - void InitBuffer(); - - // free the buffer (always safe to call) - void FreeBuffer(); - - // the buffer itself: the pointers to its start and end and the current - // position in the buffer - char *m_buffer_start, - *m_buffer_end, - *m_buffer_pos; - - // the stream we're associated with - wxStreamBase *m_stream; - - // its mode - BufMode m_mode; - - // flags - bool m_destroybuf, // deallocate buffer? - m_fixed, - m_flushable; - - - wxDECLARE_NO_ASSIGN_CLASS(wxStreamBuffer); -}; - -// --------------------------------------------------------------------------- -// wxBufferedInputStream -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxBufferedInputStream : public wxFilterInputStream -{ -public: - // create a buffered stream on top of the specified low-level stream - // - // if a non NULL buffer is given to the stream, it will be deleted by it, - // otherwise a default 1KB buffer will be used - wxBufferedInputStream(wxInputStream& stream, - wxStreamBuffer *buffer = NULL); - - // ctor allowing to specify the buffer size, it's just a more convenient - // alternative to creating wxStreamBuffer, calling its SetBufferIO(bufsize) - // and using the ctor above - wxBufferedInputStream(wxInputStream& stream, size_t bufsize); - - - virtual ~wxBufferedInputStream(); - - virtual char Peek() wxOVERRIDE; - virtual wxInputStream& Read(void *buffer, size_t size) wxOVERRIDE; - - // Position functions - virtual wxFileOffset SeekI(wxFileOffset pos, wxSeekMode mode = wxFromStart) wxOVERRIDE; - virtual wxFileOffset TellI() const wxOVERRIDE; - virtual bool IsSeekable() const wxOVERRIDE { return m_parent_i_stream->IsSeekable(); } - - // the buffer given to the stream will be deleted by it - void SetInputStreamBuffer(wxStreamBuffer *buffer); - wxStreamBuffer *GetInputStreamBuffer() const { return m_i_streambuf; } - -protected: - virtual size_t OnSysRead(void *buffer, size_t bufsize) wxOVERRIDE; - virtual wxFileOffset OnSysSeek(wxFileOffset seek, wxSeekMode mode) wxOVERRIDE; - virtual wxFileOffset OnSysTell() const wxOVERRIDE; - - wxStreamBuffer *m_i_streambuf; - - wxDECLARE_NO_COPY_CLASS(wxBufferedInputStream); -}; - -// ---------------------------------------------------------------------------- -// wxBufferedOutputStream -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxBufferedOutputStream : public wxFilterOutputStream -{ -public: - // create a buffered stream on top of the specified low-level stream - // - // if a non NULL buffer is given to the stream, it will be deleted by it, - // otherwise a default 1KB buffer will be used - wxBufferedOutputStream(wxOutputStream& stream, - wxStreamBuffer *buffer = NULL); - - // ctor allowing to specify the buffer size, it's just a more convenient - // alternative to creating wxStreamBuffer, calling its SetBufferIO(bufsize) - // and using the ctor above - wxBufferedOutputStream(wxOutputStream& stream, size_t bufsize); - - virtual ~wxBufferedOutputStream(); - - virtual wxOutputStream& Write(const void *buffer, size_t size) wxOVERRIDE; - - // Position functions - virtual wxFileOffset SeekO(wxFileOffset pos, wxSeekMode mode = wxFromStart) wxOVERRIDE; - virtual wxFileOffset TellO() const wxOVERRIDE; - virtual bool IsSeekable() const wxOVERRIDE { return m_parent_o_stream->IsSeekable(); } - - void Sync() wxOVERRIDE; - bool Close() wxOVERRIDE; - - virtual wxFileOffset GetLength() const wxOVERRIDE; - - // the buffer given to the stream will be deleted by it - void SetOutputStreamBuffer(wxStreamBuffer *buffer); - wxStreamBuffer *GetOutputStreamBuffer() const { return m_o_streambuf; } - -protected: - virtual size_t OnSysWrite(const void *buffer, size_t bufsize) wxOVERRIDE; - virtual wxFileOffset OnSysSeek(wxFileOffset seek, wxSeekMode mode) wxOVERRIDE; - virtual wxFileOffset OnSysTell() const wxOVERRIDE; - - wxStreamBuffer *m_o_streambuf; - - wxDECLARE_NO_COPY_CLASS(wxBufferedOutputStream); -}; - -// --------------------------------------------------------------------------- -// wxWrapperInputStream: forwards all IO to another stream. -// --------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxWrapperInputStream : public wxFilterInputStream -{ -public: - // Constructor fully initializing the stream. The overload taking pointer - // takes ownership of the parent stream, the one taking reference does not. - // - // Notice that this class also has a default ctor but it's protected as the - // derived class is supposed to take care of calling InitParentStream() if - // it's used. - wxWrapperInputStream(wxInputStream& stream); - wxWrapperInputStream(wxInputStream* stream); - - // Override the base class methods to forward to the wrapped stream. - virtual wxFileOffset GetLength() const wxOVERRIDE; - virtual bool IsSeekable() const wxOVERRIDE; - -protected: - virtual size_t OnSysRead(void *buffer, size_t size) wxOVERRIDE; - virtual wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) wxOVERRIDE; - virtual wxFileOffset OnSysTell() const wxOVERRIDE; - - // Ensure that our own last error is the same as that of the real stream. - // - // This method is const because the error must be updated even from const - // methods (in other words, it really should have been mutable in the first - // place). - void SynchronizeLastError() const - { - const_cast<wxWrapperInputStream*>(this)-> - Reset(m_parent_i_stream->GetLastError()); - } - - // Default constructor, use InitParentStream() later. - wxWrapperInputStream(); - - // Set up the wrapped stream for an object initialized using the default - // constructor. The ownership logic is the same as above. - void InitParentStream(wxInputStream& stream); - void InitParentStream(wxInputStream* stream); - - wxDECLARE_NO_COPY_CLASS(wxWrapperInputStream); -}; - - -#endif // wxUSE_STREAMS - -#endif // _WX_WXSTREAM_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/string.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/string.h deleted file mode 100644 index c23586e3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/string.h +++ /dev/null @@ -1,4176 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/string.h -// Purpose: wxString class -// Author: Vadim Zeitlin -// Modified by: -// Created: 29/01/98 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -/* - Efficient string class [more or less] compatible with MFC CString, - wxWidgets version 1 wxString and std::string and some handy functions - missing from string.h. -*/ - -#ifndef _WX_WXSTRING_H__ -#define _WX_WXSTRING_H__ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" // everybody should include this - -#if defined(__WXMAC__) - #include <ctype.h> -#endif - -#include <string.h> -#include <stdio.h> -#include <stdarg.h> -#include <limits.h> -#include <stdlib.h> - -#include "wx/wxcrtbase.h" // for wxChar, wxStrlen() etc. -#include "wx/strvararg.h" -#include "wx/buffer.h" // for wxCharBuffer -#include "wx/strconv.h" // for wxConvertXXX() macros and wxMBConv classes -#include "wx/stringimpl.h" -#include "wx/stringops.h" -#include "wx/unichar.h" - -// by default we cache the mapping of the positions in UTF-8 string to the byte -// offset as this results in noticeable performance improvements for loops over -// strings using indices; comment out this line to disable this -// -// notice that this optimization is well worth using even in debug builds as it -// changes asymptotic complexity of algorithms using indices to iterate over -// wxString back to expected linear from quadratic -// -// also notice that wxTLS_TYPE() (__declspec(thread) in this case) is unsafe to -// use in DLL build under pre-Vista Windows so we disable this code for now, if -// anybody really needs to use UTF-8 build under Windows with this optimization -// it would have to be re-tested and probably corrected -// CS: under OSX release builds the string destructor/cache cleanup sometimes -// crashes, disable until we find the true reason or a better workaround -#if wxUSE_UNICODE_UTF8 && !defined(__WINDOWS__) && !defined(__WXOSX__) - #define wxUSE_STRING_POS_CACHE 1 -#else - #define wxUSE_STRING_POS_CACHE 0 -#endif - -#if wxUSE_STRING_POS_CACHE - #include "wx/tls.h" - - // change this 0 to 1 to enable additional (very expensive) asserts - // verifying that string caching logic works as expected - #if 0 - #define wxSTRING_CACHE_ASSERT(cond) wxASSERT(cond) - #else - #define wxSTRING_CACHE_ASSERT(cond) - #endif -#endif // wxUSE_STRING_POS_CACHE - -class WXDLLIMPEXP_FWD_BASE wxString; - -// unless this symbol is predefined to disable the compatibility functions, do -// use them -#ifndef WXWIN_COMPATIBILITY_STRING_PTR_AS_ITER - #define WXWIN_COMPATIBILITY_STRING_PTR_AS_ITER 1 -#endif - -namespace wxPrivate -{ - template <typename T> struct wxStringAsBufHelper; -} - -// --------------------------------------------------------------------------- -// macros -// --------------------------------------------------------------------------- - -// casts [unfortunately!] needed to call some broken functions which require -// "char *" instead of "const char *" -#define WXSTRINGCAST (wxChar *)(const wxChar *) -#define wxCSTRINGCAST (wxChar *)(const wxChar *) -#define wxMBSTRINGCAST (char *)(const char *) -#define wxWCSTRINGCAST (wchar_t *)(const wchar_t *) - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// --------------------------------------------------------------------------- -// global functions complementing standard C string library replacements for -// strlen() and portable strcasecmp() -//--------------------------------------------------------------------------- - -#if WXWIN_COMPATIBILITY_2_8 -// Use wxXXX() functions from wxcrt.h instead! These functions are for -// backwards compatibility only. - -// checks whether the passed in pointer is NULL and if the string is empty -wxDEPRECATED_MSG("use wxIsEmpty() instead") -inline bool IsEmpty(const char *p) { return (!p || !*p); } - -// safe version of strlen() (returns 0 if passed NULL pointer) -wxDEPRECATED_MSG("use wxStrlen() instead") -inline size_t Strlen(const char *psz) - { return psz ? strlen(psz) : 0; } - -// portable strcasecmp/_stricmp -wxDEPRECATED_MSG("use wxStricmp() instead") -inline int Stricmp(const char *psz1, const char *psz2) - { return wxCRT_StricmpA(psz1, psz2); } - -#endif // WXWIN_COMPATIBILITY_2_8 - -// ---------------------------------------------------------------------------- -// wxCStrData -// ---------------------------------------------------------------------------- - -// Lightweight object returned by wxString::c_str() and implicitly convertible -// to either const char* or const wchar_t*. -class wxCStrData -{ -private: - // Ctors; for internal use by wxString and wxCStrData only - wxCStrData(const wxString *str, size_t offset = 0, bool owned = false) - : m_str(str), m_offset(offset), m_owned(owned) {} - -public: - // Ctor constructs the object from char literal; they are needed to make - // operator?: compile and they intentionally take char*, not const char* - inline wxCStrData(char *buf); - inline wxCStrData(wchar_t *buf); - inline wxCStrData(const wxCStrData& data); - - inline ~wxCStrData(); - - // AsWChar() and AsChar() can't be defined here as they use wxString and so - // must come after it and because of this won't be inlined when called from - // wxString methods (without a lot of work to extract these wxString methods - // from inside the class itself). But we still define them being inline - // below to let compiler inline them from elsewhere. And because of this we - // must declare them as inline here because otherwise some compilers give - // warnings about them, e.g. mingw32 3.4.5 warns about "<symbol> defined - // locally after being referenced with dllimport linkage" while IRIX - // mipsPro 7.4 warns about "function declared inline after being called". - inline const wchar_t* AsWChar() const; - operator const wchar_t*() const { return AsWChar(); } - - inline const char* AsChar() const; - const unsigned char* AsUnsignedChar() const - { return (const unsigned char *) AsChar(); } - operator const char*() const { return AsChar(); } - operator const unsigned char*() const { return AsUnsignedChar(); } - - operator const void*() const { return AsChar(); } - - // returns buffers that are valid as long as the associated wxString exists - const wxScopedCharBuffer AsCharBuf() const - { - return wxScopedCharBuffer::CreateNonOwned(AsChar()); - } - - const wxScopedWCharBuffer AsWCharBuf() const - { - return wxScopedWCharBuffer::CreateNonOwned(AsWChar()); - } - - inline wxString AsString() const; - - // returns the value as C string in internal representation (equivalent - // to AsString().wx_str(), but more efficient) - const wxStringCharType *AsInternal() const; - - // allow expressions like "c_str()[0]": - inline wxUniChar operator[](size_t n) const; - wxUniChar operator[](int n) const { return operator[](size_t(n)); } - wxUniChar operator[](long n) const { return operator[](size_t(n)); } -#ifndef wxSIZE_T_IS_UINT - wxUniChar operator[](unsigned int n) const { return operator[](size_t(n)); } -#endif // size_t != unsigned int - - // These operators are needed to emulate the pointer semantics of c_str(): - // expressions like "wxChar *p = str.c_str() + 1;" should continue to work - // (we need both versions to resolve ambiguities). Note that this means - // the 'n' value is interpreted as addition to char*/wchar_t* pointer, it - // is *not* number of Unicode characters in wxString. - wxCStrData operator+(int n) const - { return wxCStrData(m_str, m_offset + n, m_owned); } - wxCStrData operator+(long n) const - { return wxCStrData(m_str, m_offset + n, m_owned); } - wxCStrData operator+(size_t n) const - { return wxCStrData(m_str, m_offset + n, m_owned); } - - // and these for "str.c_str() + (p2 - p1)" (it also works for any integer - // expression but it must be ptrdiff_t and not e.g. int to work in this - // example): - wxCStrData operator-(ptrdiff_t n) const - { - wxASSERT_MSG( n <= (ptrdiff_t)m_offset, - wxT("attempt to construct address before the beginning of the string") ); - return wxCStrData(m_str, m_offset - n, m_owned); - } - - // this operator is needed to make expressions like "*c_str()" or - // "*(c_str() + 2)" work - inline wxUniChar operator*() const; - -private: - // the wxString this object was returned for - const wxString *m_str; - // Offset into c_str() return value. Note that this is *not* offset in - // m_str in Unicode characters. Instead, it is index into the - // char*/wchar_t* buffer returned by c_str(). It's interpretation depends - // on how is the wxCStrData instance used: if it is eventually cast to - // const char*, m_offset will be in bytes form string's start; if it is - // cast to const wchar_t*, it will be in wchar_t values. - size_t m_offset; - // should m_str be deleted, i.e. is it owned by us? - bool m_owned; - - friend class WXDLLIMPEXP_FWD_BASE wxString; -}; - -// ---------------------------------------------------------------------------- -// wxString: string class trying to be compatible with std::string, MFC -// CString and wxWindows 1.x wxString all at once -// --------------------------------------------------------------------------- - -#if wxUSE_UNICODE_UTF8 -// see the comment near wxString::iterator for why we need this -class WXDLLIMPEXP_BASE wxStringIteratorNode -{ -public: - wxStringIteratorNode() - : m_str(NULL), m_citer(NULL), m_iter(NULL), m_prev(NULL), m_next(NULL) {} - wxStringIteratorNode(const wxString *str, - wxStringImpl::const_iterator *citer) - { DoSet(str, citer, NULL); } - wxStringIteratorNode(const wxString *str, wxStringImpl::iterator *iter) - { DoSet(str, NULL, iter); } - ~wxStringIteratorNode() - { clear(); } - - inline void set(const wxString *str, wxStringImpl::const_iterator *citer) - { clear(); DoSet(str, citer, NULL); } - inline void set(const wxString *str, wxStringImpl::iterator *iter) - { clear(); DoSet(str, NULL, iter); } - - const wxString *m_str; - wxStringImpl::const_iterator *m_citer; - wxStringImpl::iterator *m_iter; - wxStringIteratorNode *m_prev, *m_next; - -private: - inline void clear(); - inline void DoSet(const wxString *str, - wxStringImpl::const_iterator *citer, - wxStringImpl::iterator *iter); - - // the node belongs to a particular iterator instance, it's not copied - // when a copy of the iterator is made - wxDECLARE_NO_COPY_CLASS(wxStringIteratorNode); -}; -#endif // wxUSE_UNICODE_UTF8 - -class WXDLLIMPEXP_BASE wxString -{ - // NB: special care was taken in arranging the member functions in such order - // that all inline functions can be effectively inlined, verify that all - // performance critical functions are still inlined if you change order! -public: - // an 'invalid' value for string index, moved to this place due to a CW bug - static const size_t npos; - -private: - // if we hadn't made these operators private, it would be possible to - // compile "wxString s; s = 17;" without any warnings as 17 is implicitly - // converted to char in C and we do have operator=(char) - // - // NB: we don't need other versions (short/long and unsigned) as attempt - // to assign another numeric type to wxString will now result in - // ambiguity between operator=(char) and operator=(int) - wxString& operator=(int); - - // these methods are not implemented - there is _no_ conversion from int to - // string, you're doing something wrong if the compiler wants to call it! - // - // try `s << i' or `s.Printf("%d", i)' instead - wxString(int); - - - // buffer for holding temporary substring when using any of the methods - // that take (char*,size_t) or (wchar_t*,size_t) arguments: - template<typename T> - struct SubstrBufFromType - { - T data; - size_t len; - - SubstrBufFromType(const T& data_, size_t len_) - : data(data_), len(len_) - { - wxASSERT_MSG( len != npos, "must have real length" ); - } - }; - -#if wxUSE_UNICODE_UTF8 - // even char* -> char* needs conversion, from locale charset to UTF-8 - typedef SubstrBufFromType<wxScopedCharBuffer> SubstrBufFromWC; - typedef SubstrBufFromType<wxScopedCharBuffer> SubstrBufFromMB; -#elif wxUSE_UNICODE_WCHAR - typedef SubstrBufFromType<const wchar_t*> SubstrBufFromWC; - typedef SubstrBufFromType<wxScopedWCharBuffer> SubstrBufFromMB; -#else - typedef SubstrBufFromType<const char*> SubstrBufFromMB; - typedef SubstrBufFromType<wxScopedCharBuffer> SubstrBufFromWC; -#endif - - - // Functions implementing primitive operations on string data; wxString - // methods and iterators are implemented in terms of it. The differences - // between UTF-8 and wchar_t* representations of the string are mostly - // contained here. - -#if wxUSE_UNICODE_UTF8 - static SubstrBufFromMB ConvertStr(const char *psz, size_t nLength, - const wxMBConv& conv); - static SubstrBufFromWC ConvertStr(const wchar_t *pwz, size_t nLength, - const wxMBConv& conv); -#elif wxUSE_UNICODE_WCHAR - static SubstrBufFromMB ConvertStr(const char *psz, size_t nLength, - const wxMBConv& conv); -#else - static SubstrBufFromWC ConvertStr(const wchar_t *pwz, size_t nLength, - const wxMBConv& conv); -#endif - -#if !wxUSE_UNICODE_UTF8 // wxUSE_UNICODE_WCHAR or !wxUSE_UNICODE - // returns C string encoded as the implementation expects: - #if wxUSE_UNICODE - static const wchar_t* ImplStr(const wchar_t* str) - { return str ? str : wxT(""); } - static const SubstrBufFromWC ImplStr(const wchar_t* str, size_t n) - { return SubstrBufFromWC(str, (str && n == npos) ? wxWcslen(str) : n); } - static wxScopedWCharBuffer ImplStr(const char* str, - const wxMBConv& conv = wxConvLibc) - { return ConvertStr(str, npos, conv).data; } - static SubstrBufFromMB ImplStr(const char* str, size_t n, - const wxMBConv& conv = wxConvLibc) - { return ConvertStr(str, n, conv); } - #else - static const char* ImplStr(const char* str, - const wxMBConv& WXUNUSED(conv) = wxConvLibc) - { return str ? str : ""; } - static const SubstrBufFromMB ImplStr(const char* str, size_t n, - const wxMBConv& WXUNUSED(conv) = wxConvLibc) - { return SubstrBufFromMB(str, (str && n == npos) ? wxStrlen(str) : n); } - static wxScopedCharBuffer ImplStr(const wchar_t* str) - { return ConvertStr(str, npos, wxConvLibc).data; } - static SubstrBufFromWC ImplStr(const wchar_t* str, size_t n) - { return ConvertStr(str, n, wxConvLibc); } - #endif - - // translates position index in wxString to/from index in underlying - // wxStringImpl: - static size_t PosToImpl(size_t pos) { return pos; } - static void PosLenToImpl(size_t pos, size_t len, - size_t *implPos, size_t *implLen) - { *implPos = pos; *implLen = len; } - static size_t LenToImpl(size_t len) { return len; } - static size_t PosFromImpl(size_t pos) { return pos; } - - // we don't want to define these as empty inline functions as it could - // result in noticeable (and quite unnecessary in non-UTF-8 build) slowdown - // in debug build where the inline functions are not effectively inlined - #define wxSTRING_INVALIDATE_CACHE() - #define wxSTRING_INVALIDATE_CACHED_LENGTH() - #define wxSTRING_UPDATE_CACHED_LENGTH(n) - #define wxSTRING_SET_CACHED_LENGTH(n) - -#else // wxUSE_UNICODE_UTF8 - - static wxScopedCharBuffer ImplStr(const char* str, - const wxMBConv& conv = wxConvLibc) - { return ConvertStr(str, npos, conv).data; } - static SubstrBufFromMB ImplStr(const char* str, size_t n, - const wxMBConv& conv = wxConvLibc) - { return ConvertStr(str, n, conv); } - - static wxScopedCharBuffer ImplStr(const wchar_t* str) - { return ConvertStr(str, npos, wxMBConvUTF8()).data; } - static SubstrBufFromWC ImplStr(const wchar_t* str, size_t n) - { return ConvertStr(str, n, wxMBConvUTF8()); } - -#if wxUSE_STRING_POS_CACHE - // this is an extremely simple cache used by PosToImpl(): each cache element - // contains the string it applies to and the index corresponding to the last - // used position in this wxString in its m_impl string - // - // NB: notice that this struct (and nested Element one) must be a POD or we - // wouldn't be able to use a thread-local variable of this type, in - // particular it should have no ctor -- we rely on statics being - // initialized to 0 instead - struct Cache - { - enum { SIZE = 8 }; - - struct Element - { - const wxString *str; // the string to which this element applies - size_t pos, // the cached index in this string - impl, // the corresponding position in its m_impl - len; // cached length or npos if unknown - - // reset cached index to 0 - void ResetPos() { pos = impl = 0; } - - // reset position and length - void Reset() { ResetPos(); len = npos; } - }; - - // cache the indices mapping for the last few string used - Element cached[SIZE]; - - // the last used index - unsigned lastUsed; - }; - -#ifndef wxHAS_COMPILER_TLS - // we must use an accessor function and not a static variable when the TLS - // variables support is implemented in the library (and not by the compiler) - // because the global s_cache variable could be not yet initialized when a - // ctor of another global object is executed and if that ctor uses any - // wxString methods, bad things happen - // - // however notice that this approach does not work when compiler TLS is used, - // at least not with g++ 4.1.2 under amd64 as it apparently compiles code - // using this accessor incorrectly when optimizations are enabled (-O2 is - // enough) -- luckily we don't need it then neither as static __thread - // variables are initialized by 0 anyhow then and so we can use the variable - // directly - WXEXPORT static Cache& GetCache() - { - static wxTLS_TYPE(Cache) s_cache; - - return wxTLS_VALUE(s_cache); - } - - // this helper struct is used to ensure that GetCache() is called during - // static initialization time, i.e. before any threads creation, as otherwise - // the static s_cache construction inside GetCache() wouldn't be MT-safe - friend struct wxStrCacheInitializer; -#else // wxHAS_COMPILER_TLS - static wxTLS_TYPE(Cache) ms_cache; - static Cache& GetCache() { return wxTLS_VALUE(ms_cache); } -#endif // !wxHAS_COMPILER_TLS/wxHAS_COMPILER_TLS - - static Cache::Element *GetCacheBegin() { return GetCache().cached; } - static Cache::Element *GetCacheEnd() { return GetCacheBegin() + Cache::SIZE; } - static unsigned& LastUsedCacheElement() { return GetCache().lastUsed; } - - // this is used in debug builds only to provide a convenient function, - // callable from a debugger, to show the cache contents - friend struct wxStrCacheDumper; - - // uncomment this to have access to some profiling statistics on program - // termination - //#define wxPROFILE_STRING_CACHE - -#ifdef wxPROFILE_STRING_CACHE - static struct PosToImplCacheStats - { - unsigned postot, // total non-trivial calls to PosToImpl - poshits, // cache hits from PosToImpl() - mishits, // cached position beyond the needed one - sumpos, // sum of all positions, used to compute the - // average position after dividing by postot - sumofs, // sum of all offsets after using the cache, used to - // compute the average after dividing by hits - lentot, // number of total calls to length() - lenhits; // number of cache hits in length() - } ms_cacheStats; - - friend struct wxStrCacheStatsDumper; - - #define wxCACHE_PROFILE_FIELD_INC(field) ms_cacheStats.field++ - #define wxCACHE_PROFILE_FIELD_ADD(field, val) ms_cacheStats.field += (val) -#else // !wxPROFILE_STRING_CACHE - #define wxCACHE_PROFILE_FIELD_INC(field) - #define wxCACHE_PROFILE_FIELD_ADD(field, val) -#endif // wxPROFILE_STRING_CACHE/!wxPROFILE_STRING_CACHE - - // note: it could seem that the functions below shouldn't be inline because - // they are big, contain loops and so the compiler shouldn't be able to - // inline them anyhow, however moving them into string.cpp does decrease the - // code performance by ~5%, at least when using g++ 4.1 so do keep them here - // unless tests show that it's not advantageous any more - - // return the pointer to the cache element for this string or NULL if not - // cached - Cache::Element *FindCacheElement() const - { - // profiling seems to show a small but consistent gain if we use this - // simple loop instead of starting from the last used element (there are - // a lot of misses in this function...) - Cache::Element * const cacheBegin = GetCacheBegin(); -#ifndef wxHAS_COMPILER_TLS - // during destruction tls calls may return NULL, in this case return NULL - // immediately without accessing anything else - if ( cacheBegin == NULL ) - return NULL; -#endif - Cache::Element * const cacheEnd = GetCacheEnd(); - for ( Cache::Element *c = cacheBegin; c != cacheEnd; c++ ) - { - if ( c->str == this ) - return c; - } - - return NULL; - } - - // unlike FindCacheElement(), this one always returns a valid pointer to the - // cache element for this string, it may have valid last cached position and - // its corresponding index in the byte string or not - Cache::Element *GetCacheElement() const - { - Cache::Element * const cacheBegin = GetCacheBegin(); - Cache::Element * const cacheEnd = GetCacheEnd(); - Cache::Element * const cacheStart = cacheBegin + LastUsedCacheElement(); - - // check the last used first, this does no (measurable) harm for a miss - // but does help for simple loops addressing the same string all the time - if ( cacheStart->str == this ) - return cacheStart; - - // notice that we're going to check cacheStart again inside this call but - // profiling shows that it's still faster to use a simple loop like - // inside FindCacheElement() than manually looping with wrapping starting - // from the cache entry after the start one - Cache::Element *c = FindCacheElement(); - if ( !c ) - { - // claim the next cache entry for this string - c = cacheStart; - if ( ++c == cacheEnd ) - c = cacheBegin; - - c->str = this; - c->Reset(); - - // and remember the last used element - LastUsedCacheElement() = c - cacheBegin; - } - - return c; - } - - size_t DoPosToImpl(size_t pos) const - { - wxCACHE_PROFILE_FIELD_INC(postot); - - // NB: although the case of pos == 1 (and offset from cached position - // equal to 1) are common, nothing is gained by writing special code - // for handling them, the compiler (at least g++ 4.1 used) seems to - // optimize the code well enough on its own - - wxCACHE_PROFILE_FIELD_ADD(sumpos, pos); - - Cache::Element * const cache = GetCacheElement(); - - // cached position can't be 0 so if it is, it means that this entry was - // used for length caching only so far, i.e. it doesn't count as a hit - // from our point of view - if ( cache->pos ) - { - wxCACHE_PROFILE_FIELD_INC(poshits); - } - - if ( pos == cache->pos ) - return cache->impl; - - // this seems to happen only rarely so just reset the cache in this case - // instead of complicating code even further by seeking backwards in this - // case - if ( cache->pos > pos ) - { - wxCACHE_PROFILE_FIELD_INC(mishits); - - cache->ResetPos(); - } - - wxCACHE_PROFILE_FIELD_ADD(sumofs, pos - cache->pos); - - - wxStringImpl::const_iterator i(m_impl.begin() + cache->impl); - for ( size_t n = cache->pos; n < pos; n++ ) - wxStringOperations::IncIter(i); - - cache->pos = pos; - cache->impl = i - m_impl.begin(); - - wxSTRING_CACHE_ASSERT( - (int)cache->impl == (begin() + pos).impl() - m_impl.begin() ); - - return cache->impl; - } - - void InvalidateCache() - { - Cache::Element * const cache = FindCacheElement(); - if ( cache ) - cache->Reset(); - } - - void InvalidateCachedLength() - { - Cache::Element * const cache = FindCacheElement(); - if ( cache ) - cache->len = npos; - } - - void SetCachedLength(size_t len) - { - // we optimistically cache the length here even if the string wasn't - // present in the cache before, this seems to do no harm and the - // potential for avoiding length recomputation for long strings looks - // interesting - GetCacheElement()->len = len; - } - - void UpdateCachedLength(ptrdiff_t delta) - { - Cache::Element * const cache = FindCacheElement(); - if ( cache && cache->len != npos ) - { - wxSTRING_CACHE_ASSERT( (ptrdiff_t)cache->len + delta >= 0 ); - - cache->len += delta; - } - } - - #define wxSTRING_INVALIDATE_CACHE() InvalidateCache() - #define wxSTRING_INVALIDATE_CACHED_LENGTH() InvalidateCachedLength() - #define wxSTRING_UPDATE_CACHED_LENGTH(n) UpdateCachedLength(n) - #define wxSTRING_SET_CACHED_LENGTH(n) SetCachedLength(n) -#else // !wxUSE_STRING_POS_CACHE - size_t DoPosToImpl(size_t pos) const - { - return (begin() + pos).impl() - m_impl.begin(); - } - - #define wxSTRING_INVALIDATE_CACHE() - #define wxSTRING_INVALIDATE_CACHED_LENGTH() - #define wxSTRING_UPDATE_CACHED_LENGTH(n) - #define wxSTRING_SET_CACHED_LENGTH(n) -#endif // wxUSE_STRING_POS_CACHE/!wxUSE_STRING_POS_CACHE - - size_t PosToImpl(size_t pos) const - { - return pos == 0 || pos == npos ? pos : DoPosToImpl(pos); - } - - void PosLenToImpl(size_t pos, size_t len, size_t *implPos, size_t *implLen) const; - - size_t LenToImpl(size_t len) const - { - size_t pos, len2; - PosLenToImpl(0, len, &pos, &len2); - return len2; - } - - size_t PosFromImpl(size_t pos) const - { - if ( pos == 0 || pos == npos ) - return pos; - else - return const_iterator(this, m_impl.begin() + pos) - begin(); - } -#endif // !wxUSE_UNICODE_UTF8/wxUSE_UNICODE_UTF8 - -public: - // standard types - typedef wxUniChar value_type; - typedef wxUniChar char_type; - typedef wxUniCharRef reference; - typedef wxChar* pointer; - typedef const wxChar* const_pointer; - - typedef size_t size_type; - typedef wxUniChar const_reference; - -#if wxUSE_STD_STRING - #if wxUSE_UNICODE_UTF8 - // random access is not O(1), as required by Random Access Iterator - #define WX_STR_ITERATOR_TAG std::bidirectional_iterator_tag - #else - #define WX_STR_ITERATOR_TAG std::random_access_iterator_tag - #endif - #define WX_DEFINE_ITERATOR_CATEGORY(cat) typedef cat iterator_category; -#else - // not defining iterator_category at all in this case is better than defining - // it as some dummy type -- at least it results in more intelligible error - // messages - #define WX_DEFINE_ITERATOR_CATEGORY(cat) -#endif - - #define WX_STR_ITERATOR_IMPL(iterator_name, pointer_type, reference_type) \ - private: \ - typedef wxStringImpl::iterator_name underlying_iterator; \ - public: \ - WX_DEFINE_ITERATOR_CATEGORY(WX_STR_ITERATOR_TAG) \ - typedef wxUniChar value_type; \ - typedef ptrdiff_t difference_type; \ - typedef reference_type reference; \ - typedef pointer_type pointer; \ - \ - reference operator[](size_t n) const { return *(*this + n); } \ - \ - iterator_name& operator++() \ - { wxStringOperations::IncIter(m_cur); return *this; } \ - iterator_name& operator--() \ - { wxStringOperations::DecIter(m_cur); return *this; } \ - iterator_name operator++(int) \ - { \ - iterator_name tmp = *this; \ - wxStringOperations::IncIter(m_cur); \ - return tmp; \ - } \ - iterator_name operator--(int) \ - { \ - iterator_name tmp = *this; \ - wxStringOperations::DecIter(m_cur); \ - return tmp; \ - } \ - \ - iterator_name& operator+=(ptrdiff_t n) \ - { \ - m_cur = wxStringOperations::AddToIter(m_cur, n); \ - return *this; \ - } \ - iterator_name& operator-=(ptrdiff_t n) \ - { \ - m_cur = wxStringOperations::AddToIter(m_cur, -n); \ - return *this; \ - } \ - \ - difference_type operator-(const iterator_name& i) const \ - { return wxStringOperations::DiffIters(m_cur, i.m_cur); } \ - \ - bool operator==(const iterator_name& i) const \ - { return m_cur == i.m_cur; } \ - bool operator!=(const iterator_name& i) const \ - { return m_cur != i.m_cur; } \ - \ - bool operator<(const iterator_name& i) const \ - { return m_cur < i.m_cur; } \ - bool operator>(const iterator_name& i) const \ - { return m_cur > i.m_cur; } \ - bool operator<=(const iterator_name& i) const \ - { return m_cur <= i.m_cur; } \ - bool operator>=(const iterator_name& i) const \ - { return m_cur >= i.m_cur; } \ - \ - private: \ - /* for internal wxString use only: */ \ - underlying_iterator impl() const { return m_cur; } \ - \ - friend class wxString; \ - friend class wxCStrData; \ - \ - private: \ - underlying_iterator m_cur - - class WXDLLIMPEXP_FWD_BASE const_iterator; - -#if wxUSE_UNICODE_UTF8 - // NB: In UTF-8 build, (non-const) iterator needs to keep reference - // to the underlying wxStringImpl, because UTF-8 is variable-length - // encoding and changing the value pointer to by an iterator (using - // its operator*) requires calling wxStringImpl::replace() if the old - // and new values differ in their encoding's length. - // - // Furthermore, the replace() call may invalid all iterators for the - // string, so we have to keep track of outstanding iterators and update - // them if replace() happens. - // - // This is implemented by maintaining linked list of iterators for every - // string and traversing it in wxUniCharRef::operator=(). Head of the - // list is stored in wxString. (FIXME-UTF8) - - class WXDLLIMPEXP_BASE iterator - { - WX_STR_ITERATOR_IMPL(iterator, wxChar*, wxUniCharRef); - - public: - iterator() {} - iterator(const iterator& i) - : m_cur(i.m_cur), m_node(i.str(), &m_cur) {} - iterator& operator=(const iterator& i) - { - if (&i != this) - { - m_cur = i.m_cur; - m_node.set(i.str(), &m_cur); - } - return *this; - } - - reference operator*() - { return wxUniCharRef::CreateForString(*str(), m_cur); } - - iterator operator+(ptrdiff_t n) const - { return iterator(str(), wxStringOperations::AddToIter(m_cur, n)); } - iterator operator-(ptrdiff_t n) const - { return iterator(str(), wxStringOperations::AddToIter(m_cur, -n)); } - - // Normal iterators need to be comparable with the const_iterators so - // declare the comparison operators and implement them below after the - // full const_iterator declaration. - bool operator==(const const_iterator& i) const; - bool operator!=(const const_iterator& i) const; - bool operator<(const const_iterator& i) const; - bool operator>(const const_iterator& i) const; - bool operator<=(const const_iterator& i) const; - bool operator>=(const const_iterator& i) const; - - private: - iterator(wxString *wxstr, underlying_iterator ptr) - : m_cur(ptr), m_node(wxstr, &m_cur) {} - - wxString* str() const { return const_cast<wxString*>(m_node.m_str); } - - wxStringIteratorNode m_node; - - friend class const_iterator; - }; - - class WXDLLIMPEXP_BASE const_iterator - { - // NB: reference_type is intentionally value, not reference, the character - // may be encoded differently in wxString data: - WX_STR_ITERATOR_IMPL(const_iterator, const wxChar*, wxUniChar); - - public: - const_iterator() {} - const_iterator(const const_iterator& i) - : m_cur(i.m_cur), m_node(i.str(), &m_cur) {} - const_iterator(const iterator& i) - : m_cur(i.m_cur), m_node(i.str(), &m_cur) {} - - const_iterator& operator=(const const_iterator& i) - { - if (&i != this) - { - m_cur = i.m_cur; - m_node.set(i.str(), &m_cur); - } - return *this; - } - const_iterator& operator=(const iterator& i) - { m_cur = i.m_cur; m_node.set(i.str(), &m_cur); return *this; } - - reference operator*() const - { return wxStringOperations::DecodeChar(m_cur); } - - const_iterator operator+(ptrdiff_t n) const - { return const_iterator(str(), wxStringOperations::AddToIter(m_cur, n)); } - const_iterator operator-(ptrdiff_t n) const - { return const_iterator(str(), wxStringOperations::AddToIter(m_cur, -n)); } - - // Notice that comparison operators taking non-const iterator are not - // needed here because of the implicit conversion from non-const iterator - // to const ones ensure that the versions for const_iterator declared - // inside WX_STR_ITERATOR_IMPL can be used. - - private: - // for internal wxString use only: - const_iterator(const wxString *wxstr, underlying_iterator ptr) - : m_cur(ptr), m_node(wxstr, &m_cur) {} - - const wxString* str() const { return m_node.m_str; } - - wxStringIteratorNode m_node; - }; - - size_t IterToImplPos(wxString::iterator i) const - { return wxStringImpl::const_iterator(i.impl()) - m_impl.begin(); } - - iterator GetIterForNthChar(size_t n) - { return iterator(this, m_impl.begin() + PosToImpl(n)); } - const_iterator GetIterForNthChar(size_t n) const - { return const_iterator(this, m_impl.begin() + PosToImpl(n)); } -#else // !wxUSE_UNICODE_UTF8 - - class WXDLLIMPEXP_BASE iterator - { - WX_STR_ITERATOR_IMPL(iterator, wxChar*, wxUniCharRef); - - public: - iterator() {} - iterator(const iterator& i) : m_cur(i.m_cur) {} - - reference operator*() - { return wxUniCharRef::CreateForString(m_cur); } - - iterator operator+(ptrdiff_t n) const - { return iterator(wxStringOperations::AddToIter(m_cur, n)); } - iterator operator-(ptrdiff_t n) const - { return iterator(wxStringOperations::AddToIter(m_cur, -n)); } - - // As in UTF-8 case above, define comparison operators taking - // const_iterator too. - bool operator==(const const_iterator& i) const; - bool operator!=(const const_iterator& i) const; - bool operator<(const const_iterator& i) const; - bool operator>(const const_iterator& i) const; - bool operator<=(const const_iterator& i) const; - bool operator>=(const const_iterator& i) const; - - private: - // for internal wxString use only: - iterator(underlying_iterator ptr) : m_cur(ptr) {} - iterator(wxString *WXUNUSED(str), underlying_iterator ptr) : m_cur(ptr) {} - - friend class const_iterator; - }; - - class WXDLLIMPEXP_BASE const_iterator - { - // NB: reference_type is intentionally value, not reference, the character - // may be encoded differently in wxString data: - WX_STR_ITERATOR_IMPL(const_iterator, const wxChar*, wxUniChar); - - public: - const_iterator() {} - const_iterator(const const_iterator& i) : m_cur(i.m_cur) {} - const_iterator(const iterator& i) : m_cur(i.m_cur) {} - - reference operator*() const - { return wxStringOperations::DecodeChar(m_cur); } - - const_iterator operator+(ptrdiff_t n) const - { return const_iterator(wxStringOperations::AddToIter(m_cur, n)); } - const_iterator operator-(ptrdiff_t n) const - { return const_iterator(wxStringOperations::AddToIter(m_cur, -n)); } - - // As in UTF-8 case above, we don't need comparison operators taking - // iterator because we have an implicit conversion from iterator to - // const_iterator so the operators declared by WX_STR_ITERATOR_IMPL will - // be used. - - private: - // for internal wxString use only: - const_iterator(underlying_iterator ptr) : m_cur(ptr) {} - const_iterator(const wxString *WXUNUSED(str), underlying_iterator ptr) - : m_cur(ptr) {} - }; - - iterator GetIterForNthChar(size_t n) { return begin() + n; } - const_iterator GetIterForNthChar(size_t n) const { return begin() + n; } -#endif // wxUSE_UNICODE_UTF8/!wxUSE_UNICODE_UTF8 - - #undef WX_STR_ITERATOR_TAG - #undef WX_STR_ITERATOR_IMPL - - // This method is mostly used by wxWidgets itself and return the offset of - // the given iterator in bytes relative to the start of the buffer - // representing the current string contents in the current locale encoding. - // - // It is inefficient as it involves converting part of the string to this - // encoding (and also unsafe as it simply returns 0 if the conversion fails) - // and so should be avoided if possible, wx itself only uses it to implement - // backwards-compatible API. - ptrdiff_t IterOffsetInMBStr(const const_iterator& i) const - { - const wxString str(begin(), i); - - // This is logically equivalent to strlen(str.mb_str()) but avoids - // actually converting the string to multibyte and just computes the - // length that it would have after conversion. - size_t ofs = wxConvLibc.FromWChar(NULL, 0, str.wc_str(), str.length()); - return ofs == wxCONV_FAILED ? 0 : static_cast<ptrdiff_t>(ofs); - } - - friend class iterator; - friend class const_iterator; - - template <typename T> - class reverse_iterator_impl - { - public: - typedef T iterator_type; - - WX_DEFINE_ITERATOR_CATEGORY(typename T::iterator_category) - typedef typename T::value_type value_type; - typedef typename T::difference_type difference_type; - typedef typename T::reference reference; - typedef typename T::pointer *pointer; - - reverse_iterator_impl() {} - reverse_iterator_impl(iterator_type i) : m_cur(i) {} - reverse_iterator_impl(const reverse_iterator_impl& ri) - : m_cur(ri.m_cur) {} - - iterator_type base() const { return m_cur; } - - reference operator*() const { return *(m_cur-1); } - reference operator[](size_t n) const { return *(*this + n); } - - reverse_iterator_impl& operator++() - { --m_cur; return *this; } - reverse_iterator_impl operator++(int) - { reverse_iterator_impl tmp = *this; --m_cur; return tmp; } - reverse_iterator_impl& operator--() - { ++m_cur; return *this; } - reverse_iterator_impl operator--(int) - { reverse_iterator_impl tmp = *this; ++m_cur; return tmp; } - - // NB: explicit <T> in the functions below is to keep BCC 5.5 happy - reverse_iterator_impl operator+(ptrdiff_t n) const - { return reverse_iterator_impl<T>(m_cur - n); } - reverse_iterator_impl operator-(ptrdiff_t n) const - { return reverse_iterator_impl<T>(m_cur + n); } - reverse_iterator_impl operator+=(ptrdiff_t n) - { m_cur -= n; return *this; } - reverse_iterator_impl operator-=(ptrdiff_t n) - { m_cur += n; return *this; } - - difference_type operator-(const reverse_iterator_impl& i) const - { return i.m_cur - m_cur; } - - bool operator==(const reverse_iterator_impl& ri) const - { return m_cur == ri.m_cur; } - bool operator!=(const reverse_iterator_impl& ri) const - { return !(*this == ri); } - - bool operator<(const reverse_iterator_impl& i) const - { return m_cur > i.m_cur; } - bool operator>(const reverse_iterator_impl& i) const - { return m_cur < i.m_cur; } - bool operator<=(const reverse_iterator_impl& i) const - { return m_cur >= i.m_cur; } - bool operator>=(const reverse_iterator_impl& i) const - { return m_cur <= i.m_cur; } - - private: - iterator_type m_cur; - }; - - typedef reverse_iterator_impl<iterator> reverse_iterator; - typedef reverse_iterator_impl<const_iterator> const_reverse_iterator; - -private: - // used to transform an expression built using c_str() (and hence of type - // wxCStrData) to an iterator into the string - static const_iterator CreateConstIterator(const wxCStrData& data) - { - return const_iterator(data.m_str, - (data.m_str->begin() + data.m_offset).impl()); - } - - // in UTF-8 STL build, creation from std::string requires conversion under - // non-UTF8 locales, so we can't have and use wxString(wxStringImpl) ctor; - // instead we define dummy type that lets us have wxString ctor for creation - // from wxStringImpl that couldn't be used by user code (in all other builds, - // "standard" ctors can be used): -#if wxUSE_UNICODE_UTF8 && wxUSE_STL_BASED_WXSTRING - struct CtorFromStringImplTag {}; - - wxString(CtorFromStringImplTag* WXUNUSED(dummy), const wxStringImpl& src) - : m_impl(src) {} - - static wxString FromImpl(const wxStringImpl& src) - { return wxString((CtorFromStringImplTag*)NULL, src); } -#else - #if !wxUSE_STL_BASED_WXSTRING - wxString(const wxStringImpl& src) : m_impl(src) { } - // else: already defined as wxString(wxStdString) below - #endif - static wxString FromImpl(const wxStringImpl& src) { return wxString(src); } -#endif - -public: - // constructors and destructor - // ctor for an empty string - wxString() {} - - // copy ctor - wxString(const wxString& stringSrc) : m_impl(stringSrc.m_impl) { } - - // string containing nRepeat copies of ch - wxString(wxUniChar ch, size_t nRepeat = 1 ) - { assign(nRepeat, ch); } - wxString(size_t nRepeat, wxUniChar ch) - { assign(nRepeat, ch); } - wxString(wxUniCharRef ch, size_t nRepeat = 1) - { assign(nRepeat, ch); } - wxString(size_t nRepeat, wxUniCharRef ch) - { assign(nRepeat, ch); } - wxString(char ch, size_t nRepeat = 1) - { assign(nRepeat, ch); } - wxString(size_t nRepeat, char ch) - { assign(nRepeat, ch); } - wxString(wchar_t ch, size_t nRepeat = 1) - { assign(nRepeat, ch); } - wxString(size_t nRepeat, wchar_t ch) - { assign(nRepeat, ch); } - - // ctors from char* strings: - wxString(const char *psz) - : m_impl(ImplStr(psz)) {} - wxString(const char *psz, const wxMBConv& conv) - : m_impl(ImplStr(psz, conv)) {} - wxString(const char *psz, size_t nLength) - { assign(psz, nLength); } - wxString(const char *psz, const wxMBConv& conv, size_t nLength) - { - SubstrBufFromMB str(ImplStr(psz, nLength, conv)); - m_impl.assign(str.data, str.len); - } - - // and unsigned char*: - wxString(const unsigned char *psz) - : m_impl(ImplStr((const char*)psz)) {} - wxString(const unsigned char *psz, const wxMBConv& conv) - : m_impl(ImplStr((const char*)psz, conv)) {} - wxString(const unsigned char *psz, size_t nLength) - { assign((const char*)psz, nLength); } - wxString(const unsigned char *psz, const wxMBConv& conv, size_t nLength) - { - SubstrBufFromMB str(ImplStr((const char*)psz, nLength, conv)); - m_impl.assign(str.data, str.len); - } - - // ctors from wchar_t* strings: - wxString(const wchar_t *pwz) - : m_impl(ImplStr(pwz)) {} - wxString(const wchar_t *pwz, const wxMBConv& WXUNUSED(conv)) - : m_impl(ImplStr(pwz)) {} - wxString(const wchar_t *pwz, size_t nLength) - { assign(pwz, nLength); } - wxString(const wchar_t *pwz, const wxMBConv& WXUNUSED(conv), size_t nLength) - { assign(pwz, nLength); } - - wxString(const wxScopedCharBuffer& buf) - { assign(buf.data(), buf.length()); } - wxString(const wxScopedWCharBuffer& buf) - { assign(buf.data(), buf.length()); } - - // NB: this version uses m_impl.c_str() to force making a copy of the - // string, so that "wxString(str.c_str())" idiom for passing strings - // between threads works - wxString(const wxCStrData& cstr) - : m_impl(cstr.AsString().m_impl.c_str()) { } - - // as we provide both ctors with this signature for both char and unsigned - // char string, we need to provide one for wxCStrData to resolve ambiguity - wxString(const wxCStrData& cstr, size_t nLength) - : m_impl(cstr.AsString().Mid(0, nLength).m_impl) {} - - // and because wxString is convertible to wxCStrData and const wxChar * - // we also need to provide this one - wxString(const wxString& str, size_t nLength) - { assign(str, nLength); } - - -#if wxUSE_STRING_POS_CACHE - ~wxString() - { - // we need to invalidate our cache entry as another string could be - // recreated at the same address (unlikely, but still possible, with the - // heap-allocated strings but perfectly common with stack-allocated ones) - InvalidateCache(); - } -#endif // wxUSE_STRING_POS_CACHE - - // even if we're not built with wxUSE_STD_STRING_CONV_IN_WXSTRING == 1 it is - // very convenient to allow implicit conversions from std::string to wxString - // and vice verse as this allows to use the same strings in non-GUI and GUI - // code, however we don't want to unconditionally add this ctor as it would - // make wx lib dependent on libstdc++ on some Linux versions which is bad, so - // instead we ask the client code to define this wxUSE_STD_STRING symbol if - // they need it -#if wxUSE_STD_STRING - #if wxUSE_UNICODE_WCHAR - wxString(const wxStdWideString& str) : m_impl(str) {} - #else // UTF-8 or ANSI - wxString(const wxStdWideString& str) - { assign(str.c_str(), str.length()); } - #endif - - #if !wxUSE_UNICODE // ANSI build - // FIXME-UTF8: do this in UTF8 build #if wxUSE_UTF8_LOCALE_ONLY, too - wxString(const std::string& str) : m_impl(str) {} - #else // Unicode - wxString(const std::string& str) - { assign(str.c_str(), str.length()); } - #endif -#endif // wxUSE_STD_STRING - - // Also always provide explicit conversions to std::[w]string in any case, - // see below for the implicit ones. -#if wxUSE_STD_STRING - // We can avoid a copy if we already use this string type internally, - // otherwise we create a copy on the fly: - #if wxUSE_UNICODE_WCHAR && wxUSE_STL_BASED_WXSTRING - #define wxStringToStdWstringRetType const wxStdWideString& - const wxStdWideString& ToStdWstring() const { return m_impl; } - #else - // wxStringImpl is either not std::string or needs conversion - #define wxStringToStdWstringRetType wxStdWideString - wxStdWideString ToStdWstring() const - { -#if wxUSE_UNICODE_WCHAR - wxScopedWCharBuffer buf = - wxScopedWCharBuffer::CreateNonOwned(m_impl.c_str(), m_impl.length()); -#else // !wxUSE_UNICODE_WCHAR - wxScopedWCharBuffer buf(wc_str()); -#endif - - return wxStdWideString(buf.data(), buf.length()); - } - #endif - - #if (!wxUSE_UNICODE || wxUSE_UTF8_LOCALE_ONLY) && wxUSE_STL_BASED_WXSTRING - // wxStringImpl is std::string in the encoding we want - #define wxStringToStdStringRetType const std::string& - const std::string& ToStdString() const { return m_impl; } - #else - // wxStringImpl is either not std::string or needs conversion - #define wxStringToStdStringRetType std::string - std::string ToStdString() const - { - wxScopedCharBuffer buf(mb_str()); - return std::string(buf.data(), buf.length()); - } - #endif - -#if wxUSE_STD_STRING_CONV_IN_WXSTRING - // Implicit conversions to std::[w]string are not provided by default as - // they conflict with the implicit conversions to "const char/wchar_t *" - // which we use for backwards compatibility but do provide them if - // explicitly requested. - operator wxStringToStdStringRetType() const { return ToStdString(); } - operator wxStringToStdWstringRetType() const { return ToStdWstring(); } -#endif // wxUSE_STD_STRING_CONV_IN_WXSTRING - -#undef wxStringToStdStringRetType -#undef wxStringToStdWstringRetType - -#endif // wxUSE_STD_STRING - - wxString Clone() const - { - // make a deep copy of the string, i.e. the returned string will have - // ref count = 1 with refcounted implementation - return wxString::FromImpl(wxStringImpl(m_impl.c_str(), m_impl.length())); - } - - // first valid index position - const_iterator begin() const { return const_iterator(this, m_impl.begin()); } - iterator begin() { return iterator(this, m_impl.begin()); } - // position one after the last valid one - const_iterator end() const { return const_iterator(this, m_impl.end()); } - iterator end() { return iterator(this, m_impl.end()); } - - // first element of the reversed string - const_reverse_iterator rbegin() const - { return const_reverse_iterator(end()); } - reverse_iterator rbegin() - { return reverse_iterator(end()); } - // one beyond the end of the reversed string - const_reverse_iterator rend() const - { return const_reverse_iterator(begin()); } - reverse_iterator rend() - { return reverse_iterator(begin()); } - - // std::string methods: -#if wxUSE_UNICODE_UTF8 - size_t length() const - { -#if wxUSE_STRING_POS_CACHE - wxCACHE_PROFILE_FIELD_INC(lentot); - - Cache::Element * const cache = GetCacheElement(); - - if ( cache->len == npos ) - { - // it's probably not worth trying to be clever and using cache->pos - // here as it's probably 0 anyhow -- you usually call length() before - // starting to index the string - cache->len = end() - begin(); - } - else - { - wxCACHE_PROFILE_FIELD_INC(lenhits); - - wxSTRING_CACHE_ASSERT( (int)cache->len == end() - begin() ); - } - - return cache->len; -#else // !wxUSE_STRING_POS_CACHE - return end() - begin(); -#endif // wxUSE_STRING_POS_CACHE/!wxUSE_STRING_POS_CACHE - } -#else - size_t length() const { return m_impl.length(); } -#endif - - size_type size() const { return length(); } - size_type max_size() const { return npos; } - - bool empty() const { return m_impl.empty(); } - - // NB: these methods don't have a well-defined meaning in UTF-8 case - size_type capacity() const { return m_impl.capacity(); } - void reserve(size_t sz) { m_impl.reserve(sz); } - - void resize(size_t nSize, wxUniChar ch = wxT('\0')) - { - const size_t len = length(); - if ( nSize == len) - return; - -#if wxUSE_UNICODE_UTF8 - if ( nSize < len ) - { - wxSTRING_INVALIDATE_CACHE(); - - // we can't use wxStringImpl::resize() for truncating the string as it - // counts in bytes, not characters - erase(nSize); - return; - } - - // we also can't use (presumably more efficient) resize() if we have to - // append characters taking more than one byte - if ( !ch.IsAscii() ) - { - append(nSize - len, ch); - } - else // can use (presumably faster) resize() version -#endif // wxUSE_UNICODE_UTF8 - { - wxSTRING_INVALIDATE_CACHED_LENGTH(); - - m_impl.resize(nSize, (wxStringCharType)ch); - } - } - - wxString substr(size_t nStart = 0, size_t nLen = npos) const - { - size_t pos, len; - PosLenToImpl(nStart, nLen, &pos, &len); - return FromImpl(m_impl.substr(pos, len)); - } - - // generic attributes & operations - // as standard strlen() - size_t Len() const { return length(); } - // string contains any characters? - bool IsEmpty() const { return empty(); } - // empty string is "false", so !str will return true - bool operator!() const { return empty(); } - // truncate the string to given length - wxString& Truncate(size_t uiLen); - // empty string contents - void Empty() { clear(); } - // empty the string and free memory - void Clear() { clear(); } - - // contents test - // Is an ascii value - bool IsAscii() const; - // Is a number - bool IsNumber() const; - // Is a word - bool IsWord() const; - - // data access (all indexes are 0 based) - // read access - wxUniChar at(size_t n) const - { return wxStringOperations::DecodeChar(m_impl.begin() + PosToImpl(n)); } - wxUniChar GetChar(size_t n) const - { return at(n); } - // read/write access - wxUniCharRef at(size_t n) - { return *GetIterForNthChar(n); } - wxUniCharRef GetWritableChar(size_t n) - { return at(n); } - // write access - void SetChar(size_t n, wxUniChar ch) - { at(n) = ch; } - - // get last character - wxUniChar Last() const - { - wxASSERT_MSG( !empty(), wxT("wxString: index out of bounds") ); - return *rbegin(); - } - - // get writable last character - wxUniCharRef Last() - { - wxASSERT_MSG( !empty(), wxT("wxString: index out of bounds") ); - return *rbegin(); - } - - /* - Note that we we must define all of the overloads below to avoid - ambiguity when using str[0]. - */ - wxUniChar operator[](int n) const - { return at(n); } - wxUniChar operator[](long n) const - { return at(n); } - wxUniChar operator[](size_t n) const - { return at(n); } -#ifndef wxSIZE_T_IS_UINT - wxUniChar operator[](unsigned int n) const - { return at(n); } -#endif // size_t != unsigned int - - // operator versions of GetWriteableChar() - wxUniCharRef operator[](int n) - { return at(n); } - wxUniCharRef operator[](long n) - { return at(n); } - wxUniCharRef operator[](size_t n) - { return at(n); } -#ifndef wxSIZE_T_IS_UINT - wxUniCharRef operator[](unsigned int n) - { return at(n); } -#endif // size_t != unsigned int - - - /* - Overview of wxString conversions, implicit and explicit: - - - wxString has a std::[w]string-like c_str() method, however it does - not return a C-style string directly but instead returns wxCStrData - helper object which is convertible to either "char *" narrow string - or "wchar_t *" wide string. Usually the correct conversion will be - applied by the compiler automatically but if this doesn't happen you - need to explicitly choose one using wxCStrData::AsChar() or AsWChar() - methods or another wxString conversion function. - - - One of the places where the conversion does *NOT* happen correctly is - when c_str() is passed to a vararg function such as printf() so you - must *NOT* use c_str() with them. Either use wxPrintf() (all wx - functions do handle c_str() correctly, even if they appear to be - vararg (but they're not, really)) or add an explicit AsChar() or, if - compatibility with previous wxWidgets versions is important, add a - cast to "const char *". - - - In non-STL mode only, wxString is also implicitly convertible to - wxCStrData. The same warning as above applies. - - - c_str() is polymorphic as it can be converted to either narrow or - wide string. If you explicitly need one or the other, choose to use - mb_str() (for narrow) or wc_str() (for wide) instead. Notice that - these functions can return either the pointer to string directly (if - this is what the string uses internally) or a temporary buffer - containing the string and convertible to it. Again, conversion will - usually be done automatically by the compiler but beware of the - vararg functions: you need an explicit cast when using them. - - - There are also non-const versions of mb_str() and wc_str() called - char_str() and wchar_str(). They are only meant to be used with - non-const-correct functions and they always return buffers. - - - Finally wx_str() returns whatever string representation is used by - wxString internally. It may be either a narrow or wide string - depending on wxWidgets build mode but it will always be a raw pointer - (and not a buffer). - */ - - // explicit conversion to wxCStrData - wxCStrData c_str() const { return wxCStrData(this); } - wxCStrData data() const { return c_str(); } - - // implicit conversion to wxCStrData - operator wxCStrData() const { return c_str(); } - - // the first two operators conflict with operators for conversion to - // std::string and they must be disabled if those conversions are enabled; - // the next one only makes sense if conversions to char* are also defined - // and not defining it in STL build also helps us to get more clear error - // messages for the code which relies on implicit conversion to char* in - // STL build -#if !wxUSE_STD_STRING_CONV_IN_WXSTRING - operator const char*() const { return c_str(); } - operator const wchar_t*() const { return c_str(); } - - // implicit conversion to untyped pointer for compatibility with previous - // wxWidgets versions: this is the same as conversion to const char * so it - // may fail! - operator const void*() const { return c_str(); } -#endif // !wxUSE_STD_STRING_CONV_IN_WXSTRING - - // identical to c_str(), for MFC compatibility - const wxCStrData GetData() const { return c_str(); } - - // explicit conversion to C string in internal representation (char*, - // wchar_t*, UTF-8-encoded char*, depending on the build): - const wxStringCharType *wx_str() const { return m_impl.c_str(); } - - // conversion to *non-const* multibyte or widestring buffer; modifying - // returned buffer won't affect the string, these methods are only useful - // for passing values to const-incorrect functions - wxWritableCharBuffer char_str(const wxMBConv& conv = wxConvLibc) const - { return mb_str(conv); } - wxWritableWCharBuffer wchar_str() const { return wc_str(); } - - // conversion to the buffer of the given type T (= char or wchar_t) and - // also optionally return the buffer length - // - // this is mostly/only useful for the template functions - template <typename T> - wxCharTypeBuffer<T> tchar_str(size_t *len = NULL) const - { -#if wxUSE_UNICODE - // we need a helper dispatcher depending on type - return wxPrivate::wxStringAsBufHelper<T>::Get(*this, len); -#else // ANSI - // T can only be char in ANSI build - if ( len ) - *len = length(); - - return wxCharTypeBuffer<T>::CreateNonOwned(wx_str(), length()); -#endif // Unicode build kind - } - - // conversion to/from plain (i.e. 7 bit) ASCII: this is useful for - // converting numbers or strings which are certain not to contain special - // chars (typically system functions, X atoms, environment variables etc.) - // - // the behaviour of these functions with the strings containing anything - // else than 7 bit ASCII characters is undefined, use at your own risk. -#if wxUSE_UNICODE - static wxString FromAscii(const char *ascii, size_t len); - static wxString FromAscii(const char *ascii); - static wxString FromAscii(char ascii); - const wxScopedCharBuffer ToAscii(char replaceWith = '_') const; -#else // ANSI - static wxString FromAscii(const char *ascii) { return wxString( ascii ); } - static wxString FromAscii(const char *ascii, size_t len) - { return wxString( ascii, len ); } - static wxString FromAscii(char ascii) { return wxString( ascii ); } - const char *ToAscii(char WXUNUSED(replaceWith) = '_') const { return c_str(); } -#endif // Unicode/!Unicode - - // also provide unsigned char overloads as signed/unsigned doesn't matter - // for 7 bit ASCII characters - static wxString FromAscii(const unsigned char *ascii) - { return FromAscii((const char *)ascii); } - static wxString FromAscii(const unsigned char *ascii, size_t len) - { return FromAscii((const char *)ascii, len); } - - // conversion to/from UTF-8: -#if wxUSE_UNICODE_UTF8 - static wxString FromUTF8Unchecked(const char *utf8) - { - if ( !utf8 ) - return wxEmptyString; - - wxASSERT( wxStringOperations::IsValidUtf8String(utf8) ); - return FromImpl(wxStringImpl(utf8)); - } - static wxString FromUTF8Unchecked(const char *utf8, size_t len) - { - if ( !utf8 ) - return wxEmptyString; - if ( len == npos ) - return FromUTF8Unchecked(utf8); - - wxASSERT( wxStringOperations::IsValidUtf8String(utf8, len) ); - return FromImpl(wxStringImpl(utf8, len)); - } - - static wxString FromUTF8(const char *utf8) - { - if ( !utf8 || !wxStringOperations::IsValidUtf8String(utf8) ) - return ""; - - return FromImpl(wxStringImpl(utf8)); - } - static wxString FromUTF8(const char *utf8, size_t len) - { - if ( len == npos ) - return FromUTF8(utf8); - - if ( !utf8 || !wxStringOperations::IsValidUtf8String(utf8, len) ) - return ""; - - return FromImpl(wxStringImpl(utf8, len)); - } - - const wxScopedCharBuffer utf8_str() const - { return wxCharBuffer::CreateNonOwned(m_impl.c_str(), m_impl.length()); } - - // this function exists in UTF-8 build only and returns the length of the - // internal UTF-8 representation - size_t utf8_length() const { return m_impl.length(); } -#elif wxUSE_UNICODE_WCHAR - static wxString FromUTF8(const char *utf8, size_t len = npos) - { return wxString(utf8, wxMBConvUTF8(), len); } - static wxString FromUTF8Unchecked(const char *utf8, size_t len = npos) - { - const wxString s(utf8, wxMBConvUTF8(), len); - wxASSERT_MSG( !utf8 || !*utf8 || !s.empty(), - "string must be valid UTF-8" ); - return s; - } - const wxScopedCharBuffer utf8_str() const { return mb_str(wxMBConvUTF8()); } -#else // ANSI - static wxString FromUTF8(const char *utf8) - { return wxString(wxMBConvUTF8().cMB2WC(utf8)); } - static wxString FromUTF8(const char *utf8, size_t len) - { - size_t wlen; - wxScopedWCharBuffer buf(wxMBConvUTF8().cMB2WC(utf8, len == npos ? wxNO_LEN : len, &wlen)); - return wxString(buf.data(), wlen); - } - static wxString FromUTF8Unchecked(const char *utf8, size_t len = npos) - { - size_t wlen; - wxScopedWCharBuffer buf - ( - wxMBConvUTF8().cMB2WC - ( - utf8, - len == npos ? wxNO_LEN : len, - &wlen - ) - ); - wxASSERT_MSG( !utf8 || !*utf8 || wlen, - "string must be valid UTF-8" ); - - return wxString(buf.data(), wlen); - } - const wxScopedCharBuffer utf8_str() const - { return wxMBConvUTF8().cWC2MB(wc_str()); } -#endif - - const wxScopedCharBuffer ToUTF8() const { return utf8_str(); } - - // functions for storing binary data in wxString: -#if wxUSE_UNICODE - static wxString From8BitData(const char *data, size_t len) - { return wxString(data, wxConvISO8859_1, len); } - // version for NUL-terminated data: - static wxString From8BitData(const char *data) - { return wxString(data, wxConvISO8859_1); } - const wxScopedCharBuffer To8BitData() const - { return mb_str(wxConvISO8859_1); } -#else // ANSI - static wxString From8BitData(const char *data, size_t len) - { return wxString(data, len); } - // version for NUL-terminated data: - static wxString From8BitData(const char *data) - { return wxString(data); } - const wxScopedCharBuffer To8BitData() const - { return wxScopedCharBuffer::CreateNonOwned(wx_str(), length()); } -#endif // Unicode/ANSI - - // conversions with (possible) format conversions: have to return a - // buffer with temporary data - // - // the functions defined (in either Unicode or ANSI) mode are mb_str() to - // return an ANSI (multibyte) string, wc_str() to return a wide string and - // fn_str() to return a string which should be used with the OS APIs - // accepting the file names. The return value is always the same, but the - // type differs because a function may either return pointer to the buffer - // directly or have to use intermediate buffer for translation. - -#if wxUSE_UNICODE - - // this is an optimization: even though using mb_str(wxConvLibc) does the - // same thing (i.e. returns pointer to internal representation as locale is - // always an UTF-8 one) in wxUSE_UTF8_LOCALE_ONLY case, we can avoid the - // extra checks and the temporary buffer construction by providing a - // separate mb_str() overload -#if wxUSE_UTF8_LOCALE_ONLY - const char* mb_str() const { return wx_str(); } - const wxScopedCharBuffer mb_str(const wxMBConv& conv) const - { - return AsCharBuf(conv); - } -#else // !wxUSE_UTF8_LOCALE_ONLY - const wxScopedCharBuffer mb_str(const wxMBConv& conv = wxConvLibc) const - { - return AsCharBuf(conv); - } -#endif // wxUSE_UTF8_LOCALE_ONLY/!wxUSE_UTF8_LOCALE_ONLY - - const wxWX2MBbuf mbc_str() const { return mb_str(*wxConvCurrent); } - -#if wxUSE_UNICODE_WCHAR - const wchar_t* wc_str() const { return wx_str(); } -#elif wxUSE_UNICODE_UTF8 - const wxScopedWCharBuffer wc_str() const - { return AsWCharBuf(wxMBConvStrictUTF8()); } -#endif - // for compatibility with !wxUSE_UNICODE version - const wxWX2WCbuf wc_str(const wxMBConv& WXUNUSED(conv)) const - { return wc_str(); } - -#if wxMBFILES - const wxScopedCharBuffer fn_str() const { return mb_str(wxConvFile); } -#else // !wxMBFILES - const wxWX2WCbuf fn_str() const { return wc_str(); } -#endif // wxMBFILES/!wxMBFILES - -#else // ANSI - const char* mb_str() const { return wx_str(); } - - // for compatibility with wxUSE_UNICODE version - const char* mb_str(const wxMBConv& WXUNUSED(conv)) const { return wx_str(); } - - const wxWX2MBbuf mbc_str() const { return mb_str(); } - - const wxScopedWCharBuffer wc_str(const wxMBConv& conv = wxConvLibc) const - { return AsWCharBuf(conv); } - - const wxScopedCharBuffer fn_str() const - { return wxConvFile.cWC2WX( wc_str( wxConvLibc ) ); } -#endif // Unicode/ANSI - -#if wxUSE_UNICODE_UTF8 - const wxScopedWCharBuffer t_str() const { return wc_str(); } -#elif wxUSE_UNICODE_WCHAR - const wchar_t* t_str() const { return wx_str(); } -#else - const char* t_str() const { return wx_str(); } -#endif - - - // overloaded assignment - // from another wxString - wxString& operator=(const wxString& stringSrc) - { - if ( this != &stringSrc ) - { - wxSTRING_INVALIDATE_CACHE(); - - m_impl = stringSrc.m_impl; - } - - return *this; - } - - wxString& operator=(const wxCStrData& cstr) - { return *this = cstr.AsString(); } - // from a character - wxString& operator=(wxUniChar ch) - { - wxSTRING_INVALIDATE_CACHE(); - -#if wxUSE_UNICODE_UTF8 - if ( !ch.IsAscii() ) - m_impl = wxStringOperations::EncodeChar(ch); - else -#endif // wxUSE_UNICODE_UTF8 - m_impl = (wxStringCharType)ch; - return *this; - } - - wxString& operator=(wxUniCharRef ch) - { return operator=((wxUniChar)ch); } - wxString& operator=(char ch) - { return operator=(wxUniChar(ch)); } - wxString& operator=(unsigned char ch) - { return operator=(wxUniChar(ch)); } - wxString& operator=(wchar_t ch) - { return operator=(wxUniChar(ch)); } - // from a C string - STL probably will crash on NULL, - // so we need to compensate in that case -#if wxUSE_STL_BASED_WXSTRING - wxString& operator=(const char *psz) - { - wxSTRING_INVALIDATE_CACHE(); - - if ( psz ) - m_impl = ImplStr(psz); - else - clear(); - - return *this; - } - - wxString& operator=(const wchar_t *pwz) - { - wxSTRING_INVALIDATE_CACHE(); - - if ( pwz ) - m_impl = ImplStr(pwz); - else - clear(); - - return *this; - } -#else // !wxUSE_STL_BASED_WXSTRING - wxString& operator=(const char *psz) - { - wxSTRING_INVALIDATE_CACHE(); - - m_impl = ImplStr(psz); - - return *this; - } - - wxString& operator=(const wchar_t *pwz) - { - wxSTRING_INVALIDATE_CACHE(); - - m_impl = ImplStr(pwz); - - return *this; - } -#endif // wxUSE_STL_BASED_WXSTRING/!wxUSE_STL_BASED_WXSTRING - - wxString& operator=(const unsigned char *psz) - { return operator=((const char*)psz); } - - // from wxScopedWCharBuffer - wxString& operator=(const wxScopedWCharBuffer& s) - { return assign(s); } - // from wxScopedCharBuffer - wxString& operator=(const wxScopedCharBuffer& s) - { return assign(s); } - - // string concatenation - // in place concatenation - /* - Concatenate and return the result. Note that the left to right - associativity of << allows to write things like "str << str1 << str2 - << ..." (unlike with +=) - */ - // string += string - wxString& operator<<(const wxString& s) - { -#if WXWIN_COMPATIBILITY_2_8 && !wxUSE_STL_BASED_WXSTRING && !wxUSE_UNICODE_UTF8 - wxASSERT_MSG( s.IsValid(), - wxT("did you forget to call UngetWriteBuf()?") ); -#endif - - append(s); - return *this; - } - // string += C string - wxString& operator<<(const char *psz) - { append(psz); return *this; } - wxString& operator<<(const wchar_t *pwz) - { append(pwz); return *this; } - wxString& operator<<(const wxCStrData& psz) - { append(psz.AsString()); return *this; } - // string += char - wxString& operator<<(wxUniChar ch) { append(1, ch); return *this; } - wxString& operator<<(wxUniCharRef ch) { append(1, ch); return *this; } - wxString& operator<<(char ch) { append(1, ch); return *this; } - wxString& operator<<(unsigned char ch) { append(1, ch); return *this; } - wxString& operator<<(wchar_t ch) { append(1, ch); return *this; } - - // string += buffer (i.e. from wxGetString) - wxString& operator<<(const wxScopedWCharBuffer& s) - { return append(s); } - wxString& operator<<(const wxScopedCharBuffer& s) - { return append(s); } - - // string += C string - wxString& Append(const wxString& s) - { - // test for empty() to share the string if possible - if ( empty() ) - *this = s; - else - append(s); - return *this; - } - wxString& Append(const char* psz) - { append(psz); return *this; } - wxString& Append(const wchar_t* pwz) - { append(pwz); return *this; } - wxString& Append(const wxCStrData& psz) - { append(psz); return *this; } - wxString& Append(const wxScopedCharBuffer& psz) - { append(psz); return *this; } - wxString& Append(const wxScopedWCharBuffer& psz) - { append(psz); return *this; } - wxString& Append(const char* psz, size_t nLen) - { append(psz, nLen); return *this; } - wxString& Append(const wchar_t* pwz, size_t nLen) - { append(pwz, nLen); return *this; } - wxString& Append(const wxCStrData& psz, size_t nLen) - { append(psz, nLen); return *this; } - wxString& Append(const wxScopedCharBuffer& psz, size_t nLen) - { append(psz, nLen); return *this; } - wxString& Append(const wxScopedWCharBuffer& psz, size_t nLen) - { append(psz, nLen); return *this; } - // append count copies of given character - wxString& Append(wxUniChar ch, size_t count = 1u) - { append(count, ch); return *this; } - wxString& Append(wxUniCharRef ch, size_t count = 1u) - { append(count, ch); return *this; } - wxString& Append(char ch, size_t count = 1u) - { append(count, ch); return *this; } - wxString& Append(unsigned char ch, size_t count = 1u) - { append(count, ch); return *this; } - wxString& Append(wchar_t ch, size_t count = 1u) - { append(count, ch); return *this; } - - // prepend a string, return the string itself - wxString& Prepend(const wxString& str) - { *this = str + *this; return *this; } - - // non-destructive concatenation - // two strings - friend wxString WXDLLIMPEXP_BASE operator+(const wxString& string1, - const wxString& string2); - // string with a single char - friend wxString WXDLLIMPEXP_BASE operator+(const wxString& string, wxUniChar ch); - // char with a string - friend wxString WXDLLIMPEXP_BASE operator+(wxUniChar ch, const wxString& string); - // string with C string - friend wxString WXDLLIMPEXP_BASE operator+(const wxString& string, - const char *psz); - friend wxString WXDLLIMPEXP_BASE operator+(const wxString& string, - const wchar_t *pwz); - // C string with string - friend wxString WXDLLIMPEXP_BASE operator+(const char *psz, - const wxString& string); - friend wxString WXDLLIMPEXP_BASE operator+(const wchar_t *pwz, - const wxString& string); - - // stream-like functions - // insert an int into string - wxString& operator<<(int i) - { return (*this) << Format(wxT("%d"), i); } - // insert an unsigned int into string - wxString& operator<<(unsigned int ui) - { return (*this) << Format(wxT("%u"), ui); } - // insert a long into string - wxString& operator<<(long l) - { return (*this) << Format(wxT("%ld"), l); } - // insert an unsigned long into string - wxString& operator<<(unsigned long ul) - { return (*this) << Format(wxT("%lu"), ul); } -#ifdef wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - // insert a long long if they exist and aren't longs - wxString& operator<<(wxLongLong_t ll) - { - return (*this) << Format("%" wxLongLongFmtSpec "d", ll); - } - // insert an unsigned long long - wxString& operator<<(wxULongLong_t ull) - { - return (*this) << Format("%" wxLongLongFmtSpec "u" , ull); - } -#endif // wxHAS_LONG_LONG_T_DIFFERENT_FROM_LONG - // insert a float into string - wxString& operator<<(float f) - { return (*this) << Format(wxT("%f"), f); } - // insert a double into string - wxString& operator<<(double d) - { return (*this) << Format(wxT("%g"), d); } - - // string comparison - // case-sensitive comparison (returns a value < 0, = 0 or > 0) - int Cmp(const char *psz) const - { return compare(psz); } - int Cmp(const wchar_t *pwz) const - { return compare(pwz); } - int Cmp(const wxString& s) const - { return compare(s); } - int Cmp(const wxCStrData& s) const - { return compare(s); } - int Cmp(const wxScopedCharBuffer& s) const - { return compare(s); } - int Cmp(const wxScopedWCharBuffer& s) const - { return compare(s); } - // same as Cmp() but not case-sensitive - int CmpNoCase(const wxString& s) const; - - // test for the string equality, either considering case or not - // (if compareWithCase then the case matters) - bool IsSameAs(const wxString& str, bool compareWithCase = true) const - { -#if !wxUSE_UNICODE_UTF8 - // in UTF-8 build, length() is O(n) and doing this would be _slower_ - if ( length() != str.length() ) - return false; -#endif - return (compareWithCase ? Cmp(str) : CmpNoCase(str)) == 0; - } - bool IsSameAs(const char *str, bool compareWithCase = true) const - { return (compareWithCase ? Cmp(str) : CmpNoCase(str)) == 0; } - bool IsSameAs(const wchar_t *str, bool compareWithCase = true) const - { return (compareWithCase ? Cmp(str) : CmpNoCase(str)) == 0; } - - bool IsSameAs(const wxCStrData& str, bool compareWithCase = true) const - { return IsSameAs(str.AsString(), compareWithCase); } - bool IsSameAs(const wxScopedCharBuffer& str, bool compareWithCase = true) const - { return IsSameAs(str.data(), compareWithCase); } - bool IsSameAs(const wxScopedWCharBuffer& str, bool compareWithCase = true) const - { return IsSameAs(str.data(), compareWithCase); } - // comparison with a single character: returns true if equal - bool IsSameAs(wxUniChar c, bool compareWithCase = true) const; - // FIXME-UTF8: remove these overloads - bool IsSameAs(wxUniCharRef c, bool compareWithCase = true) const - { return IsSameAs(wxUniChar(c), compareWithCase); } - bool IsSameAs(char c, bool compareWithCase = true) const - { return IsSameAs(wxUniChar(c), compareWithCase); } - bool IsSameAs(unsigned char c, bool compareWithCase = true) const - { return IsSameAs(wxUniChar(c), compareWithCase); } - bool IsSameAs(wchar_t c, bool compareWithCase = true) const - { return IsSameAs(wxUniChar(c), compareWithCase); } - bool IsSameAs(int c, bool compareWithCase = true) const - { return IsSameAs(wxUniChar(c), compareWithCase); } - - // simple sub-string extraction - // return substring starting at nFirst of length nCount (or till the end - // if nCount = default value) - wxString Mid(size_t nFirst, size_t nCount = npos) const; - - // operator version of Mid() - wxString operator()(size_t start, size_t len) const - { return Mid(start, len); } - - // check if the string starts with the given prefix and return the rest - // of the string in the provided pointer if it is not NULL; otherwise - // return false - bool StartsWith(const wxString& prefix, wxString *rest = NULL) const; - // check if the string ends with the given suffix and return the - // beginning of the string before the suffix in the provided pointer if - // it is not NULL; otherwise return false - bool EndsWith(const wxString& suffix, wxString *rest = NULL) const; - - // get first nCount characters - wxString Left(size_t nCount) const; - // get last nCount characters - wxString Right(size_t nCount) const; - // get all characters before the first occurrence of ch - // (returns the whole string if ch not found) and also put everything - // following the first occurrence of ch into rest if it's non-NULL - wxString BeforeFirst(wxUniChar ch, wxString *rest = NULL) const; - // get all characters before the last occurrence of ch - // (returns empty string if ch not found) and also put everything - // following the last occurrence of ch into rest if it's non-NULL - wxString BeforeLast(wxUniChar ch, wxString *rest = NULL) const; - // get all characters after the first occurrence of ch - // (returns empty string if ch not found) - wxString AfterFirst(wxUniChar ch) const; - // get all characters after the last occurrence of ch - // (returns the whole string if ch not found) - wxString AfterLast(wxUniChar ch) const; - - // for compatibility only, use more explicitly named functions above - wxString Before(wxUniChar ch) const { return BeforeLast(ch); } - wxString After(wxUniChar ch) const { return AfterFirst(ch); } - - // case conversion - // convert to upper case in place, return the string itself - wxString& MakeUpper(); - // convert to upper case, return the copy of the string - wxString Upper() const { return wxString(*this).MakeUpper(); } - // convert to lower case in place, return the string itself - wxString& MakeLower(); - // convert to lower case, return the copy of the string - wxString Lower() const { return wxString(*this).MakeLower(); } - // convert the first character to the upper case and the rest to the - // lower one, return the modified string itself - wxString& MakeCapitalized(); - // convert the first character to the upper case and the rest to the - // lower one, return the copy of the string - wxString Capitalize() const { return wxString(*this).MakeCapitalized(); } - - // trimming/padding whitespace (either side) and truncating - // remove spaces from left or from right (default) side - wxString& Trim(bool bFromRight = true); - // add nCount copies chPad in the beginning or at the end (default) - wxString& Pad(size_t nCount, wxUniChar chPad = wxT(' '), bool bFromRight = true); - - // searching and replacing - // searching (return starting index, or -1 if not found) - int Find(wxUniChar ch, bool bFromEnd = false) const; // like strchr/strrchr - int Find(wxUniCharRef ch, bool bFromEnd = false) const - { return Find(wxUniChar(ch), bFromEnd); } - int Find(char ch, bool bFromEnd = false) const - { return Find(wxUniChar(ch), bFromEnd); } - int Find(unsigned char ch, bool bFromEnd = false) const - { return Find(wxUniChar(ch), bFromEnd); } - int Find(wchar_t ch, bool bFromEnd = false) const - { return Find(wxUniChar(ch), bFromEnd); } - // searching (return starting index, or -1 if not found) - int Find(const wxString& sub) const // like strstr - { - size_type idx = find(sub); - return (idx == npos) ? wxNOT_FOUND : (int)idx; - } - int Find(const char *sub) const // like strstr - { - size_type idx = find(sub); - return (idx == npos) ? wxNOT_FOUND : (int)idx; - } - int Find(const wchar_t *sub) const // like strstr - { - size_type idx = find(sub); - return (idx == npos) ? wxNOT_FOUND : (int)idx; - } - - int Find(const wxCStrData& sub) const - { return Find(sub.AsString()); } - int Find(const wxScopedCharBuffer& sub) const - { return Find(sub.data()); } - int Find(const wxScopedWCharBuffer& sub) const - { return Find(sub.data()); } - - // replace first (or all of bReplaceAll) occurrences of substring with - // another string, returns the number of replacements made - size_t Replace(const wxString& strOld, - const wxString& strNew, - bool bReplaceAll = true); - - // check if the string contents matches a mask containing '*' and '?' - bool Matches(const wxString& mask) const; - - // conversion to numbers: all functions return true only if the whole - // string is a number and put the value of this number into the pointer - // provided, the base is the numeric base in which the conversion should be - // done and must be comprised between 2 and 36 or be 0 in which case the - // standard C rules apply (leading '0' => octal, "0x" => hex) - // convert to a signed integer - bool ToLong(long *val, int base = 10) const; - // convert to an unsigned integer - bool ToULong(unsigned long *val, int base = 10) const; - // convert to wxLongLong -#if defined(wxLongLong_t) - bool ToLongLong(wxLongLong_t *val, int base = 10) const; - // convert to wxULongLong - bool ToULongLong(wxULongLong_t *val, int base = 10) const; -#endif // wxLongLong_t - // convert to a double - bool ToDouble(double *val) const; - - // conversions to numbers using C locale - // convert to a signed integer - bool ToCLong(long *val, int base = 10) const; - // convert to an unsigned integer - bool ToCULong(unsigned long *val, int base = 10) const; - // convert to a double - bool ToCDouble(double *val) const; - - // create a string representing the given floating point number with the - // default (like %g) or fixed (if precision >=0) precision - // in the current locale - static wxString FromDouble(double val, int precision = -1); - // in C locale - static wxString FromCDouble(double val, int precision = -1); - - // formatted input/output - // as sprintf(), returns the number of characters written or < 0 on error - // (take 'this' into account in attribute parameter count) - // int Printf(const wxString& format, ...); - WX_DEFINE_VARARG_FUNC(int, Printf, 1, (const wxFormatString&), - DoPrintfWchar, DoPrintfUtf8) - // as vprintf(), returns the number of characters written or < 0 on error - int PrintfV(const wxString& format, va_list argptr); - - // returns the string containing the result of Printf() to it - // static wxString Format(const wxString& format, ...) WX_ATTRIBUTE_PRINTF_1; - WX_DEFINE_VARARG_FUNC(static wxString, Format, 1, (const wxFormatString&), - DoFormatWchar, DoFormatUtf8) - // the same as above, but takes a va_list - static wxString FormatV(const wxString& format, va_list argptr); - - // raw access to string memory - // ensure that string has space for at least nLen characters - // only works if the data of this string is not shared - bool Alloc(size_t nLen) { reserve(nLen); return capacity() >= nLen; } - // minimize the string's memory - // only works if the data of this string is not shared - bool Shrink(); -#if WXWIN_COMPATIBILITY_2_8 && !wxUSE_STL_BASED_WXSTRING && !wxUSE_UNICODE_UTF8 - // These are deprecated, use wxStringBuffer or wxStringBufferLength instead - // - // get writable buffer of at least nLen bytes. Unget() *must* be called - // a.s.a.p. to put string back in a reasonable state! - wxDEPRECATED( wxStringCharType *GetWriteBuf(size_t nLen) ); - // call this immediately after GetWriteBuf() has been used - wxDEPRECATED( void UngetWriteBuf() ); - wxDEPRECATED( void UngetWriteBuf(size_t nLen) ); -#endif // WXWIN_COMPATIBILITY_2_8 && !wxUSE_STL_BASED_WXSTRING && wxUSE_UNICODE_UTF8 - - // wxWidgets version 1 compatibility functions - - // use Mid() - wxString SubString(size_t from, size_t to) const - { return Mid(from, (to - from + 1)); } - // values for second parameter of CompareTo function - enum caseCompare {exact, ignoreCase}; - // values for first parameter of Strip function - enum stripType {leading = 0x1, trailing = 0x2, both = 0x3}; - - // use Printf() - // (take 'this' into account in attribute parameter count) - // int sprintf(const wxString& format, ...) WX_ATTRIBUTE_PRINTF_2; - WX_DEFINE_VARARG_FUNC(int, sprintf, 1, (const wxFormatString&), - DoPrintfWchar, DoPrintfUtf8) - - // use Cmp() - int CompareTo(const wxChar* psz, caseCompare cmp = exact) const - { return cmp == exact ? Cmp(psz) : CmpNoCase(psz); } - - // use length() - size_t Length() const { return length(); } - // Count the number of characters - int Freq(wxUniChar ch) const; - // use MakeLower - void LowerCase() { MakeLower(); } - // use MakeUpper - void UpperCase() { MakeUpper(); } - // use Trim except that it doesn't change this string - wxString Strip(stripType w = trailing) const; - - // use Find (more general variants not yet supported) - size_t Index(const wxChar* psz) const { return Find(psz); } - size_t Index(wxUniChar ch) const { return Find(ch); } - // use Truncate - wxString& Remove(size_t pos) { return Truncate(pos); } - wxString& RemoveLast(size_t n = 1) { return Truncate(length() - n); } - - wxString& Remove(size_t nStart, size_t nLen) - { return (wxString&)erase( nStart, nLen ); } - - // use Find() - int First( wxUniChar ch ) const { return Find(ch); } - int First( wxUniCharRef ch ) const { return Find(ch); } - int First( char ch ) const { return Find(ch); } - int First( unsigned char ch ) const { return Find(ch); } - int First( wchar_t ch ) const { return Find(ch); } - int First( const wxString& str ) const { return Find(str); } - int Last( wxUniChar ch ) const { return Find(ch, true); } - bool Contains(const wxString& str) const { return Find(str) != wxNOT_FOUND; } - - // use empty() - bool IsNull() const { return empty(); } - - // std::string compatibility functions - - // take nLen chars starting at nPos - wxString(const wxString& str, size_t nPos, size_t nLen) - { assign(str, nPos, nLen); } - // take all characters from first to last - wxString(const_iterator first, const_iterator last) - : m_impl(first.impl(), last.impl()) { } -#if WXWIN_COMPATIBILITY_STRING_PTR_AS_ITER - // the 2 overloads below are for compatibility with the existing code using - // pointers instead of iterators - wxString(const char *first, const char *last) - { - SubstrBufFromMB str(ImplStr(first, last - first)); - m_impl.assign(str.data, str.len); - } - wxString(const wchar_t *first, const wchar_t *last) - { - SubstrBufFromWC str(ImplStr(first, last - first)); - m_impl.assign(str.data, str.len); - } - // and this one is needed to compile code adding offsets to c_str() result - wxString(const wxCStrData& first, const wxCStrData& last) - : m_impl(CreateConstIterator(first).impl(), - CreateConstIterator(last).impl()) - { - wxASSERT_MSG( first.m_str == last.m_str, - wxT("pointers must be into the same string") ); - } -#endif // WXWIN_COMPATIBILITY_STRING_PTR_AS_ITER - - // lib.string.modifiers - // append elements str[pos], ..., str[pos+n] - wxString& append(const wxString& str, size_t pos, size_t n) - { - wxSTRING_UPDATE_CACHED_LENGTH(n); - - size_t from, len; - str.PosLenToImpl(pos, n, &from, &len); - m_impl.append(str.m_impl, from, len); - return *this; - } - // append a string - wxString& append(const wxString& str) - { - wxSTRING_UPDATE_CACHED_LENGTH(str.length()); - - m_impl.append(str.m_impl); - return *this; - } - - // append first n (or all if n == npos) characters of sz - wxString& append(const char *sz) - { - wxSTRING_INVALIDATE_CACHED_LENGTH(); - - m_impl.append(ImplStr(sz)); - return *this; - } - - wxString& append(const wchar_t *sz) - { - wxSTRING_INVALIDATE_CACHED_LENGTH(); - - m_impl.append(ImplStr(sz)); - return *this; - } - - wxString& append(const char *sz, size_t n) - { - wxSTRING_INVALIDATE_CACHED_LENGTH(); - - SubstrBufFromMB str(ImplStr(sz, n)); - m_impl.append(str.data, str.len); - return *this; - } - wxString& append(const wchar_t *sz, size_t n) - { - wxSTRING_UPDATE_CACHED_LENGTH(n); - - SubstrBufFromWC str(ImplStr(sz, n)); - m_impl.append(str.data, str.len); - return *this; - } - - wxString& append(const wxCStrData& str) - { return append(str.AsString()); } - wxString& append(const wxScopedCharBuffer& str) - { return append(str.data(), str.length()); } - wxString& append(const wxScopedWCharBuffer& str) - { return append(str.data(), str.length()); } - wxString& append(const wxCStrData& str, size_t n) - { return append(str.AsString(), 0, n); } - wxString& append(const wxScopedCharBuffer& str, size_t n) - { return append(str.data(), n); } - wxString& append(const wxScopedWCharBuffer& str, size_t n) - { return append(str.data(), n); } - - // append n copies of ch - wxString& append(size_t n, wxUniChar ch) - { -#if wxUSE_UNICODE_UTF8 - if ( !ch.IsAscii() ) - { - wxSTRING_INVALIDATE_CACHED_LENGTH(); - - m_impl.append(wxStringOperations::EncodeNChars(n, ch)); - } - else // ASCII -#endif - { - wxSTRING_UPDATE_CACHED_LENGTH(n); - - m_impl.append(n, (wxStringCharType)ch); - } - - return *this; - } - - wxString& append(size_t n, wxUniCharRef ch) - { return append(n, wxUniChar(ch)); } - wxString& append(size_t n, char ch) - { return append(n, wxUniChar(ch)); } - wxString& append(size_t n, unsigned char ch) - { return append(n, wxUniChar(ch)); } - wxString& append(size_t n, wchar_t ch) - { return append(n, wxUniChar(ch)); } - - // append from first to last - wxString& append(const_iterator first, const_iterator last) - { - wxSTRING_INVALIDATE_CACHED_LENGTH(); - - m_impl.append(first.impl(), last.impl()); - return *this; - } -#if WXWIN_COMPATIBILITY_STRING_PTR_AS_ITER - wxString& append(const char *first, const char *last) - { return append(first, last - first); } - wxString& append(const wchar_t *first, const wchar_t *last) - { return append(first, last - first); } - wxString& append(const wxCStrData& first, const wxCStrData& last) - { return append(CreateConstIterator(first), CreateConstIterator(last)); } -#endif // WXWIN_COMPATIBILITY_STRING_PTR_AS_ITER - - // same as `this_string = str' - wxString& assign(const wxString& str) - { - wxSTRING_SET_CACHED_LENGTH(str.length()); - - m_impl = str.m_impl; - - return *this; - } - - // This is a non-standard-compliant overload taking the first "len" - // characters of the source string. - wxString& assign(const wxString& str, size_t len) - { -#if wxUSE_STRING_POS_CACHE - // It is legal to pass len > str.length() to wxStringImpl::assign() but - // by restricting it here we save some work for that function so it's not - // really less efficient and, at the same time, ensure that we don't - // cache invalid length. - const size_t lenSrc = str.length(); - if ( len > lenSrc ) - len = lenSrc; - - wxSTRING_SET_CACHED_LENGTH(len); -#endif // wxUSE_STRING_POS_CACHE - - m_impl.assign(str.m_impl, 0, str.LenToImpl(len)); - - return *this; - } - - // same as ` = str[pos..pos + n] - wxString& assign(const wxString& str, size_t pos, size_t n) - { - size_t from, len; - str.PosLenToImpl(pos, n, &from, &len); - m_impl.assign(str.m_impl, from, len); - - // it's important to call this after PosLenToImpl() above in case str is - // the same string as this one - wxSTRING_SET_CACHED_LENGTH(n); - - return *this; - } - - // same as `= first n (or all if n == npos) characters of sz' - wxString& assign(const char *sz) - { - wxSTRING_INVALIDATE_CACHE(); - - m_impl.assign(ImplStr(sz)); - - return *this; - } - - wxString& assign(const wchar_t *sz) - { - wxSTRING_INVALIDATE_CACHE(); - - m_impl.assign(ImplStr(sz)); - - return *this; - } - - wxString& assign(const char *sz, size_t n) - { - wxSTRING_INVALIDATE_CACHE(); - - SubstrBufFromMB str(ImplStr(sz, n)); - m_impl.assign(str.data, str.len); - - return *this; - } - - wxString& assign(const wchar_t *sz, size_t n) - { - wxSTRING_SET_CACHED_LENGTH(n); - - SubstrBufFromWC str(ImplStr(sz, n)); - m_impl.assign(str.data, str.len); - - return *this; - } - - wxString& assign(const wxCStrData& str) - { return assign(str.AsString()); } - wxString& assign(const wxScopedCharBuffer& str) - { return assign(str.data(), str.length()); } - wxString& assign(const wxScopedWCharBuffer& str) - { return assign(str.data(), str.length()); } - wxString& assign(const wxCStrData& str, size_t len) - { return assign(str.AsString(), len); } - wxString& assign(const wxScopedCharBuffer& str, size_t len) - { return assign(str.data(), len); } - wxString& assign(const wxScopedWCharBuffer& str, size_t len) - { return assign(str.data(), len); } - - // same as `= n copies of ch' - wxString& assign(size_t n, wxUniChar ch) - { - wxSTRING_SET_CACHED_LENGTH(n); - -#if wxUSE_UNICODE_UTF8 - if ( !ch.IsAscii() ) - m_impl.assign(wxStringOperations::EncodeNChars(n, ch)); - else -#endif - m_impl.assign(n, (wxStringCharType)ch); - - return *this; - } - - wxString& assign(size_t n, wxUniCharRef ch) - { return assign(n, wxUniChar(ch)); } - wxString& assign(size_t n, char ch) - { return assign(n, wxUniChar(ch)); } - wxString& assign(size_t n, unsigned char ch) - { return assign(n, wxUniChar(ch)); } - wxString& assign(size_t n, wchar_t ch) - { return assign(n, wxUniChar(ch)); } - - // assign from first to last - wxString& assign(const_iterator first, const_iterator last) - { - wxSTRING_INVALIDATE_CACHE(); - - m_impl.assign(first.impl(), last.impl()); - - return *this; - } -#if WXWIN_COMPATIBILITY_STRING_PTR_AS_ITER - wxString& assign(const char *first, const char *last) - { return assign(first, last - first); } - wxString& assign(const wchar_t *first, const wchar_t *last) - { return assign(first, last - first); } - wxString& assign(const wxCStrData& first, const wxCStrData& last) - { return assign(CreateConstIterator(first), CreateConstIterator(last)); } -#endif // WXWIN_COMPATIBILITY_STRING_PTR_AS_ITER - - // string comparison - int compare(const wxString& str) const; - int compare(const char* sz) const; - int compare(const wchar_t* sz) const; - int compare(const wxCStrData& str) const - { return compare(str.AsString()); } - int compare(const wxScopedCharBuffer& str) const - { return compare(str.data()); } - int compare(const wxScopedWCharBuffer& str) const - { return compare(str.data()); } - // comparison with a substring - int compare(size_t nStart, size_t nLen, const wxString& str) const; - // comparison of 2 substrings - int compare(size_t nStart, size_t nLen, - const wxString& str, size_t nStart2, size_t nLen2) const; - // substring comparison with first nCount characters of sz - int compare(size_t nStart, size_t nLen, - const char* sz, size_t nCount = npos) const; - int compare(size_t nStart, size_t nLen, - const wchar_t* sz, size_t nCount = npos) const; - - // insert another string - wxString& insert(size_t nPos, const wxString& str) - { insert(GetIterForNthChar(nPos), str.begin(), str.end()); return *this; } - // insert n chars of str starting at nStart (in str) - wxString& insert(size_t nPos, const wxString& str, size_t nStart, size_t n) - { - wxSTRING_UPDATE_CACHED_LENGTH(n); - - size_t from, len; - str.PosLenToImpl(nStart, n, &from, &len); - m_impl.insert(PosToImpl(nPos), str.m_impl, from, len); - - return *this; - } - - // insert first n (or all if n == npos) characters of sz - wxString& insert(size_t nPos, const char *sz) - { - wxSTRING_INVALIDATE_CACHE(); - - m_impl.insert(PosToImpl(nPos), ImplStr(sz)); - - return *this; - } - - wxString& insert(size_t nPos, const wchar_t *sz) - { - wxSTRING_INVALIDATE_CACHE(); - - m_impl.insert(PosToImpl(nPos), ImplStr(sz)); return *this; - } - - wxString& insert(size_t nPos, const char *sz, size_t n) - { - wxSTRING_UPDATE_CACHED_LENGTH(n); - - SubstrBufFromMB str(ImplStr(sz, n)); - m_impl.insert(PosToImpl(nPos), str.data, str.len); - - return *this; - } - - wxString& insert(size_t nPos, const wchar_t *sz, size_t n) - { - wxSTRING_UPDATE_CACHED_LENGTH(n); - - SubstrBufFromWC str(ImplStr(sz, n)); - m_impl.insert(PosToImpl(nPos), str.data, str.len); - - return *this; - } - - // insert n copies of ch - wxString& insert(size_t nPos, size_t n, wxUniChar ch) - { - wxSTRING_UPDATE_CACHED_LENGTH(n); - -#if wxUSE_UNICODE_UTF8 - if ( !ch.IsAscii() ) - m_impl.insert(PosToImpl(nPos), wxStringOperations::EncodeNChars(n, ch)); - else -#endif - m_impl.insert(PosToImpl(nPos), n, (wxStringCharType)ch); - return *this; - } - - iterator insert(iterator it, wxUniChar ch) - { - wxSTRING_UPDATE_CACHED_LENGTH(1); - -#if wxUSE_UNICODE_UTF8 - if ( !ch.IsAscii() ) - { - size_t pos = IterToImplPos(it); - m_impl.insert(pos, wxStringOperations::EncodeChar(ch)); - return iterator(this, m_impl.begin() + pos); - } - else -#endif - return iterator(this, m_impl.insert(it.impl(), (wxStringCharType)ch)); - } - - void insert(iterator it, const_iterator first, const_iterator last) - { - wxSTRING_INVALIDATE_CACHE(); - - m_impl.insert(it.impl(), first.impl(), last.impl()); - } - -#if WXWIN_COMPATIBILITY_STRING_PTR_AS_ITER - void insert(iterator it, const char *first, const char *last) - { insert(it - begin(), first, last - first); } - void insert(iterator it, const wchar_t *first, const wchar_t *last) - { insert(it - begin(), first, last - first); } - void insert(iterator it, const wxCStrData& first, const wxCStrData& last) - { insert(it, CreateConstIterator(first), CreateConstIterator(last)); } -#endif // WXWIN_COMPATIBILITY_STRING_PTR_AS_ITER - - void insert(iterator it, size_type n, wxUniChar ch) - { - wxSTRING_UPDATE_CACHED_LENGTH(n); - -#if wxUSE_UNICODE_UTF8 - if ( !ch.IsAscii() ) - m_impl.insert(IterToImplPos(it), wxStringOperations::EncodeNChars(n, ch)); - else -#endif - m_impl.insert(it.impl(), n, (wxStringCharType)ch); - } - - // delete characters from nStart to nStart + nLen - wxString& erase(size_type pos = 0, size_type n = npos) - { - wxSTRING_INVALIDATE_CACHE(); - - size_t from, len; - PosLenToImpl(pos, n, &from, &len); - m_impl.erase(from, len); - - return *this; - } - - // delete characters from first up to last - iterator erase(iterator first, iterator last) - { - wxSTRING_INVALIDATE_CACHE(); - - return iterator(this, m_impl.erase(first.impl(), last.impl())); - } - - iterator erase(iterator first) - { - wxSTRING_UPDATE_CACHED_LENGTH(-1); - - return iterator(this, m_impl.erase(first.impl())); - } - - void clear() - { - wxSTRING_SET_CACHED_LENGTH(0); - - m_impl.clear(); - } - - // replaces the substring of length nLen starting at nStart - wxString& replace(size_t nStart, size_t nLen, const char* sz) - { - wxSTRING_INVALIDATE_CACHE(); - - size_t from, len; - PosLenToImpl(nStart, nLen, &from, &len); - m_impl.replace(from, len, ImplStr(sz)); - - return *this; - } - - wxString& replace(size_t nStart, size_t nLen, const wchar_t* sz) - { - wxSTRING_INVALIDATE_CACHE(); - - size_t from, len; - PosLenToImpl(nStart, nLen, &from, &len); - m_impl.replace(from, len, ImplStr(sz)); - - return *this; - } - - // replaces the substring of length nLen starting at nStart - wxString& replace(size_t nStart, size_t nLen, const wxString& str) - { - wxSTRING_INVALIDATE_CACHE(); - - size_t from, len; - PosLenToImpl(nStart, nLen, &from, &len); - m_impl.replace(from, len, str.m_impl); - - return *this; - } - - // replaces the substring with nCount copies of ch - wxString& replace(size_t nStart, size_t nLen, size_t nCount, wxUniChar ch) - { - wxSTRING_INVALIDATE_CACHE(); - - size_t from, len; - PosLenToImpl(nStart, nLen, &from, &len); -#if wxUSE_UNICODE_UTF8 - if ( !ch.IsAscii() ) - m_impl.replace(from, len, wxStringOperations::EncodeNChars(nCount, ch)); - else -#endif - m_impl.replace(from, len, nCount, (wxStringCharType)ch); - - return *this; - } - - // replaces a substring with another substring - wxString& replace(size_t nStart, size_t nLen, - const wxString& str, size_t nStart2, size_t nLen2) - { - wxSTRING_INVALIDATE_CACHE(); - - size_t from, len; - PosLenToImpl(nStart, nLen, &from, &len); - - size_t from2, len2; - str.PosLenToImpl(nStart2, nLen2, &from2, &len2); - - m_impl.replace(from, len, str.m_impl, from2, len2); - - return *this; - } - - // replaces the substring with first nCount chars of sz - wxString& replace(size_t nStart, size_t nLen, - const char* sz, size_t nCount) - { - wxSTRING_INVALIDATE_CACHE(); - - size_t from, len; - PosLenToImpl(nStart, nLen, &from, &len); - - SubstrBufFromMB str(ImplStr(sz, nCount)); - - m_impl.replace(from, len, str.data, str.len); - - return *this; - } - - wxString& replace(size_t nStart, size_t nLen, - const wchar_t* sz, size_t nCount) - { - wxSTRING_INVALIDATE_CACHE(); - - size_t from, len; - PosLenToImpl(nStart, nLen, &from, &len); - - SubstrBufFromWC str(ImplStr(sz, nCount)); - - m_impl.replace(from, len, str.data, str.len); - - return *this; - } - - wxString& replace(size_t nStart, size_t nLen, - const wxString& s, size_t nCount) - { - wxSTRING_INVALIDATE_CACHE(); - - size_t from, len; - PosLenToImpl(nStart, nLen, &from, &len); - m_impl.replace(from, len, s.m_impl.c_str(), s.LenToImpl(nCount)); - - return *this; - } - - wxString& replace(iterator first, iterator last, const char* s) - { - wxSTRING_INVALIDATE_CACHE(); - - m_impl.replace(first.impl(), last.impl(), ImplStr(s)); - - return *this; - } - - wxString& replace(iterator first, iterator last, const wchar_t* s) - { - wxSTRING_INVALIDATE_CACHE(); - - m_impl.replace(first.impl(), last.impl(), ImplStr(s)); - - return *this; - } - - wxString& replace(iterator first, iterator last, const char* s, size_type n) - { - wxSTRING_INVALIDATE_CACHE(); - - SubstrBufFromMB str(ImplStr(s, n)); - m_impl.replace(first.impl(), last.impl(), str.data, str.len); - - return *this; - } - - wxString& replace(iterator first, iterator last, const wchar_t* s, size_type n) - { - wxSTRING_INVALIDATE_CACHE(); - - SubstrBufFromWC str(ImplStr(s, n)); - m_impl.replace(first.impl(), last.impl(), str.data, str.len); - - return *this; - } - - wxString& replace(iterator first, iterator last, const wxString& s) - { - wxSTRING_INVALIDATE_CACHE(); - - m_impl.replace(first.impl(), last.impl(), s.m_impl); - - return *this; - } - - wxString& replace(iterator first, iterator last, size_type n, wxUniChar ch) - { - wxSTRING_INVALIDATE_CACHE(); - -#if wxUSE_UNICODE_UTF8 - if ( !ch.IsAscii() ) - m_impl.replace(first.impl(), last.impl(), - wxStringOperations::EncodeNChars(n, ch)); - else -#endif - m_impl.replace(first.impl(), last.impl(), n, (wxStringCharType)ch); - - return *this; - } - - wxString& replace(iterator first, iterator last, - const_iterator first1, const_iterator last1) - { - wxSTRING_INVALIDATE_CACHE(); - - m_impl.replace(first.impl(), last.impl(), first1.impl(), last1.impl()); - - return *this; - } - - wxString& replace(iterator first, iterator last, - const char *first1, const char *last1) - { replace(first, last, first1, last1 - first1); return *this; } - wxString& replace(iterator first, iterator last, - const wchar_t *first1, const wchar_t *last1) - { replace(first, last, first1, last1 - first1); return *this; } - - // swap two strings - void swap(wxString& str) - { -#if wxUSE_STRING_POS_CACHE - // we modify not only this string but also the other one directly so we - // need to invalidate cache for both of them (we could also try to - // exchange their cache entries but it seems unlikely to be worth it) - InvalidateCache(); - str.InvalidateCache(); -#endif // wxUSE_STRING_POS_CACHE - - m_impl.swap(str.m_impl); - } - - // find a substring - size_t find(const wxString& str, size_t nStart = 0) const - { return PosFromImpl(m_impl.find(str.m_impl, PosToImpl(nStart))); } - - // find first n characters of sz - size_t find(const char* sz, size_t nStart = 0, size_t n = npos) const - { - SubstrBufFromMB str(ImplStr(sz, n)); - return PosFromImpl(m_impl.find(str.data, PosToImpl(nStart), str.len)); - } - size_t find(const wchar_t* sz, size_t nStart = 0, size_t n = npos) const - { - SubstrBufFromWC str(ImplStr(sz, n)); - return PosFromImpl(m_impl.find(str.data, PosToImpl(nStart), str.len)); - } - size_t find(const wxScopedCharBuffer& s, size_t nStart = 0, size_t n = npos) const - { return find(s.data(), nStart, n); } - size_t find(const wxScopedWCharBuffer& s, size_t nStart = 0, size_t n = npos) const - { return find(s.data(), nStart, n); } - size_t find(const wxCStrData& s, size_t nStart = 0, size_t n = npos) const - { return find(s.AsWChar(), nStart, n); } - - // find the first occurrence of character ch after nStart - size_t find(wxUniChar ch, size_t nStart = 0) const - { -#if wxUSE_UNICODE_UTF8 - if ( !ch.IsAscii() ) - return PosFromImpl(m_impl.find(wxStringOperations::EncodeChar(ch), - PosToImpl(nStart))); - else -#endif - return PosFromImpl(m_impl.find((wxStringCharType)ch, - PosToImpl(nStart))); - - } - size_t find(wxUniCharRef ch, size_t nStart = 0) const - { return find(wxUniChar(ch), nStart); } - size_t find(char ch, size_t nStart = 0) const - { return find(wxUniChar(ch), nStart); } - size_t find(unsigned char ch, size_t nStart = 0) const - { return find(wxUniChar(ch), nStart); } - size_t find(wchar_t ch, size_t nStart = 0) const - { return find(wxUniChar(ch), nStart); } - - // rfind() family is exactly like find() but works right to left - - // as find, but from the end - size_t rfind(const wxString& str, size_t nStart = npos) const - { return PosFromImpl(m_impl.rfind(str.m_impl, PosToImpl(nStart))); } - - // as find, but from the end - size_t rfind(const char* sz, size_t nStart = npos, size_t n = npos) const - { - SubstrBufFromMB str(ImplStr(sz, n)); - return PosFromImpl(m_impl.rfind(str.data, PosToImpl(nStart), str.len)); - } - size_t rfind(const wchar_t* sz, size_t nStart = npos, size_t n = npos) const - { - SubstrBufFromWC str(ImplStr(sz, n)); - return PosFromImpl(m_impl.rfind(str.data, PosToImpl(nStart), str.len)); - } - size_t rfind(const wxScopedCharBuffer& s, size_t nStart = npos, size_t n = npos) const - { return rfind(s.data(), nStart, n); } - size_t rfind(const wxScopedWCharBuffer& s, size_t nStart = npos, size_t n = npos) const - { return rfind(s.data(), nStart, n); } - size_t rfind(const wxCStrData& s, size_t nStart = npos, size_t n = npos) const - { return rfind(s.AsWChar(), nStart, n); } - // as find, but from the end - size_t rfind(wxUniChar ch, size_t nStart = npos) const - { -#if wxUSE_UNICODE_UTF8 - if ( !ch.IsAscii() ) - return PosFromImpl(m_impl.rfind(wxStringOperations::EncodeChar(ch), - PosToImpl(nStart))); - else -#endif - return PosFromImpl(m_impl.rfind((wxStringCharType)ch, - PosToImpl(nStart))); - } - size_t rfind(wxUniCharRef ch, size_t nStart = npos) const - { return rfind(wxUniChar(ch), nStart); } - size_t rfind(char ch, size_t nStart = npos) const - { return rfind(wxUniChar(ch), nStart); } - size_t rfind(unsigned char ch, size_t nStart = npos) const - { return rfind(wxUniChar(ch), nStart); } - size_t rfind(wchar_t ch, size_t nStart = npos) const - { return rfind(wxUniChar(ch), nStart); } - - // find first/last occurrence of any character (not) in the set: -#if wxUSE_STL_BASED_WXSTRING && !wxUSE_UNICODE_UTF8 - // FIXME-UTF8: this is not entirely correct, because it doesn't work if - // sizeof(wchar_t)==2 and surrogates are present in the string; - // should we care? Probably not. - size_t find_first_of(const wxString& str, size_t nStart = 0) const - { return m_impl.find_first_of(str.m_impl, nStart); } - size_t find_first_of(const char* sz, size_t nStart = 0) const - { return m_impl.find_first_of(ImplStr(sz), nStart); } - size_t find_first_of(const wchar_t* sz, size_t nStart = 0) const - { return m_impl.find_first_of(ImplStr(sz), nStart); } - size_t find_first_of(const char* sz, size_t nStart, size_t n) const - { return m_impl.find_first_of(ImplStr(sz), nStart, n); } - size_t find_first_of(const wchar_t* sz, size_t nStart, size_t n) const - { return m_impl.find_first_of(ImplStr(sz), nStart, n); } - size_t find_first_of(wxUniChar c, size_t nStart = 0) const - { return m_impl.find_first_of((wxChar)c, nStart); } - - size_t find_last_of(const wxString& str, size_t nStart = npos) const - { return m_impl.find_last_of(str.m_impl, nStart); } - size_t find_last_of(const char* sz, size_t nStart = npos) const - { return m_impl.find_last_of(ImplStr(sz), nStart); } - size_t find_last_of(const wchar_t* sz, size_t nStart = npos) const - { return m_impl.find_last_of(ImplStr(sz), nStart); } - size_t find_last_of(const char* sz, size_t nStart, size_t n) const - { return m_impl.find_last_of(ImplStr(sz), nStart, n); } - size_t find_last_of(const wchar_t* sz, size_t nStart, size_t n) const - { return m_impl.find_last_of(ImplStr(sz), nStart, n); } - size_t find_last_of(wxUniChar c, size_t nStart = npos) const - { return m_impl.find_last_of((wxChar)c, nStart); } - - size_t find_first_not_of(const wxString& str, size_t nStart = 0) const - { return m_impl.find_first_not_of(str.m_impl, nStart); } - size_t find_first_not_of(const char* sz, size_t nStart = 0) const - { return m_impl.find_first_not_of(ImplStr(sz), nStart); } - size_t find_first_not_of(const wchar_t* sz, size_t nStart = 0) const - { return m_impl.find_first_not_of(ImplStr(sz), nStart); } - size_t find_first_not_of(const char* sz, size_t nStart, size_t n) const - { return m_impl.find_first_not_of(ImplStr(sz), nStart, n); } - size_t find_first_not_of(const wchar_t* sz, size_t nStart, size_t n) const - { return m_impl.find_first_not_of(ImplStr(sz), nStart, n); } - size_t find_first_not_of(wxUniChar c, size_t nStart = 0) const - { return m_impl.find_first_not_of((wxChar)c, nStart); } - - size_t find_last_not_of(const wxString& str, size_t nStart = npos) const - { return m_impl.find_last_not_of(str.m_impl, nStart); } - size_t find_last_not_of(const char* sz, size_t nStart = npos) const - { return m_impl.find_last_not_of(ImplStr(sz), nStart); } - size_t find_last_not_of(const wchar_t* sz, size_t nStart = npos) const - { return m_impl.find_last_not_of(ImplStr(sz), nStart); } - size_t find_last_not_of(const char* sz, size_t nStart, size_t n) const - { return m_impl.find_last_not_of(ImplStr(sz), nStart, n); } - size_t find_last_not_of(const wchar_t* sz, size_t nStart, size_t n) const - { return m_impl.find_last_not_of(ImplStr(sz), nStart, n); } - size_t find_last_not_of(wxUniChar c, size_t nStart = npos) const - { return m_impl.find_last_not_of((wxChar)c, nStart); } -#else - // we can't use std::string implementation in UTF-8 build, because the - // character sets would be interpreted wrongly: - - // as strpbrk() but starts at nStart, returns npos if not found - size_t find_first_of(const wxString& str, size_t nStart = 0) const -#if wxUSE_UNICODE // FIXME-UTF8: temporary - { return find_first_of(str.wc_str(), nStart); } -#else - { return find_first_of(str.mb_str(), nStart); } -#endif - // same as above - size_t find_first_of(const char* sz, size_t nStart = 0) const; - size_t find_first_of(const wchar_t* sz, size_t nStart = 0) const; - size_t find_first_of(const char* sz, size_t nStart, size_t n) const; - size_t find_first_of(const wchar_t* sz, size_t nStart, size_t n) const; - // same as find(char, size_t) - size_t find_first_of(wxUniChar c, size_t nStart = 0) const - { return find(c, nStart); } - // find the last (starting from nStart) char from str in this string - size_t find_last_of (const wxString& str, size_t nStart = npos) const -#if wxUSE_UNICODE // FIXME-UTF8: temporary - { return find_last_of(str.wc_str(), nStart); } -#else - { return find_last_of(str.mb_str(), nStart); } -#endif - // same as above - size_t find_last_of (const char* sz, size_t nStart = npos) const; - size_t find_last_of (const wchar_t* sz, size_t nStart = npos) const; - size_t find_last_of(const char* sz, size_t nStart, size_t n) const; - size_t find_last_of(const wchar_t* sz, size_t nStart, size_t n) const; - // same as above - size_t find_last_of(wxUniChar c, size_t nStart = npos) const - { return rfind(c, nStart); } - - // find first/last occurrence of any character not in the set - - // as strspn() (starting from nStart), returns npos on failure - size_t find_first_not_of(const wxString& str, size_t nStart = 0) const -#if wxUSE_UNICODE // FIXME-UTF8: temporary - { return find_first_not_of(str.wc_str(), nStart); } -#else - { return find_first_not_of(str.mb_str(), nStart); } -#endif - // same as above - size_t find_first_not_of(const char* sz, size_t nStart = 0) const; - size_t find_first_not_of(const wchar_t* sz, size_t nStart = 0) const; - size_t find_first_not_of(const char* sz, size_t nStart, size_t n) const; - size_t find_first_not_of(const wchar_t* sz, size_t nStart, size_t n) const; - // same as above - size_t find_first_not_of(wxUniChar ch, size_t nStart = 0) const; - // as strcspn() - size_t find_last_not_of(const wxString& str, size_t nStart = npos) const -#if wxUSE_UNICODE // FIXME-UTF8: temporary - { return find_last_not_of(str.wc_str(), nStart); } -#else - { return find_last_not_of(str.mb_str(), nStart); } -#endif - // same as above - size_t find_last_not_of(const char* sz, size_t nStart = npos) const; - size_t find_last_not_of(const wchar_t* sz, size_t nStart = npos) const; - size_t find_last_not_of(const char* sz, size_t nStart, size_t n) const; - size_t find_last_not_of(const wchar_t* sz, size_t nStart, size_t n) const; - // same as above - size_t find_last_not_of(wxUniChar ch, size_t nStart = npos) const; -#endif // wxUSE_STL_BASED_WXSTRING && !wxUSE_UNICODE_UTF8 or not - - // provide char/wchar_t/wxUniCharRef overloads for char-finding functions - // above to resolve ambiguities: - size_t find_first_of(wxUniCharRef ch, size_t nStart = 0) const - { return find_first_of(wxUniChar(ch), nStart); } - size_t find_first_of(char ch, size_t nStart = 0) const - { return find_first_of(wxUniChar(ch), nStart); } - size_t find_first_of(unsigned char ch, size_t nStart = 0) const - { return find_first_of(wxUniChar(ch), nStart); } - size_t find_first_of(wchar_t ch, size_t nStart = 0) const - { return find_first_of(wxUniChar(ch), nStart); } - size_t find_last_of(wxUniCharRef ch, size_t nStart = npos) const - { return find_last_of(wxUniChar(ch), nStart); } - size_t find_last_of(char ch, size_t nStart = npos) const - { return find_last_of(wxUniChar(ch), nStart); } - size_t find_last_of(unsigned char ch, size_t nStart = npos) const - { return find_last_of(wxUniChar(ch), nStart); } - size_t find_last_of(wchar_t ch, size_t nStart = npos) const - { return find_last_of(wxUniChar(ch), nStart); } - size_t find_first_not_of(wxUniCharRef ch, size_t nStart = 0) const - { return find_first_not_of(wxUniChar(ch), nStart); } - size_t find_first_not_of(char ch, size_t nStart = 0) const - { return find_first_not_of(wxUniChar(ch), nStart); } - size_t find_first_not_of(unsigned char ch, size_t nStart = 0) const - { return find_first_not_of(wxUniChar(ch), nStart); } - size_t find_first_not_of(wchar_t ch, size_t nStart = 0) const - { return find_first_not_of(wxUniChar(ch), nStart); } - size_t find_last_not_of(wxUniCharRef ch, size_t nStart = npos) const - { return find_last_not_of(wxUniChar(ch), nStart); } - size_t find_last_not_of(char ch, size_t nStart = npos) const - { return find_last_not_of(wxUniChar(ch), nStart); } - size_t find_last_not_of(unsigned char ch, size_t nStart = npos) const - { return find_last_not_of(wxUniChar(ch), nStart); } - size_t find_last_not_of(wchar_t ch, size_t nStart = npos) const - { return find_last_not_of(wxUniChar(ch), nStart); } - - // and additional overloads for the versions taking strings: - size_t find_first_of(const wxCStrData& sz, size_t nStart = 0) const - { return find_first_of(sz.AsString(), nStart); } - size_t find_first_of(const wxScopedCharBuffer& sz, size_t nStart = 0) const - { return find_first_of(sz.data(), nStart); } - size_t find_first_of(const wxScopedWCharBuffer& sz, size_t nStart = 0) const - { return find_first_of(sz.data(), nStart); } - size_t find_first_of(const wxCStrData& sz, size_t nStart, size_t n) const - { return find_first_of(sz.AsWChar(), nStart, n); } - size_t find_first_of(const wxScopedCharBuffer& sz, size_t nStart, size_t n) const - { return find_first_of(sz.data(), nStart, n); } - size_t find_first_of(const wxScopedWCharBuffer& sz, size_t nStart, size_t n) const - { return find_first_of(sz.data(), nStart, n); } - - size_t find_last_of(const wxCStrData& sz, size_t nStart = 0) const - { return find_last_of(sz.AsString(), nStart); } - size_t find_last_of(const wxScopedCharBuffer& sz, size_t nStart = 0) const - { return find_last_of(sz.data(), nStart); } - size_t find_last_of(const wxScopedWCharBuffer& sz, size_t nStart = 0) const - { return find_last_of(sz.data(), nStart); } - size_t find_last_of(const wxCStrData& sz, size_t nStart, size_t n) const - { return find_last_of(sz.AsWChar(), nStart, n); } - size_t find_last_of(const wxScopedCharBuffer& sz, size_t nStart, size_t n) const - { return find_last_of(sz.data(), nStart, n); } - size_t find_last_of(const wxScopedWCharBuffer& sz, size_t nStart, size_t n) const - { return find_last_of(sz.data(), nStart, n); } - - size_t find_first_not_of(const wxCStrData& sz, size_t nStart = 0) const - { return find_first_not_of(sz.AsString(), nStart); } - size_t find_first_not_of(const wxScopedCharBuffer& sz, size_t nStart = 0) const - { return find_first_not_of(sz.data(), nStart); } - size_t find_first_not_of(const wxScopedWCharBuffer& sz, size_t nStart = 0) const - { return find_first_not_of(sz.data(), nStart); } - size_t find_first_not_of(const wxCStrData& sz, size_t nStart, size_t n) const - { return find_first_not_of(sz.AsWChar(), nStart, n); } - size_t find_first_not_of(const wxScopedCharBuffer& sz, size_t nStart, size_t n) const - { return find_first_not_of(sz.data(), nStart, n); } - size_t find_first_not_of(const wxScopedWCharBuffer& sz, size_t nStart, size_t n) const - { return find_first_not_of(sz.data(), nStart, n); } - - size_t find_last_not_of(const wxCStrData& sz, size_t nStart = 0) const - { return find_last_not_of(sz.AsString(), nStart); } - size_t find_last_not_of(const wxScopedCharBuffer& sz, size_t nStart = 0) const - { return find_last_not_of(sz.data(), nStart); } - size_t find_last_not_of(const wxScopedWCharBuffer& sz, size_t nStart = 0) const - { return find_last_not_of(sz.data(), nStart); } - size_t find_last_not_of(const wxCStrData& sz, size_t nStart, size_t n) const - { return find_last_not_of(sz.AsWChar(), nStart, n); } - size_t find_last_not_of(const wxScopedCharBuffer& sz, size_t nStart, size_t n) const - { return find_last_not_of(sz.data(), nStart, n); } - size_t find_last_not_of(const wxScopedWCharBuffer& sz, size_t nStart, size_t n) const - { return find_last_not_of(sz.data(), nStart, n); } - - // string += string - wxString& operator+=(const wxString& s) - { - wxSTRING_INVALIDATE_CACHED_LENGTH(); - - m_impl += s.m_impl; - return *this; - } - // string += C string - wxString& operator+=(const char *psz) - { - wxSTRING_INVALIDATE_CACHED_LENGTH(); - - m_impl += ImplStr(psz); - return *this; - } - wxString& operator+=(const wchar_t *pwz) - { - wxSTRING_INVALIDATE_CACHED_LENGTH(); - - m_impl += ImplStr(pwz); - return *this; - } - wxString& operator+=(const wxCStrData& s) - { - wxSTRING_INVALIDATE_CACHED_LENGTH(); - - m_impl += s.AsString().m_impl; - return *this; - } - wxString& operator+=(const wxScopedCharBuffer& s) - { return append(s); } - wxString& operator+=(const wxScopedWCharBuffer& s) - { return append(s); } - // string += char - wxString& operator+=(wxUniChar ch) - { - wxSTRING_UPDATE_CACHED_LENGTH(1); - -#if wxUSE_UNICODE_UTF8 - if ( !ch.IsAscii() ) - m_impl += wxStringOperations::EncodeChar(ch); - else -#endif - m_impl += (wxStringCharType)ch; - return *this; - } - wxString& operator+=(wxUniCharRef ch) { return *this += wxUniChar(ch); } - wxString& operator+=(int ch) { return *this += wxUniChar(ch); } - wxString& operator+=(char ch) { return *this += wxUniChar(ch); } - wxString& operator+=(unsigned char ch) { return *this += wxUniChar(ch); } - wxString& operator+=(wchar_t ch) { return *this += wxUniChar(ch); } - -private: -#if !wxUSE_STL_BASED_WXSTRING - // helpers for wxStringBuffer and wxStringBufferLength - wxStringCharType *DoGetWriteBuf(size_t nLen) - { - return m_impl.DoGetWriteBuf(nLen); - } - - void DoUngetWriteBuf() - { - wxSTRING_INVALIDATE_CACHE(); - - m_impl.DoUngetWriteBuf(); - } - - void DoUngetWriteBuf(size_t nLen) - { - wxSTRING_INVALIDATE_CACHE(); - - m_impl.DoUngetWriteBuf(nLen); - } -#endif // !wxUSE_STL_BASED_WXSTRING - - #if !wxUSE_UTF8_LOCALE_ONLY - int DoPrintfWchar(const wxChar *format, ...); - static wxString DoFormatWchar(const wxChar *format, ...); - #endif - #if wxUSE_UNICODE_UTF8 - int DoPrintfUtf8(const char *format, ...); - static wxString DoFormatUtf8(const char *format, ...); - #endif - -#if !wxUSE_STL_BASED_WXSTRING - // check string's data validity - bool IsValid() const { return m_impl.GetStringData()->IsValid(); } -#endif - -private: - wxStringImpl m_impl; - - // buffers for compatibility conversion from (char*)c_str() and - // (wchar_t*)c_str(): the pointers returned by these functions should remain - // valid until the string itself is modified for compatibility with the - // existing code and consistency with std::string::c_str() so returning a - // temporary buffer won't do and we need to cache the conversion results - - // TODO-UTF8: benchmark various approaches to keeping compatibility buffers - template<typename T> - struct ConvertedBuffer - { - // notice that there is no need to initialize m_len here as it's unused - // as long as m_str is NULL - ConvertedBuffer() : m_str(NULL) {} - ~ConvertedBuffer() - { free(m_str); } - - bool Extend(size_t len) - { - // add extra 1 for the trailing NUL - void * const str = realloc(m_str, sizeof(T)*(len + 1)); - if ( !str ) - return false; - - m_str = static_cast<T *>(str); - m_len = len; - - return true; - } - - const wxScopedCharTypeBuffer<T> AsScopedBuffer() const - { - return wxScopedCharTypeBuffer<T>::CreateNonOwned(m_str, m_len); - } - - T *m_str; // pointer to the string data - size_t m_len; // length, not size, i.e. in chars and without last NUL - }; - - -#if wxUSE_UNICODE - // common mb_str() and wxCStrData::AsChar() helper: performs the conversion - // and returns either m_convertedToChar.m_str (in which case its m_len is - // also updated) or NULL if it failed - // - // there is an important exception: in wxUSE_UNICODE_UTF8 build if conv is a - // UTF-8 one, we return m_impl.c_str() directly, without doing any conversion - // as optimization and so the caller needs to check for this before using - // m_convertedToChar - // - // NB: AsChar() returns char* in any build, unlike mb_str() - const char *AsChar(const wxMBConv& conv) const; - - // mb_str() implementation helper - wxScopedCharBuffer AsCharBuf(const wxMBConv& conv) const - { -#if wxUSE_UNICODE_UTF8 - // avoid conversion if we can - if ( conv.IsUTF8() ) - { - return wxScopedCharBuffer::CreateNonOwned(m_impl.c_str(), - m_impl.length()); - } -#endif // wxUSE_UNICODE_UTF8 - - // call this solely in order to fill in m_convertedToChar as AsChar() - // updates it as a side effect: this is a bit ugly but it's a completely - // internal function so the users of this class shouldn't care or know - // about it and doing it like this, i.e. having a separate AsChar(), - // allows us to avoid the creation and destruction of a temporary buffer - // when using wxCStrData without duplicating any code - if ( !AsChar(conv) ) - { - // although it would be probably more correct to return NULL buffer - // from here if the conversion fails, a lot of existing code doesn't - // expect mb_str() (or wc_str()) to ever return NULL so return an - // empty string otherwise to avoid crashes in it - // - // also, some existing code does check for the conversion success and - // so asserting here would be bad too -- even if it does mean that - // silently losing data is possible for badly written code - return wxScopedCharBuffer::CreateNonOwned("", 0); - } - - return m_convertedToChar.AsScopedBuffer(); - } - - ConvertedBuffer<char> m_convertedToChar; -#endif // !wxUSE_UNICODE - -#if !wxUSE_UNICODE_WCHAR - // common wc_str() and wxCStrData::AsWChar() helper for both UTF-8 and ANSI - // builds: converts the string contents into m_convertedToWChar and returns - // NULL if the conversion failed (this can only happen in ANSI build) - // - // NB: AsWChar() returns wchar_t* in any build, unlike wc_str() - const wchar_t *AsWChar(const wxMBConv& conv) const; - - // wc_str() implementation helper - wxScopedWCharBuffer AsWCharBuf(const wxMBConv& conv) const - { - if ( !AsWChar(conv) ) - return wxScopedWCharBuffer::CreateNonOwned(L"", 0); - - return m_convertedToWChar.AsScopedBuffer(); - } - - ConvertedBuffer<wchar_t> m_convertedToWChar; -#endif // !wxUSE_UNICODE_WCHAR - -#if wxUSE_UNICODE_UTF8 - // FIXME-UTF8: (try to) move this elsewhere (TLS) or solve differently - // assigning to character pointer to by wxString::iterator may - // change the underlying wxStringImpl iterator, so we have to - // keep track of all iterators and update them as necessary: - struct wxStringIteratorNodeHead - { - wxStringIteratorNodeHead() : ptr(NULL) {} - wxStringIteratorNode *ptr; - - // copying is disallowed as it would result in more than one pointer into - // the same linked list - wxDECLARE_NO_COPY_CLASS(wxStringIteratorNodeHead); - }; - - wxStringIteratorNodeHead m_iterators; - - friend class WXDLLIMPEXP_FWD_BASE wxStringIteratorNode; - friend class WXDLLIMPEXP_FWD_BASE wxUniCharRef; -#endif // wxUSE_UNICODE_UTF8 - - friend class WXDLLIMPEXP_FWD_BASE wxCStrData; - friend class wxStringInternalBuffer; - friend class wxStringInternalBufferLength; -}; - -// string iterator operators that satisfy STL Random Access Iterator -// requirements: -inline wxString::iterator operator+(ptrdiff_t n, wxString::iterator i) - { return i + n; } -inline wxString::const_iterator operator+(ptrdiff_t n, wxString::const_iterator i) - { return i + n; } -inline wxString::reverse_iterator operator+(ptrdiff_t n, wxString::reverse_iterator i) - { return i + n; } -inline wxString::const_reverse_iterator operator+(ptrdiff_t n, wxString::const_reverse_iterator i) - { return i + n; } - -// notice that even though for many compilers the friend declarations above are -// enough, from the point of view of C++ standard we must have the declarations -// here as friend ones are not injected in the enclosing namespace and without -// them the code fails to compile with conforming compilers such as xlC or g++4 -wxString WXDLLIMPEXP_BASE operator+(const wxString& string1, const wxString& string2); -wxString WXDLLIMPEXP_BASE operator+(const wxString& string, const char *psz); -wxString WXDLLIMPEXP_BASE operator+(const wxString& string, const wchar_t *pwz); -wxString WXDLLIMPEXP_BASE operator+(const char *psz, const wxString& string); -wxString WXDLLIMPEXP_BASE operator+(const wchar_t *pwz, const wxString& string); - -wxString WXDLLIMPEXP_BASE operator+(const wxString& string, wxUniChar ch); -wxString WXDLLIMPEXP_BASE operator+(wxUniChar ch, const wxString& string); - -inline wxString operator+(const wxString& string, wxUniCharRef ch) - { return string + (wxUniChar)ch; } -inline wxString operator+(const wxString& string, char ch) - { return string + wxUniChar(ch); } -inline wxString operator+(const wxString& string, wchar_t ch) - { return string + wxUniChar(ch); } -inline wxString operator+(wxUniCharRef ch, const wxString& string) - { return (wxUniChar)ch + string; } -inline wxString operator+(char ch, const wxString& string) - { return wxUniChar(ch) + string; } -inline wxString operator+(wchar_t ch, const wxString& string) - { return wxUniChar(ch) + string; } - - -#define wxGetEmptyString() wxString() - -// ---------------------------------------------------------------------------- -// helper functions which couldn't be defined inline -// ---------------------------------------------------------------------------- - -namespace wxPrivate -{ - -#if wxUSE_UNICODE_WCHAR - -template <> -struct wxStringAsBufHelper<char> -{ - static wxScopedCharBuffer Get(const wxString& s, size_t *len) - { - wxScopedCharBuffer buf(s.mb_str()); - if ( len ) - *len = buf ? strlen(buf) : 0; - return buf; - } -}; - -template <> -struct wxStringAsBufHelper<wchar_t> -{ - static wxScopedWCharBuffer Get(const wxString& s, size_t *len) - { - const size_t length = s.length(); - if ( len ) - *len = length; - return wxScopedWCharBuffer::CreateNonOwned(s.wx_str(), length); - } -}; - -#elif wxUSE_UNICODE_UTF8 - -template <> -struct wxStringAsBufHelper<char> -{ - static wxScopedCharBuffer Get(const wxString& s, size_t *len) - { - const size_t length = s.utf8_length(); - if ( len ) - *len = length; - return wxScopedCharBuffer::CreateNonOwned(s.wx_str(), length); - } -}; - -template <> -struct wxStringAsBufHelper<wchar_t> -{ - static wxScopedWCharBuffer Get(const wxString& s, size_t *len) - { - wxScopedWCharBuffer wbuf(s.wc_str()); - if ( len ) - *len = wxWcslen(wbuf); - return wbuf; - } -}; - -#endif // Unicode build kind - -} // namespace wxPrivate - -// ---------------------------------------------------------------------------- -// wxStringBuffer: a tiny class allowing to get a writable pointer into string -// ---------------------------------------------------------------------------- - -#if !wxUSE_STL_BASED_WXSTRING -// string buffer for direct access to string data in their native -// representation: -class wxStringInternalBuffer -{ -public: - typedef wxStringCharType CharType; - - wxStringInternalBuffer(wxString& str, size_t lenWanted = 1024) - : m_str(str), m_buf(NULL) - { m_buf = m_str.DoGetWriteBuf(lenWanted); } - - ~wxStringInternalBuffer() { m_str.DoUngetWriteBuf(); } - - operator wxStringCharType*() const { return m_buf; } - -private: - wxString& m_str; - wxStringCharType *m_buf; - - wxDECLARE_NO_COPY_CLASS(wxStringInternalBuffer); -}; - -class wxStringInternalBufferLength -{ -public: - typedef wxStringCharType CharType; - - wxStringInternalBufferLength(wxString& str, size_t lenWanted = 1024) - : m_str(str), m_buf(NULL), m_len(0), m_lenSet(false) - { - m_buf = m_str.DoGetWriteBuf(lenWanted); - wxASSERT(m_buf != NULL); - } - - ~wxStringInternalBufferLength() - { - wxASSERT(m_lenSet); - m_str.DoUngetWriteBuf(m_len); - } - - operator wxStringCharType*() const { return m_buf; } - void SetLength(size_t length) { m_len = length; m_lenSet = true; } - -private: - wxString& m_str; - wxStringCharType *m_buf; - size_t m_len; - bool m_lenSet; - - wxDECLARE_NO_COPY_CLASS(wxStringInternalBufferLength); -}; - -#endif // !wxUSE_STL_BASED_WXSTRING - -template<typename T> -class wxStringTypeBufferBase -{ -public: - typedef T CharType; - - wxStringTypeBufferBase(wxString& str, size_t lenWanted = 1024) - : m_str(str), m_buf(lenWanted) - { - // for compatibility with old wxStringBuffer which provided direct - // access to wxString internal buffer, initialize ourselves with the - // string initial contents - - size_t len; - const wxCharTypeBuffer<CharType> buf(str.tchar_str<CharType>(&len)); - if ( buf ) - { - if ( len > lenWanted ) - { - // in this case there is not enough space for terminating NUL, - // ensure that we still put it there - m_buf.data()[lenWanted] = 0; - len = lenWanted - 1; - } - - memcpy(m_buf.data(), buf, (len + 1)*sizeof(CharType)); - } - //else: conversion failed, this can happen when trying to get Unicode - // string contents into a char string - } - - operator CharType*() { return m_buf.data(); } - -protected: - wxString& m_str; - wxCharTypeBuffer<CharType> m_buf; -}; - -template<typename T> -class wxStringTypeBufferLengthBase : public wxStringTypeBufferBase<T> -{ -public: - wxStringTypeBufferLengthBase(wxString& str, size_t lenWanted = 1024) - : wxStringTypeBufferBase<T>(str, lenWanted), - m_len(0), - m_lenSet(false) - { } - - ~wxStringTypeBufferLengthBase() - { - wxASSERT_MSG( this->m_lenSet, "forgot to call SetLength()" ); - } - - void SetLength(size_t length) { m_len = length; m_lenSet = true; } - -protected: - size_t m_len; - bool m_lenSet; -}; - -template<typename T> -class wxStringTypeBuffer : public wxStringTypeBufferBase<T> -{ -public: - wxStringTypeBuffer(wxString& str, size_t lenWanted = 1024) - : wxStringTypeBufferBase<T>(str, lenWanted) - { } - - ~wxStringTypeBuffer() - { - this->m_str.assign(this->m_buf.data()); - } - - wxDECLARE_NO_COPY_CLASS(wxStringTypeBuffer); -}; - -template<typename T> -class wxStringTypeBufferLength : public wxStringTypeBufferLengthBase<T> -{ -public: - wxStringTypeBufferLength(wxString& str, size_t lenWanted = 1024) - : wxStringTypeBufferLengthBase<T>(str, lenWanted) - { } - - ~wxStringTypeBufferLength() - { - this->m_str.assign(this->m_buf.data(), this->m_len); - } - - wxDECLARE_NO_COPY_CLASS(wxStringTypeBufferLength); -}; - -#if wxUSE_STL_BASED_WXSTRING - -class wxStringInternalBuffer : public wxStringTypeBufferBase<wxStringCharType> -{ -public: - wxStringInternalBuffer(wxString& str, size_t lenWanted = 1024) - : wxStringTypeBufferBase<wxStringCharType>(str, lenWanted) {} - ~wxStringInternalBuffer() - { m_str.m_impl.assign(m_buf.data()); } - - wxDECLARE_NO_COPY_CLASS(wxStringInternalBuffer); -}; - -class wxStringInternalBufferLength - : public wxStringTypeBufferLengthBase<wxStringCharType> -{ -public: - wxStringInternalBufferLength(wxString& str, size_t lenWanted = 1024) - : wxStringTypeBufferLengthBase<wxStringCharType>(str, lenWanted) {} - - ~wxStringInternalBufferLength() - { - m_str.m_impl.assign(m_buf.data(), m_len); - } - - wxDECLARE_NO_COPY_CLASS(wxStringInternalBufferLength); -}; - -#endif // wxUSE_STL_BASED_WXSTRING - - -#if wxUSE_STL_BASED_WXSTRING || wxUSE_UNICODE_UTF8 -typedef wxStringTypeBuffer<wxChar> wxStringBuffer; -typedef wxStringTypeBufferLength<wxChar> wxStringBufferLength; -#else // if !wxUSE_STL_BASED_WXSTRING && !wxUSE_UNICODE_UTF8 -typedef wxStringInternalBuffer wxStringBuffer; -typedef wxStringInternalBufferLength wxStringBufferLength; -#endif // !wxUSE_STL_BASED_WXSTRING && !wxUSE_UNICODE_UTF8 - -#if wxUSE_UNICODE_UTF8 -typedef wxStringInternalBuffer wxUTF8StringBuffer; -typedef wxStringInternalBufferLength wxUTF8StringBufferLength; -#elif wxUSE_UNICODE_WCHAR - -// Note about inlined dtors in the classes below: this is done not for -// performance reasons but just to avoid linking errors in the MSVC DLL build -// under Windows: if a class has non-inline methods it must be declared as -// being DLL-exported but, due to an extremely interesting feature of MSVC 7 -// and later, any template class which is used as a base of a DLL-exported -// class is implicitly made DLL-exported too, as explained at the bottom of -// http://msdn.microsoft.com/en-us/library/twa2aw10.aspx (just to confirm: yes, -// _inheriting_ from a class can change whether it is being exported from DLL) -// -// But this results in link errors because the base template class is not DLL- -// exported, whether it is declared with WXDLLIMPEXP_BASE or not, because it -// does have only inline functions. So the simplest fix is to just make all the -// functions of these classes inline too. - -class wxUTF8StringBuffer : public wxStringTypeBufferBase<char> -{ -public: - wxUTF8StringBuffer(wxString& str, size_t lenWanted = 1024) - : wxStringTypeBufferBase<char>(str, lenWanted) {} - ~wxUTF8StringBuffer() - { - wxMBConvStrictUTF8 conv; - size_t wlen = conv.ToWChar(NULL, 0, m_buf); - wxCHECK_RET( wlen != wxCONV_FAILED, "invalid UTF-8 data in string buffer?" ); - - wxStringInternalBuffer wbuf(m_str, wlen); - conv.ToWChar(wbuf, wlen, m_buf); - } - - wxDECLARE_NO_COPY_CLASS(wxUTF8StringBuffer); -}; - -class wxUTF8StringBufferLength : public wxStringTypeBufferLengthBase<char> -{ -public: - wxUTF8StringBufferLength(wxString& str, size_t lenWanted = 1024) - : wxStringTypeBufferLengthBase<char>(str, lenWanted) {} - ~wxUTF8StringBufferLength() - { - wxCHECK_RET(m_lenSet, "length not set"); - - wxMBConvStrictUTF8 conv; - size_t wlen = conv.ToWChar(NULL, 0, m_buf, m_len); - wxCHECK_RET( wlen != wxCONV_FAILED, "invalid UTF-8 data in string buffer?" ); - - wxStringInternalBufferLength wbuf(m_str, wlen); - conv.ToWChar(wbuf, wlen, m_buf, m_len); - wbuf.SetLength(wlen); - } - - wxDECLARE_NO_COPY_CLASS(wxUTF8StringBufferLength); -}; -#endif // wxUSE_UNICODE_UTF8/wxUSE_UNICODE_WCHAR - - -// --------------------------------------------------------------------------- -// wxString comparison functions: operator versions are always case sensitive -// --------------------------------------------------------------------------- - -#define wxCMP_WXCHAR_STRING(p, s, op) 0 op s.Cmp(p) - -wxDEFINE_ALL_COMPARISONS(const wxChar *, const wxString&, wxCMP_WXCHAR_STRING) - -#undef wxCMP_WXCHAR_STRING - -inline bool operator==(const wxString& s1, const wxString& s2) - { return s1.IsSameAs(s2); } -inline bool operator!=(const wxString& s1, const wxString& s2) - { return !s1.IsSameAs(s2); } -inline bool operator< (const wxString& s1, const wxString& s2) - { return s1.Cmp(s2) < 0; } -inline bool operator> (const wxString& s1, const wxString& s2) - { return s1.Cmp(s2) > 0; } -inline bool operator<=(const wxString& s1, const wxString& s2) - { return s1.Cmp(s2) <= 0; } -inline bool operator>=(const wxString& s1, const wxString& s2) - { return s1.Cmp(s2) >= 0; } - -inline bool operator==(const wxString& s1, const wxCStrData& s2) - { return s1 == s2.AsString(); } -inline bool operator==(const wxCStrData& s1, const wxString& s2) - { return s1.AsString() == s2; } -inline bool operator!=(const wxString& s1, const wxCStrData& s2) - { return s1 != s2.AsString(); } -inline bool operator!=(const wxCStrData& s1, const wxString& s2) - { return s1.AsString() != s2; } - -inline bool operator==(const wxString& s1, const wxScopedWCharBuffer& s2) - { return (s1.Cmp((const wchar_t *)s2) == 0); } -inline bool operator==(const wxScopedWCharBuffer& s1, const wxString& s2) - { return (s2.Cmp((const wchar_t *)s1) == 0); } -inline bool operator!=(const wxString& s1, const wxScopedWCharBuffer& s2) - { return (s1.Cmp((const wchar_t *)s2) != 0); } -inline bool operator!=(const wxScopedWCharBuffer& s1, const wxString& s2) - { return (s2.Cmp((const wchar_t *)s1) != 0); } - -inline bool operator==(const wxString& s1, const wxScopedCharBuffer& s2) - { return (s1.Cmp((const char *)s2) == 0); } -inline bool operator==(const wxScopedCharBuffer& s1, const wxString& s2) - { return (s2.Cmp((const char *)s1) == 0); } -inline bool operator!=(const wxString& s1, const wxScopedCharBuffer& s2) - { return (s1.Cmp((const char *)s2) != 0); } -inline bool operator!=(const wxScopedCharBuffer& s1, const wxString& s2) - { return (s2.Cmp((const char *)s1) != 0); } - -inline wxString operator+(const wxString& string, const wxScopedWCharBuffer& buf) - { return string + (const wchar_t *)buf; } -inline wxString operator+(const wxScopedWCharBuffer& buf, const wxString& string) - { return (const wchar_t *)buf + string; } - -inline wxString operator+(const wxString& string, const wxScopedCharBuffer& buf) - { return string + (const char *)buf; } -inline wxString operator+(const wxScopedCharBuffer& buf, const wxString& string) - { return (const char *)buf + string; } - -// comparison with char -inline bool operator==(const wxUniChar& c, const wxString& s) { return s.IsSameAs(c); } -inline bool operator==(const wxUniCharRef& c, const wxString& s) { return s.IsSameAs(c); } -inline bool operator==(char c, const wxString& s) { return s.IsSameAs(c); } -inline bool operator==(wchar_t c, const wxString& s) { return s.IsSameAs(c); } -inline bool operator==(int c, const wxString& s) { return s.IsSameAs(c); } -inline bool operator==(const wxString& s, const wxUniChar& c) { return s.IsSameAs(c); } -inline bool operator==(const wxString& s, const wxUniCharRef& c) { return s.IsSameAs(c); } -inline bool operator==(const wxString& s, char c) { return s.IsSameAs(c); } -inline bool operator==(const wxString& s, wchar_t c) { return s.IsSameAs(c); } -inline bool operator!=(const wxUniChar& c, const wxString& s) { return !s.IsSameAs(c); } -inline bool operator!=(const wxUniCharRef& c, const wxString& s) { return !s.IsSameAs(c); } -inline bool operator!=(char c, const wxString& s) { return !s.IsSameAs(c); } -inline bool operator!=(wchar_t c, const wxString& s) { return !s.IsSameAs(c); } -inline bool operator!=(int c, const wxString& s) { return !s.IsSameAs(c); } -inline bool operator!=(const wxString& s, const wxUniChar& c) { return !s.IsSameAs(c); } -inline bool operator!=(const wxString& s, const wxUniCharRef& c) { return !s.IsSameAs(c); } -inline bool operator!=(const wxString& s, char c) { return !s.IsSameAs(c); } -inline bool operator!=(const wxString& s, wchar_t c) { return !s.IsSameAs(c); } - - -// wxString iterators comparisons -inline bool wxString::iterator::operator==(const const_iterator& i) const - { return i == *this; } -inline bool wxString::iterator::operator!=(const const_iterator& i) const - { return i != *this; } -inline bool wxString::iterator::operator<(const const_iterator& i) const - { return i > *this; } -inline bool wxString::iterator::operator>(const const_iterator& i) const - { return i < *this; } -inline bool wxString::iterator::operator<=(const const_iterator& i) const - { return i >= *this; } -inline bool wxString::iterator::operator>=(const const_iterator& i) const - { return i <= *this; } - -// comparison with C string in Unicode build -#if wxUSE_UNICODE - -#define wxCMP_CHAR_STRING(p, s, op) wxString(p) op s - -wxDEFINE_ALL_COMPARISONS(const char *, const wxString&, wxCMP_CHAR_STRING) - -#undef wxCMP_CHAR_STRING - -#endif // wxUSE_UNICODE - -// we also need to provide the operators for comparison with wxCStrData to -// resolve ambiguity between operator(const wxChar *,const wxString &) and -// operator(const wxChar *, const wxChar *) for "p == s.c_str()" -// -// notice that these are (shallow) pointer comparisons, not (deep) string ones -#define wxCMP_CHAR_CSTRDATA(p, s, op) p op s.AsChar() -#define wxCMP_WCHAR_CSTRDATA(p, s, op) p op s.AsWChar() - -wxDEFINE_ALL_COMPARISONS(const wchar_t *, const wxCStrData&, wxCMP_WCHAR_CSTRDATA) -wxDEFINE_ALL_COMPARISONS(const char *, const wxCStrData&, wxCMP_CHAR_CSTRDATA) - -#undef wxCMP_CHAR_CSTRDATA -#undef wxCMP_WCHAR_CSTRDATA - -// ---------------------------------------------------------------------------- -// Implement hashing using C++11 std::hash<>. -// ---------------------------------------------------------------------------- - -// Check for both compiler and standard library support for C++11: normally the -// former implies the latter but under Mac OS X < 10.7 C++11 compiler can (and -// even has to be) used with non-C++11 standard library, so explicitly exclude -// this case. -#if (__cplusplus >= 201103L || wxCHECK_VISUALC_VERSION(10)) \ - && ( (!defined __GLIBCXX__) || (__GLIBCXX__ > 20070719) ) - -// Don't do this if ToStdWstring() is not available. We could work around it -// but, presumably, if using std::wstring is undesirable, then so is using -// std::hash<> anyhow. -#if wxUSE_STD_STRING - -#include <functional> - -namespace std -{ - template<> - struct hash<wxString> - { - size_t operator()(const wxString& s) const - { - return std::hash<std::wstring>()(s.ToStdWstring()); - } - }; -} // namespace std - -#endif // wxUSE_STD_STRING - -#endif // C++11 - -// --------------------------------------------------------------------------- -// Implementation only from here until the end of file -// --------------------------------------------------------------------------- - -#if wxUSE_STD_IOSTREAM - -#include "wx/iosfwrap.h" - -WXDLLIMPEXP_BASE wxSTD ostream& operator<<(wxSTD ostream&, const wxString&); -WXDLLIMPEXP_BASE wxSTD ostream& operator<<(wxSTD ostream&, const wxCStrData&); -WXDLLIMPEXP_BASE wxSTD ostream& operator<<(wxSTD ostream&, const wxScopedCharBuffer&); -#ifndef __BORLANDC__ -WXDLLIMPEXP_BASE wxSTD ostream& operator<<(wxSTD ostream&, const wxScopedWCharBuffer&); -#endif - -#if wxUSE_UNICODE && defined(HAVE_WOSTREAM) - -WXDLLIMPEXP_BASE wxSTD wostream& operator<<(wxSTD wostream&, const wxString&); -WXDLLIMPEXP_BASE wxSTD wostream& operator<<(wxSTD wostream&, const wxCStrData&); -WXDLLIMPEXP_BASE wxSTD wostream& operator<<(wxSTD wostream&, const wxScopedWCharBuffer&); - -#endif // wxUSE_UNICODE && defined(HAVE_WOSTREAM) - -#endif // wxUSE_STD_IOSTREAM - -// --------------------------------------------------------------------------- -// wxCStrData implementation -// --------------------------------------------------------------------------- - -inline wxCStrData::wxCStrData(char *buf) - : m_str(new wxString(buf)), m_offset(0), m_owned(true) {} -inline wxCStrData::wxCStrData(wchar_t *buf) - : m_str(new wxString(buf)), m_offset(0), m_owned(true) {} - -inline wxCStrData::wxCStrData(const wxCStrData& data) - : m_str(data.m_owned ? new wxString(*data.m_str) : data.m_str), - m_offset(data.m_offset), - m_owned(data.m_owned) -{ -} - -inline wxCStrData::~wxCStrData() -{ - if ( m_owned ) - delete const_cast<wxString*>(m_str); // cast to silence warnings -} - -// AsChar() and AsWChar() implementations simply forward to wxString methods - -inline const wchar_t* wxCStrData::AsWChar() const -{ - const wchar_t * const p = -#if wxUSE_UNICODE_WCHAR - m_str->wc_str(); -#elif wxUSE_UNICODE_UTF8 - m_str->AsWChar(wxMBConvStrictUTF8()); -#else - m_str->AsWChar(wxConvLibc); -#endif - - // in Unicode build the string always has a valid Unicode representation - // and even if a conversion is needed (as in UTF8 case) it can't fail - // - // but in ANSI build the string contents might be not convertible to - // Unicode using the current locale encoding so we do need to check for - // errors -#if !wxUSE_UNICODE - if ( !p ) - { - // if conversion fails, return empty string and not NULL to avoid - // crashes in code written with either wxWidgets 2 wxString or - // std::string behaviour in mind: neither of them ever returns NULL - // from its c_str() and so we shouldn't neither - // - // notice that the same is done in AsChar() below and - // wxString::wc_str() and mb_str() for the same reasons - return L""; - } -#endif // !wxUSE_UNICODE - - return p + m_offset; -} - -inline const char* wxCStrData::AsChar() const -{ -#if wxUSE_UNICODE && !wxUSE_UTF8_LOCALE_ONLY - const char * const p = m_str->AsChar(wxConvLibc); - if ( !p ) - return ""; -#else // !wxUSE_UNICODE || wxUSE_UTF8_LOCALE_ONLY - const char * const p = m_str->mb_str(); -#endif // wxUSE_UNICODE && !wxUSE_UTF8_LOCALE_ONLY - - return p + m_offset; -} - -inline wxString wxCStrData::AsString() const -{ - if ( m_offset == 0 ) - return *m_str; - else - return m_str->Mid(m_offset); -} - -inline const wxStringCharType *wxCStrData::AsInternal() const -{ -#if wxUSE_UNICODE_UTF8 - return wxStringOperations::AddToIter(m_str->wx_str(), m_offset); -#else - return m_str->wx_str() + m_offset; -#endif -} - -inline wxUniChar wxCStrData::operator*() const -{ - if ( m_str->empty() ) - return wxUniChar(wxT('\0')); - else - return (*m_str)[m_offset]; -} - -inline wxUniChar wxCStrData::operator[](size_t n) const -{ - // NB: we intentionally use operator[] and not at() here because the former - // works for the terminating NUL while the latter does not - return (*m_str)[m_offset + n]; -} - -// ---------------------------------------------------------------------------- -// more wxCStrData operators -// ---------------------------------------------------------------------------- - -// we need to define those to allow "size_t pos = p - s.c_str()" where p is -// some pointer into the string -inline size_t operator-(const char *p, const wxCStrData& cs) -{ - return p - cs.AsChar(); -} - -inline size_t operator-(const wchar_t *p, const wxCStrData& cs) -{ - return p - cs.AsWChar(); -} - -// ---------------------------------------------------------------------------- -// implementation of wx[W]CharBuffer inline methods using wxCStrData -// ---------------------------------------------------------------------------- - -// FIXME-UTF8: move this to buffer.h -inline wxCharBuffer::wxCharBuffer(const wxCStrData& cstr) - : wxCharTypeBufferBase(cstr.AsCharBuf()) -{ -} - -inline wxWCharBuffer::wxWCharBuffer(const wxCStrData& cstr) - : wxCharTypeBufferBase(cstr.AsWCharBuf()) -{ -} - -#if wxUSE_UNICODE_UTF8 -// ---------------------------------------------------------------------------- -// implementation of wxStringIteratorNode inline methods -// ---------------------------------------------------------------------------- - -void wxStringIteratorNode::DoSet(const wxString *str, - wxStringImpl::const_iterator *citer, - wxStringImpl::iterator *iter) -{ - m_prev = NULL; - m_iter = iter; - m_citer = citer; - m_str = str; - if ( str ) - { - m_next = str->m_iterators.ptr; - const_cast<wxString*>(m_str)->m_iterators.ptr = this; - if ( m_next ) - m_next->m_prev = this; - } - else - { - m_next = NULL; - } -} - -void wxStringIteratorNode::clear() -{ - if ( m_next ) - m_next->m_prev = m_prev; - if ( m_prev ) - m_prev->m_next = m_next; - else if ( m_str ) // first in the list - const_cast<wxString*>(m_str)->m_iterators.ptr = m_next; - - m_next = m_prev = NULL; - m_citer = NULL; - m_iter = NULL; - m_str = NULL; -} -#endif // wxUSE_UNICODE_UTF8 - -#if WXWIN_COMPATIBILITY_2_8 - // lot of code out there doesn't explicitly include wx/crt.h, but uses - // CRT wrappers that are now declared in wx/wxcrt.h and wx/wxcrtvararg.h, - // so let's include this header now that wxString is defined and it's safe - // to do it: - #include "wx/crt.h" -#endif - -// ---------------------------------------------------------------------------- -// Checks on wxString characters -// ---------------------------------------------------------------------------- - -template<bool (T)(const wxUniChar& c)> - inline bool wxStringCheck(const wxString& val) - { - for ( wxString::const_iterator i = val.begin(); - i != val.end(); - ++i ) - if (T(*i) == 0) - return false; - return true; - } - -#endif // _WX_WXSTRING_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stringimpl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stringimpl.h deleted file mode 100644 index e46bb800..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stringimpl.h +++ /dev/null @@ -1,557 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/stringimpl.h -// Purpose: wxStringImpl class, implementation of wxString -// Author: Vadim Zeitlin -// Modified by: -// Created: 29/01/98 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -/* - This header implements std::string-like string class, wxStringImpl, that is - used by wxString to store the data. Alternatively, if wxUSE_STD_STRING=1, - wxStringImpl is just a typedef to std:: string class. -*/ - -#ifndef _WX_WXSTRINGIMPL_H__ -#define _WX_WXSTRINGIMPL_H__ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" // everybody should include this -#include "wx/chartype.h" // for wxChar -#include "wx/wxcrtbase.h" // for wxStrlen() etc. - -#include <stdlib.h> - -// --------------------------------------------------------------------------- -// macros -// --------------------------------------------------------------------------- - -// implementation only -#define wxASSERT_VALID_INDEX(i) \ - wxASSERT_MSG( (size_t)(i) <= length(), wxT("invalid index in wxString") ) - - -// ---------------------------------------------------------------------------- -// global data -// ---------------------------------------------------------------------------- - -// global pointer to empty string -extern WXDLLIMPEXP_DATA_BASE(const wxChar*) wxEmptyString; -#if wxUSE_UNICODE_UTF8 -// FIXME-UTF8: we should have only one wxEmptyString -extern WXDLLIMPEXP_DATA_BASE(const wxStringCharType*) wxEmptyStringImpl; -#endif - - -// ---------------------------------------------------------------------------- -// deal with various build options -// ---------------------------------------------------------------------------- - -// we use STL-based string internally if we use std::string at all now, there -// should be no reason to prefer our internal implement but if you really need -// it you can predefine wxUSE_STL_BASED_WXSTRING as 0 when building the library -#ifndef wxUSE_STL_BASED_WXSTRING - #define wxUSE_STL_BASED_WXSTRING wxUSE_STD_STRING -#endif - -// in both cases we need to define wxStdString -#if wxUSE_STL_BASED_WXSTRING || wxUSE_STD_STRING - -#include "wx/beforestd.h" -#include <string> -#include "wx/afterstd.h" - -#ifdef HAVE_STD_WSTRING - typedef std::wstring wxStdWideString; -#else - typedef std::basic_string<wchar_t> wxStdWideString; -#endif - -#if wxUSE_UNICODE_WCHAR - typedef wxStdWideString wxStdString; -#else - typedef std::string wxStdString; -#endif - -#endif // wxUSE_STL_BASED_WXSTRING || wxUSE_STD_STRING - - -#if wxUSE_STL_BASED_WXSTRING - - // we always want ctor from std::string when using std::string internally - #undef wxUSE_STD_STRING - #define wxUSE_STD_STRING 1 - - typedef wxStdString wxStringImpl; -#else // if !wxUSE_STL_BASED_WXSTRING - -// in non-STL mode, compare() is implemented in wxString and not wxStringImpl -#undef HAVE_STD_STRING_COMPARE - -// --------------------------------------------------------------------------- -// string data prepended with some housekeeping info (used by wxString class), -// is never used directly (but had to be put here to allow inlining) -// --------------------------------------------------------------------------- - -struct WXDLLIMPEXP_BASE wxStringData -{ - int nRefs; // reference count - size_t nDataLength, // actual string length - nAllocLength; // allocated memory size - - // mimics declaration 'wxStringCharType data[nAllocLength]' - wxStringCharType* data() const { return (wxStringCharType*)(this + 1); } - - // empty string has a special ref count so it's never deleted - bool IsEmpty() const { return (nRefs == -1); } - bool IsShared() const { return (nRefs > 1); } - - // lock/unlock - void Lock() { if ( !IsEmpty() ) nRefs++; } - - // VC++ will refuse to inline Unlock but profiling shows that it is wrong -#if defined(__VISUALC__) - __forceinline -#endif - // VC++ free must take place in same DLL as allocation when using non dll - // run-time library (e.g. Multithreaded instead of Multithreaded DLL) -#if defined(__VISUALC__) && defined(_MT) && !defined(_DLL) - void Unlock() { if ( !IsEmpty() && --nRefs == 0) Free(); } - // we must not inline deallocation since allocation is not inlined - void Free(); -#else - void Unlock() { if ( !IsEmpty() && --nRefs == 0) free(this); } -#endif - - // if we had taken control over string memory (GetWriteBuf), it's - // intentionally put in invalid state - void Validate(bool b) { nRefs = (b ? 1 : 0); } - bool IsValid() const { return (nRefs != 0); } -}; - -class WXDLLIMPEXP_BASE wxStringImpl -{ -public: - // an 'invalid' value for string index, moved to this place due to a CW bug - static const size_t npos; - -protected: - // points to data preceded by wxStringData structure with ref count info - wxStringCharType *m_pchData; - - // accessor to string data - wxStringData* GetStringData() const { return (wxStringData*)m_pchData - 1; } - - // string (re)initialization functions - // initializes the string to the empty value (must be called only from - // ctors, use Reinit() otherwise) -#if wxUSE_UNICODE_UTF8 - void Init() { m_pchData = (wxStringCharType *)wxEmptyStringImpl; } // FIXME-UTF8 -#else - void Init() { m_pchData = (wxStringCharType *)wxEmptyString; } -#endif - // initializes the string with (a part of) C-string - void InitWith(const wxStringCharType *psz, size_t nPos = 0, size_t nLen = npos); - // as Init, but also frees old data - void Reinit() { GetStringData()->Unlock(); Init(); } - - // memory allocation - // allocates memory for string of length nLen - bool AllocBuffer(size_t nLen); - // effectively copies data to string - bool AssignCopy(size_t, const wxStringCharType *); - - // append a (sub)string - bool ConcatSelf(size_t nLen, const wxStringCharType *src, size_t nMaxLen); - bool ConcatSelf(size_t nLen, const wxStringCharType *src) - { return ConcatSelf(nLen, src, nLen); } - - // functions called before writing to the string: they copy it if there - // are other references to our data (should be the only owner when writing) - bool CopyBeforeWrite(); - bool AllocBeforeWrite(size_t); - - // compatibility with wxString - bool Alloc(size_t nLen); - -public: - // standard types - typedef wxStringCharType value_type; - typedef wxStringCharType char_type; - typedef size_t size_type; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef value_type* pointer; - typedef const value_type* const_pointer; - - // macro to define the bulk of iterator and const_iterator classes - #define WX_DEFINE_STRINGIMPL_ITERATOR(iterator_name, ref_type, ptr_type) \ - public: \ - typedef wxStringCharType value_type; \ - typedef ref_type reference; \ - typedef ptr_type pointer; \ - typedef int difference_type; \ - \ - iterator_name() : m_ptr(NULL) { } \ - iterator_name(pointer ptr) : m_ptr(ptr) { } \ - \ - reference operator*() const { return *m_ptr; } \ - \ - iterator_name& operator++() { m_ptr++; return *this; } \ - iterator_name operator++(int) \ - { \ - const iterator_name tmp(*this); \ - m_ptr++; \ - return tmp; \ - } \ - \ - iterator_name& operator--() { m_ptr--; return *this; } \ - iterator_name operator--(int) \ - { \ - const iterator_name tmp(*this); \ - m_ptr--; \ - return tmp; \ - } \ - \ - iterator_name operator+(ptrdiff_t n) const \ - { return iterator_name(m_ptr + n); } \ - iterator_name operator-(ptrdiff_t n) const \ - { return iterator_name(m_ptr - n); } \ - iterator_name& operator+=(ptrdiff_t n) \ - { m_ptr += n; return *this; } \ - iterator_name& operator-=(ptrdiff_t n) \ - { m_ptr -= n; return *this; } \ - \ - difference_type operator-(const iterator_name& i) const \ - { return m_ptr - i.m_ptr; } \ - \ - bool operator==(const iterator_name& i) const \ - { return m_ptr == i.m_ptr; } \ - bool operator!=(const iterator_name& i) const \ - { return m_ptr != i.m_ptr; } \ - \ - bool operator<(const iterator_name& i) const \ - { return m_ptr < i.m_ptr; } \ - bool operator>(const iterator_name& i) const \ - { return m_ptr > i.m_ptr; } \ - bool operator<=(const iterator_name& i) const \ - { return m_ptr <= i.m_ptr; } \ - bool operator>=(const iterator_name& i) const \ - { return m_ptr >= i.m_ptr; } \ - \ - private: \ - /* for wxStringImpl use only */ \ - pointer GetPtr() const { return m_ptr; } \ - \ - friend class wxStringImpl; \ - \ - pointer m_ptr - - // we need to declare const_iterator in wxStringImpl scope, the friend - // declaration inside iterator class itself is not enough, or at least not - // for g++ 3.4 (g++ 4 is ok) - class WXDLLIMPEXP_FWD_BASE const_iterator; - - class WXDLLIMPEXP_BASE iterator - { - WX_DEFINE_STRINGIMPL_ITERATOR(iterator, - wxStringCharType&, - wxStringCharType*); - - friend class const_iterator; - }; - - class WXDLLIMPEXP_BASE const_iterator - { - public: - const_iterator(iterator i) : m_ptr(i.m_ptr) { } - - WX_DEFINE_STRINGIMPL_ITERATOR(const_iterator, - const wxStringCharType&, - const wxStringCharType*); - }; - - #undef WX_DEFINE_STRINGIMPL_ITERATOR - - - // constructors and destructor - // ctor for an empty string - wxStringImpl() { Init(); } - // copy ctor - wxStringImpl(const wxStringImpl& stringSrc) - { - wxASSERT_MSG( stringSrc.GetStringData()->IsValid(), - wxT("did you forget to call UngetWriteBuf()?") ); - - if ( stringSrc.empty() ) { - // nothing to do for an empty string - Init(); - } - else { - m_pchData = stringSrc.m_pchData; // share same data - GetStringData()->Lock(); // => one more copy - } - } - // string containing nRepeat copies of ch - wxStringImpl(size_type nRepeat, wxStringCharType ch); - // ctor takes first nLength characters from C string - // (default value of npos means take all the string) - wxStringImpl(const wxStringCharType *psz) - { InitWith(psz, 0, npos); } - wxStringImpl(const wxStringCharType *psz, size_t nLength) - { InitWith(psz, 0, nLength); } - // take nLen chars starting at nPos - wxStringImpl(const wxStringImpl& str, size_t nPos, size_t nLen) - { - wxASSERT_MSG( str.GetStringData()->IsValid(), - wxT("did you forget to call UngetWriteBuf()?") ); - Init(); - size_t strLen = str.length() - nPos; nLen = strLen < nLen ? strLen : nLen; - InitWith(str.c_str(), nPos, nLen); - } - // take everything between start and end - wxStringImpl(const_iterator start, const_iterator end); - - - // ctor from and conversion to std::string -#if wxUSE_STD_STRING - wxStringImpl(const wxStdString& impl) - { InitWith(impl.c_str(), 0, impl.length()); } - - operator wxStdString() const - { return wxStdString(c_str(), length()); } -#endif - -#if defined(__VISUALC__) - // disable warning about Unlock() below not being inlined (first, it - // seems to be inlined nevertheless and second, even if it isn't, there - // is nothing we can do about this - #pragma warning(push) - #pragma warning (disable:4714) -#endif - - // dtor is not virtual, this class must not be inherited from! - ~wxStringImpl() - { - GetStringData()->Unlock(); - } - -#if defined(__VISUALC__) - #pragma warning(pop) -#endif - - // overloaded assignment - // from another wxString - wxStringImpl& operator=(const wxStringImpl& stringSrc); - // from a character - wxStringImpl& operator=(wxStringCharType ch); - // from a C string - wxStringImpl& operator=(const wxStringCharType *psz); - - // return the length of the string - size_type length() const { return GetStringData()->nDataLength; } - // return the length of the string - size_type size() const { return length(); } - // return the maximum size of the string - size_type max_size() const { return npos; } - // resize the string, filling the space with c if c != 0 - void resize(size_t nSize, wxStringCharType ch = '\0'); - // delete the contents of the string - void clear() { erase(0, npos); } - // returns true if the string is empty - bool empty() const { return length() == 0; } - // inform string about planned change in size - void reserve(size_t sz) { Alloc(sz); } - size_type capacity() const { return GetStringData()->nAllocLength; } - - // lib.string.access - // return the character at position n - value_type operator[](size_type n) const { return m_pchData[n]; } - value_type at(size_type n) const - { wxASSERT_VALID_INDEX( n ); return m_pchData[n]; } - // returns the writable character at position n - reference operator[](size_type n) { CopyBeforeWrite(); return m_pchData[n]; } - reference at(size_type n) - { - wxASSERT_VALID_INDEX( n ); - CopyBeforeWrite(); - return m_pchData[n]; - } // FIXME-UTF8: not useful for us...? - - // lib.string.modifiers - // append elements str[pos], ..., str[pos+n] - wxStringImpl& append(const wxStringImpl& str, size_t pos, size_t n) - { - wxASSERT(pos <= str.length()); - ConcatSelf(n, str.c_str() + pos, str.length() - pos); - return *this; - } - // append a string - wxStringImpl& append(const wxStringImpl& str) - { ConcatSelf(str.length(), str.c_str()); return *this; } - // append first n (or all if n == npos) characters of sz - wxStringImpl& append(const wxStringCharType *sz) - { ConcatSelf(wxStrlen(sz), sz); return *this; } - wxStringImpl& append(const wxStringCharType *sz, size_t n) - { ConcatSelf(n, sz); return *this; } - // append n copies of ch - wxStringImpl& append(size_t n, wxStringCharType ch); - // append from first to last - wxStringImpl& append(const_iterator first, const_iterator last) - { ConcatSelf(last - first, first.GetPtr()); return *this; } - - // same as `this_string = str' - wxStringImpl& assign(const wxStringImpl& str) - { return *this = str; } - // same as ` = str[pos..pos + n] - wxStringImpl& assign(const wxStringImpl& str, size_t pos, size_t n) - { return replace(0, npos, str, pos, n); } - // same as `= first n (or all if n == npos) characters of sz' - wxStringImpl& assign(const wxStringCharType *sz) - { return replace(0, npos, sz, wxStrlen(sz)); } - wxStringImpl& assign(const wxStringCharType *sz, size_t n) - { return replace(0, npos, sz, n); } - // same as `= n copies of ch' - wxStringImpl& assign(size_t n, wxStringCharType ch) - { return replace(0, npos, n, ch); } - // assign from first to last - wxStringImpl& assign(const_iterator first, const_iterator last) - { return replace(begin(), end(), first, last); } - - // first valid index position - const_iterator begin() const { return m_pchData; } - iterator begin(); - // position one after the last valid one - const_iterator end() const { return m_pchData + length(); } - iterator end(); - - // insert another string - wxStringImpl& insert(size_t nPos, const wxStringImpl& str) - { - wxASSERT( str.GetStringData()->IsValid() ); - return insert(nPos, str.c_str(), str.length()); - } - // insert n chars of str starting at nStart (in str) - wxStringImpl& insert(size_t nPos, const wxStringImpl& str, size_t nStart, size_t n) - { - wxASSERT( str.GetStringData()->IsValid() ); - wxASSERT( nStart < str.length() ); - size_t strLen = str.length() - nStart; - n = strLen < n ? strLen : n; - return insert(nPos, str.c_str() + nStart, n); - } - // insert first n (or all if n == npos) characters of sz - wxStringImpl& insert(size_t nPos, const wxStringCharType *sz, size_t n = npos); - // insert n copies of ch - wxStringImpl& insert(size_t nPos, size_t n, wxStringCharType ch) - { return insert(nPos, wxStringImpl(n, ch)); } - iterator insert(iterator it, wxStringCharType ch) - { size_t idx = it - begin(); insert(idx, 1, ch); return begin() + idx; } - void insert(iterator it, const_iterator first, const_iterator last) - { insert(it - begin(), first.GetPtr(), last - first); } - void insert(iterator it, size_type n, wxStringCharType ch) - { insert(it - begin(), n, ch); } - - // delete characters from nStart to nStart + nLen - wxStringImpl& erase(size_type pos = 0, size_type n = npos); - iterator erase(iterator first, iterator last) - { - size_t idx = first - begin(); - erase(idx, last - first); - return begin() + idx; - } - iterator erase(iterator first); - - // explicit conversion to C string (use this with printf()!) - const wxStringCharType* c_str() const { return m_pchData; } - const wxStringCharType* data() const { return m_pchData; } - - // replaces the substring of length nLen starting at nStart - wxStringImpl& replace(size_t nStart, size_t nLen, const wxStringCharType* sz) - { return replace(nStart, nLen, sz, npos); } - // replaces the substring of length nLen starting at nStart - wxStringImpl& replace(size_t nStart, size_t nLen, const wxStringImpl& str) - { return replace(nStart, nLen, str.c_str(), str.length()); } - // replaces the substring with nCount copies of ch - wxStringImpl& replace(size_t nStart, size_t nLen, - size_t nCount, wxStringCharType ch) - { return replace(nStart, nLen, wxStringImpl(nCount, ch)); } - // replaces a substring with another substring - wxStringImpl& replace(size_t nStart, size_t nLen, - const wxStringImpl& str, size_t nStart2, size_t nLen2) - { return replace(nStart, nLen, str.substr(nStart2, nLen2)); } - // replaces the substring with first nCount chars of sz - wxStringImpl& replace(size_t nStart, size_t nLen, - const wxStringCharType* sz, size_t nCount); - - wxStringImpl& replace(iterator first, iterator last, const_pointer s) - { return replace(first - begin(), last - first, s); } - wxStringImpl& replace(iterator first, iterator last, const_pointer s, - size_type n) - { return replace(first - begin(), last - first, s, n); } - wxStringImpl& replace(iterator first, iterator last, const wxStringImpl& s) - { return replace(first - begin(), last - first, s); } - wxStringImpl& replace(iterator first, iterator last, size_type n, wxStringCharType c) - { return replace(first - begin(), last - first, n, c); } - wxStringImpl& replace(iterator first, iterator last, - const_iterator first1, const_iterator last1) - { return replace(first - begin(), last - first, first1.GetPtr(), last1 - first1); } - - // swap two strings - void swap(wxStringImpl& str); - - // All find() functions take the nStart argument which specifies the - // position to start the search on, the default value is 0. All functions - // return npos if there were no match. - - // find a substring - size_t find(const wxStringImpl& str, size_t nStart = 0) const; - - // find first n characters of sz - size_t find(const wxStringCharType* sz, size_t nStart = 0, size_t n = npos) const; - - // find the first occurrence of character ch after nStart - size_t find(wxStringCharType ch, size_t nStart = 0) const; - - // rfind() family is exactly like find() but works right to left - - // as find, but from the end - size_t rfind(const wxStringImpl& str, size_t nStart = npos) const; - - // as find, but from the end - size_t rfind(const wxStringCharType* sz, size_t nStart = npos, - size_t n = npos) const; - // as find, but from the end - size_t rfind(wxStringCharType ch, size_t nStart = npos) const; - - size_type copy(wxStringCharType* s, size_type n, size_type pos = 0); - - // substring extraction - wxStringImpl substr(size_t nStart = 0, size_t nLen = npos) const; - - // string += string - wxStringImpl& operator+=(const wxStringImpl& s) { return append(s); } - // string += C string - wxStringImpl& operator+=(const wxStringCharType *psz) { return append(psz); } - // string += char - wxStringImpl& operator+=(wxStringCharType ch) { return append(1, ch); } - - // helpers for wxStringBuffer and wxStringBufferLength - wxStringCharType *DoGetWriteBuf(size_t nLen); - void DoUngetWriteBuf(); - void DoUngetWriteBuf(size_t nLen); - - friend class WXDLLIMPEXP_FWD_BASE wxString; -}; - -#endif // !wxUSE_STL_BASED_WXSTRING - -// don't pollute the library user's name space -#undef wxASSERT_VALID_INDEX - -#endif // _WX_WXSTRINGIMPL_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stringops.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stringops.h deleted file mode 100644 index 21c61217..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/stringops.h +++ /dev/null @@ -1,172 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/stringops.h -// Purpose: implementation of wxString primitive operations -// Author: Vaclav Slavik -// Modified by: -// Created: 2007-04-16 -// Copyright: (c) 2007 REA Elektronik GmbH -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXSTRINGOPS_H__ -#define _WX_WXSTRINGOPS_H__ - -#include "wx/chartype.h" -#include "wx/stringimpl.h" -#include "wx/unichar.h" -#include "wx/buffer.h" - -// This header contains wxStringOperations "namespace" class that implements -// elementary operations on string data as static methods; wxString methods and -// iterators are implemented in terms of it. Two implementations are available, -// one for UTF-8 encoded char* string and one for "raw" wchar_t* strings (or -// char* in ANSI build). - -// FIXME-UTF8: only wchar after we remove ANSI build -#if wxUSE_UNICODE_WCHAR || !wxUSE_UNICODE -struct WXDLLIMPEXP_BASE wxStringOperationsWchar -{ - // moves the iterator to the next Unicode character - template <typename Iterator> - static void IncIter(Iterator& i) { ++i; } - - // moves the iterator to the previous Unicode character - template <typename Iterator> - static void DecIter(Iterator& i) { --i; } - - // moves the iterator by n Unicode characters - template <typename Iterator> - static Iterator AddToIter(const Iterator& i, ptrdiff_t n) - { return i + n; } - - // returns distance of the two iterators in Unicode characters - template <typename Iterator> - static ptrdiff_t DiffIters(const Iterator& i1, const Iterator& i2) - { return i1 - i2; } - - // encodes the character to a form used to represent it in internal - // representation (returns a string in UTF8 version) - static wxChar EncodeChar(const wxUniChar& ch) { return (wxChar)ch; } - - static wxUniChar DecodeChar(const wxStringImpl::const_iterator& i) - { return *i; } -}; -#endif // wxUSE_UNICODE_WCHAR || !wxUSE_UNICODE - - -#if wxUSE_UNICODE_UTF8 -struct WXDLLIMPEXP_BASE wxStringOperationsUtf8 -{ - // checks correctness of UTF-8 sequence - static bool IsValidUtf8String(const char *c, - size_t len = wxStringImpl::npos); - static bool IsValidUtf8LeadByte(unsigned char c) - { - return (c <= 0x7F) || (c >= 0xC2 && c <= 0xF4); - } - - // table of offsets to skip forward when iterating over UTF-8 sequence - static const unsigned char ms_utf8IterTable[256]; - - - template<typename Iterator> - static void IncIter(Iterator& i) - { - wxASSERT( IsValidUtf8LeadByte(*i) ); - i += ms_utf8IterTable[(unsigned char)*i]; - } - - template<typename Iterator> - static void DecIter(Iterator& i) - { - // Non-lead bytes are all in the 0x80..0xBF range (i.e. 10xxxxxx in - // binary), so we just have to go back until we hit a byte that is - // either < 0x80 (i.e. 0xxxxxxx in binary) or 0xC0..0xFF (11xxxxxx in - // binary; this includes some invalid values, but we can ignore it - // here, because we assume valid UTF-8 input for the purpose of - // efficient implementation). - --i; - while ( ((*i) & 0xC0) == 0x80 /* 2 highest bits are '10' */ ) - --i; - } - - template<typename Iterator> - static Iterator AddToIter(const Iterator& i, ptrdiff_t n) - { - Iterator out(i); - - if ( n > 0 ) - { - for ( ptrdiff_t j = 0; j < n; ++j ) - IncIter(out); - } - else if ( n < 0 ) - { - for ( ptrdiff_t j = 0; j > n; --j ) - DecIter(out); - } - - return out; - } - - template<typename Iterator> - static ptrdiff_t DiffIters(Iterator i1, Iterator i2) - { - ptrdiff_t dist = 0; - - if ( i1 < i2 ) - { - while ( i1 != i2 ) - { - IncIter(i1); - dist--; - } - } - else if ( i2 < i1 ) - { - while ( i2 != i1 ) - { - IncIter(i2); - dist++; - } - } - - return dist; - } - - // encodes the character as UTF-8: - typedef wxUniChar::Utf8CharBuffer Utf8CharBuffer; - static Utf8CharBuffer EncodeChar(const wxUniChar& ch) - { return ch.AsUTF8(); } - - // returns n copies of ch encoded in UTF-8 string - static wxCharBuffer EncodeNChars(size_t n, const wxUniChar& ch); - - // returns the length of UTF-8 encoding of the character with lead byte 'c' - static size_t GetUtf8CharLength(char c) - { - wxASSERT( IsValidUtf8LeadByte(c) ); - return ms_utf8IterTable[(unsigned char)c]; - } - - // decodes single UTF-8 character from UTF-8 string - static wxUniChar DecodeChar(wxStringImpl::const_iterator i) - { - if ( (unsigned char)*i < 0x80 ) - return (int)*i; - return DecodeNonAsciiChar(i); - } - -private: - static wxUniChar DecodeNonAsciiChar(wxStringImpl::const_iterator i); -}; -#endif // wxUSE_UNICODE_UTF8 - - -#if wxUSE_UNICODE_UTF8 -typedef wxStringOperationsUtf8 wxStringOperations; -#else -typedef wxStringOperationsWchar wxStringOperations; -#endif - -#endif // _WX_WXSTRINGOPS_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/strvararg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/strvararg.h deleted file mode 100644 index 468cbf8b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/strvararg.h +++ /dev/null @@ -1,1159 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/strvararg.h -// Purpose: macros for implementing type-safe vararg passing of strings -// Author: Vaclav Slavik -// Created: 2007-02-19 -// Copyright: (c) 2007 REA Elektronik GmbH -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STRVARARG_H_ -#define _WX_STRVARARG_H_ - -#include "wx/platform.h" - -#include "wx/cpp.h" -#include "wx/chartype.h" -#include "wx/strconv.h" -#include "wx/buffer.h" -#include "wx/unichar.h" - -#if defined(HAVE_TYPE_TRAITS) - #include <type_traits> -#elif defined(HAVE_TR1_TYPE_TRAITS) - #ifdef __VISUALC__ - #include <type_traits> - #else - #include <tr1/type_traits> - #endif -#endif - -class WXDLLIMPEXP_FWD_BASE wxCStrData; -class WXDLLIMPEXP_FWD_BASE wxString; - -// ---------------------------------------------------------------------------- -// WX_DEFINE_VARARG_FUNC* macros -// ---------------------------------------------------------------------------- - -// This macro is used to implement type-safe wrappers for variadic functions -// that accept strings as arguments. This makes it possible to pass char*, -// wchar_t* or even wxString (as opposed to having to use wxString::c_str()) -// to e.g. wxPrintf(). -// -// This is done by defining a set of N template function taking 1..N arguments -// (currently, N is set to 30 in this header). These functions are just thin -// wrappers around another variadic function ('impl' or 'implUtf8' arguments, -// see below) and the only thing the wrapper does is that it normalizes the -// arguments passed in so that they are of the type expected by variadic -// functions taking string arguments, i.e., char* or wchar_t*, depending on the -// build: -// * char* in the current locale's charset in ANSI build -// * char* with UTF-8 encoding if wxUSE_UNICODE_UTF8 and the app is running -// under an UTF-8 locale -// * wchar_t* if wxUSE_UNICODE_WCHAR or if wxUSE_UNICODE_UTF8 and the current -// locale is not UTF-8 -// -// Note that wxFormatString *must* be used for the format parameter of these -// functions, otherwise the implementation won't work correctly. Furthermore, -// it must be passed by value, not reference, because it's modified by the -// vararg templates internally. -// -// Parameters: -// [ there are examples in square brackets showing values of the parameters -// for the wxFprintf() wrapper for fprintf() function with the following -// prototype: -// int wxFprintf(FILE *stream, const wxString& format, ...); ] -// -// rettype Functions' return type [int] -// name Name of the function [fprintf] -// numfixed The number of leading "fixed" (i.e., not variadic) -// arguments of the function (e.g. "stream" and "format" -// arguments of fprintf()); their type is _not_ converted -// using wxArgNormalizer<T>, unlike the rest of -// the function's arguments [2] -// fixed List of types of the leading "fixed" arguments, in -// parenthesis [(FILE*,const wxString&)] -// impl Name of the variadic function that implements 'name' for -// the native strings representation (wchar_t* if -// wxUSE_UNICODE_WCHAR or wxUSE_UNICODE_UTF8 when running under -// non-UTF8 locale, char* in ANSI build) [wxCrt_Fprintf] -// implUtf8 Like 'impl', but for the UTF-8 char* version to be used -// if wxUSE_UNICODE_UTF8 and running under UTF-8 locale -// (ignored otherwise) [fprintf] -// -#define WX_DEFINE_VARARG_FUNC(rettype, name, numfixed, fixed, impl, implUtf8) \ - _WX_VARARG_DEFINE_FUNC_N0(rettype, name, impl, implUtf8, numfixed, fixed) \ - WX_DEFINE_VARARG_FUNC_SANS_N0(rettype, name, numfixed, fixed, impl, implUtf8) - -// ditto, but without the version with 0 template/vararg arguments -#define WX_DEFINE_VARARG_FUNC_SANS_N0(rettype, name, \ - numfixed, fixed, impl, implUtf8) \ - _WX_VARARG_ITER(_WX_VARARG_MAX_ARGS, \ - _WX_VARARG_DEFINE_FUNC, \ - rettype, name, impl, implUtf8, numfixed, fixed) - -// Like WX_DEFINE_VARARG_FUNC, but for variadic functions that don't return -// a value. -#define WX_DEFINE_VARARG_FUNC_VOID(name, numfixed, fixed, impl, implUtf8) \ - _WX_VARARG_DEFINE_FUNC_VOID_N0(name, impl, implUtf8, numfixed, fixed) \ - _WX_VARARG_ITER(_WX_VARARG_MAX_ARGS, \ - _WX_VARARG_DEFINE_FUNC_VOID, \ - void, name, impl, implUtf8, numfixed, fixed) - -// Like WX_DEFINE_VARARG_FUNC_VOID, but instead of wrapping an implementation -// function, does nothing in defined functions' bodies. -// -// Used to implement wxLogXXX functions if wxUSE_LOG=0. -#define WX_DEFINE_VARARG_FUNC_NOP(name, numfixed, fixed) \ - _WX_VARARG_DEFINE_FUNC_NOP_N0(name, numfixed, fixed) \ - _WX_VARARG_ITER(_WX_VARARG_MAX_ARGS, \ - _WX_VARARG_DEFINE_FUNC_NOP, \ - void, name, dummy, dummy, numfixed, fixed) - -// Like WX_DEFINE_VARARG_FUNC_CTOR, but for defining template constructors -#define WX_DEFINE_VARARG_FUNC_CTOR(name, numfixed, fixed, impl, implUtf8) \ - _WX_VARARG_DEFINE_FUNC_CTOR_N0(name, impl, implUtf8, numfixed, fixed) \ - _WX_VARARG_ITER(_WX_VARARG_MAX_ARGS, \ - _WX_VARARG_DEFINE_FUNC_CTOR, \ - void, name, impl, implUtf8, numfixed, fixed) - - -// ---------------------------------------------------------------------------- -// wxFormatString -// ---------------------------------------------------------------------------- - -// This class must be used for format string argument of the functions -// defined using WX_DEFINE_VARARG_FUNC_* macros. It converts the string to -// char* or wchar_t* for passing to implementation function efficiently (i.e. -// without keeping the converted string in memory for longer than necessary, -// like c_str()). It also converts format string to the correct form that -// accounts for string changes done by wxArgNormalizer<> -// -// Note that this class can _only_ be used for function arguments! -class WXDLLIMPEXP_BASE wxFormatString -{ -public: - wxFormatString(const char *str) - : m_char(wxScopedCharBuffer::CreateNonOwned(str)), m_str(NULL), m_cstr(NULL) {} - wxFormatString(const wchar_t *str) - : m_wchar(wxScopedWCharBuffer::CreateNonOwned(str)), m_str(NULL), m_cstr(NULL) {} - wxFormatString(const wxString& str) - : m_str(&str), m_cstr(NULL) {} - wxFormatString(const wxCStrData& str) - : m_str(NULL), m_cstr(&str) {} - wxFormatString(const wxScopedCharBuffer& str) - : m_char(str), m_str(NULL), m_cstr(NULL) {} - wxFormatString(const wxScopedWCharBuffer& str) - : m_wchar(str), m_str(NULL), m_cstr(NULL) {} - - // Possible argument types. These are or-combinable for wxASSERT_ARG_TYPE - // convenience. Some of the values are or-combined with another value, this - // expresses "supertypes" for use with wxASSERT_ARG_TYPE masks. For example, - // a char* string is also a pointer and an integer is also a char. - enum ArgumentType - { - Arg_Unused = 0, // not used at all; the value of 0 is chosen to - // conveniently pass wxASSERT_ARG_TYPE's check - - Arg_Char = 0x0001, // character as char %c - Arg_Pointer = 0x0002, // %p - Arg_String = 0x0004 | Arg_Pointer, // any form of string (%s and %p too) - - Arg_Int = 0x0008 | Arg_Char, // (ints can be used with %c) -#if SIZEOF_INT == SIZEOF_LONG - Arg_LongInt = Arg_Int, -#else - Arg_LongInt = 0x0010, -#endif -#if defined(SIZEOF_LONG_LONG) && SIZEOF_LONG_LONG == SIZEOF_LONG - Arg_LongLongInt = Arg_LongInt, -#elif defined(wxLongLong_t) - Arg_LongLongInt = 0x0020, -#endif - - Arg_Double = 0x0040, - Arg_LongDouble = 0x0080, - -#if defined(wxSIZE_T_IS_UINT) - Arg_Size_t = Arg_Int, -#elif defined(wxSIZE_T_IS_ULONG) - Arg_Size_t = Arg_LongInt, -#elif defined(SIZEOF_LONG_LONG) && SIZEOF_SIZE_T == SIZEOF_LONG_LONG - Arg_Size_t = Arg_LongLongInt, -#else - Arg_Size_t = 0x0100, -#endif - - Arg_IntPtr = 0x0200, // %n -- store # of chars written - Arg_ShortIntPtr = 0x0400, - Arg_LongIntPtr = 0x0800, - - Arg_Unknown = 0x8000 // unrecognized specifier (likely error) - }; - - // returns the type of format specifier for n-th variadic argument (this is - // not necessarily n-th format specifier if positional specifiers are used); - // called by wxArgNormalizer<> specializations to get information about - // n-th variadic argument desired representation - ArgumentType GetArgumentType(unsigned n) const; - - // returns the value passed to ctor, only converted to wxString, similarly - // to other InputAsXXX() methods - wxString InputAsString() const; - -#if !wxUSE_UNICODE_WCHAR - operator const char*() const - { return const_cast<wxFormatString*>(this)->AsChar(); } -private: - // InputAsChar() returns the value passed to ctor, only converted - // to char, while AsChar() takes the string returned by InputAsChar() - // and does format string conversion on it as well (and similarly for - // ..AsWChar() below) - const char* InputAsChar(); - const char* AsChar(); - wxScopedCharBuffer m_convertedChar; -#endif // !wxUSE_UNICODE_WCHAR - -#if wxUSE_UNICODE && !wxUSE_UTF8_LOCALE_ONLY -public: - operator const wchar_t*() const - { return const_cast<wxFormatString*>(this)->AsWChar(); } -private: - const wchar_t* InputAsWChar(); - const wchar_t* AsWChar(); - wxScopedWCharBuffer m_convertedWChar; -#endif // wxUSE_UNICODE && !wxUSE_UTF8_LOCALE_ONLY - -private: - wxScopedCharBuffer m_char; - wxScopedWCharBuffer m_wchar; - - // NB: we can use a pointer here, because wxFormatString is only used - // as function argument, so it has shorter life than the string - // passed to the ctor - const wxString * const m_str; - const wxCStrData * const m_cstr; - - wxDECLARE_NO_ASSIGN_CLASS(wxFormatString); -}; - -// these two helper classes are used to find wxFormatString argument among fixed -// arguments passed to a vararg template -struct wxFormatStringArgument -{ - wxFormatStringArgument(const wxFormatString *s = NULL) : m_str(s) {} - const wxFormatString *m_str; - - // overriding this operator allows us to reuse _WX_VARARG_JOIN macro - wxFormatStringArgument operator,(const wxFormatStringArgument& a) const - { - wxASSERT_MSG( m_str == NULL || a.m_str == NULL, - "can't have two format strings in vararg function" ); - return wxFormatStringArgument(m_str ? m_str : a.m_str); - } - - operator const wxFormatString*() const { return m_str; } -}; - -template<typename T> -struct wxFormatStringArgumentFinder -{ - static wxFormatStringArgument find(T) - { - // by default, arguments are not format strings, so return "not found" - return wxFormatStringArgument(); - } -}; - -template<> -struct wxFormatStringArgumentFinder<const wxFormatString&> -{ - static wxFormatStringArgument find(const wxFormatString& arg) - { return wxFormatStringArgument(&arg); } -}; - -template<> -struct wxFormatStringArgumentFinder<wxFormatString> - : public wxFormatStringArgumentFinder<const wxFormatString&> {}; - -// avoid passing big objects by value to wxFormatStringArgumentFinder::find() -// (and especially wx[W]CharBuffer with its auto_ptr<> style semantics!): -template<> -struct wxFormatStringArgumentFinder<wxString> - : public wxFormatStringArgumentFinder<const wxString&> {}; - -template<> -struct wxFormatStringArgumentFinder<wxScopedCharBuffer> - : public wxFormatStringArgumentFinder<const wxScopedCharBuffer&> {}; - -template<> -struct wxFormatStringArgumentFinder<wxScopedWCharBuffer> - : public wxFormatStringArgumentFinder<const wxScopedWCharBuffer&> {}; - -template<> -struct wxFormatStringArgumentFinder<wxCharBuffer> - : public wxFormatStringArgumentFinder<const wxCharBuffer&> {}; - -template<> -struct wxFormatStringArgumentFinder<wxWCharBuffer> - : public wxFormatStringArgumentFinder<const wxWCharBuffer&> {}; - - -// ---------------------------------------------------------------------------- -// wxArgNormalizer*<T> converters -// ---------------------------------------------------------------------------- - -#if wxDEBUG_LEVEL - // Check that the format specifier for index-th argument in 'fmt' has - // the correct type (one of wxFormatString::Arg_XXX or-combination in - // 'expected_mask'). - #define wxASSERT_ARG_TYPE(fmt, index, expected_mask) \ - wxSTATEMENT_MACRO_BEGIN \ - if ( !fmt ) \ - break; \ - const int argtype = fmt->GetArgumentType(index); \ - wxASSERT_MSG( (argtype & (expected_mask)) == argtype, \ - "format specifier doesn't match argument type" ); \ - wxSTATEMENT_MACRO_END -#else - // Just define it to suppress "unused parameter" warnings for the - // parameters which we don't use otherwise - #define wxASSERT_ARG_TYPE(fmt, index, expected_mask) \ - wxUnusedVar(fmt); \ - wxUnusedVar(index) -#endif // wxDEBUG_LEVEL/!wxDEBUG_LEVEL - - -#if defined(HAVE_TYPE_TRAITS) || defined(HAVE_TR1_TYPE_TRAITS) - -// Note: this type is misnamed, so that the error message is easier to -// understand (no error happens for enums, because the IsEnum=true case is -// specialized). -template<bool IsEnum> -struct wxFormatStringSpecifierNonPodType {}; - -template<> -struct wxFormatStringSpecifierNonPodType<true> -{ - enum { value = wxFormatString::Arg_Int }; -}; - -template<typename T> -struct wxFormatStringSpecifier -{ -#ifdef HAVE_TYPE_TRAITS - typedef std::is_enum<T> is_enum; -#elif defined HAVE_TR1_TYPE_TRAITS - typedef std::tr1::is_enum<T> is_enum; -#endif - enum { value = wxFormatStringSpecifierNonPodType<is_enum::value>::value }; -}; - -#else // !HAVE_(TR1_)TYPE_TRAITS - -template<typename T> -struct wxFormatStringSpecifier -{ - // We can't detect enums without is_enum, so the only thing we can - // do is to accept unknown types. However, the only acceptable unknown - // types still are enums, which are promoted to ints, so return Arg_Int - // here. This will at least catch passing of non-POD types through ... at - // runtime. - // - // Furthermore, if the compiler doesn't have partial template - // specialization, we didn't cover pointers either. -#ifdef HAVE_PARTIAL_SPECIALIZATION - enum { value = wxFormatString::Arg_Int }; -#else - enum { value = wxFormatString::Arg_Int | wxFormatString::Arg_Pointer }; -#endif -}; - -#endif // HAVE_TR1_TYPE_TRAITS/!HAVE_TR1_TYPE_TRAITS - - -#ifdef HAVE_PARTIAL_SPECIALIZATION -template<typename T> -struct wxFormatStringSpecifier<T*> -{ - enum { value = wxFormatString::Arg_Pointer }; -}; - -template<typename T> -struct wxFormatStringSpecifier<const T*> -{ - enum { value = wxFormatString::Arg_Pointer }; -}; -#endif // !HAVE_PARTIAL_SPECIALIZATION - - -#define wxFORMAT_STRING_SPECIFIER(T, arg) \ - template<> struct wxFormatStringSpecifier<T> \ - { \ - enum { value = arg }; \ - }; - -wxFORMAT_STRING_SPECIFIER(bool, wxFormatString::Arg_Int) -wxFORMAT_STRING_SPECIFIER(int, wxFormatString::Arg_Int) -wxFORMAT_STRING_SPECIFIER(unsigned int, wxFormatString::Arg_Int) -wxFORMAT_STRING_SPECIFIER(short int, wxFormatString::Arg_Int) -wxFORMAT_STRING_SPECIFIER(short unsigned int, wxFormatString::Arg_Int) -wxFORMAT_STRING_SPECIFIER(long int, wxFormatString::Arg_LongInt) -wxFORMAT_STRING_SPECIFIER(long unsigned int, wxFormatString::Arg_LongInt) -#ifdef wxLongLong_t -wxFORMAT_STRING_SPECIFIER(wxLongLong_t, wxFormatString::Arg_LongLongInt) -wxFORMAT_STRING_SPECIFIER(wxULongLong_t, wxFormatString::Arg_LongLongInt) -#endif -wxFORMAT_STRING_SPECIFIER(float, wxFormatString::Arg_Double) -wxFORMAT_STRING_SPECIFIER(double, wxFormatString::Arg_Double) -wxFORMAT_STRING_SPECIFIER(long double, wxFormatString::Arg_LongDouble) - -#if wxWCHAR_T_IS_REAL_TYPE -wxFORMAT_STRING_SPECIFIER(wchar_t, wxFormatString::Arg_Char | wxFormatString::Arg_Int) -#endif - -#if !wxUSE_UNICODE -wxFORMAT_STRING_SPECIFIER(char, wxFormatString::Arg_Char | wxFormatString::Arg_Int) -wxFORMAT_STRING_SPECIFIER(signed char, wxFormatString::Arg_Char | wxFormatString::Arg_Int) -wxFORMAT_STRING_SPECIFIER(unsigned char, wxFormatString::Arg_Char | wxFormatString::Arg_Int) -#endif - -wxFORMAT_STRING_SPECIFIER(char*, wxFormatString::Arg_String) -wxFORMAT_STRING_SPECIFIER(unsigned char*, wxFormatString::Arg_String) -wxFORMAT_STRING_SPECIFIER(signed char*, wxFormatString::Arg_String) -wxFORMAT_STRING_SPECIFIER(const char*, wxFormatString::Arg_String) -wxFORMAT_STRING_SPECIFIER(const unsigned char*, wxFormatString::Arg_String) -wxFORMAT_STRING_SPECIFIER(const signed char*, wxFormatString::Arg_String) -wxFORMAT_STRING_SPECIFIER(wchar_t*, wxFormatString::Arg_String) -wxFORMAT_STRING_SPECIFIER(const wchar_t*, wxFormatString::Arg_String) - -wxFORMAT_STRING_SPECIFIER(int*, wxFormatString::Arg_IntPtr | wxFormatString::Arg_Pointer) -wxFORMAT_STRING_SPECIFIER(short int*, wxFormatString::Arg_ShortIntPtr | wxFormatString::Arg_Pointer) -wxFORMAT_STRING_SPECIFIER(long int*, wxFormatString::Arg_LongIntPtr | wxFormatString::Arg_Pointer) - -#undef wxFORMAT_STRING_SPECIFIER - - -// Converts an argument passed to wxPrint etc. into standard form expected, -// by wxXXX functions, e.g. all strings (wxString, char*, wchar_t*) are -// converted into wchar_t* or char* depending on the build. -template<typename T> -struct wxArgNormalizer -{ - // Ctor. 'value' is the value passed as variadic argument, 'fmt' is pointer - // to printf-like format string or NULL if the variadic function doesn't - // use format string and 'index' is index of 'value' in variadic arguments - // list (starting at 1) - wxArgNormalizer(T value, - const wxFormatString *fmt, unsigned index) - : m_value(value) - { - wxASSERT_ARG_TYPE( fmt, index, wxFormatStringSpecifier<T>::value ); - } - - // Returns the value in a form that can be safely passed to real vararg - // functions. In case of strings, this is char* in ANSI build and wchar_t* - // in Unicode build. - T get() const { return m_value; } - - T m_value; -}; - -// normalizer for passing arguments to functions working with wchar_t* (and -// until ANSI build is removed, char* in ANSI build as well - FIXME-UTF8) -// string representation -#if !wxUSE_UTF8_LOCALE_ONLY -template<typename T> -struct wxArgNormalizerWchar : public wxArgNormalizer<T> -{ - wxArgNormalizerWchar(T value, - const wxFormatString *fmt, unsigned index) - : wxArgNormalizer<T>(value, fmt, index) {} -}; -#endif // !wxUSE_UTF8_LOCALE_ONLY - -// normalizer for passing arguments to functions working with UTF-8 encoded -// char* strings -#if wxUSE_UNICODE_UTF8 - template<typename T> - struct wxArgNormalizerUtf8 : public wxArgNormalizer<T> - { - wxArgNormalizerUtf8(T value, - const wxFormatString *fmt, unsigned index) - : wxArgNormalizer<T>(value, fmt, index) {} - }; - - #define wxArgNormalizerNative wxArgNormalizerUtf8 -#else // wxUSE_UNICODE_WCHAR - #define wxArgNormalizerNative wxArgNormalizerWchar -#endif // wxUSE_UNICODE_UTF8 // wxUSE_UNICODE_UTF8 - - - -// special cases for converting strings: - - -// base class for wxArgNormalizer<T> specializations that need to do conversion; -// CharType is either wxStringCharType or wchar_t in UTF-8 build when wrapping -// widechar CRT function -template<typename CharType> -struct wxArgNormalizerWithBuffer -{ - typedef wxScopedCharTypeBuffer<CharType> CharBuffer; - - wxArgNormalizerWithBuffer() {} - wxArgNormalizerWithBuffer(const CharBuffer& buf, - const wxFormatString *fmt, - unsigned index) - : m_value(buf) - { - wxASSERT_ARG_TYPE( fmt, index, wxFormatString::Arg_String ); - } - - const CharType *get() const { return m_value; } - - CharBuffer m_value; -}; - -// string objects: -template<> -struct WXDLLIMPEXP_BASE wxArgNormalizerNative<const wxString&> -{ - wxArgNormalizerNative(const wxString& s, - const wxFormatString *fmt, - unsigned index) - : m_value(s) - { - wxASSERT_ARG_TYPE( fmt, index, wxFormatString::Arg_String ); - } - - const wxStringCharType *get() const; - - const wxString& m_value; -}; - -// c_str() values: -template<> -struct WXDLLIMPEXP_BASE wxArgNormalizerNative<const wxCStrData&> -{ - wxArgNormalizerNative(const wxCStrData& value, - const wxFormatString *fmt, - unsigned index) - : m_value(value) - { - wxASSERT_ARG_TYPE( fmt, index, wxFormatString::Arg_String ); - } - - const wxStringCharType *get() const; - - const wxCStrData& m_value; -}; - -// wxString/wxCStrData conversion to wchar_t* value -#if wxUSE_UNICODE_UTF8 && !wxUSE_UTF8_LOCALE_ONLY -template<> -struct WXDLLIMPEXP_BASE wxArgNormalizerWchar<const wxString&> - : public wxArgNormalizerWithBuffer<wchar_t> -{ - wxArgNormalizerWchar(const wxString& s, - const wxFormatString *fmt, unsigned index); -}; - -template<> -struct WXDLLIMPEXP_BASE wxArgNormalizerWchar<const wxCStrData&> - : public wxArgNormalizerWithBuffer<wchar_t> -{ - wxArgNormalizerWchar(const wxCStrData& s, - const wxFormatString *fmt, unsigned index); -}; -#endif // wxUSE_UNICODE_UTF8 && !wxUSE_UTF8_LOCALE_ONLY - - -// C string pointers of the wrong type (wchar_t* for ANSI or UTF8 build, -// char* for wchar_t Unicode build or UTF8): -#if wxUSE_UNICODE_WCHAR - -template<> -struct wxArgNormalizerWchar<const char*> - : public wxArgNormalizerWithBuffer<wchar_t> -{ - wxArgNormalizerWchar(const char* s, - const wxFormatString *fmt, unsigned index) - : wxArgNormalizerWithBuffer<wchar_t>(wxConvLibc.cMB2WC(s), fmt, index) {} -}; - -#elif wxUSE_UNICODE_UTF8 - -template<> -struct wxArgNormalizerUtf8<const wchar_t*> - : public wxArgNormalizerWithBuffer<char> -{ - wxArgNormalizerUtf8(const wchar_t* s, - const wxFormatString *fmt, unsigned index) - : wxArgNormalizerWithBuffer<char>(wxConvUTF8.cWC2MB(s), fmt, index) {} -}; - -template<> -struct wxArgNormalizerUtf8<const char*> - : public wxArgNormalizerWithBuffer<char> -{ - wxArgNormalizerUtf8(const char* s, - const wxFormatString *fmt, - unsigned index) - { - wxASSERT_ARG_TYPE( fmt, index, wxFormatString::Arg_String ); - - if ( wxLocaleIsUtf8 ) - { - m_value = wxScopedCharBuffer::CreateNonOwned(s); - } - else - { - // convert to widechar string first: - wxScopedWCharBuffer buf(wxConvLibc.cMB2WC(s)); - - // then to UTF-8: - if ( buf ) - m_value = wxConvUTF8.cWC2MB(buf); - } - } -}; - -// UTF-8 build needs conversion to wchar_t* too: -#if !wxUSE_UTF8_LOCALE_ONLY -template<> -struct wxArgNormalizerWchar<const char*> - : public wxArgNormalizerWithBuffer<wchar_t> -{ - wxArgNormalizerWchar(const char* s, - const wxFormatString *fmt, unsigned index) - : wxArgNormalizerWithBuffer<wchar_t>(wxConvLibc.cMB2WC(s), fmt, index) {} -}; -#endif // !wxUSE_UTF8_LOCALE_ONLY - -#else // ANSI - FIXME-UTF8 - -template<> -struct wxArgNormalizerWchar<const wchar_t*> - : public wxArgNormalizerWithBuffer<char> -{ - wxArgNormalizerWchar(const wchar_t* s, - const wxFormatString *fmt, unsigned index) - : wxArgNormalizerWithBuffer<char>(wxConvLibc.cWC2MB(s), fmt, index) {} -}; - -#endif // wxUSE_UNICODE_WCHAR/wxUSE_UNICODE_UTF8/ANSI - - -// this macro is used to implement specialization that are exactly same as -// some other specialization, i.e. to "forward" the implementation (e.g. for -// T=wxString and T=const wxString&). Note that the ctor takes BaseT argument, -// not T! -#if wxUSE_UNICODE_UTF8 - #if wxUSE_UTF8_LOCALE_ONLY - #define WX_ARG_NORMALIZER_FORWARD(T, BaseT) \ - _WX_ARG_NORMALIZER_FORWARD_IMPL(wxArgNormalizerUtf8, T, BaseT) - #else // possibly non-UTF8 locales - #define WX_ARG_NORMALIZER_FORWARD(T, BaseT) \ - _WX_ARG_NORMALIZER_FORWARD_IMPL(wxArgNormalizerWchar, T, BaseT); \ - _WX_ARG_NORMALIZER_FORWARD_IMPL(wxArgNormalizerUtf8, T, BaseT) - #endif -#else // wxUSE_UNICODE_WCHAR - #define WX_ARG_NORMALIZER_FORWARD(T, BaseT) \ - _WX_ARG_NORMALIZER_FORWARD_IMPL(wxArgNormalizerWchar, T, BaseT) -#endif // wxUSE_UNICODE_UTF8/wxUSE_UNICODE_WCHAR - -#define _WX_ARG_NORMALIZER_FORWARD_IMPL(Normalizer, T, BaseT) \ - template<> \ - struct Normalizer<T> : public Normalizer<BaseT> \ - { \ - Normalizer(BaseT value, \ - const wxFormatString *fmt, unsigned index) \ - : Normalizer<BaseT>(value, fmt, index) {} \ - } - -// non-reference versions of specializations for string objects -WX_ARG_NORMALIZER_FORWARD(wxString, const wxString&); -WX_ARG_NORMALIZER_FORWARD(wxCStrData, const wxCStrData&); - -// versions for passing non-const pointers: -WX_ARG_NORMALIZER_FORWARD(char*, const char*); -WX_ARG_NORMALIZER_FORWARD(wchar_t*, const wchar_t*); - -// versions for passing wx[W]CharBuffer: -WX_ARG_NORMALIZER_FORWARD(wxScopedCharBuffer, const char*); -WX_ARG_NORMALIZER_FORWARD(const wxScopedCharBuffer&, const char*); -WX_ARG_NORMALIZER_FORWARD(wxScopedWCharBuffer, const wchar_t*); -WX_ARG_NORMALIZER_FORWARD(const wxScopedWCharBuffer&, const wchar_t*); -WX_ARG_NORMALIZER_FORWARD(wxCharBuffer, const char*); -WX_ARG_NORMALIZER_FORWARD(const wxCharBuffer&, const char*); -WX_ARG_NORMALIZER_FORWARD(wxWCharBuffer, const wchar_t*); -WX_ARG_NORMALIZER_FORWARD(const wxWCharBuffer&, const wchar_t*); - -// versions for std::[w]string: -#if wxUSE_STD_STRING - -#include "wx/stringimpl.h" - -#if !wxUSE_UTF8_LOCALE_ONLY -template<> -struct wxArgNormalizerWchar<const std::string&> - : public wxArgNormalizerWchar<const char*> -{ - wxArgNormalizerWchar(const std::string& s, - const wxFormatString *fmt, unsigned index) - : wxArgNormalizerWchar<const char*>(s.c_str(), fmt, index) {} -}; - -template<> -struct wxArgNormalizerWchar<const wxStdWideString&> - : public wxArgNormalizerWchar<const wchar_t*> -{ - wxArgNormalizerWchar(const wxStdWideString& s, - const wxFormatString *fmt, unsigned index) - : wxArgNormalizerWchar<const wchar_t*>(s.c_str(), fmt, index) {} -}; -#endif // !wxUSE_UTF8_LOCALE_ONLY - -#if wxUSE_UNICODE_UTF8 -template<> -struct wxArgNormalizerUtf8<const std::string&> - : public wxArgNormalizerUtf8<const char*> -{ - wxArgNormalizerUtf8(const std::string& s, - const wxFormatString *fmt, unsigned index) - : wxArgNormalizerUtf8<const char*>(s.c_str(), fmt, index) {} -}; - -template<> -struct wxArgNormalizerUtf8<const wxStdWideString&> - : public wxArgNormalizerUtf8<const wchar_t*> -{ - wxArgNormalizerUtf8(const wxStdWideString& s, - const wxFormatString *fmt, unsigned index) - : wxArgNormalizerUtf8<const wchar_t*>(s.c_str(), fmt, index) {} -}; -#endif // wxUSE_UNICODE_UTF8 - -WX_ARG_NORMALIZER_FORWARD(std::string, const std::string&); -WX_ARG_NORMALIZER_FORWARD(wxStdWideString, const wxStdWideString&); - -#endif // wxUSE_STD_STRING - - -// versions for wxUniChar, wxUniCharRef: -// (this is same for UTF-8 and Wchar builds, we just convert to wchar_t) -template<> -struct wxArgNormalizer<const wxUniChar&> : public wxArgNormalizer<wchar_t> -{ - wxArgNormalizer(const wxUniChar& s, - const wxFormatString *fmt, unsigned index) - : wxArgNormalizer<wchar_t>(wx_truncate_cast(wchar_t, s.GetValue()), fmt, index) {} -}; - -// for wchar_t, default handler does the right thing - -// char has to be treated differently in Unicode builds: a char argument may -// be used either for a character value (which should be converted into -// wxUniChar) or as an integer value (which should be left as-is). We take -// advantage of the fact that both char and wchar_t are converted into int -// in variadic arguments here. -#if wxUSE_UNICODE -template<typename T> -struct wxArgNormalizerNarrowChar -{ - wxArgNormalizerNarrowChar(T value, - const wxFormatString *fmt, unsigned index) - { - wxASSERT_ARG_TYPE( fmt, index, - wxFormatString::Arg_Char | wxFormatString::Arg_Int ); - - // FIXME-UTF8: which one is better default in absence of fmt string - // (i.e. when used like e.g. Foo("foo", "bar", 'c', NULL)? - if ( !fmt || fmt->GetArgumentType(index) == wxFormatString::Arg_Char ) - m_value = wx_truncate_cast(T, wxUniChar(value).GetValue()); - else - m_value = value; - } - - int get() const { return m_value; } - - T m_value; -}; - -template<> -struct wxArgNormalizer<char> : public wxArgNormalizerNarrowChar<char> -{ - wxArgNormalizer(char value, - const wxFormatString *fmt, unsigned index) - : wxArgNormalizerNarrowChar<char>(value, fmt, index) {} -}; - -template<> -struct wxArgNormalizer<unsigned char> - : public wxArgNormalizerNarrowChar<unsigned char> -{ - wxArgNormalizer(unsigned char value, - const wxFormatString *fmt, unsigned index) - : wxArgNormalizerNarrowChar<unsigned char>(value, fmt, index) {} -}; - -template<> -struct wxArgNormalizer<signed char> - : public wxArgNormalizerNarrowChar<signed char> -{ - wxArgNormalizer(signed char value, - const wxFormatString *fmt, unsigned index) - : wxArgNormalizerNarrowChar<signed char>(value, fmt, index) {} -}; - -#endif // wxUSE_UNICODE - -// convert references: -WX_ARG_NORMALIZER_FORWARD(wxUniChar, const wxUniChar&); -WX_ARG_NORMALIZER_FORWARD(const wxUniCharRef&, const wxUniChar&); -WX_ARG_NORMALIZER_FORWARD(wxUniCharRef, const wxUniChar&); -WX_ARG_NORMALIZER_FORWARD(const wchar_t&, wchar_t); - -WX_ARG_NORMALIZER_FORWARD(const char&, char); -WX_ARG_NORMALIZER_FORWARD(const unsigned char&, unsigned char); -WX_ARG_NORMALIZER_FORWARD(const signed char&, signed char); - - -#undef WX_ARG_NORMALIZER_FORWARD -#undef _WX_ARG_NORMALIZER_FORWARD_IMPL - -// NB: Don't #undef wxASSERT_ARG_TYPE here as it's also used in wx/longlong.h. - -// ---------------------------------------------------------------------------- -// WX_VA_ARG_STRING -// ---------------------------------------------------------------------------- - -// Replacement for va_arg() for use with strings in functions that accept -// strings normalized by wxArgNormalizer<T>: - -struct WXDLLIMPEXP_BASE wxArgNormalizedString -{ - wxArgNormalizedString(const void* ptr) : m_ptr(ptr) {} - - // returns true if non-NULL string was passed in - bool IsValid() const { return m_ptr != NULL; } - operator bool() const { return IsValid(); } - - // extracts the string, returns empty string if NULL was passed in - wxString GetString() const; - operator wxString() const; - -private: - const void *m_ptr; -}; - -#define WX_VA_ARG_STRING(ap) wxArgNormalizedString(va_arg(ap, const void*)) - -// ---------------------------------------------------------------------------- -// implementation of the WX_DEFINE_VARARG_* macros -// ---------------------------------------------------------------------------- - -// NB: The vararg emulation code is limited to 30 variadic and 4 fixed -// arguments at the moment. -// If you need more variadic arguments, you need to -// 1) increase the value of _WX_VARARG_MAX_ARGS -// 2) add _WX_VARARG_JOIN_* and _WX_VARARG_ITER_* up to the new -// _WX_VARARG_MAX_ARGS value to the lists below -// If you need more fixed arguments, you need to -// 1) increase the value of _WX_VARARG_MAX_FIXED_ARGS -// 2) add _WX_VARARG_FIXED_EXPAND_* and _WX_VARARG_FIXED_UNUSED_EXPAND_* -// macros below -#define _WX_VARARG_MAX_ARGS 30 -#define _WX_VARARG_MAX_FIXED_ARGS 4 - -#define _WX_VARARG_JOIN_1(m) m(1) -#define _WX_VARARG_JOIN_2(m) _WX_VARARG_JOIN_1(m), m(2) -#define _WX_VARARG_JOIN_3(m) _WX_VARARG_JOIN_2(m), m(3) -#define _WX_VARARG_JOIN_4(m) _WX_VARARG_JOIN_3(m), m(4) -#define _WX_VARARG_JOIN_5(m) _WX_VARARG_JOIN_4(m), m(5) -#define _WX_VARARG_JOIN_6(m) _WX_VARARG_JOIN_5(m), m(6) -#define _WX_VARARG_JOIN_7(m) _WX_VARARG_JOIN_6(m), m(7) -#define _WX_VARARG_JOIN_8(m) _WX_VARARG_JOIN_7(m), m(8) -#define _WX_VARARG_JOIN_9(m) _WX_VARARG_JOIN_8(m), m(9) -#define _WX_VARARG_JOIN_10(m) _WX_VARARG_JOIN_9(m), m(10) -#define _WX_VARARG_JOIN_11(m) _WX_VARARG_JOIN_10(m), m(11) -#define _WX_VARARG_JOIN_12(m) _WX_VARARG_JOIN_11(m), m(12) -#define _WX_VARARG_JOIN_13(m) _WX_VARARG_JOIN_12(m), m(13) -#define _WX_VARARG_JOIN_14(m) _WX_VARARG_JOIN_13(m), m(14) -#define _WX_VARARG_JOIN_15(m) _WX_VARARG_JOIN_14(m), m(15) -#define _WX_VARARG_JOIN_16(m) _WX_VARARG_JOIN_15(m), m(16) -#define _WX_VARARG_JOIN_17(m) _WX_VARARG_JOIN_16(m), m(17) -#define _WX_VARARG_JOIN_18(m) _WX_VARARG_JOIN_17(m), m(18) -#define _WX_VARARG_JOIN_19(m) _WX_VARARG_JOIN_18(m), m(19) -#define _WX_VARARG_JOIN_20(m) _WX_VARARG_JOIN_19(m), m(20) -#define _WX_VARARG_JOIN_21(m) _WX_VARARG_JOIN_20(m), m(21) -#define _WX_VARARG_JOIN_22(m) _WX_VARARG_JOIN_21(m), m(22) -#define _WX_VARARG_JOIN_23(m) _WX_VARARG_JOIN_22(m), m(23) -#define _WX_VARARG_JOIN_24(m) _WX_VARARG_JOIN_23(m), m(24) -#define _WX_VARARG_JOIN_25(m) _WX_VARARG_JOIN_24(m), m(25) -#define _WX_VARARG_JOIN_26(m) _WX_VARARG_JOIN_25(m), m(26) -#define _WX_VARARG_JOIN_27(m) _WX_VARARG_JOIN_26(m), m(27) -#define _WX_VARARG_JOIN_28(m) _WX_VARARG_JOIN_27(m), m(28) -#define _WX_VARARG_JOIN_29(m) _WX_VARARG_JOIN_28(m), m(29) -#define _WX_VARARG_JOIN_30(m) _WX_VARARG_JOIN_29(m), m(30) - -#define _WX_VARARG_ITER_1(m,a,b,c,d,e,f) m(1,a,b,c,d,e,f) -#define _WX_VARARG_ITER_2(m,a,b,c,d,e,f) _WX_VARARG_ITER_1(m,a,b,c,d,e,f) m(2,a,b,c,d,e,f) -#define _WX_VARARG_ITER_3(m,a,b,c,d,e,f) _WX_VARARG_ITER_2(m,a,b,c,d,e,f) m(3,a,b,c,d,e,f) -#define _WX_VARARG_ITER_4(m,a,b,c,d,e,f) _WX_VARARG_ITER_3(m,a,b,c,d,e,f) m(4,a,b,c,d,e,f) -#define _WX_VARARG_ITER_5(m,a,b,c,d,e,f) _WX_VARARG_ITER_4(m,a,b,c,d,e,f) m(5,a,b,c,d,e,f) -#define _WX_VARARG_ITER_6(m,a,b,c,d,e,f) _WX_VARARG_ITER_5(m,a,b,c,d,e,f) m(6,a,b,c,d,e,f) -#define _WX_VARARG_ITER_7(m,a,b,c,d,e,f) _WX_VARARG_ITER_6(m,a,b,c,d,e,f) m(7,a,b,c,d,e,f) -#define _WX_VARARG_ITER_8(m,a,b,c,d,e,f) _WX_VARARG_ITER_7(m,a,b,c,d,e,f) m(8,a,b,c,d,e,f) -#define _WX_VARARG_ITER_9(m,a,b,c,d,e,f) _WX_VARARG_ITER_8(m,a,b,c,d,e,f) m(9,a,b,c,d,e,f) -#define _WX_VARARG_ITER_10(m,a,b,c,d,e,f) _WX_VARARG_ITER_9(m,a,b,c,d,e,f) m(10,a,b,c,d,e,f) -#define _WX_VARARG_ITER_11(m,a,b,c,d,e,f) _WX_VARARG_ITER_10(m,a,b,c,d,e,f) m(11,a,b,c,d,e,f) -#define _WX_VARARG_ITER_12(m,a,b,c,d,e,f) _WX_VARARG_ITER_11(m,a,b,c,d,e,f) m(12,a,b,c,d,e,f) -#define _WX_VARARG_ITER_13(m,a,b,c,d,e,f) _WX_VARARG_ITER_12(m,a,b,c,d,e,f) m(13,a,b,c,d,e,f) -#define _WX_VARARG_ITER_14(m,a,b,c,d,e,f) _WX_VARARG_ITER_13(m,a,b,c,d,e,f) m(14,a,b,c,d,e,f) -#define _WX_VARARG_ITER_15(m,a,b,c,d,e,f) _WX_VARARG_ITER_14(m,a,b,c,d,e,f) m(15,a,b,c,d,e,f) -#define _WX_VARARG_ITER_16(m,a,b,c,d,e,f) _WX_VARARG_ITER_15(m,a,b,c,d,e,f) m(16,a,b,c,d,e,f) -#define _WX_VARARG_ITER_17(m,a,b,c,d,e,f) _WX_VARARG_ITER_16(m,a,b,c,d,e,f) m(17,a,b,c,d,e,f) -#define _WX_VARARG_ITER_18(m,a,b,c,d,e,f) _WX_VARARG_ITER_17(m,a,b,c,d,e,f) m(18,a,b,c,d,e,f) -#define _WX_VARARG_ITER_19(m,a,b,c,d,e,f) _WX_VARARG_ITER_18(m,a,b,c,d,e,f) m(19,a,b,c,d,e,f) -#define _WX_VARARG_ITER_20(m,a,b,c,d,e,f) _WX_VARARG_ITER_19(m,a,b,c,d,e,f) m(20,a,b,c,d,e,f) -#define _WX_VARARG_ITER_21(m,a,b,c,d,e,f) _WX_VARARG_ITER_20(m,a,b,c,d,e,f) m(21,a,b,c,d,e,f) -#define _WX_VARARG_ITER_22(m,a,b,c,d,e,f) _WX_VARARG_ITER_21(m,a,b,c,d,e,f) m(22,a,b,c,d,e,f) -#define _WX_VARARG_ITER_23(m,a,b,c,d,e,f) _WX_VARARG_ITER_22(m,a,b,c,d,e,f) m(23,a,b,c,d,e,f) -#define _WX_VARARG_ITER_24(m,a,b,c,d,e,f) _WX_VARARG_ITER_23(m,a,b,c,d,e,f) m(24,a,b,c,d,e,f) -#define _WX_VARARG_ITER_25(m,a,b,c,d,e,f) _WX_VARARG_ITER_24(m,a,b,c,d,e,f) m(25,a,b,c,d,e,f) -#define _WX_VARARG_ITER_26(m,a,b,c,d,e,f) _WX_VARARG_ITER_25(m,a,b,c,d,e,f) m(26,a,b,c,d,e,f) -#define _WX_VARARG_ITER_27(m,a,b,c,d,e,f) _WX_VARARG_ITER_26(m,a,b,c,d,e,f) m(27,a,b,c,d,e,f) -#define _WX_VARARG_ITER_28(m,a,b,c,d,e,f) _WX_VARARG_ITER_27(m,a,b,c,d,e,f) m(28,a,b,c,d,e,f) -#define _WX_VARARG_ITER_29(m,a,b,c,d,e,f) _WX_VARARG_ITER_28(m,a,b,c,d,e,f) m(29,a,b,c,d,e,f) -#define _WX_VARARG_ITER_30(m,a,b,c,d,e,f) _WX_VARARG_ITER_29(m,a,b,c,d,e,f) m(30,a,b,c,d,e,f) - - -#define _WX_VARARG_FIXED_EXPAND_1(t1) \ - t1 f1 -#define _WX_VARARG_FIXED_EXPAND_2(t1,t2) \ - t1 f1, t2 f2 -#define _WX_VARARG_FIXED_EXPAND_3(t1,t2,t3) \ - t1 f1, t2 f2, t3 f3 -#define _WX_VARARG_FIXED_EXPAND_4(t1,t2,t3,t4) \ - t1 f1, t2 f2, t3 f3, t4 f4 - -#define _WX_VARARG_FIXED_UNUSED_EXPAND_1(t1) \ - t1 WXUNUSED(f1) -#define _WX_VARARG_FIXED_UNUSED_EXPAND_2(t1,t2) \ - t1 WXUNUSED(f1), t2 WXUNUSED(f2) -#define _WX_VARARG_FIXED_UNUSED_EXPAND_3(t1,t2,t3) \ - t1 WXUNUSED(f1), t2 WXUNUSED(f2), t3 WXUNUSED(f3) -#define _WX_VARARG_FIXED_UNUSED_EXPAND_4(t1,t2,t3,t4) \ - t1 WXUNUSED(f1), t2 WXUNUSED(f2), t3 WXUNUSED(f3), t4 WXUNUSED(f4) - -#define _WX_VARARG_FIXED_TYPEDEFS_1(t1) \ - typedef t1 TF1 -#define _WX_VARARG_FIXED_TYPEDEFS_2(t1,t2) \ - _WX_VARARG_FIXED_TYPEDEFS_1(t1); typedef t2 TF2 -#define _WX_VARARG_FIXED_TYPEDEFS_3(t1,t2,t3) \ - _WX_VARARG_FIXED_TYPEDEFS_2(t1,t2); typedef t3 TF3 -#define _WX_VARARG_FIXED_TYPEDEFS_4(t1,t2,t3,t4) \ - _WX_VARARG_FIXED_TYPEDEFS_3(t1,t2,t3); typedef t4 TF4 - -// This macro expands N-items tuple of fixed arguments types into part of -// function's declaration. For example, -// "_WX_VARARG_FIXED_EXPAND(3, (int, char*, int))" expands into -// "int f1, char* f2, int f3". -#define _WX_VARARG_FIXED_EXPAND(N, args) \ - _WX_VARARG_FIXED_EXPAND_IMPL(N, args) -#define _WX_VARARG_FIXED_EXPAND_IMPL(N, args) \ - _WX_VARARG_FIXED_EXPAND_##N args - -// Ditto for unused arguments -#define _WX_VARARG_FIXED_UNUSED_EXPAND(N, args) \ - _WX_VARARG_FIXED_UNUSED_EXPAND_IMPL(N, args) -#define _WX_VARARG_FIXED_UNUSED_EXPAND_IMPL(N, args) \ - _WX_VARARG_FIXED_UNUSED_EXPAND_##N args - -// Declarates typedefs for fixed arguments types; i-th fixed argument types -// will have TFi typedef. -#define _WX_VARARG_FIXED_TYPEDEFS(N, args) \ - _WX_VARARG_FIXED_TYPEDEFS_IMPL(N, args) -#define _WX_VARARG_FIXED_TYPEDEFS_IMPL(N, args) \ - _WX_VARARG_FIXED_TYPEDEFS_##N args - - -// This macro calls another macro 'm' passed as second argument 'N' times, -// with its only argument set to 1..N, and concatenates the results using -// comma as separator. -// -// An example: -// #define foo(i) x##i -// // this expands to "x1,x2,x3,x4" -// _WX_VARARG_JOIN(4, foo) -// -// -// N must not be greater than _WX_VARARG_MAX_ARGS (=30). -#define _WX_VARARG_JOIN(N, m) _WX_VARARG_JOIN_IMPL(N, m) -#define _WX_VARARG_JOIN_IMPL(N, m) _WX_VARARG_JOIN_##N(m) - - -// This macro calls another macro 'm' passed as second argument 'N' times, with -// its first argument set to 1..N and the remaining arguments set to 'a', 'b', -// 'c', 'd', 'e' and 'f'. The results are separated with whitespace in the -// expansion. -// -// An example: -// // this macro expands to: -// // foo(1,a,b,c,d,e,f) -// // foo(2,a,b,c,d,e,f) -// // foo(3,a,b,c,d,e,f) -// _WX_VARARG_ITER(3, foo, a, b, c, d, e, f) -// -// N must not be greater than _WX_VARARG_MAX_ARGS (=30). -#define _WX_VARARG_ITER(N,m,a,b,c,d,e,f) \ - _WX_VARARG_ITER_IMPL(N,m,a,b,c,d,e,f) -#define _WX_VARARG_ITER_IMPL(N,m,a,b,c,d,e,f) \ - _WX_VARARG_ITER_##N(m,a,b,c,d,e,f) - -// Generates code snippet for i-th "variadic" argument in vararg function's -// prototype: -#define _WX_VARARG_ARG(i) T##i a##i - -// Like _WX_VARARG_ARG_UNUSED, but outputs argument's type with WXUNUSED: -#define _WX_VARARG_ARG_UNUSED(i) T##i WXUNUSED(a##i) - -// Generates code snippet for i-th type in vararg function's template<...>: -#define _WX_VARARG_TEMPL(i) typename T##i - -// Generates code snippet for passing i-th argument of vararg function -// wrapper to its implementation, normalizing it in the process: -#define _WX_VARARG_PASS_WCHAR(i) \ - wxArgNormalizerWchar<T##i>(a##i, fmt, i).get() -#define _WX_VARARG_PASS_UTF8(i) \ - wxArgNormalizerUtf8<T##i>(a##i, fmt, i).get() - - -// And the same for fixed arguments, _not_ normalizing it: -#define _WX_VARARG_PASS_FIXED(i) f##i - -#define _WX_VARARG_FIND_FMT(i) \ - (wxFormatStringArgumentFinder<TF##i>::find(f##i)) - -#define _WX_VARARG_FORMAT_STRING(numfixed, fixed) \ - _WX_VARARG_FIXED_TYPEDEFS(numfixed, fixed); \ - const wxFormatString *fmt = \ - (_WX_VARARG_JOIN(numfixed, _WX_VARARG_FIND_FMT)) - -#if wxUSE_UNICODE_UTF8 - #define _WX_VARARG_DO_CALL_UTF8(return_kw, impl, implUtf8, N, numfixed) \ - return_kw implUtf8(_WX_VARARG_JOIN(numfixed, _WX_VARARG_PASS_FIXED), \ - _WX_VARARG_JOIN(N, _WX_VARARG_PASS_UTF8)) - #define _WX_VARARG_DO_CALL0_UTF8(return_kw, impl, implUtf8, numfixed) \ - return_kw implUtf8(_WX_VARARG_JOIN(numfixed, _WX_VARARG_PASS_FIXED)) -#endif // wxUSE_UNICODE_UTF8 - -#define _WX_VARARG_DO_CALL_WCHAR(return_kw, impl, implUtf8, N, numfixed) \ - return_kw impl(_WX_VARARG_JOIN(numfixed, _WX_VARARG_PASS_FIXED), \ - _WX_VARARG_JOIN(N, _WX_VARARG_PASS_WCHAR)) -#define _WX_VARARG_DO_CALL0_WCHAR(return_kw, impl, implUtf8, numfixed) \ - return_kw impl(_WX_VARARG_JOIN(numfixed, _WX_VARARG_PASS_FIXED)) - -#if wxUSE_UNICODE_UTF8 - #if wxUSE_UTF8_LOCALE_ONLY - #define _WX_VARARG_DO_CALL _WX_VARARG_DO_CALL_UTF8 - #define _WX_VARARG_DO_CALL0 _WX_VARARG_DO_CALL0_UTF8 - #else // possibly non-UTF8 locales - #define _WX_VARARG_DO_CALL(return_kw, impl, implUtf8, N, numfixed) \ - if ( wxLocaleIsUtf8 ) \ - _WX_VARARG_DO_CALL_UTF8(return_kw, impl, implUtf8, N, numfixed);\ - else \ - _WX_VARARG_DO_CALL_WCHAR(return_kw, impl, implUtf8, N, numfixed) - - #define _WX_VARARG_DO_CALL0(return_kw, impl, implUtf8, numfixed) \ - if ( wxLocaleIsUtf8 ) \ - _WX_VARARG_DO_CALL0_UTF8(return_kw, impl, implUtf8, numfixed); \ - else \ - _WX_VARARG_DO_CALL0_WCHAR(return_kw, impl, implUtf8, numfixed) - #endif // wxUSE_UTF8_LOCALE_ONLY or not -#else // wxUSE_UNICODE_WCHAR or ANSI - #define _WX_VARARG_DO_CALL _WX_VARARG_DO_CALL_WCHAR - #define _WX_VARARG_DO_CALL0 _WX_VARARG_DO_CALL0_WCHAR -#endif // wxUSE_UNICODE_UTF8 / wxUSE_UNICODE_WCHAR - - -// Macro to be used with _WX_VARARG_ITER in the implementation of -// WX_DEFINE_VARARG_FUNC (see its documentation for the meaning of arguments) -#define _WX_VARARG_DEFINE_FUNC(N, rettype, name, \ - impl, implUtf8, numfixed, fixed) \ - template<_WX_VARARG_JOIN(N, _WX_VARARG_TEMPL)> \ - rettype name(_WX_VARARG_FIXED_EXPAND(numfixed, fixed), \ - _WX_VARARG_JOIN(N, _WX_VARARG_ARG)) \ - { \ - _WX_VARARG_FORMAT_STRING(numfixed, fixed); \ - _WX_VARARG_DO_CALL(return, impl, implUtf8, N, numfixed); \ - } - -#define _WX_VARARG_DEFINE_FUNC_N0(rettype, name, \ - impl, implUtf8, numfixed, fixed) \ - inline rettype name(_WX_VARARG_FIXED_EXPAND(numfixed, fixed)) \ - { \ - _WX_VARARG_DO_CALL0(return, impl, implUtf8, numfixed); \ - } - -// Macro to be used with _WX_VARARG_ITER in the implementation of -// WX_DEFINE_VARARG_FUNC_VOID (see its documentation for the meaning of -// arguments; rettype is ignored and is used only to satisfy _WX_VARARG_ITER's -// requirements). -#define _WX_VARARG_DEFINE_FUNC_VOID(N, rettype, name, \ - impl, implUtf8, numfixed, fixed) \ - template<_WX_VARARG_JOIN(N, _WX_VARARG_TEMPL)> \ - void name(_WX_VARARG_FIXED_EXPAND(numfixed, fixed), \ - _WX_VARARG_JOIN(N, _WX_VARARG_ARG)) \ - { \ - _WX_VARARG_FORMAT_STRING(numfixed, fixed); \ - _WX_VARARG_DO_CALL(wxEMPTY_PARAMETER_VALUE, \ - impl, implUtf8, N, numfixed); \ - } - -#define _WX_VARARG_DEFINE_FUNC_VOID_N0(name, impl, implUtf8, numfixed, fixed) \ - inline void name(_WX_VARARG_FIXED_EXPAND(numfixed, fixed)) \ - { \ - _WX_VARARG_DO_CALL0(wxEMPTY_PARAMETER_VALUE, \ - impl, implUtf8, numfixed); \ - } - -// Macro to be used with _WX_VARARG_ITER in the implementation of -// WX_DEFINE_VARARG_FUNC_CTOR (see its documentation for the meaning of -// arguments; rettype is ignored and is used only to satisfy _WX_VARARG_ITER's -// requirements). -#define _WX_VARARG_DEFINE_FUNC_CTOR(N, rettype, name, \ - impl, implUtf8, numfixed, fixed) \ - template<_WX_VARARG_JOIN(N, _WX_VARARG_TEMPL)> \ - name(_WX_VARARG_FIXED_EXPAND(numfixed, fixed), \ - _WX_VARARG_JOIN(N, _WX_VARARG_ARG)) \ - { \ - _WX_VARARG_FORMAT_STRING(numfixed, fixed); \ - _WX_VARARG_DO_CALL(wxEMPTY_PARAMETER_VALUE, \ - impl, implUtf8, N, numfixed); \ - } - -#define _WX_VARARG_DEFINE_FUNC_CTOR_N0(name, impl, implUtf8, numfixed, fixed) \ - inline name(_WX_VARARG_FIXED_EXPAND(numfixed, fixed)) \ - { \ - _WX_VARARG_DO_CALL0(wxEMPTY_PARAMETER_VALUE, \ - impl, implUtf8, numfixed); \ - } - -// Macro to be used with _WX_VARARG_ITER in the implementation of -// WX_DEFINE_VARARG_FUNC_NOP, i.e. empty stub for a disabled vararg function. -// The rettype and impl arguments are ignored. -#define _WX_VARARG_DEFINE_FUNC_NOP(N, rettype, name, \ - impl, implUtf8, numfixed, fixed) \ - template<_WX_VARARG_JOIN(N, _WX_VARARG_TEMPL)> \ - void name(_WX_VARARG_FIXED_UNUSED_EXPAND(numfixed, fixed), \ - _WX_VARARG_JOIN(N, _WX_VARARG_ARG_UNUSED)) \ - {} - -#define _WX_VARARG_DEFINE_FUNC_NOP_N0(name, numfixed, fixed) \ - inline void name(_WX_VARARG_FIXED_UNUSED_EXPAND(numfixed, fixed)) \ - {} - -#endif // _WX_STRVARARG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sysopt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sysopt.h deleted file mode 100644 index 63474c06..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/sysopt.h +++ /dev/null @@ -1,74 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/sysopt.h -// Purpose: wxSystemOptions -// Author: Julian Smart -// Modified by: -// Created: 2001-07-10 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SYSOPT_H_ -#define _WX_SYSOPT_H_ - -#include "wx/object.h" - -// ---------------------------------------------------------------------------- -// Enables an application to influence the wxWidgets implementation -// ---------------------------------------------------------------------------- - -class -#if wxUSE_SYSTEM_OPTIONS -WXDLLIMPEXP_BASE -#endif -wxSystemOptions : public wxObject -{ -public: - wxSystemOptions() { } - - // User-customizable hints to wxWidgets or associated libraries - // These could also be used to influence GetSystem... calls, indeed - // to implement SetSystemColour/Font/Metric - -#if wxUSE_SYSTEM_OPTIONS - static void SetOption(const wxString& name, const wxString& value); - static void SetOption(const wxString& name, int value); -#endif // wxUSE_SYSTEM_OPTIONS - static wxString GetOption(const wxString& name); - static int GetOptionInt(const wxString& name); - static bool HasOption(const wxString& name); - - static bool IsFalse(const wxString& name) - { - return HasOption(name) && GetOptionInt(name) == 0; - } -}; - -#if !wxUSE_SYSTEM_OPTIONS - -// define inline stubs for accessors to make it possible to use wxSystemOptions -// in the library itself without checking for wxUSE_SYSTEM_OPTIONS all the time - -/* static */ inline -wxString wxSystemOptions::GetOption(const wxString& WXUNUSED(name)) -{ - return wxEmptyString; -} - -/* static */ inline -int wxSystemOptions::GetOptionInt(const wxString& WXUNUSED(name)) -{ - return 0; -} - -/* static */ inline -bool wxSystemOptions::HasOption(const wxString& WXUNUSED(name)) -{ - return false; -} - -#endif // !wxUSE_SYSTEM_OPTIONS - -#endif - // _WX_SYSOPT_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/systhemectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/systhemectrl.h deleted file mode 100644 index 0b9a9ab6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/systhemectrl.h +++ /dev/null @@ -1,66 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/systhemectrl.h -// Purpose: Class to make controls appear in the systems theme -// Author: Tobias Taschner -// Created: 2014-08-14 -// Copyright: (c) 2014 wxWidgets development team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SYSTHEMECTRL_H -#define _WX_SYSTHEMECTRL_H - -#include "wx/defs.h" - -class WXDLLIMPEXP_FWD_CORE wxWindow; - -class WXDLLIMPEXP_CORE wxSystemThemedControlBase -{ -public: - wxSystemThemedControlBase() { } - - virtual ~wxSystemThemedControlBase() { } - -protected: - // This method is virtual and can be overridden, e.g. composite controls do - // it to enable the system theme for all of their parts. - virtual void DoEnableSystemTheme(bool enable, wxWindow* window); - - wxDECLARE_NO_COPY_CLASS(wxSystemThemedControlBase); -}; - -// This class used CRTP, i.e. it should be instantiated for the real base class -// and inherited from. -template <class C> -class wxSystemThemedControl : public C, - public wxSystemThemedControlBase -{ -public: - wxSystemThemedControl() { } - - void EnableSystemTheme(bool enable = true) - { - DoEnableSystemTheme(enable, this); - } - -protected: - wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxSystemThemedControl, C); -}; - -// Only __WXMSW__ has a non-trivial implementation currently. -#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) - #define wxHAS_SYSTEM_THEMED_CONTROL -#endif - -#ifndef wxHAS_SYSTEM_THEMED_CONTROL - -inline void -wxSystemThemedControlBase::DoEnableSystemTheme(bool WXUNUSED(enable), - wxWindow* WXUNUSED(window)) -{ - // Nothing to do. -} - -#endif // !wxHAS_SYSTEM_THEMED_CONTROL - -#endif // _WX_SYSTHEMECTRL_H diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tarstrm.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tarstrm.h deleted file mode 100644 index 37a1ab3a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tarstrm.h +++ /dev/null @@ -1,353 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/tarstrm.h -// Purpose: Streams for Tar files -// Author: Mike Wetherell -// Copyright: (c) 2004 Mike Wetherell -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXTARSTREAM_H__ -#define _WX_WXTARSTREAM_H__ - -#include "wx/defs.h" - -#if wxUSE_TARSTREAM - -#include "wx/archive.h" -#include "wx/hashmap.h" - - -///////////////////////////////////////////////////////////////////////////// -// Constants - -// TypeFlag values -enum wxTarType -{ - wxTAR_REGTYPE = '0', // regular file - wxTAR_LNKTYPE = '1', // hard link - wxTAR_SYMTYPE = '2', // symbolic link - wxTAR_CHRTYPE = '3', // character special - wxTAR_BLKTYPE = '4', // block special - wxTAR_DIRTYPE = '5', // directory - wxTAR_FIFOTYPE = '6', // named pipe - wxTAR_CONTTYPE = '7' // contiguous file -}; - -// Archive Formats (use wxTAR_PAX, it's backward compatible) -enum wxTarFormat -{ - wxTAR_USTAR, // POSIX.1-1990 tar format - wxTAR_PAX // POSIX.1-2001 tar format -}; - - -///////////////////////////////////////////////////////////////////////////// -// wxTarNotifier - -class WXDLLIMPEXP_BASE wxTarNotifier -{ -public: - virtual ~wxTarNotifier() { } - - virtual void OnEntryUpdated(class wxTarEntry& entry) = 0; -}; - - -///////////////////////////////////////////////////////////////////////////// -// Tar Entry - hold the meta data for a file in the tar - -class WXDLLIMPEXP_BASE wxTarEntry : public wxArchiveEntry -{ -public: - wxTarEntry(const wxString& name = wxEmptyString, - const wxDateTime& dt = wxDateTime::Now(), - wxFileOffset size = wxInvalidOffset); - virtual ~wxTarEntry(); - - wxTarEntry(const wxTarEntry& entry); - wxTarEntry& operator=(const wxTarEntry& entry); - - // Get accessors - wxString GetName(wxPathFormat format = wxPATH_NATIVE) const wxOVERRIDE; - wxString GetInternalName() const wxOVERRIDE { return m_Name; } - wxPathFormat GetInternalFormat() const wxOVERRIDE { return wxPATH_UNIX; } - int GetMode() const; - int GetUserId() const { return m_UserId; } - int GetGroupId() const { return m_GroupId; } - wxFileOffset GetSize() const wxOVERRIDE { return m_Size; } - wxFileOffset GetOffset() const wxOVERRIDE { return m_Offset; } - wxDateTime GetDateTime() const wxOVERRIDE { return m_ModifyTime; } - wxDateTime GetAccessTime() const { return m_AccessTime; } - wxDateTime GetCreateTime() const { return m_CreateTime; } - int GetTypeFlag() const { return m_TypeFlag; } - wxString GetLinkName() const { return m_LinkName; } - wxString GetUserName() const { return m_UserName; } - wxString GetGroupName() const { return m_GroupName; } - int GetDevMajor() const { return m_DevMajor; } - int GetDevMinor() const { return m_DevMinor; } - - // is accessors - bool IsDir() const wxOVERRIDE; - bool IsReadOnly() const wxOVERRIDE { return !(m_Mode & 0222); } - - // set accessors - void SetName(const wxString& name, wxPathFormat format = wxPATH_NATIVE) wxOVERRIDE; - void SetUserId(int id) { m_UserId = id; } - void SetGroupId(int id) { m_GroupId = id; } - void SetMode(int mode); - void SetSize(wxFileOffset size) wxOVERRIDE { m_Size = size; } - void SetDateTime(const wxDateTime& dt) wxOVERRIDE { m_ModifyTime = dt; } - void SetAccessTime(const wxDateTime& dt) { m_AccessTime = dt; } - void SetCreateTime(const wxDateTime& dt) { m_CreateTime = dt; } - void SetTypeFlag(int type) { m_TypeFlag = type; } - void SetLinkName(const wxString& link) { m_LinkName = link; } - void SetUserName(const wxString& user) { m_UserName = user; } - void SetGroupName(const wxString& group) { m_GroupName = group; } - void SetDevMajor(int dev) { m_DevMajor = dev; } - void SetDevMinor(int dev) { m_DevMinor = dev; } - - // set is accessors - void SetIsDir(bool isDir = true) wxOVERRIDE; - void SetIsReadOnly(bool isReadOnly = true) wxOVERRIDE; - - static wxString GetInternalName(const wxString& name, - wxPathFormat format = wxPATH_NATIVE, - bool *pIsDir = NULL); - - wxTarEntry *Clone() const { return new wxTarEntry(*this); } - - void SetNotifier(wxTarNotifier& WXUNUSED(notifier)) { } - -private: - void SetOffset(wxFileOffset offset) wxOVERRIDE { m_Offset = offset; } - - virtual wxArchiveEntry* DoClone() const wxOVERRIDE { return Clone(); } - - wxString m_Name; - int m_Mode; - bool m_IsModeSet; - int m_UserId; - int m_GroupId; - wxFileOffset m_Size; - wxFileOffset m_Offset; - wxDateTime m_ModifyTime; - wxDateTime m_AccessTime; - wxDateTime m_CreateTime; - int m_TypeFlag; - wxString m_LinkName; - wxString m_UserName; - wxString m_GroupName; - int m_DevMajor; - int m_DevMinor; - - friend class wxTarInputStream; - - wxDECLARE_DYNAMIC_CLASS(wxTarEntry); -}; - - -///////////////////////////////////////////////////////////////////////////// -// wxTarInputStream - -WX_DECLARE_STRING_HASH_MAP(wxString, wxTarHeaderRecords); - -class WXDLLIMPEXP_BASE wxTarInputStream : public wxArchiveInputStream -{ -public: - typedef wxTarEntry entry_type; - - wxTarInputStream(wxInputStream& stream, wxMBConv& conv = wxConvLocal); - wxTarInputStream(wxInputStream *stream, wxMBConv& conv = wxConvLocal); - virtual ~wxTarInputStream(); - - bool OpenEntry(wxTarEntry& entry); - bool CloseEntry() wxOVERRIDE; - - wxTarEntry *GetNextEntry(); - - wxFileOffset GetLength() const wxOVERRIDE { return m_size; } - bool IsSeekable() const wxOVERRIDE { return m_parent_i_stream->IsSeekable(); } - -protected: - size_t OnSysRead(void *buffer, size_t size) wxOVERRIDE; - wxFileOffset OnSysTell() const wxOVERRIDE { return m_pos; } - wxFileOffset OnSysSeek(wxFileOffset seek, wxSeekMode mode) wxOVERRIDE; - -private: - void Init(); - - wxArchiveEntry *DoGetNextEntry() wxOVERRIDE { return GetNextEntry(); } - bool OpenEntry(wxArchiveEntry& entry) wxOVERRIDE; - bool IsOpened() const { return m_pos != wxInvalidOffset; } - - wxStreamError ReadHeaders(); - bool ReadExtendedHeader(wxTarHeaderRecords*& recs); - - wxString GetExtendedHeader(const wxString& key) const; - wxString GetHeaderPath() const; - wxFileOffset GetHeaderNumber(int id) const; - wxString GetHeaderString(int id) const; - wxDateTime GetHeaderDate(const wxString& key) const; - - wxFileOffset m_pos; // position within the current entry - wxFileOffset m_offset; // offset to the start of the entry's data - wxFileOffset m_size; // size of the current entry's data - - int m_sumType; - int m_tarType; - class wxTarHeaderBlock *m_hdr; - wxTarHeaderRecords *m_HeaderRecs; - wxTarHeaderRecords *m_GlobalHeaderRecs; - - wxDECLARE_NO_COPY_CLASS(wxTarInputStream); -}; - - -///////////////////////////////////////////////////////////////////////////// -// wxTarOutputStream - -class WXDLLIMPEXP_BASE wxTarOutputStream : public wxArchiveOutputStream -{ -public: - wxTarOutputStream(wxOutputStream& stream, - wxTarFormat format = wxTAR_PAX, - wxMBConv& conv = wxConvLocal); - wxTarOutputStream(wxOutputStream *stream, - wxTarFormat format = wxTAR_PAX, - wxMBConv& conv = wxConvLocal); - virtual ~wxTarOutputStream(); - - bool PutNextEntry(wxTarEntry *entry); - - bool PutNextEntry(const wxString& name, - const wxDateTime& dt = wxDateTime::Now(), - wxFileOffset size = wxInvalidOffset) wxOVERRIDE; - - bool PutNextDirEntry(const wxString& name, - const wxDateTime& dt = wxDateTime::Now()) wxOVERRIDE; - - bool CopyEntry(wxTarEntry *entry, wxTarInputStream& inputStream); - bool CopyArchiveMetaData(wxTarInputStream& WXUNUSED(s)) { return true; } - - void Sync() wxOVERRIDE; - bool CloseEntry() wxOVERRIDE; - bool Close() wxOVERRIDE; - - bool IsSeekable() const wxOVERRIDE { return m_parent_o_stream->IsSeekable(); } - - void SetBlockingFactor(int factor) { m_BlockingFactor = factor; } - int GetBlockingFactor() const { return m_BlockingFactor; } - -protected: - size_t OnSysWrite(const void *buffer, size_t size) wxOVERRIDE; - wxFileOffset OnSysTell() const wxOVERRIDE { return m_pos; } - wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) wxOVERRIDE; - -private: - void Init(wxTarFormat format); - - bool PutNextEntry(wxArchiveEntry *entry) wxOVERRIDE; - bool CopyEntry(wxArchiveEntry *entry, wxArchiveInputStream& stream) wxOVERRIDE; - bool CopyArchiveMetaData(wxArchiveInputStream& WXUNUSED(s)) wxOVERRIDE { return true; } - bool IsOpened() const { return m_pos != wxInvalidOffset; } - - bool WriteHeaders(wxTarEntry& entry); - bool ModifyHeader(); - wxString PaxHeaderPath(const wxString& format, const wxString& path); - - void SetExtendedHeader(const wxString& key, const wxString& value); - void SetHeaderPath(const wxString& name); - bool SetHeaderNumber(int id, wxFileOffset n); - void SetHeaderString(int id, const wxString& str); - void SetHeaderDate(const wxString& key, const wxDateTime& datetime); - - wxFileOffset m_pos; // position within the current entry - wxFileOffset m_maxpos; // max pos written - wxFileOffset m_size; // expected entry size - - wxFileOffset m_headpos; // offset within the file to the entry's header - wxFileOffset m_datapos; // offset within the file to the entry's data - - wxFileOffset m_tarstart;// offset within the file to the tar - wxFileOffset m_tarsize; // size of tar so far - - bool m_pax; - int m_BlockingFactor; - wxUint32 m_chksum; - bool m_large; - class wxTarHeaderBlock *m_hdr; - class wxTarHeaderBlock *m_hdr2; - char *m_extendedHdr; - size_t m_extendedSize; - wxString m_badfit; - bool m_endrecWritten; - - wxDECLARE_NO_COPY_CLASS(wxTarOutputStream); -}; - - -///////////////////////////////////////////////////////////////////////////// -// Iterators - -#if wxUSE_STL || defined WX_TEST_ARCHIVE_ITERATOR -typedef wxArchiveIterator<wxTarInputStream> wxTarIter; -typedef wxArchiveIterator<wxTarInputStream, - std::pair<wxString, wxTarEntry*> > wxTarPairIter; -#endif - - -///////////////////////////////////////////////////////////////////////////// -// wxTarClassFactory - -class WXDLLIMPEXP_BASE wxTarClassFactory : public wxArchiveClassFactory -{ -public: - typedef wxTarEntry entry_type; - typedef wxTarInputStream instream_type; - typedef wxTarOutputStream outstream_type; - typedef wxTarNotifier notifier_type; -#if wxUSE_STL || defined WX_TEST_ARCHIVE_ITERATOR - typedef wxTarIter iter_type; - typedef wxTarPairIter pairiter_type; -#endif - - wxTarClassFactory(); - - wxTarEntry *NewEntry() const - { return new wxTarEntry; } - wxTarInputStream *NewStream(wxInputStream& stream) const - { return new wxTarInputStream(stream, GetConv()); } - wxTarOutputStream *NewStream(wxOutputStream& stream) const - { return new wxTarOutputStream(stream, wxTAR_PAX, GetConv()); } - wxTarInputStream *NewStream(wxInputStream *stream) const - { return new wxTarInputStream(stream, GetConv()); } - wxTarOutputStream *NewStream(wxOutputStream *stream) const - { return new wxTarOutputStream(stream, wxTAR_PAX, GetConv()); } - - wxString GetInternalName(const wxString& name, - wxPathFormat format = wxPATH_NATIVE) const wxOVERRIDE - { return wxTarEntry::GetInternalName(name, format); } - - const wxChar * const *GetProtocols(wxStreamProtocolType type - = wxSTREAM_PROTOCOL) const wxOVERRIDE; - -protected: - wxArchiveEntry *DoNewEntry() const wxOVERRIDE - { return NewEntry(); } - wxArchiveInputStream *DoNewStream(wxInputStream& stream) const wxOVERRIDE - { return NewStream(stream); } - wxArchiveOutputStream *DoNewStream(wxOutputStream& stream) const wxOVERRIDE - { return NewStream(stream); } - wxArchiveInputStream *DoNewStream(wxInputStream *stream) const wxOVERRIDE - { return NewStream(stream); } - wxArchiveOutputStream *DoNewStream(wxOutputStream *stream) const wxOVERRIDE - { return NewStream(stream); } - -private: - wxDECLARE_DYNAMIC_CLASS(wxTarClassFactory); -}; - - -#endif // wxUSE_TARSTREAM - -#endif // _WX_WXTARSTREAM_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/taskbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/taskbar.h deleted file mode 100644 index 84b1c1de..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/taskbar.h +++ /dev/null @@ -1,154 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/taskbar.h -// Purpose: wxTaskBarIcon base header and class -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TASKBAR_H_BASE_ -#define _WX_TASKBAR_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_TASKBARICON - -#include "wx/event.h" - -class WXDLLIMPEXP_FWD_ADV wxTaskBarIconEvent; - -// ---------------------------------------------------------------------------- - -// type of taskbar item to create. Only applicable in wxOSX_COCOA -enum wxTaskBarIconType -{ - wxTBI_DOCK, - wxTBI_CUSTOM_STATUSITEM, -#if defined(wxOSX_USE_COCOA) && wxOSX_USE_COCOA - wxTBI_DEFAULT_TYPE = wxTBI_CUSTOM_STATUSITEM -#else - wxTBI_DEFAULT_TYPE = wxTBI_DOCK -#endif -}; - - -// ---------------------------------------------------------------------------- -// wxTaskBarIconBase: define wxTaskBarIcon interface -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxTaskBarIconBase : public wxEvtHandler -{ -public: - wxTaskBarIconBase() { } - -#if defined(__WXGTK__) || defined(__WXX11__) || defined(__WXMOTIF__) || defined(__WXQT__) - static bool IsAvailable(); -#else - static bool IsAvailable() { return true; } -#endif - - // Operations: - virtual bool SetIcon(const wxIcon& icon, - const wxString& tooltip = wxEmptyString) = 0; - virtual bool RemoveIcon() = 0; - virtual bool PopupMenu(wxMenu *menu) = 0; - - // delayed destruction (similarly to wxWindow::Destroy()) - void Destroy(); - -protected: - // creates menu to be displayed when user clicks on the icon - virtual wxMenu *CreatePopupMenu() { return NULL; } - -private: - // default events handling, calls CreatePopupMenu: - void OnRightButtonDown(wxTaskBarIconEvent& event); - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxTaskBarIconBase); -}; - - -// ---------------------------------------------------------------------------- -// now include the actual class declaration -// ---------------------------------------------------------------------------- - -#if defined(__WXMSW__) - #include "wx/msw/taskbar.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/taskbar.h" -#elif defined(__WXGTK__) || defined(__WXX11__) || defined(__WXMOTIF__) - #include "wx/unix/taskbarx11.h" -#elif defined (__WXMAC__) - #include "wx/osx/taskbarosx.h" -#elif defined (__WXQT__) - #include "wx/qt/taskbar.h" -#endif - -// ---------------------------------------------------------------------------- -// wxTaskBarIcon events -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxTaskBarIconEvent : public wxEvent -{ -public: - wxTaskBarIconEvent(wxEventType evtType, wxTaskBarIcon *tbIcon) - : wxEvent(wxID_ANY, evtType) - { - SetEventObject(tbIcon); - } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxTaskBarIconEvent(*this); } - -private: - wxDECLARE_NO_ASSIGN_CLASS(wxTaskBarIconEvent); -}; - -typedef void (wxEvtHandler::*wxTaskBarIconEventFunction)(wxTaskBarIconEvent&); - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_TASKBAR_MOVE, wxTaskBarIconEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_TASKBAR_LEFT_DOWN, wxTaskBarIconEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_TASKBAR_LEFT_UP, wxTaskBarIconEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_TASKBAR_RIGHT_DOWN, wxTaskBarIconEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_TASKBAR_RIGHT_UP, wxTaskBarIconEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_TASKBAR_LEFT_DCLICK, wxTaskBarIconEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_TASKBAR_RIGHT_DCLICK, wxTaskBarIconEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_TASKBAR_BALLOON_TIMEOUT, wxTaskBarIconEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_TASKBAR_BALLOON_CLICK, wxTaskBarIconEvent ); - -#define wxTaskBarIconEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxTaskBarIconEventFunction, func) - -#define wx__DECLARE_TASKBAREVT(evt, fn) \ - wx__DECLARE_EVT0(wxEVT_TASKBAR_ ## evt, wxTaskBarIconEventHandler(fn)) - -#define EVT_TASKBAR_MOVE(fn) wx__DECLARE_TASKBAREVT(MOVE, fn) -#define EVT_TASKBAR_LEFT_DOWN(fn) wx__DECLARE_TASKBAREVT(LEFT_DOWN, fn) -#define EVT_TASKBAR_LEFT_UP(fn) wx__DECLARE_TASKBAREVT(LEFT_UP, fn) -#define EVT_TASKBAR_RIGHT_DOWN(fn) wx__DECLARE_TASKBAREVT(RIGHT_DOWN, fn) -#define EVT_TASKBAR_RIGHT_UP(fn) wx__DECLARE_TASKBAREVT(RIGHT_UP, fn) -#define EVT_TASKBAR_LEFT_DCLICK(fn) wx__DECLARE_TASKBAREVT(LEFT_DCLICK, fn) -#define EVT_TASKBAR_RIGHT_DCLICK(fn) wx__DECLARE_TASKBAREVT(RIGHT_DCLICK, fn) - -// taskbar menu is shown on right button press under all platforms except MSW -// where it's shown on right button release, using this event type and macro -// allows to write code which works correctly on all platforms -#ifdef __WXMSW__ - #define wxEVT_TASKBAR_CLICK wxEVT_TASKBAR_RIGHT_UP -#else - #define wxEVT_TASKBAR_CLICK wxEVT_TASKBAR_RIGHT_DOWN -#endif -#define EVT_TASKBAR_CLICK(fn) wx__DECLARE_TASKBAREVT(CLICK, fn) - -// these events are currently generated only under wxMSW and only after (MSW- -// specific) ShowBalloon() had been called, don't use them in portable code -#define EVT_TASKBAR_BALLOON_TIMEOUT(fn) \ - wx__DECLARE_TASKBAREVT(BALLOON_TIMEOUT, fn) -#define EVT_TASKBAR_BALLOON_CLICK(fn) \ - wx__DECLARE_TASKBAREVT(BALLOON_CLICK, fn) - -#endif // wxUSE_TASKBARICON - -#endif // _WX_TASKBAR_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/taskbarbutton.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/taskbarbutton.h deleted file mode 100644 index 68759d21..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/taskbarbutton.h +++ /dev/null @@ -1,253 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: include/taskbarbutton.h -// Purpose: Defines wxTaskBarButton class for manipulating buttons on the -// windows taskbar. -// Author: Chaobin Zhang <zhchbin@gmail.com> -// Created: 2014-04-30 -// Copyright: (c) 2014 wxWidgets development team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TASKBARBUTTON_H_ -#define _WX_TASKBARBUTTON_H_ - -#include "wx/defs.h" - -#if wxUSE_TASKBARBUTTON - -#include "wx/icon.h" -#include "wx/string.h" - -class WXDLLIMPEXP_FWD_CORE wxTaskBarButton; -class WXDLLIMPEXP_FWD_CORE wxTaskBarJumpListCategory; -class WXDLLIMPEXP_FWD_CORE wxTaskBarJumpList; -class WXDLLIMPEXP_FWD_CORE wxTaskBarJumpListImpl; - -// ---------------------------------------------------------------------------- -// wxTaskBarButton: define wxTaskBarButton interface. -// ---------------------------------------------------------------------------- - -/** - State of the task bar button. -*/ -enum wxTaskBarButtonState -{ - wxTASKBAR_BUTTON_NO_PROGRESS = 0, - wxTASKBAR_BUTTON_INDETERMINATE = 1, - wxTASKBAR_BUTTON_NORMAL = 2, - wxTASKBAR_BUTTON_ERROR = 4, - wxTASKBAR_BUTTON_PAUSED = 8 -}; - -class WXDLLIMPEXP_CORE wxThumbBarButton : public wxObject -{ -public: - wxThumbBarButton() : m_taskBarButtonParent(NULL) - { } - - wxThumbBarButton(int id, - const wxIcon& icon, - const wxString& tooltip = wxString(), - bool enable = true, - bool dismissOnClick = false, - bool hasBackground = true, - bool shown = true, - bool interactive = true); - - bool Create(int id, - const wxIcon& icon, - const wxString& tooltip = wxString(), - bool enable = true, - bool dismissOnClick = false, - bool hasBackground = true, - bool shown = true, - bool interactive = true); - int GetID() const { return m_id; } - const wxIcon& GetIcon() const { return m_icon; } - const wxString& GetTooltip() const { return m_tooltip; } - - bool IsEnable() const { return m_enable; } - void Enable(bool enable = true); - void Disable() { Enable(false); } - - bool IsDismissOnClick() const { return m_dismissOnClick; } - void EnableDismissOnClick(bool enable = true); - void DisableDimissOnClick() { EnableDismissOnClick(false); } - - bool HasBackground() const { return m_hasBackground; } - void SetHasBackground(bool has = true); - - bool IsShown() const { return m_shown; } - void Show(bool shown = true); - void Hide() { Show(false); } - - bool IsInteractive() const { return m_interactive; } - void SetInteractive(bool interactive = true); - - void SetParent(wxTaskBarButton *parent) { m_taskBarButtonParent = parent; } - wxTaskBarButton* GetParent() const { return m_taskBarButtonParent; } - -private: - bool UpdateParentTaskBarButton(); - - int m_id; - wxIcon m_icon; - wxString m_tooltip; - bool m_enable; - bool m_dismissOnClick; - bool m_hasBackground; - bool m_shown; - bool m_interactive; - wxTaskBarButton *m_taskBarButtonParent; - - wxDECLARE_DYNAMIC_CLASS(wxThumbBarButton); -}; - -class WXDLLIMPEXP_CORE wxTaskBarButton -{ -public: - // Factory function, may return NULL if task bar buttons are not supported - // by the current system. - static wxTaskBarButton* New(wxWindow* parent); - - virtual ~wxTaskBarButton() { } - - // Operations: - virtual void SetProgressRange(int range) = 0; - virtual void SetProgressValue(int value) = 0; - virtual void PulseProgress() = 0; - virtual void Show(bool show = true) = 0; - virtual void Hide() = 0; - virtual void SetThumbnailTooltip(const wxString& tooltip) = 0; - virtual void SetProgressState(wxTaskBarButtonState state) = 0; - virtual void SetOverlayIcon(const wxIcon& icon, - const wxString& description = wxString()) = 0; - virtual void SetThumbnailClip(const wxRect& rect) = 0; - virtual void SetThumbnailContents(const wxWindow *child) = 0; - virtual bool InsertThumbBarButton(size_t pos, wxThumbBarButton *button) = 0; - virtual bool AppendThumbBarButton(wxThumbBarButton *button) = 0; - virtual bool AppendSeparatorInThumbBar() = 0; - virtual wxThumbBarButton* RemoveThumbBarButton(wxThumbBarButton *button) = 0; - virtual wxThumbBarButton* RemoveThumbBarButton(int id) = 0; - virtual void Realize() = 0; - -protected: - wxTaskBarButton() { } - -private: - wxDECLARE_NO_COPY_CLASS(wxTaskBarButton); -}; - -enum wxTaskBarJumpListItemType -{ - wxTASKBAR_JUMP_LIST_SEPARATOR, - wxTASKBAR_JUMP_LIST_TASK, - wxTASKBAR_JUMP_LIST_DESTIONATION -}; - -class WXDLLIMPEXP_CORE wxTaskBarJumpListItem -{ -public: - wxTaskBarJumpListItem(wxTaskBarJumpListCategory *parentCategory = NULL, - wxTaskBarJumpListItemType type = wxTASKBAR_JUMP_LIST_SEPARATOR, - const wxString& title = wxEmptyString, - const wxString& filePath = wxEmptyString, - const wxString& arguments = wxEmptyString, - const wxString& tooltip = wxEmptyString, - const wxString& iconPath = wxEmptyString, - int iconIndex = 0); - - wxTaskBarJumpListItemType GetType() const; - void SetType(wxTaskBarJumpListItemType type); - const wxString& GetTitle() const; - void SetTitle(const wxString& title); - const wxString& GetFilePath() const; - void SetFilePath(const wxString& filePath); - const wxString& GetArguments() const; - void SetArguments(const wxString& arguments); - const wxString& GetTooltip() const; - void SetTooltip(const wxString& tooltip); - const wxString& GetIconPath() const; - void SetIconPath(const wxString& iconPath); - int GetIconIndex() const; - void SetIconIndex(int iconIndex); - wxTaskBarJumpListCategory* GetCategory() const; - void SetCategory(wxTaskBarJumpListCategory *category); - -private: - wxTaskBarJumpListCategory *m_parentCategory; - wxTaskBarJumpListItemType m_type; - wxString m_title; - wxString m_filePath; - wxString m_arguments; - wxString m_tooltip; - wxString m_iconPath; - int m_iconIndex; - - wxDECLARE_NO_COPY_CLASS(wxTaskBarJumpListItem); -}; - -typedef wxVector<wxTaskBarJumpListItem*> wxTaskBarJumpListItems; - -class WXDLLIMPEXP_CORE wxTaskBarJumpListCategory -{ -public: - wxTaskBarJumpListCategory(wxTaskBarJumpList *parent = NULL, - const wxString& title = wxEmptyString); - virtual ~wxTaskBarJumpListCategory(); - - wxTaskBarJumpListItem* Append(wxTaskBarJumpListItem *item); - void Delete(wxTaskBarJumpListItem *item); - wxTaskBarJumpListItem* Remove(wxTaskBarJumpListItem *item); - wxTaskBarJumpListItem* FindItemByPosition(size_t pos) const; - wxTaskBarJumpListItem* Insert(size_t pos, wxTaskBarJumpListItem *item); - wxTaskBarJumpListItem* Prepend(wxTaskBarJumpListItem *item); - void SetTitle(const wxString& title); - const wxString& GetTitle() const; - const wxTaskBarJumpListItems& GetItems() const; - -private: - friend class wxTaskBarJumpListItem; - - void Update(); - - wxTaskBarJumpList *m_parent; - wxTaskBarJumpListItems m_items; - wxString m_title; - - wxDECLARE_NO_COPY_CLASS(wxTaskBarJumpListCategory); -}; - -typedef wxVector<wxTaskBarJumpListCategory*> wxTaskBarJumpListCategories; - -class WXDLLIMPEXP_CORE wxTaskBarJumpList -{ -public: - wxTaskBarJumpList(const wxString& appID = wxEmptyString); - virtual ~wxTaskBarJumpList(); - void ShowRecentCategory(bool shown = true); - void HideRecentCategory(); - void ShowFrequentCategory(bool shown = true); - void HideFrequentCategory(); - - wxTaskBarJumpListCategory& GetTasks() const; - const wxTaskBarJumpListCategory& GetFrequentCategory() const; - const wxTaskBarJumpListCategory& GetRecentCategory() const; - const wxTaskBarJumpListCategories& GetCustomCategories() const; - - void AddCustomCategory(wxTaskBarJumpListCategory* category); - wxTaskBarJumpListCategory* RemoveCustomCategory(const wxString& title); - void DeleteCustomCategory(const wxString& title); - -private: - friend class wxTaskBarJumpListCategory; - - void Update(); - wxTaskBarJumpListImpl *m_jumpListImpl; - - wxDECLARE_NO_COPY_CLASS(wxTaskBarJumpList); -}; - -#endif // wxUSE_TASKBARBUTTON - -#endif // _WX_TASKBARBUTTON_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tbarbase.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tbarbase.h deleted file mode 100644 index 145803ec..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tbarbase.h +++ /dev/null @@ -1,715 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/tbarbase.h -// Purpose: Base class for toolbar classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TBARBASE_H_ -#define _WX_TBARBASE_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_TOOLBAR - -#include "wx/bitmap.h" -#include "wx/list.h" -#include "wx/control.h" - -class WXDLLIMPEXP_FWD_CORE wxToolBarBase; -class WXDLLIMPEXP_FWD_CORE wxToolBarToolBase; -class WXDLLIMPEXP_FWD_CORE wxImage; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -extern WXDLLIMPEXP_DATA_CORE(const char) wxToolBarNameStr[]; -extern WXDLLIMPEXP_DATA_CORE(const wxSize) wxDefaultSize; -extern WXDLLIMPEXP_DATA_CORE(const wxPoint) wxDefaultPosition; - -enum wxToolBarToolStyle -{ - wxTOOL_STYLE_BUTTON = 1, - wxTOOL_STYLE_SEPARATOR = 2, - wxTOOL_STYLE_CONTROL -}; - -// ---------------------------------------------------------------------------- -// wxToolBarTool is a toolbar element. -// -// It has a unique id (except for the separators which always have id wxID_ANY), the -// style (telling whether it is a normal button, separator or a control), the -// state (toggled or not, enabled or not) and short and long help strings. The -// default implementations use the short help string for the tooltip text which -// is popped up when the mouse pointer enters the tool and the long help string -// for the applications status bar. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxToolBarToolBase : public wxObject -{ -public: - // ctors & dtor - // ------------ - - // generic ctor for any kind of tool - wxToolBarToolBase(wxToolBarBase *tbar = NULL, - int toolid = wxID_SEPARATOR, - const wxString& label = wxEmptyString, - const wxBitmap& bmpNormal = wxNullBitmap, - const wxBitmap& bmpDisabled = wxNullBitmap, - wxItemKind kind = wxITEM_NORMAL, - wxObject *clientData = NULL, - const wxString& shortHelpString = wxEmptyString, - const wxString& longHelpString = wxEmptyString) - : m_label(label), - m_shortHelpString(shortHelpString), - m_longHelpString(longHelpString) - { - Init - ( - tbar, - toolid == wxID_SEPARATOR ? wxTOOL_STYLE_SEPARATOR - : wxTOOL_STYLE_BUTTON, - toolid == wxID_ANY ? wxWindow::NewControlId() - : toolid, - kind - ); - - m_clientData = clientData; - - m_bmpNormal = bmpNormal; - m_bmpDisabled = bmpDisabled; - } - - // ctor for controls only - wxToolBarToolBase(wxToolBarBase *tbar, - wxControl *control, - const wxString& label) - : m_label(label) - { - Init(tbar, wxTOOL_STYLE_CONTROL, control->GetId(), wxITEM_MAX); - - m_control = control; - } - - virtual ~wxToolBarToolBase(); - - // accessors - // --------- - - // general - int GetId() const { return m_id; } - - wxControl *GetControl() const - { - wxASSERT_MSG( IsControl(), wxT("this toolbar tool is not a control") ); - - return m_control; - } - - wxToolBarBase *GetToolBar() const { return m_tbar; } - - // style/kind - bool IsStretchable() const { return m_stretchable; } - bool IsButton() const { return m_toolStyle == wxTOOL_STYLE_BUTTON; } - bool IsControl() const { return m_toolStyle == wxTOOL_STYLE_CONTROL; } - bool IsSeparator() const { return m_toolStyle == wxTOOL_STYLE_SEPARATOR; } - bool IsStretchableSpace() const { return IsSeparator() && IsStretchable(); } - int GetStyle() const { return m_toolStyle; } - wxItemKind GetKind() const - { - wxASSERT_MSG( IsButton(), wxT("only makes sense for buttons") ); - - return m_kind; - } - - void MakeStretchable() - { - wxASSERT_MSG( IsSeparator(), "only separators can be stretchable" ); - - m_stretchable = true; - } - - // state - bool IsEnabled() const { return m_enabled; } - bool IsToggled() const { return m_toggled; } - bool CanBeToggled() const - { return m_kind == wxITEM_CHECK || m_kind == wxITEM_RADIO; } - - // attributes - const wxBitmap& GetNormalBitmap() const { return m_bmpNormal; } - const wxBitmap& GetDisabledBitmap() const { return m_bmpDisabled; } - - const wxBitmap& GetBitmap() const - { return IsEnabled() ? GetNormalBitmap() : GetDisabledBitmap(); } - - const wxString& GetLabel() const { return m_label; } - - const wxString& GetShortHelp() const { return m_shortHelpString; } - const wxString& GetLongHelp() const { return m_longHelpString; } - - wxObject *GetClientData() const - { - if ( m_toolStyle == wxTOOL_STYLE_CONTROL ) - { - return (wxObject*)m_control->GetClientData(); - } - else - { - return m_clientData; - } - } - - // modifiers: return true if the state really changed - virtual bool Enable(bool enable); - virtual bool Toggle(bool toggle); - virtual bool SetToggle(bool toggle); - virtual bool SetShortHelp(const wxString& help); - virtual bool SetLongHelp(const wxString& help); - - void Toggle() { Toggle(!IsToggled()); } - - void SetNormalBitmap(const wxBitmap& bmp) { m_bmpNormal = bmp; } - void SetDisabledBitmap(const wxBitmap& bmp) { m_bmpDisabled = bmp; } - - virtual void SetLabel(const wxString& label) { m_label = label; } - - void SetClientData(wxObject *clientData) - { - if ( m_toolStyle == wxTOOL_STYLE_CONTROL ) - { - m_control->SetClientData(clientData); - } - else - { - m_clientData = clientData; - } - } - - // add tool to/remove it from a toolbar - virtual void Detach() { m_tbar = NULL; } - virtual void Attach(wxToolBarBase *tbar) { m_tbar = tbar; } - -#if wxUSE_MENUS - // these methods are only for tools of wxITEM_DROPDOWN kind (but even such - // tools can have a NULL associated menu) - virtual void SetDropdownMenu(wxMenu *menu); - wxMenu *GetDropdownMenu() const { return m_dropdownMenu; } -#endif - -protected: - // common part of all ctors - void Init(wxToolBarBase *tbar, - wxToolBarToolStyle style, - int toolid, - wxItemKind kind) - { - m_tbar = tbar; - m_toolStyle = style; - m_id = toolid; - m_kind = kind; - - m_clientData = NULL; - - m_stretchable = false; - m_toggled = false; - m_enabled = true; - -#if wxUSE_MENUS - m_dropdownMenu = NULL; -#endif - - } - - wxToolBarBase *m_tbar; // the toolbar to which we belong (may be NULL) - - // tool parameters - wxToolBarToolStyle m_toolStyle; - wxWindowIDRef m_id; // the tool id, wxID_SEPARATOR for separator - wxItemKind m_kind; // for normal buttons may be wxITEM_NORMAL/CHECK/RADIO - - // as controls have their own client data, no need to waste memory - union - { - wxObject *m_clientData; - wxControl *m_control; - }; - - // true if this tool is stretchable: currently is only value for separators - bool m_stretchable; - - // tool state - bool m_toggled; - bool m_enabled; - - // normal and disabled bitmaps for the tool, both can be invalid - wxBitmap m_bmpNormal; - wxBitmap m_bmpDisabled; - - // the button label - wxString m_label; - - // short and long help strings - wxString m_shortHelpString; - wxString m_longHelpString; - -#if wxUSE_MENUS - wxMenu *m_dropdownMenu; -#endif - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxToolBarToolBase); -}; - -// a list of toolbar tools -WX_DECLARE_EXPORTED_LIST(wxToolBarToolBase, wxToolBarToolsList); - -// ---------------------------------------------------------------------------- -// the base class for all toolbars -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxToolBarBase : public wxControl -{ -public: - wxToolBarBase(); - virtual ~wxToolBarBase(); - - // toolbar construction - // -------------------- - - // the full AddTool() function - // - // If bmpDisabled is wxNullBitmap, a shadowed version of the normal bitmap - // is created and used as the disabled image. - wxToolBarToolBase *AddTool(int toolid, - const wxString& label, - const wxBitmap& bitmap, - const wxBitmap& bmpDisabled, - wxItemKind kind = wxITEM_NORMAL, - const wxString& shortHelp = wxEmptyString, - const wxString& longHelp = wxEmptyString, - wxObject *data = NULL) - { - return DoAddTool(toolid, label, bitmap, bmpDisabled, kind, - shortHelp, longHelp, data); - } - - // the most common AddTool() version - wxToolBarToolBase *AddTool(int toolid, - const wxString& label, - const wxBitmap& bitmap, - const wxString& shortHelp = wxEmptyString, - wxItemKind kind = wxITEM_NORMAL) - { - return AddTool(toolid, label, bitmap, wxNullBitmap, kind, shortHelp); - } - - // add a check tool, i.e. a tool which can be toggled - wxToolBarToolBase *AddCheckTool(int toolid, - const wxString& label, - const wxBitmap& bitmap, - const wxBitmap& bmpDisabled = wxNullBitmap, - const wxString& shortHelp = wxEmptyString, - const wxString& longHelp = wxEmptyString, - wxObject *data = NULL) - { - return AddTool(toolid, label, bitmap, bmpDisabled, wxITEM_CHECK, - shortHelp, longHelp, data); - } - - // add a radio tool, i.e. a tool which can be toggled and releases any - // other toggled radio tools in the same group when it happens - wxToolBarToolBase *AddRadioTool(int toolid, - const wxString& label, - const wxBitmap& bitmap, - const wxBitmap& bmpDisabled = wxNullBitmap, - const wxString& shortHelp = wxEmptyString, - const wxString& longHelp = wxEmptyString, - wxObject *data = NULL) - { - return AddTool(toolid, label, bitmap, bmpDisabled, wxITEM_RADIO, - shortHelp, longHelp, data); - } - - - // insert the new tool at the given position, if pos == GetToolsCount(), it - // is equivalent to AddTool() - virtual wxToolBarToolBase *InsertTool - ( - size_t pos, - int toolid, - const wxString& label, - const wxBitmap& bitmap, - const wxBitmap& bmpDisabled = wxNullBitmap, - wxItemKind kind = wxITEM_NORMAL, - const wxString& shortHelp = wxEmptyString, - const wxString& longHelp = wxEmptyString, - wxObject *clientData = NULL - ); - - virtual wxToolBarToolBase *AddTool (wxToolBarToolBase *tool); - virtual wxToolBarToolBase *InsertTool (size_t pos, wxToolBarToolBase *tool); - - // add an arbitrary control to the toolbar (notice that the control will be - // deleted by the toolbar and that it will also adjust its position/size) - // - // the label is optional and, if specified, will be shown near the control - // NB: the control should have toolbar as its parent - virtual wxToolBarToolBase * - AddControl(wxControl *control, const wxString& label = wxEmptyString); - - virtual wxToolBarToolBase * - InsertControl(size_t pos, wxControl *control, - const wxString& label = wxEmptyString); - - // get the control with the given id or return NULL - virtual wxControl *FindControl( int toolid ); - - // add a separator to the toolbar - virtual wxToolBarToolBase *AddSeparator(); - virtual wxToolBarToolBase *InsertSeparator(size_t pos); - - // add a stretchable space to the toolbar: this is similar to a separator - // except that it's always blank and that all the extra space the toolbar - // has is [equally] distributed among the stretchable spaces in it - virtual wxToolBarToolBase *AddStretchableSpace(); - virtual wxToolBarToolBase *InsertStretchableSpace(size_t pos); - - // remove the tool from the toolbar: the caller is responsible for actually - // deleting the pointer - virtual wxToolBarToolBase *RemoveTool(int toolid); - - // delete tool either by index or by position - virtual bool DeleteToolByPos(size_t pos); - virtual bool DeleteTool(int toolid); - - // delete all tools - virtual void ClearTools(); - - // must be called after all buttons have been created to finish toolbar - // initialisation - // - // derived class versions should call the base one first, before doing - // platform-specific stuff - virtual bool Realize(); - - // tools state - // ----------- - - virtual void EnableTool(int toolid, bool enable); - virtual void ToggleTool(int toolid, bool toggle); - - // Set this to be togglable (or not) - virtual void SetToggle(int toolid, bool toggle); - - // set/get tools client data (not for controls) - virtual wxObject *GetToolClientData(int toolid) const; - virtual void SetToolClientData(int toolid, wxObject *clientData); - - // returns tool pos, or wxNOT_FOUND if tool isn't found - virtual int GetToolPos(int id) const; - - // return true if the tool is toggled - virtual bool GetToolState(int toolid) const; - - virtual bool GetToolEnabled(int toolid) const; - - virtual void SetToolShortHelp(int toolid, const wxString& helpString); - virtual wxString GetToolShortHelp(int toolid) const; - virtual void SetToolLongHelp(int toolid, const wxString& helpString); - virtual wxString GetToolLongHelp(int toolid) const; - - virtual void SetToolNormalBitmap(int WXUNUSED(id), - const wxBitmap& WXUNUSED(bitmap)) {} - virtual void SetToolDisabledBitmap(int WXUNUSED(id), - const wxBitmap& WXUNUSED(bitmap)) {} - - - // margins/packing/separation - // -------------------------- - - virtual void SetMargins(int x, int y); - void SetMargins(const wxSize& size) - { SetMargins((int) size.x, (int) size.y); } - virtual void SetToolPacking(int packing) - { m_toolPacking = packing; } - virtual void SetToolSeparation(int separation) - { m_toolSeparation = separation; } - - virtual wxSize GetToolMargins() const { return wxSize(m_xMargin, m_yMargin); } - virtual int GetToolPacking() const { return m_toolPacking; } - virtual int GetToolSeparation() const { return m_toolSeparation; } - - // toolbar geometry - // ---------------- - - // set the number of toolbar rows - virtual void SetRows(int nRows); - - // the toolbar can wrap - limit the number of columns or rows it may take - void SetMaxRowsCols(int rows, int cols) - { m_maxRows = rows; m_maxCols = cols; } - int GetMaxRows() const { return m_maxRows; } - int GetMaxCols() const { return m_maxCols; } - - // get/set the size of the bitmaps used by the toolbar: should be called - // before adding any tools to the toolbar - virtual void SetToolBitmapSize(const wxSize& size) - { m_defaultWidth = size.x; m_defaultHeight = size.y; } - virtual wxSize GetToolBitmapSize() const - { return wxSize(m_defaultWidth, m_defaultHeight); } - - // the button size in some implementations is bigger than the bitmap size: - // get the total button size (by default the same as bitmap size) - virtual wxSize GetToolSize() const - { return GetToolBitmapSize(); } - - // returns a (non separator) tool containing the point (x, y) or NULL if - // there is no tool at this point (coordinates are client) - virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, - wxCoord y) const = 0; - - // find the tool by id - wxToolBarToolBase *FindById(int toolid) const; - - // return true if this is a vertical toolbar, otherwise false - bool IsVertical() const; - - // these methods allow to access tools by their index in the toolbar - size_t GetToolsCount() const { return m_tools.GetCount(); } - const wxToolBarToolBase *GetToolByPos(int pos) const { return m_tools[pos]; } - -#if WXWIN_COMPATIBILITY_2_8 - // the old versions of the various methods kept for compatibility - // don't use in the new code! - // -------------------------------------------------------------- - wxDEPRECATED_INLINE( - wxToolBarToolBase *AddTool(int toolid, - const wxBitmap& bitmap, - const wxBitmap& bmpDisabled, - bool toggle = false, - wxObject *clientData = NULL, - const wxString& shortHelpString = wxEmptyString, - const wxString& longHelpString = wxEmptyString) - , - return AddTool(toolid, wxEmptyString, - bitmap, bmpDisabled, - toggle ? wxITEM_CHECK : wxITEM_NORMAL, - shortHelpString, longHelpString, clientData); - ) - wxDEPRECATED_INLINE( - wxToolBarToolBase *AddTool(int toolid, - const wxBitmap& bitmap, - const wxString& shortHelpString = wxEmptyString, - const wxString& longHelpString = wxEmptyString) - , - return AddTool(toolid, wxEmptyString, - bitmap, wxNullBitmap, wxITEM_NORMAL, - shortHelpString, longHelpString, NULL); - ) - wxDEPRECATED_INLINE( - wxToolBarToolBase *AddTool(int toolid, - const wxBitmap& bitmap, - const wxBitmap& bmpDisabled, - bool toggle, - wxCoord xPos, - wxCoord yPos = wxDefaultCoord, - wxObject *clientData = NULL, - const wxString& shortHelp = wxEmptyString, - const wxString& longHelp = wxEmptyString) - , - return DoAddTool(toolid, wxEmptyString, bitmap, bmpDisabled, - toggle ? wxITEM_CHECK : wxITEM_NORMAL, - shortHelp, longHelp, clientData, xPos, yPos); - ) - wxDEPRECATED_INLINE( - wxToolBarToolBase *InsertTool(size_t pos, - int toolid, - const wxBitmap& bitmap, - const wxBitmap& bmpDisabled = wxNullBitmap, - bool toggle = false, - wxObject *clientData = NULL, - const wxString& shortHelp = wxEmptyString, - const wxString& longHelp = wxEmptyString) - , - return InsertTool(pos, toolid, wxEmptyString, bitmap, bmpDisabled, - toggle ? wxITEM_CHECK : wxITEM_NORMAL, - shortHelp, longHelp, clientData); - ) -#endif // WXWIN_COMPATIBILITY_2_8 - - // event handlers - // -------------- - - // NB: these functions are deprecated, use EVT_TOOL_XXX() instead! - - // Only allow toggle if returns true. Call when left button up. - virtual bool OnLeftClick(int toolid, bool toggleDown); - - // Call when right button down. - virtual void OnRightClick(int toolid, long x, long y); - - // Called when the mouse cursor enters a tool bitmap. - // Argument is wxID_ANY if mouse is exiting the toolbar. - virtual void OnMouseEnter(int toolid); - - // more deprecated functions - // ------------------------- - - // use GetToolMargins() instead - wxSize GetMargins() const { return GetToolMargins(); } - - // Tool factories, - // helper functions to create toolbar tools - // ------------------------- - virtual wxToolBarToolBase *CreateTool(int toolid, - const wxString& label, - const wxBitmap& bmpNormal, - const wxBitmap& bmpDisabled = wxNullBitmap, - wxItemKind kind = wxITEM_NORMAL, - wxObject *clientData = NULL, - const wxString& shortHelp = wxEmptyString, - const wxString& longHelp = wxEmptyString) = 0; - - virtual wxToolBarToolBase *CreateTool(wxControl *control, - const wxString& label) = 0; - - // this one is not virtual but just a simple helper/wrapper around - // CreateTool() for separators - wxToolBarToolBase *CreateSeparator() - { - return CreateTool(wxID_SEPARATOR, - wxEmptyString, - wxNullBitmap, wxNullBitmap, - wxITEM_SEPARATOR, NULL, - wxEmptyString, wxEmptyString); - } - - - // implementation only from now on - // ------------------------------- - - // Do the toolbar button updates (check for EVT_UPDATE_UI handlers) - virtual void UpdateWindowUI(long flags = wxUPDATE_UI_NONE) wxOVERRIDE ; - - // don't want toolbars to accept the focus - virtual bool AcceptsFocus() const wxOVERRIDE { return false; } - -#if wxUSE_MENUS - // Set dropdown menu - bool SetDropdownMenu(int toolid, wxMenu *menu); -#endif - -protected: - // choose the default border for this window - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_NONE; } - - // to implement in derived classes - // ------------------------------- - - // create a new toolbar tool and add it to the toolbar, this is typically - // implemented by just calling InsertTool() - virtual wxToolBarToolBase *DoAddTool - ( - int toolid, - const wxString& label, - const wxBitmap& bitmap, - const wxBitmap& bmpDisabled, - wxItemKind kind, - const wxString& shortHelp = wxEmptyString, - const wxString& longHelp = wxEmptyString, - wxObject *clientData = NULL, - wxCoord xPos = wxDefaultCoord, - wxCoord yPos = wxDefaultCoord - ); - - // the tool is not yet inserted into m_tools list when this function is - // called and will only be added to it if this function succeeds - virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool) = 0; - - // the tool is still in m_tools list when this function is called, it will - // only be deleted from it if it succeeds - virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool) = 0; - - // called when the tools enabled flag changes - virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable) = 0; - - // called when the tool is toggled - virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle) = 0; - - // called when the tools "can be toggled" flag changes - virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle) = 0; - - - // helper functions - // ---------------- - - // call this from derived class ctor/Create() to ensure that we have either - // wxTB_HORIZONTAL or wxTB_VERTICAL style, there is a lot of existing code - // which randomly checks either one or the other of them and gets confused - // if neither is set (and making one of them 0 is not an option neither as - // then the existing tests would break down) - void FixupStyle(); - - // un-toggle all buttons in the same radio group - void UnToggleRadioGroup(wxToolBarToolBase *tool); - - // make the size of the buttons big enough to fit the largest bitmap size - void AdjustToolBitmapSize(); - - // calls InsertTool() and deletes the tool if inserting it failed - wxToolBarToolBase *DoInsertNewTool(size_t pos, wxToolBarToolBase *tool) - { - if ( !InsertTool(pos, tool) ) - { - delete tool; - return NULL; - } - - return tool; - } - - // the list of all our tools - wxToolBarToolsList m_tools; - - // the offset of the first tool - int m_xMargin; - int m_yMargin; - - // the maximum number of toolbar rows/columns - int m_maxRows; - int m_maxCols; - - // the tool packing and separation - int m_toolPacking, - m_toolSeparation; - - // the size of the toolbar bitmaps - wxCoord m_defaultWidth, m_defaultHeight; - -private: - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxToolBarBase); -}; - -// deprecated function for creating the image for disabled buttons, use -// wxImage::ConvertToGreyscale() instead -#if WXWIN_COMPATIBILITY_2_8 - -wxDEPRECATED( bool wxCreateGreyedImage(const wxImage& in, wxImage& out) ); - -#endif // WXWIN_COMPATIBILITY_2_8 - - -#endif // wxUSE_TOOLBAR - -#endif - // _WX_TBARBASE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/testing.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/testing.h deleted file mode 100644 index bc8e6033..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/testing.h +++ /dev/null @@ -1,522 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/testing.h -// Purpose: helpers for GUI testing -// Author: Vaclav Slavik -// Created: 2012-08-28 -// Copyright: (c) 2012 Vaclav Slavik -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TESTING_H_ -#define _WX_TESTING_H_ - -#include "wx/debug.h" -#include "wx/string.h" -#include "wx/modalhook.h" - -class WXDLLIMPEXP_FWD_CORE wxMessageDialogBase; -class WXDLLIMPEXP_FWD_CORE wxFileDialogBase; - -// ---------------------------------------------------------------------------- -// testing API -// ---------------------------------------------------------------------------- - -// Don't include this code when building the library itself -#ifndef WXBUILDING - -#include "wx/beforestd.h" -#include <algorithm> -#include <iterator> -#include <queue> -#include "wx/afterstd.h" -#include "wx/cpp.h" -#include "wx/dialog.h" -#include "wx/msgdlg.h" -#include "wx/filedlg.h" - -#include <typeinfo> - -class wxTestingModalHook; - -// This helper is used to construct the best possible name for the dialog of -// the given type using wxRTTI for this type, if any, and the C++ RTTI for -// either the type T statically or the dynamic type of "dlg" if it's non-null. -template <class T> -wxString wxGetDialogClassDescription(const wxClassInfo *ci, T* dlg = NULL) -{ - // We prefer to use the name from wxRTTI as it's guaranteed to be readable, - // unlike the name returned by type_info::name() which may need to be - // demangled, but if wxRTTI macros were not used for this object, it's - // better to return a not-very-readable-but-informative mangled name rather - // than a readable but useless "wxDialog". - if ( ci == wxCLASSINFO(wxDialog) ) - { - return wxString::Format("dialog of type \"%s\"", - (dlg ? typeid(*dlg) : typeid(T)).name()); - } - - // We consider that an unmangled name is clear enough to be used on its own. - return ci->GetClassName(); -} - -// Non-template base class for wxExpectModal<T> (via wxExpectModalBase). -// Only used internally. -class wxModalExpectation -{ -public: - wxModalExpectation() : m_isOptional(false) {} - virtual ~wxModalExpectation() {} - - wxString GetDescription() const - { - return m_description.empty() ? GetDefaultDescription() : m_description; - } - - bool IsOptional() const { return m_isOptional; } - - virtual int Invoke(wxDialog *dlg) const = 0; - -protected: - // Override to return the default description of the expected dialog used - // if no specific description for this particular expectation is given. - virtual wxString GetDefaultDescription() const = 0; - - // User-provided description of the dialog, may be empty. - wxString m_description; - - // Is this dialog optional, i.e. not required to be shown? - bool m_isOptional; -}; - - -// This template is specialized for some of the standard dialog classes and can -// also be specialized outside of the library for the custom dialogs. -// -// All specializations must derive from wxExpectModalBase<T>. -template<class T> class wxExpectModal; - - -/** - Base class for the expectation of a dialog of the given type T. - - Test code can derive ad hoc classes from this class directly and implement - its OnInvoked() to perform the necessary actions or derive wxExpectModal<T> - and implement it once if the implementation of OnInvoked() is always the - same, i.e. depends just on the type T. - - T must be a class derived from wxDialog and E is the derived class type, - i.e. this is an example of using CRTP. The default value of E is fine in - case you're using this class as a base for your wxExpectModal<> - specialization anyhow but also if you don't use neither Optional() nor - Describe() methods, as the derived class type is only needed for them. - */ -template<class T, class E = wxExpectModal<T> > -class wxExpectModalBase : public wxModalExpectation -{ -public: - typedef T DialogType; - typedef E ExpectationType; - - - // A note about these "modifier" methods: they return copies of this object - // and not a reference to the object itself (after modifying it) because - // this object is likely to be temporary and will be destroyed soon, while - // the new temporary created by these objects is bound to a const reference - // inside WX_TEST_IMPL_ADD_EXPECTATION() macro ensuring that its lifetime - // is prolonged until we can check if the expectations were met. - // - // This is also the reason these methods must be in this class and use - // CRTP: a copy of this object can't be created in the base class, which is - // abstract, and the copy must have the same type as the derived object to - // avoid slicing. - // - // Make sure you understand this comment in its entirety before considering - // modifying this code. - - - /** - Returns a copy of the expectation where the expected dialog is marked - as optional. - - Optional dialogs aren't required to appear, it's not an error if they - don't. - */ - ExpectationType Optional() const - { - ExpectationType e(*static_cast<const ExpectationType*>(this)); - e.m_isOptional = true; - return e; - } - - /** - Sets a description shown in the error message if the expectation fails. - - Using this method with unique descriptions for the different dialogs is - recommended to make it easier to find out which one of the expected - dialogs exactly was not shown. - */ - ExpectationType Describe(const wxString& description) const - { - ExpectationType e(*static_cast<const ExpectationType*>(this)); - e.m_description = description; - return e; - } - -protected: - virtual int Invoke(wxDialog *dlg) const - { - DialogType *t = dynamic_cast<DialogType*>(dlg); - if ( t ) - return OnInvoked(t); - else - return wxID_NONE; // not handled - } - - /// Returns description of the expected dialog (by default, its class). - virtual wxString GetDefaultDescription() const - { - return wxGetDialogClassDescription<T>(wxCLASSINFO(T)); - } - - /** - This method is called when ShowModal() was invoked on a dialog of type T. - - @return Return value is used as ShowModal()'s return value. - */ - virtual int OnInvoked(DialogType *dlg) const = 0; -}; - - -// wxExpectModal<T> specializations for common dialogs: - -template<class T> -class wxExpectDismissableModal - : public wxExpectModalBase<T, wxExpectDismissableModal<T> > -{ -public: - explicit wxExpectDismissableModal(int id) - { - switch ( id ) - { - case wxYES: - m_id = wxID_YES; - break; - case wxNO: - m_id = wxID_NO; - break; - case wxCANCEL: - m_id = wxID_CANCEL; - break; - case wxOK: - m_id = wxID_OK; - break; - case wxHELP: - m_id = wxID_HELP; - break; - default: - m_id = id; - break; - } - } - -protected: - virtual int OnInvoked(T *WXUNUSED(dlg)) const - { - return m_id; - } - - int m_id; -}; - -template<> -class wxExpectModal<wxMessageDialog> - : public wxExpectDismissableModal<wxMessageDialog> -{ -public: - explicit wxExpectModal(int id) - : wxExpectDismissableModal<wxMessageDialog>(id) - { - } - -protected: - virtual wxString GetDefaultDescription() const - { - // It can be useful to show which buttons the expected message box was - // supposed to have, in case there could have been several of them. - wxString details; - switch ( m_id ) - { - case wxID_YES: - case wxID_NO: - details = "wxYES_NO style"; - break; - - case wxID_CANCEL: - details = "wxCANCEL style"; - break; - - case wxID_OK: - details = "wxOK style"; - break; - - default: - details.Printf("a button with ID=%d", m_id); - break; - } - - return "wxMessageDialog with " + details; - } -}; - -class wxExpectAny : public wxExpectDismissableModal<wxDialog> -{ -public: - explicit wxExpectAny(int id) - : wxExpectDismissableModal<wxDialog>(id) - { - } -}; - -#if wxUSE_FILEDLG - -template<> -class wxExpectModal<wxFileDialog> : public wxExpectModalBase<wxFileDialog> -{ -public: - wxExpectModal(const wxString& path, int id = wxID_OK) - : m_path(path), m_id(id) - { - } - -protected: - virtual int OnInvoked(wxFileDialog *dlg) const - { - dlg->SetPath(m_path); - return m_id; - } - - wxString m_path; - int m_id; -}; - -#endif - -// Implementation of wxModalDialogHook for use in testing, with -// wxExpectModal<T> and the wxTEST_DIALOG() macro. It is not intended for -// direct use, use the macro instead. -class wxTestingModalHook : public wxModalDialogHook -{ -public: - // This object is created with the location of the macro containing it by - // wxTEST_DIALOG macro, otherwise it falls back to the location of this - // line itself, which is not very useful, so normally you should provide - // your own values. - wxTestingModalHook(const char* file = NULL, - int line = 0, - const char* func = NULL) - : m_file(file), m_line(line), m_func(func) - { - Register(); - } - - // Called to verify that all expectations were met. This cannot be done in - // the destructor, because ReportFailure() may throw (either because it's - // overriden or because wx's assertions handling is, globally). And - // throwing from the destructor would introduce all sort of problems, - // including messing up the order of errors in some cases. - void CheckUnmetExpectations() - { - while ( !m_expectations.empty() ) - { - const wxModalExpectation *expect = m_expectations.front(); - m_expectations.pop(); - if ( expect->IsOptional() ) - continue; - - ReportFailure - ( - wxString::Format - ( - "Expected %s was not shown.", - expect->GetDescription() - ) - ); - break; - } - } - - void AddExpectation(const wxModalExpectation& e) - { - m_expectations.push(&e); - } - -protected: - virtual int Enter(wxDialog *dlg) - { - while ( !m_expectations.empty() ) - { - const wxModalExpectation *expect = m_expectations.front(); - m_expectations.pop(); - - int ret = expect->Invoke(dlg); - if ( ret != wxID_NONE ) - return ret; // dialog shown as expected - - // not showing an optional dialog is OK, but showing an unexpected - // one definitely isn't: - if ( !expect->IsOptional() ) - { - ReportFailure - ( - wxString::Format - ( - "%s was shown unexpectedly, expected %s.", - DescribeUnexpectedDialog(dlg), - expect->GetDescription() - ) - ); - return wxID_NONE; - } - // else: try the next expectation in the chain - } - - ReportFailure - ( - wxString::Format - ( - "%s was shown unexpectedly.", - DescribeUnexpectedDialog(dlg) - ) - ); - return wxID_NONE; - } - -protected: - // This method may be overridden to provide a better description of - // (unexpected) dialogs, e.g. add knowledge of custom dialogs used by the - // program here. - virtual wxString DescribeUnexpectedDialog(wxDialog* dlg) const - { - // Message boxes are handled specially here just because they are so - // ubiquitous. - if ( wxMessageDialog *msgdlg = dynamic_cast<wxMessageDialog*>(dlg) ) - { - return wxString::Format - ( - "A message box \"%s\"", - msgdlg->GetMessage() - ); - } - - return wxString::Format - ( - "A %s with title \"%s\"", - wxGetDialogClassDescription(dlg->GetClassInfo(), dlg), - dlg->GetTitle() - ); - } - - // This method may be overridden to change the way test failures are - // handled. By default they result in an assertion failure which, of - // course, can itself be customized. - virtual void ReportFailure(const wxString& msg) - { - wxFAIL_MSG_AT( msg, - m_file ? m_file : __FILE__, - m_line ? m_line : __LINE__, - m_func ? m_func : __WXFUNCTION__ ); - } - -private: - const char* const m_file; - const int m_line; - const char* const m_func; - - std::queue<const wxModalExpectation*> m_expectations; - - wxDECLARE_NO_COPY_CLASS(wxTestingModalHook); -}; - - -// Redefining this value makes it possible to customize the hook class, -// including e.g. its error reporting. -#ifndef wxTEST_DIALOG_HOOK_CLASS - #define wxTEST_DIALOG_HOOK_CLASS wxTestingModalHook -#endif - -#define WX_TEST_IMPL_ADD_EXPECTATION(pos, expect) \ - const wxModalExpectation& wx_exp##pos = expect; \ - wx_hook.AddExpectation(wx_exp##pos); - -/** - Runs given code with all modal dialogs redirected to wxExpectModal<T> - hooks, instead of being shown to the user. - - The first argument is any valid expression, typically a function call. The - remaining arguments are wxExpectModal<T> instances defining the dialogs - that are expected to be shown, in order of appearance. - - Some typical examples: - - @code - wxTEST_DIALOG - ( - rc = dlg.ShowModal(), - wxExpectModal<wxFileDialog>(wxGetCwd() + "/test.txt") - ); - @endcode - - Sometimes, the code may show more than one dialog: - - @code - wxTEST_DIALOG - ( - RunSomeFunction(), - wxExpectModal<wxMessageDialog>(wxNO), - wxExpectModal<MyConfirmationDialog>(wxYES), - wxExpectModal<wxFileDialog>(wxGetCwd() + "/test.txt") - ); - @endcode - - Notice that wxExpectModal<T> has some convenience methods for further - tweaking the expectations. For example, it's possible to mark an expected - dialog as @em optional for situations when a dialog may be shown, but isn't - required to, by calling the Optional() method: - - @code - wxTEST_DIALOG - ( - RunSomeFunction(), - wxExpectModal<wxMessageDialog>(wxNO), - wxExpectModal<wxFileDialog>(wxGetCwd() + "/test.txt").Optional() - ); - @endcode - - @note By default, errors are reported with wxFAIL_MSG(). You may customize this by - implementing a class derived from wxTestingModalHook, overriding its - ReportFailure() method and redefining the wxTEST_DIALOG_HOOK_CLASS - macro to be the name of this class. - - @note Custom dialogs are supported too. All you have to do is to specialize - wxExpectModal<> for your dialog type and implement its OnInvoked() - method. - */ -#ifdef HAVE_VARIADIC_MACROS - -// See wx/cpp.h for the explanations of this hack. -#if defined(__GNUC__) && __GNUC__ == 3 - #pragma GCC system_header -#endif /* gcc-3.x */ - -#define wxTEST_DIALOG(codeToRun, ...) \ - { \ - wxTEST_DIALOG_HOOK_CLASS wx_hook(__FILE__, __LINE__, __WXFUNCTION__); \ - wxCALL_FOR_EACH(WX_TEST_IMPL_ADD_EXPECTATION, __VA_ARGS__) \ - codeToRun; \ - wx_hook.CheckUnmetExpectations(); \ - } -#endif /* HAVE_VARIADIC_MACROS */ - -#endif // !WXBUILDING - -#endif // _WX_TESTING_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textbuf.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textbuf.h deleted file mode 100644 index a2511b42..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textbuf.h +++ /dev/null @@ -1,210 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/textbuf.h -// Purpose: class wxTextBuffer to work with text buffers of _small_ size -// (buffer is fully loaded in memory) and which understands CR/LF -// differences between platforms. -// Created: 14.11.01 -// Author: Morten Hanssen, Vadim Zeitlin -// Copyright: (c) 1998-2001 Morten Hanssen, Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTBUFFER_H -#define _WX_TEXTBUFFER_H - -#include "wx/defs.h" -#include "wx/arrstr.h" -#include "wx/convauto.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// the line termination type (kept wxTextFileType name for compatibility) -enum wxTextFileType -{ - wxTextFileType_None, // incomplete (the last line of the file only) - wxTextFileType_Unix, // line is terminated with 'LF' = 0xA = 10 = '\n' - wxTextFileType_Dos, // 'CR' 'LF' - wxTextFileType_Mac, // 'CR' = 0xD = 13 = '\r' - wxTextFileType_Os2 // 'CR' 'LF' -}; - -#include "wx/string.h" - -#if wxUSE_TEXTBUFFER - -#include "wx/dynarray.h" - -// ---------------------------------------------------------------------------- -// wxTextBuffer -// ---------------------------------------------------------------------------- - -WX_DEFINE_USER_EXPORTED_ARRAY_INT(wxTextFileType, - wxArrayLinesType, - class WXDLLIMPEXP_BASE); - -#endif // wxUSE_TEXTBUFFER - -class WXDLLIMPEXP_BASE wxTextBuffer -{ -public: - // constants and static functions - // default type for current platform (determined at compile time) - static const wxTextFileType typeDefault; - - // this function returns a string which is identical to "text" passed in - // except that the line terminator characters are changed to correspond the - // given type. Called with the default argument, the function translates - // the string to the native format (Unix for Unix, DOS for Windows, ...). - static wxString Translate(const wxString& text, - wxTextFileType type = typeDefault); - - // get the buffer termination string - static const wxChar *GetEOL(wxTextFileType type = typeDefault); - - // the static methods of this class are compiled in even when - // !wxUSE_TEXTBUFFER because they are used by the library itself, but the - // rest can be left out -#if wxUSE_TEXTBUFFER - - // buffer operations - // ----------------- - - // buffer exists? - bool Exists() const; - - // create the buffer if it doesn't already exist - bool Create(); - - // same as Create() but with (another) buffer name - bool Create(const wxString& strBufferName); - - // Open() also loads buffer in memory on success - bool Open(const wxMBConv& conv = wxConvAuto()); - - // same as Open() but with (another) buffer name - bool Open(const wxString& strBufferName, const wxMBConv& conv = wxConvAuto()); - - // closes the buffer and frees memory, losing all changes - bool Close(); - - // is buffer currently opened? - bool IsOpened() const { return m_isOpened; } - - // accessors - // --------- - - // get the number of lines in the buffer - size_t GetLineCount() const { return m_aLines.size(); } - - // the returned line may be modified (but don't add CR/LF at the end!) - wxString& GetLine(size_t n) { return m_aLines[n]; } - const wxString& GetLine(size_t n) const { return m_aLines[n]; } - wxString& operator[](size_t n) { return m_aLines[n]; } - const wxString& operator[](size_t n) const { return m_aLines[n]; } - - // the current line has meaning only when you're using - // GetFirstLine()/GetNextLine() functions, it doesn't get updated when - // you're using "direct access" i.e. GetLine() - size_t GetCurrentLine() const { return m_nCurLine; } - void GoToLine(size_t n) { m_nCurLine = n; } - bool Eof() const { return m_nCurLine == m_aLines.size(); } - - // these methods allow more "iterator-like" traversal of the list of - // lines, i.e. you may write something like: - // for ( str = GetFirstLine(); !Eof(); str = GetNextLine() ) { ... } - - // NB: const is commented out because not all compilers understand - // 'mutable' keyword yet (m_nCurLine should be mutable) - wxString& GetFirstLine() /* const */ - { return m_aLines.empty() ? ms_eof : m_aLines[m_nCurLine = 0]; } - wxString& GetNextLine() /* const */ - { return ++m_nCurLine == m_aLines.size() ? ms_eof - : m_aLines[m_nCurLine]; } - wxString& GetPrevLine() /* const */ - { wxASSERT(m_nCurLine > 0); return m_aLines[--m_nCurLine]; } - wxString& GetLastLine() /* const */ - { m_nCurLine = m_aLines.size() - 1; return m_aLines.Last(); } - - // get the type of the line (see also GetEOL) - wxTextFileType GetLineType(size_t n) const { return m_aTypes[n]; } - - // guess the type of buffer - wxTextFileType GuessType() const; - - // get the name of the buffer - const wxString& GetName() const { return m_strBufferName; } - - // add/remove lines - // ---------------- - - // add a line to the end - void AddLine(const wxString& str, wxTextFileType type = typeDefault) - { m_aLines.push_back(str); m_aTypes.push_back(type); } - // insert a line before the line number n - void InsertLine(const wxString& str, - size_t n, - wxTextFileType type = typeDefault) - { - m_aLines.insert(m_aLines.begin() + n, str); - m_aTypes.insert(m_aTypes.begin()+n, type); - } - - // delete one line - void RemoveLine(size_t n) - { - m_aLines.erase(m_aLines.begin() + n); - m_aTypes.erase(m_aTypes.begin() + n); - } - - // remove all lines - void Clear() { m_aLines.clear(); m_aTypes.clear(); m_nCurLine = 0; } - - // change the buffer (default argument means "don't change type") - // possibly in another format - bool Write(wxTextFileType typeNew = wxTextFileType_None, - const wxMBConv& conv = wxConvAuto()); - - // dtor - virtual ~wxTextBuffer(); - -protected: - // ctors - // ----- - - // default ctor, use Open(string) - wxTextBuffer() { m_nCurLine = 0; m_isOpened = false; } - - // ctor from filename - wxTextBuffer(const wxString& strBufferName); - - enum wxTextBufferOpenMode { ReadAccess, WriteAccess }; - - // Must implement these in derived classes. - virtual bool OnExists() const = 0; - virtual bool OnOpen(const wxString &strBufferName, - wxTextBufferOpenMode openmode) = 0; - virtual bool OnClose() = 0; - virtual bool OnRead(const wxMBConv& conv) = 0; - virtual bool OnWrite(wxTextFileType typeNew, const wxMBConv& conv) = 0; - - static wxString ms_eof; // dummy string returned at EOF - wxString m_strBufferName; // name of the buffer - -private: - wxArrayLinesType m_aTypes; // type of each line - wxArrayString m_aLines; // lines of file - - size_t m_nCurLine; // number of current line in the buffer - - bool m_isOpened; // was the buffer successfully opened the last time? -#endif // wxUSE_TEXTBUFFER - - // copy ctor/assignment operator not implemented - wxTextBuffer(const wxTextBuffer&); - wxTextBuffer& operator=(const wxTextBuffer&); -}; - -#endif // _WX_TEXTBUFFER_H - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textcompleter.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textcompleter.h deleted file mode 100644 index bc4135f8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textcompleter.h +++ /dev/null @@ -1,86 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/textcompleter.h -// Purpose: Declaration of wxTextCompleter class. -// Author: Vadim Zeitlin -// Created: 2011-04-13 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTCOMPLETER_H_ -#define _WX_TEXTCOMPLETER_H_ - -// ---------------------------------------------------------------------------- -// wxTextCompleter: used by wxTextEnter::AutoComplete() -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTextCompleter -{ -public: - wxTextCompleter() { } - - // The virtual functions to be implemented by the derived classes: the - // first one is called to start preparing for completions for the given - // prefix and, if it returns true, GetNext() is called until it returns an - // empty string indicating that there are no more completions. - virtual bool Start(const wxString& prefix) = 0; - virtual wxString GetNext() = 0; - - virtual ~wxTextCompleter(); - -private: - wxDECLARE_NO_COPY_CLASS(wxTextCompleter); -}; - -// ---------------------------------------------------------------------------- -// wxTextCompleterSimple: returns the entire set of completions at once -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTextCompleterSimple : public wxTextCompleter -{ -public: - wxTextCompleterSimple() { } - - // Must be implemented to return all the completions for the given prefix. - virtual void GetCompletions(const wxString& prefix, wxArrayString& res) = 0; - - virtual bool Start(const wxString& prefix); - virtual wxString GetNext(); - -private: - wxArrayString m_completions; - unsigned m_index; - - wxDECLARE_NO_COPY_CLASS(wxTextCompleterSimple); -}; - -// ---------------------------------------------------------------------------- -// wxTextCompleterFixed: Trivial wxTextCompleter implementation which always -// returns the same fixed array of completions. -// ---------------------------------------------------------------------------- - -// NB: This class is private and intentionally not documented as it is -// currently used only for implementation of completion with the fixed list -// of strings only by wxWidgets itself, do not use it outside of wxWidgets. - -class wxTextCompleterFixed : public wxTextCompleterSimple -{ -public: - void SetCompletions(const wxArrayString& strings) - { - m_strings = strings; - } - - virtual void GetCompletions(const wxString& WXUNUSED(prefix), - wxArrayString& res) - { - res = m_strings; - } - -private: - wxArrayString m_strings; -}; - - -#endif // _WX_TEXTCOMPLETER_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textctrl.h deleted file mode 100644 index cd7a815a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textctrl.h +++ /dev/null @@ -1,913 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/textctrl.h -// Purpose: wxTextAttr and wxTextCtrlBase class - the interface of wxTextCtrl -// Author: Vadim Zeitlin -// Modified by: -// Created: 13.07.99 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTCTRL_H_BASE_ -#define _WX_TEXTCTRL_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_TEXTCTRL - -#include "wx/control.h" // the base class -#include "wx/textentry.h" // single-line text entry interface -#include "wx/dynarray.h" // wxArrayInt -#include "wx/gdicmn.h" // wxPoint - -#if wxUSE_STD_IOSTREAM - #include "wx/ioswrap.h" - #define wxHAS_TEXT_WINDOW_STREAM 1 -#else - #define wxHAS_TEXT_WINDOW_STREAM 0 -#endif - -class WXDLLIMPEXP_FWD_CORE wxTextCtrl; -class WXDLLIMPEXP_FWD_CORE wxTextCtrlBase; - -// ---------------------------------------------------------------------------- -// wxTextCtrl types -// ---------------------------------------------------------------------------- - -// wxTextCoord is the line or row number (which should have been unsigned but -// is long for backwards compatibility) -typedef long wxTextCoord; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -extern WXDLLIMPEXP_DATA_CORE(const char) wxTextCtrlNameStr[]; - -// this is intentionally not enum to avoid warning fixes with -// typecasting from enum type to wxTextCoord -const wxTextCoord wxOutOfRangeTextCoord = -1; -const wxTextCoord wxInvalidTextCoord = -2; - -// ---------------------------------------------------------------------------- -// wxTextCtrl style flags -// ---------------------------------------------------------------------------- - -#define wxTE_NO_VSCROLL 0x0002 - -#define wxTE_READONLY 0x0010 -#define wxTE_MULTILINE 0x0020 -#define wxTE_PROCESS_TAB 0x0040 - -// alignment flags -#define wxTE_LEFT 0x0000 // 0x0000 -#define wxTE_CENTER wxALIGN_CENTER_HORIZONTAL // 0x0100 -#define wxTE_RIGHT wxALIGN_RIGHT // 0x0200 -#define wxTE_CENTRE wxTE_CENTER - -// this style means to use RICHEDIT control and does something only under wxMSW -// and Win32 and is silently ignored under all other platforms -#define wxTE_RICH 0x0080 - -#define wxTE_PROCESS_ENTER 0x0400 -#define wxTE_PASSWORD 0x0800 - -// automatically detect the URLs and generate the events when mouse is -// moved/clicked over an URL -// -// this is for Win32 richedit and wxGTK2 multiline controls only so far -#define wxTE_AUTO_URL 0x1000 - -// by default, the Windows text control doesn't show the selection when it -// doesn't have focus - use this style to force it to always show it -#define wxTE_NOHIDESEL 0x2000 - -// use wxHSCROLL to not wrap text at all, wxTE_CHARWRAP to wrap it at any -// position and wxTE_WORDWRAP to wrap at words boundary -// -// if no wrapping style is given at all, the control wraps at word boundary -#define wxTE_DONTWRAP wxHSCROLL -#define wxTE_CHARWRAP 0x4000 // wrap at any position -#define wxTE_WORDWRAP 0x0001 // wrap only at words boundaries -#define wxTE_BESTWRAP 0x0000 // this is the default - -#if WXWIN_COMPATIBILITY_2_8 - // this style is (or at least should be) on by default now, don't use it - #define wxTE_AUTO_SCROLL 0 -#endif // WXWIN_COMPATIBILITY_2_8 - -// force using RichEdit version 2.0 or 3.0 instead of 1.0 (default) for -// wxTE_RICH controls - can be used together with or instead of wxTE_RICH -#define wxTE_RICH2 0x8000 - -#if defined(__WXOSX_IPHONE__) -#define wxTE_CAPITALIZE wxTE_RICH2 -#else -#define wxTE_CAPITALIZE 0 -#endif - -// ---------------------------------------------------------------------------- -// wxTextCtrl file types -// ---------------------------------------------------------------------------- - -#define wxTEXT_TYPE_ANY 0 - -// ---------------------------------------------------------------------------- -// wxTextCtrl::HitTest return values -// ---------------------------------------------------------------------------- - -// the point asked is ... -enum wxTextCtrlHitTestResult -{ - wxTE_HT_UNKNOWN = -2, // this means HitTest() is simply not implemented - wxTE_HT_BEFORE, // either to the left or upper - wxTE_HT_ON_TEXT, // directly on - wxTE_HT_BELOW, // below [the last line] - wxTE_HT_BEYOND // after [the end of line] -}; -// ... the character returned - -// ---------------------------------------------------------------------------- -// Types for wxTextAttr -// ---------------------------------------------------------------------------- - -// Alignment - -enum wxTextAttrAlignment -{ - wxTEXT_ALIGNMENT_DEFAULT, - wxTEXT_ALIGNMENT_LEFT, - wxTEXT_ALIGNMENT_CENTRE, - wxTEXT_ALIGNMENT_CENTER = wxTEXT_ALIGNMENT_CENTRE, - wxTEXT_ALIGNMENT_RIGHT, - wxTEXT_ALIGNMENT_JUSTIFIED -}; - -// Flags to indicate which attributes are being applied -enum wxTextAttrFlags -{ - wxTEXT_ATTR_TEXT_COLOUR = 0x00000001, - wxTEXT_ATTR_BACKGROUND_COLOUR = 0x00000002, - - wxTEXT_ATTR_FONT_FACE = 0x00000004, - wxTEXT_ATTR_FONT_POINT_SIZE = 0x00000008, - wxTEXT_ATTR_FONT_PIXEL_SIZE = 0x10000000, - wxTEXT_ATTR_FONT_WEIGHT = 0x00000010, - wxTEXT_ATTR_FONT_ITALIC = 0x00000020, - wxTEXT_ATTR_FONT_UNDERLINE = 0x00000040, - wxTEXT_ATTR_FONT_STRIKETHROUGH = 0x08000000, - wxTEXT_ATTR_FONT_ENCODING = 0x02000000, - wxTEXT_ATTR_FONT_FAMILY = 0x04000000, - wxTEXT_ATTR_FONT_SIZE = \ - ( wxTEXT_ATTR_FONT_POINT_SIZE | wxTEXT_ATTR_FONT_PIXEL_SIZE ), - wxTEXT_ATTR_FONT = \ - ( wxTEXT_ATTR_FONT_FACE | wxTEXT_ATTR_FONT_SIZE | wxTEXT_ATTR_FONT_WEIGHT | \ - wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE | wxTEXT_ATTR_FONT_STRIKETHROUGH | wxTEXT_ATTR_FONT_ENCODING | wxTEXT_ATTR_FONT_FAMILY ), - - wxTEXT_ATTR_ALIGNMENT = 0x00000080, - wxTEXT_ATTR_LEFT_INDENT = 0x00000100, - wxTEXT_ATTR_RIGHT_INDENT = 0x00000200, - wxTEXT_ATTR_TABS = 0x00000400, - wxTEXT_ATTR_PARA_SPACING_AFTER = 0x00000800, - wxTEXT_ATTR_PARA_SPACING_BEFORE = 0x00001000, - wxTEXT_ATTR_LINE_SPACING = 0x00002000, - wxTEXT_ATTR_CHARACTER_STYLE_NAME = 0x00004000, - wxTEXT_ATTR_PARAGRAPH_STYLE_NAME = 0x00008000, - wxTEXT_ATTR_LIST_STYLE_NAME = 0x00010000, - - wxTEXT_ATTR_BULLET_STYLE = 0x00020000, - wxTEXT_ATTR_BULLET_NUMBER = 0x00040000, - wxTEXT_ATTR_BULLET_TEXT = 0x00080000, - wxTEXT_ATTR_BULLET_NAME = 0x00100000, - - wxTEXT_ATTR_BULLET = \ - ( wxTEXT_ATTR_BULLET_STYLE | wxTEXT_ATTR_BULLET_NUMBER | wxTEXT_ATTR_BULLET_TEXT | \ - wxTEXT_ATTR_BULLET_NAME ), - - - wxTEXT_ATTR_URL = 0x00200000, - wxTEXT_ATTR_PAGE_BREAK = 0x00400000, - wxTEXT_ATTR_EFFECTS = 0x00800000, - wxTEXT_ATTR_OUTLINE_LEVEL = 0x01000000, - - wxTEXT_ATTR_AVOID_PAGE_BREAK_BEFORE = 0x20000000, - wxTEXT_ATTR_AVOID_PAGE_BREAK_AFTER = 0x40000000, - - /*! - * Character and paragraph combined styles - */ - - wxTEXT_ATTR_CHARACTER = \ - (wxTEXT_ATTR_FONT|wxTEXT_ATTR_EFFECTS| \ - wxTEXT_ATTR_BACKGROUND_COLOUR|wxTEXT_ATTR_TEXT_COLOUR|wxTEXT_ATTR_CHARACTER_STYLE_NAME|wxTEXT_ATTR_URL), - - wxTEXT_ATTR_PARAGRAPH = \ - (wxTEXT_ATTR_ALIGNMENT|wxTEXT_ATTR_LEFT_INDENT|wxTEXT_ATTR_RIGHT_INDENT|wxTEXT_ATTR_TABS|\ - wxTEXT_ATTR_PARA_SPACING_BEFORE|wxTEXT_ATTR_PARA_SPACING_AFTER|wxTEXT_ATTR_LINE_SPACING|\ - wxTEXT_ATTR_BULLET|wxTEXT_ATTR_PARAGRAPH_STYLE_NAME|wxTEXT_ATTR_LIST_STYLE_NAME|wxTEXT_ATTR_OUTLINE_LEVEL|\ - wxTEXT_ATTR_PAGE_BREAK|wxTEXT_ATTR_AVOID_PAGE_BREAK_BEFORE|wxTEXT_ATTR_AVOID_PAGE_BREAK_AFTER), - - wxTEXT_ATTR_ALL = (wxTEXT_ATTR_CHARACTER|wxTEXT_ATTR_PARAGRAPH) -}; - -/*! - * Styles for wxTextAttr::SetBulletStyle - */ -enum wxTextAttrBulletStyle -{ - wxTEXT_ATTR_BULLET_STYLE_NONE = 0x00000000, - wxTEXT_ATTR_BULLET_STYLE_ARABIC = 0x00000001, - wxTEXT_ATTR_BULLET_STYLE_LETTERS_UPPER = 0x00000002, - wxTEXT_ATTR_BULLET_STYLE_LETTERS_LOWER = 0x00000004, - wxTEXT_ATTR_BULLET_STYLE_ROMAN_UPPER = 0x00000008, - wxTEXT_ATTR_BULLET_STYLE_ROMAN_LOWER = 0x00000010, - wxTEXT_ATTR_BULLET_STYLE_SYMBOL = 0x00000020, - wxTEXT_ATTR_BULLET_STYLE_BITMAP = 0x00000040, - wxTEXT_ATTR_BULLET_STYLE_PARENTHESES = 0x00000080, - wxTEXT_ATTR_BULLET_STYLE_PERIOD = 0x00000100, - wxTEXT_ATTR_BULLET_STYLE_STANDARD = 0x00000200, - wxTEXT_ATTR_BULLET_STYLE_RIGHT_PARENTHESIS = 0x00000400, - wxTEXT_ATTR_BULLET_STYLE_OUTLINE = 0x00000800, - - wxTEXT_ATTR_BULLET_STYLE_ALIGN_LEFT = 0x00000000, - wxTEXT_ATTR_BULLET_STYLE_ALIGN_RIGHT = 0x00001000, - wxTEXT_ATTR_BULLET_STYLE_ALIGN_CENTRE = 0x00002000, - - wxTEXT_ATTR_BULLET_STYLE_CONTINUATION = 0x00004000 -}; - -/*! - * Styles for wxTextAttr::SetTextEffects - */ -enum wxTextAttrEffects -{ - wxTEXT_ATTR_EFFECT_NONE = 0x00000000, - wxTEXT_ATTR_EFFECT_CAPITALS = 0x00000001, - wxTEXT_ATTR_EFFECT_SMALL_CAPITALS = 0x00000002, - wxTEXT_ATTR_EFFECT_STRIKETHROUGH = 0x00000004, - wxTEXT_ATTR_EFFECT_DOUBLE_STRIKETHROUGH = 0x00000008, - wxTEXT_ATTR_EFFECT_SHADOW = 0x00000010, - wxTEXT_ATTR_EFFECT_EMBOSS = 0x00000020, - wxTEXT_ATTR_EFFECT_OUTLINE = 0x00000040, - wxTEXT_ATTR_EFFECT_ENGRAVE = 0x00000080, - wxTEXT_ATTR_EFFECT_SUPERSCRIPT = 0x00000100, - wxTEXT_ATTR_EFFECT_SUBSCRIPT = 0x00000200, - wxTEXT_ATTR_EFFECT_RTL = 0x00000400, - wxTEXT_ATTR_EFFECT_SUPPRESS_HYPHENATION = 0x00001000 -}; - -/*! - * Line spacing values - */ -enum wxTextAttrLineSpacing -{ - wxTEXT_ATTR_LINE_SPACING_NORMAL = 10, - wxTEXT_ATTR_LINE_SPACING_HALF = 15, - wxTEXT_ATTR_LINE_SPACING_TWICE = 20 -}; - -// ---------------------------------------------------------------------------- -// wxTextAttr: a structure containing the visual attributes of a text -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTextAttr -{ -public: - // ctors - wxTextAttr() { Init(); } - wxTextAttr(const wxTextAttr& attr) { Init(); Copy(attr); } - wxTextAttr(const wxColour& colText, - const wxColour& colBack = wxNullColour, - const wxFont& font = wxNullFont, - wxTextAttrAlignment alignment = wxTEXT_ALIGNMENT_DEFAULT); - - // Initialise this object. - void Init(); - - // Copy - void Copy(const wxTextAttr& attr); - - // Assignment - void operator= (const wxTextAttr& attr); - - // Equality test - bool operator== (const wxTextAttr& attr) const; - - // Partial equality test. If @a weakTest is @true, attributes of this object do not - // have to be present if those attributes of @a attr are present. If @a weakTest is - // @false, the function will fail if an attribute is present in @a attr but not - // in this object. - bool EqPartial(const wxTextAttr& attr, bool weakTest = true) const; - - // Get attributes from font. - bool GetFontAttributes(const wxFont& font, int flags = wxTEXT_ATTR_FONT); - - // setters - void SetTextColour(const wxColour& colText) { m_colText = colText; m_flags |= wxTEXT_ATTR_TEXT_COLOUR; } - void SetBackgroundColour(const wxColour& colBack) { m_colBack = colBack; m_flags |= wxTEXT_ATTR_BACKGROUND_COLOUR; } - void SetAlignment(wxTextAttrAlignment alignment) { m_textAlignment = alignment; m_flags |= wxTEXT_ATTR_ALIGNMENT; } - void SetTabs(const wxArrayInt& tabs) { m_tabs = tabs; m_flags |= wxTEXT_ATTR_TABS; } - void SetLeftIndent(int indent, int subIndent = 0) { m_leftIndent = indent; m_leftSubIndent = subIndent; m_flags |= wxTEXT_ATTR_LEFT_INDENT; } - void SetRightIndent(int indent) { m_rightIndent = indent; m_flags |= wxTEXT_ATTR_RIGHT_INDENT; } - - void SetFontSize(int pointSize) { m_fontSize = pointSize; m_flags &= ~wxTEXT_ATTR_FONT_SIZE; m_flags |= wxTEXT_ATTR_FONT_POINT_SIZE; } - void SetFontPointSize(int pointSize) { m_fontSize = pointSize; m_flags &= ~wxTEXT_ATTR_FONT_SIZE; m_flags |= wxTEXT_ATTR_FONT_POINT_SIZE; } - void SetFontPixelSize(int pixelSize) { m_fontSize = pixelSize; m_flags &= ~wxTEXT_ATTR_FONT_SIZE; m_flags |= wxTEXT_ATTR_FONT_PIXEL_SIZE; } - void SetFontStyle(wxFontStyle fontStyle) { m_fontStyle = fontStyle; m_flags |= wxTEXT_ATTR_FONT_ITALIC; } - void SetFontWeight(wxFontWeight fontWeight) { m_fontWeight = fontWeight; m_flags |= wxTEXT_ATTR_FONT_WEIGHT; } - void SetFontFaceName(const wxString& faceName) { m_fontFaceName = faceName; m_flags |= wxTEXT_ATTR_FONT_FACE; } - void SetFontUnderlined(bool underlined) { m_fontUnderlined = underlined; m_flags |= wxTEXT_ATTR_FONT_UNDERLINE; } - void SetFontStrikethrough(bool strikethrough) { m_fontStrikethrough = strikethrough; m_flags |= wxTEXT_ATTR_FONT_STRIKETHROUGH; } - void SetFontEncoding(wxFontEncoding encoding) { m_fontEncoding = encoding; m_flags |= wxTEXT_ATTR_FONT_ENCODING; } - void SetFontFamily(wxFontFamily family) { m_fontFamily = family; m_flags |= wxTEXT_ATTR_FONT_FAMILY; } - - // Set font - void SetFont(const wxFont& font, int flags = (wxTEXT_ATTR_FONT & ~wxTEXT_ATTR_FONT_PIXEL_SIZE)) { GetFontAttributes(font, flags); } - - void SetFlags(long flags) { m_flags = flags; } - - void SetCharacterStyleName(const wxString& name) { m_characterStyleName = name; m_flags |= wxTEXT_ATTR_CHARACTER_STYLE_NAME; } - void SetParagraphStyleName(const wxString& name) { m_paragraphStyleName = name; m_flags |= wxTEXT_ATTR_PARAGRAPH_STYLE_NAME; } - void SetListStyleName(const wxString& name) { m_listStyleName = name; SetFlags(GetFlags() | wxTEXT_ATTR_LIST_STYLE_NAME); } - void SetParagraphSpacingAfter(int spacing) { m_paragraphSpacingAfter = spacing; m_flags |= wxTEXT_ATTR_PARA_SPACING_AFTER; } - void SetParagraphSpacingBefore(int spacing) { m_paragraphSpacingBefore = spacing; m_flags |= wxTEXT_ATTR_PARA_SPACING_BEFORE; } - void SetLineSpacing(int spacing) { m_lineSpacing = spacing; m_flags |= wxTEXT_ATTR_LINE_SPACING; } - void SetBulletStyle(int style) { m_bulletStyle = style; m_flags |= wxTEXT_ATTR_BULLET_STYLE; } - void SetBulletNumber(int n) { m_bulletNumber = n; m_flags |= wxTEXT_ATTR_BULLET_NUMBER; } - void SetBulletText(const wxString& text) { m_bulletText = text; m_flags |= wxTEXT_ATTR_BULLET_TEXT; } - void SetBulletFont(const wxString& bulletFont) { m_bulletFont = bulletFont; } - void SetBulletName(const wxString& name) { m_bulletName = name; m_flags |= wxTEXT_ATTR_BULLET_NAME; } - void SetURL(const wxString& url) { m_urlTarget = url; m_flags |= wxTEXT_ATTR_URL; } - void SetPageBreak(bool pageBreak = true) { SetFlags(pageBreak ? (GetFlags() | wxTEXT_ATTR_PAGE_BREAK) : (GetFlags() & ~wxTEXT_ATTR_PAGE_BREAK)); } - void SetTextEffects(int effects) { m_textEffects = effects; SetFlags(GetFlags() | wxTEXT_ATTR_EFFECTS); } - void SetTextEffectFlags(int effects) { m_textEffectFlags = effects; } - void SetOutlineLevel(int level) { m_outlineLevel = level; SetFlags(GetFlags() | wxTEXT_ATTR_OUTLINE_LEVEL); } - - const wxColour& GetTextColour() const { return m_colText; } - const wxColour& GetBackgroundColour() const { return m_colBack; } - wxTextAttrAlignment GetAlignment() const { return m_textAlignment; } - const wxArrayInt& GetTabs() const { return m_tabs; } - long GetLeftIndent() const { return m_leftIndent; } - long GetLeftSubIndent() const { return m_leftSubIndent; } - long GetRightIndent() const { return m_rightIndent; } - long GetFlags() const { return m_flags; } - - int GetFontSize() const { return m_fontSize; } - wxFontStyle GetFontStyle() const { return m_fontStyle; } - wxFontWeight GetFontWeight() const { return m_fontWeight; } - bool GetFontUnderlined() const { return m_fontUnderlined; } - bool GetFontStrikethrough() const { return m_fontStrikethrough; } - const wxString& GetFontFaceName() const { return m_fontFaceName; } - wxFontEncoding GetFontEncoding() const { return m_fontEncoding; } - wxFontFamily GetFontFamily() const { return m_fontFamily; } - - wxFont GetFont() const; - - const wxString& GetCharacterStyleName() const { return m_characterStyleName; } - const wxString& GetParagraphStyleName() const { return m_paragraphStyleName; } - const wxString& GetListStyleName() const { return m_listStyleName; } - int GetParagraphSpacingAfter() const { return m_paragraphSpacingAfter; } - int GetParagraphSpacingBefore() const { return m_paragraphSpacingBefore; } - - int GetLineSpacing() const { return m_lineSpacing; } - int GetBulletStyle() const { return m_bulletStyle; } - int GetBulletNumber() const { return m_bulletNumber; } - const wxString& GetBulletText() const { return m_bulletText; } - const wxString& GetBulletFont() const { return m_bulletFont; } - const wxString& GetBulletName() const { return m_bulletName; } - const wxString& GetURL() const { return m_urlTarget; } - int GetTextEffects() const { return m_textEffects; } - int GetTextEffectFlags() const { return m_textEffectFlags; } - int GetOutlineLevel() const { return m_outlineLevel; } - - // accessors - bool HasTextColour() const { return m_colText.IsOk() && HasFlag(wxTEXT_ATTR_TEXT_COLOUR) ; } - bool HasBackgroundColour() const { return m_colBack.IsOk() && HasFlag(wxTEXT_ATTR_BACKGROUND_COLOUR) ; } - bool HasAlignment() const { return (m_textAlignment != wxTEXT_ALIGNMENT_DEFAULT) && HasFlag(wxTEXT_ATTR_ALIGNMENT) ; } - bool HasTabs() const { return HasFlag(wxTEXT_ATTR_TABS) ; } - bool HasLeftIndent() const { return HasFlag(wxTEXT_ATTR_LEFT_INDENT); } - bool HasRightIndent() const { return HasFlag(wxTEXT_ATTR_RIGHT_INDENT); } - bool HasFontWeight() const { return HasFlag(wxTEXT_ATTR_FONT_WEIGHT); } - bool HasFontSize() const { return HasFlag(wxTEXT_ATTR_FONT_SIZE); } - bool HasFontPointSize() const { return HasFlag(wxTEXT_ATTR_FONT_POINT_SIZE); } - bool HasFontPixelSize() const { return HasFlag(wxTEXT_ATTR_FONT_PIXEL_SIZE); } - bool HasFontItalic() const { return HasFlag(wxTEXT_ATTR_FONT_ITALIC); } - bool HasFontUnderlined() const { return HasFlag(wxTEXT_ATTR_FONT_UNDERLINE); } - bool HasFontStrikethrough() const { return HasFlag(wxTEXT_ATTR_FONT_STRIKETHROUGH); } - bool HasFontFaceName() const { return HasFlag(wxTEXT_ATTR_FONT_FACE); } - bool HasFontEncoding() const { return HasFlag(wxTEXT_ATTR_FONT_ENCODING); } - bool HasFontFamily() const { return HasFlag(wxTEXT_ATTR_FONT_FAMILY); } - bool HasFont() const { return HasFlag(wxTEXT_ATTR_FONT); } - - bool HasParagraphSpacingAfter() const { return HasFlag(wxTEXT_ATTR_PARA_SPACING_AFTER); } - bool HasParagraphSpacingBefore() const { return HasFlag(wxTEXT_ATTR_PARA_SPACING_BEFORE); } - bool HasLineSpacing() const { return HasFlag(wxTEXT_ATTR_LINE_SPACING); } - bool HasCharacterStyleName() const { return HasFlag(wxTEXT_ATTR_CHARACTER_STYLE_NAME) && !m_characterStyleName.IsEmpty(); } - bool HasParagraphStyleName() const { return HasFlag(wxTEXT_ATTR_PARAGRAPH_STYLE_NAME) && !m_paragraphStyleName.IsEmpty(); } - bool HasListStyleName() const { return HasFlag(wxTEXT_ATTR_LIST_STYLE_NAME) || !m_listStyleName.IsEmpty(); } - bool HasBulletStyle() const { return HasFlag(wxTEXT_ATTR_BULLET_STYLE); } - bool HasBulletNumber() const { return HasFlag(wxTEXT_ATTR_BULLET_NUMBER); } - bool HasBulletText() const { return HasFlag(wxTEXT_ATTR_BULLET_TEXT); } - bool HasBulletName() const { return HasFlag(wxTEXT_ATTR_BULLET_NAME); } - bool HasURL() const { return HasFlag(wxTEXT_ATTR_URL); } - bool HasPageBreak() const { return HasFlag(wxTEXT_ATTR_PAGE_BREAK); } - bool HasTextEffects() const { return HasFlag(wxTEXT_ATTR_EFFECTS); } - bool HasTextEffect(int effect) const { return HasFlag(wxTEXT_ATTR_EFFECTS) && ((GetTextEffectFlags() & effect) != 0); } - bool HasOutlineLevel() const { return HasFlag(wxTEXT_ATTR_OUTLINE_LEVEL); } - - bool HasFlag(long flag) const { return (m_flags & flag) != 0; } - void RemoveFlag(long flag) { m_flags &= ~flag; } - void AddFlag(long flag) { m_flags |= flag; } - - // Is this a character style? - bool IsCharacterStyle() const { return HasFlag(wxTEXT_ATTR_CHARACTER); } - bool IsParagraphStyle() const { return HasFlag(wxTEXT_ATTR_PARAGRAPH); } - - // returns false if we have any attributes set, true otherwise - bool IsDefault() const - { - return GetFlags() == 0; - } - - // Merges the given attributes. If compareWith - // is non-NULL, then it will be used to mask out those attributes that are the same in style - // and compareWith, for situations where we don't want to explicitly set inherited attributes. - bool Apply(const wxTextAttr& style, const wxTextAttr* compareWith = NULL); - - // merges the attributes of the base and the overlay objects and returns - // the result; the parameter attributes take precedence - // - // WARNING: the order of arguments is the opposite of Combine() - static wxTextAttr Merge(const wxTextAttr& base, const wxTextAttr& overlay) - { - return Combine(overlay, base, NULL); - } - - // merges the attributes of this object and overlay - void Merge(const wxTextAttr& overlay) - { - *this = Merge(*this, overlay); - } - - // return the attribute having the valid font and colours: it uses the - // attributes set in attr and falls back first to attrDefault and then to - // the text control font/colours for those attributes which are not set - static wxTextAttr Combine(const wxTextAttr& attr, - const wxTextAttr& attrDef, - const wxTextCtrlBase *text); - - // Compare tabs - static bool TabsEq(const wxArrayInt& tabs1, const wxArrayInt& tabs2); - - // Remove attributes - static bool RemoveStyle(wxTextAttr& destStyle, const wxTextAttr& style); - - // Combine two bitlists, specifying the bits of interest with separate flags. - static bool CombineBitlists(int& valueA, int valueB, int& flagsA, int flagsB); - - // Compare two bitlists - static bool BitlistsEqPartial(int valueA, int valueB, int flags); - - // Split into paragraph and character styles - static bool SplitParaCharStyles(const wxTextAttr& style, wxTextAttr& parStyle, wxTextAttr& charStyle); - -private: - long m_flags; - - // Paragraph styles - wxArrayInt m_tabs; // array of int: tab stops in 1/10 mm - int m_leftIndent; // left indent in 1/10 mm - int m_leftSubIndent; // left indent for all but the first - // line in a paragraph relative to the - // first line, in 1/10 mm - int m_rightIndent; // right indent in 1/10 mm - wxTextAttrAlignment m_textAlignment; - - int m_paragraphSpacingAfter; - int m_paragraphSpacingBefore; - int m_lineSpacing; - int m_bulletStyle; - int m_bulletNumber; - int m_textEffects; - int m_textEffectFlags; - int m_outlineLevel; - wxString m_bulletText; - wxString m_bulletFont; - wxString m_bulletName; - wxString m_urlTarget; - wxFontEncoding m_fontEncoding; - - // Character styles - wxColour m_colText, - m_colBack; - int m_fontSize; - wxFontStyle m_fontStyle; - wxFontWeight m_fontWeight; - wxFontFamily m_fontFamily; - bool m_fontUnderlined; - bool m_fontStrikethrough; - wxString m_fontFaceName; - - // Character style - wxString m_characterStyleName; - - // Paragraph style - wxString m_paragraphStyleName; - - // List style - wxString m_listStyleName; -}; - -// ---------------------------------------------------------------------------- -// wxTextAreaBase: multiline text control specific methods -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTextAreaBase -{ -public: - wxTextAreaBase() { } - virtual ~wxTextAreaBase() { } - - // lines access - // ------------ - - virtual int GetLineLength(long lineNo) const = 0; - virtual wxString GetLineText(long lineNo) const = 0; - virtual int GetNumberOfLines() const = 0; - - - // file IO - // ------- - - bool LoadFile(const wxString& file, int fileType = wxTEXT_TYPE_ANY) - { return DoLoadFile(file, fileType); } - bool SaveFile(const wxString& file = wxEmptyString, - int fileType = wxTEXT_TYPE_ANY); - - // dirty flag handling - // ------------------- - - virtual bool IsModified() const = 0; - virtual void MarkDirty() = 0; - virtual void DiscardEdits() = 0; - void SetModified(bool modified) - { - if ( modified ) - MarkDirty(); - else - DiscardEdits(); - } - - - // styles handling - // --------------- - - // text control under some platforms supports the text styles: these - // methods allow to apply the given text style to the given selection or to - // set/get the style which will be used for all appended text - virtual bool SetStyle(long start, long end, const wxTextAttr& style) = 0; - virtual bool GetStyle(long position, wxTextAttr& style) = 0; - virtual bool SetDefaultStyle(const wxTextAttr& style) = 0; - virtual const wxTextAttr& GetDefaultStyle() const { return m_defaultStyle; } - - - // coordinates translation - // ----------------------- - - // translate between the position (which is just an index in the text ctrl - // considering all its contents as a single strings) and (x, y) coordinates - // which represent column and line. - virtual long XYToPosition(long x, long y) const = 0; - virtual bool PositionToXY(long pos, long *x, long *y) const = 0; - - // translate the given position (which is just an index in the text control) - // to client coordinates - wxPoint PositionToCoords(long pos) const; - - - virtual void ShowPosition(long pos) = 0; - - // find the character at position given in pixels - // - // NB: pt is in device coords (not adjusted for the client area origin nor - // scrolling) - virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, long *pos) const; - virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, - wxTextCoord *col, - wxTextCoord *row) const; - virtual wxString GetValue() const = 0; - virtual void SetValue(const wxString& value) = 0; - -protected: - // implementation of loading/saving - virtual bool DoLoadFile(const wxString& file, int fileType); - virtual bool DoSaveFile(const wxString& file, int fileType); - - // Return true if the given position is valid, i.e. positive and less than - // the last position. - virtual bool IsValidPosition(long pos) const = 0; - - // Default stub implementation of PositionToCoords() always returns - // wxDefaultPosition. - virtual wxPoint DoPositionToCoords(long pos) const; - - // the name of the last file loaded with LoadFile() which will be used by - // SaveFile() by default - wxString m_filename; - - // the text style which will be used for any new text added to the control - wxTextAttr m_defaultStyle; - - - wxDECLARE_NO_COPY_CLASS(wxTextAreaBase); -}; - -// this class defines wxTextCtrl interface, wxTextCtrlBase actually implements -// too much things because it derives from wxTextEntry and not wxTextEntryBase -// and so any classes which "look like" wxTextCtrl (such as wxRichTextCtrl) -// but don't need the (native) implementation bits from wxTextEntry should -// actually derive from this one and not wxTextCtrlBase -class WXDLLIMPEXP_CORE wxTextCtrlIface : public wxTextAreaBase, - public wxTextEntryBase -{ -public: - wxTextCtrlIface() { } - - // wxTextAreaBase overrides - virtual wxString GetValue() const wxOVERRIDE - { - return wxTextEntryBase::GetValue(); - } - virtual void SetValue(const wxString& value) wxOVERRIDE - { - wxTextEntryBase::SetValue(value); - } - -protected: - virtual bool IsValidPosition(long pos) const wxOVERRIDE - { - return pos >= 0 && pos <= GetLastPosition(); - } - -private: - wxDECLARE_NO_COPY_CLASS(wxTextCtrlIface); -}; - -// ---------------------------------------------------------------------------- -// wxTextCtrl: a single or multiple line text zone where user can edit text -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTextCtrlBase : public wxControl, -#if wxHAS_TEXT_WINDOW_STREAM - public wxSTD streambuf, -#endif - public wxTextAreaBase, - public wxTextEntry -{ -public: - // creation - // -------- - - wxTextCtrlBase() { } - virtual ~wxTextCtrlBase() { } - - - // more readable flag testing methods - bool IsSingleLine() const { return !HasFlag(wxTE_MULTILINE); } - bool IsMultiLine() const { return !IsSingleLine(); } - - // stream-like insertion operators: these are always available, whether we - // were, or not, compiled with streambuf support - wxTextCtrl& operator<<(const wxString& s); - wxTextCtrl& operator<<(int i); - wxTextCtrl& operator<<(long i); - wxTextCtrl& operator<<(float f) { return *this << double(f); } - wxTextCtrl& operator<<(double d); - wxTextCtrl& operator<<(char c) { return *this << wxString(c); } - wxTextCtrl& operator<<(wchar_t c) { return *this << wxString(c); } - - // insert the character which would have resulted from this key event, - // return true if anything has been inserted - virtual bool EmulateKeyPress(const wxKeyEvent& event); - - - // do the window-specific processing after processing the update event - virtual void DoUpdateWindowUI(wxUpdateUIEvent& event) wxOVERRIDE; - - virtual bool ShouldInheritColours() const wxOVERRIDE { return false; } - - // work around the problem with having HitTest() both in wxControl and - // wxTextAreaBase base classes - virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, long *pos) const wxOVERRIDE - { - return wxTextAreaBase::HitTest(pt, pos); - } - - virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, - wxTextCoord *col, - wxTextCoord *row) const wxOVERRIDE - { - return wxTextAreaBase::HitTest(pt, col, row); - } - - // we provide stubs for these functions as not all platforms have styles - // support, but we really should leave them pure virtual here - virtual bool SetStyle(long start, long end, const wxTextAttr& style) wxOVERRIDE; - virtual bool GetStyle(long position, wxTextAttr& style) wxOVERRIDE; - virtual bool SetDefaultStyle(const wxTextAttr& style) wxOVERRIDE; - - // wxTextAreaBase overrides - virtual wxString GetValue() const wxOVERRIDE - { - return wxTextEntry::GetValue(); - } - virtual void SetValue(const wxString& value) wxOVERRIDE - { - wxTextEntry::SetValue(value); - } - - // wxWindow overrides - virtual wxVisualAttributes GetDefaultAttributes() const wxOVERRIDE - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL) - { - return GetCompositeControlsDefaultAttributes(variant); - } - -protected: - // Override wxEvtHandler method to check for a common problem of binding - // wxEVT_TEXT_ENTER to a control without wxTE_PROCESS_ENTER style, which is - // never going to work. - virtual bool OnDynamicBind(wxDynamicEventTableEntry& entry); - - // override streambuf method -#if wxHAS_TEXT_WINDOW_STREAM - int overflow(int i) wxOVERRIDE; -#endif // wxHAS_TEXT_WINDOW_STREAM - - // Another wxTextAreaBase override. - virtual bool IsValidPosition(long pos) const wxOVERRIDE - { - return pos >= 0 && pos <= GetLastPosition(); - } - - // implement the wxTextEntry pure virtual method - virtual wxWindow *GetEditableWindow() wxOVERRIDE { return this; } - - wxDECLARE_NO_COPY_CLASS(wxTextCtrlBase); - wxDECLARE_ABSTRACT_CLASS(wxTextCtrlBase); -}; - -// ---------------------------------------------------------------------------- -// include the platform-dependent class definition -// ---------------------------------------------------------------------------- - -#if defined(__WXX11__) - #include "wx/x11/textctrl.h" -#elif defined(__WXUNIVERSAL__) - #include "wx/univ/textctrl.h" -#elif defined(__WXMSW__) - #include "wx/msw/textctrl.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/textctrl.h" -#elif defined(__WXGTK20__) - #include "wx/gtk/textctrl.h" -#elif defined(__WXGTK__) - #include "wx/gtk1/textctrl.h" -#elif defined(__WXMAC__) - #include "wx/osx/textctrl.h" -#elif defined(__WXQT__) - #include "wx/qt/textctrl.h" -#endif - -// ---------------------------------------------------------------------------- -// wxTextCtrl events -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxTextUrlEvent; - -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_TEXT, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_TEXT_ENTER, wxCommandEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_TEXT_URL, wxTextUrlEvent); -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_TEXT_MAXLEN, wxCommandEvent); - -class WXDLLIMPEXP_CORE wxTextUrlEvent : public wxCommandEvent -{ -public: - wxTextUrlEvent(int winid, const wxMouseEvent& evtMouse, - long start, long end) - : wxCommandEvent(wxEVT_TEXT_URL, winid), - m_evtMouse(evtMouse), m_start(start), m_end(end) - { } - wxTextUrlEvent(const wxTextUrlEvent& event) - : wxCommandEvent(event), - m_evtMouse(event.m_evtMouse), - m_start(event.m_start), - m_end(event.m_end) { } - - // get the mouse event which happened over the URL - const wxMouseEvent& GetMouseEvent() const { return m_evtMouse; } - - // get the start of the URL - long GetURLStart() const { return m_start; } - - // get the end of the URL - long GetURLEnd() const { return m_end; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxTextUrlEvent(*this); } - -protected: - // the corresponding mouse event - wxMouseEvent m_evtMouse; - - // the start and end indices of the URL in the text control - long m_start, - m_end; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxTextUrlEvent); - -public: - // for wxWin RTTI only, don't use - wxTextUrlEvent() : m_evtMouse(), m_start(0), m_end(0) { } -}; - -typedef void (wxEvtHandler::*wxTextUrlEventFunction)(wxTextUrlEvent&); - -#define wxTextEventHandler(func) wxCommandEventHandler(func) -#define wxTextUrlEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxTextUrlEventFunction, func) - -#define wx__DECLARE_TEXTEVT(evt, id, fn) \ - wx__DECLARE_EVT1(wxEVT_TEXT_ ## evt, id, wxTextEventHandler(fn)) - -#define wx__DECLARE_TEXTURLEVT(evt, id, fn) \ - wx__DECLARE_EVT1(wxEVT_TEXT_ ## evt, id, wxTextUrlEventHandler(fn)) - -#define EVT_TEXT(id, fn) wx__DECLARE_EVT1(wxEVT_TEXT, id, wxTextEventHandler(fn)) -#define EVT_TEXT_ENTER(id, fn) wx__DECLARE_TEXTEVT(ENTER, id, fn) -#define EVT_TEXT_URL(id, fn) wx__DECLARE_TEXTURLEVT(URL, id, fn) -#define EVT_TEXT_MAXLEN(id, fn) wx__DECLARE_TEXTEVT(MAXLEN, id, fn) - -#if wxHAS_TEXT_WINDOW_STREAM - -// ---------------------------------------------------------------------------- -// wxStreamToTextRedirector: this class redirects all data sent to the given -// C++ stream to the wxTextCtrl given to its ctor during its lifetime. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxStreamToTextRedirector -{ -private: - void Init(wxTextCtrl *text) - { - m_sbufOld = m_ostr.rdbuf(); - m_ostr.rdbuf(text); - } - -public: - wxStreamToTextRedirector(wxTextCtrl *text) - : m_ostr(wxSTD cout) - { - Init(text); - } - - wxStreamToTextRedirector(wxTextCtrl *text, wxSTD ostream *ostr) - : m_ostr(*ostr) - { - Init(text); - } - - ~wxStreamToTextRedirector() - { - m_ostr.rdbuf(m_sbufOld); - } - -private: - // the stream we're redirecting - wxSTD ostream& m_ostr; - - // the old streambuf (before we changed it) - wxSTD streambuf *m_sbufOld; -}; - -#endif // wxHAS_TEXT_WINDOW_STREAM - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_TEXT_UPDATED wxEVT_TEXT -#define wxEVT_COMMAND_TEXT_ENTER wxEVT_TEXT_ENTER -#define wxEVT_COMMAND_TEXT_URL wxEVT_TEXT_URL -#define wxEVT_COMMAND_TEXT_MAXLEN wxEVT_TEXT_MAXLEN - -#endif // wxUSE_TEXTCTRL - -#endif - // _WX_TEXTCTRL_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textdlg.h deleted file mode 100644 index 509b700b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textdlg.h +++ /dev/null @@ -1,17 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/textdlg.h -// Purpose: wxTextEntryDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTDLG_H_BASE_ -#define _WX_TEXTDLG_H_BASE_ - -#include "wx/generic/textdlgg.h" - -#endif // _WX_TEXTDLG_H_BASE_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textentry.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textentry.h deleted file mode 100644 index e44f3f01..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textentry.h +++ /dev/null @@ -1,342 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/textentry.h -// Purpose: declares wxTextEntry interface defining a simple text entry -// Author: Vadim Zeitlin -// Created: 2007-09-24 -// Copyright: (c) 2007 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTENTRY_H_ -#define _WX_TEXTENTRY_H_ - -// wxTextPos is the position in the text (currently it's hardly used anywhere -// and should probably be replaced with int anyhow) -typedef long wxTextPos; - -class WXDLLIMPEXP_FWD_BASE wxArrayString; -class WXDLLIMPEXP_FWD_CORE wxTextCompleter; -class WXDLLIMPEXP_FWD_CORE wxTextEntryHintData; -class WXDLLIMPEXP_FWD_CORE wxWindow; - -#include "wx/filefn.h" // for wxFILE and wxDIR only -#include "wx/gdicmn.h" // for wxPoint - -// ---------------------------------------------------------------------------- -// wxTextEntryBase -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTextEntryBase -{ -public: - wxTextEntryBase() { m_eventsBlock = 0; m_hintData = NULL; } - virtual ~wxTextEntryBase(); - - - // accessing the value - // ------------------- - - // SetValue() generates a text change event, ChangeValue() doesn't - virtual void SetValue(const wxString& value) - { DoSetValue(value, SetValue_SendEvent); } - virtual void ChangeValue(const wxString& value); - - // writing text inserts it at the current position replacing any current - // selection, appending always inserts it at the end and doesn't remove any - // existing text (but it will reset the selection if there is any) - virtual void WriteText(const wxString& text) = 0; - virtual void AppendText(const wxString& text); - - virtual wxString GetValue() const; - virtual wxString GetRange(long from, long to) const; - bool IsEmpty() const { return GetLastPosition() <= 0; } - - - // editing operations - // ------------------ - - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to) = 0; - virtual void Clear() { Remove(0, -1); } - void RemoveSelection(); - - - // clipboard operations - // -------------------- - - virtual void Copy() = 0; - virtual void Cut() = 0; - virtual void Paste() = 0; - - virtual bool CanCopy() const; - virtual bool CanCut() const; - virtual bool CanPaste() const; - - // undo/redo - // --------- - - virtual void Undo() = 0; - virtual void Redo() = 0; - - virtual bool CanUndo() const = 0; - virtual bool CanRedo() const = 0; - - - // insertion point - // --------------- - - // note that moving insertion point removes any current selection - virtual void SetInsertionPoint(long pos) = 0; - virtual void SetInsertionPointEnd() { SetInsertionPoint(-1); } - virtual long GetInsertionPoint() const = 0; - virtual long GetLastPosition() const = 0; - - - // selection - // --------- - - virtual void SetSelection(long from, long to) = 0; - virtual void SelectAll() { SetSelection(-1, -1); } - virtual void SelectNone() - { const long pos = GetInsertionPoint(); SetSelection(pos, pos); } - virtual void GetSelection(long *from, long *to) const = 0; - bool HasSelection() const; - virtual wxString GetStringSelection() const; - - - // auto-completion - // --------------- - - // these functions allow to auto-complete the text already entered into the - // control using either the given fixed list of strings, the paths from the - // file system or an arbitrary user-defined completer - // - // they all return true if completion was enabled or false on error (most - // commonly meaning that this functionality is not available under the - // current platform) - - bool AutoComplete(const wxArrayString& choices) - { return DoAutoCompleteStrings(choices); } - - bool AutoCompleteFileNames() - { return DoAutoCompleteFileNames(wxFILE); } - - bool AutoCompleteDirectories() - { return DoAutoCompleteFileNames(wxDIR); } - - // notice that we take ownership of the pointer and will delete it - // - // if the pointer is NULL auto-completion is disabled - bool AutoComplete(wxTextCompleter *completer) - { return DoAutoCompleteCustom(completer); } - - - // status - // ------ - - virtual bool IsEditable() const = 0; - virtual void SetEditable(bool editable) = 0; - - - // input restrictions - // ------------------ - - // set the max number of characters which may be entered in a single line - // text control - virtual void SetMaxLength(unsigned long WXUNUSED(len)) { } - - // convert any lower-case characters to upper-case on the fly in this entry - virtual void ForceUpper(); - - - // hints - // ----- - - // hint is the (usually greyed out) text shown in the control as long as - // it's empty and doesn't have focus, it is typically used in controls used - // for searching to let the user know what is supposed to be entered there - - virtual bool SetHint(const wxString& hint); - virtual wxString GetHint() const; - - - // margins - // ------- - - // margins are the empty space between borders of control and the text - // itself. When setting margin, use value -1 to indicate that specific - // margin should not be changed. - - bool SetMargins(const wxPoint& pt) - { return DoSetMargins(pt); } - bool SetMargins(wxCoord left, wxCoord top = -1) - { return DoSetMargins(wxPoint(left, top)); } - wxPoint GetMargins() const - { return DoGetMargins(); } - - - // implementation only - // ------------------- - - // generate the wxEVT_TEXT event for GetEditableWindow(), - // like SetValue() does and return true if the event was processed - // - // NB: this is public for wxRichTextCtrl use only right now, do not call it - static bool SendTextUpdatedEvent(wxWindow *win); - - // generate the wxEVT_TEXT event for this window - bool SendTextUpdatedEvent() - { - return SendTextUpdatedEvent(GetEditableWindow()); - } - - - // generate the wxEVT_TEXT event for this window if the - // events are not currently disabled - void SendTextUpdatedEventIfAllowed() - { - if ( EventsAllowed() ) - SendTextUpdatedEvent(); - } - - // this function is provided solely for the purpose of forwarding text - // change notifications state from one control to another, e.g. it can be - // used by a wxComboBox which derives from wxTextEntry if it delegates all - // of its methods to another wxTextCtrl - void ForwardEnableTextChangedEvents(bool enable) - { - // it's important to call the functions which update m_eventsBlock here - // and not just our own EnableTextChangedEvents() because our state - // (i.e. the result of EventsAllowed()) must change as well - if ( enable ) - ResumeTextChangedEvents(); - else - SuppressTextChangedEvents(); - } - - // change the entry value to be in upper case only, if needed (i.e. if it's - // not already the case) - void ConvertToUpperCase(); - -protected: - // flags for DoSetValue(): common part of SetValue() and ChangeValue() and - // also used to implement WriteText() in wxMSW - enum - { - SetValue_NoEvent = 0, - SetValue_SendEvent = 1, - SetValue_SelectionOnly = 2 - }; - - virtual void DoSetValue(const wxString& value, int flags); - virtual wxString DoGetValue() const = 0; - - // override this to return the associated window, it will be used for event - // generation and also by generic hints implementation - virtual wxWindow *GetEditableWindow() = 0; - - // margins functions - virtual bool DoSetMargins(const wxPoint& pt); - virtual wxPoint DoGetMargins() const; - - // the derived classes should override these virtual methods to implement - // auto-completion, they do the same thing as their public counterparts but - // have different names to allow overriding just one of them without hiding - // the other one(s) - virtual bool DoAutoCompleteStrings(const wxArrayString& WXUNUSED(choices)) - { return false; } - virtual bool DoAutoCompleteFileNames(int WXUNUSED(flags)) // wxFILE | wxDIR - { return false; } - virtual bool DoAutoCompleteCustom(wxTextCompleter *completer); - - - // class which should be used to temporarily disable text change events - // - // if suppress argument in ctor is false, nothing is done - class EventsSuppressor - { - public: - EventsSuppressor(wxTextEntryBase *text, bool suppress = true) - : m_text(text), - m_suppress(suppress) - { - if ( m_suppress ) - m_text->SuppressTextChangedEvents(); - } - - ~EventsSuppressor() - { - if ( m_suppress ) - m_text->ResumeTextChangedEvents(); - } - - private: - wxTextEntryBase *m_text; - bool m_suppress; - }; - - friend class EventsSuppressor; - -private: - // suppress or resume the text changed events generation: don't use these - // functions directly, use EventsSuppressor class above instead - void SuppressTextChangedEvents() - { - if ( !m_eventsBlock++ ) - EnableTextChangedEvents(false); - } - - void ResumeTextChangedEvents() - { - if ( !--m_eventsBlock ) - EnableTextChangedEvents(true); - } - - - // this must be overridden in the derived classes if our implementation of - // SetValue() or Replace() is used to disable (and enable back) generation - // of the text changed events - // - // initially the generation of the events is enabled - virtual void EnableTextChangedEvents(bool WXUNUSED(enable)) { } - - // return true if the events are currently not suppressed - bool EventsAllowed() const { return m_eventsBlock == 0; } - - - // if this counter is non-null, events are blocked - unsigned m_eventsBlock; - - // hint-related stuff, only allocated if/when SetHint() is used - wxTextEntryHintData *m_hintData; - - // It needs to call our Do{Get,Set}Value() to work with the real control - // contents. - friend class wxTextEntryHintData; -}; - -#ifdef __WXUNIVERSAL__ - // TODO: we need to use wxTextEntryDelegate here, but for now just prevent - // the GTK/MSW classes from being used in wxUniv build - class WXDLLIMPEXP_CORE wxTextEntry : public wxTextEntryBase - { - }; -#elif defined(__WXGTK20__) - #include "wx/gtk/textentry.h" -#elif defined(__WXMAC__) - #include "wx/osx/textentry.h" -#elif defined(__WXMSW__) - #include "wx/msw/textentry.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/textentry.h" -#elif defined(__WXQT__) - #include "wx/qt/textentry.h" -#else - // no platform-specific implementation of wxTextEntry yet - class WXDLLIMPEXP_CORE wxTextEntry : public wxTextEntryBase - { - }; -#endif - -#endif // _WX_TEXTENTRY_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textfile.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textfile.h deleted file mode 100644 index 64fefebc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textfile.h +++ /dev/null @@ -1,61 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/textfile.h -// Purpose: class wxTextFile to work with text files of _small_ size -// (file is fully loaded in memory) and which understands CR/LF -// differences between platforms. -// Author: Vadim Zeitlin -// Modified by: -// Created: 03.04.98 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTFILE_H -#define _WX_TEXTFILE_H - -#include "wx/defs.h" - -#include "wx/textbuf.h" - -#if wxUSE_TEXTFILE - -#include "wx/file.h" - -// ---------------------------------------------------------------------------- -// wxTextFile -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxTextFile : public wxTextBuffer -{ -public: - // constructors - wxTextFile() { } - wxTextFile(const wxString& strFileName); - -protected: - // implement the base class pure virtuals - virtual bool OnExists() const wxOVERRIDE; - virtual bool OnOpen(const wxString &strBufferName, - wxTextBufferOpenMode openMode) wxOVERRIDE; - virtual bool OnClose() wxOVERRIDE; - virtual bool OnRead(const wxMBConv& conv) wxOVERRIDE; - virtual bool OnWrite(wxTextFileType typeNew, const wxMBConv& conv) wxOVERRIDE; - -private: - - wxFile m_file; - - wxDECLARE_NO_COPY_CLASS(wxTextFile); -}; - -#else // !wxUSE_TEXTFILE - -// old code relies on the static methods of wxTextFile being always available -// and they still are available in wxTextBuffer (even if !wxUSE_TEXTBUFFER), so -// make it possible to use them in a backwards compatible way -typedef wxTextBuffer wxTextFile; - -#endif // wxUSE_TEXTFILE/!wxUSE_TEXTFILE - -#endif // _WX_TEXTFILE_H - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textwrapper.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textwrapper.h deleted file mode 100644 index 02e37bd2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/textwrapper.h +++ /dev/null @@ -1,128 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/textwrapper.h -// Purpose: declaration of wxTextWrapper class -// Author: Vadim Zeitlin -// Created: 2009-05-31 (extracted from dlgcmn.cpp via wx/private/stattext.h) -// Copyright: (c) 1999, 2009 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTWRAPPER_H_ -#define _WX_TEXTWRAPPER_H_ - -#include "wx/window.h" - -// ---------------------------------------------------------------------------- -// wxTextWrapper -// ---------------------------------------------------------------------------- - -// this class is used to wrap the text on word boundary: wrapping is done by -// calling OnStartLine() and OnOutputLine() functions -class WXDLLIMPEXP_CORE wxTextWrapper -{ -public: - wxTextWrapper() { m_eol = false; } - - // win is used for getting the font, text is the text to wrap, width is the - // max line width or -1 to disable wrapping - void Wrap(wxWindow *win, const wxString& text, int widthMax); - - // we don't need it, but just to avoid compiler warnings - virtual ~wxTextWrapper() { } - -protected: - // line may be empty - virtual void OnOutputLine(const wxString& line) = 0; - - // called at the start of every new line (except the very first one) - virtual void OnNewLine() { } - -private: - // call OnOutputLine() and set m_eol to true - void DoOutputLine(const wxString& line) - { - OnOutputLine(line); - - m_eol = true; - } - - // this function is a destructive inspector: when it returns true it also - // resets the flag to false so calling it again wouldn't return true any - // more - bool IsStartOfNewLine() - { - if ( !m_eol ) - return false; - - m_eol = false; - - return true; - } - - - bool m_eol; - - wxDECLARE_NO_COPY_CLASS(wxTextWrapper); -}; - -#if wxUSE_STATTEXT - -#include "wx/sizer.h" -#include "wx/stattext.h" - -// A class creating a sizer with one static text per line of text. Creation of -// the controls used for each line can be customized by overriding -// OnCreateLine() function. -// -// This class is currently private to wxWidgets and used only by wxDialog -// itself. We may make it public later if there is sufficient interest. -class wxTextSizerWrapper : public wxTextWrapper -{ -public: - wxTextSizerWrapper(wxWindow *win) - { - m_win = win; - m_hLine = 0; - } - - wxSizer *CreateSizer(const wxString& text, int widthMax) - { - m_sizer = new wxBoxSizer(wxVERTICAL); - Wrap(m_win, text, widthMax); - return m_sizer; - } - - wxWindow *GetParent() const { return m_win; } - -protected: - virtual wxWindow *OnCreateLine(const wxString& line) - { - return new wxStaticText(m_win, wxID_ANY, - wxControl::EscapeMnemonics(line)); - } - - virtual void OnOutputLine(const wxString& line) wxOVERRIDE - { - if ( !line.empty() ) - { - m_sizer->Add(OnCreateLine(line)); - } - else // empty line, no need to create a control for it - { - if ( !m_hLine ) - m_hLine = m_win->GetCharHeight(); - - m_sizer->Add(5, m_hLine); - } - } - -private: - wxWindow *m_win; - wxSizer *m_sizer; - int m_hLine; -}; - -#endif // wxUSE_STATTEXT - -#endif // _WX_TEXTWRAPPER_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tglbtn.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tglbtn.h deleted file mode 100644 index bb114466..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tglbtn.h +++ /dev/null @@ -1,99 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/tglbtn.h -// Purpose: This dummy header includes the proper header file for the -// system we're compiling under. -// Author: John Norris, minor changes by Axel Schlueter -// Modified by: -// Created: 08.02.01 -// Copyright: (c) 2000 Johnny C. Norris II -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TOGGLEBUTTON_H_BASE_ -#define _WX_TOGGLEBUTTON_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_TOGGLEBTN - -#include "wx/event.h" -#include "wx/anybutton.h" // base class - -extern WXDLLIMPEXP_DATA_CORE(const char) wxCheckBoxNameStr[]; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TOGGLEBUTTON, wxCommandEvent ); - -// ---------------------------------------------------------------------------- -// wxToggleButtonBase -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxToggleButtonBase : public wxAnyButton -{ -public: - wxToggleButtonBase() { } - - // Get/set the value - virtual void SetValue(bool state) = 0; - virtual bool GetValue() const = 0; - - // The current "normal" state for the toggle button depends upon its value. - virtual State GetNormalState() const wxOVERRIDE - { - return GetValue() ? State_Pressed : State_Normal; - } - - void UpdateWindowUI(long flags) wxOVERRIDE - { - wxControl::UpdateWindowUI(flags); - - if ( !IsShown() ) - return; - - wxWindow *tlw = wxGetTopLevelParent( this ); - if (tlw && wxPendingDelete.Member( tlw )) - return; - - wxUpdateUIEvent event( GetId() ); - event.SetEventObject(this); - - if (GetEventHandler()->ProcessEvent(event) ) - { - if ( event.GetSetChecked() ) - SetValue( event.GetChecked() ); - } - } - -protected: - wxDECLARE_NO_COPY_CLASS(wxToggleButtonBase); -}; - - -#define EVT_TOGGLEBUTTON(id, fn) \ - wx__DECLARE_EVT1(wxEVT_TOGGLEBUTTON, id, wxCommandEventHandler(fn)) - -#if defined(__WXUNIVERSAL__) - #include "wx/univ/tglbtn.h" -#elif defined(__WXMSW__) - #include "wx/msw/tglbtn.h" - #define wxHAS_BITMAPTOGGLEBUTTON -#elif defined(__WXGTK20__) - #include "wx/gtk/tglbtn.h" - #define wxHAS_BITMAPTOGGLEBUTTON -#elif defined(__WXGTK__) - #include "wx/gtk1/tglbtn.h" -# elif defined(__WXMOTIF__) - #include "wx/motif/tglbtn.h" -#elif defined(__WXMAC__) - #include "wx/osx/tglbtn.h" - #define wxHAS_BITMAPTOGGLEBUTTON -#elif defined(__WXQT__) - #include "wx/qt/tglbtn.h" -#endif - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_TOGGLEBUTTON_CLICKED wxEVT_TOGGLEBUTTON - -#endif // wxUSE_TOGGLEBTN - -#endif // _WX_TOGGLEBUTTON_H_BASE_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/thread.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/thread.h deleted file mode 100644 index 5ff109c9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/thread.h +++ /dev/null @@ -1,870 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/thread.h -// Purpose: Thread API -// Author: Guilhem Lavaux -// Modified by: Vadim Zeitlin (modifications partly inspired by omnithreads -// package from Olivetti & Oracle Research Laboratory) -// Created: 04/13/98 -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_THREAD_H_ -#define _WX_THREAD_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -// get the value of wxUSE_THREADS configuration flag -#include "wx/defs.h" - -#if wxUSE_THREADS - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -enum wxMutexError -{ - wxMUTEX_NO_ERROR = 0, // operation completed successfully - wxMUTEX_INVALID, // mutex hasn't been initialized - wxMUTEX_DEAD_LOCK, // mutex is already locked by the calling thread - wxMUTEX_BUSY, // mutex is already locked by another thread - wxMUTEX_UNLOCKED, // attempt to unlock a mutex which is not locked - wxMUTEX_TIMEOUT, // LockTimeout() has timed out - wxMUTEX_MISC_ERROR // any other error -}; - -enum wxCondError -{ - wxCOND_NO_ERROR = 0, - wxCOND_INVALID, - wxCOND_TIMEOUT, // WaitTimeout() has timed out - wxCOND_MISC_ERROR -}; - -enum wxSemaError -{ - wxSEMA_NO_ERROR = 0, - wxSEMA_INVALID, // semaphore hasn't been initialized successfully - wxSEMA_BUSY, // returned by TryWait() if Wait() would block - wxSEMA_TIMEOUT, // returned by WaitTimeout() - wxSEMA_OVERFLOW, // Post() would increase counter past the max - wxSEMA_MISC_ERROR -}; - -enum wxThreadError -{ - wxTHREAD_NO_ERROR = 0, // No error - wxTHREAD_NO_RESOURCE, // No resource left to create a new thread - wxTHREAD_RUNNING, // The thread is already running - wxTHREAD_NOT_RUNNING, // The thread isn't running - wxTHREAD_KILLED, // Thread we waited for had to be killed - wxTHREAD_MISC_ERROR // Some other error -}; - -enum wxThreadKind -{ - wxTHREAD_DETACHED, - wxTHREAD_JOINABLE -}; - -enum wxThreadWait -{ - wxTHREAD_WAIT_BLOCK, - wxTHREAD_WAIT_YIELD, // process events while waiting; MSW only - - // For compatibility reasons we use wxTHREAD_WAIT_YIELD by default as this - // was the default behaviour of wxMSW 2.8 but it should be avoided as it's - // dangerous and not portable. -#if WXWIN_COMPATIBILITY_2_8 - wxTHREAD_WAIT_DEFAULT = wxTHREAD_WAIT_YIELD -#else - wxTHREAD_WAIT_DEFAULT = wxTHREAD_WAIT_BLOCK -#endif -}; - -// Obsolete synonyms for wxPRIORITY_XXX for backwards compatibility-only -enum -{ - WXTHREAD_MIN_PRIORITY = wxPRIORITY_MIN, - WXTHREAD_DEFAULT_PRIORITY = wxPRIORITY_DEFAULT, - WXTHREAD_MAX_PRIORITY = wxPRIORITY_MAX -}; - -// There are 2 types of mutexes: normal mutexes and recursive ones. The attempt -// to lock a normal mutex by a thread which already owns it results in -// undefined behaviour (it always works under Windows, it will almost always -// result in a deadlock under Unix). Locking a recursive mutex in such -// situation always succeeds and it must be unlocked as many times as it has -// been locked. -// -// However recursive mutexes have several important drawbacks: first, in the -// POSIX implementation, they're less efficient. Second, and more importantly, -// they CAN NOT BE USED WITH CONDITION VARIABLES under Unix! Using them with -// wxCondition will work under Windows and some Unices (notably Linux) but will -// deadlock under other Unix versions (e.g. Solaris). As it might be difficult -// to ensure that a recursive mutex is not used with wxCondition, it is a good -// idea to avoid using recursive mutexes at all. Also, the last problem with -// them is that some (older) Unix versions don't support this at all -- which -// results in a configure warning when building and a deadlock when using them. -enum wxMutexType -{ - // normal mutex: try to always use this one - wxMUTEX_DEFAULT, - - // recursive mutex: don't use these ones with wxCondition - wxMUTEX_RECURSIVE -}; - -// forward declarations -class WXDLLIMPEXP_FWD_BASE wxThreadHelper; -class WXDLLIMPEXP_FWD_BASE wxConditionInternal; -class WXDLLIMPEXP_FWD_BASE wxMutexInternal; -class WXDLLIMPEXP_FWD_BASE wxSemaphoreInternal; -class WXDLLIMPEXP_FWD_BASE wxThreadInternal; - -// ---------------------------------------------------------------------------- -// A mutex object is a synchronization object whose state is set to signaled -// when it is not owned by any thread, and nonsignaled when it is owned. Its -// name comes from its usefulness in coordinating mutually-exclusive access to -// a shared resource. Only one thread at a time can own a mutex object. -// ---------------------------------------------------------------------------- - -// you should consider wxMutexLocker whenever possible instead of directly -// working with wxMutex class - it is safer -class WXDLLIMPEXP_BASE wxMutex -{ -public: - // constructor & destructor - // ------------------------ - - // create either default (always safe) or recursive mutex - wxMutex(wxMutexType mutexType = wxMUTEX_DEFAULT); - - // destroys the mutex kernel object - ~wxMutex(); - - // test if the mutex has been created successfully - bool IsOk() const; - - // mutex operations - // ---------------- - - // Lock the mutex, blocking on it until it is unlocked by the other thread. - // The result of locking a mutex already locked by the current thread - // depend on the mutex type. - // - // The caller must call Unlock() later if Lock() returned wxMUTEX_NO_ERROR. - wxMutexError Lock(); - - // Same as Lock() but return wxMUTEX_TIMEOUT if the mutex can't be locked - // during the given number of milliseconds - wxMutexError LockTimeout(unsigned long ms); - - // Try to lock the mutex: if it is currently locked, return immediately - // with an error. Otherwise the caller must call Unlock(). - wxMutexError TryLock(); - - // Unlock the mutex. It is an error to unlock an already unlocked mutex - wxMutexError Unlock(); - -protected: - wxMutexInternal *m_internal; - - friend class wxConditionInternal; - - wxDECLARE_NO_COPY_CLASS(wxMutex); -}; - -// a helper class which locks the mutex in the ctor and unlocks it in the dtor: -// this ensures that mutex is always unlocked, even if the function returns or -// throws an exception before it reaches the end -class WXDLLIMPEXP_BASE wxMutexLocker -{ -public: - // lock the mutex in the ctor - wxMutexLocker(wxMutex& mutex) - : m_isOk(false), m_mutex(mutex) - { m_isOk = ( m_mutex.Lock() == wxMUTEX_NO_ERROR ); } - - // returns true if mutex was successfully locked in ctor - bool IsOk() const - { return m_isOk; } - - // unlock the mutex in dtor - ~wxMutexLocker() - { if ( IsOk() ) m_mutex.Unlock(); } - -private: - // no assignment operator nor copy ctor - wxMutexLocker(const wxMutexLocker&); - wxMutexLocker& operator=(const wxMutexLocker&); - - bool m_isOk; - wxMutex& m_mutex; -}; - -// ---------------------------------------------------------------------------- -// Critical section: this is the same as mutex but is only visible to the -// threads of the same process. For the platforms which don't have native -// support for critical sections, they're implemented entirely in terms of -// mutexes. -// -// NB: wxCriticalSection object does not allocate any memory in its ctor -// which makes it possible to have static globals of this class -// ---------------------------------------------------------------------------- - -// in order to avoid any overhead under platforms where critical sections are -// just mutexes make all wxCriticalSection class functions inline -#if !defined(__WINDOWS__) - #define wxCRITSECT_IS_MUTEX 1 - - #define wxCRITSECT_INLINE WXEXPORT inline -#else // MSW - #define wxCRITSECT_IS_MUTEX 0 - - #define wxCRITSECT_INLINE -#endif // MSW/!MSW - -enum wxCriticalSectionType -{ - // recursive critical section - wxCRITSEC_DEFAULT, - - // non-recursive critical section - wxCRITSEC_NON_RECURSIVE -}; - -// you should consider wxCriticalSectionLocker whenever possible instead of -// directly working with wxCriticalSection class - it is safer -class WXDLLIMPEXP_BASE wxCriticalSection -{ -public: - // ctor & dtor - wxCRITSECT_INLINE wxCriticalSection( wxCriticalSectionType critSecType = wxCRITSEC_DEFAULT ); - wxCRITSECT_INLINE ~wxCriticalSection(); - // enter the section (the same as locking a mutex) - wxCRITSECT_INLINE void Enter(); - - // try to enter the section (the same as trying to lock a mutex) - wxCRITSECT_INLINE bool TryEnter(); - - // leave the critical section (same as unlocking a mutex) - wxCRITSECT_INLINE void Leave(); - -private: -#if wxCRITSECT_IS_MUTEX - wxMutex m_mutex; -#elif defined(__WINDOWS__) - // we can't allocate any memory in the ctor, so use placement new - - // unfortunately, we have to hardcode the sizeof() here because we can't - // include windows.h from this public header and we also have to use the - // union to force the correct (i.e. maximal) alignment - // - // if CRITICAL_SECTION size changes in Windows, you'll get an assert from - // thread.cpp and will need to increase the buffer size -#ifdef __WIN64__ - typedef char wxCritSectBuffer[40]; -#else // __WIN32__ - typedef char wxCritSectBuffer[24]; -#endif - union - { - unsigned long m_dummy1; - void *m_dummy2; - - wxCritSectBuffer m_buffer; - }; -#endif // Unix/Win32 - - wxDECLARE_NO_COPY_CLASS(wxCriticalSection); -}; - -#if wxCRITSECT_IS_MUTEX - // implement wxCriticalSection using mutexes - inline wxCriticalSection::wxCriticalSection( wxCriticalSectionType critSecType ) - : m_mutex( critSecType == wxCRITSEC_DEFAULT ? wxMUTEX_RECURSIVE : wxMUTEX_DEFAULT ) { } - inline wxCriticalSection::~wxCriticalSection() { } - - inline void wxCriticalSection::Enter() { (void)m_mutex.Lock(); } - inline bool wxCriticalSection::TryEnter() { return m_mutex.TryLock() == wxMUTEX_NO_ERROR; } - inline void wxCriticalSection::Leave() { (void)m_mutex.Unlock(); } -#endif // wxCRITSECT_IS_MUTEX - -#undef wxCRITSECT_INLINE -#undef wxCRITSECT_IS_MUTEX - -// wxCriticalSectionLocker is the same to critical sections as wxMutexLocker is -// to mutexes -class WXDLLIMPEXP_BASE wxCriticalSectionLocker -{ -public: - wxCriticalSectionLocker(wxCriticalSection& cs) - : m_critsect(cs) - { - m_critsect.Enter(); - } - - ~wxCriticalSectionLocker() - { - m_critsect.Leave(); - } - -private: - wxCriticalSection& m_critsect; - - wxDECLARE_NO_COPY_CLASS(wxCriticalSectionLocker); -}; - -// ---------------------------------------------------------------------------- -// wxCondition models a POSIX condition variable which allows one (or more) -// thread(s) to wait until some condition is fulfilled -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxCondition -{ -public: - // Each wxCondition object is associated with a (single) wxMutex object. - // The mutex object MUST be locked before calling Wait() - wxCondition(wxMutex& mutex); - - // dtor is not virtual, don't use this class polymorphically - ~wxCondition(); - - // return true if the condition has been created successfully - bool IsOk() const; - - // NB: the associated mutex MUST be locked beforehand by the calling thread - // - // it atomically releases the lock on the associated mutex - // and starts waiting to be woken up by a Signal()/Broadcast() - // once its signaled, then it will wait until it can reacquire - // the lock on the associated mutex object, before returning. - wxCondError Wait(); - - // std::condition_variable-like variant that evaluates the associated condition - template<typename Functor> - wxCondError Wait(const Functor& predicate) - { - while ( !predicate() ) - { - wxCondError e = Wait(); - if ( e != wxCOND_NO_ERROR ) - return e; - } - return wxCOND_NO_ERROR; - } - - // exactly as Wait() except that it may also return if the specified - // timeout elapses even if the condition hasn't been signalled: in this - // case, the return value is wxCOND_TIMEOUT, otherwise (i.e. in case of a - // normal return) it is wxCOND_NO_ERROR. - // - // the timeout parameter specifies an interval that needs to be waited for - // in milliseconds - wxCondError WaitTimeout(unsigned long milliseconds); - - // NB: the associated mutex may or may not be locked by the calling thread - // - // this method unblocks one thread if any are blocking on the condition. - // if no thread is blocking in Wait(), then the signal is NOT remembered - // The thread which was blocking on Wait() will then reacquire the lock - // on the associated mutex object before returning - wxCondError Signal(); - - // NB: the associated mutex may or may not be locked by the calling thread - // - // this method unblocks all threads if any are blocking on the condition. - // if no thread is blocking in Wait(), then the signal is NOT remembered - // The threads which were blocking on Wait() will then reacquire the lock - // on the associated mutex object before returning. - wxCondError Broadcast(); - -private: - wxConditionInternal *m_internal; - - wxDECLARE_NO_COPY_CLASS(wxCondition); -}; - -// ---------------------------------------------------------------------------- -// wxSemaphore: a counter limiting the number of threads concurrently accessing -// a shared resource -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxSemaphore -{ -public: - // specifying a maxcount of 0 actually makes wxSemaphore behave as if there - // is no upper limit, if maxcount is 1 the semaphore behaves as a mutex - wxSemaphore( int initialcount = 0, int maxcount = 0 ); - - // dtor is not virtual, don't use this class polymorphically - ~wxSemaphore(); - - // return true if the semaphore has been created successfully - bool IsOk() const; - - // wait indefinitely, until the semaphore count goes beyond 0 - // and then decrement it and return (this method might have been called - // Acquire()) - wxSemaError Wait(); - - // same as Wait(), but does not block, returns wxSEMA_NO_ERROR if - // successful and wxSEMA_BUSY if the count is currently zero - wxSemaError TryWait(); - - // same as Wait(), but as a timeout limit, returns wxSEMA_NO_ERROR if the - // semaphore was acquired and wxSEMA_TIMEOUT if the timeout has elapsed - wxSemaError WaitTimeout(unsigned long milliseconds); - - // increments the semaphore count and signals one of the waiting threads - wxSemaError Post(); - -private: - wxSemaphoreInternal *m_internal; - - wxDECLARE_NO_COPY_CLASS(wxSemaphore); -}; - -// ---------------------------------------------------------------------------- -// wxThread: class encapsulating a thread of execution -// ---------------------------------------------------------------------------- - -// there are two different kinds of threads: joinable and detached (default) -// ones. Only joinable threads can return a return code and only detached -// threads auto-delete themselves - the user should delete the joinable -// threads manually. - -// NB: in the function descriptions the words "this thread" mean the thread -// created by the wxThread object while "main thread" is the thread created -// during the process initialization (a.k.a. the GUI thread) - -// On VMS thread pointers are 64 bits (also needed for other systems??? -#ifdef __VMS - typedef unsigned long long wxThreadIdType; -#else - typedef unsigned long wxThreadIdType; -#endif - -class WXDLLIMPEXP_BASE wxThread -{ -public: - // the return type for the thread function - typedef void *ExitCode; - - // static functions - // Returns the wxThread object for the calling thread. NULL is returned - // if the caller is the main thread (but it's recommended to use - // IsMain() and only call This() for threads other than the main one - // because NULL is also returned on error). If the thread wasn't - // created with wxThread class, the returned value is undefined. - static wxThread *This(); - - // Returns true if current thread is the main thread. - // - // Notice that it also returns true if main thread id hadn't been - // initialized yet on the assumption that it's too early in wx startup - // process for any other threads to have been created in this case. - static bool IsMain() - { - return !ms_idMainThread || GetCurrentId() == ms_idMainThread; - } - - // Return the main thread id - static wxThreadIdType GetMainId() { return ms_idMainThread; } - - // Release the rest of our time slice letting the other threads run - static void Yield(); - - // Sleep during the specified period of time in milliseconds - // - // This is the same as wxMilliSleep(). - static void Sleep(unsigned long milliseconds); - - // get the number of system CPUs - useful with SetConcurrency() - // (the "best" value for it is usually number of CPUs + 1) - // - // Returns -1 if unknown, number of CPUs otherwise - static int GetCPUCount(); - - // Get the platform specific thread ID and return as a long. This - // can be used to uniquely identify threads, even if they are not - // wxThreads. This is used by wxPython. - static wxThreadIdType GetCurrentId(); - - // sets the concurrency level: this is, roughly, the number of threads - // the system tries to schedule to run in parallel. 0 means the - // default value (usually acceptable, but may not yield the best - // performance for this process) - // - // Returns true on success, false otherwise (if not implemented, for - // example) - static bool SetConcurrency(size_t level); - - // constructor only creates the C++ thread object and doesn't create (or - // start) the real thread - wxThread(wxThreadKind kind = wxTHREAD_DETACHED); - - // functions that change the thread state: all these can only be called - // from _another_ thread (typically the thread that created this one, e.g. - // the main thread), not from the thread itself - - // create a new thread and optionally set the stack size on - // platforms that support that - call Run() to start it - wxThreadError Create(unsigned int stackSize = 0); - - // starts execution of the thread - from the moment Run() is called - // the execution of wxThread::Entry() may start at any moment, caller - // shouldn't suppose that it starts after (or before) Run() returns. - wxThreadError Run(); - - // stops the thread if it's running and deletes the wxThread object if - // this is a detached thread freeing its memory - otherwise (for - // joinable threads) you still need to delete wxThread object - // yourself. - // - // this function only works if the thread calls TestDestroy() - // periodically - the thread will only be deleted the next time it - // does it! - // - // will fill the rc pointer with the thread exit code if it's !NULL - wxThreadError Delete(ExitCode *rc = NULL, - wxThreadWait waitMode = wxTHREAD_WAIT_DEFAULT); - - // waits for a joinable thread to finish and returns its exit code - // - // Returns (ExitCode)-1 on error (for example, if the thread is not - // joinable) - ExitCode Wait(wxThreadWait waitMode = wxTHREAD_WAIT_DEFAULT); - - // kills the thread without giving it any chance to clean up - should - // not be used under normal circumstances, use Delete() instead. - // It is a dangerous function that should only be used in the most - // extreme cases! - // - // The wxThread object is deleted by Kill() if the thread is - // detachable, but you still have to delete it manually for joinable - // threads. - wxThreadError Kill(); - - // pause a running thread: as Delete(), this only works if the thread - // calls TestDestroy() regularly - wxThreadError Pause(); - - // resume a paused thread - wxThreadError Resume(); - - // priority - // Sets the priority to "prio" which must be in 0..100 range (see - // also wxPRIORITY_XXX constants). - // - // NB: under MSW the priority can only be set after the thread is - // created (but possibly before it is launched) - void SetPriority(unsigned int prio); - - // Get the current priority. - unsigned int GetPriority() const; - - // thread status inquiries - // Returns true if the thread is alive: i.e. running or suspended - bool IsAlive() const; - // Returns true if the thread is running (not paused, not killed). - bool IsRunning() const; - // Returns true if the thread is suspended - bool IsPaused() const; - - // is the thread of detached kind? - bool IsDetached() const { return m_isDetached; } - - // Get the thread ID - a platform dependent number which uniquely - // identifies a thread inside a process - wxThreadIdType GetId() const; - -#ifdef __WINDOWS__ - // Get the internal OS handle - WXHANDLE MSWGetHandle() const; -#endif // __WINDOWS__ - - wxThreadKind GetKind() const - { return m_isDetached ? wxTHREAD_DETACHED : wxTHREAD_JOINABLE; } - - // Returns true if the thread was asked to terminate: this function should - // be called by the thread from time to time, otherwise the main thread - // will be left forever in Delete()! - virtual bool TestDestroy(); - - // dtor is public, but the detached threads should never be deleted - use - // Delete() instead (or leave the thread terminate by itself) - virtual ~wxThread(); - -protected: - // exits from the current thread - can be called only from this thread - void Exit(ExitCode exitcode = 0); - - // entry point for the thread - called by Run() and executes in the context - // of this thread. - virtual void *Entry() = 0; - - // use this to call the Entry() virtual method - void *CallEntry(); - - // Callbacks which may be overridden by the derived class to perform some - // specific actions when the thread is deleted or killed. By default they - // do nothing. - - // This one is called by Delete() before actually deleting the thread and - // is executed in the context of the thread that called Delete(). - virtual void OnDelete() {} - - // This one is called by Kill() before killing the thread and is executed - // in the context of the thread that called Kill(). - virtual void OnKill() {} - -private: - // no copy ctor/assignment operator - wxThread(const wxThread&); - wxThread& operator=(const wxThread&); - - // called when the thread exits - in the context of this thread - // - // NB: this function will not be called if the thread is Kill()ed - virtual void OnExit() { } - - friend class wxThreadInternal; - friend class wxThreadModule; - - - // the main thread identifier, should be set on startup - static wxThreadIdType ms_idMainThread; - - // the (platform-dependent) thread class implementation - wxThreadInternal *m_internal; - - // protects access to any methods of wxThreadInternal object - wxCriticalSection m_critsect; - - // true if the thread is detached, false if it is joinable - bool m_isDetached; -}; - -// wxThreadHelperThread class -// -------------------------- - -class WXDLLIMPEXP_BASE wxThreadHelperThread : public wxThread -{ -public: - // constructor only creates the C++ thread object and doesn't create (or - // start) the real thread - wxThreadHelperThread(wxThreadHelper& owner, wxThreadKind kind) - : wxThread(kind), m_owner(owner) - { } - -protected: - // entry point for the thread -- calls Entry() in owner. - virtual void *Entry() wxOVERRIDE; - -private: - // the owner of the thread - wxThreadHelper& m_owner; - - // no copy ctor/assignment operator - wxThreadHelperThread(const wxThreadHelperThread&); - wxThreadHelperThread& operator=(const wxThreadHelperThread&); -}; - -// ---------------------------------------------------------------------------- -// wxThreadHelper: this class implements the threading logic to run a -// background task in another object (such as a window). It is a mix-in: just -// derive from it to implement a threading background task in your class. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxThreadHelper -{ -private: - void KillThread() - { - // If wxThreadHelperThread is detached and is about to finish, it will - // set m_thread to NULL so don't delete it then. - // But if KillThread is called before wxThreadHelperThread (in detached mode) - // sets it to NULL, then the thread object still exists and can be killed - wxCriticalSectionLocker locker(m_critSection); - - if ( m_thread ) - { - m_thread->Kill(); - - if ( m_kind == wxTHREAD_JOINABLE ) - delete m_thread; - - m_thread = NULL; - } - } - -public: - // constructor only initializes m_thread to NULL - wxThreadHelper(wxThreadKind kind = wxTHREAD_JOINABLE) - : m_thread(NULL), m_kind(kind) { } - - // destructor deletes m_thread - virtual ~wxThreadHelper() { KillThread(); } - -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED( wxThreadError Create(unsigned int stackSize = 0) ); -#endif - - // create a new thread (and optionally set the stack size on platforms that - // support/need that), call Run() to start it - wxThreadError CreateThread(wxThreadKind kind = wxTHREAD_JOINABLE, - unsigned int stackSize = 0) - { - KillThread(); - - m_kind = kind; - m_thread = new wxThreadHelperThread(*this, m_kind); - - return m_thread->Create(stackSize); - } - - // entry point for the thread - called by Run() and executes in the context - // of this thread. - virtual void *Entry() = 0; - - // returns a pointer to the thread which can be used to call Run() - wxThread *GetThread() const - { - wxCriticalSectionLocker locker((wxCriticalSection&)m_critSection); - - wxThread* thread = m_thread; - - return thread; - } - -protected: - wxThread *m_thread; - wxThreadKind m_kind; - wxCriticalSection m_critSection; // To guard the m_thread variable - - friend class wxThreadHelperThread; -}; - -#if WXWIN_COMPATIBILITY_2_8 -inline wxThreadError wxThreadHelper::Create(unsigned int stackSize) -{ return CreateThread(m_kind, stackSize); } -#endif - -// call Entry() in owner, put it down here to avoid circular declarations -inline void *wxThreadHelperThread::Entry() -{ - void * const result = m_owner.Entry(); - - wxCriticalSectionLocker locker(m_owner.m_critSection); - - // Detached thread will be deleted after returning, so make sure - // wxThreadHelper::GetThread will not return an invalid pointer. - // And that wxThreadHelper::KillThread will not try to kill - // an already deleted thread - if ( m_owner.m_kind == wxTHREAD_DETACHED ) - m_owner.m_thread = NULL; - - return result; -} - -// ---------------------------------------------------------------------------- -// Automatic initialization -// ---------------------------------------------------------------------------- - -// GUI mutex handling. -void WXDLLIMPEXP_BASE wxMutexGuiEnter(); -void WXDLLIMPEXP_BASE wxMutexGuiLeave(); - -// macros for entering/leaving critical sections which may be used without -// having to take them inside "#if wxUSE_THREADS" -#define wxENTER_CRIT_SECT(cs) (cs).Enter() -#define wxLEAVE_CRIT_SECT(cs) (cs).Leave() -#define wxCRIT_SECT_DECLARE(cs) static wxCriticalSection cs -#define wxCRIT_SECT_DECLARE_MEMBER(cs) wxCriticalSection cs -#define wxCRIT_SECT_LOCKER(name, cs) wxCriticalSectionLocker name(cs) - -// function for checking if we're in the main thread which may be used whether -// wxUSE_THREADS is 0 or 1 -inline bool wxIsMainThread() { return wxThread::IsMain(); } - -#else // !wxUSE_THREADS - -// no thread support -inline void wxMutexGuiEnter() { } -inline void wxMutexGuiLeave() { } - -// macros for entering/leaving critical sections which may be used without -// having to take them inside "#if wxUSE_THREADS" -// (the implementation uses dummy structs to force semicolon after the macro) -#define wxENTER_CRIT_SECT(cs) do {} while (0) -#define wxLEAVE_CRIT_SECT(cs) do {} while (0) -#define wxCRIT_SECT_DECLARE(cs) struct wxDummyCS##cs -#define wxCRIT_SECT_DECLARE_MEMBER(cs) struct wxDummyCSMember##cs { } -#define wxCRIT_SECT_LOCKER(name, cs) struct wxDummyCSLocker##name - -// if there is only one thread, it is always the main one -inline bool wxIsMainThread() { return true; } - -#endif // wxUSE_THREADS/!wxUSE_THREADS - -// mark part of code as being a critical section: this macro declares a -// critical section with the given name and enters it immediately and leaves -// it at the end of the current scope -// -// example: -// -// int Count() -// { -// static int s_counter = 0; -// -// wxCRITICAL_SECTION(counter); -// -// return ++s_counter; -// } -// -// this function is MT-safe in presence of the threads but there is no -// overhead when the library is compiled without threads -#define wxCRITICAL_SECTION(name) \ - wxCRIT_SECT_DECLARE(s_cs##name); \ - wxCRIT_SECT_LOCKER(cs##name##Locker, s_cs##name) - -// automatically lock GUI mutex in ctor and unlock it in dtor -class WXDLLIMPEXP_BASE wxMutexGuiLocker -{ -public: - wxMutexGuiLocker() { wxMutexGuiEnter(); } - ~wxMutexGuiLocker() { wxMutexGuiLeave(); } -}; - -// ----------------------------------------------------------------------------- -// implementation only until the end of file -// ----------------------------------------------------------------------------- - -#if wxUSE_THREADS - -#if defined(__WINDOWS__) || defined(__DARWIN__) - // unlock GUI if there are threads waiting for and lock it back when - // there are no more of them - should be called periodically by the main - // thread - extern void WXDLLIMPEXP_BASE wxMutexGuiLeaveOrEnter(); - - // returns true if the main thread has GUI lock - extern bool WXDLLIMPEXP_BASE wxGuiOwnedByMainThread(); - - // wakes up the main thread if it's sleeping inside ::GetMessage() - extern void WXDLLIMPEXP_BASE wxWakeUpMainThread(); - -#ifndef __DARWIN__ - // return true if the main thread is waiting for some other to terminate: - // wxApp then should block all "dangerous" messages - extern bool WXDLLIMPEXP_BASE wxIsWaitingForThread(); -#endif -#endif // MSW, OS/2 - -#endif // wxUSE_THREADS - -#endif // _WX_THREAD_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/thrimpl.cpp b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/thrimpl.cpp deleted file mode 100644 index b8d2eae7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/thrimpl.cpp +++ /dev/null @@ -1,357 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/thrimpl.cpp -// Purpose: common part of wxThread Implementations -// Author: Vadim Zeitlin -// Modified by: -// Created: 04.06.02 (extracted from src/*/thread.cpp files) -// Copyright: (c) Vadim Zeitlin (2002) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// this file is supposed to be included only by the various thread.cpp - -// ---------------------------------------------------------------------------- -// wxMutex -// ---------------------------------------------------------------------------- - -wxMutex::wxMutex(wxMutexType mutexType) -{ - m_internal = new wxMutexInternal(mutexType); - - if ( !m_internal->IsOk() ) - { - delete m_internal; - m_internal = NULL; - } -} - -wxMutex::~wxMutex() -{ - delete m_internal; -} - -bool wxMutex::IsOk() const -{ - return m_internal != NULL; -} - -wxMutexError wxMutex::Lock() -{ - wxCHECK_MSG( m_internal, wxMUTEX_INVALID, - wxT("wxMutex::Lock(): not initialized") ); - - return m_internal->Lock(); -} - -wxMutexError wxMutex::LockTimeout(unsigned long ms) -{ - wxCHECK_MSG( m_internal, wxMUTEX_INVALID, - wxT("wxMutex::Lock(): not initialized") ); - - return m_internal->Lock(ms); -} - -wxMutexError wxMutex::TryLock() -{ - wxCHECK_MSG( m_internal, wxMUTEX_INVALID, - wxT("wxMutex::TryLock(): not initialized") ); - - return m_internal->TryLock(); -} - -wxMutexError wxMutex::Unlock() -{ - wxCHECK_MSG( m_internal, wxMUTEX_INVALID, - wxT("wxMutex::Unlock(): not initialized") ); - - return m_internal->Unlock(); -} - -// -------------------------------------------------------------------------- -// wxConditionInternal -// -------------------------------------------------------------------------- - -// Win32 and OS/2 don't have explicit support for the POSIX condition -// variables and their events/event semaphores have quite different semantics, -// so we reimplement the conditions from scratch using the mutexes and -// semaphores -#if defined(__WINDOWS__) - -class wxConditionInternal -{ -public: - wxConditionInternal(wxMutex& mutex); - - bool IsOk() const { return m_mutex.IsOk() && m_semaphore.IsOk(); } - - wxCondError Wait(); - wxCondError WaitTimeout(unsigned long milliseconds); - - wxCondError Signal(); - wxCondError Broadcast(); - -private: - // the number of threads currently waiting for this condition - LONG m_numWaiters; - - // the critical section protecting m_numWaiters - wxCriticalSection m_csWaiters; - - wxMutex& m_mutex; - wxSemaphore m_semaphore; - - wxDECLARE_NO_COPY_CLASS(wxConditionInternal); -}; - -wxConditionInternal::wxConditionInternal(wxMutex& mutex) - : m_mutex(mutex) -{ - // another thread can't access it until we return from ctor, so no need to - // protect access to m_numWaiters here - m_numWaiters = 0; -} - -wxCondError wxConditionInternal::Wait() -{ - // increment the number of waiters - { - wxCriticalSectionLocker lock(m_csWaiters); - m_numWaiters++; - } - - m_mutex.Unlock(); - - // after unlocking the mutex other threads may Signal() us, but it is ok - // now as we had already incremented m_numWaiters so Signal() will post the - // semaphore and decrement m_numWaiters back even if it is called before we - // start to Wait() - const wxSemaError err = m_semaphore.Wait(); - - m_mutex.Lock(); - - if ( err == wxSEMA_NO_ERROR ) - { - // m_numWaiters was decremented by Signal() - return wxCOND_NO_ERROR; - } - - // but in case of an error we need to do it manually - { - wxCriticalSectionLocker lock(m_csWaiters); - m_numWaiters--; - } - - return err == wxSEMA_TIMEOUT ? wxCOND_TIMEOUT : wxCOND_MISC_ERROR; -} - -wxCondError wxConditionInternal::WaitTimeout(unsigned long milliseconds) -{ - { - wxCriticalSectionLocker lock(m_csWaiters); - m_numWaiters++; - } - - m_mutex.Unlock(); - - wxSemaError err = m_semaphore.WaitTimeout(milliseconds); - - m_mutex.Lock(); - - if ( err == wxSEMA_NO_ERROR ) - return wxCOND_NO_ERROR; - - if ( err == wxSEMA_TIMEOUT ) - { - // a potential race condition exists here: it happens when a waiting - // thread times out but doesn't have time to decrement m_numWaiters yet - // before Signal() is called in another thread - // - // to handle this particular case, check the semaphore again after - // acquiring m_csWaiters lock -- this will catch the signals missed - // during this window - wxCriticalSectionLocker lock(m_csWaiters); - - err = m_semaphore.WaitTimeout(0); - if ( err == wxSEMA_NO_ERROR ) - return wxCOND_NO_ERROR; - - // we need to decrement m_numWaiters ourselves as it wasn't done by - // Signal() - m_numWaiters--; - - return err == wxSEMA_TIMEOUT ? wxCOND_TIMEOUT : wxCOND_MISC_ERROR; - } - - // undo m_numWaiters++ above in case of an error - { - wxCriticalSectionLocker lock(m_csWaiters); - m_numWaiters--; - } - - return wxCOND_MISC_ERROR; -} - -wxCondError wxConditionInternal::Signal() -{ - wxCriticalSectionLocker lock(m_csWaiters); - - if ( m_numWaiters > 0 ) - { - // increment the semaphore by 1 - if ( m_semaphore.Post() != wxSEMA_NO_ERROR ) - return wxCOND_MISC_ERROR; - - m_numWaiters--; - } - - return wxCOND_NO_ERROR; -} - -wxCondError wxConditionInternal::Broadcast() -{ - wxCriticalSectionLocker lock(m_csWaiters); - - while ( m_numWaiters > 0 ) - { - if ( m_semaphore.Post() != wxSEMA_NO_ERROR ) - return wxCOND_MISC_ERROR; - - m_numWaiters--; - } - - return wxCOND_NO_ERROR; -} - -#endif // __WINDOWS__ - -// ---------------------------------------------------------------------------- -// wxCondition -// ---------------------------------------------------------------------------- - -wxCondition::wxCondition(wxMutex& mutex) -{ - m_internal = new wxConditionInternal(mutex); - - if ( !m_internal->IsOk() ) - { - delete m_internal; - m_internal = NULL; - } -} - -wxCondition::~wxCondition() -{ - delete m_internal; -} - -bool wxCondition::IsOk() const -{ - return m_internal != NULL; -} - -wxCondError wxCondition::Wait() -{ - wxCHECK_MSG( m_internal, wxCOND_INVALID, - wxT("wxCondition::Wait(): not initialized") ); - - return m_internal->Wait(); -} - -wxCondError wxCondition::WaitTimeout(unsigned long milliseconds) -{ - wxCHECK_MSG( m_internal, wxCOND_INVALID, - wxT("wxCondition::Wait(): not initialized") ); - - return m_internal->WaitTimeout(milliseconds); -} - -wxCondError wxCondition::Signal() -{ - wxCHECK_MSG( m_internal, wxCOND_INVALID, - wxT("wxCondition::Signal(): not initialized") ); - - return m_internal->Signal(); -} - -wxCondError wxCondition::Broadcast() -{ - wxCHECK_MSG( m_internal, wxCOND_INVALID, - wxT("wxCondition::Broadcast(): not initialized") ); - - return m_internal->Broadcast(); -} - -// -------------------------------------------------------------------------- -// wxSemaphore -// -------------------------------------------------------------------------- - -wxSemaphore::wxSemaphore(int initialcount, int maxcount) -{ - m_internal = new wxSemaphoreInternal( initialcount, maxcount ); - if ( !m_internal->IsOk() ) - { - delete m_internal; - m_internal = NULL; - } -} - -wxSemaphore::~wxSemaphore() -{ - delete m_internal; -} - -bool wxSemaphore::IsOk() const -{ - return m_internal != NULL; -} - -wxSemaError wxSemaphore::Wait() -{ - wxCHECK_MSG( m_internal, wxSEMA_INVALID, - wxT("wxSemaphore::Wait(): not initialized") ); - - return m_internal->Wait(); -} - -wxSemaError wxSemaphore::TryWait() -{ - wxCHECK_MSG( m_internal, wxSEMA_INVALID, - wxT("wxSemaphore::TryWait(): not initialized") ); - - return m_internal->TryWait(); -} - -wxSemaError wxSemaphore::WaitTimeout(unsigned long milliseconds) -{ - wxCHECK_MSG( m_internal, wxSEMA_INVALID, - wxT("wxSemaphore::WaitTimeout(): not initialized") ); - - return m_internal->WaitTimeout(milliseconds); -} - -wxSemaError wxSemaphore::Post() -{ - wxCHECK_MSG( m_internal, wxSEMA_INVALID, - wxT("wxSemaphore::Post(): not initialized") ); - - return m_internal->Post(); -} - -// ---------------------------------------------------------------------------- -// wxThread -// ---------------------------------------------------------------------------- - -#include "wx/utils.h" -#include "wx/private/threadinfo.h" -#include "wx/scopeguard.h" - -void wxThread::Sleep(unsigned long milliseconds) -{ - wxMilliSleep(milliseconds); -} - -void *wxThread::CallEntry() -{ - wxON_BLOCK_EXIT0(wxThreadSpecificInfo::ThreadCleanUp); - return Entry(); -} diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/time.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/time.h deleted file mode 100644 index 918da125..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/time.h +++ /dev/null @@ -1,76 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/time.h -// Purpose: Miscellaneous time-related functions. -// Author: Vadim Zeitlin -// Created: 2011-11-26 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TIME_H_ -#define _WX_TIME_H_ - -#include "wx/longlong.h" - -// Returns the difference between UTC and local time in seconds. -WXDLLIMPEXP_BASE int wxGetTimeZone(); - -// Get number of seconds since local time 00:00:00 Jan 1st 1970. -extern long WXDLLIMPEXP_BASE wxGetLocalTime(); - -// Get number of seconds since GMT 00:00:00, Jan 1st 1970. -extern long WXDLLIMPEXP_BASE wxGetUTCTime(); - -#if wxUSE_LONGLONG - typedef wxLongLong wxMilliClock_t; - inline long wxMilliClockToLong(wxLongLong ll) { return ll.ToLong(); } -#else - typedef double wxMilliClock_t; - inline long wxMilliClockToLong(double d) { return wx_truncate_cast(long, d); } -#endif // wxUSE_LONGLONG - -// Get number of milliseconds since local time 00:00:00 Jan 1st 1970 -extern wxMilliClock_t WXDLLIMPEXP_BASE wxGetLocalTimeMillis(); - -#if wxUSE_LONGLONG - -// Get the number of milliseconds or microseconds since the Epoch. -wxLongLong WXDLLIMPEXP_BASE wxGetUTCTimeMillis(); -wxLongLong WXDLLIMPEXP_BASE wxGetUTCTimeUSec(); - -#endif // wxUSE_LONGLONG - -#define wxGetCurrentTime() wxGetLocalTime() - -// on some really old systems gettimeofday() doesn't have the second argument, -// define wxGetTimeOfDay() to hide this difference -#ifdef HAVE_GETTIMEOFDAY - #ifdef WX_GETTIMEOFDAY_NO_TZ - #define wxGetTimeOfDay(tv) gettimeofday(tv) - #else - #define wxGetTimeOfDay(tv) gettimeofday((tv), NULL) - #endif -#endif // HAVE_GETTIMEOFDAY - -/* Two wrapper functions for thread safety */ -#ifdef HAVE_LOCALTIME_R -#define wxLocaltime_r localtime_r -#else -WXDLLIMPEXP_BASE struct tm *wxLocaltime_r(const time_t*, struct tm*); -#if wxUSE_THREADS && !defined(__WINDOWS__) - // On Windows, localtime _is_ threadsafe! -#warning using pseudo thread-safe wrapper for localtime to emulate localtime_r -#endif -#endif - -#ifdef HAVE_GMTIME_R -#define wxGmtime_r gmtime_r -#else -WXDLLIMPEXP_BASE struct tm *wxGmtime_r(const time_t*, struct tm*); -#if wxUSE_THREADS && !defined(__WINDOWS__) - // On Windows, gmtime _is_ threadsafe! -#warning using pseudo thread-safe wrapper for gmtime to emulate gmtime_r -#endif -#endif - -#endif // _WX_TIME_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/timectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/timectrl.h deleted file mode 100644 index 928d9aed..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/timectrl.h +++ /dev/null @@ -1,124 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/timectrl.h -// Purpose: Declaration of wxTimePickerCtrl class. -// Author: Vadim Zeitlin -// Created: 2011-09-22 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TIMECTRL_H_ -#define _WX_TIMECTRL_H_ - -#include "wx/defs.h" - -#if wxUSE_TIMEPICKCTRL - -#include "wx/datetimectrl.h" - -#define wxTimePickerCtrlNameStr wxS("timectrl") - -// No special styles are currently defined for this control but still define a -// symbolic constant for the default style for consistency. -enum -{ - wxTP_DEFAULT = 0 -}; - -// ---------------------------------------------------------------------------- -// wxTimePickerCtrl: Allow the user to enter the time. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxTimePickerCtrlBase : public wxDateTimePickerCtrl -{ -public: - /* - The derived classes should implement ctor and Create() method with the - following signature: - - bool Create(wxWindow *parent, - wxWindowID id, - const wxDateTime& dt = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTP_DEFAULT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTimePickerCtrlNameStr); - */ - - /* - We also inherit Set/GetValue() methods from the base class which define - our public API. Notice that the date portion of the date passed as - input or received as output is or should be ignored, only the time part - of wxDateTime objects is really significant here. Use Set/GetTime() - below for possibly simpler interface. - */ - - // Set the given time. - bool SetTime(int hour, int min, int sec) - { - // Notice that we should use a date on which DST doesn't change to - // avoid any problems with time discontinuity so use a fixed date (on - // which nobody changes DST) instead of e.g. today. - wxDateTime dt(1, wxDateTime::Jan, 2012, hour, min, sec); - if ( !dt.IsValid() ) - { - // No need to assert here, wxDateTime already does it for us. - return false; - } - - SetValue(dt); - - return true; - } - - // Get the current time components. All pointers must be non-NULL. - bool GetTime(int* hour, int* min, int* sec) const - { - wxCHECK_MSG( hour && min && sec, false, - wxS("Time component pointers must be non-NULL") ); - - const wxDateTime::Tm tm = GetValue().GetTm(); - *hour = tm.hour; - *min = tm.min; - *sec = tm.sec; - - return true; - } -}; - -#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__) - #include "wx/msw/timectrl.h" - - #define wxHAS_NATIVE_TIMEPICKERCTRL -#elif defined(__WXOSX_COCOA__) && !defined(__WXUNIVERSAL__) - #include "wx/osx/timectrl.h" - - #define wxHAS_NATIVE_TIMEPICKERCTRL -#else - #include "wx/generic/timectrl.h" - - class WXDLLIMPEXP_ADV wxTimePickerCtrl : public wxTimePickerCtrlGeneric - { - public: - wxTimePickerCtrl() { } - wxTimePickerCtrl(wxWindow *parent, - wxWindowID id, - const wxDateTime& date = wxDefaultDateTime, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTP_DEFAULT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTimePickerCtrlNameStr) - : wxTimePickerCtrlGeneric(parent, id, date, pos, size, style, validator, name) - { - } - - private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxTimePickerCtrl); - }; -#endif - -#endif // wxUSE_TIMEPICKCTRL - -#endif // _WX_TIMECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/timer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/timer.h deleted file mode 100644 index 956cc2a8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/timer.h +++ /dev/null @@ -1,196 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/timer.h -// Purpose: wxTimer, wxStopWatch and global time-related functions -// Author: Julian Smart -// Modified by: Vadim Zeitlin (wxTimerBase) -// Guillermo Rodriguez (global clean up) -// Created: 04/01/98 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TIMER_H_BASE_ -#define _WX_TIMER_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_TIMER - -#include "wx/object.h" -#include "wx/longlong.h" -#include "wx/event.h" -#include "wx/stopwatch.h" // for backwards compatibility -#include "wx/utils.h" - - -// more readable flags for Start(): - -// generate notifications periodically until the timer is stopped (default) -#define wxTIMER_CONTINUOUS false - -// only send the notification once and then stop the timer -#define wxTIMER_ONE_SHOT true - -class WXDLLIMPEXP_FWD_BASE wxTimerImpl; -class WXDLLIMPEXP_FWD_BASE wxTimerEvent; - -// timer event type -wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_BASE, wxEVT_TIMER, wxTimerEvent); - -// the interface of wxTimer class -class WXDLLIMPEXP_BASE wxTimer : public wxEvtHandler -{ -public: - // ctors and initializers - // ---------------------- - - // default: if you don't call SetOwner(), your only chance to get timer - // notifications is to override Notify() in the derived class - wxTimer() - { - Init(); - SetOwner(this); - } - - // ctor which allows to avoid having to override Notify() in the derived - // class: the owner will get timer notifications which can be handled with - // EVT_TIMER - wxTimer(wxEvtHandler *owner, int timerid = wxID_ANY) - { - Init(); - SetOwner(owner, timerid); - } - - // same as ctor above - void SetOwner(wxEvtHandler *owner, int timerid = wxID_ANY); - - virtual ~wxTimer(); - - - // working with the timer - // ---------------------- - - // NB: Start() and Stop() are not supposed to be overridden, they are only - // virtual for historical reasons, only Notify() can be overridden - - // start the timer: if milliseconds == -1, use the same value as for the - // last Start() - // - // it is now valid to call Start() multiple times: this just restarts the - // timer if it is already running - virtual bool Start(int milliseconds = -1, bool oneShot = false); - - // start the timer for one iteration only, this is just a simple wrapper - // for Start() - bool StartOnce(int milliseconds = -1) { return Start(milliseconds, true); } - - // stop the timer, does nothing if the timer is not running - virtual void Stop(); - - // override this in your wxTimer-derived class if you want to process timer - // messages in it, use non default ctor or SetOwner() otherwise - virtual void Notify(); - - - // accessors - // --------- - - // get the object notified about the timer events - wxEvtHandler *GetOwner() const; - - // return true if the timer is running - bool IsRunning() const; - - // return the timer ID - int GetId() const; - - // get the (last) timer interval in milliseconds - int GetInterval() const; - - // return true if the timer is one shot - bool IsOneShot() const; - -protected: - // common part of all ctors - void Init(); - - wxTimerImpl *m_impl; - - wxDECLARE_NO_COPY_CLASS(wxTimer); -}; - -// ---------------------------------------------------------------------------- -// wxTimerRunner: starts the timer in its ctor, stops in the dtor -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxTimerRunner -{ -public: - wxTimerRunner(wxTimer& timer) : m_timer(timer) { } - wxTimerRunner(wxTimer& timer, int milli, bool oneShot = false) - : m_timer(timer) - { - m_timer.Start(milli, oneShot); - } - - void Start(int milli, bool oneShot = false) - { - m_timer.Start(milli, oneShot); - } - - ~wxTimerRunner() - { - if ( m_timer.IsRunning() ) - { - m_timer.Stop(); - } - } - -private: - wxTimer& m_timer; - - wxDECLARE_NO_COPY_CLASS(wxTimerRunner); -}; - -// ---------------------------------------------------------------------------- -// wxTimerEvent -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxTimerEvent : public wxEvent -{ -public: - wxTimerEvent() - : wxEvent(wxID_ANY, wxEVT_TIMER) { m_timer=NULL; } - - wxTimerEvent(wxTimer& timer) - : wxEvent(timer.GetId(), wxEVT_TIMER), - m_timer(&timer) - { - SetEventObject(timer.GetOwner()); - } - - // accessors - int GetInterval() const { return m_timer->GetInterval(); } - wxTimer& GetTimer() const { return *m_timer; } - - // implement the base class pure virtual - virtual wxEvent *Clone() const wxOVERRIDE { return new wxTimerEvent(*this); } - virtual wxEventCategory GetEventCategory() const wxOVERRIDE { return wxEVT_CATEGORY_TIMER; } - -private: - wxTimer* m_timer; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxTimerEvent); -}; - -typedef void (wxEvtHandler::*wxTimerEventFunction)(wxTimerEvent&); - -#define wxTimerEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxTimerEventFunction, func) - -#define EVT_TIMER(timerid, func) \ - wx__DECLARE_EVT1(wxEVT_TIMER, timerid, wxTimerEventHandler(func)) - -#endif // wxUSE_TIMER - -#endif // _WX_TIMER_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tipdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tipdlg.h deleted file mode 100644 index 173bbf41..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tipdlg.h +++ /dev/null @@ -1,86 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/tipdlg.h -// Purpose: declaration of wxTipDialog -// Author: Vadim Zeitlin -// Modified by: -// Created: 28.06.99 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TIPDLG_H_ -#define _WX_TIPDLG_H_ - -// ---------------------------------------------------------------------------- -// headers which we must include here -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_STARTUP_TIPS - -#include "wx/textfile.h" - -// ---------------------------------------------------------------------------- -// wxTipProvider - a class which is used by wxTipDialog to get the text of the -// tips -// ---------------------------------------------------------------------------- - -// the abstract base class: it provides the tips, i.e. implements the GetTip() -// function which returns the new tip each time it's called. To support this, -// wxTipProvider evidently needs some internal state which is the tip "index" -// and which should be saved/restored by the program to not always show one and -// the same tip (of course, you may use random starting position as well...) -class WXDLLIMPEXP_ADV wxTipProvider -{ -public: - wxTipProvider(size_t currentTip) { m_currentTip = currentTip; } - - // get the current tip and update the internal state to return the next tip - // when called for the next time - virtual wxString GetTip() = 0; - - // get the current tip "index" (or whatever allows the tip provider to know - // from where to start the next time) - size_t GetCurrentTip() const { return m_currentTip; } - - // virtual dtor for the base class - virtual ~wxTipProvider() { } - - -#if WXWIN_COMPATIBILITY_3_0 - wxDEPRECATED_MSG("this method does nothing, simply don't call it") - wxString PreprocessTip(const wxString& tip) { return tip; } -#endif - -protected: - size_t m_currentTip; -}; - -// a function which returns an implementation of wxTipProvider using the -// specified text file as the source of tips (each line is a tip). -// -// NB: the caller is responsible for deleting the pointer! -#if wxUSE_TEXTFILE -WXDLLIMPEXP_ADV wxTipProvider *wxCreateFileTipProvider(const wxString& filename, - size_t currentTip); -#endif // wxUSE_TEXTFILE - -// ---------------------------------------------------------------------------- -// wxTipDialog -// ---------------------------------------------------------------------------- - -// A dialog which shows a "tip" - a short and helpful messages describing to -// the user some program characteristic. Many programs show the tips at -// startup, so the dialog has "Show tips on startup" checkbox which allows to -// the user to disable this (however, it's the program which should show, or -// not, the dialog on startup depending on its value, not this class). -// -// The function returns true if this checkbox is checked, false otherwise. -WXDLLIMPEXP_ADV bool wxShowTip(wxWindow *parent, - wxTipProvider *tipProvider, - bool showAtStartup = true); - -#endif // wxUSE_STARTUP_TIPS - -#endif // _WX_TIPDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tipwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tipwin.h deleted file mode 100644 index 08c0957e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tipwin.h +++ /dev/null @@ -1,97 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/tipwin.h -// Purpose: wxTipWindow is a window like the one typically used for -// showing the tooltips -// Author: Vadim Zeitlin -// Modified by: -// Created: 10.09.00 -// Copyright: (c) 2000 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TIPWIN_H_ -#define _WX_TIPWIN_H_ - -#if wxUSE_TIPWINDOW - -#if wxUSE_POPUPWIN - #include "wx/popupwin.h" - - #define wxTipWindowBase wxPopupTransientWindow -#else - #include "wx/frame.h" - - #define wxTipWindowBase wxFrame -#endif -#include "wx/arrstr.h" - -class WXDLLIMPEXP_FWD_CORE wxTipWindowView; - -// ---------------------------------------------------------------------------- -// wxTipWindow -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTipWindow : public wxTipWindowBase -{ -public: - // the mandatory ctor parameters are: the parent window and the text to - // show - // - // optionally you may also specify the length at which the lines are going - // to be broken in rows (100 pixels by default) - // - // windowPtr and rectBound are just passed to SetTipWindowPtr() and - // SetBoundingRect() - see below - wxTipWindow(wxWindow *parent, - const wxString& text, - wxCoord maxLength = 100, - wxTipWindow** windowPtr = NULL, - wxRect *rectBound = NULL); - - virtual ~wxTipWindow(); - - // If windowPtr is not NULL the given address will be NULLed when the - // window has closed - void SetTipWindowPtr(wxTipWindow** windowPtr) { m_windowPtr = windowPtr; } - - // If rectBound is not NULL, the window will disappear automatically when - // the mouse leave the specified rect: note that rectBound should be in the - // screen coordinates! - void SetBoundingRect(const wxRect& rectBound); - - // Hide and destroy the window - void Close(); - -protected: - // called by wxTipWindowView only - bool CheckMouseInBounds(const wxPoint& pos); - - // event handlers - void OnMouseClick(wxMouseEvent& event); - -#if !wxUSE_POPUPWIN - void OnActivate(wxActivateEvent& event); - void OnKillFocus(wxFocusEvent& event); -#else // wxUSE_POPUPWIN - virtual void OnDismiss() wxOVERRIDE; -#endif // wxUSE_POPUPWIN/!wxUSE_POPUPWIN - -private: - wxArrayString m_textLines; - wxCoord m_heightLine; - - wxTipWindowView *m_view; - - wxTipWindow** m_windowPtr; - wxRect m_rectBound; - - wxDECLARE_EVENT_TABLE(); - - friend class wxTipWindowView; - - wxDECLARE_NO_COPY_CLASS(wxTipWindow); -}; - -#endif // wxUSE_TIPWINDOW - -#endif // _WX_TIPWIN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tls.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tls.h deleted file mode 100644 index 7e759228..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tls.h +++ /dev/null @@ -1,143 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/tls.h -// Purpose: Implementation of thread local storage -// Author: Vadim Zeitlin -// Created: 2008-08-08 -// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TLS_H_ -#define _WX_TLS_H_ - -#include "wx/defs.h" - -// ---------------------------------------------------------------------------- -// check for compiler support of thread-specific variables -// ---------------------------------------------------------------------------- - -// when not using threads at all, there is no need for thread-specific -// values to be really thread-specific -#if !wxUSE_THREADS - #define wxHAS_COMPILER_TLS - #define wxTHREAD_SPECIFIC_DECL -// otherwise try to find the compiler-specific way to handle TLS unless -// explicitly disabled by setting wxUSE_COMPILER_TLS to 0 (it is 1 by default). -#elif wxUSE_COMPILER_TLS -// __thread keyword is not supported correctly by MinGW, at least in some -// configurations, see http://sourceforge.net/support/tracker.php?aid=2837047 -// and when in doubt we prefer to not use it at all. -#if defined(HAVE___THREAD_KEYWORD) && !defined(__MINGW32__) - #define wxHAS_COMPILER_TLS - #define wxTHREAD_SPECIFIC_DECL __thread -// MSVC has its own version which might be supported by some other Windows -// compilers, to be tested -#elif defined(__VISUALC__) - #define wxHAS_COMPILER_TLS - #define wxTHREAD_SPECIFIC_DECL __declspec(thread) -#endif // compilers -#endif // wxUSE_COMPILER_TLS - -// ---------------------------------------------------------------------------- -// define wxTLS_TYPE() -// ---------------------------------------------------------------------------- - -#ifdef wxHAS_COMPILER_TLS - #define wxTLS_TYPE(T) wxTHREAD_SPECIFIC_DECL T - #define wxTLS_TYPE_REF(T) T& - #define wxTLS_PTR(var) (&(var)) - #define wxTLS_VALUE(var) (var) -#else // !wxHAS_COMPILER_TLS - - extern "C" - { - typedef void (*wxTlsDestructorFunction)(void*); - } - - #if defined(__WINDOWS__) - #include "wx/msw/tls.h" - #elif defined(__UNIX__) - #include "wx/unix/tls.h" - #else - // TODO: we could emulate TLS for such platforms... - #error Neither compiler nor OS support thread-specific variables. - #endif - - #include <stdlib.h> // for calloc() - - // wxTlsValue<T> represents a thread-specific value of type T but, unlike - // with native compiler thread-specific variables, it behaves like a - // (never NULL) pointer to T and so needs to be dereferenced before use - // - // Note: T must be a POD! - // - // Note: On Unix, thread-specific T value is freed when the thread exits. - // On Windows, thread-specific values are freed later, when given - // wxTlsValue<T> is destroyed. The only exception to this is the - // value for the main thread, which is always freed when - // wxTlsValue<T> is destroyed. - template <typename T> - class wxTlsValue - { - public: - typedef T ValueType; - - // ctor doesn't do anything, the object is created on first access - wxTlsValue() : m_key(free) {} - - // dtor is only called in the main thread context and so is not enough - // to free memory allocated by us for the other threads, we use - // destructor function when using Pthreads for this (which is not - // called for the main thread as it doesn't call pthread_exit() but - // just to be safe we also reset the key anyhow) - ~wxTlsValue() - { - if ( m_key.Get() ) - m_key.Set(NULL); // this deletes the value - } - - // access the object creating it on demand - ValueType *Get() - { - void *value = m_key.Get(); - if ( !value ) - { - // ValueType must be POD to be used in wxHAS_COMPILER_TLS case - // anyhow (at least gcc doesn't accept non-POD values being - // declared with __thread) so initialize it as a POD too - value = calloc(1, sizeof(ValueType)); - - if ( !m_key.Set(value) ) - { - free(value); - - // this will probably result in a crash in the caller but - // it's arguably better to crash immediately instead of - // slowly dying from out-of-memory errors which would - // happen as the next access to this object would allocate - // another ValueType instance and so on forever - value = NULL; - } - } - - return static_cast<ValueType *>(value); - } - - // pointer-like accessors - ValueType *operator->() { return Get(); } - ValueType& operator*() { return *Get(); } - - private: - wxTlsKey m_key; - - wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxTlsValue, T); - }; - - #define wxTLS_TYPE(T) wxTlsValue<T> - #define wxTLS_TYPE_REF(T) wxTLS_TYPE(T)& - #define wxTLS_PTR(var) ((var).Get()) - #define wxTLS_VALUE(var) (*(var)) -#endif // wxHAS_COMPILER_TLS/!wxHAS_COMPILER_TLS - -#endif // _WX_TLS_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tokenzr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tokenzr.h deleted file mode 100644 index 45f91a0a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tokenzr.h +++ /dev/null @@ -1,153 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/tokenzr.h -// Purpose: String tokenizer - a C++ replacement for strtok(3) -// Author: Guilhem Lavaux -// Modified by: (or rather rewritten by) Vadim Zeitlin -// Created: 04/22/98 -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TOKENZRH -#define _WX_TOKENZRH - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/arrstr.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// default: delimiters are usual white space characters -#define wxDEFAULT_DELIMITERS (wxT(" \t\r\n")) - -// wxStringTokenizer mode flags which determine its behaviour -enum wxStringTokenizerMode -{ - wxTOKEN_INVALID = -1, // set by def ctor until SetString() is called - wxTOKEN_DEFAULT, // strtok() for whitespace delims, RET_EMPTY else - wxTOKEN_RET_EMPTY, // return empty token in the middle of the string - wxTOKEN_RET_EMPTY_ALL, // return trailing empty tokens too - wxTOKEN_RET_DELIMS, // return the delim with token (implies RET_EMPTY) - wxTOKEN_STRTOK // behave exactly like strtok(3) -}; - -// ---------------------------------------------------------------------------- -// wxStringTokenizer: replaces infamous strtok() and has some other features -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxStringTokenizer : public wxObject -{ -public: - // ctors and initializers - // default ctor, call SetString() later - wxStringTokenizer() { m_mode = wxTOKEN_INVALID; } - // ctor which gives us the string - wxStringTokenizer(const wxString& str, - const wxString& delims = wxDEFAULT_DELIMITERS, - wxStringTokenizerMode mode = wxTOKEN_DEFAULT); - // copy ctor and assignment operator - wxStringTokenizer(const wxStringTokenizer& src); - wxStringTokenizer& operator=(const wxStringTokenizer& src); - - // args are same as for the non default ctor above - void SetString(const wxString& str, - const wxString& delims = wxDEFAULT_DELIMITERS, - wxStringTokenizerMode mode = wxTOKEN_DEFAULT); - - // reinitialize the tokenizer with the same delimiters/mode - void Reinit(const wxString& str); - - // tokens access - // return the number of remaining tokens - size_t CountTokens() const; - // did we reach the end of the string? - bool HasMoreTokens() const; - // get the next token, will return empty string if !HasMoreTokens() - wxString GetNextToken(); - // get the delimiter which terminated the token last retrieved by - // GetNextToken() or NUL if there had been no tokens yet or the last - // one wasn't terminated (but ran to the end of the string) - wxChar GetLastDelimiter() const { return m_lastDelim; } - - // get current tokenizer state - // returns the part of the string which remains to tokenize (*not* the - // initial string) - wxString GetString() const { return wxString(m_pos, m_string.end()); } - - // returns the current position (i.e. one index after the last - // returned token or 0 if GetNextToken() has never been called) in the - // original string - size_t GetPosition() const { return m_pos - m_string.begin(); } - - // misc - // get the current mode - can be different from the one passed to the - // ctor if it was wxTOKEN_DEFAULT - wxStringTokenizerMode GetMode() const { return m_mode; } - // do we return empty tokens? - bool AllowEmpty() const { return m_mode != wxTOKEN_STRTOK; } - - - // backwards compatibility section from now on - // ------------------------------------------- - - // for compatibility only, use GetNextToken() instead - wxString NextToken() { return GetNextToken(); } - - // compatibility only, don't use - void SetString(const wxString& to_tokenize, - const wxString& delims, - bool WXUNUSED(ret_delim)) - { - SetString(to_tokenize, delims, wxTOKEN_RET_DELIMS); - } - - wxStringTokenizer(const wxString& to_tokenize, - const wxString& delims, - bool ret_delim) - { - SetString(to_tokenize, delims, ret_delim); - } - -protected: - bool IsOk() const { return m_mode != wxTOKEN_INVALID; } - - bool DoHasMoreTokens() const; - - void DoCopyFrom(const wxStringTokenizer& src); - - enum MoreTokensState - { - MoreTokens_Unknown, - MoreTokens_Yes, - MoreTokens_No - }; - - MoreTokensState m_hasMoreTokens; - - wxString m_string; // the string we tokenize - wxString::const_iterator m_stringEnd; - // FIXME-UTF8: use wxWcharBuffer - wxWxCharBuffer m_delims; // all possible delimiters - size_t m_delimsLen; - - wxString::const_iterator m_pos; // the current position in m_string - - wxStringTokenizerMode m_mode; // see wxTOKEN_XXX values - - wxChar m_lastDelim; // delimiter after last token or '\0' -}; - -// ---------------------------------------------------------------------------- -// convenience function which returns all tokens at once -// ---------------------------------------------------------------------------- - -// the function takes the same parameters as wxStringTokenizer ctor and returns -// the array containing all tokens -wxArrayString WXDLLIMPEXP_BASE -wxStringTokenize(const wxString& str, - const wxString& delims = wxDEFAULT_DELIMITERS, - wxStringTokenizerMode mode = wxTOKEN_DEFAULT); - -#endif // _WX_TOKENZRH diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/toolbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/toolbar.h deleted file mode 100644 index f4f6afe1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/toolbar.h +++ /dev/null @@ -1,88 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/toolbar.h -// Purpose: wxToolBar interface declaration -// Author: Vadim Zeitlin -// Modified by: -// Created: 20.11.99 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TOOLBAR_H_BASE_ -#define _WX_TOOLBAR_H_BASE_ - -#include "wx/defs.h" - -// ---------------------------------------------------------------------------- -// wxToolBar style flags -// ---------------------------------------------------------------------------- - -enum -{ - // lay out the toolbar horizontally - wxTB_HORIZONTAL = wxHORIZONTAL, // == 0x0004 - wxTB_TOP = wxTB_HORIZONTAL, - - // lay out the toolbar vertically - wxTB_VERTICAL = wxVERTICAL, // == 0x0008 - wxTB_LEFT = wxTB_VERTICAL, - - // show 3D buttons (wxToolBarSimple only) - wxTB_3DBUTTONS = 0x0010, - - // "flat" buttons (Win32/GTK only) - wxTB_FLAT = 0x0020, - - // dockable toolbar (GTK only) - wxTB_DOCKABLE = 0x0040, - - // don't show the icons (they're shown by default) - wxTB_NOICONS = 0x0080, - - // show the text (not shown by default) - wxTB_TEXT = 0x0100, - - // don't show the divider between toolbar and the window (Win32 only) - wxTB_NODIVIDER = 0x0200, - - // no automatic alignment (Win32 only, useless) - wxTB_NOALIGN = 0x0400, - - // show the text and the icons alongside, not vertically stacked (Win32/GTK) - wxTB_HORZ_LAYOUT = 0x0800, - wxTB_HORZ_TEXT = wxTB_HORZ_LAYOUT | wxTB_TEXT, - - // don't show the toolbar short help tooltips - wxTB_NO_TOOLTIPS = 0x1000, - - // lay out toolbar at the bottom of the window - wxTB_BOTTOM = 0x2000, - - // lay out toolbar at the right edge of the window - wxTB_RIGHT = 0x4000, - - wxTB_DEFAULT_STYLE = wxTB_HORIZONTAL -}; - -#if wxUSE_TOOLBAR - #include "wx/tbarbase.h" // the base class for all toolbars - - #if defined(__WXUNIVERSAL__) - #include "wx/univ/toolbar.h" - #elif defined(__WXMSW__) - #include "wx/msw/toolbar.h" - #elif defined(__WXMOTIF__) - #include "wx/motif/toolbar.h" - #elif defined(__WXGTK20__) - #include "wx/gtk/toolbar.h" - #elif defined(__WXGTK__) - #include "wx/gtk1/toolbar.h" - #elif defined(__WXMAC__) - #include "wx/osx/toolbar.h" - #elif defined(__WXQT__) - #include "wx/qt/toolbar.h" - #endif -#endif // wxUSE_TOOLBAR - -#endif - // _WX_TOOLBAR_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/toolbook.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/toolbook.h deleted file mode 100644 index ecd703cf..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/toolbook.h +++ /dev/null @@ -1,148 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/toolbook.h -// Purpose: wxToolbook: wxToolBar and wxNotebook combination -// Author: Julian Smart -// Modified by: -// Created: 2006-01-29 -// Copyright: (c) 2006 Julian Smart -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TOOLBOOK_H_ -#define _WX_TOOLBOOK_H_ - -#include "wx/defs.h" - -#if wxUSE_TOOLBOOK - -#include "wx/bookctrl.h" -#include "wx/containr.h" - -class WXDLLIMPEXP_FWD_CORE wxToolBarBase; -class WXDLLIMPEXP_FWD_CORE wxCommandEvent; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TOOLBOOK_PAGE_CHANGED, wxBookCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TOOLBOOK_PAGE_CHANGING, wxBookCtrlEvent ); - - -// Use wxButtonToolBar -#define wxTBK_BUTTONBAR 0x0100 - -// Use wxTB_HORZ_LAYOUT style for the controlling toolbar -#define wxTBK_HORZ_LAYOUT 0x8000 - -// deprecated synonym, don't use -#if WXWIN_COMPATIBILITY_2_8 - #define wxBK_BUTTONBAR wxTBK_BUTTONBAR -#endif - -// ---------------------------------------------------------------------------- -// wxToolbook -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxToolbook : public wxNavigationEnabled<wxBookCtrlBase> -{ -public: - wxToolbook() - { - Init(); - } - - wxToolbook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxEmptyString) - { - Init(); - - (void)Create(parent, id, pos, size, style, name); - } - - // quasi ctor - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxEmptyString); - - - // implement base class virtuals - virtual bool SetPageText(size_t n, const wxString& strText) wxOVERRIDE; - virtual wxString GetPageText(size_t n) const wxOVERRIDE; - virtual int GetPageImage(size_t n) const wxOVERRIDE; - virtual bool SetPageImage(size_t n, int imageId) wxOVERRIDE; - virtual bool InsertPage(size_t n, - wxWindow *page, - const wxString& text, - bool bSelect = false, - int imageId = NO_IMAGE) wxOVERRIDE; - virtual int SetSelection(size_t n) wxOVERRIDE { return DoSetSelection(n, SetSelection_SendEvent); } - virtual int ChangeSelection(size_t n) wxOVERRIDE { return DoSetSelection(n); } - virtual void SetImageList(wxImageList *imageList) wxOVERRIDE; - - virtual bool DeleteAllPages() wxOVERRIDE; - virtual int HitTest(const wxPoint& pt, long *flags = NULL) const wxOVERRIDE; - - - // methods which are not part of base wxBookctrl API - - // get the underlying toolbar - wxToolBarBase* GetToolBar() const { return (wxToolBarBase*)m_bookctrl; } - - // must be called in OnIdle or by application to realize the toolbar and - // select the initial page. - void Realize(); - -protected: - virtual wxWindow *DoRemovePage(size_t page) wxOVERRIDE; - - // event handlers - void OnToolSelected(wxCommandEvent& event); - void OnSize(wxSizeEvent& event); - void OnIdle(wxIdleEvent& event); - - void UpdateSelectedPage(size_t newsel) wxOVERRIDE; - - wxBookCtrlEvent* CreatePageChangingEvent() const wxOVERRIDE; - void MakeChangedEvent(wxBookCtrlEvent &event) wxOVERRIDE; - - // whether the toolbar needs to be realized - bool m_needsRealizing; - - // maximum bitmap size - wxSize m_maxBitmapSize; - -private: - // common part of all constructors - void Init(); - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxToolbook); -}; - -// ---------------------------------------------------------------------------- -// listbook event class and related stuff -// ---------------------------------------------------------------------------- - -// wxToolbookEvent is obsolete and defined for compatibility only -#define wxToolbookEvent wxBookCtrlEvent -typedef wxBookCtrlEventFunction wxToolbookEventFunction; -#define wxToolbookEventHandler(func) wxBookCtrlEventHandler(func) - - -#define EVT_TOOLBOOK_PAGE_CHANGED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_TOOLBOOK_PAGE_CHANGED, winid, wxBookCtrlEventHandler(fn)) - -#define EVT_TOOLBOOK_PAGE_CHANGING(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_TOOLBOOK_PAGE_CHANGING, winid, wxBookCtrlEventHandler(fn)) - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGED wxEVT_TOOLBOOK_PAGE_CHANGED -#define wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGING wxEVT_TOOLBOOK_PAGE_CHANGING - -#endif // wxUSE_TOOLBOOK - -#endif // _WX_TOOLBOOK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tooltip.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tooltip.h deleted file mode 100644 index d65fef0b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tooltip.h +++ /dev/null @@ -1,36 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/tooltip.h -// Purpose: wxToolTip base header -// Author: Robert Roebling -// Modified by: -// Created: -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TOOLTIP_H_BASE_ -#define _WX_TOOLTIP_H_BASE_ - -#include "wx/defs.h" - -#if wxUSE_TOOLTIPS - -#if defined(__WXMSW__) -#include "wx/msw/tooltip.h" -#elif defined(__WXMOTIF__) -// #include "wx/motif/tooltip.h" -#elif defined(__WXGTK20__) -#include "wx/gtk/tooltip.h" -#elif defined(__WXGTK__) -#include "wx/gtk1/tooltip.h" -#elif defined(__WXMAC__) -#include "wx/osx/tooltip.h" -#elif defined(__WXQT__) -#include "wx/qt/tooltip.h" -#endif - -#endif - // wxUSE_TOOLTIPS - -#endif - // _WX_TOOLTIP_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/toplevel.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/toplevel.h deleted file mode 100644 index 47c5798e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/toplevel.h +++ /dev/null @@ -1,377 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/toplevel.h -// Purpose: declares wxTopLevelWindow class, the base class for all -// top level windows (such as frames and dialogs) -// Author: Vadim Zeitlin, Vaclav Slavik -// Modified by: -// Created: 06.08.01 -// Copyright: (c) 2001 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Vaclav Slavik <vaclav@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TOPLEVEL_BASE_H_ -#define _WX_TOPLEVEL_BASE_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/nonownedwnd.h" -#include "wx/iconbndl.h" -#include "wx/weakref.h" - -// the default names for various classes -extern WXDLLIMPEXP_DATA_CORE(const char) wxFrameNameStr[]; - -class WXDLLIMPEXP_FWD_CORE wxTopLevelWindowBase; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -/* - Summary of the bits used (some of them are defined in wx/frame.h and - wx/dialog.h and not here): - - +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ - |15|14|13|12|11|10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0| - +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ - | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | \_ wxCENTRE - | | | | | | | | | | | | | | \____ wxFRAME_NO_TASKBAR - | | | | | | | | | | | | | \_______ wxFRAME_TOOL_WINDOW - | | | | | | | | | | | | \__________ wxFRAME_FLOAT_ON_PARENT - | | | | | | | | | | | \_____________ wxFRAME_SHAPED - | | | | | | | | | | \________________ wxDIALOG_NO_PARENT - | | | | | | | | | \___________________ wxRESIZE_BORDER - | | | | | | | | \______________________ wxTINY_CAPTION_VERT - | | | | | | | \_________________________ - | | | | | | \____________________________ wxMAXIMIZE_BOX - | | | | | \_______________________________ wxMINIMIZE_BOX - | | | | \__________________________________ wxSYSTEM_MENU - | | | \_____________________________________ wxCLOSE_BOX - | | \________________________________________ wxMAXIMIZE - | \___________________________________________ wxMINIMIZE - \______________________________________________ wxSTAY_ON_TOP - - - Notice that the 8 lower bits overlap with wxCENTRE and the button selection - bits (wxYES, wxOK wxNO, wxCANCEL, wxAPPLY, wxCLOSE and wxNO_DEFAULT) which - can be combined with the dialog style for several standard dialogs and - hence shouldn't overlap with any styles which can be used for the dialogs. - Additionally, wxCENTRE can be used with frames also. - */ - -// style common to both wxFrame and wxDialog -#define wxSTAY_ON_TOP 0x8000 -#define wxICONIZE 0x4000 -#define wxMINIMIZE wxICONIZE -#define wxMAXIMIZE 0x2000 -#define wxCLOSE_BOX 0x1000 // == wxHELP so can't be used with it - -#define wxSYSTEM_MENU 0x0800 -#define wxMINIMIZE_BOX 0x0400 -#define wxMAXIMIZE_BOX 0x0200 - -#define wxTINY_CAPTION 0x0080 // clashes with wxNO_DEFAULT -#define wxRESIZE_BORDER 0x0040 // == wxCLOSE - -#if WXWIN_COMPATIBILITY_2_8 - // HORIZ and VERT styles are equivalent anyhow so don't use different names - // for them - #define wxTINY_CAPTION_HORIZ wxTINY_CAPTION - #define wxTINY_CAPTION_VERT wxTINY_CAPTION -#endif - -// default style -#define wxDEFAULT_FRAME_STYLE \ - (wxSYSTEM_MENU | \ - wxRESIZE_BORDER | \ - wxMINIMIZE_BOX | \ - wxMAXIMIZE_BOX | \ - wxCLOSE_BOX | \ - wxCAPTION | \ - wxCLIP_CHILDREN) - - -// Dialogs are created in a special way -#define wxTOPLEVEL_EX_DIALOG 0x00000008 - -// Styles for ShowFullScreen -// (note that wxTopLevelWindow only handles wxFULLSCREEN_NOBORDER and -// wxFULLSCREEN_NOCAPTION; the rest is handled by wxTopLevelWindow) -enum -{ - wxFULLSCREEN_NOMENUBAR = 0x0001, - wxFULLSCREEN_NOTOOLBAR = 0x0002, - wxFULLSCREEN_NOSTATUSBAR = 0x0004, - wxFULLSCREEN_NOBORDER = 0x0008, - wxFULLSCREEN_NOCAPTION = 0x0010, - - wxFULLSCREEN_ALL = wxFULLSCREEN_NOMENUBAR | wxFULLSCREEN_NOTOOLBAR | - wxFULLSCREEN_NOSTATUSBAR | wxFULLSCREEN_NOBORDER | - wxFULLSCREEN_NOCAPTION -}; - -// Styles for RequestUserAttention -enum -{ - wxUSER_ATTENTION_INFO = 1, - wxUSER_ATTENTION_ERROR = 2 -}; - -// ---------------------------------------------------------------------------- -// wxTopLevelWindow: a top level (as opposed to child) window -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTopLevelWindowBase : public wxNonOwnedWindow -{ -public: - // construction - wxTopLevelWindowBase(); - virtual ~wxTopLevelWindowBase(); - - // top level wnd state - // -------------------- - - // maximize = true => maximize, otherwise - restore - virtual void Maximize(bool maximize = true) = 0; - - // undo Maximize() or Iconize() - virtual void Restore() = 0; - - // iconize = true => iconize, otherwise - restore - virtual void Iconize(bool iconize = true) = 0; - - // return true if the frame is maximized - virtual bool IsMaximized() const = 0; - - // return true if the frame is always maximized - // due to native guidelines or current policy - virtual bool IsAlwaysMaximized() const; - - // return true if the frame is iconized - virtual bool IsIconized() const = 0; - - // get the frame icon - wxIcon GetIcon() const; - - // get the frame icons - const wxIconBundle& GetIcons() const { return m_icons; } - - // set the frame icon: implemented in terms of SetIcons() - void SetIcon(const wxIcon& icon); - - // set the frame icons - virtual void SetIcons(const wxIconBundle& icons) { m_icons = icons; } - - virtual bool EnableFullScreenView(bool WXUNUSED(enable) = true) - { - return false; - } - - // maximize the window to cover entire screen - virtual bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL) = 0; - - // shows the window, but doesn't activate it. If the base code is being run, - // it means the port doesn't implement this method yet and so alert the user. - virtual void ShowWithoutActivating() { - wxFAIL_MSG("ShowWithoutActivating not implemented on this platform."); - } - - // return true if the frame is in fullscreen mode - virtual bool IsFullScreen() const = 0; - - // the title of the top level window: the text which the - // window shows usually at the top of the frame/dialog in dedicated bar - virtual void SetTitle(const wxString& title) = 0; - virtual wxString GetTitle() const = 0; - - // enable/disable close button [x] - virtual bool EnableCloseButton(bool WXUNUSED(enable) = true) { return false; } - virtual bool EnableMaximizeButton(bool WXUNUSED(enable) = true) { return false; } - virtual bool EnableMinimizeButton(bool WXUNUSED(enable) = true) { return false; } - - // Attracts the users attention to this window if the application is - // inactive (should be called when a background event occurs) - virtual void RequestUserAttention(int flags = wxUSER_ATTENTION_INFO); - - // Is this the active frame (highlighted in the taskbar)? - // - // A TLW is active only if it contains the currently focused window. - virtual bool IsActive() { return IsDescendant(FindFocus()); } - - // this function may be overridden to return false to allow closing the - // application even when this top level window is still open - // - // notice that the window is still closed prior to the application exit and - // so it can still veto it even if it returns false from here - virtual bool ShouldPreventAppExit() const { return true; } - - // centre the window on screen: this is just a shortcut - void CentreOnScreen(int dir = wxBOTH) { DoCentre(dir | wxCENTRE_ON_SCREEN); } - void CenterOnScreen(int dir = wxBOTH) { CentreOnScreen(dir); } - - // Get the default size for a new top level window. This is used when - // creating a wxTLW under some platforms if no explicit size given. - static wxSize GetDefaultSize(); - - - // default item access: we have a permanent default item which is the one - // set by the user code but we may also have a temporary default item which - // would be chosen if the user pressed "Enter" now but the default action - // reverts to the "permanent" default as soon as this temporary default - // item loses focus - - // get the default item, temporary or permanent - wxWindow *GetDefaultItem() const - { return m_winTmpDefault ? m_winTmpDefault : m_winDefault; } - - // set the permanent default item, return the old default - wxWindow *SetDefaultItem(wxWindow *win) - { wxWindow *old = GetDefaultItem(); m_winDefault = win; return old; } - - // return the temporary default item, can be NULL - wxWindow *GetTmpDefaultItem() const { return m_winTmpDefault; } - - // set a temporary default item, SetTmpDefaultItem(NULL) should be called - // soon after a call to SetTmpDefaultItem(window), return the old default - wxWindow *SetTmpDefaultItem(wxWindow *win) - { wxWindow *old = GetDefaultItem(); m_winTmpDefault = win; return old; } - - // implementation only from now on - // ------------------------------- - - // override some base class virtuals - virtual bool Destroy() wxOVERRIDE; - virtual bool IsTopLevel() const wxOVERRIDE { return true; } - virtual bool IsTopNavigationDomain(NavigationKind kind) const wxOVERRIDE; - virtual bool IsVisible() const { return IsShown(); } - - // event handlers - void OnCloseWindow(wxCloseEvent& event); - void OnSize(wxSizeEvent& WXUNUSED(event)) { DoLayout(); } - - // Get rect to be used to center top-level children - virtual void GetRectForTopLevelChildren(int *x, int *y, int *w, int *h); - - // this should go away, but for now it's called from docview.cpp, - // so should be there for all platforms - void OnActivate(wxActivateEvent &WXUNUSED(event)) { } - - // do the window-specific processing after processing the update event - virtual void DoUpdateWindowUI(wxUpdateUIEvent& event) wxOVERRIDE ; - - // a different API for SetSizeHints - virtual void SetMinSize(const wxSize& minSize) wxOVERRIDE; - virtual void SetMaxSize(const wxSize& maxSize) wxOVERRIDE; - - virtual void OSXSetModified(bool modified) { m_modified = modified; } - virtual bool OSXIsModified() const { return m_modified; } - - virtual void SetRepresentedFilename(const wxString& WXUNUSED(filename)) { } - -protected: - // the frame client to screen translation should take account of the - // toolbar which may shift the origin of the client area - virtual void DoClientToScreen(int *x, int *y) const wxOVERRIDE; - virtual void DoScreenToClient(int *x, int *y) const wxOVERRIDE; - - // add support for wxCENTRE_ON_SCREEN - virtual void DoCentre(int dir) wxOVERRIDE; - - // no need to do client to screen translation to get our position in screen - // coordinates: this is already the case - virtual void DoGetScreenPosition(int *x, int *y) const wxOVERRIDE - { - DoGetPosition(x, y); - } - - // test whether this window makes part of the frame - // (menubar, toolbar and statusbar are excluded from automatic layout) - virtual bool IsOneOfBars(const wxWindow *WXUNUSED(win)) const - { return false; } - - // check if we should exit the program after deleting this window - bool IsLastBeforeExit() const; - - // send the iconize event, return true if processed - bool SendIconizeEvent(bool iconized = true); - - // do TLW-specific layout: we resize our unique child to fill the entire - // client area - void DoLayout(); - - static int WidthDefault(int w) { return w == wxDefaultCoord ? GetDefaultSize().x : w; } - static int HeightDefault(int h) { return h == wxDefaultCoord ? GetDefaultSize().y : h; } - - - // the frame icon - wxIconBundle m_icons; - - // a default window (usually a button) or NULL - wxWindowRef m_winDefault; - - // a temporary override of m_winDefault, use the latter if NULL - wxWindowRef m_winTmpDefault; - - bool m_modified; - - wxDECLARE_NO_COPY_CLASS(wxTopLevelWindowBase); - wxDECLARE_EVENT_TABLE(); -}; - - -// include the real class declaration -#if defined(__WXMSW__) - #include "wx/msw/toplevel.h" - #define wxTopLevelWindowNative wxTopLevelWindowMSW -#elif defined(__WXGTK20__) - #include "wx/gtk/toplevel.h" - #define wxTopLevelWindowNative wxTopLevelWindowGTK -#elif defined(__WXGTK__) - #include "wx/gtk1/toplevel.h" - #define wxTopLevelWindowNative wxTopLevelWindowGTK -#elif defined(__WXX11__) - #include "wx/x11/toplevel.h" - #define wxTopLevelWindowNative wxTopLevelWindowX11 -#elif defined(__WXDFB__) - #include "wx/dfb/toplevel.h" - #define wxTopLevelWindowNative wxTopLevelWindowDFB -#elif defined(__WXMAC__) - #include "wx/osx/toplevel.h" - #define wxTopLevelWindowNative wxTopLevelWindowMac -#elif defined(__WXMOTIF__) - #include "wx/motif/toplevel.h" - #define wxTopLevelWindowNative wxTopLevelWindowMotif -#elif defined(__WXQT__) - #include "wx/qt/toplevel.h" -#define wxTopLevelWindowNative wxTopLevelWindowQt -#endif - -#ifdef __WXUNIVERSAL__ - #include "wx/univ/toplevel.h" -#else // !__WXUNIVERSAL__ - class WXDLLIMPEXP_CORE wxTopLevelWindow : public wxTopLevelWindowNative - { - public: - // construction - wxTopLevelWindow() { } - wxTopLevelWindow(wxWindow *parent, - wxWindowID winid, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - : wxTopLevelWindowNative(parent, winid, title, - pos, size, style, name) - { - } - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxTopLevelWindow); - }; -#endif // __WXUNIVERSAL__/!__WXUNIVERSAL__ - -#endif // _WX_TOPLEVEL_BASE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tracker.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tracker.h deleted file mode 100644 index d8f27282..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/tracker.h +++ /dev/null @@ -1,91 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/tracker.h -// Purpose: Support class for object lifetime tracking (wxWeakRef<T>) -// Author: Arne Steinarson -// Created: 28 Dec 07 -// Copyright: (c) 2007 Arne Steinarson -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TRACKER_H_ -#define _WX_TRACKER_H_ - -#include "wx/defs.h" - -class wxEventConnectionRef; - -// This class represents an object tracker and is stored in a linked list -// in the tracked object. It is only used in one of its derived forms. -class WXDLLIMPEXP_BASE wxTrackerNode -{ -public: - wxTrackerNode() : m_nxt(NULL) { } - virtual ~wxTrackerNode() { } - - virtual void OnObjectDestroy() = 0; - - virtual wxEventConnectionRef *ToEventConnection() { return NULL; } - -private: - wxTrackerNode *m_nxt; - - friend class wxTrackable; // For list access - friend class wxEvtHandler; // For list access -}; - -// Add-on base class for a trackable object. -class WXDLLIMPEXP_BASE wxTrackable -{ -public: - void AddNode(wxTrackerNode *prn) - { - prn->m_nxt = m_first; - m_first = prn; - } - - void RemoveNode(wxTrackerNode *prn) - { - for ( wxTrackerNode **pprn = &m_first; *pprn; pprn = &(*pprn)->m_nxt ) - { - if ( *pprn == prn ) - { - *pprn = prn->m_nxt; - return; - } - } - - wxFAIL_MSG( "removing invalid tracker node" ); - } - - wxTrackerNode *GetFirst() const { return m_first; } - -protected: - // this class is only supposed to be used as a base class but never be - // created nor destroyed directly so all ctors and dtor are protected - - wxTrackable() : m_first(NULL) { } - - // copy ctor and assignment operator intentionally do not copy m_first: the - // objects which track the original trackable shouldn't track the new copy - wxTrackable(const wxTrackable& WXUNUSED(other)) : m_first(NULL) { } - wxTrackable& operator=(const wxTrackable& WXUNUSED(other)) { return *this; } - - // dtor is not virtual: this class is not supposed to be used - // polymorphically and adding a virtual table to it would add unwanted - // overhead - ~wxTrackable() - { - // Notify all registered refs - while ( m_first ) - { - wxTrackerNode * const first = m_first; - m_first = first->m_nxt; - first->OnObjectDestroy(); - } - } - - wxTrackerNode *m_first; -}; - -#endif // _WX_TRACKER_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/translation.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/translation.h deleted file mode 100644 index 2ca62cf4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/translation.h +++ /dev/null @@ -1,329 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/translation.h -// Purpose: Internationalization and localisation for wxWidgets -// Author: Vadim Zeitlin, Vaclav Slavik, -// Michael N. Filippov <michael@idisys.iae.nsk.su> -// Created: 2010-04-23 -// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// (c) 2010 Vaclav Slavik <vslavik@fastmail.fm> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TRANSLATION_H_ -#define _WX_TRANSLATION_H_ - -#include "wx/defs.h" -#include "wx/string.h" - -#if wxUSE_INTL - -#include "wx/buffer.h" -#include "wx/language.h" -#include "wx/hashmap.h" -#include "wx/strconv.h" -#include "wx/scopedptr.h" - -// ============================================================================ -// global decls -// ============================================================================ - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -// gettext() style macros (notice that xgettext should be invoked with -// --keyword="_" --keyword="wxPLURAL:1,2" options -// to extract the strings from the sources) -#ifndef WXINTL_NO_GETTEXT_MACRO - #define _(s) wxGetTranslation((s)) - #define wxPLURAL(sing, plur, n) wxGetTranslation((sing), (plur), n) -#endif - -// another one which just marks the strings for extraction, but doesn't -// perform the translation (use -kwxTRANSLATE with xgettext!) -#define wxTRANSLATE(str) str - -// ---------------------------------------------------------------------------- -// forward decls -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_BASE wxArrayString; -class WXDLLIMPEXP_FWD_BASE wxTranslationsLoader; -class WXDLLIMPEXP_FWD_BASE wxLocale; - -class wxPluralFormsCalculator; -wxDECLARE_SCOPED_PTR(wxPluralFormsCalculator, wxPluralFormsCalculatorPtr) - -// ---------------------------------------------------------------------------- -// wxMsgCatalog corresponds to one loaded message catalog. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxMsgCatalog -{ -public: - // Ctor is protected, because CreateFromXXX functions must be used, - // but destruction should be unrestricted -#if !wxUSE_UNICODE - ~wxMsgCatalog(); -#endif - - // load the catalog from disk or from data; caller is responsible for - // deleting them if not NULL - static wxMsgCatalog *CreateFromFile(const wxString& filename, - const wxString& domain); - - static wxMsgCatalog *CreateFromData(const wxScopedCharBuffer& data, - const wxString& domain); - - // get name of the catalog - wxString GetDomain() const { return m_domain; } - - // get the translated string: returns NULL if not found - const wxString *GetString(const wxString& sz, unsigned n = UINT_MAX) const; - -protected: - wxMsgCatalog(const wxString& domain) - : m_pNext(NULL), m_domain(domain) -#if !wxUSE_UNICODE - , m_conv(NULL) -#endif - {} - -private: - // variable pointing to the next element in a linked list (or NULL) - wxMsgCatalog *m_pNext; - friend class wxTranslations; - - wxStringToStringHashMap m_messages; // all messages in the catalog - wxString m_domain; // name of the domain - -#if !wxUSE_UNICODE - // the conversion corresponding to this catalog charset if we installed it - // as the global one - wxCSConv *m_conv; -#endif - - wxPluralFormsCalculatorPtr m_pluralFormsCalculator; -}; - -// ---------------------------------------------------------------------------- -// wxTranslations: message catalogs -// ---------------------------------------------------------------------------- - -// this class allows to get translations for strings -class WXDLLIMPEXP_BASE wxTranslations -{ -public: - wxTranslations(); - ~wxTranslations(); - - // returns current translations object, may return NULL - static wxTranslations *Get(); - // sets current translations object (takes ownership; may be NULL) - static void Set(wxTranslations *t); - - // changes loader to non-default one; takes ownership of 'loader' - void SetLoader(wxTranslationsLoader *loader); - - void SetLanguage(wxLanguage lang); - void SetLanguage(const wxString& lang); - - // get languages available for this app - wxArrayString GetAvailableTranslations(const wxString& domain) const; - - // find best translation language for given domain - wxString GetBestTranslation(const wxString& domain, wxLanguage msgIdLanguage); - wxString GetBestTranslation(const wxString& domain, - const wxString& msgIdLanguage = "en"); - - // add standard wxWidgets catalog ("wxstd") - bool AddStdCatalog(); - - // add catalog with given domain name and language, looking it up via - // wxTranslationsLoader - bool AddCatalog(const wxString& domain); - bool AddCatalog(const wxString& domain, wxLanguage msgIdLanguage); -#if !wxUSE_UNICODE - bool AddCatalog(const wxString& domain, - wxLanguage msgIdLanguage, - const wxString& msgIdCharset); -#endif - - // check if the given catalog is loaded - bool IsLoaded(const wxString& domain) const; - - // access to translations - const wxString *GetTranslatedString(const wxString& origString, - const wxString& domain = wxEmptyString) const; - const wxString *GetTranslatedString(const wxString& origString, - unsigned n, - const wxString& domain = wxEmptyString) const; - - wxString GetHeaderValue(const wxString& header, - const wxString& domain = wxEmptyString) const; - - // this is hack to work around a problem with wxGetTranslation() which - // returns const wxString& and not wxString, so when it returns untranslated - // string, it needs to have a copy of it somewhere - static const wxString& GetUntranslatedString(const wxString& str); - -private: - // perform loading of the catalog via m_loader - bool LoadCatalog(const wxString& domain, const wxString& lang, const wxString& msgIdLang); - - // find catalog by name in a linked list, return NULL if !found - wxMsgCatalog *FindCatalog(const wxString& domain) const; - - // same as Set(), without taking ownership; only for wxLocale - static void SetNonOwned(wxTranslations *t); - friend class wxLocale; - -private: - wxString m_lang; - wxTranslationsLoader *m_loader; - - wxMsgCatalog *m_pMsgCat; // pointer to linked list of catalogs - - // In addition to keeping all the catalogs in the linked list, we also - // store them in a hash map indexed by the domain name to allow finding - // them by name efficiently. - WX_DECLARE_HASH_MAP(wxString, wxMsgCatalog *, wxStringHash, wxStringEqual, wxMsgCatalogMap); - wxMsgCatalogMap m_catalogMap; -}; - - -// abstraction of translations discovery and loading -class WXDLLIMPEXP_BASE wxTranslationsLoader -{ -public: - wxTranslationsLoader() {} - virtual ~wxTranslationsLoader() {} - - virtual wxMsgCatalog *LoadCatalog(const wxString& domain, - const wxString& lang) = 0; - - virtual wxArrayString GetAvailableTranslations(const wxString& domain) const = 0; -}; - - -// standard wxTranslationsLoader implementation, using filesystem -class WXDLLIMPEXP_BASE wxFileTranslationsLoader - : public wxTranslationsLoader -{ -public: - static void AddCatalogLookupPathPrefix(const wxString& prefix); - - virtual wxMsgCatalog *LoadCatalog(const wxString& domain, - const wxString& lang) wxOVERRIDE; - - virtual wxArrayString GetAvailableTranslations(const wxString& domain) const wxOVERRIDE; -}; - - -#ifdef __WINDOWS__ -// loads translations from win32 resources -class WXDLLIMPEXP_BASE wxResourceTranslationsLoader - : public wxTranslationsLoader -{ -public: - virtual wxMsgCatalog *LoadCatalog(const wxString& domain, - const wxString& lang); - - virtual wxArrayString GetAvailableTranslations(const wxString& domain) const; - -protected: - // returns resource type to use for translations - virtual wxString GetResourceType() const { return "MOFILE"; } - - // returns module to load resources from - virtual WXHINSTANCE GetModule() const { return 0; } -}; -#endif // __WINDOWS__ - - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -// get the translation of the string in the current locale -inline const wxString& wxGetTranslation(const wxString& str, - const wxString& domain = wxString()) -{ - wxTranslations *trans = wxTranslations::Get(); - const wxString *transStr = trans ? trans->GetTranslatedString(str, domain) - : NULL; - if ( transStr ) - return *transStr; - else - // NB: this function returns reference to a string, so we have to keep - // a copy of it somewhere - return wxTranslations::GetUntranslatedString(str); -} - -inline const wxString& wxGetTranslation(const wxString& str1, - const wxString& str2, - unsigned n, - const wxString& domain = wxString()) -{ - wxTranslations *trans = wxTranslations::Get(); - const wxString *transStr = trans ? trans->GetTranslatedString(str1, n, domain) - : NULL; - if ( transStr ) - return *transStr; - else - // NB: this function returns reference to a string, so we have to keep - // a copy of it somewhere - return n == 1 - ? wxTranslations::GetUntranslatedString(str1) - : wxTranslations::GetUntranslatedString(str2); -} - -#else // !wxUSE_INTL - -// the macros should still be defined - otherwise compilation would fail - -#if !defined(WXINTL_NO_GETTEXT_MACRO) - #if !defined(_) - #define _(s) (s) - #endif - #define wxPLURAL(sing, plur, n) ((n) == 1 ? (sing) : (plur)) -#endif - -#define wxTRANSLATE(str) str - -// NB: we use a template here in order to avoid using -// wxLocale::GetUntranslatedString() above, which would be required if -// we returned const wxString&; this way, the compiler should be able to -// optimize wxGetTranslation() away - -template<typename TString> -inline TString wxGetTranslation(TString str) - { return str; } - -template<typename TString, typename TDomain> -inline TString wxGetTranslation(TString str, TDomain WXUNUSED(domain)) - { return str; } - -template<typename TString, typename TDomain> -inline TString wxGetTranslation(TString str1, TString str2, size_t n) - { return n == 1 ? str1 : str2; } - -template<typename TString, typename TDomain> -inline TString wxGetTranslation(TString str1, TString str2, size_t n, - TDomain WXUNUSED(domain)) - { return n == 1 ? str1 : str2; } - -#endif // wxUSE_INTL/!wxUSE_INTL - -// define this one just in case it occurs somewhere (instead of preferred -// wxTRANSLATE) too -#if !defined(WXINTL_NO_GETTEXT_MACRO) - #if !defined(gettext_noop) - #define gettext_noop(str) (str) - #endif - #if !defined(N_) - #define N_(s) (s) - #endif -#endif - -#endif // _WX_TRANSLATION_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treebase.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treebase.h deleted file mode 100644 index 6ce145f6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treebase.h +++ /dev/null @@ -1,403 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/treebase.h -// Purpose: wxTreeCtrl base classes and types -// Author: Julian Smart et al -// Modified by: -// Created: 01/02/97 -// Copyright: (c) 1997,1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TREEBASE_H_ -#define _WX_TREEBASE_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_TREECTRL - -#include "wx/window.h" // for wxClientData -#include "wx/event.h" -#include "wx/dynarray.h" -#include "wx/itemid.h" - -// ---------------------------------------------------------------------------- -// wxTreeItemId identifies an element of the tree. It's opaque for the -// application and the only method which can be used by user code is IsOk(). -// ---------------------------------------------------------------------------- - -// This is a class and not a typedef because existing code may forward declare -// wxTreeItemId as a class and we don't want to break it without good reason. -class wxTreeItemId : public wxItemId<void*> -{ -public: - wxTreeItemId() : wxItemId<void*>() { } - wxTreeItemId(void* pItem) : wxItemId<void*>(pItem) { } -}; - -// ---------------------------------------------------------------------------- -// wxTreeItemData is some (arbitrary) user class associated with some item. The -// main advantage of having this class (compared to old untyped interface) is -// that wxTreeItemData's are destroyed automatically by the tree and, as this -// class has virtual dtor, it means that the memory will be automatically -// freed. OTOH, we don't just use wxObject instead of wxTreeItemData because -// the size of this class is critical: in any real application, each tree leaf -// will have wxTreeItemData associated with it and number of leaves may be -// quite big. -// -// Because the objects of this class are deleted by the tree, they should -// always be allocated on the heap! -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTreeItemData: public wxClientData -{ -friend class WXDLLIMPEXP_FWD_CORE wxTreeCtrl; -friend class WXDLLIMPEXP_FWD_CORE wxGenericTreeCtrl; -public: - // creation/destruction - // -------------------- - // default ctor - wxTreeItemData() { } - - // default copy ctor/assignment operator are ok - - // accessor: get the item associated with us - const wxTreeItemId& GetId() const { return m_pItem; } - void SetId(const wxTreeItemId& id) { m_pItem = id; } - -protected: - wxTreeItemId m_pItem; -}; - -typedef void *wxTreeItemIdValue; - -WX_DEFINE_EXPORTED_ARRAY_PTR(wxTreeItemIdValue, wxArrayTreeItemIdsBase); - -// this is a wrapper around the array class defined above which allow to wok -// with values of natural wxTreeItemId type instead of using wxTreeItemIdValue -// and does it without any loss of efficiency -class WXDLLIMPEXP_CORE wxArrayTreeItemIds : public wxArrayTreeItemIdsBase -{ -public: - void Add(const wxTreeItemId& id) - { wxArrayTreeItemIdsBase::Add(id.m_pItem); } - void Insert(const wxTreeItemId& id, size_t pos) - { wxArrayTreeItemIdsBase::Insert(id.m_pItem, pos); } - wxTreeItemId Item(size_t i) const - { return wxTreeItemId(wxArrayTreeItemIdsBase::Item(i)); } - wxTreeItemId operator[](size_t i) const { return Item(i); } -}; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// enum for different images associated with a treectrl item -enum wxTreeItemIcon -{ - wxTreeItemIcon_Normal, // not selected, not expanded - wxTreeItemIcon_Selected, // selected, not expanded - wxTreeItemIcon_Expanded, // not selected, expanded - wxTreeItemIcon_SelectedExpanded, // selected, expanded - wxTreeItemIcon_Max -}; - -// special values for the 'state' parameter of wxTreeCtrl::SetItemState() -static const int wxTREE_ITEMSTATE_NONE = -1; // not state (no display state image) -static const int wxTREE_ITEMSTATE_NEXT = -2; // cycle to the next state -static const int wxTREE_ITEMSTATE_PREV = -3; // cycle to the previous state - -// ---------------------------------------------------------------------------- -// wxTreeCtrl flags -// ---------------------------------------------------------------------------- - -#define wxTR_NO_BUTTONS 0x0000 // for convenience -#define wxTR_HAS_BUTTONS 0x0001 // draw collapsed/expanded btns -#define wxTR_NO_LINES 0x0004 // don't draw lines at all -#define wxTR_LINES_AT_ROOT 0x0008 // connect top-level nodes -#define wxTR_TWIST_BUTTONS 0x0010 // still used by wxTreeListCtrl - -#define wxTR_SINGLE 0x0000 // for convenience -#define wxTR_MULTIPLE 0x0020 // can select multiple items - -#if WXWIN_COMPATIBILITY_2_8 - #define wxTR_EXTENDED 0x0040 // deprecated, don't use -#endif // WXWIN_COMPATIBILITY_2_8 - -#define wxTR_HAS_VARIABLE_ROW_HEIGHT 0x0080 // what it says - -#define wxTR_EDIT_LABELS 0x0200 // can edit item labels -#define wxTR_ROW_LINES 0x0400 // put border around items -#define wxTR_HIDE_ROOT 0x0800 // don't display root node - -#define wxTR_FULL_ROW_HIGHLIGHT 0x2000 // highlight full horz space - -// make the default control appearance look more native-like depending on the -// platform -#if defined(__WXGTK20__) - #define wxTR_DEFAULT_STYLE (wxTR_HAS_BUTTONS | wxTR_NO_LINES) -#elif defined(__WXMAC__) - #define wxTR_DEFAULT_STYLE \ - (wxTR_HAS_BUTTONS | wxTR_NO_LINES | wxTR_FULL_ROW_HIGHLIGHT) -#else - #define wxTR_DEFAULT_STYLE (wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT) -#endif - -// values for the `flags' parameter of wxTreeCtrl::HitTest() which determine -// where exactly the specified point is situated: - -static const int wxTREE_HITTEST_ABOVE = 0x0001; -static const int wxTREE_HITTEST_BELOW = 0x0002; -static const int wxTREE_HITTEST_NOWHERE = 0x0004; - // on the button associated with an item. -static const int wxTREE_HITTEST_ONITEMBUTTON = 0x0008; - // on the bitmap associated with an item. -static const int wxTREE_HITTEST_ONITEMICON = 0x0010; - // on the indent associated with an item. -static const int wxTREE_HITTEST_ONITEMINDENT = 0x0020; - // on the label (string) associated with an item. -static const int wxTREE_HITTEST_ONITEMLABEL = 0x0040; - // on the right of the label associated with an item. -static const int wxTREE_HITTEST_ONITEMRIGHT = 0x0080; - // on the label (string) associated with an item. -static const int wxTREE_HITTEST_ONITEMSTATEICON = 0x0100; - // on the left of the wxTreeCtrl. -static const int wxTREE_HITTEST_TOLEFT = 0x0200; - // on the right of the wxTreeCtrl. -static const int wxTREE_HITTEST_TORIGHT = 0x0400; - // on the upper part (first half) of the item. -static const int wxTREE_HITTEST_ONITEMUPPERPART = 0x0800; - // on the lower part (second half) of the item. -static const int wxTREE_HITTEST_ONITEMLOWERPART = 0x1000; - - // anywhere on the item -static const int wxTREE_HITTEST_ONITEM = wxTREE_HITTEST_ONITEMICON | - wxTREE_HITTEST_ONITEMLABEL; - -// tree ctrl default name -extern WXDLLIMPEXP_DATA_CORE(const char) wxTreeCtrlNameStr[]; - -// ---------------------------------------------------------------------------- -// wxTreeItemAttr: a structure containing the visual attributes of an item -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTreeItemAttr -{ -public: - // ctors - wxTreeItemAttr() { } - wxTreeItemAttr(const wxColour& colText, - const wxColour& colBack, - const wxFont& font) - : m_colText(colText), m_colBack(colBack), m_font(font) { } - - // setters - void SetTextColour(const wxColour& colText) { m_colText = colText; } - void SetBackgroundColour(const wxColour& colBack) { m_colBack = colBack; } - void SetFont(const wxFont& font) { m_font = font; } - - // accessors - bool HasTextColour() const { return m_colText.IsOk(); } - bool HasBackgroundColour() const { return m_colBack.IsOk(); } - bool HasFont() const { return m_font.IsOk(); } - - const wxColour& GetTextColour() const { return m_colText; } - const wxColour& GetBackgroundColour() const { return m_colBack; } - const wxFont& GetFont() const { return m_font; } - -private: - wxColour m_colText, - m_colBack; - wxFont m_font; -}; - -// ---------------------------------------------------------------------------- -// wxTreeEvent is a special class for all events associated with tree controls -// -// NB: note that not all accessors make sense for all events, see the event -// descriptions below -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxTreeCtrlBase; - -class WXDLLIMPEXP_CORE wxTreeEvent : public wxNotifyEvent -{ -public: - wxTreeEvent(wxEventType commandType = wxEVT_NULL, int id = 0); - wxTreeEvent(wxEventType commandType, - wxTreeCtrlBase *tree, - const wxTreeItemId &item = wxTreeItemId()); - wxTreeEvent(const wxTreeEvent& event); - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxTreeEvent(*this); } - - // accessors - // get the item on which the operation was performed or the newly - // selected item for wxEVT_TREE_SEL_CHANGED/ING events - wxTreeItemId GetItem() const { return m_item; } - void SetItem(const wxTreeItemId& item) { m_item = item; } - - // for wxEVT_TREE_SEL_CHANGED/ING events, get the previously - // selected item - wxTreeItemId GetOldItem() const { return m_itemOld; } - void SetOldItem(const wxTreeItemId& item) { m_itemOld = item; } - - // the point where the mouse was when the drag operation started (for - // wxEVT_TREE_BEGIN_(R)DRAG events only) or click position - wxPoint GetPoint() const { return m_pointDrag; } - void SetPoint(const wxPoint& pt) { m_pointDrag = pt; } - - // keyboard data (for wxEVT_TREE_KEY_DOWN only) - const wxKeyEvent& GetKeyEvent() const { return m_evtKey; } - int GetKeyCode() const { return m_evtKey.GetKeyCode(); } - void SetKeyEvent(const wxKeyEvent& evt) { m_evtKey = evt; } - - // label (for EVT_TREE_{BEGIN|END}_LABEL_EDIT only) - const wxString& GetLabel() const { return m_label; } - void SetLabel(const wxString& label) { m_label = label; } - - // edit cancel flag (for EVT_TREE_{BEGIN|END}_LABEL_EDIT only) - bool IsEditCancelled() const { return m_editCancelled; } - void SetEditCanceled(bool editCancelled) { m_editCancelled = editCancelled; } - - // Set the tooltip for the item (for EVT\_TREE\_ITEM\_GETTOOLTIP events) - void SetToolTip(const wxString& toolTip) { m_label = toolTip; } - wxString GetToolTip() { return m_label; } - -private: - // not all of the members are used (or initialized) for all events - wxKeyEvent m_evtKey; - wxTreeItemId m_item, - m_itemOld; - wxPoint m_pointDrag; - wxString m_label; - bool m_editCancelled; - - friend class WXDLLIMPEXP_FWD_CORE wxTreeCtrl; - friend class WXDLLIMPEXP_FWD_CORE wxGenericTreeCtrl; - - wxDECLARE_DYNAMIC_CLASS(wxTreeEvent); -}; - -typedef void (wxEvtHandler::*wxTreeEventFunction)(wxTreeEvent&); - -// ---------------------------------------------------------------------------- -// tree control events and macros for handling them -// ---------------------------------------------------------------------------- - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_BEGIN_DRAG, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_BEGIN_RDRAG, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_BEGIN_LABEL_EDIT, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_END_LABEL_EDIT, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_DELETE_ITEM, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_GET_INFO, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_SET_INFO, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_ITEM_EXPANDED, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_ITEM_EXPANDING, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_ITEM_COLLAPSED, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_ITEM_COLLAPSING, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_SEL_CHANGED, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_SEL_CHANGING, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_KEY_DOWN, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_ITEM_ACTIVATED, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_ITEM_RIGHT_CLICK, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_ITEM_MIDDLE_CLICK, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_END_DRAG, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_STATE_IMAGE_CLICK, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_ITEM_GETTOOLTIP, wxTreeEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREE_ITEM_MENU, wxTreeEvent ); - -#define wxTreeEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxTreeEventFunction, func) - -#define wx__DECLARE_TREEEVT(evt, id, fn) \ - wx__DECLARE_EVT1(wxEVT_TREE_ ## evt, id, wxTreeEventHandler(fn)) - -// GetItem() returns the item being dragged, GetPoint() the mouse coords -// -// if you call event.Allow(), the drag operation will start and a -// EVT_TREE_END_DRAG event will be sent when the drag is over. -#define EVT_TREE_BEGIN_DRAG(id, fn) wx__DECLARE_TREEEVT(BEGIN_DRAG, id, fn) -#define EVT_TREE_BEGIN_RDRAG(id, fn) wx__DECLARE_TREEEVT(BEGIN_RDRAG, id, fn) - -// GetItem() is the item on which the drop occurred (if any) and GetPoint() the -// current mouse coords -#define EVT_TREE_END_DRAG(id, fn) wx__DECLARE_TREEEVT(END_DRAG, id, fn) - -// GetItem() returns the itme whose label is being edited, GetLabel() returns -// the current item label for BEGIN and the would be new one for END. -// -// Vetoing BEGIN event means that label editing won't happen at all, -// vetoing END means that the new value is discarded and the old one kept -#define EVT_TREE_BEGIN_LABEL_EDIT(id, fn) wx__DECLARE_TREEEVT(BEGIN_LABEL_EDIT, id, fn) -#define EVT_TREE_END_LABEL_EDIT(id, fn) wx__DECLARE_TREEEVT(END_LABEL_EDIT, id, fn) - -// provide/update information about GetItem() item -#define EVT_TREE_GET_INFO(id, fn) wx__DECLARE_TREEEVT(GET_INFO, id, fn) -#define EVT_TREE_SET_INFO(id, fn) wx__DECLARE_TREEEVT(SET_INFO, id, fn) - -// GetItem() is the item being expanded/collapsed, the "ING" versions can use -#define EVT_TREE_ITEM_EXPANDED(id, fn) wx__DECLARE_TREEEVT(ITEM_EXPANDED, id, fn) -#define EVT_TREE_ITEM_EXPANDING(id, fn) wx__DECLARE_TREEEVT(ITEM_EXPANDING, id, fn) -#define EVT_TREE_ITEM_COLLAPSED(id, fn) wx__DECLARE_TREEEVT(ITEM_COLLAPSED, id, fn) -#define EVT_TREE_ITEM_COLLAPSING(id, fn) wx__DECLARE_TREEEVT(ITEM_COLLAPSING, id, fn) - -// GetOldItem() is the item which had the selection previously, GetItem() is -// the item which acquires selection -#define EVT_TREE_SEL_CHANGED(id, fn) wx__DECLARE_TREEEVT(SEL_CHANGED, id, fn) -#define EVT_TREE_SEL_CHANGING(id, fn) wx__DECLARE_TREEEVT(SEL_CHANGING, id, fn) - -// GetKeyCode() returns the key code -// NB: this is the only message for which GetItem() is invalid (you may get the -// item from GetSelection()) -#define EVT_TREE_KEY_DOWN(id, fn) wx__DECLARE_TREEEVT(KEY_DOWN, id, fn) - -// GetItem() returns the item being deleted, the associated data (if any) will -// be deleted just after the return of this event handler (if any) -#define EVT_TREE_DELETE_ITEM(id, fn) wx__DECLARE_TREEEVT(DELETE_ITEM, id, fn) - -// GetItem() returns the item that was activated (double click, enter, space) -#define EVT_TREE_ITEM_ACTIVATED(id, fn) wx__DECLARE_TREEEVT(ITEM_ACTIVATED, id, fn) - -// GetItem() returns the item for which the context menu shall be shown -#define EVT_TREE_ITEM_MENU(id, fn) wx__DECLARE_TREEEVT(ITEM_MENU, id, fn) - -// GetItem() returns the item that was clicked on -#define EVT_TREE_ITEM_RIGHT_CLICK(id, fn) wx__DECLARE_TREEEVT(ITEM_RIGHT_CLICK, id, fn) -#define EVT_TREE_ITEM_MIDDLE_CLICK(id, fn) wx__DECLARE_TREEEVT(ITEM_MIDDLE_CLICK, id, fn) - -// GetItem() returns the item whose state image was clicked on -#define EVT_TREE_STATE_IMAGE_CLICK(id, fn) wx__DECLARE_TREEEVT(STATE_IMAGE_CLICK, id, fn) - -// GetItem() is the item for which the tooltip is being requested -#define EVT_TREE_ITEM_GETTOOLTIP(id, fn) wx__DECLARE_TREEEVT(ITEM_GETTOOLTIP, id, fn) - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_TREE_BEGIN_DRAG wxEVT_TREE_BEGIN_DRAG -#define wxEVT_COMMAND_TREE_BEGIN_RDRAG wxEVT_TREE_BEGIN_RDRAG -#define wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT wxEVT_TREE_BEGIN_LABEL_EDIT -#define wxEVT_COMMAND_TREE_END_LABEL_EDIT wxEVT_TREE_END_LABEL_EDIT -#define wxEVT_COMMAND_TREE_DELETE_ITEM wxEVT_TREE_DELETE_ITEM -#define wxEVT_COMMAND_TREE_GET_INFO wxEVT_TREE_GET_INFO -#define wxEVT_COMMAND_TREE_SET_INFO wxEVT_TREE_SET_INFO -#define wxEVT_COMMAND_TREE_ITEM_EXPANDED wxEVT_TREE_ITEM_EXPANDED -#define wxEVT_COMMAND_TREE_ITEM_EXPANDING wxEVT_TREE_ITEM_EXPANDING -#define wxEVT_COMMAND_TREE_ITEM_COLLAPSED wxEVT_TREE_ITEM_COLLAPSED -#define wxEVT_COMMAND_TREE_ITEM_COLLAPSING wxEVT_TREE_ITEM_COLLAPSING -#define wxEVT_COMMAND_TREE_SEL_CHANGED wxEVT_TREE_SEL_CHANGED -#define wxEVT_COMMAND_TREE_SEL_CHANGING wxEVT_TREE_SEL_CHANGING -#define wxEVT_COMMAND_TREE_KEY_DOWN wxEVT_TREE_KEY_DOWN -#define wxEVT_COMMAND_TREE_ITEM_ACTIVATED wxEVT_TREE_ITEM_ACTIVATED -#define wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK wxEVT_TREE_ITEM_RIGHT_CLICK -#define wxEVT_COMMAND_TREE_ITEM_MIDDLE_CLICK wxEVT_TREE_ITEM_MIDDLE_CLICK -#define wxEVT_COMMAND_TREE_END_DRAG wxEVT_TREE_END_DRAG -#define wxEVT_COMMAND_TREE_STATE_IMAGE_CLICK wxEVT_TREE_STATE_IMAGE_CLICK -#define wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP wxEVT_TREE_ITEM_GETTOOLTIP -#define wxEVT_COMMAND_TREE_ITEM_MENU wxEVT_TREE_ITEM_MENU - -#endif // wxUSE_TREECTRL - -#endif // _WX_TREEBASE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treebook.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treebook.h deleted file mode 100644 index 8661349c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treebook.h +++ /dev/null @@ -1,263 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/treebook.h -// Purpose: wxTreebook: wxNotebook-like control presenting pages in a tree -// Author: Evgeniy Tarassov, Vadim Zeitlin -// Modified by: -// Created: 2005-09-15 -// Copyright: (c) 2005 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TREEBOOK_H_ -#define _WX_TREEBOOK_H_ - -#include "wx/defs.h" - -#if wxUSE_TREEBOOK - -#include "wx/bookctrl.h" -#include "wx/containr.h" -#include "wx/treectrl.h" // for wxArrayTreeItemIds - -typedef wxWindow wxTreebookPage; - -class WXDLLIMPEXP_FWD_CORE wxTreeEvent; - -// ---------------------------------------------------------------------------- -// wxTreebook -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTreebook : public wxNavigationEnabled<wxBookCtrlBase> -{ -public: - // Constructors and such - // --------------------- - - // Default ctor doesn't create the control, use Create() afterwards - wxTreebook() - { - Init(); - } - - // This ctor creates the tree book control - wxTreebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxBK_DEFAULT, - const wxString& name = wxEmptyString) - { - Init(); - - (void)Create(parent, id, pos, size, style, name); - } - - // Really creates the control - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxBK_DEFAULT, - const wxString& name = wxEmptyString); - - - // Page insertion operations - // ------------------------- - - // Notice that page pointer may be NULL in which case the next non NULL - // page (usually the first child page of a node) is shown when this page is - // selected - - // Inserts a new page just before the page indicated by page. - // The new page is placed on the same level as page. - virtual bool InsertPage(size_t pos, - wxWindow *page, - const wxString& text, - bool bSelect = false, - int imageId = NO_IMAGE) wxOVERRIDE; - - // Inserts a new sub-page to the end of children of the page at given pos. - virtual bool InsertSubPage(size_t pos, - wxWindow *page, - const wxString& text, - bool bSelect = false, - int imageId = NO_IMAGE); - - // Adds a new page at top level after all other pages. - virtual bool AddPage(wxWindow *page, - const wxString& text, - bool bSelect = false, - int imageId = NO_IMAGE) wxOVERRIDE; - - // Adds a new child-page to the last top-level page inserted. - // Useful when constructing 1 level tree structure. - virtual bool AddSubPage(wxWindow *page, - const wxString& text, - bool bSelect = false, - int imageId = NO_IMAGE); - - // Deletes the page and ALL its children. Could trigger page selection - // change in a case when selected page is removed. In that case its parent - // is selected (or the next page if no parent). - virtual bool DeletePage(size_t pos) wxOVERRIDE; - - - // Tree operations - // --------------- - - // Gets the page node state -- node is expanded or collapsed - virtual bool IsNodeExpanded(size_t pos) const; - - // Expands or collapses the page node. Returns the previous state. - // May generate page changing events (if selected page - // is under the collapsed branch, then parent is autoselected). - virtual bool ExpandNode(size_t pos, bool expand = true); - - // shortcut for ExpandNode(pos, false) - bool CollapseNode(size_t pos) { return ExpandNode(pos, false); } - - // get the parent page or wxNOT_FOUND if this is a top level page - int GetPageParent(size_t pos) const; - - // the tree control we use for showing the pages index tree - wxTreeCtrl* GetTreeCtrl() const { return (wxTreeCtrl*)m_bookctrl; } - - - // Standard operations inherited from wxBookCtrlBase - // ------------------------------------------------- - - virtual bool SetPageText(size_t n, const wxString& strText) wxOVERRIDE; - virtual wxString GetPageText(size_t n) const wxOVERRIDE; - virtual int GetPageImage(size_t n) const wxOVERRIDE; - virtual bool SetPageImage(size_t n, int imageId) wxOVERRIDE; - virtual int SetSelection(size_t n) wxOVERRIDE { return DoSetSelection(n, SetSelection_SendEvent); } - virtual int ChangeSelection(size_t n) wxOVERRIDE { return DoSetSelection(n); } - virtual int HitTest(const wxPoint& pt, long *flags = NULL) const wxOVERRIDE; - virtual void SetImageList(wxImageList *imageList) wxOVERRIDE; - virtual void AssignImageList(wxImageList *imageList); - virtual bool DeleteAllPages() wxOVERRIDE; - -protected: - // Implementation of a page removal. See DeletPage for comments. - wxTreebookPage *DoRemovePage(size_t pos) wxOVERRIDE; - - // This subclass of wxBookCtrlBase accepts NULL page pointers (empty pages) - virtual bool AllowNullPage() const wxOVERRIDE { return true; } - - // event handlers - void OnTreeSelectionChange(wxTreeEvent& event); - void OnTreeNodeExpandedCollapsed(wxTreeEvent& event); - - // array of page ids and page windows - wxArrayTreeItemIds m_treeIds; - - // in the situation when m_selection page is not wxNOT_FOUND but page is - // NULL this is the first (sub)child that has a non-NULL page - int m_actualSelection; - -private: - // common part of all constructors - void Init(); - - // The real implementations of page insertion functions - // ------------------------------------------------------ - // All DoInsert/Add(Sub)Page functions add the page into : - // - the base class - // - the tree control - // - update the index/TreeItemId corespondance array - bool DoInsertPage(size_t pos, - wxWindow *page, - const wxString& text, - bool bSelect = false, - int imageId = NO_IMAGE); - bool DoInsertSubPage(size_t pos, - wxWindow *page, - const wxString& text, - bool bSelect = false, - int imageId = NO_IMAGE); - bool DoAddSubPage(wxWindow *page, - const wxString& text, - bool bSelect = false, - int imageId = NO_IMAGE); - - // Sets selection in the tree control and updates the page being shown. - int DoSetSelection(size_t pos, int flags = 0) wxOVERRIDE; - - // Returns currently shown page. In a case when selected the node - // has empty (NULL) page finds first (sub)child with not-empty page. - wxTreebookPage *DoGetCurrentPage() const; - - // Does the selection update. Called from page insertion functions - // to update selection if the selected page was pushed by the newly inserted - void DoUpdateSelection(bool bSelect, int page); - - - // Operations on the internal private members of the class - // ------------------------------------------------------- - // Returns the page TreeItemId for the page. - // Or, if the page index is incorrect, a fake one (fakePage.IsOk() == false) - wxTreeItemId DoInternalGetPage(size_t pos) const; - - // Linear search for a page with the id specified. If no page - // found wxNOT_FOUND is returned. The function is used when we catch an event - // from m_tree (wxTreeCtrl) component. - int DoInternalFindPageById(wxTreeItemId page) const; - - // Updates page and wxTreeItemId correspondance. - void DoInternalAddPage(size_t newPos, wxWindow *page, wxTreeItemId pageId); - - // Removes the page from internal structure. - void DoInternalRemovePage(size_t pos) - { DoInternalRemovePageRange(pos, 0); } - - // Removes the page and all its children designated by subCount - // from internal structures of the control. - void DoInternalRemovePageRange(size_t pos, size_t subCount); - - // Returns internal number of pages which can be different from - // GetPageCount() while performing a page insertion or removal. - size_t DoInternalGetPageCount() const { return m_treeIds.GetCount(); } - - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxTreebook); -}; - - -// ---------------------------------------------------------------------------- -// treebook event class and related stuff -// ---------------------------------------------------------------------------- - -// wxTreebookEvent is obsolete and defined for compatibility only -#define wxTreebookEvent wxBookCtrlEvent -typedef wxBookCtrlEventFunction wxTreebookEventFunction; -#define wxTreebookEventHandler(func) wxBookCtrlEventHandler(func) - - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREEBOOK_PAGE_CHANGED, wxBookCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREEBOOK_PAGE_CHANGING, wxBookCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREEBOOK_NODE_COLLAPSED, wxBookCtrlEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_CORE, wxEVT_TREEBOOK_NODE_EXPANDED, wxBookCtrlEvent ); - -#define EVT_TREEBOOK_PAGE_CHANGED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_TREEBOOK_PAGE_CHANGED, winid, wxBookCtrlEventHandler(fn)) - -#define EVT_TREEBOOK_PAGE_CHANGING(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_TREEBOOK_PAGE_CHANGING, winid, wxBookCtrlEventHandler(fn)) - -#define EVT_TREEBOOK_NODE_COLLAPSED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_TREEBOOK_NODE_COLLAPSED, winid, wxBookCtrlEventHandler(fn)) - -#define EVT_TREEBOOK_NODE_EXPANDED(winid, fn) \ - wx__DECLARE_EVT1(wxEVT_TREEBOOK_NODE_EXPANDED, winid, wxBookCtrlEventHandler(fn)) - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_TREEBOOK_PAGE_CHANGED wxEVT_TREEBOOK_PAGE_CHANGED -#define wxEVT_COMMAND_TREEBOOK_PAGE_CHANGING wxEVT_TREEBOOK_PAGE_CHANGING -#define wxEVT_COMMAND_TREEBOOK_NODE_COLLAPSED wxEVT_TREEBOOK_NODE_COLLAPSED -#define wxEVT_COMMAND_TREEBOOK_NODE_EXPANDED wxEVT_TREEBOOK_NODE_EXPANDED - - -#endif // wxUSE_TREEBOOK - -#endif // _WX_TREEBOOK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treectrl.h deleted file mode 100644 index 9dfc85fb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treectrl.h +++ /dev/null @@ -1,474 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/treectrl.h -// Purpose: wxTreeCtrl base header -// Author: Karsten Ballueder -// Modified by: -// Created: -// Copyright: (c) Karsten Ballueder -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TREECTRL_H_BASE_ -#define _WX_TREECTRL_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_TREECTRL - -#include "wx/control.h" -#include "wx/treebase.h" -#include "wx/textctrl.h" // wxTextCtrl::ms_classinfo used through wxCLASSINFO macro -#include "wx/systhemectrl.h" - -class WXDLLIMPEXP_FWD_CORE wxImageList; - -#if !defined(__WXMSW__) || defined(__WXUNIVERSAL__) - #define wxHAS_GENERIC_TREECTRL -#endif - -// ---------------------------------------------------------------------------- -// wxTreeCtrlBase -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxTreeCtrlBase : public wxSystemThemedControl<wxControl> -{ -public: - wxTreeCtrlBase(); - virtual ~wxTreeCtrlBase(); - - // accessors - // --------- - - // get the total number of items in the control - virtual unsigned int GetCount() const = 0; - - // indent is the number of pixels the children are indented relative to - // the parents position. SetIndent() also redraws the control - // immediately. - virtual unsigned int GetIndent() const = 0; - virtual void SetIndent(unsigned int indent) = 0; - - // spacing is the number of pixels between the start and the Text - // (has no effect under wxMSW) - unsigned int GetSpacing() const { return m_spacing; } - void SetSpacing(unsigned int spacing) { m_spacing = spacing; } - - // image list: these functions allow to associate an image list with - // the control and retrieve it. Note that the control does _not_ delete - // the associated image list when it's deleted in order to allow image - // lists to be shared between different controls. - // - // The normal image list is for the icons which correspond to the - // normal tree item state (whether it is selected or not). - // Additionally, the application might choose to show a state icon - // which corresponds to an app-defined item state (for example, - // checked/unchecked) which are taken from the state image list. - wxImageList *GetImageList() const { return m_imageListNormal; } - wxImageList *GetStateImageList() const { return m_imageListState; } - - virtual void SetImageList(wxImageList *imageList) = 0; - virtual void SetStateImageList(wxImageList *imageList) = 0; - void AssignImageList(wxImageList *imageList) - { - SetImageList(imageList); - m_ownsImageListNormal = true; - } - void AssignStateImageList(wxImageList *imageList) - { - SetStateImageList(imageList); - m_ownsImageListState = true; - } - - - // Functions to work with tree ctrl items. Unfortunately, they can _not_ be - // member functions of wxTreeItem because they must know the tree the item - // belongs to for Windows implementation and storing the pointer to - // wxTreeCtrl in each wxTreeItem is just too much waste. - - // accessors - // --------- - - // retrieve items label - virtual wxString GetItemText(const wxTreeItemId& item) const = 0; - // get one of the images associated with the item (normal by default) - virtual int GetItemImage(const wxTreeItemId& item, - wxTreeItemIcon which = wxTreeItemIcon_Normal) const = 0; - // get the data associated with the item - virtual wxTreeItemData *GetItemData(const wxTreeItemId& item) const = 0; - - // get the item's text colour - virtual wxColour GetItemTextColour(const wxTreeItemId& item) const = 0; - - // get the item's background colour - virtual wxColour GetItemBackgroundColour(const wxTreeItemId& item) const = 0; - - // get the item's font - virtual wxFont GetItemFont(const wxTreeItemId& item) const = 0; - - // get the items state - int GetItemState(const wxTreeItemId& item) const - { - return DoGetItemState(item); - } - - // modifiers - // --------- - - // set items label - virtual void SetItemText(const wxTreeItemId& item, const wxString& text) = 0; - // set one of the images associated with the item (normal by default) - virtual void SetItemImage(const wxTreeItemId& item, - int image, - wxTreeItemIcon which = wxTreeItemIcon_Normal) = 0; - // associate some data with the item - virtual void SetItemData(const wxTreeItemId& item, wxTreeItemData *data) = 0; - - // force appearance of [+] button near the item. This is useful to - // allow the user to expand the items which don't have any children now - // - but instead add them only when needed, thus minimizing memory - // usage and loading time. - virtual void SetItemHasChildren(const wxTreeItemId& item, - bool has = true) = 0; - - // the item will be shown in bold - virtual void SetItemBold(const wxTreeItemId& item, bool bold = true) = 0; - - // the item will be shown with a drop highlight - virtual void SetItemDropHighlight(const wxTreeItemId& item, - bool highlight = true) = 0; - - // set the items text colour - virtual void SetItemTextColour(const wxTreeItemId& item, - const wxColour& col) = 0; - - // set the items background colour - virtual void SetItemBackgroundColour(const wxTreeItemId& item, - const wxColour& col) = 0; - - // set the items font (should be of the same height for all items) - virtual void SetItemFont(const wxTreeItemId& item, - const wxFont& font) = 0; - - // set the items state (special state values: wxTREE_ITEMSTATE_NONE/NEXT/PREV) - void SetItemState(const wxTreeItemId& item, int state); - - // item status inquiries - // --------------------- - - // is the item visible (it might be outside the view or not expanded)? - virtual bool IsVisible(const wxTreeItemId& item) const = 0; - // does the item has any children? - virtual bool ItemHasChildren(const wxTreeItemId& item) const = 0; - // same as above - bool HasChildren(const wxTreeItemId& item) const - { return ItemHasChildren(item); } - // is the item expanded (only makes sense if HasChildren())? - virtual bool IsExpanded(const wxTreeItemId& item) const = 0; - // is this item currently selected (the same as has focus)? - virtual bool IsSelected(const wxTreeItemId& item) const = 0; - // is item text in bold font? - virtual bool IsBold(const wxTreeItemId& item) const = 0; - // is the control empty? - bool IsEmpty() const; - - - // number of children - // ------------------ - - // if 'recursively' is false, only immediate children count, otherwise - // the returned number is the number of all items in this branch - virtual size_t GetChildrenCount(const wxTreeItemId& item, - bool recursively = true) const = 0; - - // navigation - // ---------- - - // wxTreeItemId.IsOk() will return false if there is no such item - - // get the root tree item - virtual wxTreeItemId GetRootItem() const = 0; - - // get the item currently selected (may return NULL if no selection) - virtual wxTreeItemId GetSelection() const = 0; - - // get the items currently selected, return the number of such item - // - // NB: this operation is expensive and can take a long time for a - // control with a lot of items (~ O(number of items)). - virtual size_t GetSelections(wxArrayTreeItemIds& selections) const = 0; - - // get the last item to be clicked when the control has wxTR_MULTIPLE - // equivalent to GetSelection() if not wxTR_MULTIPLE - virtual wxTreeItemId GetFocusedItem() const = 0; - - - // Clears the currently focused item - virtual void ClearFocusedItem() = 0; - // Sets the currently focused item. Item should be valid - virtual void SetFocusedItem(const wxTreeItemId& item) = 0; - - - // get the parent of this item (may return NULL if root) - virtual wxTreeItemId GetItemParent(const wxTreeItemId& item) const = 0; - - // for this enumeration function you must pass in a "cookie" parameter - // which is opaque for the application but is necessary for the library - // to make these functions reentrant (i.e. allow more than one - // enumeration on one and the same object simultaneously). Of course, - // the "cookie" passed to GetFirstChild() and GetNextChild() should be - // the same! - - // get the first child of this item - virtual wxTreeItemId GetFirstChild(const wxTreeItemId& item, - wxTreeItemIdValue& cookie) const = 0; - // get the next child - virtual wxTreeItemId GetNextChild(const wxTreeItemId& item, - wxTreeItemIdValue& cookie) const = 0; - // get the last child of this item - this method doesn't use cookies - virtual wxTreeItemId GetLastChild(const wxTreeItemId& item) const = 0; - - // get the next sibling of this item - virtual wxTreeItemId GetNextSibling(const wxTreeItemId& item) const = 0; - // get the previous sibling - virtual wxTreeItemId GetPrevSibling(const wxTreeItemId& item) const = 0; - - // get first visible item - virtual wxTreeItemId GetFirstVisibleItem() const = 0; - // get the next visible item: item must be visible itself! - // see IsVisible() and wxTreeCtrl::GetFirstVisibleItem() - virtual wxTreeItemId GetNextVisible(const wxTreeItemId& item) const = 0; - // get the previous visible item: item must be visible itself! - virtual wxTreeItemId GetPrevVisible(const wxTreeItemId& item) const = 0; - - // operations - // ---------- - - // add the root node to the tree - virtual wxTreeItemId AddRoot(const wxString& text, - int image = -1, int selImage = -1, - wxTreeItemData *data = NULL) = 0; - - // insert a new item in as the first child of the parent - wxTreeItemId PrependItem(const wxTreeItemId& parent, - const wxString& text, - int image = -1, int selImage = -1, - wxTreeItemData *data = NULL) - { - return DoInsertItem(parent, 0u, text, image, selImage, data); - } - - // insert a new item after a given one - wxTreeItemId InsertItem(const wxTreeItemId& parent, - const wxTreeItemId& idPrevious, - const wxString& text, - int image = -1, int selImage = -1, - wxTreeItemData *data = NULL) - { - return DoInsertAfter(parent, idPrevious, text, image, selImage, data); - } - - // insert a new item before the one with the given index - wxTreeItemId InsertItem(const wxTreeItemId& parent, - size_t pos, - const wxString& text, - int image = -1, int selImage = -1, - wxTreeItemData *data = NULL) - { - return DoInsertItem(parent, pos, text, image, selImage, data); - } - - // insert a new item in as the last child of the parent - wxTreeItemId AppendItem(const wxTreeItemId& parent, - const wxString& text, - int image = -1, int selImage = -1, - wxTreeItemData *data = NULL) - { - return DoInsertItem(parent, (size_t)-1, text, image, selImage, data); - } - - // delete this item and associated data if any - virtual void Delete(const wxTreeItemId& item) = 0; - // delete all children (but don't delete the item itself) - // NB: this won't send wxEVT_TREE_ITEM_DELETED events - virtual void DeleteChildren(const wxTreeItemId& item) = 0; - // delete all items from the tree - // NB: this won't send wxEVT_TREE_ITEM_DELETED events - virtual void DeleteAllItems() = 0; - - // expand this item - virtual void Expand(const wxTreeItemId& item) = 0; - // expand the item and all its children recursively - void ExpandAllChildren(const wxTreeItemId& item); - // expand all items - void ExpandAll(); - // collapse the item without removing its children - virtual void Collapse(const wxTreeItemId& item) = 0; - // collapse the item and all its children - void CollapseAllChildren(const wxTreeItemId& item); - // collapse all items - void CollapseAll(); - // collapse the item and remove all children - virtual void CollapseAndReset(const wxTreeItemId& item) = 0; - // toggles the current state - virtual void Toggle(const wxTreeItemId& item) = 0; - - // remove the selection from currently selected item (if any) - virtual void Unselect() = 0; - // unselect all items (only makes sense for multiple selection control) - virtual void UnselectAll() = 0; - // select this item - virtual void SelectItem(const wxTreeItemId& item, bool select = true) = 0; - // selects all (direct) children for given parent (only for - // multiselection controls) - virtual void SelectChildren(const wxTreeItemId& parent) = 0; - // unselect this item - void UnselectItem(const wxTreeItemId& item) { SelectItem(item, false); } - // toggle item selection - void ToggleItemSelection(const wxTreeItemId& item) - { - SelectItem(item, !IsSelected(item)); - } - - // make sure this item is visible (expanding the parent item and/or - // scrolling to this item if necessary) - virtual void EnsureVisible(const wxTreeItemId& item) = 0; - // scroll to this item (but don't expand its parent) - virtual void ScrollTo(const wxTreeItemId& item) = 0; - - // start editing the item label: this (temporarily) replaces the item - // with a one line edit control. The item will be selected if it hadn't - // been before. textCtrlClass parameter allows you to create an edit - // control of arbitrary user-defined class deriving from wxTextCtrl. - virtual wxTextCtrl *EditLabel(const wxTreeItemId& item, - wxClassInfo* textCtrlClass = wxCLASSINFO(wxTextCtrl)) = 0; - // returns the same pointer as StartEdit() if the item is being edited, - // NULL otherwise (it's assumed that no more than one item may be - // edited simultaneously) - virtual wxTextCtrl *GetEditControl() const = 0; - // end editing and accept or discard the changes to item label - virtual void EndEditLabel(const wxTreeItemId& item, - bool discardChanges = false) = 0; - - // Enable or disable beep when incremental match doesn't find any item. - // Only implemented in the generic version currently. - virtual void EnableBellOnNoMatch(bool WXUNUSED(on) = true) { } - - // sorting - // ------- - - // this function is called to compare 2 items and should return -1, 0 - // or +1 if the first item is less than, equal to or greater than the - // second one. The base class version performs alphabetic comparaison - // of item labels (GetText) - virtual int OnCompareItems(const wxTreeItemId& item1, - const wxTreeItemId& item2) - { - return wxStrcmp(GetItemText(item1), GetItemText(item2)); - } - - // sort the children of this item using OnCompareItems - // - // NB: this function is not reentrant and not MT-safe (FIXME)! - virtual void SortChildren(const wxTreeItemId& item) = 0; - - // items geometry - // -------------- - - // determine to which item (if any) belongs the given point (the - // coordinates specified are relative to the client area of tree ctrl) - // and, in the second variant, fill the flags parameter with a bitmask - // of wxTREE_HITTEST_xxx constants. - wxTreeItemId HitTest(const wxPoint& point) const - { int dummy; return DoTreeHitTest(point, dummy); } - wxTreeItemId HitTest(const wxPoint& point, int& flags) const - { return DoTreeHitTest(point, flags); } - - // get the bounding rectangle of the item (or of its label only) - virtual bool GetBoundingRect(const wxTreeItemId& item, - wxRect& rect, - bool textOnly = false) const = 0; - - - // implementation - // -------------- - - virtual bool ShouldInheritColours() const wxOVERRIDE { return false; } - - // hint whether to calculate best size quickly or accurately - void SetQuickBestSize(bool q) { m_quickBestSize = q; } - bool GetQuickBestSize() const { return m_quickBestSize; } - -protected: - virtual wxSize DoGetBestSize() const wxOVERRIDE; - - // common part of Get/SetItemState() - virtual int DoGetItemState(const wxTreeItemId& item) const = 0; - virtual void DoSetItemState(const wxTreeItemId& item, int state) = 0; - - // common part of Append/Prepend/InsertItem() - // - // pos is the position at which to insert the item or (size_t)-1 to append - // it to the end - virtual wxTreeItemId DoInsertItem(const wxTreeItemId& parent, - size_t pos, - const wxString& text, - int image, int selImage, - wxTreeItemData *data) = 0; - - // and this function implements overloaded InsertItem() taking wxTreeItemId - // (it can't be called InsertItem() as we'd have virtual function hiding - // problem in derived classes then) - virtual wxTreeItemId DoInsertAfter(const wxTreeItemId& parent, - const wxTreeItemId& idPrevious, - const wxString& text, - int image = -1, int selImage = -1, - wxTreeItemData *data = NULL) = 0; - - // real HitTest() implementation: again, can't be called just HitTest() - // because it's overloaded and so the non-virtual overload would be hidden - // (and can't be called DoHitTest() because this is already in wxWindow) - virtual wxTreeItemId DoTreeHitTest(const wxPoint& point, - int& flags) const = 0; - - - wxImageList *m_imageListNormal, // images for tree elements - *m_imageListState; // special images for app defined states - bool m_ownsImageListNormal, - m_ownsImageListState; - - // spacing between left border and the text - unsigned int m_spacing; - - // whether full or quick calculation is done in DoGetBestSize - bool m_quickBestSize; - - -private: - // Intercept Escape and Return keys to ensure that our in-place edit - // control always gets them before they're used for dialog navigation or - // anything else. - void OnCharHook(wxKeyEvent& event); - - - wxDECLARE_NO_COPY_CLASS(wxTreeCtrlBase); -}; - -// ---------------------------------------------------------------------------- -// include the platform-dependent wxTreeCtrl class -// ---------------------------------------------------------------------------- - -#ifdef wxHAS_GENERIC_TREECTRL - #include "wx/generic/treectlg.h" -#elif defined(__WXMSW__) - #include "wx/msw/treectrl.h" -#else - #error "unknown native wxTreeCtrl implementation" -#endif - -#endif // wxUSE_TREECTRL - -#endif // _WX_TREECTRL_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treelist.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treelist.h deleted file mode 100644 index 9782903e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/treelist.h +++ /dev/null @@ -1,577 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/treelist.h -// Purpose: wxTreeListCtrl class declaration. -// Author: Vadim Zeitlin -// Created: 2011-08-17 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TREELIST_H_ -#define _WX_TREELIST_H_ - -#include "wx/defs.h" - -#if wxUSE_TREELISTCTRL - -#include "wx/compositewin.h" -#include "wx/containr.h" -#include "wx/headercol.h" -#include "wx/itemid.h" -#include "wx/vector.h" -#include "wx/window.h" -#include "wx/withimages.h" - -class WXDLLIMPEXP_FWD_ADV wxDataViewCtrl; -class WXDLLIMPEXP_FWD_ADV wxDataViewEvent; - -extern WXDLLIMPEXP_DATA_ADV(const char) wxTreeListCtrlNameStr[]; - -class wxTreeListCtrl; -class wxTreeListModel; -class wxTreeListModelNode; - -// ---------------------------------------------------------------------------- -// Constants. -// ---------------------------------------------------------------------------- - -// wxTreeListCtrl styles. -// -// Notice that using wxTL_USER_3STATE implies wxTL_3STATE and wxTL_3STATE in -// turn implies wxTL_CHECKBOX. -enum -{ - wxTL_SINGLE = 0x0000, // This is the default anyhow. - wxTL_MULTIPLE = 0x0001, // Allow multiple selection. - wxTL_CHECKBOX = 0x0002, // Show checkboxes in the first column. - wxTL_3STATE = 0x0004, // Allow 3rd state in checkboxes. - wxTL_USER_3STATE = 0x0008, // Allow user to set 3rd state. - wxTL_NO_HEADER = 0x0010, // Column titles not visible. - - wxTL_DEFAULT_STYLE = wxTL_SINGLE, - wxTL_STYLE_MASK = wxTL_SINGLE | - wxTL_MULTIPLE | - wxTL_CHECKBOX | - wxTL_3STATE | - wxTL_USER_3STATE -}; - -// ---------------------------------------------------------------------------- -// wxTreeListItem: unique identifier of an item in wxTreeListCtrl. -// ---------------------------------------------------------------------------- - -// Make wxTreeListItem a forward-declarable class even though it's simple -// enough to possibly be declared as a simple typedef. -class wxTreeListItem : public wxItemId<wxTreeListModelNode*> -{ -public: - wxTreeListItem(wxTreeListModelNode* item = NULL) - : wxItemId<wxTreeListModelNode*>(item) - { - } -}; - -// Container of multiple items. -typedef wxVector<wxTreeListItem> wxTreeListItems; - -// Some special "items" that can be used with InsertItem(): -extern WXDLLIMPEXP_DATA_ADV(const wxTreeListItem) wxTLI_FIRST; -extern WXDLLIMPEXP_DATA_ADV(const wxTreeListItem) wxTLI_LAST; - -// ---------------------------------------------------------------------------- -// wxTreeListItemComparator: defines order of wxTreeListCtrl items. -// ---------------------------------------------------------------------------- - -class wxTreeListItemComparator -{ -public: - wxTreeListItemComparator() { } - - // The comparison function should return negative, null or positive value - // depending on whether the first item is less than, equal to or greater - // than the second one. The items should be compared using their values for - // the given column. - virtual int - Compare(wxTreeListCtrl* treelist, - unsigned column, - wxTreeListItem first, - wxTreeListItem second) = 0; - - // Although this class is not used polymorphically by wxWidgets itself, - // provide virtual dtor in case it's used like this in the user code. - virtual ~wxTreeListItemComparator() { } - -private: - wxDECLARE_NO_COPY_CLASS(wxTreeListItemComparator); -}; - -// ---------------------------------------------------------------------------- -// wxTreeListCtrl: a control combining wxTree- and wxListCtrl features. -// ---------------------------------------------------------------------------- - -// This control also provides easy to use high level interface. Although the -// implementation uses wxDataViewCtrl internally, this class is intentionally -// simpler than wxDataViewCtrl and doesn't provide all of its functionality. -// -// If you need extra features you can always use GetDataView() accessor to work -// with wxDataViewCtrl directly but doing this makes your unportable to possible -// future non-wxDataViewCtrl-based implementations of this class. - -class WXDLLIMPEXP_ADV wxTreeListCtrl - : public wxCompositeWindow< wxNavigationEnabled<wxWindow> >, - public wxWithImages -{ -public: - // Constructors and such - // --------------------- - - wxTreeListCtrl() { Init(); } - wxTreeListCtrl(wxWindow* parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTL_DEFAULT_STYLE, - const wxString& name = wxTreeListCtrlNameStr) - { - Init(); - - Create(parent, id, pos, size, style, name); - } - - bool Create(wxWindow* parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTL_DEFAULT_STYLE, - const wxString& name = wxTreeListCtrlNameStr); - - - virtual ~wxTreeListCtrl(); - - // Columns methods - // --------------- - - // Add a column with the given title and attributes, returns the index of - // the new column or -1 on failure. - int AppendColumn(const wxString& title, - int width = wxCOL_WIDTH_AUTOSIZE, - wxAlignment align = wxALIGN_LEFT, - int flags = wxCOL_RESIZABLE) - { - return DoInsertColumn(title, -1, width, align, flags); - } - - // Return the total number of columns. - unsigned GetColumnCount() const; - - // Delete the column with the given index, returns false if index is - // invalid or deleting the column failed for some other reason. - bool DeleteColumn(unsigned col); - - // Delete all columns. - void ClearColumns(); - - // Set column width to either the given value in pixels or to the value - // large enough to fit all of the items if width == wxCOL_WIDTH_AUTOSIZE. - void SetColumnWidth(unsigned col, int width); - - // Get the current width of the given column in pixels. - int GetColumnWidth(unsigned col) const; - - // Get the width appropriate for showing the given text. This is typically - // used as second argument for AppendColumn() or with SetColumnWidth(). - int WidthFor(const wxString& text) const; - - - // Item methods - // ------------ - - // Adding items. The parent and text of the first column of the new item - // must always be specified, the rest is optional. - // - // Each item can have two images: one used for closed state and another for - // opened one. Only the first one is ever used for the items that don't - // have children. And both are not set by default. - // - // It is also possible to associate arbitrary client data pointer with the - // new item. It will be deleted by the control when the item is deleted - // (either by an explicit DeleteItem() call or because the entire control - // is destroyed). - - wxTreeListItem AppendItem(wxTreeListItem parent, - const wxString& text, - int imageClosed = NO_IMAGE, - int imageOpened = NO_IMAGE, - wxClientData* data = NULL) - { - return DoInsertItem(parent, wxTLI_LAST, text, - imageClosed, imageOpened, data); - } - - wxTreeListItem InsertItem(wxTreeListItem parent, - wxTreeListItem previous, - const wxString& text, - int imageClosed = NO_IMAGE, - int imageOpened = NO_IMAGE, - wxClientData* data = NULL) - { - return DoInsertItem(parent, previous, text, - imageClosed, imageOpened, data); - } - - wxTreeListItem PrependItem(wxTreeListItem parent, - const wxString& text, - int imageClosed = NO_IMAGE, - int imageOpened = NO_IMAGE, - wxClientData* data = NULL) - { - return DoInsertItem(parent, wxTLI_FIRST, text, - imageClosed, imageOpened, data); - } - - // Deleting items. - void DeleteItem(wxTreeListItem item); - void DeleteAllItems(); - - - // Tree navigation - // --------------- - - // Return the (never shown) root item. - wxTreeListItem GetRootItem() const; - - // The parent item may be invalid for the root-level items. - wxTreeListItem GetItemParent(wxTreeListItem item) const; - - // Iterate over the given item children: start by calling GetFirstChild() - // and then call GetNextSibling() for as long as it returns valid item. - wxTreeListItem GetFirstChild(wxTreeListItem item) const; - wxTreeListItem GetNextSibling(wxTreeListItem item) const; - - // Return the first child of the root item, which is also the first item of - // the tree in depth-first traversal order. - wxTreeListItem GetFirstItem() const { return GetFirstChild(GetRootItem()); } - - // Get item after the given one in the depth-first tree-traversal order. - // Calling this function starting with the result of GetFirstItem() allows - // iterating over all items in the tree. - wxTreeListItem GetNextItem(wxTreeListItem item) const; - - - // Items attributes - // ---------------- - - const wxString& GetItemText(wxTreeListItem item, unsigned col = 0) const; - - // The convenience overload below sets the text for the first column. - void SetItemText(wxTreeListItem item, unsigned col, const wxString& text); - void SetItemText(wxTreeListItem item, const wxString& text) - { - SetItemText(item, 0, text); - } - - // By default the opened image is the same as the normal, closed one (if - // it's used at all). - void SetItemImage(wxTreeListItem item, int closed, int opened = NO_IMAGE); - - // Retrieve or set the data associated with the item. - wxClientData* GetItemData(wxTreeListItem item) const; - void SetItemData(wxTreeListItem item, wxClientData* data); - - - // Expanding and collapsing - // ------------------------ - - void Expand(wxTreeListItem item); - void Collapse(wxTreeListItem item); - bool IsExpanded(wxTreeListItem item) const; - - - // Selection handling - // ------------------ - - // This function can be used with single selection controls, use - // GetSelections() with the multi-selection ones. - wxTreeListItem GetSelection() const; - - // This one can be used with either single or multi-selection controls. - unsigned GetSelections(wxTreeListItems& selections) const; - - // In single selection mode Select() deselects any other selected items, in - // multi-selection case it adds to the selection. - void Select(wxTreeListItem item); - - // Can be used in multiple selection mode only, single selected item in the - // single selection mode can't be unselected. - void Unselect(wxTreeListItem item); - - // Return true if the item is selected, can be used in both single and - // multiple selection modes. - bool IsSelected(wxTreeListItem item) const; - - // Select or unselect all items, only valid in multiple selection mode. - void SelectAll(); - void UnselectAll(); - - void EnsureVisible(wxTreeListItem item); - - // Checkbox handling - // ----------------- - - // Methods in this section can only be used with the controls created with - // wxTL_CHECKBOX style. - - // Simple set, unset or query the checked state. - void CheckItem(wxTreeListItem item, wxCheckBoxState state = wxCHK_CHECKED); - void UncheckItem(wxTreeListItem item) { CheckItem(item, wxCHK_UNCHECKED); } - - // The same but do it recursively for this item itself and its children. - void CheckItemRecursively(wxTreeListItem item, - wxCheckBoxState state = wxCHK_CHECKED); - - // Update the parent of this item recursively: if this item and all its - // siblings are checked, the parent will become checked as well. If this - // item and all its siblings are unchecked, the parent will be unchecked. - // And if the siblings of this item are not all in the same state, the - // parent will be switched to indeterminate state. And then the same logic - // will be applied to the parents parent and so on recursively. - // - // This is typically called when the state of the given item has changed - // from EVT_TREELIST_ITEM_CHECKED() handler in the controls which have - // wxTL_3STATE flag. Notice that without this flag this function can't work - // as it would be unable to set the state of a parent with both checked and - // unchecked items so it's only allowed to call it when this flag is set. - void UpdateItemParentStateRecursively(wxTreeListItem item); - - // Return the current state. - wxCheckBoxState GetCheckedState(wxTreeListItem item) const; - - // Return true if all item children (if any) are in the given state. - bool AreAllChildrenInState(wxTreeListItem item, - wxCheckBoxState state) const; - - - - // Sorting. - // -------- - - // Sort by the given column, either in ascending (default) or descending - // sort order. - // - // By default, simple alphabetical sorting is done by this column contents - // but SetItemComparator() may be called to perform comparison in some - // other way. - void SetSortColumn(unsigned col, bool ascendingOrder = true); - - // If the control contents is sorted, return true and fill the output - // parameters with the column which is currently used for sorting and - // whether we sort using ascending or descending order. Otherwise, i.e. if - // the control contents is unsorted, simply return false. - bool GetSortColumn(unsigned* col, bool* ascendingOrder = NULL); - - // Set the object to use for comparing the items. It will be called when - // the control is being sorted because the user clicked on a sortable - // column. - // - // The provided pointer is stored by the control so the object it points to - // must have a life-time equal or greater to that of the control itself. In - // addition, the pointer can be NULL to stop using custom comparator and - // revert to the default alphabetical comparison. - void SetItemComparator(wxTreeListItemComparator* comparator); - - - // View window functions. - // ---------------------- - - // This control itself is entirely covered by the "view window" which is - // currently a wxDataViewCtrl but if you want to avoid relying on this to - // allow your code to work with later versions which might not be - // wxDataViewCtrl-based, use the first function only and only use the - // second one if you really need to call wxDataViewCtrl methods on it. - wxWindow* GetView() const; - wxDataViewCtrl* GetDataView() const { return m_view; } - -private: - // Common part of all ctors. - void Init(); - - // Pure virtual method inherited from wxCompositeWindow. - virtual wxWindowList GetCompositeWindowParts() const wxOVERRIDE; - - // Implementation of AppendColumn(). - int DoInsertColumn(const wxString& title, - int pos, // May be -1 meaning "append". - int width, - wxAlignment align, - int flags); - - // Common part of {Append,Insert,Prepend}Item(). - wxTreeListItem DoInsertItem(wxTreeListItem parent, - wxTreeListItem previous, - const wxString& text, - int imageClosed, - int imageOpened, - wxClientData* data); - - // Send wxTreeListEvent corresponding to the given wxDataViewEvent for an - // item (as opposed for column-oriented events). - // - // Also updates the original event "skipped" and "vetoed" flags. - void SendItemEvent(wxEventType evt, wxDataViewEvent& event); - - // Send wxTreeListEvent corresponding to the given column wxDataViewEvent. - void SendColumnEvent(wxEventType evt, wxDataViewEvent& event); - - - // Called by wxTreeListModel when an item is toggled by the user. - void OnItemToggled(wxTreeListItem item, wxCheckBoxState stateOld); - - // Event handlers. - void OnSelectionChanged(wxDataViewEvent& event); - void OnItemExpanding(wxDataViewEvent& event); - void OnItemExpanded(wxDataViewEvent& event); - void OnItemActivated(wxDataViewEvent& event); - void OnItemContextMenu(wxDataViewEvent& event); - void OnColumnSorted(wxDataViewEvent& event); - void OnSize(wxSizeEvent& event); - - wxDECLARE_EVENT_TABLE(); - - - wxDataViewCtrl* m_view; - wxTreeListModel* m_model; - - wxTreeListItemComparator* m_comparator; - - - // It calls our inherited protected wxWithImages::GetImage() method. - friend class wxTreeListModel; - - wxDECLARE_NO_COPY_CLASS(wxTreeListCtrl); -}; - -// ---------------------------------------------------------------------------- -// wxTreeListEvent: event generated by wxTreeListCtrl. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxTreeListEvent : public wxNotifyEvent -{ -public: - // Default ctor is provided for wxRTTI needs only but should never be used. - wxTreeListEvent() { Init(); } - - // The item affected by the event. Valid for all events except - // column-specific ones such as COLUMN_SORTED. - wxTreeListItem GetItem() const { return m_item; } - - // The previous state of the item checkbox for ITEM_CHECKED events only. - wxCheckBoxState GetOldCheckedState() const { return m_oldCheckedState; } - - // The index of the column affected by the event. Currently only used by - // COLUMN_SORTED event. - unsigned GetColumn() const { return m_column; } - - virtual wxEvent* Clone() const wxOVERRIDE { return new wxTreeListEvent(*this); } - -private: - // Common part of all ctors. - void Init() - { - m_column = static_cast<unsigned>(-1); - - m_oldCheckedState = wxCHK_UNDETERMINED; - } - - // Ctor is private, only wxTreeListCtrl can create events of this type. - wxTreeListEvent(wxEventType evtType, - wxTreeListCtrl* treelist, - wxTreeListItem item) - : wxNotifyEvent(evtType, treelist->GetId()), - m_item(item) - { - SetEventObject(treelist); - - Init(); - } - - // Set the checkbox state before this event for ITEM_CHECKED events. - void SetOldCheckedState(wxCheckBoxState state) - { - m_oldCheckedState = state; - } - - // Set the column affected by this event for COLUMN_SORTED events. - void SetColumn(unsigned column) - { - m_column = column; - } - - - const wxTreeListItem m_item; - - wxCheckBoxState m_oldCheckedState; - - unsigned m_column; - - friend class wxTreeListCtrl; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxTreeListEvent); -}; - -// Event types and event table macros. - -typedef void (wxEvtHandler::*wxTreeListEventFunction)(wxTreeListEvent&); - -#define wxTreeListEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxTreeListEventFunction, func) - -#define wxEVT_TREELIST_GENERIC(name, id, fn) \ - wx__DECLARE_EVT1(wxEVT_TREELIST_##name, id, wxTreeListEventHandler(fn)) - -#define wxDECLARE_TREELIST_EVENT(name) \ - wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, \ - wxEVT_TREELIST_##name, \ - wxTreeListEvent) - -wxDECLARE_TREELIST_EVENT(SELECTION_CHANGED); -#define EVT_TREELIST_SELECTION_CHANGED(id, fn) \ - wxEVT_TREELIST_GENERIC(SELECTION_CHANGED, id, fn) - -wxDECLARE_TREELIST_EVENT(ITEM_EXPANDING); -#define EVT_TREELIST_ITEM_EXPANDING(id, fn) \ - wxEVT_TREELIST_GENERIC(ITEM_EXPANDING, id, fn) - -wxDECLARE_TREELIST_EVENT(ITEM_EXPANDED); -#define EVT_TREELIST_ITEM_EXPANDED(id, fn) \ - wxEVT_TREELIST_GENERIC(ITEM_EXPANDED, id, fn) - -wxDECLARE_TREELIST_EVENT(ITEM_CHECKED); -#define EVT_TREELIST_ITEM_CHECKED(id, fn) \ - wxEVT_TREELIST_GENERIC(ITEM_CHECKED, id, fn) - -wxDECLARE_TREELIST_EVENT(ITEM_ACTIVATED); -#define EVT_TREELIST_ITEM_ACTIVATED(id, fn) \ - wxEVT_TREELIST_GENERIC(ITEM_ACTIVATED, id, fn) - -wxDECLARE_TREELIST_EVENT(ITEM_CONTEXT_MENU); -#define EVT_TREELIST_ITEM_CONTEXT_MENU(id, fn) \ - wxEVT_TREELIST_GENERIC(ITEM_CONTEXT_MENU, id, fn) - -wxDECLARE_TREELIST_EVENT(COLUMN_SORTED); -#define EVT_TREELIST_COLUMN_SORTED(id, fn) \ - wxEVT_TREELIST_GENERIC(COLUMN_SORTED, id, fn) - -#undef wxDECLARE_TREELIST_EVENT - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_TREELIST_SELECTION_CHANGED wxEVT_TREELIST_SELECTION_CHANGED -#define wxEVT_COMMAND_TREELIST_ITEM_EXPANDING wxEVT_TREELIST_ITEM_EXPANDING -#define wxEVT_COMMAND_TREELIST_ITEM_EXPANDED wxEVT_TREELIST_ITEM_EXPANDED -#define wxEVT_COMMAND_TREELIST_ITEM_CHECKED wxEVT_TREELIST_ITEM_CHECKED -#define wxEVT_COMMAND_TREELIST_ITEM_ACTIVATED wxEVT_TREELIST_ITEM_ACTIVATED -#define wxEVT_COMMAND_TREELIST_ITEM_CONTEXT_MENU wxEVT_TREELIST_ITEM_CONTEXT_MENU -#define wxEVT_COMMAND_TREELIST_COLUMN_SORTED wxEVT_TREELIST_COLUMN_SORTED - -#endif // wxUSE_TREELISTCTRL - -#endif // _WX_TREELIST_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/txtstrm.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/txtstrm.h deleted file mode 100644 index 8fc43a17..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/txtstrm.h +++ /dev/null @@ -1,192 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/txtstrm.h -// Purpose: Text stream classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 28/06/1998 -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TXTSTREAM_H_ -#define _WX_TXTSTREAM_H_ - -#include "wx/stream.h" -#include "wx/convauto.h" - -#if wxUSE_STREAMS - -class WXDLLIMPEXP_FWD_BASE wxTextInputStream; -class WXDLLIMPEXP_FWD_BASE wxTextOutputStream; - -typedef wxTextInputStream& (*__wxTextInputManip)(wxTextInputStream&); -typedef wxTextOutputStream& (*__wxTextOutputManip)(wxTextOutputStream&); - -WXDLLIMPEXP_BASE wxTextOutputStream &endl( wxTextOutputStream &stream ); - - -#define wxEOT wxT('\4') // the End-Of-Text control code (used only inside wxTextInputStream) - -// If you're scanning through a file using wxTextInputStream, you should check for EOF _before_ -// reading the next item (word / number), because otherwise the last item may get lost. -// You should however be prepared to receive an empty item (empty string / zero number) at the -// end of file, especially on Windows systems. This is unavoidable because most (but not all) files end -// with whitespace (i.e. usually a newline). -class WXDLLIMPEXP_BASE wxTextInputStream -{ -public: -#if wxUSE_UNICODE - wxTextInputStream(wxInputStream& s, - const wxString &sep=wxT(" \t"), - const wxMBConv& conv = wxConvAuto()); -#else - wxTextInputStream(wxInputStream& s, const wxString &sep=wxT(" \t")); -#endif - ~wxTextInputStream(); - - const wxInputStream& GetInputStream() const { return m_input; } - - // base may be between 2 and 36, inclusive, or the special 0 (= C format) - wxUint64 Read64(int base = 10); - wxUint32 Read32(int base = 10); - wxUint16 Read16(int base = 10); - wxUint8 Read8(int base = 10); - wxInt64 Read64S(int base = 10); - wxInt32 Read32S(int base = 10); - wxInt16 Read16S(int base = 10); - wxInt8 Read8S(int base = 10); - double ReadDouble(); - wxString ReadLine(); - wxString ReadWord(); - wxChar GetChar() { wxChar c = NextChar(); return (wxChar)(c != wxEOT ? c : 0); } - - wxString GetStringSeparators() const { return m_separators; } - void SetStringSeparators(const wxString &c) { m_separators = c; } - - // Operators - wxTextInputStream& operator>>(wxString& word); - wxTextInputStream& operator>>(char& c); -#if wxUSE_UNICODE && wxWCHAR_T_IS_REAL_TYPE - wxTextInputStream& operator>>(wchar_t& wc); -#endif // wxUSE_UNICODE - wxTextInputStream& operator>>(wxInt16& i); - wxTextInputStream& operator>>(wxInt32& i); - wxTextInputStream& operator>>(wxInt64& i); - wxTextInputStream& operator>>(wxUint16& i); - wxTextInputStream& operator>>(wxUint32& i); - wxTextInputStream& operator>>(wxUint64& i); - wxTextInputStream& operator>>(double& i); - wxTextInputStream& operator>>(float& f); - - wxTextInputStream& operator>>( __wxTextInputManip func) { return func(*this); } - -protected: - wxInputStream &m_input; - wxString m_separators; - char m_lastBytes[10]; // stores the bytes that were read for the last character - -#if wxUSE_UNICODE - wxMBConv *m_conv; - - // The second half of a surrogate character when using UTF-16 for wchar_t: - // we can't return it immediately from GetChar() when we read a Unicode - // code point outside of the BMP, but we can't keep it in m_lastBytes - // neither because it can't separately decoded, so we have a separate 1 - // wchar_t buffer just for this case. -#if SIZEOF_WCHAR_T == 2 - wchar_t m_lastWChar; -#endif // SIZEOF_WCHAR_T == 2 -#endif // wxUSE_UNICODE - - bool EatEOL(const wxChar &c); - void UngetLast(); // should be used instead of wxInputStream::Ungetch() because of Unicode issues - // returns EOT (\4) if there is a stream error, or end of file - wxChar NextChar(); // this should be used instead of GetC() because of Unicode issues - wxChar NextNonSeparators(); - - wxDECLARE_NO_COPY_CLASS(wxTextInputStream); -}; - -enum wxEOL -{ - wxEOL_NATIVE, - wxEOL_UNIX, - wxEOL_MAC, - wxEOL_DOS -}; - -class WXDLLIMPEXP_BASE wxTextOutputStream -{ -public: -#if wxUSE_UNICODE - wxTextOutputStream(wxOutputStream& s, - wxEOL mode = wxEOL_NATIVE, - const wxMBConv& conv = wxConvAuto()); -#else - wxTextOutputStream(wxOutputStream& s, wxEOL mode = wxEOL_NATIVE); -#endif - virtual ~wxTextOutputStream(); - - const wxOutputStream& GetOutputStream() const { return m_output; } - - void SetMode( wxEOL mode = wxEOL_NATIVE ); - wxEOL GetMode() { return m_mode; } - - template<typename T> - void Write(const T& i) - { - wxString str; - str << i; - - WriteString(str); - } - - void Write64(wxUint64 i); - void Write32(wxUint32 i); - void Write16(wxUint16 i); - void Write8(wxUint8 i); - virtual void WriteDouble(double d); - virtual void WriteString(const wxString& string); - - wxTextOutputStream& PutChar(wxChar c); - - void Flush(); - - wxTextOutputStream& operator<<(const wxString& string); - wxTextOutputStream& operator<<(char c); -#if wxUSE_UNICODE && wxWCHAR_T_IS_REAL_TYPE - wxTextOutputStream& operator<<(wchar_t wc); -#endif // wxUSE_UNICODE - wxTextOutputStream& operator<<(wxInt16 c); - wxTextOutputStream& operator<<(wxInt32 c); - wxTextOutputStream& operator<<(wxInt64 c); - wxTextOutputStream& operator<<(wxUint16 c); - wxTextOutputStream& operator<<(wxUint32 c); - wxTextOutputStream& operator<<(wxUint64 c); - wxTextOutputStream& operator<<(double f); - wxTextOutputStream& operator<<(float f); - - wxTextOutputStream& operator<<( __wxTextOutputManip func) { return func(*this); } - -protected: - wxOutputStream &m_output; - wxEOL m_mode; - -#if wxUSE_UNICODE - wxMBConv *m_conv; - -#if SIZEOF_WCHAR_T == 2 - // The first half of a surrogate character if one was passed to PutChar() - // and couldn't be output when it was called the last time. - wchar_t m_lastWChar; -#endif // SIZEOF_WCHAR_T == 2 -#endif // wxUSE_UNICODE - - wxDECLARE_NO_COPY_CLASS(wxTextOutputStream); -}; - -#endif - // wxUSE_STREAMS - -#endif - // _WX_DATSTREAM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/typeinfo.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/typeinfo.h deleted file mode 100644 index a783af5d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/typeinfo.h +++ /dev/null @@ -1,147 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/typeinfo.h -// Purpose: wxTypeId implementation -// Author: Jaakko Salli -// Created: 2009-11-19 -// Copyright: (c) wxWidgets Team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TYPEINFO_H_ -#define _WX_TYPEINFO_H_ - -// -// This file defines wxTypeId macro that should be used internally in -// wxWidgets instead of typeid(), for compatibility with builds that do -// not implement C++ RTTI. Also, type defining macros in this file are -// intended for internal use only at this time and may change in future -// versions. -// -// The reason why we need this simple RTTI system in addition to the older -// wxObject-based one is that the latter does not work in template -// classes. -// - -#include "wx/defs.h" - -#ifndef wxNO_RTTI - -// -// Let's trust that Visual C++ versions 9.0 and later implement C++ -// RTTI well enough, so we can use it and work around harmless memory -// leaks reported by the static run-time libraries. -// -#if wxCHECK_VISUALC_VERSION(9) - #define wxTRUST_CPP_RTTI 1 -#else - #define wxTRUST_CPP_RTTI 0 -#endif - -#include <typeinfo> -#include <string.h> - -#define _WX_DECLARE_TYPEINFO_CUSTOM(CLS, IDENTFUNC) -#define WX_DECLARE_TYPEINFO_INLINE(CLS) -#define WX_DECLARE_TYPEINFO(CLS) -#define WX_DEFINE_TYPEINFO(CLS) -#define WX_DECLARE_ABSTRACT_TYPEINFO(CLS) - -#if wxTRUST_CPP_RTTI - -#define wxTypeId typeid - -#else /* !wxTRUST_CPP_RTTI */ - -// -// For improved type-safety, let's make the check using class name -// comparison. Most modern compilers already do this, but we cannot -// rely on all supported compilers to work this well. However, in -// cases where we'd know that typeid() would be flawless (as such), -// wxTypeId could of course simply be defined as typeid. -// - -class wxTypeIdentifier -{ -public: - wxTypeIdentifier(const char* className) - { - m_className = className; - } - - bool operator==(const wxTypeIdentifier& other) - { - return strcmp(m_className, other.m_className) == 0; - } - - bool operator!=(const wxTypeIdentifier& other) - { - return strcmp(m_className, other.m_className) != 0; - } -private: - const char* m_className; -}; - -#define wxTypeId(OBJ) wxTypeIdentifier(typeid(OBJ).name()) - -#endif /* wxTRUST_CPP_RTTI/!wxTRUST_CPP_RTTI */ - -#else // if !wxNO_RTTI - -#define wxTRUST_CPP_RTTI 0 - -// -// When C++ RTTI is not available, we will have to make the type comparison -// using pointer to a dummy static member function. This will fail if -// declared type is used across DLL boundaries, although using -// WX_DECLARE_TYPEINFO() and WX_DEFINE_TYPEINFO() pair instead of -// WX_DECLARE_TYPEINFO_INLINE() should fix this. However, that approach is -// usually not possible when type info needs to be declared for a template -// class. -// - -typedef void (*wxTypeIdentifier)(); - -// Use this macro to declare type info with specified static function -// IDENTFUNC used as type identifier. Usually you should only use -// WX_DECLARE_TYPEINFO() or WX_DECLARE_TYPEINFO_INLINE() however. -#define _WX_DECLARE_TYPEINFO_CUSTOM(CLS, IDENTFUNC) \ -public: \ - virtual wxTypeIdentifier GetWxTypeId() const \ - { \ - return reinterpret_cast<wxTypeIdentifier> \ - (&IDENTFUNC); \ - } - -// Use this macro to declare type info with externally specified -// type identifier, defined with WX_DEFINE_TYPEINFO(). -#define WX_DECLARE_TYPEINFO(CLS) \ -private: \ - static CLS sm_wxClassInfo(); \ -_WX_DECLARE_TYPEINFO_CUSTOM(CLS, sm_wxClassInfo) - -// Use this macro to implement type identifier function required by -// WX_DECLARE_TYPEINFO(). -// NOTE: CLS is required to have default ctor. If it doesn't -// already, you should provide a private dummy one. -#define WX_DEFINE_TYPEINFO(CLS) \ -CLS CLS::sm_wxClassInfo() { return CLS(); } - -// Use this macro to declare type info fully inline in class. -// NOTE: CLS is required to have default ctor. If it doesn't -// already, you should provide a private dummy one. -#define WX_DECLARE_TYPEINFO_INLINE(CLS) \ -private: \ - static CLS sm_wxClassInfo() { return CLS(); } \ -_WX_DECLARE_TYPEINFO_CUSTOM(CLS, sm_wxClassInfo) - -#define wxTypeId(OBJ) (OBJ).GetWxTypeId() - -// Because abstract classes cannot be instantiated, we use -// this macro to define pure virtual type interface for them. -#define WX_DECLARE_ABSTRACT_TYPEINFO(CLS) \ -public: \ - virtual wxTypeIdentifier GetWxTypeId() const = 0; - -#endif // wxNO_RTTI/!wxNO_RTTI - -#endif // _WX_TYPEINFO_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/types.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/types.h deleted file mode 100644 index 2e585821..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/types.h +++ /dev/null @@ -1,92 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/types.h -// Purpose: Type identifiers, used by resource system -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TYPESH__ -#define _WX_TYPESH__ - -// Types of objects -#define wxTYPE_ANY 0 -#define wxTYPE_OBJECT wxTYPE_ANY -#define wxTYPE_WINDOW 1 -#define wxTYPE_DIALOG_BOX 2 -#define wxTYPE_ITEM 3 -#define wxTYPE_PANEL 4 -#define wxTYPE_CANVAS 5 -#define wxTYPE_TEXT_WINDOW 6 -#define wxTYPE_FRAME 7 - -#define wxTYPE_BUTTON 8 -#define wxTYPE_TEXT 9 -#define wxTYPE_MESSAGE 10 -#define wxTYPE_CHOICE 11 -#define wxTYPE_LIST_BOX 12 -#define wxTYPE_SLIDER 13 -#define wxTYPE_CHECK_BOX 14 -#define wxTYPE_MENU 15 -#define wxTYPE_MENU_BAR 16 -#define wxTYPE_MULTI_TEXT 17 -#define wxTYPE_RADIO_BOX 18 -#define wxTYPE_GROUP_BOX 19 -#define wxTYPE_GAUGE 20 -#define wxTYPE_SCROLL_BAR 21 -#define wxTYPE_VIRT_LIST_BOX 22 -#define wxTYPE_COMBO_BOX 23 -#define wxTYPE_RADIO_BUTTON 24 - -#define wxTYPE_EVENT 25 -#define wxTYPE_DC 26 -#define wxTYPE_DC_CANVAS 27 -#define wxTYPE_DC_POSTSCRIPT 28 -#define wxTYPE_DC_PRINTER 29 -#define wxTYPE_DC_METAFILE 30 -#define wxTYPE_DC_MEMORY 31 -#define wxTYPE_MOUSE_EVENT 32 -#define wxTYPE_KEY_EVENT 33 -#define wxTYPE_COMMAND_EVENT 34 -#define wxTYPE_DC_PANEL 35 - -#define wxTYPE_PEN 40 -#define wxTYPE_BRUSH 41 -#define wxTYPE_FONT 42 -#define wxTYPE_ICON 42 -#define wxTYPE_BITMAP 43 -#define wxTYPE_METAFILE 44 -#define wxTYPE_TIMER 45 -#define wxTYPE_COLOUR 46 -#define wxTYPE_COLOURMAP 47 -#define wxTYPE_CURSOR 48 - -#define wxTYPE_DDE_CLIENT 60 -#define wxTYPE_DDE_SERVER 61 -#define wxTYPE_DDE_CONNECTION 62 - -#define wxTYPE_HELP_INSTANCE 63 - -#define wxTYPE_LIST 70 -#define wxTYPE_STRING_LIST 71 -#define wxTYPE_HASH_TABLE 72 -#define wxTYPE_NODE 73 -#define wxTYPE_APP 74 -#define wxTYPE_DATE 75 - -#define wxTYPE_ENHANCED_DIALOG 80 -#define wxTYPE_TOOLBAR 81 -#define wxTYPE_BUTTONBAR 82 - -#define wxTYPE_DATABASE 90 -#define wxTYPE_QUERY_FIELD 91 -#define wxTYPE_QUERY_COL 92 -#define wxTYPE_RECORDSET 93 - -#define wxTYPE_USER 500 - -#endif - // _WX_TYPESH__ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/uiaction.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/uiaction.h deleted file mode 100644 index 498da698..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/uiaction.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/uiaction.h -// Purpose: wxUIActionSimulator interface -// Author: Kevin Ollivier, Steven Lamerton, Vadim Zeitlin -// Modified by: -// Created: 2010-03-06 -// Copyright: (c) Kevin Ollivier -// (c) 2010 Steven Lamerton -// (c) 2010 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_UIACTIONSIMULATOR_H_ -#define _WX_UIACTIONSIMULATOR_H_ - -#include "wx/defs.h" - -#if wxUSE_UIACTIONSIMULATOR - -#include "wx/mousestate.h" // for wxMOUSE_BTN_XXX constants - -class WXDLLIMPEXP_CORE wxUIActionSimulator -{ -public: - wxUIActionSimulator() { } - - - // Default dtor, copy ctor and assignment operator are ok (even though the - // last two don't make much sense for this class). - - - // Mouse simulation - // ---------------- - - // Low level methods - bool MouseMove(long x, long y); - bool MouseMove(const wxPoint& point) { return MouseMove(point.x, point.y); } - - bool MouseDown(int button = wxMOUSE_BTN_LEFT); - bool MouseUp(int button = wxMOUSE_BTN_LEFT); - - // Higher level interface, use it if possible instead - bool MouseClick(int button = wxMOUSE_BTN_LEFT); - bool MouseDblClick(int button = wxMOUSE_BTN_LEFT); - bool MouseDragDrop(long x1, long y1, long x2, long y2, - int button = wxMOUSE_BTN_LEFT); - bool MouseDragDrop(const wxPoint& p1, const wxPoint& p2, - int button = wxMOUSE_BTN_LEFT) - { return MouseDragDrop(p1.x, p1.y, p2.x, p2.y, button); } - - // Keyboard simulation - // ------------------- - - // Low level methods for generating key presses and releases - bool KeyDown(int keycode, int modifiers = wxMOD_NONE) - { return Key(keycode, modifiers, true); } - - bool KeyUp(int keycode, int modifiers = wxMOD_NONE) - { return Key(keycode, modifiers, false); } - - // Higher level methods for generating both the key press and release for a - // single key or for all characters in the ASCII string "text" which can currently - // contain letters, digits and characters for the definition of numbers [+-., ]. - bool Char(int keycode, int modifiers = wxMOD_NONE); - - bool Text(const char *text); - - // Select the item with the given text in the currently focused control. - bool Select(const wxString& text); - -private: - // This is the common part of Key{Down,Up}() methods: while we keep them - // separate at public API level for consistency with Mouse{Down,Up}(), at - // implementation level it makes more sense to have them in a single - // function. - // - // It calls DoModifiers() to simulate pressing the modifier keys if - // necessary and then DoKey() for the key itself. - bool Key(int keycode, int modifiers, bool isDown); - - // Call DoKey() for all modifier keys whose bits are set in the parameter. - void SimulateModifiers(int modifier, bool isDown); - - - // The low-level port-specific function which really generates the key - // presses. It should generate exactly one key event with the given - // parameters. - bool DoKey(int keycode, int modifiers, bool isDown); -}; - -#endif // wxUSE_UIACTIONSIMULATOR - -#endif // _WX_UIACTIONSIMULATOR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/unichar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/unichar.h deleted file mode 100644 index a966d590..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/unichar.h +++ /dev/null @@ -1,338 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/unichar.h -// Purpose: wxUniChar and wxUniCharRef classes -// Author: Vaclav Slavik -// Created: 2007-03-19 -// Copyright: (c) 2007 REA Elektronik GmbH -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_UNICHAR_H_ -#define _WX_UNICHAR_H_ - -#include "wx/defs.h" -#include "wx/chartype.h" -#include "wx/stringimpl.h" - -#include <algorithm> // only for std::swap specialization below - -class WXDLLIMPEXP_FWD_BASE wxUniCharRef; -class WXDLLIMPEXP_FWD_BASE wxString; - -// This class represents single Unicode character. It can be converted to -// and from char or wchar_t and implements commonly used character operations. -class WXDLLIMPEXP_BASE wxUniChar -{ -public: - // NB: this is not wchar_t on purpose, it needs to represent the entire - // Unicode code points range and wchar_t may be too small for that - // (e.g. on Win32 where wchar_t* is encoded in UTF-16) - typedef wxUint32 value_type; - - wxUniChar() : m_value(0) {} - - // Create the character from 8bit character value encoded in the current - // locale's charset. - wxUniChar(char c) { m_value = From8bit(c); } - wxUniChar(unsigned char c) { m_value = From8bit((char)c); } - -#define wxUNICHAR_DEFINE_CTOR(type) \ - wxUniChar(type c) { m_value = (value_type)c; } - wxDO_FOR_INT_TYPES(wxUNICHAR_DEFINE_CTOR) -#undef wxUNICHAR_DEFINE_CTOR - - wxUniChar(const wxUniCharRef& c); - - // Returns Unicode code point value of the character - value_type GetValue() const { return m_value; } - -#if wxUSE_UNICODE_UTF8 - // buffer for single UTF-8 character - struct Utf8CharBuffer - { - char data[5]; - operator const char*() const { return data; } - }; - - // returns the character encoded as UTF-8 - // (NB: implemented in stringops.cpp) - Utf8CharBuffer AsUTF8() const; -#endif // wxUSE_UNICODE_UTF8 - - // Returns true if the character is an ASCII character: - bool IsAscii() const { return m_value < 0x80; } - - // Returns true if the character is representable as a single byte in the - // current locale encoding and return this byte in output argument c (which - // must be non-NULL) - bool GetAsChar(char *c) const - { -#if wxUSE_UNICODE - if ( !IsAscii() ) - { -#if !wxUSE_UTF8_LOCALE_ONLY - if ( GetAsHi8bit(m_value, c) ) - return true; -#endif // !wxUSE_UTF8_LOCALE_ONLY - - return false; - } -#endif // wxUSE_UNICODE - - *c = wx_truncate_cast(char, m_value); - return true; - } - - // Conversions to char and wchar_t types: all of those are needed to be - // able to pass wxUniChars to verious standard narrow and wide character - // functions - operator char() const { return To8bit(m_value); } - operator unsigned char() const { return (unsigned char)To8bit(m_value); } - -#define wxUNICHAR_DEFINE_OPERATOR_PAREN(type) \ - operator type() const { return (type)m_value; } - wxDO_FOR_INT_TYPES(wxUNICHAR_DEFINE_OPERATOR_PAREN) -#undef wxUNICHAR_DEFINE_OPERATOR_PAREN - - // We need this operator for the "*p" part of expressions like "for ( - // const_iterator p = begin() + nStart; *p; ++p )". In this case, - // compilation would fail without it because the conversion to bool would - // be ambiguous (there are all these int types conversions...). (And adding - // operator unspecified_bool_type() would only makes the ambiguity worse.) - operator bool() const { return m_value != 0; } - bool operator!() const { return !((bool)*this); } - - // And this one is needed by some (not all, but not using ifdefs makes the - // code easier) compilers to parse "str[0] && *p" successfully - bool operator&&(bool v) const { return (bool)*this && v; } - - // Assignment operators: - wxUniChar& operator=(const wxUniChar& c) { if (&c != this) m_value = c.m_value; return *this; } - wxUniChar& operator=(const wxUniCharRef& c); - wxUniChar& operator=(char c) { m_value = From8bit(c); return *this; } - wxUniChar& operator=(unsigned char c) { m_value = From8bit((char)c); return *this; } - -#define wxUNICHAR_DEFINE_OPERATOR_EQUAL(type) \ - wxUniChar& operator=(type c) { m_value = (value_type)c; return *this; } - wxDO_FOR_INT_TYPES(wxUNICHAR_DEFINE_OPERATOR_EQUAL) -#undef wxUNICHAR_DEFINE_OPERATOR_EQUAL - - // Comparison operators: -#define wxDEFINE_UNICHAR_CMP_WITH_INT(T, op) \ - bool operator op(T c) const { return m_value op (value_type)c; } - - // define the given comparison operator for all the types -#define wxDEFINE_UNICHAR_OPERATOR(op) \ - bool operator op(const wxUniChar& c) const { return m_value op c.m_value; }\ - bool operator op(char c) const { return m_value op From8bit(c); } \ - bool operator op(unsigned char c) const { return m_value op From8bit((char)c); } \ - wxDO_FOR_INT_TYPES_1(wxDEFINE_UNICHAR_CMP_WITH_INT, op) - - wxFOR_ALL_COMPARISONS(wxDEFINE_UNICHAR_OPERATOR) - -#undef wxDEFINE_UNICHAR_OPERATOR -#undef wxDEFINE_UNCHAR_CMP_WITH_INT - - // this is needed for expressions like 'Z'-c - int operator-(const wxUniChar& c) const { return m_value - c.m_value; } - int operator-(char c) const { return m_value - From8bit(c); } - int operator-(unsigned char c) const { return m_value - From8bit((char)c); } - int operator-(wchar_t c) const { return m_value - (value_type)c; } - - -private: - // notice that we implement these functions inline for 7-bit ASCII - // characters purely for performance reasons - static value_type From8bit(char c) - { -#if wxUSE_UNICODE - if ( (unsigned char)c < 0x80 ) - return c; - - return FromHi8bit(c); -#else - return c; -#endif - } - - static char To8bit(value_type c) - { -#if wxUSE_UNICODE - if ( c < 0x80 ) - return wx_truncate_cast(char, c); - - return ToHi8bit(c); -#else - return wx_truncate_cast(char, c); -#endif - } - - // helpers of the functions above called to deal with non-ASCII chars - static value_type FromHi8bit(char c); - static char ToHi8bit(value_type v); - static bool GetAsHi8bit(value_type v, char *c); - -private: - value_type m_value; -}; - - -// Writeable reference to a character in wxString. -// -// This class can be used in the same way wxChar is used, except that changing -// its value updates the underlying string object. -class WXDLLIMPEXP_BASE wxUniCharRef -{ -private: - typedef wxStringImpl::iterator iterator; - - // create the reference -#if wxUSE_UNICODE_UTF8 - wxUniCharRef(wxString& str, iterator pos) : m_str(str), m_pos(pos) {} -#else - wxUniCharRef(iterator pos) : m_pos(pos) {} -#endif - -public: - // NB: we have to make this public, because we don't have wxString - // declaration available here and so can't declare wxString::iterator - // as friend; so at least don't use a ctor but a static function - // that must be used explicitly (this is more than using 'explicit' - // keyword on ctor!): -#if wxUSE_UNICODE_UTF8 - static wxUniCharRef CreateForString(wxString& str, iterator pos) - { return wxUniCharRef(str, pos); } -#else - static wxUniCharRef CreateForString(iterator pos) - { return wxUniCharRef(pos); } -#endif - - wxUniChar::value_type GetValue() const { return UniChar().GetValue(); } - -#if wxUSE_UNICODE_UTF8 - wxUniChar::Utf8CharBuffer AsUTF8() const { return UniChar().AsUTF8(); } -#endif // wxUSE_UNICODE_UTF8 - - bool IsAscii() const { return UniChar().IsAscii(); } - bool GetAsChar(char *c) const { return UniChar().GetAsChar(c); } - - // Assignment operators: -#if wxUSE_UNICODE_UTF8 - wxUniCharRef& operator=(const wxUniChar& c); -#else - wxUniCharRef& operator=(const wxUniChar& c) { *m_pos = c; return *this; } -#endif - - wxUniCharRef& operator=(const wxUniCharRef& c) - { if (&c != this) *this = c.UniChar(); return *this; } - -#define wxUNICHAR_REF_DEFINE_OPERATOR_EQUAL(type) \ - wxUniCharRef& operator=(type c) { return *this = wxUniChar(c); } - wxDO_FOR_CHAR_INT_TYPES(wxUNICHAR_REF_DEFINE_OPERATOR_EQUAL) -#undef wxUNICHAR_REF_DEFINE_OPERATOR_EQUAL - - // Conversions to the same types as wxUniChar is convertible too: -#define wxUNICHAR_REF_DEFINE_OPERATOR_PAREN(type) \ - operator type() const { return UniChar(); } - wxDO_FOR_CHAR_INT_TYPES(wxUNICHAR_REF_DEFINE_OPERATOR_PAREN) -#undef wxUNICHAR_REF_DEFINE_OPERATOR_PAREN - - // see wxUniChar::operator bool etc. for explanation - operator bool() const { return (bool)UniChar(); } - bool operator!() const { return !UniChar(); } - bool operator&&(bool v) const { return UniChar() && v; } - -#define wxDEFINE_UNICHARREF_CMP_WITH_INT(T, op) \ - bool operator op(T c) const { return UniChar() op c; } - - // Comparison operators: -#define wxDEFINE_UNICHARREF_OPERATOR(op) \ - bool operator op(const wxUniCharRef& c) const { return UniChar() op c.UniChar(); }\ - bool operator op(const wxUniChar& c) const { return UniChar() op c; } \ - wxDO_FOR_CHAR_INT_TYPES_1(wxDEFINE_UNICHARREF_CMP_WITH_INT, op) - - wxFOR_ALL_COMPARISONS(wxDEFINE_UNICHARREF_OPERATOR) - -#undef wxDEFINE_UNICHARREF_OPERATOR -#undef wxDEFINE_UNICHARREF_CMP_WITH_INT - - // for expressions like c-'A': - int operator-(const wxUniCharRef& c) const { return UniChar() - c.UniChar(); } - int operator-(const wxUniChar& c) const { return UniChar() - c; } - int operator-(char c) const { return UniChar() - c; } - int operator-(unsigned char c) const { return UniChar() - c; } - int operator-(wchar_t c) const { return UniChar() - c; } - -private: -#if wxUSE_UNICODE_UTF8 - wxUniChar UniChar() const; -#else - wxUniChar UniChar() const { return *m_pos; } -#endif - - friend class WXDLLIMPEXP_FWD_BASE wxUniChar; - -private: - // reference to the string and pointer to the character in string -#if wxUSE_UNICODE_UTF8 - wxString& m_str; -#endif - iterator m_pos; -}; - -inline wxUniChar::wxUniChar(const wxUniCharRef& c) -{ - m_value = c.UniChar().m_value; -} - -inline wxUniChar& wxUniChar::operator=(const wxUniCharRef& c) -{ - m_value = c.UniChar().m_value; - return *this; -} - -// wxUniCharRef doesn't behave quite like a reference, notably because template -// deduction from wxUniCharRef doesn't yield wxUniChar as would have been the -// case if it were a real reference. This results in a number of problems and -// we can't fix all of them but we can at least provide a working swap() for -// it, instead of the default version which doesn't work because a "wrong" type -// is deduced. -namespace std -{ - -template <> -inline -void swap<wxUniCharRef>(wxUniCharRef& lhs, wxUniCharRef& rhs) -{ - if ( &lhs != &rhs ) - { - // The use of wxUniChar here is the crucial difference: in the default - // implementation, tmp would be wxUniCharRef and so assigning to lhs - // would modify it too. Here we make a real copy, not affected by - // changing lhs, instead. - wxUniChar tmp = lhs; - lhs = rhs; - rhs = tmp; - } -} - -} // namespace std - - -// Comparison operators for the case when wxUniChar(Ref) is the second operand -// implemented in terms of member comparison functions - -wxDEFINE_COMPARISONS_BY_REV(char, const wxUniChar&) -wxDEFINE_COMPARISONS_BY_REV(char, const wxUniCharRef&) - -wxDEFINE_COMPARISONS_BY_REV(wchar_t, const wxUniChar&) -wxDEFINE_COMPARISONS_BY_REV(wchar_t, const wxUniCharRef&) - -wxDEFINE_COMPARISONS_BY_REV(const wxUniChar&, const wxUniCharRef&) - -// for expressions like c-'A': -inline int operator-(char c1, const wxUniCharRef& c2) { return -(c2 - c1); } -inline int operator-(const wxUniChar& c1, const wxUniCharRef& c2) { return -(c2 - c1); } -inline int operator-(wchar_t c1, const wxUniCharRef& c2) { return -(c2 - c1); } - -#endif /* _WX_UNICHAR_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/uri.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/uri.h deleted file mode 100644 index 828428e9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/uri.h +++ /dev/null @@ -1,183 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/uri.h -// Purpose: wxURI - Class for parsing URIs -// Author: Ryan Norton -// Vadim Zeitlin (UTF-8 URI support, many other changes) -// Created: 07/01/2004 -// Copyright: (c) 2004 Ryan Norton -// 2008 Vadim Zeitlin -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_URI_H_ -#define _WX_URI_H_ - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/arrstr.h" - -// Host Type that the server component can be -enum wxURIHostType -{ - wxURI_REGNAME, // Host is a normal register name (www.mysite.com etc.) - wxURI_IPV4ADDRESS, // Host is a version 4 ip address (192.168.1.100) - wxURI_IPV6ADDRESS, // Host is a version 6 ip address [aa:aa:aa:aa::aa:aa]:5050 - wxURI_IPVFUTURE // Host is a future ip address (wxURI is unsure what kind) -}; - -// Component Flags -enum wxURIFieldType -{ - wxURI_SCHEME = 1, - wxURI_USERINFO = 2, - wxURI_SERVER = 4, - wxURI_PORT = 8, - wxURI_PATH = 16, - wxURI_QUERY = 32, - wxURI_FRAGMENT = 64 -}; - -// Miscellaneous other flags -enum wxURIFlags -{ - wxURI_STRICT = 1 -}; - - -// Generic class for parsing URIs. -// -// See RFC 3986 -class WXDLLIMPEXP_BASE wxURI : public wxObject -{ -public: - wxURI(); - wxURI(const wxString& uri); - - // default copy ctor, assignment operator and dtor are ok - - bool Create(const wxString& uri); - - wxURI& operator=(const wxString& string) - { - Create(string); - return *this; - } - - bool operator==(const wxURI& uri) const; - - // various accessors - - bool HasScheme() const { return (m_fields & wxURI_SCHEME) != 0; } - bool HasUserInfo() const { return (m_fields & wxURI_USERINFO) != 0; } - bool HasServer() const { return (m_fields & wxURI_SERVER) != 0; } - bool HasPort() const { return (m_fields & wxURI_PORT) != 0; } - bool HasPath() const { return (m_fields & wxURI_PATH) != 0; } - bool HasQuery() const { return (m_fields & wxURI_QUERY) != 0; } - bool HasFragment() const { return (m_fields & wxURI_FRAGMENT) != 0; } - - const wxString& GetScheme() const { return m_scheme; } - const wxString& GetPath() const { return m_path; } - const wxString& GetQuery() const { return m_query; } - const wxString& GetFragment() const { return m_fragment; } - const wxString& GetPort() const { return m_port; } - const wxString& GetUserInfo() const { return m_userinfo; } - const wxString& GetServer() const { return m_server; } - wxURIHostType GetHostType() const { return m_hostType; } - - // these functions only work if the user information part of the URI is in - // the usual (but insecure and hence explicitly recommended against by the - // RFC) "user:password" form - wxString GetUser() const; - wxString GetPassword() const; - - - // combine all URI components into a single string - // - // BuildURI() returns the real URI suitable for use with network libraries, - // for example, while BuildUnescapedURI() returns a string suitable to be - // shown to the user. - wxString BuildURI() const { return DoBuildURI(&wxURI::Nothing); } - wxString BuildUnescapedURI() const { return DoBuildURI(&wxURI::Unescape); } - - // the escaped URI should contain only ASCII characters, including possible - // escape sequences - static wxString Unescape(const wxString& escapedURI); - - - void Resolve(const wxURI& base, int flags = wxURI_STRICT); - bool IsReference() const; - bool IsRelative() const; - -protected: - void Clear(); - - // common part of BuildURI() and BuildUnescapedURI() - wxString DoBuildURI(wxString (*funcDecode)(const wxString&)) const; - - // function which returns its argument unmodified, this is used by - // BuildURI() to tell DoBuildURI() that nothing needs to be done with the - // URI components - static wxString Nothing(const wxString& value) { return value; } - - bool Parse(const char* uri); - - const char* ParseAuthority (const char* uri); - const char* ParseScheme (const char* uri); - const char* ParseUserInfo (const char* uri); - const char* ParseServer (const char* uri); - const char* ParsePort (const char* uri); - const char* ParsePath (const char* uri); - const char* ParseQuery (const char* uri); - const char* ParseFragment (const char* uri); - - - static bool ParseH16(const char*& uri); - static bool ParseIPv4address(const char*& uri); - static bool ParseIPv6address(const char*& uri); - static bool ParseIPvFuture(const char*& uri); - - // append next character pointer to by p to the string in an escaped form - // and advance p past it - // - // if the next character is '%' and it's followed by 2 hex digits, they are - // not escaped (again) by this function, this allows to keep (backwards- - // compatible) ambiguity about the input format to wxURI::Create(): it can - // be either already escaped or not - void AppendNextEscaped(wxString& s, const char *& p); - - // convert hexadecimal digit to its value; return -1 if c isn't valid - static int CharToHex(char c); - - // split an URI path string in its component segments (including empty and - // "." ones, no post-processing is done) - static wxArrayString SplitInSegments(const wxString& path); - - // various URI grammar helpers - static bool IsUnreserved(char c); - static bool IsReserved(char c); - static bool IsGenDelim(char c); - static bool IsSubDelim(char c); - static bool IsHex(char c); - static bool IsAlpha(char c); - static bool IsDigit(char c); - static bool IsEndPath(char c); - - wxString m_scheme; - wxString m_path; - wxString m_query; - wxString m_fragment; - - wxString m_userinfo; - wxString m_server; - wxString m_port; - - wxURIHostType m_hostType; - - size_t m_fields; - - wxDECLARE_DYNAMIC_CLASS(wxURI); -}; - -#endif // _WX_URI_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/url.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/url.h deleted file mode 100644 index 457b043b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/url.h +++ /dev/null @@ -1,116 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/url.h -// Purpose: URL parser -// Author: Guilhem Lavaux -// Modified by: Ryan Norton -// Created: 20/07/1997 -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_URL_H -#define _WX_URL_H - -#include "wx/defs.h" - -#if wxUSE_URL - -#include "wx/uri.h" -#include "wx/protocol/protocol.h" - -#if wxUSE_PROTOCOL_HTTP - #include "wx/protocol/http.h" -#endif - -enum wxURLError { - wxURL_NOERR = 0, - wxURL_SNTXERR, - wxURL_NOPROTO, - wxURL_NOHOST, - wxURL_NOPATH, - wxURL_CONNERR, - wxURL_PROTOERR -}; - -#if wxUSE_URL_NATIVE -class WXDLLIMPEXP_FWD_NET wxURL; - -class WXDLLIMPEXP_NET wxURLNativeImp : public wxObject -{ -public: - virtual ~wxURLNativeImp() { } - virtual wxInputStream *GetInputStream(wxURL *owner) = 0; -}; -#endif // wxUSE_URL_NATIVE - -class WXDLLIMPEXP_NET wxURL : public wxURI -{ -public: - wxURL(const wxString& sUrl = wxEmptyString); - wxURL(const wxURI& uri); - wxURL(const wxURL& url); - virtual ~wxURL(); - - wxURL& operator = (const wxString& url); - wxURL& operator = (const wxURI& uri); - wxURL& operator = (const wxURL& url); - - wxProtocol& GetProtocol() { return *m_protocol; } - wxURLError GetError() const { return m_error; } - wxString GetURL() const { return m_url; } - - wxURLError SetURL(const wxString &url) - { *this = url; return m_error; } - - bool IsOk() const - { return m_error == wxURL_NOERR; } - - wxInputStream *GetInputStream(); - -#if wxUSE_PROTOCOL_HTTP - static void SetDefaultProxy(const wxString& url_proxy); - void SetProxy(const wxString& url_proxy); -#endif // wxUSE_PROTOCOL_HTTP - -protected: - static wxProtoInfo *ms_protocols; - -#if wxUSE_PROTOCOL_HTTP - static wxHTTP *ms_proxyDefault; - static bool ms_useDefaultProxy; - wxHTTP *m_proxy; - bool m_useProxy; -#endif // wxUSE_PROTOCOL_HTTP - -#if wxUSE_URL_NATIVE - friend class wxURLNativeImp; - // pointer to a native URL implementation object - wxURLNativeImp *m_nativeImp; - // Creates on the heap and returns a native - // implementation object for the current platform. - static wxURLNativeImp *CreateNativeImpObject(); -#endif // wxUSE_URL_NATIVE - - wxProtoInfo *m_protoinfo; - wxProtocol *m_protocol; - - wxURLError m_error; - wxString m_url; - - void Init(const wxString&); - bool ParseURL(); - void CleanData(); - void Free(); - bool FetchProtocol(); - - friend class wxProtoInfo; - friend class wxURLModule; - -private: - wxDECLARE_DYNAMIC_CLASS(wxURL); -}; - -#endif // wxUSE_URL - -#endif // _WX_URL_H - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ustring.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ustring.h deleted file mode 100644 index 25934f6d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/ustring.h +++ /dev/null @@ -1,705 +0,0 @@ - -// Name: wx/ustring.h -// Purpose: 32-bit string (UCS-4) -// Author: Robert Roebling -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_USTRING_H_ -#define _WX_USTRING_H_ - -#include "wx/defs.h" -#include "wx/string.h" - -#include <string> - -#if SIZEOF_WCHAR_T == 2 -typedef wxWCharBuffer wxU16CharBuffer; -typedef wxScopedWCharBuffer wxScopedU16CharBuffer; -#else -typedef wxCharTypeBuffer<wxChar16> wxU16CharBuffer; -typedef wxScopedCharTypeBuffer<wxChar16> wxScopedU16CharBuffer; -#endif - -#if SIZEOF_WCHAR_T == 4 -typedef wxWCharBuffer wxU32CharBuffer; -typedef wxScopedWCharBuffer wxScopedU32CharBuffer; -#else -typedef wxCharTypeBuffer<wxChar32> wxU32CharBuffer; -typedef wxScopedCharTypeBuffer<wxChar32> wxScopedU32CharBuffer; -#endif - -#ifdef __VISUALC__ - // "non dll-interface class 'std::basic_string<wxChar32>' used as base - // interface for dll-interface class 'wxString'" -- this is OK in our case - // (and warning is unavoidable anyhow) - #pragma warning(push) - #pragma warning(disable:4275) -#endif - -class WXDLLIMPEXP_BASE wxUString: public std::basic_string<wxChar32> -{ -public: - wxUString() { } - - wxUString( const wxChar32 *str ) { assign(str); } - wxUString( const wxScopedU32CharBuffer &buf ) { assign(buf); } - - wxUString( const char *str ) { assign(str); } - wxUString( const wxScopedCharBuffer &buf ) { assign(buf); } - wxUString( const char *str, const wxMBConv &conv ) { assign(str,conv); } - wxUString( const wxScopedCharBuffer &buf, const wxMBConv &conv ) { assign(buf,conv); } - - wxUString( const wxChar16 *str ) { assign(str); } - wxUString( const wxScopedU16CharBuffer &buf ) { assign(buf); } - - wxUString( const wxCStrData *cstr ) { assign(cstr); } - wxUString( const wxString &str ) { assign(str); } - - wxUString( char ch ) { assign(ch); } - wxUString( wxChar16 ch ) { assign(ch); } - wxUString( wxChar32 ch ) { assign(ch); } - wxUString( wxUniChar ch ) { assign(ch); } - wxUString( wxUniCharRef ch ) { assign(ch); } - wxUString( size_type n, char ch ) { assign(n,ch); } - wxUString( size_type n, wxChar16 ch ) { assign(n,ch); } - wxUString( size_type n, wxChar32 ch ) { assign(n,ch); } - wxUString( size_type n, wxUniChar ch ) { assign(n,ch); } - wxUString( size_type n, wxUniCharRef ch ) { assign(n,ch); } - - // static construction - - static wxUString FromAscii( const char *str, size_type n ) - { - wxUString ret; - ret.assignFromAscii( str, n ); - return ret; - } - - static wxUString FromAscii( const char *str ) - { - wxUString ret; - ret.assignFromAscii( str ); - return ret; - } - - static wxUString FromUTF8( const char *str, size_type n ) - { - wxUString ret; - ret.assignFromUTF8( str, n ); - return ret; - } - - static wxUString FromUTF8( const char *str ) - { - wxUString ret; - ret.assignFromUTF8( str ); - return ret; - } - - static wxUString FromUTF16( const wxChar16 *str, size_type n ) - { - wxUString ret; - ret.assignFromUTF16( str, n ); - return ret; - } - - static wxUString FromUTF16( const wxChar16 *str ) - { - wxUString ret; - ret.assignFromUTF16( str ); - return ret; - } - - // assign from encoding - - wxUString &assignFromAscii( const char *str ); - wxUString &assignFromAscii( const char *str, size_type n ); - wxUString &assignFromUTF8( const char *str ); - wxUString &assignFromUTF8( const char *str, size_type n ); - wxUString &assignFromUTF16( const wxChar16* str ); - wxUString &assignFromUTF16( const wxChar16* str, size_type n ); - wxUString &assignFromCString( const char* str ); - wxUString &assignFromCString( const char* str, const wxMBConv &conv ); - - // conversions - - wxScopedCharBuffer utf8_str() const; - wxScopedU16CharBuffer utf16_str() const; - -#if SIZEOF_WCHAR_T == 2 - wxScopedWCharBuffer wc_str() const - { - return utf16_str(); - } -#else - wchar_t *wc_str() const - { - return (wchar_t*) c_str(); - } -#endif - - operator wxString() const - { -#if wxUSE_UNICODE_UTF8 - return wxString::FromUTF8( utf8_str() ); -#else -#if SIZEOF_WCHAR_T == 2 - return wxString( utf16_str() ); -#else - return wxString( c_str() ); -#endif -#endif - } - -#if wxUSE_UNICODE_UTF8 - wxScopedCharBuffer wx_str() - { - return utf8_str(); - } -#else -#if SIZEOF_WCHAR_T == 2 - wxScopedWCharBuffer wx_str() - { - return utf16_str(); - } -#else - const wchar_t* wx_str() - { - return c_str(); - } -#endif -#endif - - // assign - - wxUString &assign( const wxChar32* str ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->assign( str ); - } - - wxUString &assign( const wxChar32* str, size_type n ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->assign( str, n ); - } - - wxUString &assign( const wxUString &str ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->assign( str ); - } - - wxUString &assign( const wxUString &str, size_type pos, size_type n ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->assign( str, pos, n ); - } - - wxUString &assign( wxChar32 ch ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->assign( (size_type) 1, ch ); - } - - wxUString &assign( size_type n, wxChar32 ch ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->assign( n, ch ); - } - - wxUString &assign( const wxScopedU32CharBuffer &buf ) - { - return assign( buf.data() ); - } - - wxUString &assign( const char *str ) - { - return assignFromCString( str ); - } - - wxUString &assign( const wxScopedCharBuffer &buf ) - { - return assignFromCString( buf.data() ); - } - - wxUString &assign( const char *str, const wxMBConv &conv ) - { - return assignFromCString( str, conv ); - } - - wxUString &assign( const wxScopedCharBuffer &buf, const wxMBConv &conv ) - { - return assignFromCString( buf.data(), conv ); - } - - wxUString &assign( const wxChar16 *str ) - { - return assignFromUTF16( str ); - } - - wxUString &assign( const wxScopedU16CharBuffer &buf ) - { - return assignFromUTF16( buf.data() ); - } - - wxUString &assign( const wxCStrData *cstr ) - { -#if SIZEOF_WCHAR_T == 2 - return assignFromUTF16( cstr->AsWChar() ); -#else - return assign( cstr->AsWChar() ); -#endif - } - - wxUString &assign( const wxString &str ) - { -#if wxUSE_UNICODE_UTF8 - return assignFromUTF8( str.wx_str() ); -#else - #if SIZEOF_WCHAR_T == 2 - return assignFromUTF16( str.wc_str() ); - #else - return assign( str.wc_str() ); - #endif -#endif - } - - wxUString &assign( char ch ) - { - char buf[2]; - buf[0] = ch; - buf[1] = 0; - return assignFromCString( buf ); - } - - wxUString &assign( size_type n, char ch ) - { - wxCharBuffer buffer(n); - char *p = buffer.data(); - size_type i; - for (i = 0; i < n; i++) - { - *p = ch; - p++; - } - return assignFromCString( buffer.data() ); - } - - wxUString &assign( wxChar16 ch ) - { - wxChar16 buf[2]; - buf[0] = ch; - buf[1] = 0; - return assignFromUTF16( buf ); - } - - wxUString &assign( size_type n, wxChar16 ch ) - { - wxU16CharBuffer buffer(n); - wxChar16 *p = buffer.data(); - size_type i; - for (i = 0; i < n; i++) - { - *p = ch; - p++; - } - return assignFromUTF16( buffer.data() ); - } - - wxUString &assign( wxUniChar ch ) - { - return assign( (wxChar32) ch.GetValue() ); - } - - wxUString &assign( size_type n, wxUniChar ch ) - { - return assign( n, (wxChar32) ch.GetValue() ); - } - - wxUString &assign( wxUniCharRef ch ) - { - return assign( (wxChar32) ch.GetValue() ); - } - - wxUString &assign( size_type n, wxUniCharRef ch ) - { - return assign( n, (wxChar32) ch.GetValue() ); - } - - // append [STL overload] - - wxUString &append( const wxUString &s ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->append( s ); - } - - wxUString &append( const wxUString &s, size_type pos, size_type n ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->append( s, pos, n ); - } - - wxUString &append( const wxChar32* s ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->append( s ); - } - - wxUString &append( const wxChar32* s, size_type n ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->append( s, n ); - } - - wxUString &append( size_type n, wxChar32 c ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->append( n, c ); - } - - wxUString &append( wxChar32 c ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->append( 1, c ); - } - - // append [wx overload] - - wxUString &append( const wxScopedU16CharBuffer &buf ) - { - return append( buf.data() ); - } - - wxUString &append( const wxScopedU32CharBuffer &buf ) - { - return append( buf.data() ); - } - - wxUString &append( const char *str ) - { - return append( wxUString( str ) ); - } - - wxUString &append( const wxScopedCharBuffer &buf ) - { - return append( wxUString( buf ) ); - } - - wxUString &append( const wxChar16 *str ) - { - return append( wxUString( str ) ); - } - - wxUString &append( const wxString &str ) - { - return append( wxUString( str ) ); - } - - wxUString &append( const wxCStrData *cstr ) - { - return append( wxUString( cstr ) ); - } - - wxUString &append( char ch ) - { - char buf[2]; - buf[0] = ch; - buf[1] = 0; - return append( buf ); - } - - wxUString &append( wxChar16 ch ) - { - wxChar16 buf[2]; - buf[0] = ch; - buf[1] = 0; - return append( buf ); - } - - wxUString &append( wxUniChar ch ) - { - return append( (size_type) 1, (wxChar32) ch.GetValue() ); - } - - wxUString &append( wxUniCharRef ch ) - { - return append( (size_type) 1, (wxChar32) ch.GetValue() ); - } - - - // insert [STL overloads] - - wxUString &insert( size_type pos, const wxUString &s ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->insert( pos, s ); - } - - wxUString &insert( size_type pos, const wxUString &s, size_type pos1, size_type n ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->insert( pos, s, pos1, n ); - } - - wxUString &insert( size_type pos, const wxChar32 *s ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->insert( pos, s ); - } - - wxUString &insert( size_type pos, const wxChar32 *s, size_type n ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->insert( pos, s, n ); - } - - wxUString &insert( size_type pos, size_type n, wxChar32 c ) - { - std::basic_string<wxChar32> *base = this; - return (wxUString &) base->insert( pos, n, c ); - } - - - // insert [STL overloads] - - wxUString &insert( size_type n, const char *s ) - { - return insert( n, wxUString( s ) ); - } - - wxUString &insert( size_type n, const wxChar16 *s ) - { - return insert( n, wxUString( s ) ); - } - - wxUString &insert( size_type n, const wxScopedCharBuffer &buf ) - { - return insert( n, wxUString( buf ) ); - } - - wxUString &insert( size_type n, const wxScopedU16CharBuffer &buf ) - { - return insert( n, wxUString( buf ) ); - } - - wxUString &insert( size_type n, const wxScopedU32CharBuffer &buf ) - { - return insert( n, buf.data() ); - } - - wxUString &insert( size_type n, const wxString &s ) - { - return insert( n, wxUString( s ) ); - } - - wxUString &insert( size_type n, const wxCStrData *cstr ) - { - return insert( n, wxUString( cstr ) ); - } - - wxUString &insert( size_type n, char ch ) - { - char buf[2]; - buf[0] = ch; - buf[1] = 0; - return insert( n, buf ); - } - - wxUString &insert( size_type n, wchar_t ch ) - { - wchar_t buf[2]; - buf[0] = ch; - buf[1] = 0; - return insert( n, buf ); - } - - // insert iterator - - iterator insert( iterator it, wxChar32 ch ) - { - std::basic_string<wxChar32> *base = this; - return base->insert( it, ch ); - } - - void insert(iterator it, const_iterator first, const_iterator last) - { - std::basic_string<wxChar32> *base = this; - base->insert( it, first, last ); - } - - - // operator = - wxUString& operator=(const wxString& s) - { return assign( s ); } - wxUString& operator=(const wxCStrData* s) - { return assign( s ); } - wxUString& operator=(const char *s) - { return assign( s ); } - wxUString& operator=(const wxChar16 *s) - { return assign( s ); } - wxUString& operator=(const wxChar32 *s) - { return assign( s ); } - wxUString& operator=(const wxScopedCharBuffer &s) - { return assign( s ); } - wxUString& operator=(const wxScopedU16CharBuffer &s) - { return assign( s ); } - wxUString& operator=(const wxScopedU32CharBuffer &s) - { return assign( s ); } - wxUString& operator=(char ch) - { return assign( ch ); } - wxUString& operator=(wxChar16 ch) - { return assign( ch ); } - wxUString& operator=(wxChar32 ch) - { return assign( ch ); } - wxUString& operator=(wxUniChar ch) - { return assign( ch ); } - wxUString& operator=(const wxUniCharRef ch) - { return assign( ch ); } - - // operator += - wxUString& operator+=(const wxUString& s) - { return append( s ); } - wxUString& operator+=(const wxString& s) - { return append( s ); } - wxUString& operator+=(const wxCStrData* s) - { return append( s ); } - wxUString& operator+=(const char *s) - { return append( s ); } - wxUString& operator+=(const wxChar16 *s) - { return append( s ); } - wxUString& operator+=(const wxChar32 *s) - { return append( s ); } - wxUString& operator+=(const wxScopedCharBuffer &s) - { return append( s ); } - wxUString& operator+=(const wxScopedU16CharBuffer &s) - { return append( s ); } - wxUString& operator+=(const wxScopedU32CharBuffer &s) - { return append( s ); } - wxUString& operator+=(char ch) - { return append( ch ); } - wxUString& operator+=(wxChar16 ch) - { return append( ch ); } - wxUString& operator+=(wxChar32 ch) - { return append( ch ); } - wxUString& operator+=(wxUniChar ch) - { return append( ch ); } - wxUString& operator+=(const wxUniCharRef ch) - { return append( ch ); } - -}; - -#ifdef __VISUALC__ - #pragma warning(pop) -#endif - -inline wxUString operator+(const wxUString &s1, const wxUString &s2) - { wxUString ret( s1 ); ret.append( s2 ); return ret; } -inline wxUString operator+(const wxUString &s1, const char *s2) - { return s1 + wxUString(s2); } -inline wxUString operator+(const wxUString &s1, const wxString &s2) - { return s1 + wxUString(s2); } -inline wxUString operator+(const wxUString &s1, const wxCStrData *s2) - { return s1 + wxUString(s2); } -inline wxUString operator+(const wxUString &s1, const wxChar16* s2) - { return s1 + wxUString(s2); } -inline wxUString operator+(const wxUString &s1, const wxChar32 *s2) - { return s1 + wxUString(s2); } -inline wxUString operator+(const wxUString &s1, const wxScopedCharBuffer &s2) - { return s1 + wxUString(s2); } -inline wxUString operator+(const wxUString &s1, const wxScopedU16CharBuffer &s2) - { return s1 + wxUString(s2); } -inline wxUString operator+(const wxUString &s1, const wxScopedU32CharBuffer &s2) - { return s1 + wxUString(s2); } -inline wxUString operator+(const wxUString &s1, char s2) - { return s1 + wxUString(s2); } -inline wxUString operator+(const wxUString &s1, wxChar32 s2) - { wxUString ret( s1 ); ret.append( s2 ); return ret; } -inline wxUString operator+(const wxUString &s1, wxChar16 s2) - { wxUString ret( s1 ); ret.append( (wxChar32) s2 ); return ret; } -inline wxUString operator+(const wxUString &s1, wxUniChar s2) - { wxUString ret( s1 ); ret.append( (wxChar32) s2.GetValue() ); return ret; } -inline wxUString operator+(const wxUString &s1, wxUniCharRef s2) - { wxUString ret( s1 ); ret.append( (wxChar32) s2.GetValue() ); return ret; } - -inline wxUString operator+(const char *s1, const wxUString &s2) - { return wxUString(s1) + s2; } -inline wxUString operator+(const wxString &s1, const wxUString &s2) - { return wxUString(s1) + s2; } -inline wxUString operator+(const wxCStrData *s1, const wxUString &s2) - { return wxUString(s1) + s2; } -inline wxUString operator+(const wxChar16* s1, const wxUString &s2) - { return wxUString(s1) + s2; } -inline wxUString operator+(const wxChar32 *s1, const wxUString &s2) - { return wxUString(s1) + s2; } -inline wxUString operator+(const wxScopedCharBuffer &s1, const wxUString &s2) - { return wxUString(s1) + s2; } -inline wxUString operator+(const wxScopedU16CharBuffer &s1, const wxUString &s2) - { return wxUString(s1) + s2; } -inline wxUString operator+(const wxScopedU32CharBuffer &s1, const wxUString &s2) - { return wxUString(s1) + s2; } -inline wxUString operator+(char s1, const wxUString &s2) - { return wxUString(s1) + s2; } -inline wxUString operator+(wxChar32 s1, const wxUString &s2 ) - { return wxUString(s1) + s2; } -inline wxUString operator+(wxChar16 s1, const wxUString &s2) - { return wxUString(s1) + s2; } -inline wxUString operator+(wxUniChar s1, const wxUString &s2) - { return wxUString(s1) + s2; } -inline wxUString operator+(wxUniCharRef s1, const wxUString &s2) - { return wxUString(s1) + s2; } - - -inline bool operator==(const wxUString& s1, const wxUString& s2) - { return s1.compare( s2 ) == 0; } -inline bool operator!=(const wxUString& s1, const wxUString& s2) - { return s1.compare( s2 ) != 0; } -inline bool operator< (const wxUString& s1, const wxUString& s2) - { return s1.compare( s2 ) < 0; } -inline bool operator> (const wxUString& s1, const wxUString& s2) - { return s1.compare( s2 ) > 0; } -inline bool operator<=(const wxUString& s1, const wxUString& s2) - { return s1.compare( s2 ) <= 0; } -inline bool operator>=(const wxUString& s1, const wxUString& s2) - { return s1.compare( s2 ) >= 0; } - -#define wxUSTRING_COMP_OPERATORS( T ) \ -inline bool operator==(const wxUString& s1, T s2) \ - { return s1.compare( wxUString(s2) ) == 0; } \ -inline bool operator!=(const wxUString& s1, T s2) \ - { return s1.compare( wxUString(s2) ) != 0; } \ -inline bool operator< (const wxUString& s1, T s2) \ - { return s1.compare( wxUString(s2) ) < 0; } \ -inline bool operator> (const wxUString& s1, T s2) \ - { return s1.compare( wxUString(s2) ) > 0; } \ -inline bool operator<=(const wxUString& s1, T s2) \ - { return s1.compare( wxUString(s2) ) <= 0; } \ -inline bool operator>=(const wxUString& s1, T s2) \ - { return s1.compare( wxUString(s2) ) >= 0; } \ -\ -inline bool operator==(T s2, const wxUString& s1) \ - { return s1.compare( wxUString(s2) ) == 0; } \ -inline bool operator!=(T s2, const wxUString& s1) \ - { return s1.compare( wxUString(s2) ) != 0; } \ -inline bool operator< (T s2, const wxUString& s1) \ - { return s1.compare( wxUString(s2) ) > 0; } \ -inline bool operator> (T s2, const wxUString& s1) \ - { return s1.compare( wxUString(s2) ) < 0; } \ -inline bool operator<=(T s2, const wxUString& s1) \ - { return s1.compare( wxUString(s2) ) >= 0; } \ -inline bool operator>=(T s2, const wxUString& s1) \ - { return s1.compare( wxUString(s2) ) <= 0; } - -wxUSTRING_COMP_OPERATORS( const wxString & ) -wxUSTRING_COMP_OPERATORS( const char * ) -wxUSTRING_COMP_OPERATORS( const wxChar16 * ) -wxUSTRING_COMP_OPERATORS( const wxChar32 * ) -wxUSTRING_COMP_OPERATORS( const wxScopedCharBuffer & ) -wxUSTRING_COMP_OPERATORS( const wxScopedU16CharBuffer & ) -wxUSTRING_COMP_OPERATORS( const wxScopedU32CharBuffer & ) -wxUSTRING_COMP_OPERATORS( const wxCStrData * ) - -#endif // _WX_USTRING_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/utils.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/utils.h deleted file mode 100644 index e29c1316..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/utils.h +++ /dev/null @@ -1,831 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/utils.h -// Purpose: Miscellaneous utilities -// Author: Julian Smart -// Modified by: -// Created: 29/01/98 -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_UTILS_H_ -#define _WX_UTILS_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/object.h" -#include "wx/list.h" -#include "wx/filefn.h" -#include "wx/hashmap.h" -#include "wx/versioninfo.h" -#include "wx/meta/implicitconversion.h" - -#if wxUSE_GUI - #include "wx/gdicmn.h" - #include "wx/mousestate.h" -#endif - -class WXDLLIMPEXP_FWD_BASE wxArrayString; -class WXDLLIMPEXP_FWD_BASE wxArrayInt; - -// need this for wxGetDiskSpace() as we can't, unfortunately, forward declare -// wxLongLong -#include "wx/longlong.h" - -// needed for wxOperatingSystemId, wxLinuxDistributionInfo -#include "wx/platinfo.h" - -#if defined(__X__) - #include <dirent.h> - #include <unistd.h> -#endif - -#include <stdio.h> - -// ---------------------------------------------------------------------------- -// Forward declaration -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_BASE wxProcess; -class WXDLLIMPEXP_FWD_CORE wxFrame; -class WXDLLIMPEXP_FWD_CORE wxWindow; -class wxWindowList; -class WXDLLIMPEXP_FWD_CORE wxEventLoop; - -// ---------------------------------------------------------------------------- -// Arithmetic functions -// ---------------------------------------------------------------------------- - -template<typename T1, typename T2> -inline typename wxImplicitConversionType<T1,T2>::value -wxMax(T1 a, T2 b) -{ - typedef typename wxImplicitConversionType<T1,T2>::value ResultType; - - // Cast both operands to the same type before comparing them to avoid - // warnings about signed/unsigned comparisons from some compilers: - return static_cast<ResultType>(a) > static_cast<ResultType>(b) ? a : b; -} - -template<typename T1, typename T2> -inline typename wxImplicitConversionType<T1,T2>::value -wxMin(T1 a, T2 b) -{ - typedef typename wxImplicitConversionType<T1,T2>::value ResultType; - - return static_cast<ResultType>(a) < static_cast<ResultType>(b) ? a : b; -} - -template<typename T1, typename T2, typename T3> -inline typename wxImplicitConversionType3<T1,T2,T3>::value -wxClip(T1 a, T2 b, T3 c) -{ - typedef typename wxImplicitConversionType3<T1,T2,T3>::value ResultType; - - if ( static_cast<ResultType>(a) < static_cast<ResultType>(b) ) - return b; - - if ( static_cast<ResultType>(a) > static_cast<ResultType>(c) ) - return c; - - return a; -} - -// ---------------------------------------------------------------------------- -// wxMemorySize -// ---------------------------------------------------------------------------- - -// wxGetFreeMemory can return huge amount of memory on 32-bit platforms as well -// so to always use long long for its result type on all platforms which -// support it -#if wxUSE_LONGLONG - typedef wxLongLong wxMemorySize; -#else - typedef long wxMemorySize; -#endif - -// ---------------------------------------------------------------------------- -// String functions (deprecated, use wxString) -// ---------------------------------------------------------------------------- - -#if WXWIN_COMPATIBILITY_2_8 -// A shorter way of using strcmp -wxDEPRECATED_INLINE(inline bool wxStringEq(const char *s1, const char *s2), - return wxCRT_StrcmpA(s1, s2) == 0; ) - -#if wxUSE_UNICODE -wxDEPRECATED_INLINE(inline bool wxStringEq(const wchar_t *s1, const wchar_t *s2), - return wxCRT_StrcmpW(s1, s2) == 0; ) -#endif // wxUSE_UNICODE - -#endif // WXWIN_COMPATIBILITY_2_8 - -// ---------------------------------------------------------------------------- -// Miscellaneous functions -// ---------------------------------------------------------------------------- - -// Sound the bell -WXDLLIMPEXP_CORE void wxBell(); - -#if wxUSE_MSGDLG -// Show wxWidgets information -WXDLLIMPEXP_CORE void wxInfoMessageBox(wxWindow* parent); -#endif // wxUSE_MSGDLG - -WXDLLIMPEXP_CORE wxVersionInfo wxGetLibraryVersionInfo(); - -// Get OS description as a user-readable string -WXDLLIMPEXP_BASE wxString wxGetOsDescription(); - -// Get OS version -WXDLLIMPEXP_BASE wxOperatingSystemId wxGetOsVersion(int *majorVsn = NULL, - int *minorVsn = NULL); - -// Check is OS version is at least the specified major and minor version -WXDLLIMPEXP_BASE bool wxCheckOsVersion(int majorVsn, int minorVsn = 0); - -// Get platform endianness -WXDLLIMPEXP_BASE bool wxIsPlatformLittleEndian(); - -// Get platform architecture -WXDLLIMPEXP_BASE bool wxIsPlatform64Bit(); - -#ifdef __LINUX__ -// Get linux-distro informations -WXDLLIMPEXP_BASE wxLinuxDistributionInfo wxGetLinuxDistributionInfo(); -#endif - -// Return a string with the current date/time -WXDLLIMPEXP_BASE wxString wxNow(); - -// Return path where wxWidgets is installed (mostly useful in Unices) -WXDLLIMPEXP_BASE const wxChar *wxGetInstallPrefix(); -// Return path to wxWin data (/usr/share/wx/%{version}) (Unices) -WXDLLIMPEXP_BASE wxString wxGetDataDir(); - -#if wxUSE_GUI - -// Get the state of a key (true if pressed, false if not) -// This is generally most useful getting the state of -// the modifier or toggle keys. -WXDLLIMPEXP_CORE bool wxGetKeyState(wxKeyCode key); - -// Don't synthesize KeyUp events holding down a key and producing -// KeyDown events with autorepeat. On by default and always on -// in wxMSW. -WXDLLIMPEXP_CORE bool wxSetDetectableAutoRepeat( bool flag ); - -// Returns the current state of the mouse position, buttons and modifers -WXDLLIMPEXP_CORE wxMouseState wxGetMouseState(); - -#endif // wxUSE_GUI - -// ---------------------------------------------------------------------------- -// wxPlatform -// ---------------------------------------------------------------------------- - -/* - * Class to make it easier to specify platform-dependent values - * - * Examples: - * long val = wxPlatform::If(wxMac, 1).ElseIf(wxGTK, 2).ElseIf(stPDA, 5).Else(3); - * wxString strVal = wxPlatform::If(wxMac, wxT("Mac")).ElseIf(wxMSW, wxT("MSW")).Else(wxT("Other")); - * - * A custom platform symbol: - * - * #define stPDA 100 - * #ifdef __WXWINCE__ - * wxPlatform::AddPlatform(stPDA); - * #endif - * - * long windowStyle = wxCAPTION | (long) wxPlatform::IfNot(stPDA, wxRESIZE_BORDER); - * - */ - -class WXDLLIMPEXP_BASE wxPlatform -{ -public: - wxPlatform() { Init(); } - wxPlatform(const wxPlatform& platform) { Copy(platform); } - void operator = (const wxPlatform& platform) { if (&platform != this) Copy(platform); } - void Copy(const wxPlatform& platform); - - // Specify an optional default value - wxPlatform(int defValue) { Init(); m_longValue = (long)defValue; } - wxPlatform(long defValue) { Init(); m_longValue = defValue; } - wxPlatform(const wxString& defValue) { Init(); m_stringValue = defValue; } - wxPlatform(double defValue) { Init(); m_doubleValue = defValue; } - - static wxPlatform If(int platform, long value); - static wxPlatform IfNot(int platform, long value); - wxPlatform& ElseIf(int platform, long value); - wxPlatform& ElseIfNot(int platform, long value); - wxPlatform& Else(long value); - - static wxPlatform If(int platform, int value) { return If(platform, (long)value); } - static wxPlatform IfNot(int platform, int value) { return IfNot(platform, (long)value); } - wxPlatform& ElseIf(int platform, int value) { return ElseIf(platform, (long) value); } - wxPlatform& ElseIfNot(int platform, int value) { return ElseIfNot(platform, (long) value); } - wxPlatform& Else(int value) { return Else((long) value); } - - static wxPlatform If(int platform, double value); - static wxPlatform IfNot(int platform, double value); - wxPlatform& ElseIf(int platform, double value); - wxPlatform& ElseIfNot(int platform, double value); - wxPlatform& Else(double value); - - static wxPlatform If(int platform, const wxString& value); - static wxPlatform IfNot(int platform, const wxString& value); - wxPlatform& ElseIf(int platform, const wxString& value); - wxPlatform& ElseIfNot(int platform, const wxString& value); - wxPlatform& Else(const wxString& value); - - long GetInteger() const { return m_longValue; } - const wxString& GetString() const { return m_stringValue; } - double GetDouble() const { return m_doubleValue; } - - operator int() const { return (int) GetInteger(); } - operator long() const { return GetInteger(); } - operator double() const { return GetDouble(); } - operator const wxString&() const { return GetString(); } - - static void AddPlatform(int platform); - static bool Is(int platform); - static void ClearPlatforms(); - -private: - - void Init() { m_longValue = 0; m_doubleValue = 0.0; } - - long m_longValue; - double m_doubleValue; - wxString m_stringValue; - static wxArrayInt* sm_customPlatforms; -}; - -/// Function for testing current platform -inline bool wxPlatformIs(int platform) { return wxPlatform::Is(platform); } - -// ---------------------------------------------------------------------------- -// Window ID management -// ---------------------------------------------------------------------------- - -// Ensure subsequent IDs don't clash with this one -WXDLLIMPEXP_BASE void wxRegisterId(int id); - -// Return the current ID -WXDLLIMPEXP_BASE int wxGetCurrentId(); - -// Generate a unique ID -WXDLLIMPEXP_BASE int wxNewId(); - -// ---------------------------------------------------------------------------- -// Various conversions -// ---------------------------------------------------------------------------- - -// Convert 2-digit hex number to decimal -WXDLLIMPEXP_BASE int wxHexToDec(const wxString& buf); - -// Convert 2-digit hex number to decimal -inline int wxHexToDec(const char* buf) -{ - int firstDigit, secondDigit; - - if (buf[0] >= 'A') - firstDigit = buf[0] - 'A' + 10; - else - firstDigit = buf[0] - '0'; - - if (buf[1] >= 'A') - secondDigit = buf[1] - 'A' + 10; - else - secondDigit = buf[1] - '0'; - - return (firstDigit & 0xF) * 16 + (secondDigit & 0xF ); -} - - -// Convert decimal integer to 2-character hex string -WXDLLIMPEXP_BASE void wxDecToHex(int dec, wxChar *buf); -WXDLLIMPEXP_BASE void wxDecToHex(int dec, char* ch1, char* ch2); -WXDLLIMPEXP_BASE wxString wxDecToHex(int dec); - -// ---------------------------------------------------------------------------- -// Process management -// ---------------------------------------------------------------------------- - -// NB: for backwards compatibility reasons the values of wxEXEC_[A]SYNC *must* -// be 0 and 1, don't change! - -enum -{ - // execute the process asynchronously - wxEXEC_ASYNC = 0, - - // execute it synchronously, i.e. wait until it finishes - wxEXEC_SYNC = 1, - - // under Windows, don't hide the child even if it's IO is redirected (this - // is done by default) - wxEXEC_SHOW_CONSOLE = 2, - - // deprecated synonym for wxEXEC_SHOW_CONSOLE, use the new name as it's - // more clear - wxEXEC_NOHIDE = wxEXEC_SHOW_CONSOLE, - - // under Unix, if the process is the group leader then passing wxKILL_CHILDREN to wxKill - // kills all children as well as pid - // under Windows (NT family only), sets the CREATE_NEW_PROCESS_GROUP flag, - // which allows to target Ctrl-Break signal to the spawned process. - // applies to console processes only. - wxEXEC_MAKE_GROUP_LEADER = 4, - - // by default synchronous execution disables all program windows to avoid - // that the user interacts with the program while the child process is - // running, you can use this flag to prevent this from happening - wxEXEC_NODISABLE = 8, - - // by default, the event loop is run while waiting for synchronous execution - // to complete and this flag can be used to simply block the main process - // until the child process finishes - wxEXEC_NOEVENTS = 16, - - // under Windows, hide the console of the child process if it has one, even - // if its IO is not redirected - wxEXEC_HIDE_CONSOLE = 32, - - // convenient synonym for flags given system()-like behaviour - wxEXEC_BLOCK = wxEXEC_SYNC | wxEXEC_NOEVENTS -}; - -// Map storing environment variables. -typedef wxStringToStringHashMap wxEnvVariableHashMap; - -// Used to pass additional parameters for child process to wxExecute(). Could -// be extended with other fields later. -struct wxExecuteEnv -{ - wxString cwd; // If empty, CWD is not changed. - wxEnvVariableHashMap env; // If empty, environment is unchanged. -}; - -// Execute another program. -// -// If flags contain wxEXEC_SYNC, return -1 on failure and the exit code of the -// process if everything was ok. Otherwise (i.e. if wxEXEC_ASYNC), return 0 on -// failure and the PID of the launched process if ok. -WXDLLIMPEXP_BASE long wxExecute(const wxString& command, - int flags = wxEXEC_ASYNC, - wxProcess *process = NULL, - const wxExecuteEnv *env = NULL); -WXDLLIMPEXP_BASE long wxExecute(char **argv, - int flags = wxEXEC_ASYNC, - wxProcess *process = NULL, - const wxExecuteEnv *env = NULL); -#if wxUSE_UNICODE -WXDLLIMPEXP_BASE long wxExecute(wchar_t **argv, - int flags = wxEXEC_ASYNC, - wxProcess *process = NULL, - const wxExecuteEnv *env = NULL); -#endif // wxUSE_UNICODE - -// execute the command capturing its output into an array line by line, this is -// always synchronous -WXDLLIMPEXP_BASE long wxExecute(const wxString& command, - wxArrayString& output, - int flags = 0, - const wxExecuteEnv *env = NULL); - -// also capture stderr (also synchronous) -WXDLLIMPEXP_BASE long wxExecute(const wxString& command, - wxArrayString& output, - wxArrayString& error, - int flags = 0, - const wxExecuteEnv *env = NULL); - -#if defined(__WINDOWS__) && wxUSE_IPC -// ask a DDE server to execute the DDE request with given parameters -WXDLLIMPEXP_BASE bool wxExecuteDDE(const wxString& ddeServer, - const wxString& ddeTopic, - const wxString& ddeCommand); -#endif // __WINDOWS__ && wxUSE_IPC - -enum wxSignal -{ - wxSIGNONE = 0, // verify if the process exists under Unix - wxSIGHUP, - wxSIGINT, - wxSIGQUIT, - wxSIGILL, - wxSIGTRAP, - wxSIGABRT, - wxSIGIOT = wxSIGABRT, // another name - wxSIGEMT, - wxSIGFPE, - wxSIGKILL, - wxSIGBUS, - wxSIGSEGV, - wxSIGSYS, - wxSIGPIPE, - wxSIGALRM, - wxSIGTERM - - // further signals are different in meaning between different Unix systems -}; - -enum wxKillError -{ - wxKILL_OK, // no error - wxKILL_BAD_SIGNAL, // no such signal - wxKILL_ACCESS_DENIED, // permission denied - wxKILL_NO_PROCESS, // no such process - wxKILL_ERROR // another, unspecified error -}; - -enum wxKillFlags -{ - wxKILL_NOCHILDREN = 0, // don't kill children - wxKILL_CHILDREN = 1 // kill children -}; - -enum wxShutdownFlags -{ - wxSHUTDOWN_FORCE = 1,// can be combined with other flags (MSW-only) - wxSHUTDOWN_POWEROFF = 2,// power off the computer - wxSHUTDOWN_REBOOT = 4,// shutdown and reboot - wxSHUTDOWN_LOGOFF = 8 // close session (currently MSW-only) -}; - -// Shutdown or reboot the PC -WXDLLIMPEXP_BASE bool wxShutdown(int flags = wxSHUTDOWN_POWEROFF); - -// send the given signal to the process (only NONE and KILL are supported under -// Windows, all others mean TERM), return 0 if ok and -1 on error -// -// return detailed error in rc if not NULL -WXDLLIMPEXP_BASE int wxKill(long pid, - wxSignal sig = wxSIGTERM, - wxKillError *rc = NULL, - int flags = wxKILL_NOCHILDREN); - -// Execute a command in an interactive shell window (always synchronously) -// If no command then just the shell -WXDLLIMPEXP_BASE bool wxShell(const wxString& command = wxEmptyString); - -// As wxShell(), but must give a (non interactive) command and its output will -// be returned in output array -WXDLLIMPEXP_BASE bool wxShell(const wxString& command, wxArrayString& output); - -// Sleep for nSecs seconds -WXDLLIMPEXP_BASE void wxSleep(int nSecs); - -// Sleep for a given amount of milliseconds -WXDLLIMPEXP_BASE void wxMilliSleep(unsigned long milliseconds); - -// Sleep for a given amount of microseconds -WXDLLIMPEXP_BASE void wxMicroSleep(unsigned long microseconds); - -#if WXWIN_COMPATIBILITY_2_8 -// Sleep for a given amount of milliseconds (old, bad name), use wxMilliSleep -wxDEPRECATED( WXDLLIMPEXP_BASE void wxUsleep(unsigned long milliseconds) ); -#endif - -// Get the process id of the current process -WXDLLIMPEXP_BASE unsigned long wxGetProcessId(); - -// Get free memory in bytes, or -1 if cannot determine amount (e.g. on UNIX) -WXDLLIMPEXP_BASE wxMemorySize wxGetFreeMemory(); - -#if wxUSE_ON_FATAL_EXCEPTION - -// should wxApp::OnFatalException() be called? -WXDLLIMPEXP_BASE bool wxHandleFatalExceptions(bool doit = true); - -#endif // wxUSE_ON_FATAL_EXCEPTION - -// ---------------------------------------------------------------------------- -// Environment variables -// ---------------------------------------------------------------------------- - -// returns true if variable exists (value may be NULL if you just want to check -// for this) -WXDLLIMPEXP_BASE bool wxGetEnv(const wxString& var, wxString *value); - -// set the env var name to the given value, return true on success -WXDLLIMPEXP_BASE bool wxSetEnv(const wxString& var, const wxString& value); - -// remove the env var from environment -WXDLLIMPEXP_BASE bool wxUnsetEnv(const wxString& var); - -#if WXWIN_COMPATIBILITY_2_8 -inline bool wxSetEnv(const wxString& var, const char *value) - { return wxSetEnv(var, wxString(value)); } -inline bool wxSetEnv(const wxString& var, const wchar_t *value) - { return wxSetEnv(var, wxString(value)); } -template<typename T> -inline bool wxSetEnv(const wxString& var, const wxScopedCharTypeBuffer<T>& value) - { return wxSetEnv(var, wxString(value)); } -inline bool wxSetEnv(const wxString& var, const wxCStrData& value) - { return wxSetEnv(var, wxString(value)); } - -// this one is for passing NULL directly - don't use it, use wxUnsetEnv instead -wxDEPRECATED( inline bool wxSetEnv(const wxString& var, int value) ); -inline bool wxSetEnv(const wxString& var, int value) -{ - wxASSERT_MSG( value == 0, "using non-NULL integer as string?" ); - - wxUnusedVar(value); // fix unused parameter warning in release build - - return wxUnsetEnv(var); -} -#endif // WXWIN_COMPATIBILITY_2_8 - -// Retrieve the complete environment by filling specified map. -// Returns true on success or false if an error occurred. -WXDLLIMPEXP_BASE bool wxGetEnvMap(wxEnvVariableHashMap *map); - -// ---------------------------------------------------------------------------- -// Network and username functions. -// ---------------------------------------------------------------------------- - -// NB: "char *" functions are deprecated, use wxString ones! - -// Get eMail address -WXDLLIMPEXP_BASE bool wxGetEmailAddress(wxChar *buf, int maxSize); -WXDLLIMPEXP_BASE wxString wxGetEmailAddress(); - -// Get hostname. -WXDLLIMPEXP_BASE bool wxGetHostName(wxChar *buf, int maxSize); -WXDLLIMPEXP_BASE wxString wxGetHostName(); - -// Get FQDN -WXDLLIMPEXP_BASE wxString wxGetFullHostName(); -WXDLLIMPEXP_BASE bool wxGetFullHostName(wxChar *buf, int maxSize); - -// Get user ID e.g. jacs (this is known as login name under Unix) -WXDLLIMPEXP_BASE bool wxGetUserId(wxChar *buf, int maxSize); -WXDLLIMPEXP_BASE wxString wxGetUserId(); - -// Get user name e.g. Julian Smart -WXDLLIMPEXP_BASE bool wxGetUserName(wxChar *buf, int maxSize); -WXDLLIMPEXP_BASE wxString wxGetUserName(); - -// Get current Home dir and copy to dest (returns pstr->c_str()) -WXDLLIMPEXP_BASE wxString wxGetHomeDir(); -WXDLLIMPEXP_BASE const wxChar* wxGetHomeDir(wxString *pstr); - -// Get the user's (by default use the current user name) home dir, -// return empty string on error -WXDLLIMPEXP_BASE wxString wxGetUserHome(const wxString& user = wxEmptyString); - - -#if wxUSE_LONGLONG - typedef wxLongLong wxDiskspaceSize_t; -#else - typedef long wxDiskspaceSize_t; -#endif - -// get number of total/free bytes on the disk where path belongs -WXDLLIMPEXP_BASE bool wxGetDiskSpace(const wxString& path, - wxDiskspaceSize_t *pTotal = NULL, - wxDiskspaceSize_t *pFree = NULL); - - - -typedef int (*wxSortCallback)(const void* pItem1, - const void* pItem2, - const void* user_data); - - -WXDLLIMPEXP_BASE void wxQsort(void* pbase, size_t total_elems, - size_t size, wxSortCallback cmp, - const void* user_data); - - -#if wxUSE_GUI // GUI only things from now on - -// ---------------------------------------------------------------------------- -// Launch default browser -// ---------------------------------------------------------------------------- - -// flags for wxLaunchDefaultBrowser -enum -{ - wxBROWSER_NEW_WINDOW = 0x01, - wxBROWSER_NOBUSYCURSOR = 0x02 -}; - -// Launch url in the user's default internet browser -WXDLLIMPEXP_CORE bool wxLaunchDefaultBrowser(const wxString& url, int flags = 0); - -// Launch document in the user's default application -WXDLLIMPEXP_CORE bool wxLaunchDefaultApplication(const wxString& path, int flags = 0); - -// ---------------------------------------------------------------------------- -// Menu accelerators related things -// ---------------------------------------------------------------------------- - -// flags for wxStripMenuCodes -enum -{ - // strip '&' characters - wxStrip_Mnemonics = 1, - - // strip everything after '\t' - wxStrip_Accel = 2, - - // strip everything (this is the default) - wxStrip_All = wxStrip_Mnemonics | wxStrip_Accel -}; - -// strip mnemonics and/or accelerators from the label -WXDLLIMPEXP_CORE wxString -wxStripMenuCodes(const wxString& str, int flags = wxStrip_All); - -// ---------------------------------------------------------------------------- -// Window search -// ---------------------------------------------------------------------------- - -// Returns menu item id or wxNOT_FOUND if none. -WXDLLIMPEXP_CORE int wxFindMenuItemId(wxFrame *frame, const wxString& menuString, const wxString& itemString); - -// Find the wxWindow at the given point. wxGenericFindWindowAtPoint -// is always present but may be less reliable than a native version. -WXDLLIMPEXP_CORE wxWindow* wxGenericFindWindowAtPoint(const wxPoint& pt); -WXDLLIMPEXP_CORE wxWindow* wxFindWindowAtPoint(const wxPoint& pt); - -// NB: this function is obsolete, use wxWindow::FindWindowByLabel() instead -// -// Find the window/widget with the given title or label. -// Pass a parent to begin the search from, or NULL to look through -// all windows. -WXDLLIMPEXP_CORE wxWindow* wxFindWindowByLabel(const wxString& title, wxWindow *parent = NULL); - -// NB: this function is obsolete, use wxWindow::FindWindowByName() instead -// -// Find window by name, and if that fails, by label. -WXDLLIMPEXP_CORE wxWindow* wxFindWindowByName(const wxString& name, wxWindow *parent = NULL); - -// ---------------------------------------------------------------------------- -// Message/event queue helpers -// ---------------------------------------------------------------------------- - -// Yield to other apps/messages and disable user input -WXDLLIMPEXP_CORE bool wxSafeYield(wxWindow *win = NULL, bool onlyIfNeeded = false); - -// Enable or disable input to all top level windows -WXDLLIMPEXP_CORE void wxEnableTopLevelWindows(bool enable = true); - -// Check whether this window wants to process messages, e.g. Stop button -// in long calculations. -WXDLLIMPEXP_CORE bool wxCheckForInterrupt(wxWindow *wnd); - -// Consume all events until no more left -WXDLLIMPEXP_CORE void wxFlushEvents(); - -// a class which disables all windows (except, may be, the given one) in its -// ctor and enables them back in its dtor -class WXDLLIMPEXP_CORE wxWindowDisabler -{ -public: - // this ctor conditionally disables all windows: if the argument is false, - // it doesn't do anything - wxWindowDisabler(bool disable = true); - - // ctor disables all windows except winToSkip - wxWindowDisabler(wxWindow *winToSkip); - - // dtor enables back all windows disabled by the ctor - ~wxWindowDisabler(); - -private: - // disable all windows except the given one (used by both ctors) - void DoDisable(wxWindow *winToSkip = NULL); - -#if defined(__WXOSX__) && wxOSX_USE_COCOA - wxEventLoop* m_modalEventLoop; -#endif - wxWindowList *m_winDisabled; - bool m_disabled; - - wxDECLARE_NO_COPY_CLASS(wxWindowDisabler); -}; - -// ---------------------------------------------------------------------------- -// Cursors -// ---------------------------------------------------------------------------- - -// Set the cursor to the busy cursor for all windows -WXDLLIMPEXP_CORE void wxBeginBusyCursor(const wxCursor *cursor = wxHOURGLASS_CURSOR); - -// Restore cursor to normal -WXDLLIMPEXP_CORE void wxEndBusyCursor(); - -// true if we're between the above two calls -WXDLLIMPEXP_CORE bool wxIsBusy(); - -// Convenience class so we can just create a wxBusyCursor object on the stack -class WXDLLIMPEXP_CORE wxBusyCursor -{ -public: - wxBusyCursor(const wxCursor* cursor = wxHOURGLASS_CURSOR) - { wxBeginBusyCursor(cursor); } - ~wxBusyCursor() - { wxEndBusyCursor(); } - - // FIXME: These two methods are currently only implemented (and needed?) - // in wxGTK. BusyCursor handling should probably be moved to - // common code since the wxGTK and wxMSW implementations are very - // similar except for wxMSW using HCURSOR directly instead of - // wxCursor.. -- RL. - static const wxCursor &GetStoredCursor(); - static const wxCursor GetBusyCursor(); -}; - -void WXDLLIMPEXP_CORE wxGetMousePosition( int* x, int* y ); - -// ---------------------------------------------------------------------------- -// X11 Display access -// ---------------------------------------------------------------------------- - -#if defined(__X__) || defined(__WXGTK__) - -#ifdef __WXGTK__ - WXDLLIMPEXP_CORE void *wxGetDisplay(); -#endif - -#ifdef __X__ - WXDLLIMPEXP_CORE WXDisplay *wxGetDisplay(); - WXDLLIMPEXP_CORE bool wxSetDisplay(const wxString& display_name); - WXDLLIMPEXP_CORE wxString wxGetDisplayName(); -#endif // X or GTK+ - -// use this function instead of the functions above in implementation code -inline struct _XDisplay *wxGetX11Display() -{ - return (_XDisplay *)wxGetDisplay(); -} - -#endif // X11 || wxGTK - -#endif // wxUSE_GUI - -// ---------------------------------------------------------------------------- -// wxYield(): these functions are obsolete, please use wxApp methods instead! -// ---------------------------------------------------------------------------- - -// avoid redeclaring this function here if it had been already declated by -// wx/app.h, this results in warnings from g++ with -Wredundant-decls -#ifndef wx_YIELD_DECLARED -#define wx_YIELD_DECLARED - -// Yield to other apps/messages -WXDLLIMPEXP_CORE bool wxYield(); - -#endif // wx_YIELD_DECLARED - -// Like wxYield, but fails silently if the yield is recursive. -WXDLLIMPEXP_CORE bool wxYieldIfNeeded(); - -// ---------------------------------------------------------------------------- -// Windows resources access -// ---------------------------------------------------------------------------- - -// Windows only: get user-defined resource from the .res file. -#ifdef __WINDOWS__ - // default resource type for wxLoadUserResource() - extern WXDLLIMPEXP_DATA_BASE(const wxChar*) wxUserResourceStr; - - // Return the pointer to the resource data. This pointer is read-only, use - // the overload below if you need to modify the data. - // - // Notice that the resource type can be either a real string or an integer - // produced by MAKEINTRESOURCE(). In particular, any standard resource type, - // i.e any RT_XXX constant, could be passed here. - // - // Returns true on success, false on failure. Doesn't log an error message - // if the resource is not found (because this could be expected) but does - // log one if any other error occurs. - WXDLLIMPEXP_BASE bool - wxLoadUserResource(const void **outData, - size_t *outLen, - const wxString& resourceName, - const wxChar* resourceType = wxUserResourceStr, - WXHINSTANCE module = 0); - - // This function allocates a new buffer and makes a copy of the resource - // data, remember to delete[] the buffer. And avoid using it entirely if - // the overload above can be used. - // - // Returns NULL on failure. - WXDLLIMPEXP_BASE char* - wxLoadUserResource(const wxString& resourceName, - const wxChar* resourceType = wxUserResourceStr, - int* pLen = NULL, - WXHINSTANCE module = 0); -#endif // __WINDOWS__ - -#endif - // _WX_UTILSH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/valgen.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/valgen.h deleted file mode 100644 index 995db4f8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/valgen.h +++ /dev/null @@ -1,94 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/valgen.h -// Purpose: wxGenericValidator class -// Author: Kevin Smith -// Created: Jan 22 1999 -// Copyright: (c) 1999 Julian Smart (assigned from Kevin) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VALGENH__ -#define _WX_VALGENH__ - -#include "wx/validate.h" - -#if wxUSE_VALIDATORS - -class WXDLLIMPEXP_FWD_BASE wxDateTime; -class WXDLLIMPEXP_FWD_BASE wxFileName; - -// ---------------------------------------------------------------------------- -// wxGenericValidator performs data transfer between many standard controls and -// variables of the type corresponding to their values. -// -// It doesn't do any validation so its name is a slight misnomer. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxGenericValidator: public wxValidator -{ -public: - // Different constructors: each of them creates a validator which can only - // be used with some controls, the comments before each constructor - // indicate which ones: - // wxCheckBox, wxRadioButton, wx(Bitmap)ToggleButton - wxGenericValidator(bool* val); - // wxChoice, wxGauge, wxRadioBox, wxScrollBar, wxSlider, wxSpinButton - wxGenericValidator(int* val); - // wxComboBox, wxTextCtrl, wxButton, wxStaticText (read-only) - wxGenericValidator(wxString* val); - // wxListBox, wxCheckListBox - wxGenericValidator(wxArrayInt* val); -#if wxUSE_DATETIME - // wxDatePickerCtrl - wxGenericValidator(wxDateTime* val); -#endif // wxUSE_DATETIME - // wxTextCtrl - wxGenericValidator(wxFileName* val); - // wxTextCtrl - wxGenericValidator(float* val); - // wxTextCtrl - wxGenericValidator(double* val); - - wxGenericValidator(const wxGenericValidator& copyFrom); - - virtual ~wxGenericValidator(){} - - // Make a clone of this validator (or return NULL) - currently necessary - // if you're passing a reference to a validator. - // Another possibility is to always pass a pointer to a new validator - // (so the calling code can use a copy constructor of the relevant class). - virtual wxObject *Clone() const wxOVERRIDE { return new wxGenericValidator(*this); } - bool Copy(const wxGenericValidator& val); - - // Called when the value in the window must be validated: this is not used - // by this class - virtual bool Validate(wxWindow * WXUNUSED(parent)) wxOVERRIDE { return true; } - - // Called to transfer data to the window - virtual bool TransferToWindow() wxOVERRIDE; - - // Called to transfer data to the window - virtual bool TransferFromWindow() wxOVERRIDE; - -protected: - void Initialize(); - - bool* m_pBool; - int* m_pInt; - wxString* m_pString; - wxArrayInt* m_pArrayInt; -#if wxUSE_DATETIME - wxDateTime* m_pDateTime; -#endif // wxUSE_DATETIME - wxFileName* m_pFileName; - float* m_pFloat; - double* m_pDouble; - -private: - wxDECLARE_CLASS(wxGenericValidator); - wxDECLARE_NO_ASSIGN_CLASS(wxGenericValidator); -}; - -#endif // wxUSE_VALIDATORS - -#endif // _WX_VALGENH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/validate.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/validate.h deleted file mode 100644 index 477af101..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/validate.h +++ /dev/null @@ -1,116 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/validate.h -// Purpose: wxValidator class -// Author: Julian Smart -// Modified by: -// Created: 29/01/98 -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VALIDATE_H_ -#define _WX_VALIDATE_H_ - -#include "wx/defs.h" - -#if wxUSE_VALIDATORS - -#include "wx/event.h" - -class WXDLLIMPEXP_FWD_CORE wxWindow; -class WXDLLIMPEXP_FWD_CORE wxWindowBase; - -/* - A validator has up to three purposes: - - 1) To validate the data in the window that's associated - with the validator. - 2) To transfer data to and from the window. - 3) To filter input, using its role as a wxEvtHandler - to intercept e.g. OnChar. - - Note that wxValidator and derived classes use reference counting. -*/ - -class WXDLLIMPEXP_CORE wxValidator : public wxEvtHandler -{ -public: - wxValidator(); - wxValidator(const wxValidator& other) - : wxEvtHandler() - , m_validatorWindow(other.m_validatorWindow) - { - } - virtual ~wxValidator(); - - // Make a clone of this validator (or return NULL) - currently necessary - // if you're passing a reference to a validator. - // Another possibility is to always pass a pointer to a new validator - // (so the calling code can use a copy constructor of the relevant class). - virtual wxObject *Clone() const - { return NULL; } - bool Copy(const wxValidator& val) - { m_validatorWindow = val.m_validatorWindow; return true; } - - // Called when the value in the window must be validated. - // This function can pop up an error message. - virtual bool Validate(wxWindow *WXUNUSED(parent)) { return false; } - - // Called to transfer data to the window - virtual bool TransferToWindow() { return false; } - - // Called to transfer data from the window - virtual bool TransferFromWindow() { return false; } - - // accessors - wxWindow *GetWindow() const { return (wxWindow *)m_validatorWindow; } - void SetWindow(wxWindowBase *win) { m_validatorWindow = win; } - - // validators beep by default if invalid key is pressed, this function - // allows to change this - static void SuppressBellOnError(bool suppress = true) - { ms_isSilent = suppress; } - - // test if beep is currently disabled - static bool IsSilent() { return ms_isSilent; } - - // this function is deprecated because it handled its parameter - // unnaturally: it disabled the bell when it was true, not false as could - // be expected; use SuppressBellOnError() instead -#if WXWIN_COMPATIBILITY_2_8 - static wxDEPRECATED_INLINE( - void SetBellOnError(bool doIt = true), - ms_isSilent = doIt; - ) -#endif - -protected: - wxWindowBase *m_validatorWindow; - -private: - static bool ms_isSilent; - - wxDECLARE_DYNAMIC_CLASS(wxValidator); - wxDECLARE_NO_ASSIGN_CLASS(wxValidator); -}; - -extern WXDLLIMPEXP_DATA_CORE(const wxValidator) wxDefaultValidator; - -#define wxVALIDATOR_PARAM(val) val - -#else // !wxUSE_VALIDATORS - // wxWidgets is compiled without support for wxValidator, but we still - // want to be able to pass wxDefaultValidator to the functions which take - // a wxValidator parameter to avoid using "#if wxUSE_VALIDATORS" - // everywhere - class WXDLLIMPEXP_FWD_CORE wxValidator; - static const wxValidator* const wxDefaultValidatorPtr = NULL; - #define wxDefaultValidator (*wxDefaultValidatorPtr) - - // this macro allows to avoid warnings about unused parameters when - // wxUSE_VALIDATORS == 0 - #define wxVALIDATOR_PARAM(val) -#endif // wxUSE_VALIDATORS/!wxUSE_VALIDATORS - -#endif // _WX_VALIDATE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/valnum.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/valnum.h deleted file mode 100644 index 3e73a730..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/valnum.h +++ /dev/null @@ -1,457 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/valnum.h -// Purpose: Numeric validator classes. -// Author: Vadim Zeitlin based on the submission of Fulvio Senore -// Created: 2010-11-06 -// Copyright: (c) 2010 wxWidgets team -// (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VALNUM_H_ -#define _WX_VALNUM_H_ - -#include "wx/defs.h" - -#if wxUSE_VALIDATORS - -#include "wx/validate.h" - -#include <limits> - -// Bit masks used for numeric validator styles. -enum wxNumValidatorStyle -{ - wxNUM_VAL_DEFAULT = 0x0, - wxNUM_VAL_THOUSANDS_SEPARATOR = 0x1, - wxNUM_VAL_ZERO_AS_BLANK = 0x2, - wxNUM_VAL_NO_TRAILING_ZEROES = 0x4 -}; - -// ---------------------------------------------------------------------------- -// Base class for all numeric validators. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxNumValidatorBase : public wxValidator -{ -public: - // Change the validator style. Usually it's specified during construction. - void SetStyle(int style) { m_style = style; } - - - // Override base class method to not do anything but always return success: - // we don't need this as we do our validation on the fly here. - virtual bool Validate(wxWindow * WXUNUSED(parent)) wxOVERRIDE { return true; } - -protected: - wxNumValidatorBase(int style) - { - m_style = style; - } - - wxNumValidatorBase(const wxNumValidatorBase& other) : wxValidator() - { - m_style = other.m_style; - } - - bool HasFlag(wxNumValidatorStyle style) const - { - return (m_style & style) != 0; - } - - // Get the text entry of the associated control. Normally shouldn't ever - // return NULL (and will assert if it does return it) but the caller should - // still test the return value for safety. - wxTextEntry *GetTextEntry() const; - - // Convert wxNUM_VAL_THOUSANDS_SEPARATOR and wxNUM_VAL_NO_TRAILING_ZEROES - // bits of our style to the corresponding wxNumberFormatter::Style values. - int GetFormatFlags() const; - - // Return true if pressing a '-' key is acceptable for the current control - // contents and insertion point. This is meant to be called from the - // derived class IsCharOk() implementation. - bool IsMinusOk(const wxString& val, int pos) const; - - // Return the string which would result from inserting the given character - // at the specified position. - wxString GetValueAfterInsertingChar(wxString val, int pos, wxChar ch) const - { - val.insert(pos, ch); - return val; - } - -private: - // Check whether the specified character can be inserted in the control at - // the given position in the string representing the current controls - // contents. - // - // Notice that the base class checks for '-' itself so it's never passed to - // this function. - virtual bool IsCharOk(const wxString& val, int pos, wxChar ch) const = 0; - - // NormalizeString the contents of the string if it's a valid number, return - // empty string otherwise. - virtual wxString NormalizeString(const wxString& s) const = 0; - - - // Event handlers. - void OnChar(wxKeyEvent& event); - void OnKillFocus(wxFocusEvent& event); - - - // Determine the current insertion point and text in the associated control. - void GetCurrentValueAndInsertionPoint(wxString& val, int& pos) const; - - - // Combination of wxVAL_NUM_XXX values. - int m_style; - - - wxDECLARE_EVENT_TABLE(); - - wxDECLARE_NO_ASSIGN_CLASS(wxNumValidatorBase); -}; - -namespace wxPrivate -{ - -// This is a helper class used by wxIntegerValidator and wxFloatingPointValidator -// below that implements Transfer{To,From}Window() adapted to the type of the -// variable. -// -// The template argument B is the name of the base class which must derive from -// wxNumValidatorBase and define LongestValueType type and {To,As}String() -// methods i.e. basically be one of wx{Integer,Number}ValidatorBase classes. -// -// The template argument T is just the type handled by the validator that will -// inherit from this one. -template <class B, typename T> -class wxNumValidator : public B -{ -public: - typedef B BaseValidator; - typedef T ValueType; - - typedef typename BaseValidator::LongestValueType LongestValueType; - - wxCOMPILE_TIME_ASSERT - ( - sizeof(ValueType) <= sizeof(LongestValueType), - UnsupportedType - ); - - void SetMin(ValueType min) - { - this->DoSetMin(min); - } - - void SetMax(ValueType max) - { - this->DoSetMax(max); - } - - void SetRange(ValueType min, ValueType max) - { - SetMin(min); - SetMax(max); - } - - virtual bool TransferToWindow() - { - if ( m_value ) - { - wxTextEntry * const control = BaseValidator::GetTextEntry(); - if ( !control ) - return false; - - control->SetValue(NormalizeValue(*m_value)); - } - - return true; - } - - virtual bool TransferFromWindow() - { - if ( m_value ) - { - wxTextEntry * const control = BaseValidator::GetTextEntry(); - if ( !control ) - return false; - - const wxString s(control->GetValue()); - LongestValueType value; - if ( s.empty() && BaseValidator::HasFlag(wxNUM_VAL_ZERO_AS_BLANK) ) - value = 0; - else if ( !BaseValidator::FromString(s, &value) ) - return false; - - if ( !this->IsInRange(value) ) - return false; - - *m_value = static_cast<ValueType>(value); - } - - return true; - } - -protected: - wxNumValidator(ValueType *value, int style) - : BaseValidator(style), - m_value(value) - { - } - - // Implement wxNumValidatorBase virtual method which is the same for - // both integer and floating point numbers. - virtual wxString NormalizeString(const wxString& s) const - { - LongestValueType value; - return BaseValidator::FromString(s, &value) ? NormalizeValue(value) - : wxString(); - } - -private: - // Just a helper which is a common part of TransferToWindow() and - // NormalizeString(): returns string representation of a number honouring - // wxNUM_VAL_ZERO_AS_BLANK flag. - wxString NormalizeValue(LongestValueType value) const - { - wxString s; - if ( value != 0 || !BaseValidator::HasFlag(wxNUM_VAL_ZERO_AS_BLANK) ) - s = this->ToString(value); - - return s; - } - - - ValueType * const m_value; - - wxDECLARE_NO_ASSIGN_CLASS(wxNumValidator); -}; - -} // namespace wxPrivate - -// ---------------------------------------------------------------------------- -// Validators for integer numbers. -// ---------------------------------------------------------------------------- - -// Base class for integer numbers validator. This class contains all non -// type-dependent code of wxIntegerValidator<> and always works with values of -// type LongestValueType. It is not meant to be used directly, please use -// wxIntegerValidator<> only instead. -class WXDLLIMPEXP_CORE wxIntegerValidatorBase : public wxNumValidatorBase -{ -protected: - // Define the type we use here, it should be the maximal-sized integer type - // we support to make it possible to base wxIntegerValidator<> for any type - // on it. -#ifdef wxLongLong_t - typedef wxLongLong_t LongestValueType; -#else - typedef long LongestValueType; -#endif - - wxIntegerValidatorBase(int style) - : wxNumValidatorBase(style) - { - wxASSERT_MSG( !(style & wxNUM_VAL_NO_TRAILING_ZEROES), - "This style doesn't make sense for integers." ); - } - - wxIntegerValidatorBase(const wxIntegerValidatorBase& other) - : wxNumValidatorBase(other) - { - m_min = other.m_min; - m_max = other.m_max; - } - - // Provide methods for wxNumValidator use. - wxString ToString(LongestValueType value) const; - static bool FromString(const wxString& s, LongestValueType *value); - - void DoSetMin(LongestValueType min) { m_min = min; } - void DoSetMax(LongestValueType max) { m_max = max; } - - bool IsInRange(LongestValueType value) const - { - return m_min <= value && value <= m_max; - } - - // Implement wxNumValidatorBase pure virtual method. - virtual bool IsCharOk(const wxString& val, int pos, wxChar ch) const wxOVERRIDE; - -private: - // Minimal and maximal values accepted (inclusive). - LongestValueType m_min, m_max; - - wxDECLARE_NO_ASSIGN_CLASS(wxIntegerValidatorBase); -}; - -// Validator for integer numbers. It can actually work with any integer type -// (short, int or long and long long if supported) and their unsigned versions -// as well. -template <typename T> -class wxIntegerValidator - : public wxPrivate::wxNumValidator<wxIntegerValidatorBase, T> -{ -public: - typedef T ValueType; - - typedef - wxPrivate::wxNumValidator<wxIntegerValidatorBase, T> Base; - - // Ctor for an integer validator. - // - // Sets the range appropriately for the type, including setting 0 as the - // minimal value for the unsigned types. - wxIntegerValidator(ValueType *value = NULL, int style = wxNUM_VAL_DEFAULT) - : Base(value, style) - { - this->DoSetMin(std::numeric_limits<ValueType>::min()); - this->DoSetMax(std::numeric_limits<ValueType>::max()); - } - - virtual wxObject *Clone() const { return new wxIntegerValidator(*this); } - -private: - wxDECLARE_NO_ASSIGN_CLASS(wxIntegerValidator); -}; - -// Helper function for creating integer validators which allows to avoid -// explicitly specifying the type as it deduces it from its parameter. -template <typename T> -inline wxIntegerValidator<T> -wxMakeIntegerValidator(T *value, int style = wxNUM_VAL_DEFAULT) -{ - return wxIntegerValidator<T>(value, style); -} - -// ---------------------------------------------------------------------------- -// Validators for floating point numbers. -// ---------------------------------------------------------------------------- - -// Similar to wxIntegerValidatorBase, this class is not meant to be used -// directly, only wxFloatingPointValidator<> should be used in the user code. -class WXDLLIMPEXP_CORE wxFloatingPointValidatorBase : public wxNumValidatorBase -{ -public: - // Set precision i.e. the number of digits shown (and accepted on input) - // after the decimal point. By default this is set to the maximal precision - // supported by the type handled by the validator. - void SetPrecision(unsigned precision) { m_precision = precision; } - -protected: - // Notice that we can't use "long double" here because it's not supported - // by wxNumberFormatter yet, so restrict ourselves to just double (and - // float). - typedef double LongestValueType; - - wxFloatingPointValidatorBase(int style) - : wxNumValidatorBase(style) - { - } - - wxFloatingPointValidatorBase(const wxFloatingPointValidatorBase& other) - : wxNumValidatorBase(other) - { - m_precision = other.m_precision; - - m_min = other.m_min; - m_max = other.m_max; - } - - // Provide methods for wxNumValidator use. - wxString ToString(LongestValueType value) const; - static bool FromString(const wxString& s, LongestValueType *value); - - void DoSetMin(LongestValueType min) { m_min = min; } - void DoSetMax(LongestValueType max) { m_max = max; } - - bool IsInRange(LongestValueType value) const - { - return m_min <= value && value <= m_max; - } - - // Implement wxNumValidatorBase pure virtual method. - virtual bool IsCharOk(const wxString& val, int pos, wxChar ch) const wxOVERRIDE; - -private: - // Maximum number of decimals digits after the decimal separator. - unsigned m_precision; - - // Minimal and maximal values accepted (inclusive). - LongestValueType m_min, m_max; - - wxDECLARE_NO_ASSIGN_CLASS(wxFloatingPointValidatorBase); -}; - -// Validator for floating point numbers. It can be used with float, double or -// long double values. -template <typename T> -class wxFloatingPointValidator - : public wxPrivate::wxNumValidator<wxFloatingPointValidatorBase, T> -{ -public: - typedef T ValueType; - typedef wxPrivate::wxNumValidator<wxFloatingPointValidatorBase, T> Base; - - // Ctor using implicit (maximal) precision for this type. - wxFloatingPointValidator(ValueType *value = NULL, - int style = wxNUM_VAL_DEFAULT) - : Base(value, style) - { - DoSetMinMax(); - - this->SetPrecision(std::numeric_limits<ValueType>::digits10); - } - - // Ctor specifying an explicit precision. - wxFloatingPointValidator(int precision, - ValueType *value = NULL, - int style = wxNUM_VAL_DEFAULT) - : Base(value, style) - { - DoSetMinMax(); - - this->SetPrecision(precision); - } - - virtual wxObject *Clone() const - { - return new wxFloatingPointValidator(*this); - } - -private: - void DoSetMinMax() - { - // NB: Do not use min(), it's not the smallest representable value for - // the floating point types but rather the smallest representable - // positive value. - this->DoSetMin(-std::numeric_limits<ValueType>::max()); - this->DoSetMax( std::numeric_limits<ValueType>::max()); - } -}; - -// Helper similar to wxMakeIntValidator(). -// -// NB: Unfortunately we can't just have a wxMakeNumericValidator() which would -// return either wxIntegerValidator<> or wxFloatingPointValidator<> so we -// do need two different functions. -template <typename T> -inline wxFloatingPointValidator<T> -wxMakeFloatingPointValidator(T *value, int style = wxNUM_VAL_DEFAULT) -{ - return wxFloatingPointValidator<T>(value, style); -} - -template <typename T> -inline wxFloatingPointValidator<T> -wxMakeFloatingPointValidator(int precision, T *value, int style = wxNUM_VAL_DEFAULT) -{ - return wxFloatingPointValidator<T>(precision, value, style); -} - -#endif // wxUSE_VALIDATORS - -#endif // _WX_VALNUM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/valtext.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/valtext.h deleted file mode 100644 index 7dbdec17..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/valtext.h +++ /dev/null @@ -1,108 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/valtext.h -// Purpose: wxTextValidator class -// Author: Julian Smart -// Modified by: Francesco Montorsi -// Created: 29/01/98 -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VALTEXT_H_ -#define _WX_VALTEXT_H_ - -#include "wx/defs.h" - -#if wxUSE_VALIDATORS && (wxUSE_TEXTCTRL || wxUSE_COMBOBOX) - -class WXDLLIMPEXP_FWD_CORE wxTextEntry; - -#include "wx/validate.h" - -enum wxTextValidatorStyle -{ - wxFILTER_NONE = 0x0, - wxFILTER_EMPTY = 0x1, - wxFILTER_ASCII = 0x2, - wxFILTER_ALPHA = 0x4, - wxFILTER_ALPHANUMERIC = 0x8, - wxFILTER_DIGITS = 0x10, - wxFILTER_NUMERIC = 0x20, - wxFILTER_INCLUDE_LIST = 0x40, - wxFILTER_INCLUDE_CHAR_LIST = 0x80, - wxFILTER_EXCLUDE_LIST = 0x100, - wxFILTER_EXCLUDE_CHAR_LIST = 0x200 -}; - -class WXDLLIMPEXP_CORE wxTextValidator: public wxValidator -{ -public: - wxTextValidator(long style = wxFILTER_NONE, wxString *val = NULL); - wxTextValidator(const wxTextValidator& val); - - virtual ~wxTextValidator(){} - - // Make a clone of this validator (or return NULL) - currently necessary - // if you're passing a reference to a validator. - // Another possibility is to always pass a pointer to a new validator - // (so the calling code can use a copy constructor of the relevant class). - virtual wxObject *Clone() const wxOVERRIDE { return new wxTextValidator(*this); } - bool Copy(const wxTextValidator& val); - - // Called when the value in the window must be validated. - // This function can pop up an error message. - virtual bool Validate(wxWindow *parent) wxOVERRIDE; - - // Called to transfer data to the window - virtual bool TransferToWindow() wxOVERRIDE; - - // Called to transfer data from the window - virtual bool TransferFromWindow() wxOVERRIDE; - - // Filter keystrokes - void OnChar(wxKeyEvent& event); - - // ACCESSORS - inline long GetStyle() const { return m_validatorStyle; } - void SetStyle(long style); - - wxTextEntry *GetTextEntry(); - - void SetCharIncludes(const wxString& chars); - void SetIncludes(const wxArrayString& includes) { m_includes = includes; } - inline wxArrayString& GetIncludes() { return m_includes; } - - void SetCharExcludes(const wxString& chars); - void SetExcludes(const wxArrayString& excludes) { m_excludes = excludes; } - inline wxArrayString& GetExcludes() { return m_excludes; } - - bool HasFlag(wxTextValidatorStyle style) const - { return (m_validatorStyle & style) != 0; } - -protected: - - // returns true if all characters of the given string are present in m_includes - bool ContainsOnlyIncludedCharacters(const wxString& val) const; - - // returns true if at least one character of the given string is present in m_excludes - bool ContainsExcludedCharacters(const wxString& val) const; - - // returns the error message if the contents of 'val' are invalid - virtual wxString IsValid(const wxString& val) const; - -protected: - long m_validatorStyle; - wxString* m_stringValue; - wxArrayString m_includes; - wxArrayString m_excludes; - -private: - wxDECLARE_NO_ASSIGN_CLASS(wxTextValidator); - wxDECLARE_DYNAMIC_CLASS(wxTextValidator); - wxDECLARE_EVENT_TABLE(); -}; - -#endif - // wxUSE_VALIDATORS && (wxUSE_TEXTCTRL || wxUSE_COMBOBOX) - -#endif // _WX_VALTEXT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/variant.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/variant.h deleted file mode 100644 index efb1b5b1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/variant.h +++ /dev/null @@ -1,582 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/variant.h -// Purpose: wxVariant class, container for any type -// Author: Julian Smart -// Modified by: -// Created: 10/09/98 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VARIANT_H_ -#define _WX_VARIANT_H_ - -#include "wx/defs.h" - -#if wxUSE_VARIANT - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/arrstr.h" -#include "wx/list.h" -#include "wx/cpp.h" -#include "wx/longlong.h" - -#if wxUSE_DATETIME - #include "wx/datetime.h" -#endif // wxUSE_DATETIME - -#include "wx/iosfwrap.h" - -class wxAny; - -/* - * wxVariantData stores the actual data in a wxVariant object, - * to allow it to store any type of data. - * Derive from this to provide custom data handling. - * - * NB: When you construct a wxVariantData, it will have refcount - * of one. Refcount will not be further increased when - * it is passed to wxVariant. This simulates old common - * scenario where wxVariant took ownership of wxVariantData - * passed to it. - * If you create wxVariantData for other reasons than passing - * it to wxVariant, technically you are not required to call - * DecRef() before deleting it. - * - * TODO: in order to replace wxPropertyValue, we would need - * to consider adding constructors that take pointers to C++ variables, - * or removing that functionality from the wxProperty library. - * Essentially wxPropertyValue takes on some of the wxValidator functionality - * by storing pointers and not just actual values, allowing update of C++ data - * to be handled automatically. Perhaps there's another way of doing this without - * overloading wxVariant with unnecessary functionality. - */ - -class WXDLLIMPEXP_BASE wxVariantData : public wxObjectRefData -{ - friend class wxVariant; -public: - wxVariantData() { } - - // Override these to provide common functionality - virtual bool Eq(wxVariantData& data) const = 0; - -#if wxUSE_STD_IOSTREAM - virtual bool Write(wxSTD ostream& WXUNUSED(str)) const { return false; } -#endif - virtual bool Write(wxString& WXUNUSED(str)) const { return false; } -#if wxUSE_STD_IOSTREAM - virtual bool Read(wxSTD istream& WXUNUSED(str)) { return false; } -#endif - virtual bool Read(wxString& WXUNUSED(str)) { return false; } - // What type is it? Return a string name. - virtual wxString GetType() const = 0; - // If it based on wxObject return the ClassInfo. - virtual wxClassInfo* GetValueClassInfo() { return NULL; } - - // Implement this to make wxVariant::UnShare work. Returns - // a copy of the data. - virtual wxVariantData* Clone() const { return NULL; } - -#if wxUSE_ANY - // Converts value to wxAny, if possible. Return true if successful. - virtual bool GetAsAny(wxAny* WXUNUSED(any)) const { return false; } -#endif - -protected: - // Protected dtor should make some incompatible code - // break more louder. That is, they should do data->DecRef() - // instead of delete data. - virtual ~wxVariantData() { } -}; - -/* - * wxVariant can store any kind of data, but has some basic types - * built in. - */ - -class WXDLLIMPEXP_FWD_BASE wxVariant; - -WX_DECLARE_LIST_WITH_DECL(wxVariant, wxVariantList, class WXDLLIMPEXP_BASE); - -class WXDLLIMPEXP_BASE wxVariant: public wxObject -{ -public: - wxVariant(); - - wxVariant(const wxVariant& variant); - wxVariant(wxVariantData* data, const wxString& name = wxEmptyString); -#if wxUSE_ANY - wxVariant(const wxAny& any); -#endif - virtual ~wxVariant(); - - // generic assignment - void operator= (const wxVariant& variant); - - // Assignment using data, e.g. - // myVariant = new wxStringVariantData("hello"); - void operator= (wxVariantData* variantData); - - bool operator== (const wxVariant& variant) const; - bool operator!= (const wxVariant& variant) const; - - // Sets/gets name - inline void SetName(const wxString& name) { m_name = name; } - inline const wxString& GetName() const { return m_name; } - - // Tests whether there is data - bool IsNull() const; - - // For compatibility with wxWidgets <= 2.6, this doesn't increase - // reference count. - wxVariantData* GetData() const - { - return (wxVariantData*) m_refData; - } - void SetData(wxVariantData* data) ; - - // make a 'clone' of the object - void Ref(const wxVariant& clone) { wxObject::Ref(clone); } - - // ensure that the data is exclusive to this variant, and not shared - bool Unshare(); - - // Make NULL (i.e. delete the data) - void MakeNull(); - - // Delete data and name - void Clear(); - - // Returns a string representing the type of the variant, - // e.g. "string", "bool", "stringlist", "list", "double", "long" - wxString GetType() const; - - bool IsType(const wxString& type) const; - bool IsValueKindOf(const wxClassInfo* type) const; - - // write contents to a string (e.g. for debugging) - wxString MakeString() const; - -#if wxUSE_ANY - wxAny GetAny() const; -#endif - - // double - wxVariant(double val, const wxString& name = wxEmptyString); - bool operator== (double value) const; - bool operator!= (double value) const; - void operator= (double value) ; - inline operator double () const { return GetDouble(); } - inline double GetReal() const { return GetDouble(); } - double GetDouble() const; - - // long - wxVariant(long val, const wxString& name = wxEmptyString); - wxVariant(int val, const wxString& name = wxEmptyString); - wxVariant(short val, const wxString& name = wxEmptyString); - bool operator== (long value) const; - bool operator!= (long value) const; - void operator= (long value) ; - inline operator long () const { return GetLong(); } - inline long GetInteger() const { return GetLong(); } - long GetLong() const; - - // bool - wxVariant(bool val, const wxString& name = wxEmptyString); - bool operator== (bool value) const; - bool operator!= (bool value) const; - void operator= (bool value) ; - inline operator bool () const { return GetBool(); } - bool GetBool() const ; - - // wxDateTime -#if wxUSE_DATETIME - wxVariant(const wxDateTime& val, const wxString& name = wxEmptyString); - bool operator== (const wxDateTime& value) const; - bool operator!= (const wxDateTime& value) const; - void operator= (const wxDateTime& value) ; - inline operator wxDateTime () const { return GetDateTime(); } - wxDateTime GetDateTime() const; -#endif - - // wxString - wxVariant(const wxString& val, const wxString& name = wxEmptyString); - // these overloads are necessary to prevent the compiler from using bool - // version instead of wxString one: - wxVariant(const char* val, const wxString& name = wxEmptyString); - wxVariant(const wchar_t* val, const wxString& name = wxEmptyString); - wxVariant(const wxCStrData& val, const wxString& name = wxEmptyString); - wxVariant(const wxScopedCharBuffer& val, const wxString& name = wxEmptyString); - wxVariant(const wxScopedWCharBuffer& val, const wxString& name = wxEmptyString); - - bool operator== (const wxString& value) const; - bool operator!= (const wxString& value) const; - wxVariant& operator=(const wxString& value); - // these overloads are necessary to prevent the compiler from using bool - // version instead of wxString one: - wxVariant& operator=(const char* value) - { return *this = wxString(value); } - wxVariant& operator=(const wchar_t* value) - { return *this = wxString(value); } - wxVariant& operator=(const wxCStrData& value) - { return *this = value.AsString(); } - template<typename T> - wxVariant& operator=(const wxScopedCharTypeBuffer<T>& value) - { return *this = value.data(); } - - inline operator wxString () const { return MakeString(); } - wxString GetString() const; - -#if wxUSE_STD_STRING - wxVariant(const std::string& val, const wxString& name = wxEmptyString); - bool operator==(const std::string& value) const - { return operator==(wxString(value)); } - bool operator!=(const std::string& value) const - { return operator!=(wxString(value)); } - wxVariant& operator=(const std::string& value) - { return operator=(wxString(value)); } - operator std::string() const { return (operator wxString()).ToStdString(); } - - wxVariant(const wxStdWideString& val, const wxString& name = wxEmptyString); - bool operator==(const wxStdWideString& value) const - { return operator==(wxString(value)); } - bool operator!=(const wxStdWideString& value) const - { return operator!=(wxString(value)); } - wxVariant& operator=(const wxStdWideString& value) - { return operator=(wxString(value)); } - operator wxStdWideString() const { return (operator wxString()).ToStdWstring(); } -#endif // wxUSE_STD_STRING - - // wxUniChar - wxVariant(const wxUniChar& val, const wxString& name = wxEmptyString); - wxVariant(const wxUniCharRef& val, const wxString& name = wxEmptyString); - wxVariant(char val, const wxString& name = wxEmptyString); - wxVariant(wchar_t val, const wxString& name = wxEmptyString); - bool operator==(const wxUniChar& value) const; - bool operator==(const wxUniCharRef& value) const { return *this == wxUniChar(value); } - bool operator==(char value) const { return *this == wxUniChar(value); } - bool operator==(wchar_t value) const { return *this == wxUniChar(value); } - bool operator!=(const wxUniChar& value) const { return !(*this == value); } - bool operator!=(const wxUniCharRef& value) const { return !(*this == value); } - bool operator!=(char value) const { return !(*this == value); } - bool operator!=(wchar_t value) const { return !(*this == value); } - wxVariant& operator=(const wxUniChar& value); - wxVariant& operator=(const wxUniCharRef& value) { return *this = wxUniChar(value); } - wxVariant& operator=(char value) { return *this = wxUniChar(value); } - wxVariant& operator=(wchar_t value) { return *this = wxUniChar(value); } - operator wxUniChar() const { return GetChar(); } - operator char() const { return GetChar(); } - operator wchar_t() const { return GetChar(); } - wxUniChar GetChar() const; - - // wxArrayString - wxVariant(const wxArrayString& val, const wxString& name = wxEmptyString); - bool operator== (const wxArrayString& value) const; - bool operator!= (const wxArrayString& value) const; - void operator= (const wxArrayString& value); - operator wxArrayString () const { return GetArrayString(); } - wxArrayString GetArrayString() const; - - // void* - wxVariant(void* ptr, const wxString& name = wxEmptyString); - bool operator== (void* value) const; - bool operator!= (void* value) const; - void operator= (void* value); - operator void* () const { return GetVoidPtr(); } - void* GetVoidPtr() const; - - // wxObject* - wxVariant(wxObject* ptr, const wxString& name = wxEmptyString); - bool operator== (wxObject* value) const; - bool operator!= (wxObject* value) const; - void operator= (wxObject* value); - wxObject* GetWxObjectPtr() const; - -#if wxUSE_LONGLONG - // wxLongLong - wxVariant(wxLongLong, const wxString& name = wxEmptyString); - bool operator==(wxLongLong value) const; - bool operator!=(wxLongLong value) const; - void operator=(wxLongLong value); - operator wxLongLong() const { return GetLongLong(); } - wxLongLong GetLongLong() const; - - // wxULongLong - wxVariant(wxULongLong, const wxString& name = wxEmptyString); - bool operator==(wxULongLong value) const; - bool operator!=(wxULongLong value) const; - void operator=(wxULongLong value); - operator wxULongLong() const { return GetULongLong(); } - wxULongLong GetULongLong() const; -#endif - - // ------------------------------ - // list operations - // ------------------------------ - - wxVariant(const wxVariantList& val, const wxString& name = wxEmptyString); // List of variants - bool operator== (const wxVariantList& value) const; - bool operator!= (const wxVariantList& value) const; - void operator= (const wxVariantList& value) ; - // Treat a list variant as an array - wxVariant operator[] (size_t idx) const; - wxVariant& operator[] (size_t idx) ; - wxVariantList& GetList() const ; - - // Return the number of elements in a list - size_t GetCount() const; - - // Make empty list - void NullList(); - - // Append to list - void Append(const wxVariant& value); - - // Insert at front of list - void Insert(const wxVariant& value); - - // Returns true if the variant is a member of the list - bool Member(const wxVariant& value) const; - - // Deletes the nth element of the list - bool Delete(size_t item); - - // Clear list - void ClearList(); - -public: - // Type conversion - bool Convert(long* value) const; - bool Convert(bool* value) const; - bool Convert(double* value) const; - bool Convert(wxString* value) const; - bool Convert(wxUniChar* value) const; - bool Convert(char* value) const; - bool Convert(wchar_t* value) const; -#if wxUSE_DATETIME - bool Convert(wxDateTime* value) const; -#endif // wxUSE_DATETIME -#if wxUSE_LONGLONG - bool Convert(wxLongLong* value) const; - bool Convert(wxULongLong* value) const; - #ifdef wxLongLong_t - bool Convert(wxLongLong_t* value) const - { - wxLongLong temp; - if ( !Convert(&temp) ) - return false; - *value = temp.GetValue(); - return true; - } - bool Convert(wxULongLong_t* value) const - { - wxULongLong temp; - if ( !Convert(&temp) ) - return false; - *value = temp.GetValue(); - return true; - } - #endif // wxLongLong_t -#endif // wxUSE_LONGLONG - -// Attributes -protected: - virtual wxObjectRefData *CreateRefData() const wxOVERRIDE; - virtual wxObjectRefData *CloneRefData(const wxObjectRefData *data) const wxOVERRIDE; - - wxString m_name; - -private: - wxDECLARE_DYNAMIC_CLASS(wxVariant); -}; - - -// -// wxVariant <-> wxAny conversion code -// -#if wxUSE_ANY - -#include "wx/any.h" - -// In order to convert wxAny to wxVariant, we need to be able to associate -// wxAnyValueType with a wxVariantData factory function. -typedef wxVariantData* (*wxVariantDataFactory)(const wxAny& any); - -// Actual Any-to-Variant registration must be postponed to a time when all -// global variables have been initialized. Hence this arrangement. -// wxAnyToVariantRegistration instances are kept in global scope and -// wxAnyValueTypeGlobals in any.cpp will use their data when the time is -// right. -class WXDLLIMPEXP_BASE wxAnyToVariantRegistration -{ -public: - wxAnyToVariantRegistration(wxVariantDataFactory factory); - virtual ~wxAnyToVariantRegistration(); - - virtual wxAnyValueType* GetAssociatedType() = 0; - wxVariantDataFactory GetFactory() const { return m_factory; } -private: - wxVariantDataFactory m_factory; -}; - -template<typename T> -class wxAnyToVariantRegistrationImpl : public wxAnyToVariantRegistration -{ -public: - wxAnyToVariantRegistrationImpl(wxVariantDataFactory factory) - : wxAnyToVariantRegistration(factory) - { - } - - virtual wxAnyValueType* GetAssociatedType() wxOVERRIDE - { - return wxAnyValueTypeImpl<T>::GetInstance(); - } -private: -}; - -#define DECLARE_WXANY_CONVERSION() \ -virtual bool GetAsAny(wxAny* any) const wxOVERRIDE; \ -static wxVariantData* VariantDataFactory(const wxAny& any); - -#define _REGISTER_WXANY_CONVERSION(T, CLASSNAME, FUNC) \ -static wxAnyToVariantRegistrationImpl<T> \ - gs_##CLASSNAME##AnyToVariantRegistration = \ - wxAnyToVariantRegistrationImpl<T>(&FUNC); - -#define REGISTER_WXANY_CONVERSION(T, CLASSNAME) \ -_REGISTER_WXANY_CONVERSION(T, CLASSNAME, CLASSNAME::VariantDataFactory) - -#define IMPLEMENT_TRIVIAL_WXANY_CONVERSION(T, CLASSNAME) \ -bool CLASSNAME::GetAsAny(wxAny* any) const \ -{ \ - *any = m_value; \ - return true; \ -} \ -wxVariantData* CLASSNAME::VariantDataFactory(const wxAny& any) \ -{ \ - return new CLASSNAME(any.As<T>()); \ -} \ -REGISTER_WXANY_CONVERSION(T, CLASSNAME) - -#else // if !wxUSE_ANY - -#define DECLARE_WXANY_CONVERSION() -#define REGISTER_WXANY_CONVERSION(T, CLASSNAME) -#define IMPLEMENT_TRIVIAL_WXANY_CONVERSION(T, CLASSNAME) - -#endif // wxUSE_ANY/!wxUSE_ANY - - -#define DECLARE_VARIANT_OBJECT(classname) \ - DECLARE_VARIANT_OBJECT_EXPORTED(classname, wxEMPTY_PARAMETER_VALUE) - -#define DECLARE_VARIANT_OBJECT_EXPORTED(classname,expdecl) \ -expdecl classname& operator << ( classname &object, const wxVariant &variant ); \ -expdecl wxVariant& operator << ( wxVariant &variant, const classname &object ); - -#define IMPLEMENT_VARIANT_OBJECT(classname) \ - IMPLEMENT_VARIANT_OBJECT_EXPORTED(classname, wxEMPTY_PARAMETER_VALUE) - -#define IMPLEMENT_VARIANT_OBJECT_EXPORTED_NO_EQ(classname,expdecl) \ -class classname##VariantData: public wxVariantData \ -{ \ -public:\ - classname##VariantData() {} \ - classname##VariantData( const classname &value ) { m_value = value; } \ -\ - classname &GetValue() { return m_value; } \ -\ - virtual bool Eq(wxVariantData& data) const wxOVERRIDE; \ -\ - virtual wxString GetType() const wxOVERRIDE; \ - virtual wxClassInfo* GetValueClassInfo() wxOVERRIDE; \ -\ - virtual wxVariantData* Clone() const wxOVERRIDE { return new classname##VariantData(m_value); } \ -\ - DECLARE_WXANY_CONVERSION() \ -protected:\ - classname m_value; \ -};\ -\ -wxString classname##VariantData::GetType() const\ -{\ - return m_value.GetClassInfo()->GetClassName();\ -}\ -\ -wxClassInfo* classname##VariantData::GetValueClassInfo()\ -{\ - return m_value.GetClassInfo();\ -}\ -\ -expdecl classname& operator << ( classname &value, const wxVariant &variant )\ -{\ - wxASSERT( variant.GetType() == #classname );\ - \ - classname##VariantData *data = (classname##VariantData*) variant.GetData();\ - value = data->GetValue();\ - return value;\ -}\ -\ -expdecl wxVariant& operator << ( wxVariant &variant, const classname &value )\ -{\ - classname##VariantData *data = new classname##VariantData( value );\ - variant.SetData( data );\ - return variant;\ -} \ -IMPLEMENT_TRIVIAL_WXANY_CONVERSION(classname, classname##VariantData) - -// implements a wxVariantData-derived class using for the Eq() method the -// operator== which must have been provided by "classname" -#define IMPLEMENT_VARIANT_OBJECT_EXPORTED(classname,expdecl) \ -IMPLEMENT_VARIANT_OBJECT_EXPORTED_NO_EQ(classname,wxEMPTY_PARAMETER_VALUE expdecl) \ -\ -bool classname##VariantData::Eq(wxVariantData& data) const \ -{\ - wxASSERT( GetType() == data.GetType() );\ -\ - classname##VariantData & otherData = (classname##VariantData &) data;\ -\ - return otherData.m_value == m_value;\ -}\ - - -// implements a wxVariantData-derived class using for the Eq() method a shallow -// comparison (through wxObject::IsSameAs function) -#define IMPLEMENT_VARIANT_OBJECT_SHALLOWCMP(classname) \ - IMPLEMENT_VARIANT_OBJECT_EXPORTED_SHALLOWCMP(classname, wxEMPTY_PARAMETER_VALUE) -#define IMPLEMENT_VARIANT_OBJECT_EXPORTED_SHALLOWCMP(classname,expdecl) \ -IMPLEMENT_VARIANT_OBJECT_EXPORTED_NO_EQ(classname,wxEMPTY_PARAMETER_VALUE expdecl) \ -\ -bool classname##VariantData::Eq(wxVariantData& data) const \ -{\ - wxASSERT( GetType() == data.GetType() );\ -\ - classname##VariantData & otherData = (classname##VariantData &) data;\ -\ - return (otherData.m_value.IsSameAs(m_value));\ -}\ - - -// Since we want type safety wxVariant we need to fetch and dynamic_cast -// in a seemingly safe way so the compiler can check, so we define -// a dynamic_cast /wxDynamicCast analogue. - -#define wxGetVariantCast(var,classname) \ - ((classname*)(var.IsValueKindOf(&classname::ms_classInfo) ?\ - var.GetWxObjectPtr() : NULL)); - -// Replacement for using wxDynamicCast on a wxVariantData object -#ifndef wxNO_RTTI - #define wxDynamicCastVariantData(data, classname) dynamic_cast<classname*>(data) -#endif - -#define wxStaticCastVariantData(data, classname) static_cast<classname*>(data) - -extern wxVariant WXDLLIMPEXP_BASE wxNullVariant; - -#endif // wxUSE_VARIANT - -#endif // _WX_VARIANT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/variantbase.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/variantbase.h deleted file mode 100644 index 22f4c327..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/variantbase.h +++ /dev/null @@ -1,278 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/variantbase.h -// Purpose: wxVariantBase class, a minimal version of wxVariant used by XTI -// Author: Julian Smart -// Modified by: Francesco Montorsi -// Created: 10/09/98 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VARIANTBASE_H_ -#define _WX_VARIANTBASE_H_ - -#include "wx/defs.h" - -#if wxUSE_VARIANT - -#include "wx/string.h" -#include "wx/arrstr.h" -#include "wx/cpp.h" -#include <typeinfo> - -#if wxUSE_DATETIME - #include "wx/datetime.h" -#endif // wxUSE_DATETIME - -#include "wx/iosfwrap.h" - -class wxTypeInfo; -class wxObject; -class wxClassInfo; - -/* - * wxVariantData stores the actual data in a wxVariant object, - * to allow it to store any type of data. - * Derive from this to provide custom data handling. - * - * NB: To prevent addition of extra vtbl pointer to wxVariantData, - * we don't multiple-inherit from wxObjectRefData. Instead, - * we simply replicate the wxObject ref-counting scheme. - * - * NB: When you construct a wxVariantData, it will have refcount - * of one. Refcount will not be further increased when - * it is passed to wxVariant. This simulates old common - * scenario where wxVariant took ownership of wxVariantData - * passed to it. - * If you create wxVariantData for other reasons than passing - * it to wxVariant, technically you are not required to call - * DecRef() before deleting it. - * - * TODO: in order to replace wxPropertyValue, we would need - * to consider adding constructors that take pointers to C++ variables, - * or removing that functionality from the wxProperty library. - * Essentially wxPropertyValue takes on some of the wxValidator functionality - * by storing pointers and not just actual values, allowing update of C++ data - * to be handled automatically. Perhaps there's another way of doing this without - * overloading wxVariant with unnecessary functionality. - */ - -class WXDLLIMPEXP_BASE wxVariantData -{ - friend class wxVariantBase; - -public: - wxVariantData() - : m_count(1) - { } - -#if wxUSE_STD_IOSTREAM - virtual bool Write(wxSTD ostream& WXUNUSED(str)) const { return false; } - virtual bool Read(wxSTD istream& WXUNUSED(str)) { return false; } -#endif - virtual bool Write(wxString& WXUNUSED(str)) const { return false; } - virtual bool Read(wxString& WXUNUSED(str)) { return false; } - - // Override these to provide common functionality - virtual bool Eq(wxVariantData& data) const = 0; - - // What type is it? Return a string name. - virtual wxString GetType() const = 0; - - // returns the type info of the content - virtual const wxTypeInfo* GetTypeInfo() const = 0; - - // If it based on wxObject return the ClassInfo. - virtual wxClassInfo* GetValueClassInfo() { return NULL; } - - int GetRefCount() const - { return m_count; } - void IncRef() - { m_count++; } - void DecRef() - { - if ( --m_count == 0 ) - delete this; - } - -protected: - // Protected dtor should make some incompatible code - // break more louder. That is, they should do data->DecRef() - // instead of delete data. - virtual ~wxVariantData() {} - -private: - int m_count; -}; - -template<typename T> class wxVariantDataT : public wxVariantData -{ -public: - wxVariantDataT(const T& d) : m_data(d) {} - virtual ~wxVariantDataT() {} - - // get a ref to the stored data - T & Get() { return m_data; } - - // get a const ref to the stored data - const T & Get() const { return m_data; } - - // set the data - void Set(const T& d) { m_data = d; } - - // Override these to provide common functionality - virtual bool Eq(wxVariantData& WXUNUSED(data)) const - { return false; /* FIXME!! */ } - - // What type is it? Return a string name. - virtual wxString GetType() const - { return GetTypeInfo()->GetTypeName(); } - - // return a heap allocated duplicate - //virtual wxVariantData* Clone() const { return new wxVariantDataT<T>( Get() ); } - - // returns the type info of the contentc - virtual const wxTypeInfo* GetTypeInfo() const { return wxGetTypeInfo( (T*) NULL ); } - -private: - T m_data; -}; - - -/* - * wxVariantBase can store any kind of data, but has some basic types - * built in. - */ - -class WXDLLIMPEXP_BASE wxVariantBase -{ -public: - wxVariantBase(); - wxVariantBase(const wxVariantBase& variant); - wxVariantBase(wxVariantData* data, const wxString& name = wxEmptyString); - - template<typename T> - wxVariantBase(const T& data, const wxString& name = wxEmptyString) : - m_data(new wxVariantDataT<T>(data)), m_name(name) {} - - virtual ~wxVariantBase(); - - // generic assignment - void operator= (const wxVariantBase& variant); - - // Assignment using data, e.g. - // myVariant = new wxStringVariantData("hello"); - void operator= (wxVariantData* variantData); - - bool operator== (const wxVariantBase& variant) const; - bool operator!= (const wxVariantBase& variant) const; - - // Sets/gets name - inline void SetName(const wxString& name) { m_name = name; } - inline const wxString& GetName() const { return m_name; } - - // Tests whether there is data - bool IsNull() const; - - // FIXME: used by wxVariantBase code but is nice wording... - bool IsEmpty() const { return IsNull(); } - - // For compatibility with wxWidgets <= 2.6, this doesn't increase - // reference count. - wxVariantData* GetData() const { return m_data; } - void SetData(wxVariantData* data) ; - - // make a 'clone' of the object - void Ref(const wxVariantBase& clone); - - // destroy a reference - void UnRef(); - - // Make NULL (i.e. delete the data) - void MakeNull(); - - // write contents to a string (e.g. for debugging) - wxString MakeString() const; - - // Delete data and name - void Clear(); - - // Returns a string representing the type of the variant, - // e.g. "string", "bool", "stringlist", "list", "double", "long" - wxString GetType() const; - - bool IsType(const wxString& type) const; - bool IsValueKindOf(const wxClassInfo* type) const; - - // FIXME wxXTI methods: - - // get the typeinfo of the stored object - const wxTypeInfo* GetTypeInfo() const - { - if (!m_data) - return NULL; - return m_data->GetTypeInfo(); - } - - // get a ref to the stored data - template<typename T> T& Get() - { - wxVariantDataT<T> *dataptr = - wx_dynamic_cast(wxVariantDataT<T>*, m_data); - wxASSERT_MSG( dataptr, - wxString::Format(wxT("Cast to %s not possible"), typeid(T).name()) ); - return dataptr->Get(); - } - - // get a const ref to the stored data - template<typename T> const T& Get() const - { - const wxVariantDataT<T> *dataptr = - wx_dynamic_cast(const wxVariantDataT<T>*, m_data); - wxASSERT_MSG( dataptr, - wxString::Format(wxT("Cast to %s not possible"), typeid(T).name()) ); - return dataptr->Get(); - } - - template<typename T> bool HasData() const - { - const wxVariantDataT<T> *dataptr = - wx_dynamic_cast(const wxVariantDataT<T>*, m_data); - return dataptr != NULL; - } - - // returns this value as string - wxString GetAsString() const; - - // gets the stored data casted to a wxObject*, - // returning NULL if cast is not possible - wxObject* GetAsObject(); - -protected: - wxVariantData* m_data; - wxString m_name; -}; - -#include "wx/dynarray.h" -WX_DECLARE_OBJARRAY_WITH_DECL(wxVariantBase, wxVariantBaseArray, class WXDLLIMPEXP_BASE); - - -// templated streaming, every type must have their specialization for these methods - -template<typename T> -void wxStringReadValue( const wxString &s, T &data ); - -template<typename T> -void wxStringWriteValue( wxString &s, const T &data); - -template<typename T> -void wxToStringConverter( const wxVariantBase &v, wxString &s ) \ - { wxStringWriteValue( s, v.Get<T>() ); } - -template<typename T> -void wxFromStringConverter( const wxString &s, wxVariantBase &v ) \ - { T d; wxStringReadValue( s, d ); v = wxVariantBase(d); } - - -#endif // wxUSE_VARIANT -#endif // _WX_VARIANTBASE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vector.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vector.h deleted file mode 100644 index 4eb0f856..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vector.h +++ /dev/null @@ -1,579 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/vector.h -// Purpose: STL vector clone -// Author: Lindsay Mathieson -// Modified by: Vaclav Slavik - make it a template -// Created: 30.07.2001 -// Copyright: (c) 2001 Lindsay Mathieson <lindsay@mathieson.org>, -// 2007 Vaclav Slavik <vslavik@fastmail.fm> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VECTOR_H_ -#define _WX_VECTOR_H_ - -#include "wx/defs.h" - -#if wxUSE_STD_CONTAINERS - -#include <vector> -#include <algorithm> - -#define wxVector std::vector -template<typename T> -inline void wxVectorSort(wxVector<T>& v) -{ - std::sort(v.begin(), v.end()); -} - -#else // !wxUSE_STD_CONTAINERS - -#include "wx/scopeguard.h" -#include "wx/meta/movable.h" -#include "wx/meta/if.h" - -#include "wx/beforestd.h" -#include <new> // for placement new -#include "wx/afterstd.h" - -// wxQsort is declared in wx/utils.h, but can't include that file here, -// it indirectly includes this file. Just lovely... -typedef int (*wxSortCallback)(const void* pItem1, - const void* pItem2, - const void* user_data); -WXDLLIMPEXP_BASE void wxQsort(void* pbase, size_t total_elems, - size_t size, wxSortCallback cmp, - const void* user_data); - -namespace wxPrivate -{ - -// These templates encapsulate memory operations for use by wxVector; there are -// two implementations, both in generic way for any C++ types and as an -// optimized version for "movable" types that uses realloc() and memmove(). - -// version for movable types: -template<typename T> -struct wxVectorMemOpsMovable -{ - static void Free(T* array) - { free(array); } - - static T* Realloc(T* old, size_t newCapacity, size_t WXUNUSED(occupiedSize)) - { return (T*)realloc(old, newCapacity * sizeof(T)); } - - static void MemmoveBackward(T* dest, T* source, size_t count) - { memmove(dest, source, count * sizeof(T)); } - - static void MemmoveForward(T* dest, T* source, size_t count) - { memmove(dest, source, count * sizeof(T)); } -}; - -// generic version for non-movable types: -template<typename T> -struct wxVectorMemOpsGeneric -{ - static void Free(T* array) - { ::operator delete(array); } - - static T* Realloc(T* old, size_t newCapacity, size_t occupiedSize) - { - T *mem = (T*)::operator new(newCapacity * sizeof(T)); - for ( size_t i = 0; i < occupiedSize; i++ ) - { - ::new(mem + i) T(old[i]); - old[i].~T(); - } - ::operator delete(old); - return mem; - } - - static void MemmoveBackward(T* dest, T* source, size_t count) - { - wxASSERT( dest < source ); - T* destptr = dest; - T* sourceptr = source; - for ( size_t i = count; i > 0; --i, ++destptr, ++sourceptr ) - { - ::new(destptr) T(*sourceptr); - sourceptr->~T(); - } - } - - static void MemmoveForward(T* dest, T* source, size_t count) - { - wxASSERT( dest > source ); - T* destptr = dest + count - 1; - T* sourceptr = source + count - 1; - for ( size_t i = count; i > 0; --i, --destptr, --sourceptr ) - { - ::new(destptr) T(*sourceptr); - sourceptr->~T(); - } - } -}; - - -} // namespace wxPrivate - -template<typename T> -class wxVector -{ -private: - // This cryptic expression means "typedef Ops to wxVectorMemOpsMovable if - // type T is movable type, otherwise to wxVectorMemOpsGeneric". - // - // Note that bcc needs the extra parentheses for non-type template - // arguments to compile this expression. - typedef typename wxIf< (wxIsMovable<T>::value), - wxPrivate::wxVectorMemOpsMovable<T>, - wxPrivate::wxVectorMemOpsGeneric<T> >::value - Ops; - -public: - typedef size_t size_type; - typedef size_t difference_type; - typedef T value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type* iterator; - typedef const value_type* const_iterator; - typedef value_type& reference; - typedef const value_type& const_reference; - - class reverse_iterator - { - public: - reverse_iterator() : m_ptr(NULL) { } - wxEXPLICIT reverse_iterator(iterator it) : m_ptr(it) { } - reverse_iterator(const reverse_iterator& it) : m_ptr(it.m_ptr) { } - - reference operator*() const { return *m_ptr; } - pointer operator->() const { return m_ptr; } - - iterator base() const { return m_ptr; } - - reverse_iterator& operator++() - { --m_ptr; return *this; } - reverse_iterator operator++(int) - { reverse_iterator tmp = *this; --m_ptr; return tmp; } - reverse_iterator& operator--() - { ++m_ptr; return *this; } - reverse_iterator operator--(int) - { reverse_iterator tmp = *this; ++m_ptr; return tmp; } - - reverse_iterator operator+(difference_type n) const - { return reverse_iterator(m_ptr - n); } - reverse_iterator& operator+=(difference_type n) - { m_ptr -= n; return *this; } - reverse_iterator operator-(difference_type n) const - { return reverse_iterator(m_ptr + n); } - reverse_iterator& operator-=(difference_type n) - { m_ptr += n; return *this; } - - reference operator[](difference_type n) const - { return *(*this + n); } - - bool operator ==(const reverse_iterator& it) const - { return m_ptr == it.m_ptr; } - bool operator !=(const reverse_iterator& it) const - { return m_ptr != it.m_ptr; } - - private: - value_type *m_ptr; - - friend class const_reverse_iterator; - }; - - class const_reverse_iterator - { - public: - const_reverse_iterator() : m_ptr(NULL) { } - wxEXPLICIT const_reverse_iterator(const_iterator it) : m_ptr(it) { } - const_reverse_iterator(const reverse_iterator& it) : m_ptr(it.m_ptr) { } - const_reverse_iterator(const const_reverse_iterator& it) : m_ptr(it.m_ptr) { } - - const_reference operator*() const { return *m_ptr; } - const_pointer operator->() const { return m_ptr; } - - const_iterator base() const { return m_ptr; } - - const_reverse_iterator& operator++() - { --m_ptr; return *this; } - const_reverse_iterator operator++(int) - { const_reverse_iterator tmp = *this; --m_ptr; return tmp; } - const_reverse_iterator& operator--() - { ++m_ptr; return *this; } - const_reverse_iterator operator--(int) - { const_reverse_iterator tmp = *this; ++m_ptr; return tmp; } - - const_reverse_iterator operator+(difference_type n) const - { return const_reverse_iterator(m_ptr - n); } - const_reverse_iterator& operator+=(difference_type n) - { m_ptr -= n; return *this; } - const_reverse_iterator operator-(difference_type n) const - { return const_reverse_iterator(m_ptr + n); } - const_reverse_iterator& operator-=(difference_type n) - { m_ptr += n; return *this; } - - const_reference operator[](difference_type n) const - { return *(*this + n); } - - bool operator ==(const const_reverse_iterator& it) const - { return m_ptr == it.m_ptr; } - bool operator !=(const const_reverse_iterator& it) const - { return m_ptr != it.m_ptr; } - - protected: - const value_type *m_ptr; - }; - - wxVector() : m_size(0), m_capacity(0), m_values(NULL) {} - - wxVector(size_type p_size) - : m_size(0), m_capacity(0), m_values(NULL) - { - reserve(p_size); - for ( size_t n = 0; n < p_size; n++ ) - push_back(value_type()); - } - - wxVector(size_type p_size, const value_type& v) - : m_size(0), m_capacity(0), m_values(NULL) - { - reserve(p_size); - for ( size_t n = 0; n < p_size; n++ ) - push_back(v); - } - - wxVector(const wxVector& c) : m_size(0), m_capacity(0), m_values(NULL) - { - Copy(c); - } - - template <class InputIterator> - wxVector(InputIterator first, InputIterator last) - : m_size(0), m_capacity(0), m_values(NULL) - { - assign(first, last); - } - - ~wxVector() - { - clear(); - } - - void assign(size_type p_size, const value_type& v) - { - clear(); - reserve(p_size); - for ( size_t n = 0; n < p_size; n++ ) - push_back(v); - } - - template <class InputIterator> - void assign(InputIterator first, InputIterator last) - { - clear(); - - // Notice that it would be nice to call reserve() here but we can't do - // it for arbitrary input iterators, we should have a dispatch on - // iterator type and call it if possible. - - for ( InputIterator it = first; it != last; ++it ) - push_back(*it); - } - - void swap(wxVector& v) - { - wxSwap(m_size, v.m_size); - wxSwap(m_capacity, v.m_capacity); - wxSwap(m_values, v.m_values); - } - - void clear() - { - // call destructors of stored objects: - for ( size_type i = 0; i < m_size; i++ ) - { - m_values[i].~T(); - } - - Ops::Free(m_values); - m_values = NULL; - m_size = - m_capacity = 0; - } - - void reserve(size_type n) - { - if ( n <= m_capacity ) - return; - - // increase the size twice, unless we're already too big or unless - // more is requested - // - // NB: casts to size_type are needed to suppress warnings about - // mixing enumeral and non-enumeral type in conditional expression - const size_type increment = m_size > 0 - ? m_size < ALLOC_MAX_SIZE - ? m_size - : (size_type)ALLOC_MAX_SIZE - : (size_type)ALLOC_INITIAL_SIZE; - if ( m_capacity + increment > n ) - n = m_capacity + increment; - - m_values = Ops::Realloc(m_values, n, m_size); - m_capacity = n; - } - - void resize(size_type n) - { - if ( n < m_size ) - Shrink(n); - else if ( n > m_size ) - Extend(n, value_type()); - } - - void resize(size_type n, const value_type& v) - { - if ( n < m_size ) - Shrink(n); - else if ( n > m_size ) - Extend(n, v); - } - - size_type size() const - { - return m_size; - } - - size_type capacity() const - { - return m_capacity; - } - - bool empty() const - { - return size() == 0; - } - - wxVector& operator=(const wxVector& vb) - { - if (this != &vb) - { - clear(); - Copy(vb); - } - return *this; - } - - void push_back(const value_type& v) - { - reserve(size() + 1); - - // use placement new to initialize new object in preallocated place in - // m_values and store 'v' in it: - void* const place = m_values + m_size; - ::new(place) value_type(v); - - // only increase m_size if the ctor didn't throw an exception; notice - // that if it _did_ throw, everything is OK, because we only increased - // vector's capacity so far and possibly written some data to - // uninitialized memory at the end of m_values - m_size++; - } - - void pop_back() - { - erase(end() - 1); - } - - const value_type& at(size_type idx) const - { - wxASSERT(idx < m_size); - return m_values[idx]; - } - - value_type& at(size_type idx) - { - wxASSERT(idx < m_size); - return m_values[idx]; - } - - const value_type& operator[](size_type idx) const { return at(idx); } - value_type& operator[](size_type idx) { return at(idx); } - const value_type& front() const { return at(0); } - value_type& front() { return at(0); } - const value_type& back() const { return at(size() - 1); } - value_type& back() { return at(size() - 1); } - - const_iterator begin() const { return m_values; } - iterator begin() { return m_values; } - const_iterator end() const { return m_values + size(); } - iterator end() { return m_values + size(); } - - reverse_iterator rbegin() { return reverse_iterator(end() - 1); } - reverse_iterator rend() { return reverse_iterator(begin() - 1); } - - const_reverse_iterator rbegin() const { return const_reverse_iterator(end() - 1); } - const_reverse_iterator rend() const { return const_reverse_iterator(begin() - 1); } - - iterator insert(iterator it, const value_type& v = value_type()) - { - // NB: this must be done before reserve(), because reserve() - // invalidates iterators! - const size_t idx = it - begin(); - const size_t after = end() - it; - - reserve(size() + 1); - - // the place where the new element is going to be inserted - value_type * const place = m_values + idx; - - // unless we're inserting at the end, move following elements out of - // the way: - if ( after > 0 ) - Ops::MemmoveForward(place + 1, place, after); - - // if the ctor called below throws an exception, we need to move all - // the elements back to their original positions in m_values - wxScopeGuard moveBack = wxMakeGuard( - Ops::MemmoveBackward, place, place + 1, after); - if ( !after ) - moveBack.Dismiss(); - - // use placement new to initialize new object in preallocated place in - // m_values and store 'v' in it: - ::new(place) value_type(v); - - // now that we did successfully add the new element, increment the size - // and disable moving the items back - moveBack.Dismiss(); - m_size++; - - return begin() + idx; - } - - iterator erase(iterator it) - { - return erase(it, it + 1); - } - - iterator erase(iterator first, iterator last) - { - if ( first == last ) - return first; - wxASSERT( first < end() && last <= end() ); - - const size_type idx = first - begin(); - const size_type count = last - first; - const size_type after = end() - last; - - // erase elements by calling their destructors: - for ( iterator i = first; i < last; ++i ) - i->~T(); - - // once that's done, move following elements over to the freed space: - if ( after > 0 ) - { - Ops::MemmoveBackward(m_values + idx, m_values + idx + count, after); - } - - m_size -= count; - - return begin() + idx; - } - -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED( size_type erase(size_type n) ); -#endif // WXWIN_COMPATIBILITY_2_8 - -private: - static const size_type ALLOC_INITIAL_SIZE = 16; - static const size_type ALLOC_MAX_SIZE = 4096; - - void Copy(const wxVector& vb) - { - reserve(vb.size()); - - for ( const_iterator i = vb.begin(); i != vb.end(); ++i ) - push_back(*i); - } - -private: - void Shrink(size_type n) - { - for ( size_type i = n; i < m_size; i++ ) - m_values[i].~T(); - m_size = n; - } - - void Extend(size_type n, const value_type& v) - { - reserve(n); - for ( size_type i = m_size; i < n; i++ ) - push_back(v); - } - - size_type m_size, - m_capacity; - value_type *m_values; -}; - -#if WXWIN_COMPATIBILITY_2_8 -template<typename T> -inline typename wxVector<T>::size_type wxVector<T>::erase(size_type n) -{ - erase(begin() + n); - return n; -} -#endif // WXWIN_COMPATIBILITY_2_8 - - - -namespace wxPrivate -{ - -// This is a helper for the wxVectorSort function, and should not be used -// directly in user's code. -template<typename T> -struct wxVectorComparator -{ - static int - Compare(const void* pitem1, const void* pitem2, const void* ) - { - const T& item1 = *reinterpret_cast<const T*>(pitem1); - const T& item2 = *reinterpret_cast<const T*>(pitem2); - - if (item1 < item2) - return -1; - else if (item2 < item1) - return 1; - else - return 0; - } -}; - -} // namespace wxPrivate - - - -template<typename T> -void wxVectorSort(wxVector<T>& v) -{ - wxQsort(v.begin(), v.size(), sizeof(T), - wxPrivate::wxVectorComparator<T>::Compare, NULL); -} - - - -#endif // wxUSE_STD_CONTAINERS/!wxUSE_STD_CONTAINERS - -#if WXWIN_COMPATIBILITY_2_8 - #define WX_DECLARE_VECTORBASE(obj, cls) typedef wxVector<obj> cls - #define _WX_DECLARE_VECTOR(obj, cls, exp) WX_DECLARE_VECTORBASE(obj, cls) - #define WX_DECLARE_VECTOR(obj, cls) WX_DECLARE_VECTORBASE(obj, cls) -#endif // WXWIN_COMPATIBILITY_2_8 - -#endif // _WX_VECTOR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/version.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/version.h deleted file mode 100644 index 16578dc2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/version.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Name: wx/version.h - * Purpose: wxWidgets version numbers - * Author: Julian Smart - * Modified by: Ryan Norton (Converted to C) - * Created: 29/01/98 - * Copyright: (c) 1998 Julian Smart - * Licence: wxWindows licence - */ - -/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ - -#ifndef _WX_VERSION_H_ -#define _WX_VERSION_H_ - -#include "wx/cpp.h" /* for wxSTRINGIZE */ - -/* the constants below must be changed with each new version */ -/* ---------------------------------------------------------------------------- */ - -/* - Don't forget to update WX_CURRENT, WX_REVISION and WX_AGE in - build/bakefiles/version.bkl and regenerate the makefiles when you change - this! - */ - -/* NB: this file is parsed by automatic tools so don't change its format! */ -#define wxMAJOR_VERSION 3 -#define wxMINOR_VERSION 1 -#define wxRELEASE_NUMBER 0 -#define wxSUBRELEASE_NUMBER 0 -#define wxVERSION_STRING wxT("wxWidgets 3.1.0") - -/* nothing to update below this line when updating the version */ -/* ---------------------------------------------------------------------------- */ - -/* Users can pre-define wxABI_VERSION to a lower value in their - * makefile/project settings to compile code that will be binary compatible - * with earlier versions of the ABI within the same minor version (between - * minor versions binary compatibility breaks anyway). The default is the - * version of wxWidgets being used. A single number with two decimal digits - * for each component, e.g. 20601 for 2.6.1 */ -#ifndef wxABI_VERSION -#define wxABI_VERSION ( wxMAJOR_VERSION * 10000 + wxMINOR_VERSION * 100 + 99 ) -#endif - -/* helpers for wxVERSION_NUM_XXX */ -#define wxMAKE_VERSION_STRING(x, y, z) \ - wxSTRINGIZE(x) wxSTRINGIZE(y) wxSTRINGIZE(z) -#define wxMAKE_VERSION_DOT_STRING(x, y, z) \ - wxSTRINGIZE(x) "." wxSTRINGIZE(y) "." wxSTRINGIZE(z) - -#define wxMAKE_VERSION_STRING_T(x, y, z) \ - wxSTRINGIZE_T(x) wxSTRINGIZE_T(y) wxSTRINGIZE_T(z) -#define wxMAKE_VERSION_DOT_STRING_T(x, y, z) \ - wxSTRINGIZE_T(x) wxT(".") wxSTRINGIZE_T(y) wxT(".") wxSTRINGIZE_T(z) - -/* these are used by src/msw/version.rc and should always be ASCII, not Unicode */ -#define wxVERSION_NUM_STRING \ - wxMAKE_VERSION_STRING(wxMAJOR_VERSION, wxMINOR_VERSION, wxRELEASE_NUMBER) -#define wxVERSION_NUM_DOT_STRING \ - wxMAKE_VERSION_DOT_STRING(wxMAJOR_VERSION, wxMINOR_VERSION, wxRELEASE_NUMBER) - -/* those are Unicode-friendly */ -#define wxVERSION_NUM_STRING_T \ - wxMAKE_VERSION_STRING_T(wxMAJOR_VERSION, wxMINOR_VERSION, wxRELEASE_NUMBER) -#define wxVERSION_NUM_DOT_STRING_T \ - wxMAKE_VERSION_DOT_STRING_T(wxMAJOR_VERSION, wxMINOR_VERSION, wxRELEASE_NUMBER) - -/* some more defines, not really sure if they're [still] useful */ -#define wxVERSION_NUMBER ( (wxMAJOR_VERSION * 1000) + (wxMINOR_VERSION * 100) + wxRELEASE_NUMBER ) -#define wxBETA_NUMBER 0 -#define wxVERSION_FLOAT ( wxMAJOR_VERSION + (wxMINOR_VERSION/10.0) + (wxRELEASE_NUMBER/100.0) + (wxBETA_NUMBER/10000.0) ) - -/* check if the current version is at least major.minor.release */ -#define wxCHECK_VERSION(major,minor,release) \ - (wxMAJOR_VERSION > (major) || \ - (wxMAJOR_VERSION == (major) && wxMINOR_VERSION > (minor)) || \ - (wxMAJOR_VERSION == (major) && wxMINOR_VERSION == (minor) && wxRELEASE_NUMBER >= (release))) - -/* the same but check the subrelease also */ -#define wxCHECK_VERSION_FULL(major,minor,release,subrel) \ - (wxCHECK_VERSION(major, minor, release) && \ - ((major) != wxMAJOR_VERSION || \ - (minor) != wxMINOR_VERSION || \ - (release) != wxRELEASE_NUMBER || \ - (subrel) <= wxSUBRELEASE_NUMBER)) - -#endif /* _WX_VERSION_H_ */ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/versioninfo.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/versioninfo.h deleted file mode 100644 index 79469111..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/versioninfo.h +++ /dev/null @@ -1,77 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/versioninfo.h -// Purpose: declaration of wxVersionInfo class -// Author: Troels K -// Created: 2010-11-22 -// Copyright: (c) 2010 wxWidgets team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VERSIONINFO_H_ -#define _WX_VERSIONINFO_H_ - -#include "wx/string.h" - -// ---------------------------------------------------------------------------- -// wxVersionInfo: represents version information -// ---------------------------------------------------------------------------- - -class wxVersionInfo -{ -public: - wxVersionInfo(const wxString& name = wxString(), - int major = 0, - int minor = 0, - int micro = 0, - const wxString& description = wxString(), - const wxString& copyright = wxString()) - { - m_name = name; - m_major = major; - m_minor = minor; - m_micro = micro; - m_description = description; - m_copyright = copyright; - } - - // Default copy ctor, assignment operator and dtor are ok. - - - const wxString& GetName() const { return m_name; } - - int GetMajor() const { return m_major; } - int GetMinor() const { return m_minor; } - int GetMicro() const { return m_micro; } - - wxString ToString() const - { - return HasDescription() ? GetDescription() : GetVersionString(); - } - - wxString GetVersionString() const - { - wxString str; - str << m_name << ' ' << GetMajor() << '.' << GetMinor(); - if ( GetMicro() ) - str << '.' << GetMicro(); - - return str; - } - - bool HasDescription() const { return !m_description.empty(); } - const wxString& GetDescription() const { return m_description; } - - bool HasCopyright() const { return !m_copyright.empty(); } - const wxString& GetCopyright() const { return m_copyright; } - -private: - wxString m_name, - m_description, - m_copyright; - - int m_major, - m_minor, - m_micro; -}; - -#endif // _WX_VERSIONINFO_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vidmode.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vidmode.h deleted file mode 100644 index 550bb3b4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vidmode.h +++ /dev/null @@ -1,73 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/vidmode.h -// Purpose: declares wxVideoMode class used by both wxDisplay and wxApp -// Author: Vadim Zeitlin -// Modified by: -// Created: 27.09.2003 (extracted from wx/display.h) -// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VMODE_H_ -#define _WX_VMODE_H_ - -// ---------------------------------------------------------------------------- -// wxVideoMode: a simple struct containing video mode parameters for a display -// ---------------------------------------------------------------------------- - -struct WXDLLIMPEXP_CORE wxVideoMode -{ - wxVideoMode(int width = 0, int height = 0, int depth = 0, int freq = 0) - { - w = width; - h = height; - - bpp = depth; - - refresh = freq; - } - - // default copy ctor and assignment operator are ok - - bool operator==(const wxVideoMode& m) const - { - return w == m.w && h == m.h && bpp == m.bpp && refresh == m.refresh; - } - bool operator!=(const wxVideoMode& mode) const - { - return !operator==(mode); - } - - // returns true if this mode matches the other one in the sense that all - // non zero fields of the other mode have the same value in this one - // (except for refresh which is allowed to have a greater value) - bool Matches(const wxVideoMode& other) const - { - return (!other.w || w == other.w) && - (!other.h || h == other.h) && - (!other.bpp || bpp == other.bpp) && - (!other.refresh || refresh >= other.refresh); - } - - // trivial accessors - int GetWidth() const { return w; } - int GetHeight() const { return h; } - int GetDepth() const { return bpp; } - int GetRefresh() const { return refresh; } - - // returns true if the object has been initialized - bool IsOk() const { return w && h; } - - - // the screen size in pixels (e.g. 640*480), 0 means unspecified - int w, h; - - // bits per pixel (e.g. 32), 1 is monochrome and 0 means unspecified/known - int bpp; - - // refresh frequency in Hz, 0 means unspecified/unknown - int refresh; -}; - -#endif // _WX_VMODE_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vlbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vlbox.h deleted file mode 100644 index 2bee9267..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vlbox.h +++ /dev/null @@ -1,311 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/vlbox.h -// Purpose: wxVListBox is a virtual listbox with lines of variable height -// Author: Vadim Zeitlin -// Modified by: -// Created: 31.05.03 -// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VLBOX_H_ -#define _WX_VLBOX_H_ - -#include "wx/vscroll.h" // base class -#include "wx/bitmap.h" - -class WXDLLIMPEXP_FWD_CORE wxSelectionStore; -extern WXDLLIMPEXP_DATA_CORE(const char) wxVListBoxNameStr[]; - -// ---------------------------------------------------------------------------- -// wxVListBox -// ---------------------------------------------------------------------------- - -/* - This class has two main differences from a regular listbox: it can have an - arbitrarily huge number of items because it doesn't store them itself but - uses OnDrawItem() callback to draw them and its items can have variable - height as determined by OnMeasureItem(). - - It emits the same events as wxListBox and the same event macros may be used - with it. - */ -class WXDLLIMPEXP_CORE wxVListBox : public wxVScrolledWindow -{ -public: - // constructors and such - // --------------------- - - // default constructor, you must call Create() later - wxVListBox() { Init(); } - - // normal constructor which calls Create() internally - wxVListBox(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxVListBoxNameStr) - { - Init(); - - (void)Create(parent, id, pos, size, style, name); - } - - // really creates the control and sets the initial number of items in it - // (which may be changed later with SetItemCount()) - // - // the only special style which may be specified here is wxLB_MULTIPLE - // - // returns true on success or false if the control couldn't be created - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxVListBoxNameStr); - - // dtor does some internal cleanup (deletes m_selStore if any) - virtual ~wxVListBox(); - - - // accessors - // --------- - - // get the number of items in the control - size_t GetItemCount() const { return GetRowCount(); } - - // does this control use multiple selection? - bool HasMultipleSelection() const { return m_selStore != NULL; } - - // get the currently selected item or wxNOT_FOUND if there is no selection - // - // this method is only valid for the single selection listboxes - int GetSelection() const - { - wxASSERT_MSG( !HasMultipleSelection(), - wxT("GetSelection() can't be used with wxLB_MULTIPLE") ); - - return m_current; - } - - // is this item the current one? - bool IsCurrent(size_t item) const { return item == (size_t)m_current; } - #ifdef __WXUNIVERSAL__ - bool IsCurrent() const { return wxVScrolledWindow::IsCurrent(); } - #endif - - // is this item selected? - bool IsSelected(size_t item) const; - - // get the number of the selected items (maybe 0) - // - // this method is valid for both single and multi selection listboxes - size_t GetSelectedCount() const; - - // get the first selected item, returns wxNOT_FOUND if none - // - // cookie is an opaque parameter which should be passed to - // GetNextSelected() later - // - // this method is only valid for the multi selection listboxes - int GetFirstSelected(unsigned long& cookie) const; - - // get next selection item, return wxNOT_FOUND if no more - // - // cookie must be the same parameter that was passed to GetFirstSelected() - // before - // - // this method is only valid for the multi selection listboxes - int GetNextSelected(unsigned long& cookie) const; - - // get the margins around each item - wxPoint GetMargins() const { return m_ptMargins; } - - // get the background colour of selected cells - const wxColour& GetSelectionBackground() const { return m_colBgSel; } - - // get the item rect, returns empty rect if the item is not visible - wxRect GetItemRect(size_t n) const; - - // operations - // ---------- - - // set the number of items to be shown in the control - // - // this is just a synonym for wxVScrolledWindow::SetRowCount() - virtual void SetItemCount(size_t count); - - // delete all items from the control - void Clear() { SetItemCount(0); } - - // set the selection to the specified item, if it is wxNOT_FOUND the - // selection is unset - // - // this function is only valid for the single selection listboxes - void SetSelection(int selection); - - // selects or deselects the specified item which must be valid (i.e. not - // equal to wxNOT_FOUND) - // - // return true if the items selection status has changed or false - // otherwise - // - // this function is only valid for the multiple selection listboxes - bool Select(size_t item, bool select = true); - - // selects the items in the specified range whose end points may be given - // in any order - // - // return true if any items selection status has changed, false otherwise - // - // this function is only valid for the single selection listboxes - bool SelectRange(size_t from, size_t to); - - // toggle the selection of the specified item (must be valid) - // - // this function is only valid for the multiple selection listboxes - void Toggle(size_t item) { Select(item, !IsSelected(item)); } - - // select all items in the listbox - // - // the return code indicates if any items were affected by this operation - // (true) or if nothing has changed (false) - bool SelectAll() { return DoSelectAll(true); } - - // unselect all items in the listbox - // - // the return code has the same meaning as for SelectAll() - bool DeselectAll() { return DoSelectAll(false); } - - // set the margins: horizontal margin is the distance between the window - // border and the item contents while vertical margin is half of the - // distance between items - // - // by default both margins are 0 - void SetMargins(const wxPoint& pt); - void SetMargins(wxCoord x, wxCoord y) { SetMargins(wxPoint(x, y)); } - - // change the background colour of the selected cells - void SetSelectionBackground(const wxColour& col); - - // refreshes only the selected items - void RefreshSelected(); - - - virtual wxVisualAttributes GetDefaultAttributes() const wxOVERRIDE - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); - -protected: - virtual wxBorder GetDefaultBorder() const wxOVERRIDE { return wxBORDER_THEME; } - - // the derived class must implement this function to actually draw the item - // with the given index on the provided DC - virtual void OnDrawItem(wxDC& dc, const wxRect& rect, size_t n) const = 0; - - // the derived class must implement this method to return the height of the - // specified item - virtual wxCoord OnMeasureItem(size_t n) const = 0; - - // this method may be used to draw separators between the lines; note that - // the rectangle may be modified, typically to deflate it a bit before - // passing to OnDrawItem() - // - // the base class version doesn't do anything - virtual void OnDrawSeparator(wxDC& dc, wxRect& rect, size_t n) const; - - // this method is used to draw the items background and, maybe, a border - // around it - // - // the base class version implements a reasonable default behaviour which - // consists in drawing the selected item with the standard background - // colour and drawing a border around the item if it is either selected or - // current - virtual void OnDrawBackground(wxDC& dc, const wxRect& rect, size_t n) const; - - // we implement OnGetRowHeight() in terms of OnMeasureItem() because this - // allows us to add borders to the items easily - // - // this function is not supposed to be overridden by the derived classes - virtual wxCoord OnGetRowHeight(size_t line) const wxOVERRIDE; - - - // event handlers - void OnPaint(wxPaintEvent& event); - void OnKeyDown(wxKeyEvent& event); - void OnLeftDown(wxMouseEvent& event); - void OnLeftDClick(wxMouseEvent& event); - void OnSetOrKillFocus(wxFocusEvent& event); - void OnSize(wxSizeEvent& event); - - // common part of all ctors - void Init(); - - // send the wxEVT_LISTBOX event - void SendSelectedEvent(); - virtual void InitEvent(wxCommandEvent& event, int n); - - // common implementation of SelectAll() and DeselectAll() - bool DoSelectAll(bool select); - - // change the current item (in single selection listbox it also implicitly - // changes the selection); current may be wxNOT_FOUND in which case there - // will be no current item any more - // - // return true if the current item changed, false otherwise - bool DoSetCurrent(int current); - - // flags for DoHandleItemClick - enum - { - ItemClick_Shift = 1, // item shift-clicked - ItemClick_Ctrl = 2, // ctrl - ItemClick_Kbd = 4 // item selected from keyboard - }; - - // common part of keyboard and mouse handling processing code - void DoHandleItemClick(int item, int flags); - - // paint the background of the given item using the provided colour if it's - // valid, otherwise just return false and do nothing (this is used by - // OnDrawBackground()) - bool DoDrawSolidBackground(const wxColour& col, - wxDC& dc, - const wxRect& rect, - size_t n) const; - -private: - // the current item or wxNOT_FOUND - // - // if m_selStore == NULL this is also the selected item, otherwise the - // selections are managed by m_selStore - int m_current; - - // the anchor of the selection for the multiselection listboxes: - // shift-clicking an item extends the selection from m_anchor to the item - // clicked, for example - // - // always wxNOT_FOUND for single selection listboxes - int m_anchor; - - // the object managing our selected items if not NULL - wxSelectionStore *m_selStore; - - // margins - wxPoint m_ptMargins; - - // the selection bg colour - wxColour m_colBgSel; - - wxDECLARE_EVENT_TABLE(); - wxDECLARE_NO_COPY_CLASS(wxVListBox); - wxDECLARE_ABSTRACT_CLASS(wxVListBox); -}; - -#endif // _WX_VLBOX_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vms_x_fix.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vms_x_fix.h deleted file mode 100644 index 8d34abd7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vms_x_fix.h +++ /dev/null @@ -1,1213 +0,0 @@ -/*************************************************************************** - * * - * Author : Jouk Jansen (joukj@hrem.stm.tudelft.nl) * - * * - * Last revision : 7 October 2005 * - * * - * Repair definitions of Runtime library functions when compiling with * - * /name=(as_is) on OpenVMS * - * * - ***************************************************************************/ - -#ifndef VMS_X_FIX -#define VMS_X_FIX - -#define decw$_select DECW$_SELECT -#define DtSaverGetWindows DTSAVERGETWINDOWS -#define MrmFetchWidget MRMFETCHWIDGET -#define MrmInitialize MRMINITIALIZE -#define MrmOpenHierarchy MRMOPENHIERARCHY -#define MrmRegisterNames MRMREGISTERNAMES -#define XAddExtension XADDEXTENSION -#define XAddHosts XADDHOSTS -#define XAllocClassHint XALLOCCLASSHINT -#define XAllocColor XALLOCCOLOR -#define XAllocColorCells XALLOCCOLORCELLS -#define XAllocIconSize XALLOCICONSIZE -#define XAllocNamedColor XALLOCNAMEDCOLOR -#define XAllocSizeHints XALLOCSIZEHINTS -#define XAllocStandardColormap XALLOCSTANDARDCOLORMAP -#define XAllocWMHints XALLOCWMHINTS -#define XAllowEvents XALLOWEVENTS -#define XAutoRepeatOff XAUTOREPEATOFF -#define XAutoRepeatOn XAUTOREPEATON -#define XBaseFontNameListOfFontSet XBASEFONTNAMELISTOFFONTSET -#define XBell XBELL -#define XBitmapPad XBITMAPPAD -#define XBlackPixel XBLACKPIXEL -#define XBlackPixelOfScreen XBLACKPIXELOFSCREEN -#define XCellsOfScreen XCELLSOFSCREEN -#define XChangeActivePointerGrab XCHANGEACTIVEPOINTERGRAB -#define XChangeGC XCHANGEGC -#define XChangeKeyboardControl XCHANGEKEYBOARDCONTROL -#define XChangePointerControl XCHANGEPOINTERCONTROL -#define XChangeProperty XCHANGEPROPERTY -#define XChangeWindowAttributes XCHANGEWINDOWATTRIBUTES -#define XCheckIfEvent XCHECKIFEVENT -#define XCheckMaskEvent XCHECKMASKEVENT -#define XCheckTypedEvent XCHECKTYPEDEVENT -#define XCheckTypedWindowEvent XCHECKTYPEDWINDOWEVENT -#define XCheckWindowEvent XCHECKWINDOWEVENT -#define XClearArea XCLEARAREA -#define XClearWindow XCLEARWINDOW -#define XClipBox XCLIPBOX -#define XCloseDisplay XCLOSEDISPLAY -#define XCloseIM XCLOSEIM -#define XConfigureWindow XCONFIGUREWINDOW -#define XConvertSelection XCONVERTSELECTION -#define XCopyArea XCOPYAREA -#define XCopyColormapAndFree XCOPYCOLORMAPANDFREE -#define XCopyGC XCOPYGC -#define XCopyPlane XCOPYPLANE -#define XCreateBitmapFromData XCREATEBITMAPFROMDATA -#define XCreateColormap XCREATECOLORMAP -#define XCreateFontCursor XCREATEFONTCURSOR -#define XCreateFontSet XCREATEFONTSET -#define XCreateGC XCREATEGC -#define XCreateGlyphCursor XCREATEGLYPHCURSOR -#define XCreateIC XCREATEIC -#define XCreateImage XCREATEIMAGE -#define XCreatePixmap XCREATEPIXMAP -#define XCreatePixmapCursor XCREATEPIXMAPCURSOR -#define XCreatePixmapFromBitmapData XCREATEPIXMAPFROMBITMAPDATA -#define XCreateRegion XCREATEREGION -#define XCreateSimpleWindow XCREATESIMPLEWINDOW -#define XCreateWindow XCREATEWINDOW -#define XDefaultColormap XDEFAULTCOLORMAP -#define XDefaultColormapOfScreen XDEFAULTCOLORMAPOFSCREEN -#define XDefaultDepth XDEFAULTDEPTH -#define XDefaultDepthOfScreen XDEFAULTDEPTHOFSCREEN -#define XDefaultGC XDEFAULTGC -#define XDefaultRootWindow XDEFAULTROOTWINDOW -#define XDefaultScreen XDEFAULTSCREEN -#define XDefaultScreenOfDisplay XDEFAULTSCREENOFDISPLAY -#define XDefaultVisual XDEFAULTVISUAL -#define XDefaultVisualOfScreen XDEFAULTVISUALOFSCREEN -#define XDefineCursor XDEFINECURSOR -#define XDeleteContext XDELETECONTEXT -#define XDeleteProperty XDELETEPROPERTY -#define XDestroyIC XDESTROYIC -#define XDestroyRegion XDESTROYREGION -#define XDestroySubwindows XDESTROYSUBWINDOWS -#define XDestroyWindow XDESTROYWINDOW -#define XDisableAccessControl XDISABLEACCESSCONTROL -#define XDisplayCells XDISPLAYCELLS -#define XDisplayHeight XDISPLAYHEIGHT -#define XDisplayKeycodes XDISPLAYKEYCODES -#define XDisplayName XDISPLAYNAME -#define XDisplayOfIM XDISPLAYOFIM -#define XDisplayOfScreen XDISPLAYOFSCREEN -#define XDisplayString XDISPLAYSTRING -#define XDisplayWidth XDISPLAYWIDTH -#define XDoesBackingStore XDOESBACKINGSTORE -#define XDrawArc XDRAWARC -#define XDrawArcs XDRAWARCS -#define XDrawImageString XDRAWIMAGESTRING -#define XDrawImageString16 XDRAWIMAGESTRING16 -#define XDrawLine XDRAWLINE -#define XDrawLines XDRAWLINES -#define XDrawPoint XDRAWPOINT -#define XDrawPoints XDRAWPOINTS -#define XDrawRectangle XDRAWRECTANGLE -#define XDrawRectangles XDRAWRECTANGLES -#define XDrawSegments XDRAWSEGMENTS -#define XDrawString XDRAWSTRING -#define XDrawString16 XDRAWSTRING16 -#define XDrawText XDRAWTEXT -#define XDrawText16 XDRAWTEXT16 -#define XESetCloseDisplay XESETCLOSEDISPLAY -#define XEmptyRegion XEMPTYREGION -#define XEnableAccessControl XENABLEACCESSCONTROL -#define XEqualRegion XEQUALREGION -#define XEventsQueued XEVENTSQUEUED -#define XExtendedMaxRequestSize XEXTENDEDMAXREQUESTSIZE -#define XExtentsOfFontSet XEXTENTSOFFONTSET -#define XFetchBuffer XFETCHBUFFER -#define XFetchBytes XFETCHBYTES -#define XFetchName XFETCHNAME -#define XFillArc XFILLARC -#define XFillArcs XFILLARCS -#define XFillPolygon XFILLPOLYGON -#define XFillRectangle XFILLRECTANGLE -#define XFillRectangles XFILLRECTANGLES -#define XFilterEvent XFILTEREVENT -#define XFindContext XFINDCONTEXT -#define XFlush XFLUSH -#define XFontsOfFontSet XFONTSOFFONTSET -#define XForceScreenSaver XFORCESCREENSAVER -#define XFree XFREE -#define XFreeColormap XFREECOLORMAP -#define XFreeColors XFREECOLORS -#define XFreeCursor XFREECURSOR -#define XFreeDeviceList XFREEDEVICELIST -#define XFreeDeviceState XFREEDEVICESTATE -#define XFreeFont XFREEFONT -#define XFreeFontInfo XFREEFONTINFO -#define XFreeFontNames XFREEFONTNAMES -#define XFreeFontSet XFREEFONTSET -#define XFreeGC XFREEGC -#define XFreeModifiermap XFREEMODIFIERMAP -#define XFreePixmap XFREEPIXMAP -#define XFreeStringList XFREESTRINGLIST -#define XGContextFromGC XGCONTEXTFROMGC -#define XGeometry XGEOMETRY -#define XGetAtomName XGETATOMNAME -#define XGetCommand XGETCOMMAND -#define XGetDefault XGETDEFAULT -#define XGetErrorDatabaseText XGETERRORDATABASETEXT -#define XGetErrorText XGETERRORTEXT -#define XGetExtensionVersion XGETEXTENSIONVERSION -#define XGetFontProperty XGETFONTPROPERTY -#define XGetGCValues XGETGCVALUES -#define XGetGeometry XGETGEOMETRY -#define XGetICValues XGETICVALUES -#define XGetIMValues XGETIMVALUES -#define XGetIconName XGETICONNAME -#define XGetIconSizes XGETICONSIZES -#define XGetImage XGETIMAGE -#define XGetInputFocus XGETINPUTFOCUS -#define XGetKeyboardControl XGETKEYBOARDCONTROL -#define XGetKeyboardMapping XGETKEYBOARDMAPPING -#define XGetModifierMapping XGETMODIFIERMAPPING -#define XGetMotionEvents XGETMOTIONEVENTS -#define XGetNormalHints XGETNORMALHINTS -#define XGetPointerMapping XGETPOINTERMAPPING -#define XGetRGBColormaps XGETRGBCOLORMAPS -#define XGetScreenSaver XGETSCREENSAVER -#define XGetSelectionOwner XGETSELECTIONOWNER -#define XGetStandardColormap XGETSTANDARDCOLORMAP -#define XGetSubImage XGETSUBIMAGE -#define XGetTextProperty XGETTEXTPROPERTY -#define XGetVisualInfo XGETVISUALINFO -#define XGetWMColormapWindows XGETWMCOLORMAPWINDOWS -#define XGetWMHints XGETWMHINTS -#define XGetWMIconName XGETWMICONNAME -#define XGetWMName XGETWMNAME -#define XGetWMNormalHints XGETWMNORMALHINTS -#define XGetWindowAttributes XGETWINDOWATTRIBUTES -#define XGetWindowProperty XGETWINDOWPROPERTY -#define XGrabButton XGRABBUTTON -#define XGrabKeyboard XGRABKEYBOARD -#define XGrabPointer XGRABPOINTER -#define XGrabServer XGRABSERVER -#define XHeightMMOfScreen XHEIGHTMMOFSCREEN -#define XHeightOfScreen XHEIGHTOFSCREEN -#define XIconifyWindow XICONIFYWINDOW -#define XIfEvent XIFEVENT -#define XInitExtension XINITEXTENSION -#define XInitImage XINITIMAGE -#define XInstallColormap XINSTALLCOLORMAP -#define XInternAtom XINTERNATOM -#define XInternAtoms XINTERNATOMS -#define XIntersectRegion XINTERSECTREGION -#define XKeycodeToKeysym XKEYCODETOKEYSYM -#define XKeysymToKeycode XKEYSYMTOKEYCODE -#define XKeysymToString XKEYSYMTOSTRING -#define XKillClient XKILLCLIENT -#define XListDepths XLISTDEPTHS -#define XListFonts XLISTFONTS -#define XListFontsWithInfo XLISTFONTSWITHINFO -#define XListHosts XLISTHOSTS -#define XListInputDevices XLISTINPUTDEVICES -#define XListInstalledColormaps XLISTINSTALLEDCOLORMAPS -#define XListPixmapFormats XLISTPIXMAPFORMATS -#define XListProperties XLISTPROPERTIES -#define XLoadFont XLOADFONT -#define XLoadQueryFont XLOADQUERYFONT -#define XLookupColor XLOOKUPCOLOR -#define XLookupKeysym XLOOKUPKEYSYM -#define XLookupString XLOOKUPSTRING -#define XLowerWindow XLOWERWINDOW -#define XMapRaised XMAPRAISED -#define XMapSubwindows XMAPSUBWINDOWS -#define XMapWindow XMAPWINDOW -#define XMatchVisualInfo XMATCHVISUALINFO -#define XMaxRequestSize XMAXREQUESTSIZE -#define XMissingExtension XMISSINGEXTENSION -#define XMoveResizeWindow XMOVERESIZEWINDOW -#define XMoveWindow XMOVEWINDOW -#define XNextEvent XNEXTEVENT -#define XNextRequest XNEXTREQUEST -#define XNoOp XNOOP -#define XOffsetRegion XOFFSETREGION -#define XOpenDevice XOPENDEVICE -#define XOpenDisplay XOPENDISPLAY -#define XOpenIM XOPENIM -#define XParseColor XPARSECOLOR -#define XParseGeometry XPARSEGEOMETRY -#define XPeekEvent XPEEKEVENT -#define XPeekIfEvent XPEEKIFEVENT -#define XPending XPENDING -#define XPointInRegion XPOINTINREGION -#define XPolygonRegion XPOLYGONREGION -#define XPutBackEvent XPUTBACKEVENT -#define XPutImage XPUTIMAGE -#define XQLength XQLENGTH -#define XQueryBestCursor XQUERYBESTCURSOR -#define XQueryBestStipple XQUERYBESTSTIPPLE -#define XQueryColor XQUERYCOLOR -#define XQueryColors XQUERYCOLORS -#define XQueryDeviceState XQUERYDEVICESTATE -#define XQueryExtension XQUERYEXTENSION -#define XQueryFont XQUERYFONT -#define XQueryKeymap XQUERYKEYMAP -#define XQueryPointer XQUERYPOINTER -#define XQueryTree XQUERYTREE -#define XRaiseWindow XRAISEWINDOW -#define XReadBitmapFile XREADBITMAPFILE -#define XRecolorCursor XRECOLORCURSOR -#define XReconfigureWMWindow XRECONFIGUREWMWINDOW -#define XRectInRegion XRECTINREGION -#define XRefreshKeyboardMapping XREFRESHKEYBOARDMAPPING -#define XRemoveHosts XREMOVEHOSTS -#define XReparentWindow XREPARENTWINDOW -#define XResetScreenSaver XRESETSCREENSAVER -#define XResizeWindow XRESIZEWINDOW -#define XResourceManagerString XRESOURCEMANAGERSTRING -#define XRestackWindows XRESTACKWINDOWS -#define XRotateBuffers XROTATEBUFFERS -#define XRootWindow XROOTWINDOW -#define XRootWindowOfScreen XROOTWINDOWOFSCREEN -#define XSaveContext XSAVECONTEXT -#define XScreenNumberOfScreen XSCREENNUMBEROFSCREEN -#define XScreenOfDisplay XSCREENOFDISPLAY -#define XSelectAsyncEvent XSELECTASYNCEVENT -#define XSelectAsyncInput XSELECTASYNCINPUT -#define XSelectExtensionEvent XSELECTEXTENSIONEVENT -#define XSelectInput XSELECTINPUT -#define XSendEvent XSENDEVENT -#define XServerVendor XSERVERVENDOR -#define XSetArcMode XSETARCMODE -#define XSetBackground XSETBACKGROUND -#define XSetClassHint XSETCLASSHINT -#define XSetClipMask XSETCLIPMASK -#define XSetClipOrigin XSETCLIPORIGIN -#define XSetClipRectangles XSETCLIPRECTANGLES -#define XSetCloseDownMode XSETCLOSEDOWNMODE -#define XSetCommand XSETCOMMAND -#define XSetDashes XSETDASHES -#define XSetErrorHandler XSETERRORHANDLER -#define XSetFillRule XSETFILLRULE -#define XSetFillStyle XSETFILLSTYLE -#define XSetFont XSETFONT -#define XSetForeground XSETFOREGROUND -#define XSetFunction XSETFUNCTION -#define XSetGraphicsExposures XSETGRAPHICSEXPOSURES -#define XSetICFocus XSETICFOCUS -#define XSetICValues XSETICVALUES -#define XSetIOErrorHandler XSETIOERRORHANDLER -#define XSetIconName XSETICONNAME -#define XSetInputFocus XSETINPUTFOCUS -#define XSetLineAttributes XSETLINEATTRIBUTES -#define XSetLocaleModifiers XSETLOCALEMODIFIERS -#define XSetNormalHints XSETNORMALHINTS -#define XSetPlaneMask XSETPLANEMASK -#define XSetRegion XSETREGION -#define XSetRGBColormaps XSETRGBCOLORMAPS -#define XSetScreenSaver XSETSCREENSAVER -#define XSetSelectionOwner XSETSELECTIONOWNER -#define XSetStandardProperties XSETSTANDARDPROPERTIES -#define XSetState XSETSTATE -#define XSetStipple XSETSTIPPLE -#define XSetSubwindowMode XSETSUBWINDOWMODE -#define XSetTSOrigin XSETTSORIGIN -#define XSetTextProperty XSETTEXTPROPERTY -#define XSetTile XSETTILE -#define XSetTransientForHint XSETTRANSIENTFORHINT -#define XSetWMClientMachine XSETWMCLIENTMACHINE -#define XSetWMColormapWindows XSETWMCOLORMAPWINDOWS -#define XSetWMHints XSETWMHINTS -#define XSetWMIconName XSETWMICONNAME -#define XSetWMName XSETWMNAME -#define XSetWMNormalHints XSETWMNORMALHINTS -#define XSetWMProperties XSETWMPROPERTIES -#define XSetWMProtocols XSETWMPROTOCOLS -#define XSetWMSizeHints XSETWMSIZEHINTS -#define XSetWindowBackground XSETWINDOWBACKGROUND -#define XSetWindowBackgroundPixmap XSETWINDOWBACKGROUNDPIXMAP -#define XSetWindowBorder XSETWINDOWBORDER -#define XSetWindowBorderPixmap XSETWINDOWBORDERPIXMAP -#define XSetWindowBorderWidth XSETWINDOWBORDERWIDTH -#define XSetWindowColormap XSETWINDOWCOLORMAP -#define XShapeCombineMask XSHAPECOMBINEMASK -#define XShapeCombineRectangles XSHAPECOMBINERECTANGLES -#define XShapeGetRectangles XSHAPEGETRECTANGLES -#define XShapeQueryExtension XSHAPEQUERYEXTENSION -#define XShmAttach XSHMATTACH -#define XShmCreateImage XSHMCREATEIMAGE -#define XShmCreatePixmap XSHMCREATEPIXMAP -#define XShmDetach XSHMDETACH -#define XShmGetEventBase XSHMGETEVENTBASE -#define XShmPutImage XSHMPUTIMAGE -#define XShmQueryExtension XSHMQUERYEXTENSION -#define XShmQueryVersion XSHMQUERYVERSION -#define XShrinkRegion XSHRINKREGION -#define XStoreBuffer XSTOREBUFFER -#define XStoreBytes XSTOREBYTES -#define XStoreColor XSTORECOLOR -#define XStoreColors XSTORECOLORS -#define XStoreName XSTORENAME -#define XStringListToTextProperty XSTRINGLISTTOTEXTPROPERTY -#define XStringToKeysym XSTRINGTOKEYSYM -#define XSubtractRegion XSUBTRACTREGION -#define XSupportsLocale XSUPPORTSLOCALE -#define XSync XSYNC -#define XSynchronize XSYNCHRONIZE -#define XTextExtents XTEXTEXTENTS -#define XTextExtents16 XTEXTEXTENTS16 -#define XTextPropertyToStringList XTEXTPROPERTYTOSTRINGLIST -#define XTextWidth XTEXTWIDTH -#define XTextWidth16 XTEXTWIDTH16 -#define XTranslateCoordinates XTRANSLATECOORDINATES -#define XUndefineCursor XUNDEFINECURSOR -#define XUngrabButton XUNGRABBUTTON -#define XUngrabKeyboard XUNGRABKEYBOARD -#define XUngrabPointer XUNGRABPOINTER -#define XUngrabServer XUNGRABSERVER -#define XUninstallColormap XUNINSTALLCOLORMAP -#define XUnionRectWithRegion XUNIONRECTWITHREGION -#define XUnionRegion XUNIONREGION -#define XUniqueContext XUNIQUECONTEXT -#define XUnmapWindow XUNMAPWINDOW -#define XUnsetICFocus XUNSETICFOCUS -#define XVaCreateNestedList XVACREATENESTEDLIST -#define XVisualIDFromVisual XVISUALIDFROMVISUAL -#define XWMGeometry XWMGEOMETRY -#define XWarpPointer XWARPPOINTER -#define XWhitePixel XWHITEPIXEL -#define XWhitePixelOfScreen XWHITEPIXELOFSCREEN -#define XWidthMMOfScreen XWIDTHMMOFSCREEN -#define XWidthOfScreen XWIDTHOFSCREEN -#define XWindowEvent XWINDOWEVENT -#define XWithdrawWindow XWITHDRAWWINDOW -#define XXorRegion XXORREGION -#define XcmsQueryColor XCMSQUERYCOLOR -#define XdbeAllocateBackBufferName XDBEALLOCATEBACKBUFFERNAME -#define XdbeFreeVisualInfo XDBEFREEVISUALINFO -#define XdbeGetVisualInfo XDBEGETVISUALINFO -#define XdbeQueryExtension XDBEQUERYEXTENSION -#define XdbeSwapBuffers XDBESWAPBUFFERS -#define XextAddDisplay XEXTADDDISPLAY -#define XextFindDisplay XEXTFINDDISPLAY -#define XextRemoveDisplay XEXTREMOVEDISPLAY -#define XkbSetDetectableAutoRepeat XKBSETDETECTABLEAUTOREPEAT -#define XmActivateProtocol XMACTIVATEPROTOCOL -#define XmAddProtocolCallback XMADDPROTOCOLCALLBACK -#define XmAddProtocols XMADDPROTOCOLS -#define XmChangeColor XMCHANGECOLOR -#define XmClipboardCopy XMCLIPBOARDCOPY -#define XmClipboardCopyByName XMCLIPBOARDCOPYBYNAME -#define XmClipboardEndCopy XMCLIPBOARDENDCOPY -#define XmClipboardEndRetrieve XMCLIPBOARDENDRETRIEVE -#define XmClipboardInquireCount XMCLIPBOARDINQUIRECOUNT -#define XmClipboardInquireFormat XMCLIPBOARDINQUIREFORMAT -#define XmClipboardInquireLength XMCLIPBOARDINQUIRELENGTH -#define XmClipboardLock XMCLIPBOARDLOCK -#define XmClipboardRetrieve XMCLIPBOARDRETRIEVE -#define XmClipboardStartCopy XMCLIPBOARDSTARTCOPY -#define XmClipboardStartRetrieve XMCLIPBOARDSTARTRETRIEVE -#define XmClipboardUnlock XMCLIPBOARDUNLOCK -#define XmCommandError XMCOMMANDERROR -#define XmCommandGetChild XMCOMMANDGETCHILD -#define XmCommandSetValue XMCOMMANDSETVALUE -#define XmCreateArrowButton XMCREATEARROWBUTTON -#define XmCreateArrowButtonGadget XMCREATEARROWBUTTONGADGET -#define XmCreateBulletinBoardDialog XMCREATEBULLETINBOARDDIALOG -#define XmCreateCascadeButton XMCREATECASCADEBUTTON -#define XmCreateCascadeButtonGadget XMCREATECASCADEBUTTONGADGET -#define XmCreateDialogShell XMCREATEDIALOGSHELL -#define XmCreateDragIcon XMCREATEDRAGICON -#define XmCreateDrawingArea XMCREATEDRAWINGAREA -#define XmCreateDrawnButton XMCREATEDRAWNBUTTON -#define XmCreateErrorDialog XMCREATEERRORDIALOG -#define XmCreateFileSelectionBox XMCREATEFILESELECTIONBOX -#define XmCreateFileSelectionDialog XMCREATEFILESELECTIONDIALOG -#define XmCreateForm XMCREATEFORM -#define XmCreateFormDialog XMCREATEFORMDIALOG -#define XmCreateFrame XMCREATEFRAME -#define XmCreateInformationDialog XMCREATEINFORMATIONDIALOG -#define XmCreateLabel XMCREATELABEL -#define XmCreateLabelGadget XMCREATELABELGADGET -#define XmCreateList XMCREATELIST -#define XmCreateMainWindow XMCREATEMAINWINDOW -#define XmCreateMenuBar XMCREATEMENUBAR -#define XmCreateMessageBox XMCREATEMESSAGEBOX -#define XmCreateMessageDialog XMCREATEMESSAGEDIALOG -#define XmCreateOptionMenu XMCREATEOPTIONMENU -#define XmCreatePanedWindow XMCREATEPANEDWINDOW -#define XmCreatePopupMenu XMCREATEPOPUPMENU -#define XmCreatePromptDialog XMCREATEPROMPTDIALOG -#define XmCreatePulldownMenu XMCREATEPULLDOWNMENU -#define XmCreatePushButton XMCREATEPUSHBUTTON -#define XmCreatePushButtonGadget XMCREATEPUSHBUTTONGADGET -#define XmCreateQuestionDialog XMCREATEQUESTIONDIALOG -#define XmCreateRadioBox XMCREATERADIOBOX -#define XmCreateRowColumn XMCREATEROWCOLUMN -#define XmCreateScale XMCREATESCALE -#define XmCreateScrollBar XMCREATESCROLLBAR -#define XmCreateScrolledList XMCREATESCROLLEDLIST -#define XmCreateScrolledText XMCREATESCROLLEDTEXT -#define XmCreateScrolledWindow XMCREATESCROLLEDWINDOW -#define XmCreateSelectionDialog XMCREATESELECTIONDIALOG -#define XmCreateSeparator XMCREATESEPARATOR -#define XmCreateSeparatorGadget XMCREATESEPARATORGADGET -#define XmCreateTemplateDialog XMCREATETEMPLATEDIALOG -#define XmCreateText XMCREATETEXT -#define XmCreateTextField XMCREATETEXTFIELD -#define XmCreateToggleButton XMCREATETOGGLEBUTTON -#define XmCreateToggleButtonGadget XMCREATETOGGLEBUTTONGADGET -#define XmCreateWarningDialog XMCREATEWARNINGDIALOG -#define XmCvtCTToXmString XMCVTCTTOXMSTRING -#define XmDestroyPixmap XMDESTROYPIXMAP -#define XmDragStart XMDRAGSTART -#define XmDropSiteRegister XMDROPSITEREGISTER -#define XmDropSiteUnregister XMDROPSITEUNREGISTER -#define XmDropSiteUpdate XMDROPSITEUPDATE -#define XmDropTransferStart XMDROPTRANSFERSTART -#define XmFileSelectionBoxGetChild XMFILESELECTIONBOXGETCHILD -#define XmFileSelectionDoSearch XMFILESELECTIONDOSEARCH -#define XmFontListAppendEntry XMFONTLISTAPPENDENTRY -#define XmFontListCopy XMFONTLISTCOPY -#define XmFontListCreate XMFONTLISTCREATE -#define XmFontListEntryCreate XMFONTLISTENTRYCREATE -#define XmFontListEntryFree XMFONTLISTENTRYFREE -#define XmFontListEntryGetFont XMFONTLISTENTRYGETFONT -#define XmFontListEntryGetTag XMFONTLISTENTRYGETTAG -#define XmFontListEntryLoad XMFONTLISTENTRYLOAD -#define XmFontListFree XMFONTLISTFREE -#define XmFontListFreeFontContext XMFONTLISTFREEFONTCONTEXT -#define XmFontListGetNextFont XMFONTLISTGETNEXTFONT -#define XmFontListInitFontContext XMFONTLISTINITFONTCONTEXT -#define XmFontListNextEntry XMFONTLISTNEXTENTRY -#define XmGetColors XMGETCOLORS -#define XmGetColorCalculation XMGETCOLORCALCULATION -#define XmGetFocusWidget XMGETFOCUSWIDGET -#define XmGetMenuCursor XMGETMENUCURSOR -#define XmGetPixmap XMGETPIXMAP -#define XmGetPixmapByDepth XMGETPIXMAPBYDEPTH -#define XmGetTearOffControl XMGETTEAROFFCONTROL -#define XmGetXmDisplay XMGETXMDISPLAY -#define XmImMbLookupString XMIMMBLOOKUPSTRING -#define XmImRegister XMIMREGISTER -#define XmImSetFocusValues XMIMSETFOCUSVALUES -#define XmImSetValues XMIMSETVALUES -#define XmImUnregister XMIMUNREGISTER -#define XmImUnsetFocus XMIMUNSETFOCUS -#define XmInstallImage XMINSTALLIMAGE -#define XmInternAtom XMINTERNATOM -#define XmIsMotifWMRunning XMISMOTIFWMRUNNING -#define XmListAddItem XMLISTADDITEM -#define XmListAddItemUnselected XMLISTADDITEMUNSELECTED -#define XmListAddItems XMLISTADDITEMS -#define XmListAddItemsUnselected XMLISTADDITEMSUNSELECTED -#define XmListDeleteAllItems XMLISTDELETEALLITEMS -#define XmListDeleteItem XMLISTDELETEITEM -#define XmListDeleteItemsPos XMLISTDELETEITEMSPOS -#define XmListDeletePos XMLISTDELETEPOS -#define XmListDeselectAllItems XMLISTDESELECTALLITEMS -#define XmListDeselectPos XMLISTDESELECTPOS -#define XmListGetKbdItemPos XMLISTGETKBDITEMPOS -#define XmListGetMatchPos XMLISTGETMATCHPOS -#define XmListGetSelectedPos XMLISTGETSELECTEDPOS -#define XmListItemExists XMLISTITEMEXISTS -#define XmListItemPos XMLISTITEMPOS -#define XmListPosSelected XMLISTPOSSELECTED -#define XmListReplaceItems XMLISTREPLACEITEMS -#define XmListReplaceItemsPos XMLISTREPLACEITEMSPOS -#define XmListSelectItem XMLISTSELECTITEM -#define XmListSelectPos XMLISTSELECTPOS -#define XmListSetBottomPos XMLISTSETBOTTOMPOS -#define XmListSetItem XMLISTSETITEM -#define XmListSetKbdItemPos XMLISTSETKBDITEMPOS -#define XmListSetPos XMLISTSETPOS -#define XmMainWindowSetAreas XMMAINWINDOWSETAREAS -#define XmMenuPosition XMMENUPOSITION -#define XmMessageBoxGetChild XMMESSAGEBOXGETCHILD -#define XmOptionButtonGadget XMOPTIONBUTTONGADGET -#define XmOptionLabelGadget XMOPTIONLABELGADGET -#define XmProcessTraversal XMPROCESSTRAVERSAL -#define XmQmotif XMQMOTIF -#define XmRemoveProtocolCallback XMREMOVEPROTOCOLCALLBACK -#define XmRemoveProtocols XMREMOVEPROTOCOLS -#define XmRemoveTabGroup XMREMOVETABGROUP -#define XmRepTypeGetId XMREPTYPEGETID -#define XmRepTypeGetRecord XMREPTYPEGETRECORD -#define XmRepTypeInstallTearOffModelCon XMREPTYPEINSTALLTEAROFFMODELCON -#define XmRepTypeRegister XMREPTYPEREGISTER -#define XmRepTypeValidValue XMREPTYPEVALIDVALUE -#define XmScrollBarGetValues XMSCROLLBARGETVALUES -#define XmScrollBarSetValues XMSCROLLBARSETVALUES -#define XmScrolledWindowSetAreas XMSCROLLEDWINDOWSETAREAS -#define XmSelectionBoxGetChild XMSELECTIONBOXGETCHILD -#define XmSetColorCalculation XMSETCOLORCALCULATION -#define XmStringByteCompare XMSTRINGBYTECOMPARE -#define XmStringCompare XMSTRINGCOMPARE -#define XmStringConcat XMSTRINGCONCAT -#define XmStringCopy XMSTRINGCOPY -#define XmStringCreate XMSTRINGCREATE -#define XmStringCreateLocalized XMSTRINGCREATELOCALIZED -#define XmStringCreateLtoR XMSTRINGCREATELTOR -#define XmStringCreateSimple XMSTRINGCREATESIMPLE -#define XmStringDraw XMSTRINGDRAW -#define XmStringDrawUnderline XMSTRINGDRAWUNDERLINE -#define XmStringExtent XMSTRINGEXTENT -#define XmStringFree XMSTRINGFREE -#define XmStringFreeContext XMSTRINGFREECONTEXT -#define XmStringGetLtoR XMSTRINGGETLTOR -#define XmStringGetNextComponent XMSTRINGGETNEXTCOMPONENT -#define XmStringGetNextSegment XMSTRINGGETNEXTSEGMENT -#define XmStringInitContext XMSTRINGINITCONTEXT -#define XmStringLength XMSTRINGLENGTH -#define XmStringLtoRCreate XMSTRINGLTORCREATE -#define XmStringNConcat XMSTRINGNCONCAT -#define XmStringSegmentCreate XMSTRINGSEGMENTCREATE -#define XmStringSeparatorCreate XMSTRINGSEPARATORCREATE -#define XmStringWidth XMSTRINGWIDTH -#define XmTextClearSelection XMTEXTCLEARSELECTION -#define XmTextCopy XMTEXTCOPY -#define XmTextCut XMTEXTCUT -#define XmTextFieldClearSelection XMTEXTFIELDCLEARSELECTION -#define XmTextFieldCopy XMTEXTFIELDCOPY -#define XmTextFieldCut XMTEXTFIELDCUT -#define XmTextFieldGetEditable XMTEXTFIELDGETEDITABLE -#define XmTextFieldGetInsertionPosition XMTEXTFIELDGETINSERTIONPOSITION -#define XmTextFieldGetLastPosition XMTEXTFIELDGETLASTPOSITION -#define XmTextFieldGetMaxLength XMTEXTFIELDGETMAXLENGTH -#define XmTextFieldGetSelection XMTEXTFIELDGETSELECTION -#define XmTextFieldGetSelectionPosition XMTEXTFIELDGETSELECTIONPOSITION -#define XmTextFieldGetString XMTEXTFIELDGETSTRING -#define XmTextFieldInsert XMTEXTFIELDINSERT -#define XmTextFieldPaste XMTEXTFIELDPASTE -#define XmTextFieldRemove XMTEXTFIELDREMOVE -#define XmTextFieldReplace XMTEXTFIELDREPLACE -#define XmTextFieldSetAddMode XMTEXTFIELDSETADDMODE -#define XmTextFieldSetHighlight XMTEXTFIELDSETHIGHLIGHT -#define XmTextFieldSetInsertionPosition XMTEXTFIELDSETINSERTIONPOSITION -#define XmTextFieldSetMaxLength XMTEXTFIELDSETMAXLENGTH -#define XmTextFieldSetSelection XMTEXTFIELDSETSELECTION -#define XmTextFieldSetString XMTEXTFIELDSETSTRING -#define XmTextFieldShowPosition XMTEXTFIELDSHOWPOSITION -#define XmTextGetCursorPosition XMTEXTGETCURSORPOSITION -#define XmTextGetEditable XMTEXTGETEDITABLE -#define XmTextGetInsertionPosition XMTEXTGETINSERTIONPOSITION -#define XmTextGetLastPosition XMTEXTGETLASTPOSITION -#define XmTextGetMaxLength XMTEXTGETMAXLENGTH -#define XmTextGetSelection XMTEXTGETSELECTION -#define XmTextGetSelectionPosition XMTEXTGETSELECTIONPOSITION -#define XmTextGetString XMTEXTGETSTRING -#define XmTextInsert XMTEXTINSERT -#define XmTextPaste XMTEXTPASTE -#define XmTextPosToXY XMTEXTPOSTOXY -#define XmTextRemove XMTEXTREMOVE -#define XmTextReplace XMTEXTREPLACE -#define XmTextSetCursorPosition XMTEXTSETCURSORPOSITION -#define XmTextSetEditable XMTEXTSETEDITABLE -#define XmTextSetHighlight XMTEXTSETHIGHLIGHT -#define XmTextSetInsertionPosition XMTEXTSETINSERTIONPOSITION -#define XmTextSetSelection XMTEXTSETSELECTION -#define XmTextSetString XMTEXTSETSTRING -#define XmTextSetTopCharacter XMTEXTSETTOPCHARACTER -#define XmTextShowPosition XMTEXTSHOWPOSITION -#define XmToggleButtonGadgetGetState XMTOGGLEBUTTONGADGETGETSTATE -#define XmToggleButtonGadgetSetState XMTOGGLEBUTTONGADGETSETSTATE -#define XmToggleButtonGetState XMTOGGLEBUTTONGETSTATE -#define XmToggleButtonSetState XMTOGGLEBUTTONSETSTATE -#define XmUninstallImage XMUNINSTALLIMAGE -#define XmUpdateDisplay XMUPDATEDISPLAY -#define XmVaCreateSimpleRadioBox XMVACREATESIMPLERADIOBOX -#define XmbDrawString XMBDRAWSTRING -#define XmbLookupString XMBLOOKUPSTRING -#define XmbResetIC XMBRESETIC -#define XmbSetWMProperties XMBSETWMPROPERTIES -#define XmbTextEscapement XMBTEXTESCAPEMENT -#define XmbTextExtents XMBTEXTEXTENTS -#define XmbTextListToTextProperty XMBTEXTLISTTOTEXTPROPERTY -#define XmbTextPropertyToTextList XMBTEXTPROPERTYTOTEXTLIST -#define XmbufCreateBuffers XMBUFCREATEBUFFERS -#define XmbufDestroyBuffers XMBUFDESTROYBUFFERS -#define XmbufDisplayBuffers XMBUFDISPLAYBUFFERS -#define XmbufQueryExtension XMBUFQUERYEXTENSION -#define Xmemory_free XMEMORY_FREE -#define Xmemory_malloc XMEMORY_MALLOC -#define XmuClientWindow XMUCLIENTWINDOW -#define XmuConvertStandardSelection XMUCONVERTSTANDARDSELECTION -#define XmuCvtStringToBitmap XMUCVTSTRINGTOBITMAP -#define XmuInternAtom XMUINTERNATOM -#define XmuInternStrings XMUINTERNSTRINGS -#define XmuLookupStandardColormap XMULOOKUPSTANDARDCOLORMAP -#define XmuPrintDefaultErrorMessage XMUPRINTDEFAULTERRORMESSAGE -#define XrmCombineDatabase XRMCOMBINEDATABASE -#define XrmCombineFileDatabase XRMCOMBINEFILEDATABASE -#define XrmDestroyDatabase XRMDESTROYDATABASE -#define XrmGetDatabase XRMGETDATABASE -#define XrmGetFileDatabase XRMGETFILEDATABASE -#define XrmGetResource XRMGETRESOURCE -#define XrmGetStringDatabase XRMGETSTRINGDATABASE -#define XrmInitialize XRMINITIALIZE -#define XrmMergeDatabases XRMMERGEDATABASES -#define XrmParseCommand XRMPARSECOMMAND -#define XrmPermStringToQuark XRMPERMSTRINGTOQUARK -#define XrmPutFileDatabase XRMPUTFILEDATABASE -#define XrmPutLineResource XRMPUTLINERESOURCE -#define XrmPutStringResource XRMPUTSTRINGRESOURCE -#define XrmQGetResource XRMQGETRESOURCE -#define XrmQPutStringResource XRMQPUTSTRINGRESOURCE -#define XrmQuarkToString XRMQUARKTOSTRING -#define XrmSetDatabase XRMSETDATABASE -#define XrmStringToBindingQuarkList XRMSTRINGTOBINDINGQUARKLIST -#define XrmStringToQuark XRMSTRINGTOQUARK -#define XtAddCallback XTADDCALLBACK -#define XtAddCallbacks XTADDCALLBACKS -#define XtAddConverter XTADDCONVERTER -#define XtAddEventHandler XTADDEVENTHANDLER -#define XtAddExposureToRegion XTADDEXPOSURETOREGION -#define XtAddGrab XTADDGRAB -#define XtAddRawEventHandler XTADDRAWEVENTHANDLER -#define XtAllocateGC XTALLOCATEGC -#define XtAppAddActions XTAPPADDACTIONS -#define XtAppAddInput XTAPPADDINPUT -#define XtAppAddTimeOut XTAPPADDTIMEOUT -#define XtAppAddWorkProc XTAPPADDWORKPROC -#define XtAppCreateShell XTAPPCREATESHELL -#define XtAppError XTAPPERROR -#define XtAppErrorMsg XTAPPERRORMSG -#define XtAppInitialize XTAPPINITIALIZE -#define XtAppMainLoop XTAPPMAINLOOP -#define XtAppNextEvent XTAPPNEXTEVENT -#define XtAppPeekEvent XTAPPPEEKEVENT -#define XtAppPending XTAPPPENDING -#define XtAppProcessEvent XTAPPPROCESSEVENT -#define XtAppSetErrorHandler XTAPPSETERRORHANDLER -#define XtAppSetFallbackResources XTAPPSETFALLBACKRESOURCES -#define XtAppSetTypeConverter XTAPPSETTYPECONVERTER -#define XtAppSetWarningHandler XTAPPSETWARNINGHANDLER -#define XtAppWarningMsg XTAPPWARNINGMSG -#define XtAppSetWarningMsgHandler XTAPPSETWARNINGMSGHANDLER -#define XtAppWarning XTAPPWARNING -#define XtAugmentTranslations XTAUGMENTTRANSLATIONS -#define XtCallActionProc XTCALLACTIONPROC -#define XtCallCallbackList XTCALLCALLBACKLIST -#define XtCallCallbacks XTCALLCALLBACKS -#define XtCallConverter XTCALLCONVERTER -#define XtCalloc XTCALLOC -#ifndef NOXTDISPLAY -#define XtClass XTCLASS -#endif -#define XtCloseDisplay XTCLOSEDISPLAY -#define XtConfigureWidget XTCONFIGUREWIDGET -#define XtConvert XTCONVERT -#define XtConvertAndStore XTCONVERTANDSTORE -#define XtCreateApplicationContext XTCREATEAPPLICATIONCONTEXT -#define XtCreateManagedWidget XTCREATEMANAGEDWIDGET -#define XtCreatePopupShell XTCREATEPOPUPSHELL -#define XtCreateWidget XTCREATEWIDGET -#define XtCreateWindow XTCREATEWINDOW -#define XtCvtStringToFont XTCVTSTRINGTOFONT -#define XtDatabase XTDATABASE -#define XtDestroyApplicationContext XTDESTROYAPPLICATIONCONTEXT -#define XtDestroyWidget XTDESTROYWIDGET -#define XtDisownSelection XTDISOWNSELECTION -#define XtDispatchEvent XTDISPATCHEVENT -#ifndef NOXTDISPLAY -#define XtDisplay XTDISPLAY -#endif -#define XtDisplayOfObject XTDISPLAYOFOBJECT -#define XtDisplayStringConvWarning XTDISPLAYSTRINGCONVWARNING -#define XtDisplayToApplicationContext XTDISPLAYTOAPPLICATIONCONTEXT -#define XtError XTERROR -#define XtErrorMsg XTERRORMSG -#define XtFree XTFREE -#define XtGetActionKeysym XTGETACTIONKEYSYM -#define XtGetActionList XTGETACTIONLIST -#define XtGetApplicationNameAndClass XTGETAPPLICATIONNAMEANDCLASS -#define XtGetApplicationResources XTGETAPPLICATIONRESOURCES -#define XtGetClassExtension XTGETCLASSEXTENSION -#define XtGetConstraintResourceList XTGETCONSTRAINTRESOURCELIST -#define XtGetGC XTGETGC -#define XtGetMultiClickTime XTGETMULTICLICKTIME -#define XtGetResourceList XTGETRESOURCELIST -#define XtGetSelectionValue XTGETSELECTIONVALUE -#define XtGetSelectionValues XTGETSELECTIONVALUES -#define XtGetSubresources XTGETSUBRESOURCES -#define XtGetValues XTGETVALUES -#define XtGrabButton XTGRABBUTTON -#define XtGrabKeyboard XTGRABKEYBOARD -#define XtGrabPointer XTGRABPOINTER -#define XtHasCallbacks XTHASCALLBACKS -#define XtInitialize XTINITIALIZE -#define XtInitializeWidgetClass XTINITIALIZEWIDGETCLASS -#define XtInsertEventHandler XTINSERTEVENTHANDLER -#define XtInsertRawEventHandler XTINSERTRAWEVENTHANDLER -#define XtInstallAccelerators XTINSTALLACCELERATORS -#define XtIsManaged XTISMANAGED -#define XtIsObject XTISOBJECT -#ifndef NOXTDISPLAY -#define XtIsRealized XTISREALIZED -#endif -#define XtIsSensitive XTISSENSITIVE -#define XtIsSubclass XTISSUBCLASS -#define XtLastTimestampProcessed XTLASTTIMESTAMPPROCESSED -#define XtMainLoop XTMAINLOOP -#define XtMakeGeometryRequest XTMAKEGEOMETRYREQUEST -#define XtMakeResizeRequest XTMAKERESIZEREQUEST -#define XtMalloc XTMALLOC -#define XtManageChild XTMANAGECHILD -#define XtManageChildren XTMANAGECHILDREN -#define XtMergeArgLists XTMERGEARGLISTS -#define XtMoveWidget XTMOVEWIDGET -#define XtName XTNAME -#define XtNameToWidget XTNAMETOWIDGET -#define XtOpenApplication XTOPENAPPLICATION -#define XtOpenDisplay XTOPENDISPLAY -#define XtOverrideTranslations XTOVERRIDETRANSLATIONS -#define XtOwnSelection XTOWNSELECTION -#ifndef NOXTDISPLAY -#define XtParent XTPARENT -#endif -#define XtParseAcceleratorTable XTPARSEACCELERATORTABLE -#define XtParseTranslationTable XTPARSETRANSLATIONTABLE -#define XtPopdown XTPOPDOWN -#define XtPopup XTPOPUP -#define XtPopupSpringLoaded XTPOPUPSPRINGLOADED -#define XtQueryGeometry XTQUERYGEOMETRY -#define XtRealizeWidget XTREALIZEWIDGET -#define XtRealloc XTREALLOC -#define XtRegisterDrawable _XTREGISTERWINDOW -#define XtRegisterGrabAction XTREGISTERGRABACTION -#define XtReleaseGC XTRELEASEGC -#define XtRemoveAllCallbacks XTREMOVEALLCALLBACKS -#define XtRemoveCallback XTREMOVECALLBACK -#define XtRemoveEventHandler XTREMOVEEVENTHANDLER -#define XtRemoveGrab XTREMOVEGRAB -#define XtRemoveInput XTREMOVEINPUT -#define XtRemoveTimeOut XTREMOVETIMEOUT -#define XtRemoveWorkProc XTREMOVEWORKPROC -#define XtResizeWidget XTRESIZEWIDGET -#define XtResolvePathname XTRESOLVEPATHNAME -#ifndef NOXTDISPLAY -#define XtScreen XTSCREEN -#endif -#define XtScreenDatabase XTSCREENDATABASE -#define XtScreenOfObject XTSCREENOFOBJECT -#define XtSessionReturnToken XTSESSIONRETURNTOKEN -#define XtSetErrorHandler XTSETERRORHANDLER -#define XtSetKeyboardFocus XTSETKEYBOARDFOCUS -#define XtSetLanguageProc XTSETLANGUAGEPROC -#define XtSetMappedWhenManaged XTSETMAPPEDWHENMANAGED -#define XtSetSensitive XTSETSENSITIVE -#define XtSetTypeConverter XTSETTYPECONVERTER -#define XtSetValues XTSETVALUES -#define XtShellStrings XTSHELLSTRINGS -#define XtStringConversionWarning XTSTRINGCONVERSIONWARNING -#define XtStrings XTSTRINGS -#define XtToolkitInitialize XTTOOLKITINITIALIZE -#define XtTranslateCoords XTTRANSLATECOORDS -#define XtTranslateKeycode XTTRANSLATEKEYCODE -#define XtUngrabButton XTUNGRABBUTTON -#define XtUngrabKeyboard XTUNGRABKEYBOARD -#define XtUngrabPointer XTUNGRABPOINTER -#define XtUnmanageChild XTUNMANAGECHILD -#define XtUnmanageChildren XTUNMANAGECHILDREN -#define XtUnrealizeWidget XTUNREALIZEWIDGET -#define XtUnregisterDrawable _XTUNREGISTERWINDOW -#define XtVaCreateManagedWidget XTVACREATEMANAGEDWIDGET -#define XtVaCreatePopupShell XTVACREATEPOPUPSHELL -#define XtVaCreateWidget XTVACREATEWIDGET -#define XtVaGetApplicationResources XTVAGETAPPLICATIONRESOURCES -#define XtVaGetValues XTVAGETVALUES -#define XtVaSetValues XTVASETVALUES -#define XtWarning XTWARNING -#define XtWarningMsg XTWARNINGMSG -#define XtWidgetToApplicationContext XTWIDGETTOAPPLICATIONCONTEXT -#ifndef NOXTDISPLAY -#define XtWindow XTWINDOW -#endif -#define XtWindowOfObject XTWINDOWOFOBJECT -#define XtWindowToWidget XTWINDOWTOWIDGET -#define XwcDrawImageString XWCDRAWIMAGESTRING -#define XwcDrawString XWCDRAWSTRING -#define XwcFreeStringList XWCFREESTRINGLIST -#define XwcTextEscapement XWCTEXTESCAPEMENT -#define XwcTextExtents XWCTEXTEXTENTS -#define XwcTextListToTextProperty XWCTEXTLISTTOTEXTPROPERTY -#define XwcLookupString XWCLOOKUPSTRING -#define XwcTextPropertyToTextList XWCTEXTPROPERTYTOTEXTLIST -#define _XAllocTemp _XALLOCTEMP -#define _XDeqAsyncHandler _XDEQASYNCHANDLER -#define _XEatData _XEATDATA -#define _XFlush _XFLUSH -#define _XFreeTemp _XFREETEMP -#define _XGetAsyncReply _XGETASYNCREPLY -#define _XInitImageFuncPtrs _XINITIMAGEFUNCPTRS -#define _XRead _XREAD -#define _XReadPad _XREADPAD -#define _XRegisterFilterByType _XREGISTERFILTERBYTYPE -#define _XReply _XREPLY -#define _XSend _XSEND -#define _XUnregisterFilter _XUNREGISTERFILTER -#define _XVIDtoVisual _XVIDTOVISUAL -#define _XmBottomShadowColorDefault _XMBOTTOMSHADOWCOLORDEFAULT -#define _XmClearBorder _XMCLEARBORDER -#define _XmConfigureObject _XMCONFIGUREOBJECT -#define _XmDestroyParentCallback _XMDESTROYPARENTCALLBACK -#define _XmDrawArrow _XMDRAWARROW -#define _XmDrawShadows _XMDRAWSHADOWS -#define _XmFontListGetDefaultFont _XMFONTLISTGETDEFAULTFONT -#define _XmFromHorizontalPixels _XMFROMHORIZONTALPIXELS -#define _XmFromVerticalPixels _XMFROMVERTICALPIXELS -#define _XmGetClassExtensionPtr _XMGETCLASSEXTENSIONPTR -#define _XmGetDefaultFontList _XMGETDEFAULTFONTLIST -#define _XmGetTextualDragIcon _XMGETTEXTUALDRAGICON -#define _XmGetWidgetExtData _XMGETWIDGETEXTDATA -#define _XmGrabKeyboard _XMGRABKEYBOARD -#define _XmGrabPointer _XMGRABPOINTER -#define _XmInheritClass _XMINHERITCLASS -#define _XmInputForGadget _XMINPUTFORGADGET -#define _XmInputInGadget _XMINPUTINGADGET -#define _XmMakeGeometryRequest _XMMAKEGEOMETRYREQUEST -#define _XmMenuPopDown _XMMENUPOPDOWN -#define _XmMoveObject _XMMOVEOBJECT -#define _XmNavigChangeManaged _XMNAVIGCHANGEMANAGED -#define _XmOSBuildFileList _XMOSBUILDFILELIST -#define _XmOSFileCompare _XMOSFILECOMPARE -#define _XmOSFindPatternPart _XMOSFINDPATTERNPART -#define _XmOSQualifyFileSpec _XMOSQUALIFYFILESPEC -#define _XmPostPopupMenu _XMPOSTPOPUPMENU -#define _XmPrimitiveEnter _XMPRIMITIVEENTER -#define _XmPrimitiveLeave _XMPRIMITIVELEAVE -#define _XmRedisplayGadgets _XMREDISPLAYGADGETS -#define _XmShellIsExclusive _XMSHELLISEXCLUSIVE -#define _XmStringDraw _XMSTRINGDRAW -#define _XmStringGetTextConcat _XMSTRINGGETTEXTCONCAT -#define _XmStrings _XMSTRINGS -#define _XmToHorizontalPixels _XMTOHORIZONTALPIXELS -#define _XmToVerticalPixels _XMTOVERTICALPIXELS -#define _XmTopShadowColorDefault _XMTOPSHADOWCOLORDEFAULT -#define _Xm_fastPtr _XM_FASTPTR -#define _XtCheckSubclassFlag _XTCHECKSUBCLASSFLAG -#define _XtCopyFromArg _XTCOPYFROMARG -#define _XtCountVaList _XTCOUNTVALIST -#define _XtInherit _XTINHERIT -#define _XtInheritTranslations _XTINHERITTRANSLATIONS -#define _XtIsSubclassOf _XTISSUBCLASSOF -#define _XtVaToArgList _XTVATOARGLIST -#define applicationShellWidgetClass APPLICATIONSHELLWIDGETCLASS -#define cli$dcl_parse CLI$DCL_PARSE -#define cli$get_value CLI$GET_VALUE -#define cli$present CLI$PRESENT -#define compositeClassRec COMPOSITECLASSREC -#define compositeWidgetClass COMPOSITEWIDGETCLASS -#define constraintClassRec CONSTRAINTCLASSREC -#define constraintWidgetClass CONSTRAINTWIDGETCLASS -#define coreWidgetClass COREWIDGETCLASS -#define exe$getspi EXE$GETSPI -#define lbr$close LBR$CLOSE -#define lbr$get_header LBR$GET_HEADER -#define lbr$get_index LBR$GET_INDEX -#define lbr$get_record LBR$GET_RECORD -#define lbr$ini_control LBR$INI_CONTROL -#define lbr$lookup_key LBR$LOOKUP_KEY -#define lbr$open LBR$OPEN -#define lbr$output_help LBR$OUTPUT_HELP -#define lib$add_times LIB$ADD_TIMES -#define lib$addx LIB$ADDX -#define lib$create_dir LIB$CREATE_DIR -#define lib$create_vm_zone LIB$CREATE_VM_ZONE -#define lib$cvt_from_internal_time LIB$CVT_FROM_INTERNAL_TIME -#define lib$cvt_htb LIB$CVT_HTB -#define lib$cvt_vectim LIB$CVT_VECTIM -#define lib$day LIB$DAY -#define lib$day_of_week LIB$DAY_OF_WEEK -#define lib$delete_symbol LIB$DELETE_SYMBOL -#define lib$delete_vm_zone LIB$DELETE_VM_ZONE -#define lib$disable_ctrl LIB$DISABLE_CTRL -#define lib$ediv LIB$EDIV -#define lib$emul LIB$EMUL -#define lib$enable_ctrl LIB$ENABLE_CTRL -#define lib$find_vm_zone LIB$FIND_VM_ZONE -#define lib$format_date_time LIB$FORMAT_DATE_TIME -#define lib$free_timer LIB$FREE_TIMER -#define lib$free_vm LIB$FREE_VM -#define lib$get_ef LIB$GET_EF -#define lib$get_foreign LIB$GET_FOREIGN -#define lib$get_input LIB$GET_INPUT -#define lib$get_users_language LIB$GET_USERS_LANGUAGE -#define lib$get_vm LIB$GET_VM -#define lib$get_symbol LIB$GET_SYMBOL -#define lib$getdvi LIB$GETDVI -#define lib$init_date_time_context LIB$INIT_DATE_TIME_CONTEXT -#define lib$init_timer LIB$INIT_TIMER -#define lib$find_file LIB$FIND_FILE -#define lib$find_file_end LIB$FIND_FILE_END -#define lib$find_image_symbol LIB$FIND_IMAGE_SYMBOL -#define lib$mult_delta_time LIB$MULT_DELTA_TIME -#define lib$put_output LIB$PUT_OUTPUT -#define lib$rename_file LIB$RENAME_FILE -#define lib$reset_vm_zone LIB$RESET_VM_ZONE -#define lib$set_symbol LIB$SET_SYMBOL -#define lib$sfree1_dd LIB$SFREE1_DD -#define lib$show_vm LIB$SHOW_VM -#define lib$show_vm_zone LIB$SHOW_VM_ZONE -#define lib$spawn LIB$SPAWN -#define lib$stat_timer LIB$STAT_TIMER -#define lib$subx LIB$SUBX -#define lib$sub_times LIB$SUB_TIMES -#define lib$wait LIB$WAIT -#define mail$send_add_address MAIL$SEND_ADD_ADDRESS -#define mail$send_add_attribute MAIL$SEND_ADD_ATTRIBUTE -#define mail$send_add_bodypart MAIL$SEND_ADD_BODYPART -#define mail$send_begin MAIL$SEND_BEGIN -#define mail$send_end MAIL$SEND_END -#define mail$send_message MAIL$SEND_MESSAGE -#define ncs$convert NCS$CONVERT -#define ncs$get_cf NCS$GET_CF -#define objectClass OBJECTCLASS -#define objectClassRec OBJECTCLASSREC -#define overrideShellClassRec OVERRIDESHELLCLASSREC -#define overrideShellWidgetClass OVERRIDESHELLWIDGETCLASS -#define pthread_attr_create PTHREAD_ATTR_CREATE -#define pthread_attr_delete PTHREAD_ATTR_DELETE -#define pthread_attr_destroy PTHREAD_ATTR_DESTROY -#define pthread_attr_getdetach_np PTHREAD_ATTR_GETDETACH_NP -#define pthread_attr_getguardsize_np PTHREAD_ATTR_GETGUARDSIZE_NP -#define pthread_attr_getinheritsched PTHREAD_ATTR_GETINHERITSCHED -#define pthread_attr_getprio PTHREAD_ATTR_GETPRIO -#define pthread_attr_getsched PTHREAD_ATTR_GETSCHED -#define pthread_attr_getschedparam PTHREAD_ATTR_GETSCHEDPARAM -#define pthread_attr_getschedpolicy PTHREAD_ATTR_GETSCHEDPOLICY -#define pthread_attr_getstacksize PTHREAD_ATTR_GETSTACKSIZE -#define pthread_attr_init PTHREAD_ATTR_INIT -#define pthread_attr_setdetach_np PTHREAD_ATTR_SETDETACH_NP -#define pthread_attr_setdetachstate PTHREAD_ATTR_SETDETACHSTATE -#define pthread_attr_setguardsize_np PTHREAD_ATTR_SETGUARDSIZE_NP -#define pthread_attr_setinheritsched PTHREAD_ATTR_SETINHERITSCHED -#define pthread_attr_setprio PTHREAD_ATTR_SETPRIO -#define pthread_attr_setsched PTHREAD_ATTR_SETSCHED -#define pthread_attr_setschedparam PTHREAD_ATTR_SETSCHEDPARAM -#define pthread_attr_setschedpolicy PTHREAD_ATTR_SETSCHEDPOLICY -#ifndef pthread_attr_setscope -# define pthread_attr_setscope PTHREAD_ATTR_SETSCOPE -#endif -#define pthread_attr_setstacksize PTHREAD_ATTR_SETSTACKSIZE -#define pthread_cancel PTHREAD_CANCEL -#define pthread_cancel_e PTHREAD_CANCEL_E -#define pthread_cond_broadcast PTHREAD_COND_BROADCAST -#define pthread_cond_destroy PTHREAD_COND_DESTROY -#define pthread_cond_init PTHREAD_COND_INIT -#define pthread_cond_sig_preempt_int_np PTHREAD_COND_SIG_PREEMPT_INT_NP -#define pthread_cond_signal PTHREAD_COND_SIGNAL -#define pthread_cond_signal_int_np PTHREAD_COND_SIGNAL_INT_NP -#define pthread_cond_timedwait PTHREAD_COND_TIMEDWAIT -#define pthread_cond_wait PTHREAD_COND_WAIT -#define pthread_condattr_create PTHREAD_CONDATTR_CREATE -#define pthread_condattr_delete PTHREAD_CONDATTR_DELETE -#define pthread_condattr_init PTHREAD_CONDATTR_INIT -#define pthread_create PTHREAD_CREATE -#define pthread_delay_np PTHREAD_DELAY_NP -#define pthread_detach PTHREAD_DETACH -#define pthread_equal PTHREAD_EQUAL -#define pthread_exc_fetch_fp_np PTHREAD_EXC_FETCH_FP_NP -#define pthread_exc_handler_np PTHREAD_EXC_HANDLER_NP -#define pthread_exc_matches_np PTHREAD_EXC_MATCHES_NP -#define pthread_exc_pop_ctx_np PTHREAD_EXC_POP_CTX_NP -#define pthread_exc_push_ctx_np PTHREAD_EXC_PUSH_CTX_NP -#define pthread_exc_raise_np PTHREAD_EXC_RAISE_NP -#define pthread_exc_savecontext_np PTHREAD_EXC_SAVECONTEXT_NP -#define pthread_exit PTHREAD_EXIT -#define pthread_get_expiration_np PTHREAD_GET_EXPIRATION_NP -#define pthread_getprio PTHREAD_GETPRIO -#define pthread_getschedparam PTHREAD_GETSCHEDPARAM -#define pthread_getscheduler PTHREAD_GETSCHEDULER -#define pthread_getspecific PTHREAD_GETSPECIFIC -#define pthread_getunique_np PTHREAD_GETUNIQUE_NP -#define pthread_join PTHREAD_JOIN -#define pthread_join32 PTHREAD_JOIN32 -#define pthread_key_create PTHREAD_KEY_CREATE -#define pthread_key_delete PTHREAD_KEY_DELETE -#define pthread_keycreate PTHREAD_KEYCREATE -#define pthread_kill PTHREAD_KILL -#define pthread_lock_global_np PTHREAD_LOCK_GLOBAL_NP -#define pthread_mutex_destroy PTHREAD_MUTEX_DESTROY -#define pthread_mutex_init PTHREAD_MUTEX_INIT -#define pthread_mutex_lock PTHREAD_MUTEX_LOCK -#define pthread_mutex_trylock PTHREAD_MUTEX_TRYLOCK -#define pthread_mutex_unlock PTHREAD_MUTEX_UNLOCK -#define pthread_mutexattr_create PTHREAD_MUTEXATTR_CREATE -#define pthread_mutexattr_delete PTHREAD_MUTEXATTR_DELETE -#define pthread_mutexattr_destroy PTHREAD_MUTEXATTR_DESTROY -#define pthread_mutexattr_getkind_np PTHREAD_MUTEXATTR_GETKIND_NP -#define pthread_mutexattr_init PTHREAD_MUTEXATTR_INIT -#define pthread_mutexattr_setkind_np PTHREAD_MUTEXATTR_SETKIND_NP -#define pthread_mutexattr_settype_np PTHREAD_MUTEXATTR_SETTYPE_NP -#define pthread_once PTHREAD_ONCE -#define pthread_resume_np PTHREAD_RESUME_NP -#define pthread_self PTHREAD_SELF -#define pthread_setasynccancel PTHREAD_SETASYNCCANCEL -#define pthread_setcancel PTHREAD_SETCANCEL -#define pthread_setcancelstate PTHREAD_SETCANCELSTATE -#define pthread_setcanceltype PTHREAD_SETCANCELTYPE -#define pthread_setprio PTHREAD_SETPRIO -#define pthread_setschedparam PTHREAD_SETSCHEDPARAM -#define pthread_setscheduler PTHREAD_SETSCHEDULER -#define pthread_setspecific PTHREAD_SETSPECIFIC -#define pthread_suspend_np PTHREAD_SUSPEND_NP -#define pthread_testcancel PTHREAD_TESTCANCEL -#define pthread_unlock_global_np PTHREAD_UNLOCK_GLOBAL_NP -#define pthread_yield PTHREAD_YIELD -#define pthread_yield_np PTHREAD_YIELD_NP -#define rectObjClass RECTOBJCLASS -#define rectObjClassRec RECTOBJCLASSREC -#define sessionShellWidgetClass SESSIONSHELLWIDGETCLASS -#define shellWidgetClass SHELLWIDGETCLASS -#define shmat SHMAT -#define shmctl SHMCTL -#define shmdt SHMDT -#define shmget SHMGET -#define smg$create_key_table SMG$CREATE_KEY_TABLE -#define smg$create_virtual_keyboard SMG$CREATE_VIRTUAL_KEYBOARD -#define smg$read_composed_line SMG$READ_COMPOSED_LINE -#define sys$add_ident SYS$ADD_IDENT -#define sys$asctoid SYS$ASCTOID -#define sys$assign SYS$ASSIGN -#define sys$bintim SYS$BINTIM -#define sys$cancel SYS$CANCEL -#define sys$cantim SYS$CANTIM -#define sys$check_access SYS$CHECK_ACCESS -#define sys$close SYS$CLOSE -#define sys$connect SYS$CONNECT -#define sys$create SYS$CREATE -#define sys$create_user_profile SYS$CREATE_USER_PROFILE -#define sys$crembx SYS$CREMBX -#define sys$creprc SYS$CREPRC -#define sys$crmpsc SYS$CRMPSC -#define sys$dassgn SYS$DASSGN -#define sys$dclast SYS$DCLAST -#define sys$dclexh SYS$DCLEXH -#define sys$delprc SYS$DELPRC -#define sys$deq SYS$DEQ -#define sys$dgblsc SYS$DGBLSC -#define sys$display SYS$DISPLAY -#define sys$enq SYS$ENQ -#define sys$enqw SYS$ENQW -#define sys$erase SYS$ERASE -#define sys$fao SYS$FAO -#define sys$faol SYS$FAOL -#define sys$find_held SYS$FIND_HELD -#define sys$finish_rdb SYS$FINISH_RDB -#define sys$flush SYS$FLUSH -#define sys$forcex SYS$FORCEX -#define sys$get SYS$GET -#define sys$get_security SYS$GET_SECURITY -#define sys$getdviw SYS$GETDVIW -#define sys$getjpi SYS$GETJPI -#define sys$getjpiw SYS$GETJPIW -#define sys$getlkiw SYS$GETLKIW -#define sys$getmsg SYS$GETMSG -#define sys$getsyi SYS$GETSYI -#define sys$getsyiw SYS$GETSYIW -#define sys$gettim SYS$GETTIM -#define sys$getuai SYS$GETUAI -#define sys$grantid SYS$GRANTID -#define sys$hash_password SYS$HASH_PASSWORD -#define sys$hiber SYS$HIBER -#define sys$mgblsc SYS$MGBLSC -#define sys$numtim SYS$NUMTIM -#define sys$open SYS$OPEN -#define sys$parse SYS$PARSE -#define sys$parse_acl SYS$PARSE_ACL -#define sys$parse_acl SYS$PARSE_ACL -#define sys$persona_assume SYS$PERSONA_ASSUME -#define sys$persona_create SYS$PERSONA_CREATE -#define sys$persona_delete SYS$PERSONA_DELETE -#define sys$process_scan SYS$PROCESS_SCAN -#define sys$put SYS$PUT -#define sys$qio SYS$QIO -#define sys$qiow SYS$QIOW -#define sys$read SYS$READ -#define sys$resched SYS$RESCHED -#define sys$rewind SYS$REWIND -#define sys$search SYS$SEARCH -#define sys$set_security SYS$SET_SECURITY -#define sys$setast SYS$SETAST -#define sys$setef SYS$SETEF -#define sys$setimr SYS$SETIMR -#define sys$setpri SYS$SETPRI -#define sys$setprn SYS$SETPRN -#define sys$setprv SYS$SETPRV -#define sys$setswm SYS$SETSWM -#define sys$setuai SYS$SETUAI -#define sys$sndopr SYS$SNDOPR -#define sys$synch SYS$SYNCH -#define sys$trnlnm SYS$TRNLNM -#define sys$update SYS$UPDATE -#define sys$wake SYS$WAKE -#define sys$write SYS$WRITE -#define topLevelShellClassRec TOPLEVELSHELLCLASSREC -#define topLevelShellWidgetClass TOPLEVELSHELLWIDGETCLASS -#define transientShellWidgetClass TRANSIENTSHELLWIDGETCLASS -#define vendorShellClassRec VENDORSHELLCLASSREC -#define vendorShellWidgetClass VENDORSHELLWIDGETCLASS -#define widgetClass WIDGETCLASS -#define widgetClassRec WIDGETCLASSREC -#define wmShellClassRec WMSHELLCLASSREC -#define wmShellWidgetClass WMSHELLWIDGETCLASS -#define x$soft_ast_lib_lock X$SOFT_AST_LIB_LOCK -#define x$soft_ast_lock_depth X$SOFT_AST_LOCK_DEPTH -#define x$soft_reenable_asts X$SOFT_REENABLE_ASTS -#define xmArrowButtonWidgetClass XMARROWBUTTONWIDGETCLASS -#define xmBulletinBoardWidgetClass XMBULLETINBOARDWIDGETCLASS -#define xmCascadeButtonClassRec XMCASCADEBUTTONCLASSREC -#define xmCascadeButtonGadgetClass XMCASCADEBUTTONGADGETCLASS -#define xmCascadeButtonWidgetClass XMCASCADEBUTTONWIDGETCLASS -#define xmCommandWidgetClass XMCOMMANDWIDGETCLASS -#define xmDialogShellWidgetClass XMDIALOGSHELLWIDGETCLASS -#define xmDrawingAreaWidgetClass XMDRAWINGAREAWIDGETCLASS -#define xmDrawnButtonWidgetClass XMDRAWNBUTTONWIDGETCLASS -#define xmFileSelectionBoxWidgetClass XMFILESELECTIONBOXWIDGETCLASS -#define xmFormWidgetClass XMFORMWIDGETCLASS -#define xmFrameWidgetClass XMFRAMEWIDGETCLASS -#define xmGadgetClass XMGADGETCLASS -#define xmLabelGadgetClass XMLABELGADGETCLASS -#define xmLabelWidgetClass XMLABELWIDGETCLASS -#define xmListWidgetClass XMLISTWIDGETCLASS -#define xmMainWindowWidgetClass XMMAINWINDOWWIDGETCLASS -#define xmManagerClassRec XMMANAGERCLASSREC -#define xmManagerWidgetClass XMMANAGERWIDGETCLASS -#define xmMenuShellWidgetClass XMMENUSHELLWIDGETCLASS -#define xmMessageBoxWidgetClass XMMESSAGEBOXWIDGETCLASS -#define xmPrimitiveClassRec XMPRIMITIVECLASSREC -#define xmPrimitiveWidgetClass XMPRIMITIVEWIDGETCLASS -#define xmPushButtonClassRec XMPUSHBUTTONCLASSREC -#define xmPushButtonGadgetClass XMPUSHBUTTONGADGETCLASS -#define xmPushButtonWidgetClass XMPUSHBUTTONWIDGETCLASS -#define xmRowColumnWidgetClass XMROWCOLUMNWIDGETCLASS -#define xmSashWidgetClass XMSASHWIDGETCLASS -#define xmScaleWidgetClass XMSCALEWIDGETCLASS -#define xmScrollBarWidgetClass XMSCROLLBARWIDGETCLASS -#define xmScrolledWindowClassRec XMSCROLLEDWINDOWCLASSREC -#define xmScrolledWindowWidgetClass XMSCROLLEDWINDOWWIDGETCLASS -#define xmSeparatorGadgetClass XMSEPARATORGADGETCLASS -#define xmSeparatorWidgetClass XMSEPARATORWIDGETCLASS -#define xmTextFieldWidgetClass XMTEXTFIELDWIDGETCLASS -#define xmTextWidgetClass XMTEXTWIDGETCLASS -#define xmToggleButtonGadgetClass XMTOGGLEBUTTONGADGETCLASS -#define xmToggleButtonWidgetClass XMTOGGLEBUTTONWIDGETCLASS - -#if (__VMS_VER < 80200000) -# define SetReqLen(req,n,badlen) \ - if ((req->length + n) > (unsigned)65535) { \ - n = badlen; \ - req->length += n; \ - } else \ - req->length += n -#endif - -#ifdef __cplusplus -extern "C" { -#endif -extern void XtFree(char*); -#ifdef __cplusplus -} -#endif - -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/volume.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/volume.h deleted file mode 100644 index fd6a8370..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/volume.h +++ /dev/null @@ -1,145 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/volume.h -// Purpose: wxFSVolume - encapsulates system volume information -// Author: George Policello -// Modified by: -// Created: 28 Jan 02 -// Copyright: (c) 2002 George Policello -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ---------------------------------------------------------------------------- -// wxFSVolume represents a volume/drive in a file system -// ---------------------------------------------------------------------------- - -#ifndef _WX_FSVOLUME_H_ -#define _WX_FSVOLUME_H_ - -#include "wx/defs.h" - -#if wxUSE_FSVOLUME - -#include "wx/arrstr.h" - -// the volume flags -enum wxFSVolumeFlags -{ - // is the volume mounted? - wxFS_VOL_MOUNTED = 0x0001, - - // is the volume removable (floppy, CD, ...)? - wxFS_VOL_REMOVABLE = 0x0002, - - // read only? (otherwise read write) - wxFS_VOL_READONLY = 0x0004, - - // network resources - wxFS_VOL_REMOTE = 0x0008 -}; - -// the volume types -enum wxFSVolumeKind -{ - wxFS_VOL_FLOPPY, - wxFS_VOL_DISK, - wxFS_VOL_CDROM, - wxFS_VOL_DVDROM, - wxFS_VOL_NETWORK, - wxFS_VOL_OTHER, - wxFS_VOL_MAX -}; - -class WXDLLIMPEXP_BASE wxFSVolumeBase -{ -public: - // return the array containing the names of the volumes - // - // only the volumes with the flags such that - // (flags & flagsSet) == flagsSet && !(flags & flagsUnset) - // are returned (by default, all mounted ones) - static wxArrayString GetVolumes(int flagsSet = wxFS_VOL_MOUNTED, - int flagsUnset = 0); - - // stop execution of GetVolumes() called previously (should be called from - // another thread, of course) - static void CancelSearch(); - - // create the volume object with this name (should be one of those returned - // by GetVolumes()). - wxFSVolumeBase(); - wxFSVolumeBase(const wxString& name); - bool Create(const wxString& name); - - // accessors - // --------- - - // is this a valid volume? - bool IsOk() const; - - // kind of this volume? - wxFSVolumeKind GetKind() const; - - // flags of this volume? - int GetFlags() const; - - // can we write to this volume? - bool IsWritable() const { return !(GetFlags() & wxFS_VOL_READONLY); } - - // get the name of the volume and the name which should be displayed to the - // user - wxString GetName() const { return m_volName; } - wxString GetDisplayName() const { return m_dispName; } - - // TODO: operatios (Mount(), Unmount(), Eject(), ...)? - -protected: - // the internal volume name - wxString m_volName; - - // the volume name as it is displayed to the user - wxString m_dispName; - - // have we been initialized correctly? - bool m_isOk; -}; - -#if wxUSE_GUI - -#include "wx/icon.h" -#include "wx/iconbndl.h" // only for wxIconArray - -enum wxFSIconType -{ - wxFS_VOL_ICO_SMALL = 0, - wxFS_VOL_ICO_LARGE, - wxFS_VOL_ICO_SEL_SMALL, - wxFS_VOL_ICO_SEL_LARGE, - wxFS_VOL_ICO_MAX -}; - -// wxFSVolume adds GetIcon() to wxFSVolumeBase -class WXDLLIMPEXP_CORE wxFSVolume : public wxFSVolumeBase -{ -public: - wxFSVolume() : wxFSVolumeBase() { InitIcons(); } - wxFSVolume(const wxString& name) : wxFSVolumeBase(name) { InitIcons(); } - - wxIcon GetIcon(wxFSIconType type) const; - -private: - void InitIcons(); - - // the different icons for this volume (created on demand) - wxIconArray m_icons; -}; - -#else // !wxUSE_GUI - -// wxFSVolume is the same thing as wxFSVolume in wxBase -typedef wxFSVolumeBase wxFSVolume; - -#endif // wxUSE_GUI/!wxUSE_GUI - -#endif // wxUSE_FSVOLUME - -#endif // _WX_FSVOLUME_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vscroll.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vscroll.h deleted file mode 100644 index 550d2cd4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/vscroll.h +++ /dev/null @@ -1,871 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/vscroll.h -// Purpose: Variable scrolled windows (wx[V/H/HV]ScrolledWindow) -// Author: Vadim Zeitlin -// Modified by: Brad Anderson, Bryan Petty -// Created: 30.05.03 -// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VSCROLL_H_ -#define _WX_VSCROLL_H_ - -#include "wx/panel.h" -#include "wx/position.h" -#include "wx/scrolwin.h" - -class WXDLLIMPEXP_FWD_CORE wxVarScrollHelperEvtHandler; - - -// Using the same techniques as the wxScrolledWindow class | -// hierarchy, the wx[V/H/HV]ScrolledWindow classes are slightly | -// more complex (compare with the diagram outlined in | -// scrolwin.h) for the purpose of reducing code duplication | -// through the use of mix-in classes. | -// | -// wxAnyScrollHelperBase | -// | | -// | | -// | | -// V | -// wxVarScrollHelperBase | -// / \ | -// / \ | -// V V | -// wxVarHScrollHelper wxVarVScrollHelper | -// | \ / | | -// | \ / | | -// | V V | | -// | wxVarHVScrollHelper | | -// | | | | -// | | V | -// | wxPanel | wxVarVScrollLegacyAdaptor | -// | / \ \ | | | -// | / \ `-----|----------. | | -// | / \ | \ | | -// | / \ | \ | | -// V V \ | V V | -// wxHScrolledWindow \ | wxVScrolledWindow | -// V V | -// wxHVScrolledWindow | -// | -// | -// Border added to suppress GCC multi-line comment warnings ->| - - -// =========================================================================== -// wxVarScrollHelperBase -// =========================================================================== - -// Provides all base common scroll calculations needed for either orientation, -// automatic scrollbar functionality, saved scroll positions, functionality -// for changing the target window to be scrolled, as well as defining all -// required virtual functions that need to be implemented for any orientation -// specific work. - -class WXDLLIMPEXP_CORE wxVarScrollHelperBase : public wxAnyScrollHelperBase -{ -public: - // constructors and such - // --------------------- - - wxVarScrollHelperBase(wxWindow *winToScroll); - virtual ~wxVarScrollHelperBase(); - - // operations - // ---------- - - // with physical scrolling on, the device origin is changed properly when - // a wxPaintDC is prepared, children are actually moved and laid out - // properly, and the contents of the window (pixels) are actually moved - void EnablePhysicalScrolling(bool scrolling = true) - { m_physicalScrolling = scrolling; } - - // wxNOT_FOUND if none, i.e. if it is below the last item - int VirtualHitTest(wxCoord coord) const; - - // recalculate all our parameters and redisplay all units - virtual void RefreshAll(); - - // accessors - // --------- - - // get the first currently visible unit - size_t GetVisibleBegin() const { return m_unitFirst; } - - // get the last currently visible unit - size_t GetVisibleEnd() const - { return m_unitFirst + m_nUnitsVisible; } - - // is this unit currently visible? - bool IsVisible(size_t unit) const - { return unit >= m_unitFirst && unit < GetVisibleEnd(); } - - // translate between scrolled and unscrolled coordinates - int CalcScrolledPosition(int coord) const - { return DoCalcScrolledPosition(coord); } - int CalcUnscrolledPosition(int coord) const - { return DoCalcUnscrolledPosition(coord); } - - virtual int DoCalcScrolledPosition(int coord) const; - virtual int DoCalcUnscrolledPosition(int coord) const; - - // update the thumb size shown by the scrollbar - virtual void UpdateScrollbar(); - void RemoveScrollbar(); - - // Normally the wxScrolledWindow will scroll itself, but in some rare - // occasions you might want it to scroll [part of] another window (e.g. a - // child of it in order to scroll only a portion the area between the - // scrollbars (spreadsheet: only cell area will move). - virtual void SetTargetWindow(wxWindow *target); - - // change the DC origin according to the scroll position. To properly - // forward calls to wxWindow::Layout use WX_FORWARD_TO_SCROLL_HELPER() - // derived class - virtual void DoPrepareDC(wxDC& dc) wxOVERRIDE; - - // the methods to be called from the window event handlers - void HandleOnScroll(wxScrollWinEvent& event); - void HandleOnSize(wxSizeEvent& event); -#if wxUSE_MOUSEWHEEL - void HandleOnMouseWheel(wxMouseEvent& event); -#endif // wxUSE_MOUSEWHEEL - - // these functions must be overidden in the derived class to return - // orientation specific data (e.g. the width for vertically scrolling - // derivatives in the case of GetOrientationTargetSize()) - virtual int GetOrientationTargetSize() const = 0; - virtual int GetNonOrientationTargetSize() const = 0; - virtual wxOrientation GetOrientation() const = 0; - -protected: - // all *Unit* functions are protected to be exposed by - // wxVarScrollHelperBase implementations (with appropriate names) - - // get the number of units this window contains (previously set by - // SetUnitCount()) - size_t GetUnitCount() const { return m_unitMax; } - - // set the number of units the helper contains: the derived class must - // provide the sizes for all units with indices up to the one given here - // in its OnGetUnitSize() - void SetUnitCount(size_t count); - - // redraw the specified unit - virtual void RefreshUnit(size_t unit); - - // redraw all units in the specified range (inclusive) - virtual void RefreshUnits(size_t from, size_t to); - - // scroll to the specified unit: it will become the first visible unit in - // the window - // - // return true if we scrolled the window, false if nothing was done - bool DoScrollToUnit(size_t unit); - - // scroll by the specified number of units/pages - virtual bool DoScrollUnits(int units); - virtual bool DoScrollPages(int pages); - - // this function must be overridden in the derived class and it should - // return the size of the given unit in pixels - virtual wxCoord OnGetUnitSize(size_t n) const = 0; - - // this function doesn't have to be overridden but it may be useful to do - // it if calculating the units' sizes is a relatively expensive operation - // as it gives the user code a possibility to calculate several of them at - // once - // - // OnGetUnitsSizeHint() is normally called just before OnGetUnitSize() but - // you shouldn't rely on the latter being called for all units in the - // interval specified here. It is also possible that OnGetUnitHeight() will - // be called for the units outside of this interval, so this is really just - // a hint, not a promise. - // - // finally note that unitMin is inclusive, while unitMax is exclusive, as - // usual - virtual void OnGetUnitsSizeHint(size_t WXUNUSED(unitMin), - size_t WXUNUSED(unitMax)) const - { } - - // when the number of units changes, we try to estimate the total size - // of all units which is a rather expensive operation in terms of unit - // access, so if the user code may estimate the average size - // better/faster than we do, it should override this function to implement - // its own logic - // - // this function should return the best guess for the total size it may - // make - virtual wxCoord EstimateTotalSize() const { return DoEstimateTotalSize(); } - - wxCoord DoEstimateTotalSize() const; - - // find the index of the unit we need to show to fit the specified unit on - // the opposite side either fully or partially (depending on fullyVisible) - size_t FindFirstVisibleFromLast(size_t last, - bool fullyVisible = false) const; - - // get the total size of the units between unitMin (inclusive) and - // unitMax (exclusive) - wxCoord GetUnitsSize(size_t unitMin, size_t unitMax) const; - - // get the offset of the first visible unit - wxCoord GetScrollOffset() const - { return GetUnitsSize(0, GetVisibleBegin()); } - - // get the size of the target window - wxSize GetTargetSize() const { return m_targetWindow->GetClientSize(); } - - void GetTargetSize(int *w, int *h) - { - wxSize size = GetTargetSize(); - if ( w ) - *w = size.x; - if ( h ) - *h = size.y; - } - - // calculate the new scroll position based on scroll event type - size_t GetNewScrollPosition(wxScrollWinEvent& event) const; - - // replacement implementation of wxWindow::Layout virtual method. To - // properly forward calls to wxWindow::Layout use - // WX_FORWARD_TO_SCROLL_HELPER() derived class - bool ScrollLayout(); - -#ifdef __WXMAC__ - // queue mac window update after handling scroll event - virtual void UpdateMacScrollWindow() { } -#endif // __WXMAC__ - - // change the target window - void DoSetTargetWindow(wxWindow *target); - - // delete the event handler we installed - void DeleteEvtHandler(); - - // helper function abstracting the orientation test: with vertical - // orientation, it assigns the first value to x and the second one to y, - // with horizontal orientation it reverses them, i.e. the first value is - // assigned to y and the second one to x - void AssignOrient(wxCoord& x, wxCoord& y, wxCoord first, wxCoord second); - - // similar to "oriented assignment" above but does "oriented increment": - // for vertical orientation, y is incremented by the given value and x if - // left unchanged, for horizontal orientation x is incremented - void IncOrient(wxCoord& x, wxCoord& y, wxCoord inc); - -private: - // the total number of (logical) units - size_t m_unitMax; - - // the total (estimated) size - wxCoord m_sizeTotal; - - // the first currently visible unit - size_t m_unitFirst; - - // the number of currently visible units (including the last, possibly only - // partly, visible one) - size_t m_nUnitsVisible; - - // accumulated mouse wheel rotation -#if wxUSE_MOUSEWHEEL - int m_sumWheelRotation; -#endif - - // do child scrolling (used in DoPrepareDC()) - bool m_physicalScrolling; - - // handler injected into target window to forward some useful events to us - wxVarScrollHelperEvtHandler *m_handler; -}; - - - -// =========================================================================== -// wxVarVScrollHelper -// =========================================================================== - -// Provides public API functions targeted for vertical-specific scrolling, -// wrapping the functionality of wxVarScrollHelperBase. - -class WXDLLIMPEXP_CORE wxVarVScrollHelper : public wxVarScrollHelperBase -{ -public: - // constructors and such - // --------------------- - - // ctor must be given the associated window - wxVarVScrollHelper(wxWindow *winToScroll) - : wxVarScrollHelperBase(winToScroll) - { - } - - // operators - - void SetRowCount(size_t rowCount) { SetUnitCount(rowCount); } - bool ScrollToRow(size_t row) { return DoScrollToUnit(row); } - - virtual bool ScrollRows(int rows) - { return DoScrollUnits(rows); } - virtual bool ScrollRowPages(int pages) - { return DoScrollPages(pages); } - - virtual void RefreshRow(size_t row) - { RefreshUnit(row); } - virtual void RefreshRows(size_t from, size_t to) - { RefreshUnits(from, to); } - - // accessors - - size_t GetRowCount() const { return GetUnitCount(); } - size_t GetVisibleRowsBegin() const { return GetVisibleBegin(); } - size_t GetVisibleRowsEnd() const { return GetVisibleEnd(); } - bool IsRowVisible(size_t row) const { return IsVisible(row); } - - virtual int GetOrientationTargetSize() const wxOVERRIDE - { return GetTargetWindow()->GetClientSize().y; } - virtual int GetNonOrientationTargetSize() const wxOVERRIDE - { return GetTargetWindow()->GetClientSize().x; } - virtual wxOrientation GetOrientation() const wxOVERRIDE { return wxVERTICAL; } - -protected: - // this function must be overridden in the derived class and it should - // return the size of the given row in pixels - virtual wxCoord OnGetRowHeight(size_t n) const = 0; - wxCoord OnGetUnitSize(size_t n) const wxOVERRIDE { return OnGetRowHeight(n); } - - virtual void OnGetRowsHeightHint(size_t WXUNUSED(rowMin), - size_t WXUNUSED(rowMax)) const { } - - // forward calls to OnGetRowsHeightHint() - virtual void OnGetUnitsSizeHint(size_t unitMin, size_t unitMax) const wxOVERRIDE - { OnGetRowsHeightHint(unitMin, unitMax); } - - // again, if not overridden, it will fall back on default method - virtual wxCoord EstimateTotalHeight() const - { return DoEstimateTotalSize(); } - - // forward calls to EstimateTotalHeight() - virtual wxCoord EstimateTotalSize() const wxOVERRIDE { return EstimateTotalHeight(); } - - wxCoord GetRowsHeight(size_t rowMin, size_t rowMax) const - { return GetUnitsSize(rowMin, rowMax); } -}; - - - -// =========================================================================== -// wxVarHScrollHelper -// =========================================================================== - -// Provides public API functions targeted for horizontal-specific scrolling, -// wrapping the functionality of wxVarScrollHelperBase. - -class WXDLLIMPEXP_CORE wxVarHScrollHelper : public wxVarScrollHelperBase -{ -public: - // constructors and such - // --------------------- - - // ctor must be given the associated window - wxVarHScrollHelper(wxWindow *winToScroll) - : wxVarScrollHelperBase(winToScroll) - { - } - - // operators - - void SetColumnCount(size_t columnCount) - { SetUnitCount(columnCount); } - - bool ScrollToColumn(size_t column) - { return DoScrollToUnit(column); } - virtual bool ScrollColumns(int columns) - { return DoScrollUnits(columns); } - virtual bool ScrollColumnPages(int pages) - { return DoScrollPages(pages); } - - virtual void RefreshColumn(size_t column) - { RefreshUnit(column); } - virtual void RefreshColumns(size_t from, size_t to) - { RefreshUnits(from, to); } - - // accessors - - size_t GetColumnCount() const - { return GetUnitCount(); } - size_t GetVisibleColumnsBegin() const - { return GetVisibleBegin(); } - size_t GetVisibleColumnsEnd() const - { return GetVisibleEnd(); } - bool IsColumnVisible(size_t column) const - { return IsVisible(column); } - - - virtual int GetOrientationTargetSize() const wxOVERRIDE - { return GetTargetWindow()->GetClientSize().x; } - virtual int GetNonOrientationTargetSize() const wxOVERRIDE - { return GetTargetWindow()->GetClientSize().y; } - virtual wxOrientation GetOrientation() const wxOVERRIDE { return wxHORIZONTAL; } - -protected: - // this function must be overridden in the derived class and it should - // return the size of the given column in pixels - virtual wxCoord OnGetColumnWidth(size_t n) const = 0; - wxCoord OnGetUnitSize(size_t n) const wxOVERRIDE { return OnGetColumnWidth(n); } - - virtual void OnGetColumnsWidthHint(size_t WXUNUSED(columnMin), - size_t WXUNUSED(columnMax)) const - { } - - // forward calls to OnGetColumnsWidthHint() - virtual void OnGetUnitsSizeHint(size_t unitMin, size_t unitMax) const wxOVERRIDE - { OnGetColumnsWidthHint(unitMin, unitMax); } - - // again, if not overridden, it will fall back on default method - virtual wxCoord EstimateTotalWidth() const { return DoEstimateTotalSize(); } - - // forward calls to EstimateTotalWidth() - virtual wxCoord EstimateTotalSize() const wxOVERRIDE { return EstimateTotalWidth(); } - - wxCoord GetColumnsWidth(size_t columnMin, size_t columnMax) const - { return GetUnitsSize(columnMin, columnMax); } -}; - - - -// =========================================================================== -// wxVarHVScrollHelper -// =========================================================================== - -// Provides public API functions targeted at functions with similar names in -// both wxVScrollHelper and wxHScrollHelper so class scope doesn't need to be -// specified (since we are using multiple inheritance). It also provides -// functions to make changing values for both orientations at the same time -// easier. - -class WXDLLIMPEXP_CORE wxVarHVScrollHelper : public wxVarVScrollHelper, - public wxVarHScrollHelper -{ -public: - // constructors and such - // --------------------- - - // ctor must be given the associated window - wxVarHVScrollHelper(wxWindow *winToScroll) - : wxVarVScrollHelper(winToScroll), wxVarHScrollHelper(winToScroll) { } - - // operators - // --------- - - // set the number of units the window contains for each axis: the derived - // class must provide the widths and heights for all units with indices up - // to each of the one given here in its OnGetColumnWidth() and - // OnGetRowHeight() - void SetRowColumnCount(size_t rowCount, size_t columnCount); - - - // with physical scrolling on, the device origin is changed properly when - // a wxPaintDC is prepared, children are actually moved and laid out - // properly, and the contents of the window (pixels) are actually moved - void EnablePhysicalScrolling(bool vscrolling = true, bool hscrolling = true) - { - wxVarVScrollHelper::EnablePhysicalScrolling(vscrolling); - wxVarHScrollHelper::EnablePhysicalScrolling(hscrolling); - } - - // scroll to the specified row/column: it will become the first visible - // cell in the window - // - // return true if we scrolled the window, false if nothing was done - bool ScrollToRowColumn(size_t row, size_t column); - bool ScrollToRowColumn(const wxPosition &pos) - { return ScrollToRowColumn(pos.GetRow(), pos.GetColumn()); } - - // redraw the specified cell - virtual void RefreshRowColumn(size_t row, size_t column); - virtual void RefreshRowColumn(const wxPosition &pos) - { RefreshRowColumn(pos.GetRow(), pos.GetColumn()); } - - // redraw the specified regions (inclusive). If the target window for - // both orientations is the same the rectangle of cells is refreshed; if - // the target windows differ the entire client size opposite the - // orientation direction is refreshed between the specified limits - virtual void RefreshRowsColumns(size_t fromRow, size_t toRow, - size_t fromColumn, size_t toColumn); - virtual void RefreshRowsColumns(const wxPosition& from, - const wxPosition& to) - { - RefreshRowsColumns(from.GetRow(), to.GetRow(), - from.GetColumn(), to.GetColumn()); - } - - // locate the virtual position from the given device coordinates - wxPosition VirtualHitTest(wxCoord x, wxCoord y) const; - wxPosition VirtualHitTest(const wxPoint &pos) const - { return VirtualHitTest(pos.x, pos.y); } - - // change the DC origin according to the scroll position. To properly - // forward calls to wxWindow::Layout use WX_FORWARD_TO_SCROLL_HELPER() - // derived class. We use this version to call both base classes' - // DoPrepareDC() - virtual void DoPrepareDC(wxDC& dc) wxOVERRIDE; - - // replacement implementation of wxWindow::Layout virtual method. To - // properly forward calls to wxWindow::Layout use - // WX_FORWARD_TO_SCROLL_HELPER() derived class. We use this version to - // call both base classes' ScrollLayout() - bool ScrollLayout(); - - // accessors - // --------- - - // get the number of units this window contains (previously set by - // Set[Column/Row/RowColumn/Unit]Count()) - wxSize GetRowColumnCount() const; - - // get the first currently visible units - wxPosition GetVisibleBegin() const; - wxPosition GetVisibleEnd() const; - - // is this cell currently visible? - bool IsVisible(size_t row, size_t column) const; - bool IsVisible(const wxPosition &pos) const - { return IsVisible(pos.GetRow(), pos.GetColumn()); } -}; - - - -#if WXWIN_COMPATIBILITY_2_8 - -// =========================================================================== -// wxVarVScrollLegacyAdaptor -// =========================================================================== - -// Provides backwards compatible API for applications originally built using -// wxVScrolledWindow in 2.6 or 2.8. Originally, wxVScrolledWindow referred -// to scrolling "lines". We use "units" in wxVarScrollHelperBase to avoid -// implying any orientation (since the functions are used for both horizontal -// and vertical scrolling in derived classes). And in the new -// wxVScrolledWindow and wxHScrolledWindow classes, we refer to them as -// "rows" and "columns", respectively. This is to help clear some confusion -// in not only those classes, but also in wxHVScrolledWindow where functions -// are inherited from both. - -class WXDLLIMPEXP_CORE wxVarVScrollLegacyAdaptor : public wxVarVScrollHelper -{ -public: - // constructors and such - // --------------------- - wxVarVScrollLegacyAdaptor(wxWindow *winToScroll) - : wxVarVScrollHelper(winToScroll) - { - } - - // accessors - // --------- - - // this is the same as GetVisibleRowsBegin(), exists to match - // GetLastVisibleLine() and for backwards compatibility only - wxDEPRECATED( size_t GetFirstVisibleLine() const ); - - // get the last currently visible line - // - // this function is unsafe as it returns (size_t)-1 (i.e. a huge positive - // number) if the control is empty, use GetVisibleRowsEnd() instead, this - // one is kept for backwards compatibility - wxDEPRECATED( size_t GetLastVisibleLine() const ); - - // "line" to "unit" compatibility functions - // ---------------------------------------- - - // get the number of lines this window contains (set by SetLineCount()) - wxDEPRECATED( size_t GetLineCount() const ); - - // set the number of lines the helper contains: the derived class must - // provide the sizes for all lines with indices up to the one given here - // in its OnGetLineHeight() - wxDEPRECATED( void SetLineCount(size_t count) ); - - // redraw the specified line - wxDEPRECATED( virtual void RefreshLine(size_t line) ); - - // redraw all lines in the specified range (inclusive) - wxDEPRECATED( virtual void RefreshLines(size_t from, size_t to) ); - - // scroll to the specified line: it will become the first visible line in - // the window - // - // return true if we scrolled the window, false if nothing was done - wxDEPRECATED( bool ScrollToLine(size_t line) ); - - // scroll by the specified number of lines/pages - wxDEPRECATED( virtual bool ScrollLines(int lines) ); - wxDEPRECATED( virtual bool ScrollPages(int pages) ); - -protected: - // unless the code has been updated to override OnGetRowHeight() instead, - // this function must be overridden in the derived class and it should - // return the height of the given row in pixels - wxDEPRECATED_BUT_USED_INTERNALLY( - virtual wxCoord OnGetLineHeight(size_t n) const ); - - // forwards the calls from base class pure virtual function to pure virtual - // OnGetLineHeight instead (backwards compatible name) - // note that we don't need to forward OnGetUnitSize() as it is already - // forwarded to OnGetRowHeight() in wxVarVScrollHelper - virtual wxCoord OnGetRowHeight(size_t n) const; - - // this function doesn't have to be overridden but it may be useful to do - // it if calculating the lines heights is a relatively expensive operation - // as it gives the user code a possibility to calculate several of them at - // once - // - // OnGetLinesHint() is normally called just before OnGetLineHeight() but you - // shouldn't rely on the latter being called for all lines in the interval - // specified here. It is also possible that OnGetLineHeight() will be - // called for the lines outside of this interval, so this is really just a - // hint, not a promise. - // - // finally note that lineMin is inclusive, while lineMax is exclusive, as - // usual - wxDEPRECATED_BUT_USED_INTERNALLY( virtual void OnGetLinesHint( - size_t lineMin, size_t lineMax) const ); - - // forwards the calls from base class pure virtual function to pure virtual - // OnGetLinesHint instead (backwards compatible name) - void OnGetRowsHeightHint(size_t rowMin, size_t rowMax) const; -}; - -#else // !WXWIN_COMPATIBILITY_2_8 - -// shortcut to avoid checking compatibility modes later -// remove this and all references to wxVarVScrollLegacyAdaptor once -// wxWidgets 2.6 and 2.8 compatibility is removed -typedef wxVarVScrollHelper wxVarVScrollLegacyAdaptor; - -#endif // WXWIN_COMPATIBILITY_2_8/!WXWIN_COMPATIBILITY_2_8 - - -// this macro must be used in declaration of wxVarScrollHelperBase-derived -// classes -#define WX_FORWARD_TO_VAR_SCROLL_HELPER() \ -public: \ - virtual void PrepareDC(wxDC& dc) wxOVERRIDE { DoPrepareDC(dc); } \ - virtual bool Layout() wxOVERRIDE { return ScrollLayout(); } - - - -// =========================================================================== -// wxVScrolledWindow -// =========================================================================== - -// In the name of this class, "V" may stand for "variable" because it can be -// used for scrolling rows of variable heights; "virtual", because it is not -// necessary to know the heights of all rows in advance -- only those which -// are shown on the screen need to be measured; or even "vertical", because -// this class only supports scrolling vertically. - -// In any case, this is a generalization of the wxScrolledWindow class which -// can be only used when all rows have the same heights. It lacks some other -// wxScrolledWindow features however, notably it can't scroll only a rectangle -// of the window and not its entire client area. - -class WXDLLIMPEXP_CORE wxVScrolledWindow : public wxPanel, - public wxVarVScrollLegacyAdaptor -{ -public: - // constructors and such - // --------------------- - - // default ctor, you must call Create() later - wxVScrolledWindow() : wxVarVScrollLegacyAdaptor(this) { } - - // normal ctor, no need to call Create() after this one - // - // note that wxVSCROLL is always automatically added to our style, there is - // no need to specify it explicitly - wxVScrolledWindow(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - : wxVarVScrollLegacyAdaptor(this) - { - (void)Create(parent, id, pos, size, style, name); - } - - // same as the previous ctor but returns status code: true if ok - // - // just as with the ctor above, wxVSCROLL style is always used, there is no - // need to specify it - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - { - return wxPanel::Create(parent, id, pos, size, style | wxVSCROLL, name); - } - -#if WXWIN_COMPATIBILITY_2_8 - // Make sure we prefer our version of HitTest rather than wxWindow's - // These functions should no longer be masked in favor of VirtualHitTest() - int HitTest(wxCoord WXUNUSED(x), wxCoord y) const - { return wxVarVScrollHelper::VirtualHitTest(y); } - int HitTest(const wxPoint& pt) const - { return HitTest(pt.x, pt.y); } -#endif // WXWIN_COMPATIBILITY_2_8 - - WX_FORWARD_TO_VAR_SCROLL_HELPER() - -#ifdef __WXMAC__ -protected: - virtual void UpdateMacScrollWindow() wxOVERRIDE { Update(); } -#endif // __WXMAC__ - -private: - wxDECLARE_NO_COPY_CLASS(wxVScrolledWindow); - wxDECLARE_ABSTRACT_CLASS(wxVScrolledWindow); -}; - - - -// =========================================================================== -// wxHScrolledWindow -// =========================================================================== - -// In the name of this class, "H" stands for "horizontal" because it can be -// used for scrolling columns of variable widths. It is not necessary to know -// the widths of all columns in advance -- only those which are shown on the -// screen need to be measured. - -// This is a generalization of the wxScrolledWindow class which can be only -// used when all columns have the same width. It lacks some other -// wxScrolledWindow features however, notably it can't scroll only a rectangle -// of the window and not its entire client area. - -class WXDLLIMPEXP_CORE wxHScrolledWindow : public wxPanel, - public wxVarHScrollHelper -{ -public: - // constructors and such - // --------------------- - - // default ctor, you must call Create() later - wxHScrolledWindow() : wxVarHScrollHelper(this) { } - - // normal ctor, no need to call Create() after this one - // - // note that wxHSCROLL is always automatically added to our style, there is - // no need to specify it explicitly - wxHScrolledWindow(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - : wxVarHScrollHelper(this) - { - (void)Create(parent, id, pos, size, style, name); - } - - // same as the previous ctor but returns status code: true if ok - // - // just as with the ctor above, wxHSCROLL style is always used, there is no - // need to specify it - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - { - return wxPanel::Create(parent, id, pos, size, style | wxHSCROLL, name); - } - - WX_FORWARD_TO_VAR_SCROLL_HELPER() - -#ifdef __WXMAC__ -protected: - virtual void UpdateMacScrollWindow() wxOVERRIDE { Update(); } -#endif // __WXMAC__ - -private: - wxDECLARE_NO_COPY_CLASS(wxHScrolledWindow); - wxDECLARE_ABSTRACT_CLASS(wxHScrolledWindow); -}; - - - -// =========================================================================== -// wxHVScrolledWindow -// =========================================================================== - -// This window inherits all functionality of both vertical and horizontal -// scrolled windows automatically handling everything needed to scroll both -// axis simultaneously. - -class WXDLLIMPEXP_CORE wxHVScrolledWindow : public wxPanel, - public wxVarHVScrollHelper -{ -public: - // constructors and such - // --------------------- - - // default ctor, you must call Create() later - wxHVScrolledWindow() - : wxPanel(), - wxVarHVScrollHelper(this) { } - - // normal ctor, no need to call Create() after this one - // - // note that wxVSCROLL and wxHSCROLL are always automatically added to our - // style, there is no need to specify them explicitly - wxHVScrolledWindow(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - : wxPanel(), - wxVarHVScrollHelper(this) - { - (void)Create(parent, id, pos, size, style, name); - } - - // same as the previous ctor but returns status code: true if ok - // - // just as with the ctor above, wxVSCROLL and wxHSCROLL styles are always - // used, there is no need to specify them - bool Create(wxWindow *parent, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - { - return wxPanel::Create(parent, id, pos, size, - style | wxVSCROLL | wxHSCROLL, name); - } - - WX_FORWARD_TO_VAR_SCROLL_HELPER() - -#ifdef __WXMAC__ -protected: - virtual void UpdateMacScrollWindow() wxOVERRIDE { Update(); } -#endif // __WXMAC__ - -private: - wxDECLARE_NO_COPY_CLASS(wxHVScrolledWindow); - wxDECLARE_ABSTRACT_CLASS(wxHVScrolledWindow); -}; - -#endif // _WX_VSCROLL_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/weakref.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/weakref.h deleted file mode 100644 index 4794c85e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/weakref.h +++ /dev/null @@ -1,229 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/weakref.h -// Purpose: wxWeakRef - Generic weak references for wxWidgets -// Author: Arne Steinarson -// Created: 27 Dec 07 -// Copyright: (c) 2007 Arne Steinarson -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WEAKREF_H_ -#define _WX_WEAKREF_H_ - -#include "wx/tracker.h" - - -#include "wx/meta/convertible.h" -#include "wx/meta/int2type.h" - -template <class T> -struct wxIsStaticTrackable -{ - enum { value = wxConvertibleTo<T, wxTrackable>::value }; -}; - - -// A weak reference to an object of type T (which must inherit from wxTrackable) -template <class T> -class wxWeakRef : public wxTrackerNode -{ -public: - typedef T element_type; - - // Default ctor - wxWeakRef() : m_pobj(NULL), m_ptbase(NULL) { } - - // Ctor from the object of this type: this is needed as the template ctor - // below is not used by at least g++4 when a literal NULL is used - wxWeakRef(T *pobj) : m_pobj(NULL), m_ptbase(NULL) - { - this->Assign(pobj); - } - - // When we have the full type here, static_cast<> will always work - // (or give a straight compiler error). - template <class TDerived> - wxWeakRef(TDerived* pobj) : m_pobj(NULL), m_ptbase(NULL) - { - this->Assign(pobj); - } - - // We need this copy ctor, since otherwise a default compiler (binary) copy - // happens (if embedded as an object member). - wxWeakRef(const wxWeakRef<T>& wr) : m_pobj(NULL), m_ptbase(NULL) - { - this->Assign(wr.get()); - } - - wxWeakRef<T>& operator=(const wxWeakRef<T>& wr) - { - this->AssignCopy(wr); - return *this; - } - - virtual ~wxWeakRef() { this->Release(); } - - // Smart pointer functions - T& operator*() const { return *this->m_pobj; } - T* operator->() const { return this->m_pobj; } - - T* get() const { return this->m_pobj; } - operator T*() const { return this->m_pobj; } - -public: - void Release() - { - // Release old object if any - if ( m_pobj ) - { - // Remove ourselves from object tracker list - m_ptbase->RemoveNode(this); - m_pobj = NULL; - m_ptbase = NULL; - } - } - - virtual void OnObjectDestroy() wxOVERRIDE - { - // Tracked object itself removes us from list of trackers - wxASSERT(m_pobj != NULL); - m_pobj = NULL; - m_ptbase = NULL; - } - -protected: - // Assign receives most derived class here and can use that - template <class TDerived> - void Assign( TDerived* pobj ) - { - wxCOMPILE_TIME_ASSERT( wxIsStaticTrackable<TDerived>::value, - Tracked_class_should_inherit_from_wxTrackable ); - wxTrackable *ptbase = static_cast<wxTrackable*>(pobj); - DoAssign(pobj, ptbase); - } - - void AssignCopy(const wxWeakRef& wr) - { - DoAssign(wr.m_pobj, wr.m_ptbase); - } - - void DoAssign(T* pobj, wxTrackable *ptbase) - { - if ( m_pobj == pobj ) - return; - - Release(); - - // Now set new trackable object - if ( pobj ) - { - // Add ourselves to object tracker list - wxASSERT( ptbase ); - ptbase->AddNode( this ); - m_pobj = pobj; - m_ptbase = ptbase; - } - } - - T *m_pobj; - wxTrackable *m_ptbase; -}; - - -#ifndef wxNO_RTTI - -// Weak ref implementation assign objects are queried for wxTrackable -// using dynamic_cast<> -template <class T> -class wxWeakRefDynamic : public wxTrackerNode -{ -public: - wxWeakRefDynamic() : m_pobj(NULL) { } - - wxWeakRefDynamic(T* pobj) : m_pobj(pobj) - { - Assign(pobj); - } - - wxWeakRefDynamic(const wxWeakRef<T>& wr) - { - Assign(wr.get()); - } - - virtual ~wxWeakRefDynamic() { Release(); } - - // Smart pointer functions - T& operator*() const { wxASSERT(m_pobj); return *m_pobj; } - T* operator->() const { wxASSERT(m_pobj); return m_pobj; } - - T* get() const { return m_pobj; } - operator T* () const { return m_pobj; } - - T* operator = (T* pobj) { Assign(pobj); return m_pobj; } - - // Assign from another weak ref, point to same object - T* operator = (const wxWeakRef<T> &wr) { Assign( wr.get() ); return m_pobj; } - - void Release() - { - // Release old object if any - if( m_pobj ) - { - // Remove ourselves from object tracker list - wxTrackable *pt = dynamic_cast<wxTrackable*>(m_pobj); - wxASSERT(pt); - pt->RemoveNode(this); - m_pobj = NULL; - } - } - - virtual void OnObjectDestroy() wxOVERRIDE - { - wxASSERT_MSG(m_pobj, "tracked object should have removed us itself"); - - m_pobj = NULL; - } - -protected: - void Assign(T *pobj) - { - if ( m_pobj == pobj ) - return; - - Release(); - - // Now set new trackable object - if ( pobj ) - { - // Add ourselves to object tracker list - wxTrackable *pt = dynamic_cast<wxTrackable*>(pobj); - if ( pt ) - { - pt->AddNode(this); - m_pobj = pobj; - } - else - { - // If the object we want to track does not support wxTackable, then - // log a message and keep the NULL object pointer. - wxFAIL_MSG( "Tracked class should inherit from wxTrackable" ); - } - } - } - - T *m_pobj; -}; - -#endif // RTTI enabled - - -// Provide some basic types of weak references -class WXDLLIMPEXP_FWD_BASE wxEvtHandler; -class WXDLLIMPEXP_FWD_CORE wxWindow; - - -typedef wxWeakRef<wxEvtHandler> wxEvtHandlerRef; -typedef wxWeakRef<wxWindow> wxWindowRef; - -#endif // _WX_WEAKREF_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/webview.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/webview.h deleted file mode 100644 index 4f18bada..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/webview.h +++ /dev/null @@ -1,304 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: webview.h -// Purpose: Common interface and events for web view component -// Author: Marianne Gagnon -// Copyright: (c) 2010 Marianne Gagnon, 2011 Steven Lamerton -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WEBVIEW_H_ -#define _WX_WEBVIEW_H_ - -#include "wx/defs.h" - -#if wxUSE_WEBVIEW - -#include "wx/control.h" -#include "wx/event.h" -#include "wx/sstream.h" -#include "wx/sharedptr.h" -#include "wx/vector.h" - -#if defined(__WXOSX__) - #include "wx/osx/webviewhistoryitem_webkit.h" -#elif defined(__WXGTK__) - #include "wx/gtk/webviewhistoryitem_webkit.h" -#elif defined(__WXMSW__) - #include "wx/msw/webviewhistoryitem_ie.h" -#else - #error "wxWebView not implemented on this platform." -#endif - -class wxFSFile; -class wxFileSystem; -class wxWebView; - -enum wxWebViewZoom -{ - wxWEBVIEW_ZOOM_TINY, - wxWEBVIEW_ZOOM_SMALL, - wxWEBVIEW_ZOOM_MEDIUM, - wxWEBVIEW_ZOOM_LARGE, - wxWEBVIEW_ZOOM_LARGEST -}; - -enum wxWebViewZoomType -{ - //Scales entire page, including images - wxWEBVIEW_ZOOM_TYPE_LAYOUT, - wxWEBVIEW_ZOOM_TYPE_TEXT -}; - -enum wxWebViewNavigationError -{ - wxWEBVIEW_NAV_ERR_CONNECTION, - wxWEBVIEW_NAV_ERR_CERTIFICATE, - wxWEBVIEW_NAV_ERR_AUTH, - wxWEBVIEW_NAV_ERR_SECURITY, - wxWEBVIEW_NAV_ERR_NOT_FOUND, - wxWEBVIEW_NAV_ERR_REQUEST, - wxWEBVIEW_NAV_ERR_USER_CANCELLED, - wxWEBVIEW_NAV_ERR_OTHER -}; - -enum wxWebViewReloadFlags -{ - //Default, may access cache - wxWEBVIEW_RELOAD_DEFAULT, - wxWEBVIEW_RELOAD_NO_CACHE -}; - -enum wxWebViewFindFlags -{ - wxWEBVIEW_FIND_WRAP = 0x0001, - wxWEBVIEW_FIND_ENTIRE_WORD = 0x0002, - wxWEBVIEW_FIND_MATCH_CASE = 0x0004, - wxWEBVIEW_FIND_HIGHLIGHT_RESULT = 0x0008, - wxWEBVIEW_FIND_BACKWARDS = 0x0010, - wxWEBVIEW_FIND_DEFAULT = 0 -}; - -//Base class for custom scheme handlers -class WXDLLIMPEXP_WEBVIEW wxWebViewHandler -{ -public: - wxWebViewHandler(const wxString& scheme) : m_scheme(scheme) {} - virtual ~wxWebViewHandler() {} - virtual wxString GetName() const { return m_scheme; } - virtual wxFSFile* GetFile(const wxString &uri) = 0; -private: - wxString m_scheme; -}; - -extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewNameStr[]; -extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewDefaultURLStr[]; -extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewBackendDefault[]; -extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewBackendIE[]; -extern WXDLLIMPEXP_DATA_WEBVIEW(const char) wxWebViewBackendWebKit[]; - -class WXDLLIMPEXP_WEBVIEW wxWebViewFactory : public wxObject -{ -public: - virtual wxWebView* Create() = 0; - virtual wxWebView* Create(wxWindow* parent, - wxWindowID id, - const wxString& url = wxWebViewDefaultURLStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxWebViewNameStr) = 0; -}; - -WX_DECLARE_STRING_HASH_MAP(wxSharedPtr<wxWebViewFactory>, wxStringWebViewFactoryMap); - -class WXDLLIMPEXP_WEBVIEW wxWebView : public wxControl -{ -public: - wxWebView() - { - m_showMenu = true; - } - - virtual ~wxWebView() {} - - virtual bool Create(wxWindow* parent, - wxWindowID id, - const wxString& url = wxWebViewDefaultURLStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxWebViewNameStr) = 0; - - // Factory methods allowing the use of custom factories registered with - // RegisterFactory - static wxWebView* New(const wxString& backend = wxWebViewBackendDefault); - static wxWebView* New(wxWindow* parent, - wxWindowID id, - const wxString& url = wxWebViewDefaultURLStr, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - const wxString& backend = wxWebViewBackendDefault, - long style = 0, - const wxString& name = wxWebViewNameStr); - - static void RegisterFactory(const wxString& backend, - wxSharedPtr<wxWebViewFactory> factory); - - // General methods - virtual void EnableContextMenu(bool enable = true) - { - m_showMenu = enable; - } - virtual wxString GetCurrentTitle() const = 0; - virtual wxString GetCurrentURL() const = 0; - // TODO: handle choosing a frame when calling GetPageSource()? - virtual wxString GetPageSource() const = 0; - virtual wxString GetPageText() const = 0; - virtual bool IsBusy() const = 0; - virtual bool IsContextMenuEnabled() const { return m_showMenu; } - virtual bool IsEditable() const = 0; - virtual void LoadURL(const wxString& url) = 0; - virtual void Print() = 0; - virtual void RegisterHandler(wxSharedPtr<wxWebViewHandler> handler) = 0; - virtual void Reload(wxWebViewReloadFlags flags = wxWEBVIEW_RELOAD_DEFAULT) = 0; - virtual void RunScript(const wxString& javascript) = 0; - virtual void SetEditable(bool enable = true) = 0; - void SetPage(const wxString& html, const wxString& baseUrl) - { - DoSetPage(html, baseUrl); - } - void SetPage(wxInputStream& html, wxString baseUrl) - { - wxStringOutputStream stream; - stream.Write(html); - DoSetPage(stream.GetString(), baseUrl); - } - virtual void Stop() = 0; - - //History - virtual bool CanGoBack() const = 0; - virtual bool CanGoForward() const = 0; - virtual void GoBack() = 0; - virtual void GoForward() = 0; - virtual void ClearHistory() = 0; - virtual void EnableHistory(bool enable = true) = 0; - virtual wxVector<wxSharedPtr<wxWebViewHistoryItem> > GetBackwardHistory() = 0; - virtual wxVector<wxSharedPtr<wxWebViewHistoryItem> > GetForwardHistory() = 0; - virtual void LoadHistoryItem(wxSharedPtr<wxWebViewHistoryItem> item) = 0; - - //Zoom - virtual bool CanSetZoomType(wxWebViewZoomType type) const = 0; - virtual wxWebViewZoom GetZoom() const = 0; - virtual wxWebViewZoomType GetZoomType() const = 0; - virtual void SetZoom(wxWebViewZoom zoom) = 0; - virtual void SetZoomType(wxWebViewZoomType zoomType) = 0; - - //Selection - virtual void SelectAll() = 0; - virtual bool HasSelection() const = 0; - virtual void DeleteSelection() = 0; - virtual wxString GetSelectedText() const = 0; - virtual wxString GetSelectedSource() const = 0; - virtual void ClearSelection() = 0; - - //Clipboard functions - virtual bool CanCut() const = 0; - virtual bool CanCopy() const = 0; - virtual bool CanPaste() const = 0; - virtual void Cut() = 0; - virtual void Copy() = 0; - virtual void Paste() = 0; - - //Undo / redo functionality - virtual bool CanUndo() const = 0; - virtual bool CanRedo() const = 0; - virtual void Undo() = 0; - virtual void Redo() = 0; - - //Get the pointer to the underlying native engine. - virtual void* GetNativeBackend() const = 0; - //Find function - virtual long Find(const wxString& text, int flags = wxWEBVIEW_FIND_DEFAULT) = 0; - -protected: - virtual void DoSetPage(const wxString& html, const wxString& baseUrl) = 0; - -private: - static void InitFactoryMap(); - static wxStringWebViewFactoryMap::iterator FindFactory(const wxString &backend); - - bool m_showMenu; - static wxStringWebViewFactoryMap m_factoryMap; - - wxDECLARE_ABSTRACT_CLASS(wxWebView); -}; - -class WXDLLIMPEXP_WEBVIEW wxWebViewEvent : public wxNotifyEvent -{ -public: - wxWebViewEvent() {} - wxWebViewEvent(wxEventType type, int id, const wxString& url, - const wxString& target) - : wxNotifyEvent(type, id), m_url(url), m_target(target) - {} - - - const wxString& GetURL() const { return m_url; } - const wxString& GetTarget() const { return m_target; } - - virtual wxEvent* Clone() const wxOVERRIDE { return new wxWebViewEvent(*this); } -private: - wxString m_url; - wxString m_target; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxWebViewEvent); -}; - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_WEBVIEW, wxEVT_WEBVIEW_NAVIGATING, wxWebViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_WEBVIEW, wxEVT_WEBVIEW_NAVIGATED, wxWebViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_WEBVIEW, wxEVT_WEBVIEW_LOADED, wxWebViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_WEBVIEW, wxEVT_WEBVIEW_ERROR, wxWebViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_WEBVIEW, wxEVT_WEBVIEW_NEWWINDOW, wxWebViewEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_WEBVIEW, wxEVT_WEBVIEW_TITLE_CHANGED, wxWebViewEvent ); - -typedef void (wxEvtHandler::*wxWebViewEventFunction) - (wxWebViewEvent&); - -#define wxWebViewEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxWebViewEventFunction, func) - -#define EVT_WEBVIEW_NAVIGATING(id, fn) \ - wx__DECLARE_EVT1(wxEVT_WEBVIEW_NAVIGATING, id, \ - wxWebViewEventHandler(fn)) - -#define EVT_WEBVIEW_NAVIGATED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_WEBVIEW_NAVIGATED, id, \ - wxWebViewEventHandler(fn)) - -#define EVT_WEBVIEW_LOADED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_WEBVIEW_LOADED, id, \ - wxWebViewEventHandler(fn)) - -#define EVT_WEBVIEW_ERROR(id, fn) \ - wx__DECLARE_EVT1(wxEVT_WEBVIEW_ERROR, id, \ - wxWebViewEventHandler(fn)) - -#define EVT_WEBVIEW_NEWWINDOW(id, fn) \ - wx__DECLARE_EVT1(wxEVT_WEBVIEW_NEWWINDOW, id, \ - wxWebViewEventHandler(fn)) - -#define EVT_WEBVIEW_TITLE_CHANGED(id, fn) \ - wx__DECLARE_EVT1(wxEVT_WEBVIEW_TITLE_CHANGED, id, \ - wxWebViewEventHandler(fn)) - -// old wxEVT_COMMAND_* constants -#define wxEVT_COMMAND_WEBVIEW_NAVIGATING wxEVT_WEBVIEW_NAVIGATING -#define wxEVT_COMMAND_WEBVIEW_NAVIGATED wxEVT_WEBVIEW_NAVIGATED -#define wxEVT_COMMAND_WEBVIEW_LOADED wxEVT_WEBVIEW_LOADED -#define wxEVT_COMMAND_WEBVIEW_ERROR wxEVT_WEBVIEW_ERROR -#define wxEVT_COMMAND_WEBVIEW_NEWWINDOW wxEVT_WEBVIEW_NEWWINDOW -#define wxEVT_COMMAND_WEBVIEW_TITLE_CHANGED wxEVT_WEBVIEW_TITLE_CHANGED - -#endif // wxUSE_WEBVIEW - -#endif // _WX_WEBVIEW_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/webviewarchivehandler.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/webviewarchivehandler.h deleted file mode 100644 index 6157b6b1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/webviewarchivehandler.h +++ /dev/null @@ -1,36 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: webviewarchivehandler.h -// Purpose: Custom webview handler to allow archive browsing -// Author: Steven Lamerton -// Copyright: (c) 2011 Steven Lamerton -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WEBVIEW_FILE_HANDLER_H_ -#define _WX_WEBVIEW_FILE_HANDLER_H_ - -#include "wx/setup.h" - -#if wxUSE_WEBVIEW - -class wxFSFile; -class wxFileSystem; - -#include "wx/webview.h" - -//Loads from uris such as scheme:///C:/example/example.html or archives such as -//scheme:///C:/example/example.zip;protocol=zip/example.html - -class WXDLLIMPEXP_WEBVIEW wxWebViewArchiveHandler : public wxWebViewHandler -{ -public: - wxWebViewArchiveHandler(const wxString& scheme); - virtual ~wxWebViewArchiveHandler(); - virtual wxFSFile* GetFile(const wxString &uri) wxOVERRIDE; -private: - wxFileSystem* m_fileSystem; -}; - -#endif // wxUSE_WEBVIEW - -#endif // _WX_WEBVIEW_FILE_HANDLER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/webviewfshandler.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/webviewfshandler.h deleted file mode 100644 index 275410ab..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/webviewfshandler.h +++ /dev/null @@ -1,37 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: webviewfshandler.h -// Purpose: Custom webview handler for virtual file system -// Author: Nick Matthews -// Copyright: (c) 2012 Steven Lamerton -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// Based on webviewarchivehandler.h file by Steven Lamerton - -#ifndef _WX_WEBVIEW_FS_HANDLER_H_ -#define _WX_WEBVIEW_FS_HANDLER_H_ - -#include "wx/setup.h" - -#if wxUSE_WEBVIEW - -class wxFSFile; -class wxFileSystem; - -#include "wx/webview.h" - -//Loads from uris such as scheme:example.html - -class WXDLLIMPEXP_WEBVIEW wxWebViewFSHandler : public wxWebViewHandler -{ -public: - wxWebViewFSHandler(const wxString& scheme); - virtual ~wxWebViewFSHandler(); - virtual wxFSFile* GetFile(const wxString &uri) wxOVERRIDE; -private: - wxFileSystem* m_fileSystem; -}; - -#endif // wxUSE_WEBVIEW - -#endif // _WX_WEBVIEW_FS_HANDLER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wfstream.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wfstream.h deleted file mode 100644 index 990e4ab1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wfstream.h +++ /dev/null @@ -1,263 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/wfstream.h -// Purpose: File stream classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 11/07/98 -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXFSTREAM_H__ -#define _WX_WXFSTREAM_H__ - -#include "wx/defs.h" - -#if wxUSE_STREAMS - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/stream.h" -#include "wx/file.h" -#include "wx/ffile.h" - -#if wxUSE_FILE - -// ---------------------------------------------------------------------------- -// wxFileStream using wxFile -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxFileInputStream : public wxInputStream -{ -public: - wxFileInputStream(const wxString& ifileName); - wxFileInputStream(wxFile& file); - wxFileInputStream(int fd); - virtual ~wxFileInputStream(); - - virtual wxFileOffset GetLength() const wxOVERRIDE; - - bool Ok() const { return IsOk(); } - virtual bool IsOk() const wxOVERRIDE; - virtual bool IsSeekable() const wxOVERRIDE { return m_file->GetKind() == wxFILE_KIND_DISK; } - - wxFile* GetFile() const { return m_file; } - -protected: - wxFileInputStream(); - - virtual size_t OnSysRead(void *buffer, size_t size) wxOVERRIDE; - virtual wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) wxOVERRIDE; - virtual wxFileOffset OnSysTell() const wxOVERRIDE; - -protected: - wxFile *m_file; - bool m_file_destroy; - - wxDECLARE_NO_COPY_CLASS(wxFileInputStream); -}; - -class WXDLLIMPEXP_BASE wxFileOutputStream : public wxOutputStream -{ -public: - wxFileOutputStream(const wxString& fileName); - wxFileOutputStream(wxFile& file); - wxFileOutputStream(int fd); - virtual ~wxFileOutputStream(); - - void Sync() wxOVERRIDE; - bool Close() wxOVERRIDE { return m_file_destroy ? m_file->Close() : true; } - virtual wxFileOffset GetLength() const wxOVERRIDE; - - bool Ok() const { return IsOk(); } - virtual bool IsOk() const wxOVERRIDE; - virtual bool IsSeekable() const wxOVERRIDE { return m_file->GetKind() == wxFILE_KIND_DISK; } - - wxFile* GetFile() const { return m_file; } - -protected: - wxFileOutputStream(); - - virtual size_t OnSysWrite(const void *buffer, size_t size) wxOVERRIDE; - virtual wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) wxOVERRIDE; - virtual wxFileOffset OnSysTell() const wxOVERRIDE; - -protected: - wxFile *m_file; - bool m_file_destroy; - - wxDECLARE_NO_COPY_CLASS(wxFileOutputStream); -}; - -class WXDLLIMPEXP_BASE wxTempFileOutputStream : public wxOutputStream -{ -public: - wxTempFileOutputStream(const wxString& fileName); - virtual ~wxTempFileOutputStream(); - - bool Close() wxOVERRIDE { return Commit(); } - WXDLLIMPEXP_INLINE_BASE virtual bool Commit() { return m_file->Commit(); } - WXDLLIMPEXP_INLINE_BASE virtual void Discard() { m_file->Discard(); } - - virtual wxFileOffset GetLength() const wxOVERRIDE { return m_file->Length(); } - virtual bool IsSeekable() const wxOVERRIDE { return true; } - -protected: - virtual size_t OnSysWrite(const void *buffer, size_t size) wxOVERRIDE; - virtual wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) wxOVERRIDE - { return m_file->Seek(pos, mode); } - virtual wxFileOffset OnSysTell() const wxOVERRIDE { return m_file->Tell(); } - -private: - wxTempFile *m_file; - - wxDECLARE_NO_COPY_CLASS(wxTempFileOutputStream); -}; - -class WXDLLIMPEXP_BASE wxFileStream : public wxFileInputStream, - public wxFileOutputStream -{ -public: - wxFileStream(const wxString& fileName); - virtual bool IsOk() const wxOVERRIDE; - - // override (some) virtual functions inherited from both classes to resolve - // ambiguities (this wouldn't be necessary if wxStreamBase were a virtual - // base class but it isn't) - - virtual bool IsSeekable() const wxOVERRIDE - { - return wxFileInputStream::IsSeekable(); - } - - virtual wxFileOffset GetLength() const wxOVERRIDE - { - return wxFileInputStream::GetLength(); - } - -protected: - virtual wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) wxOVERRIDE - { - return wxFileInputStream::OnSysSeek(pos, mode); - } - - virtual wxFileOffset OnSysTell() const wxOVERRIDE - { - return wxFileInputStream::OnSysTell(); - } - -private: - wxDECLARE_NO_COPY_CLASS(wxFileStream); -}; - -#endif //wxUSE_FILE - -#if wxUSE_FFILE - -// ---------------------------------------------------------------------------- -// wxFFileStream using wxFFile -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxFFileInputStream : public wxInputStream -{ -public: - wxFFileInputStream(const wxString& fileName, const wxString& mode = "rb"); - wxFFileInputStream(wxFFile& file); - wxFFileInputStream(FILE *file); - virtual ~wxFFileInputStream(); - - virtual wxFileOffset GetLength() const wxOVERRIDE; - - bool Ok() const { return IsOk(); } - virtual bool IsOk() const wxOVERRIDE; - virtual bool IsSeekable() const wxOVERRIDE { return m_file->GetKind() == wxFILE_KIND_DISK; } - - wxFFile* GetFile() const { return m_file; } - -protected: - wxFFileInputStream(); - - virtual size_t OnSysRead(void *buffer, size_t size) wxOVERRIDE; - virtual wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) wxOVERRIDE; - virtual wxFileOffset OnSysTell() const wxOVERRIDE; - -protected: - wxFFile *m_file; - bool m_file_destroy; - - wxDECLARE_NO_COPY_CLASS(wxFFileInputStream); -}; - -class WXDLLIMPEXP_BASE wxFFileOutputStream : public wxOutputStream -{ -public: - wxFFileOutputStream(const wxString& fileName, const wxString& mode = "wb"); - wxFFileOutputStream(wxFFile& file); - wxFFileOutputStream(FILE *file); - virtual ~wxFFileOutputStream(); - - void Sync() wxOVERRIDE; - bool Close() wxOVERRIDE { return m_file_destroy ? m_file->Close() : true; } - virtual wxFileOffset GetLength() const wxOVERRIDE; - - bool Ok() const { return IsOk(); } - virtual bool IsOk() const wxOVERRIDE; - virtual bool IsSeekable() const wxOVERRIDE { return m_file->GetKind() == wxFILE_KIND_DISK; } - - wxFFile* GetFile() const { return m_file; } - -protected: - wxFFileOutputStream(); - - virtual size_t OnSysWrite(const void *buffer, size_t size) wxOVERRIDE; - virtual wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) wxOVERRIDE; - virtual wxFileOffset OnSysTell() const wxOVERRIDE; - -protected: - wxFFile *m_file; - bool m_file_destroy; - - wxDECLARE_NO_COPY_CLASS(wxFFileOutputStream); -}; - -class WXDLLIMPEXP_BASE wxFFileStream : public wxFFileInputStream, - public wxFFileOutputStream -{ -public: - wxFFileStream(const wxString& fileName, const wxString& mode = "w+b"); - - // override some virtual functions to resolve ambiguities, just as in - // wxFileStream - - virtual bool IsOk() const wxOVERRIDE; - - virtual bool IsSeekable() const wxOVERRIDE - { - return wxFFileInputStream::IsSeekable(); - } - - virtual wxFileOffset GetLength() const wxOVERRIDE - { - return wxFFileInputStream::GetLength(); - } - -protected: - virtual wxFileOffset OnSysSeek(wxFileOffset pos, wxSeekMode mode) wxOVERRIDE - { - return wxFFileInputStream::OnSysSeek(pos, mode); - } - - virtual wxFileOffset OnSysTell() const wxOVERRIDE - { - return wxFFileInputStream::OnSysTell(); - } - -private: - wxDECLARE_NO_COPY_CLASS(wxFFileStream); -}; - -#endif //wxUSE_FFILE - -#endif // wxUSE_STREAMS - -#endif // _WX_WXFSTREAM_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/window.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/window.h deleted file mode 100644 index 80938e9f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/window.h +++ /dev/null @@ -1,2137 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/window.h -// Purpose: wxWindowBase class - the interface of wxWindow -// Author: Vadim Zeitlin -// Modified by: Ron Lee -// Created: 01/02/97 -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WINDOW_H_BASE_ -#define _WX_WINDOW_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers which we must include here -// ---------------------------------------------------------------------------- - -#include "wx/event.h" // the base class - -#include "wx/list.h" // defines wxWindowList - -#include "wx/cursor.h" // we have member variables of these classes -#include "wx/font.h" // so we can't do without them -#include "wx/colour.h" -#include "wx/region.h" -#include "wx/utils.h" -#include "wx/intl.h" - -#include "wx/validate.h" // for wxDefaultValidator (always include it) - -#if wxUSE_PALETTE - #include "wx/palette.h" -#endif // wxUSE_PALETTE - -#if wxUSE_ACCEL - #include "wx/accel.h" -#endif // wxUSE_ACCEL - -#if wxUSE_ACCESSIBILITY -#include "wx/access.h" -#endif - -// when building wxUniv/Foo we don't want the code for native menu use to be -// compiled in - it should only be used when building real wxFoo -#ifdef __WXUNIVERSAL__ - #define wxUSE_MENUS_NATIVE 0 -#else // !__WXUNIVERSAL__ - #define wxUSE_MENUS_NATIVE wxUSE_MENUS -#endif // __WXUNIVERSAL__/!__WXUNIVERSAL__ - - -// Define this macro if the corresponding operating system handles the state -// of children windows automatically when the parent is enabled/disabled. -// Otherwise wx itself must ensure that when the parent is disabled its -// children are disabled too, and their initial state is restored when the -// parent is enabled back. -#if defined(__WXMSW__) - // must do everything ourselves - #undef wxHAS_NATIVE_ENABLED_MANAGEMENT -#elif defined(__WXOSX__) - // must do everything ourselves - #undef wxHAS_NATIVE_ENABLED_MANAGEMENT -#else - #define wxHAS_NATIVE_ENABLED_MANAGEMENT -#endif - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_FWD_CORE wxCaret; -class WXDLLIMPEXP_FWD_CORE wxControl; -class WXDLLIMPEXP_FWD_CORE wxDC; -class WXDLLIMPEXP_FWD_CORE wxDropTarget; -class WXDLLIMPEXP_FWD_CORE wxLayoutConstraints; -class WXDLLIMPEXP_FWD_CORE wxSizer; -class WXDLLIMPEXP_FWD_CORE wxToolTip; -class WXDLLIMPEXP_FWD_CORE wxWindowBase; -class WXDLLIMPEXP_FWD_CORE wxWindow; -class WXDLLIMPEXP_FWD_CORE wxScrollHelper; - -#if wxUSE_ACCESSIBILITY -class WXDLLIMPEXP_FWD_CORE wxAccessible; -#endif - -// ---------------------------------------------------------------------------- -// helper stuff used by wxWindow -// ---------------------------------------------------------------------------- - -// struct containing all the visual attributes of a control -struct WXDLLIMPEXP_CORE wxVisualAttributes -{ - // the font used for control label/text inside it - wxFont font; - - // the foreground colour - wxColour colFg; - - // the background colour, may be wxNullColour if the controls background - // colour is not solid - wxColour colBg; -}; - -// different window variants, on platforms like eg mac uses different -// rendering sizes -enum wxWindowVariant -{ - wxWINDOW_VARIANT_NORMAL, // Normal size - wxWINDOW_VARIANT_SMALL, // Smaller size (about 25 % smaller than normal) - wxWINDOW_VARIANT_MINI, // Mini size (about 33 % smaller than normal) - wxWINDOW_VARIANT_LARGE, // Large size (about 25 % larger than normal) - wxWINDOW_VARIANT_MAX -}; - -#if wxUSE_SYSTEM_OPTIONS - #define wxWINDOW_DEFAULT_VARIANT wxT("window-default-variant") -#endif - -// valid values for Show/HideWithEffect() -enum wxShowEffect -{ - wxSHOW_EFFECT_NONE, - wxSHOW_EFFECT_ROLL_TO_LEFT, - wxSHOW_EFFECT_ROLL_TO_RIGHT, - wxSHOW_EFFECT_ROLL_TO_TOP, - wxSHOW_EFFECT_ROLL_TO_BOTTOM, - wxSHOW_EFFECT_SLIDE_TO_LEFT, - wxSHOW_EFFECT_SLIDE_TO_RIGHT, - wxSHOW_EFFECT_SLIDE_TO_TOP, - wxSHOW_EFFECT_SLIDE_TO_BOTTOM, - wxSHOW_EFFECT_BLEND, - wxSHOW_EFFECT_EXPAND, - wxSHOW_EFFECT_MAX -}; - -// flags for SendSizeEvent() -enum -{ - wxSEND_EVENT_POST = 1 -}; - -// ---------------------------------------------------------------------------- -// (pseudo)template list classes -// ---------------------------------------------------------------------------- - -WX_DECLARE_LIST_3(wxWindow, wxWindowBase, wxWindowList, wxWindowListNode, class WXDLLIMPEXP_CORE); - -// ---------------------------------------------------------------------------- -// global variables -// ---------------------------------------------------------------------------- - -extern WXDLLIMPEXP_DATA_CORE(wxWindowList) wxTopLevelWindows; - -// declared here for compatibility only, main declaration is in wx/app.h -extern WXDLLIMPEXP_DATA_BASE(wxList) wxPendingDelete; - -// ---------------------------------------------------------------------------- -// wxWindowBase is the base class for all GUI controls/widgets, this is the public -// interface of this class. -// -// Event handler: windows have themselves as their event handlers by default, -// but their event handlers could be set to another object entirely. This -// separation can reduce the amount of derivation required, and allow -// alteration of a window's functionality (e.g. by a resource editor that -// temporarily switches event handlers). -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxWindowBase : public wxEvtHandler -{ -public: - // creating the window - // ------------------- - - // default ctor, initializes everything which can be initialized before - // Create() - wxWindowBase() ; - - virtual ~wxWindowBase(); - - // deleting the window - // ------------------- - - // ask the window to close itself, return true if the event handler - // honoured our request - bool Close( bool force = false ); - - // the following functions delete the C++ objects (the window itself - // or its children) as well as the GUI windows and normally should - // never be used directly - - // delete window unconditionally (dangerous!), returns true if ok - virtual bool Destroy(); - // delete all children of this window, returns true if ok - bool DestroyChildren(); - - // is the window being deleted? - bool IsBeingDeleted() const; - - // window attributes - // ----------------- - - // label is just the same as the title (but for, e.g., buttons it - // makes more sense to speak about labels), title access - // is available from wxTLW classes only (frames, dialogs) - virtual void SetLabel(const wxString& label) = 0; - virtual wxString GetLabel() const = 0; - - // the window name is used for ressource setting in X, it is not the - // same as the window title/label - virtual void SetName( const wxString &name ) { m_windowName = name; } - virtual wxString GetName() const { return m_windowName; } - - // sets the window variant, calls internally DoSetVariant if variant - // has changed - void SetWindowVariant(wxWindowVariant variant); - wxWindowVariant GetWindowVariant() const { return m_windowVariant; } - - - // get or change the layout direction (LTR or RTL) for this window, - // wxLayout_Default is returned if layout direction is not supported - virtual wxLayoutDirection GetLayoutDirection() const - { return wxLayout_Default; } - virtual void SetLayoutDirection(wxLayoutDirection WXUNUSED(dir)) - { } - - // mirror coordinates for RTL layout if this window uses it and if the - // mirroring is not done automatically like Win32 - virtual wxCoord AdjustForLayoutDirection(wxCoord x, - wxCoord width, - wxCoord widthTotal) const; - - - // window id uniquely identifies the window among its siblings unless - // it is wxID_ANY which means "don't care" - virtual void SetId( wxWindowID winid ) { m_windowId = winid; } - wxWindowID GetId() const { return m_windowId; } - - // generate a unique id (or count of them consecutively), returns a - // valid id in the auto-id range or wxID_NONE if failed. If using - // autoid management, it will mark the id as reserved until it is - // used (by assigning it to a wxWindowIDRef) or unreserved. - static wxWindowID NewControlId(int count = 1) - { - return wxIdManager::ReserveId(count); - } - - // If an ID generated from NewControlId is not assigned to a wxWindowIDRef, - // it must be unreserved - static void UnreserveControlId(wxWindowID id, int count = 1) - { - wxIdManager::UnreserveId(id, count); - } - - - // moving/resizing - // --------------- - - // set the window size and/or position - void SetSize( int x, int y, int width, int height, - int sizeFlags = wxSIZE_AUTO ) - { DoSetSize(x, y, width, height, sizeFlags); } - - void SetSize( int width, int height ) - { DoSetSize( wxDefaultCoord, wxDefaultCoord, width, height, wxSIZE_USE_EXISTING ); } - - void SetSize( const wxSize& size ) - { SetSize( size.x, size.y); } - - void SetSize(const wxRect& rect, int sizeFlags = wxSIZE_AUTO) - { DoSetSize(rect.x, rect.y, rect.width, rect.height, sizeFlags); } - - void Move(int x, int y, int flags = wxSIZE_USE_EXISTING) - { DoSetSize(x, y, wxDefaultCoord, wxDefaultCoord, flags); } - - void Move(const wxPoint& pt, int flags = wxSIZE_USE_EXISTING) - { Move(pt.x, pt.y, flags); } - - void SetPosition(const wxPoint& pt) { Move(pt); } - - // Z-order - virtual void Raise() = 0; - virtual void Lower() = 0; - - // client size is the size of area available for subwindows - void SetClientSize( int width, int height ) - { DoSetClientSize(width, height); } - - void SetClientSize( const wxSize& size ) - { DoSetClientSize(size.x, size.y); } - - void SetClientSize(const wxRect& rect) - { SetClientSize( rect.width, rect.height ); } - - // get the window position (pointers may be NULL): notice that it is in - // client coordinates for child windows and screen coordinates for the - // top level ones, use GetScreenPosition() if you need screen - // coordinates for all kinds of windows - void GetPosition( int *x, int *y ) const { DoGetPosition(x, y); } - wxPoint GetPosition() const - { - int x, y; - DoGetPosition(&x, &y); - - return wxPoint(x, y); - } - - // get the window position in screen coordinates - void GetScreenPosition(int *x, int *y) const { DoGetScreenPosition(x, y); } - wxPoint GetScreenPosition() const - { - int x, y; - DoGetScreenPosition(&x, &y); - - return wxPoint(x, y); - } - - // get the window size (pointers may be NULL) - void GetSize( int *w, int *h ) const { DoGetSize(w, h); } - wxSize GetSize() const - { - int w, h; - DoGetSize(& w, & h); - return wxSize(w, h); - } - - void GetClientSize( int *w, int *h ) const { DoGetClientSize(w, h); } - wxSize GetClientSize() const - { - int w, h; - DoGetClientSize(&w, &h); - - return wxSize(w, h); - } - - // get the position and size at once - wxRect GetRect() const - { - int x, y, w, h; - GetPosition(&x, &y); - GetSize(&w, &h); - - return wxRect(x, y, w, h); - } - - wxRect GetScreenRect() const - { - int x, y, w, h; - GetScreenPosition(&x, &y); - GetSize(&w, &h); - - return wxRect(x, y, w, h); - } - - // get the origin of the client area of the window relative to the - // window top left corner (the client area may be shifted because of - // the borders, scrollbars, other decorations...) - virtual wxPoint GetClientAreaOrigin() const; - - // get the client rectangle in window (i.e. client) coordinates - wxRect GetClientRect() const - { - return wxRect(GetClientAreaOrigin(), GetClientSize()); - } - - // client<->window size conversion - virtual wxSize ClientToWindowSize(const wxSize& size) const; - virtual wxSize WindowToClientSize(const wxSize& size) const; - - // get the size best suited for the window (in fact, minimal - // acceptable size using which it will still look "nice" in - // most situations) - wxSize GetBestSize() const; - - void GetBestSize(int *w, int *h) const - { - wxSize s = GetBestSize(); - if ( w ) - *w = s.x; - if ( h ) - *h = s.y; - } - - // Determine the best size in the other direction if one of them is - // fixed. This is used with windows that can wrap their contents and - // returns input-independent best size for the others. - int GetBestHeight(int width) const; - int GetBestWidth(int height) const; - - - void SetScrollHelper( wxScrollHelper *sh ) { m_scrollHelper = sh; } - wxScrollHelper *GetScrollHelper() { return m_scrollHelper; } - - // reset the cached best size value so it will be recalculated the - // next time it is needed. - void InvalidateBestSize(); - void CacheBestSize(const wxSize& size) const - { wxConstCast(this, wxWindowBase)->m_bestSizeCache = size; } - - - // This function will merge the window's best size into the window's - // minimum size, giving priority to the min size components, and - // returns the results. - virtual wxSize GetEffectiveMinSize() const; - - wxDEPRECATED_MSG("use GetEffectiveMinSize() instead") - wxSize GetBestFittingSize() const; - - // A 'Smart' SetSize that will fill in default size values with 'best' - // size. Sets the minsize to what was passed in. - void SetInitialSize(const wxSize& size=wxDefaultSize); - - wxDEPRECATED_MSG("use SetInitialSize() instead") - void SetBestFittingSize(const wxSize& size=wxDefaultSize); - - - // the generic centre function - centers the window on parent by` - // default or on screen if it doesn't have parent or - // wxCENTER_ON_SCREEN flag is given - void Centre(int dir = wxBOTH) { DoCentre(dir); } - void Center(int dir = wxBOTH) { DoCentre(dir); } - - // centre with respect to the parent window - void CentreOnParent(int dir = wxBOTH) { DoCentre(dir); } - void CenterOnParent(int dir = wxBOTH) { CentreOnParent(dir); } - - // set window size to wrap around its children - virtual void Fit(); - - // set virtual size to satisfy children - virtual void FitInside(); - - - // SetSizeHints is actually for setting the size hints - // for the wxTLW for a Window Manager - hence the name - - // and it is therefore overridden in wxTLW to do that. - // In wxWindow(Base), it has (unfortunately) been abused - // to mean the same as SetMinSize() and SetMaxSize(). - - virtual void SetSizeHints( int minW, int minH, - int maxW = wxDefaultCoord, int maxH = wxDefaultCoord, - int incW = wxDefaultCoord, int incH = wxDefaultCoord ) - { DoSetSizeHints(minW, minH, maxW, maxH, incW, incH); } - - void SetSizeHints( const wxSize& minSize, - const wxSize& maxSize=wxDefaultSize, - const wxSize& incSize=wxDefaultSize) - { DoSetSizeHints(minSize.x, minSize.y, maxSize.x, maxSize.y, incSize.x, incSize.y); } - - -#if WXWIN_COMPATIBILITY_2_8 - // these are useless and do nothing since wxWidgets 2.9 - wxDEPRECATED( virtual void SetVirtualSizeHints( int minW, int minH, - int maxW = wxDefaultCoord, int maxH = wxDefaultCoord ) ); - wxDEPRECATED( void SetVirtualSizeHints( const wxSize& minSize, - const wxSize& maxSize=wxDefaultSize) ); -#endif // WXWIN_COMPATIBILITY_2_8 - - - // Call these to override what GetBestSize() returns. This - // method is only virtual because it is overridden in wxTLW - // as a different API for SetSizeHints(). - virtual void SetMinSize(const wxSize& minSize); - virtual void SetMaxSize(const wxSize& maxSize); - - // Like Set*Size, but for client, not window, size - virtual void SetMinClientSize(const wxSize& size) - { SetMinSize(ClientToWindowSize(size)); } - virtual void SetMaxClientSize(const wxSize& size) - { SetMaxSize(ClientToWindowSize(size)); } - - // Override these methods to impose restrictions on min/max size. - // The easier way is to call SetMinSize() and SetMaxSize() which - // will have the same effect. Doing both is non-sense. - virtual wxSize GetMinSize() const { return wxSize(m_minWidth, m_minHeight); } - virtual wxSize GetMaxSize() const { return wxSize(m_maxWidth, m_maxHeight); } - - // Like Get*Size, but for client, not window, size - virtual wxSize GetMinClientSize() const - { return WindowToClientSize(GetMinSize()); } - virtual wxSize GetMaxClientSize() const - { return WindowToClientSize(GetMaxSize()); } - - // Get the min and max values one by one - int GetMinWidth() const { return GetMinSize().x; } - int GetMinHeight() const { return GetMinSize().y; } - int GetMaxWidth() const { return GetMaxSize().x; } - int GetMaxHeight() const { return GetMaxSize().y; } - - - // Methods for accessing the virtual size of a window. For most - // windows this is just the client area of the window, but for - // some like scrolled windows it is more or less independent of - // the screen window size. You may override the DoXXXVirtual - // methods below for classes where that is the case. - - void SetVirtualSize( const wxSize &size ) { DoSetVirtualSize( size.x, size.y ); } - void SetVirtualSize( int x, int y ) { DoSetVirtualSize( x, y ); } - - wxSize GetVirtualSize() const { return DoGetVirtualSize(); } - void GetVirtualSize( int *x, int *y ) const - { - wxSize s( DoGetVirtualSize() ); - - if( x ) - *x = s.GetWidth(); - if( y ) - *y = s.GetHeight(); - } - - // Override these methods for windows that have a virtual size - // independent of their client size. eg. the virtual area of a - // wxScrolledWindow. - - virtual void DoSetVirtualSize( int x, int y ); - virtual wxSize DoGetVirtualSize() const; - - // Return the largest of ClientSize and BestSize (as determined - // by a sizer, interior children, or other means) - - virtual wxSize GetBestVirtualSize() const - { - wxSize client( GetClientSize() ); - wxSize best( GetBestSize() ); - - return wxSize( wxMax( client.x, best.x ), wxMax( client.y, best.y ) ); - } - - // returns the magnification of the content of this window - // eg 2.0 for a window on a retina screen - virtual double GetContentScaleFactor() const; - - // return the size of the left/right and top/bottom borders in x and y - // components of the result respectively - virtual wxSize GetWindowBorderSize() const; - - // wxSizer and friends use this to give a chance to a component to recalc - // its min size once one of the final size components is known. Override - // this function when that is useful (such as for wxStaticText which can - // stretch over several lines). Parameter availableOtherDir - // tells the item how much more space there is available in the opposite - // direction (-1 if unknown). - virtual bool - InformFirstDirection(int direction, int size, int availableOtherDir); - - // sends a size event to the window using its current size -- this has an - // effect of refreshing the window layout - // - // by default the event is sent, i.e. processed immediately, but if flags - // value includes wxSEND_EVENT_POST then it's posted, i.e. only schedule - // for later processing - virtual void SendSizeEvent(int flags = 0); - - // this is a safe wrapper for GetParent()->SendSizeEvent(): it checks that - // we have a parent window and it's not in process of being deleted - // - // this is used by controls such as tool/status bars changes to which must - // also result in parent re-layout - void SendSizeEventToParent(int flags = 0); - - // this is a more readable synonym for SendSizeEvent(wxSEND_EVENT_POST) - void PostSizeEvent() { SendSizeEvent(wxSEND_EVENT_POST); } - - // this is the same as SendSizeEventToParent() but using PostSizeEvent() - void PostSizeEventToParent() { SendSizeEventToParent(wxSEND_EVENT_POST); } - - // These functions should be used before repositioning the children of - // this window to reduce flicker or, in MSW case, even avoid display - // corruption in some situations (so they're more than just optimization). - // - // EndRepositioningChildren() should be called if and only if - // BeginRepositioningChildren() returns true. To ensure that this is always - // done automatically, use ChildrenRepositioningGuard class below. - virtual bool BeginRepositioningChildren() { return false; } - virtual void EndRepositioningChildren() { } - - // A simple helper which ensures that EndRepositioningChildren() is called - // from its dtor if and only if calling BeginRepositioningChildren() from - // the ctor returned true. - class ChildrenRepositioningGuard - { - public: - // Notice that window can be NULL here, for convenience. In this case - // this class simply doesn't do anything. - wxEXPLICIT ChildrenRepositioningGuard(wxWindowBase* win) - : m_win(win), - m_callEnd(win && win->BeginRepositioningChildren()) - { - } - - ~ChildrenRepositioningGuard() - { - if ( m_callEnd ) - m_win->EndRepositioningChildren(); - } - - private: - wxWindowBase* const m_win; - const bool m_callEnd; - - wxDECLARE_NO_COPY_CLASS(ChildrenRepositioningGuard); - }; - - - // window state - // ------------ - - // returns true if window was shown/hidden, false if the nothing was - // done (window was already shown/hidden) - virtual bool Show( bool show = true ); - bool Hide() { return Show(false); } - - // show or hide the window with a special effect, not implemented on - // most platforms (where it is the same as Show()/Hide() respectively) - // - // timeout specifies how long the animation should take, in ms, the - // default value of 0 means to use the default (system-dependent) value - virtual bool ShowWithEffect(wxShowEffect WXUNUSED(effect), - unsigned WXUNUSED(timeout) = 0) - { - return Show(); - } - - virtual bool HideWithEffect(wxShowEffect WXUNUSED(effect), - unsigned WXUNUSED(timeout) = 0) - { - return Hide(); - } - - // returns true if window was enabled/disabled, false if nothing done - virtual bool Enable( bool enable = true ); - bool Disable() { return Enable(false); } - - virtual bool IsShown() const { return m_isShown; } - // returns true if the window is really enabled and false otherwise, - // whether because it had been explicitly disabled itself or because - // its parent is currently disabled -- then this method returns false - // whatever is the intrinsic state of this window, use IsThisEnabled(0 - // to retrieve it. In other words, this relation always holds: - // - // IsEnabled() == IsThisEnabled() && parent.IsEnabled() - // - bool IsEnabled() const; - - // returns the internal window state independently of the parent(s) - // state, i.e. the state in which the window would be if all its - // parents were enabled (use IsEnabled() above to get the effective - // window state) - bool IsThisEnabled() const { return m_isEnabled; } - - // returns true if the window is visible, i.e. IsShown() returns true - // if called on it and all its parents up to the first TLW - virtual bool IsShownOnScreen() const; - - // get/set window style (setting style won't update the window and so - // is only useful for internal usage) - virtual void SetWindowStyleFlag( long style ) { m_windowStyle = style; } - virtual long GetWindowStyleFlag() const { return m_windowStyle; } - - // just some (somewhat shorter) synonyms - void SetWindowStyle( long style ) { SetWindowStyleFlag(style); } - long GetWindowStyle() const { return GetWindowStyleFlag(); } - - // check if the flag is set - bool HasFlag(int flag) const { return (m_windowStyle & flag) != 0; } - virtual bool IsRetained() const { return HasFlag(wxRETAINED); } - - // turn the flag on if it had been turned off before and vice versa, - // return true if the flag is currently turned on - bool ToggleWindowStyle(int flag); - - // extra style: the less often used style bits which can't be set with - // SetWindowStyleFlag() - virtual void SetExtraStyle(long exStyle) { m_exStyle = exStyle; } - long GetExtraStyle() const { return m_exStyle; } - - bool HasExtraStyle(int exFlag) const { return (m_exStyle & exFlag) != 0; } - -#if WXWIN_COMPATIBILITY_2_8 - // make the window modal (all other windows unresponsive) - wxDEPRECATED( virtual void MakeModal(bool modal = true) ); -#endif - - // (primitive) theming support - // --------------------------- - - virtual void SetThemeEnabled(bool enableTheme) { m_themeEnabled = enableTheme; } - virtual bool GetThemeEnabled() const { return m_themeEnabled; } - - - // focus and keyboard handling - // --------------------------- - - // set focus to this window - virtual void SetFocus() = 0; - - // set focus to this window as the result of a keyboard action - virtual void SetFocusFromKbd() { SetFocus(); } - - // return the window which currently has the focus or NULL - static wxWindow *FindFocus(); - - static wxWindow *DoFindFocus() /* = 0: implement in derived classes */; - - // return true if the window has focus (handles composite windows - // correctly - returns true if GetMainWindowOfCompositeControl() - // has focus) - virtual bool HasFocus() const; - - // can this window have focus in principle? - // - // the difference between AcceptsFocus[FromKeyboard]() and CanAcceptFocus - // [FromKeyboard]() is that the former functions are meant to be - // overridden in the derived classes to simply return false if the - // control can't have focus, while the latter are meant to be used by - // this class clients and take into account the current window state - virtual bool AcceptsFocus() const { return true; } - - // can this window or one of its children accept focus? - // - // usually it's the same as AcceptsFocus() but is overridden for - // container windows - virtual bool AcceptsFocusRecursively() const { return AcceptsFocus(); } - - // can this window be given focus by keyboard navigation? if not, the - // only way to give it focus (provided it accepts it at all) is to - // click it - virtual bool AcceptsFocusFromKeyboard() const { return AcceptsFocus(); } - - - // Can this window be focused right now, in its current state? This - // shouldn't be called at all if AcceptsFocus() returns false. - // - // It is a convenient helper for the various functions using it below - // but also a hook allowing to override the default logic for some rare - // cases (currently just wxRadioBox in wxMSW) when it's inappropriate. - virtual bool CanBeFocused() const { return IsShown() && IsEnabled(); } - - // can this window itself have focus? - bool IsFocusable() const { return AcceptsFocus() && CanBeFocused(); } - - // can this window have focus right now? - // - // if this method returns true, it means that calling SetFocus() will - // put focus either to this window or one of its children, if you need - // to know whether this window accepts focus itself, use IsFocusable() - bool CanAcceptFocus() const - { return AcceptsFocusRecursively() && CanBeFocused(); } - - // can this window be assigned focus from keyboard right now? - bool CanAcceptFocusFromKeyboard() const - { return AcceptsFocusFromKeyboard() && CanBeFocused(); } - - // call this when the return value of AcceptsFocus() changes - virtual void SetCanFocus(bool WXUNUSED(canFocus)) { } - - // navigates inside this window - bool NavigateIn(int flags = wxNavigationKeyEvent::IsForward) - { return DoNavigateIn(flags); } - - // navigates in the specified direction from this window, this is - // equivalent to GetParent()->NavigateIn() - bool Navigate(int flags = wxNavigationKeyEvent::IsForward) - { return m_parent && ((wxWindowBase *)m_parent)->DoNavigateIn(flags); } - - // this function will generate the appropriate call to Navigate() if the - // key event is one normally used for keyboard navigation and return true - // in this case - bool HandleAsNavigationKey(const wxKeyEvent& event); - - // move this window just before/after the specified one in tab order - // (the other window must be our sibling!) - void MoveBeforeInTabOrder(wxWindow *win) - { DoMoveInTabOrder(win, OrderBefore); } - void MoveAfterInTabOrder(wxWindow *win) - { DoMoveInTabOrder(win, OrderAfter); } - - - // parent/children relations - // ------------------------- - - // get the list of children - const wxWindowList& GetChildren() const { return m_children; } - wxWindowList& GetChildren() { return m_children; } - - // needed just for extended runtime - const wxWindowList& GetWindowChildren() const { return GetChildren() ; } - - // get the window before/after this one in the parents children list, - // returns NULL if this is the first/last window - wxWindow *GetPrevSibling() const { return DoGetSibling(OrderBefore); } - wxWindow *GetNextSibling() const { return DoGetSibling(OrderAfter); } - - // get the parent or the parent of the parent - wxWindow *GetParent() const { return m_parent; } - inline wxWindow *GetGrandParent() const; - - // is this window a top level one? - virtual bool IsTopLevel() const; - - // is this window a child or grand child of this one (inside the same - // TLW)? - bool IsDescendant(wxWindowBase* win) const; - - // it doesn't really change parent, use Reparent() instead - void SetParent( wxWindowBase *parent ); - // change the real parent of this window, return true if the parent - // was changed, false otherwise (error or newParent == oldParent) - virtual bool Reparent( wxWindowBase *newParent ); - - // implementation mostly - virtual void AddChild( wxWindowBase *child ); - virtual void RemoveChild( wxWindowBase *child ); - - // returns true if the child is in the client area of the window, i.e. is - // not scrollbar, toolbar etc. - virtual bool IsClientAreaChild(const wxWindow *WXUNUSED(child)) const - { return true; } - - // looking for windows - // ------------------- - - // find window among the descendants of this one either by id or by - // name (return NULL if not found) - wxWindow *FindWindow(long winid) const; - wxWindow *FindWindow(const wxString& name) const; - - // Find a window among any window (all return NULL if not found) - static wxWindow *FindWindowById( long winid, const wxWindow *parent = NULL ); - static wxWindow *FindWindowByName( const wxString& name, - const wxWindow *parent = NULL ); - static wxWindow *FindWindowByLabel( const wxString& label, - const wxWindow *parent = NULL ); - - // event handler stuff - // ------------------- - - // get the current event handler - wxEvtHandler *GetEventHandler() const { return m_eventHandler; } - - // replace the event handler (allows to completely subclass the - // window) - void SetEventHandler( wxEvtHandler *handler ); - - // push/pop event handler: allows to chain a custom event handler to - // alreasy existing ones - void PushEventHandler( wxEvtHandler *handler ); - wxEvtHandler *PopEventHandler( bool deleteHandler = false ); - - // find the given handler in the event handler chain and remove (but - // not delete) it from the event handler chain, return true if it was - // found and false otherwise (this also results in an assert failure so - // this function should only be called when the handler is supposed to - // be there) - bool RemoveEventHandler(wxEvtHandler *handler); - - // Process an event by calling GetEventHandler()->ProcessEvent(): this - // is a straightforward replacement for ProcessEvent() itself which - // shouldn't be used directly with windows as it doesn't take into - // account any event handlers associated with the window - bool ProcessWindowEvent(wxEvent& event) - { return GetEventHandler()->ProcessEvent(event); } - - // Call GetEventHandler()->ProcessEventLocally(): this should be used - // instead of calling ProcessEventLocally() directly on the window - // itself as this wouldn't take any pushed event handlers into account - // correctly - bool ProcessWindowEventLocally(wxEvent& event) - { return GetEventHandler()->ProcessEventLocally(event); } - - // Process an event by calling GetEventHandler()->ProcessEvent() and - // handling any exceptions thrown by event handlers. It's mostly useful - // when processing wx events when called from C code (e.g. in GTK+ - // callback) when the exception wouldn't correctly propagate to - // wxEventLoop. - bool HandleWindowEvent(wxEvent& event) const; - - // disable wxEvtHandler double-linked list mechanism: - virtual void SetNextHandler(wxEvtHandler *handler) wxOVERRIDE; - virtual void SetPreviousHandler(wxEvtHandler *handler) wxOVERRIDE; - - -protected: - - // NOTE: we change the access specifier of the following wxEvtHandler functions - // so that the user won't be able to call them directly. - // Calling wxWindow::ProcessEvent in fact only works when there are NO - // event handlers pushed on the window. - // To ensure correct operation, instead of wxWindow::ProcessEvent - // you must always call wxWindow::GetEventHandler()->ProcessEvent() - // or HandleWindowEvent(). - // The same holds for all other wxEvtHandler functions. - - using wxEvtHandler::ProcessEvent; - using wxEvtHandler::ProcessEventLocally; -#if wxUSE_THREADS - using wxEvtHandler::ProcessThreadEvent; -#endif - using wxEvtHandler::SafelyProcessEvent; - using wxEvtHandler::ProcessPendingEvents; - using wxEvtHandler::AddPendingEvent; - using wxEvtHandler::QueueEvent; - -public: - - // validators - // ---------- - -#if wxUSE_VALIDATORS - // a window may have an associated validator which is used to control - // user input - virtual void SetValidator( const wxValidator &validator ); - virtual wxValidator *GetValidator() { return m_windowValidator; } -#endif // wxUSE_VALIDATORS - - - // dialog oriented functions - // ------------------------- - - // validate the correctness of input, return true if ok - virtual bool Validate(); - - // transfer data between internal and GUI representations - virtual bool TransferDataToWindow(); - virtual bool TransferDataFromWindow(); - - virtual void InitDialog(); - -#if wxUSE_ACCEL - // accelerators - // ------------ - virtual void SetAcceleratorTable( const wxAcceleratorTable& accel ) - { m_acceleratorTable = accel; } - wxAcceleratorTable *GetAcceleratorTable() - { return &m_acceleratorTable; } - -#endif // wxUSE_ACCEL - -#if wxUSE_HOTKEY - // hot keys (system wide accelerators) - // ----------------------------------- - - virtual bool RegisterHotKey(int hotkeyId, int modifiers, int keycode); - virtual bool UnregisterHotKey(int hotkeyId); -#endif // wxUSE_HOTKEY - - - // translation between different units - // ----------------------------------- - - // DPI-independent pixels, or DIPs, are pixel values for the standard - // 96 DPI display, they are scaled to take the current resolution into - // account (i.e. multiplied by the same factor as returned by - // GetContentScaleFactor()) if necessary for the current platform. - // - // Currently the conversion factor is the same for all windows but this - // will change with the monitor-specific resolution support in the - // future, so prefer using the non-static member functions. - // - // Similarly, currently in practice the factor is the same in both - // horizontal and vertical directions, but this could, in principle, - // change too, so prefer using the overloads taking wxPoint or wxSize. - - static wxSize FromDIP(const wxSize& sz, const wxWindowBase* w); - static wxPoint FromDIP(const wxPoint& pt, const wxWindowBase* w) - { - const wxSize sz = FromDIP(wxSize(pt.x, pt.y), w); - return wxPoint(sz.x, sz.y); - } - static int FromDIP(int d, const wxWindowBase* w) - { - return FromDIP(wxSize(d, 0), w).x; - } - - wxSize FromDIP(const wxSize& sz) const { return FromDIP(sz, this); } - wxPoint FromDIP(const wxPoint& pt) const { return FromDIP(pt, this); } - int FromDIP(int d) const { return FromDIP(d, this); } - - static wxSize ToDIP(const wxSize& sz, const wxWindowBase* w); - static wxPoint ToDIP(const wxPoint& pt, const wxWindowBase* w) - { - const wxSize sz = ToDIP(wxSize(pt.x, pt.y), w); - return wxPoint(sz.x, sz.y); - } - static int ToDIP(int d, const wxWindowBase* w) - { - return ToDIP(wxSize(d, 0), w).x; - } - - wxSize ToDIP(const wxSize& sz) const { return ToDIP(sz, this); } - wxPoint ToDIP(const wxPoint& pt) const { return ToDIP(pt, this); } - int ToDIP(int d) const { return ToDIP(d, this); } - - - // Dialog units are based on the size of the current font. - - wxPoint ConvertPixelsToDialog( const wxPoint& pt ) const; - wxPoint ConvertDialogToPixels( const wxPoint& pt ) const; - wxSize ConvertPixelsToDialog( const wxSize& sz ) const - { - wxPoint pt(ConvertPixelsToDialog(wxPoint(sz.x, sz.y))); - - return wxSize(pt.x, pt.y); - } - - wxSize ConvertDialogToPixels( const wxSize& sz ) const - { - wxPoint pt(ConvertDialogToPixels(wxPoint(sz.x, sz.y))); - - return wxSize(pt.x, pt.y); - } - - // mouse functions - // --------------- - - // move the mouse to the specified position - virtual void WarpPointer(int x, int y) = 0; - - // start or end mouse capture, these functions maintain the stack of - // windows having captured the mouse and after calling ReleaseMouse() - // the mouse is not released but returns to the window which had had - // captured it previously (if any) - void CaptureMouse(); - void ReleaseMouse(); - - // get the window which currently captures the mouse or NULL - static wxWindow *GetCapture(); - - // does this window have the capture? - virtual bool HasCapture() const - { return (wxWindow *)this == GetCapture(); } - - // painting the window - // ------------------- - - // mark the specified rectangle (or the whole window) as "dirty" so it - // will be repainted - virtual void Refresh( bool eraseBackground = true, - const wxRect *rect = (const wxRect *) NULL ) = 0; - - // a less awkward wrapper for Refresh - void RefreshRect(const wxRect& rect, bool eraseBackground = true) - { - Refresh(eraseBackground, &rect); - } - - // repaint all invalid areas of the window immediately - virtual void Update() { } - - // clear the window background - virtual void ClearBackground(); - - // freeze the window: don't redraw it until it is thawed - void Freeze(); - - // thaw the window: redraw it after it had been frozen - void Thaw(); - - // return true if window had been frozen and not unthawed yet - bool IsFrozen() const { return m_freezeCount != 0; } - - // adjust DC for drawing on this window - virtual void PrepareDC( wxDC & WXUNUSED(dc) ) { } - - // return true if the window contents is double buffered by the system - virtual bool IsDoubleBuffered() const { return false; } - - // the update region of the window contains the areas which must be - // repainted by the program - const wxRegion& GetUpdateRegion() const { return m_updateRegion; } - wxRegion& GetUpdateRegion() { return m_updateRegion; } - - // get the update rectangleregion bounding box in client coords - wxRect GetUpdateClientRect() const; - - // these functions verify whether the given point/rectangle belongs to - // (or at least intersects with) the update region - virtual bool DoIsExposed( int x, int y ) const; - virtual bool DoIsExposed( int x, int y, int w, int h ) const; - - bool IsExposed( int x, int y ) const - { return DoIsExposed(x, y); } - bool IsExposed( int x, int y, int w, int h ) const - { return DoIsExposed(x, y, w, h); } - bool IsExposed( const wxPoint& pt ) const - { return DoIsExposed(pt.x, pt.y); } - bool IsExposed( const wxRect& rect ) const - { return DoIsExposed(rect.x, rect.y, rect.width, rect.height); } - - // colours, fonts and cursors - // -------------------------- - - // get the default attributes for the controls of this class: we - // provide a virtual function which can be used to query the default - // attributes of an existing control and a static function which can - // be used even when no existing object of the given class is - // available, but which won't return any styles specific to this - // particular control, of course (e.g. "Ok" button might have - // different -- bold for example -- font) - virtual wxVisualAttributes GetDefaultAttributes() const - { - return GetClassDefaultAttributes(GetWindowVariant()); - } - - static wxVisualAttributes - GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); - - // set/retrieve the window colours (system defaults are used by - // default): SetXXX() functions return true if colour was changed, - // SetDefaultXXX() reset the "m_inheritXXX" flag after setting the - // value to prevent it from being inherited by our children - virtual bool SetBackgroundColour(const wxColour& colour); - void SetOwnBackgroundColour(const wxColour& colour) - { - if ( SetBackgroundColour(colour) ) - m_inheritBgCol = false; - } - wxColour GetBackgroundColour() const; - bool InheritsBackgroundColour() const - { - return m_inheritBgCol; - } - bool UseBgCol() const - { - return m_hasBgCol; - } - - virtual bool SetForegroundColour(const wxColour& colour); - void SetOwnForegroundColour(const wxColour& colour) - { - if ( SetForegroundColour(colour) ) - m_inheritFgCol = false; - } - wxColour GetForegroundColour() const; - - // Set/get the background style. - virtual bool SetBackgroundStyle(wxBackgroundStyle style); - wxBackgroundStyle GetBackgroundStyle() const - { return m_backgroundStyle; } - - // returns true if the control has "transparent" areas such as a - // wxStaticText and wxCheckBox and the background should be adapted - // from a parent window - virtual bool HasTransparentBackground() { return false; } - - // Returns true if background transparency is supported for this - // window, i.e. if calling SetBackgroundStyle(wxBG_STYLE_TRANSPARENT) - // has a chance of succeeding. If reason argument is non-NULL, returns a - // user-readable explanation of why it isn't supported if the return - // value is false. - virtual bool IsTransparentBackgroundSupported(wxString* reason = NULL) const; - - // set/retrieve the font for the window (SetFont() returns true if the - // font really changed) - virtual bool SetFont(const wxFont& font) = 0; - void SetOwnFont(const wxFont& font) - { - if ( SetFont(font) ) - m_inheritFont = false; - } - wxFont GetFont() const; - - // set/retrieve the cursor for this window (SetCursor() returns true - // if the cursor was really changed) - virtual bool SetCursor( const wxCursor &cursor ); - const wxCursor& GetCursor() const { return m_cursor; } - -#if wxUSE_CARET - // associate a caret with the window - void SetCaret(wxCaret *caret); - // get the current caret (may be NULL) - wxCaret *GetCaret() const { return m_caret; } -#endif // wxUSE_CARET - - // get the (average) character size for the current font - virtual int GetCharHeight() const = 0; - virtual int GetCharWidth() const = 0; - - // get the width/height/... of the text using current or specified - // font - void GetTextExtent(const wxString& string, - int *x, int *y, - int *descent = NULL, - int *externalLeading = NULL, - const wxFont *font = NULL) const - { - DoGetTextExtent(string, x, y, descent, externalLeading, font); - } - - wxSize GetTextExtent(const wxString& string) const - { - wxCoord w, h; - GetTextExtent(string, &w, &h); - return wxSize(w, h); - } - - // client <-> screen coords - // ------------------------ - - // translate to/from screen/client coordinates (pointers may be NULL) - void ClientToScreen( int *x, int *y ) const - { DoClientToScreen(x, y); } - void ScreenToClient( int *x, int *y ) const - { DoScreenToClient(x, y); } - - // wxPoint interface to do the same thing - wxPoint ClientToScreen(const wxPoint& pt) const - { - int x = pt.x, y = pt.y; - DoClientToScreen(&x, &y); - - return wxPoint(x, y); - } - - wxPoint ScreenToClient(const wxPoint& pt) const - { - int x = pt.x, y = pt.y; - DoScreenToClient(&x, &y); - - return wxPoint(x, y); - } - - // test where the given (in client coords) point lies - wxHitTest HitTest(wxCoord x, wxCoord y) const - { return DoHitTest(x, y); } - - wxHitTest HitTest(const wxPoint& pt) const - { return DoHitTest(pt.x, pt.y); } - - // misc - // ---- - - // get the window border style from the given flags: this is different from - // simply doing flags & wxBORDER_MASK because it uses GetDefaultBorder() to - // translate wxBORDER_DEFAULT to something reasonable - wxBorder GetBorder(long flags) const; - - // get border for the flags of this window - wxBorder GetBorder() const { return GetBorder(GetWindowStyleFlag()); } - - // send wxUpdateUIEvents to this window, and children if recurse is true - virtual void UpdateWindowUI(long flags = wxUPDATE_UI_NONE); - - // do the window-specific processing after processing the update event - virtual void DoUpdateWindowUI(wxUpdateUIEvent& event) ; - -#if wxUSE_MENUS - // show popup menu at the given position, generate events for the items - // selected in it - bool PopupMenu(wxMenu *menu, const wxPoint& pos = wxDefaultPosition) - { return PopupMenu(menu, pos.x, pos.y); } - bool PopupMenu(wxMenu *menu, int x, int y); - - // simply return the id of the selected item or wxID_NONE without - // generating any events - int GetPopupMenuSelectionFromUser(wxMenu& menu, - const wxPoint& pos = wxDefaultPosition) - { return DoGetPopupMenuSelectionFromUser(menu, pos.x, pos.y); } - int GetPopupMenuSelectionFromUser(wxMenu& menu, int x, int y) - { return DoGetPopupMenuSelectionFromUser(menu, x, y); } -#endif // wxUSE_MENUS - - // override this method to return true for controls having multiple pages - virtual bool HasMultiplePages() const { return false; } - - - // scrollbars - // ---------- - - // can the window have the scrollbar in this orientation? - virtual bool CanScroll(int orient) const; - - // does the window have the scrollbar in this orientation? - bool HasScrollbar(int orient) const; - - // configure the window scrollbars - virtual void SetScrollbar( int orient, - int pos, - int thumbvisible, - int range, - bool refresh = true ) = 0; - virtual void SetScrollPos( int orient, int pos, bool refresh = true ) = 0; - virtual int GetScrollPos( int orient ) const = 0; - virtual int GetScrollThumb( int orient ) const = 0; - virtual int GetScrollRange( int orient ) const = 0; - - // scroll window to the specified position - virtual void ScrollWindow( int dx, int dy, - const wxRect* rect = NULL ) = 0; - - // scrolls window by line/page: note that not all controls support this - // - // return true if the position changed, false otherwise - virtual bool ScrollLines(int WXUNUSED(lines)) { return false; } - virtual bool ScrollPages(int WXUNUSED(pages)) { return false; } - - // convenient wrappers for ScrollLines/Pages - bool LineUp() { return ScrollLines(-1); } - bool LineDown() { return ScrollLines(1); } - bool PageUp() { return ScrollPages(-1); } - bool PageDown() { return ScrollPages(1); } - - // call this to always show one or both scrollbars, even if the window - // is big enough to not require them - virtual void AlwaysShowScrollbars(bool WXUNUSED(horz) = true, - bool WXUNUSED(vert) = true) - { - } - - // return true if AlwaysShowScrollbars() had been called before for the - // corresponding orientation - virtual bool IsScrollbarAlwaysShown(int WXUNUSED(orient)) const - { - return false; - } - - // context-sensitive help - // ---------------------- - - // these are the convenience functions wrapping wxHelpProvider methods - -#if wxUSE_HELP - // associate this help text with this window - void SetHelpText(const wxString& text); - -#if WXWIN_COMPATIBILITY_2_8 - // Associate this help text with all windows with the same id as this one. - // Don't use this, do wxHelpProvider::Get()->AddHelp(id, text); - wxDEPRECATED( void SetHelpTextForId(const wxString& text) ); -#endif // WXWIN_COMPATIBILITY_2_8 - - // get the help string associated with the given position in this window - // - // notice that pt may be invalid if event origin is keyboard or unknown - // and this method should return the global window help text then - virtual wxString GetHelpTextAtPoint(const wxPoint& pt, - wxHelpEvent::Origin origin) const; - // returns the position-independent help text - wxString GetHelpText() const - { - return GetHelpTextAtPoint(wxDefaultPosition, wxHelpEvent::Origin_Unknown); - } - -#else // !wxUSE_HELP - // silently ignore SetHelpText() calls - void SetHelpText(const wxString& WXUNUSED(text)) { } - void SetHelpTextForId(const wxString& WXUNUSED(text)) { } -#endif // wxUSE_HELP - - // tooltips - // -------- - -#if wxUSE_TOOLTIPS - // the easiest way to set a tooltip for a window is to use this method - void SetToolTip( const wxString &tip ) { DoSetToolTipText(tip); } - // attach a tooltip to the window, pointer can be NULL to remove - // existing tooltip - void SetToolTip( wxToolTip *tip ) { DoSetToolTip(tip); } - // more readable synonym for SetToolTip(NULL) - void UnsetToolTip() { SetToolTip(NULL); } - // get the associated tooltip or NULL if none - wxToolTip* GetToolTip() const { return m_tooltip; } - wxString GetToolTipText() const; - - // Use the same tool tip as the given one (which can be NULL to indicate - // that no tooltip should be used) for this window. This is currently only - // used by wxCompositeWindow::DoSetToolTip() implementation and is not part - // of the public wx API. - // - // Returns true if tip was valid and we copied it or false if it was NULL - // and we reset our own tooltip too. - bool CopyToolTip(wxToolTip *tip); -#else // !wxUSE_TOOLTIPS - // make it much easier to compile apps in an environment - // that doesn't support tooltips - void SetToolTip(const wxString & WXUNUSED(tip)) { } - void UnsetToolTip() { } -#endif // wxUSE_TOOLTIPS/!wxUSE_TOOLTIPS - - // drag and drop - // ------------- -#if wxUSE_DRAG_AND_DROP - // set/retrieve the drop target associated with this window (may be - // NULL; it's owned by the window and will be deleted by it) - virtual void SetDropTarget( wxDropTarget *dropTarget ) = 0; - virtual wxDropTarget *GetDropTarget() const { return m_dropTarget; } - - // Accept files for dragging - virtual void DragAcceptFiles(bool accept) -#ifdef __WXMSW__ - // it does have common implementation but not for MSW which has its own - // native version of it - = 0 -#endif // __WXMSW__ - ; - -#endif // wxUSE_DRAG_AND_DROP - - // constraints and sizers - // ---------------------- -#if wxUSE_CONSTRAINTS - // set the constraints for this window or retrieve them (may be NULL) - void SetConstraints( wxLayoutConstraints *constraints ); - wxLayoutConstraints *GetConstraints() const { return m_constraints; } - - // implementation only - void UnsetConstraints(wxLayoutConstraints *c); - wxWindowList *GetConstraintsInvolvedIn() const - { return m_constraintsInvolvedIn; } - void AddConstraintReference(wxWindowBase *otherWin); - void RemoveConstraintReference(wxWindowBase *otherWin); - void DeleteRelatedConstraints(); - void ResetConstraints(); - - // these methods may be overridden for special layout algorithms - virtual void SetConstraintSizes(bool recurse = true); - virtual bool LayoutPhase1(int *noChanges); - virtual bool LayoutPhase2(int *noChanges); - virtual bool DoPhase(int phase); - - // these methods are virtual but normally won't be overridden - virtual void SetSizeConstraint(int x, int y, int w, int h); - virtual void MoveConstraint(int x, int y); - virtual void GetSizeConstraint(int *w, int *h) const ; - virtual void GetClientSizeConstraint(int *w, int *h) const ; - virtual void GetPositionConstraint(int *x, int *y) const ; - -#endif // wxUSE_CONSTRAINTS - - // when using constraints or sizers, it makes sense to update - // children positions automatically whenever the window is resized - // - this is done if autoLayout is on - void SetAutoLayout( bool autoLayout ) { m_autoLayout = autoLayout; } - bool GetAutoLayout() const { return m_autoLayout; } - - // lay out the window and its children - virtual bool Layout(); - - // sizers - void SetSizer(wxSizer *sizer, bool deleteOld = true ); - void SetSizerAndFit( wxSizer *sizer, bool deleteOld = true ); - - wxSizer *GetSizer() const { return m_windowSizer; } - - // Track if this window is a member of a sizer - void SetContainingSizer(wxSizer* sizer); - wxSizer *GetContainingSizer() const { return m_containingSizer; } - - // accessibility - // ---------------------- -#if wxUSE_ACCESSIBILITY - // Override to create a specific accessible object. - virtual wxAccessible* CreateAccessible(); - - // Sets the accessible object. - void SetAccessible(wxAccessible* accessible) ; - - // Returns the accessible object. - wxAccessible* GetAccessible() { return m_accessible; } - - // Returns the accessible object, creating if necessary. - wxAccessible* GetOrCreateAccessible() ; -#endif - - - // Set window transparency if the platform supports it - virtual bool SetTransparent(wxByte WXUNUSED(alpha)) { return false; } - virtual bool CanSetTransparent() { return false; } - - - // implementation - // -------------- - - // event handlers - void OnSysColourChanged( wxSysColourChangedEvent& event ); - void OnInitDialog( wxInitDialogEvent &event ); - void OnMiddleClick( wxMouseEvent& event ); -#if wxUSE_HELP - void OnHelp(wxHelpEvent& event); -#endif // wxUSE_HELP - - // virtual function for implementing internal idle - // behaviour - virtual void OnInternalIdle(); - - // Send idle event to window and all subwindows - // Returns true if more idle time is requested. - virtual bool SendIdleEvents(wxIdleEvent& event); - - // get the handle of the window for the underlying window system: this - // is only used for wxWin itself or for user code which wants to call - // platform-specific APIs - virtual WXWidget GetHandle() const = 0; - // associate the window with a new native handle - virtual void AssociateHandle(WXWidget WXUNUSED(handle)) { } - // dissociate the current native handle from the window - virtual void DissociateHandle() { } - -#if wxUSE_PALETTE - // Store the palette used by DCs in wxWindow so that the dcs can share - // a palette. And we can respond to palette messages. - wxPalette GetPalette() const { return m_palette; } - - // When palette is changed tell the DC to set the system palette to the - // new one. - void SetPalette(const wxPalette& pal); - - // return true if we have a specific palette - bool HasCustomPalette() const { return m_hasCustomPalette; } - - // return the first parent window with a custom palette or NULL - wxWindow *GetAncestorWithCustomPalette() const; -#endif // wxUSE_PALETTE - - // inherit the parents visual attributes if they had been explicitly set - // by the user (i.e. we don't inherit default attributes) and if we don't - // have our own explicitly set - virtual void InheritAttributes(); - - // returns false from here if this window doesn't want to inherit the - // parents colours even if InheritAttributes() would normally do it - // - // this just provides a simple way to customize InheritAttributes() - // behaviour in the most common case - virtual bool ShouldInheritColours() const { return false; } - - // returns true if the window can be positioned outside of parent's client - // area (normal windows can't, but e.g. menubar or statusbar can): - virtual bool CanBeOutsideClientArea() const { return false; } - - // returns true if the platform should explicitly apply a theme border. Currently - // used only by Windows - virtual bool CanApplyThemeBorder() const { return true; } - - // returns the main window of composite control; this is the window - // that FindFocus returns if the focus is in one of composite control's - // windows - virtual wxWindow *GetMainWindowOfCompositeControl() - { return (wxWindow*)this; } - - enum NavigationKind - { - Navigation_Tab, - Navigation_Accel - }; - - // If this function returns true, keyboard events of the given kind can't - // escape from it. A typical example of such "navigation domain" is a top - // level window because pressing TAB in one of them must not transfer focus - // to a different top level window. But it's not limited to them, e.g. MDI - // children frames are not top level windows (and their IsTopLevel() - // returns false) but still are self-contained navigation domains for the - // purposes of TAB navigation -- but not for the accelerators. - virtual bool IsTopNavigationDomain(NavigationKind WXUNUSED(kind)) const - { - return false; - } - - -protected: - // helper for the derived class Create() methods: the first overload, with - // validator parameter, should be used for child windows while the second - // one is used for top level ones - bool CreateBase(wxWindowBase *parent, - wxWindowID winid, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxPanelNameStr); - - bool CreateBase(wxWindowBase *parent, - wxWindowID winid, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name); - - // event handling specific to wxWindow - virtual bool TryBefore(wxEvent& event) wxOVERRIDE; - virtual bool TryAfter(wxEvent& event) wxOVERRIDE; - - enum WindowOrder - { - OrderBefore, // insert before the given window - OrderAfter // insert after the given window - }; - - // common part of GetPrev/NextSibling() - wxWindow *DoGetSibling(WindowOrder order) const; - - // common part of MoveBefore/AfterInTabOrder() - virtual void DoMoveInTabOrder(wxWindow *win, WindowOrder move); - - // implementation of Navigate() and NavigateIn() - virtual bool DoNavigateIn(int flags); - -#if wxUSE_CONSTRAINTS - // satisfy the constraints for the windows but don't set the window sizes - void SatisfyConstraints(); -#endif // wxUSE_CONSTRAINTS - - // Send the wxWindowDestroyEvent if not done yet and sets m_isBeingDeleted - // to true - void SendDestroyEvent(); - - // this method should be implemented to use operating system specific code - // to really enable/disable the widget, it will only be called when we - // really need to enable/disable window and so no additional checks on the - // widgets state are necessary - virtual void DoEnable(bool WXUNUSED(enable)) { } - - - // the window id - a number which uniquely identifies a window among - // its siblings unless it is wxID_ANY - wxWindowIDRef m_windowId; - - // the parent window of this window (or NULL) and the list of the children - // of this window - wxWindow *m_parent; - wxWindowList m_children; - - // the minimal allowed size for the window (no minimal size if variable(s) - // contain(s) wxDefaultCoord) - int m_minWidth, - m_minHeight, - m_maxWidth, - m_maxHeight; - - // event handler for this window: usually is just 'this' but may be - // changed with SetEventHandler() - wxEvtHandler *m_eventHandler; - -#if wxUSE_VALIDATORS - // associated validator or NULL if none - wxValidator *m_windowValidator; -#endif // wxUSE_VALIDATORS - -#if wxUSE_DRAG_AND_DROP - wxDropTarget *m_dropTarget; -#endif // wxUSE_DRAG_AND_DROP - - // visual window attributes - wxCursor m_cursor; - wxFont m_font; // see m_hasFont - wxColour m_backgroundColour, // m_hasBgCol - m_foregroundColour; // m_hasFgCol - -#if wxUSE_CARET - wxCaret *m_caret; -#endif // wxUSE_CARET - - // the region which should be repainted in response to paint event - wxRegion m_updateRegion; - -#if wxUSE_ACCEL - // the accelerator table for the window which translates key strokes into - // command events - wxAcceleratorTable m_acceleratorTable; -#endif // wxUSE_ACCEL - - // the tooltip for this window (may be NULL) -#if wxUSE_TOOLTIPS - wxToolTip *m_tooltip; -#endif // wxUSE_TOOLTIPS - - // constraints and sizers -#if wxUSE_CONSTRAINTS - // the constraints for this window or NULL - wxLayoutConstraints *m_constraints; - - // constraints this window is involved in - wxWindowList *m_constraintsInvolvedIn; -#endif // wxUSE_CONSTRAINTS - - // this window's sizer - wxSizer *m_windowSizer; - - // The sizer this window is a member of, if any - wxSizer *m_containingSizer; - - // Layout() window automatically when its size changes? - bool m_autoLayout:1; - - // window state - bool m_isShown:1; - bool m_isEnabled:1; - bool m_isBeingDeleted:1; - - // was the window colours/font explicitly changed by user? - bool m_hasBgCol:1; - bool m_hasFgCol:1; - bool m_hasFont:1; - - // and should it be inherited by children? - bool m_inheritBgCol:1; - bool m_inheritFgCol:1; - bool m_inheritFont:1; - - // window attributes - long m_windowStyle, - m_exStyle; - wxString m_windowName; - bool m_themeEnabled; - wxBackgroundStyle m_backgroundStyle; -#if wxUSE_PALETTE - wxPalette m_palette; - bool m_hasCustomPalette; -#endif // wxUSE_PALETTE - -#if wxUSE_ACCESSIBILITY - wxAccessible* m_accessible; -#endif - - // Virtual size (scrolling) - wxSize m_virtualSize; - - wxScrollHelper *m_scrollHelper; - - wxWindowVariant m_windowVariant ; - - // override this to change the default (i.e. used when no style is - // specified) border for the window class - virtual wxBorder GetDefaultBorder() const; - - // this allows you to implement standard control borders without - // repeating the code in different classes that are not derived from - // wxControl - virtual wxBorder GetDefaultBorderForControl() const { return wxBORDER_THEME; } - - // Get the default size for the new window if no explicit size given. TLWs - // have their own default size so this is just for non top-level windows. - static int WidthDefault(int w) { return w == wxDefaultCoord ? 20 : w; } - static int HeightDefault(int h) { return h == wxDefaultCoord ? 20 : h; } - - - // Used to save the results of DoGetBestSize so it doesn't need to be - // recalculated each time the value is needed. - wxSize m_bestSizeCache; - - wxDEPRECATED_MSG("use SetInitialSize() instead.") - void SetBestSize(const wxSize& size); - wxDEPRECATED_MSG("use SetInitialSize() instead.") - virtual void SetInitialBestSize(const wxSize& size); - - - - // more pure virtual functions - // --------------------------- - - // NB: we must have DoSomething() function when Something() is an overloaded - // method: indeed, we can't just have "virtual Something()" in case when - // the function is overloaded because then we'd have to make virtual all - // the variants (otherwise only the virtual function may be called on a - // pointer to derived class according to C++ rules) which is, in - // general, absolutely not needed. So instead we implement all - // overloaded Something()s in terms of DoSomething() which will be the - // only one to be virtual. - - // text extent - virtual void DoGetTextExtent(const wxString& string, - int *x, int *y, - int *descent = NULL, - int *externalLeading = NULL, - const wxFont *font = NULL) const = 0; - - // coordinates translation - virtual void DoClientToScreen( int *x, int *y ) const = 0; - virtual void DoScreenToClient( int *x, int *y ) const = 0; - - virtual wxHitTest DoHitTest(wxCoord x, wxCoord y) const; - - // capture/release the mouse, used by Capture/ReleaseMouse() - virtual void DoCaptureMouse() = 0; - virtual void DoReleaseMouse() = 0; - - // retrieve the position/size of the window - virtual void DoGetPosition(int *x, int *y) const = 0; - virtual void DoGetScreenPosition(int *x, int *y) const; - virtual void DoGetSize(int *width, int *height) const = 0; - virtual void DoGetClientSize(int *width, int *height) const = 0; - - // get the size which best suits the window: for a control, it would be - // the minimal size which doesn't truncate the control, for a panel - the - // same size as it would have after a call to Fit() - virtual wxSize DoGetBestSize() const; - - // this method can be overridden instead of DoGetBestSize() if it computes - // the best size of the client area of the window only, excluding borders - // (GetBorderSize() will be used to add them) - virtual wxSize DoGetBestClientSize() const { return wxDefaultSize; } - - // These two methods can be overridden to implement intelligent - // width-for-height and/or height-for-width best size determination for the - // window. By default the fixed best size is used. - virtual int DoGetBestClientHeight(int WXUNUSED(width)) const - { return wxDefaultCoord; } - virtual int DoGetBestClientWidth(int WXUNUSED(height)) const - { return wxDefaultCoord; } - - // this is the virtual function to be overridden in any derived class which - // wants to change how SetSize() or Move() works - it is called by all - // versions of these functions in the base class - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO) = 0; - - // same as DoSetSize() for the client size - virtual void DoSetClientSize(int width, int height) = 0; - - virtual void DoSetSizeHints( int minW, int minH, - int maxW, int maxH, - int incW, int incH ); - - // return the total size of the window borders, i.e. the sum of the widths - // of the left and the right border in the x component of the returned size - // and the sum of the heights of the top and bottom borders in the y one - // - // NB: this is currently only implemented properly for wxMSW, wxGTK and - // wxUniv and doesn't behave correctly in the presence of scrollbars in - // the other ports - virtual wxSize DoGetBorderSize() const; - - // move the window to the specified location and resize it: this is called - // from both DoSetSize() and DoSetClientSize() and would usually just - // reposition this window except for composite controls which will want to - // arrange themselves inside the given rectangle - // - // Important note: the coordinates passed to this method are in parent's - // *window* coordinates and not parent's client coordinates (as the values - // passed to DoSetSize and returned by DoGetPosition are)! - virtual void DoMoveWindow(int x, int y, int width, int height) = 0; - - // centre the window in the specified direction on parent, note that - // wxCENTRE_ON_SCREEN shouldn't be specified here, it only makes sense for - // TLWs - virtual void DoCentre(int dir); - -#if wxUSE_TOOLTIPS - virtual void DoSetToolTipText( const wxString &tip ); - virtual void DoSetToolTip( wxToolTip *tip ); -#endif // wxUSE_TOOLTIPS - -#if wxUSE_MENUS - virtual bool DoPopupMenu(wxMenu *menu, int x, int y) = 0; -#endif // wxUSE_MENUS - - // Makes an adjustment to the window position to make it relative to the - // parents client area, e.g. if the parent is a frame with a toolbar, its - // (0, 0) is just below the toolbar - virtual void AdjustForParentClientOrigin(int& x, int& y, - int sizeFlags = 0) const; - - // implements the window variants - virtual void DoSetWindowVariant( wxWindowVariant variant ) ; - - - // really freeze/thaw the window (should have port-specific implementation) - virtual void DoFreeze() { } - virtual void DoThaw() { } - - - // Must be called when mouse capture is lost to send - // wxMouseCaptureLostEvent to windows on capture stack. - static void NotifyCaptureLost(); - -private: - // recursively call our own and our children DoEnable() when the - // enabled/disabled status changed because a parent window had been - // enabled/disabled - void NotifyWindowOnEnableChange(bool enabled); - -#if wxUSE_MENUS - // temporary event handlers used by GetPopupMenuSelectionFromUser() - void InternalOnPopupMenu(wxCommandEvent& event); - void InternalOnPopupMenuUpdate(wxUpdateUIEvent& event); - - // implementation of the public GetPopupMenuSelectionFromUser() method - int DoGetPopupMenuSelectionFromUser(wxMenu& menu, int x, int y); -#endif // wxUSE_MENUS - - // layout the window children when its size changes unless this was - // explicitly disabled with SetAutoLayout(false) - void InternalOnSize(wxSizeEvent& event); - - // base for dialog unit conversion, i.e. average character size - wxSize GetDlgUnitBase() const; - - - // number of Freeze() calls minus the number of Thaw() calls: we're frozen - // (i.e. not being updated) if it is positive - unsigned int m_freezeCount; - - - wxDECLARE_ABSTRACT_CLASS(wxWindowBase); - wxDECLARE_NO_COPY_CLASS(wxWindowBase); - wxDECLARE_EVENT_TABLE(); -}; - - - -// Inlines for some deprecated methods -inline wxSize wxWindowBase::GetBestFittingSize() const -{ - return GetEffectiveMinSize(); -} - -inline void wxWindowBase::SetBestFittingSize(const wxSize& size) -{ - SetInitialSize(size); -} - -inline void wxWindowBase::SetBestSize(const wxSize& size) -{ - SetInitialSize(size); -} - -inline void wxWindowBase::SetInitialBestSize(const wxSize& size) -{ - SetInitialSize(size); -} - - -// ---------------------------------------------------------------------------- -// now include the declaration of wxWindow class -// ---------------------------------------------------------------------------- - -// include the declaration of the platform-specific class -#if defined(__WXMSW__) - #ifdef __WXUNIVERSAL__ - #define wxWindowNative wxWindowMSW - #else // !wxUniv - #define wxWindowMSW wxWindow - #endif // wxUniv/!wxUniv - #include "wx/msw/window.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/window.h" -#elif defined(__WXGTK20__) - #ifdef __WXUNIVERSAL__ - #define wxWindowNative wxWindowGTK - #else // !wxUniv - #define wxWindowGTK wxWindow - #endif // wxUniv - #include "wx/gtk/window.h" - #ifdef __WXGTK3__ - #define wxHAVE_DPI_INDEPENDENT_PIXELS - #endif -#elif defined(__WXGTK__) - #ifdef __WXUNIVERSAL__ - #define wxWindowNative wxWindowGTK - #else // !wxUniv - #define wxWindowGTK wxWindow - #endif // wxUniv - #include "wx/gtk1/window.h" -#elif defined(__WXX11__) - #ifdef __WXUNIVERSAL__ - #define wxWindowNative wxWindowX11 - #else // !wxUniv - #define wxWindowX11 wxWindow - #endif // wxUniv - #include "wx/x11/window.h" -#elif defined(__WXDFB__) - #define wxWindowNative wxWindowDFB - #include "wx/dfb/window.h" -#elif defined(__WXMAC__) - #ifdef __WXUNIVERSAL__ - #define wxWindowNative wxWindowMac - #else // !wxUniv - #define wxWindowMac wxWindow - #endif // wxUniv - #include "wx/osx/window.h" - #define wxHAVE_DPI_INDEPENDENT_PIXELS -#elif defined(__WXQT__) - #ifdef __WXUNIVERSAL__ - #define wxWindowNative wxWindowQt - #else // !wxUniv - #define wxWindowQt wxWindow - #endif // wxUniv - #include "wx/qt/window.h" -#endif - -// for wxUniversal, we now derive the real wxWindow from wxWindow<platform>, -// for the native ports we already have defined it above -#if defined(__WXUNIVERSAL__) - #ifndef wxWindowNative - #error "wxWindowNative must be defined above!" - #endif - - #include "wx/univ/window.h" -#endif // wxUniv - -// ---------------------------------------------------------------------------- -// inline functions which couldn't be declared in the class body because of -// forward dependencies -// ---------------------------------------------------------------------------- - -inline wxWindow *wxWindowBase::GetGrandParent() const -{ - return m_parent ? m_parent->GetParent() : NULL; -} - -#ifdef wxHAVE_DPI_INDEPENDENT_PIXELS - -// FromDIP() and ToDIP() become trivial in this case, so make them inline to -// avoid any overhead. - -/* static */ -inline wxSize -wxWindowBase::FromDIP(const wxSize& sz, const wxWindowBase* WXUNUSED(w)) -{ - return sz; -} - -/* static */ -inline wxSize -wxWindowBase::ToDIP(const wxSize& sz, const wxWindowBase* WXUNUSED(w)) -{ - return sz; -} - -#endif // wxHAVE_DPI_INDEPENDENT_PIXELS - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -// Find the wxWindow at the current mouse position, also returning the mouse -// position. -extern WXDLLIMPEXP_CORE wxWindow* wxFindWindowAtPointer(wxPoint& pt); - -// Get the current mouse position. -extern WXDLLIMPEXP_CORE wxPoint wxGetMousePosition(); - -// get the currently active window of this application or NULL -extern WXDLLIMPEXP_CORE wxWindow *wxGetActiveWindow(); - -// get the (first) top level parent window -WXDLLIMPEXP_CORE wxWindow* wxGetTopLevelParent(wxWindow *win); - -#if wxUSE_ACCESSIBILITY -// ---------------------------------------------------------------------------- -// accessible object for windows -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxWindowAccessible: public wxAccessible -{ -public: - wxWindowAccessible(wxWindow* win): wxAccessible(win) { if (win) win->SetAccessible(this); } - virtual ~wxWindowAccessible() {} - -// Overridables - - // Can return either a child object, or an integer - // representing the child element, starting from 1. - virtual wxAccStatus HitTest(const wxPoint& pt, int* childId, wxAccessible** childObject); - - // Returns the rectangle for this object (id = 0) or a child element (id > 0). - virtual wxAccStatus GetLocation(wxRect& rect, int elementId); - - // Navigates from fromId to toId/toObject. - virtual wxAccStatus Navigate(wxNavDir navDir, int fromId, - int* toId, wxAccessible** toObject); - - // Gets the name of the specified object. - virtual wxAccStatus GetName(int childId, wxString* name); - - // Gets the number of children. - virtual wxAccStatus GetChildCount(int* childCount); - - // Gets the specified child (starting from 1). - // If *child is NULL and return value is wxACC_OK, - // this means that the child is a simple element and - // not an accessible object. - virtual wxAccStatus GetChild(int childId, wxAccessible** child); - - // Gets the parent, or NULL. - virtual wxAccStatus GetParent(wxAccessible** parent); - - // Performs the default action. childId is 0 (the action for this object) - // or > 0 (the action for a child). - // Return wxACC_NOT_SUPPORTED if there is no default action for this - // window (e.g. an edit control). - virtual wxAccStatus DoDefaultAction(int childId); - - // Gets the default action for this object (0) or > 0 (the action for a child). - // Return wxACC_OK even if there is no action. actionName is the action, or the empty - // string if there is no action. - // The retrieved string describes the action that is performed on an object, - // not what the object does as a result. For example, a toolbar button that prints - // a document has a default action of "Press" rather than "Prints the current document." - virtual wxAccStatus GetDefaultAction(int childId, wxString* actionName); - - // Returns the description for this object or a child. - virtual wxAccStatus GetDescription(int childId, wxString* description); - - // Returns help text for this object or a child, similar to tooltip text. - virtual wxAccStatus GetHelpText(int childId, wxString* helpText); - - // Returns the keyboard shortcut for this object or child. - // Return e.g. ALT+K - virtual wxAccStatus GetKeyboardShortcut(int childId, wxString* shortcut); - - // Returns a role constant. - virtual wxAccStatus GetRole(int childId, wxAccRole* role); - - // Returns a state constant. - virtual wxAccStatus GetState(int childId, long* state); - - // Returns a localized string representing the value for the object - // or child. - virtual wxAccStatus GetValue(int childId, wxString* strValue); - - // Selects the object or child. - virtual wxAccStatus Select(int childId, wxAccSelectionFlags selectFlags); - - // Gets the window with the keyboard focus. - // If childId is 0 and child is NULL, no object in - // this subhierarchy has the focus. - // If this object has the focus, child should be 'this'. - virtual wxAccStatus GetFocus(int* childId, wxAccessible** child); - -#if wxUSE_VARIANT - // Gets a variant representing the selected children - // of this object. - // Acceptable values: - // - a null variant (IsNull() returns true) - // - a list variant (GetType() == wxT("list") - // - an integer representing the selected child element, - // or 0 if this object is selected (GetType() == wxT("long") - // - a "void*" pointer to a wxAccessible child object - virtual wxAccStatus GetSelections(wxVariant* selections); -#endif // wxUSE_VARIANT -}; - -#endif // wxUSE_ACCESSIBILITY - - -#endif // _WX_WINDOW_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/windowid.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/windowid.h deleted file mode 100644 index 0c174b5f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/windowid.h +++ /dev/null @@ -1,189 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/windowid.h -// Purpose: wxWindowID class - a class for managing window ids -// Author: Brian Vanderburg II -// Created: 2007-09-21 -// Copyright: (c) 2007 Brian Vanderburg II -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WINDOWID_H_ -#define _WX_WINDOWID_H_ - -// NB: do not include defs.h as we are included from it - -typedef int wxWindowID; - -// ---------------------------------------------------------------------------- -// wxWindowIDRef: reference counted id value -// ---------------------------------------------------------------------------- - -// A wxWindowIDRef object wraps an id value and marks it as (un)used as -// necessary. All ids returned from wxWindow::NewControlId() should be assigned -// to an instance of this class to ensure that the id is marked as being in -// use. -// -// This class is always defined but it is trivial if wxUSE_AUTOID_MANAGEMENT is -// off. -class WXDLLIMPEXP_CORE wxWindowIDRef -{ -public: - // default ctor - wxWindowIDRef() - { - m_id = wxID_NONE; - } - - // ctor taking id values - wxWindowIDRef(int id) - { - Init(id); - } - - wxWindowIDRef(long id) - { - Init(wxWindowID(id)); - } - - wxWindowIDRef(const wxWindowIDRef& id) - { - Init(id.m_id); - } - - // dtor - ~wxWindowIDRef() - { - Assign(wxID_NONE); - } - - // assignment - wxWindowIDRef& operator=(int id) - { - Assign(id); - return *this; - } - - wxWindowIDRef& operator=(long id) - { - Assign(wxWindowID(id)); - return *this; - } - - wxWindowIDRef& operator=(const wxWindowIDRef& id) - { - if (&id != this) - Assign(id.m_id); - return *this; - } - - // access to the stored id value - wxWindowID GetValue() const - { - return m_id; - } - - operator wxWindowID() const - { - return m_id; - } - -private: -#if wxUSE_AUTOID_MANAGEMENT - // common part of all ctors: call Assign() for our new id - void Init(wxWindowID id) - { - // m_id must be initialized before calling Assign() - m_id = wxID_NONE; - Assign(id); - } - - // increase reference count of id, decrease the one of m_id - void Assign(wxWindowID id); -#else // !wxUSE_AUTOID_MANAGEMENT - // trivial stubs for the functions above - void Init(wxWindowID id) - { - m_id = id; - } - - void Assign(wxWindowID id) - { - m_id = id; - } -#endif // wxUSE_AUTOID_MANAGEMENT/!wxUSE_AUTOID_MANAGEMENT - - - wxWindowID m_id; -}; - -// comparison operators -inline bool operator==(const wxWindowIDRef& lhs, const wxWindowIDRef& rhs) -{ - return lhs.GetValue() == rhs.GetValue(); -} - -inline bool operator==(const wxWindowIDRef& lhs, int rhs) -{ - return lhs.GetValue() == rhs; -} - -inline bool operator==(const wxWindowIDRef& lhs, long rhs) -{ - return lhs.GetValue() == rhs; -} - -inline bool operator==(int lhs, const wxWindowIDRef& rhs) -{ - return rhs == lhs; -} - -inline bool operator==(long lhs, const wxWindowIDRef& rhs) -{ - return rhs == lhs; -} - -inline bool operator!=(const wxWindowIDRef& lhs, const wxWindowIDRef& rhs) -{ - return !(lhs == rhs); -} - -inline bool operator!=(const wxWindowIDRef& lhs, int rhs) -{ - return !(lhs == rhs); -} - -inline bool operator!=(const wxWindowIDRef& lhs, long rhs) -{ - return !(lhs == rhs); -} - -inline bool operator!=(int lhs, const wxWindowIDRef& rhs) -{ - return !(lhs == rhs); -} - -inline bool operator!=(long lhs, const wxWindowIDRef& rhs) -{ - return !(lhs == rhs); -} - -// ---------------------------------------------------------------------------- -// wxIdManager -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxIdManager -{ -public: - // This returns an id value and not an wxWindowIDRef. The returned value - // should be assigned a.s.a.p to a wxWindowIDRef. The IDs are marked as - // reserved so that another call to ReserveId before assigning the id to a - // wxWindowIDRef will not use the same ID - static wxWindowID ReserveId(int count = 1); - - // This will release an unused reserved ID. This should only be called - // if the ID returned by ReserveId was NOT assigned to a wxWindowIDRef - // for some purpose, maybe an early return from a function - static void UnreserveId(wxWindowID id, int count = 1); -}; - -#endif // _WX_WINDOWID_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/windowptr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/windowptr.h deleted file mode 100644 index bebcf6ad..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/windowptr.h +++ /dev/null @@ -1,63 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/windowptr.h -// Purpose: smart pointer for holding wxWindow instances -// Author: Vaclav Slavik -// Created: 2013-09-01 -// Copyright: (c) 2013 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WINDOWPTR_H_ -#define _WX_WINDOWPTR_H_ - -#include "wx/sharedptr.h" - -// ---------------------------------------------------------------------------- -// wxWindowPtr: A smart pointer with correct wxWindow destruction. -// ---------------------------------------------------------------------------- - -namespace wxPrivate -{ - -struct wxWindowDeleter -{ - void operator()(wxWindow *win) - { - win->Destroy(); - } -}; - -} // namespace wxPrivate - -template<typename T> -class wxWindowPtr : public wxSharedPtr<T> -{ -public: - typedef T element_type; - - wxEXPLICIT wxWindowPtr(element_type* win) - : wxSharedPtr<T>(win, wxPrivate::wxWindowDeleter()) - { - } - - wxWindowPtr() {} - wxWindowPtr(const wxWindowPtr& tocopy) : wxSharedPtr<T>(tocopy) {} - - wxWindowPtr& operator=(const wxWindowPtr& tocopy) - { - wxSharedPtr<T>::operator=(tocopy); - return *this; - } - - wxWindowPtr& operator=(element_type* win) - { - return operator=(wxWindowPtr(win)); - } - - void reset(T* ptr = NULL) - { - wxSharedPtr<T>::reset(ptr, wxPrivate::wxWindowDeleter()); - } -}; - -#endif // _WX_WINDOWPTR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/withimages.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/withimages.h deleted file mode 100644 index 89120d3e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/withimages.h +++ /dev/null @@ -1,96 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/withimages.h -// Purpose: Declaration of a simple wxWithImages class. -// Author: Vadim Zeitlin -// Created: 2011-08-17 -// Copyright: (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WITHIMAGES_H_ -#define _WX_WITHIMAGES_H_ - -#include "wx/defs.h" -#include "wx/icon.h" -#include "wx/imaglist.h" - -// ---------------------------------------------------------------------------- -// wxWithImages: mix-in class providing access to wxImageList. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxWithImages -{ -public: - enum - { - NO_IMAGE = -1 - }; - - wxWithImages() - { - m_imageList = NULL; - m_ownsImageList = false; - } - - virtual ~wxWithImages() - { - FreeIfNeeded(); - } - - // Sets the image list to use, it is *not* deleted by the control. - virtual void SetImageList(wxImageList* imageList) - { - FreeIfNeeded(); - m_imageList = imageList; - } - - // As SetImageList() but we will delete the image list ourselves. - void AssignImageList(wxImageList* imageList) - { - SetImageList(imageList); - m_ownsImageList = true; - } - - // Get pointer (may be NULL) to the associated image list. - wxImageList* GetImageList() const { return m_imageList; } - -protected: - // Return true if we have a valid image list. - bool HasImageList() const { return m_imageList != NULL; } - - // Return the image with the given index from the image list. - // - // If there is no image list or if index == NO_IMAGE, silently returns - // wxNullIcon. - wxIcon GetImage(int iconIndex) const - { - return m_imageList && iconIndex != NO_IMAGE - ? m_imageList->GetIcon(iconIndex) - : wxNullIcon; - } - -private: - // Free the image list if necessary, i.e. if we own it. - void FreeIfNeeded() - { - if ( m_ownsImageList ) - { - delete m_imageList; - m_imageList = NULL; - - // We don't own it any more. - m_ownsImageList = false; - } - } - - - // The associated image list or NULL. - wxImageList* m_imageList; - - // False by default, if true then we delete m_imageList. - bool m_ownsImageList; - - wxDECLARE_NO_COPY_CLASS(wxWithImages); -}; - -#endif // _WX_WITHIMAGES_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wizard.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wizard.h deleted file mode 100644 index 0adffd25..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wizard.h +++ /dev/null @@ -1,337 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/wizard.h -// Purpose: wxWizard class: a GUI control presenting the user with a -// sequence of dialogs which allows to simply perform some task -// Author: Vadim Zeitlin (partly based on work by Ron Kuris and Kevin B. -// Smith) -// Modified by: Robert Cavanaugh -// Added capability to use .WXR resource files in Wizard pages -// Added wxWIZARD_HELP event -// Robert Vazan (sizers) -// Created: 15.08.99 -// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WIZARD_H_ -#define _WX_WIZARD_H_ - -#include "wx/defs.h" - -#if wxUSE_WIZARDDLG - -// ---------------------------------------------------------------------------- -// headers and other simple declarations -// ---------------------------------------------------------------------------- - -#include "wx/dialog.h" // the base class -#include "wx/panel.h" // ditto -#include "wx/event.h" // wxEVT_XXX constants -#include "wx/bitmap.h" - -// Extended style to specify a help button -#define wxWIZARD_EX_HELPBUTTON 0x00000010 - -// Placement flags -#define wxWIZARD_VALIGN_TOP 0x01 -#define wxWIZARD_VALIGN_CENTRE 0x02 -#define wxWIZARD_VALIGN_BOTTOM 0x04 -#define wxWIZARD_HALIGN_LEFT 0x08 -#define wxWIZARD_HALIGN_CENTRE 0x10 -#define wxWIZARD_HALIGN_RIGHT 0x20 -#define wxWIZARD_TILE 0x40 - -// forward declarations -class WXDLLIMPEXP_FWD_ADV wxWizard; - -// ---------------------------------------------------------------------------- -// wxWizardPage is one of the wizards screen: it must know what are the -// following and preceding pages (which may be NULL for the first/last page). -// -// Other than GetNext/Prev() functions, wxWizardPage is just a panel and may be -// used as such (i.e. controls may be placed directly on it &c). -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxWizardPage : public wxPanel -{ -public: - wxWizardPage() { Init(); } - - // ctor accepts an optional bitmap which will be used for this page instead - // of the default one for this wizard (should be of the same size). Notice - // that no other parameters are needed because the wizard will resize and - // reposition the page anyhow - wxWizardPage(wxWizard *parent, - const wxBitmap& bitmap = wxNullBitmap); - - bool Create(wxWizard *parent, - const wxBitmap& bitmap = wxNullBitmap); - - // these functions are used by the wizard to show another page when the - // user chooses "Back" or "Next" button - virtual wxWizardPage *GetPrev() const = 0; - virtual wxWizardPage *GetNext() const = 0; - - // default GetBitmap() will just return m_bitmap which is ok in 99% of - // cases - override this method if you want to create the bitmap to be used - // dynamically or to do something even more fancy. It's ok to return - // wxNullBitmap from here - the default one will be used then. - virtual wxBitmap GetBitmap() const { return m_bitmap; } - -#if wxUSE_VALIDATORS - // Override the base functions to allow a validator to be assigned to this page. - virtual bool TransferDataToWindow() wxOVERRIDE - { - return GetValidator() ? GetValidator()->TransferToWindow() - : wxPanel::TransferDataToWindow(); - } - - virtual bool TransferDataFromWindow() wxOVERRIDE - { - return GetValidator() ? GetValidator()->TransferFromWindow() - : wxPanel::TransferDataFromWindow(); - } - - virtual bool Validate() wxOVERRIDE - { - return GetValidator() ? GetValidator()->Validate(this) - : wxPanel::Validate(); - } -#endif // wxUSE_VALIDATORS - -protected: - // common part of ctors: - void Init(); - - wxBitmap m_bitmap; - -private: - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxWizardPage); -}; - -// ---------------------------------------------------------------------------- -// wxWizardPageSimple just returns the pointers given to the ctor and is useful -// to create a simple wizard where the order of pages never changes. -// -// OTOH, it is also possible to dynamically decide which page to return (i.e. -// depending on the user's choices) as the wizard sample shows - in order to do -// this, you must derive from wxWizardPage directly. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxWizardPageSimple : public wxWizardPage -{ -public: - wxWizardPageSimple() { Init(); } - - // ctor takes the previous and next pages - wxWizardPageSimple(wxWizard *parent, - wxWizardPage *prev = NULL, - wxWizardPage *next = NULL, - const wxBitmap& bitmap = wxNullBitmap) - { - Create(parent, prev, next, bitmap); - } - - bool Create(wxWizard *parent = NULL, // let it be default ctor too - wxWizardPage *prev = NULL, - wxWizardPage *next = NULL, - const wxBitmap& bitmap = wxNullBitmap) - { - m_prev = prev; - m_next = next; - return wxWizardPage::Create(parent, bitmap); - } - - // the pointers may be also set later - but before starting the wizard - void SetPrev(wxWizardPage *prev) { m_prev = prev; } - void SetNext(wxWizardPage *next) { m_next = next; } - - // Convenience functions to make the pages follow each other without having - // to call their SetPrev() or SetNext() explicitly. - wxWizardPageSimple& Chain(wxWizardPageSimple* next) - { - SetNext(next); - next->SetPrev(this); - return *next; - } - - static void Chain(wxWizardPageSimple *first, wxWizardPageSimple *second) - { - wxCHECK_RET( first && second, - wxT("NULL passed to wxWizardPageSimple::Chain") ); - - first->SetNext(second); - second->SetPrev(first); - } - - // base class pure virtuals - virtual wxWizardPage *GetPrev() const wxOVERRIDE; - virtual wxWizardPage *GetNext() const wxOVERRIDE; - -private: - // common part of ctors: - void Init() - { - m_prev = m_next = NULL; - } - - // pointers are private, the derived classes shouldn't mess with them - - // just derive from wxWizardPage directly to implement different behaviour - wxWizardPage *m_prev, - *m_next; - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxWizardPageSimple); -}; - -// ---------------------------------------------------------------------------- -// wxWizard -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxWizardBase : public wxDialog -{ -public: - /* - The derived class (i.e. the real wxWizard) has a ctor and Create() - function taking the following arguments: - - wxWizard(wxWindow *parent, - int id = wxID_ANY, - const wxString& title = wxEmptyString, - const wxBitmap& bitmap = wxNullBitmap, - const wxPoint& pos = wxDefaultPosition, - long style = wxDEFAULT_DIALOG_STYLE); - */ - wxWizardBase() { } - - // executes the wizard starting from the given page, returns true if it was - // successfully finished, false if user cancelled it - virtual bool RunWizard(wxWizardPage *firstPage) = 0; - - // get the current page (NULL if RunWizard() isn't running) - virtual wxWizardPage *GetCurrentPage() const = 0; - - // set the min size which should be available for the pages: a - // wizard will take into account the size of the bitmap (if any) - // itself and will never be less than some predefined fixed size - virtual void SetPageSize(const wxSize& size) = 0; - - // get the size available for the page - virtual wxSize GetPageSize() const = 0; - - // set the best size for the wizard, i.e. make it big enough to contain all - // of the pages starting from the given one - // - // this function may be called several times and possible with different - // pages in which case it will only increase the page size if needed (this - // may be useful if not all pages are accessible from the first one by - // default) - virtual void FitToPage(const wxWizardPage *firstPage) = 0; - - // Adding pages to page area sizer enlarges wizard - virtual wxSizer *GetPageAreaSizer() const = 0; - - // Set border around page area. Default is 0 if you add at least one - // page to GetPageAreaSizer and 5 if you don't. - virtual void SetBorder(int border) = 0; - - // the methods below may be overridden by the derived classes to provide - // custom logic for determining the pages order - - virtual bool HasNextPage(wxWizardPage *page) - { return page->GetNext() != NULL; } - - virtual bool HasPrevPage(wxWizardPage *page) - { return page->GetPrev() != NULL; } - - /// Override these functions to stop InitDialog from calling TransferDataToWindow - /// for _all_ pages when the wizard starts. Instead 'ShowPage' will call - /// TransferDataToWindow for the first page only. - bool TransferDataToWindow() wxOVERRIDE { return true; } - bool TransferDataFromWindow() wxOVERRIDE { return true; } - bool Validate() wxOVERRIDE { return true; } - -private: - wxDECLARE_NO_COPY_CLASS(wxWizardBase); -}; - -// include the real class declaration -#include "wx/generic/wizard.h" - -// ---------------------------------------------------------------------------- -// wxWizardEvent class represents an event generated by the wizard: this event -// is first sent to the page itself and, if not processed there, goes up the -// window hierarchy as usual -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_ADV wxWizardEvent : public wxNotifyEvent -{ -public: - wxWizardEvent(wxEventType type = wxEVT_NULL, - int id = wxID_ANY, - bool direction = true, - wxWizardPage* page = NULL); - - // for EVT_WIZARD_PAGE_CHANGING, return true if we're going forward or - // false otherwise and for EVT_WIZARD_PAGE_CHANGED return true if we came - // from the previous page and false if we returned from the next one - // (this function doesn't make sense for CANCEL events) - bool GetDirection() const { return m_direction; } - - wxWizardPage* GetPage() const { return m_page; } - - virtual wxEvent *Clone() const wxOVERRIDE { return new wxWizardEvent(*this); } - -private: - bool m_direction; - wxWizardPage* m_page; - - wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxWizardEvent); -}; - -// ---------------------------------------------------------------------------- -// macros for handling wxWizardEvents -// ---------------------------------------------------------------------------- - -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_PAGE_CHANGED, wxWizardEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_PAGE_CHANGING, wxWizardEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_CANCEL, wxWizardEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_HELP, wxWizardEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_FINISHED, wxWizardEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_PAGE_SHOWN, wxWizardEvent ); -wxDECLARE_EXPORTED_EVENT( WXDLLIMPEXP_ADV, wxEVT_WIZARD_BEFORE_PAGE_CHANGED, wxWizardEvent ); - -typedef void (wxEvtHandler::*wxWizardEventFunction)(wxWizardEvent&); - -#define wxWizardEventHandler(func) \ - wxEVENT_HANDLER_CAST(wxWizardEventFunction, func) - -#define wx__DECLARE_WIZARDEVT(evt, id, fn) \ - wx__DECLARE_EVT1(wxEVT_WIZARD_ ## evt, id, wxWizardEventHandler(fn)) - -// notifies that the page has just been changed (can't be vetoed) -#define EVT_WIZARD_PAGE_CHANGED(id, fn) wx__DECLARE_WIZARDEVT(PAGE_CHANGED, id, fn) - -// the user pressed "<Back" or "Next>" button and the page is going to be -// changed - unless the event handler vetoes the event -#define EVT_WIZARD_PAGE_CHANGING(id, fn) wx__DECLARE_WIZARDEVT(PAGE_CHANGING, id, fn) - -// Called before GetNext/GetPrev is called, so that the handler can change state that will be -// used when GetNext/GetPrev is called. PAGE_CHANGING is called too late to influence GetNext/GetPrev. -#define EVT_WIZARD_BEFORE_PAGE_CHANGED(id, fn) wx__DECLARE_WIZARDEVT(BEFORE_PAGE_CHANGED, id, fn) - -// the user pressed "Cancel" button and the wizard is going to be dismissed - -// unless the event handler vetoes the event -#define EVT_WIZARD_CANCEL(id, fn) wx__DECLARE_WIZARDEVT(CANCEL, id, fn) - -// the user pressed "Finish" button and the wizard is going to be dismissed - -#define EVT_WIZARD_FINISHED(id, fn) wx__DECLARE_WIZARDEVT(FINISHED, id, fn) - -// the user pressed "Help" button -#define EVT_WIZARD_HELP(id, fn) wx__DECLARE_WIZARDEVT(HELP, id, fn) - -// the page was just shown and laid out -#define EVT_WIZARD_PAGE_SHOWN(id, fn) wx__DECLARE_WIZARDEVT(PAGE_SHOWN, id, fn) - -#endif // wxUSE_WIZARDDLG - -#endif // _WX_WIZARD_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wrapsizer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wrapsizer.h deleted file mode 100644 index f401c260..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wrapsizer.h +++ /dev/null @@ -1,99 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/wrapsizer.h -// Purpose: provide wrapping sizer for layout (wxWrapSizer) -// Author: Arne Steinarson -// Created: 2008-05-08 -// Copyright: (c) Arne Steinarson -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WRAPSIZER_H_ -#define _WX_WRAPSIZER_H_ - -#include "wx/sizer.h" - -// flags for wxWrapSizer -enum -{ - wxEXTEND_LAST_ON_EACH_LINE = 1, - // don't leave spacers in the beginning of a new row - wxREMOVE_LEADING_SPACES = 2, - - wxWRAPSIZER_DEFAULT_FLAGS = wxEXTEND_LAST_ON_EACH_LINE | - wxREMOVE_LEADING_SPACES -}; - -// ---------------------------------------------------------------------------- -// A box sizer that can wrap items on several lines when sum of widths exceed -// available line width. -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxWrapSizer : public wxBoxSizer -{ -public: - wxWrapSizer(int orient = wxHORIZONTAL, int flags = wxWRAPSIZER_DEFAULT_FLAGS); - virtual ~wxWrapSizer(); - - // override base class virtual methods - virtual wxSize CalcMin() wxOVERRIDE; - virtual void RecalcSizes() wxOVERRIDE; - - virtual bool InformFirstDirection(int direction, - int size, - int availableOtherDir) wxOVERRIDE; - -protected: - // This method is called to decide if an item represents empty space or - // not. We do this to avoid having space-only items first or last on a - // wrapped line (left alignment). - // - // By default only spacers are considered to be empty items but a derived - // class may override this item if some other kind of sizer elements should - // be also considered empty for some reason. - virtual bool IsSpaceItem(wxSizerItem *item) const - { - return item->IsSpacer(); - } - - // helpers of CalcMin() - void CalcMinFromMinor(int totMinor); - void CalcMinFromMajor(int totMajor); - void CalcMinUsingCurrentLayout(); - void CalcMinFittingSize(const wxSize& szBoundary); - void CalcMaxSingleItemSize(); - - // temporarily change the proportion of the last item of the N-th row to - // extend to the end of line if the appropriate flag is set - void AdjustLastRowItemProp(size_t n, wxSizerItem *itemLast); - - // remove all the items from m_rows - void ClearRows(); - - // return the N-th row sizer from m_rows creating it if necessary - wxSizer *GetRowSizer(size_t n); - - // should be called after completion of each row - void FinishRow(size_t n, int rowMajor, int rowMinor, wxSizerItem *itemLast); - - - const int m_flags; // Flags specified in the ctor - - int m_dirInform; // Direction for size information - int m_availSize; // Size available in m_dirInform direction - int m_availableOtherDir; // Size available in the other direction - bool m_lastUsed; // Indicates whether value from InformFirst... has - // been used yet - - // The sizes below are computed by RecalcSizes(), i.e. they don't have - // valid values during the initial call to CalcMin() and they are only - // valid for the current layout (i.e. the current number of rows) - int m_minSizeMinor; // Min size in minor direction - int m_maxSizeMajor; // Size of longest row - int m_minItemMajor; // Size of smallest item in major direction - - wxBoxSizer m_rows; // Sizer containing multiple rows of our items - - wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxWrapSizer); -}; - -#endif // _WX_WRAPSIZER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wupdlock.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wupdlock.h deleted file mode 100644 index eb799a82..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wupdlock.h +++ /dev/null @@ -1,36 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/wupdlock.h -// Purpose: wxWindowUpdateLocker prevents window redrawing -// Author: Vadim Zeitlin -// Created: 2006-03-06 -// Copyright: (c) 2006 Vadim Zeitlin <vadim@wxwindows.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WUPDLOCK_H_ -#define _WX_WUPDLOCK_H_ - -#include "wx/window.h" - -// ---------------------------------------------------------------------------- -// wxWindowUpdateLocker prevents updates to the window during its lifetime -// ---------------------------------------------------------------------------- - -class wxWindowUpdateLocker -{ -public: - // create an object preventing updates of the given window (which must have - // a lifetime at least as great as ours) - wxWindowUpdateLocker(wxWindow *win) : m_win(win) { win->Freeze(); } - - // dtor thaws the window to permit updates again - ~wxWindowUpdateLocker() { m_win->Thaw(); } - -private: - wxWindow *m_win; - - wxDECLARE_NO_COPY_CLASS(wxWindowUpdateLocker); -}; - -#endif // _WX_WUPDLOCK_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wx.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wx.h deleted file mode 100644 index 9f6a42cb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wx.h +++ /dev/null @@ -1,112 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/wx.h -// Purpose: wxWidgets central header including the most often used ones -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WX_H_ -#define _WX_WX_H_ - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/dynarray.h" -#include "wx/list.h" -#include "wx/hash.h" -#include "wx/string.h" -#include "wx/hashmap.h" -#include "wx/arrstr.h" -#include "wx/intl.h" -#include "wx/log.h" -#include "wx/event.h" -#include "wx/app.h" -#include "wx/utils.h" -#include "wx/stream.h" -#include "wx/memory.h" -#include "wx/math.h" -#include "wx/stopwatch.h" -#include "wx/timer.h" -#include "wx/module.h" -#include "wx/wxcrt.h" -#include "wx/wxcrtvararg.h" - -#if wxUSE_GUI - -#include "wx/window.h" -#include "wx/containr.h" -#include "wx/panel.h" -#include "wx/toplevel.h" -#include "wx/frame.h" -#include "wx/gdicmn.h" -#include "wx/gdiobj.h" -#include "wx/region.h" -#include "wx/bitmap.h" -#include "wx/image.h" -#include "wx/colour.h" -#include "wx/font.h" -#include "wx/dc.h" -#include "wx/dcclient.h" -#include "wx/dcmemory.h" -#include "wx/dcprint.h" -#include "wx/dcscreen.h" -#include "wx/button.h" -#include "wx/menuitem.h" -#include "wx/menu.h" -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/palette.h" -#include "wx/icon.h" -#include "wx/cursor.h" -#include "wx/dialog.h" -#include "wx/settings.h" -#include "wx/msgdlg.h" -#include "wx/dataobj.h" - -#include "wx/control.h" -#include "wx/ctrlsub.h" -#include "wx/bmpbuttn.h" -#include "wx/checkbox.h" -#include "wx/checklst.h" -#include "wx/choice.h" -#include "wx/scrolbar.h" -#include "wx/stattext.h" -#include "wx/statbmp.h" -#include "wx/statbox.h" -#include "wx/listbox.h" -#include "wx/radiobox.h" -#include "wx/radiobut.h" -#include "wx/textctrl.h" -#include "wx/slider.h" -#include "wx/gauge.h" -#include "wx/scrolwin.h" -#include "wx/dirdlg.h" -#include "wx/toolbar.h" -#include "wx/combobox.h" -#include "wx/layout.h" -#include "wx/sizer.h" -#include "wx/statusbr.h" -#include "wx/choicdlg.h" -#include "wx/textdlg.h" -#include "wx/filedlg.h" - -// this one is included by exactly one file (mdi.cpp) during wx build so even -// although we keep it here for the library users, don't include it to avoid -// bloating the PCH and (worse) rebuilding the entire library when it changes -// when building the library itself -#ifndef WXBUILDING - #include "wx/mdi.h" -#endif - -// always include, even if !wxUSE_VALIDATORS because we need wxDefaultValidator -#include "wx/validate.h" - -#if wxUSE_VALIDATORS - #include "wx/valtext.h" -#endif // wxUSE_VALIDATORS - -#endif // wxUSE_GUI - -#endif // _WX_WX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxchar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxchar.h deleted file mode 100644 index 597bbe15..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxchar.h +++ /dev/null @@ -1,18 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// Name: wx/wxchar.h -// Purpose: Declarations common to wx char/wchar_t usage (wide chars) -// Author: Joel Farley, Ove Kåven -// Modified by: Vadim Zeitlin, Robert Roebling, Ron Lee -// Created: 1998/06/12 -// Copyright: (c) 1998-2006 wxWidgets dev team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXCHAR_H_ -#define _WX_WXCHAR_H_ - -// This header used to define CRT functions wrappers in wxWidgets 2.8. This is -// now done in (headers included by) wx/crt.h, so include it for compatibility: -#include "wx/crt.h" - -#endif /* _WX_WXCHAR_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxcrt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxcrt.h deleted file mode 100644 index dbf55631..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxcrt.h +++ /dev/null @@ -1,980 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/wxcrt.h -// Purpose: Type-safe ANSI and Unicode builds compatible wrappers for -// CRT functions -// Author: Joel Farley, Ove Kaaven -// Modified by: Vadim Zeitlin, Robert Roebling, Ron Lee, Vaclav Slavik -// Created: 1998/06/12 -// Copyright: (c) 1998-2006 wxWidgets dev team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXCRT_H_ -#define _WX_WXCRT_H_ - -#include "wx/wxcrtbase.h" -#include "wx/string.h" - -#ifndef __WX_SETUP_H__ -// For non-configure builds assume vsscanf is available, if not Visual C -#if !defined (__VISUALC__) - #define HAVE_VSSCANF 1 -#endif -#endif - -// ============================================================================ -// misc functions -// ============================================================================ - -/* checks whether the passed in pointer is NULL and if the string is empty */ -inline bool wxIsEmpty(const char *s) { return !s || !*s; } -inline bool wxIsEmpty(const wchar_t *s) { return !s || !*s; } -inline bool wxIsEmpty(const wxScopedCharBuffer& s) { return wxIsEmpty(s.data()); } -inline bool wxIsEmpty(const wxScopedWCharBuffer& s) { return wxIsEmpty(s.data()); } -inline bool wxIsEmpty(const wxString& s) { return s.empty(); } -inline bool wxIsEmpty(const wxCStrData& s) { return s.AsString().empty(); } - - - -/* multibyte to wide char conversion functions and macros */ - -/* multibyte<->widechar conversion */ -WXDLLIMPEXP_BASE size_t wxMB2WC(wchar_t *buf, const char *psz, size_t n); -WXDLLIMPEXP_BASE size_t wxWC2MB(char *buf, const wchar_t *psz, size_t n); - -#if wxUSE_UNICODE - #define wxMB2WX wxMB2WC - #define wxWX2MB wxWC2MB - #define wxWC2WX wxStrncpy - #define wxWX2WC wxStrncpy -#else - #define wxMB2WX wxStrncpy - #define wxWX2MB wxStrncpy - #define wxWC2WX wxWC2MB - #define wxWX2WC wxMB2WC -#endif - - -// RN: We could do the usual tricky compiler detection here, -// and use their variant (such as wmemchr, etc.). The problem -// is that these functions are quite rare, even though they are -// part of the current POSIX standard. In addition, most compilers -// (including even MSC) inline them just like we do right in their -// headers. -// -#include <string.h> - -#if wxUSE_UNICODE - //implement our own wmem variants - inline wxChar* wxTmemchr(const wxChar* s, wxChar c, size_t l) - { - for(;l && *s != c;--l, ++s) {} - - if(l) - return const_cast<wxChar*>(s); - return NULL; - } - - inline int wxTmemcmp(const wxChar* sz1, const wxChar* sz2, size_t len) - { - for(; *sz1 == *sz2 && len; --len, ++sz1, ++sz2) {} - - if(len) - return *sz1 < *sz2 ? -1 : *sz1 > *sz2; - else - return 0; - } - - inline wxChar* wxTmemcpy(wxChar* szOut, const wxChar* szIn, size_t len) - { - return (wxChar*) memcpy(szOut, szIn, len * sizeof(wxChar)); - } - - inline wxChar* wxTmemmove(wxChar* szOut, const wxChar* szIn, size_t len) - { - return (wxChar*) memmove(szOut, szIn, len * sizeof(wxChar)); - } - - inline wxChar* wxTmemset(wxChar* szOut, wxChar cIn, size_t len) - { - wxChar* szRet = szOut; - - while (len--) - *szOut++ = cIn; - - return szRet; - } -#endif /* wxUSE_UNICODE */ - -// provide trivial wrappers for char* versions for both ANSI and Unicode builds -// (notice that these intentionally return "char *" and not "void *" unlike the -// standard memxxx() for symmetry with the wide char versions): -inline char* wxTmemchr(const char* s, char c, size_t len) - { return (char*)memchr(s, c, len); } -inline int wxTmemcmp(const char* sz1, const char* sz2, size_t len) - { return memcmp(sz1, sz2, len); } -inline char* wxTmemcpy(char* szOut, const char* szIn, size_t len) - { return (char*)memcpy(szOut, szIn, len); } -inline char* wxTmemmove(char* szOut, const char* szIn, size_t len) - { return (char*)memmove(szOut, szIn, len); } -inline char* wxTmemset(char* szOut, char cIn, size_t len) - { return (char*)memset(szOut, cIn, len); } - - -// ============================================================================ -// wx wrappers for CRT functions in both char* and wchar_t* versions -// ============================================================================ - -// A few notes on implementation of these wrappers: -// -// We need both char* and wchar_t* versions of functions like wxStrlen() for -// compatibility with both ANSI and Unicode builds. -// -// This makes passing wxString or c_str()/mb_str()/wc_str() result to them -// ambiguous, so we need to provide overrides for that as well (in cases where -// it makes sense). -// -// We can do this without problems for some functions (wxStrlen()), but in some -// cases, we can't stay compatible with both ANSI and Unicode builds, e.g. for -// wxStrcpy(const wxString&), which can only return either char* or wchar_t*. -// In these cases, we preserve ANSI build compatibility by returning char*. - -// ---------------------------------------------------------------------------- -// locale functions -// ---------------------------------------------------------------------------- - -// NB: we can't provide const wchar_t* (= wxChar*) overload, because calling -// wxSetlocale(category, NULL) -- which is a common thing to do -- would be -// ambiguous -WXDLLIMPEXP_BASE char* wxSetlocale(int category, const char *locale); -inline char* wxSetlocale(int category, const wxScopedCharBuffer& locale) - { return wxSetlocale(category, locale.data()); } -inline char* wxSetlocale(int category, const wxString& locale) - { return wxSetlocale(category, locale.mb_str()); } -inline char* wxSetlocale(int category, const wxCStrData& locale) - { return wxSetlocale(category, locale.AsCharBuf()); } - -// ---------------------------------------------------------------------------- -// string functions -// ---------------------------------------------------------------------------- - -/* safe version of strlen() (returns 0 if passed NULL pointer) */ -// NB: these are defined in wxcrtbase.h, see the comment there -// inline size_t wxStrlen(const char *s) { return s ? strlen(s) : 0; } -// inline size_t wxStrlen(const wchar_t *s) { return s ? wxCRT_Strlen_(s) : 0; } -inline size_t wxStrlen(const wxScopedCharBuffer& s) { return wxStrlen(s.data()); } -inline size_t wxStrlen(const wxScopedWCharBuffer& s) { return wxStrlen(s.data()); } -inline size_t wxStrlen(const wxString& s) { return s.length(); } -inline size_t wxStrlen(const wxCStrData& s) { return s.AsString().length(); } - -// this is a function new in 2.9 so we don't care about backwards compatibility and -// so don't need to support wxScopedCharBuffer/wxScopedWCharBuffer overloads -#if defined(wxCRT_StrnlenA) -inline size_t wxStrnlen(const char *str, size_t maxlen) { return wxCRT_StrnlenA(str, maxlen); } -#else -inline size_t wxStrnlen(const char *str, size_t maxlen) -{ - size_t n; - for ( n = 0; n < maxlen; n++ ) - if ( !str[n] ) - break; - - return n; -} -#endif - -#if defined(wxCRT_StrnlenW) -inline size_t wxStrnlen(const wchar_t *str, size_t maxlen) { return wxCRT_StrnlenW(str, maxlen); } -#else -inline size_t wxStrnlen(const wchar_t *str, size_t maxlen) -{ - size_t n; - for ( n = 0; n < maxlen; n++ ) - if ( !str[n] ) - break; - - return n; -} -#endif - -// NB: these are defined in wxcrtbase.h, see the comment there -// inline char* wxStrdup(const char *s) { return wxStrdupA(s); } -// inline wchar_t* wxStrdup(const wchar_t *s) { return wxStrdupW(s); } -inline char* wxStrdup(const wxScopedCharBuffer& s) { return wxStrdup(s.data()); } -inline wchar_t* wxStrdup(const wxScopedWCharBuffer& s) { return wxStrdup(s.data()); } -inline char* wxStrdup(const wxString& s) { return wxStrdup(s.mb_str()); } -inline char* wxStrdup(const wxCStrData& s) { return wxStrdup(s.AsCharBuf()); } - -inline char *wxStrcpy(char *dest, const char *src) - { return wxCRT_StrcpyA(dest, src); } -inline wchar_t *wxStrcpy(wchar_t *dest, const wchar_t *src) - { return wxCRT_StrcpyW(dest, src); } -inline char *wxStrcpy(char *dest, const wxString& src) - { return wxCRT_StrcpyA(dest, src.mb_str()); } -inline char *wxStrcpy(char *dest, const wxCStrData& src) - { return wxCRT_StrcpyA(dest, src.AsCharBuf()); } -inline char *wxStrcpy(char *dest, const wxScopedCharBuffer& src) - { return wxCRT_StrcpyA(dest, src.data()); } -inline wchar_t *wxStrcpy(wchar_t *dest, const wxString& src) - { return wxCRT_StrcpyW(dest, src.wc_str()); } -inline wchar_t *wxStrcpy(wchar_t *dest, const wxCStrData& src) - { return wxCRT_StrcpyW(dest, src.AsWCharBuf()); } -inline wchar_t *wxStrcpy(wchar_t *dest, const wxScopedWCharBuffer& src) - { return wxCRT_StrcpyW(dest, src.data()); } -inline char *wxStrcpy(char *dest, const wchar_t *src) - { return wxCRT_StrcpyA(dest, wxConvLibc.cWC2MB(src)); } -inline wchar_t *wxStrcpy(wchar_t *dest, const char *src) - { return wxCRT_StrcpyW(dest, wxConvLibc.cMB2WC(src)); } - -inline char *wxStrncpy(char *dest, const char *src, size_t n) - { return wxCRT_StrncpyA(dest, src, n); } -inline wchar_t *wxStrncpy(wchar_t *dest, const wchar_t *src, size_t n) - { return wxCRT_StrncpyW(dest, src, n); } -inline char *wxStrncpy(char *dest, const wxString& src, size_t n) - { return wxCRT_StrncpyA(dest, src.mb_str(), n); } -inline char *wxStrncpy(char *dest, const wxCStrData& src, size_t n) - { return wxCRT_StrncpyA(dest, src.AsCharBuf(), n); } -inline char *wxStrncpy(char *dest, const wxScopedCharBuffer& src, size_t n) - { return wxCRT_StrncpyA(dest, src.data(), n); } -inline wchar_t *wxStrncpy(wchar_t *dest, const wxString& src, size_t n) - { return wxCRT_StrncpyW(dest, src.wc_str(), n); } -inline wchar_t *wxStrncpy(wchar_t *dest, const wxCStrData& src, size_t n) - { return wxCRT_StrncpyW(dest, src.AsWCharBuf(), n); } -inline wchar_t *wxStrncpy(wchar_t *dest, const wxScopedWCharBuffer& src, size_t n) - { return wxCRT_StrncpyW(dest, src.data(), n); } -inline char *wxStrncpy(char *dest, const wchar_t *src, size_t n) - { return wxCRT_StrncpyA(dest, wxConvLibc.cWC2MB(src), n); } -inline wchar_t *wxStrncpy(wchar_t *dest, const char *src, size_t n) - { return wxCRT_StrncpyW(dest, wxConvLibc.cMB2WC(src), n); } - -// this is a function new in 2.9 so we don't care about backwards compatibility and -// so don't need to support wchar_t/char overloads -inline size_t wxStrlcpy(char *dest, const char *src, size_t n) -{ - const size_t len = wxCRT_StrlenA(src); - - if ( n ) - { - if ( n-- > len ) - n = len; - wxCRT_StrncpyA(dest, src, n); - dest[n] = '\0'; - } - - return len; -} -inline size_t wxStrlcpy(wchar_t *dest, const wchar_t *src, size_t n) -{ - const size_t len = wxCRT_StrlenW(src); - if ( n ) - { - if ( n-- > len ) - n = len; - wxCRT_StrncpyW(dest, src, n); - dest[n] = L'\0'; - } - - return len; -} - -inline char *wxStrcat(char *dest, const char *src) - { return wxCRT_StrcatA(dest, src); } -inline wchar_t *wxStrcat(wchar_t *dest, const wchar_t *src) - { return wxCRT_StrcatW(dest, src); } -inline char *wxStrcat(char *dest, const wxString& src) - { return wxCRT_StrcatA(dest, src.mb_str()); } -inline char *wxStrcat(char *dest, const wxCStrData& src) - { return wxCRT_StrcatA(dest, src.AsCharBuf()); } -inline char *wxStrcat(char *dest, const wxScopedCharBuffer& src) - { return wxCRT_StrcatA(dest, src.data()); } -inline wchar_t *wxStrcat(wchar_t *dest, const wxString& src) - { return wxCRT_StrcatW(dest, src.wc_str()); } -inline wchar_t *wxStrcat(wchar_t *dest, const wxCStrData& src) - { return wxCRT_StrcatW(dest, src.AsWCharBuf()); } -inline wchar_t *wxStrcat(wchar_t *dest, const wxScopedWCharBuffer& src) - { return wxCRT_StrcatW(dest, src.data()); } -inline char *wxStrcat(char *dest, const wchar_t *src) - { return wxCRT_StrcatA(dest, wxConvLibc.cWC2MB(src)); } -inline wchar_t *wxStrcat(wchar_t *dest, const char *src) - { return wxCRT_StrcatW(dest, wxConvLibc.cMB2WC(src)); } - -inline char *wxStrncat(char *dest, const char *src, size_t n) - { return wxCRT_StrncatA(dest, src, n); } -inline wchar_t *wxStrncat(wchar_t *dest, const wchar_t *src, size_t n) - { return wxCRT_StrncatW(dest, src, n); } -inline char *wxStrncat(char *dest, const wxString& src, size_t n) - { return wxCRT_StrncatA(dest, src.mb_str(), n); } -inline char *wxStrncat(char *dest, const wxCStrData& src, size_t n) - { return wxCRT_StrncatA(dest, src.AsCharBuf(), n); } -inline char *wxStrncat(char *dest, const wxScopedCharBuffer& src, size_t n) - { return wxCRT_StrncatA(dest, src.data(), n); } -inline wchar_t *wxStrncat(wchar_t *dest, const wxString& src, size_t n) - { return wxCRT_StrncatW(dest, src.wc_str(), n); } -inline wchar_t *wxStrncat(wchar_t *dest, const wxCStrData& src, size_t n) - { return wxCRT_StrncatW(dest, src.AsWCharBuf(), n); } -inline wchar_t *wxStrncat(wchar_t *dest, const wxScopedWCharBuffer& src, size_t n) - { return wxCRT_StrncatW(dest, src.data(), n); } -inline char *wxStrncat(char *dest, const wchar_t *src, size_t n) - { return wxCRT_StrncatA(dest, wxConvLibc.cWC2MB(src), n); } -inline wchar_t *wxStrncat(wchar_t *dest, const char *src, size_t n) - { return wxCRT_StrncatW(dest, wxConvLibc.cMB2WC(src), n); } - - -#define WX_STR_DECL(name, T1, T2) name(T1 s1, T2 s2) -#define WX_STR_CALL(func, a1, a2) func(a1, a2) - -// This macro defines string function for all possible variants of arguments, -// except for those taking wxString or wxCStrData as second argument. -// Parameters: -// rettype - return type -// name - name of the (overloaded) function to define -// crtA - function to call for char* versions (takes two arguments) -// crtW - ditto for wchar_t* function -// forString - function to call when the *first* argument is wxString; -// the second argument can be any string type, so this is -// typically a template -#define WX_STR_FUNC_NO_INVERT(rettype, name, crtA, crtW, forString) \ - inline rettype WX_STR_DECL(name, const char *, const char *) \ - { return WX_STR_CALL(crtA, s1, s2); } \ - inline rettype WX_STR_DECL(name, const char *, const wchar_t *) \ - { return WX_STR_CALL(forString, wxString(s1), wxString(s2)); } \ - inline rettype WX_STR_DECL(name, const char *, const wxScopedCharBuffer&) \ - { return WX_STR_CALL(crtA, s1, s2.data()); } \ - inline rettype WX_STR_DECL(name, const char *, const wxScopedWCharBuffer&) \ - { return WX_STR_CALL(forString, wxString(s1), s2.data()); } \ - \ - inline rettype WX_STR_DECL(name, const wchar_t *, const wchar_t *) \ - { return WX_STR_CALL(crtW, s1, s2); } \ - inline rettype WX_STR_DECL(name, const wchar_t *, const char *) \ - { return WX_STR_CALL(forString, wxString(s1), wxString(s2)); } \ - inline rettype WX_STR_DECL(name, const wchar_t *, const wxScopedWCharBuffer&) \ - { return WX_STR_CALL(crtW, s1, s2.data()); } \ - inline rettype WX_STR_DECL(name, const wchar_t *, const wxScopedCharBuffer&) \ - { return WX_STR_CALL(forString, wxString(s1), s2.data()); } \ - \ - inline rettype WX_STR_DECL(name, const wxScopedCharBuffer&, const char *) \ - { return WX_STR_CALL(crtA, s1.data(), s2); } \ - inline rettype WX_STR_DECL(name, const wxScopedCharBuffer&, const wchar_t *) \ - { return WX_STR_CALL(forString, wxString(s1), wxString(s2)); } \ - inline rettype WX_STR_DECL(name, const wxScopedCharBuffer&, const wxScopedCharBuffer&)\ - { return WX_STR_CALL(crtA, s1.data(), s2.data()); } \ - inline rettype WX_STR_DECL(name, const wxScopedCharBuffer&, const wxScopedWCharBuffer&) \ - { return WX_STR_CALL(forString, wxString(s1), wxString(s2)); } \ - \ - inline rettype WX_STR_DECL(name, const wxScopedWCharBuffer&, const wchar_t *) \ - { return WX_STR_CALL(crtW, s1.data(), s2); } \ - inline rettype WX_STR_DECL(name, const wxScopedWCharBuffer&, const char *) \ - { return WX_STR_CALL(forString, wxString(s1), wxString(s2)); } \ - inline rettype WX_STR_DECL(name, const wxScopedWCharBuffer&, const wxScopedWCharBuffer&) \ - { return WX_STR_CALL(crtW, s1.data(), s2.data()); } \ - inline rettype WX_STR_DECL(name, const wxScopedWCharBuffer&, const wxScopedCharBuffer&) \ - { return WX_STR_CALL(forString, wxString(s1), wxString(s2)); } \ - \ - inline rettype WX_STR_DECL(name, const wxString&, const char*) \ - { return WX_STR_CALL(forString, s1, s2); } \ - inline rettype WX_STR_DECL(name, const wxString&, const wchar_t*) \ - { return WX_STR_CALL(forString, s1, s2); } \ - inline rettype WX_STR_DECL(name, const wxString&, const wxScopedCharBuffer&) \ - { return WX_STR_CALL(forString, s1, s2); } \ - inline rettype WX_STR_DECL(name, const wxString&, const wxScopedWCharBuffer&) \ - { return WX_STR_CALL(forString, s1, s2); } \ - inline rettype WX_STR_DECL(name, const wxString&, const wxString&) \ - { return WX_STR_CALL(forString, s1, s2); } \ - inline rettype WX_STR_DECL(name, const wxString&, const wxCStrData&) \ - { return WX_STR_CALL(forString, s1, s2); } \ - \ - inline rettype WX_STR_DECL(name, const wxCStrData&, const char*) \ - { return WX_STR_CALL(forString, s1.AsString(), s2); } \ - inline rettype WX_STR_DECL(name, const wxCStrData&, const wchar_t*) \ - { return WX_STR_CALL(forString, s1.AsString(), s2); } \ - inline rettype WX_STR_DECL(name, const wxCStrData&, const wxScopedCharBuffer&) \ - { return WX_STR_CALL(forString, s1.AsString(), s2); } \ - inline rettype WX_STR_DECL(name, const wxCStrData&, const wxScopedWCharBuffer&) \ - { return WX_STR_CALL(forString, s1.AsString(), s2); } \ - inline rettype WX_STR_DECL(name, const wxCStrData&, const wxString&) \ - { return WX_STR_CALL(forString, s1.AsString(), s2); } \ - inline rettype WX_STR_DECL(name, const wxCStrData&, const wxCStrData&) \ - { return WX_STR_CALL(forString, s1.AsString(), s2); } - -// This defines strcmp-like function, i.e. one returning the result of -// comparison; see WX_STR_FUNC_NO_INVERT for explanation of the arguments -#define WX_STRCMP_FUNC(name, crtA, crtW, forString) \ - WX_STR_FUNC_NO_INVERT(int, name, crtA, crtW, forString) \ - \ - inline int WX_STR_DECL(name, const char *, const wxCStrData&) \ - { return -WX_STR_CALL(forString, s2.AsString(), s1); } \ - inline int WX_STR_DECL(name, const char *, const wxString&) \ - { return -WX_STR_CALL(forString, s2, s1); } \ - \ - inline int WX_STR_DECL(name, const wchar_t *, const wxCStrData&) \ - { return -WX_STR_CALL(forString, s2.AsString(), s1); } \ - inline int WX_STR_DECL(name, const wchar_t *, const wxString&) \ - { return -WX_STR_CALL(forString, s2, s1); } \ - \ - inline int WX_STR_DECL(name, const wxScopedCharBuffer&, const wxCStrData&) \ - { return -WX_STR_CALL(forString, s2.AsString(), s1.data()); } \ - inline int WX_STR_DECL(name, const wxScopedCharBuffer&, const wxString&) \ - { return -WX_STR_CALL(forString, s2, s1.data()); } \ - \ - inline int WX_STR_DECL(name, const wxScopedWCharBuffer&, const wxCStrData&) \ - { return -WX_STR_CALL(forString, s2.AsString(), s1.data()); } \ - inline int WX_STR_DECL(name, const wxScopedWCharBuffer&, const wxString&) \ - { return -WX_STR_CALL(forString, s2, s1.data()); } - - -// This defines a string function that is *not* strcmp-like, i.e. doesn't -// return the result of comparison and so if the second argument is a string, -// it has to be converted to char* or wchar_t* -#define WX_STR_FUNC(rettype, name, crtA, crtW, forString) \ - WX_STR_FUNC_NO_INVERT(rettype, name, crtA, crtW, forString) \ - \ - inline rettype WX_STR_DECL(name, const char *, const wxCStrData&) \ - { return WX_STR_CALL(crtA, s1, s2.AsCharBuf()); } \ - inline rettype WX_STR_DECL(name, const char *, const wxString&) \ - { return WX_STR_CALL(crtA, s1, s2.mb_str()); } \ - \ - inline rettype WX_STR_DECL(name, const wchar_t *, const wxCStrData&) \ - { return WX_STR_CALL(crtW, s1, s2.AsWCharBuf()); } \ - inline rettype WX_STR_DECL(name, const wchar_t *, const wxString&) \ - { return WX_STR_CALL(crtW, s1, s2.wc_str()); } \ - \ - inline rettype WX_STR_DECL(name, const wxScopedCharBuffer&, const wxCStrData&) \ - { return WX_STR_CALL(crtA, s1.data(), s2.AsCharBuf()); } \ - inline rettype WX_STR_DECL(name, const wxScopedCharBuffer&, const wxString&) \ - { return WX_STR_CALL(crtA, s1.data(), s2.mb_str()); } \ - \ - inline rettype WX_STR_DECL(name, const wxScopedWCharBuffer&, const wxCStrData&) \ - { return WX_STR_CALL(crtW, s1.data(), s2.AsWCharBuf()); } \ - inline rettype WX_STR_DECL(name, const wxScopedWCharBuffer&, const wxString&) \ - { return WX_STR_CALL(crtW, s1.data(), s2.wc_str()); } - -template<typename T> -inline int wxStrcmp_String(const wxString& s1, const T& s2) - { return s1.compare(s2); } -WX_STRCMP_FUNC(wxStrcmp, wxCRT_StrcmpA, wxCRT_StrcmpW, wxStrcmp_String) - -template<typename T> -inline int wxStricmp_String(const wxString& s1, const T& s2) - { return s1.CmpNoCase(s2); } -WX_STRCMP_FUNC(wxStricmp, wxCRT_StricmpA, wxCRT_StricmpW, wxStricmp_String) - -#if defined(wxCRT_StrcollA) && defined(wxCRT_StrcollW) - -// GCC 3.4 and other compilers have a bug that causes it to fail compilation if -// the template's implementation uses overloaded function declared later (see -// the wxStrcoll() call in wxStrcoll_String<T>()), so we have to -// forward-declare the template and implement it below WX_STRCMP_FUNC. OTOH, -// this causes problems with GCC visibility in newer GCC versions. -#if !(wxCHECK_GCC_VERSION(3,5) && !wxCHECK_GCC_VERSION(4,7)) || defined(__clang__) - #define wxNEEDS_DECL_BEFORE_TEMPLATE -#endif - -#ifdef wxNEEDS_DECL_BEFORE_TEMPLATE -template<typename T> -inline int wxStrcoll_String(const wxString& s1, const T& s2); -WX_STRCMP_FUNC(wxStrcoll, wxCRT_StrcollA, wxCRT_StrcollW, wxStrcoll_String) -#endif // wxNEEDS_DECL_BEFORE_TEMPLATE - -template<typename T> -inline int wxStrcoll_String(const wxString& s1, const T& s2) -{ -#if wxUSE_UNICODE - // NB: strcoll() doesn't work correctly on UTF-8 strings, so we have to use - // wc_str() even if wxUSE_UNICODE_UTF8; the (const wchar_t*) cast is - // there just as optimization to avoid going through - // wxStrcoll<wxScopedWCharBuffer>: - return wxStrcoll((const wchar_t*)s1.wc_str(), s2); -#else - return wxStrcoll((const char*)s1.mb_str(), s2); -#endif -} - -#ifndef wxNEEDS_DECL_BEFORE_TEMPLATE -// this is exactly the same WX_STRCMP_FUNC line as above, insde the -// wxNEEDS_DECL_BEFORE_TEMPLATE case -WX_STRCMP_FUNC(wxStrcoll, wxCRT_StrcollA, wxCRT_StrcollW, wxStrcoll_String) -#endif - -#endif // defined(wxCRT_Strcoll[AW]) - -template<typename T> -inline size_t wxStrspn_String(const wxString& s1, const T& s2) -{ - size_t pos = s1.find_first_not_of(s2); - return pos == wxString::npos ? s1.length() : pos; -} -WX_STR_FUNC(size_t, wxStrspn, wxCRT_StrspnA, wxCRT_StrspnW, wxStrspn_String) - -template<typename T> -inline size_t wxStrcspn_String(const wxString& s1, const T& s2) -{ - size_t pos = s1.find_first_of(s2); - return pos == wxString::npos ? s1.length() : pos; -} -WX_STR_FUNC(size_t, wxStrcspn, wxCRT_StrcspnA, wxCRT_StrcspnW, wxStrcspn_String) - -#undef WX_STR_DECL -#undef WX_STR_CALL -#define WX_STR_DECL(name, T1, T2) name(T1 s1, T2 s2, size_t n) -#define WX_STR_CALL(func, a1, a2) func(a1, a2, n) - -template<typename T> -inline int wxStrncmp_String(const wxString& s1, const T& s2, size_t n) - { return s1.compare(0, n, s2, 0, n); } -WX_STRCMP_FUNC(wxStrncmp, wxCRT_StrncmpA, wxCRT_StrncmpW, wxStrncmp_String) - -template<typename T> -inline int wxStrnicmp_String(const wxString& s1, const T& s2, size_t n) - { return s1.substr(0, n).CmpNoCase(wxString(s2).substr(0, n)); } -WX_STRCMP_FUNC(wxStrnicmp, wxCRT_StrnicmpA, wxCRT_StrnicmpW, wxStrnicmp_String) - -#undef WX_STR_DECL -#undef WX_STR_CALL -#undef WX_STRCMP_FUNC -#undef WX_STR_FUNC -#undef WX_STR_FUNC_NO_INVERT - -#if defined(wxCRT_StrxfrmA) && defined(wxCRT_StrxfrmW) - -inline size_t wxStrxfrm(char *dest, const char *src, size_t n) - { return wxCRT_StrxfrmA(dest, src, n); } -inline size_t wxStrxfrm(wchar_t *dest, const wchar_t *src, size_t n) - { return wxCRT_StrxfrmW(dest, src, n); } -template<typename T> -inline size_t wxStrxfrm(T *dest, const wxScopedCharTypeBuffer<T>& src, size_t n) - { return wxStrxfrm(dest, src.data(), n); } -inline size_t wxStrxfrm(char *dest, const wxString& src, size_t n) - { return wxCRT_StrxfrmA(dest, src.mb_str(), n); } -inline size_t wxStrxfrm(wchar_t *dest, const wxString& src, size_t n) - { return wxCRT_StrxfrmW(dest, src.wc_str(), n); } -inline size_t wxStrxfrm(char *dest, const wxCStrData& src, size_t n) - { return wxCRT_StrxfrmA(dest, src.AsCharBuf(), n); } -inline size_t wxStrxfrm(wchar_t *dest, const wxCStrData& src, size_t n) - { return wxCRT_StrxfrmW(dest, src.AsWCharBuf(), n); } - -#endif // defined(wxCRT_Strxfrm[AW]) - -inline char *wxStrtok(char *str, const char *delim, char **saveptr) - { return wxCRT_StrtokA(str, delim, saveptr); } -inline wchar_t *wxStrtok(wchar_t *str, const wchar_t *delim, wchar_t **saveptr) - { return wxCRT_StrtokW(str, delim, saveptr); } -template<typename T> -inline T *wxStrtok(T *str, const wxScopedCharTypeBuffer<T>& delim, T **saveptr) - { return wxStrtok(str, delim.data(), saveptr); } -inline char *wxStrtok(char *str, const wxCStrData& delim, char **saveptr) - { return wxCRT_StrtokA(str, delim.AsCharBuf(), saveptr); } -inline wchar_t *wxStrtok(wchar_t *str, const wxCStrData& delim, wchar_t **saveptr) - { return wxCRT_StrtokW(str, delim.AsWCharBuf(), saveptr); } -inline char *wxStrtok(char *str, const wxString& delim, char **saveptr) - { return wxCRT_StrtokA(str, delim.mb_str(), saveptr); } -inline wchar_t *wxStrtok(wchar_t *str, const wxString& delim, wchar_t **saveptr) - { return wxCRT_StrtokW(str, delim.wc_str(), saveptr); } - -inline const char *wxStrstr(const char *haystack, const char *needle) - { return wxCRT_StrstrA(haystack, needle); } -inline const wchar_t *wxStrstr(const wchar_t *haystack, const wchar_t *needle) - { return wxCRT_StrstrW(haystack, needle); } -inline const char *wxStrstr(const char *haystack, const wxString& needle) - { return wxCRT_StrstrA(haystack, needle.mb_str()); } -inline const wchar_t *wxStrstr(const wchar_t *haystack, const wxString& needle) - { return wxCRT_StrstrW(haystack, needle.wc_str()); } -// these functions return char* pointer into the non-temporary conversion buffer -// used by c_str()'s implicit conversion to char*, for ANSI build compatibility -inline const char *wxStrstr(const wxString& haystack, const wxString& needle) - { return wxCRT_StrstrA(haystack.c_str(), needle.mb_str()); } -inline const char *wxStrstr(const wxCStrData& haystack, const wxString& needle) - { return wxCRT_StrstrA(haystack, needle.mb_str()); } -inline const char *wxStrstr(const wxCStrData& haystack, const wxCStrData& needle) - { return wxCRT_StrstrA(haystack, needle.AsCharBuf()); } -// if 'needle' is char/wchar_t, then the same is probably wanted as return value -inline const char *wxStrstr(const wxString& haystack, const char *needle) - { return wxCRT_StrstrA(haystack.c_str(), needle); } -inline const char *wxStrstr(const wxCStrData& haystack, const char *needle) - { return wxCRT_StrstrA(haystack, needle); } -inline const wchar_t *wxStrstr(const wxString& haystack, const wchar_t *needle) - { return wxCRT_StrstrW(haystack.c_str(), needle); } -inline const wchar_t *wxStrstr(const wxCStrData& haystack, const wchar_t *needle) - { return wxCRT_StrstrW(haystack, needle); } - -inline const char *wxStrchr(const char *s, char c) - { return wxCRT_StrchrA(s, c); } -inline const wchar_t *wxStrchr(const wchar_t *s, wchar_t c) - { return wxCRT_StrchrW(s, c); } -inline const char *wxStrrchr(const char *s, char c) - { return wxCRT_StrrchrA(s, c); } -inline const wchar_t *wxStrrchr(const wchar_t *s, wchar_t c) - { return wxCRT_StrrchrW(s, c); } -inline const char *wxStrchr(const char *s, const wxUniChar& uc) - { char c; return uc.GetAsChar(&c) ? wxCRT_StrchrA(s, c) : NULL; } -inline const wchar_t *wxStrchr(const wchar_t *s, const wxUniChar& c) - { return wxCRT_StrchrW(s, (wchar_t)c); } -inline const char *wxStrrchr(const char *s, const wxUniChar& uc) - { char c; return uc.GetAsChar(&c) ? wxCRT_StrrchrA(s, c) : NULL; } -inline const wchar_t *wxStrrchr(const wchar_t *s, const wxUniChar& c) - { return wxCRT_StrrchrW(s, (wchar_t)c); } -inline const char *wxStrchr(const char *s, const wxUniCharRef& uc) - { char c; return uc.GetAsChar(&c) ? wxCRT_StrchrA(s, c) : NULL; } -inline const wchar_t *wxStrchr(const wchar_t *s, const wxUniCharRef& c) - { return wxCRT_StrchrW(s, (wchar_t)c); } -inline const char *wxStrrchr(const char *s, const wxUniCharRef& uc) - { char c; return uc.GetAsChar(&c) ? wxCRT_StrrchrA(s, c) : NULL; } -inline const wchar_t *wxStrrchr(const wchar_t *s, const wxUniCharRef& c) - { return wxCRT_StrrchrW(s, (wchar_t)c); } -template<typename T> -inline const T* wxStrchr(const wxScopedCharTypeBuffer<T>& s, T c) - { return wxStrchr(s.data(), c); } -template<typename T> -inline const T* wxStrrchr(const wxScopedCharTypeBuffer<T>& s, T c) - { return wxStrrchr(s.data(), c); } -template<typename T> -inline const T* wxStrchr(const wxScopedCharTypeBuffer<T>& s, const wxUniChar& c) - { return wxStrchr(s.data(), (T)c); } -template<typename T> -inline const T* wxStrrchr(const wxScopedCharTypeBuffer<T>& s, const wxUniChar& c) - { return wxStrrchr(s.data(), (T)c); } -template<typename T> -inline const T* wxStrchr(const wxScopedCharTypeBuffer<T>& s, const wxUniCharRef& c) - { return wxStrchr(s.data(), (T)c); } -template<typename T> -inline const T* wxStrrchr(const wxScopedCharTypeBuffer<T>& s, const wxUniCharRef& c) - { return wxStrrchr(s.data(), (T)c); } -// these functions return char* pointer into the non-temporary conversion buffer -// used by c_str()'s implicit conversion to char*, for ANSI build compatibility -inline const char* wxStrchr(const wxString& s, char c) - { return wxCRT_StrchrA((const char*)s.c_str(), c); } -inline const char* wxStrrchr(const wxString& s, char c) - { return wxCRT_StrrchrA((const char*)s.c_str(), c); } -inline const char* wxStrchr(const wxString& s, int c) - { return wxCRT_StrchrA((const char*)s.c_str(), c); } -inline const char* wxStrrchr(const wxString& s, int c) - { return wxCRT_StrrchrA((const char*)s.c_str(), c); } -inline const char* wxStrchr(const wxString& s, const wxUniChar& uc) - { char c; return uc.GetAsChar(&c) ? wxCRT_StrchrA(s.c_str(), c) : NULL; } -inline const char* wxStrrchr(const wxString& s, const wxUniChar& uc) - { char c; return uc.GetAsChar(&c) ? wxCRT_StrrchrA(s.c_str(), c) : NULL; } -inline const char* wxStrchr(const wxString& s, const wxUniCharRef& uc) - { char c; return uc.GetAsChar(&c) ? wxCRT_StrchrA(s.c_str(), c) : NULL; } -inline const char* wxStrrchr(const wxString& s, const wxUniCharRef& uc) - { char c; return uc.GetAsChar(&c) ? wxCRT_StrrchrA(s.c_str(), c) : NULL; } -inline const wchar_t* wxStrchr(const wxString& s, wchar_t c) - { return wxCRT_StrchrW((const wchar_t*)s.c_str(), c); } -inline const wchar_t* wxStrrchr(const wxString& s, wchar_t c) - { return wxCRT_StrrchrW((const wchar_t*)s.c_str(), c); } -inline const char* wxStrchr(const wxCStrData& s, char c) - { return wxCRT_StrchrA(s.AsChar(), c); } -inline const char* wxStrrchr(const wxCStrData& s, char c) - { return wxCRT_StrrchrA(s.AsChar(), c); } -inline const char* wxStrchr(const wxCStrData& s, int c) - { return wxCRT_StrchrA(s.AsChar(), c); } -inline const char* wxStrrchr(const wxCStrData& s, int c) - { return wxCRT_StrrchrA(s.AsChar(), c); } -inline const char* wxStrchr(const wxCStrData& s, const wxUniChar& uc) - { char c; return uc.GetAsChar(&c) ? wxCRT_StrchrA(s, c) : NULL; } -inline const char* wxStrrchr(const wxCStrData& s, const wxUniChar& uc) - { char c; return uc.GetAsChar(&c) ? wxCRT_StrrchrA(s, c) : NULL; } -inline const char* wxStrchr(const wxCStrData& s, const wxUniCharRef& uc) - { char c; return uc.GetAsChar(&c) ? wxCRT_StrchrA(s, c) : NULL; } -inline const char* wxStrrchr(const wxCStrData& s, const wxUniCharRef& uc) - { char c; return uc.GetAsChar(&c) ? wxCRT_StrrchrA(s, c) : NULL; } -inline const wchar_t* wxStrchr(const wxCStrData& s, wchar_t c) - { return wxCRT_StrchrW(s.AsWChar(), c); } -inline const wchar_t* wxStrrchr(const wxCStrData& s, wchar_t c) - { return wxCRT_StrrchrW(s.AsWChar(), c); } - -inline const char *wxStrpbrk(const char *s, const char *accept) - { return wxCRT_StrpbrkA(s, accept); } -inline const wchar_t *wxStrpbrk(const wchar_t *s, const wchar_t *accept) - { return wxCRT_StrpbrkW(s, accept); } -inline const char *wxStrpbrk(const char *s, const wxString& accept) - { return wxCRT_StrpbrkA(s, accept.mb_str()); } -inline const char *wxStrpbrk(const char *s, const wxCStrData& accept) - { return wxCRT_StrpbrkA(s, accept.AsCharBuf()); } -inline const wchar_t *wxStrpbrk(const wchar_t *s, const wxString& accept) - { return wxCRT_StrpbrkW(s, accept.wc_str()); } -inline const wchar_t *wxStrpbrk(const wchar_t *s, const wxCStrData& accept) - { return wxCRT_StrpbrkW(s, accept.AsWCharBuf()); } -inline const char *wxStrpbrk(const wxString& s, const wxString& accept) - { return wxCRT_StrpbrkA(s.c_str(), accept.mb_str()); } -inline const char *wxStrpbrk(const wxString& s, const char *accept) - { return wxCRT_StrpbrkA(s.c_str(), accept); } -inline const wchar_t *wxStrpbrk(const wxString& s, const wchar_t *accept) - { return wxCRT_StrpbrkW(s.wc_str(), accept); } -inline const char *wxStrpbrk(const wxString& s, const wxCStrData& accept) - { return wxCRT_StrpbrkA(s.c_str(), accept.AsCharBuf()); } -inline const char *wxStrpbrk(const wxCStrData& s, const wxString& accept) - { return wxCRT_StrpbrkA(s.AsChar(), accept.mb_str()); } -inline const char *wxStrpbrk(const wxCStrData& s, const char *accept) - { return wxCRT_StrpbrkA(s.AsChar(), accept); } -inline const wchar_t *wxStrpbrk(const wxCStrData& s, const wchar_t *accept) - { return wxCRT_StrpbrkW(s.AsWChar(), accept); } -inline const char *wxStrpbrk(const wxCStrData& s, const wxCStrData& accept) - { return wxCRT_StrpbrkA(s.AsChar(), accept.AsCharBuf()); } -template <typename S, typename T> -inline const T *wxStrpbrk(const S& s, const wxScopedCharTypeBuffer<T>& accept) - { return wxStrpbrk(s, accept.data()); } - - -/* inlined non-const versions */ -template <typename T> -inline char *wxStrstr(char *haystack, T needle) - { return const_cast<char*>(wxStrstr(const_cast<const char*>(haystack), needle)); } -template <typename T> -inline wchar_t *wxStrstr(wchar_t *haystack, T needle) - { return const_cast<wchar_t*>(wxStrstr(const_cast<const wchar_t*>(haystack), needle)); } - -template <typename T> -inline char * wxStrchr(char *s, T c) - { return const_cast<char*>(wxStrchr(const_cast<const char*>(s), c)); } -template <typename T> -inline wchar_t * wxStrchr(wchar_t *s, T c) - { return (wchar_t *)wxStrchr((const wchar_t *)s, c); } -template <typename T> -inline char * wxStrrchr(char *s, T c) - { return const_cast<char*>(wxStrrchr(const_cast<const char*>(s), c)); } -template <typename T> -inline wchar_t * wxStrrchr(wchar_t *s, T c) - { return const_cast<wchar_t*>(wxStrrchr(const_cast<const wchar_t*>(s), c)); } - -template <typename T> -inline char * wxStrpbrk(char *s, T accept) - { return const_cast<char*>(wxStrpbrk(const_cast<const char*>(s), accept)); } -template <typename T> -inline wchar_t * wxStrpbrk(wchar_t *s, T accept) - { return const_cast<wchar_t*>(wxStrpbrk(const_cast<const wchar_t*>(s), accept)); } - - -// ---------------------------------------------------------------------------- -// stdio.h functions -// ---------------------------------------------------------------------------- - -// NB: using fn_str() for mode is a hack to get the same type (char*/wchar_t*) -// as needed, the conversion itself doesn't matter, it's ASCII -inline FILE *wxFopen(const wxString& path, const wxString& mode) - { return wxCRT_Fopen(path.fn_str(), mode.fn_str()); } -inline FILE *wxFreopen(const wxString& path, const wxString& mode, FILE *stream) - { return wxCRT_Freopen(path.fn_str(), mode.fn_str(), stream); } -inline int wxRemove(const wxString& path) - { return wxCRT_Remove(path.fn_str()); } -inline int wxRename(const wxString& oldpath, const wxString& newpath) - { return wxCRT_Rename(oldpath.fn_str(), newpath.fn_str()); } - -extern WXDLLIMPEXP_BASE int wxPuts(const wxString& s); -extern WXDLLIMPEXP_BASE int wxFputs(const wxString& s, FILE *stream); -extern WXDLLIMPEXP_BASE void wxPerror(const wxString& s); - -extern WXDLLIMPEXP_BASE int wxFputc(const wxUniChar& c, FILE *stream); - -#define wxPutc(c, stream) wxFputc(c, stream) -#define wxPutchar(c) wxFputc(c, stdout) -#define wxFputchar(c) wxPutchar(c) - -// NB: We only provide ANSI version of fgets() because fgetws() interprets the -// stream according to current locale, which is rarely what is desired. -inline char *wxFgets(char *s, int size, FILE *stream) - { return wxCRT_FgetsA(s, size, stream); } -// This version calls ANSI version and converts the string using wxConvLibc -extern WXDLLIMPEXP_BASE wchar_t *wxFgets(wchar_t *s, int size, FILE *stream); - -#define wxGets(s) wxGets_is_insecure_and_dangerous_use_wxFgets_instead - -// NB: We only provide ANSI versions of this for the same reasons as in the -// case of wxFgets() above -inline int wxFgetc(FILE *stream) { return wxCRT_FgetcA(stream); } -inline int wxUngetc(int c, FILE *stream) { return wxCRT_UngetcA(c, stream); } - -#define wxGetc(stream) wxFgetc(stream) -#define wxGetchar() wxFgetc(stdin) -#define wxFgetchar() wxGetchar() - -// ---------------------------------------------------------------------------- -// stdlib.h functions -// ---------------------------------------------------------------------------- - -#ifdef wxCRT_AtoiW -inline int wxAtoi(const wxString& str) { return wxCRT_AtoiW(str.wc_str()); } -#else -inline int wxAtoi(const wxString& str) { return wxCRT_AtoiA(str.mb_str()); } -#endif - -#ifdef wxCRT_AtolW -inline long wxAtol(const wxString& str) { return wxCRT_AtolW(str.wc_str()); } -#else -inline long wxAtol(const wxString& str) { return wxCRT_AtolA(str.mb_str()); } -#endif - -#ifdef wxCRT_AtofW -inline double wxAtof(const wxString& str) { return wxCRT_AtofW(str.wc_str()); } -#else -inline double wxAtof(const wxString& str) { return wxCRT_AtofA(str.mb_str()); } -#endif - -inline double wxStrtod(const char *nptr, char **endptr) - { return wxCRT_StrtodA(nptr, endptr); } -inline double wxStrtod(const wchar_t *nptr, wchar_t **endptr) - { return wxCRT_StrtodW(nptr, endptr); } -template<typename T> -inline double wxStrtod(const wxScopedCharTypeBuffer<T>& nptr, T **endptr) - { return wxStrtod(nptr.data(), endptr); } - -// We implement wxStrto*() like this so that the code compiles when NULL is -// passed in - - if we had just char** and wchar_t** overloads for 'endptr', it -// would be ambiguous. The solution is to use a template so that endptr can be -// any type: when NULL constant is used, the type will be int and we can handle -// that case specially. Otherwise, we infer the type that 'nptr' should be -// converted to from the type of 'endptr'. We need wxStrtoxCharType<T> template -// to make the code compile even for T=int (that's the case when it's not going -// to be ever used, but it still has to compile). -template<typename T> struct wxStrtoxCharType {}; -template<> struct wxStrtoxCharType<char**> -{ - typedef const char* Type; - static char** AsPointer(char **p) { return p; } -}; -template<> struct wxStrtoxCharType<wchar_t**> -{ - typedef const wchar_t* Type; - static wchar_t** AsPointer(wchar_t **p) { return p; } -}; -template<> struct wxStrtoxCharType<int> -{ - typedef const char* Type; /* this one is never used */ - static char** AsPointer(int WXUNUSED_UNLESS_DEBUG(p)) - { - wxASSERT_MSG( p == 0, "passing non-NULL int is invalid" ); - return NULL; - } -}; - -template<typename T> -inline double wxStrtod(const wxString& nptr, T endptr) -{ - if ( endptr == 0 ) - { - // when we don't care about endptr, use the string representation that - // doesn't require any conversion (it doesn't matter for this function - // even if its UTF-8): - return wxStrtod(nptr.wx_str(), (wxStringCharType**)NULL); - } - else - { - // note that it is important to use c_str() here and not mb_str() or - // wc_str(), because we store the pointer into (possibly converted) - // buffer in endptr and so it must be valid even when wxStrtod() returns - typedef typename wxStrtoxCharType<T>::Type CharType; - return wxStrtod((CharType)nptr.c_str(), - wxStrtoxCharType<T>::AsPointer(endptr)); - } -} -template<typename T> -inline double wxStrtod(const wxCStrData& nptr, T endptr) - { return wxStrtod(nptr.AsString(), endptr); } - - -#define WX_STRTOX_FUNC(rettype, name, implA, implW) \ - /* see wxStrtod() above for explanation of this code: */ \ - inline rettype name(const char *nptr, char **endptr, int base) \ - { return implA(nptr, endptr, base); } \ - inline rettype name(const wchar_t *nptr, wchar_t **endptr, int base) \ - { return implW(nptr, endptr, base); } \ - template<typename T> \ - inline rettype name(const wxScopedCharTypeBuffer<T>& nptr, T **endptr, int)\ - { return name(nptr.data(), endptr); } \ - template<typename T> \ - inline rettype name(const wxString& nptr, T endptr, int base) \ - { \ - if ( endptr == 0 ) \ - return name(nptr.wx_str(), (wxStringCharType**)NULL, base); \ - else \ - { \ - typedef typename wxStrtoxCharType<T>::Type CharType; \ - return name((CharType)nptr.c_str(), \ - wxStrtoxCharType<T>::AsPointer(endptr), \ - base); \ - } \ - } \ - template<typename T> \ - inline rettype name(const wxCStrData& nptr, T endptr, int base) \ - { return name(nptr.AsString(), endptr, base); } - -WX_STRTOX_FUNC(long, wxStrtol, wxCRT_StrtolA, wxCRT_StrtolW) -WX_STRTOX_FUNC(unsigned long, wxStrtoul, wxCRT_StrtoulA, wxCRT_StrtoulW) -#ifdef wxLongLong_t -WX_STRTOX_FUNC(wxLongLong_t, wxStrtoll, wxCRT_StrtollA, wxCRT_StrtollW) -WX_STRTOX_FUNC(wxULongLong_t, wxStrtoull, wxCRT_StrtoullA, wxCRT_StrtoullW) -#endif // wxLongLong_t - -#undef WX_STRTOX_FUNC - - -// mingw32 doesn't provide _tsystem() even though it provides other stdlib.h -// functions in their wide versions -#ifdef wxCRT_SystemW -inline int wxSystem(const wxString& str) { return wxCRT_SystemW(str.wc_str()); } -#else -inline int wxSystem(const wxString& str) { return wxCRT_SystemA(str.mb_str()); } -#endif - -inline char* wxGetenv(const char *name) { return wxCRT_GetenvA(name); } -inline wchar_t* wxGetenv(const wchar_t *name) { return wxCRT_GetenvW(name); } -inline char* wxGetenv(const wxString& name) { return wxCRT_GetenvA(name.mb_str()); } -inline char* wxGetenv(const wxCStrData& name) { return wxCRT_GetenvA(name.AsCharBuf()); } -inline char* wxGetenv(const wxScopedCharBuffer& name) { return wxCRT_GetenvA(name.data()); } -inline wchar_t* wxGetenv(const wxScopedWCharBuffer& name) { return wxCRT_GetenvW(name.data()); } - -// ---------------------------------------------------------------------------- -// time.h functions -// ---------------------------------------------------------------------------- - -inline size_t wxStrftime(char *s, size_t max, - const wxString& format, const struct tm *tm) - { return wxCRT_StrftimeA(s, max, format.mb_str(), tm); } - -inline size_t wxStrftime(wchar_t *s, size_t max, - const wxString& format, const struct tm *tm) - { return wxCRT_StrftimeW(s, max, format.wc_str(), tm); } - -// NB: we can't provide both char* and wchar_t* versions for obvious reasons -// and returning wxString wouldn't work either (it would be immediately -// destroyed and if assigned to char*/wchar_t*, the pointer would be -// invalid), so we only keep ASCII version, because the returned value -// is always ASCII anyway -#define wxAsctime asctime -#define wxCtime ctime - - -// ---------------------------------------------------------------------------- -// ctype.h functions -// ---------------------------------------------------------------------------- - -// FIXME-UTF8: we'd be better off implementing these ourselves, as the CRT -// version is locale-dependent -// FIXME-UTF8: these don't work when EOF is passed in because of wxUniChar, -// is this OK or not? - -inline bool wxIsalnum(const wxUniChar& c) { return wxCRT_IsalnumW(c) != 0; } -inline bool wxIsalpha(const wxUniChar& c) { return wxCRT_IsalphaW(c) != 0; } -inline bool wxIscntrl(const wxUniChar& c) { return wxCRT_IscntrlW(c) != 0; } -inline bool wxIsdigit(const wxUniChar& c) { return wxCRT_IsdigitW(c) != 0; } -inline bool wxIsgraph(const wxUniChar& c) { return wxCRT_IsgraphW(c) != 0; } -inline bool wxIslower(const wxUniChar& c) { return wxCRT_IslowerW(c) != 0; } -inline bool wxIsprint(const wxUniChar& c) { return wxCRT_IsprintW(c) != 0; } -inline bool wxIspunct(const wxUniChar& c) { return wxCRT_IspunctW(c) != 0; } -inline bool wxIsspace(const wxUniChar& c) { return wxCRT_IsspaceW(c) != 0; } -inline bool wxIsupper(const wxUniChar& c) { return wxCRT_IsupperW(c) != 0; } -inline bool wxIsxdigit(const wxUniChar& c) { return wxCRT_IsxdigitW(c) != 0; } - -inline wxUniChar wxTolower(const wxUniChar& c) { return wxCRT_TolowerW(c); } -inline wxUniChar wxToupper(const wxUniChar& c) { return wxCRT_ToupperW(c); } - -#if WXWIN_COMPATIBILITY_2_8 -// we had goofed and defined wxIsctrl() instead of (correct) wxIscntrl() in the -// initial versions of this header -- now it is too late to remove it so -// although we fixed the function/macro name above, still provide the -// backwards-compatible synonym. -wxDEPRECATED( inline int wxIsctrl(const wxUniChar& c) ); -inline int wxIsctrl(const wxUniChar& c) { return wxIscntrl(c); } -#endif // WXWIN_COMPATIBILITY_2_8 - -inline bool wxIsascii(const wxUniChar& c) { return c.IsAscii(); } - -#endif /* _WX_WXCRT_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxcrtbase.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxcrtbase.h deleted file mode 100644 index 9b84d737..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxcrtbase.h +++ /dev/null @@ -1,664 +0,0 @@ -/* - * Name: wx/wxcrtbase.h - * Purpose: Type-safe ANSI and Unicode builds compatible wrappers for - * CRT functions - * Author: Joel Farley, Ove Kaaven - * Modified by: Vadim Zeitlin, Robert Roebling, Ron Lee - * Created: 1998/06/12 - * Copyright: (c) 1998-2006 wxWidgets dev team - * Licence: wxWindows licence - */ - -/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */ - -#ifndef _WX_WXCRTBASE_H_ -#define _WX_WXCRTBASE_H_ - -/* ------------------------------------------------------------------------- - headers and missing declarations - ------------------------------------------------------------------------- */ - -#include "wx/chartype.h" - -/* - Standard headers we need here. - - NB: don't include any wxWidgets headers here because almost all of them - include this one! - - NB2: User code should include wx/crt.h instead of including this - header directly. - - */ - -#include <stdio.h> -#include <string.h> -#include <ctype.h> -#include <wctype.h> -#include <time.h> - -#if defined(__WINDOWS__) - #include <io.h> -#endif - -#if defined(HAVE_STRTOK_R) && defined(__DARWIN__) && defined(_MSL_USING_MW_C_HEADERS) && _MSL_USING_MW_C_HEADERS - char *strtok_r(char *, const char *, char **); -#endif - -/* - Traditional MinGW doesn't declare isascii() in strict ANSI mode and we can't - declare it here ourselves as it's an inline function, so use our own - replacement instead. - */ -#ifndef isascii - #if defined(wxNEEDS_STRICT_ANSI_WORKAROUNDS) - #define wxNEED_ISASCII - #endif -#endif /* isascii */ - -#ifdef wxNEED_ISASCII - inline int isascii(int c) { return (unsigned)c < 0x80; } - - // Avoid further (re)definitions of it. - #define isascii isascii -#endif - -/* string.h functions */ - -#ifdef wxNEED_STRDUP - WXDLLIMPEXP_BASE char *strdup(const char* s); -#endif - - -/* ------------------------------------------------------------------------- - UTF-8 locale handling - ------------------------------------------------------------------------- */ - -#ifdef __cplusplus - #if wxUSE_UNICODE_UTF8 - /* flag indicating whether the current locale uses UTF-8 or not; must be - updated every time the locale is changed! */ - #if wxUSE_UTF8_LOCALE_ONLY - #define wxLocaleIsUtf8 true - #else - extern WXDLLIMPEXP_BASE bool wxLocaleIsUtf8; - #endif - /* function used to update the flag: */ - extern WXDLLIMPEXP_BASE void wxUpdateLocaleIsUtf8(); - #else /* !wxUSE_UNICODE_UTF8 */ - inline void wxUpdateLocaleIsUtf8() {} - #endif /* wxUSE_UNICODE_UTF8/!wxUSE_UNICODE_UTF8 */ -#endif /* __cplusplus */ - - -/* ------------------------------------------------------------------------- - string.h - ------------------------------------------------------------------------- */ - -#define wxCRT_StrcatA strcat -#define wxCRT_StrchrA strchr -#define wxCRT_StrcmpA strcmp -#define wxCRT_StrcpyA strcpy -#define wxCRT_StrcspnA strcspn -#define wxCRT_StrlenA strlen -#define wxCRT_StrncatA strncat -#define wxCRT_StrncmpA strncmp -#define wxCRT_StrncpyA strncpy -#define wxCRT_StrpbrkA strpbrk -#define wxCRT_StrrchrA strrchr -#define wxCRT_StrspnA strspn -#define wxCRT_StrstrA strstr - -#define wxCRT_StrcatW wcscat -#define wxCRT_StrchrW wcschr -#define wxCRT_StrcmpW wcscmp -#define wxCRT_StrcpyW wcscpy -#define wxCRT_StrcspnW wcscspn -#define wxCRT_StrncatW wcsncat -#define wxCRT_StrncmpW wcsncmp -#define wxCRT_StrncpyW wcsncpy -#define wxCRT_StrpbrkW wcspbrk -#define wxCRT_StrrchrW wcsrchr -#define wxCRT_StrspnW wcsspn -#define wxCRT_StrstrW wcsstr - -#define wxCRT_StrcollA strcoll -#define wxCRT_StrxfrmA strxfrm - -#define wxCRT_StrcollW wcscoll -#define wxCRT_StrxfrmW wcsxfrm - -/* Almost all compilers have strdup(), but VC++ and MinGW call it _strdup(). - And we need to declare it manually for MinGW in strict ANSI mode. */ -#if (defined(__VISUALC__) && __VISUALC__ >= 1400) - #define wxCRT_StrdupA _strdup -#elif defined(__MINGW32__) - wxDECL_FOR_STRICT_MINGW32(char*, _strdup, (const char *)) - #define wxCRT_StrdupA _strdup -#else - #define wxCRT_StrdupA strdup -#endif - -/* Windows compilers provide _wcsdup() except for (old) Cygwin */ -#if defined(__WINDOWS__) && !defined(__CYGWIN__) - wxDECL_FOR_STRICT_MINGW32(wchar_t*, _wcsdup, (const wchar_t*)) - #define wxCRT_StrdupW _wcsdup -#elif defined(HAVE_WCSDUP) - #define wxCRT_StrdupW wcsdup -#endif - -#ifdef wxHAVE_TCHAR_SUPPORT - /* we surely have wchar_t if we have TCHAR have wcslen() */ - #ifndef HAVE_WCSLEN - #define HAVE_WCSLEN - #endif -#endif /* wxHAVE_TCHAR_SUPPORT */ - -#ifdef HAVE_WCSLEN - #define wxCRT_StrlenW wcslen -#endif - -#define wxCRT_StrtodA strtod -#define wxCRT_StrtolA strtol -#define wxCRT_StrtoulA strtoul - -#ifdef __ANDROID__ // these functions are broken on android - -extern double android_wcstod(const wchar_t *nptr, wchar_t **endptr); -extern long android_wcstol(const wchar_t *nptr, wchar_t **endptr, int base); -extern unsigned long android_wcstoul(const wchar_t *nptr, wchar_t **endptr, int base); - -#define wxCRT_StrtodW android_wcstod -#define wxCRT_StrtolW android_wcstol -#define wxCRT_StrtoulW android_wcstoul -#else -#define wxCRT_StrtodW wcstod -#define wxCRT_StrtolW wcstol -#define wxCRT_StrtoulW wcstoul -#endif - -#ifdef __VISUALC__ - #define wxCRT_StrtollA _strtoi64 - #define wxCRT_StrtoullA _strtoui64 - #define wxCRT_StrtollW _wcstoi64 - #define wxCRT_StrtoullW _wcstoui64 -#else - /* Both of these functions are implemented in C++11 compilers */ - #if defined(__cplusplus) && __cplusplus >= 201103L - #ifndef HAVE_STRTOULL - #define HAVE_STRTOULL - #endif - #ifndef HAVE_WCSTOULL - #define HAVE_WCSTOULL - #endif - #endif - - #ifdef HAVE_STRTOULL - #define wxCRT_StrtollA strtoll - #define wxCRT_StrtoullA strtoull - #endif /* HAVE_STRTOULL */ - #ifdef HAVE_WCSTOULL - /* assume that we have wcstoull(), which is also C99, too */ - #define wxCRT_StrtollW wcstoll - #define wxCRT_StrtoullW wcstoull - #endif /* HAVE_WCSTOULL */ -#endif - -/* - Only VC8 and later provide strnlen() and wcsnlen() functions under Windows. - */ -#if wxCHECK_VISUALC_VERSION(8) - #ifndef HAVE_STRNLEN - #define HAVE_STRNLEN - #endif - #ifndef HAVE_WCSNLEN - #define HAVE_WCSNLEN - #endif -#endif - -#ifdef HAVE_STRNLEN - #define wxCRT_StrnlenA strnlen -#endif - -#ifdef HAVE_WCSNLEN - #define wxCRT_StrnlenW wcsnlen -#endif - -/* define wxCRT_StricmpA/W and wxCRT_StrnicmpA/W for various compilers */ - -#if defined(__BORLANDC__) - #define wxCRT_StricmpA stricmp - #define wxCRT_StrnicmpA strnicmp -#elif defined(__VISUALC__) || defined(__MINGW32__) - wxDECL_FOR_STRICT_MINGW32(int, _stricmp, (const char*, const char*)) - wxDECL_FOR_STRICT_MINGW32(int, _strnicmp, (const char*, const char*, size_t)) - - #define wxCRT_StricmpA _stricmp - #define wxCRT_StrnicmpA _strnicmp -#elif defined(__UNIX__) - #define wxCRT_StricmpA strcasecmp - #define wxCRT_StrnicmpA strncasecmp -/* #else -- use wxWidgets implementation */ -#endif - -#ifdef __VISUALC__ - #define wxCRT_StricmpW _wcsicmp - #define wxCRT_StrnicmpW _wcsnicmp -#elif defined(__UNIX__) - #ifdef HAVE_WCSCASECMP - #define wxCRT_StricmpW wcscasecmp - #endif - #ifdef HAVE_WCSNCASECMP - #define wxCRT_StrnicmpW wcsncasecmp - #endif -/* #else -- use wxWidgets implementation */ -#endif - -#ifdef HAVE_STRTOK_R - #define wxCRT_StrtokA(str, sep, last) strtok_r(str, sep, last) -#endif -/* FIXME-UTF8: detect and use wcstok() if available for wxCRT_StrtokW */ - -/* these are extern "C" because they are used by regex lib: */ -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef wxCRT_StrlenW -WXDLLIMPEXP_BASE size_t wxCRT_StrlenW(const wchar_t *s); -#endif - -#ifndef wxCRT_StrncmpW -WXDLLIMPEXP_BASE int wxCRT_StrncmpW(const wchar_t *s1, const wchar_t *s2, size_t n); -#endif - -#ifdef __cplusplus -} -#endif - -/* FIXME-UTF8: remove this once we are Unicode only */ -#if wxUSE_UNICODE - #define wxCRT_StrlenNative wxCRT_StrlenW - #define wxCRT_StrncmpNative wxCRT_StrncmpW - #define wxCRT_ToupperNative wxCRT_ToupperW - #define wxCRT_TolowerNative wxCRT_TolowerW -#else - #define wxCRT_StrlenNative wxCRT_StrlenA - #define wxCRT_StrncmpNative wxCRT_StrncmpA - #define wxCRT_ToupperNative toupper - #define wxCRT_TolowerNative tolower -#endif - -#ifndef wxCRT_StrcatW -WXDLLIMPEXP_BASE wchar_t *wxCRT_StrcatW(wchar_t *dest, const wchar_t *src); -#endif - -#ifndef wxCRT_StrchrW -WXDLLIMPEXP_BASE const wchar_t *wxCRT_StrchrW(const wchar_t *s, wchar_t c); -#endif - -#ifndef wxCRT_StrcmpW -WXDLLIMPEXP_BASE int wxCRT_StrcmpW(const wchar_t *s1, const wchar_t *s2); -#endif - -#ifndef wxCRT_StrcollW -WXDLLIMPEXP_BASE int wxCRT_StrcollW(const wchar_t *s1, const wchar_t *s2); -#endif - -#ifndef wxCRT_StrcpyW -WXDLLIMPEXP_BASE wchar_t *wxCRT_StrcpyW(wchar_t *dest, const wchar_t *src); -#endif - -#ifndef wxCRT_StrcspnW -WXDLLIMPEXP_BASE size_t wxCRT_StrcspnW(const wchar_t *s, const wchar_t *reject); -#endif - -#ifndef wxCRT_StrncatW -WXDLLIMPEXP_BASE wchar_t *wxCRT_StrncatW(wchar_t *dest, const wchar_t *src, size_t n); -#endif - -#ifndef wxCRT_StrncpyW -WXDLLIMPEXP_BASE wchar_t *wxCRT_StrncpyW(wchar_t *dest, const wchar_t *src, size_t n); -#endif - -#ifndef wxCRT_StrpbrkW -WXDLLIMPEXP_BASE const wchar_t *wxCRT_StrpbrkW(const wchar_t *s, const wchar_t *accept); -#endif - -#ifndef wxCRT_StrrchrW -WXDLLIMPEXP_BASE const wchar_t *wxCRT_StrrchrW(const wchar_t *s, wchar_t c); -#endif - -#ifndef wxCRT_StrspnW -WXDLLIMPEXP_BASE size_t wxCRT_StrspnW(const wchar_t *s, const wchar_t *accept); -#endif - -#ifndef wxCRT_StrstrW -WXDLLIMPEXP_BASE const wchar_t *wxCRT_StrstrW(const wchar_t *haystack, const wchar_t *needle); -#endif - -#ifndef wxCRT_StrtodW -WXDLLIMPEXP_BASE double wxCRT_StrtodW(const wchar_t *nptr, wchar_t **endptr); -#endif - -#ifndef wxCRT_StrtolW -WXDLLIMPEXP_BASE long int wxCRT_StrtolW(const wchar_t *nptr, wchar_t **endptr, int base); -#endif - -#ifndef wxCRT_StrtoulW -WXDLLIMPEXP_BASE unsigned long int wxCRT_StrtoulW(const wchar_t *nptr, wchar_t **endptr, int base); -#endif - -#ifndef wxCRT_StrxfrmW -WXDLLIMPEXP_BASE size_t wxCRT_StrxfrmW(wchar_t *dest, const wchar_t *src, size_t n); -#endif - -#ifndef wxCRT_StrdupA -WXDLLIMPEXP_BASE char *wxCRT_StrdupA(const char *psz); -#endif - -#ifndef wxCRT_StrdupW -WXDLLIMPEXP_BASE wchar_t *wxCRT_StrdupW(const wchar_t *pwz); -#endif - -#ifndef wxCRT_StricmpA -WXDLLIMPEXP_BASE int wxCRT_StricmpA(const char *psz1, const char *psz2); -#endif - -#ifndef wxCRT_StricmpW -WXDLLIMPEXP_BASE int wxCRT_StricmpW(const wchar_t *psz1, const wchar_t *psz2); -#endif - -#ifndef wxCRT_StrnicmpA -WXDLLIMPEXP_BASE int wxCRT_StrnicmpA(const char *psz1, const char *psz2, size_t len); -#endif - -#ifndef wxCRT_StrnicmpW -WXDLLIMPEXP_BASE int wxCRT_StrnicmpW(const wchar_t *psz1, const wchar_t *psz2, size_t len); -#endif - -#ifndef wxCRT_StrtokA -WXDLLIMPEXP_BASE char *wxCRT_StrtokA(char *psz, const char *delim, char **save_ptr); -#endif - -#ifndef wxCRT_StrtokW -WXDLLIMPEXP_BASE wchar_t *wxCRT_StrtokW(wchar_t *psz, const wchar_t *delim, wchar_t **save_ptr); -#endif - -/* supply strtoll and strtoull, if needed */ -#ifdef wxLongLong_t - #ifndef wxCRT_StrtollA - WXDLLIMPEXP_BASE wxLongLong_t wxCRT_StrtollA(const char* nptr, - char** endptr, - int base); - WXDLLIMPEXP_BASE wxULongLong_t wxCRT_StrtoullA(const char* nptr, - char** endptr, - int base); - #endif - #ifndef wxCRT_StrtollW - WXDLLIMPEXP_BASE wxLongLong_t wxCRT_StrtollW(const wchar_t* nptr, - wchar_t** endptr, - int base); - WXDLLIMPEXP_BASE wxULongLong_t wxCRT_StrtoullW(const wchar_t* nptr, - wchar_t** endptr, - int base); - #endif -#endif /* wxLongLong_t */ - - -/* ------------------------------------------------------------------------- - stdio.h - ------------------------------------------------------------------------- */ - -#if defined(__UNIX__) || defined(__WXMAC__) - #define wxMBFILES 1 -#else - #define wxMBFILES 0 -#endif - - -/* these functions are only needed in the form used for filenames (i.e. char* - on Unix, wchar_t* on Windows), so we don't need to use A/W suffix: */ -#if wxMBFILES || !wxUSE_UNICODE /* ANSI filenames */ - - #define wxCRT_Fopen fopen - #define wxCRT_Freopen freopen - #define wxCRT_Remove remove - #define wxCRT_Rename rename - -#else /* Unicode filenames */ - wxDECL_FOR_STRICT_MINGW32(FILE*, _wfopen, (const wchar_t*, const wchar_t*)) - wxDECL_FOR_STRICT_MINGW32(FILE*, _wfreopen, (const wchar_t*, const wchar_t*, FILE*)) - wxDECL_FOR_STRICT_MINGW32(int, _wrename, (const wchar_t*, const wchar_t*)) - wxDECL_FOR_STRICT_MINGW32(int, _wremove, (const wchar_t*)) - - #define wxCRT_Rename _wrename - #define wxCRT_Remove _wremove - #define wxCRT_Fopen _wfopen - #define wxCRT_Freopen _wfreopen - -#endif /* wxMBFILES/!wxMBFILES */ - -#define wxCRT_PutsA puts -#define wxCRT_FputsA fputs -#define wxCRT_FgetsA fgets -#define wxCRT_FputcA fputc -#define wxCRT_FgetcA fgetc -#define wxCRT_UngetcA ungetc - -#ifdef wxHAVE_TCHAR_SUPPORT - #define wxCRT_PutsW _putws - #define wxCRT_FputsW fputws - #define wxCRT_FputcW fputwc -#endif -#ifdef HAVE_FPUTWS - #define wxCRT_FputsW fputws -#endif -#ifdef HAVE_PUTWS - #define wxCRT_PutsW putws -#endif -#ifdef HAVE_FPUTWC - #define wxCRT_FputcW fputwc -#endif -#define wxCRT_FgetsW fgetws - -#ifndef wxCRT_PutsW -WXDLLIMPEXP_BASE int wxCRT_PutsW(const wchar_t *ws); -#endif - -#ifndef wxCRT_FputsW -WXDLLIMPEXP_BASE int wxCRT_FputsW(const wchar_t *ch, FILE *stream); -#endif - -#ifndef wxCRT_FputcW -WXDLLIMPEXP_BASE int wxCRT_FputcW(wchar_t wc, FILE *stream); -#endif - -/* - NB: tmpnam() is unsafe and thus is not wrapped! - Use other wxWidgets facilities instead: - wxFileName::CreateTempFileName, wxTempFile, or wxTempFileOutputStream -*/ -#define wxTmpnam(x) wxTmpnam_is_insecure_use_wxTempFile_instead - -#define wxCRT_PerrorA perror -#ifdef wxHAVE_TCHAR_SUPPORT - #define wxCRT_PerrorW _wperror -#endif - -/* ------------------------------------------------------------------------- - stdlib.h - ------------------------------------------------------------------------- */ - -#define wxCRT_GetenvA getenv -#ifdef _tgetenv - #define wxCRT_GetenvW _wgetenv -#endif - -#ifndef wxCRT_GetenvW -WXDLLIMPEXP_BASE wchar_t * wxCRT_GetenvW(const wchar_t *name); -#endif - - -#define wxCRT_SystemA system -/* mingw32 doesn't provide _tsystem() or _wsystem(): */ -#if defined(_tsystem) - #define wxCRT_SystemW _wsystem -#endif - -#define wxCRT_AtofA atof -#define wxCRT_AtoiA atoi -#define wxCRT_AtolA atol - -#if defined(wxHAVE_TCHAR_SUPPORT) - wxDECL_FOR_STRICT_MINGW32(int, _wtoi, (const wchar_t*)) - wxDECL_FOR_STRICT_MINGW32(long, _wtol, (const wchar_t*)) - - #define wxCRT_AtoiW _wtoi - #define wxCRT_AtolW _wtol - /* _wtof doesn't exist */ -#else -#ifndef __VMS - #define wxCRT_AtofW(s) wcstod(s, NULL) -#endif - #define wxCRT_AtolW(s) wcstol(s, NULL, 10) - /* wcstoi doesn't exist */ -#endif - -/* ------------------------------------------------------------------------- - time.h - ------------------------------------------------------------------------- */ - -#define wxCRT_StrftimeA strftime -#ifdef __SGI__ - /* - IRIX provides not one but two versions of wcsftime(): XPG4 one which - uses "const char*" for the third parameter and so can't be used and the - correct, XPG5, one. Unfortunately we can't just define _XOPEN_SOURCE - high enough to get XPG5 version as this undefines other symbols which - make other functions we use unavailable (see <standards.h> for gory - details). So just declare the XPG5 version ourselves, we're extremely - unlikely to ever be compiled on a system without it. But if we ever do, - a configure test would need to be added for it (and _MIPS_SYMBOL_PRESENT - should be used to check for its presence during run-time, i.e. it would - probably be simpler to just always use our own wxCRT_StrftimeW() below - if it does ever become a problem). - */ -#ifdef __cplusplus - extern "C" -#endif - size_t - _xpg5_wcsftime(wchar_t *, size_t, const wchar_t *, const struct tm * ); - #define wxCRT_StrftimeW _xpg5_wcsftime -#else - /* - Assume it's always available under non-Unix systems as this does seem - to be the case for now. And under Unix we trust configure to detect it - (except for SGI special case above). - */ - #if defined(HAVE_WCSFTIME) || !defined(__UNIX__) - #define wxCRT_StrftimeW wcsftime - #endif -#endif - -#ifndef wxCRT_StrftimeW -WXDLLIMPEXP_BASE size_t wxCRT_StrftimeW(wchar_t *s, size_t max, - const wchar_t *fmt, - const struct tm *tm); -#endif - - - -/* ------------------------------------------------------------------------- - ctype.h - ------------------------------------------------------------------------- */ - -#define wxCRT_IsalnumW(c) iswalnum(c) -#define wxCRT_IsalphaW(c) iswalpha(c) -#define wxCRT_IscntrlW(c) iswcntrl(c) -#define wxCRT_IsdigitW(c) iswdigit(c) -#define wxCRT_IsgraphW(c) iswgraph(c) -#define wxCRT_IslowerW(c) iswlower(c) -#define wxCRT_IsprintW(c) iswprint(c) -#define wxCRT_IspunctW(c) iswpunct(c) -#define wxCRT_IsspaceW(c) iswspace(c) -#define wxCRT_IsupperW(c) iswupper(c) -#define wxCRT_IsxdigitW(c) iswxdigit(c) - -#ifdef __GLIBC__ - #if defined(__GLIBC__) && (__GLIBC__ == 2) && (__GLIBC_MINOR__ == 0) - /* /usr/include/wctype.h incorrectly declares translations */ - /* tables which provokes tons of compile-time warnings -- try */ - /* to correct this */ - #define wxCRT_TolowerW(wc) towctrans((wc), (wctrans_t)__ctype_tolower) - #define wxCRT_ToupperW(wc) towctrans((wc), (wctrans_t)__ctype_toupper) - #else /* !glibc 2.0 */ - #define wxCRT_TolowerW towlower - #define wxCRT_ToupperW towupper - #endif -#else /* !__GLIBC__ */ - /* There is a bug in MSVC RTL: toxxx() functions dosn't do anything - with signed chars < 0, so "fix" it here. */ - #define wxCRT_TolowerW(c) towlower((wxUChar)(wxChar)(c)) - #define wxCRT_ToupperW(c) towupper((wxUChar)(wxChar)(c)) -#endif /* __GLIBC__/!__GLIBC__ */ - -/* The Android platform, as of 2014, only support most wide-char function with - the exception of multi-byte encoding/decoding functions & wsprintf/wsscanf - See android-ndk-r9d/docs/STANDALONE-TOOLCHAIN.html (section 7.2) - In fact, mbstowcs/wcstombs are defined and compile, but don't work correctly -*/ - -#if defined(__WXQT__) && defined(__ANDROID__) - #define wxNEED_WX_MBSTOWCS - #undef HAVE_WCSRTOMBS - // TODO: use Qt built-in required functionality -#endif - -#if defined(wxNEED_WX_MBSTOWCS) && defined(__ANDROID__) - #warning "Custom mb/wchar conv. only works for ASCII, see Android NDK notes" - WXDLLIMPEXP_BASE size_t android_mbstowcs(wchar_t *, const char *, size_t); - WXDLLIMPEXP_BASE size_t android_wcstombs(char *, const wchar_t *, size_t); - #define wxMbstowcs android_mbstowcs - #define wxWcstombs android_wcstombs -#else - #define wxMbstowcs mbstowcs - #define wxWcstombs wcstombs -#endif - - -/* ------------------------------------------------------------------------- - wx wrappers for CRT functions in both char* and wchar_t* versions - ------------------------------------------------------------------------- */ - -#ifdef __cplusplus - -/* NB: this belongs to wxcrt.h and not this header, but it makes life easier - * for buffer.h and stringimpl.h (both of which must be included before - * string.h, which is required by wxcrt.h) to have them here: */ - -/* safe version of strlen() (returns 0 if passed NULL pointer) */ -inline size_t wxStrlen(const char *s) { return s ? wxCRT_StrlenA(s) : 0; } -inline size_t wxStrlen(const wchar_t *s) { return s ? wxCRT_StrlenW(s) : 0; } -#ifndef wxWCHAR_T_IS_WXCHAR16 - WXDLLIMPEXP_BASE size_t wxStrlen(const wxChar16 *s ); -#endif -#ifndef wxWCHAR_T_IS_WXCHAR32 - WXDLLIMPEXP_BASE size_t wxStrlen(const wxChar32 *s ); -#endif -#define wxWcslen wxCRT_StrlenW - -#define wxStrdupA wxCRT_StrdupA -#define wxStrdupW wxCRT_StrdupW -inline char* wxStrdup(const char *s) { return wxCRT_StrdupA(s); } -inline wchar_t* wxStrdup(const wchar_t *s) { return wxCRT_StrdupW(s); } -#ifndef wxWCHAR_T_IS_WXCHAR16 - WXDLLIMPEXP_BASE wxChar16* wxStrdup(const wxChar16* s); -#endif -#ifndef wxWCHAR_T_IS_WXCHAR32 - WXDLLIMPEXP_BASE wxChar32* wxStrdup(const wxChar32* s); -#endif - -#endif /* __cplusplus */ - -#endif /* _WX_WXCRTBASE_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxcrtvararg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxcrtvararg.h deleted file mode 100644 index b1af0e65..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxcrtvararg.h +++ /dev/null @@ -1,460 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/wxcrtvararg.h -// Purpose: Type-safe ANSI and Unicode builds compatible wrappers for -// printf(), scanf() and related CRT functions -// Author: Joel Farley, Ove Kåven -// Modified by: Vadim Zeitlin, Robert Roebling, Ron Lee -// Created: 2007-02-19 -// Copyright: (c) 2007 REA Elektronik GmbH -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXCRTVARARG_H_ -#define _WX_WXCRTVARARG_H_ - -// NB: User code should include wx/crt.h instead of including this -// header directly. - -#include "wx/wxcrt.h" -#include "wx/strvararg.h" - -#include "wx/string.h" - -// ---------------------------------------------------------------------------- -// CRT functions aliases -// ---------------------------------------------------------------------------- - -/* Required for wxPrintf() etc */ -#include <stdarg.h> - -/* printf() family saga */ - -/* - For many old Unix systems [v]snprintf()/vsscanf() exists in the system - libraries but not in the headers, so we need to declare it ourselves to be - able to use it. - */ -#ifdef __UNIX__ - -#if defined(HAVE_VSNPRINTF) && !defined(HAVE_VSNPRINTF_DECL) -#ifdef __cplusplus - extern "C" -#else - extern -#endif - int vsnprintf(char *str, size_t size, const char *format, va_list ap); -#endif /* !HAVE_VSNPRINTF_DECL */ - -#if defined(HAVE_SNPRINTF) && !defined(HAVE_SNPRINTF_DECL) -#ifdef __cplusplus - extern "C" -#else - extern -#endif - int snprintf(char *str, size_t size, const char *format, ...); -#endif /* !HAVE_SNPRINTF_DECL */ - -#if defined(HAVE_VSSCANF) && !defined(HAVE_VSSCANF_DECL) -#ifdef __cplusplus - extern "C" -#else - extern -#endif - int vsscanf(const char *str, const char *format, va_list ap); -#endif /* !HAVE_VSSCANF_DECL */ - -/* Wrapper for vsnprintf if it's 3rd parameter is non-const. Note: the - * same isn't done for snprintf below, the builtin wxSnprintf_ is used - * instead since it's already a simple wrapper */ -#if defined __cplusplus && defined HAVE_BROKEN_VSNPRINTF_DECL - inline int wx_fixed_vsnprintf(char *str, size_t size, const char *format, va_list ap) - { - return vsnprintf(str, size, (char*)format, ap); - } -#endif - -#endif /* __UNIX__ */ - -/* - mingw32 normally uses MSVCRT which has non-standard vswprintf() and so - normally _vsnwprintf() is used instead, the only exception is when mingw32 - is used with STLPort which does have a standard vswprintf() starting from - version 5.1 which we can use. - */ -#ifdef __MINGW32__ - #if defined(_STLPORT_VERSION) && _STLPORT_VERSION >= 0x510 - #ifndef HAVE_VSWPRINTF - #define HAVE_VSWPRINTF - #endif - #elif defined(HAVE_VSWPRINTF) - /* can't use non-standard vswprintf() */ - #undef HAVE_VSWPRINTF - #endif -#endif /* __MINGW32__ */ - -#if wxUSE_PRINTF_POS_PARAMS - /* - The systems where vsnprintf() supports positional parameters should - define the HAVE_UNIX98_PRINTF symbol. - - On systems which don't (e.g. Windows) we are forced to use - our wxVsnprintf() implementation. - */ - #if defined(HAVE_UNIX98_PRINTF) - #ifdef HAVE_VSWPRINTF - #define wxCRT_VsnprintfW vswprintf - #endif - #ifdef HAVE_BROKEN_VSNPRINTF_DECL - #define wxCRT_VsnprintfA wx_fixed_vsnprintf - #else - #define wxCRT_VsnprintfA vsnprintf - #endif - #else /* !HAVE_UNIX98_PRINTF */ - /* - The only compiler with positional parameters support under Windows - is VC++ 8.0 which provides a new xxprintf_p() functions family. - The 2003 PSDK includes a slightly earlier version of VC8 than the - main release and does not have the printf_p functions. - */ - #if defined _MSC_FULL_VER && _MSC_FULL_VER >= 140050727 - #define wxCRT_VsnprintfA _vsprintf_p - #define wxCRT_VsnprintfW _vswprintf_p - #endif - #endif /* HAVE_UNIX98_PRINTF/!HAVE_UNIX98_PRINTF */ -#else /* !wxUSE_PRINTF_POS_PARAMS */ - /* - We always want to define safe snprintf() function to be used instead of - sprintf(). Some compilers already have it (or rather vsnprintf() which - we really need...), otherwise we implement it using our own printf() - code. - - We define function with a trailing underscore here because the real one - is a wrapper around it as explained below - */ - - #if defined(__VISUALC__) || \ - (defined(__BORLANDC__) && __BORLANDC__ >= 0x540) - #define wxCRT_VsnprintfA _vsnprintf - #define wxCRT_VsnprintfW _vsnwprintf - #else - #if defined(HAVE__VSNWPRINTF) - #define wxCRT_VsnprintfW _vsnwprintf - #elif defined(HAVE_VSWPRINTF) - #define wxCRT_VsnprintfW vswprintf - #endif - - #if defined(HAVE_VSNPRINTF) - #ifdef HAVE_BROKEN_VSNPRINTF_DECL - #define wxCRT_VsnprintfA wx_fixed_vsnprintf - #else - #define wxCRT_VsnprintfA vsnprintf - #endif - #endif - #endif -#endif /* wxUSE_PRINTF_POS_PARAMS/!wxUSE_PRINTF_POS_PARAMS */ - -#ifndef wxCRT_VsnprintfW - /* no (suitable) vsnprintf(), cook our own */ - WXDLLIMPEXP_BASE int - wxCRT_VsnprintfW(wchar_t *buf, size_t len, const wchar_t *format, va_list argptr); - #define wxUSE_WXVSNPRINTFW 1 -#else - #define wxUSE_WXVSNPRINTFW 0 -#endif - -#ifndef wxCRT_VsnprintfA - /* no (suitable) vsnprintf(), cook our own */ - WXDLLIMPEXP_BASE int - wxCRT_VsnprintfA(char *buf, size_t len, const char *format, va_list argptr); - #define wxUSE_WXVSNPRINTFA 1 -#else - #define wxUSE_WXVSNPRINTFA 0 -#endif - -// for wxString code, define wxUSE_WXVSNPRINTF to indicate that wx -// implementation is used no matter what (in UTF-8 build, either *A or *W -// version may be called): -#if !wxUSE_UNICODE - #define wxUSE_WXVSNPRINTF wxUSE_WXVSNPRINTFA -#elif wxUSE_UNICODE_WCHAR - #define wxUSE_WXVSNPRINTF wxUSE_WXVSNPRINTFW -#elif wxUSE_UTF8_LOCALE_ONLY - #define wxUSE_WXVSNPRINTF wxUSE_WXVSNPRINTFA -#else // UTF-8 under any locale - #define wxUSE_WXVSNPRINTF (wxUSE_WXVSNPRINTFA && wxUSE_WXVSNPRINTFW) -#endif - -#define wxCRT_FprintfA fprintf -#define wxCRT_PrintfA printf -#define wxCRT_VfprintfA vfprintf -#define wxCRT_VprintfA vprintf -#define wxCRT_VsprintfA vsprintf - -/* - In Unicode mode we need to have all standard functions such as wprintf() and - so on but not all systems have them so use our own implementations in this - case. - */ -#if !defined(wxHAVE_TCHAR_SUPPORT) && !defined(HAVE_WPRINTF) - #define wxNEED_WPRINTF -#endif -#if !defined(wxHAVE_TCHAR_SUPPORT) && !defined(HAVE_VSWSCANF) && defined(HAVE_VSSCANF) - #define wxNEED_VSWSCANF -#endif - - -#if defined(wxNEED_WPRINTF) - /* - we need to implement all wide character printf functions either because - we don't have them at all or because they don't have the semantics we - need - */ - int wxCRT_PrintfW( const wchar_t *format, ... ); - int wxCRT_FprintfW( FILE *stream, const wchar_t *format, ... ); - int wxCRT_VfprintfW( FILE *stream, const wchar_t *format, va_list ap ); - int wxCRT_VprintfW( const wchar_t *format, va_list ap ); - int wxCRT_VsprintfW( wchar_t *str, const wchar_t *format, va_list ap ); -#else /* !wxNEED_WPRINTF */ - #define wxCRT_FprintfW fwprintf - #define wxCRT_PrintfW wprintf - #define wxCRT_VfprintfW vfwprintf - #define wxCRT_VprintfW vwprintf - - #if defined(__WINDOWS__) && !defined(HAVE_VSWPRINTF) - // only non-standard vswprintf() without buffer size argument can be used here - #define wxCRT_VsprintfW vswprintf - #endif -#endif /* wxNEED_WPRINTF */ - - -/* Required for wxScanf() etc. */ -#define wxCRT_ScanfA scanf -#define wxCRT_SscanfA sscanf -#define wxCRT_FscanfA fscanf - -/* vsscanf() may have a wrong declaration with non-const first parameter, fix - * this by wrapping it if necessary. */ -#if defined __cplusplus && defined HAVE_BROKEN_VSSCANF_DECL - inline int wxCRT_VsscanfA(const char *str, const char *format, va_list ap) - { - return vsscanf(const_cast<char *>(str), format, ap); - } -#else - #define wxCRT_VsscanfA vsscanf -#endif - -#if defined(wxNEED_WPRINTF) - int wxCRT_ScanfW(const wchar_t *format, ...); - int wxCRT_SscanfW(const wchar_t *str, const wchar_t *format, ...); - int wxCRT_FscanfW(FILE *stream, const wchar_t *format, ...); -#else - #define wxCRT_ScanfW wxVMS_USE_STD wscanf - #define wxCRT_SscanfW wxVMS_USE_STD swscanf - #define wxCRT_FscanfW wxVMS_USE_STD fwscanf -#endif -#ifdef wxNEED_VSWSCANF - int wxCRT_VsscanfW(const wchar_t *str, const wchar_t *format, va_list ap); -#else - #define wxCRT_VsscanfW wxVMS_USE_STD vswscanf -#endif - -// ---------------------------------------------------------------------------- -// user-friendly wrappers to CRT functions -// ---------------------------------------------------------------------------- - - // FIXME-UTF8: remove this -#if wxUSE_UNICODE - #define wxCRT_PrintfNative wxCRT_PrintfW - #define wxCRT_FprintfNative wxCRT_FprintfW -#else - #define wxCRT_PrintfNative wxCRT_PrintfA - #define wxCRT_FprintfNative wxCRT_FprintfA -#endif - - -WX_DEFINE_VARARG_FUNC_SANS_N0(int, wxPrintf, 1, (const wxFormatString&), - wxCRT_PrintfNative, wxCRT_PrintfA) -inline int wxPrintf(const wxFormatString& s) -{ - return wxPrintf("%s", s.InputAsString()); -} - -WX_DEFINE_VARARG_FUNC_SANS_N0(int, wxFprintf, 2, (FILE*, const wxFormatString&), - wxCRT_FprintfNative, wxCRT_FprintfA) -inline int wxFprintf(FILE *f, const wxFormatString& s) -{ - return wxFprintf(f, "%s", s.InputAsString()); -} - -// va_list versions of printf functions simply forward to the respective -// CRT function; note that they assume that va_list was created using -// wxArgNormalizer<T>! -#if wxUSE_UNICODE_UTF8 - #if wxUSE_UTF8_LOCALE_ONLY - #define WX_VARARG_VFOO_IMPL(args, implW, implA) \ - return implA args - #else - #define WX_VARARG_VFOO_IMPL(args, implW, implA) \ - if ( wxLocaleIsUtf8 ) return implA args; \ - else return implW args - #endif -#elif wxUSE_UNICODE_WCHAR - #define WX_VARARG_VFOO_IMPL(args, implW, implA) \ - return implW args -#else // ANSI - #define WX_VARARG_VFOO_IMPL(args, implW, implA) \ - return implA args -#endif - -inline int -wxVprintf(const wxString& format, va_list ap) -{ - WX_VARARG_VFOO_IMPL((wxFormatString(format), ap), - wxCRT_VprintfW, wxCRT_VprintfA); -} - -inline int -wxVfprintf(FILE *f, const wxString& format, va_list ap) -{ - WX_VARARG_VFOO_IMPL((f, wxFormatString(format), ap), - wxCRT_VfprintfW, wxCRT_VfprintfA); -} - -#undef WX_VARARG_VFOO_IMPL - - -// wxSprintf() and friends have to be implemented in two forms, one for -// writing to char* buffer and one for writing to wchar_t*: - -#if !wxUSE_UTF8_LOCALE_ONLY -int WXDLLIMPEXP_BASE wxDoSprintfWchar(char *str, const wxChar *format, ...); -#endif -#if wxUSE_UNICODE_UTF8 -int WXDLLIMPEXP_BASE wxDoSprintfUtf8(char *str, const char *format, ...); -#endif -WX_DEFINE_VARARG_FUNC(int, wxSprintf, 2, (char*, const wxFormatString&), - wxDoSprintfWchar, wxDoSprintfUtf8) - -int WXDLLIMPEXP_BASE -wxVsprintf(char *str, const wxString& format, va_list argptr); - -#if !wxUSE_UTF8_LOCALE_ONLY -int WXDLLIMPEXP_BASE wxDoSnprintfWchar(char *str, size_t size, const wxChar *format, ...); -#endif -#if wxUSE_UNICODE_UTF8 -int WXDLLIMPEXP_BASE wxDoSnprintfUtf8(char *str, size_t size, const char *format, ...); -#endif -WX_DEFINE_VARARG_FUNC(int, wxSnprintf, 3, (char*, size_t, const wxFormatString&), - wxDoSnprintfWchar, wxDoSnprintfUtf8) - -int WXDLLIMPEXP_BASE -wxVsnprintf(char *str, size_t size, const wxString& format, va_list argptr); - -#if wxUSE_UNICODE - -#if !wxUSE_UTF8_LOCALE_ONLY -int WXDLLIMPEXP_BASE wxDoSprintfWchar(wchar_t *str, const wxChar *format, ...); -#endif -#if wxUSE_UNICODE_UTF8 -int WXDLLIMPEXP_BASE wxDoSprintfUtf8(wchar_t *str, const char *format, ...); -#endif -WX_DEFINE_VARARG_FUNC(int, wxSprintf, 2, (wchar_t*, const wxFormatString&), - wxDoSprintfWchar, wxDoSprintfUtf8) - -int WXDLLIMPEXP_BASE -wxVsprintf(wchar_t *str, const wxString& format, va_list argptr); - -#if !wxUSE_UTF8_LOCALE_ONLY -int WXDLLIMPEXP_BASE wxDoSnprintfWchar(wchar_t *str, size_t size, const wxChar *format, ...); -#endif -#if wxUSE_UNICODE_UTF8 -int WXDLLIMPEXP_BASE wxDoSnprintfUtf8(wchar_t *str, size_t size, const char *format, ...); -#endif -WX_DEFINE_VARARG_FUNC(int, wxSnprintf, 3, (wchar_t*, size_t, const wxFormatString&), - wxDoSnprintfWchar, wxDoSnprintfUtf8) - -int WXDLLIMPEXP_BASE -wxVsnprintf(wchar_t *str, size_t size, const wxString& format, va_list argptr); - -#endif // wxUSE_UNICODE - -// We can't use wxArgNormalizer<T> for variadic arguments to wxScanf() etc. -// because they are writable, so instead of providing friendly template -// vararg-like functions, we just provide both char* and wchar_t* variants -// of these functions. The type of output variadic arguments for %s must match -// the type of 'str' and 'format' arguments. -// -// For compatibility with earlier wx versions, we also provide wxSscanf() -// version with the first argument (input string) wxString; for this version, -// the type of output string values is determined by the type of format string -// only. - -#define _WX_SCANFUNC_EXTRACT_ARGS_1(x) x -#define _WX_SCANFUNC_EXTRACT_ARGS_2(x,y) x, y -#define _WX_SCANFUNC_EXTRACT_ARGS(N, args) _WX_SCANFUNC_EXTRACT_ARGS_##N args - -#define _WX_VARARG_PASS_WRITABLE(i) a##i - -#define _WX_DEFINE_SCANFUNC(N, dummy1, name, impl, passfixed, numfixed, fixed)\ - template<_WX_VARARG_JOIN(N, _WX_VARARG_TEMPL)> \ - int name(_WX_SCANFUNC_EXTRACT_ARGS(numfixed, fixed), \ - _WX_VARARG_JOIN(N, _WX_VARARG_ARG)) \ - { \ - return impl(_WX_SCANFUNC_EXTRACT_ARGS(numfixed, passfixed), \ - _WX_VARARG_JOIN(N, _WX_VARARG_PASS_WRITABLE)); \ - } - -#define WX_DEFINE_SCANFUNC(name, numfixed, fixed, impl, passfixed) \ - _WX_VARARG_ITER(_WX_VARARG_MAX_ARGS, \ - _WX_DEFINE_SCANFUNC, \ - dummy1, name, impl, passfixed, numfixed, fixed) - -// this is needed to normalize the format string, see src/common/strvararg.cpp -// for more details -#ifdef __WINDOWS__ - #define wxScanfConvertFormatW(fmt) fmt -#else - const wxScopedWCharBuffer - WXDLLIMPEXP_BASE wxScanfConvertFormatW(const wchar_t *format); -#endif - -WX_DEFINE_SCANFUNC(wxScanf, 1, (const char *format), - wxCRT_ScanfA, (format)) -WX_DEFINE_SCANFUNC(wxScanf, 1, (const wchar_t *format), - wxCRT_ScanfW, (wxScanfConvertFormatW(format))) - -WX_DEFINE_SCANFUNC(wxFscanf, 2, (FILE *stream, const char *format), - wxCRT_FscanfA, (stream, format)) -WX_DEFINE_SCANFUNC(wxFscanf, 2, (FILE *stream, const wchar_t *format), - wxCRT_FscanfW, (stream, wxScanfConvertFormatW(format))) - -WX_DEFINE_SCANFUNC(wxSscanf, 2, (const char *str, const char *format), - wxCRT_SscanfA, (str, format)) -WX_DEFINE_SCANFUNC(wxSscanf, 2, (const wchar_t *str, const wchar_t *format), - wxCRT_SscanfW, (str, wxScanfConvertFormatW(format))) -WX_DEFINE_SCANFUNC(wxSscanf, 2, (const wxScopedCharBuffer& str, const char *format), - wxCRT_SscanfA, (str.data(), format)) -WX_DEFINE_SCANFUNC(wxSscanf, 2, (const wxScopedWCharBuffer& str, const wchar_t *format), - wxCRT_SscanfW, (str.data(), wxScanfConvertFormatW(format))) -WX_DEFINE_SCANFUNC(wxSscanf, 2, (const wxString& str, const char *format), - wxCRT_SscanfA, (str.mb_str(), format)) -WX_DEFINE_SCANFUNC(wxSscanf, 2, (const wxString& str, const wchar_t *format), - wxCRT_SscanfW, (str.wc_str(), wxScanfConvertFormatW(format))) -WX_DEFINE_SCANFUNC(wxSscanf, 2, (const wxCStrData& str, const char *format), - wxCRT_SscanfA, (str.AsCharBuf(), format)) -WX_DEFINE_SCANFUNC(wxSscanf, 2, (const wxCStrData& str, const wchar_t *format), - wxCRT_SscanfW, (str.AsWCharBuf(), wxScanfConvertFormatW(format))) - -// Visual C++ doesn't provide vsscanf() -#ifndef __VISUALC___ -int WXDLLIMPEXP_BASE wxVsscanf(const char *str, const char *format, va_list ap); -int WXDLLIMPEXP_BASE wxVsscanf(const wchar_t *str, const wchar_t *format, va_list ap); -int WXDLLIMPEXP_BASE wxVsscanf(const wxScopedCharBuffer& str, const char *format, va_list ap); -int WXDLLIMPEXP_BASE wxVsscanf(const wxScopedWCharBuffer& str, const wchar_t *format, va_list ap); -int WXDLLIMPEXP_BASE wxVsscanf(const wxString& str, const char *format, va_list ap); -int WXDLLIMPEXP_BASE wxVsscanf(const wxString& str, const wchar_t *format, va_list ap); -int WXDLLIMPEXP_BASE wxVsscanf(const wxCStrData& str, const char *format, va_list ap); -int WXDLLIMPEXP_BASE wxVsscanf(const wxCStrData& str, const wchar_t *format, va_list ap); -#endif // !__VISUALC__ - -#endif /* _WX_WXCRTVARARG_H_ */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxhtml.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxhtml.h deleted file mode 100644 index 9759dac0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxhtml.h +++ /dev/null @@ -1,21 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/wxhtml.h -// Purpose: wxHTML library for wxWidgets -// Author: Vaclav Slavik -// Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HTML_H_ -#define _WX_HTML_H_ - -#include "wx/html/htmldefs.h" -#include "wx/html/htmltag.h" -#include "wx/html/htmlcell.h" -#include "wx/html/htmlpars.h" -#include "wx/html/htmlwin.h" -#include "wx/html/winpars.h" -#include "wx/filesys.h" -#include "wx/html/helpctrl.h" - -#endif // __WXHTML_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxprec.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxprec.h deleted file mode 100644 index e1fc0459..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/wxprec.h +++ /dev/null @@ -1,44 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/wxprec.h -// Purpose: Includes the appropriate files for precompiled headers -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// compiler detection; includes setup.h -#include "wx/defs.h" - -// check if to use precompiled headers: do it for most Windows compilers unless -// explicitly disabled by defining NOPCH -#if defined(__VISUALC__) || defined(__BORLANDC__) - // If user did not request NOCPH and we're not building using configure - // then assume user wants precompiled headers. - #if !defined(NOPCH) && !defined(__WX_SETUP_H__) - #define WX_PRECOMP - #endif -#endif - -#ifdef WX_PRECOMP - -// include "wx/chartype.h" first to ensure that UNICODE macro is correctly set -// _before_ including <windows.h> -#include "wx/chartype.h" - -// include standard Windows headers -#if defined(__WINDOWS__) - #include "wx/msw/wrapwin.h" - #include "wx/msw/private.h" -#endif -#if defined(__WXMSW__) - #include "wx/msw/wrapcctl.h" - #include "wx/msw/wrapcdlg.h" - #include "wx/msw/missing.h" -#endif - -// include the most common wx headers -#include "wx/wx.h" - -#endif // WX_PRECOMP diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xlocale.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xlocale.h deleted file mode 100644 index 27493974..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xlocale.h +++ /dev/null @@ -1,342 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// Name: wx/xlocale.h -// Purpose: Header to provide some xlocale wrappers -// Author: Brian Vanderburg II, Vadim Zeitlin -// Created: 2008-01-07 -// Copyright: (c) 2008 Brian Vanderburg II -// 2008 Vadim Zeitlin <vadim@wxwidgets.org> -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -/* - This header defines portable wrappers around xlocale foo_l() functions or - their MSVC proprietary _foo_l() equivalents when they are available and - implements these functions for the "C" locale [only] if they are not. This - allows the program running under the default user locale to still use "C" - locale for operations such as reading data from files where they are stored - using decimal point &c. - - TODO: Currently only the character classification and transformation - functions and number <-> string functions, are implemented, - we also need at least - - formatted IO: scanf_l(), printf_l() &c - - time: strftime_l(), strptime_l() - */ - -#ifndef _WX_XLOCALE_H_ -#define _WX_XLOCALE_H_ - -#include "wx/defs.h" // wxUSE_XLOCALE - -#if wxUSE_XLOCALE - -#include "wx/crt.h" // Includes wx/chartype.h, wx/wxcrt.h(wx/string.h) -#include "wx/intl.h" // wxLanguage - -// The platform-specific locale type -// If wxXLocale_t is not defined, then only "C" locale support is provided -#ifdef wxHAS_XLOCALE_SUPPORT - #if wxCHECK_VISUALC_VERSION(8) - typedef _locale_t wxXLocale_t; - #define wxXLOCALE_IDENT(name) _ ## name - #elif defined(HAVE_LOCALE_T) - #include <locale.h> - #include <xlocale.h> - #include <ctype.h> - #include <stdlib.h> - - #if wxUSE_UNICODE - #include <wctype.h> - #endif - - // Locale type and identifier name - typedef locale_t wxXLocale_t; - - #define wxXLOCALE_IDENT(name) name - #else - #error "Unknown xlocale support" - #endif -#endif // wxHAS_XLOCALE_SUPPORT - - -// wxXLocale is a wrapper around the native type representing a locale. -// -// It is not to be confused with wxLocale, which handles actually changing the -// locale, loading message catalogs, etc. This just stores a locale value. -// The similarity of names is unfortunate, but there doesn't seem to be any -// better alternative right now. Perhaps by wxWidgets 4.0 better naming could -// be used, or this class could become wxLocale (a wrapper for the value), and -// some other class could be used to load the language catalogs or something -// that would be clearer -#ifdef wxHAS_XLOCALE_SUPPORT - -class WXDLLIMPEXP_BASE wxXLocale -{ -public: - // Construct an uninitialized locale - wxXLocale() { m_locale = NULL; } - -#if wxUSE_INTL - // Construct from a symbolic language constant - wxXLocale(wxLanguage lang); -#endif - - // Construct from the given language string - wxXLocale(const char *loc) { Init(loc); } - - // Destroy the locale - ~wxXLocale() { Free(); } - - - // Get the global "C" locale object - static wxXLocale& GetCLocale(); - - // Check if the object represents a valid locale (notice that without - // wxHAS_XLOCALE_SUPPORT the only valid locale is the "C" one) - bool IsOk() const { return m_locale != NULL; } - - // Get the type - wxXLocale_t Get() const { return m_locale; } - - bool operator== (const wxXLocale& loc) const - { return m_locale == loc.m_locale; } - -private: - // Special ctor for the "C" locale, it's only used internally as the user - // code is supposed to use GetCLocale() - wxXLocale(struct wxXLocaleCTag * WXUNUSED(dummy)) { Init("C"); } - - // Create from the given language string (called from ctors) - void Init(const char *loc); - - // Free the locale if it's non-NULL - void Free(); - - - // The corresponding locale handle, NULL if invalid - wxXLocale_t m_locale; - - - // POSIX xlocale API provides a duplocale() function but MSVC locale API - // doesn't give us any means to copy a _locale_t object so we reduce the - // functionality to least common denominator here -- it shouldn't be a - // problem as copying the locale objects shouldn't be often needed - wxDECLARE_NO_COPY_CLASS(wxXLocale); -}; - -#else // !wxHAS_XLOCALE_SUPPORT - -// Skeleton version supporting only the "C" locale for the systems without -// xlocale support -class WXDLLIMPEXP_BASE wxXLocale -{ -public: - // Construct an uninitialized locale - wxXLocale() { m_isC = false; } - - // Construct from a symbolic language constant: unless the language is - // wxLANGUAGE_ENGLISH_US (which we suppose to be the same as "C" locale) - // the object will be invalid - wxXLocale(wxLanguage lang) - { - m_isC = lang == wxLANGUAGE_ENGLISH_US; - } - - // Construct from the given language string: unless the string is "C" or - // "POSIX" the object will be invalid - wxXLocale(const char *loc) - { - m_isC = loc && (strcmp(loc, "C") == 0 || strcmp(loc, "POSIX") == 0); - } - - // Default copy ctor, assignment operator and dtor are ok (or would be if - // we didn't use wxDECLARE_NO_COPY_CLASS() for consistency with the - // xlocale version) - - - // Get the global "C" locale object - static wxXLocale& GetCLocale(); - - // Check if the object represents a valid locale (notice that without - // wxHAS_XLOCALE_SUPPORT the only valid locale is the "C" one) - bool IsOk() const { return m_isC; } - -private: - // Special ctor for the "C" locale, it's only used internally as the user - // code is supposed to use GetCLocale() - wxXLocale(struct wxXLocaleCTag * WXUNUSED(dummy)) { m_isC = true; } - - // Without xlocale support this class can only represent "C" locale, if - // this is false the object is invalid - bool m_isC; - - - // although it's not a problem to copy the objects of this class, we use - // this macro in this implementation for consistency with the xlocale-based - // one which can't be copied when using MSVC locale API - wxDECLARE_NO_COPY_CLASS(wxXLocale); -}; - -#endif // wxHAS_XLOCALE_SUPPORT/!wxHAS_XLOCALE_SUPPORT - - -// A shorter synonym for the most commonly used locale object -#define wxCLocale (wxXLocale::GetCLocale()) -extern WXDLLIMPEXP_DATA_BASE(wxXLocale) wxNullXLocale; - -// Wrappers for various functions: -#ifdef wxHAS_XLOCALE_SUPPORT - - // ctype functions - #define wxCRT_Isalnum_lA wxXLOCALE_IDENT(isalnum_l) - #define wxCRT_Isalpha_lA wxXLOCALE_IDENT(isalpha_l) - #define wxCRT_Iscntrl_lA wxXLOCALE_IDENT(iscntrl_l) - #define wxCRT_Isdigit_lA wxXLOCALE_IDENT(isdigit_l) - #define wxCRT_Isgraph_lA wxXLOCALE_IDENT(isgraph_l) - #define wxCRT_Islower_lA wxXLOCALE_IDENT(islower_l) - #define wxCRT_Isprint_lA wxXLOCALE_IDENT(isprint_l) - #define wxCRT_Ispunct_lA wxXLOCALE_IDENT(ispunct_l) - #define wxCRT_Isspace_lA wxXLOCALE_IDENT(isspace_l) - #define wxCRT_Isupper_lA wxXLOCALE_IDENT(isupper_l) - #define wxCRT_Isxdigit_lA wxXLOCALE_IDENT(isxdigit_l) - #define wxCRT_Tolower_lA wxXLOCALE_IDENT(tolower_l) - #define wxCRT_Toupper_lA wxXLOCALE_IDENT(toupper_l) - - inline int wxIsalnum_l(char c, const wxXLocale& loc) - { return wxCRT_Isalnum_lA(static_cast<unsigned char>(c), loc.Get()); } - inline int wxIsalpha_l(char c, const wxXLocale& loc) - { return wxCRT_Isalpha_lA(static_cast<unsigned char>(c), loc.Get()); } - inline int wxIscntrl_l(char c, const wxXLocale& loc) - { return wxCRT_Iscntrl_lA(static_cast<unsigned char>(c), loc.Get()); } - inline int wxIsdigit_l(char c, const wxXLocale& loc) - { return wxCRT_Isdigit_lA(static_cast<unsigned char>(c), loc.Get()); } - inline int wxIsgraph_l(char c, const wxXLocale& loc) - { return wxCRT_Isgraph_lA(static_cast<unsigned char>(c), loc.Get()); } - inline int wxIslower_l(char c, const wxXLocale& loc) - { return wxCRT_Islower_lA(static_cast<unsigned char>(c), loc.Get()); } - inline int wxIsprint_l(char c, const wxXLocale& loc) - { return wxCRT_Isprint_lA(static_cast<unsigned char>(c), loc.Get()); } - inline int wxIspunct_l(char c, const wxXLocale& loc) - { return wxCRT_Ispunct_lA(static_cast<unsigned char>(c), loc.Get()); } - inline int wxIsspace_l(char c, const wxXLocale& loc) - { return wxCRT_Isspace_lA(static_cast<unsigned char>(c), loc.Get()); } - inline int wxIsupper_l(char c, const wxXLocale& loc) - { return wxCRT_Isupper_lA(static_cast<unsigned char>(c), loc.Get()); } - inline int wxIsxdigit_l(char c, const wxXLocale& loc) - { return wxCRT_Isxdigit_lA(static_cast<unsigned char>(c), loc.Get()); } - inline int wxTolower_l(char c, const wxXLocale& loc) - { return wxCRT_Tolower_lA(static_cast<unsigned char>(c), loc.Get()); } - inline int wxToupper_l(char c, const wxXLocale& loc) - { return wxCRT_Toupper_lA(static_cast<unsigned char>(c), loc.Get()); } - - - // stdlib functions for numeric <-> string conversion - // NOTE: GNU libc does not have ato[fil]_l functions; - // MSVC++8 does not have _strto[u]ll_l functions; - // thus we take the minimal set of functions provided in both environments: - - #define wxCRT_Strtod_lA wxXLOCALE_IDENT(strtod_l) - #define wxCRT_Strtol_lA wxXLOCALE_IDENT(strtol_l) - #define wxCRT_Strtoul_lA wxXLOCALE_IDENT(strtoul_l) - - inline double wxStrtod_lA(const char *c, char **endptr, const wxXLocale& loc) - { return wxCRT_Strtod_lA(c, endptr, loc.Get()); } - inline long wxStrtol_lA(const char *c, char **endptr, int base, const wxXLocale& loc) - { return wxCRT_Strtol_lA(c, endptr, base, loc.Get()); } - inline unsigned long wxStrtoul_lA(const char *c, char **endptr, int base, const wxXLocale& loc) - { return wxCRT_Strtoul_lA(c, endptr, base, loc.Get()); } - - #if wxUSE_UNICODE - - // ctype functions - #define wxCRT_Isalnum_lW wxXLOCALE_IDENT(iswalnum_l) - #define wxCRT_Isalpha_lW wxXLOCALE_IDENT(iswalpha_l) - #define wxCRT_Iscntrl_lW wxXLOCALE_IDENT(iswcntrl_l) - #define wxCRT_Isdigit_lW wxXLOCALE_IDENT(iswdigit_l) - #define wxCRT_Isgraph_lW wxXLOCALE_IDENT(iswgraph_l) - #define wxCRT_Islower_lW wxXLOCALE_IDENT(iswlower_l) - #define wxCRT_Isprint_lW wxXLOCALE_IDENT(iswprint_l) - #define wxCRT_Ispunct_lW wxXLOCALE_IDENT(iswpunct_l) - #define wxCRT_Isspace_lW wxXLOCALE_IDENT(iswspace_l) - #define wxCRT_Isupper_lW wxXLOCALE_IDENT(iswupper_l) - #define wxCRT_Isxdigit_lW wxXLOCALE_IDENT(iswxdigit_l) - #define wxCRT_Tolower_lW wxXLOCALE_IDENT(towlower_l) - #define wxCRT_Toupper_lW wxXLOCALE_IDENT(towupper_l) - - inline int wxIsalnum_l(wchar_t c, const wxXLocale& loc) - { return wxCRT_Isalnum_lW(c, loc.Get()); } - inline int wxIsalpha_l(wchar_t c, const wxXLocale& loc) - { return wxCRT_Isalpha_lW(c, loc.Get()); } - inline int wxIscntrl_l(wchar_t c, const wxXLocale& loc) - { return wxCRT_Iscntrl_lW(c, loc.Get()); } - inline int wxIsdigit_l(wchar_t c, const wxXLocale& loc) - { return wxCRT_Isdigit_lW(c, loc.Get()); } - inline int wxIsgraph_l(wchar_t c, const wxXLocale& loc) - { return wxCRT_Isgraph_lW(c, loc.Get()); } - inline int wxIslower_l(wchar_t c, const wxXLocale& loc) - { return wxCRT_Islower_lW(c, loc.Get()); } - inline int wxIsprint_l(wchar_t c, const wxXLocale& loc) - { return wxCRT_Isprint_lW(c, loc.Get()); } - inline int wxIspunct_l(wchar_t c, const wxXLocale& loc) - { return wxCRT_Ispunct_lW(c, loc.Get()); } - inline int wxIsspace_l(wchar_t c, const wxXLocale& loc) - { return wxCRT_Isspace_lW(c, loc.Get()); } - inline int wxIsupper_l(wchar_t c, const wxXLocale& loc) - { return wxCRT_Isupper_lW(c, loc.Get()); } - inline int wxIsxdigit_l(wchar_t c, const wxXLocale& loc) - { return wxCRT_Isxdigit_lW(c, loc.Get()); } - inline wchar_t wxTolower_l(wchar_t c, const wxXLocale& loc) - { return wxCRT_Tolower_lW(c, loc.Get()); } - inline wchar_t wxToupper_l(wchar_t c, const wxXLocale& loc) - { return wxCRT_Toupper_lW(c, loc.Get()); } - - - // stdlib functions for numeric <-> string conversion - // (see notes above about missing functions) - #define wxCRT_Strtod_lW wxXLOCALE_IDENT(wcstod_l) - #define wxCRT_Strtol_lW wxXLOCALE_IDENT(wcstol_l) - #define wxCRT_Strtoul_lW wxXLOCALE_IDENT(wcstoul_l) - - inline double wxStrtod_l(const wchar_t *c, wchar_t **endptr, const wxXLocale& loc) - { return wxCRT_Strtod_lW(c, endptr, loc.Get()); } - inline long wxStrtol_l(const wchar_t *c, wchar_t **endptr, int base, const wxXLocale& loc) - { return wxCRT_Strtol_lW(c, endptr, base, loc.Get()); } - inline unsigned long wxStrtoul_l(const wchar_t *c, wchar_t **endptr, int base, const wxXLocale& loc) - { return wxCRT_Strtoul_lW(c, endptr, base, loc.Get()); } - #else // !wxUSE_UNICODE - inline double wxStrtod_l(const char *c, char **endptr, const wxXLocale& loc) - { return wxCRT_Strtod_lA(c, endptr, loc.Get()); } - inline long wxStrtol_l(const char *c, char **endptr, int base, const wxXLocale& loc) - { return wxCRT_Strtol_lA(c, endptr, base, loc.Get()); } - inline unsigned long wxStrtoul_l(const char *c, char **endptr, int base, const wxXLocale& loc) - { return wxCRT_Strtoul_lA(c, endptr, base, loc.Get()); } - #endif // wxUSE_UNICODE -#else // !wxHAS_XLOCALE_SUPPORT - // ctype functions - int WXDLLIMPEXP_BASE wxIsalnum_l(const wxUniChar& c, const wxXLocale& loc); - int WXDLLIMPEXP_BASE wxIsalpha_l(const wxUniChar& c, const wxXLocale& loc); - int WXDLLIMPEXP_BASE wxIscntrl_l(const wxUniChar& c, const wxXLocale& loc); - int WXDLLIMPEXP_BASE wxIsdigit_l(const wxUniChar& c, const wxXLocale& loc); - int WXDLLIMPEXP_BASE wxIsgraph_l(const wxUniChar& c, const wxXLocale& loc); - int WXDLLIMPEXP_BASE wxIslower_l(const wxUniChar& c, const wxXLocale& loc); - int WXDLLIMPEXP_BASE wxIsprint_l(const wxUniChar& c, const wxXLocale& loc); - int WXDLLIMPEXP_BASE wxIspunct_l(const wxUniChar& c, const wxXLocale& loc); - int WXDLLIMPEXP_BASE wxIsspace_l(const wxUniChar& c, const wxXLocale& loc); - int WXDLLIMPEXP_BASE wxIsupper_l(const wxUniChar& c, const wxXLocale& loc); - int WXDLLIMPEXP_BASE wxIsxdigit_l(const wxUniChar& c, const wxXLocale& loc); - int WXDLLIMPEXP_BASE wxTolower_l(const wxUniChar& c, const wxXLocale& loc); - int WXDLLIMPEXP_BASE wxToupper_l(const wxUniChar& c, const wxXLocale& loc); - - // stdlib functions - double WXDLLIMPEXP_BASE wxStrtod_l(const wchar_t* str, wchar_t **endptr, const wxXLocale& loc); - double WXDLLIMPEXP_BASE wxStrtod_l(const char* str, char **endptr, const wxXLocale& loc); - long WXDLLIMPEXP_BASE wxStrtol_l(const wchar_t* str, wchar_t **endptr, int base, const wxXLocale& loc); - long WXDLLIMPEXP_BASE wxStrtol_l(const char* str, char **endptr, int base, const wxXLocale& loc); - unsigned long WXDLLIMPEXP_BASE wxStrtoul_l(const wchar_t* str, wchar_t **endptr, int base, const wxXLocale& loc); - unsigned long WXDLLIMPEXP_BASE wxStrtoul_l(const char* str, char **endptr, int base, const wxXLocale& loc); - -#endif // wxHAS_XLOCALE_SUPPORT/!wxHAS_XLOCALE_SUPPORT - -#endif // wxUSE_XLOCALE - -#endif // _WX_XLOCALE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xml/xml.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xml/xml.h deleted file mode 100644 index 4701f681..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xml/xml.h +++ /dev/null @@ -1,357 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xml/xml.h -// Purpose: wxXmlDocument - XML parser & data holder class -// Author: Vaclav Slavik -// Created: 2000/03/05 -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef _WX_XML_H_ -#define _WX_XML_H_ - -#include "wx/defs.h" - -#if wxUSE_XML - -#include "wx/string.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/versioninfo.h" - -#ifdef WXMAKINGDLL_XML - #define WXDLLIMPEXP_XML WXEXPORT -#elif defined(WXUSINGDLL) - #define WXDLLIMPEXP_XML WXIMPORT -#else // not making nor using DLL - #define WXDLLIMPEXP_XML -#endif - -class WXDLLIMPEXP_FWD_XML wxXmlNode; -class WXDLLIMPEXP_FWD_XML wxXmlAttribute; -class WXDLLIMPEXP_FWD_XML wxXmlDocument; -class WXDLLIMPEXP_FWD_XML wxXmlIOHandler; -class WXDLLIMPEXP_FWD_BASE wxInputStream; -class WXDLLIMPEXP_FWD_BASE wxOutputStream; - -// Represents XML node type. -enum wxXmlNodeType -{ - // note: values are synchronized with xmlElementType from libxml - wxXML_ELEMENT_NODE = 1, - wxXML_ATTRIBUTE_NODE = 2, - wxXML_TEXT_NODE = 3, - wxXML_CDATA_SECTION_NODE = 4, - wxXML_ENTITY_REF_NODE = 5, - wxXML_ENTITY_NODE = 6, - wxXML_PI_NODE = 7, - wxXML_COMMENT_NODE = 8, - wxXML_DOCUMENT_NODE = 9, - wxXML_DOCUMENT_TYPE_NODE = 10, - wxXML_DOCUMENT_FRAG_NODE = 11, - wxXML_NOTATION_NODE = 12, - wxXML_HTML_DOCUMENT_NODE = 13 -}; - - -// Represents node property(ies). -// Example: in <img src="hello.gif" id="3"/> "src" is property with value -// "hello.gif" and "id" is prop. with value "3". - -class WXDLLIMPEXP_XML wxXmlAttribute -{ -public: - wxXmlAttribute() : m_next(NULL) {} - wxXmlAttribute(const wxString& name, const wxString& value, - wxXmlAttribute *next = NULL) - : m_name(name), m_value(value), m_next(next) {} - virtual ~wxXmlAttribute() {} - - const wxString& GetName() const { return m_name; } - const wxString& GetValue() const { return m_value; } - wxXmlAttribute *GetNext() const { return m_next; } - - void SetName(const wxString& name) { m_name = name; } - void SetValue(const wxString& value) { m_value = value; } - void SetNext(wxXmlAttribute *next) { m_next = next; } - -private: - wxString m_name; - wxString m_value; - wxXmlAttribute *m_next; -}; - -#if WXWIN_COMPATIBILITY_2_8 - // NB: #define is used instead of typedef so that forward declarations - // continue to work - #define wxXmlProperty wxXmlAttribute -#endif - - -// Represents node in XML document. Node has name and may have content and -// attributes. Most common node types are wxXML_TEXT_NODE (name and attributes -// are irrelevant) and wxXML_ELEMENT_NODE (e.g. in <title>hi there is -// element with name="title", irrelevant content and one child (wxXML_TEXT_NODE -// with content="hi"). -// -// If wxUSE_UNICODE is 0, all strings are encoded in the encoding given to Load -// (default is UTF-8). - -class WXDLLIMPEXP_XML wxXmlNode -{ -public: - wxXmlNode() - : m_attrs(NULL), m_parent(NULL), m_children(NULL), m_next(NULL), - m_lineNo(-1), m_noConversion(false) - { - } - - wxXmlNode(wxXmlNode *parent, wxXmlNodeType type, - const wxString& name, const wxString& content = wxEmptyString, - wxXmlAttribute *attrs = NULL, wxXmlNode *next = NULL, - int lineNo = -1); - - virtual ~wxXmlNode(); - - // copy ctor & operator=. Note that this does NOT copy siblings - // and parent pointer, i.e. m_parent and m_next will be NULL - // after using copy ctor and are never unmodified by operator=. - // On the other hand, it DOES copy children and attributes. - wxXmlNode(const wxXmlNode& node); - wxXmlNode& operator=(const wxXmlNode& node); - - // user-friendly creation: - wxXmlNode(wxXmlNodeType type, const wxString& name, - const wxString& content = wxEmptyString, - int lineNo = -1); - virtual void AddChild(wxXmlNode *child); - virtual bool InsertChild(wxXmlNode *child, wxXmlNode *followingNode); - virtual bool InsertChildAfter(wxXmlNode *child, wxXmlNode *precedingNode); - virtual bool RemoveChild(wxXmlNode *child); - virtual void AddAttribute(const wxString& name, const wxString& value); - virtual bool DeleteAttribute(const wxString& name); - - // access methods: - wxXmlNodeType GetType() const { return m_type; } - const wxString& GetName() const { return m_name; } - const wxString& GetContent() const { return m_content; } - - bool IsWhitespaceOnly() const; - int GetDepth(wxXmlNode *grandparent = NULL) const; - - // Gets node content from wxXML_ENTITY_NODE - // The problem is, content is represented as - // wxXML_ENTITY_NODE name="tag", content="" - // |-- wxXML_TEXT_NODE or - // wxXML_CDATA_SECTION_NODE name="" content="content" - wxString GetNodeContent() const; - - wxXmlNode *GetParent() const { return m_parent; } - wxXmlNode *GetNext() const { return m_next; } - wxXmlNode *GetChildren() const { return m_children; } - - wxXmlAttribute *GetAttributes() const { return m_attrs; } - bool GetAttribute(const wxString& attrName, wxString *value) const; - wxString GetAttribute(const wxString& attrName, - const wxString& defaultVal = wxEmptyString) const; - bool HasAttribute(const wxString& attrName) const; - - int GetLineNumber() const { return m_lineNo; } - - void SetType(wxXmlNodeType type) { m_type = type; } - void SetName(const wxString& name) { m_name = name; } - void SetContent(const wxString& con) { m_content = con; } - - void SetParent(wxXmlNode *parent) { m_parent = parent; } - void SetNext(wxXmlNode *next) { m_next = next; } - void SetChildren(wxXmlNode *child) { m_children = child; } - - void SetAttributes(wxXmlAttribute *attr) { m_attrs = attr; } - virtual void AddAttribute(wxXmlAttribute *attr); - - // If true, don't do encoding conversion to improve efficiency - node content is ACII text - bool GetNoConversion() const { return m_noConversion; } - void SetNoConversion(bool noconversion) { m_noConversion = noconversion; } - -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED( inline wxXmlAttribute *GetProperties() const ); - wxDEPRECATED( inline bool GetPropVal(const wxString& propName, - wxString *value) const ); - wxDEPRECATED( inline wxString GetPropVal(const wxString& propName, - const wxString& defaultVal) const ); - wxDEPRECATED( inline bool HasProp(const wxString& propName) const ); - - wxDEPRECATED( inline void SetProperties(wxXmlAttribute *prop) ); -#endif // WXWIN_COMPATIBILITY_2_8 - - // The following three functions are backward compatibility, but because - // they were virtual, we must make it possible to override them. This - // is done by calling e.g. AddProperty() from AddAttribute(), so we have - // to keep AddProperty() even if 2.8 compatibility is off. To prevent - // old code from compiling in that case, we make them private and - // non-virtual. (This can be removed when WXWIN_COMPATIBILITY_2_8 is - // removed, we'll have just *Attribute versions then.) -#if WXWIN_COMPATIBILITY_2_8 - wxDEPRECATED_BUT_USED_INTERNALLY( - virtual void AddProperty(const wxString& name, const wxString& value) ); - wxDEPRECATED_BUT_USED_INTERNALLY( - virtual bool DeleteProperty(const wxString& name) ); - wxDEPRECATED_BUT_USED_INTERNALLY( - virtual void AddProperty(wxXmlAttribute *attr) ); -#else -private: - void AddProperty(const wxString& name, const wxString& value); - bool DeleteProperty(const wxString& name); - void AddProperty(wxXmlAttribute *attr); -#endif // WXWIN_COMPATIBILITY_2_8/!WXWIN_COMPATIBILITY_2_8 - -private: - wxXmlNodeType m_type; - wxString m_name; - wxString m_content; - wxXmlAttribute *m_attrs; - wxXmlNode *m_parent, *m_children, *m_next; - int m_lineNo; // line number in original file, or -1 - bool m_noConversion; // don't do encoding conversion - node is plain text - - void DoFree(); - void DoCopy(const wxXmlNode& node); -}; - -#if WXWIN_COMPATIBILITY_2_8 -inline wxXmlAttribute *wxXmlNode::GetProperties() const - { return GetAttributes(); } -inline bool wxXmlNode::GetPropVal(const wxString& propName, - wxString *value) const - { return GetAttribute(propName, value); } -inline wxString wxXmlNode::GetPropVal(const wxString& propName, - const wxString& defaultVal) const - { return GetAttribute(propName, defaultVal); } -inline bool wxXmlNode::HasProp(const wxString& propName) const - { return HasAttribute(propName); } -inline void wxXmlNode::SetProperties(wxXmlAttribute *prop) - { SetAttributes(prop); } -#endif // WXWIN_COMPATIBILITY_2_8 - - - -class WXDLLIMPEXP_XML wxXmlDoctype -{ -public: - explicit - wxXmlDoctype(const wxString& name = wxString(), - const wxString& sysid = wxString(), - const wxString& pubid = wxString()) - : m_rootName(name), m_systemId(sysid), m_publicId(pubid) - {} - - // Default copy ctor and assignment operators are ok. - - bool IsValid() const; - void Clear(); - - const wxString& GetRootName() const { return m_rootName; } - const wxString& GetSystemId() const { return m_systemId; } - const wxString& GetPublicId() const { return m_publicId; } - - wxString GetFullString() const; - -private: - wxString m_rootName; - wxString m_systemId; - wxString m_publicId; -}; - - - -// special indentation value for wxXmlDocument::Save -#define wxXML_NO_INDENTATION (-1) - -// flags for wxXmlDocument::Load -enum wxXmlDocumentLoadFlag -{ - wxXMLDOC_NONE = 0, - wxXMLDOC_KEEP_WHITESPACE_NODES = 1 -}; - - -// This class holds XML data/document as parsed by XML parser. - -class WXDLLIMPEXP_XML wxXmlDocument : public wxObject -{ -public: - wxXmlDocument(); - wxXmlDocument(const wxString& filename, - const wxString& encoding = wxT("UTF-8")); - wxXmlDocument(wxInputStream& stream, - const wxString& encoding = wxT("UTF-8")); - virtual ~wxXmlDocument() { wxDELETE(m_docNode); } - - wxXmlDocument(const wxXmlDocument& doc); - wxXmlDocument& operator=(const wxXmlDocument& doc); - - // Parses .xml file and loads data. Returns TRUE on success, FALSE - // otherwise. - virtual bool Load(const wxString& filename, - const wxString& encoding = wxT("UTF-8"), int flags = wxXMLDOC_NONE); - virtual bool Load(wxInputStream& stream, - const wxString& encoding = wxT("UTF-8"), int flags = wxXMLDOC_NONE); - - // Saves document as .xml file. - virtual bool Save(const wxString& filename, int indentstep = 2) const; - virtual bool Save(wxOutputStream& stream, int indentstep = 2) const; - - bool IsOk() const { return GetRoot() != NULL; } - - // Returns root node of the document. - wxXmlNode *GetRoot() const; - // Returns the document node. - wxXmlNode *GetDocumentNode() const { return m_docNode; } - - - // Returns version of document (may be empty). - const wxString& GetVersion() const { return m_version; } - // Returns encoding of document (may be empty). - // Note: this is the encoding original file was saved in, *not* the - // encoding of in-memory representation! - const wxString& GetFileEncoding() const { return m_fileEncoding; } - const wxXmlDoctype& GetDoctype() const { return m_doctype; } - - // Write-access methods: - wxXmlNode *DetachDocumentNode() { wxXmlNode *old=m_docNode; m_docNode=NULL; return old; } - void SetDocumentNode(wxXmlNode *node) { wxDELETE(m_docNode); m_docNode = node; } - wxXmlNode *DetachRoot(); - void SetRoot(wxXmlNode *node); - void SetVersion(const wxString& version) { m_version = version; } - void SetFileEncoding(const wxString& encoding) { m_fileEncoding = encoding; } - void SetDoctype(const wxXmlDoctype& doctype) { m_doctype = doctype; } - void AppendToProlog(wxXmlNode *node); - -#if !wxUSE_UNICODE - // Returns encoding of in-memory representation of the document - // (same as passed to Load or ctor, defaults to UTF-8). - // NB: this is meaningless in Unicode build where data are stored as wchar_t* - wxString GetEncoding() const { return m_encoding; } - void SetEncoding(const wxString& enc) { m_encoding = enc; } -#endif - - static wxVersionInfo GetLibraryVersionInfo(); - -private: - wxString m_version; - wxString m_fileEncoding; -#if !wxUSE_UNICODE - wxString m_encoding; -#endif - wxXmlDoctype m_doctype; - wxXmlNode *m_docNode; - - void DoCopy(const wxXmlDocument& doc); - - wxDECLARE_CLASS(wxXmlDocument); -}; - -#endif // wxUSE_XML - -#endif // _WX_XML_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xpmdecod.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xpmdecod.h deleted file mode 100644 index 68edc924..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xpmdecod.h +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xpmdecod.h -// Purpose: wxXPMDecoder, XPM reader for wxImage and wxBitmap -// Author: Vaclav Slavik -// Copyright: (c) 2001 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XPMDECOD_H_ -#define _WX_XPMDECOD_H_ - -#include "wx/defs.h" - -#if wxUSE_IMAGE && wxUSE_XPM - -class WXDLLIMPEXP_FWD_CORE wxImage; -class WXDLLIMPEXP_FWD_BASE wxInputStream; - -// -------------------------------------------------------------------------- -// wxXPMDecoder class -// -------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxXPMDecoder -{ -public: - // constructor, destructor, etc. - wxXPMDecoder() {} - ~wxXPMDecoder() {} - -#if wxUSE_STREAMS - // Is the stream XPM file? - // NOTE: this function modifies the current stream position - bool CanRead(wxInputStream& stream); - - // Read XPM file from the stream, parse it and create image from it - wxImage ReadFile(wxInputStream& stream); -#endif - - // Read directly from XPM data (as passed to wxBitmap ctor): - wxImage ReadData(const char* const* xpm_data); - -#ifdef __BORLANDC__ - // needed for Borland 5.5 - wxImage ReadData(char** xpm_data) - { return ReadData(const_cast(xpm_data)); } -#endif -}; - -#endif // wxUSE_IMAGE && wxUSE_XPM - -#endif // _WX_XPM_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xpmhand.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xpmhand.h deleted file mode 100644 index c7f8d0de..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xpmhand.h +++ /dev/null @@ -1,21 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xpmhand.h -// Purpose: XPM handler base header -// Author: Julian Smart -// Modified by: -// Created: -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XPMHAND_H_BASE_ -#define _WX_XPMHAND_H_BASE_ - -// Only wxMSW currently defines a separate XPM handler, since -// mostly Windows apps won't need XPMs. -#if defined(__WXMSW__) -#error xpmhand.h is no longer needed since wxImage now handles XPMs. -#endif - -#endif - // _WX_XPMHAND_H_BASE_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_activityindicator.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_activityindicator.h deleted file mode 100644 index b6a0e8c3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_activityindicator.h +++ /dev/null @@ -1,31 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_activityindicator.h -// Purpose: Declaration of wxActivityIndicator XRC handler. -// Author: Vadim Zeitlin -// Created: 2015-03-18 -// Copyright: (c) 2015 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_ACTIVITYINDICATOR_H_ -#define _WX_XH_ACTIVITYINDICATOR_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_ACTIVITYINDICATOR - -class WXDLLIMPEXP_XRC wxActivityIndicatorXmlHandler : public wxXmlResourceHandler -{ -public: - wxActivityIndicatorXmlHandler(); - - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - wxDECLARE_DYNAMIC_CLASS(wxActivityIndicatorXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_ACTIVITYINDICATOR - -#endif // _WX_XH_ACTIVITYINDICATOR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_all.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_all.h deleted file mode 100644 index 379faa9a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_all.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_all.h -// Purpose: includes all xh_*.h files -// Author: Vaclav Slavik -// Created: 2000/03/05 -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_ALL_H_ -#define _WX_XH_ALL_H_ - - -// Existing handlers: - -#include "wx/xrc/xh_activityindicator.h" -#include "wx/xrc/xh_animatctrl.h" -#include "wx/xrc/xh_bannerwindow.h" -#include "wx/xrc/xh_bmp.h" -#include "wx/xrc/xh_bmpbt.h" -#include "wx/xrc/xh_bmpcbox.h" -#include "wx/xrc/xh_bttn.h" -#include "wx/xrc/xh_cald.h" -#include "wx/xrc/xh_chckb.h" -#include "wx/xrc/xh_chckl.h" -#include "wx/xrc/xh_choic.h" -#include "wx/xrc/xh_choicbk.h" -#include "wx/xrc/xh_clrpicker.h" -#include "wx/xrc/xh_cmdlinkbn.h" -#include "wx/xrc/xh_collpane.h" -#include "wx/xrc/xh_combo.h" -#include "wx/xrc/xh_comboctrl.h" -#include "wx/xrc/xh_datectrl.h" -#include "wx/xrc/xh_dirpicker.h" -#include "wx/xrc/xh_dlg.h" -#include "wx/xrc/xh_editlbox.h" -#include "wx/xrc/xh_filectrl.h" -#include "wx/xrc/xh_filepicker.h" -#include "wx/xrc/xh_fontpicker.h" -#include "wx/xrc/xh_frame.h" -#include "wx/xrc/xh_gauge.h" -#include "wx/xrc/xh_gdctl.h" -#include "wx/xrc/xh_grid.h" -#include "wx/xrc/xh_html.h" -#include "wx/xrc/xh_htmllbox.h" -#include "wx/xrc/xh_hyperlink.h" -#include "wx/xrc/xh_listb.h" -#include "wx/xrc/xh_listc.h" -#include "wx/xrc/xh_listbk.h" -#include "wx/xrc/xh_mdi.h" -#include "wx/xrc/xh_menu.h" -#include "wx/xrc/xh_notbk.h" -#include "wx/xrc/xh_odcombo.h" -#include "wx/xrc/xh_panel.h" -#include "wx/xrc/xh_propdlg.h" -#include "wx/xrc/xh_radbt.h" -#include "wx/xrc/xh_radbx.h" -#include "wx/xrc/xh_scrol.h" -#include "wx/xrc/xh_scwin.h" -#include "wx/xrc/xh_simplebook.h" -#include "wx/xrc/xh_sizer.h" -#include "wx/xrc/xh_slidr.h" -#include "wx/xrc/xh_spin.h" -#include "wx/xrc/xh_split.h" -#include "wx/xrc/xh_srchctrl.h" -#include "wx/xrc/xh_statbar.h" -#include "wx/xrc/xh_stbox.h" -#include "wx/xrc/xh_stbmp.h" -#include "wx/xrc/xh_sttxt.h" -#include "wx/xrc/xh_stlin.h" -#include "wx/xrc/xh_text.h" -#include "wx/xrc/xh_tglbtn.h" -#include "wx/xrc/xh_timectrl.h" -#include "wx/xrc/xh_toolb.h" -#include "wx/xrc/xh_toolbk.h" -#include "wx/xrc/xh_tree.h" -#include "wx/xrc/xh_treebk.h" -#include "wx/xrc/xh_unkwn.h" -#include "wx/xrc/xh_wizrd.h" - -#endif // _WX_XH_ALL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_animatctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_animatctrl.h deleted file mode 100644 index 5af50baa..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_animatctrl.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_animatctrl.h -// Purpose: XML resource handler for wxAnimationCtrl -// Author: Francesco Montorsi -// Created: 2006-10-15 -// Copyright: (c) 2006 Francesco Montorsi -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_ANIMATIONCTRL_H_ -#define _WX_XH_ANIMATIONCTRL_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_ANIMATIONCTRL - -class WXDLLIMPEXP_XRC wxAnimationCtrlXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxAnimationCtrlXmlHandler); - -public: - wxAnimationCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_ANIMATIONCTRL - -#endif // _WX_XH_ANIMATIONCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_auinotbk.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_auinotbk.h deleted file mode 100644 index 787fa9a0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_auinotbk.h +++ /dev/null @@ -1,35 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_auinotbk.h -// Purpose: XML resource handler for wxAuiNotebook -// Author: Steve Lamerton -// Created: 2009-06-12 -// Copyright: (c) 2009 Steve Lamerton -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XRC_XH_AUINOTEBOOK_H_ -#define _WX_XRC_XH_AUINOTEBOOK_H_ - -#include "wx/xrc/xmlres.h" - -class WXDLLIMPEXP_FWD_AUI wxAuiNotebook; - -#if wxUSE_XRC && wxUSE_AUI - -class WXDLLIMPEXP_AUI wxAuiNotebookXmlHandler : public wxXmlResourceHandler -{ -public: - wxAuiNotebookXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_isInside; - wxAuiNotebook *m_notebook; - - wxDECLARE_DYNAMIC_CLASS(wxAuiNotebookXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_AUI - -#endif // _WX_XRC_XH_AUINOTEBOOK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_auitoolb.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_auitoolb.h deleted file mode 100644 index 66c722ec..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_auitoolb.h +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_toolb.h -// Purpose: XML resource handler for wxAuiToolBar -// Author: Rodolphe Suescun -// Created: 2013-11-23 -// Copyright: (c) 2013 Rodolphe Suescun -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_AUITOOLB_H_ -#define _WX_XH_AUITOOLB_H_ - -#include "wx/aui/auibar.h" -#include "wx/menu.h" -#include "wx/vector.h" -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_AUI - -class WXDLLIMPEXP_FWD_AUI wxAuiToolBar; - -class WXDLLIMPEXP_AUI wxAuiToolBarXmlHandler : public wxXmlResourceHandler -{ -public: - wxAuiToolBarXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_isInside; - wxAuiToolBar *m_toolbar; - wxSize m_toolSize; - - class MenuHandler : public wxEvtHandler - { - public: - void OnDropDown(wxAuiToolBarEvent& event); - unsigned RegisterMenu(wxAuiToolBar *toobar, int id, wxMenu *menu); - - private: - wxVector m_menus; - }; - - MenuHandler m_menuHandler; - - wxDECLARE_DYNAMIC_CLASS(wxAuiToolBarXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_AUI - -#endif // _WX_XH_AUITOOLB_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bannerwindow.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bannerwindow.h deleted file mode 100644 index 7631bb20..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bannerwindow.h +++ /dev/null @@ -1,30 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_bannerwindow.h -// Purpose: Declaration of wxBannerWindow XRC handler. -// Author: Vadim Zeitlin -// Created: 2011-08-16 -// Copyright: (c) 2011 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_BANNERWINDOW_H_ -#define _WX_XH_BANNERWINDOW_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_BANNERWINDOW - -class WXDLLIMPEXP_XRC wxBannerWindowXmlHandler : public wxXmlResourceHandler -{ -public: - wxBannerWindowXmlHandler(); - - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - - wxDECLARE_DYNAMIC_CLASS(wxBannerWindowXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_BANNERWINDOW - -#endif // _WX_XH_BANNERWINDOW_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bmp.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bmp.h deleted file mode 100644 index 9d274307..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bmp.h +++ /dev/null @@ -1,39 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_bmp.h -// Purpose: XML resource handler for wxBitmap and wxIcon -// Author: Vaclav Slavik -// Created: 2000/09/00 -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_BMP_H_ -#define _WX_XH_BMP_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC - -class WXDLLIMPEXP_XRC wxBitmapXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxBitmapXmlHandler); - -public: - wxBitmapXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -class WXDLLIMPEXP_XRC wxIconXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxIconXmlHandler); - -public: - wxIconXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC - -#endif // _WX_XH_BMP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bmpbt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bmpbt.h deleted file mode 100644 index 4e016a1e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bmpbt.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_bmpbt.h -// Purpose: XML resource handler for bitmap buttons -// Author: Brian Gavin -// Created: 2000/03/05 -// Copyright: (c) 2000 Brian Gavin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_BMPBT_H_ -#define _WX_XH_BMPBT_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_BMPBUTTON - -class WXDLLIMPEXP_XRC wxBitmapButtonXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxBitmapButtonXmlHandler); - -public: - wxBitmapButtonXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_BMPBUTTON - -#endif // _WX_XH_BMPBT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bmpcbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bmpcbox.h deleted file mode 100644 index b716b6fc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bmpcbox.h +++ /dev/null @@ -1,35 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_bmpcbox.h -// Purpose: XML resource handler for wxBitmapComboBox -// Author: Jaakko Salli -// Created: Sep-10-2006 -// Copyright: (c) 2006 Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_BMPCBOX_H_ -#define _WX_XH_BMPCBOX_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_BITMAPCOMBOBOX - -class WXDLLIMPEXP_FWD_ADV wxBitmapComboBox; - -class WXDLLIMPEXP_XRC wxBitmapComboBoxXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxBitmapComboBoxXmlHandler); - -public: - wxBitmapComboBoxXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - wxBitmapComboBox* m_combobox; - bool m_isInside; -}; - -#endif // wxUSE_XRC && wxUSE_BITMAPCOMBOBOX - -#endif // _WX_XH_BMPCBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bttn.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bttn.h deleted file mode 100644 index 5c608aed..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_bttn.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_bttn.h -// Purpose: XML resource handler for buttons -// Author: Vaclav Slavik -// Created: 2000/03/05 -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_BTTN_H_ -#define _WX_XH_BTTN_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_BUTTON - -class WXDLLIMPEXP_XRC wxButtonXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxButtonXmlHandler); - -public: - wxButtonXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_BUTTON - -#endif // _WX_XH_BTTN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_cald.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_cald.h deleted file mode 100644 index 7bb2b619..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_cald.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_cald.h -// Purpose: XML resource handler for wxCalendarCtrl -// Author: Brian Gavin -// Created: 2000/09/09 -// Copyright: (c) 2000 Brian Gavin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_CALD_H_ -#define _WX_XH_CALD_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_CALENDARCTRL - -class WXDLLIMPEXP_XRC wxCalendarCtrlXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxCalendarCtrlXmlHandler); - -public: - wxCalendarCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_CALENDARCTRL - -#endif // _WX_XH_CALD_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_chckb.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_chckb.h deleted file mode 100644 index e07daf53..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_chckb.h +++ /dev/null @@ -1,30 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_chckb.h -// Purpose: XML resource handler for wxCheckBox -// Author: Bob Mitchell -// Created: 2000/03/21 -// Copyright: (c) 2000 Bob Mitchell and Verant Interactive -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_CHCKB_H_ -#define _WX_XH_CHCKB_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_CHECKBOX - -class WXDLLIMPEXP_XRC wxCheckBoxXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxCheckBoxXmlHandler); - -public: - wxCheckBoxXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_CHECKBOX - -#endif // _WX_XH_CHECKBOX_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_chckl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_chckl.h deleted file mode 100644 index 67613617..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_chckl.h +++ /dev/null @@ -1,33 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_chckl.h -// Purpose: XML resource handler for wxCheckListBox -// Author: Bob Mitchell -// Created: 2000/03/21 -// Copyright: (c) 2000 Bob Mitchell and Verant Interactive -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_CHCKL_H_ -#define _WX_XH_CHCKL_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_CHECKLISTBOX - -class WXDLLIMPEXP_XRC wxCheckListBoxXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxCheckListBoxXmlHandler); - -public: - wxCheckListBoxXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_insideBox; - wxArrayString strList; -}; - -#endif // wxUSE_XRC && wxUSE_CHECKLISTBOX - -#endif // _WX_XH_CHECKLIST_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_choic.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_choic.h deleted file mode 100644 index 82755866..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_choic.h +++ /dev/null @@ -1,33 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_choic.h -// Purpose: XML resource handler for wxChoice -// Author: Bob Mitchell -// Created: 2000/03/21 -// Copyright: (c) 2000 Bob Mitchell and Verant Interactive -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_CHOIC_H_ -#define _WX_XH_CHOIC_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_CHOICE - -class WXDLLIMPEXP_XRC wxChoiceXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxChoiceXmlHandler); - -public: - wxChoiceXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_insideBox; - wxArrayString strList; -}; - -#endif // wxUSE_XRC && wxUSE_CHOICE - -#endif // _WX_XH_CHOIC_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_choicbk.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_choicbk.h deleted file mode 100644 index e464139c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_choicbk.h +++ /dev/null @@ -1,34 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_choicbk.h -// Purpose: XML resource handler for wxChoicebook -// Author: Vaclav Slavik -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_CHOICEBK_H_ -#define _WX_XH_CHOICEBK_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_CHOICEBOOK - -class WXDLLIMPEXP_FWD_CORE wxChoicebook; - -class WXDLLIMPEXP_XRC wxChoicebookXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxChoicebookXmlHandler); - -public: - wxChoicebookXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_isInside; - wxChoicebook *m_choicebook; -}; - -#endif // wxUSE_XRC && wxUSE_CHOICEBOOK - -#endif // _WX_XH_CHOICEBK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_clrpicker.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_clrpicker.h deleted file mode 100644 index 47988114..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_clrpicker.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_clrpicker.h -// Purpose: XML resource handler for wxColourPickerCtrl -// Author: Francesco Montorsi -// Created: 2006-04-17 -// Copyright: (c) 2006 Francesco Montorsi -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_CLRPICKERCTRL_H_ -#define _WX_XH_CLRPICKERCTRL_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_COLOURPICKERCTRL - -class WXDLLIMPEXP_XRC wxColourPickerCtrlXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxColourPickerCtrlXmlHandler); - -public: - wxColourPickerCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_COLOURPICKERCTRL - -#endif // _WX_XH_CLRPICKERCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_cmdlinkbn.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_cmdlinkbn.h deleted file mode 100644 index 91482a80..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_cmdlinkbn.h +++ /dev/null @@ -1,31 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_cmdlinkbn.h -// Purpose: XML resource handler for command link buttons -// Author: Kinaou Herve -// Created: 2010-10-20 -// Copyright: (c) 2010 wxWidgets development team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_CMDLINKBN_H_ -#define _WX_XH_CMDLINKBN_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_COMMANDLINKBUTTON - -class WXDLLIMPEXP_XRC wxCommandLinkButtonXmlHandler : public wxXmlResourceHandler -{ -public: - wxCommandLinkButtonXmlHandler(); - - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - wxDECLARE_DYNAMIC_CLASS(wxCommandLinkButtonXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_COMMANDLINKBUTTON - -#endif // _WX_XH_CMDLINKBN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_collpane.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_collpane.h deleted file mode 100644 index 14b92b80..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_collpane.h +++ /dev/null @@ -1,35 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_collpane.h -// Purpose: XML resource handler for wxCollapsiblePane -// Author: Francesco Montorsi -// Created: 2006-10-27 -// Copyright: (c) 2006 Francesco Montorsi -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_COLLPANE_H_ -#define _WX_XH_COLLPANE_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_COLLPANE - -class WXDLLIMPEXP_FWD_CORE wxCollapsiblePane; - -class WXDLLIMPEXP_XRC wxCollapsiblePaneXmlHandler : public wxXmlResourceHandler -{ -public: - wxCollapsiblePaneXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_isInside; - wxCollapsiblePane *m_collpane; - - wxDECLARE_DYNAMIC_CLASS(wxCollapsiblePaneXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_COLLPANE - -#endif // _WX_XH_COLLPANE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_combo.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_combo.h deleted file mode 100644 index 9fa1c514..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_combo.h +++ /dev/null @@ -1,33 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_combo.h -// Purpose: XML resource handler for wxComboBox -// Author: Bob Mitchell -// Created: 2000/03/21 -// Copyright: (c) 2000 Bob Mitchell and Verant Interactive -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_COMBO_H_ -#define _WX_XH_COMBO_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_COMBOBOX - -class WXDLLIMPEXP_XRC wxComboBoxXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxComboBoxXmlHandler); - -public: - wxComboBoxXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_insideBox; - wxArrayString strList; -}; - -#endif // wxUSE_XRC && wxUSE_COMBOBOX - -#endif // _WX_XH_COMBO_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_comboctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_comboctrl.h deleted file mode 100644 index e3c4467e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_comboctrl.h +++ /dev/null @@ -1,31 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_comboctrl.h -// Purpose: XML resource handler for wxComboBox -// Author: Jaakko Salli -// Created: 2009/01/25 -// Copyright: (c) 2009 Jaakko Salli -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_COMBOCTRL_H_ -#define _WX_XH_COMBOCTRL_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_COMBOCTRL - -class WXDLLIMPEXP_XRC wxComboCtrlXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxComboCtrlXmlHandler); - -public: - wxComboCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: -}; - -#endif // wxUSE_XRC && wxUSE_COMBOCTRL - -#endif // _WX_XH_COMBOCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_datectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_datectrl.h deleted file mode 100644 index 2626f938..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_datectrl.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_datectrl.h -// Purpose: XML resource handler for wxDatePickerCtrl -// Author: Vaclav Slavik -// Created: 2005-02-07 -// Copyright: (c) 2005 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_DATECTRL_H_ -#define _WX_XH_DATECTRL_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_DATEPICKCTRL - -class WXDLLIMPEXP_XRC wxDateCtrlXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxDateCtrlXmlHandler); - -public: - wxDateCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_DATEPICKCTRL - -#endif // _WX_XH_DATECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_dirpicker.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_dirpicker.h deleted file mode 100644 index 120f136a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_dirpicker.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_dirpicker.h -// Purpose: XML resource handler for wxDirPickerCtrl -// Author: Francesco Montorsi -// Created: 2006-04-17 -// Copyright: (c) 2006 Francesco Montorsi -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_DIRPICKERCTRL_H_ -#define _WX_XH_DIRPICKERCTRL_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_DIRPICKERCTRL - -class WXDLLIMPEXP_XRC wxDirPickerCtrlXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxDirPickerCtrlXmlHandler); - -public: - wxDirPickerCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_DIRPICKERCTRL - -#endif // _WX_XH_DIRPICKERCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_dlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_dlg.h deleted file mode 100644 index ca3f1b6f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_dlg.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_dlg.h -// Purpose: XML resource handler for dialogs -// Author: Vaclav Slavik -// Created: 2000/03/05 -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_DLG_H_ -#define _WX_XH_DLG_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC - -class WXDLLIMPEXP_XRC wxDialogXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxDialogXmlHandler); - -public: - wxDialogXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC - -#endif // _WX_XH_DLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_editlbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_editlbox.h deleted file mode 100644 index 0d0cb180..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_editlbox.h +++ /dev/null @@ -1,39 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_editlbox.h -// Purpose: declaration of wxEditableListBox XRC handler -// Author: Vadim Zeitlin -// Created: 2009-06-04 -// Copyright: (c) 2009 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XRC_XH_EDITLBOX_H_ -#define _WX_XRC_XH_EDITLBOX_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_EDITABLELISTBOX - -// ---------------------------------------------------------------------------- -// wxEditableListBoxXmlHandler: XRC handler for wxEditableListBox -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_XRC wxEditableListBoxXmlHandler : public wxXmlResourceHandler -{ -public: - wxEditableListBoxXmlHandler(); - - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_insideBox; - wxArrayString m_items; - - wxDECLARE_DYNAMIC_CLASS(wxEditableListBoxXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_EDITABLELISTBOX - -#endif // _WX_XRC_XH_EDITLBOX_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_filectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_filectrl.h deleted file mode 100644 index c32bebb7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_filectrl.h +++ /dev/null @@ -1,30 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_filectrl.h -// Purpose: XML resource handler for wxFileCtrl -// Author: Kinaou Hervé -// Created: 2009-05-11 -// Copyright: (c) 2009 wxWidgets development team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_FILECTRL_H_ -#define _WX_XH_FILECTRL_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_FILECTRL - -class WXDLLIMPEXP_XRC wxFileCtrlXmlHandler : public wxXmlResourceHandler -{ -public: - wxFileCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - wxDECLARE_DYNAMIC_CLASS(wxFileCtrlXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_FILECTRL - -#endif // _WX_XH_FILEPICKERCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_filepicker.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_filepicker.h deleted file mode 100644 index 206f6c12..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_filepicker.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_filepicker.h -// Purpose: XML resource handler for wxFilePickerCtrl -// Author: Francesco Montorsi -// Created: 2006-04-17 -// Copyright: (c) 2006 Francesco Montorsi -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_FILEPICKERCTRL_H_ -#define _WX_XH_FILEPICKERCTRL_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_FILEPICKERCTRL - -class WXDLLIMPEXP_XRC wxFilePickerCtrlXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxFilePickerCtrlXmlHandler); - -public: - wxFilePickerCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_FILEPICKERCTRL - -#endif // _WX_XH_FILEPICKERCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_fontpicker.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_fontpicker.h deleted file mode 100644 index 822c0d91..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_fontpicker.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_fontpicker.h -// Purpose: XML resource handler for wxFontPickerCtrl -// Author: Francesco Montorsi -// Created: 2006-04-17 -// Copyright: (c) 2006 Francesco Montorsi -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_FONTPICKERCTRL_H_ -#define _WX_XH_FONTPICKERCTRL_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_FONTPICKERCTRL - -class WXDLLIMPEXP_XRC wxFontPickerCtrlXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxFontPickerCtrlXmlHandler); - -public: - wxFontPickerCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_FONTPICKERCTRL - -#endif // _WX_XH_FONTPICKERCTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_frame.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_frame.h deleted file mode 100644 index 83708923..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_frame.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_frame.h -// Purpose: XML resource handler for wxFrame -// Author: Vaclav Slavik & Aleks. -// Created: 2000/03/05 -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_FRAME_H_ -#define _WX_XH_FRAME_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC - -class WXDLLIMPEXP_XRC wxFrameXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxFrameXmlHandler); - -public: - wxFrameXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC - -#endif // _WX_XH_FRAME_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_gauge.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_gauge.h deleted file mode 100644 index af147d67..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_gauge.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_gauge.h -// Purpose: XML resource handler for wxGauge -// Author: Bob Mitchell -// Created: 2000/03/21 -// Copyright: (c) 2000 Bob Mitchell and Verant Interactive -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_GAUGE_H_ -#define _WX_XH_GAUGE_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_GAUGE - -class WXDLLIMPEXP_XRC wxGaugeXmlHandler : public wxXmlResourceHandler -{ -public: - wxGaugeXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - - wxDECLARE_DYNAMIC_CLASS(wxGaugeXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_GAUGE - -#endif // _WX_XH_GAUGE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_gdctl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_gdctl.h deleted file mode 100644 index 398881db..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_gdctl.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_gdctl.h -// Purpose: XML resource handler for wxGenericDirCtrl -// Author: Markus Greither -// Created: 2002/01/20 -// Copyright: (c) 2002 Markus Greither -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_GDCTL_H_ -#define _WX_XH_GDCTL_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_DIRDLG - -class WXDLLIMPEXP_XRC wxGenericDirCtrlXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxGenericDirCtrlXmlHandler); - -public: - wxGenericDirCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_DIRDLG - -#endif // _WX_XH_GDCTL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_grid.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_grid.h deleted file mode 100644 index 553d5fdc..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_grid.h +++ /dev/null @@ -1,30 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_grid.h -// Purpose: XML resource handler for wxGrid -// Author: Agron Selimaj -// Created: 2005/08/11 -// Copyright: (c) 2005 Agron Selimaj, Freepour Controls Inc. -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_GRD_H_ -#define _WX_XH_GRD_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_GRID - -class WXDLLIMPEXP_XRC wxGridXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxGridXmlHandler); - -public: - wxGridXmlHandler(); - - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_GRID - -#endif // _WX_XH_GRD_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_html.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_html.h deleted file mode 100644 index 1266182b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_html.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_html.h -// Purpose: XML resource handler for wxHtmlWindow -// Author: Bob Mitchell -// Created: 2000/03/21 -// Copyright: (c) 2000 Bob Mitchell and Verant Interactive -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_HTML_H_ -#define _WX_XH_HTML_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_HTML - -class WXDLLIMPEXP_XRC wxHtmlWindowXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxHtmlWindowXmlHandler); - -public: - wxHtmlWindowXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_HTML - -#endif // _WX_XH_HTML_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_htmllbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_htmllbox.h deleted file mode 100644 index 7c8adc0f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_htmllbox.h +++ /dev/null @@ -1,33 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_htmllbox.h -// Purpose: XML resource handler for wxSimpleHtmlListBox -// Author: Francesco Montorsi -// Created: 2006/10/21 -// Copyright: (c) 2006 Francesco Montorsi -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_SIMPLEHTMLLISTBOX_H_ -#define _WX_XH_SIMPLEHTMLLISTBOX_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_HTML - -class WXDLLIMPEXP_XRC wxSimpleHtmlListBoxXmlHandler : public wxXmlResourceHandler -{ -public: - wxSimpleHtmlListBoxXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_insideBox; - wxArrayString strList; - - wxDECLARE_DYNAMIC_CLASS(wxSimpleHtmlListBoxXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_HTML - -#endif // _WX_XH_SIMPLEHTMLLISTBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_hyperlink.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_hyperlink.h deleted file mode 100644 index adb11d8f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_hyperlink.h +++ /dev/null @@ -1,36 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_hyperlink.h -// Purpose: Hyperlink control (wxAdv) -// Author: David Norris -// Modified by: Ryan Norton, Francesco Montorsi -// Created: 04/02/2005 -// Copyright: (c) 2005 David Norris -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_HYPERLINKH__ -#define _WX_XH_HYPERLINKH__ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_HYPERLINKCTRL - -class WXDLLIMPEXP_XRC wxHyperlinkCtrlXmlHandler : public wxXmlResourceHandler -{ - // Register with wxWindows' dynamic class subsystem. - wxDECLARE_DYNAMIC_CLASS(wxHyperlinkCtrlXmlHandler); - -public: - // Constructor. - wxHyperlinkCtrlXmlHandler(); - - // Creates the control and returns a pointer to it. - virtual wxObject *DoCreateResource() wxOVERRIDE; - - // Returns true if we know how to create a control for the given node. - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_HYPERLINKCTRL - -#endif // _WX_XH_HYPERLINKH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_listb.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_listb.h deleted file mode 100644 index 2dbc3d49..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_listb.h +++ /dev/null @@ -1,33 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_listb.h -// Purpose: XML resource handler for wxListbox -// Author: Bob Mitchell & Vaclav Slavik -// Created: 2000/07/29 -// Copyright: (c) 2000 Bob Mitchell & Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_LISTB_H_ -#define _WX_XH_LISTB_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_LISTBOX - -class WXDLLIMPEXP_XRC wxListBoxXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxListBoxXmlHandler); - -public: - wxListBoxXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_insideBox; - wxArrayString strList; -}; - -#endif // wxUSE_XRC && wxUSE_LISTBOX - -#endif // _WX_XH_LISTB_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_listbk.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_listbk.h deleted file mode 100644 index d4916cb0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_listbk.h +++ /dev/null @@ -1,34 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_listbk.h -// Purpose: XML resource handler for wxListbook -// Author: Vaclav Slavik -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_LISTBK_H_ -#define _WX_XH_LISTBK_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_LISTBOOK - -class WXDLLIMPEXP_FWD_CORE wxListbook; - -class WXDLLIMPEXP_XRC wxListbookXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxListbookXmlHandler); - -public: - wxListbookXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_isInside; - wxListbook *m_listbook; -}; - -#endif // wxUSE_XRC && wxUSE_LISTBOOK - -#endif // _WX_XH_LISTBK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_listc.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_listc.h deleted file mode 100644 index bfe6e5cd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_listc.h +++ /dev/null @@ -1,45 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_listc.h -// Purpose: XML resource handler for wxListCtrl -// Author: Brian Gavin -// Created: 2000/09/09 -// Copyright: (c) 2000 Brian Gavin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_LISTC_H_ -#define _WX_XH_LISTC_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_LISTCTRL - -class WXDLLIMPEXP_FWD_CORE wxListCtrl; -class WXDLLIMPEXP_FWD_CORE wxListItem; - -class WXDLLIMPEXP_XRC wxListCtrlXmlHandler : public wxXmlResourceHandler -{ -public: - wxListCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - // handlers for wxListCtrl itself and its listcol and listitem children - wxListCtrl *HandleListCtrl(); - void HandleListCol(); - void HandleListItem(); - - // common part to HandleList{Col,Item}() - void HandleCommonItemAttrs(wxListItem& item); - - // gets the items image index in the corresponding image list (normal if - // which is wxIMAGE_LIST_NORMAL or small if it is wxIMAGE_LIST_SMALL) - long GetImageIndex(wxListCtrl *listctrl, int which); - - wxDECLARE_DYNAMIC_CLASS(wxListCtrlXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_LISTCTRL - -#endif // _WX_XH_LISTC_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_mdi.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_mdi.h deleted file mode 100644 index bf2fd580..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_mdi.h +++ /dev/null @@ -1,34 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_mdi.h -// Purpose: XML resource handler for wxMDI -// Author: David M. Falkinder & Vaclav Slavik -// Created: 14/02/2005 -// Copyright: (c) 2005 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_MDI_H_ -#define _WX_XH_MDI_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_MDI - -class WXDLLIMPEXP_FWD_CORE wxWindow; - -class WXDLLIMPEXP_XRC wxMdiXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxMdiXmlHandler); - -public: - wxMdiXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - wxWindow *CreateFrame(); -}; - -#endif // wxUSE_XRC && wxUSE_MDI - -#endif // _WX_XH_MDI_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_menu.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_menu.h deleted file mode 100644 index 4f89509f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_menu.h +++ /dev/null @@ -1,42 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_menu.h -// Purpose: XML resource handler for menus/menubars -// Author: Vaclav Slavik -// Created: 2000/03/05 -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_MENU_H_ -#define _WX_XH_MENU_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_MENUS - -class WXDLLIMPEXP_XRC wxMenuXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxMenuXmlHandler); - -public: - wxMenuXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_insideMenu; -}; - -class WXDLLIMPEXP_XRC wxMenuBarXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxMenuBarXmlHandler); - -public: - wxMenuBarXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_MENUS - -#endif // _WX_XH_MENU_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_notbk.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_notbk.h deleted file mode 100644 index 0cd2a253..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_notbk.h +++ /dev/null @@ -1,34 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_notbk.h -// Purpose: XML resource handler for wxNotebook -// Author: Vaclav Slavik -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_NOTBK_H_ -#define _WX_XH_NOTBK_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_NOTEBOOK - -class WXDLLIMPEXP_FWD_CORE wxNotebook; - -class WXDLLIMPEXP_XRC wxNotebookXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxNotebookXmlHandler); - -public: - wxNotebookXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_isInside; - wxNotebook *m_notebook; -}; - -#endif // wxUSE_XRC && wxUSE_NOTEBOOK - -#endif // _WX_XH_NOTBK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_odcombo.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_odcombo.h deleted file mode 100644 index a5c9d438..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_odcombo.h +++ /dev/null @@ -1,34 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_odcombo.h -// Purpose: XML resource handler for wxOwnerDrawnComboBox -// Author: Alex Bligh - based on wx/xrc/xh_combo.h -// Created: 2006/06/19 -// Copyright: (c) 2006 Alex Bligh -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_ODCOMBO_H_ -#define _WX_XH_ODCOMBO_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_ODCOMBOBOX - -class WXDLLIMPEXP_XRC wxOwnerDrawnComboBoxXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxOwnerDrawnComboBoxXmlHandler); - -public: - wxOwnerDrawnComboBoxXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_insideBox; - wxArrayString strList; -}; - -#endif // wxUSE_XRC && wxUSE_ODCOMBOBOX - -#endif // _WX_XH_ODCOMBO_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_panel.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_panel.h deleted file mode 100644 index 0f0b4b06..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_panel.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_panel.h -// Purpose: XML resource handler for wxPanel -// Author: Vaclav Slavik -// Created: 2000/03/05 -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_PANEL_H_ -#define _WX_XH_PANEL_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC - -class WXDLLIMPEXP_XRC wxPanelXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxPanelXmlHandler); - -public: - wxPanelXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC - -#endif // _WX_XH_PANEL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_propdlg.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_propdlg.h deleted file mode 100644 index a52ff10d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_propdlg.h +++ /dev/null @@ -1,35 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_propdlg.h -// Purpose: XML resource handler for wxPropertySheetDialog -// Author: Sander Berents -// Created: 2007/07/12 -// Copyright: (c) 2007 Sander Berents -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_PROPDLG_H_ -#define _WX_XH_PROPDLG_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC - -class WXDLLIMPEXP_FWD_ADV wxPropertySheetDialog; - -class WXDLLIMPEXP_XRC wxPropertySheetDialogXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxPropertySheetDialogXmlHandler); - -public: - wxPropertySheetDialogXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_isInside; - wxPropertySheetDialog *m_dialog; -}; - -#endif // wxUSE_XRC - -#endif // _WX_XH_PROPDLG_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_radbt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_radbt.h deleted file mode 100644 index fafda375..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_radbt.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_radbt.h -// Purpose: XML resource handler for wxRadioButton -// Author: Bob Mitchell -// Created: 2000/03/21 -// Copyright: (c) 2000 Bob Mitchell and Verant Interactive -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_RADBT_H_ -#define _WX_XH_RADBT_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_RADIOBTN - -class WXDLLIMPEXP_XRC wxRadioButtonXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxRadioButtonXmlHandler); - -public: - wxRadioButtonXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_RADIOBOX - -#endif // _WX_XH_RADBT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_radbx.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_radbx.h deleted file mode 100644 index aa9702f0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_radbx.h +++ /dev/null @@ -1,49 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_radbx.h -// Purpose: XML resource handler for wxRadioBox -// Author: Bob Mitchell -// Created: 2000/03/21 -// Copyright: (c) 2000 Bob Mitchell and Verant Interactive -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_RADBX_H_ -#define _WX_XH_RADBX_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_RADIOBOX - -class WXDLLIMPEXP_XRC wxRadioBoxXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxRadioBoxXmlHandler); - -public: - wxRadioBoxXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_insideBox; - - // the items labels - wxArrayString m_labels; - -#if wxUSE_TOOLTIPS - // the items tooltips - wxArrayString m_tooltips; -#endif // wxUSE_TOOLTIPS - - // the item help text - wxArrayString m_helptexts; - wxArrayInt m_helptextSpecified; - - // if the corresponding array element is 1, the radiobox item is - // disabled/hidden - wxArrayInt m_isEnabled, - m_isShown; -}; - -#endif // wxUSE_XRC && wxUSE_RADIOBOX - -#endif // _WX_XH_RADBX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_ribbon.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_ribbon.h deleted file mode 100644 index 14f67192..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_ribbon.h +++ /dev/null @@ -1,47 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_ribbon.h -// Purpose: XML resource handler for wxRibbon related classes -// Author: Armel Asselin -// Created: 2010-04-23 -// Copyright: (c) 2010 Armel Asselin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XRC_XH_RIBBON_H_ -#define _WX_XRC_XH_RIBBON_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_RIBBON - -class WXDLLIMPEXP_FWD_RIBBON wxRibbonControl; - -class WXDLLIMPEXP_RIBBON wxRibbonXmlHandler : public wxXmlResourceHandler -{ -public: - wxRibbonXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - const wxClassInfo *m_isInside; - - bool IsRibbonControl (wxXmlNode *node); - - wxObject* Handle_buttonbar(); - wxObject* Handle_button(); - wxObject* Handle_control(); - wxObject* Handle_page(); - wxObject* Handle_gallery(); - wxObject* Handle_galleryitem(); - wxObject* Handle_panel(); - wxObject* Handle_bar(); - - void Handle_RibbonArtProvider(wxRibbonControl *control); - - wxDECLARE_DYNAMIC_CLASS(wxRibbonXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_RIBBON - -#endif // _WX_XRC_XH_RIBBON_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_richtext.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_richtext.h deleted file mode 100644 index 979d73d7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_richtext.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_richtext.h -// Purpose: XML resource handler for wxRichTextCtrl -// Author: Julian Smart -// Created: 2006-11-08 -// Copyright: (c) 2006 Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_RICHTEXT_H_ -#define _WX_XH_RICHTEXT_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_RICHTEXT - -class WXDLLIMPEXP_RICHTEXT wxRichTextCtrlXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxRichTextCtrlXmlHandler); - -public: - wxRichTextCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_RICHTEXT - -#endif // _WX_XH_RICHTEXT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_scrol.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_scrol.h deleted file mode 100644 index ffd366c4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_scrol.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_scrol.h -// Purpose: XML resource handler for wxScrollBar -// Author: Brian Gavin -// Created: 2000/09/09 -// Copyright: (c) 2000 Brian Gavin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_SCROL_H_ -#define _WX_XH_SCROL_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_SCROLLBAR - -class WXDLLIMPEXP_XRC wxScrollBarXmlHandler : public wxXmlResourceHandler -{ -public: - wxScrollBarXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - - wxDECLARE_DYNAMIC_CLASS(wxScrollBarXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_SCROLLBAR - -#endif // _WX_XH_SCROL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_scwin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_scwin.h deleted file mode 100644 index 6d5d5fc0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_scwin.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_scwin.h -// Purpose: XML resource handler for wxScrolledWindow -// Author: Vaclav Slavik -// Created: 2002/10/18 -// Copyright: (c) 2002 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_SCWIN_H_ -#define _WX_XH_SCWIN_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC - -class WXDLLIMPEXP_XRC wxScrolledWindowXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxScrolledWindowXmlHandler); - -public: - wxScrolledWindowXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC - -#endif // _WX_XH_SCWIN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_simplebook.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_simplebook.h deleted file mode 100644 index 818bafed..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_simplebook.h +++ /dev/null @@ -1,36 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_simplebook.h -// Purpose: XML resource handler for wxSimplebook -// Author: Vadim Zeitlin -// Created: 2014-08-05 -// Copyright: (c) 2014 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_SIMPLEBOOK_H_ -#define _WX_XH_SIMPLEBOOK_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_BOOKCTRL - -class wxSimplebook; - -class WXDLLIMPEXP_XRC wxSimplebookXmlHandler : public wxXmlResourceHandler -{ -public: - wxSimplebookXmlHandler(); - - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_isInside; - wxSimplebook *m_simplebook; - - wxDECLARE_DYNAMIC_CLASS(wxSimplebookXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_BOOKCTRL - -#endif // _WX_XH_SIMPLEBOOK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_sizer.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_sizer.h deleted file mode 100644 index 648b22f5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_sizer.h +++ /dev/null @@ -1,84 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_sizer.h -// Purpose: XML resource handler for wxBoxSizer -// Author: Vaclav Slavik -// Created: 2000/04/24 -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_SIZER_H_ -#define _WX_XH_SIZER_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC - -#include "wx/sizer.h" -#include "wx/gbsizer.h" - -class WXDLLIMPEXP_XRC wxSizerXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxSizerXmlHandler); - -public: - wxSizerXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -protected: - virtual wxSizer* DoCreateSizer(const wxString& name); - virtual bool IsSizerNode(wxXmlNode *node) const; - -private: - bool m_isInside; - bool m_isGBS; - - wxSizer *m_parentSizer; - - - wxObject* Handle_sizeritem(); - wxObject* Handle_spacer(); - wxObject* Handle_sizer(); - wxSizer* Handle_wxBoxSizer(); -#if wxUSE_STATBOX - wxSizer* Handle_wxStaticBoxSizer(); -#endif - wxSizer* Handle_wxGridSizer(); - wxFlexGridSizer* Handle_wxFlexGridSizer(); - wxGridBagSizer* Handle_wxGridBagSizer(); - wxSizer* Handle_wxWrapSizer(); - - bool ValidateGridSizerChildren(); - void SetFlexibleMode(wxFlexGridSizer* fsizer); - void SetGrowables(wxFlexGridSizer* fsizer, const wxChar* param, bool rows); - wxGBPosition GetGBPos(const wxString& param); - wxGBSpan GetGBSpan(const wxString& param); - wxSizerItem* MakeSizerItem(); - void SetSizerItemAttributes(wxSizerItem* sitem); - void AddSizerItem(wxSizerItem* sitem); - int GetSizerFlags(); -}; - -#if wxUSE_BUTTON - -class WXDLLIMPEXP_XRC wxStdDialogButtonSizerXmlHandler - : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxStdDialogButtonSizerXmlHandler); - -public: - wxStdDialogButtonSizerXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_isInside; - wxStdDialogButtonSizer *m_parentSizer; -}; - -#endif // wxUSE_BUTTON - -#endif // wxUSE_XRC - -#endif // _WX_XH_SIZER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_slidr.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_slidr.h deleted file mode 100644 index 267cb335..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_slidr.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_slidr.h -// Purpose: XML resource handler for wxSlider -// Author: Bob Mitchell -// Created: 2000/03/21 -// Copyright: (c) 2000 Bob Mitchell and Verant Interactive -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_SLIDR_H_ -#define _WX_XH_SLIDR_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_SLIDER - -class WXDLLIMPEXP_XRC wxSliderXmlHandler : public wxXmlResourceHandler -{ -public: - wxSliderXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - - wxDECLARE_DYNAMIC_CLASS(wxSliderXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_SLIDER - -#endif // _WX_XH_SLIDR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_spin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_spin.h deleted file mode 100644 index 93762e03..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_spin.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_spin.h -// Purpose: XML resource handler for wxSpinButton and wxSpinCtrl -// Author: Bob Mitchell -// Created: 2000/03/21 -// Copyright: (c) 2000 Bob Mitchell and Verant Interactive -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_SPIN_H_ -#define _WX_XH_SPIN_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC - -#if wxUSE_SPINBTN - -class WXDLLIMPEXP_XRC wxSpinButtonXmlHandler : public wxXmlResourceHandler -{ -public: - wxSpinButtonXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - - wxDECLARE_DYNAMIC_CLASS(wxSpinButtonXmlHandler); -}; - -#endif // wxUSE_SPINBTN - - -#if wxUSE_SPINCTRL - -class WXDLLIMPEXP_XRC wxSpinCtrlXmlHandler : public wxXmlResourceHandler -{ -public: - wxSpinCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - - wxDECLARE_DYNAMIC_CLASS(wxSpinCtrlXmlHandler); -}; - -#endif // wxUSE_SPINCTRL - -#endif // wxUSE_XRC - -#endif // _WX_XH_SPIN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_split.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_split.h deleted file mode 100644 index e1820811..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_split.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_split.h -// Purpose: XRC resource for wxSplitterWindow -// Author: panga@freemail.hu, Vaclav Slavik -// Created: 2003/01/26 -// Copyright: (c) 2003 panga@freemail.hu, Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_SPLIT_H_ -#define _WX_XH_SPLIT_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_SPLITTER - -class WXDLLIMPEXP_XRC wxSplitterWindowXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxSplitterWindowXmlHandler); - -public: - wxSplitterWindowXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_SPLITTER - -#endif // _WX_XH_SPLIT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_srchctrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_srchctrl.h deleted file mode 100644 index 47c122f9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_srchctrl.h +++ /dev/null @@ -1,30 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_srchctl.h -// Purpose: XRC resource handler for wxSearchCtrl -// Author: Sander Berents -// Created: 2007/07/12 -// Copyright: (c) 2007 Sander Berents -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_SRCH_H_ -#define _WX_XH_SRCH_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_SEARCHCTRL - -class WXDLLIMPEXP_XRC wxSearchCtrlXmlHandler : public wxXmlResourceHandler -{ -public: - wxSearchCtrlXmlHandler(); - - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - - wxDECLARE_DYNAMIC_CLASS(wxSearchCtrlXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_SEARCHCTRL - -#endif // _WX_XH_SRCH_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_statbar.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_statbar.h deleted file mode 100644 index d73bbdf0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_statbar.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_statbar.h -// Purpose: XML resource handler for wxStatusBar -// Author: Brian Ravnsgaard Riis -// Created: 2004/01/21 -// Copyright: (c) 2004 Brian Ravnsgaard Riis -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_STATBAR_H_ -#define _WX_XH_STATBAR_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_STATUSBAR - -class WXDLLIMPEXP_XRC wxStatusBarXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxStatusBarXmlHandler); - -public: - wxStatusBarXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_STATUSBAR - -#endif // _WX_XH_STATBAR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_stbmp.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_stbmp.h deleted file mode 100644 index 65c75591..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_stbmp.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_stbmp.h -// Purpose: XML resource handler for wxStaticBitmap -// Author: Vaclav Slavik -// Created: 2000/04/22 -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_STBMP_H_ -#define _WX_XH_STBMP_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_STATBMP - -class WXDLLIMPEXP_XRC wxStaticBitmapXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxStaticBitmapXmlHandler); - -public: - wxStaticBitmapXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_STATBMP - -#endif // _WX_XH_STBMP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_stbox.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_stbox.h deleted file mode 100644 index 4a5704ca..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_stbox.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_stbox.h -// Purpose: XML resource handler for wxStaticBox -// Author: Brian Gavin -// Created: 2000/09/00 -// Copyright: (c) 2000 Brian Gavin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_STBOX_H_ -#define _WX_XH_STBOX_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_STATBOX - -class WXDLLIMPEXP_XRC wxStaticBoxXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxStaticBoxXmlHandler); - -public: - wxStaticBoxXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_STATBOX - -#endif // _WX_XH_STBOX_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_stlin.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_stlin.h deleted file mode 100644 index 808f9bbd..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_stlin.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_stlin.h -// Purpose: XML resource handler for wxStaticLine -// Author: Vaclav Slavik -// Created: 2000/09/00 -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_STLIN_H_ -#define _WX_XH_STLIN_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_STATLINE - -class WXDLLIMPEXP_XRC wxStaticLineXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxStaticLineXmlHandler); - -public: - wxStaticLineXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_STATLINE - -#endif // _WX_XH_STLIN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_sttxt.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_sttxt.h deleted file mode 100644 index 6f99e3a3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_sttxt.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_sttxt.h -// Purpose: XML resource handler for wxStaticText -// Author: Bob Mitchell -// Created: 2000/03/21 -// Copyright: (c) 2000 Bob Mitchell -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_STTXT_H_ -#define _WX_XH_STTXT_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_STATTEXT - -class WXDLLIMPEXP_XRC wxStaticTextXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxStaticTextXmlHandler); - -public: - wxStaticTextXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_STATTEXT - -#endif // _WX_XH_STTXT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_text.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_text.h deleted file mode 100644 index a2e84882..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_text.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_text.h -// Purpose: XML resource handler for wxTextCtrl -// Author: Aleksandras Gluchovas -// Created: 2000/03/21 -// Copyright: (c) 2000 Aleksandras Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_TEXT_H_ -#define _WX_XH_TEXT_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_TEXTCTRL - -class WXDLLIMPEXP_XRC wxTextCtrlXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxTextCtrlXmlHandler); - -public: - wxTextCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_TEXTCTRL - -#endif // _WX_XH_TEXT_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_tglbtn.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_tglbtn.h deleted file mode 100644 index 24ca1e8c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_tglbtn.h +++ /dev/null @@ -1,35 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_tglbtn.h -// Purpose: XML resource handler for wxToggleButton -// Author: Julian Smart -// Created: 2004-08-30 -// Copyright: (c) 2004 Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_TGLBTN_H_ -#define _WX_XH_TGLBTN_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_TOGGLEBTN - -class WXDLLIMPEXP_XRC wxToggleButtonXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxToggleButtonXmlHandler); - -public: - wxToggleButtonXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -protected: - virtual void DoCreateToggleButton(wxObject *control); -#if !defined(__WXUNIVERSAL__) && !defined(__WXMOTIF__) && !(defined(__WXGTK__) && !defined(__WXGTK20__)) - virtual void DoCreateBitmapToggleButton(wxObject *control); -#endif -}; - -#endif // wxUSE_XRC && wxUSE_TOGGLEBTN - -#endif // _WX_XH_TGLBTN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_timectrl.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_timectrl.h deleted file mode 100644 index 9124670a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_timectrl.h +++ /dev/null @@ -1,30 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_timectrl.h -// Purpose: XML resource handler for wxTimePickerCtrl -// Author: Vadim Zeitlin -// Created: 2011-09-22 -// Copyright: (c) 2011 Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_TIMECTRL_H_ -#define _WX_XH_TIMECTRL_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_TIMEPICKCTRL - -class WXDLLIMPEXP_XRC wxTimeCtrlXmlHandler : public wxXmlResourceHandler -{ -public: - wxTimeCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - wxDECLARE_DYNAMIC_CLASS(wxTimeCtrlXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_TIMEPICKCTRL - -#endif // _WX_XH_TIMECTRL_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_toolb.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_toolb.h deleted file mode 100644 index e3f3f141..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_toolb.h +++ /dev/null @@ -1,36 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_toolb.h -// Purpose: XML resource handler for wxToolBar -// Author: Vaclav Slavik -// Created: 2000/08/11 -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_TOOLB_H_ -#define _WX_XH_TOOLB_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_TOOLBAR - -class WXDLLIMPEXP_FWD_CORE wxToolBar; - -class WXDLLIMPEXP_XRC wxToolBarXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxToolBarXmlHandler); - -public: - wxToolBarXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_isInside; - wxToolBar *m_toolbar; - wxSize m_toolSize; -}; - -#endif // wxUSE_XRC && wxUSE_TOOLBAR - -#endif // _WX_XH_TOOLB_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_toolbk.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_toolbk.h deleted file mode 100644 index 0d3516f9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_toolbk.h +++ /dev/null @@ -1,36 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_toolbk.h -// Purpose: XML resource handler for wxToolbook -// Author: Andrea Zanellato -// Created: 2009/12/12 -// Copyright: (c) 2010 wxWidgets development team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_TOOLBK_H_ -#define _WX_XH_TOOLBK_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_TOOLBOOK - -class WXDLLIMPEXP_FWD_CORE wxToolbook; - -class WXDLLIMPEXP_XRC wxToolbookXmlHandler : public wxXmlResourceHandler -{ -public: - wxToolbookXmlHandler(); - - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - bool m_isInside; - wxToolbook *m_toolbook; - - wxDECLARE_DYNAMIC_CLASS(wxToolbookXmlHandler); -}; - -#endif // wxUSE_XRC && wxUSE_TOOLBOOK - -#endif // _WX_XH_TOOLBK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_tree.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_tree.h deleted file mode 100644 index 01dd24f6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_tree.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_tree.h -// Purpose: XML resource handler for wxTreeCtrl -// Author: Brian Gavin -// Created: 2000/09/09 -// Copyright: (c) 2000 Brian Gavin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_TREE_H_ -#define _WX_XH_TREE_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_TREECTRL - -class WXDLLIMPEXP_XRC wxTreeCtrlXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxTreeCtrlXmlHandler); - -public: - wxTreeCtrlXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC && wxUSE_TREECTRL - -#endif // _WX_XH_TREE_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_treebk.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_treebk.h deleted file mode 100644 index b75c9218..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_treebk.h +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_treebk.h -// Purpose: XML resource handler for wxTreebook -// Author: Evgeniy Tarassov -// Created: 2005/09/28 -// Copyright: (c) 2005 TT-Solutions -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_TREEBK_H_ -#define _WX_XH_TREEBK_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_TREEBOOK - -class WXDLLIMPEXP_FWD_CORE wxTreebook; -#include "wx/dynarray.h" - -WX_DEFINE_USER_EXPORTED_ARRAY_SIZE_T(size_t, wxArrayTbkPageIndexes, - class WXDLLIMPEXP_XRC); - -// --------------------------------------------------------------------- -// wxTreebookXmlHandler class -// --------------------------------------------------------------------- -// Resource xml structure have to be almost the "same" as for wxNotebook -// except the additional (size_t)depth parameter for treebookpage nodes -// which indicates the depth of the page in the tree. -// There is only one logical constraint on this parameter : -// it cannot be greater than the previous page depth plus one -class WXDLLIMPEXP_XRC wxTreebookXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxTreebookXmlHandler); - -public: - wxTreebookXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - wxTreebook *m_tbk; - wxArrayTbkPageIndexes m_treeContext; - bool m_isInside; -}; - - -// Example: -// ------- -// Label -// \--First -// | \--Second -// \--Third -// -// -// ... -// -// -// -// -// 0 -// -// -// -// -// 1 -// -// -// -// -// 2 -// -// -// -// -// 1 -// -// -// ... -// - -#endif // wxUSE_XRC && wxUSE_TREEBOOK - -#endif // _WX_XH_TREEBK_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_unkwn.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_unkwn.h deleted file mode 100644 index b6757674..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_unkwn.h +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_unkwn.h -// Purpose: XML resource handler for unknown widget -// Author: Vaclav Slavik -// Created: 2000/03/05 -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_UNKWN_H_ -#define _WX_XH_UNKWN_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC - -class WXDLLIMPEXP_XRC wxUnknownWidgetXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxUnknownWidgetXmlHandler); - -public: - wxUnknownWidgetXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; -}; - -#endif // wxUSE_XRC - -#endif // _WX_XH_UNKWN_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_wizrd.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_wizrd.h deleted file mode 100644 index 0656df47..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xh_wizrd.h +++ /dev/null @@ -1,36 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xh_wizrd.h -// Purpose: XML resource handler for wxWizard -// Author: Vaclav Slavik -// Created: 2003/03/02 -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XH_WIZRD_H_ -#define _WX_XH_WIZRD_H_ - -#include "wx/xrc/xmlres.h" - -#if wxUSE_XRC && wxUSE_WIZARDDLG - -class WXDLLIMPEXP_FWD_ADV wxWizard; -class WXDLLIMPEXP_FWD_ADV wxWizardPageSimple; - -class WXDLLIMPEXP_XRC wxWizardXmlHandler : public wxXmlResourceHandler -{ - wxDECLARE_DYNAMIC_CLASS(wxWizardXmlHandler); - -public: - wxWizardXmlHandler(); - virtual wxObject *DoCreateResource() wxOVERRIDE; - virtual bool CanHandle(wxXmlNode *node) wxOVERRIDE; - -private: - wxWizard *m_wizard; - wxWizardPageSimple *m_lastSimplePage; -}; - -#endif // wxUSE_XRC && wxUSE_WIZARDDLG - -#endif // _WX_XH_WIZRD_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xmlres.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xmlres.h deleted file mode 100644 index e7fe7003..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xmlres.h +++ /dev/null @@ -1,656 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xmlres.h -// Purpose: XML resources -// Author: Vaclav Slavik -// Created: 2000/03/05 -// Copyright: (c) 2000 Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XMLRES_H_ -#define _WX_XMLRES_H_ - -#include "wx/defs.h" - -#if wxUSE_XRC - -#include "wx/string.h" -#include "wx/dynarray.h" -#include "wx/arrstr.h" -#include "wx/datetime.h" -#include "wx/list.h" -#include "wx/gdicmn.h" -#include "wx/filesys.h" -#include "wx/bitmap.h" -#include "wx/icon.h" -#include "wx/artprov.h" -#include "wx/colour.h" -#include "wx/vector.h" - -#include "wx/xrc/xmlreshandler.h" - -class WXDLLIMPEXP_FWD_BASE wxFileName; - -class WXDLLIMPEXP_FWD_CORE wxIconBundle; -class WXDLLIMPEXP_FWD_CORE wxImageList; -class WXDLLIMPEXP_FWD_CORE wxMenu; -class WXDLLIMPEXP_FWD_CORE wxMenuBar; -class WXDLLIMPEXP_FWD_CORE wxDialog; -class WXDLLIMPEXP_FWD_CORE wxPanel; -class WXDLLIMPEXP_FWD_CORE wxWindow; -class WXDLLIMPEXP_FWD_CORE wxFrame; -class WXDLLIMPEXP_FWD_CORE wxToolBar; - -class WXDLLIMPEXP_FWD_XML wxXmlDocument; -class WXDLLIMPEXP_FWD_XML wxXmlNode; -class WXDLLIMPEXP_FWD_XRC wxXmlSubclassFactory; -class wxXmlSubclassFactories; -class wxXmlResourceModule; -class wxXmlResourceDataRecords; - -// These macros indicate current version of XML resources (this information is -// encoded in root node of XRC file as "version" property). -// -// Rules for increasing version number: -// - change it only if you made incompatible change to the format. Addition -// of new attribute to control handler is _not_ incompatible change, because -// older versions of the library may ignore it. -// - if you change version number, follow these steps: -// - set major, minor and release numbers to respective version numbers of -// the wxWidgets library (see wx/version.h) -// - reset revision to 0 unless the first three are same as before, -// in which case you should increase revision by one -#define WX_XMLRES_CURRENT_VERSION_MAJOR 2 -#define WX_XMLRES_CURRENT_VERSION_MINOR 5 -#define WX_XMLRES_CURRENT_VERSION_RELEASE 3 -#define WX_XMLRES_CURRENT_VERSION_REVISION 0 -#define WX_XMLRES_CURRENT_VERSION_STRING wxT("2.5.3.0") - -#define WX_XMLRES_CURRENT_VERSION \ - (WX_XMLRES_CURRENT_VERSION_MAJOR * 256*256*256 + \ - WX_XMLRES_CURRENT_VERSION_MINOR * 256*256 + \ - WX_XMLRES_CURRENT_VERSION_RELEASE * 256 + \ - WX_XMLRES_CURRENT_VERSION_REVISION) - -enum wxXmlResourceFlags -{ - wxXRC_USE_LOCALE = 1, - wxXRC_NO_SUBCLASSING = 2, - wxXRC_NO_RELOADING = 4 -}; - -// This class holds XML resources from one or more .xml files -// (or derived forms, either binary or zipped -- see manual for -// details). -class WXDLLIMPEXP_XRC wxXmlResource : public wxObject -{ -public: - // Constructor. - // Flags: wxXRC_USE_LOCALE - // translatable strings will be translated via _() - // using the given domain if specified - // wxXRC_NO_SUBCLASSING - // subclass property of object nodes will be ignored - // (useful for previews in XRC editors) - // wxXRC_NO_RELOADING - // don't check the modification time of the XRC files and - // reload them if they have changed on disk - wxXmlResource(int flags = wxXRC_USE_LOCALE, - const wxString& domain = wxEmptyString); - - // Constructor. - // Flags: wxXRC_USE_LOCALE - // translatable strings will be translated via _() - // using the given domain if specified - // wxXRC_NO_SUBCLASSING - // subclass property of object nodes will be ignored - // (useful for previews in XRC editors) - wxXmlResource(const wxString& filemask, int flags = wxXRC_USE_LOCALE, - const wxString& domain = wxEmptyString); - - // Destructor. - virtual ~wxXmlResource(); - - // Loads resources from XML files that match given filemask. - // This method understands wxFileSystem URLs if wxUSE_FILESYS. - bool Load(const wxString& filemask); - - // Loads resources from single XRC file. - bool LoadFile(const wxFileName& file); - - // Loads all XRC files from a directory. - bool LoadAllFiles(const wxString& dirname); - - // Unload resource from the given XML file (wildcards not allowed) - bool Unload(const wxString& filename); - - // Initialize handlers for all supported controls/windows. This will - // make the executable quite big because it forces linking against - // most of the wxWidgets library. - void InitAllHandlers(); - - // Initialize only a specific handler (or custom handler). Convention says - // that handler name is equal to the control's name plus 'XmlHandler', for - // example wxTextCtrlXmlHandler, wxHtmlWindowXmlHandler. The XML resource - // compiler (xmlres) can create include file that contains initialization - // code for all controls used within the resource. - void AddHandler(wxXmlResourceHandler *handler); - - // Add a new handler at the beginning of the handler list - void InsertHandler(wxXmlResourceHandler *handler); - - // Removes all handlers - void ClearHandlers(); - - // Registers subclasses factory for use in XRC. This function is not meant - // for public use, please see the comment above wxXmlSubclassFactory - // definition. - static void AddSubclassFactory(wxXmlSubclassFactory *factory); - - // Loads menu from resource. Returns NULL on failure. - wxMenu *LoadMenu(const wxString& name); - - // Loads menubar from resource. Returns NULL on failure. - wxMenuBar *LoadMenuBar(wxWindow *parent, const wxString& name); - - // Loads menubar from resource. Returns NULL on failure. - wxMenuBar *LoadMenuBar(const wxString& name) { return LoadMenuBar(NULL, name); } - -#if wxUSE_TOOLBAR - // Loads a toolbar. - wxToolBar *LoadToolBar(wxWindow *parent, const wxString& name); -#endif - - // Loads a dialog. dlg points to parent window (if any). - wxDialog *LoadDialog(wxWindow *parent, const wxString& name); - - // Loads a dialog. dlg points to parent window (if any). This form - // is used to finish creation of already existing instance (main reason - // for this is that you may want to use derived class with new event table) - // Example (typical usage): - // MyDialog dlg; - // wxTheXmlResource->LoadDialog(&dlg, mainFrame, "my_dialog"); - // dlg->ShowModal(); - bool LoadDialog(wxDialog *dlg, wxWindow *parent, const wxString& name); - - // Loads a panel. panel points to parent window (if any). - wxPanel *LoadPanel(wxWindow *parent, const wxString& name); - - // Loads a panel. panel points to parent window (if any). This form - // is used to finish creation of already existing instance. - bool LoadPanel(wxPanel *panel, wxWindow *parent, const wxString& name); - - // Loads a frame. - wxFrame *LoadFrame(wxWindow* parent, const wxString& name); - bool LoadFrame(wxFrame* frame, wxWindow *parent, const wxString& name); - - // Load an object from the resource specifying both the resource name and - // the classname. This lets you load nonstandard container windows. - wxObject *LoadObject(wxWindow *parent, const wxString& name, - const wxString& classname) - { - return DoLoadObject(parent, name, classname, false /* !recursive */); - } - - // Load an object from the resource specifying both the resource name and - // the classname. This form lets you finish the creation of an existing - // instance. - bool LoadObject(wxObject *instance, - wxWindow *parent, - const wxString& name, - const wxString& classname) - { - return DoLoadObject(instance, parent, name, classname, false); - } - - // These versions of LoadObject() look for the object with the given name - // recursively (breadth first) and can be used to instantiate an individual - // control defined anywhere in an XRC file. No check is done that the name - // is unique, it's up to the caller to ensure this. - wxObject *LoadObjectRecursively(wxWindow *parent, - const wxString& name, - const wxString& classname) - { - return DoLoadObject(parent, name, classname, true /* recursive */); - } - - bool LoadObjectRecursively(wxObject *instance, - wxWindow *parent, - const wxString& name, - const wxString& classname) - { - return DoLoadObject(instance, parent, name, classname, true); - } - - // Loads a bitmap resource from a file. - wxBitmap LoadBitmap(const wxString& name); - - // Loads an icon resource from a file. - wxIcon LoadIcon(const wxString& name); - - // Attaches an unknown control to the given panel/window/dialog. - // Unknown controls are used in conjunction with . - bool AttachUnknownControl(const wxString& name, wxWindow *control, - wxWindow *parent = NULL); - - // Returns a numeric ID that is equivalent to the string ID used in an XML - // resource. If an unknown str_id is requested (i.e. other than wxID_XXX - // or integer), a new record is created which associates the given string - // with a number. If value_if_not_found == wxID_NONE, the number is obtained via - // wxWindow::NewControlId(). Otherwise value_if_not_found is used. - // Macro XRCID(name) is provided for convenient use in event tables. - static int GetXRCID(const wxString& str_id, int value_if_not_found = wxID_NONE) - { return DoGetXRCID(str_id.mb_str(), value_if_not_found); } - - // version for internal use only - static int DoGetXRCID(const char *str_id, int value_if_not_found = wxID_NONE); - - - // Find the string ID with the given numeric value, returns an empty string - // if no such ID is found. - // - // Notice that unlike GetXRCID(), which is fast, this operation is slow as - // it checks all the IDs used in XRC. - static wxString FindXRCIDById(int numId); - - - // Returns version information (a.b.c.d = d+ 256*c + 256^2*b + 256^3*a). - long GetVersion() const { return m_version; } - - // Compares resources version to argument. Returns -1 if resources version - // is less than the argument, +1 if greater and 0 if they equal. - int CompareVersion(int major, int minor, int release, int revision) const - { - long diff = GetVersion() - - (major*256*256*256 + minor*256*256 + release*256 + revision); - if ( diff < 0 ) - return -1; - else if ( diff > 0 ) - return +1; - else - return 0; - } - - //// Singleton accessors. - - // Gets the global resources object or creates one if none exists. - static wxXmlResource *Get(); - - // Sets the global resources object and returns a pointer to the previous one (may be NULL). - static wxXmlResource *Set(wxXmlResource *res); - - // Returns flags, which may be a bitlist of wxXRC_USE_LOCALE and wxXRC_NO_SUBCLASSING. - int GetFlags() const { return m_flags; } - // Set flags after construction. - void SetFlags(int flags) { m_flags = flags; } - - // Get/Set the domain to be passed to the translation functions, defaults - // to empty string (no domain). - const wxString& GetDomain() const { return m_domain; } - void SetDomain(const wxString& domain); - - - // This function returns the wxXmlNode containing the definition of the - // object with the given name or NULL. - // - // It can be used to access additional information defined in the XRC file - // and not used by wxXmlResource itself. - const wxXmlNode *GetResourceNode(const wxString& name) const - { return GetResourceNodeAndLocation(name, wxString(), true); } - -protected: - // reports input error at position 'context' - void ReportError(const wxXmlNode *context, const wxString& message); - - // override this in derived class to customize errors reporting - virtual void DoReportError(const wxString& xrcFile, const wxXmlNode *position, - const wxString& message); - - // Load the contents of a single file and returns its contents as a new - // wxXmlDocument (which will be owned by caller) on success or NULL. - wxXmlDocument *DoLoadFile(const wxString& file); - - // Scans the resources list for unloaded files and loads them. Also reloads - // files that have been modified since last loading. - bool UpdateResources(); - - - // Common implementation of GetResourceNode() and FindResource(): searches - // all top-level or all (if recursive == true) nodes if all loaded XRC - // files and returns the node, if found, as well as the path of the file it - // was found in if path is non-NULL - wxXmlNode *GetResourceNodeAndLocation(const wxString& name, - const wxString& classname, - bool recursive = false, - wxString *path = NULL) const; - - - // Note that these functions are used outside of wxWidgets itself, e.g. - // there are several known cases of inheriting from wxXmlResource just to - // be able to call FindResource() so we keep them for compatibility even if - // their names are not really consistent with GetResourceNode() public - // function and FindResource() is also non-const because it changes the - // current path of m_curFileSystem to ensure that relative paths work - // correctly when CreateResFromNode() is called immediately afterwards - // (something const public function intentionally does not do) - - // Returns the node containing the resource with the given name and class - // name unless it's empty (then any class matches) or NULL if not found. - wxXmlNode *FindResource(const wxString& name, const wxString& classname, - bool recursive = false); - - // Helper function used by FindResource() to look under the given node. - wxXmlNode *DoFindResource(wxXmlNode *parent, const wxString& name, - const wxString& classname, bool recursive) const; - - // Creates a resource from information in the given node - // (Uses only 'handlerToUse' if != NULL) - wxObject *CreateResFromNode(wxXmlNode *node, wxObject *parent, - wxObject *instance = NULL, - wxXmlResourceHandler *handlerToUse = NULL) - { - return node ? DoCreateResFromNode(*node, parent, instance, handlerToUse) - : NULL; - } - - // Helper of Load() and Unload(): returns the URL corresponding to the - // given file if it's indeed a file, otherwise returns the original string - // unmodified - static wxString ConvertFileNameToURL(const wxString& filename); - - // loading resources from archives is impossible without wxFileSystem -#if wxUSE_FILESYSTEM - // Another helper: detect if the filename is a ZIP or XRS file - static bool IsArchive(const wxString& filename); -#endif // wxUSE_FILESYSTEM - -private: - wxXmlResourceDataRecords& Data() { return *m_data; } - const wxXmlResourceDataRecords& Data() const { return *m_data; } - - // the real implementation of CreateResFromNode(): this should be only - // called if node is non-NULL - wxObject *DoCreateResFromNode(wxXmlNode& node, - wxObject *parent, - wxObject *instance, - wxXmlResourceHandler *handlerToUse = NULL); - - // common part of LoadObject() and LoadObjectRecursively() - wxObject *DoLoadObject(wxWindow *parent, - const wxString& name, - const wxString& classname, - bool recursive); - bool DoLoadObject(wxObject *instance, - wxWindow *parent, - const wxString& name, - const wxString& classname, - bool recursive); - -private: - long m_version; - - int m_flags; - wxVector m_handlers; - wxXmlResourceDataRecords *m_data; -#if wxUSE_FILESYSTEM - wxFileSystem m_curFileSystem; - wxFileSystem& GetCurFileSystem() { return m_curFileSystem; } -#endif - - // domain to pass to translation functions, if any. - wxString m_domain; - - friend class wxXmlResourceHandlerImpl; - friend class wxXmlResourceModule; - friend class wxIdRangeManager; - friend class wxIdRange; - - static wxXmlSubclassFactories *ms_subclassFactories; - - // singleton instance: - static wxXmlResource *ms_instance; -}; - - -// This macro translates string identifier (as used in XML resource, -// e.g. ...) to integer id that is needed by -// wxWidgets event tables. -// Example: -// wxBEGIN_EVENT_TABLE(MyFrame, wxFrame) -// EVT_MENU(XRCID("quit"), MyFrame::OnQuit) -// EVT_MENU(XRCID("about"), MyFrame::OnAbout) -// EVT_MENU(XRCID("new"), MyFrame::OnNew) -// EVT_MENU(XRCID("open"), MyFrame::OnOpen) -// wxEND_EVENT_TABLE() - -#define XRCID(str_id) \ - wxXmlResource::DoGetXRCID(str_id) - - -// This macro returns pointer to particular control in dialog -// created using XML resources. You can use it to set/get values from -// controls. -// Example: -// wxDialog dlg; -// wxXmlResource::Get()->LoadDialog(&dlg, mainFrame, "my_dialog"); -// XRCCTRL(dlg, "my_textctrl", wxTextCtrl)->SetValue(wxT("default value")); - -#define XRCCTRL(window, id, type) \ - (wxStaticCast((window).FindWindow(XRCID(id)), type)) - -// This macro returns pointer to sizer item -// Example: -// -// -// 400, 300 -// -// -// wxSizerItem* item = XRCSIZERITEM(*this, "area") - -#define XRCSIZERITEM(window, id) \ - ((window).GetSizer() ? (window).GetSizer()->GetItemById(XRCID(id)) : NULL) - - -// wxXmlResourceHandlerImpl is the back-end of the wxXmlResourceHander class to -// really implementing all its functionality. It is defined in the "xrc" -// library unlike wxXmlResourceHandler itself which is defined in "core" to -// allow inheriting from it in the code from the other libraries too. - -class WXDLLIMPEXP_XRC wxXmlResourceHandlerImpl : public wxXmlResourceHandlerImplBase -{ -public: - // Constructor. - wxXmlResourceHandlerImpl(wxXmlResourceHandler *handler); - - // Destructor. - virtual ~wxXmlResourceHandlerImpl() {} - - // Creates an object (menu, dialog, control, ...) from an XML node. - // Should check for validity. - // parent is a higher-level object (usually window, dialog or panel) - // that is often necessary to create the resource. - // If instance is non-NULL it should not create a new instance via 'new' but - // should rather use this one, and call its Create method. - wxObject *CreateResource(wxXmlNode *node, wxObject *parent, - wxObject *instance) wxOVERRIDE; - - - // --- Handy methods: - - // Returns true if the node has a property class equal to classname, - // e.g. . - bool IsOfClass(wxXmlNode *node, const wxString& classname) const wxOVERRIDE; - - bool IsObjectNode(const wxXmlNode *node) const wxOVERRIDE; - // Gets node content from wxXML_ENTITY_NODE - // The problem is, content is represented as - // wxXML_ENTITY_NODE name="tag", content="" - // |-- wxXML_TEXT_NODE or - // wxXML_CDATA_SECTION_NODE name="" content="content" - wxString GetNodeContent(const wxXmlNode *node) wxOVERRIDE; - - wxXmlNode *GetNodeParent(const wxXmlNode *node) const wxOVERRIDE; - wxXmlNode *GetNodeNext(const wxXmlNode *node) const wxOVERRIDE; - wxXmlNode *GetNodeChildren(const wxXmlNode *node) const wxOVERRIDE; - - // Check to see if a parameter exists. - bool HasParam(const wxString& param) wxOVERRIDE; - - // Finds the node or returns NULL. - wxXmlNode *GetParamNode(const wxString& param) wxOVERRIDE; - - // Finds the parameter value or returns the empty string. - wxString GetParamValue(const wxString& param) wxOVERRIDE; - - // Returns the parameter value from given node. - wxString GetParamValue(const wxXmlNode* node) wxOVERRIDE; - - // Gets style flags from text in form "flag | flag2| flag3 |..." - // Only understands flags added with AddStyle - int GetStyle(const wxString& param = wxT("style"), int defaults = 0) wxOVERRIDE; - - // Gets text from param and does some conversions: - // - replaces \n, \r, \t by respective chars (according to C syntax) - // - replaces _ by & and __ by _ (needed for _File => &File because of XML) - // - calls wxGetTranslations (unless disabled in wxXmlResource) - wxString GetText(const wxString& param, bool translate = true) wxOVERRIDE; - - // Returns the XRCID. - int GetID() wxOVERRIDE; - - // Returns the resource name. - wxString GetName() wxOVERRIDE; - - // Gets a bool flag (1, t, yes, on, true are true, everything else is false). - bool GetBool(const wxString& param, bool defaultv = false) wxOVERRIDE; - - // Gets an integer value from the parameter. - long GetLong(const wxString& param, long defaultv = 0) wxOVERRIDE; - - // Gets a float value from the parameter. - float GetFloat(const wxString& param, float defaultv = 0) wxOVERRIDE; - - // Gets colour in HTML syntax (#RRGGBB). - wxColour GetColour(const wxString& param, const wxColour& defaultv = wxNullColour) wxOVERRIDE; - - // Gets the size (may be in dialog units). - wxSize GetSize(const wxString& param = wxT("size"), - wxWindow *windowToUse = NULL) wxOVERRIDE; - - // Gets the position (may be in dialog units). - wxPoint GetPosition(const wxString& param = wxT("pos")) wxOVERRIDE; - - // Gets a dimension (may be in dialog units). - wxCoord GetDimension(const wxString& param, wxCoord defaultv = 0, - wxWindow *windowToUse = NULL) wxOVERRIDE; - - // Gets a direction, complains if the value is invalid. - wxDirection GetDirection(const wxString& param, wxDirection dirDefault = wxLEFT) wxOVERRIDE; - - // Gets a bitmap. - wxBitmap GetBitmap(const wxString& param = wxT("bitmap"), - const wxArtClient& defaultArtClient = wxART_OTHER, - wxSize size = wxDefaultSize) wxOVERRIDE; - - // Gets a bitmap from an XmlNode. - wxBitmap GetBitmap(const wxXmlNode* node, - const wxArtClient& defaultArtClient = wxART_OTHER, - wxSize size = wxDefaultSize) wxOVERRIDE; - - // Gets an icon. - wxIcon GetIcon(const wxString& param = wxT("icon"), - const wxArtClient& defaultArtClient = wxART_OTHER, - wxSize size = wxDefaultSize) wxOVERRIDE; - - // Gets an icon from an XmlNode. - wxIcon GetIcon(const wxXmlNode* node, - const wxArtClient& defaultArtClient = wxART_OTHER, - wxSize size = wxDefaultSize) wxOVERRIDE; - - // Gets an icon bundle. - wxIconBundle GetIconBundle(const wxString& param, - const wxArtClient& defaultArtClient = wxART_OTHER) wxOVERRIDE; - - // Gets an image list. - wxImageList *GetImageList(const wxString& param = wxT("imagelist")) wxOVERRIDE; - -#if wxUSE_ANIMATIONCTRL - // Gets an animation. - wxAnimation* GetAnimation(const wxString& param = wxT("animation")) wxOVERRIDE; -#endif - - // Gets a font. - wxFont GetFont(const wxString& param = wxT("font"), wxWindow* parent = NULL) wxOVERRIDE; - - // Gets the value of a boolean attribute (only "0" and "1" are valid values) - bool GetBoolAttr(const wxString& attr, bool defaultv) wxOVERRIDE; - - // Returns the window associated with the handler (may be NULL). - wxWindow* GetParentAsWindow() const { return m_handler->GetParentAsWindow(); } - - // Sets common window options. - void SetupWindow(wxWindow *wnd) wxOVERRIDE; - - // Creates children. - void CreateChildren(wxObject *parent, bool this_hnd_only = false) wxOVERRIDE; - - // Helper function. - void CreateChildrenPrivately(wxObject *parent, wxXmlNode *rootnode = NULL) wxOVERRIDE; - - // Creates a resource from a node. - wxObject *CreateResFromNode(wxXmlNode *node, - wxObject *parent, wxObject *instance = NULL) wxOVERRIDE; - - // helper -#if wxUSE_FILESYSTEM - wxFileSystem& GetCurFileSystem() wxOVERRIDE; -#endif - - // reports input error at position 'context' - void ReportError(wxXmlNode *context, const wxString& message) wxOVERRIDE; - // reports input error at m_node - void ReportError(const wxString& message) wxOVERRIDE; - // reports input error when parsing parameter with given name - void ReportParamError(const wxString& param, const wxString& message) wxOVERRIDE; -}; - - -// Programmer-friendly macros for writing XRC handlers: - -#define XRC_MAKE_INSTANCE(variable, classname) \ - classname *variable = NULL; \ - if (m_instance) \ - variable = wxStaticCast(m_instance, classname); \ - if (!variable) \ - variable = new classname; \ - if (GetBool(wxT("hidden"), 0) == 1) \ - variable->Hide(); - - -// FIXME -- remove this $%^#$%#$@# as soon as Ron checks his changes in!! -WXDLLIMPEXP_XRC void wxXmlInitResourceModule(); - - -// This class is used to create instances of XRC "object" nodes with "subclass" -// property. It is _not_ supposed to be used by XRC users, you should instead -// register your subclasses via wxWidgets' RTTI mechanism. This class is useful -// only for language bindings developer who need a way to implement subclassing -// in wxWidgets ports that don't support wxRTTI (e.g. wxPython). -class WXDLLIMPEXP_XRC wxXmlSubclassFactory -{ -public: - // Try to create instance of given class and return it, return NULL on - // failure: - virtual wxObject *Create(const wxString& className) = 0; - virtual ~wxXmlSubclassFactory() {} -}; - - -/* ------------------------------------------------------------------------- - Backward compatibility macros. Do *NOT* use, they may disappear in future - versions of the XRC library! - ------------------------------------------------------------------------- */ - -#endif // wxUSE_XRC - -#endif // _WX_XMLRES_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xmlreshandler.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xmlreshandler.h deleted file mode 100644 index 0dab73b3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xrc/xmlreshandler.h +++ /dev/null @@ -1,411 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xrc/xmlreshandler.cpp -// Purpose: XML resource handler -// Author: Steven Lamerton -// Created: 2011/01/26 -// Copyright: (c) 2011 Steven Lamerton -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XRC_XMLRESHANDLER_H_ -#define _WX_XRC_XMLRESHANDLER_H_ - -#include "wx/defs.h" - -#if wxUSE_XRC - -#include "wx/string.h" -#include "wx/artprov.h" -#include "wx/colour.h" -#include "wx/filesys.h" -#include "wx/imaglist.h" -#include "wx/window.h" - -class WXDLLIMPEXP_FWD_ADV wxAnimation; - -class WXDLLIMPEXP_FWD_XML wxXmlNode; -class WXDLLIMPEXP_FWD_XML wxXmlResource; - -class WXDLLIMPEXP_FWD_CORE wxXmlResourceHandler; - -// Helper macro used by the classes derived from wxXmlResourceHandler but also -// by wxXmlResourceHandler implementation itself. -#define XRC_ADD_STYLE(style) AddStyle(wxT(#style), style) - -// Abstract base class for the implementation object used by -// wxXmlResourceHandlerImpl. The real implementation is in -// wxXmlResourceHandlerImpl class in the "xrc" library while this class is in -// the "core" itself -- but it is so small that it doesn't matter. - -class WXDLLIMPEXP_CORE wxXmlResourceHandlerImplBase : public wxObject -{ -public: - // Constructor. - wxXmlResourceHandlerImplBase(wxXmlResourceHandler *handler) - : m_handler(handler) - {} - - // Destructor. - virtual ~wxXmlResourceHandlerImplBase() {} - - virtual wxObject *CreateResource(wxXmlNode *node, wxObject *parent, - wxObject *instance) = 0; - virtual bool IsOfClass(wxXmlNode *node, const wxString& classname) const = 0; - virtual bool IsObjectNode(const wxXmlNode *node) const = 0; - virtual wxString GetNodeContent(const wxXmlNode *node) = 0; - virtual wxXmlNode *GetNodeParent(const wxXmlNode *node) const = 0; - virtual wxXmlNode *GetNodeNext(const wxXmlNode *node) const = 0; - virtual wxXmlNode *GetNodeChildren(const wxXmlNode *node) const = 0; - virtual bool HasParam(const wxString& param) = 0; - virtual wxXmlNode *GetParamNode(const wxString& param) = 0; - virtual wxString GetParamValue(const wxString& param) = 0; - virtual wxString GetParamValue(const wxXmlNode* node) = 0; - virtual int GetStyle(const wxString& param = wxT("style"), int defaults = 0) = 0; - virtual wxString GetText(const wxString& param, bool translate = true) = 0; - virtual int GetID() = 0; - virtual wxString GetName() = 0; - virtual bool GetBool(const wxString& param, bool defaultv = false) = 0; - virtual long GetLong(const wxString& param, long defaultv = 0) = 0; - virtual float GetFloat(const wxString& param, float defaultv = 0) = 0; - virtual wxColour GetColour(const wxString& param, - const wxColour& defaultv = wxNullColour) = 0; - virtual wxSize GetSize(const wxString& param = wxT("size"), - wxWindow *windowToUse = NULL) = 0; - virtual wxPoint GetPosition(const wxString& param = wxT("pos")) = 0; - virtual wxCoord GetDimension(const wxString& param, wxCoord defaultv = 0, - wxWindow *windowToUse = NULL) = 0; - virtual wxDirection GetDirection(const wxString& param, wxDirection dir = wxLEFT) = 0; - virtual wxBitmap GetBitmap(const wxString& param = wxT("bitmap"), - const wxArtClient& defaultArtClient = wxART_OTHER, - wxSize size = wxDefaultSize) = 0; - virtual wxBitmap GetBitmap(const wxXmlNode* node, - const wxArtClient& defaultArtClient = wxART_OTHER, - wxSize size = wxDefaultSize) = 0; - virtual wxIcon GetIcon(const wxString& param = wxT("icon"), - const wxArtClient& defaultArtClient = wxART_OTHER, - wxSize size = wxDefaultSize) = 0; - virtual wxIcon GetIcon(const wxXmlNode* node, - const wxArtClient& defaultArtClient = wxART_OTHER, - wxSize size = wxDefaultSize) = 0; - virtual wxIconBundle GetIconBundle(const wxString& param, - const wxArtClient& defaultArtClient = wxART_OTHER) = 0; - virtual wxImageList *GetImageList(const wxString& param = wxT("imagelist")) = 0; - -#if wxUSE_ANIMATIONCTRL - virtual wxAnimation* GetAnimation(const wxString& param = wxT("animation")) = 0; -#endif - - virtual wxFont GetFont(const wxString& param = wxT("font"), wxWindow* parent = NULL) = 0; - virtual bool GetBoolAttr(const wxString& attr, bool defaultv) = 0; - virtual void SetupWindow(wxWindow *wnd) = 0; - virtual void CreateChildren(wxObject *parent, bool this_hnd_only = false) = 0; - virtual void CreateChildrenPrivately(wxObject *parent, - wxXmlNode *rootnode = NULL) = 0; - virtual wxObject *CreateResFromNode(wxXmlNode *node, wxObject *parent, - wxObject *instance = NULL) = 0; - -#if wxUSE_FILESYSTEM - virtual wxFileSystem& GetCurFileSystem() = 0; -#endif - virtual void ReportError(wxXmlNode *context, const wxString& message) = 0; - virtual void ReportError(const wxString& message) = 0; - virtual void ReportParamError(const wxString& param, const wxString& message) = 0; - - wxXmlResourceHandler* GetHandler() { return m_handler; } - -protected: - wxXmlResourceHandler *m_handler; -}; - -// Base class for all XRC handlers. -// -// Notice that this class is defined in the core library itself and so can be -// used as the base class by classes in any GUI library. However to actually be -// usable, it needs to be registered with wxXmlResource which implies linking -// the application with the xrc library. -// -// Also note that all the methods forwarding to GetImpl() are documented only -// in wxXmlResourceHandlerImpl in wx/xrc/xmlres.h to avoid duplication. - -class WXDLLIMPEXP_CORE wxXmlResourceHandler : public wxObject -{ -public: - // Constructor creates an unusable object, before anything can be done with - // it, SetImpl() needs to be called as done by wxXmlResource::AddHandler(). - wxXmlResourceHandler() - { - m_node = NULL; - m_parent = - m_instance = NULL; - m_parentAsWindow = NULL; - m_resource = NULL; - - m_impl = NULL; - } - - // This should be called exactly once. - void SetImpl(wxXmlResourceHandlerImplBase* impl) - { - wxASSERT_MSG( !m_impl, wxS("Should be called exactly once") ); - - m_impl = impl; - } - - - // Destructor. - virtual ~wxXmlResourceHandler() - { - delete m_impl; - } - - wxObject *CreateResource(wxXmlNode *node, wxObject *parent, - wxObject *instance) - { - return GetImpl()->CreateResource(node, parent, instance); - } - - // This one is called from CreateResource after variables - // were filled. - virtual wxObject *DoCreateResource() = 0; - - // Returns true if it understands this node and can create - // a resource from it, false otherwise. - virtual bool CanHandle(wxXmlNode *node) = 0; - - - void SetParentResource(wxXmlResource *res) - { - m_resource = res; - } - - - // These methods are not forwarded to wxXmlResourceHandlerImpl because they - // are called from the derived classes ctors and so before SetImpl() can be - // called. - - // Add a style flag (e.g. wxMB_DOCKABLE) to the list of flags - // understood by this handler. - void AddStyle(const wxString& name, int value); - - // Add styles common to all wxWindow-derived classes. - void AddWindowStyles(); - -protected: - // Everything else is simply forwarded to wxXmlResourceHandlerImpl. - void ReportError(wxXmlNode *context, const wxString& message) - { - GetImpl()->ReportError(context, message); - } - void ReportError(const wxString& message) - { - GetImpl()->ReportError(message); - } - void ReportParamError(const wxString& param, const wxString& message) - { - GetImpl()->ReportParamError(param, message); - } - - bool IsOfClass(wxXmlNode *node, const wxString& classname) const - { - return GetImpl()->IsOfClass(node, classname); - } - - bool IsObjectNode(const wxXmlNode *node) const - { - return GetImpl()->IsObjectNode(node); - } - wxString GetNodeContent(const wxXmlNode *node) - { - return GetImpl()->GetNodeContent(node); - } - - wxXmlNode *GetNodeParent(const wxXmlNode *node) const - { - return GetImpl()->GetNodeParent(node); - } - wxXmlNode *GetNodeNext(const wxXmlNode *node) const - { - return GetImpl()->GetNodeNext(node); - } - wxXmlNode *GetNodeChildren(const wxXmlNode *node) const - { - return GetImpl()->GetNodeChildren(node); - } - - bool HasParam(const wxString& param) - { - return GetImpl()->HasParam(param); - } - - wxXmlNode *GetParamNode(const wxString& param) - { - return GetImpl()->GetParamNode(param); - } - wxString GetParamValue(const wxString& param) - { - return GetImpl()->GetParamValue(param); - } - wxString GetParamValue(const wxXmlNode* node) - { - return GetImpl()->GetParamValue(node); - } - int GetStyle(const wxString& param = wxT("style"), int defaults = 0) - { - return GetImpl()->GetStyle(param, defaults); - } - wxString GetText(const wxString& param, bool translate = true) - { - return GetImpl()->GetText(param, translate); - } - int GetID() const - { - return GetImpl()->GetID(); - } - wxString GetName() - { - return GetImpl()->GetName(); - } - bool GetBool(const wxString& param, bool defaultv = false) - { - return GetImpl()->GetBool(param, defaultv); - } - long GetLong(const wxString& param, long defaultv = 0) - { - return GetImpl()->GetLong(param, defaultv); - } - float GetFloat(const wxString& param, float defaultv = 0) - { - return GetImpl()->GetFloat(param, defaultv); - } - wxColour GetColour(const wxString& param, - const wxColour& defaultv = wxNullColour) - { - return GetImpl()->GetColour(param, defaultv); - } - wxSize GetSize(const wxString& param = wxT("size"), - wxWindow *windowToUse = NULL) - { - return GetImpl()->GetSize(param, windowToUse); - } - wxPoint GetPosition(const wxString& param = wxT("pos")) - { - return GetImpl()->GetPosition(param); - } - wxCoord GetDimension(const wxString& param, wxCoord defaultv = 0, - wxWindow *windowToUse = NULL) - { - return GetImpl()->GetDimension(param, defaultv, windowToUse); - } - wxDirection GetDirection(const wxString& param, wxDirection dir = wxLEFT) - { - return GetImpl()->GetDirection(param, dir); - } - wxBitmap GetBitmap(const wxString& param = wxT("bitmap"), - const wxArtClient& defaultArtClient = wxART_OTHER, - wxSize size = wxDefaultSize) - { - return GetImpl()->GetBitmap(param, defaultArtClient, size); - } - wxBitmap GetBitmap(const wxXmlNode* node, - const wxArtClient& defaultArtClient = wxART_OTHER, - wxSize size = wxDefaultSize) - { - return GetImpl()->GetBitmap(node, defaultArtClient, size); - } - wxIcon GetIcon(const wxString& param = wxT("icon"), - const wxArtClient& defaultArtClient = wxART_OTHER, - wxSize size = wxDefaultSize) - { - return GetImpl()->GetIcon(param, defaultArtClient, size); - } - wxIcon GetIcon(const wxXmlNode* node, - const wxArtClient& defaultArtClient = wxART_OTHER, - wxSize size = wxDefaultSize) - { - return GetImpl()->GetIcon(node, defaultArtClient, size); - } - wxIconBundle GetIconBundle(const wxString& param, - const wxArtClient& defaultArtClient = wxART_OTHER) - { - return GetImpl()->GetIconBundle(param, defaultArtClient); - } - wxImageList *GetImageList(const wxString& param = wxT("imagelist")) - { - return GetImpl()->GetImageList(param); - } - -#if wxUSE_ANIMATIONCTRL - wxAnimation* GetAnimation(const wxString& param = wxT("animation")) - { - return GetImpl()->GetAnimation(param); - } -#endif - - wxFont GetFont(const wxString& param = wxT("font"), - wxWindow* parent = NULL) - { - return GetImpl()->GetFont(param, parent); - } - bool GetBoolAttr(const wxString& attr, bool defaultv) - { - return GetImpl()->GetBoolAttr(attr, defaultv); - } - void SetupWindow(wxWindow *wnd) - { - GetImpl()->SetupWindow(wnd); - } - void CreateChildren(wxObject *parent, bool this_hnd_only = false) - { - GetImpl()->CreateChildren(parent, this_hnd_only); - } - void CreateChildrenPrivately(wxObject *parent, wxXmlNode *rootnode = NULL) - { - GetImpl()->CreateChildrenPrivately(parent, rootnode); - } - wxObject *CreateResFromNode(wxXmlNode *node, - wxObject *parent, wxObject *instance = NULL) - { - return GetImpl()->CreateResFromNode(node, parent, instance); - } - -#if wxUSE_FILESYSTEM - wxFileSystem& GetCurFileSystem() - { - return GetImpl()->GetCurFileSystem(); - } -#endif - - // Variables (filled by CreateResource) - wxXmlNode *m_node; - wxString m_class; - wxObject *m_parent, *m_instance; - wxWindow *m_parentAsWindow; - wxXmlResource *m_resource; - - // provide method access to those member variables - wxXmlResource* GetResource() const { return m_resource; } - wxXmlNode* GetNode() const { return m_node; } - wxString GetClass() const { return m_class; } - wxObject* GetParent() const { return m_parent; } - wxObject* GetInstance() const { return m_instance; } - wxWindow* GetParentAsWindow() const { return m_parentAsWindow; } - - - wxArrayString m_styleNames; - wxArrayInt m_styleValues; - - friend class wxXmlResourceHandlerImpl; - -private: - // This is supposed to never return NULL because SetImpl() should have been - // called. - wxXmlResourceHandlerImplBase* GetImpl() const; - - wxXmlResourceHandlerImplBase *m_impl; - - wxDECLARE_ABSTRACT_CLASS(wxXmlResourceHandler); -}; - -#endif // wxUSE_XRC - -#endif // _WX_XRC_XMLRESHANDLER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xti.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xti.h deleted file mode 100644 index f8ddce9b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xti.h +++ /dev/null @@ -1,469 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xti.h -// Purpose: runtime metadata information (extended class info) -// Author: Stefan Csomor -// Modified by: Francesco Montorsi -// Created: 27/07/03 -// Copyright: (c) 1997 Julian Smart -// (c) 2003 Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XTIH__ -#define _WX_XTIH__ - -// We want to support properties, event sources and events sinks through -// explicit declarations, using templates and specialization to make the -// effort as painless as possible. -// -// This means we have the following domains : -// -// - Type Information for categorizing built in types as well as custom types -// this includes information about enums, their values and names -// - Type safe value storage : a kind of wxVariant, called right now wxAny -// which will be merged with wxVariant -// - Property Information and Property Accessors providing access to a class' -// values and exposed event delegates -// - Information about event handlers -// - extended Class Information for accessing all these - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" - -#if wxUSE_EXTENDED_RTTI - -class WXDLLIMPEXP_FWD_BASE wxAny; -class WXDLLIMPEXP_FWD_BASE wxAnyList; -class WXDLLIMPEXP_FWD_BASE wxObject; -class WXDLLIMPEXP_FWD_BASE wxString; -class WXDLLIMPEXP_FWD_BASE wxClassInfo; -class WXDLLIMPEXP_FWD_BASE wxHashTable; -class WXDLLIMPEXP_FWD_BASE wxObject; -class WXDLLIMPEXP_FWD_BASE wxPluginLibrary; -class WXDLLIMPEXP_FWD_BASE wxHashTable; -class WXDLLIMPEXP_FWD_BASE wxHashTable_Node; - -class WXDLLIMPEXP_FWD_BASE wxStringToAnyHashMap; -class WXDLLIMPEXP_FWD_BASE wxPropertyInfoMap; -class WXDLLIMPEXP_FWD_BASE wxPropertyAccessor; -class WXDLLIMPEXP_FWD_BASE wxObjectAllocatorAndCreator; -class WXDLLIMPEXP_FWD_BASE wxObjectAllocator; - - -#define wx_dynamic_cast(t, x) dynamic_cast(x) - -#include "wx/xtitypes.h" -#include "wx/xtihandler.h" - -// ---------------------------------------------------------------------------- -// wxClassInfo -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxObjectFunctor -{ -public: - virtual ~wxObjectFunctor(); - - // Invoke the actual event handler: - virtual void operator()(const wxObject *) = 0; -}; - -class WXDLLIMPEXP_FWD_BASE wxPropertyInfo; -class WXDLLIMPEXP_FWD_BASE wxHandlerInfo; - -typedef wxObject *(*wxObjectConstructorFn)(void); -typedef wxPropertyInfo *(*wxPropertyInfoFn)(void); -typedef wxHandlerInfo *(*wxHandlerInfoFn)(void); -typedef void (*wxVariantToObjectConverter)( const wxAny &data, wxObjectFunctor* fn ); -typedef wxObject* (*wxVariantToObjectPtrConverter) ( const wxAny& data); -typedef wxAny (*wxObjectToVariantConverter)( wxObject* ); - -WXDLLIMPEXP_BASE wxString wxAnyGetAsString( const wxAny& data); -WXDLLIMPEXP_BASE const wxObject* wxAnyGetAsObjectPtr( const wxAny& data); - -class WXDLLIMPEXP_BASE wxObjectWriter; -class WXDLLIMPEXP_BASE wxObjectWriterCallback; - -typedef bool (*wxObjectStreamingCallback) ( const wxObject *, wxObjectWriter *, \ - wxObjectWriterCallback *, const wxStringToAnyHashMap & ); - - - -class WXDLLIMPEXP_BASE wxClassInfo -{ - friend class WXDLLIMPEXP_BASE wxPropertyInfo; - friend class /* WXDLLIMPEXP_BASE */ wxHandlerInfo; - friend wxObject *wxCreateDynamicObject(const wxString& name); - -public: - wxClassInfo(const wxClassInfo **_Parents, - const wxChar *_UnitName, - const wxChar *_ClassName, - int size, - wxObjectConstructorFn ctor, - wxPropertyInfoFn _Props, - wxHandlerInfoFn _Handlers, - wxObjectAllocatorAndCreator* _Constructor, - const wxChar ** _ConstructorProperties, - const int _ConstructorPropertiesCount, - wxVariantToObjectPtrConverter _PtrConverter1, - wxVariantToObjectConverter _Converter2, - wxObjectToVariantConverter _Converter3, - wxObjectStreamingCallback _streamingCallback = NULL) : - m_className(_ClassName), - m_objectSize(size), - m_objectConstructor(ctor), - m_next(sm_first), - m_firstPropertyFn(_Props), - m_firstHandlerFn(_Handlers), - m_firstProperty(NULL), - m_firstHandler(NULL), - m_firstInited(false), - m_parents(_Parents), - m_unitName(_UnitName), - m_constructor(_Constructor), - m_constructorProperties(_ConstructorProperties), - m_constructorPropertiesCount(_ConstructorPropertiesCount), - m_variantOfPtrToObjectConverter(_PtrConverter1), - m_variantToObjectConverter(_Converter2), - m_objectToVariantConverter(_Converter3), - m_streamingCallback(_streamingCallback) - { - sm_first = this; - Register(); - } - - wxClassInfo(const wxChar *_UnitName, const wxChar *_ClassName, - const wxClassInfo **_Parents) : - m_className(_ClassName), - m_objectSize(0), - m_objectConstructor(NULL), - m_next(sm_first), - m_firstPropertyFn(NULL), - m_firstHandlerFn(NULL), - m_firstProperty(NULL), - m_firstHandler(NULL), - m_firstInited(true), - m_parents(_Parents), - m_unitName(_UnitName), - m_constructor(NULL), - m_constructorProperties(NULL), - m_constructorPropertiesCount(0), - m_variantOfPtrToObjectConverter(NULL), - m_variantToObjectConverter(NULL), - m_objectToVariantConverter(NULL), - m_streamingCallback(NULL) - { - sm_first = this; - Register(); - } - - // ctor compatible with old RTTI system - wxClassInfo(const wxChar *_ClassName, - const wxClassInfo *_Parent1, - const wxClassInfo *_Parent2, - int size, - wxObjectConstructorFn ctor) : - m_className(_ClassName), - m_objectSize(size), - m_objectConstructor(ctor), - m_next(sm_first), - m_firstPropertyFn(NULL), - m_firstHandlerFn(NULL), - m_firstProperty(NULL), - m_firstHandler(NULL), - m_firstInited(true), - m_parents(NULL), - m_unitName(NULL), - m_constructor(NULL), - m_constructorProperties(NULL), - m_constructorPropertiesCount(0), - m_variantOfPtrToObjectConverter(NULL), - m_variantToObjectConverter(NULL), - m_objectToVariantConverter(NULL), - m_streamingCallback(NULL) - { - sm_first = this; - m_parents[0] = _Parent1; - m_parents[1] = _Parent2; - m_parents[2] = NULL; - Register(); - } - - virtual ~wxClassInfo(); - - // allocates an instance of this class, this object does not have to be - // initialized or fully constructed as this call will be followed by a call to Create - virtual wxObject *AllocateObject() const - { return m_objectConstructor ? (*m_objectConstructor)() : 0; } - - // 'old naming' for AllocateObject staying here for backward compatibility - wxObject *CreateObject() const { return AllocateObject(); } - - // direct construction call for classes that cannot construct instances via alloc/create - wxObject *ConstructObject(int ParamCount, wxAny *Params) const; - - bool NeedsDirectConstruction() const; - - const wxChar *GetClassName() const - { return m_className; } - const wxChar *GetBaseClassName1() const - { return m_parents[0] ? m_parents[0]->GetClassName() : NULL; } - const wxChar *GetBaseClassName2() const - { return (m_parents[0] && m_parents[1]) ? m_parents[1]->GetClassName() : NULL; } - - const wxClassInfo *GetBaseClass1() const - { return m_parents[0]; } - const wxClassInfo *GetBaseClass2() const - { return m_parents[0] ? m_parents[1] : NULL; } - - const wxChar *GetIncludeName() const - { return m_unitName; } - const wxClassInfo **GetParents() const - { return m_parents; } - int GetSize() const - { return m_objectSize; } - bool IsDynamic() const - { return (NULL != m_objectConstructor); } - - wxObjectConstructorFn GetConstructor() const - { return m_objectConstructor; } - const wxClassInfo *GetNext() const - { return m_next; } - - // statics: - - static void CleanUp(); - static wxClassInfo *FindClass(const wxString& className); - static const wxClassInfo *GetFirst() - { return sm_first; } - - - // Climb upwards through inheritance hierarchy. - // Dual inheritance is catered for. - - bool IsKindOf(const wxClassInfo *info) const; - - wxDECLARE_CLASS_INFO_ITERATORS(); - - // if there is a callback registered with that class it will be called - // before this object will be written to disk, it can veto streaming out - // this object by returning false, if this class has not registered a - // callback, the search will go up the inheritance tree if no callback has - // been registered true will be returned by default - bool BeforeWriteObject( const wxObject *obj, wxObjectWriter *streamer, - wxObjectWriterCallback *writercallback, const wxStringToAnyHashMap &metadata) const; - - // gets the streaming callback from this class or any superclass - wxObjectStreamingCallback GetStreamingCallback() const; - - // returns the first property - wxPropertyInfo* GetFirstProperty() const - { EnsureInfosInited(); return m_firstProperty; } - - // returns the first handler - wxHandlerInfo* GetFirstHandler() const - { EnsureInfosInited(); return m_firstHandler; } - - // Call the Create upon an instance of the class, in the end the object is fully - // initialized - virtual bool Create (wxObject *object, int ParamCount, wxAny *Params) const; - - // get number of parameters for constructor - virtual int GetCreateParamCount() const - { return m_constructorPropertiesCount; } - - // get n-th constructor parameter - virtual const wxChar* GetCreateParamName(int n) const - { return m_constructorProperties[n]; } - - // Runtime access to objects for simple properties (get/set) by property - // name and variant data - virtual void SetProperty (wxObject *object, const wxChar *propertyName, - const wxAny &value) const; - virtual wxAny GetProperty (wxObject *object, const wxChar *propertyName) const; - - // Runtime access to objects for collection properties by property name - virtual wxAnyList GetPropertyCollection(wxObject *object, - const wxChar *propertyName) const; - virtual void AddToPropertyCollection(wxObject *object, const wxChar *propertyName, - const wxAny& value) const; - - // we must be able to cast variants to wxObject pointers, templates seem - // not to be suitable - void CallOnAny( const wxAny &data, wxObjectFunctor* functor ) const; - - wxObject* AnyToObjectPtr( const wxAny &data) const; - - wxAny ObjectPtrToAny( wxObject *object ) const; - - // find property by name - virtual const wxPropertyInfo *FindPropertyInfo (const wxChar *PropertyName) const; - - // find handler by name - virtual const wxHandlerInfo *FindHandlerInfo (const wxChar *handlerName) const; - - // find property by name - virtual wxPropertyInfo *FindPropertyInfoInThisClass (const wxChar *PropertyName) const; - - // find handler by name - virtual wxHandlerInfo *FindHandlerInfoInThisClass (const wxChar *handlerName) const; - - // puts all the properties of this class and its superclasses in the map, - // as long as there is not yet an entry with the same name (overriding mechanism) - void GetProperties( wxPropertyInfoMap &map ) const; - -private: - const wxChar *m_className; - int m_objectSize; - wxObjectConstructorFn m_objectConstructor; - - // class info object live in a linked list: - // pointers to its head and the next element in it - - static wxClassInfo *sm_first; - wxClassInfo *m_next; - - static wxHashTable *sm_classTable; - - wxPropertyInfoFn m_firstPropertyFn; - wxHandlerInfoFn m_firstHandlerFn; - - -protected: - void EnsureInfosInited() const - { - if ( !m_firstInited) - { - if ( m_firstPropertyFn != NULL) - m_firstProperty = (*m_firstPropertyFn)(); - if ( m_firstHandlerFn != NULL) - m_firstHandler = (*m_firstHandlerFn)(); - m_firstInited = true; - } - } - mutable wxPropertyInfo* m_firstProperty; - mutable wxHandlerInfo* m_firstHandler; - -private: - mutable bool m_firstInited; - - const wxClassInfo** m_parents; - const wxChar* m_unitName; - - wxObjectAllocatorAndCreator* m_constructor; - const wxChar ** m_constructorProperties; - const int m_constructorPropertiesCount; - wxVariantToObjectPtrConverter m_variantOfPtrToObjectConverter; - wxVariantToObjectConverter m_variantToObjectConverter; - wxObjectToVariantConverter m_objectToVariantConverter; - wxObjectStreamingCallback m_streamingCallback; - - const wxPropertyAccessor *FindAccessor (const wxChar *propertyName) const; - -protected: - // registers the class - void Register(); - void Unregister(); - - wxDECLARE_NO_COPY_CLASS(wxClassInfo); -}; - -WXDLLIMPEXP_BASE wxObject *wxCreateDynamicObject(const wxString& name); - -// ---------------------------------------------------------------------------- -// wxDynamicClassInfo -// ---------------------------------------------------------------------------- - -// this object leads to having a pure runtime-instantiation - -class WXDLLIMPEXP_BASE wxDynamicClassInfo : public wxClassInfo -{ - friend class WXDLLIMPEXP_BASE wxDynamicObject; - -public: - wxDynamicClassInfo( const wxChar *_UnitName, const wxChar *_ClassName, - const wxClassInfo* superClass ); - virtual ~wxDynamicClassInfo(); - - // constructs a wxDynamicObject with an instance - virtual wxObject *AllocateObject() const; - - // Call the Create method for a class - virtual bool Create (wxObject *object, int ParamCount, wxAny *Params) const; - - // get number of parameters for constructor - virtual int GetCreateParamCount() const; - - // get i-th constructor parameter - virtual const wxChar* GetCreateParamName(int i) const; - - // Runtime access to objects by property name, and variant data - virtual void SetProperty (wxObject *object, const wxChar *PropertyName, - const wxAny &Value) const; - virtual wxAny GetProperty (wxObject *object, const wxChar *PropertyName) const; - - // adds a property to this class at runtime - void AddProperty( const wxChar *propertyName, const wxTypeInfo* typeInfo ); - - // removes an existing runtime-property - void RemoveProperty( const wxChar *propertyName ); - - // renames an existing runtime-property - void RenameProperty( const wxChar *oldPropertyName, const wxChar *newPropertyName ); - - // as a handler to this class at runtime - void AddHandler( const wxChar *handlerName, wxObjectEventFunction address, - const wxClassInfo* eventClassInfo ); - - // removes an existing runtime-handler - void RemoveHandler( const wxChar *handlerName ); - - // renames an existing runtime-handler - void RenameHandler( const wxChar *oldHandlerName, const wxChar *newHandlerName ); - -private: - struct wxDynamicClassInfoInternal; - wxDynamicClassInfoInternal* m_data; -}; - -// ---------------------------------------------------------------------------- -// wxDECLARE class macros -// ---------------------------------------------------------------------------- - -#define _DECLARE_DYNAMIC_CLASS(name) \ - public: \ - static wxClassInfo ms_classInfo; \ - static const wxClassInfo* ms_classParents[]; \ - static wxPropertyInfo* GetPropertiesStatic(); \ - static wxHandlerInfo* GetHandlersStatic(); \ - static wxClassInfo *GetClassInfoStatic() \ - { return &name::ms_classInfo; } \ - virtual wxClassInfo *GetClassInfo() const \ - { return &name::ms_classInfo; } - -#define wxDECLARE_DYNAMIC_CLASS(name) \ - static wxObjectAllocatorAndCreator* ms_constructor; \ - static const wxChar * ms_constructorProperties[]; \ - static const int ms_constructorPropertiesCount; \ - _DECLARE_DYNAMIC_CLASS(name) - -#define wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(name) \ - wxDECLARE_NO_ASSIGN_CLASS(name); \ - wxDECLARE_DYNAMIC_CLASS(name) - -#define wxDECLARE_DYNAMIC_CLASS_NO_COPY(name) \ - wxDECLARE_NO_COPY_CLASS(name); \ - wxDECLARE_DYNAMIC_CLASS(name) - -#define wxDECLARE_CLASS(name) \ - wxDECLARE_DYNAMIC_CLASS(name) - -#define wxDECLARE_ABSTRACT_CLASS(name) _DECLARE_DYNAMIC_CLASS(name) -#define wxCLASSINFO(name) (&name::ms_classInfo) - -#endif // wxUSE_EXTENDED_RTTI -#endif // _WX_XTIH__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xti2.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xti2.h deleted file mode 100644 index c7abd2fa..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xti2.h +++ /dev/null @@ -1,293 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/wxt2.h -// Purpose: runtime metadata information (extended class info) -// Author: Stefan Csomor -// Modified by: Francesco Montorsi -// Created: 27/07/03 -// Copyright: (c) 1997 Julian Smart -// (c) 2003 Stefan Csomor -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XTI2H__ -#define _WX_XTI2H__ - -// ---------------------------------------------------------------------------- -// second part of xti headers, is included from object.h -// ---------------------------------------------------------------------------- - -#if wxUSE_EXTENDED_RTTI - -// ---------------------------------------------------------------------------- -// wxDynamicObject class, its instances connect to a 'super class instance' -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxDynamicObject : public wxObject -{ - friend class WXDLLIMPEXP_FWD_BASE wxDynamicClassInfo ; -public: - // instantiates this object with an instance of its superclass - wxDynamicObject(wxObject* superClassInstance, const wxDynamicClassInfo *info) ; - virtual ~wxDynamicObject(); - - void SetProperty (const wxChar *propertyName, const wxAny &value); - wxAny GetProperty (const wxChar *propertyName) const ; - - // get the runtime identity of this object - wxClassInfo *GetClassInfo() const - { -#ifdef _MSC_VER - return (wxClassInfo*) m_classInfo; -#else - wxDynamicClassInfo *nonconst = const_cast(m_classInfo); - return static_cast(nonconst); -#endif - } - - wxObject* GetSuperClassInstance() const - { - return m_superClassInstance ; - } -private : - // removes an existing runtime-property - void RemoveProperty( const wxChar *propertyName ) ; - - // renames an existing runtime-property - void RenameProperty( const wxChar *oldPropertyName , const wxChar *newPropertyName ) ; - - wxObject *m_superClassInstance ; - const wxDynamicClassInfo *m_classInfo; - struct wxDynamicObjectInternal; - wxDynamicObjectInternal *m_data; -}; - -// ---------------------------------------------------------------------------- -// String conversion templates supporting older compilers -// ---------------------------------------------------------------------------- - -#if wxUSE_FUNC_TEMPLATE_POINTER -# define wxTO_STRING(type) wxToStringConverter -# define wxTO_STRING_IMP(type) -# define wxFROM_STRING(type) wxFromStringConverter -# define wxFROM_STRING_IMP(type) -#else -# define wxTO_STRING(type) ToString##type -# define wxTO_STRING_IMP(type) \ - inline void ToString##type( const wxAny& data, wxString &result ) \ -{ wxToStringConverter(data, result); } - -# define wxFROM_STRING(type) FromString##type -# define wxFROM_STRING_IMP(type) \ - inline void FromString##type( const wxString& data, wxAny &result ) \ -{ wxFromStringConverter(data, result); } -#endif - -#include "wx/xtiprop.h" -#include "wx/xtictor.h" - -// ---------------------------------------------------------------------------- -// wxIMPLEMENT class macros for concrete classes -// ---------------------------------------------------------------------------- - -// Single inheritance with one base class - -#define _DEFAULT_CONSTRUCTOR(name) \ -wxObject* wxConstructorFor##name() \ -{ return new name; } - -#define _DEFAULT_CONVERTERS(name) \ -wxObject* wxVariantOfPtrToObjectConverter##name ( const wxAny &data ) \ -{ return data.As( (name**)NULL ); } \ - wxAny wxObjectToVariantConverter##name ( wxObject *data ) \ -{ return wxAny( wx_dynamic_cast(name*, data) ); } - -#define _TYPEINFO_CLASSES(n, toString, fromString ) \ - wxClassTypeInfo s_typeInfo##n(wxT_OBJECT, &n::ms_classInfo, \ - toString, fromString, typeid(n).name()); \ - wxClassTypeInfo s_typeInfoPtr##n(wxT_OBJECT_PTR, &n::ms_classInfo, \ - toString, fromString, typeid(n*).name()); - -#define _IMPLEMENT_DYNAMIC_CLASS(name, basename, unit, callback) \ - _DEFAULT_CONSTRUCTOR(name) \ - _DEFAULT_CONVERTERS(name) \ - \ - const wxClassInfo* name::ms_classParents[] = \ -{ &basename::ms_classInfo, NULL }; \ - wxClassInfo name::ms_classInfo(name::ms_classParents, wxT(unit), \ - wxT(#name), (int) sizeof(name), (wxObjectConstructorFn) wxConstructorFor##name, \ - name::GetPropertiesStatic, name::GetHandlersStatic, name::ms_constructor, \ - name::ms_constructorProperties, name::ms_constructorPropertiesCount, \ - wxVariantOfPtrToObjectConverter##name, NULL, wxObjectToVariantConverter##name, \ - callback); - -#define _IMPLEMENT_DYNAMIC_CLASS_WITH_COPY(name, basename, unit, callback ) \ - _DEFAULT_CONSTRUCTOR(name) \ - _DEFAULT_CONVERTERS(name) \ - void wxVariantToObjectConverter##name ( const wxAny &data, wxObjectFunctor* fn ) \ - { name o = data.As(); (*fn)( &o ); } \ - \ - const wxClassInfo* name::ms_classParents[] = { &basename::ms_classInfo,NULL }; \ - wxClassInfo name::ms_classInfo(name::ms_classParents, wxT(unit), \ - wxT(#name), (int) sizeof(name), (wxObjectConstructorFn) wxConstructorFor##name, \ - name::GetPropertiesStatic,name::GetHandlersStatic,name::ms_constructor, \ - name::ms_constructorProperties, name::ms_constructorPropertiesCount, \ - wxVariantOfPtrToObjectConverter##name, wxVariantToObjectConverter##name, \ - wxObjectToVariantConverter##name, callback); - -#define wxIMPLEMENT_DYNAMIC_CLASS_WITH_COPY( name, basename ) \ - _IMPLEMENT_DYNAMIC_CLASS_WITH_COPY( name, basename, "", NULL ) \ - _TYPEINFO_CLASSES(name, NULL, NULL) \ - const wxPropertyInfo *name::GetPropertiesStatic() \ -{ return (wxPropertyInfo*) NULL; } \ - const wxHandlerInfo *name::GetHandlersStatic() \ -{ return (wxHandlerInfo*) NULL; } \ - wxCONSTRUCTOR_DUMMY( name ) - -#define wxIMPLEMENT_DYNAMIC_CLASS( name, basename ) \ - _IMPLEMENT_DYNAMIC_CLASS( name, basename, "", NULL ) \ - _TYPEINFO_CLASSES(name, NULL, NULL) \ - wxPropertyInfo *name::GetPropertiesStatic() \ -{ return (wxPropertyInfo*) NULL; } \ - wxHandlerInfo *name::GetHandlersStatic() \ -{ return (wxHandlerInfo*) NULL; } \ - wxCONSTRUCTOR_DUMMY( name ) - -#define wxIMPLEMENT_DYNAMIC_CLASS_XTI( name, basename, unit ) \ - _IMPLEMENT_DYNAMIC_CLASS( name, basename, unit, NULL ) \ - _TYPEINFO_CLASSES(name, NULL, NULL) - -#define wxIMPLEMENT_DYNAMIC_CLASS_XTI_CALLBACK( name, basename, unit, callback )\ - _IMPLEMENT_DYNAMIC_CLASS( name, basename, unit, &callback ) \ - _TYPEINFO_CLASSES(name, NULL, NULL) - -#define wxIMPLEMENT_DYNAMIC_CLASS_WITH_COPY_XTI( name, basename, unit ) \ - _IMPLEMENT_DYNAMIC_CLASS_WITH_COPY( name, basename, unit, NULL ) \ - _TYPEINFO_CLASSES(name, NULL, NULL) - -#define wxIMPLEMENT_DYNAMIC_CLASS_WITH_COPY_AND_STREAMERS_XTI( name, basename, \ - unit, toString, \ - fromString ) \ - _IMPLEMENT_DYNAMIC_CLASS_WITH_COPY( name, basename, unit, NULL ) \ - _TYPEINFO_CLASSES(name, toString, fromString) - -// this is for classes that do not derive from wxObject, there are no creators for these - -#define wxIMPLEMENT_DYNAMIC_CLASS_NO_WXOBJECT_NO_BASE_XTI( name, unit ) \ - const wxClassInfo* name::ms_classParents[] = { NULL }; \ - wxClassInfo name::ms_classInfo(name::ms_classParents, wxEmptyString, \ - wxT(#name), (int) sizeof(name), (wxObjectConstructorFn) 0, \ - name::GetPropertiesStatic,name::GetHandlersStatic, 0, 0, \ - 0, 0, 0 ); \ - _TYPEINFO_CLASSES(name, NULL, NULL) - -// this is for subclasses that still do not derive from wxObject - -#define wxIMPLEMENT_DYNAMIC_CLASS_NO_WXOBJECT_XTI( name, basename, unit ) \ - const wxClassInfo* name::ms_classParents[] = { &basename::ms_classInfo, NULL }; \ - wxClassInfo name::ms_classInfo(name::ms_classParents, wxEmptyString, \ - wxT(#name), (int) sizeof(name), (wxObjectConstructorFn) 0, \ - name::GetPropertiesStatic,name::GetHandlersStatic, 0, 0, \ - 0, 0, 0 ); \ - _TYPEINFO_CLASSES(name, NULL, NULL) - - -// Multiple inheritance with two base classes - -#define _IMPLEMENT_DYNAMIC_CLASS2(name, basename, basename2, unit, callback) \ - _DEFAULT_CONSTRUCTOR(name) \ - _DEFAULT_CONVERTERS(name) \ - \ - const wxClassInfo* name::ms_classParents[] = \ -{ &basename::ms_classInfo,&basename2::ms_classInfo, NULL }; \ - wxClassInfo name::ms_classInfo(name::ms_classParents, wxT(unit), \ - wxT(#name), (int) sizeof(name), (wxObjectConstructorFn) wxConstructorFor##name, \ - name::GetPropertiesStatic,name::GetHandlersStatic,name::ms_constructor, \ - name::ms_constructorProperties, name::ms_constructorPropertiesCount, \ - wxVariantOfPtrToObjectConverter##name, NULL, wxObjectToVariantConverter##name, \ - callback); - -#define wxIMPLEMENT_DYNAMIC_CLASS2( name, basename, basename2) \ - _IMPLEMENT_DYNAMIC_CLASS2( name, basename, basename2, "", NULL) \ - _TYPEINFO_CLASSES(name, NULL, NULL) \ - wxPropertyInfo *name::GetPropertiesStatic() { return (wxPropertyInfo*) NULL; } \ - wxHandlerInfo *name::GetHandlersStatic() { return (wxHandlerInfo*) NULL; } \ - wxCONSTRUCTOR_DUMMY( name ) - -#define wxIMPLEMENT_DYNAMIC_CLASS2_XTI( name, basename, basename2, unit) \ - _IMPLEMENT_DYNAMIC_CLASS2( name, basename, basename2, unit, NULL) \ - _TYPEINFO_CLASSES(name, NULL, NULL) - - - -// ---------------------------------------------------------------------------- -// wxIMPLEMENT class macros for abstract classes -// ---------------------------------------------------------------------------- - -// Single inheritance with one base class - -#define _IMPLEMENT_ABSTRACT_CLASS(name, basename) \ - _DEFAULT_CONVERTERS(name) \ - \ - const wxClassInfo* name::ms_classParents[] = \ -{ &basename::ms_classInfo,NULL }; \ - wxClassInfo name::ms_classInfo(name::ms_classParents, wxEmptyString, \ - wxT(#name), (int) sizeof(name), (wxObjectConstructorFn) 0, \ - name::GetPropertiesStatic,name::GetHandlersStatic, 0, 0, \ - 0, wxVariantOfPtrToObjectConverter##name,0, \ - wxObjectToVariantConverter##name); \ - _TYPEINFO_CLASSES(name, NULL, NULL) - -#define wxIMPLEMENT_ABSTRACT_CLASS( name, basename ) \ - _IMPLEMENT_ABSTRACT_CLASS( name, basename ) \ - wxHandlerInfo *name::GetHandlersStatic() { return (wxHandlerInfo*) NULL; } \ - wxPropertyInfo *name::GetPropertiesStatic() { return (wxPropertyInfo*) NULL; } - -// Multiple inheritance with two base classes - -#define wxIMPLEMENT_ABSTRACT_CLASS2(name, basename1, basename2) \ - wxClassInfo name::ms_classInfo(wxT(#name), wxT(#basename1), \ - wxT(#basename2), (int) sizeof(name), \ - (wxObjectConstructorFn) 0); - -// templated streaming, every type that can be converted to wxString -// must have their specialization for these methods - -template -void wxStringReadValue( const wxString &s, T &data ); - -template -void wxStringWriteValue( wxString &s, const T &data); - -template -void wxToStringConverter( const wxAny &v, wxString &s ) -{ wxStringWriteValue(s, v.As()); } - -template -void wxFromStringConverter( const wxString &s, wxAny &v) -{ T d; wxStringReadValue(s, d); v = wxAny(d); } - -// -------------------------------------------------------------------------- -// Collection Support -// -------------------------------------------------------------------------- - -template void wxListCollectionToAnyList( - const collection_t& coll, wxAnyList &value ) -{ - for ( iter current = coll.GetFirst(); current; - current = current->GetNext() ) - { - value.Append( new wxAny(current->GetData()) ); - } -} - -template void wxArrayCollectionToVariantArray( - const collection_t& coll, wxAnyList &value ) -{ - for( size_t i = 0; i < coll.GetCount(); i++ ) - { - value.Append( new wxAny(coll[i]) ); - } -} - -#endif - -#endif // _WX_XTIH2__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtictor.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtictor.h deleted file mode 100644 index 6969463f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtictor.h +++ /dev/null @@ -1,509 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xtictor.h -// Purpose: XTI constructors -// Author: Stefan Csomor -// Modified by: Francesco Montorsi -// Created: 27/07/03 -// Copyright: (c) 1997 Julian Smart -// (c) 2003 Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _XTICTOR_H_ -#define _XTICTOR_H_ - -#include "wx/defs.h" - -#if wxUSE_EXTENDED_RTTI - -#include "wx/xti.h" - -// ---------------------------------------------------------------------------- -// Constructor Bridges -// ---------------------------------------------------------------------------- - -// A constructor bridge allows to call a ctor with an arbitrary number -// or parameters during runtime -class WXDLLIMPEXP_BASE wxObjectAllocatorAndCreator -{ -public: - virtual ~wxObjectAllocatorAndCreator() { } - virtual bool Create(wxObject * &o, wxAny *args) = 0; -}; - -// a direct constructor bridge calls the operator new for this class and -// passes all params to the constructor. Needed for classes that cannot be -// instantiated using alloc-create semantics -class WXDLLIMPEXP_BASE wxObjectAllocator : public wxObjectAllocatorAndCreator -{ -public: - virtual bool Create(wxObject * &o, wxAny *args) = 0; -}; - - -// ---------------------------------------------------------------------------- -// Constructor Bridges for all Numbers of Params -// ---------------------------------------------------------------------------- - -// no params - -template -struct wxObjectAllocatorAndCreator_0 : public wxObjectAllocatorAndCreator -{ - bool Create(wxObject * &o, wxAny *) - { - Class *obj = wx_dynamic_cast(Class*, o); - return obj->Create(); - } -}; - -struct wxObjectAllocatorAndCreator_Dummy : public wxObjectAllocatorAndCreator -{ - bool Create(wxObject *&, wxAny *) - { - return true; - } -}; - -#define wxCONSTRUCTOR_0(klass) \ - wxObjectAllocatorAndCreator_0 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = { NULL }; \ - const int klass::ms_constructorPropertiesCount = 0; - -#define wxCONSTRUCTOR_DUMMY(klass) \ - wxObjectAllocatorAndCreator_Dummy constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = { NULL }; \ - const int klass::ms_constructorPropertiesCount = 0; - -// direct constructor version - -template -struct wxDirectConstructorBridge_0 : public wxObjectAllocator -{ - bool Create(wxObject * &o, wxAny *args) - { - o = new Class( ); - return o != NULL; - } -}; - -#define wxDIRECT_CONSTRUCTOR_0(klass) \ - wxDirectConstructorBridge_0 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = { NULL }; \ - const int klass::ms_constructorPropertiesCount = 0; - - -// 1 param - -template -struct wxObjectAllocatorAndCreator_1 : public wxObjectAllocatorAndCreator -{ - bool Create(wxObject * &o, wxAny *args) - { - Class *obj = wx_dynamic_cast(Class*, o); - return obj->Create( - (args[0]).As(static_cast(NULL)) - ); - } -}; - -#define wxCONSTRUCTOR_1(klass,t0,v0) \ - wxObjectAllocatorAndCreator_1 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = { wxT(#v0) }; \ - const int klass::ms_constructorPropertiesCount = 1; - -// direct constructor version - -template -struct wxDirectConstructorBridge_1 : public wxObjectAllocator -{ - bool Create(wxObject * &o, wxAny *args) - { - o = new Class( - (args[0]).As(static_cast(NULL)) - ); - return o != NULL; - } -}; - -#define wxDIRECT_CONSTRUCTOR_1(klass,t0,v0) \ - wxDirectConstructorBridge_1 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = { wxT(#v0) }; \ - const int klass::ms_constructorPropertiesCount = 1; - - -// 2 params - -template -struct wxObjectAllocatorAndCreator_2 : public wxObjectAllocatorAndCreator -{ - bool Create(wxObject * &o, wxAny *args) - { - Class *obj = wx_dynamic_cast(Class*, o); - return obj->Create( - (args[0]).As(static_cast(NULL)), - (args[1]).As(static_cast(NULL)) - ); - } -}; - -#define wxCONSTRUCTOR_2(klass,t0,v0,t1,v1) \ - wxObjectAllocatorAndCreator_2 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1) }; \ - const int klass::ms_constructorPropertiesCount = 2; - -// direct constructor version - -template -struct wxDirectConstructorBridge_2 : public wxObjectAllocator -{ - bool Create(wxObject * &o, wxAny *args) - { - o = new Class( - (args[0]).As(static_cast(NULL)), - (args[1]).As(static_cast(NULL)) - ); - return o != NULL; - } -}; - -#define wxDIRECT_CONSTRUCTOR_2(klass,t0,v0,t1,v1) \ - wxDirectConstructorBridge_2 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1) }; \ - const int klass::ms_constructorPropertiesCount = 2; - - -// 3 params - -template -struct wxObjectAllocatorAndCreator_3 : public wxObjectAllocatorAndCreator -{ - bool Create(wxObject * &o, wxAny *args) - { - Class *obj = wx_dynamic_cast(Class*, o); - return obj->Create( - (args[0]).As(static_cast(NULL)), - (args[1]).As(static_cast(NULL)), - (args[2]).As(static_cast(NULL)) - ); - } -}; - -#define wxCONSTRUCTOR_3(klass,t0,v0,t1,v1,t2,v2) \ - wxObjectAllocatorAndCreator_3 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1), wxT(#v2) }; \ - const int klass::ms_constructorPropertiesCount = 3; - -// direct constructor version - -template -struct wxDirectConstructorBridge_3 : public wxObjectAllocator -{ - bool Create(wxObject * &o, wxAny *args) - { - o = new Class( - (args[0]).As(static_cast(NULL)), - (args[1]).As(static_cast(NULL)), - (args[2]).As(static_cast(NULL)) - ); - return o != NULL; - } -}; - -#define wxDIRECT_CONSTRUCTOR_3(klass,t0,v0,t1,v1,t2,v2) \ - wxDirectConstructorBridge_3 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1), wxT(#v2) }; \ - const int klass::ms_constructorPropertiesCount = 3; - - -// 4 params - -template -struct wxObjectAllocatorAndCreator_4 : public wxObjectAllocatorAndCreator -{ - bool Create(wxObject * &o, wxAny *args) - { - Class *obj = wx_dynamic_cast(Class*, o); - return obj->Create( - (args[0]).As(static_cast(NULL)), - (args[1]).As(static_cast(NULL)), - (args[2]).As(static_cast(NULL)), - (args[3]).As(static_cast(NULL)) - ); - } -}; - -#define wxCONSTRUCTOR_4(klass,t0,v0,t1,v1,t2,v2,t3,v3) \ - wxObjectAllocatorAndCreator_4 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = \ - { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3) }; \ - const int klass::ms_constructorPropertiesCount = 4; - -// direct constructor version - -template -struct wxDirectConstructorBridge_4 : public wxObjectAllocator -{ - bool Create(wxObject * &o, wxAny *args) - { - o = new Class( - (args[0]).As(static_cast(NULL)), - (args[1]).As(static_cast(NULL)), - (args[2]).As(static_cast(NULL)), - (args[3]).As(static_cast(NULL)) - ); - return o != NULL; - } -}; - -#define wxDIRECT_CONSTRUCTOR_4(klass,t0,v0,t1,v1,t2,v2,t3,v3) \ - wxDirectConstructorBridge_4 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = \ - { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3) }; \ - const int klass::ms_constructorPropertiesCount = 4; - - -// 5 params - -template -struct wxObjectAllocatorAndCreator_5 : public wxObjectAllocatorAndCreator -{ - bool Create(wxObject * &o, wxAny *args) - { - Class *obj = wx_dynamic_cast(Class*, o); - return obj->Create( - (args[0]).As(static_cast(NULL)), - (args[1]).As(static_cast(NULL)), - (args[2]).As(static_cast(NULL)), - (args[3]).As(static_cast(NULL)), - (args[4]).As(static_cast(NULL)) - ); - } -}; - -#define wxCONSTRUCTOR_5(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4) \ - wxObjectAllocatorAndCreator_5 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = \ - { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4) }; \ - const int klass::ms_constructorPropertiesCount = 5; - -// direct constructor version - -template -struct wxDirectConstructorBridge_5 : public wxObjectAllocator -{ - bool Create(wxObject * &o, wxAny *args) - { - o = new Class( - (args[0]).As(static_cast(NULL)), - (args[1]).As(static_cast(NULL)), - (args[2]).As(static_cast(NULL)), - (args[3]).As(static_cast(NULL)), - (args[4]).As(static_cast(NULL)) - ); - return o != NULL; - } -}; - -#define wxDIRECT_CONSTRUCTOR_5(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4) \ - wxDirectConstructorBridge_5 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = \ - { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4) }; \ - const int klass::ms_constructorPropertiesCount = 5; - - -// 6 params - -template -struct wxObjectAllocatorAndCreator_6 : public wxObjectAllocatorAndCreator -{ - bool Create(wxObject * &o, wxAny *args) - { - Class *obj = wx_dynamic_cast(Class*, o); - return obj->Create( - (args[0]).As(static_cast(NULL)), - (args[1]).As(static_cast(NULL)), - (args[2]).As(static_cast(NULL)), - (args[3]).As(static_cast(NULL)), - (args[4]).As(static_cast(NULL)), - (args[5]).As(static_cast(NULL)) - ); - } -}; - -#define wxCONSTRUCTOR_6(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5) \ - wxObjectAllocatorAndCreator_6 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = \ - { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5) }; \ - const int klass::ms_constructorPropertiesCount = 6; - -// direct constructor version - -template -struct wxDirectConstructorBridge_6 : public wxObjectAllocator -{ - bool Create(wxObject * &o, wxAny *args) - { - o = new Class( - (args[0]).As(static_cast(NULL)), - (args[1]).As(static_cast(NULL)), - (args[2]).As(static_cast(NULL)), - (args[3]).As(static_cast(NULL)), - (args[4]).As(static_cast(NULL)), - (args[5]).As(static_cast(NULL)) - ); - return o != NULL; - } -}; - -#define wxDIRECT_CONSTRUCTOR_6(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5) \ - wxDirectConstructorBridge_6 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1), \ - wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5) }; \ - const int klass::ms_constructorPropertiesCount = 6; - - -// 7 params - -template -struct wxObjectAllocatorAndCreator_7 : public wxObjectAllocatorAndCreator -{ - bool Create(wxObject * &o, wxAny *args) - { - Class *obj = wx_dynamic_cast(Class*, o); - return obj->Create( - (args[0]).As(static_cast(NULL)), - (args[1]).As(static_cast(NULL)), - (args[2]).As(static_cast(NULL)), - (args[3]).As(static_cast(NULL)), - (args[4]).As(static_cast(NULL)), - (args[5]).As(static_cast(NULL)), - (args[6]).As(static_cast(NULL)) - ); - } -}; - -#define wxCONSTRUCTOR_7(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6) \ - wxObjectAllocatorAndCreator_7 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = { wxT(#v0), wxT(#v1), \ - wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5), wxT(#v6) }; \ - const int klass::ms_constructorPropertiesCount = 7; - -// direct constructor version - -template -struct wxDirectConstructorBridge_7 : public wxObjectAllocator -{ - bool Create(wxObject * &o, wxAny *args) - { - o = new Class( - (args[0]).As(static_cast(NULL)), - (args[1]).As(static_cast(NULL)), - (args[2]).As(static_cast(NULL)), - (args[3]).As(static_cast(NULL)), - (args[4]).As(static_cast(NULL)), - (args[5]).As(static_cast(NULL)), - (args[6]).As(static_cast(NULL)) - ); - return o != NULL; - } -}; - -#define wxDIRECT_CONSTRUCTOR_7(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6) \ - wxDirectConstructorBridge_7 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = \ - { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5), wxT(#v6) }; \ - const int klass::ms_constructorPropertiesCount = 7; - - -// 8 params - -template -struct wxObjectAllocatorAndCreator_8 : public wxObjectAllocatorAndCreator -{ - bool Create(wxObject * &o, wxAny *args) - { - Class *obj = wx_dynamic_cast(Class*, o); - return obj->Create( - (args[0]).As(static_cast(NULL)), - (args[1]).As(static_cast(NULL)), - (args[2]).As(static_cast(NULL)), - (args[3]).As(static_cast(NULL)), - (args[4]).As(static_cast(NULL)), - (args[5]).As(static_cast(NULL)), - (args[6]).As(static_cast(NULL)), - (args[7]).As(static_cast(NULL)) - ); - } -}; - -#define wxCONSTRUCTOR_8(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6,t7,v7) \ - wxObjectAllocatorAndCreator_8 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = \ - { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5), wxT(#v6), wxT(#v7) }; \ - const int klass::ms_constructorPropertiesCount = 8; - -// direct constructor version - -template -struct wxDirectConstructorBridge_8 : public wxObjectAllocator -{ - bool Create(wxObject * &o, wxAny *args) - { - o = new Class( - (args[0]).As(static_cast(NULL)), - (args[1]).As(static_cast(NULL)), - (args[2]).As(static_cast(NULL)), - (args[3]).As(static_cast(NULL)), - (args[4]).As(static_cast(NULL)), - (args[5]).As(static_cast(NULL)), - (args[6]).As(static_cast(NULL)), - (args[7]).As(static_cast(NULL)) - ); - return o != NULL; - } -}; - -#define wxDIRECT_CONSTRUCTOR_8(klass,t0,v0,t1,v1,t2,v2,t3,v3,t4,v4,t5,v5,t6,v6,t7,v7) \ - wxDirectConstructorBridge_8 constructor##klass; \ - wxObjectAllocatorAndCreator* klass::ms_constructor = &constructor##klass; \ - const wxChar *klass::ms_constructorProperties[] = \ - { wxT(#v0), wxT(#v1), wxT(#v2), wxT(#v3), wxT(#v4), wxT(#v5), wxT(#v6), wxT(#v7) }; \ - const int klass::ms_constructorPropertiesCount = 8; - -#endif // wxUSE_EXTENDED_RTTI -#endif // _XTICTOR_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtihandler.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtihandler.h deleted file mode 100644 index c63ddb3a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtihandler.h +++ /dev/null @@ -1,112 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xtihandler.h -// Purpose: XTI handlers -// Author: Stefan Csomor -// Modified by: Francesco Montorsi -// Created: 27/07/03 -// Copyright: (c) 1997 Julian Smart -// (c) 2003 Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _XTIHANDLER_H_ -#define _XTIHANDLER_H_ - -#include "wx/defs.h" - -#if wxUSE_EXTENDED_RTTI - -#include "wx/xti.h" - -// copied from event.h which cannot be included at this place - -class WXDLLIMPEXP_FWD_BASE wxEvent; - -#ifdef __VISUALC__ -#define wxMSVC_FWD_MULTIPLE_BASES __multiple_inheritance -#else -#define wxMSVC_FWD_MULTIPLE_BASES -#endif - -class WXDLLIMPEXP_FWD_BASE wxMSVC_FWD_MULTIPLE_BASES wxEvtHandler; -typedef void (wxEvtHandler::*wxEventFunction)(wxEvent&); -typedef wxEventFunction wxObjectEventFunction; - -// ---------------------------------------------------------------------------- -// Handler Info -// -// this describes an event sink -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxHandlerInfo -{ - friend class WXDLLIMPEXP_BASE wxDynamicClassInfo; - -public: - wxHandlerInfo(wxHandlerInfo* &iter, - wxClassInfo* itsClass, - const wxString& name, - wxObjectEventFunction address, - const wxClassInfo* eventClassInfo) : - m_eventFunction(address), - m_name(name), - m_eventClassInfo(eventClassInfo), - m_itsClass(itsClass) - { - Insert(iter); - } - - ~wxHandlerInfo() - { Remove(); } - - // return the name of this handler - const wxString& GetName() const { return m_name; } - - // return the class info of the event - const wxClassInfo *GetEventClassInfo() const { return m_eventClassInfo; } - - // get the handler function pointer - wxObjectEventFunction GetEventFunction() const { return m_eventFunction; } - - // returns NULL if this is the last handler of this class - wxHandlerInfo* GetNext() const { return m_next; } - - // return the class this property is declared in - const wxClassInfo* GetDeclaringClass() const { return m_itsClass; } - -private: - - // inserts this handler at the end of the linked chain which begins - // with "iter" handler. - void Insert(wxHandlerInfo* &iter); - - // removes this handler from the linked chain of the m_itsClass handlers. - void Remove(); - - wxObjectEventFunction m_eventFunction; - wxString m_name; - const wxClassInfo* m_eventClassInfo; - wxHandlerInfo* m_next; - wxClassInfo* m_itsClass; -}; - -#define wxHANDLER(name,eventClassType) \ - static wxHandlerInfo _handlerInfo##name( first, class_t::GetClassInfoStatic(), \ - wxT(#name), (wxObjectEventFunction) (wxEventFunction) &name, \ - wxCLASSINFO( eventClassType ) ); - -#define wxBEGIN_HANDLERS_TABLE(theClass) \ - wxHandlerInfo *theClass::GetHandlersStatic() \ - { \ - typedef theClass class_t; \ - static wxHandlerInfo* first = NULL; - -#define wxEND_HANDLERS_TABLE() \ - return first; } - -#define wxEMPTY_HANDLERS_TABLE(theClass) \ - wxBEGIN_HANDLERS_TABLE(theClass) \ - wxEND_HANDLERS_TABLE() - -#endif // wxUSE_EXTENDED_RTTI -#endif // _XTIHANDLER_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtiprop.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtiprop.h deleted file mode 100644 index 8c18e2a3..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtiprop.h +++ /dev/null @@ -1,556 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xtiprop.h -// Purpose: XTI properties -// Author: Stefan Csomor -// Modified by: Francesco Montorsi -// Created: 27/07/03 -// Copyright: (c) 1997 Julian Smart -// (c) 2003 Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _XTIPROP_H_ -#define _XTIPROP_H_ - -#include "wx/defs.h" - -#if wxUSE_EXTENDED_RTTI - -#include "wx/xti.h" -#include "wx/any.h" - -/* -class WXDLLIMPEXP_BASE wxObject; -class WXDLLIMPEXP_BASE wxClassInfo; -class WXDLLIMPEXP_BASE wxDynamicClassInfo; -*/ -class WXDLLIMPEXP_BASE wxHashTable; -class WXDLLIMPEXP_BASE wxHashTable_Node; -class WXDLLIMPEXP_BASE wxEvent; -class WXDLLIMPEXP_BASE wxEvtHandler; - -// ---------------------------------------------------------------------------- -// Property Accessors -// -// wxPropertySetter/Getter/CollectionGetter/CollectionAdder are all property -// accessors which are managed by wxPropertyAccessor class which in turn is -// handled by wxPropertyInfo. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxPropertySetter -{ -public: - wxPropertySetter( const wxString name ) { m_name = name; } - virtual ~wxPropertySetter() {} - - virtual void Set( wxObject *object, const wxAny &variantValue ) const = 0; - const wxString& GetName() const { return m_name; } - -private: - wxString m_name; -}; - -class WXDLLIMPEXP_BASE wxPropertyGetter -{ -public: - wxPropertyGetter( const wxString name ) { m_name = name; } - virtual ~wxPropertyGetter() {} - - virtual void Get( const wxObject *object, wxAny& result) const = 0; - const wxString& GetName() const { return m_name; } - -private: - wxString m_name; -}; - -class WXDLLIMPEXP_BASE wxPropertyCollectionGetter -{ -public: - wxPropertyCollectionGetter( const wxString name ) { m_name = name; } - virtual ~wxPropertyCollectionGetter() {} - - virtual void Get( const wxObject *object, wxAnyList& result) const = 0; - const wxString& GetName() const { return m_name; } - -private: - wxString m_name; -}; - -template void WXDLLIMPEXP_BASE \ - wxCollectionToVariantArray( const coll_t& coll, wxAnyList& result ); - -class WXDLLIMPEXP_BASE wxPropertyCollectionAdder -{ -public: - wxPropertyCollectionAdder( const wxString name ) { m_name = name; } - virtual ~wxPropertyCollectionAdder() {} - - virtual void Add( wxObject *object, const wxAny &variantValue ) const= 0; - const wxString& GetName() const { return m_name; } - -private: - wxString m_name; -}; - -#define wxPROPERTY_SETTER( property, Klass, valueType, setterMethod ) \ -class wxPropertySetter##property : public wxPropertySetter \ -{ \ -public: \ - wxPropertySetter##property() : wxPropertySetter( wxT(#setterMethod) ) {} \ - virtual ~wxPropertySetter##property() {} \ - \ - void Set( wxObject *object, const wxAny &variantValue ) const \ - { \ - Klass *obj = dynamic_cast(object); \ - valueType tempobj; \ - if ( variantValue.GetAs(&tempobj) ) \ - obj->setterMethod(tempobj); \ - else \ - obj->setterMethod(*variantValue.As()); \ - } \ -}; - -#define wxPROPERTY_GETTER( property, Klass, valueType, gettermethod ) \ -class wxPropertyGetter##property : public wxPropertyGetter \ -{ \ -public: \ - wxPropertyGetter##property() : wxPropertyGetter( wxT(#gettermethod) ) {} \ - virtual ~wxPropertyGetter##property() {} \ - \ - void Get( const wxObject *object, wxAny &result) const \ - { \ - const Klass *obj = dynamic_cast(object); \ - result = wxAny( obj->gettermethod() ); \ - } \ -}; - -#define wxPROPERTY_COLLECTION_ADDER( property, Klass, valueType, addermethod ) \ -class wxPropertyCollectionAdder##property : public wxPropertyCollectionAdder \ -{ \ -public: \ - wxPropertyCollectionAdder##property() : wxPropertyCollectionAdder( wxT(#addermethod) ) {} \ - virtual ~wxPropertyCollectionAdder##property() {} \ - \ - void Add( wxObject *object, const wxAny &variantValue ) const \ - { \ - Klass *obj = dynamic_cast(object); \ - valueType tempobj; \ - if ( variantValue.GetAs(&tempobj) ) \ - obj->addermethod(tempobj); \ - else \ - obj->addermethod(*variantValue.As()); \ - } \ -}; - -#define wxPROPERTY_COLLECTION_GETTER( property, Klass, valueType, gettermethod ) \ -class wxPropertyCollectionGetter##property : public wxPropertyCollectionGetter \ -{ \ -public: \ - wxPropertyCollectionGetter##property() : wxPropertyCollectionGetter( wxT(#gettermethod) ) {} \ - virtual ~wxPropertyCollectionGetter##property() {} \ - \ - void Get( const wxObject *object, wxAnyList &result) const \ - { \ - const Klass *obj = dynamic_cast(object); \ - wxCollectionToVariantArray( obj->gettermethod(), result ); \ - } \ -}; - -class WXDLLIMPEXP_BASE wxPropertyAccessor -{ -public: - wxPropertyAccessor( wxPropertySetter *setter, wxPropertyGetter *getter, - wxPropertyCollectionAdder *adder, wxPropertyCollectionGetter *collectionGetter ) - { m_setter = setter; m_getter = getter; m_adder = adder; - m_collectionGetter = collectionGetter; } - - virtual ~wxPropertyAccessor() {} - - // Setting a simple property (non-collection) - virtual void SetProperty(wxObject *object, const wxAny &value) const - { - if ( m_setter ) - m_setter->Set( object, value ); - else - wxLogError( wxGetTranslation("SetProperty called w/o valid setter") ); - } - - // Getting a simple property (non-collection) - virtual void GetProperty(const wxObject *object, wxAny &result) const - { - if ( m_getter ) - m_getter->Get( object, result ); - else - wxLogError( wxGetTranslation("GetProperty called w/o valid getter") ); - } - - // Adding an element to a collection property - virtual void AddToPropertyCollection(wxObject *object, const wxAny &value) const - { - if ( m_adder ) - m_adder->Add( object, value ); - else - wxLogError( wxGetTranslation("AddToPropertyCollection called w/o valid adder") ); - } - - // Getting a collection property - virtual void GetPropertyCollection( const wxObject *obj, wxAnyList &result) const - { - if ( m_collectionGetter ) - m_collectionGetter->Get( obj, result); - else - wxLogError( wxGetTranslation("GetPropertyCollection called w/o valid collection getter") ); - } - - virtual bool HasSetter() const { return m_setter != NULL; } - virtual bool HasCollectionGetter() const { return m_collectionGetter != NULL; } - virtual bool HasGetter() const { return m_getter != NULL; } - virtual bool HasAdder() const { return m_adder != NULL; } - - virtual const wxString& GetCollectionGetterName() const - { return m_collectionGetter->GetName(); } - virtual const wxString& GetGetterName() const - { return m_getter->GetName(); } - virtual const wxString& GetSetterName() const - { return m_setter->GetName(); } - virtual const wxString& GetAdderName() const - { return m_adder->GetName(); } - -protected: - wxPropertySetter *m_setter; - wxPropertyCollectionAdder *m_adder; - wxPropertyGetter *m_getter; - wxPropertyCollectionGetter* m_collectionGetter; -}; - -class WXDLLIMPEXP_BASE wxGenericPropertyAccessor : public wxPropertyAccessor -{ -public: - wxGenericPropertyAccessor( const wxString &propName ); - virtual ~wxGenericPropertyAccessor(); - - void RenameProperty( const wxString& WXUNUSED_UNLESS_DEBUG(oldName), - const wxString& newName ) - { - wxASSERT( oldName == m_propertyName ); m_propertyName = newName; - } - - virtual bool HasSetter() const { return true; } - virtual bool HasGetter() const { return true; } - virtual bool HasAdder() const { return false; } - virtual bool HasCollectionGetter() const { return false; } - - virtual const wxString& GetGetterName() const - { return m_getterName; } - virtual const wxString& GetSetterName() const - { return m_setterName; } - - virtual void SetProperty(wxObject *object, const wxAny &value) const; - virtual void GetProperty(const wxObject *object, wxAny &value) const; - - // Adding an element to a collection property - virtual void AddToPropertyCollection(wxObject *WXUNUSED(object), - const wxAny &WXUNUSED(value)) const - { - wxLogError( wxGetTranslation("AddToPropertyCollection called on a generic accessor") ); - } - - // Getting a collection property - virtual void GetPropertyCollection( const wxObject *WXUNUSED(obj), - wxAnyList &WXUNUSED(result)) const - { - wxLogError ( wxGetTranslation("GetPropertyCollection called on a generic accessor") ); - } - -private: - struct wxGenericPropertyAccessorInternal; - wxGenericPropertyAccessorInternal* m_data; - wxString m_propertyName; - wxString m_setterName; - wxString m_getterName; -}; - -typedef long wxPropertyInfoFlags; -enum -{ - // will be removed in future releases - wxPROP_DEPRECATED = 0x00000001, - - // object graph property, will be streamed with priority (after constructor properties) - wxPROP_OBJECT_GRAPH = 0x00000002, - - // this will only be streamed out and in as enum/set, the internal representation - // is still a long - wxPROP_ENUM_STORE_LONG = 0x00000004, - - // don't stream out this property, needed eg to avoid streaming out children - // that are always created by their parents - wxPROP_DONT_STREAM = 0x00000008 -}; - - -// ---------------------------------------------------------------------------- -// Property Support -// -// wxPropertyInfo is used to inquire of the property by name. It doesn't -// provide access to the property, only information about it. If you -// want access, look at wxPropertyAccessor. -// ---------------------------------------------------------------------------- - -class WXDLLIMPEXP_BASE wxPropertyInfo -{ - friend class /* WXDLLIMPEXP_BASE */ wxDynamicClassInfo; - -public: - wxPropertyInfo(wxPropertyInfo* &iter, - wxClassInfo* itsClass, - const wxString& name, - const wxString& typeName, - wxPropertyAccessor *accessor, - wxAny dv, - wxPropertyInfoFlags flags = 0, - const wxString& helpString = wxEmptyString, - const wxString& groupString = wxEmptyString) : - m_itsClass(itsClass), - m_name(name), - m_typeInfo(NULL), - m_typeName(typeName), - m_collectionElementTypeInfo(NULL), - m_accessor(accessor), - m_defaultValue(dv), - m_flags(flags), - m_helpString(helpString), - m_groupString(groupString) - { - Insert(iter); - } - - wxPropertyInfo(wxPropertyInfo* &iter, - wxClassInfo* itsClass, - const wxString& name, - wxEventSourceTypeInfo* type, - wxPropertyAccessor *accessor, - wxAny dv, - wxPropertyInfoFlags flags = 0, - const wxString& helpString = wxEmptyString, - const wxString& groupString = wxEmptyString) : - m_itsClass(itsClass), - m_name(name), - m_typeInfo(type), - m_collectionElementTypeInfo(NULL), - m_accessor(accessor), - m_defaultValue(dv), - m_flags(flags), - m_helpString(helpString), - m_groupString(groupString) - { - Insert(iter); - } - - wxPropertyInfo(wxPropertyInfo* &iter, - wxClassInfo* itsClass, const wxString& name, - const wxString& collectionTypeName, - const wxString& elementTypeName, - wxPropertyAccessor *accessor, - wxPropertyInfoFlags flags = 0, - const wxString& helpString = wxEmptyString, - const wxString& groupString = wxEmptyString) : - m_itsClass(itsClass), - m_name(name), - m_typeInfo(NULL), - m_typeName(collectionTypeName), - m_collectionElementTypeInfo(NULL), - m_collectionElementTypeName(elementTypeName), - m_accessor(accessor), - m_flags(flags), - m_helpString(helpString), - m_groupString(groupString) - { - Insert(iter); - } - - ~wxPropertyInfo() - { Remove(); } - - // return the class this property is declared in - const wxClassInfo* GetDeclaringClass() const { return m_itsClass; } - - // return the name of this property - const wxString& GetName() const { return m_name; } - - // returns the flags of this property - wxPropertyInfoFlags GetFlags() const { return m_flags; } - - // returns the short help string of this property - const wxString& GetHelpString() const { return m_helpString; } - - // returns the group string of this property - const wxString& GetGroupString() const { return m_groupString; } - - // return the element type info of this property (for collections, otherwise NULL) - const wxTypeInfo * GetCollectionElementTypeInfo() const - { - if ( m_collectionElementTypeInfo == NULL ) - m_collectionElementTypeInfo = wxTypeInfo::FindType(m_collectionElementTypeName); - return m_collectionElementTypeInfo; - } - - // return the type info of this property - const wxTypeInfo * GetTypeInfo() const - { - if ( m_typeInfo == NULL ) - m_typeInfo = wxTypeInfo::FindType(m_typeName); - return m_typeInfo; - } - - // return the accessor for this property - wxPropertyAccessor* GetAccessor() const { return m_accessor; } - - // returns NULL if this is the last property of this class - wxPropertyInfo* GetNext() const { return m_next; } - - // returns the default value of this property, its kind may be wxT_VOID if it is not valid - wxAny GetDefaultValue() const { return m_defaultValue; } - -private: - - // inserts this property at the end of the linked chain which begins - // with "iter" property. - void Insert(wxPropertyInfo* &iter); - - // removes this property from the linked chain of the m_itsClass properties. - void Remove(); - - wxClassInfo* m_itsClass; - wxString m_name; - mutable wxTypeInfo* m_typeInfo; - wxString m_typeName; - mutable wxTypeInfo* m_collectionElementTypeInfo; - wxString m_collectionElementTypeName; - wxPropertyAccessor* m_accessor; - wxAny m_defaultValue; - wxPropertyInfoFlags m_flags; - wxString m_helpString; - wxString m_groupString; - wxPropertyInfo* m_next; - - // FIXME: what's this comment about?? - // string representation of the default value - // to be assigned by the designer to the property - // when the component is dropped on the container. -}; - -// stl is giving problems when forwarding declarations, therefore we define it as a subclass - -WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxPropertyInfo*, wxPropertyInfoMapBase, - class WXDLLIMPEXP_BASE ); - -class WXDLLIMPEXP_BASE wxPropertyInfoMap : public wxPropertyInfoMapBase { -}; - -WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxAny, wxStringToAnyHashMapBase, - class WXDLLIMPEXP_BASE ); - -class WXDLLIMPEXP_FWD_BASE wxStringToAnyHashMap : public wxStringToAnyHashMapBase { -}; - -#define wxBEGIN_PROPERTIES_TABLE(theClass) \ - wxPropertyInfo *theClass::GetPropertiesStatic() \ - { \ - typedef theClass class_t; \ - static wxPropertyInfo* first = NULL; - -#define wxEND_PROPERTIES_TABLE() \ - return first; } - -#define wxHIDE_PROPERTY( pname ) \ - static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \ - wxT(#pname), typeid(void).name(), NULL, wxAny(), wxPROP_DONT_STREAM, \ - wxEmptyString, wxEmptyString ); - -#define wxPROPERTY( pname, type, setter, getter, defaultValue, flags, help, group) \ - wxPROPERTY_SETTER( pname, class_t, type, setter ) \ - static wxPropertySetter##pname _setter##pname; \ - wxPROPERTY_GETTER( pname, class_t, type, getter ) \ - static wxPropertyGetter##pname _getter##pname; \ - static wxPropertyAccessor _accessor##pname( &_setter##pname, \ - &_getter##pname, NULL, NULL ); \ - static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \ - wxT(#pname), typeid(type).name(), &_accessor##pname, \ - wxAny(defaultValue), flags, group, help ); - -#define wxPROPERTY_FLAGS( pname, flags, type, setter, getter,defaultValue, \ - pflags, help, group) \ - wxPROPERTY_SETTER( pname, class_t, type, setter ) \ - static wxPropertySetter##pname _setter##pname; \ - wxPROPERTY_GETTER( pname, class_t, type, getter ) \ - static wxPropertyGetter##pname _getter##pname; \ - static wxPropertyAccessor _accessor##pname( &_setter##pname, \ - &_getter##pname, NULL, NULL ); \ - static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \ - wxT(#pname), typeid(flags).name(), &_accessor##pname, \ - wxAny(defaultValue), wxPROP_ENUM_STORE_LONG | pflags, help, group ); - -#define wxREADONLY_PROPERTY( pname, type, getter,defaultValue, flags, help, group) \ - wxPROPERTY_GETTER( pname, class_t, type, getter ) \ - static wxPropertyGetter##pname _getter##pname; \ - static wxPropertyAccessor _accessor##pname( NULL, &_getter##pname, NULL, NULL ); \ - static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \ - wxT(#pname), typeid(type).name(),&_accessor##pname, \ - wxAny(defaultValue), flags, help, group ); - -#define wxREADONLY_PROPERTY_FLAGS( pname, flags, type, getter,defaultValue, \ - pflags, help, group) \ - wxPROPERTY_GETTER( pname, class_t, type, getter ) \ - static wxPropertyGetter##pname _getter##pname; \ - static wxPropertyAccessor _accessor##pname( NULL, &_getter##pname, NULL, NULL ); \ - static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \ - wxT(#pname), typeid(flags).name(),&_accessor##pname, \ - wxAny(defaultValue), wxPROP_ENUM_STORE_LONG | pflags, help, group ); - -#define wxPROPERTY_COLLECTION( pname, colltype, addelemtype, adder, getter, \ - flags, help, group ) \ - wxPROPERTY_COLLECTION_ADDER( pname, class_t, addelemtype, adder ) \ - static wxPropertyCollectionAdder##pname _adder##pname; \ - wxPROPERTY_COLLECTION_GETTER( pname, class_t, colltype, getter ) \ - static wxPropertyCollectionGetter##pname _collectionGetter##pname; \ - static wxPropertyAccessor _accessor##pname( NULL, NULL,&_adder##pname, \ - &_collectionGetter##pname ); \ - static wxPropertyInfo _propertyInfo##pname( first, class_t::GetClassInfoStatic(), \ - wxT(#pname), typeid(colltype).name(),typeid(addelemtype).name(), \ - &_accessor##pname, flags, help, group ); - -#define wxREADONLY_PROPERTY_COLLECTION( pname, colltype, addelemtype, getter, \ - flags, help, group) \ - wxPROPERTY_COLLECTION_GETTER( pname, class_t, colltype, getter ) \ - static wxPropertyCollectionGetter##pname _collectionGetter##pname; \ - static wxPropertyAccessor _accessor##pname( NULL, NULL, NULL, \ - &_collectionGetter##pname ); \ - static wxPropertyInfo _propertyInfo##pname( first,class_t::GetClassInfoStatic(), \ - wxT(#pname), typeid(colltype).name(),typeid(addelemtype).name(), \ - &_accessor##pname, flags, help, group ); - -#define wxEVENT_PROPERTY( name, eventType, eventClass ) \ - static wxEventSourceTypeInfo _typeInfo##name( eventType, wxCLASSINFO( eventClass ) ); \ - static wxPropertyInfo _propertyInfo##name( first,class_t::GetClassInfoStatic(), \ - wxT(#name), &_typeInfo##name, NULL, wxAny() ); - -#define wxEVENT_RANGE_PROPERTY( name, eventType, lastEventType, eventClass ) \ - static wxEventSourceTypeInfo _typeInfo##name( eventType, lastEventType, \ - wxCLASSINFO( eventClass ) ); \ - static wxPropertyInfo _propertyInfo##name( first, class_t::GetClassInfoStatic(), \ - wxT(#name), &_typeInfo##name, NULL, wxAny() ); - -// ---------------------------------------------------------------------------- -// Implementation Helper for Simple Properties -// ---------------------------------------------------------------------------- - -#define wxIMPLEMENT_PROPERTY(name, type) \ -private: \ - type m_##name; \ -public: \ - void Set##name( type const & p) { m_##name = p; } \ - type const & Get##name() const { return m_##name; } - -#endif // wxUSE_EXTENDED_RTTI -#endif // _XTIPROP_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtistrm.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtistrm.h deleted file mode 100644 index 0621ead1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtistrm.h +++ /dev/null @@ -1,408 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xtistrm.h -// Purpose: streaming runtime metadata information (extended class info) -// Author: Stefan Csomor -// Modified by: -// Created: 27/07/03 -// Copyright: (c) 2003 Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XTISTRMH__ -#define _WX_XTISTRMH__ - -#include "wx/defs.h" - -#if wxUSE_EXTENDED_RTTI - -#include "wx/object.h" - -const int wxInvalidObjectID = -2; -const int wxNullObjectID = -3; - -// Filer contains the interfaces for streaming objects in and out of XML, -// rendering them either to objects in memory, or to code. Note: We -// consider the process of generating code to be one of *depersisting* the -// object from xml, *not* of persisting the object to code from an object -// in memory. This distinction can be confusing, and should be kept -// in mind when looking at the property streamers and callback interfaces -// listed below. - - -// ---------------------------------------------------------------------------- -// wxObjectWriterCallback -// -// This class will be asked during the streaming-out process about every single -// property or object instance. It can veto streaming out by returning false -// or modify the value before it is streamed-out. -// ---------------------------------------------------------------------------- - -/* - class WXDLLIMPEXP_BASE wxClassInfo; - class WXDLLIMPEXP_BASE wxAnyList; - class WXDLLIMPEXP_BASE wxPropertyInfo; - class WXDLLIMPEXP_BASE wxAny; - class WXDLLIMPEXP_BASE wxHandlerInfo; - */ - -class WXDLLIMPEXP_BASE wxObjectWriter; -class WXDLLIMPEXP_BASE wxObjectReader; - -class WXDLLIMPEXP_BASE wxObjectWriterCallback -{ -public: - virtual ~wxObjectWriterCallback() {} - - // will be called before an object is written, may veto by returning false - virtual bool BeforeWriteObject( wxObjectWriter *WXUNUSED(writer), - const wxObject *WXUNUSED(object), - const wxClassInfo *WXUNUSED(classInfo), - const wxStringToAnyHashMap &WXUNUSED(metadata)) - { return true; } - - // will be called after this object has been written, may be - // needed for adjusting stacks - virtual void AfterWriteObject( wxObjectWriter *WXUNUSED(writer), - const wxObject *WXUNUSED(object), - const wxClassInfo *WXUNUSED(classInfo) ) - {} - - // will be called before a property gets written, may change the value, - // eg replace a concrete wxSize by wxSize( wxDefaultCoord, wxDefaultCoord ) - // or veto writing that property at all by returning false - virtual bool BeforeWriteProperty( wxObjectWriter *WXUNUSED(writer), - const wxObject *WXUNUSED(object), - const wxPropertyInfo *WXUNUSED(propInfo), - const wxAny &WXUNUSED(value) ) - { return true; } - - // will be called before a property gets written, may change the value, - // eg replace a concrete wxSize by wxSize( wxDefaultCoord, wxDefaultCoord ) - // or veto writing that property at all by returning false - virtual bool BeforeWriteProperty( wxObjectWriter *WXUNUSED(writer), - const wxObject *WXUNUSED(object), - const wxPropertyInfo *WXUNUSED(propInfo), - const wxAnyList &WXUNUSED(value) ) - { return true; } - - // will be called after a property has been written out, may be needed - // for adjusting stacks - virtual void AfterWriteProperty( wxObjectWriter *WXUNUSED(writer), - const wxPropertyInfo *WXUNUSED(propInfo) ) - {} - - // will be called before this delegate gets written - virtual bool BeforeWriteDelegate( wxObjectWriter *WXUNUSED(writer), - const wxObject *WXUNUSED(object), - const wxClassInfo* WXUNUSED(classInfo), - const wxPropertyInfo *WXUNUSED(propInfo), - const wxObject *&WXUNUSED(eventSink), - const wxHandlerInfo* &WXUNUSED(handlerInfo) ) - { return true; } - - virtual void AfterWriteDelegate( wxObjectWriter *WXUNUSED(writer), - const wxObject *WXUNUSED(object), - const wxClassInfo* WXUNUSED(classInfo), - const wxPropertyInfo *WXUNUSED(propInfo), - const wxObject *&WXUNUSED(eventSink), - const wxHandlerInfo* &WXUNUSED(handlerInfo) ) - { } -}; - -class WXDLLIMPEXP_BASE wxObjectWriterFunctor: public wxObjectFunctor -{ -}; - -class WXDLLIMPEXP_BASE wxObjectWriter: public wxObject -{ - friend class wxObjectWriterFunctor; -public: - wxObjectWriter(); - virtual ~wxObjectWriter(); - - // with this call you start writing out a new top-level object - void WriteObject(const wxObject *object, const wxClassInfo *classInfo, - wxObjectWriterCallback *writercallback, const wxString &name, - const wxStringToAnyHashMap &metadata); - - // Managing the object identity table a.k.a context - // - // these methods make sure that no object gets written twice, - // because sometimes multiple calls to the WriteObject will be - // made without wanting to have duplicate objects written, the - // object identity table will be reset manually - virtual void ClearObjectContext(); - - // gets the object Id for a passed in object in the context - int GetObjectID(const wxObject *obj); - - // returns true if this object has already been written in this context - bool IsObjectKnown( const wxObject *obj ); - - // - // streaming callbacks - // - // these callbacks really write out the values in the stream format - - // begins writing out a new toplevel entry which has the indicated unique name - virtual void DoBeginWriteTopLevelEntry( const wxString &name ) = 0; - - // ends writing out a new toplevel entry which has the indicated unique name - virtual void DoEndWriteTopLevelEntry( const wxString &name ) = 0; - - // start of writing an object having the passed in ID - virtual void DoBeginWriteObject(const wxObject *object, const wxClassInfo *classInfo, - int objectID, const wxStringToAnyHashMap &metadata ) = 0; - - // end of writing an toplevel object name param is used for unique - // identification within the container - virtual void DoEndWriteObject(const wxObject *object, - const wxClassInfo *classInfo, int objectID ) = 0; - - // writes a simple property in the stream format - virtual void DoWriteSimpleType( const wxAny &value ) = 0; - - // start of writing a complex property into the stream ( - virtual void DoBeginWriteProperty( const wxPropertyInfo *propInfo ) = 0; - - // end of writing a complex property into the stream - virtual void DoEndWriteProperty( const wxPropertyInfo *propInfo ) = 0; - - virtual void DoBeginWriteElement() = 0; - virtual void DoEndWriteElement() = 0; - // insert an object reference to an already written object - virtual void DoWriteRepeatedObject( int objectID ) = 0; - - // insert a null reference - virtual void DoWriteNullObject() = 0; - - // writes a delegate in the stream format - virtual void DoWriteDelegate( const wxObject *object, const wxClassInfo* classInfo, - const wxPropertyInfo *propInfo, const wxObject *eventSink, - int sinkObjectID, const wxClassInfo* eventSinkClassInfo, - const wxHandlerInfo* handlerIndo ) = 0; - - void WriteObject(const wxObject *object, const wxClassInfo *classInfo, - wxObjectWriterCallback *writercallback, bool isEmbedded, const wxStringToAnyHashMap &metadata ); - -protected: - struct wxObjectWriterInternal; - wxObjectWriterInternal* m_data; - - struct wxObjectWriterInternalPropertiesData; - - void WriteAllProperties( const wxObject * obj, const wxClassInfo* ci, - wxObjectWriterCallback *writercallback, - wxObjectWriterInternalPropertiesData * data ); - - void WriteOneProperty( const wxObject *obj, const wxClassInfo* ci, - const wxPropertyInfo* pi, wxObjectWriterCallback *writercallback, - wxObjectWriterInternalPropertiesData *data ); - - - void FindConnectEntry(const wxEvtHandler * evSource, - const wxEventSourceTypeInfo* dti, const wxObject* &sink, - const wxHandlerInfo *&handler); -}; - - -/* -Streaming callbacks for depersisting XML to code, or running objects -*/ - -class WXDLLIMPEXP_BASE wxObjectReaderCallback; - -/* -wxObjectReader handles streaming in a class from a arbitrary format. -While walking through it issues calls out to interfaces to readercallback -the guts from the underlying storage format. -*/ - -class WXDLLIMPEXP_BASE wxObjectReader: public wxObject -{ -public: - wxObjectReader(); - virtual ~wxObjectReader(); - - // the only thing wxObjectReader knows about is the class info by object ID - wxClassInfo *GetObjectClassInfo(int objectID); - bool HasObjectClassInfo( int objectID ); - void SetObjectClassInfo(int objectID, wxClassInfo* classInfo); - - // Reads the component the reader is pointed at from the underlying format. - // The return value is the root object ID, which can - // then be used to ask the depersister about that object - // if there was a problem you will get back wxInvalidObjectID and the current - // error log will carry the problems encoutered - virtual int ReadObject( const wxString &name, wxObjectReaderCallback *readercallback ) = 0; - -private: - struct wxObjectReaderInternal; - wxObjectReaderInternal *m_data; -}; - -// This abstract class matches the allocate-init/create model of creation of objects. -// At runtime, these will create actual instances, and manipulate them. -// When generating code, these will just create statements of C++ -// code to create the objects. - -class WXDLLIMPEXP_BASE wxObjectReaderCallback -{ -public: - virtual ~wxObjectReaderCallback() {} - - // allocate the new object on the heap, that object will have the passed in ID - virtual void AllocateObject(int objectID, wxClassInfo *classInfo, - wxStringToAnyHashMap &metadata) = 0; - - // initialize the already allocated object having the ID objectID with the Create method - // creation parameters which are objects are having their Ids passed in objectIDValues - // having objectId <> wxInvalidObjectID - - virtual void CreateObject(int objectID, - const wxClassInfo *classInfo, - int paramCount, - wxAny *VariantValues, - int *objectIDValues, - const wxClassInfo **objectClassInfos, - wxStringToAnyHashMap &metadata) = 0; - - // construct the new object on the heap, that object will have the passed in ID - // (for objects that don't support allocate-create type of creation) - // creation parameters which are objects are having their Ids passed in - // objectIDValues having objectId <> wxInvalidObjectID - - virtual void ConstructObject(int objectID, - const wxClassInfo *classInfo, - int paramCount, - wxAny *VariantValues, - int *objectIDValues, - const wxClassInfo **objectClassInfos, - wxStringToAnyHashMap &metadata) = 0; - - // destroy the heap-allocated object having the ID objectID, this may be used - // if an object is embedded in another object and set via value semantics, - // so the intermediate object can be destroyed after safely - virtual void DestroyObject(int objectID, wxClassInfo *classInfo) = 0; - - // set the corresponding property - virtual void SetProperty(int objectID, - const wxClassInfo *classInfo, - const wxPropertyInfo* propertyInfo, - const wxAny &VariantValue) = 0; - - // sets the corresponding property (value is an object) - virtual void SetPropertyAsObject(int objectID, - const wxClassInfo *classInfo, - const wxPropertyInfo* propertyInfo, - int valueObjectId) = 0; - - // adds an element to a property collection - virtual void AddToPropertyCollection( int objectID, - const wxClassInfo *classInfo, - const wxPropertyInfo* propertyInfo, - const wxAny &VariantValue) = 0; - - // sets the corresponding property (value is an object) - virtual void AddToPropertyCollectionAsObject(int objectID, - const wxClassInfo *classInfo, - const wxPropertyInfo* propertyInfo, - int valueObjectId) = 0; - - // sets the corresponding event handler - virtual void SetConnect(int EventSourceObjectID, - const wxClassInfo *EventSourceClassInfo, - const wxPropertyInfo *delegateInfo, - const wxClassInfo *EventSinkClassInfo, - const wxHandlerInfo* handlerInfo, - int EventSinkObjectID ) = 0; -}; - -/* -wxObjectRuntimeReaderCallback implements the callbacks that will bring back -an object into a life memory instance -*/ - -class WXDLLIMPEXP_BASE wxObjectRuntimeReaderCallback: public wxObjectReaderCallback -{ - struct wxObjectRuntimeReaderCallbackInternal; - wxObjectRuntimeReaderCallbackInternal * m_data; - -public: - wxObjectRuntimeReaderCallback(); - virtual ~wxObjectRuntimeReaderCallback(); - - // returns the object having the corresponding ID fully constructed - wxObject *GetObject(int objectID); - - // allocate the new object on the heap, that object will have the passed in ID - virtual void AllocateObject(int objectID, wxClassInfo *classInfo, - wxStringToAnyHashMap &metadata); - - // initialize the already allocated object having the ID objectID with - // the Create method creation parameters which are objects are having - // their Ids passed in objectIDValues having objectId <> wxInvalidObjectID - - virtual void CreateObject(int objectID, - const wxClassInfo *classInfo, - int paramCount, - wxAny *VariantValues, - int *objectIDValues, - const wxClassInfo **objectClassInfos, - wxStringToAnyHashMap &metadata - ); - - // construct the new object on the heap, that object will have the - // passed in ID (for objects that don't support allocate-create type of - // creation) creation parameters which are objects are having their Ids - // passed in objectIDValues having objectId <> wxInvalidObjectID - - virtual void ConstructObject(int objectID, - const wxClassInfo *classInfo, - int paramCount, - wxAny *VariantValues, - int *objectIDValues, - const wxClassInfo **objectClassInfos, - wxStringToAnyHashMap &metadata); - - // destroy the heap-allocated object having the ID objectID, this may be - // used if an object is embedded in another object and set via value semantics, - // so the intermediate object can be destroyed after safely - virtual void DestroyObject(int objectID, wxClassInfo *classInfo); - - // set the corresponding property - virtual void SetProperty(int objectID, - const wxClassInfo *classInfo, - const wxPropertyInfo* propertyInfo, - const wxAny &variantValue); - - // sets the corresponding property (value is an object) - virtual void SetPropertyAsObject(int objectId, - const wxClassInfo *classInfo, - const wxPropertyInfo* propertyInfo, - int valueObjectId); - - // adds an element to a property collection - virtual void AddToPropertyCollection( int objectID, - const wxClassInfo *classInfo, - const wxPropertyInfo* propertyInfo, - const wxAny &VariantValue); - - // sets the corresponding property (value is an object) - virtual void AddToPropertyCollectionAsObject(int objectID, - const wxClassInfo *classInfo, - const wxPropertyInfo* propertyInfo, - int valueObjectId); - - // sets the corresponding event handler - virtual void SetConnect(int eventSourceObjectID, - const wxClassInfo *eventSourceClassInfo, - const wxPropertyInfo *delegateInfo, - const wxClassInfo *eventSinkClassInfo, - const wxHandlerInfo* handlerInfo, - int eventSinkObjectID ); -}; - -#endif // wxUSE_EXTENDED_RTTI - -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtitypes.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtitypes.h deleted file mode 100644 index afd5c07b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtitypes.h +++ /dev/null @@ -1,532 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xtitypes.h -// Purpose: enum, set, basic types support -// Author: Stefan Csomor -// Modified by: Francesco Montorsi -// Created: 27/07/03 -// Copyright: (c) 1997 Julian Smart -// (c) 2003 Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _XTITYPES_H_ -#define _XTITYPES_H_ - -#include "wx/defs.h" - -#if wxUSE_EXTENDED_RTTI - -#include "wx/string.h" -#include "wx/hashmap.h" -#include "wx/arrstr.h" -#include "wx/flags.h" -#include "wx/intl.h" -#include "wx/log.h" -#include - -class WXDLLIMPEXP_BASE wxClassInfo; - -// ---------------------------------------------------------------------------- -// Enum Support -// -// In the header files XTI requires no change from pure c++ code, however in the -// implementation, an enum needs to be enumerated eg: -// -// wxBEGIN_ENUM( wxFlavor ) -// wxENUM_MEMBER( Vanilla ) -// wxENUM_MEMBER( Chocolate ) -// wxENUM_MEMBER( Strawberry ) -// wxEND_ENUM( wxFlavor ) -// ---------------------------------------------------------------------------- - -struct WXDLLIMPEXP_BASE wxEnumMemberData -{ - const wxChar* m_name; - int m_value; -}; - -class WXDLLIMPEXP_BASE wxEnumData -{ -public: - wxEnumData( wxEnumMemberData* data ); - - // returns true if the member has been found and sets the int value - // pointed to accordingly (if ptr != null ) - // if not found returns false, value left unchanged - bool HasEnumMemberValue( const wxChar *name, int *value = NULL ) const; - - // returns the value of the member, if not found in debug mode an - // assert is issued, in release 0 is returned - int GetEnumMemberValue(const wxChar *name ) const; - - // returns the name of the enum member having the passed in value - // returns an emtpy string if not found - const wxChar *GetEnumMemberName(int value) const; - - // returns the number of members in this enum - int GetEnumCount() const { return m_count; } - - // returns the value of the nth member - int GetEnumMemberValueByIndex( int n ) const; - - // returns the value of the nth member - const wxChar *GetEnumMemberNameByIndex( int n ) const; - -private: - wxEnumMemberData *m_members; - int m_count; -}; - -#define wxBEGIN_ENUM( e ) \ - wxEnumMemberData s_enumDataMembers##e[] = { - -#define wxENUM_MEMBER( v ) { wxT(#v), v }, - -#define wxEND_ENUM( e ) \ - { NULL, 0 } }; \ - wxEnumData s_enumData##e( s_enumDataMembers##e ); \ - wxEnumData *wxGetEnumData(e) { return &s_enumData##e; } \ - template<> void wxStringReadValue(const wxString& s, e &data ) \ - { data = (e) s_enumData##e.GetEnumMemberValue(s.c_str()); } \ - template<> void wxStringWriteValue(wxString &s, const e &data ) \ - { s = s_enumData##e.GetEnumMemberName((int)data); } \ - void FromLong##e( long data, wxAny& result ) \ - { result = wxAny((e)data); } \ - void ToLong##e( const wxAny& data, long &result ) \ - { result = (long) (data).As(static_cast(NULL)); } \ - \ - wxTO_STRING_IMP( e ) \ - wxFROM_STRING_IMP( e ) \ - wxEnumTypeInfo s_typeInfo##e(wxT_ENUM, &s_enumData##e, \ - &wxTO_STRING( e ), &wxFROM_STRING( e ), &ToLong##e, \ - &FromLong##e, typeid(e).name() ); - - -// ---------------------------------------------------------------------------- -// Set Support -// -// in the header : -// -// enum wxFlavor -// { -// Vanilla, -// Chocolate, -// Strawberry, -// }; -// -// typedef wxBitset wxCoupe; -// -// in the implementation file : -// -// wxBEGIN_ENUM( wxFlavor ) -// wxENUM_MEMBER( Vanilla ) -// wxENUM_MEMBER( Chocolate ) -// wxENUM_MEMBER( Strawberry ) -// wxEND_ENUM( wxFlavor ) -// -// wxIMPLEMENT_SET_STREAMING( wxCoupe, wxFlavor ) -// -// implementation note: no partial specialization for streaming, but a delegation -// to a different class -// -// ---------------------------------------------------------------------------- - -void WXDLLIMPEXP_BASE wxSetStringToArray( const wxString &s, wxArrayString &array ); - -template -void wxSetFromString(const wxString &s, wxBitset &data ) -{ - wxEnumData* edata = wxGetEnumData((e) 0); - data.reset(); - - wxArrayString array; - wxSetStringToArray( s, array ); - wxString flag; - for ( int i = 0; i < array.Count(); ++i ) - { - flag = array[i]; - int ivalue; - if ( edata->HasEnumMemberValue( flag.c_str(), &ivalue ) ) - { - data.set( (e) ivalue ); - } - } -} - -template -void wxSetToString( wxString &s, const wxBitset &data ) -{ - wxEnumData* edata = wxGetEnumData((e) 0); - int count = edata->GetEnumCount(); - int i; - s.Clear(); - for ( i = 0; i < count; i++ ) - { - e value = (e) edata->GetEnumMemberValueByIndex(i); - if ( data.test( value ) ) - { - // this could also be done by the templated calls - if ( !s.empty() ) - s += wxT("|"); - s += edata->GetEnumMemberNameByIndex(i); - } - } -} - -#define wxIMPLEMENT_SET_STREAMING(SetName,e) \ - template<> void wxStringReadValue(const wxString &s, wxBitset &data ) \ - { wxSetFromString( s, data ); } \ - template<> void wxStringWriteValue( wxString &s, const wxBitset &data ) \ - { wxSetToString( s, data ); } \ - void FromLong##SetName( long data, wxAny& result ) \ - { result = wxAny(SetName((unsigned long)data)); } \ - void ToLong##SetName( const wxAny& data, long &result ) \ - { result = (long) (data).As(static_cast(NULL)).to_ulong(); } \ - wxTO_STRING_IMP( SetName ) \ - wxFROM_STRING_IMP( SetName ) \ - wxEnumTypeInfo s_typeInfo##SetName(wxT_SET, &s_enumData##e, \ - &wxTO_STRING( SetName ), &wxFROM_STRING( SetName ), \ - &ToLong##SetName, &FromLong##SetName, typeid(SetName).name() ); - -template -void wxFlagsFromString(const wxString &s, e &data ) -{ - wxEnumData* edata = wxGetEnumData((e*) 0); - data.m_data = 0; - - wxArrayString array; - wxSetStringToArray( s, array ); - wxString flag; - for ( size_t i = 0; i < array.Count(); ++i ) - { - flag = array[i]; - int ivalue; - if ( edata->HasEnumMemberValue( flag.c_str(), &ivalue ) ) - { - data.m_data |= ivalue; - } - } -} - -template -void wxFlagsToString( wxString &s, const e& data ) -{ - wxEnumData* edata = wxGetEnumData((e*) 0); - int count = edata->GetEnumCount(); - int i; - s.Clear(); - long dataValue = data.m_data; - for ( i = 0; i < count; i++ ) - { - int value = edata->GetEnumMemberValueByIndex(i); - // make this to allow for multi-bit constants to work - if ( value && ( dataValue & value ) == value ) - { - // clear the flags we just set - dataValue &= ~value; - // this could also be done by the templated calls - if ( !s.empty() ) - s +=wxT("|"); - s += edata->GetEnumMemberNameByIndex(i); - } - } -} - -#define wxBEGIN_FLAGS( e ) \ - wxEnumMemberData s_enumDataMembers##e[] = { - -#define wxFLAGS_MEMBER( v ) { wxT(#v), static_cast(v) }, - -#define wxEND_FLAGS( e ) \ - { NULL, 0 } }; \ - wxEnumData s_enumData##e( s_enumDataMembers##e ); \ - wxEnumData *wxGetEnumData(e*) { return &s_enumData##e; } \ - template<> void wxStringReadValue(const wxString &s, e &data ) \ - { wxFlagsFromString( s, data ); } \ - template<> void wxStringWriteValue( wxString &s, const e& data ) \ - { wxFlagsToString( s, data ); } \ - void FromLong##e( long data, wxAny& result ) \ - { result = wxAny(e(data)); } \ - void ToLong##e( const wxAny& data, long &result ) \ - { result = (long) (data).As(static_cast(NULL)).m_data; } \ - wxTO_STRING_IMP( e ) \ - wxFROM_STRING_IMP( e ) \ - wxEnumTypeInfo s_typeInfo##e(wxT_SET, &s_enumData##e, \ - &wxTO_STRING( e ), &wxFROM_STRING( e ), &ToLong##e, \ - &FromLong##e, typeid(e).name() ); - -// ---------------------------------------------------------------------------- -// Type Information -// ---------------------------------------------------------------------------- - -// All data exposed by the RTTI is characterized using the following classes. -// The first characterization is done by wxTypeKind. All enums up to and including -// wxT_CUSTOM represent so called simple types. These cannot be divided any further. -// They can be converted to and from wxStrings, that's all. -// Other wxTypeKinds can instead be splitted recursively into smaller parts until -// the simple types are reached. - -enum wxTypeKind -{ - wxT_VOID = 0, // unknown type - wxT_BOOL, - wxT_CHAR, - wxT_UCHAR, - wxT_INT, - wxT_UINT, - wxT_LONG, - wxT_ULONG, - wxT_LONGLONG, - wxT_ULONGLONG, - wxT_FLOAT, - wxT_DOUBLE, - wxT_STRING, // must be wxString - wxT_SET, // must be wxBitset<> template - wxT_ENUM, - wxT_CUSTOM, // user defined type (e.g. wxPoint) - - wxT_LAST_SIMPLE_TYPE_KIND = wxT_CUSTOM, - - wxT_OBJECT_PTR, // object reference - wxT_OBJECT, // embedded object - wxT_COLLECTION, // collection - - wxT_DELEGATE, // for connecting against an event source - - wxT_LAST_TYPE_KIND = wxT_DELEGATE // sentinel for bad data, asserts, debugging -}; - -class WXDLLIMPEXP_BASE wxAny; -class WXDLLIMPEXP_BASE wxTypeInfo; - -WX_DECLARE_STRING_HASH_MAP_WITH_DECL( wxTypeInfo*, wxTypeInfoMap, class WXDLLIMPEXP_BASE ); - -class WXDLLIMPEXP_BASE wxTypeInfo -{ -public: - typedef void (*wxVariant2StringFnc)( const wxAny& data, wxString &result ); - typedef void (*wxString2VariantFnc)( const wxString& data, wxAny &result ); - - wxTypeInfo(wxTypeKind kind, - wxVariant2StringFnc to = NULL, wxString2VariantFnc from = NULL, - const wxString &name = wxEmptyString): - m_toString(to), m_fromString(from), m_kind(kind), m_name(name) - { - Register(); - } -#if 0 // wxUSE_UNICODE - wxTypeInfo(wxTypeKind kind, - wxVariant2StringFnc to, wxString2VariantFnc from, - const char *name): - m_toString(to), m_fromString(from), m_kind(kind), - m_name(wxString::FromAscii(name)) - { - Register(); - } -#endif - - virtual ~wxTypeInfo() - { - Unregister(); - } - - // return the kind of this type (wxT_... constants) - wxTypeKind GetKind() const { return m_kind; } - - // returns the unique name of this type - const wxString& GetTypeName() const { return m_name; } - - // is this type a delegate type - bool IsDelegateType() const { return m_kind == wxT_DELEGATE; } - - // is this type a custom type - bool IsCustomType() const { return m_kind == wxT_CUSTOM; } - - // is this type an object type - bool IsObjectType() const { return m_kind == wxT_OBJECT || m_kind == wxT_OBJECT_PTR; } - - // can the content of this type be converted to and from strings ? - bool HasStringConverters() const { return m_toString != NULL && m_fromString != NULL; } - - // convert a wxAny holding data of this type into a string - void ConvertToString( const wxAny& data, wxString &result ) const - { - if ( m_toString ) - (*m_toString)( data, result ); - else - wxLogError( wxGetTranslation(wxT("String conversions not supported")) ); - } - - // convert a string into a wxAny holding the corresponding data in this type - void ConvertFromString( const wxString& data, wxAny &result ) const - { - if( m_fromString ) - (*m_fromString)( data, result ); - else - wxLogError( wxGetTranslation(wxT("String conversions not supported")) ); - } - - // statics: - - // looks for the corresponding type, will return NULL if not found - static wxTypeInfo *FindType( const wxString& typeName ); -private: - void Register(); - void Unregister(); - - wxVariant2StringFnc m_toString; - wxString2VariantFnc m_fromString; - - wxTypeKind m_kind; - wxString m_name; - - // the static list of all types we know about - static wxTypeInfoMap* ms_typeTable; -}; - -class WXDLLIMPEXP_BASE wxBuiltInTypeInfo : public wxTypeInfo -{ -public: - wxBuiltInTypeInfo( wxTypeKind kind, wxVariant2StringFnc to = NULL, - wxString2VariantFnc from = NULL, - const wxString &name = wxEmptyString ) : - wxTypeInfo( kind, to, from, name ) - { wxASSERT_MSG( GetKind() < wxT_SET, wxT("Illegal Kind for Base Type") ); } -}; - -class WXDLLIMPEXP_BASE wxCustomTypeInfo : public wxTypeInfo -{ -public: - wxCustomTypeInfo( const wxString &name, wxVariant2StringFnc to, - wxString2VariantFnc from ) : - wxTypeInfo( wxT_CUSTOM, to, from, name ) - {} -}; - -class WXDLLIMPEXP_BASE wxEnumTypeInfo : public wxTypeInfo -{ -public: - typedef void (*converterToLong_t)( const wxAny& data, long &result ); - typedef void (*converterFromLong_t)( long data, wxAny &result ); - - wxEnumTypeInfo( wxTypeKind kind, wxEnumData* enumInfo, wxVariant2StringFnc to, - wxString2VariantFnc from, converterToLong_t toLong, - converterFromLong_t fromLong, const wxString &name ) : - wxTypeInfo( kind, to, from, name ), m_toLong( toLong ), m_fromLong( fromLong ) - { - wxASSERT_MSG( kind == wxT_ENUM || kind == wxT_SET, - wxT("Illegal Kind for Enum Type")); - m_enumInfo = enumInfo; - } - - const wxEnumData* GetEnumData() const { return m_enumInfo; } - - // convert a wxAny holding data of this type into a long - void ConvertToLong( const wxAny& data, long &result ) const - { - if( m_toLong ) - (*m_toLong)( data, result ); - else - wxLogError( wxGetTranslation(wxT("Long Conversions not supported")) ); - } - - // convert a long into a wxAny holding the corresponding data in this type - void ConvertFromLong( long data, wxAny &result ) const - { - if( m_fromLong ) - (*m_fromLong)( data, result ); - else - wxLogError( wxGetTranslation(wxT("Long Conversions not supported")) ); - } - -private: - converterToLong_t m_toLong; - converterFromLong_t m_fromLong; - - wxEnumData *m_enumInfo; // Kind == wxT_ENUM or Kind == wxT_SET -}; - -class WXDLLIMPEXP_BASE wxClassTypeInfo : public wxTypeInfo -{ -public: - wxClassTypeInfo( wxTypeKind kind, wxClassInfo* classInfo, - wxVariant2StringFnc to = NULL, wxString2VariantFnc from = NULL, - const wxString &name = wxEmptyString); - - const wxClassInfo *GetClassInfo() const { return m_classInfo; } - -private: - wxClassInfo *m_classInfo; // Kind == wxT_OBJECT - could be NULL -}; - -class WXDLLIMPEXP_BASE wxCollectionTypeInfo : public wxTypeInfo -{ -public: - wxCollectionTypeInfo( const wxString &elementName, wxVariant2StringFnc to, - wxString2VariantFnc from , const wxString &name) : - wxTypeInfo( wxT_COLLECTION, to, from, name ) - { m_elementTypeName = elementName; m_elementType = NULL; } - - const wxTypeInfo* GetElementType() const - { - if ( m_elementType == NULL ) - m_elementType = wxTypeInfo::FindType( m_elementTypeName ); - return m_elementType; - } - -private: - mutable wxTypeInfo * m_elementType; - wxString m_elementTypeName; -}; - -class WXDLLIMPEXP_BASE wxEventSourceTypeInfo : public wxTypeInfo -{ -public: - wxEventSourceTypeInfo( int eventType, wxClassInfo* eventClass, - wxVariant2StringFnc to = NULL, - wxString2VariantFnc from = NULL ); - wxEventSourceTypeInfo( int eventType, int lastEventType, wxClassInfo* eventClass, - wxVariant2StringFnc to = NULL, wxString2VariantFnc from = NULL ); - - int GetEventType() const { return m_eventType; } - int GetLastEventType() const { return m_lastEventType; } - const wxClassInfo* GetEventClass() const { return m_eventClass; } - -private: - const wxClassInfo *m_eventClass; // (extended will merge into classinfo) - int m_eventType; - int m_lastEventType; -}; - -template const wxTypeInfo* wxGetTypeInfo( T * ) - { return wxTypeInfo::FindType(typeid(T).name()); } - -// this macro is for usage with custom, non-object derived classes and structs, -// wxPoint is such a custom type - -#if wxUSE_FUNC_TEMPLATE_POINTER - #define wxCUSTOM_TYPE_INFO( e, toString, fromString ) \ - wxCustomTypeInfo s_typeInfo##e(typeid(e).name(), &toString, &fromString); -#else - #define wxCUSTOM_TYPE_INFO( e, toString, fromString ) \ - void ToString##e( const wxAny& data, wxString &result ) \ - { toString(data, result); } \ - void FromString##e( const wxString& data, wxAny &result ) \ - { fromString(data, result); } \ - wxCustomTypeInfo s_typeInfo##e(typeid(e).name(), \ - &ToString##e, &FromString##e); -#endif - -#define wxCOLLECTION_TYPE_INFO( element, collection ) \ - wxCollectionTypeInfo s_typeInfo##collection( typeid(element).name(), \ - NULL, NULL, typeid(collection).name() ); - -// sometimes a compiler invents specializations that are nowhere called, -// use this macro to satisfy the refs, currently we don't have to play -// tricks, but if we will have to according to the compiler, we will use -// that macro for that - -#define wxILLEGAL_TYPE_SPECIALIZATION( a ) - -#endif // wxUSE_EXTENDED_RTTI -#endif // _XTITYPES_H_ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtixml.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtixml.h deleted file mode 100644 index 100e0653..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/xtixml.h +++ /dev/null @@ -1,119 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/xtixml.h -// Purpose: xml streaming runtime metadata information (extended class info) -// Author: Stefan Csomor -// Modified by: -// Created: 27/07/03 -// Copyright: (c) 2003 Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_XTIXMLH__ -#define _WX_XTIXMLH__ - -#include "wx/defs.h" - -#if wxUSE_EXTENDED_RTTI - -#include "wx/string.h" -#include "wx/xtistrm.h" - -/* -class WXDLLIMPEXP_XML wxXmlNode; -class WXDLLIMPEXP_BASE wxPropertyInfo; -class WXDLLIMPEXP_BASE wxObject; -class WXDLLIMPEXP_BASE wxClassInfo; -class WXDLLIMPEXP_BASE wxAnyList; -class WXDLLIMPEXP_BASE wxHandlerInfo; -class WXDLLIMPEXP_BASE wxObjectWriterCallback; -*/ - -class WXDLLIMPEXP_XML wxObjectXmlWriter: public wxObjectWriter -{ -public: - - wxObjectXmlWriter( wxXmlNode * parent ); - virtual ~wxObjectXmlWriter(); - - // - // streaming callbacks - // - // these callbacks really write out the values in the stream format - // - - // - // streaming callbacks - // - // these callbacks really write out the values in the stream format - - // begins writing out a new toplevel entry which has the indicated unique name - virtual void DoBeginWriteTopLevelEntry( const wxString &name ); - - // ends writing out a new toplevel entry which has the indicated unique name - virtual void DoEndWriteTopLevelEntry( const wxString &name ); - - // start of writing an object having the passed in ID - virtual void DoBeginWriteObject(const wxObject *object, - const wxClassInfo *classInfo, int objectID, const wxStringToAnyHashMap &metadata ); - - // end of writing an toplevel object name param is used for unique - // identification within the container - virtual void DoEndWriteObject(const wxObject *object, - const wxClassInfo *classInfo, int objectID ); - - // writes a simple property in the stream format - virtual void DoWriteSimpleType( const wxAny &value ); - - // start of writing a complex property into the stream ( - virtual void DoBeginWriteProperty( const wxPropertyInfo *propInfo ); - - // end of writing a complex property into the stream - virtual void DoEndWriteProperty( const wxPropertyInfo *propInfo ); - - virtual void DoBeginWriteElement(); - virtual void DoEndWriteElement(); - - // insert an object reference to an already written object - virtual void DoWriteRepeatedObject( int objectID ); - - // insert a null reference - virtual void DoWriteNullObject(); - - // writes a delegate in the stream format - virtual void DoWriteDelegate( const wxObject *object, - const wxClassInfo* classInfo, const wxPropertyInfo *propInfo, - const wxObject *eventSink, int sinkObjectID, - const wxClassInfo* eventSinkClassInfo, const wxHandlerInfo* handlerIndo ); - -private: - struct wxObjectXmlWriterInternal; - wxObjectXmlWriterInternal* m_data; -}; - -/* -wxObjectXmlReader handles streaming in a class from XML -*/ - -class WXDLLIMPEXP_XML wxObjectXmlReader: public wxObjectReader -{ -public: - wxObjectXmlReader(wxXmlNode *parent) { m_parent = parent; } - virtual ~wxObjectXmlReader() {} - - // Reads a component from XML. The return value is the root object ID, which can - // then be used to ask the readercallback about that object - - virtual int ReadObject( const wxString &name, wxObjectReaderCallback *readercallback ); - -private: - int ReadComponent(wxXmlNode *parent, wxObjectReaderCallback *callbacks); - - // read the content of this node (simple type) and return the corresponding value - wxAny ReadValue(wxXmlNode *Node, const wxTypeInfo *type ); - - wxXmlNode * m_parent; -}; - -#endif // wxUSE_EXTENDED_RTTI - -#endif diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/zipstrm.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/zipstrm.h deleted file mode 100644 index 4866535b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/zipstrm.h +++ /dev/null @@ -1,560 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/zipstrm.h -// Purpose: Streams for Zip files -// Author: Mike Wetherell -// Copyright: (c) Mike Wetherell -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXZIPSTREAM_H__ -#define _WX_WXZIPSTREAM_H__ - -#include "wx/defs.h" - -#if wxUSE_ZIPSTREAM - -#include "wx/archive.h" -#include "wx/filename.h" - -// some methods from wxZipInputStream and wxZipOutputStream stream do not get -// exported/imported when compiled with Mingw versions before 3.4.2. So they -// are imported/exported individually as a workaround -#if (defined(__GNUWIN32__) || defined(__MINGW32__)) \ - && (!defined __GNUC__ \ - || !defined __GNUC_MINOR__ \ - || !defined __GNUC_PATCHLEVEL__ \ - || __GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__ < 30402) -#define WXZIPFIX WXDLLIMPEXP_BASE -#else -#define WXZIPFIX -#endif - -///////////////////////////////////////////////////////////////////////////// -// constants - -// Compression Method, only 0 (store) and 8 (deflate) are supported here -// -enum wxZipMethod -{ - wxZIP_METHOD_STORE, - wxZIP_METHOD_SHRINK, - wxZIP_METHOD_REDUCE1, - wxZIP_METHOD_REDUCE2, - wxZIP_METHOD_REDUCE3, - wxZIP_METHOD_REDUCE4, - wxZIP_METHOD_IMPLODE, - wxZIP_METHOD_TOKENIZE, - wxZIP_METHOD_DEFLATE, - wxZIP_METHOD_DEFLATE64, - wxZIP_METHOD_BZIP2 = 12, - wxZIP_METHOD_DEFAULT = 0xffff -}; - -// Originating File-System. -// -// These are Pkware's values. Note that Info-zip disagree on some of them, -// most notably NTFS. -// -enum wxZipSystem -{ - wxZIP_SYSTEM_MSDOS, - wxZIP_SYSTEM_AMIGA, - wxZIP_SYSTEM_OPENVMS, - wxZIP_SYSTEM_UNIX, - wxZIP_SYSTEM_VM_CMS, - wxZIP_SYSTEM_ATARI_ST, - wxZIP_SYSTEM_OS2_HPFS, - wxZIP_SYSTEM_MACINTOSH, - wxZIP_SYSTEM_Z_SYSTEM, - wxZIP_SYSTEM_CPM, - wxZIP_SYSTEM_WINDOWS_NTFS, - wxZIP_SYSTEM_MVS, - wxZIP_SYSTEM_VSE, - wxZIP_SYSTEM_ACORN_RISC, - wxZIP_SYSTEM_VFAT, - wxZIP_SYSTEM_ALTERNATE_MVS, - wxZIP_SYSTEM_BEOS, - wxZIP_SYSTEM_TANDEM, - wxZIP_SYSTEM_OS_400 -}; - -// Dos/Win file attributes -// -enum wxZipAttributes -{ - wxZIP_A_RDONLY = 0x01, - wxZIP_A_HIDDEN = 0x02, - wxZIP_A_SYSTEM = 0x04, - wxZIP_A_SUBDIR = 0x10, - wxZIP_A_ARCH = 0x20, - - wxZIP_A_MASK = 0x37 -}; - -// Values for the flags field in the zip headers -// -enum wxZipFlags -{ - wxZIP_ENCRYPTED = 0x0001, - wxZIP_DEFLATE_NORMAL = 0x0000, // normal compression - wxZIP_DEFLATE_EXTRA = 0x0002, // extra compression - wxZIP_DEFLATE_FAST = 0x0004, // fast compression - wxZIP_DEFLATE_SUPERFAST = 0x0006, // superfast compression - wxZIP_DEFLATE_MASK = 0x0006, - wxZIP_SUMS_FOLLOW = 0x0008, // crc and sizes come after the data - wxZIP_ENHANCED = 0x0010, - wxZIP_PATCH = 0x0020, - wxZIP_STRONG_ENC = 0x0040, - wxZIP_LANG_ENC_UTF8 = 0x0800, // filename and comment are UTF8 - wxZIP_UNUSED = 0x0F80, - wxZIP_RESERVED = 0xF000 -}; - -// Forward decls -// -class WXDLLIMPEXP_FWD_BASE wxZipEntry; -class WXDLLIMPEXP_FWD_BASE wxZipInputStream; - - -///////////////////////////////////////////////////////////////////////////// -// wxZipNotifier - -class WXDLLIMPEXP_BASE wxZipNotifier -{ -public: - virtual ~wxZipNotifier() { } - - virtual void OnEntryUpdated(wxZipEntry& entry) = 0; -}; - - -///////////////////////////////////////////////////////////////////////////// -// Zip Entry - holds the meta data for a file in the zip - -class WXDLLIMPEXP_BASE wxZipEntry : public wxArchiveEntry -{ -public: - wxZipEntry(const wxString& name = wxEmptyString, - const wxDateTime& dt = wxDateTime::Now(), - wxFileOffset size = wxInvalidOffset); - virtual ~wxZipEntry(); - - wxZipEntry(const wxZipEntry& entry); - wxZipEntry& operator=(const wxZipEntry& entry); - - // Get accessors - wxDateTime GetDateTime() const wxOVERRIDE { return m_DateTime; } - wxFileOffset GetSize() const wxOVERRIDE { return m_Size; } - wxFileOffset GetOffset() const wxOVERRIDE { return m_Offset; } - wxString GetInternalName() const wxOVERRIDE { return m_Name; } - int GetMethod() const { return m_Method; } - int GetFlags() const { return m_Flags; } - wxUint32 GetCrc() const { return m_Crc; } - wxFileOffset GetCompressedSize() const { return m_CompressedSize; } - int GetSystemMadeBy() const { return m_SystemMadeBy; } - wxString GetComment() const { return m_Comment; } - wxUint32 GetExternalAttributes() const { return m_ExternalAttributes; } - wxPathFormat GetInternalFormat() const wxOVERRIDE { return wxPATH_UNIX; } - int GetMode() const; - const char *GetLocalExtra() const; - size_t GetLocalExtraLen() const; - const char *GetExtra() const; - size_t GetExtraLen() const; - wxString GetName(wxPathFormat format = wxPATH_NATIVE) const wxOVERRIDE; - - // is accessors - inline bool IsDir() const wxOVERRIDE; - inline bool IsText() const; - inline bool IsReadOnly() const wxOVERRIDE; - inline bool IsMadeByUnix() const; - - // set accessors - void SetDateTime(const wxDateTime& dt) wxOVERRIDE { m_DateTime = dt; } - void SetSize(wxFileOffset size) wxOVERRIDE { m_Size = size; } - void SetMethod(int method) { m_Method = (wxUint16)method; } - void SetComment(const wxString& comment) { m_Comment = comment; } - void SetExternalAttributes(wxUint32 attr ) { m_ExternalAttributes = attr; } - void SetSystemMadeBy(int system); - void SetMode(int mode); - void SetExtra(const char *extra, size_t len); - void SetLocalExtra(const char *extra, size_t len); - - inline void SetName(const wxString& name, - wxPathFormat format = wxPATH_NATIVE) wxOVERRIDE; - - static wxString GetInternalName(const wxString& name, - wxPathFormat format = wxPATH_NATIVE, - bool *pIsDir = NULL); - - // set is accessors - void SetIsDir(bool isDir = true) wxOVERRIDE; - inline void SetIsReadOnly(bool isReadOnly = true) wxOVERRIDE; - inline void SetIsText(bool isText = true); - - wxZipEntry *Clone() const { return ZipClone(); } - - void SetNotifier(wxZipNotifier& notifier); - void UnsetNotifier() wxOVERRIDE; - -protected: - // Internal attributes - enum { TEXT_ATTR = 1 }; - - // protected Get accessors - int GetVersionNeeded() const { return m_VersionNeeded; } - wxFileOffset GetKey() const { return m_Key; } - int GetVersionMadeBy() const { return m_VersionMadeBy; } - int GetDiskStart() const { return m_DiskStart; } - int GetInternalAttributes() const { return m_InternalAttributes; } - - void SetVersionNeeded(int version) { m_VersionNeeded = (wxUint16)version; } - void SetOffset(wxFileOffset offset) wxOVERRIDE { m_Offset = offset; } - void SetFlags(int flags) { m_Flags = (wxUint16)flags; } - void SetVersionMadeBy(int version) { m_VersionMadeBy = (wxUint8)version; } - void SetCrc(wxUint32 crc) { m_Crc = crc; } - void SetCompressedSize(wxFileOffset size) { m_CompressedSize = size; } - void SetKey(wxFileOffset offset) { m_Key = offset; } - void SetDiskStart(int start) { m_DiskStart = (wxUint16)start; } - void SetInternalAttributes(int attr) { m_InternalAttributes = (wxUint16)attr; } - - virtual wxZipEntry *ZipClone() const { return new wxZipEntry(*this); } - - void Notify(); - -private: - wxArchiveEntry* DoClone() const wxOVERRIDE { return ZipClone(); } - - size_t ReadLocal(wxInputStream& stream, wxMBConv& conv); - size_t WriteLocal(wxOutputStream& stream, wxMBConv& conv) const; - - size_t ReadCentral(wxInputStream& stream, wxMBConv& conv); - size_t WriteCentral(wxOutputStream& stream, wxMBConv& conv) const; - - size_t ReadDescriptor(wxInputStream& stream); - size_t WriteDescriptor(wxOutputStream& stream, wxUint32 crc, - wxFileOffset compressedSize, wxFileOffset size); - - bool LoadExtraInfo(const char* extraData, wxUint16 extraLen, bool localInfo); - - wxUint8 m_SystemMadeBy; // one of enum wxZipSystem - wxUint8 m_VersionMadeBy; // major * 10 + minor - - wxUint16 m_VersionNeeded; // ver needed to extract (20 i.e. v2.0) - wxUint16 m_Flags; - wxUint16 m_Method; // compression method (one of wxZipMethod) - wxDateTime m_DateTime; - wxUint32 m_Crc; - wxFileOffset m_CompressedSize; - wxFileOffset m_Size; - wxString m_Name; // in internal format - wxFileOffset m_Key; // the original offset for copied entries - wxFileOffset m_Offset; // file offset of the entry - - wxString m_Comment; - wxUint16 m_DiskStart; // for multidisk archives, not unsupported - wxUint16 m_InternalAttributes; // bit 0 set for text files - wxUint32 m_ExternalAttributes; // system specific depends on SystemMadeBy - - class wxZipMemory *m_Extra; - class wxZipMemory *m_LocalExtra; - - wxZipNotifier *m_zipnotifier; - class wxZipWeakLinks *m_backlink; - - friend class wxZipInputStream; - friend class wxZipOutputStream; - - wxDECLARE_DYNAMIC_CLASS(wxZipEntry); -}; - - -///////////////////////////////////////////////////////////////////////////// -// wxZipOutputStream - -WX_DECLARE_LIST_WITH_DECL(wxZipEntry, wxZipEntryList_, class WXDLLIMPEXP_BASE); - -class WXDLLIMPEXP_BASE wxZipOutputStream : public wxArchiveOutputStream -{ -public: - wxZipOutputStream(wxOutputStream& stream, - int level = -1, - wxMBConv& conv = wxConvLocal); - wxZipOutputStream(wxOutputStream *stream, - int level = -1, - wxMBConv& conv = wxConvLocal); - virtual WXZIPFIX ~wxZipOutputStream(); - - bool PutNextEntry(wxZipEntry *entry) { return DoCreate(entry); } - - bool WXZIPFIX PutNextEntry(const wxString& name, - const wxDateTime& dt = wxDateTime::Now(), - wxFileOffset size = wxInvalidOffset) wxOVERRIDE; - - bool WXZIPFIX PutNextDirEntry(const wxString& name, - const wxDateTime& dt = wxDateTime::Now()) wxOVERRIDE; - - bool WXZIPFIX CopyEntry(wxZipEntry *entry, wxZipInputStream& inputStream); - bool WXZIPFIX CopyArchiveMetaData(wxZipInputStream& inputStream); - - void WXZIPFIX Sync() wxOVERRIDE; - bool WXZIPFIX CloseEntry() wxOVERRIDE; - bool WXZIPFIX Close() wxOVERRIDE; - - void SetComment(const wxString& comment) { m_Comment = comment; } - - int GetLevel() const { return m_level; } - void WXZIPFIX SetLevel(int level); - -protected: - virtual size_t WXZIPFIX OnSysWrite(const void *buffer, size_t size) wxOVERRIDE; - virtual wxFileOffset OnSysTell() const wxOVERRIDE { return m_entrySize; } - - // this protected interface isn't yet finalised - struct Buffer { const char *m_data; size_t m_size; }; - virtual wxOutputStream* WXZIPFIX OpenCompressor(wxOutputStream& stream, - wxZipEntry& entry, - const Buffer bufs[]); - virtual bool WXZIPFIX CloseCompressor(wxOutputStream *comp); - - bool IsParentSeekable() const - { return m_offsetAdjustment != wxInvalidOffset; } - -private: - void Init(int level); - - bool WXZIPFIX PutNextEntry(wxArchiveEntry *entry) wxOVERRIDE; - bool WXZIPFIX CopyEntry(wxArchiveEntry *entry, wxArchiveInputStream& stream) wxOVERRIDE; - bool WXZIPFIX CopyArchiveMetaData(wxArchiveInputStream& stream) wxOVERRIDE; - - bool IsOpened() const { return m_comp || m_pending; } - - bool DoCreate(wxZipEntry *entry, bool raw = false); - void CreatePendingEntry(const void *buffer, size_t size); - void CreatePendingEntry(); - - class wxStoredOutputStream *m_store; - class wxZlibOutputStream2 *m_deflate; - class wxZipStreamLink *m_backlink; - wxZipEntryList_ m_entries; - char *m_initialData; - size_t m_initialSize; - wxZipEntry *m_pending; - bool m_raw; - wxFileOffset m_headerOffset; - size_t m_headerSize; - wxFileOffset m_entrySize; - wxUint32 m_crcAccumulator; - wxOutputStream *m_comp; - int m_level; - wxFileOffset m_offsetAdjustment; - wxString m_Comment; - bool m_endrecWritten; - - wxDECLARE_NO_COPY_CLASS(wxZipOutputStream); -}; - - -///////////////////////////////////////////////////////////////////////////// -// wxZipInputStream - -class WXDLLIMPEXP_BASE wxZipInputStream : public wxArchiveInputStream -{ -public: - typedef wxZipEntry entry_type; - - wxZipInputStream(wxInputStream& stream, wxMBConv& conv = wxConvLocal); - wxZipInputStream(wxInputStream *stream, wxMBConv& conv = wxConvLocal); - - virtual WXZIPFIX ~wxZipInputStream(); - - bool OpenEntry(wxZipEntry& entry) { return DoOpen(&entry); } - bool WXZIPFIX CloseEntry() wxOVERRIDE; - - wxZipEntry *GetNextEntry(); - - wxString WXZIPFIX GetComment(); - int WXZIPFIX GetTotalEntries(); - - virtual wxFileOffset GetLength() const wxOVERRIDE { return m_entry.GetSize(); } - -protected: - size_t WXZIPFIX OnSysRead(void *buffer, size_t size) wxOVERRIDE; - wxFileOffset OnSysTell() const wxOVERRIDE { return m_decomp ? m_decomp->TellI() : 0; } - - // this protected interface isn't yet finalised - virtual wxInputStream* WXZIPFIX OpenDecompressor(wxInputStream& stream); - virtual bool WXZIPFIX CloseDecompressor(wxInputStream *decomp); - -private: - void Init(); - void Init(const wxString& file); - - wxArchiveEntry *DoGetNextEntry() wxOVERRIDE { return GetNextEntry(); } - - bool WXZIPFIX OpenEntry(wxArchiveEntry& entry) wxOVERRIDE; - - wxStreamError ReadLocal(bool readEndRec = false); - wxStreamError ReadCentral(); - - wxUint32 ReadSignature(); - bool FindEndRecord(); - bool LoadEndRecord(); - - bool AtHeader() const { return m_headerSize == 0; } - bool AfterHeader() const { return m_headerSize > 0 && !m_decomp; } - bool IsOpened() const { return m_decomp != NULL; } - - wxZipStreamLink *MakeLink(wxZipOutputStream *out); - - bool DoOpen(wxZipEntry *entry = NULL, bool raw = false); - bool OpenDecompressor(bool raw = false); - - class wxStoredInputStream *m_store; - class wxZlibInputStream2 *m_inflate; - class wxRawInputStream *m_rawin; - wxZipEntry m_entry; - bool m_raw; - size_t m_headerSize; - wxUint32 m_crcAccumulator; - wxInputStream *m_decomp; - bool m_parentSeekable; - class wxZipWeakLinks *m_weaklinks; - class wxZipStreamLink *m_streamlink; - wxFileOffset m_offsetAdjustment; - wxFileOffset m_position; - wxUint32 m_signature; - size_t m_TotalEntries; - wxString m_Comment; - - friend bool wxZipOutputStream::CopyEntry( - wxZipEntry *entry, wxZipInputStream& inputStream); - friend bool wxZipOutputStream::CopyArchiveMetaData( - wxZipInputStream& inputStream); - - wxDECLARE_NO_COPY_CLASS(wxZipInputStream); -}; - - -///////////////////////////////////////////////////////////////////////////// -// Iterators - -#if wxUSE_STL || defined WX_TEST_ARCHIVE_ITERATOR -typedef wxArchiveIterator wxZipIter; -typedef wxArchiveIterator > wxZipPairIter; -#endif - - -///////////////////////////////////////////////////////////////////////////// -// wxZipClassFactory - -class WXDLLIMPEXP_BASE wxZipClassFactory : public wxArchiveClassFactory -{ -public: - typedef wxZipEntry entry_type; - typedef wxZipInputStream instream_type; - typedef wxZipOutputStream outstream_type; - typedef wxZipNotifier notifier_type; -#if wxUSE_STL || defined WX_TEST_ARCHIVE_ITERATOR - typedef wxZipIter iter_type; - typedef wxZipPairIter pairiter_type; -#endif - - wxZipClassFactory(); - - wxZipEntry *NewEntry() const - { return new wxZipEntry; } - wxZipInputStream *NewStream(wxInputStream& stream) const - { return new wxZipInputStream(stream, GetConv()); } - wxZipOutputStream *NewStream(wxOutputStream& stream) const - { return new wxZipOutputStream(stream, -1, GetConv()); } - wxZipInputStream *NewStream(wxInputStream *stream) const - { return new wxZipInputStream(stream, GetConv()); } - wxZipOutputStream *NewStream(wxOutputStream *stream) const - { return new wxZipOutputStream(stream, -1, GetConv()); } - - wxString GetInternalName(const wxString& name, - wxPathFormat format = wxPATH_NATIVE) const wxOVERRIDE - { return wxZipEntry::GetInternalName(name, format); } - - const wxChar * const *GetProtocols(wxStreamProtocolType type - = wxSTREAM_PROTOCOL) const wxOVERRIDE; - -protected: - wxArchiveEntry *DoNewEntry() const wxOVERRIDE - { return NewEntry(); } - wxArchiveInputStream *DoNewStream(wxInputStream& stream) const wxOVERRIDE - { return NewStream(stream); } - wxArchiveOutputStream *DoNewStream(wxOutputStream& stream) const wxOVERRIDE - { return NewStream(stream); } - wxArchiveInputStream *DoNewStream(wxInputStream *stream) const wxOVERRIDE - { return NewStream(stream); } - wxArchiveOutputStream *DoNewStream(wxOutputStream *stream) const wxOVERRIDE - { return NewStream(stream); } - -private: - wxDECLARE_DYNAMIC_CLASS(wxZipClassFactory); -}; - - -///////////////////////////////////////////////////////////////////////////// -// wxZipEntry inlines - -inline bool wxZipEntry::IsText() const -{ - return (m_InternalAttributes & TEXT_ATTR) != 0; -} - -inline bool wxZipEntry::IsDir() const -{ - return (m_ExternalAttributes & wxZIP_A_SUBDIR) != 0; -} - -inline bool wxZipEntry::IsReadOnly() const -{ - return (m_ExternalAttributes & wxZIP_A_RDONLY) != 0; -} - -inline bool wxZipEntry::IsMadeByUnix() const -{ - const int pattern = - (1 << wxZIP_SYSTEM_OPENVMS) | - (1 << wxZIP_SYSTEM_UNIX) | - (1 << wxZIP_SYSTEM_ATARI_ST) | - (1 << wxZIP_SYSTEM_ACORN_RISC) | - (1 << wxZIP_SYSTEM_BEOS) | (1 << wxZIP_SYSTEM_TANDEM); - - // note: some unix zippers put madeby = dos - return (m_SystemMadeBy == wxZIP_SYSTEM_MSDOS - && (m_ExternalAttributes & ~0xFFFF)) - || ((pattern >> m_SystemMadeBy) & 1); -} - -inline void wxZipEntry::SetIsText(bool isText) -{ - if (isText) - m_InternalAttributes |= TEXT_ATTR; - else - m_InternalAttributes &= ~TEXT_ATTR; -} - -inline void wxZipEntry::SetIsReadOnly(bool isReadOnly) -{ - if (isReadOnly) - SetMode(GetMode() & ~0222); - else - SetMode(GetMode() | 0200); -} - -inline void wxZipEntry::SetName(const wxString& name, - wxPathFormat format /*=wxPATH_NATIVE*/) -{ - bool isDir; - m_Name = GetInternalName(name, format, &isDir); - SetIsDir(isDir); -} - - -#endif // wxUSE_ZIPSTREAM - -#endif // _WX_WXZIPSTREAM_H__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/zstream.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/zstream.h deleted file mode 100644 index d7391440..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/include/wx/zstream.h +++ /dev/null @@ -1,148 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/zstream.h -// Purpose: Memory stream classes -// Author: Guilhem Lavaux -// Modified by: Mike Wetherell -// Created: 11/07/98 -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_WXZSTREAM_H__ -#define _WX_WXZSTREAM_H__ - -#include "wx/defs.h" - -#if wxUSE_ZLIB && wxUSE_STREAMS - -#include "wx/stream.h" -#include "wx/versioninfo.h" - -// Compression level -enum wxZlibCompressionLevels { - wxZ_DEFAULT_COMPRESSION = -1, - wxZ_NO_COMPRESSION = 0, - wxZ_BEST_SPEED = 1, - wxZ_BEST_COMPRESSION = 9 -}; - -// Flags -enum wxZLibFlags { - wxZLIB_NO_HEADER = 0, // raw deflate stream, no header or checksum - wxZLIB_ZLIB = 1, // zlib header and checksum - wxZLIB_GZIP = 2, // gzip header and checksum, requires zlib 1.2.1+ - wxZLIB_AUTO = 3 // autodetect header zlib or gzip -}; - -class WXDLLIMPEXP_BASE wxZlibInputStream: public wxFilterInputStream { - public: - wxZlibInputStream(wxInputStream& stream, int flags = wxZLIB_AUTO); - wxZlibInputStream(wxInputStream *stream, int flags = wxZLIB_AUTO); - virtual ~wxZlibInputStream(); - - char Peek() wxOVERRIDE { return wxInputStream::Peek(); } - wxFileOffset GetLength() const wxOVERRIDE { return wxInputStream::GetLength(); } - - static bool CanHandleGZip(); - - bool SetDictionary(const char *data, size_t datalen); - bool SetDictionary(const wxMemoryBuffer &buf); - - protected: - size_t OnSysRead(void *buffer, size_t size) wxOVERRIDE; - wxFileOffset OnSysTell() const wxOVERRIDE { return m_pos; } - - private: - void Init(int flags); - - protected: - size_t m_z_size; - unsigned char *m_z_buffer; - struct z_stream_s *m_inflate; - wxFileOffset m_pos; - - wxDECLARE_NO_COPY_CLASS(wxZlibInputStream); -}; - -class WXDLLIMPEXP_BASE wxZlibOutputStream: public wxFilterOutputStream { - public: - wxZlibOutputStream(wxOutputStream& stream, int level = -1, int flags = wxZLIB_ZLIB); - wxZlibOutputStream(wxOutputStream *stream, int level = -1, int flags = wxZLIB_ZLIB); - virtual ~wxZlibOutputStream() { Close(); } - - void Sync() wxOVERRIDE { DoFlush(false); } - bool Close() wxOVERRIDE; - wxFileOffset GetLength() const wxOVERRIDE { return m_pos; } - - static bool CanHandleGZip(); - - bool SetDictionary(const char *data, size_t datalen); - bool SetDictionary(const wxMemoryBuffer &buf); - - protected: - size_t OnSysWrite(const void *buffer, size_t size) wxOVERRIDE; - wxFileOffset OnSysTell() const wxOVERRIDE { return m_pos; } - - virtual void DoFlush(bool final); - - private: - void Init(int level, int flags); - - protected: - size_t m_z_size; - unsigned char *m_z_buffer; - struct z_stream_s *m_deflate; - wxFileOffset m_pos; - - wxDECLARE_NO_COPY_CLASS(wxZlibOutputStream); -}; - -class WXDLLIMPEXP_BASE wxZlibClassFactory: public wxFilterClassFactory -{ -public: - wxZlibClassFactory(); - - wxFilterInputStream *NewStream(wxInputStream& stream) const wxOVERRIDE - { return new wxZlibInputStream(stream); } - wxFilterOutputStream *NewStream(wxOutputStream& stream) const wxOVERRIDE - { return new wxZlibOutputStream(stream, -1); } - wxFilterInputStream *NewStream(wxInputStream *stream) const wxOVERRIDE - { return new wxZlibInputStream(stream); } - wxFilterOutputStream *NewStream(wxOutputStream *stream) const wxOVERRIDE - { return new wxZlibOutputStream(stream, -1); } - - const wxChar * const *GetProtocols(wxStreamProtocolType type - = wxSTREAM_PROTOCOL) const wxOVERRIDE; - -private: - wxDECLARE_DYNAMIC_CLASS(wxZlibClassFactory); -}; - -class WXDLLIMPEXP_BASE wxGzipClassFactory: public wxFilterClassFactory -{ -public: - wxGzipClassFactory(); - - wxFilterInputStream *NewStream(wxInputStream& stream) const wxOVERRIDE - { return new wxZlibInputStream(stream); } - wxFilterOutputStream *NewStream(wxOutputStream& stream) const wxOVERRIDE - { return new wxZlibOutputStream(stream, -1); } - wxFilterInputStream *NewStream(wxInputStream *stream) const wxOVERRIDE - { return new wxZlibInputStream(stream); } - wxFilterOutputStream *NewStream(wxOutputStream *stream) const wxOVERRIDE - { return new wxZlibOutputStream(stream, -1); } - - const wxChar * const *GetProtocols(wxStreamProtocolType type - = wxSTREAM_PROTOCOL) const wxOVERRIDE; - -private: - wxDECLARE_DYNAMIC_CLASS(wxGzipClassFactory); -}; - -WXDLLIMPEXP_BASE wxVersionInfo wxGetZlibVersionInfo(); - -#endif - // wxUSE_ZLIB && wxUSE_STREAMS - -#endif - // _WX_WXZSTREAM_H__ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/build.cfg b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/build.cfg deleted file mode 100644 index f53d0bd2..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/build.cfg +++ /dev/null @@ -1,39 +0,0 @@ -WXVER_MAJOR=3 -WXVER_MINOR=1 -WXVER_RELEASE=0 -BUILD=release -MONOLITHIC=0 -SHARED=1 -UNICODE=1 -TOOLKIT=MSW -TOOLKIT_VERSION= -WXUNIV=0 -CFG= -VENDOR=custom -OFFICIAL_BUILD=0 -DEBUG_FLAG=1 -DEBUG_INFO=default -RUNTIME_LIBS=dynamic -USE_EXCEPTIONS=1 -USE_RTTI=1 -USE_THREADS=1 -USE_AUI=1 -USE_GUI=1 -USE_HTML=1 -USE_MEDIA=1 -USE_OPENGL=1 -USE_QA=0 -USE_PROPGRID=1 -USE_RIBBON=1 -USE_RICHTEXT=1 -USE_STC=1 -USE_WEBVIEW=1 -USE_XRC=1 -COMPILER=gcc -COMPILER_VERSION= -CC=gcc -CXX=g++ -CFLAGS= -CPPFLAGS=-m64 -CXXFLAGS= -LDFLAGS=-m64 diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libgcc_s_seh-1.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libgcc_s_seh-1.dll deleted file mode 100644 index a6e6b5d8..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libgcc_s_seh-1.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libstdc++-6.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libstdc++-6.dll deleted file mode 100644 index cdf4c6c8..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libstdc++-6.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxbase31u.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxbase31u.a deleted file mode 100644 index 56b3d094..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxbase31u.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxbase31u_net.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxbase31u_net.a deleted file mode 100644 index 254329fb..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxbase31u_net.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxbase31u_xml.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxbase31u_xml.a deleted file mode 100644 index 4e6ab613..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxbase31u_xml.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxexpat.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxexpat.a deleted file mode 100644 index 5223139d..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxexpat.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxjpeg.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxjpeg.a deleted file mode 100644 index 578a5da9..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxjpeg.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_adv.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_adv.a deleted file mode 100644 index f5bc3725..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_adv.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_aui.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_aui.a deleted file mode 100644 index c97311a7..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_aui.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_core.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_core.a deleted file mode 100644 index 240fa154..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_core.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_gl.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_gl.a deleted file mode 100644 index b2446dc3..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_gl.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_html.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_html.a deleted file mode 100644 index 45f1fb84..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_html.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_media.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_media.a deleted file mode 100644 index 961a5b86..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_media.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_propgrid.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_propgrid.a deleted file mode 100644 index 15b2fc3b..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_propgrid.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_ribbon.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_ribbon.a deleted file mode 100644 index dc582388..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_ribbon.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_richtext.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_richtext.a deleted file mode 100644 index e5d4cff3..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_richtext.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_stc.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_stc.a deleted file mode 100644 index 35a0aee4..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_stc.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_webview.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_webview.a deleted file mode 100644 index 6f1de711..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_webview.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_xrc.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_xrc.a deleted file mode 100644 index f2b6b7c0..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxmsw31u_xrc.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxpng.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxpng.a deleted file mode 100644 index efaf4739..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxpng.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxregexu.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxregexu.a deleted file mode 100644 index 790b912e..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxregexu.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxtiff.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxtiff.a deleted file mode 100644 index 3381e24a..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxtiff.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxzlib.a b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxzlib.a deleted file mode 100644 index 9c71267e..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/libwxzlib.a and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wx/setup.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wx/setup.h deleted file mode 100644 index d005bc35..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wx/setup.h +++ /dev/null @@ -1,1681 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/setup.h -// Purpose: Configuration for the library -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SETUP_H_ -#define _WX_SETUP_H_ - -/* --- start common options --- */ -// ---------------------------------------------------------------------------- -// global settings -// ---------------------------------------------------------------------------- - -// define this to 0 when building wxBase library - this can also be done from -// makefile/project file overriding the value here -#ifndef wxUSE_GUI - #define wxUSE_GUI 1 -#endif // wxUSE_GUI - -// ---------------------------------------------------------------------------- -// compatibility settings -// ---------------------------------------------------------------------------- - -// This setting determines the compatibility with 2.8 API: set it to 0 to -// flag all cases of using deprecated functions. -// -// Default is 1 but please try building your code with 0 as the default will -// change to 0 in the next version and the deprecated functions will disappear -// in the version after it completely. -// -// Recommended setting: 0 (please update your code) -#define WXWIN_COMPATIBILITY_2_8 0 - -// This setting determines the compatibility with 3.0 API: set it to 0 to -// flag all cases of using deprecated functions. -// -// Default is 1 but please try building your code with 0 as the default will -// change to 0 in the next version and the deprecated functions will disappear -// in the version after it completely. -// -// Recommended setting: 0 (please update your code) -#define WXWIN_COMPATIBILITY_3_0 1 - -// MSW-only: Set to 0 for accurate dialog units, else 1 for old behaviour when -// default system font is used for wxWindow::GetCharWidth/Height() instead of -// the current font. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxDIALOG_UNIT_COMPATIBILITY 0 - -// ---------------------------------------------------------------------------- -// debugging settings -// ---------------------------------------------------------------------------- - -// wxDEBUG_LEVEL will be defined as 1 in wx/debug.h so normally there is no -// need to define it here. You may do it for two reasons: either completely -// disable/compile out the asserts in release version (then do it inside #ifdef -// NDEBUG) or, on the contrary, enable more asserts, including the usually -// disabled ones, in the debug build (then do it inside #ifndef NDEBUG) -// -// #ifdef NDEBUG -// #define wxDEBUG_LEVEL 0 -// #else -// #define wxDEBUG_LEVEL 2 -// #endif - -// wxHandleFatalExceptions() may be used to catch the program faults at run -// time and, instead of terminating the program with a usual GPF message box, -// call the user-defined wxApp::OnFatalException() function. If you set -// wxUSE_ON_FATAL_EXCEPTION to 0, wxHandleFatalExceptions() will not work. -// -// This setting is for Win32 only and can only be enabled if your compiler -// supports Win32 structured exception handling (currently only VC++ does) -// -// Default is 1 -// -// Recommended setting: 1 if your compiler supports it. -#define wxUSE_ON_FATAL_EXCEPTION 1 - -// Set this to 1 to be able to generate a human-readable (unlike -// machine-readable minidump created by wxCrashReport::Generate()) stack back -// trace when your program crashes using wxStackWalker -// -// Default is 1 if supported by the compiler. -// -// Recommended setting: 1, set to 0 if your programs never crash -#define wxUSE_STACKWALKER 1 - -// Set this to 1 to compile in wxDebugReport class which allows you to create -// and optionally upload to your web site a debug report consisting of back -// trace of the crash (if wxUSE_STACKWALKER == 1) and other information. -// -// Default is 1 if supported by the compiler. -// -// Recommended setting: 1, it is compiled into a separate library so there -// is no overhead if you don't use it -#define wxUSE_DEBUGREPORT 1 - -// Generic comment about debugging settings: they are very useful if you don't -// use any other memory leak detection tools such as Purify/BoundsChecker, but -// are probably redundant otherwise. Also, Visual C++ CRT has the same features -// as wxWidgets memory debugging subsystem built in since version 5.0 and you -// may prefer to use it instead of built in memory debugging code because it is -// faster and more fool proof. -// -// Using VC++ CRT memory debugging is enabled by default in debug build (_DEBUG -// is defined) if wxUSE_GLOBAL_MEMORY_OPERATORS is *not* enabled (i.e. is 0) -// and if __NO_VC_CRTDBG__ is not defined. - -// The rest of the options in this section are obsolete and not supported, -// enable them at your own risk. - -// If 1, enables wxDebugContext, for writing error messages to file, etc. If -// __WXDEBUG__ is not defined, will still use the normal memory operators. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_DEBUG_CONTEXT 0 - -// If 1, enables debugging versions of wxObject::new and wxObject::delete *IF* -// __WXDEBUG__ is also defined. -// -// WARNING: this code may not work with all architectures, especially if -// alignment is an issue. This switch is currently ignored for mingw / cygwin -// -// Default is 0 -// -// Recommended setting: 1 if you are not using a memory debugging tool, else 0 -#define wxUSE_MEMORY_TRACING 0 - -// In debug mode, cause new and delete to be redefined globally. -// If this causes problems (e.g. link errors which is a common problem -// especially if you use another library which also redefines the global new -// and delete), set this to 0. -// This switch is currently ignored for mingw / cygwin -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_GLOBAL_MEMORY_OPERATORS 0 - -// In debug mode, causes new to be defined to be WXDEBUG_NEW (see object.h). If -// this causes problems (e.g. link errors), set this to 0. You may need to set -// this to 0 if using templates (at least for VC++). This switch is currently -// ignored for MinGW/Cygwin. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_DEBUG_NEW_ALWAYS 0 - - -// ---------------------------------------------------------------------------- -// Unicode support -// ---------------------------------------------------------------------------- - -// These settings are obsolete: the library is always built in Unicode mode -// now, only set wxUSE_UNICODE to 0 to compile legacy code in ANSI mode if -// absolutely necessary -- updating it is strongly recommended as the ANSI mode -// will disappear completely in future wxWidgets releases. -#ifndef wxUSE_UNICODE - #define wxUSE_UNICODE 1 -#endif - -// wxUSE_WCHAR_T is required by wxWidgets now, don't change. -#define wxUSE_WCHAR_T 1 - -// ---------------------------------------------------------------------------- -// global features -// ---------------------------------------------------------------------------- - -// Compile library in exception-safe mode? If set to 1, the library will try to -// behave correctly in presence of exceptions (even though it still will not -// use the exceptions itself) and notify the user code about any unhandled -// exceptions. If set to 0, propagation of the exceptions through the library -// code will lead to undefined behaviour -- but the code itself will be -// slightly smaller and faster. -// -// Note that like wxUSE_THREADS this option is automatically set to 0 if -// wxNO_EXCEPTIONS is defined. -// -// Default is 1 -// -// Recommended setting: depends on whether you intend to use C++ exceptions -// in your own code (1 if you do, 0 if you don't) -#define wxUSE_EXCEPTIONS 1 - -// Set wxUSE_EXTENDED_RTTI to 1 to use extended RTTI -// -// Default is 0 -// -// Recommended setting: 0 (this is still work in progress...) -#define wxUSE_EXTENDED_RTTI 0 - -// Support for message/error logging. This includes wxLogXXX() functions and -// wxLog and derived classes. Don't set this to 0 unless you really know what -// you are doing. -// -// Default is 1 -// -// Recommended setting: 1 (always) -#define wxUSE_LOG 1 - -// Recommended setting: 1 -#define wxUSE_LOGWINDOW 1 - -// Recommended setting: 1 -#define wxUSE_LOGGUI 1 - -// Recommended setting: 1 -#define wxUSE_LOG_DIALOG 1 - -// Support for command line parsing using wxCmdLineParser class. -// -// Default is 1 -// -// Recommended setting: 1 (can be set to 0 if you don't use the cmd line) -#define wxUSE_CMDLINE_PARSER 1 - -// Support for multithreaded applications: if 1, compile in thread classes -// (thread.h) and make the library a bit more thread safe. Although thread -// support is quite stable by now, you may still consider recompiling the -// library without it if you have no use for it - this will result in a -// somewhat smaller and faster operation. -// -// Notice that if wxNO_THREADS is defined, wxUSE_THREADS is automatically reset -// to 0 in wx/chkconf.h, so, for example, if you set USE_THREADS to 0 in -// build/msw/config.* file this value will have no effect. -// -// Default is 1 -// -// Recommended setting: 0 unless you do plan to develop MT applications -#define wxUSE_THREADS 1 - -// If enabled, compiles wxWidgets streams classes -// -// wx stream classes are used for image IO, process IO redirection, network -// protocols implementation and much more and so disabling this results in a -// lot of other functionality being lost. -// -// Default is 1 -// -// Recommended setting: 1 as setting it to 0 disables many other things -#define wxUSE_STREAMS 1 - -// Support for positional parameters (e.g. %1$d, %2$s ...) in wxVsnprintf. -// Note that if the system's implementation does not support positional -// parameters, setting this to 1 forces the use of the wxWidgets implementation -// of wxVsnprintf. The standard vsnprintf() supports positional parameters on -// many Unix systems but usually doesn't under Windows. -// -// Positional parameters are very useful when translating a program since using -// them in formatting strings allow translators to correctly reorder the -// translated sentences. -// -// Default is 1 -// -// Recommended setting: 1 if you want to support multiple languages -#define wxUSE_PRINTF_POS_PARAMS 1 - -// Enable the use of compiler-specific thread local storage keyword, if any. -// This is used for wxTLS_XXX() macros implementation and normally should use -// the compiler-provided support as it's simpler and more efficient, but is -// disabled under Windows in wx/msw/chkconf.h as it can't be used if wxWidgets -// is used in a dynamically loaded Win32 DLL (i.e. using LoadLibrary()) under -// XP as this triggers a bug in compiler TLS support that results in crashes -// when any TLS variables are used. -// -// If you're absolutely sure that your build of wxWidgets is never going to be -// used in such situation, either because it's not going to be linked from any -// kind of plugin or because you only target Vista or later systems, you can -// set this to 2 to force the use of compiler TLS even under MSW. -// -// Default is 1 meaning that compiler TLS is used only if it's 100% safe. -// -// Recommended setting: 2 if you want to have maximal performance and don't -// care about the scenario described above. -#define wxUSE_COMPILER_TLS 1 - -// ---------------------------------------------------------------------------- -// Interoperability with the standard library. -// ---------------------------------------------------------------------------- - -// Set wxUSE_STL to 1 to enable maximal interoperability with the standard -// library, even at the cost of backwards compatibility. -// -// Default is 0 -// -// Recommended setting: 0 as the options below already provide a relatively -// good level of interoperability and changing this option arguably isn't worth -// diverging from the official builds of the library. -#define wxUSE_STL 0 - -// This is not a real option but is used as the default value for -// wxUSE_STD_IOSTREAM, wxUSE_STD_STRING and wxUSE_STD_CONTAINERS_COMPATIBLY. -// -// Set it to 0 if you want to disable the use of all standard classes -// completely for some reason. -#define wxUSE_STD_DEFAULT 1 - -// Use standard C++ containers where it can be done without breaking backwards -// compatibility. -// -// This provides better interoperability with the standard library, e.g. with -// this option on it's possible to insert std::vector<> into many wxWidgets -// containers directly. -// -// Default is 1. -// -// Recommended setting is 1 unless you want to avoid all dependencies on the -// standard library. -#define wxUSE_STD_CONTAINERS_COMPATIBLY wxUSE_STD_DEFAULT - -// Use standard C++ containers to implement wxVector<>, wxStack<>, wxDList<> -// and wxHashXXX<> classes. If disabled, wxWidgets own (mostly compatible but -// usually more limited) implementations are used which allows to avoid the -// dependency on the C++ run-time library. -// -// Default is 0 for compatibility reasons. -// -// Recommended setting: 1 unless compatibility with the official wxWidgets -// build and/or the existing code is a concern. -#define wxUSE_STD_CONTAINERS 0 - -// Use standard C++ streams if 1 instead of wx streams in some places. If -// disabled, wx streams are used everywhere and wxWidgets doesn't depend on the -// standard streams library. -// -// Notice that enabling this does not replace wx streams with std streams -// everywhere, in a lot of places wx streams are used no matter what. -// -// Default is 1 if compiler supports it. -// -// Recommended setting: 1 if you use the standard streams anyhow and so -// dependency on the standard streams library is not a -// problem -#define wxUSE_STD_IOSTREAM wxUSE_STD_DEFAULT - -// Enable minimal interoperability with the standard C++ string class if 1. -// "Minimal" means that wxString can be constructed from std::string or -// std::wstring but can't be implicitly converted to them. You need to enable -// the option below for the latter. -// -// Default is 1 for most compilers. -// -// Recommended setting: 1 unless you want to ensure your program doesn't use -// the standard C++ library at all. -#define wxUSE_STD_STRING wxUSE_STD_DEFAULT - -// Make wxString as much interchangeable with std::[w]string as possible, in -// particular allow implicit conversion of wxString to either of these classes. -// This comes at a price (or a benefit, depending on your point of view) of not -// allowing implicit conversion to "const char *" and "const wchar_t *". -// -// Because a lot of existing code relies on these conversions, this option is -// disabled by default but can be enabled for your build if you don't care -// about compatibility. -// -// Default is 0 if wxUSE_STL has its default value or 1 if it is enabled. -// -// Recommended setting: 0 to remain compatible with the official builds of -// wxWidgets. -#define wxUSE_STD_STRING_CONV_IN_WXSTRING wxUSE_STL - -// VC++ 4.2 and above allows and but you can't mix -// them. Set this option to 1 to use , 0 to use . -// -// Note that newer compilers (including VC++ 7.1 and later) don't support -// wxUSE_IOSTREAMH == 1 and so will be used anyhow. -// -// Default is 0. -// -// Recommended setting: 0, only set to 1 if you use a really old compiler -#define wxUSE_IOSTREAMH 0 - - -// ---------------------------------------------------------------------------- -// non GUI features selection -// ---------------------------------------------------------------------------- - -// Set wxUSE_LONGLONG to 1 to compile the wxLongLong class. This is a 64 bit -// integer which is implemented in terms of native 64 bit integers if any or -// uses emulation otherwise. -// -// This class is required by wxDateTime and so you should enable it if you want -// to use wxDateTime. For most modern platforms, it will use the native 64 bit -// integers in which case (almost) all of its functions are inline and it -// almost does not take any space, so there should be no reason to switch it -// off. -// -// Recommended setting: 1 -#define wxUSE_LONGLONG 1 - -// Set wxUSE_BASE64 to 1, to compile in Base64 support. This is required for -// storing binary data in wxConfig on most platforms. -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely disabled if you don't use it) -#define wxUSE_BASE64 1 - -// Set this to 1 to be able to use wxEventLoop even in console applications -// (i.e. using base library only, without GUI). This is mostly useful for -// processing socket events but is also necessary to use timers in console -// applications -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely disabled if you don't use it) -#define wxUSE_CONSOLE_EVENTLOOP 1 - -// Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level -// POSIX functions for file access, wxFFile uses ANSI C stdio.h functions. -// -// Default is 1 -// -// Recommended setting: 1 (wxFile is highly recommended as it is required by -// i18n code, wxFileConfig and others) -#define wxUSE_FILE 1 -#define wxUSE_FFILE 1 - -// Use wxFSVolume class providing access to the configured/active mount points -// -// Default is 1 -// -// Recommended setting: 1 (but may be safely disabled if you don't use it) -#define wxUSE_FSVOLUME 1 - -// Use wxStandardPaths class which allows to retrieve some standard locations -// in the file system -// -// Default is 1 -// -// Recommended setting: 1 (may be disabled to save space, but not much) -#define wxUSE_STDPATHS 1 - -// use wxTextBuffer class: required by wxTextFile -#define wxUSE_TEXTBUFFER 1 - -// use wxTextFile class: requires wxFile and wxTextBuffer, required by -// wxFileConfig -#define wxUSE_TEXTFILE 1 - -// i18n support: _() macro, wxLocale class. Requires wxTextFile. -#define wxUSE_INTL 1 - -// Provide wxFoo_l() functions similar to standard foo() functions but taking -// an extra locale parameter. -// -// Notice that this is fully implemented only for the systems providing POSIX -// xlocale support or Microsoft Visual C++ >= 8 (which provides proprietary -// almost-equivalent of xlocale functions), otherwise wxFoo_l() functions will -// only work for the current user locale and "C" locale. You can use -// wxHAS_XLOCALE_SUPPORT to test whether the full support is available. -// -// Default is 1 -// -// Recommended setting: 1 but may be disabled if you are writing programs -// running only in C locale anyhow -#define wxUSE_XLOCALE 1 - -// Set wxUSE_DATETIME to 1 to compile the wxDateTime and related classes which -// allow to manipulate dates, times and time intervals. -// -// Requires: wxUSE_LONGLONG -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_DATETIME 1 - -// Set wxUSE_TIMER to 1 to compile wxTimer class -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_TIMER 1 - -// Use wxStopWatch clas. -// -// Default is 1 -// -// Recommended setting: 1 (needed by wxSocket) -#define wxUSE_STOPWATCH 1 - -// Set wxUSE_FSWATCHER to 1 if you want to enable wxFileSystemWatcher -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_FSWATCHER 1 - -// Setting wxUSE_CONFIG to 1 enables the use of wxConfig and related classes -// which allow the application to store its settings in the persistent -// storage. Setting this to 1 will also enable on-demand creation of the -// global config object in wxApp. -// -// See also wxUSE_CONFIG_NATIVE below. -// -// Recommended setting: 1 -#define wxUSE_CONFIG 1 - -// If wxUSE_CONFIG is 1, you may choose to use either the native config -// classes under Windows (using .INI files under Win16 and the registry under -// Win32) or the portable text file format used by the config classes under -// Unix. -// -// Default is 1 to use native classes. Note that you may still use -// wxFileConfig even if you set this to 1 - just the config object created by -// default for the applications needs will be a wxRegConfig or wxIniConfig and -// not wxFileConfig. -// -// Recommended setting: 1 -#define wxUSE_CONFIG_NATIVE 1 - -// If wxUSE_DIALUP_MANAGER is 1, compile in wxDialUpManager class which allows -// to connect/disconnect from the network and be notified whenever the dial-up -// network connection is established/terminated. Requires wxUSE_DYNAMIC_LOADER. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DIALUP_MANAGER 1 - -// Compile in classes for run-time DLL loading and function calling. -// Required by wxUSE_DIALUP_MANAGER. -// -// This setting is for Win32 only -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DYNLIB_CLASS 1 - -// experimental, don't use for now -#define wxUSE_DYNAMIC_LOADER 1 - -// Set to 1 to use socket classes -#define wxUSE_SOCKETS 1 - -// Set to 1 to use ipv6 socket classes (requires wxUSE_SOCKETS) -// -// Notice that currently setting this option under Windows will result in -// programs which can only run on recent OS versions (with ws2_32.dll -// installed) which is why it is disabled by default. -// -// Default is 1. -// -// Recommended setting: 1 if you need IPv6 support -#define wxUSE_IPV6 0 - -// Set to 1 to enable virtual file systems (required by wxHTML) -#define wxUSE_FILESYSTEM 1 - -// Set to 1 to enable virtual ZIP filesystem (requires wxUSE_FILESYSTEM) -#define wxUSE_FS_ZIP 1 - -// Set to 1 to enable virtual archive filesystem (requires wxUSE_FILESYSTEM) -#define wxUSE_FS_ARCHIVE 1 - -// Set to 1 to enable virtual Internet filesystem (requires wxUSE_FILESYSTEM) -#define wxUSE_FS_INET 1 - -// wxArchive classes for accessing archives such as zip and tar -#define wxUSE_ARCHIVE_STREAMS 1 - -// Set to 1 to compile wxZipInput/OutputStream classes. -#define wxUSE_ZIPSTREAM 1 - -// Set to 1 to compile wxTarInput/OutputStream classes. -#define wxUSE_TARSTREAM 1 - -// Set to 1 to compile wxZlibInput/OutputStream classes. Also required by -// wxUSE_LIBPNG -#define wxUSE_ZLIB 1 - -// If enabled, the code written by Apple will be used to write, in a portable -// way, float on the disk. See extended.c for the license which is different -// from wxWidgets one. -// -// Default is 1. -// -// Recommended setting: 1 unless you don't like the license terms (unlikely) -#define wxUSE_APPLE_IEEE 1 - -// Joystick support class -#define wxUSE_JOYSTICK 1 - -// wxFontEnumerator class -#define wxUSE_FONTENUM 1 - -// wxFontMapper class -#define wxUSE_FONTMAP 1 - -// wxMimeTypesManager class -#define wxUSE_MIMETYPE 1 - -// wxProtocol and related classes: if you want to use either of wxFTP, wxHTTP -// or wxURL you need to set this to 1. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_PROTOCOL 1 - -// The settings for the individual URL schemes -#define wxUSE_PROTOCOL_FILE 1 -#define wxUSE_PROTOCOL_FTP 1 -#define wxUSE_PROTOCOL_HTTP 1 - -// Define this to use wxURL class. -#define wxUSE_URL 1 - -// Define this to use native platform url and protocol support. -// Currently valid only for MS-Windows. -// Note: if you set this to 1, you can open ftp/http/gopher sites -// and obtain a valid input stream for these sites -// even when you set wxUSE_PROTOCOL_FTP/HTTP to 0. -// Doing so reduces the code size. -// -// This code is experimental and subject to change. -#define wxUSE_URL_NATIVE 0 - -// Support for wxVariant class used in several places throughout the library, -// notably in wxDataViewCtrl API. -// -// Default is 1. -// -// Recommended setting: 1 unless you want to reduce the library size as much as -// possible in which case setting this to 0 can gain up to 100KB. -#define wxUSE_VARIANT 1 - -// Support for wxAny class, the successor for wxVariant. -// -// Default is 1. -// -// Recommended setting: 1 unless you want to reduce the library size by a small amount, -// or your compiler cannot for some reason cope with complexity of templates used. -#define wxUSE_ANY 1 - -// Support for regular expression matching via wxRegEx class: enable this to -// use POSIX regular expressions in your code. You need to compile regex -// library from src/regex to use it under Windows. -// -// Default is 0 -// -// Recommended setting: 1 if your compiler supports it, if it doesn't please -// contribute us a makefile for src/regex for it -#define wxUSE_REGEX 1 - -// wxSystemOptions class -#define wxUSE_SYSTEM_OPTIONS 1 - -// wxSound class -#define wxUSE_SOUND 1 - -// Use wxMediaCtrl -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_MEDIACTRL 1 - -// Use wxWidget's XRC XML-based resource system. Recommended. -// -// Default is 1 -// -// Recommended setting: 1 (requires wxUSE_XML) -#define wxUSE_XRC 1 - -// XML parsing classes. Note that their API will change in the future, so -// using wxXmlDocument and wxXmlNode in your app is not recommended. -// -// Default is the same as wxUSE_XRC, i.e. 1 by default. -// -// Recommended setting: 1 (required by XRC) -#define wxUSE_XML wxUSE_XRC - -// Use wxWidget's AUI docking system -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_AUI 1 - -// Use wxWidget's Ribbon classes for interfaces -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_RIBBON 1 - -// Use wxPropertyGrid. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_PROPGRID 1 - -// Use wxStyledTextCtrl, a wxWidgets implementation of Scintilla. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_STC 1 - -// Use wxWidget's web viewing classes -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_WEBVIEW 1 - -// Use the IE wxWebView backend -// -// Default is 1 on MSW -// -// Recommended setting: 1 -#ifdef __WXMSW__ -#define wxUSE_WEBVIEW_IE 1 -#else -#define wxUSE_WEBVIEW_IE 0 -#endif - -// Use the WebKit wxWebView backend -// -// Default is 1 on GTK and OSX -// -// Recommended setting: 1 -#if defined(__WXGTK__) || defined(__WXOSX__) -#define wxUSE_WEBVIEW_WEBKIT 1 -#else -#define wxUSE_WEBVIEW_WEBKIT 0 -#endif - -// Enable wxGraphicsContext and related classes for a modern 2D drawing API. -// -// Default is 1 except if you're using a non-Microsoft compiler under Windows -// as only MSVC is known to ship with at least gdiplus.h which is required to -// compile GDI+-based implementation of wxGraphicsContext (MSVC10 and later -// versions also include d2d1.h required for Direct2D-based implementation). -// For other compilers (e.g. mingw32) you may need to install the headers (and -// just the headers) yourself. If you do, change the setting below manually. -// -// Recommended setting: 1 if supported by the compilation environment - -// notice that we can't use wxCHECK_VISUALC_VERSION() here as this file is -// included from wx/platform.h before wxCHECK_VISUALC_VERSION() is defined -#ifdef _MSC_VER -# define wxUSE_GRAPHICS_CONTEXT 1 -#else - // Disable support for other Windows compilers, enable it if your compiler - // comes with new enough SDK or you installed the headers manually. - // - // Notice that this will be set by configure under non-Windows platforms - // anyhow so the value there is not important. -# define wxUSE_GRAPHICS_CONTEXT 0 -#endif - -// Enable wxGraphicsContext implementation using Cairo library. -// -// This is not needed under Windows and detected automatically by configure -// under other systems, however you may set this to 1 manually if you installed -// Cairo under Windows yourself and prefer to use it instead the native GDI+ -// implementation. -// -// Default is 0 -// -// Recommended setting: 0 -#define wxUSE_CAIRO 0 - - -// ---------------------------------------------------------------------------- -// Individual GUI controls -// ---------------------------------------------------------------------------- - -// You must set wxUSE_CONTROLS to 1 if you are using any controls at all -// (without it, wxControl class is not compiled) -// -// Default is 1 -// -// Recommended setting: 1 (don't change except for very special programs) -#define wxUSE_CONTROLS 1 - -// Support markup in control labels, i.e. provide wxControl::SetLabelMarkup(). -// Currently markup is supported only by a few controls and only some ports but -// their number will increase with time. -// -// Default is 1 -// -// Recommended setting: 1 (may be set to 0 if you want to save on code size) -#define wxUSE_MARKUP 1 - -// wxPopupWindow class is a top level transient window. It is currently used -// to implement wxTipWindow -// -// Default is 1 -// -// Recommended setting: 1 (may be set to 0 if you don't wxUSE_TIPWINDOW) -#define wxUSE_POPUPWIN 1 - -// wxTipWindow allows to implement the custom tooltips, it is used by the -// context help classes. Requires wxUSE_POPUPWIN. -// -// Default is 1 -// -// Recommended setting: 1 (may be set to 0) -#define wxUSE_TIPWINDOW 1 - -// Each of the settings below corresponds to one wxWidgets control. They are -// all switched on by default but may be disabled if you are sure that your -// program (including any standard dialogs it can show!) doesn't need them and -// if you desperately want to save some space. If you use any of these you must -// set wxUSE_CONTROLS as well. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_ACTIVITYINDICATOR 1 // wxActivityIndicator -#define wxUSE_ANIMATIONCTRL 1 // wxAnimationCtrl -#define wxUSE_BANNERWINDOW 1 // wxBannerWindow -#define wxUSE_BUTTON 1 // wxButton -#define wxUSE_BMPBUTTON 1 // wxBitmapButton -#define wxUSE_CALENDARCTRL 1 // wxCalendarCtrl -#define wxUSE_CHECKBOX 1 // wxCheckBox -#define wxUSE_CHECKLISTBOX 1 // wxCheckListBox (requires wxUSE_OWNER_DRAWN) -#define wxUSE_CHOICE 1 // wxChoice -#define wxUSE_COLLPANE 1 // wxCollapsiblePane -#define wxUSE_COLOURPICKERCTRL 1 // wxColourPickerCtrl -#define wxUSE_COMBOBOX 1 // wxComboBox -#define wxUSE_COMMANDLINKBUTTON 1 // wxCommandLinkButton -#define wxUSE_DATAVIEWCTRL 1 // wxDataViewCtrl -#define wxUSE_DATEPICKCTRL 1 // wxDatePickerCtrl -#define wxUSE_DIRPICKERCTRL 1 // wxDirPickerCtrl -#define wxUSE_EDITABLELISTBOX 1 // wxEditableListBox -#define wxUSE_FILECTRL 1 // wxFileCtrl -#define wxUSE_FILEPICKERCTRL 1 // wxFilePickerCtrl -#define wxUSE_FONTPICKERCTRL 1 // wxFontPickerCtrl -#define wxUSE_GAUGE 1 // wxGauge -#define wxUSE_HEADERCTRL 1 // wxHeaderCtrl -#define wxUSE_HYPERLINKCTRL 1 // wxHyperlinkCtrl -#define wxUSE_LISTBOX 1 // wxListBox -#define wxUSE_LISTCTRL 1 // wxListCtrl -#define wxUSE_RADIOBOX 1 // wxRadioBox -#define wxUSE_RADIOBTN 1 // wxRadioButton -#define wxUSE_RICHMSGDLG 1 // wxRichMessageDialog -#define wxUSE_SCROLLBAR 1 // wxScrollBar -#define wxUSE_SEARCHCTRL 1 // wxSearchCtrl -#define wxUSE_SLIDER 1 // wxSlider -#define wxUSE_SPINBTN 1 // wxSpinButton -#define wxUSE_SPINCTRL 1 // wxSpinCtrl -#define wxUSE_STATBOX 1 // wxStaticBox -#define wxUSE_STATLINE 1 // wxStaticLine -#define wxUSE_STATTEXT 1 // wxStaticText -#define wxUSE_STATBMP 1 // wxStaticBitmap -#define wxUSE_TEXTCTRL 1 // wxTextCtrl -#define wxUSE_TIMEPICKCTRL 1 // wxTimePickerCtrl -#define wxUSE_TOGGLEBTN 1 // requires wxButton -#define wxUSE_TREECTRL 1 // wxTreeCtrl -#define wxUSE_TREELISTCTRL 1 // wxTreeListCtrl - -// Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR -// below either wxStatusBar95 or a generic wxStatusBar will be used. -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_STATUSBAR 1 - -// Two status bar implementations are available under Win32: the generic one -// or the wrapper around native control. For native look and feel the native -// version should be used. -// -// Default is 1 for the platforms where native status bar is supported. -// -// Recommended setting: 1 (there is no advantage in using the generic one) -#define wxUSE_NATIVE_STATUSBAR 1 - -// wxToolBar related settings: if wxUSE_TOOLBAR is 0, don't compile any toolbar -// classes at all. Otherwise, use the native toolbar class unless -// wxUSE_TOOLBAR_NATIVE is 0. -// -// Default is 1 for all settings. -// -// Recommended setting: 1 for wxUSE_TOOLBAR and wxUSE_TOOLBAR_NATIVE. -#define wxUSE_TOOLBAR 1 -#define wxUSE_TOOLBAR_NATIVE 1 - -// wxNotebook is a control with several "tabs" located on one of its sides. It -// may be used to logically organise the data presented to the user instead of -// putting everything in one huge dialog. It replaces wxTabControl and related -// classes of wxWin 1.6x. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_NOTEBOOK 1 - -// wxListbook control is similar to wxNotebook but uses wxListCtrl instead of -// the tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_LISTBOOK 1 - -// wxChoicebook control is similar to wxNotebook but uses wxChoice instead of -// the tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_CHOICEBOOK 1 - -// wxTreebook control is similar to wxNotebook but uses wxTreeCtrl instead of -// the tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_TREEBOOK 1 - -// wxToolbook control is similar to wxNotebook but uses wxToolBar instead of -// tabs -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_TOOLBOOK 1 - -// wxTaskBarIcon is a small notification icon shown in the system toolbar or -// dock. -// -// Default is 1. -// -// Recommended setting: 1 (but can be set to 0 if you don't need it) -#define wxUSE_TASKBARICON 1 - -// wxGrid class -// -// Default is 1, set to 0 to cut down compilation time and binaries size if you -// don't use it. -// -// Recommended setting: 1 -// -#define wxUSE_GRID 1 - -// wxMiniFrame class: a frame with narrow title bar -// -// Default is 1. -// -// Recommended setting: 1 (it doesn't cost almost anything) -#define wxUSE_MINIFRAME 1 - -// wxComboCtrl and related classes: combobox with custom popup window and -// not necessarily a listbox. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 except for wxUniv where it -// it used by wxComboBox -#define wxUSE_COMBOCTRL 1 - -// wxOwnerDrawnComboBox is a custom combobox allowing to paint the combobox -// items. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0, except where it is -// needed as a base class for generic wxBitmapComboBox. -#define wxUSE_ODCOMBOBOX 1 - -// wxBitmapComboBox is a combobox that can have images in front of text items. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 -#define wxUSE_BITMAPCOMBOBOX 1 - -// wxRearrangeCtrl is a wxCheckListBox with two buttons allowing to move items -// up and down in it. It is also used as part of wxRearrangeDialog. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 (currently used only by -// wxHeaderCtrl) -#define wxUSE_REARRANGECTRL 1 - -// wxAddRemoveCtrl is a composite control containing a control showing some -// items (e.g. wxListBox, wxListCtrl, wxTreeCtrl, wxDataViewCtrl, ...) and "+"/ -// "-" buttons allowing to add and remove items to/from the control. -// -// Default is 1. -// -// Recommended setting: 1 but can be safely set to 0 if you don't need it (not -// used by the library itself). -#define wxUSE_ADDREMOVECTRL 1 - -// ---------------------------------------------------------------------------- -// Miscellaneous GUI stuff -// ---------------------------------------------------------------------------- - -// wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar) -#define wxUSE_ACCEL 1 - -// Use the standard art provider. The icons returned by this provider are -// embedded into the library as XPMs so disabling it reduces the library size -// somewhat but this should only be done if you use your own custom art -// provider returning the icons or never use any icons not provided by the -// native art provider (which might not be implemented at all for some -// platforms) or by the Tango icons provider (if it's not itself disabled -// below). -// -// Default is 1. -// -// Recommended setting: 1 unless you use your own custom art provider. -#define wxUSE_ARTPROVIDER_STD 1 - -// Use art provider providing Tango icons: this art provider has higher quality -// icons than the default ones using smaller size XPM icons without -// transparency but the embedded PNG icons add to the library size. -// -// Default is 1 under non-GTK ports. Under wxGTK the native art provider using -// the GTK+ stock icons replaces it so it is normally not necessary. -// -// Recommended setting: 1 but can be turned off to reduce the library size. -#define wxUSE_ARTPROVIDER_TANGO 1 - -// Hotkey support (currently Windows only) -#define wxUSE_HOTKEY 1 - -// Use wxCaret: a class implementing a "cursor" in a text control (called caret -// under Windows). -// -// Default is 1. -// -// Recommended setting: 1 (can be safely set to 0, not used by the library) -#define wxUSE_CARET 1 - -// Use wxDisplay class: it allows enumerating all displays on a system and -// their geometries as well as finding the display on which the given point or -// window lies. -// -// Default is 1. -// -// Recommended setting: 1 if you need it, can be safely set to 0 otherwise -#define wxUSE_DISPLAY 1 - -// Miscellaneous geometry code: needed for Canvas library -#define wxUSE_GEOMETRY 1 - -// Use wxImageList. This class is needed by wxNotebook, wxTreeCtrl and -// wxListCtrl. -// -// Default is 1. -// -// Recommended setting: 1 (set it to 0 if you don't use any of the controls -// enumerated above, then this class is mostly useless too) -#define wxUSE_IMAGLIST 1 - -// Use wxInfoBar class. -// -// Default is 1. -// -// Recommended setting: 1 (but can be disabled without problems as nothing -// depends on it) -#define wxUSE_INFOBAR 1 - -// Use wxMenu, wxMenuBar, wxMenuItem. -// -// Default is 1. -// -// Recommended setting: 1 (can't be disabled under MSW) -#define wxUSE_MENUS 1 - -// Use wxNotificationMessage. -// -// wxNotificationMessage allows to show non-intrusive messages to the user -// using balloons, banners, popups or whatever is the appropriate method for -// the current platform. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_NOTIFICATION_MESSAGE 1 - -// wxPreferencesEditor provides a common API for different ways of presenting -// the standard "Preferences" or "Properties" dialog under different platforms -// (e.g. some use modal dialogs, some use modeless ones; some apply the changes -// immediately while others require an explicit "Apply" button). -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely disabled if you don't use it) -#define wxUSE_PREFERENCES_EDITOR 1 - -// wxRichToolTip is a customizable tooltip class which has more functionality -// than the stock (but native, unlike this class) wxToolTip. -// -// Default is 1. -// -// Recommended setting: 1 (but can be safely set to 0 if you don't need it) -#define wxUSE_RICHTOOLTIP 1 - -// Use wxSashWindow class. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_SASH 1 - -// Use wxSplitterWindow class. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_SPLITTER 1 - -// Use wxToolTip and wxWindow::Set/GetToolTip() methods. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_TOOLTIPS 1 - -// wxValidator class and related methods -#define wxUSE_VALIDATORS 1 - -// Use reference counted ID management: this means that wxWidgets will track -// the automatically allocated ids (those used when you use wxID_ANY when -// creating a window, menu or toolbar item &c) instead of just supposing that -// the program never runs out of them. This is mostly useful only under wxMSW -// where the total ids range is limited to SHRT_MIN..SHRT_MAX and where -// long-running programs can run into problems with ids reuse without this. On -// the other platforms, where the ids have the full int range, this shouldn't -// be necessary. -#ifdef __WXMSW__ -#define wxUSE_AUTOID_MANAGEMENT 1 -#else -#define wxUSE_AUTOID_MANAGEMENT 0 -#endif - -// ---------------------------------------------------------------------------- -// common dialogs -// ---------------------------------------------------------------------------- - -// On rare occasions (e.g. using DJGPP) may want to omit common dialogs (e.g. -// file selector, printer dialog). Switching this off also switches off the -// printing architecture and interactive wxPrinterDC. -// -// Default is 1 -// -// Recommended setting: 1 (unless it really doesn't work) -#define wxUSE_COMMON_DIALOGS 1 - -// wxBusyInfo displays window with message when app is busy. Works in same way -// as wxBusyCursor -#define wxUSE_BUSYINFO 1 - -// Use single/multiple choice dialogs. -// -// Default is 1 -// -// Recommended setting: 1 (used in the library itself) -#define wxUSE_CHOICEDLG 1 - -// Use colour picker dialog -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_COLOURDLG 1 - -// wxDirDlg class for getting a directory name from user -#define wxUSE_DIRDLG 1 - -// TODO: setting to choose the generic or native one - -// Use file open/save dialogs. -// -// Default is 1 -// -// Recommended setting: 1 (used in many places in the library itself) -#define wxUSE_FILEDLG 1 - -// Use find/replace dialogs. -// -// Default is 1 -// -// Recommended setting: 1 (but may be safely set to 0) -#define wxUSE_FINDREPLDLG 1 - -// Use font picker dialog -// -// Default is 1 -// -// Recommended setting: 1 (used in the library itself) -#define wxUSE_FONTDLG 1 - -// Use wxMessageDialog and wxMessageBox. -// -// Default is 1 -// -// Recommended setting: 1 (used in the library itself) -#define wxUSE_MSGDLG 1 - -// progress dialog class for lengthy operations -#define wxUSE_PROGRESSDLG 1 - -// Set to 0 to disable the use of the native progress dialog (currently only -// available under MSW and suffering from some bugs there, hence this option). -#define wxUSE_NATIVE_PROGRESSDLG 1 - -// support for startup tips (wxShowTip &c) -#define wxUSE_STARTUP_TIPS 1 - -// text entry dialog and wxGetTextFromUser function -#define wxUSE_TEXTDLG 1 - -// number entry dialog -#define wxUSE_NUMBERDLG 1 - -// splash screen class -#define wxUSE_SPLASH 1 - -// wizards -#define wxUSE_WIZARDDLG 1 - -// Compile in wxAboutBox() function showing the standard "About" dialog. -// -// Default is 1 -// -// Recommended setting: 1 but can be set to 0 to save some space if you don't -// use this function -#define wxUSE_ABOUTDLG 1 - -// wxFileHistory class -// -// Default is 1 -// -// Recommended setting: 1 -#define wxUSE_FILE_HISTORY 1 - -// ---------------------------------------------------------------------------- -// Metafiles support -// ---------------------------------------------------------------------------- - -// Windows supports the graphics format known as metafile which is, though not -// portable, is widely used under Windows and so is supported by wxWin (under -// Windows only, of course). Win16 (Win3.1) used the so-called "Window -// MetaFiles" or WMFs which were replaced with "Enhanced MetaFiles" or EMFs in -// Win32 (Win9x, NT, 2000). Both of these are supported in wxWin and, by -// default, WMFs will be used under Win16 and EMFs under Win32. This may be -// changed by setting wxUSE_WIN_METAFILES_ALWAYS to 1 and/or setting -// wxUSE_ENH_METAFILE to 0. You may also set wxUSE_METAFILE to 0 to not compile -// in any metafile related classes at all. -// -// Default is 1 for wxUSE_ENH_METAFILE and 0 for wxUSE_WIN_METAFILES_ALWAYS. -// -// Recommended setting: default or 0 for everything for portable programs. -#define wxUSE_METAFILE 1 -#define wxUSE_ENH_METAFILE 1 -#define wxUSE_WIN_METAFILES_ALWAYS 0 - -// ---------------------------------------------------------------------------- -// Big GUI components -// ---------------------------------------------------------------------------- - -// Set to 0 to disable MDI support. -// -// Requires wxUSE_NOTEBOOK under platforms other than MSW. -// -// Default is 1. -// -// Recommended setting: 1, can be safely set to 0. -#define wxUSE_MDI 1 - -// Set to 0 to disable document/view architecture -#define wxUSE_DOC_VIEW_ARCHITECTURE 1 - -// Set to 0 to disable MDI document/view architecture -// -// Requires wxUSE_MDI && wxUSE_DOC_VIEW_ARCHITECTURE -#define wxUSE_MDI_ARCHITECTURE 1 - -// Set to 0 to disable print/preview architecture code -#define wxUSE_PRINTING_ARCHITECTURE 1 - -// wxHTML sublibrary allows to display HTML in wxWindow programs and much, -// much more. -// -// Default is 1. -// -// Recommended setting: 1 (wxHTML is great!), set to 0 if you want compile a -// smaller library. -#define wxUSE_HTML 1 - -// Setting wxUSE_GLCANVAS to 1 enables OpenGL support. You need to have OpenGL -// headers and libraries to be able to compile the library with wxUSE_GLCANVAS -// set to 1 and, under Windows, also to add opengl32.lib and glu32.lib to the -// list of libraries used to link your application (although this is done -// implicitly for Microsoft Visual C++ users). -// -// Default is 1. -// -// Recommended setting: 1 if you intend to use OpenGL, can be safely set to 0 -// otherwise. -#define wxUSE_GLCANVAS 1 - -// wxRichTextCtrl allows editing of styled text. -// -// Default is 1. -// -// Recommended setting: 1, set to 0 if you want compile a -// smaller library. -#define wxUSE_RICHTEXT 1 - -// ---------------------------------------------------------------------------- -// Data transfer -// ---------------------------------------------------------------------------- - -// Use wxClipboard class for clipboard copy/paste. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_CLIPBOARD 1 - -// Use wxDataObject and related classes. Needed for clipboard and OLE drag and -// drop -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DATAOBJ 1 - -// Use wxDropTarget and wxDropSource classes for drag and drop (this is -// different from "built in" drag and drop in wxTreeCtrl which is always -// available). Requires wxUSE_DATAOBJ. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_DRAG_AND_DROP 1 - -// Use wxAccessible for enhanced and customisable accessibility. -// Depends on wxUSE_OLE. -// -// Default is 0. -// -// Recommended setting (at present): 0 -#define wxUSE_ACCESSIBILITY 0 - -// ---------------------------------------------------------------------------- -// miscellaneous settings -// ---------------------------------------------------------------------------- - -// wxSingleInstanceChecker class allows to verify at startup if another program -// instance is running. -// -// Default is 1 -// -// Recommended setting: 1 (the class is tiny, disabling it won't save much -// space) -#define wxUSE_SNGLINST_CHECKER 1 - -#define wxUSE_DRAGIMAGE 1 - -#define wxUSE_IPC 1 - // 0 for no interprocess comms -#define wxUSE_HELP 1 - // 0 for no help facility - -// Should we use MS HTML help for wxHelpController? If disabled, neither -// wxCHMHelpController nor wxBestHelpController are available. -// -// Default is 1 under MSW, 0 is always used for the other platforms. -// -// Recommended setting: 1, only set to 0 if you have trouble compiling -// wxCHMHelpController (could be a problem with really ancient compilers) -#define wxUSE_MS_HTML_HELP 1 - - -// Use wxHTML-based help controller? -#define wxUSE_WXHTML_HELP 1 - -#define wxUSE_CONSTRAINTS 1 - // 0 for no window layout constraint system - -#define wxUSE_SPLINES 1 - // 0 for no splines - -#define wxUSE_MOUSEWHEEL 1 - // Include mouse wheel support - -// Compile wxUIActionSimulator class? -#define wxUSE_UIACTIONSIMULATOR 1 - -// ---------------------------------------------------------------------------- -// wxDC classes for various output formats -// ---------------------------------------------------------------------------- - -// Set to 1 for PostScript device context. -#define wxUSE_POSTSCRIPT 0 - -// Set to 1 to use font metric files in GetTextExtent -#define wxUSE_AFM_FOR_POSTSCRIPT 1 - -// Set to 1 to compile in support for wxSVGFileDC, a wxDC subclass which allows -// to create files in SVG (Scalable Vector Graphics) format. -#define wxUSE_SVG 1 - -// Should wxDC provide SetTransformMatrix() and related methods? -// -// Default is 1 but can be set to 0 if this functionality is not used. Notice -// that currently only wxMSW supports this so setting this to 0 doesn't change -// much for non-MSW platforms (although it will still save a few bytes -// probably). -// -// Recommended setting: 1. -#define wxUSE_DC_TRANSFORM_MATRIX 1 - -// ---------------------------------------------------------------------------- -// image format support -// ---------------------------------------------------------------------------- - -// wxImage supports many different image formats which can be configured at -// compile-time. BMP is always supported, others are optional and can be safely -// disabled if you don't plan to use images in such format sometimes saving -// substantial amount of code in the final library. -// -// Some formats require an extra library which is included in wxWin sources -// which is mentioned if it is the case. - -// Set to 1 for wxImage support (recommended). -#define wxUSE_IMAGE 1 - -// Set to 1 for PNG format support (requires libpng). Also requires wxUSE_ZLIB. -#define wxUSE_LIBPNG 1 - -// Set to 1 for JPEG format support (requires libjpeg) -#define wxUSE_LIBJPEG 1 - -// Set to 1 for TIFF format support (requires libtiff) -#define wxUSE_LIBTIFF 1 - -// Set to 1 for TGA format support (loading only) -#define wxUSE_TGA 1 - -// Set to 1 for GIF format support -#define wxUSE_GIF 1 - -// Set to 1 for PNM format support -#define wxUSE_PNM 1 - -// Set to 1 for PCX format support -#define wxUSE_PCX 1 - -// Set to 1 for IFF format support (Amiga format) -#define wxUSE_IFF 0 - -// Set to 1 for XPM format support -#define wxUSE_XPM 1 - -// Set to 1 for MS Icons and Cursors format support -#define wxUSE_ICO_CUR 1 - -// Set to 1 to compile in wxPalette class -#define wxUSE_PALETTE 1 - -// ---------------------------------------------------------------------------- -// wxUniversal-only options -// ---------------------------------------------------------------------------- - -// Set to 1 to enable compilation of all themes, this is the default -#define wxUSE_ALL_THEMES 1 - -// Set to 1 to enable the compilation of individual theme if wxUSE_ALL_THEMES -// is unset, if it is set these options are not used; notice that metal theme -// uses Win32 one -#define wxUSE_THEME_GTK 0 -#define wxUSE_THEME_METAL 0 -#define wxUSE_THEME_MONO 0 -#define wxUSE_THEME_WIN32 0 - - -/* --- end common options --- */ - -/* --- start MSW options --- */ -// ---------------------------------------------------------------------------- -// Graphics backends choices for Windows -// ---------------------------------------------------------------------------- - -// The options here are only taken into account if wxUSE_GRAPHICS_CONTEXT is 1. - -// Enable support for GDI+-based implementation of wxGraphicsContext. -// -// Default is 1. -// -// Recommended setting: 1 if you need to support XP, as Direct2D is not -// available there. -#define wxUSE_GRAPHICS_GDIPLUS wxUSE_GRAPHICS_CONTEXT - -// Enable support for Direct2D-based implementation of wxGraphicsContext. -// -// Default is 1 for compilers which support it, i.e. VC10+ currently. If you -// use an earlier MSVC version or another compiler and installed the necessary -// SDK components manually, you need to change this setting. -// -// Recommended setting: 1 for faster and better quality graphics under Windows -// 7 and later systems (if wxUSE_GRAPHICS_GDIPLUS is also enabled, earlier -// systems will fall back on using GDI+). -#if defined(_MSC_VER) && _MSC_VER >= 1600 - #define wxUSE_GRAPHICS_DIRECT2D wxUSE_GRAPHICS_CONTEXT -#else - #define wxUSE_GRAPHICS_DIRECT2D 0 -#endif - -// ---------------------------------------------------------------------------- -// Windows-only settings -// ---------------------------------------------------------------------------- - -// Set this to 1 for generic OLE support: this is required for drag-and-drop, -// clipboard, OLE Automation. Only set it to 0 if your compiler is very old and -// can't compile/doesn't have the OLE headers. -// -// Default is 1. -// -// Recommended setting: 1 -#define wxUSE_OLE 1 - -// Set this to 1 to enable wxAutomationObject class. -// -// Default is 1. -// -// Recommended setting: 1 if you need to control other applications via OLE -// Automation, can be safely set to 0 otherwise -#define wxUSE_OLE_AUTOMATION 1 - -// Set this to 1 to enable wxActiveXContainer class allowing to embed OLE -// controls in wx. -// -// Default is 1. -// -// Recommended setting: 1, required by wxMediaCtrl -#define wxUSE_ACTIVEX 1 - -// Enable WinRT support -// -// Default is 1 for compilers which support it, i.e. VS2012+ currently. If you -// use an earlier MSVC version or another compiler and installed the necessary -// SDK components manually, you need to change this setting. -// -// Recommended setting: 1 -#if defined(_MSC_VER) && _MSC_VER >= 1700 - #define wxUSE_WINRT 1 -#else - #define wxUSE_WINRT 0 -#endif - -// wxDC caching implementation -#define wxUSE_DC_CACHEING 1 - -// Set this to 1 to enable wxDIB class used internally for manipulating -// wxBitmap data. -// -// Default is 1, set it to 0 only if you don't use wxImage neither -// -// Recommended setting: 1 (without it conversion to/from wxImage won't work) -#define wxUSE_WXDIB 1 - -// Set to 0 to disable PostScript print/preview architecture code under Windows -// (just use Windows printing). -#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 1 - -// Set this to 1 to compile in wxRegKey class. -// -// Default is 1 -// -// Recommended setting: 1, this is used internally by wx in a few places -#define wxUSE_REGKEY 1 - -// Set this to 1 to use RICHEDIT controls for wxTextCtrl with style wxTE_RICH -// which allows to put more than ~32Kb of text in it even under Win9x (NT -// doesn't have such limitation). -// -// Default is 1 for compilers which support it -// -// Recommended setting: 1, only set it to 0 if your compiler doesn't have -// or can't compile -#define wxUSE_RICHEDIT 1 - -// Set this to 1 to use extra features of richedit v2 and later controls -// -// Default is 1 for compilers which support it -// -// Recommended setting: 1 -#define wxUSE_RICHEDIT2 1 - -// Set this to 1 to enable support for the owner-drawn menu and listboxes. This -// is required by wxUSE_CHECKLISTBOX. -// -// Default is 1. -// -// Recommended setting: 1, set to 0 for a small library size reduction -#define wxUSE_OWNER_DRAWN 1 - -// Set this to 1 to enable MSW-specific wxTaskBarIcon::ShowBalloon() method. It -// is required by native wxNotificationMessage implementation. -// -// Default is 1 but disabled in wx/msw/chkconf.h if SDK is too old to contain -// the necessary declarations. -// -// Recommended setting: 1, set to 0 for a tiny library size reduction -#define wxUSE_TASKBARICON_BALLOONS 1 - -// Set this to 1 to enable following functionality added in Windows 7: thumbnail -// representations, thumbnail toolbars, notification and status overlays, -// progress indicators and jump lists. -// -// Default is 1. -// -// Recommended setting: 1, set to 0 for a tiny library size reduction -#define wxUSE_TASKBARBUTTON 1 - -// Set to 1 to compile MS Windows XP theme engine support -#define wxUSE_UXTHEME 1 - -// Set to 1 to use InkEdit control (Tablet PC), if available -#define wxUSE_INKEDIT 0 - -// Set to 1 to enable .INI files based wxConfig implementation (wxIniConfig) -// -// Default is 0. -// -// Recommended setting: 0, nobody uses .INI files any more -#define wxUSE_INICONF 0 - -// ---------------------------------------------------------------------------- -// Generic versions of native controls -// ---------------------------------------------------------------------------- - -// Set this to 1 to be able to use wxDatePickerCtrlGeneric in addition to the -// native wxDatePickerCtrl -// -// Default is 0. -// -// Recommended setting: 0, this is mainly used for testing -#define wxUSE_DATEPICKCTRL_GENERIC 0 - -// Set this to 1 to be able to use wxTimePickerCtrlGeneric in addition to the -// native wxTimePickerCtrl for the platforms that have the latter (MSW). -// -// Default is 0. -// -// Recommended setting: 0, this is mainly used for testing -#define wxUSE_TIMEPICKCTRL_GENERIC 0 - -// ---------------------------------------------------------------------------- -// Crash debugging helpers -// ---------------------------------------------------------------------------- - -// Set this to 1 to be able to use wxCrashReport::Generate() to create mini -// dumps of your program when it crashes (or at any other moment) -// -// Default is 1 if supported by the compiler (VC++ and recent BC++ only). -// -// Recommended setting: 1, set to 0 if your programs never crash -#define wxUSE_CRASHREPORT 1 -/* --- end MSW options --- */ - -#endif // _WX_SETUP_H_ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxbase310u_gcc_custom.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxbase310u_gcc_custom.dll deleted file mode 100644 index ebd3b432..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxbase310u_gcc_custom.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxbase310u_net_gcc_custom.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxbase310u_net_gcc_custom.dll deleted file mode 100644 index 58800c6b..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxbase310u_net_gcc_custom.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxbase310u_xml_gcc_custom.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxbase310u_xml_gcc_custom.dll deleted file mode 100644 index 2b64843b..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxbase310u_xml_gcc_custom.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_adv_gcc_custom.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_adv_gcc_custom.dll deleted file mode 100644 index f789cec1..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_adv_gcc_custom.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_aui_gcc_custom.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_aui_gcc_custom.dll deleted file mode 100644 index 9ac5ea4e..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_aui_gcc_custom.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_core_gcc_custom.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_core_gcc_custom.dll deleted file mode 100644 index fcec6b70..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_core_gcc_custom.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_gl_gcc_custom.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_gl_gcc_custom.dll deleted file mode 100644 index 66b86d69..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_gl_gcc_custom.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_html_gcc_custom.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_html_gcc_custom.dll deleted file mode 100644 index 0fab11c8..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_html_gcc_custom.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_media_gcc_custom.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_media_gcc_custom.dll deleted file mode 100644 index 124f205c..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_media_gcc_custom.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_propgrid_gcc_custom.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_propgrid_gcc_custom.dll deleted file mode 100644 index 658c34cc..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_propgrid_gcc_custom.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_ribbon_gcc_custom.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_ribbon_gcc_custom.dll deleted file mode 100644 index 9f4b09d5..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_ribbon_gcc_custom.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_richtext_gcc_custom.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_richtext_gcc_custom.dll deleted file mode 100644 index 0a0676f0..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_richtext_gcc_custom.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_stc_gcc_custom.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_stc_gcc_custom.dll deleted file mode 100644 index f08899a7..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_stc_gcc_custom.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_webview_gcc_custom.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_webview_gcc_custom.dll deleted file mode 100644 index 7b7f0f60..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_webview_gcc_custom.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_xrc_gcc_custom.dll b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_xrc_gcc_custom.dll deleted file mode 100644 index e815855b..00000000 Binary files a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Alien/wxWidgets/msw_3_1_0_uni_gcc_3_4/lib/wxmsw310u_xrc_gcc_custom.dll and /dev/null differ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Cwd.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Cwd.pm deleted file mode 100644 index 58af9352..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Cwd.pm +++ /dev/null @@ -1,840 +0,0 @@ -package Cwd; -use strict; -use Exporter; - - -our $VERSION = '3.74'; -my $xs_version = $VERSION; -$VERSION =~ tr/_//d; - -our @ISA = qw/ Exporter /; -our @EXPORT = qw(cwd getcwd fastcwd fastgetcwd); -push @EXPORT, qw(getdcwd) if $^O eq 'MSWin32'; -our @EXPORT_OK = qw(chdir abs_path fast_abs_path realpath fast_realpath); - -# sys_cwd may keep the builtin command - -# All the functionality of this module may provided by builtins, -# there is no sense to process the rest of the file. -# The best choice may be to have this in BEGIN, but how to return from BEGIN? - -if ($^O eq 'os2') { - local $^W = 0; - - *cwd = defined &sys_cwd ? \&sys_cwd : \&_os2_cwd; - *getcwd = \&cwd; - *fastgetcwd = \&cwd; - *fastcwd = \&cwd; - - *fast_abs_path = \&sys_abspath if defined &sys_abspath; - *abs_path = \&fast_abs_path; - *realpath = \&fast_abs_path; - *fast_realpath = \&fast_abs_path; - - return 1; -} - -# Need to look up the feature settings on VMS. The preferred way is to use the -# VMS::Feature module, but that may not be available to dual life modules. - -my $use_vms_feature; -BEGIN { - if ($^O eq 'VMS') { - if (eval { local $SIG{__DIE__}; - local @INC = @INC; - pop @INC if $INC[-1] eq '.'; - require VMS::Feature; }) { - $use_vms_feature = 1; - } - } -} - -# Need to look up the UNIX report mode. This may become a dynamic mode -# in the future. -sub _vms_unix_rpt { - my $unix_rpt; - if ($use_vms_feature) { - $unix_rpt = VMS::Feature::current("filename_unix_report"); - } else { - my $env_unix_rpt = $ENV{'DECC$FILENAME_UNIX_REPORT'} || ''; - $unix_rpt = $env_unix_rpt =~ /^[ET1]/i; - } - return $unix_rpt; -} - -# Need to look up the EFS character set mode. This may become a dynamic -# mode in the future. -sub _vms_efs { - my $efs; - if ($use_vms_feature) { - $efs = VMS::Feature::current("efs_charset"); - } else { - my $env_efs = $ENV{'DECC$EFS_CHARSET'} || ''; - $efs = $env_efs =~ /^[ET1]/i; - } - return $efs; -} - - -# If loading the XS stuff doesn't work, we can fall back to pure perl -if(! defined &getcwd && defined &DynaLoader::boot_DynaLoader) { # skipped on miniperl - require XSLoader; - XSLoader::load( __PACKAGE__, $xs_version); -} - -# Big nasty table of function aliases -my %METHOD_MAP = - ( - VMS => - { - cwd => '_vms_cwd', - getcwd => '_vms_cwd', - fastcwd => '_vms_cwd', - fastgetcwd => '_vms_cwd', - abs_path => '_vms_abs_path', - fast_abs_path => '_vms_abs_path', - }, - - MSWin32 => - { - # We assume that &_NT_cwd is defined as an XSUB or in the core. - cwd => '_NT_cwd', - getcwd => '_NT_cwd', - fastcwd => '_NT_cwd', - fastgetcwd => '_NT_cwd', - abs_path => 'fast_abs_path', - realpath => 'fast_abs_path', - }, - - dos => - { - cwd => '_dos_cwd', - getcwd => '_dos_cwd', - fastgetcwd => '_dos_cwd', - fastcwd => '_dos_cwd', - abs_path => 'fast_abs_path', - }, - - # QNX4. QNX6 has a $os of 'nto'. - qnx => - { - cwd => '_qnx_cwd', - getcwd => '_qnx_cwd', - fastgetcwd => '_qnx_cwd', - fastcwd => '_qnx_cwd', - abs_path => '_qnx_abs_path', - fast_abs_path => '_qnx_abs_path', - }, - - cygwin => - { - getcwd => 'cwd', - fastgetcwd => 'cwd', - fastcwd => 'cwd', - abs_path => 'fast_abs_path', - realpath => 'fast_abs_path', - }, - - amigaos => - { - getcwd => '_backtick_pwd', - fastgetcwd => '_backtick_pwd', - fastcwd => '_backtick_pwd', - abs_path => 'fast_abs_path', - } - ); - -$METHOD_MAP{NT} = $METHOD_MAP{MSWin32}; - - -# Find the pwd command in the expected locations. We assume these -# are safe. This prevents _backtick_pwd() consulting $ENV{PATH} -# so everything works under taint mode. -my $pwd_cmd; -if($^O ne 'MSWin32') { - foreach my $try ('/bin/pwd', - '/usr/bin/pwd', - '/QOpenSys/bin/pwd', # OS/400 PASE. - ) { - if( -x $try ) { - $pwd_cmd = $try; - last; - } - } -} - -# Android has a built-in pwd. Using $pwd_cmd will DTRT if -# this perl was compiled with -Dd_useshellcmds, which is the -# default for Android, but the block below is needed for the -# miniperl running on the host when cross-compiling, and -# potentially for native builds with -Ud_useshellcmds. -if ($^O =~ /android/) { - # If targetsh is executable, then we're either a full - # perl, or a miniperl for a native build. - if (-x $Config::Config{targetsh}) { - $pwd_cmd = "$Config::Config{targetsh} -c pwd" - } - else { - my $sh = $Config::Config{sh} || (-x '/system/bin/sh' ? '/system/bin/sh' : 'sh'); - $pwd_cmd = "$sh -c pwd" - } -} - -my $found_pwd_cmd = defined($pwd_cmd); -unless ($pwd_cmd) { - # Isn't this wrong? _backtick_pwd() will fail if someone has - # pwd in their path but it is not /bin/pwd or /usr/bin/pwd? - # See [perl #16774]. --jhi - $pwd_cmd = 'pwd'; -} - -# Lazy-load Carp -sub _carp { require Carp; Carp::carp(@_) } -sub _croak { require Carp; Carp::croak(@_) } - -# The 'natural and safe form' for UNIX (pwd may be setuid root) -sub _backtick_pwd { - - # Localize %ENV entries in a way that won't create new hash keys. - # Under AmigaOS we don't want to localize as it stops perl from - # finding 'sh' in the PATH. - my @localize = grep exists $ENV{$_}, qw(PATH IFS CDPATH ENV BASH_ENV) if $^O ne "amigaos"; - local @ENV{@localize} if @localize; - - my $cwd = `$pwd_cmd`; - # Belt-and-suspenders in case someone said "undef $/". - local $/ = "\n"; - # `pwd` may fail e.g. if the disk is full - chomp($cwd) if defined $cwd; - $cwd; -} - -# Since some ports may predefine cwd internally (e.g., NT) -# we take care not to override an existing definition for cwd(). - -unless ($METHOD_MAP{$^O}{cwd} or defined &cwd) { - # The pwd command is not available in some chroot(2)'ed environments - my $sep = $Config::Config{path_sep} || ':'; - my $os = $^O; # Protect $^O from tainting - - - # Try again to find a pwd, this time searching the whole PATH. - if (defined $ENV{PATH} and $os ne 'MSWin32') { # no pwd on Windows - my @candidates = split($sep, $ENV{PATH}); - while (!$found_pwd_cmd and @candidates) { - my $candidate = shift @candidates; - $found_pwd_cmd = 1 if -x "$candidate/pwd"; - } - } - - if( $found_pwd_cmd ) - { - *cwd = \&_backtick_pwd; - } - else { - *cwd = \&getcwd; - } -} - -if ($^O eq 'cygwin') { - # We need to make sure cwd() is called with no args, because it's - # got an arg-less prototype and will die if args are present. - local $^W = 0; - my $orig_cwd = \&cwd; - *cwd = sub { &$orig_cwd() } -} - - -# set a reasonable (and very safe) default for fastgetcwd, in case it -# isn't redefined later (20001212 rspier) -*fastgetcwd = \&cwd; - -# A non-XS version of getcwd() - also used to bootstrap the perl build -# process, when miniperl is running and no XS loading happens. -sub _perl_getcwd -{ - abs_path('.'); -} - -# By John Bazik -# -# Usage: $cwd = &fastcwd; -# -# This is a faster version of getcwd. It's also more dangerous because -# you might chdir out of a directory that you can't chdir back into. - -sub fastcwd_ { - my($odev, $oino, $cdev, $cino, $tdev, $tino); - my(@path, $path); - local(*DIR); - - my($orig_cdev, $orig_cino) = stat('.'); - ($cdev, $cino) = ($orig_cdev, $orig_cino); - for (;;) { - my $direntry; - ($odev, $oino) = ($cdev, $cino); - CORE::chdir('..') || return undef; - ($cdev, $cino) = stat('.'); - last if $odev == $cdev && $oino == $cino; - opendir(DIR, '.') || return undef; - for (;;) { - $direntry = readdir(DIR); - last unless defined $direntry; - next if $direntry eq '.'; - next if $direntry eq '..'; - - ($tdev, $tino) = lstat($direntry); - last unless $tdev != $odev || $tino != $oino; - } - closedir(DIR); - return undef unless defined $direntry; # should never happen - unshift(@path, $direntry); - } - $path = '/' . join('/', @path); - if ($^O eq 'apollo') { $path = "/".$path; } - # At this point $path may be tainted (if tainting) and chdir would fail. - # Untaint it then check that we landed where we started. - $path =~ /^(.*)\z/s # untaint - && CORE::chdir($1) or return undef; - ($cdev, $cino) = stat('.'); - die "Unstable directory path, current directory changed unexpectedly" - if $cdev != $orig_cdev || $cino != $orig_cino; - $path; -} -if (not defined &fastcwd) { *fastcwd = \&fastcwd_ } - - -# Keeps track of current working directory in PWD environment var -# Usage: -# use Cwd 'chdir'; -# chdir $newdir; - -my $chdir_init = 0; - -sub chdir_init { - if ($ENV{'PWD'} and $^O ne 'os2' and $^O ne 'dos' and $^O ne 'MSWin32') { - my($dd,$di) = stat('.'); - my($pd,$pi) = stat($ENV{'PWD'}); - if (!defined $dd or !defined $pd or $di != $pi or $dd != $pd) { - $ENV{'PWD'} = cwd(); - } - } - else { - my $wd = cwd(); - $wd = Win32::GetFullPathName($wd) if $^O eq 'MSWin32'; - $ENV{'PWD'} = $wd; - } - # Strip an automounter prefix (where /tmp_mnt/foo/bar == /foo/bar) - if ($^O ne 'MSWin32' and $ENV{'PWD'} =~ m|(/[^/]+(/[^/]+/[^/]+))(.*)|s) { - my($pd,$pi) = stat($2); - my($dd,$di) = stat($1); - if (defined $pd and defined $dd and $di == $pi and $dd == $pd) { - $ENV{'PWD'}="$2$3"; - } - } - $chdir_init = 1; -} - -sub chdir { - my $newdir = @_ ? shift : ''; # allow for no arg (chdir to HOME dir) - if ($^O eq "cygwin") { - $newdir =~ s|\A///+|//|; - $newdir =~ s|(?<=[^/])//+|/|g; - } - elsif ($^O ne 'MSWin32') { - $newdir =~ s|///*|/|g; - } - chdir_init() unless $chdir_init; - my $newpwd; - if ($^O eq 'MSWin32') { - # get the full path name *before* the chdir() - $newpwd = Win32::GetFullPathName($newdir); - } - - return 0 unless CORE::chdir $newdir; - - if ($^O eq 'VMS') { - return $ENV{'PWD'} = $ENV{'DEFAULT'} - } - elsif ($^O eq 'MSWin32') { - $ENV{'PWD'} = $newpwd; - return 1; - } - - if (ref $newdir eq 'GLOB') { # in case a file/dir handle is passed in - $ENV{'PWD'} = cwd(); - } elsif ($newdir =~ m#^/#s) { - $ENV{'PWD'} = $newdir; - } else { - my @curdir = split(m#/#,$ENV{'PWD'}); - @curdir = ('') unless @curdir; - my $component; - foreach $component (split(m#/#, $newdir)) { - next if $component eq '.'; - pop(@curdir),next if $component eq '..'; - push(@curdir,$component); - } - $ENV{'PWD'} = join('/',@curdir) || '/'; - } - 1; -} - - -sub _perl_abs_path -{ - my $start = @_ ? shift : '.'; - my($dotdots, $cwd, @pst, @cst, $dir, @tst); - - unless (@cst = stat( $start )) - { - return undef; - } - - unless (-d _) { - # Make sure we can be invoked on plain files, not just directories. - # NOTE that this routine assumes that '/' is the only directory separator. - - my ($dir, $file) = $start =~ m{^(.*)/(.+)$} - or return cwd() . '/' . $start; - - # Can't use "-l _" here, because the previous stat was a stat(), not an lstat(). - if (-l $start) { - my $link_target = readlink($start); - die "Can't resolve link $start: $!" unless defined $link_target; - - require File::Spec; - $link_target = $dir . '/' . $link_target - unless File::Spec->file_name_is_absolute($link_target); - - return abs_path($link_target); - } - - return $dir ? abs_path($dir) . "/$file" : "/$file"; - } - - $cwd = ''; - $dotdots = $start; - do - { - $dotdots .= '/..'; - @pst = @cst; - local *PARENT; - unless (opendir(PARENT, $dotdots)) - { - return undef; - } - unless (@cst = stat($dotdots)) - { - my $e = $!; - closedir(PARENT); - $! = $e; - return undef; - } - if ($pst[0] == $cst[0] && $pst[1] == $cst[1]) - { - $dir = undef; - } - else - { - do - { - unless (defined ($dir = readdir(PARENT))) - { - closedir(PARENT); - require Errno; - $! = Errno::ENOENT(); - return undef; - } - $tst[0] = $pst[0]+1 unless (@tst = lstat("$dotdots/$dir")) - } - while ($dir eq '.' || $dir eq '..' || $tst[0] != $pst[0] || - $tst[1] != $pst[1]); - } - $cwd = (defined $dir ? "$dir" : "" ) . "/$cwd" ; - closedir(PARENT); - } while (defined $dir); - chop($cwd) unless $cwd eq '/'; # drop the trailing / - $cwd; -} - - -my $Curdir; -sub fast_abs_path { - local $ENV{PWD} = $ENV{PWD} || ''; # Guard against clobberage - my $cwd = getcwd(); - defined $cwd or return undef; - require File::Spec; - my $path = @_ ? shift : ($Curdir ||= File::Spec->curdir); - - # Detaint else we'll explode in taint mode. This is safe because - # we're not doing anything dangerous with it. - ($path) = $path =~ /(.*)/s; - ($cwd) = $cwd =~ /(.*)/s; - - unless (-e $path) { - require Errno; - $! = Errno::ENOENT(); - return undef; - } - - unless (-d _) { - # Make sure we can be invoked on plain files, not just directories. - - my ($vol, $dir, $file) = File::Spec->splitpath($path); - return File::Spec->catfile($cwd, $path) unless length $dir; - - if (-l $path) { - my $link_target = readlink($path); - defined $link_target or return undef; - - $link_target = File::Spec->catpath($vol, $dir, $link_target) - unless File::Spec->file_name_is_absolute($link_target); - - return fast_abs_path($link_target); - } - - return $dir eq File::Spec->rootdir - ? File::Spec->catpath($vol, $dir, $file) - : fast_abs_path(File::Spec->catpath($vol, $dir, '')) . '/' . $file; - } - - if (!CORE::chdir($path)) { - return undef; - } - my $realpath = getcwd(); - if (! ((-d $cwd) && (CORE::chdir($cwd)))) { - _croak("Cannot chdir back to $cwd: $!"); - } - $realpath; -} - -# added function alias to follow principle of least surprise -# based on previous aliasing. --tchrist 27-Jan-00 -*fast_realpath = \&fast_abs_path; - - -# --- PORTING SECTION --- - -# VMS: $ENV{'DEFAULT'} points to default directory at all times -# 06-Mar-1996 Charles Bailey bailey@newman.upenn.edu -# Note: Use of Cwd::chdir() causes the logical name PWD to be defined -# in the process logical name table as the default device and directory -# seen by Perl. This may not be the same as the default device -# and directory seen by DCL after Perl exits, since the effects -# the CRTL chdir() function persist only until Perl exits. - -sub _vms_cwd { - return $ENV{'DEFAULT'}; -} - -sub _vms_abs_path { - return $ENV{'DEFAULT'} unless @_; - my $path = shift; - - my $efs = _vms_efs; - my $unix_rpt = _vms_unix_rpt; - - if (defined &VMS::Filespec::vmsrealpath) { - my $path_unix = 0; - my $path_vms = 0; - - $path_unix = 1 if ($path =~ m#(?<=\^)/#); - $path_unix = 1 if ($path =~ /^\.\.?$/); - $path_vms = 1 if ($path =~ m#[\[<\]]#); - $path_vms = 1 if ($path =~ /^--?$/); - - my $unix_mode = $path_unix; - if ($efs) { - # In case of a tie, the Unix report mode decides. - if ($path_vms == $path_unix) { - $unix_mode = $unix_rpt; - } else { - $unix_mode = 0 if $path_vms; - } - } - - if ($unix_mode) { - # Unix format - return VMS::Filespec::unixrealpath($path); - } - - # VMS format - - my $new_path = VMS::Filespec::vmsrealpath($path); - - # Perl expects directories to be in directory format - $new_path = VMS::Filespec::pathify($new_path) if -d $path; - return $new_path; - } - - # Fallback to older algorithm if correct ones are not - # available. - - if (-l $path) { - my $link_target = readlink($path); - die "Can't resolve link $path: $!" unless defined $link_target; - - return _vms_abs_path($link_target); - } - - # may need to turn foo.dir into [.foo] - my $pathified = VMS::Filespec::pathify($path); - $path = $pathified if defined $pathified; - - return VMS::Filespec::rmsexpand($path); -} - -sub _os2_cwd { - my $pwd = `cmd /c cd`; - chomp $pwd; - $pwd =~ s:\\:/:g ; - $ENV{'PWD'} = $pwd; - return $pwd; -} - -sub _win32_cwd_simple { - my $pwd = `cd`; - chomp $pwd; - $pwd =~ s:\\:/:g ; - $ENV{'PWD'} = $pwd; - return $pwd; -} - -sub _win32_cwd { - my $pwd; - $pwd = Win32::GetCwd(); - $pwd =~ s:\\:/:g ; - $ENV{'PWD'} = $pwd; - return $pwd; -} - -*_NT_cwd = defined &Win32::GetCwd ? \&_win32_cwd : \&_win32_cwd_simple; - -sub _dos_cwd { - my $pwd; - if (!defined &Dos::GetCwd) { - chomp($pwd = `command /c cd`); - $pwd =~ s:\\:/:g ; - } else { - $pwd = Dos::GetCwd(); - } - $ENV{'PWD'} = $pwd; - return $pwd; -} - -sub _qnx_cwd { - local $ENV{PATH} = ''; - local $ENV{CDPATH} = ''; - local $ENV{ENV} = ''; - my $pwd = `/usr/bin/fullpath -t`; - chomp $pwd; - $ENV{'PWD'} = $pwd; - return $pwd; -} - -sub _qnx_abs_path { - local $ENV{PATH} = ''; - local $ENV{CDPATH} = ''; - local $ENV{ENV} = ''; - my $path = @_ ? shift : '.'; - local *REALPATH; - - defined( open(REALPATH, '-|') || exec '/usr/bin/fullpath', '-t', $path ) or - die "Can't open /usr/bin/fullpath: $!"; - my $realpath = ; - close REALPATH; - chomp $realpath; - return $realpath; -} - -# Now that all the base-level functions are set up, alias the -# user-level functions to the right places - -if (exists $METHOD_MAP{$^O}) { - my $map = $METHOD_MAP{$^O}; - foreach my $name (keys %$map) { - local $^W = 0; # assignments trigger 'subroutine redefined' warning - no strict 'refs'; - *{$name} = \&{$map->{$name}}; - } -} - -# In case the XS version doesn't load. -*abs_path = \&_perl_abs_path unless defined &abs_path; -*getcwd = \&_perl_getcwd unless defined &getcwd; - -# added function alias for those of us more -# used to the libc function. --tchrist 27-Jan-00 -*realpath = \&abs_path; - -1; -__END__ - -=head1 NAME - -Cwd - get pathname of current working directory - -=head1 SYNOPSIS - - use Cwd; - my $dir = getcwd; - - use Cwd 'abs_path'; - my $abs_path = abs_path($file); - -=head1 DESCRIPTION - -This module provides functions for determining the pathname of the -current working directory. It is recommended that getcwd (or another -*cwd() function) be used in I code to ensure portability. - -By default, it exports the functions cwd(), getcwd(), fastcwd(), and -fastgetcwd() (and, on Win32, getdcwd()) into the caller's namespace. - - -=head2 getcwd and friends - -Each of these functions are called without arguments and return the -absolute path of the current working directory. - -=over 4 - -=item getcwd - - my $cwd = getcwd(); - -Returns the current working directory. On error returns C, -with C<$!> set to indicate the error. - -Exposes the POSIX function getcwd(3) or re-implements it if it's not -available. - -=item cwd - - my $cwd = cwd(); - -The cwd() is the most natural form for the current architecture. For -most systems it is identical to `pwd` (but without the trailing line -terminator). - -=item fastcwd - - my $cwd = fastcwd(); - -A more dangerous version of getcwd(), but potentially faster. - -It might conceivably chdir() you out of a directory that it can't -chdir() you back into. If fastcwd encounters a problem it will return -undef but will probably leave you in a different directory. For a -measure of extra security, if everything appears to have worked, the -fastcwd() function will check that it leaves you in the same directory -that it started in. If it has changed it will C with the message -"Unstable directory path, current directory changed -unexpectedly". That should never happen. - -=item fastgetcwd - - my $cwd = fastgetcwd(); - -The fastgetcwd() function is provided as a synonym for cwd(). - -=item getdcwd - - my $cwd = getdcwd(); - my $cwd = getdcwd('C:'); - -The getdcwd() function is also provided on Win32 to get the current working -directory on the specified drive, since Windows maintains a separate current -working directory for each drive. If no drive is specified then the current -drive is assumed. - -This function simply calls the Microsoft C library _getdcwd() function. - -=back - - -=head2 abs_path and friends - -These functions are exported only on request. They each take a single -argument and return the absolute pathname for it. If no argument is -given they'll use the current working directory. - -=over 4 - -=item abs_path - - my $abs_path = abs_path($file); - -Uses the same algorithm as getcwd(). Symbolic links and relative-path -components ("." and "..") are resolved to return the canonical -pathname, just like realpath(3). On error returns C, with C<$!> -set to indicate the error. - -=item realpath - - my $abs_path = realpath($file); - -A synonym for abs_path(). - -=item fast_abs_path - - my $abs_path = fast_abs_path($file); - -A more dangerous, but potentially faster version of abs_path. - -=back - -=head2 $ENV{PWD} - -If you ask to override your chdir() built-in function, - - use Cwd qw(chdir); - -then your PWD environment variable will be kept up to date. Note that -it will only be kept up to date if all packages which use chdir import -it from Cwd. - - -=head1 NOTES - -=over 4 - -=item * - -Since the path separators are different on some operating systems ('/' -on Unix, ':' on MacPerl, etc...) we recommend you use the File::Spec -modules wherever portability is a concern. - -=item * - -Actually, on Mac OS, the C, C and C -functions are all aliases for the C function, which, on Mac OS, -calls `pwd`. Likewise, the C function is an alias for -C. - -=back - -=head1 AUTHOR - -Originally by the perl5-porters. - -Maintained by Ken Williams - -=head1 COPYRIGHT - -Copyright (c) 2004 by the Perl 5 Porters. All rights reserved. - -This program is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -Portions of the C code in this library are copyright (c) 1994 by the -Regents of the University of California. All rights reserved. The -license on this code is compatible with the licensing of the rest of -the distribution - please see the source code in F for the -details. - -=head1 SEE ALSO - -L - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Data/UUID.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Data/UUID.pm deleted file mode 100644 index 20518cd5..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Data/UUID.pm +++ /dev/null @@ -1,158 +0,0 @@ -package Data::UUID; - -use strict; - -use Carp; - -require Exporter; -require DynaLoader; -require Digest::MD5; - -our @ISA = qw(Exporter DynaLoader); -our @EXPORT = qw( - NameSpace_DNS - NameSpace_OID - NameSpace_URL - NameSpace_X500 -); -our $VERSION = '1.221'; - -bootstrap Data::UUID $VERSION; - -1; -__END__ - -=head1 NAME - -Data::UUID - Globally/Universally Unique Identifiers (GUIDs/UUIDs) - -=head1 SEE INSTEAD? - -The module L provides another interface for generating GUIDs. -Right now, it relies on Data::UUID, but it may not in the future. Its -interface may be just a little more straightforward for the average Perl -programer. - -=head1 SYNOPSIS - - use Data::UUID; - - $ug = Data::UUID->new; - $uuid1 = $ug->create(); - $uuid2 = $ug->create_from_name(, ); - - $res = $ug->compare($uuid1, $uuid2); - - $str = $ug->to_string( $uuid ); - $uuid = $ug->from_string( $str ); - -=head1 DESCRIPTION - -This module provides a framework for generating v3 UUIDs (Universally Unique -Identifiers, also known as GUIDs (Globally Unique Identifiers). A UUID is 128 -bits long, and is guaranteed to be different from all other UUIDs/GUIDs -generated until 3400 CE. - -UUIDs were originally used in the Network Computing System (NCS) and later in -the Open Software Foundation's (OSF) Distributed Computing Environment. -Currently many different technologies rely on UUIDs to provide unique identity -for various software components. Microsoft COM/DCOM for instance, uses GUIDs -very extensively to uniquely identify classes, applications and components -across network-connected systems. - -The algorithm for UUID generation, used by this extension, is described in the -Internet Draft "UUIDs and GUIDs" by Paul J. Leach and Rich Salz. (See RFC -4122.) It provides reasonably efficient and reliable framework for generating -UUIDs and supports fairly high allocation rates -- 10 million per second per -machine -- and therefore is suitable for identifying both extremely short-lived -and very persistent objects on a given system as well as across the network. - -This modules provides several methods to create a UUID. In all methods, C<< - >> is a UUID and C<< >> is a free form string. - - # creates binary (16 byte long binary value) UUID. - $ug->create(); - $ug->create_bin(); - - # creates binary (16-byte long binary value) UUID based on particular - # namespace and name string. - $ug->create_from_name(, ); - $ug->create_from_name_bin(, ); - - # creates UUID string, using conventional UUID string format, - # such as: 4162F712-1DD2-11B2-B17E-C09EFE1DC403 - # Note that digits A-F are capitalized, which is contrary to rfc4122 - $ug->create_str(); - $ug->create_from_name_str(, ); - - # creates UUID string as a hex string, - # such as: 0x4162F7121DD211B2B17EC09EFE1DC403 - # Note that digits A-F are capitalized, which is contrary to rfc4122 - $ug->create_hex(); - $ug->create_from_name_hex(, ); - - # creates UUID string as a Base64-encoded string - $ug->create_b64(); - $ug->create_from_name_b64(, ); - - Binary UUIDs can be converted to printable strings using following methods: - - # convert to conventional string representation - $ug->to_string(); - - # convert to hex string (using upper, rather than lower, case letters) - $ug->to_hexstring(); - - # convert to Base64-encoded string - $ug->to_b64string(); - - Conversly, string UUIDs can be converted back to binary form: - - # recreate binary UUID from string - $ug->from_string(); - $ug->from_hexstring(); - - # recreate binary UUID from Base64-encoded string - $ug->from_b64string(); - - Finally, two binary UUIDs can be compared using the following method: - - # returns -1, 0 or 1 depending on whether uuid1 less - # than, equals to, or greater than uuid2 - $ug->compare(, ); - -Examples: - - use Data::UUID; - - # this creates a new UUID in string form, based on the standard namespace - # UUID NameSpace_URL and name "www.mycompany.com" - - $ug = Data::UUID->new; - print $ug->create_from_name_str(NameSpace_URL, "www.mycompany.com"); - -=head2 EXPORT - -The module allows exporting of several standard namespace UUIDs: - -=over - -=item NameSpace_DNS - -=item NameSpace_URL - -=item NameSpace_OID - -=item NameSpace_X500 - -=back - -=head1 AUTHOR - -Alexander Golomshtok - -=head1 SEE ALSO - -The Internet Draft "UUIDs and GUIDs" by Paul J. Leach and Rich Salz (RFC 4122) - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode.pm deleted file mode 100644 index 9234ae0f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode.pm +++ /dev/null @@ -1,1093 +0,0 @@ -# -# $Id: Encode.pm,v 2.98 2018/04/22 09:03:00 dankogai Exp $ -# -package Encode; -use strict; -use warnings; -use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG}; -our $VERSION; -BEGIN { - $VERSION = sprintf "%d.%02d", q$Revision: 2.98 $ =~ /(\d+)/g; - require XSLoader; - XSLoader::load( __PACKAGE__, $VERSION ); -} - -use Exporter 5.57 'import'; - -our @CARP_NOT = qw(Encode::Encoder); - -# Public, encouraged API is exported by default - -our @EXPORT = qw( - decode decode_utf8 encode encode_utf8 str2bytes bytes2str - encodings find_encoding find_mime_encoding clone_encoding -); -our @FB_FLAGS = qw( - DIE_ON_ERR WARN_ON_ERR RETURN_ON_ERR LEAVE_SRC - PERLQQ HTMLCREF XMLCREF STOP_AT_PARTIAL -); -our @FB_CONSTS = qw( - FB_DEFAULT FB_CROAK FB_QUIET FB_WARN - FB_PERLQQ FB_HTMLCREF FB_XMLCREF -); -our @EXPORT_OK = ( - qw( - _utf8_off _utf8_on define_encoding from_to is_16bit is_8bit - is_utf8 perlio_ok resolve_alias utf8_downgrade utf8_upgrade - ), - @FB_FLAGS, @FB_CONSTS, -); - -our %EXPORT_TAGS = ( - all => [ @EXPORT, @EXPORT_OK ], - default => [ @EXPORT ], - fallbacks => [ @FB_CONSTS ], - fallback_all => [ @FB_CONSTS, @FB_FLAGS ], -); - -# Documentation moved after __END__ for speed - NI-S - -our $ON_EBCDIC = ( ord("A") == 193 ); - -use Encode::Alias (); -use Encode::MIME::Name; - -use Storable; - -# Make a %Encoding package variable to allow a certain amount of cheating -our %Encoding; -our %ExtModule; -require Encode::Config; -# See -# https://bugzilla.redhat.com/show_bug.cgi?id=435505#c2 -# to find why sig handlers inside eval{} are disabled. -eval { - local $SIG{__DIE__}; - local $SIG{__WARN__}; - local @INC = @INC; - pop @INC if $INC[-1] eq '.'; - require Encode::ConfigLocal; -}; - -sub encodings { - my %enc; - my $arg = $_[1] || ''; - if ( $arg eq ":all" ) { - %enc = ( %Encoding, %ExtModule ); - } - else { - %enc = %Encoding; - for my $mod ( map { m/::/ ? $_ : "Encode::$_" } @_ ) { - DEBUG and warn $mod; - for my $enc ( keys %ExtModule ) { - $ExtModule{$enc} eq $mod and $enc{$enc} = $mod; - } - } - } - return sort { lc $a cmp lc $b } - grep { !/^(?:Internal|Unicode|Guess)$/o } keys %enc; -} - -sub perlio_ok { - my $obj = ref( $_[0] ) ? $_[0] : find_encoding( $_[0] ); - $obj->can("perlio_ok") and return $obj->perlio_ok(); - return 0; # safety net -} - -sub define_encoding { - my $obj = shift; - my $name = shift; - $Encoding{$name} = $obj; - my $lc = lc($name); - define_alias( $lc => $obj ) unless $lc eq $name; - while (@_) { - my $alias = shift; - define_alias( $alias, $obj ); - } - my $class = ref($obj); - push @Encode::CARP_NOT, $class unless grep { $_ eq $class } @Encode::CARP_NOT; - push @Encode::Encoding::CARP_NOT, $class unless grep { $_ eq $class } @Encode::Encoding::CARP_NOT; - return $obj; -} - -sub getEncoding { - my ( $class, $name, $skip_external ) = @_; - - defined($name) or return; - - $name =~ s/\s+//g; # https://rt.cpan.org/Ticket/Display.html?id=65796 - - ref($name) && $name->can('renew') and return $name; - exists $Encoding{$name} and return $Encoding{$name}; - my $lc = lc $name; - exists $Encoding{$lc} and return $Encoding{$lc}; - - my $oc = $class->find_alias($name); - defined($oc) and return $oc; - $lc ne $name and $oc = $class->find_alias($lc); - defined($oc) and return $oc; - - unless ($skip_external) { - if ( my $mod = $ExtModule{$name} || $ExtModule{$lc} ) { - $mod =~ s,::,/,g; - $mod .= '.pm'; - eval { require $mod; }; - exists $Encoding{$name} and return $Encoding{$name}; - } - } - return; -} - -# HACK: These two functions must be defined in Encode and because of -# cyclic dependency between Encode and Encode::Alias, Exporter does not work -sub find_alias { - goto &Encode::Alias::find_alias; -} -sub define_alias { - goto &Encode::Alias::define_alias; -} - -sub find_encoding($;$) { - my ( $name, $skip_external ) = @_; - return __PACKAGE__->getEncoding( $name, $skip_external ); -} - -sub find_mime_encoding($;$) { - my ( $mime_name, $skip_external ) = @_; - my $name = Encode::MIME::Name::get_encode_name( $mime_name ); - return find_encoding( $name, $skip_external ); -} - -sub resolve_alias($) { - my $obj = find_encoding(shift); - defined $obj and return $obj->name; - return; -} - -sub clone_encoding($) { - my $obj = find_encoding(shift); - ref $obj or return; - return Storable::dclone($obj); -} - -sub encode($$;$) { - my ( $name, $string, $check ) = @_; - return undef unless defined $string; - $string .= ''; # stringify; - $check ||= 0; - unless ( defined $name ) { - require Carp; - Carp::croak("Encoding name should not be undef"); - } - my $enc = find_encoding($name); - unless ( defined $enc ) { - require Carp; - Carp::croak("Unknown encoding '$name'"); - } - # For Unicode, warnings need to be caught and re-issued at this level - # so that callers can disable utf8 warnings lexically. - my $octets; - if ( ref($enc) eq 'Encode::Unicode' ) { - my $warn = ''; - { - local $SIG{__WARN__} = sub { $warn = shift }; - $octets = $enc->encode( $string, $check ); - } - warnings::warnif('utf8', $warn) if length $warn; - } - else { - $octets = $enc->encode( $string, $check ); - } - $_[1] = $string if $check and !ref $check and !( $check & LEAVE_SRC ); - return $octets; -} -*str2bytes = \&encode; - -sub decode($$;$) { - my ( $name, $octets, $check ) = @_; - return undef unless defined $octets; - $octets .= ''; - $check ||= 0; - my $enc = find_encoding($name); - unless ( defined $enc ) { - require Carp; - Carp::croak("Unknown encoding '$name'"); - } - # For Unicode, warnings need to be caught and re-issued at this level - # so that callers can disable utf8 warnings lexically. - my $string; - if ( ref($enc) eq 'Encode::Unicode' ) { - my $warn = ''; - { - local $SIG{__WARN__} = sub { $warn = shift }; - $string = $enc->decode( $octets, $check ); - } - warnings::warnif('utf8', $warn) if length $warn; - } - else { - $string = $enc->decode( $octets, $check ); - } - $_[1] = $octets if $check and !ref $check and !( $check & LEAVE_SRC ); - return $string; -} -*bytes2str = \&decode; - -sub from_to($$$;$) { - my ( $string, $from, $to, $check ) = @_; - return undef unless defined $string; - $check ||= 0; - my $f = find_encoding($from); - unless ( defined $f ) { - require Carp; - Carp::croak("Unknown encoding '$from'"); - } - my $t = find_encoding($to); - unless ( defined $t ) { - require Carp; - Carp::croak("Unknown encoding '$to'"); - } - - # For Unicode, warnings need to be caught and re-issued at this level - # so that callers can disable utf8 warnings lexically. - my $uni; - if ( ref($f) eq 'Encode::Unicode' ) { - my $warn = ''; - { - local $SIG{__WARN__} = sub { $warn = shift }; - $uni = $f->decode($string); - } - warnings::warnif('utf8', $warn) if length $warn; - } - else { - $uni = $f->decode($string); - } - - if ( ref($t) eq 'Encode::Unicode' ) { - my $warn = ''; - { - local $SIG{__WARN__} = sub { $warn = shift }; - $_[0] = $string = $t->encode( $uni, $check ); - } - warnings::warnif('utf8', $warn) if length $warn; - } - else { - $_[0] = $string = $t->encode( $uni, $check ); - } - - return undef if ( $check && length($uni) ); - return defined( $_[0] ) ? length($string) : undef; -} - -sub encode_utf8($) { - my ($str) = @_; - return undef unless defined $str; - utf8::encode($str); - return $str; -} - -my $utf8enc; - -sub decode_utf8($;$) { - my ( $octets, $check ) = @_; - return undef unless defined $octets; - $octets .= ''; - $check ||= 0; - $utf8enc ||= find_encoding('utf8'); - my $string = $utf8enc->decode( $octets, $check ); - $_[0] = $octets if $check and !ref $check and !( $check & LEAVE_SRC ); - return $string; -} - -onBOOT; - -if ($ON_EBCDIC) { - package Encode::UTF_EBCDIC; - use parent 'Encode::Encoding'; - my $obj = bless { Name => "UTF_EBCDIC" } => "Encode::UTF_EBCDIC"; - Encode::define_encoding($obj, 'Unicode'); - sub decode { - my ( undef, $str, $chk ) = @_; - my $res = ''; - for ( my $i = 0 ; $i < length($str) ; $i++ ) { - $res .= - chr( - utf8::unicode_to_native( ord( substr( $str, $i, 1 ) ) ) - ); - } - $_[1] = '' if $chk; - return $res; - } - sub encode { - my ( undef, $str, $chk ) = @_; - my $res = ''; - for ( my $i = 0 ; $i < length($str) ; $i++ ) { - $res .= - chr( - utf8::native_to_unicode( ord( substr( $str, $i, 1 ) ) ) - ); - } - $_[1] = '' if $chk; - return $res; - } -} else { - package Encode::Internal; - use parent 'Encode::Encoding'; - my $obj = bless { Name => "Internal" } => "Encode::Internal"; - Encode::define_encoding($obj, 'Unicode'); - sub decode { - my ( undef, $str, $chk ) = @_; - utf8::upgrade($str); - $_[1] = '' if $chk; - return $str; - } - *encode = \&decode; -} - -{ - # https://rt.cpan.org/Public/Bug/Display.html?id=103253 - package Encode::XS; - use parent 'Encode::Encoding'; -} - -{ - package Encode::utf8; - use parent 'Encode::Encoding'; - my %obj = ( - 'utf8' => { Name => 'utf8' }, - 'utf-8-strict' => { Name => 'utf-8-strict', strict_utf8 => 1 } - ); - for ( keys %obj ) { - bless $obj{$_} => __PACKAGE__; - Encode::define_encoding( $obj{$_} => $_ ); - } - sub cat_decode { - # ($obj, $dst, $src, $pos, $trm, $chk) - # currently ignores $chk - my ( undef, undef, undef, $pos, $trm ) = @_; - my ( $rdst, $rsrc, $rpos ) = \@_[ 1, 2, 3 ]; - use bytes; - if ( ( my $npos = index( $$rsrc, $trm, $pos ) ) >= 0 ) { - $$rdst .= - substr( $$rsrc, $pos, $npos - $pos + length($trm) ); - $$rpos = $npos + length($trm); - return 1; - } - $$rdst .= substr( $$rsrc, $pos ); - $$rpos = length($$rsrc); - return ''; - } -} - -1; - -__END__ - -=head1 NAME - -Encode - character encodings in Perl - -=head1 SYNOPSIS - - use Encode qw(decode encode); - $characters = decode('UTF-8', $octets, Encode::FB_CROAK); - $octets = encode('UTF-8', $characters, Encode::FB_CROAK); - -=head2 Table of Contents - -Encode consists of a collection of modules whose details are too extensive -to fit in one document. This one itself explains the top-level APIs -and general topics at a glance. For other topics and more details, -see the documentation for these modules: - -=over 2 - -=item L - Alias definitions to encodings - -=item L - Encode Implementation Base Class - -=item L - List of Supported Encodings - -=item L - Simplified Chinese Encodings - -=item L - Japanese Encodings - -=item L - Korean Encodings - -=item L - Traditional Chinese Encodings - -=back - -=head1 DESCRIPTION - -The C module provides the interface between Perl strings -and the rest of the system. Perl strings are sequences of -I. - -The repertoire of characters that Perl can represent is a superset of those -defined by the Unicode Consortium. On most platforms the ordinal -values of a character as returned by C)> is the I for that character. The exceptions are platforms where -the legacy encoding is some variant of EBCDIC rather than a superset -of ASCII; see L. - -During recent history, data is moved around a computer in 8-bit chunks, -often called "bytes" but also known as "octets" in standards documents. -Perl is widely used to manipulate data of many types: not only strings of -characters representing human or computer languages, but also "binary" -data, being the machine's representation of numbers, pixels in an image, or -just about anything. - -When Perl is processing "binary data", the programmer wants Perl to -process "sequences of bytes". This is not a problem for Perl: because a -byte has 256 possible values, it easily fits in Perl's much larger -"logical character". - -This document mostly explains the I. L and L -explain the I. - -=head2 TERMINOLOGY - -=head3 character - -A character in the range 0 .. 2**32-1 (or more); -what Perl's strings are made of. - -=head3 byte - -A character in the range 0..255; -a special case of a Perl character. - -=head3 octet - -8 bits of data, with ordinal values 0..255; -term for bytes passed to or from a non-Perl context, such as a disk file, -standard I/O stream, database, command-line argument, environment variable, -socket etc. - -=head1 THE PERL ENCODING API - -=head2 Basic methods - -=head3 encode - - $octets = encode(ENCODING, STRING[, CHECK]) - -Encodes the scalar value I from Perl's internal form into -I and returns a sequence of octets. I can be either a -canonical name or an alias. For encoding names and aliases, see -L. For CHECK, see L. - -B: the input scalar I might be modified in-place depending -on what is set in CHECK. See L if you want your inputs to be -left unchanged. - -For example, to convert a string from Perl's internal format into -ISO-8859-1, also known as Latin1: - - $octets = encode("iso-8859-1", $string); - -B: When you run C<$octets = encode("UTF-8", $string)>, then -$octets I $string. Though both contain the -same data, the UTF8 flag for $octets is I off. When you -encode anything, the UTF8 flag on the result is always off, even when it -contains a completely valid UTF-8 string. See L below. - -If the $string is C, then C is returned. - -C may be used as an alias for C. - -=head3 decode - - $string = decode(ENCODING, OCTETS[, CHECK]) - -This function returns the string that results from decoding the scalar -value I, assumed to be a sequence of octets in I, into -Perl's internal form. As with encode(), -I can be either a canonical name or an alias. For encoding names -and aliases, see L; for I, see L. - -B: the input scalar I might be modified in-place depending -on what is set in CHECK. See L if you want your inputs to be -left unchanged. - -For example, to convert ISO-8859-1 data into a string in Perl's -internal format: - - $string = decode("iso-8859-1", $octets); - -B: When you run C<$string = decode("UTF-8", $octets)>, then $string -I $octets. Though both contain the same data, the -UTF8 flag for $string is on. See L -below. - -If the $string is C, then C is returned. - -C may be used as an alias for C. - -=head3 find_encoding - - [$obj =] find_encoding(ENCODING) - -Returns the I corresponding to I. Returns -C if no matching I is find. The returned object is -what does the actual encoding or decoding. - - $string = decode($name, $bytes); - -is in fact - - $string = do { - $obj = find_encoding($name); - croak qq(encoding "$name" not found) unless ref $obj; - $obj->decode($bytes); - }; - -with more error checking. - -You can therefore save time by reusing this object as follows; - - my $enc = find_encoding("iso-8859-1"); - while(<>) { - my $string = $enc->decode($_); - ... # now do something with $string; - } - -Besides L and L, other methods are -available as well. For instance, C returns the canonical -name of the encoding object. - - find_encoding("latin1")->name; # iso-8859-1 - -See L for details. - -=head3 find_mime_encoding - - [$obj =] find_mime_encoding(MIME_ENCODING) - -Returns the I corresponding to I. Acts -same as C but C of returned object must -match to I. So as opposite of C -canonical names and aliases are not used when searching for object. - - find_mime_encoding("utf8"); # returns undef because "utf8" is not valid I - find_mime_encoding("utf-8"); # returns encode object "utf-8-strict" - find_mime_encoding("UTF-8"); # same as "utf-8" because I is case insensitive - find_mime_encoding("utf-8-strict"); returns undef because "utf-8-strict" is not valid I - -=head3 from_to - - [$length =] from_to($octets, FROM_ENC, TO_ENC [, CHECK]) - -Converts I data between two encodings. The data in $octets -must be encoded as octets and I as characters in Perl's internal -format. For example, to convert ISO-8859-1 data into Microsoft's CP1250 -encoding: - - from_to($octets, "iso-8859-1", "cp1250"); - -and to convert it back: - - from_to($octets, "cp1250", "iso-8859-1"); - -Because the conversion happens in place, the data to be -converted cannot be a string constant: it must be a scalar variable. - -C returns the length of the converted string in octets on success, -and C on error. - -B: The following operations may look the same, but are not: - - from_to($data, "iso-8859-1", "UTF-8"); #1 - $data = decode("iso-8859-1", $data); #2 - -Both #1 and #2 make $data consist of a completely valid UTF-8 string, -but only #2 turns the UTF8 flag on. #1 is equivalent to: - - $data = encode("UTF-8", decode("iso-8859-1", $data)); - -See L below. - -Also note that: - - from_to($octets, $from, $to, $check); - -is equivalent to: - - $octets = encode($to, decode($from, $octets), $check); - -Yes, it does I respect the $check during decoding. It is -deliberately done that way. If you need minute control, use C -followed by C as follows: - - $octets = encode($to, decode($from, $octets, $check_from), $check_to); - -=head3 encode_utf8 - - $octets = encode_utf8($string); - -Equivalent to C<$octets = encode("utf8", $string)>. The characters in -$string are encoded in Perl's internal format, and the result is returned -as a sequence of octets. Because all possible characters in Perl have a -(loose, not strict) utf8 representation, this function cannot fail. - -B: do not use this function for data exchange as it can produce -not strict utf8 $octets! For strictly valid UTF-8 output use -C<$octets = encode("UTF-8", $string)>. - -=head3 decode_utf8 - - $string = decode_utf8($octets [, CHECK]); - -Equivalent to C<$string = decode("utf8", $octets [, CHECK])>. -The sequence of octets represented by $octets is decoded -from (loose, not strict) utf8 into a sequence of logical characters. -Because not all sequences of octets are valid not strict utf8, -it is quite possible for this function to fail. -For CHECK, see L. - -B: do not use this function for data exchange as it can produce -$string with not strict utf8 representation! For strictly valid UTF-8 -$string representation use C<$string = decode("UTF-8", $octets [, CHECK])>. - -B: the input I<$octets> might be modified in-place depending on -what is set in CHECK. See L if you want your inputs to be -left unchanged. - -=head2 Listing available encodings - - use Encode; - @list = Encode->encodings(); - -Returns a list of canonical names of available encodings that have already -been loaded. To get a list of all available encodings including those that -have not yet been loaded, say: - - @all_encodings = Encode->encodings(":all"); - -Or you can give the name of a specific module: - - @with_jp = Encode->encodings("Encode::JP"); - -When "C<::>" is not in the name, "C" is assumed. - - @ebcdic = Encode->encodings("EBCDIC"); - -To find out in detail which encodings are supported by this package, -see L. - -=head2 Defining Aliases - -To add a new alias to a given encoding, use: - - use Encode; - use Encode::Alias; - define_alias(NEWNAME => ENCODING); - -After that, I can be used as an alias for I. -I may be either the name of an encoding or an -I. - -Before you do that, first make sure the alias is nonexistent using -C, which returns the canonical name thereof. -For example: - - Encode::resolve_alias("latin1") eq "iso-8859-1" # true - Encode::resolve_alias("iso-8859-12") # false; nonexistent - Encode::resolve_alias($name) eq $name # true if $name is canonical - -C does not need C; it can be -imported via C. - -See L for details. - -=head2 Finding IANA Character Set Registry names - -The canonical name of a given encoding does not necessarily agree with -IANA Character Set Registry, commonly seen as C<< Content-Type: -text/plain; charset=I >>. For most cases, the canonical name -works, but sometimes it does not, most notably with "utf-8-strict". - -As of C version 2.21, a new method C is therefore added. - - use Encode; - my $enc = find_encoding("UTF-8"); - warn $enc->name; # utf-8-strict - warn $enc->mime_name; # UTF-8 - -See also: L - -=head1 Encoding via PerlIO - -If your perl supports C (which is the default), you can use a -C layer to decode and encode directly via a filehandle. The -following two examples are fully identical in functionality: - - ### Version 1 via PerlIO - open(INPUT, "< :encoding(shiftjis)", $infile) - || die "Can't open < $infile for reading: $!"; - open(OUTPUT, "> :encoding(euc-jp)", $outfile) - || die "Can't open > $output for writing: $!"; - while () { # auto decodes $_ - print OUTPUT; # auto encodes $_ - } - close(INPUT) || die "can't close $infile: $!"; - close(OUTPUT) || die "can't close $outfile: $!"; - - ### Version 2 via from_to() - open(INPUT, "< :raw", $infile) - || die "Can't open < $infile for reading: $!"; - open(OUTPUT, "> :raw", $outfile) - || die "Can't open > $output for writing: $!"; - - while () { - from_to($_, "shiftjis", "euc-jp", 1); # switch encoding - print OUTPUT; # emit raw (but properly encoded) data - } - close(INPUT) || die "can't close $infile: $!"; - close(OUTPUT) || die "can't close $outfile: $!"; - -In the first version above, you let the appropriate encoding layer -handle the conversion. In the second, you explicitly translate -from one encoding to the other. - -Unfortunately, it may be that encodings are not C-savvy. You can check -to see whether your encoding is supported by C by invoking the -C method on it: - - Encode::perlio_ok("hz"); # false - find_encoding("euc-cn")->perlio_ok; # true wherever PerlIO is available - - use Encode qw(perlio_ok); # imported upon request - perlio_ok("euc-jp") - -Fortunately, all encodings that come with C core are C-savvy -except for C and C. For the gory details, see -L and L. - -=head1 Handling Malformed Data - -The optional I argument tells C what to do when -encountering malformed data. Without I, C -(== 0) is assumed. - -As of version 2.12, C supports coderef values for C; -see below. - -B Not all encodings support this feature. -Some encodings ignore the I argument. For example, -L ignores I and it always croaks on error. - -=head2 List of I values - -=head3 FB_DEFAULT - - I = Encode::FB_DEFAULT ( == 0) - -If I is 0, encoding and decoding replace any malformed character -with a I. When you encode, I is used. -When you decode, the Unicode REPLACEMENT CHARACTER, code point U+FFFD, is -used. If the data is supposed to be UTF-8, an optional lexical warning of -warning category C<"utf8"> is given. - -=head3 FB_CROAK - - I = Encode::FB_CROAK ( == 1) - -If I is 1, methods immediately die with an error -message. Therefore, when I is 1, you should trap -exceptions with C, unless you really want to let it C. - -=head3 FB_QUIET - - I = Encode::FB_QUIET - -If I is set to C, encoding and decoding immediately -return the portion of the data that has been processed so far when an -error occurs. The data argument is overwritten with everything -after that point; that is, the unprocessed portion of the data. This is -handy when you have to call C repeatedly in the case where your -source data may contain partial multi-byte character sequences, -(that is, you are reading with a fixed-width buffer). Here's some sample -code to do exactly that: - - my($buffer, $string) = ("", ""); - while (read($fh, $buffer, 256, length($buffer))) { - $string .= decode($encoding, $buffer, Encode::FB_QUIET); - # $buffer now contains the unprocessed partial character - } - -=head3 FB_WARN - - I = Encode::FB_WARN - -This is the same as C above, except that instead of being silent -on errors, it issues a warning. This is handy for when you are debugging. - -=head3 FB_PERLQQ FB_HTMLCREF FB_XMLCREF - -=over 2 - -=item perlqq mode (I = Encode::FB_PERLQQ) - -=item HTML charref mode (I = Encode::FB_HTMLCREF) - -=item XML charref mode (I = Encode::FB_XMLCREF) - -=back - -For encodings that are implemented by the C module, C C<==> -C puts C and C into C fallback mode. - -When you decode, C<\xI> is inserted for a malformed character, where -I is the hex representation of the octet that could not be decoded to -utf8. When you encode, C<\x{I}> will be inserted, where I is -the Unicode code point (in any number of hex digits) of the character that -cannot be found in the character repertoire of the encoding. - -The HTML/XML character reference modes are about the same. In place of -C<\x{I}>, HTML uses C<&#I;> where I is a decimal number, and -XML uses C<&#xI;> where I is the hexadecimal number. - -In C 2.10 or later, C is also implied. - -=head3 The bitmask - -These modes are all actually set via a bitmask. Here is how the C> -constants are laid out. You can import the C> constants via -C, and you can import the generic bitmask -constants via C. - - FB_DEFAULT FB_CROAK FB_QUIET FB_WARN FB_PERLQQ - DIE_ON_ERR 0x0001 X - WARN_ON_ERR 0x0002 X - RETURN_ON_ERR 0x0004 X X - LEAVE_SRC 0x0008 X - PERLQQ 0x0100 X - HTMLCREF 0x0200 - XMLCREF 0x0400 - -=head3 LEAVE_SRC - - Encode::LEAVE_SRC - -If the C bit is I set but I is set, then the -source string to encode() or decode() will be overwritten in place. -If you're not interested in this, then bitwise-OR it with the bitmask. - -=head2 coderef for CHECK - -As of C 2.12, C can also be a code reference which takes the -ordinal value of the unmapped character as an argument and returns -octets that represent the fallback character. For instance: - - $ascii = encode("ascii", $utf8, sub{ sprintf "", shift }); - -Acts like C but U+I is used instead of C<\x{I}>. - -Fallback for C must return decoded string (sequence of characters) -and takes a list of ordinal values as its arguments. So for -example if you wish to decode octets as UTF-8, and use ISO-8859-15 as -a fallback for bytes that are not valid UTF-8, you could write - - $str = decode 'UTF-8', $octets, sub { - my $tmp = join '', map chr, @_; - return decode 'ISO-8859-15', $tmp; - }; - -=head1 Defining Encodings - -To define a new encoding, use: - - use Encode qw(define_encoding); - define_encoding($object, CANONICAL_NAME [, alias...]); - -I will be associated with I<$object>. The object -should provide the interface described in L. -If more than two arguments are provided, additional -arguments are considered aliases for I<$object>. - -See L for details. - -=head1 The UTF8 flag - -Before the introduction of Unicode support in Perl, The C operator -just compared the strings represented by two scalars. Beginning with -Perl 5.8, C compares two strings with simultaneous consideration of -I. To explain why we made it so, I quote from page 402 of -I - -=over 2 - -=item Goal #1: - -Old byte-oriented programs should not spontaneously break on the old -byte-oriented data they used to work on. - -=item Goal #2: - -Old byte-oriented programs should magically start working on the new -character-oriented data when appropriate. - -=item Goal #3: - -Programs should run just as fast in the new character-oriented mode -as in the old byte-oriented mode. - -=item Goal #4: - -Perl should remain one language, rather than forking into a -byte-oriented Perl and a character-oriented Perl. - -=back - -When I was written, not even Perl 5.6.0 had been -born yet, many features documented in the book remained unimplemented for a -long time. Perl 5.8 corrected much of this, and the introduction of the -UTF8 flag is one of them. You can think of there being two fundamentally -different kinds of strings and string-operations in Perl: one a -byte-oriented mode for when the internal UTF8 flag is off, and the other a -character-oriented mode for when the internal UTF8 flag is on. - -This UTF8 flag is not visible in Perl scripts, exactly for the same reason -you cannot (or rather, you I) see whether a scalar contains -a string, an integer, or a floating-point number. But you can still peek -and poke these if you will. See the next section. - -=head2 Messing with Perl's Internals - -The following API uses parts of Perl's internals in the current -implementation. As such, they are efficient but may change in a future -release. - -=head3 is_utf8 - - is_utf8(STRING [, CHECK]) - -[INTERNAL] Tests whether the UTF8 flag is turned on in the I. -If I is true, also checks whether I contains well-formed -UTF-8. Returns true if successful, false otherwise. - -Typically only necessary for debugging and testing. Don't use this flag as -a marker to distinguish character and binary data, that should be decided -for each variable when you write your code. - -B: If I has UTF8 flag set, it does B mean that -I is UTF-8 encoded and vice-versa. - -As of Perl 5.8.1, L also has the C function. - -=head3 _utf8_on - - _utf8_on(STRING) - -[INTERNAL] Turns the I's internal UTF8 flag B. The I -is I checked for containing only well-formed UTF-8. Do not use this -unless you I that the STRING holds only -well-formed UTF-8. Returns the previous state of the UTF8 flag (so please -don't treat the return value as indicating success or failure), or C -if I is not a string. - -B: For security reasons, this function does not work on tainted values. - -=head3 _utf8_off - - _utf8_off(STRING) - -[INTERNAL] Turns the I's internal UTF8 flag B. Do not use -frivolously. Returns the previous state of the UTF8 flag, or C if -I is not a string. Do not treat the return value as indicative of -success or failure, because that isn't what it means: it is only the -previous setting. - -B: For security reasons, this function does not work on tainted values. - -=head1 UTF-8 vs. utf8 vs. UTF8 - - ....We now view strings not as sequences of bytes, but as sequences - of numbers in the range 0 .. 2**32-1 (or in the case of 64-bit - computers, 0 .. 2**64-1) -- Programming Perl, 3rd ed. - -That has historically been Perl's notion of UTF-8, as that is how UTF-8 was -first conceived by Ken Thompson when he invented it. However, thanks to -later revisions to the applicable standards, official UTF-8 is now rather -stricter than that. For example, its range is much narrower (0 .. 0x10_FFFF -to cover only 21 bits instead of 32 or 64 bits) and some sequences -are not allowed, like those used in surrogate pairs, the 31 non-character -code points 0xFDD0 .. 0xFDEF, the last two code points in I plane -(0xI_FFFE and 0xI_FFFF), all non-shortest encodings, etc. - -The former default in which Perl would always use a loose interpretation of -UTF-8 has now been overruled: - - From: Larry Wall - Date: December 04, 2004 11:51:58 JST - To: perl-unicode@perl.org - Subject: Re: Make Encode.pm support the real UTF-8 - Message-Id: <20041204025158.GA28754@wall.org> - - On Fri, Dec 03, 2004 at 10:12:12PM +0000, Tim Bunce wrote: - : I've no problem with 'utf8' being perl's unrestricted uft8 encoding, - : but "UTF-8" is the name of the standard and should give the - : corresponding behaviour. - - For what it's worth, that's how I've always kept them straight in my - head. - - Also for what it's worth, Perl 6 will mostly default to strict but - make it easy to switch back to lax. - - Larry - -Got that? As of Perl 5.8.7, B<"UTF-8"> means UTF-8 in its current -sense, which is conservative and strict and security-conscious, whereas -B<"utf8"> means UTF-8 in its former sense, which was liberal and loose and -lax. C version 2.10 or later thus groks this subtle but critically -important distinction between C<"UTF-8"> and C<"utf8">. - - encode("utf8", "\x{FFFF_FFFF}", 1); # okay - encode("UTF-8", "\x{FFFF_FFFF}", 1); # croaks - -In the C module, C<"UTF-8"> is actually a canonical name for -C<"utf-8-strict">. That hyphen between the C<"UTF"> and the C<"8"> is -critical; without it, C goes "liberal" and (perhaps overly-)permissive: - - find_encoding("UTF-8")->name # is 'utf-8-strict' - find_encoding("utf-8")->name # ditto. names are case insensitive - find_encoding("utf_8")->name # ditto. "_" are treated as "-" - find_encoding("UTF8")->name # is 'utf8'. - -Perl's internal UTF8 flag is called "UTF8", without a hyphen. It indicates -whether a string is internally encoded as "utf8", also without a hyphen. - -=head1 SEE ALSO - -L, -L, -L, -L, -L, -L, -L, L, L, L -L, -the Perl Unicode Mailing List L - -=head1 MAINTAINER - -This project was originated by the late Nick Ing-Simmons and later -maintained by Dan Kogai I<< >>. See AUTHORS -for a full list of people involved. For any questions, send mail to -I<< >> so that we can all share. - -While Dan Kogai retains the copyright as a maintainer, credit -should go to all those involved. See AUTHORS for a list of those -who submitted code to the project. - -=head1 COPYRIGHT - -Copyright 2002-2014 Dan Kogai I<< >>. - -This library is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Alias.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Alias.pm deleted file mode 100644 index dbfa01b6..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Alias.pm +++ /dev/null @@ -1,395 +0,0 @@ -package Encode::Alias; -use strict; -use warnings; -our $VERSION = do { my @r = ( q$Revision: 2.24 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; -use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG}; - -use Exporter 'import'; - -# Public, encouraged API is exported by default - -our @EXPORT = - qw ( - define_alias - find_alias -); - -our @Alias; # ordered matching list -our %Alias; # cached known aliases - -sub find_alias { - my $class = shift; - my $find = shift; - unless ( exists $Alias{$find} ) { - $Alias{$find} = undef; # Recursion guard - for ( my $i = 0 ; $i < @Alias ; $i += 2 ) { - my $alias = $Alias[$i]; - my $val = $Alias[ $i + 1 ]; - my $new; - if ( ref($alias) eq 'Regexp' && $find =~ $alias ) { - DEBUG and warn "eval $val"; - $new = eval $val; - DEBUG and $@ and warn "$val, $@"; - } - elsif ( ref($alias) eq 'CODE' ) { - DEBUG and warn "$alias", "->", "($find)"; - $new = $alias->($find); - } - elsif ( lc($find) eq lc($alias) ) { - $new = $val; - } - if ( defined($new) ) { - next if $new eq $find; # avoid (direct) recursion on bugs - DEBUG and warn "$alias, $new"; - my $enc = - ( ref($new) ) ? $new : Encode::find_encoding($new); - if ($enc) { - $Alias{$find} = $enc; - last; - } - } - } - - # case insensitive search when canonical is not in all lowercase - # RT ticket #7835 - unless ( $Alias{$find} ) { - my $lcfind = lc($find); - for my $name ( keys %Encode::Encoding, keys %Encode::ExtModule ) - { - $lcfind eq lc($name) or next; - $Alias{$find} = Encode::find_encoding($name); - DEBUG and warn "$find => $name"; - } - } - } - if (DEBUG) { - my $name; - if ( my $e = $Alias{$find} ) { - $name = $e->name; - } - else { - $name = ""; - } - warn "find_alias($class, $find)->name = $name"; - } - return $Alias{$find}; -} - -sub define_alias { - while (@_) { - my $alias = shift; - my $name = shift; - unshift( @Alias, $alias => $name ) # newer one has precedence - if defined $alias; - if ( ref($alias) ) { - - # clear %Alias cache to allow overrides - my @a = keys %Alias; - for my $k (@a) { - if ( ref($alias) eq 'Regexp' && $k =~ $alias ) { - DEBUG and warn "delete \$Alias\{$k\}"; - delete $Alias{$k}; - } - elsif ( ref($alias) eq 'CODE' && $alias->($k) ) { - DEBUG and warn "delete \$Alias\{$k\}"; - delete $Alias{$k}; - } - } - } - elsif (defined $alias) { - DEBUG and warn "delete \$Alias\{$alias\}"; - delete $Alias{$alias}; - } - elsif (DEBUG) { - require Carp; - Carp::croak("undef \$alias"); - } - } -} - -# HACK: Encode must be used after define_alias is declarated as Encode calls define_alias -use Encode (); - -# Allow latin-1 style names as well -# 0 1 2 3 4 5 6 7 8 9 10 -our @Latin2iso = ( 0, 1, 2, 3, 4, 9, 10, 13, 14, 15, 16 ); - -# Allow winlatin1 style names as well -our %Winlatin2cp = ( - 'latin1' => 1252, - 'latin2' => 1250, - 'cyrillic' => 1251, - 'greek' => 1253, - 'turkish' => 1254, - 'hebrew' => 1255, - 'arabic' => 1256, - 'baltic' => 1257, - 'vietnamese' => 1258, -); - -init_aliases(); - -sub undef_aliases { - @Alias = (); - %Alias = (); -} - -sub init_aliases { - undef_aliases(); - - # Try all-lower-case version should all else fails - define_alias( qr/^(.*)$/ => '"\L$1"' ); - - # UTF/UCS stuff - define_alias( qr/^(unicode-1-1-)?UTF-?7$/i => '"UTF-7"' ); - define_alias( qr/^UCS-?2-?LE$/i => '"UCS-2LE"' ); - define_alias( - qr/^UCS-?2-?(BE)?$/i => '"UCS-2BE"', - qr/^UCS-?4-?(BE|LE|)?$/i => 'uc("UTF-32$1")', - qr/^iso-10646-1$/i => '"UCS-2BE"' - ); - define_alias( - qr/^UTF-?(16|32)-?BE$/i => '"UTF-$1BE"', - qr/^UTF-?(16|32)-?LE$/i => '"UTF-$1LE"', - qr/^UTF-?(16|32)$/i => '"UTF-$1"', - ); - - # ASCII - define_alias( qr/^(?:US-?)ascii$/i => '"ascii"' ); - define_alias( 'C' => 'ascii' ); - define_alias( qr/\b(?:ISO[-_]?)?646(?:[-_]?US)?$/i => '"ascii"' ); - - # Allow variants of iso-8859-1 etc. - define_alias( qr/\biso[-_]?(\d+)[-_](\d+)$/i => '"iso-$1-$2"' ); - - # At least HP-UX has these. - define_alias( qr/\biso8859(\d+)$/i => '"iso-8859-$1"' ); - - # More HP stuff. - define_alias( - qr/\b(?:hp-)?(arabic|greek|hebrew|kana|roman|thai|turkish)8$/i => - '"${1}8"' ); - - # The Official name of ASCII. - define_alias( qr/\bANSI[-_]?X3\.4[-_]?1968$/i => '"ascii"' ); - - # This is a font issue, not an encoding issue. - # (The currency symbol of the Latin 1 upper half - # has been redefined as the euro symbol.) - define_alias( qr/^(.+)\@euro$/i => '"$1"' ); - - define_alias( qr/\b(?:iso[-_]?)?latin[-_]?(\d+)$/i => -'defined $Encode::Alias::Latin2iso[$1] ? "iso-8859-$Encode::Alias::Latin2iso[$1]" : undef' - ); - - define_alias( - qr/\bwin(latin[12]|cyrillic|baltic|greek|turkish| - hebrew|arabic|baltic|vietnamese)$/ix => - '"cp" . $Encode::Alias::Winlatin2cp{lc($1)}' - ); - - # Common names for non-latin preferred MIME names - define_alias( - 'ascii' => 'US-ascii', - 'cyrillic' => 'iso-8859-5', - 'arabic' => 'iso-8859-6', - 'greek' => 'iso-8859-7', - 'hebrew' => 'iso-8859-8', - 'thai' => 'iso-8859-11', - ); - # RT #20781 - define_alias(qr/\btis-?620\b/i => '"iso-8859-11"'); - - # At least AIX has IBM-NNN (surprisingly...) instead of cpNNN. - # And Microsoft has their own naming (again, surprisingly). - # And windows-* is registered in IANA! - define_alias( - qr/\b(?:cp|ibm|ms|windows)[-_ ]?(\d{2,4})$/i => '"cp$1"' ); - - # Sometimes seen with a leading zero. - # define_alias( qr/\bcp037\b/i => '"cp37"'); - - # Mac Mappings - # predefined in *.ucm; unneeded - # define_alias( qr/\bmacIcelandic$/i => '"macIceland"'); - define_alias( qr/^(?:x[_-])?mac[_-](.*)$/i => '"mac$1"' ); - # http://rt.cpan.org/Ticket/Display.html?id=36326 - define_alias( qr/^macintosh$/i => '"MacRoman"' ); - # https://rt.cpan.org/Ticket/Display.html?id=78125 - define_alias( qr/^macce$/i => '"MacCentralEurRoman"' ); - # Ououououou. gone. They are different! - # define_alias( qr/\bmacRomanian$/i => '"macRumanian"'); - - # Standardize on the dashed versions. - define_alias( qr/\bkoi8[\s\-_]*([ru])$/i => '"koi8-$1"' ); - - unless ($Encode::ON_EBCDIC) { - - # for Encode::CN - define_alias( qr/\beuc.*cn$/i => '"euc-cn"' ); - define_alias( qr/\bcn.*euc$/i => '"euc-cn"' ); - - # define_alias( qr/\bGB[- ]?(\d+)$/i => '"euc-cn"' ) - # CP936 doesn't have vendor-addon for GBK, so they're identical. - define_alias( qr/^gbk$/i => '"cp936"' ); - - # This fixes gb2312 vs. euc-cn confusion, practically - define_alias( qr/\bGB[-_ ]?2312(?!-?raw)/i => '"euc-cn"' ); - - # for Encode::JP - define_alias( qr/\bjis$/i => '"7bit-jis"' ); - define_alias( qr/\beuc.*jp$/i => '"euc-jp"' ); - define_alias( qr/\bjp.*euc$/i => '"euc-jp"' ); - define_alias( qr/\bujis$/i => '"euc-jp"' ); - define_alias( qr/\bshift.*jis$/i => '"shiftjis"' ); - define_alias( qr/\bsjis$/i => '"shiftjis"' ); - define_alias( qr/\bwindows-31j$/i => '"cp932"' ); - - # for Encode::KR - define_alias( qr/\beuc.*kr$/i => '"euc-kr"' ); - define_alias( qr/\bkr.*euc$/i => '"euc-kr"' ); - - # This fixes ksc5601 vs. euc-kr confusion, practically - define_alias( qr/(?:x-)?uhc$/i => '"cp949"' ); - define_alias( qr/(?:x-)?windows-949$/i => '"cp949"' ); - define_alias( qr/\bks_c_5601-1987$/i => '"cp949"' ); - - # for Encode::TW - define_alias( qr/\bbig-?5$/i => '"big5-eten"' ); - define_alias( qr/\bbig5-?et(?:en)?$/i => '"big5-eten"' ); - define_alias( qr/\btca[-_]?big5$/i => '"big5-eten"' ); - define_alias( qr/\bbig5-?hk(?:scs)?$/i => '"big5-hkscs"' ); - define_alias( qr/\bhk(?:scs)?[-_]?big5$/i => '"big5-hkscs"' ); - } - - # https://github.com/dankogai/p5-encode/issues/37 - define_alias(qr/cp65000/i => '"UTF-7"'); - define_alias(qr/cp65001/i => '"utf-8-strict"'); - - # utf8 is blessed :) - define_alias( qr/\bUTF-8$/i => '"utf-8-strict"' ); - - # At last, Map white space and _ to '-' - define_alias( qr/^([^\s_]+)[\s_]+([^\s_]*)$/i => '"$1-$2"' ); -} - -1; -__END__ - -# TODO: HP-UX '8' encodings arabic8 greek8 hebrew8 kana8 thai8 turkish8 -# TODO: HP-UX '15' encodings japanese15 korean15 roi15 -# TODO: Cyrillic encoding ISO-IR-111 (useful?) -# TODO: Armenian encoding ARMSCII-8 -# TODO: Hebrew encoding ISO-8859-8-1 -# TODO: Thai encoding TCVN -# TODO: Vietnamese encodings VPS -# TODO: Mac Asian+African encodings: Arabic Armenian Bengali Burmese -# ChineseSimp ChineseTrad Devanagari Ethiopic ExtArabic -# Farsi Georgian Gujarati Gurmukhi Hebrew Japanese -# Kannada Khmer Korean Laotian Malayalam Mongolian -# Oriya Sinhalese Symbol Tamil Telugu Tibetan Vietnamese - -=head1 NAME - -Encode::Alias - alias definitions to encodings - -=head1 SYNOPSIS - - use Encode; - use Encode::Alias; - define_alias( "newName" => ENCODING); - define_alias( qr/.../ => ENCODING); - define_alias( sub { return ENCODING if ...; } ); - -=head1 DESCRIPTION - -Allows newName to be used as an alias for ENCODING. ENCODING may be -either the name of an encoding or an encoding object (as described -in L). - -Currently the first argument to define_alias() can be specified in the -following ways: - -=over 4 - -=item As a simple string. - -=item As a qr// compiled regular expression, e.g.: - - define_alias( qr/^iso8859-(\d+)$/i => '"iso-8859-$1"' ); - -In this case, if I is not a reference, it is C-ed -in order to allow C<$1> etc. to be substituted. The example is one -way to alias names as used in X11 fonts to the MIME names for the -iso-8859-* family. Note the double quotes inside the single quotes. - -(or, you don't have to do this yourself because this example is predefined) - -If you are using a regex here, you have to use the quotes as shown or -it won't work. Also note that regex handling is tricky even for the -experienced. Use this feature with caution. - -=item As a code reference, e.g.: - - define_alias( sub {shift =~ /^iso8859-(\d+)$/i ? "iso-8859-$1" : undef } ); - -The same effect as the example above in a different way. The coderef -takes the alias name as an argument and returns a canonical name on -success or undef if not. Note the second argument is ignored if provided. -Use this with even more caution than the regex version. - -=back - -=head3 Changes in code reference aliasing - -As of Encode 1.87, the older form - - define_alias( sub { return /^iso8859-(\d+)$/i ? "iso-8859-$1" : undef } ); - -no longer works. - -Encode up to 1.86 internally used "local $_" to implement this older -form. But consider the code below; - - use Encode; - $_ = "eeeee" ; - while (/(e)/g) { - my $utf = decode('aliased-encoding-name', $1); - print "position:",pos,"\n"; - } - -Prior to Encode 1.86 this fails because of "local $_". - -=head2 Alias overloading - -You can override predefined aliases by simply applying define_alias(). -The new alias is always evaluated first, and when necessary, -define_alias() flushes the internal cache to make the new definition -available. - - # redirect SHIFT_JIS to MS/IBM Code Page 932, which is a - # superset of SHIFT_JIS - - define_alias( qr/shift.*jis$/i => '"cp932"' ); - define_alias( qr/sjis$/i => '"cp932"' ); - -If you want to zap all predefined aliases, you can use - - Encode::Alias->undef_aliases; - -to do so. And - - Encode::Alias->init_aliases; - -gets the factory settings back. - -Note that define_alias() will not be able to override the canonical name -of encodings. Encodings are first looked up by canonical name before -potential aliases are tried. - -=head1 SEE ALSO - -L, L - -=cut - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Byte.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Byte.pm deleted file mode 100644 index d105aa27..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Byte.pm +++ /dev/null @@ -1,120 +0,0 @@ -package Encode::Byte; -use strict; -use warnings; -use Encode; -our $VERSION = do { my @r = ( q$Revision: 2.4 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -use XSLoader; -XSLoader::load( __PACKAGE__, $VERSION ); - -1; -__END__ - -=head1 NAME - -Encode::Byte - Single Byte Encodings - -=head1 SYNOPSIS - - use Encode qw/encode decode/; - $greek = encode("iso-8859-7", $utf8); # loads Encode::Byte implicitly - $utf8 = decode("iso-8859-7", $greek); # ditto - -=head1 ABSTRACT - -This module implements various single byte encodings. For most cases it uses -\x80-\xff (upper half) to map non-ASCII characters. Encodings -supported are as follows. - - Canonical Alias Description - -------------------------------------------------------------------- - # ISO 8859 series - (iso-8859-1 is in built-in) - iso-8859-2 latin2 [ISO] - iso-8859-3 latin3 [ISO] - iso-8859-4 latin4 [ISO] - iso-8859-5 [ISO] - iso-8859-6 [ISO] - iso-8859-7 [ISO] - iso-8859-8 [ISO] - iso-8859-9 latin5 [ISO] - iso-8859-10 latin6 [ISO] - iso-8859-11 - (iso-8859-12 is nonexistent) - iso-8859-13 latin7 [ISO] - iso-8859-14 latin8 [ISO] - iso-8859-15 latin9 [ISO] - iso-8859-16 latin10 [ISO] - - # Cyrillic - koi8-f - koi8-r cp878 [RFC1489] - koi8-u [RFC2319] - - # Vietnamese - viscii - - # all cp* are also available as ibm-*, ms-*, and windows-* - # also see L - - cp424 - cp437 - cp737 - cp775 - cp850 - cp852 - cp855 - cp856 - cp857 - cp860 - cp861 - cp862 - cp863 - cp864 - cp865 - cp866 - cp869 - cp874 - cp1006 - cp1250 WinLatin2 - cp1251 WinCyrillic - cp1252 WinLatin1 - cp1253 WinGreek - cp1254 WinTurkish - cp1255 WinHebrew - cp1256 WinArabic - cp1257 WinBaltic - cp1258 WinVietnamese - - # Macintosh - # Also see L - MacArabic - MacCentralEurRoman - MacCroatian - MacCyrillic - MacFarsi - MacGreek - MacHebrew - MacIcelandic - MacRoman - MacRomanian - MacRumanian - MacSami - MacThai - MacTurkish - MacUkrainian - - # More vendor encodings - AdobeStandardEncoding - nextstep - hp-roman8 - -=head1 DESCRIPTION - -To find how to use this module in detail, see L. - -=head1 SEE ALSO - -L - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/CJKConstants.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/CJKConstants.pm deleted file mode 100644 index 43d20337..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/CJKConstants.pm +++ /dev/null @@ -1,66 +0,0 @@ -# -# $Id: CJKConstants.pm,v 2.2 2006/06/03 20:28:48 dankogai Exp $ -# - -package Encode::CJKConstants; - -use strict; -use warnings; -our $RCSID = q$Id: CJKConstants.pm,v 2.2 2006/06/03 20:28:48 dankogai Exp $; -our $VERSION = do { my @r = ( q$Revision: 2.2 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -use Carp; - -require Exporter; -our @ISA = qw(Exporter); -our @EXPORT = qw(); -our @EXPORT_OK = qw(%CHARCODE %ESC %RE); -our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK, @EXPORT ] ); - -my %_0208 = ( - 1978 => '\e\$\@', - 1983 => '\e\$B', - 1990 => '\e&\@\e\$B', -); - -our %CHARCODE = ( - UNDEF_EUC => "\xa2\xae", # in EUC - UNDEF_SJIS => "\x81\xac", # in SJIS - UNDEF_JIS => "\xa2\xf7", # -- used in unicode - UNDEF_UNICODE => "\x20\x20", # -- used in unicode -); - -our %ESC = ( - GB_2312 => "\e\$A", - JIS_0208 => "\e\$B", - JIS_0212 => "\e\$(D", - KSC_5601 => "\e\$(C", - ASC => "\e\(B", - KANA => "\e\(I", - '2022_KR' => "\e\$)C", -); - -our %RE = ( - ASCII => '[\x00-\x7f]', - BIN => '[\x00-\x06\x7f\xff]', - EUC_0212 => '\x8f[\xa1-\xfe][\xa1-\xfe]', - EUC_C => '[\xa1-\xfe][\xa1-\xfe]', - EUC_KANA => '\x8e[\xa1-\xdf]', - JIS_0208 => "$_0208{1978}|$_0208{1983}|$_0208{1990}", - JIS_0212 => "\e" . '\$\(D', - ISO_ASC => "\e" . '\([BJ]', - JIS_KANA => "\e" . '\(I', - '2022_KR' => "\e" . '\$\)C', - SJIS_C => '[\x81-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc]', - SJIS_KANA => '[\xa1-\xdf]', - UTF8 => '[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf][\x80-\xbf]' -); - -1; - -=head1 NAME - -Encode::CJKConstants.pm -- Internally used by Encode::??::ISO_2022_* - -=cut - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/CN.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/CN.pm deleted file mode 100644 index 830f3450..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/CN.pm +++ /dev/null @@ -1,74 +0,0 @@ -package Encode::CN; -BEGIN { - if ( ord("A") == 193 ) { - die "Encode::CN not supported on EBCDIC\n"; - } -} -use strict; -use warnings; -use Encode; -our $VERSION = do { my @r = ( q$Revision: 2.3 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; -use XSLoader; -XSLoader::load( __PACKAGE__, $VERSION ); - -# Relocated from Encode.pm - -use Encode::CN::HZ; - -# use Encode::CN::2022_CN; - -1; -__END__ - -=head1 NAME - -Encode::CN - China-based Chinese Encodings - -=head1 SYNOPSIS - - use Encode qw/encode decode/; - $euc_cn = encode("euc-cn", $utf8); # loads Encode::CN implicitly - $utf8 = decode("euc-cn", $euc_cn); # ditto - -=head1 DESCRIPTION - -This module implements China-based Chinese charset encodings. -Encodings supported are as follows. - - Canonical Alias Description - -------------------------------------------------------------------- - euc-cn /\beuc.*cn$/i EUC (Extended Unix Character) - /\bcn.*euc$/i - /\bGB[-_ ]?2312(?:\D.*$|$)/i (see below) - gb2312-raw The raw (low-bit) GB2312 character map - gb12345-raw Traditional chinese counterpart to - GB2312 (raw) - iso-ir-165 GB2312 + GB6345 + GB8565 + additions - MacChineseSimp GB2312 + Apple Additions - cp936 Code Page 936, also known as GBK - (Extended GuoBiao) - hz 7-bit escaped GB2312 encoding - -------------------------------------------------------------------- - -To find how to use this module in detail, see L. - -=head1 NOTES - -Due to size concerns, C (an extension to C) is distributed -separately on CPAN, under the name L. That module -also contains extra Taiwan-based encodings. - -=head1 BUGS - -When you see C on mails and web pages, they really -mean C encodings. To fix that, C is aliased to C. -Use C when you really mean it. - -The ASCII region (0x00-0x7f) is preserved for all encodings, even though -this conflicts with mappings by the Unicode Consortium. - -=head1 SEE ALSO - -L - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/CN/HZ.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/CN/HZ.pm deleted file mode 100644 index e444cb01..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/CN/HZ.pm +++ /dev/null @@ -1,201 +0,0 @@ -package Encode::CN::HZ; - -use strict; -use warnings; -use utf8 (); - -use vars qw($VERSION); -$VERSION = do { my @r = ( q$Revision: 2.10 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -use Encode qw(:fallbacks); - -use parent qw(Encode::Encoding); -__PACKAGE__->Define('hz'); - -# HZ is a combination of ASCII and escaped GB, so we implement it -# with the GB2312(raw) encoding here. Cf. RFCs 1842 & 1843. - -# not ported for EBCDIC. Which should be used, "~" or "\x7E"? - -sub needs_lines { 1 } - -sub decode ($$;$) { - my ( $obj, $str, $chk ) = @_; - return undef unless defined $str; - - my $GB = Encode::find_encoding('gb2312-raw'); - my $ret = substr($str, 0, 0); # to propagate taintedness - my $in_ascii = 1; # default mode is ASCII. - - while ( length $str ) { - if ($in_ascii) { # ASCII mode - if ( $str =~ s/^([\x00-\x7D\x7F]+)// ) { # no '~' => ASCII - $ret .= $1; - - # EBCDIC should need ascii2native, but not ported. - } - elsif ( $str =~ s/^\x7E\x7E// ) { # escaped tilde - $ret .= '~'; - } - elsif ( $str =~ s/^\x7E\cJ// ) { # '\cJ' == LF in ASCII - 1; # no-op - } - elsif ( $str =~ s/^\x7E\x7B// ) { # '~{' - $in_ascii = 0; # to GB - } - else { # encounters an invalid escape, \x80 or greater - last; - } - } - else { # GB mode; the byte ranges are as in RFC 1843. - no warnings 'uninitialized'; - if ( $str =~ s/^((?:[\x21-\x77][\x21-\x7E])+)// ) { - my $prefix = $1; - $ret .= $GB->decode( $prefix, $chk ); - } - elsif ( $str =~ s/^\x7E\x7D// ) { # '~}' - $in_ascii = 1; - } - else { # invalid - last; - } - } - } - $_[1] = '' if $chk; # needs_lines guarantees no partial character - return $ret; -} - -sub cat_decode { - my ( $obj, undef, $src, $pos, $trm, $chk ) = @_; - my ( $rdst, $rsrc, $rpos ) = \@_[ 1 .. 3 ]; - - my $GB = Encode::find_encoding('gb2312-raw'); - my $ret = ''; - my $in_ascii = 1; # default mode is ASCII. - - my $ini_pos = pos($$rsrc); - - substr( $src, 0, $pos ) = ''; - - my $ini_len = bytes::length($src); - - # $trm is the first of the pair '~~', then 2nd tilde is to be removed. - # XXX: Is better C<$src =~ s/^\x7E// or die if ...>? - $src =~ s/^\x7E// if $trm eq "\x7E"; - - while ( length $src ) { - my $now; - if ($in_ascii) { # ASCII mode - if ( $src =~ s/^([\x00-\x7D\x7F])// ) { # no '~' => ASCII - $now = $1; - } - elsif ( $src =~ s/^\x7E\x7E// ) { # escaped tilde - $now = '~'; - } - elsif ( $src =~ s/^\x7E\cJ// ) { # '\cJ' == LF in ASCII - next; - } - elsif ( $src =~ s/^\x7E\x7B// ) { # '~{' - $in_ascii = 0; # to GB - next; - } - else { # encounters an invalid escape, \x80 or greater - last; - } - } - else { # GB mode; the byte ranges are as in RFC 1843. - if ( $src =~ s/^((?:[\x21-\x77][\x21-\x7F])+)// ) { - $now = $GB->decode( $1, $chk ); - } - elsif ( $src =~ s/^\x7E\x7D// ) { # '~}' - $in_ascii = 1; - next; - } - else { # invalid - last; - } - } - - next if !defined $now; - - $ret .= $now; - - if ( $now eq $trm ) { - $$rdst .= $ret; - $$rpos = $ini_pos + $pos + $ini_len - bytes::length($src); - pos($$rsrc) = $ini_pos; - return 1; - } - } - - $$rdst .= $ret; - $$rpos = $ini_pos + $pos + $ini_len - bytes::length($src); - pos($$rsrc) = $ini_pos; - return ''; # terminator not found -} - -sub encode($$;$) { - my ( $obj, $str, $chk ) = @_; - return undef unless defined $str; - - my $GB = Encode::find_encoding('gb2312-raw'); - my $ret = substr($str, 0, 0); # to propagate taintedness; - my $in_ascii = 1; # default mode is ASCII. - - no warnings 'utf8'; # $str may be malformed UTF8 at the end of a chunk. - - while ( length $str ) { - if ( $str =~ s/^([[:ascii:]]+)// ) { - my $tmp = $1; - $tmp =~ s/~/~~/g; # escapes tildes - if ( !$in_ascii ) { - $ret .= "\x7E\x7D"; # '~}' - $in_ascii = 1; - } - $ret .= pack 'a*', $tmp; # remove UTF8 flag. - } - elsif ( $str =~ s/(.)// ) { - my $s = $1; - my $tmp = $GB->encode( $s, $chk || 0 ); - last if !defined $tmp; - if ( length $tmp == 2 ) { # maybe a valid GB char (XXX) - if ($in_ascii) { - $ret .= "\x7E\x7B"; # '~{' - $in_ascii = 0; - } - $ret .= $tmp; - } - elsif ( length $tmp ) { # maybe FALLBACK in ASCII (XXX) - if ( !$in_ascii ) { - $ret .= "\x7E\x7D"; # '~}' - $in_ascii = 1; - } - $ret .= $tmp; - } - } - else { # if $str is malformed UTF8 *and* if length $str != 0. - last; - } - } - $_[1] = $str if $chk; - - # The state at the end of the chunk is discarded, even if in GB mode. - # That results in the combination of GB-OUT and GB-IN, i.e. "~}~{". - # Parhaps it is harmless, but further investigations may be required... - - if ( !$in_ascii ) { - $ret .= "\x7E\x7D"; # '~}' - $in_ascii = 1; - } - utf8::encode($ret); # https://rt.cpan.org/Ticket/Display.html?id=35120 - return $ret; -} - -1; -__END__ - -=head1 NAME - -Encode::CN::HZ -- internally used by Encode::CN - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Changes.e2x b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Changes.e2x deleted file mode 100644 index 5c67c55c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Changes.e2x +++ /dev/null @@ -1,7 +0,0 @@ -# -# $Id: Changes.e2x,v 2.0 2004/05/16 20:55:15 dankogai Exp $ -# Revision history for Perl extension Encode::$_Name_. -# - -0.01 $_Now_ - Autogenerated by enc2xs version $_Version_. diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Config.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Config.pm deleted file mode 100644 index 1286a479..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Config.pm +++ /dev/null @@ -1,170 +0,0 @@ -# -# Demand-load module list -# -package Encode::Config; -our $VERSION = do { my @r = ( q$Revision: 2.5 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -use strict; -use warnings; - -our %ExtModule = ( - - # Encode::Byte - #iso-8859-1 is in Encode.pm itself - 'iso-8859-2' => 'Encode::Byte', - 'iso-8859-3' => 'Encode::Byte', - 'iso-8859-4' => 'Encode::Byte', - 'iso-8859-5' => 'Encode::Byte', - 'iso-8859-6' => 'Encode::Byte', - 'iso-8859-7' => 'Encode::Byte', - 'iso-8859-8' => 'Encode::Byte', - 'iso-8859-9' => 'Encode::Byte', - 'iso-8859-10' => 'Encode::Byte', - 'iso-8859-11' => 'Encode::Byte', - 'iso-8859-13' => 'Encode::Byte', - 'iso-8859-14' => 'Encode::Byte', - 'iso-8859-15' => 'Encode::Byte', - 'iso-8859-16' => 'Encode::Byte', - 'koi8-f' => 'Encode::Byte', - 'koi8-r' => 'Encode::Byte', - 'koi8-u' => 'Encode::Byte', - 'viscii' => 'Encode::Byte', - 'cp424' => 'Encode::Byte', - 'cp437' => 'Encode::Byte', - 'cp737' => 'Encode::Byte', - 'cp775' => 'Encode::Byte', - 'cp850' => 'Encode::Byte', - 'cp852' => 'Encode::Byte', - 'cp855' => 'Encode::Byte', - 'cp856' => 'Encode::Byte', - 'cp857' => 'Encode::Byte', - 'cp858' => 'Encode::Byte', - 'cp860' => 'Encode::Byte', - 'cp861' => 'Encode::Byte', - 'cp862' => 'Encode::Byte', - 'cp863' => 'Encode::Byte', - 'cp864' => 'Encode::Byte', - 'cp865' => 'Encode::Byte', - 'cp866' => 'Encode::Byte', - 'cp869' => 'Encode::Byte', - 'cp874' => 'Encode::Byte', - 'cp1006' => 'Encode::Byte', - 'cp1250' => 'Encode::Byte', - 'cp1251' => 'Encode::Byte', - 'cp1252' => 'Encode::Byte', - 'cp1253' => 'Encode::Byte', - 'cp1254' => 'Encode::Byte', - 'cp1255' => 'Encode::Byte', - 'cp1256' => 'Encode::Byte', - 'cp1257' => 'Encode::Byte', - 'cp1258' => 'Encode::Byte', - 'AdobeStandardEncoding' => 'Encode::Byte', - 'MacArabic' => 'Encode::Byte', - 'MacCentralEurRoman' => 'Encode::Byte', - 'MacCroatian' => 'Encode::Byte', - 'MacCyrillic' => 'Encode::Byte', - 'MacFarsi' => 'Encode::Byte', - 'MacGreek' => 'Encode::Byte', - 'MacHebrew' => 'Encode::Byte', - 'MacIcelandic' => 'Encode::Byte', - 'MacRoman' => 'Encode::Byte', - 'MacRomanian' => 'Encode::Byte', - 'MacRumanian' => 'Encode::Byte', - 'MacSami' => 'Encode::Byte', - 'MacThai' => 'Encode::Byte', - 'MacTurkish' => 'Encode::Byte', - 'MacUkrainian' => 'Encode::Byte', - 'nextstep' => 'Encode::Byte', - 'hp-roman8' => 'Encode::Byte', - #'gsm0338' => 'Encode::Byte', - 'gsm0338' => 'Encode::GSM0338', - - # Encode::EBCDIC - 'cp37' => 'Encode::EBCDIC', - 'cp500' => 'Encode::EBCDIC', - 'cp875' => 'Encode::EBCDIC', - 'cp1026' => 'Encode::EBCDIC', - 'cp1047' => 'Encode::EBCDIC', - 'posix-bc' => 'Encode::EBCDIC', - - # Encode::Symbol - 'dingbats' => 'Encode::Symbol', - 'symbol' => 'Encode::Symbol', - 'AdobeSymbol' => 'Encode::Symbol', - 'AdobeZdingbat' => 'Encode::Symbol', - 'MacDingbats' => 'Encode::Symbol', - 'MacSymbol' => 'Encode::Symbol', - - # Encode::Unicode - 'UCS-2BE' => 'Encode::Unicode', - 'UCS-2LE' => 'Encode::Unicode', - 'UTF-16' => 'Encode::Unicode', - 'UTF-16BE' => 'Encode::Unicode', - 'UTF-16LE' => 'Encode::Unicode', - 'UTF-32' => 'Encode::Unicode', - 'UTF-32BE' => 'Encode::Unicode', - 'UTF-32LE' => 'Encode::Unicode', - 'UTF-7' => 'Encode::Unicode::UTF7', -); - -unless ( ord("A") == 193 ) { - %ExtModule = ( - %ExtModule, - 'euc-cn' => 'Encode::CN', - 'gb12345-raw' => 'Encode::CN', - 'gb2312-raw' => 'Encode::CN', - 'hz' => 'Encode::CN', - 'iso-ir-165' => 'Encode::CN', - 'cp936' => 'Encode::CN', - 'MacChineseSimp' => 'Encode::CN', - - '7bit-jis' => 'Encode::JP', - 'euc-jp' => 'Encode::JP', - 'iso-2022-jp' => 'Encode::JP', - 'iso-2022-jp-1' => 'Encode::JP', - 'jis0201-raw' => 'Encode::JP', - 'jis0208-raw' => 'Encode::JP', - 'jis0212-raw' => 'Encode::JP', - 'cp932' => 'Encode::JP', - 'MacJapanese' => 'Encode::JP', - 'shiftjis' => 'Encode::JP', - - 'euc-kr' => 'Encode::KR', - 'iso-2022-kr' => 'Encode::KR', - 'johab' => 'Encode::KR', - 'ksc5601-raw' => 'Encode::KR', - 'cp949' => 'Encode::KR', - 'MacKorean' => 'Encode::KR', - - 'big5-eten' => 'Encode::TW', - 'big5-hkscs' => 'Encode::TW', - 'cp950' => 'Encode::TW', - 'MacChineseTrad' => 'Encode::TW', - - #'big5plus' => 'Encode::HanExtra', - #'euc-tw' => 'Encode::HanExtra', - #'gb18030' => 'Encode::HanExtra', - - 'MIME-Header' => 'Encode::MIME::Header', - 'MIME-B' => 'Encode::MIME::Header', - 'MIME-Q' => 'Encode::MIME::Header', - - 'MIME-Header-ISO_2022_JP' => 'Encode::MIME::Header::ISO_2022_JP', - ); -} - -# -# Why not export ? to keep ConfigLocal Happy! -# -while ( my ( $enc, $mod ) = each %ExtModule ) { - $Encode::ExtModule{$enc} = $mod; -} - -1; -__END__ - -=head1 NAME - -Encode::Config -- internally used by Encode - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/ConfigLocal_PM.e2x b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/ConfigLocal_PM.e2x deleted file mode 100644 index e203dfde..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/ConfigLocal_PM.e2x +++ /dev/null @@ -1,13 +0,0 @@ -# -# Local demand-load module list -# -# You should not edit this file by hand! use "enc2xs -C" -# -package Encode::ConfigLocal; -our $VERSION = $_LocalVer_; - -use strict; - -$_ModLines_ - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/EBCDIC.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/EBCDIC.pm deleted file mode 100644 index 8024c130..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/EBCDIC.pm +++ /dev/null @@ -1,45 +0,0 @@ -package Encode::EBCDIC; -use strict; -use warnings; -use Encode; -our $VERSION = do { my @r = ( q$Revision: 2.2 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -use XSLoader; -XSLoader::load( __PACKAGE__, $VERSION ); - -1; -__END__ - -=head1 NAME - -Encode::EBCDIC - EBCDIC Encodings - -=head1 SYNOPSIS - - use Encode qw/encode decode/; - $posix_bc = encode("posix-bc", $utf8); # loads Encode::EBCDIC implicitly - $utf8 = decode("", $posix_bc); # ditto - -=head1 ABSTRACT - -This module implements various EBCDIC-Based encodings. Encodings -supported are as follows. - - Canonical Alias Description - -------------------------------------------------------------------- - cp37 - cp500 - cp875 - cp1026 - cp1047 - posix-bc - -=head1 DESCRIPTION - -To find how to use this module in detail, see L. - -=head1 SEE ALSO - -L, L - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Encoder.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Encoder.pm deleted file mode 100644 index 23e0349b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Encoder.pm +++ /dev/null @@ -1,253 +0,0 @@ -# -# $Id: Encoder.pm,v 2.3 2013/09/14 07:51:59 dankogai Exp $ -# -package Encode::Encoder; -use strict; -use warnings; -our $VERSION = do { my @r = ( q$Revision: 2.3 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -require Exporter; -our @ISA = qw(Exporter); -our @EXPORT_OK = qw ( encoder ); - -our $AUTOLOAD; -use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG}; -use Encode qw(encode decode find_encoding from_to); -use Carp; - -sub new { - my ( $class, $data, $encname ) = @_; - unless ($encname) { - $encname = Encode::is_utf8($data) ? 'utf8' : ''; - } - else { - my $obj = find_encoding($encname) - or croak __PACKAGE__, ": unknown encoding: $encname"; - $encname = $obj->name; - } - my $self = { - data => $data, - encoding => $encname, - }; - bless $self => $class; -} - -sub encoder { __PACKAGE__->new(@_) } - -sub data { - my ( $self, $data ) = @_; - if ( defined $data ) { - $self->{data} = $data; - return $data; - } - else { - return $self->{data}; - } -} - -sub encoding { - my ( $self, $encname ) = @_; - if ($encname) { - my $obj = find_encoding($encname) - or confess __PACKAGE__, ": unknown encoding: $encname"; - $self->{encoding} = $obj->name; - return $self; - } - else { - return $self->{encoding}; - } -} - -sub bytes { - my ( $self, $encname ) = @_; - $encname ||= $self->{encoding}; - my $obj = find_encoding($encname) - or confess __PACKAGE__, ": unknown encoding: $encname"; - $self->{data} = $obj->decode( $self->{data}, 1 ); - $self->{encoding} = ''; - return $self; -} - -sub DESTROY { # defined so it won't autoload. - DEBUG and warn shift; -} - -sub AUTOLOAD { - my $self = shift; - my $type = ref($self) - or confess "$self is not an object"; - my $myname = $AUTOLOAD; - $myname =~ s/.*://; # strip fully-qualified portion - my $obj = find_encoding($myname) - or confess __PACKAGE__, ": unknown encoding: $myname"; - DEBUG and warn $self->{encoding}, " => ", $obj->name; - if ( $self->{encoding} ) { - from_to( $self->{data}, $self->{encoding}, $obj->name, 1 ); - } - else { - $self->{data} = $obj->encode( $self->{data}, 1 ); - } - $self->{encoding} = $obj->name; - return $self; -} - -use overload - q("") => sub { $_[0]->{data} }, - q(0+) => sub { use bytes(); bytes::length( $_[0]->{data} ) }, - fallback => 1, - ; - -1; -__END__ - -=head1 NAME - -Encode::Encoder -- Object Oriented Encoder - -=head1 SYNOPSIS - - use Encode::Encoder; - # Encode::encode("ISO-8859-1", $data); - Encode::Encoder->new($data)->iso_8859_1; # OOP way - # shortcut - use Encode::Encoder qw(encoder); - encoder($data)->iso_8859_1; - # you can stack them! - encoder($data)->iso_8859_1->base64; # provided base64() is defined - # you can use it as a decoder as well - encoder($base64)->bytes('base64')->latin1; - # stringified - print encoder($data)->utf8->latin1; # prints the string in latin1 - # numified - encoder("\x{abcd}\x{ef}g")->utf8 == 6; # true. bytes::length($data) - -=head1 ABSTRACT - -B allows you to use Encode in an object-oriented -style. This is not only more intuitive than a functional approach, -but also handier when you want to stack encodings. Suppose you want -your UTF-8 string converted to Latin1 then Base64: you can simply say - - my $base64 = encoder($utf8)->latin1->base64; - -instead of - - my $latin1 = encode("latin1", $utf8); - my $base64 = encode_base64($utf8); - -or the lazier and more convoluted - - my $base64 = encode_base64(encode("latin1", $utf8)); - -=head1 Description - -Here is how to use this module. - -=over 4 - -=item * - -There are at least two instance variables stored in a hash reference, -{data} and {encoding}. - -=item * - -When there is no method, it takes the method name as the name of the -encoding and encodes the instance I with I. If successful, -the instance I is set accordingly. - -=item * - -You can retrieve the result via -Edata but usually you don't have to -because the stringify operator ("") is overridden to do exactly that. - -=back - -=head2 Predefined Methods - -This module predefines the methods below: - -=over 4 - -=item $e = Encode::Encoder-Enew([$data, $encoding]); - -returns an encoder object. Its data is initialized with $data if -present, and its encoding is set to $encoding if present. - -When $encoding is omitted, it defaults to utf8 if $data is already in -utf8 or "" (empty string) otherwise. - -=item encoder() - -is an alias of Encode::Encoder-Enew(). This one is exported on demand. - -=item $e-Edata([$data]) - -When $data is present, sets the instance data to $data and returns the -object itself. Otherwise, the current instance data is returned. - -=item $e-Eencoding([$encoding]) - -When $encoding is present, sets the instance encoding to $encoding and -returns the object itself. Otherwise, the current instance encoding is -returned. - -=item $e-Ebytes([$encoding]) - -decodes instance data from $encoding, or the instance encoding if -omitted. If the conversion is successful, the instance encoding -will be set to "". - -The name I was deliberately picked to avoid namespace tainting --- this module may be used as a base class so method names that appear -in Encode::Encoding are avoided. - -=back - -=head2 Example: base64 transcoder - -This module is designed to work with L. -To make the Base64 transcoder example above really work, you could -write a module like this: - - package Encode::Base64; - use parent 'Encode::Encoding'; - __PACKAGE__->Define('base64'); - use MIME::Base64; - sub encode{ - my ($obj, $data) = @_; - return encode_base64($data); - } - sub decode{ - my ($obj, $data) = @_; - return decode_base64($data); - } - 1; - __END__ - -And your caller module would be something like this: - - use Encode::Encoder; - use Encode::Base64; - - # now you can really do the following - - encoder($data)->iso_8859_1->base64; - encoder($base64)->bytes('base64')->latin1; - -=head2 Operator Overloading - -This module overloads two operators, stringify ("") and numify (0+). - -Stringify dumps the data inside the object. - -Numify returns the number of bytes in the instance data. - -They come in handy when you want to print or find the size of data. - -=head1 SEE ALSO - -L, -L - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Encoding.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Encoding.pm deleted file mode 100644 index 815937f4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Encoding.pm +++ /dev/null @@ -1,356 +0,0 @@ -package Encode::Encoding; - -# Base class for classes which implement encodings -use strict; -use warnings; -our $VERSION = do { my @r = ( q$Revision: 2.8 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -our @CARP_NOT = qw(Encode Encode::Encoder); - -use Carp (); -use Encode (); -use Encode::MIME::Name; - -use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG}; - -sub Define { - my $obj = shift; - my $canonical = shift; - $obj = bless { Name => $canonical }, $obj unless ref $obj; - - # warn "$canonical => $obj\n"; - Encode::define_encoding( $obj, $canonical, @_ ); -} - -sub name { return shift->{'Name'} } - -sub mime_name { - return Encode::MIME::Name::get_mime_name(shift->name); -} - -sub renew { - my $self = shift; - my $clone = bless {%$self} => ref($self); - $clone->{renewed}++; # so the caller can see it - DEBUG and warn $clone->{renewed}; - return $clone; -} - -sub renewed { return $_[0]->{renewed} || 0 } - -*new_sequence = \&renew; - -sub needs_lines { 0 } - -sub perlio_ok { - return eval { require PerlIO::encoding } ? 1 : 0; -} - -# (Temporary|legacy) methods - -sub toUnicode { shift->decode(@_) } -sub fromUnicode { shift->encode(@_) } - -# -# Needs to be overloaded or just croak -# - -sub encode { - my $obj = shift; - my $class = ref($obj) ? ref($obj) : $obj; - Carp::croak( $class . "->encode() not defined!" ); -} - -sub decode { - my $obj = shift; - my $class = ref($obj) ? ref($obj) : $obj; - Carp::croak( $class . "->encode() not defined!" ); -} - -sub DESTROY { } - -1; -__END__ - -=head1 NAME - -Encode::Encoding - Encode Implementation Base Class - -=head1 SYNOPSIS - - package Encode::MyEncoding; - use parent qw(Encode::Encoding); - - __PACKAGE__->Define(qw(myCanonical myAlias)); - -=head1 DESCRIPTION - -As mentioned in L, encodings are (in the current -implementation at least) defined as objects. The mapping of encoding -name to object is via the C<%Encode::Encoding> hash. Though you can -directly manipulate this hash, it is strongly encouraged to use this -base class module and add encode() and decode() methods. - -=head2 Methods you should implement - -You are strongly encouraged to implement methods below, at least -either encode() or decode(). - -=over 4 - -=item -Eencode($string [,$check]) - -MUST return the octet sequence representing I<$string>. - -=over 2 - -=item * - -If I<$check> is true, it SHOULD modify I<$string> in place to remove -the converted part (i.e. the whole string unless there is an error). -If perlio_ok() is true, SHOULD becomes MUST. - -=item * - -If an error occurs, it SHOULD return the octet sequence for the -fragment of string that has been converted and modify $string in-place -to remove the converted part leaving it starting with the problem -fragment. If perlio_ok() is true, SHOULD becomes MUST. - -=item * - -If I<$check> is false then C MUST make a "best effort" to -convert the string - for example, by using a replacement character. - -=back - -=item -Edecode($octets [,$check]) - -MUST return the string that I<$octets> represents. - -=over 2 - -=item * - -If I<$check> is true, it SHOULD modify I<$octets> in place to remove -the converted part (i.e. the whole sequence unless there is an -error). If perlio_ok() is true, SHOULD becomes MUST. - -=item * - -If an error occurs, it SHOULD return the fragment of string that has -been converted and modify $octets in-place to remove the converted -part leaving it starting with the problem fragment. If perlio_ok() is -true, SHOULD becomes MUST. - -=item * - -If I<$check> is false then C should make a "best effort" to -convert the string - for example by using Unicode's "\x{FFFD}" as a -replacement character. - -=back - -=back - -If you want your encoding to work with L pragma, you should -also implement the method below. - -=over 4 - -=item -Ecat_decode($destination, $octets, $offset, $terminator [,$check]) - -MUST decode I<$octets> with I<$offset> and concatenate it to I<$destination>. -Decoding will terminate when $terminator (a string) appears in output. -I<$offset> will be modified to the last $octets position at end of decode. -Returns true if $terminator appears output, else returns false. - -=back - -=head2 Other methods defined in Encode::Encodings - -You do not have to override methods shown below unless you have to. - -=over 4 - -=item -Ename - -Predefined As: - - sub name { return shift->{'Name'} } - -MUST return the string representing the canonical name of the encoding. - -=item -Emime_name - -Predefined As: - - sub mime_name{ - return Encode::MIME::Name::get_mime_name(shift->name); - } - -MUST return the string representing the IANA charset name of the encoding. - -=item -Erenew - -Predefined As: - - sub renew { - my $self = shift; - my $clone = bless { %$self } => ref($self); - $clone->{renewed}++; - return $clone; - } - -This method reconstructs the encoding object if necessary. If you need -to store the state during encoding, this is where you clone your object. - -PerlIO ALWAYS calls this method to make sure it has its own private -encoding object. - -=item -Erenewed - -Predefined As: - - sub renewed { $_[0]->{renewed} || 0 } - -Tells whether the object is renewed (and how many times). Some -modules emit C warning -unless the value is numeric so return 0 for false. - -=item -Eperlio_ok() - -Predefined As: - - sub perlio_ok { - return eval { require PerlIO::encoding } ? 1 : 0; - } - -If your encoding does not support PerlIO for some reasons, just; - - sub perlio_ok { 0 } - -=item -Eneeds_lines() - -Predefined As: - - sub needs_lines { 0 }; - -If your encoding can work with PerlIO but needs line buffering, you -MUST define this method so it returns true. 7bit ISO-2022 encodings -are one example that needs this. When this method is missing, false -is assumed. - -=back - -=head2 Example: Encode::ROT13 - - package Encode::ROT13; - use strict; - use parent qw(Encode::Encoding); - - __PACKAGE__->Define('rot13'); - - sub encode($$;$){ - my ($obj, $str, $chk) = @_; - $str =~ tr/A-Za-z/N-ZA-Mn-za-m/; - $_[1] = '' if $chk; # this is what in-place edit means - return $str; - } - - # Jr pna or ynml yvxr guvf; - *decode = \&encode; - - 1; - -=head1 Why the heck Encode API is different? - -It should be noted that the I<$check> behaviour is different from the -outer public API. The logic is that the "unchecked" case is useful -when the encoding is part of a stream which may be reporting errors -(e.g. STDERR). In such cases, it is desirable to get everything -through somehow without causing additional errors which obscure the -original one. Also, the encoding is best placed to know what the -correct replacement character is, so if that is the desired behaviour -then letting low level code do it is the most efficient. - -By contrast, if I<$check> is true, the scheme above allows the -encoding to do as much as it can and tell the layer above how much -that was. What is lacking at present is a mechanism to report what -went wrong. The most likely interface will be an additional method -call to the object, or perhaps (to avoid forcing per-stream objects -on otherwise stateless encodings) an additional parameter. - -It is also highly desirable that encoding classes inherit from -C as a base class. This allows that class to define -additional behaviour for all encoding objects. - - package Encode::MyEncoding; - use parent qw(Encode::Encoding); - - __PACKAGE__->Define(qw(myCanonical myAlias)); - -to create an object with C<< bless {Name => ...}, $class >>, and call -define_encoding. They inherit their C method from -C. - -=head2 Compiled Encodings - -For the sake of speed and efficiency, most of the encodings are now -supported via a I: XS modules generated from UCM -files. Encode provides the enc2xs tool to achieve that. Please see -L for more details. - -=head1 SEE ALSO - -L, L - -=begin future - -=over 4 - -=item Scheme 1 - -The fixup routine gets passed the remaining fragment of string being -processed. It modifies it in place to remove bytes/characters it can -understand and returns a string used to represent them. For example: - - sub fixup { - my $ch = substr($_[0],0,1,''); - return sprintf("\x{%02X}",ord($ch); - } - -This scheme is close to how the underlying C code for Encode works, -but gives the fixup routine very little context. - -=item Scheme 2 - -The fixup routine gets passed the original string, an index into -it of the problem area, and the output string so far. It appends -what it wants to the output string and returns a new index into the -original string. For example: - - sub fixup { - # my ($s,$i,$d) = @_; - my $ch = substr($_[0],$_[1],1); - $_[2] .= sprintf("\x{%02X}",ord($ch); - return $_[1]+1; - } - -This scheme gives maximal control to the fixup routine but is more -complicated to code, and may require that the internals of Encode be tweaked to -keep the original string intact. - -=item Other Schemes - -Hybrids of the above. - -Multiple return values rather than in-place modifications. - -Index into the string could be C allowing C. - -=back - -=end future - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/GSM0338.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/GSM0338.pm deleted file mode 100644 index e87141eb..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/GSM0338.pm +++ /dev/null @@ -1,294 +0,0 @@ -# -# $Id: GSM0338.pm,v 2.7 2017/06/10 17:23:50 dankogai Exp $ -# -package Encode::GSM0338; - -use strict; -use warnings; -use Carp; - -use vars qw($VERSION); -$VERSION = do { my @r = ( q$Revision: 2.7 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -use Encode qw(:fallbacks); - -use parent qw(Encode::Encoding); -__PACKAGE__->Define('gsm0338'); - -sub needs_lines { 1 } -sub perlio_ok { 0 } - -use utf8; -our %UNI2GSM = ( - "\x{0040}" => "\x00", # COMMERCIAL AT - "\x{000A}" => "\x0A", # LINE FEED - "\x{000C}" => "\x1B\x0A", # FORM FEED - "\x{000D}" => "\x0D", # CARRIAGE RETURN - "\x{0020}" => "\x20", # SPACE - "\x{0021}" => "\x21", # EXCLAMATION MARK - "\x{0022}" => "\x22", # QUOTATION MARK - "\x{0023}" => "\x23", # NUMBER SIGN - "\x{0024}" => "\x02", # DOLLAR SIGN - "\x{0025}" => "\x25", # PERCENT SIGN - "\x{0026}" => "\x26", # AMPERSAND - "\x{0027}" => "\x27", # APOSTROPHE - "\x{0028}" => "\x28", # LEFT PARENTHESIS - "\x{0029}" => "\x29", # RIGHT PARENTHESIS - "\x{002A}" => "\x2A", # ASTERISK - "\x{002B}" => "\x2B", # PLUS SIGN - "\x{002C}" => "\x2C", # COMMA - "\x{002D}" => "\x2D", # HYPHEN-MINUS - "\x{002E}" => "\x2E", # FULL STOP - "\x{002F}" => "\x2F", # SOLIDUS - "\x{0030}" => "\x30", # DIGIT ZERO - "\x{0031}" => "\x31", # DIGIT ONE - "\x{0032}" => "\x32", # DIGIT TWO - "\x{0033}" => "\x33", # DIGIT THREE - "\x{0034}" => "\x34", # DIGIT FOUR - "\x{0035}" => "\x35", # DIGIT FIVE - "\x{0036}" => "\x36", # DIGIT SIX - "\x{0037}" => "\x37", # DIGIT SEVEN - "\x{0038}" => "\x38", # DIGIT EIGHT - "\x{0039}" => "\x39", # DIGIT NINE - "\x{003A}" => "\x3A", # COLON - "\x{003B}" => "\x3B", # SEMICOLON - "\x{003C}" => "\x3C", # LESS-THAN SIGN - "\x{003D}" => "\x3D", # EQUALS SIGN - "\x{003E}" => "\x3E", # GREATER-THAN SIGN - "\x{003F}" => "\x3F", # QUESTION MARK - "\x{0041}" => "\x41", # LATIN CAPITAL LETTER A - "\x{0042}" => "\x42", # LATIN CAPITAL LETTER B - "\x{0043}" => "\x43", # LATIN CAPITAL LETTER C - "\x{0044}" => "\x44", # LATIN CAPITAL LETTER D - "\x{0045}" => "\x45", # LATIN CAPITAL LETTER E - "\x{0046}" => "\x46", # LATIN CAPITAL LETTER F - "\x{0047}" => "\x47", # LATIN CAPITAL LETTER G - "\x{0048}" => "\x48", # LATIN CAPITAL LETTER H - "\x{0049}" => "\x49", # LATIN CAPITAL LETTER I - "\x{004A}" => "\x4A", # LATIN CAPITAL LETTER J - "\x{004B}" => "\x4B", # LATIN CAPITAL LETTER K - "\x{004C}" => "\x4C", # LATIN CAPITAL LETTER L - "\x{004D}" => "\x4D", # LATIN CAPITAL LETTER M - "\x{004E}" => "\x4E", # LATIN CAPITAL LETTER N - "\x{004F}" => "\x4F", # LATIN CAPITAL LETTER O - "\x{0050}" => "\x50", # LATIN CAPITAL LETTER P - "\x{0051}" => "\x51", # LATIN CAPITAL LETTER Q - "\x{0052}" => "\x52", # LATIN CAPITAL LETTER R - "\x{0053}" => "\x53", # LATIN CAPITAL LETTER S - "\x{0054}" => "\x54", # LATIN CAPITAL LETTER T - "\x{0055}" => "\x55", # LATIN CAPITAL LETTER U - "\x{0056}" => "\x56", # LATIN CAPITAL LETTER V - "\x{0057}" => "\x57", # LATIN CAPITAL LETTER W - "\x{0058}" => "\x58", # LATIN CAPITAL LETTER X - "\x{0059}" => "\x59", # LATIN CAPITAL LETTER Y - "\x{005A}" => "\x5A", # LATIN CAPITAL LETTER Z - "\x{005F}" => "\x11", # LOW LINE - "\x{0061}" => "\x61", # LATIN SMALL LETTER A - "\x{0062}" => "\x62", # LATIN SMALL LETTER B - "\x{0063}" => "\x63", # LATIN SMALL LETTER C - "\x{0064}" => "\x64", # LATIN SMALL LETTER D - "\x{0065}" => "\x65", # LATIN SMALL LETTER E - "\x{0066}" => "\x66", # LATIN SMALL LETTER F - "\x{0067}" => "\x67", # LATIN SMALL LETTER G - "\x{0068}" => "\x68", # LATIN SMALL LETTER H - "\x{0069}" => "\x69", # LATIN SMALL LETTER I - "\x{006A}" => "\x6A", # LATIN SMALL LETTER J - "\x{006B}" => "\x6B", # LATIN SMALL LETTER K - "\x{006C}" => "\x6C", # LATIN SMALL LETTER L - "\x{006D}" => "\x6D", # LATIN SMALL LETTER M - "\x{006E}" => "\x6E", # LATIN SMALL LETTER N - "\x{006F}" => "\x6F", # LATIN SMALL LETTER O - "\x{0070}" => "\x70", # LATIN SMALL LETTER P - "\x{0071}" => "\x71", # LATIN SMALL LETTER Q - "\x{0072}" => "\x72", # LATIN SMALL LETTER R - "\x{0073}" => "\x73", # LATIN SMALL LETTER S - "\x{0074}" => "\x74", # LATIN SMALL LETTER T - "\x{0075}" => "\x75", # LATIN SMALL LETTER U - "\x{0076}" => "\x76", # LATIN SMALL LETTER V - "\x{0077}" => "\x77", # LATIN SMALL LETTER W - "\x{0078}" => "\x78", # LATIN SMALL LETTER X - "\x{0079}" => "\x79", # LATIN SMALL LETTER Y - "\x{007A}" => "\x7A", # LATIN SMALL LETTER Z - "\x{000C}" => "\x1B\x0A", # FORM FEED - "\x{005B}" => "\x1B\x3C", # LEFT SQUARE BRACKET - "\x{005C}" => "\x1B\x2F", # REVERSE SOLIDUS - "\x{005D}" => "\x1B\x3E", # RIGHT SQUARE BRACKET - "\x{005E}" => "\x1B\x14", # CIRCUMFLEX ACCENT - "\x{007B}" => "\x1B\x28", # LEFT CURLY BRACKET - "\x{007C}" => "\x1B\x40", # VERTICAL LINE - "\x{007D}" => "\x1B\x29", # RIGHT CURLY BRACKET - "\x{007E}" => "\x1B\x3D", # TILDE - "\x{00A0}" => "\x1B", # NO-BREAK SPACE - "\x{00A1}" => "\x40", # INVERTED EXCLAMATION MARK - "\x{00A3}" => "\x01", # POUND SIGN - "\x{00A4}" => "\x24", # CURRENCY SIGN - "\x{00A5}" => "\x03", # YEN SIGN - "\x{00A7}" => "\x5F", # SECTION SIGN - "\x{00BF}" => "\x60", # INVERTED QUESTION MARK - "\x{00C4}" => "\x5B", # LATIN CAPITAL LETTER A WITH DIAERESIS - "\x{00C5}" => "\x0E", # LATIN CAPITAL LETTER A WITH RING ABOVE - "\x{00C6}" => "\x1C", # LATIN CAPITAL LETTER AE - "\x{00C9}" => "\x1F", # LATIN CAPITAL LETTER E WITH ACUTE - "\x{00D1}" => "\x5D", # LATIN CAPITAL LETTER N WITH TILDE - "\x{00D6}" => "\x5C", # LATIN CAPITAL LETTER O WITH DIAERESIS - "\x{00D8}" => "\x0B", # LATIN CAPITAL LETTER O WITH STROKE - "\x{00DC}" => "\x5E", # LATIN CAPITAL LETTER U WITH DIAERESIS - "\x{00DF}" => "\x1E", # LATIN SMALL LETTER SHARP S - "\x{00E0}" => "\x7F", # LATIN SMALL LETTER A WITH GRAVE - "\x{00E4}" => "\x7B", # LATIN SMALL LETTER A WITH DIAERESIS - "\x{00E5}" => "\x0F", # LATIN SMALL LETTER A WITH RING ABOVE - "\x{00E6}" => "\x1D", # LATIN SMALL LETTER AE - #"\x{00E7}" => "\x09", # LATIN SMALL LETTER C WITH CEDILLA - "\x{00C7}" => "\x09", # LATIN CAPITAL LETTER C WITH CEDILLA - "\x{00E8}" => "\x04", # LATIN SMALL LETTER E WITH GRAVE - "\x{00E9}" => "\x05", # LATIN SMALL LETTER E WITH ACUTE - "\x{00EC}" => "\x07", # LATIN SMALL LETTER I WITH GRAVE - "\x{00F1}" => "\x7D", # LATIN SMALL LETTER N WITH TILDE - "\x{00F2}" => "\x08", # LATIN SMALL LETTER O WITH GRAVE - "\x{00F6}" => "\x7C", # LATIN SMALL LETTER O WITH DIAERESIS - "\x{00F8}" => "\x0C", # LATIN SMALL LETTER O WITH STROKE - "\x{00F9}" => "\x06", # LATIN SMALL LETTER U WITH GRAVE - "\x{00FC}" => "\x7E", # LATIN SMALL LETTER U WITH DIAERESIS - "\x{0393}" => "\x13", # GREEK CAPITAL LETTER GAMMA - "\x{0394}" => "\x10", # GREEK CAPITAL LETTER DELTA - "\x{0398}" => "\x19", # GREEK CAPITAL LETTER THETA - "\x{039B}" => "\x14", # GREEK CAPITAL LETTER LAMDA - "\x{039E}" => "\x1A", # GREEK CAPITAL LETTER XI - "\x{03A0}" => "\x16", # GREEK CAPITAL LETTER PI - "\x{03A3}" => "\x18", # GREEK CAPITAL LETTER SIGMA - "\x{03A6}" => "\x12", # GREEK CAPITAL LETTER PHI - "\x{03A8}" => "\x17", # GREEK CAPITAL LETTER PSI - "\x{03A9}" => "\x15", # GREEK CAPITAL LETTER OMEGA - "\x{20AC}" => "\x1B\x65", # EURO SIGN -); -our %GSM2UNI = reverse %UNI2GSM; -our $ESC = "\x1b"; -our $ATMARK = "\x40"; -our $FBCHAR = "\x3F"; -our $NBSP = "\x{00A0}"; - -#define ERR_DECODE_NOMAP "%s \"\\x%02" UVXf "\" does not map to Unicode" - -sub decode ($$;$) { - my ( $obj, $bytes, $chk ) = @_; - return undef unless defined $bytes; - my $str = substr($bytes, 0, 0); # to propagate taintedness; - while ( length $bytes ) { - my $c = substr( $bytes, 0, 1, '' ); - my $u; - if ( $c eq "\x00" ) { - my $c2 = substr( $bytes, 0, 1, '' ); - $u = - !length $c2 ? $ATMARK - : $c2 eq "\x00" ? "\x{0000}" - : exists $GSM2UNI{$c2} ? $ATMARK . $GSM2UNI{$c2} - : $chk - ? croak sprintf( "\\x%02X\\x%02X does not map to Unicode", - ord($c), ord($c2) ) - : $ATMARK . $FBCHAR; - - } - elsif ( $c eq $ESC ) { - my $c2 = substr( $bytes, 0, 1, '' ); - $u = - exists $GSM2UNI{ $c . $c2 } ? $GSM2UNI{ $c . $c2 } - : exists $GSM2UNI{$c2} ? $NBSP . $GSM2UNI{$c2} - : $chk - ? croak sprintf( "\\x%02X\\x%02X does not map to Unicode", - ord($c), ord($c2) ) - : $NBSP . $FBCHAR; - } - else { - $u = - exists $GSM2UNI{$c} - ? $GSM2UNI{$c} - : $chk ? ref $chk eq 'CODE' - ? $chk->( ord $c ) - : croak sprintf( "\\x%02X does not map to Unicode", ord($c) ) - : $FBCHAR; - } - $str .= $u; - } - $_[1] = $bytes if $chk; - return $str; -} - -#define ERR_ENCODE_NOMAP "\"\\x{%04" UVxf "}\" does not map to %s" - -sub encode($$;$) { - my ( $obj, $str, $chk ) = @_; - return undef unless defined $str; - my $bytes = substr($str, 0, 0); # to propagate taintedness - while ( length $str ) { - my $u = substr( $str, 0, 1, '' ); - my $c; - $bytes .= - exists $UNI2GSM{$u} - ? $UNI2GSM{$u} - : $chk ? ref $chk eq 'CODE' - ? $chk->( ord($u) ) - : croak sprintf( "\\x{%04x} does not map to %s", - ord($u), $obj->name ) - : $FBCHAR; - } - $_[1] = $str if $chk; - return $bytes; -} - -1; -__END__ - -=head1 NAME - -Encode::GSM0338 -- ESTI GSM 03.38 Encoding - -=head1 SYNOPSIS - - use Encode qw/encode decode/; - $gsm0338 = encode("gsm0338", $utf8); # loads Encode::GSM0338 implicitly - $utf8 = decode("gsm0338", $gsm0338); # ditto - -=head1 DESCRIPTION - -GSM0338 is for GSM handsets. Though it shares alphanumerals with ASCII, -control character ranges and other parts are mapped very differently, -mainly to store Greek characters. There are also escape sequences -(starting with 0x1B) to cover e.g. the Euro sign. - -This was once handled by L but because of all those -unusual specifications, Encode 2.20 has relocated the support to -this module. - -=head1 NOTES - -Unlike most other encodings, the following always croaks on error -for any $chk that evaluates to true. - - $gsm0338 = encode("gsm0338", $utf8 $chk); - $utf8 = decode("gsm0338", $gsm0338, $chk); - -So if you want to check the validity of the encoding, surround the -expression with C block as follows; - - eval { - $utf8 = decode("gsm0338", $gsm0338, $chk); - } or do { - # handle exception here - }; - -=head1 BUGS - -ESTI GSM 03.38 Encoding itself. - -Mapping \x00 to '@' causes too much pain everywhere. - -Its use of \x1b (escape) is also very questionable. - -Because of those two, the code paging approach used use in ucm-based -Encoding SOMETIMES fails so this module was written. - -=head1 SEE ALSO - -L - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Guess.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Guess.pm deleted file mode 100644 index 41fc19b7..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Guess.pm +++ /dev/null @@ -1,356 +0,0 @@ -package Encode::Guess; -use strict; -use warnings; -use Encode qw(:fallbacks find_encoding); -our $VERSION = do { my @r = ( q$Revision: 2.7 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -my $Canon = 'Guess'; -use constant DEBUG => !!$ENV{PERL_ENCODE_DEBUG}; -our %DEF_SUSPECTS = map { $_ => find_encoding($_) } qw(ascii utf8); -my $obj = bless { - Name => $Canon, - Suspects => {%DEF_SUSPECTS}, -} => __PACKAGE__; -Encode::define_encoding($obj, $Canon); - -use parent qw(Encode::Encoding); -sub needs_lines { 1 } -sub perlio_ok { 0 } - -our @EXPORT = qw(guess_encoding); -our $NoUTFAutoGuess = 0; -our $UTF8_BOM = pack( "C3", 0xef, 0xbb, 0xbf ); - -sub import { # Exporter not used so we do it on our own - my $callpkg = caller; - for my $item (@EXPORT) { - no strict 'refs'; - *{"$callpkg\::$item"} = \&{"$item"}; - } - set_suspects(@_); -} - -sub set_suspects { - my $class = shift; - my $self = ref($class) ? $class : $Encode::Encoding{$Canon}; - $self->{Suspects} = {%DEF_SUSPECTS}; - $self->add_suspects(@_); -} - -sub add_suspects { - my $class = shift; - my $self = ref($class) ? $class : $Encode::Encoding{$Canon}; - for my $c (@_) { - my $e = find_encoding($c) or die "Unknown encoding: $c"; - $self->{Suspects}{ $e->name } = $e; - DEBUG and warn "Added: ", $e->name; - } -} - -sub decode($$;$) { - my ( $obj, $octet, $chk ) = @_; - my $guessed = guess( $obj, $octet ); - unless ( ref($guessed) ) { - require Carp; - Carp::croak($guessed); - } - my $utf8 = $guessed->decode( $octet, $chk || 0 ); - $_[1] = $octet if $chk; - return $utf8; -} - -sub guess_encoding { - guess( $Encode::Encoding{$Canon}, @_ ); -} - -sub guess { - my $class = shift; - my $obj = ref($class) ? $class : $Encode::Encoding{$Canon}; - my $octet = shift; - - # sanity check - return "Empty string, empty guess" unless defined $octet and length $octet; - - # cheat 0: utf8 flag; - if ( Encode::is_utf8($octet) ) { - return find_encoding('utf8') unless $NoUTFAutoGuess; - Encode::_utf8_off($octet); - } - - # cheat 1: BOM - use Encode::Unicode; - unless ($NoUTFAutoGuess) { - my $BOM = pack( 'C3', unpack( "C3", $octet ) ); - return find_encoding('utf8') - if ( defined $BOM and $BOM eq $UTF8_BOM ); - $BOM = unpack( 'N', $octet ); - return find_encoding('UTF-32') - if ( defined $BOM and ( $BOM == 0xFeFF or $BOM == 0xFFFe0000 ) ); - $BOM = unpack( 'n', $octet ); - return find_encoding('UTF-16') - if ( defined $BOM and ( $BOM == 0xFeFF or $BOM == 0xFFFe ) ); - if ( $octet =~ /\x00/o ) - { # if \x00 found, we assume UTF-(16|32)(BE|LE) - my $utf; - my ( $be, $le ) = ( 0, 0 ); - if ( $octet =~ /\x00\x00/o ) { # UTF-32(BE|LE) assumed - $utf = "UTF-32"; - for my $char ( unpack( 'N*', $octet ) ) { - $char & 0x0000ffff and $be++; - $char & 0xffff0000 and $le++; - } - } - else { # UTF-16(BE|LE) assumed - $utf = "UTF-16"; - for my $char ( unpack( 'n*', $octet ) ) { - $char & 0x00ff and $be++; - $char & 0xff00 and $le++; - } - } - DEBUG and warn "$utf, be == $be, le == $le"; - $be == $le - and return - "Encodings ambiguous between $utf BE and LE ($be, $le)"; - $utf .= ( $be > $le ) ? 'BE' : 'LE'; - return find_encoding($utf); - } - } - my %try = %{ $obj->{Suspects} }; - for my $c (@_) { - my $e = find_encoding($c) or die "Unknown encoding: $c"; - $try{ $e->name } = $e; - DEBUG and warn "Added: ", $e->name; - } - my $nline = 1; - for my $line ( split /\r\n?|\n/, $octet ) { - - # cheat 2 -- \e in the string - if ( $line =~ /\e/o ) { - my @keys = keys %try; - delete @try{qw/utf8 ascii/}; - for my $k (@keys) { - ref( $try{$k} ) eq 'Encode::XS' and delete $try{$k}; - } - } - my %ok = %try; - - # warn join(",", keys %try); - for my $k ( keys %try ) { - my $scratch = $line; - $try{$k}->decode( $scratch, FB_QUIET ); - if ( $scratch eq '' ) { - DEBUG and warn sprintf( "%4d:%-24s ok\n", $nline, $k ); - } - else { - use bytes (); - DEBUG - and warn sprintf( "%4d:%-24s not ok; %d bytes left\n", - $nline, $k, bytes::length($scratch) ); - delete $ok{$k}; - } - } - %ok or return "No appropriate encodings found!"; - if ( scalar( keys(%ok) ) == 1 ) { - my ($retval) = values(%ok); - return $retval; - } - %try = %ok; - $nline++; - } - $try{ascii} - or return "Encodings too ambiguous: ", join( " or ", keys %try ); - return $try{ascii}; -} - -1; -__END__ - -=head1 NAME - -Encode::Guess -- Guesses encoding from data - -=head1 SYNOPSIS - - # if you are sure $data won't contain anything bogus - - use Encode; - use Encode::Guess qw/euc-jp shiftjis 7bit-jis/; - my $utf8 = decode("Guess", $data); - my $data = encode("Guess", $utf8); # this doesn't work! - - # more elaborate way - use Encode::Guess; - my $enc = guess_encoding($data, qw/euc-jp shiftjis 7bit-jis/); - ref($enc) or die "Can't guess: $enc"; # trap error this way - $utf8 = $enc->decode($data); - # or - $utf8 = decode($enc->name, $data) - -=head1 ABSTRACT - -Encode::Guess enables you to guess in what encoding a given data is -encoded, or at least tries to. - -=head1 DESCRIPTION - -By default, it checks only ascii, utf8 and UTF-16/32 with BOM. - - use Encode::Guess; # ascii/utf8/BOMed UTF - -To use it more practically, you have to give the names of encodings to -check (I as follows). The name of suspects can either be -canonical names or aliases. - -CAVEAT: Unlike UTF-(16|32), BOM in utf8 is NOT AUTOMATICALLY STRIPPED. - - # tries all major Japanese Encodings as well - use Encode::Guess qw/euc-jp shiftjis 7bit-jis/; - -If the C<$Encode::Guess::NoUTFAutoGuess> variable is set to a true -value, no heuristics will be applied to UTF8/16/32, and the result -will be limited to the suspects and C. - -=over 4 - -=item Encode::Guess->set_suspects - -You can also change the internal suspects list via C -method. - - use Encode::Guess; - Encode::Guess->set_suspects(qw/euc-jp shiftjis 7bit-jis/); - -=item Encode::Guess->add_suspects - -Or you can use C method. The difference is that -C flushes the current suspects list while -C adds. - - use Encode::Guess; - Encode::Guess->add_suspects(qw/euc-jp shiftjis 7bit-jis/); - # now the suspects are euc-jp,shiftjis,7bit-jis, AND - # euc-kr,euc-cn, and big5-eten - Encode::Guess->add_suspects(qw/euc-kr euc-cn big5-eten/); - -=item Encode::decode("Guess" ...) - -When you are content with suspects list, you can now - - my $utf8 = Encode::decode("Guess", $data); - -=item Encode::Guess->guess($data) - -But it will croak if: - -=over - -=item * - -Two or more suspects remain - -=item * - -No suspects left - -=back - -So you should instead try this; - - my $decoder = Encode::Guess->guess($data); - -On success, $decoder is an object that is documented in -L. So you can now do this; - - my $utf8 = $decoder->decode($data); - -On failure, $decoder now contains an error message so the whole thing -would be as follows; - - my $decoder = Encode::Guess->guess($data); - die $decoder unless ref($decoder); - my $utf8 = $decoder->decode($data); - -=item guess_encoding($data, [, I]) - -You can also try C function which is exported by -default. It takes $data to check and it also takes the list of -suspects by option. The optional suspect list is I to -the internal suspects list. - - my $decoder = guess_encoding($data, qw/euc-jp euc-kr euc-cn/); - die $decoder unless ref($decoder); - my $utf8 = $decoder->decode($data); - # check only ascii, utf8 and UTF-(16|32) with BOM - my $decoder = guess_encoding($data); - -=back - -=head1 CAVEATS - -=over 4 - -=item * - -Because of the algorithm used, ISO-8859 series and other single-byte -encodings do not work well unless either one of ISO-8859 is the only -one suspect (besides ascii and utf8). - - use Encode::Guess; - # perhaps ok - my $decoder = guess_encoding($data, 'latin1'); - # definitely NOT ok - my $decoder = guess_encoding($data, qw/latin1 greek/); - -The reason is that Encode::Guess guesses encoding by trial and error. -It first splits $data into lines and tries to decode the line for each -suspect. It keeps it going until all but one encoding is eliminated -out of suspects list. ISO-8859 series is just too successful for most -cases (because it fills almost all code points in \x00-\xff). - -=item * - -Do not mix national standard encodings and the corresponding vendor -encodings. - - # a very bad idea - my $decoder - = guess_encoding($data, qw/shiftjis MacJapanese cp932/); - -The reason is that vendor encoding is usually a superset of national -standard so it becomes too ambiguous for most cases. - -=item * - -On the other hand, mixing various national standard encodings -automagically works unless $data is too short to allow for guessing. - - # This is ok if $data is long enough - my $decoder = - guess_encoding($data, qw/euc-cn - euc-jp shiftjis 7bit-jis - euc-kr - big5-eten/); - -=item * - -DO NOT PUT TOO MANY SUSPECTS! Don't you try something like this! - - my $decoder = guess_encoding($data, - Encode->encodings(":all")); - -=back - -It is, after all, just a guess. You should alway be explicit when it -comes to encodings. But there are some, especially Japanese, -environment that guess-coding is a must. Use this module with care. - -=head1 TO DO - -Encode::Guess does not work on EBCDIC platforms. - -=head1 SEE ALSO - -L, L - -=cut - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/JP.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/JP.pm deleted file mode 100644 index 4251170c..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/JP.pm +++ /dev/null @@ -1,95 +0,0 @@ -package Encode::JP; -BEGIN { - if ( ord("A") == 193 ) { - die "Encode::JP not supported on EBCDIC\n"; - } -} -use strict; -use warnings; -use Encode; -our $VERSION = do { my @r = ( q$Revision: 2.4 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -use XSLoader; -XSLoader::load( __PACKAGE__, $VERSION ); - -use Encode::JP::JIS7; - -1; -__END__ - -=head1 NAME - -Encode::JP - Japanese Encodings - -=head1 SYNOPSIS - - use Encode qw/encode decode/; - $euc_jp = encode("euc-jp", $utf8); # loads Encode::JP implicitly - $utf8 = decode("euc-jp", $euc_jp); # ditto - -=head1 ABSTRACT - -This module implements Japanese charset encodings. Encodings -supported are as follows. - - Canonical Alias Description - -------------------------------------------------------------------- - euc-jp /\beuc.*jp$/i EUC (Extended Unix Character) - /\bjp.*euc/i - /\bujis$/i - shiftjis /\bshift.*jis$/i Shift JIS (aka MS Kanji) - /\bsjis$/i - 7bit-jis /\bjis$/i 7bit JIS - iso-2022-jp ISO-2022-JP [RFC1468] - = 7bit JIS with all Halfwidth Kana - converted to Fullwidth - iso-2022-jp-1 ISO-2022-JP-1 [RFC2237] - = ISO-2022-JP with JIS X 0212-1990 - support. See below - MacJapanese Shift JIS + Apple vendor mappings - cp932 /\bwindows-31j$/i Code Page 932 - = Shift JIS + MS/IBM vendor mappings - jis0201-raw JIS0201, raw format - jis0208-raw JIS0201, raw format - jis0212-raw JIS0201, raw format - -------------------------------------------------------------------- - -=head1 DESCRIPTION - -To find out how to use this module in detail, see L. - -=head1 Note on ISO-2022-JP(-1)? - -ISO-2022-JP-1 (RFC2237) is a superset of ISO-2022-JP (RFC1468) which -adds support for JIS X 0212-1990. That means you can use the same -code to decode to utf8 but not vice versa. - - $utf8 = decode('iso-2022-jp-1', $stream); - -and - - $utf8 = decode('iso-2022-jp', $stream); - -yield the same result but - - $with_0212 = encode('iso-2022-jp-1', $utf8); - -is now different from - - $without_0212 = encode('iso-2022-jp', $utf8 ); - -In the latter case, characters that map to 0212 are first converted -to U+3013 (0xA2AE in EUC-JP; a white square also known as 'Tofu' or -'geta mark') then fed to the decoding engine. U+FFFD is not used, -in order to preserve text layout as much as possible. - -=head1 BUGS - -The ASCII region (0x00-0x7f) is preserved for all encodings, even -though this conflicts with mappings by the Unicode Consortium. - -=head1 SEE ALSO - -L - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/JP/H2Z.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/JP/H2Z.pm deleted file mode 100644 index f8e2230d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/JP/H2Z.pm +++ /dev/null @@ -1,176 +0,0 @@ -# -# $Id: H2Z.pm,v 2.2 2006/06/03 20:28:48 dankogai Exp $ -# - -package Encode::JP::H2Z; - -use strict; -use warnings; - -our $RCSID = q$Id: H2Z.pm,v 2.2 2006/06/03 20:28:48 dankogai Exp $; -our $VERSION = do { my @r = ( q$Revision: 2.2 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -use Encode::CJKConstants qw(:all); - -use vars qw(%_D2Z $_PAT_D2Z - %_Z2D $_PAT_Z2D - %_H2Z $_PAT_H2Z - %_Z2H $_PAT_Z2H); - -%_H2Z = ( - "\x8e\xa1" => "\xa1\xa3", # - "\x8e\xa2" => "\xa1\xd6", # - "\x8e\xa3" => "\xa1\xd7", # - "\x8e\xa4" => "\xa1\xa2", # - "\x8e\xa5" => "\xa1\xa6", # - "\x8e\xa6" => "\xa5\xf2", # - "\x8e\xa7" => "\xa5\xa1", # - "\x8e\xa8" => "\xa5\xa3", # - "\x8e\xa9" => "\xa5\xa5", # - "\x8e\xaa" => "\xa5\xa7", # - "\x8e\xab" => "\xa5\xa9", # - "\x8e\xac" => "\xa5\xe3", # - "\x8e\xad" => "\xa5\xe5", # - "\x8e\xae" => "\xa5\xe7", # - "\x8e\xaf" => "\xa5\xc3", # - "\x8e\xb0" => "\xa1\xbc", # - "\x8e\xb1" => "\xa5\xa2", # - "\x8e\xb2" => "\xa5\xa4", # - "\x8e\xb3" => "\xa5\xa6", # - "\x8e\xb4" => "\xa5\xa8", # - "\x8e\xb5" => "\xa5\xaa", # - "\x8e\xb6" => "\xa5\xab", # - "\x8e\xb7" => "\xa5\xad", # - "\x8e\xb8" => "\xa5\xaf", # - "\x8e\xb9" => "\xa5\xb1", # - "\x8e\xba" => "\xa5\xb3", # - "\x8e\xbb" => "\xa5\xb5", # - "\x8e\xbc" => "\xa5\xb7", # - "\x8e\xbd" => "\xa5\xb9", # - "\x8e\xbe" => "\xa5\xbb", # - "\x8e\xbf" => "\xa5\xbd", # - "\x8e\xc0" => "\xa5\xbf", # - "\x8e\xc1" => "\xa5\xc1", # - "\x8e\xc2" => "\xa5\xc4", # - "\x8e\xc3" => "\xa5\xc6", # - "\x8e\xc4" => "\xa5\xc8", # - "\x8e\xc5" => "\xa5\xca", # - "\x8e\xc6" => "\xa5\xcb", # - "\x8e\xc7" => "\xa5\xcc", # - "\x8e\xc8" => "\xa5\xcd", # - "\x8e\xc9" => "\xa5\xce", # - "\x8e\xca" => "\xa5\xcf", # - "\x8e\xcb" => "\xa5\xd2", # - "\x8e\xcc" => "\xa5\xd5", # - "\x8e\xcd" => "\xa5\xd8", # - "\x8e\xce" => "\xa5\xdb", # - "\x8e\xcf" => "\xa5\xde", # - "\x8e\xd0" => "\xa5\xdf", # - "\x8e\xd1" => "\xa5\xe0", # - "\x8e\xd2" => "\xa5\xe1", # - "\x8e\xd3" => "\xa5\xe2", # - "\x8e\xd4" => "\xa5\xe4", # - "\x8e\xd5" => "\xa5\xe6", # - "\x8e\xd6" => "\xa5\xe8", # - "\x8e\xd7" => "\xa5\xe9", # - "\x8e\xd8" => "\xa5\xea", # - "\x8e\xd9" => "\xa5\xeb", # - "\x8e\xda" => "\xa5\xec", # - "\x8e\xdb" => "\xa5\xed", # - "\x8e\xdc" => "\xa5\xef", # - "\x8e\xdd" => "\xa5\xf3", # - "\x8e\xde" => "\xa1\xab", # - "\x8e\xdf" => "\xa1\xac", # -); - -%_D2Z = ( - "\x8e\xb6\x8e\xde" => "\xa5\xac", # - "\x8e\xb7\x8e\xde" => "\xa5\xae", # - "\x8e\xb8\x8e\xde" => "\xa5\xb0", # - "\x8e\xb9\x8e\xde" => "\xa5\xb2", # - "\x8e\xba\x8e\xde" => "\xa5\xb4", # - "\x8e\xbb\x8e\xde" => "\xa5\xb6", # - "\x8e\xbc\x8e\xde" => "\xa5\xb8", # - "\x8e\xbd\x8e\xde" => "\xa5\xba", # - "\x8e\xbe\x8e\xde" => "\xa5\xbc", # - "\x8e\xbf\x8e\xde" => "\xa5\xbe", # - "\x8e\xc0\x8e\xde" => "\xa5\xc0", # - "\x8e\xc1\x8e\xde" => "\xa5\xc2", # - "\x8e\xc2\x8e\xde" => "\xa5\xc5", # - "\x8e\xc3\x8e\xde" => "\xa5\xc7", # - "\x8e\xc4\x8e\xde" => "\xa5\xc9", # - "\x8e\xca\x8e\xde" => "\xa5\xd0", # - "\x8e\xcb\x8e\xde" => "\xa5\xd3", # - "\x8e\xcc\x8e\xde" => "\xa5\xd6", # - "\x8e\xcd\x8e\xde" => "\xa5\xd9", # - "\x8e\xce\x8e\xde" => "\xa5\xdc", # - "\x8e\xca\x8e\xdf" => "\xa5\xd1", # - "\x8e\xcb\x8e\xdf" => "\xa5\xd4", # - "\x8e\xcc\x8e\xdf" => "\xa5\xd7", # - "\x8e\xcd\x8e\xdf" => "\xa5\xda", # - "\x8e\xce\x8e\xdf" => "\xa5\xdd", # - "\x8e\xb3\x8e\xde" => "\xa5\xf4", # -); - -# init only once; - -#$_PAT_D2Z = join("|", keys %_D2Z); -#$_PAT_H2Z = join("|", keys %_H2Z); - -%_Z2H = reverse %_H2Z; -%_Z2D = reverse %_D2Z; - -#$_PAT_Z2H = join("|", keys %_Z2H); -#$_PAT_Z2D = join("|", keys %_Z2D); - -sub h2z { - no warnings qw(uninitialized); - my $r_str = shift; - my ($keep_dakuten) = @_; - my $n = 0; - unless ($keep_dakuten) { - $n = ( - $$r_str =~ s( - ($RE{EUC_KANA} - (?:\x8e[\xde\xdf])?) - ){ - my $str = $1; - $_D2Z{$str} || $_H2Z{$str} || - # in case dakuten and handakuten are side-by-side! - $_H2Z{substr($str,0,2)} . $_H2Z{substr($str,2,2)}; - }eogx - ); - } - else { - $n = ( - $$r_str =~ s( - ($RE{EUC_KANA}) - ){ - $_H2Z{$1}; - }eogx - ); - } - $n; -} - -sub z2h { - my $r_str = shift; - my $n = ( - $$r_str =~ s( - ($RE{EUC_C}|$RE{EUC_0212}|$RE{EUC_KANA}) - ){ - $_Z2D{$1} || $_Z2H{$1} || $1; - }eogx - ); - $n; -} - -1; -__END__ - - -=head1 NAME - -Encode::JP::H2Z -- internally used by Encode::JP::2022_JP* - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/JP/JIS7.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/JP/JIS7.pm deleted file mode 100644 index 6fc383c4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/JP/JIS7.pm +++ /dev/null @@ -1,168 +0,0 @@ -package Encode::JP::JIS7; -use strict; -use warnings; -our $VERSION = do { my @r = ( q$Revision: 2.8 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -use Encode qw(:fallbacks); - -for my $name ( '7bit-jis', 'iso-2022-jp', 'iso-2022-jp-1' ) { - my $h2z = ( $name eq '7bit-jis' ) ? 0 : 1; - my $jis0212 = ( $name eq 'iso-2022-jp' ) ? 0 : 1; - - my $obj = bless { - Name => $name, - h2z => $h2z, - jis0212 => $jis0212, - } => __PACKAGE__; - Encode::define_encoding($obj, $name); -} - -use parent qw(Encode::Encoding); - -# we override this to 1 so PerlIO works -sub needs_lines { 1 } - -use Encode::CJKConstants qw(:all); - -# -# decode is identical for all 2022 variants -# - -sub decode($$;$) { - my ( $obj, $str, $chk ) = @_; - return undef unless defined $str; - my $residue = ''; - if ($chk) { - $str =~ s/([^\x00-\x7f].*)$//so and $residue = $1; - } - $residue .= jis_euc( \$str ); - $_[1] = $residue if $chk; - return Encode::decode( 'euc-jp', $str, FB_PERLQQ ); -} - -# -# encode is different -# - -sub encode($$;$) { - require Encode::JP::H2Z; - my ( $obj, $utf8, $chk ) = @_; - return undef unless defined $utf8; - - # empty the input string in the stack so perlio is ok - $_[1] = '' if $chk; - my ( $h2z, $jis0212 ) = @$obj{qw(h2z jis0212)}; - my $octet = Encode::encode( 'euc-jp', $utf8, $chk || 0 ); - $h2z and &Encode::JP::H2Z::h2z( \$octet ); - euc_jis( \$octet, $jis0212 ); - return $octet; -} - -# -# cat_decode -# -my $re_scan_jis_g = qr{ - \G ( ($RE{JIS_0212}) | $RE{JIS_0208} | - ($RE{ISO_ASC}) | ($RE{JIS_KANA}) | ) - ([^\e]*) -}x; - -sub cat_decode { # ($obj, $dst, $src, $pos, $trm, $chk) - my ( $obj, undef, undef, $pos, $trm ) = @_; # currently ignores $chk - my ( $rdst, $rsrc, $rpos ) = \@_[ 1, 2, 3 ]; - local ${^ENCODING}; - use bytes; - my $opos = pos($$rsrc); - pos($$rsrc) = $pos; - while ( $$rsrc =~ /$re_scan_jis_g/gc ) { - my ( $esc, $esc_0212, $esc_asc, $esc_kana, $chunk ) = - ( $1, $2, $3, $4, $5 ); - - unless ($chunk) { $esc or last; next; } - - if ( $esc && !$esc_asc ) { - $chunk =~ tr/\x21-\x7e/\xa1-\xfe/; - if ($esc_kana) { - $chunk =~ s/([\xa1-\xdf])/\x8e$1/og; - } - elsif ($esc_0212) { - $chunk =~ s/([\xa1-\xfe][\xa1-\xfe])/\x8f$1/og; - } - $chunk = Encode::decode( 'euc-jp', $chunk, 0 ); - } - elsif ( ( my $npos = index( $chunk, $trm ) ) >= 0 ) { - $$rdst .= substr( $chunk, 0, $npos + length($trm) ); - $$rpos += length($esc) + $npos + length($trm); - pos($$rsrc) = $opos; - return 1; - } - $$rdst .= $chunk; - $$rpos = pos($$rsrc); - } - $$rpos = pos($$rsrc); - pos($$rsrc) = $opos; - return ''; -} - -# JIS<->EUC -my $re_scan_jis = qr{ - (?:($RE{JIS_0212})|$RE{JIS_0208}|($RE{ISO_ASC})|($RE{JIS_KANA}))([^\e]*) -}x; - -sub jis_euc { - local ${^ENCODING}; - my $r_str = shift; - $$r_str =~ s($re_scan_jis) - { - my ($esc_0212, $esc_asc, $esc_kana, $chunk) = - ($1, $2, $3, $4); - if (!$esc_asc) { - $chunk =~ tr/\x21-\x7e/\xa1-\xfe/; - if ($esc_kana) { - $chunk =~ s/([\xa1-\xdf])/\x8e$1/og; - } - elsif ($esc_0212) { - $chunk =~ s/([\xa1-\xfe][\xa1-\xfe])/\x8f$1/og; - } - } - $chunk; - }geox; - my ($residue) = ( $$r_str =~ s/(\e.*)$//so ); - return $residue; -} - -sub euc_jis { - no warnings qw(uninitialized); - local ${^ENCODING}; - my $r_str = shift; - my $jis0212 = shift; - $$r_str =~ s{ - ((?:$RE{EUC_C})+|(?:$RE{EUC_KANA})+|(?:$RE{EUC_0212})+) - }{ - my $chunk = $1; - my $esc = - ( $chunk =~ tr/\x8E//d ) ? $ESC{KANA} : - ( $chunk =~ tr/\x8F//d ) ? $ESC{JIS_0212} : - $ESC{JIS_0208}; - if ($esc eq $ESC{JIS_0212} && !$jis0212){ - # fallback to '?' - $chunk =~ tr/\xA1-\xFE/\x3F/; - }else{ - $chunk =~ tr/\xA1-\xFE/\x21-\x7E/; - } - $esc . $chunk . $ESC{ASC}; - }geox; - $$r_str =~ s/\Q$ESC{ASC}\E - (\Q$ESC{KANA}\E|\Q$ESC{JIS_0212}\E|\Q$ESC{JIS_0208}\E)/$1/gox; - $$r_str; -} - -1; -__END__ - - -=head1 NAME - -Encode::JP::JIS7 -- internally used by Encode::JP - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/KR.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/KR.pm deleted file mode 100644 index cf2c1174..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/KR.pm +++ /dev/null @@ -1,69 +0,0 @@ -package Encode::KR; -BEGIN { - if ( ord("A") == 193 ) { - die "Encode::KR not supported on EBCDIC\n"; - } -} -use strict; -use warnings; -use Encode; -our $VERSION = do { my @r = ( q$Revision: 2.3 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; -use XSLoader; -XSLoader::load( __PACKAGE__, $VERSION ); - -use Encode::KR::2022_KR; - -1; -__END__ - -=head1 NAME - -Encode::KR - Korean Encodings - -=head1 SYNOPSIS - - use Encode qw/encode decode/; - $euc_kr = encode("euc-kr", $utf8); # loads Encode::KR implicitly - $utf8 = decode("euc-kr", $euc_kr); # ditto - -=head1 DESCRIPTION - -This module implements Korean charset encodings. Encodings supported -are as follows. - - - Canonical Alias Description - -------------------------------------------------------------------- - euc-kr /\beuc.*kr$/i EUC (Extended Unix Character) - /\bkr.*euc$/i - ksc5601-raw Korean standard code set (as is) - cp949 /(?:x-)?uhc$/i - /(?:x-)?windows-949$/i - /\bks_c_5601-1987$/i - Code Page 949 (EUC-KR + 8,822 - (additional Hangul syllables) - MacKorean EUC-KR + Apple Vendor Mappings - johab JOHAB A supplementary encoding defined in - Annex 3 of KS X 1001:1998 - iso-2022-kr iso-2022-kr [RFC1557] - -------------------------------------------------------------------- - -To find how to use this module in detail, see L. - -=head1 BUGS - -When you see C on mails and web pages, they really -mean "cp949" encodings. To fix that, the following aliases are set; - - qr/(?:x-)?uhc$/i => '"cp949"' - qr/(?:x-)?windows-949$/i => '"cp949"' - qr/ks_c_5601-1987$/i => '"cp949"' - -The ASCII region (0x00-0x7f) is preserved for all encodings, even -though this conflicts with mappings by the Unicode Consortium. - -=head1 SEE ALSO - -L - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/KR/2022_KR.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/KR/2022_KR.pm deleted file mode 100644 index 12232640..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/KR/2022_KR.pm +++ /dev/null @@ -1,83 +0,0 @@ -package Encode::KR::2022_KR; -use strict; -use warnings; -our $VERSION = do { my @r = ( q$Revision: 2.4 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -use Encode qw(:fallbacks); - -use parent qw(Encode::Encoding); -__PACKAGE__->Define('iso-2022-kr'); - -sub needs_lines { 1 } - -sub perlio_ok { - return 0; # for the time being -} - -sub decode { - my ( $obj, $str, $chk ) = @_; - return undef unless defined $str; - my $res = $str; - my $residue = iso_euc( \$res ); - - # This is for PerlIO - $_[1] = $residue if $chk; - return Encode::decode( 'euc-kr', $res, FB_PERLQQ ); -} - -sub encode { - my ( $obj, $utf8, $chk ) = @_; - return undef unless defined $utf8; - - # empty the input string in the stack so perlio is ok - $_[1] = '' if $chk; - my $octet = Encode::encode( 'euc-kr', $utf8, FB_PERLQQ ); - euc_iso( \$octet ); - return $octet; -} - -use Encode::CJKConstants qw(:all); - -# ISO<->EUC - -sub iso_euc { - my $r_str = shift; - $$r_str =~ s/$RE{'2022_KR'}//gox; # remove the designator - $$r_str =~ s{ # replace characters in GL - \x0e # between SO(\x0e) and SI(\x0f) - ([^\x0f]*) # with characters in GR - \x0f - } - { - my $out= $1; - $out =~ tr/\x21-\x7e/\xa1-\xfe/; - $out; - }geox; - my ($residue) = ( $$r_str =~ s/(\e.*)$//so ); - return $residue; -} - -sub euc_iso { - no warnings qw(uninitialized); - my $r_str = shift; - substr( $$r_str, 0, 0 ) = - $ESC{'2022_KR'}; # put the designator at the beg. - $$r_str =~ - s{ # move KS X 1001 characters in GR to GL - ($RE{EUC_C}+) # and enclose them with SO and SI - }{ - my $str = $1; - $str =~ tr/\xA1-\xFE/\x21-\x7E/; - "\x0e" . $str . "\x0f"; - }geox; - $$r_str; -} - -1; -__END__ - -=head1 NAME - -Encode::KR::2022_KR -- internally used by Encode::KR - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/MIME/Header.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/MIME/Header.pm deleted file mode 100644 index 848de99f..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/MIME/Header.pm +++ /dev/null @@ -1,427 +0,0 @@ -package Encode::MIME::Header; -use strict; -use warnings; - -our $VERSION = do { my @r = ( q$Revision: 2.28 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -use Carp (); -use Encode (); -use MIME::Base64 (); - -my %seed = ( - decode_b => 1, # decodes 'B' encoding ? - decode_q => 1, # decodes 'Q' encoding ? - encode => 'B', # encode with 'B' or 'Q' ? - charset => 'UTF-8', # encode charset - bpl => 75, # bytes per line -); - -my @objs; - -push @objs, bless { - %seed, - Name => 'MIME-Header', -} => __PACKAGE__; - -push @objs, bless { - %seed, - decode_q => 0, - Name => 'MIME-B', -} => __PACKAGE__; - -push @objs, bless { - %seed, - decode_b => 0, - encode => 'Q', - Name => 'MIME-Q', -} => __PACKAGE__; - -Encode::define_encoding($_, $_->{Name}) foreach @objs; - -use parent qw(Encode::Encoding); - -sub needs_lines { 1 } -sub perlio_ok { 0 } - -# RFC 2047 and RFC 2231 grammar -my $re_charset = qr/[!"#\$%&'+\-0-9A-Z\\\^_`a-z\{\|\}~]+/; -my $re_language = qr/[A-Za-z]{1,8}(?:-[0-9A-Za-z]{1,8})*/; -my $re_encoding = qr/[QqBb]/; -my $re_encoded_text = qr/[^\?]*/; -my $re_encoded_word = qr/=\?$re_charset(?:\*$re_language)?\?$re_encoding\?$re_encoded_text\?=/; -my $re_capture_encoded_word = qr/=\?($re_charset)((?:\*$re_language)?)\?($re_encoding\?$re_encoded_text)\?=/; -my $re_capture_encoded_word_split = qr/=\?($re_charset)((?:\*$re_language)?)\?($re_encoding)\?($re_encoded_text)\?=/; - -# in strict mode check also for valid base64 characters and also for valid quoted printable codes -my $re_encoding_strict_b = qr/[Bb]/; -my $re_encoding_strict_q = qr/[Qq]/; -my $re_encoded_text_strict_b = qr/[0-9A-Za-z\+\/]*={0,2}/; -my $re_encoded_text_strict_q = qr/(?:[\x21-\x3C\x3E\x40-\x7E]|=[0-9A-Fa-f]{2})*/; # NOTE: first part are printable US-ASCII except ?, =, SPACE and TAB -my $re_encoded_word_strict = qr/=\?$re_charset(?:\*$re_language)?\?(?:$re_encoding_strict_b\?$re_encoded_text_strict_b|$re_encoding_strict_q\?$re_encoded_text_strict_q)\?=/; -my $re_capture_encoded_word_strict = qr/=\?($re_charset)((?:\*$re_language)?)\?($re_encoding_strict_b\?$re_encoded_text_strict_b|$re_encoding_strict_q\?$re_encoded_text_strict_q)\?=/; - -my $re_newline = qr/(?:\r\n|[\r\n])/; - -# in strict mode encoded words must be always separated by spaces or tabs (or folded newline) -# except in comments when separator between words and comment round brackets can be omitted -my $re_word_begin_strict = qr/(?:(?:[ \t]|\A)\(?|(?:[^\\]|\A)\)\()/; -my $re_word_sep_strict = qr/(?:$re_newline?[ \t])+/; -my $re_word_end_strict = qr/(?:\)\(|\)?(?:$re_newline?[ \t]|\z))/; - -my $re_match = qr/()((?:$re_encoded_word\s*)*$re_encoded_word)()/; -my $re_match_strict = qr/($re_word_begin_strict)((?:$re_encoded_word_strict$re_word_sep_strict)*$re_encoded_word_strict)(?=$re_word_end_strict)/; - -my $re_capture = qr/$re_capture_encoded_word(?:\s*)?/; -my $re_capture_strict = qr/$re_capture_encoded_word_strict$re_word_sep_strict?/; - -our $STRICT_DECODE = 0; - -sub decode($$;$) { - my ($obj, $str, $chk) = @_; - return undef unless defined $str; - - my $re_match_decode = $STRICT_DECODE ? $re_match_strict : $re_match; - my $re_capture_decode = $STRICT_DECODE ? $re_capture_strict : $re_capture; - - my $stop = 0; - my $output = substr($str, 0, 0); # to propagate taintedness - - # decode each line separately, match whole continuous folded line at one call - 1 while not $stop and $str =~ s{^((?:[^\r\n]*(?:$re_newline[ \t])?)*)($re_newline)?}{ - - my $line = $1; - my $sep = defined $2 ? $2 : ''; - - $stop = 1 unless length($line) or length($sep); - - # NOTE: this code partially could break $chk support - # in non strict mode concat consecutive encoded mime words with same charset, language and encoding - # fixes breaking inside multi-byte characters - 1 while not $STRICT_DECODE and $line =~ s/$re_capture_encoded_word_split\s*=\?\1\2\?\3\?($re_encoded_text)\?=/=\?$1$2\?$3\?$4$5\?=/so; - - # process sequence of encoded MIME words at once - 1 while not $stop and $line =~ s{^(.*?)$re_match_decode}{ - - my $begin = $1 . $2; - my $words = $3; - - $begin =~ tr/\r\n//d; - $output .= $begin; - - # decode one MIME word - 1 while not $stop and $words =~ s{^(.*?)($re_capture_decode)}{ - - $output .= $1; - my $orig = $2; - my $charset = $3; - my ($mime_enc, $text) = split /\?/, $5; - - $text =~ tr/\r\n//d; - - my $enc = Encode::find_mime_encoding($charset); - - # in non strict mode allow also perl encoding aliases - if ( not defined $enc and not $STRICT_DECODE ) { - # make sure that decoded string will be always strict UTF-8 - $charset = 'UTF-8' if lc($charset) eq 'utf8'; - $enc = Encode::find_encoding($charset); - } - - if ( not defined $enc ) { - Carp::croak qq(Unknown charset "$charset") if not ref $chk and $chk and $chk & Encode::DIE_ON_ERR; - Carp::carp qq(Unknown charset "$charset") if not ref $chk and $chk and $chk & Encode::WARN_ON_ERR; - $stop = 1 if not ref $chk and $chk and $chk & Encode::RETURN_ON_ERR; - $output .= ($output =~ /(?:\A|[ \t])$/ ? '' : ' ') . $orig unless $stop; # $orig mime word is separated by whitespace - $stop ? $orig : ''; - } else { - if ( uc($mime_enc) eq 'B' and $obj->{decode_b} ) { - my $decoded = _decode_b($enc, $text, $chk); - $stop = 1 if not defined $decoded and not ref $chk and $chk and $chk & Encode::RETURN_ON_ERR; - $output .= (defined $decoded ? $decoded : $text) unless $stop; - $stop ? $orig : ''; - } elsif ( uc($mime_enc) eq 'Q' and $obj->{decode_q} ) { - my $decoded = _decode_q($enc, $text, $chk); - $stop = 1 if not defined $decoded and not ref $chk and $chk and $chk & Encode::RETURN_ON_ERR; - $output .= (defined $decoded ? $decoded : $text) unless $stop; - $stop ? $orig : ''; - } else { - Carp::croak qq(MIME "$mime_enc" unsupported) if not ref $chk and $chk and $chk & Encode::DIE_ON_ERR; - Carp::carp qq(MIME "$mime_enc" unsupported) if not ref $chk and $chk and $chk & Encode::WARN_ON_ERR; - $stop = 1 if not ref $chk and $chk and $chk & Encode::RETURN_ON_ERR; - $output .= ($output =~ /(?:\A|[ \t])$/ ? '' : ' ') . $orig unless $stop; # $orig mime word is separated by whitespace - $stop ? $orig : ''; - } - } - - }se; - - if ( not $stop ) { - $output .= $words; - $words = ''; - } - - $words; - - }se; - - if ( not $stop ) { - $line =~ tr/\r\n//d; - $output .= $line . $sep; - $line = ''; - $sep = ''; - } - - $line . $sep; - - }se; - - $_[1] = $str if not ref $chk and $chk and !($chk & Encode::LEAVE_SRC); - return $output; -} - -sub _decode_b { - my ($enc, $text, $chk) = @_; - # MIME::Base64::decode ignores everything after a '=' padding character - # in non strict mode split string after each sequence of padding characters and decode each substring - my $octets = $STRICT_DECODE ? - MIME::Base64::decode($text) : - join('', map { MIME::Base64::decode($_) } split /(?<==)(?=[^=])/, $text); - return _decode_octets($enc, $octets, $chk); -} - -sub _decode_q { - my ($enc, $text, $chk) = @_; - $text =~ s/_/ /go; - $text =~ s/=([0-9A-Fa-f]{2})/pack('C', hex($1))/ego; - return _decode_octets($enc, $text, $chk); -} - -sub _decode_octets { - my ($enc, $octets, $chk) = @_; - $chk = 0 unless defined $chk; - $chk &= ~Encode::LEAVE_SRC if not ref $chk and $chk; - my $output = $enc->decode($octets, $chk); - return undef if not ref $chk and $chk and $octets ne ''; - return $output; -} - -sub encode($$;$) { - my ($obj, $str, $chk) = @_; - return undef unless defined $str; - my $output = $obj->_fold_line($obj->_encode_string($str, $chk)); - $_[1] = $str if not ref $chk and $chk and !($chk & Encode::LEAVE_SRC); - return $output . substr($str, 0, 0); # to propagate taintedness -} - -sub _fold_line { - my ($obj, $line) = @_; - my $bpl = $obj->{bpl}; - my $output = ''; - - while ( length($line) ) { - if ( $line =~ s/^(.{0,$bpl})(\s|\z)// ) { - $output .= $1; - $output .= "\r\n" . $2 if length($line); - } elsif ( $line =~ s/(\s)(.*)$// ) { - $output .= $line; - $line = $2; - $output .= "\r\n" . $1 if length($line); - } else { - $output .= $line; - last; - } - } - - return $output; -} - -sub _encode_string { - my ($obj, $str, $chk) = @_; - my $wordlen = $obj->{bpl} > 76 ? 76 : $obj->{bpl}; - my $enc = Encode::find_mime_encoding($obj->{charset}); - my $enc_chk = $chk; - $enc_chk = 0 unless defined $enc_chk; - $enc_chk |= Encode::LEAVE_SRC if not ref $enc_chk and $enc_chk; - my @result = (); - my $octets = ''; - while ( length( my $chr = substr($str, 0, 1, '') ) ) { - my $seq = $enc->encode($chr, $enc_chk); - if ( not length($seq) ) { - substr($str, 0, 0, $chr); - last; - } - if ( $obj->_encoded_word_len($octets . $seq) > $wordlen ) { - push @result, $obj->_encode_word($octets); - $octets = ''; - } - $octets .= $seq; - } - length($octets) and push @result, $obj->_encode_word($octets); - $_[1] = $str if not ref $chk and $chk and !($chk & Encode::LEAVE_SRC); - return join(' ', @result); -} - -sub _encode_word { - my ($obj, $octets) = @_; - my $charset = $obj->{charset}; - my $encode = $obj->{encode}; - my $text = $encode eq 'B' ? _encode_b($octets) : _encode_q($octets); - return "=?$charset?$encode?$text?="; -} - -sub _encoded_word_len { - my ($obj, $octets) = @_; - my $charset = $obj->{charset}; - my $encode = $obj->{encode}; - my $text_len = $encode eq 'B' ? _encoded_b_len($octets) : _encoded_q_len($octets); - return length("=?$charset?$encode??=") + $text_len; -} - -sub _encode_b { - my ($octets) = @_; - return MIME::Base64::encode($octets, ''); -} - -sub _encoded_b_len { - my ($octets) = @_; - return ( length($octets) + 2 ) / 3 * 4; -} - -my $re_invalid_q_char = qr/[^0-9A-Za-z !*+\-\/]/; - -sub _encode_q { - my ($octets) = @_; - $octets =~ s{($re_invalid_q_char)}{ - join('', map { sprintf('=%02X', $_) } unpack('C*', $1)) - }egox; - $octets =~ s/ /_/go; - return $octets; -} - -sub _encoded_q_len { - my ($octets) = @_; - my $invalid_count = () = $octets =~ /$re_invalid_q_char/sgo; - return ( $invalid_count * 3 ) + ( length($octets) - $invalid_count ); -} - -1; -__END__ - -=head1 NAME - -Encode::MIME::Header -- MIME encoding for an unstructured email header - -=head1 SYNOPSIS - - use Encode qw(encode decode); - - my $mime_str = encode("MIME-Header", "Sample:Text \N{U+263A}"); - # $mime_str is "=?UTF-8?B?U2FtcGxlOlRleHQg4pi6?=" - - my $mime_q_str = encode("MIME-Q", "Sample:Text \N{U+263A}"); - # $mime_q_str is "=?UTF-8?Q?Sample=3AText_=E2=98=BA?=" - - my $str = decode("MIME-Header", - "=?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=\r\n " . - "=?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=" - ); - # $str is "If you can read this you understand the example." - - use Encode qw(decode :fallbacks); - use Encode::MIME::Header; - local $Encode::MIME::Header::STRICT_DECODE = 1; - my $strict_string = decode("MIME-Header", $mime_string, FB_CROAK); - # use strict decoding and croak on errors - -=head1 ABSTRACT - -This module implements L MIME -encoding for an unstructured field body of the email header. It can also be -used for L 'text' token. However, -it cannot be used directly for the whole header with the field name or for the -structured header fields like From, To, Cc, Message-Id, etc... There are 3 -encoding names supported by this module: C, C and -C. - -=head1 DESCRIPTION - -Decode method takes an unstructured field body of the email header (or -L 'text' token) as its input and -decodes each MIME encoded-word from input string to a sequence of bytes -according to L and -L. Subsequently, each sequence -of bytes with the corresponding MIME charset is decoded with -L and finally, one output string is returned. Text -parts of the input string which do not contain MIME encoded-word stay -unmodified in the output string. Folded newlines between two consecutive MIME -encoded-words are discarded, others are preserved in the output string. -C can decode Base64 variant, C can decode Quoted-Printable -variant and C can decode both of them. If L -does not support particular MIME charset or chosen variant then an action based -on L is performed (by default, the -MIME encoded-word is not decoded). - -Encode method takes a scalar string as its input and uses -L encoder for encoding it to UTF-8 -bytes. Then a sequence of UTF-8 bytes is encoded into MIME encoded-words -(C and C use a Base64 variant while C uses a -Quoted-Printable variant) where each MIME encoded-word is limited to 75 -characters. MIME encoded-words are separated by C and joined to -one output string. Output string is suitable for unstructured field body of -the email header. - -Both encode and decode methods propagate -L when encoding and decoding the -MIME charset. - -=head1 BUGS - -Versions prior to 2.22 (part of Encode 2.83) have a malfunctioning decoder -and encoder. The MIME encoder infamously inserted additional spaces or -discarded white spaces between consecutive MIME encoded-words, which led to -invalid MIME headers produced by this module. The MIME decoder had a tendency -to discard white spaces, incorrectly interpret data or attempt to decode Base64 -MIME encoded-words as Quoted-Printable. These problems were fixed in version -2.22. It is highly recommended not to use any version prior 2.22! - -Versions prior to 2.24 (part of Encode 2.87) ignored -L. The MIME encoder used -L encoder for input Unicode -strings which could lead to invalid UTF-8 sequences. MIME decoder used also -L decoder and additionally -called the decode method with a C flag (thus user-specified -L were ignored). Moreover, it -automatically croaked when a MIME encoded-word contained unknown encoding. -Since version 2.24, this module uses -L encoder and decoder. And -L are correctly propagated. - -Since version 2.22 (part of Encode 2.83), the MIME encoder should be fully -compliant to L and -L. Due to the aforementioned -bugs in previous versions of the MIME encoder, there is a I -compatible mode for the MIME decoder which is used by default. It should be -able to decode MIME encoded-words encoded by pre 2.22 versions of this module. -However, note that this is not correct according to -L. - -In default I mode the MIME decoder attempts to decode every substring -which looks like a MIME encoded-word. Therefore, the MIME encoded-words do not -need to be separated by white space. To enforce a correct I mode, set -variable C<$Encode::MIME::Header::STRICT_DECODE> to 1 e.g. by localizing: - - use Encode::MIME::Header; - local $Encode::MIME::Header::STRICT_DECODE = 1; - -=head1 AUTHORS - -Pali Epali@cpan.orgE - -=head1 SEE ALSO - -L, -L, -L, -L - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/MIME/Header/ISO_2022_JP.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/MIME/Header/ISO_2022_JP.pm deleted file mode 100644 index dc1e4275..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/MIME/Header/ISO_2022_JP.pm +++ /dev/null @@ -1,133 +0,0 @@ -package Encode::MIME::Header::ISO_2022_JP; - -use strict; -use warnings; - -use parent qw(Encode::MIME::Header); - -my $obj = - bless { decode_b => '1', decode_q => '1', encode => 'B', bpl => 76, Name => 'MIME-Header-ISO_2022_JP' } => - __PACKAGE__; -Encode::define_encoding($obj, 'MIME-Header-ISO_2022_JP'); - -use constant HEAD => '=?ISO-2022-JP?B?'; -use constant TAIL => '?='; - -use Encode::CJKConstants qw(%RE); - -our $VERSION = do { my @r = ( q$Revision: 1.9 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -# I owe the below codes totally to -# Jcode by Dan Kogai & http://www.din.or.jp/~ohzaki/perl.htm#JP_Base64 - -sub encode { - my $self = shift; - my $str = shift; - return undef unless defined $str; - - utf8::encode($str) if ( Encode::is_utf8($str) ); - Encode::from_to( $str, 'utf8', 'euc-jp' ); - - my ($trailing_crlf) = ( $str =~ /(\n|\r|\x0d\x0a)$/o ); - - $str = _mime_unstructured_header( $str, $self->{bpl} ); - - not $trailing_crlf and $str =~ s/(\n|\r|\x0d\x0a)$//o; - - return $str; -} - -sub _mime_unstructured_header { - my ( $oldheader, $bpl ) = @_; - my $crlf = $oldheader =~ /\n$/; - my ( $header, @words, @wordstmp, $i ) = (''); - - $oldheader =~ s/\s+$//; - - @wordstmp = split /\s+/, $oldheader; - - for ( $i = 0 ; $i < $#wordstmp ; $i++ ) { - if ( $wordstmp[$i] !~ /^[\x21-\x7E]+$/ - and $wordstmp[ $i + 1 ] !~ /^[\x21-\x7E]+$/ ) - { - $wordstmp[ $i + 1 ] = "$wordstmp[$i] $wordstmp[$i + 1]"; - } - else { - push( @words, $wordstmp[$i] ); - } - } - - push( @words, $wordstmp[-1] ); - - for my $word (@words) { - if ( $word =~ /^[\x21-\x7E]+$/ ) { - $header =~ /(?:.*\n)*(.*)/; - if ( length($1) + length($word) > $bpl ) { - $header .= "\n $word"; - } - else { - $header .= $word; - } - } - else { - $header = _add_encoded_word( $word, $header, $bpl ); - } - - $header =~ /(?:.*\n)*(.*)/; - - if ( length($1) == $bpl ) { - $header .= "\n "; - } - else { - $header .= ' '; - } - } - - $header =~ s/\n? $//mg; - - $crlf ? "$header\n" : $header; -} - -sub _add_encoded_word { - my ( $str, $line, $bpl ) = @_; - my $result = ''; - - while ( length($str) ) { - my $target = $str; - $str = ''; - - if ( - length($line) + 22 + - ( $target =~ /^(?:$RE{EUC_0212}|$RE{EUC_C})/o ) * 8 > $bpl ) - { - $line =~ s/[ \t\n\r]*$/\n/; - $result .= $line; - $line = ' '; - } - - while (1) { - my $iso_2022_jp = $target; - Encode::from_to( $iso_2022_jp, 'euc-jp', 'iso-2022-jp' ); - - my $encoded = - HEAD . MIME::Base64::encode_base64( $iso_2022_jp, '' ) . TAIL; - - if ( length($encoded) + length($line) > $bpl ) { - $target =~ - s/($RE{EUC_0212}|$RE{EUC_KANA}|$RE{EUC_C}|$RE{ASCII})$//o; - $str = $1 . $str; - } - else { - $line .= $encoded; - last; - } - } - - } - - $result . $line; -} - -1; -__END__ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/MIME/Name.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/MIME/Name.pm deleted file mode 100644 index 72ec79ad..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/MIME/Name.pm +++ /dev/null @@ -1,103 +0,0 @@ -package Encode::MIME::Name; -use strict; -use warnings; -our $VERSION = do { my @r = ( q$Revision: 1.3 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -# NOTE: This table must be 1:1 mapping -our %MIME_NAME_OF = ( - 'AdobeStandardEncoding' => 'Adobe-Standard-Encoding', - 'AdobeSymbol' => 'Adobe-Symbol-Encoding', - 'ascii' => 'US-ASCII', - 'big5-hkscs' => 'Big5-HKSCS', - 'cp1026' => 'IBM1026', - 'cp1047' => 'IBM1047', - 'cp1250' => 'windows-1250', - 'cp1251' => 'windows-1251', - 'cp1252' => 'windows-1252', - 'cp1253' => 'windows-1253', - 'cp1254' => 'windows-1254', - 'cp1255' => 'windows-1255', - 'cp1256' => 'windows-1256', - 'cp1257' => 'windows-1257', - 'cp1258' => 'windows-1258', - 'cp37' => 'IBM037', - 'cp424' => 'IBM424', - 'cp437' => 'IBM437', - 'cp500' => 'IBM500', - 'cp775' => 'IBM775', - 'cp850' => 'IBM850', - 'cp852' => 'IBM852', - 'cp855' => 'IBM855', - 'cp857' => 'IBM857', - 'cp860' => 'IBM860', - 'cp861' => 'IBM861', - 'cp862' => 'IBM862', - 'cp863' => 'IBM863', - 'cp864' => 'IBM864', - 'cp865' => 'IBM865', - 'cp866' => 'IBM866', - 'cp869' => 'IBM869', - 'cp936' => 'GBK', - 'euc-cn' => 'EUC-CN', - 'euc-jp' => 'EUC-JP', - 'euc-kr' => 'EUC-KR', - #'gb2312-raw' => 'GB2312', # no, you're wrong, I18N::Charset - 'hp-roman8' => 'hp-roman8', - 'hz' => 'HZ-GB-2312', - 'iso-2022-jp' => 'ISO-2022-JP', - 'iso-2022-jp-1' => 'ISO-2022-JP-1', - 'iso-2022-kr' => 'ISO-2022-KR', - 'iso-8859-1' => 'ISO-8859-1', - 'iso-8859-10' => 'ISO-8859-10', - 'iso-8859-13' => 'ISO-8859-13', - 'iso-8859-14' => 'ISO-8859-14', - 'iso-8859-15' => 'ISO-8859-15', - 'iso-8859-16' => 'ISO-8859-16', - 'iso-8859-2' => 'ISO-8859-2', - 'iso-8859-3' => 'ISO-8859-3', - 'iso-8859-4' => 'ISO-8859-4', - 'iso-8859-5' => 'ISO-8859-5', - 'iso-8859-6' => 'ISO-8859-6', - 'iso-8859-7' => 'ISO-8859-7', - 'iso-8859-8' => 'ISO-8859-8', - 'iso-8859-9' => 'ISO-8859-9', - #'jis0201-raw' => 'JIS_X0201', - #'jis0208-raw' => 'JIS_C6226-1983', - #'jis0212-raw' => 'JIS_X0212-1990', - 'koi8-r' => 'KOI8-R', - 'koi8-u' => 'KOI8-U', - #'ksc5601-raw' => 'KS_C_5601-1987', - 'shiftjis' => 'Shift_JIS', - 'UTF-16' => 'UTF-16', - 'UTF-16BE' => 'UTF-16BE', - 'UTF-16LE' => 'UTF-16LE', - 'UTF-32' => 'UTF-32', - 'UTF-32BE' => 'UTF-32BE', - 'UTF-32LE' => 'UTF-32LE', - 'UTF-7' => 'UTF-7', - 'utf-8-strict' => 'UTF-8', - 'viscii' => 'VISCII', -); - -# NOTE: %MIME_NAME_OF is still 1:1 mapping -our %ENCODE_NAME_OF = map { uc $MIME_NAME_OF{$_} => $_ } keys %MIME_NAME_OF; - -# Add additional 1:N mapping -$MIME_NAME_OF{'utf8'} = 'UTF-8'; - -sub get_mime_name($) { $MIME_NAME_OF{$_[0]} }; - -sub get_encode_name($) { $ENCODE_NAME_OF{uc $_[0]} }; - -1; -__END__ - -=head1 NAME - -Encode::MIME::NAME -- internally used by Encode - -=head1 SEE ALSO - -L - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Makefile_PL.e2x b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Makefile_PL.e2x deleted file mode 100644 index c17a5096..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Makefile_PL.e2x +++ /dev/null @@ -1,190 +0,0 @@ -# -# This file is auto-generated by: -# enc2xs version $_Version_ -# $_Now_ -# -use 5.7.2; -use strict; -use ExtUtils::MakeMaker; -use Config; - -# Please edit the following to the taste! -my $name = '$_Name_'; -my %tables = ( - $_Name__t => [ $_TableFiles_ ], - ); - -#### DO NOT EDIT BEYOND THIS POINT! -require File::Spec; -my ($enc2xs, $encode_h) = (); -my @path_ext = (''); -@path_ext = split(';', $ENV{PATHEXT}) if $^O eq 'MSWin32'; -PATHLOOP: -for my $d (@Config{qw/bin sitebin vendorbin/}, - (split /$Config{path_sep}/o, $ENV{PATH})){ - for my $f (qw/enc2xs enc2xs5.7.3/){ - my $path = File::Spec->catfile($d, $f); - for my $ext (@path_ext) { - my $bin = "$path$ext"; - -r "$bin" and $enc2xs = $bin and last PATHLOOP; - } - } -} -$enc2xs or die "enc2xs not found!"; -print "enc2xs is $enc2xs\n"; -my %encode_h = (); -for my $d (@INC){ - my $dir = File::Spec->catfile($d, "Encode"); - my $file = File::Spec->catfile($dir, "encode.h"); - -f $file and $encode_h{$dir} = -M $file; -} -%encode_h or die "encode.h not found!"; -# find the latest one -($encode_h) = sort {$encode_h{$b} <=> $encode_h{$a}} keys %encode_h; -print "encode.h is at $encode_h\n"; - -WriteMakefile( - INC => "-I$encode_h", -#### END_OF_HEADER -- DO NOT EDIT THIS LINE BY HAND! #### - NAME => 'Encode::'.$name, - VERSION_FROM => "$name.pm", - OBJECT => '$(O_FILES)', - 'dist' => { - COMPRESS => 'gzip -9f', - SUFFIX => 'gz', - DIST_DEFAULT => 'all tardist', - }, - MAN3PODS => {}, - PREREQ_PM => { - 'Encode' => "1.41", - }, - # OS 390 winges about line numbers > 64K ??? - XSOPT => '-nolinenumbers', - ); - -package MY; - -sub post_initialize -{ - my ($self) = @_; - my %o; - my $x = $self->{'OBJ_EXT'}; - # Add the table O_FILES - foreach my $e (keys %tables) - { - $o{$e.$x} = 1; - } - $o{"$name$x"} = 1; - $self->{'O_FILES'} = [sort keys %o]; - my @files = ("$name.xs"); - $self->{'C'} = ["$name.c"]; - # The next two lines to make MacPerl Happy -- dankogai via pudge - $self->{SOURCE} .= " $name.c" - if $^O eq 'MacOS' && $self->{SOURCE} !~ /\b$name\.c\b/; - # $self->{'H'} = [$self->catfile($self->updir,'encode.h')]; - my %xs; - foreach my $table (sort keys %tables) { - push (@{$self->{'C'}},"$table.c"); - # Do NOT add $table.h etc. to H_FILES unless we own up as to how they - # get built. - foreach my $ext (qw($(OBJ_EXT) .c .h .exh .fnm)) { - push (@files,$table.$ext); - } - } - $self->{'XS'} = { "$name.xs" => "$name.c" }; - $self->{'clean'}{'FILES'} .= join(' ',@files); - open(XS,">$name.xs") || die "Cannot open $name.xs:$!"; - print XS <<'END'; -#include -#include -#include -#include "encode.h" -END - foreach my $table (sort keys %tables) { - print XS qq[#include "${table}.h"\n]; - } - print XS <<"END"; - -static void -Encode_XSEncoding(pTHX_ encode_t *enc) -{ - dSP; - HV *stash = gv_stashpv("Encode::XS", TRUE); - SV *iv = newSViv(PTR2IV(enc)); - SV *sv = sv_bless(newRV_noinc(iv),stash); - int i = 0; - /* with the SvLEN() == 0 hack, PVX won't be freed. We cast away name's - constness, in the hope that perl won't mess with it. */ - assert(SvTYPE(iv) >= SVt_PV); assert(SvLEN(iv) == 0); - SvFLAGS(iv) |= SVp_POK; - SvPVX(iv) = (char*) enc->name[0]; - PUSHMARK(sp); - XPUSHs(sv); - while (enc->name[i]) - { - const char *name = enc->name[i++]; - XPUSHs(sv_2mortal(newSVpvn(name,strlen(name)))); - } - PUTBACK; - call_pv("Encode::define_encoding",G_DISCARD); - SvREFCNT_dec(sv); -} - -MODULE = Encode::$name PACKAGE = Encode::$name -PROTOTYPES: DISABLE -BOOT: -{ -END - foreach my $table (sort keys %tables) { - print XS qq[#include "${table}.exh"\n]; - } - print XS "}\n"; - close(XS); - return "# Built $name.xs\n\n"; -} - -sub postamble -{ - my $self = shift; - my $dir = "."; # $self->catdir('Encode'); - my $str = "# $name\$(OBJ_EXT) depends on .h and .exh files not .c files - but all written by enc2xs\n"; - $str .= "$name.c : $name.xs "; - foreach my $table (sort keys %tables) - { - $str .= " $table.c"; - } - $str .= "\n\n"; - $str .= "$name\$(OBJ_EXT) : $name.c\n\n"; - - foreach my $table (sort keys %tables) - { - my $numlines = 1; - my $lengthsofar = length($str); - my $continuator = ''; - $str .= "$table.c : Makefile.PL"; - foreach my $file (@{$tables{$table}}) - { - $str .= $continuator.' '.$self->catfile($dir,$file); - if ( length($str)-$lengthsofar > 128*$numlines ) - { - $continuator .= " \\\n\t"; - $numlines++; - } else { - $continuator = ''; - } - } - my $plib = $self->{PERL_CORE} ? '"-I$(PERL_LIB)"' : ''; - my $ucopts = '-"Q"'; - $str .= - qq{\n\t\$(PERL) $plib $enc2xs $ucopts -o \$\@ -f $table.fnm\n\n}; - open (FILELIST, ">$table.fnm") - || die "Could not open $table.fnm: $!"; - foreach my $file (@{$tables{$table}}) - { - print FILELIST $self->catfile($dir,$file) . "\n"; - } - close(FILELIST); - } - return $str; -} - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/PerlIO.pod b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/PerlIO.pod deleted file mode 100644 index 1a9269a9..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/PerlIO.pod +++ /dev/null @@ -1,167 +0,0 @@ -=head1 NAME - -Encode::PerlIO -- a detailed document on Encode and PerlIO - -=head1 Overview - -It is very common to want to do encoding transformations when -reading or writing files, network connections, pipes etc. -If Perl is configured to use the new 'perlio' IO system then -C provides a "layer" (see L) which can transform -data as it is read or written. - -Here is how the blind poet would modernise the encoding: - - use Encode; - open(my $iliad,'<:encoding(iso-8859-7)','iliad.greek'); - open(my $utf8,'>:utf8','iliad.utf8'); - my @epic = <$iliad>; - print $utf8 @epic; - close($utf8); - close($illiad); - -In addition, the new IO system can also be configured to read/write -UTF-8 encoded characters (as noted above, this is efficient): - - open(my $fh,'>:utf8','anything'); - print $fh "Any \x{0021} string \N{SMILEY FACE}\n"; - -Either of the above forms of "layer" specifications can be made the default -for a lexical scope with the C pragma. See L. - -Once a handle is open, its layers can be altered using C. - -Without any such configuration, or if Perl itself is built using the -system's own IO, then write operations assume that the file handle -accepts only I and will C if a character larger than 255 is -written to the handle. When reading, each octet from the handle becomes -a byte-in-a-character. Note that this default is the same behaviour -as bytes-only languages (including Perl before v5.6) would have, -and is sufficient to handle native 8-bit encodings e.g. iso-8859-1, -EBCDIC etc. and any legacy mechanisms for handling other encodings -and binary data. - -In other cases, it is the program's responsibility to transform -characters into bytes using the API above before doing writes, and to -transform the bytes read from a handle into characters before doing -"character operations" (e.g. C, C, ...). - -You can also use PerlIO to convert larger amounts of data you don't -want to bring into memory. For example, to convert between ISO-8859-1 -(Latin 1) and UTF-8 (or UTF-EBCDIC in EBCDIC machines): - - open(F, "<:encoding(iso-8859-1)", "data.txt") or die $!; - open(G, ">:utf8", "data.utf") or die $!; - while () { print G } - - # Could also do "print G " but that would pull - # the whole file into memory just to write it out again. - -More examples: - - open(my $f, "<:encoding(cp1252)") - open(my $g, ">:encoding(iso-8859-2)") - open(my $h, ">:encoding(latin9)") # iso-8859-15 - -See also L for how to change the default encoding of the -data in your script. - -=head1 How does it work? - -Here is a crude diagram of how filehandle, PerlIO, and Encode -interact. - - filehandle <-> PerlIO PerlIO <-> scalar (read/printed) - \ / - Encode - -When PerlIO receives data from either direction, it fills a buffer -(currently with 1024 bytes) and passes the buffer to Encode. -Encode tries to convert the valid part and passes it back to PerlIO, -leaving invalid parts (usually a partial character) in the buffer. -PerlIO then appends more data to the buffer, calls Encode again, -and so on until the data stream ends. - -To do so, PerlIO always calls (de|en)code methods with CHECK set to 1. -This ensures that the method stops at the right place when it -encounters partial character. The following is what happens when -PerlIO and Encode tries to encode (from utf8) more than 1024 bytes -and the buffer boundary happens to be in the middle of a character. - - A B C .... ~ \x{3000} .... - 41 42 43 .... 7E e3 80 80 .... - <- buffer ---------------> - << encoded >>>>>>>>>> - <- next buffer ------ - -Encode converts from the beginning to \x7E, leaving \xe3 in the buffer -because it is invalid (partial character). - -Unfortunately, this scheme does not work well with escape-based -encodings such as ISO-2022-JP. - -=head1 Line Buffering - -Now let's see what happens when you try to decode from ISO-2022-JP and -the buffer ends in the middle of a character. - - JIS208-ESC \x{5f3e} - A B C .... ~ \e $ B |DAN | .... - 41 42 43 .... 7E 1b 24 41 43 46 .... - <- buffer ---------------------------> - << encoded >>>>>>>>>>>>>>>>>>>>>>> - -As you see, the next buffer begins with \x43. But \x43 is 'C' in -ASCII, which is wrong in this case because we are now in JISX 0208 -area so it has to convert \x43\x46, not \x43. Unlike utf8 and EUC, -in escape-based encodings you can't tell if a given octet is a whole -character or just part of it. - -Fortunately PerlIO also supports line buffer if you tell PerlIO to use -one instead of fixed buffer. Since ISO-2022-JP is guaranteed to revert to ASCII at the end of the line, partial -character will never happen when line buffer is used. - -To tell PerlIO to use line buffer, implement -Eneeds_lines method -for your encoding object. See L for details. - -Thanks to these efforts most encodings that come with Encode support -PerlIO but that still leaves following encodings. - - iso-2022-kr - MIME-B - MIME-Header - MIME-Q - -Fortunately iso-2022-kr is hardly used (according to Jungshik) and -MIME-* are very unlikely to be fed to PerlIO because they are for mail -headers. See L for details. - -=head2 How can I tell whether my encoding fully supports PerlIO ? - -As of this writing, any encoding whose class belongs to Encode::XS and -Encode::Unicode works. The Encode module has a C method -which you can use before applying PerlIO encoding to the filehandle. -Here is an example: - - my $use_perlio = perlio_ok($enc); - my $layer = $use_perlio ? "<:raw" : "<:encoding($enc)"; - open my $fh, $layer, $file or die "$file : $!"; - while(<$fh>){ - $_ = decode($enc, $_) unless $use_perlio; - # .... - } - -=head1 SEE ALSO - -L, -L, -L, -L, -L, -L, -L, -L, -the Perl Unicode Mailing List Eperl-unicode@perl.orgE - -=cut - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/README.e2x b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/README.e2x deleted file mode 100644 index 28a31a65..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/README.e2x +++ /dev/null @@ -1,31 +0,0 @@ -Encode::$_Name_ version 0.1 -======== - -NAME - Encode::$_Name_ - - -SYNOPSIS - use Encode::$_Name_; - # -ABSTRACT - -INSTALLATION - -To install this module type the following: - - perl Makefile.PL - make - make test - make install - -DEPENDENCIES - -This module requires perl version 5.7.3 or later. - -COPYRIGHT AND LICENCE - -Copyright (C) 2002 Your Name - -This library is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Supported.pod b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Supported.pod deleted file mode 100644 index b23f6ca8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Supported.pod +++ /dev/null @@ -1,901 +0,0 @@ -=head1 NAME - -Encode::Supported -- Encodings supported by Encode - -=head1 DESCRIPTION - -=head2 Encoding Names - -Encoding names are case insensitive. White space in names -is ignored. In addition, an encoding may have aliases. -Each encoding has one "canonical" name. The "canonical" -name is chosen from the names of the encoding by picking -the first in the following sequence (with a few exceptions). - -=over 2 - -=item * - -The name used by the Perl community. That includes 'utf8' and 'ascii'. -Unlike aliases, canonical names directly reach the method so such -frequently used words like 'utf8' don't need to do alias lookups. - -=item * - -The MIME name as defined in IETF RFCs. This includes all "iso-"s. - -=item * - -The name in the IANA registry. - -=item * - -The name used by the organization that defined it. - -=back - -In case I canonical names differ from that of the Encode -module, they are always aliased if it ever be implemented. So you can -safely tell if a given encoding is implemented or not just by passing -the canonical name. - -Because of all the alias issues, and because in the general case -encodings have state, "Encode" uses an encoding object internally -once an operation is in progress. - -=head1 Supported Encodings - -As of Perl 5.8.0, at least the following encodings are recognized. -Note that unless otherwise specified, they are all case insensitive -(via alias) and all occurrence of spaces are replaced with '-'. -In other words, "ISO 8859 1" and "iso-8859-1" are identical. - -Encodings are categorized and implemented in several different modules -but you don't have to C to make them available for -most cases. Encode.pm will automatically load those modules on demand. - -=head2 Built-in Encodings - -The following encodings are always available. - - Canonical Aliases Comments & References - ---------------------------------------------------------------- - ascii US-ascii ISO-646-US [ECMA] - ascii-ctrl Special Encoding - iso-8859-1 latin1 [ISO] - null Special Encoding - utf8 UTF-8 [RFC2279] - ---------------------------------------------------------------- - -I and I are special. "null" fails for all character -so when you set fallback mode to PERLQQ, HTMLCREF or XMLCREF, ALL -CHARACTERS will fall back to character references. Ditto for -"ascii-ctrl" except for control characters. For fallback modes, see -L. - -=head2 Encode::Unicode -- other Unicode encodings - -Unicode coding schemes other than native utf8 are supported by -Encode::Unicode, which will be autoloaded on demand. - - ---------------------------------------------------------------- - UCS-2BE UCS-2, iso-10646-1 [IANA, UC] - UCS-2LE [UC] - UTF-16 [UC] - UTF-16BE [UC] - UTF-16LE [UC] - UTF-32 [UC] - UTF-32BE UCS-4 [UC] - UTF-32LE [UC] - UTF-7 [RFC2152] - ---------------------------------------------------------------- - -To find how (UCS-2|UTF-(16|32))(LE|BE)? differ from one another, -see L. - -UTF-7 is a special encoding which "re-encodes" UTF-16BE into a 7-bit -encoding. It is implemented separately by Encode::Unicode::UTF7. - -=head2 Encode::Byte -- Extended ASCII - -Encode::Byte implements most single-byte encodings except for -Symbols and EBCDIC. The following encodings are based on single-byte -encodings implemented as extended ASCII. Most of them map -\x80-\xff (upper half) to non-ASCII characters. - -=over 2 - -=item ISO-8859 and corresponding vendor mappings - -Since there are so many, they are presented in table format with -languages and corresponding encoding names by vendors. Note that -the table is sorted in order of ISO-8859 and the corresponding vendor -mappings are slightly different from that of ISO. See -L for details. - - Lang/Regions ISO/Other Std. DOS Windows Macintosh Others - ---------------------------------------------------------------- - N. America (ASCII) cp437 AdobeStandardEncoding - cp863 (DOSCanadaF) - W. Europe iso-8859-1 cp850 cp1252 MacRoman nextstep - hp-roman8 - cp860 (DOSPortuguese) - Cntrl. Europe iso-8859-2 cp852 cp1250 MacCentralEurRoman - MacCroatian - MacRomanian - MacRumanian - Latin3[1] iso-8859-3 - Latin4[2] iso-8859-4 - Cyrillics iso-8859-5 cp855 cp1251 MacCyrillic - (See also next section) cp866 MacUkrainian - Arabic iso-8859-6 cp864 cp1256 MacArabic - cp1006 MacFarsi - Greek iso-8859-7 cp737 cp1253 MacGreek - cp869 (DOSGreek2) - Hebrew iso-8859-8 cp862 cp1255 MacHebrew - Turkish iso-8859-9 cp857 cp1254 MacTurkish - Nordics iso-8859-10 cp865 - cp861 MacIcelandic - MacSami - Thai iso-8859-11[3] cp874 MacThai - (iso-8859-12 is nonexistent. Reserved for Indics?) - Baltics iso-8859-13 cp775 cp1257 - Celtics iso-8859-14 - Latin9 [4] iso-8859-15 - Latin10 iso-8859-16 - Vietnamese viscii cp1258 MacVietnamese - ---------------------------------------------------------------- - - [1] Esperanto, Maltese, and Turkish. Turkish is now on 8859-9. - [2] Baltics. Now on 8859-10, except for Latvian. - [3] TIS 620 + Non-Breaking Space (0xA0 / U+00A0) - [4] Nicknamed Latin0; the Euro sign as well as French and Finnish - letters that are missing from 8859-1 were added. - -All cp* are also available as ibm-*, ms-*, and windows-* . See also -L. - -Macintosh encodings don't seem to be registered in such entities as -IANA. "Canonical" names in Encode are based upon Apple's Tech Note -1150. See L -for details. - -=item KOI8 - De Facto Standard for the Cyrillic world - -Though ISO-8859 does have ISO-8859-5, the KOI8 series is far more -popular in the Net. L comes with the following KOI charsets. -For gory details, see L - - ---------------------------------------------------------------- - koi8-f - koi8-r cp878 [RFC1489] - koi8-u [RFC2319] - ---------------------------------------------------------------- - -=back - -=head2 gsm0338 - Hentai Latin 1 - -GSM0338 is for GSM handsets. Though it shares alphanumerals with -ASCII, control character ranges and other parts are mapped very -differently, mainly to store Greek characters. There are also escape -sequences (starting with 0x1B) to cover e.g. the Euro sign. - -This was once handled by L but because of all those -unusual specifications, Encode 2.20 has relocated the support to -L. See L for details. - -=over 2 - -=item gsm0338 support before 2.19 - -Some special cases like a trailing 0x00 byte or a lone 0x1B byte are not -well-defined and decode() will return an empty string for them. -One possible workaround is - - $gsm =~ s/\x00\z/\x00\x00/; - $uni = decode("gsm0338", $gsm); - $uni .= "\xA0" if $gsm =~ /\x1B\z/; - -Note that the Encode implementation of GSM0338 does not implement the -reuse of Latin capital letters as Greek capital letters (for example, -the 0x5A is U+005A (LATIN CAPITAL LETTER Z), not U+0396 (GREEK CAPITAL -LETTER ZETA). - -The GSM0338 is also covered in Encode::Byte even though it is not -an "extended ASCII" encoding. - -=back - -=head2 CJK: Chinese, Japanese, Korean (Multibyte) - -Note that Vietnamese is listed above. Also read "Encoding vs Charset" -below. Also note that these are implemented in distinct modules by -countries, due to the size concerns (simplified Chinese is mapped -to 'CN', continental China, while traditional Chinese is mapped to -'TW', Taiwan). Please refer to their respective documentation pages. - -=over 2 - -=item Encode::CN -- Continental China - - Standard DOS/Win Macintosh Comment/Reference - ---------------------------------------------------------------- - euc-cn [1] MacChineseSimp - (gbk) cp936 [2] - gb12345-raw { GB12345 without CES } - gb2312-raw { GB2312 without CES } - hz - iso-ir-165 - ---------------------------------------------------------------- - - [1] GB2312 is aliased to this. See L - [2] gbk is aliased to this. See L - -=item Encode::JP -- Japan - - Standard DOS/Win Macintosh Comment/Reference - ---------------------------------------------------------------- - euc-jp - shiftjis cp932 macJapanese - 7bit-jis - iso-2022-jp [RFC1468] - iso-2022-jp-1 [RFC2237] - jis0201-raw { JIS X 0201 (roman + halfwidth kana) without CES } - jis0208-raw { JIS X 0208 (Kanji + fullwidth kana) without CES } - jis0212-raw { JIS X 0212 (Extended Kanji) without CES } - ---------------------------------------------------------------- - -=item Encode::KR -- Korea - - Standard DOS/Win Macintosh Comment/Reference - ---------------------------------------------------------------- - euc-kr MacKorean [RFC1557] - cp949 [1] - iso-2022-kr [RFC1557] - johab [KS X 1001:1998, Annex 3] - ksc5601-raw { KSC5601 without CES } - ---------------------------------------------------------------- - - [1] ks_c_5601-1987, (x-)?windows-949, and uhc are aliased to this. - See below. - -=item Encode::TW -- Taiwan - - Standard DOS/Win Macintosh Comment/Reference - ---------------------------------------------------------------- - big5-eten cp950 MacChineseTrad {big5 aliased to big5-eten} - big5-hkscs - ---------------------------------------------------------------- - -=item Encode::HanExtra -- More Chinese via CPAN - -Due to the size concerns, additional Chinese encodings below are -distributed separately on CPAN, under the name Encode::HanExtra. - - Standard DOS/Win Macintosh Comment/Reference - ---------------------------------------------------------------- - big5ext CMEX's Big5e Extension - big5plus CMEX's Big5+ Extension - cccii Chinese Character Code for Information Interchange - euc-tw EUC (Extended Unix Character) - gb18030 GBK with Traditional Characters - ---------------------------------------------------------------- - -=item Encode::JIS2K -- JIS X 0213 encodings via CPAN - -Due to size concerns, additional Japanese encodings below are -distributed separately on CPAN, under the name Encode::JIS2K. - - Standard DOS/Win Macintosh Comment/Reference - ---------------------------------------------------------------- - euc-jisx0213 - shiftjisx0123 - iso-2022-jp-3 - jis0213-1-raw - jis0213-2-raw - ---------------------------------------------------------------- - -=back - -=head2 Miscellaneous encodings - -=over 2 - -=item Encode::EBCDIC - -See L for details. - - ---------------------------------------------------------------- - cp37 - cp500 - cp875 - cp1026 - cp1047 - posix-bc - ---------------------------------------------------------------- - -=item Encode::Symbols - -For symbols and dingbats. - - ---------------------------------------------------------------- - symbol - dingbats - MacDingbats - AdobeZdingbat - AdobeSymbol - ---------------------------------------------------------------- - -=item Encode::MIME::Header - -Strictly speaking, MIME header encoding documented in RFC 2047 is more -of encapsulation than encoding. However, their support in modern -world is imperative so they are supported. - - ---------------------------------------------------------------- - MIME-Header [RFC2047] - MIME-B [RFC2047] - MIME-Q [RFC2047] - ---------------------------------------------------------------- - -=item Encode::Guess - -This one is not a name of encoding but a utility that lets you pick up -the most appropriate encoding for a data out of given I. See -L for details. - -=back - -=head1 Unsupported encodings - -The following encodings are not supported as yet; some because they -are rarely used, some because of technical difficulties. They may -be supported by external modules via CPAN in the future, however. - -=over 2 - -=item ISO-2022-JP-2 [RFC1554] - -Not very popular yet. Needs Unicode Database or equivalent to -implement encode() (because it includes JIS X 0208/0212, KSC5601, and -GB2312 simultaneously, whose code points in Unicode overlap. So you -need to lookup the database to determine to what character set a given -Unicode character should belong). - -=item ISO-2022-CN [RFC1922] - -Not very popular. Needs CNS 11643-1 and -2 which are not available in -this module. CNS 11643 is supported (via euc-tw) in Encode::HanExtra. -Audrey Tang may add support for this encoding in her module in future. - -=item Various HP-UX encodings - -The following are unsupported due to the lack of mapping data. - - '8' - arabic8, greek8, hebrew8, kana8, thai8, and turkish8 - '15' - japanese15, korean15, and roi15 - -=item Cyrillic encoding ISO-IR-111 - -Anton Tagunov doubts its usefulness. - -=item ISO-8859-8-1 [Hebrew] - -None of the Encode team knows Hebrew enough (ISO-8859-8, cp1255 and -MacHebrew are supported because and just because there were mappings -available at L). Contributions welcome. - -=item ISIRI 3342, Iran System, ISIRI 2900 [Farsi] - -Ditto. - -=item Thai encoding TCVN - -Ditto. - -=item Vietnamese encodings VPS - -Though Jungshik Shin has reported that Mozilla supports this encoding, -it was too late before 5.8.0 for us to add it. In the future, it -may be available via a separate module. See -L -and -L -if you are interested in helping us. - -=item Various Mac encodings - -The following are unsupported due to the lack of mapping data. - - MacArmenian, MacBengali, MacBurmese, MacEthiopic - MacExtArabic, MacGeorgian, MacKannada, MacKhmer - MacLaotian, MacMalayalam, MacMongolian, MacOriya - MacSinhalese, MacTamil, MacTelugu, MacTibetan - MacVietnamese - -The rest which are already available are based upon the vendor mappings -at L . - -=item (Mac) Indic encodings - -The maps for the following are available at L -but remain unsupported because those encodings need an algorithmical -approach, currently unsupported by F: - - MacDevanagari - MacGurmukhi - MacGujarati - -For details, please see C at -L . - -I believe this issue is prevalent not only for Mac Indics but also in -other Indic encodings, but the above were the only Indic encodings -maps that I could find at L . - -=back - -=head1 Encoding vs. Charset -- terminology - -We are used to using the term (character) I and I interchangeably. But just as confusing the terms byte and -character is dangerous and the terms should be differentiated when -needed, we need to differentiate I and I. - -To understand that, here is a description of how we make computers -grok our characters. - -=over 2 - -=item * - -First we start with which characters to include. We call this -collection of characters I. - -=item * - -Then we have to give each character a unique ID so your computer can -tell the difference between 'a' and 'A'. This itemized character -repertoire is now a I. - -=item * - -If your computer can grow the character set without further -processing, you can go ahead and use it. This is called a I (CCS) or I. ASCII is used this -way for most cases. - -=item * - -But in many cases, especially multi-byte CJK encodings, you have to -tweak a little more. Your network connection may not accept any data -with the Most Significant Bit set, and your computer may not be able to -tell if a given byte is a whole character or just half of it. So you -have to I the character set to use it. - -A I (CES) determines how to encode a given -character set, or a set of multiple character sets. 7bit ISO-2022 is -an example of a CES. You switch between character sets via I. - -=back - -Technically, or mathematically, speaking, a character set encoded in -such a CES that maps character by character may form a CCS. EUC is such -an example. The CES of EUC is as follows: - -=over 2 - -=item * - -Map ASCII unchanged. - -=item * - -Map such a character set that consists of 94 or 96 powered by N -members by adding 0x80 to each byte. - -=item * - -You can also use 0x8e and 0x8f to indicate that the following sequence of -characters belongs to yet another character set. To each following byte -is added the value 0x80. - -=back - -By carefully looking at the encoded byte sequence, you can find that the -byte sequence conforms a unique number. In that sense, EUC is a CCS -generated by a CES above from up to four CCS (complicated?). UTF-8 -falls into this category. See L to find out how -UTF-8 maps Unicode to a byte sequence. - -You may also have found out by now why 7bit ISO-2022 cannot comprise -a CCS. If you look at a byte sequence \x21\x21, you can't tell if -it is two !'s or IDEOGRAPHIC SPACE. EUC maps the latter to \xA1\xA1 -so you have no trouble differentiating between "!!". and S<" ">. - -=head1 Encoding Classification (by Anton Tagunov and Dan Kogai) - -This section tries to classify the supported encodings by their -applicability for information exchange over the Internet and to -choose the most suitable aliases to name them in the context of -such communication. - -=over 2 - -=item * - -To (en|de)code encodings marked by C<(**)>, you need -C, available from CPAN. - -=back - -Encoding names - - US-ASCII UTF-8 ISO-8859-* KOI8-R - Shift_JIS EUC-JP ISO-2022-JP ISO-2022-JP-1 - EUC-KR Big5 GB2312 - -are registered with IANA as preferred MIME names and may -be used over the Internet. - -C has been officialized by JIS X 0208:1997. -L gives details. - -C is the IANA name for C. -See L for details. - -C I encoding is available as C -with Encode. See L for details. - - EUC-CN - KOI8-U [RFC2319] - -have not been registered with IANA (as of March 2002) but -seem to be supported by major web browsers. -The IANA name for C is C. - - KS_C_5601-1987 - -is heavily misused. -See L for details. - -C I encoding is available as C -with Encode. See L for details. - - UTF-16 UTF-16BE UTF-16LE - -are IANA-registered Cs. See [RFC 2781] for details. -Jungshik Shin reports that UTF-16 with a BOM is well accepted -by MS IE 5/6 and NS 4/6. Beware however that - -=over 2 - -=item * - -C support in any software you're going to be -using/interoperating with has probably been less tested -then C support - -=item * - -C coded data seamlessly passes traditional -command piping (C, C, etc.) while C coded -data is likely to cause confusion (with its zero bytes, -for example) - -=item * - -it is beyond the power of words to describe the way HTML browsers -encode non-C form data. To get a general impression, visit -L. -While encoding of form data has stabilized for C encoded pages -(at least IE 5/6, NS 6, and Opera 6 behave consistently), be sure to -expect fun (and cross-browser discrepancies) with C encoded -pages! - -=back - -The rule of thumb is to use C unless you know what -you're doing and unless you really benefit from using C. - - ISO-IR-165 [RFC1345] - VISCII - GB 12345 - GB 18030 (**) (see links below) - EUC-TW (**) - -are totally valid encodings but not registered at IANA. -The names under which they are listed here are probably the -most widely-known names for these encodings and are recommended -names. - - BIG5PLUS (**) - -is a proprietary name. - -=head2 Microsoft-related naming mess - -Microsoft products misuse the following names: - -=over 2 - -=item KS_C_5601-1987 - -Microsoft extension to C. - -Proper names: C, C, C (as used by Mozilla). - -See L -for details. - -Encode aliases C to C to reflect this common -misusage. I C encoding is available as -C. - -See L for details. - -=item GB2312 - -Microsoft extension to C. - -Proper names: C, C. - -C has been registered in the C meaning at -IANA. This has partially repaired the situation: Microsoft's -C has become a superset of the official C. - -Encode aliases C to C in full agreement with -IANA registration. C is supported separately. -I C encoding is available as C. - -See L for details. - -=item Big5 - -Microsoft extension to C. - -Proper name: C. - -Encode separately supports C and C. - -=item Shift_JIS - -Microsoft's understanding of C. - -JIS has not endorsed the full Microsoft standard however. -The official C includes only JIS X 0201 and JIS X 0208 -character sets, while Microsoft has always used C -to encode a wider character repertoire. See C registration for -C. - -As a historical predecessor, Microsoft's variant -probably has more rights for the name, though it may be objected -that Microsoft shouldn't have used JIS as part of the name -in the first place. - -Unambiguous name: C. C name (also used by Mozilla, and -provided as an alias by Encode): C. - -Encode separately supports C and C. - -=back - -=head1 Glossary - -=over 2 - -=item character repertoire - -A collection of unique characters. A I set in the strictest -sense. At this stage, characters are not numbered. - -=item coded character set (CCS) - -A character set that is mapped in a way computers can use directly. -Many character encodings, including EUC, fall in this category. - -=item character encoding scheme (CES) - -An algorithm to map a character set to a byte sequence. You don't -have to be able to tell which character set a given byte sequence -belongs. 7-bit ISO-2022 is a CES but it cannot be a CCS. EUC is an -example of being both a CCS and CES. - -=item charset (in MIME context) - -has long been used in the meaning of C, CES. - -While the word combination C has lost this meaning -in MIME context since [RFC 2130], the C abbreviation has -retained it. This is how [RFC 2277] and [RFC 2278] bless C: - - This document uses the term "charset" to mean a set of rules for - mapping from a sequence of octets to a sequence of characters, such - as the combination of a coded character set and a character encoding - scheme; this is also what is used as an identifier in MIME "charset=" - parameters, and registered in the IANA charset registry ... (Note - that this is NOT a term used by other standards bodies, such as ISO). - [RFC 2277] - -=item EUC - -Extended Unix Character. See ISO-2022. - -=item ISO-2022 - -A CES that was carefully designed to coexist with ASCII. There are a 7 -bit version and an 8 bit version. - -The 7 bit version switches character set via escape sequence so it -cannot form a CCS. Since this is more difficult to handle in programs -than the 8 bit version, the 7 bit version is not very popular except for -iso-2022-jp, the I standard CES for e-mails. - -The 8 bit version can form a CCS. EUC and ISO-8859 are two examples -thereof. Pre-5.6 perl could use them as string literals. - -=item UCS - -Short for I. When you say just UCS, it means -I. - -=item UCS-2 - -ISO/IEC 10646 encoding form: Universal Character Set coded in two -octets. - -=item Unicode - -A character set that aims to include all character repertoires of the -world. Many character sets in various national as well as industrial -standards have become, in a way, just subsets of Unicode. - -=item UTF - -Short for I. Determines how to map a -Unicode character into a byte sequence. - -=item UTF-16 - -A UTF in 16-bit encoding. Can either be in big endian or little -endian. The big endian version is called UTF-16BE (equal to UCS-2 + -surrogate support) and the little endian version is called UTF-16LE. - -=back - -=head1 See Also - -L, -L, -L, L, L, L, -L, L -L, L - -=head1 References - -=over 2 - -=item ECMA - -European Computer Manufacturers Association -L - -=over 2 - -=item ECMA-035 (eq C) - -L - -The specification of ISO-2022 is available from the link above. - -=back - -=item IANA - -Internet Assigned Numbers Authority -L - -=over 2 - -=item Assigned Charset Names by IANA - -L - -Most of the C in Encode derive from this list -so you can directly apply the string you have extracted from MIME -header of mails and web pages. - -=back - -=item ISO - -International Organization for Standardization -L - -=item RFC - -Request For Comments -- need I say more? -L, L, -L - -=item UC - -Unicode Consortium -L - -=over 2 - -=item Unicode Glossary - -L - -The glossary of this document is based upon this site. - -=back - -=back - -=head2 Other Notable Sites - -=over 2 - -=item czyborra.com - -L - -Contains a lot of useful information, especially gory details of ISO -vs. vendor mappings. - -=item CJK.inf - -L - -Somewhat obsolete (last update in 1996), but still useful. Also try - -L - -You will find brief info on C, C and mostly on C. - -=item Jungshik Shin's Hangul FAQ - -L - -And especially its subject 8. - -L - -A comprehensive overview of the Korean (C) standards. - -=item debian.org: "Introduction to i18n" - -A brief description for most of the mentioned CJK encodings is -contained in -L - -=back - -=head2 Offline sources - -=over 2 - -=item C by Ken Lunde - -CJKV Information Processing -1999 O'Reilly & Associates, ISBN : 1-56592-224-7 - -The modern successor of C. - -Features a comprehensive coverage of CJKV character sets and -encodings along with many other issues faced by anyone trying -to better support CJKV languages/scripts in all the areas of -information processing. - -To purchase this book, visit -L -or your favourite bookstore. - -=back - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Symbol.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Symbol.pm deleted file mode 100644 index 77031aad..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Symbol.pm +++ /dev/null @@ -1,44 +0,0 @@ -package Encode::Symbol; -use strict; -use warnings; -use Encode; -our $VERSION = do { my @r = ( q$Revision: 2.2 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -use XSLoader; -XSLoader::load( __PACKAGE__, $VERSION ); - -1; -__END__ - -=head1 NAME - -Encode::Symbol - Symbol Encodings - -=head1 SYNOPSIS - - use Encode qw/encode decode/; - $symbol = encode("symbol", $utf8); # loads Encode::Symbol implicitly - $utf8 = decode("", $symbol); # ditto - -=head1 ABSTRACT - -This module implements symbol and dingbats encodings. Encodings -supported are as follows. - - Canonical Alias Description - -------------------------------------------------------------------- - symbol - dingbats - AdobeZDingbat - AdobeSymbol - MacDingbats - -=head1 DESCRIPTION - -To find out how to use this module in detail, see L. - -=head1 SEE ALSO - -L - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/TW.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/TW.pm deleted file mode 100644 index c30499be..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/TW.pm +++ /dev/null @@ -1,75 +0,0 @@ -package Encode::TW; -BEGIN { - if ( ord("A") == 193 ) { - die "Encode::TW not supported on EBCDIC\n"; - } -} -use strict; -use warnings; -use Encode; -our $VERSION = do { my @r = ( q$Revision: 2.3 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; -use XSLoader; -XSLoader::load( __PACKAGE__, $VERSION ); - -1; -__END__ - -=head1 NAME - -Encode::TW - Taiwan-based Chinese Encodings - -=head1 SYNOPSIS - - use Encode qw/encode decode/; - $big5 = encode("big5", $utf8); # loads Encode::TW implicitly - $utf8 = decode("big5", $big5); # ditto - -=head1 DESCRIPTION - -This module implements tradition Chinese charset encodings as used -in Taiwan and Hong Kong. -Encodings supported are as follows. - - Canonical Alias Description - -------------------------------------------------------------------- - big5-eten /\bbig-?5$/i Big5 encoding (with ETen extensions) - /\bbig5-?et(en)?$/i - /\btca-?big5$/i - big5-hkscs /\bbig5-?hk(scs)?$/i - /\bhk(scs)?-?big5$/i - Big5 + Cantonese characters in Hong Kong - MacChineseTrad Big5 + Apple Vendor Mappings - cp950 Code Page 950 - = Big5 + Microsoft vendor mappings - -------------------------------------------------------------------- - -To find out how to use this module in detail, see L. - -=head1 NOTES - -Due to size concerns, C (Extended Unix Character), C -(Chinese Character Code for Information Interchange), C -(CMEX's Big5+) and C (CMEX's Big5e) are distributed separately -on CPAN, under the name L. That module also contains -extra China-based encodings. - -=head1 BUGS - -Since the original C encoding (1984) is not supported anywhere -(glibc and DOS-based systems uses C to mean C; Microsoft -uses C to mean C), a conscious decision was made to alias -C to C, which is the de facto superset of the original -big5. - -The C encoding files are not complete. For common C -manipulation, please use C in L, which contains -planes 1-7. - -The ASCII region (0x00-0x7f) is preserved for all encodings, even -though this conflicts with mappings by the Unicode Consortium. - -=head1 SEE ALSO - -L - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Unicode.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Unicode.pm deleted file mode 100644 index 2a8b4777..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Unicode.pm +++ /dev/null @@ -1,272 +0,0 @@ -package Encode::Unicode; - -use strict; -use warnings; - -our $VERSION = do { my @r = ( q$Revision: 2.17 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; - -use XSLoader; -XSLoader::load( __PACKAGE__, $VERSION ); - -# -# Object Generator 8 transcoders all at once! -# - -use Encode (); - -our %BOM_Unknown = map { $_ => 1 } qw(UTF-16 UTF-32); - -for my $name ( - qw(UTF-16 UTF-16BE UTF-16LE - UTF-32 UTF-32BE UTF-32LE - UCS-2BE UCS-2LE) - ) -{ - my ( $size, $endian, $ucs2, $mask ); - $name =~ /^(\w+)-(\d+)(\w*)$/o; - if ( $ucs2 = ( $1 eq 'UCS' ) ) { - $size = 2; - } - else { - $size = $2 / 8; - } - $endian = ( $3 eq 'BE' ) ? 'n' : ( $3 eq 'LE' ) ? 'v' : ''; - $size == 4 and $endian = uc($endian); - - my $obj = bless { - Name => $name, - size => $size, - endian => $endian, - ucs2 => $ucs2, - } => __PACKAGE__; - Encode::define_encoding($obj, $name); -} - -use parent qw(Encode::Encoding); - -sub renew { - my $self = shift; - $BOM_Unknown{ $self->name } or return $self; - my $clone = bless {%$self} => ref($self); - $clone->{renewed}++; # so the caller knows it is renewed. - return $clone; -} - -1; -__END__ - -=head1 NAME - -Encode::Unicode -- Various Unicode Transformation Formats - -=cut - -=head1 SYNOPSIS - - use Encode qw/encode decode/; - $ucs2 = encode("UCS-2BE", $utf8); - $utf8 = decode("UCS-2BE", $ucs2); - -=head1 ABSTRACT - -This module implements all Character Encoding Schemes of Unicode that -are officially documented by Unicode Consortium (except, of course, -for UTF-8, which is a native format in perl). - -=over 4 - -=item L says: - -I A character encoding form plus byte -serialization. There are Seven character encoding schemes in Unicode: -UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32 (UCS-4), UTF-32BE (UCS-4BE) and -UTF-32LE (UCS-4LE), and UTF-7. - -Since UTF-7 is a 7-bit (re)encoded version of UTF-16BE, It is not part of -Unicode's Character Encoding Scheme. It is separately implemented in -Encode::Unicode::UTF7. For details see L. - -=item Quick Reference - - Decodes from ord(N) Encodes chr(N) to... - octet/char BOM S.P d800-dfff ord > 0xffff \x{1abcd} == - ---------------+-----------------+------------------------------ - UCS-2BE 2 N N is bogus Not Available - UCS-2LE 2 N N bogus Not Available - UTF-16 2/4 Y Y is S.P S.P BE/LE - UTF-16BE 2/4 N Y S.P S.P 0xd82a,0xdfcd - UTF-16LE 2/4 N Y S.P S.P 0x2ad8,0xcddf - UTF-32 4 Y - is bogus As is BE/LE - UTF-32BE 4 N - bogus As is 0x0001abcd - UTF-32LE 4 N - bogus As is 0xcdab0100 - UTF-8 1-4 - - bogus >= 4 octets \xf0\x9a\af\8d - ---------------+-----------------+------------------------------ - -=back - -=head1 Size, Endianness, and BOM - -You can categorize these CES by 3 criteria: size of each character, -endianness, and Byte Order Mark. - -=head2 by size - -UCS-2 is a fixed-length encoding with each character taking 16 bits. -It B support I. When a surrogate pair -is encountered during decode(), its place is filled with \x{FFFD} -if I is 0, or the routine croaks if I is 1. When a -character whose ord value is larger than 0xFFFF is encountered, -its place is filled with \x{FFFD} if I is 0, or the routine -croaks if I is 1. - -UTF-16 is almost the same as UCS-2 but it supports I. -When it encounters a high surrogate (0xD800-0xDBFF), it fetches the -following low surrogate (0xDC00-0xDFFF) and Cs them to -form a character. Bogus surrogates result in death. When \x{10000} -or above is encountered during encode(), it Cs them and -pushes the surrogate pair to the output stream. - -UTF-32 (UCS-4) is a fixed-length encoding with each character taking 32 bits. -Since it is 32-bit, there is no need for I. - -=head2 by endianness - -The first (and now failed) goal of Unicode was to map all character -repertoires into a fixed-length integer so that programmers are happy. -Since each character is either a I or I in C, you have to -pay attention to the endianness of each platform when you pass data -to one another. - -Anything marked as BE is Big Endian (or network byte order) and LE is -Little Endian (aka VAX byte order). For anything not marked either -BE or LE, a character called Byte Order Mark (BOM) indicating the -endianness is prepended to the string. - -CAVEAT: Though BOM in utf8 (\xEF\xBB\xBF) is valid, it is meaningless -and as of this writing Encode suite just leave it as is (\x{FeFF}). - -=over 4 - -=item BOM as integer when fetched in network byte order - - 16 32 bits/char - ------------------------- - BE 0xFeFF 0x0000FeFF - LE 0xFFFe 0xFFFe0000 - ------------------------- - -=back - -This modules handles the BOM as follows. - -=over 4 - -=item * - -When BE or LE is explicitly stated as the name of encoding, BOM is -simply treated as a normal character (ZERO WIDTH NO-BREAK SPACE). - -=item * - -When BE or LE is omitted during decode(), it checks if BOM is at the -beginning of the string; if one is found, the endianness is set to -what the BOM says. - -=item * - -Default Byte Order - -When no BOM is found, Encode 2.76 and blow croaked. Since Encode -2.77, it falls back to BE accordingly to RFC2781 and the Unicode -Standard version 8.0 - -=item * - -When BE or LE is omitted during encode(), it returns a BE-encoded -string with BOM prepended. So when you want to encode a whole text -file, make sure you encode() the whole text at once, not line by line -or each line, not file, will have a BOM prepended. - -=item * - -C is an exception. Unlike others, this is an alias of UCS-2BE. -UCS-2 is already registered by IANA and others that way. - -=back - -=head1 Surrogate Pairs - -To say the least, surrogate pairs were the biggest mistake of the -Unicode Consortium. But according to the late Douglas Adams in I Trilogy, C. Their mistake was not of this -magnitude so let's forgive them. - -(I don't dare make any comparison with Unicode Consortium and the -Vogons here ;) Or, comparing Encode to Babel Fish is completely -appropriate -- if you can only stick this into your ear :) - -Surrogate pairs were born when the Unicode Consortium finally -admitted that 16 bits were not big enough to hold all the world's -character repertoires. But they already made UCS-2 16-bit. What -do we do? - -Back then, the range 0xD800-0xDFFF was not allocated. Let's split -that range in half and use the first half to represent the C and the second half to represent the C. That way, you can represent 1024 * 1024 = -1048576 more characters. Now we can store character ranges up to -\x{10ffff} even with 16-bit encodings. This pair of half-character is -now called a I and UTF-16 is the name of the encoding -that embraces them. - -Here is a formula to ensurrogate a Unicode character \x{10000} and -above; - - $hi = ($uni - 0x10000) / 0x400 + 0xD800; - $lo = ($uni - 0x10000) % 0x400 + 0xDC00; - -And to desurrogate; - - $uni = 0x10000 + ($hi - 0xD800) * 0x400 + ($lo - 0xDC00); - -Note this move has made \x{D800}-\x{DFFF} into a forbidden zone but -perl does not prohibit the use of characters within this range. To perl, -every one of \x{0000_0000} up to \x{ffff_ffff} (*) is I. - - (*) or \x{ffff_ffff_ffff_ffff} if your perl is compiled with 64-bit - integer support! - -=head1 Error Checking - -Unlike most encodings which accept various ways to handle errors, -Unicode encodings simply croaks. - - % perl -MEncode -e'$_ = "\xfe\xff\xd8\xd9\xda\xdb\0\n"' \ - -e'Encode::from_to($_, "utf16","shift_jis", 0); print' - UTF-16:Malformed LO surrogate d8d9 at /path/to/Encode.pm line 184. - % perl -MEncode -e'$a = "BOM missing"' \ - -e' Encode::from_to($a, "utf16", "shift_jis", 0); print' - UTF-16:Unrecognised BOM 424f at /path/to/Encode.pm line 184. - -Unlike other encodings where mappings are not one-to-one against -Unicode, UTFs are supposed to map 100% against one another. So Encode -is more strict on UTFs. - -Consider that "division by zero" of Encode :) - -=head1 SEE ALSO - -L, L, L, -L, - -RFC 2781 L, - -The whole Unicode standard L - -Ch. 15, pp. 403 of C -by Larry Wall, Tom Christiansen, Jon Orwant; -O'Reilly & Associates; ISBN 0-596-00027-8 - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Unicode/UTF7.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Unicode/UTF7.pm deleted file mode 100644 index e6864775..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/Unicode/UTF7.pm +++ /dev/null @@ -1,133 +0,0 @@ -# -# $Id: UTF7.pm,v 2.10 2017/06/10 17:23:50 dankogai Exp $ -# -package Encode::Unicode::UTF7; -use strict; -use warnings; -use parent qw(Encode::Encoding); -__PACKAGE__->Define('UTF-7'); -our $VERSION = do { my @r = ( q$Revision: 2.10 $ =~ /\d+/g ); sprintf "%d." . "%02d" x $#r, @r }; -use MIME::Base64; -use Encode qw(find_encoding); - -# -# Algorithms taken from Unicode::String by Gisle Aas -# - -our $OPTIONAL_DIRECT_CHARS = 1; -my $specials = quotemeta "\'(),-./:?"; -$OPTIONAL_DIRECT_CHARS - and $specials .= quotemeta "!\"#$%&*;<=>@[]^_`{|}"; - -# \s will not work because it matches U+3000 DEOGRAPHIC SPACE -# We use qr/[\n\r\t\ ] instead -my $re_asis = qr/(?:[\n\r\t\ A-Za-z0-9$specials])/; -my $re_encoded = qr/(?:[^\n\r\t\ A-Za-z0-9$specials])/; -my $e_utf16 = find_encoding("UTF-16BE"); - -sub needs_lines { 1 } - -sub encode($$;$) { - my ( $obj, $str, $chk ) = @_; - return undef unless defined $str; - my $len = length($str); - pos($str) = 0; - my $bytes = substr($str, 0, 0); # to propagate taintedness - while ( pos($str) < $len ) { - if ( $str =~ /\G($re_asis+)/ogc ) { - my $octets = $1; - utf8::downgrade($octets); - $bytes .= $octets; - } - elsif ( $str =~ /\G($re_encoded+)/ogsc ) { - if ( $1 eq "+" ) { - $bytes .= "+-"; - } - else { - my $s = $1; - my $base64 = encode_base64( $e_utf16->encode($s), '' ); - $base64 =~ s/=+$//; - $bytes .= "+$base64-"; - } - } - else { - die "This should not happen! (pos=" . pos($str) . ")"; - } - } - $_[1] = '' if $chk; - return $bytes; -} - -sub decode($$;$) { - use re 'taint'; - my ( $obj, $bytes, $chk ) = @_; - return undef unless defined $bytes; - my $len = length($bytes); - my $str = substr($bytes, 0, 0); # to propagate taintedness; - pos($bytes) = 0; - no warnings 'uninitialized'; - while ( pos($bytes) < $len ) { - if ( $bytes =~ /\G([^+]+)/ogc ) { - $str .= $1; - } - elsif ( $bytes =~ /\G\+-/ogc ) { - $str .= "+"; - } - elsif ( $bytes =~ /\G\+([A-Za-z0-9+\/]+)-?/ogsc ) { - my $base64 = $1; - my $pad = length($base64) % 4; - $base64 .= "=" x ( 4 - $pad ) if $pad; - $str .= $e_utf16->decode( decode_base64($base64) ); - } - elsif ( $bytes =~ /\G\+/ogc ) { - $^W and warn "Bad UTF7 data escape"; - $str .= "+"; - } - else { - die "This should not happen " . pos($bytes); - } - } - $_[1] = '' if $chk; - return $str; -} -1; -__END__ - -=head1 NAME - -Encode::Unicode::UTF7 -- UTF-7 encoding - -=head1 SYNOPSIS - - use Encode qw/encode decode/; - $utf7 = encode("UTF-7", $utf8); - $utf8 = decode("UTF-7", $ucs2); - -=head1 ABSTRACT - -This module implements UTF-7 encoding documented in RFC 2152. UTF-7, -as its name suggests, is a 7-bit re-encoded version of UTF-16BE. It -is designed to be MTA-safe and expected to be a standard way to -exchange Unicoded mails via mails. But with the advent of UTF-8 and -8-bit compliant MTAs, UTF-7 is hardly ever used. - -UTF-7 was not supported by Encode until version 1.95 because of that. -But Unicode::String, a module by Gisle Aas which adds Unicode supports -to non-utf8-savvy perl did support UTF-7, the UTF-7 support was added -so Encode can supersede Unicode::String 100%. - -=head1 In Practice - -When you want to encode Unicode for mails and web pages, however, do -not use UTF-7 unless you are sure your recipients and readers can -handle it. Very few MUAs and WWW Browsers support these days (only -Mozilla seems to support one). For general cases, use UTF-8 for -message body and MIME-Header for header instead. - -=head1 SEE ALSO - -L, L, L - -RFC 2781 L - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/_PM.e2x b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/_PM.e2x deleted file mode 100644 index eb59cd1b..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/_PM.e2x +++ /dev/null @@ -1,23 +0,0 @@ -package Encode::$_Name_; -our $VERSION = "0.01"; - -use Encode; -use XSLoader; -XSLoader::load(__PACKAGE__,$VERSION); - -1; -__END__ - -=head1 NAME - -Encode::$_Name_ - New Encoding - -=head1 SYNOPSIS - -You got to fill this in! - -=head1 SEE ALSO - -L - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/_T.e2x b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/_T.e2x deleted file mode 100644 index 7b9a67e4..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/_T.e2x +++ /dev/null @@ -1,9 +0,0 @@ -use strict; -# Adjust the number here! -use Test::More tests => 2; - -BEGIN { - use_ok('Encode'); - use_ok('Encode::$_Name_'); -} -# Add more test here! diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/encode.h b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/encode.h deleted file mode 100644 index df5554f1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Encode/encode.h +++ /dev/null @@ -1,115 +0,0 @@ -#ifndef ENCODE_H -#define ENCODE_H - -#ifndef H_PERL -/* check whether we're "in perl" so that we can do data parts without - getting extern references to the code parts -*/ -typedef unsigned char U8; -#endif - -typedef struct encpage_s encpage_t; - -struct encpage_s -{ - /* fields ordered to pack nicely on 32-bit machines */ - const U8 *const seq; /* Packed output sequences we generate - if we match */ - const encpage_t *const next; /* Page to go to if we match */ - const U8 min; /* Min value of octet to match this entry */ - const U8 max; /* Max value of octet to match this entry */ - const U8 dlen; /* destination length - - size of entries in seq */ - const U8 slen; /* source length - - number of source octets needed */ -}; - -/* - At any point in a translation there is a page pointer which points - at an array of the above structures. - - Basic operation : - get octet from source stream. - if (octet >= min && octet < max) { - if slen is 0 then we cannot represent this character. - if we have less than slen octets (including this one) then - we have a partial character. - otherwise - copy dlen octets from seq + dlen*(octet-min) to output - (dlen may be zero if we don't know yet.) - load page pointer with next to continue. - (is slen is one this is end of a character) - get next octet. - } - else { - increment the page pointer to look at next slot in the array - } - - arrays SHALL be constructed so there is an entry which matches - ..0xFF at the end, and either maps it or indicates no - representation. - - if MSB of slen is set then mapping is an approximate "FALLBACK" entry. - -*/ - - -typedef struct encode_s encode_t; -struct encode_s -{ - const encpage_t *const t_utf8; /* Starting table for translation from - the encoding to UTF-8 form */ - const encpage_t *const f_utf8; /* Starting table for translation - from UTF-8 to the encoding */ - const U8 *const rep; /* Replacement character in this - encoding e.g. "?" */ - int replen; /* Number of octets in rep */ - U8 min_el; /* Minimum octets to represent a - character */ - U8 max_el; /* Maximum octets to represent a - character */ - const char *const name[2]; /* name(s) of this encoding */ -}; - -#ifdef H_PERL -/* See comment at top of file for deviousness */ - -extern int do_encode(const encpage_t *enc, const U8 *src, STRLEN *slen, - U8 *dst, STRLEN dlen, STRLEN *dout, int approx, - const U8 *term, STRLEN tlen); - -extern void Encode_DefineEncoding(encode_t *enc); - -#endif /* H_PERL */ - -#define ENCODE_NOSPACE 1 -#define ENCODE_PARTIAL 2 -#define ENCODE_NOREP 3 -#define ENCODE_FALLBACK 4 -#define ENCODE_FOUND_TERM 5 - -/* Use the perl core value if available; it is portable to EBCDIC */ -#ifdef REPLACEMENT_CHARACTER_UTF8 -# define FBCHAR_UTF8 REPLACEMENT_CHARACTER_UTF8 -#else -# define FBCHAR_UTF8 "\xEF\xBF\xBD" -#endif - -#define ENCODE_DIE_ON_ERR 0x0001 /* croaks immediately */ -#define ENCODE_WARN_ON_ERR 0x0002 /* warn on error; may proceed */ -#define ENCODE_RETURN_ON_ERR 0x0004 /* immediately returns on NOREP */ -#define ENCODE_LEAVE_SRC 0x0008 /* $src updated unless set */ -#define ENCODE_PERLQQ 0x0100 /* perlqq fallback string */ -#define ENCODE_HTMLCREF 0x0200 /* HTML character ref. fb mode */ -#define ENCODE_XMLCREF 0x0400 /* XML character ref. fb mode */ -#define ENCODE_STOP_AT_PARTIAL 0x0800 /* stop at partial explicitly */ - -#define ENCODE_FB_DEFAULT 0x0000 -#define ENCODE_FB_CROAK 0x0001 -#define ENCODE_FB_QUIET ENCODE_RETURN_ON_ERR -#define ENCODE_FB_WARN (ENCODE_RETURN_ON_ERR|ENCODE_WARN_ON_ERR) -#define ENCODE_FB_PERLQQ (ENCODE_PERLQQ|ENCODE_LEAVE_SRC) -#define ENCODE_FB_HTMLCREF (ENCODE_HTMLCREF|ENCODE_LEAVE_SRC) -#define ENCODE_FB_XMLCREF (ENCODE_XMLCREF|ENCODE_LEAVE_SRC) - -#endif /* ENCODE_H */ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec.pm deleted file mode 100644 index 85327ee0..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec.pm +++ /dev/null @@ -1,341 +0,0 @@ -package File::Spec; - -use strict; - -our $VERSION = '3.74'; -$VERSION =~ tr/_//d; - -my %module = ( - MSWin32 => 'Win32', - os2 => 'OS2', - VMS => 'VMS', - NetWare => 'Win32', # Yes, File::Spec::Win32 works on NetWare. - symbian => 'Win32', # Yes, File::Spec::Win32 works on symbian. - dos => 'OS2', # Yes, File::Spec::OS2 works on DJGPP. - cygwin => 'Cygwin', - amigaos => 'AmigaOS'); - - -my $module = $module{$^O} || 'Unix'; - -require "File/Spec/$module.pm"; -our @ISA = ("File::Spec::$module"); - -1; - -__END__ - -=head1 NAME - -File::Spec - portably perform operations on file names - -=head1 SYNOPSIS - - use File::Spec; - - $x=File::Spec->catfile('a', 'b', 'c'); - -which returns 'a/b/c' under Unix. Or: - - use File::Spec::Functions; - - $x = catfile('a', 'b', 'c'); - -=head1 DESCRIPTION - -This module is designed to support operations commonly performed on file -specifications (usually called "file names", but not to be confused with the -contents of a file, or Perl's file handles), such as concatenating several -directory and file names into a single path, or determining whether a path -is rooted. It is based on code directly taken from MakeMaker 5.17, code -written by Andreas KEnig, Andy Dougherty, Charles Bailey, Ilya -Zakharevich, Paul Schinder, and others. - -Since these functions are different for most operating systems, each set of -OS specific routines is available in a separate module, including: - - File::Spec::Unix - File::Spec::Mac - File::Spec::OS2 - File::Spec::Win32 - File::Spec::VMS - -The module appropriate for the current OS is automatically loaded by -File::Spec. Since some modules (like VMS) make use of facilities available -only under that OS, it may not be possible to load all modules under all -operating systems. - -Since File::Spec is object oriented, subroutines should not be called directly, -as in: - - File::Spec::catfile('a','b'); - -but rather as class methods: - - File::Spec->catfile('a','b'); - -For simple uses, L provides convenient functional -forms of these methods. - -=head1 METHODS - -=over 2 - -=item canonpath -X - -No physical check on the filesystem, but a logical cleanup of a -path. - - $cpath = File::Spec->canonpath( $path ) ; - -Note that this does *not* collapse F sections into F. This -is by design. If F on your system is a symlink to F, -then F is actually F, not F as a naive -F<../>-removal would give you. If you want to do this kind of -processing, you probably want C's C function to -actually traverse the filesystem cleaning up paths like this. - -=item catdir -X - -Concatenate two or more directory names to form a complete path ending -with a directory. But remove the trailing slash from the resulting -string, because it doesn't look good, isn't necessary and confuses -OS/2. Of course, if this is the root directory, don't cut off the -trailing slash :-) - - $path = File::Spec->catdir( @directories ); - -=item catfile -X - -Concatenate one or more directory names and a filename to form a -complete path ending with a filename - - $path = File::Spec->catfile( @directories, $filename ); - -=item curdir -X - -Returns a string representation of the current directory. - - $curdir = File::Spec->curdir(); - -=item devnull -X - -Returns a string representation of the null device. - - $devnull = File::Spec->devnull(); - -=item rootdir -X - -Returns a string representation of the root directory. - - $rootdir = File::Spec->rootdir(); - -=item tmpdir -X - -Returns a string representation of the first writable directory from a -list of possible temporary directories. Returns the current directory -if no writable temporary directories are found. The list of directories -checked depends on the platform; e.g. File::Spec::Unix checks C<$ENV{TMPDIR}> -(unless taint is on) and F. - - $tmpdir = File::Spec->tmpdir(); - -=item updir -X - -Returns a string representation of the parent directory. - - $updir = File::Spec->updir(); - -=item no_upwards - -Given a list of files in a directory (such as from C), -strip out C<'.'> and C<'..'>. - -B This does NOT filter paths containing C<'..'>, like -C<'../../../../etc/passwd'>, only literal matches to C<'.'> and C<'..'>. - - @paths = File::Spec->no_upwards( readdir $dirhandle ); - -=item case_tolerant - -Returns a true or false value indicating, respectively, that alphabetic -case is not or is significant when comparing file specifications. -Cygwin and Win32 accept an optional drive argument. - - $is_case_tolerant = File::Spec->case_tolerant(); - -=item file_name_is_absolute - -Takes as its argument a path, and returns true if it is an absolute path. - - $is_absolute = File::Spec->file_name_is_absolute( $path ); - -This does not consult the local filesystem on Unix, Win32, OS/2, or -Mac OS (Classic). It does consult the working environment for VMS -(see L). - -=item path -X - -Takes no argument. Returns the environment variable C (or the local -platform's equivalent) as a list. - - @PATH = File::Spec->path(); - -=item join -X - -join is the same as catfile. - -=item splitpath -X X - -Splits a path in to volume, directory, and filename portions. On systems -with no concept of volume, returns '' for volume. - - ($volume,$directories,$file) = - File::Spec->splitpath( $path ); - ($volume,$directories,$file) = - File::Spec->splitpath( $path, $no_file ); - -For systems with no syntax differentiating filenames from directories, -assumes that the last file is a path unless C<$no_file> is true or a -trailing separator or F or F is present. On Unix, this means that C<$no_file> -true makes this return ( '', $path, '' ). - -The directory portion may or may not be returned with a trailing '/'. - -The results can be passed to L to get back a path equivalent to -(usually identical to) the original path. - -=item splitdir -X X - -The opposite of L. - - @dirs = File::Spec->splitdir( $directories ); - -C<$directories> must be only the directory portion of the path on systems -that have the concept of a volume or that have path syntax that differentiates -files from directories. - -Unlike just splitting the directories on the separator, empty -directory names (C<''>) can be returned, because these are significant -on some OSes. - -=item catpath() - -Takes volume, directory and file portions and returns an entire path. Under -Unix, C<$volume> is ignored, and directory and file are concatenated. A '/' is -inserted if need be. On other OSes, C<$volume> is significant. - - $full_path = File::Spec->catpath( $volume, $directory, $file ); - -=item abs2rel -X X X - -Takes a destination path and an optional base path returns a relative path -from the base path to the destination path: - - $rel_path = File::Spec->abs2rel( $path ) ; - $rel_path = File::Spec->abs2rel( $path, $base ) ; - -If C<$base> is not present or '', then L is used. If C<$base> is -relative, then it is converted to absolute form using -L. This means that it is taken to be relative to -L. - -On systems with the concept of volume, if C<$path> and C<$base> appear to be -on two different volumes, we will not attempt to resolve the two -paths, and we will instead simply return C<$path>. Note that previous -versions of this module ignored the volume of C<$base>, which resulted in -garbage results part of the time. - -On systems that have a grammar that indicates filenames, this ignores the -C<$base> filename as well. Otherwise all path components are assumed to be -directories. - -If C<$path> is relative, it is converted to absolute form using L. -This means that it is taken to be relative to L. - -No checks against the filesystem are made. On VMS, there is -interaction with the working environment, as logicals and -macros are expanded. - -Based on code written by Shigio Yamaguchi. - -=item rel2abs() -X X X - -Converts a relative path to an absolute path. - - $abs_path = File::Spec->rel2abs( $path ) ; - $abs_path = File::Spec->rel2abs( $path, $base ) ; - -If C<$base> is not present or '', then L is used. If C<$base> is relative, -then it is converted to absolute form using L. This means that it -is taken to be relative to L. - -On systems with the concept of volume, if C<$path> and C<$base> appear to be -on two different volumes, we will not attempt to resolve the two -paths, and we will instead simply return C<$path>. Note that previous -versions of this module ignored the volume of C<$base>, which resulted in -garbage results part of the time. - -On systems that have a grammar that indicates filenames, this ignores the -C<$base> filename as well. Otherwise all path components are assumed to be -directories. - -If C<$path> is absolute, it is cleaned up and returned using L. - -No checks against the filesystem are made. On VMS, there is -interaction with the working environment, as logicals and -macros are expanded. - -Based on code written by Shigio Yamaguchi. - -=back - -For further information, please see L, -L, L, L, or -L. - -=head1 SEE ALSO - -L, L, L, -L, L, L, -L - -=head1 AUTHOR - -Currently maintained by Ken Williams C<< >>. - -The vast majority of the code was written by -Kenneth Albanowski C<< >>, -Andy Dougherty C<< >>, -Andreas KEnig C<< >>, -Tim Bunce C<< >>. -VMS support by Charles Bailey C<< >>. -OS/2 support by Ilya Zakharevich C<< >>. -Mac support by Paul Schinder C<< >>, and -Thomas Wegner C<< >>. -abs2rel() and rel2abs() written by Shigio Yamaguchi C<< >>, -modified by Barrie Slaymaker C<< >>. -splitpath(), splitdir(), catpath() and catdir() by Barrie Slaymaker. - -=head1 COPYRIGHT - -Copyright (c) 2004-2013 by the Perl 5 Porters. All rights reserved. - -This program is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/AmigaOS.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/AmigaOS.pm deleted file mode 100644 index 3c840726..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/AmigaOS.pm +++ /dev/null @@ -1,61 +0,0 @@ -package File::Spec::AmigaOS; - -use strict; -require File::Spec::Unix; - -our $VERSION = '3.74'; -$VERSION =~ tr/_//d; - -our @ISA = qw(File::Spec::Unix); - -=head1 NAME - -File::Spec::AmigaOS - File::Spec for AmigaOS - -=head1 SYNOPSIS - - require File::Spec::AmigaOS; # Done automatically by File::Spec - # if needed - -=head1 DESCRIPTION - -Methods for manipulating file specifications. - -=head1 METHODS - -=over 2 - -=item tmpdir - -Returns $ENV{TMPDIR} or if that is unset, "/t". - -=cut - -my $tmpdir; -sub tmpdir { - return $tmpdir if defined $tmpdir; - $tmpdir = $_[0]->_tmpdir( $ENV{TMPDIR}, "/t" ); -} - -=item file_name_is_absolute - -Returns true if there's a colon in the file name, -or if it begins with a slash. - -=cut - -sub file_name_is_absolute { - my ($self, $file) = @_; - - # Not 100% robust as a "/" must not preceded a ":" - # but this cannot happen in a well formed path. - return $file =~ m{^/|:}s; -} - -=back - -All the other methods are from L. - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Cygwin.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Cygwin.pm deleted file mode 100644 index ed646a16..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Cygwin.pm +++ /dev/null @@ -1,163 +0,0 @@ -package File::Spec::Cygwin; - -use strict; -require File::Spec::Unix; - -our $VERSION = '3.74'; -$VERSION =~ tr/_//d; - -our @ISA = qw(File::Spec::Unix); - -=head1 NAME - -File::Spec::Cygwin - methods for Cygwin file specs - -=head1 SYNOPSIS - - require File::Spec::Cygwin; # Done internally by File::Spec if needed - -=head1 DESCRIPTION - -See L and L. This package overrides the -implementation of these methods, not the semantics. - -This module is still in beta. Cygwin-knowledgeable folks are invited -to offer patches and suggestions. - -=cut - -=pod - -=over 4 - -=item canonpath - -Any C<\> (backslashes) are converted to C (forward slashes), -and then File::Spec::Unix canonpath() is called on the result. - -=cut - -sub canonpath { - my($self,$path) = @_; - return unless defined $path; - - $path =~ s|\\|/|g; - - # Handle network path names beginning with double slash - my $node = ''; - if ( $path =~ s@^(//[^/]+)(?:/|\z)@/@s ) { - $node = $1; - } - return $node . $self->SUPER::canonpath($path); -} - -sub catdir { - my $self = shift; - return unless @_; - - # Don't create something that looks like a //network/path - if ($_[0] and ($_[0] eq '/' or $_[0] eq '\\')) { - shift; - return $self->SUPER::catdir('', @_); - } - - $self->SUPER::catdir(@_); -} - -=pod - -=item file_name_is_absolute - -True is returned if the file name begins with C, -and if not, File::Spec::Unix file_name_is_absolute() is called. - -=cut - - -sub file_name_is_absolute { - my ($self,$file) = @_; - return 1 if $file =~ m{^([a-z]:)?[\\/]}is; # C:/test - return $self->SUPER::file_name_is_absolute($file); -} - -=item tmpdir (override) - -Returns a string representation of the first existing directory -from the following list: - - $ENV{TMPDIR} - /tmp - $ENV{'TMP'} - $ENV{'TEMP'} - C:/temp - -If running under taint mode, and if the environment -variables are tainted, they are not used. - -=cut - -sub tmpdir { - my $cached = $_[0]->_cached_tmpdir(qw 'TMPDIR TMP TEMP'); - return $cached if defined $cached; - $_[0]->_cache_tmpdir( - $_[0]->_tmpdir( - $ENV{TMPDIR}, "/tmp", $ENV{'TMP'}, $ENV{'TEMP'}, 'C:/temp' - ), - qw 'TMPDIR TMP TEMP' - ); -} - -=item case_tolerant - -Override Unix. Cygwin case-tolerance depends on managed mount settings and -as with MsWin32 on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE, -indicating the case significance when comparing file specifications. -Default: 1 - -=cut - -sub case_tolerant { - return 1 unless $^O eq 'cygwin' - and defined &Cygwin::mount_flags; - - my $drive = shift; - if (! $drive) { - my @flags = split(/,/, Cygwin::mount_flags('/cygwin')); - my $prefix = pop(@flags); - if (! $prefix || $prefix eq 'cygdrive') { - $drive = '/cygdrive/c'; - } elsif ($prefix eq '/') { - $drive = '/c'; - } else { - $drive = "$prefix/c"; - } - } - my $mntopts = Cygwin::mount_flags($drive); - if ($mntopts and ($mntopts =~ /,managed/)) { - return 0; - } - eval { - local @INC = @INC; - pop @INC if $INC[-1] eq '.'; - require Win32API::File; - } or return 1; - my $osFsType = "\0"x256; - my $osVolName = "\0"x256; - my $ouFsFlags = 0; - Win32API::File::GetVolumeInformation($drive, $osVolName, 256, [], [], $ouFsFlags, $osFsType, 256 ); - if ($ouFsFlags & Win32API::File::FS_CASE_SENSITIVE()) { return 0; } - else { return 1; } -} - -=back - -=head1 COPYRIGHT - -Copyright (c) 2004,2007 by the Perl 5 Porters. All rights reserved. - -This program is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Epoc.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Epoc.pm deleted file mode 100644 index 58f74a33..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Epoc.pm +++ /dev/null @@ -1,78 +0,0 @@ -package File::Spec::Epoc; - -use strict; - -our $VERSION = '3.74'; -$VERSION =~ tr/_//d; - -require File::Spec::Unix; -our @ISA = qw(File::Spec::Unix); - -=head1 NAME - -File::Spec::Epoc - methods for Epoc file specs - -=head1 SYNOPSIS - - require File::Spec::Epoc; # Done internally by File::Spec if needed - -=head1 DESCRIPTION - -See File::Spec::Unix for a documentation of the methods provided -there. This package overrides the implementation of these methods, not -the semantics. - -This package is still a work in progress. ;-) - -=cut - -sub case_tolerant { - return 1; -} - -=pod - -=over 4 - -=item canonpath() - -No physical check on the filesystem, but a logical cleanup of a -path. On UNIX eliminated successive slashes and successive "/.". - -=back - -=cut - -sub canonpath { - my ($self,$path) = @_; - return unless defined $path; - - $path =~ s|/+|/|g; # xx////xx -> xx/xx - $path =~ s|(/\.)+/|/|g; # xx/././xx -> xx/xx - $path =~ s|^(\./)+||s unless $path eq "./"; # ./xx -> xx - $path =~ s|^/(\.\./)+|/|s; # /../../xx -> xx - $path =~ s|/\Z(?!\n)|| unless $path eq "/"; # xx/ -> xx - return $path; -} - -=pod - -=head1 AUTHOR - -o.flebbe@gmx.de - -=head1 COPYRIGHT - -Copyright (c) 2004 by the Perl 5 Porters. All rights reserved. - -This program is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -=head1 SEE ALSO - -See L and L. This package overrides the -implementation of these methods, not the semantics. - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Functions.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Functions.pm deleted file mode 100644 index 9af6352d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Functions.pm +++ /dev/null @@ -1,128 +0,0 @@ -package File::Spec::Functions; - -use File::Spec; -use strict; - -our $VERSION = '3.74'; -$VERSION =~ tr/_//d; - -require Exporter; - -our @ISA = qw(Exporter); - -our @EXPORT = qw( - canonpath - catdir - catfile - curdir - rootdir - updir - no_upwards - file_name_is_absolute - path -); - -our @EXPORT_OK = qw( - devnull - tmpdir - splitpath - splitdir - catpath - abs2rel - rel2abs - case_tolerant -); - -our %EXPORT_TAGS = ( ALL => [ @EXPORT_OK, @EXPORT ] ); - -require File::Spec::Unix; -my %udeps = ( - canonpath => [], - catdir => [qw(canonpath)], - catfile => [qw(canonpath catdir)], - case_tolerant => [], - curdir => [], - devnull => [], - rootdir => [], - updir => [], -); - -foreach my $meth (@EXPORT, @EXPORT_OK) { - my $sub = File::Spec->can($meth); - no strict 'refs'; - if (exists($udeps{$meth}) && $sub == File::Spec::Unix->can($meth) && - !(grep { - File::Spec->can($_) != File::Spec::Unix->can($_) - } @{$udeps{$meth}}) && - defined(&{"File::Spec::Unix::_fn_$meth"})) { - *{$meth} = \&{"File::Spec::Unix::_fn_$meth"}; - } else { - *{$meth} = sub {&$sub('File::Spec', @_)}; - } -} - - -1; -__END__ - -=head1 NAME - -File::Spec::Functions - portably perform operations on file names - -=head1 SYNOPSIS - - use File::Spec::Functions; - $x = catfile('a','b'); - -=head1 DESCRIPTION - -This module exports convenience functions for all of the class methods -provided by File::Spec. - -For a reference of available functions, please consult L, -which contains the entire set, and which is inherited by the modules for -other platforms. For further information, please see L, -L, L, or L. - -=head2 Exports - -The following functions are exported by default. - - canonpath - catdir - catfile - curdir - rootdir - updir - no_upwards - file_name_is_absolute - path - - -The following functions are exported only by request. - - devnull - tmpdir - splitpath - splitdir - catpath - abs2rel - rel2abs - case_tolerant - -All the functions may be imported using the C<:ALL> tag. - -=head1 COPYRIGHT - -Copyright (c) 2004 by the Perl 5 Porters. All rights reserved. - -This program is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -=head1 SEE ALSO - -File::Spec, File::Spec::Unix, File::Spec::Mac, File::Spec::OS2, -File::Spec::Win32, File::Spec::VMS, ExtUtils::MakeMaker - -=cut - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Mac.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Mac.pm deleted file mode 100644 index a1b044d1..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Mac.pm +++ /dev/null @@ -1,765 +0,0 @@ -package File::Spec::Mac; - -use strict; -use Cwd (); -require File::Spec::Unix; - -our $VERSION = '3.74'; -$VERSION =~ tr/_//d; - -our @ISA = qw(File::Spec::Unix); - -sub case_tolerant { 1 } - - -=head1 NAME - -File::Spec::Mac - File::Spec for Mac OS (Classic) - -=head1 SYNOPSIS - - require File::Spec::Mac; # Done internally by File::Spec if needed - -=head1 DESCRIPTION - -Methods for manipulating file specifications. - -=head1 METHODS - -=over 2 - -=item canonpath - -On Mac OS, there's nothing to be done. Returns what it's given. - -=cut - -sub canonpath { - my ($self,$path) = @_; - return $path; -} - -=item catdir() - -Concatenate two or more directory names to form a path separated by colons -(":") ending with a directory. Resulting paths are B by default, -but can be forced to be absolute (but avoid this, see below). Automatically -puts a trailing ":" on the end of the complete path, because that's what's -done in MacPerl's environment and helps to distinguish a file path from a -directory path. - -B Beginning with version 1.3 of this module, the resulting -path is relative by default and I absolute. This decision was made due -to portability reasons. Since Ccatdir()> returns relative paths -on all other operating systems, it will now also follow this convention on Mac -OS. Note that this may break some existing scripts. - -The intended purpose of this routine is to concatenate I. -But because of the nature of Macintosh paths, some additional possibilities -are allowed to make using this routine give reasonable results for some -common situations. In other words, you are also allowed to concatenate -I instead of directory names (strictly speaking, a string like ":a" -is a path, but not a name, since it contains a punctuation character ":"). - -So, beside calls like - - catdir("a") = ":a:" - catdir("a","b") = ":a:b:" - catdir() = "" (special case) - -calls like the following - - catdir(":a:") = ":a:" - catdir(":a","b") = ":a:b:" - catdir(":a:","b") = ":a:b:" - catdir(":a:",":b:") = ":a:b:" - catdir(":") = ":" - -are allowed. - -Here are the rules that are used in C; note that we try to be as -compatible as possible to Unix: - -=over 2 - -=item 1. - -The resulting path is relative by default, i.e. the resulting path will have a -leading colon. - -=item 2. - -A trailing colon is added automatically to the resulting path, to denote a -directory. - -=item 3. - -Generally, each argument has one leading ":" and one trailing ":" -removed (if any). They are then joined together by a ":". Special -treatment applies for arguments denoting updir paths like "::lib:", -see (4), or arguments consisting solely of colons ("colon paths"), -see (5). - -=item 4. - -When an updir path like ":::lib::" is passed as argument, the number -of directories to climb up is handled correctly, not removing leading -or trailing colons when necessary. E.g. - - catdir(":::a","::b","c") = ":::a::b:c:" - catdir(":::a::","::b","c") = ":::a:::b:c:" - -=item 5. - -Adding a colon ":" or empty string "" to a path at I position -doesn't alter the path, i.e. these arguments are ignored. (When a "" -is passed as the first argument, it has a special meaning, see -(6)). This way, a colon ":" is handled like a "." (curdir) on Unix, -while an empty string "" is generally ignored (see -L ). Likewise, a "::" is handled like a ".." -(updir), and a ":::" is handled like a "../.." etc. E.g. - - catdir("a",":",":","b") = ":a:b:" - catdir("a",":","::",":b") = ":a::b:" - -=item 6. - -If the first argument is an empty string "" or is a volume name, i.e. matches -the pattern /^[^:]+:/, the resulting path is B. - -=item 7. - -Passing an empty string "" as the first argument to C is -like passingCrootdir()> as the first argument, i.e. - - catdir("","a","b") is the same as - - catdir(rootdir(),"a","b"). - -This is true on Unix, where C yields "/a/b" and -C is "/". Note that C on Mac OS is the startup -volume, which is the closest in concept to Unix' "/". This should help -to run existing scripts originally written for Unix. - -=item 8. - -For absolute paths, some cleanup is done, to ensure that the volume -name isn't immediately followed by updirs. This is invalid, because -this would go beyond "root". Generally, these cases are handled like -their Unix counterparts: - - Unix: - Unix->catdir("","") = "/" - Unix->catdir("",".") = "/" - Unix->catdir("","..") = "/" # can't go - # beyond root - Unix->catdir("",".","..","..","a") = "/a" - Mac: - Mac->catdir("","") = rootdir() # (e.g. "HD:") - Mac->catdir("",":") = rootdir() - Mac->catdir("","::") = rootdir() # can't go - # beyond root - Mac->catdir("",":","::","::","a") = rootdir() . "a:" - # (e.g. "HD:a:") - -However, this approach is limited to the first arguments following -"root" (again, see L. If there are more -arguments that move up the directory tree, an invalid path going -beyond root can be created. - -=back - -As you've seen, you can force C to create an absolute path -by passing either an empty string or a path that begins with a volume -name as the first argument. However, you are strongly encouraged not -to do so, since this is done only for backward compatibility. Newer -versions of File::Spec come with a method called C (see -below), that is designed to offer a portable solution for the creation -of absolute paths. It takes volume, directory and file portions and -returns an entire path. While C is still suitable for the -concatenation of I, you are encouraged to use -C to concatenate I and I. E.g. - - $dir = File::Spec->catdir("tmp","sources"); - $abs_path = File::Spec->catpath("MacintoshHD:", $dir,""); - -yields - - "MacintoshHD:tmp:sources:" . - -=cut - -sub catdir { - my $self = shift; - return '' unless @_; - my @args = @_; - my $first_arg; - my $relative; - - # take care of the first argument - - if ($args[0] eq '') { # absolute path, rootdir - shift @args; - $relative = 0; - $first_arg = $self->rootdir; - - } elsif ($args[0] =~ /^[^:]+:/) { # absolute path, volume name - $relative = 0; - $first_arg = shift @args; - # add a trailing ':' if need be (may be it's a path like HD:dir) - $first_arg = "$first_arg:" unless ($first_arg =~ /:\Z(?!\n)/); - - } else { # relative path - $relative = 1; - if ( $args[0] =~ /^::+\Z(?!\n)/ ) { - # updir colon path ('::', ':::' etc.), don't shift - $first_arg = ':'; - } elsif ($args[0] eq ':') { - $first_arg = shift @args; - } else { - # add a trailing ':' if need be - $first_arg = shift @args; - $first_arg = "$first_arg:" unless ($first_arg =~ /:\Z(?!\n)/); - } - } - - # For all other arguments, - # (a) ignore arguments that equal ':' or '', - # (b) handle updir paths specially: - # '::' -> concatenate '::' - # '::' . '::' -> concatenate ':::' etc. - # (c) add a trailing ':' if need be - - my $result = $first_arg; - while (@args) { - my $arg = shift @args; - unless (($arg eq '') || ($arg eq ':')) { - if ($arg =~ /^::+\Z(?!\n)/ ) { # updir colon path like ':::' - my $updir_count = length($arg) - 1; - while ((@args) && ($args[0] =~ /^::+\Z(?!\n)/) ) { # while updir colon path - $arg = shift @args; - $updir_count += (length($arg) - 1); - } - $arg = (':' x $updir_count); - } else { - $arg =~ s/^://s; # remove a leading ':' if any - $arg = "$arg:" unless ($arg =~ /:\Z(?!\n)/); # ensure trailing ':' - } - $result .= $arg; - }#unless - } - - if ( ($relative) && ($result !~ /^:/) ) { - # add a leading colon if need be - $result = ":$result"; - } - - unless ($relative) { - # remove updirs immediately following the volume name - $result =~ s/([^:]+:)(:*)(.*)\Z(?!\n)/$1$3/; - } - - return $result; -} - -=item catfile - -Concatenate one or more directory names and a filename to form a -complete path ending with a filename. Resulting paths are B -by default, but can be forced to be absolute (but avoid this). - -B Beginning with version 1.3 of this module, the -resulting path is relative by default and I absolute. This -decision was made due to portability reasons. Since -Ccatfile()> returns relative paths on all other -operating systems, it will now also follow this convention on Mac OS. -Note that this may break some existing scripts. - -The last argument is always considered to be the file portion. Since -C uses C (see above) for the concatenation of the -directory portions (if any), the following with regard to relative and -absolute paths is true: - - catfile("") = "" - catfile("file") = "file" - -but - - catfile("","") = rootdir() # (e.g. "HD:") - catfile("","file") = rootdir() . file # (e.g. "HD:file") - catfile("HD:","file") = "HD:file" - -This means that C is called only when there are two or more -arguments, as one might expect. - -Note that the leading ":" is removed from the filename, so that - - catfile("a","b","file") = ":a:b:file" and - - catfile("a","b",":file") = ":a:b:file" - -give the same answer. - -To concatenate I, I and I, -you are encouraged to use C (see below). - -=cut - -sub catfile { - my $self = shift; - return '' unless @_; - my $file = pop @_; - return $file unless @_; - my $dir = $self->catdir(@_); - $file =~ s/^://s; - return $dir.$file; -} - -=item curdir - -Returns a string representing the current directory. On Mac OS, this is ":". - -=cut - -sub curdir { - return ":"; -} - -=item devnull - -Returns a string representing the null device. On Mac OS, this is "Dev:Null". - -=cut - -sub devnull { - return "Dev:Null"; -} - -=item rootdir - -Returns the empty string. Mac OS has no real root directory. - -=cut - -sub rootdir { '' } - -=item tmpdir - -Returns the contents of $ENV{TMPDIR}, if that directory exits or the -current working directory otherwise. Under MacPerl, $ENV{TMPDIR} will -contain a path like "MacintoshHD:Temporary Items:", which is a hidden -directory on your startup volume. - -=cut - -sub tmpdir { - my $cached = $_[0]->_cached_tmpdir('TMPDIR'); - return $cached if defined $cached; - $_[0]->_cache_tmpdir($_[0]->_tmpdir( $ENV{TMPDIR} ), 'TMPDIR'); -} - -=item updir - -Returns a string representing the parent directory. On Mac OS, this is "::". - -=cut - -sub updir { - return "::"; -} - -=item file_name_is_absolute - -Takes as argument a path and returns true, if it is an absolute path. -If the path has a leading ":", it's a relative path. Otherwise, it's an -absolute path, unless the path doesn't contain any colons, i.e. it's a name -like "a". In this particular case, the path is considered to be relative -(i.e. it is considered to be a filename). Use ":" in the appropriate place -in the path if you want to distinguish unambiguously. As a special case, -the filename '' is always considered to be absolute. Note that with version -1.2 of File::Spec::Mac, this does no longer consult the local filesystem. - -E.g. - - File::Spec->file_name_is_absolute("a"); # false (relative) - File::Spec->file_name_is_absolute(":a:b:"); # false (relative) - File::Spec->file_name_is_absolute("MacintoshHD:"); - # true (absolute) - File::Spec->file_name_is_absolute(""); # true (absolute) - - -=cut - -sub file_name_is_absolute { - my ($self,$file) = @_; - if ($file =~ /:/) { - return (! ($file =~ m/^:/s) ); - } elsif ( $file eq '' ) { - return 1 ; - } else { - return 0; # i.e. a file like "a" - } -} - -=item path - -Returns the null list for the MacPerl application, since the concept is -usually meaningless under Mac OS. But if you're using the MacPerl tool under -MPW, it gives back $ENV{Commands} suitably split, as is done in -:lib:ExtUtils:MM_Mac.pm. - -=cut - -sub path { -# -# The concept is meaningless under the MacPerl application. -# Under MPW, it has a meaning. -# - return unless exists $ENV{Commands}; - return split(/,/, $ENV{Commands}); -} - -=item splitpath - - ($volume,$directories,$file) = File::Spec->splitpath( $path ); - ($volume,$directories,$file) = File::Spec->splitpath( $path, - $no_file ); - -Splits a path into volume, directory, and filename portions. - -On Mac OS, assumes that the last part of the path is a filename unless -$no_file is true or a trailing separator ":" is present. - -The volume portion is always returned with a trailing ":". The directory portion -is always returned with a leading (to denote a relative path) and a trailing ":" -(to denote a directory). The file portion is always returned I a leading ":". -Empty portions are returned as empty string ''. - -The results can be passed to C to get back a path equivalent to -(usually identical to) the original path. - - -=cut - -sub splitpath { - my ($self,$path, $nofile) = @_; - my ($volume,$directory,$file); - - if ( $nofile ) { - ( $volume, $directory ) = $path =~ m|^((?:[^:]+:)?)(.*)|s; - } - else { - $path =~ - m|^( (?: [^:]+: )? ) - ( (?: .*: )? ) - ( .* ) - |xs; - $volume = $1; - $directory = $2; - $file = $3; - } - - $volume = '' unless defined($volume); - $directory = ":$directory" if ( $volume && $directory ); # take care of "HD::dir" - if ($directory) { - # Make sure non-empty directories begin and end in ':' - $directory .= ':' unless (substr($directory,-1) eq ':'); - $directory = ":$directory" unless (substr($directory,0,1) eq ':'); - } else { - $directory = ''; - } - $file = '' unless defined($file); - - return ($volume,$directory,$file); -} - - -=item splitdir - -The opposite of C. - - @dirs = File::Spec->splitdir( $directories ); - -$directories should be only the directory portion of the path on systems -that have the concept of a volume or that have path syntax that differentiates -files from directories. Consider using C otherwise. - -Unlike just splitting the directories on the separator, empty directory names -(C<"">) can be returned. Since C on Mac OS always appends a trailing -colon to distinguish a directory path from a file path, a single trailing colon -will be ignored, i.e. there's no empty directory name after it. - -Hence, on Mac OS, both - - File::Spec->splitdir( ":a:b::c:" ); and - File::Spec->splitdir( ":a:b::c" ); - -yield: - - ( "a", "b", "::", "c") - -while - - File::Spec->splitdir( ":a:b::c::" ); - -yields: - - ( "a", "b", "::", "c", "::") - - -=cut - -sub splitdir { - my ($self, $path) = @_; - my @result = (); - my ($head, $sep, $tail, $volume, $directories); - - return @result if ( (!defined($path)) || ($path eq '') ); - return (':') if ($path eq ':'); - - ( $volume, $sep, $directories ) = $path =~ m|^((?:[^:]+:)?)(:*)(.*)|s; - - # deprecated, but handle it correctly - if ($volume) { - push (@result, $volume); - $sep .= ':'; - } - - while ($sep || $directories) { - if (length($sep) > 1) { - my $updir_count = length($sep) - 1; - for (my $i=0; $i<$updir_count; $i++) { - # push '::' updir_count times; - # simulate Unix '..' updirs - push (@result, '::'); - } - } - $sep = ''; - if ($directories) { - ( $head, $sep, $tail ) = $directories =~ m|^((?:[^:]+)?)(:*)(.*)|s; - push (@result, $head); - $directories = $tail; - } - } - return @result; -} - - -=item catpath - - $path = File::Spec->catpath($volume,$directory,$file); - -Takes volume, directory and file portions and returns an entire path. On Mac OS, -$volume, $directory and $file are concatenated. A ':' is inserted if need be. You -may pass an empty string for each portion. If all portions are empty, the empty -string is returned. If $volume is empty, the result will be a relative path, -beginning with a ':'. If $volume and $directory are empty, a leading ":" (if any) -is removed form $file and the remainder is returned. If $file is empty, the -resulting path will have a trailing ':'. - - -=cut - -sub catpath { - my ($self,$volume,$directory,$file) = @_; - - if ( (! $volume) && (! $directory) ) { - $file =~ s/^:// if $file; - return $file ; - } - - # We look for a volume in $volume, then in $directory, but not both - - my ($dir_volume, $dir_dirs) = $self->splitpath($directory, 1); - - $volume = $dir_volume unless length $volume; - my $path = $volume; # may be '' - $path .= ':' unless (substr($path, -1) eq ':'); # ensure trailing ':' - - if ($directory) { - $directory = $dir_dirs if $volume; - $directory =~ s/^://; # remove leading ':' if any - $path .= $directory; - $path .= ':' unless (substr($path, -1) eq ':'); # ensure trailing ':' - } - - if ($file) { - $file =~ s/^://; # remove leading ':' if any - $path .= $file; - } - - return $path; -} - -=item abs2rel - -Takes a destination path and an optional base path and returns a relative path -from the base path to the destination path: - - $rel_path = File::Spec->abs2rel( $path ) ; - $rel_path = File::Spec->abs2rel( $path, $base ) ; - -Note that both paths are assumed to have a notation that distinguishes a -directory path (with trailing ':') from a file path (without trailing ':'). - -If $base is not present or '', then the current working directory is used. -If $base is relative, then it is converted to absolute form using C. -This means that it is taken to be relative to the current working directory. - -If $path and $base appear to be on two different volumes, we will not -attempt to resolve the two paths, and we will instead simply return -$path. Note that previous versions of this module ignored the volume -of $base, which resulted in garbage results part of the time. - -If $base doesn't have a trailing colon, the last element of $base is -assumed to be a filename. This filename is ignored. Otherwise all path -components are assumed to be directories. - -If $path is relative, it is converted to absolute form using C. -This means that it is taken to be relative to the current working directory. - -Based on code written by Shigio Yamaguchi. - - -=cut - -# maybe this should be done in canonpath() ? -sub _resolve_updirs { - my $path = shift @_; - my $proceed; - - # resolve any updirs, e.g. "HD:tmp::file" -> "HD:file" - do { - $proceed = ($path =~ s/^(.*):[^:]+::(.*?)\z/$1:$2/); - } while ($proceed); - - return $path; -} - - -sub abs2rel { - my($self,$path,$base) = @_; - - # Clean up $path - if ( ! $self->file_name_is_absolute( $path ) ) { - $path = $self->rel2abs( $path ) ; - } - - # Figure out the effective $base and clean it up. - if ( !defined( $base ) || $base eq '' ) { - $base = Cwd::getcwd(); - } - elsif ( ! $self->file_name_is_absolute( $base ) ) { - $base = $self->rel2abs( $base ) ; - $base = _resolve_updirs( $base ); # resolve updirs in $base - } - else { - $base = _resolve_updirs( $base ); - } - - # Split up paths - ignore $base's file - my ( $path_vol, $path_dirs, $path_file ) = $self->splitpath( $path ); - my ( $base_vol, $base_dirs ) = $self->splitpath( $base ); - - return $path unless lc( $path_vol ) eq lc( $base_vol ); - - # Now, remove all leading components that are the same - my @pathchunks = $self->splitdir( $path_dirs ); - my @basechunks = $self->splitdir( $base_dirs ); - - while ( @pathchunks && - @basechunks && - lc( $pathchunks[0] ) eq lc( $basechunks[0] ) ) { - shift @pathchunks ; - shift @basechunks ; - } - - # @pathchunks now has the directories to descend in to. - # ensure relative path, even if @pathchunks is empty - $path_dirs = $self->catdir( ':', @pathchunks ); - - # @basechunks now contains the number of directories to climb out of. - $base_dirs = (':' x @basechunks) . ':' ; - - return $self->catpath( '', $self->catdir( $base_dirs, $path_dirs ), $path_file ) ; -} - -=item rel2abs - -Converts a relative path to an absolute path: - - $abs_path = File::Spec->rel2abs( $path ) ; - $abs_path = File::Spec->rel2abs( $path, $base ) ; - -Note that both paths are assumed to have a notation that distinguishes a -directory path (with trailing ':') from a file path (without trailing ':'). - -If $base is not present or '', then $base is set to the current working -directory. If $base is relative, then it is converted to absolute form -using C. This means that it is taken to be relative to the -current working directory. - -If $base doesn't have a trailing colon, the last element of $base is -assumed to be a filename. This filename is ignored. Otherwise all path -components are assumed to be directories. - -If $path is already absolute, it is returned and $base is ignored. - -Based on code written by Shigio Yamaguchi. - -=cut - -sub rel2abs { - my ($self,$path,$base) = @_; - - if ( ! $self->file_name_is_absolute($path) ) { - # Figure out the effective $base and clean it up. - if ( !defined( $base ) || $base eq '' ) { - $base = Cwd::getcwd(); - } - elsif ( ! $self->file_name_is_absolute($base) ) { - $base = $self->rel2abs($base) ; - } - - # Split up paths - - # ignore $path's volume - my ( $path_dirs, $path_file ) = ($self->splitpath($path))[1,2] ; - - # ignore $base's file part - my ( $base_vol, $base_dirs ) = $self->splitpath($base) ; - - # Glom them together - $path_dirs = ':' if ($path_dirs eq ''); - $base_dirs =~ s/:$//; # remove trailing ':', if any - $base_dirs = $base_dirs . $path_dirs; - - $path = $self->catpath( $base_vol, $base_dirs, $path_file ); - } - return $path; -} - - -=back - -=head1 AUTHORS - -See the authors list in I. Mac OS support by Paul Schinder - and Thomas Wegner . - -=head1 COPYRIGHT - -Copyright (c) 2004 by the Perl 5 Porters. All rights reserved. - -This program is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -=head1 SEE ALSO - -See L and L. This package overrides the -implementation of these methods, not the semantics. - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/OS2.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/OS2.pm deleted file mode 100644 index e961ad4e..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/OS2.pm +++ /dev/null @@ -1,271 +0,0 @@ -package File::Spec::OS2; - -use strict; -use Cwd (); -require File::Spec::Unix; - -our $VERSION = '3.74'; -$VERSION =~ tr/_//d; - -our @ISA = qw(File::Spec::Unix); - -sub devnull { - return "/dev/nul"; -} - -sub case_tolerant { - return 1; -} - -sub file_name_is_absolute { - my ($self,$file) = @_; - return scalar($file =~ m{^([a-z]:)?[\\/]}is); -} - -sub path { - my $path = $ENV{PATH}; - $path =~ s:\\:/:g; - my @path = split(';',$path); - foreach (@path) { $_ = '.' if $_ eq '' } - return @path; -} - -sub tmpdir { - my $cached = $_[0]->_cached_tmpdir(qw 'TMPDIR TEMP TMP'); - return $cached if defined $cached; - my @d = @ENV{qw(TMPDIR TEMP TMP)}; # function call could autovivivy - $_[0]->_cache_tmpdir( - $_[0]->_tmpdir( @d, '/tmp', '/' ), qw 'TMPDIR TEMP TMP' - ); -} - -sub catdir { - my $self = shift; - my @args = @_; - foreach (@args) { - tr[\\][/]; - # append a backslash to each argument unless it has one there - $_ .= "/" unless m{/$}; - } - return $self->canonpath(join('', @args)); -} - -sub canonpath { - my ($self,$path) = @_; - return unless defined $path; - - $path =~ s/^([a-z]:)/\l$1/s; - $path =~ s|\\|/|g; - $path =~ s|([^/])/+|$1/|g; # xx////xx -> xx/xx - $path =~ s|(/\.)+/|/|g; # xx/././xx -> xx/xx - $path =~ s|^(\./)+(?=[^/])||s; # ./xx -> xx - $path =~ s|/\Z(?!\n)|| - unless $path =~ m#^([a-z]:)?/\Z(?!\n)#si;# xx/ -> xx - $path =~ s{^/\.\.$}{/}; # /.. -> / - 1 while $path =~ s{^/\.\.}{}; # /../xx -> /xx - return $path; -} - - -sub splitpath { - my ($self,$path, $nofile) = @_; - my ($volume,$directory,$file) = ('','',''); - if ( $nofile ) { - $path =~ - m{^( (?:[a-zA-Z]:|(?:\\\\|//)[^\\/]+[\\/][^\\/]+)? ) - (.*) - }xs; - $volume = $1; - $directory = $2; - } - else { - $path =~ - m{^ ( (?: [a-zA-Z]: | - (?:\\\\|//)[^\\/]+[\\/][^\\/]+ - )? - ) - ( (?:.*[\\\\/](?:\.\.?\Z(?!\n))?)? ) - (.*) - }xs; - $volume = $1; - $directory = $2; - $file = $3; - } - - return ($volume,$directory,$file); -} - - -sub splitdir { - my ($self,$directories) = @_ ; - split m|[\\/]|, $directories, -1; -} - - -sub catpath { - my ($self,$volume,$directory,$file) = @_; - - # If it's UNC, make sure the glue separator is there, reusing - # whatever separator is first in the $volume - $volume .= $1 - if ( $volume =~ m@^([\\/])[\\/][^\\/]+[\\/][^\\/]+\Z(?!\n)@s && - $directory =~ m@^[^\\/]@s - ) ; - - $volume .= $directory ; - - # If the volume is not just A:, make sure the glue separator is - # there, reusing whatever separator is first in the $volume if possible. - if ( $volume !~ m@^[a-zA-Z]:\Z(?!\n)@s && - $volume =~ m@[^\\/]\Z(?!\n)@ && - $file =~ m@[^\\/]@ - ) { - $volume =~ m@([\\/])@ ; - my $sep = $1 ? $1 : '/' ; - $volume .= $sep ; - } - - $volume .= $file ; - - return $volume ; -} - - -sub abs2rel { - my($self,$path,$base) = @_; - - # Clean up $path - if ( ! $self->file_name_is_absolute( $path ) ) { - $path = $self->rel2abs( $path ) ; - } else { - $path = $self->canonpath( $path ) ; - } - - # Figure out the effective $base and clean it up. - if ( !defined( $base ) || $base eq '' ) { - $base = Cwd::getcwd(); - } elsif ( ! $self->file_name_is_absolute( $base ) ) { - $base = $self->rel2abs( $base ) ; - } else { - $base = $self->canonpath( $base ) ; - } - - # Split up paths - my ( $path_volume, $path_directories, $path_file ) = $self->splitpath( $path, 1 ) ; - my ( $base_volume, $base_directories ) = $self->splitpath( $base, 1 ) ; - return $path unless $path_volume eq $base_volume; - - # Now, remove all leading components that are the same - my @pathchunks = $self->splitdir( $path_directories ); - my @basechunks = $self->splitdir( $base_directories ); - - while ( @pathchunks && - @basechunks && - lc( $pathchunks[0] ) eq lc( $basechunks[0] ) - ) { - shift @pathchunks ; - shift @basechunks ; - } - - # No need to catdir, we know these are well formed. - $path_directories = CORE::join( '/', @pathchunks ); - $base_directories = CORE::join( '/', @basechunks ); - - # $base_directories now contains the directories the resulting relative - # path must ascend out of before it can descend to $path_directory. So, - # replace all names with $parentDir - - #FA Need to replace between backslashes... - $base_directories =~ s|[^\\/]+|..|g ; - - # Glue the two together, using a separator if necessary, and preventing an - # empty result. - - #FA Must check that new directories are not empty. - if ( $path_directories ne '' && $base_directories ne '' ) { - $path_directories = "$base_directories/$path_directories" ; - } else { - $path_directories = "$base_directories$path_directories" ; - } - - return $self->canonpath( - $self->catpath( "", $path_directories, $path_file ) - ) ; -} - - -sub rel2abs { - my ($self,$path,$base ) = @_; - - if ( ! $self->file_name_is_absolute( $path ) ) { - - if ( !defined( $base ) || $base eq '' ) { - $base = Cwd::getcwd(); - } - elsif ( ! $self->file_name_is_absolute( $base ) ) { - $base = $self->rel2abs( $base ) ; - } - else { - $base = $self->canonpath( $base ) ; - } - - my ( $path_directories, $path_file ) = - ($self->splitpath( $path, 1 ))[1,2] ; - - my ( $base_volume, $base_directories ) = - $self->splitpath( $base, 1 ) ; - - $path = $self->catpath( - $base_volume, - $self->catdir( $base_directories, $path_directories ), - $path_file - ) ; - } - - return $self->canonpath( $path ) ; -} - -1; -__END__ - -=head1 NAME - -File::Spec::OS2 - methods for OS/2 file specs - -=head1 SYNOPSIS - - require File::Spec::OS2; # Done internally by File::Spec if needed - -=head1 DESCRIPTION - -See L and L. This package overrides the -implementation of these methods, not the semantics. - -Amongst the changes made for OS/2 are... - -=over 4 - -=item tmpdir - -Modifies the list of places temp directory information is looked for. - - $ENV{TMPDIR} - $ENV{TEMP} - $ENV{TMP} - /tmp - / - -=item splitpath - -Volumes can be drive letters or UNC sharenames (\\server\share). - -=back - -=head1 COPYRIGHT - -Copyright (c) 2004 by the Perl 5 Porters. All rights reserved. - -This program is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Unix.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Unix.pm deleted file mode 100644 index a1fa6736..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Unix.pm +++ /dev/null @@ -1,575 +0,0 @@ -package File::Spec::Unix; - -use strict; -use Cwd (); - -our $VERSION = '3.74'; -$VERSION =~ tr/_//d; - -=head1 NAME - -File::Spec::Unix - File::Spec for Unix, base for other File::Spec modules - -=head1 SYNOPSIS - - require File::Spec::Unix; # Done automatically by File::Spec - -=head1 DESCRIPTION - -Methods for manipulating file specifications. Other File::Spec -modules, such as File::Spec::Mac, inherit from File::Spec::Unix and -override specific methods. - -=head1 METHODS - -=over 2 - -=item canonpath() - -No physical check on the filesystem, but a logical cleanup of a -path. On UNIX eliminates successive slashes and successive "/.". - - $cpath = File::Spec->canonpath( $path ) ; - -Note that this does *not* collapse F sections into F. This -is by design. If F on your system is a symlink to F, -then F is actually F, not F as a naive -F<../>-removal would give you. If you want to do this kind of -processing, you probably want C's C function to -actually traverse the filesystem cleaning up paths like this. - -=cut - -sub _pp_canonpath { - my ($self,$path) = @_; - return unless defined $path; - - # Handle POSIX-style node names beginning with double slash (qnx, nto) - # (POSIX says: "a pathname that begins with two successive slashes - # may be interpreted in an implementation-defined manner, although - # more than two leading slashes shall be treated as a single slash.") - my $node = ''; - my $double_slashes_special = $^O eq 'qnx' || $^O eq 'nto'; - - - if ( $double_slashes_special - && ( $path =~ s{^(//[^/]+)/?\z}{}s || $path =~ s{^(//[^/]+)/}{/}s ) ) { - $node = $1; - } - # This used to be - # $path =~ s|/+|/|g unless ($^O eq 'cygwin'); - # but that made tests 29, 30, 35, 46, and 213 (as of #13272) to fail - # (Mainly because trailing "" directories didn't get stripped). - # Why would cygwin avoid collapsing multiple slashes into one? --jhi - $path =~ s|/{2,}|/|g; # xx////xx -> xx/xx - $path =~ s{(?:/\.)+(?:/|\z)}{/}g; # xx/././xx -> xx/xx - $path =~ s|^(?:\./)+||s unless $path eq "./"; # ./xx -> xx - $path =~ s|^/(?:\.\./)+|/|; # /../../xx -> xx - $path =~ s|^/\.\.$|/|; # /.. -> / - $path =~ s|/\z|| unless $path eq "/"; # xx/ -> xx - return "$node$path"; -} -*canonpath = \&_pp_canonpath unless defined &canonpath; - -=item catdir() - -Concatenate two or more directory names to form a complete path ending -with a directory. But remove the trailing slash from the resulting -string, because it doesn't look good, isn't necessary and confuses -OS2. Of course, if this is the root directory, don't cut off the -trailing slash :-) - -=cut - -sub _pp_catdir { - my $self = shift; - - $self->canonpath(join('/', @_, '')); # '' because need a trailing '/' -} -*catdir = \&_pp_catdir unless defined &catdir; - -=item catfile - -Concatenate one or more directory names and a filename to form a -complete path ending with a filename - -=cut - -sub _pp_catfile { - my $self = shift; - my $file = $self->canonpath(pop @_); - return $file unless @_; - my $dir = $self->catdir(@_); - $dir .= "/" unless substr($dir,-1) eq "/"; - return $dir.$file; -} -*catfile = \&_pp_catfile unless defined &catfile; - -=item curdir - -Returns a string representation of the current directory. "." on UNIX. - -=cut - -sub curdir { '.' } -use constant _fn_curdir => "."; - -=item devnull - -Returns a string representation of the null device. "/dev/null" on UNIX. - -=cut - -sub devnull { '/dev/null' } -use constant _fn_devnull => "/dev/null"; - -=item rootdir - -Returns a string representation of the root directory. "/" on UNIX. - -=cut - -sub rootdir { '/' } -use constant _fn_rootdir => "/"; - -=item tmpdir - -Returns a string representation of the first writable directory from -the following list or the current directory if none from the list are -writable: - - $ENV{TMPDIR} - /tmp - -If running under taint mode, and if $ENV{TMPDIR} -is tainted, it is not used. - -=cut - -my ($tmpdir, %tmpenv); -# Cache and return the calculated tmpdir, recording which env vars -# determined it. -sub _cache_tmpdir { - @tmpenv{@_[2..$#_]} = @ENV{@_[2..$#_]}; - return $tmpdir = $_[1]; -} -# Retrieve the cached tmpdir, checking first whether relevant env vars have -# changed and invalidated the cache. -sub _cached_tmpdir { - shift; - local $^W; - return if grep $ENV{$_} ne $tmpenv{$_}, @_; - return $tmpdir; -} -sub _tmpdir { - my $self = shift; - my @dirlist = @_; - my $taint = do { no strict 'refs'; ${"\cTAINT"} }; - if ($taint) { # Check for taint mode on perl >= 5.8.0 - require Scalar::Util; - @dirlist = grep { ! Scalar::Util::tainted($_) } @dirlist; - } - elsif ($] < 5.007) { # No ${^TAINT} before 5.8 - @dirlist = grep { !defined($_) || eval { eval('1'.substr $_,0,0) } } - @dirlist; - } - - foreach (@dirlist) { - next unless defined && -d && -w _; - $tmpdir = $_; - last; - } - $tmpdir = $self->curdir unless defined $tmpdir; - $tmpdir = defined $tmpdir && $self->canonpath($tmpdir); - if ( !$self->file_name_is_absolute($tmpdir) ) { - # See [perl #120593] for the full details - # If possible, return a full path, rather than '.' or 'lib', but - # jump through some hoops to avoid returning a tainted value. - ($tmpdir) = grep { - $taint ? ! Scalar::Util::tainted($_) : - $] < 5.007 ? eval { eval('1'.substr $_,0,0) } : 1 - } $self->rel2abs($tmpdir), $tmpdir; - } - return $tmpdir; -} - -sub tmpdir { - my $cached = $_[0]->_cached_tmpdir('TMPDIR'); - return $cached if defined $cached; - $_[0]->_cache_tmpdir($_[0]->_tmpdir( $ENV{TMPDIR}, "/tmp" ), 'TMPDIR'); -} - -=item updir - -Returns a string representation of the parent directory. ".." on UNIX. - -=cut - -sub updir { '..' } -use constant _fn_updir => ".."; - -=item no_upwards - -Given a list of file names, strip out those that refer to a parent -directory. (Does not strip symlinks, only '.', '..', and equivalents.) - -=cut - -sub no_upwards { - my $self = shift; - return grep(!/^\.{1,2}\z/s, @_); -} - -=item case_tolerant - -Returns a true or false value indicating, respectively, that alphabetic -is not or is significant when comparing file specifications. - -=cut - -sub case_tolerant { 0 } -use constant _fn_case_tolerant => 0; - -=item file_name_is_absolute - -Takes as argument a path and returns true if it is an absolute path. - -This does not consult the local filesystem on Unix, Win32, OS/2 or Mac -OS (Classic). It does consult the working environment for VMS (see -L). - -=cut - -sub file_name_is_absolute { - my ($self,$file) = @_; - return scalar($file =~ m:^/:s); -} - -=item path - -Takes no argument, returns the environment variable PATH as an array. - -=cut - -sub path { - return () unless exists $ENV{PATH}; - my @path = split(':', $ENV{PATH}); - foreach (@path) { $_ = '.' if $_ eq '' } - return @path; -} - -=item join - -join is the same as catfile. - -=cut - -sub join { - my $self = shift; - return $self->catfile(@_); -} - -=item splitpath - - ($volume,$directories,$file) = File::Spec->splitpath( $path ); - ($volume,$directories,$file) = File::Spec->splitpath( $path, - $no_file ); - -Splits a path into volume, directory, and filename portions. On systems -with no concept of volume, returns '' for volume. - -For systems with no syntax differentiating filenames from directories, -assumes that the last file is a path unless $no_file is true or a -trailing separator or /. or /.. is present. On Unix this means that $no_file -true makes this return ( '', $path, '' ). - -The directory portion may or may not be returned with a trailing '/'. - -The results can be passed to L to get back a path equivalent to -(usually identical to) the original path. - -=cut - -sub splitpath { - my ($self,$path, $nofile) = @_; - - my ($volume,$directory,$file) = ('','',''); - - if ( $nofile ) { - $directory = $path; - } - else { - $path =~ m|^ ( (?: .* / (?: \.\.?\z )? )? ) ([^/]*) |xs; - $directory = $1; - $file = $2; - } - - return ($volume,$directory,$file); -} - - -=item splitdir - -The opposite of L. - - @dirs = File::Spec->splitdir( $directories ); - -$directories must be only the directory portion of the path on systems -that have the concept of a volume or that have path syntax that differentiates -files from directories. - -Unlike just splitting the directories on the separator, empty -directory names (C<''>) can be returned, because these are significant -on some OSs. - -On Unix, - - File::Spec->splitdir( "/a/b//c/" ); - -Yields: - - ( '', 'a', 'b', '', 'c', '' ) - -=cut - -sub splitdir { - return split m|/|, $_[1], -1; # Preserve trailing fields -} - - -=item catpath() - -Takes volume, directory and file portions and returns an entire path. Under -Unix, $volume is ignored, and directory and file are concatenated. A '/' is -inserted if needed (though if the directory portion doesn't start with -'/' it is not added). On other OSs, $volume is significant. - -=cut - -sub catpath { - my ($self,$volume,$directory,$file) = @_; - - if ( $directory ne '' && - $file ne '' && - substr( $directory, -1 ) ne '/' && - substr( $file, 0, 1 ) ne '/' - ) { - $directory .= "/$file" ; - } - else { - $directory .= $file ; - } - - return $directory ; -} - -=item abs2rel - -Takes a destination path and an optional base path returns a relative path -from the base path to the destination path: - - $rel_path = File::Spec->abs2rel( $path ) ; - $rel_path = File::Spec->abs2rel( $path, $base ) ; - -If $base is not present or '', then L is used. If $base is -relative, then it is converted to absolute form using -L. This means that it is taken to be relative to -L. - -On systems that have a grammar that indicates filenames, this ignores the -$base filename. Otherwise all path components are assumed to be -directories. - -If $path is relative, it is converted to absolute form using L. -This means that it is taken to be relative to L. - -No checks against the filesystem are made, so the result may not be correct if -C<$base> contains symbolic links. (Apply -L beforehand if that -is a concern.) On VMS, there is interaction with the working environment, as -logicals and macros are expanded. - -Based on code written by Shigio Yamaguchi. - -=cut - -sub abs2rel { - my($self,$path,$base) = @_; - $base = Cwd::getcwd() unless defined $base and length $base; - - ($path, $base) = map $self->canonpath($_), $path, $base; - - my $path_directories; - my $base_directories; - - if (grep $self->file_name_is_absolute($_), $path, $base) { - ($path, $base) = map $self->rel2abs($_), $path, $base; - - my ($path_volume) = $self->splitpath($path, 1); - my ($base_volume) = $self->splitpath($base, 1); - - # Can't relativize across volumes - return $path unless $path_volume eq $base_volume; - - $path_directories = ($self->splitpath($path, 1))[1]; - $base_directories = ($self->splitpath($base, 1))[1]; - - # For UNC paths, the user might give a volume like //foo/bar that - # strictly speaking has no directory portion. Treat it as if it - # had the root directory for that volume. - if (!length($base_directories) and $self->file_name_is_absolute($base)) { - $base_directories = $self->rootdir; - } - } - else { - my $wd= ($self->splitpath(Cwd::getcwd(), 1))[1]; - $path_directories = $self->catdir($wd, $path); - $base_directories = $self->catdir($wd, $base); - } - - # Now, remove all leading components that are the same - my @pathchunks = $self->splitdir( $path_directories ); - my @basechunks = $self->splitdir( $base_directories ); - - if ($base_directories eq $self->rootdir) { - return $self->curdir if $path_directories eq $self->rootdir; - shift @pathchunks; - return $self->canonpath( $self->catpath('', $self->catdir( @pathchunks ), '') ); - } - - my @common; - while (@pathchunks && @basechunks && $self->_same($pathchunks[0], $basechunks[0])) { - push @common, shift @pathchunks ; - shift @basechunks ; - } - return $self->curdir unless @pathchunks || @basechunks; - - # @basechunks now contains the directories the resulting relative path - # must ascend out of before it can descend to $path_directory. If there - # are updir components, we must descend into the corresponding directories - # (this only works if they are no symlinks). - my @reverse_base; - while( defined(my $dir= shift @basechunks) ) { - if( $dir ne $self->updir ) { - unshift @reverse_base, $self->updir; - push @common, $dir; - } - elsif( @common ) { - if( @reverse_base && $reverse_base[0] eq $self->updir ) { - shift @reverse_base; - pop @common; - } - else { - unshift @reverse_base, pop @common; - } - } - } - my $result_dirs = $self->catdir( @reverse_base, @pathchunks ); - return $self->canonpath( $self->catpath('', $result_dirs, '') ); -} - -sub _same { - $_[1] eq $_[2]; -} - -=item rel2abs() - -Converts a relative path to an absolute path. - - $abs_path = File::Spec->rel2abs( $path ) ; - $abs_path = File::Spec->rel2abs( $path, $base ) ; - -If $base is not present or '', then L is used. If $base is -relative, then it is converted to absolute form using -L. This means that it is taken to be relative to -L. - -On systems that have a grammar that indicates filenames, this ignores -the $base filename. Otherwise all path components are assumed to be -directories. - -If $path is absolute, it is cleaned up and returned using L. - -No checks against the filesystem are made. On VMS, there is -interaction with the working environment, as logicals and -macros are expanded. - -Based on code written by Shigio Yamaguchi. - -=cut - -sub rel2abs { - my ($self,$path,$base ) = @_; - - # Clean up $path - if ( ! $self->file_name_is_absolute( $path ) ) { - # Figure out the effective $base and clean it up. - if ( !defined( $base ) || $base eq '' ) { - $base = Cwd::getcwd(); - } - elsif ( ! $self->file_name_is_absolute( $base ) ) { - $base = $self->rel2abs( $base ) ; - } - else { - $base = $self->canonpath( $base ) ; - } - - # Glom them together - $path = $self->catdir( $base, $path ) ; - } - - return $self->canonpath( $path ) ; -} - -=back - -=head1 COPYRIGHT - -Copyright (c) 2004 by the Perl 5 Porters. All rights reserved. - -This program is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -Please submit bug reports and patches to perlbug@perl.org. - -=head1 SEE ALSO - -L - -=cut - -# Internal method to reduce xx\..\yy -> yy -sub _collapse { - my($fs, $path) = @_; - - my $updir = $fs->updir; - my $curdir = $fs->curdir; - - my($vol, $dirs, $file) = $fs->splitpath($path); - my @dirs = $fs->splitdir($dirs); - pop @dirs if @dirs && $dirs[-1] eq ''; - - my @collapsed; - foreach my $dir (@dirs) { - if( $dir eq $updir and # if we have an updir - @collapsed and # and something to collapse - length $collapsed[-1] and # and its not the rootdir - $collapsed[-1] ne $updir and # nor another updir - $collapsed[-1] ne $curdir # nor the curdir - ) - { # then - pop @collapsed; # collapse - } - else { # else - push @collapsed, $dir; # just hang onto it - } - } - - return $fs->catpath($vol, - $fs->catdir(@collapsed), - $file - ); -} - - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/VMS.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/VMS.pm deleted file mode 100644 index cbafdce8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/VMS.pm +++ /dev/null @@ -1,569 +0,0 @@ -package File::Spec::VMS; - -use strict; -use Cwd (); -require File::Spec::Unix; - -our $VERSION = '3.74'; -$VERSION =~ tr/_//d; - -our @ISA = qw(File::Spec::Unix); - -use File::Basename; -use VMS::Filespec; - -=head1 NAME - -File::Spec::VMS - methods for VMS file specs - -=head1 SYNOPSIS - - require File::Spec::VMS; # Done internally by File::Spec if needed - -=head1 DESCRIPTION - -See File::Spec::Unix for a documentation of the methods provided -there. This package overrides the implementation of these methods, not -the semantics. - -The default behavior is to allow either VMS or Unix syntax on input and to -return VMS syntax on output unless Unix syntax has been explicitly requested -via the C CRTL feature. - -=over 4 - -=cut - -# Need to look up the feature settings. The preferred way is to use the -# VMS::Feature module, but that may not be available to dual life modules. - -my $use_feature; -BEGIN { - if (eval { local $SIG{__DIE__}; - local @INC = @INC; - pop @INC if $INC[-1] eq '.'; - require VMS::Feature; }) { - $use_feature = 1; - } -} - -# Need to look up the UNIX report mode. This may become a dynamic mode -# in the future. -sub _unix_rpt { - my $unix_rpt; - if ($use_feature) { - $unix_rpt = VMS::Feature::current("filename_unix_report"); - } else { - my $env_unix_rpt = $ENV{'DECC$FILENAME_UNIX_REPORT'} || ''; - $unix_rpt = $env_unix_rpt =~ /^[ET1]/i; - } - return $unix_rpt; -} - -=item canonpath (override) - -Removes redundant portions of file specifications and returns results -in native syntax unless Unix filename reporting has been enabled. - -=cut - - -sub canonpath { - my($self,$path) = @_; - - return undef unless defined $path; - - my $unix_rpt = $self->_unix_rpt; - - if ($path =~ m|/|) { - my $pathify = $path =~ m|/\Z(?!\n)|; - $path = $self->SUPER::canonpath($path); - - return $path if $unix_rpt; - $path = $pathify ? vmspath($path) : vmsify($path); - } - - $path =~ s/(? ==> [ and ] - $path =~ s/(?/]/; - $path =~ s/(? .][ - $path =~ s/(? [ - $path =~ s/(? [ - $path =~ s/(? ] - $path =~ s/(? foo.bar - 1 while ($path =~ s/(? .--. - # [-.-. ==> [--. - # .-.-] ==> .--] - # [-.-] ==> [--] - 1 while ($path =~ s/(? .-. - # .foo.--] ==> .-] - # [foo.--. ==> [-. - # [foo.--] ==> [-] - # - # And then, the remaining cases - $path =~ s/(? [- - $path =~ s/(? . - $path =~ s/(? [ - $path =~ s/(? ] - # [foo.-] ==> [000000] - $path =~ s/(? - $path =~ s/(?_unix_rpt; - - my @dirs = grep {defined() && length()} @_; - - my $rslt; - if (@dirs) { - my $path = (@dirs == 1 ? $dirs[0] : $self->catdir(@dirs)); - my ($spath,$sdir) = ($path,$dir); - $spath =~ s/\.dir\Z(?!\n)//i; $sdir =~ s/\.dir\Z(?!\n)//i; - - if ($unix_rpt) { - $spath = unixify($spath) unless $spath =~ m#/#; - $sdir= unixify($sdir) unless $sdir =~ m#/#; - return $self->SUPER::catdir($spath, $sdir) - } - - $rslt = vmspath( unixify($spath) . '/' . unixify($sdir)); - - # Special case for VMS absolute directory specs: these will have - # had device prepended during trip through Unix syntax in - # eliminate_macros(), since Unix syntax has no way to express - # "absolute from the top of this device's directory tree". - if ($spath =~ /^[\[<][^.\-]/s) { $rslt =~ s/^[^\[<]+//s; } - - } else { - # Single directory. Return an empty string on null input; otherwise - # just return a canonical path. - - if (not defined $dir or not length $dir) { - $rslt = ''; - } else { - $rslt = $unix_rpt ? $dir : vmspath($dir); - } - } - return $self->canonpath($rslt); -} - -=item catfile (override) - -Concatenates a list of directory specifications with a filename specification -to build a path. - -=cut - -sub catfile { - my $self = shift; - my $tfile = pop(); - my $file = $self->canonpath($tfile); - my @files = grep {defined() && length()} @_; - - my $unix_rpt = $self->_unix_rpt; - - my $rslt; - if (@files) { - my $path = (@files == 1 ? $files[0] : $self->catdir(@files)); - my $spath = $path; - - # Something building a VMS path in pieces may try to pass a - # directory name in filename format, so normalize it. - $spath =~ s/\.dir\Z(?!\n)//i; - - # If the spath ends with a directory delimiter and the file is bare, - # then just concatenate them. - if ($spath =~ /^(?]+\)\Z(?!\n)/s && basename($file) eq $file) { - $rslt = "$spath$file"; - } else { - $rslt = unixify($spath); - $rslt .= (defined($rslt) && length($rslt) ? '/' : '') . unixify($file); - $rslt = vmsify($rslt) unless $unix_rpt; - } - } - else { - # Only passed a single file? - my $xfile = (defined($file) && length($file)) ? $file : ''; - - $rslt = $unix_rpt ? $xfile : vmsify($xfile); - } - return $self->canonpath($rslt) unless $unix_rpt; - - # In Unix report mode, do not strip off redundant path information. - return $rslt; -} - - -=item curdir (override) - -Returns a string representation of the current directory: '[]' or '.' - -=cut - -sub curdir { - my $self = shift @_; - return '.' if ($self->_unix_rpt); - return '[]'; -} - -=item devnull (override) - -Returns a string representation of the null device: '_NLA0:' or '/dev/null' - -=cut - -sub devnull { - my $self = shift @_; - return '/dev/null' if ($self->_unix_rpt); - return "_NLA0:"; -} - -=item rootdir (override) - -Returns a string representation of the root directory: 'SYS$DISK:[000000]' -or '/' - -=cut - -sub rootdir { - my $self = shift @_; - if ($self->_unix_rpt) { - # Root may exist, try it first. - my $try = '/'; - my ($dev1, $ino1) = stat('/'); - my ($dev2, $ino2) = stat('.'); - - # Perl falls back to '.' if it can not determine '/' - if (($dev1 != $dev2) || ($ino1 != $ino2)) { - return $try; - } - # Fall back to UNIX format sys$disk. - return '/sys$disk/'; - } - return 'SYS$DISK:[000000]'; -} - -=item tmpdir (override) - -Returns a string representation of the first writable directory -from the following list or '' if none are writable: - - /tmp if C is enabled. - sys$scratch: - $ENV{TMPDIR} - -If running under taint mode, and if $ENV{TMPDIR} -is tainted, it is not used. - -=cut - -sub tmpdir { - my $self = shift @_; - my $tmpdir = $self->_cached_tmpdir('TMPDIR'); - return $tmpdir if defined $tmpdir; - if ($self->_unix_rpt) { - $tmpdir = $self->_tmpdir('/tmp', '/sys$scratch', $ENV{TMPDIR}); - } - else { - $tmpdir = $self->_tmpdir( 'sys$scratch:', $ENV{TMPDIR} ); - } - $self->_cache_tmpdir($tmpdir, 'TMPDIR'); -} - -=item updir (override) - -Returns a string representation of the parent directory: '[-]' or '..' - -=cut - -sub updir { - my $self = shift @_; - return '..' if ($self->_unix_rpt); - return '[-]'; -} - -=item case_tolerant (override) - -VMS file specification syntax is case-tolerant. - -=cut - -sub case_tolerant { - return 1; -} - -=item path (override) - -Translate logical name DCL$PATH as a searchlist, rather than trying -to C string value of C<$ENV{'PATH'}>. - -=cut - -sub path { - my (@dirs,$dir,$i); - while ($dir = $ENV{'DCL$PATH;' . $i++}) { push(@dirs,$dir); } - return @dirs; -} - -=item file_name_is_absolute (override) - -Checks for VMS directory spec as well as Unix separators. - -=cut - -sub file_name_is_absolute { - my ($self,$file) = @_; - # If it's a logical name, expand it. - $file = $ENV{$file} while $file =~ /^[\w\$\-]+\Z(?!\n)/s && $ENV{$file}; - return scalar($file =~ m!^/!s || - $file =~ m![<\[][^.\-\]>]! || - $file =~ /^[A-Za-z0-9_\$\-\~]+(?splitpath( $path ); - ($volume,$directories,$file) = File::Spec->splitpath( $path, - $no_file ); - -Passing a true value for C<$no_file> indicates that the path being -split only contains directory components, even on systems where you -can usually (when not supporting a foreign syntax) tell the difference -between directories and files at a glance. - -=cut - -sub splitpath { - my($self,$path, $nofile) = @_; - my($dev,$dir,$file) = ('','',''); - my $vmsify_path = vmsify($path); - - if ( $nofile ) { - #vmsify('d1/d2/d3') returns '[.d1.d2]d3' - #vmsify('/d1/d2/d3') returns 'd1:[d2]d3' - if( $vmsify_path =~ /(.*)\](.+)/ ){ - $vmsify_path = $1.'.'.$2.']'; - } - $vmsify_path =~ /(.+:)?(.*)/s; - $dir = defined $2 ? $2 : ''; # dir can be '0' - return ($1 || '',$dir,$file); - } - else { - $vmsify_path =~ /(.+:)?([\[<].*[\]>])?(.*)/s; - return ($1 || '',$2 || '',$3); - } -} - -=item splitdir (override) - -Split a directory specification into the components. - -=cut - -sub splitdir { - my($self,$dirspec) = @_; - my @dirs = (); - return @dirs if ( (!defined $dirspec) || ('' eq $dirspec) ); - - $dirspec =~ s/(? ==> [ and ] - $dirspec =~ s/(?/]/; - $dirspec =~ s/(? .][ - $dirspec =~ s/(? [ - $dirspec =~ s/(? [ - $dirspec =~ s/(? ] - $dirspec =~ s/(? foo.bar - while ($dirspec =~ s/(^|[\[\<\.])\-(\-+)($|[\]\>\.])/$1-.$2$3/g) {} - # That loop does the following - # with any amount of dashes: - # .--. ==> .-.-. - # [--. ==> [-.-. - # .--] ==> .-.-] - # [--] ==> [-.-] - $dirspec = "[$dirspec]" unless $dirspec =~ /(?]\Z(?!\n)//s; - @dirs; -} - - -=item catpath (override) - -Construct a complete filespec. - -=cut - -sub catpath { - my($self,$dev,$dir,$file) = @_; - - # We look for a volume in $dev, then in $dir, but not both - my ($dir_volume, $dir_dir, $dir_file) = $self->splitpath($dir); - $dev = $dir_volume unless length $dev; - $dir = length $dir_file ? $self->catfile($dir_dir, $dir_file) : $dir_dir; - - if ($dev =~ m|^(?'); - "$dev$dir$file"; -} - -=item abs2rel (override) - -Attempt to convert an absolute file specification to a relative specification. - -=cut - -sub abs2rel { - my $self = shift; - my($path,$base) = @_; - - $base = Cwd::getcwd() unless defined $base and length $base; - - # If there is no device or directory syntax on $base, make sure it - # is treated as a directory. - $base = vmspath($base) unless $base =~ m{(?rel2abs($_) } - - # Are we even starting $path on the same (node::)device as $base? Note that - # logical paths or nodename differences may be on the "same device" - # but the comparison that ignores device differences so as to concatenate - # [---] up directory specs is not even a good idea in cases where there is - # a logical path difference between $path and $base nodename and/or device. - # Hence we fall back to returning the absolute $path spec - # if there is a case blind device (or node) difference of any sort - # and we do not even try to call $parse() or consult %ENV for $trnlnm() - # (this module needs to run on non VMS platforms after all). - - my ($path_volume, $path_directories, $path_file) = $self->splitpath($path); - my ($base_volume, $base_directories, $base_file) = $self->splitpath($base); - return $self->canonpath( $path ) unless lc($path_volume) eq lc($base_volume); - - # Now, remove all leading components that are the same - my @pathchunks = $self->splitdir( $path_directories ); - my $pathchunks = @pathchunks; - unshift(@pathchunks,'000000') unless $pathchunks[0] eq '000000'; - my @basechunks = $self->splitdir( $base_directories ); - my $basechunks = @basechunks; - unshift(@basechunks,'000000') unless $basechunks[0] eq '000000'; - - while ( @pathchunks && - @basechunks && - lc( $pathchunks[0] ) eq lc( $basechunks[0] ) - ) { - shift @pathchunks ; - shift @basechunks ; - } - - # @basechunks now contains the directories to climb out of, - # @pathchunks now has the directories to descend in to. - if ((@basechunks > 0) || ($basechunks != $pathchunks)) { - $path_directories = join '.', ('-' x @basechunks, @pathchunks) ; - } - else { - $path_directories = join '.', @pathchunks; - } - $path_directories = '['.$path_directories.']'; - return $self->canonpath( $self->catpath( '', $path_directories, $path_file ) ) ; -} - - -=item rel2abs (override) - -Return an absolute file specification from a relative one. - -=cut - -sub rel2abs { - my $self = shift ; - my ($path,$base ) = @_; - return undef unless defined $path; - if ($path =~ m/\//) { - $path = ( -d $path || $path =~ m/\/\z/ # educated guessing about - ? vmspath($path) # whether it's a directory - : vmsify($path) ); - } - $base = vmspath($base) if defined $base && $base =~ m/\//; - - # Clean up and split up $path - if ( ! $self->file_name_is_absolute( $path ) ) { - # Figure out the effective $base and clean it up. - if ( !defined( $base ) || $base eq '' ) { - $base = Cwd::getcwd(); - } - elsif ( ! $self->file_name_is_absolute( $base ) ) { - $base = $self->rel2abs( $base ) ; - } - else { - $base = $self->canonpath( $base ) ; - } - - # Split up paths - my ( $path_directories, $path_file ) = - ($self->splitpath( $path ))[1,2] ; - - my ( $base_volume, $base_directories ) = - $self->splitpath( $base ) ; - - $path_directories = '' if $path_directories eq '[]' || - $path_directories eq '<>'; - my $sep = '' ; - $sep = '.' - if ( $base_directories =~ m{[^.\]>]\Z(?!\n)} && - $path_directories =~ m{^[^.\[<]}s - ) ; - $base_directories = "$base_directories$sep$path_directories"; - $base_directories =~ s{\.?[\]>][\[<]\.?}{.}; - - $path = $self->catpath( $base_volume, $base_directories, $path_file ); - } - - return $self->canonpath( $path ) ; -} - - -=back - -=head1 COPYRIGHT - -Copyright (c) 2004-14 by the Perl 5 Porters. All rights reserved. - -This program is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -=head1 SEE ALSO - -See L and L. This package overrides the -implementation of these methods, not the semantics. - -An explanation of VMS file specs can be found at -L. - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Win32.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Win32.pm deleted file mode 100644 index 9ccafa7d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/File/Spec/Win32.pm +++ /dev/null @@ -1,449 +0,0 @@ -package File::Spec::Win32; - -use strict; - -use Cwd (); -require File::Spec::Unix; - -our $VERSION = '3.74'; -$VERSION =~ tr/_//d; - -our @ISA = qw(File::Spec::Unix); - -# Some regexes we use for path splitting -my $DRIVE_RX = '[a-zA-Z]:'; -my $UNC_RX = '(?:\\\\\\\\|//)[^\\\\/]+[\\\\/][^\\\\/]+'; -my $VOL_RX = "(?:$DRIVE_RX|$UNC_RX)"; - - -=head1 NAME - -File::Spec::Win32 - methods for Win32 file specs - -=head1 SYNOPSIS - - require File::Spec::Win32; # Done internally by File::Spec if needed - -=head1 DESCRIPTION - -See File::Spec::Unix for a documentation of the methods provided -there. This package overrides the implementation of these methods, not -the semantics. - -=over 4 - -=item devnull - -Returns a string representation of the null device. - -=cut - -sub devnull { - return "nul"; -} - -sub rootdir { '\\' } - - -=item tmpdir - -Returns a string representation of the first existing directory -from the following list: - - $ENV{TMPDIR} - $ENV{TEMP} - $ENV{TMP} - SYS:/temp - C:\system\temp - C:/temp - /tmp - / - -The SYS:/temp is preferred in Novell NetWare and the C:\system\temp -for Symbian (the File::Spec::Win32 is used also for those platforms). - -If running under taint mode, and if the environment -variables are tainted, they are not used. - -=cut - -sub tmpdir { - my $tmpdir = $_[0]->_cached_tmpdir(qw(TMPDIR TEMP TMP)); - return $tmpdir if defined $tmpdir; - $tmpdir = $_[0]->_tmpdir( map( $ENV{$_}, qw(TMPDIR TEMP TMP) ), - 'SYS:/temp', - 'C:\system\temp', - 'C:/temp', - '/tmp', - '/' ); - $_[0]->_cache_tmpdir($tmpdir, qw(TMPDIR TEMP TMP)); -} - -=item case_tolerant - -MSWin32 case-tolerance depends on GetVolumeInformation() $ouFsFlags == FS_CASE_SENSITIVE, -indicating the case significance when comparing file specifications. -Since XP FS_CASE_SENSITIVE is effectively disabled for the NT subsubsystem. -See http://cygwin.com/ml/cygwin/2007-07/msg00891.html -Default: 1 - -=cut - -sub case_tolerant { - eval { - local @INC = @INC; - pop @INC if $INC[-1] eq '.'; - require Win32API::File; - } or return 1; - my $drive = shift || "C:"; - my $osFsType = "\0"x256; - my $osVolName = "\0"x256; - my $ouFsFlags = 0; - Win32API::File::GetVolumeInformation($drive, $osVolName, 256, [], [], $ouFsFlags, $osFsType, 256 ); - if ($ouFsFlags & Win32API::File::FS_CASE_SENSITIVE()) { return 0; } - else { return 1; } -} - -=item file_name_is_absolute - -As of right now, this returns 2 if the path is absolute with a -volume, 1 if it's absolute with no volume, 0 otherwise. - -=cut - -sub file_name_is_absolute { - - my ($self,$file) = @_; - - if ($file =~ m{^($VOL_RX)}o) { - my $vol = $1; - return ($vol =~ m{^$UNC_RX}o ? 2 - : $file =~ m{^$DRIVE_RX[\\/]}o ? 2 - : 0); - } - return $file =~ m{^[\\/]} ? 1 : 0; -} - -=item catfile - -Concatenate one or more directory names and a filename to form a -complete path ending with a filename - -=cut - -sub catfile { - shift; - - # Legacy / compatibility support - # - shift, return _canon_cat( "/", @_ ) - if $_[0] eq ""; - - # Compatibility with File::Spec <= 3.26: - # catfile('A:', 'foo') should return 'A:\foo'. - return _canon_cat( ($_[0].'\\'), @_[1..$#_] ) - if $_[0] =~ m{^$DRIVE_RX\z}o; - - return _canon_cat( @_ ); -} - -sub catdir { - shift; - - # Legacy / compatibility support - # - return "" - unless @_; - shift, return _canon_cat( "/", @_ ) - if $_[0] eq ""; - - # Compatibility with File::Spec <= 3.26: - # catdir('A:', 'foo') should return 'A:\foo'. - return _canon_cat( ($_[0].'\\'), @_[1..$#_] ) - if $_[0] =~ m{^$DRIVE_RX\z}o; - - return _canon_cat( @_ ); -} - -sub path { - my @path = split(';', $ENV{PATH}); - s/"//g for @path; - @path = grep length, @path; - unshift(@path, "."); - return @path; -} - -=item canonpath - -No physical check on the filesystem, but a logical cleanup of a -path. On UNIX eliminated successive slashes and successive "/.". -On Win32 makes - - dir1\dir2\dir3\..\..\dir4 -> \dir\dir4 and even - dir1\dir2\dir3\...\dir4 -> \dir\dir4 - -=cut - -sub canonpath { - # Legacy / compatibility support - # - return $_[1] if !defined($_[1]) or $_[1] eq ''; - return _canon_cat( $_[1] ); -} - -=item splitpath - - ($volume,$directories,$file) = File::Spec->splitpath( $path ); - ($volume,$directories,$file) = File::Spec->splitpath( $path, - $no_file ); - -Splits a path into volume, directory, and filename portions. Assumes that -the last file is a path unless the path ends in '\\', '\\.', '\\..' -or $no_file is true. On Win32 this means that $no_file true makes this return -( $volume, $path, '' ). - -Separators accepted are \ and /. - -Volumes can be drive letters or UNC sharenames (\\server\share). - -The results can be passed to L to get back a path equivalent to -(usually identical to) the original path. - -=cut - -sub splitpath { - my ($self,$path, $nofile) = @_; - my ($volume,$directory,$file) = ('','',''); - if ( $nofile ) { - $path =~ - m{^ ( $VOL_RX ? ) (.*) }sox; - $volume = $1; - $directory = $2; - } - else { - $path =~ - m{^ ( $VOL_RX ? ) - ( (?:.*[\\/](?:\.\.?\Z(?!\n))?)? ) - (.*) - }sox; - $volume = $1; - $directory = $2; - $file = $3; - } - - return ($volume,$directory,$file); -} - - -=item splitdir - -The opposite of L. - - @dirs = File::Spec->splitdir( $directories ); - -$directories must be only the directory portion of the path on systems -that have the concept of a volume or that have path syntax that differentiates -files from directories. - -Unlike just splitting the directories on the separator, leading empty and -trailing directory entries can be returned, because these are significant -on some OSs. So, - - File::Spec->splitdir( "/a/b/c" ); - -Yields: - - ( '', 'a', 'b', '', 'c', '' ) - -=cut - -sub splitdir { - my ($self,$directories) = @_ ; - # - # split() likes to forget about trailing null fields, so here we - # check to be sure that there will not be any before handling the - # simple case. - # - if ( $directories !~ m|[\\/]\Z(?!\n)| ) { - return split( m|[\\/]|, $directories ); - } - else { - # - # since there was a trailing separator, add a file name to the end, - # then do the split, then replace it with ''. - # - my( @directories )= split( m|[\\/]|, "${directories}dummy" ) ; - $directories[ $#directories ]= '' ; - return @directories ; - } -} - - -=item catpath - -Takes volume, directory and file portions and returns an entire path. Under -Unix, $volume is ignored, and this is just like catfile(). On other OSs, -the $volume become significant. - -=cut - -sub catpath { - my ($self,$volume,$directory,$file) = @_; - - # If it's UNC, make sure the glue separator is there, reusing - # whatever separator is first in the $volume - my $v; - $volume .= $v - if ( (($v) = $volume =~ m@^([\\/])[\\/][^\\/]+[\\/][^\\/]+\Z(?!\n)@s) && - $directory =~ m@^[^\\/]@s - ) ; - - $volume .= $directory ; - - # If the volume is not just A:, make sure the glue separator is - # there, reusing whatever separator is first in the $volume if possible. - if ( $volume !~ m@^[a-zA-Z]:\Z(?!\n)@s && - $volume =~ m@[^\\/]\Z(?!\n)@ && - $file =~ m@[^\\/]@ - ) { - $volume =~ m@([\\/])@ ; - my $sep = $1 ? $1 : '\\' ; - $volume .= $sep ; - } - - $volume .= $file ; - - return $volume ; -} - -sub _same { - lc($_[1]) eq lc($_[2]); -} - -sub rel2abs { - my ($self,$path,$base ) = @_; - - my $is_abs = $self->file_name_is_absolute($path); - - # Check for volume (should probably document the '2' thing...) - return $self->canonpath( $path ) if $is_abs == 2; - - if ($is_abs) { - # It's missing a volume, add one - my $vol = ($self->splitpath( Cwd::getcwd() ))[0]; - return $self->canonpath( $vol . $path ); - } - - if ( !defined( $base ) || $base eq '' ) { - $base = Cwd::getdcwd( ($self->splitpath( $path ))[0] ) if defined &Cwd::getdcwd ; - $base = Cwd::getcwd() unless defined $base ; - } - elsif ( ! $self->file_name_is_absolute( $base ) ) { - $base = $self->rel2abs( $base ) ; - } - else { - $base = $self->canonpath( $base ) ; - } - - my ( $path_directories, $path_file ) = - ($self->splitpath( $path, 1 ))[1,2] ; - - my ( $base_volume, $base_directories ) = - $self->splitpath( $base, 1 ) ; - - $path = $self->catpath( - $base_volume, - $self->catdir( $base_directories, $path_directories ), - $path_file - ) ; - - return $self->canonpath( $path ) ; -} - -=back - -=head2 Note For File::Spec::Win32 Maintainers - -Novell NetWare inherits its File::Spec behaviour from File::Spec::Win32. - -=head1 COPYRIGHT - -Copyright (c) 2004,2007 by the Perl 5 Porters. All rights reserved. - -This program is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -=head1 SEE ALSO - -See L and L. This package overrides the -implementation of these methods, not the semantics. - -=cut - - -sub _canon_cat # @path -> path -{ - my ($first, @rest) = @_; - - my $volume = $first =~ s{ \A ([A-Za-z]:) ([\\/]?) }{}x # drive letter - ? ucfirst( $1 ).( $2 ? "\\" : "" ) - : $first =~ s{ \A (?:\\\\|//) ([^\\/]+) - (?: [\\/] ([^\\/]+) )? - [\\/]? }{}xs # UNC volume - ? "\\\\$1".( defined $2 ? "\\$2" : "" )."\\" - : $first =~ s{ \A [\\/] }{}x # root dir - ? "\\" - : ""; - my $path = join "\\", $first, @rest; - - $path =~ tr#\\/#\\\\#s; # xx/yy --> xx\yy & xx\\yy --> xx\yy - - # xx/././yy --> xx/yy - $path =~ s{(?: - (?:\A|\\) # at begin or after a slash - \. - (?:\\\.)* # and more - (?:\\|\z) # at end or followed by slash - )+ # performance boost -- I do not know why - }{\\}gx; - - # XXX I do not know whether more dots are supported by the OS supporting - # this ... annotation (NetWare or symbian but not MSWin32). - # Then .... could easily become ../../.. etc: - # Replace \.\.\. by (\.\.\.+) and substitute with - # { $1 . ".." . "\\.." x (length($2)-2) }gex - # ... --> ../.. - $path =~ s{ (\A|\\) # at begin or after a slash - \.\.\. - (?=\\|\z) # at end or followed by slash - }{$1..\\..}gx; - # xx\yy\..\zz --> xx\zz - while ( $path =~ s{(?: - (?:\A|\\) # at begin or after a slash - [^\\]+ # rip this 'yy' off - \\\.\. - (? xx NOTE: this is *not* root - $path =~ s#\\\z##; # xx\ --> xx - - if ( $volume =~ m#\\\z# ) - { # \.. --> \ - $path =~ s{ \A # at begin - \.\. - (?:\\\.\.)* # and more - (?:\\|\z) # at end or followed by slash - }{}x; - - return $1 # \\HOST\SHARE\ --> \\HOST\SHARE - if $path eq "" - and $volume =~ m#\A(\\\\.*)\\\z#s; - } - return $path ne "" || $volume ? $volume.$path : "."; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/List/Util.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/List/Util.pm deleted file mode 100644 index b650d358..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/List/Util.pm +++ /dev/null @@ -1,670 +0,0 @@ -# Copyright (c) 1997-2009 Graham Barr . All rights reserved. -# This program is free software; you can redistribute it and/or -# modify it under the same terms as Perl itself. -# -# Maintained since 2013 by Paul Evans - -package List::Util; - -use strict; -use warnings; -require Exporter; - -our @ISA = qw(Exporter); -our @EXPORT_OK = qw( - all any first min max minstr maxstr none notall product reduce sum sum0 shuffle uniq uniqnum uniqstr - head tail pairs unpairs pairkeys pairvalues pairmap pairgrep pairfirst -); -our $VERSION = "1.50"; -our $XS_VERSION = $VERSION; -$VERSION = eval $VERSION; - -require XSLoader; -XSLoader::load('List::Util', $XS_VERSION); - -sub import -{ - my $pkg = caller; - - # (RT88848) Touch the caller's $a and $b, to avoid the warning of - # Name "main::a" used only once: possible typo" warning - no strict 'refs'; - ${"${pkg}::a"} = ${"${pkg}::a"}; - ${"${pkg}::b"} = ${"${pkg}::b"}; - - goto &Exporter::import; -} - -# For objects returned by pairs() -sub List::Util::_Pair::key { shift->[0] } -sub List::Util::_Pair::value { shift->[1] } - -=head1 NAME - -List::Util - A selection of general-utility list subroutines - -=head1 SYNOPSIS - - use List::Util qw( - reduce any all none notall first - - max maxstr min minstr product sum sum0 - - pairs unpairs pairkeys pairvalues pairfirst pairgrep pairmap - - shuffle uniq uniqnum uniqstr - ); - -=head1 DESCRIPTION - -C contains a selection of subroutines that people have expressed -would be nice to have in the perl core, but the usage would not really be high -enough to warrant the use of a keyword, and the size so small such that being -individual extensions would be wasteful. - -By default C does not export any subroutines. - -=cut - -=head1 LIST-REDUCTION FUNCTIONS - -The following set of functions all reduce a list down to a single value. - -=cut - -=head2 reduce - - $result = reduce { BLOCK } @list - -Reduces C<@list> by calling C in a scalar context multiple times, -setting C<$a> and C<$b> each time. The first call will be with C<$a> and C<$b> -set to the first two elements of the list, subsequent calls will be done by -setting C<$a> to the result of the previous call and C<$b> to the next element -in the list. - -Returns the result of the last call to the C. If C<@list> is empty then -C is returned. If C<@list> only contains one element then that element -is returned and C is not executed. - -The following examples all demonstrate how C could be used to implement -the other list-reduction functions in this module. (They are not in fact -implemented like this, but instead in a more efficient manner in individual C -functions). - - $foo = reduce { defined($a) ? $a : - $code->(local $_ = $b) ? $b : - undef } undef, @list # first - - $foo = reduce { $a > $b ? $a : $b } 1..10 # max - $foo = reduce { $a gt $b ? $a : $b } 'A'..'Z' # maxstr - $foo = reduce { $a < $b ? $a : $b } 1..10 # min - $foo = reduce { $a lt $b ? $a : $b } 'aa'..'zz' # minstr - $foo = reduce { $a + $b } 1 .. 10 # sum - $foo = reduce { $a . $b } @bar # concat - - $foo = reduce { $a || $code->(local $_ = $b) } 0, @bar # any - $foo = reduce { $a && $code->(local $_ = $b) } 1, @bar # all - $foo = reduce { $a && !$code->(local $_ = $b) } 1, @bar # none - $foo = reduce { $a || !$code->(local $_ = $b) } 0, @bar # notall - # Note that these implementations do not fully short-circuit - -If your algorithm requires that C produce an identity value, then make -sure that you always pass that identity value as the first argument to prevent -C being returned - - $foo = reduce { $a + $b } 0, @values; # sum with 0 identity value - -The above example code blocks also suggest how to use C to build a -more efficient combined version of one of these basic functions and a C -block. For example, to find the total length of all the strings in a list, -we could use - - $total = sum map { length } @strings; - -However, this produces a list of temporary integer values as long as the -original list of strings, only to reduce it down to a single value again. We -can compute the same result more efficiently by using C with a code -block that accumulates lengths by writing this instead as: - - $total = reduce { $a + length $b } 0, @strings - -The remaining list-reduction functions are all specialisations of this generic -idea. - -=head2 any - - my $bool = any { BLOCK } @list; - -I - -Similar to C in that it evaluates C setting C<$_> to each element -of C<@list> in turn. C returns true if any element makes the C -return a true value. If C never returns true or C<@list> was empty then -it returns false. - -Many cases of using C in a conditional can be written using C -instead, as it can short-circuit after the first true result. - - if( any { length > 10 } @strings ) { - # at least one string has more than 10 characters - } - -Note: Due to XS issues the block passed may be able to access the outer @_ -directly. This is not intentional and will break under debugger. - -=head2 all - - my $bool = all { BLOCK } @list; - -I - -Similar to L, except that it requires all elements of the C<@list> to -make the C return true. If any element returns false, then it returns -false. If the C never returns false or the C<@list> was empty then it -returns true. - -Note: Due to XS issues the block passed may be able to access the outer @_ -directly. This is not intentional and will break under debugger. - -=head2 none - -=head2 notall - - my $bool = none { BLOCK } @list; - - my $bool = notall { BLOCK } @list; - -I - -Similar to L and L, but with the return sense inverted. C -returns true only if no value in the C<@list> causes the C to return -true, and C returns true only if not all of the values do. - -Note: Due to XS issues the block passed may be able to access the outer @_ -directly. This is not intentional and will break under debugger. - -=head2 first - - my $val = first { BLOCK } @list; - -Similar to C in that it evaluates C setting C<$_> to each element -of C<@list> in turn. C returns the first element where the result from -C is a true value. If C never returns true or C<@list> was empty -then C is returned. - - $foo = first { defined($_) } @list # first defined value in @list - $foo = first { $_ > $value } @list # first value in @list which - # is greater than $value - -=head2 max - - my $num = max @list; - -Returns the entry in the list with the highest numerical value. If the list is -empty then C is returned. - - $foo = max 1..10 # 10 - $foo = max 3,9,12 # 12 - $foo = max @bar, @baz # whatever - -=head2 maxstr - - my $str = maxstr @list; - -Similar to L, but treats all the entries in the list as strings and -returns the highest string as defined by the C operator. If the list is -empty then C is returned. - - $foo = maxstr 'A'..'Z' # 'Z' - $foo = maxstr "hello","world" # "world" - $foo = maxstr @bar, @baz # whatever - -=head2 min - - my $num = min @list; - -Similar to L but returns the entry in the list with the lowest numerical -value. If the list is empty then C is returned. - - $foo = min 1..10 # 1 - $foo = min 3,9,12 # 3 - $foo = min @bar, @baz # whatever - -=head2 minstr - - my $str = minstr @list; - -Similar to L, but treats all the entries in the list as strings and -returns the lowest string as defined by the C operator. If the list is -empty then C is returned. - - $foo = minstr 'A'..'Z' # 'A' - $foo = minstr "hello","world" # "hello" - $foo = minstr @bar, @baz # whatever - -=head2 product - - my $num = product @list; - -I - -Returns the numerical product of all the elements in C<@list>. If C<@list> is -empty then C<1> is returned. - - $foo = product 1..10 # 3628800 - $foo = product 3,9,12 # 324 - -=head2 sum - - my $num_or_undef = sum @list; - -Returns the numerical sum of all the elements in C<@list>. For backwards -compatibility, if C<@list> is empty then C is returned. - - $foo = sum 1..10 # 55 - $foo = sum 3,9,12 # 24 - $foo = sum @bar, @baz # whatever - -=head2 sum0 - - my $num = sum0 @list; - -I - -Similar to L, except this returns 0 when given an empty list, rather -than C. - -=cut - -=head1 KEY/VALUE PAIR LIST FUNCTIONS - -The following set of functions, all inspired by L, consume an -even-sized list of pairs. The pairs may be key/value associations from a hash, -or just a list of values. The functions will all preserve the original ordering -of the pairs, and will not be confused by multiple pairs having the same "key" -value - nor even do they require that the first of each pair be a plain string. - -B: At the time of writing, the following C functions that take a -block do not modify the value of C<$_> within the block, and instead operate -using the C<$a> and C<$b> globals instead. This has turned out to be a poor -design, as it precludes the ability to provide a C function. Better -would be to pass pair-like objects as 2-element array references in C<$_>, in -a style similar to the return value of the C function. At some future -version this behaviour may be added. - -Until then, users are alerted B to rely on the value of C<$_> remaining -unmodified between the outside and the inside of the control block. In -particular, the following example is B: - - my @kvlist = ... - - foreach (qw( some keys here )) { - my @items = pairgrep { $a eq $_ } @kvlist; - ... - } - -Instead, write this using a lexical variable: - - foreach my $key (qw( some keys here )) { - my @items = pairgrep { $a eq $key } @kvlist; - ... - } - -=cut - -=head2 pairs - - my @pairs = pairs @kvlist; - -I - -A convenient shortcut to operating on even-sized lists of pairs, this function -returns a list of C references, each containing two items from the -given list. It is a more efficient version of - - @pairs = pairmap { [ $a, $b ] } @kvlist - -It is most convenient to use in a C loop, for example: - - foreach my $pair ( pairs @kvlist ) { - my ( $key, $value ) = @$pair; - ... - } - -Since version C<1.39> these C references are blessed objects, -recognising the two methods C and C. The following code is -equivalent: - - foreach my $pair ( pairs @kvlist ) { - my $key = $pair->key; - my $value = $pair->value; - ... - } - -=head2 unpairs - - my @kvlist = unpairs @pairs - -I - -The inverse function to C; this function takes a list of C -references containing two elements each, and returns a flattened list of the -two values from each of the pairs, in order. This is notionally equivalent to - - my @kvlist = map { @{$_}[0,1] } @pairs - -except that it is implemented more efficiently internally. Specifically, for -any input item it will extract exactly two values for the output list; using -C if the input array references are short. - -Between C and C, a higher-order list function can be used to -operate on the pairs as single scalars; such as the following near-equivalents -of the other C higher-order functions: - - @kvlist = unpairs grep { FUNC } pairs @kvlist - # Like pairgrep, but takes $_ instead of $a and $b - - @kvlist = unpairs map { FUNC } pairs @kvlist - # Like pairmap, but takes $_ instead of $a and $b - -Note however that these versions will not behave as nicely in scalar context. - -Finally, this technique can be used to implement a sort on a keyvalue pair -list; e.g.: - - @kvlist = unpairs sort { $a->key cmp $b->key } pairs @kvlist - -=head2 pairkeys - - my @keys = pairkeys @kvlist; - -I - -A convenient shortcut to operating on even-sized lists of pairs, this function -returns a list of the the first values of each of the pairs in the given list. -It is a more efficient version of - - @keys = pairmap { $a } @kvlist - -=head2 pairvalues - - my @values = pairvalues @kvlist; - -I - -A convenient shortcut to operating on even-sized lists of pairs, this function -returns a list of the the second values of each of the pairs in the given list. -It is a more efficient version of - - @values = pairmap { $b } @kvlist - -=head2 pairgrep - - my @kvlist = pairgrep { BLOCK } @kvlist; - - my $count = pairgrep { BLOCK } @kvlist; - -I - -Similar to perl's C keyword, but interprets the given list as an -even-sized list of pairs. It invokes the C multiple times, in scalar -context, with C<$a> and C<$b> set to successive pairs of values from the -C<@kvlist>. - -Returns an even-sized list of those pairs for which the C returned true -in list context, or the count of the B in scalar context. -(Note, therefore, in scalar context that it returns a number half the size of -the count of items it would have returned in list context). - - @subset = pairgrep { $a =~ m/^[[:upper:]]+$/ } @kvlist - -As with C aliasing C<$_> to list elements, C aliases C<$a> and -C<$b> to elements of the given list. Any modifications of it by the code block -will be visible to the caller. - -=head2 pairfirst - - my ( $key, $val ) = pairfirst { BLOCK } @kvlist; - - my $found = pairfirst { BLOCK } @kvlist; - -I - -Similar to the L function, but interprets the given list as an -even-sized list of pairs. It invokes the C multiple times, in scalar -context, with C<$a> and C<$b> set to successive pairs of values from the -C<@kvlist>. - -Returns the first pair of values from the list for which the C returned -true in list context, or an empty list of no such pair was found. In scalar -context it returns a simple boolean value, rather than either the key or the -value found. - - ( $key, $value ) = pairfirst { $a =~ m/^[[:upper:]]+$/ } @kvlist - -As with C aliasing C<$_> to list elements, C aliases C<$a> and -C<$b> to elements of the given list. Any modifications of it by the code block -will be visible to the caller. - -=head2 pairmap - - my @list = pairmap { BLOCK } @kvlist; - - my $count = pairmap { BLOCK } @kvlist; - -I - -Similar to perl's C keyword, but interprets the given list as an -even-sized list of pairs. It invokes the C multiple times, in list -context, with C<$a> and C<$b> set to successive pairs of values from the -C<@kvlist>. - -Returns the concatenation of all the values returned by the C in list -context, or the count of the number of items that would have been returned in -scalar context. - - @result = pairmap { "The key $a has value $b" } @kvlist - -As with C aliasing C<$_> to list elements, C aliases C<$a> and -C<$b> to elements of the given list. Any modifications of it by the code block -will be visible to the caller. - -See L for a known-bug with C, and a workaround. - -=cut - -=head1 OTHER FUNCTIONS - -=cut - -=head2 shuffle - - my @values = shuffle @values; - -Returns the values of the input in a random order - - @cards = shuffle 0..51 # 0..51 in a random order - -=head2 uniq - - my @subset = uniq @values - -I - -Filters a list of values to remove subsequent duplicates, as judged by a -DWIM-ish string equality or C test. Preserves the order of unique -elements, and retains the first value of any duplicate set. - - my $count = uniq @values - -In scalar context, returns the number of elements that would have been -returned as a list. - -The C value is treated by this function as distinct from the empty -string, and no warning will be produced. It is left as-is in the returned -list. Subsequent C values are still considered identical to the first, -and will be removed. - -=head2 uniqnum - - my @subset = uniqnum @values - -I - -Filters a list of values to remove subsequent duplicates, as judged by a -numerical equality test. Preserves the order of unique elements, and retains -the first value of any duplicate set. - - my $count = uniqnum @values - -In scalar context, returns the number of elements that would have been -returned as a list. - -Note that C is treated much as other numerical operations treat it; it -compares equal to zero but additionally produces a warning if such warnings -are enabled (C). In addition, an C in -the returned list is coerced into a numerical zero, so that the entire list of -values returned by C are well-behaved as numbers. - -Note also that multiple IEEE C values are treated as duplicates of -each other, regardless of any differences in their payloads, and despite -the fact that C<< 0+'NaN' == 0+'NaN' >> yields false. - -=head2 uniqstr - - my @subset = uniqstr @values - -I - -Filters a list of values to remove subsequent duplicates, as judged by a -string equality test. Preserves the order of unique elements, and retains the -first value of any duplicate set. - - my $count = uniqstr @values - -In scalar context, returns the number of elements that would have been -returned as a list. - -Note that C is treated much as other string operations treat it; it -compares equal to the empty string but additionally produces a warning if such -warnings are enabled (C). In addition, an -C in the returned list is coerced into an empty string, so that the -entire list of values returned by C are well-behaved as strings. - -=cut - -=head2 head - - my @values = head $size, @list; - -Returns the first C<$size> elements from C<@list>. If C<$size> is negative, returns -all but the last C<$size> elements from C<@list>. - - @result = head 2, qw( foo bar baz ); - # foo, bar - - @result = head -2, qw( foo bar baz ); - # foo - -=head2 tail - - my @values = tail $size, @list; - -Returns the last C<$size> elements from C<@list>. If C<$size> is negative, returns -all but the first C<$size> elements from C<@list>. - - @result = tail 2, qw( foo bar baz ); - # bar, baz - - @result = tail -2, qw( foo bar baz ); - # baz - -=head1 KNOWN BUGS - -=head2 RT #95409 - -L - -If the block of code given to L contains lexical variables that are -captured by a returned closure, and the closure is executed after the block -has been re-used for the next iteration, these lexicals will not see the -correct values. For example: - - my @subs = pairmap { - my $var = "$a is $b"; - sub { print "$var\n" }; - } one => 1, two => 2, three => 3; - - $_->() for @subs; - -Will incorrectly print - - three is 3 - three is 3 - three is 3 - -This is due to the performance optimisation of using C for the code -block, which means that fresh SVs do not get allocated for each call to the -block. Instead, the same SV is re-assigned for each iteration, and all the -closures will share the value seen on the final iteration. - -To work around this bug, surround the code with a second set of braces. This -creates an inner block that defeats the C logic, and does get fresh -SVs allocated each time: - - my @subs = pairmap { - { - my $var = "$a is $b"; - sub { print "$var\n"; } - } - } one => 1, two => 2, three => 3; - -This bug only affects closures that are generated by the block but used -afterwards. Lexical variables that are only used during the lifetime of the -block's execution will take their individual values for each invocation, as -normal. - -=head2 uniqnum() on oversized bignums - -Due to the way that C compares numbers, it cannot distinguish -differences between bignums (especially bigints) that are too large to fit in -the native platform types. For example, - - my $x = Math::BigInt->new( "1" x 100 ); - my $y = $x + 1; - - say for uniqnum( $x, $y ); - -Will print just the value of C<$x>, believing that C<$y> is a numerically- -equivalent value. This bug does not affect C, which will correctly -observe that the two values stringify to different strings. - -=head1 SUGGESTED ADDITIONS - -The following are additions that have been requested, but I have been reluctant -to add due to them being very simple to implement in perl - - # How many elements are true - - sub true { scalar grep { $_ } @_ } - - # How many elements are false - - sub false { scalar grep { !$_ } @_ } - -=head1 SEE ALSO - -L, L - -=head1 COPYRIGHT - -Copyright (c) 1997-2007 Graham Barr . All rights reserved. -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -Recent additions and current maintenance by -Paul Evans, . - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/List/Util/XS.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/List/Util/XS.pm deleted file mode 100644 index c8c066f8..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/List/Util/XS.pm +++ /dev/null @@ -1,42 +0,0 @@ -package List::Util::XS; -use strict; -use warnings; -use List::Util; - -our $VERSION = "1.50"; # FIXUP -$VERSION = eval $VERSION; # FIXUP - -1; -__END__ - -=head1 NAME - -List::Util::XS - Indicate if List::Util was compiled with a C compiler - -=head1 SYNOPSIS - - use List::Util::XS 1.20; - -=head1 DESCRIPTION - -C can be used as a dependency to ensure List::Util was -installed using a C compiler and that the XS version is installed. - -During installation C<$List::Util::XS::VERSION> will be set to -C if the XS was not compiled. - -Starting with release 1.23_03, Scalar-List-Util is B using -the XS implementation, but for backwards compatibility, we still -ship the C module which just loads C. - -=head1 SEE ALSO - -L, L, L - -=head1 COPYRIGHT - -Copyright (c) 2008 Graham Barr . All rights reserved. -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL.pm deleted file mode 100644 index 45bc9505..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL.pm +++ /dev/null @@ -1,6366 +0,0 @@ -package OpenGL; - -# Copyright (c) 1998,1999 Kenneth Albanowski. All rights reserved. -# Copyright (c) 2007 Bob Free. All rights reserved. -# Copyright (c) 2009 Christopher Marshall. All rights reserved. -# Copyright (c) 2015 Bob Free. All rights reserved. -# Copyright (c) 2016 Chris Marshall. All rights reserved. -# This program is free software; you can redistribute it and/or -# modify it under the same terms as Perl itself. - -require Exporter; -require DynaLoader; - -use Carp; - -$VERSION = '0.70'; -$BUILD_VERSION = $XS_VERSION = $VERSION; -$VERSION = eval($VERSION); - -@ISA = qw(Exporter AutoLoader DynaLoader); - -our $gl_version; -our $glext_installed = {}; - -# Implemented extensions and their dependencies -our $glext_dependencies = -{ - GL_ARB_color_buffer_float=>'2.0', #39 - GL_ARB_depth_texture=>'1.1', #22 - GL_ARB_draw_buffers=>'1.3', #37 - GL_ARB_fragment_program=>'1.4;ARB_vertex_program', #27 - GL_ARB_fragment_program_shadow=>'1.4;ARB_fragment_program,ARB_shadow', #36 - GL_ARB_fragment_shader=>'1.4;ARB_shader_objects', #32 - GL_ARB_half_float_pixel=>'1.5', #40 - GL_ARB_multisample=>'1.0', #5 - GL_ARB_multitexture=>'1.1', # Moved to 1.2.1 - GL_ARB_pixel_buffer_object=>'1.5', #42 - GL_ARB_point_parameters=>'1.0', #14 - GL_ARB_point_sprite=>'1.4', #35 - GL_ARB_shading_language_100=>'1.4;ARB_shader_objects,ARB_fragment_shader,ARB_vertex_shader', #33 - GL_ARB_shader_objects=>'1.4', #30 - GL_ARB_shadow=>'1.1;ARB_depth_texture', #23 - GL_ARB_shadow_ambient=>'1.1;ARB_shadow,ARB_depth_texture', #23 - GL_ARB_texture_border_clamp=>'1.0', #13 - GL_ARB_texture_cube_map=>'1.0', #7 - GL_ARB_texture_env_add=>'1.0', #6 - GL_ARB_texture_env_combine=>'1.1;ARB_multitexture', #17 - GL_ARB_texture_env_dot3=>'1.1;ARB_multitexture,ARB_texture_env_combine', #19 - GL_ARB_texture_float=>'1.1', #41 - GL_ARB_texture_mirrored_repeat=>'1.0', #21 - GL_ARB_texture_non_power_of_two=>'1.4', #34 - GL_ARB_texture_rectangle=>'1.1', #38 - GL_ARB_vertex_buffer_object=>'1.4', #28 - GL_ARB_vertex_program=>'1.3', #26 - GL_ARB_vertex_shader=>'1.4;ARB_shader_objects', #31 - GL_ATI_texture_float=>'1.1', #280 - GL_ATI_texture_mirror_once=>'1.0;EXT_texture3D', #221 - GL_EXT_abgr=>'1.0', #1 - GL_EXT_bgra=>'1.0', #129 - GL_EXT_blend_color=>'1.0', #2 - GL_EXT_blend_subtract=>'1.0', #38 - GL_EXT_Cg_shader=>'1.0;ARB_shader_objects', #??? - GL_EXT_copy_texture=>'1.0', #10 - GL_EXT_framebuffer_object=>'1.1', #310 - GL_EXT_packed_pixels=>'1.0', #23 - GL_EXT_pixel_buffer_object=>'1.0', #??? - GL_EXT_rescale_normal=>'1.0', #27 - GL_EXT_separate_specular_color=>'1.0', #144 - GL_EXT_shadow_funcs=>'1.1;ARB_depth_texture,ARB_shadow', #267 - GL_EXT_stencil_wrap=>'1.0', #176 - GL_EXT_subtexture=>'1.0', #9 - GL_EXT_texture=>'1.0', #4 - GL_EXT_texture3D=>'1.1;EXT_abgr', #6 - GL_EXT_texture_cube_map=>'1.0', #6 - GL_EXT_texture_env_combine=>'1.0', #158 - GL_EXT_texture_env_dot3=>'1.0;EXT_texture_env_combine', #220 - GL_EXT_texture_filter_anisotropic=>'1.0', #187 - GL_EXT_texture_lod_bias=>'1.0', #186 - GL_EXT_texture_mirror_clamp=>'1.0', #298 - GL_EXT_vertex_array=>'1.0', #30 - GL_HP_occlusion_test=>'1.0', #137 - GL_IBM_rasterpos_clip=>'1.0', #110 - GL_NV_blend_square=>'1.0', #194 - GL_NV_copy_depth_to_color=>'1.0;NV_packed_depth_stencil', #243 - GL_NV_depth_clamp=>'1.0', #260 - GL_NV_fog_distance=>'1.0', #192 - GL_NV_fragment_program_option=>'1.0;ARB_fragment_program', #303 - GL_NV_fragment_program2=>'1.0;ARB_fragment_program,NV_fragment_program_option', #304 - GL_NV_light_max_exponent=>'1.0', #189 - GL_NV_multisample_filter_hint=>'1.0;ARB_multisample', #259 - GL_NV_packed_depth_stencil=>'1.0', #226 - GL_NV_texgen_reflection=>'1.0', #179 - GL_NV_texture_compression_vtc=>'1.0;ARB_texture_compression,EXT_texture_compression_s3tc,ARB_texture_non_power_of_two', #228 - GL_NV_texture_expand_normal=>'1.1', #286 - GL_NV_texture_rectangle=>'1.0', #229 - GL_NV_texture_shader=>'1.0;ARB_multitexture,ARB_texture_cube_map', #230 - GL_NV_texture_shader2=>'1.0;NV_texture_shader', #231 - GL_NV_texture_shader3=>'1.0;NV_texture_shader2', #265 - GL_NV_vertex_program1_1=>'1.0;NV_vertex_program', #266 - GL_NV_vertex_program2=>'1.0;NV_vertex_program', #287 - GL_NV_vertex_program2_option=>'1.0;ARB_vertex_program', #305 - GL_NV_vertex_program3=>'1.0;ARB_vertex_program,NV_vertex_program2_option', #306 - GL_S3_s3tc=>'1.1', #276 - GL_SGIS_generate_mipmap=>'1.1', #32 - GL_SGIS_texture_lod=>'1.1', #24 - GL_SGIX_depth_texture=>'1.1', #63 - GL_SGIX_shadow=>'1.0', #34 - GL_SUN_slice_accum=>'1.0' #258 -}; - - -@gl_func = qw( - glAccum - glAlphaFunc - glAreTexturesResident_s - glAreTexturesResident_c - glAreTexturesResident_p - glArrayElement - glBegin - glEnd - glBindTexture - glBitmap_s - glBitmap_c - glBitmap_p - glBlendFunc - glCallList - glCallLists_s - glCallLists_c - glCallLists_p - glClear - glClearAccum - glClearColor - glClearDepth - glClearIndex - glClearStencil - glClipPlane_p - glClipPlane_s - glClipPlane_c - glColorMask - glColorMaterial - glColorPointer_c - glColorPointer_s - glColorPointer_p - glCopyPixels - glCopyTexImage1D - glCopyTexImage2D - glCopyTexSubImage1D - glCopyTexSubImage2D - glCopyTexSubImage3D - glCullFace - glDeleteLists - glDeleteTextures_s - glDeleteTextures_c - glDeleteTextures_p - glDepthFunc - glDepthMask - glDepthRange - glDrawArrays - glDrawBuffer - glDrawBuffers_s - glDrawBuffers_c - glDrawBuffers_p - glDrawBuffersARB_s - glDrawBuffersARB_c - glDrawBuffersARB_p - glDrawElements_s - glDrawElements_c - glDrawElements_p - glDrawPixels_s - glDrawPixels_c - glDrawPixels_p - glDrawRangeElements_s - glDrawRangeElements_c - glDrawRangeElements_p - glEdgeFlag - glEdgeFlagPointer_c - glEdgeFlagPointer_s - glEdgeFlagPointer_p - glEnable - glDisable - glEnableClientState - glDisableClientState - glEvalCoord1d - glEvalCoord1f - glEvalCoord2d - glEvalCoord2f - glEvalMesh1 - glEvalMesh2 - glEvalPoint1 - glEvalPoint2 - glFeedbackBuffer_c - glFinish - glFlush - glFogf - glFogi - glFogfv_p - glFogiv_p - glFogfv_s - glFogiv_s - glFogfv_c - glFogiv_c - glFrontFace - glFrustum - glGenLists - glGenTextures_s - glGenTextures_c - glGenTextures_p - glGetDoublev_s - glGetDoublev_c - glGetBooleanv_s - glGetBooleanv_c - glGetIntegerv_s - glGetIntegerv_c - glGetFloatv_s - glGetFloatv_c - glGetDoublev_p - glGetBooleanv_p - glGetIntegerv_p - glGetFloatv_p - glGetClipPlane_p - glGetClipPlane_s - glGetClipPlane_c - glGetError - glGetLightfv_p - glGetLightiv_p - glGetLightfv_c - glGetLightiv_c - glGetLightfv_s - glGetLightiv_s - glGetMapfv_p - glGetMapdv_p - glGetMapiv_p - glGetMapiv_c - glGetMapfv_c - glGetMapdv_c - glGetMapdv_s - glGetMapfv_s - glGetMapiv_s - glGetMaterialfv_p - glGetMaterialiv_p - glGetMaterialfv_c - glGetMaterialiv_c - glGetMaterialfv_s - glGetMaterialiv_s - glGetPixelMapfv_p - glGetPixelMapuiv_p - glGetPixelMapusv_p - glGetPixelMapfv_c - glGetPixelMapuiv_c - glGetPixelMapusv_c - glGetPixelMapfv_s - glGetPixelMapuiv_s - glGetPixelMapusv_s - glGetPolygonStipple_s - glGetPolygonStipple_c - glGetPolygonStipple_p - glGetPointerv_c - glGetPointerv_s - glGetPointerv_p - glGetString - glGetTexEnvfv_p - glGetTexEnviv_p - glGetTexEnvfv_c - glGetTexEnviv_c - glGetTexEnvfv_s - glGetTexEnviv_s - glGetTexGenfv_p - glGetTexGendv_p - glGetTexGeniv_p - glGetTexGenfv_c - glGetTexGendv_c - glGetTexGeniv_c - glGetTexGendv_s - glGetTexGenfv_s - glGetTexGeniv_s - glGetTexImage_s - glGetTexImage_c - glGetTexImage_p - glGetTexLevelParameterfv_p - glGetTexLevelParameteriv_p - glGetTexLevelParameterfv_s - glGetTexLevelParameteriv_s - glGetTexLevelParameterfv_c - glGetTexLevelParameteriv_c - glGetTexParameterfv_p - glGetTexParameteriv_p - glGetTexParameterfv_s - glGetTexParameteriv_s - glGetTexParameterfv_c - glGetTexParameteriv_c - glHint - glIndexd - glIndexi - glIndexMask - glIndexPointer_c - glIndexPointer_s - glIndexPointer_p - glInitNames - glInterleavedArrays_c - glIsEnabled - glIsList - glIsTexture - glLightf - glLighti - glLightfv_p - glLightiv_p - glLightfv_c - glLightiv_c - glLightfv_s - glLightiv_s - glLightModelf - glLightModeli - glLightModelfv_p - glLightModeliv_p - glLightModeliv_c - glLightModelfv_c - glLightModeliv_s - glLightModelfv_s - glLineStipple - glLineWidth - glListBase - glLoadIdentity - glLoadMatrixd_p - glLoadMatrixf_p - glLoadMatrixf_c - glLoadMatrixd_c - glLoadMatrixf_s - glLoadMatrixd_s - glLoadName - glLogicOp - glMap1d_p - glMap1f_p - glMap1d_c - glMap1f_c - glMap1d_s - glMap1f_s - glMap2d_p - glMap2f_p - glMap2d_c - glMap2f_c - glMap2d_s - glMap2f_s - glMapGrid1d - glMapGrid1f - glMapGrid2d - glMapGrid2f - glMaterialf - glMateriali - glMaterialfv_p - glMaterialiv_p - glMaterialfv_s - glMaterialiv_s - glMaterialfv_c - glMaterialiv_c - glMatrixMode - glMultMatrixd_p - glMultMatrixf_p - glNewList - glEndList - glNormalPointer_c - glNormalPointer_s - glNormalPointer_p - glOrtho - glPassThrough - glPixelMapfv_p - glPixelMapuiv_p - glPixelMapusv_p - glPixelMapfv_c - glPixelMapuiv_c - glPixelMapusv_c - glPixelMapfv_s - glPixelMapuiv_s - glPixelMapusv_s - glPixelStoref - glPixelStorei - glPixelTransferf - glPixelTransferi - glPixelZoom - glPointSize - glPolygonMode - glPolygonOffset - glPolygonStipple_s - glPolygonStipple_c - glPolygonStipple_p - glPrioritizeTextures_s - glPrioritizeTextures_c - glPrioritizeTextures_p - glPushAttrib - glPopAttrib - glPushClientAttrib - glPopClientAttrib - glPushMatrix - glPopMatrix - glPushName - glPopName - glReadBuffer - glReadPixels_s - glReadPixels_c - glReadPixels_p - glRecti - glRects - glRectd - glRectf - glRectsv_c - glRectiv_c - glRectfv_c - glRectdv_c - glRectdv_s - glRectfv_s - glRectiv_s - glRectsv_s - glRenderMode - glRotated - glRotatef - glScaled - glScalef - glScissor - glSelectBuffer_c - glShadeModel - glStencilFunc - glStencilMask - glStencilOp - glTexCoordPointer_c - glTexCoordPointer_s - glTexCoordPointer_p - glTexEnvf - glTexEnvi - glTexEnvfv_p - glTexEnviv_p - glTexEnvfv_s - glTexEnviv_s - glTexGend - glTexGenf - glTexGeni - glTexGendv_p - glTexGenfv_p - glTexGeniv_p - glTexGendv_s - glTexGenfv_s - glTexGeniv_s - glTexGendv_c - glTexGenfv_c - glTexGeniv_c - glTexImage1D_s - glTexImage1D_c - glTexImage1D_p - glTexImage2D_s - glTexImage2D_c - glTexImage2D_p - glTexImage3D_s - glTexImage3D_c - glTexImage3D_p - glTexImage3DEXT_c - glTexImage3DEXT_s - glTexImage3DEXT_p - glTexParameterf - glTexParameteri - glTexParameterfv_p - glTexParameteriv_p - glTexParameterfv_s - glTexParameteriv_s - glTexParameterfv_c - glTexParameteriv_c - glTexSubImage1D_c - glTexSubImage1D_s - glTexSubImage1D_p - glTexSubImage2D_s - glTexSubImage2D_c - glTexSubImage2D_p - glTexSubImage3D_s - glTexSubImage3D_c - glTexSubImage3D_p - glTexSubImage1DEXT_c - glTexSubImage1DEXT_s - glTexSubImage1DEXT_p - glTexSubImage2DEXT_c - glTexSubImage2DEXT_s - glTexSubImage2DEXT_p - glTranslated - glTranslatef - glVertexPointer_c - glVertexPointer_s - glVertexPointer_p - glViewport - glVertex2d - glVertex2dv_p - glVertex2dv_s - glVertex2dv_c - glVertex2f - glVertex2fv_p - glVertex2fv_s - glVertex2fv_c - glVertex2i - glVertex2iv_p - glVertex2iv_s - glVertex2iv_c - glVertex2s - glVertex2sv_p - glVertex2sv_s - glVertex2sv_c - glVertex3d - glVertex3dv_p - glVertex3dv_s - glVertex3dv_c - glVertex3f - glVertex3fv_p - glVertex3fv_s - glVertex3fv_c - glVertex3i - glVertex3iv_p - glVertex3iv_s - glVertex3iv_c - glVertex3s - glVertex3sv_p - glVertex3sv_s - glVertex3sv_c - glVertex4d - glVertex4dv_p - glVertex4dv_s - glVertex4dv_c - glVertex4f - glVertex4fv_p - glVertex4fv_s - glVertex4fv_c - glVertex4i - glVertex4iv_p - glVertex4iv_s - glVertex4iv_c - glVertex4s - glVertex4sv_p - glVertex4sv_s - glVertex4sv_c - glNormal3b - glNormal3bv_p - glNormal3bv_s - glNormal3bv_c - glNormal3d - glNormal3dv_p - glNormal3dv_s - glNormal3dv_c - glNormal3f - glNormal3fv_p - glNormal3fv_s - glNormal3fv_c - glNormal3i - glNormal3iv_p - glNormal3iv_s - glNormal3iv_c - glNormal3s - glNormal3sv_p - glNormal3sv_s - glNormal3sv_c - glColor3b - glColor3bv_p - glColor3bv_s - glColor3bv_c - glColor3d - glColor3dv_p - glColor3dv_s - glColor3dv_c - glColor3f - glColor3fv_p - glColor3fv_s - glColor3fv_c - glColor3i - glColor3iv_p - glColor3iv_s - glColor3iv_c - glColor3s - glColor3sv_p - glColor3sv_s - glColor3sv_c - glColor3ub - glColor3ubv_p - glColor3ubv_s - glColor3ubv_c - glColor3ui - glColor3uiv_p - glColor3uiv_s - glColor3uiv_c - glColor3us - glColor3usv_p - glColor3usv_s - glColor3usv_c - glColor4b - glColor4bv_p - glColor4bv_s - glColor4bv_c - glColor4d - glColor4dv_p - glColor4dv_s - glColor4dv_c - glColor4f - glColor4fv_p - glColor4fv_s - glColor4fv_c - glColor4i - glColor4iv_p - glColor4iv_s - glColor4iv_c - glColor4s - glColor4sv_p - glColor4sv_s - glColor4sv_c - glColor4ub - glColor4ubv_p - glColor4ubv_s - glColor4ubv_c - glColor4ui - glColor4uiv_p - glColor4uiv_s - glColor4uiv_c - glColor4us - glColor4usv_p - glColor4usv_s - glColor4usv_c - glTexCoord1d - glTexCoord1dv_p - glTexCoord1dv_s - glTexCoord1dv_c - glTexCoord1f - glTexCoord1fv_p - glTexCoord1fv_s - glTexCoord1fv_c - glTexCoord1i - glTexCoord1iv_p - glTexCoord1iv_s - glTexCoord1iv_c - glTexCoord1s - glTexCoord1sv_p - glTexCoord1sv_s - glTexCoord1sv_c - glTexCoord2d - glTexCoord2dv_p - glTexCoord2dv_s - glTexCoord2dv_c - glTexCoord2f - glTexCoord2fv_p - glTexCoord2fv_s - glTexCoord2fv_c - glTexCoord2i - glTexCoord2iv_p - glTexCoord2iv_s - glTexCoord2iv_c - glTexCoord2s - glTexCoord2sv_p - glTexCoord2sv_s - glTexCoord2sv_c - glTexCoord3d - glTexCoord3dv_p - glTexCoord3dv_s - glTexCoord3dv_c - glTexCoord3f - glTexCoord3fv_p - glTexCoord3fv_s - glTexCoord3fv_c - glTexCoord3i - glTexCoord3iv_p - glTexCoord3iv_s - glTexCoord3iv_c - glTexCoord3s - glTexCoord3sv_p - glTexCoord3sv_s - glTexCoord3sv_c - glTexCoord4d - glTexCoord4dv_p - glTexCoord4dv_s - glTexCoord4dv_c - glTexCoord4f - glTexCoord4fv_p - glTexCoord4fv_s - glTexCoord4fv_c - glTexCoord4i - glTexCoord4iv_p - glTexCoord4iv_s - glTexCoord4iv_c - glTexCoord4s - glTexCoord4sv_p - glTexCoord4sv_s - glTexCoord4sv_c - glRasterPos2d - glRasterPos2dv_p - glRasterPos2dv_s - glRasterPos2dv_c - glRasterPos2f - glRasterPos2fv_p - glRasterPos2fv_s - glRasterPos2fv_c - glRasterPos2i - glRasterPos2iv_p - glRasterPos2iv_s - glRasterPos2iv_c - glRasterPos2s - glRasterPos2sv_p - glRasterPos2sv_s - glRasterPos2sv_c - glRasterPos3d - glRasterPos3dv_p - glRasterPos3dv_s - glRasterPos3dv_c - glRasterPos3f - glRasterPos3fv_p - glRasterPos3fv_s - glRasterPos3fv_c - glRasterPos3i - glRasterPos3iv_p - glRasterPos3iv_s - glRasterPos3iv_c - glRasterPos3s - glRasterPos3sv_p - glRasterPos3sv_s - glRasterPos3sv_c - glRasterPos4d - glRasterPos4dv_p - glRasterPos4dv_s - glRasterPos4dv_c - glRasterPos4f - glRasterPos4fv_p - glRasterPos4fv_s - glRasterPos4fv_c - glRasterPos4i - glRasterPos4iv_p - glRasterPos4iv_s - glRasterPos4iv_c - glRasterPos4s - glRasterPos4sv_p - glRasterPos4sv_s - glRasterPos4sv_c - - glActiveTexture - glClientActiveTexture - glMultiTexCoord1d - glMultiTexCoord1dv_c - glMultiTexCoord1dv_s - glMultiTexCoord1dv_p - glMultiTexCoord1f - glMultiTexCoord1fv_c - glMultiTexCoord1fv_s - glMultiTexCoord1fv_p - glMultiTexCoord1i - glMultiTexCoord1iv_c - glMultiTexCoord1iv_s - glMultiTexCoord1iv_p - glMultiTexCoord1s - glMultiTexCoord1sv_c - glMultiTexCoord1sv_s - glMultiTexCoord1sv_p - glMultiTexCoord2d - glMultiTexCoord2dv_c - glMultiTexCoord2dv_s - glMultiTexCoord2dv_p - glMultiTexCoord2f - glMultiTexCoord2fv_c - glMultiTexCoord2fv_s - glMultiTexCoord2fv_p - glMultiTexCoord2i - glMultiTexCoord2iv_c - glMultiTexCoord2iv_s - glMultiTexCoord2iv_p - glMultiTexCoord2s - glMultiTexCoord2sv_c - glMultiTexCoord2sv_s - glMultiTexCoord2sv_p - glMultiTexCoord3d - glMultiTexCoord3dv_c - glMultiTexCoord3dv_s - glMultiTexCoord3dv_p - glMultiTexCoord3f - glMultiTexCoord3fv_c - glMultiTexCoord3fv_s - glMultiTexCoord3fv_p - glMultiTexCoord3i - glMultiTexCoord3iv_c - glMultiTexCoord3iv_s - glMultiTexCoord3iv_p - glMultiTexCoord3s - glMultiTexCoord3sv_c - glMultiTexCoord3sv_s - glMultiTexCoord3sv_p - glMultiTexCoord4d - glMultiTexCoord4dv_c - glMultiTexCoord4dv_s - glMultiTexCoord4dv_p - glMultiTexCoord4f - glMultiTexCoord4fv_c - glMultiTexCoord4fv_s - glMultiTexCoord4fv_p - glMultiTexCoord4i - glMultiTexCoord4iv_c - glMultiTexCoord4iv_s - glMultiTexCoord4iv_p - glMultiTexCoord4s - glMultiTexCoord4sv_c - glMultiTexCoord4sv_s - glMultiTexCoord4sv_p - - glPolygonOffsetEXT - glIsTextureEXT - glPrioritizeTexturesEXT_p - glBindTextureEXT - glDeleteTexturesEXT_p - glGenTexturesEXT_p - glAreTexturesResidentEXT_p - glCopyTexImage1DEXT - glCopyTexImage2DEXT - glCopyTexSubImage1DEXT - glCopyTexSubImage2DEXT - glCopyTexSubImage3DEXT - glBlendEquationEXT - glBlendColorEXT - glArrayElementEXT - glDrawArraysEXT - glVertexPointerEXT_c - glVertexPointerEXT_s - glVertexPointerEXT_p - glNormalPointerEXT_c - glNormalPointerEXT_s - glNormalPointerEXT_p - glColorPointerEXT_c - glColorPointerEXT_s - glColorPointerEXT_p - glIndexPointerEXT_c - glIndexPointerEXT_s - glIndexPointerEXT_p - glTexCoordPointerEXT_c - glTexCoordPointerEXT_s - glTexCoordPointerEXT_p - glEdgeFlagPointerEXT_c - glEdgeFlagPointerEXT_s - glEdgeFlagPointerEXT_p - glWindowPos2iMESA - glWindowPos2dMESA - glWindowPos3iMESA - glWindowPos3dMESA - glWindowPos4iMESA - glWindowPos4dMESA - glResizeBuffersMESA - glIsRenderbufferEXT - glBindRenderbufferEXT - glDeleteRenderbuffersEXT_c - glDeleteRenderbuffersEXT_s - glDeleteRenderbuffersEXT_p - glGenRenderbuffersEXT_c - glGenRenderbuffersEXT_s - glGenRenderbuffersEXT_p - glRenderbufferStorageEXT - glGetRenderbufferParameterivEXT_c - glGetRenderbufferParameterivEXT_s - glIsFramebufferEXT - glBindFramebufferEXT - glDeleteFramebuffersEXT_c - glDeleteFramebuffersEXT_s - glDeleteFramebuffersEXT_p - glGenFramebuffersEXT_c - glGenFramebuffersEXT_s - glGenFramebuffersEXT_p - glCheckFramebufferStatusEXT - glFramebufferTexture1DEXT - glFramebufferTexture2DEXT - glFramebufferTexture3DEXT - glFramebufferRenderbufferEXT - glGetFramebufferAttachmentParameterivEXT_c - glGetFramebufferAttachmentParameterivEXT_s - glGenerateMipmapEXT - glVertexAttrib1dARB - glVertexAttrib1dvARB_c - glVertexAttrib1dvARB_s - glVertexAttrib1dvARB_p - glVertexAttrib1fARB - glVertexAttrib1fvARB_c - glVertexAttrib1fvARB_s - glVertexAttrib1fvARB_p - glVertexAttrib1sARB - glVertexAttrib1svARB_c - glVertexAttrib1svARB_s - glVertexAttrib1svARB_p - glVertexAttrib2dARB - glVertexAttrib2dvARB_c - glVertexAttrib2dvARB_s - glVertexAttrib2dvARB_p - glVertexAttrib2fARB - glVertexAttrib2fvARB_c - glVertexAttrib2fvARB_s - glVertexAttrib2fvARB_p - glVertexAttrib2sARB - glVertexAttrib2svARB_c - glVertexAttrib2svARB_s - glVertexAttrib2svARB_p - glVertexAttrib3dARB - glVertexAttrib3dvARB_c - glVertexAttrib3dvARB_s - glVertexAttrib3dvARB_p - glVertexAttrib3fARB - glVertexAttrib3fvARB_c - glVertexAttrib3fvARB_s - glVertexAttrib3fvARB_p - glVertexAttrib3sARB - glVertexAttrib3svARB_c - glVertexAttrib3svARB_s - glVertexAttrib3svARB_p - glVertexAttrib4NbvARB_c - glVertexAttrib4NbvARB_s - glVertexAttrib4NbvARB_p - glVertexAttrib4NivARB_c - glVertexAttrib4NivARB_s - glVertexAttrib4NivARB_p - glVertexAttrib4NsvARB_c - glVertexAttrib4NsvARB_s - glVertexAttrib4NsvARB_p - glVertexAttrib4NubARB - glVertexAttrib4NubvARB_c - glVertexAttrib4NubvARB_s - glVertexAttrib4NubvARB_p - glVertexAttrib4NuivARB_c - glVertexAttrib4NuivARB_s - glVertexAttrib4NuivARB_p - glVertexAttrib4NusvARB_c - glVertexAttrib4NusvARB_s - glVertexAttrib4NusvARB_p - glVertexAttrib4bvARB_c - glVertexAttrib4bvARB_s - glVertexAttrib4bvARB_p - glVertexAttrib4dARB - glVertexAttrib4dvARB_c - glVertexAttrib4dvARB_s - glVertexAttrib4dvARB_p - glVertexAttrib4fARB - glVertexAttrib4fvARB_c - glVertexAttrib4fvARB_s - glVertexAttrib4fvARB_p - glVertexAttrib4ivARB_s - glVertexAttrib4ivARB_c - glVertexAttrib4ivARB_p - glVertexAttrib4sARB - glVertexAttrib4svARB_c - glVertexAttrib4svARB_s - glVertexAttrib4svARB_p - glVertexAttrib4ubvARB_c - glVertexAttrib4ubvARB_s - glVertexAttrib4ubvARB_p - glVertexAttrib4uivARB_c - glVertexAttrib4uivARB_s - glVertexAttrib4uivARB_p - glVertexAttrib4usvARB_c - glVertexAttrib4usvARB_s - glVertexAttrib4usvARB_p - glVertexAttribPointerARB_c - glVertexAttribPointerARB_p - glEnableVertexAttribArrayARB - glDisableVertexAttribArrayARB - glProgramStringARB_c - glProgramStringARB_s - glProgramStringARB_p - glBindProgramARB - glDeleteProgramsARB_c - glDeleteProgramsARB_s - glDeleteProgramsARB_p - glGenProgramsARB_c - glGenProgramsARB_s - glGenProgramsARB_p - glProgramEnvParameter4dARB - glProgramEnvParameter4dvARB_c - glProgramEnvParameter4dvARB_s - glProgramEnvParameter4dvARB_p - glProgramEnvParameter4fARB - glProgramEnvParameter4fvARB_c - glProgramEnvParameter4fvARB_s - glProgramEnvParameter4fvARB_p - glProgramLocalParameter4dARB - glProgramLocalParameter4dvARB_c - glProgramLocalParameter4dvARB_s - glProgramLocalParameter4dvARB_p - glProgramLocalParameter4fARB - glProgramLocalParameter4fvARB_c - glProgramLocalParameter4fvARB_s - glProgramLocalParameter4fvARB_p - glGetProgramEnvParameterdvARB_c - glGetProgramEnvParameterdvARB_s - glGetProgramEnvParameterdvARB_p - glGetProgramEnvParameterfvARB_c - glGetProgramEnvParameterfvARB_s - glGetProgramEnvParameterfvARB_p - glGetProgramLocalParameterdvARB_c - glGetProgramLocalParameterdvARB_s - glGetProgramLocalParameterdvARB_p - glGetProgramLocalParameterfvARB_c - glGetProgramLocalParameterfvARB_s - glGetProgramLocalParameterfvARB_p - glGetProgramivARB_c - glGetProgramivARB_s - glGetProgramivARB_p - glGetProgramStringARB_c - glGetProgramStringARB_s - glGetProgramStringARB_p - glGetVertexAttribdvARB_c - glGetVertexAttribdvARB_s - glGetVertexAttribdvARB_p - glGetVertexAttribfvARB_c - glGetVertexAttribfvARB_s - glGetVertexAttribfvARB_p - glGetVertexAttribivARB_c - glGetVertexAttribivARB_s - glGetVertexAttribivARB_p - glGetVertexAttribPointervARB_c - glGetVertexAttribPointervARB_p - glIsProgramARB - glBindBufferARB - glDeleteBuffersARB_c - glDeleteBuffersARB_s - glDeleteBuffersARB_p - glGenBuffersARB_c - glGenBuffersARB_s - glGenBuffersARB_p - glIsBufferARB - glBufferDataARB_c - glBufferDataARB_s - glBufferDataARB_p - glBufferSubDataARB_c - glBufferSubDataARB_s - glBufferSubDataARB_p - glGetBufferSubDataARB_c - glGetBufferSubDataARB_s - glGetBufferSubDataARB_p - glMapBufferARB_c - glMapBufferARB_p - glUnmapBufferARB - glGetBufferParameterivARB_c - glGetBufferParameterivARB_s - glGetBufferParameterivARB_p - glGetBufferPointervARB_c - glGetBufferPointervARB_s - glGetBufferPointervARB_p - glActiveTextureARB - glClientActiveTextureARB - glMultiTexCoord1dARB - glMultiTexCoord1dvARB_c - glMultiTexCoord1dvARB_s - glMultiTexCoord1dvARB_p - glMultiTexCoord1fARB - glMultiTexCoord1fvARB_c - glMultiTexCoord1fvARB_s - glMultiTexCoord1fvARB_p - glMultiTexCoord1iARB - glMultiTexCoord1ivARB_c - glMultiTexCoord1ivARB_s - glMultiTexCoord1ivARB_p - glMultiTexCoord1sARB - glMultiTexCoord1svARB_c - glMultiTexCoord1svARB_s - glMultiTexCoord1svARB_p - glMultiTexCoord2dARB - glMultiTexCoord2dvARB_c - glMultiTexCoord2dvARB_s - glMultiTexCoord2dvARB_p - glMultiTexCoord2fARB - glMultiTexCoord2fvARB_c - glMultiTexCoord2fvARB_s - glMultiTexCoord2fvARB_p - glMultiTexCoord2iARB - glMultiTexCoord2ivARB_c - glMultiTexCoord2ivARB_s - glMultiTexCoord2ivARB_p - glMultiTexCoord2sARB - glMultiTexCoord2svARB_c - glMultiTexCoord2svARB_s - glMultiTexCoord2svARB_p - glMultiTexCoord3dARB - glMultiTexCoord3dvARB_c - glMultiTexCoord3dvARB_s - glMultiTexCoord3dvARB_p - glMultiTexCoord3fARB - glMultiTexCoord3fvARB_c - glMultiTexCoord3fvARB_s - glMultiTexCoord3fvARB_p - glMultiTexCoord3iARB - glMultiTexCoord3ivARB_c - glMultiTexCoord3ivARB_s - glMultiTexCoord3ivARB_p - glMultiTexCoord3sARB - glMultiTexCoord3svARB_c - glMultiTexCoord3svARB_s - glMultiTexCoord3svARB_p - glMultiTexCoord4dARB - glMultiTexCoord4dvARB_c - glMultiTexCoord4dvARB_s - glMultiTexCoord4dvARB_p - glMultiTexCoord4fARB - glMultiTexCoord4fvARB_c - glMultiTexCoord4fvARB_s - glMultiTexCoord4fvARB_p - glMultiTexCoord4iARB - glMultiTexCoord4ivARB_c - glMultiTexCoord4ivARB_s - glMultiTexCoord4ivARB_p - glMultiTexCoord4sARB - glMultiTexCoord4svARB_c - glMultiTexCoord4svARB_s - glMultiTexCoord4svARB_p - glDeleteObjectARB - glGetGLhandleARB - glDetachObjectARB - glCreateShaderObjectARB - glShaderSourceARB_c - glShaderSourceARB_p - glCompileShaderARB - glCreateProgramObjectARB - glAttachObjectARB - glLinkProgramARB - glUseProgramObjectARB - glValidateProgramARB - glUniform1fARB - glUniform2fARB - glUniform3fARB - glUniform4fARB - glUniform1iARB - glUniform2iARB - glUniform3iARB - glUniform4iARB - glUniform1fvARB_c - glUniform1fvARB_s - glUniform1fvARB_p - glUniform2fvARB_c - glUniform2fvARB_s - glUniform2fvARB_p - glUniform3fvARB_c - glUniform3fvARB_s - glUniform3fvARB_p - glUniform4fvARB_c - glUniform4fvARB_s - glUniform4fvARB_p - glUniform1ivARB_c - glUniform1ivARB_s - glUniform1ivARB_p - glUniform2ivARB_c - glUniform2ivARB_s - glUniform2ivARB_p - glUniform3ivARB_c - glUniform3ivARB_s - glUniform3ivARB_p - glUniform4ivARB_c - glUniform4ivARB_s - glUniform4ivARB_p - glUniformMatrix2fvARB_c - glUniformMatrix2fvARB_s - glUniformMatrix2fvARB_p - glUniformMatrix3fvARB_c - glUniformMatrix3fvARB_s - glUniformMatrix3fvARB_p - glUniformMatrix4fvARB_c - glUniformMatrix4fvARB_s - glUniformMatrix4fvARB_p - glGetObjectParameterfvARB_c - glGetObjectParameterfvARB_s - glGetObjectParameterfvARB_p - glGetObjectParameterivARB_c - glGetObjectParameterivARB_s - glGetObjectParameterivARB_p - glGetInfoLogARB_c - glGetInfoLogARB_p - glGetAttachedObjectsARB_c - glGetAttachedObjectsARB_s - glGetAttachedObjectsARB_p - glGetUniformLocationARB_c - glGetUniformLocationARB_p - glGetActiveUniformARB_c - glGetActiveUniformARB_s - glGetActiveUniformARB_p - glGetUniformfvARB_c - glGetUniformfvARB_p - glGetUniformivARB_c - glGetUniformivARB_p - glGetShaderSourceARB_c - glGetShaderSourceARB_p - glBindAttribLocationARB - glGetActiveAttribARB_c - glGetActiveAttribARB_s - glGetActiveAttribARB_p - glGetAttribLocationARB_c - glGetAttribLocationARB_p - glPointParameterfARB - glPointParameterfvARB_c - glPointParameterfvARB_s - glPointParameterfvARB_p - glSampleCoverageARB - glClampColorARB - - glpHasGLUT - glpCheckExtension - glpFullScreen - glpRestoreScreen -); -# gl_func - -@glu_func = qw( - gluBeginCurve - gluBeginPolygon - gluBeginSurface - gluBeginTrim - gluBuild1DMipmaps_c - gluBuild1DMipmaps_s - gluBuild2DMipmaps_c - gluBuild2DMipmaps_s - gluCylinder - gluDeleteNurbsRenderer - gluDeleteQuadric - gluDeleteTess - gluDisk - gluEndCurve - gluEndPolygon - gluEndSurface - gluEndTrim - gluErrorString - gluGetNurbsProperty_p - gluGetString - gluGetTessProperty_p - gluLoadSamplingMatrices_p - gluLookAt - gluNewNurbsRenderer - gluNewQuadric - gluNewTess - gluNextContour - gluNurbsCurve_c - gluNurbsSurface_c - gluOrtho2D - gluPartialDisk - gluPerspective - gluPickMatrix_p - gluProject_p - gluPwlCurve_c - gluQuadricDrawStyle - gluQuadricNormals - gluQuadricOrientation - gluQuadricTexture - gluScaleImage_s - gluSphere - gluTessBeginContour - gluTessBeginPolygon - gluTessCallback - gluTessEndContour - gluTessEndPolygon - gluTessNormal - gluTessProperty - gluTessVertex_p - gluUnProject_p -); - -@glut_func = qw( - done_glutInit - glutAddMenuEntry - glutAddSubMenu - glutAttachMenu - glutBitmapCharacter - glutBitmapHeight - glutBitmapLength - glutBitmapString - glutBitmapWidth - glutButtonBoxFunc - glutChangeToMenuEntry - glutChangeToSubMenu - glutCloseFunc - glutCopyColormap - glutCreateMenu - glutCreateSubWindow - glutCreateWindow - glutDestroyMenu - glutDestroyWindow - glutDetachMenu - glutDeviceGet - glutDialsFunc - glutDisplayFunc - glutEnterGameMode - glutEntryFunc - glutEstablishOverlay - glutExtensionSupported - glutForceJoystickFunc - glutFullScreen - glutGameModeGet - glutGameModeString - glutGet - glutGetColor - glutGetMenu - glutGetModifiers - glutGetWindow - glutHideOverlay - glutHideWindow - glutIconifyWindow - glutIdleFunc - glutIgnoreKeyRepeat - glutInit - glutInitDisplayMode - glutInitDisplayString - glutInitWindowPosition - glutInitWindowSize - glutKeyboardFunc - glutKeyboardUpFunc - glutLayerGet - glutLeaveGameMode - glutLeaveMainLoop - glutMainLoop - glutMainLoopEvent - glutMenuDestroyFunc - glutMenuStateFunc - glutMenuStatusFunc - glutMotionFunc - glutMouseFunc - glutMouseWheelFunc - glutOverlayDisplayFunc - glutPassiveMotionFunc - glutPopWindow - glutPositionWindow - glutPostOverlayRedisplay - glutPostRedisplay - glutPostWindowOverlayRedisplay - glutPostWindowRedisplay - glutPushWindow - glutRemoveMenuItem - glutRemoveOverlay - glutReportErrors - glutReshapeFunc - glutReshapeWindow - glutSetColor - glutSetCursor - glutSetIconTitle - glutSetKeyRepeat - glutSetMenu - glutSetOption - glutSetWindow - glutSetWindowTitle - glutShowOverlay - glutShowWindow - glutSolidCone - glutSolidCube - glutSolidCylinder - glutSolidDodecahedron - glutSolidIcosahedron - glutSolidOctahedron - glutSolidRhombicDodecahedron - glutSolidSphere - glutSolidTeapot - glutSolidTetrahedron - glutSolidTorus - glutSpaceballButtonFunc - glutSpaceballMotionFunc - glutSpaceballRotateFunc - glutSpecialFunc - glutSpecialUpFunc - glutStrokeCharacter - glutStrokeHeight - glutStrokeLength - glutStrokeString - glutStrokeWidth - glutSwapBuffers - glutTabletButtonFunc - glutTabletMotionFunc - glutTimerFunc - glutUseLayer - glutVisibilityFunc - glutWarpPointer - glutWindowStatusFunc - glutWireCone - glutWireCube - glutWireCylinder - glutWireDodecahedron - glutWireIcosahedron - glutWireOctahedron - glutWireRhombicDodecahedron - glutWireSphere - glutWireTeapot - glutWireTetrahedron - glutWireTorus -); - -##------------------------------------------------------------------------ -## FreeGLUT not implemented yet -chm 2009-08-31 -##------------------------------------------------------------------------ -## -## Need to determine desired/useful interface -## glutGetProcAddress (const char *procName) -## -## Need to add pollInterval argument to glutJoystickFunc() call -## glutJoystickFunc (void(*callback)(unsigned int buttons, int xaxis, int yaxis, int zaxis), int pollInterval) -## -##------------------------------------------------------------------------ - -@glx_func = qw( - glXSwapBuffers - XPending - glpXNextEvent - glpXQueryPointer -); - -@gl_const = qw( - GL_FALSE - GL_TRUE - GL_BYTE - GL_UNSIGNED_BYTE - GL_SHORT - GL_UNSIGNED_SHORT - GL_INT - GL_UNSIGNED_INT - GL_FLOAT - GL_DOUBLE - GL_2_BYTES - GL_3_BYTES - GL_4_BYTES - GL_LINES - GL_POINTS - GL_LINE_STRIP - GL_LINE_LOOP - GL_TRIANGLES - GL_TRIANGLE_STRIP - GL_TRIANGLE_FAN - GL_QUADS - GL_QUAD_STRIP - GL_POLYGON - GL_EDGE_FLAG - GL_V2F - GL_V3F - GL_C4UB_V2F - GL_C4UB_V3F - GL_C3F_V3F - GL_N3F_V3F - GL_C4F_N3F_V3F - GL_T2F_V3F - GL_T4F_V4F - GL_T2F_C4UB_V3F - GL_T2F_C3F_V3F - GL_T2F_N3F_V3F - GL_T2F_C4F_N3F_V3F - GL_T4F_C4F_N3F_V4F - GL_MATRIX_MODE - GL_MODELVIEW - GL_PROJECTION - GL_TEXTURE - GL_POINT_SMOOTH - GL_POINT_SIZE - GL_POINT_SIZE_GRANULARITY - GL_POINT_SIZE_RANGE - GL_LINE_SMOOTH - GL_LINE_STIPPLE - GL_LINE_STIPPLE_PATTERN - GL_LINE_STIPPLE_REPEAT - GL_LINE_WIDTH - GL_LINE_WIDTH_GRANULARITY - GL_LINE_WIDTH_RANGE - GL_POINT - GL_LINE - GL_FILL - GL_CCW - GL_CW - GL_FRONT - GL_BACK - GL_CULL_FACE - GL_CULL_FACE_MODE - GL_POLYGON_SMOOTH - GL_POLYGON_STIPPLE - GL_FRONT_FACE - GL_POLYGON_MODE - GL_COMPILE - GL_COMPILE_AND_EXECUTE - GL_LIST_BASE - GL_LIST_INDEX - GL_LIST_MODE - GL_NEVER - GL_LESS - GL_GEQUAL - GL_LEQUAL - GL_GREATER - GL_NOTEQUAL - GL_EQUAL - GL_ALWAYS - GL_DEPTH_TEST - GL_DEPTH_BITS - GL_DEPTH_CLEAR_VALUE - GL_DEPTH_FUNC - GL_DEPTH_RANGE - GL_DEPTH_WRITEMASK - GL_DEPTH_COMPONENT - GL_LIGHTING - GL_LIGHT0 - GL_LIGHT1 - GL_LIGHT2 - GL_LIGHT3 - GL_LIGHT4 - GL_LIGHT5 - GL_LIGHT6 - GL_LIGHT7 - GL_SPOT_EXPONENT - GL_SPOT_CUTOFF - GL_CONSTANT_ATTENUATION - GL_LINEAR_ATTENUATION - GL_QUADRATIC_ATTENUATION - GL_AMBIENT - GL_DIFFUSE - GL_SPECULAR - GL_SHININESS - GL_EMISSION - GL_POSITION - GL_SPOT_DIRECTION - GL_AMBIENT_AND_DIFFUSE - GL_COLOR_INDEXES - GL_LIGHT_MODEL_TWO_SIDE - GL_LIGHT_MODEL_LOCAL_VIEWER - GL_LIGHT_MODEL_AMBIENT - GL_FRONT_AND_BACK - GL_SHADE_MODEL - GL_FLAT - GL_SMOOTH - GL_COLOR_MATERIAL - GL_COLOR_MATERIAL_FACE - GL_COLOR_MATERIAL_PARAMETER - GL_NORMALIZE - GL_CLIP_PLANE0 - GL_CLIP_PLANE1 - GL_CLIP_PLANE2 - GL_CLIP_PLANE3 - GL_CLIP_PLANE4 - GL_CLIP_PLANE5 - GL_ACCUM_RED_BITS - GL_ACCUM_GREEN_BITS - GL_ACCUM_BLUE_BITS - GL_ACCUM_ALPHA_BITS - GL_ACCUM_CLEAR_VALUE - GL_ACCUM - GL_ADD - GL_LOAD - GL_MULT - GL_RETURN - GL_ALPHA_TEST - GL_ALPHA_TEST_REF - GL_ALPHA_TEST_FUNC - GL_BLEND - GL_BLEND_SRC - GL_BLEND_DST - GL_ZERO - GL_ONE - GL_SRC_COLOR - GL_ONE_MINUS_SRC_COLOR - GL_DST_COLOR - GL_ONE_MINUS_DST_COLOR - GL_SRC_ALPHA - GL_ONE_MINUS_SRC_ALPHA - GL_DST_ALPHA - GL_ONE_MINUS_DST_ALPHA - GL_SRC_ALPHA_SATURATE - GL_CONSTANT_COLOR - GL_ONE_MINUS_CONSTANT_COLOR - GL_CONSTANT_ALPHA - GL_ONE_MINUS_CONSTANT_ALPHA - GL_FEEDBACK - GL_RENDER - GL_SELECT - GL_2D - GL_3D - GL_3D_COLOR - GL_3D_COLOR_TEXTURE - GL_4D_COLOR_TEXTURE - GL_POINT_TOKEN - GL_LINE_TOKEN - GL_LINE_RESET_TOKEN - GL_POLYGON_TOKEN - GL_BITMAP_TOKEN - GL_DRAW_PIXEL_TOKEN - GL_COPY_PIXEL_TOKEN - GL_PASS_THROUGH_TOKEN - GL_FEEDBACK_BUFFER_SIZE - GL_FEEDBACK_BUFFER_TYPE - GL_FOG - GL_FOG_MODE - GL_FOG_DENSITY - GL_FOG_COLOR - GL_FOG_INDEX - GL_FOG_START - GL_FOG_END - GL_LINEAR - GL_EXP - GL_EXP2 - GL_LOGIC_OP - GL_LOGIC_OP_MODE - GL_CLEAR - GL_SET - GL_COPY - GL_COPY_INVERTED - GL_NOOP - GL_INVERT - GL_AND - GL_NAND - GL_OR - GL_NOR - GL_XOR - GL_EQUIV - GL_AND_REVERSE - GL_AND_INVERTED - GL_OR_REVERSE - GL_OR_INVERTED - GL_STENCIL_TEST - GL_STENCIL_WRITEMASK - GL_STENCIL_BITS - GL_STENCIL_FUNC - GL_STENCIL_VALUE_MASK - GL_STENCIL_REF - GL_STENCIL_FAIL - GL_STENCIL_PASS_DEPTH_PASS - GL_STENCIL_PASS_DEPTH_FAIL - GL_STENCIL_CLEAR_VALUE - GL_STENCIL_INDEX - GL_KEEP - GL_REPLACE - GL_INCR - GL_DECR - GL_NONE - GL_LEFT - GL_RIGHT - GL_FRONT - GL_BACK - GL_FRONT_AND_BACK - GL_FRONT_LEFT - GL_FRONT_RIGHT - GL_BACK_LEFT - GL_BACK_RIGHT - GL_AUX0 - GL_AUX1 - GL_AUX2 - GL_AUX3 - GL_COLOR_INDEX - GL_RED - GL_GREEN - GL_BLUE - GL_ALPHA - GL_LUMINANCE - GL_LUMINANCE_ALPHA - GL_ALPHA_BITS - GL_RED_BITS - GL_GREEN_BITS - GL_BLUE_BITS - GL_INDEX_BITS - GL_SUBPIXEL_BITS - GL_AUX_BUFFERS - GL_READ_BUFFER - GL_DRAW_BUFFER - GL_DOUBLEBUFFER - GL_STEREO - GL_BITMAP - GL_COLOR - GL_DEPTH - GL_STENCIL - GL_DITHER - GL_RGB - GL_RGBA - GL_MAX_LIST_NESTING - GL_MAX_ATTRIB_STACK_DEPTH - GL_MAX_MODELVIEW_STACK_DEPTH - GL_MAX_NAME_STACK_DEPTH - GL_MAX_PROJECTION_STACK_DEPTH - GL_MAX_TEXTURE_STACK_DEPTH - GL_MAX_EVAL_ORDER - GL_MAX_LIGHTS - GL_MAX_CLIP_PLANES - GL_MAX_TEXTURE_SIZE - GL_MAX_PIXEL_MAP_TABLE - GL_MAX_VIEWPORT_DIMS - GL_ATTRIB_STACK_DEPTH - GL_CLIENT_ATTRIB_STACK_DEPTH - GL_COLOR_CLEAR_VALUE - GL_COLOR_WRITEMASK - GL_CURRENT_INDEX - GL_CURRENT_COLOR - GL_CURRENT_NORMAL - GL_CURRENT_RASTER_COLOR - GL_CURRENT_RASTER_DISTANCE - GL_CURRENT_RASTER_INDEX - GL_CURRENT_RASTER_POSITION - GL_CURRENT_RASTER_TEXTURE_COORDS - GL_CURRENT_RASTER_POSITION_VALID - GL_CURRENT_TEXTURE_COORDS - GL_INDEX_CLEAR_VALUE - GL_INDEX_MODE - GL_INDEX_WRITEMASK - GL_MODELVIEW_MATRIX - GL_MODELVIEW_STACK_DEPTH - GL_NAME_STACK_DEPTH - GL_PROJECTION_MATRIX - GL_PROJECTION_STACK_DEPTH - GL_RENDER_MODE - GL_RGBA_MODE - GL_TEXTURE_MATRIX - GL_TEXTURE_STACK_DEPTH - GL_VIEWPORT - GL_AUTO_NORMAL - GL_MAP1_COLOR_4 - GL_MAP1_GRID_DOMAIN - GL_MAP1_GRID_SEGMENTS - GL_MAP1_INDEX - GL_MAP1_NORMAL - GL_MAP1_TEXTURE_COORD_1 - GL_MAP1_TEXTURE_COORD_2 - GL_MAP1_TEXTURE_COORD_3 - GL_MAP1_TEXTURE_COORD_4 - GL_MAP1_VERTEX_3 - GL_MAP1_VERTEX_4 - GL_MAP2_COLOR_4 - GL_MAP2_GRID_DOMAIN - GL_MAP2_GRID_SEGMENTS - GL_MAP2_INDEX - GL_MAP2_NORMAL - GL_MAP2_TEXTURE_COORD_1 - GL_MAP2_TEXTURE_COORD_2 - GL_MAP2_TEXTURE_COORD_3 - GL_MAP2_TEXTURE_COORD_4 - GL_MAP2_VERTEX_3 - GL_MAP2_VERTEX_4 - GL_COEFF - GL_DOMAIN - GL_ORDER - GL_FOG_HINT - GL_LINE_SMOOTH_HINT - GL_PERSPECTIVE_CORRECTION_HINT - GL_POINT_SMOOTH_HINT - GL_POLYGON_SMOOTH_HINT - GL_DONT_CARE - GL_FASTEST - GL_NICEST - GL_SCISSOR_TEST - GL_SCISSOR_BOX - GL_MAP_COLOR - GL_MAP_STENCIL - GL_INDEX_SHIFT - GL_INDEX_OFFSET - GL_RED_SCALE - GL_RED_BIAS - GL_GREEN_SCALE - GL_GREEN_BIAS - GL_BLUE_SCALE - GL_BLUE_BIAS - GL_ALPHA_SCALE - GL_ALPHA_BIAS - GL_DEPTH_SCALE - GL_DEPTH_BIAS - GL_PIXEL_MAP_S_TO_S_SIZE - GL_PIXEL_MAP_I_TO_I_SIZE - GL_PIXEL_MAP_I_TO_R_SIZE - GL_PIXEL_MAP_I_TO_G_SIZE - GL_PIXEL_MAP_I_TO_B_SIZE - GL_PIXEL_MAP_I_TO_A_SIZE - GL_PIXEL_MAP_R_TO_R_SIZE - GL_PIXEL_MAP_G_TO_G_SIZE - GL_PIXEL_MAP_B_TO_B_SIZE - GL_PIXEL_MAP_A_TO_A_SIZE - GL_PIXEL_MAP_S_TO_S - GL_PIXEL_MAP_I_TO_I - GL_PIXEL_MAP_I_TO_R - GL_PIXEL_MAP_I_TO_G - GL_PIXEL_MAP_I_TO_B - GL_PIXEL_MAP_I_TO_A - GL_PIXEL_MAP_R_TO_R - GL_PIXEL_MAP_G_TO_G - GL_PIXEL_MAP_B_TO_B - GL_PIXEL_MAP_A_TO_A - GL_PACK_ALIGNMENT - GL_PACK_LSB_FIRST - GL_PACK_ROW_LENGTH - GL_PACK_SKIP_PIXELS - GL_PACK_SKIP_ROWS - GL_PACK_SWAP_BYTES - GL_UNPACK_ALIGNMENT - GL_UNPACK_LSB_FIRST - GL_UNPACK_ROW_LENGTH - GL_UNPACK_SKIP_PIXELS - GL_UNPACK_SKIP_ROWS - GL_UNPACK_SWAP_BYTES - GL_ZOOM_X - GL_ZOOM_Y - GL_TEXTURE_ENV - GL_TEXTURE_ENV_MODE - GL_TEXTURE_1D - GL_TEXTURE_2D - GL_TEXTURE_WRAP_S - GL_TEXTURE_WRAP_T - GL_TEXTURE_MAG_FILTER - GL_TEXTURE_MIN_FILTER - GL_TEXTURE_ENV_COLOR - GL_TEXTURE_GEN_S - GL_TEXTURE_GEN_T - GL_TEXTURE_GEN_MODE - GL_TEXTURE_BORDER_COLOR - GL_TEXTURE_WIDTH - GL_TEXTURE_HEIGHT - GL_TEXTURE_BORDER - GL_TEXTURE_COMPONENTS - GL_TEXTURE_RED_SIZE - GL_TEXTURE_GREEN_SIZE - GL_TEXTURE_BLUE_SIZE - GL_TEXTURE_ALPHA_SIZE - GL_TEXTURE_LUMINANCE_SIZE - GL_TEXTURE_INTENSITY_SIZE - GL_NEAREST_MIPMAP_NEAREST - GL_NEAREST_MIPMAP_LINEAR - GL_LINEAR_MIPMAP_NEAREST - GL_LINEAR_MIPMAP_LINEAR - GL_OBJECT_LINEAR - GL_OBJECT_PLANE - GL_EYE_LINEAR - GL_EYE_PLANE - GL_SPHERE_MAP - GL_DECAL - GL_MODULATE - GL_NEAREST - GL_REPEAT - GL_CLAMP - GL_S - GL_T - GL_R - GL_Q - GL_TEXTURE_GEN_R - GL_TEXTURE_GEN_Q - GL_VENDOR - GL_RENDERER - GL_VERSION - GL_EXTENSIONS - GL_INVALID_VALUE - GL_INVALID_ENUM - GL_INVALID_OPERATION - GL_STACK_OVERFLOW - GL_STACK_UNDERFLOW - GL_OUT_OF_MEMORY - GL_TEXTURE_RESIDENT - GL_TEXTURE_BINDING_1D - GL_TEXTURE_BINDING_2D - GL_TEXTURE_PRIORITY - GL_PROXY_TEXTURE_1D - GL_PROXY_TEXTURE_2D - GL_FEEDBACK_BUFFER_POINTER - GL_VERTEX_ARRAY - GL_NORMAL_ARRAY - GL_COLOR_ARRAY - GL_INDEX_ARRAY - GL_TEXTURE_COORD_ARRAY - GL_EDGE_FLAG_ARRAY - GL_VERTEX_ARRAY_SIZE - GL_VERTEX_ARRAY_TYPE - GL_VERTEX_ARRAY_STRIDE - GL_NORMAL_ARRAY_TYPE - GL_NORMAL_ARRAY_STRIDE - GL_COLOR_ARRAY_SIZE - GL_COLOR_ARRAY_TYPE - GL_COLOR_ARRAY_STRIDE - GL_INDEX_ARRAY_TYPE - GL_INDEX_ARRAY_STRIDE - GL_TEXTURE_COORD_ARRAY_SIZE - GL_TEXTURE_COORD_ARRAY_TYPE - GL_TEXTURE_COORD_ARRAY_STRIDE - GL_EDGE_FLAG_ARRAY_STRIDE - GL_VERTEX_ARRAY_POINTER - GL_NORMAL_ARRAY_POINTER - GL_COLOR_ARRAY_POINTER - GL_INDEX_ARRAY_POINTER - GL_TEXTURE_COORD_ARRAY_POINTER - GL_EDGE_FLAG_ARRAY_POINTER - GL_POLYGON_OFFSET_FACTOR - GL_POLYGON_OFFSET_UNITS - GL_POLYGON_OFFSET_POINT - GL_POLYGON_OFFSET_LINE - GL_POLYGON_OFFSET_FILL - GL_INDEX_LOGIC_OP - GL_COLOR_LOGIC_OP - GL_ALPHA4 - GL_ALPHA8 - GL_ALPHA12 - GL_ALPHA16 - GL_LUMINANCE4 - GL_LUMINANCE8 - GL_LUMINANCE12 - GL_LUMINANCE16 - GL_LUMINANCE4_ALPHA4 - GL_LUMINANCE6_ALPHA2 - GL_LUMINANCE8_ALPHA8 - GL_LUMINANCE12_ALPHA4 - GL_LUMINANCE12_ALPHA12 - GL_LUMINANCE16_ALPHA16 - GL_INTENSITY - GL_INTENSITY4 - GL_INTENSITY8 - GL_INTENSITY12 - GL_INTENSITY16 - GL_R3_G3_B2 - GL_RGB4 - GL_RGB5 - GL_RGB8 - GL_RGB10 - GL_RGB12 - GL_RGB16 - GL_RGBA2 - GL_RGBA4 - GL_RGB5_A1 - GL_RGBA8 - GL_RGB10_A2 - GL_RGBA12 - GL_RGBA16 - GL_PACK_SKIP_IMAGES - GL_PACK_IMAGE_HEIGHT - GL_UNPACK_SKIP_IMAGES - GL_UNPACK_IMAGE_HEIGHT - GL_TEXTURE_3D - GL_PROXY_TEXTURE_3D - GL_TEXTURE_DEPTH - GL_TEXTURE_WRAP_R - GL_MAX_3D_TEXTURE_SIZE - GL_TEXTURE_BINDING_3D - GL_BGR - GL_BGRA - GL_UNSIGNED_BYTE_3_3_2 - GL_UNSIGNED_BYTE_2_3_3_REV - GL_UNSIGNED_SHORT_5_6_5 - GL_UNSIGNED_SHORT_5_6_5_REV - GL_UNSIGNED_SHORT_4_4_4_4 - GL_UNSIGNED_SHORT_4_4_4_4_REV - GL_UNSIGNED_SHORT_5_5_5_1 - GL_UNSIGNED_SHORT_1_5_5_5_REV - GL_UNSIGNED_INT_8_8_8_8 - GL_UNSIGNED_INT_8_8_8_8_REV - GL_UNSIGNED_INT_10_10_10_2 - GL_UNSIGNED_INT_2_10_10_10_REV - GL_RESCALE_NORMAL - GL_LIGHT_MODEL_COLOR_CONTROL - GL_SINGLE_COLOR - GL_SEPARATE_SPECULAR_COLOR - GL_CLAMP_TO_EDGE - GL_TEXTURE_MIN_LOD - GL_TEXTURE_MAX_LOD - GL_TEXTURE_BASE_LEVEL - GL_TEXTURE_MAX_LEVEL - GL_MAX_ELEMENTS_VERTICES - GL_MAX_ELEMENTS_INDICES - GL_NO_ERROR - GL_MAX_CLIENT_ATTRIB_STACK_DEPTH - GL_SELECTION_BUFFER_POINTER - GL_SELECTION_BUFFER_SIZE - GL_TEXTURE_INTERNAL_FORMAT - GL_BLEND_COLOR - GL_FUNC_ADD - GL_MIN - GL_MAX - GL_BLEND_EQUATION - GL_FUNC_SUBTRACT - GL_FUNC_REVERSE_SUBTRACT - GL_COLOR_MATRIX - GL_COLOR_MATRIX_STACK_DEPTH - GL_MAX_COLOR_MATRIX_STACK_DEPTH - GL_POST_COLOR_MATRIX_RED_SCALE - GL_POST_COLOR_MATRIX_GREEN_SCALE - GL_POST_COLOR_MATRIX_BLUE_SCALE - GL_POST_COLOR_MATRIX_ALPHA_SCALE - GL_POST_COLOR_MATRIX_RED_BIAS - GL_POST_COLOR_MATRIX_GREEN_BIAS - GL_POST_COLOR_MATRIX_BLUE_BIAS - GL_POST_COLOR_MATRIX_ALPHA_BIAS - GL_COLOR_TABLE - GL_POST_CONVOLUTION_COLOR_TABLE - GL_POST_COLOR_MATRIX_COLOR_TABLE - GL_PROXY_COLOR_TABLE - GL_PROXY_POST_CONVOLUTION_COLOR_TABLE - GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE - GL_COLOR_TABLE_SCALE - GL_COLOR_TABLE_BIAS - GL_COLOR_TABLE_FORMAT - GL_COLOR_TABLE_WIDTH - GL_COLOR_TABLE_RED_SIZE - GL_COLOR_TABLE_GREEN_SIZE - GL_COLOR_TABLE_BLUE_SIZE - GL_COLOR_TABLE_ALPHA_SIZE - GL_COLOR_TABLE_LUMINANCE_SIZE - GL_COLOR_TABLE_INTENSITY_SIZE - GL_CONVOLUTION_1D - GL_CONVOLUTION_2D - GL_SEPARABLE_2D - GL_CONVOLUTION_BORDER_MODE - GL_CONVOLUTION_FILTER_SCALE - GL_CONVOLUTION_FILTER_BIAS - GL_REDUCE - GL_CONVOLUTION_FORMAT - GL_CONVOLUTION_WIDTH - GL_CONVOLUTION_HEIGHT - GL_MAX_CONVOLUTION_WIDTH - GL_MAX_CONVOLUTION_HEIGHT - GL_POST_CONVOLUTION_RED_SCALE - GL_POST_CONVOLUTION_GREEN_SCALE - GL_POST_CONVOLUTION_BLUE_SCALE - GL_POST_CONVOLUTION_ALPHA_SCALE - GL_POST_CONVOLUTION_RED_BIAS - GL_POST_CONVOLUTION_GREEN_BIAS - GL_POST_CONVOLUTION_BLUE_BIAS - GL_POST_CONVOLUTION_ALPHA_BIAS - GL_CONSTANT_BORDER - GL_REPLICATE_BORDER - GL_CONVOLUTION_BORDER_COLOR - GL_HISTOGRAM - GL_PROXY_HISTOGRAM - GL_HISTOGRAM_WIDTH - GL_HISTOGRAM_FORMAT - GL_HISTOGRAM_RED_SIZE - GL_HISTOGRAM_GREEN_SIZE - GL_HISTOGRAM_BLUE_SIZE - GL_HISTOGRAM_ALPHA_SIZE - GL_HISTOGRAM_LUMINANCE_SIZE - GL_HISTOGRAM_SINK - GL_MINMAX - GL_MINMAX_FORMAT - GL_MINMAX_SINK - GL_TABLE_TOO_LARGE - GL_SMOOTH_POINT_SIZE_RANGE - GL_SMOOTH_POINT_SIZE_GRANULARITY - GL_SMOOTH_LINE_WIDTH_RANGE - GL_SMOOTH_LINE_WIDTH_GRANULARITY - GL_ALIASED_POINT_SIZE_RANGE - GL_ALIASED_LINE_WIDTH_RANGE - GL_TEXTURE0_ARB - GL_TEXTURE1_ARB - GL_TEXTURE2_ARB - GL_TEXTURE3_ARB - GL_TEXTURE4_ARB - GL_TEXTURE5_ARB - GL_TEXTURE6_ARB - GL_TEXTURE7_ARB - GL_TEXTURE8_ARB - GL_TEXTURE9_ARB - GL_TEXTURE10_ARB - GL_TEXTURE11_ARB - GL_TEXTURE12_ARB - GL_TEXTURE13_ARB - GL_TEXTURE14_ARB - GL_TEXTURE15_ARB - GL_TEXTURE16_ARB - GL_TEXTURE17_ARB - GL_TEXTURE18_ARB - GL_TEXTURE19_ARB - GL_TEXTURE20_ARB - GL_TEXTURE21_ARB - GL_TEXTURE22_ARB - GL_TEXTURE23_ARB - GL_TEXTURE24_ARB - GL_TEXTURE25_ARB - GL_TEXTURE26_ARB - GL_TEXTURE27_ARB - GL_TEXTURE28_ARB - GL_TEXTURE29_ARB - GL_TEXTURE30_ARB - GL_TEXTURE31_ARB - GL_ACTIVE_TEXTURE_ARB - GL_CLIENT_ACTIVE_TEXTURE_ARB - GL_MAX_TEXTURE_UNITS_ARB - GL_POLYGON_OFFSET_EXT - GL_POLYGON_OFFSET_FACTOR_EXT - GL_POLYGON_OFFSET_BIAS_EXT - GL_ALPHA4_EXT - GL_ALPHA8_EXT - GL_ALPHA12_EXT - GL_ALPHA16_EXT - GL_LUMINANCE4_EXT - GL_LUMINANCE8_EXT - GL_LUMINANCE12_EXT - GL_LUMINANCE16_EXT - GL_LUMINANCE4_ALPHA4_EXT - GL_LUMINANCE6_ALPHA2_EXT - GL_LUMINANCE8_ALPHA8_EXT - GL_LUMINANCE12_ALPHA4_EXT - GL_LUMINANCE12_ALPHA12_EXT - GL_LUMINANCE16_ALPHA16_EXT - GL_INTENSITY_EXT - GL_INTENSITY4_EXT - GL_INTENSITY8_EXT - GL_INTENSITY12_EXT - GL_INTENSITY16_EXT - GL_R3_G3_B2_EXT - GL_RGB4_EXT - GL_RGB5_EXT - GL_RGB8_EXT - GL_RGB10_EXT - GL_RGB12_EXT - GL_RGB16_EXT - GL_RGBA2_EXT - GL_RGBA4_EXT - GL_RGB5_A1_EXT - GL_RGBA8_EXT - GL_RGB10_A2_EXT - GL_RGBA12_EXT - GL_RGBA16_EXT - GL_TEXTURE_RED_SIZE_EXT - GL_TEXTURE_GREEN_SIZE_EXT - GL_TEXTURE_BLUE_SIZE_EXT - GL_TEXTURE_ALPHA_SIZE_EXT - GL_TEXTURE_LUMINANCE_SIZE_EXT - GL_TEXTURE_INTENSITY_SIZE_EXT - GL_REPLACE_EXT - GL_PROXY_TEXTURE_1D - GL_PROXY_TEXTURE_2D - GL_TEXTURE_TOO_LARGE_EXT - GL_CMYK_EXT - GL_CMYKA_EXT - GL_PACK_CMYK_HINT_EXT - GL_UNPACK_CMYK_HINT_EXT - GL_CMYK - GL_CMYKA - GL_PACK_CMYK_HINT - GL_UNPACK_CMYK_HINT - GL_TEXTURE_PRIORITY_EXT - GL_TEXTURE_RESIDENT_EXT - GL_TEXTURE_1D_BINDING_EXT - GL_TEXTURE_2D_BINDING_EXT - GL_TEXTURE_3D_BINDING_EXT - GL_VERTEX_ARRAY_EXT - GL_NORMAL_ARRAY_EXT - GL_COLOR_ARRAY_EXT - GL_INDEX_ARRAY_EXT - GL_TEXTURE_COORD_ARRAY_EXT - GL_EDGE_FLAG_ARRAY_EXT - GL_VERTEX_ARRAY_SIZE_EXT - GL_VERTEX_ARRAY_TYPE_EXT - GL_VERTEX_ARRAY_STRIDE_EXT - GL_NORMAL_ARRAY_TYPE_EXT - GL_NORMAL_ARRAY_STRIDE_EXT - GL_COLOR_ARRAY_SIZE_EXT - GL_COLOR_ARRAY_TYPE_EXT - GL_COLOR_ARRAY_STRIDE_EXT - GL_INDEX_ARRAY_TYPE_EXT - GL_INDEX_ARRAY_STRIDE_EXT - GL_TEXTURE_COORD_ARRAY_SIZE_EXT - GL_TEXTURE_COORD_ARRAY_TYPE_EXT - GL_TEXTURE_COORD_ARRAY_STRIDE_EXT - GL_EDGE_FLAG_ARRAY_STRIDE_EXT - GL_VERTEX_ARRAY_POINTER_EXT - GL_NORMAL_ARRAY_POINTER_EXT - GL_COLOR_ARRAY_POINTER_EXT - GL_INDEX_ARRAY_POINTER_EXT - GL_TEXTURE_COORD_ARRAY_POINTER_EXT - GL_EDGE_FLAG_ARRAY_POINTER_EXT - GL_VERTEX_ARRAY_COUNT_EXT - GL_NORMAL_ARRAY_COUNT_EXT - GL_COLOR_ARRAY_COUNT_EXT - GL_INDEX_ARRAY_COUNT_EXT - GL_TEXTURE_COORD_ARRAY_COUNT_EXT - GL_EDGE_FLAG_ARRAY_COUNT_EXT - GL_MISC_BIT_EXT - GL_CONSTANT_COLOR_EXT - GL_ONE_MINUS_CONSTANT_COLOR_EXT - GL_CONSTANT_ALPHA_EXT - GL_ONE_MINUS_CONSTANT_ALPHA_EXT - GL_BLEND_EQUATION_EXT - GL_MIN_EXT - GL_MAX_EXT - GL_FUNC_ADD_EXT - GL_FUNC_SUBTRACT_EXT - GL_FUNC_REVERSE_SUBTRACT_EXT - GL_BLEND_COLOR_EXT - GL_ABGR_EXT - GL_VOLUME_CLIPPING_HINT_EXT - GL_TEXTURE_PRIORITY_EXT - GL_TEXTURE_RESIDENT_EXT - GL_TEXTURE_1D_BINDING_EXT - GL_TEXTURE_2D_BINDING_EXT - GL_PACK_SKIP_IMAGES_EXT - GL_PACK_IMAGE_HEIGHT_EXT - GL_UNPACK_SKIP_IMAGES_EXT - GL_UNPACK_IMAGE_HEIGHT_EXT - GL_TEXTURE_3D_EXT - GL_PROXY_TEXTURE_3D_EXT - GL_TEXTURE_DEPTH_EXT - GL_TEXTURE_WRAP_R_EXT - GL_MAX_3D_TEXTURE_SIZE_EXT - GL_TEXTURE_3D_BINDING_EXT - GL_TABLE_TOO_LARGE_EXT - GL_COLOR_TABLE_FORMAT_EXT - GL_COLOR_TABLE_WIDTH_EXT - GL_COLOR_TABLE_RED_SIZE_EXT - GL_COLOR_TABLE_GREEN_SIZE_EXT - GL_COLOR_TABLE_BLUE_SIZE_EXT - GL_COLOR_TABLE_ALPHA_SIZE_EXT - GL_COLOR_TABLE_LUMINANCE_SIZE_EXT - GL_COLOR_TABLE_INTENSITY_SIZE_EXT - GL_TEXTURE_INDEX_SIZE_EXT - GL_COLOR_INDEX1_EXT - GL_COLOR_INDEX2_EXT - GL_COLOR_INDEX4_EXT - GL_COLOR_INDEX8_EXT - GL_COLOR_INDEX12_EXT - GL_COLOR_INDEX16_EXT - GL_SHARED_TEXTURE_PALETTE_EXT - GL_POINT_SIZE_MIN_EXT - GL_POINT_SIZE_MAX_EXT - GL_POINT_FADE_THRESHOLD_SIZE_EXT - GL_DISTANCE_ATTENUATION_EXT - GL_COMBINE_EXT - GL_COMBINE_RGB_EXT - GL_COMBINE_ALPHA_EXT - GL_RGB_SCALE_EXT - GL_ADD_SIGNED_EXT - GL_INTERPOLATE_EXT - GL_CONSTANT_EXT - GL_PRIMARY_COLOR_EXT - GL_PREVIOUS_EXT - GL_SOURCE0_RGB_EXT - GL_SOURCE1_RGB_EXT - GL_SOURCE2_RGB_EXT - GL_SOURCE0_ALPHA_EXT - GL_SOURCE1_ALPHA_EXT - GL_SOURCE2_ALPHA_EXT - GL_OPERAND0_RGB_EXT - GL_OPERAND1_RGB_EXT - GL_OPERAND2_RGB_EXT - GL_OPERAND0_ALPHA_EXT - GL_OPERAND1_ALPHA_EXT - GL_OPERAND2_ALPHA_EXT - GL_GLEXT_VERSION - GL_SMOOTH_POINT_SIZE_RANGE - GL_SMOOTH_POINT_SIZE_GRANULARITY - GL_SMOOTH_LINE_WIDTH_RANGE - GL_SMOOTH_LINE_WIDTH_GRANULARITY - GL_ALIASED_POINT_SIZE_RANGE - GL_ALIASED_LINE_WIDTH_RANGE - GL_BLEND_COLOR - GL_FUNC_ADD - GL_MIN - GL_MAX - GL_BLEND_EQUATION - GL_FUNC_SUBTRACT - GL_FUNC_REVERSE_SUBTRACT - GL_CONVOLUTION_1D - GL_CONVOLUTION_2D - GL_SEPARABLE_2D - GL_CONVOLUTION_BORDER_MODE - GL_CONVOLUTION_FILTER_SCALE - GL_CONVOLUTION_FILTER_BIAS - GL_REDUCE - GL_CONVOLUTION_FORMAT - GL_CONVOLUTION_WIDTH - GL_CONVOLUTION_HEIGHT - GL_MAX_CONVOLUTION_WIDTH - GL_MAX_CONVOLUTION_HEIGHT - GL_POST_CONVOLUTION_RED_SCALE - GL_POST_CONVOLUTION_GREEN_SCALE - GL_POST_CONVOLUTION_BLUE_SCALE - GL_POST_CONVOLUTION_ALPHA_SCALE - GL_POST_CONVOLUTION_RED_BIAS - GL_POST_CONVOLUTION_GREEN_BIAS - GL_POST_CONVOLUTION_BLUE_BIAS - GL_POST_CONVOLUTION_ALPHA_BIAS - GL_HISTOGRAM - GL_PROXY_HISTOGRAM - GL_HISTOGRAM_WIDTH - GL_HISTOGRAM_FORMAT - GL_HISTOGRAM_RED_SIZE - GL_HISTOGRAM_GREEN_SIZE - GL_HISTOGRAM_BLUE_SIZE - GL_HISTOGRAM_ALPHA_SIZE - GL_HISTOGRAM_LUMINANCE_SIZE - GL_HISTOGRAM_SINK - GL_MINMAX - GL_MINMAX_FORMAT - GL_MINMAX_SINK - GL_TABLE_TOO_LARGE - GL_COLOR_MATRIX - GL_COLOR_MATRIX_STACK_DEPTH - GL_MAX_COLOR_MATRIX_STACK_DEPTH - GL_POST_COLOR_MATRIX_RED_SCALE - GL_POST_COLOR_MATRIX_GREEN_SCALE - GL_POST_COLOR_MATRIX_BLUE_SCALE - GL_POST_COLOR_MATRIX_ALPHA_SCALE - GL_POST_COLOR_MATRIX_RED_BIAS - GL_POST_COLOR_MATRIX_GREEN_BIAS - GL_POST_COLOR_MATRIX_BLUE_BIAS - GL_POST_COLOR_MATRIX_ALPHA_BIAS - GL_COLOR_TABLE - GL_POST_CONVOLUTION_COLOR_TABLE - GL_POST_COLOR_MATRIX_COLOR_TABLE - GL_PROXY_COLOR_TABLE - GL_PROXY_POST_CONVOLUTION_COLOR_TABLE - GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE - GL_COLOR_TABLE_SCALE - GL_COLOR_TABLE_BIAS - GL_COLOR_TABLE_FORMAT - GL_COLOR_TABLE_WIDTH - GL_COLOR_TABLE_RED_SIZE - GL_COLOR_TABLE_GREEN_SIZE - GL_COLOR_TABLE_BLUE_SIZE - GL_COLOR_TABLE_ALPHA_SIZE - GL_COLOR_TABLE_LUMINANCE_SIZE - GL_COLOR_TABLE_INTENSITY_SIZE - GL_CONSTANT_BORDER - GL_REPLICATE_BORDER - GL_CONVOLUTION_BORDER_COLOR - GL_TEXTURE0 - GL_TEXTURE1 - GL_TEXTURE2 - GL_TEXTURE3 - GL_TEXTURE4 - GL_TEXTURE5 - GL_TEXTURE6 - GL_TEXTURE7 - GL_TEXTURE8 - GL_TEXTURE9 - GL_TEXTURE10 - GL_TEXTURE11 - GL_TEXTURE12 - GL_TEXTURE13 - GL_TEXTURE14 - GL_TEXTURE15 - GL_TEXTURE16 - GL_TEXTURE17 - GL_TEXTURE18 - GL_TEXTURE19 - GL_TEXTURE20 - GL_TEXTURE21 - GL_TEXTURE22 - GL_TEXTURE23 - GL_TEXTURE24 - GL_TEXTURE25 - GL_TEXTURE26 - GL_TEXTURE27 - GL_TEXTURE28 - GL_TEXTURE29 - GL_TEXTURE30 - GL_TEXTURE31 - GL_ACTIVE_TEXTURE - GL_CLIENT_ACTIVE_TEXTURE - GL_MAX_TEXTURE_UNITS - GL_TRANSPOSE_MODELVIEW_MATRIX - GL_TRANSPOSE_PROJECTION_MATRIX - GL_TRANSPOSE_TEXTURE_MATRIX - GL_TRANSPOSE_COLOR_MATRIX - GL_MULTISAMPLE - GL_SAMPLE_ALPHA_TO_COVERAGE - GL_SAMPLE_ALPHA_TO_ONE - GL_SAMPLE_COVERAGE - GL_SAMPLE_BUFFERS - GL_SAMPLES - GL_SAMPLE_COVERAGE_VALUE - GL_SAMPLE_COVERAGE_INVERT - GL_MULTISAMPLE_BIT - GL_NORMAL_MAP - GL_REFLECTION_MAP - GL_TEXTURE_CUBE_MAP - GL_TEXTURE_BINDING_CUBE_MAP - GL_TEXTURE_CUBE_MAP_POSITIVE_X - GL_TEXTURE_CUBE_MAP_NEGATIVE_X - GL_TEXTURE_CUBE_MAP_POSITIVE_Y - GL_TEXTURE_CUBE_MAP_NEGATIVE_Y - GL_TEXTURE_CUBE_MAP_POSITIVE_Z - GL_TEXTURE_CUBE_MAP_NEGATIVE_Z - GL_PROXY_TEXTURE_CUBE_MAP - GL_MAX_CUBE_MAP_TEXTURE_SIZE - GL_COMPRESSED_ALPHA - GL_COMPRESSED_LUMINANCE - GL_COMPRESSED_LUMINANCE_ALPHA - GL_COMPRESSED_INTENSITY - GL_COMPRESSED_RGB - GL_COMPRESSED_RGBA - GL_TEXTURE_COMPRESSION_HINT - GL_TEXTURE_COMPRESSED_IMAGE_SIZE - GL_TEXTURE_COMPRESSED - GL_NUM_COMPRESSED_TEXTURE_FORMATS - GL_COMPRESSED_TEXTURE_FORMATS - GL_CLAMP_TO_BORDER - GL_COMBINE - GL_COMBINE_RGB - GL_COMBINE_ALPHA - GL_SOURCE0_RGB - GL_SOURCE1_RGB - GL_SOURCE2_RGB - GL_SOURCE0_ALPHA - GL_SOURCE1_ALPHA - GL_SOURCE2_ALPHA - GL_OPERAND0_RGB - GL_OPERAND1_RGB - GL_OPERAND2_RGB - GL_OPERAND0_ALPHA - GL_OPERAND1_ALPHA - GL_OPERAND2_ALPHA - GL_RGB_SCALE - GL_ADD_SIGNED - GL_INTERPOLATE - GL_SUBTRACT - GL_CONSTANT - GL_PRIMARY_COLOR - GL_PREVIOUS - GL_DOT3_RGB - GL_DOT3_RGBA - GL_BLEND_DST_RGB - GL_BLEND_SRC_RGB - GL_BLEND_DST_ALPHA - GL_BLEND_SRC_ALPHA - GL_POINT_SIZE_MIN - GL_POINT_SIZE_MAX - GL_POINT_FADE_THRESHOLD_SIZE - GL_POINT_DISTANCE_ATTENUATION - GL_GENERATE_MIPMAP - GL_GENERATE_MIPMAP_HINT - GL_DEPTH_COMPONENT16 - GL_DEPTH_COMPONENT24 - GL_DEPTH_COMPONENT32 - GL_MIRRORED_REPEAT - GL_FOG_COORDINATE_SOURCE - GL_FOG_COORDINATE - GL_FRAGMENT_DEPTH - GL_CURRENT_FOG_COORDINATE - GL_FOG_COORDINATE_ARRAY_TYPE - GL_FOG_COORDINATE_ARRAY_STRIDE - GL_FOG_COORDINATE_ARRAY_POINTER - GL_FOG_COORDINATE_ARRAY - GL_COLOR_SUM - GL_CURRENT_SECONDARY_COLOR - GL_SECONDARY_COLOR_ARRAY_SIZE - GL_SECONDARY_COLOR_ARRAY_TYPE - GL_SECONDARY_COLOR_ARRAY_STRIDE - GL_SECONDARY_COLOR_ARRAY_POINTER - GL_SECONDARY_COLOR_ARRAY - GL_MAX_TEXTURE_LOD_BIAS - GL_TEXTURE_FILTER_CONTROL - GL_TEXTURE_LOD_BIAS - GL_INCR_WRAP - GL_DECR_WRAP - GL_TEXTURE_DEPTH_SIZE - GL_DEPTH_TEXTURE_MODE - GL_TEXTURE_COMPARE_MODE - GL_TEXTURE_COMPARE_FUNC - GL_COMPARE_R_TO_TEXTURE - GL_BUFFER_SIZE - GL_BUFFER_USAGE - GL_QUERY_COUNTER_BITS - GL_CURRENT_QUERY - GL_QUERY_RESULT - GL_QUERY_RESULT_AVAILABLE - GL_ARRAY_BUFFER - GL_ELEMENT_ARRAY_BUFFER - GL_ARRAY_BUFFER_BINDING - GL_ELEMENT_ARRAY_BUFFER_BINDING - GL_VERTEX_ARRAY_BUFFER_BINDING - GL_NORMAL_ARRAY_BUFFER_BINDING - GL_COLOR_ARRAY_BUFFER_BINDING - GL_INDEX_ARRAY_BUFFER_BINDING - GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING - GL_EDGE_FLAG_ARRAY_BUFFER_BINDING - GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING - GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING - GL_WEIGHT_ARRAY_BUFFER_BINDING - GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING - GL_READ_ONLY - GL_WRITE_ONLY - GL_READ_WRITE - GL_BUFFER_ACCESS - GL_BUFFER_MAPPED - GL_BUFFER_MAP_POINTER - GL_STREAM_DRAW - GL_STREAM_READ - GL_STREAM_COPY - GL_STATIC_DRAW - GL_STATIC_READ - GL_STATIC_COPY - GL_DYNAMIC_DRAW - GL_DYNAMIC_READ - GL_DYNAMIC_COPY - GL_SAMPLES_PASSED - GL_FOG_COORD_SRC - GL_FOG_COORD - GL_CURRENT_FOG_COORD - GL_FOG_COORD_ARRAY_TYPE - GL_FOG_COORD_ARRAY_STRIDE - GL_FOG_COORD_ARRAY_POINTER - GL_FOG_COORD_ARRAY - GL_FOG_COORD_ARRAY_BUFFER_BINDING - GL_SRC0_RGB - GL_SRC1_RGB - GL_SRC2_RGB - GL_SRC0_ALPHA - GL_SRC1_ALPHA - GL_SRC2_ALPHA - GL_BLEND_EQUATION_RGB - GL_VERTEX_ATTRIB_ARRAY_ENABLED - GL_VERTEX_ATTRIB_ARRAY_SIZE - GL_VERTEX_ATTRIB_ARRAY_STRIDE - GL_VERTEX_ATTRIB_ARRAY_TYPE - GL_CURRENT_VERTEX_ATTRIB - GL_VERTEX_PROGRAM_POINT_SIZE - GL_VERTEX_PROGRAM_TWO_SIDE - GL_VERTEX_ATTRIB_ARRAY_POINTER - GL_STENCIL_BACK_FUNC - GL_STENCIL_BACK_FAIL - GL_STENCIL_BACK_PASS_DEPTH_FAIL - GL_STENCIL_BACK_PASS_DEPTH_PASS - GL_MAX_DRAW_BUFFERS - GL_DRAW_BUFFER0 - GL_DRAW_BUFFER1 - GL_DRAW_BUFFER2 - GL_DRAW_BUFFER3 - GL_DRAW_BUFFER4 - GL_DRAW_BUFFER5 - GL_DRAW_BUFFER6 - GL_DRAW_BUFFER7 - GL_DRAW_BUFFER8 - GL_DRAW_BUFFER9 - GL_DRAW_BUFFER10 - GL_DRAW_BUFFER11 - GL_DRAW_BUFFER12 - GL_DRAW_BUFFER13 - GL_DRAW_BUFFER14 - GL_DRAW_BUFFER15 - GL_BLEND_EQUATION_ALPHA - GL_POINT_SPRITE - GL_COORD_REPLACE - GL_MAX_VERTEX_ATTRIBS - GL_VERTEX_ATTRIB_ARRAY_NORMALIZED - GL_MAX_TEXTURE_COORDS - GL_MAX_TEXTURE_IMAGE_UNITS - GL_FRAGMENT_SHADER - GL_VERTEX_SHADER - GL_MAX_FRAGMENT_UNIFORM_COMPONENTS - GL_MAX_VERTEX_UNIFORM_COMPONENTS - GL_MAX_VARYING_FLOATS - GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS - GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS - GL_SHADER_TYPE - GL_FLOAT_VEC2 - GL_FLOAT_VEC3 - GL_FLOAT_VEC4 - GL_INT_VEC2 - GL_INT_VEC3 - GL_INT_VEC4 - GL_BOOL - GL_BOOL_VEC2 - GL_BOOL_VEC3 - GL_BOOL_VEC4 - GL_FLOAT_MAT2 - GL_FLOAT_MAT3 - GL_FLOAT_MAT4 - GL_SAMPLER_1D - GL_SAMPLER_2D - GL_SAMPLER_3D - GL_SAMPLER_CUBE - GL_SAMPLER_1D_SHADOW - GL_SAMPLER_2D_SHADOW - GL_DELETE_STATUS - GL_COMPILE_STATUS - GL_LINK_STATUS - GL_VALIDATE_STATUS - GL_INFO_LOG_LENGTH - GL_ATTACHED_SHADERS - GL_ACTIVE_UNIFORMS - GL_ACTIVE_UNIFORM_MAX_LENGTH - GL_SHADER_SOURCE_LENGTH - GL_ACTIVE_ATTRIBUTES - GL_ACTIVE_ATTRIBUTE_MAX_LENGTH - GL_FRAGMENT_SHADER_DERIVATIVE_HINT - GL_SHADING_LANGUAGE_VERSION - GL_CURRENT_PROGRAM - GL_POINT_SPRITE_COORD_ORIGIN - GL_LOWER_LEFT - GL_UPPER_LEFT - GL_STENCIL_BACK_REF - GL_STENCIL_BACK_VALUE_MASK - GL_STENCIL_BACK_WRITEMASK - GL_TEXTURE0_ARB - GL_TEXTURE1_ARB - GL_TEXTURE2_ARB - GL_TEXTURE3_ARB - GL_TEXTURE4_ARB - GL_TEXTURE5_ARB - GL_TEXTURE6_ARB - GL_TEXTURE7_ARB - GL_TEXTURE8_ARB - GL_TEXTURE9_ARB - GL_TEXTURE10_ARB - GL_TEXTURE11_ARB - GL_TEXTURE12_ARB - GL_TEXTURE13_ARB - GL_TEXTURE14_ARB - GL_TEXTURE15_ARB - GL_TEXTURE16_ARB - GL_TEXTURE17_ARB - GL_TEXTURE18_ARB - GL_TEXTURE19_ARB - GL_TEXTURE20_ARB - GL_TEXTURE21_ARB - GL_TEXTURE22_ARB - GL_TEXTURE23_ARB - GL_TEXTURE24_ARB - GL_TEXTURE25_ARB - GL_TEXTURE26_ARB - GL_TEXTURE27_ARB - GL_TEXTURE28_ARB - GL_TEXTURE29_ARB - GL_TEXTURE30_ARB - GL_TEXTURE31_ARB - GL_ACTIVE_TEXTURE_ARB - GL_CLIENT_ACTIVE_TEXTURE_ARB - GL_MAX_TEXTURE_UNITS_ARB - GL_TRANSPOSE_MODELVIEW_MATRIX_ARB - GL_TRANSPOSE_PROJECTION_MATRIX_ARB - GL_TRANSPOSE_TEXTURE_MATRIX_ARB - GL_TRANSPOSE_COLOR_MATRIX_ARB - GL_MULTISAMPLE_ARB - GL_SAMPLE_ALPHA_TO_COVERAGE_ARB - GL_SAMPLE_ALPHA_TO_ONE_ARB - GL_SAMPLE_COVERAGE_ARB - GL_SAMPLE_BUFFERS_ARB - GL_SAMPLES_ARB - GL_SAMPLE_COVERAGE_VALUE_ARB - GL_SAMPLE_COVERAGE_INVERT_ARB - GL_MULTISAMPLE_BIT_ARB - GL_NORMAL_MAP_ARB - GL_REFLECTION_MAP_ARB - GL_TEXTURE_CUBE_MAP_ARB - GL_TEXTURE_BINDING_CUBE_MAP_ARB - GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB - GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB - GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB - GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB - GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB - GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB - GL_PROXY_TEXTURE_CUBE_MAP_ARB - GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB - GL_COMPRESSED_ALPHA_ARB - GL_COMPRESSED_LUMINANCE_ARB - GL_COMPRESSED_LUMINANCE_ALPHA_ARB - GL_COMPRESSED_INTENSITY_ARB - GL_COMPRESSED_RGB_ARB - GL_COMPRESSED_RGBA_ARB - GL_TEXTURE_COMPRESSION_HINT_ARB - GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB - GL_TEXTURE_COMPRESSED_ARB - GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB - GL_COMPRESSED_TEXTURE_FORMATS_ARB - GL_CLAMP_TO_BORDER_ARB - GL_POINT_SIZE_MIN_ARB - GL_POINT_SIZE_MAX_ARB - GL_POINT_FADE_THRESHOLD_SIZE_ARB - GL_POINT_DISTANCE_ATTENUATION_ARB - GL_MAX_VERTEX_UNITS_ARB - GL_ACTIVE_VERTEX_UNITS_ARB - GL_WEIGHT_SUM_UNITY_ARB - GL_VERTEX_BLEND_ARB - GL_CURRENT_WEIGHT_ARB - GL_WEIGHT_ARRAY_TYPE_ARB - GL_WEIGHT_ARRAY_STRIDE_ARB - GL_WEIGHT_ARRAY_SIZE_ARB - GL_WEIGHT_ARRAY_POINTER_ARB - GL_WEIGHT_ARRAY_ARB - GL_MODELVIEW0_ARB - GL_MODELVIEW1_ARB - GL_MODELVIEW2_ARB - GL_MODELVIEW3_ARB - GL_MODELVIEW4_ARB - GL_MODELVIEW5_ARB - GL_MODELVIEW6_ARB - GL_MODELVIEW7_ARB - GL_MODELVIEW8_ARB - GL_MODELVIEW9_ARB - GL_MODELVIEW10_ARB - GL_MODELVIEW11_ARB - GL_MODELVIEW12_ARB - GL_MODELVIEW13_ARB - GL_MODELVIEW14_ARB - GL_MODELVIEW15_ARB - GL_MODELVIEW16_ARB - GL_MODELVIEW17_ARB - GL_MODELVIEW18_ARB - GL_MODELVIEW19_ARB - GL_MODELVIEW20_ARB - GL_MODELVIEW21_ARB - GL_MODELVIEW22_ARB - GL_MODELVIEW23_ARB - GL_MODELVIEW24_ARB - GL_MODELVIEW25_ARB - GL_MODELVIEW26_ARB - GL_MODELVIEW27_ARB - GL_MODELVIEW28_ARB - GL_MODELVIEW29_ARB - GL_MODELVIEW30_ARB - GL_MODELVIEW31_ARB - GL_MATRIX_PALETTE_ARB - GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB - GL_MAX_PALETTE_MATRICES_ARB - GL_CURRENT_PALETTE_MATRIX_ARB - GL_MATRIX_INDEX_ARRAY_ARB - GL_CURRENT_MATRIX_INDEX_ARB - GL_MATRIX_INDEX_ARRAY_SIZE_ARB - GL_MATRIX_INDEX_ARRAY_TYPE_ARB - GL_MATRIX_INDEX_ARRAY_STRIDE_ARB - GL_MATRIX_INDEX_ARRAY_POINTER_ARB - GL_COMBINE_ARB - GL_COMBINE_RGB_ARB - GL_COMBINE_ALPHA_ARB - GL_SOURCE0_RGB_ARB - GL_SOURCE1_RGB_ARB - GL_SOURCE2_RGB_ARB - GL_SOURCE0_ALPHA_ARB - GL_SOURCE1_ALPHA_ARB - GL_SOURCE2_ALPHA_ARB - GL_OPERAND0_RGB_ARB - GL_OPERAND1_RGB_ARB - GL_OPERAND2_RGB_ARB - GL_OPERAND0_ALPHA_ARB - GL_OPERAND1_ALPHA_ARB - GL_OPERAND2_ALPHA_ARB - GL_RGB_SCALE_ARB - GL_ADD_SIGNED_ARB - GL_INTERPOLATE_ARB - GL_SUBTRACT_ARB - GL_CONSTANT_ARB - GL_PRIMARY_COLOR_ARB - GL_PREVIOUS_ARB - GL_DOT3_RGB_ARB - GL_DOT3_RGBA_ARB - GL_MIRRORED_REPEAT_ARB - GL_DEPTH_COMPONENT16_ARB - GL_DEPTH_COMPONENT24_ARB - GL_DEPTH_COMPONENT32_ARB - GL_TEXTURE_DEPTH_SIZE_ARB - GL_DEPTH_TEXTURE_MODE_ARB - GL_TEXTURE_COMPARE_MODE_ARB - GL_TEXTURE_COMPARE_FUNC_ARB - GL_COMPARE_R_TO_TEXTURE_ARB - GL_TEXTURE_COMPARE_FAIL_VALUE_ARB - GL_COLOR_SUM_ARB - GL_VERTEX_PROGRAM_ARB - GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB - GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB - GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB - GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB - GL_CURRENT_VERTEX_ATTRIB_ARB - GL_PROGRAM_LENGTH_ARB - GL_PROGRAM_STRING_ARB - GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB - GL_MAX_PROGRAM_MATRICES_ARB - GL_CURRENT_MATRIX_STACK_DEPTH_ARB - GL_CURRENT_MATRIX_ARB - GL_VERTEX_PROGRAM_POINT_SIZE_ARB - GL_VERTEX_PROGRAM_TWO_SIDE_ARB - GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB - GL_PROGRAM_ERROR_POSITION_ARB - GL_PROGRAM_BINDING_ARB - GL_MAX_VERTEX_ATTRIBS_ARB - GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB - GL_PROGRAM_ERROR_STRING_ARB - GL_PROGRAM_FORMAT_ASCII_ARB - GL_PROGRAM_FORMAT_ARB - GL_PROGRAM_INSTRUCTIONS_ARB - GL_MAX_PROGRAM_INSTRUCTIONS_ARB - GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB - GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB - GL_PROGRAM_TEMPORARIES_ARB - GL_MAX_PROGRAM_TEMPORARIES_ARB - GL_PROGRAM_NATIVE_TEMPORARIES_ARB - GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB - GL_PROGRAM_PARAMETERS_ARB - GL_MAX_PROGRAM_PARAMETERS_ARB - GL_PROGRAM_NATIVE_PARAMETERS_ARB - GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB - GL_PROGRAM_ATTRIBS_ARB - GL_MAX_PROGRAM_ATTRIBS_ARB - GL_PROGRAM_NATIVE_ATTRIBS_ARB - GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB - GL_PROGRAM_ADDRESS_REGISTERS_ARB - GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB - GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB - GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB - GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB - GL_MAX_PROGRAM_ENV_PARAMETERS_ARB - GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB - GL_TRANSPOSE_CURRENT_MATRIX_ARB - GL_MATRIX0_ARB - GL_MATRIX1_ARB - GL_MATRIX2_ARB - GL_MATRIX3_ARB - GL_MATRIX4_ARB - GL_MATRIX5_ARB - GL_MATRIX6_ARB - GL_MATRIX7_ARB - GL_MATRIX8_ARB - GL_MATRIX9_ARB - GL_MATRIX10_ARB - GL_MATRIX11_ARB - GL_MATRIX12_ARB - GL_MATRIX13_ARB - GL_MATRIX14_ARB - GL_MATRIX15_ARB - GL_MATRIX16_ARB - GL_MATRIX17_ARB - GL_MATRIX18_ARB - GL_MATRIX19_ARB - GL_MATRIX20_ARB - GL_MATRIX21_ARB - GL_MATRIX22_ARB - GL_MATRIX23_ARB - GL_MATRIX24_ARB - GL_MATRIX25_ARB - GL_MATRIX26_ARB - GL_MATRIX27_ARB - GL_MATRIX28_ARB - GL_MATRIX29_ARB - GL_MATRIX30_ARB - GL_MATRIX31_ARB - GL_FRAGMENT_PROGRAM_ARB - GL_PROGRAM_ALU_INSTRUCTIONS_ARB - GL_PROGRAM_TEX_INSTRUCTIONS_ARB - GL_PROGRAM_TEX_INDIRECTIONS_ARB - GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB - GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB - GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB - GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB - GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB - GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB - GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB - GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB - GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB - GL_MAX_TEXTURE_COORDS_ARB - GL_MAX_TEXTURE_IMAGE_UNITS_ARB - GL_BUFFER_SIZE_ARB - GL_BUFFER_USAGE_ARB - GL_ARRAY_BUFFER_ARB - GL_ELEMENT_ARRAY_BUFFER_ARB - GL_ARRAY_BUFFER_BINDING_ARB - GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB - GL_VERTEX_ARRAY_BUFFER_BINDING_ARB - GL_NORMAL_ARRAY_BUFFER_BINDING_ARB - GL_COLOR_ARRAY_BUFFER_BINDING_ARB - GL_INDEX_ARRAY_BUFFER_BINDING_ARB - GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB - GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB - GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB - GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB - GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB - GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB - GL_READ_ONLY_ARB - GL_WRITE_ONLY_ARB - GL_READ_WRITE_ARB - GL_BUFFER_ACCESS_ARB - GL_BUFFER_MAPPED_ARB - GL_BUFFER_MAP_POINTER_ARB - GL_STREAM_DRAW_ARB - GL_STREAM_READ_ARB - GL_STREAM_COPY_ARB - GL_STATIC_DRAW_ARB - GL_STATIC_READ_ARB - GL_STATIC_COPY_ARB - GL_DYNAMIC_DRAW_ARB - GL_DYNAMIC_READ_ARB - GL_DYNAMIC_COPY_ARB - GL_QUERY_COUNTER_BITS_ARB - GL_CURRENT_QUERY_ARB - GL_QUERY_RESULT_ARB - GL_QUERY_RESULT_AVAILABLE_ARB - GL_SAMPLES_PASSED_ARB - GL_PROGRAM_OBJECT_ARB - GL_SHADER_OBJECT_ARB - GL_OBJECT_TYPE_ARB - GL_OBJECT_SUBTYPE_ARB - GL_FLOAT_VEC2_ARB - GL_FLOAT_VEC3_ARB - GL_FLOAT_VEC4_ARB - GL_INT_VEC2_ARB - GL_INT_VEC3_ARB - GL_INT_VEC4_ARB - GL_BOOL_ARB - GL_BOOL_VEC2_ARB - GL_BOOL_VEC3_ARB - GL_BOOL_VEC4_ARB - GL_FLOAT_MAT2_ARB - GL_FLOAT_MAT3_ARB - GL_FLOAT_MAT4_ARB - GL_SAMPLER_1D_ARB - GL_SAMPLER_2D_ARB - GL_SAMPLER_3D_ARB - GL_SAMPLER_CUBE_ARB - GL_SAMPLER_1D_SHADOW_ARB - GL_SAMPLER_2D_SHADOW_ARB - GL_SAMPLER_2D_RECT_ARB - GL_SAMPLER_2D_RECT_SHADOW_ARB - GL_OBJECT_DELETE_STATUS_ARB - GL_OBJECT_COMPILE_STATUS_ARB - GL_OBJECT_LINK_STATUS_ARB - GL_OBJECT_VALIDATE_STATUS_ARB - GL_OBJECT_INFO_LOG_LENGTH_ARB - GL_OBJECT_ATTACHED_OBJECTS_ARB - GL_OBJECT_ACTIVE_UNIFORMS_ARB - GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB - GL_OBJECT_SHADER_SOURCE_LENGTH_ARB - GL_VERTEX_SHADER_ARB - GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB - GL_MAX_VARYING_FLOATS_ARB - GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB - GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB - GL_OBJECT_ACTIVE_ATTRIBUTES_ARB - GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB - GL_FRAGMENT_SHADER_ARB - GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB - GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB - GL_SHADING_LANGUAGE_VERSION_ARB - GL_POINT_SPRITE_ARB - GL_COORD_REPLACE_ARB - GL_MAX_DRAW_BUFFERS_ARB - GL_DRAW_BUFFER0_ARB - GL_DRAW_BUFFER1_ARB - GL_DRAW_BUFFER2_ARB - GL_DRAW_BUFFER3_ARB - GL_DRAW_BUFFER4_ARB - GL_DRAW_BUFFER5_ARB - GL_DRAW_BUFFER6_ARB - GL_DRAW_BUFFER7_ARB - GL_DRAW_BUFFER8_ARB - GL_DRAW_BUFFER9_ARB - GL_DRAW_BUFFER10_ARB - GL_DRAW_BUFFER11_ARB - GL_DRAW_BUFFER12_ARB - GL_DRAW_BUFFER13_ARB - GL_DRAW_BUFFER14_ARB - GL_DRAW_BUFFER15_ARB - GL_TEXTURE_RECTANGLE_ARB - GL_TEXTURE_BINDING_RECTANGLE_ARB - GL_PROXY_TEXTURE_RECTANGLE_ARB - GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB - GL_RGBA_FLOAT_MODE_ARB - GL_CLAMP_VERTEX_COLOR_ARB - GL_CLAMP_FRAGMENT_COLOR_ARB - GL_CLAMP_READ_COLOR_ARB - GL_FIXED_ONLY_ARB - GL_HALF_FLOAT_ARB - GL_TEXTURE_RED_TYPE_ARB - GL_TEXTURE_GREEN_TYPE_ARB - GL_TEXTURE_BLUE_TYPE_ARB - GL_TEXTURE_ALPHA_TYPE_ARB - GL_TEXTURE_LUMINANCE_TYPE_ARB - GL_TEXTURE_INTENSITY_TYPE_ARB - GL_TEXTURE_DEPTH_TYPE_ARB - GL_UNSIGNED_NORMALIZED_ARB - GL_RGBA32F_ARB - GL_RGB32F_ARB - GL_ALPHA32F_ARB - GL_INTENSITY32F_ARB - GL_LUMINANCE32F_ARB - GL_LUMINANCE_ALPHA32F_ARB - GL_RGBA16F_ARB - GL_RGB16F_ARB - GL_ALPHA16F_ARB - GL_INTENSITY16F_ARB - GL_LUMINANCE16F_ARB - GL_LUMINANCE_ALPHA16F_ARB - GL_PIXEL_PACK_BUFFER_ARB - GL_PIXEL_UNPACK_BUFFER_ARB - GL_PIXEL_PACK_BUFFER_BINDING_ARB - GL_PIXEL_UNPACK_BUFFER_BINDING_ARB - GL_RGB2_EXT - GL_PROXY_TEXTURE_1D_EXT - GL_PROXY_TEXTURE_2D_EXT - GL_FILTER4_SGIS - GL_TEXTURE_FILTER4_SIZE_SGIS - GL_HISTOGRAM_EXT - GL_PROXY_HISTOGRAM_EXT - GL_HISTOGRAM_WIDTH_EXT - GL_HISTOGRAM_FORMAT_EXT - GL_HISTOGRAM_RED_SIZE_EXT - GL_HISTOGRAM_GREEN_SIZE_EXT - GL_HISTOGRAM_BLUE_SIZE_EXT - GL_HISTOGRAM_ALPHA_SIZE_EXT - GL_HISTOGRAM_LUMINANCE_SIZE_EXT - GL_HISTOGRAM_SINK_EXT - GL_MINMAX_EXT - GL_MINMAX_FORMAT_EXT - GL_MINMAX_SINK_EXT - GL_CONVOLUTION_1D_EXT - GL_CONVOLUTION_2D_EXT - GL_SEPARABLE_2D_EXT - GL_CONVOLUTION_BORDER_MODE_EXT - GL_CONVOLUTION_FILTER_SCALE_EXT - GL_CONVOLUTION_FILTER_BIAS_EXT - GL_REDUCE_EXT - GL_CONVOLUTION_FORMAT_EXT - GL_CONVOLUTION_WIDTH_EXT - GL_CONVOLUTION_HEIGHT_EXT - GL_MAX_CONVOLUTION_WIDTH_EXT - GL_MAX_CONVOLUTION_HEIGHT_EXT - GL_POST_CONVOLUTION_RED_SCALE_EXT - GL_POST_CONVOLUTION_GREEN_SCALE_EXT - GL_POST_CONVOLUTION_BLUE_SCALE_EXT - GL_POST_CONVOLUTION_ALPHA_SCALE_EXT - GL_POST_CONVOLUTION_RED_BIAS_EXT - GL_POST_CONVOLUTION_GREEN_BIAS_EXT - GL_POST_CONVOLUTION_BLUE_BIAS_EXT - GL_POST_CONVOLUTION_ALPHA_BIAS_EXT - GL_COLOR_MATRIX_SGI - GL_COLOR_MATRIX_STACK_DEPTH_SGI - GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI - GL_POST_COLOR_MATRIX_RED_SCALE_SGI - GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI - GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI - GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI - GL_POST_COLOR_MATRIX_RED_BIAS_SGI - GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI - GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI - GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI - GL_COLOR_TABLE_SGI - GL_POST_CONVOLUTION_COLOR_TABLE_SGI - GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI - GL_PROXY_COLOR_TABLE_SGI - GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI - GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI - GL_COLOR_TABLE_SCALE_SGI - GL_COLOR_TABLE_BIAS_SGI - GL_COLOR_TABLE_FORMAT_SGI - GL_COLOR_TABLE_WIDTH_SGI - GL_COLOR_TABLE_RED_SIZE_SGI - GL_COLOR_TABLE_GREEN_SIZE_SGI - GL_COLOR_TABLE_BLUE_SIZE_SGI - GL_COLOR_TABLE_ALPHA_SIZE_SGI - GL_COLOR_TABLE_LUMINANCE_SIZE_SGI - GL_COLOR_TABLE_INTENSITY_SIZE_SGI - GL_PIXEL_TEXTURE_SGIS - GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS - GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS - GL_PIXEL_GROUP_COLOR_SGIS - GL_PIXEL_TEX_GEN_SGIX - GL_PIXEL_TEX_GEN_MODE_SGIX - GL_PACK_SKIP_VOLUMES_SGIS - GL_PACK_IMAGE_DEPTH_SGIS - GL_UNPACK_SKIP_VOLUMES_SGIS - GL_UNPACK_IMAGE_DEPTH_SGIS - GL_TEXTURE_4D_SGIS - GL_PROXY_TEXTURE_4D_SGIS - GL_TEXTURE_4DSIZE_SGIS - GL_TEXTURE_WRAP_Q_SGIS - GL_MAX_4D_TEXTURE_SIZE_SGIS - GL_TEXTURE_4D_BINDING_SGIS - GL_TEXTURE_COLOR_TABLE_SGI - GL_PROXY_TEXTURE_COLOR_TABLE_SGI - GL_DETAIL_TEXTURE_2D_SGIS - GL_DETAIL_TEXTURE_2D_BINDING_SGIS - GL_LINEAR_DETAIL_SGIS - GL_LINEAR_DETAIL_ALPHA_SGIS - GL_LINEAR_DETAIL_COLOR_SGIS - GL_DETAIL_TEXTURE_LEVEL_SGIS - GL_DETAIL_TEXTURE_MODE_SGIS - GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS - GL_LINEAR_SHARPEN_SGIS - GL_LINEAR_SHARPEN_ALPHA_SGIS - GL_LINEAR_SHARPEN_COLOR_SGIS - GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS - GL_UNSIGNED_BYTE_3_3_2_EXT - GL_UNSIGNED_SHORT_4_4_4_4_EXT - GL_UNSIGNED_SHORT_5_5_5_1_EXT - GL_UNSIGNED_INT_8_8_8_8_EXT - GL_UNSIGNED_INT_10_10_10_2_EXT - GL_TEXTURE_MIN_LOD_SGIS - GL_TEXTURE_MAX_LOD_SGIS - GL_TEXTURE_BASE_LEVEL_SGIS - GL_TEXTURE_MAX_LEVEL_SGIS - GL_MULTISAMPLE_SGIS - GL_SAMPLE_ALPHA_TO_MASK_SGIS - GL_SAMPLE_ALPHA_TO_ONE_SGIS - GL_SAMPLE_MASK_SGIS - GL_1PASS_SGIS - GL_2PASS_0_SGIS - GL_2PASS_1_SGIS - GL_4PASS_0_SGIS - GL_4PASS_1_SGIS - GL_4PASS_2_SGIS - GL_4PASS_3_SGIS - GL_SAMPLE_BUFFERS_SGIS - GL_SAMPLES_SGIS - GL_SAMPLE_MASK_VALUE_SGIS - GL_SAMPLE_MASK_INVERT_SGIS - GL_SAMPLE_PATTERN_SGIS - GL_RESCALE_NORMAL_EXT - GL_GENERATE_MIPMAP_SGIS - GL_GENERATE_MIPMAP_HINT_SGIS - GL_LINEAR_CLIPMAP_LINEAR_SGIX - GL_TEXTURE_CLIPMAP_CENTER_SGIX - GL_TEXTURE_CLIPMAP_FRAME_SGIX - GL_TEXTURE_CLIPMAP_OFFSET_SGIX - GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX - GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX - GL_TEXTURE_CLIPMAP_DEPTH_SGIX - GL_MAX_CLIPMAP_DEPTH_SGIX - GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX - GL_NEAREST_CLIPMAP_NEAREST_SGIX - GL_NEAREST_CLIPMAP_LINEAR_SGIX - GL_LINEAR_CLIPMAP_NEAREST_SGIX - GL_TEXTURE_COMPARE_SGIX - GL_TEXTURE_COMPARE_OPERATOR_SGIX - GL_TEXTURE_LEQUAL_R_SGIX - GL_TEXTURE_GEQUAL_R_SGIX - GL_CLAMP_TO_EDGE_SGIS - GL_CLAMP_TO_BORDER_SGIS - GL_INTERLACE_SGIX - GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX - GL_PIXEL_TILE_CACHE_INCREMENT_SGIX - GL_PIXEL_TILE_WIDTH_SGIX - GL_PIXEL_TILE_HEIGHT_SGIX - GL_PIXEL_TILE_GRID_WIDTH_SGIX - GL_PIXEL_TILE_GRID_HEIGHT_SGIX - GL_PIXEL_TILE_GRID_DEPTH_SGIX - GL_PIXEL_TILE_CACHE_SIZE_SGIX - GL_DUAL_ALPHA4_SGIS - GL_DUAL_ALPHA8_SGIS - GL_DUAL_ALPHA12_SGIS - GL_DUAL_ALPHA16_SGIS - GL_DUAL_LUMINANCE4_SGIS - GL_DUAL_LUMINANCE8_SGIS - GL_DUAL_LUMINANCE12_SGIS - GL_DUAL_LUMINANCE16_SGIS - GL_DUAL_INTENSITY4_SGIS - GL_DUAL_INTENSITY8_SGIS - GL_DUAL_INTENSITY12_SGIS - GL_DUAL_INTENSITY16_SGIS - GL_DUAL_LUMINANCE_ALPHA4_SGIS - GL_DUAL_LUMINANCE_ALPHA8_SGIS - GL_QUAD_ALPHA4_SGIS - GL_QUAD_ALPHA8_SGIS - GL_QUAD_LUMINANCE4_SGIS - GL_QUAD_LUMINANCE8_SGIS - GL_QUAD_INTENSITY4_SGIS - GL_QUAD_INTENSITY8_SGIS - GL_DUAL_TEXTURE_SELECT_SGIS - GL_QUAD_TEXTURE_SELECT_SGIS - GL_SPRITE_SGIX - GL_SPRITE_MODE_SGIX - GL_SPRITE_AXIS_SGIX - GL_SPRITE_TRANSLATION_SGIX - GL_SPRITE_AXIAL_SGIX - GL_SPRITE_OBJECT_ALIGNED_SGIX - GL_SPRITE_EYE_ALIGNED_SGIX - GL_TEXTURE_MULTI_BUFFER_HINT_SGIX - GL_POINT_SIZE_MIN_SGIS - GL_POINT_SIZE_MAX_SGIS - GL_POINT_FADE_THRESHOLD_SIZE_SGIS - GL_DISTANCE_ATTENUATION_SGIS - GL_INSTRUMENT_BUFFER_POINTER_SGIX - GL_INSTRUMENT_MEASUREMENTS_SGIX - GL_POST_TEXTURE_FILTER_BIAS_SGIX - GL_POST_TEXTURE_FILTER_SCALE_SGIX - GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX - GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX - GL_FRAMEZOOM_SGIX - GL_FRAMEZOOM_FACTOR_SGIX - GL_MAX_FRAMEZOOM_FACTOR_SGIX - GL_TEXTURE_DEFORMATION_BIT_SGIX - GL_GEOMETRY_DEFORMATION_BIT_SGIX - GL_GEOMETRY_DEFORMATION_SGIX - GL_TEXTURE_DEFORMATION_SGIX - GL_DEFORMATIONS_MASK_SGIX - GL_MAX_DEFORMATION_ORDER_SGIX - GL_REFERENCE_PLANE_SGIX - GL_REFERENCE_PLANE_EQUATION_SGIX - GL_DEPTH_COMPONENT16_SGIX - GL_DEPTH_COMPONENT24_SGIX - GL_DEPTH_COMPONENT32_SGIX - GL_FOG_FUNC_SGIS - GL_FOG_FUNC_POINTS_SGIS - GL_MAX_FOG_FUNC_POINTS_SGIS - GL_FOG_OFFSET_SGIX - GL_FOG_OFFSET_VALUE_SGIX - GL_IMAGE_SCALE_X_HP - GL_IMAGE_SCALE_Y_HP - GL_IMAGE_TRANSLATE_X_HP - GL_IMAGE_TRANSLATE_Y_HP - GL_IMAGE_ROTATE_ANGLE_HP - GL_IMAGE_ROTATE_ORIGIN_X_HP - GL_IMAGE_ROTATE_ORIGIN_Y_HP - GL_IMAGE_MAG_FILTER_HP - GL_IMAGE_MIN_FILTER_HP - GL_IMAGE_CUBIC_WEIGHT_HP - GL_CUBIC_HP - GL_AVERAGE_HP - GL_IMAGE_TRANSFORM_2D_HP - GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP - GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP - GL_IGNORE_BORDER_HP - GL_CONSTANT_BORDER_HP - GL_REPLICATE_BORDER_HP - GL_CONVOLUTION_BORDER_COLOR_HP - GL_TEXTURE_ENV_BIAS_SGIX - GL_VERTEX_DATA_HINT_PGI - GL_VERTEX_CONSISTENT_HINT_PGI - GL_MATERIAL_SIDE_HINT_PGI - GL_MAX_VERTEX_HINT_PGI - GL_COLOR3_BIT_PGI - GL_COLOR4_BIT_PGI - GL_EDGEFLAG_BIT_PGI - GL_INDEX_BIT_PGI - GL_MAT_AMBIENT_BIT_PGI - GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI - GL_MAT_DIFFUSE_BIT_PGI - GL_MAT_EMISSION_BIT_PGI - GL_MAT_COLOR_INDEXES_BIT_PGI - GL_MAT_SHININESS_BIT_PGI - GL_MAT_SPECULAR_BIT_PGI - GL_NORMAL_BIT_PGI - GL_TEXCOORD1_BIT_PGI - GL_TEXCOORD2_BIT_PGI - GL_TEXCOORD3_BIT_PGI - GL_TEXCOORD4_BIT_PGI - GL_VERTEX23_BIT_PGI - GL_VERTEX4_BIT_PGI - GL_PREFER_DOUBLEBUFFER_HINT_PGI - GL_CONSERVE_MEMORY_HINT_PGI - GL_RECLAIM_MEMORY_HINT_PGI - GL_NATIVE_GRAPHICS_HANDLE_PGI - GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI - GL_NATIVE_GRAPHICS_END_HINT_PGI - GL_ALWAYS_FAST_HINT_PGI - GL_ALWAYS_SOFT_HINT_PGI - GL_ALLOW_DRAW_OBJ_HINT_PGI - GL_ALLOW_DRAW_WIN_HINT_PGI - GL_ALLOW_DRAW_FRG_HINT_PGI - GL_ALLOW_DRAW_MEM_HINT_PGI - GL_STRICT_DEPTHFUNC_HINT_PGI - GL_STRICT_LIGHTING_HINT_PGI - GL_STRICT_SCISSOR_HINT_PGI - GL_FULL_STIPPLE_HINT_PGI - GL_CLIP_NEAR_HINT_PGI - GL_CLIP_FAR_HINT_PGI - GL_WIDE_LINE_HINT_PGI - GL_BACK_NORMALS_HINT_PGI - GL_CLIP_VOLUME_CLIPPING_HINT_EXT - GL_LIST_PRIORITY_SGIX - GL_IR_INSTRUMENT1_SGIX - GL_CALLIGRAPHIC_FRAGMENT_SGIX - GL_TEXTURE_LOD_BIAS_S_SGIX - GL_TEXTURE_LOD_BIAS_T_SGIX - GL_TEXTURE_LOD_BIAS_R_SGIX - GL_SHADOW_AMBIENT_SGIX - GL_INDEX_MATERIAL_EXT - GL_INDEX_MATERIAL_PARAMETER_EXT - GL_INDEX_MATERIAL_FACE_EXT - GL_INDEX_TEST_EXT - GL_INDEX_TEST_FUNC_EXT - GL_INDEX_TEST_REF_EXT - GL_IUI_V2F_EXT - GL_IUI_V3F_EXT - GL_IUI_N3F_V2F_EXT - GL_IUI_N3F_V3F_EXT - GL_T2F_IUI_V2F_EXT - GL_T2F_IUI_V3F_EXT - GL_T2F_IUI_N3F_V2F_EXT - GL_T2F_IUI_N3F_V3F_EXT - GL_ARRAY_ELEMENT_LOCK_FIRST_EXT - GL_ARRAY_ELEMENT_LOCK_COUNT_EXT - GL_CULL_VERTEX_EXT - GL_CULL_VERTEX_EYE_POSITION_EXT - GL_CULL_VERTEX_OBJECT_POSITION_EXT - GL_YCRCB_422_SGIX - GL_YCRCB_444_SGIX - GL_FRAGMENT_LIGHTING_SGIX - GL_FRAGMENT_COLOR_MATERIAL_SGIX - GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX - GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX - GL_MAX_FRAGMENT_LIGHTS_SGIX - GL_MAX_ACTIVE_LIGHTS_SGIX - GL_CURRENT_RASTER_NORMAL_SGIX - GL_LIGHT_ENV_MODE_SGIX - GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX - GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX - GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX - GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX - GL_FRAGMENT_LIGHT0_SGIX - GL_FRAGMENT_LIGHT1_SGIX - GL_FRAGMENT_LIGHT2_SGIX - GL_FRAGMENT_LIGHT3_SGIX - GL_FRAGMENT_LIGHT4_SGIX - GL_FRAGMENT_LIGHT5_SGIX - GL_FRAGMENT_LIGHT6_SGIX - GL_FRAGMENT_LIGHT7_SGIX - GL_RASTER_POSITION_UNCLIPPED_IBM - GL_TEXTURE_LIGHTING_MODE_HP - GL_TEXTURE_POST_SPECULAR_HP - GL_TEXTURE_PRE_SPECULAR_HP - GL_MAX_ELEMENTS_VERTICES_EXT - GL_MAX_ELEMENTS_INDICES_EXT - GL_PHONG_WIN - GL_PHONG_HINT_WIN - GL_FOG_SPECULAR_TEXTURE_WIN - GL_FRAGMENT_MATERIAL_EXT - GL_FRAGMENT_NORMAL_EXT - GL_FRAGMENT_COLOR_EXT - GL_ATTENUATION_EXT - GL_SHADOW_ATTENUATION_EXT - GL_TEXTURE_APPLICATION_MODE_EXT - GL_TEXTURE_LIGHT_EXT - GL_TEXTURE_MATERIAL_FACE_EXT - GL_TEXTURE_MATERIAL_PARAMETER_EXT - GL_ALPHA_MIN_SGIX - GL_ALPHA_MAX_SGIX - GL_PIXEL_TEX_GEN_Q_CEILING_SGIX - GL_PIXEL_TEX_GEN_Q_ROUND_SGIX - GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX - GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX - GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX - GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX - GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX - GL_BGR_EXT - GL_BGRA_EXT - GL_ASYNC_MARKER_SGIX - GL_ASYNC_TEX_IMAGE_SGIX - GL_ASYNC_DRAW_PIXELS_SGIX - GL_ASYNC_READ_PIXELS_SGIX - GL_MAX_ASYNC_TEX_IMAGE_SGIX - GL_MAX_ASYNC_DRAW_PIXELS_SGIX - GL_MAX_ASYNC_READ_PIXELS_SGIX - GL_ASYNC_HISTOGRAM_SGIX - GL_MAX_ASYNC_HISTOGRAM_SGIX - GL_PARALLEL_ARRAYS_INTEL - GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL - GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL - GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL - GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL - GL_OCCLUSION_TEST_HP - GL_OCCLUSION_TEST_RESULT_HP - GL_PIXEL_TRANSFORM_2D_EXT - GL_PIXEL_MAG_FILTER_EXT - GL_PIXEL_MIN_FILTER_EXT - GL_PIXEL_CUBIC_WEIGHT_EXT - GL_CUBIC_EXT - GL_AVERAGE_EXT - GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT - GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT - GL_PIXEL_TRANSFORM_2D_MATRIX_EXT - GL_LIGHT_MODEL_COLOR_CONTROL_EXT - GL_SINGLE_COLOR_EXT - GL_SEPARATE_SPECULAR_COLOR_EXT - GL_COLOR_SUM_EXT - GL_CURRENT_SECONDARY_COLOR_EXT - GL_SECONDARY_COLOR_ARRAY_SIZE_EXT - GL_SECONDARY_COLOR_ARRAY_TYPE_EXT - GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT - GL_SECONDARY_COLOR_ARRAY_POINTER_EXT - GL_SECONDARY_COLOR_ARRAY_EXT - GL_PERTURB_EXT - GL_TEXTURE_NORMAL_EXT - GL_FOG_COORDINATE_SOURCE_EXT - GL_FOG_COORDINATE_EXT - GL_FRAGMENT_DEPTH_EXT - GL_CURRENT_FOG_COORDINATE_EXT - GL_FOG_COORDINATE_ARRAY_TYPE_EXT - GL_FOG_COORDINATE_ARRAY_STRIDE_EXT - GL_FOG_COORDINATE_ARRAY_POINTER_EXT - GL_FOG_COORDINATE_ARRAY_EXT - GL_SCREEN_COORDINATES_REND - GL_INVERTED_SCREEN_W_REND - GL_TANGENT_ARRAY_EXT - GL_BINORMAL_ARRAY_EXT - GL_CURRENT_TANGENT_EXT - GL_CURRENT_BINORMAL_EXT - GL_TANGENT_ARRAY_TYPE_EXT - GL_TANGENT_ARRAY_STRIDE_EXT - GL_BINORMAL_ARRAY_TYPE_EXT - GL_BINORMAL_ARRAY_STRIDE_EXT - GL_TANGENT_ARRAY_POINTER_EXT - GL_BINORMAL_ARRAY_POINTER_EXT - GL_MAP1_TANGENT_EXT - GL_MAP2_TANGENT_EXT - GL_MAP1_BINORMAL_EXT - GL_MAP2_BINORMAL_EXT - GL_COMBINE_EXT - GL_COMBINE_RGB_EXT - GL_COMBINE_ALPHA_EXT - GL_RGB_SCALE_EXT - GL_ADD_SIGNED_EXT - GL_INTERPOLATE_EXT - GL_CONSTANT_EXT - GL_PRIMARY_COLOR_EXT - GL_PREVIOUS_EXT - GL_SOURCE0_RGB_EXT - GL_SOURCE1_RGB_EXT - GL_SOURCE2_RGB_EXT - GL_SOURCE0_ALPHA_EXT - GL_SOURCE1_ALPHA_EXT - GL_SOURCE2_ALPHA_EXT - GL_OPERAND0_RGB_EXT - GL_OPERAND1_RGB_EXT - GL_OPERAND2_RGB_EXT - GL_OPERAND0_ALPHA_EXT - GL_OPERAND1_ALPHA_EXT - GL_OPERAND2_ALPHA_EXT - GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE - GL_TRANSFORM_HINT_APPLE - GL_UNPACK_CONSTANT_DATA_SUNX - GL_TEXTURE_CONSTANT_DATA_SUNX - GL_GLOBAL_ALPHA_SUN - GL_GLOBAL_ALPHA_FACTOR_SUN - GL_RESTART_SUN - GL_REPLACE_MIDDLE_SUN - GL_REPLACE_OLDEST_SUN - GL_TRIANGLE_LIST_SUN - GL_REPLACEMENT_CODE_SUN - GL_REPLACEMENT_CODE_ARRAY_SUN - GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN - GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN - GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN - GL_R1UI_V3F_SUN - GL_R1UI_C4UB_V3F_SUN - GL_R1UI_C3F_V3F_SUN - GL_R1UI_N3F_V3F_SUN - GL_R1UI_C4F_N3F_V3F_SUN - GL_R1UI_T2F_V3F_SUN - GL_R1UI_T2F_N3F_V3F_SUN - GL_R1UI_T2F_C4F_N3F_V3F_SUN - GL_BLEND_DST_RGB_EXT - GL_BLEND_SRC_RGB_EXT - GL_BLEND_DST_ALPHA_EXT - GL_BLEND_SRC_ALPHA_EXT - GL_RED_MIN_CLAMP_INGR - GL_GREEN_MIN_CLAMP_INGR - GL_BLUE_MIN_CLAMP_INGR - GL_ALPHA_MIN_CLAMP_INGR - GL_RED_MAX_CLAMP_INGR - GL_GREEN_MAX_CLAMP_INGR - GL_BLUE_MAX_CLAMP_INGR - GL_ALPHA_MAX_CLAMP_INGR - GL_INTERLACE_READ_INGR - GL_INCR_WRAP_EXT - GL_DECR_WRAP_EXT - GL_422_EXT - GL_422_REV_EXT - GL_422_AVERAGE_EXT - GL_422_REV_AVERAGE_EXT - GL_NORMAL_MAP_NV - GL_REFLECTION_MAP_NV - GL_NORMAL_MAP_EXT - GL_REFLECTION_MAP_EXT - GL_TEXTURE_CUBE_MAP_EXT - GL_TEXTURE_BINDING_CUBE_MAP_EXT - GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT - GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT - GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT - GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT - GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT - GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT - GL_PROXY_TEXTURE_CUBE_MAP_EXT - GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT - GL_WRAP_BORDER_SUN - GL_MAX_TEXTURE_LOD_BIAS_EXT - GL_TEXTURE_FILTER_CONTROL_EXT - GL_TEXTURE_LOD_BIAS_EXT - GL_TEXTURE_MAX_ANISOTROPY_EXT - GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT - GL_MODELVIEW0_STACK_DEPTH_EXT - GL_MODELVIEW1_STACK_DEPTH_EXT - GL_MODELVIEW0_MATRIX_EXT - GL_MODELVIEW1_MATRIX_EXT - GL_VERTEX_WEIGHTING_EXT - GL_MODELVIEW0_EXT - GL_MODELVIEW1_EXT - GL_CURRENT_VERTEX_WEIGHT_EXT - GL_VERTEX_WEIGHT_ARRAY_EXT - GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT - GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT - GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT - GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT - GL_MAX_SHININESS_NV - GL_MAX_SPOT_EXPONENT_NV - GL_VERTEX_ARRAY_RANGE_NV - GL_VERTEX_ARRAY_RANGE_LENGTH_NV - GL_VERTEX_ARRAY_RANGE_VALID_NV - GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV - GL_VERTEX_ARRAY_RANGE_POINTER_NV - GL_REGISTER_COMBINERS_NV - GL_VARIABLE_A_NV - GL_VARIABLE_B_NV - GL_VARIABLE_C_NV - GL_VARIABLE_D_NV - GL_VARIABLE_E_NV - GL_VARIABLE_F_NV - GL_VARIABLE_G_NV - GL_CONSTANT_COLOR0_NV - GL_CONSTANT_COLOR1_NV - GL_PRIMARY_COLOR_NV - GL_SECONDARY_COLOR_NV - GL_SPARE0_NV - GL_SPARE1_NV - GL_DISCARD_NV - GL_E_TIMES_F_NV - GL_SPARE0_PLUS_SECONDARY_COLOR_NV - GL_UNSIGNED_IDENTITY_NV - GL_UNSIGNED_INVERT_NV - GL_EXPAND_NORMAL_NV - GL_EXPAND_NEGATE_NV - GL_HALF_BIAS_NORMAL_NV - GL_HALF_BIAS_NEGATE_NV - GL_SIGNED_IDENTITY_NV - GL_SIGNED_NEGATE_NV - GL_SCALE_BY_TWO_NV - GL_SCALE_BY_FOUR_NV - GL_SCALE_BY_ONE_HALF_NV - GL_BIAS_BY_NEGATIVE_ONE_HALF_NV - GL_COMBINER_INPUT_NV - GL_COMBINER_MAPPING_NV - GL_COMBINER_COMPONENT_USAGE_NV - GL_COMBINER_AB_DOT_PRODUCT_NV - GL_COMBINER_CD_DOT_PRODUCT_NV - GL_COMBINER_MUX_SUM_NV - GL_COMBINER_SCALE_NV - GL_COMBINER_BIAS_NV - GL_COMBINER_AB_OUTPUT_NV - GL_COMBINER_CD_OUTPUT_NV - GL_COMBINER_SUM_OUTPUT_NV - GL_MAX_GENERAL_COMBINERS_NV - GL_NUM_GENERAL_COMBINERS_NV - GL_COLOR_SUM_CLAMP_NV - GL_COMBINER0_NV - GL_COMBINER1_NV - GL_COMBINER2_NV - GL_COMBINER3_NV - GL_COMBINER4_NV - GL_COMBINER5_NV - GL_COMBINER6_NV - GL_COMBINER7_NV - GL_FOG_DISTANCE_MODE_NV - GL_EYE_RADIAL_NV - GL_EYE_PLANE_ABSOLUTE_NV - GL_EMBOSS_LIGHT_NV - GL_EMBOSS_CONSTANT_NV - GL_EMBOSS_MAP_NV - GL_COMBINE4_NV - GL_SOURCE3_RGB_NV - GL_SOURCE3_ALPHA_NV - GL_OPERAND3_RGB_NV - GL_OPERAND3_ALPHA_NV - GL_COMPRESSED_RGB_S3TC_DXT1_EXT - GL_COMPRESSED_RGBA_S3TC_DXT1_EXT - GL_COMPRESSED_RGBA_S3TC_DXT3_EXT - GL_COMPRESSED_RGBA_S3TC_DXT5_EXT - GL_CULL_VERTEX_IBM - GL_VERTEX_ARRAY_LIST_IBM - GL_NORMAL_ARRAY_LIST_IBM - GL_COLOR_ARRAY_LIST_IBM - GL_INDEX_ARRAY_LIST_IBM - GL_TEXTURE_COORD_ARRAY_LIST_IBM - GL_EDGE_FLAG_ARRAY_LIST_IBM - GL_FOG_COORDINATE_ARRAY_LIST_IBM - GL_SECONDARY_COLOR_ARRAY_LIST_IBM - GL_VERTEX_ARRAY_LIST_STRIDE_IBM - GL_NORMAL_ARRAY_LIST_STRIDE_IBM - GL_COLOR_ARRAY_LIST_STRIDE_IBM - GL_INDEX_ARRAY_LIST_STRIDE_IBM - GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM - GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM - GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM - GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM - GL_PACK_SUBSAMPLE_RATE_SGIX - GL_UNPACK_SUBSAMPLE_RATE_SGIX - GL_PIXEL_SUBSAMPLE_4444_SGIX - GL_PIXEL_SUBSAMPLE_2424_SGIX - GL_PIXEL_SUBSAMPLE_4242_SGIX - GL_YCRCB_SGIX - GL_YCRCBA_SGIX - GL_DEPTH_PASS_INSTRUMENT_SGIX - GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX - GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX - GL_COMPRESSED_RGB_FXT1_3DFX - GL_COMPRESSED_RGBA_FXT1_3DFX - GL_MULTISAMPLE_3DFX - GL_SAMPLE_BUFFERS_3DFX - GL_SAMPLES_3DFX - GL_MULTISAMPLE_BIT_3DFX - GL_MULTISAMPLE_EXT - GL_SAMPLE_ALPHA_TO_MASK_EXT - GL_SAMPLE_ALPHA_TO_ONE_EXT - GL_SAMPLE_MASK_EXT - GL_1PASS_EXT - GL_2PASS_0_EXT - GL_2PASS_1_EXT - GL_4PASS_0_EXT - GL_4PASS_1_EXT - GL_4PASS_2_EXT - GL_4PASS_3_EXT - GL_SAMPLE_BUFFERS_EXT - GL_SAMPLES_EXT - GL_SAMPLE_MASK_VALUE_EXT - GL_SAMPLE_MASK_INVERT_EXT - GL_SAMPLE_PATTERN_EXT - GL_MULTISAMPLE_BIT_EXT - GL_VERTEX_PRECLIP_SGIX - GL_VERTEX_PRECLIP_HINT_SGIX - GL_CONVOLUTION_HINT_SGIX - GL_PACK_RESAMPLE_SGIX - GL_UNPACK_RESAMPLE_SGIX - GL_RESAMPLE_REPLICATE_SGIX - GL_RESAMPLE_ZERO_FILL_SGIX - GL_RESAMPLE_DECIMATE_SGIX - GL_EYE_DISTANCE_TO_POINT_SGIS - GL_OBJECT_DISTANCE_TO_POINT_SGIS - GL_EYE_DISTANCE_TO_LINE_SGIS - GL_OBJECT_DISTANCE_TO_LINE_SGIS - GL_EYE_POINT_SGIS - GL_OBJECT_POINT_SGIS - GL_EYE_LINE_SGIS - GL_OBJECT_LINE_SGIS - GL_TEXTURE_COLOR_WRITEMASK_SGIS - GL_DOT3_RGB_EXT - GL_DOT3_RGBA_EXT - GL_MIRROR_CLAMP_ATI - GL_MIRROR_CLAMP_TO_EDGE_ATI - GL_ALL_COMPLETED_NV - GL_FENCE_STATUS_NV - GL_FENCE_CONDITION_NV - GL_MIRRORED_REPEAT_IBM - GL_EVAL_2D_NV - GL_EVAL_TRIANGULAR_2D_NV - GL_MAP_TESSELLATION_NV - GL_MAP_ATTRIB_U_ORDER_NV - GL_MAP_ATTRIB_V_ORDER_NV - GL_EVAL_FRACTIONAL_TESSELLATION_NV - GL_EVAL_VERTEX_ATTRIB0_NV - GL_EVAL_VERTEX_ATTRIB1_NV - GL_EVAL_VERTEX_ATTRIB2_NV - GL_EVAL_VERTEX_ATTRIB3_NV - GL_EVAL_VERTEX_ATTRIB4_NV - GL_EVAL_VERTEX_ATTRIB5_NV - GL_EVAL_VERTEX_ATTRIB6_NV - GL_EVAL_VERTEX_ATTRIB7_NV - GL_EVAL_VERTEX_ATTRIB8_NV - GL_EVAL_VERTEX_ATTRIB9_NV - GL_EVAL_VERTEX_ATTRIB10_NV - GL_EVAL_VERTEX_ATTRIB11_NV - GL_EVAL_VERTEX_ATTRIB12_NV - GL_EVAL_VERTEX_ATTRIB13_NV - GL_EVAL_VERTEX_ATTRIB14_NV - GL_EVAL_VERTEX_ATTRIB15_NV - GL_MAX_MAP_TESSELLATION_NV - GL_MAX_RATIONAL_EVAL_ORDER_NV - GL_DEPTH_STENCIL_NV - GL_UNSIGNED_INT_24_8_NV - GL_PER_STAGE_CONSTANTS_NV - GL_TEXTURE_RECTANGLE_NV - GL_TEXTURE_BINDING_RECTANGLE_NV - GL_PROXY_TEXTURE_RECTANGLE_NV - GL_MAX_RECTANGLE_TEXTURE_SIZE_NV - GL_OFFSET_TEXTURE_RECTANGLE_NV - GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV - GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV - GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV - GL_UNSIGNED_INT_S8_S8_8_8_NV - GL_UNSIGNED_INT_8_8_S8_S8_REV_NV - GL_DSDT_MAG_INTENSITY_NV - GL_SHADER_CONSISTENT_NV - GL_TEXTURE_SHADER_NV - GL_SHADER_OPERATION_NV - GL_CULL_MODES_NV - GL_OFFSET_TEXTURE_MATRIX_NV - GL_OFFSET_TEXTURE_SCALE_NV - GL_OFFSET_TEXTURE_BIAS_NV - GL_OFFSET_TEXTURE_2D_MATRIX_NV - GL_OFFSET_TEXTURE_2D_SCALE_NV - GL_OFFSET_TEXTURE_2D_BIAS_NV - GL_PREVIOUS_TEXTURE_INPUT_NV - GL_CONST_EYE_NV - GL_PASS_THROUGH_NV - GL_CULL_FRAGMENT_NV - GL_OFFSET_TEXTURE_2D_NV - GL_DEPENDENT_AR_TEXTURE_2D_NV - GL_DEPENDENT_GB_TEXTURE_2D_NV - GL_DOT_PRODUCT_NV - GL_DOT_PRODUCT_DEPTH_REPLACE_NV - GL_DOT_PRODUCT_TEXTURE_2D_NV - GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV - GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV - GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV - GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV - GL_HILO_NV - GL_DSDT_NV - GL_DSDT_MAG_NV - GL_DSDT_MAG_VIB_NV - GL_HILO16_NV - GL_SIGNED_HILO_NV - GL_SIGNED_HILO16_NV - GL_SIGNED_RGBA_NV - GL_SIGNED_RGBA8_NV - GL_SIGNED_RGB_NV - GL_SIGNED_RGB8_NV - GL_SIGNED_LUMINANCE_NV - GL_SIGNED_LUMINANCE8_NV - GL_SIGNED_LUMINANCE_ALPHA_NV - GL_SIGNED_LUMINANCE8_ALPHA8_NV - GL_SIGNED_ALPHA_NV - GL_SIGNED_ALPHA8_NV - GL_SIGNED_INTENSITY_NV - GL_SIGNED_INTENSITY8_NV - GL_DSDT8_NV - GL_DSDT8_MAG8_NV - GL_DSDT8_MAG8_INTENSITY8_NV - GL_SIGNED_RGB_UNSIGNED_ALPHA_NV - GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV - GL_HI_SCALE_NV - GL_LO_SCALE_NV - GL_DS_SCALE_NV - GL_DT_SCALE_NV - GL_MAGNITUDE_SCALE_NV - GL_VIBRANCE_SCALE_NV - GL_HI_BIAS_NV - GL_LO_BIAS_NV - GL_DS_BIAS_NV - GL_DT_BIAS_NV - GL_MAGNITUDE_BIAS_NV - GL_VIBRANCE_BIAS_NV - GL_TEXTURE_BORDER_VALUES_NV - GL_TEXTURE_HI_SIZE_NV - GL_TEXTURE_LO_SIZE_NV - GL_TEXTURE_DS_SIZE_NV - GL_TEXTURE_DT_SIZE_NV - GL_TEXTURE_MAG_SIZE_NV - GL_DOT_PRODUCT_TEXTURE_3D_NV - GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV - GL_VERTEX_PROGRAM_NV - GL_VERTEX_STATE_PROGRAM_NV - GL_ATTRIB_ARRAY_SIZE_NV - GL_ATTRIB_ARRAY_STRIDE_NV - GL_ATTRIB_ARRAY_TYPE_NV - GL_CURRENT_ATTRIB_NV - GL_PROGRAM_LENGTH_NV - GL_PROGRAM_STRING_NV - GL_MODELVIEW_PROJECTION_NV - GL_IDENTITY_NV - GL_INVERSE_NV - GL_TRANSPOSE_NV - GL_INVERSE_TRANSPOSE_NV - GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV - GL_MAX_TRACK_MATRICES_NV - GL_MATRIX0_NV - GL_MATRIX1_NV - GL_MATRIX2_NV - GL_MATRIX3_NV - GL_MATRIX4_NV - GL_MATRIX5_NV - GL_MATRIX6_NV - GL_MATRIX7_NV - GL_CURRENT_MATRIX_STACK_DEPTH_NV - GL_CURRENT_MATRIX_NV - GL_VERTEX_PROGRAM_POINT_SIZE_NV - GL_VERTEX_PROGRAM_TWO_SIDE_NV - GL_PROGRAM_PARAMETER_NV - GL_ATTRIB_ARRAY_POINTER_NV - GL_PROGRAM_TARGET_NV - GL_PROGRAM_RESIDENT_NV - GL_TRACK_MATRIX_NV - GL_TRACK_MATRIX_TRANSFORM_NV - GL_VERTEX_PROGRAM_BINDING_NV - GL_PROGRAM_ERROR_POSITION_NV - GL_VERTEX_ATTRIB_ARRAY0_NV - GL_VERTEX_ATTRIB_ARRAY1_NV - GL_VERTEX_ATTRIB_ARRAY2_NV - GL_VERTEX_ATTRIB_ARRAY3_NV - GL_VERTEX_ATTRIB_ARRAY4_NV - GL_VERTEX_ATTRIB_ARRAY5_NV - GL_VERTEX_ATTRIB_ARRAY6_NV - GL_VERTEX_ATTRIB_ARRAY7_NV - GL_VERTEX_ATTRIB_ARRAY8_NV - GL_VERTEX_ATTRIB_ARRAY9_NV - GL_VERTEX_ATTRIB_ARRAY10_NV - GL_VERTEX_ATTRIB_ARRAY11_NV - GL_VERTEX_ATTRIB_ARRAY12_NV - GL_VERTEX_ATTRIB_ARRAY13_NV - GL_VERTEX_ATTRIB_ARRAY14_NV - GL_VERTEX_ATTRIB_ARRAY15_NV - GL_MAP1_VERTEX_ATTRIB0_4_NV - GL_MAP1_VERTEX_ATTRIB1_4_NV - GL_MAP1_VERTEX_ATTRIB2_4_NV - GL_MAP1_VERTEX_ATTRIB3_4_NV - GL_MAP1_VERTEX_ATTRIB4_4_NV - GL_MAP1_VERTEX_ATTRIB5_4_NV - GL_MAP1_VERTEX_ATTRIB6_4_NV - GL_MAP1_VERTEX_ATTRIB7_4_NV - GL_MAP1_VERTEX_ATTRIB8_4_NV - GL_MAP1_VERTEX_ATTRIB9_4_NV - GL_MAP1_VERTEX_ATTRIB10_4_NV - GL_MAP1_VERTEX_ATTRIB11_4_NV - GL_MAP1_VERTEX_ATTRIB12_4_NV - GL_MAP1_VERTEX_ATTRIB13_4_NV - GL_MAP1_VERTEX_ATTRIB14_4_NV - GL_MAP1_VERTEX_ATTRIB15_4_NV - GL_MAP2_VERTEX_ATTRIB0_4_NV - GL_MAP2_VERTEX_ATTRIB1_4_NV - GL_MAP2_VERTEX_ATTRIB2_4_NV - GL_MAP2_VERTEX_ATTRIB3_4_NV - GL_MAP2_VERTEX_ATTRIB4_4_NV - GL_MAP2_VERTEX_ATTRIB5_4_NV - GL_MAP2_VERTEX_ATTRIB6_4_NV - GL_MAP2_VERTEX_ATTRIB7_4_NV - GL_MAP2_VERTEX_ATTRIB8_4_NV - GL_MAP2_VERTEX_ATTRIB9_4_NV - GL_MAP2_VERTEX_ATTRIB10_4_NV - GL_MAP2_VERTEX_ATTRIB11_4_NV - GL_MAP2_VERTEX_ATTRIB12_4_NV - GL_MAP2_VERTEX_ATTRIB13_4_NV - GL_MAP2_VERTEX_ATTRIB14_4_NV - GL_MAP2_VERTEX_ATTRIB15_4_NV - GL_TEXTURE_MAX_CLAMP_S_SGIX - GL_TEXTURE_MAX_CLAMP_T_SGIX - GL_TEXTURE_MAX_CLAMP_R_SGIX - GL_SCALEBIAS_HINT_SGIX - GL_INTERLACE_OML - GL_INTERLACE_READ_OML - GL_FORMAT_SUBSAMPLE_24_24_OML - GL_FORMAT_SUBSAMPLE_244_244_OML - GL_PACK_RESAMPLE_OML - GL_UNPACK_RESAMPLE_OML - GL_RESAMPLE_REPLICATE_OML - GL_RESAMPLE_ZERO_FILL_OML - GL_RESAMPLE_AVERAGE_OML - GL_RESAMPLE_DECIMATE_OML - GL_DEPTH_STENCIL_TO_RGBA_NV - GL_DEPTH_STENCIL_TO_BGRA_NV - GL_BUMP_ROT_MATRIX_ATI - GL_BUMP_ROT_MATRIX_SIZE_ATI - GL_BUMP_NUM_TEX_UNITS_ATI - GL_BUMP_TEX_UNITS_ATI - GL_DUDV_ATI - GL_DU8DV8_ATI - GL_BUMP_ENVMAP_ATI - GL_BUMP_TARGET_ATI - GL_FRAGMENT_SHADER_ATI - GL_REG_0_ATI - GL_REG_1_ATI - GL_REG_2_ATI - GL_REG_3_ATI - GL_REG_4_ATI - GL_REG_5_ATI - GL_REG_6_ATI - GL_REG_7_ATI - GL_REG_8_ATI - GL_REG_9_ATI - GL_REG_10_ATI - GL_REG_11_ATI - GL_REG_12_ATI - GL_REG_13_ATI - GL_REG_14_ATI - GL_REG_15_ATI - GL_REG_16_ATI - GL_REG_17_ATI - GL_REG_18_ATI - GL_REG_19_ATI - GL_REG_20_ATI - GL_REG_21_ATI - GL_REG_22_ATI - GL_REG_23_ATI - GL_REG_24_ATI - GL_REG_25_ATI - GL_REG_26_ATI - GL_REG_27_ATI - GL_REG_28_ATI - GL_REG_29_ATI - GL_REG_30_ATI - GL_REG_31_ATI - GL_CON_0_ATI - GL_CON_1_ATI - GL_CON_2_ATI - GL_CON_3_ATI - GL_CON_4_ATI - GL_CON_5_ATI - GL_CON_6_ATI - GL_CON_7_ATI - GL_CON_8_ATI - GL_CON_9_ATI - GL_CON_10_ATI - GL_CON_11_ATI - GL_CON_12_ATI - GL_CON_13_ATI - GL_CON_14_ATI - GL_CON_15_ATI - GL_CON_16_ATI - GL_CON_17_ATI - GL_CON_18_ATI - GL_CON_19_ATI - GL_CON_20_ATI - GL_CON_21_ATI - GL_CON_22_ATI - GL_CON_23_ATI - GL_CON_24_ATI - GL_CON_25_ATI - GL_CON_26_ATI - GL_CON_27_ATI - GL_CON_28_ATI - GL_CON_29_ATI - GL_CON_30_ATI - GL_CON_31_ATI - GL_MOV_ATI - GL_ADD_ATI - GL_MUL_ATI - GL_SUB_ATI - GL_DOT3_ATI - GL_DOT4_ATI - GL_MAD_ATI - GL_LERP_ATI - GL_CND_ATI - GL_CND0_ATI - GL_DOT2_ADD_ATI - GL_SECONDARY_INTERPOLATOR_ATI - GL_NUM_FRAGMENT_REGISTERS_ATI - GL_NUM_FRAGMENT_CONSTANTS_ATI - GL_NUM_PASSES_ATI - GL_NUM_INSTRUCTIONS_PER_PASS_ATI - GL_NUM_INSTRUCTIONS_TOTAL_ATI - GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI - GL_NUM_LOOPBACK_COMPONENTS_ATI - GL_COLOR_ALPHA_PAIRING_ATI - GL_SWIZZLE_STR_ATI - GL_SWIZZLE_STQ_ATI - GL_SWIZZLE_STR_DR_ATI - GL_SWIZZLE_STQ_DQ_ATI - GL_SWIZZLE_STRQ_ATI - GL_SWIZZLE_STRQ_DQ_ATI - GL_RED_BIT_ATI - GL_GREEN_BIT_ATI - GL_BLUE_BIT_ATI - GL_2X_BIT_ATI - GL_4X_BIT_ATI - GL_8X_BIT_ATI - GL_HALF_BIT_ATI - GL_QUARTER_BIT_ATI - GL_EIGHTH_BIT_ATI - GL_SATURATE_BIT_ATI - GL_COMP_BIT_ATI - GL_NEGATE_BIT_ATI - GL_BIAS_BIT_ATI - GL_PN_TRIANGLES_ATI - GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI - GL_PN_TRIANGLES_POINT_MODE_ATI - GL_PN_TRIANGLES_NORMAL_MODE_ATI - GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI - GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI - GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI - GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI - GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI - GL_STATIC_ATI - GL_DYNAMIC_ATI - GL_PRESERVE_ATI - GL_DISCARD_ATI - GL_OBJECT_BUFFER_SIZE_ATI - GL_OBJECT_BUFFER_USAGE_ATI - GL_ARRAY_OBJECT_BUFFER_ATI - GL_ARRAY_OBJECT_OFFSET_ATI - GL_VERTEX_SHADER_EXT - GL_VERTEX_SHADER_BINDING_EXT - GL_OP_INDEX_EXT - GL_OP_NEGATE_EXT - GL_OP_DOT3_EXT - GL_OP_DOT4_EXT - GL_OP_MUL_EXT - GL_OP_ADD_EXT - GL_OP_MADD_EXT - GL_OP_FRAC_EXT - GL_OP_MAX_EXT - GL_OP_MIN_EXT - GL_OP_SET_GE_EXT - GL_OP_SET_LT_EXT - GL_OP_CLAMP_EXT - GL_OP_FLOOR_EXT - GL_OP_ROUND_EXT - GL_OP_EXP_BASE_2_EXT - GL_OP_LOG_BASE_2_EXT - GL_OP_POWER_EXT - GL_OP_RECIP_EXT - GL_OP_RECIP_SQRT_EXT - GL_OP_SUB_EXT - GL_OP_CROSS_PRODUCT_EXT - GL_OP_MULTIPLY_MATRIX_EXT - GL_OP_MOV_EXT - GL_OUTPUT_VERTEX_EXT - GL_OUTPUT_COLOR0_EXT - GL_OUTPUT_COLOR1_EXT - GL_OUTPUT_TEXTURE_COORD0_EXT - GL_OUTPUT_TEXTURE_COORD1_EXT - GL_OUTPUT_TEXTURE_COORD2_EXT - GL_OUTPUT_TEXTURE_COORD3_EXT - GL_OUTPUT_TEXTURE_COORD4_EXT - GL_OUTPUT_TEXTURE_COORD5_EXT - GL_OUTPUT_TEXTURE_COORD6_EXT - GL_OUTPUT_TEXTURE_COORD7_EXT - GL_OUTPUT_TEXTURE_COORD8_EXT - GL_OUTPUT_TEXTURE_COORD9_EXT - GL_OUTPUT_TEXTURE_COORD10_EXT - GL_OUTPUT_TEXTURE_COORD11_EXT - GL_OUTPUT_TEXTURE_COORD12_EXT - GL_OUTPUT_TEXTURE_COORD13_EXT - GL_OUTPUT_TEXTURE_COORD14_EXT - GL_OUTPUT_TEXTURE_COORD15_EXT - GL_OUTPUT_TEXTURE_COORD16_EXT - GL_OUTPUT_TEXTURE_COORD17_EXT - GL_OUTPUT_TEXTURE_COORD18_EXT - GL_OUTPUT_TEXTURE_COORD19_EXT - GL_OUTPUT_TEXTURE_COORD20_EXT - GL_OUTPUT_TEXTURE_COORD21_EXT - GL_OUTPUT_TEXTURE_COORD22_EXT - GL_OUTPUT_TEXTURE_COORD23_EXT - GL_OUTPUT_TEXTURE_COORD24_EXT - GL_OUTPUT_TEXTURE_COORD25_EXT - GL_OUTPUT_TEXTURE_COORD26_EXT - GL_OUTPUT_TEXTURE_COORD27_EXT - GL_OUTPUT_TEXTURE_COORD28_EXT - GL_OUTPUT_TEXTURE_COORD29_EXT - GL_OUTPUT_TEXTURE_COORD30_EXT - GL_OUTPUT_TEXTURE_COORD31_EXT - GL_OUTPUT_FOG_EXT - GL_SCALAR_EXT - GL_VECTOR_EXT - GL_MATRIX_EXT - GL_VARIANT_EXT - GL_INVARIANT_EXT - GL_LOCAL_CONSTANT_EXT - GL_LOCAL_EXT - GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT - GL_MAX_VERTEX_SHADER_VARIANTS_EXT - GL_MAX_VERTEX_SHADER_INVARIANTS_EXT - GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT - GL_MAX_VERTEX_SHADER_LOCALS_EXT - GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT - GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT - GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT - GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT - GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT - GL_VERTEX_SHADER_INSTRUCTIONS_EXT - GL_VERTEX_SHADER_VARIANTS_EXT - GL_VERTEX_SHADER_INVARIANTS_EXT - GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT - GL_VERTEX_SHADER_LOCALS_EXT - GL_VERTEX_SHADER_OPTIMIZED_EXT - GL_X_EXT - GL_Y_EXT - GL_Z_EXT - GL_W_EXT - GL_NEGATIVE_X_EXT - GL_NEGATIVE_Y_EXT - GL_NEGATIVE_Z_EXT - GL_NEGATIVE_W_EXT - GL_ZERO_EXT - GL_ONE_EXT - GL_NEGATIVE_ONE_EXT - GL_NORMALIZED_RANGE_EXT - GL_FULL_RANGE_EXT - GL_CURRENT_VERTEX_EXT - GL_MVP_MATRIX_EXT - GL_VARIANT_VALUE_EXT - GL_VARIANT_DATATYPE_EXT - GL_VARIANT_ARRAY_STRIDE_EXT - GL_VARIANT_ARRAY_TYPE_EXT - GL_VARIANT_ARRAY_EXT - GL_VARIANT_ARRAY_POINTER_EXT - GL_INVARIANT_VALUE_EXT - GL_INVARIANT_DATATYPE_EXT - GL_LOCAL_CONSTANT_VALUE_EXT - GL_LOCAL_CONSTANT_DATATYPE_EXT - GL_MAX_VERTEX_STREAMS_ATI - GL_VERTEX_STREAM0_ATI - GL_VERTEX_STREAM1_ATI - GL_VERTEX_STREAM2_ATI - GL_VERTEX_STREAM3_ATI - GL_VERTEX_STREAM4_ATI - GL_VERTEX_STREAM5_ATI - GL_VERTEX_STREAM6_ATI - GL_VERTEX_STREAM7_ATI - GL_VERTEX_SOURCE_ATI - GL_ELEMENT_ARRAY_ATI - GL_ELEMENT_ARRAY_TYPE_ATI - GL_ELEMENT_ARRAY_POINTER_ATI - GL_QUAD_MESH_SUN - GL_TRIANGLE_MESH_SUN - GL_SLICE_ACCUM_SUN - GL_MULTISAMPLE_FILTER_HINT_NV - GL_DEPTH_CLAMP_NV - GL_PIXEL_COUNTER_BITS_NV - GL_CURRENT_OCCLUSION_QUERY_ID_NV - GL_PIXEL_COUNT_NV - GL_PIXEL_COUNT_AVAILABLE_NV - GL_POINT_SPRITE_NV - GL_COORD_REPLACE_NV - GL_POINT_SPRITE_R_MODE_NV - GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV - GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV - GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV - GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV - GL_OFFSET_HILO_TEXTURE_2D_NV - GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV - GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV - GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV - GL_DEPENDENT_HILO_TEXTURE_2D_NV - GL_DEPENDENT_RGB_TEXTURE_3D_NV - GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV - GL_DOT_PRODUCT_PASS_THROUGH_NV - GL_DOT_PRODUCT_TEXTURE_1D_NV - GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV - GL_HILO8_NV - GL_SIGNED_HILO8_NV - GL_FORCE_BLUE_TO_ONE_NV - GL_STENCIL_TEST_TWO_SIDE_EXT - GL_ACTIVE_STENCIL_FACE_EXT - GL_TEXT_FRAGMENT_SHADER_ATI - GL_UNPACK_CLIENT_STORAGE_APPLE - GL_ELEMENT_ARRAY_APPLE - GL_ELEMENT_ARRAY_TYPE_APPLE - GL_ELEMENT_ARRAY_POINTER_APPLE - GL_DRAW_PIXELS_APPLE - GL_FENCE_APPLE - GL_VERTEX_ARRAY_BINDING_APPLE - GL_VERTEX_ARRAY_RANGE_APPLE - GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE - GL_VERTEX_ARRAY_STORAGE_HINT_APPLE - GL_VERTEX_ARRAY_RANGE_POINTER_APPLE - GL_STORAGE_CACHED_APPLE - GL_STORAGE_SHARED_APPLE - GL_YCBCR_422_APPLE - GL_UNSIGNED_SHORT_8_8_APPLE - GL_UNSIGNED_SHORT_8_8_REV_APPLE - GL_RGB_S3TC - GL_RGB4_S3TC - GL_RGBA_S3TC - GL_RGBA4_S3TC - GL_MAX_DRAW_BUFFERS_ATI - GL_DRAW_BUFFER0_ATI - GL_DRAW_BUFFER1_ATI - GL_DRAW_BUFFER2_ATI - GL_DRAW_BUFFER3_ATI - GL_DRAW_BUFFER4_ATI - GL_DRAW_BUFFER5_ATI - GL_DRAW_BUFFER6_ATI - GL_DRAW_BUFFER7_ATI - GL_DRAW_BUFFER8_ATI - GL_DRAW_BUFFER9_ATI - GL_DRAW_BUFFER10_ATI - GL_DRAW_BUFFER11_ATI - GL_DRAW_BUFFER12_ATI - GL_DRAW_BUFFER13_ATI - GL_DRAW_BUFFER14_ATI - GL_DRAW_BUFFER15_ATI - GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI - GL_MODULATE_ADD_ATI - GL_MODULATE_SIGNED_ADD_ATI - GL_MODULATE_SUBTRACT_ATI - GL_RGBA_FLOAT32_ATI - GL_RGB_FLOAT32_ATI - GL_ALPHA_FLOAT32_ATI - GL_INTENSITY_FLOAT32_ATI - GL_LUMINANCE_FLOAT32_ATI - GL_LUMINANCE_ALPHA_FLOAT32_ATI - GL_RGBA_FLOAT16_ATI - GL_RGB_FLOAT16_ATI - GL_ALPHA_FLOAT16_ATI - GL_INTENSITY_FLOAT16_ATI - GL_LUMINANCE_FLOAT16_ATI - GL_LUMINANCE_ALPHA_FLOAT16_ATI - GL_FLOAT_R_NV - GL_FLOAT_RG_NV - GL_FLOAT_RGB_NV - GL_FLOAT_RGBA_NV - GL_FLOAT_R16_NV - GL_FLOAT_R32_NV - GL_FLOAT_RG16_NV - GL_FLOAT_RG32_NV - GL_FLOAT_RGB16_NV - GL_FLOAT_RGB32_NV - GL_FLOAT_RGBA16_NV - GL_FLOAT_RGBA32_NV - GL_TEXTURE_FLOAT_COMPONENTS_NV - GL_FLOAT_CLEAR_COLOR_VALUE_NV - GL_FLOAT_RGBA_MODE_NV - GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV - GL_FRAGMENT_PROGRAM_NV - GL_MAX_TEXTURE_COORDS_NV - GL_MAX_TEXTURE_IMAGE_UNITS_NV - GL_FRAGMENT_PROGRAM_BINDING_NV - GL_PROGRAM_ERROR_STRING_NV - GL_HALF_FLOAT_NV - GL_WRITE_PIXEL_DATA_RANGE_NV - GL_READ_PIXEL_DATA_RANGE_NV - GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV - GL_READ_PIXEL_DATA_RANGE_LENGTH_NV - GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV - GL_READ_PIXEL_DATA_RANGE_POINTER_NV - GL_PRIMITIVE_RESTART_NV - GL_PRIMITIVE_RESTART_INDEX_NV - GL_TEXTURE_UNSIGNED_REMAP_MODE_NV - GL_STENCIL_BACK_FUNC_ATI - GL_STENCIL_BACK_FAIL_ATI - GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI - GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI - GL_IMPLEMENTATION_COLOR_READ_TYPE_OES - GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES - GL_DEPTH_BOUNDS_TEST_EXT - GL_DEPTH_BOUNDS_EXT - GL_MIRROR_CLAMP_EXT - GL_MIRROR_CLAMP_TO_EDGE_EXT - GL_MIRROR_CLAMP_TO_BORDER_EXT - GL_BLEND_EQUATION_RGB_EXT - GL_BLEND_EQUATION_ALPHA_EXT - GL_PACK_INVERT_MESA - GL_UNSIGNED_SHORT_8_8_MESA - GL_UNSIGNED_SHORT_8_8_REV_MESA - GL_YCBCR_MESA - GL_PIXEL_PACK_BUFFER_EXT - GL_PIXEL_UNPACK_BUFFER_EXT - GL_PIXEL_PACK_BUFFER_BINDING_EXT - GL_PIXEL_UNPACK_BUFFER_BINDING_EXT - GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV - GL_MAX_PROGRAM_CALL_DEPTH_NV - GL_MAX_PROGRAM_IF_DEPTH_NV - GL_MAX_PROGRAM_LOOP_DEPTH_NV - GL_MAX_PROGRAM_LOOP_COUNT_NV - GL_INVALID_FRAMEBUFFER_OPERATION_EXT - GL_MAX_RENDERBUFFER_SIZE_EXT - GL_FRAMEBUFFER_BINDING_EXT - GL_RENDERBUFFER_BINDING_EXT - GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT - GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT - GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT - GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT - GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT - GL_FRAMEBUFFER_COMPLETE_EXT - GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT - GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT - GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT - GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT - GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT - GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT - GL_FRAMEBUFFER_UNSUPPORTED_EXT - GL_MAX_COLOR_ATTACHMENTS_EXT - GL_COLOR_ATTACHMENT0_EXT - GL_COLOR_ATTACHMENT1_EXT - GL_COLOR_ATTACHMENT2_EXT - GL_COLOR_ATTACHMENT3_EXT - GL_COLOR_ATTACHMENT4_EXT - GL_COLOR_ATTACHMENT5_EXT - GL_COLOR_ATTACHMENT6_EXT - GL_COLOR_ATTACHMENT7_EXT - GL_COLOR_ATTACHMENT8_EXT - GL_COLOR_ATTACHMENT9_EXT - GL_COLOR_ATTACHMENT10_EXT - GL_COLOR_ATTACHMENT11_EXT - GL_COLOR_ATTACHMENT12_EXT - GL_COLOR_ATTACHMENT13_EXT - GL_COLOR_ATTACHMENT14_EXT - GL_COLOR_ATTACHMENT15_EXT - GL_DEPTH_ATTACHMENT_EXT - GL_STENCIL_ATTACHMENT_EXT - GL_FRAMEBUFFER_EXT - GL_RENDERBUFFER_EXT - GL_RENDERBUFFER_WIDTH_EXT - GL_RENDERBUFFER_HEIGHT_EXT - GL_RENDERBUFFER_INTERNAL_FORMAT_EXT - GL_STENCIL_INDEX1_EXT - GL_STENCIL_INDEX4_EXT - GL_STENCIL_INDEX8_EXT - GL_STENCIL_INDEX16_EXT - GL_RENDERBUFFER_RED_SIZE_EXT - GL_RENDERBUFFER_GREEN_SIZE_EXT - GL_RENDERBUFFER_BLUE_SIZE_EXT - GL_RENDERBUFFER_ALPHA_SIZE_EXT - GL_RENDERBUFFER_DEPTH_SIZE_EXT - GL_RENDERBUFFER_STENCIL_SIZE_EXT - GL_CURRENT_BIT - GL_POINT_BIT - GL_LINE_BIT - GL_POLYGON_BIT - GL_POLYGON_STIPPLE_BIT - GL_PIXEL_MODE_BIT - GL_LIGHTING_BIT - GL_FOG_BIT - GL_DEPTH_BUFFER_BIT - GL_ACCUM_BUFFER_BIT - GL_STENCIL_BUFFER_BIT - GL_VIEWPORT_BIT - GL_TRANSFORM_BIT - GL_ENABLE_BIT - GL_COLOR_BUFFER_BIT - GL_HINT_BIT - GL_EVAL_BIT - GL_LIST_BIT - GL_TEXTURE_BIT - GL_SCISSOR_BIT - GL_ALL_ATTRIB_BITS - GL_CLIENT_PIXEL_STORE_BIT - GL_CLIENT_VERTEX_ARRAY_BIT - GL_ALL_CLIENT_ATTRIB_BITS - GL_CLIENT_ALL_ATTRIB_BITS - GL_CG_VERTEX_SHADER_EXT - GL_CG_FRAGMENT_SHADER_EXT - GL_BUFFER_SIZE_ARB - GL_BUFFER_USAGE_ARB - GL_ARRAY_BUFFER_ARB - GL_ELEMENT_ARRAY_BUFFER_ARB - GL_ARRAY_BUFFER_BINDING_ARB - GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB - GL_VERTEX_ARRAY_BUFFER_BINDING_ARB - GL_NORMAL_ARRAY_BUFFER_BINDING_ARB - GL_COLOR_ARRAY_BUFFER_BINDING_ARB - GL_INDEX_ARRAY_BUFFER_BINDING_ARB - GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB - GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB - GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB - GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB - GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB - GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB - GL_READ_ONLY_ARB - GL_WRITE_ONLY_ARB - GL_READ_WRITE_ARB - GL_BUFFER_ACCESS_ARB - GL_BUFFER_MAPPED_ARB - GL_BUFFER_MAP_POINTER_ARB - GL_STREAM_DRAW_ARB - GL_STREAM_READ_ARB - GL_STREAM_COPY_ARB - GL_STATIC_DRAW_ARB - GL_STATIC_READ_ARB - GL_STATIC_COPY_ARB - GL_DYNAMIC_DRAW_ARB - GL_DYNAMIC_READ_ARB - GL_DYNAMIC_COPY_ARB - GL_POINT_SIZE_MIN_ARB - GL_POINT_SIZE_MAX_ARB - GL_POINT_FADE_THRESHOLD_SIZE_ARB - GL_POINT_DISTANCE_ATTENUATION_ARB - GL_MULTISAMPLE_ARB - GL_SAMPLE_ALPHA_TO_COVERAGE_ARB - GL_SAMPLE_ALPHA_TO_ONE_ARB - GL_SAMPLE_COVERAGE_ARB - GL_SAMPLE_BUFFERS_ARB - GL_SAMPLES_ARB - GL_SAMPLE_COVERAGE_VALUE_ARB - GL_SAMPLE_COVERAGE_INVERT_ARB - GL_MULTISAMPLE_BIT_ARB - GL_RGBA_FLOAT_MODE_ARB - GL_CLAMP_VERTEX_COLOR_ARB - GL_CLAMP_FRAGMENT_COLOR_ARB - GL_CLAMP_READ_COLOR_ARB - GL_FIXED_ONLY_ARB -); -# gl_const - -@glu_const = qw( - GLU_SMOOTH - GLU_FLAT - GLU_NONE - GLU_POINT - GLU_LINE - GLU_FILL - GLU_SILHOUETTE - GLU_OUTSIDE - GLU_INSIDE - GLU_BEGIN - GLU_VERTEX - GLU_END - GLU_ERROR - GLU_EDGE_FLAG - GLU_CW - GLU_CCW - GLU_INTERIOR - GLU_EXTERIOR - GLU_UNKNOWN - GLU_TESS_ERROR - GLU_TESS_BEGIN - GLU_TESS_EDGE_FLAG - GLU_TESS_VERTEX - GLU_TESS_COMBINE - GLU_TESS_END - GLU_TESS_ERROR_DATA - GLU_TESS_BEGIN_DATA - GLU_TESS_EDGE_FLAG_DATA - GLU_TESS_VERTEX_DATA - GLU_TESS_COMBINE_DATA - GLU_TESS_END_DATA - GLU_TESS_WINDING_RULE - GLU_TESS_WINDING_ODD - GLU_TESS_WINDING_NONZERO - GLU_TESS_WINDING_POSITIVE - GLU_TESS_WINDING_NEGATIVE - GLU_TESS_WINDING_ABS_GEQ_TWO - GLU_TESS_ERROR1 - GLU_TESS_ERROR2 - GLU_TESS_ERROR3 - GLU_TESS_ERROR4 - GLU_TESS_ERROR5 - GLU_TESS_ERROR6 - GLU_TESS_ERROR7 - GLU_TESS_ERROR8 - GLU_AUTO_LOAD_MATRIX - GLU_CULLING - GLU_SAMPLING_TOLERANCE - GLU_DISPLAY_MODE - GLU_PATH_LENGTH - GLU_PARAMETRIC_ERROR - GLU_DOMAIN_DISTANCE - GLU_MAP1_TRIM_2 - GLU_MAP1_TRIM_3 - GLU_OUTLINE_POLYGON - GLU_OUTLINE_PATCH - GLU_NURBS_ERROR1 - GLU_NURBS_ERROR2 - GLU_NURBS_ERROR3 - GLU_NURBS_ERROR4 - GLU_NURBS_ERROR5 - GLU_NURBS_ERROR6 - GLU_NURBS_ERROR7 - GLU_NURBS_ERROR8 - GLU_NURBS_ERROR9 - GLU_NURBS_ERROR10 - GLU_NURBS_ERROR11 - GLU_NURBS_ERROR12 - GLU_NURBS_ERROR13 - GLU_NURBS_ERROR14 - GLU_NURBS_ERROR15 - GLU_NURBS_ERROR16 - GLU_NURBS_ERROR17 - GLU_NURBS_ERROR18 - GLU_NURBS_ERROR19 - GLU_NURBS_ERROR20 - GLU_NURBS_ERROR21 - GLU_NURBS_ERROR22 - GLU_NURBS_ERROR23 - GLU_NURBS_ERROR24 - GLU_NURBS_ERROR25 - GLU_NURBS_ERROR26 - GLU_NURBS_ERROR27 - GLU_NURBS_ERROR28 - GLU_NURBS_ERROR29 - GLU_NURBS_ERROR30 - GLU_NURBS_ERROR31 - GLU_NURBS_ERROR32 - GLU_NURBS_ERROR33 - GLU_NURBS_ERROR34 - GLU_NURBS_ERROR35 - GLU_NURBS_ERROR36 - GLU_NURBS_ERROR37 - GLU_INVALID_ENUM - GLU_INVALID_VALUE - GLU_OUT_OF_MEMORY - GLU_INCOMPATIBLE_GL_VERSION - GLU_VERSION - GLU_EXTENSIONS - GLU_SAMPLING_METHOD - GLU_PARAMETRIC_TOLERANCE - GLU_U_STEP - GLU_V_STEP - GLU_OBJECT_PARAMETRIC_ERROR_EXT - GLU_OBJECT_PATH_LENGTH_EXT -); - -@glut_const = qw( - GLUT_API_VERSION - GLUT_XLIB_IMPLEMENTATION - GLUT_RGB - GLUT_RGBA - GLUT_INDEX - GLUT_INIT_STATE - GLUT_VERSION - GLUT_SINGLE - GLUT_DOUBLE - GLUT_ACCUM - GLUT_ALPHA - GLUT_DEPTH - GLUT_STENCIL - GLUT_MULTISAMPLE - GLUT_STEREO - GLUT_LUMINANCE - GLUT_LEFT_BUTTON - GLUT_MIDDLE_BUTTON - GLUT_RIGHT_BUTTON - GLUT_DOWN - GLUT_UP - GLUT_KEY_F1 - GLUT_KEY_F2 - GLUT_KEY_F3 - GLUT_KEY_F4 - GLUT_KEY_F5 - GLUT_KEY_F6 - GLUT_KEY_F7 - GLUT_KEY_F8 - GLUT_KEY_F9 - GLUT_KEY_F10 - GLUT_KEY_F11 - GLUT_KEY_F12 - GLUT_KEY_LEFT - GLUT_KEY_UP - GLUT_KEY_RIGHT - GLUT_KEY_DOWN - GLUT_KEY_PAGE_UP - GLUT_KEY_PAGE_DOWN - GLUT_KEY_HOME - GLUT_KEY_END - GLUT_KEY_INSERT - GLUT_LEFT - GLUT_ENTERED - GLUT_MENU_NOT_IN_USE - GLUT_MENU_IN_USE - GLUT_NOT_VISIBLE - GLUT_VISIBLE - GLUT_HIDDEN - GLUT_FULLY_RETAINED - GLUT_PARTIALLY_RETAINED - GLUT_FULLY_COVERED - GLUT_RED - GLUT_GREEN - GLUT_BLUE - GLUT_NORMAL - GLUT_OVERLAY - GLUT_STROKE_ROMAN - GLUT_STROKE_MONO_ROMAN - GLUT_BITMAP_9_BY_15 - GLUT_BITMAP_8_BY_13 - GLUT_BITMAP_TIMES_ROMAN_10 - GLUT_BITMAP_TIMES_ROMAN_24 - GLUT_BITMAP_HELVETICA_10 - GLUT_BITMAP_HELVETICA_12 - GLUT_BITMAP_HELVETICA_18 - GLUT_WINDOW_X - GLUT_WINDOW_Y - GLUT_WINDOW_WIDTH - GLUT_WINDOW_HEIGHT - GLUT_WINDOW_BUFFER_SIZE - GLUT_WINDOW_STENCIL_SIZE - GLUT_WINDOW_DEPTH_SIZE - GLUT_WINDOW_RED_SIZE - GLUT_WINDOW_GREEN_SIZE - GLUT_WINDOW_BLUE_SIZE - GLUT_WINDOW_ALPHA_SIZE - GLUT_WINDOW_ACCUM_RED_SIZE - GLUT_WINDOW_ACCUM_GREEN_SIZE - GLUT_WINDOW_ACCUM_BLUE_SIZE - GLUT_WINDOW_ACCUM_ALPHA_SIZE - GLUT_WINDOW_DOUBLEBUFFER - GLUT_WINDOW_RGBA - GLUT_WINDOW_PARENT - GLUT_WINDOW_NUM_CHILDREN - GLUT_WINDOW_COLORMAP_SIZE - GLUT_WINDOW_NUM_SAMPLES - GLUT_WINDOW_STEREO - GLUT_WINDOW_CURSOR - GLUT_WINDOW_FORMAT_ID - GLUT_SCREEN_WIDTH - GLUT_SCREEN_HEIGHT - GLUT_SCREEN_WIDTH_MM - GLUT_SCREEN_HEIGHT_MM - GLUT_MENU_NUM_ITEMS - GLUT_DISPLAY_MODE_POSSIBLE - GLUT_INIT_WINDOW_X - GLUT_INIT_WINDOW_Y - GLUT_INIT_WINDOW_WIDTH - GLUT_INIT_WINDOW_HEIGHT - GLUT_INIT_DISPLAY_MODE - GLUT_ELAPSED_TIME - GLUT_HAS_KEYBOARD - GLUT_HAS_MOUSE - GLUT_HAS_SPACEBALL - GLUT_HAS_DIAL_AND_BUTTON_BOX - GLUT_HAS_TABLET - GLUT_NUM_MOUSE_BUTTONS - GLUT_NUM_SPACEBALL_BUTTONS - GLUT_NUM_BUTTON_BOX_BUTTONS - GLUT_NUM_DIALS - GLUT_NUM_TABLET_BUTTONS - GLUT_OVERLAY_POSSIBLE - GLUT_LAYER_IN_USE - GLUT_HAS_OVERLAY - GLUT_TRANSPARENT_INDEX - GLUT_NORMAL_DAMAGED - GLUT_OVERLAY_DAMAGED - GLUT_NORMAL - GLUT_OVERLAY - GLUT_ACTIVE_SHIFT - GLUT_ACTIVE_CTRL - GLUT_ACTIVE_ALT - GLUT_CURSOR_RIGHT_ARROW - GLUT_CURSOR_LEFT_ARROW - GLUT_CURSOR_INFO - GLUT_CURSOR_DESTROY - GLUT_CURSOR_HELP - GLUT_CURSOR_CYCLE - GLUT_CURSOR_SPRAY - GLUT_CURSOR_WAIT - GLUT_CURSOR_TEXT - GLUT_CURSOR_CROSSHAIR - GLUT_CURSOR_UP_DOWN - GLUT_CURSOR_LEFT_RIGHT - GLUT_CURSOR_TOP_SIDE - GLUT_CURSOR_BOTTOM_SIDE - GLUT_CURSOR_LEFT_SIDE - GLUT_CURSOR_RIGHT_SIDE - GLUT_CURSOR_TOP_LEFT_CORNER - GLUT_CURSOR_TOP_RIGHT_CORNER - GLUT_CURSOR_BOTTOM_RIGHT_CORNER - GLUT_CURSOR_BOTTOM_LEFT_CORNER - GLUT_CURSOR_INHERIT - GLUT_CURSOR_NONE - GLUT_CURSOR_FULL_CROSSHAIR - GLUT_ACTION_EXIT - GLUT_ACTION_GLUTMAINLOOP_RETURNS - GLUT_ACTION_CONTINUE_EXECUTION - GLUT_ACTION_ON_WINDOW_CLOSE - GLUT_GAME_MODE_ACTIVE - GLUT_GAME_MODE_POSSIBLE - GLUT_GAME_MODE_WIDTH - GLUT_GAME_MODE_HEIGHT - GLUT_GAME_MODE_PIXEL_DEPTH - GLUT_GAME_MODE_REFRESH_RATE - GLUT_GAME_MODE_DISPLAY_CHANGED -); - -@glx_const = qw( - GLX_USE_GL - GLX_BUFFER_SIZE - GLX_LEVEL - GLX_RGBA - GLX_DOUBLEBUFFER - GLX_STEREO - GLX_AUX_BUFFERS - GLX_RED_SIZE - GLX_GREEN_SIZE - GLX_BLUE_SIZE - GLX_ALPHA_SIZE - GLX_DEPTH_SIZE - GLX_STENCIL_SIZE - GLX_ACCUM_RED_SIZE - GLX_ACCUM_GREEN_SIZE - GLX_ACCUM_BLUE_SIZE - GLX_ACCUM_ALPHA_SIZE - GLX_X_VISUAL_TYPE_EXT - GLX_TRANSPARENT_TYPE_EXT - GLX_TRANSPARENT_INDEX_VALUE_EXT - GLX_TRANSPARENT_RED_VALUE_EXT - GLX_TRANSPARENT_GREEN_VALUE_EXT - GLX_TRANSPARENT_BLUE_VALUE_EXT - GLX_TRANSPARENT_ALPHA_VALUE_EXT - X_PROTOCOL - X_PROTOCOL_REVISION - NoEventMask - KeyPressMask - KeyReleaseMask - ButtonPressMask - ButtonReleaseMask - EnterWindowMask - LeaveWindowMask - PointerMotionMask - PointerMotionHintMask - Button1MotionMask - Button2MotionMask - Button3MotionMask - Button4MotionMask - Button5MotionMask - ButtonMotionMask - KeymapStateMask - ExposureMask - VisibilityChangeMask - StructureNotifyMask - ResizeRedirectMask - SubstructureNotifyMask - SubstructureRedirectMask - FocusChangeMask - PropertyChangeMask - ColormapChangeMask - OwnerGrabButtonMask - KeyPress - KeyRelease - ButtonPress - ButtonRelease - MotionNotify - EnterNotify - LeaveNotify - FocusIn - FocusOut - KeymapNotify - Expose - GraphicsExpose - NoExpose - VisibilityNotify - CreateNotify - DestroyNotify - UnmapNotify - MapNotify - MapRequest - ReparentNotify - ConfigureNotify - ConfigureRequest - GravityNotify - ResizeRequest - CirculateNotify - CirculateRequest - PropertyNotify - SelectionClear - SelectionRequest - SelectionNotify - ColormapNotify - ClientMessage - MappingNotify - LASTEvent - ShiftMask - LockMask - ControlMask - Mod1Mask - Mod2Mask - Mod3Mask - Mod4Mask - Mod5Mask - ShiftMapIndex - LockMapIndex - ControlMapIndex - Mod1MapIndex - Mod2MapIndex - Mod3MapIndex - Mod4MapIndex - Mod5MapIndex - Button1Mask - Button2Mask - Button3Mask - Button4Mask - Button5Mask - AnyModifier - Button1 - Button2 - Button3 - Button4 - Button5 - NotifyNormal - NotifyGrab - NotifyUngrab - NotifyWhileGrabbed - NotifyHint - NotifyAncestor - NotifyVirtual - NotifyInferior - NotifyNonlinear - NotifyNonlinearVirtual - NotifyPointer - NotifyPointerRoot - NotifyDetailNone - VisibilityUnobscured - VisibilityPartiallyObscured - VisibilityFullyObscured - PlaceOnTop - PlaceOnBottom - FamilyInternet - FamilyDECnet - FamilyChaos - PropertyNewValue - PropertyDelete - ColormapUninstalled - ColormapInstalled - GrabModeSync - GrabModeAsync - GrabSuccess - AlreadyGrabbed - GrabInvalidTime - GrabNotViewable - GrabFrozen - AsyncPointer - SyncPointer - ReplayPointer - AsyncKeyboard - SyncKeyboard - ReplayKeyboard - AsyncBoth - SyncBoth - StaticGray - GrayScale - StaticColor - PseudoColor - TrueColor - DirectColor -); - - -# Items to export into callers namespace by default. Note: do not export -# names by default without a very good reason. Use EXPORT_OK instead. -# Do not simply export all your public functions/methods/constants. - -@oldfunctions = qw( - glpOpenWindow - glpMainLoop - glpMoveResizeWindow - glpMoveWindow - glpResizeWindow - glpDisplay - glXSwapBuffers - XPending - glpXNextEvent - glpXQueryPointer - - glpFlush - glpSolidSphere - glpReadTex - - glpClipPlane - glpGetClipPlane - glpLoadMatrixf glpLoadMatrixd glpMultMatrixf glpMultMatrixd - - gluOrtho2D - gluPerspective - gluLookAt - - glAccum - glAlphaFunc - glBegin - glBitmap - glBlendColorEXT - glBlendEquationEXT - glBlendFunc - glCallList - glCallLists - glClear - glClearAccum - glClearColor - glClearDepth - glClearIndex - glClearStencil - glClipPlane - glColor3b - glColor3bv - glColor3d - glColor3dv - glColor3f - glColor3fv - glColor3i - glColor3iv - glColor3s - glColor3sv - glColor3ub - glColor3ubv - glColor3ui - glColor3uiv - glColor3us - glColor3usv - glColor4b - glColor4bv - glColor4d - glColor4dv - glColor4f - glColor4fv - glColor4i - glColor4iv - glColor4s - glColor4sv - glColor4ub - glColor4ubv - glColor4ui - glColor4uiv - glColor4us - glColor4usv - glColorMask - glColorMaterial - glConvolutionFilter1DEXT - glConvolutionFilter2DEXT - glConvolutionParameterfEXT - glConvolutionParameterfvEXT - glConvolutionParameteriEXT - glConvolutionParameterivEXT - glCopyConvolutionFilter1DEXT - glCopyConvolutionFilter2DEXT - glCopyPixels - glCullFace - glDeleteLists - glDepthFunc - glDepthMask - glDepthRange - glDetailTexFuncSGIS - glDisable - glDrawBuffer - glDrawPixels - glEdgeFlag - glEdgeFlagv - glEnable - glEnd - glEndList - glEvalCoord1d - glEvalCoord1dv - glEvalCoord1f - glEvalCoord1fv - glEvalCoord2d - glEvalCoord2dv - glEvalCoord2f - glEvalCoord2fv - glEvalMesh1 - glEvalMesh2 - glEvalPoint1 - glEvalPoint2 - glFeedbackBuffer - glFinish - glFlush - glFogf - glFogfv - glFogi - glFogiv - glFrontFace - glFrustum - glGenLists - glGetBooleanv - glGetClipPlane - glGetConvolutionFilterEXT - glGetConvolutionParameterfvEXT - glGetConvolutionParameterivEXT - glGetDetailTexFuncSGIS - glGetDoublev - glGetError - glGetFloatv - glGetHistogramEXT - glGetHistogramParameterfvEXT - glGetHistogramParameterivEXT - glGetIntegerv - glGetLightfv - glGetLightiv - glGetMapdv - glGetMapfv - glGetMapiv - glGetMaterialfv - glGetMaterialiv - glGetMinmaxEXT - glGetMinmaxParameterfvEXT - glGetMinmaxParameterivEXT - glGetPixelMapfv - glGetPixelMapuiv - glGetPixelMapusv - glGetPolygonStipple - glGetSeparableFilterEXT - glGetSharpenTexFuncSGIS - glGetTexEnvfv - glGetTexEnviv - glGetTexGendv - glGetTexGenfv - glGetTexGeniv - glGetTexImage - glGetTexLevelParameterfv - glGetTexLevelParameteriv - glGetTexParameterfv - glGetTexParameteriv - glHint - glHistogramEXT - glIndexMask - glIndexd - glIndexdv - glIndexf - glIndexfv - glIndexi - glIndexiv - glIndexs - glIndexsv - glInitNames - glIsEnabled - glIsList - glLightModelf - glLightModelfv - glLightModeli - glLightModeliv - glLightf - glLightfv - glLighti - glLightiv - glLineStipple - glLineWidth - glListBase - glLoadIdentity - glLoadMatrixd - glLoadMatrixf - glLoadName - glLogicOp - glMap1d - glMap1f - glMap2d - glMap2f - glMapGrid1d - glMapGrid1f - glMapGrid2d - glMapGrid2f - glMaterialf - glMaterialfv - glMateriali - glMaterialiv - glMatrixMode - glMinmaxEXT - glMultMatrixd - glMultMatrixf - glNewList - glNormal3b - glNormal3bv - glNormal3d - glNormal3dv - glNormal3f - glNormal3fv - glNormal3i - glNormal3iv - glNormal3s - glNormal3sv - glOrtho - glPassThrough - glPixelMapfv - glPixelMapuiv - glPixelMapusv - glPixelStoref - glPixelStorei - glPixelTransferf - glPixelTransferi - glPixelZoom - glPointSize - glPolygonMode - glPolygonOffsetEXT - glPolygonStipple - glPopAttrib - glPopMatrix - glPopName - glPushAttrib - glPushMatrix - glPushName - glRasterPos2d - glRasterPos2dv - glRasterPos2f - glRasterPos2fv - glRasterPos2i - glRasterPos2iv - glRasterPos2s - glRasterPos2sv - glRasterPos3d - glRasterPos3dv - glRasterPos3f - glRasterPos3fv - glRasterPos3i - glRasterPos3iv - glRasterPos3s - glRasterPos3sv - glRasterPos4d - glRasterPos4dv - glRasterPos4f - glRasterPos4fv - glRasterPos4i - glRasterPos4iv - glRasterPos4s - glRasterPos4sv - glReadBuffer - glReadPixels - glRectd - glRectdv - glRectf - glRectfv - glRecti - glRectiv - glRects - glRectsv - glRenderMode - glResetHistogramEXT - glResetMinmaxEXT - glRotated - glRotatef - glSampleMaskSGIS - glSamplePatternSGIS - glScaled - glScalef - glScissor - glSelectBuffer - glSeparableFilter2DEXT - glShadeModel - glSharpenTexFuncSGIS - glStencilFunc - glStencilMask - glStencilOp - glTagSampleBufferSGIX - glTexCoord1d - glTexCoord1dv - glTexCoord1f - glTexCoord1fv - glTexCoord1i - glTexCoord1iv - glTexCoord1s - glTexCoord1sv - glTexCoord2d - glTexCoord2dv - glTexCoord2f - glTexCoord2fv - glTexCoord2i - glTexCoord2iv - glTexCoord2s - glTexCoord2sv - glTexCoord3d - glTexCoord3dv - glTexCoord3f - glTexCoord3fv - glTexCoord3i - glTexCoord3iv - glTexCoord3s - glTexCoord3sv - glTexCoord4d - glTexCoord4dv - glTexCoord4f - glTexCoord4fv - glTexCoord4i - glTexCoord4iv - glTexCoord4s - glTexCoord4sv - glTexEnvf - glTexEnvfv - glTexEnvi - glTexEnviv - glTexGend - glTexGendv - glTexGenf - glTexGenfv - glTexGeni - glTexGeniv - glTexImage1D - glTexImage2D - glTexImage3DEXT - glTexParameterf - glTexParameterfv - glTexParameteri - glTexParameteriv - glTexSubImage1DEXT - glTexSubImage2DEXT - glTexSubImage3DEXT - glTranslated - glTranslatef - glVertex2d - glVertex2dv - glVertex2f - glVertex2fv - glVertex2i - glVertex2iv - glVertex2s - glVertex2sv - glVertex3d - glVertex3dv - glVertex3f - glVertex3fv - glVertex3i - glVertex3iv - glVertex3s - glVertex3sv - glVertex4d - glVertex4dv - glVertex4f - glVertex4fv - glVertex4i - glVertex4iv - glVertex4s - glVertex4sv - glViewport - - X_PROTOCOL - X_PROTOCOL_REVISION - NoEventMask - KeyPressMask - KeyReleaseMask - ButtonPressMask - ButtonReleaseMask - EnterWindowMask - LeaveWindowMask - PointerMotionMask - PointerMotionHintMask - Button1MotionMask - Button2MotionMask - Button3MotionMask - Button4MotionMask - Button5MotionMask - ButtonMotionMask - KeymapStateMask - ExposureMask - VisibilityChangeMask - StructureNotifyMask - ResizeRedirectMask - SubstructureNotifyMask - SubstructureRedirectMask - FocusChangeMask - PropertyChangeMask - ColormapChangeMask - OwnerGrabButtonMask - KeyPress - KeyRelease - ButtonPress - ButtonRelease - MotionNotify - EnterNotify - LeaveNotify - FocusIn - FocusOut - KeymapNotify - Expose - GraphicsExpose - NoExpose - VisibilityNotify - CreateNotify - DestroyNotify - UnmapNotify - MapNotify - MapRequest - ReparentNotify - ConfigureNotify - ConfigureRequest - GravityNotify - ResizeRequest - CirculateNotify - CirculateRequest - PropertyNotify - SelectionClear - SelectionRequest - SelectionNotify - ColormapNotify - ClientMessage - MappingNotify - LASTEvent - ShiftMask - LockMask - ControlMask - Mod1Mask - Mod2Mask - Mod3Mask - Mod4Mask - Mod5Mask - ShiftMapIndex - LockMapIndex - ControlMapIndex - Mod1MapIndex - Mod2MapIndex - Mod3MapIndex - Mod4MapIndex - Mod5MapIndex - Button1Mask - Button2Mask - Button3Mask - Button4Mask - Button5Mask - AnyModifier - Button1 - Button2 - Button3 - Button4 - Button5 - NotifyNormal - NotifyGrab - NotifyUngrab - NotifyWhileGrabbed - NotifyHint - NotifyAncestor - NotifyVirtual - NotifyInferior - NotifyNonlinear - NotifyNonlinearVirtual - NotifyPointer - NotifyPointerRoot - NotifyDetailNone - VisibilityUnobscured - VisibilityPartiallyObscured - VisibilityFullyObscured - PlaceOnTop - PlaceOnBottom - FamilyInternet - FamilyDECnet - FamilyChaos - PropertyNewValue - PropertyDelete - ColormapUninstalled - ColormapInstalled - GrabModeSync - GrabModeAsync - GrabSuccess - AlreadyGrabbed - GrabInvalidTime - GrabNotViewable - GrabFrozen - AsyncPointer - SyncPointer - ReplayPointer - AsyncKeyboard - SyncKeyboard - ReplayKeyboard - AsyncBoth - SyncBoth - StaticGray - GrayScale - StaticColor - PseudoColor - TrueColor - DirectColor -); - -@oldconstants = qw( - GL_CURRENT_BIT - GL_POINT_BIT - GL_LINE_BIT - GL_POLYGON_BIT - GL_POLYGON_STIPPLE_BIT - GL_PIXEL_MODE_BIT - GL_LIGHTING_BIT - GL_FOG_BIT - GL_DEPTH_BUFFER_BIT - GL_ACCUM_BUFFER_BIT - GL_STENCIL_BUFFER_BIT - GL_VIEWPORT_BIT - GL_TRANSFORM_BIT - GL_ENABLE_BIT - GL_COLOR_BUFFER_BIT - GL_HINT_BIT - GL_EVAL_BIT - GL_LIST_BIT - GL_TEXTURE_BIT - GL_SCISSOR_BIT - GL_ALL_ATTRIB_BITS - GL_FALSE - GL_TRUE - GL_POINTS - GL_LINES - GL_LINE_LOOP - GL_LINE_STRIP - GL_TRIANGLES - GL_TRIANGLE_STRIP - GL_TRIANGLE_FAN - GL_QUADS - GL_QUAD_STRIP - GL_POLYGON - GL_ACCUM - GL_LOAD - GL_RETURN - GL_MULT - GL_ADD - GL_NEVER - GL_LESS - GL_EQUAL - GL_LEQUAL - GL_GREATER - GL_NOTEQUAL - GL_GEQUAL - GL_ALWAYS - GL_ZERO - GL_ONE - GL_SRC_COLOR - GL_ONE_MINUS_SRC_COLOR - GL_SRC_ALPHA - GL_ONE_MINUS_SRC_ALPHA - GL_DST_ALPHA - GL_ONE_MINUS_DST_ALPHA - GL_DST_COLOR - GL_ONE_MINUS_DST_COLOR - GL_SRC_ALPHA_SATURATE - GL_NONE - GL_FRONT_LEFT - GL_FRONT_RIGHT - GL_BACK_LEFT - GL_BACK_RIGHT - GL_FRONT - GL_BACK - GL_LEFT - GL_RIGHT - GL_FRONT_AND_BACK - GL_AUX0 - GL_AUX1 - GL_AUX2 - GL_AUX3 - GL_NO_ERROR - GL_INVALID_ENUM - GL_INVALID_VALUE - GL_INVALID_OPERATION - GL_STACK_OVERFLOW - GL_STACK_UNDERFLOW - GL_OUT_OF_MEMORY - GL_2D - GL_3D - GL_3D_COLOR - GL_3D_COLOR_TEXTURE - GL_4D_COLOR_TEXTURE - GL_PASS_THROUGH_TOKEN - GL_POINT_TOKEN - GL_LINE_TOKEN - GL_POLYGON_TOKEN - GL_BITMAP_TOKEN - GL_DRAW_PIXEL_TOKEN - GL_COPY_PIXEL_TOKEN - GL_LINE_RESET_TOKEN - GL_EXP - GL_EXP2 - GL_CW - GL_CCW - GL_COEFF - GL_ORDER - GL_DOMAIN - GL_PIXEL_MAP_I_TO_I - GL_PIXEL_MAP_S_TO_S - GL_PIXEL_MAP_I_TO_R - GL_PIXEL_MAP_I_TO_G - GL_PIXEL_MAP_I_TO_B - GL_PIXEL_MAP_I_TO_A - GL_PIXEL_MAP_R_TO_R - GL_PIXEL_MAP_G_TO_G - GL_PIXEL_MAP_B_TO_B - GL_PIXEL_MAP_A_TO_A - GL_CURRENT_COLOR - GL_CURRENT_INDEX - GL_CURRENT_NORMAL - GL_CURRENT_TEXTURE_COORDS - GL_CURRENT_RASTER_COLOR - GL_CURRENT_RASTER_INDEX - GL_CURRENT_RASTER_TEXTURE_COORDS - GL_CURRENT_RASTER_POSITION - GL_CURRENT_RASTER_POSITION_VALID - GL_CURRENT_RASTER_DISTANCE - GL_POINT_SMOOTH - GL_POINT_SIZE - GL_POINT_SIZE_RANGE - GL_POINT_SIZE_GRANULARITY - GL_LINE_SMOOTH - GL_LINE_WIDTH - GL_LINE_WIDTH_RANGE - GL_LINE_WIDTH_GRANULARITY - GL_LINE_STIPPLE - GL_LINE_STIPPLE_PATTERN - GL_LINE_STIPPLE_REPEAT - GL_LIST_MODE - GL_MAX_LIST_NESTING - GL_LIST_BASE - GL_LIST_INDEX - GL_POLYGON_MODE - GL_POLYGON_SMOOTH - GL_POLYGON_STIPPLE - GL_EDGE_FLAG - GL_CULL_FACE - GL_CULL_FACE_MODE - GL_FRONT_FACE - GL_LIGHTING - GL_LIGHT_MODEL_LOCAL_VIEWER - GL_LIGHT_MODEL_TWO_SIDE - GL_LIGHT_MODEL_AMBIENT - GL_SHADE_MODEL - GL_COLOR_MATERIAL_FACE - GL_COLOR_MATERIAL_PARAMETER - GL_COLOR_MATERIAL - GL_FOG - GL_FOG_INDEX - GL_FOG_DENSITY - GL_FOG_START - GL_FOG_END - GL_FOG_MODE - GL_FOG_COLOR - GL_DEPTH_RANGE - GL_DEPTH_TEST - GL_DEPTH_WRITEMASK - GL_DEPTH_CLEAR_VALUE - GL_DEPTH_FUNC - GL_ACCUM_CLEAR_VALUE - GL_STENCIL_TEST - GL_STENCIL_CLEAR_VALUE - GL_STENCIL_FUNC - GL_STENCIL_VALUE_MASK - GL_STENCIL_FAIL - GL_STENCIL_PASS_DEPTH_FAIL - GL_STENCIL_PASS_DEPTH_PASS - GL_STENCIL_REF - GL_STENCIL_WRITEMASK - GL_MATRIX_MODE - GL_NORMALIZE - GL_VIEWPORT - GL_MODELVIEW_STACK_DEPTH - GL_PROJECTION_STACK_DEPTH - GL_TEXTURE_STACK_DEPTH - GL_MODELVIEW_MATRIX - GL_PROJECTION_MATRIX - GL_TEXTURE_MATRIX - GL_ATTRIB_STACK_DEPTH - GL_ALPHA_TEST - GL_ALPHA_TEST_FUNC - GL_ALPHA_TEST_REF - GL_DITHER - GL_BLEND_DST - GL_BLEND_SRC - GL_BLEND - GL_LOGIC_OP_MODE - GL_LOGIC_OP - GL_AUX_BUFFERS - GL_DRAW_BUFFER - GL_READ_BUFFER - GL_SCISSOR_BOX - GL_SCISSOR_TEST - GL_INDEX_CLEAR_VALUE - GL_INDEX_WRITEMASK - GL_COLOR_CLEAR_VALUE - GL_COLOR_WRITEMASK - GL_INDEX_MODE - GL_RGBA_MODE - GL_DOUBLEBUFFER - GL_STEREO - GL_RENDER_MODE - GL_PERSPECTIVE_CORRECTION_HINT - GL_POINT_SMOOTH_HINT - GL_LINE_SMOOTH_HINT - GL_POLYGON_SMOOTH_HINT - GL_FOG_HINT - GL_TEXTURE_GEN_S - GL_TEXTURE_GEN_T - GL_TEXTURE_GEN_R - GL_TEXTURE_GEN_Q - GL_PIXEL_MAP_I_TO_I_SIZE - GL_PIXEL_MAP_S_TO_S_SIZE - GL_PIXEL_MAP_I_TO_R_SIZE - GL_PIXEL_MAP_I_TO_G_SIZE - GL_PIXEL_MAP_I_TO_B_SIZE - GL_PIXEL_MAP_I_TO_A_SIZE - GL_PIXEL_MAP_R_TO_R_SIZE - GL_PIXEL_MAP_G_TO_G_SIZE - GL_PIXEL_MAP_B_TO_B_SIZE - GL_PIXEL_MAP_A_TO_A_SIZE - GL_UNPACK_SWAP_BYTES - GL_UNPACK_LSB_FIRST - GL_UNPACK_ROW_LENGTH - GL_UNPACK_SKIP_ROWS - GL_UNPACK_SKIP_PIXELS - GL_UNPACK_ALIGNMENT - GL_PACK_SWAP_BYTES - GL_PACK_LSB_FIRST - GL_PACK_ROW_LENGTH - GL_PACK_SKIP_ROWS - GL_PACK_SKIP_PIXELS - GL_PACK_ALIGNMENT - GL_MAP_COLOR - GL_MAP_STENCIL - GL_INDEX_SHIFT - GL_INDEX_OFFSET - GL_RED_SCALE - GL_RED_BIAS - GL_ZOOM_X - GL_ZOOM_Y - GL_GREEN_SCALE - GL_GREEN_BIAS - GL_BLUE_SCALE - GL_BLUE_BIAS - GL_ALPHA_SCALE - GL_ALPHA_BIAS - GL_DEPTH_SCALE - GL_DEPTH_BIAS - GL_MAX_EVAL_ORDER - GL_MAX_LIGHTS - GL_MAX_CLIP_PLANES - GL_MAX_TEXTURE_SIZE - GL_MAX_PIXEL_MAP_TABLE - GL_MAX_ATTRIB_STACK_DEPTH - GL_MAX_MODELVIEW_STACK_DEPTH - GL_MAX_NAME_STACK_DEPTH - GL_MAX_PROJECTION_STACK_DEPTH - GL_MAX_TEXTURE_STACK_DEPTH - GL_MAX_VIEWPORT_DIMS - GL_SUBPIXEL_BITS - GL_INDEX_BITS - GL_RED_BITS - GL_GREEN_BITS - GL_BLUE_BITS - GL_ALPHA_BITS - GL_DEPTH_BITS - GL_STENCIL_BITS - GL_ACCUM_RED_BITS - GL_ACCUM_GREEN_BITS - GL_ACCUM_BLUE_BITS - GL_ACCUM_ALPHA_BITS - GL_NAME_STACK_DEPTH - GL_AUTO_NORMAL - GL_MAP1_COLOR_4 - GL_MAP1_INDEX - GL_MAP1_NORMAL - GL_MAP1_TEXTURE_COORD_1 - GL_MAP1_TEXTURE_COORD_2 - GL_MAP1_TEXTURE_COORD_3 - GL_MAP1_TEXTURE_COORD_4 - GL_MAP1_VERTEX_3 - GL_MAP1_VERTEX_4 - GL_MAP2_COLOR_4 - GL_MAP2_INDEX - GL_MAP2_NORMAL - GL_MAP2_TEXTURE_COORD_1 - GL_MAP2_TEXTURE_COORD_2 - GL_MAP2_TEXTURE_COORD_3 - GL_MAP2_TEXTURE_COORD_4 - GL_MAP2_VERTEX_3 - GL_MAP2_VERTEX_4 - GL_MAP1_GRID_DOMAIN - GL_MAP1_GRID_SEGMENTS - GL_MAP2_GRID_DOMAIN - GL_MAP2_GRID_SEGMENTS - GL_TEXTURE_1D - GL_TEXTURE_2D - GL_TEXTURE_WIDTH - GL_TEXTURE_HEIGHT - GL_TEXTURE_COMPONENTS - GL_TEXTURE_BORDER_COLOR - GL_TEXTURE_BORDER - GL_DONT_CARE - GL_FASTEST - GL_NICEST - GL_AMBIENT - GL_DIFFUSE - GL_SPECULAR - GL_POSITION - GL_SPOT_DIRECTION - GL_SPOT_EXPONENT - GL_SPOT_CUTOFF - GL_CONSTANT_ATTENUATION - GL_LINEAR_ATTENUATION - GL_QUADRATIC_ATTENUATION - GL_COMPILE - GL_COMPILE_AND_EXECUTE - GL_BYTE - GL_UNSIGNED_BYTE - GL_SHORT - GL_UNSIGNED_SHORT - GL_INT - GL_UNSIGNED_INT - GL_FLOAT - GL_2_BYTES - GL_3_BYTES - GL_4_BYTES - GL_CLEAR - GL_AND - GL_AND_REVERSE - GL_COPY - GL_AND_INVERTED - GL_NOOP - GL_XOR - GL_OR - GL_NOR - GL_EQUIV - GL_INVERT - GL_OR_REVERSE - GL_COPY_INVERTED - GL_OR_INVERTED - GL_NAND - GL_SET - GL_EMISSION - GL_SHININESS - GL_AMBIENT_AND_DIFFUSE - GL_COLOR_INDEXES - GL_MODELVIEW - GL_PROJECTION - GL_TEXTURE - GL_COLOR - GL_DEPTH - GL_STENCIL - GL_COLOR_INDEX - GL_STENCIL_INDEX - GL_DEPTH_COMPONENT - GL_RED - GL_GREEN - GL_BLUE - GL_ALPHA - GL_RGB - GL_RGBA - GL_LUMINANCE - GL_LUMINANCE_ALPHA - GL_BITMAP - GL_POINT - GL_LINE - GL_FILL - GL_RENDER - GL_FEEDBACK - GL_SELECT - GL_FLAT - GL_SMOOTH - GL_KEEP - GL_REPLACE - GL_INCR - GL_DECR - GL_VENDOR - GL_RENDERER - GL_VERSION - GL_EXTENSIONS - GL_S - GL_T - GL_R - GL_Q - GL_MODULATE - GL_DECAL - GL_TEXTURE_ENV_MODE - GL_TEXTURE_ENV_COLOR - GL_TEXTURE_ENV - GL_EYE_LINEAR - GL_OBJECT_LINEAR - GL_SPHERE_MAP - GL_TEXTURE_GEN_MODE - GL_OBJECT_PLANE - GL_EYE_PLANE - GL_NEAREST - GL_LINEAR - GL_NEAREST_MIPMAP_NEAREST - GL_LINEAR_MIPMAP_NEAREST - GL_NEAREST_MIPMAP_LINEAR - GL_LINEAR_MIPMAP_LINEAR - GL_TEXTURE_MAG_FILTER - GL_TEXTURE_MIN_FILTER - GL_TEXTURE_WRAP_S - GL_TEXTURE_WRAP_T - GL_CLAMP - GL_REPEAT - GL_CLIP_PLANE0 - GL_CLIP_PLANE1 - GL_CLIP_PLANE2 - GL_CLIP_PLANE3 - GL_CLIP_PLANE4 - GL_CLIP_PLANE5 - GL_LIGHT0 - GL_LIGHT1 - GL_LIGHT2 - GL_LIGHT3 - GL_LIGHT4 - GL_LIGHT5 - GL_LIGHT6 - GL_LIGHT7 - GL_EXT_abgr - GL_EXT_blend_color - GL_EXT_blend_logic_op - GL_EXT_blend_minmax - GL_EXT_blend_subtract - GL_EXT_convolution - GL_EXT_histogram - GL_EXT_polygon_offset - GL_EXT_subtexture - GL_EXT_texture - GL_EXT_texture3D - GL_SGIS_detail_texture - GL_SGIS_multisample - GL_SGIS_sharpen_texture - GL_ABGR_EXT - GL_CONSTANT_COLOR_EXT - GL_ONE_MINUS_CONSTANT_COLOR_EXT - GL_CONSTANT_ALPHA_EXT - GL_ONE_MINUS_CONSTANT_ALPHA_EXT - GL_BLEND_COLOR_EXT - GL_FUNC_ADD_EXT - GL_MIN_EXT - GL_MAX_EXT - GL_BLEND_EQUATION_EXT - GL_FUNC_SUBTRACT_EXT - GL_FUNC_REVERSE_SUBTRACT_EXT - GL_CONVOLUTION_1D_EXT - GL_CONVOLUTION_2D_EXT - GL_SEPARABLE_2D_EXT - GL_CONVOLUTION_BORDER_MODE_EXT - GL_CONVOLUTION_FILTER_SCALE_EXT - GL_CONVOLUTION_FILTER_BIAS_EXT - GL_REDUCE_EXT - GL_CONVOLUTION_FORMAT_EXT - GL_CONVOLUTION_WIDTH_EXT - GL_CONVOLUTION_HEIGHT_EXT - GL_MAX_CONVOLUTION_WIDTH_EXT - GL_MAX_CONVOLUTION_HEIGHT_EXT - GL_POST_CONVOLUTION_RED_SCALE_EXT - GL_POST_CONVOLUTION_GREEN_SCALE_EXT - GL_POST_CONVOLUTION_BLUE_SCALE_EXT - GL_POST_CONVOLUTION_ALPHA_SCALE_EXT - GL_POST_CONVOLUTION_RED_BIAS_EXT - GL_POST_CONVOLUTION_GREEN_BIAS_EXT - GL_POST_CONVOLUTION_BLUE_BIAS_EXT - GL_POST_CONVOLUTION_ALPHA_BIAS_EXT - GL_HISTOGRAM_EXT - GL_PROXY_HISTOGRAM_EXT - GL_HISTOGRAM_WIDTH_EXT - GL_HISTOGRAM_FORMAT_EXT - GL_HISTOGRAM_RED_SIZE_EXT - GL_HISTOGRAM_GREEN_SIZE_EXT - GL_HISTOGRAM_BLUE_SIZE_EXT - GL_HISTOGRAM_ALPHA_SIZE_EXT - GL_HISTOGRAM_LUMINANCE_SIZE_EXT - GL_HISTOGRAM_SINK_EXT - GL_MINMAX_EXT - GL_MINMAX_FORMAT_EXT - GL_MINMAX_SINK_EXT - GL_TABLE_TOO_LARGE_EXT - GL_POLYGON_OFFSET_EXT - GL_POLYGON_OFFSET_FACTOR_EXT - GL_POLYGON_OFFSET_BIAS_EXT - GL_ALPHA4_EXT - GL_ALPHA8_EXT - GL_ALPHA12_EXT - GL_ALPHA16_EXT - GL_LUMINANCE4_EXT - GL_LUMINANCE8_EXT - GL_LUMINANCE12_EXT - GL_LUMINANCE16_EXT - GL_LUMINANCE4_ALPHA4_EXT - GL_LUMINANCE6_ALPHA2_EXT - GL_LUMINANCE8_ALPHA8_EXT - GL_LUMINANCE12_ALPHA4_EXT - GL_LUMINANCE12_ALPHA12_EXT - GL_LUMINANCE16_ALPHA16_EXT - GL_INTENSITY_EXT - GL_INTENSITY4_EXT - GL_INTENSITY8_EXT - GL_INTENSITY12_EXT - GL_INTENSITY16_EXT - GL_RGB2_EXT - GL_RGB4_EXT - GL_RGB5_EXT - GL_RGB8_EXT - GL_RGB10_EXT - GL_RGB12_EXT - GL_RGB16_EXT - GL_RGBA2_EXT - GL_RGBA4_EXT - GL_RGB5_A1_EXT - GL_RGBA8_EXT - GL_RGB10_A2_EXT - GL_RGBA12_EXT - GL_RGBA16_EXT - GL_TEXTURE_RED_SIZE_EXT - GL_TEXTURE_GREEN_SIZE_EXT - GL_TEXTURE_BLUE_SIZE_EXT - GL_TEXTURE_ALPHA_SIZE_EXT - GL_TEXTURE_LUMINANCE_SIZE_EXT - GL_TEXTURE_INTENSITY_SIZE_EXT - GL_REPLACE_EXT - GL_PROXY_TEXTURE_1D_EXT - GL_PROXY_TEXTURE_2D_EXT - GL_TEXTURE_TOO_LARGE_EXT - GL_PACK_SKIP_IMAGES_EXT - GL_PACK_IMAGE_HEIGHT_EXT - GL_UNPACK_SKIP_IMAGES_EXT - GL_UNPACK_IMAGE_HEIGHT_EXT - GL_TEXTURE_3D_EXT - GL_PROXY_TEXTURE_3D_EXT - GL_TEXTURE_DEPTH_EXT - GL_TEXTURE_WRAP_R_EXT - GL_MAX_3D_TEXTURE_SIZE_EXT - GL_DETAIL_TEXTURE_2D_SGIS - GL_DETAIL_TEXTURE_2D_BINDING_SGIS - GL_LINEAR_DETAIL_SGIS - GL_LINEAR_DETAIL_ALPHA_SGIS - GL_LINEAR_DETAIL_COLOR_SGIS - GL_DETAIL_TEXTURE_LEVEL_SGIS - GL_DETAIL_TEXTURE_MODE_SGIS - GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS - GL_MULTISAMPLE_BIT_EXT - GL_MULTISAMPLE_SGIS - GL_SAMPLE_ALPHA_TO_MASK_SGIS - GL_SAMPLE_ALPHA_TO_ONE_SGIS - GL_SAMPLE_MASK_SGIS - GL_1PASS_SGIS - GL_2PASS_0_SGIS - GL_2PASS_1_SGIS - GL_4PASS_0_SGIS - GL_4PASS_1_SGIS - GL_4PASS_2_SGIS - GL_4PASS_3_SGIS - GL_SAMPLE_BUFFERS_SGIS - GL_SAMPLES_SGIS - GL_SAMPLE_MASK_VALUE_SGIS - GL_SAMPLE_MASK_INVERT_SGIS - GL_SAMPLE_PATTERN_SGIS - GL_LINEAR_SHARPEN_SGIS - GL_LINEAR_SHARPEN_ALPHA_SGIS - GL_LINEAR_SHARPEN_COLOR_SGIS - GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS - - GLX_USE_GL - GLX_BUFFER_SIZE - GLX_LEVEL - GLX_RGBA - GLX_DOUBLEBUFFER - GLX_STEREO - GLX_AUX_BUFFERS - GLX_RED_SIZE - GLX_GREEN_SIZE - GLX_BLUE_SIZE - GLX_ALPHA_SIZE - GLX_DEPTH_SIZE - GLX_STENCIL_SIZE - GLX_ACCUM_RED_SIZE - GLX_ACCUM_GREEN_SIZE - GLX_ACCUM_BLUE_SIZE - GLX_ACCUM_ALPHA_SIZE - GLX_SAMPLES_SGIS - GLX_SAMPLE_BUFFER_SGIS - GLX_BAD_SCREEN - GLX_BAD_ATTRIBUTE - GLX_NO_EXTENSION - GLX_BAD_VISUAL - GLX_BAD_CONTEXT - GLX_BAD_VALUE - GLX_BAD_ENUM - GLXBadContext - GLXBadContextState - GLXBadDrawable - GLXBadPixmap - GLXBadContextTag - GLXBadCurrentWindow - GLXBadRenderRequest - GLXBadLargeRequest - GLXUnsupportedPrivateRequest - __GLX_NUMBER_ERRORS - __GLX_NUMBER_EVENTS - GLX_EXTENSION_NAME - GLX_EXTENSION_ALIAS - GLX_VENDOR - GLX_VERSION - GLX_EXTENSIONS - GLX_SGI_swap_control - GLX_SGI_video_sync - GLX_SGIS_multisample - GLX_SWAP_DEFAULT_SGI - GLX_SWAP_MUXPIPE_SGI - GLX_SWAP_GANG_SGI - GLX_MUXPIPE0_SGI - GLX_MUXPIPE1_SGI - GLX_MUXPIPE2_SGI - - GLU_VERSION_1_1 - GLU_INVALID_ENUM - GLU_INVALID_VALUE - GLU_OUT_OF_MEMORY - GLU_INCOMPATIBLE_GL_VERSION - GLU_VERSION - GLU_EXTENSIONS - GLU_TRUE - GLU_FALSE - GLU_SMOOTH - GLU_FLAT - GLU_NONE - GLU_POINT - GLU_LINE - GLU_FILL - GLU_SILHOUETTE - GLU_OUTSIDE - GLU_INSIDE - GLU_BEGIN - GLU_VERTEX - GLU_END - GLU_ERROR - GLU_EDGE_FLAG - GLU_CW - GLU_CCW - GLU_INTERIOR - GLU_EXTERIOR - GLU_UNKNOWN - GLU_TESS_ERROR1 - GLU_TESS_ERROR2 - GLU_TESS_ERROR3 - GLU_TESS_ERROR4 - GLU_TESS_ERROR5 - GLU_TESS_ERROR6 - GLU_TESS_ERROR7 - GLU_TESS_ERROR8 - GLU_AUTO_LOAD_MATRIX - GLU_CULLING - GLU_SAMPLING_TOLERANCE - GLU_DISPLAY_MODE - GLU_PARAMETRIC_TOLERANCE - GLU_SAMPLING_METHOD - GLU_U_STEP - GLU_V_STEP - GLU_PATH_LENGTH - GLU_PARAMETRIC_ERROR - GLU_DOMAIN_DISTANCE - GLU_MAP1_TRIM_2 - GLU_MAP1_TRIM_3 - GLU_OUTLINE_POLYGON - GLU_OUTLINE_PATCH - GLU_NURBS_ERROR1 - GLU_NURBS_ERROR2 - GLU_NURBS_ERROR3 - GLU_NURBS_ERROR4 - GLU_NURBS_ERROR5 - GLU_NURBS_ERROR6 - GLU_NURBS_ERROR7 - GLU_NURBS_ERROR8 - GLU_NURBS_ERROR9 - GLU_NURBS_ERROR10 - GLU_NURBS_ERROR11 - GLU_NURBS_ERROR12 - GLU_NURBS_ERROR13 - GLU_NURBS_ERROR14 - GLU_NURBS_ERROR15 - GLU_NURBS_ERROR16 - GLU_NURBS_ERROR17 - GLU_NURBS_ERROR18 - GLU_NURBS_ERROR19 - GLU_NURBS_ERROR20 - GLU_NURBS_ERROR21 - GLU_NURBS_ERROR22 - GLU_NURBS_ERROR23 - GLU_NURBS_ERROR24 - GLU_NURBS_ERROR25 - GLU_NURBS_ERROR26 - GLU_NURBS_ERROR27 - GLU_NURBS_ERROR28 - GLU_NURBS_ERROR29 - GLU_NURBS_ERROR30 - GLU_NURBS_ERROR31 - GLU_NURBS_ERROR32 - GLU_NURBS_ERROR33 - GLU_NURBS_ERROR34 - GLU_NURBS_ERROR35 - GLU_NURBS_ERROR36 - GLU_NURBS_ERROR37 -); - -@EXPORT = (@oldfunctions, @oldconstants); - -# Other items we are prepared to export if requested -@EXPORT_OK = (@gl_extensions, @gl_func, @glu_func, @glut_func, @glx_func, @gl_const, @glu_const, @glut_const, @glx_const); - -@constants = (@gl_const, @glu_const, @glut_const, @glx_const); -@functions = (@gl_func, @glu_func, @glut_func, @glx_func); - -%EXPORT_TAGS = ('constants' => \@constants, 'functions' => \@functions, 'all' => \@EXPORT_OK, 'old' => \@EXPORT, - 'glconstants' => \@gl_const, 'gluconstants' => \@glu_const, 'glutconstants' => \@glut_const, 'glxconstants' => \@glx_const, - 'glfunctions' => \@gl_func, 'glufunctions' => \@glu_func, 'glutfunctions' => \@glut_func, 'glxfunctions' => \@glx_func, - 'oldfunctions' => \@oldfunctions, 'oldconstants' => \@oldconstants, -); - -@rename_old = qw( - glBitmap - glCallLists - glClipPlane - glColor3bv - glColor3dv - glColor3fv - glColor3iv - glColor3sv - glColor3ubv - glColor3uiv - glColor3usv - glColor4bv - glColor4dv - glColor4fv - glColor4iv - glColor4sv - glColor4ubv - glColor4uiv - glColor4usv - glConvolutionFilter1DEXT - glConvolutionFilter2DEXT - glConvolutionParameterfvEXT - glConvolutionParameterivEXT - glDetailTexFuncSGIS - glDrawPixels - glEvalCoord1dv - glEvalCoord1fv - glEvalCoord2dv - glEvalCoord2fv - glFeedbackBuffer - glFogfv - glFogiv - glGetBooleanv - glGetClipPlane - glGetConvolutionFilterEXT - glGetConvolutionParameterfvEXT - glGetConvolutionParameterivEXT - glGetDetailTexFuncSGIS - glGetDoublev - glGetFloatv - glGetHistogramEXT - glGetHistogramParameterfvEXT - glGetHistogramParameterivEXT - glGetIntegerv - glGetLightfv - glGetLightiv - glGetMapdv - glGetMapfv - glGetMapiv - glGetMaterialfv - glGetMaterialiv - glGetMinmaxEXT - glGetMinmaxParameterfvEXT - glGetMinmaxParameterivEXT - glGetPixelMapfv - glGetPixelMapuiv - glGetPixelMapusv - glGetPolygonStipple - glGetSeparableFilterEXT - glGetSharpenTexFuncSGIS - glGetTexEnvfv - glGetTexEnviv - glGetTexGendv - glGetTexGenfv - glGetTexGeniv - glGetTexImage - glGetTexLevelParameterfv - glGetTexLevelParameteriv - glGetTexParameterfv - glGetTexParameteriv - glIndexdv - glIndexfv - glIndexiv - glIndexsv - glLightModelfv - glLightModeliv - glLightfv - glLightiv - glLoadMatrixd - glLoadMatrixf - glMap1d - glMap1f - glMap2d - glMap2f - glMaterialfv - glMaterialiv - glMultMatrixd - glMultMatrixf - glNormal3bv - glNormal3dv - glNormal3fv - glNormal3iv - glNormal3sv - glPixelMapfv - glPixelMapuiv - glPixelMapusv - glPolygonStipple - glRasterPos2dv - glRasterPos2fv - glRasterPos2iv - glRasterPos2sv - glRasterPos3dv - glRasterPos3fv - glRasterPos3iv - glRasterPos3sv - glRasterPos4dv - glRasterPos4fv - glRasterPos4iv - glRasterPos4sv - glReadPixels - glRectdv - glRectfv - glRectiv - glRectsv - glSeparableFilter2DEXT - glSharpenTexFuncSGIS - glTexCoord1dv - glTexCoord1fv - glTexCoord1iv - glTexCoord1sv - glTexCoord2dv - glTexCoord2fv - glTexCoord2iv - glTexCoord2sv - glTexCoord3dv - glTexCoord3fv - glTexCoord3iv - glTexCoord3sv - glTexCoord4dv - glTexCoord4fv - glTexCoord4iv - glTexCoord4sv - glTexEnvfv - glTexEnviv - glTexGendv - glTexGenfv - glTexGeniv - glTexImage1D - glTexImage2D - glTexImage3DEXT - glTexParameterfv - glTexParameteriv - glTexSubImage1DEXT - glTexSubImage2DEXT - glTexSubImage3DEXT - glTranslated - glTranslatef - glVertex2dv - glVertex2fv - glVertex2iv - glVertex2sv - glVertex3dv - glVertex3fv - glVertex3iv - glVertex3sv - glVertex4dv - glVertex4fv - glVertex4iv - glVertex4sv - glViewport -); - -sub AUTOLOAD { - # This AUTOLOAD is used to 'autoload' constants from the constant() - # XS function. If a constant is not found then control is passed - # to the AUTOLOAD in AutoLoader. - - # NOTE: THIS AUTOLOAD FUNCTION IS FLAWED (but is the best we can do for now). - # Avoid old-style ``&CONST'' usage. Either remove the ``&'' or add ``()''. - if (@_ > 0) { - - # Is it an old OpenGL-0.4 function? If so, remap it to newer variant - local($constname); - ($constname = $AUTOLOAD) =~ s/.*:://; - if (grep ($_ eq $constname, @rename_old)) { - eval "sub $AUTOLOAD { $AUTOLOAD" . "_s(\@_) }"; - goto &$AUTOLOAD; - } - - $AutoLoader::AUTOLOAD = $AUTOLOAD; - goto &AutoLoader::AUTOLOAD; - } - local($constname); - ($constname = $AUTOLOAD) =~ s/.*:://; - $val = constant($constname, @_ ? $_[0] : 0); - if (not defined $val) { - if ($! =~ /Invalid/) { - $AutoLoader::AUTOLOAD = $AUTOLOAD; - goto &AutoLoader::AUTOLOAD; - } - else { - ($pack,$file,$line) = caller; - die "Your vendor has not defined OpenGL macro $constname, used at $file line $line. -"; - } - } - eval "sub $AUTOLOAD { $val }"; - goto &$AUTOLOAD; -} - -bootstrap OpenGL; - -*OpenGL::Array::CLONE_SKIP = sub { 1 }; # OpenGL::Array is not thread safe -*OpenGL::Matrix::CLONE_SKIP = sub { 1 }; # OpenGL::Matrix is not thread safe - -# The following material is directly copied from Stan Melax's original OpenGL-0.4 -# (with modifications for OS/2). - -%window_defaults=( - 'x' => 0, - 'y' => 0, - 'width' => 500, - 'height' => 500, - 'parent' => 0, - 'steal' => 0, - 'mask' => (_have_glx() ? StructureNotifyMask() : 0), - 'attributes'=> [], -); - - -sub glpOpenWindow { - # default values - my(%a) = @_; - my(%p) = %window_defaults; - foreach $k (keys(%a)){ - exists($p{$k}) || warn "Not a valid parameter to glpOpenWindow: `$k'\n"; - #print "parameter $k now ",$a{$k}," was ",$p{$k},"\n"; - $p{$k} = $a{$k}; - } - # - # glpcOpenWindow() no longer exported. Use fully qualified - # package name or (better!) glpOpenWindow() - # - glpcOpenWindow($p{'x'},$p{'y'},$p{'width'},$p{'height'}, - $p{'parent'},$p{'mask'},$p{'steal'}, - @{$p{'attributes'}}); -} - -# The following material is original to OpenGL-0.5, and provides compatibility -# with some of Stan's functions. - -sub glpClipPlane { glClipPlane_p(@_) } - -sub glpGetClipPlane { glGetClipPlane_p(@_) } - -sub glpLoadMatrixd { glLoadMatrixd_p(@_) } - -sub glpMultMatrixd { glMultMatrixd_p(@_) } - -sub glpLoadMatrixf { glLoadMatrixf_p(@_) } - -sub glpMultMatrixf { glMultMatrixf_p(@_) } - -sub glpMainLoop { - if (_have_glx()) { - ## print "Control-D to quit...\n"; - ## while(<>){;} # control-D to quit - print "Type to quit...\n"; - until(<>){;} # control-D to quit - } else { # OS/2 PM - OS2::Process_Messages(0) while 1; - } -} - -if (_have_glp() && !_have_glx()) { eval <{original_x} = glutGet(0x0064); # GLUT_WINDOW_X - $params->{original_y} = glutGet(0x0065); # GLUT_WINDOW_Y - $params->{original_w} = glutGet(0x0066); # GLUT_WINDOW_WIDTH - $params->{original_h} = glutGet(0x0067); # GLUT_WINDOW_HEIGHT - - glutFullScreen(); - - $params->{w} = glutGet(0x0066); # GLUT_WINDOW_WIDTH - $params->{h} = glutGet(0x0067); # GLUT_WINDOW_HEIGHT - - return $params; -} - -sub glpRestoreScreen -{ - my($params) = @_; - - glutPositionWindow($params->{original_x},$params->{original_y}); - glutReshapeWindow($params->{original_w},$params->{original_h}); - glutPostRedisplay(); -} - -sub glpCheckExtension -{ - my(@extensions) = @_; - - # Get/cache OpenGL Version - if (!$gl_version) - { - $gl_version = glGetString(0x1F02); #GL_VERSION - return 'Unable to retrieve OpenGL version; need context?' if (!$gl_version); - } - return "Not a numeric version: '$version'" if ($gl_version !~ m|^(\d+\.\d+)|); - $gl_version = $1; - - # Get/cache OpenGL Extension Installations - if (!scalar(%$glext_installed)) - { - my $inst = glGetString(0x1F03); #GL_EXTENSIONS - foreach my $ext (split(' ',$inst)) - { - $glext_installed->{$ext} = $glext_dependencies->{$ext} || 0; - } - } - if (!scalar(%$glext_installed)) - { - return 'Unable to retrieve extensions; need context?' - } - - foreach my $ext (@extensions) - { - return "$ext not installed" if (!defined($glext_installed->{$ext})); - - # Check implementation - my($ver,$deps) = split(';',$glext_installed->{$ext}); - return "$ext not implemented" if (!$ver); - return "Needs at least OpenGL $ver" if ($gl_version < $ver); - next if (!$deps); - - # Check dependencies - foreach my $dep (split(',',$deps)) - { - my $stat = glpCheckExtension("GL_$dep"); - return "Depends on $deps" if ($stat); - } - } - return 0; -} - - - -#OpenGL::Array helper methods for normalizing names and chaining operations -@OpenGL::Matrix::ISA = 'OpenGL::Array'; - - -1; -__END__ - diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL.pod b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL.pod deleted file mode 100644 index b4db4005..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL.pod +++ /dev/null @@ -1,1929 +0,0 @@ - -=head1 NAME - -OpenGL - v0.70 - -=head1 SYNOPSIS - - - use OpenGL qw(:all); # exports all new functionality, without - # the OpenGL-0.4 compatibility functions - - use OpenGL qw(:glfunctions :glconstants); # exports functions and - # constants for using OpenGL, without exporting - # GLU, GLUT, or GLX stuff. - - use OpenGL qw(:old); # Exports much old functionality of OpenGL 0.4 - - use OpenGL; # DEPRECATED! Same as above. DEPRECATED! - - See also: POGL Objects - - * OpenGL::Array - optimized data arrays via C pointers - - * OpenGL::Image - direct C pointer acces to ImageMagick image cache - - * OpenGL::Shader - abstracted shader interface: ARB, GLSL and Cg - - - -=head1 PREREQUISITES - -This module assumes that you have OpenGL, GLU, and some flavor of GLUT -properly installed on your system. These will be names like libGL.so, -libGLU.so and libglut.so for unixen, opengl32.dll and glu32.dll for MS -Windows. - -If used with OpenGL::Image, use v1.03 or higher. - - -=head1 DESCRIPTION - -=head2 Naming convention: - -Virtually all of the OpenGL 1.0, and 1.1 functions are available, and most -of 1.2. In general, the calling sequence is identical in Perl as in C. - -Most functions that have no pointer arguments are called identically in -Perl as in C, and the same name is used. - -Functions that use Perl array arguments and have been changed in "the obvious -way" -- to take a variable number of arguments and/or to return an array -- -have the the same names as their C counterparts, but with a _p suffix. - -All functions that take pointers are available with their original -calling syntax and a _c suffix. These are most useful when combined with -the OpenGL::Array module, which lets you allocate C arrays from Perl. - -A third variant, _s, exists for most pointer functions, and takes a string -argument for each pointer or a reference to a Perl string containing packed -data. The underlying OpenGL function will be passed a pointer to that data. - -=head2 GLUT functions - - done_glutInit - glutAddMenuEntry - glutAddSubMenu - glutAttachMenu - glutBitmapCharacter - glutBitmapHeight - glutBitmapLength - glutBitmapString - glutBitmapWidth - glutButtonBoxFunc - glutChangeToMenuEntry - glutChangeToSubMenu - glutCloseFunc - glutCopyColormap - glutCreateMenu - glutCreateSubWindow - glutCreateWindow - glutDestroyMenu - glutDestroyWindow - glutDetachMenu - glutDeviceGet - glutDialsFunc - glutDisplayFunc - glutEnterGameMode - glutEntryFunc - glutEstablishOverlay - glutExtensionSupported - glutForceJoystickFunc - glutFullScreen - glutGameModeGet - glutGameModeString - glutGet - glutGetColor - glutGetMenu - glutGetModifiers - glutGetWindow - glutHideOverlay - glutHideWindow - glutIconifyWindow - glutIdleFunc - glutIgnoreKeyRepeat - glutInit - glutInitDisplayMode - glutInitDisplayString - glutInitWindowPosition - glutInitWindowSize - glutKeyboardFunc - glutKeyboardUpFunc - glutLayerGet - glutLeaveGameMode - glutLeaveMainLoop - glutMainLoop - glutMainLoopEvent - glutMenuDestroyFunc - glutMenuStateFunc - glutMenuStatusFunc - glutMotionFunc - glutMouseFunc - glutMouseWheelFunc - glutOverlayDisplayFunc - glutPassiveMotionFunc - glutPopWindow - glutPositionWindow - glutPostOverlayRedisplay - glutPostRedisplay - glutPostWindowOverlayRedisplay - glutPostWindowRedisplay - glutPushWindow - glutRemoveMenuItem - glutRemoveOverlay - glutReportErrors - glutReshapeFunc - glutReshapeWindow - glutSetColor - glutSetCursor - glutSetIconTitle - glutSetKeyRepeat - glutSetMenu - glutSetOption - glutSetWindow - glutSetWindowTitle - glutShowOverlay - glutShowWindow - glutSolidCone - glutSolidCube - glutSolidCylinder - glutSolidDodecahedron - glutSolidIcosahedron - glutSolidOctahedron - glutSolidRhombicDodecahedron - glutSolidSphere - glutSolidTeapot - glutSolidTetrahedron - glutSolidTorus - glutSpaceballButtonFunc - glutSpaceballMotionFunc - glutSpaceballRotateFunc - glutSpecialFunc - glutSpecialUpFunc - glutStrokeCharacter - glutStrokeHeight - glutStrokeLength - glutStrokeString - glutStrokeWidth - glutSwapBuffers - glutTabletButtonFunc - glutTabletMotionFunc - glutTimerFunc - glutUseLayer - glutVisibilityFunc - glutWarpPointer - glutWindowStatusFunc - glutWireCone - glutWireCube - glutWireCylinder - glutWireDodecahedron - glutWireIcosahedron - glutWireOctahedron - glutWireRhombicDodecahedron - glutWireSphere - glutWireTeapot - glutWireTetrahedron - glutWireTorus - -=head2 GLU functions - - gluBeginCurve - gluBeginPolygon - gluBeginSurface - gluBeginTrim - gluBuild1DMipmaps_c - gluBuild1DMipmaps_s - gluBuild2DMipmaps_c - gluBuild2DMipmaps_s - gluCylinder - gluDeleteNurbsRenderer - gluDeleteQuadric - gluDeleteTess - gluDisk - gluEndCurve - gluEndPolygon - gluEndSurface - gluEndTrim - gluErrorString - gluGetNurbsProperty_p - gluGetString - gluGetTessProperty_p - gluLoadSamplingMatrices_p - gluLookAt - gluNewNurbsRenderer - gluNewQuadric - gluNewTess - gluNextContour - gluNurbsCurve_c - gluNurbsSurface_c - gluOrtho2D - gluPartialDisk - gluPerspective - gluPickMatrix_p - gluProject_p - gluPwlCurve_c - gluQuadricDrawStyle - gluQuadricNormals - gluQuadricOrientation - gluQuadricTexture - gluScaleImage_s - gluSphere - gluTessBeginCountour - gluTessBeginPolygon - gluTessCallback - gluTessEndContour - gluTessEndPolygon - gluTessNormal - gluTessProperty - gluTessVertex - gluUnProject_p - -=head2 OpenGL functions - - glAccum - glActiveTextureARB - glAlphaFunc - glAreTexturesResidentEXT_p - glAreTexturesResident_c - glAreTexturesResident_p - glAreTexturesResident_s - glArrayElement - glArrayElementEXT - glAttachObjectARB - glBegin - glBindAttribLocationARB - glBindBufferARB - glBindFramebufferEXT - glBindProgramARB - glBindRenderbufferEXT - glBindTexture - glBindTextureEXT - glBitmap_c - glBitmap_p - glBitmap_s - glBlendColorEXT - glBlendEquationEXT - glBlendFunc - glBufferDataARB_c - glBufferDataARB_p - glBufferDataARB_s - glBufferSubDataARB_c - glBufferSubDataARB_p - glBufferSubDataARB_s - glCallList - glCallLists_c - glCallLists_p - glCallLists_s - glCheckFramebufferStatusEXT - glClampColorARB - glClear - glClearAccum - glClearColor - glClearDepth - glClearIndex - glClearStencil - glClientActiveTextureARB - glClipPlane_c - glClipPlane_p - glClipPlane_s - glColor3b - glColor3bv_c - glColor3bv_p - glColor3bv_s - glColor3d - glColor3dv_c - glColor3dv_p - glColor3dv_s - glColor3f - glColor3fv_c - glColor3fv_p - glColor3fv_s - glColor3i - glColor3iv_c - glColor3iv_p - glColor3iv_s - glColor3s - glColor3sv_c - glColor3sv_p - glColor3sv_s - glColor3ub - glColor3ubv_c - glColor3ubv_p - glColor3ubv_s - glColor3ui - glColor3uiv_c - glColor3uiv_p - glColor3uiv_s - glColor3us - glColor3usv_c - glColor3usv_p - glColor3usv_s - glColor4b - glColor4bv_c - glColor4bv_p - glColor4bv_s - glColor4d - glColor4dv_c - glColor4dv_p - glColor4dv_s - glColor4f - glColor4fv_c - glColor4fv_p - glColor4fv_s - glColor4i - glColor4iv_c - glColor4iv_p - glColor4iv_s - glColor4s - glColor4sv_c - glColor4sv_p - glColor4sv_s - glColor4ub - glColor4ubv_c - glColor4ubv_p - glColor4ubv_s - glColor4ui - glColor4uiv_c - glColor4uiv_p - glColor4uiv_s - glColor4us - glColor4usv_c - glColor4usv_p - glColor4usv_s - glColorMask - glColorMaterial - glColorPointerEXT_c - glColorPointerEXT_p - glColorPointerEXT_s - glColorPointer_c - glColorPointer_p - glColorPointer_s - glCompileShaderARB - glCopyPixels - glCopyTexImage1D - glCopyTexImage1DEXT - glCopyTexImage2D - glCopyTexImage2DEXT - glCopyTexSubImage1D - glCopyTexSubImage1DEXT - glCopyTexSubImage2D - glCopyTexSubImage2DEXT - glCopyTexSubImage3D - glCopyTexSubImage3DEXT - glCreateProgramObjectARB - glCreateShaderObjectARB - glCullFace - glDeleteBuffersARB_c - glDeleteBuffersARB_p - glDeleteBuffersARB_s - glDeleteFramebuffersEXT_c - glDeleteFramebuffersEXT_p - glDeleteFramebuffersEXT_s - glDeleteLists - glDeleteObjectARB - glDeleteProgramsARB_c - glDeleteProgramsARB_p - glDeleteProgramsARB_s - glDeleteRenderbuffersEXT_c - glDeleteRenderbuffersEXT_p - glDeleteRenderbuffersEXT_s - glDeleteTexturesEXT_p - glDeleteTextures_c - glDeleteTextures_p - glDeleteTextures_s - glDepthFunc - glDepthMask - glDepthRange - glDetachObjectARB - glDisable - glDisableClientState - glDisableVertexAttribArrayARB - glDrawArrays - glDrawArraysEXT - glDrawBuffer - glDrawBuffersARB_c - glDrawBuffersARB_p - glDrawBuffersARB_s - glDrawBuffers_c - glDrawBuffers_p - glDrawBuffers_s - glDrawElements_c - glDrawElements_p - glDrawElements_s - glDrawPixels_c - glDrawPixels_p - glDrawPixels_s - glDrawRangeElements_c - glDrawRangeElements_p - glDrawRangeElements_s - glEdgeFlag - glEdgeFlagPointerEXT_c - glEdgeFlagPointerEXT_p - glEdgeFlagPointerEXT_s - glEdgeFlagPointer_c - glEdgeFlagPointer_p - glEdgeFlagPointer_s - glEnable - glEnableClientState - glEnableVertexAttribArrayARB - glEnd - glEndList - glEvalCoord1d - glEvalCoord1f - glEvalCoord2d - glEvalCoord2f - glEvalMesh1 - glEvalMesh2 - glEvalPoint1 - glEvalPoint2 - glFeedbackBuffer_c - glFeedbackBuffer_p -- not yet implemented - glFeedbackBuffer_s -- not yet implemented - glFinish - glFlush - glFogf - glFogfv_c - glFogfv_p - glFogfv_s - glFogi - glFogiv_c - glFogiv_p - glFogiv_s - glFramebufferRenderbufferEXT - glFramebufferTexture1DEXT - glFramebufferTexture2DEXT - glFramebufferTexture3DEXT - glFrontFace - glFrustum - glGenBuffersARB_c - glGenBuffersARB_p - glGenBuffersARB_s - glGenFramebuffersEXT_c - glGenFramebuffersEXT_p - glGenFramebuffersEXT_s - glGenLists - glGenProgramsARB_c - glGenProgramsARB_p - glGenProgramsARB_s - glGenRenderbuffersEXT_c - glGenRenderbuffersEXT_p - glGenRenderbuffersEXT_s - glGenTexturesEXT_p - glGenTextures_c - glGenTextures_p - glGenTextures_s - glGenerateMipmapEXT - glGetActiveAttribARB_c - glGetActiveAttribARB_p - glGetActiveAttribARB_s - glGetActiveUniformARB_c - glGetActiveUniformARB_p - glGetActiveUniformARB_s - glGetAttachedObjectsARB_c - glGetAttachedObjectsARB_p - glGetAttachedObjectsARB_s - glGetAttribLocationARB_c - glGetAttribLocationARB_p - glGetBooleanv_c - glGetBooleanv_p - glGetBooleanv_s - glGetBufferParameterivARB_c - glGetBufferParameterivARB_p - glGetBufferParameterivARB_s - glGetBufferPointervARB_c - glGetBufferPointervARB_p - glGetBufferPointervARB_s - glGetBufferSubDataARB_c - glGetBufferSubDataARB_p - glGetBufferSubDataARB_s - glGetClipPlane_c - glGetClipPlane_p - glGetClipPlane_s - glGetDoublev_c - glGetDoublev_p - glGetDoublev_s - glGetError - glGetFloatv_c - glGetFloatv_p - glGetFloatv_s - glGetFramebufferAttachmentParameterivEXT_c - glGetFramebufferAttachmentParameterivEXT_s - glGetGLhandleARB - glGetInfoLogARB_c - glGetInfoLogARB_p - glGetIntegerv_c - glGetIntegerv_p - glGetIntegerv_s - glGetLightfv_c - glGetLightfv_p - glGetLightfv_s - glGetLightiv_c - glGetLightiv_p - glGetLightiv_s - glGetMapdv_c - glGetMapdv_p - glGetMapdv_s - glGetMapfv_c - glGetMapfv_p - glGetMapfv_s - glGetMapiv_c - glGetMapiv_p - glGetMapiv_s - glGetMaterialfv_c - glGetMaterialfv_p - glGetMaterialfv_s - glGetMaterialiv_c - glGetMaterialiv_p - glGetMaterialiv_s - glGetObjectParameterfvARB_c - glGetObjectParameterfvARB_p - glGetObjectParameterfvARB_s - glGetObjectParameterivARB_c - glGetObjectParameterivARB_p - glGetObjectParameterivARB_s - glGetPixelMapfv_c - glGetPixelMapfv_p - glGetPixelMapfv_s - glGetPixelMapuiv_c - glGetPixelMapuiv_p - glGetPixelMapuiv_s - glGetPixelMapusv_c - glGetPixelMapusv_p - glGetPixelMapusv_s - glGetPointerv_c - glGetPointerv_p - glGetPointerv_s - glGetPolygonStipple_c - glGetPolygonStipple_p - glGetPolygonStipple_s - glGetProgramEnvParameterdvARB_c - glGetProgramEnvParameterdvARB_p - glGetProgramEnvParameterdvARB_s - glGetProgramEnvParameterfvARB_c - glGetProgramEnvParameterfvARB_p - glGetProgramEnvParameterfvARB_s - glGetProgramLocalParameterdvARB_c - glGetProgramLocalParameterdvARB_p - glGetProgramLocalParameterdvARB_s - glGetProgramLocalParameterfvARB_c - glGetProgramLocalParameterfvARB_p - glGetProgramLocalParameterfvARB_s - glGetProgramStringARB_c - glGetProgramStringARB_p - glGetProgramStringARB_s - glGetProgramivARB_c - glGetProgramivARB_p - glGetProgramivARB_s - glGetRenderbufferParameterivEXT_c - glGetRenderbufferParameterivEXT_s - glGetShaderSourceARB_c - glGetShaderSourceARB_p - glGetString - glGetTexEnvfv_c - glGetTexEnvfv_p - glGetTexEnvfv_s - glGetTexEnviv_c - glGetTexEnviv_p - glGetTexEnviv_s - glGetTexGendv_c - glGetTexGendv_p - glGetTexGendv_s - glGetTexGenfv_c - glGetTexGenfv_p - glGetTexGenfv_s - glGetTexGeniv_c - glGetTexGeniv_p - glGetTexGeniv_s - glGetTexImage_c - glGetTexImage_p - glGetTexImage_s - glGetTexLevelParameterfv_c - glGetTexLevelParameterfv_p - glGetTexLevelParameterfv_s - glGetTexLevelParameteriv_c - glGetTexLevelParameteriv_p - glGetTexLevelParameteriv_s - glGetTexParameterfv_c - glGetTexParameterfv_p - glGetTexParameterfv_s - glGetTexParameteriv_c - glGetTexParameteriv_p - glGetTexParameteriv_s - glGetUniformLocationARB_c - glGetUniformLocationARB_p - glGetUniformfvARB_c - glGetUniformfvARB_p - glGetUniformivARB_c - glGetUniformivARB_p - glGetVertexAttribPointervARB_c - glGetVertexAttribdvARB_c - glGetVertexAttribdvARB_p - glGetVertexAttribdvARB_s - glGetVertexAttribfvARB_c - glGetVertexAttribfvARB_p - glGetVertexAttribfvARB_s - glGetVertexAttribivARB_c - glGetVertexAttribivARB_p - glGetVertexAttribivARB_s - glHint - glIndexMask - glIndexPointerEXT_c - glIndexPointerEXT_p - glIndexPointerEXT_s - glIndexPointer_c - glIndexd - glIndexi - glInitNames - glInterleavedArrays_c - glIsBufferARB - glIsEnabled - glIsFramebufferEXT - glIsList - glIsProgramARB - glIsRenderbufferEXT - glIsTexture - glIsTextureEXT - glLightModelf - glLightModelfv_c - glLightModelfv_p - glLightModelfv_s - glLightModeli - glLightModeliv_c - glLightModeliv_p - glLightModeliv_s - glLightf - glLightfv_c - glLightfv_p - glLightfv_s - glLighti - glLightiv_c - glLightiv_p - glLightiv_s - glLineStipple - glLineWidth - glLinkProgramARB - glListBase - glLoadIdentity - glLoadMatrixd_c - glLoadMatrixd_p - glLoadMatrixd_s - glLoadMatrixf_c - glLoadMatrixf_p - glLoadMatrixf_s - glLoadName - glLogicOp - glMap1d_c - glMap1d_p - glMap1d_s - glMap1f_c - glMap1f_p - glMap1f_s - glMap2d_c - glMap2d_p - glMap2d_s - glMap2f_c - glMap2f_p - glMap2f_s - glMapBufferARB_c - glMapBufferARB_p - glMapGrid1d - glMapGrid1f - glMapGrid2d - glMapGrid2f - glMaterialf - glMaterialfv_c - glMaterialfv_p - glMaterialfv_s - glMateriali - glMaterialiv_c - glMaterialiv_p - glMaterialiv_s - glMatrixMode - glMultMatrixd_p - glMultMatrixf_p - glMultiTexCoord1dARB - glMultiTexCoord1dvARB_c - glMultiTexCoord1dvARB_c - glMultiTexCoord1dvARB_c - glMultiTexCoord1fARB - glMultiTexCoord1fvARB_c - glMultiTexCoord1fvARB_c - glMultiTexCoord1fvARB_c - glMultiTexCoord1iARB - glMultiTexCoord1ivARB_c - glMultiTexCoord1ivARB_c - glMultiTexCoord1ivARB_c - glMultiTexCoord1sARB - glMultiTexCoord1svARB_c - glMultiTexCoord1svARB_c - glMultiTexCoord1svARB_c - glMultiTexCoord2dARB - glMultiTexCoord2dvARB_c - glMultiTexCoord2dvARB_c - glMultiTexCoord2dvARB_c - glMultiTexCoord2fARB - glMultiTexCoord2fvARB_c - glMultiTexCoord2fvARB_c - glMultiTexCoord2fvARB_c - glMultiTexCoord2iARB - glMultiTexCoord2ivARB_c - glMultiTexCoord2ivARB_c - glMultiTexCoord2ivARB_c - glMultiTexCoord2sARB - glMultiTexCoord2svARB_c - glMultiTexCoord2svARB_c - glMultiTexCoord2svARB_c - glMultiTexCoord3dARB - glMultiTexCoord3dvARB_c - glMultiTexCoord3dvARB_c - glMultiTexCoord3dvARB_c - glMultiTexCoord3fARB - glMultiTexCoord3fvARB_c - glMultiTexCoord3fvARB_c - glMultiTexCoord3fvARB_c - glMultiTexCoord3iARB - glMultiTexCoord3ivARB_c - glMultiTexCoord3ivARB_c - glMultiTexCoord3ivARB_c - glMultiTexCoord3sARB - glMultiTexCoord3svARB_c - glMultiTexCoord3svARB_c - glMultiTexCoord3svARB_c - glMultiTexCoord4dARB - glMultiTexCoord4dvARB_c - glMultiTexCoord4dvARB_c - glMultiTexCoord4dvARB_c - glMultiTexCoord4fARB - glMultiTexCoord4fvARB_c - glMultiTexCoord4fvARB_c - glMultiTexCoord4fvARB_c - glMultiTexCoord4iARB - glMultiTexCoord4ivARB_c - glMultiTexCoord4ivARB_c - glMultiTexCoord4ivARB_c - glMultiTexCoord4sARB - glMultiTexCoord4svARB_c - glMultiTexCoord4svARB_c - glMultiTexCoord4svARB_c - glNewList - glNormal3b - glNormal3bv_c - glNormal3bv_p - glNormal3bv_s - glNormal3d - glNormal3dv_c - glNormal3dv_p - glNormal3dv_s - glNormal3f - glNormal3fv_c - glNormal3fv_p - glNormal3fv_s - glNormal3i - glNormal3iv_c - glNormal3iv_p - glNormal3iv_s - glNormal3s - glNormal3sv_c - glNormal3sv_p - glNormal3sv_s - glNormalPointerEXT_c - glNormalPointerEXT_p - glNormalPointerEXT_s - glNormalPointer_c - glOrtho - glPassThrough - glPixelMapfv_c - glPixelMapfv_p - glPixelMapfv_s - glPixelMapuiv_c - glPixelMapuiv_p - glPixelMapuiv_s - glPixelMapusv_c - glPixelMapusv_p - glPixelMapusv_s - glPixelStoref - glPixelStorei - glPixelTransferf - glPixelTransferi - glPixelZoom - glPointParameterfARB - glPointParameterfvARB_c - glPointParameterfvARB_p - glPointParameterfvARB_s - glPointSize - glPolygonMode - glPolygonOffset - glPolygonOffsetEXT - glPolygonStipple_c - glPolygonStipple_p - glPolygonStipple_s - glPopAttrib - glPopClientAttrib - glPopMatrix - glPopName - glPrioritizeTexturesEXT_p - glPrioritizeTextures_c - glPrioritizeTextures_p - glPrioritizeTextures_s - glProgramEnvParameter4dARB - glProgramEnvParameter4dvARB_c - glProgramEnvParameter4dvARB_p - glProgramEnvParameter4dvARB_s - glProgramEnvParameter4fARB - glProgramEnvParameter4fvARB_c - glProgramEnvParameter4fvARB_p - glProgramEnvParameter4fvARB_s - glProgramLocalParameter4dARB - glProgramLocalParameter4dvARB_c - glProgramLocalParameter4dvARB_p - glProgramLocalParameter4dvARB_s - glProgramLocalParameter4fARB - glProgramLocalParameter4fvARB_c - glProgramLocalParameter4fvARB_p - glProgramLocalParameter4fvARB_s - glProgramStringARB_c - glProgramStringARB_p - glProgramStringARB_s - glPushAttrib - glPushClientAttrib - glPushMatrix - glPushName - glRasterPos2d - glRasterPos2dv_c - glRasterPos2dv_p - glRasterPos2dv_s - glRasterPos2f - glRasterPos2fv_c - glRasterPos2fv_p - glRasterPos2fv_s - glRasterPos2i - glRasterPos2iv_c - glRasterPos2iv_p - glRasterPos2iv_s - glRasterPos2s - glRasterPos2sv_c - glRasterPos2sv_p - glRasterPos2sv_s - glRasterPos3d - glRasterPos3dv_c - glRasterPos3dv_p - glRasterPos3dv_s - glRasterPos3f - glRasterPos3fv_c - glRasterPos3fv_p - glRasterPos3fv_s - glRasterPos3i - glRasterPos3iv_c - glRasterPos3iv_p - glRasterPos3iv_s - glRasterPos3s - glRasterPos3sv_c - glRasterPos3sv_p - glRasterPos3sv_s - glRasterPos4d - glRasterPos4dv_c - glRasterPos4dv_p - glRasterPos4dv_s - glRasterPos4f - glRasterPos4fv_c - glRasterPos4fv_p - glRasterPos4fv_s - glRasterPos4i - glRasterPos4iv_c - glRasterPos4iv_p - glRasterPos4iv_s - glRasterPos4s - glRasterPos4sv_c - glRasterPos4sv_p - glRasterPos4sv_s - glReadBuffer - glReadPixels_c - glReadPixels_p - glReadPixels_s - glRectd - glRectdv_c - glRectdv_s - glRectf - glRectfv_c - glRectfv_s - glRecti - glRectiv_c - glRectiv_s - glRects - glRectsv_c - glRectsv_s - glRenderMode - glRenderbufferStorageEXT - glResizeBuffersMESA - glRotated - glRotatef - glSampleCoverageARB - glScaled - glScalef - glScissor - glSelectBuffer_c - glShadeModel - glShaderSourceARB_c - glShaderSourceARB_p - glStencilFunc - glStencilMask - glStencilOp - glTexCoord1d - glTexCoord1dv_c - glTexCoord1dv_p - glTexCoord1dv_s - glTexCoord1f - glTexCoord1fv_c - glTexCoord1fv_p - glTexCoord1fv_s - glTexCoord1i - glTexCoord1iv_c - glTexCoord1iv_p - glTexCoord1iv_s - glTexCoord1s - glTexCoord1sv_c - glTexCoord1sv_p - glTexCoord1sv_s - glTexCoord2d - glTexCoord2dv_c - glTexCoord2dv_p - glTexCoord2dv_s - glTexCoord2f - glTexCoord2fv_c - glTexCoord2fv_p - glTexCoord2fv_s - glTexCoord2i - glTexCoord2iv_c - glTexCoord2iv_p - glTexCoord2iv_s - glTexCoord2s - glTexCoord2sv_c - glTexCoord2sv_p - glTexCoord2sv_s - glTexCoord3d - glTexCoord3dv_c - glTexCoord3dv_p - glTexCoord3dv_s - glTexCoord3f - glTexCoord3fv_c - glTexCoord3fv_p - glTexCoord3fv_s - glTexCoord3i - glTexCoord3iv_c - glTexCoord3iv_p - glTexCoord3iv_s - glTexCoord3s - glTexCoord3sv_c - glTexCoord3sv_p - glTexCoord3sv_s - glTexCoord4d - glTexCoord4dv_c - glTexCoord4dv_p - glTexCoord4dv_s - glTexCoord4f - glTexCoord4fv_c - glTexCoord4fv_p - glTexCoord4fv_s - glTexCoord4i - glTexCoord4iv_c - glTexCoord4iv_p - glTexCoord4iv_s - glTexCoord4s - glTexCoord4sv_c - glTexCoord4sv_p - glTexCoord4sv_s - glTexCoordPointerEXT_c - glTexCoordPointerEXT_p - glTexCoordPointerEXT_s - glTexCoordPointer_c - glTexEnvf - glTexEnvfv_p - glTexEnvfv_s - glTexEnvi - glTexEnviv_p - glTexEnviv_s - glTexGend - glTexGendv_c - glTexGendv_p - glTexGendv_s - glTexGenf - glTexGenfv_c - glTexGenfv_p - glTexGenfv_s - glTexGeni - glTexGeniv_c - glTexGeniv_p - glTexGeniv_s - glTexImage1D_c - glTexImage1D_p - glTexImage1D_s - glTexImage2D_c - glTexImage2D_p - glTexImage2D_s - glTexImage3DEXT_c - glTexImage3DEXT_p - glTexImage3DEXT_s - glTexImage3D_c - glTexImage3D_p - glTexImage3D_s - glTexParameterf - glTexParameterfv_c - glTexParameterfv_p - glTexParameterfv_s - glTexParameteri - glTexParameteriv_c - glTexParameteriv_p - glTexParameteriv_s - glTexSubImage1DEXT_c - glTexSubImage1DEXT_p - glTexSubImage1DEXT_s - glTexSubImage1D_c - glTexSubImage1D_p - glTexSubImage1D_s - glTexSubImage2DEXT_c - glTexSubImage2DEXT_p - glTexSubImage2DEXT_s - glTexSubImage2D_c - glTexSubImage2D_p - glTexSubImage2D_s - glTexSubImage3D_c - glTexSubImage3D_p - glTexSubImage3D_s - glTranslated - glTranslatef - glUniform1fARB - glUniform1fvARB_c - glUniform1fvARB_p - glUniform1fvARB_s - glUniform1iARB - glUniform1ivARB_c - glUniform1ivARB_p - glUniform1ivARB_s - glUniform2fARB - glUniform2fvARB_c - glUniform2fvARB_p - glUniform2fvARB_s - glUniform2iARB - glUniform2ivARB_c - glUniform2ivARB_p - glUniform2ivARB_s - glUniform3fARB - glUniform3fvARB_c - glUniform3fvARB_p - glUniform3fvARB_s - glUniform3iARB - glUniform3ivARB_c - glUniform3ivARB_p - glUniform3ivARB_s - glUniform4fARB - glUniform4fvARB_c - glUniform4fvARB_p - glUniform4fvARB_s - glUniform4iARB - glUniform4ivARB_c - glUniform4ivARB_p - glUniform4ivARB_s - glUniformMatrix2fvARB_c - glUniformMatrix2fvARB_p - glUniformMatrix2fvARB_s - glUniformMatrix3fvARB_c - glUniformMatrix3fvARB_p - glUniformMatrix3fvARB_s - glUniformMatrix4fvARB_c - glUniformMatrix4fvARB_p - glUniformMatrix4fvARB_s - glUnmapBufferARB - glUseProgramObjectARB - glValidateProgramARB - glVertex2d - glVertex2dv_c - glVertex2dv_p - glVertex2dv_s - glVertex2f - glVertex2fv_c - glVertex2fv_p - glVertex2fv_s - glVertex2i - glVertex2iv_c - glVertex2iv_p - glVertex2iv_s - glVertex2s - glVertex2sv_c - glVertex2sv_p - glVertex2sv_s - glVertex3d - glVertex3dv_c - glVertex3dv_p - glVertex3dv_s - glVertex3f - glVertex3fv_c - glVertex3fv_p - glVertex3fv_s - glVertex3i - glVertex3iv_c - glVertex3iv_p - glVertex3iv_s - glVertex3s - glVertex3sv_c - glVertex3sv_p - glVertex3sv_s - glVertex4d - glVertex4dv_c - glVertex4dv_p - glVertex4dv_s - glVertex4f - glVertex4fv_c - glVertex4fv_p - glVertex4fv_s - glVertex4i - glVertex4iv_c - glVertex4iv_p - glVertex4iv_s - glVertex4s - glVertex4sv_c - glVertex4sv_p - glVertex4sv_s - glVertexAttrib1dARB - glVertexAttrib1dvARB_c - glVertexAttrib1dvARB_p - glVertexAttrib1dvARB_s - glVertexAttrib1fARB - glVertexAttrib1fvARB_c - glVertexAttrib1fvARB_p - glVertexAttrib1fvARB_s - glVertexAttrib1sARB - glVertexAttrib1svARB_c - glVertexAttrib1svARB_p - glVertexAttrib1svARB_s - glVertexAttrib2dARB - glVertexAttrib2dvARB_c - glVertexAttrib2dvARB_p - glVertexAttrib2dvARB_s - glVertexAttrib2fARB - glVertexAttrib2fvARB_c - glVertexAttrib2fvARB_p - glVertexAttrib2fvARB_s - glVertexAttrib2sARB - glVertexAttrib2svARB_c - glVertexAttrib2svARB_p - glVertexAttrib2svARB_s - glVertexAttrib3dARB - glVertexAttrib3dvARB_c - glVertexAttrib3dvARB_p - glVertexAttrib3dvARB_s - glVertexAttrib3fARB - glVertexAttrib3fvARB_c - glVertexAttrib3fvARB_p - glVertexAttrib3fvARB_s - glVertexAttrib3sARB - glVertexAttrib3svARB_c - glVertexAttrib3svARB_p - glVertexAttrib3svARB_s - glVertexAttrib4NbvARB_c - glVertexAttrib4NbvARB_p - glVertexAttrib4NbvARB_s - glVertexAttrib4NivARB_c - glVertexAttrib4NivARB_p - glVertexAttrib4NivARB_s - glVertexAttrib4NsvARB_c - glVertexAttrib4NsvARB_p - glVertexAttrib4NsvARB_s - glVertexAttrib4NubARB - glVertexAttrib4NubvARB_c - glVertexAttrib4NubvARB_p - glVertexAttrib4NubvARB_s - glVertexAttrib4NuivARB_c - glVertexAttrib4NuivARB_p - glVertexAttrib4NuivARB_s - glVertexAttrib4NusvARB_c - glVertexAttrib4NusvARB_p - glVertexAttrib4NusvARB_s - glVertexAttrib4bvARB_c - glVertexAttrib4bvARB_p - glVertexAttrib4bvARB_s - glVertexAttrib4dARB - glVertexAttrib4dvARB_c - glVertexAttrib4dvARB_p - glVertexAttrib4dvARB_s - glVertexAttrib4fARB - glVertexAttrib4fvARB_c - glVertexAttrib4fvARB_p - glVertexAttrib4fvARB_s - glVertexAttrib4ivARB_c - glVertexAttrib4ivARB_p - glVertexAttrib4ivARB_s - glVertexAttrib4sARB - glVertexAttrib4svARB_c - glVertexAttrib4svARB_p - glVertexAttrib4svARB_s - glVertexAttrib4ubvARB_c - glVertexAttrib4ubvARB_p - glVertexAttrib4ubvARB_s - glVertexAttrib4uivARB_c - glVertexAttrib4uivARB_p - glVertexAttrib4uivARB_s - glVertexAttrib4usvARB_c - glVertexAttrib4usvARB_p - glVertexAttrib4usvARB_s - glVertexAttribPointerARB_c - glVertexPointerEXT_c - glVertexPointerEXT_p - glVertexPointerEXT_s - glVertexPointer_c - glVertexPointer_p - glVertexPointer_s - glViewport - glWindowPos2dMESA - glWindowPos2iMESA - glWindowPos3dMESA - glWindowPos3iMESA - glWindowPos4dMESA - glWindowPos4iMESA - - glpCheckExtension - glpFullScreen - glpHasGLUT - glpRestoreScreen - -=head2 GLX functions - -GLX is only supported to the degree that Stan's original module supported -it. Without an entire X binding it is of limited use, and I recommend using -GLUT/FreeGLUT instead. - - XPending (X11 only) - glXSwapBuffers (X11 only) - glpXNextEvent (X11 only) - glpXQueryPointer (X11 only) - - glpcOpenWindow (Not exported, must use fully qualified package name) - -=head2 Old functions - - AlreadyGrabbed - AnyModifier - AsyncBoth - AsyncKeyboard - AsyncPointer - Button1 - Button1Mask - Button1MotionMask - Button2 - Button2Mask - Button2MotionMask - Button3 - Button3Mask - Button3MotionMask - Button4 - Button4Mask - Button4MotionMask - Button5 - Button5Mask - Button5MotionMask - ButtonMotionMask - ButtonPress - ButtonPressMask - ButtonRelease - ButtonReleaseMask - CirculateNotify - CirculateRequest - ClientMessage - ColormapChangeMask - ColormapInstalled - ColormapNotify - ColormapUninstalled - ConfigureNotify - ConfigureRequest - ControlMapIndex - ControlMask - CreateNotify - DestroyNotify - DirectColor - EnterNotify - EnterWindowMask - Expose - ExposureMask - FamilyChaos - FamilyDECnet - FamilyInternet - FocusChangeMask - FocusIn - FocusOut - GrabFrozen - GrabInvalidTime - GrabModeAsync - GrabModeSync - GrabNotViewable - GrabSuccess - GraphicsExpose - GravityNotify - GrayScale - KeyPress - KeyPressMask - KeyRelease - KeyReleaseMask - KeymapNotify - KeymapStateMask - LASTEvent - LeaveNotify - LeaveWindowMask - LockMapIndex - LockMask - MapNotify - MapRequest - MappingNotify - Mod1MapIndex - Mod1Mask - Mod2MapIndex - Mod2Mask - Mod3MapIndex - Mod3Mask - Mod4MapIndex - Mod4Mask - Mod5MapIndex - Mod5Mask - MotionNotify - NoEventMask - NoExpose - NotifyAncestor - NotifyDetailNone - NotifyGrab - NotifyHint - NotifyInferior - NotifyNonlinear - NotifyNonlinearVirtual - NotifyNormal - NotifyPointer - NotifyPointerRoot - NotifyUngrab - NotifyVirtual - NotifyWhileGrabbed - OwnerGrabButtonMask - PlaceOnBottom - PlaceOnTop - PointerMotionHintMask - PointerMotionMask - PropertyChangeMask - PropertyDelete - PropertyNewValue - PropertyNotify - PseudoColor - ReparentNotify - ReplayKeyboard - ReplayPointer - ResizeRedirectMask - ResizeRequest - SelectionClear - SelectionNotify - SelectionRequest - ShiftMapIndex - ShiftMask - StaticColor - StaticGray - StructureNotifyMask - SubstructureNotifyMask - SubstructureRedirectMask - SyncBoth - SyncKeyboard - SyncPointer - TrueColor - UnmapNotify - VisibilityChangeMask - VisibilityFullyObscured - VisibilityNotify - VisibilityPartiallyObscured - VisibilityUnobscured - XPending - X_PROTOCOL - X_PROTOCOL_REVISION - glAccum - glAlphaFunc - glBegin - glBitmap - glBlendColorEXT - glBlendEquationEXT - glBlendFunc - glCallList - glCallLists - glClear - glClearAccum - glClearColor - glClearDepth - glClearIndex - glClearStencil - glClipPlane - glColor3b - glColor3bv - glColor3d - glColor3dv - glColor3f - glColor3fv - glColor3i - glColor3iv - glColor3s - glColor3sv - glColor3ub - glColor3ubv - glColor3ui - glColor3uiv - glColor3us - glColor3usv - glColor4b - glColor4bv - glColor4d - glColor4dv - glColor4f - glColor4fv - glColor4i - glColor4iv - glColor4s - glColor4sv - glColor4ub - glColor4ubv - glColor4ui - glColor4uiv - glColor4us - glColor4usv - glColorMask - glColorMaterial - glConvolutionFilter1DEXT - glConvolutionFilter2DEXT - glConvolutionParameterfEXT - glConvolutionParameterfvEXT - glConvolutionParameteriEXT - glConvolutionParameterivEXT - glCopyConvolutionFilter1DEXT - glCopyConvolutionFilter2DEXT - glCopyPixels - glCullFace - glDeleteLists - glDepthFunc - glDepthMask - glDepthRange - glDetailTexFuncSGIS - glDisable - glDrawBuffer - glDrawPixels - glEdgeFlag - glEdgeFlagv - glEnable - glEnd - glEndList - glEvalCoord1d - glEvalCoord1dv - glEvalCoord1f - glEvalCoord1fv - glEvalCoord2d - glEvalCoord2dv - glEvalCoord2f - glEvalCoord2fv - glEvalMesh1 - glEvalMesh2 - glEvalPoint1 - glEvalPoint2 - glFeedbackBuffer - glFinish - glFlush - glFogf - glFogfv - glFogi - glFogiv - glFrontFace - glFrustum - glGenLists - glGetBooleanv - glGetClipPlane - glGetConvolutionFilterEXT - glGetConvolutionParameterfvEXT - glGetConvolutionParameterivEXT - glGetDetailTexFuncSGIS - glGetDoublev - glGetError - glGetFloatv - glGetHistogramEXT - glGetHistogramParameterfvEXT - glGetHistogramParameterivEXT - glGetIntegerv - glGetLightfv - glGetLightiv - glGetMapdv - glGetMapfv - glGetMapiv - glGetMaterialfv - glGetMaterialiv - glGetMinmaxEXT - glGetMinmaxParameterfvEXT - glGetMinmaxParameterivEXT - glGetPixelMapfv - glGetPixelMapuiv - glGetPixelMapusv - glGetPolygonStipple - glGetSeparableFilterEXT - glGetSharpenTexFuncSGIS - glGetTexEnvfv - glGetTexEnviv - glGetTexGendv - glGetTexGenfv - glGetTexGeniv - glGetTexImage - glGetTexLevelParameterfv - glGetTexLevelParameteriv - glGetTexParameterfv - glGetTexParameteriv - glHint - glHistogramEXT - glIndexMask - glIndexd - glIndexdv - glIndexf - glIndexfv - glIndexi - glIndexiv - glIndexs - glIndexsv - glInitNames - glIsEnabled - glIsList - glLightModelf - glLightModelfv - glLightModeli - glLightModeliv - glLightf - glLightfv - glLighti - glLightiv - glLineStipple - glLineWidth - glListBase - glLoadIdentity - glLoadMatrixd - glLoadMatrixf - glLoadName - glLogicOp - glMap1d - glMap1f - glMap2d - glMap2f - glMapGrid1d - glMapGrid1f - glMapGrid2d - glMapGrid2f - glMaterialf - glMaterialfv - glMateriali - glMaterialiv - glMatrixMode - glMinmaxEXT - glMultMatrixd - glMultMatrixf - glNewList - glNormal3b - glNormal3bv - glNormal3d - glNormal3dv - glNormal3f - glNormal3fv - glNormal3i - glNormal3iv - glNormal3s - glNormal3sv - glOrtho - glPassThrough - glPixelMapfv - glPixelMapuiv - glPixelMapusv - glPixelStoref - glPixelStorei - glPixelTransferf - glPixelTransferi - glPixelZoom - glPointSize - glPolygonMode - glPolygonOffsetEXT - glPolygonStipple - glPopAttrib - glPopMatrix - glPopName - glPushAttrib - glPushMatrix - glPushName - glRasterPos2d - glRasterPos2dv - glRasterPos2f - glRasterPos2fv - glRasterPos2i - glRasterPos2iv - glRasterPos2s - glRasterPos2sv - glRasterPos3d - glRasterPos3dv - glRasterPos3f - glRasterPos3fv - glRasterPos3i - glRasterPos3iv - glRasterPos3s - glRasterPos3sv - glRasterPos4d - glRasterPos4dv - glRasterPos4f - glRasterPos4fv - glRasterPos4i - glRasterPos4iv - glRasterPos4s - glRasterPos4sv - glReadBuffer - glReadPixels - glRectd - glRectdv - glRectf - glRectfv - glRecti - glRectiv - glRects - glRectsv - glRenderMode - glResetHistogramEXT - glResetMinmaxEXT - glRotated - glRotatef - glSampleMaskSGIS - glSamplePatternSGIS - glScaled - glScalef - glScissor - glSelectBuffer - glSeparableFilter2DEXT - glShadeModel - glSharpenTexFuncSGIS - glStencilFunc - glStencilMask - glStencilOp - glTagSampleBufferSGIX - glTexCoord1d - glTexCoord1dv - glTexCoord1f - glTexCoord1fv - glTexCoord1i - glTexCoord1iv - glTexCoord1s - glTexCoord1sv - glTexCoord2d - glTexCoord2dv - glTexCoord2f - glTexCoord2fv - glTexCoord2i - glTexCoord2iv - glTexCoord2s - glTexCoord2sv - glTexCoord3d - glTexCoord3dv - glTexCoord3f - glTexCoord3fv - glTexCoord3i - glTexCoord3iv - glTexCoord3s - glTexCoord3sv - glTexCoord4d - glTexCoord4dv - glTexCoord4f - glTexCoord4fv - glTexCoord4i - glTexCoord4iv - glTexCoord4s - glTexCoord4sv - glTexEnvf - glTexEnvfv - glTexEnvi - glTexEnviv - glTexGend - glTexGendv - glTexGenf - glTexGenfv - glTexGeni - glTexGeniv - glTexImage1D - glTexImage2D - glTexImage3DEXT - glTexParameterf - glTexParameterfv - glTexParameteri - glTexParameteriv - glTexSubImage1DEXT - glTexSubImage2DEXT - glTexSubImage3DEXT - glTranslated - glTranslatef - glVertex2d - glVertex2dv - glVertex2f - glVertex2fv - glVertex2i - glVertex2iv - glVertex2s - glVertex2sv - glVertex3d - glVertex3dv - glVertex3f - glVertex3fv - glVertex3i - glVertex3iv - glVertex3s - glVertex3sv - glVertex4d - glVertex4dv - glVertex4f - glVertex4fv - glVertex4i - glVertex4iv - glVertex4s - glVertex4sv - glViewport - glXSwapBuffers (X11 only) - gluLookAt - gluOrtho2D - gluPerspective - -=head2 "Perl" GL access shortcuts - - glpClipPlane - glpDisplay (X11 only) - glpFlush - glpFullScreen - glpGetClipPlane - glpLoadMatrixd - glpLoadMatrixf - glpMainLoop - glpMoveResizeWindow (X11 only) - glpMoveWindow (X11 only) - glpMultMatrixd - glpMultMatrixf - glpOpenWindow (X11 only) - glpPrintString (from PDL) - glpRasterFont (from PDL, X11 only) - glpReadTex - glpResizeWindow (X11 only) - glpRestoreScreen - glpSetDebug (from PDL) - glpSolidSphere - glpXNextEvent (X11 only) - glpXQueryPointer (X11 only) - -glpOpenWindow() provides the preferred interface to glpcOpenWindow(). -Both these functions have a special (mis)feature to handle cases when -one does not need double buffering: if no GLX_DOUBLEBUFFER is specified, -I creation of a "visual" fails, the creation is retried I -GLX_DOUBLEBUFFER specified (to make it easier to support implementation -which do not have SINGLEBUFFER visuals - which is typical on Suns). - -Since "finishing drawing" with and without GLX_DOUBLEBUFFER should be -done in different ways, a convenience function glpFlush() is provided; -it operates the same as glFlush() if no enable-GLX_DOUBLEBUFFER hack -was need, otherwise it acts as glFlush() followed by -glXSwapBuffers(). This function should be used only in the case no -GLX_DOUBLEBUFFER attribute was given to glpOpenWindow(). - -Additionally, in absence of GLUT, glpSolidSphere() is aliased to -glutSolidSphere(), to make writing simple portable backward-compatible -scripts easier. - -=head1 Historical Compatibility - -The original OpenGL-0.4 library, written by Stan Melax, was releaseed to -CPAN on 16-Feb-1996. - -The OpenGL-0.5 library, by Kenneth Albanowski, was released to CPAN -on 24-Apr-1999. - -Ilya Zakharevich released OpenGL-0.53 on 05-Nov-2000 and and OpenGL-0.54 -on 26-May-2002. - -Bob Free has been responsible for the OpenGL module development starting -with OpenGL-0.55 on 26-Apr-2007. - -Chris Marshall has been responsible for the OpenGL module development -starting with OpenGL-0.58 on 06-Sep-2009. - -Compatibility with these earlier libraries is in a state of flux with -with on-going work to refactor the Perl OpenGL module to improve support -for other GUI toolkits with Perl bindings and to update the version of -OpenGL API supported. - -=head1 EXPORTS - -The following tags can be used to selectively import symbols into the main namespace. - -=over - -=item :all - -Exports all symbols (constants and functions). - -=item :functions - -Exports all functions. - -=item :constants - -Exports all constants. - -=item :glfunctions - -Exports all B functions. - -=item :glconstants - -Exports all symbols needed for the B functions. - -=item :glufunctions - -Exports all B functions. - -=item :gluconstants - -Exports all symbols needed for the B functions. - -=item :glutfunctions - -Exports all B functions. - -=item :glutconstants - -Exports all symbols needed for the B functions. - -=item :glxfunctions - -Exports all B functions. No longer exports C. - -=item :glxconstants - -Exports all symbols needed for the B functions. - -=item :old - -Exports all old functions and constants. - -=item :oldfunctions - -Exports all old functions. - -=item :oldconstants - -Exports all symbols needed for the old functions. - -=back - -=head1 AUTHORS - -Primary OpenGL Maintainer Chris Marshall (PAUSE id CHM) -Co-Maintainer: Bob "grafman" Free - http://graphcomp.com/opengl - -Original Author: Stan Melax - -Primary author of 0.50: Kenneth Albanowski; derived from Stan's -OpenGL 0.4, with pinches of Cass Everitt's OpenGL work. - -Copyright (c) 1998,1999 Kenneth Albanowski. All rights reserved. - -Copyright (c) 2000 Ilya Zakharevich. All rights reserved. - -Windows port: Jean-Louis Morel - http://www.bribes.org/perl/wopengl.html - -Primary author of 0.55+: Bob Free; added support for 52 OpenGL extensions, -including FBO, VBO and Vertex/Fragment Programs. - -Copyright (c) 2007 Bob Free. All rights reserved. - -Contributing developer of 0.57+: Chris Marshall: cygwin port, PDL integration, release support. -Copyright (c) 2009 Christopher Marshall. All rights reserved. - -MacOSX port: Sherm Pendley - -FreeBSD support: Nomura-san - - -This program is free software; you can redistribute it and/or modify it -under the same terms as Perl itself. - - -=head1 DISTRIBUTIONS - -POGL Project site: L - -=head1 OTHER DOCUMENTATION - -Documentation, tips, sample source, benchmarks and available at -L. - -=head2 SOURCE - - CPAN: http://search.cpan.org/~chm/ - GIT: git clone git://git.code.sf.net/p/pogl/code pogl-code (Read only) - TARBALL: http://sourceforge.net/p/pogl/code/ci/master/tarball - -=head2 WINDOWS BINARIES - - For 32-bit perls 5.8.x and later: - ppm install http://www.sisyphusion.tk/ppm/OpenGL.ppd - - For 64-bit perls 5.8.x and later: - ppm install http://www.sisyphusion.tk/ppm/OpenGL.ppd diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL/Array.pod b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL/Array.pod deleted file mode 100644 index 87ff8b88..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL/Array.pod +++ /dev/null @@ -1,498 +0,0 @@ -=head1 NAME - -OpenGL::Array - Perl Array handling and conversion between Perl arrays and C array pointers. - -=head1 SYNOPSIS - - use OpenGL qw(GL_FLOAT); - - my $array = OpenGL::Array->new(4, GL_FLOAT); - my $c_ptr = $array->ptr(); # can be passed to OpenGL _c based functions - $array->calc('col,27,+'); - my @val = $array->retrieve(0, 4); - -=head1 DESCRIPTION - -OpenGL::Array (OGA) objects provide Perl Array handling and conversion -between Perl arrays and C array pointers. - -Due to the difference between how Perl and C handle pointers, all Perl -OpenGL (POGL) APIs that require pointers are suffixed with _c. OGAs -provide a means to convert Perl arrays into C pointers that can be -passed into these APIs. - -Many POGL _c APIs also have a _s version to support SDL's packed -string APIs; OGA provides APIs to convert between C arrays and packed -strings. - -POGL also provides many _p APIs that accept native Perl arrays, or in -some cases OGAs directly. In the case of VBOs, OGAs may be bound to -GPU buffers, automatically switching buffers at render time. - -Note: Since OGAs are stored as typed C arrays, there is no -conversion/copy/casting when passing them to POGL APIs, resulting in -significant performance improvements over other non-compiled bindings -(SDL, PyOpenGL, etc). - -=head1 CREATING OpenGL::Array OBJECTS - -=over 4 - -=item C - - my $array = OpenGL::Array->new($count,@types); - -Creates an empty array object of $count rows made up data types @types. - -=item C - - my $array = OpenGL::Array->new_list($type,@data); - -Creates and populates a uniform array object made up @data of type $type. - -=item C - - my $array = OpenGL::Array->new_pointer($type,ptr,$elements); - -Creates an array object wrapper around a C pointer ptr of type $type -and array length $elements. Caches C pointer directly; does not copy -data. - -Note: because OpenGL::Arrays store to direct memory addresses, it is -possible to assign to the array the pointer was obtained from and the -results will be available in the array created by new_pointer - and -vice versa (because they are viewing portions of the same memory). - -=item C - - my $str = pack 'C*', 1 .. 255; - my $array = OpenGL::Array->new_scalar(GL_UNSIGNED_BYTE, $str, length($str)); - -Creates an array object from a perl scalar. - -=item C - - my $array1 = OpenGL::Array->new_list(GL_UNSIGNED_BYTE, 1..9); - my $array2 = OpenGL::Array->new_from_pointer($array1->ptr(), 9); - -Special case, creates a uniform GL_UNSIGNED_BYTE from a pointer. - -=back - -=head1 USING OpenGL::Array OBJECT'S C POINTERS - -OpenGL::Array objects are Perl references; in order to use them in -OpenGL APIs that expect C pointers, you need to use the native -pointer: - - my $array = OpenGL::Array->new(4, GL_INT); - glGetIntegerv_c(GL_VIEWPORT, $array->ptr); - my @viewport = $array->retrieve(0, 4); - -=head1 OpenGL::Array ACCESSORS - -=over 4 - -=item C - - $array->assign($pos, @data); - -Sets array data starting at element position $pos using @data. - -=item C - - $array->assign_data($pos, $data); - -Sets array data element position $pos using packed string $data. - -=item C - - my @data = $array->retrieve($pos, $len); - -Returns an array of $len elements from an array object. - -=item C - - my $data = $array->retrieve_data($pos, $len); - -Returns a packed string of length $len bytes from an array object. - -=item C - - my $count = $array->elements(); - -Returns the element count from an array object. - -=item C - - ptr = $array->ptr(); # typically passed to opengl _c functions - -Returns a C pointer to an array object. - -Returns a C pointer to an array object. - -=item C - - ptr = $array->offset($pos); - -Returns a C pointer to the $pos element of an array object. - -=item C - - $array->update_pointer($ptr); - -Points the existing OpenGL::Array to a different data pointer. - -=back - -=head1 BINDING TO VBOs - -Helps abstract Vertex Array and VBO rendering. - -# Requires GL_ARB_vertex_buffer_object extension and POGL 0.55_01 or newer - -=over 4 - -=item C - - $array->bind($id); - -Binds a GPU buffer to an array object. If bound, glXxxPointer_p APIs -will call glBindBufferARB. - -=item C - - my $id = $array->bound(); - -Return bound buffer ID, or 0 if not bound. - -=back - -=head1 AFFINE TRANSFORMS ON OpenGL::Array OBJECTS - -Eventually, this API will abstract CPU vs GPU-based affine transforms -for the best performance. - -=over 4 - -=item C - - $array->affine($xform); - - # $xform is an NxN OpenGL::Array object used to transform $array. - - #N must be one element wider than the width of the array. - -=back - -=head1 Calc: POPULATING AND MANIPULATING OpenGL::Array OBJECTS - -=over 4 - -=item C - -Used to populate or mathematically modify an POGL array. Uses Reverse -Polish Notation (RPN) for mathematical operations. At the moment, any -array used with calc must be made of only of GL_FLOAT types. - - $array->calc($value); - -Populates the array with $value. - - $array->calc(@values); - -Populates each row of the array with @values, assuming rows have the -same width as the length of @values. If the number of passed values -must be evenly divisible by the number of elements in the array. -The number of values becomes the number of "columns." The number of -"rows" is the total number of elements of the array divided by the -columns. - - $array->calc(1.0, '3,*', '2,*,rand,+', ''); - -Resets the first column of each row to 1.0; multiplies the values in -the second column by 3; multiplies the third column by 2, then adds a -random number between 0 and 1; leaves the fourth column alone. During -this particular calc operation there would be 4 columns. - -C maintains a push/pop stack and a "register" for each column. - -C also allows for other OpenGL::Arrays to be passed in. If -multiple arrays are passed they must all have the same number of -elements. Only the calling array will be operated on, but as each -element is visited, the values from the other arrays are pre-added to -the stack (in reverse order). - - $array->calc($array2, $array3, $array4, @values); - -calc currently suports the following primitives: - -=over 4 - -=item C - -Logical "Not" for End of Stack (S0) for the current column; becomes -1.0 if empty or 0. otherwise 1.0 - -=item C<-> - -Arithmetic Negation of S0 - -=item C<+> - -Add S0 and Next on Stack (S1), pop operands and push result (Result) - -=item C<*> - -Multiply S0 and S1; Result - -=item C - -Divide S1 by S0; Result - -=item C<%> - -S1 Modulus S0; Result - -=item C<=> - -Test S0 equality to S1; pop operands and push non-zero (1.0) for true, -otherwise 0.0 (Boolean) - -=item C<< > >> - -Test if S0 Greater than S1; Boolean - -=item C<< < >> - -Test if S0 Lesser than S1; Boolean - -=item C - -If S0 is true (non-zero), pop S0 and S1; otherwise pop s0-3, push s1 - -=item C - -Pop s0 - -=item C - -Push a random number from 0.0 to 1.0 - -=item C - -Push a copy of S0 - -=item C - -Swap values of S0 and S1 - -=item C - -Copy S0 to the column's Register - -=item C - -Push the column's Register onto the column's Stack - -=item C - -Pop S0, and copy the values from the matching row of the passed -OpenGL::Array at that index. Values are copied into the current -column registers. - - my $o1 = OpenGL::Array->new_list(GL_FLOAT, 1, 2, 3, 4, 5, 6); - my $o2 = OpenGL::Array->new_list(GL_FLOAT, 7, 8 ,9, 10, 11, 12); - $o1->calc($o2, "1,store,get","","get"); - $o1->retreive(0,6) will be (7, 2, 9, 10, 5, 12) - -=item C - -Pop S0, and set the values of the matching row of the passed -OpenGL::Array named at that index. Values are copied from the current -column registers. - - my $o1 = OpenGL::Array->new_list(GL_FLOAT, 1, 2, 3, 4, 5, 6); - my $o2 = OpenGL::Array->new_list(GL_FLOAT, 7, 8 ,9, 10, 11, 12); - $o1->calc($o2, "set","", "set,1,load"); - $o2->retreive(0,6) will be (1, 0, 3, 5, 0, 6) - -=item C - -Pop S0, and push the column S0 value onto the current stack. - - $o = OpenGL::Array->new_list(GL_FLOAT, 1, 2, 3, 4, 5, 6); - $o->calc('2,colget','',''); - # $o->retreive(0,6) will be (3, 2, 3, 6, 5, 6) - -=item C - -Pop S0, and set the column S0 value to the new top of the stack. - - $o = OpenGL::Array->new_list(GL_FLOAT, 1, 2, 3, 4, 5, 6); - $o->calc('27,2,colset','',''); - # $o->retreive(0,6) will be (1, 2, 27, 4, 5, 27) - -=item C - -Pop S0 and S1, and push the column S0 value from row S1 onto the current stack. - - $o = OpenGL::Array->new_list(GL_FLOAT, 1, 2, 3, 4, 5, 6); - $o->calc('1,2,rowget','',''); - # $o->retreive(0,6) equiv (6, 2, 3, 6, 5, 6) - -=item C - -Pop S0 and S1, and set the column S0 value of row S1 to the new top of the stack. - - $o = OpenGL::Array->new_list(GL_FLOAT, 1, 2, 3, 4, 5, 6); - $o->calc('27,1,2,rowset','',''); - # $o->retreive(0,6) will be (1, 2, 3, 4, 5, 27) - -=item C - -End processing; column unchanged - -=item C - -Pop S0, End if true; column unchanged - -=item C - -End processing of current row; column unchanged - -=item C - -Pop S0, End processing of current row if true; column unchanged - -=item C - -End processing; column value set to s0 - -=item C - -Pop S0, End if true; column value set to s0 - -=item C - -End processing of current row; column value set to s0 - -=item C - -Pop S0, End processing of current row if true; column value set to s0 - -=item C - -alias to C - -=item C - -alias to C<+> - -=item C - -alias to C<*> - -=item C - -Add 1 to S0 - -=item C - -Subtract 1 from S0 - -=item C - -Add and pop everything in stack; push result - -=item C - -Average and pop everything in stack; push result - -=item C - -Replace S0 with its absolute value - -=item C - -Raise S1 to the power of S0; Result - -=item C - -The lower of S0 and S1; Result - -=item C - -The higher of S0 and S1; Result - -=item C - -Sine of S0 in Radians; Result - -=item C - -Cosine of S0; Result - -=item C - -Tangent of S0; Result - -=item C - -ArcTangent of S1 over s0; Result - -=item C - -Push the number of elements in the array - -=item C - -Push the current element index (zero-based) - -=item C - -Push the number of columns in the array - -=item C - -Push the current column index - -=item C - -Push the number of rows in the array - -=item C - -Push the current row index - -=item C - -Push the the value of PI (but remember calc is just for floats) - -=item C - -Print a dump of the current stack to standard out. - - OpenGL::Array->new_list(GL_FLOAT,7)->calc("dup,dec,2,swap,10,4,set,dump"); - -Would print: - - -----------------(row: 0, col: 0)---- - Register: 4.0000000 - Stack 4: 7.0000000 - Stack 3: 2.0000000 - Stack 2: 6.0000000 - Stack 1: 10.0000000 - Stack 0: 4.0000000 - -=back - -=back - -=head1 AUTHOR - -Bulk of documentation taken from http://graphcomp.com/pogl.cgi?v=0111s3p1&r=s3p6 - -Additions by Paul Seamons - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL/Config.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL/Config.pm deleted file mode 100644 index 2a58a635..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL/Config.pm +++ /dev/null @@ -1,46 +0,0 @@ - -# This is the Perl OpenGL build configuration file. -# It contains the final OpenGL build arguements from -# the configuration process. Access the values by -# use OpenGL::Config which defines the variable -# $OpenGL::Config containing the hash arguments from -# the WriteMakefile() call. -# -$OpenGL::Config = { - 'AUTHOR' => 'Chris Marshall ', - 'DEFINE' => '-DHAVE_VER -DGL_VERSION_USED=4.5 -DIS_STRAWBERRY -DHAVE_GL -DHAVE_GLU -DHAVE_GLU32 -DHAVE_GLUT -DHAVE_OPENGL32', - 'EXE_FILES' => [], - 'INC' => undef, - 'LDFROM' => '$(OBJECT) -lopengl32 -lglu32 -lglut32', - 'LIBS' => undef, - 'META_MERGE' => { - 'abstract' => 'Perl bindings to the OpenGL API, GLU, and GLUT/FreeGLUT', - 'resources' => { - 'bugtracker' => 'http://sourceforge.net/tracker/?group_id=562483&atid=2281758', - 'homepage' => 'http://sourceforge.net/projects/pogl/', - 'repository' => 'git://pogl.git.sourceforge.net/gitroot/pogl/pogl' - } - }, - 'NAME' => 'OpenGL', - 'OBJECT' => '$(BASEEXT)$(OBJ_EXT) gl_util$(OBJ_EXT) pogl_const$(OBJ_EXT) pogl_gl_top$(OBJ_EXT) pogl_glu$(OBJ_EXT) pogl_rpn$(OBJ_EXT) pogl_matrix$(OBJ_EXT) pogl_glut$(OBJ_EXT) pogl_gl_Accu_GetM$(OBJ_EXT) pogl_gl_GetP_Pass$(OBJ_EXT) pogl_gl_Mult_Prog$(OBJ_EXT) pogl_gl_Pixe_Ver2$(OBJ_EXT) pogl_gl_Prog_Clam$(OBJ_EXT) pogl_gl_Tex2_Draw$(OBJ_EXT) pogl_gl_Ver3_Tex1$(OBJ_EXT) pogl_gl_Vert_Multi$(OBJ_EXT)', - 'OPTIMIZE' => undef, - 'PM' => { - 'Array.pod' => '$(INST_LIBDIR)/OpenGL/Array.pod', - 'Config.pm' => '$(INST_LIBDIR)/OpenGL/Config.pm', - 'OpenGL.pm' => '$(INST_LIBDIR)/OpenGL.pm', - 'OpenGL.pod' => '$(INST_LIBDIR)/OpenGL.pod', - 'Tessellation.pod' => '$(INST_LIBDIR)/OpenGL/Tessellation.pod' - }, - 'PREREQ_PM' => { - 'Test::More' => 0 - }, - 'VERSION_FROM' => 'OpenGL.pm', - 'XSPROTOARG' => '-noprototypes', - 'clean' => { - 'FILES' => 'Config.pm utils/glversion.txt utils/glversion.exe utils/glversion.o' - }, - 'dynamic_lib' => {} - }; - -1; -__END__ diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL/Tessellation.pod b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL/Tessellation.pod deleted file mode 100644 index a3e5369d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/OpenGL/Tessellation.pod +++ /dev/null @@ -1,817 +0,0 @@ -=head1 NAME - -OpenGL::Tessellation - discussion of tessellation in POGL - -=head1 SYNOPSIS - - # somewhere in your drawing routine or drawlist compilation - - my $tess = gluNewTess(); - - gluTessCallback($tess, GLU_TESS_BEGIN, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_END, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_VERTEX, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_COMBINE, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_ERROR, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_EDGE_FLAG, 'DEFAULT'); - - gluTessBeginPolygon($tess); - gluTessBeginContour($tess); - - gluTessVertex_p($tess, 0, 200, 0); - gluTessVertex_p($tess, 150, -200, 0); - gluTessVertex_p($tess, 0, -100, 0); - gluTessVertex_p($tess, -150, -200, 0); - - gluTessEndContour($tess); - gluTessEndPolygon($tess); - - gluDeleteTess($tess); - -=head1 DESCRIPTION - -OpenGL rendering hardware typically does not have support for drawing -concave polygons or drawing polygons with windows. OpenGL provides -glu extentions that allow for translating concave polygon vertices -into triangles that can be rendered quickly on GL hardware. The -OpenGL red book chapter 11 has the full discussion of Tessellators and -the OpenGL functions (http://glprogramming.com/red/chapter11.html, or -use your favorite search engine and search for "opengl gluNewTess"). -It is a good idea to read that chapter before reading the rest of this -document. - -As much as possible, the POGL implementation of the tessellation -functions tries to remain faithful to the OpenGL specification. Where -it doesn't match exactly, POGL follows the spirit of the specification, -but offloads what it can to c based implementations. - -Tessellation functions are safe to call during drawlist creation. It -is advisable to use drawlists, or to store the generated polygon data -into OpenGL::Array objects as these methods offer faster redraws. - -=head1 FUNCTIONS - -=over 4 - -=item C - - my $tess = gluNewTess(); - -Returns a reference that can be passed to the remaining tesselation -functions. - -Note: this isn't the c-reference returned by the normal gluNewTess() c -function, it is a struct which contains that reference as well as -other members allowing callbacks to interface cleanly with the perl -code. This means that if you have loaded other c-libraries that use -standard opengl tessellation, you will not be able to use this perl -reference directly. - -The POGL implementation of gluNewTess() allows for two additional -parameters to be passed. The first is a boolean value indicating that -default c callbacks and perl callbacks should be passed rgba color -data. The second is a boolean value indicating that xyz normal data -should be passed. Eventually one additional flag indicating that -texture data should be passed will be added as well. - - my $tess = gluNewTess(); - # gluTessVertex_p should be passed only x,y,z vertex data - # as in gluTessVertex_p($tess, $x, $y, $z); - - my $tess = gluNewTess('do_colors'); - # gluTessVertex_p should be passed x,y,z AND r,g,b,a vertex data - # as in gluTessVertex_p($tess, $x, $y, $z, $r, $g, $b, $a); - - my $tess = gluNewTess('do_colors', 'do_normals'); - # gluTessVertex_p should be passed x,y,z AND r,g,b,a AND nx,ny,nz vertex data - # as in gluTessVertex_p($tess, $x, $y, $z, $r, $g, $b, $a, $nx, $ny, $nz); - - my $tess = gluNewTess(undef, 'do_normals'); - # gluTessVertex_p should be passed x,y,z AND nx,ny,nz vertex data (no colors) - # as in gluTessVertex_p($tess, $x, $y, $z, $nx, $ny, $nz); - -Any true value can be passed in place of 'do_colors' and 'do_normals' -though using 'do_colors' and 'do_normals' acts as documentation. - -Behavior in these modes will be discussed further for functions to -which they apply. - -=item C - - gluDeleteTess($tess); - -This deletes the tessellation structure and frees up any remaining -associated memory. - -=item C - - gluTessCallback($tess, GLU_TESS_BEGIN, 'DEFAULT'); - - gluTessCallback($tess, GLU_TESS_BEGIN, \&glBegin); - - gluTessCallback($tess, GLU_TESS_BEGIN, sub { my $enum = shift; glBegin($enum) }); - - gluTessCallback($tess, GLU_TESS_BEGIN); # unsets current handler - -Registers handlers for each of the tessellation callback types. Takes -a tessellation reference generated by gluNewTess, a type, and a -coderef or the word 'DEFAULT'. If the word 'DEFAULT' is passed, a -default c-level callback will be installed (which will be discussed -for each callback). If no 3rd argument is given, then any handler -currently set will be removed. Valid callback types are - - GLU_TESS_BEGIN - GLU_TESS_END - GLU_TESS_VERTEX - GLU_TESS_COMBINE - GLU_TESS_ERROR - GLU_TESS_EDGE_FLAG - - GLU_TESS_BEGIN_DATA - GLU_TESS_END_DATA - GLU_TESS_VERTEX_DATA - GLU_TESS_COMBINE_DATA - GLU_TESS_ERROR_DATA - GLU_TESS_EDGE_FLAG_DATA - -These types and their passed parameters will be discussed in the -CALLBACKS section. - -The types ending with "_DATA" are similar to their non-_DATA -counterpart, but when called are passed the option $polygon_data that -can be set during gluTessBeginPolygon. - -=item C - - gluTessBeginPolygon($tess); - - gluTessBeginPolygon($tess, $polygon_data); - -Begins the tessellation transaction. It must eventually be -ended with a gluTessEndPolygon before the tessellator will normally -begin work. - -An optional second argument can be passed which can be any perl -scalar or reference. If a callback is registered using a type ending -in _DATA, this perl scalar or reference will be passed as an additional -argument to that callback. - - gluTessCallback($tess, GLU_TESS_END_DATA, sub { - my $polygon_data = shift; - glEnd(); - print "glEnd: (".($polygon_data->[2] eq 8 ? "YES" : "NO").")\n"; - }); - - gluTessBeginPoly($tess, [6,7,8]); # arrayref will be passed to _DATA callbacks - -A sample Object Oriented tesselation sample listed at the end of this -document makes use of this "opaque" polygon data. - -=item C - - gluTessEndPolygon($tess); - -Finishes the tessellation transaction, which normally will immediately -fire the necessary callbacks generated by the tessellation process. -Once finished, it cleans up any accumulated temporary vertice data. - -=item C - - gluTessBeginContour($tess); - -Starts a new contour of the tessellation of the current polygon. -Please read the OpenGL documentation, and red book chapter on -tessellation for more help on when to use different contours. Should -eventually be followed by a gluTessEndContour call. - -(At a high level, tessellated polygons may have windows and multiple -separate portions. Each inner and outer border of these portions -should be represented by a different contour.) - -=item C - - gluTessVertex_p($tess, $x, $y, $z); - - gluTessVertex_p($tess, $x, $y, $z, $vertex_data); - -Adds a vertex to the current contour of the current polygon being -tessellated. - -If the vertex callback type is set to GLU_TESS_VERTEX, the optional -$vertex_data argument will be passed to the vertex callback, and to -the combine callback (if GLU_TESS_VERTEX_DATA is used, then the -$polygon_data passed to gluTessBeginPolygon will be passed instead). -This optional opaque vertex data can be any perl scalar or reference -and can be used to pass useful information along during the -tessellation process. - -If the 'do_colors' or 'do_normals' parameters were passed to gluNewTess, -then those additional properties MUST be passed as additional arguments. - - # my $tess = gluNewTess('do_colors'); - gluTessVertex_p($tess, $x, $y, $z, $r, $g, $b, $a); - gluTessVertex_p($tess, $x, $y, $z, $r, $g, $b, $a, $vertex_data); - - # my $tess = gluNewTess('do_colors', 'do_normals'); - gluTessVertex_p($tess, $x, $y, $z, $r, $g, $b, $a, $nx, $ny, $nz); - gluTessVertex_p($tess, $x, $y, $z, $r, $g, $b, $a, $nx, $ny, $nz, $vertex_data); - - # my $tess = gluNewTess(undef, 'do_normals'); - gluTessVertex_p($tess, $x, $y, $z, $nx, $ny, $nz); - gluTessVertex_p($tess, $x, $y, $z, $nx, $ny, $nz, $vertex_data); - -=back - -=head1 CALLBACKS - -All of the callbacks support a 'DEFAULT' handler that can be installed -by passing the word 'DEFAULT' in place of the callback code reference. -The DEFAULT c implementations are there to avoid needing to round trip -out to perl. The defaults employed are described for each of the -callback types. - -With the exception of the COMBINE callback, return values from -callbacks are discarded. - -=over 4 - -=item C - - gluTessCallback($tess, GLU_TESS_BEGIN, 'DEFAULT'); - - gluTessCallback($tess, GLU_TESS_BEGIN, \&glBegin); - - gluTessCallback($tess, GLU_TESS_BEGIN, sub { - my $enum = shift; - glBegin($enum); - }); - -The 'DEFAULT' option installs a c-handler that calls the glBegin c -function directly without round-tripping out to perl. - -If $polygon_data was set during gluTessBeginPolygon, it is discarded. - -=item C - -Similar to GLU_TESS_BEGIN but will be passed optional $polygon_data -set in gluTessBeginPolygon if any. The 'DEFAULT' handler will ignore -this data. - - gluTessCallback($tess, GLU_TESS_BEGIN_DATA, sub { - my ($enum, $polygon_data) = @_; - glBegin($enum); - print "glBegin - and I received polygon_data\n" if $polygon_data; - }); - -=item C - - gluTessCallback($tess, GLU_TESS_END, 'DEFAULT'); - - gluTessCallback($tess, GLU_TESS_END, \&glEnd); - - gluTessCallback($tess, GLU_TESS_END, sub { glEnd() }); - -The 'DEFAULT' option installs a c-handler that calls the glEnd c -function directly without round-tripping out to perl. - -If $polygon_data was set during gluTessBeginPolygon, it is discarded. - -=item C - -Similar to GLU_TESS_END but will be passed optional $polygon_data set -in gluTessBeginPolygon if any. The 'DEFAULT' handler will ignore this -data. - - gluTessCallback($tess, GLU_TESS_END_DATA, sub { - my ($polygon_data) = @_; - glEnd(); - print "glEnd - and I received polygon_data\n" if $polygon_data; - }); - -=item C - -The GLU_TESS_VERTEX callback handler has slightly different -behavior depending on how gluNewTess was called. The optional behaviors -allow for sane default processing of colors and normals without needing -to roundtrip out to perl. - - my $tess = gluNewTess(); - - gluTessCallback($tess, GLU_TESS_VERTEX, 'DEFAULT'); - - # the following will break if vertex_data is passed to gluTessVertex_p - gluTessCallback($tess, GLU_TESS_VERTEX, \&glVertex3f); - - gluTessCallback($tess, GLU_TESS_VERTEX, sub { - my ($x, $y, $z) = @_; - glVertex3f($x, $y, $z); - }); - - # you can also pass vertex_data to gluTessVertex_p - gluTessCallback($tess, GLU_TESS_VERTEX, sub { - my ($x, $y, $z, $vertex_data) = @_; - glVertex3f($x, $y, $z); - print "glVertex - and I received vertex_data\n" if $vertex_data; - }); - -The 'DEFAULT' option installs a c-handler that calls the glVertex c -function directly without round-tripping out to perl. The DEFAULT -handler discards any polygon_data or vertex_data. - -IF $vertex_data was set during gluTessVertex_p it will be passed as the final -argument. - -If gluNewTess was passed 'do_colors' then the GLU_TESS_VERTEX callback -will also be passed the rgba information. The 'DEFAULT' option -will pass the color information to glColor4f before calling glVertex3f. - - my $tess = gluNewTess('do_colors'); - - gluTessCallback($tess, GLU_TESS_VERTEX, sub { - my ($x, $y, $z, $r, $g, $b, $a, $vertex_data) = @_; - glColor4f($r, $g, $b, $a); - glVertex3f($x, $y, $z); - }); - -If gluNewTess was passed 'do_normals' then the GLU_TESS_VERTEX callback -will also be passed the normal x,y,z information. The 'DEFAULT' option -will pass the normal information to glNormal3f before calling glVertex3f. - - my $tess = gluNewTess('do_colors', 'do_normals'); - - gluTessCallback($tess, GLU_TESS_VERTEX, sub { - my ($x, $y, $z, $r, $g, $b, $a, $nx, $ny, $nz, $vertex_data) = @_; - glColor4f($r, $g, $b, $a); - glNormalf($nx, $ny, $nz); - glVertex3f($x, $y, $z); - }); - - # OR - - my $tess = gluNewTess(undef, 'do_normals'); - - gluTessCallback($tess, GLU_TESS_VERTEX, sub { - my ($x, $y, $z, $nx, $ny, $nz, $vertex_data) = @_; - glNormalf($nx, $ny, $nz); - glVertex3f($x, $y, $z); - }); - -In all cases, any optional vertex_data will be passed as the final argument. - -=item C - -Similar to GLU_TESS_VERTEX but will be passed optional $polygon_data -set in gluTessBeginPolygon (if any) rather than the optional -$vertex_data passed to gluTessVertex_p. The 'DEFAULT' handler will -ignore this data. - - gluTessCallback($tess, GLU_TESS_VERTEX_DATA, sub { - my ($x, $y, $z, $vertex_data) = @_; - glVertex3f($x, $y, $z); - print "glVertex - and I received vertex_data\n" if $vertex_data; - }); - -=item C - - gluTessCallback($tess, GLU_TESS_COMBINE, 'DEFAULT'); - # works with gluTessCallback($tess, GLU_TESS_VERTEX, 'DEFAULT'); - - - # OR - - - # the following callback is valid for gluNewTess() (no do_colors or do_normals) - # using gluTessVertex_p($tess, $x, $y, $z); - my $tess = gluNewTess(); - gluTessCallback($tess, GLU_TESS_COMBINE, sub { - my ($x, $y, $z, # new vertex location - $v0, $v1, $v2, $v3, # border vertex arrayrefs - $w0, $w1, $w2, $w3, # border vertex weights - $polygon_data) = @_; # optional data passed to gluTessBeginPolygon - return ($x, $y, $z); - }); - # works with gluTessCallback($tess, GLU_TESS_VERTEX, 'DEFAULT'); - - - # OR - - - # the following callback is valid for gluNewTess() when vertex data is passed - # using gluTessVertex_p($tess, $x, $y, $z, [$r, $g, $b, $a]); - # The DEFAULT callback cannot automatically proceess this type of data - # but passing data to a custom handler this way could handle any arbitrary data passed to it - my $tess = gluNewTess(); - use constant _r => 0; - use constant _g => 1; - use constant _b => 2; - use constant _a => 3; - gluTessCallback($tess, GLU_TESS_COMBINE, sub { - my ($x, $y, $z, # new vertex location - $v0, $v1, $v2, $v3, # border vertex arrayrefs - $w0, $w1, $w2, $w3, # border vertex weights - $polygon_data) = @_; # optional data passed to gluTessBeginPolygon - - # $v0 will contain [$x, $y, $z, [$r, $g, $b, $a]] - my @rgba = map {$_->[3]} $v0, $v1, $v2, $v3; - - # generate a point with color weighted from the surrounding vertices - # then return that color information in the same way we received it (an rgba arrayref) - return ( - $x, $y, $z, - [$w0*$rgba[0]->[_r] + $w1*$rgba[1]->[_r] + $w2*$rgba[2]->[_r] + $w3*$rgba[3]->[_r], - $w0*$rgba[0]->[_g] + $w1*$rgba[1]->[_g] + $w2*$rgba[2]->[_g] + $w3*$rgba[3]->[_g], - $w0*$rgba[0]->[_b] + $w1*$rgba[1]->[_b] + $w2*$rgba[2]->[_b] + $w3*$rgba[3]->[_b], - $w0*$rgba[0]->[_a] + $w1*$rgba[1]->[_a] + $w2*$rgba[2]->[_a] + $w3*$rgba[3]->[_a]], - ); - }); - # works with gluTessCallback($tess, GLU_TESS_VERTEX, sub { - # my ($x, $y, $z, $rgba) = @_; - # glColor4f(@$rgba); - # glVertex3f($x, $y, $z); - # }); - - - # OR - - - # the following callback is valid for gluNewTess('do_colors') - # using gluTessVertex_p($tess, $x, $y, $z, $r, $g, $b, $a); - # the DEFAULT callback COULD automatically proceess this type of data as well if additional vertex data is not passed - my $tess = gluNewTess('do_colors'); - use constant _r => 3; - use constant _g => 4; - use constant _b => 5; - use constant _a => 6; - gluTessCallback($tess, GLU_TESS_COMBINE, sub { - my ($x, $y, $z, # new vertex location - $v0, $v1, $v2, $v3, # border vertex arrayrefs - $w0, $w1, $w2, $w3, # border vertex weights - $polygon_data) = @_; # optional data passed to gluTessBeginPolygon - - # $v0 will contain [$x, $y, $z, $r, $g, $b, $a] - - return ( # generate a point with color weighted from the surrounding vertices - $x, $y, $z, - $w0*$v0->[_r] + $w1*$v1->[_r] + $w2*$v2->[_r] + $w3*$v3->[_r], - $w0*$v0->[_g] + $w1*$v1->[_g] + $w2*$v2->[_g] + $w3*$v3->[_g], - $w0*$v0->[_b] + $w1*$v1->[_b] + $w2*$v2->[_b] + $w3*$v3->[_b], - $w0*$v0->[_a] + $w1*$v1->[_a] + $w2*$v2->[_a] + $w3*$v3->[_a], - ($v0->[7] || $v1->[7] || $v2->[7] || $v3->[7]), # if we received vertex data - return some for the new vertex - ); - }); - # works with gluTessCallback($tess, GLU_TESS_VERTEX, 'DEFAULT'); - # OR - # works with gluTessCallback($tess, GLU_TESS_VERTEX, sub { - # my ($x, $y, $z, $r, $g, $b, $a, $vertex_data) = @_; - # glColor4f($r, $g, $b, $a); - # glVertex3f($x, $y, $z); - # }); - -The combine callback is called if the tessellator decides a new vertex -is needed. This will happen with self intersecting polygons. In this -case, the COMBINE callback can be used to interpolate appropriate -values for normals, and colors, or for any desired information. - -The combine callback will be passed the following: - -=over 4 - -=item C<$x, $y, $z> - -The x y and z coordinates of the new vertex being created. - -=item C<$v0, $v1, $v2, $v3> - -Arrayrefs of vertex information for the vertices bordering this -new vertex (the ones that caused the new vertex to be created). - -By default if gluNewTess() is called, these arrayrefs will be passed: - - my ($x, $y, $z, $vertex_data) = @$v0; - # received from gluTessVertex_p($tess, $x, $y, $z, $vertex_data); - -If gluNewTess('do_colors') is called, the following will be passed: - - my ($x, $y, $z, $r, $g, $b, $a, $vertex_data) = @$v0; - # received from gluTessVertex_p($tess, $x, $y, $z, $r, $g, $b, $a, $vertex_data); - -If gluNewTess('do_colors', 'do_normals') is called, the following will be passed: - - my ($x, $y, $z, $r, $g, $b, $a, $nx, $ny, $nz, $vertex_data) = @$v0; - # received from gluTessVertex_p($tess, $x, $y, $z, $r, $g, $b, $a, $nx, $ny, $nz, $vertex_data); - -If gluNewTess(undef, 'do_normals') is called, the following will be passed: - - my ($x, $y, $z, $nx, $ny, $nz, $vertex_data) = @$v0; - # received from gluTessVertex_p($tess, $x, $y, $z, $nx, $ny, $nz, $vertex_data); - -In all cases, the data returned by the COMBINE callback should be in the same -format that each of the vertices are in when passed into the COMBINE callback. - -=item C<$w0, $w1, $w2, $w3> - -Weights of the participating vertices (weight $w0 corresponds to vertex $v0). - -=item C - -Any optional data passed to gluTessBeginPolygon. Normally this would -only be passed to GLU_TESS_COMBINE_DATA, but GLU_TESS_COMBINE_DATA -and GLU_TESS_COMBINE share the same code implementation. - -=back - -=item C - -Identical in function to the GLU_TESS_COMBINE handler. They -use the same callback implementation. - -=item C - - gluTessCallback($tess, GLU_TESS_ERROR, 'DEFAULT'); - - gluTessCallback($tess, GLU_TESS_ERROR, \&glEdgeFlag); - - gluTessCallback($tess, GLU_TESS_ERROR, sub { - my $errno = shift; - my $err = gluErrorString($errno); - warn "Received a glu tess error ($errno - $err)\n"; - }); - -The 'DEFAULT' option installs a c-handler that warns with the -appropriate gluErrorString. - -If $polygon_data was set during gluTessBeginPolygon, it is discarded. - -=item C - -Similar to GLU_TESS_ERROR but will be passed optional $polygon_data -set in gluTessBeginPolygon if any. The 'DEFAULT' handler will ignore -this data. - - gluTessCallback($tess, GLU_TESS_ERROR_DATA, sub { - my ($errno, $polygon_data) = @_; - my $err = gluErrorString($errno); - warn "Received a glu tess error ($errno - $err)\n"; - warn "And I received polygon_data\n" if $polygon_data; - }); - -=item C - - gluTessCallback($tess, GLU_TESS_EDGE_FLAG, 'DEFAULT'); - - gluTessCallback($tess, GLU_TESS_EDGE_FLAG, \&glEdgeFlag); - - gluTessCallback($tess, GLU_TESS_EDGE_FLAG, sub { - my ($flag) = @_; - glEdgeFlag($flag); - }); - -The 'DEFAULT' option installs a c-handler that calls the glEdgeFlag c -function directly without round-tripping out to perl. - -If $polygon_data was set during gluTessBeginPolygon, it is discarded. - -=item C - -Similar to GLU_TESS_EDGE_FLAG but will be passed $polygon_data set in -gluTessBeginPolygon if any. The 'DEFAULT' handler will ignore this -data. - - gluTessCallback($tess, GLU_TESS_EDGE_FLAG_DATA, sub { - my ($flag, $polygon_data) = @_; - glEdgeFlag($flag); - print "glEdgeFlag - and I received polygon_data\n" if $polygon_data; - }); - -=back - -=head1 Example: Basic Arrowhead - - use OpenGL qw(:all); - - glutInit(); - glutInitWindowSize(501, 501); - glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); - glutCreateWindow("Tessellation"); - glMatrixMode(GL_PROJECTION()); - glLoadIdentity(); - glOrtho(-250,250,-250,250,-1.0,1.0); - glMatrixMode(GL_MODELVIEW); - - my $view_triangles = 1; # set to zero to show polygon - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE) if $view_triangles; - - glutDisplayFunc(sub { - glColor3f(1,1,1); - - my $tess = gluNewTess(); - gluTessCallback($tess, GLU_TESS_BEGIN, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_END, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_VERTEX, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_COMBINE, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_ERROR, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_EDGE_FLAG, 'DEFAULT') if ! $view_triangles; - gluTessBeginPolygon($tess); - gluTessBeginContour($tess); - - gluTessVertex_p($tess, 0, 200, 0); - gluTessVertex_p($tess, 150, -200, 0); - gluTessVertex_p($tess, 0, -100, 0); - gluTessVertex_p($tess, -150, -200, 0); - - gluTessEndContour($tess); - gluTessEndPolygon($tess); - gluDeleteTess($tess); - - glutSwapBuffers(); - }); - - glutMainLoop(); - -=head1 Example: Multiple contours - - use OpenGL qw(:all); - - glutInit(); - glutInitWindowSize(501, 501); - glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); - glutCreateWindow("Tessellation"); - glMatrixMode(GL_PROJECTION()); - glLoadIdentity(); - glOrtho(-250,250,-250,250,-1.0,1.0); - glMatrixMode(GL_MODELVIEW); - - my $view_triangles = 1; # set to zero to show polygon - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE) if $view_triangles; - - glutDisplayFunc(sub { - glColor3f(1,1,1); - my $v = [[[125,0,0], [150,150,0], [0,125,0], [-150,150,0], - [-125,0,0], [-150,-150,0], [0,-125,0], [150,-150,0], [125,0,0]], - [[75,0,0], [100,100,0], [0,75,0], [-100,100,0], - [-75,0,0], [-100,-100,0], [0,-75,0], [100,-100,0], [75,0,0]] - ]; - - my $tess = gluNewTess(); - gluTessCallback($tess, GLU_TESS_BEGIN, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_END, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_VERTEX, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_COMBINE, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_ERROR, 'DEFAULT'); - gluTessCallback($tess, GLU_TESS_EDGE_FLAG, 'DEFAULT') if ! $view_triangles; - gluTessBeginPolygon($tess); - foreach (@$v) { - gluTessBeginContour($tess); - foreach (@$_) { - gluTessVertex_p($tess, @$_); - } - gluTessEndContour($tess); - } - gluTessEndPolygon($tess); - gluDeleteTess($tess); - - glutSwapBuffers(); - }); - - glutMainLoop(); - -=head1 Example: Sample OO Tessellation interface using polygon_data - - - use OpenGL qw(:all); - - glutInit(); - glutInitWindowSize(501, 501); - glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); - glutCreateWindow("Tessellation"); - glMatrixMode(GL_PROJECTION()); - glLoadIdentity(); - glOrtho(-250,250,-250,250,-1.0,1.0); - glMatrixMode(GL_MODELVIEW); - - my $view_triangles = 0; - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE) if $view_triangles; - - glutDisplayFunc(sub { - glColor3f(1,1,1); - my $v = [[[125,0,0], [150,150,0, 0,1,0], [0,125,0], [-150,150,0, 1,0,0], - [-125,0,0], [-150,-150,0, 0,0,1], [0,-125,0], [150,-150,0, 1,1,0], [125,0,0]], - [[75,0,0], [100,100,0], [0,75,0], [-100,100,0], - [-75,0,0], [-100,-100,0], [0,-75,0], [100,-100,0], [75,0,0]] - ]; - - OpenGL::Tess->new(do_colors => 1, no_edge_flag => $view_triangles)->draw_contours(@$v); - - glutSwapBuffers(); - }); - - glutMainLoop(); - - ###----------------------------------------------------------------### - - - package OpenGL::Tess; - - # Sample object oriented Tessellator - # OpenGL::Tess->new(do_colors => 1, no_edge_flag => $view_triangles)->draw_contours(@$v); - - use strict; - - sub new { - my $class = shift; - my $self = bless {@_}, $class; - my $tess = $self->{'_tess'} = OpenGL::gluNewTess($self->do_colors); - for my $cb (qw(begin end vertex combine error edge_flag)) { - my $enum = OpenGL->can("GLU_TESS_\U${cb}_DATA") || die "Couldn't find callback for $cb"; - my $name = "_$cb"; - OpenGL::gluTessCallback($tess, $enum->(), sub { $_[-1]->$name(@_) }); - } - return $self; - } - - sub DESTROY { - my $tess = shift->{'_tess'}; - OpenGL::gluDeleteTess($tess) if $tess; - } - - sub tess { - my $self = shift; - return $self->{'_tess'} || die "Missing tess"; - } - - sub do_colors { shift->{'do_colors'} } - - sub begin_polygon { - my $self = shift; - my $tess = $self->tess; - # self will be passed as last arg ([-1]) to all callbacks as opaque polygon data - return OpenGL::gluTessBeginPolygon($tess, $self); - } - - sub end_polygon { OpenGL::gluTessEndPolygon( shift->tess) } - sub begin_contour { OpenGL::gluTessBeginContour(shift->tess) } - sub end_contour { OpenGL::gluTessEndContour( shift->tess) } - - sub draw_contours { - my $self = shift; - $self->begin_polygon; - foreach my $c (@_) { - $self->begin_contour; - $self->add_vertex(@$_) for @$c; - $self->end_contour; - } - $self->end_polygon; - } - - sub add_vertex { - my $self = shift; - die 'Usage $self->add_vertex($x,$y,$z)' if @_ < 3; - if ($self->do_colors) { - push @_, 1 for @_ .. 6; - OpenGL::gluTessVertex_p($self->tess, @_[0..6]); - } else { - OpenGL::gluTessVertex_p($self->tess, @_[0..3]); - } - } - - sub _begin { - my ($self, $enum) = @_; - OpenGL::glBegin($enum); - } - - sub _end { OpenGL::glEnd() } - - sub _vertex { - my ($self, $x, $y, $z, $r, $g, $b, $a) = @_; - OpenGL::glColor4f($r, $g, $b, $a) if $self->do_colors; - OpenGL::glVertex3f($x, $y, $z); - } - - sub _edge_flag { - my ($self, $flag) = @_; - return if $self->{'no_edge_flag'}; - OpenGL::glEdgeFlag($flag); - } - - sub _error { - my ($self, $errno) = @_; - warn __PACKAGE__ ." error: ".OpenGL::gluErrorString($errno); - } - - sub _combine { - my ($self, $x, $y, $z, $v0, $v1, $v2, $v3, $w0, $w1, $w2, $w3) = @_; - return ($x, $y, $z) if !$self->do_colors; - return ($x, $y, $z, - $w0*$v0->[3] + $w1*$v1->[3] + $w2*$v2->[3] + $w3*$v3->[3], - $w0*$v0->[4] + $w1*$v1->[4] + $w2*$v2->[4] + $w3*$v3->[4], - $w0*$v0->[5] + $w1*$v1->[5] + $w2*$v2->[5] + $w3*$v3->[5], - $w0*$v0->[6] + $w1*$v1->[6] + $w2*$v2->[6] + $w3*$v3->[6]); - } - - 1; - -=head1 AUTHOR - - Paul Seamons - paul AT seamons dot com - 2011 - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Scalar/Util.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Scalar/Util.pm deleted file mode 100644 index 69821587..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Scalar/Util.pm +++ /dev/null @@ -1,360 +0,0 @@ -# Copyright (c) 1997-2007 Graham Barr . All rights reserved. -# This program is free software; you can redistribute it and/or -# modify it under the same terms as Perl itself. -# -# Maintained since 2013 by Paul Evans - -package Scalar::Util; - -use strict; -use warnings; -require Exporter; - -our @ISA = qw(Exporter); -our @EXPORT_OK = qw( - blessed refaddr reftype weaken unweaken isweak - - dualvar isdual isvstring looks_like_number openhandle readonly set_prototype - tainted -); -our $VERSION = "1.50"; -$VERSION = eval $VERSION; - -require List::Util; # List::Util loads the XS -List::Util->VERSION( $VERSION ); # Ensure we got the right XS version (RT#100863) - -our @EXPORT_FAIL; - -unless (defined &weaken) { - push @EXPORT_FAIL, qw(weaken); -} -unless (defined &isweak) { - push @EXPORT_FAIL, qw(isweak isvstring); -} -unless (defined &isvstring) { - push @EXPORT_FAIL, qw(isvstring); -} - -sub export_fail { - if (grep { /^(?:weaken|isweak)$/ } @_ ) { - require Carp; - Carp::croak("Weak references are not implemented in the version of perl"); - } - - if (grep { /^isvstring$/ } @_ ) { - require Carp; - Carp::croak("Vstrings are not implemented in the version of perl"); - } - - @_; -} - -# set_prototype has been moved to Sub::Util with a different interface -sub set_prototype(&$) -{ - my ( $code, $proto ) = @_; - return Sub::Util::set_prototype( $proto, $code ); -} - -1; - -__END__ - -=head1 NAME - -Scalar::Util - A selection of general-utility scalar subroutines - -=head1 SYNOPSIS - - use Scalar::Util qw(blessed dualvar isdual readonly refaddr reftype - tainted weaken isweak isvstring looks_like_number - set_prototype); - # and other useful utils appearing below - -=head1 DESCRIPTION - -C contains a selection of subroutines that people have expressed -would be nice to have in the perl core, but the usage would not really be high -enough to warrant the use of a keyword, and the size would be so small that -being individual extensions would be wasteful. - -By default C does not export any subroutines. - -=cut - -=head1 FUNCTIONS FOR REFERENCES - -The following functions all perform some useful activity on reference values. - -=head2 blessed - - my $pkg = blessed( $ref ); - -If C<$ref> is a blessed reference, the name of the package that it is blessed -into is returned. Otherwise C is returned. - - $scalar = "foo"; - $class = blessed $scalar; # undef - - $ref = []; - $class = blessed $ref; # undef - - $obj = bless [], "Foo"; - $class = blessed $obj; # "Foo" - -Take care when using this function simply as a truth test (such as in -C) because the package name C<"0"> is defined yet false. - -=head2 refaddr - - my $addr = refaddr( $ref ); - -If C<$ref> is reference, the internal memory address of the referenced value is -returned as a plain integer. Otherwise C is returned. - - $addr = refaddr "string"; # undef - $addr = refaddr \$var; # eg 12345678 - $addr = refaddr []; # eg 23456784 - - $obj = bless {}, "Foo"; - $addr = refaddr $obj; # eg 88123488 - -=head2 reftype - - my $type = reftype( $ref ); - -If C<$ref> is a reference, the basic Perl type of the variable referenced is -returned as a plain string (such as C or C). Otherwise C -is returned. - - $type = reftype "string"; # undef - $type = reftype \$var; # SCALAR - $type = reftype []; # ARRAY - - $obj = bless {}, "Foo"; - $type = reftype $obj; # HASH - -=head2 weaken - - weaken( $ref ); - -The lvalue C<$ref> will be turned into a weak reference. This means that it -will not hold a reference count on the object it references. Also, when the -reference count on that object reaches zero, the reference will be set to -undef. This function mutates the lvalue passed as its argument and returns no -value. - -This is useful for keeping copies of references, but you don't want to prevent -the object being DESTROY-ed at its usual time. - - { - my $var; - $ref = \$var; - weaken($ref); # Make $ref a weak reference - } - # $ref is now undef - -Note that if you take a copy of a scalar with a weakened reference, the copy -will be a strong reference. - - my $var; - my $foo = \$var; - weaken($foo); # Make $foo a weak reference - my $bar = $foo; # $bar is now a strong reference - -This may be less obvious in other situations, such as C, for instance -when grepping through a list of weakened references to objects that may have -been destroyed already: - - @object = grep { defined } @object; - -This will indeed remove all references to destroyed objects, but the remaining -references to objects will be strong, causing the remaining objects to never be -destroyed because there is now always a strong reference to them in the @object -array. - -=head2 unweaken - - unweaken( $ref ); - -I - -The lvalue C will be turned from a weak reference back into a normal -(strong) reference again. This function mutates the lvalue passed as its -argument and returns no value. This undoes the action performed by -L. - -This function is slightly neater and more convenient than the -otherwise-equivalent code - - my $tmp = $REF; - undef $REF; - $REF = $tmp; - -(because in particular, simply assigning a weak reference back to itself does -not work to unweaken it; C<$REF = $REF> does not work). - -=head2 isweak - - my $weak = isweak( $ref ); - -Returns true if C<$ref> is a weak reference. - - $ref = \$foo; - $weak = isweak($ref); # false - weaken($ref); - $weak = isweak($ref); # true - -B: Copying a weak reference creates a normal, strong, reference. - - $copy = $ref; - $weak = isweak($copy); # false - -=head1 OTHER FUNCTIONS - -=head2 dualvar - - my $var = dualvar( $num, $string ); - -Returns a scalar that has the value C<$num> in a numeric context and the value -C<$string> in a string context. - - $foo = dualvar 10, "Hello"; - $num = $foo + 2; # 12 - $str = $foo . " world"; # Hello world - -=head2 isdual - - my $dual = isdual( $var ); - -I - -If C<$var> is a scalar that has both numeric and string values, the result is -true. - - $foo = dualvar 86, "Nix"; - $dual = isdual($foo); # true - -Note that a scalar can be made to have both string and numeric content through -numeric operations: - - $foo = "10"; - $dual = isdual($foo); # false - $bar = $foo + 0; - $dual = isdual($foo); # true - -Note that although C<$!> appears to be a dual-valued variable, it is -actually implemented as a magical variable inside the interpreter: - - $! = 1; - print("$!\n"); # "Operation not permitted" - $dual = isdual($!); # false - -You can capture its numeric and string content using: - - $err = dualvar $!, $!; - $dual = isdual($err); # true - -=head2 isvstring - - my $vstring = isvstring( $var ); - -If C<$var> is a scalar which was coded as a vstring, the result is true. - - $vs = v49.46.48; - $fmt = isvstring($vs) ? "%vd" : "%s"; #true - printf($fmt,$vs); - -=head2 looks_like_number - - my $isnum = looks_like_number( $var ); - -Returns true if perl thinks C<$var> is a number. See -L. - -=head2 openhandle - - my $fh = openhandle( $fh ); - -Returns C<$fh> itself if C<$fh> may be used as a filehandle and is open, or is -is a tied handle. Otherwise C is returned. - - $fh = openhandle(*STDIN); # \*STDIN - $fh = openhandle(\*STDIN); # \*STDIN - $fh = openhandle(*NOTOPEN); # undef - $fh = openhandle("scalar"); # undef - -=head2 readonly - - my $ro = readonly( $var ); - -Returns true if C<$var> is readonly. - - sub foo { readonly($_[0]) } - - $readonly = foo($bar); # false - $readonly = foo(0); # true - -=head2 set_prototype - - my $code = set_prototype( $code, $prototype ); - -Sets the prototype of the function given by the C<$code> reference, or deletes -it if C<$prototype> is C. Returns the C<$code> reference itself. - - set_prototype \&foo, '$$'; - -=head2 tainted - - my $t = tainted( $var ); - -Return true if C<$var> is tainted. - - $taint = tainted("constant"); # false - $taint = tainted($ENV{PWD}); # true if running under -T - -=head1 DIAGNOSTICS - -Module use may give one of the following errors during import. - -=over - -=item Weak references are not implemented in the version of perl - -The version of perl that you are using does not implement weak references, to -use L or L you will need to use a newer release of perl. - -=item Vstrings are not implemented in the version of perl - -The version of perl that you are using does not implement Vstrings, to use -L you will need to use a newer release of perl. - -=back - -=head1 KNOWN BUGS - -There is a bug in perl5.6.0 with UV's that are >= 1<<31. This will -show up as tests 8 and 9 of dualvar.t failing - -=head1 SEE ALSO - -L - -=head1 COPYRIGHT - -Copyright (c) 1997-2007 Graham Barr . All rights reserved. -This program is free software; you can redistribute it and/or modify it -under the same terms as Perl itself. - -Additionally L and L which are - -Copyright (c) 1999 Tuomas J. Lukka . All rights reserved. -This program is free software; you can redistribute it and/or modify it -under the same terms as perl itself. - -Copyright (C) 2004, 2008 Matthijs van Duin. All rights reserved. -Copyright (C) 2014 cPanel Inc. All rights reserved. -This program is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -=cut diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Slic3r/XS.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Slic3r/XS.pm deleted file mode 100644 index 7f269c1a..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Slic3r/XS.pm +++ /dev/null @@ -1,273 +0,0 @@ -package Slic3r::XS; -use warnings; -use strict; - -our $VERSION = '0.01'; - -use Carp qw(); -use XSLoader; -XSLoader::load(__PACKAGE__, $VERSION); - -package Slic3r::Line; -use overload - '@{}' => sub { $_[0]->arrayref }, - 'fallback' => 1; - -package Slic3r::Point; -use overload - '@{}' => sub { $_[0]->arrayref }, - 'fallback' => 1; - -package Slic3r::Point3; -use overload - '@{}' => sub { [ $_[0]->x, $_[0]->y, $_[0]->z ] }, #, - 'fallback' => 1; - -sub pp { - my ($self) = @_; - return [ @$self ]; -} - -package Slic3r::Pointf; -use overload - '@{}' => sub { $_[0]->arrayref }, - 'fallback' => 1; - -package Slic3r::Pointf3; -use overload - '@{}' => sub { [ $_[0]->x, $_[0]->y, $_[0]->z ] }, #, - 'fallback' => 1; - -sub pp { - my ($self) = @_; - return [ @$self ]; -} - -package Slic3r::ExPolygon; -use overload - '@{}' => sub { $_[0]->arrayref }, - 'fallback' => 1; - -package Slic3r::Polyline; -use overload - '@{}' => sub { $_[0]->arrayref }, - 'fallback' => 1; - -package Slic3r::Polyline::Collection; -use overload - '@{}' => sub { $_[0]->arrayref }, - 'fallback' => 1; - -package Slic3r::Polygon; -use overload - '@{}' => sub { $_[0]->arrayref }, - 'fallback' => 1; - -package Slic3r::ExPolygon::Collection; -use overload - '@{}' => sub { $_[0]->arrayref }, - 'fallback' => 1; - -package Slic3r::ExtrusionPath::Collection; -use overload - '@{}' => sub { $_[0]->arrayref }, - 'fallback' => 1; - -sub new { - my ($class, @paths) = @_; - - my $self = $class->_new; - $self->append(@paths); - return $self; -} - -package Slic3r::ExtrusionLoop; -use overload - '@{}' => sub { $_[0]->arrayref }, - 'fallback' => 1; - -sub new_from_paths { - my ($class, @paths) = @_; - - my $loop = $class->new; - $loop->append($_) for @paths; - return $loop; -} - -package Slic3r::ExtrusionPath; -use overload - '@{}' => sub { $_[0]->arrayref }, - 'fallback' => 1; - -sub new { - my ($class, %args) = @_; - - return $class->_new( - $args{polyline}, # required - $args{role}, # required - $args{mm3_per_mm} // die("Missing required mm3_per_mm in ExtrusionPath constructor"), - $args{width} // -1, - $args{height} // -1, - ); -} - -sub clone { - my ($self, %args) = @_; - - return __PACKAGE__->_new( - $args{polyline} // $self->polyline, - $args{role} // $self->role, - $args{mm3_per_mm} // $self->mm3_per_mm, - $args{width} // $self->width, - $args{height} // $self->height, - ); -} - -package Slic3r::Filler; - -sub fill_surface { - my ($self, $surface, %args) = @_; - $self->set_density($args{density}) if defined($args{density}); - $self->set_dont_connect($args{dont_connect}) if defined($args{dont_connect}); - $self->set_dont_adjust($args{dont_adjust}) if defined($args{dont_adjust}); - $self->set_complete($args{complete}) if defined($args{complete}); - return $self->_fill_surface($surface); -} - -package Slic3r::Flow; - -sub new { - my ($class, %args) = @_; - - my $self = $class->_new( - @args{qw(width height nozzle_diameter)}, - ); - $self->set_bridge($args{bridge} // 0); - return $self; -} - -sub new_from_width { - my ($class, %args) = @_; - - return $class->_new_from_width( - @args{qw(role width nozzle_diameter layer_height bridge_flow_ratio)}, - ); -} - -sub new_from_spacing { - my ($class, %args) = @_; - - return $class->_new_from_spacing( - @args{qw(spacing nozzle_diameter layer_height bridge)}, - ); -} - -package Slic3r::Surface; - -sub new { - my ($class, %args) = @_; - - # defensive programming: make sure no negative bridge_angle is supplied - die "Error: invalid negative bridge_angle\n" - if defined $args{bridge_angle} && $args{bridge_angle} < 0; - - return $class->_new( - $args{expolygon} // (die "Missing required expolygon\n"), - $args{surface_type} // (die "Missing required surface_type\n"), - $args{thickness} // -1, - $args{thickness_layers} // 1, - $args{bridge_angle} // -1, - $args{extra_perimeters} // 0, - ); -} - -sub clone { - my ($self, %args) = @_; - - return (ref $self)->_new( - delete $args{expolygon} // $self->expolygon, - delete $args{surface_type} // $self->surface_type, - delete $args{thickness} // $self->thickness, - delete $args{thickness_layers} // $self->thickness_layers, - delete $args{bridge_angle} // $self->bridge_angle, - delete $args{extra_perimeters} // $self->extra_perimeters, - ); -} - -package Slic3r::Surface::Collection; -use overload - '@{}' => sub { $_[0]->arrayref }, - 'fallback' => 1; - -sub new { - my ($class, @surfaces) = @_; - - my $self = $class->_new; - $self->append($_) for @surfaces; - return $self; -} - -package Slic3r::GUI::_3DScene::GLVertexArray; -sub CLONE_SKIP { 1 } - -package main; -for my $class (qw( - Slic3r::BridgeDetector - Slic3r::Config - Slic3r::Config::Full - Slic3r::Config::GCode - Slic3r::Config::Print - Slic3r::Config::PrintObject - Slic3r::Config::PrintRegion - Slic3r::Config::Static - Slic3r::ExPolygon - Slic3r::ExPolygon::Collection - Slic3r::Extruder - Slic3r::ExtrusionLoop - Slic3r::ExtrusionPath - Slic3r::ExtrusionPath::Collection - Slic3r::Filler - Slic3r::Flow - Slic3r::GCode - Slic3r::GCode::AvoidCrossingPerimeters - Slic3r::GCode::OozePrevention - Slic3r::GCode::PlaceholderParser - Slic3r::GCode::Wipe - Slic3r::GCode::Writer - Slic3r::Geometry::BoundingBox - Slic3r::Geometry::BoundingBoxf - Slic3r::Geometry::BoundingBoxf3 - Slic3r::Layer - Slic3r::Layer::Region - Slic3r::Layer::Support - Slic3r::LayerHeightSpline - Slic3r::Line - Slic3r::Linef3 - Slic3r::Model - Slic3r::Model::Instance - Slic3r::Model::Material - Slic3r::Model::Object - Slic3r::Model::Volume - Slic3r::Point - Slic3r::Point3 - Slic3r::Pointf - Slic3r::Pointf3 - Slic3r::Polygon - Slic3r::Polyline - Slic3r::Polyline::Collection - Slic3r::Print - Slic3r::Print::Object - Slic3r::Print::Region - Slic3r::Print::State - Slic3r::SlicingAdaptive - Slic3r::Surface - Slic3r::Surface::Collection - Slic3r::TriangleMesh - )) -{ - no strict 'refs'; - my $ref_class = $class . "::Ref"; - eval "package $ref_class; our \@ISA = '$class'; sub DESTROY {};"; -} - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Sub/Util.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Sub/Util.pm deleted file mode 100644 index edcc6544..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Sub/Util.pm +++ /dev/null @@ -1,151 +0,0 @@ -# Copyright (c) 2014 Paul Evans . All rights reserved. -# This program is free software; you can redistribute it and/or -# modify it under the same terms as Perl itself. - -package Sub::Util; - -use strict; -use warnings; - -require Exporter; - -our @ISA = qw( Exporter ); -our @EXPORT_OK = qw( - prototype set_prototype - subname set_subname -); - -our $VERSION = "1.50"; -$VERSION = eval $VERSION; - -require List::Util; # as it has the XS -List::Util->VERSION( $VERSION ); # Ensure we got the right XS version (RT#100863) - -=head1 NAME - -Sub::Util - A selection of utility subroutines for subs and CODE references - -=head1 SYNOPSIS - - use Sub::Util qw( prototype set_prototype subname set_subname ); - -=head1 DESCRIPTION - -C contains a selection of utility subroutines that are useful for -operating on subs and CODE references. - -The rationale for inclusion in this module is that the function performs some -work for which an XS implementation is essential because it cannot be -implemented in Pure Perl, and which is sufficiently-widely used across CPAN -that its popularity warrants inclusion in a core module, which this is. - -=cut - -=head1 FUNCTIONS - -=cut - -=head2 prototype - - my $proto = prototype( $code ) - -I - -Returns the prototype of the given C<$code> reference, if it has one, as a -string. This is the same as the C operator; it is included -here simply for symmetry and completeness with the other functions. - -=cut - -sub prototype -{ - my ( $code ) = @_; - return CORE::prototype( $code ); -} - -=head2 set_prototype - - my $code = set_prototype $prototype, $code; - -I - -Sets the prototype of the function given by the C<$code> reference, or deletes -it if C<$prototype> is C. Returns the C<$code> reference itself. - -I: This function takes arguments in a different order to the previous -copy of the code from C. This is to match the order of -C, and other potential additions in this file. This order has -been chosen as it allows a neat and simple chaining of other -C functions as might become available, such as: - - my $code = - set_subname name_here => - set_prototype '&@' => - set_attribute ':lvalue' => - sub { ...... }; - -=cut - -=head2 subname - - my $name = subname( $code ) - -I - -Returns the name of the given C<$code> reference, if it has one. Normal named -subs will give a fully-qualified name consisting of the package and the -localname separated by C<::>. Anonymous code references will give C<__ANON__> -as the localname. If a name has been set using L, this name will -be returned instead. - -This function was inspired by C from L. The -remaining functions that C implements can easily be emulated -using regexp operations, such as - - sub get_code_info { return (subname $_[0]) =~ m/^(.+)::(.*?)$/ } - sub sub_name { return (get_code_info $_[0])[0] } - sub stash_name { return (get_code_info $_[0])[1] } - -I: This function is B the same as -C; it returns the existing name of the sub rather than -changing it. To set or change a name, see instead L. - -=cut - -=head2 set_subname - - my $code = set_subname $name, $code; - -I - -Sets the name of the function given by the C<$code> reference. Returns the -C<$code> reference itself. If the C<$name> is unqualified, the package of the -caller is used to qualify it. - -This is useful for applying names to anonymous CODE references so that stack -traces and similar situations, to give a useful name rather than having the -default of C<__ANON__>. Note that this name is only used for this situation; -the C will not install it into the symbol table; you will have to -do that yourself if required. - -However, since the name is not used by perl except as the return value of -C, for stack traces or similar, there is no actual requirement that -the name be syntactically valid as a perl function name. This could be used to -attach extra information that could be useful in debugging stack traces. - -This function was copied from C and renamed to the naming -convention of this module. - -=cut - -=head1 AUTHOR - -The general structure of this module was written by Paul Evans -. - -The XS implementation of L was copied from L by -Matthijs van Duin - -=cut - -1; diff --git a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Time/HiRes.pm b/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Time/HiRes.pm deleted file mode 100644 index d9c30d6d..00000000 --- a/software/Slic3r-1.3.0.64bit/local-lib/lib/perl5/MSWin32-x64-multi-thread/Time/HiRes.pm +++ /dev/null @@ -1,672 +0,0 @@ -package Time::HiRes; - -{ use 5.006; } -use strict; - -require Exporter; -use XSLoader (); - -our @ISA = qw(Exporter); - -our @EXPORT = qw( ); -# TODO: this list is a superset of the @names in -# Makefile.PL:doConstants(), automate this somehow. -our @EXPORT_OK = qw (usleep sleep ualarm alarm gettimeofday time tv_interval - getitimer setitimer nanosleep clock_gettime clock_getres - clock clock_nanosleep - CLOCKS_PER_SEC - CLOCK_BOOTTIME - CLOCK_HIGHRES - CLOCK_MONOTONIC - CLOCK_MONOTONIC_COARSE - CLOCK_MONOTONIC_FAST - CLOCK_MONOTONIC_PRECISE - CLOCK_MONOTONIC_RAW - CLOCK_MONOTONIC_RAW_APPROX - CLOCK_PROCESS_CPUTIME_ID - CLOCK_PROF - CLOCK_REALTIME - CLOCK_REALTIME_COARSE - CLOCK_REALTIME_FAST - CLOCK_REALTIME_PRECISE - CLOCK_REALTIME_RAW - CLOCK_SECOND - CLOCK_SOFTTIME - CLOCK_THREAD_CPUTIME_ID - CLOCK_TIMEOFDAY - CLOCK_UPTIME - CLOCK_UPTIME_COARSE - CLOCK_UPTIME_FAST - CLOCK_UPTIME_PRECISE - CLOCK_UPTIME_RAW - CLOCK_UPTIME_RAW_APPROX - CLOCK_VIRTUAL - ITIMER_PROF - ITIMER_REAL - ITIMER_REALPROF - ITIMER_VIRTUAL - TIMER_ABSTIME - d_usleep d_ualarm d_gettimeofday d_getitimer d_setitimer - d_nanosleep d_clock_gettime d_clock_getres - d_clock d_clock_nanosleep d_hires_stat - d_futimens d_utimensat d_hires_utime - stat lstat utime - ); - -our $VERSION = '1.9758'; -our $XS_VERSION = $VERSION; -$VERSION = eval $VERSION; - -our $AUTOLOAD; -sub AUTOLOAD { - my $constname; - ($constname = $AUTOLOAD) =~ s/.*:://; - # print "AUTOLOAD: constname = $constname ($AUTOLOAD)\n"; - die "&Time::HiRes::constant not defined" if $constname eq 'constant'; - my ($error, $val) = constant($constname); - # print "AUTOLOAD: error = $error, val = $val\n"; - if ($error) { - my (undef,$file,$line) = caller; - die "$error at $file line $line.\n"; - } - { - no strict 'refs'; - *$AUTOLOAD = sub { $val }; - } - goto &$AUTOLOAD; -} - -sub import { - my $this = shift; - for my $i (@_) { - if (($i eq 'clock_getres' && !&d_clock_getres) || - ($i eq 'clock_gettime' && !&d_clock_gettime) || - ($i eq 'clock_nanosleep' && !&d_clock_nanosleep) || - ($i eq 'clock' && !&d_clock) || - ($i eq 'nanosleep' && !&d_nanosleep) || - ($i eq 'usleep' && !&d_usleep) || - ($i eq 'utime' && !&d_hires_utime) || - ($i eq 'ualarm' && !&d_ualarm)) { - require Carp; - Carp::croak("Time::HiRes::$i(): unimplemented in this platform"); - } - } - Time::HiRes->export_to_level(1, $this, @_); -} - -XSLoader::load( 'Time::HiRes', $XS_VERSION ); - -# Preloaded methods go here. - -# Autoload methods go after =cut, and are processed by the autosplit program. - -1; -__END__ - -=head1 NAME - -Time::HiRes - High resolution alarm, sleep, gettimeofday, interval timers - -=head1 SYNOPSIS - - use Time::HiRes qw( usleep ualarm gettimeofday tv_interval nanosleep - clock_gettime clock_getres clock_nanosleep clock - stat lstat utime); - - usleep ($microseconds); - nanosleep ($nanoseconds); - - ualarm ($microseconds); - ualarm ($microseconds, $interval_microseconds); - - $t0 = [gettimeofday]; - ($seconds, $microseconds) = gettimeofday; - - $elapsed = tv_interval ( $t0, [$seconds, $microseconds]); - $elapsed = tv_interval ( $t0, [gettimeofday]); - $elapsed = tv_interval ( $t0 ); - - use Time::HiRes qw ( time alarm sleep ); - - $now_fractions = time; - sleep ($floating_seconds); - alarm ($floating_seconds); - alarm ($floating_seconds, $floating_interval); - - use Time::HiRes qw( setitimer getitimer ); - - setitimer ($which, $floating_seconds, $floating_interval ); - getitimer ($which); - - use Time::HiRes qw( clock_gettime clock_getres clock_nanosleep - ITIMER_REAL ITIMER_VIRTUAL ITIMER_PROF - ITIMER_REALPROF ); - - $realtime = clock_gettime(CLOCK_REALTIME); - $resolution = clock_getres(CLOCK_REALTIME); - - clock_nanosleep(CLOCK_REALTIME, 1.5e9); - clock_nanosleep(CLOCK_REALTIME, time()*1e9 + 10e9, TIMER_ABSTIME); - - my $ticktock = clock(); - - use Time::HiRes qw( stat lstat ); - - my @stat = stat("file"); - my @stat = stat(FH); - my @stat = lstat("file"); - - use Time::HiRes qw( utime ); - utime $floating_seconds, $floating_seconds, file...; - -=head1 DESCRIPTION - -The C module implements a Perl interface to the -C, C, C, C, and -C/C system calls, in other words, high -resolution time and timers. See the L section below and the -test scripts for usage; see your system documentation for the -description of the underlying C or C, C, -C, and C/C calls. - -If your system lacks C or an emulation of it you don't -get C or the one-argument form of C. -If your system lacks all of C, C, -C, and C, you don't get C, -C, or C. -If your system lacks both C and C you don't get -C or C. - -If you try to import an unimplemented function in the C statement -it will fail at compile time. - -If your subsecond sleeping is implemented with C instead -of C, you can mix subsecond sleeping with signals since -C does not use signals. This, however, is not portable, -and you should first check for the truth value of -C<&Time::HiRes::d_nanosleep> to see whether you have nanosleep, and -then carefully read your C C API documentation for any -peculiarities. - -If you are using C for something else than mixing sleeping -with signals, give some thought to whether Perl is the tool you should -be using for work requiring nanosecond accuracies. - -Remember that unless you are working on a I system, -any clocks and timers will be imprecise, especially so if you are working -in a pre-emptive multiuser system. Understand the difference between -I and process time (in UNIX-like systems the sum of -I and I times). Any attempt to sleep for X seconds will -most probably end up sleeping B than that, but don't be surprised -if you end up sleeping slightly B. - -The following functions can be imported from this module. -No functions are exported by default. - -=over 4 - -=item gettimeofday () - -In array context returns a two-element array with the seconds and -microseconds since the epoch. In scalar context returns floating -seconds like C (see below). - -=item usleep ( $useconds ) - -Sleeps for the number of microseconds (millionths of a second) -specified. Returns the number of microseconds actually slept. -Can sleep for more than one second, unlike the C system call. -Can also sleep for zero seconds, which often works like a I. -See also C, C, and -C. - -Do not expect usleep() to be exact down to one microsecond. - -=item nanosleep ( $nanoseconds ) - -Sleeps for the number of nanoseconds (1e9ths of a second) specified. -Returns the number of nanoseconds actually slept (accurate only to -microseconds, the nearest thousand of them). Can sleep for more than -one second. Can also sleep for zero seconds, which often works like -a I. See also C, -C, and C. - -Do not expect nanosleep() to be exact down to one nanosecond. -Getting even accuracy of one thousand nanoseconds is good. - -=item ualarm ( $useconds [, $interval_useconds ] ) - -Issues a C call; the C<$interval_useconds> is optional and -will be zero if unspecified, resulting in C-like behaviour. - -Returns the remaining time in the alarm in microseconds, or C -if an error occurred. - -ualarm(0) will cancel an outstanding ualarm(). - -Note that the interaction between alarms and sleeps is unspecified. - -=item tv_interval - -tv_interval ( $ref_to_gettimeofday [, $ref_to_later_gettimeofday] ) - -Returns the floating seconds between the two times, which should have -been returned by C. If the second argument is omitted, -then the current time is used. - -=item time () - -Returns a floating seconds since the epoch. This function can be -imported, resulting in a nice drop-in replacement for the C